ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDljMGQ2NTAuLjg2OWUxYTMgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMyw2ICszLDEwIEBACiAjIHN1YmRpcmVjdG9yaWVzIGhlcmUuIEFkZCB0aGVtIGluIHRoZSAiLmdpdGlnbm9yZSIgZmlsZQogIyBpbiB0aGF0IHN1YmRpcmVjdG9yeSBpbnN0ZWFkLgogIworIyBOT1RFISBQbGVhc2UgdXNlICdnaXQtbHMtZmlsZXMgLWkgLS1leGNsdWRlLXN0YW5kYXJkJworIyBjb21tYW5kIGFmdGVyIGNoYW5naW5nIHRoaXMgZmlsZSwgdG8gc2VlIGlmIHRoZXJlIGFyZQorIyBhbnkgdHJhY2tlZCBmaWxlcyB3aGljaCBnZXQgaWdub3JlZCBhZnRlciB0aGUgY2hhbmdlLgorIwogIyBOb3JtYWwgcnVsZXMKICMKIC4qCkBAIC0xOCwxOCArMjIsMjEgQEAKICoubHN0CiAqLnN5bXR5cGVzCiAqLm9yZGVyCisqLmVsZgorKi5iaW4KKyouZ3oKIAogIwogIyBUb3AtbGV2ZWwgZ2VuZXJpYyBmaWxlcwogIwogdGFncwogVEFHUwotdm1saW51eCoKLSF2bWxpbnV4Lmxkcy5TCit2bWxpbnV4CiBTeXN0ZW0ubWFwCiBNb2R1bGUubWFya2VycwogTW9kdWxlLnN5bXZlcnMKICEuZ2l0aWdub3JlCishLm1haWxtYXAKIAogIwogIyBHZW5lcmF0ZWQgaW5jbHVkZSBmaWxlcwpAQCAtNTIsNiArNTksNyBAQAogCiAjIGNzY29wZSBmaWxlcwogY3Njb3BlLioKK25jc2NvcGUuKgogCiAqLm9yaWcKICp+CmRpZmYgLS1naXQgYS9DUkVESVRTIGIvQ1JFRElUUwppbmRleCA4ZmVjN2IzLi5lOTdiZWEwIDEwMDY0NAotLS0gYS9DUkVESVRTCisrKyBiL0NSRURJVFMKQEAgLTI2MTEsOCArMjYxMSw5IEBACiBTOiBBdXN0cmFsaWEKIAogTjogTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1FOiBtYXhleHRyZW1lQGdtYWlsLmNvbQotVzogaHR0cDovL21heGV4dHJlbWUuZ29vZ2xlcGFnZXMuY29tLworRTogbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQorVzogaHR0cDovL21pZ3VlbG9qZWRhLmVzCitXOiBodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkLwogRDogQXV0aG9yIG9mIHRoZSBrczAxMDgsIGNmYWcxMjg2NGIgYW5kIGNmYWcxMjg2NGJmYiBhdXhpbGlhcnkgZGlzcGxheSBkcml2ZXJzLgogRDogTWFpbnRhaW5lciBvZiB0aGUgYXV4aWxpYXJ5IGRpc3BsYXkgZHJpdmVycyB0cmVlIChkcml2ZXJzL2F1eGRpc3BsYXkvKikKIFM6IEMvIE1pZXNlcyAyMCwgOS1CCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1ibG9jawppbmRleCA0YmQ5ZWE1Li40NGY1MmE0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJsb2NrCisrKyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYmxvY2sKQEAgLTI2LDMgKzI2LDM3IEBACiAJCUkvTyBzdGF0aXN0aWNzIG9mIHBhcnRpdGlvbiA8cGFydD4uIFRoZSBmb3JtYXQgaXMgdGhlCiAJCXNhbWUgYXMgdGhlIGFib3ZlLXdyaXR0ZW4gL3N5cy9ibG9jay88ZGlzaz4vc3RhdAogCQlmb3JtYXQuCisKKworV2hhdDoJCS9zeXMvYmxvY2svPGRpc2s+L2ludGVncml0eS9mb3JtYXQKK0RhdGU6CQlKdW5lIDIwMDgKK0NvbnRhY3Q6CU1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CitEZXNjcmlwdGlvbjoKKwkJTWV0YWRhdGEgZm9ybWF0IGZvciBpbnRlZ3JpdHkgY2FwYWJsZSBibG9jayBkZXZpY2UuCisJCUUuZy4gVDEwLURJRi1UWVBFMS1DUkMuCisKKworV2hhdDoJCS9zeXMvYmxvY2svPGRpc2s+L2ludGVncml0eS9yZWFkX3ZlcmlmeQorRGF0ZToJCUp1bmUgMjAwOAorQ29udGFjdDoJTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KK0Rlc2NyaXB0aW9uOgorCQlJbmRpY2F0ZXMgd2hldGhlciB0aGUgYmxvY2sgbGF5ZXIgc2hvdWxkIHZlcmlmeSB0aGUKKwkJaW50ZWdyaXR5IG9mIHJlYWQgcmVxdWVzdHMgc2VydmljZWQgYnkgZGV2aWNlcyB0aGF0CisJCXN1cHBvcnQgc2VuZGluZyBpbnRlZ3JpdHkgbWV0YWRhdGEuCisKKworV2hhdDoJCS9zeXMvYmxvY2svPGRpc2s+L2ludGVncml0eS90YWdfc2l6ZQorRGF0ZToJCUp1bmUgMjAwOAorQ29udGFjdDoJTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KK0Rlc2NyaXB0aW9uOgorCQlOdW1iZXIgb2YgYnl0ZXMgb2YgaW50ZWdyaXR5IHRhZyBzcGFjZSBhdmFpbGFibGUgcGVyCisJCTUxMiBieXRlcyBvZiBkYXRhLgorCisKK1doYXQ6CQkvc3lzL2Jsb2NrLzxkaXNrPi9pbnRlZ3JpdHkvd3JpdGVfZ2VuZXJhdGUKK0RhdGU6CQlKdW5lIDIwMDgKK0NvbnRhY3Q6CU1hcnRpbiBLLiBQZXRlcnNlbiA8bWFydGluLnBldGVyc2VuQG9yYWNsZS5jb20+CitEZXNjcmlwdGlvbjoKKwkJSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJsb2NrIGxheWVyIHNob3VsZCBhdXRvbWF0aWNhbGx5CisJCWdlbmVyYXRlIGNoZWNrc3VtcyBmb3Igd3JpdGUgcmVxdWVzdHMgYm91bmQgZm9yCisJCWRldmljZXMgdGhhdCBzdXBwb3J0IHJlY2VpdmluZyBpbnRlZ3JpdHkgbWV0YWRhdGEuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1jc3MgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWJ1cy1jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU4NWVjMgotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtYnVzLWNzcwpAQCAtMCwwICsxLDM1IEBACitXaGF0OgkJL3N5cy9idXMvY3NzL2RldmljZXMvLi4uL3R5cGUKK0RhdGU6CQlNYXJjaCAyMDA4CitDb250YWN0OglDb3JuZWxpYSBIdWNrIDxjb3JuZWxpYS5odWNrQGRlLmlibS5jb20+CisJCWxpbnV4LXMzOTBAdmdlci5rZXJuZWwub3JnCitEZXNjcmlwdGlvbjoJQ29udGFpbnMgdGhlIHN1YmNoYW5uZWwgdHlwZSwgYXMgcmVwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlLgorCQlUaGlzIGF0dHJpYnV0ZSBpcyBwcmVzZW50IGZvciBhbGwgc3ViY2hhbm5lbCB0eXBlcy4KKworV2hhdDoJCS9zeXMvYnVzL2Nzcy9kZXZpY2VzLy4uLi9tb2RhbGlhcworRGF0ZToJCU1hcmNoIDIwMDgKK0NvbnRhY3Q6CUNvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KKwkJbGludXgtczM5MEB2Z2VyLmtlcm5lbC5vcmcKK0Rlc2NyaXB0aW9uOglDb250YWlucyB0aGUgbW9kdWxlIGFsaWFzIGFzIHJlcG9ydGVkIHdpdGggdWV2ZW50cy4KKwkJSXQgaXMgb2YgdGhlIGZvcm1hdCBjc3M6dDx0eXBlPiBhbmQgcHJlc2VudCBmb3IgYWxsCisJCXN1YmNoYW5uZWwgdHlwZXMuCisKK1doYXQ6CQkvc3lzL2J1cy9jc3MvZHJpdmVycy9pb19zdWJjaGFubmVsLy4uLi9jaHBpZHMKK0RhdGU6CQlEZWNlbWJlciAyMDAyCitDb250YWN0OglDb3JuZWxpYSBIdWNrIDxjb3JuZWxpYS5odWNrQGRlLmlibS5jb20+CisJCWxpbnV4LXMzOTBAdmdlci5rZXJuZWwub3JnCitEZXNjcmlwdGlvbjoJQ29udGFpbnMgdGhlIGlkcyBvZiB0aGUgY2hhbm5lbCBwYXRocyB1c2VkIGJ5IHRoaXMKKwkJc3ViY2hhbm5lbCwgYXMgcmVwb3J0ZWQgYnkgdGhlIGNoYW5uZWwgc3Vic3lzdGVtCisJCWR1cmluZyBzdWJjaGFubmVsIHJlY29nbml0aW9uLgorCQlOb3RlOiBUaGlzIGlzIGFuIEkvTy1zdWJjaGFubmVsIHNwZWNpZmljIGF0dHJpYnV0ZS4KK1VzZXJzOgkJczM5MC10b29scywgSEFMCisKK1doYXQ6CQkvc3lzL2J1cy9jc3MvZHJpdmVycy9pb19zdWJjaGFubmVsLy4uLi9waW1wYW1wb20KK0RhdGU6CQlEZWNlbWJlciAyMDAyCitDb250YWN0OglDb3JuZWxpYSBIdWNrIDxjb3JuZWxpYS5odWNrQGRlLmlibS5jb20+CisJCWxpbnV4LXMzOTBAdmdlci5rZXJuZWwub3JnCitEZXNjcmlwdGlvbjoJQ29udGFpbnMgdGhlIFBJTS9QQU0vUE9NIHZhbHVlcywgYXMgcmVwb3J0ZWQgYnkgdGhlCisJCWNoYW5uZWwgc3Vic3lzdGVtIHdoZW4gbGFzdCBxdWVyaWVkIGJ5IHRoZSBjb21tb24gSS9PCisJCWxheWVyICh0aGlzIGltcGxpZXMgdGhhdCB0aGlzIGF0dHJpYnV0ZSBpcyBub3QgbmVjY2Vzc2FyaWx5CisJCWluIHN5bmMgd2l0aCB0aGUgdmFsdWVzIGN1cnJlbnQgaW4gdGhlIGNoYW5uZWwgc3Vic3lzdGVtKS4KKwkJTm90ZTogVGhpcyBpcyBhbiBJL08tc3ViY2hhbm5lbCBzcGVjaWZpYyBhdHRyaWJ1dGUuCitVc2VyczoJCXMzOTAtdG9vbHMsIEhBTApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1iZGkgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLWJkaQppbmRleCA1YWMxZTAxLi41ZjUwMDk3IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLWJkaQorKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLWJkaQpAQCAtMTQsNiArMTQsMTAgQEAKIAlub24tYmxvY2sgZmlsZXN5c3RlbXMgd2hpY2ggcHJvdmlkZSB0aGVpciBvd24gQkRJLCBzdWNoIGFzIE5GUwogCWFuZCBGVVNFLgogCitNQUpPUjpNSU5PUi1mdXNlYmxrCisKKwlWYWx1ZSBvZiBzdF9kZXYgb24gZnVzZWJsayBmaWxlc3lzdGVtcy4KKwogZGVmYXVsdAogCiAJVGhlIGRlZmF1bHQgYmFja2luZyBkZXYsIHVzZWQgZm9yIG5vbi1ibG9jayBkZXZpY2UgYmFja2VkCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWZpcm13YXJlLW1lbW1hcCBiL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtZmlybXdhcmUtbWVtbWFwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkOTllZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWZpcm13YXJlLW1lbW1hcApAQCAtMCwwICsxLDcxIEBACitXaGF0OgkJL3N5cy9maXJtd2FyZS9tZW1tYXAvCitEYXRlOgkJSnVuZSAyMDA4CitDb250YWN0OglCZXJuaGFyZCBXYWxsZSA8YndhbGxlQHN1c2UuZGU+CitEZXNjcmlwdGlvbjoKKwkJT24gYWxsIHBsYXRmb3JtcywgdGhlIGZpcm13YXJlIHByb3ZpZGVzIGEgbWVtb3J5IG1hcCB3aGljaCB0aGUKKwkJa2VybmVsIHJlYWRzLiBUaGUgcmVzb3VyY2VzIGZyb20gdGhhdCBtZW1vcnkgbWFwIGFyZSByZWdpc3RlcmVkCisJCWluIHRoZSBrZXJuZWwgcmVzb3VyY2UgdHJlZSBhbmQgZXhwb3NlZCB0byB1c2Vyc3BhY2UgdmlhCisJCS9wcm9jL2lvbWVtICh0b2dldGhlciB3aXRoIG90aGVyIHJlc291cmNlcykuCisKKwkJSG93ZXZlciwgb24gbW9zdCBhcmNoaXRlY3R1cmVzIHRoYXQgZmlybXdhcmUtcHJvdmlkZWQgbWVtb3J5CisJCW1hcCBpcyBtb2RpZmllZCBhZnRlcndhcmRzIGJ5IHRoZSBrZXJuZWwgaXRzZWxmLCBlaXRoZXIgYmVjYXVzZQorCQl0aGUga2VybmVsIG1lcmdlcyB0aGF0IG1lbW9yeSBtYXAgd2l0aCBvdGhlciBpbmZvcm1hdGlvbiBvcgorCQlqdXN0IGJlY2F1c2UgdGhlIHVzZXIgb3ZlcndyaXRlcyB0aGF0IG1lbW9yeSBtYXAgdmlhIGNvbW1hbmQKKwkJbGluZS4KKworCQlrZXhlYyBuZWVkcyB0aGUgcmF3IGZpcm13YXJlLXByb3ZpZGVkIG1lbW9yeSBtYXAgdG8gc2V0dXAgdGhlCisJCXBhcmFtZXRlciBzZWdtZW50IG9mIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgYm9vdGVkIHdpdGgKKwkJa2V4ZWMuIEFsc28sIHRoZSByYXcgbWVtb3J5IG1hcCBpcyB1c2VmdWwgZm9yIGRlYnVnZ2luZy4gRm9yCisJCXRoYXQgcmVhc29uLCAvc3lzL2Zpcm13YXJlL21lbW1hcCBpcyBhbiBpbnRlcmZhY2UgdGhhdCBwcm92aWRlcworCQl0aGUgcmF3IG1lbW9yeSBtYXAgdG8gdXNlcnNwYWNlLgorCisJCVRoZSBzdHJ1Y3R1cmUgaXMgYXMgZm9sbG93czogVW5kZXIgL3N5cy9maXJtd2FyZS9tZW1tYXAgdGhlcmUKKwkJYXJlIHN1YmRpcmVjdG9yaWVzIHdpdGggdGhlIG51bWJlciBvZiB0aGUgZW50cnkgYXMgdGhlaXIgbmFtZToKKworCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMAorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMQorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMgorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMworCQkJLi4uCisKKwkJVGhlIG1heGltdW0gZGVwZW5kcyBvbiB0aGUgbnVtYmVyIG9mIG1lbW9yeSBtYXAgZW50cmllcyBwcm92aWRlZAorCQlieSB0aGUgZmlybXdhcmUuIFRoZSBvcmRlciBpcyBqdXN0IHRoZSBvcmRlciB0aGF0IHRoZSBmaXJtd2FyZQorCQlwcm92aWRlcy4KKworCQlFYWNoIGRpcmVjdG9yeSBjb250YWlucyB0aHJlZSBmaWxlczoKKworCQlzdGFydAk6IFRoZSBzdGFydCBhZGRyZXNzIChhcyBoZXhhZGVjaW1hbCBudW1iZXIgd2l0aCB0aGUKKwkJCSAgJzB4JyBwcmVmaXgpLgorCQllbmQJOiBUaGUgZW5kIGFkZHJlc3MsIGluY2x1c2l2ZSAocmVnYXJkbGVzcyB3aGV0aGVyIHRoZQorCQkJICBmaXJtd2FyZSBwcm92aWRlcyBpbmNsdXNpdmUgb3IgZXhjbHVzaXZlIHJhbmdlcykuCisJCXR5cGUJOiBUeXBlIG9mIHRoZSBlbnRyeSBhcyBzdHJpbmcuIFNlZSBiZWxvdyBmb3IgYSBsaXN0IG9mCisJCQkgIHZhbGlkIHR5cGVzLgorCisJCVNvLCBmb3IgZXhhbXBsZToKKworCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMC9zdGFydAorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMC9lbmQKKwkJCS9zeXMvZmlybXdhcmUvbWVtbWFwLzAvdHlwZQorCQkJL3N5cy9maXJtd2FyZS9tZW1tYXAvMS9zdGFydAorCQkJLi4uCisKKwkJQ3VycmVudGx5IGZvbGxvd2luZyB0eXBlcyBleGlzdDoKKworCQkgIC0gU3lzdGVtIFJBTQorCQkgIC0gQUNQSSBUYWJsZXMKKwkJICAtIEFDUEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UKKwkJICAtIHJlc2VydmVkCisKKwkJRm9sbG93aW5nIHNoZWxsIHNuaXBwZXQgY2FuIGJlIHVzZWQgdG8gZGlzcGxheSB0aGF0IG1lbW9yeQorCQltYXAgaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQ6CisKKwkJLS0tLS0tLS0tLS0tLS0tLS0tLS0gODwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgICMhL2Jpbi9iYXNoCisJCSAgY2QgL3N5cy9maXJtd2FyZS9tZW1tYXAKKwkJICBmb3IgZGlyIGluICogOyBkbworCQkgICAgICBzdGFydD0kKGNhdCAkZGlyL3N0YXJ0KQorCQkgICAgICBlbmQ9JChjYXQgJGRpci9lbmQpCisJCSAgICAgIHR5cGU9JChjYXQgJGRpci90eXBlKQorCQkgICAgICBwcmludGYgIiUwMTZ4LSUwMTZ4ICglcylcbiIgJHN0YXJ0ICRbICRlbmQgKzFdICIkdHlwZSIKKwkJICBkb25lCisJCS0tLS0tLS0tLS0tLS0tLS0tLS0tID44IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9rZXJuZWwtbG9ja2luZy50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tlcm5lbC1sb2NraW5nLnRtcGwKaW5kZXggNzdjNDJmNC4uMjUxMDc2MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tlcm5lbC1sb2NraW5nLnRtcGwKKysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tlcm5lbC1sb2NraW5nLnRtcGwKQEAgLTcwMyw2ICs3MDMsMzEgQEAKIDwvc2VjdDE+CiA8L2NoYXB0ZXI+CiAKKzxjaGFwdGVyIGlkPSJ0cnlsb2NrLWZ1bmN0aW9ucyI+CisgPHRpdGxlPlRoZSB0cnlsb2NrIEZ1bmN0aW9uczwvdGl0bGU+CisgIDxwYXJhPgorICAgVGhlcmUgYXJlIGZ1bmN0aW9ucyB0aGF0IHRyeSB0byBhY3F1aXJlIGEgbG9jayBvbmx5IG9uY2UgYW5kIGltbWVkaWF0ZWx5CisgICByZXR1cm4gYSB2YWx1ZSB0ZWxsaW5nIGFib3V0IHN1Y2Nlc3Mgb3IgZmFpbHVyZSB0byBhY3F1aXJlIHRoZSBsb2NrLgorICAgVGhleSBjYW4gYmUgdXNlZCBpZiB5b3UgbmVlZCBubyBhY2Nlc3MgdG8gdGhlIGRhdGEgcHJvdGVjdGVkIHdpdGggdGhlIGxvY2sKKyAgIHdoZW4gc29tZSBvdGhlciB0aHJlYWQgaXMgaG9sZGluZyB0aGUgbG9jay4gWW91IHNob3VsZCBhY3F1aXJlIHRoZSBsb2NrCisgICBsYXRlciBpZiB5b3UgdGhlbiBuZWVkIGFjY2VzcyB0byB0aGUgZGF0YSBwcm90ZWN0ZWQgd2l0aCB0aGUgbG9jay4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIDxmdW5jdGlvbj5zcGluX3RyeWxvY2soKTwvZnVuY3Rpb24+IGRvZXMgbm90IHNwaW4gYnV0IHJldHVybnMgbm9uLXplcm8gaWYKKyAgICBpdCBhY3F1aXJlcyB0aGUgc3BpbmxvY2sgb24gdGhlIGZpcnN0IHRyeSBvciAwIGlmIG5vdC4gVGhpcyBmdW5jdGlvbiBjYW4KKyAgICBiZSB1c2VkIGluIGFsbCBjb250ZXh0cyBsaWtlIDxmdW5jdGlvbj5zcGluX2xvY2s8L2Z1bmN0aW9uPjogeW91IG11c3QgaGF2ZQorICAgIGRpc2FibGVkIHRoZSBjb250ZXh0cyB0aGF0IG1pZ2h0IGludGVycnVwdCB5b3UgYW5kIGFjcXVpcmUgdGhlIHNwaW4gbG9jay4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgIDxmdW5jdGlvbj5tdXRleF90cnlsb2NrKCk8L2Z1bmN0aW9uPiBkb2VzIG5vdCBzdXNwZW5kIHlvdXIgdGFzaworICAgIGJ1dCByZXR1cm5zIG5vbi16ZXJvIGlmIGl0IGNvdWxkIGxvY2sgdGhlIG11dGV4IG9uIHRoZSBmaXJzdCB0cnkKKyAgICBvciAwIGlmIG5vdC4gVGhpcyBmdW5jdGlvbiBjYW5ub3QgYmUgc2FmZWx5IHVzZWQgaW4gaGFyZHdhcmUgb3Igc29mdHdhcmUKKyAgICBpbnRlcnJ1cHQgY29udGV4dHMgZGVzcGl0ZSBub3Qgc2xlZXBpbmcuCisgIDwvcGFyYT4KKzwvY2hhcHRlcj4KKwogICA8Y2hhcHRlciBpZD0iRXhhbXBsZXMiPgogICAgPHRpdGxlPkNvbW1vbiBFeGFtcGxlczwvdGl0bGU+CiAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2sva2dkYi50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2tnZGIudG1wbAppbmRleCAwMjhhODQ0Li5lOGFjZDFmIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2sva2dkYi50bXBsCisrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9rZ2RiLnRtcGwKQEAgLTg0LDEwICs4NCw5IEBACiAgICAgcnVucyBhbiBpbnN0YW5jZSBvZiBnZGIgYWdhaW5zdCB0aGUgdm1saW51eCBmaWxlIHdoaWNoIGNvbnRhaW5zCiAgICAgdGhlIHN5bWJvbHMgKG5vdCBib290IGltYWdlIHN1Y2ggYXMgYnpJbWFnZSwgekltYWdlLCB1SW1hZ2UuLi4pLgogICAgIEluIGdkYiB0aGUgZGV2ZWxvcGVyIHNwZWNpZmllcyB0aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIGFuZAotICAgIGNvbm5lY3RzIHRvIGtnZGIuICBEZXBlbmRpbmcgb24gd2hpY2gga2dkYiBJL08gbW9kdWxlcyBleGlzdCBpbgotICAgIHRoZSBrZXJuZWwgZm9yIGEgZ2l2ZW4gYXJjaGl0ZWN0dXJlLCBpdCBtYXkgYmUgcG9zc2libGUgdG8gZGVidWcKLSAgICB0aGUgdGVzdCBtYWNoaW5lJ3Mga2VybmVsIHdpdGggdGhlIGRldmVsb3BtZW50IG1hY2hpbmUgdXNpbmcgYQotICAgIHJzMjMyIG9yIGV0aGVybmV0IGNvbm5lY3Rpb24uCisgICAgY29ubmVjdHMgdG8ga2dkYi4gIFRoZSB0eXBlIG9mIGNvbm5lY3Rpb24gYSBkZXZlbG9wZXIgbWFrZXMgd2l0aAorICAgIGdkYiBkZXBlbmRzIG9uIHRoZSBhdmFpbGFiaWxpdHkgb2Yga2dkYiBJL08gbW9kdWxlcyBjb21waWxlZCBhcworICAgIGJ1aWx0aW4ncyBvciBrZXJuZWwgbW9kdWxlcyBpbiB0aGUgdGVzdCBtYWNoaW5lJ3Mga2VybmVsLgogICAgIDwvcGFyYT4KICAgPC9jaGFwdGVyPgogICA8Y2hhcHRlciBpZD0iQ29tcGlsaW5nQUtlcm5lbCI+CkBAIC0yMjMsNyArMjIyLDcgQEAKICAgPC9wYXJhPgogICA8cGFyYT4KICAgSU1QT1JUQU5UIE5PVEU6IFVzaW5nIHRoaXMgb3B0aW9uIHdpdGgga2dkYiBvdmVyIHRoZSBjb25zb2xlCi0gIChrZ2Rib2MpIG9yIGtnZGIgb3ZlciBldGhlcm5ldCAoa2dkYm9lKSBpcyBub3Qgc3VwcG9ydGVkLgorICAoa2dkYm9jKSBpcyBub3Qgc3VwcG9ydGVkLgogICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAgIDwvY2hhcHRlcj4KQEAgLTI0OSwxOCArMjQ4LDExIEBACiAgICAgKGdkYikgdGFyZ2V0IHJlbW90ZSAvZGV2L3R0eVMwCiAgICAgPC9wcm9ncmFtbGlzdGluZz4KICAgICA8cGFyYT4KLSAgICBFeGFtcGxlIChrZ2RiIHRvIGEgdGVybWluYWwgc2VydmVyKToKKyAgICBFeGFtcGxlIChrZ2RiIHRvIGEgdGVybWluYWwgc2VydmVyIG9uIHRjcCBwb3J0IDIwMTIpOgogICAgIDwvcGFyYT4KICAgICA8cHJvZ3JhbWxpc3Rpbmc+CiAgICAgJSBnZGIgLi92bWxpbnV4Ci0gICAgKGdkYikgdGFyZ2V0IHJlbW90ZSB1ZHA6MTkyLjE2OC4yLjI6NjQ0MwotICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgPHBhcmE+Ci0gICAgRXhhbXBsZSAoa2dkYiBvdmVyIGV0aGVybmV0KToKLSAgICA8L3BhcmE+Ci0gICAgPHByb2dyYW1saXN0aW5nPgotICAgICUgZ2RiIC4vdm1saW51eAotICAgIChnZGIpIHRhcmdldCByZW1vdGUgdWRwOjE5Mi4xNjguMi4yOjY0NDMKKyAgICAoZ2RiKSB0YXJnZXQgcmVtb3RlIDE5Mi4xNjguMi4yOjIwMTIKICAgICA8L3Byb2dyYW1saXN0aW5nPgogICAgIDxwYXJhPgogICAgIE9uY2UgY29ubmVjdGVkLCB5b3UgY2FuIGRlYnVnIGEga2VybmVsIHRoZSB3YXkgeW91IHdvdWxkIGRlYnVnIGFuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0hPV1RPIGIvRG9jdW1lbnRhdGlvbi9IT1dUTwppbmRleCAwMjkxYWRlLi42MTllOGNhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL0hPV1RPCisrKyBiL0RvY3VtZW50YXRpb24vSE9XVE8KQEAgLTM3Nyw3ICszNzcsNyBAQAogYnVnemlsbGEua2VybmVsLm9yZyBpcyB3aGVyZSB0aGUgTGludXgga2VybmVsIGRldmVsb3BlcnMgdHJhY2sga2VybmVsCiBidWdzLiAgVXNlcnMgYXJlIGVuY291cmFnZWQgdG8gcmVwb3J0IGFsbCBidWdzIHRoYXQgdGhleSBmaW5kIGluIHRoaXMKIHRvb2wuICBGb3IgZGV0YWlscyBvbiBob3cgdG8gdXNlIHRoZSBrZXJuZWwgYnVnemlsbGEsIHBsZWFzZSBzZWU6Ci0JaHR0cDovL3Rlc3Qua2VybmVsLm9yZy9idWd6aWxsYS9mYXEuaHRtbAorCWh0dHA6Ly9idWd6aWxsYS5rZXJuZWwub3JnL3BhZ2UuY2dpP2lkPWZhcS5odG1sCiAKIFRoZSBmaWxlIFJFUE9SVElORy1CVUdTIGluIHRoZSBtYWluIGtlcm5lbCBzb3VyY2UgZGlyZWN0b3J5IGhhcyBhIGdvb2QKIHRlbXBsYXRlIGZvciBob3cgdG8gcmVwb3J0IGEgcG9zc2libGUga2VybmVsIGJ1ZywgYW5kIGRldGFpbHMgd2hhdCBraW5kCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL1N1Ym1pdHRpbmdQYXRjaGVzIGIvRG9jdW1lbnRhdGlvbi9TdWJtaXR0aW5nUGF0Y2hlcwppbmRleCA5YzkzYTAzLi4xMThjYTZlIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL1N1Ym1pdHRpbmdQYXRjaGVzCisrKyBiL0RvY3VtZW50YXRpb24vU3VibWl0dGluZ1BhdGNoZXMKQEAgLTMyNyw2ICszMjcsNTIgQEAKIG5vdywgYnV0IHlvdSBjYW4gZG8gdGhpcyB0byBtYXJrIGludGVybmFsIGNvbXBhbnkgcHJvY2VkdXJlcyBvciBqdXN0CiBwb2ludCBvdXQgc29tZSBzcGVjaWFsIGRldGFpbCBhYm91dCB0aGUgc2lnbi1vZmYuIAogCitJZiB5b3UgYXJlIGEgc3Vic3lzdGVtIG9yIGJyYW5jaCBtYWludGFpbmVyLCBzb21ldGltZXMgeW91IG5lZWQgdG8gc2xpZ2h0bHkKK21vZGlmeSBwYXRjaGVzIHlvdSByZWNlaXZlIGluIG9yZGVyIHRvIG1lcmdlIHRoZW0sIGJlY2F1c2UgdGhlIGNvZGUgaXMgbm90CitleGFjdGx5IHRoZSBzYW1lIGluIHlvdXIgdHJlZSBhbmQgdGhlIHN1Ym1pdHRlcnMnLiBJZiB5b3Ugc3RpY2sgc3RyaWN0bHkgdG8KK3J1bGUgKGMpLCB5b3Ugc2hvdWxkIGFzayB0aGUgc3VibWl0dGVyIHRvIHJlZGlmZiwgYnV0IHRoaXMgaXMgYSB0b3RhbGx5Citjb3VudGVyLXByb2R1Y3RpdmUgd2FzdGUgb2YgdGltZSBhbmQgZW5lcmd5LiBSdWxlIChiKSBhbGxvd3MgeW91IHRvIGFkanVzdAordGhlIGNvZGUsIGJ1dCB0aGVuIGl0IGlzIHZlcnkgaW1wb2xpdGUgdG8gY2hhbmdlIG9uZSBzdWJtaXR0ZXIncyBjb2RlIGFuZAorbWFrZSBoaW0gZW5kb3JzZSB5b3VyIGJ1Z3MuIFRvIHNvbHZlIHRoaXMgcHJvYmxlbSwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdAoreW91IGFkZCBhIGxpbmUgYmV0d2VlbiB0aGUgbGFzdCBTaWduZWQtb2ZmLWJ5IGhlYWRlciBhbmQgeW91cnMsIGluZGljYXRpbmcKK3RoZSBuYXR1cmUgb2YgeW91ciBjaGFuZ2VzLiBXaGlsZSB0aGVyZSBpcyBub3RoaW5nIG1hbmRhdG9yeSBhYm91dCB0aGlzLCBpdAorc2VlbXMgbGlrZSBwcmVwZW5kaW5nIHRoZSBkZXNjcmlwdGlvbiB3aXRoIHlvdXIgbWFpbCBhbmQvb3IgbmFtZSwgYWxsCitlbmNsb3NlZCBpbiBzcXVhcmUgYnJhY2tldHMsIGlzIG5vdGljZWFibGUgZW5vdWdoIHRvIG1ha2UgaXQgb2J2aW91cyB0aGF0Cit5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBsYXN0LW1pbnV0ZSBjaGFuZ2VzLiBFeGFtcGxlIDoKKworCVNpZ25lZC1vZmYtYnk6IFJhbmRvbSBKIERldmVsb3BlciA8cmFuZG9tQGRldmVsb3Blci5leGFtcGxlLm9yZz4KKwlbbHVja3lAbWFpbnRhaW5lci5leGFtcGxlLm9yZzogc3RydWN0IGZvbyBtb3ZlZCBmcm9tIGZvby5jIHRvIGZvby5oXQorCVNpZ25lZC1vZmYtYnk6IEx1Y2t5IEsgTWFpbnRhaW5lciA8bHVja3lAbWFpbnRhaW5lci5leGFtcGxlLm9yZz4KKworVGhpcyBwcmFjdGlzZSBpcyBwYXJ0aWN1bGFybHkgaGVscGZ1bCBpZiB5b3UgbWFpbnRhaW4gYSBzdGFibGUgYnJhbmNoIGFuZAord2FudCBhdCB0aGUgc2FtZSB0aW1lIHRvIGNyZWRpdCB0aGUgYXV0aG9yLCB0cmFjayBjaGFuZ2VzLCBtZXJnZSB0aGUgZml4LAorYW5kIHByb3RlY3QgdGhlIHN1Ym1pdHRlciBmcm9tIGNvbXBsYWludHMuIE5vdGUgdGhhdCB1bmRlciBubyBjaXJjdW1zdGFuY2VzCitjYW4geW91IGNoYW5nZSB0aGUgYXV0aG9yJ3MgaWRlbnRpdHkgKHRoZSBGcm9tIGhlYWRlciksIGFzIGl0IGlzIHRoZSBvbmUKK3doaWNoIGFwcGVhcnMgaW4gdGhlIGNoYW5nZWxvZy4KKworU3BlY2lhbCBub3RlIHRvIGJhY2stcG9ydGVyczogSXQgc2VlbXMgdG8gYmUgYSBjb21tb24gYW5kIHVzZWZ1bCBwcmFjdGlzZQordG8gaW5zZXJ0IGFuIGluZGljYXRpb24gb2YgdGhlIG9yaWdpbiBvZiBhIHBhdGNoIGF0IHRoZSB0b3Agb2YgdGhlIGNvbW1pdAorbWVzc2FnZSAoanVzdCBhZnRlciB0aGUgc3ViamVjdCBsaW5lKSB0byBmYWNpbGl0YXRlIHRyYWNraW5nLiBGb3IgaW5zdGFuY2UsCitoZXJlJ3Mgd2hhdCB3ZSBzZWUgaW4gMi42LXN0YWJsZSA6CisKKyAgICBEYXRlOiAgIFR1ZSBNYXkgMTMgMTk6MTA6MzAgMjAwOCArMDAwMAorCisgICAgICAgIFNDU0k6IGxpYmlzY3NpIHJlZ3Jlc3Npb24gaW4gMi42LjI1OiBmaXggbm9wIHRpbWVyIGhhbmRsaW5nCisKKyAgICAgICAgY29tbWl0IDRjZjEwNDM1OTNkYjZhMzM3ZjEwZTAwNmMyM2M2OWU1ZmM5M2U3MjIgdXBzdHJlYW0KKworQW5kIGhlcmUncyB3aGF0IGFwcGVhcnMgaW4gMi40IDoKKworICAgIERhdGU6ICAgVHVlIE1heSAxMyAyMjoxMjoyNyAyMDA4ICswMjAwCisKKyAgICAgICAgd2lyZWxlc3MsIGFpcm86IHdhaXRidXN5KCkgd29uJ3QgZGVsYXkKKworICAgICAgICBbYmFja3BvcnQgb2YgMi42IGNvbW1pdCBiN2FjYmRmYmQxZjI3N2MxZWIyM2YzNDRmODk5Y2ZhNGNkMGJmMzZhXQorCitXaGF0ZXZlciB0aGUgZm9ybWF0LCB0aGlzIGluZm9ybWF0aW9uIHByb3ZpZGVzIGEgdmFsdWFibGUgaGVscCB0byBwZW9wbGUKK3RyYWNraW5nIHlvdXIgdHJlZXMsIGFuZCB0byBwZW9wbGUgdHJ5aW5nIHRvIHRyb3VibGUtc2hvb3QgYnVncyBpbiB5b3VyCit0cmVlLgorCiAKIDEzKSBXaGVuIHRvIHVzZSBBY2tlZC1ieTogYW5kIENjOgogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2FjY291bnRpbmcvdGFza3N0YXRzLXN0cnVjdC50eHQgYi9Eb2N1bWVudGF0aW9uL2FjY291bnRpbmcvdGFza3N0YXRzLXN0cnVjdC50eHQKaW5kZXggOGFhNzUyOS4uY2Q3ODRmNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9hY2NvdW50aW5nL3Rhc2tzdGF0cy1zdHJ1Y3QudHh0CisrKyBiL0RvY3VtZW50YXRpb24vYWNjb3VudGluZy90YXNrc3RhdHMtc3RydWN0LnR4dApAQCAtMjQsNiArMjQsOCBAQAogCiA0KSBQZXItdGFzayBhbmQgcGVyLXRocmVhZCBjb250ZXh0IHN3aXRjaCBjb3VudCBzdGF0aXN0aWNzCiAKKzUpIFRpbWUgYWNjb3VudGluZyBmb3IgU01UIG1hY2hpbmVzCisKIEZ1dHVyZSBleHRlbnNpb24gc2hvdWxkIGFkZCBmaWVsZHMgdG8gdGhlIGVuZCBvZiB0aGUgdGFza3N0YXRzIHN0cnVjdCwgYW5kCiBzaG91bGQgbm90IGNoYW5nZSB0aGUgcmVsYXRpdmUgcG9zaXRpb24gb2YgZWFjaCBmaWVsZCB3aXRoaW4gdGhlIHN0cnVjdC4KIApAQCAtMTY0LDQgKzE2Niw4IEBACiAJX191NjQJbnZjc3c7CQkJLyogQ29udGV4dCB2b2x1bnRhcnkgc3dpdGNoIGNvdW50ZXIgKi8KIAlfX3U2NAluaXZjc3c7CQkJLyogQ29udGV4dCBpbnZvbHVudGFyeSBzd2l0Y2ggY291bnRlciAqLwogCis1KSBUaW1lIGFjY291bnRpbmcgZm9yIFNNVCBtYWNoaW5lcworCV9fdTY0CWFjX3V0aW1lc2NhbGVkOwkJLyogdXRpbWUgc2NhbGVkIG9uIGZyZXF1ZW5jeSBldGMgKi8KKwlfX3U2NAlhY19zdGltZXNjYWxlZDsJCS8qIHN0aW1lIHNjYWxlZCBvbiBmcmVxdWVuY3kgZXRjICovCisJX191NjQJY3B1X3NjYWxlZF9ydW5fcmVhbF90b3RhbDsgLyogc2NhbGVkIGNwdV9ydW5fcmVhbF90b3RhbCAqLwogfQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGIgYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0YgppbmRleCBiNzE0MTgzLi5lYjdiZTM5IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0YgorKysgYi9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0YgpAQCAtMyw3ICszLDcgQEAKIAk9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiBMaWNlbnNlOgkJR1BMdjIKLUF1dGhvciAmIE1haW50YWluZXI6CU1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CitBdXRob3IgJiBNYWludGFpbmVyOglNaWd1ZWwgT2plZGEgU2FuZG9uaXMKIERhdGU6CQkJMjAwNi0xMC0yNwogCiAKQEAgLTIyLDcgKzIyLDcgQEAKIDEuIERSSVZFUiBJTkZPUk1BVElPTgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVRoaXMgZHJpdmVyIHN1cHBvcnQgb25lIGNmYWcxMjg2NGIgZGlzcGxheSBhdCB0aW1lLgorVGhpcyBkcml2ZXIgc3VwcG9ydHMgYSBjZmFnMTI4NjRiIExDRC4KIAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiLWV4YW1wbGUuYyBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9jZmFnMTI4NjRiLWV4YW1wbGUuYwppbmRleCA3YmZhYzM1Li4yY2FlZWE1IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi1leGFtcGxlLmMKKysrIGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2NmYWcxMjg2NGItZXhhbXBsZS5jCkBAIC00LDcgKzQsNyBAQAogICogRGVzY3JpcHRpb246IGNmYWcxMjg2NGIgTENEIHVzZXJzcGFjZSBleGFtcGxlIHByb2dyYW0KICAqICAgICBMaWNlbnNlOiBHUEx2MgogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkva3MwMTA4IGIvRG9jdW1lbnRhdGlvbi9hdXhkaXNwbGF5L2tzMDEwOAppbmRleCA5MmIwM2I2Li44ZGRkYTBjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2F1eGRpc3BsYXkva3MwMTA4CisrKyBiL0RvY3VtZW50YXRpb24vYXV4ZGlzcGxheS9rczAxMDgKQEAgLTMsNyArMyw3IEBACiAJPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIExpY2Vuc2U6CQlHUEx2MgotQXV0aG9yICYgTWFpbnRhaW5lcjoJTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KK0F1dGhvciAmIE1haW50YWluZXI6CU1pZ3VlbCBPamVkYSBTYW5kb25pcwogRGF0ZToJCQkyMDA2LTEwLTI3CiAKIApAQCAtMjEsNyArMjEsNyBAQAogMS4gRFJJVkVSIElORk9STUFUSU9OCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBkcml2ZXIgc3VwcG9ydCB0aGUga3MwMTA4IExDRCBjb250cm9sbGVyLgorVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIGtzMDEwOCBMQ0QgY29udHJvbGxlci4KIAogCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYmxvY2svZGF0YS1pbnRlZ3JpdHkudHh0IGIvRG9jdW1lbnRhdGlvbi9ibG9jay9kYXRhLWludGVncml0eS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlkYzhkOAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vYmxvY2svZGF0YS1pbnRlZ3JpdHkudHh0CkBAIC0wLDAgKzEsMzI3IEBACistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLiBJTlRST0RVQ1RJT04KKworTW9kZXJuIGZpbGVzeXN0ZW1zIGZlYXR1cmUgY2hlY2tzdW1taW5nIG9mIGRhdGEgYW5kIG1ldGFkYXRhIHRvCitwcm90ZWN0IGFnYWluc3QgZGF0YSBjb3JydXB0aW9uLiAgSG93ZXZlciwgdGhlIGRldGVjdGlvbiBvZiB0aGUKK2NvcnJ1cHRpb24gaXMgZG9uZSBhdCByZWFkIHRpbWUgd2hpY2ggY291bGQgcG90ZW50aWFsbHkgYmUgbW9udGhzCithZnRlciB0aGUgZGF0YSB3YXMgd3JpdHRlbi4gIEF0IHRoYXQgcG9pbnQgdGhlIG9yaWdpbmFsIGRhdGEgdGhhdCB0aGUKK2FwcGxpY2F0aW9uIHRyaWVkIHRvIHdyaXRlIGlzIG1vc3QgbGlrZWx5IGxvc3QuCisKK1RoZSBzb2x1dGlvbiBpcyB0byBlbnN1cmUgdGhhdCB0aGUgZGlzayBpcyBhY3R1YWxseSBzdG9yaW5nIHdoYXQgdGhlCithcHBsaWNhdGlvbiBtZWFudCBpdCB0by4gIFJlY2VudCBhZGRpdGlvbnMgdG8gYm90aCB0aGUgU0NTSSBmYW1pbHkKK3Byb3RvY29scyAoU0JDIERhdGEgSW50ZWdyaXR5IEZpZWxkLCBTQ0MgcHJvdGVjdGlvbiBwcm9wb3NhbCkgYXMgd2VsbAorYXMgU0FUQS9UMTMgKEV4dGVybmFsIFBhdGggUHJvdGVjdGlvbikgdHJ5IHRvIHJlbWVkeSB0aGlzIGJ5IGFkZGluZworc3VwcG9ydCBmb3IgYXBwZW5kaW5nIGludGVncml0eSBtZXRhZGF0YSB0byBhbiBJL08uICBUaGUgaW50ZWdyaXR5CittZXRhZGF0YSAob3IgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiBpbiBTQ1NJIHRlcm1pbm9sb2d5KSBpbmNsdWRlcyBhCitjaGVja3N1bSBmb3IgZWFjaCBzZWN0b3IgYXMgd2VsbCBhcyBhbiBpbmNyZW1lbnRpbmcgY291bnRlciB0aGF0CitlbnN1cmVzIHRoZSBpbmRpdmlkdWFsIHNlY3RvcnMgYXJlIHdyaXR0ZW4gaW4gdGhlIHJpZ2h0IG9yZGVyLiAgQW5kCitmb3Igc29tZSBwcm90ZWN0aW9uIHNjaGVtZXMgYWxzbyB0aGF0IHRoZSBJL08gaXMgd3JpdHRlbiB0byB0aGUgcmlnaHQKK3BsYWNlIG9uIGRpc2suCisKK0N1cnJlbnQgc3RvcmFnZSBjb250cm9sbGVycyBhbmQgZGV2aWNlcyBpbXBsZW1lbnQgdmFyaW91cyBwcm90ZWN0aXZlCittZWFzdXJlcywgZm9yIGluc3RhbmNlIGNoZWNrc3VtbWluZyBhbmQgc2NydWJiaW5nLiAgQnV0IHRoZXNlCit0ZWNobm9sb2dpZXMgYXJlIHdvcmtpbmcgaW4gdGhlaXIgb3duIGlzb2xhdGVkIGRvbWFpbnMgb3IgYXQgYmVzdAorYmV0d2VlbiBhZGphY2VudCBub2RlcyBpbiB0aGUgSS9PIHBhdGguICBUaGUgaW50ZXJlc3RpbmcgdGhpbmcgYWJvdXQKK0RJRiBhbmQgdGhlIG90aGVyIGludGVncml0eSBleHRlbnNpb25zIGlzIHRoYXQgdGhlIHByb3RlY3Rpb24gZm9ybWF0CitpcyB3ZWxsIGRlZmluZWQgYW5kIGV2ZXJ5IG5vZGUgaW4gdGhlIEkvTyBwYXRoIGNhbiB2ZXJpZnkgdGhlCitpbnRlZ3JpdHkgb2YgdGhlIEkvTyBhbmQgcmVqZWN0IGl0IGlmIGNvcnJ1cHRpb24gaXMgZGV0ZWN0ZWQuICBUaGlzCithbGxvd3Mgbm90IG9ubHkgY29ycnVwdGlvbiBwcmV2ZW50aW9uIGJ1dCBhbHNvIGlzb2xhdGlvbiBvZiB0aGUgcG9pbnQKK29mIGZhaWx1cmUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzIuIFRIRSBEQVRBIElOVEVHUklUWSBFWFRFTlNJT05TCisKK0FzIHdyaXR0ZW4sIHRoZSBwcm90b2NvbCBleHRlbnNpb25zIG9ubHkgcHJvdGVjdCB0aGUgcGF0aCBiZXR3ZWVuCitjb250cm9sbGVyIGFuZCBzdG9yYWdlIGRldmljZS4gIEhvd2V2ZXIsIG1hbnkgY29udHJvbGxlcnMgYWN0dWFsbHkKK2FsbG93IHRoZSBvcGVyYXRpbmcgc3lzdGVtIHRvIGludGVyYWN0IHdpdGggdGhlIGludGVncml0eSBtZXRhZGF0YQorKElNRCkuICBXZSBoYXZlIGJlZW4gd29ya2luZyB3aXRoIHNldmVyYWwgRkMvU0FTIEhCQSB2ZW5kb3JzIHRvIGVuYWJsZQordGhlIHByb3RlY3Rpb24gaW5mb3JtYXRpb24gdG8gYmUgdHJhbnNmZXJyZWQgdG8gYW5kIGZyb20gdGhlaXIKK2NvbnRyb2xsZXJzLgorCitUaGUgU0NTSSBEYXRhIEludGVncml0eSBGaWVsZCB3b3JrcyBieSBhcHBlbmRpbmcgOCBieXRlcyBvZiBwcm90ZWN0aW9uCitpbmZvcm1hdGlvbiB0byBlYWNoIHNlY3Rvci4gIFRoZSBkYXRhICsgaW50ZWdyaXR5IG1ldGFkYXRhIGlzIHN0b3JlZAoraW4gNTIwIGJ5dGUgc2VjdG9ycyBvbiBkaXNrLiAgRGF0YSArIElNRCBhcmUgaW50ZXJsZWF2ZWQgd2hlbgordHJhbnNmZXJyZWQgYmV0d2VlbiB0aGUgY29udHJvbGxlciBhbmQgdGFyZ2V0LiAgVGhlIFQxMyBwcm9wb3NhbCBpcworc2ltaWxhci4KKworQmVjYXVzZSBpdCBpcyBoaWdobHkgaW5jb252ZW5pZW50IGZvciBvcGVyYXRpbmcgc3lzdGVtcyB0byBkZWFsIHdpdGgKKzUyMCAoYW5kIDQxMDQpIGJ5dGUgc2VjdG9ycywgd2UgYXBwcm9hY2hlZCBzZXZlcmFsIEhCQSB2ZW5kb3JzIGFuZAorZW5jb3VyYWdlZCB0aGVtIHRvIGFsbG93IHNlcGFyYXRpb24gb2YgdGhlIGRhdGEgYW5kIGludGVncml0eSBtZXRhZGF0YQorc2NhdHRlci1nYXRoZXIgbGlzdHMuCisKK1RoZSBjb250cm9sbGVyIHdpbGwgaW50ZXJsZWF2ZSB0aGUgYnVmZmVycyBvbiB3cml0ZSBhbmQgc3BsaXQgdGhlbSBvbgorcmVhZC4gIFRoaXMgbWVhbnMgdGhhdCB0aGUgTGludXggY2FuIERNQSB0aGUgZGF0YSBidWZmZXJzIHRvIGFuZCBmcm9tCitob3N0IG1lbW9yeSB3aXRob3V0IGNoYW5nZXMgdG8gdGhlIHBhZ2UgY2FjaGUuCisKK0Fsc28sIHRoZSAxNi1iaXQgQ1JDIGNoZWNrc3VtIG1hbmRhdGVkIGJ5IGJvdGggdGhlIFNDU0kgYW5kIFNBVEEgc3BlY3MKK2lzIHNvbWV3aGF0IGhlYXZ5IHRvIGNvbXB1dGUgaW4gc29mdHdhcmUuICBCZW5jaG1hcmtzIGZvdW5kIHRoYXQKK2NhbGN1bGF0aW5nIHRoaXMgY2hlY2tzdW0gaGFkIGEgc2lnbmlmaWNhbnQgaW1wYWN0IG9uIHN5c3RlbQorcGVyZm9ybWFuY2UgZm9yIGEgbnVtYmVyIG9mIHdvcmtsb2Fkcy4gIFNvbWUgY29udHJvbGxlcnMgYWxsb3cgYQorbGlnaHRlci13ZWlnaHQgY2hlY2tzdW0gdG8gYmUgdXNlZCB3aGVuIGludGVyZmFjaW5nIHdpdGggdGhlIG9wZXJhdGluZworc3lzdGVtLiAgRW11bGV4LCBmb3IgaW5zdGFuY2UsIHN1cHBvcnRzIHRoZSBUQ1AvSVAgY2hlY2tzdW0gaW5zdGVhZC4KK1RoZSBJUCBjaGVja3N1bSByZWNlaXZlZCBmcm9tIHRoZSBPUyBpcyBjb252ZXJ0ZWQgdG8gdGhlIDE2LWJpdCBDUkMKK3doZW4gd3JpdGluZyBhbmQgdmljZSB2ZXJzYS4gIFRoaXMgYWxsb3dzIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgdG8gYmUKK2dlbmVyYXRlZCBieSBMaW51eCBvciB0aGUgYXBwbGljYXRpb24gYXQgdmVyeSBsb3cgY29zdCAoY29tcGFyYWJsZSB0bworc29mdHdhcmUgUkFJRDUpLgorCitUaGUgSVAgY2hlY2tzdW0gaXMgd2Vha2VyIHRoYW4gdGhlIENSQyBpbiB0ZXJtcyBvZiBkZXRlY3RpbmcgYml0CitlcnJvcnMuICBIb3dldmVyLCB0aGUgc3RyZW5ndGggaXMgcmVhbGx5IGluIHRoZSBzZXBhcmF0aW9uIG9mIHRoZSBkYXRhCitidWZmZXJzIGFuZCB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhLiAgVGhlc2UgdHdvIGRpc3RpbmN0IGJ1ZmZlcnMgbXVjaAorbWF0Y2ggdXAgZm9yIGFuIEkvTyB0byBjb21wbGV0ZS4KKworVGhlIHNlcGFyYXRpb24gb2YgdGhlIGRhdGEgYW5kIGludGVncml0eSBtZXRhZGF0YSBidWZmZXJzIGFzIHdlbGwgYXMKK3RoZSBjaG9pY2UgaW4gY2hlY2tzdW1zIGlzIHJlZmVycmVkIHRvIGFzIHRoZSBEYXRhIEludGVncml0eQorRXh0ZW5zaW9ucy4gIEFzIHRoZXNlIGV4dGVuc2lvbnMgYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoZSBwcm90b2NvbAorYm9kaWVzIChUMTAsIFQxMyksIE9yYWNsZSBhbmQgaXRzIHBhcnRuZXJzIGFyZSB0cnlpbmcgdG8gc3RhbmRhcmRpemUKK3RoZW0gd2l0aGluIHRoZSBTdG9yYWdlIE5ldHdvcmtpbmcgSW5kdXN0cnkgQXNzb2NpYXRpb24uCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzMuIEtFUk5FTCBDSEFOR0VTCisKK1RoZSBkYXRhIGludGVncml0eSBmcmFtZXdvcmsgaW4gTGludXggZW5hYmxlcyBwcm90ZWN0aW9uIGluZm9ybWF0aW9uCit0byBiZSBwaW5uZWQgdG8gSS9PcyBhbmQgc2VudCB0by9yZWNlaXZlZCBmcm9tIGNvbnRyb2xsZXJzIHRoYXQKK3N1cHBvcnQgaXQuCisKK1RoZSBhZHZhbnRhZ2UgdG8gdGhlIGludGVncml0eSBleHRlbnNpb25zIGluIFNDU0kgYW5kIFNBVEEgaXMgdGhhdAordGhleSBlbmFibGUgdXMgdG8gcHJvdGVjdCB0aGUgZW50aXJlIHBhdGggZnJvbSBhcHBsaWNhdGlvbiB0byBzdG9yYWdlCitkZXZpY2UuICBIb3dldmVyLCBhdCB0aGUgc2FtZSB0aW1lIHRoaXMgaXMgYWxzbyB0aGUgYmlnZ2VzdAorZGlzYWR2YW50YWdlLiBJdCBtZWFucyB0aGF0IHRoZSBwcm90ZWN0aW9uIGluZm9ybWF0aW9uIG11c3QgYmUgaW4gYQorZm9ybWF0IHRoYXQgY2FuIGJlIHVuZGVyc3Rvb2QgYnkgdGhlIGRpc2suCisKK0dlbmVyYWxseSBMaW51eC9QT1NJWCBhcHBsaWNhdGlvbnMgYXJlIGFnbm9zdGljIHRvIHRoZSBpbnRyaWNhY2llcyBvZgordGhlIHN0b3JhZ2UgZGV2aWNlcyB0aGV5IGFyZSBhY2Nlc3NpbmcuICBUaGUgdmlydHVhbCBmaWxlc3lzdGVtIHN3aXRjaAorYW5kIHRoZSBibG9jayBsYXllciBtYWtlIHRoaW5ncyBsaWtlIGhhcmR3YXJlIHNlY3RvciBzaXplIGFuZAordHJhbnNwb3J0IHByb3RvY29scyBjb21wbGV0ZWx5IHRyYW5zcGFyZW50IHRvIHRoZSBhcHBsaWNhdGlvbi4KKworSG93ZXZlciwgdGhpcyBsZXZlbCBvZiBkZXRhaWwgaXMgcmVxdWlyZWQgd2hlbiBwcmVwYXJpbmcgdGhlCitwcm90ZWN0aW9uIGluZm9ybWF0aW9uIHRvIHNlbmQgdG8gYSBkaXNrLiAgQ29uc2VxdWVudGx5LCB0aGUgdmVyeQorY29uY2VwdCBvZiBhbiBlbmQtdG8tZW5kIHByb3RlY3Rpb24gc2NoZW1lIGlzIGEgbGF5ZXJpbmcgdmlvbGF0aW9uLgorSXQgaXMgY29tcGxldGVseSB1bnJlYXNvbmFibGUgZm9yIGFuIGFwcGxpY2F0aW9uIHRvIGJlIGF3YXJlIHdoZXRoZXIKK2l0IGlzIGFjY2Vzc2luZyBhIFNDU0kgb3IgU0FUQSBkaXNrLgorCitUaGUgZGF0YSBpbnRlZ3JpdHkgc3VwcG9ydCBpbXBsZW1lbnRlZCBpbiBMaW51eCBhdHRlbXB0cyB0byBoaWRlIHRoaXMKK2Zyb20gdGhlIGFwcGxpY2F0aW9uLiAgQXMgZmFyIGFzIHRoZSBhcHBsaWNhdGlvbiAoYW5kIHRvIHNvbWUgZXh0ZW50Cit0aGUga2VybmVsKSBpcyBjb25jZXJuZWQsIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgaXMgb3BhcXVlIGluZm9ybWF0aW9uCit0aGF0J3MgYXR0YWNoZWQgdG8gdGhlIEkvTy4KKworVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYWxsb3dzIHRoZSBibG9jayBsYXllciB0byBhdXRvbWF0aWNhbGx5CitnZW5lcmF0ZSB0aGUgcHJvdGVjdGlvbiBpbmZvcm1hdGlvbiBmb3IgYW55IEkvTy4gIEV2ZW50dWFsbHkgdGhlCitpbnRlbnQgaXMgdG8gbW92ZSB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGNhbGN1bGF0aW9uIHRvIHVzZXJzcGFjZSBmb3IKK3VzZXIgZGF0YS4gIE1ldGFkYXRhIGFuZCBvdGhlciBJL08gdGhhdCBvcmlnaW5hdGVzIHdpdGhpbiB0aGUga2VybmVsCit3aWxsIHN0aWxsIHVzZSB0aGUgYXV0b21hdGljIGdlbmVyYXRpb24gaW50ZXJmYWNlLgorCitTb21lIHN0b3JhZ2UgZGV2aWNlcyBhbGxvdyBlYWNoIGhhcmR3YXJlIHNlY3RvciB0byBiZSB0YWdnZWQgd2l0aCBhCisxNi1iaXQgdmFsdWUuICBUaGUgb3duZXIgb2YgdGhpcyB0YWcgc3BhY2UgaXMgdGhlIG93bmVyIG9mIHRoZSBibG9jaworZGV2aWNlLiAgSS5lLiB0aGUgZmlsZXN5c3RlbSBpbiBtb3N0IGNhc2VzLiAgVGhlIGZpbGVzeXN0ZW0gY2FuIHVzZQordGhpcyBleHRyYSBzcGFjZSB0byB0YWcgc2VjdG9ycyBhcyB0aGV5IHNlZSBmaXQuICBCZWNhdXNlIHRoZSB0YWcKK3NwYWNlIGlzIGxpbWl0ZWQsIHRoZSBibG9jayBpbnRlcmZhY2UgYWxsb3dzIHRhZ2dpbmcgYmlnZ2VyIGNodW5rcyBieQord2F5IG9mIGludGVybGVhdmluZy4gIFRoaXMgd2F5LCA4KjE2IGJpdHMgb2YgaW5mb3JtYXRpb24gY2FuIGJlCithdHRhY2hlZCB0byBhIHR5cGljYWwgNEtCIGZpbGVzeXN0ZW0gYmxvY2suCisKK1RoaXMgYWxzbyBtZWFucyB0aGF0IGFwcGxpY2F0aW9ucyBzdWNoIGFzIGZzY2sgYW5kIG1rZnMgd2lsbCBuZWVkCithY2Nlc3MgdG8gbWFuaXB1bGF0ZSB0aGUgdGFncyBmcm9tIHVzZXIgc3BhY2UuICBBIHBhc3N0aHJvdWdoCitpbnRlcmZhY2UgZm9yIHRoaXMgaXMgYmVpbmcgd29ya2VkIG9uLgorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzQuIEJMT0NLIExBWUVSIElNUExFTUVOVEFUSU9OIERFVEFJTFMKKworNC4xIEJJTworCitUaGUgZGF0YSBpbnRlZ3JpdHkgcGF0Y2hlcyBhZGQgYSBuZXcgZmllbGQgdG8gc3RydWN0IGJpbyB3aGVuCitDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgaXMgZW5hYmxlZC4gIGJpby0+YmlfaW50ZWdyaXR5IGlzIGEgcG9pbnRlcgordG8gYSBzdHJ1Y3QgYmlwIHdoaWNoIGNvbnRhaW5zIHRoZSBiaW8gaW50ZWdyaXR5IHBheWxvYWQuICBFc3NlbnRpYWxseQorYSBiaXAgaXMgYSB0cmltbWVkIGRvd24gc3RydWN0IGJpbyB3aGljaCBob2xkcyBhIGJpb192ZWMgY29udGFpbmluZwordGhlIGludGVncml0eSBtZXRhZGF0YSBhbmQgdGhlIHJlcXVpcmVkIGhvdXNla2VlcGluZyBpbmZvcm1hdGlvbiAoYnZlYworcG9vbCwgdmVjdG9yIGNvdW50LCBldGMuKQorCitBIGtlcm5lbCBzdWJzeXN0ZW0gY2FuIGVuYWJsZSBkYXRhIGludGVncml0eSBwcm90ZWN0aW9uIG9uIGEgYmlvIGJ5CitjYWxsaW5nIGJpb19pbnRlZ3JpdHlfYWxsb2MoYmlvKS4gIFRoaXMgd2lsbCBhbGxvY2F0ZSBhbmQgYXR0YWNoIHRoZQorYmlwIHRvIHRoZSBiaW8uCisKK0luZGl2aWR1YWwgcGFnZXMgY29udGFpbmluZyBpbnRlZ3JpdHkgbWV0YWRhdGEgY2FuIHN1YnNlcXVlbnRseSBiZQorYXR0YWNoZWQgdXNpbmcgYmlvX2ludGVncml0eV9hZGRfcGFnZSgpLgorCitiaW9fZnJlZSgpIHdpbGwgYXV0b21hdGljYWxseSBmcmVlIHRoZSBiaXAuCisKKworNC4yIEJMT0NLIERFVklDRQorCitCZWNhdXNlIHRoZSBmb3JtYXQgb2YgdGhlIHByb3RlY3Rpb24gZGF0YSBpcyB0aWVkIHRvIHRoZSBwaHlzaWNhbAorZGlzaywgZWFjaCBibG9jayBkZXZpY2UgaGFzIGJlZW4gZXh0ZW5kZWQgd2l0aCBhIGJsb2NrIGludGVncml0eQorcHJvZmlsZSAoc3RydWN0IGJsa19pbnRlZ3JpdHkpLiAgVGhpcyBvcHRpb25hbCBwcm9maWxlIGlzIHJlZ2lzdGVyZWQKK3dpdGggdGhlIGJsb2NrIGxheWVyIHVzaW5nIGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIoKS4KKworVGhlIHByb2ZpbGUgY29udGFpbnMgY2FsbGJhY2sgZnVuY3Rpb25zIGZvciBnZW5lcmF0aW5nIGFuZCB2ZXJpZnlpbmcKK3RoZSBwcm90ZWN0aW9uIGRhdGEsIGFzIHdlbGwgYXMgZ2V0dGluZyBhbmQgc2V0dGluZyBhcHBsaWNhdGlvbiB0YWdzLgorVGhlIHByb2ZpbGUgYWxzbyBjb250YWlucyBhIGZldyBjb25zdGFudHMgdG8gYWlkIGluIGNvbXBsZXRpbmcsCittZXJnaW5nIGFuZCBzcGxpdHRpbmcgdGhlIGludGVncml0eSBtZXRhZGF0YS4KKworTGF5ZXJlZCBibG9jayBkZXZpY2VzIHdpbGwgbmVlZCB0byBwaWNrIGEgcHJvZmlsZSB0aGF0J3MgYXBwcm9wcmlhdGUKK2ZvciBhbGwgc3ViZGV2aWNlcy4gIGJsa19pbnRlZ3JpdHlfY29tcGFyZSgpIGNhbiBoZWxwIHdpdGggdGhhdC4gIERNCithbmQgTUQgbGluZWFyLCBSQUlEMCBhbmQgUkFJRDEgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuICBSQUlENC81LzYKK3dpbGwgcmVxdWlyZSBleHRyYSB3b3JrIGR1ZSB0byB0aGUgYXBwbGljYXRpb24gdGFnLgorCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzUuMCBCTE9DSyBMQVlFUiBJTlRFR1JJVFkgQVBJCisKKzUuMSBOT1JNQUwgRklMRVNZU1RFTQorCisgICAgVGhlIG5vcm1hbCBmaWxlc3lzdGVtIGlzIHVuYXdhcmUgdGhhdCB0aGUgdW5kZXJseWluZyBibG9jayBkZXZpY2UKKyAgICBpcyBjYXBhYmxlIG9mIHNlbmRpbmcvcmVjZWl2aW5nIGludGVncml0eSBtZXRhZGF0YS4gIFRoZSBJTUQgd2lsbAorICAgIGJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHRoZSBibG9jayBsYXllciBhdCBzdWJtaXRfYmlvKCkgdGltZQorICAgIGluIGNhc2Ugb2YgYSBXUklURS4gIEEgUkVBRCByZXF1ZXN0IHdpbGwgY2F1c2UgdGhlIEkvTyBpbnRlZ3JpdHkKKyAgICB0byBiZSB2ZXJpZmllZCB1cG9uIGNvbXBsZXRpb24uCisKKyAgICBJTUQgZ2VuZXJhdGlvbiBhbmQgdmVyaWZpY2F0aW9uIGNhbiBiZSB0b2dnbGVkIHVzaW5nIHRoZQorCisgICAgICAvc3lzL2Jsb2NrLzxiZGV2Pi9pbnRlZ3JpdHkvd3JpdGVfZ2VuZXJhdGUKKworICAgIGFuZAorCisgICAgICAvc3lzL2Jsb2NrLzxiZGV2Pi9pbnRlZ3JpdHkvcmVhZF92ZXJpZnkKKworICAgIGZsYWdzLgorCisKKzUuMiBJTlRFR1JJVFktQVdBUkUgRklMRVNZU1RFTQorCisgICAgQSBmaWxlc3lzdGVtIHRoYXQgaXMgaW50ZWdyaXR5LWF3YXJlIGNhbiBwcmVwYXJlIEkvT3Mgd2l0aCBJTUQKKyAgICBhdHRhY2hlZC4gIEl0IGNhbiBhbHNvIHVzZSB0aGUgYXBwbGljYXRpb24gdGFnIHNwYWNlIGlmIHRoaXMgaXMKKyAgICBzdXBwb3J0ZWQgYnkgdGhlIGJsb2NrIGRldmljZS4KKworCisgICAgaW50IGJkZXZfaW50ZWdyaXR5X2VuYWJsZWQoYmxvY2tfZGV2aWNlLCBpbnQgcncpOworCisgICAgICBiZGV2X2ludGVncml0eV9lbmFibGVkKCkgd2lsbCByZXR1cm4gMSBpZiB0aGUgYmxvY2sgZGV2aWNlCisgICAgICBzdXBwb3J0cyBpbnRlZ3JpdHkgbWV0YWRhdGEgdHJhbnNmZXIgZm9yIHRoZSBkYXRhIGRpcmVjdGlvbgorICAgICAgc3BlY2lmaWVkIGluICdydycuCisKKyAgICAgIGJkZXZfaW50ZWdyaXR5X2VuYWJsZWQoKSBob25vcnMgdGhlIHdyaXRlX2dlbmVyYXRlIGFuZAorICAgICAgcmVhZF92ZXJpZnkgZmxhZ3MgaW4gc3lzZnMgYW5kIHdpbGwgcmVzcG9uZCBhY2NvcmRpbmdseS4KKworCisgICAgaW50IGJpb19pbnRlZ3JpdHlfcHJlcChiaW8pOworCisgICAgICBUbyBnZW5lcmF0ZSBJTUQgZm9yIFdSSVRFIGFuZCB0byBzZXQgdXAgYnVmZmVycyBmb3IgUkVBRCwgdGhlCisgICAgICBmaWxlc3lzdGVtIG11c3QgY2FsbCBiaW9faW50ZWdyaXR5X3ByZXAoYmlvKS4KKworICAgICAgUHJpb3IgdG8gY2FsbGluZyB0aGlzIGZ1bmN0aW9uLCB0aGUgYmlvIGRhdGEgZGlyZWN0aW9uIGFuZCBzdGFydAorICAgICAgc2VjdG9yIG11c3QgYmUgc2V0LCBhbmQgdGhlIGJpbyBzaG91bGQgaGF2ZSBhbGwgZGF0YSBwYWdlcworICAgICAgYWRkZWQuICBJdCBpcyB1cCB0byB0aGUgY2FsbGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBiaW8gZG9lcyBub3QKKyAgICAgIGNoYW5nZSB3aGlsZSBJL08gaXMgaW4gcHJvZ3Jlc3MuCisKKyAgICAgIGJpb19pbnRlZ3JpdHlfcHJlcCgpIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBpZgorICAgICAgYmlvX2ludGVncml0eV9lbmFibGVkKCkgcmV0dXJuZWQgMS4KKworCisgICAgaW50IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoYmlvKTsKKworICAgICAgSWYgdGhlIGZpbGVzeXN0ZW0gd2FudHMgdG8gdXNlIHRoZSBhcHBsaWNhdGlvbiB0YWcgc3BhY2UgaXQgd2lsbAorICAgICAgZmlyc3QgaGF2ZSB0byBmaW5kIG91dCBob3cgbXVjaCBzdG9yYWdlIHNwYWNlIGlzIGF2YWlsYWJsZS4KKyAgICAgIEJlY2F1c2UgdGFnIHNwYWNlIGlzIGdlbmVyYWxseSBsaW1pdGVkICh1c3VhbGx5IDIgYnl0ZXMgcGVyCisgICAgICBzZWN0b3IgcmVnYXJkbGVzcyBvZiBzZWN0b3Igc2l6ZSksIHRoZSBpbnRlZ3JpdHkgZnJhbWV3b3JrCisgICAgICBzdXBwb3J0cyBpbnRlcmxlYXZpbmcgdGhlIGluZm9ybWF0aW9uIGJldHdlZW4gdGhlIHNlY3RvcnMgaW4gYW4KKyAgICAgIEkvTy4KKworICAgICAgRmlsZXN5c3RlbXMgY2FuIGNhbGwgYmlvX2ludGVncml0eV90YWdfc2l6ZShiaW8pIHRvIGZpbmQgb3V0IGhvdworICAgICAgbWFueSBieXRlcyBvZiBzdG9yYWdlIGFyZSBhdmFpbGFibGUgZm9yIHRoYXQgcGFydGljdWxhciBiaW8uCisKKyAgICAgIEFub3RoZXIgb3B0aW9uIGlzIGJkZXZfZ2V0X3RhZ19zaXplKGJsb2NrX2RldmljZSkgd2hpY2ggd2lsbAorICAgICAgcmV0dXJuIHRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIGJ5dGVzIHBlciBoYXJkd2FyZSBzZWN0b3IuCisKKworICAgIGludCBiaW9faW50ZWdyaXR5X3NldF90YWcoYmlvLCB2b2lkICp0YWdfYnVmLCBsZW4pOworCisgICAgICBBZnRlciBhIHN1Y2Nlc3NmdWwgcmV0dXJuIGZyb20gYmlvX2ludGVncml0eV9wcmVwKCksCisgICAgICBiaW9faW50ZWdyaXR5X3NldF90YWcoKSBjYW4gYmUgdXNlZCB0byBhdHRhY2ggYW4gb3BhcXVlIHRhZworICAgICAgYnVmZmVyIHRvIGEgYmlvLiAgT2J2aW91c2x5IHRoaXMgb25seSBtYWtlcyBzZW5zZSBpZiB0aGUgSS9PIGlzCisgICAgICBhIFdSSVRFLgorCisKKyAgICBpbnQgYmlvX2ludGVncml0eV9nZXRfdGFnKGJpbywgdm9pZCAqdGFnX2J1ZiwgbGVuKTsKKworICAgICAgU2ltaWxhcmx5LCBhdCBSRUFEIEkvTyBjb21wbGV0aW9uIHRpbWUgdGhlIGZpbGVzeXN0ZW0gY2FuCisgICAgICByZXRyaWV2ZSB0aGUgdGFnIGJ1ZmZlciB1c2luZyBiaW9faW50ZWdyaXR5X2dldF90YWcoKS4KKworCis2LjMgUEFTU0lORyBFWElTVElORyBJTlRFR1JJVFkgTUVUQURBVEEKKworICAgIEZpbGVzeXN0ZW1zIHRoYXQgZWl0aGVyIGdlbmVyYXRlIHRoZWlyIG93biBpbnRlZ3JpdHkgbWV0YWRhdGEgb3IKKyAgICBhcmUgY2FwYWJsZSBvZiB0cmFuc2ZlcnJpbmcgSU1EIGZyb20gdXNlciBzcGFjZSBjYW4gdXNlIHRoZQorICAgIGZvbGxvd2luZyBjYWxsczoKKworCisgICAgc3RydWN0IGJpcCAqIGJpb19pbnRlZ3JpdHlfYWxsb2MoYmlvLCBnZnBfbWFzaywgbnJfcGFnZXMpOworCisgICAgICBBbGxvY2F0ZXMgdGhlIGJpbyBpbnRlZ3JpdHkgcGF5bG9hZCBhbmQgaGFuZ3MgaXQgb2ZmIG9mIHRoZSBiaW8uCisgICAgICBucl9wYWdlcyBpbmRpY2F0ZSBob3cgbWFueSBwYWdlcyBvZiBwcm90ZWN0aW9uIGRhdGEgbmVlZCB0byBiZQorICAgICAgc3RvcmVkIGluIHRoZSBpbnRlZ3JpdHkgYmlvX3ZlYyBsaXN0IChzaW1pbGFyIHRvIGJpb19hbGxvYygpKS4KKworICAgICAgVGhlIGludGVncml0eSBwYXlsb2FkIHdpbGwgYmUgZnJlZWQgYXQgYmlvX2ZyZWUoKSB0aW1lLgorCisKKyAgICBpbnQgYmlvX2ludGVncml0eV9hZGRfcGFnZShiaW8sIHBhZ2UsIGxlbiwgb2Zmc2V0KTsKKworICAgICAgQXR0YWNoZXMgYSBwYWdlIGNvbnRhaW5pbmcgaW50ZWdyaXR5IG1ldGFkYXRhIHRvIGFuIGV4aXN0aW5nCisgICAgICBiaW8uICBUaGUgYmlvIG11c3QgaGF2ZSBhbiBleGlzdGluZyBiaXAsCisgICAgICBpLmUuIGJpb19pbnRlZ3JpdHlfYWxsb2MoKSBtdXN0IGhhdmUgYmVlbiBjYWxsZWQuICBGb3IgYSBXUklURSwKKyAgICAgIHRoZSBpbnRlZ3JpdHkgbWV0YWRhdGEgaW4gdGhlIHBhZ2VzIG11c3QgYmUgaW4gYSBmb3JtYXQKKyAgICAgIHVuZGVyc3Rvb2QgYnkgdGhlIHRhcmdldCBkZXZpY2Ugd2l0aCB0aGUgbm90YWJsZSBleGNlcHRpb24gdGhhdAorICAgICAgdGhlIHNlY3RvciBudW1iZXJzIHdpbGwgYmUgcmVtYXBwZWQgYXMgdGhlIHJlcXVlc3QgdHJhdmVyc2VzIHRoZQorICAgICAgSS9PIHN0YWNrLiAgVGhpcyBpbXBsaWVzIHRoYXQgdGhlIHBhZ2VzIGFkZGVkIHVzaW5nIHRoaXMgY2FsbAorICAgICAgd2lsbCBiZSBtb2RpZmllZCBkdXJpbmcgSS9PISAgVGhlIGZpcnN0IHJlZmVyZW5jZSB0YWcgaW4gdGhlCisgICAgICBpbnRlZ3JpdHkgbWV0YWRhdGEgbXVzdCBoYXZlIGEgdmFsdWUgb2YgYmlwLT5iaXBfc2VjdG9yLgorCisgICAgICBQYWdlcyBjYW4gYmUgYWRkZWQgdXNpbmcgYmlvX2ludGVncml0eV9hZGRfcGFnZSgpIGFzIGxvbmcgYXMKKyAgICAgIHRoZXJlIGlzIHJvb20gaW4gdGhlIGJpcCBiaW9fdmVjIGFycmF5IChucl9wYWdlcykuCisKKyAgICAgIFVwb24gY29tcGxldGlvbiBvZiBhIFJFQUQgb3BlcmF0aW9uLCB0aGUgYXR0YWNoZWQgcGFnZXMgd2lsbAorICAgICAgY29udGFpbiB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIHJlY2VpdmVkIGZyb20gdGhlIHN0b3JhZ2UgZGV2aWNlLgorICAgICAgSXQgaXMgdXAgdG8gdGhlIHJlY2VpdmVyIHRvIHByb2Nlc3MgdGhlbSBhbmQgdmVyaWZ5IGRhdGEKKyAgICAgIGludGVncml0eSB1cG9uIGNvbXBsZXRpb24uCisKKworNi40IFJFR0lTVEVSSU5HIEEgQkxPQ0sgREVWSUNFIEFTIENBUEFCTEUgT0YgRVhDSEFOR0lORyBJTlRFR1JJVFkKKyAgICBNRVRBREFUQQorCisgICAgVG8gZW5hYmxlIGludGVncml0eSBleGNoYW5nZSBvbiBhIGJsb2NrIGRldmljZSB0aGUgZ2VuZGlzayBtdXN0IGJlCisgICAgcmVnaXN0ZXJlZCBhcyBjYXBhYmxlOgorCisgICAgaW50IGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIoZ2VuZGlzaywgYmxrX2ludGVncml0eSk7CisKKyAgICAgIFRoZSBibGtfaW50ZWdyaXR5IHN0cnVjdCBpcyBhIHRlbXBsYXRlIGFuZCBzaG91bGQgY29udGFpbiB0aGUKKyAgICAgIGZvbGxvd2luZzoKKworICAgICAgICBzdGF0aWMgc3RydWN0IGJsa19pbnRlZ3JpdHkgbXlfcHJvZmlsZSA9IHsKKyAgICAgICAgICAgIC5uYW1lICAgICAgICAgICAgICAgICAgID0gIlNUQU5EQVJEU0JPRFktVFlQRS1WQVJJQU5ULUNTVU0iLAorICAgICAgICAgICAgLmdlbmVyYXRlX2ZuICAgICAgICAgICAgPSBteV9nZW5lcmF0ZV9mbiwKKyAgICAgICAJICAgIC52ZXJpZnlfZm4gICAgICAgICAgICAgID0gbXlfdmVyaWZ5X2ZuLAorICAgICAgIAkgICAgLmdldF90YWdfZm4gICAgICAgICAgICAgPSBteV9nZXRfdGFnX2ZuLAorICAgICAgIAkgICAgLnNldF90YWdfZm4gICAgICAgICAgICAgPSBteV9zZXRfdGFnX2ZuLAorCSAgICAudHVwbGVfc2l6ZSAgICAgICAgICAgICA9IHNpemVvZihzdHJ1Y3QgbXlfdHVwbGVfc2l6ZSksCisJICAgIC50YWdfc2l6ZSAgICAgICAgICAgICAgID0gPHRhZyBieXRlcyBwZXIgaHcgc2VjdG9yPiwKKyAgICAgICAgfTsKKworICAgICAgJ25hbWUnIGlzIGEgdGV4dCBzdHJpbmcgd2hpY2ggd2lsbCBiZSB2aXNpYmxlIGluIHN5c2ZzLiAgVGhpcyBpcworICAgICAgcGFydCBvZiB0aGUgdXNlcmxhbmQgQVBJIHNvIGNob3NlIGl0IGNhcmVmdWxseSBhbmQgbmV2ZXIgY2hhbmdlCisgICAgICBpdC4gIFRoZSBmb3JtYXQgaXMgc3RhbmRhcmRzIGJvZHktdHlwZS12YXJpYW50LgorICAgICAgRS5nLiBUMTAtRElGLVRZUEUxLUlQIG9yIFQxMy1FUFAtMC1DUkMuCisKKyAgICAgICdnZW5lcmF0ZV9mbicgZ2VuZXJhdGVzIGFwcHJvcHJpYXRlIGludGVncml0eSBtZXRhZGF0YSAoZm9yIFdSSVRFKS4KKworICAgICAgJ3ZlcmlmeV9mbicgdmVyaWZpZXMgdGhhdCB0aGUgZGF0YSBidWZmZXIgbWF0Y2hlcyB0aGUgaW50ZWdyaXR5CisgICAgICBtZXRhZGF0YS4KKworICAgICAgJ3R1cGxlX3NpemUnIG11c3QgYmUgc2V0IHRvIG1hdGNoIHRoZSBzaXplIG9mIHRoZSBpbnRlZ3JpdHkKKyAgICAgIG1ldGFkYXRhIHBlciBzZWN0b3IuICBJLmUuIDggZm9yIERJRiBhbmQgRVBQLgorCisgICAgICAndGFnX3NpemUnIG11c3QgYmUgc2V0IHRvIGlkZW50aWZ5IGhvdyBtYW55IGJ5dGVzIG9mIHRhZyBzcGFjZQorICAgICAgYXJlIGF2YWlsYWJsZSBwZXIgaGFyZHdhcmUgc2VjdG9yLiAgRm9yIERJRiB0aGlzIGlzIGVpdGhlciAyIG9yCisgICAgICAwIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIENvbnRyb2wgTW9kZSBQYWdlIEFUTyBiaXQuCisKKyAgICAgIFNlZSA2LjIgZm9yIGEgZGVzY3JpcHRpb24gb2YgZ2V0X3RhZ19mbiBhbmQgc2V0X3RhZ19mbi4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMjAwNy0xMi0yNCBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9jY2lzcy50eHQgYi9Eb2N1bWVudGF0aW9uL2NjaXNzLnR4dAppbmRleCBlNjU3MzZjLi42M2U1OWI4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2NjaXNzLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2NjaXNzLnR4dApAQCAtMjEsNiArMjEsMTEgQEAKIAkqIFNBIEUyMDAKIAkqIFNBIEUyMDBpCiAJKiBTQSBFNTAwCisJKiBTQSBQMjEyCisJKiBTQSBQNDEwCisJKiBTQSBQNDEwaQorCSogU0EgUDQxMQorCSogU0EgUDgxMgogCiBEZXRlY3RpbmcgZHJpdmUgZmFpbHVyZXM6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Nncm91cHMudHh0IGIvRG9jdW1lbnRhdGlvbi9jZ3JvdXBzLnR4dAppbmRleCA4MjRmYzAyLi5kOTAxNGFhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2Nncm91cHMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY2dyb3Vwcy50eHQKQEAgLTM5MCw2ICszOTAsMTAgQEAKIAkuLi4KICMgL2Jpbi9lY2hvIFBJRG4gPiB0YXNrcwogCitZb3UgY2FuIGF0dGFjaCB0aGUgY3VycmVudCBzaGVsbCB0YXNrIGJ5IGVjaG9pbmcgMDoKKworIyBlY2hvIDAgPiB0YXNrcworCiAzLiBLZXJuZWwgQVBJCiA9PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY29udHJvbGxlcnMvZGV2aWNlcy50eHQgYi9Eb2N1bWVudGF0aW9uL2NvbnRyb2xsZXJzL2RldmljZXMudHh0CmluZGV4IDRkY2VhNDIuLjdjYzZlNmEgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY29udHJvbGxlcnMvZGV2aWNlcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9jb250cm9sbGVycy9kZXZpY2VzLnR4dApAQCAtMTMsNyArMTMsNyBAQAogVGhlIHJvb3QgZGV2aWNlIGNncm91cCBzdGFydHMgd2l0aCByd20gdG8gJ2FsbCcuICBBIGNoaWxkIGRldmljZQogY2dyb3VwIGdldHMgYSBjb3B5IG9mIHRoZSBwYXJlbnQuICBBZG1pbmlzdHJhdG9ycyBjYW4gdGhlbiByZW1vdmUKIGRldmljZXMgZnJvbSB0aGUgd2hpdGVsaXN0IG9yIGFkZCBuZXcgZW50cmllcy4gIEEgY2hpbGQgY2dyb3VwIGNhbgotbmV2ZXIgcmVjZWl2ZSBhIGRldmljZSBhY2Nlc3Mgd2hpY2ggaXMgZGVuaWVkIGl0cyBwYXJlbnQuICBIb3dldmVyCituZXZlciByZWNlaXZlIGEgZGV2aWNlIGFjY2VzcyB3aGljaCBpcyBkZW5pZWQgYnkgaXRzIHBhcmVudC4gIEhvd2V2ZXIKIHdoZW4gYSBkZXZpY2UgYWNjZXNzIGlzIHJlbW92ZWQgZnJvbSBhIHBhcmVudCBpdCB3aWxsIG5vdCBhbHNvIGJlCiByZW1vdmVkIGZyb20gdGhlIGNoaWxkKHJlbikuCiAKQEAgLTI5LDcgKzI5LDExIEBACiAKIAllY2hvIGEgPiAvY2dyb3Vwcy8xL2RldmljZXMuZGVueQogCi13aWxsIHJlbW92ZSB0aGUgZGVmYXVsdCAnYSAqOiogbXJ3JyBlbnRyeS4KK3dpbGwgcmVtb3ZlIHRoZSBkZWZhdWx0ICdhICo6KiByd20nIGVudHJ5LiBEb2luZworCisJZWNobyBhID4gL2Nncm91cHMvMS9kZXZpY2VzLmFsbG93CisKK3dpbGwgYWRkIHRoZSAnYSAqOiogcndtJyBlbnRyeSB0byB0aGUgd2hpdGVsaXN0LgogCiAzLiBTZWN1cml0eQogCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2NwdS1mcmVxL2dvdmVybm9ycy50eHQgYi9Eb2N1bWVudGF0aW9uL2NwdS1mcmVxL2dvdmVybm9ycy50eHQKaW5kZXggNmE5YzU1Yi4uZGNlYzA1NiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9jcHUtZnJlcS9nb3Zlcm5vcnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24vY3B1LWZyZXEvZ292ZXJub3JzLnR4dApAQCAtMTI5LDE0ICsxMjksNiBAQAogaW50ZXJ2YWxzIHRoZSBDUFUgbmVlZHMgdG8gYmUgb24gYXZlcmFnZSBtb3JlIHRoYW4gODAlIGluIHVzZSB0byB0aGVuCiBkZWNpZGUgdGhhdCB0aGUgQ1BVIGZyZXF1ZW5jeSBuZWVkcyB0byBiZSBpbmNyZWFzZWQuICAKIAotc2FtcGxpbmdfZG93bl9mYWN0b3I6IHRoaXMgcGFyYW1ldGVyIGNvbnRyb2xzIHRoZSByYXRlIHRoYXQgdGhlIENQVQotbWFrZXMgYSBkZWNpc2lvbiBvbiB3aGVuIHRvIGRlY3JlYXNlIHRoZSBmcmVxdWVuY3kuICBXaGVuIHNldCB0byBpdHMKLWRlZmF1bHQgdmFsdWUgb2YgJzUnIGl0IG1lYW5zIHRoYXQgYXQgMS81IHRoZSBzYW1wbGluZ19yYXRlIHRoZSBrZXJuZWwKLW1ha2VzIGEgZGVjaXNpb24gdG8gbG93ZXIgdGhlIGZyZXF1ZW5jeS4gIEZpdmUgImxvd2VyIHJhdGUiIGRlY2lzaW9ucwotaGF2ZSB0byBiZSBtYWRlIGluIGEgcm93IGJlZm9yZSB0aGUgQ1BVIGZyZXF1ZW5jeSBpcyBhY3R1YWxseSBsb3dlci4KLUlmIHNldCB0byAnMScgdGhlbiB0aGUgZnJlcXVlbmN5IGRlY3JlYXNlcyBhcyBxdWlja2x5IGFzIGl0IGluY3JlYXNlcywKLWlmIHNldCB0byAnMicgaXQgZGVjcmVhc2VzIGF0IGhhbGYgdGhlIHJhdGUgb2YgdGhlIGluY3JlYXNlLgotCiBpZ25vcmVfbmljZV9sb2FkOiB0aGlzIHBhcmFtZXRlciB0YWtlcyBhIHZhbHVlIG9mICcwJyBvciAnMScuIFdoZW4KIHNldCB0byAnMCcgKGl0cyBkZWZhdWx0KSwgYWxsIHByb2Nlc3NlcyBhcmUgY291bnRlZCB0b3dhcmRzIHRoZQogJ2NwdSB1dGlsaXNhdGlvbicgdmFsdWUuICBXaGVuIHNldCB0byAnMScsIHRoZSBwcm9jZXNzZXMgdGhhdCBhcmUKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vY3B1c2V0cy50eHQgYi9Eb2N1bWVudGF0aW9uL2NwdXNldHMudHh0CmluZGV4IGZiN2IzNjEuLjFmNWE5MjQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vY3B1c2V0cy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9jcHVzZXRzLnR4dApAQCAtMTU0LDEzICsxNTQsMTUgQEAKIG5ldyBzeXN0ZW0gY2FsbHMgYXJlIGFkZGVkIGZvciBjcHVzZXRzIC0gYWxsIHN1cHBvcnQgZm9yIHF1ZXJ5aW5nIGFuZAogbW9kaWZ5aW5nIGNwdXNldHMgaXMgdmlhIHRoaXMgY3B1c2V0IGZpbGUgc3lzdGVtLgogCi1UaGUgL3Byb2MvPHBpZD4vc3RhdHVzIGZpbGUgZm9yIGVhY2ggdGFzayBoYXMgdHdvIGFkZGVkIGxpbmVzLAorVGhlIC9wcm9jLzxwaWQ+L3N0YXR1cyBmaWxlIGZvciBlYWNoIHRhc2sgaGFzIGZvdXIgYWRkZWQgbGluZXMsCiBkaXNwbGF5aW5nIHRoZSB0YXNrcyBjcHVzX2FsbG93ZWQgKG9uIHdoaWNoIENQVXMgaXQgbWF5IGJlIHNjaGVkdWxlZCkKIGFuZCBtZW1zX2FsbG93ZWQgKG9uIHdoaWNoIE1lbW9yeSBOb2RlcyBpdCBtYXkgb2J0YWluIG1lbW9yeSksCi1pbiB0aGUgZm9ybWF0IHNlZW4gaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgoraW4gdGhlIHR3byBmb3JtYXRzIHNlZW4gaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlOgogCiAgIENwdXNfYWxsb3dlZDogICBmZmZmZmZmZixmZmZmZmZmZixmZmZmZmZmZixmZmZmZmZmZgorICBDcHVzX2FsbG93ZWRfbGlzdDogICAgICAwLTEyNwogICBNZW1zX2FsbG93ZWQ6ICAgZmZmZmZmZmYsZmZmZmZmZmYKKyAgTWVtc19hbGxvd2VkX2xpc3Q6ICAgICAgMC02MwogCiBFYWNoIGNwdXNldCBpcyByZXByZXNlbnRlZCBieSBhIGRpcmVjdG9yeSBpbiB0aGUgY2dyb3VwIGZpbGUgc3lzdGVtCiBjb250YWluaW5nIChvbiB0b3Agb2YgdGhlIHN0YW5kYXJkIGNncm91cCBmaWxlcykgdGhlIGZvbGxvd2luZwpAQCAtMTk5LDcgKzIwMSw3IEBACiBUaGUgZm9sbG93aW5nIHJ1bGVzIGFwcGx5IHRvIGVhY2ggY3B1c2V0OgogCiAgLSBJdHMgQ1BVcyBhbmQgTWVtb3J5IE5vZGVzIG11c3QgYmUgYSBzdWJzZXQgb2YgaXRzIHBhcmVudHMuCi0gLSBJdCBjYW4gb25seSBiZSBtYXJrZWQgZXhjbHVzaXZlIGlmIGl0cyBwYXJlbnQgaXMuCisgLSBJdCBjYW4ndCBiZSBtYXJrZWQgZXhjbHVzaXZlIHVubGVzcyBpdHMgcGFyZW50IGlzLgogIC0gSWYgaXRzIGNwdSBvciBtZW1vcnkgaXMgZXhjbHVzaXZlLCB0aGV5IG1heSBub3Qgb3ZlcmxhcCBhbnkgc2libGluZy4KIAogVGhlc2UgcnVsZXMsIGFuZCB0aGUgbmF0dXJhbCBoaWVyYXJjaHkgb2YgY3B1c2V0cywgZW5hYmxlIGVmZmljaWVudApAQCAtMzQ1LDcgKzM0Nyw3IEBACiBmbGFnLCBhbmQgaWYgc2V0LCBhIGNhbGwgdG8gYSBuZXcgcm91dGluZSBjcHVzZXRfbWVtX3NwcmVhZF9ub2RlKCkKIHJldHVybnMgdGhlIG5vZGUgdG8gcHJlZmVyIGZvciB0aGUgYWxsb2NhdGlvbi4KIAotU2ltaWxhcmx5LCBzZXR0aW5nICdtZW1vcnlfc3ByZWFkX2NhY2hlJyB0dXJucyBvbiB0aGUgZmxhZworU2ltaWxhcmx5LCBzZXR0aW5nICdtZW1vcnlfc3ByZWFkX3NsYWInIHR1cm5zIG9uIHRoZSBmbGFnCiBQRl9TUFJFQURfU0xBQiwgYW5kIGFwcHJvcHJpYXRlbHkgbWFya2VkIHNsYWIgY2FjaGVzIHdpbGwgYWxsb2NhdGUKIHBhZ2VzIGZyb20gdGhlIG5vZGUgcmV0dXJuZWQgYnkgY3B1c2V0X21lbV9zcHJlYWRfbm9kZSgpLgogCkBAIC01NDIsNyArNTQ0LDEwIEBACiAgICAyICA6IHNlYXJjaCBjb3JlcyBpbiBhIHBhY2thZ2UuCiAgICAzICA6IHNlYXJjaCBjcHVzIGluIGEgbm9kZSBbPSBzeXN0ZW0gd2lkZSBvbiBub24tTlVNQSBzeXN0ZW1dCiAgKCA0ICA6IHNlYXJjaCBub2RlcyBpbiBhIGNodW5rIG9mIG5vZGUgW29uIE5VTUEgc3lzdGVtXSApCi0gKCA1fiA6IHNlYXJjaCBzeXN0ZW0gd2lkZSBbb24gTlVNQSBzeXN0ZW1dKQorICggNSAgOiBzZWFyY2ggc3lzdGVtIHdpZGUgW29uIE5VTUEgc3lzdGVtXSApCisKK1RoZSBzeXN0ZW0gZGVmYXVsdCBpcyBhcmNoaXRlY3R1cmUgZGVwZW5kZW50LiAgVGhlIHN5c3RlbSBkZWZhdWx0CitjYW4gYmUgY2hhbmdlZCB1c2luZyB0aGUgcmVsYXhfZG9tYWluX2xldmVsPSBib290IHBhcmFtZXRlci4KIAogVGhpcyBmaWxlIGlzIHBlci1jcHVzZXQgYW5kIGFmZmVjdCB0aGUgc2NoZWQgZG9tYWluIHdoZXJlIHRoZSBjcHVzZXQKIGJlbG9uZ3MgdG8uICBUaGVyZWZvcmUgaWYgdGhlIGZsYWcgJ3NjaGVkX2xvYWRfYmFsYW5jZScgb2YgYSBjcHVzZXQKQEAgLTcwOSw3ICs3MTQsMTAgQEAKIAogSW4gdGhpcyBkaXJlY3RvcnkgeW91IGNhbiBmaW5kIHNldmVyYWwgZmlsZXM6CiAjIGxzCi1jcHVzICBjcHVfZXhjbHVzaXZlICBtZW1zICBtZW1fZXhjbHVzaXZlIG1lbV9oYXJkd2FsbCAgdGFza3MKK2NwdV9leGNsdXNpdmUgIG1lbW9yeV9taWdyYXRlICAgICAgbWVtcyAgICAgICAgICAgICAgICAgICAgICB0YXNrcworY3B1cyAgICAgICAgICAgbWVtb3J5X3ByZXNzdXJlICAgICBub3RpZnlfb25fcmVsZWFzZQorbWVtX2V4Y2x1c2l2ZSAgbWVtb3J5X3NwcmVhZF9wYWdlICBzY2hlZF9sb2FkX2JhbGFuY2UKK21lbV9oYXJkd2FsbCAgIG1lbW9yeV9zcHJlYWRfc2xhYiAgc2NoZWRfcmVsYXhfZG9tYWluX2xldmVsCiAKIFJlYWRpbmcgdGhlbSB3aWxsIGdpdmUgeW91IGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGlzIGNwdXNldDoKIHRoZSBDUFVzIGFuZCBNZW1vcnkgTm9kZXMgaXQgY2FuIHVzZSwgdGhlIHByb2Nlc3NlcyB0aGF0IGFyZSB1c2luZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0IGIvRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0CmluZGV4IDViM2YzMWYuLjQ2ZWNlM2YgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2ZlYXR1cmUtcmVtb3ZhbC1zY2hlZHVsZS50eHQKQEAgLTMxMiwzICszMTIsMTIgQEAKIFdoeToJSW1wbGVtZW50YXRpb24gYmVjYW1lIGdlbmVyaWM7IHVzZXJzIHNob3VsZCBub3cgaW5jbHVkZQogCWxpbnV4L3NlbWFwaG9yZS5oIGluc3RlYWQuCiBXaG86CU1hdHRoZXcgV2lsY294IDx3aWxseUBsaW51eC5pbnRlbC5jb20+CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGF0OglDT05GSUdfVEhFUk1BTF9IV01PTgorV2hlbjoJSmFudWFyeSAyMDA5CitXaHk6CVRoaXMgb3B0aW9uIHdhcyBpbnRyb2R1Y2VkIGp1c3QgdG8gYWxsb3cgb2xkZXIgbG0tc2Vuc29ycyB1c2Vyc3BhY2UKKwl0byBrZWVwIHdvcmtpbmcgb3ZlciB0aGUgdXBncmFkZSB0byAyLjYuMjYuIEF0IHRoZSBzY2hlZHVsZWQgdGltZSBvZgorCXJlbW92YWwgZml4ZWQgbG0tc2Vuc29ycyAoMi54IG9yIDMueCkgc2hvdWxkIGJlIHJlYWRpbHkgYXZhaWxhYmxlLgorV2hvOglSZW5lIEhlcm1hbiA8cmVuZS5oZXJtYW5AZ21haWwuY29tPgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0LnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvZXh0NC50eHQKaW5kZXggNTYwZjg4ZC4uODBlMTkzZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9leHQ0LnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2V4dDQudHh0CkBAIC0xMyw3MiArMTMsOTMgQEAKIDEuIFF1aWNrIHVzYWdlIGluc3RydWN0aW9uczoKID09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gIC0gR3JhYiB1cGRhdGVkIGUyZnNwcm9ncyBmcm9tCi0gICAgZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L2tlcm5lbC9wZW9wbGUvdHl0c28vZTJmc3Byb2dzLWludGVyaW0vCi0gICAgVGhpcyBpcyBhIHBhdGNoc2V0IG9uIHRvcCBvZiBlMmZzcHJvZ3MtMS4zOSwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0CisgIC0gQ29tcGlsZSBhbmQgaW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgZTJmc3Byb2dzIChhcyBvZiB0aGlzCisgICAgd3JpdGluZyB2ZXJzaW9uIDEuNDEpIGZyb206CisKKyAgICBodHRwOi8vc291cmNlZm9yZ2UubmV0L3Byb2plY3Qvc2hvd2ZpbGVzLnBocD9ncm91cF9pZD0yNDA2CisJCisJb3IKKwogICAgIGZ0cDovL2Z0cC5rZXJuZWwub3JnL3B1Yi9saW51eC9rZXJuZWwvcGVvcGxlL3R5dHNvL2UyZnNwcm9ncy8KIAotICAtIEl0J3Mgc3RpbGwgbWtlMmZzIC1qIC9kZXYvaGRhMQorCW9yIGdyYWIgdGhlIGxhdGVzdCBnaXQgcmVwb3NpdG9yeSBmcm9tOgogCi0gIC0gbW91bnQgL2Rldi9oZGExIC93aGVyZXZlciAtdCBleHQ0ZGV2CisgICAgZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9mcy9leHQyL2UyZnNwcm9ncy5naXQKIAotICAtIFRvIGVuYWJsZSBleHRlbnRzLAorICAtIENyZWF0ZSBhIG5ldyBmaWxlc3lzdGVtIHVzaW5nIHRoZSBleHQ0ZGV2IGZpbGVzeXN0ZW0gdHlwZToKIAotCW1vdW50IC9kZXYvaGRhMSAvd2hlcmV2ZXIgLXQgZXh0NGRldiAtbyBleHRlbnRzCisgICAgCSMgbWtlMmZzIC10IGV4dDRkZXYgL2Rldi9oZGExCiAKLSAgLSBUaGUgZmlsZXN5c3RlbSBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGV4dDMgZHJpdmVyIHVudGlsIHlvdSBhZGQgYSBmaWxlCi0gICAgd2hpY2ggaGFzIGV4dGVudHMgKGllOiBgbW91bnQgLW8gZXh0ZW50cycsIHRoZW4gY3JlYXRlIGEgZmlsZSkuCisgICAgT3IgY29uZmlndXJlIGFuIGV4aXN0aW5nIGV4dDMgZmlsZXN5c3RlbSB0byBzdXBwb3J0IGV4dGVudHMgYW5kIHNldAorICAgIHRoZSB0ZXN0X2ZzIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBpdCdzIG9rIGZvciBhbiBpbi1kZXZlbG9wbWVudAorICAgIGZpbGVzeXN0ZW0gdG8gdG91Y2ggdGhpcyBmaWxlc3lzdGVtOgogCi0gICAgTk9URTogVGhlICJleHRlbnRzIiBtb3VudCBmbGFnIGlzIHRlbXBvcmFyeS4gIEl0IHdpbGwgc29vbiBnbyBhd2F5IGFuZAotICAgIGV4dGVudHMgd2lsbCBiZSBlbmFibGVkIGJ5IHRoZSAiLW8gZXh0ZW50cyIgZmxhZyB0byBta2UyZnMgb3IgdHVuZTJmcworCSMgdHVuZTJmcyAtTyBleHRlbnRzIC1FIHRlc3RfZnMgL2Rldi9oZGExCisKKyAgICBJZiB0aGUgZmlsZXN5c3RlbSB3YXMgY3JlYXRlZCB3aXRoIDEyOCBieXRlIGlub2RlcywgaXQgY2FuIGJlCisgICAgY29udmVydGVkIHRvIHVzZSAyNTYgYnl0ZSBmb3IgZ3JlYXRlciBlZmZpY2llbmN5IHZpYToKKworICAgICAgICAjIHR1bmUyZnMgLUkgMjU2IC9kZXYvaGRhMQorCisgICAgKE5vdGU6IHdlIGN1cnJlbnRseSBkbyBub3QgaGF2ZSB0b29scyB0byBjb252ZXJ0IGFuIGV4dDRkZXYKKyAgICBmaWxlc3lzdGVtIGJhY2sgdG8gZXh0Mzsgc28gcGxlYXNlIGRvIG5vdCBkbyB0cnkgdGhpcyBvbiBwcm9kdWN0aW9uCisgICAgZmlsZXN5c3RlbXMuKQorCisgIC0gTW91bnRpbmc6CisKKwkjIG1vdW50IC10IGV4dDRkZXYgL2Rldi9oZGExIC93aGVyZXZlcgogCiAgIC0gV2hlbiBjb21wYXJpbmcgcGVyZm9ybWFuY2Ugd2l0aCBvdGhlciBmaWxlc3lzdGVtcywgcmVtZW1iZXIgdGhhdAotICAgIGV4dDMvNCBieSBkZWZhdWx0IG9mZmVycyBoaWdoZXIgZGF0YSBpbnRlZ3JpdHkgZ3VhcmFudGVlcyB0aGFuIG1vc3QuICBTbwotICAgIHdoZW4gY29tcGFyaW5nIHdpdGggYSBtZXRhZGF0YS1vbmx5IGpvdXJuYWxsaW5nIGZpbGVzeXN0ZW0sIHVzZSBgbW91bnQgLW8KLSAgICBkYXRhPXdyaXRlYmFjaycuICBBbmQgeW91IG1pZ2h0IGFzIHdlbGwgdXNlIGBtb3VudCAtbyBub2JoJyB0b28gYWxvbmcKLSAgICB3aXRoIGl0LiAgTWFraW5nIHRoZSBqb3VybmFsIGxhcmdlciB0aGFuIHRoZSBta2UyZnMgZGVmYXVsdCBvZnRlbiBoZWxwcwotICAgIHBlcmZvcm1hbmNlIHdpdGggbWV0YWRhdGEtaW50ZW5zaXZlIHdvcmtsb2Fkcy4KKyAgICBleHQzLzQgYnkgZGVmYXVsdCBvZmZlcnMgaGlnaGVyIGRhdGEgaW50ZWdyaXR5IGd1YXJhbnRlZXMgdGhhbiBtb3N0LgorICAgIFNvIHdoZW4gY29tcGFyaW5nIHdpdGggYSBtZXRhZGF0YS1vbmx5IGpvdXJuYWxsaW5nIGZpbGVzeXN0ZW0sIHN1Y2gKKyAgICBhcyBleHQzLCB1c2UgYG1vdW50IC1vIGRhdGE9d3JpdGViYWNrJy4gIEFuZCB5b3UgbWlnaHQgYXMgd2VsbCB1c2UKKyAgICBgbW91bnQgLW8gbm9iaCcgdG9vIGFsb25nIHdpdGggaXQuICBNYWtpbmcgdGhlIGpvdXJuYWwgbGFyZ2VyIHRoYW4KKyAgICB0aGUgbWtlMmZzIGRlZmF1bHQgb2Z0ZW4gaGVscHMgcGVyZm9ybWFuY2Ugd2l0aCBtZXRhZGF0YS1pbnRlbnNpdmUKKyAgICB3b3JrbG9hZHMuCiAKIDIuIEZlYXR1cmVzCiA9PT09PT09PT09PQogCiAyLjEgQ3VycmVudGx5IGF2YWlsYWJsZQogCi0qIGFiaWxpdHkgdG8gdXNlIGZpbGVzeXN0ZW1zID4gMTZUQgorKiBhYmlsaXR5IHRvIHVzZSBmaWxlc3lzdGVtcyA+IDE2VEIgKGUyZnNwcm9ncyBzdXBwb3J0IG5vdCBhdmFpbGFibGUgeWV0KQogKiBleHRlbnQgZm9ybWF0IHJlZHVjZXMgbWV0YWRhdGEgb3ZlcmhlYWQgKFJBTSwgSU8gZm9yIGFjY2VzcywgdHJhbnNhY3Rpb25zKQogKiBleHRlbnQgZm9ybWF0IG1vcmUgcm9idXN0IGluIGZhY2Ugb2Ygb24tZGlzayBjb3JydXB0aW9uIGR1ZSB0byBtYWdpY3MsCiAqIGludGVybmFsIHJlZHVuYW5jeSBpbiB0cmVlCi0KLTIuMSBQcmV2aW91c2x5IGF2YWlsYWJsZSwgc29vbiB0byBiZSBlbmFibGVkIGJ5IGRlZmF1bHQgYnkgIm1rZWZzLmV4dDQiOgotCi0qIGRpcl9pbmRleCBhbmQgcmVzaXplIGlub2RlIHdpbGwgYmUgb24gYnkgZGVmYXVsdAotKiBsYXJnZSBpbm9kZXMgd2lsbCBiZSB1c2VkIGJ5IGRlZmF1bHQgZm9yIGZhc3QgRUFzLCBuc2VjIHRpbWVzdGFtcHMsIGV0YworKiBpbXByb3ZlZCBmaWxlIGFsbG9jYXRpb24gKG11bHRpLWJsb2NrIGFsbG9jKQorKiBmaXggMzIwMDAgc3ViZGlyZWN0b3J5IGxpbWl0CisqIG5zZWMgdGltZXN0YW1wcyBmb3IgbXRpbWUsIGF0aW1lLCBjdGltZSwgY3JlYXRlIHRpbWUKKyogaW5vZGUgdmVyc2lvbiBmaWVsZCBvbiBkaXNrIChORlN2NCwgTHVzdHJlKQorKiByZWR1Y2VkIGUyZnNjayB0aW1lIHZpYSB1bmluaXRfYmcgZmVhdHVyZQorKiBqb3VybmFsIGNoZWNrc3VtbWluZyBmb3Igcm9idXN0bmVzcywgcGVyZm9ybWFuY2UKKyogcGVyc2lzdGVudCBmaWxlIHByZWFsbG9jYXRpb24gKGUuZyBmb3Igc3RyZWFtaW5nIG1lZGlhLCBkYXRhYmFzZXMpCisqIGFiaWxpdHkgdG8gcGFjayBiaXRtYXBzIGFuZCBpbm9kZSB0YWJsZXMgaW50byBsYXJnZXIgdmlydHVhbCBncm91cHMgdmlhIHRoZQorICBmbGV4X2JnIGZlYXR1cmUKKyogbGFyZ2UgZmlsZSBzdXBwb3J0CisqIElub2RlIGFsbG9jYXRpb24gdXNpbmcgbGFyZ2UgdmlydHVhbCBibG9jayBncm91cHMgdmlhIGZsZXhfYmcKKyogZGVsYXllZCBhbGxvY2F0aW9uCisqIGxhcmdlIGJsb2NrICh1cCB0byBwYWdlc2l6ZSkgc3VwcG9ydAorKiBlZmZpY2VudCBuZXcgb3JkZXJlZCBtb2RlIGluIEpCRDIgYW5kIGV4dDQoYXZvaWQgdXNpbmcgYnVmZmVyIGhlYWQgdG8gZm9yY2UKKyAgdGhlIG9yZGVyaW5nKQogCiAyLjIgQ2FuZGlkYXRlIGZlYXR1cmVzIGZvciBmdXR1cmUgaW5jbHVzaW9uCiAKLVRoZXJlIGFyZSBzZXZlcmFsIHVuZGVyIGRpc2N1c3Npb24sIHdoZXRoZXIgdGhleSBhbGwgbWFrZSBpdCBpbiBpcwotcGFydGx5IGEgZnVuY3Rpb24gb2YgaG93IG11Y2ggdGltZSBldmVyeW9uZSBoYXMgdG8gd29yayBvbiB0aGVtOgorKiBPbmxpbmUgZGVmcmFnIChwYXRjaGVzIGF2YWlsYWJsZSBidXQgbm90IHdlbGwgdGVzdGVkKQorKiByZWR1Y2VkIG1rZTJmcyB0aW1lIHZpYSBsYXp5IGl0YWJsZSBpbml0aWFsaXphdGlvbiBpbiBjb25qdWN0aW9uIHdpdGgKKyAgdGhlIHVuaW5pdF9iZyBmZWF0dXJlIChjYXBhYmlsaXR5IHRvIGRvIHRoaXMgaXMgYXZhaWxhYmxlIGluIGUyZnNwcm9ncworICBidXQgYSBrZXJuZWwgdGhyZWFkIHRvIGRvIGxhenkgemVyb2luZyBvZiB1bnVzZWQgaW5vZGUgdGFibGUgYmxvY2tzCisgIGFmdGVyIGZpbGVzeXN0ZW0gaXMgZmlyc3QgbW91bnRlZCBpcyByZXF1aXJlZCBmb3Igc2FmZXR5KQogCi0qIGltcHJvdmVkIGZpbGUgYWxsb2NhdGlvbiAobXVsdGktYmxvY2sgYWxsb2MsIGRlbGF5ZWQgYWxsb2M7IGJhc2ljYWxseSBkb25lKQotKiBmaXggMzIwMDAgc3ViZGlyZWN0b3J5IGxpbWl0IChwYXRjaCBleGlzdHMsIG5lZWRzIHNvbWUgZTJmc2NrIHdvcmspCi0qIG5zZWMgdGltZXN0YW1wcyBmb3IgbXRpbWUsIGF0aW1lLCBjdGltZSwgY3JlYXRlIHRpbWUgKHBhdGNoIGV4aXN0cywKLSAgbmVlZHMgc29tZSBlMmZzY2sgd29yaykKLSogaW5vZGUgdmVyc2lvbiBmaWVsZCBvbiBkaXNrIChORlN2NCwgTHVzdHJlOyBwcm90b3R5cGUgZXhpc3RzKQotKiByZWR1Y2VkIG1rZTJmcy9lMmZzY2sgdGltZSB2aWEgdW5pbml0aWFsaXplZCBncm91cHMgKHByb3RvdHlwZSBleGlzdHMpCi0qIGpvdXJuYWwgY2hlY2tzdW1taW5nIGZvciByb2J1c3RuZXNzLCBwZXJmb3JtYW5jZSAocHJvdG90eXBlIGV4aXN0cykKLSogcGVyc2lzdGVudCBmaWxlIHByZWFsbG9jYXRpb24gKGUuZyBmb3Igc3RyZWFtaW5nIG1lZGlhLCBkYXRhYmFzZXMpCitUaGVyZSBhcmUgc2V2ZXJhbCBvdGhlcnMgdW5kZXIgZGlzY3Vzc2lvbiwgd2hldGhlciB0aGV5IGFsbCBtYWtlIGl0IGluIGlzCitwYXJ0bHkgYSBmdW5jdGlvbiBvZiBob3cgbXVjaCB0aW1lIGV2ZXJ5b25lIGhhcyB0byB3b3JrIG9uIHRoZW0uIEZlYXR1cmVzIGxpa2UKK21ldGFkYXRhIGNoZWNrc3VtbWluZyBoYXZlIGJlZW4gZGlzY3Vzc2VkIGFuZCBwbGFubmVkIGZvciBhIGJpdCBidXQgbm8gcGF0Y2hlcworZXhpc3QgeWV0IHNvIEknbSBub3Qgc3VyZSB0aGV5J3JlIGluIHRoZSBuZWFyLXRlcm0gcm9hZG1hcC4KIAotRmVhdHVyZXMgbGlrZSBtZXRhZGF0YSBjaGVja3N1bW1pbmcgaGF2ZSBiZWVuIGRpc2N1c3NlZCBhbmQgcGxhbm5lZCBmb3IKLWEgYml0IGJ1dCBubyBwYXRjaGVzIGV4aXN0IHlldCBzbyBJJ20gbm90IHN1cmUgdGhleSdyZSBpbiB0aGUgbmVhci10ZXJtCi1yb2FkbWFwLgorVGhlIGJpZyBwZXJmb3JtYW5jZSB3aW4gd2lsbCBjb21lIHdpdGggbWJhbGxvYywgZGVsYWxsb2MgYW5kIGZsZXhfYmcKK2dyb3VwaW5nIG9mIGJpdG1hcHMgYW5kIGlub2RlIHRhYmxlcy4gIFNvbWUgdGVzdCByZXN1bHRzIGF2YWlsYWJsZSBoZXJlOgogCi1UaGUgYmlnIHBlcmZvcm1hbmNlIHdpbiB3aWxsIGNvbWUgd2l0aCBtYmFsbG9jIGFuZCBkZWxhbGxvYy4gIENGUyBoYXMKLWJlZW4gdXNpbmcgbWJhbGxvYyBmb3IgYSBmZXcgeWVhcnMgYWxyZWFkeSB3aXRoIEx1c3RyZSwgYW5kIElCTSArIEJ1bGwKLWRpZCBhIGxvdCBvZiBiZW5jaG1hcmtpbmcgb24gaXQuICBUaGUgcmVhc29uIGl0IGlzbid0IGluIHRoZSBmaXJzdCBzZXQgb2YKLXBhdGNoZXMgaXMgcGFydGx5IGEgbWFuYWdlYWJpbGl0eSBpc3N1ZSwgYW5kIHBhcnRseSBiZWNhdXNlIGl0IGRvZXNuJ3QKLWRpcmVjdGx5IGFmZmVjdCB0aGUgb24tZGlzayBmb3JtYXQgKG91dHNpZGUgb2YgbXVjaCBiZXR0ZXIgYWxsb2NhdGlvbikKLXNvIGl0IGlzbid0IGNyaXRpY2FsIHRvIGdldCBpbnRvIHRoZSBmaXJzdCByb3VuZCBvZiBjaGFuZ2VzLiAgSSBiZWxpZXZlCi1BbGV4IGlzIHdvcmtpbmcgb24gYSBuZXcgc2V0IG9mIHBhdGNoZXMgcmlnaHQgbm93LgorIC0gaHR0cDovL3d3dy5idWxsb3BlbnNvdXJjZS5vcmcvZXh0NC8yMDA4MDUzMC9mZnNiLXdyaXRlLTIuNi4yNi1yYzIuaHRtbAorIC0gaHR0cDovL3d3dy5idWxsb3BlbnNvdXJjZS5vcmcvZXh0NC8yMDA4MDUzMC9mZnNiLXJlYWR3cml0ZS0yLjYuMjYtcmMyLmh0bWwKIAogMy4gT3B0aW9ucwogPT09PT09PT09PQpAQCAtMTM5LDggKzE2MCwxNiBAQAogCQkJU2V0dGluZyBpdCB0byB2ZXJ5IGxhcmdlIHZhbHVlcyB3aWxsIGltcHJvdmUKIAkJCXBlcmZvcm1hbmNlLgogCi1iYXJyaWVyPTEJCVRoaXMgZW5hYmxlcy9kaXNhYmxlcyBiYXJyaWVycy4gIGJhcnJpZXI9MCBkaXNhYmxlcwotCQkJaXQsIGJhcnJpZXI9MSBlbmFibGVzIGl0LgorYmFycmllcj08MHwxKCopPglUaGlzIGVuYWJsZXMvZGlzYWJsZXMgdGhlIHVzZSBvZiB3cml0ZSBiYXJyaWVycyBpbgorCQkJdGhlIGpiZCBjb2RlLiAgYmFycmllcj0wIGRpc2FibGVzLCBiYXJyaWVyPTEgZW5hYmxlcy4KKwkJCVRoaXMgYWxzbyByZXF1aXJlcyBhbiBJTyBzdGFjayB3aGljaCBjYW4gc3VwcG9ydAorCQkJYmFycmllcnMsIGFuZCBpZiBqYmQgZ2V0cyBhbiBlcnJvciBvbiBhIGJhcnJpZXIKKwkJCXdyaXRlLCBpdCB3aWxsIGRpc2FibGUgYWdhaW4gd2l0aCBhIHdhcm5pbmcuCisJCQlXcml0ZSBiYXJyaWVycyBlbmZvcmNlIHByb3BlciBvbi1kaXNrIG9yZGVyaW5nCisJCQlvZiBqb3VybmFsIGNvbW1pdHMsIG1ha2luZyB2b2xhdGlsZSBkaXNrIHdyaXRlIGNhY2hlcworCQkJc2FmZSB0byB1c2UsIGF0IHNvbWUgcGVyZm9ybWFuY2UgcGVuYWx0eS4gIElmCisJCQl5b3VyIGRpc2tzIGFyZSBiYXR0ZXJ5LWJhY2tlZCBpbiBvbmUgd2F5IG9yIGFub3RoZXIsCisJCQlkaXNhYmxpbmcgYmFycmllcnMgbWF5IHNhZmVseSBpbXByb3ZlIHBlcmZvcm1hbmNlLgogCiBvcmxvdgkJKCopCVRoaXMgZW5hYmxlcyB0aGUgbmV3IE9ybG92IGJsb2NrIGFsbG9jYXRvci4gSXQgaXMKIAkJCWVuYWJsZWQgYnkgZGVmYXVsdC4KQEAgLTIxNCw5ICsyNDMsMTEgQEAKIAkJCXRvIHVzZSBmb3IgYWxsb2NhdGlvbiBzaXplIGFuZCBhbGlnbm1lbnQuIEZvciBSQUlENS82CiAJCQlzeXN0ZW1zIHRoaXMgc2hvdWxkIGJlIHRoZSBudW1iZXIgb2YgZGF0YQogCQkJZGlza3MgKiAgUkFJRCBjaHVuayBzaXplIGluIGZpbGUgc3lzdGVtIGJsb2Nrcy4KLQorZGVsYWxsb2MJKCopCURlZmVycmluZyBibG9jayBhbGxvY2F0aW9uIHVudGlsIHdyaXRlLW91dCB0aW1lLgorbm9kZWxhbGxvYwkJRGlzYWJsZSBkZWxheWVkIGFsbG9jYXRpb24uIEJsb2NrcyBhcmUgYWxsb2NhdGlvbgorCQkJd2hlbiBkYXRhIGlzIGNvcGllZCBmcm9tIHVzZXIgdG8gcGFnZSBjYWNoZS4KIERhdGEgTW9kZQotLS0tLS0tLS0tCis9PT09PT09PT0KIFRoZXJlIGFyZSAzIGRpZmZlcmVudCBkYXRhIG1vZGVzOgogCiAqIHdyaXRlYmFjayBtb2RlCkBAIC0yMjgsMTAgKzI1OSwxMCBAQAogCiAqIG9yZGVyZWQgbW9kZQogSW4gZGF0YT1vcmRlcmVkIG1vZGUsIGV4dDQgb25seSBvZmZpY2lhbGx5IGpvdXJuYWxzIG1ldGFkYXRhLCBidXQgaXQgbG9naWNhbGx5Ci1ncm91cHMgbWV0YWRhdGEgYW5kIGRhdGEgYmxvY2tzIGludG8gYSBzaW5nbGUgdW5pdCBjYWxsZWQgYSB0cmFuc2FjdGlvbi4gIFdoZW4KLWl0J3MgdGltZSB0byB3cml0ZSB0aGUgbmV3IG1ldGFkYXRhIG91dCB0byBkaXNrLCB0aGUgYXNzb2NpYXRlZCBkYXRhIGJsb2NrcwotYXJlIHdyaXR0ZW4gZmlyc3QuICBJbiBnZW5lcmFsLCB0aGlzIG1vZGUgcGVyZm9ybXMgc2xpZ2h0bHkgc2xvd2VyIHRoYW4KLXdyaXRlYmFjayBidXQgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGhhbiBqb3VybmFsIG1vZGUuCitncm91cHMgbWV0YWRhdGEgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBkYXRhIGNoYW5nZXMgd2l0aCB0aGUgZGF0YSBibG9ja3MgaW50byBhCitzaW5nbGUgdW5pdCBjYWxsZWQgYSB0cmFuc2FjdGlvbi4gIFdoZW4gaXQncyB0aW1lIHRvIHdyaXRlIHRoZSBuZXcgbWV0YWRhdGEKK291dCB0byBkaXNrLCB0aGUgYXNzb2NpYXRlZCBkYXRhIGJsb2NrcyBhcmUgd3JpdHRlbiBmaXJzdC4gIEluIGdlbmVyYWwsCit0aGlzIG1vZGUgcGVyZm9ybXMgc2xpZ2h0bHkgc2xvd2VyIHRoYW4gd3JpdGViYWNrIGJ1dCBzaWduaWZpY2FudGx5IGZhc3RlciB0aGFuIGpvdXJuYWwgbW9kZS4KIAogKiBqb3VybmFsIG1vZGUKIGRhdGE9am91cm5hbCBtb2RlIHByb3ZpZGVzIGZ1bGwgZGF0YSBhbmQgbWV0YWRhdGEgam91cm5hbGluZy4gIEFsbCBuZXcgZGF0YSBpcwpAQCAtMjM5LDcgKzI3MCw4IEBACiBJbiB0aGUgZXZlbnQgb2YgYSBjcmFzaCwgdGhlIGpvdXJuYWwgY2FuIGJlIHJlcGxheWVkLCBicmluZ2luZyBib3RoIGRhdGEgYW5kCiBtZXRhZGF0YSBpbnRvIGEgY29uc2lzdGVudCBzdGF0ZS4gIFRoaXMgbW9kZSBpcyB0aGUgc2xvd2VzdCBleGNlcHQgd2hlbiBkYXRhCiBuZWVkcyB0byBiZSByZWFkIGZyb20gYW5kIHdyaXR0ZW4gdG8gZGlzayBhdCB0aGUgc2FtZSB0aW1lIHdoZXJlIGl0Ci1vdXRwZXJmb3JtcyBhbGwgb3RoZXJzIG1vZGVzLgorb3V0cGVyZm9ybXMgYWxsIG90aGVycyBtb2Rlcy4gIEN1cmVudGx5IGV4dDQgZG9lcyBub3QgaGF2ZSBkZWxheWVkCithbGxvY2F0aW9uIHN1cHBvcnQgaWYgdGhpcyBkYXRhIGpvdXJuYWxsaW5nIG1vZGUgaXMgc2VsZWN0ZWQuCiAKIFJlZmVyZW5jZXMKID09PT09PT09PT0KQEAgLTI0OCw3ICsyODAsOCBAQAogCQk8ZmlsZTpmcy9qYmQyLz4KIAogcHJvZ3JhbXM6CWh0dHA6Ly9lMmZzcHJvZ3Muc291cmNlZm9yZ2UubmV0LwotCQlodHRwOi8vZXh0MnJlc2l6ZS5zb3VyY2Vmb3JnZS5uZXQKIAogdXNlZnVsIGxpbmtzOglodHRwOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9leHQzLWRldmVsCiAJCWh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2V4dDQvCisJCWh0dHA6Ly9leHQ0Lndpa2kua2VybmVsLm9yZy9pbmRleC5waHAvTWFpbl9QYWdlCisJCWh0dHA6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlYXR1cmVzL0V4dDQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMtcGNpLnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvc3lzZnMtcGNpLnR4dAppbmRleCA1ZGFhMmFhLi42OGVmNDg4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3N5c2ZzLXBjaS50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9zeXNmcy1wY2kudHh0CkBAIC0zNiw2ICszNiw3IEBACiAgICAgICAgbG9jYWxfY3B1cwkgICBuZWFyYnkgQ1BVIG1hc2sgKGNwdW1hc2ssIHJvKQogICAgICAgIHJlc291cmNlCQkgICBQQ0kgcmVzb3VyY2UgaG9zdCBhZGRyZXNzZXMgKGFzY2lpLCBybykKICAgICAgICByZXNvdXJjZTAuLk4JICAgUENJIHJlc291cmNlIE4sIGlmIHByZXNlbnQgKGJpbmFyeSwgbW1hcCkKKyAgICAgICByZXNvdXJjZTBfd2MuLk5fd2MgIFBDSSBXQyBtYXAgcmVzb3VyY2UgTiwgaWYgcHJlZmV0Y2hhYmxlIChiaW5hcnksIG1tYXApCiAgICAgICAgcm9tCQkgICBQQ0kgUk9NIHJlc291cmNlLCBpZiBwcmVzZW50IChiaW5hcnksIHJvKQogICAgICAgIHN1YnN5c3RlbV9kZXZpY2UJICAgUENJIHN1YnN5c3RlbSBkZXZpY2UgKGFzY2lpLCBybykKICAgICAgICBzdWJzeXN0ZW1fdmVuZG9yCSAgIFBDSSBzdWJzeXN0ZW0gdmVuZG9yIChhc2NpaSwgcm8pCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2Z0cmFjZS50eHQgYi9Eb2N1bWVudGF0aW9uL2Z0cmFjZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdkM2ZhYQotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24vZnRyYWNlLnR4dApAQCAtMCwwICsxLDEzNjEgQEAKKwkJZnRyYWNlIC0gRnVuY3Rpb24gVHJhY2VyCisJCT09PT09PT09PT09PT09PT09PT09PT09PQorCitDb3B5cmlnaHQgMjAwOCBSZWQgSGF0IEluYy4KKyAgIEF1dGhvcjogICBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAgTGljZW5zZTogICBUaGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMgorUmV2aWV3ZXJzOiAgIEVsaWFzIE9sdG1hbm5zIGFuZCBSYW5keSBEdW5sYXAKKworV3JpdGVuIGZvcjogMi42LjI2LXJjOCBsaW51eC0yLjYtdGlwLmdpdCB0aXAvdHJhY2luZy9mdHJhY2UgYnJhbmNoCisKK0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKK0Z0cmFjZSBpcyBhbiBpbnRlcm5hbCB0cmFjZXIgZGVzaWduZWQgdG8gaGVscCBvdXQgZGV2ZWxvcGVycyBhbmQKK2Rlc2lnbmVycyBvZiBzeXN0ZW1zIHRvIGZpbmQgd2hhdCBpcyBnb2luZyBvbiBpbnNpZGUgdGhlIGtlcm5lbC4KK0l0IGNhbiBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcgb3IgYW5hbHl6aW5nIGxhdGVuY2llcyBhbmQgcGVyZm9ybWFuY2UKK2lzc3VlcyB0aGF0IHRha2UgcGxhY2Ugb3V0c2lkZSBvZiB1c2VyLXNwYWNlLgorCitBbHRob3VnaCBmdHJhY2UgaXMgdGhlIGZ1bmN0aW9uIHRyYWNlciwgaXQgYWxzbyBpbmNsdWRlcyBhbgoraW5mcmFzdHJ1Y3R1cmUgdGhhdCBhbGxvd3MgZm9yIG90aGVyIHR5cGVzIG9mIHRyYWNpbmcuIFNvbWUgb2YgdGhlCit0cmFjZXJzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiBmdHJhY2UgaXMgYSB0cmFjZXIgdG8gdHJhY2UKK2NvbnRleHQgc3dpdGNoZXMsIHRoZSB0aW1lIGl0IHRha2VzIGZvciBhIGhpZ2ggcHJpb3JpdHkgdGFzayB0bworcnVuIGFmdGVyIGl0IHdhcyB3b2tlbiB1cCwgdGhlIHRpbWUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQsIGFuZAorbW9yZS4KKworCitUaGUgRmlsZSBTeXN0ZW0KKy0tLS0tLS0tLS0tLS0tLQorCitGdHJhY2UgdXNlcyB0aGUgZGVidWdmcyBmaWxlIHN5c3RlbSB0byBob2xkIHRoZSBjb250cm9sIGZpbGVzIGFzIHdlbGwKK2FzIHRoZSBmaWxlcyB0byBkaXNwbGF5IG91dHB1dC4KKworVG8gbW91bnQgdGhlIGRlYnVnZnMgc3lzdGVtOgorCisgICMgbWtkaXIgL2RlYnVnCisgICMgbW91bnQgLXQgZGVidWdmcyBub2RldiAvZGVidWcKKworCitUaGF0J3MgaXQhIChhc3N1bWluZyB0aGF0IHlvdSBoYXZlIGZ0cmFjZSBjb25maWd1cmVkIGludG8geW91ciBrZXJuZWwpCisKK0FmdGVyIG1vdW50aW5nIHRoZSBkZWJ1Z2ZzLCB5b3UgY2FuIHNlZSBhIGRpcmVjdG9yeSBjYWxsZWQKKyJ0cmFjaW5nIi4gIFRoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBjb250cm9sIGFuZCBvdXRwdXQgZmlsZXMKK29mIGZ0cmFjZS4gSGVyZSBpcyBhIGxpc3Qgb2Ygc29tZSBvZiB0aGUga2V5IGZpbGVzOgorCisKKyBOb3RlOiBhbGwgdGltZSB2YWx1ZXMgYXJlIGluIG1pY3Jvc2Vjb25kcy4KKworICBjdXJyZW50X3RyYWNlciA6IFRoaXMgaXMgdXNlZCB0byBzZXQgb3IgZGlzcGxheSB0aGUgY3VycmVudCB0cmFjZXIKKwkJdGhhdCBpcyBjb25maWd1cmVkLgorCisgIGF2YWlsYWJsZV90cmFjZXJzIDogVGhpcyBob2xkcyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIHRyYWNlcnMgdGhhdAorCQloYXZlIGJlZW4gY29tcGlsZWQgaW50byB0aGUga2VybmVsLiBUaGUgdHJhY2VycworCQlsaXN0ZWQgaGVyZSBjYW4gYmUgY29uZmlndXJlZCBieSBlY2hvaW5nIGluIHRoZWlyCisJCW5hbWUgaW50byBjdXJyZW50X3RyYWNlci4KKworICB0cmFjaW5nX2VuYWJsZWQgOiBUaGlzIHNldHMgb3IgZGlzcGxheXMgd2hldGhlciB0aGUgY3VycmVudF90cmFjZXIKKwkJaXMgYWN0aXZhdGVkIGFuZCB0cmFjaW5nIG9yIG5vdC4gRWNobyAwIGludG8gdGhpcworCQlmaWxlIHRvIGRpc2FibGUgdGhlIHRyYWNlciBvciAxIChvciBub24temVybykgdG8KKwkJZW5hYmxlIGl0LgorCisgIHRyYWNlIDogVGhpcyBmaWxlIGhvbGRzIHRoZSBvdXRwdXQgb2YgdGhlIHRyYWNlIGluIGEgaHVtYW4gcmVhZGFibGUKKwkJZm9ybWF0LgorCisgIGxhdGVuY3lfdHJhY2UgOiBUaGlzIGZpbGUgc2hvd3MgdGhlIHNhbWUgdHJhY2UgYnV0IHRoZSBpbmZvcm1hdGlvbgorCQlpcyBvcmdhbml6ZWQgbW9yZSB0byBkaXNwbGF5IHBvc3NpYmxlIGxhdGVuY2llcworCQlpbiB0aGUgc3lzdGVtLgorCisgIHRyYWNlX3BpcGUgOiBUaGUgb3V0cHV0IGlzIHRoZSBzYW1lIGFzIHRoZSAidHJhY2UiIGZpbGUgYnV0IHRoaXMKKwkJZmlsZSBpcyBtZWFudCB0byBiZSBzdHJlYW1lZCB3aXRoIGxpdmUgdHJhY2luZy4KKwkJUmVhZHMgZnJvbSB0aGlzIGZpbGUgd2lsbCBibG9jayB1bnRpbCBuZXcgZGF0YQorCQlpcyByZXRyaWV2ZWQuIFVubGlrZSB0aGUgInRyYWNlIiBhbmQgImxhdGVuY3lfdHJhY2UiCisJCWZpbGVzLCB0aGlzIGZpbGUgaXMgYSBjb25zdW1lci4gVGhpcyBtZWFucyByZWFkaW5nCisJCWZyb20gdGhpcyBmaWxlIGNhdXNlcyBzZXF1ZW50aWFsIHJlYWRzIHRvIGRpc3BsYXkKKwkJbW9yZSBjdXJyZW50IGRhdGEuIE9uY2UgZGF0YSBpcyByZWFkIGZyb20gdGhpcworCQlmaWxlLCBpdCBpcyBjb25zdW1lZCwgYW5kIHdpbGwgbm90IGJlIHJlYWQKKwkJYWdhaW4gd2l0aCBhIHNlcXVlbnRpYWwgcmVhZC4gVGhlICJ0cmFjZSIgYW5kCisJCSJsYXRlbmN5X3RyYWNlIiBmaWxlcyBhcmUgc3RhdGljLCBhbmQgaWYgdGhlCisJCXRyYWNlciBpc24ndCBhZGRpbmcgbW9yZSBkYXRhLCB0aGV5IHdpbGwgZGlzcGxheQorCQl0aGUgc2FtZSBpbmZvcm1hdGlvbiBldmVyeSB0aW1lIHRoZXkgYXJlIHJlYWQuCisKKyAgaXRlcl9jdHJsIDogVGhpcyBmaWxlIGxldHMgdGhlIHVzZXIgY29udHJvbCB0aGUgYW1vdW50IG9mIGRhdGEKKwkJdGhhdCBpcyBkaXNwbGF5ZWQgaW4gb25lIG9mIHRoZSBhYm92ZSBvdXRwdXQKKwkJZmlsZXMuCisKKyAgdHJhY2VfbWF4X2xhdGVuY3kgOiBTb21lIG9mIHRoZSB0cmFjZXJzIHJlY29yZCB0aGUgbWF4IGxhdGVuY3kuCisJCUZvciBleGFtcGxlLCB0aGUgdGltZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KKwkJVGhpcyB0aW1lIGlzIHNhdmVkIGluIHRoaXMgZmlsZS4gVGhlIG1heCB0cmFjZQorCQl3aWxsIGFsc28gYmUgc3RvcmVkLCBhbmQgZGlzcGxheWVkIGJ5IGVpdGhlcgorCQkidHJhY2UiIG9yICJsYXRlbmN5X3RyYWNlIi4gIEEgbmV3IG1heCB0cmFjZSB3aWxsCisJCW9ubHkgYmUgcmVjb3JkZWQgaWYgdGhlIGxhdGVuY3kgaXMgZ3JlYXRlciB0aGFuCisJCXRoZSB2YWx1ZSBpbiB0aGlzIGZpbGUuIChpbiBtaWNyb3NlY29uZHMpCisKKyAgdHJhY2VfZW50cmllcyA6IFRoaXMgc2V0cyBvciBkaXNwbGF5cyB0aGUgbnVtYmVyIG9mIHRyYWNlCisJCWVudHJpZXMgZWFjaCBDUFUgYnVmZmVyIGNhbiBob2xkLiBUaGUgdHJhY2VyIGJ1ZmZlcnMKKwkJYXJlIHRoZSBzYW1lIHNpemUgZm9yIGVhY2ggQ1BVLCBzbyBjYXJlIG11c3QgYmUKKwkJdGFrZW4gd2hlbiBtb2RpZnlpbmcgdGhlIHRyYWNlX2VudHJpZXMuIFRoZSB0cmFjZQorCQlidWZmZXJzIGFyZSBhbGxvY2F0ZWQgaW4gcGFnZXMgKGJsb2NrcyBvZiBtZW1vcnkgdGhhdAorCQl0aGUga2VybmVsIHVzZXMgZm9yIGFsbG9jYXRpb24sIHVzdWFsbHkgNCBLQiBpbiBzaXplKS4KKwkJU2luY2UgZWFjaCBlbnRyeSBpcyBzbWFsbGVyIHRoYW4gYSBwYWdlLCBpZiB0aGUgbGFzdAorCQlhbGxvY2F0ZWQgcGFnZSBoYXMgcm9vbSBmb3IgbW9yZSBlbnRyaWVzIHRoYW4gd2VyZQorCQlyZXF1ZXN0ZWQsIHRoZSByZXN0IG9mIHRoZSBwYWdlIGlzIHVzZWQgdG8gYWxsb2NhdGUKKwkJZW50cmllcy4KKworCQlUaGlzIGNhbiBvbmx5IGJlIHVwZGF0ZWQgd2hlbiB0aGUgY3VycmVudF90cmFjZXIKKwkJaXMgc2V0IHRvICJub25lIi4KKworCQlOT1RFOiBJdCBpcyBwbGFubmVkIG9uIGNoYW5naW5nIHRoZSBhbGxvY2F0ZWQgYnVmZmVycworCQkgICAgICBmcm9tIGJlaW5nIHRoZSBudW1iZXIgb2YgcG9zc2libGUgQ1BVUyB0bworCQkgICAgICB0aGUgbnVtYmVyIG9mIG9ubGluZSBDUFVTLgorCisgIHRyYWNpbmdfY3B1bWFzayA6IFRoaXMgaXMgYSBtYXNrIHRoYXQgbGV0cyB0aGUgdXNlciBvbmx5IHRyYWNlCisJCW9uIHNwZWNpZmllZCBDUFVTLiBUaGUgZm9ybWF0IGlzIGEgaGV4IHN0cmluZworCQlyZXByZXNlbnRpbmcgdGhlIENQVVMuCisKKyAgc2V0X2Z0cmFjZV9maWx0ZXIgOiBXaGVuIGR5bmFtaWMgZnRyYWNlIGlzIGNvbmZpZ3VyZWQgaW4sIHRoZQorCQljb2RlIGlzIGR5bmFtaWNhbGx5IG1vZGlmaWVkIHRvIGRpc2FibGUgY2FsbGluZworCQlvZiB0aGUgZnVuY3Rpb24gcHJvZmlsZXIgKG1jb3VudCkuIFRoaXMgbGV0cworCQl0cmFjaW5nIGJlIGNvbmZpZ3VyZWQgaW4gd2l0aCBwcmFjdGljYWxseSBubyBvdmVyaGVhZAorCQlpbiBwZXJmb3JtYW5jZS4gIFRoaXMgYWxzbyBoYXMgYSBzaWRlIGVmZmVjdCBvZgorCQllbmFibGluZyBvciBkaXNhYmxpbmcgc3BlY2lmaWMgZnVuY3Rpb25zIHRvIGJlCisJCXRyYWNlZC4gIEVjaG9pbmcgaW4gbmFtZXMgb2YgZnVuY3Rpb25zIGludG8gdGhpcworCQlmaWxlIHdpbGwgbGltaXQgdGhlIHRyYWNlIHRvIG9ubHkgdGhlc2UgZnVuY3Rpb25zLgorCisgIHNldF9mdHJhY2Vfbm90cmFjZTogVGhpcyBoYXMgdGhlIG9wcG9zaXRlIGVmZmVjdCB0aGF0CisJCXNldF9mdHJhY2VfZmlsdGVyIGhhcy4gQW55IGZ1bmN0aW9uIHRoYXQgaXMgYWRkZWQKKwkJaGVyZSB3aWxsIG5vdCBiZSB0cmFjZWQuIElmIGEgZnVuY3Rpb24gZXhpc3RzCisJCWluIGJvdGggc2V0X2Z0cmFjZV9maWx0ZXIgYW5kIHNldF9mdHJhY2Vfbm90cmFjZSwKKwkJdGhlIGZ1bmN0aW9uIHdpbGwgX25vdF8gYmUgdHJhY2VkLgorCisgIGF2YWlsYWJsZV9maWx0ZXJfZnVuY3Rpb25zIDogV2hlbiBhIGZ1bmN0aW9uIGlzIGVuY291bnRlcmVkIHRoZSBmaXJzdAorCQl0aW1lIGJ5IHRoZSBkeW5hbWljIHRyYWNlciwgaXQgaXMgcmVjb3JkZWQgYW5kCisJCWxhdGVyIHRoZSBjYWxsIGlzIGNvbnZlcnRlZCBpbnRvIGEgbm9wLiBUaGlzIGZpbGUKKwkJbGlzdHMgdGhlIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbiByZWNvcmRlZAorCQlieSB0aGUgZHluYW1pYyB0cmFjZXIgYW5kIHRoZXNlIGZ1bmN0aW9ucyBjYW4KKwkJYmUgdXNlZCB0byBzZXQgdGhlIGZ0cmFjZSBmaWx0ZXIgYnkgdGhlIGFib3ZlCisJCSJzZXRfZnRyYWNlX2ZpbHRlciIgZmlsZS4KKworCitUaGUgVHJhY2VycworLS0tLS0tLS0tLS0KKworSGVyZSBhcmUgdGhlIGxpc3Qgb2YgY3VycmVudCB0cmFjZXJzIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQuCisKKyAgZnRyYWNlIC0gZnVuY3Rpb24gdHJhY2VyIHRoYXQgdXNlcyBtY291bnQgdG8gdHJhY2UgYWxsIGZ1bmN0aW9ucy4KKwkJSXQgaXMgcG9zc2libGUgdG8gZmlsdGVyIG91dCB3aGljaCBmdW5jdGlvbnMgdGhhdCBhcmUKKwkJdG8gYmUgdHJhY2VkIHdoZW4gZHluYW1pYyBmdHJhY2UgaXMgY29uZmlndXJlZCBpbi4KKworICBzY2hlZF9zd2l0Y2ggLSB0cmFjZXMgdGhlIGNvbnRleHQgc3dpdGNoZXMgYmV0d2VlbiB0YXNrcy4KKworICBpcnFzb2ZmIC0gdHJhY2VzIHRoZSBhcmVhcyB0aGF0IGRpc2FibGUgaW50ZXJydXB0cyBhbmQgc2F2ZXMgb2ZmCisgIAkJdGhlIHRyYWNlIHdpdGggdGhlIGxvbmdlc3QgbWF4IGxhdGVuY3kuCisJCVNlZSB0cmFjaW5nX21heF9sYXRlbmN5LiAgV2hlbiBhIG5ldyBtYXggaXMgcmVjb3JkZWQsCisJCWl0IHJlcGxhY2VzIHRoZSBvbGQgdHJhY2UuIEl0IGlzIGJlc3QgdG8gdmlldyB0aGlzCisJCXRyYWNlIHdpdGggdGhlIGxhdGVuY3lfdHJhY2UgZmlsZS4KKworICBwcmVlbXB0b2ZmIC0gU2ltaWxhciB0byBpcnFzb2ZmIGJ1dCB0cmFjZXMgYW5kIHJlY29yZHMgdGhlIHRpbWUKKwkJcHJlZW1wdGlvbiBpcyBkaXNhYmxlZC4KKworICBwcmVlbXB0aXJxc29mZiAtIFNpbWlsYXIgdG8gaXJxc29mZiBhbmQgcHJlZW1wdG9mZiwgYnV0IHRyYWNlcyBhbmQKKwkJIHJlY29yZHMgdGhlIGxhcmdlc3QgdGltZSBpcnFzIGFuZC9vciBwcmVlbXB0aW9uIGlzCisJCSBkaXNhYmxlZC4KKworICB3YWtldXAgLSBUcmFjZXMgYW5kIHJlY29yZHMgdGhlIG1heCBsYXRlbmN5IHRoYXQgaXQgdGFrZXMgZm9yCisJCXRoZSBoaWdoZXN0IHByaW9yaXR5IHRhc2sgdG8gZ2V0IHNjaGVkdWxlZCBhZnRlcgorCQlpdCBoYXMgYmVlbiB3b2tlbiB1cC4KKworICBub25lIC0gVGhpcyBpcyBub3QgYSB0cmFjZXIuIFRvIHJlbW92ZSBhbGwgdHJhY2VycyBmcm9tIHRyYWNpbmcKKwkJc2ltcGx5IGVjaG8gIm5vbmUiIGludG8gY3VycmVudF90cmFjZXIuCisKKworRXhhbXBsZXMgb2YgdXNpbmcgdGhlIHRyYWNlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitIZXJlIGFyZSB0eXBpY2FsIGV4YW1wbGVzIG9mIHVzaW5nIHRoZSB0cmFjZXJzIHdpdGggb25seSBjb250cm9sbGluZwordGhlbSB3aXRoIHRoZSBkZWJ1Z2ZzIGludGVyZmFjZSAod2l0aG91dCB1c2luZyBhbnkgdXNlci1sYW5kIHV0aWxpdGllcykuCisKK091dHB1dCBmb3JtYXQ6CistLS0tLS0tLS0tLS0tLQorCitIZXJlJ3MgYW4gZXhhbXBsZSBvZiB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZmlsZSAidHJhY2UiCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0KKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgICBiYXNoLTQyNTEgIFswMV0gMTAxNTIuNTgzODU0OiBwYXRoX3B1dCA8LXBhdGhfd2FsaworICAgICAgICAgICAgYmFzaC00MjUxICBbMDFdIDEwMTUyLjU4Mzg1NTogZHB1dCA8LXBhdGhfcHV0CisgICAgICAgICAgICBiYXNoLTQyNTEgIFswMV0gMTAxNTIuNTgzODU1OiBfYXRvbWljX2RlY19hbmRfbG9jayA8LWRwdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0KKworQSBoZWFkZXIgaXMgcHJpbnRlZCB3aXRoIHRoZSB0cmFjZSB0aGF0IGlzIHJlcHJlc2VudGVkLiBJbiB0aGlzIGNhc2UKK3RoZSB0cmFjZXIgaXMgImZ0cmFjZSIuIFRoZW4gYSBoZWFkZXIgc2hvd2luZyB0aGUgZm9ybWF0LiBUYXNrIG5hbWUKKyJiYXNoIiwgdGhlIHRhc2sgUElEICI0MjUxIiwgdGhlIENQVSB0aGF0IGl0IHdhcyBydW5uaW5nIG9uCisiMDEiLCB0aGUgdGltZXN0YW1wIGluIDxzZWNzPi48dXNlY3M+IGZvcm1hdCwgdGhlIGZ1bmN0aW9uIG5hbWUgdGhhdCB3YXMKK3RyYWNlZCAicGF0aF9wdXQiIGFuZCB0aGUgcGFyZW50IGZ1bmN0aW9uIHRoYXQgY2FsbGVkIHRoaXMgZnVuY3Rpb24KKyJwYXRoX3dhbGsiLgorCitUaGUgc2NoZWRfc3dpdGNoIHRyYWNlciBhbHNvIGluY2x1ZGVzIHRyYWNpbmcgb2YgdGFzayB3YWtlIHVwcyBhbmQKK2NvbnRleHQgc3dpdGNoZXMuCisKKyAgICAga3NvZnRpcnFkLzEtNyAgICAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgICAgNzoxMTU6UiAgICsgIDI5MTY6MTE1OlMKKyAgICAga3NvZnRpcnFkLzEtNyAgICAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgICAgNzoxMTU6UiAgICsgICAgMTA6MTE1OlMKKyAgICAga3NvZnRpcnFkLzEtNyAgICAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgICAgNzoxMTU6UiA9PT4gICAgMTA6MTE1OlIKKyAgICAgICAgZXZlbnRzLzEtMTAgICAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgICAxMDoxMTU6UyA9PT4gIDI5MTY6MTE1OlIKKyAgICAga29uZGVtYW5kLzEtMjkxNiAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgMjkxNjoxMTU6UyA9PT4gICAgIDc6MTE1OlIKKyAgICAga3NvZnRpcnFkLzEtNyAgICAgWzAxXSAgMTQ1My4wNzAwMTM6ICAgICAgNzoxMTU6UyA9PT4gICAgIDA6MTQwOlIKKworV2FrZSB1cHMgYXJlIHJlcHJlc2VudGVkIGJ5IGEgIisiIGFuZCB0aGUgY29udGV4dCBzd2l0Y2hlcyBzaG93CisiPT0+Ii4gIFRoZSBmb3JtYXQgaXM6CisKKyBDb250ZXh0IHN3aXRjaGVzOgorCisgICAgICAgUHJldmlvdXMgdGFzayAgICAgICAgICAgICAgTmV4dCBUYXNrCisKKyAgPHBpZD46PHByaW8+OjxzdGF0ZT4gID09PiAgPHBpZD46PHByaW8+OjxzdGF0ZT4KKworIFdha2UgdXBzOgorCisgICAgICAgQ3VycmVudCB0YXNrICAgICAgICAgICAgICAgVGFzayB3YWtpbmcgdXAKKworICA8cGlkPjo8cHJpbz46PHN0YXRlPiAgICArICA8cGlkPjo8cHJpbz46PHN0YXRlPgorCitUaGUgcHJpbyBpcyB0aGUgaW50ZXJuYWwga2VybmVsIHByaW9yaXR5LCB3aGljaCBpcyBpbnZlcnNlIHRvIHRoZQorcHJpb3JpdHkgdGhhdCBpcyB1c3VhbGx5IGRpc3BsYXllZCBieSB1c2VyLXNwYWNlIHRvb2xzLiBaZXJvIHJlcHJlc2VudHMKK3RoZSBoaWdoZXN0IHByaW9yaXR5ICg5OSkuIFByaW8gMTAwIHN0YXJ0cyB0aGUgIm5pY2UiIHByaW9yaXRpZXMgd2l0aAorMTAwIGJlaW5nIGVxdWFsIHRvIG5pY2UgLTIwIGFuZCAxMzkgYmVpbmcgbmljZSAxOS4gVGhlIHByaW8gIjE0MCIgaXMKK3Jlc2VydmVkIGZvciB0aGUgaWRsZSB0YXNrIHdoaWNoIGlzIHRoZSBsb3dlc3QgcHJpb3JpdHkgdGhyZWFkIChwaWQgMCkuCisKKworTGF0ZW5jeSB0cmFjZSBmb3JtYXQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZvciB0cmFjZXMgdGhhdCBkaXNwbGF5IGxhdGVuY3kgdGltZXMsIHRoZSBsYXRlbmN5X3RyYWNlIGZpbGUgZ2l2ZXMKK2EgYml0IG1vcmUgaW5mb3JtYXRpb24gdG8gc2VlIHdoeSBhIGxhdGVuY3kgaGFwcGVuZWQuIEhlcmUncyBhIHR5cGljYWwKK3RyYWNlLgorCisjIHRyYWNlcjogaXJxc29mZgorIworaXJxc29mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDk3IHVzLCAjMy8zLCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHN3YXBwZXItMCAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IGFwaWNfdGltZXJfaW50ZXJydXB0CisgPT4gZW5kZWQgYXQ6ICAgZG9fc29mdGlycQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICA8aWRsZT4tMCAgICAgMGQuLjEgICAgMHVzKzogdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rIChhcGljX3RpbWVyX2ludGVycnVwdCkKKyAgPGlkbGU+LTAgICAgIDBkLnMuICAgOTd1cyA6IF9fZG9fc29mdGlycSAoZG9fc29mdGlycSkKKyAgPGlkbGU+LTAgICAgIDBkLnMxICAgOTh1cyA6IHRyYWNlX2hhcmRpcnFzX29uIChkb19zb2Z0aXJxKQorCisKK3ZpbTpmdD1oZWxwCisKKworVGhpcyBzaG93cyB0aGF0IHRoZSBjdXJyZW50IHRyYWNlciBpcyAiaXJxc29mZiIgdHJhY2luZyB0aGUgdGltZQoraW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuIEl0IGdpdmVzIHRoZSB0cmFjZSB2ZXJzaW9uIGFuZCB0aGUga2VybmVsCit0aGlzIHdhcyBleGVjdXRlZCBvbiAoMi42LjI2LXJjOCkuIFRoZW4gaXQgZGlzcGxheXMgdGhlIG1heCBsYXRlbmN5CitpbiBtaWNyb3NlY3MgKDk3IHVzKS4gVGhlIG51bWJlciBvZiB0cmFjZSBlbnRyaWVzIGRpc3BsYXllZAorYnkgdGhlIHRvdGFsIG51bWJlciByZWNvcmRlZCAoYm90aCBhcmUgdGhyZWU6ICMzLzMpLiBUaGUgdHlwZSBvZgorcHJlZW1wdGlvbiB0aGF0IHdhcyB1c2VkIChQUkVFTVBUKS4gVlAsIEtQLCBTUCwgYW5kIEhQIGFyZSBhbHdheXMgemVybworYW5kIHJlc2VydmVkIGZvciBsYXRlciB1c2UuICNQIGlzIHRoZSBudW1iZXIgb2Ygb25saW5lIENQVVMgKCNQOjIpLgorCitUaGUgdGFzayBpcyB0aGUgcHJvY2VzcyB0aGF0IHdhcyBydW5uaW5nIHdoZW4gdGhlIGxhdGVuY3kgaGFwcGVuZWQuCisoc3dhcHBlciBwaWQ6IDApLgorCitUaGUgc3RhcnQgYW5kIHN0b3AgdGhhdCBjYXVzZWQgdGhlIGxhdGVuY2llczoKKworICBhcGljX3RpbWVyX2ludGVycnVwdCBpcyB3aGVyZSB0aGUgaW50ZXJydXB0cyB3ZXJlIGRpc2FibGVkLgorICBkb19zb2Z0aXJxIGlzIHdoZXJlIHRoZXkgd2VyZSBlbmFibGVkIGFnYWluLgorCitUaGUgbmV4dCBsaW5lcyBhZnRlciB0aGUgaGVhZGVyIGFyZSB0aGUgdHJhY2UgaXRzZWxmLiBUaGUgaGVhZGVyCitleHBsYWlucyB3aGljaCBpcyB3aGljaC4KKworICBjbWQ6IFRoZSBuYW1lIG9mIHRoZSBwcm9jZXNzIGluIHRoZSB0cmFjZS4KKworICBwaWQ6IFRoZSBQSUQgb2YgdGhhdCBwcm9jZXNzLgorCisgIENQVSM6IFRoZSBDUFUgdGhhdCB0aGUgcHJvY2VzcyB3YXMgcnVubmluZyBvbi4KKworICBpcnFzLW9mZjogJ2QnIGludGVycnVwdHMgYXJlIGRpc2FibGVkLiAnLicgb3RoZXJ3aXNlLgorCisgIG5lZWQtcmVzY2hlZDogJ04nIHRhc2sgbmVlZF9yZXNjaGVkIGlzIHNldCwgJy4nIG90aGVyd2lzZS4KKworICBoYXJkaXJxL3NvZnRpcnE6CisJJ0gnIC0gaGFyZCBpcnEgaGFwcGVuZWQgaW5zaWRlIGEgc29mdGlycS4KKwknaCcgLSBoYXJkIGlycSBpcyBydW5uaW5nCisJJ3MnIC0gc29mdCBpcnEgaXMgcnVubmluZworCScuJyAtIG5vcm1hbCBjb250ZXh0LgorCisgIHByZWVtcHQtZGVwdGg6IFRoZSBsZXZlbCBvZiBwcmVlbXB0X2Rpc2FibGVkCisKK1RoZSBhYm92ZSBpcyBtb3N0bHkgbWVhbmluZ2Z1bCBmb3Iga2VybmVsIGRldmVsb3BlcnMuCisKKyAgdGltZTogVGhpcyBkaWZmZXJzIGZyb20gdGhlIHRyYWNlIGZpbGUgb3V0cHV0LiBUaGUgdHJhY2UgZmlsZSBvdXRwdXQKKwlpbmNsdWRlZCBhbiBhYnNvbHV0ZSB0aW1lc3RhbXAuIFRoZSB0aW1lc3RhbXAgdXNlZCBieSB0aGUKKwlsYXRlbmN5X3RyYWNlIGZpbGUgaXMgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSB0cmFjZS4KKworICBkZWxheTogVGhpcyBpcyBqdXN0IHRvIGhlbHAgY2F0Y2ggeW91ciBleWUgYSBiaXQgYmV0dGVyLiBBbmQKKwluZWVkcyB0byBiZSBmaXhlZCB0byBiZSBvbmx5IHJlbGF0aXZlIHRvIHRoZSBzYW1lIENQVS4KKwlUaGUgbWFya3MgYXJlIGRldGVybWluZWQgYnkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlzCisJY3VycmVudCB0cmFjZSBhbmQgdGhlIG5leHQgdHJhY2UuCisJICchJyAtIGdyZWF0ZXIgdGhhbiBwcmVlbXB0X21hcmtfdGhyZXNoIChkZWZhdWx0IDEwMCkKKwkgJysnIC0gZ3JlYXRlciB0aGFuIDEgbWljcm9zZWNvbmQKKwkgJyAnIC0gbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDEgbWljcm9zZWNvbmQuCisKKyAgVGhlIHJlc3QgaXMgdGhlIHNhbWUgYXMgdGhlICd0cmFjZScgZmlsZS4KKworCitpdGVyX2N0cmwKKy0tLS0tLS0tLQorCitUaGUgaXRlcl9jdHJsIGZpbGUgaXMgdXNlZCB0byBjb250cm9sIHdoYXQgZ2V0cyBwcmludGVkIGluIHRoZSB0cmFjZQorb3V0cHV0LiBUbyBzZWUgd2hhdCBpcyBhdmFpbGFibGUsIHNpbXBseSBjYXQgdGhlIGZpbGU6CisKKyAgY2F0IC9kZWJ1Zy90cmFjaW5nL2l0ZXJfY3RybAorICBwcmludC1wYXJlbnQgbm9zeW0tb2Zmc2V0IG5vc3ltLWFkZHIgbm92ZXJib3NlIG5vcmF3IG5vaGV4IG5vYmluIFwKKyBub2Jsb2NrIG5vc3RhY2t0cmFjZSBub3NjaGVkLXRyZWUKKworVG8gZGlzYWJsZSBvbmUgb2YgdGhlIG9wdGlvbnMsIGVjaG8gaW4gdGhlIG9wdGlvbiBwcmVwZW5kZWQgd2l0aCAibm8iLgorCisgIGVjaG8gbm9wcmludC1wYXJlbnQgPiAvZGVidWcvdHJhY2luZy9pdGVyX2N0cmwKKworVG8gZW5hYmxlIGFuIG9wdGlvbiwgbGVhdmUgb2ZmIHRoZSAibm8iLgorCisgIGVjaG8gc3ltLW9mZnNldCA+IC9kZWJ1Zy90cmFjaW5nL2l0ZXJfY3RybAorCitIZXJlIGFyZSB0aGUgYXZhaWxhYmxlIG9wdGlvbnM6CisKKyAgcHJpbnQtcGFyZW50IC0gT24gZnVuY3Rpb24gdHJhY2VzLCBkaXNwbGF5IHRoZSBjYWxsaW5nIGZ1bmN0aW9uCisJCWFzIHdlbGwgYXMgdGhlIGZ1bmN0aW9uIGJlaW5nIHRyYWNlZC4KKworICBwcmludC1wYXJlbnQ6CisgICBiYXNoLTQwMDAgIFswMV0gIDE0NzcuNjA2Njk0OiBzaW1wbGVfc3RydG91bCA8LXN0cmljdF9zdHJ0b3VsCisKKyAgbm9wcmludC1wYXJlbnQ6CisgICBiYXNoLTQwMDAgIFswMV0gIDE0NzcuNjA2Njk0OiBzaW1wbGVfc3RydG91bAorCisKKyAgc3ltLW9mZnNldCAtIERpc3BsYXkgbm90IG9ubHkgdGhlIGZ1bmN0aW9uIG5hbWUsIGJ1dCBhbHNvIHRoZSBvZmZzZXQKKwkJaW4gdGhlIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZSwgaW5zdGVhZCBvZiBzZWVpbmcganVzdAorCQkia3RpbWVfZ2V0IiwgeW91IHdpbGwgc2VlICJrdGltZV9nZXQrMHhiLzB4MjAiLgorCisgIHN5bS1vZmZzZXQ6CisgICBiYXNoLTQwMDAgIFswMV0gIDE0NzcuNjA2Njk0OiBzaW1wbGVfc3RydG91bCsweDYvMHhhMAorCisgIHN5bS1hZGRyIC0gdGhpcyB3aWxsIGFsc28gZGlzcGxheSB0aGUgZnVuY3Rpb24gYWRkcmVzcyBhcyB3ZWxsIGFzCisJCXRoZSBmdW5jdGlvbiBuYW1lLgorCisgIHN5bS1hZGRyOgorICAgYmFzaC00MDAwICBbMDFdICAxNDc3LjYwNjY5NDogc2ltcGxlX3N0cnRvdWwgPGMwMzM5MzQ2PgorCisgIHZlcmJvc2UgLSBUaGlzIGRlYWxzIHdpdGggdGhlIGxhdGVuY3lfdHJhY2UgZmlsZS4KKworICAgIGJhc2ggIDQwMDAgMSAwIDAwMDAwMDAwIDAwMDEwYTk1IFs1ODEyN2QyNl0gMTcyMC40MTVtcyBcCisgICAgKCswLjAwMG1zKTogc2ltcGxlX3N0cnRvdWwgKHN0cmljdF9zdHJ0b3VsKQorCisgIHJhdyAtIFRoaXMgd2lsbCBkaXNwbGF5IHJhdyBudW1iZXJzLiBUaGlzIG9wdGlvbiBpcyBiZXN0IGZvciB1c2Ugd2l0aAorCXVzZXIgYXBwbGljYXRpb25zIHRoYXQgY2FuIHRyYW5zbGF0ZSB0aGUgcmF3IG51bWJlcnMgYmV0dGVyIHRoYW4KKwloYXZpbmcgaXQgZG9uZSBpbiB0aGUga2VybmVsLgorCisgIGhleCAtIFNpbWlsYXIgdG8gcmF3LCBidXQgdGhlIG51bWJlcnMgd2lsbCBiZSBpbiBhIGhleGFkZWNpbWFsIGZvcm1hdC4KKworICBiaW4gLSBUaGlzIHdpbGwgcHJpbnQgb3V0IHRoZSBmb3JtYXRzIGluIHJhdyBiaW5hcnkuCisKKyAgYmxvY2sgLSBUQkQgKG5lZWRzIHVwZGF0ZSkKKworICBzdGFja3RyYWNlIC0gVGhpcyBpcyBvbmUgb2YgdGhlIG9wdGlvbnMgdGhhdCBjaGFuZ2VzIHRoZSB0cmFjZSBpdHNlbGYuCisJCVdoZW4gYSB0cmFjZSBpcyByZWNvcmRlZCwgc28gaXMgdGhlIHN0YWNrIG9mIGZ1bmN0aW9ucy4KKwkJVGhpcyBhbGxvd3MgZm9yIGJhY2sgdHJhY2VzIG9mIHRyYWNlIHNpdGVzLgorCisgIHNjaGVkLXRyZWUgLSBUQkQgKGFueSB1c2Vycz8/KQorCisKK3NjaGVkX3N3aXRjaAorLS0tLS0tLS0tLS0tCisKK1RoaXMgdHJhY2VyIHNpbXBseSByZWNvcmRzIHNjaGVkdWxlIHN3aXRjaGVzLiBIZXJlJ3MgYW4gZXhhbXBsZQorb2YgaG93IHRvIHVzZSBpdC4KKworICMgZWNobyBzY2hlZF9zd2l0Y2ggPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBzbGVlcCAxCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZQorCisjIHRyYWNlcjogc2NoZWRfc3dpdGNoCisjCisjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTgorIyAgICAgICAgICAgICAgfCB8ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfAorICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjI4MTogICAzOTk3OjEyMDpSICAgKyAgNDA1NToxMjA6UgorICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjI4NDogICAzOTk3OjEyMDpSID09PiAgNDA1NToxMjA6UgorICAgICAgICAgICBzbGVlcC00MDU1ICBbMDFdICAgMjQwLjEzMjM3MTogICA0MDU1OjEyMDpTID09PiAgMzk5NzoxMjA6UgorICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjQ1NDogICAzOTk3OjEyMDpSICAgKyAgNDA1NToxMjA6UworICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjQ1NzogICAzOTk3OjEyMDpSID09PiAgNDA1NToxMjA6UgorICAgICAgICAgICBzbGVlcC00MDU1ICBbMDFdICAgMjQwLjEzMjQ2MDogICA0MDU1OjEyMDpEID09PiAgMzk5NzoxMjA6UgorICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjQ2MzogICAzOTk3OjEyMDpSICAgKyAgNDA1NToxMjA6RAorICAgICAgICAgICAgYmFzaC0zOTk3ICBbMDFdICAgMjQwLjEzMjQ2NTogICAzOTk3OjEyMDpSID09PiAgNDA1NToxMjA6UgorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAgMjQwLjEzMjU4OTogICAgICAwOjE0MDpSICAgKyAgICAgNDoxMTU6UworICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAgMjQwLjEzMjU5MTogICAgICAwOjE0MDpSID09PiAgICAgNDoxMTU6UgorICAgICBrc29mdGlycWQvMC00ICAgICBbMDBdICAgMjQwLjEzMjU5NTogICAgICA0OjExNTpTID09PiAgICAgMDoxNDA6UgorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAgMjQwLjEzMjU5ODogICAgICAwOjE0MDpSICAgKyAgICAgNDoxMTU6UworICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAgMjQwLjEzMjU5OTogICAgICAwOjE0MDpSID09PiAgICAgNDoxMTU6UgorICAgICBrc29mdGlycWQvMC00ICAgICBbMDBdICAgMjQwLjEzMjYwMzogICAgICA0OjExNTpTID09PiAgICAgMDoxNDA6UgorICAgICAgICAgICBzbGVlcC00MDU1ICBbMDFdICAgMjQwLjEzMzA1ODogICA0MDU1OjEyMDpTID09PiAgMzk5NzoxMjA6UgorIFsuLi5dCisKKworQXMgd2UgaGF2ZSBkaXNjdXNzZWQgcHJldmlvdXNseSBhYm91dCB0aGlzIGZvcm1hdCwgdGhlIGhlYWRlciBzaG93cwordGhlIG5hbWUgb2YgdGhlIHRyYWNlIGFuZCBwb2ludHMgdG8gdGhlIG9wdGlvbnMuIFRoZSAiRlVOQ1RJT04iCitpcyBhIG1pc25vbWVyIHNpbmNlIGhlcmUgaXQgcmVwcmVzZW50cyB0aGUgd2FrZSB1cHMgYW5kIGNvbnRleHQKK3N3aXRjaGVzLgorCitUaGUgc2NoZWRfc3dpdGNoIG9ubHkgbGlzdHMgdGhlIHdha2UgdXBzIChyZXByZXNlbnRlZCB3aXRoICcrJykKK2FuZCBjb250ZXh0IHN3aXRjaGVzICgnPT0+Jykgd2l0aCB0aGUgcHJldmlvdXMgdGFzayBvciBjdXJyZW50CitmaXJzdCBmb2xsb3dlZCBieSB0aGUgbmV4dCB0YXNrIG9yIHRhc2sgd2FraW5nIHVwLiBUaGUgZm9ybWF0IGZvciBib3RoCitvZiB0aGVzZSBpcyBQSUQ6S0VSTkVMLVBSSU86VEFTSy1TVEFURS4gUmVtZW1iZXIgdGhhdCB0aGUgS0VSTkVMLVBSSU8KK2lzIHRoZSBpbnZlcnNlIG9mIHRoZSBhY3R1YWwgcHJpb3JpdHkgd2l0aCB6ZXJvICgwKSBiZWluZyB0aGUgaGlnaGVzdAorcHJpb3JpdHkgYW5kIHRoZSBuaWNlIHZhbHVlcyBzdGFydGluZyBhdCAxMDAgKG5pY2UgLTIwKS4gQmVsb3cgaXMKK2EgcXVpY2sgY2hhcnQgdG8gbWFwIHRoZSBrZXJuZWwgcHJpb3JpdHkgdG8gdXNlciBsYW5kIHByaW9yaXRpZXMuCisKKyAgS2VybmVsIHByaW9yaXR5OiAwIHRvIDk5ICAgID09PiB1c2VyIFJUIHByaW9yaXR5IDk5IHRvIDAKKyAgS2VybmVsIHByaW9yaXR5OiAxMDAgdG8gMTM5ID09PiB1c2VyIG5pY2UgLTIwIHRvIDE5CisgIEtlcm5lbCBwcmlvcml0eTogMTQwICAgICAgICA9PT4gaWRsZSB0YXNrIHByaW9yaXR5CisKK1RoZSB0YXNrIHN0YXRlcyBhcmU6CisKKyBSIC0gcnVubmluZyA6IHdhbnRzIHRvIHJ1biwgbWF5IG5vdCBhY3R1YWxseSBiZSBydW5uaW5nCisgUyAtIHNsZWVwICAgOiBwcm9jZXNzIGlzIHdhaXRpbmcgdG8gYmUgd29rZW4gdXAgKGhhbmRsZXMgc2lnbmFscykKKyBEIC0gZGVlcCBzbGVlcCA6IHByb2Nlc3MgbXVzdCBiZSB3b2tlbiB1cCAoaWdub3JlcyBzaWduYWxzKQorIFQgLSBzdG9wcGVkIDogcHJvY2VzcyBzdXNwZW5kZWQKKyB0IC0gdHJhY2VkICA6IHByb2Nlc3MgaXMgYmVpbmcgdHJhY2VkICh3aXRoIHNvbWV0aGluZyBsaWtlIGdkYikKKyBaIC0gem9tYmllICA6IHByb2Nlc3Mgd2FpdGluZyB0byBiZSBjbGVhbmVkIHVwCisgWCAtIHVua25vd24KKworCitmdHJhY2VfZW5hYmxlZAorLS0tLS0tLS0tLS0tLS0KKworVGhlIGZvbGxvd2luZyB0cmFjZXJzIGdpdmUgZGlmZmVyZW50IG91dHB1dCBkZXBlbmRpbmcgb24gd2hldGhlcgorb3Igbm90IHRoZSBzeXNjdGwgZnRyYWNlX2VuYWJsZWQgaXMgc2V0LiBUbyBzZXQgZnRyYWNlX2VuYWJsZWQsCitvbmUgY2FuIGVpdGhlciB1c2UgdGhlIHN5c2N0bCBmdW5jdGlvbiBvciBzZXQgaXQgdmlhIHRoZSBwcm9jCitmaWxlIHN5c3RlbSBpbnRlcmZhY2UuCisKKyAgc3lzY3RsIGtlcm5lbC5mdHJhY2VfZW5hYmxlZD0xCisKKyBvcgorCisgIGVjaG8gMSA+IC9wcm9jL3N5cy9rZXJuZWwvZnRyYWNlX2VuYWJsZWQKKworVG8gZGlzYWJsZSBmdHJhY2VfZW5hYmxlZCBzaW1wbHkgcmVwbGFjZSB0aGUgJzEnIHdpdGggJzAnIGluCit0aGUgYWJvdmUgY29tbWFuZHMuCisKK1doZW4gZnRyYWNlX2VuYWJsZWQgaXMgc2V0IHRoZSB0cmFjZXJzIHdpbGwgYWxzbyByZWNvcmQgdGhlIGZ1bmN0aW9ucwordGhhdCBhcmUgd2l0aGluIHRoZSB0cmFjZS4gVGhlIGRlc2NyaXB0aW9ucyBvZiB0aGUgdHJhY2Vycword2lsbCBhbHNvIHNob3cgYW4gZXhhbXBsZSB3aXRoIGZ0cmFjZSBlbmFibGVkLgorCisKK2lycXNvZmYKKy0tLS0tLS0KKworV2hlbiBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgdGhlIENQVSBjYW4gbm90IHJlYWN0IHRvIGFueSBvdGhlcgorZXh0ZXJuYWwgZXZlbnQgKGJlc2lkZXMgTk1JcyBhbmQgU01JcykuIFRoaXMgcHJldmVudHMgdGhlIHRpbWVyCitpbnRlcnJ1cHQgZnJvbSB0cmlnZ2VyaW5nIG9yIHRoZSBtb3VzZSBpbnRlcnJ1cHQgZnJvbSBsZXR0aW5nIHRoZQora2VybmVsIGtub3cgb2YgYSBuZXcgbW91c2UgZXZlbnQuIFRoZSByZXN1bHQgaXMgYSBsYXRlbmN5IHdpdGggdGhlCityZWFjdGlvbiB0aW1lLgorCitUaGUgaXJxc29mZiB0cmFjZXIgdHJhY2tzIHRoZSB0aW1lIGludGVycnVwdHMgYXJlIGRpc2FibGVkIHRvIHRoZSB0aW1lCit0aGV5IGFyZSByZS1lbmFibGVkLiBXaGVuIGEgbmV3IG1heGltdW0gbGF0ZW5jeSBpcyBoaXQsIGl0IHNhdmVzIG9mZgordGhlIHRyYWNlIHNvIHRoYXQgaXQgbWF5IGJlIHJldHJpZXZlZCBhdCBhIGxhdGVyIHRpbWUuIEV2ZXJ5IHRpbWUgYQorbmV3IG1heGltdW0gaW4gcmVhY2hlZCwgdGhlIG9sZCBzYXZlZCB0cmFjZSBpcyBkaXNjYXJkZWQgYW5kIHRoZSBuZXcKK3RyYWNlIGlzIHNhdmVkLgorCitUbyByZXNldCB0aGUgbWF4aW11bSwgZWNobyAwIGludG8gdHJhY2luZ19tYXhfbGF0ZW5jeS4gSGVyZSdzIGFuCitleGFtcGxlOgorCisgIyBlY2hvIGlycXNvZmYgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19tYXhfbGF0ZW5jeQorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBscyAtbHRyCisgWy4uLl0KKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL2xhdGVuY3lfdHJhY2UKKyMgdHJhY2VyOiBpcnFzb2ZmCisjCitpcnFzb2ZmIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogNiB1cywgIzMvMywgQ1BVIzEgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBiYXNoLTQyNjkgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiBjb3B5X3BhZ2VfcmFuZ2UKKyA9PiBlbmRlZCBhdDogICBjb3B5X3BhZ2VfcmFuZ2UKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICBiYXNoLTQyNjkgIDEuLi4xICAgIDB1cys6IF9zcGluX2xvY2sgKGNvcHlfcGFnZV9yYW5nZSkKKyAgICBiYXNoLTQyNjkgIDEuLi4xICAgIDd1cyA6IF9zcGluX3VubG9jayAoY29weV9wYWdlX3JhbmdlKQorICAgIGJhc2gtNDI2OSAgMS4uLjIgICAgN3VzIDogdHJhY2VfcHJlZW1wdF9vbiAoY29weV9wYWdlX3JhbmdlKQorCisKK3ZpbTpmdD1oZWxwCisKK0hlcmUgd2Ugc2VlIHRoYXQgdGhhdCB3ZSBoYWQgYSBsYXRlbmN5IG9mIDYgbWljcm9zZWNzICh3aGljaCBpcwordmVyeSBnb29kKS4gVGhlIHNwaW5fbG9jayBpbiBjb3B5X3BhZ2VfcmFuZ2UgZGlzYWJsZWQgaW50ZXJydXB0cy4KK1RoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIDYgYW5kIHRoZSBkaXNwbGF5ZWQgdGltZXN0YW1wIDd1cyBpcworYmVjYXVzZSB0aGUgY2xvY2sgbXVzdCBoYXZlIGluY3JlbWVudGVkIGJldHdlZW4gdGhlIHRpbWUgb2YgcmVjb3JkaW5nCit0aGUgbWF4IGxhdGVuY3kgYW5kIHJlY29yZGluZyB0aGUgZnVuY3Rpb24gdGhhdCBoYWQgdGhhdCBsYXRlbmN5LgorCitOb3RlIHRoZSBhYm92ZSBoYWQgZnRyYWNlX2VuYWJsZWQgbm90IHNldC4gSWYgd2Ugc2V0IHRoZSBmdHJhY2VfZW5hYmxlZCwKK3dlIGdldCBhIG11Y2ggbGFyZ2VyIG91dHB1dDoKKworIyB0cmFjZXI6IGlycXNvZmYKKyMKK2lycXNvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA1MCB1cywgIzEwMS8xMDEsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogbHMtNDMzOSAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IF9fYWxsb2NfcGFnZXNfaW50ZXJuYWwKKyA9PiBlbmRlZCBhdDogICBfX2FsbG9jX3BhZ2VzX2ludGVybmFsCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgICBscy00MzM5ICAwLi4uMSAgICAwdXMrOiBnZXRfcGFnZV9mcm9tX2ZyZWVsaXN0IChfX2FsbG9jX3BhZ2VzX2ludGVybmFsKQorICAgICAgbHMtNDMzOSAgMGQuLjEgICAgM3VzIDogcm1xdWV1ZV9idWxrIChnZXRfcGFnZV9mcm9tX2ZyZWVsaXN0KQorICAgICAgbHMtNDMzOSAgMGQuLjEgICAgM3VzIDogX3NwaW5fbG9jayAocm1xdWV1ZV9idWxrKQorICAgICAgbHMtNDMzOSAgMGQuLjEgICAgNHVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2spCisgICAgICBscy00MzM5ICAwZC4uMiAgICA0dXMgOiBfX3JtcXVldWUgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDV1cyA6IF9fcm1xdWV1ZV9zbWFsbGVzdCAoX19ybXF1ZXVlKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgNXVzIDogX19tb2Rfem9uZV9wYWdlX3N0YXRlIChfX3JtcXVldWVfc21hbGxlc3QpCisgICAgICBscy00MzM5ICAwZC4uMiAgICA2dXMgOiBfX3JtcXVldWUgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDZ1cyA6IF9fcm1xdWV1ZV9zbWFsbGVzdCAoX19ybXF1ZXVlKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICAgN3VzIDogX19tb2Rfem9uZV9wYWdlX3N0YXRlIChfX3JtcXVldWVfc21hbGxlc3QpCisgICAgICBscy00MzM5ICAwZC4uMiAgICA3dXMgOiBfX3JtcXVldWUgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgIDh1cyA6IF9fcm1xdWV1ZV9zbWFsbGVzdCAoX19ybXF1ZXVlKQorWy4uLl0KKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDZ1cyA6IF9fcm1xdWV1ZV9zbWFsbGVzdCAoX19ybXF1ZXVlKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0N3VzIDogX19tb2Rfem9uZV9wYWdlX3N0YXRlIChfX3JtcXVldWVfc21hbGxlc3QpCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ3dXMgOiBfX3JtcXVldWUgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDh1cyA6IF9fcm1xdWV1ZV9zbWFsbGVzdCAoX19ybXF1ZXVlKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA0OHVzIDogX19tb2Rfem9uZV9wYWdlX3N0YXRlIChfX3JtcXVldWVfc21hbGxlc3QpCisgICAgICBscy00MzM5ICAwZC4uMiAgIDQ5dXMgOiBfc3Bpbl91bmxvY2sgKHJtcXVldWVfYnVsaykKKyAgICAgIGxzLTQzMzkgIDBkLi4yICAgNDl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChfc3Bpbl91bmxvY2spCisgICAgICBscy00MzM5ICAwZC4uMSAgIDUwdXMgOiBnZXRfcGFnZV9mcm9tX2ZyZWVsaXN0IChfX2FsbG9jX3BhZ2VzX2ludGVybmFsKQorICAgICAgbHMtNDMzOSAgMGQuLjIgICA1MXVzIDogdHJhY2VfaGFyZGlycXNfb24gKF9fYWxsb2NfcGFnZXNfaW50ZXJuYWwpCisKKwordmltOmZ0PWhlbHAKKworCitIZXJlIHdlIHRyYWNlZCBhIDUwIG1pY3Jvc2Vjb25kIGxhdGVuY3kuIEJ1dCB3ZSBhbHNvIHNlZSBhbGwgdGhlCitmdW5jdGlvbnMgdGhhdCB3ZXJlIGNhbGxlZCBkdXJpbmcgdGhhdCB0aW1lLiBOb3RlIHRoYXQgYnkgZW5hYmxpbmcKK2Z1bmN0aW9uIHRyYWNpbmcsIHdlIGVuZHVyZSBhbiBhZGRlZCBvdmVyaGVhZC4gVGhpcyBvdmVyaGVhZCBtYXkKK2V4dGVuZCB0aGUgbGF0ZW5jeSB0aW1lcy4gQnV0IG5ldmVydGhlbGVzcywgdGhpcyB0cmFjZSBoYXMgcHJvdmlkZWQKK3NvbWUgdmVyeSBoZWxwZnVsIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KKworCitwcmVlbXB0b2ZmCistLS0tLS0tLS0tCisKK1doZW4gcHJlZW1wdGlvbiBpcyBkaXNhYmxlZCwgd2UgbWF5IGJlIGFibGUgdG8gcmVjZWl2ZSBpbnRlcnJ1cHRzIGJ1dAordGhlIHRhc2sgY2Fubm90IGJlIHByZWVtcHRlZCBhbmQgYSBoaWdoZXIgcHJpb3JpdHkgdGFzayBtdXN0IHdhaXQKK2ZvciBwcmVlbXB0aW9uIHRvIGJlIGVuYWJsZWQgYWdhaW4gYmVmb3JlIGl0IGNhbiBwcmVlbXB0IGEgbG93ZXIKK3ByaW9yaXR5IHRhc2suCisKK1RoZSBwcmVlbXB0b2ZmIHRyYWNlciB0cmFjZXMgdGhlIHBsYWNlcyB0aGF0IGRpc2FibGUgcHJlZW1wdGlvbi4KK0xpa2UgdGhlIGlycXNvZmYsIGl0IHJlY29yZHMgdGhlIG1heGltdW0gbGF0ZW5jeSB0aGF0IHByZWVtcHRpb24KK3dhcyBkaXNhYmxlZC4gVGhlIGNvbnRyb2wgb2YgcHJlZW1wdG9mZiBpcyBtdWNoIGxpa2UgdGhlIGlycXNvZmYuCisKKyAjIGVjaG8gcHJlZW1wdG9mZiA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX21heF9sYXRlbmN5CisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGxzIC1sdHIKKyBbLi4uXQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvbGF0ZW5jeV90cmFjZQorIyB0cmFjZXI6IHByZWVtcHRvZmYKKyMKK3ByZWVtcHRvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiAyOSB1cywgIzMvMywgQ1BVIzAgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzc2hkLTQyNjEgKHVpZDowIG5pY2U6MCBwb2xpY3k6MCBydF9wcmlvOjApCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyA9PiBzdGFydGVkIGF0OiBkb19JUlEKKyA9PiBlbmRlZCBhdDogICBfX2RvX3NvZnRpcnEKKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KKyAgICBzc2hkLTQyNjEgIDBkLmguICAgIDB1cys6IGlycV9lbnRlciAoZG9fSVJRKQorICAgIHNzaGQtNDI2MSAgMGQucy4gICAyOXVzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuczEgICAzMHVzIDogdHJhY2VfcHJlZW1wdF9vbiAoX19kb19zb2Z0aXJxKQorCisKK3ZpbTpmdD1oZWxwCisKK1RoaXMgaGFzIHNvbWUgbW9yZSBjaGFuZ2VzLiBQcmVlbXB0aW9uIHdhcyBkaXNhYmxlZCB3aGVuIGFuIGludGVycnVwdAorY2FtZSBpbiAobm90aWNlIHRoZSAnaCcpLCBhbmQgd2FzIGVuYWJsZWQgd2hpbGUgZG9pbmcgYSBzb2Z0aXJxLgorKG5vdGljZSB0aGUgJ3MnKS4gQnV0IHdlIGFsc28gc2VlIHRoYXQgaW50ZXJydXB0cyBoYXZlIGJlZW4gZGlzYWJsZWQKK3doZW4gZW50ZXJpbmcgdGhlIHByZWVtcHQgb2ZmIHNlY3Rpb24gYW5kIGxlYXZpbmcgaXQgKHRoZSAnZCcpLgorV2UgZG8gbm90IGtub3cgaWYgaW50ZXJydXB0cyB3ZXJlIGVuYWJsZWQgaW4gdGhlIG1lYW4gdGltZS4KKworIyB0cmFjZXI6IHByZWVtcHRvZmYKKyMKK3ByZWVtcHRvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA2MyB1cywgIzg3Lzg3LCBDUFUjMCB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHNzaGQtNDI2MSAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IHJlbW92ZV93YWl0X3F1ZXVlCisgPT4gZW5kZWQgYXQ6ICAgX19kb19zb2Z0aXJxCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAwdXMgOiBfc3Bpbl9sb2NrX2lycXNhdmUgKHJlbW92ZV93YWl0X3F1ZXVlKQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgMXVzIDogX3NwaW5fdW5sb2NrX2lycXJlc3RvcmUgKHJlbW92ZV93YWl0X3F1ZXVlKQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgMnVzIDogZG9fSVJRIChjb21tb25faW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgMnVzIDogaXJxX2VudGVyIChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC4uMSAgICAydXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAgM3VzIDogYWRkX3ByZWVtcHRfY291bnQgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgIDN1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5oLiAgICA0dXMgOiBoYW5kbGVfZmFzdGVvaV9pcnEgKGRvX0lSUSkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5oLiAgIDEydXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX3NwaW5fbG9jaykKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTJ1cyA6IGFja19pb2FwaWNfcXVpcmtfaXJxIChoYW5kbGVfZmFzdGVvaV9pcnEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDEzdXMgOiBtb3ZlX25hdGl2ZV9pcnEgKGFja19pb2FwaWNfcXVpcmtfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxM3VzIDogX3NwaW5fdW5sb2NrIChoYW5kbGVfZmFzdGVvaV9pcnEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDE0dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX3NwaW5fdW5sb2NrKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAxNHVzIDogaXJxX2V4aXQgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMTV1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTV1cyA6IGRvX3NvZnRpcnEgKGlycV9leGl0KQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAxNXVzIDogX19kb19zb2Z0aXJxIChkb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAxNnVzIDogX19sb2NhbF9iaF9kaXNhYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC4uLiAgIDE2dXMrOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczQgICAyMHVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM0ICAgMjF1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGUpCisgICAgc3NoZC00MjYxICAwZC5zNSAgIDIxdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLnM2ICAgNDF1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNiAgIDQydXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlKQorICAgIHNzaGQtNDI2MSAgMGQuczcgICA0MnVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM1ICAgNDN1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNSAgIDQzdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlX2lwKQorICAgIHNzaGQtNDI2MSAgMGQuczYgICA0NHVzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZV9pcCkKKyAgICBzc2hkLTQyNjEgIDBkLnM1ICAgNDR1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCisgICAgc3NoZC00MjYxICAwZC5zNSAgIDQ1dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobG9jYWxfYmhfZW5hYmxlKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLnMuICAgNjN1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMxICAgNjR1cyA6IHRyYWNlX3ByZWVtcHRfb24gKF9fZG9fc29mdGlycSkKKworCitUaGUgYWJvdmUgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcHJlZW1wdG9mZiB0cmFjZSB3aXRoIGZ0cmFjZV9lbmFibGVkCitzZXQuIEhlcmUgd2Ugc2VlIHRoYXQgaW50ZXJydXB0cyB3ZXJlIGRpc2FibGVkIHRoZSBlbnRpcmUgdGltZS4KK1RoZSBpcnFfZW50ZXIgY29kZSBsZXRzIHVzIGtub3cgdGhhdCB3ZSBlbnRlcmVkIGFuIGludGVycnVwdCAnaCcuCitCZWZvcmUgdGhhdCwgdGhlIGZ1bmN0aW9ucyBiZWluZyB0cmFjZWQgc3RpbGwgc2hvdyB0aGF0IGl0IGlzIG5vdAoraW4gYW4gaW50ZXJydXB0LCBidXQgd2UgY2FuIHNlZSBieSB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMgdGhhdAordGhpcyBpcyBub3QgdGhlIGNhc2UuCisKK05vdGljZSB0aGF0IHRoZSBfX2RvX3NvZnRpcnEgd2hlbiBjYWxsZWQgZG9lc24ndCBoYXZlIGEgcHJlZW1wdF9jb3VudC4KK0l0IG1heSBzZWVtIHRoYXQgd2UgbWlzc2VkIGEgcHJlZW1wdCBlbmFibGVkLiBXaGF0IHJlYWxseSBoYXBwZW5lZAoraXMgdGhhdCB0aGUgcHJlZW1wdCBjb3VudCBpcyBoZWxkIG9uIHRoZSB0aHJlYWRzIHN0YWNrIGFuZCB3ZQorc3dpdGNoZWQgdG8gdGhlIHNvZnRpcnEgc3RhY2sgKDRLIHN0YWNrcyBpbiBlZmZlY3QpLiBUaGUgY29kZQorZG9lcyBub3QgY29weSB0aGUgcHJlZW1wdCBjb3VudCwgYnV0IGJlY2F1c2UgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQsCit3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0LiBIYXZpbmcgYSB0cmFjZXIgbGlrZSB0aGlzIGlzIGdvb2QKK3RvIGxldCBwZW9wbGUga25vdyB3aGF0IHJlYWxseSBoYXBwZW5zIGluc2lkZSB0aGUga2VybmVsLgorCisKK3ByZWVtcHRpcnFzb2ZmCistLS0tLS0tLS0tLS0tLQorCitLbm93aW5nIHRoZSBsb2NhdGlvbnMgdGhhdCBoYXZlIGludGVycnVwdHMgZGlzYWJsZWQgb3IgcHJlZW1wdGlvbgorZGlzYWJsZWQgZm9yIHRoZSBsb25nZXN0IHRpbWVzIGlzIGhlbHBmdWwuIEJ1dCBzb21ldGltZXMgd2Ugd291bGQKK2xpa2UgdG8ga25vdyB3aGVuIGVpdGhlciBwcmVlbXB0aW9uIGFuZC9vciBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZC4KKworVGhlIGZvbGxvd2luZyBjb2RlOgorCisgICAgbG9jYWxfaXJxX2Rpc2FibGUoKTsKKyAgICBjYWxsX2Z1bmN0aW9uX3dpdGhfaXJxc19vZmYoKTsKKyAgICBwcmVlbXB0X2Rpc2FibGUoKTsKKyAgICBjYWxsX2Z1bmN0aW9uX3dpdGhfaXJxc19hbmRfcHJlZW1wdGlvbl9vZmYoKTsKKyAgICBsb2NhbF9pcnFfZW5hYmxlKCk7CisgICAgY2FsbF9mdW5jdGlvbl93aXRoX3ByZWVtcHRpb25fb2ZmKCk7CisgICAgcHJlZW1wdF9lbmFibGUoKTsKKworVGhlIGlycXNvZmYgdHJhY2VyIHdpbGwgcmVjb3JkIHRoZSB0b3RhbCBsZW5ndGggb2YKK2NhbGxfZnVuY3Rpb25fd2l0aF9pcnFzX29mZigpIGFuZAorY2FsbF9mdW5jdGlvbl93aXRoX2lycXNfYW5kX3ByZWVtcHRpb25fb2ZmKCkuCisKK1RoZSBwcmVlbXB0b2ZmIHRyYWNlciB3aWxsIHJlY29yZCB0aGUgdG90YWwgbGVuZ3RoIG9mCitjYWxsX2Z1bmN0aW9uX3dpdGhfaXJxc19hbmRfcHJlZW1wdGlvbl9vZmYoKSBhbmQKK2NhbGxfZnVuY3Rpb25fd2l0aF9wcmVlbXB0aW9uX29mZigpLgorCitCdXQgbmVpdGhlciB3aWxsIHRyYWNlIHRoZSB0aW1lIHRoYXQgaW50ZXJydXB0cyBhbmQvb3IgcHJlZW1wdGlvbgoraXMgZGlzYWJsZWQuIFRoaXMgdG90YWwgdGltZSBpcyB0aGUgdGltZSB0aGF0IHdlIGNhbiBub3Qgc2NoZWR1bGUuCitUbyByZWNvcmQgdGhpcyB0aW1lLCB1c2UgdGhlIHByZWVtcHRpcnFzb2ZmIHRyYWNlci4KKworQWdhaW4sIHVzaW5nIHRoaXMgdHJhY2UgaXMgbXVjaCBsaWtlIHRoZSBpcnFzb2ZmIGFuZCBwcmVlbXB0b2ZmIHRyYWNlcnMuCisKKyAjIGVjaG8gcHJlZW1wdGlycXNvZmYgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19tYXhfbGF0ZW5jeQorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBscyAtbHRyCisgWy4uLl0KKyAjIGVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZAorICMgY2F0IC9kZWJ1Zy90cmFjaW5nL2xhdGVuY3lfdHJhY2UKKyMgdHJhY2VyOiBwcmVlbXB0aXJxc29mZgorIworcHJlZW1wdGlycXNvZmYgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiAyOTMgdXMsICMzLzMsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogbHMtNDg2MCAodWlkOjAgbmljZTowIHBvbGljeTowIHJ0X3ByaW86MCkKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorID0+IHN0YXJ0ZWQgYXQ6IGFwaWNfdGltZXJfaW50ZXJydXB0CisgPT4gZW5kZWQgYXQ6ICAgX19kb19zb2Z0aXJxCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgICAgICBscy00ODYwICAwZC4uLiAgICAwdXMhOiB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bmsgKGFwaWNfdGltZXJfaW50ZXJydXB0KQorICAgICAgbHMtNDg2MCAgMGQucy4gIDI5NHVzIDogX2xvY2FsX2JoX2VuYWJsZSAoX19kb19zb2Z0aXJxKQorICAgICAgbHMtNDg2MCAgMGQuczEgIDI5NHVzIDogdHJhY2VfcHJlZW1wdF9vbiAoX19kb19zb2Z0aXJxKQorCisKK3ZpbTpmdD1oZWxwCisKKworVGhlIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayBpcyBjYWxsZWQgZnJvbSBhc3NlbWJseSBvbiB4ODYgd2hlbgoraW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgaW4gdGhlIGFzc2VtYmx5IGNvZGUuIFdpdGhvdXQgdGhlIGZ1bmN0aW9uCit0cmFjaW5nLCB3ZSBkb24ndCBrbm93IGlmIGludGVycnVwdHMgd2VyZSBlbmFibGVkIHdpdGhpbiB0aGUgcHJlZW1wdGlvbgorcG9pbnRzLiBXZSBkbyBzZWUgdGhhdCBpdCBzdGFydGVkIHdpdGggcHJlZW1wdGlvbiBlbmFibGVkLgorCitIZXJlIGlzIGEgdHJhY2Ugd2l0aCBmdHJhY2VfZW5hYmxlZCBzZXQ6CisKKworIyB0cmFjZXI6IHByZWVtcHRpcnFzb2ZmCisjCitwcmVlbXB0aXJxc29mZiBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAyLjYuMjYtcmM4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGxhdGVuY3k6IDEwNSB1cywgIzE4My8xODMsIENQVSMwIHwgKE06cHJlZW1wdCBWUDowLCBLUDowLCBTUDowIEhQOjAgI1A6MikKKyAgICAtLS0tLS0tLS0tLS0tLS0tLQorICAgIHwgdGFzazogc3NoZC00MjYxICh1aWQ6MCBuaWNlOjAgcG9saWN5OjAgcnRfcHJpbzowKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgPT4gc3RhcnRlZCBhdDogd3JpdGVfY2hhbgorID0+IGVuZGVkIGF0OiAgIF9fZG9fc29mdGlycQorCisjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjCisjICAgICAgICAgICAgICAgLyBfLS0tLS09PiBpcnFzLW9mZgorIyAgICAgICAgICAgICAgfCAvIF8tLS0tPT4gbmVlZC1yZXNjaGVkCisjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEKKyMgICAgICAgICAgICAgIHx8fCAvIF8tLT0+IHByZWVtcHQtZGVwdGgKKyMgICAgICAgICAgICAgIHx8fHwgLworIyAgICAgICAgICAgICAgfHx8fHwgICAgIGRlbGF5CisjICBjbWQgICAgIHBpZCB8fHx8fCB0aW1lICB8ICAgY2FsbGVyCisjICAgICBcICAgLyAgICB8fHx8fCAgIFwgICB8ICAgLworICAgICAgbHMtNDQ3MyAgMC5OLi4gICAgMHVzIDogcHJlZW1wdF9zY2hlZHVsZSAod3JpdGVfY2hhbikKKyAgICAgIGxzLTQ0NzMgIDBkTi4xICAgIDF1cyA6IF9zcGluX2xvY2sgKHNjaGVkdWxlKQorICAgICAgbHMtNDQ3MyAgMGROLjEgICAgMnVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2spCisgICAgICBscy00NDczICAwZC4uMiAgICAydXMgOiBwdXRfcHJldl90YXNrX2ZhaXIgKHNjaGVkdWxlKQorWy4uLl0KKyAgICAgIGxzLTQ0NzMgIDBkLi4yICAgMTN1cyA6IHNldF9ub3JtYWxpemVkX3RpbWVzcGVjIChrdGltZV9nZXRfdHMpCisgICAgICBscy00NDczICAwZC4uMiAgIDEzdXMgOiBfX3N3aXRjaF90byAoc2NoZWR1bGUpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE0dXMgOiBmaW5pc2hfdGFza19zd2l0Y2ggKHNjaGVkdWxlKQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxNHVzIDogX3NwaW5fdW5sb2NrX2lycSAoZmluaXNoX3Rhc2tfc3dpdGNoKQorICAgIHNzaGQtNDI2MSAgMGQuLjEgICAxNXVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2tfaXJxc2F2ZSkKKyAgICBzc2hkLTQyNjEgIDBkLi4yICAgMTZ1cyA6IF9zcGluX3VubG9ja19pcnFyZXN0b3JlIChocnRpY2tfc2V0KQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxNnVzIDogZG9fSVJRIChjb21tb25faW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxN3VzIDogaXJxX2VudGVyIChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC4uMiAgIDE3dXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuLjIgICAxOHVzIDogYWRkX3ByZWVtcHRfY291bnQgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLmgyICAgMTh1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5oLiAgIDE4dXMgOiBoYW5kbGVfZmFzdGVvaV9pcnEgKGRvX0lSUSkKKyAgICBzc2hkLTQyNjEgIDBkLmguICAgMTl1cyA6IF9zcGluX2xvY2sgKGhhbmRsZV9mYXN0ZW9pX2lycSkKKyAgICBzc2hkLTQyNjEgIDBkLmguICAgMTl1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAyMHVzIDogX3NwaW5fdW5sb2NrIChoYW5kbGVfZmFzdGVvaV9pcnEpCisgICAgc3NoZC00MjYxICAwZC5oMSAgIDIwdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX3NwaW5fdW5sb2NrKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLmgxICAgMjh1cyA6IF9zcGluX3VubG9jayAoaGFuZGxlX2Zhc3Rlb2lfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuaDEgICAyOXVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9zcGluX3VubG9jaykKKyAgICBzc2hkLTQyNjEgIDBkLmgyICAgMjl1cyA6IGlycV9leGl0IChkb19JUlEpCisgICAgc3NoZC00MjYxICAwZC5oMiAgIDI5dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC4uMyAgIDMwdXMgOiBkb19zb2Z0aXJxIChpcnFfZXhpdCkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMzB1cyA6IF9fZG9fc29mdGlycSAoZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLi4uICAgMzF1cyA6IF9fbG9jYWxfYmhfZGlzYWJsZSAoX19kb19zb2Z0aXJxKQorICAgIHNzaGQtNDI2MSAgMGQuLi4gICAzMXVzKzogYWRkX3ByZWVtcHRfY291bnQgKF9fbG9jYWxfYmhfZGlzYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnM0ICAgMzR1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2xvY2FsX2JoX2Rpc2FibGUpCitbLi4uXQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA0M3VzIDogc3ViX3ByZWVtcHRfY291bnQgKGxvY2FsX2JoX2VuYWJsZV9pcCkKKyAgICBzc2hkLTQyNjEgIDBkLnM0ICAgNDR1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChsb2NhbF9iaF9lbmFibGVfaXApCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDQ0dXMgOiBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQgKGFwaWNfdGltZXJfaW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA0NXVzIDogaXJxX2VudGVyIChzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDQ1dXMgOiBpZGxlX2NwdSAoaXJxX2VudGVyKQorICAgIHNzaGQtNDI2MSAgMGQuczMgICA0NnVzIDogYWRkX3ByZWVtcHRfY291bnQgKGlycV9lbnRlcikKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgNDZ1cyA6IGlkbGVfY3B1IChpcnFfZW50ZXIpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDQ3dXMgOiBocnRpbWVyX2ludGVycnVwdCAoc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA0N3VzIDoga3RpbWVfZ2V0IChocnRpbWVyX2ludGVycnVwdCkKK1suLi5dCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDgxdXMgOiB0aWNrX3Byb2dyYW1fZXZlbnQgKGhydGltZXJfaW50ZXJydXB0KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4MnVzIDoga3RpbWVfZ2V0ICh0aWNrX3Byb2dyYW1fZXZlbnQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDgydXMgOiBrdGltZV9nZXRfdHMgKGt0aW1lX2dldCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODN1cyA6IGdldG5zdGltZW9mZGF5IChrdGltZV9nZXRfdHMpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDgzdXMgOiBzZXRfbm9ybWFsaXplZF90aW1lc3BlYyAoa3RpbWVfZ2V0X3RzKQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4NHVzIDogY2xvY2tldmVudHNfcHJvZ3JhbV9ldmVudCAodGlja19wcm9ncmFtX2V2ZW50KQorICAgIHNzaGQtNDI2MSAgMGQuSDMgICA4NHVzIDogbGFwaWNfbmV4dF9ldmVudCAoY2xvY2tldmVudHNfcHJvZ3JhbV9ldmVudCkKKyAgICBzc2hkLTQyNjEgIDBkLkgzICAgODV1cyA6IGlycV9leGl0IChzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQpCisgICAgc3NoZC00MjYxICAwZC5IMyAgIDg1dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC5zNCAgIDg2dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoaXJxX2V4aXQpCisgICAgc3NoZC00MjYxICAwZC5zMyAgIDg2dXMgOiBhZGRfcHJlZW1wdF9jb3VudCAoX19sb2NhbF9iaF9kaXNhYmxlKQorWy4uLl0KKyAgICBzc2hkLTQyNjEgIDBkLnMxICAgOTh1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChuZXRfcnhfYWN0aW9uKQorICAgIHNzaGQtNDI2MSAgMGQucy4gICA5OXVzIDogYWRkX3ByZWVtcHRfY291bnQgKF9zcGluX2xvY2tfaXJxKQorICAgIHNzaGQtNDI2MSAgMGQuczEgICA5OXVzKzogX3NwaW5fdW5sb2NrX2lycSAocnVuX3RpbWVyX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC5zLiAgMTA0dXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCisgICAgc3NoZC00MjYxICAwZC5zLiAgMTA0dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX2xvY2FsX2JoX2VuYWJsZSkKKyAgICBzc2hkLTQyNjEgIDBkLnMuICAxMDV1cyA6IF9sb2NhbF9iaF9lbmFibGUgKF9fZG9fc29mdGlycSkKKyAgICBzc2hkLTQyNjEgIDBkLnMxICAxMDV1cyA6IHRyYWNlX3ByZWVtcHRfb24gKF9fZG9fc29mdGlycSkKKworCitUaGlzIGlzIGEgdmVyeSBpbnRlcmVzdGluZyB0cmFjZS4gSXQgc3RhcnRlZCB3aXRoIHRoZSBwcmVlbXB0aW9uIG9mCit0aGUgbHMgdGFzay4gV2Ugc2VlIHRoYXQgdGhlIHRhc2sgaGFkIHRoZSAibmVlZF9yZXNjaGVkIiBiaXQgc2V0Cit3aXRoIHRoZSAnTicgaW4gdGhlIHRyYWNlLiAgSW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgaW4gdGhlIHNwaW5fbG9jaworYW5kIHRoZSB0cmFjZSBzdGFydGVkLiBXZSBzZWUgdGhhdCBhIHNjaGVkdWxlIHRvb2sgcGxhY2UgdG8gcnVuCitzc2hkLiAgV2hlbiB0aGUgaW50ZXJydXB0cyB3ZXJlIGVuYWJsZWQsIHdlIHRvb2sgYW4gaW50ZXJydXB0LgorT24gcmV0dXJuIGZyb20gdGhlIGludGVycnVwdCBoYW5kbGVyLCB0aGUgc29mdGlycSByYW4uIFdlIHRvb2sgYW5vdGhlcgoraW50ZXJydXB0IHdoaWxlIHJ1bm5pbmcgdGhlIHNvZnRpcnEgYXMgd2Ugc2VlIHdpdGggdGhlIGNhcGl0YWwgJ0gnLgorCisKK3dha2V1cAorLS0tLS0tCisKK0luIFJlYWwtVGltZSBlbnZpcm9ubWVudCBpdCBpcyB2ZXJ5IGltcG9ydGFudCB0byBrbm93IHRoZSB3YWtldXAKK3RpbWUgaXQgdGFrZXMgZm9yIHRoZSBoaWdoZXN0IHByaW9yaXR5IHRhc2sgdGhhdCB3YWtlcyB1cCB0byB0aGUKK3RpbWUgaXQgZXhlY3V0ZXMuIFRoaXMgaXMgYWxzbyBrbm93biBhcyAic2NoZWR1bGUgbGF0ZW5jeSIuCitJIHN0cmVzcyB0aGUgcG9pbnQgdGhhdCB0aGlzIGlzIGFib3V0IFJUIHRhc2tzLiBJdCBpcyBhbHNvIGltcG9ydGFudAordG8ga25vdyB0aGUgc2NoZWR1bGluZyBsYXRlbmN5IG9mIG5vbi1SVCB0YXNrcywgYnV0IHRoZSBhdmVyYWdlCitzY2hlZHVsZSBsYXRlbmN5IGlzIGJldHRlciBmb3Igbm9uLVJUIHRhc2tzLiBUb29scyBsaWtlCitMYXRlbmN5VG9wIGFyZSBtb3JlIGFwcHJvcHJpYXRlIGZvciBzdWNoIG1lYXN1cmVtZW50cy4KKworUmVhbC1UaW1lIGVudmlyb25tZW50cyBhcmUgaW50ZXJlc3RlZCBpbiB0aGUgd29yc3QgY2FzZSBsYXRlbmN5LgorVGhhdCBpcyB0aGUgbG9uZ2VzdCBsYXRlbmN5IGl0IHRha2VzIGZvciBzb21ldGhpbmcgdG8gaGFwcGVuLCBhbmQKK25vdCB0aGUgYXZlcmFnZS4gV2UgY2FuIGhhdmUgYSB2ZXJ5IGZhc3Qgc2NoZWR1bGVyIHRoYXQgbWF5IG9ubHkKK2hhdmUgYSBsYXJnZSBsYXRlbmN5IG9uY2UgaW4gYSB3aGlsZSwgYnV0IHRoYXQgd291bGQgbm90IHdvcmsgd2VsbAord2l0aCBSZWFsLVRpbWUgdGFza3MuICBUaGUgd2FrZXVwIHRyYWNlciB3YXMgZGVzaWduZWQgdG8gcmVjb3JkCit0aGUgd29yc3QgY2FzZSB3YWtldXBzIG9mIFJUIHRhc2tzLiBOb24tUlQgdGFza3MgYXJlIG5vdCByZWNvcmRlZAorYmVjYXVzZSB0aGUgdHJhY2VyIG9ubHkgcmVjb3JkcyBvbmUgd29yc3QgY2FzZSBhbmQgdHJhY2luZyBub24tUlQKK3Rhc2tzIHRoYXQgYXJlIHVucHJlZGljdGFibGUgd2lsbCBvdmVyd3JpdGUgdGhlIHdvcnN0IGNhc2UgbGF0ZW5jeQorb2YgUlQgdGFza3MuCisKK1NpbmNlIHRoaXMgdHJhY2VyIG9ubHkgZGVhbHMgd2l0aCBSVCB0YXNrcywgd2Ugd2lsbCBydW4gdGhpcyBzbGlnaHRseQorZGlmZmVyZW50bHkgdGhhbiB3ZSBkaWQgd2l0aCB0aGUgcHJldmlvdXMgdHJhY2Vycy4gSW5zdGVhZCBvZiBwZXJmb3JtaW5nCithbiAnbHMnLCB3ZSB3aWxsIHJ1biAnc2xlZXAgMScgdW5kZXIgJ2NocnQnIHdoaWNoIGNoYW5nZXMgdGhlCitwcmlvcml0eSBvZiB0aGUgdGFzay4KKworICMgZWNobyB3YWtldXAgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19tYXhfbGF0ZW5jeQorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjaHJ0IC1mIDUgc2xlZXAgMQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvbGF0ZW5jeV90cmFjZQorIyB0cmFjZXI6IHdha2V1cAorIword2FrZXVwIGxhdGVuY3kgdHJhY2UgdjEuMS41IG9uIDIuNi4yNi1yYzgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbGF0ZW5jeTogNCB1cywgIzIvMiwgQ1BVIzEgfCAoTTpwcmVlbXB0IFZQOjAsIEtQOjAsIFNQOjAgSFA6MCAjUDoyKQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisgICAgfCB0YXNrOiBzbGVlcC00OTAxICh1aWQ6MCBuaWNlOjAgcG9saWN5OjEgcnRfcHJpbzo1KQorICAgIC0tLS0tLS0tLS0tLS0tLS0tCisKKyMgICAgICAgICAgICAgICAgXy0tLS0tLT0+IENQVSMKKyMgICAgICAgICAgICAgICAvIF8tLS0tLT0+IGlycXMtb2ZmCisjICAgICAgICAgICAgICB8IC8gXy0tLS09PiBuZWVkLXJlc2NoZWQKKyMgICAgICAgICAgICAgIHx8IC8gXy0tLT0+IGhhcmRpcnEvc29mdGlycQorIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aAorIyAgICAgICAgICAgICAgfHx8fCAvCisjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkKKyMgIGNtZCAgICAgcGlkIHx8fHx8IHRpbWUgIHwgICBjYWxsZXIKKyMgICAgIFwgICAvICAgIHx8fHx8ICAgXCAgIHwgICAvCisgIDxpZGxlPi0wICAgICAxZC5oNCAgICAwdXMrOiB0cnlfdG9fd2FrZV91cCAod2FrZV91cF9wcm9jZXNzKQorICA8aWRsZT4tMCAgICAgMWQuLjQgICAgNHVzIDogc2NoZWR1bGUgKGNwdV9pZGxlKQorCisKK3ZpbTpmdD1oZWxwCisKKworUnVubmluZyB0aGlzIG9uIGFuIGlkbGUgc3lzdGVtLCB3ZSBzZWUgdGhhdCBpdCBvbmx5IHRvb2sgNCBtaWNyb3NlY29uZHMKK3RvIHBlcmZvcm0gdGhlIHRhc2sgc3dpdGNoLiAgTm90ZSwgc2luY2UgdGhlIHRyYWNlIG1hcmtlciBpbiB0aGUKK3NjaGVkdWxlIGlzIGJlZm9yZSB0aGUgYWN0dWFsICJzd2l0Y2giLCB3ZSBzdG9wIHRoZSB0cmFjaW5nIHdoZW4KK3RoZSByZWNvcmRlZCB0YXNrIGlzIGFib3V0IHRvIHNjaGVkdWxlIGluLiBUaGlzIG1heSBjaGFuZ2UgaWYKK3dlIGFkZCBhIG5ldyBtYXJrZXIgYXQgdGhlIGVuZCBvZiB0aGUgc2NoZWR1bGVyLgorCitOb3RpY2UgdGhhdCB0aGUgcmVjb3JkZWQgdGFzayBpcyAnc2xlZXAnIHdpdGggdGhlIFBJRCBvZiA0OTAxIGFuZCBpdAoraGFzIGFuIHJ0X3ByaW8gb2YgNS4gVGhpcyBwcmlvcml0eSBpcyB1c2VyLXNwYWNlIHByaW9yaXR5IGFuZCBub3QKK3RoZSBpbnRlcm5hbCBrZXJuZWwgcHJpb3JpdHkuIFRoZSBwb2xpY3kgaXMgMSBmb3IgU0NIRURfRklGTyBhbmQgMgorZm9yIFNDSEVEX1JSLgorCitEb2luZyB0aGUgc2FtZSB3aXRoIGNocnQgLXIgNSBhbmQgZnRyYWNlX2VuYWJsZWQgc2V0LgorCisjIHRyYWNlcjogd2FrZXVwCisjCit3YWtldXAgbGF0ZW5jeSB0cmFjZSB2MS4xLjUgb24gMi42LjI2LXJjOAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBsYXRlbmN5OiA1MCB1cywgIzYwLzYwLCBDUFUjMSB8IChNOnByZWVtcHQgVlA6MCwgS1A6MCwgU1A6MCBIUDowICNQOjIpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB8IHRhc2s6IHNsZWVwLTQwNjggKHVpZDowIG5pY2U6MCBwb2xpY3k6MiBydF9wcmlvOjUpCisgICAgLS0tLS0tLS0tLS0tLS0tLS0KKworIyAgICAgICAgICAgICAgICBfLS0tLS0tPT4gQ1BVIworIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYKKyMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZAorIyAgICAgICAgICAgICAgfHwgLyBfLS0tPT4gaGFyZGlycS9zb2Z0aXJxCisjICAgICAgICAgICAgICB8fHwgLyBfLS09PiBwcmVlbXB0LWRlcHRoCisjICAgICAgICAgICAgICB8fHx8IC8KKyMgICAgICAgICAgICAgIHx8fHx8ICAgICBkZWxheQorIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlcgorIyAgICAgXCAgIC8gICAgfHx8fHwgICBcICAgfCAgIC8KK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDB1cyA6IHRyeV90b193YWtlX3VwICh3YWtlX3VwX3Byb2Nlc3MpCitrc29mdGlycS03ICAgICAxZC5INCAgICAxdXMgOiBzdWJfcHJlZW1wdF9jb3VudCAobWFya2VyX3Byb2JlX2NiKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgMnVzIDogY2hlY2tfcHJlZW1wdF93YWtldXAgKHRyeV90b193YWtlX3VwKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgM3VzIDogdXBkYXRlX2N1cnIgKGNoZWNrX3ByZWVtcHRfd2FrZXVwKQora3NvZnRpcnEtNyAgICAgMWQuSDMgICAgNHVzIDogY2FsY19kZWx0YV9taW5lICh1cGRhdGVfY3VycikKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDV1cyA6IF9fcmVzY2hlZF90YXNrIChjaGVja19wcmVlbXB0X3dha2V1cCkKK2tzb2Z0aXJxLTcgICAgIDFkLkgzICAgIDZ1cyA6IHRhc2tfd2FrZV91cF9ydCAodHJ5X3RvX3dha2VfdXApCitrc29mdGlycS03ICAgICAxZC5IMyAgICA3dXMgOiBfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSAodHJ5X3RvX3dha2VfdXApCitbLi4uXQora3NvZnRpcnEtNyAgICAgMWQuSDIgICAxN3VzIDogaXJxX2V4aXQgKHNtcF9hcGljX3RpbWVyX2ludGVycnVwdCkKK2tzb2Z0aXJxLTcgICAgIDFkLkgyICAgMTh1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKK2tzb2Z0aXJxLTcgICAgIDFkLnMzICAgMTl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChpcnFfZXhpdCkKK2tzb2Z0aXJxLTcgICAgIDEuLnMyICAgMjB1cyA6IHJjdV9wcm9jZXNzX2NhbGxiYWNrcyAoX19kb19zb2Z0aXJxKQorWy4uLl0KK2tzb2Z0aXJxLTcgICAgIDEuLnMyICAgMjZ1cyA6IF9fcmN1X3Byb2Nlc3NfY2FsbGJhY2tzIChyY3VfcHJvY2Vzc19jYWxsYmFja3MpCitrc29mdGlycS03ICAgICAxZC5zMiAgIDI3dXMgOiBfbG9jYWxfYmhfZW5hYmxlIChfX2RvX3NvZnRpcnEpCitrc29mdGlycS03ICAgICAxZC5zMiAgIDI4dXMgOiBzdWJfcHJlZW1wdF9jb3VudCAoX2xvY2FsX2JoX2VuYWJsZSkKK2tzb2Z0aXJxLTcgICAgIDEuTi4zICAgMjl1cyA6IHN1Yl9wcmVlbXB0X2NvdW50IChrc29mdGlycWQpCitrc29mdGlycS03ICAgICAxLk4uMiAgIDMwdXMgOiBfY29uZF9yZXNjaGVkIChrc29mdGlycWQpCitrc29mdGlycS03ICAgICAxLk4uMiAgIDMxdXMgOiBfX2NvbmRfcmVzY2hlZCAoX2NvbmRfcmVzY2hlZCkKK2tzb2Z0aXJxLTcgICAgIDEuTi4yICAgMzJ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfX2NvbmRfcmVzY2hlZCkKK2tzb2Z0aXJxLTcgICAgIDEuTi4yICAgMzN1cyA6IHNjaGVkdWxlIChfX2NvbmRfcmVzY2hlZCkKK2tzb2Z0aXJxLTcgICAgIDEuTi4yICAgMzN1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChzY2hlZHVsZSkKK2tzb2Z0aXJxLTcgICAgIDEuTi4zICAgMzR1cyA6IGhydGlja19jbGVhciAoc2NoZWR1bGUpCitrc29mdGlycS03ICAgICAxZE4uMyAgIDM1dXMgOiBfc3Bpbl9sb2NrIChzY2hlZHVsZSkKK2tzb2Z0aXJxLTcgICAgIDFkTi4zICAgMzZ1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl9sb2NrKQora3NvZnRpcnEtNyAgICAgMWQuLjQgICAzN3VzIDogcHV0X3ByZXZfdGFza19mYWlyIChzY2hlZHVsZSkKK2tzb2Z0aXJxLTcgICAgIDFkLi40ICAgMzh1cyA6IHVwZGF0ZV9jdXJyIChwdXRfcHJldl90YXNrX2ZhaXIpCitbLi4uXQora3NvZnRpcnEtNyAgICAgMWQuLjUgICA0N3VzIDogX3NwaW5fdHJ5bG9jayAodHJhY2luZ19yZWNvcmRfY21kbGluZSkKK2tzb2Z0aXJxLTcgICAgIDFkLi41ICAgNDh1cyA6IGFkZF9wcmVlbXB0X2NvdW50IChfc3Bpbl90cnlsb2NrKQora3NvZnRpcnEtNyAgICAgMWQuLjYgICA0OXVzIDogX3NwaW5fdW5sb2NrICh0cmFjaW5nX3JlY29yZF9jbWRsaW5lKQora3NvZnRpcnEtNyAgICAgMWQuLjYgICA0OXVzIDogc3ViX3ByZWVtcHRfY291bnQgKF9zcGluX3VubG9jaykKK2tzb2Z0aXJxLTcgICAgIDFkLi40ICAgNTB1cyA6IHNjaGVkdWxlIChfX2NvbmRfcmVzY2hlZCkKKworVGhlIGludGVycnVwdCB3ZW50IG9mZiB3aGlsZSBydW5uaW5nIGtzb2Z0aXJxZC4gVGhpcyB0YXNrIHJ1bnMgYXQKK1NDSEVEX09USEVSLiBXaHkgZGlkbid0IHdlIHNlZSB0aGUgJ04nIHNldCBlYXJseT8gVGhpcyBtYXkgYmUKK2EgaGFybWxlc3MgYnVnIHdpdGggeDg2XzMyIGFuZCA0SyBzdGFja3MuIE9uIHg4Nl8zMiB3aXRoIDRLIHN0YWNrcworY29uZmlndXJlZCwgdGhlIGludGVycnVwdCBhbmQgc29mdGlycSBydW5zIHdpdGggdGhlaXIgb3duIHN0YWNrLgorU29tZSBpbmZvcm1hdGlvbiBpcyBoZWxkIG9uIHRoZSB0b3Agb2YgdGhlIHRhc2sncyBzdGFjayAobmVlZF9yZXNjaGVkCithbmQgcHJlZW1wdF9jb3VudCBhcmUgYm90aCBzdG9yZWQgdGhlcmUpLiBUaGUgc2V0dGluZyBvZiB0aGUgTkVFRF9SRVNDSEVECitiaXQgaXMgZG9uZSBkaXJlY3RseSB0byB0aGUgdGFzaydzIHN0YWNrLCBidXQgdGhlIHJlYWRpbmcgb2YgdGhlCitORUVEX1JFU0NIRUQgaXMgZG9uZSBieSBsb29raW5nIGF0IHRoZSBjdXJyZW50IHN0YWNrLCB3aGljaCBpbiB0aGlzIGNhc2UKK2lzIHRoZSBzdGFjayBmb3IgdGhlIGhhcmQgaW50ZXJydXB0LiBUaGlzIGhpZGVzIHRoZSBmYWN0IHRoYXQgTkVFRF9SRVNDSEVECitoYXMgYmVlbiBzZXQuIFdlIGRvbid0IHNlZSB0aGUgJ04nIHVudGlsIHdlIHN3aXRjaCBiYWNrIHRvIHRoZSB0YXNrJ3MKK2Fzc2lnbmVkIHN0YWNrLgorCitmdHJhY2UKKy0tLS0tLQorCitmdHJhY2UgaXMgbm90IG9ubHkgdGhlIG5hbWUgb2YgdGhlIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUsIGJ1dCBpdAoraXMgYWxzbyBhIG5hbWUgb2Ygb25lIG9mIHRoZSB0cmFjZXJzLiBUaGUgdHJhY2VyIGlzIHRoZSBmdW5jdGlvbgordHJhY2VyLiBFbmFibGluZyB0aGUgZnVuY3Rpb24gdHJhY2VyIGNhbiBiZSBkb25lIGZyb20gdGhlCitkZWJ1ZyBmaWxlIHN5c3RlbS4gTWFrZSBzdXJlIHRoZSBmdHJhY2VfZW5hYmxlZCBpcyBzZXQgb3RoZXJ3aXNlCit0aGlzIHRyYWNlciBpcyBhIG5vcC4KKworICMgc3lzY3RsIGtlcm5lbC5mdHJhY2VfZW5hYmxlZD0xCisgIyBlY2hvIGZ0cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIHVzbGVlcCAxCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZQorIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTM6IGZpbmlzaF90YXNrX3N3aXRjaCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE0OiBfc3Bpbl91bmxvY2tfaXJxIDwtZmluaXNoX3Rhc2tfc3dpdGNoCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE0OiBzdWJfcHJlZW1wdF9jb3VudCA8LV9zcGluX3VubG9ja19pcnEKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTU6IGhydGlja19zZXQgPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNTogX3NwaW5fbG9ja19pcnFzYXZlIDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNjogYWRkX3ByZWVtcHRfY291bnQgPC1fc3Bpbl9sb2NrX2lycXNhdmUKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgIDEyMy42Mzg3MTY6IF9zcGluX3VubG9ja19pcnFyZXN0b3JlIDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNzogc3ViX3ByZWVtcHRfY291bnQgPC1fc3Bpbl91bmxvY2tfaXJxcmVzdG9yZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxNzogaHJ0aWNrX2NsZWFyIDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxODogc3ViX3ByZWVtcHRfY291bnQgPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcxODogc3ViX3ByZWVtcHRfY291bnQgPC1wcmVlbXB0X3NjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE5OiB3YWl0X2Zvcl9jb21wbGV0aW9uIDwtX19zdG9wX21hY2hpbmVfcnVuCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzE5OiB3YWl0X2Zvcl9jb21tb24gPC13YWl0X2Zvcl9jb21wbGV0aW9uCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gICAxMjMuNjM4NzIwOiBfc3Bpbl9sb2NrX2lycSA8LXdhaXRfZm9yX2NvbW1vbgorICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAgMTIzLjYzODcyMDogYWRkX3ByZWVtcHRfY291bnQgPC1fc3Bpbl9sb2NrX2lycQorWy4uLl0KKworCitOb3RlOiBJdCBpcyBzb21ldGltZXMgYmV0dGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHRyYWNpbmcgZGlyZWN0bHkgZnJvbQorYSBwcm9ncmFtLCBiZWNhdXNlIHRoZSBidWZmZXIgbWF5IGJlIG92ZXJmbG93ZWQgYnkgdGhlIGVjaG8gY29tbWFuZHMKK2JlZm9yZSB5b3UgZ2V0IHRvIHRoZSBwb2ludCB5b3Ugd2FudCB0byB0cmFjZS4gSXQgaXMgYWxzbyBlYXNpZXIgdG8KK3N0b3AgdGhlIHRyYWNpbmcgYXQgdGhlIHBvaW50IHRoYXQgeW91IGhpdCB0aGUgcGFydCB0aGF0IHlvdSBhcmUKK2ludGVyZXN0ZWQgaW4uIFNpbmNlIHRoZSBmdHJhY2UgYnVmZmVyIGlzIGEgcmluZyBidWZmZXIgd2l0aCB0aGUKK29sZGVzdCBkYXRhIGJlaW5nIG92ZXJ3cml0dGVuLCB1c3VhbGx5IGl0IGlzIHN1ZmZpY2llbnQgdG8gc3RhcnQgdGhlCit0cmFjZXIgd2l0aCBhbiBlY2hvIGNvbW1hbmQgYnV0IGhhdmUgeW91IGNvZGUgc3RvcCBpdC4gU29tZXRoaW5nCitsaWtlIHRoZSBmb2xsb3dpbmcgaXMgdXN1YWxseSBhcHByb3ByaWF0ZSBmb3IgdGhpcy4KKworaW50IHRyYWNlX2ZkOworWy4uLl0KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pIHsKKwlbLi4uXQorCXRyYWNlX2ZkID0gb3BlbigiL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkIiwgT19XUk9OTFkpOworCVsuLi5dCisJaWYgKGNvbmRpdGlvbl9oaXQoKSkgeworCXdyaXRlKHRyYWNlX2ZkLCAiMCIsIDEpOworCX0KKwlbLi4uXQorfQorCisKK2R5bmFtaWMgZnRyYWNlCistLS0tLS0tLS0tLS0tLQorCitJZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgaXMgc2V0LCB0aGVuIHRoZSBzeXN0ZW0gd2lsbCBydW4gd2l0aAordmlydHVhbGx5IG5vIG92ZXJoZWFkIHdoZW4gZnVuY3Rpb24gdHJhY2luZyBpcyBkaXNhYmxlZC4gVGhlIHdheQordGhpcyB3b3JrcyBpcyB0aGUgbWNvdW50IGZ1bmN0aW9uIGNhbGwgKHBsYWNlZCBhdCB0aGUgc3RhcnQgb2YKK2V2ZXJ5IGtlcm5lbCBmdW5jdGlvbiwgcHJvZHVjZWQgYnkgdGhlIC1wZyBzd2l0Y2ggaW4gZ2NjKSwgc3RhcnRzCitvZiBwb2ludGluZyB0byBhIHNpbXBsZSByZXR1cm4uCisKK1doZW4gZHluYW1pYyBmdHJhY2UgaXMgaW5pdGlhbGl6ZWQsIGl0IGNhbGxzIGtzdG9wX21hY2hpbmUgdG8gbWFrZQordGhlIG1hY2hpbmUgYWN0IGxpa2UgYSB1bmlwcm9jZXNzb3Igc28gdGhhdCBpdCBjYW4gZnJlZWx5IG1vZGlmeSBjb2RlCit3aXRob3V0IHdvcnJ5aW5nIGFib3V0IG90aGVyIHByb2Nlc3NvcnMgZXhlY3V0aW5nIHRoYXQgc2FtZSBjb2RlLiAgQXQKK2luaXRpYWxpemF0aW9uLCB0aGUgbWNvdW50IGNhbGxzIGFyZSBjaGFuZ2VkIHRvIGNhbGwgYSAicmVjb3JkX2lwIgorZnVuY3Rpb24uICBBZnRlciB0aGlzLCB0aGUgZmlyc3QgdGltZSBhIGtlcm5lbCBmdW5jdGlvbiBpcyBjYWxsZWQsCitpdCBoYXMgdGhlIGNhbGxpbmcgYWRkcmVzcyBzYXZlZCBpbiBhIGhhc2ggdGFibGUuCisKK0xhdGVyIG9uIHRoZSBmdHJhY2VkIGtlcm5lbCB0aHJlYWQgaXMgYXdva2VuIGFuZCB3aWxsIGFnYWluIGNhbGwKK2tzdG9wX21hY2hpbmUgaWYgbmV3IGZ1bmN0aW9ucyBoYXZlIGJlZW4gcmVjb3JkZWQuIFRoZSBmdHJhY2VkIHRocmVhZAord2lsbCBjaGFuZ2UgYWxsIGNhbGxzIHRvIG1jb3VudCB0byAibm9wIi4gIEp1c3QgY2FsbGluZyBtY291bnQKK2FuZCBoYXZpbmcgbWNvdW50IHJldHVybiBoYXMgc2hvd24gYSAxMCUgb3ZlcmhlYWQuIEJ5IGNvbnZlcnRpbmcKK2l0IHRvIGEgbm9wLCB0aGVyZSBpcyBubyByZWNvcmRhYmxlIG92ZXJoZWFkIHRvIHRoZSBzeXN0ZW0uCisKK09uZSBzcGVjaWFsIHNpZGUtZWZmZWN0IHRvIHRoZSByZWNvcmRpbmcgb2YgdGhlIGZ1bmN0aW9ucyBiZWluZwordHJhY2VkLCBpcyB0aGF0IHdlIGNhbiBub3cgc2VsZWN0aXZlbHkgY2hvb3NlIHdoaWNoIGZ1bmN0aW9ucyB3ZQord2FudCB0byB0cmFjZSBhbmQgd2hpY2ggb25lcyB3ZSB3YW50IHRoZSBtY291bnQgY2FsbHMgdG8gcmVtYWluIGFzCitub3BzLgorCitUd28gZmlsZXMgYXJlIHVzZWQsIG9uZSBmb3IgZW5hYmxpbmcgYW5kIG9uZSBmb3IgZGlzYWJsaW5nIHRoZSB0cmFjaW5nCitvZiByZWNvcmRlZCBmdW5jdGlvbnMuIFRoZXkgYXJlOgorCisgIHNldF9mdHJhY2VfZmlsdGVyCisKK2FuZAorCisgIHNldF9mdHJhY2Vfbm90cmFjZQorCitBIGxpc3Qgb2YgYXZhaWxhYmxlIGZ1bmN0aW9ucyB0aGF0IHlvdSBjYW4gYWRkIHRvIHRoZXNlIGZpbGVzIGlzIGxpc3RlZAoraW46CisKKyAgIGF2YWlsYWJsZV9maWx0ZXJfZnVuY3Rpb25zCisKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9hdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucworcHV0X3ByZXZfdGFza19pZGxlCitrbWVtX2NhY2hlX2NyZWF0ZQorcGlja19uZXh0X3Rhc2tfcnQKK2dldF9vbmxpbmVfY3B1cworcGlja19uZXh0X3Rhc2tfZmFpcgorbXV0ZXhfbG9jaworWy4uLl0KKworSWYgSSdtIG9ubHkgaW50ZXJlc3RlZCBpbiBzeXNfbmFub3NsZWVwIGFuZCBocnRpbWVyX2ludGVycnVwdDoKKworICMgZWNobyBzeXNfbmFub3NsZWVwIGhydGltZXJfaW50ZXJydXB0IFwKKwkJPiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorICMgZWNobyBmdHJhY2UgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorICMgZWNobyAxID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyB1c2xlZXAgMQorICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2luZ19lbmFibGVkCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2UKKyMgdHJhY2VyOiBmdHJhY2UKKyMKKyMgICAgICAgICAgIFRBU0stUElEICAgQ1BVIyAgICBUSU1FU1RBTVAgIEZVTkNUSU9OCisjICAgICAgICAgICAgICB8IHwgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8CisgICAgICAgICAgdXNsZWVwLTQxMzQgIFswMF0gIDEzMTcuMDcwMDE3OiBocnRpbWVyX2ludGVycnVwdCA8LXNtcF9hcGljX3RpbWVyX2ludGVycnVwdAorICAgICAgICAgIHVzbGVlcC00MTM0ICBbMDBdICAxMzE3LjA3MDExMTogc3lzX25hbm9zbGVlcCA8LXN5c2NhbGxfY2FsbAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxMzE3LjA3MDExNTogaHJ0aW1lcl9pbnRlcnJ1cHQgPC1zbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQKKworVG8gc2VlIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyB0cmFjZWQsIHlvdSBjYW4gY2F0IHRoZSBmaWxlOgorCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKK2hydGltZXJfaW50ZXJydXB0CitzeXNfbmFub3NsZWVwCisKKworUGVyaGFwcyB0aGlzIGlzbid0IGVub3VnaC4gVGhlIGZpbHRlcnMgYWxzbyBhbGxvdyBzaW1wbGUgd2lsZCBjYXJkcy4KK09ubHkgdGhlIGZvbGxvd2luZyBhcmUgY3VycmVudGx5IGF2YWlsYWJsZQorCisgIDxtYXRjaD4qICAtIHdpbGwgbWF0Y2ggZnVuY3Rpb25zIHRoYXQgYmVnaW4gd2l0aCA8bWF0Y2g+CisgICo8bWF0Y2g+ICAtIHdpbGwgbWF0Y2ggZnVuY3Rpb25zIHRoYXQgZW5kIHdpdGggPG1hdGNoPgorICAqPG1hdGNoPiogLSB3aWxsIG1hdGNoIGZ1bmN0aW9ucyB0aGF0IGhhdmUgPG1hdGNoPiBpbiBpdAorCitUaGF0cyBhbGwgdGhlIHdpbGQgY2FyZHMgdGhhdCBhcmUgYWxsb3dlZC4KKworICA8bWF0Y2g+KjxtYXRjaD4gd2lsbCBub3Qgd29yay4KKworICMgZWNobyBocnRpbWVyXyogPiAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorCitQcm9kdWNlczoKKworIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgMTQ4MC42MTE3OTQ6IGhydGltZXJfaW5pdCA8LWNvcHlfcHJvY2VzcworICAgICAgICAgICAgYmFzaC00MDAzICBbMDBdICAxNDgwLjYxMTk0MTogaHJ0aW1lcl9zdGFydCA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDAwMyAgWzAwXSAgMTQ4MC42MTE5NTY6IGhydGltZXJfY2FuY2VsIDwtaHJ0aWNrX2NsZWFyCisgICAgICAgICAgICBiYXNoLTQwMDMgIFswMF0gIDE0ODAuNjExOTU2OiBocnRpbWVyX3RyeV90b19jYW5jZWwgPC1ocnRpbWVyX2NhbmNlbAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxNDgwLjYxMjAxOTogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCA8LWdldF9uZXh0X3RpbWVyX2ludGVycnVwdAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxNDgwLjYxMjAyNTogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCA8LWdldF9uZXh0X3RpbWVyX2ludGVycnVwdAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxNDgwLjYxMjAzMjogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCA8LWdldF9uZXh0X3RpbWVyX2ludGVycnVwdAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxNDgwLjYxMjAzNzogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCA8LWdldF9uZXh0X3RpbWVyX2ludGVycnVwdAorICAgICAgICAgIDxpZGxlPi0wICAgICBbMDBdICAxNDgwLjYxMjM4MjogaHJ0aW1lcl9nZXRfbmV4dF9ldmVudCA8LWdldF9uZXh0X3RpbWVyX2ludGVycnVwdAorCisKK05vdGljZSB0aGF0IHdlIGxvc3QgdGhlIHN5c19uYW5vc2xlZXAuCisKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgoraHJ0aW1lcl9ydW5fcXVldWVzCitocnRpbWVyX3J1bl9wZW5kaW5nCitocnRpbWVyX2luaXQKK2hydGltZXJfY2FuY2VsCitocnRpbWVyX3RyeV90b19jYW5jZWwKK2hydGltZXJfZm9yd2FyZAoraHJ0aW1lcl9zdGFydAoraHJ0aW1lcl9yZXByb2dyYW0KK2hydGltZXJfZm9yY2VfcmVwcm9ncmFtCitocnRpbWVyX2dldF9uZXh0X2V2ZW50CitocnRpbWVyX2ludGVycnVwdAoraHJ0aW1lcl9uYW5vc2xlZXAKK2hydGltZXJfd2FrZXVwCitocnRpbWVyX2dldF9yZW1haW5pbmcKK2hydGltZXJfZ2V0X3JlcworaHJ0aW1lcl9pbml0X3NsZWVwZXIKKworCitUaGlzIGlzIGJlY2F1c2UgdGhlICc+JyBhbmQgJz4+JyBhY3QganVzdCBsaWtlIHRoZXkgZG8gaW4gYmFzaC4KK1RvIHJld3JpdGUgdGhlIGZpbHRlcnMsIHVzZSAnPicKK1RvIGFwcGVuZCB0byB0aGUgZmlsdGVycywgdXNlICc+PicKKworVG8gY2xlYXIgb3V0IGEgZmlsdGVyIHNvIHRoYXQgYWxsIGZ1bmN0aW9ucyB3aWxsIGJlIHJlY29yZGVkIGFnYWluOgorCisgIyBlY2hvID4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorICMKKworQWdhaW4sIG5vdyB3ZSB3YW50IHRvIGFwcGVuZC4KKworICMgZWNobyBzeXNfbmFub3NsZWVwID4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgorc3lzX25hbm9zbGVlcAorICMgZWNobyBocnRpbWVyXyogPj4gL2RlYnVnL3RyYWNpbmcvc2V0X2Z0cmFjZV9maWx0ZXIKKyAjIGNhdCAvZGVidWcvdHJhY2luZy9zZXRfZnRyYWNlX2ZpbHRlcgoraHJ0aW1lcl9ydW5fcXVldWVzCitocnRpbWVyX3J1bl9wZW5kaW5nCitocnRpbWVyX2luaXQKK2hydGltZXJfY2FuY2VsCitocnRpbWVyX3RyeV90b19jYW5jZWwKK2hydGltZXJfZm9yd2FyZAoraHJ0aW1lcl9zdGFydAoraHJ0aW1lcl9yZXByb2dyYW0KK2hydGltZXJfZm9yY2VfcmVwcm9ncmFtCitocnRpbWVyX2dldF9uZXh0X2V2ZW50CitocnRpbWVyX2ludGVycnVwdAorc3lzX25hbm9zbGVlcAoraHJ0aW1lcl9uYW5vc2xlZXAKK2hydGltZXJfd2FrZXVwCitocnRpbWVyX2dldF9yZW1haW5pbmcKK2hydGltZXJfZ2V0X3JlcworaHJ0aW1lcl9pbml0X3NsZWVwZXIKKworCitUaGUgc2V0X2Z0cmFjZV9ub3RyYWNlIHByZXZlbnRzIHRob3NlIGZ1bmN0aW9ucyBmcm9tIGJlaW5nIHRyYWNlZC4KKworICMgZWNobyAnKnByZWVtcHQqJyAnKmxvY2sqJyA+IC9kZWJ1Zy90cmFjaW5nL3NldF9mdHJhY2Vfbm90cmFjZQorCitQcm9kdWNlczoKKworIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDQ6IGZpbmlzaF90YXNrX3N3aXRjaCA8LXNjaGVkdWxlCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMV0gICAxMTUuMjgxNjQ1OiBocnRpY2tfc2V0IDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDU6IGhydGlja19jbGVhciA8LWhydGlja19zZXQKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDY6IHdhaXRfZm9yX2NvbXBsZXRpb24gPC1fX3N0b3BfbWFjaGluZV9ydW4KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDc6IHdhaXRfZm9yX2NvbW1vbiA8LXdhaXRfZm9yX2NvbXBsZXRpb24KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDc6IGt0aHJlYWRfc3RvcCA8LXN0b3BfbWFjaGluZV9ydW4KKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDg6IGluaXRfd2FpdHF1ZXVlX2hlYWQgPC1rdGhyZWFkX3N0b3AKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAxXSAgIDExNS4yODE2NDg6IHdha2VfdXBfcHJvY2VzcyA8LWt0aHJlYWRfc3RvcAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDFdICAgMTE1LjI4MTY0OTogdHJ5X3RvX3dha2VfdXAgPC13YWtlX3VwX3Byb2Nlc3MKKworV2UgY2FuIHNlZSB0aGF0IHRoZXJlJ3Mgbm8gbW9yZSBsb2NrIG9yIHByZWVtcHQgdHJhY2luZy4KKworZnRyYWNlZAorLS0tLS0tLQorCitBcyBtZW50aW9uZWQgYWJvdmUsIHdoZW4gZHluYW1pYyBmdHJhY2UgaXMgY29uZmlndXJlZCBpbiwgYSBrZXJuZWwKK3RocmVhZCB3YWtlcyB1cCBvbmNlIGEgc2Vjb25kIGFuZCBjaGVja3MgdG8gc2VlIGlmIHRoZXJlIGFyZSBtY291bnQKK2NhbGxzIHRoYXQgbmVlZCB0byBiZSBjb252ZXJ0ZWQgaW50byBub3BzLiBJZiB0aGVyZSBhcmUgbm90IGFueSwgdGhlbgoraXQgc2ltcGx5IGdvZXMgYmFjayB0byBzbGVlcC4gQnV0IGlmIHRoZXJlIGFyZSBzb21lLCBpdCB3aWxsIGNhbGwKK2tzdG9wX21hY2hpbmUgdG8gY29udmVydCB0aGUgY2FsbHMgdG8gbm9wcy4KKworVGhlcmUgbWF5IGJlIGEgY2FzZSB0aGF0IHlvdSBkbyBub3Qgd2FudCB0aGlzIGFkZGVkIGxhdGVuY3kuCitQZXJoYXBzIHlvdSBhcmUgZG9pbmcgc29tZSBhdWRpbyByZWNvcmRpbmcgYW5kIHRoaXMgYWN0aXZpdHkgbWlnaHQKK2NhdXNlIHNraXBzIGluIHRoZSBwbGF5YmFjay4gVGhlcmUgaXMgYW4gaW50ZXJmYWNlIHRvIGRpc2FibGUKK2FuZCBlbmFibGUgdGhlIGZ0cmFjZWQga2VybmVsIHRocmVhZC4KKworICMgZWNobyAwID4gL2RlYnVnL3RyYWNpbmcvZnRyYWNlZF9lbmFibGVkCisKK1RoaXMgd2lsbCBkaXNhYmxlIHRoZSBjYWxsaW5nIG9mIHRoZSBrc3RvcF9tYWNoaW5lIHRvIHVwZGF0ZSB0aGUKK21jb3VudCBjYWxscyB0byBub3BzLiBSZW1lbWJlciB0aGF0IHRoZXJlJ3MgYSBsYXJnZSBvdmVyaGVhZAordG8gY2FsbGluZyBtY291bnQuIFdpdGhvdXQgdGhpcyBrZXJuZWwgdGhyZWFkLCB0aGF0IG92ZXJoZWFkIHdpbGwKK2V4aXN0LgorCitJZiB0aGVyZSBhcmUgcmVjb3JkZWQgY2FsbHMgdG8gbWNvdW50LCBhbnkgd3JpdGUgdG8gdGhlIGZ0cmFjZWRfZW5hYmxlZAorZmlsZSB3aWxsIGNhdXNlIHRoZSBrc3RvcF9tYWNoaW5lIHRvIHJ1bi4gVGhpcyBtZWFucyB0aGF0IGEKK3VzZXIgY2FuIG1hbnVhbGx5IHBlcmZvcm0gdGhlIHVwZGF0ZXMgd2hlbiB0aGV5IHdhbnQgdG8gYnkgc2ltcGx5CitlY2hvaW5nIGEgJzAnIGludG8gdGhlIGZ0cmFjZWRfZW5hYmxlZCBmaWxlLgorCitUaGUgdXBkYXRlcyBhcmUgYWxzbyBkb25lIGF0IHRoZSBiZWdpbm5pbmcgb2YgZW5hYmxpbmcgYSB0cmFjZXIKK3RoYXQgdXNlcyBmdHJhY2UgZnVuY3Rpb24gcmVjb3JkaW5nLgorCisKK3RyYWNlX3BpcGUKKy0tLS0tLS0tLS0KKworVGhlIHRyYWNlX3BpcGUgb3V0cHV0cyB0aGUgc2FtZSBhcyB0cmFjZSwgYnV0IHRoZSBlZmZlY3Qgb24gdGhlCit0cmFjaW5nIGlzIGRpZmZlcmVudC4gRXZlcnkgcmVhZCBmcm9tIHRyYWNlX3BpcGUgaXMgY29uc3VtZWQuCitUaGlzIG1lYW5zIHRoYXQgc3Vic2VxdWVudCByZWFkcyB3aWxsIGJlIGRpZmZlcmVudC4gVGhlIHRyYWNlCitpcyBsaXZlLgorCisgIyBlY2hvIGZ0cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCisgIyBjYXQgL2RlYnVnL3RyYWNpbmcvdHJhY2VfcGlwZSA+IC90bXAvdHJhY2Uub3V0ICYKK1sxXSA0MTUzCisgIyBlY2hvIDEgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIHVzbGVlcCAxCisgIyBlY2hvIDAgPiAvZGVidWcvdHJhY2luZy90cmFjaW5nX2VuYWJsZWQKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZQorIyB0cmFjZXI6IGZ0cmFjZQorIworIyAgICAgICAgICAgVEFTSy1QSUQgICBDUFUjICAgIFRJTUVTVEFNUCAgRlVOQ1RJT04KKyMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwKKworICMKKyAjIGNhdCAvdG1wL3RyYWNlLm91dAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwNjogZmluaXNoX3Rhc2tfc3dpdGNoIDwtc2NoZWR1bGUKKyAgICAgICAgICAgIGJhc2gtNDA0MyAgWzAwXSA0MS4yNjcxMDY6IGhydGlja19zZXQgPC1zY2hlZHVsZQorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwNzogaHJ0aWNrX2NsZWFyIDwtaHJ0aWNrX3NldAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwODogd2FpdF9mb3JfY29tcGxldGlvbiA8LV9fc3RvcF9tYWNoaW5lX3J1bgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwODogd2FpdF9mb3JfY29tbW9uIDwtd2FpdF9mb3JfY29tcGxldGlvbgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwOToga3RocmVhZF9zdG9wIDwtc3RvcF9tYWNoaW5lX3J1bgorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzEwOTogaW5pdF93YWl0cXVldWVfaGVhZCA8LWt0aHJlYWRfc3RvcAorICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzExMDogd2FrZV91cF9wcm9jZXNzIDwta3RocmVhZF9zdG9wCisgICAgICAgICAgICBiYXNoLTQwNDMgIFswMF0gNDEuMjY3MTEwOiB0cnlfdG9fd2FrZV91cCA8LXdha2VfdXBfcHJvY2VzcworICAgICAgICAgICAgYmFzaC00MDQzICBbMDBdIDQxLjI2NzExMTogc2VsZWN0X3Rhc2tfcnFfcnQgPC10cnlfdG9fd2FrZV91cAorCisKK05vdGUsIHJlYWRpbmcgdGhlIHRyYWNlX3BpcGUgd2lsbCBibG9jayB1bnRpbCBtb3JlIGlucHV0IGlzIGFkZGVkLgorQnkgY2hhbmdpbmcgdGhlIHRyYWNlciwgdHJhY2VfcGlwZSB3aWxsIGlzc3VlIGFuIEVPRi4gV2UgbmVlZGVkCit0byBzZXQgdGhlIGZ0cmFjZSB0cmFjZXIgX2JlZm9yZV8gY2F0aW5nIHRoZSB0cmFjZV9waXBlIGZpbGUuCisKKwordHJhY2UgZW50cmllcworLS0tLS0tLS0tLS0tLQorCitIYXZpbmcgdG9vIG11Y2ggb3Igbm90IGVub3VnaCBkYXRhIGNhbiBiZSB0cm91Ymxlc29tZSBpbiBkaWFnbm9zaW5nCitzb21lIGlzc3VlIGluIHRoZSBrZXJuZWwuIFRoZSBmaWxlIHRyYWNlX2VudHJpZXMgaXMgdXNlZCB0byBtb2RpZnkKK3RoZSBzaXplIG9mIHRoZSBpbnRlcm5hbCB0cmFjZSBidWZmZXJzLiBUaGUgbnVtYmVyIGxpc3RlZAoraXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgY2FuIGJlIHJlY29yZGVkIHBlciBDUFUuIFRvIGtub3cKK3RoZSBmdWxsIHNpemUsIG11bHRpcGx5IHRoZSBudW1iZXIgb2YgcG9zc2libGUgQ1BVUyB3aXRoIHRoZQorbnVtYmVyIG9mIGVudHJpZXMuCisKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCis2NTYyMAorCitOb3RlLCB0byBtb2RpZnkgdGhpcywgeW91IG11c3QgaGF2ZSB0cmFjaW5nIGNvbXBsZXRlbHkgZGlzYWJsZWQuIFRvIGRvIHRoYXQsCitlY2hvICJub25lIiBpbnRvIHRoZSBjdXJyZW50X3RyYWNlci4KKworICMgZWNobyBub25lID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXIKKyAjIGVjaG8gMTAwMDAwID4gL2RlYnVnL3RyYWNpbmcvdHJhY2VfZW50cmllcworICMgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKzEwMDA0NQorCisKK05vdGljZSB0aGF0IHdlIGVjaG9lZCBpbiAxMDAsMDAwIGJ1dCB0aGUgc2l6ZSBpcyAxMDAsMDQ1LiBUaGUgZW50cmllcworYXJlIGhlbGQgYnkgaW5kaXZpZHVhbCBwYWdlcy4gSXQgYWxsb2NhdGVzIHRoZSBudW1iZXIgb2YgcGFnZXMgaXQgdGFrZXMKK3RvIGZ1bGZpbGwgdGhlIHJlcXVlc3QuIElmIG1vcmUgZW50cmllcyBtYXkgZml0IG9uIHRoZSBsYXN0IHBhZ2UKK2l0IHdpbGwgYWRkIHRoZW0uCisKKyAjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCis4NQorCitUaGlzIHNob3dzIHVzIHRoYXQgODUgZW50cmllcyBjYW4gZml0IG9uIGEgc2luZ2xlIHBhZ2UuCisKK1RoZSBudW1iZXIgb2YgcGFnZXMgdGhhdCB3aWxsIGJlIGFsbG9jYXRlZCBpcyBhIHBlcmNlbnRhZ2Ugb2YgYXZhaWxhYmxlCittZW1vcnkuIEFsbG9jYXRpbmcgdG9vIG11Y2ggd2lsbCBwcm9kdWNlIGFuIGVycm9yLgorCisgIyBlY2hvIDEwMDAwMDAwMDAwMDAgPiAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCistYmFzaDogZWNobzogd3JpdGUgZXJyb3I6IENhbm5vdCBhbGxvY2F0ZSBtZW1vcnkKKyAjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCis4NQorCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2h3bW9uL2libWFlbSBiL0RvY3VtZW50YXRpb24vaHdtb24vaWJtYWVtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZWZhZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL2libWFlbQpAQCAtMCwwICsxLDM3IEBACitLZXJuZWwgZHJpdmVyIGlibWFlbQorPT09PT09PT09PT09PT09PT09PT09PQorCitTdXBwb3J0ZWQgc3lzdGVtczoKKyAgKiBBbnkgcmVjZW50IElCTSBTeXN0ZW0gWCBzZXJ2ZXIgd2l0aCBBY3RpdmUgRW5lcmd5IE1hbmFnZXIgc3VwcG9ydC4KKyAgICBUaGlzIGluY2x1ZGVzIHRoZSB4MzM1MCwgeDM1NTAsIHgzNjUwLCB4MzY1NSwgeDM3NTUsIHgzODUwIE0yLAorICAgIHgzOTUwIE0yLCBhbmQgY2VydGFpbiBIUzJ4L0xTMngvUVMyeCBibGFkZXMuICBUaGUgSVBNSSBob3N0IGludGVyZmFjZQorICAgIGRyaXZlciAoImlwbWktc2kiKSBuZWVkcyB0byBiZSBsb2FkZWQgZm9yIHRoaXMgZHJpdmVyIHRvIGRvIGFueXRoaW5nLgorICAgIFByZWZpeDogJ2libWFlbScKKyAgICBEYXRhc2hlZXQ6IE5vdCBhdmFpbGFibGUKKworQXV0aG9yOiBEYXJyaWNrIEouIFdvbmcKKworRGVzY3JpcHRpb24KKy0tLS0tLS0tLS0tCisKK1RoaXMgZHJpdmVyIGltcGxlbWVudHMgc2Vuc29yIHJlYWRpbmcgc3VwcG9ydCBmb3IgdGhlIGVuZXJneSBhbmQgcG93ZXIKK21ldGVycyBhdmFpbGFibGUgb24gdmFyaW91cyBJQk0gU3lzdGVtIFggaGFyZHdhcmUgdGhyb3VnaCB0aGUgQk1DLiAgQWxsCitzZW5zb3IgYmFua3Mgd2lsbCBiZSBleHBvcnRlZCBhcyBwbGF0Zm9ybSBkZXZpY2VzOyB0aGlzIGRyaXZlciBjYW4gdGFsawordG8gYm90aCB2MSBhbmQgdjIgaW50ZXJmYWNlcy4gIFRoaXMgZHJpdmVyIGlzIGNvbXBsZXRlbHkgc2VwYXJhdGUgZnJvbSB0aGUKK29sZGVyIGlibXBleCBkcml2ZXIuCisKK1RoZSB2MSBBRU0gaW50ZXJmYWNlIGhhcyBhIHNpbXBsZSBzZXQgb2YgZmVhdHVyZXMgdG8gbW9uaXRvciBlbmVyZ3kgdXNlLgorVGhlcmUgaXMgYSByZWdpc3RlciB0aGF0IGRpc3BsYXlzIGFuIGVzdGltYXRlIG9mIHJhdyBlbmVyZ3kgY29uc3VtcHRpb24KK3NpbmNlIHRoZSBsYXN0IEJNQyByZXNldCwgYW5kIGEgcG93ZXIgc2Vuc29yIHRoYXQgcmV0dXJucyBhdmVyYWdlIHBvd2VyCit1c2Ugb3ZlciBhIGNvbmZpZ3VyYWJsZSBpbnRlcnZhbC4KKworVGhlIHYyIEFFTSBpbnRlcmZhY2UgaXMgYSBiaXQgbW9yZSBzb3BoaXN0aWNhdGVkLCBiZWluZyBhYmxlIHRvIHByZXNlbnQKK2Egd2lkZXIgcmFuZ2Ugb2YgZW5lcmd5IGFuZCBwb3dlciB1c2UgcmVnaXN0ZXJzLCB0aGUgcG93ZXIgY2FwIGFzCitzZXQgYnkgdGhlIEFFTSBzb2Z0d2FyZSwgYW5kIHRlbXBlcmF0dXJlIHNlbnNvcnMuCisKK1NwZWNpYWwgRmVhdHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlICJwb3dlcl9jYXAiIHZhbHVlIGRpc3BsYXlzIHRoZSBjdXJyZW50IHN5c3RlbSBwb3dlciBjYXAsIGFzIHNldCBieQordGhlIEFjdGl2ZSBFbmVyZ3kgTWFuYWdlciBzb2Z0d2FyZS4gIFNldHRpbmcgdGhlIHBvd2VyIGNhcCBmcm9tIHRoZSBob3N0CitpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vc3lzZnMtaW50ZXJmYWNlIGIvRG9jdW1lbnRhdGlvbi9od21vbi9zeXNmcy1pbnRlcmZhY2UKaW5kZXggZjRhOGViYy4uMmQ4NDU3MyAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9od21vbi9zeXNmcy1pbnRlcmZhY2UKKysrIGIvRG9jdW1lbnRhdGlvbi9od21vbi9zeXNmcy1pbnRlcmZhY2UKQEAgLTIsMTcgKzIsMTIgQEAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaGUgbGlic2Vuc29ycyBsaWJyYXJ5IG9mZmVycyBhbiBpbnRlcmZhY2UgdG8gdGhlIHJhdyBzZW5zb3JzIGRhdGEKLXRocm91Z2ggdGhlIHN5c2ZzIGludGVyZmFjZS4gU2VlIGxpYnNlbnNvcnMgZG9jdW1lbnRhdGlvbiBhbmQgc291cmNlIGZvcgotZnVydGhlciBpbmZvcm1hdGlvbi4gQXMgb2Ygd3JpdGluZyB0aGlzIGRvY3VtZW50LCBsaWJzZW5zb3JzCi0oZnJvbSBsbV9zZW5zb3JzIDIuOC4zKSBpcyBoZWF2aWx5IGNoaXAtZGVwZW5kZW50LiBBZGRpbmcgb3IgdXBkYXRpbmcKLXN1cHBvcnQgZm9yIGFueSBnaXZlbiBjaGlwIHJlcXVpcmVzIG1vZGlmeWluZyB0aGUgbGlicmFyeSdzIGNvZGUuCi1UaGlzIGlzIGJlY2F1c2UgbGlic2Vuc29ycyB3YXMgd3JpdHRlbiBmb3IgdGhlIHByb2NmcyBpbnRlcmZhY2UKLW9sZGVyIGtlcm5lbCBtb2R1bGVzIHdlcmUgdXNpbmcsIHdoaWNoIHdhc24ndCBzdGFuZGFyZGl6ZWQgZW5vdWdoLgotUmVjZW50IHZlcnNpb25zIG9mIGxpYnNlbnNvcnMgKGZyb20gbG1fc2Vuc29ycyAyLjguMiBhbmQgbGF0ZXIpIGhhdmUKLXN1cHBvcnQgZm9yIHRoZSBzeXNmcyBpbnRlcmZhY2UsIHRob3VnaC4KLQotVGhlIG5ldyBzeXNmcyBpbnRlcmZhY2Ugd2FzIGRlc2lnbmVkIHRvIGJlIGFzIGNoaXAtaW5kZXBlbmRlbnQgYXMKLXBvc3NpYmxlLgordGhyb3VnaCB0aGUgc3lzZnMgaW50ZXJmYWNlLiBTaW5jZSBsbS1zZW5zb3JzIDMuMC4wLCBsaWJzZW5zb3JzIGlzCitjb21wbGV0ZWx5IGNoaXAtaW5kZXBlbmRlbnQuIEl0IGFzc3VtZXMgdGhhdCBhbGwgdGhlIGtlcm5lbCBkcml2ZXJzCitpbXBsZW1lbnQgdGhlIHN0YW5kYXJkIHN5c2ZzIGludGVyZmFjZSBkZXNjcmliZWQgaW4gdGhpcyBkb2N1bWVudC4KK1RoaXMgbWFrZXMgYWRkaW5nIG9yIHVwZGF0aW5nIHN1cHBvcnQgZm9yIGFueSBnaXZlbiBjaGlwIHZlcnkgZWFzeSwgYXMKK2xpYnNlbnNvcnMsIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgaXQsIGRvIG5vdCBuZWVkIHRvIGJlIG1vZGlmaWVkLgorVGhpcyBpcyBhIG1ham9yIGltcHJvdmVtZW50IGNvbXBhcmVkIHRvIGxtLXNlbnNvcnMgMi4KIAogTm90ZSB0aGF0IG1vdGhlcmJvYXJkcyB2YXJ5IHdpZGVseSBpbiB0aGUgY29ubmVjdGlvbnMgdG8gc2Vuc29yIGNoaXBzLgogVGhlcmUgaXMgbm8gc3RhbmRhcmQgdGhhdCBlbnN1cmVzLCBmb3IgZXhhbXBsZSwgdGhhdCB0aGUgc2Vjb25kCkBAIC0zNSwxOSArMzAsMTcgQEAKIHdpbGwgaGF2ZSB0byBpbXBsZW1lbnQgY29udmVyc2lvbiwgbGFiZWxpbmcgYW5kIGhpZGluZyBvZiBpbnB1dHMuIEZvcgogdGhpcyByZWFzb24sIGl0IGlzIHN0aWxsIG5vdCByZWNvbW1lbmRlZCB0byBieXBhc3MgdGhlIGxpYnJhcnkuCiAKLUlmIHlvdSBhcmUgZGV2ZWxvcGluZyBhIHVzZXJzcGFjZSBhcHBsaWNhdGlvbiBwbGVhc2Ugc2VuZCB1cyBmZWVkYmFjayBvbgotdGhpcyBzdGFuZGFyZC4KLQotTm90ZSB0aGF0IHRoaXMgc3RhbmRhcmQgaXNuJ3QgY29tcGxldGVseSBlc3RhYmxpc2hlZCB5ZXQsIHNvIGl0IGlzIHN1YmplY3QKLXRvIGNoYW5nZXMuIElmIHlvdSBhcmUgd3JpdGluZyBhIG5ldyBoYXJkd2FyZSBtb25pdG9yaW5nIGRyaXZlciB0aG9zZQotZmVhdHVyZXMgY2FuJ3Qgc2VlbSB0byBmaXQgaW4gdGhpcyBpbnRlcmZhY2UsIHBsZWFzZSBjb250YWN0IHVzIHdpdGggeW91cgotZXh0ZW5zaW9uIHByb3Bvc2FsLiBLZWVwIGluIG1pbmQgdGhhdCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IG11c3QgYmUKLXByZXNlcnZlZC4KLQogRWFjaCBjaGlwIGdldHMgaXRzIG93biBkaXJlY3RvcnkgaW4gdGhlIHN5c2ZzIC9zeXMvZGV2aWNlcyB0cmVlLiAgVG8KIGZpbmQgYWxsIHNlbnNvciBjaGlwcywgaXQgaXMgZWFzaWVyIHRvIGZvbGxvdyB0aGUgZGV2aWNlIHN5bWxpbmtzIGZyb20KIC9zeXMvY2xhc3MvaHdtb24vaHdtb24qLgogCitVcCB0byBsbS1zZW5zb3JzIDMuMC4wLCBsaWJzZW5zb3JzIGxvb2tzIGZvciBoYXJkd2FyZSBtb25pdG9yaW5nIGF0dHJpYnV0ZXMKK2luIHRoZSAicGh5c2ljYWwiIGRldmljZSBkaXJlY3RvcnkuIFNpbmNlIGxtLXNlbnNvcnMgMy4wLjEsIGF0dHJpYnV0ZXMgZm91bmQKK2luIHRoZSBod21vbiAiY2xhc3MiIGRldmljZSBkaXJlY3RvcnkgYXJlIGFsc28gc3VwcG9ydGVkLiBDb21wbGV4IGRyaXZlcnMKKyhlLmcuIGRyaXZlcnMgZm9yIG11bHRpZnVuY3Rpb24gY2hpcHMpIG1heSB3YW50IHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5IHRvCithdm9pZCBuYW1lc3BhY2UgcG9sbHV0aW9uLiBUaGUgb25seSBkcmF3YmFjayB3aWxsIGJlIHRoYXQgb2xkZXIgdmVyc2lvbnMgb2YKK2xpYnNlbnNvcnMgd29uJ3Qgc3VwcG9ydCB0aGUgZHJpdmVyIGluIHF1ZXN0aW9uLgorCiBBbGwgc3lzZnMgdmFsdWVzIGFyZSBmaXhlZCBwb2ludCBudW1iZXJzLgogCiBUaGVyZSBpcyBvbmx5IG9uZSB2YWx1ZSBwZXIgZmlsZSwgdW5saWtlIHRoZSBvbGRlciAvcHJvYyBzcGVjaWZpY2F0aW9uLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzIGIvRG9jdW1lbnRhdGlvbi9pMmMvd3JpdGluZy1jbGllbnRzCmluZGV4IGVlNzVjYmEuLmQ0Y2Q0MTIgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaTJjL3dyaXRpbmctY2xpZW50cworKysgYi9Eb2N1bWVudGF0aW9uL2kyYy93cml0aW5nLWNsaWVudHMKQEAgLTI1LDEyICsyNSwyMyBAQAogcHJvdmlkZS4gIEEgY2xpZW50IHN0cnVjdHVyZSBob2xkcyBkZXZpY2Utc3BlY2lmaWMgaW5mb3JtYXRpb24gbGlrZSB0aGUKIGRyaXZlciBtb2RlbCBkZXZpY2Ugbm9kZSwgYW5kIGl0cyBJMkMgYWRkcmVzcy4KIAorLyogaWZmIGRyaXZlciB1c2VzIGRyaXZlciBtb2RlbCAoIm5ldyBzdHlsZSIpIGJpbmRpbmcgbW9kZWw6ICovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2RldmljZV9pZCBmb29faWR0YWJsZVtdID0geworCXsgImZvbyIsIG15X2lkX2Zvcl9mb28gfSwKKwl7ICJiYXIiLCBteV9pZF9mb3JfYmFyIH0sCisJeyB9Cit9OworCitNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgZm9vX2lkdGFibGUpOworCiBzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZm9vX2RyaXZlciA9IHsKIAkuZHJpdmVyID0gewogCQkubmFtZQk9ICJmb28iLAogCX0sCiAKIAkvKiBpZmYgZHJpdmVyIHVzZXMgZHJpdmVyIG1vZGVsICgibmV3IHN0eWxlIikgYmluZGluZyBtb2RlbDogKi8KKwkuaWRfdGFibGUJPSBmb29faWRzLAogCS5wcm9iZQkJPSBmb29fcHJvYmUsCiAJLnJlbW92ZQkJPSBmb29fcmVtb3ZlLAogCkBAIC0xNzMsMTAgKzE4NCw5IEBACiAoemVybyBub3QgYSBuZWdhdGl2ZSBzdGF0dXMgY29kZSkgaXQgbWF5IHNhdmUgdGhlIGhhbmRsZSBhbmQgdXNlIGl0IHVudGlsCiBmb29fcmVtb3ZlKCkgcmV0dXJucy4gIFRoYXQgYmluZGluZyBtb2RlbCBpcyB1c2VkIGJ5IG1vc3QgTGludXggZHJpdmVycy4KIAotRHJpdmVycyBtYXRjaCBkZXZpY2VzIHdoZW4gaTJjX2NsaWVudC5kcml2ZXJfbmFtZSBhbmQgdGhlIGRyaXZlciBuYW1lIGFyZQotdGhlIHNhbWU7IHRoaXMgYXBwcm9hY2ggaXMgdXNlZCBpbiBzZXZlcmFsIG90aGVyIGJ1c3NlcyB0aGF0IGRvbid0IGhhdmUKLWRldmljZSB0eXBpbmcgc3VwcG9ydCBpbiB0aGUgaGFyZHdhcmUuICBUaGUgZHJpdmVyIGFuZCBtb2R1bGUgbmFtZSBzaG91bGQKLW1hdGNoLCBzbyBob3RwbHVnL2NvbGRwbHVnIG1lY2hhbmlzbXMgd2lsbCBtb2Rwcm9iZSB0aGUgZHJpdmVyLgorVGhlIHByb2JlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGFuIGVudHJ5IGluIHRoZSBpZF90YWJsZSBuYW1lIGZpZWxkCittYXRjaGVzIHRoZSBkZXZpY2UncyBuYW1lLiBJdCBpcyBwYXNzZWQgdGhlIGVudHJ5IHRoYXQgd2FzIG1hdGNoZWQgc28KK3RoZSBkcml2ZXIga25vd3Mgd2hpY2ggb25lIGluIHRoZSB0YWJsZSBtYXRjaGVkLgogCiAKIERldmljZSBDcmVhdGlvbiAoU3RhbmRhcmQgZHJpdmVyIG1vZGVsKQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMzg2L2Jvb3QudHh0IGIvRG9jdW1lbnRhdGlvbi9pMzg2L2Jvb3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NWFkMTVjLi4wMDAwMDAwCi0tLSBhL0RvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDg4NyArMCwwIEBACi0JCSAgICAgVEhFIExJTlVYL0kzODYgQk9PVCBQUk9UT0NPTAotCQkgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCQkgICAgSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+Ci0JCQlMYXN0IHVwZGF0ZSAyMDA3LTA1LTIzCi0KLU9uIHRoZSBpMzg2IHBsYXRmb3JtLCB0aGUgTGludXgga2VybmVsIHVzZXMgYSByYXRoZXIgY29tcGxpY2F0ZWQgYm9vdAotY29udmVudGlvbi4gIFRoaXMgaGFzIGV2b2x2ZWQgcGFydGlhbGx5IGR1ZSB0byBoaXN0b3JpY2FsIGFzcGVjdHMsIGFzCi13ZWxsIGFzIHRoZSBkZXNpcmUgaW4gdGhlIGVhcmx5IGRheXMgdG8gaGF2ZSB0aGUga2VybmVsIGl0c2VsZiBiZSBhCi1ib290YWJsZSBpbWFnZSwgdGhlIGNvbXBsaWNhdGVkIFBDIG1lbW9yeSBtb2RlbCBhbmQgZHVlIHRvIGNoYW5nZWQKLWV4cGVjdGF0aW9ucyBpbiB0aGUgUEMgaW5kdXN0cnkgY2F1c2VkIGJ5IHRoZSBlZmZlY3RpdmUgZGVtaXNlIG9mCi1yZWFsLW1vZGUgRE9TIGFzIGEgbWFpbnN0cmVhbSBvcGVyYXRpbmcgc3lzdGVtLgotCi1DdXJyZW50bHksIHRoZSBmb2xsb3dpbmcgdmVyc2lvbnMgb2YgdGhlIExpbnV4L2kzODYgYm9vdCBwcm90b2NvbCBleGlzdC4KLQotT2xkIGtlcm5lbHM6CXpJbWFnZS9JbWFnZSBzdXBwb3J0IG9ubHkuICBTb21lIHZlcnkgZWFybHkga2VybmVscwotCQltYXkgbm90IGV2ZW4gc3VwcG9ydCBhIGNvbW1hbmQgbGluZS4KLQotUHJvdG9jb2wgMi4wMDoJKEtlcm5lbCAxLjMuNzMpIEFkZGVkIGJ6SW1hZ2UgYW5kIGluaXRyZCBzdXBwb3J0LCBhcwotCQl3ZWxsIGFzIGEgZm9ybWFsaXplZCB3YXkgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiB0aGUKLQkJYm9vdCBsb2FkZXIgYW5kIHRoZSBrZXJuZWwuICBzZXR1cC5TIG1hZGUgcmVsb2NhdGFibGUsCi0JCWFsdGhvdWdoIHRoZSB0cmFkaXRpb25hbCBzZXR1cCBhcmVhIHN0aWxsIGFzc3VtZWQKLQkJd3JpdGFibGUuCi0KLVByb3RvY29sIDIuMDE6CShLZXJuZWwgMS4zLjc2KSBBZGRlZCBhIGhlYXAgb3ZlcnJ1biB3YXJuaW5nLgotCi1Qcm90b2NvbCAyLjAyOgkoS2VybmVsIDIuNC4wLXRlc3QzLXByZTMpIE5ldyBjb21tYW5kIGxpbmUgcHJvdG9jb2wuCi0JCUxvd2VyIHRoZSBjb252ZW50aW9uYWwgbWVtb3J5IGNlaWxpbmcuCU5vIG92ZXJ3cml0ZQotCQlvZiB0aGUgdHJhZGl0aW9uYWwgc2V0dXAgYXJlYSwgdGh1cyBtYWtpbmcgYm9vdGluZwotCQlzYWZlIGZvciBzeXN0ZW1zIHdoaWNoIHVzZSB0aGUgRUJEQSBmcm9tIFNNTSBvciAzMi1iaXQKLQkJQklPUyBlbnRyeSBwb2ludHMuICB6SW1hZ2UgZGVwcmVjYXRlZCBidXQgc3RpbGwKLQkJc3VwcG9ydGVkLgotCi1Qcm90b2NvbCAyLjAzOgkoS2VybmVsIDIuNC4xOC1wcmUxKSBFeHBsaWNpdGx5IG1ha2VzIHRoZSBoaWdoZXN0IHBvc3NpYmxlCi0JCWluaXRyZCBhZGRyZXNzIGF2YWlsYWJsZSB0byB0aGUgYm9vdGxvYWRlci4KLQotUHJvdG9jb2wgMi4wNDoJKEtlcm5lbCAyLjYuMTQpIEV4dGVuZCB0aGUgc3lzc2l6ZSBmaWVsZCB0byBmb3VyIGJ5dGVzLgotCi1Qcm90b2NvbCAyLjA1OgkoS2VybmVsIDIuNi4yMCkgTWFrZSBwcm90ZWN0ZWQgbW9kZSBrZXJuZWwgcmVsb2NhdGFibGUuCi0JCUludHJvZHVjZSByZWxvY2F0YWJsZV9rZXJuZWwgYW5kIGtlcm5lbF9hbGlnbm1lbnQgZmllbGRzLgotCi1Qcm90b2NvbCAyLjA2OgkoS2VybmVsIDIuNi4yMikgQWRkZWQgYSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBzaXplIG9mCi0JCXRoZSBib290IGNvbW1hbmQgbGluZS4KLQotUHJvdG9jb2wgMi4wNzoJKEtlcm5lbCAyLjYuMjQpIEFkZGVkIHBhcmF2aXJ0dWFsaXNlZCBib290IHByb3RvY29sLgotCQlJbnRyb2R1Y2VkIGhhcmR3YXJlX3N1YmFyY2ggYW5kIGhhcmR3YXJlX3N1YmFyY2hfZGF0YQotCQlhbmQgS0VFUF9TRUdNRU5UUyBmbGFnIGluIGxvYWRfZmxhZ3MuCi0KLVByb3RvY29sIDIuMDg6CShLZXJuZWwgMi42LjI2KSBBZGRlZCBjcmMzMiBjaGVja3N1bSBhbmQgRUxGIGZvcm1hdAotCQlwYXlsb2FkLiBJbnRyb2R1Y2VkIHBheWxvYWRfb2Zmc2V0IGFuZCBwYXlsb2FkIGxlbmd0aAotCQlmaWVsZHMgdG8gYWlkIGluIGxvY2F0aW5nIHRoZSBwYXlsb2FkLgotCi1Qcm90b2NvbCAyLjA5OgkoS2VybmVsIDIuNi4yNikgQWRkZWQgYSBmaWVsZCBvZiA2NC1iaXQgcGh5c2ljYWwKLQkJcG9pbnRlciB0byBzaW5nbGUgbGlua2VkIGxpc3Qgb2Ygc3RydWN0CXNldHVwX2RhdGEuCi0KLSoqKiogTUVNT1JZIExBWU9VVAotCi1UaGUgdHJhZGl0aW9uYWwgbWVtb3J5IG1hcCBmb3IgdGhlIGtlcm5lbCBsb2FkZXIsIHVzZWQgZm9yIEltYWdlIG9yCi16SW1hZ2Uga2VybmVscywgdHlwaWNhbGx5IGxvb2tzIGxpa2U6Ci0KLQl8CQkJIHwKLTBBMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFJlc2VydmVkIGZvciBCSU9TCSB8CURvIG5vdCB1c2UuICBSZXNlcnZlZCBmb3IgQklPUyBFQkRBLgotMDlBMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgQ29tbWFuZCBsaW5lCQkgfAotCXwgIFN0YWNrL2hlYXAJCSB8CUZvciB1c2UgYnkgdGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KLTA5ODAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwkKLQl8ICBLZXJuZWwgc2V0dXAJCSB8CVRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCi0wOTAyMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBLZXJuZWwgYm9vdCBzZWN0b3IJIHwJVGhlIGtlcm5lbCBsZWdhY3kgYm9vdCBzZWN0b3IuCi0wOTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBQcm90ZWN0ZWQtbW9kZSBrZXJuZWwgfAlUaGUgYnVsayBvZiB0aGUga2VybmVsIGltYWdlLgotMDEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgQm9vdCBsb2FkZXIJCSB8CTwtIEJvb3Qgc2VjdG9yIGVudHJ5IHBvaW50IDAwMDA6N0MwMAotMDAxMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgUmVzZXJ2ZWQgZm9yIE1CUi9CSU9TIHwKLTAwMDgwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFR5cGljYWxseSB1c2VkIGJ5IE1CUiB8Ci0wMDA2MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgCi0JfCAgQklPUyB1c2Ugb25seQkgfAotMDAwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0KLQotV2hlbiB1c2luZyBiekltYWdlLCB0aGUgcHJvdGVjdGVkLW1vZGUga2VybmVsIHdhcyByZWxvY2F0ZWQgdG8KLTB4MTAwMDAwICgiaGlnaCBtZW1vcnkiKSwgYW5kIHRoZSBrZXJuZWwgcmVhbC1tb2RlIGJsb2NrIChib290IHNlY3RvciwKLXNldHVwLCBhbmQgc3RhY2svaGVhcCkgd2FzIG1hZGUgcmVsb2NhdGFibGUgdG8gYW55IGFkZHJlc3MgYmV0d2VlbgotMHgxMDAwMCBhbmQgZW5kIG9mIGxvdyBtZW1vcnkuIFVuZm9ydHVuYXRlbHksIGluIHByb3RvY29scyAyLjAwIGFuZAotMi4wMSB0aGUgMHg5MDAwMCsgbWVtb3J5IHJhbmdlIGlzIHN0aWxsIHVzZWQgaW50ZXJuYWxseSBieSB0aGUga2VybmVsOwotdGhlIDIuMDIgcHJvdG9jb2wgcmVzb2x2ZXMgdGhhdCBwcm9ibGVtLgotCi1JdCBpcyBkZXNpcmFibGUgdG8ga2VlcCB0aGUgIm1lbW9yeSBjZWlsaW5nIiAtLSB0aGUgaGlnaGVzdCBwb2ludCBpbgotbG93IG1lbW9yeSB0b3VjaGVkIGJ5IHRoZSBib290IGxvYWRlciAtLSBhcyBsb3cgYXMgcG9zc2libGUsIHNpbmNlCi1zb21lIG5ld2VyIEJJT1NlcyBoYXZlIGJlZ3VuIHRvIGFsbG9jYXRlIHNvbWUgcmF0aGVyIGxhcmdlIGFtb3VudHMgb2YKLW1lbW9yeSwgY2FsbGVkIHRoZSBFeHRlbmRlZCBCSU9TIERhdGEgQXJlYSwgbmVhciB0aGUgdG9wIG9mIGxvdwotbWVtb3J5LgkgVGhlIGJvb3QgbG9hZGVyIHNob3VsZCB1c2UgdGhlICJJTlQgMTJoIiBCSU9TIGNhbGwgdG8gdmVyaWZ5Ci1ob3cgbXVjaCBsb3cgbWVtb3J5IGlzIGF2YWlsYWJsZS4KLQotVW5mb3J0dW5hdGVseSwgaWYgSU5UIDEyaCByZXBvcnRzIHRoYXQgdGhlIGFtb3VudCBvZiBtZW1vcnkgaXMgdG9vCi1sb3csIHRoZXJlIGlzIHVzdWFsbHkgbm90aGluZyB0aGUgYm9vdCBsb2FkZXIgY2FuIGRvIGJ1dCB0byByZXBvcnQgYW4KLWVycm9yIHRvIHRoZSB1c2VyLiAgVGhlIGJvb3QgbG9hZGVyIHNob3VsZCB0aGVyZWZvcmUgYmUgZGVzaWduZWQgdG8KLXRha2UgdXAgYXMgbGl0dGxlIHNwYWNlIGluIGxvdyBtZW1vcnkgYXMgaXQgcmVhc29uYWJseSBjYW4uICBGb3IKLXpJbWFnZSBvciBvbGQgYnpJbWFnZSBrZXJuZWxzLCB3aGljaCBuZWVkIGRhdGEgd3JpdHRlbiBpbnRvIHRoZQotMHg5MDAwMCBzZWdtZW50LCB0aGUgYm9vdCBsb2FkZXIgc2hvdWxkIG1ha2Ugc3VyZSBub3QgdG8gdXNlIG1lbW9yeQotYWJvdmUgdGhlIDB4OUEwMDAgcG9pbnQ7IHRvbyBtYW55IEJJT1NlcyB3aWxsIGJyZWFrIGFib3ZlIHRoYXQgcG9pbnQuCi0KLUZvciBhIG1vZGVybiBiekltYWdlIGtlcm5lbCB3aXRoIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiA+PSAyLjAyLCBhCi1tZW1vcnkgbGF5b3V0IGxpa2UgdGhlIGZvbGxvd2luZyBpcyBzdWdnZXN0ZWQ6Ci0KLQl+ICAgICAgICAgICAgICAgICAgICAgICAgfgotICAgICAgICB8ICBQcm90ZWN0ZWQtbW9kZSBrZXJuZWwgfAotMTAwMDAwICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIEkvTyBtZW1vcnkgaG9sZQkgfAotMEEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgUmVzZXJ2ZWQgZm9yIEJJT1MJIHwJTGVhdmUgYXMgbXVjaCBhcyBwb3NzaWJsZSB1bnVzZWQKLQl+ICAgICAgICAgICAgICAgICAgICAgICAgfgotCXwgIENvbW1hbmQgbGluZQkJIHwJKENhbiBhbHNvIGJlIGJlbG93IHRoZSBYKzEwMDAwIG1hcmspCi1YKzEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0JfCAgU3RhY2svaGVhcAkJIHwJRm9yIHVzZSBieSB0aGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgotWCswODAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwkKLQl8ICBLZXJuZWwgc2V0dXAJCSB8CVRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCi0JfCAgS2VybmVsIGJvb3Qgc2VjdG9yCSB8CVRoZSBrZXJuZWwgbGVnYWN5IGJvb3Qgc2VjdG9yLgotWCAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIEJvb3QgbG9hZGVyCQkgfAk8LSBCb290IHNlY3RvciBlbnRyeSBwb2ludCAwMDAwOjdDMDAKLTAwMTAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCXwgIFJlc2VydmVkIGZvciBNQlIvQklPUyB8Ci0wMDA4MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQl8ICBUeXBpY2FsbHkgdXNlZCBieSBNQlIgfAotMDAwNjAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIAotCXwgIEJJT1MgdXNlIG9ubHkJIHwKLTAwMDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotCi0uLi4gd2hlcmUgdGhlIGFkZHJlc3MgWCBpcyBhcyBsb3cgYXMgdGhlIGRlc2lnbiBvZiB0aGUgYm9vdCBsb2FkZXIKLXBlcm1pdHMuCi0KLQotKioqKiBUSEUgUkVBTC1NT0RFIEtFUk5FTCBIRUFERVIKLQotSW4gdGhlIGZvbGxvd2luZyB0ZXh0LCBhbmQgYW55d2hlcmUgaW4gdGhlIGtlcm5lbCBib290IHNlcXVlbmNlLCAiYQotc2VjdG9yIiByZWZlcnMgdG8gNTEyIGJ5dGVzLiAgSXQgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIGFjdHVhbCBzZWN0b3IKLXNpemUgb2YgdGhlIHVuZGVybHlpbmcgbWVkaXVtLgotCi1UaGUgZmlyc3Qgc3RlcCBpbiBsb2FkaW5nIGEgTGludXgga2VybmVsIHNob3VsZCBiZSB0byBsb2FkIHRoZQotcmVhbC1tb2RlIGNvZGUgKGJvb3Qgc2VjdG9yIGFuZCBzZXR1cCBjb2RlKSBhbmQgdGhlbiBleGFtaW5lIHRoZQotZm9sbG93aW5nIGhlYWRlciBhdCBvZmZzZXQgMHgwMWYxLiAgVGhlIHJlYWwtbW9kZSBjb2RlIGNhbiB0b3RhbCB1cCB0bwotMzJLLCBhbHRob3VnaCB0aGUgYm9vdCBsb2FkZXIgbWF5IGNob29zZSB0byBsb2FkIG9ubHkgdGhlIGZpcnN0IHR3bwotc2VjdG9ycyAoMUspIGFuZCB0aGVuIGV4YW1pbmUgdGhlIGJvb3R1cCBzZWN0b3Igc2l6ZS4KLQotVGhlIGhlYWRlciBsb29rcyBsaWtlOgotCi1PZmZzZXQJUHJvdG8JTmFtZQkJTWVhbmluZwotL1NpemUKLQotMDFGMS8xCUFMTCgxCXNldHVwX3NlY3RzCVRoZSBzaXplIG9mIHRoZSBzZXR1cCBpbiBzZWN0b3JzCi0wMUYyLzIJQUxMCXJvb3RfZmxhZ3MJSWYgc2V0LCB0aGUgcm9vdCBpcyBtb3VudGVkIHJlYWRvbmx5Ci0wMUY0LzQJMi4wNCsoMglzeXNzaXplCQlUaGUgc2l6ZSBvZiB0aGUgMzItYml0IGNvZGUgaW4gMTYtYnl0ZSBwYXJhcwotMDFGOC8yCUFMTAlyYW1fc2l6ZQlETyBOT1QgVVNFIC0gZm9yIGJvb3RzZWN0LlMgdXNlIG9ubHkKLTAxRkEvMglBTEwJdmlkX21vZGUJVmlkZW8gbW9kZSBjb250cm9sCi0wMUZDLzIJQUxMCXJvb3RfZGV2CURlZmF1bHQgcm9vdCBkZXZpY2UgbnVtYmVyCi0wMUZFLzIJQUxMCWJvb3RfZmxhZwkweEFBNTUgbWFnaWMgbnVtYmVyCi0wMjAwLzIJMi4wMCsJanVtcAkJSnVtcCBpbnN0cnVjdGlvbgotMDIwMi80CTIuMDArCWhlYWRlcgkJTWFnaWMgc2lnbmF0dXJlICJIZHJTIgotMDIwNi8yCTIuMDArCXZlcnNpb24JCUJvb3QgcHJvdG9jb2wgdmVyc2lvbiBzdXBwb3J0ZWQKLTAyMDgvNAkyLjAwKwlyZWFsbW9kZV9zd3RjaAlCb290IGxvYWRlciBob29rIChzZWUgYmVsb3cpCi0wMjBDLzIJMi4wMCsJc3RhcnRfc3lzCVRoZSBsb2FkLWxvdyBzZWdtZW50ICgweDEwMDApIChvYnNvbGV0ZSkKLTAyMEUvMgkyLjAwKwlrZXJuZWxfdmVyc2lvbglQb2ludGVyIHRvIGtlcm5lbCB2ZXJzaW9uIHN0cmluZwotMDIxMC8xCTIuMDArCXR5cGVfb2ZfbG9hZGVyCUJvb3QgbG9hZGVyIGlkZW50aWZpZXIKLTAyMTEvMQkyLjAwKwlsb2FkZmxhZ3MJQm9vdCBwcm90b2NvbCBvcHRpb24gZmxhZ3MKLTAyMTIvMgkyLjAwKwlzZXR1cF9tb3ZlX3NpemUJTW92ZSB0byBoaWdoIG1lbW9yeSBzaXplICh1c2VkIHdpdGggaG9va3MpCi0wMjE0LzQJMi4wMCsJY29kZTMyX3N0YXJ0CUJvb3QgbG9hZGVyIGhvb2sgKHNlZSBiZWxvdykKLTAyMTgvNAkyLjAwKwlyYW1kaXNrX2ltYWdlCWluaXRyZCBsb2FkIGFkZHJlc3MgKHNldCBieSBib290IGxvYWRlcikKLTAyMUMvNAkyLjAwKwlyYW1kaXNrX3NpemUJaW5pdHJkIHNpemUgKHNldCBieSBib290IGxvYWRlcikKLTAyMjAvNAkyLjAwKwlib290c2VjdF9rbHVkZ2UJRE8gTk9UIFVTRSAtIGZvciBib290c2VjdC5TIHVzZSBvbmx5Ci0wMjI0LzIJMi4wMSsJaGVhcF9lbmRfcHRyCUZyZWUgbWVtb3J5IGFmdGVyIHNldHVwIGVuZAotMDIyNi8yCU4vQQlwYWQxCQlVbnVzZWQKLTAyMjgvNAkyLjAyKwljbWRfbGluZV9wdHIJMzItYml0IHBvaW50ZXIgdG8gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUKLTAyMkMvNAkyLjAzKwlpbml0cmRfYWRkcl9tYXgJSGlnaGVzdCBsZWdhbCBpbml0cmQgYWRkcmVzcwotMDIzMC80CTIuMDUrCWtlcm5lbF9hbGlnbm1lbnQgUGh5c2ljYWwgYWRkciBhbGlnbm1lbnQgcmVxdWlyZWQgZm9yIGtlcm5lbAotMDIzNC8xCTIuMDUrCXJlbG9jYXRhYmxlX2tlcm5lbCBXaGV0aGVyIGtlcm5lbCBpcyByZWxvY2F0YWJsZSBvciBub3QKLTAyMzUvMwlOL0EJcGFkMgkJVW51c2VkCi0wMjM4LzQJMi4wNisJY21kbGluZV9zaXplCU1heGltdW0gc2l6ZSBvZiB0aGUga2VybmVsIGNvbW1hbmQgbGluZQotMDIzQy80CTIuMDcrCWhhcmR3YXJlX3N1YmFyY2ggSGFyZHdhcmUgc3ViYXJjaGl0ZWN0dXJlCi0wMjQwLzgJMi4wNysJaGFyZHdhcmVfc3ViYXJjaF9kYXRhIFN1YmFyY2hpdGVjdHVyZS1zcGVjaWZpYyBkYXRhCi0wMjQ4LzQJMi4wOCsJcGF5bG9hZF9vZmZzZXQJT2Zmc2V0IG9mIGtlcm5lbCBwYXlsb2FkCi0wMjRDLzQJMi4wOCsJcGF5bG9hZF9sZW5ndGgJTGVuZ3RoIG9mIGtlcm5lbCBwYXlsb2FkCi0wMjUwLzgJMi4wOSsJc2V0dXBfZGF0YQk2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byBsaW5rZWQgbGlzdAotCQkJCW9mIHN0cnVjdCBzZXR1cF9kYXRhCi0KLSgxKSBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIGlmIHRoZSBzZXR1cF9zZWN0cyBmaWVsZCBjb250YWlucyAwLCB0aGUKLSAgICByZWFsIHZhbHVlIGlzIDQuCi0KLSgyKSBGb3IgYm9vdCBwcm90b2NvbCBwcmlvciB0byAyLjA0LCB0aGUgdXBwZXIgdHdvIGJ5dGVzIG9mIHRoZSBzeXNzaXplCi0gICAgZmllbGQgYXJlIHVudXNhYmxlLCB3aGljaCBtZWFucyB0aGUgc2l6ZSBvZiBhIGJ6SW1hZ2Uga2VybmVsCi0gICAgY2Fubm90IGJlIGRldGVybWluZWQuCi0KLUlmIHRoZSAiSGRyUyIgKDB4NTM3MjY0NDgpIG1hZ2ljIG51bWJlciBpcyBub3QgZm91bmQgYXQgb2Zmc2V0IDB4MjAyLAotdGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiBpcyAib2xkIi4gIExvYWRpbmcgYW4gb2xkIGtlcm5lbCwgdGhlCi1mb2xsb3dpbmcgcGFyYW1ldGVycyBzaG91bGQgYmUgYXNzdW1lZDoKLQotCUltYWdlIHR5cGUgPSB6SW1hZ2UKLQlpbml0cmQgbm90IHN1cHBvcnRlZAotCVJlYWwtbW9kZSBrZXJuZWwgbXVzdCBiZSBsb2NhdGVkIGF0IDB4OTAwMDAuCi0KLU90aGVyd2lzZSwgdGhlICJ2ZXJzaW9uIiBmaWVsZCBjb250YWlucyB0aGUgcHJvdG9jb2wgdmVyc2lvbiwKLWUuZy4gcHJvdG9jb2wgdmVyc2lvbiAyLjAxIHdpbGwgY29udGFpbiAweDAyMDEgaW4gdGhpcyBmaWVsZC4gIFdoZW4KLXNldHRpbmcgZmllbGRzIGluIHRoZSBoZWFkZXIsIHlvdSBtdXN0IG1ha2Ugc3VyZSBvbmx5IHRvIHNldCBmaWVsZHMKLXN1cHBvcnRlZCBieSB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpbiB1c2UuCi0KLQotKioqKiBERVRBSUxTIE9GIEhFQURFUiBGSUVMRFMKLQotRm9yIGVhY2ggZmllbGQsIHNvbWUgYXJlIGluZm9ybWF0aW9uIGZyb20gdGhlIGtlcm5lbCB0byB0aGUgYm9vdGxvYWRlcgotKCJyZWFkIiksIHNvbWUgYXJlIGV4cGVjdGVkIHRvIGJlIGZpbGxlZCBvdXQgYnkgdGhlIGJvb3Rsb2FkZXIKLSgid3JpdGUiKSwgYW5kIHNvbWUgYXJlIGV4cGVjdGVkIHRvIGJlIHJlYWQgYW5kIG1vZGlmaWVkIGJ5IHRoZQotYm9vdGxvYWRlciAoIm1vZGlmeSIpLgotCi1BbGwgZ2VuZXJhbCBwdXJwb3NlIGJvb3QgbG9hZGVycyBzaG91bGQgd3JpdGUgdGhlIGZpZWxkcyBtYXJrZWQKLShvYmxpZ2F0b3J5KS4gIEJvb3QgbG9hZGVycyB3aG8gd2FudCB0byBsb2FkIHRoZSBrZXJuZWwgYXQgYQotbm9uc3RhbmRhcmQgYWRkcmVzcyBzaG91bGQgZmlsbCBpbiB0aGUgZmllbGRzIG1hcmtlZCAocmVsb2MpOyBvdGhlcgotYm9vdCBsb2FkZXJzIGNhbiBpZ25vcmUgdGhvc2UgZmllbGRzLgotCi1UaGUgYnl0ZSBvcmRlciBvZiBhbGwgZmllbGRzIGlzIGxpdHRsZWVuZGlhbiAodGhpcyBpcyB4ODYsIGFmdGVyIGFsbC4pCi0KLUZpZWxkIG5hbWU6CXNldHVwX3NlY3RzCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MWYxLzEKLVByb3RvY29sOglBTEwKLQotICBUaGUgc2l6ZSBvZiB0aGUgc2V0dXAgY29kZSBpbiA1MTItYnl0ZSBzZWN0b3JzLiAgSWYgdGhpcyBmaWVsZCBpcwotICAwLCB0aGUgcmVhbCB2YWx1ZSBpcyA0LiAgVGhlIHJlYWwtbW9kZSBjb2RlIGNvbnNpc3RzIG9mIHRoZSBib290Ci0gIHNlY3RvciAoYWx3YXlzIG9uZSA1MTItYnl0ZSBzZWN0b3IpIHBsdXMgdGhlIHNldHVwIGNvZGUuCi0KLUZpZWxkIG5hbWU6CSByb290X2ZsYWdzCi1UeXBlOgkJIG1vZGlmeSAob3B0aW9uYWwpCi1PZmZzZXQvc2l6ZToJIDB4MWYyLzIKLVByb3RvY29sOgkgQUxMCi0KLSAgSWYgdGhpcyBmaWVsZCBpcyBub256ZXJvLCB0aGUgcm9vdCBkZWZhdWx0cyB0byByZWFkb25seS4gIFRoZSB1c2Ugb2YKLSAgdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkOyB1c2UgdGhlICJybyIgb3IgInJ3IiBvcHRpb25zIG9uIHRoZQotICBjb21tYW5kIGxpbmUgaW5zdGVhZC4KLQotRmllbGQgbmFtZToJc3lzc2l6ZQotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDFmNC80IChwcm90b2NvbCAyLjA0KykgMHgxZjQvMiAocHJvdG9jb2wgQUxMKQotUHJvdG9jb2w6CTIuMDQrCi0KLSAgVGhlIHNpemUgb2YgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaW4gdW5pdHMgb2YgMTYtYnl0ZSBwYXJhZ3JhcGhzLgotICBGb3IgcHJvdG9jb2wgdmVyc2lvbnMgb2xkZXIgdGhhbiAyLjA0IHRoaXMgZmllbGQgaXMgb25seSB0d28gYnl0ZXMKLSAgd2lkZSwgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgdHJ1c3RlZCBmb3IgdGhlIHNpemUgb2YgYSBrZXJuZWwgaWYKLSAgdGhlIExPQURfSElHSCBmbGFnIGlzIHNldC4KLQotRmllbGQgbmFtZToJcmFtX3NpemUKLVR5cGU6CQlrZXJuZWwgaW50ZXJuYWwKLU9mZnNldC9zaXplOgkweDFmOC8yCi1Qcm90b2NvbDoJQUxMCi0KLSAgVGhpcyBmaWVsZCBpcyBvYnNvbGV0ZS4KLQotRmllbGQgbmFtZToJdmlkX21vZGUKLVR5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgxZmEvMgotCi0gIFBsZWFzZSBzZWUgdGhlIHNlY3Rpb24gb24gU1BFQ0lBTCBDT01NQU5EIExJTkUgT1BUSU9OUy4KLQotRmllbGQgbmFtZToJcm9vdF9kZXYKLVR5cGU6CQltb2RpZnkgKG9wdGlvbmFsKQotT2Zmc2V0L3NpemU6CTB4MWZjLzIKLVByb3RvY29sOglBTEwKLQotICBUaGUgZGVmYXVsdCByb290IGRldmljZSBkZXZpY2UgbnVtYmVyLiAgVGhlIHVzZSBvZiB0aGlzIGZpZWxkIGlzCi0gIGRlcHJlY2F0ZWQsIHVzZSB0aGUgInJvb3Q9IiBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZSBpbnN0ZWFkLgotCi1GaWVsZCBuYW1lOglib290X2ZsYWcKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgxZmUvMgotUHJvdG9jb2w6CUFMTAotCi0gIENvbnRhaW5zIDB4QUE1NS4gIFRoaXMgaXMgdGhlIGNsb3Nlc3QgdGhpbmcgb2xkIExpbnV4IGtlcm5lbHMgaGF2ZQotICB0byBhIG1hZ2ljIG51bWJlci4KLQotRmllbGQgbmFtZToJanVtcAotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIwMC8yCi1Qcm90b2NvbDoJMi4wMCsKLQotICBDb250YWlucyBhbiB4ODYganVtcCBpbnN0cnVjdGlvbiwgMHhFQiBmb2xsb3dlZCBieSBhIHNpZ25lZCBvZmZzZXQKLSAgcmVsYXRpdmUgdG8gYnl0ZSAweDIwMi4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBzaXplIG9mCi0gIHRoZSBoZWFkZXIuCi0KLUZpZWxkIG5hbWU6CWhlYWRlcgotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIwMi80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBDb250YWlucyB0aGUgbWFnaWMgbnVtYmVyICJIZHJTIiAoMHg1MzcyNjQ0OCkuCi0KLUZpZWxkIG5hbWU6CXZlcnNpb24KLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyMDYvMgotUHJvdG9jb2w6CTIuMDArCi0KLSAgQ29udGFpbnMgdGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiwgaW4gKG1ham9yIDw8IDgpK21pbm9yIGZvcm1hdCwKLSAgZS5nLiAweDAyMDQgZm9yIHZlcnNpb24gMi4wNCwgYW5kIDB4MGExMSBmb3IgYSBoeXBvdGhldGljYWwgdmVyc2lvbgotICAxMC4xNy4KLQotRmllbGQgbmFtZToJcmVhZG1vZGVfc3d0Y2gKLVR5cGU6CQltb2RpZnkgKG9wdGlvbmFsKQotT2Zmc2V0L3NpemU6CTB4MjA4LzQKLVByb3RvY29sOgkyLjAwKwotCi0gIEJvb3QgbG9hZGVyIGhvb2sgKHNlZSBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUyBiZWxvdy4pCi0KLUZpZWxkIG5hbWU6CXN0YXJ0X3N5cwotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIwYy80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBUaGUgbG9hZCBsb3cgc2VnbWVudCAoMHgxMDAwKS4gIE9ic29sZXRlLgotCi1GaWVsZCBuYW1lOglrZXJuZWxfdmVyc2lvbgotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIwZS8yCi1Qcm90b2NvbDoJMi4wMCsKLQotICBJZiBzZXQgdG8gYSBub256ZXJvIHZhbHVlLCBjb250YWlucyBhIHBvaW50ZXIgdG8gYSBOVUwtdGVybWluYXRlZAotICBodW1hbi1yZWFkYWJsZSBrZXJuZWwgdmVyc2lvbiBudW1iZXIgc3RyaW5nLCBsZXNzIDB4MjAwLiAgVGhpcyBjYW4KLSAgYmUgdXNlZCB0byBkaXNwbGF5IHRoZSBrZXJuZWwgdmVyc2lvbiB0byB0aGUgdXNlci4gIFRoaXMgdmFsdWUKLSAgc2hvdWxkIGJlIGxlc3MgdGhhbiAoMHgyMDAqc2V0dXBfc2VjdHMpLgotCi0gIEZvciBleGFtcGxlLCBpZiB0aGlzIHZhbHVlIGlzIHNldCB0byAweDFjMDAsIHRoZSBrZXJuZWwgdmVyc2lvbgotICBudW1iZXIgc3RyaW5nIGNhbiBiZSBmb3VuZCBhdCBvZmZzZXQgMHgxZTAwIGluIHRoZSBrZXJuZWwgZmlsZS4KLSAgVGhpcyBpcyBhIHZhbGlkIHZhbHVlIGlmIGFuZCBvbmx5IGlmIHRoZSAic2V0dXBfc2VjdHMiIGZpZWxkCi0gIGNvbnRhaW5zIHRoZSB2YWx1ZSAxNSBvciBoaWdoZXIsIGFzOgotCi0JMHgxYzAwICA8IDE1KjB4MjAwICg9IDB4MWUwMCkgYnV0Ci0JMHgxYzAwID49IDE0KjB4MjAwICg9IDB4MWMwMCkKLQotCTB4MWMwMCA+PiA5ID0gMTQsIHNvIHRoZSBtaW5pbXVtIHZhbHVlIGZvciBzZXR1cF9zZWNzIGlzIDE1LgotCi1GaWVsZCBuYW1lOgl0eXBlX29mX2xvYWRlcgotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjEwLzEKLVByb3RvY29sOgkyLjAwKwotCi0gIElmIHlvdXIgYm9vdCBsb2FkZXIgaGFzIGFuIGFzc2lnbmVkIGlkIChzZWUgdGFibGUgYmVsb3cpLCBlbnRlcgotICAweFRWIGhlcmUsIHdoZXJlIFQgaXMgYW4gaWRlbnRpZmllciBmb3IgdGhlIGJvb3QgbG9hZGVyIGFuZCBWIGlzCi0gIGEgdmVyc2lvbiBudW1iZXIuICBPdGhlcndpc2UsIGVudGVyIDB4RkYgaGVyZS4KLQotICBBc3NpZ25lZCBib290IGxvYWRlciBpZHM6Ci0JMCAgTElMTwkJCSgweDAwIHJlc2VydmVkIGZvciBwcmUtMi4wMCBib290bG9hZGVyKQotCTEgIExvYWRsaW4KLQkyICBib290c2VjdC1sb2FkZXIJKDB4MjAsIGFsbCBvdGhlciB2YWx1ZXMgcmVzZXJ2ZWQpCi0JMyAgU1lTTElOVVgKLQk0ICBFdGhlckJvb3QKLQk1ICBFTElMTwotCTcgIEdSdUIKLQk4ICBVLUJPT1QKLQk5ICBYZW4KLQlBICBHdWppbgotCUIgIFFlbXUKLQotICBQbGVhc2UgY29udGFjdCA8aHBhQHp5dG9yLmNvbT4gaWYgeW91IG5lZWQgYSBib290bG9hZGVyIElECi0gIHZhbHVlIGFzc2lnbmVkLgotCi1GaWVsZCBuYW1lOglsb2FkZmxhZ3MKLVR5cGU6CQltb2RpZnkgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMTEvMQotUHJvdG9jb2w6CTIuMDArCi0KLSAgVGhpcyBmaWVsZCBpcyBhIGJpdG1hc2suCi0KLSAgQml0IDAgKHJlYWQpOglMT0FERURfSElHSAotCS0gSWYgMCwgdGhlIHByb3RlY3RlZC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4MTAwMDAuCi0JLSBJZiAxLCB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHgxMDAwMDAuCi0KLSAgQml0IDYgKHdyaXRlKTogS0VFUF9TRUdNRU5UUwotCVByb3RvY29sOiAyLjA3KwotCS0gaWYgMCwgcmVsb2FkIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpbiB0aGUgMzJiaXQgZW50cnkgcG9pbnQuCi0JLSBpZiAxLCBkbyBub3QgcmVsb2FkIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpbiB0aGUgMzJiaXQgZW50cnkgcG9pbnQuCi0JCUFzc3VtZSB0aGF0ICVjcyAlZHMgJXNzICVlcyBhcmUgYWxsIHNldCB0byBmbGF0IHNlZ21lbnRzIHdpdGgKLQkJYSBiYXNlIG9mIDAgKG9yIHRoZSBlcXVpdmFsZW50IGZvciB0aGVpciBlbnZpcm9ubWVudCkuCi0KLSAgQml0IDcgKHdyaXRlKTogQ0FOX1VTRV9IRUFQCi0JU2V0IHRoaXMgYml0IHRvIDEgdG8gaW5kaWNhdGUgdGhhdCB0aGUgdmFsdWUgZW50ZXJlZCBpbiB0aGUKLQloZWFwX2VuZF9wdHIgaXMgdmFsaWQuICBJZiB0aGlzIGZpZWxkIGlzIGNsZWFyLCBzb21lIHNldHVwIGNvZGUKLQlmdW5jdGlvbmFsaXR5IHdpbGwgYmUgZGlzYWJsZWQuCi0KLUZpZWxkIG5hbWU6CXNldHVwX21vdmVfc2l6ZQotVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIxMi8yCi1Qcm90b2NvbDoJMi4wMC0yLjAxCi0KLSAgV2hlbiB1c2luZyBwcm90b2NvbCAyLjAwIG9yIDIuMDEsIGlmIHRoZSByZWFsIG1vZGUga2VybmVsIGlzIG5vdAotICBsb2FkZWQgYXQgMHg5MDAwMCwgaXQgZ2V0cyBtb3ZlZCB0aGVyZSBsYXRlciBpbiB0aGUgbG9hZGluZwotICBzZXF1ZW5jZS4gIEZpbGwgaW4gdGhpcyBmaWVsZCBpZiB5b3Ugd2FudCBhZGRpdGlvbmFsIGRhdGEgKHN1Y2ggYXMKLSAgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUpIG1vdmVkIGluIGFkZGl0aW9uIHRvIHRoZSByZWFsLW1vZGUga2VybmVsCi0gIGl0c2VsZi4KLQotICBUaGUgdW5pdCBpcyBieXRlcyBzdGFydGluZyB3aXRoIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJvb3Qgc2VjdG9yLgotICAKLSAgVGhpcyBmaWVsZCBpcyBjYW4gYmUgaWdub3JlZCB3aGVuIHRoZSBwcm90b2NvbCBpcyAyLjAyIG9yIGhpZ2hlciwgb3IKLSAgaWYgdGhlIHJlYWwtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDkwMDAwLgotCi1GaWVsZCBuYW1lOgljb2RlMzJfc3RhcnQKLVR5cGU6CQltb2RpZnkgKG9wdGlvbmFsLCByZWxvYykKLU9mZnNldC9zaXplOgkweDIxNC80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBUaGUgYWRkcmVzcyB0byBqdW1wIHRvIGluIHByb3RlY3RlZCBtb2RlLiAgVGhpcyBkZWZhdWx0cyB0byB0aGUgbG9hZAotICBhZGRyZXNzIG9mIHRoZSBrZXJuZWwsIGFuZCBjYW4gYmUgdXNlZCBieSB0aGUgYm9vdCBsb2FkZXIgdG8KLSAgZGV0ZXJtaW5lIHRoZSBwcm9wZXIgbG9hZCBhZGRyZXNzLgotCi0gIFRoaXMgZmllbGQgY2FuIGJlIG1vZGlmaWVkIGZvciB0d28gcHVycG9zZXM6Ci0KLSAgMS4gYXMgYSBib290IGxvYWRlciBob29rIChzZWUgQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MgYmVsb3cuKQotCi0gIDIuIGlmIGEgYm9vdGxvYWRlciB3aGljaCBkb2VzIG5vdCBpbnN0YWxsIGEgaG9vayBsb2FkcyBhCi0gICAgIHJlbG9jYXRhYmxlIGtlcm5lbCBhdCBhIG5vbnN0YW5kYXJkIGFkZHJlc3MgaXQgd2lsbCBoYXZlIHRvIG1vZGlmeQotICAgICB0aGlzIGZpZWxkIHRvIHBvaW50IHRvIHRoZSBsb2FkIGFkZHJlc3MuCi0KLUZpZWxkIG5hbWU6CXJhbWRpc2tfaW1hZ2UKLVR5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKLU9mZnNldC9zaXplOgkweDIxOC80Ci1Qcm90b2NvbDoJMi4wMCsKLQotICBUaGUgMzItYml0IGxpbmVhciBhZGRyZXNzIG9mIHRoZSBpbml0aWFsIHJhbWRpc2sgb3IgcmFtZnMuICBMZWF2ZSBhdAotICB6ZXJvIGlmIHRoZXJlIGlzIG5vIGluaXRpYWwgcmFtZGlzay9yYW1mcy4KLQotRmllbGQgbmFtZToJcmFtZGlza19zaXplCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMWMvNAotUHJvdG9jb2w6CTIuMDArCi0KLSAgU2l6ZSBvZiB0aGUgaW5pdGlhbCByYW1kaXNrIG9yIHJhbWZzLiAgTGVhdmUgYXQgemVybyBpZiB0aGVyZSBpcyBubwotICBpbml0aWFsIHJhbWRpc2svcmFtZnMuCi0KLUZpZWxkIG5hbWU6CWJvb3RzZWN0X2tsdWRnZQotVHlwZToJCWtlcm5lbCBpbnRlcm5hbAotT2Zmc2V0L3NpemU6CTB4MjIwLzQKLVByb3RvY29sOgkyLjAwKwotCi0gIFRoaXMgZmllbGQgaXMgb2Jzb2xldGUuCi0KLUZpZWxkIG5hbWU6CWhlYXBfZW5kX3B0cgotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjI0LzIKLVByb3RvY29sOgkyLjAxKwotCi0gIFNldCB0aGlzIGZpZWxkIHRvIHRoZSBvZmZzZXQgKGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgcmVhbC1tb2RlCi0gIGNvZGUpIG9mIHRoZSBlbmQgb2YgdGhlIHNldHVwIHN0YWNrL2hlYXAsIG1pbnVzIDB4MDIwMC4KLQotRmllbGQgbmFtZToJY21kX2xpbmVfcHRyCi1UeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCi1PZmZzZXQvc2l6ZToJMHgyMjgvNAotUHJvdG9jb2w6CTIuMDIrCi0KLSAgU2V0IHRoaXMgZmllbGQgdG8gdGhlIGxpbmVhciBhZGRyZXNzIG9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgotICBUaGUga2VybmVsIGNvbW1hbmQgbGluZSBjYW4gYmUgbG9jYXRlZCBhbnl3aGVyZSBiZXR3ZWVuIHRoZSBlbmQgb2YKLSAgdGhlIHNldHVwIGhlYXAgYW5kIDB4QTAwMDA7IGl0IGRvZXMgbm90IGhhdmUgdG8gYmUgbG9jYXRlZCBpbiB0aGUKLSAgc2FtZSA2NEsgc2VnbWVudCBhcyB0aGUgcmVhbC1tb2RlIGNvZGUgaXRzZWxmLgotCi0gIEZpbGwgaW4gdGhpcyBmaWVsZCBldmVuIGlmIHlvdXIgYm9vdCBsb2FkZXIgZG9lcyBub3Qgc3VwcG9ydCBhCi0gIGNvbW1hbmQgbGluZSwgaW4gd2hpY2ggY2FzZSB5b3UgY2FuIHBvaW50IHRoaXMgdG8gYW4gZW1wdHkgc3RyaW5nCi0gIChvciBiZXR0ZXIgeWV0LCB0byB0aGUgc3RyaW5nICJhdXRvIi4pICBJZiB0aGlzIGZpZWxkIGlzIGxlZnQgYXQKLSAgemVybywgdGhlIGtlcm5lbCB3aWxsIGFzc3VtZSB0aGF0IHlvdXIgYm9vdCBsb2FkZXIgZG9lcyBub3Qgc3VwcG9ydAotICB0aGUgMi4wMisgcHJvdG9jb2wuCi0KLUZpZWxkIG5hbWU6CWluaXRyZF9hZGRyX21heAotVHlwZToJCXJlYWQKLU9mZnNldC9zaXplOgkweDIyYy80Ci1Qcm90b2NvbDoJMi4wMysKLQotICBUaGUgbWF4aW11bSBhZGRyZXNzIHRoYXQgbWF5IGJlIG9jY3VwaWVkIGJ5IHRoZSBpbml0aWFsCi0gIHJhbWRpc2svcmFtZnMgY29udGVudHMuICBGb3IgYm9vdCBwcm90b2NvbHMgMi4wMiBvciBlYXJsaWVyLCB0aGlzCi0gIGZpZWxkIGlzIG5vdCBwcmVzZW50LCBhbmQgdGhlIG1heGltdW0gYWRkcmVzcyBpcyAweDM3RkZGRkZGLiAgKFRoaXMKLSAgYWRkcmVzcyBpcyBkZWZpbmVkIGFzIHRoZSBhZGRyZXNzIG9mIHRoZSBoaWdoZXN0IHNhZmUgYnl0ZSwgc28gaWYKLSAgeW91ciByYW1kaXNrIGlzIGV4YWN0bHkgMTMxMDcyIGJ5dGVzIGxvbmcgYW5kIHRoaXMgZmllbGQgaXMKLSAgMHgzN0ZGRkZGRiwgeW91IGNhbiBzdGFydCB5b3VyIHJhbWRpc2sgYXQgMHgzN0ZFMDAwMC4pCi0KLUZpZWxkIG5hbWU6CWtlcm5lbF9hbGlnbm1lbnQKLVR5cGU6CQlyZWFkIChyZWxvYykKLU9mZnNldC9zaXplOgkweDIzMC80Ci1Qcm90b2NvbDoJMi4wNSsKLQotICBBbGlnbm1lbnQgdW5pdCByZXF1aXJlZCBieSB0aGUga2VybmVsIChpZiByZWxvY2F0YWJsZV9rZXJuZWwgaXMgdHJ1ZS4pCi0KLUZpZWxkIG5hbWU6CXJlbG9jYXRhYmxlX2tlcm5lbAotVHlwZToJCXJlYWQgKHJlbG9jKQotT2Zmc2V0L3NpemU6CTB4MjM0LzEKLVByb3RvY29sOgkyLjA1KwotCi0gIElmIHRoaXMgZmllbGQgaXMgbm9uemVybywgdGhlIHByb3RlY3RlZC1tb2RlIHBhcnQgb2YgdGhlIGtlcm5lbCBjYW4KLSAgYmUgbG9hZGVkIGF0IGFueSBhZGRyZXNzIHRoYXQgc2F0aXNmaWVzIHRoZSBrZXJuZWxfYWxpZ25tZW50IGZpZWxkLgotICBBZnRlciBsb2FkaW5nLCB0aGUgYm9vdCBsb2FkZXIgbXVzdCBzZXQgdGhlIGNvZGUzMl9zdGFydCBmaWVsZCB0bwotICBwb2ludCB0byB0aGUgbG9hZGVkIGNvZGUsIG9yIHRvIGEgYm9vdCBsb2FkZXIgaG9vay4KLQotRmllbGQgbmFtZToJY21kbGluZV9zaXplCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjM4LzQKLVByb3RvY29sOgkyLjA2KwotCi0gIFRoZSBtYXhpbXVtIHNpemUgb2YgdGhlIGNvbW1hbmQgbGluZSB3aXRob3V0IHRoZSB0ZXJtaW5hdGluZwotICB6ZXJvLiBUaGlzIG1lYW5zIHRoYXQgdGhlIGNvbW1hbmQgbGluZSBjYW4gY29udGFpbiBhdCBtb3N0Ci0gIGNtZGxpbmVfc2l6ZSBjaGFyYWN0ZXJzLiBXaXRoIHByb3RvY29sIHZlcnNpb24gMi4wNSBhbmQgZWFybGllciwgdGhlCi0gIG1heGltdW0gc2l6ZSB3YXMgMjU1LgotCi1GaWVsZCBuYW1lOgloYXJkd2FyZV9zdWJhcmNoCi1UeXBlOgkJd3JpdGUKLU9mZnNldC9zaXplOgkweDIzYy80Ci1Qcm90b2NvbDoJMi4wNysKLQotICBJbiBhIHBhcmF2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB0aGUgaGFyZHdhcmUgbG93IGxldmVsIGFyY2hpdGVjdHVyYWwKLSAgcGllY2VzIHN1Y2ggYXMgaW50ZXJydXB0IGhhbmRsaW5nLCBwYWdlIHRhYmxlIGhhbmRsaW5nLCBhbmQKLSAgYWNjZXNzaW5nIHByb2Nlc3MgY29udHJvbCByZWdpc3RlcnMgbmVlZHMgdG8gYmUgZG9uZSBkaWZmZXJlbnRseS4KLQotICBUaGlzIGZpZWxkIGFsbG93cyB0aGUgYm9vdGxvYWRlciB0byBpbmZvcm0gdGhlIGtlcm5lbCB3ZSBhcmUgaW4gb25lCi0gIG9uZSBvZiB0aG9zZSBlbnZpcm9ubWVudHMuCi0KLSAgMHgwMDAwMDAwMAlUaGUgZGVmYXVsdCB4ODYvUEMgZW52aXJvbm1lbnQKLSAgMHgwMDAwMDAwMQlsZ3Vlc3QKLSAgMHgwMDAwMDAwMglYZW4KLQotRmllbGQgbmFtZToJaGFyZHdhcmVfc3ViYXJjaF9kYXRhCi1UeXBlOgkJd3JpdGUKLU9mZnNldC9zaXplOgkweDI0MC84Ci1Qcm90b2NvbDoJMi4wNysKLQotICBBIHBvaW50ZXIgdG8gZGF0YSB0aGF0IGlzIHNwZWNpZmljIHRvIGhhcmR3YXJlIHN1YmFyY2gKLQotRmllbGQgbmFtZToJcGF5bG9hZF9vZmZzZXQKLVR5cGU6CQlyZWFkCi1PZmZzZXQvc2l6ZToJMHgyNDgvNAotUHJvdG9jb2w6CTIuMDgrCi0KLSAgSWYgbm9uLXplcm8gdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZSBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIHRoZQotICByZWFsLW1vZGUgY29kZSB0byB0aGUgcGF5bG9hZC4KLQotICBUaGUgcGF5bG9hZCBtYXkgYmUgY29tcHJlc3NlZC4gVGhlIGZvcm1hdCBvZiBib3RoIHRoZSBjb21wcmVzc2VkIGFuZAotICB1bmNvbXByZXNzZWQgZGF0YSBzaG91bGQgYmUgZGV0ZXJtaW5lZCB1c2luZyB0aGUgc3RhbmRhcmQgbWFnaWMKLSAgbnVtYmVycy4gQ3VycmVudGx5IG9ubHkgZ3ppcCBjb21wcmVzc2VkIEVMRiBpcyB1c2VkLgotICAKLUZpZWxkIG5hbWU6CXBheWxvYWRfbGVuZ3RoCi1UeXBlOgkJcmVhZAotT2Zmc2V0L3NpemU6CTB4MjRjLzQKLVByb3RvY29sOgkyLjA4KwotCi0gIFRoZSBsZW5ndGggb2YgdGhlIHBheWxvYWQuCi0KLSoqKiogVEhFIElNQUdFIENIRUNLU1VNCi0KLUZyb20gYm9vdCBwcm90b2NvbCB2ZXJzaW9uIDIuMDggb253YXJkcyB0aGUgQ1JDLTMyIGlzIGNhbGN1bGF0ZWQgb3ZlcgotdGhlIGVudGlyZSBmaWxlIHVzaW5nIHRoZSBjaGFyYWN0ZXJpc3RpYyBwb2x5bm9taWFsIDB4MDRDMTFEQjcgYW5kIGFuCi1pbml0aWFsIHJlbWFpbmRlciBvZiAweGZmZmZmZmZmLiAgVGhlIGNoZWNrc3VtIGlzIGFwcGVuZGVkIHRvIHRoZQotZmlsZTsgdGhlcmVmb3JlIHRoZSBDUkMgb2YgdGhlIGZpbGUgdXAgdG8gdGhlIGxpbWl0IHNwZWNpZmllZCBpbiB0aGUKLXN5c3NpemUgZmllbGQgb2YgdGhlIGhlYWRlciBpcyBhbHdheXMgMC4KLQotKioqKiBUSEUgS0VSTkVMIENPTU1BTkQgTElORQotCi1UaGUga2VybmVsIGNvbW1hbmQgbGluZSBoYXMgYmVjb21lIGFuIGltcG9ydGFudCB3YXkgZm9yIHRoZSBib290Ci1sb2FkZXIgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUga2VybmVsLiAgU29tZSBvZiBpdHMgb3B0aW9ucyBhcmUgYWxzbwotcmVsZXZhbnQgdG8gdGhlIGJvb3QgbG9hZGVyIGl0c2VsZiwgc2VlICJzcGVjaWFsIGNvbW1hbmQgbGluZSBvcHRpb25zIgotYmVsb3cuCi0KLVRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGlzIGEgbnVsbC10ZXJtaW5hdGVkIHN0cmluZy4gVGhlIG1heGltdW0KLWxlbmd0aCBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlIGZpZWxkIGNtZGxpbmVfc2l6ZS4gIEJlZm9yZSBwcm90b2NvbAotdmVyc2lvbiAyLjA2LCB0aGUgbWF4aW11bSB3YXMgMjU1IGNoYXJhY3RlcnMuICBBIHN0cmluZyB0aGF0IGlzIHRvbwotbG9uZyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgdHJ1bmNhdGVkIGJ5IHRoZSBrZXJuZWwuCi0KLUlmIHRoZSBib290IHByb3RvY29sIHZlcnNpb24gaXMgMi4wMiBvciBsYXRlciwgdGhlIGFkZHJlc3Mgb2YgdGhlCi1rZXJuZWwgY29tbWFuZCBsaW5lIGlzIGdpdmVuIGJ5IHRoZSBoZWFkZXIgZmllbGQgY21kX2xpbmVfcHRyIChzZWUKLWFib3ZlLikgIFRoaXMgYWRkcmVzcyBjYW4gYmUgYW55d2hlcmUgYmV0d2VlbiB0aGUgZW5kIG9mIHRoZSBzZXR1cAotaGVhcCBhbmQgMHhBMDAwMC4KLQotSWYgdGhlIHByb3RvY29sIHZlcnNpb24gaXMgKm5vdCogMi4wMiBvciBoaWdoZXIsIHRoZSBrZXJuZWwKLWNvbW1hbmQgbGluZSBpcyBlbnRlcmVkIHVzaW5nIHRoZSBmb2xsb3dpbmcgcHJvdG9jb2w6Ci0KLQlBdCBvZmZzZXQgMHgwMDIwICh3b3JkKSwgImNtZF9saW5lX21hZ2ljIiwgZW50ZXIgdGhlIG1hZ2ljCi0JbnVtYmVyIDB4QTMzRi4KLQotCUF0IG9mZnNldCAweDAwMjIgKHdvcmQpLCAiY21kX2xpbmVfb2Zmc2V0IiwgZW50ZXIgdGhlIG9mZnNldAotCW9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIChyZWxhdGl2ZSB0byB0aGUgc3RhcnQgb2YgdGhlCi0JcmVhbC1tb2RlIGtlcm5lbCkuCi0JCi0JVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgKm11c3QqIGJlIHdpdGhpbiB0aGUgbWVtb3J5IHJlZ2lvbgotCWNvdmVyZWQgYnkgc2V0dXBfbW92ZV9zaXplLCBzbyB5b3UgbWF5IG5lZWQgdG8gYWRqdXN0IHRoaXMKLQlmaWVsZC4KLQotRmllbGQgbmFtZToJc2V0dXBfZGF0YQotVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQotT2Zmc2V0L3NpemU6CTB4MjUwLzgKLVByb3RvY29sOgkyLjA5KwotCi0gIFRoZSA2NC1iaXQgcGh5c2ljYWwgcG9pbnRlciB0byBOVUxMIHRlcm1pbmF0ZWQgc2luZ2xlIGxpbmtlZCBsaXN0IG9mCi0gIHN0cnVjdCBzZXR1cF9kYXRhLiBUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIGEgbW9yZSBleHRlbnNpYmxlIGJvb3QKLSAgcGFyYW1ldGVycyBwYXNzaW5nIG1lY2hhbmlzbS4gVGhlIGRlZmluaXRpb24gb2Ygc3RydWN0IHNldHVwX2RhdGEgaXMKLSAgYXMgZm9sbG93OgotCi0gIHN0cnVjdCBzZXR1cF9kYXRhIHsKLQkgIHU2NCBuZXh0OwotCSAgdTMyIHR5cGU7Ci0JICB1MzIgbGVuOwotCSAgdTggIGRhdGFbMF07Ci0gIH07Ci0KLSAgV2hlcmUsIHRoZSBuZXh0IGlzIGEgNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gdGhlIG5leHQgbm9kZSBvZgotICBsaW5rZWQgbGlzdCwgdGhlIG5leHQgZmllbGQgb2YgdGhlIGxhc3Qgbm9kZSBpcyAwOyB0aGUgdHlwZSBpcyB1c2VkCi0gIHRvIGlkZW50aWZ5IHRoZSBjb250ZW50cyBvZiBkYXRhOyB0aGUgbGVuIGlzIHRoZSBsZW5ndGggb2YgZGF0YQotICBmaWVsZDsgdGhlIGRhdGEgaG9sZHMgdGhlIHJlYWwgcGF5bG9hZC4KLQotCi0qKioqIE1FTU9SWSBMQVlPVVQgT0YgVEhFIFJFQUwtTU9ERSBDT0RFCi0KLVRoZSByZWFsLW1vZGUgY29kZSByZXF1aXJlcyBhIHN0YWNrL2hlYXAgdG8gYmUgc2V0IHVwLCBhcyB3ZWxsIGFzCi1tZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUga2VybmVsIGNvbW1hbmQgbGluZS4gIFRoaXMgbmVlZHMgdG8gYmUgZG9uZQotaW4gdGhlIHJlYWwtbW9kZSBhY2Nlc3NpYmxlIG1lbW9yeSBpbiBib3R0b20gbWVnYWJ5dGUuCi0KLUl0IHNob3VsZCBiZSBub3RlZCB0aGF0IG1vZGVybiBtYWNoaW5lcyBvZnRlbiBoYXZlIGEgc2l6YWJsZSBFeHRlbmRlZAotQklPUyBEYXRhIEFyZWEgKEVCREEpLiAgQXMgYSByZXN1bHQsIGl0IGlzIGFkdmlzYWJsZSB0byB1c2UgYXMgbGl0dGxlCi1vZiB0aGUgbG93IG1lZ2FieXRlIGFzIHBvc3NpYmxlLgotCi1VbmZvcnR1bmF0ZWx5LCB1bmRlciB0aGUgZm9sbG93aW5nIGNpcmN1bXN0YW5jZXMgdGhlIDB4OTAwMDAgbWVtb3J5Ci1zZWdtZW50IGhhcyB0byBiZSB1c2VkOgotCi0JLSBXaGVuIGxvYWRpbmcgYSB6SW1hZ2Uga2VybmVsICgobG9hZGZsYWdzICYgMHgwMSkgPT0gMCkuCi0JLSBXaGVuIGxvYWRpbmcgYSAyLjAxIG9yIGVhcmxpZXIgYm9vdCBwcm90b2NvbCBrZXJuZWwuCi0KLQkgIC0+IEZvciB0aGUgMi4wMCBhbmQgMi4wMSBib290IHByb3RvY29scywgdGhlIHJlYWwtbW9kZSBjb2RlCi0JICAgICBjYW4gYmUgbG9hZGVkIGF0IGFub3RoZXIgYWRkcmVzcywgYnV0IGl0IGlzIGludGVybmFsbHkKLQkgICAgIHJlbG9jYXRlZCB0byAweDkwMDAwLiAgRm9yIHRoZSAib2xkIiBwcm90b2NvbCwgdGhlCi0JICAgICByZWFsLW1vZGUgY29kZSBtdXN0IGJlIGxvYWRlZCBhdCAweDkwMDAwLgotCi1XaGVuIGxvYWRpbmcgYXQgMHg5MDAwMCwgYXZvaWQgdXNpbmcgbWVtb3J5IGFib3ZlIDB4OWEwMDAuCi0KLUZvciBib290IHByb3RvY29sIDIuMDIgb3IgaGlnaGVyLCB0aGUgY29tbWFuZCBsaW5lIGRvZXMgbm90IGhhdmUgdG8gYmUKLWxvY2F0ZWQgaW4gdGhlIHNhbWUgNjRLIHNlZ21lbnQgYXMgdGhlIHJlYWwtbW9kZSBzZXR1cCBjb2RlOyBpdCBpcwotdGh1cyBwZXJtaXR0ZWQgdG8gZ2l2ZSB0aGUgc3RhY2svaGVhcCB0aGUgZnVsbCA2NEsgc2VnbWVudCBhbmQgbG9jYXRlCi10aGUgY29tbWFuZCBsaW5lIGFib3ZlIGl0LgotCi1UaGUga2VybmVsIGNvbW1hbmQgbGluZSBzaG91bGQgbm90IGJlIGxvY2F0ZWQgYmVsb3cgdGhlIHJlYWwtbW9kZQotY29kZSwgbm9yIHNob3VsZCBpdCBiZSBsb2NhdGVkIGluIGhpZ2ggbWVtb3J5LgotCi0KLSoqKiogU0FNUExFIEJPT1QgQ09ORklHVVJBVElPTgotCi1BcyBhIHNhbXBsZSBjb25maWd1cmF0aW9uLCBhc3N1bWUgdGhlIGZvbGxvd2luZyBsYXlvdXQgb2YgdGhlIHJlYWwKLW1vZGUgc2VnbWVudDoKLQotICAgIFdoZW4gbG9hZGluZyBiZWxvdyAweDkwMDAwLCB1c2UgdGhlIGVudGlyZSBzZWdtZW50OgotCi0JMHgwMDAwLTB4N2ZmZglSZWFsIG1vZGUga2VybmVsCi0JMHg4MDAwLTB4ZGZmZglTdGFjayBhbmQgaGVhcAotCTB4ZTAwMC0weGZmZmYJS2VybmVsIGNvbW1hbmQgbGluZQotCi0gICAgV2hlbiBsb2FkaW5nIGF0IDB4OTAwMDAgT1IgdGhlIHByb3RvY29sIHZlcnNpb24gaXMgMi4wMSBvciBlYXJsaWVyOgotCi0JMHgwMDAwLTB4N2ZmZglSZWFsIG1vZGUga2VybmVsCi0JMHg4MDAwLTB4OTdmZglTdGFjayBhbmQgaGVhcAotCTB4OTgwMC0weDlmZmYJS2VybmVsIGNvbW1hbmQgbGluZQotCi1TdWNoIGEgYm9vdCBsb2FkZXIgc2hvdWxkIGVudGVyIHRoZSBmb2xsb3dpbmcgZmllbGRzIGluIHRoZSBoZWFkZXI6Ci0KLQl1bnNpZ25lZCBsb25nIGJhc2VfcHRyOwkvKiBiYXNlIGFkZHJlc3MgZm9yIHJlYWwtbW9kZSBzZWdtZW50ICovCi0KLQlpZiAoIHNldHVwX3NlY3RzID09IDAgKSB7Ci0JCXNldHVwX3NlY3RzID0gNDsKLQl9Ci0KLQlpZiAoIHByb3RvY29sID49IDB4MDIwMCApIHsKLQkJdHlwZV9vZl9sb2FkZXIgPSA8dHlwZSBjb2RlPjsKLQkJaWYgKCBsb2FkaW5nX2luaXRyZCApIHsKLQkJCXJhbWRpc2tfaW1hZ2UgPSA8aW5pdHJkX2FkZHJlc3M+OwotCQkJcmFtZGlza19zaXplID0gPGluaXRyZF9zaXplPjsKLQkJfQotCi0JCWlmICggcHJvdG9jb2wgPj0gMHgwMjAyICYmIGxvYWRmbGFncyAmIDB4MDEgKQotCQkJaGVhcF9lbmQgPSAweGUwMDA7Ci0JCWVsc2UKLQkJCWhlYXBfZW5kID0gMHg5ODAwOwotCi0JCWlmICggcHJvdG9jb2wgPj0gMHgwMjAxICkgewotCQkJaGVhcF9lbmRfcHRyID0gaGVhcF9lbmQgLSAweDIwMDsKLQkJCWxvYWRmbGFncyB8PSAweDgwOyAvKiBDQU5fVVNFX0hFQVAgKi8KLQkJfQotCi0JCWlmICggcHJvdG9jb2wgPj0gMHgwMjAyICkgewotCQkJY21kX2xpbmVfcHRyID0gYmFzZV9wdHIgKyBoZWFwX2VuZDsKLQkJCXN0cmNweShjbWRfbGluZV9wdHIsIGNtZGxpbmUpOwotCQl9IGVsc2UgewotCQkJY21kX2xpbmVfbWFnaWMJPSAweEEzM0Y7Ci0JCQljbWRfbGluZV9vZmZzZXQgPSBoZWFwX2VuZDsKLQkJCXNldHVwX21vdmVfc2l6ZSA9IGhlYXBfZW5kICsgc3RybGVuKGNtZGxpbmUpKzE7Ci0JCQlzdHJjcHkoYmFzZV9wdHIrY21kX2xpbmVfb2Zmc2V0LCBjbWRsaW5lKTsKLQkJfQotCX0gZWxzZSB7Ci0JCS8qIFZlcnkgb2xkIGtlcm5lbCAqLwotCi0JCWhlYXBfZW5kID0gMHg5ODAwOwotCi0JCWNtZF9saW5lX21hZ2ljCT0gMHhBMzNGOwotCQljbWRfbGluZV9vZmZzZXQgPSBoZWFwX2VuZDsKLQotCQkvKiBBIHZlcnkgb2xkIGtlcm5lbCBNVVNUIGhhdmUgaXRzIHJlYWwtbW9kZSBjb2RlCi0JCSAgIGxvYWRlZCBhdCAweDkwMDAwICovCi0KLQkJaWYgKCBiYXNlX3B0ciAhPSAweDkwMDAwICkgewotCQkJLyogQ29weSB0aGUgcmVhbC1tb2RlIGtlcm5lbCAqLwotCQkJbWVtY3B5KDB4OTAwMDAsIGJhc2VfcHRyLCAoc2V0dXBfc2VjdHMrMSkqNTEyKTsKLQkJCWJhc2VfcHRyID0gMHg5MDAwMDsJCSAvKiBSZWxvY2F0ZWQgKi8KLQkJfQotCi0JCXN0cmNweSgweDkwMDAwK2NtZF9saW5lX29mZnNldCwgY21kbGluZSk7Ci0KLQkJLyogSXQgaXMgcmVjb21tZW5kZWQgdG8gY2xlYXIgbWVtb3J5IHVwIHRvIHRoZSAzMksgbWFyayAqLwotCQltZW1zZXQoMHg5MDAwMCArIChzZXR1cF9zZWN0cysxKSo1MTIsIDAsCi0JCSAgICAgICAoNjQtKHNldHVwX3NlY3RzKzEpKSo1MTIpOwotCX0KLQotCi0qKioqIExPQURJTkcgVEhFIFJFU1QgT0YgVEhFIEtFUk5FTAotCi1UaGUgMzItYml0IChub24tcmVhbC1tb2RlKSBrZXJuZWwgc3RhcnRzIGF0IG9mZnNldCAoc2V0dXBfc2VjdHMrMSkqNTEyCi1pbiB0aGUga2VybmVsIGZpbGUgKGFnYWluLCBpZiBzZXR1cF9zZWN0cyA9PSAwIHRoZSByZWFsIHZhbHVlIGlzIDQuKQotSXQgc2hvdWxkIGJlIGxvYWRlZCBhdCBhZGRyZXNzIDB4MTAwMDAgZm9yIEltYWdlL3pJbWFnZSBrZXJuZWxzIGFuZAotMHgxMDAwMDAgZm9yIGJ6SW1hZ2Uga2VybmVscy4KLQotVGhlIGtlcm5lbCBpcyBhIGJ6SW1hZ2Uga2VybmVsIGlmIHRoZSBwcm90b2NvbCA+PSAyLjAwIGFuZCB0aGUgMHgwMQotYml0IChMT0FEX0hJR0gpIGluIHRoZSBsb2FkZmxhZ3MgZmllbGQgaXMgc2V0OgotCi0JaXNfYnpJbWFnZSA9IChwcm90b2NvbCA+PSAweDAyMDApICYmIChsb2FkZmxhZ3MgJiAweDAxKTsKLQlsb2FkX2FkZHJlc3MgPSBpc19iekltYWdlID8gMHgxMDAwMDAgOiAweDEwMDAwOwotCi1Ob3RlIHRoYXQgSW1hZ2UvekltYWdlIGtlcm5lbHMgY2FuIGJlIHVwIHRvIDUxMksgaW4gc2l6ZSwgYW5kIHRodXMgdXNlCi10aGUgZW50aXJlIDB4MTAwMDAtMHg5MDAwMCByYW5nZSBvZiBtZW1vcnkuICBUaGlzIG1lYW5zIGl0IGlzIHByZXR0eQotbXVjaCBhIHJlcXVpcmVtZW50IGZvciB0aGVzZSBrZXJuZWxzIHRvIGxvYWQgdGhlIHJlYWwtbW9kZSBwYXJ0IGF0Ci0weDkwMDAwLiAgYnpJbWFnZSBrZXJuZWxzIGFsbG93IG11Y2ggbW9yZSBmbGV4aWJpbGl0eS4KLQotCi0qKioqIFNQRUNJQUwgQ09NTUFORCBMSU5FIE9QVElPTlMKLQotSWYgdGhlIGNvbW1hbmQgbGluZSBwcm92aWRlZCBieSB0aGUgYm9vdCBsb2FkZXIgaXMgZW50ZXJlZCBieSB0aGUKLXVzZXIsIHRoZSB1c2VyIG1heSBleHBlY3QgdGhlIGZvbGxvd2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucyB0byB3b3JrLgotVGhleSBzaG91bGQgbm9ybWFsbHkgbm90IGJlIGRlbGV0ZWQgZnJvbSB0aGUga2VybmVsIGNvbW1hbmQgbGluZSBldmVuCi10aG91Z2ggbm90IGFsbCBvZiB0aGVtIGFyZSBhY3R1YWxseSBtZWFuaW5nZnVsIHRvIHRoZSBrZXJuZWwuICBCb290Ci1sb2FkZXIgYXV0aG9ycyB3aG8gbmVlZCBhZGRpdGlvbmFsIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciB0aGUgYm9vdAotbG9hZGVyIGl0c2VsZiBzaG91bGQgZ2V0IHRoZW0gcmVnaXN0ZXJlZCBpbgotRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQgdG8gbWFrZSBzdXJlIHRoZXkgd2lsbCBub3QKLWNvbmZsaWN0IHdpdGggYWN0dWFsIGtlcm5lbCBvcHRpb25zIG5vdyBvciBpbiB0aGUgZnV0dXJlLgotCi0gIHZnYT08bW9kZT4KLQk8bW9kZT4gaGVyZSBpcyBlaXRoZXIgYW4gaW50ZWdlciAoaW4gQyBub3RhdGlvbiwgZWl0aGVyCi0JZGVjaW1hbCwgb2N0YWwsIG9yIGhleGFkZWNpbWFsKSBvciBvbmUgb2YgdGhlIHN0cmluZ3MKLQkibm9ybWFsIiAobWVhbmluZyAweEZGRkYpLCAiZXh0IiAobWVhbmluZyAweEZGRkUpIG9yICJhc2siCi0JKG1lYW5pbmcgMHhGRkZEKS4gIFRoaXMgdmFsdWUgc2hvdWxkIGJlIGVudGVyZWQgaW50byB0aGUKLQl2aWRfbW9kZSBmaWVsZCwgYXMgaXQgaXMgdXNlZCBieSB0aGUga2VybmVsIGJlZm9yZSB0aGUgY29tbWFuZAotCWxpbmUgaXMgcGFyc2VkLgotCi0gIG1lbT08c2l6ZT4KLQk8c2l6ZT4gaXMgYW4gaW50ZWdlciBpbiBDIG5vdGF0aW9uIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkKLQkoY2FzZSBpbnNlbnNpdGl2ZSkgSywgTSwgRywgVCwgUCBvciBFIChtZWFuaW5nIDw8IDEwLCA8PCAyMCwKLQk8PCAzMCwgPDwgNDAsIDw8IDUwIG9yIDw8IDYwKS4gIFRoaXMgc3BlY2lmaWVzIHRoZSBlbmQgb2YKLQltZW1vcnkgdG8gdGhlIGtlcm5lbC4gVGhpcyBhZmZlY3RzIHRoZSBwb3NzaWJsZSBwbGFjZW1lbnQgb2YKLQlhbiBpbml0cmQsIHNpbmNlIGFuIGluaXRyZCBzaG91bGQgYmUgcGxhY2VkIG5lYXIgZW5kIG9mCi0JbWVtb3J5LiAgTm90ZSB0aGF0IHRoaXMgaXMgYW4gb3B0aW9uIHRvICpib3RoKiB0aGUga2VybmVsIGFuZAotCXRoZSBib290bG9hZGVyIQotCi0gIGluaXRyZD08ZmlsZT4KLQlBbiBpbml0cmQgc2hvdWxkIGJlIGxvYWRlZC4gIFRoZSBtZWFuaW5nIG9mIDxmaWxlPiBpcwotCW9idmlvdXNseSBib290bG9hZGVyLWRlcGVuZGVudCwgYW5kIHNvbWUgYm9vdCBsb2FkZXJzCi0JKGUuZy4gTElMTykgZG8gbm90IGhhdmUgc3VjaCBhIGNvbW1hbmQuCi0KLUluIGFkZGl0aW9uLCBzb21lIGJvb3QgbG9hZGVycyBhZGQgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIHRoZQotdXNlci1zcGVjaWZpZWQgY29tbWFuZCBsaW5lOgotCi0gIEJPT1RfSU1BR0U9PGZpbGU+Ci0JVGhlIGJvb3QgaW1hZ2Ugd2hpY2ggd2FzIGxvYWRlZC4gIEFnYWluLCB0aGUgbWVhbmluZyBvZiA8ZmlsZT4KLQlpcyBvYnZpb3VzbHkgYm9vdGxvYWRlci1kZXBlbmRlbnQuCi0KLSAgYXV0bwotCVRoZSBrZXJuZWwgd2FzIGJvb3RlZCB3aXRob3V0IGV4cGxpY2l0IHVzZXIgaW50ZXJ2ZW50aW9uLgotCi1JZiB0aGVzZSBvcHRpb25zIGFyZSBhZGRlZCBieSB0aGUgYm9vdCBsb2FkZXIsIGl0IGlzIGhpZ2hseQotcmVjb21tZW5kZWQgdGhhdCB0aGV5IGFyZSBsb2NhdGVkICpmaXJzdCosIGJlZm9yZSB0aGUgdXNlci1zcGVjaWZpZWQKLW9yIGNvbmZpZ3VyYXRpb24tc3BlY2lmaWVkIGNvbW1hbmQgbGluZS4gIE90aGVyd2lzZSwgImluaXQ9L2Jpbi9zaCIKLWdldHMgY29uZnVzZWQgYnkgdGhlICJhdXRvIiBvcHRpb24uCi0KLQotKioqKiBSVU5OSU5HIFRIRSBLRVJORUwKLQotVGhlIGtlcm5lbCBpcyBzdGFydGVkIGJ5IGp1bXBpbmcgdG8gdGhlIGtlcm5lbCBlbnRyeSBwb2ludCwgd2hpY2ggaXMKLWxvY2F0ZWQgYXQgKnNlZ21lbnQqIG9mZnNldCAweDIwIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZWFsIG1vZGUKLWtlcm5lbC4gIFRoaXMgbWVhbnMgdGhhdCBpZiB5b3UgbG9hZGVkIHlvdXIgcmVhbC1tb2RlIGtlcm5lbCBjb2RlIGF0Ci0weDkwMDAwLCB0aGUga2VybmVsIGVudHJ5IHBvaW50IGlzIDkwMjA6MDAwMC4KLQotQXQgZW50cnksIGRzID0gZXMgPSBzcyBzaG91bGQgcG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSByZWFsLW1vZGUKLWtlcm5lbCBjb2RlICgweDkwMDAgaWYgdGhlIGNvZGUgaXMgbG9hZGVkIGF0IDB4OTAwMDApLCBzcCBzaG91bGQgYmUKLXNldCB1cCBwcm9wZXJseSwgbm9ybWFsbHkgcG9pbnRpbmcgdG8gdGhlIHRvcCBvZiB0aGUgaGVhcCwgYW5kCi1pbnRlcnJ1cHRzIHNob3VsZCBiZSBkaXNhYmxlZC4gIEZ1cnRoZXJtb3JlLCB0byBndWFyZCBhZ2FpbnN0IGJ1Z3MgaW4KLXRoZSBrZXJuZWwsIGl0IGlzIHJlY29tbWVuZGVkIHRoYXQgdGhlIGJvb3QgbG9hZGVyIHNldHMgZnMgPSBncyA9IGRzID0KLWVzID0gc3MuCi0KLUluIG91ciBleGFtcGxlIGZyb20gYWJvdmUsIHdlIHdvdWxkIGRvOgotCi0JLyogTm90ZTogaW4gdGhlIGNhc2Ugb2YgdGhlICJvbGQiIGtlcm5lbCBwcm90b2NvbCwgYmFzZV9wdHIgbXVzdAotCSAgIGJlID09IDB4OTAwMDAgYXQgdGhpcyBwb2ludDsgc2VlIHRoZSBwcmV2aW91cyBzYW1wbGUgY29kZSAqLwotCi0Jc2VnID0gYmFzZV9wdHIgPj4gNDsKLQotCWNsaSgpOwkvKiBFbnRlciB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQhICovCi0KLQkvKiBTZXQgdXAgdGhlIHJlYWwtbW9kZSBrZXJuZWwgc3RhY2sgKi8KLQlfU1MgPSBzZWc7Ci0JX1NQID0gaGVhcF9lbmQ7Ci0KLQlfRFMgPSBfRVMgPSBfRlMgPSBfR1MgPSBzZWc7Ci0Jam1wX2ZhcihzZWcrMHgyMCwgMCk7CS8qIFJ1biB0aGUga2VybmVsICovCi0KLUlmIHlvdXIgYm9vdCBzZWN0b3IgYWNjZXNzZXMgYSBmbG9wcHkgZHJpdmUsIGl0IGlzIHJlY29tbWVuZGVkIHRvCi1zd2l0Y2ggb2ZmIHRoZSBmbG9wcHkgbW90b3IgYmVmb3JlIHJ1bm5pbmcgdGhlIGtlcm5lbCwgc2luY2UgdGhlCi1rZXJuZWwgYm9vdCBsZWF2ZXMgaW50ZXJydXB0cyBvZmYgYW5kIHRodXMgdGhlIG1vdG9yIHdpbGwgbm90IGJlCi1zd2l0Y2hlZCBvZmYsIGVzcGVjaWFsbHkgaWYgdGhlIGxvYWRlZCBrZXJuZWwgaGFzIHRoZSBmbG9wcHkgZHJpdmVyIGFzCi1hIGRlbWFuZC1sb2FkZWQgbW9kdWxlIQotCi0KLSoqKiogQURWQU5DRUQgQk9PVCBMT0FERVIgSE9PS1MKLQotSWYgdGhlIGJvb3QgbG9hZGVyIHJ1bnMgaW4gYSBwYXJ0aWN1bGFybHkgaG9zdGlsZSBlbnZpcm9ubWVudCAoc3VjaCBhcwotTE9BRExJTiwgd2hpY2ggcnVucyB1bmRlciBET1MpIGl0IG1heSBiZSBpbXBvc3NpYmxlIHRvIGZvbGxvdyB0aGUKLXN0YW5kYXJkIG1lbW9yeSBsb2NhdGlvbiByZXF1aXJlbWVudHMuICBTdWNoIGEgYm9vdCBsb2FkZXIgbWF5IHVzZSB0aGUKLWZvbGxvd2luZyBob29rcyB0aGF0LCBpZiBzZXQsIGFyZSBpbnZva2VkIGJ5IHRoZSBrZXJuZWwgYXQgdGhlCi1hcHByb3ByaWF0ZSB0aW1lLiAgVGhlIHVzZSBvZiB0aGVzZSBob29rcyBzaG91bGQgcHJvYmFibHkgYmUKLWNvbnNpZGVyZWQgYW4gYWJzb2x1dGVseSBsYXN0IHJlc29ydCEKLQotSU1QT1JUQU5UOiBBbGwgdGhlIGhvb2tzIGFyZSByZXF1aXJlZCB0byBwcmVzZXJ2ZSAlZXNwLCAlZWJwLCAlZXNpIGFuZAotJWVkaSBhY3Jvc3MgaW52b2NhdGlvbi4KLQotICByZWFsbW9kZV9zd3RjaDoKLQlBIDE2LWJpdCByZWFsIG1vZGUgZmFyIHN1YnJvdXRpbmUgaW52b2tlZCBpbW1lZGlhdGVseSBiZWZvcmUKLQllbnRlcmluZyBwcm90ZWN0ZWQgbW9kZS4gIFRoZSBkZWZhdWx0IHJvdXRpbmUgZGlzYWJsZXMgTk1JLCBzbwotCXlvdXIgcm91dGluZSBzaG91bGQgcHJvYmFibHkgZG8gc28sIHRvby4KLQotICBjb2RlMzJfc3RhcnQ6Ci0JQSAzMi1iaXQgZmxhdC1tb2RlIHJvdXRpbmUgKmp1bXBlZCogdG8gaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlCi0JdHJhbnNpdGlvbiB0byBwcm90ZWN0ZWQgbW9kZSwgYnV0IGJlZm9yZSB0aGUga2VybmVsIGlzCi0JdW5jb21wcmVzc2VkLiAgTm8gc2VnbWVudHMsIGV4Y2VwdCBDUywgYXJlIGd1YXJhbnRlZWQgdG8gYmUKLQlzZXQgdXAgKGN1cnJlbnQga2VybmVscyBkbywgYnV0IG9sZGVyIG9uZXMgZG8gbm90KTsgeW91IHNob3VsZAotCXNldCB0aGVtIHVwIHRvIEJPT1RfRFMgKDB4MTgpIHlvdXJzZWxmLgotCi0JQWZ0ZXIgY29tcGxldGluZyB5b3VyIGhvb2ssIHlvdSBzaG91bGQganVtcCB0byB0aGUgYWRkcmVzcwotCXRoYXQgd2FzIGluIHRoaXMgZmllbGQgYmVmb3JlIHlvdXIgYm9vdCBsb2FkZXIgb3Zlcndyb3RlIGl0Ci0JKHJlbG9jYXRlZCwgaWYgYXBwcm9wcmlhdGUuKQotCi0KLSoqKiogMzItYml0IEJPT1QgUFJPVE9DT0wKLQotRm9yIG1hY2hpbmUgd2l0aCBzb21lIG5ldyBCSU9TIG90aGVyIHRoYW4gbGVnYWN5IEJJT1MsIHN1Y2ggYXMgRUZJLAotTGludXhCSU9TLCBldGMsIGFuZCBrZXhlYywgdGhlIDE2LWJpdCByZWFsIG1vZGUgc2V0dXAgY29kZSBpbiBrZXJuZWwKLWJhc2VkIG9uIGxlZ2FjeSBCSU9TIGNhbiBub3QgYmUgdXNlZCwgc28gYSAzMi1iaXQgYm9vdCBwcm90b2NvbCBuZWVkcwotdG8gYmUgZGVmaW5lZC4KLQotSW4gMzItYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBmaXJzdCBzdGVwIGluIGxvYWRpbmcgYSBMaW51eCBrZXJuZWwKLXNob3VsZCBiZSB0byBzZXR1cCB0aGUgYm9vdCBwYXJhbWV0ZXJzIChzdHJ1Y3QgYm9vdF9wYXJhbXMsCi10cmFkaXRpb25hbGx5IGtub3duIGFzICJ6ZXJvIHBhZ2UiKS4gVGhlIG1lbW9yeSBmb3Igc3RydWN0IGJvb3RfcGFyYW1zCi1zaG91bGQgYmUgYWxsb2NhdGVkIGFuZCBpbml0aWFsaXplZCB0byBhbGwgemVyby4gVGhlbiB0aGUgc2V0dXAgaGVhZGVyCi1mcm9tIG9mZnNldCAweDAxZjEgb2Yga2VybmVsIGltYWdlIG9uIHNob3VsZCBiZSBsb2FkZWQgaW50byBzdHJ1Y3QKLWJvb3RfcGFyYW1zIGFuZCBleGFtaW5lZC4gVGhlIGVuZCBvZiBzZXR1cCBoZWFkZXIgY2FuIGJlIGNhbGN1bGF0ZWQgYXMKLWZvbGxvdzoKLQotCTB4MDIwMiArIGJ5dGUgdmFsdWUgYXQgb2Zmc2V0IDB4MDIwMQotCi1JbiBhZGRpdGlvbiB0byByZWFkL21vZGlmeS93cml0ZSB0aGUgc2V0dXAgaGVhZGVyIG9mIHRoZSBzdHJ1Y3QKLWJvb3RfcGFyYW1zIGFzIHRoYXQgb2YgMTYtYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBib290IGxvYWRlciBzaG91bGQKLWFsc28gZmlsbCB0aGUgYWRkaXRpb25hbCBmaWVsZHMgb2YgdGhlIHN0cnVjdCBib290X3BhcmFtcyBhcyB0aGF0Ci1kZXNjcmliZWQgaW4gemVyby1wYWdlLnR4dC4KLQotQWZ0ZXIgc2V0dXBwaW5nIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXMsIHRoZSBib290IGxvYWRlciBjYW4gbG9hZCB0aGUKLTMyLzY0LWJpdCBrZXJuZWwgaW4gdGhlIHNhbWUgd2F5IGFzIHRoYXQgb2YgMTYtYml0IGJvb3QgcHJvdG9jb2wuCi0KLUluIDMyLWJpdCBib290IHByb3RvY29sLCB0aGUga2VybmVsIGlzIHN0YXJ0ZWQgYnkganVtcGluZyB0byB0aGUKLTMyLWJpdCBrZXJuZWwgZW50cnkgcG9pbnQsIHdoaWNoIGlzIHRoZSBzdGFydCBhZGRyZXNzIG9mIGxvYWRlZAotMzIvNjQtYml0IGtlcm5lbC4KLQotQXQgZW50cnksIHRoZSBDUFUgbXVzdCBiZSBpbiAzMi1iaXQgcHJvdGVjdGVkIG1vZGUgd2l0aCBwYWdpbmcKLWRpc2FibGVkOyBhIEdEVCBtdXN0IGJlIGxvYWRlZCB3aXRoIHRoZSBkZXNjcmlwdG9ycyBmb3Igc2VsZWN0b3JzCi1fX0JPT1RfQ1MoMHgxMCkgYW5kIF9fQk9PVF9EUygweDE4KTsgYm90aCBkZXNjcmlwdG9ycyBtdXN0IGJlIDRHIGZsYXQKLXNlZ21lbnQ7IF9fQk9PU19DUyBtdXN0IGhhdmUgZXhlY3V0ZS9yZWFkIHBlcm1pc3Npb24sIGFuZCBfX0JPT1RfRFMKLW11c3QgaGF2ZSByZWFkL3dyaXRlIHBlcm1pc3Npb247IENTIG11c3QgYmUgX19CT09UX0NTIGFuZCBEUywgRVMsIFNTCi1tdXN0IGJlIF9fQk9PVF9EUzsgaW50ZXJydXB0IG11c3QgYmUgZGlzYWJsZWQ7ICVlc2kgbXVzdCBob2xkIHRoZSBiYXNlCi1hZGRyZXNzIG9mIHRoZSBzdHJ1Y3QgYm9vdF9wYXJhbXM7ICVlYnAsICVlZGkgYW5kICVlYnggbXVzdCBiZSB6ZXJvLgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pb2N0bC1udW1iZXIudHh0IGIvRG9jdW1lbnRhdGlvbi9pb2N0bC1udW1iZXIudHh0CmluZGV4IDI0MGNlN2EuLjNiYjVmNDYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vaW9jdGwtbnVtYmVyLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2lvY3RsLW51bWJlci50eHQKQEAgLTExNyw2ICsxMTcsNyBAQAogCQkJCQk8bWFpbHRvOm5hdGFsaWFAbmlraGVmay5uaWtoZWYubmw+CiAnYycJMDAtN0YJbGludXgvY29tc3RhdHMuaAljb25mbGljdCEKICdjJwkwMC03RglsaW51eC9jb2RhLmgJCWNvbmZsaWN0IQorJ2MnCTgwLTlGCWFzbS1zMzkwL2Noc2MuaAogJ2QnCTAwLUZGCWxpbnV4L2NoYXIvZHJtL2RybS9oCWNvbmZsaWN0IQogJ2QnCTAwLURGCWxpbnV4L3ZpZGVvX2RlY29kZXIuaAljb25mbGljdCEKICdkJwlGMC1GRglsaW51eC9kaWdpMS5oCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tkdW1wL2tkdW1wLnR4dCBiL0RvY3VtZW50YXRpb24va2R1bXAva2R1bXAudHh0CmluZGV4IGI4ZTUyYzAuLjk2OTFjN2YgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2R1bXAva2R1bXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24va2R1bXAva2R1bXAudHh0CkBAIC0xMDksNyArMTA5LDcgQEAKIDIpIE9yIHVzZSB0aGUgc3lzdGVtIGtlcm5lbCBiaW5hcnkgaXRzZWxmIGFzIGR1bXAtY2FwdHVyZSBrZXJuZWwgYW5kIHRoZXJlIGlzCiAgICBubyBuZWVkIHRvIGJ1aWxkIGEgc2VwYXJhdGUgZHVtcC1jYXB0dXJlIGtlcm5lbC4gVGhpcyBpcyBwb3NzaWJsZQogICAgb25seSB3aXRoIHRoZSBhcmNoaXRlY3V0cmVzIHdoaWNoIHN1cHBvcnQgYSByZWxvY2F0YWJsZSBrZXJuZWwuIEFzCi0gICBvZiB0b2RheSBpMzg2IGFuZCBpYTY0IGFyY2hpdGVjdHVyZXMgc3VwcG9ydCByZWxvY2F0YWJsZSBrZXJuZWwuCisgICBvZiB0b2RheSwgaTM4NiwgeDg2XzY0IGFuZCBpYTY0IGFyY2hpdGVjdHVyZXMgc3VwcG9ydCByZWxvY2F0YWJsZSBrZXJuZWwuCiAKIEJ1aWxkaW5nIGEgcmVsb2NhdGFibGUga2VybmVsIGlzIGFkdmFudGFnZW91cyBmcm9tIHRoZSBwb2ludCBvZiB2aWV3IHRoYXQKIG9uZSBkb2VzIG5vdCBoYXZlIHRvIGJ1aWxkIGEgc2Vjb25kIGtlcm5lbCBmb3IgY2FwdHVyaW5nIHRoZSBkdW1wLiBCdXQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLWRvYy1uYW5vLUhPV1RPLnR4dCBiL0RvY3VtZW50YXRpb24va2VybmVsLWRvYy1uYW5vLUhPV1RPLnR4dAppbmRleCAyMDc1YzA2Li4wYmQzMjc0IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1kb2MtbmFuby1IT1dUTy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9rZXJuZWwtZG9jLW5hbm8tSE9XVE8udHh0CkBAIC0xLDYgKzEsMTA1IEBACiBrZXJuZWwtZG9jIG5hbm8tSE9XVE8KID09PT09PT09PT09PT09PT09PT09PQogCitIb3cgdG8gZm9ybWF0IGtlcm5lbC1kb2MgY29tbWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJbiBvcmRlciB0byBwcm92aWRlIGVtYmVkZGVkLCAnQycgZnJpZW5kbHksIGVhc3kgdG8gbWFpbnRhaW4sCitidXQgY29uc2lzdGVudCBhbmQgZXh0cmFjdGFibGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZnVuY3Rpb25zIGFuZAorZGF0YSBzdHJ1Y3R1cmVzIGluIHRoZSBMaW51eCBrZXJuZWwsIHRoZSBMaW51eCBrZXJuZWwgaGFzIGFkb3B0ZWQKK2EgY29uc2lzdGVudCBzdHlsZSBmb3IgZG9jdW1lbnRpbmcgZnVuY3Rpb25zIGFuZCB0aGVpciBwYXJhbWV0ZXJzLAorYW5kIHN0cnVjdHVyZXMgYW5kIHRoZWlyIG1lbWJlcnMuCisKK1RoZSBmb3JtYXQgZm9yIHRoaXMgZG9jdW1lbnRhdGlvbiBpcyBjYWxsZWQgdGhlIGtlcm5lbC1kb2MgZm9ybWF0LgorSXQgaXMgZG9jdW1lbnRlZCBpbiB0aGlzIERvY3VtZW50YXRpb24va2VybmVsLWRvYy1uYW5vLUhPV1RPLnR4dCBmaWxlLgorCitUaGlzIHN0eWxlIGVtYmVkcyB0aGUgZG9jdW1lbnRhdGlvbiB3aXRoaW4gdGhlIHNvdXJjZSBmaWxlcywgdXNpbmcKK2EgZmV3IHNpbXBsZSBjb252ZW50aW9ucy4gIFRoZSBzY3JpcHRzL2tlcm5lbC1kb2MgcGVybCBzY3JpcHQsIHNvbWUKK1NHTUwgdGVtcGxhdGVzIGluIERvY3VtZW50YXRpb24vRG9jQm9vaywgYW5kIG90aGVyIHRvb2xzIHVuZGVyc3RhbmQKK3RoZXNlIGNvbnZlbnRpb25zLCBhbmQgYXJlIHVzZWQgdG8gZXh0cmFjdCB0aGlzIGVtYmVkZGVkIGRvY3VtZW50YXRpb24KK2ludG8gdmFyaW91cyBkb2N1bWVudHMuCisKK0luIG9yZGVyIHRvIHByb3ZpZGUgZ29vZCBkb2N1bWVudGF0aW9uIG9mIGtlcm5lbCBmdW5jdGlvbnMgYW5kIGRhdGEKK3N0cnVjdHVyZXMsIHBsZWFzZSB1c2UgdGhlIGZvbGxvd2luZyBjb252ZW50aW9ucyB0byBmb3JtYXQgeW91cgora2VybmVsLWRvYyBjb21tZW50cyBpbiBMaW51eCBrZXJuZWwgc291cmNlLgorCitXZSBkZWZpbml0ZWx5IG5lZWQga2VybmVsLWRvYyBmb3JtYXR0ZWQgZG9jdW1lbnRhdGlvbiBmb3IgZnVuY3Rpb25zCit0aGF0IGFyZSBleHBvcnRlZCB0byBsb2FkYWJsZSBtb2R1bGVzIHVzaW5nIEVYUE9SVF9TWU1CT0wuCisKK1dlIGFsc28gbG9vayB0byBwcm92aWRlIGtlcm5lbC1kb2MgZm9ybWF0dGVkIGRvY3VtZW50YXRpb24gZm9yCitmdW5jdGlvbnMgZXh0ZXJuYWxseSB2aXNpYmxlIHRvIG90aGVyIGtlcm5lbCBmaWxlcyAobm90IG1hcmtlZAorInN0YXRpYyIpLgorCitXZSBhbHNvIHJlY29tbWVuZCBwcm92aWRpbmcga2VybmVsLWRvYyBmb3JtYXR0ZWQgZG9jdW1lbnRhdGlvbgorZm9yIHByaXZhdGUgKGZpbGUgInN0YXRpYyIpIHJvdXRpbmVzLCBmb3IgY29uc2lzdGVuY3kgb2Yga2VybmVsCitzb3VyY2UgY29kZSBsYXlvdXQuICBCdXQgdGhpcyBpcyBsb3dlciBwcmlvcml0eSBhbmQgYXQgdGhlCitkaXNjcmV0aW9uIG9mIHRoZSBNQUlOVEFJTkVSIG9mIHRoYXQga2VybmVsIHNvdXJjZSBmaWxlLgorCitEYXRhIHN0cnVjdHVyZXMgdmlzaWJsZSBpbiBrZXJuZWwgaW5jbHVkZSBmaWxlcyBzaG91bGQgYWxzbyBiZQorZG9jdW1lbnRlZCB1c2luZyBrZXJuZWwtZG9jIGZvcm1hdHRlZCBjb21tZW50cy4KKworVGhlIG9wZW5pbmcgY29tbWVudCBtYXJrICIvKioiIGlzIHJlc2VydmVkIGZvciBrZXJuZWwtZG9jIGNvbW1lbnRzLgorT25seSBjb21tZW50cyBzbyBtYXJrZWQgd2lsbCBiZSBjb25zaWRlcmVkIGJ5IHRoZSBrZXJuZWwtZG9jIHNjcmlwdHMsCithbmQgYW55IGNvbW1lbnQgc28gbWFya2VkIG11c3QgYmUgaW4ga2VybmVsLWRvYyBmb3JtYXQuICBEbyBub3QgdXNlCisiLyoqIiB0byBiZSBiZWdpbiBhIGNvbW1lbnQgYmxvY2sgdW5sZXNzIHRoZSBjb21tZW50IGJsb2NrIGNvbnRhaW5zCitrZXJuZWwtZG9jIGZvcm1hdHRlZCBjb21tZW50cy4gIFRoZSBjbG9zaW5nIGNvbW1lbnQgbWFya2VyIGZvcgora2VybmVsLWRvYyBjb21tZW50cyBjYW4gYmUgZWl0aGVyICIqLyIgb3IgIioqLyIuCisKK0tlcm5lbC1kb2MgY29tbWVudHMgc2hvdWxkIGJlIHBsYWNlZCBqdXN0IGJlZm9yZSB0aGUgZnVuY3Rpb24KK29yIGRhdGEgc3RydWN0dXJlIGJlaW5nIGRlc2NyaWJlZC4KKworRXhhbXBsZSBrZXJuZWwtZG9jIGZ1bmN0aW9uIGNvbW1lbnQ6CisKKy8qKgorICogZm9vYmFyKCkgLSBzaG9ydCBmdW5jdGlvbiBkZXNjcmlwdGlvbiBvZiBmb29iYXIKKyAqIEBhcmcxOglEZXNjcmliZSB0aGUgZmlyc3QgYXJndW1lbnQgdG8gZm9vYmFyLgorICogQGFyZzI6CURlc2NyaWJlIHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gZm9vYmFyLgorICoJCU9uZSBjYW4gcHJvdmlkZSBtdWx0aXBsZSBsaW5lIGRlc2NyaXB0aW9ucworICoJCWZvciBhcmd1bWVudHMuCisgKgorICogQSBsb25nZXIgZGVzY3JpcHRpb24sIHdpdGggbW9yZSBkaXNjdXNzaW9uIG9mIHRoZSBmdW5jdGlvbiBmb29iYXIoKQorICogdGhhdCBtaWdodCBiZSB1c2VmdWwgdG8gdGhvc2UgdXNpbmcgb3IgbW9kaWZ5aW5nIGl0LiAgQmVnaW5zIHdpdGgKKyAqIGVtcHR5IGNvbW1lbnQgbGluZSwgYW5kIG1heSBpbmNsdWRlIGFkZGl0aW9uYWwgZW1iZWRkZWQgZW1wdHkKKyAqIGNvbW1lbnQgbGluZXMuCisgKgorICogVGhlIGxvbmdlciBkZXNjcmlwdGlvbiBjYW4gaGF2ZSBtdWx0aXBsZSBwYXJhZ3JhcGhzLgorICoqLworCitUaGUgZmlyc3QgbGluZSwgd2l0aCB0aGUgc2hvcnQgZGVzY3JpcHRpb24sIG11c3QgYmUgb24gYSBzaW5nbGUgbGluZS4KKworVGhlIEBhcmd1bWVudCBkZXNjcmlwdGlvbnMgbXVzdCBiZWdpbiBvbiB0aGUgdmVyeSBuZXh0IGxpbmUgZm9sbG93aW5nCit0aGlzIG9wZW5pbmcgc2hvcnQgZnVuY3Rpb24gZGVzY3JpcHRpb24gbGluZSwgd2l0aCBubyBpbnRlcnZlbmluZworZW1wdHkgY29tbWVudCBsaW5lcy4KKworRXhhbXBsZSBrZXJuZWwtZG9jIGRhdGEgc3RydWN0dXJlIGNvbW1lbnQuCisKKy8qKgorICogc3RydWN0IGJsYWggLSB0aGUgYmFzaWMgYmxhaCBzdHJ1Y3R1cmUKKyAqIEBtZW0xOglkZXNjcmliZSB0aGUgZmlyc3QgbWVtYmVyIG9mIHN0cnVjdCBibGFoCisgKiBAbWVtMjoJZGVzY3JpYmUgdGhlIHNlY29uZCBtZW1iZXIgb2Ygc3RydWN0IGJsYWgsCisgKgkJcGVyaGFwcyB3aXRoIG1vcmUgbGluZXMgYW5kIHdvcmRzLgorICoKKyAqIExvbmdlciBkZXNjcmlwdGlvbiBvZiB0aGlzIHN0cnVjdHVyZS4KKyAqKi8KKworVGhlIGtlcm5lbC1kb2MgZnVuY3Rpb24gY29tbWVudHMgZGVzY3JpYmUgZWFjaCBwYXJhbWV0ZXIgdG8gdGhlCitmdW5jdGlvbiwgaW4gb3JkZXIsIHdpdGggdGhlIEBuYW1lIGxpbmVzLgorCitUaGUga2VybmVsLWRvYyBkYXRhIHN0cnVjdHVyZSBjb21tZW50cyBkZXNjcmliZSBlYWNoIHN0cnVjdHVyZSBtZW1iZXIKK2luIHRoZSBkYXRhIHN0cnVjdHVyZSwgd2l0aCB0aGUgQG5hbWUgbGluZXMuCisKK1RoZSBsb25nZXIgZGVzY3JpcHRpb24gZm9ybWF0dGluZyBpcyAicmVmbG93ZWQiLCBsb3NpbmcgeW91ciBsaW5lCiticmVha3MuICBTbyBwcmVzZW50aW5nIGNhcmVmdWxseSBmb3JtYXR0ZWQgbGlzdHMgd2l0aGluIHRoZXNlCitkZXNjcmlwdGlvbnMgd29uJ3Qgd29yayBzbyB3ZWxsOyBkZXJpdmVkIGRvY3VtZW50YXRpb24gd2lsbCBsb3NlCit0aGUgZm9ybWF0dGluZy4KKworU2VlIHRoZSBzZWN0aW9uIGJlbG93ICJIb3cgdG8gYWRkIGV4dHJhY3RhYmxlIGRvY3VtZW50YXRpb24gdG8geW91cgorc291cmNlIGZpbGVzIiBmb3IgbW9yZSBkZXRhaWxzIGFuZCBub3RlcyBvbiBob3cgdG8gZm9ybWF0IGtlcm5lbC1kb2MKK2NvbW1lbnRzLgorCitDb21wb25lbnRzIG9mIHRoZSBrZXJuZWwtZG9jIHN5c3RlbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogTWFueSBwbGFjZXMgaW4gdGhlIHNvdXJjZSB0cmVlIGhhdmUgZXh0cmFjdGFibGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUKIGZvcm0gb2YgYmxvY2sgY29tbWVudHMgYWJvdmUgZnVuY3Rpb25zLiAgVGhlIGNvbXBvbmVudHMgb2YgdGhpcyBzeXN0ZW0KIGFyZToKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLWRvY3MudHh0IGIvRG9jdW1lbnRhdGlvbi9rZXJuZWwtZG9jcy50eHQKaW5kZXggNWE0ZWY0OC4uMjhjZGMyYSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9rZXJuZWwtZG9jcy50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9rZXJuZWwtZG9jcy50eHQKQEAgLTcxNSwxNCArNzE1LDE0IEBACiAKICAgICAgKiBOYW1lOiAiR2FyeSdzIEVuY3ljbG9wZWRpYSAtIFRoZSBMaW51eCBLZXJuZWwiCiAgICAgICAgQXV0aG9yOiBHYXJ5IChJIHN1cHBvc2UuLi4pLgotICAgICAgIFVSTDogaHR0cDovL3d3dy5saXNvbGVnLm5ldC9jZ2ktYmluL2xpc29sZWcucGw/dmlldz1rZXJuZWwuaHRtCi0gICAgICAgS2V5d29yZHM6IGxpbmtzLCBub3QgZm91bmQgaGVyZT8uCisgICAgICAgVVJMOiBodHRwOi8vc2xlbmN5Y2xvcGVkaWEuYmVybGlvcy5kZS9pbmRleC5odG1sCisgICAgICAgS2V5d29yZHM6IGxpbnV4LCBjb21tdW5pdHksIGV2ZXJ5dGhpbmchCiAgICAgICAgRGVzY3JpcHRpb246IEdhcnkncyBFbmN5Y2xvcGVkaWEgZXhpc3RzIHRvIGFsbG93IHRoZSByYXBpZCBmaW5kaW5nCiAgICAgICAgb2YgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgaW5mb3JtYXRpb24gb2YgaW50ZXJlc3QgdG8gR05VL0xpbnV4CiAgICAgICAgdXNlcnMuIEl0IGhhcyBhYm91dCA0MDAwIGxpbmtzIHRvIGV4dGVybmFsIHBhZ2VzIGluIDE1MCBtYWpvcgogICAgICAgIGNhdGVnb3JpZXMuIFRoaXMgbGluayBpcyBmb3Iga2VybmVsLXNwZWNpZmljIGxpbmtzLCBkb2N1bWVudHMsCi0gICAgICAgc2l0ZXMuLi4gTG9vayB0aGVyZSBpZiB5b3UgY291bGQgbm90IGZpbmQgaGVyZSB3aGF0IHlvdSB3ZXJlCi0gICAgICAgbG9va2luZyBmb3IuCisgICAgICAgc2l0ZXMuLi4gIFRoaXMgbGlzdCBpcyBub3cgaG9zdGVkIGJ5IGRldmVsb3Blci5CZXJsaW9zLmRlLAorICAgICAgIGJ1dCBzZWVtcyBub3QgdG8gaGF2ZSBiZWVuIHVwZGF0ZWQgc2luY2Ugc29tZXRpbWUgaW4gMTk5OS4KIAogICAgICAqIE5hbWU6ICJUaGUgaG9tZSBwYWdlIG9mIExpbnV4LU1NIgogICAgICAgIEF1dGhvcjogVGhlIExpbnV4LU1NIHRlYW0uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCBiL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CmluZGV4IGUwN2M0MzIuLjY4MWQ2MTUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CisrKyBiL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0CkBAIC0yNzEsNiArMjcxLDE3IEBACiAJYWljNzl4eD0JW0hXLFNDU0ldCiAJCQlTZWUgRG9jdW1lbnRhdGlvbi9zY3NpL2FpYzc5eHgudHh0LgogCisJYW1kX2lvbW11PQlbSFcsWDg2LTg0XQorCQkJUGFzcyBwYXJhbWV0ZXJzIHRvIHRoZSBBTUQgSU9NTVUgZHJpdmVyIGluIHRoZSBzeXN0ZW0uCisJCQlQb3NzaWJsZSB2YWx1ZXMgYXJlOgorCQkJaXNvbGF0ZSAtIGVuYWJsZSBkZXZpY2UgaXNvbGF0aW9uIChlYWNoIGRldmljZSwgYXMgZmFyCisJCQkgICAgICAgICAgYXMgcG9zc2libGUsIHdpbGwgZ2V0IGl0cyBvd24gcHJvdGVjdGlvbgorCQkJICAgICAgICAgIGRvbWFpbikKKwlhbWRfaW9tbXVfc2l6ZT0gW0hXLFg4Ni02NF0KKwkJCURlZmluZSB0aGUgc2l6ZSBvZiB0aGUgYXBlcnR1cmUgZm9yIHRoZSBBTUQgSU9NTVUKKwkJCWRyaXZlci4gUG9zc2libGUgdmFsdWVzIGFyZToKKwkJCSczMk0nLCAnNjRNJyAoZGVmYXVsdCksICcxMjhNJywgJzI1Nk0nLCAnNTEyTScsICcxRycKKwogCWFtaWpveS5tYXA9CVtIVyxKT1ldIEFtaWdhIGpveXN0aWNrIHN1cHBvcnQKIAkJCU1hcCBvZiBkZXZpY2VzIGF0dGFjaGVkIHRvIEpPWTBEQVQgYW5kIEpPWTFEQVQKIAkJCUZvcm1hdDogPGE+LDxiPgpAQCAtMjk1LDcgKzMwNiw3IEBACiAJCQl3aGVuIGluaXRpYWxpc2luZyB0aGUgQVBJQyBhbmQgSU8tQVBJQyBjb21wb25lbnRzLgogCiAJYXBtPQkJW0FQTV0gQWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudAotCQkJU2VlIGhlYWRlciBvZiBhcmNoL2kzODYva2VybmVsL2FwbS5jLgorCQkJU2VlIGhlYWRlciBvZiBhcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMuCiAKIAlhcmNyaW1pPQlbSFcsTkVUXSBBUkNuZXQgLSAiUklNIEkiIChlbnRpcmVseSBtZW0tbWFwcGVkKSBjYXJkcwogCQkJRm9ybWF0OiA8aW8+LDxpcnE+LDxub2RlSUQ+CkBAIC01NjAsNiArNTcxLDggQEAKIAogCWRlYnVnX29iamVjdHMJW0tOTF0gRW5hYmxlIG9iamVjdCBkZWJ1Z2dpbmcKIAorCWRlYnVncGF0CVtYODZdIEVuYWJsZSBQQVQgZGVidWdnaW5nCisKIAlkZWNuZXQuYWRkcj0JW0hXLE5FVF0KIAkJCUZvcm1hdDogPGFyZWE+Wyw8bm9kZT5dCiAJCQlTZWUgYWxzbyBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGVjbmV0LnR4dC4KQEAgLTU5OSw2ICs2MTIsMjkgQEAKIAkJCVNlZSBkcml2ZXJzL2NoYXIvUkVBRE1FLmVwY2EgYW5kCiAJCQlEb2N1bWVudGF0aW9uL2RpZ2llcGNhLnR4dC4KIAorCWRpc2FibGVfbXRycl9jbGVhbnVwIFtYODZdCisJZW5hYmxlX210cnJfY2xlYW51cCBbWDg2XQorCQkJVGhlIGtlcm5lbCB0cmllcyB0byBhZGp1c3QgTVRSUiBsYXlvdXQgZnJvbSBjb250aW51b3VzCisJCQl0byBkaXNjcmV0ZSwgdG8gbWFrZSBYIHNlcnZlciBkcml2ZXIgYWJsZSB0byBhZGQgV0IKKwkJCWVudHJ5IGxhdGVyLiBUaGlzIHBhcmFtZXRlciBlbmFibGVzL2Rpc2FibGVzIHRoYXQuCisKKwltdHJyX2NodW5rX3NpemU9bm5bS01HXSBbWDg2XQorCQkJdXNlZCBmb3IgbXRyciBjbGVhbnVwLiBJdCBpcyBsYXJnZXN0IGNvbnRpbm91cyBjaHVuaworCQkJdGhhdCBjb3VsZCBob2xkIGhvbGVzIGFrYS4gVUMgZW50cmllcy4KKworCW10cnJfZ3Jhbl9zaXplPW5uW0tNR10gW1g4Nl0KKwkJCVVzZWQgZm9yIG10cnIgY2xlYW51cC4gSXQgaXMgZ3JhbnVsYXJpdHkgb2YgbXRyciBibG9jay4KKwkJCURlZmF1bHQgaXMgMS4KKwkJCUxhcmdlIHZhbHVlIGNvdWxkIHByZXZlbnQgc21hbGwgYWxpZ25tZW50IGZyb20KKwkJCXVzaW5nIHVwIE1UUlJzLgorCisJbXRycl9zcGFyZV9yZWdfbnI9biBbWDg2XQorCQkJRm9ybWF0OiA8aW50ZWdlcj4KKwkJCVJhbmdlOiAwLDcgOiBzcGFyZSByZWcgbnVtYmVyCisJCQlEZWZhdWx0IDogMQorCQkJVXNlZCBmb3IgbXRyciBjbGVhbnVwLiBJdCBpcyBzcGFyZSBtdHJyIGVudHJpZXMgbnVtYmVyLgorCQkJU2V0IHRvIDIgb3IgbW9yZSBpZiB5b3VyIGdyYXBoaWNhbCBjYXJkIG5lZWRzIG1vcmUuCisKIAlkaXNhYmxlX210cnJfdHJpbSBbWDg2LCBJbnRlbCBhbmQgQU1EIG9ubHldCiAJCQlCeSBkZWZhdWx0IHRoZSBrZXJuZWwgd2lsbCB0cmltIGFueSB1bmNhY2hlYWJsZQogCQkJbWVtb3J5IG91dCBvZiB5b3VyIGF2YWlsYWJsZSBtZW1vcnkgcG9vbCBiYXNlZCBvbgpAQCAtNjM4LDcgKzY3NCw3IEBACiAKIAllbGFuZnJlcT0JW1g4Ni0zMl0KIAkJCVNlZSBjb21tZW50IGJlZm9yZSBmdW5jdGlvbiBlbGFuZnJlcV9zZXR1cCgpIGluCi0JCQlhcmNoL2kzODYva2VybmVsL2NwdS9jcHVmcmVxL2VsYW5mcmVxLmMuCisJCQlhcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvZWxhbmZyZXEuYy4KIAogCWVsZXZhdG9yPQlbSU9TQ0hFRF0KIAkJCUZvcm1hdDogeyJhbnRpY2lwYXRvcnkiIHwgImNmcSIgfCAiZGVhZGxpbmUiIHwgIm5vb3AifQpAQCAtMTIwOCw2ICsxMjQ0LDExIEBACiAJbXRkcGFydHM9CVtNVERdCiAJCQlTZWUgZHJpdmVycy9tdGQvY21kbGluZXBhcnQuYy4KIAorCW10ZHNldD0JCVtBUk1dCisJCQlBUk0vUzNDMjQxMiBKSVZFIGJvb3QgY29udHJvbAorCisJCQlTZWUgYXJjaC9hcm0vbWFjaC1zM2MyNDEyL21hY2gtaml2ZS5jCisKIAltdG91Y2h1c2IucmF3X2Nvb3JkaW5hdGVzPQogCQkJW0hXXSBNYWtlIHRoZSBNaWNyb1RvdWNoIFVTQiBkcml2ZXIgdXNlIHJhdyBjb29yZGluYXRlcwogCQkJKCd5JywgZGVmYXVsdCkgb3IgY29va2VkIGNvb3JkaW5hdGVzICgnbicpCkBAIC0xNjc5LDYgKzE3MjAsMTAgQEAKIAkJCUZvcm1hdDogPHJlYm9vdF9tb2RlPlssPHJlYm9vdF9tb2RlMj5bLC4uLl1dCiAJCQlTZWUgYXJjaC8qL2tlcm5lbC9yZWJvb3QuYyBvciBhcmNoLyova2VybmVsL3Byb2Nlc3MuYwkJCQogCisJcmVsYXhfZG9tYWluX2xldmVsPQorCQkJW0tOTCwgU01QXSBTZXQgc2NoZWR1bGVyJ3MgZGVmYXVsdCByZWxheF9kb21haW5fbGV2ZWwuCisJCQlTZWUgRG9jdW1lbnRhdGlvbi9jcHVzZXRzLnR4dC4KKwogCXJlc2VydmU9CVtLTkwsQlVHU10gRm9yY2UgdGhlIGtlcm5lbCB0byBpZ25vcmUgc29tZSBpb21lbSBhcmVhCiAKIAlyZXNlcnZldG9wPQlbWDg2LTMyXQpAQCAtMjExMiw2ICsyMTU3LDkgQEAKIAl1c2JoaWQubW91c2Vwb2xsPQogCQkJW1VTQkhJRF0gVGhlIGludGVydmFsIHdoaWNoIG1pY2UgYXJlIHRvIGJlIHBvbGxlZCBhdC4KIAorCWFkZF9lZmlfbWVtbWFwCVtFRkk7IHg4Ni0zMixYODYtNjRdIEluY2x1ZGUgRUZJIG1lbW9yeSBtYXAgaW4KKwkJCWtlcm5lbCdzIG1hcCBvZiBhdmFpbGFibGUgcGh5c2ljYWwgUkFNLgorCiAJdmRzbz0JCVtYODYtMzIsU0gseDg2LTY0XQogCQkJdmRzbz0yOiBlbmFibGUgY29tcGF0IFZEU08gKGRlZmF1bHQgd2l0aCBDT01QQVRfVkRTTykKIAkJCXZkc289MTogZW5hYmxlIFZEU08gKGRlZmF1bHQpCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2tvYmplY3QudHh0IGIvRG9jdW1lbnRhdGlvbi9rb2JqZWN0LnR4dAppbmRleCBiZjMyNTZlLi41MWE4MDIxIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL2tvYmplY3QudHh0CisrKyBiL0RvY3VtZW50YXRpb24va29iamVjdC50eHQKQEAgLTMwNSw3ICszMDUsNyBAQAogCiBBIGtzZXQga2VlcHMgaXRzIGNoaWxkcmVuIGluIGEgc3RhbmRhcmQga2VybmVsIGxpbmtlZCBsaXN0LiAgS29iamVjdHMgcG9pbnQKIGJhY2sgdG8gdGhlaXIgY29udGFpbmluZyBrc2V0IHZpYSB0aGVpciBrc2V0IGZpZWxkLiBJbiBhbG1vc3QgYWxsIGNhc2VzLAotdGhlIGtvYmplY3RzIGJlbG9uZ2luZyB0byBhIGtldCBoYXZlIHRoYXQga3NldCAob3IsIHN0cmljdGx5LCBpdHMgZW1iZWRkZWQKK3RoZSBrb2JqZWN0cyBiZWxvbmdpbmcgdG8gYSBrc2V0IGhhdmUgdGhhdCBrc2V0IChvciwgc3RyaWN0bHksIGl0cyBlbWJlZGRlZAoga29iamVjdCkgaW4gdGhlaXIgcGFyZW50LgogCiBBcyBhIGtzZXQgY29udGFpbnMgYSBrb2JqZWN0IHdpdGhpbiBpdCwgaXQgc2hvdWxkIGFsd2F5cyBiZSBkeW5hbWljYWxseQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9sYXB0b3BzL3RoaW5rcGFkLWFjcGkudHh0IGIvRG9jdW1lbnRhdGlvbi9sYXB0b3BzL3RoaW5rcGFkLWFjcGkudHh0CmluZGV4IDAxYzZjM2QuLjY0YjNmMTQgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbGFwdG9wcy90aGlua3BhZC1hY3BpLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL2xhcHRvcHMvdGhpbmtwYWQtYWNwaS50eHQKQEAgLTUwMyw3ICs1MDMsNyBAQAogSW4gYWRkaXRpb24gdG8gdGhlIEVWX0tFWSBldmVudHMsIHRoaW5rcGFkLWFjcGkgbWF5IGFsc28gaXNzdWUgRVZfU1cKIGV2ZW50cyBmb3Igc3dpdGNoZXM6CiAKLVNXX1JBRElPCVQ2MCBhbmQgbGF0ZXIgaGFyZGFyZSByZmtpbGwgcm9ja2VyIHN3aXRjaAorU1dfUkZLSUxMX0FMTAlUNjAgYW5kIGxhdGVyIGhhcmRhcmUgcmZraWxsIHJvY2tlciBzd2l0Y2gKIFNXX1RBQkxFVF9NT0RFCVRhYmxldCBUaGlua1BhZHMgSEtFWSBldmVudHMgMHg1MDA5IGFuZCAweDUwMEEKIAogTm9uIGhvdC1rZXkgQUNQSSBIS0VZIGV2ZW50IG1hcDoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbGd1ZXN0L2xndWVzdC5jIGIvRG9jdW1lbnRhdGlvbi9sZ3Vlc3QvbGd1ZXN0LmMKaW5kZXggM2JlOGFiMi4uODJmYWZlMCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9sZ3Vlc3QvbGd1ZXN0LmMKKysrIGIvRG9jdW1lbnRhdGlvbi9sZ3Vlc3QvbGd1ZXN0LmMKQEAgLTE1Nyw2ICsxNTcsOSBAQAogCiAJLyogVGhlIHJvdXRpbmUgdG8gY2FsbCB3aGVuIHRoZSBHdWVzdCBwaW5ncyB1cy4gKi8KIAl2b2lkICgqaGFuZGxlX291dHB1dCkoaW50IGZkLCBzdHJ1Y3QgdmlydHF1ZXVlICptZSk7CisKKwkvKiBPdXRzdGFuZGluZyBidWZmZXJzICovCisJdW5zaWduZWQgaW50IGluZmxpZ2h0OwogfTsKIAogLyogUmVtZW1iZXIgdGhlIGFyZ3VtZW50cyB0byB0aGUgcHJvZ3JhbSBzbyB3ZSBjYW4gInJlYm9vdCIgKi8KQEAgLTcwMiw2ICs3MDUsNyBAQAogCQkJZXJyeCgxLCAiTG9vcGVkIGRlc2NyaXB0b3IiKTsKIAl9IHdoaWxlICgoaSA9IG5leHRfZGVzYyh2cSwgaSkpICE9IHZxLT52cmluZy5udW0pOwogCisJdnEtPmluZmxpZ2h0Kys7CiAJcmV0dXJuIGhlYWQ7CiB9CiAKQEAgLTcxOSw2ICs3MjMsNyBAQAogCS8qIE1ha2Ugc3VyZSBidWZmZXIgaXMgd3JpdHRlbiBiZWZvcmUgd2UgdXBkYXRlIGluZGV4LiAqLwogCXdtYigpOwogCXZxLT52cmluZy51c2VkLT5pZHgrKzsKKwl2cS0+aW5mbGlnaHQtLTsKIH0KIAogLyogVGhpcyBhY3R1YWxseSBzZW5kcyB0aGUgaW50ZXJydXB0IGZvciB0aGlzIHZpcnRxdWV1ZSAqLwpAQCAtNzI2LDggKzczMSw5IEBACiB7CiAJdW5zaWduZWQgbG9uZyBidWZbXSA9IHsgTEhSRVFfSVJRLCB2cS0+Y29uZmlnLmlycSB9OwogCi0JLyogSWYgdGhleSBkb24ndCB3YW50IGFuIGludGVycnVwdCwgZG9uJ3Qgc2VuZCBvbmUuICovCi0JaWYgKHZxLT52cmluZy5hdmFpbC0+ZmxhZ3MgJiBWUklOR19BVkFJTF9GX05PX0lOVEVSUlVQVCkKKwkvKiBJZiB0aGV5IGRvbid0IHdhbnQgYW4gaW50ZXJydXB0LCBkb24ndCBzZW5kIG9uZSwgdW5sZXNzIGVtcHR5LiAqLworCWlmICgodnEtPnZyaW5nLmF2YWlsLT5mbGFncyAmIFZSSU5HX0FWQUlMX0ZfTk9fSU5URVJSVVBUKQorCSAgICAmJiB2cS0+aW5mbGlnaHQpCiAJCXJldHVybjsKIAogCS8qIFNlbmQgdGhlIEd1ZXN0IGFuIGludGVycnVwdCB0ZWxsIHRoZW0gd2UgdXNlZCBzb21ldGhpbmcgdXAuICovCkBAIC0xMTA3LDYgKzExMTMsNyBAQAogCXZxLT5uZXh0ID0gTlVMTDsKIAl2cS0+bGFzdF9hdmFpbF9pZHggPSAwOwogCXZxLT5kZXYgPSBkZXY7CisJdnEtPmluZmxpZ2h0ID0gMDsKIAogCS8qIEluaXRpYWxpemUgdGhlIGNvbmZpZ3VyYXRpb24uICovCiAJdnEtPmNvbmZpZy5udW0gPSBudW1fZGVzY3M7CkBAIC0xMzY4LDYgKzEzNzUsNyBAQAogCiAJLyogVGVsbCBHdWVzdCB3aGF0IE1BQyBhZGRyZXNzIHRvIHVzZS4gKi8KIAlhZGRfZmVhdHVyZShkZXYsIFZJUlRJT19ORVRfRl9NQUMpOworCWFkZF9mZWF0dXJlKGRldiwgVklSVElPX0ZfTk9USUZZX09OX0VNUFRZKTsKIAlzZXRfY29uZmlnKGRldiwgc2l6ZW9mKGNvbmYpLCAmY29uZik7CiAKIAkvKiBXZSBkb24ndCBuZWVkIHRoZSBzb2NrZXQgYW55IG1vcmU7IHNldHVwIGlzIGRvbmUuICovCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvYXJjbmV0LnR4dCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9hcmNuZXQudHh0CmluZGV4IDc3MGZjNDEuLjc5NjAxMjUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9hcmNuZXQudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9hcmNuZXQudHh0CkBAIC00Niw3ICs0Niw3IEBACiAKIAogVGhpcyBuZXcgcmVsZWFzZSAoMi45MSkgaGFzIGJlZW4gcHV0IHRvZ2V0aGVyIGJ5IERhdmlkIFdvb2Rob3VzZSAKLTxkd213MkBjYW0uYWMudWs+LCBpbiBhbiBhdHRlbXB0IHRvIHRpZHkgdXAgdGhlIGRyaXZlciBhZnRlciBhZGRpbmcgc3VwcG9ydCAKKzxkd213MkBpbmZyYWRlYWQub3JnPiwgaW4gYW4gYXR0ZW1wdCB0byB0aWR5IHVwIHRoZSBkcml2ZXIgYWZ0ZXIgYWRkaW5nIHN1cHBvcnQKIGZvciB5ZXQgYW5vdGhlciBjaGlwc2V0LiBOb3cgdGhlIGdlbmVyaWMgc3VwcG9ydCBoYXMgYmVlbiBzZXBhcmF0ZWQgZnJvbSB0aGUKIGluZGl2aWR1YWwgY2hpcHNldCBkcml2ZXJzLCBhbmQgdGhlIHNvdXJjZSBmaWxlcyBhcmVuJ3QgcXVpdGUgc28gcGFja2VkIHdpdGgKICNpZmRlZnMhIEkndmUgY2hhbmdlZCB0aGlzIGZpbGUgYSBiaXQsIGJ1dCBrZXB0IGl0IGluIHRoZSBmaXJzdCBwZXJzb24gZnJvbQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2JyaWRnZS50eHQgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvYnJpZGdlLnR4dAppbmRleCBiZGFlMmRiLi5iZWM2OWE4IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvYnJpZGdlLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvYnJpZGdlLnR4dApAQCAtMSw2ICsxLDYgQEAKIEluIG9yZGVyIHRvIHVzZSB0aGUgRXRoZXJuZXQgYnJpZGdpbmcgZnVuY3Rpb25hbGl0eSwgeW91J2xsIG5lZWQgdGhlCiB1c2Vyc3BhY2UgdG9vbHMuIFRoZXNlIHByb2dyYW1zIGFuZCBkb2N1bWVudGF0aW9uIGFyZSBhdmFpbGFibGUKLWF0IGh0dHA6Ly9icmlkZ2Uuc291cmNlZm9yZ2UubmV0LiAgVGhlIGRvd25sb2FkIHBhZ2UgaXMKK2F0IGh0dHA6Ly93d3cubGludXgtZm91bmRhdGlvbi5vcmcvZW4vTmV0OkJyaWRnZS4gIFRoZSBkb3dubG9hZCBwYWdlIGlzCiBodHRwOi8vcHJkb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L2JyaWRnZS4KIAogSWYgeW91IHN0aWxsIGhhdmUgcXVlc3Rpb25zLCBkb24ndCBoZXNpdGF0ZSB0byBwb3N0IHRvIHRoZSBtYWlsaW5nIGxpc3QgCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvaXAtc3lzY3RsLnR4dCBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CmluZGV4IDE3YTZlNDYuLjk0NmI2NmUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9pcC1zeXNjdGwudHh0CkBAIC04MSwyMyArODEsMjMgQEAKIAlNaW5pbXVtIHRpbWUtdG8tbGl2ZSBvZiBlbnRyaWVzLiAgU2hvdWxkIGJlIGVub3VnaCB0byBjb3ZlciBmcmFnbWVudAogCXRpbWUtdG8tbGl2ZSBvbiB0aGUgcmVhc3NlbWJsaW5nIHNpZGUuICBUaGlzIG1pbmltdW0gdGltZS10by1saXZlICBpcwogCWd1YXJhbnRlZWQgaWYgdGhlIHBvb2wgc2l6ZSBpcyBsZXNzIHRoYW4gaW5ldF9wZWVyX3RocmVzaG9sZC4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9tYXh0dGwgLSBJTlRFR0VSCiAJTWF4aW11bSB0aW1lLXRvLWxpdmUgb2YgZW50cmllcy4gIFVudXNlZCBlbnRyaWVzIHdpbGwgZXhwaXJlIGFmdGVyCiAJdGhpcyBwZXJpb2Qgb2YgdGltZSBpZiB0aGVyZSBpcyBubyBtZW1vcnkgcHJlc3N1cmUgb24gdGhlIHBvb2wgKGkuZS4KIAl3aGVuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgcG9vbCBpcyB2ZXJ5IHNtYWxsKS4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9nY19taW50aW1lIC0gSU5URUdFUgogCU1pbmltdW0gaW50ZXJ2YWwgYmV0d2VlbiBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzLiAgVGhpcyBpbnRlcnZhbCBpcwogCWluIGVmZmVjdCB1bmRlciBoaWdoIG1lbW9yeSBwcmVzc3VyZSBvbiB0aGUgcG9vbC4KLQlNZWFzdXJlZCBpbiBqaWZmaWVzKDEpLgorCU1lYXN1cmVkIGluIHNlY29uZHMuCiAKIGluZXRfcGVlcl9nY19tYXh0aW1lIC0gSU5URUdFUgogCU1pbmltdW0gaW50ZXJ2YWwgYmV0d2VlbiBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzLiAgVGhpcyBpbnRlcnZhbCBpcwogCWluIGVmZmVjdCB1bmRlciBsb3cgKG9yIGFic2VudCkgbWVtb3J5IHByZXNzdXJlIG9uIHRoZSBwb29sLgotCU1lYXN1cmVkIGluIGppZmZpZXMoMSkuCisJTWVhc3VyZWQgaW4gc2Vjb25kcy4KIAogVENQIHZhcmlhYmxlczogCiAKQEAgLTE0OCw5ICsxNDgsOSBAQAogCWJ1dCBub3QgbG9hZGVkLgogCiB0Y3BfYmFzZV9tc3MgLSBJTlRFR0VSCi0JVGhlIGluaXRpYWwgdmFsdWUgb2Ygc2VhcmNoX2xvdyB0byBiZSB1c2VkIGJ5IFBhY2tldGl6YXRpb24gTGF5ZXIKLQlQYXRoIE1UVSBEaXNjb3ZlcnkgKE1UVSBwcm9iaW5nKS4gIElmIE1UVSBwcm9iaW5nIGlzIGVuYWJsZWQsCi0JdGhpcyBpcyB0aGUgaW5pdGFsIE1TUyB1c2VkIGJ5IHRoZSBjb25uZWN0aW9uLgorCVRoZSBpbml0aWFsIHZhbHVlIG9mIHNlYXJjaF9sb3cgdG8gYmUgdXNlZCBieSB0aGUgcGFja2V0aXphdGlvbiBsYXllcgorCVBhdGggTVRVIGRpc2NvdmVyeSAoTVRVIHByb2JpbmcpLiAgSWYgTVRVIHByb2JpbmcgaXMgZW5hYmxlZCwKKwl0aGlzIGlzIHRoZSBpbml0aWFsIE1TUyB1c2VkIGJ5IHRoZSBjb25uZWN0aW9uLgogCiB0Y3BfY29uZ2VzdGlvbl9jb250cm9sIC0gU1RSSU5HCiAJU2V0IHRoZSBjb25nZXN0aW9uIGNvbnRyb2wgYWxnb3JpdGhtIHRvIGJlIHVzZWQgZm9yIG5ldwpAQCAtMTg1LDEwICsxODUsOSBAQAogCXRpbWVvdXRzLiAgSXQgaXMgcGFydGljdWxhcmx5IGJlbmVmaWNpYWwgaW4gd2lyZWxlc3MgZW52aXJvbm1lbnRzCiAJd2hlcmUgcGFja2V0IGxvc3MgaXMgdHlwaWNhbGx5IGR1ZSB0byByYW5kb20gcmFkaW8gaW50ZXJmZXJlbmNlCiAJcmF0aGVyIHRoYW4gaW50ZXJtZWRpYXRlIHJvdXRlciBjb25nZXN0aW9uLiAgRi1SVE8gaXMgc2VuZGVyLXNpZGUKLQlvbmx5IG1vZGlmaWNhdGlvbi4gIFRoZXJlZm9yZSBpdCBkb2VzIG5vdCByZXF1aXJlIGFueSBzdXBwb3J0IGZyb20KLQl0aGUgcGVlciwgYnV0IGluIGEgdHlwaWNhbCBjYXNlLCBob3dldmVyLCB3aGVyZSB3aXJlbGVzcyBsaW5rIGlzCi0JdGhlIGxvY2FsIGFjY2VzcyBsaW5rIGFuZCBtb3N0IG9mIHRoZSBkYXRhIGZsb3dzIGRvd25saW5rLCB0aGUKLQlmYXJhd2F5IHNlcnZlcnMgc2hvdWxkIGhhdmUgRi1SVE8gZW5hYmxlZCB0byB0YWtlIGFkdmFudGFnZSBvZiBpdC4KKwlvbmx5IG1vZGlmaWNhdGlvbi4gVGhlcmVmb3JlIGl0IGRvZXMgbm90IHJlcXVpcmUgYW55IHN1cHBvcnQgZnJvbQorCXRoZSBwZWVyLgorCiAJSWYgc2V0IHRvIDEsIGJhc2ljIHZlcnNpb24gaXMgZW5hYmxlZC4gIDIgZW5hYmxlcyBTQUNLIGVuaGFuY2VkCiAJRi1SVE8gaWYgZmxvdyB1c2VzIFNBQ0suICBUaGUgYmFzaWMgdmVyc2lvbiBjYW4gYmUgdXNlZCBhbHNvIHdoZW4KIAlTQUNLIGlzIGluIHVzZSB0aG91Z2ggc2NlbmFyaW8ocykgd2l0aCBpdCBleGlzdHMgd2hlcmUgRi1SVE8KQEAgLTI3Niw3ICsyNzUsNyBAQAogCW1lbW9yeS4KIAogdGNwX21vZGVyYXRlX3JjdmJ1ZiAtIEJPT0xFQU4KLQlJZiBzZXQsIFRDUCBwZXJmb3JtcyByZWNlaXZlIGJ1ZmZlciBhdXRvdHVuaW5nLCBhdHRlbXB0aW5nIHRvCisJSWYgc2V0LCBUQ1AgcGVyZm9ybXMgcmVjZWl2ZSBidWZmZXIgYXV0by10dW5pbmcsIGF0dGVtcHRpbmcgdG8KIAlhdXRvbWF0aWNhbGx5IHNpemUgdGhlIGJ1ZmZlciAobm8gZ3JlYXRlciB0aGFuIHRjcF9ybWVtWzJdKSB0bwogCW1hdGNoIHRoZSBzaXplIHJlcXVpcmVkIGJ5IHRoZSBwYXRoIGZvciBmdWxsIHRocm91Z2hwdXQuICBFbmFibGVkIGJ5CiAJZGVmYXVsdC4KQEAgLTMzNiw3ICszMzUsNyBAQAogCXByZXNzdXJlLgogCURlZmF1bHQ6IDhLCiAKLQlkZWZhdWx0OiBkZWZhdWx0IHNpemUgb2YgcmVjZWl2ZSBidWZmZXIgdXNlZCBieSBUQ1Agc29ja2V0cy4KKwlkZWZhdWx0OiBpbml0aWFsIHNpemUgb2YgcmVjZWl2ZSBidWZmZXIgdXNlZCBieSBUQ1Agc29ja2V0cy4KIAlUaGlzIHZhbHVlIG92ZXJyaWRlcyBuZXQuY29yZS5ybWVtX2RlZmF1bHQgdXNlZCBieSBvdGhlciBwcm90b2NvbHMuCiAJRGVmYXVsdDogODczODAgYnl0ZXMuIFRoaXMgdmFsdWUgcmVzdWx0cyBpbiB3aW5kb3cgb2YgNjU1MzUgd2l0aAogCWRlZmF1bHQgc2V0dGluZyBvZiB0Y3BfYWR2X3dpbl9zY2FsZSBhbmQgdGNwX2FwcF93aW46MCBhbmQgYSBiaXQKQEAgLTM0NCw4ICszNDMsMTAgQEAKIAogCW1heDogbWF4aW1hbCBzaXplIG9mIHJlY2VpdmUgYnVmZmVyIGFsbG93ZWQgZm9yIGF1dG9tYXRpY2FsbHkKIAlzZWxlY3RlZCByZWNlaXZlciBidWZmZXJzIGZvciBUQ1Agc29ja2V0LiBUaGlzIHZhbHVlIGRvZXMgbm90IG92ZXJyaWRlCi0JbmV0LmNvcmUucm1lbV9tYXgsICJzdGF0aWMiIHNlbGVjdGlvbiB2aWEgU09fUkNWQlVGIGRvZXMgbm90IHVzZSB0aGlzLgotCURlZmF1bHQ6IDg3MzgwKjIgYnl0ZXMuCisJbmV0LmNvcmUucm1lbV9tYXguICBDYWxsaW5nIHNldHNvY2tvcHQoKSB3aXRoIFNPX1JDVkJVRiBkaXNhYmxlcworCWF1dG9tYXRpYyB0dW5pbmcgb2YgdGhhdCBzb2NrZXQncyByZWNlaXZlIGJ1ZmZlciBzaXplLCBpbiB3aGljaAorCWNhc2UgdGhpcyB2YWx1ZSBpcyBpZ25vcmVkLgorCURlZmF1bHQ6IGJldHdlZW4gODczODBCIGFuZCA0TUIsIGRlcGVuZGluZyBvbiBSQU0gc2l6ZS4KIAogdGNwX3NhY2sgLSBCT09MRUFOCiAJRW5hYmxlIHNlbGVjdCBhY2tub3dsZWRnbWVudHMgKFNBQ0tTKS4KQEAgLTM1OCw3ICszNTksNyBAQAogCURlZmF1bHQ6IDEKIAogdGNwX3N0ZHVyZyAtIEJPT0xFQU4KLQlVc2UgdGhlIEhvc3QgcmVxdWlyZW1lbnRzIGludGVycHJldGF0aW9uIG9mIHRoZSBUQ1AgdXJnIHBvaW50ZXIgZmllbGQuCisJVXNlIHRoZSBIb3N0IHJlcXVpcmVtZW50cyBpbnRlcnByZXRhdGlvbiBvZiB0aGUgVENQIHVyZ2VudCBwb2ludGVyIGZpZWxkLgogCU1vc3QgaG9zdHMgdXNlIHRoZSBvbGRlciBCU0QgaW50ZXJwcmV0YXRpb24sIHNvIGlmIHlvdSB0dXJuIHRoaXMgb24KIAlMaW51eCBtaWdodCBub3QgY29tbXVuaWNhdGUgY29ycmVjdGx5IHdpdGggdGhlbS4KIAlEZWZhdWx0OiBGQUxTRQpAQCAtMzcxLDEyICszNzIsMTIgQEAKIHRjcF9zeW5jb29raWVzIC0gQk9PTEVBTgogCU9ubHkgdmFsaWQgd2hlbiB0aGUga2VybmVsIHdhcyBjb21waWxlZCB3aXRoIENPTkZJR19TWU5DT09LSUVTCiAJU2VuZCBvdXQgc3luY29va2llcyB3aGVuIHRoZSBzeW4gYmFja2xvZyBxdWV1ZSBvZiBhIHNvY2tldAotCW92ZXJmbG93cy4gVGhpcyBpcyB0byBwcmV2ZW50IGFnYWluc3QgdGhlIGNvbW1vbiAnc3luIGZsb29kIGF0dGFjaycKKwlvdmVyZmxvd3MuIFRoaXMgaXMgdG8gcHJldmVudCBhZ2FpbnN0IHRoZSBjb21tb24gJ1NZTiBmbG9vZCBhdHRhY2snCiAJRGVmYXVsdDogRkFMU0UKIAogCU5vdGUsIHRoYXQgc3luY29va2llcyBpcyBmYWxsYmFjayBmYWNpbGl0eS4KIAlJdCBNVVNUIE5PVCBiZSB1c2VkIHRvIGhlbHAgaGlnaGx5IGxvYWRlZCBzZXJ2ZXJzIHRvIHN0YW5kCi0JYWdhaW5zdCBsZWdhbCBjb25uZWN0aW9uIHJhdGUuIElmIHlvdSBzZWUgc3luZmxvb2Qgd2FybmluZ3MKKwlhZ2FpbnN0IGxlZ2FsIGNvbm5lY3Rpb24gcmF0ZS4gSWYgeW91IHNlZSBTWU4gZmxvb2Qgd2FybmluZ3MKIAlpbiB5b3VyIGxvZ3MsIGJ1dCBpbnZlc3RpZ2F0aW9uCXNob3dzIHRoYXQgdGhleSBvY2N1cgogCWJlY2F1c2Ugb2Ygb3ZlcmxvYWQgd2l0aCBsZWdhbCBjb25uZWN0aW9ucywgeW91IHNob3VsZCB0dW5lCiAJYW5vdGhlciBwYXJhbWV0ZXJzIHVudGlsIHRoaXMgd2FybmluZyBkaXNhcHBlYXIuCkBAIC0zODYsNyArMzg3LDcgQEAKIAl0byB1c2UgVENQIGV4dGVuc2lvbnMsIGNhbiByZXN1bHQgaW4gc2VyaW91cyBkZWdyYWRhdGlvbgogCW9mIHNvbWUgc2VydmljZXMgKGYuZS4gU01UUCByZWxheWluZyksIHZpc2libGUgbm90IGJ5IHlvdSwKIAlidXQgeW91ciBjbGllbnRzIGFuZCByZWxheXMsIGNvbnRhY3RpbmcgeW91LiBXaGlsZSB5b3Ugc2VlCi0Jc3luZmxvb2Qgd2FybmluZ3MgaW4gbG9ncyBub3QgYmVpbmcgcmVhbGx5IGZsb29kZWQsIHlvdXIgc2VydmVyCisJU1lOIGZsb29kIHdhcm5pbmdzIGluIGxvZ3Mgbm90IGJlaW5nIHJlYWxseSBmbG9vZGVkLCB5b3VyIHNlcnZlcgogCWlzIHNlcmlvdXNseSBtaXNjb25maWd1cmVkLgogCiB0Y3Bfc3luX3JldHJpZXMgLSBJTlRFR0VSCkBAIC00MTksMTkgKzQyMCwyMSBAQAogCUVuYWJsZSB3aW5kb3cgc2NhbGluZyBhcyBkZWZpbmVkIGluIFJGQzEzMjMuCiAKIHRjcF93bWVtIC0gdmVjdG9yIG9mIDMgSU5URUdFUnM6IG1pbiwgZGVmYXVsdCwgbWF4Ci0JbWluOiBBbW91bnQgb2YgbWVtb3J5IHJlc2VydmVkIGZvciBzZW5kIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXQuCisJbWluOiBBbW91bnQgb2YgbWVtb3J5IHJlc2VydmVkIGZvciBzZW5kIGJ1ZmZlcnMgZm9yIFRDUCBzb2NrZXRzLgogCUVhY2ggVENQIHNvY2tldCBoYXMgcmlnaHRzIHRvIHVzZSBpdCBkdWUgdG8gZmFjdCBvZiBpdHMgYmlydGguCiAJRGVmYXVsdDogNEsKIAotCWRlZmF1bHQ6IEFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3Igc2VuZCBidWZmZXJzIGZvciBUQ1Agc29ja2V0Ci0JYnkgZGVmYXVsdC4gVGhpcyB2YWx1ZSBvdmVycmlkZXMgbmV0LmNvcmUud21lbV9kZWZhdWx0IHVzZWQKLQlieSBvdGhlciBwcm90b2NvbHMsIGl0IGlzIHVzdWFsbHkgbG93ZXIgdGhhbiBuZXQuY29yZS53bWVtX2RlZmF1bHQuCisJZGVmYXVsdDogaW5pdGlhbCBzaXplIG9mIHNlbmQgYnVmZmVyIHVzZWQgYnkgVENQIHNvY2tldHMuICBUaGlzCisJdmFsdWUgb3ZlcnJpZGVzIG5ldC5jb3JlLndtZW1fZGVmYXVsdCB1c2VkIGJ5IG90aGVyIHByb3RvY29scy4KKwlJdCBpcyB1c3VhbGx5IGxvd2VyIHRoYW4gbmV0LmNvcmUud21lbV9kZWZhdWx0LgogCURlZmF1bHQ6IDE2SwogCi0JbWF4OiBNYXhpbWFsIGFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3IgYXV0b21hdGljYWxseSBzZWxlY3RlZAotCXNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldC4gVGhpcyB2YWx1ZSBkb2VzIG5vdCBvdmVycmlkZQotCW5ldC5jb3JlLndtZW1fbWF4LCAic3RhdGljIiBzZWxlY3Rpb24gdmlhIFNPX1NOREJVRiBkb2VzIG5vdCB1c2UgdGhpcy4KLQlEZWZhdWx0OiAxMjhLCisJbWF4OiBNYXhpbWFsIGFtb3VudCBvZiBtZW1vcnkgYWxsb3dlZCBmb3IgYXV0b21hdGljYWxseSB0dW5lZAorCXNlbmQgYnVmZmVycyBmb3IgVENQIHNvY2tldHMuIFRoaXMgdmFsdWUgZG9lcyBub3Qgb3ZlcnJpZGUKKwluZXQuY29yZS53bWVtX21heC4gIENhbGxpbmcgc2V0c29ja29wdCgpIHdpdGggU09fU05EQlVGIGRpc2FibGVzCisJYXV0b21hdGljIHR1bmluZyBvZiB0aGF0IHNvY2tldCdzIHNlbmQgYnVmZmVyIHNpemUsIGluIHdoaWNoIGNhc2UKKwl0aGlzIHZhbHVlIGlzIGlnbm9yZWQuCisJRGVmYXVsdDogYmV0d2VlbiA2NEsgYW5kIDRNQiwgZGVwZW5kaW5nIG9uIFJBTSBzaXplLgogCiB0Y3Bfd29ya2Fyb3VuZF9zaWduZWRfd2luZG93cyAtIEJPT0xFQU4KIAlJZiBzZXQsIGFzc3VtZSBubyByZWNlaXB0IG9mIGEgd2luZG93IHNjYWxpbmcgb3B0aW9uIG1lYW5zIHRoZQpAQCAtNzk0LDEwICs3OTcsNiBAQAogCUFsbG93cyB5b3UgdG8gd3JpdGUgYSBudW1iZXIsIHdoaWNoIGNhbiBiZSB1c2VkIGFzIHJlcXVpcmVkLgogCURlZmF1bHQgdmFsdWUgaXMgMC4KIAotKDEpIEppZmZpZTogaW50ZXJuYWwgdGltZXVuaXQgZm9yIHRoZSBrZXJuZWwuIE9uIHRoZSBpMzg2IDEvMTAwcywgb24gdGhlCi1BbHBoYSAxLzEwMjRzLiBTZWUgdGhlIEhaIGRlZmluZSBpbiAvdXNyL2luY2x1ZGUvYXNtL3BhcmFtLmggZm9yIHRoZSBleGFjdAotdmFsdWUgb24geW91ciBzeXN0ZW0uIAotCiBBbGV4ZXkgS3V6bmV0c292Lgoga3V6bmV0QG1zMi5pbnIuYWMucnUKIApAQCAtMTA2NCwyNCArMTA2MywxOTMgQEAKIAlEZWZhdWx0OiAxCiAKIAorcHJvYy9zeXMvbmV0L3NjdHAvKiBWYXJpYWJsZXM6CisKK2FkZGlwX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSBleHRlbnNpb24gb2YgIER5bmFtaWMgQWRkcmVzcyBSZWNvbmZpZ3VyYXRpb24KKwkoQURELUlQKSBmdW5jdGlvbmFsaXR5IHNwZWNpZmllZCBpbiBSRkM1MDYxLiAgVGhpcyBleHRlbnNpb24gcHJvdmlkZXMKKwl0aGUgYWJpbGl0eSB0byBkeW5hbWljYWxseSBhZGQgYW5kIHJlbW92ZSBuZXcgYWRkcmVzc2VzIGZvciB0aGUgU0NUUAorCWFzc29jaWF0aW9ucy4KKworCTE6IEVuYWJsZSBleHRlbnNpb24uCisKKwkwOiBEaXNhYmxlIGV4dGVuc2lvbi4KKworCURlZmF1bHQ6IDAKKworYWRkaXBfbm9hdXRoX2VuYWJsZSAtIEJPT0xFQU4KKwlEeW5hbWljIEFkZHJlc3MgUmVjb25maWd1cmF0aW9uIChBREQtSVApIHJlcXVpcmVzIHRoZSB1c2Ugb2YKKwlhdXRoZW50aWNhdGlvbiB0byBwcm90ZWN0IHRoZSBvcGVyYXRpb25zIG9mIGFkZGluZyBvciByZW1vdmluZyBuZXcKKwlhZGRyZXNzZXMuICBUaGlzIHJlcXVpcmVtZW50IGlzIG1hbmRhdGVkIHNvIHRoYXQgdW5hdXRob3JpemVkIGhvc3RzCisJd291bGQgbm90IGJlIGFibGUgdG8gaGlqYWNrIGFzc29jaWF0aW9ucy4gIEhvd2V2ZXIsIG9sZGVyCisJaW1wbGVtZW50YXRpb25zIG1heSBub3QgaGF2ZSBpbXBsZW1lbnRlZCB0aGlzIHJlcXVpcmVtZW50IHdoaWxlCisJYWxsb3dpbmcgdGhlIEFERC1JUCBleHRlbnNpb24uICBGb3IgcmVhc29ucyBvZiBpbnRlcm9wZXJhYmlsaXR5LAorCXdlIHByb3ZpZGUgdGhpcyB2YXJpYWJsZSB0byBjb250cm9sIHRoZSBlbmZvcmNlbWVudCBvZiB0aGUKKwlhdXRoZW50aWNhdGlvbiByZXF1aXJlbWVudC4KKworCTE6IEFsbG93IEFERC1JUCBleHRlbnNpb24gdG8gYmUgdXNlZCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uLiAgVGhpcworCSAgIHNob3VsZCBvbmx5IGJlIHNldCBpbiBhIGNsb3NlZCBlbnZpcm9ubWVudCBmb3IgaW50ZXJvcGVyYWJpbGl0eQorCSAgIHdpdGggb2xkZXIgaW1wbGVtZW50YXRpb25zLgorCisJMDogRW5mb3JjZSB0aGUgYXV0aGVudGljYXRpb24gcmVxdWlyZW1lbnQKKworCURlZmF1bHQ6IDAKKworYXV0aF9lbmFibGUgLSBCT09MRUFOCisJRW5hYmxlIG9yIGRpc2FibGUgQXV0aGVudGljYXRlZCBDaHVua3MgZXh0ZW5zaW9uLiAgVGhpcyBleHRlbnNpb24KKwlwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBzZW5kIGFuZCByZWNlaXZlIGF1dGhlbnRpY2F0ZWQgY2h1bmtzIGFuZCBpcworCXJlcXVpcmVkIGZvciBzZWN1cmUgb3BlcmF0aW9uIG9mIER5bmFtaWMgQWRkcmVzcyBSZWNvbmZpZ3VyYXRpb24KKwkoQURELUlQKSBleHRlbnNpb24uCisKKwkxOiBFbmFibGUgdGhpcyBleHRlbnNpb24uCisJMDogRGlzYWJsZSB0aGlzIGV4dGVuc2lvbi4KKworCURlZmF1bHQ6IDAKKworcHJzY3RwX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSB0aGUgUGFydGlhbCBSZWxpYWJpbGl0eSBleHRlbnNpb24gKFJGQzM3NTgpIHdoaWNoCisJaXMgdXNlZCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGdpdmVuIERBVEEgc2hvdWxkIG5vIGxvbmdlciBiZSBleHBlY3RlZC4KKworCTE6IEVuYWJsZSBleHRlbnNpb24KKwkwOiBEaXNhYmxlCisKKwlEZWZhdWx0OiAxCisKK21heF9idXJzdCAtIElOVEVHRVIKKwlUaGUgbGltaXQgb2YgdGhlIG51bWJlciBvZiBuZXcgcGFja2V0cyB0aGF0IGNhbiBiZSBpbml0aWFsbHkgc2VudC4gIEl0CisJY29udHJvbHMgaG93IGJ1cnN0eSB0aGUgZ2VuZXJhdGVkIHRyYWZmaWMgY2FuIGJlLgorCisJRGVmYXVsdDogNAorCithc3NvY2lhdGlvbl9tYXhfcmV0cmFucyAtIElOVEVHRVIKKwlTZXQgdGhlIG1heGltdW0gbnVtYmVyIGZvciByZXRyYW5zbWlzc2lvbnMgdGhhdCBhbiBhc3NvY2lhdGlvbiBjYW4KKwlhdHRlbXB0IGRlY2lkaW5nIHRoYXQgdGhlIHJlbW90ZSBlbmQgaXMgdW5yZWFjaGFibGUuICBJZiB0aGlzIHZhbHVlCisJaXMgZXhjZWVkZWQsIHRoZSBhc3NvY2lhdGlvbiBpcyB0ZXJtaW5hdGVkLgorCisJRGVmYXVsdDogMTAKKworbWF4X2luaXRfcmV0cmFuc21pdHMgLSBJTlRFR0VSCisJVGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJhbnNtaXNzaW9ucyBvZiBJTklUIGFuZCBDT09LSUUtRUNITyBjaHVua3MKKwl0aGF0IGFuIGFzc29jaWF0aW9uIHdpbGwgYXR0ZW1wdCBiZWZvcmUgZGVjbGFyaW5nIHRoZSBkZXN0aW5hdGlvbgorCXVucmVhY2hhYmxlIGFuZCB0ZXJtaW5hdGluZy4KKworCURlZmF1bHQ6IDgKKworcGF0aF9tYXhfcmV0cmFucyAtIElOVEVHRVIKKwlUaGUgbWF4aW11bSBudW1iZXIgb2YgcmV0cmFuc21pc3Npb25zIHRoYXQgd2lsbCBiZSBhdHRlbXB0ZWQgb24gYSBnaXZlbgorCXBhdGguICBPbmNlIHRoaXMgdGhyZXNob2xkIGlzIGV4Y2VlZGVkLCB0aGUgcGF0aCBpcyBjb25zaWRlcmVkCisJdW5yZWFjaGFibGUsIGFuZCBuZXcgdHJhZmZpYyB3aWxsIHVzZSBhIGRpZmZlcmVudCBwYXRoIHdoZW4gdGhlCisJYXNzb2NpYXRpb24gaXMgbXVsdGlob21lZC4KKworCURlZmF1bHQ6IDUKKworcnRvX2luaXRpYWwgLSBJTlRFR0VSCisJVGhlIGluaXRpYWwgcm91bmQgdHJpcCB0aW1lb3V0IHZhbHVlIGluIG1pbGxpc2Vjb25kcyB0aGF0IHdpbGwgYmUgdXNlZAorCWluIGNhbGN1bGF0aW5nIHJvdW5kIHRyaXAgdGltZXMuICBUaGlzIGlzIHRoZSBpbml0aWFsIHRpbWUgaW50ZXJ2YWwKKwlmb3IgcmV0cmFuc21pc3Npb25zLgorCisJRGVmYXVsdDogMzAwMAorCitydG9fbWF4IC0gSU5URUdFUgorCVRoZSBtYXhpbXVtIHZhbHVlIChpbiBtaWxsaXNlY29uZHMpIG9mIHRoZSByb3VuZCB0cmlwIHRpbWVvdXQuICBUaGlzCisJaXMgdGhlIGxhcmdlc3QgdGltZSBpbnRlcnZhbCB0aGF0IGNhbiBlbGFwc2UgYmV0d2VlbiByZXRyYW5zbWlzc2lvbnMuCisKKwlEZWZhdWx0OiA2MDAwMAorCitydG9fbWluIC0gSU5URUdFUgorCVRoZSBtaW5pbXVtIHZhbHVlIChpbiBtaWxsaXNlY29uZHMpIG9mIHRoZSByb3VuZCB0cmlwIHRpbWVvdXQuICBUaGlzCisJaXMgdGhlIHNtYWxsZXN0IHRpbWUgaW50ZXJ2YWwgdGhlIGNhbiBlbGFwc2UgYmV0d2VlbiByZXRyYW5zbWlzc2lvbnMuCisKKwlEZWZhdWx0OiAxMDAwCisKK2hiX2ludGVydmFsIC0gSU5URUdFUgorCVRoZSBpbnRlcnZhbCAoaW4gbWlsbGlzZWNvbmRzKSBiZXR3ZWVuIEhFQVJUQkVBVCBjaHVua3MuICBUaGVzZSBjaHVua3MKKwlhcmUgc2VudCBhdCB0aGUgc3BlY2lmaWVkIGludGVydmFsIG9uIGlkbGUgcGF0aHMgdG8gcHJvYmUgdGhlIHN0YXRlIG9mCisJYSBnaXZlbiBwYXRoIGJldHdlZW4gMiBhc3NvY2lhdGlvbnMuCisKKwlEZWZhdWx0OiAzMDAwMAorCitzYWNrX3RpbWVvdXQgLSBJTlRFR0VSCisJVGhlIGFtb3VudCBvZiB0aW1lIChpbiBtaWxsaXNlY29uZHMpIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIHdpbGwgd2FpdAorCXRvIHNlbmQgYSBTQUNLLgorCisJRGVmYXVsdDogMjAwCisKK3ZhbGlkX2Nvb2tpZV9saWZlIC0gSU5URUdFUgorCVRoZSBkZWZhdWx0IGxpZmV0aW1lIG9mIHRoZSBTQ1RQIGNvb2tpZSAoaW4gbWlsbGlzZWNvbmRzKS4gIFRoZSBjb29raWUKKwlpcyB1c2VkIGR1cmluZyBhc3NvY2lhdGlvbiBlc3RhYmxpc2htZW50LgorCisJRGVmYXVsdDogNjAwMDAKKworY29va2llX3ByZXNlcnZlX2VuYWJsZSAtIEJPT0xFQU4KKwlFbmFibGUgb3IgZGlzYWJsZSB0aGUgYWJpbGl0eSB0byBleHRlbmQgdGhlIGxpZmV0aW1lIG9mIHRoZSBTQ1RQIGNvb2tpZQorCXRoYXQgaXMgdXNlZCBkdXJpbmcgdGhlIGVzdGFibGlzaG1lbnQgcGhhc2Ugb2YgU0NUUCBhc3NvY2lhdGlvbgorCisJMTogRW5hYmxlIGNvb2tpZSBsaWZldGltZSBleHRlbnNpb24uCisJMDogRGlzYWJsZQorCisJRGVmYXVsdDogMQorCityY3ZidWZfcG9saWN5IC0gSU5URUdFUgorCURldGVybWluZXMgaWYgdGhlIHJlY2VpdmUgYnVmZmVyIGlzIGF0dHJpYnV0ZWQgdG8gdGhlIHNvY2tldCBvciB0bworCWFzc29jaWF0aW9uLiAgIFNDVFAgc3VwcG9ydHMgdGhlIGNhcGFiaWxpdHkgdG8gY3JlYXRlIG11bHRpcGxlCisJYXNzb2NpYXRpb25zIG9uIGEgc2luZ2xlIHNvY2tldC4gIFdoZW4gdXNpbmcgdGhpcyBjYXBhYmlsaXR5LCBpdCBpcworCXBvc3NpYmxlIHRoYXQgYSBzaW5nbGUgc3RhbGxlZCBhc3NvY2lhdGlvbiB0aGF0J3MgYnVmZmVyaW5nIGEgbG90CisJb2YgZGF0YSBtYXkgYmxvY2sgb3RoZXIgYXNzb2NpYXRpb25zIGZyb20gZGVsaXZlcmluZyB0aGVpciBkYXRhIGJ5CisJY29uc3VtaW5nIGFsbCBvZiB0aGUgcmVjZWl2ZSBidWZmZXIgc3BhY2UuICBUbyB3b3JrIGFyb3VuZCB0aGlzLAorCXRoZSByY3ZidWZfcG9saWN5IGNvdWxkIGJlIHNldCB0byBhdHRyaWJ1dGUgdGhlIHJlY2VpdmVyIGJ1ZmZlciBzcGFjZQorCXRvIGVhY2ggYXNzb2NpYXRpb24gaW5zdGVhZCBvZiB0aGUgc29ja2V0LiAgVGhpcyBwcmV2ZW50cyB0aGUgZGVzY3JpYmVkCisJYmxvY2tpbmcuCisKKwkxOiByY3ZidWYgc3BhY2UgaXMgcGVyIGFzc29jaWF0aW9uCisJMDogcmVjYnVmIHNwYWNlIGlzIHBlciBzb2NrZXQKKworCURlZmF1bHQ6IDAKKworc25kYnVmX3BvbGljeSAtIElOVEVHRVIKKwlTaW1pbGFyIHRvIHJjdmJ1Zl9wb2xpY3kgYWJvdmUsIHRoaXMgYXBwbGllcyB0byBzZW5kIGJ1ZmZlciBzcGFjZS4KKworCTE6IFNlbmQgYnVmZmVyIGlzIHRyYWNrZWQgcGVyIGFzc29jaWF0aW9uCisJMDogU2VuZCBidWZmZXIgaXMgdHJhY2tlZCBwZXIgc29ja2V0LgorCisJRGVmYXVsdDogMAorCitzY3RwX21lbSAtIHZlY3RvciBvZiAzIElOVEVHRVJzOiBtaW4sIHByZXNzdXJlLCBtYXgKKwlOdW1iZXIgb2YgcGFnZXMgYWxsb3dlZCBmb3IgcXVldWVpbmcgYnkgYWxsIFNDVFAgc29ja2V0cy4KKworCW1pbjogQmVsb3cgdGhpcyBudW1iZXIgb2YgcGFnZXMgU0NUUCBpcyBub3QgYm90aGVyZWQgYWJvdXQgaXRzCisJbWVtb3J5IGFwcGV0aXRlLiBXaGVuIGFtb3VudCBvZiBtZW1vcnkgYWxsb2NhdGVkIGJ5IFNDVFAgZXhjZWVkcworCXRoaXMgbnVtYmVyLCBTQ1RQIHN0YXJ0cyB0byBtb2RlcmF0ZSBtZW1vcnkgdXNhZ2UuCisKKwlwcmVzc3VyZTogVGhpcyB2YWx1ZSB3YXMgaW50cm9kdWNlZCB0byBmb2xsb3cgZm9ybWF0IG9mIHRjcF9tZW0uCisKKwltYXg6IE51bWJlciBvZiBwYWdlcyBhbGxvd2VkIGZvciBxdWV1ZWluZyBieSBhbGwgU0NUUCBzb2NrZXRzLgorCisJRGVmYXVsdCBpcyBjYWxjdWxhdGVkIGF0IGJvb3QgdGltZSBmcm9tIGFtb3VudCBvZiBhdmFpbGFibGUgbWVtb3J5LgorCitzY3RwX3JtZW0gLSB2ZWN0b3Igb2YgMyBJTlRFR0VSczogbWluLCBkZWZhdWx0LCBtYXgKKwlTZWUgdGNwX3JtZW0gZm9yIGEgZGVzY3JpcHRpb24uCisKK3NjdHBfd21lbSAgLSB2ZWN0b3Igb2YgMyBJTlRFR0VSczogbWluLCBkZWZhdWx0LCBtYXgKKwlTZWUgdGNwX3dtZW0gZm9yIGEgZGVzY3JpcHRpb24uCisKIFVORE9DVU1FTlRFRDoKIAotZGV2X3dlaWdodCBGSVhNRQotZGlzY292ZXJ5X3Nsb3RzIEZJWE1FCi1kaXNjb3ZlcnlfdGltZW91dCBGSVhNRQotZmFzdF9wb2xsX2luY3JlYXNlIEZJWE1FCi1pcDZfcXVldWVfbWF4bGVuIEZJWE1FCi1sYXBfa2VlcGFsaXZlX3RpbWUgRklYTUUKLWxvX2NvbmcgRklYTUUKLW1heF9iYXVkX3JhdGUgRklYTUUKLW1heF9kZ3JhbV9xbGVuIEZJWE1FCi1tYXhfbm9yZXBseV90aW1lIEZJWE1FCi1tYXhfdHhfZGF0YV9zaXplIEZJWE1FCi1tYXhfdHhfd2luZG93IEZJWE1FCi1taW5fdHhfdHVybl90aW1lIEZJWE1FCi1tb2RfY29uZyBGSVhNRQotbm9fY29uZyBGSVhNRQotbm9fY29uZ190aHJlc2ggRklYTUUKLXNsb3RfdGltZW91dCBGSVhNRQotd2Fybl9ub3JlcGx5X3RpbWUgRklYTUUKKy9wcm9jL3N5cy9uZXQvY29yZS8qCisJZGV2X3dlaWdodCBGSVhNRQogCisvcHJvYy9zeXMvbmV0L3VuaXgvKgorCW1heF9kZ3JhbV9xbGVuIEZJWE1FCisKKy9wcm9jL3N5cy9uZXQvaXJkYS8qCisJZmFzdF9wb2xsX2luY3JlYXNlIEZJWE1FCisJd2Fybl9ub3JlcGx5X3RpbWUgRklYTUUKKwlkaXNjb3Zlcnlfc2xvdHMgRklYTUUKKwlzbG90X3RpbWVvdXQgRklYTUUKKwltYXhfYmF1ZF9yYXRlIEZJWE1FCisJZGlzY292ZXJ5X3RpbWVvdXQgRklYTUUKKwlsYXBfa2VlcGFsaXZlX3RpbWUgRklYTUUKKwltYXhfbm9yZXBseV90aW1lIEZJWE1FCisJbWF4X3R4X2RhdGFfc2l6ZSBGSVhNRQorCW1heF90eF93aW5kb3cgRklYTUUKKwltaW5fdHhfdHVybl90aW1lIEZJWE1FCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvczJpby50eHQgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvczJpby50eHQKaW5kZXggNGJkZTUzZS4uMWUyOGUyZCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL3MyaW8udHh0CisrKyBiL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9zMmlvLnR4dApAQCAtODMsOSArODMsOSBAQAogRGVmYXVsdDogMzAgCiAKIGUuIGludHJfdHlwZQotU3BlY2lmaWVzIGludGVycnVwdCB0eXBlLiBQb3NzaWJsZSB2YWx1ZXMgMShJTlRBKSwgMihNU0kpLCAzKE1TSS1YKQotVmFsaWQgcmFuZ2U6IDEtMwotRGVmYXVsdDogMSAKK1NwZWNpZmllcyBpbnRlcnJ1cHQgdHlwZS4gUG9zc2libGUgdmFsdWVzIDAoSU5UQSksIDIoTVNJLVgpCitWYWxpZCB2YWx1ZXM6IDAsIDIKK0RlZmF1bHQ6IDIKIAogNS4gIFBlcmZvcm1hbmNlIHN1Z2dlc3Rpb25zCiBHZW5lcmFsOgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ubWlfd2F0Y2hkb2cudHh0IGIvRG9jdW1lbnRhdGlvbi9ubWlfd2F0Y2hkb2cudHh0CmluZGV4IDc1N2M3MjkuLjkwYWE0NTMgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vbm1pX3dhdGNoZG9nLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL25taV93YXRjaGRvZy50eHQKQEAgLTEwLDcgKzEwLDcgQEAKIHdoaWNoIGdldCBleGVjdXRlZCBldmVuIGlmIHRoZSBzeXN0ZW0gaXMgb3RoZXJ3aXNlIGxvY2tlZCB1cCBoYXJkKS4KIFRoaXMgY2FuIGJlIHVzZWQgdG8gZGVidWcgaGFyZCBrZXJuZWwgbG9ja3Vwcy4gIEJ5IGV4ZWN1dGluZyBwZXJpb2RpYwogTk1JIGludGVycnVwdHMsIHRoZSBrZXJuZWwgY2FuIG1vbml0b3Igd2hldGhlciBhbnkgQ1BVIGhhcyBsb2NrZWQgdXAsCi1hbmQgcHJpbnQgb3V0IGRlYnVnZ2luZyBtZXNzYWdlcyBpZiBzby4gIAorYW5kIHByaW50IG91dCBkZWJ1Z2dpbmcgbWVzc2FnZXMgaWYgc28uCiAKIEluIG9yZGVyIHRvIHVzZSB0aGUgTk1JIHdhdGNoZG9nLCB5b3UgbmVlZCB0byBoYXZlIEFQSUMgc3VwcG9ydCBpbiB5b3VyCiBrZXJuZWwuIEZvciBTTVAga2VybmVscywgQVBJQyBzdXBwb3J0IGdldHMgY29tcGlsZWQgaW4gYXV0b21hdGljYWxseS4gRm9yCkBAIC0yMiw4ICsyMiw3IEBACiBrZXJuZWwgZGVidWdnaW5nIG9wdGlvbnMsIHN1Y2ggYXMgS2VybmVsIFN0YWNrIE1ldGVyIG9yIEtlcm5lbCBUcmFjZXIsCiBtYXkgaW1wbGljaXRseSBkaXNhYmxlIHRoZSBOTUkgd2F0Y2hkb2cuXQogCi1Gb3IgeDg2LTY0LCB0aGUgbmVlZGVkIEFQSUMgaXMgYWx3YXlzIGNvbXBpbGVkIGluLCBhbmQgdGhlIE5NSSB3YXRjaGRvZyBpcwotYWx3YXlzIGVuYWJsZWQgd2l0aCBJL08tQVBJQyBtb2RlIChubWlfd2F0Y2hkb2c9MSkuCitGb3IgeDg2LTY0LCB0aGUgbmVlZGVkIEFQSUMgaXMgYWx3YXlzIGNvbXBpbGVkIGluLgogCiBVc2luZyBsb2NhbCBBUElDIChubWlfd2F0Y2hkb2c9MikgbmVlZHMgdGhlIGZpcnN0IHBlcmZvcm1hbmNlIHJlZ2lzdGVyLCBzbwogeW91IGNhbid0IHVzZSBpdCBmb3Igb3RoZXIgcHVycG9zZXMgKHN1Y2ggYXMgaGlnaCBwcmVjaXNpb24gcGVyZm9ybWFuY2UKQEAgLTYzLDE2ICs2MiwxNSBAQAogImhsdCIsIHRoZW4geW91IGFyZSBvdXQgb2YgbHVjayAtLSB0aGUgZXZlbnQgd2lsbCBub3QgaGFwcGVuIGF0IGFsbCBhbmQgdGhlCiB3YXRjaGRvZyB3b24ndCB0cmlnZ2VyLiBUaGlzIGlzIGEgc2hvcnRjb21pbmcgb2YgdGhlIGxvY2FsIEFQSUMgd2F0Y2hkb2cKIC0tIHVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgbm8gImNsb2NrIHRpY2tzIiBldmVudCB0aGF0IHdvdWxkIHdvcmsgYWxsIHRoZQotdGltZS4gVGhlIEkvTyBBUElDIHdhdGNoZG9nIGlzIGRyaXZlbiBleHRlcm5hbGx5IGFuZCBoYXMgbm8gc3VjaCBzaG9ydGNvbWluZy4gIAordGltZS4gVGhlIEkvTyBBUElDIHdhdGNoZG9nIGlzIGRyaXZlbiBleHRlcm5hbGx5IGFuZCBoYXMgbm8gc3VjaCBzaG9ydGNvbWluZy4KIEJ1dCBpdHMgTk1JIGZyZXF1ZW5jeSBpcyBtdWNoIGhpZ2hlciwgcmVzdWx0aW5nIGluIGEgbW9yZSBzaWduaWZpY2FudCBoaXQKIHRvIHRoZSBvdmVyYWxsIHN5c3RlbSBwZXJmb3JtYW5jZS4KIAotTk9URTogc3RhcnRpbmcgd2l0aCAyLjQuMi1hYzE4IHRoZSBOTUktb29wc2VyIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsCi15b3UgaGF2ZSB0byBlbmFibGUgaXQgd2l0aCBhIGJvb3QgdGltZSBwYXJhbWV0ZXIuICBQcmlvciB0byAyLjQuMi1hYzE4Ci10aGUgTk1JLW9vcHNlciBpcyBlbmFibGVkIHVuY29uZGl0aW9uYWxseSBvbiB4ODYgU01QIGJveGVzLgorT24geDg2IG5taV93YXRjaGRvZyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IHNvIHlvdSBoYXZlIHRvIGVuYWJsZSBpdCB3aXRoCithIGJvb3QgdGltZSBwYXJhbWV0ZXIuCiAKLU9uIHg4Ni02NCB0aGUgTk1JIG9vcHNlciBpcyBvbiBieSBkZWZhdWx0LiBPbiA2NGJpdCBJbnRlbCBDUFVzCi1pdCB1c2VzIElPLUFQSUMgYnkgZGVmYXVsdCBhbmQgb24gQU1EIGl0IHVzZXMgbG9jYWwgQVBJQy4KK05PVEU6IEluIGtlcm5lbHMgcHJpb3IgdG8gMi40LjItYWMxOCB0aGUgTk1JLW9vcHNlciBpcyBlbmFibGVkIHVuY29uZGl0aW9uYWxseQorb24geDg2IFNNUCBib3hlcy4KIAogWyBmZWVsIGZyZWUgdG8gc2VuZCBidWcgcmVwb3J0cywgc3VnZ2VzdGlvbnMgYW5kIHBhdGNoZXMgdG8KICAgSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+IG9yIHRoZSBMaW51eCBTTVAgbWFpbGluZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtZG9tYWlucy50eHQgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dAppbmRleCBhOWU5OTBhLi4zNzNjZWFjIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1kb21haW5zLnR4dApAQCAtNjEsMTAgKzYxLDcgQEAKIGFyY2hfaW5pdF9zY2hlZF9kb21haW5zIGZ1bmN0aW9uLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYXR0YWNoIGRvbWFpbnMgdG8gYWxsCiBDUFVzIHVzaW5nIGNwdV9hdHRhY2hfZG9tYWluLgogCi1JbXBsZW1lbnRvcnMgc2hvdWxkIGNoYW5nZSB0aGUgbGluZQotI3VuZGVmIFNDSEVEX0RPTUFJTl9ERUJVRwotdG8KLSNkZWZpbmUgU0NIRURfRE9NQUlOX0RFQlVHCi1pbiBrZXJuZWwvc2NoZWQuYyBhcyB0aGlzIGVuYWJsZXMgYW4gZXJyb3IgY2hlY2tpbmcgcGFyc2Ugb2YgdGhlIHNjaGVkIGRvbWFpbnMKK1RoZSBzY2hlZC1kb21haW5zIGRlYnVnZ2luZyBpbmZyYXN0cnVjdHVyZSBjYW4gYmUgZW5hYmxlZCBieSBlbmFibGluZworQ09ORklHX1NDSEVEX0RFQlVHLiBUaGlzIGVuYWJsZXMgYW4gZXJyb3IgY2hlY2tpbmcgcGFyc2Ugb2YgdGhlIHNjaGVkIGRvbWFpbnMKIHdoaWNoIHNob3VsZCBjYXRjaCBtb3N0IHBvc3NpYmxlIGVycm9ycyAoZGVzY3JpYmVkIGFib3ZlKS4gSXQgYWxzbyBwcmludHMgb3V0CiB0aGUgZG9tYWluIHN0cnVjdHVyZSBpbiBhIHZpc3VhbCBmb3JtYXQuCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1ydC1ncm91cC50eHQgYi9Eb2N1bWVudGF0aW9uL3NjaGVkdWxlci9zY2hlZC1ydC1ncm91cC50eHQKaW5kZXggMTRmOTAxZi4uM2VmMzM5ZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zY2hlZHVsZXIvc2NoZWQtcnQtZ3JvdXAudHh0CisrKyBiL0RvY3VtZW50YXRpb24vc2NoZWR1bGVyL3NjaGVkLXJ0LWdyb3VwLnR4dApAQCAtNTEsOSArNTEsOSBAQAogMC4wMDAxNXMuIFNvIHRoaXMgZ3JvdXAgY2FuIGJlIHNjaGVkdWxlZCB3aXRoIGEgcGVyaW9kIG9mIDAuMDA1cyBhbmQgYSBydW4gdGltZQogb2YgMC4wMDAxNXMuCiAKLVRoZSByZW1haW5pbmcgQ1BVIHRpbWUgd2lsbCBiZSB1c2VkIGZvciB1c2VyIGlucHV0IGFuZCBvdGhlciB0YXNzLiBCZWNhdXNlCitUaGUgcmVtYWluaW5nIENQVSB0aW1lIHdpbGwgYmUgdXNlZCBmb3IgdXNlciBpbnB1dCBhbmQgb3RoZXIgdGFza3MuIEJlY2F1c2UKIHJlYWx0aW1lIHRhc2tzIGhhdmUgZXhwbGljaXRseSBhbGxvY2F0ZWQgdGhlIENQVSB0aW1lIHRoZXkgbmVlZCB0byBwZXJmb3JtCi10aGVpciB0YXNrcywgYnVmZmVyIHVuZGVycnVucyBpbiB0aGUgZ3JhcGhvY3Mgb3IgYXVkaW8gY2FuIGJlIGVsaW1pbmF0ZWQuCit0aGVpciB0YXNrcywgYnVmZmVyIHVuZGVycnVucyBpbiB0aGUgZ3JhcGhpY3Mgb3IgYXVkaW8gY2FuIGJlIGVsaW1pbmF0ZWQuCiAKIE5PVEU6IHRoZSBhYm92ZSBleGFtcGxlIGlzIG5vdCBmdWxseSBpbXBsZW1lbnRlZCBhcyBvZiB5ZXQgKDIuNi4yNSkuIFdlIHN0aWxsCiBsYWNrIGFuIEVERiBzY2hlZHVsZXIgdG8gbWFrZSBub24tdW5pZm9ybSBwZXJpb2RzIHVzYWJsZS4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9BTFNBLUNvbmZpZ3VyYXRpb24udHh0IGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKaW5kZXggMGJiZWUzOC4uNzJhZmY2MSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi9zb3VuZC9hbHNhL0FMU0EtQ29uZmlndXJhdGlvbi50eHQKQEAgLTc1Myw4ICs3NTMsMTEgQEAKIAogICAgIFtNdWx0aXBsZSBvcHRpb25zIGZvciBlYWNoIGNhcmQgaW5zdGFuY2VdCiAgICAgbW9kZWwJLSBmb3JjZSB0aGUgbW9kZWwgbmFtZQotICAgIHBvc2l0aW9uX2ZpeCAtIEZpeCBETUEgcG9pbnRlciAoMCA9IGF1dG8sIDEgPSBub25lLCAyID0gUE9TQlVGLCAzID0gRklGTyBzaXplKQorICAgIHBvc2l0aW9uX2ZpeCAtIEZpeCBETUEgcG9pbnRlciAoMCA9IGF1dG8sIDEgPSB1c2UgTFBJQiwgMiA9IFBPU0JVRikKICAgICBwcm9iZV9tYXNrICAtIEJpdG1hc2sgdG8gcHJvYmUgY29kZWNzIChkZWZhdWx0ID0gLTEsIG1lYW5pbmcgYWxsIHNsb3RzKQorICAgIGJkbF9wb3NfYWRqCS0gU3BlY2lmaWVzIHRoZSBETUEgSVJRIHRpbWluZyBkZWxheSBpbiBzYW1wbGVzLgorCQlQYXNzaW5nIC0xIHdpbGwgbWFrZSB0aGUgZHJpdmVyIHRvIGNob29zZSB0aGUgYXBwcm9wcmlhdGUKKwkJdmFsdWUgYmFzZWQgb24gdGhlIGNvbnRyb2xsZXIgY2hpcC4KICAgICAKICAgICBbU2luZ2xlIChnbG9iYWwpIG9wdGlvbnNdCiAgICAgc2luZ2xlX2NtZCAgLSBVc2Ugc2luZ2xlIGltbWVkaWF0ZSBjb21tYW5kcyB0byBjb21tdW5pY2F0ZSB3aXRoCkBAIC04NDUsNyArODQ4LDcgQEAKIAlBTEMyNjkKIAkgIGJhc2ljCQlCYXNpYyBwcmVzZXQKIAotCUFMQzY2MgorCUFMQzY2Mi82NjMKIAkgIDNzdGFjay1kaWcJMy1zdGFjayAoMi1jaGFubmVsKSB3aXRoIFNQRElGCiAJICAzc3RhY2stNmNoCSAzLXN0YWNrICg2LWNoYW5uZWwpCiAJICAzc3RhY2stNmNoLWRpZyAzLXN0YWNrICg2LWNoYW5uZWwpIHdpdGggU1BESUYKQEAgLTg1Myw2ICs4NTYsMTAgQEAKIAkgIGxlbm92by0xMDFlCSBMZW5vdm8gbGFwdG9wCiAJICBlZWVwYy1wNzAxCUFTVVMgRWVlcGMgUDcwMQogCSAgZWVlcGMtZXAyMAlBU1VTIEVlZXBjIEVQMjAKKwkgIG01MXZhCQlBU1VTIE01MVZBCisJICBnNzF2CQlBU1VTIEc3MVYKKwkgIGgxMwkJQVNVUyBIMTMKKwkgIGc1MHYJCUFTVVMgRzUwVgogCSAgYXV0bwkJYXV0by1jb25maWcgcmVhZGluZyBCSU9TIChkZWZhdWx0KQogCiAJQUxDODgyLzg4NQpAQCAtMTA5MSw3ICsxMDk4LDcgQEAKICAgICBUaGlzIG9jY3VycyB3aGVuIHRoZSBhY2Nlc3MgdG8gbm9uLWV4aXN0aW5nIG9yIG5vbi13b3JraW5nIGNvZGVjIHNsb3QKICAgICAobGlrZWx5IGEgbW9kZW0gb25lKSBjYXVzZXMgYSBzdGFsbCBvZiB0aGUgY29tbXVuaWNhdGlvbiB2aWEgSEQtYXVkaW8KICAgICBidXMuICBZb3UgY2FuIHNlZSB3aGljaCBjb2RlYyBzbG90cyBhcmUgcHJvYmVkIGJ5IGVuYWJsaW5nCi0gICAgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QsIG9yIHNpbXBseSBmcm9tIHRoZSBmaWxlIG5hbWUgb2YgdGhlIGNvZGVjCisgICAgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFLCBvciBzaW1wbHkgZnJvbSB0aGUgZmlsZSBuYW1lIG9mIHRoZSBjb2RlYwogICAgIHByb2MgZmlsZXMuICBUaGVuIGxpbWl0IHRoZSBzbG90cyB0byBwcm9iZSBieSBwcm9iZV9tYXNrIG9wdGlvbi4KICAgICBGb3IgZXhhbXBsZSwgcHJvYmVfbWFzaz0xIG1lYW5zIHRvIHByb2JlIG9ubHkgdGhlIGZpcnN0IHNsb3QsIGFuZAogICAgIHByb2JlX21hc2s9NCBtZWFucyBvbmx5IHRoZSB0aGlyZCBzbG90LgpAQCAtMjI2Nyw2ICsyMjc0LDEwIEBACiBvdGhlciBkcml2ZXIgKGUuZy4gc25kLXVzYi1hdWRpbykgaXMgbG9hZGVkIGJlZm9yZSBzbmQtaW50ZXJ3YXZlIG9yCiBzbmQtZW5zMTM3MSwgaXQgd2lsbCBiZSBhc3NpZ25lZCB0byB0aGUgdGhpcmQgb3IgbGF0ZXIgc2xvdC4KIAorV2hlbiBhIG1vZHVsZSBuYW1lIGlzIGdpdmVuIHdpdGggJyEnLCB0aGUgc2xvdCB3aWxsIGJlIGdpdmVuIGZvciBhbnkKK21vZHVsZXMgYnV0IHRoYXQgbmFtZS4gIEZvciBleGFtcGxlLCAic2xvdHM9IXNuZC1wY3NwIiB3aWxsIHJlc2VydmUKK3RoZSBmaXJzdCBzbG90IGZvciBhbnkgbW9kdWxlcyBidXQgc25kLXBjc3AuIAorCiAKIEFMU0EgUENNIGRldmljZXMgdG8gT1NTIGRldmljZXMgbWFwcGluZwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwKaW5kZXggYjAzZGY0ZDQuLmUxM2M0ZTYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vc291bmQvYWxzYS9Eb2NCb29rL3dyaXRpbmctYW4tYWxzYS1kcml2ZXIudG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL3NvdW5kL2Fsc2EvRG9jQm9vay93cml0aW5nLWFuLWFsc2EtZHJpdmVyLnRtcGwKQEAgLTYxMjcsOCArNjEyNyw4IEBACiAKICAgICAgIDxwYXJhPgogICAgICAgICA8ZnVuY3Rpb24+c25kX3ByaW50ZGQoKTwvZnVuY3Rpb24+IGlzIGNvbXBpbGVkIGluIG9ubHkgd2hlbgotICAgICAgPGNvbnN0YW50PkNPTkZJR19TTkRfREVCVUdfREVURUNUPC9jb25zdGFudD4gaXMgc2V0LiBQbGVhc2Ugbm90ZQotICAgICAgdGhhdCA8Y29uc3RhbnQ+REVCVUdfREVURUNUPC9jb25zdGFudD4gaXMgbm90IHNldCBhcyBkZWZhdWx0CisgICAgICA8Y29uc3RhbnQ+Q09ORklHX1NORF9ERUJVR19WRVJCT1NFPC9jb25zdGFudD4gaXMgc2V0LiBQbGVhc2Ugbm90ZQorICAgICAgdGhhdCA8Y29uc3RhbnQ+Q09ORklHX1NORF9ERUJVR19WRVJCT1NFPC9jb25zdGFudD4gaXMgbm90IHNldCBhcyBkZWZhdWx0CiAgICAgICBldmVuIGlmIHlvdSBjb25maWd1cmUgdGhlIGFsc2EtZHJpdmVyIHdpdGgKICAgICAgIDxvcHRpb24+LS13aXRoLWRlYnVnPWZ1bGw8L29wdGlvbj4gb3B0aW9uLiBZb3UgbmVlZCB0byBnaXZlCiAgICAgICBleHBsaWNpdGx5IDxvcHRpb24+LS13aXRoLWRlYnVnPWRldGVjdDwvb3B0aW9uPiBvcHRpb24gaW5zdGVhZC4gCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3RyYWNlcnMvbW1pb3RyYWNlLnR4dCBiL0RvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0YWZiNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3RyYWNlcnMvbW1pb3RyYWNlLnR4dApAQCAtMCwwICsxLDE2NCBAQAorCQlJbi1rZXJuZWwgbWVtb3J5LW1hcHBlZCBJL08gdHJhY2luZworCisKK0hvbWUgcGFnZSBhbmQgbGlua3MgdG8gb3B0aW9uYWwgdXNlciBzcGFjZSB0b29sczoKKworCWh0dHA6Ly9ub3V2ZWF1LmZyZWVkZXNrdG9wLm9yZy93aWtpL01taW9UcmFjZQorCitNTUlPIHRyYWNpbmcgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkIGJ5IEludGVsIGFyb3VuZCAyMDAzIGZvciB0aGVpciBGYXVsdAorSW5qZWN0aW9uIFRlc3QgSGFybmVzcy4gSW4gRGVjIDIwMDYgLSBKYW4gMjAwNywgdXNpbmcgdGhlIGNvZGUgZnJvbSBJbnRlbCwKK0plZmYgTXVpemVsYWFyIGNyZWF0ZWQgYSB0b29sIGZvciB0cmFjaW5nIE1NSU8gYWNjZXNzZXMgd2l0aCB0aGUgTm91dmVhdQorcHJvamVjdCBpbiBtaW5kLiBTaW5jZSB0aGVuIG1hbnkgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQuCisKK01taW90cmFjZSB3YXMgYnVpbHQgZm9yIHJldmVyc2UgZW5naW5lZXJpbmcgYW55IG1lbW9yeS1tYXBwZWQgSU8gZGV2aWNlIHdpdGgKK3RoZSBOb3V2ZWF1IHByb2plY3QgYXMgdGhlIGZpcnN0IHJlYWwgdXNlci4gT25seSB4ODYgYW5kIHg4Nl82NCBhcmNoaXRlY3R1cmVzCithcmUgc3VwcG9ydGVkLgorCitPdXQtb2YtdHJlZSBtbWlvdHJhY2Ugd2FzIG9yaWdpbmFsbHkgbW9kaWZpZWQgZm9yIG1haW5saW5lIGluY2x1c2lvbiBhbmQKK2Z0cmFjZSBmcmFtZXdvcmsgYnkgUGVra2EgUGFhbGFuZW4gPHBxQGlraS5maT4uCisKKworUHJlcGFyYXRpb24KKy0tLS0tLS0tLS0tCisKK01taW90cmFjZSBmZWF0dXJlIGlzIGNvbXBpbGVkIGluIGJ5IHRoZSBDT05GSUdfTU1JT1RSQUNFIG9wdGlvbi4gVHJhY2luZyBpcworZGlzYWJsZWQgYnkgZGVmYXVsdCwgc28gaXQgaXMgc2FmZSB0byBoYXZlIHRoaXMgc2V0IHRvIHllcy4gU01QIHN5c3RlbXMgYXJlCitzdXBwb3J0ZWQsIGJ1dCB0cmFjaW5nIGlzIHVucmVsaWFibGUgYW5kIG1heSBtaXNzIGV2ZW50cyBpZiBtb3JlIHRoYW4gb25lIENQVQoraXMgb24tbGluZSwgdGhlcmVmb3JlIG1taW90cmFjZSB0YWtlcyBhbGwgYnV0IG9uZSBDUFUgb2ZmLWxpbmUgZHVyaW5nIHJ1bi10aW1lCithY3RpdmF0aW9uLiBZb3UgY2FuIHJlLWVuYWJsZSBDUFVzIGJ5IGhhbmQsIGJ1dCB5b3UgaGF2ZSBiZWVuIHdhcm5lZCwgdGhlcmUKK2lzIG5vIHdheSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCBpZiB5b3UgYXJlIGxvc2luZyBldmVudHMgZHVlIHRvIENQVXMgcmFjaW5nLgorCisKK1VzYWdlIFF1aWNrIFJlZmVyZW5jZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyQgbW91bnQgLXQgZGVidWdmcyBkZWJ1Z2ZzIC9kZWJ1ZworJCBlY2hvIG1taW90cmFjZSA+IC9kZWJ1Zy90cmFjaW5nL2N1cnJlbnRfdHJhY2VyCiskIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9waXBlID4gbXlkdW1wLnR4dCAmCitTdGFydCBYIG9yIHdoYXRldmVyLgorJCBlY2hvICJYIGlzIHVwIiA+IC9kZWJ1Zy90cmFjaW5nL21hcmtlcgorJCBlY2hvIG5vbmUgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorQ2hlY2sgZm9yIGxvc3QgZXZlbnRzLgorCisKK1VzYWdlCistLS0tLQorCitNYWtlIHN1cmUgZGVidWdmcyBpcyBtb3VudGVkIHRvIC9kZWJ1Zy4gSWYgbm90LCAocmVxdWlyZXMgcm9vdCBwcml2aWxlZ2VzKQorJCBtb3VudCAtdCBkZWJ1Z2ZzIGRlYnVnZnMgL2RlYnVnCisKK0NoZWNrIHRoYXQgdGhlIGRyaXZlciB5b3UgYXJlIGFib3V0IHRvIHRyYWNlIGlzIG5vdCBsb2FkZWQuCisKK0FjdGl2YXRlIG1taW90cmFjZSAocmVxdWlyZXMgcm9vdCBwcml2aWxlZ2VzKToKKyQgZWNobyBtbWlvdHJhY2UgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorCitTdGFydCBzdG9yaW5nIHRoZSB0cmFjZToKKyQgY2F0IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgPiBteWR1bXAudHh0ICYKK1RoZSAnY2F0JyBwcm9jZXNzIHNob3VsZCBzdGF5IHJ1bm5pbmcgKHNsZWVwaW5nKSBpbiB0aGUgYmFja2dyb3VuZC4KKworTG9hZCB0aGUgZHJpdmVyIHlvdSB3YW50IHRvIHRyYWNlIGFuZCB1c2UgaXQuIE1taW90cmFjZSB3aWxsIG9ubHkgY2F0Y2ggTU1JTworYWNjZXNzZXMgdG8gYXJlYXMgdGhhdCBhcmUgaW9yZW1hcHBlZCB3aGlsZSBtbWlvdHJhY2UgaXMgYWN0aXZlLgorCitbVW5pbXBsZW1lbnRlZCBmZWF0dXJlOl0KK0R1cmluZyB0cmFjaW5nIHlvdSBjYW4gcGxhY2UgY29tbWVudHMgKG1hcmtlcnMpIGludG8gdGhlIHRyYWNlIGJ5CiskIGVjaG8gIlggaXMgdXAiID4gL2RlYnVnL3RyYWNpbmcvbWFya2VyCitUaGlzIG1ha2VzIGl0IGVhc2llciB0byBzZWUgd2hpY2ggcGFydCBvZiB0aGUgKGh1Z2UpIHRyYWNlIGNvcnJlc3BvbmRzIHRvCit3aGljaCBhY3Rpb24uIEl0IGlzIHJlY29tbWVuZGVkIHRvIHBsYWNlIGRlc2NyaXB0aXZlIG1hcmtlcnMgYWJvdXQgd2hhdCB5b3UKK2RvLgorCitTaHV0IGRvd24gbW1pb3RyYWNlIChyZXF1aXJlcyByb290IHByaXZpbGVnZXMpOgorJCBlY2hvIG5vbmUgPiAvZGVidWcvdHJhY2luZy9jdXJyZW50X3RyYWNlcgorVGhlICdjYXQnIHByb2Nlc3MgZXhpdHMuIElmIGl0IGRvZXMgbm90LCBraWxsIGl0IGJ5IGlzc3VpbmcgJ2ZnJyBjb21tYW5kIGFuZAorcHJlc3NpbmcgY3RybCtjLgorCitDaGVjayB0aGF0IG1taW90cmFjZSBkaWQgbm90IGxvc2UgZXZlbnRzIGR1ZSB0byBhIGJ1ZmZlciBmaWxsaW5nIHVwLiBFaXRoZXIKKyQgZ3JlcCAtaSBsb3N0IG15ZHVtcC50eHQKK3doaWNoIHRlbGxzIHlvdSBleGFjdGx5IGhvdyBtYW55IGV2ZW50cyB3ZXJlIGxvc3QsIG9yIHVzZQorJCBkbWVzZwordG8gdmlldyB5b3VyIGtlcm5lbCBsb2cgYW5kIGxvb2sgZm9yICJtbWlvdHJhY2UgaGFzIGxvc3QgZXZlbnRzIiB3YXJuaW5nLiBJZgorZXZlbnRzIHdlcmUgbG9zdCwgdGhlIHRyYWNlIGlzIGluY29tcGxldGUuIFlvdSBzaG91bGQgZW5sYXJnZSB0aGUgYnVmZmVycyBhbmQKK3RyeSBhZ2Fpbi4gQnVmZmVycyBhcmUgZW5sYXJnZWQgYnkgZmlyc3Qgc2VlaW5nIGhvdyBsYXJnZSB0aGUgY3VycmVudCBidWZmZXJzCithcmU6CiskIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZV9lbnRyaWVzCitnaXZlcyB5b3UgYSBudW1iZXIuIEFwcHJveGltYXRlbHkgZG91YmxlIHRoaXMgbnVtYmVyIGFuZCB3cml0ZSBpdCBiYWNrLCBmb3IKK2luc3RhbmNlOgorJCBlY2hvIDEyODAwMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNlX2VudHJpZXMKK1RoZW4gc3RhcnQgYWdhaW4gZnJvbSB0aGUgdG9wLgorCitJZiB5b3UgYXJlIGRvaW5nIGEgdHJhY2UgZm9yIGEgZHJpdmVyIHByb2plY3QsIGUuZy4gTm91dmVhdSwgeW91IHNob3VsZCBhbHNvCitkbyB0aGUgZm9sbG93aW5nIGJlZm9yZSBzZW5kaW5nIHlvdXIgcmVzdWx0czoKKyQgbHNwY2kgLXZ2diA+IGxzcGNpLnR4dAorJCBkbWVzZyA+IGRtZXNnLnR4dAorJCB0YXIgemNmIHBjaWlkLW5pY2stbW1pb3RyYWNlLnRhci5neiBteWR1bXAudHh0IGxzcGNpLnR4dCBkbWVzZy50eHQKK2FuZCB0aGVuIHNlbmQgdGhlIC50YXIuZ3ogZmlsZS4gVGhlIHRyYWNlIGNvbXByZXNzZXMgY29uc2lkZXJhYmx5LiBSZXBsYWNlCisicGNpaWQiIGFuZCAibmljayIgd2l0aCB0aGUgUENJIElEIG9yIG1vZGVsIG5hbWUgb2YgeW91ciBwaWVjZSBvZiBoYXJkd2FyZQordW5kZXIgaW52ZXN0aWdhdGlvbiBhbmQgeW91ciBuaWNrIG5hbWUuCisKKworSG93IE1taW90cmFjZSBXb3JrcworLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBY2Nlc3MgdG8gaGFyZHdhcmUgSU8tbWVtb3J5IGlzIGdhaW5lZCBieSBtYXBwaW5nIGFkZHJlc3NlcyBmcm9tIFBDSSBidXMgYnkKK2NhbGxpbmcgb25lIG9mIHRoZSBpb3JlbWFwXyooKSBmdW5jdGlvbnMuIE1taW90cmFjZSBpcyBob29rZWQgaW50byB0aGUKK19faW9yZW1hcCgpIGZ1bmN0aW9uIGFuZCBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIG1hcHBpbmcgaXMgY3JlYXRlZC4gTWFwcGluZyBpcworYW4gZXZlbnQgdGhhdCBpcyByZWNvcmRlZCBpbnRvIHRoZSB0cmFjZSBsb2cuIE5vdGUsIHRoYXQgSVNBIHJhbmdlIG1hcHBpbmdzCithcmUgbm90IGNhdWdodCwgc2luY2UgdGhlIG1hcHBpbmcgYWx3YXlzIGV4aXN0cyBhbmQgaXMgcmV0dXJuZWQgZGlyZWN0bHkuCisKK01NSU8gYWNjZXNzZXMgYXJlIHJlY29yZGVkIHZpYSBwYWdlIGZhdWx0cy4gSnVzdCBiZWZvcmUgX19pb3JlbWFwKCkgcmV0dXJucywKK3RoZSBtYXBwZWQgcGFnZXMgYXJlIG1hcmtlZCBhcyBub3QgcHJlc2VudC4gQW55IGFjY2VzcyB0byB0aGUgcGFnZXMgY2F1c2VzIGEKK2ZhdWx0LiBUaGUgcGFnZSBmYXVsdCBoYW5kbGVyIGNhbGxzIG1taW90cmFjZSB0byBoYW5kbGUgdGhlIGZhdWx0LiBNbWlvdHJhY2UKK21hcmtzIHRoZSBwYWdlIHByZXNlbnQsIHNldHMgVEYgZmxhZyB0byBhY2hpZXZlIHNpbmdsZSBzdGVwcGluZyBhbmQgZXhpdHMgdGhlCitmYXVsdCBoYW5kbGVyLiBUaGUgaW5zdHJ1Y3Rpb24gdGhhdCBmYXVsdGVkIGlzIGV4ZWN1dGVkIGFuZCBkZWJ1ZyB0cmFwIGlzCitlbnRlcmVkLiBIZXJlIG1taW90cmFjZSBhZ2FpbiBtYXJrcyB0aGUgcGFnZSBhcyBub3QgcHJlc2VudC4gVGhlIGluc3RydWN0aW9uCitpcyBkZWNvZGVkIHRvIGdldCB0aGUgdHlwZSBvZiBvcGVyYXRpb24gKHJlYWQvd3JpdGUpLCBkYXRhIHdpZHRoIGFuZCB0aGUgdmFsdWUKK3JlYWQgb3Igd3JpdHRlbi4gVGhlc2UgYXJlIHN0b3JlZCB0byB0aGUgdHJhY2UgbG9nLgorCitTZXR0aW5nIHRoZSBwYWdlIHByZXNlbnQgaW4gdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciBoYXMgYSByYWNlIGNvbmRpdGlvbiBvbiBTTVAKK21hY2hpbmVzLiBEdXJpbmcgdGhlIHNpbmdsZSBzdGVwcGluZyBvdGhlciBDUFVzIG1heSBydW4gZnJlZWx5IG9uIHRoYXQgcGFnZQorYW5kIGV2ZW50cyBjYW4gYmUgbWlzc2VkIHdpdGhvdXQgYSBub3RpY2UuIFJlLWVuYWJsaW5nIG90aGVyIENQVXMgZHVyaW5nCit0cmFjaW5nIGlzIGRpc2NvdXJhZ2VkLgorCisKK1RyYWNlIExvZyBGb3JtYXQKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHJhdyBsb2cgaXMgdGV4dCBhbmQgZWFzaWx5IGZpbHRlcmVkIHdpdGggZS5nLiBncmVwIGFuZCBhd2suIE9uZSByZWNvcmQgaXMKK29uZSBsaW5lIGluIHRoZSBsb2cuIEEgcmVjb3JkIHN0YXJ0cyB3aXRoIGEga2V5d29yZCwgZm9sbG93ZWQgYnkga2V5d29yZAorZGVwZW5kYW50IGFyZ3VtZW50cy4gQXJndW1lbnRzIGFyZSBzZXBhcmF0ZWQgYnkgYSBzcGFjZSwgb3IgY29udGludWUgdW50aWwgdGhlCitlbmQgb2YgbGluZS4gVGhlIGZvcm1hdCBmb3IgdmVyc2lvbiAyMDA3MDgyNCBpcyBhcyBmb2xsb3dzOgorCitFeHBsYW5hdGlvbglLZXl3b3JkCVNwYWNlIHNlcGFyYXRlZCBhcmd1bWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCityZWFkIGV2ZW50CVIJd2lkdGgsIHRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmFsdWUsIFBDLCBQSUQKK3dyaXRlIGV2ZW50CVcJd2lkdGgsIHRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmFsdWUsIFBDLCBQSUQKK2lvcmVtYXAgZXZlbnQJTUFQCXRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgdmlydHVhbCwgbGVuZ3RoLCBQQywgUElECitpb3VubWFwIGV2ZW50CVVOTUFQCXRpbWVzdGFtcCwgbWFwIGlkLCBQQywgUElECittYXJrZXIJCU1BUksJdGltZXN0YW1wLCB0ZXh0Cit2ZXJzaW9uCQlWRVJTSU9OCXRoZSBzdHJpbmcgIjIwMDcwODI0IgoraW5mbyBmb3IgcmVhZGVyCUxTUENJCW9uZSBsaW5lIGZyb20gbHNwY2kgLXYKK1BDSSBhZGRyZXNzIG1hcAlQQ0lERVYJc3BhY2Ugc2VwYXJhdGVkIC9wcm9jL2J1cy9wY2kvZGV2aWNlcyBkYXRhCit1bmsuIG9wY29kZQlVTktOT1dOCXRpbWVzdGFtcCwgbWFwIGlkLCBwaHlzaWNhbCwgZGF0YSwgUEMsIFBJRAorCitUaW1lc3RhbXAgaXMgaW4gc2Vjb25kcyB3aXRoIGRlY2ltYWxzLiBQaHlzaWNhbCBpcyBhIFBDSSBidXMgYWRkcmVzcywgdmlydHVhbAoraXMgYSBrZXJuZWwgdmlydHVhbCBhZGRyZXNzLiBXaWR0aCBpcyB0aGUgZGF0YSB3aWR0aCBpbiBieXRlcyBhbmQgdmFsdWUgaXMgdGhlCitkYXRhIHZhbHVlLiBNYXAgaWQgaXMgYW4gYXJiaXRyYXJ5IGlkIG51bWJlciBpZGVudGlmeWluZyB0aGUgbWFwcGluZyB0aGF0IHdhcwordXNlZCBpbiBhbiBvcGVyYXRpb24uIFBDIGlzIHRoZSBwcm9ncmFtIGNvdW50ZXIgYW5kIFBJRCBpcyBwcm9jZXNzIGlkLiBQQyBpcworemVybyBpZiBpdCBpcyBub3QgcmVjb3JkZWQuIFBJRCBpcyBhbHdheXMgemVybyBhcyB0cmFjaW5nIE1NSU8gYWNjZXNzZXMKK29yaWdpbmF0aW5nIGluIHVzZXIgc3BhY2UgbWVtb3J5IGlzIG5vdCB5ZXQgc3VwcG9ydGVkLgorCitGb3IgaW5zdGFuY2UsIHRoZSBmb2xsb3dpbmcgYXdrIGZpbHRlciB3aWxsIHBhc3MgYWxsIDMyLWJpdCB3cml0ZXMgdGhhdCB0YXJnZXQKK3BoeXNpY2FsIGFkZHJlc3NlcyBpbiB0aGUgcmFuZ2UgWzB4ZmI3M2NlNDAsIDB4ZmI4MDAwMDBbCisKKyQgYXdrICcvVyA0IC8geyBhZHI9c3RydG9udW0oJDUpOyBpZiAoYWRyID49IDB4ZmI3M2NlNDAgJiYKK2FkciA8IDB4ZmI4MDAwMDApIHByaW50OyB9JworCisKK1Rvb2xzIGZvciBEZXZlbG9wZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgdXNlciBzcGFjZSB0b29scyBpbmNsdWRlIHV0aWxpdGllcyBmb3I6CistIHJlcGxhY2luZyBudW1lcmljIGFkZHJlc3NlcyBhbmQgdmFsdWVzIHdpdGggaGFyZHdhcmUgcmVnaXN0ZXIgbmFtZXMKKy0gcmVwbGF5aW5nIE1NSU8gbG9ncywgaS5lLiwgcmUtZXhlY3V0aW5nIHRoZSByZWNvcmRlZCB3cml0ZXMKKworCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpZGVvNGxpbnV4L0NBUkRMSVNULmF1MDgyOCBiL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CmluZGV4IGFhYWUzNjAuLjg2ZDFjOGUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CisrKyBiL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuYXUwODI4CkBAIC0xLDQgKzEsNCBAQAogICAwIC0+IFVua25vd24gYm9hcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkKLSAgMSAtPiBIYXVwcGF1Z2UgSFZSOTUwUSAgICAgICAgICAgICAgICAgICAgICAgIChhdTA4MjgpICAgICAgICBbMjA0MDo3MjAwXQorICAxIC0+IEhhdXBwYXVnZSBIVlI5NTBRICAgICAgICAgICAgICAgICAgICAgICAgKGF1MDgyOCkgICAgICAgIFsyMDQwOjcyMDAsMjA0MDo3MjEwLDIwNDA6NzIxNywyMDQwOjcyMWIsMjA0MDo3MjFmLDIwNDA6NzI4MCwwZmQ5OjAwMDhdCiAgIDIgLT4gSGF1cHBhdWdlIEhWUjg1MCAgICAgICAgICAgICAgICAgICAgICAgICAoYXUwODI4KSAgICAgICAgWzIwNDA6NzI0MF0KICAgMyAtPiBEVmlDTyBGdXNpb25IRFRWIFVTQiAgICAgICAgICAgICAgICAgICAgIChhdTA4MjgpICAgICAgICBbMGZlOTpkNjIwXQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9DQVJETElTVC5jeDg4IGIvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9DQVJETElTVC5jeDg4CmluZGV4IDU0Mzk1NzMuLjdjZjU2ODUgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvQ0FSRExJU1QuY3g4OAorKysgYi9Eb2N1bWVudGF0aW9uL3ZpZGVvNGxpbnV4L0NBUkRMSVNULmN4ODgKQEAgLTYwLDcgKzYwLDcgQEAKICA1OSAtPiBEVmlDTyBGdXNpb25IRFRWIDUgUENJIG5hbm8gICAgICAgICAgICAgICAgICAgICAgICAgWzE4YWM6ZDUzMF0KICA2MCAtPiBQaW5uYWNsZSBIeWJyaWQgUENUViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEyYWI6MTc4OF0KICA2MSAtPiBXaW5mYXN0IFRWMjAwMCBYUCBHbG9iYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwN2Q6NmYxOF0KLSA2MiAtPiBQb3dlckNvbG9yIFJlYWwgQW5nZWwgMzMwICAgICAgICAgICAgICAgICAgICAgICAgICAgWzE0ZjE6ZWEzZF0KKyA2MiAtPiBQb3dlckNvbG9yIFJBMzMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzE0ZjE6ZWEzZF0KICA2MyAtPiBHZW5pYXRlY2ggWDgwMDAtTVQgRFZCVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzE0ZjE6ODg1Ml0KICA2NCAtPiBEVmlDTyBGdXNpb25IRFRWIERWQi1UIFBSTyAgICAgICAgICAgICAgICAgICAgICAgICAgWzE4YWM6ZGIzMF0KICA2NSAtPiBEVmlDTyBGdXNpb25IRFRWIDcgR29sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzE4YWM6ZDYxMF0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvY3gxOC50eHQgYi9Eb2N1bWVudGF0aW9uL3ZpZGVvNGxpbnV4L2N4MTgudHh0CmluZGV4IDA3N2Q1NmUuLjY4NDJjMjYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvY3gxOC50eHQKKysrIGIvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9jeDE4LnR4dApAQCAtMSw3ICsxLDkgQEAKIFNvbWUgbm90ZXMgcmVnYXJkaW5nIHRoZSBjeDE4IGRyaXZlciBmb3IgdGhlIENvbmV4YW50IENYMjM0MTggTVBFRwogZW5jb2RlciBjaGlwOgogCi0xKSBUaGUgb25seSBoYXJkd2FyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGlzIHRoZSBIYXVwcGF1Z2UgSFZSLTE2MDAuCisxKSBUaGUgb25seSBoYXJkd2FyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGlzIHRoZSBIYXVwcGF1Z2UgSFZSLTE2MDAKKyAgIGNhcmQgYW5kIHRoZSBDb21wcm8gVmlkZW9NYXRlIEg5MDAgKG5vdGUgdGhhdCB0aGlzIGNhcmQgb25seQorICAgc3VwcG9ydHMgYW5hbG9nIGlucHV0LCBpdCBoYXMgbm8gZGlnaXRhbCB0dW5lciEpLgogCiAyKSBTb21lIHBlb3BsZSBoYXZlIHByb2JsZW1zIGdldHRpbmcgdGhlIGkyYyBidXMgdG8gd29yay4gQ2F1c2UgdW5rbm93bi4KICAgIFRoZSBzeW1wdG9tIGlzIHRoYXQgdGhlIGVlcHJvbSBjYW5ub3QgYmUgcmVhZCBhbmQgdGhlIGNhcmQgaXMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdm0vcGFnZW1hcC50eHQgYi9Eb2N1bWVudGF0aW9uL3ZtL3BhZ2VtYXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNzJjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL3ZtL3BhZ2VtYXAudHh0CkBAIC0wLDAgKzEsNzcgQEAKK3BhZ2VtYXAsIGZyb20gdGhlIHVzZXJzcGFjZSBwZXJzcGVjdGl2ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3BhZ2VtYXAgaXMgYSBuZXcgKGFzIG9mIDIuNi4yNSkgc2V0IG9mIGludGVyZmFjZXMgaW4gdGhlIGtlcm5lbCB0aGF0IGFsbG93Cit1c2Vyc3BhY2UgcHJvZ3JhbXMgdG8gZXhhbWluZSB0aGUgcGFnZSB0YWJsZXMgYW5kIHJlbGF0ZWQgaW5mb3JtYXRpb24gYnkKK3JlYWRpbmcgZmlsZXMgaW4gL3Byb2MuCisKK1RoZXJlIGFyZSB0aHJlZSBjb21wb25lbnRzIHRvIHBhZ2VtYXA6CisKKyAqIC9wcm9jL3BpZC9wYWdlbWFwLiAgVGhpcyBmaWxlIGxldHMgYSB1c2Vyc3BhY2UgcHJvY2VzcyBmaW5kIG91dCB3aGljaAorICAgcGh5c2ljYWwgZnJhbWUgZWFjaCB2aXJ0dWFsIHBhZ2UgaXMgbWFwcGVkIHRvLiAgSXQgY29udGFpbnMgb25lIDY0LWJpdAorICAgdmFsdWUgZm9yIGVhY2ggdmlydHVhbCBwYWdlLCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgZGF0YSAoZnJvbQorICAgZnMvcHJvYy90YXNrX21tdS5jLCBhYm92ZSBwYWdlbWFwX3JlYWQpOgorCisgICAgKiBCaXRzIDAtNTUgIHBhZ2UgZnJhbWUgbnVtYmVyIChQRk4pIGlmIHByZXNlbnQKKyAgICAqIEJpdHMgMC00ICAgc3dhcCB0eXBlIGlmIHN3YXBwZWQKKyAgICAqIEJpdHMgNS01NSAgc3dhcCBvZmZzZXQgaWYgc3dhcHBlZAorICAgICogQml0cyA1NS02MCBwYWdlIHNoaWZ0IChwYWdlIHNpemUgPSAxPDxwYWdlIHNoaWZ0KQorICAgICogQml0ICA2MSAgICByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICogQml0ICA2MiAgICBwYWdlIHN3YXBwZWQKKyAgICAqIEJpdCAgNjMgICAgcGFnZSBwcmVzZW50CisKKyAgIElmIHRoZSBwYWdlIGlzIG5vdCBwcmVzZW50IGJ1dCBpbiBzd2FwLCB0aGVuIHRoZSBQRk4gY29udGFpbnMgYW4KKyAgIGVuY29kaW5nIG9mIHRoZSBzd2FwIGZpbGUgbnVtYmVyIGFuZCB0aGUgcGFnZSdzIG9mZnNldCBpbnRvIHRoZQorICAgc3dhcC4gVW5tYXBwZWQgcGFnZXMgcmV0dXJuIGEgbnVsbCBQRk4uIFRoaXMgYWxsb3dzIGRldGVybWluaW5nCisgICBwcmVjaXNlbHkgd2hpY2ggcGFnZXMgYXJlIG1hcHBlZCAob3IgaW4gc3dhcCkgYW5kIGNvbXBhcmluZyBtYXBwZWQKKyAgIHBhZ2VzIGJldHdlZW4gcHJvY2Vzc2VzLgorCisgICBFZmZpY2llbnQgdXNlcnMgb2YgdGhpcyBpbnRlcmZhY2Ugd2lsbCB1c2UgL3Byb2MvcGlkL21hcHMgdG8KKyAgIGRldGVybWluZSB3aGljaCBhcmVhcyBvZiBtZW1vcnkgYXJlIGFjdHVhbGx5IG1hcHBlZCBhbmQgbGxzZWVrIHRvCisgICBza2lwIG92ZXIgdW5tYXBwZWQgcmVnaW9ucy4KKworICogL3Byb2Mva3BhZ2Vjb3VudC4gIFRoaXMgZmlsZSBjb250YWlucyBhIDY0LWJpdCBjb3VudCBvZiB0aGUgbnVtYmVyIG9mCisgICB0aW1lcyBlYWNoIHBhZ2UgaXMgbWFwcGVkLCBpbmRleGVkIGJ5IFBGTi4KKworICogL3Byb2Mva3BhZ2VmbGFncy4gIFRoaXMgZmlsZSBjb250YWlucyBhIDY0LWJpdCBzZXQgb2YgZmxhZ3MgZm9yIGVhY2gKKyAgIHBhZ2UsIGluZGV4ZWQgYnkgUEZOLgorCisgICBUaGUgZmxhZ3MgYXJlIChmcm9tIGZzL3Byb2MvcHJvY19taXNjLCBhYm92ZSBrcGFnZWZsYWdzX3JlYWQpOgorCisgICAgIDAuIExPQ0tFRAorICAgICAxLiBFUlJPUgorICAgICAyLiBSRUZFUkVOQ0VECisgICAgIDMuIFVQVE9EQVRFCisgICAgIDQuIERJUlRZCisgICAgIDUuIExSVQorICAgICA2LiBBQ1RJVkUKKyAgICAgNy4gU0xBQgorICAgICA4LiBXUklURUJBQ0sKKyAgICAgOS4gUkVDTEFJTQorICAgIDEwLiBCVUREWQorCitVc2luZyBwYWdlbWFwIHRvIGRvIHNvbWV0aGluZyB1c2VmdWw6CisKK1RoZSBnZW5lcmFsIHByb2NlZHVyZSBmb3IgdXNpbmcgcGFnZW1hcCB0byBmaW5kIG91dCBhYm91dCBhIHByb2Nlc3MnIG1lbW9yeQordXNhZ2UgZ29lcyBsaWtlIHRoaXM6CisKKyAxLiBSZWFkIC9wcm9jL3BpZC9tYXBzIHRvIGRldGVybWluZSB3aGljaCBwYXJ0cyBvZiB0aGUgbWVtb3J5IHNwYWNlIGFyZQorICAgIG1hcHBlZCB0byB3aGF0LgorIDIuIFNlbGVjdCB0aGUgbWFwcyB5b3UgYXJlIGludGVyZXN0ZWQgaW4gLS0gYWxsIG9mIHRoZW0sIG9yIGEgcGFydGljdWxhcgorICAgIGxpYnJhcnksIG9yIHRoZSBzdGFjayBvciB0aGUgaGVhcCwgZXRjLgorIDMuIE9wZW4gL3Byb2MvcGlkL3BhZ2VtYXAgYW5kIHNlZWsgdG8gdGhlIHBhZ2VzIHlvdSB3b3VsZCBsaWtlIHRvIGV4YW1pbmUuCisgNC4gUmVhZCBhIHU2NCBmb3IgZWFjaCBwYWdlIGZyb20gcGFnZW1hcC4KKyA1LiBPcGVuIC9wcm9jL2twYWdlY291bnQgYW5kL29yIC9wcm9jL2twYWdlZmxhZ3MuICBGb3IgZWFjaCBQRk4geW91IGp1c3QKKyAgICByZWFkLCBzZWVrIHRvIHRoYXQgZW50cnkgaW4gdGhlIGZpbGUsIGFuZCByZWFkIHRoZSBkYXRhIHlvdSB3YW50LgorCitGb3IgZXhhbXBsZSwgdG8gZmluZCB0aGUgInVuaXF1ZSBzZXQgc2l6ZSIgKFVTUyksIHdoaWNoIGlzIHRoZSBhbW91bnQgb2YKK21lbW9yeSB0aGF0IGEgcHJvY2VzcyBpcyB1c2luZyB0aGF0IGlzIG5vdCBzaGFyZWQgd2l0aCBhbnkgb3RoZXIgcHJvY2VzcywKK3lvdSBjYW4gZ28gdGhyb3VnaCBldmVyeSBtYXAgaW4gdGhlIHByb2Nlc3MsIGZpbmQgdGhlIFBGTnMsIGxvb2sgdGhvc2UgdXAKK2luIGtwYWdlY291bnQsIGFuZCB0YWxseSB1cCB0aGUgbnVtYmVyIG9mIHBhZ2VzIHRoYXQgYXJlIG9ubHkgcmVmZXJlbmNlZAorb25jZS4KKworT3RoZXIgbm90ZXM6CisKK1JlYWRpbmcgZnJvbSBhbnkgb2YgdGhlIGZpbGVzIHdpbGwgcmV0dXJuIC1FSU5WQUwgaWYgeW91IGFyZSBub3Qgc3RhcnRpbmcKK3RoZSByZWFkIG9uIGFuIDgtYnl0ZSBib3VuZGFyeSAoZS5nLiwgaWYgeW91IHNlZWtlZCBhbiBvZGQgbnVtYmVyIG9mIGJ5dGVzCitpbnRvIHRoZSBmaWxlKSwgb3IgaWYgdGhlIHNpemUgb2YgdGhlIHJlYWQgaXMgbm90IGEgbXVsdGlwbGUgb2YgOCBieXRlcy4KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdm0vc2xhYmluZm8uYyBiL0RvY3VtZW50YXRpb24vdm0vc2xhYmluZm8uYwppbmRleCBlNDIzMGVkLi5kZjMyMjc2IDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL3ZtL3NsYWJpbmZvLmMKKysrIGIvRG9jdW1lbnRhdGlvbi92bS9zbGFiaW5mby5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIFNsYWJpbmZvOiBUb29sIHRvIGdldCByZXBvcnRzIGFib3V0IHNsYWJzCiAgKgotICogKEMpIDIwMDcgc2dpLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIChDKSAyMDA3IHNnaSwgQ2hyaXN0b3BoIExhbWV0ZXIKICAqCiAgKiBDb21waWxlIGJ5OgogICoKQEAgLTk5LDcgKzk5LDcgQEAKIAogdm9pZCB1c2FnZSh2b2lkKQogewotCXByaW50Zigic2xhYmluZm8gNS83LzIwMDcuIChjKSAyMDA3IHNnaS4gY2xhbWV0ZXJAc2dpLmNvbVxuXG4iCisJcHJpbnRmKCJzbGFiaW5mbyA1LzcvMjAwNy4gKGMpIDIwMDcgc2dpLlxuXG4iCiAJCSJzbGFiaW5mbyBbLWFobnB2dHN6XSBbLWQgZGVidWdvcHRzXSBbc2xhYi1yZWdleHBdXG4iCiAJCSItYXwtLWFsaWFzZXMgICAgICAgICAgIFNob3cgYWxpYXNlc1xuIgogCQkiLUF8LS1hY3Rpdml0eSAgICAgICAgICBNb3N0IGFjdGl2ZSBzbGFicyBmaXJzdFxuIgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi92bS9zbHViLnR4dCBiL0RvY3VtZW50YXRpb24vdm0vc2x1Yi50eHQKaW5kZXggN2MxM2YyMi4uYmIxZjVjNiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92bS9zbHViLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3ZtL3NsdWIudHh0CkBAIC0yNjYsNCArMjY2LDQgQEAKIAogCXNsdWJfZGVidWc9RlosZGVudHJ5CiAKLUNocmlzdG9waCBMYW1ldGVyLCA8Y2xhbWV0ZXJAc2dpLmNvbT4sIE1heSAzMCwgMjAwNworQ2hyaXN0b3BoIExhbWV0ZXIsIE1heSAzMCwgMjAwNwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMzg2L0lPLUFQSUMudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni9JTy1BUElDLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMzg2L0lPLUFQSUMudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni9pMzg2L0lPLUFQSUMudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L2Jvb3QudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni9ib290LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDdiZmU1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi94ODYvaTM4Ni9ib290LnR4dApAQCAtMCwwICsxLDkwMCBAQAorCQkgICAgIFRIRSBMSU5VWC94ODYgQk9PVCBQUk9UT0NPTAorCQkgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitPbiB0aGUgeDg2IHBsYXRmb3JtLCB0aGUgTGludXgga2VybmVsIHVzZXMgYSByYXRoZXIgY29tcGxpY2F0ZWQgYm9vdAorY29udmVudGlvbi4gIFRoaXMgaGFzIGV2b2x2ZWQgcGFydGlhbGx5IGR1ZSB0byBoaXN0b3JpY2FsIGFzcGVjdHMsIGFzCit3ZWxsIGFzIHRoZSBkZXNpcmUgaW4gdGhlIGVhcmx5IGRheXMgdG8gaGF2ZSB0aGUga2VybmVsIGl0c2VsZiBiZSBhCitib290YWJsZSBpbWFnZSwgdGhlIGNvbXBsaWNhdGVkIFBDIG1lbW9yeSBtb2RlbCBhbmQgZHVlIHRvIGNoYW5nZWQKK2V4cGVjdGF0aW9ucyBpbiB0aGUgUEMgaW5kdXN0cnkgY2F1c2VkIGJ5IHRoZSBlZmZlY3RpdmUgZGVtaXNlIG9mCityZWFsLW1vZGUgRE9TIGFzIGEgbWFpbnN0cmVhbSBvcGVyYXRpbmcgc3lzdGVtLgorCitDdXJyZW50bHksIHRoZSBmb2xsb3dpbmcgdmVyc2lvbnMgb2YgdGhlIExpbnV4L3g4NiBib290IHByb3RvY29sIGV4aXN0LgorCitPbGQga2VybmVsczoJekltYWdlL0ltYWdlIHN1cHBvcnQgb25seS4gIFNvbWUgdmVyeSBlYXJseSBrZXJuZWxzCisJCW1heSBub3QgZXZlbiBzdXBwb3J0IGEgY29tbWFuZCBsaW5lLgorCitQcm90b2NvbCAyLjAwOgkoS2VybmVsIDEuMy43MykgQWRkZWQgYnpJbWFnZSBhbmQgaW5pdHJkIHN1cHBvcnQsIGFzCisJCXdlbGwgYXMgYSBmb3JtYWxpemVkIHdheSB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZQorCQlib290IGxvYWRlciBhbmQgdGhlIGtlcm5lbC4gIHNldHVwLlMgbWFkZSByZWxvY2F0YWJsZSwKKwkJYWx0aG91Z2ggdGhlIHRyYWRpdGlvbmFsIHNldHVwIGFyZWEgc3RpbGwgYXNzdW1lZAorCQl3cml0YWJsZS4KKworUHJvdG9jb2wgMi4wMToJKEtlcm5lbCAxLjMuNzYpIEFkZGVkIGEgaGVhcCBvdmVycnVuIHdhcm5pbmcuCisKK1Byb3RvY29sIDIuMDI6CShLZXJuZWwgMi40LjAtdGVzdDMtcHJlMykgTmV3IGNvbW1hbmQgbGluZSBwcm90b2NvbC4KKwkJTG93ZXIgdGhlIGNvbnZlbnRpb25hbCBtZW1vcnkgY2VpbGluZy4JTm8gb3ZlcndyaXRlCisJCW9mIHRoZSB0cmFkaXRpb25hbCBzZXR1cCBhcmVhLCB0aHVzIG1ha2luZyBib290aW5nCisJCXNhZmUgZm9yIHN5c3RlbXMgd2hpY2ggdXNlIHRoZSBFQkRBIGZyb20gU01NIG9yIDMyLWJpdAorCQlCSU9TIGVudHJ5IHBvaW50cy4gIHpJbWFnZSBkZXByZWNhdGVkIGJ1dCBzdGlsbAorCQlzdXBwb3J0ZWQuCisKK1Byb3RvY29sIDIuMDM6CShLZXJuZWwgMi40LjE4LXByZTEpIEV4cGxpY2l0bHkgbWFrZXMgdGhlIGhpZ2hlc3QgcG9zc2libGUKKwkJaW5pdHJkIGFkZHJlc3MgYXZhaWxhYmxlIHRvIHRoZSBib290bG9hZGVyLgorCitQcm90b2NvbCAyLjA0OgkoS2VybmVsIDIuNi4xNCkgRXh0ZW5kIHRoZSBzeXNzaXplIGZpZWxkIHRvIGZvdXIgYnl0ZXMuCisKK1Byb3RvY29sIDIuMDU6CShLZXJuZWwgMi42LjIwKSBNYWtlIHByb3RlY3RlZCBtb2RlIGtlcm5lbCByZWxvY2F0YWJsZS4KKwkJSW50cm9kdWNlIHJlbG9jYXRhYmxlX2tlcm5lbCBhbmQga2VybmVsX2FsaWdubWVudCBmaWVsZHMuCisKK1Byb3RvY29sIDIuMDY6CShLZXJuZWwgMi42LjIyKSBBZGRlZCBhIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHNpemUgb2YKKwkJdGhlIGJvb3QgY29tbWFuZCBsaW5lLgorCitQcm90b2NvbCAyLjA3OgkoS2VybmVsIDIuNi4yNCkgQWRkZWQgcGFyYXZpcnR1YWxpc2VkIGJvb3QgcHJvdG9jb2wuCisJCUludHJvZHVjZWQgaGFyZHdhcmVfc3ViYXJjaCBhbmQgaGFyZHdhcmVfc3ViYXJjaF9kYXRhCisJCWFuZCBLRUVQX1NFR01FTlRTIGZsYWcgaW4gbG9hZF9mbGFncy4KKworUHJvdG9jb2wgMi4wODoJKEtlcm5lbCAyLjYuMjYpIEFkZGVkIGNyYzMyIGNoZWNrc3VtIGFuZCBFTEYgZm9ybWF0CisJCXBheWxvYWQuIEludHJvZHVjZWQgcGF5bG9hZF9vZmZzZXQgYW5kIHBheWxvYWQgbGVuZ3RoCisJCWZpZWxkcyB0byBhaWQgaW4gbG9jYXRpbmcgdGhlIHBheWxvYWQuCisKK1Byb3RvY29sIDIuMDk6CShLZXJuZWwgMi42LjI2KSBBZGRlZCBhIGZpZWxkIG9mIDY0LWJpdCBwaHlzaWNhbAorCQlwb2ludGVyIHRvIHNpbmdsZSBsaW5rZWQgbGlzdCBvZiBzdHJ1Y3QJc2V0dXBfZGF0YS4KKworKioqKiBNRU1PUlkgTEFZT1VUCisKK1RoZSB0cmFkaXRpb25hbCBtZW1vcnkgbWFwIGZvciB0aGUga2VybmVsIGxvYWRlciwgdXNlZCBmb3IgSW1hZ2Ugb3IKK3pJbWFnZSBrZXJuZWxzLCB0eXBpY2FsbHkgbG9va3MgbGlrZToKKworCXwJCQkgfAorMEEwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgUmVzZXJ2ZWQgZm9yIEJJT1MJIHwJRG8gbm90IHVzZS4gIFJlc2VydmVkIGZvciBCSU9TIEVCREEuCiswOUEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBDb21tYW5kIGxpbmUJCSB8CisJfCAgU3RhY2svaGVhcAkJIHwJRm9yIHVzZSBieSB0aGUga2VybmVsIHJlYWwtbW9kZSBjb2RlLgorMDk4MDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCQorCXwgIEtlcm5lbCBzZXR1cAkJIHwJVGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KKzA5MDIwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIEtlcm5lbCBib290IHNlY3RvcgkgfAlUaGUga2VybmVsIGxlZ2FjeSBib290IHNlY3Rvci4KKzA5MDAwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFByb3RlY3RlZC1tb2RlIGtlcm5lbCB8CVRoZSBidWxrIG9mIHRoZSBrZXJuZWwgaW1hZ2UuCiswMTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBCb290IGxvYWRlcgkJIHwJPC0gQm9vdCBzZWN0b3IgZW50cnkgcG9pbnQgMDAwMDo3QzAwCiswMDEwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBSZXNlcnZlZCBmb3IgTUJSL0JJT1MgfAorMDAwODAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgVHlwaWNhbGx5IHVzZWQgYnkgTUJSIHwKKzAwMDYwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAKKwl8ICBCSU9TIHVzZSBvbmx5CSB8CiswMDAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworCitXaGVuIHVzaW5nIGJ6SW1hZ2UsIHRoZSBwcm90ZWN0ZWQtbW9kZSBrZXJuZWwgd2FzIHJlbG9jYXRlZCB0bworMHgxMDAwMDAgKCJoaWdoIG1lbW9yeSIpLCBhbmQgdGhlIGtlcm5lbCByZWFsLW1vZGUgYmxvY2sgKGJvb3Qgc2VjdG9yLAorc2V0dXAsIGFuZCBzdGFjay9oZWFwKSB3YXMgbWFkZSByZWxvY2F0YWJsZSB0byBhbnkgYWRkcmVzcyBiZXR3ZWVuCisweDEwMDAwIGFuZCBlbmQgb2YgbG93IG1lbW9yeS4gVW5mb3J0dW5hdGVseSwgaW4gcHJvdG9jb2xzIDIuMDAgYW5kCisyLjAxIHRoZSAweDkwMDAwKyBtZW1vcnkgcmFuZ2UgaXMgc3RpbGwgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBrZXJuZWw7Cit0aGUgMi4wMiBwcm90b2NvbCByZXNvbHZlcyB0aGF0IHByb2JsZW0uCisKK0l0IGlzIGRlc2lyYWJsZSB0byBrZWVwIHRoZSAibWVtb3J5IGNlaWxpbmciIC0tIHRoZSBoaWdoZXN0IHBvaW50IGluCitsb3cgbWVtb3J5IHRvdWNoZWQgYnkgdGhlIGJvb3QgbG9hZGVyIC0tIGFzIGxvdyBhcyBwb3NzaWJsZSwgc2luY2UKK3NvbWUgbmV3ZXIgQklPU2VzIGhhdmUgYmVndW4gdG8gYWxsb2NhdGUgc29tZSByYXRoZXIgbGFyZ2UgYW1vdW50cyBvZgorbWVtb3J5LCBjYWxsZWQgdGhlIEV4dGVuZGVkIEJJT1MgRGF0YSBBcmVhLCBuZWFyIHRoZSB0b3Agb2YgbG93CittZW1vcnkuCSBUaGUgYm9vdCBsb2FkZXIgc2hvdWxkIHVzZSB0aGUgIklOVCAxMmgiIEJJT1MgY2FsbCB0byB2ZXJpZnkKK2hvdyBtdWNoIGxvdyBtZW1vcnkgaXMgYXZhaWxhYmxlLgorCitVbmZvcnR1bmF0ZWx5LCBpZiBJTlQgMTJoIHJlcG9ydHMgdGhhdCB0aGUgYW1vdW50IG9mIG1lbW9yeSBpcyB0b28KK2xvdywgdGhlcmUgaXMgdXN1YWxseSBub3RoaW5nIHRoZSBib290IGxvYWRlciBjYW4gZG8gYnV0IHRvIHJlcG9ydCBhbgorZXJyb3IgdG8gdGhlIHVzZXIuICBUaGUgYm9vdCBsb2FkZXIgc2hvdWxkIHRoZXJlZm9yZSBiZSBkZXNpZ25lZCB0bwordGFrZSB1cCBhcyBsaXR0bGUgc3BhY2UgaW4gbG93IG1lbW9yeSBhcyBpdCByZWFzb25hYmx5IGNhbi4gIEZvcgorekltYWdlIG9yIG9sZCBiekltYWdlIGtlcm5lbHMsIHdoaWNoIG5lZWQgZGF0YSB3cml0dGVuIGludG8gdGhlCisweDkwMDAwIHNlZ21lbnQsIHRoZSBib290IGxvYWRlciBzaG91bGQgbWFrZSBzdXJlIG5vdCB0byB1c2UgbWVtb3J5CithYm92ZSB0aGUgMHg5QTAwMCBwb2ludDsgdG9vIG1hbnkgQklPU2VzIHdpbGwgYnJlYWsgYWJvdmUgdGhhdCBwb2ludC4KKworRm9yIGEgbW9kZXJuIGJ6SW1hZ2Uga2VybmVsIHdpdGggYm9vdCBwcm90b2NvbCB2ZXJzaW9uID49IDIuMDIsIGEKK21lbW9yeSBsYXlvdXQgbGlrZSB0aGUgZm9sbG93aW5nIGlzIHN1Z2dlc3RlZDoKKworCX4gICAgICAgICAgICAgICAgICAgICAgICB+CisgICAgICAgIHwgIFByb3RlY3RlZC1tb2RlIGtlcm5lbCB8CisxMDAwMDAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgSS9PIG1lbW9yeSBob2xlCSB8CiswQTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBSZXNlcnZlZCBmb3IgQklPUwkgfAlMZWF2ZSBhcyBtdWNoIGFzIHBvc3NpYmxlIHVudXNlZAorCX4gICAgICAgICAgICAgICAgICAgICAgICB+CisJfCAgQ29tbWFuZCBsaW5lCQkgfAkoQ2FuIGFsc28gYmUgYmVsb3cgdGhlIFgrMTAwMDAgbWFyaykKK1grMTAwMDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKwl8ICBTdGFjay9oZWFwCQkgfAlGb3IgdXNlIGJ5IHRoZSBrZXJuZWwgcmVhbC1tb2RlIGNvZGUuCitYKzA4MDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCQorCXwgIEtlcm5lbCBzZXR1cAkJIHwJVGhlIGtlcm5lbCByZWFsLW1vZGUgY29kZS4KKwl8ICBLZXJuZWwgYm9vdCBzZWN0b3IJIHwJVGhlIGtlcm5lbCBsZWdhY3kgYm9vdCBzZWN0b3IuCitYICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgQm9vdCBsb2FkZXIJCSB8CTwtIEJvb3Qgc2VjdG9yIGVudHJ5IHBvaW50IDAwMDA6N0MwMAorMDAxMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisJfCAgUmVzZXJ2ZWQgZm9yIE1CUi9CSU9TIHwKKzAwMDgwMAkrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCXwgIFR5cGljYWxseSB1c2VkIGJ5IE1CUiB8CiswMDA2MDAJKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgCisJfCAgQklPUyB1c2Ugb25seQkgfAorMDAwMDAwCSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKy4uLiB3aGVyZSB0aGUgYWRkcmVzcyBYIGlzIGFzIGxvdyBhcyB0aGUgZGVzaWduIG9mIHRoZSBib290IGxvYWRlcgorcGVybWl0cy4KKworCisqKioqIFRIRSBSRUFMLU1PREUgS0VSTkVMIEhFQURFUgorCitJbiB0aGUgZm9sbG93aW5nIHRleHQsIGFuZCBhbnl3aGVyZSBpbiB0aGUga2VybmVsIGJvb3Qgc2VxdWVuY2UsICJhCitzZWN0b3IiIHJlZmVycyB0byA1MTIgYnl0ZXMuICBJdCBpcyBpbmRlcGVuZGVudCBvZiB0aGUgYWN0dWFsIHNlY3Rvcgorc2l6ZSBvZiB0aGUgdW5kZXJseWluZyBtZWRpdW0uCisKK1RoZSBmaXJzdCBzdGVwIGluIGxvYWRpbmcgYSBMaW51eCBrZXJuZWwgc2hvdWxkIGJlIHRvIGxvYWQgdGhlCityZWFsLW1vZGUgY29kZSAoYm9vdCBzZWN0b3IgYW5kIHNldHVwIGNvZGUpIGFuZCB0aGVuIGV4YW1pbmUgdGhlCitmb2xsb3dpbmcgaGVhZGVyIGF0IG9mZnNldCAweDAxZjEuICBUaGUgcmVhbC1tb2RlIGNvZGUgY2FuIHRvdGFsIHVwIHRvCiszMkssIGFsdGhvdWdoIHRoZSBib290IGxvYWRlciBtYXkgY2hvb3NlIHRvIGxvYWQgb25seSB0aGUgZmlyc3QgdHdvCitzZWN0b3JzICgxSykgYW5kIHRoZW4gZXhhbWluZSB0aGUgYm9vdHVwIHNlY3RvciBzaXplLgorCitUaGUgaGVhZGVyIGxvb2tzIGxpa2U6CisKK09mZnNldAlQcm90bwlOYW1lCQlNZWFuaW5nCisvU2l6ZQorCiswMUYxLzEJQUxMKDEJc2V0dXBfc2VjdHMJVGhlIHNpemUgb2YgdGhlIHNldHVwIGluIHNlY3RvcnMKKzAxRjIvMglBTEwJcm9vdF9mbGFncwlJZiBzZXQsIHRoZSByb290IGlzIG1vdW50ZWQgcmVhZG9ubHkKKzAxRjQvNAkyLjA0KygyCXN5c3NpemUJCVRoZSBzaXplIG9mIHRoZSAzMi1iaXQgY29kZSBpbiAxNi1ieXRlIHBhcmFzCiswMUY4LzIJQUxMCXJhbV9zaXplCURPIE5PVCBVU0UgLSBmb3IgYm9vdHNlY3QuUyB1c2Ugb25seQorMDFGQS8yCUFMTAl2aWRfbW9kZQlWaWRlbyBtb2RlIGNvbnRyb2wKKzAxRkMvMglBTEwJcm9vdF9kZXYJRGVmYXVsdCByb290IGRldmljZSBudW1iZXIKKzAxRkUvMglBTEwJYm9vdF9mbGFnCTB4QUE1NSBtYWdpYyBudW1iZXIKKzAyMDAvMgkyLjAwKwlqdW1wCQlKdW1wIGluc3RydWN0aW9uCiswMjAyLzQJMi4wMCsJaGVhZGVyCQlNYWdpYyBzaWduYXR1cmUgIkhkclMiCiswMjA2LzIJMi4wMCsJdmVyc2lvbgkJQm9vdCBwcm90b2NvbCB2ZXJzaW9uIHN1cHBvcnRlZAorMDIwOC80CTIuMDArCXJlYWxtb2RlX3N3dGNoCUJvb3QgbG9hZGVyIGhvb2sgKHNlZSBiZWxvdykKKzAyMEMvMgkyLjAwKwlzdGFydF9zeXMJVGhlIGxvYWQtbG93IHNlZ21lbnQgKDB4MTAwMCkgKG9ic29sZXRlKQorMDIwRS8yCTIuMDArCWtlcm5lbF92ZXJzaW9uCVBvaW50ZXIgdG8ga2VybmVsIHZlcnNpb24gc3RyaW5nCiswMjEwLzEJMi4wMCsJdHlwZV9vZl9sb2FkZXIJQm9vdCBsb2FkZXIgaWRlbnRpZmllcgorMDIxMS8xCTIuMDArCWxvYWRmbGFncwlCb290IHByb3RvY29sIG9wdGlvbiBmbGFncworMDIxMi8yCTIuMDArCXNldHVwX21vdmVfc2l6ZQlNb3ZlIHRvIGhpZ2ggbWVtb3J5IHNpemUgKHVzZWQgd2l0aCBob29rcykKKzAyMTQvNAkyLjAwKwljb2RlMzJfc3RhcnQJQm9vdCBsb2FkZXIgaG9vayAoc2VlIGJlbG93KQorMDIxOC80CTIuMDArCXJhbWRpc2tfaW1hZ2UJaW5pdHJkIGxvYWQgYWRkcmVzcyAoc2V0IGJ5IGJvb3QgbG9hZGVyKQorMDIxQy80CTIuMDArCXJhbWRpc2tfc2l6ZQlpbml0cmQgc2l6ZSAoc2V0IGJ5IGJvb3QgbG9hZGVyKQorMDIyMC80CTIuMDArCWJvb3RzZWN0X2tsdWRnZQlETyBOT1QgVVNFIC0gZm9yIGJvb3RzZWN0LlMgdXNlIG9ubHkKKzAyMjQvMgkyLjAxKwloZWFwX2VuZF9wdHIJRnJlZSBtZW1vcnkgYWZ0ZXIgc2V0dXAgZW5kCiswMjI2LzIJTi9BCXBhZDEJCVVudXNlZAorMDIyOC80CTIuMDIrCWNtZF9saW5lX3B0cgkzMi1iaXQgcG9pbnRlciB0byB0aGUga2VybmVsIGNvbW1hbmQgbGluZQorMDIyQy80CTIuMDMrCWluaXRyZF9hZGRyX21heAlIaWdoZXN0IGxlZ2FsIGluaXRyZCBhZGRyZXNzCiswMjMwLzQJMi4wNSsJa2VybmVsX2FsaWdubWVudCBQaHlzaWNhbCBhZGRyIGFsaWdubWVudCByZXF1aXJlZCBmb3Iga2VybmVsCiswMjM0LzEJMi4wNSsJcmVsb2NhdGFibGVfa2VybmVsIFdoZXRoZXIga2VybmVsIGlzIHJlbG9jYXRhYmxlIG9yIG5vdAorMDIzNS8zCU4vQQlwYWQyCQlVbnVzZWQKKzAyMzgvNAkyLjA2KwljbWRsaW5lX3NpemUJTWF4aW11bSBzaXplIG9mIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lCiswMjNDLzQJMi4wNysJaGFyZHdhcmVfc3ViYXJjaCBIYXJkd2FyZSBzdWJhcmNoaXRlY3R1cmUKKzAyNDAvOAkyLjA3KwloYXJkd2FyZV9zdWJhcmNoX2RhdGEgU3ViYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGRhdGEKKzAyNDgvNAkyLjA4KwlwYXlsb2FkX29mZnNldAlPZmZzZXQgb2Yga2VybmVsIHBheWxvYWQKKzAyNEMvNAkyLjA4KwlwYXlsb2FkX2xlbmd0aAlMZW5ndGggb2Yga2VybmVsIHBheWxvYWQKKzAyNTAvOAkyLjA5KwlzZXR1cF9kYXRhCTY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIGxpbmtlZCBsaXN0CisJCQkJb2Ygc3RydWN0IHNldHVwX2RhdGEKKworKDEpIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgaWYgdGhlIHNldHVwX3NlY3RzIGZpZWxkIGNvbnRhaW5zIDAsIHRoZQorICAgIHJlYWwgdmFsdWUgaXMgNC4KKworKDIpIEZvciBib290IHByb3RvY29sIHByaW9yIHRvIDIuMDQsIHRoZSB1cHBlciB0d28gYnl0ZXMgb2YgdGhlIHN5c3NpemUKKyAgICBmaWVsZCBhcmUgdW51c2FibGUsIHdoaWNoIG1lYW5zIHRoZSBzaXplIG9mIGEgYnpJbWFnZSBrZXJuZWwKKyAgICBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KKworSWYgdGhlICJIZHJTIiAoMHg1MzcyNjQ0OCkgbWFnaWMgbnVtYmVyIGlzIG5vdCBmb3VuZCBhdCBvZmZzZXQgMHgyMDIsCit0aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uIGlzICJvbGQiLiAgTG9hZGluZyBhbiBvbGQga2VybmVsLCB0aGUKK2ZvbGxvd2luZyBwYXJhbWV0ZXJzIHNob3VsZCBiZSBhc3N1bWVkOgorCisJSW1hZ2UgdHlwZSA9IHpJbWFnZQorCWluaXRyZCBub3Qgc3VwcG9ydGVkCisJUmVhbC1tb2RlIGtlcm5lbCBtdXN0IGJlIGxvY2F0ZWQgYXQgMHg5MDAwMC4KKworT3RoZXJ3aXNlLCB0aGUgInZlcnNpb24iIGZpZWxkIGNvbnRhaW5zIHRoZSBwcm90b2NvbCB2ZXJzaW9uLAorZS5nLiBwcm90b2NvbCB2ZXJzaW9uIDIuMDEgd2lsbCBjb250YWluIDB4MDIwMSBpbiB0aGlzIGZpZWxkLiAgV2hlbgorc2V0dGluZyBmaWVsZHMgaW4gdGhlIGhlYWRlciwgeW91IG11c3QgbWFrZSBzdXJlIG9ubHkgdG8gc2V0IGZpZWxkcworc3VwcG9ydGVkIGJ5IHRoZSBwcm90b2NvbCB2ZXJzaW9uIGluIHVzZS4KKworCisqKioqIERFVEFJTFMgT0YgSEVBREVSIEZJRUxEUworCitGb3IgZWFjaCBmaWVsZCwgc29tZSBhcmUgaW5mb3JtYXRpb24gZnJvbSB0aGUga2VybmVsIHRvIHRoZSBib290bG9hZGVyCisoInJlYWQiKSwgc29tZSBhcmUgZXhwZWN0ZWQgdG8gYmUgZmlsbGVkIG91dCBieSB0aGUgYm9vdGxvYWRlcgorKCJ3cml0ZSIpLCBhbmQgc29tZSBhcmUgZXhwZWN0ZWQgdG8gYmUgcmVhZCBhbmQgbW9kaWZpZWQgYnkgdGhlCitib290bG9hZGVyICgibW9kaWZ5IikuCisKK0FsbCBnZW5lcmFsIHB1cnBvc2UgYm9vdCBsb2FkZXJzIHNob3VsZCB3cml0ZSB0aGUgZmllbGRzIG1hcmtlZAorKG9ibGlnYXRvcnkpLiAgQm9vdCBsb2FkZXJzIHdobyB3YW50IHRvIGxvYWQgdGhlIGtlcm5lbCBhdCBhCitub25zdGFuZGFyZCBhZGRyZXNzIHNob3VsZCBmaWxsIGluIHRoZSBmaWVsZHMgbWFya2VkIChyZWxvYyk7IG90aGVyCitib290IGxvYWRlcnMgY2FuIGlnbm9yZSB0aG9zZSBmaWVsZHMuCisKK1RoZSBieXRlIG9yZGVyIG9mIGFsbCBmaWVsZHMgaXMgbGl0dGxlZW5kaWFuICh0aGlzIGlzIHg4NiwgYWZ0ZXIgYWxsLikKKworRmllbGQgbmFtZToJc2V0dXBfc2VjdHMKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgxZjEvMQorUHJvdG9jb2w6CUFMTAorCisgIFRoZSBzaXplIG9mIHRoZSBzZXR1cCBjb2RlIGluIDUxMi1ieXRlIHNlY3RvcnMuICBJZiB0aGlzIGZpZWxkIGlzCisgIDAsIHRoZSByZWFsIHZhbHVlIGlzIDQuICBUaGUgcmVhbC1tb2RlIGNvZGUgY29uc2lzdHMgb2YgdGhlIGJvb3QKKyAgc2VjdG9yIChhbHdheXMgb25lIDUxMi1ieXRlIHNlY3RvcikgcGx1cyB0aGUgc2V0dXAgY29kZS4KKworRmllbGQgbmFtZToJIHJvb3RfZmxhZ3MKK1R5cGU6CQkgbW9kaWZ5IChvcHRpb25hbCkKK09mZnNldC9zaXplOgkgMHgxZjIvMgorUHJvdG9jb2w6CSBBTEwKKworICBJZiB0aGlzIGZpZWxkIGlzIG5vbnplcm8sIHRoZSByb290IGRlZmF1bHRzIHRvIHJlYWRvbmx5LiAgVGhlIHVzZSBvZgorICB0aGlzIGZpZWxkIGlzIGRlcHJlY2F0ZWQ7IHVzZSB0aGUgInJvIiBvciAicnciIG9wdGlvbnMgb24gdGhlCisgIGNvbW1hbmQgbGluZSBpbnN0ZWFkLgorCitGaWVsZCBuYW1lOglzeXNzaXplCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MWY0LzQgKHByb3RvY29sIDIuMDQrKSAweDFmNC8yIChwcm90b2NvbCBBTEwpCitQcm90b2NvbDoJMi4wNCsKKworICBUaGUgc2l6ZSBvZiB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpbiB1bml0cyBvZiAxNi1ieXRlIHBhcmFncmFwaHMuCisgIEZvciBwcm90b2NvbCB2ZXJzaW9ucyBvbGRlciB0aGFuIDIuMDQgdGhpcyBmaWVsZCBpcyBvbmx5IHR3byBieXRlcworICB3aWRlLCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSB0cnVzdGVkIGZvciB0aGUgc2l6ZSBvZiBhIGtlcm5lbCBpZgorICB0aGUgTE9BRF9ISUdIIGZsYWcgaXMgc2V0LgorCitGaWVsZCBuYW1lOglyYW1fc2l6ZQorVHlwZToJCWtlcm5lbCBpbnRlcm5hbAorT2Zmc2V0L3NpemU6CTB4MWY4LzIKK1Byb3RvY29sOglBTEwKKworICBUaGlzIGZpZWxkIGlzIG9ic29sZXRlLgorCitGaWVsZCBuYW1lOgl2aWRfbW9kZQorVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDFmYS8yCisKKyAgUGxlYXNlIHNlZSB0aGUgc2VjdGlvbiBvbiBTUEVDSUFMIENPTU1BTkQgTElORSBPUFRJT05TLgorCitGaWVsZCBuYW1lOglyb290X2RldgorVHlwZToJCW1vZGlmeSAob3B0aW9uYWwpCitPZmZzZXQvc2l6ZToJMHgxZmMvMgorUHJvdG9jb2w6CUFMTAorCisgIFRoZSBkZWZhdWx0IHJvb3QgZGV2aWNlIGRldmljZSBudW1iZXIuICBUaGUgdXNlIG9mIHRoaXMgZmllbGQgaXMKKyAgZGVwcmVjYXRlZCwgdXNlIHRoZSAicm9vdD0iIG9wdGlvbiBvbiB0aGUgY29tbWFuZCBsaW5lIGluc3RlYWQuCisKK0ZpZWxkIG5hbWU6CWJvb3RfZmxhZworVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDFmZS8yCitQcm90b2NvbDoJQUxMCisKKyAgQ29udGFpbnMgMHhBQTU1LiAgVGhpcyBpcyB0aGUgY2xvc2VzdCB0aGluZyBvbGQgTGludXgga2VybmVscyBoYXZlCisgIHRvIGEgbWFnaWMgbnVtYmVyLgorCitGaWVsZCBuYW1lOglqdW1wCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjAwLzIKK1Byb3RvY29sOgkyLjAwKworCisgIENvbnRhaW5zIGFuIHg4NiBqdW1wIGluc3RydWN0aW9uLCAweEVCIGZvbGxvd2VkIGJ5IGEgc2lnbmVkIG9mZnNldAorICByZWxhdGl2ZSB0byBieXRlIDB4MjAyLiAgVGhpcyBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNpemUgb2YKKyAgdGhlIGhlYWRlci4KKworRmllbGQgbmFtZToJaGVhZGVyCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjAyLzQKK1Byb3RvY29sOgkyLjAwKworCisgIENvbnRhaW5zIHRoZSBtYWdpYyBudW1iZXIgIkhkclMiICgweDUzNzI2NDQ4KS4KKworRmllbGQgbmFtZToJdmVyc2lvbgorVHlwZToJCXJlYWQKK09mZnNldC9zaXplOgkweDIwNi8yCitQcm90b2NvbDoJMi4wMCsKKworICBDb250YWlucyB0aGUgYm9vdCBwcm90b2NvbCB2ZXJzaW9uLCBpbiAobWFqb3IgPDwgOCkrbWlub3IgZm9ybWF0LAorICBlLmcuIDB4MDIwNCBmb3IgdmVyc2lvbiAyLjA0LCBhbmQgMHgwYTExIGZvciBhIGh5cG90aGV0aWNhbCB2ZXJzaW9uCisgIDEwLjE3LgorCitGaWVsZCBuYW1lOglyZWFkbW9kZV9zd3RjaAorVHlwZToJCW1vZGlmeSAob3B0aW9uYWwpCitPZmZzZXQvc2l6ZToJMHgyMDgvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgQm9vdCBsb2FkZXIgaG9vayAoc2VlIEFEVkFOQ0VEIEJPT1QgTE9BREVSIEhPT0tTIGJlbG93LikKKworRmllbGQgbmFtZToJc3RhcnRfc3lzCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjBjLzQKK1Byb3RvY29sOgkyLjAwKworCisgIFRoZSBsb2FkIGxvdyBzZWdtZW50ICgweDEwMDApLiAgT2Jzb2xldGUuCisKK0ZpZWxkIG5hbWU6CWtlcm5lbF92ZXJzaW9uCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjBlLzIKK1Byb3RvY29sOgkyLjAwKworCisgIElmIHNldCB0byBhIG5vbnplcm8gdmFsdWUsIGNvbnRhaW5zIGEgcG9pbnRlciB0byBhIE5VTC10ZXJtaW5hdGVkCisgIGh1bWFuLXJlYWRhYmxlIGtlcm5lbCB2ZXJzaW9uIG51bWJlciBzdHJpbmcsIGxlc3MgMHgyMDAuICBUaGlzIGNhbgorICBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIHRvIHRoZSB1c2VyLiAgVGhpcyB2YWx1ZQorICBzaG91bGQgYmUgbGVzcyB0aGFuICgweDIwMCpzZXR1cF9zZWN0cykuCisKKyAgRm9yIGV4YW1wbGUsIGlmIHRoaXMgdmFsdWUgaXMgc2V0IHRvIDB4MWMwMCwgdGhlIGtlcm5lbCB2ZXJzaW9uCisgIG51bWJlciBzdHJpbmcgY2FuIGJlIGZvdW5kIGF0IG9mZnNldCAweDFlMDAgaW4gdGhlIGtlcm5lbCBmaWxlLgorICBUaGlzIGlzIGEgdmFsaWQgdmFsdWUgaWYgYW5kIG9ubHkgaWYgdGhlICJzZXR1cF9zZWN0cyIgZmllbGQKKyAgY29udGFpbnMgdGhlIHZhbHVlIDE1IG9yIGhpZ2hlciwgYXM6CisKKwkweDFjMDAgIDwgMTUqMHgyMDAgKD0gMHgxZTAwKSBidXQKKwkweDFjMDAgPj0gMTQqMHgyMDAgKD0gMHgxYzAwKQorCisJMHgxYzAwID4+IDkgPSAxNCwgc28gdGhlIG1pbmltdW0gdmFsdWUgZm9yIHNldHVwX3NlY3MgaXMgMTUuCisKK0ZpZWxkIG5hbWU6CXR5cGVfb2ZfbG9hZGVyCitUeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMTAvMQorUHJvdG9jb2w6CTIuMDArCisKKyAgSWYgeW91ciBib290IGxvYWRlciBoYXMgYW4gYXNzaWduZWQgaWQgKHNlZSB0YWJsZSBiZWxvdyksIGVudGVyCisgIDB4VFYgaGVyZSwgd2hlcmUgVCBpcyBhbiBpZGVudGlmaWVyIGZvciB0aGUgYm9vdCBsb2FkZXIgYW5kIFYgaXMKKyAgYSB2ZXJzaW9uIG51bWJlci4gIE90aGVyd2lzZSwgZW50ZXIgMHhGRiBoZXJlLgorCisgIEFzc2lnbmVkIGJvb3QgbG9hZGVyIGlkczoKKwkwICBMSUxPCQkJKDB4MDAgcmVzZXJ2ZWQgZm9yIHByZS0yLjAwIGJvb3Rsb2FkZXIpCisJMSAgTG9hZGxpbgorCTIgIGJvb3RzZWN0LWxvYWRlcgkoMHgyMCwgYWxsIG90aGVyIHZhbHVlcyByZXNlcnZlZCkKKwkzICBTWVNMSU5VWAorCTQgIEV0aGVyQm9vdAorCTUgIEVMSUxPCisJNyAgR1J1QgorCTggIFUtQk9PVAorCTkgIFhlbgorCUEgIEd1amluCisJQiAgUWVtdQorCisgIFBsZWFzZSBjb250YWN0IDxocGFAenl0b3IuY29tPiBpZiB5b3UgbmVlZCBhIGJvb3Rsb2FkZXIgSUQKKyAgdmFsdWUgYXNzaWduZWQuCisKK0ZpZWxkIG5hbWU6CWxvYWRmbGFncworVHlwZToJCW1vZGlmeSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIxMS8xCitQcm90b2NvbDoJMi4wMCsKKworICBUaGlzIGZpZWxkIGlzIGEgYml0bWFzay4KKworICBCaXQgMCAocmVhZCk6CUxPQURFRF9ISUdICisJLSBJZiAwLCB0aGUgcHJvdGVjdGVkLW1vZGUgY29kZSBpcyBsb2FkZWQgYXQgMHgxMDAwMC4KKwktIElmIDEsIHRoZSBwcm90ZWN0ZWQtbW9kZSBjb2RlIGlzIGxvYWRlZCBhdCAweDEwMDAwMC4KKworICBCaXQgNSAod3JpdGUpOiBRVUlFVF9GTEFHCisJLSBJZiAwLCBwcmludCBlYXJseSBtZXNzYWdlcy4KKwktIElmIDEsIHN1cHByZXNzIGVhcmx5IG1lc3NhZ2VzLgorCQlUaGlzIHJlcXVlc3RzIHRvIHRoZSBrZXJuZWwgKGRlY29tcHJlc3NvciBhbmQgZWFybHkKKwkJa2VybmVsKSB0byBub3Qgd3JpdGUgZWFybHkgbWVzc2FnZXMgdGhhdCByZXF1aXJlCisJCWFjY2Vzc2luZyB0aGUgZGlzcGxheSBoYXJkd2FyZSBkaXJlY3RseS4KKworICBCaXQgNiAod3JpdGUpOiBLRUVQX1NFR01FTlRTCisJUHJvdG9jb2w6IDIuMDcrCisJLSBJZiAwLCByZWxvYWQgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGluIHRoZSAzMmJpdCBlbnRyeSBwb2ludC4KKwktIElmIDEsIGRvIG5vdCByZWxvYWQgdGhlIHNlZ21lbnQgcmVnaXN0ZXJzIGluIHRoZSAzMmJpdCBlbnRyeSBwb2ludC4KKwkJQXNzdW1lIHRoYXQgJWNzICVkcyAlc3MgJWVzIGFyZSBhbGwgc2V0IHRvIGZsYXQgc2VnbWVudHMgd2l0aAorCQlhIGJhc2Ugb2YgMCAob3IgdGhlIGVxdWl2YWxlbnQgZm9yIHRoZWlyIGVudmlyb25tZW50KS4KKworICBCaXQgNyAod3JpdGUpOiBDQU5fVVNFX0hFQVAKKwlTZXQgdGhpcyBiaXQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSB2YWx1ZSBlbnRlcmVkIGluIHRoZQorCWhlYXBfZW5kX3B0ciBpcyB2YWxpZC4gIElmIHRoaXMgZmllbGQgaXMgY2xlYXIsIHNvbWUgc2V0dXAgY29kZQorCWZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBkaXNhYmxlZC4KKworRmllbGQgbmFtZToJc2V0dXBfbW92ZV9zaXplCitUeXBlOgkJbW9kaWZ5IChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjEyLzIKK1Byb3RvY29sOgkyLjAwLTIuMDEKKworICBXaGVuIHVzaW5nIHByb3RvY29sIDIuMDAgb3IgMi4wMSwgaWYgdGhlIHJlYWwgbW9kZSBrZXJuZWwgaXMgbm90CisgIGxvYWRlZCBhdCAweDkwMDAwLCBpdCBnZXRzIG1vdmVkIHRoZXJlIGxhdGVyIGluIHRoZSBsb2FkaW5nCisgIHNlcXVlbmNlLiAgRmlsbCBpbiB0aGlzIGZpZWxkIGlmIHlvdSB3YW50IGFkZGl0aW9uYWwgZGF0YSAoc3VjaCBhcworICB0aGUga2VybmVsIGNvbW1hbmQgbGluZSkgbW92ZWQgaW4gYWRkaXRpb24gdG8gdGhlIHJlYWwtbW9kZSBrZXJuZWwKKyAgaXRzZWxmLgorCisgIFRoZSB1bml0IGlzIGJ5dGVzIHN0YXJ0aW5nIHdpdGggdGhlIGJlZ2lubmluZyBvZiB0aGUgYm9vdCBzZWN0b3IuCisgIAorICBUaGlzIGZpZWxkIGlzIGNhbiBiZSBpZ25vcmVkIHdoZW4gdGhlIHByb3RvY29sIGlzIDIuMDIgb3IgaGlnaGVyLCBvcgorICBpZiB0aGUgcmVhbC1tb2RlIGNvZGUgaXMgbG9hZGVkIGF0IDB4OTAwMDAuCisKK0ZpZWxkIG5hbWU6CWNvZGUzMl9zdGFydAorVHlwZToJCW1vZGlmeSAob3B0aW9uYWwsIHJlbG9jKQorT2Zmc2V0L3NpemU6CTB4MjE0LzQKK1Byb3RvY29sOgkyLjAwKworCisgIFRoZSBhZGRyZXNzIHRvIGp1bXAgdG8gaW4gcHJvdGVjdGVkIG1vZGUuICBUaGlzIGRlZmF1bHRzIHRvIHRoZSBsb2FkCisgIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbCwgYW5kIGNhbiBiZSB1c2VkIGJ5IHRoZSBib290IGxvYWRlciB0bworICBkZXRlcm1pbmUgdGhlIHByb3BlciBsb2FkIGFkZHJlc3MuCisKKyAgVGhpcyBmaWVsZCBjYW4gYmUgbW9kaWZpZWQgZm9yIHR3byBwdXJwb3NlczoKKworICAxLiBhcyBhIGJvb3QgbG9hZGVyIGhvb2sgKHNlZSBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUyBiZWxvdy4pCisKKyAgMi4gaWYgYSBib290bG9hZGVyIHdoaWNoIGRvZXMgbm90IGluc3RhbGwgYSBob29rIGxvYWRzIGEKKyAgICAgcmVsb2NhdGFibGUga2VybmVsIGF0IGEgbm9uc3RhbmRhcmQgYWRkcmVzcyBpdCB3aWxsIGhhdmUgdG8gbW9kaWZ5CisgICAgIHRoaXMgZmllbGQgdG8gcG9pbnQgdG8gdGhlIGxvYWQgYWRkcmVzcy4KKworRmllbGQgbmFtZToJcmFtZGlza19pbWFnZQorVHlwZToJCXdyaXRlIChvYmxpZ2F0b3J5KQorT2Zmc2V0L3NpemU6CTB4MjE4LzQKK1Byb3RvY29sOgkyLjAwKworCisgIFRoZSAzMi1iaXQgbGluZWFyIGFkZHJlc3Mgb2YgdGhlIGluaXRpYWwgcmFtZGlzayBvciByYW1mcy4gIExlYXZlIGF0CisgIHplcm8gaWYgdGhlcmUgaXMgbm8gaW5pdGlhbCByYW1kaXNrL3JhbWZzLgorCitGaWVsZCBuYW1lOglyYW1kaXNrX3NpemUKK1R5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIxYy80CitQcm90b2NvbDoJMi4wMCsKKworICBTaXplIG9mIHRoZSBpbml0aWFsIHJhbWRpc2sgb3IgcmFtZnMuICBMZWF2ZSBhdCB6ZXJvIGlmIHRoZXJlIGlzIG5vCisgIGluaXRpYWwgcmFtZGlzay9yYW1mcy4KKworRmllbGQgbmFtZToJYm9vdHNlY3Rfa2x1ZGdlCitUeXBlOgkJa2VybmVsIGludGVybmFsCitPZmZzZXQvc2l6ZToJMHgyMjAvNAorUHJvdG9jb2w6CTIuMDArCisKKyAgVGhpcyBmaWVsZCBpcyBvYnNvbGV0ZS4KKworRmllbGQgbmFtZToJaGVhcF9lbmRfcHRyCitUeXBlOgkJd3JpdGUgKG9ibGlnYXRvcnkpCitPZmZzZXQvc2l6ZToJMHgyMjQvMgorUHJvdG9jb2w6CTIuMDErCisKKyAgU2V0IHRoaXMgZmllbGQgdG8gdGhlIG9mZnNldCAoZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSByZWFsLW1vZGUKKyAgY29kZSkgb2YgdGhlIGVuZCBvZiB0aGUgc2V0dXAgc3RhY2svaGVhcCwgbWludXMgMHgwMjAwLgorCitGaWVsZCBuYW1lOgljbWRfbGluZV9wdHIKK1R5cGU6CQl3cml0ZSAob2JsaWdhdG9yeSkKK09mZnNldC9zaXplOgkweDIyOC80CitQcm90b2NvbDoJMi4wMisKKworICBTZXQgdGhpcyBmaWVsZCB0byB0aGUgbGluZWFyIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCisgIFRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGNhbiBiZSBsb2NhdGVkIGFueXdoZXJlIGJldHdlZW4gdGhlIGVuZCBvZgorICB0aGUgc2V0dXAgaGVhcCBhbmQgMHhBMDAwMDsgaXQgZG9lcyBub3QgaGF2ZSB0byBiZSBsb2NhdGVkIGluIHRoZQorICBzYW1lIDY0SyBzZWdtZW50IGFzIHRoZSByZWFsLW1vZGUgY29kZSBpdHNlbGYuCisKKyAgRmlsbCBpbiB0aGlzIGZpZWxkIGV2ZW4gaWYgeW91ciBib290IGxvYWRlciBkb2VzIG5vdCBzdXBwb3J0IGEKKyAgY29tbWFuZCBsaW5lLCBpbiB3aGljaCBjYXNlIHlvdSBjYW4gcG9pbnQgdGhpcyB0byBhbiBlbXB0eSBzdHJpbmcKKyAgKG9yIGJldHRlciB5ZXQsIHRvIHRoZSBzdHJpbmcgImF1dG8iLikgIElmIHRoaXMgZmllbGQgaXMgbGVmdCBhdAorICB6ZXJvLCB0aGUga2VybmVsIHdpbGwgYXNzdW1lIHRoYXQgeW91ciBib290IGxvYWRlciBkb2VzIG5vdCBzdXBwb3J0CisgIHRoZSAyLjAyKyBwcm90b2NvbC4KKworRmllbGQgbmFtZToJaW5pdHJkX2FkZHJfbWF4CitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjJjLzQKK1Byb3RvY29sOgkyLjAzKworCisgIFRoZSBtYXhpbXVtIGFkZHJlc3MgdGhhdCBtYXkgYmUgb2NjdXBpZWQgYnkgdGhlIGluaXRpYWwKKyAgcmFtZGlzay9yYW1mcyBjb250ZW50cy4gIEZvciBib290IHByb3RvY29scyAyLjAyIG9yIGVhcmxpZXIsIHRoaXMKKyAgZmllbGQgaXMgbm90IHByZXNlbnQsIGFuZCB0aGUgbWF4aW11bSBhZGRyZXNzIGlzIDB4MzdGRkZGRkYuICAoVGhpcworICBhZGRyZXNzIGlzIGRlZmluZWQgYXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGhpZ2hlc3Qgc2FmZSBieXRlLCBzbyBpZgorICB5b3VyIHJhbWRpc2sgaXMgZXhhY3RseSAxMzEwNzIgYnl0ZXMgbG9uZyBhbmQgdGhpcyBmaWVsZCBpcworICAweDM3RkZGRkZGLCB5b3UgY2FuIHN0YXJ0IHlvdXIgcmFtZGlzayBhdCAweDM3RkUwMDAwLikKKworRmllbGQgbmFtZToJa2VybmVsX2FsaWdubWVudAorVHlwZToJCXJlYWQgKHJlbG9jKQorT2Zmc2V0L3NpemU6CTB4MjMwLzQKK1Byb3RvY29sOgkyLjA1KworCisgIEFsaWdubWVudCB1bml0IHJlcXVpcmVkIGJ5IHRoZSBrZXJuZWwgKGlmIHJlbG9jYXRhYmxlX2tlcm5lbCBpcyB0cnVlLikKKworRmllbGQgbmFtZToJcmVsb2NhdGFibGVfa2VybmVsCitUeXBlOgkJcmVhZCAocmVsb2MpCitPZmZzZXQvc2l6ZToJMHgyMzQvMQorUHJvdG9jb2w6CTIuMDUrCisKKyAgSWYgdGhpcyBmaWVsZCBpcyBub256ZXJvLCB0aGUgcHJvdGVjdGVkLW1vZGUgcGFydCBvZiB0aGUga2VybmVsIGNhbgorICBiZSBsb2FkZWQgYXQgYW55IGFkZHJlc3MgdGhhdCBzYXRpc2ZpZXMgdGhlIGtlcm5lbF9hbGlnbm1lbnQgZmllbGQuCisgIEFmdGVyIGxvYWRpbmcsIHRoZSBib290IGxvYWRlciBtdXN0IHNldCB0aGUgY29kZTMyX3N0YXJ0IGZpZWxkIHRvCisgIHBvaW50IHRvIHRoZSBsb2FkZWQgY29kZSwgb3IgdG8gYSBib290IGxvYWRlciBob29rLgorCitGaWVsZCBuYW1lOgljbWRsaW5lX3NpemUKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyMzgvNAorUHJvdG9jb2w6CTIuMDYrCisKKyAgVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgY29tbWFuZCBsaW5lIHdpdGhvdXQgdGhlIHRlcm1pbmF0aW5nCisgIHplcm8uIFRoaXMgbWVhbnMgdGhhdCB0aGUgY29tbWFuZCBsaW5lIGNhbiBjb250YWluIGF0IG1vc3QKKyAgY21kbGluZV9zaXplIGNoYXJhY3RlcnMuIFdpdGggcHJvdG9jb2wgdmVyc2lvbiAyLjA1IGFuZCBlYXJsaWVyLCB0aGUKKyAgbWF4aW11bSBzaXplIHdhcyAyNTUuCisKK0ZpZWxkIG5hbWU6CWhhcmR3YXJlX3N1YmFyY2gKK1R5cGU6CQl3cml0ZSAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIHg4Ni9QQykKK09mZnNldC9zaXplOgkweDIzYy80CitQcm90b2NvbDoJMi4wNysKKworICBJbiBhIHBhcmF2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCB0aGUgaGFyZHdhcmUgbG93IGxldmVsIGFyY2hpdGVjdHVyYWwKKyAgcGllY2VzIHN1Y2ggYXMgaW50ZXJydXB0IGhhbmRsaW5nLCBwYWdlIHRhYmxlIGhhbmRsaW5nLCBhbmQKKyAgYWNjZXNzaW5nIHByb2Nlc3MgY29udHJvbCByZWdpc3RlcnMgbmVlZHMgdG8gYmUgZG9uZSBkaWZmZXJlbnRseS4KKworICBUaGlzIGZpZWxkIGFsbG93cyB0aGUgYm9vdGxvYWRlciB0byBpbmZvcm0gdGhlIGtlcm5lbCB3ZSBhcmUgaW4gb25lCisgIG9uZSBvZiB0aG9zZSBlbnZpcm9ubWVudHMuCisKKyAgMHgwMDAwMDAwMAlUaGUgZGVmYXVsdCB4ODYvUEMgZW52aXJvbm1lbnQKKyAgMHgwMDAwMDAwMQlsZ3Vlc3QKKyAgMHgwMDAwMDAwMglYZW4KKworRmllbGQgbmFtZToJaGFyZHdhcmVfc3ViYXJjaF9kYXRhCitUeXBlOgkJd3JpdGUgKHN1YmFyY2gtZGVwZW5kZW50KQorT2Zmc2V0L3NpemU6CTB4MjQwLzgKK1Byb3RvY29sOgkyLjA3KworCisgIEEgcG9pbnRlciB0byBkYXRhIHRoYXQgaXMgc3BlY2lmaWMgdG8gaGFyZHdhcmUgc3ViYXJjaAorICBUaGlzIGZpZWxkIGlzIGN1cnJlbnRseSB1bnVzZWQgZm9yIHRoZSBkZWZhdWx0IHg4Ni9QQyBlbnZpcm9ubWVudCwKKyAgZG8gbm90IG1vZGlmeS4KKworRmllbGQgbmFtZToJcGF5bG9hZF9vZmZzZXQKK1R5cGU6CQlyZWFkCitPZmZzZXQvc2l6ZToJMHgyNDgvNAorUHJvdG9jb2w6CTIuMDgrCisKKyAgSWYgbm9uLXplcm8gdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZSBvZmZzZXQgZnJvbSB0aGUgZW5kIG9mIHRoZQorICByZWFsLW1vZGUgY29kZSB0byB0aGUgcGF5bG9hZC4KKworICBUaGUgcGF5bG9hZCBtYXkgYmUgY29tcHJlc3NlZC4gVGhlIGZvcm1hdCBvZiBib3RoIHRoZSBjb21wcmVzc2VkIGFuZAorICB1bmNvbXByZXNzZWQgZGF0YSBzaG91bGQgYmUgZGV0ZXJtaW5lZCB1c2luZyB0aGUgc3RhbmRhcmQgbWFnaWMKKyAgbnVtYmVycy4gQ3VycmVudGx5IG9ubHkgZ3ppcCBjb21wcmVzc2VkIEVMRiBpcyB1c2VkLgorICAKK0ZpZWxkIG5hbWU6CXBheWxvYWRfbGVuZ3RoCitUeXBlOgkJcmVhZAorT2Zmc2V0L3NpemU6CTB4MjRjLzQKK1Byb3RvY29sOgkyLjA4KworCisgIFRoZSBsZW5ndGggb2YgdGhlIHBheWxvYWQuCisKK0ZpZWxkIG5hbWU6CXNldHVwX2RhdGEKK1R5cGU6CQl3cml0ZSAoc3BlY2lhbCkKK09mZnNldC9zaXplOgkweDI1MC84CitQcm90b2NvbDoJMi4wOSsKKworICBUaGUgNjQtYml0IHBoeXNpY2FsIHBvaW50ZXIgdG8gTlVMTCB0ZXJtaW5hdGVkIHNpbmdsZSBsaW5rZWQgbGlzdCBvZgorICBzdHJ1Y3Qgc2V0dXBfZGF0YS4gVGhpcyBpcyB1c2VkIHRvIGRlZmluZSBhIG1vcmUgZXh0ZW5zaWJsZSBib290CisgIHBhcmFtZXRlcnMgcGFzc2luZyBtZWNoYW5pc20uIFRoZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBzZXR1cF9kYXRhIGlzCisgIGFzIGZvbGxvdzoKKworICBzdHJ1Y3Qgc2V0dXBfZGF0YSB7CisJICB1NjQgbmV4dDsKKwkgIHUzMiB0eXBlOworCSAgdTMyIGxlbjsKKwkgIHU4ICBkYXRhWzBdOworICB9OworCisgIFdoZXJlLCB0aGUgbmV4dCBpcyBhIDY0LWJpdCBwaHlzaWNhbCBwb2ludGVyIHRvIHRoZSBuZXh0IG5vZGUgb2YKKyAgbGlua2VkIGxpc3QsIHRoZSBuZXh0IGZpZWxkIG9mIHRoZSBsYXN0IG5vZGUgaXMgMDsgdGhlIHR5cGUgaXMgdXNlZAorICB0byBpZGVudGlmeSB0aGUgY29udGVudHMgb2YgZGF0YTsgdGhlIGxlbiBpcyB0aGUgbGVuZ3RoIG9mIGRhdGEKKyAgZmllbGQ7IHRoZSBkYXRhIGhvbGRzIHRoZSByZWFsIHBheWxvYWQuCisKKyAgVGhpcyBsaXN0IG1heSBiZSBtb2RpZmllZCBhdCBhIG51bWJlciBvZiBwb2ludHMgZHVyaW5nIHRoZSBib290dXAKKyAgcHJvY2Vzcy4gIFRoZXJlZm9yZSwgd2hlbiBtb2RpZnlpbmcgdGhpcyBsaXN0IG9uZSBzaG91bGQgYWx3YXlzIG1ha2UKKyAgc3VyZSB0byBjb25zaWRlciB0aGUgY2FzZSB3aGVyZSB0aGUgbGlua2VkIGxpc3QgYWxyZWFkeSBjb250YWlucworICBlbnRyaWVzLgorCisKKyoqKiogVEhFIElNQUdFIENIRUNLU1VNCisKK0Zyb20gYm9vdCBwcm90b2NvbCB2ZXJzaW9uIDIuMDggb253YXJkcyB0aGUgQ1JDLTMyIGlzIGNhbGN1bGF0ZWQgb3ZlcgordGhlIGVudGlyZSBmaWxlIHVzaW5nIHRoZSBjaGFyYWN0ZXJpc3RpYyBwb2x5bm9taWFsIDB4MDRDMTFEQjcgYW5kIGFuCitpbml0aWFsIHJlbWFpbmRlciBvZiAweGZmZmZmZmZmLiAgVGhlIGNoZWNrc3VtIGlzIGFwcGVuZGVkIHRvIHRoZQorZmlsZTsgdGhlcmVmb3JlIHRoZSBDUkMgb2YgdGhlIGZpbGUgdXAgdG8gdGhlIGxpbWl0IHNwZWNpZmllZCBpbiB0aGUKK3N5c3NpemUgZmllbGQgb2YgdGhlIGhlYWRlciBpcyBhbHdheXMgMC4KKworCisqKioqIFRIRSBLRVJORUwgQ09NTUFORCBMSU5FCisKK1RoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGhhcyBiZWNvbWUgYW4gaW1wb3J0YW50IHdheSBmb3IgdGhlIGJvb3QKK2xvYWRlciB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBrZXJuZWwuICBTb21lIG9mIGl0cyBvcHRpb25zIGFyZSBhbHNvCityZWxldmFudCB0byB0aGUgYm9vdCBsb2FkZXIgaXRzZWxmLCBzZWUgInNwZWNpYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMiCitiZWxvdy4KKworVGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgaXMgYSBudWxsLXRlcm1pbmF0ZWQgc3RyaW5nLiBUaGUgbWF4aW11bQorbGVuZ3RoIGNhbiBiZSByZXRyaWV2ZWQgZnJvbSB0aGUgZmllbGQgY21kbGluZV9zaXplLiAgQmVmb3JlIHByb3RvY29sCit2ZXJzaW9uIDIuMDYsIHRoZSBtYXhpbXVtIHdhcyAyNTUgY2hhcmFjdGVycy4gIEEgc3RyaW5nIHRoYXQgaXMgdG9vCitsb25nIHdpbGwgYmUgYXV0b21hdGljYWxseSB0cnVuY2F0ZWQgYnkgdGhlIGtlcm5lbC4KKworSWYgdGhlIGJvb3QgcHJvdG9jb2wgdmVyc2lvbiBpcyAyLjAyIG9yIGxhdGVyLCB0aGUgYWRkcmVzcyBvZiB0aGUKK2tlcm5lbCBjb21tYW5kIGxpbmUgaXMgZ2l2ZW4gYnkgdGhlIGhlYWRlciBmaWVsZCBjbWRfbGluZV9wdHIgKHNlZQorYWJvdmUuKSAgVGhpcyBhZGRyZXNzIGNhbiBiZSBhbnl3aGVyZSBiZXR3ZWVuIHRoZSBlbmQgb2YgdGhlIHNldHVwCitoZWFwIGFuZCAweEEwMDAwLgorCitJZiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpcyAqbm90KiAyLjAyIG9yIGhpZ2hlciwgdGhlIGtlcm5lbAorY29tbWFuZCBsaW5lIGlzIGVudGVyZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBwcm90b2NvbDoKKworCUF0IG9mZnNldCAweDAwMjAgKHdvcmQpLCAiY21kX2xpbmVfbWFnaWMiLCBlbnRlciB0aGUgbWFnaWMKKwludW1iZXIgMHhBMzNGLgorCisJQXQgb2Zmc2V0IDB4MDAyMiAod29yZCksICJjbWRfbGluZV9vZmZzZXQiLCBlbnRlciB0aGUgb2Zmc2V0CisJb2YgdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUgKHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUKKwlyZWFsLW1vZGUga2VybmVsKS4KKwkKKwlUaGUga2VybmVsIGNvbW1hbmQgbGluZSAqbXVzdCogYmUgd2l0aGluIHRoZSBtZW1vcnkgcmVnaW9uCisJY292ZXJlZCBieSBzZXR1cF9tb3ZlX3NpemUsIHNvIHlvdSBtYXkgbmVlZCB0byBhZGp1c3QgdGhpcworCWZpZWxkLgorCisKKyoqKiogTUVNT1JZIExBWU9VVCBPRiBUSEUgUkVBTC1NT0RFIENPREUKKworVGhlIHJlYWwtbW9kZSBjb2RlIHJlcXVpcmVzIGEgc3RhY2svaGVhcCB0byBiZSBzZXQgdXAsIGFzIHdlbGwgYXMKK21lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLiAgVGhpcyBuZWVkcyB0byBiZSBkb25lCitpbiB0aGUgcmVhbC1tb2RlIGFjY2Vzc2libGUgbWVtb3J5IGluIGJvdHRvbSBtZWdhYnl0ZS4KKworSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgbW9kZXJuIG1hY2hpbmVzIG9mdGVuIGhhdmUgYSBzaXphYmxlIEV4dGVuZGVkCitCSU9TIERhdGEgQXJlYSAoRUJEQSkuICBBcyBhIHJlc3VsdCwgaXQgaXMgYWR2aXNhYmxlIHRvIHVzZSBhcyBsaXR0bGUKK29mIHRoZSBsb3cgbWVnYWJ5dGUgYXMgcG9zc2libGUuCisKK1VuZm9ydHVuYXRlbHksIHVuZGVyIHRoZSBmb2xsb3dpbmcgY2lyY3Vtc3RhbmNlcyB0aGUgMHg5MDAwMCBtZW1vcnkKK3NlZ21lbnQgaGFzIHRvIGJlIHVzZWQ6CisKKwktIFdoZW4gbG9hZGluZyBhIHpJbWFnZSBrZXJuZWwgKChsb2FkZmxhZ3MgJiAweDAxKSA9PSAwKS4KKwktIFdoZW4gbG9hZGluZyBhIDIuMDEgb3IgZWFybGllciBib290IHByb3RvY29sIGtlcm5lbC4KKworCSAgLT4gRm9yIHRoZSAyLjAwIGFuZCAyLjAxIGJvb3QgcHJvdG9jb2xzLCB0aGUgcmVhbC1tb2RlIGNvZGUKKwkgICAgIGNhbiBiZSBsb2FkZWQgYXQgYW5vdGhlciBhZGRyZXNzLCBidXQgaXQgaXMgaW50ZXJuYWxseQorCSAgICAgcmVsb2NhdGVkIHRvIDB4OTAwMDAuICBGb3IgdGhlICJvbGQiIHByb3RvY29sLCB0aGUKKwkgICAgIHJlYWwtbW9kZSBjb2RlIG11c3QgYmUgbG9hZGVkIGF0IDB4OTAwMDAuCisKK1doZW4gbG9hZGluZyBhdCAweDkwMDAwLCBhdm9pZCB1c2luZyBtZW1vcnkgYWJvdmUgMHg5YTAwMC4KKworRm9yIGJvb3QgcHJvdG9jb2wgMi4wMiBvciBoaWdoZXIsIHRoZSBjb21tYW5kIGxpbmUgZG9lcyBub3QgaGF2ZSB0byBiZQorbG9jYXRlZCBpbiB0aGUgc2FtZSA2NEsgc2VnbWVudCBhcyB0aGUgcmVhbC1tb2RlIHNldHVwIGNvZGU7IGl0IGlzCit0aHVzIHBlcm1pdHRlZCB0byBnaXZlIHRoZSBzdGFjay9oZWFwIHRoZSBmdWxsIDY0SyBzZWdtZW50IGFuZCBsb2NhdGUKK3RoZSBjb21tYW5kIGxpbmUgYWJvdmUgaXQuCisKK1RoZSBrZXJuZWwgY29tbWFuZCBsaW5lIHNob3VsZCBub3QgYmUgbG9jYXRlZCBiZWxvdyB0aGUgcmVhbC1tb2RlCitjb2RlLCBub3Igc2hvdWxkIGl0IGJlIGxvY2F0ZWQgaW4gaGlnaCBtZW1vcnkuCisKKworKioqKiBTQU1QTEUgQk9PVCBDT05GSUdVUkFUSU9OCisKK0FzIGEgc2FtcGxlIGNvbmZpZ3VyYXRpb24sIGFzc3VtZSB0aGUgZm9sbG93aW5nIGxheW91dCBvZiB0aGUgcmVhbAorbW9kZSBzZWdtZW50OgorCisgICAgV2hlbiBsb2FkaW5nIGJlbG93IDB4OTAwMDAsIHVzZSB0aGUgZW50aXJlIHNlZ21lbnQ6CisKKwkweDAwMDAtMHg3ZmZmCVJlYWwgbW9kZSBrZXJuZWwKKwkweDgwMDAtMHhkZmZmCVN0YWNrIGFuZCBoZWFwCisJMHhlMDAwLTB4ZmZmZglLZXJuZWwgY29tbWFuZCBsaW5lCisKKyAgICBXaGVuIGxvYWRpbmcgYXQgMHg5MDAwMCBPUiB0aGUgcHJvdG9jb2wgdmVyc2lvbiBpcyAyLjAxIG9yIGVhcmxpZXI6CisKKwkweDAwMDAtMHg3ZmZmCVJlYWwgbW9kZSBrZXJuZWwKKwkweDgwMDAtMHg5N2ZmCVN0YWNrIGFuZCBoZWFwCisJMHg5ODAwLTB4OWZmZglLZXJuZWwgY29tbWFuZCBsaW5lCisKK1N1Y2ggYSBib290IGxvYWRlciBzaG91bGQgZW50ZXIgdGhlIGZvbGxvd2luZyBmaWVsZHMgaW4gdGhlIGhlYWRlcjoKKworCXVuc2lnbmVkIGxvbmcgYmFzZV9wdHI7CS8qIGJhc2UgYWRkcmVzcyBmb3IgcmVhbC1tb2RlIHNlZ21lbnQgKi8KKworCWlmICggc2V0dXBfc2VjdHMgPT0gMCApIHsKKwkJc2V0dXBfc2VjdHMgPSA0OworCX0KKworCWlmICggcHJvdG9jb2wgPj0gMHgwMjAwICkgeworCQl0eXBlX29mX2xvYWRlciA9IDx0eXBlIGNvZGU+OworCQlpZiAoIGxvYWRpbmdfaW5pdHJkICkgeworCQkJcmFtZGlza19pbWFnZSA9IDxpbml0cmRfYWRkcmVzcz47CisJCQlyYW1kaXNrX3NpemUgPSA8aW5pdHJkX3NpemU+OworCQl9CisKKwkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDIgJiYgbG9hZGZsYWdzICYgMHgwMSApCisJCQloZWFwX2VuZCA9IDB4ZTAwMDsKKwkJZWxzZQorCQkJaGVhcF9lbmQgPSAweDk4MDA7CisKKwkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDEgKSB7CisJCQloZWFwX2VuZF9wdHIgPSBoZWFwX2VuZCAtIDB4MjAwOworCQkJbG9hZGZsYWdzIHw9IDB4ODA7IC8qIENBTl9VU0VfSEVBUCAqLworCQl9CisKKwkJaWYgKCBwcm90b2NvbCA+PSAweDAyMDIgKSB7CisJCQljbWRfbGluZV9wdHIgPSBiYXNlX3B0ciArIGhlYXBfZW5kOworCQkJc3RyY3B5KGNtZF9saW5lX3B0ciwgY21kbGluZSk7CisJCX0gZWxzZSB7CisJCQljbWRfbGluZV9tYWdpYwk9IDB4QTMzRjsKKwkJCWNtZF9saW5lX29mZnNldCA9IGhlYXBfZW5kOworCQkJc2V0dXBfbW92ZV9zaXplID0gaGVhcF9lbmQgKyBzdHJsZW4oY21kbGluZSkrMTsKKwkJCXN0cmNweShiYXNlX3B0citjbWRfbGluZV9vZmZzZXQsIGNtZGxpbmUpOworCQl9CisJfSBlbHNlIHsKKwkJLyogVmVyeSBvbGQga2VybmVsICovCisKKwkJaGVhcF9lbmQgPSAweDk4MDA7CisKKwkJY21kX2xpbmVfbWFnaWMJPSAweEEzM0Y7CisJCWNtZF9saW5lX29mZnNldCA9IGhlYXBfZW5kOworCisJCS8qIEEgdmVyeSBvbGQga2VybmVsIE1VU1QgaGF2ZSBpdHMgcmVhbC1tb2RlIGNvZGUKKwkJICAgbG9hZGVkIGF0IDB4OTAwMDAgKi8KKworCQlpZiAoIGJhc2VfcHRyICE9IDB4OTAwMDAgKSB7CisJCQkvKiBDb3B5IHRoZSByZWFsLW1vZGUga2VybmVsICovCisJCQltZW1jcHkoMHg5MDAwMCwgYmFzZV9wdHIsIChzZXR1cF9zZWN0cysxKSo1MTIpOworCQkJYmFzZV9wdHIgPSAweDkwMDAwOwkJIC8qIFJlbG9jYXRlZCAqLworCQl9CisKKwkJc3RyY3B5KDB4OTAwMDArY21kX2xpbmVfb2Zmc2V0LCBjbWRsaW5lKTsKKworCQkvKiBJdCBpcyByZWNvbW1lbmRlZCB0byBjbGVhciBtZW1vcnkgdXAgdG8gdGhlIDMySyBtYXJrICovCisJCW1lbXNldCgweDkwMDAwICsgKHNldHVwX3NlY3RzKzEpKjUxMiwgMCwKKwkJICAgICAgICg2NC0oc2V0dXBfc2VjdHMrMSkpKjUxMik7CisJfQorCisKKyoqKiogTE9BRElORyBUSEUgUkVTVCBPRiBUSEUgS0VSTkVMCisKK1RoZSAzMi1iaXQgKG5vbi1yZWFsLW1vZGUpIGtlcm5lbCBzdGFydHMgYXQgb2Zmc2V0IChzZXR1cF9zZWN0cysxKSo1MTIKK2luIHRoZSBrZXJuZWwgZmlsZSAoYWdhaW4sIGlmIHNldHVwX3NlY3RzID09IDAgdGhlIHJlYWwgdmFsdWUgaXMgNC4pCitJdCBzaG91bGQgYmUgbG9hZGVkIGF0IGFkZHJlc3MgMHgxMDAwMCBmb3IgSW1hZ2UvekltYWdlIGtlcm5lbHMgYW5kCisweDEwMDAwMCBmb3IgYnpJbWFnZSBrZXJuZWxzLgorCitUaGUga2VybmVsIGlzIGEgYnpJbWFnZSBrZXJuZWwgaWYgdGhlIHByb3RvY29sID49IDIuMDAgYW5kIHRoZSAweDAxCitiaXQgKExPQURfSElHSCkgaW4gdGhlIGxvYWRmbGFncyBmaWVsZCBpcyBzZXQ6CisKKwlpc19iekltYWdlID0gKHByb3RvY29sID49IDB4MDIwMCkgJiYgKGxvYWRmbGFncyAmIDB4MDEpOworCWxvYWRfYWRkcmVzcyA9IGlzX2J6SW1hZ2UgPyAweDEwMDAwMCA6IDB4MTAwMDA7CisKK05vdGUgdGhhdCBJbWFnZS96SW1hZ2Uga2VybmVscyBjYW4gYmUgdXAgdG8gNTEySyBpbiBzaXplLCBhbmQgdGh1cyB1c2UKK3RoZSBlbnRpcmUgMHgxMDAwMC0weDkwMDAwIHJhbmdlIG9mIG1lbW9yeS4gIFRoaXMgbWVhbnMgaXQgaXMgcHJldHR5CittdWNoIGEgcmVxdWlyZW1lbnQgZm9yIHRoZXNlIGtlcm5lbHMgdG8gbG9hZCB0aGUgcmVhbC1tb2RlIHBhcnQgYXQKKzB4OTAwMDAuICBiekltYWdlIGtlcm5lbHMgYWxsb3cgbXVjaCBtb3JlIGZsZXhpYmlsaXR5LgorCisKKyoqKiogU1BFQ0lBTCBDT01NQU5EIExJTkUgT1BUSU9OUworCitJZiB0aGUgY29tbWFuZCBsaW5lIHByb3ZpZGVkIGJ5IHRoZSBib290IGxvYWRlciBpcyBlbnRlcmVkIGJ5IHRoZQordXNlciwgdGhlIHVzZXIgbWF5IGV4cGVjdCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIHdvcmsuCitUaGV5IHNob3VsZCBub3JtYWxseSBub3QgYmUgZGVsZXRlZCBmcm9tIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lIGV2ZW4KK3Rob3VnaCBub3QgYWxsIG9mIHRoZW0gYXJlIGFjdHVhbGx5IG1lYW5pbmdmdWwgdG8gdGhlIGtlcm5lbC4gIEJvb3QKK2xvYWRlciBhdXRob3JzIHdobyBuZWVkIGFkZGl0aW9uYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIHRoZSBib290Citsb2FkZXIgaXRzZWxmIHNob3VsZCBnZXQgdGhlbSByZWdpc3RlcmVkIGluCitEb2N1bWVudGF0aW9uL2tlcm5lbC1wYXJhbWV0ZXJzLnR4dCB0byBtYWtlIHN1cmUgdGhleSB3aWxsIG5vdAorY29uZmxpY3Qgd2l0aCBhY3R1YWwga2VybmVsIG9wdGlvbnMgbm93IG9yIGluIHRoZSBmdXR1cmUuCisKKyAgdmdhPTxtb2RlPgorCTxtb2RlPiBoZXJlIGlzIGVpdGhlciBhbiBpbnRlZ2VyIChpbiBDIG5vdGF0aW9uLCBlaXRoZXIKKwlkZWNpbWFsLCBvY3RhbCwgb3IgaGV4YWRlY2ltYWwpIG9yIG9uZSBvZiB0aGUgc3RyaW5ncworCSJub3JtYWwiIChtZWFuaW5nIDB4RkZGRiksICJleHQiIChtZWFuaW5nIDB4RkZGRSkgb3IgImFzayIKKwkobWVhbmluZyAweEZGRkQpLiAgVGhpcyB2YWx1ZSBzaG91bGQgYmUgZW50ZXJlZCBpbnRvIHRoZQorCXZpZF9tb2RlIGZpZWxkLCBhcyBpdCBpcyB1c2VkIGJ5IHRoZSBrZXJuZWwgYmVmb3JlIHRoZSBjb21tYW5kCisJbGluZSBpcyBwYXJzZWQuCisKKyAgbWVtPTxzaXplPgorCTxzaXplPiBpcyBhbiBpbnRlZ2VyIGluIEMgbm90YXRpb24gb3B0aW9uYWxseSBmb2xsb3dlZCBieQorCShjYXNlIGluc2Vuc2l0aXZlKSBLLCBNLCBHLCBULCBQIG9yIEUgKG1lYW5pbmcgPDwgMTAsIDw8IDIwLAorCTw8IDMwLCA8PCA0MCwgPDwgNTAgb3IgPDwgNjApLiAgVGhpcyBzcGVjaWZpZXMgdGhlIGVuZCBvZgorCW1lbW9yeSB0byB0aGUga2VybmVsLiBUaGlzIGFmZmVjdHMgdGhlIHBvc3NpYmxlIHBsYWNlbWVudCBvZgorCWFuIGluaXRyZCwgc2luY2UgYW4gaW5pdHJkIHNob3VsZCBiZSBwbGFjZWQgbmVhciBlbmQgb2YKKwltZW1vcnkuICBOb3RlIHRoYXQgdGhpcyBpcyBhbiBvcHRpb24gdG8gKmJvdGgqIHRoZSBrZXJuZWwgYW5kCisJdGhlIGJvb3Rsb2FkZXIhCisKKyAgaW5pdHJkPTxmaWxlPgorCUFuIGluaXRyZCBzaG91bGQgYmUgbG9hZGVkLiAgVGhlIG1lYW5pbmcgb2YgPGZpbGU+IGlzCisJb2J2aW91c2x5IGJvb3Rsb2FkZXItZGVwZW5kZW50LCBhbmQgc29tZSBib290IGxvYWRlcnMKKwkoZS5nLiBMSUxPKSBkbyBub3QgaGF2ZSBzdWNoIGEgY29tbWFuZC4KKworSW4gYWRkaXRpb24sIHNvbWUgYm9vdCBsb2FkZXJzIGFkZCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgdG8gdGhlCit1c2VyLXNwZWNpZmllZCBjb21tYW5kIGxpbmU6CisKKyAgQk9PVF9JTUFHRT08ZmlsZT4KKwlUaGUgYm9vdCBpbWFnZSB3aGljaCB3YXMgbG9hZGVkLiAgQWdhaW4sIHRoZSBtZWFuaW5nIG9mIDxmaWxlPgorCWlzIG9idmlvdXNseSBib290bG9hZGVyLWRlcGVuZGVudC4KKworICBhdXRvCisJVGhlIGtlcm5lbCB3YXMgYm9vdGVkIHdpdGhvdXQgZXhwbGljaXQgdXNlciBpbnRlcnZlbnRpb24uCisKK0lmIHRoZXNlIG9wdGlvbnMgYXJlIGFkZGVkIGJ5IHRoZSBib290IGxvYWRlciwgaXQgaXMgaGlnaGx5CityZWNvbW1lbmRlZCB0aGF0IHRoZXkgYXJlIGxvY2F0ZWQgKmZpcnN0KiwgYmVmb3JlIHRoZSB1c2VyLXNwZWNpZmllZAorb3IgY29uZmlndXJhdGlvbi1zcGVjaWZpZWQgY29tbWFuZCBsaW5lLiAgT3RoZXJ3aXNlLCAiaW5pdD0vYmluL3NoIgorZ2V0cyBjb25mdXNlZCBieSB0aGUgImF1dG8iIG9wdGlvbi4KKworCisqKioqIFJVTk5JTkcgVEhFIEtFUk5FTAorCitUaGUga2VybmVsIGlzIHN0YXJ0ZWQgYnkganVtcGluZyB0byB0aGUga2VybmVsIGVudHJ5IHBvaW50LCB3aGljaCBpcworbG9jYXRlZCBhdCAqc2VnbWVudCogb2Zmc2V0IDB4MjAgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHJlYWwgbW9kZQora2VybmVsLiAgVGhpcyBtZWFucyB0aGF0IGlmIHlvdSBsb2FkZWQgeW91ciByZWFsLW1vZGUga2VybmVsIGNvZGUgYXQKKzB4OTAwMDAsIHRoZSBrZXJuZWwgZW50cnkgcG9pbnQgaXMgOTAyMDowMDAwLgorCitBdCBlbnRyeSwgZHMgPSBlcyA9IHNzIHNob3VsZCBwb2ludCB0byB0aGUgc3RhcnQgb2YgdGhlIHJlYWwtbW9kZQora2VybmVsIGNvZGUgKDB4OTAwMCBpZiB0aGUgY29kZSBpcyBsb2FkZWQgYXQgMHg5MDAwMCksIHNwIHNob3VsZCBiZQorc2V0IHVwIHByb3Blcmx5LCBub3JtYWxseSBwb2ludGluZyB0byB0aGUgdG9wIG9mIHRoZSBoZWFwLCBhbmQKK2ludGVycnVwdHMgc2hvdWxkIGJlIGRpc2FibGVkLiAgRnVydGhlcm1vcmUsIHRvIGd1YXJkIGFnYWluc3QgYnVncyBpbgordGhlIGtlcm5lbCwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgYm9vdCBsb2FkZXIgc2V0cyBmcyA9IGdzID0gZHMgPQorZXMgPSBzcy4KKworSW4gb3VyIGV4YW1wbGUgZnJvbSBhYm92ZSwgd2Ugd291bGQgZG86CisKKwkvKiBOb3RlOiBpbiB0aGUgY2FzZSBvZiB0aGUgIm9sZCIga2VybmVsIHByb3RvY29sLCBiYXNlX3B0ciBtdXN0CisJICAgYmUgPT0gMHg5MDAwMCBhdCB0aGlzIHBvaW50OyBzZWUgdGhlIHByZXZpb3VzIHNhbXBsZSBjb2RlICovCisKKwlzZWcgPSBiYXNlX3B0ciA+PiA0OworCisJY2xpKCk7CS8qIEVudGVyIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCEgKi8KKworCS8qIFNldCB1cCB0aGUgcmVhbC1tb2RlIGtlcm5lbCBzdGFjayAqLworCV9TUyA9IHNlZzsKKwlfU1AgPSBoZWFwX2VuZDsKKworCV9EUyA9IF9FUyA9IF9GUyA9IF9HUyA9IHNlZzsKKwlqbXBfZmFyKHNlZysweDIwLCAwKTsJLyogUnVuIHRoZSBrZXJuZWwgKi8KKworSWYgeW91ciBib290IHNlY3RvciBhY2Nlc3NlcyBhIGZsb3BweSBkcml2ZSwgaXQgaXMgcmVjb21tZW5kZWQgdG8KK3N3aXRjaCBvZmYgdGhlIGZsb3BweSBtb3RvciBiZWZvcmUgcnVubmluZyB0aGUga2VybmVsLCBzaW5jZSB0aGUKK2tlcm5lbCBib290IGxlYXZlcyBpbnRlcnJ1cHRzIG9mZiBhbmQgdGh1cyB0aGUgbW90b3Igd2lsbCBub3QgYmUKK3N3aXRjaGVkIG9mZiwgZXNwZWNpYWxseSBpZiB0aGUgbG9hZGVkIGtlcm5lbCBoYXMgdGhlIGZsb3BweSBkcml2ZXIgYXMKK2EgZGVtYW5kLWxvYWRlZCBtb2R1bGUhCisKKworKioqKiBBRFZBTkNFRCBCT09UIExPQURFUiBIT09LUworCitJZiB0aGUgYm9vdCBsb2FkZXIgcnVucyBpbiBhIHBhcnRpY3VsYXJseSBob3N0aWxlIGVudmlyb25tZW50IChzdWNoIGFzCitMT0FETElOLCB3aGljaCBydW5zIHVuZGVyIERPUykgaXQgbWF5IGJlIGltcG9zc2libGUgdG8gZm9sbG93IHRoZQorc3RhbmRhcmQgbWVtb3J5IGxvY2F0aW9uIHJlcXVpcmVtZW50cy4gIFN1Y2ggYSBib290IGxvYWRlciBtYXkgdXNlIHRoZQorZm9sbG93aW5nIGhvb2tzIHRoYXQsIGlmIHNldCwgYXJlIGludm9rZWQgYnkgdGhlIGtlcm5lbCBhdCB0aGUKK2FwcHJvcHJpYXRlIHRpbWUuICBUaGUgdXNlIG9mIHRoZXNlIGhvb2tzIHNob3VsZCBwcm9iYWJseSBiZQorY29uc2lkZXJlZCBhbiBhYnNvbHV0ZWx5IGxhc3QgcmVzb3J0IQorCitJTVBPUlRBTlQ6IEFsbCB0aGUgaG9va3MgYXJlIHJlcXVpcmVkIHRvIHByZXNlcnZlICVlc3AsICVlYnAsICVlc2kgYW5kCislZWRpIGFjcm9zcyBpbnZvY2F0aW9uLgorCisgIHJlYWxtb2RlX3N3dGNoOgorCUEgMTYtYml0IHJlYWwgbW9kZSBmYXIgc3Vicm91dGluZSBpbnZva2VkIGltbWVkaWF0ZWx5IGJlZm9yZQorCWVudGVyaW5nIHByb3RlY3RlZCBtb2RlLiAgVGhlIGRlZmF1bHQgcm91dGluZSBkaXNhYmxlcyBOTUksIHNvCisJeW91ciByb3V0aW5lIHNob3VsZCBwcm9iYWJseSBkbyBzbywgdG9vLgorCisgIGNvZGUzMl9zdGFydDoKKwlBIDMyLWJpdCBmbGF0LW1vZGUgcm91dGluZSAqanVtcGVkKiB0byBpbW1lZGlhdGVseSBhZnRlciB0aGUKKwl0cmFuc2l0aW9uIHRvIHByb3RlY3RlZCBtb2RlLCBidXQgYmVmb3JlIHRoZSBrZXJuZWwgaXMKKwl1bmNvbXByZXNzZWQuICBObyBzZWdtZW50cywgZXhjZXB0IENTLCBhcmUgZ3VhcmFudGVlZCB0byBiZQorCXNldCB1cCAoY3VycmVudCBrZXJuZWxzIGRvLCBidXQgb2xkZXIgb25lcyBkbyBub3QpOyB5b3Ugc2hvdWxkCisJc2V0IHRoZW0gdXAgdG8gQk9PVF9EUyAoMHgxOCkgeW91cnNlbGYuCisKKwlBZnRlciBjb21wbGV0aW5nIHlvdXIgaG9vaywgeW91IHNob3VsZCBqdW1wIHRvIHRoZSBhZGRyZXNzCisJdGhhdCB3YXMgaW4gdGhpcyBmaWVsZCBiZWZvcmUgeW91ciBib290IGxvYWRlciBvdmVyd3JvdGUgaXQKKwkocmVsb2NhdGVkLCBpZiBhcHByb3ByaWF0ZS4pCisKKworKioqKiAzMi1iaXQgQk9PVCBQUk9UT0NPTAorCitGb3IgbWFjaGluZSB3aXRoIHNvbWUgbmV3IEJJT1Mgb3RoZXIgdGhhbiBsZWdhY3kgQklPUywgc3VjaCBhcyBFRkksCitMaW51eEJJT1MsIGV0YywgYW5kIGtleGVjLCB0aGUgMTYtYml0IHJlYWwgbW9kZSBzZXR1cCBjb2RlIGluIGtlcm5lbAorYmFzZWQgb24gbGVnYWN5IEJJT1MgY2FuIG5vdCBiZSB1c2VkLCBzbyBhIDMyLWJpdCBib290IHByb3RvY29sIG5lZWRzCit0byBiZSBkZWZpbmVkLgorCitJbiAzMi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGZpcnN0IHN0ZXAgaW4gbG9hZGluZyBhIExpbnV4IGtlcm5lbAorc2hvdWxkIGJlIHRvIHNldHVwIHRoZSBib290IHBhcmFtZXRlcnMgKHN0cnVjdCBib290X3BhcmFtcywKK3RyYWRpdGlvbmFsbHkga25vd24gYXMgInplcm8gcGFnZSIpLiBUaGUgbWVtb3J5IGZvciBzdHJ1Y3QgYm9vdF9wYXJhbXMKK3Nob3VsZCBiZSBhbGxvY2F0ZWQgYW5kIGluaXRpYWxpemVkIHRvIGFsbCB6ZXJvLiBUaGVuIHRoZSBzZXR1cCBoZWFkZXIKK2Zyb20gb2Zmc2V0IDB4MDFmMSBvZiBrZXJuZWwgaW1hZ2Ugb24gc2hvdWxkIGJlIGxvYWRlZCBpbnRvIHN0cnVjdAorYm9vdF9wYXJhbXMgYW5kIGV4YW1pbmVkLiBUaGUgZW5kIG9mIHNldHVwIGhlYWRlciBjYW4gYmUgY2FsY3VsYXRlZCBhcworZm9sbG93OgorCisJMHgwMjAyICsgYnl0ZSB2YWx1ZSBhdCBvZmZzZXQgMHgwMjAxCisKK0luIGFkZGl0aW9uIHRvIHJlYWQvbW9kaWZ5L3dyaXRlIHRoZSBzZXR1cCBoZWFkZXIgb2YgdGhlIHN0cnVjdAorYm9vdF9wYXJhbXMgYXMgdGhhdCBvZiAxNi1iaXQgYm9vdCBwcm90b2NvbCwgdGhlIGJvb3QgbG9hZGVyIHNob3VsZAorYWxzbyBmaWxsIHRoZSBhZGRpdGlvbmFsIGZpZWxkcyBvZiB0aGUgc3RydWN0IGJvb3RfcGFyYW1zIGFzIHRoYXQKK2Rlc2NyaWJlZCBpbiB6ZXJvLXBhZ2UudHh0LgorCitBZnRlciBzZXR1cHBpbmcgdGhlIHN0cnVjdCBib290X3BhcmFtcywgdGhlIGJvb3QgbG9hZGVyIGNhbiBsb2FkIHRoZQorMzIvNjQtYml0IGtlcm5lbCBpbiB0aGUgc2FtZSB3YXkgYXMgdGhhdCBvZiAxNi1iaXQgYm9vdCBwcm90b2NvbC4KKworSW4gMzItYml0IGJvb3QgcHJvdG9jb2wsIHRoZSBrZXJuZWwgaXMgc3RhcnRlZCBieSBqdW1waW5nIHRvIHRoZQorMzItYml0IGtlcm5lbCBlbnRyeSBwb2ludCwgd2hpY2ggaXMgdGhlIHN0YXJ0IGFkZHJlc3Mgb2YgbG9hZGVkCiszMi82NC1iaXQga2VybmVsLgorCitBdCBlbnRyeSwgdGhlIENQVSBtdXN0IGJlIGluIDMyLWJpdCBwcm90ZWN0ZWQgbW9kZSB3aXRoIHBhZ2luZworZGlzYWJsZWQ7IGEgR0RUIG11c3QgYmUgbG9hZGVkIHdpdGggdGhlIGRlc2NyaXB0b3JzIGZvciBzZWxlY3RvcnMKK19fQk9PVF9DUygweDEwKSBhbmQgX19CT09UX0RTKDB4MTgpOyBib3RoIGRlc2NyaXB0b3JzIG11c3QgYmUgNEcgZmxhdAorc2VnbWVudDsgX19CT09TX0NTIG11c3QgaGF2ZSBleGVjdXRlL3JlYWQgcGVybWlzc2lvbiwgYW5kIF9fQk9PVF9EUworbXVzdCBoYXZlIHJlYWQvd3JpdGUgcGVybWlzc2lvbjsgQ1MgbXVzdCBiZSBfX0JPT1RfQ1MgYW5kIERTLCBFUywgU1MKK211c3QgYmUgX19CT09UX0RTOyBpbnRlcnJ1cHQgbXVzdCBiZSBkaXNhYmxlZDsgJWVzaSBtdXN0IGhvbGQgdGhlIGJhc2UKK2FkZHJlc3Mgb2YgdGhlIHN0cnVjdCBib290X3BhcmFtczsgJWVicCwgJWVkaSBhbmQgJWVieCBtdXN0IGJlIHplcm8uCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2kzODYvdXNiLWxlZ2FjeS1zdXBwb3J0LnR4dCBiL0RvY3VtZW50YXRpb24veDg2L2kzODYvdXNiLWxlZ2FjeS1zdXBwb3J0LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi9pMzg2L3VzYi1sZWdhY3ktc3VwcG9ydC50eHQKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L2kzODYvdXNiLWxlZ2FjeS1zdXBwb3J0LnR4dApkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9pMzg2L3plcm8tcGFnZS50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Ni9pMzg2L3plcm8tcGFnZS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24vaTM4Ni96ZXJvLXBhZ2UudHh0CnJlbmFtZSB0byBEb2N1bWVudGF0aW9uL3g4Ni9pMzg2L3plcm8tcGFnZS50eHQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0LzAwLUlOREVYIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0LzAwLUlOREVYCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC8wMC1JTkRFWApyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0LzAwLUlOREVYCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9ib290LW9wdGlvbnMudHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2Jvb3Qtb3B0aW9ucy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0L2Jvb3Qtb3B0aW9ucy50eHQKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC9ib290LW9wdGlvbnMudHh0CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9jcHUtaG90cGx1Zy1zcGVjIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2NwdS1ob3RwbHVnLXNwZWMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0L2NwdS1ob3RwbHVnLXNwZWMKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC9jcHUtaG90cGx1Zy1zcGVjCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9mYWtlLW51bWEtZm9yLWNwdXNldHMgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvZmFrZS1udW1hLWZvci1jcHVzZXRzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBEb2N1bWVudGF0aW9uL3g4Nl82NC9mYWtlLW51bWEtZm9yLWNwdXNldHMKcmVuYW1lIHRvIERvY3VtZW50YXRpb24veDg2L3g4Nl82NC9mYWtlLW51bWEtZm9yLWNwdXNldHMKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L2tlcm5lbC1zdGFja3MgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQva2VybmVsLXN0YWNrcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gRG9jdW1lbnRhdGlvbi94ODZfNjQva2VybmVsLXN0YWNrcwpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L2tlcm5lbC1zdGFja3MKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L21hY2hpbmVjaGVjayBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tYWNoaW5lY2hlY2sKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIERvY3VtZW50YXRpb24veDg2XzY0L21hY2hpbmVjaGVjawpyZW5hbWUgdG8gRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21hY2hpbmVjaGVjawpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dCBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tbS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjZTc1MAotLS0gL2Rldi9udWxsCisrKyBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC9tbS50eHQKQEAgLTAsMCArMSwyOCBAQAorCis8cHJldmlvdXMgZGVzY3JpcHRpb24gb2Jzb2xldGUsIGRlbGV0ZWQ+CisKK1ZpcnR1YWwgbWVtb3J5IG1hcCB3aXRoIDQgbGV2ZWwgcGFnZSB0YWJsZXM6CisKKzAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwN2ZmZmZmZmZmZmZmICg9NDcgYml0cykgdXNlciBzcGFjZSwgZGlmZmVyZW50IHBlciBtbQoraG9sZSBjYXVzZWQgYnkgWzQ4OjYzXSBzaWduIGV4dGVuc2lvbgorZmZmZjgwMDAwMDAwMDAwMCAtIGZmZmY4MGZmZmZmZmZmZmYgKD00MCBiaXRzKSBndWFyZCBob2xlCitmZmZmODEwMDAwMDAwMDAwIC0gZmZmZmMwZmZmZmZmZmZmZiAoPTQ2IGJpdHMpIGRpcmVjdCBtYXBwaW5nIG9mIGFsbCBwaHlzLiBtZW1vcnkKK2ZmZmZjMTAwMDAwMDAwMDAgLSBmZmZmYzFmZmZmZmZmZmZmICg9NDAgYml0cykgaG9sZQorZmZmZmMyMDAwMDAwMDAwMCAtIGZmZmZlMWZmZmZmZmZmZmYgKD00NSBiaXRzKSB2bWFsbG9jL2lvcmVtYXAgc3BhY2UKK2ZmZmZlMjAwMDAwMDAwMDAgLSBmZmZmZTJmZmZmZmZmZmZmICg9NDAgYml0cykgdmlydHVhbCBtZW1vcnkgbWFwICgxVEIpCisuLi4gdW51c2VkIGhvbGUgLi4uCitmZmZmZmZmZjgwMDAwMDAwIC0gZmZmZmZmZmZhMDAwMDAwMCAoPTUxMiBNQikgIGtlcm5lbCB0ZXh0IG1hcHBpbmcsIGZyb20gcGh5cyAwCitmZmZmZmZmZmEwMDAwMDAwIC0gZmZmZmZmZmZmZmYwMDAwMCAoPTE1MzYgTUIpIG1vZHVsZSBtYXBwaW5nIHNwYWNlCisKK1RoZSBkaXJlY3QgbWFwcGluZyBjb3ZlcnMgYWxsIG1lbW9yeSBpbiB0aGUgc3lzdGVtIHVwIHRvIHRoZSBoaWdoZXN0CittZW1vcnkgYWRkcmVzcyAodGhpcyBtZWFucyBpbiBzb21lIGNhc2VzIGl0IGNhbiBhbHNvIGluY2x1ZGUgUENJIG1lbW9yeQoraG9sZXMpLgorCit2bWFsbG9jIHNwYWNlIGlzIGxhemlseSBzeW5jaHJvbml6ZWQgaW50byB0aGUgZGlmZmVyZW50IFBNTDQgcGFnZXMgb2YKK3RoZSBwcm9jZXNzZXMgdXNpbmcgdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciwgd2l0aCBpbml0X2xldmVsNF9wZ3QgYXMKK3JlZmVyZW5jZS4KKworQ3VycmVudCBYODYtNjQgaW1wbGVtZW50YXRpb25zIG9ubHkgc3VwcG9ydCA0MCBiaXRzIG9mIGFkZHJlc3Mgc3BhY2UsCitidXQgd2Ugc3VwcG9ydCB1cCB0byA0NiBiaXRzLiBUaGlzIGV4cGFuZHMgaW50byBNQlogc3BhY2UgaW4gdGhlIHBhZ2UgdGFibGVzLgorCistQW5kaSBLbGVlbiwgSnVsIDIwMDQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC91ZWZpLnR4dCBiL0RvY3VtZW50YXRpb24veDg2L3g4Nl82NC91ZWZpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWUyYjRmCi0tLSAvZGV2L251bGwKKysrIGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0L3VlZmkudHh0CkBAIC0wLDAgKzEsNDIgQEAKK0dlbmVyYWwgbm90ZSBvbiBbVV1FRkkgeDg2XzY0IHN1cHBvcnQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIG5vbWVuY2xhdHVyZSBFRkkgYW5kIFVFRkkgYXJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IGluIHRoaXMgZG9jdW1lbnQuCisKK0FsdGhvdWdoIHRoZSB0b29scyBiZWxvdyBhcmUgX25vdF8gbmVlZGVkIGZvciBidWlsZGluZyB0aGUga2VybmVsLAordGhlIG5lZWRlZCBib290bG9hZGVyIHN1cHBvcnQgYW5kIGFzc29jaWF0ZWQgdG9vbHMgZm9yIHg4Nl82NCBwbGF0Zm9ybXMKK3dpdGggRUZJIGZpcm13YXJlIGFuZCBzcGVjaWZpY2F0aW9ucyBhcmUgbGlzdGVkIGJlbG93LgorCisxLiBVRUZJIHNwZWNpZmljYXRpb246ICBodHRwOi8vd3d3LnVlZmkub3JnCisKKzIuIEJvb3RpbmcgTGludXgga2VybmVsIG9uIFVFRkkgeDg2XzY0IHBsYXRmb3JtIHJlcXVpcmVzIGJvb3Rsb2FkZXIKKyAgIHN1cHBvcnQuIEVsaWxvIHdpdGggeDg2XzY0IHN1cHBvcnQgY2FuIGJlIHVzZWQuCisKKzMuIHg4Nl82NCBwbGF0Zm9ybSB3aXRoIEVGSS9VRUZJIGZpcm13YXJlLgorCitNZWNoYW5pY3M6CistLS0tLS0tLS0KKy0gQnVpbGQgdGhlIGtlcm5lbCB3aXRoIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbi4KKwlDT05GSUdfRkJfRUZJPXkKKwlDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisgIElmIEVGSSBydW50aW1lIHNlcnZpY2VzIGFyZSBleHBlY3RlZCwgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHNob3VsZAorICBiZSBzZWxlY3RlZC4KKwlDT05GSUdfRUZJPXkKKwlDT05GSUdfRUZJX1ZBUlM9eSBvciBtCQkjIG9wdGlvbmFsCistIENyZWF0ZSBhIFZGQVQgcGFydGl0aW9uIG9uIHRoZSBkaXNrCistIENvcHkgdGhlIGZvbGxvd2luZyB0byB0aGUgVkZBVCBwYXJ0aXRpb246CisJZWxpbG8gYm9vdGxvYWRlciB3aXRoIHg4Nl82NCBzdXBwb3J0LCBlbGlsbyBjb25maWd1cmF0aW9uIGZpbGUsCisJa2VybmVsIGltYWdlIGJ1aWx0IGluIGZpcnN0IHN0ZXAgYW5kIGNvcnJlc3BvbmRpbmcKKwlpbml0cmQuIEluc3RydWN0aW9ucyBvbiBidWlsZGluZyBlbGlsbwlhbmQgaXRzIGRlcGVuZGVuY2llcworCWNhbiBiZSBmb3VuZCBpbiB0aGUgZWxpbG8gc291cmNlZm9yZ2UgcHJvamVjdC4KKy0gQm9vdCB0byBFRkkgc2hlbGwgYW5kIGludm9rZSBlbGlsbyBjaG9vc2luZyB0aGUga2VybmVsIGltYWdlIGJ1aWx0CisgIGluIGZpcnN0IHN0ZXAuCistIElmIHNvbWUgb3IgYWxsIEVGSSBydW50aW1lIHNlcnZpY2VzIGRvbid0IHdvcmssIHlvdSBjYW4gdHJ5IGZvbGxvd2luZworICBrZXJuZWwgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMgdG8gdHVybiBvZmYgc29tZSBvciBhbGwgRUZJIHJ1bnRpbWUKKyAgc2VydmljZXMuCisJbm9lZmkJCXR1cm4gb2ZmIGFsbCBFRkkgcnVudGltZSBzZXJ2aWNlcworCXJlYm9vdF90eXBlPWsJdHVybiBvZmYgRUZJIHJlYm9vdCBydW50aW1lIHNlcnZpY2UKKy0gSWYgdGhlIEVGSSBtZW1vcnkgbWFwIGhhcyBhZGRpdGlvbmFsIGVudHJpZXMgbm90IGluIHRoZSBFODIwIG1hcCwKKyAgeW91IGNhbiBpbmNsdWRlIHRob3NlIGVudHJpZXMgaW4gdGhlIGtlcm5lbHMgbWVtb3J5IG1hcCBvZiBhdmFpbGFibGUKKyAgcGh5c2ljYWwgUkFNIGJ5IHVzaW5nIHRoZSBmb2xsb3dpbmcga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIuCisJYWRkX2VmaV9tZW1tYXAJaW5jbHVkZSBFRkkgbWVtb3J5IG1hcCBvZiBhdmFpbGFibGUgcGh5c2ljYWwgUkFNCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3g4Nl82NC9tbS50eHQgYi9Eb2N1bWVudGF0aW9uL3g4Nl82NC9tbS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4OWI2ZDIuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvbW0udHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotCi08cHJldmlvdXMgZGVzY3JpcHRpb24gb2Jzb2xldGUsIGRlbGV0ZWQ+Ci0KLVZpcnR1YWwgbWVtb3J5IG1hcCB3aXRoIDQgbGV2ZWwgcGFnZSB0YWJsZXM6Ci0KLTAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwN2ZmZmZmZmZmZmZmICg9NDcgYml0cykgdXNlciBzcGFjZSwgZGlmZmVyZW50IHBlciBtbQotaG9sZSBjYXVzZWQgYnkgWzQ4OjYzXSBzaWduIGV4dGVuc2lvbgotZmZmZjgwMDAwMDAwMDAwMCAtIGZmZmY4MGZmZmZmZmZmZmYgKD00MCBiaXRzKSBndWFyZCBob2xlCi1mZmZmODEwMDAwMDAwMDAwIC0gZmZmZmMwZmZmZmZmZmZmZiAoPTQ2IGJpdHMpIGRpcmVjdCBtYXBwaW5nIG9mIGFsbCBwaHlzLiBtZW1vcnkKLWZmZmZjMTAwMDAwMDAwMDAgLSBmZmZmYzFmZmZmZmZmZmZmICg9NDAgYml0cykgaG9sZQotZmZmZmMyMDAwMDAwMDAwMCAtIGZmZmZlMWZmZmZmZmZmZmYgKD00NSBiaXRzKSB2bWFsbG9jL2lvcmVtYXAgc3BhY2UKLWZmZmZlMjAwMDAwMDAwMDAgLSBmZmZmZTJmZmZmZmZmZmZmICg9NDAgYml0cykgdmlydHVhbCBtZW1vcnkgbWFwICgxVEIpCi0uLi4gdW51c2VkIGhvbGUgLi4uCi1mZmZmZmZmZjgwMDAwMDAwIC0gZmZmZmZmZmY4MjgwMDAwMCAoPTQwIE1CKSAgIGtlcm5lbCB0ZXh0IG1hcHBpbmcsIGZyb20gcGh5cyAwCi0uLi4gdW51c2VkIGhvbGUgLi4uCi1mZmZmZmZmZjg4MDAwMDAwIC0gZmZmZmZmZmZmZmYwMDAwMCAoPTE5MTkgTUIpIG1vZHVsZSBtYXBwaW5nIHNwYWNlCi0KLVRoZSBkaXJlY3QgbWFwcGluZyBjb3ZlcnMgYWxsIG1lbW9yeSBpbiB0aGUgc3lzdGVtIHVwIHRvIHRoZSBoaWdoZXN0Ci1tZW1vcnkgYWRkcmVzcyAodGhpcyBtZWFucyBpbiBzb21lIGNhc2VzIGl0IGNhbiBhbHNvIGluY2x1ZGUgUENJIG1lbW9yeQotaG9sZXMpLgotCi12bWFsbG9jIHNwYWNlIGlzIGxhemlseSBzeW5jaHJvbml6ZWQgaW50byB0aGUgZGlmZmVyZW50IFBNTDQgcGFnZXMgb2YKLXRoZSBwcm9jZXNzZXMgdXNpbmcgdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciwgd2l0aCBpbml0X2xldmVsNF9wZ3QgYXMKLXJlZmVyZW5jZS4KLQotQ3VycmVudCBYODYtNjQgaW1wbGVtZW50YXRpb25zIG9ubHkgc3VwcG9ydCA0MCBiaXRzIG9mIGFkZHJlc3Mgc3BhY2UsCi1idXQgd2Ugc3VwcG9ydCB1cCB0byA0NiBiaXRzLiBUaGlzIGV4cGFuZHMgaW50byBNQlogc3BhY2UgaW4gdGhlIHBhZ2UgdGFibGVzLgotCi0tQW5kaSBLbGVlbiwgSnVsIDIwMDQKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24veDg2XzY0L3VlZmkudHh0IGIvRG9jdW1lbnRhdGlvbi94ODZfNjQvdWVmaS50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkNzcxMjAuLjAwMDAwMDAKLS0tIGEvRG9jdW1lbnRhdGlvbi94ODZfNjQvdWVmaS50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1HZW5lcmFsIG5vdGUgb24gW1VdRUZJIHg4Nl82NCBzdXBwb3J0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBub21lbmNsYXR1cmUgRUZJIGFuZCBVRUZJIGFyZSB1c2VkIGludGVyY2hhbmdlYWJseSBpbiB0aGlzIGRvY3VtZW50LgotCi1BbHRob3VnaCB0aGUgdG9vbHMgYmVsb3cgYXJlIF9ub3RfIG5lZWRlZCBmb3IgYnVpbGRpbmcgdGhlIGtlcm5lbCwKLXRoZSBuZWVkZWQgYm9vdGxvYWRlciBzdXBwb3J0IGFuZCBhc3NvY2lhdGVkIHRvb2xzIGZvciB4ODZfNjQgcGxhdGZvcm1zCi13aXRoIEVGSSBmaXJtd2FyZSBhbmQgc3BlY2lmaWNhdGlvbnMgYXJlIGxpc3RlZCBiZWxvdy4KLQotMS4gVUVGSSBzcGVjaWZpY2F0aW9uOiAgaHR0cDovL3d3dy51ZWZpLm9yZwotCi0yLiBCb290aW5nIExpbnV4IGtlcm5lbCBvbiBVRUZJIHg4Nl82NCBwbGF0Zm9ybSByZXF1aXJlcyBib290bG9hZGVyCi0gICBzdXBwb3J0LiBFbGlsbyB3aXRoIHg4Nl82NCBzdXBwb3J0IGNhbiBiZSB1c2VkLgotCi0zLiB4ODZfNjQgcGxhdGZvcm0gd2l0aCBFRkkvVUVGSSBmaXJtd2FyZS4KLQotTWVjaGFuaWNzOgotLS0tLS0tLS0tCi0tIEJ1aWxkIHRoZSBrZXJuZWwgd2l0aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24uCi0JQ09ORklHX0ZCX0VGST15Ci0JQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQotICBJZiBFRkkgcnVudGltZSBzZXJ2aWNlcyBhcmUgZXhwZWN0ZWQsIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiBzaG91bGQKLSAgYmUgc2VsZWN0ZWQuCi0JQ09ORklHX0VGST15Ci0JQ09ORklHX0VGSV9WQVJTPXkgb3IgbQkJIyBvcHRpb25hbAotLSBDcmVhdGUgYSBWRkFUIHBhcnRpdGlvbiBvbiB0aGUgZGlzawotLSBDb3B5IHRoZSBmb2xsb3dpbmcgdG8gdGhlIFZGQVQgcGFydGl0aW9uOgotCWVsaWxvIGJvb3Rsb2FkZXIgd2l0aCB4ODZfNjQgc3VwcG9ydCwgZWxpbG8gY29uZmlndXJhdGlvbiBmaWxlLAotCWtlcm5lbCBpbWFnZSBidWlsdCBpbiBmaXJzdCBzdGVwIGFuZCBjb3JyZXNwb25kaW5nCi0JaW5pdHJkLiBJbnN0cnVjdGlvbnMgb24gYnVpbGRpbmcgZWxpbG8JYW5kIGl0cyBkZXBlbmRlbmNpZXMKLQljYW4gYmUgZm91bmQgaW4gdGhlIGVsaWxvIHNvdXJjZWZvcmdlIHByb2plY3QuCi0tIEJvb3QgdG8gRUZJIHNoZWxsIGFuZCBpbnZva2UgZWxpbG8gY2hvb3NpbmcgdGhlIGtlcm5lbCBpbWFnZSBidWlsdAotICBpbiBmaXJzdCBzdGVwLgotLSBJZiBzb21lIG9yIGFsbCBFRkkgcnVudGltZSBzZXJ2aWNlcyBkb24ndCB3b3JrLCB5b3UgY2FuIHRyeSBmb2xsb3dpbmcKLSAga2VybmVsIGNvbW1hbmQgbGluZSBwYXJhbWV0ZXJzIHRvIHR1cm4gb2ZmIHNvbWUgb3IgYWxsIEVGSSBydW50aW1lCi0gIHNlcnZpY2VzLgotCW5vZWZpCQl0dXJuIG9mZiBhbGwgRUZJIHJ1bnRpbWUgc2VydmljZXMKLQlyZWJvb3RfdHlwZT1rCXR1cm4gb2ZmIEVGSSByZWJvb3QgcnVudGltZSBzZXJ2aWNlCmRpZmYgLS1naXQgYS9NQUlOVEFJTkVSUyBiL01BSU5UQUlORVJTCmluZGV4IGI0MmRjZmMuLjE1MjhlNTggMTAwNjQ0Ci0tLSBhL01BSU5UQUlORVJTCisrKyBiL01BSU5UQUlORVJTCkBAIC0yMjgsMjEgKzIyOCwyMSBAQAogUDoJQWxleGV5IFN0YXJpa292c2tpeQogTToJYXN0YXJpa292c2tpeUBzdXNlLmRlCiBMOglsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2FjcGkuc291cmNlZm9yZ2UubmV0LworVzoJaHR0cDovL3d3dy5sZXNzd2F0dHMub3JnL3Byb2plY3RzL2FjcGkvCiBTOglTdXBwb3J0ZWQKIAogQUNQSSBFQyBEUklWRVIKIFA6CUFsZXhleSBTdGFyaWtvdnNraXkKIE06CWFzdGFyaWtvdnNraXlAc3VzZS5kZQogTDoJbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmcKLVc6CWh0dHA6Ly9hY3BpLnNvdXJjZWZvcmdlLm5ldC8KK1c6CWh0dHA6Ly93d3cubGVzc3dhdHRzLm9yZy9wcm9qZWN0cy9hY3BpLwogUzoJU3VwcG9ydGVkCiAKIEFDUEkgRkFOIERSSVZFUgogUDoJTGVuIEJyb3duCiBNOglsZW4uYnJvd25AaW50ZWwuY29tCiBMOglsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2FjcGkuc291cmNlZm9yZ2UubmV0LworVzoJaHR0cDovL3d3dy5sZXNzd2F0dHMub3JnL3Byb2plY3RzL2FjcGkvCiBTOglTdXBwb3J0ZWQKIAogQUNQSSBQQ0kgSE9UUExVRyBEUklWRVIKQEAgLTI1NSwxNCArMjU1LDE0IEBACiBQOglMZW4gQnJvd24KIE06CWxlbi5icm93bkBpbnRlbC5jb20KIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vYWNwaS5zb3VyY2Vmb3JnZS5uZXQvCitXOglodHRwOi8vd3d3Lmxlc3N3YXR0cy5vcmcvcHJvamVjdHMvYWNwaS8KIFM6CVN1cHBvcnRlZAogCiBBQ1BJIFZJREVPIERSSVZFUgogUDoJUnVpIFpoYW5nCiBNOglydWkuemhhbmdAaW50ZWwuY29tCiBMOglsaW51eC1hY3BpQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2FjcGkuc291cmNlZm9yZ2UubmV0LworVzoJaHR0cDovL3d3dy5sZXNzd2F0dHMub3JnL3Byb2plY3RzL2FjcGkvCiBTOglTdXBwb3J0ZWQKIAogQUNQSSBXTUkgRFJJVkVSCkBAIC0yNzQsNyArMjc0LDcgQEAKIAogQUQxODg5IEFMU0EgU09VTkQgRFJJVkVSCiBQOiAgICAgS3lsZSBNY01hcnRpbgotTTogICAgIGt5bGVAcGFyaXNjLWxpbnV4Lm9yZworTTogICAgIGt5bGVAbWNtYXJ0aW4uY2EKIFA6ICAgICBUaGliYXV0IFZhcmVuZQogTTogICAgIFQtQm9uZUBwYXJpc2MtbGludXgub3JnCiBXOiAgICAgaHR0cDovL3dpa2kucGFyaXNjLWxpbnV4Lm9yZy9BRDE4ODkKQEAgLTM3Niw2ICszNzYsMTIgQEAKIFc6CWh0dHA6Ly93d3cuYW1kLmNvbS91cy1lbi9Db25uZWN0aXZpdHlTb2x1dGlvbnMvVGVjaG5pY2FsUmVzb3VyY2VzLzAsLDUwXzIzMzRfMjQ1Ml8xMTM2MywwMC5odG1sCiBTOglTdXBwb3J0ZWQKIAorQU1EIElPTU1VIChBTUQtVkkpCitQOglKb2VyZyBSb2VkZWwKK006CWpvZXJnLnJvZWRlbEBhbWQuY29tCitMOglpb21tdUBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZworUzoJU3VwcG9ydGVkCisKIEFNUyAoQXBwbGUgTW90aW9uIFNlbnNvcikgRFJJVkVSCiBQOglTdGVsaWFuIFBvcAogTToJc3RlbGlhbkBwb3BpZXMubmV0CkBAIC03NjMsOSArNzY5LDEwIEBACiAKIEFVWElMSUFSWSBESVNQTEFZIERSSVZFUlMKIFA6CU1pZ3VlbCBPamVkYSBTYW5kb25pcwotTToJbWF4ZXh0cmVtZUBnbWFpbC5jb20KK006CW1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKLVc6CWh0dHA6Ly9hdXhkaXNwbGF5Lmdvb2dsZXBhZ2VzLmNvbS8KK1c6CWh0dHA6Ly9taWd1ZWxvamVkYS5lcy9hdXhkaXNwbGF5Lmh0bQorVzoJaHR0cDovL2phaXIubGFiLmZpLnV2YS5lcy9+bWlnb2plZC9hdXhkaXNwbGF5Lmh0bQogUzoJTWFpbnRhaW5lZAogCiBBVlIzMiBBUkNISVRFQ1RVUkUKQEAgLTk5NSw4ICsxMDAyLDggQEAKIFM6CVN1cHBvcnRlZAogCiBCUk9BRENPTSBCTlgyWCAxMCBHSUdBQklUIEVUSEVSTkVUIERSSVZFUgotUDoJRWxpZXplciBUYW1pcgotTToJZWxpZXplcnRAYnJvYWRjb20uY29tCitQOglFaWxvbiBHcmVlbnN0ZWluCitNOgllaWxvbmdAYnJvYWRjb20uY29tCiBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglTdXBwb3J0ZWQKIApAQCAtMTA1NSwxNiArMTA2MiwxOCBAQAogCiBDRkFHMTI4NjRCIExDRCBEUklWRVIKIFA6CU1pZ3VlbCBPamVkYSBTYW5kb25pcwotTToJbWF4ZXh0cmVtZUBnbWFpbC5jb20KK006CW1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKLVc6CWh0dHA6Ly9hdXhkaXNwbGF5Lmdvb2dsZXBhZ2VzLmNvbS8KK1c6CWh0dHA6Ly9taWd1ZWxvamVkYS5lcy9hdXhkaXNwbGF5Lmh0bQorVzoJaHR0cDovL2phaXIubGFiLmZpLnV2YS5lcy9+bWlnb2plZC9hdXhkaXNwbGF5Lmh0bQogUzoJTWFpbnRhaW5lZAogCiBDRkFHMTI4NjRCRkIgTENEIEZSQU1FQlVGRkVSIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIENGRzgwMjExIGFuZCBOTDgwMjExCkBAIC0xMjAyLDYgKzEyMTEsNyBAQAogTToJbWVuYWdlQGdvb2dsZS5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKIFc6CWh0dHA6Ly93d3cuYnVsbG9wZW5zb3VyY2Uub3JnL2NwdXNldC8KK1c6CWh0dHA6Ly9vc3Muc2dpLmNvbS9wcm9qZWN0cy9jcHVzZXRzLwogUzoJU3VwcG9ydGVkCiAKIENSQU1GUyBGSUxFU1lTVEVNCkBAIC0xMjQwLDYgKzEyNTAsMjAgQEAKIFc6CWh0dHA6Ly9saW51eHR2Lm9yZwogUzoJTWFpbnRhaW5lZAogCitDWEdCMyBFVEhFUk5FVCBEUklWRVIgKENYR0IzKQorUDoJRGl2eSBMZSBSYXkKK006CWRpdnlAY2hlbHNpby5jb20KK0w6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKK1c6CWh0dHA6Ly93d3cuY2hlbHNpby5jb20KK1M6CVN1cHBvcnRlZAorCitDWEdCMyBJV0FSUCBSTklDIERSSVZFUiAoSVdfQ1hHQjMpCitQOglTdGV2ZSBXaXNlCitNOglzd2lzZUBjaGVsc2lvLmNvbQorTDoJZ2VuZXJhbEBsaXN0cy5vcGVuZmFicmljcy5vcmcKK1c6CWh0dHA6Ly93d3cub3BlbmZhYnJpY3Mub3JnCitTOglTdXBwb3J0ZWQKKwogQ1lCRVJQUk8gRkIgRFJJVkVSCiBQOglSdXNzZWxsIEtpbmcKIE06CXJta0Bhcm0ubGludXgub3JnLnVrCkBAIC0xNDA1LDYgKzE0MjksMTQgQEAKIEw6CWxpbnV4LWFjcGlAdmdlci5rZXJuZWwub3JnCiBTOglTdXBwb3J0ZWQKIAorRE9DVU1FTlRBVElPTiAoL0RvY3VtZW50YXRpb24gZGlyZWN0b3J5KQorUDogICAgIE1pY2hhZWwgS2VycmlzaworTTogICAgIG10ay5tYW5wYWdlc0BnbWFpbC5jb20KK1A6ICAgICBSYW5keSBEdW5sYXAKK006ICAgICByZHVubGFwQHhlbm90aW1lLm5ldAorTDogICAgIGxpbnV4LWRvY0B2Z2VyLmtlcm5lbC5vcmcKK1M6ICAgICBNYWludGFpbmVkCisKIERPVUJMRVRBTEsgRFJJVkVSCiBQOglKYW1lcyBSLiBWYW4gWmFuZHQKIE06CWpydkB2YW56YW5kdC5tdi5jb20KQEAgLTE1OTcsNyArMTYyOSw3IEBACiBQOglTdGVwaGVuIEhlbW1pbmdlcgogTToJc2hlbW1pbmdlckBsaW51eC1mb3VuZGF0aW9uLm9yZwogTDoJYnJpZGdlQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCi1XOglodHRwOi8vYnJpZGdlLnNvdXJjZWZvcmdlLm5ldC8KK1c6CWh0dHA6Ly93d3cubGludXgtZm91bmRhdGlvbi5vcmcvZW4vTmV0OkJyaWRnZQogUzoJTWFpbnRhaW5lZAogCiBFVEhFUlRFQU0gMTZJIERSSVZFUgpAQCAtMTYxMSwxMyArMTY0MywxMyBAQAogCiBFWFQzIEZJTEUgU1lTVEVNCiBQOglTdGVwaGVuIFR3ZWVkaWUsIEFuZHJldyBNb3J0b24KLU06CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQGNsdXN0ZXJmcy5jb20KK006CXNjdEByZWRoYXQuY29tLCBha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnLCBhZGlsZ2VyQHN1bi5jb20KIEw6CWxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKIEVYVDQgRklMRSBTWVNURU0KIFA6CVN0ZXBoZW4gVHdlZWRpZSwgQW5kcmV3IE1vcnRvbgotTToJc2N0QHJlZGhhdC5jb20sIGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmcsIGFkaWxnZXJAY2x1c3RlcmZzLmNvbQorTToJc2N0QHJlZGhhdC5jb20sIGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmcsIGFkaWxnZXJAc3VuLmNvbQogTDoJbGludXgtZXh0NEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtMTgxMyw3ICsxODQ1LDcgQEAKIAogSEFSTU9OWSBTT1VORCBEUklWRVIKIFA6CUt5bGUgTWNNYXJ0aW4KLU06CWt5bGVAcGFyaXNjLWxpbnV4Lm9yZworTToJa3lsZUBtY21hcnRpbi5jYQogTDoJbGludXgtcGFyaXNjQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC0yNDEzLDkgKzI0NDUsMTAgQEAKIAogS1MwMTA4IExDRCBDT05UUk9MTEVSIERSSVZFUgogUDoJTWlndWVsIE9qZWRhIFNhbmRvbmlzCi1NOgltYXhleHRyZW1lQGdtYWlsLmNvbQorTToJbWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL2F1eGRpc3BsYXkuZ29vZ2xlcGFnZXMuY29tLworVzoJaHR0cDovL21pZ3VlbG9qZWRhLmVzL2F1eGRpc3BsYXkuaHRtCitXOglodHRwOi8vamFpci5sYWIuZmkudXZhLmVzL35taWdvamVkL2F1eGRpc3BsYXkuaHRtCiBTOglNYWludGFpbmVkCiAKIExBUEIgbW9kdWxlCkBAIC0yNDU5LDkgKzI0OTIsMTEgQEAKIFc6CWh0dHA6Ly93d3cuaGFuc2VucGFydG5lcnNoaXAuY29tL3ZveWFnZXIKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMKK0xJTlVYIEZPUiBQT1dFUlBDICgzMi1CSVQgQU5EIDY0LUJJVCkKIFA6CVBhdWwgTWFja2VycmFzCiBNOglwYXVsdXNAc2FtYmEub3JnCitQOglCZW5qYW1pbiBIZXJyZW5zY2htaWR0CitNOgliZW5oQGtlcm5lbC5jcmFzaGluZy5vcmcKIFc6CWh0dHA6Ly93d3cucGVuZ3VpbnBwYy5vcmcvCiBMOglsaW51eHBwYy1kZXZAb3psYWJzLm9yZwogVDoJZ2l0IGtlcm5lbC5vcmc6L3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9wYXVsdXMvcG93ZXJwYy5naXQKQEAgLTI1MDEsMTMgKzI1MzYsNiBAQAogTDoJbGludXhwcGMtZGV2QG96bGFicy5vcmcKIFM6CU1haW50YWluZWQKIAotTElOVVggRk9SIFBPV0VSUEMgQk9PVCBDT0RFCi1QOglUb20gUmluaQotTToJdHJpbmlAa2VybmVsLmNyYXNoaW5nLm9yZwotVzoJaHR0cDovL3d3dy5wZW5ndWlucHBjLm9yZy8KLUw6CWxpbnV4cHBjLWRldkBvemxhYnMub3JnCi1TOglNYWludGFpbmVkCi0KIExJTlVYIEZPUiBQT1dFUlBDIEVNQkVEREVEIFBQQzhYWAogUDoJVml0YWx5IEJvcmR1ZwogTToJdml0YkBrZXJuZWwuY3Jhc2hpbmcub3JnCkBAIC0yNTM2LDIyICsyNTY0LDEwIEBACiBNOglhY21lQGdob3N0cHJvdG9jb2xzLm5ldAogUzoJTWFpbnRhaW5lZAogCi1MSU5VWCBGT1IgNjRCSVQgUE9XRVJQQwotUDoJUGF1bCBNYWNrZXJyYXMKLU06CXBhdWx1c0BzYW1iYS5vcmcKLU06CXBhdWx1c0BhdS5pYm0uY29tCi1QOglBbnRvbiBCbGFuY2hhcmQKLU06CWFudG9uQHNhbWJhLm9yZwotTToJYW50b25AYXUuaWJtLmNvbQotVzoJaHR0cDovL3d3dy5wZW5ndWlucHBjLm9yZy9wcGM2NC8KLUw6CWxpbnV4cHBjLWRldkBvemxhYnMub3JnCi1TOglTdXBwb3J0ZWQKLQogTElOVVggU0VDVVJJVFkgTU9EVUxFIChMU00pIEZSQU1FV09SSwogUDoJQ2hyaXMgV3JpZ2h0CiBNOgljaHJpc3dAc291cy1zb2wub3JnCiBMOglsaW51eC1zZWN1cml0eS1tb2R1bGVAdmdlci5rZXJuZWwub3JnCi1XOglodHRwOi8vbHNtLmltbXVuaXgub3JnCiBUOglnaXQga2VybmVsLm9yZzovcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L2Nocmlzdy9sc20tMi42LmdpdAogUzoJU3VwcG9ydGVkCiAKQEAgLTI2NjYsOCArMjY4Miw4IEBACiBNQU4tUEFHRVM6IE1BTlVBTCBQQUdFUyBGT1IgTElOVVggLS0gU2VjdGlvbnMgMiwgMywgNCwgNSwgYW5kIDcKIFA6CU1pY2hhZWwgS2VycmlzawogTToJbXRrLm1hbnBhZ2VzQGdtYWlsLmNvbQotVzoJZnRwOi8vZnRwLmtlcm5lbC5vcmcvcHViL2xpbnV4L2RvY3MvbWFucGFnZXMKLVM6CU1haW50YWluZWQKK1c6ICAgICBodHRwOi8vd3d3Lmtlcm5lbC5vcmcvZG9jL21hbi1wYWdlcworUzogICAgIFN1cHBvcnRlZAogCiBNQVJWRUxMIExJQkVSVEFTIFdJUkVMRVNTIERSSVZFUgogUDoJRGFuIFdpbGxpYW1zCkBAIC0yODAwLDYgKzI4MTYsMTIgQEAKIFc6CWh0dHA6Ly8wcG9pbnRlci5kZS9sZW5uYXJ0L3RjaGliby5odG1sCiBTOglNYWludGFpbmVkCiAKK01VTFRJRlVOQ1RJT04gREVWSUNFUyAoTUZEKQorUDoJU2FtdWVsIE9ydGl6CitNOglzYW1lb0BvcGVuZWRoYW5kLmNvbQorTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZworUzoJU3VwcG9ydGVkCisKIE1VTFRJTUVESUEgQ0FSRCAoTU1DKSwgU0VDVVJFIERJR0lUQUwgKFNEKSBBTkQgU0RJTyBTVUJTWVNURU0KIFA6CVBpZXJyZSBPc3NtYW4KIE06CWRyemV1cy1tbWNAZHJ6ZXVzLmN4CkBAIC0yODUyLDggKzI4NzQsOCBAQAogTkVURUZGRUNUIElXQVJQIFJOSUMgRFJJVkVSIChJV19ORVMpCiBQOglGYWlzYWwgTGF0aWYKIE06CWZsYXRpZkBuZXRlZmZlY3QuY29tCi1QOglOaXNoaSBHdXB0YQotTToJbmd1cHRhQG5ldGVmZmVjdC5jb20KK1A6CUNoaWVuIFR1bmcKK006CWN0dW5nQG5ldGVmZmVjdC5jb20KIFA6CUdsZW5uIFN0cmVpZmYKIE06CWdzdHJlaWZmQG5ldGVmZmVjdC5jb20KIEw6CWdlbmVyYWxAbGlzdHMub3BlbmZhYnJpY3Mub3JnCkBAIC0zMDY2LDggKzMwODgsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBPUFJPRklMRQotUDoJUGhpbGlwcGUgRWxpZQotTToJcGhpbC5lbEB3YW5hZG9vLmZyCitQOglSb2JlcnQgUmljaHRlcgorTToJcm9iZXJ0LnJpY2h0ZXJAYW1kLmNvbQogTDoJb3Byb2ZpbGUtbGlzdEBsaXN0cy5zZi5uZXQKIFM6CU1haW50YWluZWQKIApAQCAtMzEwNyw3ICszMTI5LDcgQEAKIAogUEFSSVNDIEFSQ0hJVEVDVFVSRQogUDoJS3lsZSBNY01hcnRpbgotTToJa3lsZUBwYXJpc2MtbGludXgub3JnCitNOglreWxlQG1jbWFydGluLmNhCiBQOglNYXR0aGV3IFdpbGNveAogTToJbWF0dGhld0B3aWwuY3gKIFA6CUdyYW50IEdydW5kbGVyCkBAIC0zMTgxLDggKzMyMDMsOCBAQAogUzoJTWFpbnRhaW5lZAogCiBQRVItVEFTSyBERUxBWSBBQ0NPVU5USU5HCi1QOglTaGFpbGFiaCBOYWdhcgotTToJbmFnYXJAd2F0c29uLmlibS5jb20KK1A6CUJhbGJpciBTaW5naAorTToJYmFsYmlyQGxpbnV4LnZuZXQuaWJtLmNvbQogTDoJbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwogUzoJTWFpbnRhaW5lZAogCkBAIC0zMjUxLDcgKzMyNzMsNyBAQAogCiBQUFAgT1ZFUiBFVEhFUk5FVAogUDoJTWljaGFsIE9zdHJvd3NraQotTToJbW9zdHJvd3NAc3BlYWtlYXN5Lm5ldAorTToJbW9zdHJvd3NAZWFydGhsaW5rLm5ldAogUzoJTWFpbnRhaW5lZAogCiBQUFAgT1ZFUiBMMlRQCkBAIC0zMzE2LDkgKzMzMzgsMTEgQEAKIFc6CWh0dHA6Ly93d3cuaXNlbHkubmV0L3B2cnVzYjIvCiBTOglNYWludGFpbmVkCiAKLVBYQTJ4eCBTVVBQT1JUCi1QOglOaWNvbGFzIFBpdHJlCi1NOgluaWNvQGNhbS5vcmcKK1BYQTJ4eC9QWEEzeHggU1VQUE9SVAorUDoJRXJpYyBNaWFvCitNOgllcmljLm1pYW9AbWFydmVsbC5jb20KK1A6CVJ1c3NlbGwgS2luZworTToJbGludXhAYXJtLmxpbnV4Lm9yZy51awogTDoJbGludXgtYXJtLWtlcm5lbEBsaXN0cy5hcm0ubGludXgub3JnLnVrCShzdWJzY3JpYmVycy1vbmx5KQogUzoJTWFpbnRhaW5lZAogCkBAIC0zNDI1LDEwICszNDQ5LDcgQEAKIFM6CU1haW50YWluZWQKIAogUkVJU0VSRlMgRklMRSBTWVNURU0KLVA6CUhhbnMgUmVpc2VyCi1NOglyZWlzZXJmcy1kZXZAbmFtZXN5cy5jb20KIEw6CXJlaXNlcmZzLWRldmVsQHZnZXIua2VybmVsLm9yZwotVzoJaHR0cDovL3d3dy5uYW1lc3lzLmNvbQogUzoJU3VwcG9ydGVkCiAKIFJGS0lMTApAQCAtMzY0OCwxMyArMzY2OSw2IEBACiBMOgluZXRkZXZAdmdlci5rZXJuZWwub3JnCiBTOglNYWludGFpbmVkCiAKLVNJUyA1NTEzIElERSBDT05UUk9MTEVSIERSSVZFUgotUDoJTGlvbmVsIEJvdXRvbgotTToJTGlvbmVsLkJvdXRvbkBpbmV0Ni5mcgotVzoJaHR0cDovL2luZXQ2LmR5bi5kaHMub3JnL3Nwb25zb3Jpbmcvc2lzNTUxMy9pbmRleC5odG1sCi1XOglodHRwOi8vZ3l2ZXIuaG9tZWlwLm5ldC9zaXM1NTEzL2luZGV4Lmh0bWwKLVM6CU1haW50YWluZWQKLQogU0lTIDkwMC83MDE2IEZBU1QgRVRIRVJORVQgRFJJVkVSCiBQOglEYW5pZWxlIFZlbnphbm8KIE06CXZlbnphQGJyb3duaGF0Lm9yZwpAQCAtMzY4Miw3ICszNjk2LDcgQEAKIAogU0xBQiBBTExPQ0FUT1IKIFA6CUNocmlzdG9waCBMYW1ldGVyCi1NOgljbGFtZXRlckBzZ2kuY29tCitNOgljbEBsaW51eC1mb3VuZGF0aW9uLm9yZwogUDoJUGVra2EgRW5iZXJnCiBNOglwZW5iZXJnQGNzLmhlbHNpbmtpLmZpCiBQOglNYXR0IE1hY2thbGwKQEAgLTM4OTIsOCArMzkwNiw4IEBACiBTOglNYWludGFpbmVkCiAKIFRBU0tTVEFUUyBTVEFUSVNUSUNTIElOVEVSRkFDRQotUDoJU2hhaWxhYmggTmFnYXIKLU06CW5hZ2FyQHdhdHNvbi5pYm0uY29tCitQOglCYWxiaXIgU2luZ2gKK006CWJhbGJpckBsaW51eC52bmV0LmlibS5jb20KIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtMzk4OSw3ICs0MDAzLDggQEAKIFM6CU1haW50YWluZWQKIAogVFBNIERFVklDRSBEUklWRVIKLVA6CUt5bGVuZSBIYWxsCitQOiAgICAgRGVib3JhIFZlbGFyZGUKK1A6ICAgICBSYWppdiBBbmRyYWRlCiBNOgl0cG1kZC1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKIFc6CWh0dHA6Ly90cG1kZC5zb3VyY2Vmb3JnZS5uZXQKIFA6CU1hcmNlbCBTZWxob3JzdApAQCAtNDAyMCw3ICs0MDM1LDcgQEAKIFA6CUdyYW50IEdydW5kbGVyCiBNOglncnVuZGxlckBwYXJpc2MtbGludXgub3JnCiBQOglLeWxlIE1jTWFydGluCi1NOglreWxlQHBhcmlzYy1saW51eC5vcmcKK006CWt5bGVAbWNtYXJ0aW4uY2EKIEw6CW5ldGRldkB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIApAQCAtNDMwOCw2ICs0MzIzLDE0IEBACiBXOglodHRwOi8vd3d3LmxpbnV4LXVzYi5vcmcvdXNibmV0CiBTOglNYWludGFpbmVkCiAKK1VTQiBWSURFTyBDTEFTUworUDoJTGF1cmVudCBQaW5jaGFydAorTToJbGF1cmVudC5waW5jaGFydEBza3luZXQuYmUKK0w6CWxpbngtdXZjLWRldmVsQGJlcmxpb3MuZGUKK0w6CXZpZGVvNGxpbnV4LWxpc3RAcmVkaGF0LmNvbQorVzoJaHR0cDovL2xpbnV4LXV2Yy5iZXJsaW9zLmRlCitTOglNYWludGFpbmVkCisKIFVTQiBXOTk2Wzg3XUNGIERSSVZFUgogUDoJTHVjYSBSaXNvbGlhCiBNOglsdWNhLnJpc29saWFAc3R1ZGlvLnVuaWJvLml0CkBAIC00MzYxLDYgKzQzODQsMTQgQEAKIEw6CWxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKIFM6CU1haW50YWluZWQKIAorVVRJTC1MSU5VWC1ORyBQQUNLQUdFCitQOglLYXJlbCBaYWsKK006CWt6YWtAcmVkaGF0LmNvbQorTDoJdXRpbC1saW51eC1uZ0B2Z2VyLmtlcm5lbC5vcmcKK1c6CWh0dHA6Ly9rZXJuZWwub3JnL35remFrL3V0aWwtbGludXgtbmcvCitUOglnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL3V0aWxzL3V0aWwtbGludXgtbmcvdXRpbC1saW51eC1uZy5naXQKK1M6CU1haW50YWluZWQKKwogVkZBVC9GQVQvTVNET1MgRklMRVNZU1RFTToKIFA6CU9HQVdBIEhpcm9mdW1pCiBNOgloaXJvZnVtaUBtYWlsLnBhcmtuZXQuY28uanAKQEAgLTQ0MTcsMTAgKzQ0NDgsMTAgQEAKIFM6CU1haW50YWluZWQKIAogVzgzNzkxRCBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUgotUDoJQ2hhcmxlcyBTcGlyYWtpcwotTToJYmV6YXVyQGdtYWlsLmNvbQorUDoJTWFyYyBIdWxzbWFuCitNOgltLmh1bHNtYW5AdHVkZWxmdC5ubAogTDoJbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwotUzoJT2RkIEZpeGVzCitTOglNYWludGFpbmVkCiAKIFc4Mzc5MyBIQVJEV0FSRSBNT05JVE9SSU5HIERSSVZFUgogUDoJUnVkb2xmIE1hcmVrCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlCmluZGV4IDIwYjMyMzUuLjVlZmRkODggMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDggKzEsOCBAQAogVkVSU0lPTiA9IDIKIFBBVENITEVWRUwgPSA2CiBTVUJMRVZFTCA9IDI2Ci1FWFRSQVZFUlNJT04gPSAtcmMzCi1OQU1FID0gRnVua3kgV2Vhc2VsIGlzIEppZ2d5IHdpdCBpdAorRVhUUkFWRVJTSU9OID0KK05BTUUgPSBSb3RhcnkgV29tYmF0CiAKICMgKkRPQ1VNRU5UQVRJT04qCiAjIFRvIHNlZSBhIGxpc3Qgb2YgdHlwaWNhbCB0YXJnZXRzIGV4ZWN1dGUgIm1ha2UgaGVscCIKQEAgLTQ1MCw3ICs0NTAsNyBAQAogCiAjIE9iamVjdHMgd2Ugd2lsbCBsaW5rIGludG8gdm1saW51eCAvIHN1YmRpcnMgd2UgbmVlZCB0byB2aXNpdAogaW5pdC15CQk6PSBpbml0LwotZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLworZHJpdmVycy15CTo9IGRyaXZlcnMvIHNvdW5kLyBmaXJtd2FyZS8KIG5ldC15CQk6PSBuZXQvCiBsaWJzLXkJCTo9IGxpYi8KIGNvcmUteQkJOj0gdXNyLwpAQCAtNTI4LDYgKzUyOCwxMCBAQAogS0JVSUxEX0FGTEFHUwkrPSAtZ2R3YXJmLTIKIGVuZGlmCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKK0tCVUlMRF9DRkxBR1MJKz0gLXBnCitlbmRpZgorCiAjIFdlIHRyaWdnZXIgYWRkaXRpb25hbCBtaXNtYXRjaGVzIHdpdGggbGVzcyBpbmxpbmluZwogaWZkZWYgQ09ORklHX0RFQlVHX1NFQ1RJT05fTUlTTUFUQ0gKIEtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwgLWZuby1pbmxpbmUtZnVuY3Rpb25zLWNhbGxlZC1vbmNlKQpAQCAtOTk1LDYgKzk5OSwxNiBAQAogCUBlY2hvICcqKiogV2FybmluZzogbWFrZSAkQCBpcyB1bm5lY2Vzc2FyeSBub3cuJwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBGaXJtd2FyZSBpbnN0YWxsCitJTlNUQUxMX0ZXX1BBVEg9JChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUKK2V4cG9ydCBJTlNUQUxMX0ZXX1BBVEgKKworUEhPTlkgKz0gZmlybXdhcmVfaW5zdGFsbAorZmlybXdhcmVfaW5zdGFsbDogRk9SQ0UKKwlAbWtkaXIgLXAgJChvYmp0cmVlKS9maXJtd2FyZQorCSQoUSkkKE1BS0UpIC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmlsZS5md2luc3Qgb2JqPWZpcm13YXJlIF9fZndfaW5zdGFsbAorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBLZXJuZWwgaGVhZGVycwogSU5TVEFMTF9IRFJfUEFUSD0kKG9ianRyZWUpL3VzcgogZXhwb3J0IElOU1RBTExfSERSX1BBVEgKQEAgLTEwODAsNiArMTA5NCw3IEBACiAjIGJvb3Qgc2NyaXB0IGRlcG1vZCBpcyB0aGUgbWFzdGVyIHZlcnNpb24uCiBQSE9OWSArPSBfbW9kaW5zdF9wb3N0CiBfbW9kaW5zdF9wb3N0OiBfbW9kaW5zdF8KKwkkKFEpJChNQUtFKSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0IG9iaj1maXJtd2FyZSBfX2Z3X21vZGluc3QKIAkkKGNhbGwgY21kLGRlcG1vZCkKIAogZWxzZSAjIENPTkZJR19NT0RVTEVTCkBAIC0xMTk3LDYgKzEyMTIsOCBAQAogCUBlY2hvICAnKiB2bWxpbnV4CSAgLSBCdWlsZCB0aGUgYmFyZSBrZXJuZWwnCiAJQGVjaG8gICcqIG1vZHVsZXMJICAtIEJ1aWxkIGFsbCBtb2R1bGVzJwogCUBlY2hvICAnICBtb2R1bGVzX2luc3RhbGwgLSBJbnN0YWxsIGFsbCBtb2R1bGVzIHRvIElOU1RBTExfTU9EX1BBVEggKGRlZmF1bHQ6IC8pJworCUBlY2hvICAnICBmaXJtd2FyZV9pbnN0YWxsLSBJbnN0YWxsIGFsbCBmaXJtd2FyZSB0byBJTlNUQUxMX0ZXX1BBVEgnCisJQGVjaG8gICcgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0OiAkJChJTlNUQUxMX01PRF9QQVRIKS9saWIvZmlybXdhcmUpJwogCUBlY2hvICAnICBkaXIvICAgICAgICAgICAgLSBCdWlsZCBhbGwgZmlsZXMgaW4gZGlyIGFuZCBiZWxvdycKIAlAZWNobyAgJyAgZGlyL2ZpbGUuW29pc10gIC0gQnVpbGQgc3BlY2lmaWVkIHRhcmdldCBvbmx5JwogCUBlY2hvICAnICBkaXIvZmlsZS5rbyAgICAgLSBCdWlsZCBtb2R1bGUgaW5jbHVkaW5nIGZpbmFsIGxpbmsnCmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL01ha2VmaWxlIGIvYXJjaC9hbHBoYS9NYWtlZmlsZQppbmRleCA0ZTFhOGUyLi40NzU5ZmU3IDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL01ha2VmaWxlCisrKyBiL2FyY2gvYWxwaGEvTWFrZWZpbGUKQEAgLTEzLDYgKzEzLDcgQEAKIExERkxBR1Nfdm1saW51eAk6PSAtc3RhdGljIC1OICMtcmVsYXgKIENIRUNLRkxBR1MJKz0gLURfX2FscGhhX18gLW02NAogY2ZsYWdzLXkJOj0gLXBpcGUgLW1uby1mcC1yZWdzIC1mZml4ZWQtOCAtbXNtYWxsLWRhdGEKK2NmbGFncy15CSs9ICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tanVtcC10YWJsZXMpCiAKIGNwdWZsYWdzLSQoQ09ORklHX0FMUEhBX0VWNCkJCTo9IC1tY3B1PWV2NAogY3B1ZmxhZ3MtJChDT05GSUdfQUxQSEFfRVY1KQkJOj0gLW1jcHU9ZXY1CmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX3QyLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX3QyLmMKaW5kZXggYzA3NTAyOS4uZDk5ODBkNCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvY29yZV90Mi5jCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL2NvcmVfdDIuYwpAQCAtNzQsNiArNzQsOCBAQAogIyBkZWZpbmUgREJHKGFyZ3MpCiAjZW5kaWYKIAorREVGSU5FX1NQSU5MT0NLKHQyX2hhZV9sb2NrKTsKKwogc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGludCB0Ml9tY2hlY2tfYW55X2V4cGVjdGVkOwogc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGludCB0Ml9tY2hlY2tfbGFzdF90YWtlbjsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYwppbmRleCAzNmFiMjJhLi41Y2Y0NWZjIDEwMDY0NAotLS0gYS9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYworKysgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYwpAQCAtNzEsNiArNzEsMjMgQEAKIHN0YXRpYyB2b2lkIF9faW5pdAogcXVpcmtfY3lwcmVzcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogeworCS8qIFRoZSBOb3RvcmlvdXMgQ3k4MkM2OTMgY2hpcC4gICovCisKKwkvKiBUaGUgZ2VuZXJpYyBsZWdhY3kgbW9kZSBJREUgZml4dXAgaW4gZHJpdmVycy9wY2kvcHJvYmUuYworCSAgIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCB0aGUgQ3lwcmVzcyBJREUgY29udHJvbGxlciBhcworCSAgIGl0IGhhcyBub24tc3RhbmRhcmQgcmVnaXN0ZXIgbGF5b3V0LiAgRml4IHRoYXQuICAqLworCWlmIChkZXYtPmNsYXNzID4+IDggPT0gUENJX0NMQVNTX1NUT1JBR0VfSURFKSB7CisJCWRldi0+cmVzb3VyY2VbMl0uc3RhcnQgPSBkZXYtPnJlc291cmNlWzNdLnN0YXJ0ID0gMDsKKwkJZGV2LT5yZXNvdXJjZVsyXS5lbmQgPSBkZXYtPnJlc291cmNlWzNdLmVuZCA9IDA7CisJCWRldi0+cmVzb3VyY2VbMl0uZmxhZ3MgPSBkZXYtPnJlc291cmNlWzNdLmZsYWdzID0gMDsKKwkJaWYgKFBDSV9GVU5DKGRldi0+ZGV2Zm4pID09IDIpIHsKKwkJCWRldi0+cmVzb3VyY2VbMF0uc3RhcnQgPSAweDE3MDsKKwkJCWRldi0+cmVzb3VyY2VbMF0uZW5kID0gMHgxNzc7CisJCQlkZXYtPnJlc291cmNlWzFdLnN0YXJ0ID0gMHgzNzY7CisJCQlkZXYtPnJlc291cmNlWzFdLmVuZCA9IDB4Mzc2OworCQl9CisJfQorCiAJLyogVGhlIEN5cHJlc3MgYnJpZGdlIHJlc3BvbmRzIG9uIHRoZSBQQ0kgYnVzIGluIHRoZSBhZGRyZXNzIHJhbmdlCiAJICAgMHhmZmZmMDAwMC0weGZmZmZmZmZmIChjb252ZW50aW9uYWwgeDg2IEJJT1MgUk9NKS4gIFRoZXJlIGlzIG5vCiAJICAgd2F5IHRvIHR1cm4gdGhpcyBvZmYuICBUaGUgYnJpZGdlIGFsc28gc3VwcG9ydHMgc2V2ZXJhbCBleHRlbmRlZApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvYWxwaGEva2VybmVsL3RyYXBzLmMKaW5kZXggZGM1Nzc5MC4uYzc3ODc3OSAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvdHJhcHMuYworKysgYi9hcmNoL2FscGhhL2tlcm5lbC90cmFwcy5jCkBAIC00NDcsNyArNDQ3LDcgQEAKIAogCiAvKiBNYWNybyBmb3IgZXhjZXB0aW9uIGZpeHVwIGNvZGUgdG8gYWNjZXNzIGludGVnZXIgcmVnaXN0ZXJzLiAgKi8KLSNkZWZpbmUgdW5hX3JlZyhyKSAgKHJlZ3MtPnJlZ3NbKHIpID49IDE2ICYmIChyKSA8PSAxOCA/IChyKSsxOSA6IChyKV0pCisjZGVmaW5lIHVuYV9yZWcocikgIChfcmVnc1socikgPj0gMTYgJiYgKHIpIDw9IDE4ID8gKHIpKzE5IDogKHIpXSkKIAogCiBhc21saW5rYWdlIHZvaWQKQEAgLTQ1Niw2ICs0NTYsNyBAQAogewogCWxvbmcgZXJyb3IsIHRtcDEsIHRtcDIsIHRtcDMsIHRtcDQ7CiAJdW5zaWduZWQgbG9uZyBwYyA9IHJlZ3MtPnBjIC0gNDsKKwl1bnNpZ25lZCBsb25nICpfcmVncyA9IHJlZ3MtPnJlZ3M7CiAJY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZml4dXA7CiAKIAl1bmFsaWduZWRbMF0uY291bnQrKzsKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2FscGhhL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGYxMzI0OWIuLmVmMzdmYzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9hbHBoYS9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtMjUsNiArMjUsMTMgQEAKIAl9IDprZXJuZWwKIAlfZXRleHQgPSAuOwkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAKKwlOT1RFUyA6a2VybmVsIDpub3RlCisJLmR1bW15IDogeworCQkqKC5kdW1teSkKKwl9IDprZXJuZWwKKworCVJPREFUQQorCiAJLyogRXhjZXB0aW9uIHRhYmxlICovCiAJLiA9IEFMSUdOKDE2KTsKIAlfX2V4X3RhYmxlIDogewpAQCAtMzMsMTMgKzQwLDYgQEAKIAkJX19zdG9wX19fZXhfdGFibGUgPSAuOwogCX0KIAotCU5PVEVTIDprZXJuZWwgOm5vdGUKLQkuZHVtbXkgOiB7Ci0JCSooLmR1bW15KQotCX0gOmtlcm5lbAotCi0JUk9EQVRBCi0KIAkvKiBXaWxsIGJlIGZyZWVkIGFmdGVyIGluaXQgKi8KIAkuID0gQUxJR04oUEFHRV9TSVpFKTsKIAkvKiBJbml0IGNvZGUgYW5kIGRhdGEgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL0tjb25maWcgYi9hcmNoL2FybS9LY29uZmlnCmluZGV4IGI3ODZlNjguLjI1OGYxMzYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL0tjb25maWcKKysrIGIvYXJjaC9hcm0vS2NvbmZpZwpAQCAtMTQsNiArMTQsOCBAQAogCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfS1BST0JFUyBpZiAoIVhJUF9LRVJORUwpCiAJc2VsZWN0IEhBVkVfS1JFVFBST0JFUyBpZiAoSEFWRV9LUFJPQkVTKQorCXNlbGVjdCBIQVZFX0ZUUkFDRSBpZiAoIVhJUF9LRVJORUwpCisJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0UgaWYgKEhBVkVfRlRSQUNFKQogCWhlbHAKIAkgIFRoZSBBUk0gc2VyaWVzIGlzIGEgbGluZSBvZiBsb3ctcG93ZXItY29uc3VtcHRpb24gUklTQyBjaGlwIGRlc2lnbnMKIAkgIGxpY2Vuc2VkIGJ5IEFSTSBMdGQgYW5kIHRhcmdldGVkIGF0IGVtYmVkZGVkIGFwcGxpY2F0aW9ucyBhbmQKQEAgLTIyLDYgKzI0LDkgQEAKIAkgIEV1cm9wZS4gIFRoZXJlIGlzIGFuIEFSTSBMaW51eCBwcm9qZWN0IHdpdGggYSB3ZWIgcGFnZSBhdAogCSAgPGh0dHA6Ly93d3cuYXJtLmxpbnV4Lm9yZy51ay8+LgogCitjb25maWcgSEFWRV9QV00KKwlib29sCisKIGNvbmZpZyBTWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTgogCWJvb2wKIApAQCAtODQsNiArODksMTEgQEAKIAlib29sCiAJZGVmYXVsdCB5CiAKK2NvbmZpZyBIQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVAorCWJvb2wKKwlkZXBlbmRzIG9uICFTTVAKKwlkZWZhdWx0IHkKKwogY29uZmlnIExPQ0tERVBfU1VQUE9SVAogCWJvb2wKIAlkZWZhdWx0IHkKQEAgLTE0Nyw2ICsxNTcsMTAgQEAKIGNvbmZpZyBBUkNIX01URF9YSVAKIAlib29sCiAKK2NvbmZpZyBHRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlEKKwlib29sCisJZGVmX2Jvb2wgeQorCiBpZiBPUFJPRklMRQogCiBjb25maWcgT1BST0ZJTEVfQVJNVjYKQEAgLTIzMiwxMyArMjQ2LDYgQEAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBDaXJydXMgTG9naWMgNzExeC83MjF4IGJhc2VkIGJvYXJkcy4KIAotY29uZmlnIEFSQ0hfQ08yODUKLQlib29sICJDby1FQlNBMjg1IgotCXNlbGVjdCBGT09UQlJJREdFCi0Jc2VsZWN0IEZPT1RCUklER0VfQURESU4KLQloZWxwCi0JICBTdXBwb3J0IGZvciBJbnRlbCdzIEVCU0EyODUgY29tcGFuaW9uIGNoaXAuCi0KIGNvbmZpZyBBUkNIX0VCU0ExMTAKIAlib29sICJFQlNBLTExMCIKIAlzZWxlY3QgSVNBCkBAIC0yOTksNiArMzA2LDggQEAKIAlkZXBlbmRzIG9uIE1NVQogCXNlbGVjdCBQTEFUX0lPUAogCXNlbGVjdCBQQ0kKKwlzZWxlY3QgR0VORVJJQ19HUElPCisJc2VsZWN0IEhBVkVfR1BJT19MSUIKIAloZWxwCiAJICBTdXBwb3J0IGZvciBJbnRlbCdzIDgwMjE5IGFuZCBJT1AzMlggKFhTY2FsZSkgZmFtaWx5IG9mCiAJICBwcm9jZXNzb3JzLgpAQCAtMzA4LDYgKzMxNyw4IEBACiAJZGVwZW5kcyBvbiBNTVUKIAlzZWxlY3QgUExBVF9JT1AKIAlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfR1BJTworCXNlbGVjdCBIQVZFX0dQSU9fTElCCiAJaGVscAogCSAgU3VwcG9ydCBmb3IgSW50ZWwncyBJT1AzM1ggKFhTY2FsZSkgZmFtaWx5IG9mIHByb2Nlc3NvcnMuCiAKQEAgLTM0Nyw2ICszNTgsMTYgQEAKIAkgIElmIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMgb3IgY29tbWVudHMgYWJvdXQgdGhlIExpbnV4IGtlcm5lbCBwb3J0CiAJICB0byB0aGlzIGJvYXJkLCBzZW5kIGUtbWFpbCB0byA8c2poaWxsQGNvdHcuY29tPi4KIAorY29uZmlnIEFSQ0hfS0lSS1dPT0QKKwlib29sICJNYXJ2ZWxsIEtpcmt3b29kIgorCXNlbGVjdCBQQ0kKKwlzZWxlY3QgR0VORVJJQ19USU1FCisJc2VsZWN0IEdFTkVSSUNfQ0xPQ0tFVkVOVFMKKwlzZWxlY3QgUExBVF9PUklPTgorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgTWFydmVsbCBLaXJrd29vZCBzZXJpZXMgU29DczoKKwkgIDg4RjYxODAsIDg4RjYxOTIgYW5kIDg4RjYyODEuCisKIGNvbmZpZyBBUkNIX0tTODY5NQogCWJvb2wgIk1pY3JlbC9LZW5kaW4gS1M4Njk1IgogCXNlbGVjdCBHRU5FUklDX0dQSU8KQEAgLTM2NSw5ICszODYsMzEgQEAKIAogCSAgPGh0dHA6Ly93d3cuZGlnaS5jb20vcHJvZHVjdHMvbWljcm9wcm9jZXNzb3JzL2luZGV4LmpzcD4KIAorY29uZmlnIEFSQ0hfTE9LSQorCWJvb2wgIk1hcnZlbGwgTG9raSAoODhSQzg0ODApIgorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUworCXNlbGVjdCBQTEFUX09SSU9OCisJaGVscAorCSAgU3VwcG9ydCBmb3IgdGhlIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQy4KKworY29uZmlnIEFSQ0hfTVY3OFhYMAorCWJvb2wgIk1hcnZlbGwgTVY3OHh4MCIKKwlzZWxlY3QgUENJCisJc2VsZWN0IEdFTkVSSUNfVElNRQorCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCisJc2VsZWN0IFBMQVRfT1JJT04KKwloZWxwCisJICBTdXBwb3J0IGZvciB0aGUgZm9sbG93aW5nIE1hcnZlbGwgTVY3OHh4MCBzZXJpZXMgU29DczoKKwkgIE1WNzgxeDAsIE1WNzgyeDAuCisKIGNvbmZpZyBBUkNIX01YQwogCWJvb2wgIkZyZWVzY2FsZSBNWEMvaU1YLWJhc2VkIgorCXNlbGVjdCBHRU5FUklDX1RJTUUKKwlzZWxlY3QgR0VORVJJQ19DTE9DS0VWRU5UUwogCXNlbGVjdCBBUkNIX01URF9YSVAKKwlzZWxlY3QgR0VORVJJQ19HUElPCisJc2VsZWN0IEhBVkVfR1BJT19MSUIKIAloZWxwCiAJICBTdXBwb3J0IGZvciBGcmVlc2NhbGUgTVhDL2lNWC1iYXNlZCBmYW1pbHkgb2YgcHJvY2Vzc29ycwogCkBAIC0zODEsNyArNDI0LDggQEAKIAlzZWxlY3QgUExBVF9PUklPTgogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIHRoZSBmb2xsb3dpbmcgTWFydmVsbCBPcmlvbiA1eCBzZXJpZXMgU29DczoKLQkgIE9yaW9uLTEgKDUxODEpLCBPcmlvbi1OQVMgKDUxODIpLCBPcmlvbi0yICg1MjgxLikKKwkgIE9yaW9uLTEgKDUxODEpLCBPcmlvbi1Wb0lQICg1MTgxTCksIE9yaW9uLU5BUyAoNTE4MiksCisJICBPcmlvbi0yICg1MjgxKS4KIAogY29uZmlnIEFSQ0hfUE5YNDAwOAogCWJvb2wgIlBoaWxpcHMgTmV4cGVyaWEgUE5YNDAwOCBNb2JpbGUiCkBAIC00MDYsNiArNDUwLDcgQEAKIAlzZWxlY3QgRklRCiAJc2VsZWN0IFRJTUVSX0FDT1JOCiAJc2VsZWN0IEFSQ0hfTUFZX0hBVkVfUENfRkRDCisJc2VsZWN0IEhBVkVfUEFUQV9QTEFURk9STQogCXNlbGVjdCBJU0FfRE1BX0FQSQogCXNlbGVjdCBOT19JT1BPUlQKIAloZWxwCkBAIC01MDIsNiArNTQ3LDEwIEBACiAKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1peHAyM3h4L0tjb25maWciCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWciCisKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWciCisKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZyIKIAogc291cmNlICJhcmNoL2FybS9tYWNoLXNhMTEwMC9LY29uZmlnIgpAQCAtNTE0LDYgKzU2Myw4IEBACiAKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1vcmlvbjV4L0tjb25maWciCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1raXJrd29vZC9LY29uZmlnIgorCiBzb3VyY2UgImFyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnIgogc291cmNlICJhcmNoL2FybS9wbGF0LXMzYy9LY29uZmlnIgogCkBAIC03MDMsMjcgKzc1NCw2IEBACiAJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgYnVpbGRpbmcgYSBrZXJuZWwgZm9yIGEgZGVza3RvcCwgZW1iZWRkZWQKIAkgIG9yIHJlYWwtdGltZSBzeXN0ZW0uICBTYXkgTiBpZiB5b3UgYXJlIHVuc3VyZS4KIAotY29uZmlnIE5PX0lETEVfSFoKLQlib29sICJEeW5hbWljIHRpY2sgdGltZXIiCi0JZGVwZW5kcyBvbiAhR0VORVJJQ19DTE9DS0VWRU5UUwotCWhlbHAKLQkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIGNvbnRpbnVvdXMgdGltZXIgdGlja3MKLQkgIGFuZCBoYXZlIHRoZW0gcHJvZ3JhbW1lZCB0byBvY2N1ciBhcyByZXF1aXJlZC4gVGhpcyBvcHRpb24gc2F2ZXMKLQkgIHBvd2VyIGFzIHRoZSBzeXN0ZW0gY2FuIHJlbWFpbiBpbiBpZGxlIHN0YXRlIGZvciBsb25nZXIuCi0KLQkgIEJ5IGRlZmF1bHQgZHluYW1pYyB0aWNrIGlzIGRpc2FibGVkIGR1cmluZyB0aGUgYm9vdCwgYW5kIGNhbiBiZQotCSAgbWFudWFsbHkgZW5hYmxlZCB3aXRoOgotCi0JICAgIGVjaG8gMSA+IC9zeXMvZGV2aWNlcy9zeXN0ZW0vdGltZXIvdGltZXIwL2R5bl90aWNrCi0KLQkgIEFsdGVybmF0aXZlbHksIGlmIHlvdSB3YW50IGR5bmFtaWMgdGljayBhdXRvbWF0aWNhbGx5IGVuYWJsZWQKLQkgIGR1cmluZyBib290LCBwYXNzICJkeW50aWNrPWVuYWJsZSIgdmlhIHRoZSBrZXJuZWwgY29tbWFuZCBzdHJpbmcuCi0KLQkgIFBsZWFzZSBub3RlIHRoYXQgZHluYW1pYyB0aWNrIG1heSBhZmZlY3QgdGhlIGFjY3VyYWN5IG9mCi0JICB0aW1la2VlcGluZyBvbiBzb21lIHBsYXRmb3JtcyBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLgotCSAgQ3VycmVudGx5IGF0IGxlYXN0IE9NQVAsIFBYQTJ4eCBhbmQgU0ExMXgwIHBsYXRmb3JtcyBhcmUga25vd24KLQkgIHRvIGhhdmUgYWNjdXJhdGUgdGltZWtlZXBpbmcgd2l0aCBkeW5hbWljIHRpY2suCi0KIGNvbmZpZyBIWgogCWludAogCWRlZmF1bHQgMTI4IGlmIEFSQ0hfTDcyMDAKQEAgLTc4OSw3ICs4MTksNyBAQAogCiBjb25maWcgTEVEUwogCWJvb2wgIlRpbWVyIGFuZCBDUFUgdXNhZ2UgTEVEcyIKLQlkZXBlbmRzIG9uIEFSQ0hfQ0RCODk3MTIgfHwgQVJDSF9DTzI4NSB8fCBBUkNIX0VCU0ExMTAgfHwgXAorCWRlcGVuZHMgb24gQVJDSF9DREI4OTcxMiB8fCBBUkNIX0VCU0ExMTAgfHwgXAogCQkgICBBUkNIX0VCU0EyODUgfHwgQVJDSF9JTVggfHwgQVJDSF9JTlRFR1JBVE9SIHx8IFwKIAkJICAgQVJDSF9MVUJCT0NLIHx8IE1BQ0hfTUFJTlNUT05FIHx8IEFSQ0hfTkVUV0lOREVSIHx8IFwKIAkJICAgQVJDSF9PTUFQIHx8IEFSQ0hfUDcyMFQgfHwgQVJDSF9QWEFfSURQIHx8IFwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL01ha2VmaWxlIGIvYXJjaC9hcm0vTWFrZWZpbGUKaW5kZXggZTcyZGIyNy4uYjIwOTk1YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vTWFrZWZpbGUKQEAgLTEwMCw4ICsxMDAsNiBAQAogICBpbmNkaXItJChDT05GSUdfQVJDSF9DTFBTNzUwMCkgICA6PSBjbDc1MDAKICBtYWNoaW5lLSQoQ09ORklHX0ZPT1RCUklER0UpCSAgIDo9IGZvb3RicmlkZ2UKICAgaW5jZGlyLSQoQ09ORklHX0ZPT1RCUklER0UpCSAgIDo9IGVic2EyODUKLSBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfQ08yODUpCSAgIDo9IGZvb3RicmlkZ2UKLSAgaW5jZGlyLSQoQ09ORklHX0FSQ0hfQ08yODUpCSAgIDo9IGVic2EyODUKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfU0hBUkspCSAgIDo9IHNoYXJrCiAgbWFjaGluZS0kKENPTkZJR19BUkNIX1NBMTEwMCkJICAgOj0gc2ExMTAwCiBpZmVxICgkKENPTkZJR19BUkNIX1NBMTEwMCkseSkKQEAgLTEzNSwxMSArMTMzLDE1IEBACiAgbWFjaGluZS0kKENPTkZJR19BUkNIX05FVFgpCSAgIDo9IG5ldHgKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTlM5WFhYKQkgICA6PSBuczl4eHgKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfREFWSU5DSSkJICAgOj0gZGF2aW5jaQorIG1hY2hpbmUtJChDT05GSUdfQVJDSF9LSVJLV09PRCkgICA6PSBraXJrd29vZAogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9LUzg2OTUpICAgICA6PSBrczg2OTUKICAgaW5jZGlyLSQoQ09ORklHX0FSQ0hfTVhDKQkgICA6PSBteGMKKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVgyKQkgICA6PSBteDIKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTVgzKQkgICA6PSBteDMKICBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfT1JJT041WCkJICAgOj0gb3Jpb241eAogIG1hY2hpbmUtJChDT05GSUdfQVJDSF9NU003WDAwQSkgICA6PSBtc20KKyBtYWNoaW5lLSQoQ09ORklHX0FSQ0hfTE9LSSkgICAgICAgOj0gbG9raQorIG1hY2hpbmUtJChDT05GSUdfQVJDSF9NVjc4WFgwKSAgICA6PSBtdjc4eHgwCiAKIGlmZXEgKCQoQ09ORklHX0FSQ0hfRUJTQTExMCkseSkKICMgVGhpcyBpcyB3aGF0IGhhcHBlbnMgaWYgeW91IGZvcmdldCB0aGUgSU9DUzE2IGxpbmUuCkBAIC0xOTAsOCArMTkyLDYgQEAKIGNvcmUtJChDT05GSUdfQVJDSF9NWEMpCQkrPSBhcmNoL2FybS9wbGF0LW14Yy8KIAogZHJpdmVycy0kKENPTkZJR19PUFJPRklMRSkgICAgICArPSBhcmNoL2FybS9vcHJvZmlsZS8KLWRyaXZlcnMtJChDT05GSUdfQVJDSF9DTFBTNzUwMCkJKz0gZHJpdmVycy9hY29ybi9jaGFyLwotZHJpdmVycy0kKENPTkZJR19BUkNIX0w3MjAwKQkrPSBkcml2ZXJzL2Fjb3JuL2NoYXIvCiAKIGxpYnMteQkJCQk6PSBhcmNoL2FybS9saWIvICQobGlicy15KQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvTWFrZWZpbGUKaW5kZXggZGU5ZDllZS4uOTViYWFjNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9NYWtlZmlsZQpAQCAtNjksNiArNjksMTIgQEAKIAogdGFyZ2V0cyAgICAgICA6PSB2bWxpbnV4IHZtbGludXgubGRzIHBpZ2d5Lmd6IHBpZ2d5Lm8gZm9udC5vIGZvbnQuYyBcCiAJCSBoZWFkLm8gbWlzYy5vICQoT0JKUykKKworaWZlcSAoJChDT05GSUdfRlRSQUNFKSx5KQorT1JJR19DRkxBR1MgOj0gJChLQlVJTERfQ0ZMQUdTKQorS0JVSUxEX0NGTEFHUyA9ICQoc3Vic3QgLXBnLCAsICQoT1JJR19DRkxBR1MpKQorZW5kaWYKKwogRVhUUkFfQ0ZMQUdTICA6PSAtZnBpYyAtZm5vLWJ1aWx0aW4KIEVYVFJBX0FGTEFHUyAgOj0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQteHNjYWxlLlMgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC14c2NhbGUuUwppbmRleCA2N2VhOTllLi5kZDNmYmQ2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC14c2NhbGUuUworKysgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC14c2NhbGUuUwpAQCAtMzMsMTAgKzMzLDYgQEAKIAkJYmljCXIwLCByMCwgIzB4MTAwMAkJQCBjbGVhciBJY2FjaGUKIAkJbWNyCXAxNSwgMCwgcjAsIGMxLCBjMCwgMAogCi0jaWZkZWYgQ09ORklHX0FSQ0hfQ09UVUxMQV9JRFAKLQkJbW92CXI3LCAjTUFDSF9UWVBFX0NPVFVMTEFfSURQCi0jZW5kaWYKLQogI2lmZGVmIENPTkZJR19BUkNIX0lYUDIwMDAKIAkJbW92CXIxLCAjLTEKIAkJbW92CXIwLCAjMHhkNjAwMDAwMApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUyBiL2FyY2gvYXJtL2Jvb3QvY29tcHJlc3NlZC9oZWFkLlMKaW5kZXggM2MyYzhmMi4uZGU0MWRhZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9vdC9jb21wcmVzc2VkL2hlYWQuUworKysgYi9hcmNoL2FybS9ib290L2NvbXByZXNzZWQvaGVhZC5TCkBAIC02MjMsOCArNjIzLDggQEAKIAkJYglfX2FybXY0X21tdV9jYWNoZV9vZmYKIAkJYglfX2FybXY0X21tdV9jYWNoZV9mbHVzaAogCi0JCS53b3JkCTB4NTYwNTUzMTAJCUAgRmVyb2Nlb24KLQkJLndvcmQJMHhmZmZmZmZmMAorCQkud29yZAkweDU2MDUwMDAwCQlAIEZlcm9jZW9uCisJCS53b3JkCTB4ZmYwZjAwMDAKIAkJYglfX2FybXY0X21tdV9jYWNoZV9vbgogCQliCV9fYXJtdjRfbW11X2NhY2hlX29mZgogCQliCV9fYXJtdjV0ZWpfbW11X2NhY2hlX2ZsdXNoCmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb21tb24vTWFrZWZpbGUgYi9hcmNoL2FybS9jb21tb24vTWFrZWZpbGUKaW5kZXggM2QwYjlmYS4uMzI1ZTRiNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29tbW9uL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9NYWtlZmlsZQpAQCAtMiw3ICsyLDYgQEAKICMgTWFrZWZpbGUgZm9yIHRoZSBsaW51eCBrZXJuZWwuCiAjCiAKLW9iai15CQkJCSs9IHJ0Y3RpbWUubwogb2JqLSQoQ09ORklHX0FSTV9HSUMpCQkrPSBnaWMubwogb2JqLSQoQ09ORklHX0FSTV9WSUMpCQkrPSB2aWMubwogb2JqLSQoQ09ORklHX0lDU1Q1MjUpCQkrPSBpY3N0NTI1Lm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYyBiL2FyY2gvYXJtL2NvbW1vbi9kbWFib3VuY2UuYwppbmRleCA1MmZjNmE4Li4yNzQ0NjczIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb21tb24vZG1hYm91bmNlLmMKKysrIGIvYXJjaC9hcm0vY29tbW9uL2RtYWJvdW5jZS5jCkBAIC02NTAsNyArNjUwLDggQEAKIEVYUE9SVF9TWU1CT0woZG1hX3VubWFwX3NnKTsKIEVYUE9SVF9TWU1CT0woZG1hX3N5bmNfc2luZ2xlX2Zvcl9jcHUpOwogRVhQT1JUX1NZTUJPTChkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZSk7Ci1FWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NnKTsKK0VYUE9SVF9TWU1CT0woZG1hX3N5bmNfc2dfZm9yX2NwdSk7CitFWFBPUlRfU1lNQk9MKGRtYV9zeW5jX3NnX2Zvcl9kZXZpY2UpOwogRVhQT1JUX1NZTUJPTChkbWFib3VuY2VfcmVnaXN0ZXJfZGV2KTsKIEVYUE9SVF9TWU1CT0woZG1hYm91bmNlX3VucmVnaXN0ZXJfZGV2KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29tbW9uL3J0Y3RpbWUuYyBiL2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOGY3NzMuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vY29tbW9uL3J0Y3RpbWUuYworKysgL2Rldi9udWxsCkBAIC0xLDQzNCArMCwwIEBACi0vKgotICogIGxpbnV4L2FyY2gvYXJtL2NvbW1vbi9ydGN0aW1lLmMKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkLgotICogIEJhc2VkIG9uIHNhMTEwMC1ydGMuYywgTmlscyBGYWVyYmVyLCBDSUgsIE5pY29sYXMgUGl0cmUuCi0gKiAgQmFzZWQgb24gcnRjLmMgYnkgUGF1bCBHb3J0bWFrZXIKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgotI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KLSNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0KLSNpbmNsdWRlIDxhc20vcnRjLmg+Ci0KLXN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChydGNfd2FpdCk7Ci1zdGF0aWMgc3RydWN0IGZhc3luY19zdHJ1Y3QgKnJ0Y19hc3luY19xdWV1ZTsKLQotLyoKLSAqIHJ0Y19sb2NrIHByb3RlY3RzIHJ0Y19pcnFfZGF0YQotICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHJ0Y19sb2NrKTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJ0Y19pcnFfZGF0YTsKLQotLyoKLSAqIHJ0Y19zZW0gcHJvdGVjdHMgcnRjX2ludXNlIGFuZCBydGNfb3BzCi0gKi8KLXN0YXRpYyBERUZJTkVfTVVURVgocnRjX211dGV4KTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIHJ0Y19pbnVzZTsKLXN0YXRpYyBzdHJ1Y3QgcnRjX29wcyAqcnRjX29wczsKLQotI2RlZmluZSBydGNfZXBvY2ggMTkwMFVMCi0KLS8qCi0gKiBDYWxjdWxhdGUgdGhlIG5leHQgYWxhcm0gdGltZSBnaXZlbiB0aGUgcmVxdWVzdGVkIGFsYXJtIHRpbWUgbWFzawotICogYW5kIHRoZSBjdXJyZW50IHRpbWUuCi0gKi8KLXZvaWQgcnRjX25leHRfYWxhcm1fdGltZShzdHJ1Y3QgcnRjX3RpbWUgKm5leHQsIHN0cnVjdCBydGNfdGltZSAqbm93LCBzdHJ1Y3QgcnRjX3RpbWUgKmFscm0pCi17Ci0JdW5zaWduZWQgbG9uZyBuZXh0X3RpbWU7Ci0JdW5zaWduZWQgbG9uZyBub3dfdGltZTsKLQotCW5leHQtPnRtX3llYXIgPSBub3ctPnRtX3llYXI7Ci0JbmV4dC0+dG1fbW9uID0gbm93LT50bV9tb247Ci0JbmV4dC0+dG1fbWRheSA9IG5vdy0+dG1fbWRheTsKLQluZXh0LT50bV9ob3VyID0gYWxybS0+dG1faG91cjsKLQluZXh0LT50bV9taW4gPSBhbHJtLT50bV9taW47Ci0JbmV4dC0+dG1fc2VjID0gYWxybS0+dG1fc2VjOwotCi0JcnRjX3RtX3RvX3RpbWUobm93LCAmbm93X3RpbWUpOwotCXJ0Y190bV90b190aW1lKG5leHQsICZuZXh0X3RpbWUpOwotCi0JaWYgKG5leHRfdGltZSA8IG5vd190aW1lKSB7Ci0JCS8qIEFkdmFuY2Ugb25lIGRheSAqLwotCQluZXh0X3RpbWUgKz0gNjAgKiA2MCAqIDI0OwotCQlydGNfdGltZV90b190bShuZXh0X3RpbWUsIG5leHQpOwotCX0KLX0KLUVYUE9SVF9TWU1CT0wocnRjX25leHRfYWxhcm1fdGltZSk7Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHJ0Y19hcm1fcmVhZF90aW1lKHN0cnVjdCBydGNfb3BzICpvcHMsIHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JbWVtc2V0KHRtLCAwLCBzaXplb2Yoc3RydWN0IHJ0Y190aW1lKSk7Ci0JcmV0dXJuIG9wcy0+cmVhZF90aW1lKHRtKTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcnRjX2FybV9zZXRfdGltZShzdHJ1Y3QgcnRjX29wcyAqb3BzLCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQotewotCWludCByZXQ7Ci0KLQlyZXQgPSBydGNfdmFsaWRfdG0odG0pOwotCWlmIChyZXQgPT0gMCkKLQkJcmV0ID0gb3BzLT5zZXRfdGltZSh0bSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW5saW5lIGludCBydGNfYXJtX3JlYWRfYWxhcm0oc3RydWN0IHJ0Y19vcHMgKm9wcywgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCi17Ci0JaW50IHJldCA9IC1FSU5WQUw7Ci0JaWYgKG9wcy0+cmVhZF9hbGFybSkgewotCQltZW1zZXQoYWxybSwgMCwgc2l6ZW9mKHN0cnVjdCBydGNfd2thbHJtKSk7Ci0JCXJldCA9IG9wcy0+cmVhZF9hbGFybShhbHJtKTsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcnRjX2FybV9zZXRfYWxhcm0oc3RydWN0IHJ0Y19vcHMgKm9wcywgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCi17Ci0JaW50IHJldCA9IC1FSU5WQUw7Ci0JaWYgKG9wcy0+c2V0X2FsYXJtKQotCQlyZXQgPSBvcHMtPnNldF9hbGFybShhbHJtKTsKLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIHJ0Y191cGRhdGUodW5zaWduZWQgbG9uZyBudW0sIHVuc2lnbmVkIGxvbmcgZXZlbnRzKQotewotCXNwaW5fbG9jaygmcnRjX2xvY2spOwotCXJ0Y19pcnFfZGF0YSA9IChydGNfaXJxX2RhdGEgKyAobnVtIDw8IDgpKSB8IGV2ZW50czsKLQlzcGluX3VubG9jaygmcnRjX2xvY2spOwotCi0Jd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZydGNfd2FpdCk7Ci0Ja2lsbF9mYXN5bmMoJnJ0Y19hc3luY19xdWV1ZSwgU0lHSU8sIFBPTExfSU4pOwotfQotRVhQT1JUX1NZTUJPTChydGNfdXBkYXRlKTsKLQotCi1zdGF0aWMgc3NpemVfdAotcnRjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQotewotCURFQ0xBUkVfV0FJVFFVRVVFKHdhaXQsIGN1cnJlbnQpOwotCXVuc2lnbmVkIGxvbmcgZGF0YTsKLQlzc2l6ZV90IHJldDsKLQotCWlmIChjb3VudCA8IHNpemVvZih1bnNpZ25lZCBsb25nKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlhZGRfd2FpdF9xdWV1ZSgmcnRjX3dhaXQsICZ3YWl0KTsKLQlkbyB7Ci0JCV9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKLQotCQlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7Ci0JCWRhdGEgPSBydGNfaXJxX2RhdGE7Ci0JCXJ0Y19pcnFfZGF0YSA9IDA7Ci0JCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOwotCi0JCWlmIChkYXRhICE9IDApIHsKLQkJCXJldCA9IDA7Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoZmlsZS0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spIHsKLQkJCXJldCA9IC1FQUdBSU47Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKLQkJCXJldCA9IC1FUkVTVEFSVFNZUzsKLQkJCWJyZWFrOwotCQl9Ci0JCXNjaGVkdWxlKCk7Ci0JfSB3aGlsZSAoMSk7Ci0Jc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKLQlyZW1vdmVfd2FpdF9xdWV1ZSgmcnRjX3dhaXQsICZ3YWl0KTsKLQotCWlmIChyZXQgPT0gMCkgewotCQlyZXQgPSBwdXRfdXNlcihkYXRhLCAodW5zaWduZWQgbG9uZyBfX3VzZXIgKilidWYpOwotCQlpZiAocmV0ID09IDApCi0JCQlyZXQgPSBzaXplb2YodW5zaWduZWQgbG9uZyk7Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgcnRjX3BvbGwoc3RydWN0IGZpbGUgKmZpbGUsIHBvbGxfdGFibGUgKndhaXQpCi17Ci0JdW5zaWduZWQgbG9uZyBkYXRhOwotCi0JcG9sbF93YWl0KGZpbGUsICZydGNfd2FpdCwgd2FpdCk7Ci0KLQlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7Ci0JZGF0YSA9IHJ0Y19pcnFfZGF0YTsKLQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKLQotCXJldHVybiBkYXRhICE9IDAgPyBQT0xMSU4gfCBQT0xMUkROT1JNIDogMDsKLX0KLQotc3RhdGljIGludCBydGNfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCi0JCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0Jc3RydWN0IHJ0Y19vcHMgKm9wcyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgcnRjX3RpbWUgdG07Ci0Jc3RydWN0IHJ0Y193a2Fscm0gYWxybTsKLQl2b2lkIF9fdXNlciAqdWFyZyA9ICh2b2lkIF9fdXNlciAqKWFyZzsKLQlpbnQgcmV0ID0gLUVJTlZBTDsKLQotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBSVENfQUxNX1JFQUQ6Ci0JCXJldCA9IHJ0Y19hcm1fcmVhZF9hbGFybShvcHMsICZhbHJtKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCQlyZXQgPSBjb3B5X3RvX3VzZXIodWFyZywgJmFscm0udGltZSwgc2l6ZW9mKHRtKSk7Ci0JCWlmIChyZXQpCi0JCQlyZXQgPSAtRUZBVUxUOwotCQlicmVhazsKLQotCWNhc2UgUlRDX0FMTV9TRVQ6Ci0JCXJldCA9IGNvcHlfZnJvbV91c2VyKCZhbHJtLnRpbWUsIHVhcmcsIHNpemVvZih0bSkpOwotCQlpZiAocmV0KSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJYnJlYWs7Ci0JCX0KLQkJYWxybS5lbmFibGVkID0gMDsKLQkJYWxybS5wZW5kaW5nID0gMDsKLQkJYWxybS50aW1lLnRtX21kYXkgPSAtMTsKLQkJYWxybS50aW1lLnRtX21vbiA9IC0xOwotCQlhbHJtLnRpbWUudG1feWVhciA9IC0xOwotCQlhbHJtLnRpbWUudG1fd2RheSA9IC0xOwotCQlhbHJtLnRpbWUudG1feWRheSA9IC0xOwotCQlhbHJtLnRpbWUudG1faXNkc3QgPSAtMTsKLQkJcmV0ID0gcnRjX2FybV9zZXRfYWxhcm0ob3BzLCAmYWxybSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfUkRfVElNRToKLQkJcmV0ID0gcnRjX2FybV9yZWFkX3RpbWUob3BzLCAmdG0pOwotCQlpZiAocmV0KQotCQkJYnJlYWs7Ci0JCXJldCA9IGNvcHlfdG9fdXNlcih1YXJnLCAmdG0sIHNpemVvZih0bSkpOwotCQlpZiAocmV0KQotCQkJcmV0ID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0KLQljYXNlIFJUQ19TRVRfVElNRToKLQkJaWYgKCFjYXBhYmxlKENBUF9TWVNfVElNRSkpIHsKLQkJCXJldCA9IC1FQUNDRVM7Ci0JCQlicmVhazsKLQkJfQotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmdG0sIHVhcmcsIHNpemVvZih0bSkpOwotCQlpZiAocmV0KSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJYnJlYWs7Ci0JCX0KLQkJcmV0ID0gcnRjX2FybV9zZXRfdGltZShvcHMsICZ0bSk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfRVBPQ0hfU0VUOgotI2lmbmRlZiBydGNfZXBvY2gKLQkJLyoKLQkJICogVGhlcmUgd2VyZSBubyBSVEMgY2xvY2tzIGJlZm9yZSAxOTAwLgotCQkgKi8KLQkJaWYgKGFyZyA8IDE5MDApIHsKLQkJCXJldCA9IC1FSU5WQUw7Ci0JCQlicmVhazsKLQkJfQotCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19USU1FKSkgewotCQkJcmV0ID0gLUVBQ0NFUzsKLQkJCWJyZWFrOwotCQl9Ci0JCXJ0Y19lcG9jaCA9IGFyZzsKLQkJcmV0ID0gMDsKLSNlbmRpZgotCQlicmVhazsKLQotCWNhc2UgUlRDX0VQT0NIX1JFQUQ6Ci0JCXJldCA9IHB1dF91c2VyKHJ0Y19lcG9jaCwgKHVuc2lnbmVkIGxvbmcgX191c2VyICopdWFyZyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBSVENfV0tBTE1fU0VUOgotCQlyZXQgPSBjb3B5X2Zyb21fdXNlcigmYWxybSwgdWFyZywgc2l6ZW9mKGFscm0pKTsKLQkJaWYgKHJldCkgewotCQkJcmV0ID0gLUVGQVVMVDsKLQkJCWJyZWFrOwotCQl9Ci0JCXJldCA9IHJ0Y19hcm1fc2V0X2FsYXJtKG9wcywgJmFscm0pOwotCQlicmVhazsKLQotCWNhc2UgUlRDX1dLQUxNX1JEOgotCQlyZXQgPSBydGNfYXJtX3JlYWRfYWxhcm0ob3BzLCAmYWxybSk7Ci0JCWlmIChyZXQpCi0JCQlicmVhazsKLQkJcmV0ID0gY29weV90b191c2VyKHVhcmcsICZhbHJtLCBzaXplb2YoYWxybSkpOwotCQlpZiAocmV0KQotCQkJcmV0ID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlpZiAob3BzLT5pb2N0bCkKLQkJCXJldCA9IG9wcy0+aW9jdGwoY21kLCBhcmcpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCBydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfbG9jaygmcnRjX211dGV4KTsKLQotCWlmIChydGNfaW51c2UpIHsKLQkJcmV0ID0gLUVCVVNZOwotCX0gZWxzZSBpZiAoIXJ0Y19vcHMgfHwgIXRyeV9tb2R1bGVfZ2V0KHJ0Y19vcHMtPm93bmVyKSkgewotCQlyZXQgPSAtRU5PREVWOwotCX0gZWxzZSB7Ci0JCWZpbGUtPnByaXZhdGVfZGF0YSA9IHJ0Y19vcHM7Ci0KLQkJcmV0ID0gcnRjX29wcy0+b3BlbiA/IHJ0Y19vcHMtPm9wZW4oKSA6IDA7Ci0JCWlmIChyZXQgPT0gMCkgewotCQkJc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCQkJcnRjX2lycV9kYXRhID0gMDsKLQkJCXNwaW5fdW5sb2NrX2lycSgmcnRjX2xvY2spOwotCi0JCQlydGNfaW51c2UgPSAxOwotCQl9Ci0JfQotCW11dGV4X3VubG9jaygmcnRjX211dGV4KTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0Jc3RydWN0IHJ0Y19vcHMgKm9wcyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQotCWlmIChvcHMtPnJlbGVhc2UpCi0JCW9wcy0+cmVsZWFzZSgpOwotCi0Jc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwotCXJ0Y19pcnFfZGF0YSA9IDA7Ci0Jc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7Ci0KLQltb2R1bGVfcHV0KHJ0Y19vcHMtPm93bmVyKTsKLQlydGNfaW51c2UgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgb24pCi17Ci0JcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcnRjX2FzeW5jX3F1ZXVlKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnRjX2ZvcHMgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5sbHNlZWsJCT0gbm9fbGxzZWVrLAotCS5yZWFkCQk9IHJ0Y19yZWFkLAotCS5wb2xsCQk9IHJ0Y19wb2xsLAotCS5pb2N0bAkJPSBydGNfaW9jdGwsCi0JLm9wZW4JCT0gcnRjX29wZW4sCi0JLnJlbGVhc2UJPSBydGNfcmVsZWFzZSwKLQkuZmFzeW5jCQk9IHJ0Y19mYXN5bmMsCi19OwotCi1zdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgcnRjX21pc2NkZXYgPSB7Ci0JLm1pbm9yCQk9IFJUQ19NSU5PUiwKLQkubmFtZQkJPSAicnRjIiwKLQkuZm9wcwkJPSAmcnRjX2ZvcHMsCi19OwotCi0KLXN0YXRpYyBpbnQgcnRjX3JlYWRfcHJvYyhjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgcnRjX29wcyAqb3BzID0gZGF0YTsKLQlzdHJ1Y3QgcnRjX3drYWxybSBhbHJtOwotCXN0cnVjdCBydGNfdGltZSB0bTsKLQljaGFyICpwID0gcGFnZTsKLQotCWlmIChydGNfYXJtX3JlYWRfdGltZShvcHMsICZ0bSkgPT0gMCkgewotCQlwICs9IHNwcmludGYocCwKLQkJCSJydGNfdGltZVx0OiAlMDJkOiUwMmQ6JTAyZFxuIgotCQkJInJ0Y19kYXRlXHQ6ICUwNGQtJTAyZC0lMDJkXG4iCi0JCQkicnRjX2Vwb2NoXHQ6ICUwNGx1XG4iLAotCQkJdG0udG1faG91ciwgdG0udG1fbWluLCB0bS50bV9zZWMsCi0JCQl0bS50bV95ZWFyICsgMTkwMCwgdG0udG1fbW9uICsgMSwgdG0udG1fbWRheSwKLQkJCXJ0Y19lcG9jaCk7Ci0JfQotCi0JaWYgKHJ0Y19hcm1fcmVhZF9hbGFybShvcHMsICZhbHJtKSA9PSAwKSB7Ci0JCXAgKz0gc3ByaW50ZihwLCAiYWxybV90aW1lXHQ6ICIpOwotCQlpZiAoKHVuc2lnbmVkIGludClhbHJtLnRpbWUudG1faG91ciA8PSAyNCkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTAyZDoiLCBhbHJtLnRpbWUudG1faG91cik7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKio6Iik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9taW4gPD0gNTkpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmQ6IiwgYWxybS50aW1lLnRtX21pbik7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKio6Iik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9zZWMgPD0gNTkpCi0JCQlwICs9IHNwcmludGYocCwgIiUwMmRcbiIsIGFscm0udGltZS50bV9zZWMpOwotCQllbHNlCi0JCQlwICs9IHNwcmludGYocCwgIioqXG4iKTsKLQotCQlwICs9IHNwcmludGYocCwgImFscm1fZGF0ZVx0OiAiKTsKLQkJaWYgKCh1bnNpZ25lZCBpbnQpYWxybS50aW1lLnRtX3llYXIgPD0gMjAwKQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDRkLSIsIGFscm0udGltZS50bV95ZWFyICsgMTkwMCk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKioqKi0iKTsKLQkJaWYgKCh1bnNpZ25lZCBpbnQpYWxybS50aW1lLnRtX21vbiA8PSAxMSkKLQkJCXAgKz0gc3ByaW50ZihwLCAiJTAyZC0iLCBhbHJtLnRpbWUudG1fbW9uICsgMSk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKiotIik7Ci0JCWlmICgodW5zaWduZWQgaW50KWFscm0udGltZS50bV9tZGF5IDw9IDMxKQotCQkJcCArPSBzcHJpbnRmKHAsICIlMDJkXG4iLCBhbHJtLnRpbWUudG1fbWRheSk7Ci0JCWVsc2UKLQkJCXAgKz0gc3ByaW50ZihwLCAiKipcbiIpOwotCQlwICs9IHNwcmludGYocCwgImFscm1fd2FrZXVwXHQ6ICVzXG4iLAotCQkJICAgICBhbHJtLmVuYWJsZWQgPyAieWVzIiA6ICJubyIpOwotCQlwICs9IHNwcmludGYocCwgImFscm1fcGVuZGluZ1x0OiAlc1xuIiwKLQkJCSAgICAgYWxybS5wZW5kaW5nID8gInllcyIgOiAibm8iKTsKLQl9Ci0KLQlpZiAob3BzLT5wcm9jKQotCQlwICs9IG9wcy0+cHJvYyhwKTsKLQotCXJldHVybiBwIC0gcGFnZTsKLX0KLQotaW50IHJlZ2lzdGVyX3J0YyhzdHJ1Y3QgcnRjX29wcyAqb3BzKQotewotCWludCByZXQgPSAtRUJVU1k7Ci0KLQltdXRleF9sb2NrKCZydGNfbXV0ZXgpOwotCWlmIChydGNfb3BzID09IE5VTEwpIHsKLQkJcnRjX29wcyA9IG9wczsKLQotCQlyZXQgPSBtaXNjX3JlZ2lzdGVyKCZydGNfbWlzY2Rldik7Ci0JCWlmIChyZXQgPT0gMCkKLQkJCWNyZWF0ZV9wcm9jX3JlYWRfZW50cnkoImRyaXZlci9ydGMiLCAwLCBOVUxMLAotCQkJCQkgICAgICAgcnRjX3JlYWRfcHJvYywgb3BzKTsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZydGNfbXV0ZXgpOwotCi0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0wocmVnaXN0ZXJfcnRjKTsKLQotdm9pZCB1bnJlZ2lzdGVyX3J0YyhzdHJ1Y3QgcnRjX29wcyAqcnRjKQotewotCW11dGV4X2xvY2soJnJ0Y19tdXRleCk7Ci0JaWYgKHJ0YyA9PSBydGNfb3BzKSB7Ci0JCXJlbW92ZV9wcm9jX2VudHJ5KCJkcml2ZXIvcnRjIiwgTlVMTCk7Ci0JCW1pc2NfZGVyZWdpc3RlcigmcnRjX21pc2NkZXYpOwotCQlydGNfb3BzID0gTlVMTDsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZydGNfbXV0ZXgpOwotfQotRVhQT1JUX1NZTUJPTCh1bnJlZ2lzdGVyX3J0Yyk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb21tb24vc2hhcnBzbF9wbS5jIGIvYXJjaC9hcm0vY29tbW9uL3NoYXJwc2xfcG0uYwppbmRleCA1YmJhNTI1Li44ODIyYjY4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb21tb24vc2hhcnBzbF9wbS5jCisrKyBiL2FyY2gvYXJtL2NvbW1vbi9zaGFycHNsX3BtLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc2hhcnBzbC5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9zaGFycHNsX3BtLmg+CiAKQEAgLTE1Nyw2ICsxNTgsNyBAQAogCWRldl9kYmcoc2hhcnBzbF9wbS5kZXYsICJCYXR0ZXJ5OiB2b2x0YWdlOiAlZCwgc3RhdHVzOiAlZCwgcGVyY2VudGFnZTogJWQsIHRpbWU6ICVsZFxuIiwgdm9sdGFnZSwKIAkJCXNoYXJwc2xfcG0uYmF0dHN0YXQubWFpbmJhdF9zdGF0dXMsIHNoYXJwc2xfcG0uYmF0dHN0YXQubWFpbmJhdF9wZXJjZW50LCBqaWZmaWVzKTsKIAorI2lmZGVmIENPTkZJR19CQUNLTElHSFRfQ09SR0kKIAkvKiBJZiBiYXR0ZXJ5IGlzIGxvdy4gbGltaXQgYmFja2xpZ2h0IGludGVuc2l0eSB0byBzYXZlIHBvd2VyLiAqLwogCWlmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5hY19zdGF0dXMgIT0gQVBNX0FDX09OTElORSkKIAkJCSYmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5tYWluYmF0X3N0YXR1cyA9PSBBUE1fQkFUVEVSWV9TVEFUVVNfTE9XKSB8fApAQCAtMTY5LDYgKzE3MSw3IEBACiAJCXNoYXJwc2xfcG0ubWFjaGluZm8tPmJhY2tsaWdodF9saW1pdCgwKTsKIAkJc2hhcnBzbF9wbS5mbGFncyAmPSB+U0hBUlBTTF9CTF9MSU1JVDsKIAl9CisjZW5kaWYKIAogCS8qIFN1c3BlbmQgaWYgY3JpdGljYWwgYmF0dGVyeSBsZXZlbCAqLwogCWlmICgoc2hhcnBzbF9wbS5iYXR0c3RhdC5hY19zdGF0dXMgIT0gQVBNX0FDX09OTElORSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MWNhcDlhZGtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKaW5kZXggZTMyZTczNi4uYmUyYjJmMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxY2FwOWFka19kZWZjb25maWcKQEAgLTIxMyw3ICsyMTMsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiBDT05GSUdfQUVBQkk9eQogQ09ORklHX09BQklfQ09NUEFUPXkKQEAgLTkwNyw3ICs5MDYsMzIgQEAKICMKICMgVVNCIEdhZGdldCBTdXBwb3J0CiAjCi0jIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CisjIENPTkZJR19VU0JfR0FER0VUX0FNRDU1MzZVREMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQT15CitDT05GSUdfVVNCX0FUTUVMX1VTQkE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9GU0xfVVNCMiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQ9eQorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9bQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRklMRV9TVE9SQUdFPW0KKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0VfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19TRVJJQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKIENPTkZJR19NTUM9eQogIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKQEAgLTkyNiw3ICs5NTAsNTkgQEAKICMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQotIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05PXkKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05X1JUVD0wCitDT05GSUdfUlRDX0RSVl9BVDkxU0FNOV9HUEJSPTAKIAogIwogIyBGaWxlIHN5c3RlbXMKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGRrX2RlZmNvbmZpZwppbmRleCAyZGJiYmMzLi44NjhmYjdiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBka19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZGtfZGVmY29uZmlnCkBAIC0xNjksNyArMTY5LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKIENPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKIENPTkZJR19GTEFUTUVNX01BTlVBTD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFybTkyMDBla19kZWZjb25maWcKaW5kZXggNmU5OTRmNy4uZGU0M2ZjNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxcm05MjAwZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXJtOTIwMGVrX2RlZmNvbmZpZwpAQCAtMTYwLDcgKzE2MCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjBla19kZWZjb25maWcKaW5kZXggZjY1OWM5My4uMjAxMWFkZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MGVrX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYwZWtfZGVmY29uZmlnCkBAIC0yMjAsNyArMjIwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjFla19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYxZWtfZGVmY29uZmlnCmluZGV4IDM4MDJlODUuLjQwNDk3NjggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjFla19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2MWVrX2RlZmNvbmZpZwpAQCAtMjEzLDcgKzIxMyw2IEBACiAjCiAjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYzZWtfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOTI2M2VrX2RlZmNvbmZpZwppbmRleCAzMmEwZDc0Li5mYTFjNWFlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05MjYzZWtfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTkyNjNla19kZWZjb25maWcKQEAgLTIxMyw3ICsyMTMsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOWcyMGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnMjBla19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA2ODYzOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlnMjBla19kZWZjb25maWcKQEAgLTAsMCArMSwxMTY4IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEp1biAxMCAxNTo1MTo1MiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQUlSX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxU0FNOUcyMD15CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTlHMjAgQm9hcmQgVHlwZQorIworQ09ORklHX01BQ0hfQVQ5MVNBTTlHMjBFSz15CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisjIENPTkZJR19NVERfQVQ5MV9EQVRBRkxBU0hfQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2IGlzIG5vdCBzZXQKKworIworIyBBVDkxIEZlYXR1cmUgU2VsZWN0aW9ucworIworQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUz15CisjIENPTkZJR19BVDkxX1NMT1dfQ0xPQ0sgaXMgbm90IHNldAorQ09ORklHX0FUOTFfVElNRVJfSFo9MTAwCitDT05GSUdfQVQ5MV9FQVJMWV9EQkdVPXkKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUOTFfRUFSTFlfVVNBUlQ1IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworIyBDT05GSUdfQVJNX1RIVU1CIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0NBQ0hFX1JPVU5EX1JPQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQorIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19MRURTPXkKK0NPTkZJR19MRURTX0NQVT15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMwLDExNTIwMCBpbml0cmQ9MHgyMTEwMDAwMCwzMTQ1NzI4IHJvb3Q9L2Rldi9yYW0wIHJ3IgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKKyMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NPTkNBVD15CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfUkFNPXkKK0NPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9ODE5MgorQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKK0NPTkZJR19BVE1FTF9QV009eQorIyBDT05GSUdfRUVQUk9NXzkzQ1g2IGlzIG5vdCBzZXQKK0NPTkZJR19BVE1FTF9TU0M9eQorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUwgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19QSFlMSUI9eQorCisjCisjIE1JSSBQSFkgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01BUlZFTExfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBVklDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FTRU1JX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19MWFRfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJQ0FEQV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfVklURVNTRV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfU01TQ19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQlJPQURDT01fUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lDUExVU19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfRklYRURfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorQ09ORklHX01BQ0I9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTMyMAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTI0MAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKK0NPTkZJR19TRVJJTz15CitDT05GSUdfU0VSSU9fU0VSUE9SVD15CisjIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPXkKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorCisjCisjIFNQSSBzdXBwb3J0CisjCitDT05GSUdfU1BJPXkKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9BVE1FTD15CisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKK0NPTkZJR19TUElfU1BJREVWPXkKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKKworIworIyBTb3VuZAorIworQ09ORklHX1NPVU5EPXkKKworIworIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKKyMKK0NPTkZJR19TTkQ9eQorQ09ORklHX1NORF9USU1FUj15CitDT05GSUdfU05EX1BDTT15CitDT05GSUdfU05EX1NFUVVFTkNFUj15CisjIENPTkZJR19TTkRfU0VRX0RVTU1ZIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz15CitDT05GSUdfU05EX1BDTV9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPXkKKyMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CitDT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgR2VuZXJpYyBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUk1JREkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIEFMU0EgQVJNIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9BVDkxX0FDOTcgaXMgbm90IHNldAorCisjCisjIFNQSSBkZXZpY2VzCisjCitDT05GSUdfU05EX0FUNzNDMjEzPXkKK0NPTkZJR19TTkRfQVQ3M0MyMTNfVEFSR0VUX0JJVFJBVEU9NDgwMDAKKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0CisjCisjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKKworIworIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICisjCisKKyMKKyMgT3BlbiBTb3VuZCBTeXN0ZW0KKyMKKyMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisKKyMKKyMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKworIworIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKKyMKKworIworIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorQ09ORklHX1VTQl9aRVJPPW0KKyMgQ09ORklHX1VTQl9FVEggaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRGUz1tCitDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRT1tCisjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFX1RFU1QgaXMgbm90IHNldAorQ09ORklHX1VTQl9HX1NFUklBTD1tCisjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorQ09ORklHX01NQz15CisjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBDYXJkIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQkxPQ0s9eQorQ09ORklHX01NQ19CTE9DS19CT1VOQ0U9eQorIyBDT05GSUdfU0RJT19VQVJUIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19NTUNfQVQ5MT15CisjIENPTkZJR19NTUNfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz15CisKKyMKKyMgTEVEIGRyaXZlcnMKKyMKK0NPTkZJR19MRURTX0FUTUVMX1BXTT15CitDT05GSUdfTEVEU19HUElPPXkKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9eQorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfQVQ5MVNBTTk9eQorQ09ORklHX1JUQ19EUlZfQVQ5MVNBTTlfUlRUPTAKK0NPTkZJR19SVENfRFJWX0FUOTFTQU05X0dQQlI9MAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKK0NPTkZJR19NU0RPU19GUz15CitDT05GSUdfVkZBVF9GUz15CitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1NVTU1BUlk9eQorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKK0NPTkZJR19DUkFNRlM9eQorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMTU9eQorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfVVRGOD15CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19VU0VSIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlybGVrX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXQ5MXNhbTlybGVrX2RlZmNvbmZpZwppbmRleCA5OGU2NzQ2Li5kOGVjNWY5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2F0OTFzYW05cmxla19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdDkxc2FtOXJsZWtfZGVmY29uZmlnCkBAIC0yMTEsNyArMjExLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXRlYjkyMDBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKaW5kZXggZDg0NmE0OS4uODVjODBmNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9hdGViOTIwMF9kZWZjb25maWcKQEAgLTE3MSw3ICsxNzEsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLUNPTkZJR19OT19JRExFX0haPXkKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2NtX3gyNzBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9jbV94MjcwX2RlZmNvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWNhYjA4My4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9jb25maWdzL2NtX3gyNzBfZGVmY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTQxMCArMCwwIEBACi0jCi0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjIKLSMgV2VkIEp1bCAxOCAxNDoxMTo0OCAyMDA3Ci0jCi1DT05GSUdfQVJNPXkKLUNPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15Ci1DT05GSUdfR0VORVJJQ19HUElPPXkKLUNPTkZJR19HRU5FUklDX1RJTUU9eQotIyBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUyBpcyBub3Qgc2V0Ci1DT05GSUdfTU1VPXkKLSMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQotQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQotQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15Ci1DT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX0FSQ0hfTVREX1hJUD15Ci1DT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19CUk9LRU5fT05fU01QPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCi1DT05GSUdfTE9DQUxWRVJTSU9OPSIiCi0jIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0Ci1DT05GSUdfU1dBUD15Ci1DT05GSUdfU1lTVklQQz15Ci1DT05GSUdfU1lTVklQQ19TWVNDVEw9eQotIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAotQ09ORklHX0lLQ09ORklHPXkKLUNPTkZJR19JS0NPTkZJR19QUk9DPXkKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE3Ci1DT05GSUdfU1lTRlNfREVQUkVDQVRFRD15Ci0jIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JTklUUkQ9eQotQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKLUNPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15Ci1DT05GSUdfU1lTQ1RMPXkKLUNPTkZJR19FTUJFRERFRD15Ci1DT05GSUdfVUlEMTY9eQotQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKLUNPTkZJR19LQUxMU1lNUz15Ci0jIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAotIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0Ci1DT05GSUdfSE9UUExVRz15Ci1DT05GSUdfUFJJTlRLPXkKLUNPTkZJR19CVUc9eQotQ09ORklHX0VMRl9DT1JFPXkKLUNPTkZJR19CQVNFX0ZVTEw9eQotQ09ORklHX0ZVVEVYPXkKLUNPTkZJR19BTk9OX0lOT0RFUz15Ci0jIENPTkZJR19FUE9MTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSUdOQUxGRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUkZEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VWRU5URkQgaXMgbm90IHNldAotQ09ORklHX1NITUVNPXkKLUNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotQ09ORklHX1JUX01VVEVYRVM9eQotIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkFTRV9TTUFMTD0wCi1DT05GSUdfTU9EVUxFUz15Ci1DT05GSUdfTU9EVUxFX1VOTE9BRD15Ci1DT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15Ci0jIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAotQ09ORklHX0tNT0Q9eQotQ09ORklHX0JMT0NLPXkKLSMgQ09ORklHX0xCRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0xTRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0Ci0KLSMKLSMgSU8gU2NoZWR1bGVycwotIwotQ09ORklHX0lPU0NIRURfTk9PUD15Ci1DT05GSUdfSU9TQ0hFRF9BUz15Ci1DT05GSUdfSU9TQ0hFRF9ERUFETElORT15Ci1DT05GSUdfSU9TQ0hFRF9DRlE9eQotQ09ORklHX0RFRkFVTFRfQVM9eQotIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAotQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgotCi0jCi0jIFN5c3RlbSBUeXBlCi0jCi0jIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKLUNPTkZJR19BUkNIX1BYQT15Ci0jIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0Ci1DT05GSUdfRE1BQk9VTkNFPXkKLQotIwotIyBJbnRlbCBQWEEyeHggSW1wbGVtZW50YXRpb25zCi0jCi0jIENPTkZJR19BUkNIX0xVQkJPQ0sgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9MT0dJQ1BEX1BYQTI3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX01BSU5TVE9ORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1BYQV9JRFAgaXMgbm90IHNldAotIyBDT05GSUdfUFhBX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTUFDSF9UUklaRVBTNCBpcyBub3Qgc2V0Ci1DT05GSUdfTUFDSF9BUk1DT1JFPXkKLUNPTkZJR19QWEEyN3g9eQotCi0jCi0jIFByb2Nlc3NvciBUeXBlCi0jCi1DT05GSUdfQ1BVXzMyPXkKLUNPTkZJR19DUFVfWFNDQUxFPXkKLUNPTkZJR19DUFVfMzJ2NT15Ci1DT05GSUdfQ1BVX0FCUlRfRVY1VD15Ci1DT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQotQ09ORklHX0NQVV9UTEJfVjRXQkk9eQotQ09ORklHX0NQVV9DUDE1PXkKLUNPTkZJR19DUFVfQ1AxNV9NTVU9eQotCi0jCi0jIFByb2Nlc3NvciBGZWF0dXJlcwotIwotQ09ORklHX0FSTV9USFVNQj15Ci0jIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAotIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAotQ09ORklHX0lXTU1YVD15Ci1DT05GSUdfWFNDQUxFX1BNVT15Ci0KLSMKLSMgQnVzIHN1cHBvcnQKLSMKLUNPTkZJR19QQ0k9eQotQ09ORklHX1BDSV9TWVNDQUxMPXkKLUNPTkZJR19QQ0lfSE9TVF9JVEU4MTUyPXkKLSMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAotIwotIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLQotIwotIyBLZXJuZWwgRmVhdHVyZXMKLSMKLSMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAotQ09ORklHX0haPTEwMAotIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKLUNPTkZJR19GTEFUTUVNX01BTlVBTD15Ci0jIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAotQ09ORklHX0ZMQVRNRU09eQotQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKLSMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAotQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKLSMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCi1DT05GSUdfQk9VTkNFPXkKLUNPTkZJR19WSVJUX1RPX0JVUz15Ci1DT05GSUdfQUxJR05NRU5UX1RSQVA9eQotCi0jCi0jIEJvb3Qgb3B0aW9ucwotIwotQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAotQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCi1DT05GSUdfQ01ETElORT0iIgotIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0KLSMKLSMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCi0jCi0KLSMKLSMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCi0jCi1DT05GSUdfRlBFX05XRlBFPXkKLSMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCi0jCi1DT05GSUdfQklORk1UX0VMRj15Ci0jIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUlRIVVIgaXMgbm90IHNldAotCi0jCi0jIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwotIwotQ09ORklHX1BNPXkKLSMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmtpbmcKLSMKLUNPTkZJR19ORVQ9eQotCi0jCi0jIE5ldHdvcmtpbmcgb3B0aW9ucwotIwotQ09ORklHX1BBQ0tFVD15Ci0jIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0Ci1DT05GSUdfVU5JWD15Ci1DT05GSUdfWEZSTT15Ci0jIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAotIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUPXkKLSMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAotQ09ORklHX0lQX0ZJQl9IQVNIPXkKLUNPTkZJR19JUF9QTlA9eQotQ09ORklHX0lQX1BOUF9ESENQPXkKLUNPTkZJR19JUF9QTlBfQk9PVFA9eQotIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSUEQgaXMgbm90IHNldAotIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15Ci1DT05GSUdfSU5FVF9ESUFHPXkKLUNPTkZJR19JTkVUX1RDUF9ESUFHPXkKLSMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19UQ1BfQ09OR19DVUJJQz15Ci1DT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCi0jIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RJUEMgaXMgbm90IHNldAotIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19YMjUgaXMgbm90IHNldAotIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCi0jIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgdGVzdGluZwotIwotIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKLQotIwotIyBXaXJlbGVzcwotIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotQ09ORklHX1dJUkVMRVNTX0VYVD15Ci0jIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCi1DT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQotIyBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1RLSVAgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTgwMjExX1NPRlRNQUMgaXMgbm90IHNldAotIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGV2aWNlIERyaXZlcnMKLSMKLQotIwotIyBHZW5lcmljIERyaXZlciBPcHRpb25zCi0jCi1DT05GSUdfU1RBTkRBTE9ORT15Ci1DT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15Ci1DT05GSUdfRldfTE9BREVSPXkKLSMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAotIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKLUNPTkZJR19NVEQ9bQotIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAotQ09ORklHX01URF9QQVJUSVRJT05TPXkKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAotCi0jCi0jIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCi0jCi1DT05GSUdfTVREX0NIQVI9bQotQ09ORklHX01URF9CTEtERVZTPW0KLUNPTkZJR19NVERfQkxPQ0s9bQotIyBDT05GSUdfTVREX0JMT0NLX1JPIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAotIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAotCi0jCi0jIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCi0jCi0jIENPTkZJR19NVERfQ0ZJIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAotQ09ORklHX01URF9DRklfSTE9eQotQ09ORklHX01URF9DRklfSTI9eQotIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKLQotIwotIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCi0jCi0jIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfU0hBUlBfU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAotCi0jCi0jIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EPW0KLSMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX0lEUz1tCi0jIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfQ0FGRSBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX05BTkRfQ01fWDI3MD1tCi0jIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKLQotIwotIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKLSMKLSMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAotIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVj15Ci0jIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1VNRU0gaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0xPT1A9eQotIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU1g4IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfUkFNPXkKLUNPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgotQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MTIwMDAKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAotIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAotQ09ORklHX0lERT1tCi1DT05GSUdfSURFX01BWF9IV0lGUz00Ci1DT05GSUdfQkxLX0RFVl9JREU9bQotCi0jCi0jIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwotIwotIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVESVNLPW0KLSMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVDRD1tCi0jIENPTkZJR19CTEtfREVWX0lERVRBUEUgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVGTE9QUFkgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVTQ1NJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5vdCBzZXQKLUNPTkZJR19JREVfUFJPQ19GUz15Ci0KLSMKLSMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwotIwotIyBDT05GSUdfSURFX0dFTkVSSUMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JREVQQ0kgaXMgbm90IHNldAotIyBDT05GSUdfSURFUENJX1BDSUJVU19PUkRFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFRE1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAotQ09ORklHX1NDU0k9eQotQ09ORklHX1NDU0lfRE1BPXkKLSMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCi0jCi1DT05GSUdfQkxLX0RFVl9TRD15Ci0jIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfU0cgaXMgbm90IHNldAotIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAotCi0jCi0jIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcwotIwotIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9XQUlUX1NDQU49bQotCi0jCi0jIFNDU0kgVHJhbnNwb3J0cwotIwotIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0FTX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBsb3ctbGV2ZWwgZHJpdmVycwotIwotIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FSQ01TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9ORVdHRU4gaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX1NBUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0hQVElPUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RNWDMxOTFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRlVUVVJFX0RPTUFJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSVRJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRCBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TUEkgaXMgbm90IHNldAotIyBDT05GSUdfRlVTSU9OX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9TQVMgaXMgbm90IHNldAotCi0jCi0jIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKLSMKLSMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyTyBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWSUNFUz15Ci0jIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAotIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVU4gaXMgbm90IHNldAotIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUX0VUSEVSTkVUPXkKLUNPTkZJR19NSUk9eQotIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQVBQWU1FQUwgaXMgbm90IHNldAotIyBDT05GSUdfU1VOR0VNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NBU1NJTkkgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0Ci1DT05GSUdfRE05MDAwPXkKLSMgQ09ORklHX1NNQzkxMVggaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRfUENJPXkKLSMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAotIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAotIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CNDQgaXMgbm90IHNldAotIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAotIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAotIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GRUFMTlggaXMgbm90IHNldAotIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAotQ09ORklHXzgxMzlUT089bQotIyBDT05GSUdfODEzOVRPT19QSU8gaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVklBX1JISU5FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDOTIwMzEgaXMgbm90IHNldAotQ09ORklHX05FVERFVl8xMDAwPXkKLSMgQ09ORklHX0FDRU5JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETDJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAotIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAotIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAotIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLR0UgaXMgbm90IHNldAotIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAotIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JOWDIgaXMgbm90IHNldAotIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRERVZfMTAwMDA9eQotIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0IgaXMgbm90IHNldAotIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUiBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MgTEFOCi0jCi0jIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAotCi0jCi0jIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCi0jCi0jIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZEREkgaXMgbm90IHNldAotIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAotIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMSVAgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKLQotIwotIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAotIwotQ09ORklHX0lOUFVUPXkKLSMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcmxhbmQgaW50ZXJmYWNlcwotIwotIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKLUNPTkZJR19JTlBVVF9FVkRFVj15Ci0jIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgSW5wdXQgRGV2aWNlIERyaXZlcnMKLSMKLSMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKLUNPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwPW0KLSMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0Ci0KLSMKLSMgSGFyZHdhcmUgSS9PIHBvcnRzCi0jCi0jIENPTkZJR19TRVJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0Ci0KLSMKLSMgQ2hhcmFjdGVyIGRldmljZXMKLSMKLUNPTkZJR19WVD15Ci1DT05GSUdfVlRfQ09OU09MRT15Ci1DT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAotIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKLQotIwotIyBTZXJpYWwgZHJpdmVycwotIwotIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAotCi0jCi0jIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKLSMKLUNPTkZJR19TRVJJQUxfUFhBPXkKLUNPTkZJR19TRVJJQUxfUFhBX0NPTlNPTEU9eQotQ09ORklHX1NFUklBTF9DT1JFPXkKLUNPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKLSMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAotQ09ORklHX1VOSVg5OF9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKLSMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPW0KLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAotQ09ORklHX0RFVlBPUlQ9eQotIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwotIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfVzEgaXMgbm90IHNldAotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotQ09ORklHX01JU0NfREVWSUNFUz15Ci0jIENPTkZJR19QSEFOVE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAotCi0jCi0jIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKLSMKLSMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgTEVEIGRldmljZXMKLSMKLUNPTkZJR19ORVdfTEVEUz15Ci1DT05GSUdfTEVEU19DTEFTUz15Ci0KLSMKLSMgTEVEIGRyaXZlcnMKLSMKLUNPTkZJR19MRURTX0NNX1gyNzA9eQotCi0jCi0jIExFRCBUcmlnZ2VycwotIwotQ09ORklHX0xFRFNfVFJJR0dFUlM9eQotIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0xFRFNfVFJJR0dFUl9JREVfRElTSyBpcyBub3Qgc2V0Ci1DT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15Ci0KLSMKLSMgTXVsdGltZWRpYSBkZXZpY2VzCi0jCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotQ09ORklHX0RBQj15Ci0jIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKLQotIwotIyBHcmFwaGljcyBzdXBwb3J0Ci0jCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAotCi0jCi0jIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci1DT05GSUdfRkI9eQotIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9EREMgaXMgbm90IHNldAotQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15Ci1DT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKLUNPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKLSMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfREVGRVJSRURfSU89eQotIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0Ci0KLSMKLSMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKLSMKLSMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAotIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAotIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAotIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAotQ09ORklHX0ZCX1BYQT15Ci0jIENPTkZJR19GQl9QWEFfUEFSQU1FVEVSUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfTUJYPW0KLSMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAotCi0jCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQotIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ERVRFQ1RfUFJJTUFSWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX1JPVEFUSU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZPTlRTIGlzIG5vdCBzZXQKLUNPTkZJR19GT05UXzh4OD15Ci1DT05GSUdfRk9OVF84eDE2PXkKLUNPTkZJR19MT0dPPXkKLUNPTkZJR19MT0dPX0xJTlVYX01PTk89eQotQ09ORklHX0xPR09fTElOVVhfVkdBMTY9eQotQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15Ci0KLSMKLSMgU291bmQKLSMKLUNPTkZJR19TT1VORD1tCi0KLSMKLSMgQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlCi0jCi1DT05GSUdfU05EPW0KLUNPTkZJR19TTkRfVElNRVI9bQotQ09ORklHX1NORF9QQ009bQotIyBDT05GSUdfU05EX1NFUVVFTkNFUiBpcyBub3Qgc2V0Ci1DT05GSUdfU05EX09TU0VNVUw9eQotQ09ORklHX1NORF9NSVhFUl9PU1M9bQotQ09ORklHX1NORF9QQ01fT1NTPW0KLUNPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKLSMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci1DT05GSUdfU05EX1NVUFBPUlRfT0xEX0FQST15Ci1DT05GSUdfU05EX1ZFUkJPU0VfUFJPQ0ZTPXkKLSMgQ09ORklHX1NORF9WRVJCT1NFX1BSSU5USyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIEdlbmVyaWMgZGV2aWNlcwotIwotQ09ORklHX1NORF9BQzk3X0NPREVDPW0KLSMgQ09ORklHX1NORF9EVU1NWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTVRQQVYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1NFUklBTF9VMTY1NTAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01QVTQwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgUENJIGRldmljZXMKLSMKLSMgQ09ORklHX1NORF9BRDE4ODkgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FMUzMwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQUxJNTQ1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVRJSVhQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BVElJWFBfTU9ERU0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQ1M0MjgxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0dJTkEyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTEFZTEEyMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfR0lOQTI0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9MQVlMQTI0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NT05BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NSUEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VDSE8zRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JTkRJR09JTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSU5ESUdPREogaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VNVTEwSzEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VNVTEwSzFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTlMxMzcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9FUzE5MzggaXMgbm90IHNldAotIyBDT05GSUdfU05EX0VTMTk2OCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0hEQV9JTlRFTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSERTUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfSERTUE0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lDRTE3MTIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lDRTE3MjQgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0lOVEVMOFgwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9JTlRFTDhYME0gaXMgbm90IHNldAotIyBDT05GSUdfU05EX0tPUkcxMjEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NQUVTVFJPMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfTUlYQVJUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9OTTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfUENYSFIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1JJUFRJREUgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1JNRTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9STUU5NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfUk1FOTY1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfU09OSUNWSUJFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVFJJREVOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVklBODJYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVklBODJYWF9NT0RFTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNldAotIyBDT05GSUdfU05EX1lNRlBDSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFIGlzIG5vdCBzZXQKLQotIwotIyBBTFNBIEFSTSBkZXZpY2VzCi0jCi1DT05GSUdfU05EX1BYQTJYWF9QQ009bQotQ09ORklHX1NORF9QWEEyWFhfQUM5Nz1tCi0KLSMKLSMgVVNCIGRldmljZXMKLSMKLSMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAotIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0Ci0KLSMKLSMgU3lzdGVtIG9uIENoaXAgYXVkaW8gc3VwcG9ydAotIwotIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0Ci0KLSMKLSMgT3BlbiBTb3VuZCBTeXN0ZW0KLSMKLSMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKLUNPTkZJR19BQzk3X0JVUz1tCi1DT05GSUdfSElEX1NVUFBPUlQ9eQotQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBJbnB1dCBEZXZpY2VzCi0jCi1DT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfU1VQUE9SVD15Ci1DT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15Ci1DT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQotQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotIyBDT05GSUdfVVNCX0VIQ0lfSENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQotIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCi0jCi0KLSMKLSMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotIwotQ09ORklHX1VTQl9TVE9SQUdFPXkKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIEltYWdpbmcgZGV2aWNlcwotIwotIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAotQ09ORklHX1VTQl9NT049eQotCi0jCi0jIFVTQiBwb3J0IGRyaXZlcnMKLSMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCi0jIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwotIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci1DT05GSUdfTU1DPW0KLSMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgRHJpdmVycwotIwotQ09ORklHX01NQ19CTE9DSz1tCi1DT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15Ci0KLSMKLSMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCi0jCi1DT05GSUdfTU1DX1BYQT1tCi0jIENPTkZJR19NTUNfU0RIQ0kgaXMgbm90IHNldAotIyBDT05GSUdfTU1DX1RJRk1fU0QgaXMgbm90IHNldAotCi0jCi0jIFJlYWwgVGltZSBDbG9jawotIwotQ09ORklHX1JUQ19MSUI9eQotQ09ORklHX1JUQ19DTEFTUz15Ci1DT05GSUdfUlRDX0hDVE9TWVM9eQotQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKLSMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgUlRDIGludGVyZmFjZXMKLSMKLUNPTkZJR19SVENfSU5URl9TWVNGUz15Ci1DT05GSUdfUlRDX0lOVEZfUFJPQz15Ci1DT05GSUdfUlRDX0lOVEZfREVWPXkKLSMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIFBsYXRmb3JtIFJUQyBkcml2ZXJzCi0jCi0jIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfVjMwMjA9eQotCi0jCi0jIG9uLUNQVSBSVEMgZHJpdmVycwotIwotQ09ORklHX1JUQ19EUlZfU0ExMTAwPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBGaWxlIHN5c3RlbXMKLSMKLUNPTkZJR19FWFQyX0ZTPXkKLSMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAotQ09ORklHX0VYVDNfRlM9eQotQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19GU19NQkNBQ0hFPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAotQ09ORklHX0lOT1RJRlk9eQotQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15Ci0jIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCi0jCi0jIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcwotIwotQ09ORklHX0ZBVF9GUz15Ci1DT05GSUdfTVNET1NfRlM9eQotQ09ORklHX1ZGQVRfRlM9eQotQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwotQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgUHNldWRvIGZpbGVzeXN0ZW1zCi0jCi1DT05GSUdfUFJPQ19GUz15Ci1DT05GSUdfUFJPQ19TWVNDVEw9eQotQ09ORklHX1NZU0ZTPXkKLUNPTkZJR19UTVBGUz15Ci0jIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15Ci0jIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwotIwotIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRkZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAotIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAotQ09ORklHX1NNQl9GUz15Ci0jIENPTkZJR19TTUJfTkxTX0RFRkFVTFQgaXMgbm90IHNldAotIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIFBhcnRpdGlvbiBUeXBlcwotIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCi1DT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgotQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQotIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMT15Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCi0jIENPTkZJR19ETE0gaXMgbm90IHNldAotCi0jCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCi0jIEtlcm5lbCBoYWNraW5nCi0jCi0jIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0Ci1DT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQotQ09ORklHX01BR0lDX1NZU1JRPXkKLSMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0tFUk5FTD15Ci0jIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERVRFQ1RfU09GVExPQ0tVUCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NIRURfREVCVUc9eQotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0lORk89eQotIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15Ci1DT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKLSMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19VU0VSPXkKLUNPTkZJR19ERUJVR19FUlJPUlM9eQotQ09ORklHX0RFQlVHX0xMPXkKLSMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VjdXJpdHkgb3B0aW9ucwotIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPPXkKLUNPTkZJR19DUllQVE9fQUxHQVBJPW0KLUNPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KLUNPTkZJR19DUllQVE9fTUFOQUdFUj1tCi0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz1tCi1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19BRVM9bQotIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQVJDND1tCi0jIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fSFc9eQotCi0jCi0jIExpYnJhcnkgcm91dGluZXMKLSMKLUNPTkZJR19CSVRSRVZFUlNFPXkKLSMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAotQ09ORklHX0NSQzMyPXkKLSMgQ09ORklHX0NSQzcgaXMgbm90IHNldAotIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKLUNPTkZJR19QTElTVD15Ci1DT05GSUdfSEFTX0lPTUVNPXkKLUNPTkZJR19IQVNfSU9QT1JUPXkKLUNPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvY29sbGllX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29sbGllX2RlZmNvbmZpZwppbmRleCA0MjY0ZTI3Li5mNzYyMmU2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2NvbGxpZV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9jb2xsaWVfZGVmY29uZmlnCkBAIC0xNjYsNyArMTY2LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2NvcmdpX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCmluZGV4IGU4OTgwYTkuLjliODc0OGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvY29yZ2lfZGVmY29uZmlnCkBAIC0xNjUsNyArMTY1LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lY2JhdDkxX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvZWNiYXQ5MV9kZWZjb25maWcKaW5kZXggOTBlZDIxNC4uY2ZlYjgxNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9lY2JhdDkxX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VjYmF0OTFfZGVmY29uZmlnCkBAIC0yMzAsNyArMjMwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2VtX3gyNzBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9lbV94MjcwX2RlZmNvbmZpZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJlYTA5MC4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9jb25maWdzL2VtX3gyNzBfZGVmY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTI2NSArMCwwIEBACi0jCi0jIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjIKLSMgTW9uIEp1bCAgOSAxNToxODoyMCAyMDA3Ci0jCi1DT05GSUdfQVJNPXkKLUNPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15Ci1DT05GSUdfR0VORVJJQ19HUElPPXkKLUNPTkZJR19HRU5FUklDX1RJTUU9eQotIyBDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUyBpcyBub3Qgc2V0Ci1DT05GSUdfTU1VPXkKLSMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IQVJESVJRUz15Ci1DT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKLUNPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQotQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQotQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15Ci1DT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQotQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQotIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKLUNPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15Ci1DT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX0FSQ0hfTVREX1hJUD15Ci1DT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKLUNPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCi0KLSMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCi0jCi1DT05GSUdfRVhQRVJJTUVOVEFMPXkKLUNPTkZJR19CUk9LRU5fT05fU01QPXkKLUNPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCi1DT05GSUdfTE9DQUxWRVJTSU9OPSItZW0teDI3MCIKLSMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKLUNPTkZJR19TV0FQPXkKLUNPTkZJR19TWVNWSVBDPXkKLSMgQ09ORklHX0lQQ19OUyBpcyBub3Qgc2V0Ci1DT05GSUdfU1lTVklQQ19TWVNDVEw9eQotIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAotIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VUU19OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVURJVCBpcyBub3Qgc2V0Ci1DT05GSUdfSUtDT05GSUc9eQotQ09ORklHX0lLQ09ORklHX1BST0M9eQotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTcKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKLSMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lOSVRSRD15Ci1DT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgotQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKLUNPTkZJR19TWVNDVEw9eQotQ09ORklHX0VNQkVEREVEPXkKLUNPTkZJR19VSUQxNj15Ci1DT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQotQ09ORklHX0tBTExTWU1TPXkKLSMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKLUNPTkZJR19IT1RQTFVHPXkKLUNPTkZJR19QUklOVEs9eQotQ09ORklHX0JVRz15Ci1DT05GSUdfRUxGX0NPUkU9eQotQ09ORklHX0JBU0VfRlVMTD15Ci1DT05GSUdfRlVURVg9eQotQ09ORklHX0FOT05fSU5PREVTPXkKLUNPTkZJR19FUE9MTD15Ci1DT05GSUdfU0lHTkFMRkQ9eQotQ09ORklHX1RJTUVSRkQ9eQotQ09ORklHX0VWRU5URkQ9eQotQ09ORklHX1NITUVNPXkKLUNPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotQ09ORklHX1JUX01VVEVYRVM9eQotIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkFTRV9TTUFMTD0wCi0KLSMKLSMgTG9hZGFibGUgbW9kdWxlIHN1cHBvcnQKLSMKLUNPTkZJR19NT0RVTEVTPXkKLUNPTkZJR19NT0RVTEVfVU5MT0FEPXkKLUNPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKLSMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0Ci1DT05GSUdfS01PRD15Ci0KLSMKLSMgQmxvY2sgbGF5ZXIKLSMKLUNPTkZJR19CTE9DSz15Ci0jIENPTkZJR19MQkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19MU0YgaXMgbm90IHNldAotCi0jCi0jIElPIFNjaGVkdWxlcnMKLSMKLUNPTkZJR19JT1NDSEVEX05PT1A9eQotQ09ORklHX0lPU0NIRURfQVM9eQotQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQotQ09ORklHX0lPU0NIRURfQ0ZRPXkKLUNPTkZJR19ERUZBVUxUX0FTPXkKLSMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAotIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKLUNPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKLQotIwotIyBTeXN0ZW0gVHlwZQotIwotIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0Ci1DT05GSUdfQVJDSF9QWEE9eQotIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAotCi0jCi0jIEludGVsIFBYQTJ4eCBJbXBsZW1lbnRhdGlvbnMKLSMKLSMgQ09ORklHX0FSQ0hfTFVCQk9DSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX0xPR0lDUERfUFhBMjcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQ0hfTUFJTlNUT05FIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfUFhBX0lEUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QWEFfU0hBUlBTTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX1RSSVpFUFM0IGlzIG5vdCBzZXQKLUNPTkZJR19NQUNIX0VNX1gyNzA9eQotQ09ORklHX1BYQTI3eD15Ci0KLSMKLSMgUHJvY2Vzc29yIFR5cGUKLSMKLUNPTkZJR19DUFVfMzI9eQotQ09ORklHX0NQVV9YU0NBTEU9eQotQ09ORklHX0NQVV8zMnY1PXkKLUNPTkZJR19DUFVfQUJSVF9FVjVUPXkKLUNPTkZJR19DUFVfQ0FDSEVfVklWVD15Ci1DT05GSUdfQ1BVX1RMQl9WNFdCST15Ci1DT05GSUdfQ1BVX0NQMTU9eQotQ09ORklHX0NQVV9DUDE1X01NVT15Ci0KLSMKLSMgUHJvY2Vzc29yIEZlYXR1cmVzCi0jCi1DT05GSUdfQVJNX1RIVU1CPXkKLSMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0Ci1DT05GSUdfSVdNTVhUPXkKLUNPTkZJR19YU0NBTEVfUE1VPXkKLQotIwotIyBCdXMgc3VwcG9ydAotIwotIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAotCi0jCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgS2VybmVsIEZlYXR1cmVzCi0jCi0jIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAotIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKLUNPTkZJR19IWj0xMDAKLUNPTkZJR19BRUFCST15Ci1DT05GSUdfT0FCSV9DT01QQVQ9eQotIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKLUNPTkZJR19GTEFUTUVNX01BTlVBTD15Ci0jIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAotQ09ORklHX0ZMQVRNRU09eQotQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKLSMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAotQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKLSMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCi1DT05GSUdfQUxJR05NRU5UX1RSQVA9eQotCi0jCi0jIEJvb3Qgb3B0aW9ucwotIwotQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAotQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCi1DT05GSUdfQ01ETElORT0iIgotIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0Ci0KLSMKLSMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCi0jCi0KLSMKLSMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCi0jCi1DT05GSUdfRlBFX05XRlBFPXkKLSMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCi0jCi1DT05GSUdfQklORk1UX0VMRj15Ci0jIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci0KLSMKLSMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCi0jCi1DT05GSUdfUE09eQotQ09ORklHX1BNX0xFR0FDWT15Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QTV9TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKLUNPTkZJR19BUE1fRU1VTEFUSU9OPW0KLQotIwotIyBOZXR3b3JraW5nCi0jCi1DT05GSUdfTkVUPXkKLQotIwotIyBOZXR3b3JraW5nIG9wdGlvbnMKLSMKLUNPTkZJR19QQUNLRVQ9eQotIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAotQ09ORklHX1VOSVg9eQotQ09ORklHX1hGUk09eQotIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVD15Ci0jIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAotIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19JUF9GSUJfSEFTSD15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfREhDUD15Ci1DT05GSUdfSVBfUE5QX0JPT1RQPXkKLSMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQotQ09ORklHX0lORVRfRElBRz15Ci1DT05GSUdfSU5FVF9UQ1BfRElBRz15Ci0jIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0Ci1DT05GSUdfVENQX0NPTkdfQ1VCSUM9eQotQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgotIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAotIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19USVBDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CUklER0UgaXMgbm90IHNldAotIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUNORVQgaXMgbm90IHNldAotIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFggaXMgbm90IHNldAotIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAotIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0xBUEIgaXMgbm90IHNldAotIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwotIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIHRlc3RpbmcKLSMKLSMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAotIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAotIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0Ci1DT05GSUdfQlQ9bQotQ09ORklHX0JUX0wyQ0FQPW0KLUNPTkZJR19CVF9TQ089bQotQ09ORklHX0JUX1JGQ09NTT1tCi0jIENPTkZJR19CVF9SRkNPTU1fVFRZIGlzIG5vdCBzZXQKLUNPTkZJR19CVF9CTkVQPW0KLSMgQ09ORklHX0JUX0JORVBfTUNfRklMVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19CVF9ISURQPW0KLQotIwotIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKLSMKLUNPTkZJR19CVF9IQ0lVU0I9bQotIyBDT05GSUdfQlRfSENJVVNCX1NDTyBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfSENJVUFSVD1tCi0jIENPTkZJR19CVF9IQ0lVQVJUX0g0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUX0hDSVVBUlRfQkNTUCBpcyBub3Qgc2V0Ci1DT05GSUdfQlRfSENJQkNNMjAzWD1tCi1DT05GSUdfQlRfSENJQlBBMTBYPW0KLUNPTkZJR19CVF9IQ0lCRlVTQj1tCi0jIENPTkZJR19CVF9IQ0lWSENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKLQotIwotIyBXaXJlbGVzcwotIwotIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAotIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKLSMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFODAyMTE9bQotIyBDT05GSUdfSUVFRTgwMjExX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19JRUVFODAyMTFfQ1JZUFRfV0VQPW0KLUNPTkZJR19JRUVFODAyMTFfQ1JZUFRfQ0NNUD1tCi0jIENPTkZJR19JRUVFODAyMTFfQ1JZUFRfVEtJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFODAyMTFfU09GVE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRktJTEwgaXMgbm90IHNldAotCi0jCi0jIERldmljZSBEcml2ZXJzCi0jCi0KLSMKLSMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwotIwotQ09ORklHX1NUQU5EQUxPTkU9eQotQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQotQ09ORklHX0ZXX0xPQURFUj15Ci0jIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKLQotIwotIyBDb25uZWN0b3IgLSB1bmlmaWVkIHVzZXJzcGFjZSA8LT4ga2VybmVsc3BhY2UgbGlua2VyCi0jCi0jIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAotQ09ORklHX01URD15Ci0jIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAotQ09ORklHX01URF9DT05DQVQ9eQotQ09ORklHX01URF9QQVJUSVRJT05TPXkKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAotCi0jCi0jIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCi0jCi1DT05GSUdfTVREX0NIQVI9eQotQ09ORklHX01URF9CTEtERVZTPXkKLUNPTkZJR19NVERfQkxPQ0s9eQotIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GVEwgaXMgbm90IHNldAotIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAotIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0Ci0KLSMKLSMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKLSMKLSMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9OT1NXQVAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAotIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAotQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKLUNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15Ci1DT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQotIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAotIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX0NGSV9JMT15Ci1DT05GSUdfTVREX0NGSV9JMj15Ci0jIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAotIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAotCi0jCi0jIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKLSMKLSMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9TSEFSUF9TTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAotIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EPXkKLSMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAotQ09ORklHX01URF9OQU5EX0lEUz15Ci0jIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAotIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0Ci1DT05GSUdfTVREX05BTkRfUExBVEZPUk09eQotIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAotCi0jCi0jIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcwotIwotIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0Ci0KLSMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0Ci0jCi0jIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBQbHVnIGFuZCBQbGF5IHN1cHBvcnQKLSMKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKLSMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9MT09QPXkKLSMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1JBTT15Ci1DT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKLUNPTkZJR19CTEtfREVWX1JBTV9TSVpFPTEyMDAwCi1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKLSMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAotIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERSBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTST15Ci0jIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQotIwotQ09ORklHX0JMS19ERVZfU0Q9eQotIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKLQotIwotIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKLSMKLSMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAotQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KLQotIwotIyBTQ1NJIFRyYW5zcG9ydHMKLSMKLSMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19BVFRSUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAotCi0jCi0jIFNDU0kgbG93LWxldmVsIGRyaXZlcnMKLSMKLSMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKLSMKLSMgQ09ORklHX01EIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfTkVUREVWSUNFUz15Ci0jIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVU4gaXMgbm90IHNldAotIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAgb3IgMTAwTWJpdCkKLSMKLUNPTkZJR19ORVRfRVRIRVJORVQ9eQotQ09ORklHX01JST15Ci0jIENPTkZJR19TTUM5MVggaXMgbm90IHNldAotQ09ORklHX0RNOTAwMD15Ci0jIENPTkZJR19TTUM5MTFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0Ci0KLSMKLSMgV2lyZWxlc3MgTEFOCi0jCi0jIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAotCi0jCi0jIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCi0jCi0jIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAotIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BQUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAotIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgSVNETiBzdWJzeXN0ZW0KLSMKLSMgQ09ORklHX0lTRE4gaXMgbm90IHNldAotCi0jCi0jIElucHV0IGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfSU5QVVQ9eQotIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKLQotIwotIyBVc2VybGFuZCBpbnRlcmZhY2VzCi0jCi1DT05GSUdfSU5QVVRfTU9VU0VERVY9eQotIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAotQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKLSMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0Ci1DT05GSUdfSU5QVVRfRVZERVY9eQotIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAotCi0jCi0jIElucHV0IERldmljZSBEcml2ZXJzCi0jCi1DT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQotIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAotIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0Ci1DT05GSUdfS0VZQk9BUkRfUFhBMjd4PW0KLSMgQ09ORklHX0tFWUJPQVJEX0dQSU8gaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKLUNPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAotIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UT1VDSFNDUkVFTl9VU0JfQ09NUE9TSVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIEkvTyBwb3J0cwotIwotQ09ORklHX1NFUklPPXkKLSMgQ09ORklHX1NFUklPX1NFUlBPUlQgaXMgbm90IHNldAotQ09ORklHX1NFUklPX0xJQlBTMj15Ci0jIENPTkZJR19TRVJJT19SQVcgaXMgbm90IHNldAotIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAotCi0jCi0jIENoYXJhY3RlciBkZXZpY2VzCi0jCi1DT05GSUdfVlQ9eQotQ09ORklHX1ZUX0NPTlNPTEU9eQotQ09ORklHX0hXX0NPTlNPTEU9eQotIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VyaWFsIGRyaXZlcnMKLSMKLSMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKLQotIwotIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0Ci0jCi1DT05GSUdfU0VSSUFMX1BYQT15Ci1DT05GSUdfU0VSSUFMX1BYQV9DT05TT0xFPXkKLUNPTkZJR19TRVJJQUxfQ09SRT15Ci1DT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15Ci1DT05GSUdfVU5JWDk4X1BUWVM9eQotQ09ORklHX0xFR0FDWV9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgotCi0jCi0jIElQTUkKLSMKLSMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPW0KLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAotCi0jCi0jIFRQTSBkZXZpY2VzCi0jCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKLSMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLQotIwotIyBEYWxsYXMncyAxLXdpcmUgYnVzCi0jCi0jIENPTkZJR19XMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19IV01PTiBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzYyBkZXZpY2VzCi0jCi0KLSMKLSMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwotIwotIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIwotIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi0KLSMKLSMgTEVEIFRyaWdnZXJzCi0jCi0KLSMKLSMgTXVsdGltZWRpYSBkZXZpY2VzCi0jCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKLQotIwotIyBHcmFwaGljcyBzdXBwb3J0Ci0jCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAotCi0jCi0jIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci1DT05GSUdfRkI9eQotIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9EREMgaXMgbm90IHNldAotQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15Ci1DT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKLUNPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKLSMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAotIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfREVGRVJSRURfSU89eQotIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0Ci0KLSMKLSMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKLSMKLSMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKLUNPTkZJR19GQl9QWEE9eQotIyBDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlMgaXMgbm90IHNldAotIyBDT05GSUdfRkJfTUJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAotCi0jCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEU9eQotIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GT05UUyBpcyBub3Qgc2V0Ci1DT05GSUdfRk9OVF84eDg9eQotQ09ORklHX0ZPTlRfOHgxNj15Ci1DT05GSUdfTE9HTz15Ci1DT05GSUdfTE9HT19MSU5VWF9NT05PPXkKLUNPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKLUNPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQotCi0jCi0jIFNvdW5kCi0jCi1DT05GSUdfU09VTkQ9bQotCi0jCi0jIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQotIwotQ09ORklHX1NORD1tCi1DT05GSUdfU05EX1RJTUVSPW0KLUNPTkZJR19TTkRfUENNPW0KLSMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAotQ09ORklHX1NORF9PU1NFTVVMPXkKLUNPTkZJR19TTkRfTUlYRVJfT1NTPW0KLUNPTkZJR19TTkRfUENNX09TUz1tCi1DT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15Ci0jIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAotQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQotQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15Ci0jIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAotIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBHZW5lcmljIGRldmljZXMKLSMKLUNPTkZJR19TTkRfQUM5N19DT0RFQz1tCi0jIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAotIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAotCi0jCi0jIEFMU0EgQVJNIGRldmljZXMKLSMKLUNPTkZJR19TTkRfUFhBMlhYX1BDTT1tCi1DT05GSUdfU05EX1BYQTJYWF9BQzk3PW0KLQotIwotIyBVU0IgZGV2aWNlcwotIwotIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKLQotIwotIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0Ci0jCi0jIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKLQotIwotIyBPcGVuIFNvdW5kIFN5c3RlbQotIwotIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAotQ09ORklHX0FDOTdfQlVTPW0KLQotIwotIyBISUQgRGV2aWNlcwotIwotQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBJbnB1dCBEZXZpY2VzCi0jCi1DT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIwotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1MgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAotCi0jCi0jIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKLUNPTkZJR19VU0JfT0hDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15Ci0jIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAotCi0jCi0jIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKLSMKLQotIwotIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCi0jCi1DT05GSUdfVVNCX1NUT1JBR0U9eQotIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSW1hZ2luZyBkZXZpY2VzCi0jCi0jIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgcG9ydCBkcml2ZXJzCi0jCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycwotIwotIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAotQ09ORklHX01NQz1tCi0jIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfTU1DX1VOU0FGRV9SRVNVTUUgaXMgbm90IHNldAotCi0jCi0jIE1NQy9TRCBDYXJkIERyaXZlcnMKLSMKLUNPTkZJR19NTUNfQkxPQ0s9bQotCi0jCi0jIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwotIwotQ09ORklHX01NQ19QWEE9bQotCi0jCi0jIFJlYWwgVGltZSBDbG9jawotIwotQ09ORklHX1JUQ19MSUI9eQotQ09ORklHX1JUQ19DTEFTUz1tCi0KLSMKLSMgUlRDIGludGVyZmFjZXMKLSMKLUNPTkZJR19SVENfSU5URl9TWVNGUz15Ci1DT05GSUdfUlRDX0lOVEZfUFJPQz15Ci1DT05GSUdfUlRDX0lOVEZfREVWPXkKLSMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIEkyQyBSVEMgZHJpdmVycwotIwotCi0jCi0jIFNQSSBSVEMgZHJpdmVycwotIwotCi0jCi0jIFBsYXRmb3JtIFJUQyBkcml2ZXJzCi0jCi0jIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfVjMwMjA9bQotCi0jCi0jIG9uLUNQVSBSVEMgZHJpdmVycwotIwotQ09ORklHX1JUQ19EUlZfU0ExMTAwPW0KLQotIwotIyBGaWxlIHN5c3RlbXMKLSMKLUNPTkZJR19FWFQyX0ZTPXkKLSMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAotQ09ORklHX0VYVDNfRlM9eQotQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19GU19NQkNBQ0hFPXkKLSMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAotQ09ORklHX0lOT1RJRlk9eQotQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15Ci0jIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCi0jCi0jIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcwotIwotQ09ORklHX0ZBVF9GUz15Ci1DT05GSUdfTVNET1NfRlM9eQotQ09ORklHX1ZGQVRfRlM9eQotQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNwotQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgotIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgUHNldWRvIGZpbGVzeXN0ZW1zCi0jCi1DT05GSUdfUFJPQ19GUz15Ci1DT05GSUdfUFJPQ19TWVNDVEw9eQotQ09ORklHX1NZU0ZTPXkKLUNPTkZJR19UTVBGUz15Ci0jIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15Ci0jIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcwotIwotIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0Ci1DT05GSUdfSkZGUzJfRlM9eQotQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKLUNPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15Ci1DT05GSUdfSkZGUzJfU1VNTUFSWT15Ci0jIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKLUNPTkZJR19KRkZTMl9aTElCPXkKLUNPTkZJR19KRkZTMl9SVElNRT15Ci0jIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAotIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKLUNPTkZJR19ORlNfRlM9eQotQ09ORklHX05GU19WMz15Ci0jIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAotIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAotQ09ORklHX1NNQl9GUz15Ci0jIENPTkZJR19TTUJfTkxTX0RFRkFVTFQgaXMgbm90IHNldAotIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAotIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfOVBfRlMgaXMgbm90IHNldAotCi0jCi0jIFBhcnRpdGlvbiBUeXBlcwotIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKLUNPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCi1DT05GSUdfTkxTPXkKLUNPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgotQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQotIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMT15Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX1VURjg9eQotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwotIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLQotIwotIyBQcm9maWxpbmcgc3VwcG9ydAotIwotIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKLQotIwotIyBLZXJuZWwgaGFja2luZwotIwotIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAotQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKLUNPTkZJR19NQUdJQ19TWVNSUT15Ci0jIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19LRVJORUw9eQotIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAotIyBDT05GSUdfREVURUNUX1NPRlRMT0NLVVAgaXMgbm90IHNldAotIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX1NQSU5MT0NLX1NMRUVQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0xPQ0tJTkdfQVBJX1NFTEZURVNUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19LT0JKRUNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAotQ09ORklHX0RFQlVHX0lORk89eQotIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci1DT05GSUdfRlJBTUVfUE9JTlRFUj15Ci1DT05GSUdfRk9SQ0VEX0lOTElOSU5HPXkKLSMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19ERUJVR19VU0VSPXkKLUNPTkZJR19ERUJVR19FUlJPUlM9eQotQ09ORklHX0RFQlVHX0xMPXkKLSMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU2VjdXJpdHkgb3B0aW9ucwotIwotIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0Ci0KLSMKLSMgQ3J5cHRvZ3JhcGhpYyBvcHRpb25zCi0jCi1DT05GSUdfQ1JZUFRPPXkKLUNPTkZJR19DUllQVE9fQUxHQVBJPW0KLUNPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KLUNPTkZJR19DUllQVE9fTUFOQUdFUj1tCi0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz1tCi1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19BRVM9bQotIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQVJDND1tCi0jIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLQotIwotIyBIYXJkd2FyZSBjcnlwdG8gZGV2aWNlcwotIwotCi0jCi0jIExpYnJhcnkgcm91dGluZXMKLSMKLUNPTkZJR19CSVRSRVZFUlNFPXkKLSMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAotQ09ORklHX0NSQzMyPXkKLSMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0Ci1DT05GSUdfWkxJQl9JTkZMQVRFPXkKLUNPTkZJR19aTElCX0RFRkxBVEU9eQotQ09ORklHX1BMSVNUPXkKLUNPTkZJR19IQVNfSU9NRU09eQotQ09ORklHX0hBU19JT1BPUlQ9eQotQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9lcDkzeHhfZGVmY29uZmlnCmluZGV4IDI0YTcwMWEuLjIxYWEwMTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvZXA5M3h4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VwOTN4eF9kZWZjb25maWcKQEAgLTE4NCw3ICsxODQsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9lc2VyaWVzX3B4YV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZwppbmRleCBlZDQ4N2I5Li40OTNlY2VlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2VzZXJpZXNfcHhhX2RlZmNvbmZpZwpAQCAtMjUxLDcgKzI1MSw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKIENPTkZJR19BRUFCST15CiBDT05GSUdfT0FCSV9DT01QQVQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pbXgyN2Fkc19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2lteDI3YWRzX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iY2Q5NWI4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9pbXgyN2Fkc19kZWZjb25maWcKQEAgLTAsMCArMSw4MjYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjoyOTozNCAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKKyMgQ09ORklHX0lPU0NIRURfQVMgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfTk9PUD15CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJub29wIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01YQz15CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBGcmVlc2NhbGUgTVhDIEltcGxlbWVudGF0aW9ucworIworQ09ORklHX0FSQ0hfTVgyPXkKKyMgQ09ORklHX0FSQ0hfTVgzIGlzIG5vdCBzZXQKKworIworIyBNWDIgZmFtaWx5IENQVSBzdXBwb3J0CisjCitDT05GSUdfTUFDSF9NWDI3PXkKKworIworIyBNWDIgUGxhdGZvcm1zCisjCitDT05GSUdfTUFDSF9NWDI3QURTPXkKKyMgQ09ORklHX01BQ0hfUENNMDM4IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorIyBDT05GSUdfRldfTE9BREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CisjIENPTkZJR19NVERfQ0ZJX0FNRFNURCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVA9eQorQ09ORklHX01URF9QSFlTTUFQX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTIKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKKyMgQ09ORklHX01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUNfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU49eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKKyMgQ09ORklHX1NFUklBTF9JTVggaXMgbm90IHNldAorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorQ09ORklHX0hBVkVfR1BJT19MSUI9eQorCisjCisjIEdQSU8gU3VwcG9ydAorIworCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9bQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPW0KKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMTU9bQorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2lvcDEzeHhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AxM3h4X2RlZmNvbmZpZwppbmRleCA5ODhiNGQxLi40ODJlNTcwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2lvcDEzeHhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMTN4eF9kZWZjb25maWcKQEAgLTE5Nyw3ICsxOTcsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pb3AzMnhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzMnhfZGVmY29uZmlnCmluZGV4IDgzZjQwZDQuLjg2MTJmNTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzJ4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lvcDMyeF9kZWZjb25maWcKQEAgLTIwMSw3ICsyMDEsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9pb3AzM3hfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9pb3AzM3hfZGVmY29uZmlnCmluZGV4IDkxN2FmYjUuLjhiMDA5OGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaW9wMzN4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2lvcDMzeF9kZWZjb25maWcKQEAgLTE5Nyw3ICsxOTcsNiBAQAogIwogIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9peHAyMDAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjAwMF9kZWZjb25maWcKaW5kZXggZjhmOTc5My4uODQ2ODBkYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9peHAyMDAwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2l4cDIwMDBfZGVmY29uZmlnCkBAIC0xODQsNyArMTg0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjN4eF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2l4cDIzeHhfZGVmY29uZmlnCmluZGV4IDI3Y2YwMjIuLjRhMmY3YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvaXhwMjN4eF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9peHAyM3h4X2RlZmNvbmZpZwpAQCAtMTgwLDcgKzE4MCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2l4cDR4eF9kZWZjb25maWcKaW5kZXggZWZhMDQ4NS4uZmMxNDkzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9peHA0eHhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvaXhwNHh4X2RlZmNvbmZpZwpAQCAtMTY1LDYgKzE2NSw3IEBACiBDT05GSUdfTUFDSF9OQVMxMDBEPXkKIENPTkZJR19NQUNIX0RTTUc2MDA9eQogQ09ORklHX0FSQ0hfSVhEUDRYWD15CitDT05GSUdfTUFDSF9GU0c9eQogQ09ORklHX0NQVV9JWFA0Nlg9eQogQ09ORklHX0NQVV9JWFA0M1g9eQogQ09ORklHX01BQ0hfR1RXWDU3MTU9eQpAQCAtNzcwLDcgKzc3MSw3IEBACiAjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1ZJQT15CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0CkBAIC0xMTQzLDcgKzExNDQsNyBAQAogIyBDT05GSUdfU0VOU09SU19WSUE2ODZBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVlQ4MjMxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19XODM3ODFEPXkKICMgQ09ORklHX1NFTlNPUlNfVzgzNzkxRCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldApAQCAtMTMzNCw4ICsxMzM1LDggQEAKICMKICMgTEVEIGRyaXZlcnMKICMKLSMgQ09ORklHX0xFRFNfSVhQNFhYIGlzIG5vdCBzZXQKIENPTkZJR19MRURTX0dQSU89eQorQ09ORklHX0xFRFNfRlNHPXkKIAogIwogIyBMRUQgVHJpZ2dlcnMKQEAgLTEzNjcsNyArMTM2OCw3IEBACiAjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9JU0wxMjA4PXkKIENPTkZJR19SVENfRFJWX1gxMjA1PXkKIENPTkZJR19SVENfRFJWX1BDRjg1NjM9eQogIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3Mva2FmYV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2thZmFfZGVmY29uZmlnCmluZGV4IGFlNTFhNDAuLjZkZDk1YTIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mva2FmYV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9rYWZhX2RlZmNvbmZpZwpAQCAtMTYyLDcgKzE2Miw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogQ09ORklHX1BSRUVNUFQ9eQotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9rYjkyMDJfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9rYjkyMDJfZGVmY29uZmlnCmluZGV4IGMxNjUzN2QuLjhlNzRjNjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mva2I5MjAyX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL2tiOTIwMl9kZWZjb25maWcKQEAgLTEyNiw3ICsxMjYsNiBAQAogIwogIyBLZXJuZWwgRmVhdHVyZXMKICMKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2tpcmt3b29kX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mva2lya3dvb2RfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzMzU3YmEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL2tpcmt3b29kX2RlZmNvbmZpZwpAQCAtMCwwICsxLDE0MjYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgU3VuIEp1biAyMiAxNTo1MToyNSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9LSVJLV09PRD15CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xPS0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NVjc4WFgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgTWFydmVsbCBLaXJrd29vZCBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19NQUNIX0RCODhGNjI4MV9CUD15CitDT05GSUdfTUFDSF9SRDg4RjYxOTJfTkFTPXkKK0NPTkZJR19NQUNIX1JEODhGNjI4MT15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworQ09ORklHX1BMQVRfT1JJT049eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfRkVST0NFT049eQorIyBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorQ09ORklHX09VVEVSX0NBQ0hFPXkKK0NPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMj15CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKK0NPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9TWVNDQUxMPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0iIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworIyBDT05GSUdfUE0gaXMgbm90IHNldAorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKK0NPTkZJR19QQUNLRVRfTU1BUD15CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CitDT05GSUdfSVBfTVVMVElDQVNUPXkKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorQ09ORklHX0lQX1BOUF9CT09UUD15CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCitDT05GSUdfTkVUX1BLVEdFTj1tCisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfV0lSRUxFU1NfRVhUPXkKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPXkKKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKK0NPTkZJR19NVERfSkVERUNQUk9CRT15CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1NUQUE9eQorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lOVEVMX1ZSX05PUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfUE1DNTUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorQ09ORklHX01URF9NMjVQODA9eQorQ09ORklHX00yNVBYWF9VU0VfRkFTVF9SRUFEPXkKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURT15CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0NIUl9ERVZfU0c9bQorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDNzlYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EUFRfSTJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQzI4SjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9UVUxJUCBpcyBub3Qgc2V0CisjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ0k9eQorIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAorIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAorIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAorIyBDT05GSUdfODEzOVRPTyBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAorIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CitDT05GSUdfRTEwMDA9eQorQ09ORklHX0UxMDAwX05BUEk9eQorIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAorIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CisjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CisjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CisjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CisjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAorIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CitDT05GSUdfTVY2NDNYWF9FVEg9eQorIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UUiBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERVZLTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCitDT05GSUdfU0VSSUFMXzgyNTA9eQorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUENJIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CitDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0yCisjIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9eQorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1NjMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FMSTE1WDMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDc1NiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1EODExMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgwMSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUElJWDQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUFJPU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzU1OTUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0kyQ19NVjY0WFhYPXkKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX1NQSV9PUklPTj15CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhDSV9IQ0Q9eQorQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKK0NPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRD15CisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9eQorQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EUENNPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9eQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NT15CitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0lTVVNCVkdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKKyMgQ09ORklHX0xFRFNfQ0xBU1MgaXMgbm90IHNldAorCisjCisjIExFRCBkcml2ZXJzCisjCisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCisjIENPTkZJR19MRURTX1RSSUdHRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfTVY9eQorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1I5NzAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX0RNQURFVklDRVM9eQorCisjCisjIERNQSBEZXZpY2VzCisjCitDT05GSUdfTVZfWE9SPXkKK0NPTkZJR19ETUFfRU5HSU5FPXkKKworIworIyBETUEgQ2xpZW50cworIworIyBDT05GSUdfTkVUX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GUz15CisjIENPTkZJR19FWFQzX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorQ09ORklHX0pCRD15CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKK0NPTkZJR19YRlNfRlM9eQorIyBDT05GSUdfWEZTX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19JU085NjYwX0ZTPXkKK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKKyMgQ09ORklHX0JTRF9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTklYV0FSRV9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1VOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LQVJNQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CitDT05GSUdfTkxTX0lTTzg4NTlfMj15CisjIENPTkZJR19OTFNfSVNPODg1OV8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV82IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAorQ09ORklHX05MU19VVEY4PXkKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CitDT05GSUdfTUFHSUNfU1lTUlE9eQorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CisjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19QUkVFTVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKK0NPTkZJR19ERUJVR19FUlJPUlM9eQorIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQVNZTkNfQ09SRT15CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPW0KK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19IVz15CisjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorQ09ORklHX0NSQ19DQ0lUVD15CitDT05GSUdfQ1JDMTY9eQorQ09ORklHX0NSQ19JVFVfVD1tCitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CitDT05GSUdfTElCQ1JDMzJDPXkKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2tzODY5NV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL2tzODY5NV9kZWZjb25maWcKaW5kZXggOGFiMjFhMC4uNjA3N2YyYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9rczg2OTVfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mva3M4Njk1X2RlZmNvbmZpZwpAQCAtMTc0LDcgKzE3NCw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL2xva2lfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9sb2tpX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2RhN2MzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9sb2tpX2RlZmNvbmZpZwpAQCAtMCwwICsxLDExNDcgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAwMzowNzo0OSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS01PRCBpcyBub3Qgc2V0CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LSVJLV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9MT0tJPXkKKyMgQ09ORklHX0FSQ0hfTVY3OFhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09SSU9ONVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorCisjCisjIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIEltcGxlbWVudGF0aW9ucworIworQ09ORklHX01BQ0hfTEI4OFJDODQ4MD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworQ09ORklHX1BMQVRfT1JJT049eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfRkVST0NFT049eQorIyBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9IiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworIyBDT05GSUdfRlBFX05XRlBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKK0NPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dJUkVMRVNTX0VYVD15CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj15CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CitDT05GSUdfRlRMPXkKK0NPTkZJR19ORlRMPXkKKyMgQ09ORklHX05GVExfUlcgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKK0NPTkZJR19NVERfSkVERUNQUk9CRT15CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CitDT05GSUdfTVREX0NGSV9JND15CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PVFAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSU5URUxFWFQ9eQorQ09ORklHX01URF9DRklfQU1EU1REPXkKK0NPTkZJR19NVERfQ0ZJX1NUQUE9eQorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX0RBVEFGTEFTSCBpcyBub3Qgc2V0CitDT05GSUdfTVREX00yNVA4MD15CitDT05GSUdfTTI1UFhYX1VTRV9GQVNUX1JFQUQ9eQorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CitDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFPXkKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1BST0NfRlMgaXMgbm90IHNldAorCisjCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCisjCitDT05GSUdfQkxLX0RFVl9TRD15CisjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9TUj1tCisjIENPTkZJR19CTEtfREVWX1NSX1ZFTkRPUiBpcyBub3Qgc2V0CitDT05GSUdfQ0hSX0RFVl9TRz1tCisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCisjIENPTkZJR19TQ1NJX01VTFRJX0xVTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CitDT05GSUdfQVRBX1NGRj15CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKK0NPTkZJR19NSUk9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQzI4SjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorQ09ORklHX05FVERFVl8xMDAwPXkKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKK0NPTkZJR19NVjY0M1hYX0VUSD15CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKK0NPTkZJR19JTlBVVF9NT1VTRURFVj15CitDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkRFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX0lOUFVUX0tFWUJPQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCitDT05GSUdfU0VSSUFMXzgyNTA9eQorQ09ORklHX1NFUklBTF84MjUwX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF84MjUwX05SX1VBUlRTPTQKK0NPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTIKKyMgQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009bQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0kyQ19NVjY0WFhYPXkKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorQ09ORklHX1VTQl9QUklOVEVSPXkKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUI9eQorQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9EUENNPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1RPUkFHRV9TRERSMDk9eQorQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NT15CitDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1Q9eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9OIGlzIG5vdCBzZXQKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CisjIENPTkZJR19MRURTX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBMRUQgZHJpdmVycworIworCisjCisjIExFRCBUcmlnZ2VycworIworIyBDT05GSUdfTEVEU19UUklHR0VSUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorIyBDT05GSUdfRVhUM19GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CitDT05GSUdfWEZTX0ZTPXkKKyMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfSVNPOTY2MF9GUz15CisjIENPTkZJR19KT0xJRVQgaXMgbm90IHNldAorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKK0NPTkZJR19NSU5JWF9TVUJQQVJUSVRJT049eQorQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTj15CitDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMPXkKK0NPTkZJR19MRE1fUEFSVElUSU9OPXkKK0NPTkZJR19MRE1fREVCVUc9eQorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TVU5fUEFSVElUSU9OPXkKKyMgQ09ORklHX0tBUk1BX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19FRklfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKK0NPTkZJR19OTFNfSVNPODg1OV8yPXkKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9bQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19NQU5BR0VSPW0KKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz1tCisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0hXPXkKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0NDSVRUPXkKK0NPTkZJR19DUkMxNj15CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKK0NPTkZJR19MSUJDUkMzMkM9eQorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbHBkMjcwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbHBkMjcwX2RlZmNvbmZpZwppbmRleCBhM2JmNTgzLi4xYTM4ZDhlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL2xwZDI3MF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9scGQyNzBfZGVmY29uZmlnCkBAIC0xNzMsNyArMTczLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvbHBkN2E0MDRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKaW5kZXggNDZhMGY3Zi4uN2EyZTkzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9scGQ3YTQwNF9kZWZjb25maWcKQEAgLTE0OCw3ICsxNDgsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRT15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL212Nzh4eDBfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMzhlYmY4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9tdjc4eHgwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDE0NDUgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAwMjo1NzozMiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKK0NPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CitDT05GSUdfU1dBUD15CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfQUxMPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS0lSS1dPT0QgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MT0tJIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX01WNzhYWDA9eQorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBNYXJ2ZWxsIE1WNzh4eDAgSW1wbGVtZW50YXRpb25zCisjCitDT05GSUdfTUFDSF9EQjc4WDAwX0JQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCitDT05GSUdfUExBVF9PUklPTj15CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVQ9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTj15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorQ09ORklHX09VVEVSX0NBQ0hFPXkKK0NPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMj15CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKK0NPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9TWVNDQUxMPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorQ09ORklHX09BQklfQ09NUEFUPXkKKyMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQorIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19GTEFUTUVNPXkKK0NPTkZJR19GTEFUX05PREVfTUVNX01BUD15CisjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0FMSUdOTUVOVF9UUkFQPXkKKworIworIyBCb290IG9wdGlvbnMKKyMKK0NPTkZJR19aQk9PVF9ST01fVEVYVD0weDAKK0NPTkZJR19aQk9PVF9ST01fQlNTPTB4MAorQ09ORklHX0NNRExJTkU9IiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0RJQUc9eQorQ09ORklHX0lORVRfVENQX0RJQUc9eQorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CisjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CisjIENPTkZJR19CUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUNORVQgaXMgbm90IHNldAorIyBDT05GSUdfTExDMiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFggaXMgbm90IHNldAorIyBDT05GSUdfQVRBTEsgaXMgbm90IHNldAorIyBDT05GSUdfWDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBUEIgaXMgbm90IHNldAorIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKKworIworIyBOZXR3b3JrIHRlc3RpbmcKKyMKK0NPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorQ09ORklHX01URF9KRURFQ1BST0JFPXkKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MHgwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTAKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0lOVEVMX1ZSX05PUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfUE1DNTUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURT15CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0NBRkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9PUklPTj15CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VTUVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NYOCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKK0NPTkZJR19NSVNDX0RFVklDRVM9eQorIyBDT05GSUdfUEhBTlRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfU0dJX0lPQzQgaXMgbm90IHNldAorIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorIyBDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1IgaXMgbm90IHNldAorQ09ORklHX0NIUl9ERVZfU0c9bQorIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAorCisjCisjIFNvbWUgU0NTSSBkZXZpY2VzIChlLmcuIENEIGp1a2Vib3gpIHN1cHBvcnQgbXVsdGlwbGUgTFVOcworIworIyBDT05GSUdfU0NTSV9NVUxUSV9MVU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl8zV19YWFhYX1JBSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV8zV185WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUNBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BQUNSQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDN1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFhfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUlDNzlYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzk0WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EUFRfSTJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQURWQU5TWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BUkNNU1IgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfTkVXR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9TQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9IUFRJT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKK0NPTkZJR19BVEE9eQorIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9NVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ01ENjRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQ1lQUkVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0VGQVIgaXMgbm90IHNldAorIyBDT05GSUdfQVRBX0dFTkVSSUMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDJOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSFBUM1gzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSVQ4MjEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfSk1JQ1JPTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTkVUQ0VMTCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05JTkpBMzIgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTlM4NzQxNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9PUFRJRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9UVUxJUCBpcyBub3Qgc2V0CisjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ0k9eQorIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAorIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAorIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CisjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAorIyBDT05GSUdfODEzOVRPTyBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAorIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CisjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAorIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CisjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLWTIgaXMgbm90IHNldAorIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKK0NPTkZJR19NVjY0M1hYX0VUSD15CisjIENPTkZJR19RTEEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUTDEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RSIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCisjIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworQ09ORklHX1NFUklBTF84MjUwPXkKK0NPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKKyMgQ09ORklHX1NFUklBTF84MjUwX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9NAorQ09ORklHX1NFUklBTF84MjUwX1JVTlRJTUVfVUFSVFM9MgorIyBDT05GSUdfU0VSSUFMXzgyNTBfRVhURU5ERUQgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZQT1JUPXkKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorQ09ORklHX0kyQ19DSEFSREVWPXkKKworIworIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTEkxNVgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ3NTYgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0FNRDgxMTEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MDEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfTVY2NFhYWD15CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKK0NPTkZJR19IV01PTj15CisjIENPTkZJR19IV01PTl9WSUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRDc0MTggaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTkyNDAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFQ3NDcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FUWFAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRFMxNjIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfSTVLX0FNQiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4ODJGRyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3NTM3NVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE03NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNNzcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTc4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE04NyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDE2MTkgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2NjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUEM4NzM2MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDODc0MjcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRE1FMTczNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFM3ODI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVEhNQzUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVklBNjg2QSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZUMTIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1ZUODIzMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc4MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkyRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODVUUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4M0w3ODZORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4MzYyN0hGIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19EQUIgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCitDT05GSUdfVVNCX0hJRD15CisjIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9FSENJX0hDRD15CitDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQorQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEPXkKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VSENJX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1BSSU5URVI9eQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQj15CitDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX0RQQ009eQorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOT15CitDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1PXkKK0NPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVD15CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NT04gaXMgbm90IHNldAorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorCisjCisjIExFRCBkcml2ZXJzCisjCisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0RTMTMwNz15CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfUlM1QzM3Mj15CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX000MVQ4MD15CisjIENPTkZJR19SVENfRFJWX000MVQ4MF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GUz15CisjIENPTkZJR19FWFQzX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorQ09ORklHX0pCRD15CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CitDT05GSUdfSU5PVElGWT15CitDT05GSUdfSU5PVElGWV9VU0VSPXkKKyMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldAorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19JU085NjYwX0ZTPW0KK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorQ09ORklHX01TRE9TX0ZTPXkKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKKyMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorQ09ORklHX05GU19GUz15CitDT05GSUdfTkZTX1YzPXkKKyMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAorQ09ORklHX1JPT1RfTkZTPXkKK0NPTkZJR19MT0NLRD15CitDT05GSUdfTE9DS0RfVjQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTkxTPXkKK0NPTkZJR19OTFNfREVGQVVMVD0iaXNvODg1OS0xIgorQ09ORklHX05MU19DT0RFUEFHRV80Mzc9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzczNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzc1IGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfQ09ERVBBR0VfODUwPXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE9eQorQ09ORklHX05MU19JU084ODU5XzI9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CitDT05GSUdfTUFHSUNfU1lTUlE9eQorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorQ09ORklHX1NDSEVEU1RBVFM9eQorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUFJFRU1QVD15CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfSU5GTz15CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19LUFJPQkVTX1NBTklUWV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfTEtEVE0gaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCitDT05GSUdfQ1JZUFRPX0FMR0FQST1tCitDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCitDT05GSUdfQ1JZUFRPX01BTkFHRVI9bQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9teDMxYWRzX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWFkc19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTA1MjcxNwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWFkc19kZWZjb25maWcKQEAgLTAsMCArMSw4MzkgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjoyMToxMSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQorQ09ORklHX1NZU0NUTD15CitDT05GSUdfRU1CRURERUQ9eQorQ09ORklHX1VJRDE2PXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQorQ09ORklHX1BSSU5USz15CitDT05GSUdfQlVHPXkKK0NPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CitDT05GSUdfQkFTRV9GVUxMPXkKK0NPTkZJR19GVVRFWD15CitDT05GSUdfQU5PTl9JTk9ERVM9eQorQ09ORklHX0VQT0xMPXkKK0NPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CitDT05GSUdfRVZFTlRGRD15CitDT05GSUdfU0hNRU09eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0tQUk9CRVM9eQorQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQorQ09ORklHX01PRFZFUlNJT05TPXkKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CitDT05GSUdfQkxPQ0s9eQorIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKKworIworIyBJTyBTY2hlZHVsZXJzCisjCitDT05GSUdfSU9TQ0hFRF9OT09QPXkKK0NPTkZJR19JT1NDSEVEX0FTPXkKK0NPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKK0NPTkZJR19JT1NDSEVEX0NGUT15CisjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJjZnEiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQorCisjCisjIFN5c3RlbSBUeXBlCisjCisjIENPTkZJR19BUkNIX0FBRUMyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JFQUxWSUVXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfVkVSU0FUSUxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfTVhDPXkKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NU003WDAwQSBpcyBub3Qgc2V0CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudAorIworCisjCisjIEZyZWVzY2FsZSBNWEMgSW1wbGVtZW50YXRpb25zCisjCisjIENPTkZJR19BUkNIX01YMiBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWDM9eQorCisjCisjIE1YMyBPcHRpb25zCisjCitDT05GSUdfTUFDSF9NWDMxQURTPXkKKyMgQ09ORklHX01BQ0hfUENNMDM3IGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX1Y2PXkKKyMgQ09ORklHX0NQVV8zMnY2SyBpcyBub3Qgc2V0CitDT05GSUdfQ1BVXzMydjY9eQorQ09ORklHX0NQVV9BQlJUX0VWNj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1Y2PXkKK0NPTkZJR19DUFVfQ0FDSEVfVklQVD15CitDT05GSUdfQ1BVX0NPUFlfVjY9eQorQ09ORklHX0NQVV9UTEJfVjY9eQorQ09ORklHX0NQVV9IQVNfQVNJRD15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0JQUkVESUNUX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworQ09ORklHX1RJQ0tfT05FU0hPVD15CitDT05GSUdfTk9fSFo9eQorQ09ORklHX0hJR0hfUkVTX1RJTUVSUz15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CitDT05GSUdfUFJFRU1QVD15CitDT05GSUdfSFo9MTAwCitDT05GSUdfQUVBQkk9eQorIyBDT05GSUdfT0FCSV9DT01QQVQgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibm9pbml0cmQgY29uc29sZT10dHlteGMwLDExNTIwMCByb290PS9kZXYvbXRkYmxvY2syIHJ3IGlwPW9mZiIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX1ZGUD15CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1VOSVg9eQorQ09ORklHX1hGUk09eQorIyBDT05GSUdfWEZSTV9VU0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CitDT05GSUdfSVBfRklCX0hBU0g9eQorQ09ORklHX0lQX1BOUD15CitDT05GSUdfSVBfUE5QX0RIQ1A9eQorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorQ09ORklHX0lORVRfRElBRz15CitDT05GSUdfSU5FVF9UQ1BfRElBRz15CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorQ09ORklHX01URF9SRURCT09UX1BBUlRTPXkKK0NPTkZJR19NVERfUkVEQk9PVF9ESVJFQ1RPUllfQkxPQ0s9LTEKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1VOQUxMT0NBVEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CisjIENPTkZJR19NVERfQ0ZJX0kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSU5URUxFWFQgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfQU1EU1REPXkKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9VVElMPXkKK0NPTkZJR19NVERfUkFNPXkKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfWElQIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhZU01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfSU5QVVQgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9JTVg9eQorQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorQ09ORklHX0hBVkVfR1BJT19MSUI9eQorCisjCisjIEdQSU8gU3VwcG9ydAorIworCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworQ09ORklHX1BSSU5US19USU1FPXkKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKKyMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL214MzFsaXRla2l0X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbXgzMWxpdGVraXRfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNDFjNDEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL214MzFsaXRla2l0X2RlZmNvbmZpZwpAQCAtMCwwICsxLDExMDAgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgRnJpIEp1biAxMyAxNDoyMzozOSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CisjIENPTkZJR19HRU5FUklDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFMgaXMgbm90IHNldAorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TV0FQPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CisjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0lLQ09ORklHPXkKK0NPTkZJR19JS0NPTkZJR19QUk9DPXkKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKKyMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CitDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CitDT05GSUdfTU9EVkVSU0lPTlM9eQorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMz15CisKKyMKKyMgTVgzIE9wdGlvbnMKKyMKKyMgQ09ORklHX01BQ0hfTVgzMUFEUyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9NWDMxTElURT15CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9WNj15CisjIENPTkZJR19DUFVfMzJ2NksgaXMgbm90IHNldAorQ09ORklHX0NQVV8zMnY2PXkKK0NPTkZJR19DUFVfQUJSVF9FVjY9eQorQ09ORklHX0NQVV9QQUJSVF9OT0lGQVI9eQorQ09ORklHX0NQVV9DQUNIRV9WNj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJUFQ9eQorQ09ORklHX0NQVV9DT1BZX1Y2PXkKK0NPTkZJR19DUFVfVExCX1Y2PXkKK0NPTkZJR19DUFVfSEFTX0FTSUQ9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9CUFJFRElDVF9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX09VVEVSX0NBQ0hFIGlzIG5vdCBzZXQKKworIworIyBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorQ09ORklHX1BDQ0FSRD1tCisjIENPTkZJR19QQ01DSUFfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBIGlzIG5vdCBzZXQKKworIworIyBQQy1jYXJkIGJyaWRnZXMKKyMKKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CitDT05GSUdfUFJFRU1QVD15CisjIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJub2luaXRyZCBjb25zb2xlPXR0eW14YzAsMTE1MjAwIHJvb3Q9L2Rldi9tdGRibG9jazIgcncgaXA9b2ZmIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfVkZQPXkKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKK0NPTkZJR19CSU5GTVRfQU9VVD15CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUE09eQorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19BUE1fRU1VTEFUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CitDT05GSUdfWEZSTT15CisjIENPTkZJR19YRlJNX1VTRVIgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfSU5FVD15CisjIENPTkZJR19JUF9NVUxUSUNBU1QgaXMgbm90IHNldAorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CisjIENPTkZJR19JUF9QTlBfQk9PVFAgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD15CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9ESUFHPXkKK0NPTkZJR19JTkVUX1RDUF9ESUFHPXkKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CitDT05GSUdfRldfTE9BREVSPW0KKyMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKK0NPTkZJR19NVERfUkVEQk9PVF9QQVJUUz15CitDT05GSUdfTVREX1JFREJPT1RfRElSRUNUT1JZX0JMT0NLPS0xCisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19VTkFMTE9DQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUU19SRUFET05MWSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CitDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUz15CitDT05GSUdfTVREX0NGSV9OT1NXQVA9eQorIyBDT05GSUdfTVREX0NGSV9CRV9CWVRFX1NXQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9MRV9CWVRFX1NXQVAgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfR0VPTUVUUlk9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzEgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorIyBDT05GSUdfTVREX0NGSV9JMiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0FNRFNURD15CisjIENPTkZJR19NVERfQ0ZJX1NUQUEgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfVVRJTD15CitDT05GSUdfTVREX1JBTT15CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1hJUCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIWVNNQVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkQ9eQorIyBDT05GSUdfTVREX05BTkRfVkVSSUZZX1dSSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0VDQ19TTUMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfSURTPXkKKyMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCitDT05GSUdfSU5QVVRfS0VZQk9BUkQ9eQorIyBDT05GSUdfS0VZQk9BUkRfQVRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1VOS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX0xLS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1hUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX05FV1RPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVE9XQVdBWSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1VOSVg5OF9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CitDT05GSUdfSFdfUkFORE9NPXkKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfV0FUQ0hET0c9eQorQ09ORklHX1dBVENIRE9HX05PV0FZT1VUPXkKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCitDT05GSUdfVklERU9fREVWPXkKK0NPTkZJR19WSURFT19WNEwyX0NPTU1PTj15CitDT05GSUdfVklERU9fQUxMT1dfVjRMMT15CitDT05GSUdfVklERU9fVjRMMV9DT01QQVQ9eQorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPXkKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fVjRMMj15CitDT05GSUdfVklERU9fVjRMMT15CitDT05GSUdfVklERU9fQ0FQVFVSRV9EUklWRVJTPXkKKyMgQ09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fSEVMUEVSX0NISVBTX0FVVE89eQorIyBDT05GSUdfVklERU9fVklWSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19DUElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX0NQSUEyIGlzIG5vdCBzZXQKK0NPTkZJR19WNExfVVNCX0RSSVZFUlM9eQorIyBDT05GSUdfVVNCX1ZJQ0FNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JQk1DQU0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tPTklDQVdDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9RVUlDS0NBTV9NRVNTRU5HRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VUNjFYMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVjUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0U0MDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NOOUMxMDIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUVjY4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkMwMzAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QV0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pSMzY0WFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUS1dFQkNBTSBpcyBub3Qgc2V0CisjIENPTkZJR19TT0NfQ0FNRVJBIGlzIG5vdCBzZXQKK0NPTkZJR19SQURJT19BREFQVEVSUz15CisjIENPTkZJR19VU0JfRFNCUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0k0NzBYIGlzIG5vdCBzZXQKK0NPTkZJR19EQUI9eQorIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NT0RFX0hFTFBFUlMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKKworIworIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAorQ09ORklHX0ZPTlRfOHg4PXkKK0NPTkZJR19GT05UXzh4MTY9eQorQ09ORklHX0xPR089eQorIyBDT05GSUdfTE9HT19MSU5VWF9NT05PIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPR09fTElOVVhfVkdBMTYgaXMgbm90IHNldAorQ09ORklHX0xPR09fTElOVVhfQ0xVVDIyND15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKKyMgQ09ORklHX1VTQl9ERVZJQ0VGUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworIyBDT05GSUdfVVNCX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfU1VNTUFSWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9DT01QUkVTU0lPTl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9aTElCPXkKKyMgQ09ORklHX0pGRlMyX0xaTyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfUlRJTUU9eQorIyBDT05GSUdfSkZGUzJfUlVCSU4gaXMgbm90IHNldAorQ09ORklHX0NSQU1GUz15CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworQ09ORklHX1BSSU5US19USU1FPXkKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKK0NPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CisjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUFJFRU1QVD15CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfQ0NJVFQ9bQorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9uZXR4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvbmV0eF9kZWZjb25maWcKaW5kZXggNTdmMzJmMy4uMDg4NGYyMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9uZXR4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL25ldHhfZGVmY29uZmlnCkBAIC0xNTQsNyArMTU0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL29uZWFybV9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL29uZWFybV9kZWZjb25maWcKaW5kZXggNjUwYTI0OC4uNDE4Y2EyZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9vbmVhcm1fZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvb25lYXJtX2RlZmNvbmZpZwpAQCAtMjAyLDcgKzIwMiw2IEBACiAjIEtlcm5lbCBGZWF0dXJlcwogIwogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy9vcmlvbjV4X2RlZmNvbmZpZwppbmRleCA1MmNkOTliLi45NTc4YjVkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL29yaW9uNXhfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvb3Jpb241eF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKLSMgVGh1IEZlYiAgNyAxNDoxMDozMCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIE1vbiBKdW4gIDIgMjM6NTQ6NDggMjAwOAogIwogQ09ORklHX0FSTT15CiBDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQpAQCAtMjEsNiArMjEsNyBAQAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQogQ09ORklHX1pPTkVfRE1BPXkKIENPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAogQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKQEAgLTQwLDI0ICs0MSwyNCBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CiBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1VJRDE2PXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKK0NPTkZJR19LQUxMU1lNU19BTEw9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTczLDIwICs3NCwyNSBAQAogQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15Ci1DT05GSUdfU0xBQj15Ci0jIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CiAjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKICMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKLSMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15Ci1DT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTExMSw3ICsxMTcsNiBAQAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKIENPTkZJR19DTEFTU0lDX1JDVT15Ci0jIENPTkZJR19QUkVFTVBUX1JDVSBpcyBub3Qgc2V0CiAKICMKICMgU3lzdGVtIFR5cGUKQEAgLTE2MCw2ICsxNjUsMTUgQEAKIENPTkZJR19NQUNIX0tVUk9CT1hfUFJPPXkKIENPTkZJR19NQUNIX0ROUzMyMz15CiBDT05GSUdfTUFDSF9UUzIwOT15CitDT05GSUdfTUFDSF9MSU5LU1RBVElPTl9QUk89eQorQ09ORklHX01BQ0hfVFM0MDk9eQorQ09ORklHX01BQ0hfV1JUMzUwTl9WMj15CitDT05GSUdfTUFDSF9UUzc4WFg9eQorQ09ORklHX01BQ0hfTVYyMTIwPXkKK0NPTkZJR19NQUNIX01TUzI9eQorQ09ORklHX01BQ0hfV05SODU0VD15CitDT05GSUdfTUFDSF9SRDg4RjUxODFMX0dFPXkKK0NPTkZJR19NQUNIX1JEODhGNTE4MUxfRlhPPXkKIAogIwogIyBCb290IG9wdGlvbnMKQEAgLTE2OCw2ICsxODIsNyBAQAogIwogIyBQb3dlciBtYW5hZ2VtZW50CiAjCitDT05GSUdfUExBVF9PUklPTj15CiAKICMKICMgUHJvY2Vzc29yIFR5cGUKQEAgLTE3Nyw4ICsxOTIsOSBAQAogQ09ORklHX0NQVV9GRVJPQ0VPTl9PTERfSUQ9eQogQ09ORklHX0NQVV8zMnY1PXkKIENPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKIENPTkZJR19DUFVfQ0FDSEVfVklWVD15Ci1DT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX0NPUFlfRkVST0NFT049eQogQ09ORklHX0NQVV9UTEJfVjRXQkk9eQogQ09ORklHX0NQVV9DUDE1PXkKIENPTkZJR19DUFVfQ1AxNV9NTVU9eQpAQCAtMTg5LDcgKzIwNSw2IEBACiBDT05GSUdfQVJNX1RIVU1CPXkKICMgQ09ORklHX0NQVV9JQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRENBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAogIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAogCiAjCkBAIC0xOTksNiArMjE0LDcgQEAKIENPTkZJR19QQ0lfU1lTQ0FMTD15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtMjIxLDYgKzIzNyw3IEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKQEAgLTIzOCw3ICsyNTUsNiBAQAogQ09ORklHX0NNRExJTkU9IiIKICMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotIyBDT05GSUdfQVRBR1NfUFJPQyBpcyBub3Qgc2V0CiAKICMKICMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCkBAIC0zMTEsOCArMzI3LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTMzNSw2ICszNDksNyBAQAogIyBOZXR3b3JrIHRlc3RpbmcKICMKIENPTkZJR19ORVRfUEtUR0VOPW0KKyMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CkBAIC0zNjIsNiArMzc3LDggQEAKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogQ09ORklHX01URD15CkBAIC0zNzEsNiArMzg4LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC0zNzgsOSArMzk2LDggQEAKIENPTkZJR19NVERfQ0hBUj15CiBDT05GSUdfTVREX0JMS0RFVlM9eQogQ09ORklHX01URF9CTE9DSz15Ci1DT05GSUdfRlRMPXkKLUNPTkZJR19ORlRMPXkKLSMgQ09ORklHX05GVExfUlcgaXMgbm90IHNldAorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAogIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAogIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CkBAIC00MDUsMTIgKzQyMiwxMiBAQAogIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ0ZJX0kxPXkKIENPTkZJR19NVERfQ0ZJX0kyPXkKLUNPTkZJR19NVERfQ0ZJX0k0PXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKIENPTkZJR19NVERfQ0ZJX0FNRFNURD15Ci1DT05GSUdfTVREX0NGSV9TVEFBPXkKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NGSV9VVElMPXkKICMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAogIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CkBAIC00ODEsNiArNDk4LDkgQEAKICMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0CiAjIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCiAjIFNDU0kgZGV2aWNlIHN1cHBvcnQKQEAgLTU0Miw2ICs1NjIsNyBAQAogIyBDT05GSUdfU0NTSV9JUFMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTklUSU8gaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JTklBMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTVZTQVMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldApAQCAtNTU2LDcgKzU3NywxMCBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX01WPXkKQEAgLTU2Niw3ICs1OTAsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldApAQCAtNjExLDYgKzYzNCw3IEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCkBAIC02NTIsNyArNjc2LDcgQEAKICMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiAjIENPTkZJR19GT1JDRURFVEggaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAotQ09ORklHX0UxMDA9eQorIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAogIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0CkBAIC02NjgsOSArNjkyLDcgQEAKIENPTkZJR19ORVRERVZfMTAwMD15CiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0Ci1DT05GSUdfRTEwMDA9eQotQ09ORklHX0UxMDAwX05BUEk9eQotIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDAgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKICMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CkBAIC02ODAsMjcgKzcwMiwxNSBAQAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKICMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0Ci1DT05GSUdfU0tHRT15Ci1DT05GSUdfU0tZMj15Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NLR0UgaXMgbm90IHNldAorIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAotQ09ORklHX1RJR09OMz15CisjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CiBDT05GSUdfTVY2NDNYWF9FVEg9eQogIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKLUNPTkZJR19ORVRERVZfMTAwMDA9eQotIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lYR0IgaXMgbm90IHNldAotIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX05JVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTcwOCw2ICs3MTgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTczOCwxMiArNzQ5LDkgQEAKICMKICMgVXNlcmxhbmQgaW50ZXJmYWNlcwogIwotQ09ORklHX0lOUFVUX01PVVNFREVWPXkKLUNPTkZJR19JTlBVVF9NT1VTRURFVl9QU0FVWD15Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAotQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAorIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9FVkRFVj15CiAjIENPTkZJR19JTlBVVF9FVkJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTc2NSwxMCArNzczLDggQEAKICMKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKLUNPTkZJR19WVD15Ci1DT05GSUdfVlRfQ09OU09MRT15Ci1DT05GSUdfSFdfQ09OU09MRT15Ci0jIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTc3Nyw3ICs3ODMsNyBAQAogIwogQ09ORklHX1NFUklBTF84MjUwPXkKIENPTkZJR19TRVJJQUxfODI1MF9DT05TT0xFPXkKLUNPTkZJR19TRVJJQUxfODI1MF9QQ0k9eQorIyBDT05GSUdfU0VSSUFMXzgyNTBfUENJIGlzIG5vdCBzZXQKIENPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CiBDT05GSUdfU0VSSUFMXzgyNTBfUlVOVElNRV9VQVJUUz0yCiAjIENPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRCBpcyBub3Qgc2V0CkBAIC03OTIsNyArNzk4LDcgQEAKIENPTkZJR19MRUdBQ1lfUFRZUz15CiBDT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0xNgogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKLUNPTkZJR19IV19SQU5ET009bQorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKQEAgLTgwNCwxMyArODEwLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTgzNyw2ICs4MzYsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogQ09ORklHX0kyQ19NVjY0WFhYPXkKIAogIwpAQCAtODQ3LDE5ICs4NDcsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTg3Miw2ICs4NjYsNyBAQAogIyBDT05GSUdfU0VOU09SU19BRE0xMDMxIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfQURNOTI0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0FEVDc0NzAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFQ3NDczIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfQVRYUDEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19EUzE2MjEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19JNUtfQU1CIGlzIG5vdCBzZXQKQEAgLTkwMSw2ICs4OTYsNyBAQAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19TTVNDNDdCMzk3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURTNzgyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RITUM1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1ZJQTY4NkEgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19WVDEyMTEgaXMgbm90IHNldApAQCAtOTEwLDYgKzkwNiw3IEBACiAjIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODNMNzg2TkcgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTl9ERUJVR19DSElQIGlzIG5vdCBzZXQKQEAgLTkyNSwxNCArOTIyLDI0IEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0Ci1DT05GSUdfREFCPXkKLSMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CkBAIC05NDksMTIgKzk1Niw2IEBACiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCi0jIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAotIwotIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAotQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQotCi0jCiAjIFNvdW5kCiAjCiAjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CkBAIC05ODUsMTQgKzk4NiwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRD15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CkBAIC0xMDAzLDYgKzEwMDgsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1BSSU5URVI9eQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTAyMiw3ICsxMDI4LDkgQEAKIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTU9eQogQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UPXkKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjAsNiArMTA2OCw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogQ09ORklHX05FV19MRURTPXkKQEAgLTEwNjgsNyArMTA3Nyw3IEBACiAjCiAjIExFRCBkcml2ZXJzCiAjCi0jIENPTkZJR19MRURTX0dQSU8gaXMgbm90IHNldAorQ09ORklHX0xFRFNfR1BJTz15CiAKICMKICMgTEVEIFRyaWdnZXJzCkBAIC0xMDc2LDYgKzEwODUsNyBAQAogQ09ORklHX0xFRFNfVFJJR0dFUlM9eQogQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUj15CiBDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CitDT05GSUdfTEVEU19UUklHR0VSX0RFRkFVTFRfT049eQogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtMTEwNSw2ICsxMTE1LDcgQEAKICMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0RSVl9NNDFUODA9eQogIyBDT05GSUdfUlRDX0RSVl9NNDFUODBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CiAKICMKICMgU1BJIFJUQyBkcml2ZXJzCkBAIC0xMTI1LDYgKzExMzYsNyBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC0xMTQwLDE0ICsxMTUyLDExIEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CkBAIC0xMTU1LDggKzExNjQsOCBAQAogIwogIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCiAjCi1DT05GSUdfSVNPOTY2MF9GUz15Ci0jIENPTkZJR19KT0xJRVQgaXMgbm90IHNldAorQ09ORklHX0lTTzk2NjBfRlM9bQorQ09ORklHX0pPTElFVD15CiAjIENPTkZJR19aSVNPRlMgaXMgbm90IHNldAogQ09ORklHX1VERl9GUz1tCiBDT05GSUdfVURGX05MUz15CkBAIC0xMjA1LDggKzEyMTQsMTAgQEAKICMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKIENPTkZJR19DUkFNRlM9eQogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CkBAIC0xMjE0LDcgKzEyMjUsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEyNDEsMTQgKzEyNTEsMTMgQEAKICMgQ09ORklHX01BQ19QQVJUSVRJT04gaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15CiBDT05GSUdfQlNEX0RJU0tMQUJFTD15Ci1DT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKLUNPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQotQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15Ci1DT05GSUdfTERNX1BBUlRJVElPTj15Ci1DT05GSUdfTERNX0RFQlVHPXkKKyMgQ09ORklHX01JTklYX1NVQlBBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0dJX1BBUlRJVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19VTFRSSVhfUEFSVElUSU9OIGlzIG5vdCBzZXQKLUNPTkZJR19TVU5fUEFSVElUSU9OPXkKKyMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU1lTVjY4X1BBUlRJVElPTiBpcyBub3Qgc2V0CkBAIC0xMzAwLDE1ICsxMzA5LDQ4IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQotIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAorQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKK0NPTkZJR19TQ0hFRF9ERUJVRz15CitDT05GSUdfU0NIRURTVEFUUz15CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19QUkVFTVBUPXkKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19JTkZPPXkKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiBDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfVVNFUj15CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MTD15CisjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKQEAgLTEzMTcsNTAgKzEzNTksNzkgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9bQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPW0KLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldApAQCAtMTM2OSwxMiArMTQ0MCwxNCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15Ci1DT05GSUdfQ1JDX0NDSVRUPXkKLUNPTkZJR19DUkMxNj15Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfSVRVX1Q9bQogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAotQ09ORklHX0xJQkNSQzMyQz15CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAogQ09ORklHX1pMSUJfSU5GTEFURT15CiBDT05GSUdfWkxJQl9ERUZMQVRFPXkKIENPTkZJR19QTElTVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3BjbTAzN19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzN19kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI3NDc0NQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGNtMDM3X2RlZmNvbmZpZwpAQCAtMCwwICsxLDc0OCBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNgorIyBXZWQgSnVuIDI1IDExOjUyOjQyIDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUPXkKK0NPTkZJR19aT05FX0RNQT15CitDT05GSUdfQVJDSF9NVERfWElQPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCitDT05GSUdfTE9DQUxWRVJTSU9OPSIiCitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CitDT05GSUdfSUtDT05GSUc9eQorQ09ORklHX0lLQ09ORklHX1BST0M9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19DT01QQVRfQlJLPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQorQ09ORklHX1JUX01VVEVYRVM9eQorIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CitDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CitDT05GSUdfTU9EVkVSU0lPTlM9eQorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQorQ09ORklHX0lPU0NIRURfQ0ZRPXkKKyMgQ09ORklHX0RFRkFVTFRfQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9ERUFETElORSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMz15CisKKyMKKyMgTVgzIE9wdGlvbnMKKyMKKyMgQ09ORklHX01BQ0hfTVgzMUFEUyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9QQ00wMzc9eQorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfVjY9eQorIyBDT05GSUdfQ1BVXzMydjZLIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfMzJ2Nj15CitDT05GSUdfQ1BVX0FCUlRfRVY2PXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVjY9eQorQ09ORklHX0NQVV9DQUNIRV9WSVBUPXkKK0NPTkZJR19DUFVfQ09QWV9WNj15CitDT05GSUdfQ1BVX1RMQl9WNj15CitDT05GSUdfQ1BVX0hBU19BU0lEPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKK0NPTkZJR19BUk1fVEhVTUI9eQorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQlBSRURJQ1RfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJub2luaXRyZCBjb25zb2xlPXR0eW14YzAsMTE1MjAwIHJvb3Q9L2Rldi9tdGRibG9jazIgcncgaXA9b2ZmIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfVkZQPXkKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKKyMgQ09ORklHX1BNIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKKyMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworQ09ORklHX01URF9DRkk9eQorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9HRU5fUFJPQkU9eQorIyBDT05GSUdfTVREX0NGSV9BRFZfT1BUSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX05PU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0lOVEVMRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorQ09ORklHX01URF9QSFlTTUFQPXkKK0NPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDAKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0yCisjIENPTkZJR19NVERfQVJNX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQorIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorQ09ORklHX1NNQzkxWD15CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0lOUFVUIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKworIworIyBTZXJpYWwgZHJpdmVycworIworIyBDT05GSUdfU0VSSUFMXzgyNTAgaXMgbm90IHNldAorCisjCisjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKKyMKK0NPTkZJR19TRVJJQUxfSU1YPXkKK0NPTkZJR19TRVJJQUxfSU1YX0NPTlNPTEU9eQorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CisjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkMgaXMgbm90IHNldAorIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisKKyMKKyMgU1BJIEdQSU8gZXhwYW5kZXJzOgorIworIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCisjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX01TRE9TX1BBUlRJVElPTj15CisjIENPTkZJR19OTFMgaXMgbm90IHNldAorIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CisjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfVVNFUiBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE8gaXMgbm90IHNldAorCisjCisjIExpYnJhcnkgcm91dGluZXMKKyMKK0NPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3BjbTAzOF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3BjbTAzOF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI3OThjMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGNtMDM4X2RlZmNvbmZpZwpAQCAtMCwwICsxLDEwMDggQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzYKKyMgRnJpIEp1biAyMCAxNjozODozNiAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX0FSQ0hfTVREX1hJUD15CitDT05GSUdfVkVDVE9SU19CQVNFPTB4ZmZmZjAwMDAKK0NPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCisKKyMKKyMgR2VuZXJhbCBzZXR1cAorIworQ09ORklHX0VYUEVSSU1FTlRBTD15CitDT05GSUdfQlJPS0VOX09OX1NNUD15CitDT05GSUdfTE9DS19LRVJORUw9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKK0NPTkZJR19QT1NJWF9NUVVFVUU9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CisjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19SVF9HUk9VUF9TQ0hFRD15CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMiBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CitDT05GSUdfTUFSS0VSUz15CitDT05GSUdfT1BST0ZJTEU9eQorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0NfUEFHRV9NT05JVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tNT0QgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CisjIENPTkZJR19JT1NDSEVEX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX05PT1A9eQorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0ibm9vcCIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NWEM9eQorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1MzQzI0MTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TSEFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01TTTdYMDBBIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgRnJlZXNjYWxlIE1YQyBJbXBsZW1lbnRhdGlvbnMKKyMKK0NPTkZJR19BUkNIX01YMj15CisjIENPTkZJR19BUkNIX01YMyBpcyBub3Qgc2V0CisKKyMKKyMgTVgyIGZhbWlseSBDUFUgc3VwcG9ydAorIworQ09ORklHX01BQ0hfTVgyNz15CisKKyMKKyMgTVgyIFBsYXRmb3JtcworIworIyBDT05GSUdfTUFDSF9NWDI3QURTIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1BDTTAzOD15CitDT05GSUdfTUFDSF9QQ005NzBfQkFTRUJPQVJEPXkKKworIworIyBQcm9jZXNzb3IgVHlwZQorIworQ09ORklHX0NQVV8zMj15CitDT05GSUdfQ1BVX0FSTTkyNlQ9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUSj15CitDT05GSUdfQ1BVX1BBQlJUX05PSUZBUj15CitDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQorQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQorQ09ORklHX0NQVV9UTEJfVjRXQkk9eQorQ09ORklHX0NQVV9DUDE1PXkKK0NPTkZJR19DUFVfQ1AxNV9NTVU9eQorCisjCisjIFByb2Nlc3NvciBGZWF0dXJlcworIworQ09ORklHX0FSTV9USFVNQj15CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKK0NPTkZJR19QUkVFTVBUPXkKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CisjIENPTkZJR19PQUJJX0NPTVBBVCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CitDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgorIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKK0NPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSIiCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKKyMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcnNwYWNlIGJpbmFyeSBmb3JtYXRzCisjCitDT05GSUdfQklORk1UX0VMRj15CisjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCisjCisjIENPTkZJR19QTSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAorIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKK0NPTkZJR19GV19MT0FERVI9eQorIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAorIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19NVEQ9eQorIyBDT05GSUdfTVREX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DT05DQVQgaXMgbm90IHNldAorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKK0NPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TPXkKK0NPTkZJR19NVERfQ0ZJX05PU1dBUD15CisjIENPTkZJR19NVERfQ0ZJX0JFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0xFX0JZVEVfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9HRU9NRVRSWT15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CisjIENPTkZJR19NVERfQ0ZJX0kyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT1RQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0lOVEVMRVhUPXkKKyMgQ09ORklHX01URF9DRklfQU1EU1REIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9VVElMPXkKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9YSVAgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX01URF9QSFlTTUFQX0xFTj0weDAKK0NPTkZJR19NVERfUEhZU01BUF9CQU5LV0lEVEg9MgorIyBDT05GSUdfTVREX0FSTV9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9EQVRBRkxBU0ggaXMgbm90IHNldAorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09ORU5BTkQgaXMgbm90IHNldAorCisjCisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcworIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX0JMS19ERVZfQ09XX0NPTU1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RNQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VUSEVSTkVUPXkKKyMgQ09ORklHX01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRU5DMjhKNjAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfRkVDX09MRD15CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzIExBTgorIworIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVNETiBpcyBub3Qgc2V0CisKKyMKKyMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKKyMKK0NPTkZJR19JTlBVVD15CisjIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorCisjCisjIFVzZXJsYW5kIGludGVyZmFjZXMKKyMKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAorCisjCisjIElucHV0IERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0FEUzc4NDYgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRlVKSVRTVSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9HVU5aRSBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9FTE8gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01LNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1BFTk1PVU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIUklHSFQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hXSU4gaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVUNCMTQwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9JTVg9eQorQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorQ09ORklHX1VOSVg5OF9QVFlTPXkKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKK0NPTkZJR19JMkM9eQorQ09ORklHX0kyQ19CT0FSRElORk89eQorIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAorCisjCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAorIworIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19TUEk9eQorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0JJVEJBTkc9eQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX01DUDIzUzA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01GRF9BU0lDMyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfRUdQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKK0NPTkZJR19WSURFT19ERVY9eQorQ09ORklHX1ZJREVPX1Y0TDJfQ09NTU9OPXkKK0NPTkZJR19WSURFT19BTExPV19WNEwxPXkKK0NPTkZJR19WSURFT19WNEwxX0NPTVBBVD15CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fTUVESUE9eQorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfTUVESUFfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUj15CisjIENPTkZJR19NRURJQV9UVU5FUl9DVVNUT01JWkUgaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT15CitDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD15CitDT05GSUdfTUVESUFfVFVORVJfVERBOTg4Nz15CitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2MT15CitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2Nz15CitDT05GSUdfTUVESUFfVFVORVJfTVQyMFhYPXkKK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9eQorQ09ORklHX01FRElBX1RVTkVSX1hDNTAwMD15CitDT05GSUdfVklERU9fVjRMMj15CitDT05GSUdfVklERU9fVjRMMT15CitDT05GSUdfVklERU9fQ0FQVFVSRV9EUklWRVJTPXkKKyMgQ09ORklHX1ZJREVPX0FEVl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fSEVMUEVSX0NISVBTX0FVVE89eQorIyBDT05GSUdfVklERU9fVklWSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19DUElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX1NBQTUyNDZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX1NBQTUyNDkgaXMgbm90IHNldAorIyBDT05GSUdfVFVORVJfMzAzNiBpcyBub3Qgc2V0CisjIENPTkZJR19TT0NfQ0FNRVJBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBRElPX0FEQVBURVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NGQl9GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NT0RFX0hFTFBFUlMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKKworIworIyBGcmFtZSBidWZmZXIgaGFyZHdhcmUgZHJpdmVycworIworIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CitDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAorQ09ORklHX0ZPTlRTPXkKK0NPTkZJR19GT05UXzh4OD15CisjIENPTkZJR19GT05UXzh4MTYgaXMgbm90IHNldAorIyBDT05GSUdfRk9OVF82eDExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfN3gxNCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1BFQVJMXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX0FDT1JOXzh4OCBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX01JTklfNHg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfU1VOOHgxNiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UX1NVTjEyeDIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZPTlRfMTB4MTggaXMgbm90IHNldAorIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKK0NPTkZJR19SVENfSENUT1NZUz15CitDT05GSUdfUlRDX0hDVE9TWVNfREVWSUNFPSJydGMwIgorIyBDT05GSUdfUlRDX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBSVEMgaW50ZXJmYWNlcworIworQ09ORklHX1JUQ19JTlRGX1NZU0ZTPXkKK0NPTkZJR19SVENfSU5URl9QUk9DPXkKK0NPTkZJR19SVENfSU5URl9ERVY9eQorIyBDT05GSUdfUlRDX0lOVEZfREVWX1VJRV9FTVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfSVNMMTIwOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1gxMjA1IGlzIG5vdCBzZXQKK0NPTkZJR19SVENfRFJWX1BDRjg1NjM9eQorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0ZNMzEzMCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CisKKyMKKyMgRmlsZSBzeXN0ZW1zCisjCisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PW0KKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorQ09ORklHX05MU19JU084ODU5XzE1PW0KKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9waWNvdHV4MjAwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcGljb3R1eDIwMF9kZWZjb25maWcKaW5kZXggOTVhMjJmNS4uMTQ4MjZmMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9waWNvdHV4MjAwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3BpY290dXgyMDBfZGVmY29uZmlnCkBAIC0yMDEsNyArMjAxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLUNPTkZJR19OT19JRExFX0haPXkKIENPTkZJR19IWj0xMDAKIENPTkZJR19BRUFCST15CiBDT05GSUdfT0FCSV9DT01QQVQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9wbng0MDA4X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcG54NDAwOF9kZWZjb25maWcKaW5kZXggYjVlMTFhYS4uODExYjhmNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9wbng0MDA4X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3BueDQwMDhfZGVmY29uZmlnCkBAIC0xNTEsNyArMTUxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3FpbC1hOTI2MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3FpbC1hOTI2MF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY5MDNiZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvcWlsLWE5MjYwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDEyNTYgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNAorIyBUdWUgQXByIDE1IDEyOjI4OjM4IDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKKyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CisjIENPTkZJR19JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0FTPXkKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxPXkKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBBdG1lbCBBVDkxIFN5c3RlbS1vbi1DaGlwCisjCisjIENPTkZJR19BUkNIX0FUOTFSTTkyMDAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjA9eQorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTkyNjAgVmFyaWFudHMKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjBfU0FNOVhFIGlzIG5vdCBzZXQKKworIworIyBBVDkxU0FNOTI2MCAvIEFUOTFTQU05WEUgQm9hcmQgVHlwZQorIworIyBDT05GSUdfTUFDSF9BVDkxU0FNOTI2MEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfQ0FNNjAgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9TQU05X0w5MjYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfVVNCX0E5MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1FJTF9BOTI2MD15CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisKKyMKKyMgQVQ5MSBGZWF0dXJlIFNlbGVjdGlvbnMKKyMKKyMgQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUyBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9TTE9XX0NMT0NLPXkKK0NPTkZJR19BVDkxX1RJTUVSX0haPTEwMAorIyBDT05GSUdfQVQ5MV9FQVJMWV9EQkdVIGlzIG5vdCBzZXQKK0NPTkZJR19BVDkxX0VBUkxZX1VTQVJUMD15CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMSBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMiBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNSBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKKyMgQ09ORklHX0FSTV9USFVNQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFogaXMgbm90IHNldAorIyBDT05GSUdfSElHSF9SRVNfVElNRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CisjIENPTkZJR19MRURTIGlzIG5vdCBzZXQKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5UzEsMTE1MjAwIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEggaXMgbm90IHNldAorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBfUkFSUD15CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworIyBDT05GSUdfTVREX0NGSSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01URF9EQVRBRkxBU0g9eQorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9BVDkxPXkKK0NPTkZJR19NVERfTkFORF9BVDkxX0VDQ19TT0ZUPXkKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX0hXIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElCPXkKKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKK0NPTkZJR19NQUNCPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CitDT05GSUdfTkVUREVWXzEwMDAwPXkKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorQ09ORklHX0lOUFVUX0VWQlVHPXkKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0dQSU89eQorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CitDT05GSUdfSTJDX0NIQVJERVY9eQorCisjCisjIEkyQyBBbGdvcml0aG1zCisjCisjIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0E5NTM5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAorCisjCisjIFNQSSBzdXBwb3J0CisjCitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQVRNRUw9eQorIyBDT05GSUdfU1BJX0JJVEJBTkcgaXMgbm90IHNldAorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1cxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CisjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfV0FUQ0hET0c9eQorQ09ORklHX1dBVENIRE9HX05PV0FZT1VUPXkKKworIworIyBXYXRjaGRvZyBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfU09GVF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxU0FNOV9XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworIyBDT05GSUdfVVNCX0hJRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CitDT05GSUdfTU1DPXkKKyMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIENhcmQgRHJpdmVycworIworQ09ORklHX01NQ19CTE9DSz15CitDT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15CisjIENPTkZJR19TRElPX1VBUlQgaXMgbm90IHNldAorCisjCisjIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX01NQ19BVDkxPXkKKyMgQ09ORklHX01NQ19TUEkgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKworIworIyBTUEkgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfTTQxVDk0PXkKKworIworIyBQbGF0Zm9ybSBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9DTU9TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0FUOTFTQU05IGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorQ09ORklHX0ZVU0VfRlM9bQorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorQ09ORklHX05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND15CisjIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9TVVBQT1JUPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorQ09ORklHX1NVTlJQQ19HU1M9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PXkKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisjIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXctc21wX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcmVhbHZpZXctc21wX2RlZmNvbmZpZwppbmRleCBmYzM5YmExLi4wYzA5YjIzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3LXNtcF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlldy1zbXBfZGVmY29uZmlnCkBAIC0xNzcsNyArMTc3LDYgQEAKIENPTkZJR19IT1RQTFVHX0NQVT15CiBDT05GSUdfTE9DQUxfVElNRVJTPXkKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MTAwCiAjIENPTkZJR19BRUFCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9yZWFsdmlld19kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZwppbmRleCBhY2NiZjUyLi45MDdlNTQzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3JlYWx2aWV3X2RlZmNvbmZpZwpAQCAtMTI2LDcgKzEyNiw2IEBACiAjCiAjIEtlcm5lbCBGZWF0dXJlcwogIwotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvcnBjX2RlZmNvbmZpZwppbmRleCA1ZGRlY2I5Li5mNjJkMTgxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3JwY19kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9ycGNfZGVmY29uZmlnCkBAIC0xOTAsNyArMTkwLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvczNjMjQxMF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3MzYzI0MTBfZGVmY29uZmlnCmluZGV4IGY4YTE2NDUuLjM1ZmFhZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvczNjMjQxMF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy9zM2MyNDEwX2RlZmNvbmZpZwpAQCAtMSwxNSArMSwxOCBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIxLXJjNgotIyBNb24gQXByICA5IDEwOjEyOjU4IDIwMDcKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzgKKyMgTW9uIEp1bCAgNyAxNjo1OToyMyAyMDA4CiAjCiBDT05GSUdfQVJNPXkKIENPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CiBDT05GSUdfR0VORVJJQ19HUElPPXkKICMgQ09ORklHX0dFTkVSSUNfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTIGlzIG5vdCBzZXQKIENPTkZJR19NTVU9eQogQ09ORklHX05PX0lPUE9SVD15CiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQogQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CiBDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQpAQCAtMTgsMzQgKzIxLDM5IEBACiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CiBDT05GSUdfWk9ORV9ETUE9eQogQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCiBDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgogCiAjCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucworIyBHZW5lcmFsIHNldHVwCiAjCiBDT05GSUdfRVhQRVJJTUVOVEFMPXkKIENPTkZJR19CUk9LRU5fT05fU01QPXkKIENPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCiBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQotIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19JS0NPTkZJRz1tCitDT05GSUdfSUtDT05GSUdfUFJPQz15CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNgorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CitDT05GSUdfTkFNRVNQQUNFUz15CisjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAorIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKQEAgLTUzLDYgKzYxLDcgQEAKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19VSUQxNj15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC02MCwzNCArNjksNDMgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKIENPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKLUNPTkZJR19TTEFCPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotCi0jCi0jIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0Ci0jCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CiBDT05GSUdfS01PRD15Ci0KLSMKLSMgQmxvY2sgbGF5ZXIKLSMKIENPTkZJR19CTE9DSz15CiAjIENPTkZJR19MQkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CiAjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAogCiAjCiAjIElPIFNjaGVkdWxlcnMKQEAgLTEwMSw2ICsxMTksNyBAQAogIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgU3lzdGVtIFR5cGUKQEAgLTExOSwxNCArMTM4LDE3IEBACiAjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAotIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1BYQSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1JQQyBpcyBub3Qgc2V0CkBAIC0xMzQsMTggKzE1NiwzMiBAQAogQ09ORklHX0FSQ0hfUzNDMjQxMD15CiAjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAogQ09ORklHX1BMQVRfUzNDMjRYWD15CiBDT05GSUdfQ1BVX1MzQzI0NFg9eQorIyBDT05GSUdfUzNDMjRYWF9QV00gaXMgbm90IHNldAogQ09ORklHX1BNX1NJTVRFQz15Ci0jIENPTkZJR19TM0NfQk9PVF9XQVRDSERPRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TM0NfQk9PVF9FUlJPUl9SRVNFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TM0MyNDEwX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MzQzI0MTBfUE1fQ0hFQ0sgaXMgbm90IHNldAotQ09ORklHX1MzQ19MT1dMRVZFTF9VQVJUX1BPUlQ9MAogQ09ORklHX1MzQzI0MTBfRE1BPXkKICMgQ09ORklHX1MzQzI0MTBfRE1BX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1NNREs9eQorQ09ORklHX1BMQVRfUzNDPXkKK0NPTkZJR19DUFVfTExTRVJJQUxfUzNDMjQxMD15CitDT05GSUdfQ1BVX0xMU0VSSUFMX1MzQzI0NDA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworIyBDT05GSUdfUzNDX0JPT1RfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfUzNDX0JPT1RfRVJST1JfUkVTRVQgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKyMgQ09ORklHX1MzQzI0MTBfUE1fREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUzNDMjQxMF9QTV9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfUzNDX0xPV0xFVkVMX1VBUlRfUE9SVD0wCiAKICMKICMgUzNDMjQwMCBNYWNoaW5lcwpAQCAtMTU1LDYgKzE5MSw4IEBACiBDT05GSUdfUzNDMjQxMF9QTT15CiBDT05GSUdfUzNDMjQxMF9HUElPPXkKIENPTkZJR19TM0MyNDEwX0NMT0NLPXkKK0NPTkZJR19TSU1URUNfTk9SPXkKK0NPTkZJR19NQUNIX0JBU1RfSURFPXkKIAogIwogIyBTM0MyNDEwIE1hY2hpbmVzCkBAIC0xNjcsNiArMjA1LDcgQEAKIENPTkZJR19NQUNIX09UT009eQogQ09ORklHX01BQ0hfQU1MX001OTAwPXkKIENPTkZJR19CQVNUX1BDMTA0X0lSUT15CisjIENPTkZJR19NQUNIX1RDVF9IQU1NRVIgaXMgbm90IHNldAogQ09ORklHX01BQ0hfVlIxMDAwPXkKIENPTkZJR19NQUNIX1FUMjQxMD15CiBDT05GSUdfQ1BVX1MzQzI0MTI9eQpAQCAtMTc2LDggKzIxNSwxMCBAQAogIwogIyBTM0MyNDEyIE1hY2hpbmVzCiAjCisjIENPTkZJR19NQUNIX0pJVkUgaXMgbm90IHNldAogQ09ORklHX01BQ0hfU01ESzI0MTM9eQogQ09ORklHX01BQ0hfUzNDMjQxMz15CisjIENPTkZJR19NQUNIX1NNREsyNDEyIGlzIG5vdCBzZXQKIENPTkZJR19NQUNIX1ZTVE1TPXkKIENPTkZJR19DUFVfUzNDMjQ0MD15CiBDT05GSUdfUzNDMjQ0MF9ETUE9eQpAQCAtMTkxLDYgKzIzMiw3IEBACiBDT05GSUdfQVJDSF9TM0MyNDQwPXkKIENPTkZJR19NQUNIX05FWENPREVSXzI0NDA9eQogQ09ORklHX1NNREsyNDQwX0NQVTI0NDA9eQorIyBDT05GSUdfTUFDSF9BVDI0NDBFVkIgaXMgbm90IHNldAogQ09ORklHX0NQVV9TM0MyNDQyPXkKIAogIwpAQCAtMjE1LDYgKzI1Nyw3IEBACiBDT05GSUdfQ1BVXzMydjU9eQogQ09ORklHX0NQVV9BQlJUX0VWNFQ9eQogQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKIENPTkZJR19DUFVfQ0FDSEVfVjRXVD15CiBDT05GSUdfQ1BVX0NBQ0hFX1ZJVlQ9eQogQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQpAQCAtMjM2LDE3ICsyNzksMTUgQEAKICMgQnVzIHN1cHBvcnQKICMKIENPTkZJR19JU0E9eQotCi0jCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKLSMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAKICMKICMgS2VybmVsIEZlYXR1cmVzCiAjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0yMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CkBAIC0yNTcsOSArMjk4LDEzIEBACiBDT05GSUdfRkxBVE1FTT15CiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NDA5NgogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKK0NPTkZJR19CT1VOQ0U9eQorQ09ORklHX1ZJUlRfVE9fQlVTPXkKIENPTkZJR19BTElHTk1FTlRfVFJBUD15CiAKICMKQEAgLTI3OSw3ICszMjQsNyBAQAogIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKICMKIENPTkZJR19GUEVfTldGUEU9eQotIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKK0NPTkZJR19GUEVfTldGUEVfWFA9eQogIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAogIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKIApAQCAtMjk1LDEwICszNDAsMTIgQEAKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCiBDT05GSUdfUE09eQotIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BNX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAotIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CitDT05GSUdfQVBNX0VNVUxBVElPTj1tCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDgsNTkgKzM1NSw2NyBAQAogIwogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKLSMgQ09ORklHX05FVERFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BBQ0tFVCBpcyBub3Qgc2V0CitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKIENPTkZJR19VTklYPXkKIENPTkZJR19YRlJNPXkKICMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKLSMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVVMVElDQVNUPXkKICMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CiBDT05GSUdfSVBfRklCX0hBU0g9eQogQ09ORklHX0lQX1BOUD15Ci0jIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0RIQ1A9eQogQ09ORklHX0lQX1BOUF9CT09UUD15CiAjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSUEQgaXMgbm90IHNldAogIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX1RVTk5FTD1tCiBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUPXkKIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQogQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQ9eQorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CitDT05GSUdfSVBWNj1tCitDT05GSUdfSVBWNl9QUklWQUNZPXkKK0NPTkZJR19JUFY2X1JPVVRFUl9QUkVGPXkKKyMgQ09ORklHX0lQVjZfUk9VVEVfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUNl9BSD1tCitDT05GSUdfSU5FVDZfRVNQPW0KK0NPTkZJR19JTkVUNl9JUENPTVA9bQorQ09ORklHX0lQVjZfTUlQNj1tCitDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUw9bQorQ09ORklHX0lORVQ2X1RVTk5FTD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RSQU5TUE9SVD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD1tCitDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9bQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTj1tCitDT05GSUdfSVBWNl9TSVQ9bQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQorQ09ORklHX0lQVjZfVFVOTkVMPW0KKyMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotCi0jCi0jIERDQ1AgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQotIwogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NUUCBDb25maWd1cmF0aW9uIChFWFBFUklNRU5UQUwpCi0jCiAjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLQotIwotIyBUSVBDIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKLSMKICMgQ09ORklHX1RJUEMgaXMgbm90IHNldAogIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKICMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CkBAIC0zNzMsMjAgKzQyOCw3MSBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hfRklGTz15CiAKICMKICMgTmV0d29yayB0ZXN0aW5nCiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JUIGlzIG5vdCBzZXQKK0NPTkZJR19CVD1tCitDT05GSUdfQlRfTDJDQVA9bQorQ09ORklHX0JUX1NDTz1tCitDT05GSUdfQlRfUkZDT01NPW0KK0NPTkZJR19CVF9SRkNPTU1fVFRZPXkKK0NPTkZJR19CVF9CTkVQPW0KK0NPTkZJR19CVF9CTkVQX01DX0ZJTFRFUj15CitDT05GSUdfQlRfQk5FUF9QUk9UT19GSUxURVI9eQorQ09ORklHX0JUX0hJRFA9bQorCisjCisjIEJsdWV0b290aCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX0JUX0hDSVVTQj1tCitDT05GSUdfQlRfSENJVVNCX1NDTz15CitDT05GSUdfQlRfSENJVUFSVD1tCitDT05GSUdfQlRfSENJVUFSVF9IND15CitDT05GSUdfQlRfSENJVUFSVF9CQ1NQPXkKK0NPTkZJR19CVF9IQ0lVQVJUX0xMPXkKK0NPTkZJR19CVF9IQ0lCQ00yMDNYPW0KK0NPTkZJR19CVF9IQ0lCUEExMFg9bQorQ09ORklHX0JUX0hDSUJGVVNCPW0KK0NPTkZJR19CVF9IQ0lWSENJPW0KKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworQ09ORklHX0NGRzgwMjExPW0KK0NPTkZJR19OTDgwMjExPXkKK0NPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX01BQzgwMjExPW0KKworIworIyBSYXRlIGNvbnRyb2wgYWxnb3JpdGhtIHNlbGVjdGlvbgorIworQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX1JDX0RFRkFVTFRfTk9ORSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZWN0aW5nICd5JyBmb3IgYW4gYWxnb3JpdGhtIHdpbGwKKyMKKworIworIyBidWlsZCB0aGUgYWxnb3JpdGhtIGludG8gbWFjODAyMTEuCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVD0icGlkIgorQ09ORklHX01BQzgwMjExX1JDX1BJRD15CitDT05GSUdfTUFDODAyMTFfTUVTSD15CitDT05GSUdfTUFDODAyMTFfTEVEUz15CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR19QQUNLRVRfQUxJR05NRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKIAogIwogIyBEZXZpY2UgRHJpdmVycwpAQCAtMzk1LDIxICs1MDEsMTQgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKLSMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CitDT05GSUdfRldfTE9BREVSPW0KICMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotCi0jCi0jIENvbm5lY3RvciAtIHVuaWZpZWQgdXNlcnNwYWNlIDwtPiBrZXJuZWxzcGFjZSBsaW5rZXIKLSMKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0Ci0KLSMKLSMgTWVtb3J5IFRlY2hub2xvZ3kgRGV2aWNlcyAoTVREKQotIwogQ09ORklHX01URD15CiAjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CkBAIC00MjAsNiArNTE5LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfQUZTX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MzIsNiArNTMyLDcgQEAKICMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAogIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAogCiAjCiAjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCkBAIC00NTcsNyArNTU4LDYgQEAKICMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAogQ09ORklHX01URF9ST009eQogIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVERfT0JTT0xFVEVfQ0hJUFMgaXMgbm90IHNldAogCiAjCiAjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKQEAgLTQ4NiwxMyArNTg2LDEwIEBACiAjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAotCi0jCi0jIE5BTkQgRmxhc2ggRGV2aWNlIERyaXZlcnMKLSMKIENPTkZJR19NVERfTkFORD15CiAjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAogIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfTkFORF9JRFM9eQogQ09ORklHX01URF9OQU5EX1MzQzI0MTA9eQogIyBDT05GSUdfTVREX05BTkRfUzNDMjQxMF9ERUJVRyBpcyBub3Qgc2V0CkBAIC01MDAsMzAgKzU5NywyNSBAQAogIyBDT05GSUdfTVREX05BTkRfUzNDMjQxMF9DTEtTVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9OQU5EX0RJU0tPTkNISVAgaXMgbm90IHNldAogIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0Ci0KLSMKLSMgT25lTkFORCBGbGFzaCBEZXZpY2UgRHJpdmVycwotIworIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CiAKICMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0CisjIFVCSSAtIFVuc29ydGVkIGJsb2NrIGltYWdlcwogIworIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfUEFSUE9SVD15Ci0jIENPTkZJR19QQVJQT1JUX1BDIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JUX1BDPW0KKyMgQ09ORklHX1BBUlBPUlRfUENfRklGTyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVJQT1JUX1BDX1NVUEVSSU8gaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVF9HU0MgaXMgbm90IHNldAotIyBDT05GSUdfUEFSUE9SVF9BWDg4Nzk2IGlzIG5vdCBzZXQKK0NPTkZJR19QQVJQT1JUX0FYODg3OTY9bQogQ09ORklHX1BBUlBPUlRfMTI4ND15Ci0KLSMKLSMgUGx1ZyBhbmQgUGxheSBzdXBwb3J0Ci0jCitDT05GSUdfUEFSUE9SVF9OT1RfUEM9eQogIyBDT05GSUdfUE5QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKK0NPTkZJR19CTEtfREVWPXkKKyMgQ09ORklHX1BBUklERSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfTE9PUD15CiAjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldApAQCAtNTMyLDM0ICs2MjQsMzQgQEAKIENPTkZJR19CTEtfREVWX1JBTT15CiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKIENPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX09WRVJfRVRIPW0KLQotIwotIyBBVEEvQVRBUEkvTUZNL1JMTCBzdXBwb3J0Ci0jCitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKIENPTkZJR19JREU9eQogQ09ORklHX0JMS19ERVZfSURFPXkKIAogIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKKyMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwogIwogIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVESVNLPXkKICMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVDRD15CitDT05GSUdfQkxLX0RFVl9JREVDRF9WRVJCT1NFX0VSUk9SUz15CiBDT05GSUdfQkxLX0RFVl9JREVUQVBFPW0KIENPTkZJR19CTEtfREVWX0lERUZMT1BQWT1tCisjIENPTkZJR19CTEtfREVWX0lERVNDU0kgaXMgbm90IHNldAogIyBDT05GSUdfSURFX1RBU0tfSU9DVEwgaXMgbm90IHNldAorQ09ORklHX0lERV9QUk9DX0ZTPXkKIAogIwogIyBJREUgY2hpcHNldCBzdXBwb3J0L2J1Z2ZpeGVzCiAjCi1DT05GSUdfSURFX0dFTkVSSUM9eQotIyBDT05GSUdfSURFX0FSTSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVfQkFTVD15Ci0jIENPTkZJR19JREVfQ0hJUFNFVFMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QTEFURk9STSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lERURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIApAQCAtNTY3LDEwMSArNjU5LDExOSBAQAogIyBTQ1NJIGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKK0NPTkZJR19TQ1NJX1RHVD1tCiAjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CiAKICMKLSMgU2VyaWFsIEFUQSAocHJvZCkgYW5kIFBhcmFsbGVsIEFUQSAoZXhwZXJpbWVudGFsKSBkcml2ZXJzCisjIFNDU0kgc3VwcG9ydCB0eXBlIChkaXNrLCB0YXBlLCBDRC1ST00pCiAjCitDT05GSUdfQkxLX0RFVl9TRD15CitDT05GSUdfQ0hSX0RFVl9TVD1tCisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfU1I9bQorQ09ORklHX0JMS19ERVZfU1JfVkVORE9SPXkKK0NPTkZJR19DSFJfREVWX1NHPXkKK0NPTkZJR19DSFJfREVWX1NDSD1tCisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorQ09ORklHX1NDU0lfQ09OU1RBTlRTPXkKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9TQ0FOX0FTWU5DPXkKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FIQTE1MlggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU4yMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFRDMzI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZVVFVSRV9ET01BSU4gaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9HRU5FUklDX05DUjUzODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9HRU5FUklDX05DUjUzODBfTU1JTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1BQQSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lNTSBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05DUjUzQzQwNkEgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9QQVMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1FMT0dJQ19GQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TWU01M0M0MTYgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9UMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBIGlzIG5vdCBzZXQKLQotIwotIyBNdWx0aS1kZXZpY2Ugc3VwcG9ydCAoUkFJRCBhbmQgTFZNKQotIworQ09ORklHX0hBVkVfUEFUQV9QTEFURk9STT15CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0Ci0KLSMKLSMgRnVzaW9uIE1QVCBkZXZpY2Ugc3VwcG9ydAotIwotIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKLQotIwotIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0Ci0jCi0KLSMKLSMgSTJPIGRldmljZSBzdXBwb3J0Ci0jCi0KLSMKLSMgTmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAogIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKLQotIwotIyBBUkNuZXQgZGV2aWNlcwotIworIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAotCi0jCi0jIFBIWSBkZXZpY2Ugc3VwcG9ydAotIwogIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAgb3IgMTAwTWJpdCkKLSMKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SX1NNQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAogQ09ORklHX0RNOTAwMD15CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CitDT05GSUdfRE05MDAwX0RFQlVHTEVWRUw9NAogIyBDT05GSUdfTkVUX1ZFTkRPUl9SQUNBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVDE3MDAgaXMgbm90IHNldAogIyBDT05GSUdfREVQQ0EgaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lTQSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BPQ0tFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwMDAgTWJpdCkKLSMKLQotIwotIyBFdGhlcm5ldCAoMTAwMDAgTWJpdCkKLSMKLQotIwotIyBUb2tlbiBSaW5nIGRldmljZXMKLSMKK0NPTkZJR19ORVRERVZfMTAwMD15CisjIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwotIyBXaXJlbGVzcyBMQU4gKG5vbi1oYW1yYWRpbykKKyMgV2lyZWxlc3MgTEFOCiAjCi0jIENPTkZJR19ORVRfUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKLSMgV2FuIGludGVyZmFjZXMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKICMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUExJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotCi0jCi0jIElTRE4gc3Vic3lzdGVtCi0jCiAjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKIAogIwpAQCAtNjY5LDYgKzc3OSw3IEBACiAjCiBDT05GSUdfSU5QVVQ9eQogIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKIAogIwogIyBVc2VybGFuZCBpbnRlcmZhY2VzCkBAIC02NzgsNyArNzg5LDYgQEAKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiAjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfRVZERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAogCkBAIC02OTUsMTIgKzgwNSwyMSBAQAogIyBDT05GSUdfS0VZQk9BUkRfR1BJTyBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfTU9VU0U9eQogQ09ORklHX01PVVNFX1BTMj15CitDT05GSUdfTU9VU0VfUFMyX0FMUFM9eQorQ09ORklHX01PVVNFX1BTMl9MT0dJUFMyUFA9eQorQ09ORklHX01PVVNFX1BTMl9TWU5BUFRJQ1M9eQorQ09ORklHX01PVVNFX1BTMl9MSUZFQk9PSz15CitDT05GSUdfTU9VU0VfUFMyX1RSQUNLUE9JTlQ9eQorIyBDT05GSUdfTU9VU0VfUFMyX1RPVUNIS0lUIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1NFUklBTCBpcyBub3Qgc2V0CisjIENPTkZJR19NT1VTRV9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX0lOUE9SVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9MT0dJQk0gaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfUEMxMTBQQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfVlNYWFhBQSBpcyBub3Qgc2V0CisjIENPTkZJR19NT1VTRV9HUElPIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKIApAQCAtNzIxLDYgKzg0MCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogQ09ORklHX1NFUklBTF9OT05TVEFOREFSRD15CiAjIENPTkZJR19DT01QVVRPTkUgaXMgbm90IHNldAogIyBDT05GSUdfUk9DS0VUUE9SVCBpcyBub3Qgc2V0CkBAIC03MjgsOCArODQ4LDYgQEAKICMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKICMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAogIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PWEFfU01BUlRJT19ORVcgaXMgbm90IHNldAotIyBDT05GSUdfU1lOQ0xJTktNUCBpcyBub3Qgc2V0CiAjIENPTkZJR19OX0hETEMgaXMgbm90IHNldAogIyBDT05GSUdfUklTQ09NOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldApAQCAtNzU4LDggKzg3NiwxMiBAQAogIwogIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CiAjCitDT05GSUdfU0VSSUFMX1NBTVNVTkc9eQorIyBDT05GSUdfU0VSSUFMX1NBTVNVTkdfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEU9eQogQ09ORklHX1NFUklBTF9TM0MyNDEwPXkKLUNPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfUzNDMjQxMj15CitDT05GSUdfU0VSSUFMX1MzQzI0NDA9eQogQ09ORklHX1NFUklBTF9DT1JFPXkKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKIENPTkZJR19VTklYOThfUFRZUz15CkBAIC03NjgsMTYgKzg5MCwxMzkgQEAKIENPTkZJR19QUklOVEVSPXkKICMgQ09ORklHX0xQX0NPTlNPTEUgaXMgbm90IHNldAogQ09ORklHX1BQREVWPXkKLSMgQ09ORklHX1RJUEFSIGlzIG5vdCBzZXQKLQotIwotIyBJUE1JCi0jCiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19EVExLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCitDT05GSUdfSTJDX0FMR09CSVQ9eQogCiAjCi0jIFdhdGNoZG9nIENhcmRzCisjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIworIyBDT05GSUdfSTJDX0VMRUtUT1IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0dQSU8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CitDT05GSUdfSTJDX1MzQzI0MTA9eQorQ09ORklHX0kyQ19TSU1URUM9eQorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX0lTQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19FRVBST009bQorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJPXkKKyMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU1BJX01BU1RFUj15CisKKyMKKyMgU1BJIE1hc3RlciBDb250cm9sbGVyIERyaXZlcnMKKyMKK0NPTkZJR19TUElfQklUQkFORz1tCisjIENPTkZJR19TUElfQlVUVEVSRkxZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9MTTcwX0xMUCBpcyBub3Qgc2V0CitDT05GSUdfU1BJX1MzQzI0WFg9bQorQ09ORklHX1NQSV9TM0MyNFhYX0dQSU89bQorCisjCisjIFNQSSBQcm90b2NvbCBNYXN0ZXJzCisjCisjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfU1BJREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKyMgQ09ORklHX0RFQlVHX0dQSU8gaXMgbm90IHNldAorCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fUENBOTUzWCBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPX1BDRjg1N1ggaXMgbm90IHNldAorCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fTUNQMjNTMDggaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKK0NPTkZJR19IV01PTj15CitDT05GSUdfSFdNT05fVklEPW0KKyMgQ09ORklHX1NFTlNPUlNfQUQ3NDE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMjUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE0xMDI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURNMTAyOSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FETTEwMzEgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRE05MjQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfQURUNzQ3MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0FEVDc0NzMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BVFhQMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19GNzE4ODJGRyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0Y3NTM3NVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE03MCBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTc1PW0KKyMgQ09ORklHX1NFTlNPUlNfTE03NyBpcyBub3Qgc2V0CitDT05GSUdfU0VOU09SU19MTTc4PW0KKyMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAorQ09ORklHX1NFTlNPUlNfTE04NT1tCisjIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0xNOTMgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVgxNjE5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjY1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQzg3NDI3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRE1FMTczNyBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19BRFM3ODI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVEhNQzUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzgxRCBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1c4Mzc5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM3OTJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNzkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzTDc4NVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzTDc4Nk5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVzgzNjI3SEYgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19XODM2MjdFSEYgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT05fREVCVUdfQ0hJUCBpcyBub3Qgc2V0CiBDT05GSUdfV0FUQ0hET0c9eQogIyBDT05GSUdfV0FUQ0hET0dfTk9XQVlPVVQgaXMgbm90IHNldAogCkBAIC03OTgsMTc5ICsxMDQzLDU0IEBACiAjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcwogIwogIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0Ci1DT05GSUdfSFdfUkFORE9NPXkKLSMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RUTEsgaXMgbm90IHNldAotIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAotIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAKICMKLSMgVFBNIGRldmljZXMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCiAjCi0jIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKLQotIwotIyBJMkMgc3VwcG9ydAotIwotQ09ORklHX0kyQz15Ci1DT05GSUdfSTJDX0NIQVJERVY9bQotCi0jCi0jIEkyQyBBbGdvcml0aG1zCi0jCi1DT05GSUdfSTJDX0FMR09CSVQ9bQotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCi0jIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAotIwotIyBDT05GSUdfSTJDX0VMRUtUT1IgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfUEFSUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0Ci1DT05GSUdfSTJDX1MzQzI0MTA9eQotIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX1BDQV9JU0EgaXMgbm90IHNldAotCi0jCi0jIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAotIwotIyBDT05GSUdfU0VOU09SU19EUzEzMzcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19EUzEzNzQgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfRUVQUk9NPW0KLSMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1BDQTk1MzkgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwotQ09ORklHX1NQST15Ci0jIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAotQ09ORklHX1NQSV9NQVNURVI9eQotCi0jCi0jIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCi0jCi1DT05GSUdfU1BJX0JJVEJBTkc9bQotIyBDT05GSUdfU1BJX0JVVFRFUkZMWSBpcyBub3Qgc2V0Ci1DT05GSUdfU1BJX1MzQzI0WFg9bQotQ09ORklHX1NQSV9TM0MyNFhYX0dQSU89bQotCi0jCi0jIFNQSSBQcm90b2NvbCBNYXN0ZXJzCi0jCi0jIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0Ci0KLSMKLSMgRGFsbGFzJ3MgMS13aXJlIGJ1cwotIwotIyBDT05GSUdfVzEgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIE1vbml0b3Jpbmcgc3VwcG9ydAotIwotQ09ORklHX0hXTU9OPXkKLUNPTkZJR19IV01PTl9WSUQ9bQotIyBDT05GSUdfU0VOU09SU19BQklUVUdVUlUgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE0xMDIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAyNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTEwMjYgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BRE0xMDI5IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfQURNMTAzMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0FETTkyNDAgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BU0IxMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19BVFhQMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0RTMTYyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0Y3MTgwNUYgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19GU0NIRVIgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19GU0NQT1MgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19HTDUxOFNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfR0w1MjBTTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0lUODcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19MTTYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE03MCBpcyBub3Qgc2V0Ci1DT05GSUdfU0VOU09SU19MTTc1PW0KLSMgQ09ORklHX1NFTlNPUlNfTE03NyBpcyBub3Qgc2V0Ci1DT05GSUdfU0VOU09SU19MTTc4PW0KLSMgQ09ORklHX1NFTlNPUlNfTE04MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0xNODMgaXMgbm90IHNldAotQ09ORklHX1NFTlNPUlNfTE04NT1tCi0jIENPTkZJR19TRU5TT1JTX0xNODcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19MTTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfTE05MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX01BWDE2MTkgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQzg3MzYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfUEM4NzQyNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1NNU0M0N00xIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1NNU0M0N0IzOTcgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19WVDEyMTEgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM3ODFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfVzgzNzkxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4Mzc5MkQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM3OTMgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODNMNzg1VFMgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX1c4MzYyN0VIRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IV01PTl9ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjIGRldmljZXMKLSMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCi0jIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAotCi0jCi0jIExFRCBkZXZpY2VzCi0jCi1DT05GSUdfTkVXX0xFRFM9eQotQ09ORklHX0xFRFNfQ0xBU1M9bQotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi1DT05GSUdfTEVEU19TM0MyNFhYPW0KLUNPTkZJR19MRURTX0gxOTQwPW0KLQotIwotIyBMRUQgVHJpZ2dlcnMKLSMKLUNPTkZJR19MRURTX1RSSUdHRVJTPXkKLUNPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9bQotIyBDT05GSUdfTEVEU19UUklHR0VSX0lERV9ESVNLIGlzIG5vdCBzZXQKLUNPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPW0KK0NPTkZJR19NRkRfU001MDE9eQorIyBDT05GSUdfTUZEX0FTSUMzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19FR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKLSMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAKICMKLSMgRGlnaXRhbCBWaWRlbyBCcm9hZGNhc3RpbmcgRGV2aWNlcworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAogIwotIyBDT05GSUdfRFZCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKIENPTkZJR19GQj15CiBDT05GSUdfRklSTVdBUkVfRURJRD15CiAjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAogQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CiBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKIENPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAogIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAogIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKQEAgLTk3OCwxMiArMTA5OCwxOSBAQAogIyBDT05GSUdfRkJfVElMRUJMSVRUSU5HIGlzIG5vdCBzZXQKIAogIwotIyBGcmFtYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKICMKICMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKIENPTkZJR19GQl9TM0MyNDEwPXkKICMgQ09ORklHX0ZCX1MzQzI0MTBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0ZCX1NNNTAxPXkKICMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydApAQCAtOTkyLDY4ICsxMTE5LDIxIEBACiAjIENPTkZJR19NREFfQ09OU09MRSBpcyBub3Qgc2V0CiBDT05GSUdfRFVNTVlfQ09OU09MRT15CiBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFX0RFVEVDVF9QUklNQVJZIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfUk9UQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfRk9OVFMgaXMgbm90IHNldAogQ09ORklHX0ZPTlRfOHg4PXkKIENPTkZJR19GT05UXzh4MTY9eQotCi0jCi0jIExvZ28gY29uZmlndXJhdGlvbgotIwogIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CiAKICMKICMgU291bmQKICMKICMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKLQotIwotIyBISUQgRGV2aWNlcwotIworQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQogIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIwotQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQotQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKLUNPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCi0jCi1DT05GSUdfVVNCX0RFVklDRUZTPXkKLSMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKLSMKLSMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNCX09IQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAotQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQotIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCi0jCi0jIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKLQotIwotIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCi0jCi0KLSMKLSMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgotIwotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIElucHV0IERldmljZXMKQEAgLTEwNjUsNDUgKzExNDUsMTIyIEBACiAjCiAjIENPTkZJR19VU0JfS0JEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9NT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQUlQVEVLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9XQUNPTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQUNFQ0FEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9LQlRBQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUE9XRVJNQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfWUVBTElOSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfWFBBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVRJX1JFTU9URSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfQVRJX1JFTU9URTIgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0tFWVNQQU5fUkVNT1RFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9HVENPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCisjCitDT05GSUdfVVNCX0RFVklDRUZTPXkKK0NPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKKyMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKworIworIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCitDT05GSUdfVVNCX0FDTT1tCitDT05GSUdfVVNCX1BSSU5URVI9bQorQ09ORklHX1VTQl9XRE09bQorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKworIworIyBtYXkgYWxzbyBiZSBuZWVkZWQ7IHNlZSBVU0JfU1RPUkFHRSBIZWxwIGZvciBtb3JlIGluZm9ybWF0aW9uCisjCitDT05GSUdfVVNCX1NUT1JBR0U9bQorIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorQ09ORklHX1VTQl9MSUJVU1VBTD15CiAKICMKICMgVVNCIEltYWdpbmcgZGV2aWNlcwogIwogIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKLSMKLSMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAogQ09ORklHX1VTQl9NT049eQogCiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKICMgQ09ORklHX1VTQl9VU1M3MjAgaXMgbm90IHNldAotCi0jCi0jIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKLSMKLSMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorQ09ORklHX1VTQl9TRVJJQUw9eQorIyBDT05GSUdfVVNCX1NFUklBTF9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FWlVTQiBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDPXkKKyMgQ09ORklHX1VTQl9TRVJJQUxfQUlSQ0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9BSVJQUklNRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0FSSzMxMTYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9CRUxLSU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9DSDM0MSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1dISVRFSEVBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0RJR0lfQUNDRUxFUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NQMjEwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NZUFJFU1NfTTggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9FTVBFRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9GVERJX1NJTz15CisjIENPTkZJR19VU0JfU0VSSUFMX0ZVTlNPRlQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9WSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0lQQVEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlRfVEkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9HQVJNSU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JUFcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9JVVUgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1BEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9LTFNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfS09CSUxfU0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTUNUX1UyMzIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9NT1M3NzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTU9TNzg0MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX01PVE9ST0xBIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU0VSSUFMX05BVk1BTj1tCitDT05GSUdfVVNCX1NFUklBTF9QTDIzMDM9eQorIyBDT05GSUdfVVNCX1NFUklBTF9PVEk2ODU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU1BDUDhYNSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0hQNFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9TQUZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU0lFUlJBV0lSRUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NFUklBTF9USSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX0NZQkVSSkFDSyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU0VSSUFMX1hJUkNPTSBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NFUklBTF9PUFRJT049bQorIyBDT05GSUdfVVNCX1NFUklBTF9PTU5JTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfREVCVUcgaXMgbm90IHNldAogCiAjCiAjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKQEAgLTExMTYsMzUgKzEyNzMsMzggQEAKICMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorQ09ORklHX1VTQl9MRUQ9bQogIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorQ09ORklHX1VTQl9MRD1tCiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0Ci0KLSMKLSMgVVNCIERTTCBtb2RlbSBzdXBwb3J0Ci0jCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgc3VwcG9ydAotIwogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKK0NPTkZJR19ORVdfTEVEUz15CitDT05GSUdfTEVEU19DTEFTUz1tCiAKICMKLSMgUmVhbCBUaW1lIENsb2NrCisjIExFRCBkcml2ZXJzCiAjCitDT05GSUdfTEVEU19TM0MyNFhYPW0KK0NPTkZJR19MRURTX0gxOTQwPW0KKyMgQ09ORklHX0xFRFNfR1BJTyBpcyBub3Qgc2V0CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CitDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPW0KKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9JREVfRElTSyBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD1tCisjIENPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTiBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKIENPTkZJR19SVENfSENUT1NZUz15CkBAIC0xMTU4LDYxICsxMzE4LDg2IEBACiBDT05GSUdfUlRDX0lOVEZfUFJPQz15CiBDT05GSUdfUlRDX0lOVEZfREVWPXkKICMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAogCiAjCi0jIFJUQyBkcml2ZXJzCisjIEkyQyBSVEMgZHJpdmVycworIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0ZNMzEzMCBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAorCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiAjCiAjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAotQ09ORklHX1JUQ19EUlZfUzNDPXkKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKIAogIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX1MzQz15CisjIENPTkZJR19VSU8gaXMgbm90IHNldAorCisjCiAjIEZpbGUgc3lzdGVtcwogIwogQ09ORklHX0VYVDJfRlM9eQotIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CitDT05GSUdfRVhUMl9GU19YQVRUUj15CitDT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eQorQ09ORklHX0VYVDJfRlNfU0VDVVJJVFk9eQogIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAogQ09ORklHX0VYVDNfRlM9eQogQ09ORklHX0VYVDNfRlNfWEFUVFI9eQotIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15CiAjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKK0NPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotQ09ORklHX1JPTUZTX0ZTPXkKK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19BQ0w9eQogCiAjCiAjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKICMKLSMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAotIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JU085NjYwX0ZTPXkKK0NPTkZJR19KT0xJRVQ9eQorIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19VREZfRlM9bQorQ09ORklHX1VERl9OTFM9eQogCiAjCiAjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKQEAgLTEyMjIsNyArMTQwNyw5IEBACiBDT05GSUdfVkZBVF9GUz15CiBDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CiBDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCi0jIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19OVEZTX0ZTPW0KKyMgQ09ORklHX05URlNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTlRGU19SVyBpcyBub3Qgc2V0CiAKICMKICMgUHNldWRvIGZpbGVzeXN0ZW1zCkBAIC0xMjMwLDEwICsxNDE3LDEwIEBACiBDT05GSUdfUFJPQ19GUz15CiBDT05GSUdfUFJPQ19TWVNDVEw9eQogQ09ORklHX1NZU0ZTPXkKLSMgQ09ORklHX1RNUEZTIGlzIG5vdCBzZXQKK0NPTkZJR19UTVBGUz15CitDT05GSUdfVE1QRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0Ci1DT05GSUdfUkFNRlM9eQotIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0NPTkZJR0ZTX0ZTPW0KIAogIwogIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCkBAIC0xMjQ4LDMxICsxNDM1LDMyIEBACiBDT05GSUdfSkZGUzJfRlM9eQogQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKIENPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15Ci0jIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9TVU1NQVJZPXkKICMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAogQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKIENPTkZJR19KRkZTMl9SVElNRT15CiAjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPXkKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPXkKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX05GU19DT01NT049eQogQ09ORklHX1NVTlJQQz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0CiAjIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKICMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CkBAIC0xMjgwLDcgKzE0NjgsNiBAQAogIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHXzlQX0ZTIGlzIG5vdCBzZXQKIAogIwogIyBQYXJ0aXRpb24gVHlwZXMKQEAgLTEzMDIsOTQgKzE0ODksOTMgQEAKICMgQ09ORklHX1NVTl9QQVJUSVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfS0FSTUFfUEFSVElUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX0VGSV9QQVJUSVRJT04gaXMgbm90IHNldAotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19OTFM9eQogQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCi0jIENPTkZJR19OTFNfQ09ERVBBR0VfNDM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NTIgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NjYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2OSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV85NTAgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19DT0RFUEFHRV84NzQgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfOCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfQVNDSUkgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAotIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0Ci0jIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CitDT05GSUdfTkxTX0NPREVQQUdFXzczNz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzc3NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CitDT05GSUdfTkxTX0NPREVQQUdFXzg1Mj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg1Nz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2MT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Mj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Mz1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2ND1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2NT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2Nj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg2OT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzkzNj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk1MD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzkzMj1tCitDT05GSUdfTkxTX0NPREVQQUdFXzk0OT1tCitDT05GSUdfTkxTX0NPREVQQUdFXzg3ND1tCitDT05GSUdfTkxTX0lTTzg4NTlfOD1tCitDT05GSUdfTkxTX0NPREVQQUdFXzEyNTA9bQorQ09ORklHX05MU19DT0RFUEFHRV8xMjUxPW0KK0NPTkZJR19OTFNfQVNDSUk9eQorQ09ORklHX05MU19JU084ODU5XzE9eQorQ09ORklHX05MU19JU084ODU5XzI9bQorQ09ORklHX05MU19JU084ODU5XzM9bQorQ09ORklHX05MU19JU084ODU5XzQ9bQorQ09ORklHX05MU19JU084ODU5XzU9bQorQ09ORklHX05MU19JU084ODU5XzY9bQorQ09ORklHX05MU19JU084ODU5Xzc9bQorQ09ORklHX05MU19JU084ODU5Xzk9bQorQ09ORklHX05MU19JU084ODU5XzEzPW0KK0NPTkZJR19OTFNfSVNPODg1OV8xND1tCitDT05GSUdfTkxTX0lTTzg4NTlfMTU9bQorQ09ORklHX05MU19LT0k4X1I9bQorQ09ORklHX05MU19LT0k4X1U9bQorQ09ORklHX05MU19VVEY4PW0KICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CiAKICMKLSMgUHJvZmlsaW5nIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0Ci0KLSMKICMgS2VybmVsIGhhY2tpbmcKICMKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKICMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKLUNPTkZJR19MT0dfQlVGX1NISUZUPTE2CiBDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19NVVRFWEVTPXkKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKIENPTkZJR19GUkFNRV9QT0lOVEVSPXkKLUNPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19VU0VSPXkKLSMgQ09ORklHX0RFQlVHX0VSUk9SUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfRVJST1JTPXkKKyMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19MTD15CiAjIENPTkZJR19ERUJVR19JQ0VEQ0MgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1MzQ19QT1JUPXkKQEAgLTE0MDAsMjEgKzE1ODYsMTAwIEBACiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQogCiAjCi0jIENyeXB0b2dyYXBoaWMgb3B0aW9ucworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKICMKLSMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FMR0FQST1tCitDT05GSUdfQ1JZUFRPX0FFQUQ9bQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19IQVNIPW0KK0NPTkZJR19DUllQVE9fTUFOQUdFUj1tCisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fSE1BQz1tCisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9bQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fU0hBMT1tCisjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKK0NPTkZJR19DUllQVE9fQUVTPW0KKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PW0KKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz1tCisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKK0NPTkZJR19DUllQVE9fREVGTEFURT1tCisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fSFc9eQogCiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAorIyBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKICMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CiBDT05GSUdfWkxJQl9JTkZMQVRFPXkKIENPTkZJR19aTElCX0RFRkxBVEU9eQogQ09ORklHX1BMSVNUPXkKIENPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy9zYW05X2w5MjYwX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc2FtOV9sOTI2MF9kZWZjb25maWcKaW5kZXggNDg0ZGM5Ny4uODY4ODM2MiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy9zYW05X2w5MjYwX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3NhbTlfbDkyNjBfZGVmY29uZmlnCkBAIC0yMTEsNyArMjExLDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19IWj0xMDAKICMgQ09ORklHX0FFQUJJIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3NwaXR6X2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCmluZGV4IGFhN2EwMTEuLjdkNTlmYjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3Mvc3BpdHpfZGVmY29uZmlnCkBAIC0xNjQsNyArMTY0LDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiBDT05GSUdfUFJFRU1QVD15Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfRElTQ09OVElHTUVNX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy90Y3RfaGFtbWVyX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdGN0X2hhbW1lcl9kZWZjb25maWcKaW5kZXggNTc2YjgzMy4uMDdkZmI5OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy90Y3RfaGFtbWVyX2RlZmNvbmZpZworKysgYi9hcmNoL2FybS9jb25maWdzL3RjdF9oYW1tZXJfZGVmY29uZmlnCkBAIC0yNDcsNyArMjQ3LDYgQEAKICMKICMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTIwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdHJpemVwczRfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKaW5kZXggNmRiNjM5Mi4uOGI3YTQzMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy90cml6ZXBzNF9kZWZjb25maWcKQEAgLTE5NSw3ICsxOTUsNiBAQAogIyBLZXJuZWwgRmVhdHVyZXMKICMKIENPTkZJR19QUkVFTVBUPXkKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogQ09ORklHX0FFQUJJPXkKIENPTkZJR19PQUJJX0NPTVBBVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2MF9kZWZjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY4MGJkMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvdXNiLWE5MjYwX2RlZmNvbmZpZwpAQCAtMCwwICsxLDExNDIgQEAKKyMKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNAorIyBUdWUgQXByIDE1IDExOjM5OjM1IDIwMDgKKyMKK0NPTkZJR19BUk09eQorQ09ORklHX1NZU19TVVBQT1JUU19BUE1fRU1VTEFUSU9OPXkKK0NPTkZJR19HRU5FUklDX0dQSU89eQorQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CitDT05GSUdfTU1VPXkKKyMgQ09ORklHX05PX0lPUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0hBUkRJUlFTX1NXX1JFU0VORD15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKK0NPTkZJR19HRU5FUklDX0NBTElCUkFURV9ERUxBWT15CitDT05GSUdfWk9ORV9ETUE9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0CitDT05GSUdfU1lTVklQQz15CitDT05GSUdfU1lTVklQQ19TWVNDVEw9eQorIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQorIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfU1lTRlNfREVQUkVDQVRFRCBpcyBub3Qgc2V0CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CisjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CitDT05GSUdfU1lTQ1RMPXkKKyMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX0tBTExTWU1TPXkKKyMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CitDT05GSUdfU0xBQj15CisjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CisjIENPTkZJR19JT1NDSEVEX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0FTPXkKKyMgQ09ORklHX0RFRkFVTFRfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxPXkKKyMgQ09ORklHX0FSQ0hfQ0xQUzc1MDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzExWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NPMjg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRUJTQTExMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VQOTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0ZPT1RCUklER0UgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9ORVRYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSDcyMFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AxM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MNzIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05TOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QWEEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TQTExMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9TM0MyNDEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfREFWSU5DSSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX09NQVAgaXMgbm90IHNldAorCisjCisjIEJvb3Qgb3B0aW9ucworIworCisjCisjIFBvd2VyIG1hbmFnZW1lbnQKKyMKKworIworIyBBdG1lbCBBVDkxIFN5c3RlbS1vbi1DaGlwCisjCisjIENPTkZJR19BUkNIX0FUOTFSTTkyMDAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjA9eQorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFTQU05MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFDQVA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVg0MCBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9QTUNfVU5JVD15CisKKyMKKyMgQVQ5MVNBTTkyNjAgVmFyaWFudHMKKyMKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjBfU0FNOVhFIGlzIG5vdCBzZXQKKworIworIyBBVDkxU0FNOTI2MCAvIEFUOTFTQU05WEUgQm9hcmQgVHlwZQorIworIyBDT05GSUdfTUFDSF9BVDkxU0FNOTI2MEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfQ0FNNjAgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9TQU05X0w5MjYwIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNIX1VTQl9BOTI2MD15CisjIENPTkZJR19NQUNIX1FJTF9BOTI2MCBpcyBub3Qgc2V0CisKKyMKKyMgQVQ5MSBCb2FyZCBPcHRpb25zCisjCisKKyMKKyMgQVQ5MSBGZWF0dXJlIFNlbGVjdGlvbnMKKyMKKyMgQ09ORklHX0FUOTFfUFJPR1JBTU1BQkxFX0NMT0NLUyBpcyBub3Qgc2V0CitDT05GSUdfQVQ5MV9TTE9XX0NMT0NLPXkKK0NPTkZJR19BVDkxX1RJTUVSX0haPTEwMAorQ09ORklHX0FUOTFfRUFSTFlfREJHVT15CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMSBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMiBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUMyBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNCBpcyBub3Qgc2V0CisjIENPTkZJR19BVDkxX0VBUkxZX1VTQVJUNSBpcyBub3Qgc2V0CisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9BUk05MjZUPXkKK0NPTkZJR19DUFVfMzJ2NT15CitDT05GSUdfQ1BVX0FCUlRfRVY1VEo9eQorQ09ORklHX0NQVV9DQUNIRV9WSVZUPXkKK0NPTkZJR19DUFVfQ09QWV9WNFdCPXkKK0NPTkZJR19DUFVfVExCX1Y0V0JJPXkKK0NPTkZJR19DUFVfQ1AxNT15CitDT05GSUdfQ1BVX0NQMTVfTU1VPXkKKworIworIyBQcm9jZXNzb3IgRmVhdHVyZXMKKyMKKyMgQ09ORklHX0FSTV9USFVNQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfSUNBQ0hFX0RJU0FCTEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfV1JJVEVUSFJPVUdIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9DQUNIRV9ST1VORF9ST0JJTiBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CisKKyMKKyMgQnVzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIEZlYXR1cmVzCisjCisjIENPTkZJR19USUNLX09ORVNIT1QgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSFogaXMgbm90IHNldAorIyBDT05GSUdfSElHSF9SRVNfVElNRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKKyMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX0haPTEwMAorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19PQUJJX0NPTVBBVD15CisjIENPTkZJR19BUkNIX0RJU0NPTlRJR01FTV9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CisjIENPTkZJR19MRURTIGlzIG5vdCBzZXQKK0NPTkZJR19BTElHTk1FTlRfVFJBUD15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkJPT1RfUk9NX1RFWFQ9MHgwCitDT05GSUdfWkJPT1RfUk9NX0JTUz0weDAKK0NPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5UzAsMTE1MjAwIgorIyBDT05GSUdfWElQX0tFUk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisKKyMKKyMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCisjCisKKyMKKyMgQXQgbGVhc3Qgb25lIGVtdWxhdGlvbiBtdXN0IGJlIHNlbGVjdGVkCisjCitDT05GSUdfRlBFX05XRlBFPXkKKyMgQ09ORklHX0ZQRV9OV0ZQRV9YUCBpcyBub3Qgc2V0CisjIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qgc2V0CisjIENPTkZJR19WRlAgaXMgbm90IHNldAorCisjCisjIFVzZXJzcGFjZSBiaW5hcnkgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9FTEY9eQorIyBDT05GSUdfQklORk1UX0FPVVQgaXMgbm90IHNldAorIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorCisjCisjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucworIworQ09ORklHX1BNPXkKKyMgQ09ORklHX1BNX0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkRfVVBfUE9TU0lCTEU9eQorQ09ORklHX1NVU1BFTkQ9eQorIyBDT05GSUdfQVBNX0VNVUxBVElPTiBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKKyMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAorQ09ORklHX0lORVQ9eQorQ09ORklHX0lQX01VTFRJQ0FTVD15CitDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSPXkKK0NPTkZJR19BU0tfSVBfRklCX0hBU0g9eQorIyBDT05GSUdfSVBfRklCX1RSSUUgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9ST1VURV9NVUxUSVBBVEggaXMgbm90IHNldAorQ09ORklHX0lQX1JPVVRFX1ZFUkJPU0U9eQorQ09ORklHX0lQX1BOUD15CisjIENPTkZJR19JUF9QTlBfREhDUCBpcyBub3Qgc2V0CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKK0NPTkZJR19JUF9QTlBfUkFSUD15CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorQ09ORklHX0lQX01ST1VURT15CitDT05GSUdfSVBfUElNU01fVjE9eQorQ09ORklHX0lQX1BJTVNNX1YyPXkKKyMgQ09ORklHX0FSUEQgaXMgbm90IHNldAorIyBDT05GSUdfU1lOX0NPT0tJRVMgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0xSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0NVQklDPXkKK0NPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKKyMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAorIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE0gaXMgbm90IHNldAorIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZMQU5fODAyMVEgaXMgbm90IHNldAorIyBDT05GSUdfREVDTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xMQzIgaXMgbm90IHNldAorIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1gyNSBpcyBub3Qgc2V0CisjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29yayB0ZXN0aW5nCisjCisjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSREEgaXMgbm90IHNldAorIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCisjIENPTkZJR19DRkc4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19XSVJFTEVTU19FWFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGS0lMTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAorCisjCisjIERldmljZSBEcml2ZXJzCisjCisKKyMKKyMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucworIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKK0NPTkZJR19TVEFOREFMT05FPXkKK0NPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisKKyMKKyMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKKyMKK0NPTkZJR19NVERfQ0hBUj15CitDT05GSUdfTVREX0JMS0RFVlM9eQorQ09ORklHX01URF9CTE9DSz15CisjIENPTkZJR19GVEwgaXMgbm90IHNldAorIyBDT05GSUdfTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NTRkRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PT1BTIGlzIG5vdCBzZXQKKworIworIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJpdmVycworIworIyBDT05GSUdfTVREX0NGSSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8yPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMTYgaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzMyIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX0kxPXkKK0NPTkZJR19NVERfQ0ZJX0kyPXkKKyMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JOCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ST00gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FCU0VOVCBpcyBub3Qgc2V0CisKKyMKKyMgTWFwcGluZyBkcml2ZXJzIGZvciBjaGlwIGFjY2VzcworIworIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElOR1MgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworQ09ORklHX01URF9EQVRBRkxBU0g9eQorIyBDT05GSUdfTVREX00yNVA4MCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9BVDkxPXkKK0NPTkZJR19NVERfTkFORF9BVDkxX0VDQ19TT0ZUPXkKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX0hXIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX0FUOTFfRUNDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfTkFORFNJTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfTE9PUD15CisjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKK0NPTkZJR19TQ1NJX01VTFRJX0xVTj15CisjIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPR0dJTkcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQ0FOX0FTWU5DIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX1dBSVRfU0NBTj1tCisKKyMKKyMgU0NTSSBUcmFuc3BvcnRzCisjCisjIENPTkZJR19TQ1NJX1NQSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TQVNfTElCU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJX0xPV0xFVkVMPXkKKyMgQ09ORklHX0lTQ1NJX1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQSBpcyBub3Qgc2V0CisjIENPTkZJR19NRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWSUNFUz15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfQk9ORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNWTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CitDT05GSUdfUEhZTElCPXkKKworIworIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKK0NPTkZJR19NQUNCPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfU01DOTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CitDT05GSUdfTkVUREVWXzEwMDAwPXkKKworIworIyBXaXJlbGVzcyBMQU4KKyMKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CisjIENPTkZJR19XQU4gaXMgbm90IHNldAorIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKKyMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfRVZERVY9eQorQ09ORklHX0lOUFVUX0VWQlVHPXkKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX0dQSU89eQorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCitDT05GSUdfVlQ9eQorQ09ORklHX1ZUX0NPTlNPTEU9eQorQ09ORklHX0hXX0NPTlNPTEU9eQorIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX0FUTUVMPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAorQ09ORklHX1NFUklBTF9DT1JFPXkKK0NPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CisjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAorQ09ORklHX0hXX1JBTkRPTT15CisjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKworIworIyBTUEkgc3VwcG9ydAorIworQ09ORklHX1NQST15CisjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1NQSV9NQVNURVI9eQorCisjCisjIFNQSSBNYXN0ZXIgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfU1BJX0FUTUVMPXkKKyMgQ09ORklHX1NQSV9CSVRCQU5HIGlzIG5vdCBzZXQKKworIworIyBTUEkgUHJvdG9jb2wgTWFzdGVycworIworIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CisjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CisjCisjIENPTkZJR19WR0FfQ09OU09MRSBpcyBub3Qgc2V0CitDT05GSUdfRFVNTVlfQ09OU09MRT15CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorCisjCisjIFVTQiBJbnB1dCBEZXZpY2VzCisjCisjIENPTkZJR19VU0JfSElEIGlzIG5vdCBzZXQKKworIworIyBVU0IgSElEIEJvb3QgUHJvdG9jb2wgZHJpdmVycworIworIyBDT05GSUdfVVNCX0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTU9VU0UgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CisjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0hDRD15CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9MSVRUTEVfRU5ESUFOPXkKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBJbWFnaW5nIGRldmljZXMKKyMKKyMgQ09ORklHX1VTQl9NREM4MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JQ1JPVEVLIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisKKyMKKyMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE1pc2NlbGxhbmVvdXMgZHJpdmVycworIworIyBDT05GSUdfVVNCX0VNSTYyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9FTUkyNiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQURVVFVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BVUVSU1dBTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JJTzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVHT1RPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0JFUlJZX0NIQVJHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVBSRVNTX0NZN0M2MyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lUSEVSTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEhJREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSURNT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRlRESV9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUFBMRURJU1BMQVkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKworIworIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKKyMKKworIworIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMKK0NPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CisjIENPTkZJR19VU0JfR0FER0VUX0FNRDU1MzZVREMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfRlNMX1VTQjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9ORVQyMjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTTY2NTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfR09LVSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0xIN0E0MFggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfUzNDMjQxMCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0dBREdFVF9BVDkxPXkKK0NPTkZJR19VU0JfQVQ5MT15CisjIENPTkZJR19VU0JfR0FER0VUX0RVTU1ZX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0RVQUxTUEVFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkVSTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VUSD15CitDT05GSUdfVVNCX0VUSF9STkRJUz15CisjIENPTkZJR19VU0JfR0FER0VURlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZJTEVfU1RPUkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19TRVJJQUwgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQyBpcyBub3Qgc2V0CitDT05GSUdfTkVXX0xFRFM9eQorQ09ORklHX0xFRFNfQ0xBU1M9eQorCisjCisjIExFRCBkcml2ZXJzCisjCitDT05GSUdfTEVEU19HUElPPXkKKworIworIyBMRUQgVHJpZ2dlcnMKKyMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0CitDT05GSUdfTEVEU19UUklHR0VSX0hFQVJUQkVBVD15CitDT05GSUdfUlRDX0xJQj15CisjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAorCisjCisjIEZpbGUgc3lzdGVtcworIworQ09ORklHX0VYVDJfRlM9eQorIyBDT05GSUdfRVhUMl9GU19YQVRUUiBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQzX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19GU19QT1NJWF9BQ0w9eQorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CitDT05GSUdfRlVTRV9GUz1tCisKKyMKKyMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfSVNPOTY2MF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAorCisjCisjIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKKyMKK0NPTkZJR19GQVRfRlM9eQorIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorQ09ORklHX1ZGQVRfRlM9eQorQ09ORklHX0ZBVF9ERUZBVUxUX0NPREVQQUdFPTQzNworQ09ORklHX0ZBVF9ERUZBVUxUX0lPQ0hBUlNFVD0iaXNvODg1OS0xIgorIyBDT05GSUdfTlRGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUHNldWRvIGZpbGVzeXN0ZW1zCisjCitDT05GSUdfUFJPQ19GUz15CitDT05GSUdfUFJPQ19TWVNDVEw9eQorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9GUz15CitDT05GSUdfSkZGUzJfRlNfREVCVUc9MAorQ09ORklHX0pGRlMyX0ZTX1dSSVRFQlVGRkVSPXkKKyMgQ09ORklHX0pGRlMyX0ZTX1dCVUZfVkVSSUZZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX1NVTU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CitDT05GSUdfTkZTX1YzX0FDTD15CitDT05GSUdfTkZTX1Y0PXkKKyMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQUNMX1NVUFBPUlQ9eQorQ09ORklHX05GU19DT01NT049eQorQ09ORklHX1NVTlJQQz15CitDT05GSUdfU1VOUlBDX0dTUz15CisjIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKK0NPTkZJR19SUENTRUNfR1NTX0tSQjU9eQorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorQ09ORklHX05MUz15CitDT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKKyMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0NPREVQQUdFXzg1MD15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPXkKKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19VVEY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlNUUlVNRU5UQVRJT04gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CisjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1BPSU5URVI9eQorQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19VU0VSPXkKKyMgQ09ORklHX0RFQlVHX0VSUk9SUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQorQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfWkxJQl9JTkZMQVRFPXkKK0NPTkZJR19aTElCX0RFRkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjNfZGVmY29uZmlnIGIvYXJjaC9hcm0vY29uZmlncy91c2ItYTkyNjNfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4ZDQ1NWIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3VzYi1hOTI2M19kZWZjb25maWcKQEAgLTAsMCArMSwxMTM0IEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjQKKyMgVHVlIEFwciAxNSAxMToxNToxOSAyMDA4CisjCitDT05GSUdfQVJNPXkKK0NPTkZJR19TWVNfU1VQUE9SVFNfQVBNX0VNVUxBVElPTj15CitDT05GSUdfR0VORVJJQ19HUElPPXkKK0NPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX01NVT15CisjIENPTkZJR19OT19JT1BPUlQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKK0NPTkZJR19IQVJESVJRU19TV19SRVNFTkQ9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19WRUNUT1JTX0JBU0U9MHhmZmZmMDAwMAorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NXQVAgaXMgbm90IHNldAorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAorIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAorQ09ORklHX1NZU0NUTD15CisjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CitDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19FVkVOVEZEPXkKK0NPTkZJR19TSE1FTT15CitDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19TTEFCSU5GTz15CitDT05GSUdfUlRfTVVURVhFUz15CisjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX1NNQUxMPTAKK0NPTkZJR19NT0RVTEVTPXkKK0NPTkZJR19NT0RVTEVfVU5MT0FEPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAorIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19LTU9EPXkKK0NPTkZJR19CTE9DSz15CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MU0YgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAorCisjCisjIElPIFNjaGVkdWxlcnMKKyMKK0NPTkZJR19JT1NDSEVEX05PT1A9eQorQ09ORklHX0lPU0NIRURfQVM9eQorIyBDT05GSUdfSU9TQ0hFRF9ERUFETElORSBpcyBub3Qgc2V0CisjIENPTkZJR19JT1NDSEVEX0NGUSBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9BUz15CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CitDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCisKKyMKKyMgU3lzdGVtIFR5cGUKKyMKKyMgQ09ORklHX0FSQ0hfQUFFQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JTlRFR1JBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUkVBTFZJRVcgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfQVQ5MT15CisjIENPTkZJR19BUkNIX0NMUFM3NTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ0xQUzcxMVggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTzI4NSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0VCU0ExMTAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9GT09UQlJJREdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0g3MjBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSU9QMTNYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDMzWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDIzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQNFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTDcyMDAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9LUzg2OTUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9OUzlYWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9NWEMgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9QTlg0MDA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgQXRtZWwgQVQ5MSBTeXN0ZW0tb24tQ2hpcAorIworIyBDT05GSUdfQVJDSF9BVDkxUk05MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjAgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9BVDkxU0FNOTI2Mz15CisjIENPTkZJR19BUkNIX0FUOTFTQU05UkwgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9BVDkxQ0FQOSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTFYNDAgaXMgbm90IHNldAorQ09ORklHX0FUOTFfUE1DX1VOSVQ9eQorCisjCisjIEFUOTFTQU05MjYzIEJvYXJkIFR5cGUKKyMKKyMgQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjNFSyBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9VU0JfQTkyNjM9eQorCisjCisjIEFUOTEgQm9hcmQgT3B0aW9ucworIworCisjCisjIEFUOTEgRmVhdHVyZSBTZWxlY3Rpb25zCisjCisjIENPTkZJR19BVDkxX1BST0dSQU1NQUJMRV9DTE9DS1MgaXMgbm90IHNldAorQ09ORklHX0FUOTFfU0xPV19DTE9DSz15CitDT05GSUdfQVQ5MV9USU1FUl9IWj0xMDAKK0NPTkZJR19BVDkxX0VBUkxZX0RCR1U9eQorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDAgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDEgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDIgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDMgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDQgaXMgbm90IHNldAorIyBDT05GSUdfQVQ5MV9FQVJMWV9VU0FSVDUgaXMgbm90IHNldAorCisjCisjIFByb2Nlc3NvciBUeXBlCisjCitDT05GSUdfQ1BVXzMyPXkKK0NPTkZJR19DUFVfQVJNOTI2VD15CitDT05GSUdfQ1BVXzMydjU9eQorQ09ORklHX0NQVV9BQlJUX0VWNVRKPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX0NPUFlfVjRXQj15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCisjIENPTkZJR19BUk1fVEhVTUIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRENBQ0hFX1dSSVRFVEhST1VHSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMgbm90IHNldAorIyBDT05GSUdfT1VURVJfQ0FDSEUgaXMgbm90IHNldAorCisjCisjIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBGZWF0dXJlcworIworIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00MDk2CisjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAorQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQorQ09ORklHX0JPVU5DRT15CitDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVMwLDExNTIwMCIKKyMgQ09ORklHX1hJUF9LRVJORUwgaXMgbm90IHNldAorIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorCisjCisjIEZsb2F0aW5nIHBvaW50IGVtdWxhdGlvbgorIworCisjCisjIEF0IGxlYXN0IG9uZSBlbXVsYXRpb24gbXVzdCBiZSBzZWxlY3RlZAorIworQ09ORklHX0ZQRV9OV0ZQRT15CisjIENPTkZJR19GUEVfTldGUEVfWFAgaXMgbm90IHNldAorIyBDT05GSUdfRlBFX0ZBU1RGUEUgaXMgbm90IHNldAorIyBDT05GSUdfVkZQIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EX1VQX1BPU1NJQkxFPXkKK0NPTkZJR19TVVNQRU5EPXkKKyMgQ09ORklHX0FQTV9FTVVMQVRJT04gaXMgbm90IHNldAorCisjCisjIE5ldHdvcmtpbmcKKyMKK0NPTkZJR19ORVQ9eQorCisjCisjIE5ldHdvcmtpbmcgb3B0aW9ucworIworQ09ORklHX1BBQ0tFVD15CisjIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfVU5JWD15CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKK0NPTkZJR19JUF9QTlA9eQorIyBDT05GSUdfSVBfUE5QX0RIQ1AgaXMgbm90IHNldAorQ09ORklHX0lQX1BOUF9CT09UUD15CitDT05GSUdfSVBfUE5QX1JBUlA9eQorIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CisjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfQUggaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9FU1AgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19DVUJJQz15CitDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCisjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjYgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfV0lSRUxFU1NfRVhUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKKworIworIyBEZXZpY2UgRHJpdmVycworIworCisjCisjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKKyMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCitDT05GSUdfU1RBTkRBTE9ORT15CitDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CisjIENPTkZJR19GV19MT0FERVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0RFVlJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0CisjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NPTkNBVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAorQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0pFREVDUFJPQkUgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfREFUQUZMQVNIPXkKKyMgQ09ORklHX01URF9NMjVQODAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NMUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QSFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTVREUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAorCisjCisjIERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfTVREX0RPQzIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0RPQzIwMDFQTFVTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORD15CisjIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9NVVNFVU1fSURTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9JRFM9eQorIyBDT05GSUdfTVREX05BTkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQVQ5MT15CitDT05GSUdfTVREX05BTkRfQVQ5MV9FQ0NfU09GVD15CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19IVyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9BVDkxX0VDQ19OT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKKworIworIyBTQ1NJIGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19SQUlEX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ1NJPXkKK0NPTkZJR19TQ1NJX0RNQT15CisjIENPTkZJR19TQ1NJX1RHVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX05FVExJTksgaXMgbm90IHNldAorQ09ORklHX1NDU0lfUFJPQ19GUz15CisKKyMKKyMgU0NTSSBzdXBwb3J0IHR5cGUgKGRpc2ssIHRhcGUsIENELVJPTSkKKyMKK0NPTkZJR19CTEtfREVWX1NEPXkKKyMgQ09ORklHX0NIUl9ERVZfU1QgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9PU1NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1IgaXMgbm90IHNldAorIyBDT05GSUdfQ0hSX0RFVl9TRyBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NDSCBpcyBub3Qgc2V0CisKKyMKKyMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCisjCitDT05GSUdfU0NTSV9NVUxUSV9MVU49eQorIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQorCisjCisjIFNDU0kgVHJhbnNwb3J0cworIworIyBDT05GSUdfU0NTSV9TUElfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9MT1dMRVZFTD15CisjIENPTkZJR19JU0NTSV9UQ1AgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorQ09ORklHX1BIWUxJQj15CisKKyMKKyMgTUlJIFBIWSBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTUFSVkVMTF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfREFWSUNPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUVNFTUlfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xYVF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfQ0lDQURBX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVRFU1NFX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTVNDX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CitDT05GSUdfTUFDQj15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNQzkxWCBpcyBub3Qgc2V0CisjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorQ09ORklHX05FVERFVl8xMDAwMD15CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorCisjCisjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCisjCisjIENPTkZJR19VU0JfQ0FUQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworQ09ORklHX0lOUFVUX01PVVNFREVWPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKK0NPTkZJR19JTlBVVF9FVkJVRz15CisKKyMKKyMgSW5wdXQgRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19JTlBVVF9LRVlCT0FSRD15CisjIENPTkZJR19LRVlCT0FSRF9BVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9HUElPPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKKyMgQ09ORklHX1NFUklPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dBTUVQT1JUIGlzIG5vdCBzZXQKKworIworIyBDaGFyYWN0ZXIgZGV2aWNlcworIworQ09ORklHX1ZUPXkKK0NPTkZJR19WVF9DT05TT0xFPXkKK0NPTkZJR19IV19DT05TT0xFPXkKKyMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9BVE1FTD15CitDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1RUWUFUIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CitDT05GSUdfVU5JWDk4X1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlTPXkKK0NPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKK0NPTkZJR19IV19SQU5ET009eQorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CisjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIHN1cHBvcnQKKyMKK0NPTkZJR19TUEk9eQorIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TUElfTUFTVEVSPXkKKworIworIyBTUEkgTWFzdGVyIENvbnRyb2xsZXIgRHJpdmVycworIworQ09ORklHX1NQSV9BVE1FTD15CisjIENPTkZJR19TUElfQklUQkFORyBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFByb3RvY29sIE1hc3RlcnMKKyMKKyMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSV9TUElERVYgaXMgbm90IHNldAorIyBDT05GSUdfU1BJX1RMRTYyWDAgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CisKKyMKKyMgR3JhcGhpY3Mgc3VwcG9ydAorIworIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CisjCisjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydAorIworIyBDT05GSUdfVkdBX0NPTlNPTEUgaXMgbm90IHNldAorQ09ORklHX0RVTU1ZX0NPTlNPTEU9eQorCisjCisjIFNvdW5kCisjCisjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CitDT05GSUdfSElEX1NVUFBPUlQ9eQorQ09ORklHX0hJRD15CisjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworIyBDT05GSUdfVVNCX0hJRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhJRCBCb290IFByb3RvY29sIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9LQkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX01PVVNFIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfU1VQUE9SVD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CitDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQorIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorQ09ORklHX1VTQj15CisjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQorIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVVNQRU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QRVJTSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAorCisjCisjIFVTQiBEZXZpY2UgQ2xhc3MgZHJpdmVycworIworIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisKKyMKKyMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JworIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKK0NPTkZJR19VU0JfU1RPUkFHRT15CisjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSUNST1RFSyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX01PTj15CisKKyMKKyMgVVNCIHBvcnQgZHJpdmVycworIworCisjCisjIFVTQiBTZXJpYWwgQ29udmVydGVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERTTCBtb2RlbSBzdXBwb3J0CisjCisKKyMKKyMgVVNCIEdhZGdldCBTdXBwb3J0CisjCitDT05GSUdfVVNCX0dBREdFVD15CisjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfU0VMRUNURUQ9eQorIyBDT05GSUdfVVNCX0dBREdFVF9BTUQ1NTM2VURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0ZTTF9VU0IyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1MzQzI0MTAgaXMgbm90IHNldAorQ09ORklHX1VTQl9HQURHRVRfQVQ5MT15CitDT05GSUdfVVNCX0FUOTE9eQorIyBDT05GSUdfVVNCX0dBREdFVF9EVU1NWV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAorQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQorIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUMgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworQ09ORklHX0xFRFNfR1BJTz15CisKKyMKKyMgTEVEIFRyaWdnZXJzCisjCitDT05GSUdfTEVEU19UUklHR0VSUz15CisjIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVIgaXMgbm90IHNldAorQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9eQorQ09ORklHX1JUQ19MSUI9eQorIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRlNfUE9TSVhfQUNMPXkKKyMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19JTk9USUZZPXkKK0NPTkZJR19JTk9USUZZX1VTRVI9eQorIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAorQ09ORklHX0ZVU0VfRlM9bQorCisjCisjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKKworIworIyBET1MvRkFUL05UIEZpbGVzeXN0ZW1zCisjCitDT05GSUdfRkFUX0ZTPXkKKyMgQ09ORklHX01TRE9TX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19WRkFUX0ZTPXkKK0NPTkZJR19GQVRfREVGQVVMVF9DT0RFUEFHRT00MzcKK0NPTkZJR19GQVRfREVGQVVMVF9JT0NIQVJTRVQ9Imlzbzg4NTktMSIKKyMgQ09ORklHX05URlNfRlMgaXMgbm90IHNldAorCisjCisjIFBzZXVkbyBmaWxlc3lzdGVtcworIworQ09ORklHX1BST0NfRlM9eQorQ09ORklHX1BST0NfU1lTQ1RMPXkKK0NPTkZJR19TWVNGUz15CitDT05GSUdfVE1QRlM9eQorIyBDT05GSUdfVE1QRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hVR0VUTEJfUEFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBmaWxlc3lzdGVtcworIworIyBDT05GSUdfQURGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfRlM9eQorQ09ORklHX0pGRlMyX0ZTX0RFQlVHPTAKK0NPTkZJR19KRkZTMl9GU19XUklURUJVRkZFUj15CisjIENPTkZJR19KRkZTMl9GU19XQlVGX1ZFUklGWSBpcyBub3Qgc2V0CisjIENPTkZJR19KRkZTMl9TVU1NQVJZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0NPTVBSRVNTSU9OX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1pMSUI9eQorIyBDT05GSUdfSkZGUzJfTFpPIGlzIG5vdCBzZXQKK0NPTkZJR19KRkZTMl9SVElNRT15CisjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAorIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKK0NPTkZJR19ORlNfVjM9eQorQ09ORklHX05GU19WM19BQ0w9eQorQ09ORklHX05GU19WND15CisjIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19MT0NLRF9WND15CitDT05GSUdfTkZTX0FDTF9TVVBQT1JUPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorQ09ORklHX1NVTlJQQ19HU1M9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CitDT05GSUdfUlBDU0VDX0dTU19LUkI1PXkKKyMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlMgaXMgbm90IHNldAorIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPREFfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQYXJ0aXRpb24gVHlwZXMKKyMKKyMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKK0NPTkZJR19OTFM9eQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorQ09ORklHX05MU19DT0RFUEFHRV84NTA9eQorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTcgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY5IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85NDkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV84IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19BU0NJSSBpcyBub3Qgc2V0CitDT05GSUdfTkxTX0lTTzg4NTlfMT15CisjIENPTkZJR19OTFNfSVNPODg1OV8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV81IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzYgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19LT0k4X1IgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfVVRGOCBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAorIyBDT05GSUdfSU5TVFJVTUVOVEFUSU9OIGlzIG5vdCBzZXQKKworIworIyBLZXJuZWwgaGFja2luZworIworIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQorQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKKyMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0tFUk5FTD15CisjIENPTkZJR19ERUJVR19TSElSUSBpcyBub3Qgc2V0CitDT05GSUdfREVURUNUX1NPRlRMT0NLVVA9eQorQ09ORklHX1NDSEVEX0RFQlVHPXkKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKK0NPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfVVNFUj15CisjIENPTkZJR19ERUJVR19FUlJPUlMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0xMPXkKKyMgQ09ORklHX0RFQlVHX0lDRURDQyBpcyBub3Qgc2V0CisKKyMKKyMgU2VjdXJpdHkgb3B0aW9ucworIworIyBDT05GSUdfS0VZUyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDMzI9eQorIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAorQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19QTElTVD15CitDT05GSUdfSEFTX0lPTUVNPXkKK0NPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvdmVyc2F0aWxlX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvdmVyc2F0aWxlX2RlZmNvbmZpZwppbmRleCA0OGRjYTY5Li44MzU1Zjg4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9jb25maWdzL3ZlcnNhdGlsZV9kZWZjb25maWcKKysrIGIvYXJjaC9hcm0vY29uZmlncy92ZXJzYXRpbGVfZGVmY29uZmlnCkBAIC0xNTEsNyArMTUxLDYgQEAKICMgS2VybmVsIEZlYXR1cmVzCiAjCiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX0haPTEwMAogIyBDT05GSUdfQUVBQkkgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MveG1feDI3MF9kZWZjb25maWcgYi9hcmNoL2FybS9jb25maWdzL3htX3gyNzBfZGVmY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNDBkOTEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9jb25maWdzL3htX3gyNzBfZGVmY29uZmlnCkBAIC0wLDAgKzEsMTc0MSBAQAorIworIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1CisjIFN1biBNYXkgMTEgMTU6MTI6NTIgMjAwOAorIworQ09ORklHX0FSTT15CitDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049eQorQ09ORklHX0dFTkVSSUNfR1BJTz15CitDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKK0NPTkZJR19NTVU9eQorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CitDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CitDT05GSUdfSEFSRElSUVNfU1dfUkVTRU5EPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX1pPTkVfRE1BPXkKK0NPTkZJR19BUkNIX01URF9YSVA9eQorQ09ORklHX1ZFQ1RPUlNfQkFTRT0weGZmZmYwMDAwCitDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgorCisjCisjIEdlbmVyYWwgc2V0dXAKKyMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0xPQ0FMVkVSU0lPTj0iIgorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAorQ09ORklHX1NXQVA9eQorQ09ORklHX1NZU1ZJUEM9eQorQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKKyMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CitDT05GSUdfSUtDT05GSUc9eQorQ09ORklHX0lLQ09ORklHX1BST0M9eQorQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorQ09ORklHX0dST1VQX1NDSEVEPXkKK0NPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKKyMgQ09ORklHX1JUX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0VSX1NDSEVEPXkKKyMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CisjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CitDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgorQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKK0NPTkZJR19TWVNDVEw9eQorQ09ORklHX0VNQkVEREVEPXkKK0NPTkZJR19VSUQxNj15CitDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKK0NPTkZJR19LQUxMU1lNUz15CisjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAorIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfSE9UUExVRz15CitDT05GSUdfUFJJTlRLPXkKK0NPTkZJR19CVUc9eQorQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1NITUVNPXkKKyMgQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQj15CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0NfUEFHRV9NT05JVE9SIGlzIG5vdCBzZXQKK0NPTkZJR19SVF9NVVRFWEVTPXkKKyMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAorQ09ORklHX0JBU0VfU01BTEw9MAorQ09ORklHX01PRFVMRVM9eQorQ09ORklHX01PRFVMRV9VTkxPQUQ9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CisjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldAorQ09ORklHX0tNT0Q9eQorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CitDT05GSUdfSU9TQ0hFRF9BUz15CitDT05GSUdfSU9TQ0hFRF9ERUFETElORT15CitDT05GSUdfSU9TQ0hFRF9DRlE9eQorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NGUT15CisjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKKworIworIyBTeXN0ZW0gVHlwZQorIworIyBDT05GSUdfQVJDSF9BQUVDMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9SRUFMVklFVyBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1ZFUlNBVElMRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0FUOTEgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9DTFBTNzUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0NMUFM3MTFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfQ08yODUgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRVA5M1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfRk9PVEJSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX05FVFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9INzIwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lNWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzMlggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JT1AzM1ggaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSVhQMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0lYUDRYWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0w3MjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfS1M4Njk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTlM5WFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVhDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfT1JJT041WCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BOWDQwMDggaXMgbm90IHNldAorQ09ORklHX0FSQ0hfUFhBPXkKKyMgQ09ORklHX0FSQ0hfUlBDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfU0ExMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1NIQVJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTEg3QTQwWCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX0RBVklOQ0kgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTVNNN1gwMEEgaXMgbm90IHNldAorQ09ORklHX0RNQUJPVU5DRT15CisKKyMKKyMgSW50ZWwgUFhBMnh4L1BYQTN4eCBJbXBsZW1lbnRhdGlvbnMKKyMKKworIworIyBTZWxlY3QgdGFyZ2V0IGJvYXJkcworIworIyBDT05GSUdfQVJDSF9HVU1TVElYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfTFVCQk9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0xPR0lDUERfUFhBMjcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfTUFJTlNUT05FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfUFhBX0lEUCBpcyBub3Qgc2V0CisjIENPTkZJR19QWEFfU0hBUlBTTCBpcyBub3Qgc2V0CisjIENPTkZJR19BUkNIX1BYQV9FU0VSSUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ0hfVFJJWkVQUzQgaXMgbm90IHNldAorQ09ORklHX01BQ0hfRU1fWDI3MD15CisjIENPTkZJR19NQUNIX0NPTElCUkkgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9aWUxPTklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0xJVFRMRVRPTiBpcyBub3Qgc2V0CitDT05GSUdfTUFDSF9BUk1DT1JFPXkKKyMgQ09ORklHX01BQ0hfTUFHSUNJQU4gaXMgbm90IHNldAorIyBDT05GSUdfTUFDSF9QQ00wMjcgaXMgbm90IHNldAorQ09ORklHX1BYQTI3eD15CisjIENPTkZJR19QWEFfUFdNIGlzIG5vdCBzZXQKKworIworIyBCb290IG9wdGlvbnMKKyMKKworIworIyBQb3dlciBtYW5hZ2VtZW50CisjCisKKyMKKyMgUHJvY2Vzc29yIFR5cGUKKyMKK0NPTkZJR19DUFVfMzI9eQorQ09ORklHX0NQVV9YU0NBTEU9eQorQ09ORklHX0NQVV8zMnY1PXkKK0NPTkZJR19DUFVfQUJSVF9FVjVUPXkKK0NPTkZJR19DUFVfUEFCUlRfTk9JRkFSPXkKK0NPTkZJR19DUFVfQ0FDSEVfVklWVD15CitDT05GSUdfQ1BVX1RMQl9WNFdCST15CitDT05GSUdfQ1BVX0NQMTU9eQorQ09ORklHX0NQVV9DUDE1X01NVT15CisKKyMKKyMgUHJvY2Vzc29yIEZlYXR1cmVzCisjCitDT05GSUdfQVJNX1RIVU1CPXkKKyMgQ09ORklHX0NQVV9EQ0FDSEVfRElTQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19PVVRFUl9DQUNIRSBpcyBub3Qgc2V0CitDT05GSUdfSVdNTVhUPXkKK0NPTkZJR19YU0NBTEVfUE1VPXkKKworIworIyBCdXMgc3VwcG9ydAorIworQ09ORklHX1BDST15CitDT05GSUdfUENJX1NZU0NBTEw9eQorQ09ORklHX1BDSV9IT1NUX0lURTgxNTI9eQorIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorQ09ORklHX1BDSV9MRUdBQ1k9eQorIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0NBUkQ9bQorIyBDT05GSUdfUENNQ0lBX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUE9bQorQ09ORklHX1BDTUNJQV9MT0FEX0NJUz15CitDT05GSUdfUENNQ0lBX0lPQ1RMPXkKK0NPTkZJR19DQVJEQlVTPXkKKworIworIyBQQy1jYXJkIGJyaWRnZXMKKyMKK0NPTkZJR19ZRU5UQT1tCisjIENPTkZJR19ZRU5UQV9PMiBpcyBub3Qgc2V0CisjIENPTkZJR19ZRU5UQV9SSUNPSCBpcyBub3Qgc2V0CitDT05GSUdfWUVOVEFfVEk9eQorIyBDT05GSUdfWUVOVEFfRU5FX1RVTkUgaXMgbm90IHNldAorIyBDT05GSUdfWUVOVEFfVE9TSElCQSBpcyBub3Qgc2V0CisjIENPTkZJR19QRDY3MjkgaXMgbm90IHNldAorIyBDT05GSUdfSTgyMDkyIGlzIG5vdCBzZXQKK0NPTkZJR19QQ01DSUFfUFhBMlhYPW0KK0NPTkZJR19QQ0NBUkRfTk9OU1RBVElDPW0KKworIworIyBLZXJuZWwgRmVhdHVyZXMKKyMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CisjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKK0NPTkZJR19IWj0xMDAKK0NPTkZJR19BRUFCST15CitDT05GSUdfT0FCSV9DT01QQVQ9eQorIyBDT05GSUdfQVJDSF9ESVNDT05USUdNRU1fRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQwOTYKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfQk9VTkNFPXkKK0NPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfQUxJR05NRU5UX1RSQVA9eQorCisjCisjIEJvb3Qgb3B0aW9ucworIworQ09ORklHX1pCT09UX1JPTV9URVhUPTB4MAorQ09ORklHX1pCT09UX1JPTV9CU1M9MHgwCitDT05GSUdfQ01ETElORT0icm9vdD0xZjAzIG1lbT0zMk0iCisjIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKKworIworIyBDUFUgRnJlcXVlbmN5IHNjYWxpbmcKKyMKKyMgQ09ORklHX0NQVV9GUkVRIGlzIG5vdCBzZXQKKworIworIyBGbG9hdGluZyBwb2ludCBlbXVsYXRpb24KKyMKKworIworIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKKyMKK0NPTkZJR19GUEVfTldGUEU9eQorIyBDT05GSUdfRlBFX05XRlBFX1hQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZQRV9GQVNURlBFIGlzIG5vdCBzZXQKKworIworIyBVc2Vyc3BhY2UgYmluYXJ5IGZvcm1hdHMKKyMKK0NPTkZJR19CSU5GTVRfRUxGPXkKKyMgQ09ORklHX0JJTkZNVF9BT1VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMKKyMKK0NPTkZJR19QTT15CisjIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUE1fU0xFRVA9eQorQ09ORklHX1NVU1BFTkQ9eQorQ09ORklHX1NVU1BFTkRfRlJFRVpFUj15CitDT05GSUdfQVBNX0VNVUxBVElPTj1tCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKKworIworIyBOZXR3b3JraW5nCisjCitDT05GSUdfTkVUPXkKKworIworIyBOZXR3b3JraW5nIG9wdGlvbnMKKyMKK0NPTkZJR19QQUNLRVQ9eQorQ09ORklHX1BBQ0tFVF9NTUFQPXkKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKK0NPTkZJR19JUF9NVUxUSUNBU1Q9eQorIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9GSUJfSEFTSD15CitDT05GSUdfSVBfUE5QPXkKK0NPTkZJR19JUF9QTlBfREhDUD15CitDT05GSUdfSVBfUE5QX0JPT1RQPXkKKyMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9JUEdSRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9NUk9VVEUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVD15CitDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMPXkKK0NPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUPXkKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CitDT05GSUdfQlQ9bQorQ09ORklHX0JUX0wyQ0FQPW0KK0NPTkZJR19CVF9TQ089bQorQ09ORklHX0JUX1JGQ09NTT1tCisjIENPTkZJR19CVF9SRkNPTU1fVFRZIGlzIG5vdCBzZXQKK0NPTkZJR19CVF9CTkVQPW0KKyMgQ09ORklHX0JUX0JORVBfTUNfRklMVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0JORVBfUFJPVE9fRklMVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19CVF9ISURQPW0KKworIworIyBCbHVldG9vdGggZGV2aWNlIGRyaXZlcnMKKyMKK0NPTkZJR19CVF9IQ0lVU0I9bQorQ09ORklHX0JUX0hDSVVTQl9TQ089eQorIyBDT05GSUdfQlRfSENJQlRTRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSVVBUlQgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQkNNMjAzWCBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCUEExMFggaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJQkZVU0IgaXMgbm90IHNldAorIyBDT05GSUdfQlRfSENJRFRMMSBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lCVDNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJMVUVDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JUX0hDSUJUVUFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19CVF9IQ0lWSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKKworIworIyBXaXJlbGVzcworIworIyBDT05GSUdfQ0ZHODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dJUkVMRVNTX0VYVD15CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorQ09ORklHX1NUQU5EQUxPTkU9eQorQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQorQ09ORklHX0ZXX0xPQURFUj1tCisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ09OQ0FUIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEFSVElUSU9OUz15CisjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FGU19QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CitDT05GSUdfTVREX0pFREVDUFJPQkU9eQorQ09ORklHX01URF9HRU5fUFJPQkU9eQorQ09ORklHX01URF9DRklfQURWX09QVElPTlM9eQorQ09ORklHX01URF9DRklfTk9TV0FQPXkKKyMgQ09ORklHX01URF9DRklfQkVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfTEVfQllURV9TV0FQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfR0VPTUVUUlkgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX09UUCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JTlRFTEVYVD15CitDT05GSUdfTVREX0NGSV9BTURTVEQ9eQorQ09ORklHX01URF9DRklfU1RBQT15CitDT05GSUdfTVREX0NGSV9VVElMPXkKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9YSVAgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgwCitDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4NDAwMDAwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTIKK0NPTkZJR19NVERfUFhBMlhYPXkKKyMgQ09ORklHX01URF9BUk1fSU5URUdSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfSU1QQTcgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1NIQVJQX1NMIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9JTlRFTF9WUl9OT1IgaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BMQVRSQU0gaXMgbm90IHNldAorCisjCisjIFNlbGYtY29udGFpbmVkIE1URCBkZXZpY2UgZHJpdmVycworIworIyBDT05GSUdfTVREX1BNQzU1MSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfSDE5MDAgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX1NIQVJQU0wgaXMgbm90IHNldAorIyBDT05GSUdfTVREX05BTkRfQ0FGRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX05BTkRfQ01fWDI3MD15CisjIENPTkZJR19NVERfTkFORF9OQU5EU0lNIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTkFORF9QTEFURk9STT15CisjIENPTkZJR19NVERfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAorIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVj15CisjIENPTkZJR19CTEtfQ1BRX0RBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19DUFFfQ0lTU19EQSBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0RBQzk2MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1VNRU0gaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0xPT1A9eQorIyBDT05GSUdfQkxLX0RFVl9DUllQVE9MT09QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTkJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU1g4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfVUIgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfUkFNPXkKK0NPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAorIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAorIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAorCisjCisjIFNDU0kgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1JBSURfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0k9eQorQ09ORklHX1NDU0lfRE1BPXkKKyMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKKworIworIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQorIworQ09ORklHX0JMS19ERVZfU0Q9eQorIyBDT05GSUdfQ0hSX0RFVl9TVCBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX09TU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TUiBpcyBub3Qgc2V0CisjIENPTkZJR19DSFJfREVWX1NHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NIUl9ERVZfU0NIIGlzIG5vdCBzZXQKKworIworIyBTb21lIFNDU0kgZGV2aWNlcyAoZS5nLiBDRCBqdWtlYm94KSBzdXBwb3J0IG11bHRpcGxlIExVTnMKKyMKKyMgQ09ORklHX1NDU0lfTVVMVElfTFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQ09OU1RBTlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9HR0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NDQU5fQVNZTkMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfV0FJVF9TQ0FOPW0KKworIworIyBTQ1NJIFRyYW5zcG9ydHMKKyMKKyMgQ09ORklHX1NDU0lfU1BJX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRkNfQVRUUlMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9JU0NTSV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NBU19MSUJTQVMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NDU0lfTE9XTEVWRUw9eQorIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FJQzc5WFggaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0CisjIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1YMzE5MUQgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSU5JQTEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX01WU0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1RFWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NZTTUzQzhYWF8yIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfSVBSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfUUxPR0lDXzEyODAgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfRkMgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9RTEFfSVNDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MUEZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTV4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfREMzOTBUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTlNQMzIgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQSBpcyBub3Qgc2V0CitDT05GSUdfQVRBPW0KKyMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BNUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAorIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMk4gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorQ09ORklHX1BBVEFfUENNQ0lBPW0KKyMgQ09ORklHX1BBVEFfUERDX09MRCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JBRElTWVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9SWjEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQzEyMDAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TRVJWRVJXT1JLUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BEQzIwMjdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lMNjgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CisKKyMKKyMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAorIworIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAorIyBDT05GSUdfSUVFRTEzOTQgaXMgbm90IHNldAorIyBDT05GSUdfSTJPIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZJQ0VTPXkKKyMgQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRSBpcyBub3Qgc2V0CisjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CisjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAorIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAorQ09ORklHX05FVF9FVEhFUk5FVD15CitDT05GSUdfTUlJPXkKKyMgQ09ORklHX0FYODg3OTYgaXMgbm90IHNldAorIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CisjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9WRU5ET1JfM0NPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTUM5MVggaXMgbm90IHNldAorQ09ORklHX0RNOTAwMD15CitDT05GSUdfRE05MDAwX0RFQlVHTEVWRUw9MQorIyBDT05GSUdfU01DOTExWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAorIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfUENJPXkKKyMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAorIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAorIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAorIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKK0NPTkZJR184MTM5VE9PPXkKKyMgQ09ORklHXzgxMzlUT09fUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CisjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAorIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19UTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJQV9SSElORSBpcyBub3Qgc2V0CisjIENPTkZJR19TQzkyMDMxIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVERFVl8xMDAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19UUiBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOXzgwMjExPXkKKyMgQ09ORklHX1BDTUNJQV9SQVlDUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIyMDAgaXMgbm90IHNldAorQ09ORklHX0xJQkVSVEFTPW0KKyMgQ09ORklHX0xJQkVSVEFTX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBU19DUyBpcyBub3Qgc2V0CitDT05GSUdfTElCRVJUQVNfU0RJTz1tCisjIENPTkZJR19MSUJFUlRBU19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19IRVJNRVMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNRUwgaXMgbm90IHNldAorIyBDT05GSUdfQUlST19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfV0wzNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSSVNNNTQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pEMTIwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVUX1JORElTX1dMQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVEFQIGlzIG5vdCBzZXQKKworIworIyBVU0IgTmV0d29yayBBZGFwdGVycworIworIyBDT05GSUdfVVNCX0NBVEMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0tBV0VUSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUEVHQVNVUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUlRMODE1MCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVVNCTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QQ01DSUEgaXMgbm90IHNldAorIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAorQ09ORklHX1BQUD1tCitDT05GSUdfUFBQX01VTFRJTElOSz15CitDT05GSUdfUFBQX0ZJTFRFUj15CitDT05GSUdfUFBQX0FTWU5DPW0KKyMgQ09ORklHX1BQUF9TWU5DX1RUWSBpcyBub3Qgc2V0CitDT05GSUdfUFBQX0RFRkxBVEU9bQorQ09ORklHX1BQUF9CU0RDT01QPW0KKyMgQ09ORklHX1BQUF9NUFBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUE9FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQUE9MMlRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMSVAgaXMgbm90IHNldAorQ09ORklHX1NMSEM9bQorIyBDT05GSUdfTkVUX0ZDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTRE4gaXMgbm90IHNldAorCisjCisjIElucHV0IGRldmljZSBzdXBwb3J0CisjCitDT05GSUdfSU5QVVQ9eQorIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKKworIworIyBVc2VybGFuZCBpbnRlcmZhY2VzCisjCitDT05GSUdfSU5QVVRfTU9VU0VERVY9eQorQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKK0NPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CitDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CisjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FQTVBPV0VSIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKK0NPTkZJR19LRVlCT0FSRF9BVEtCRD15CisjIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfWFRLQkQgaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NUT1dBV0FZIGlzIG5vdCBzZXQKK0NPTkZJR19LRVlCT0FSRF9QWEEyN3g9bQorIyBDT05GSUdfS0VZQk9BUkRfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwPW0KK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3WFg9bQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzA1IGlzIG5vdCBzZXQKK0NPTkZJR19UT1VDSFNDUkVFTl9XTTk3MTI9eQorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fV005NzEzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1dNOTdYWF9NQUlOU1RPTkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKKworIworIyBIYXJkd2FyZSBJL08gcG9ydHMKKyMKK0NPTkZJR19TRVJJTz15CisjIENPTkZJR19TRVJJT19TRVJQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFUklPX1BDSVBTMiBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fTElCUFMyPXkKKyMgQ09ORklHX1NFUklPX1JBVyBpcyBub3Qgc2V0CisjIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgQ2hhcmFjdGVyIGRldmljZXMKKyMKK0NPTkZJR19WVD15CitDT05GSUdfVlRfQ09OU09MRT15CitDT05GSUdfSFdfQ09OU09MRT15CisjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQorIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CisKKyMKKyMgU2VyaWFsIGRyaXZlcnMKKyMKKyMgQ09ORklHX1NFUklBTF84MjUwIGlzIG5vdCBzZXQKKworIworIyBOb24tODI1MCBzZXJpYWwgcG9ydCBzdXBwb3J0CisjCitDT05GSUdfU0VSSUFMX1BYQT15CitDT05GSUdfU0VSSUFMX1BYQV9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfQ09SRT15CitDT05GSUdfU0VSSUFMX0NPUkVfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfSlNNIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYOThfUFRZUz15CitDT05GSUdfTEVHQUNZX1BUWVM9eQorQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MTYKKyMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAorIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAorIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAorIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBjaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFdJUkVMRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CitDT05GSUdfREVWUE9SVD15CitDT05GSUdfSTJDPXkKK0NPTkZJR19JMkNfQk9BUkRJTkZPPXkKK0NPTkZJR19JMkNfQ0hBUkRFVj1tCisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19HUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19JODEwIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfUFhBPXkKKyMgQ09ORklHX0kyQ19QWEFfU0xBVkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BJSVg0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ORk9SQ0UyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19PQ09SRVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BBUlBPUlRfTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BST1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0FWQUdFNCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM1NTk1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM2MzAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzk2WCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RJTllfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAorIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAorIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisjIENPTkZJR19ERUJVR19HUElPIGlzIG5vdCBzZXQKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRkRfQVNJQzMgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX0VHUElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZGV2aWNlcworIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCisjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKKworIworIyBHcmFwaGljcyBzdXBwb3J0CisjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorQ09ORklHX0ZCPXkKKyMgQ09ORklHX0ZJUk1XQVJFX0VESUQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRERDIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9DRkJfRklMTFJFQ1Q9eQorQ09ORklHX0ZCX0NGQl9DT1BZQVJFQT15CitDT05GSUdfRkJfQ0ZCX0lNQUdFQkxJVD15CisjIENPTkZJR19GQl9DRkJfUkVWX1BJWEVMU19JTl9CWVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0CitDT05GSUdfRkJfREVGRVJSRURfSU89eQorIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQUNNT0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9CQUNLTElHSFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTU9ERV9IRUxQRVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1RJTEVCTElUVElORyBpcyBub3Qgc2V0CisKKyMKKyMgRnJhbWUgYnVmZmVyIGhhcmR3YXJlIGRyaXZlcnMKKyMKKyMgQ09ORklHX0ZCX0NJUlJVUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCRVIyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorQ09ORklHX0ZCX1BYQT15CisjIENPTkZJR19GQl9QWEFfU01BUlRQQU5FTCBpcyBub3Qgc2V0CitDT05GSUdfRkJfUFhBX1BBUkFNRVRFUlM9eQorQ09ORklHX0ZCX01CWD1tCisjIENPTkZJR19GQl9BTTIwMEVQRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKKworIworIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQV9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19EVU1NWV9DT05TT0xFPXkKK0NPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEVfREVURUNUX1BSSU1BUlkgaXMgbm90IHNldAorIyBDT05GSUdfRlJBTUVCVUZGRVJfQ09OU09MRV9ST1RBVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19GT05UUyBpcyBub3Qgc2V0CitDT05GSUdfRk9OVF84eDg9eQorQ09ORklHX0ZPTlRfOHgxNj15CitDT05GSUdfTE9HTz15CitDT05GSUdfTE9HT19MSU5VWF9NT05PPXkKK0NPTkZJR19MT0dPX0xJTlVYX1ZHQTE2PXkKK0NPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQorCisjCisjIFNvdW5kCisjCitDT05GSUdfU09VTkQ9bQorCisjCisjIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQorIworQ09ORklHX1NORD1tCitDT05GSUdfU05EX1RJTUVSPW0KK0NPTkZJR19TTkRfUENNPW0KKyMgQ09ORklHX1NORF9TRVFVRU5DRVIgaXMgbm90IHNldAorQ09ORklHX1NORF9PU1NFTVVMPXkKK0NPTkZJR19TTkRfTUlYRVJfT1NTPW0KK0NPTkZJR19TTkRfUENNX09TUz1tCitDT05GSUdfU05EX1BDTV9PU1NfUExVR0lOUz15CisjIENPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKKworIworIyBHZW5lcmljIGRldmljZXMKKyMKK0NPTkZJR19TTkRfQUM5N19DT0RFQz1tCisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIFBDSSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfQUQxODg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMSTU0NTEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfT1hZR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQyODEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01PTkEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRUNITzNHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0lPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09ESiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU1VMTBLMVggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VOUzEzNzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTkzOCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTY4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9GTTgwMSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERBX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9IRFNQTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSElGSUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JQ0UxNzI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDBNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9LT1JHMTIxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUFFU1RSTzMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01JWEFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTk0yNTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1BDWEhSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9SSVBUSURFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUUzMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2NTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1NPTklDVklCRVMgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1RSSURFTlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJQTgyWFhfTU9ERU0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUlRVT1NPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WWDIyMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfWU1GUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkUgaXMgbm90IHNldAorCisjCisjIEFMU0EgQVJNIGRldmljZXMKKyMKK0NPTkZJR19TTkRfUFhBMlhYX1BDTT1tCitDT05GSUdfU05EX1BYQTJYWF9BQzk3PW0KKworIworIyBVU0IgZGV2aWNlcworIworIyBDT05GSUdfU05EX1VTQl9BVURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgZGV2aWNlcworIworIyBDT05GSUdfU05EX1ZYUE9DS0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QREFVRElPQ0YgaXMgbm90IHNldAorCisjCisjIFN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAorCisjCisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIworCisjCisjIFNvQyBBdWRpbyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzIE9NQVAKKyMKKworIworIyBPcGVuIFNvdW5kIFN5c3RlbQorIworIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAorQ09ORklHX0FDOTdfQlVTPW0KK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKK0NPTkZJR19ISURfREVCVUc9eQorIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVUFBPUlQ9eQorQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQorQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CitDT05GSUdfVVNCPXkKKyMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKKyMKK0NPTkZJR19VU0JfREVWSUNFRlM9eQorIyBDT05GSUdfVVNCX0RFVklDRV9DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycworIworIyBDT05GSUdfVVNCX0VIQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfSENEPXkKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX01NSU8gaXMgbm90IHNldAorQ09ORklHX1VTQl9PSENJX0xJVFRMRV9FTkRJQU49eQorIyBDT05GSUdfVVNCX1VIQ0lfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TTDgxMV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1I4QTY2NTk3X0hDRCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIERldmljZSBDbGFzcyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKworIworIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCisjCisKKyMKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgorIworQ09ORklHX1VTQl9TVE9SQUdFPXkKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKK0NPTkZJR19NTUM9bQorIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKKworIworIyBNTUMvU0QgQ2FyZCBEcml2ZXJzCisjCitDT05GSUdfTU1DX0JMT0NLPW0KK0NPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKKyMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CisKKyMKKyMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCitDT05GSUdfTU1DX1BYQT1tCisjIENPTkZJR19NTUNfU0RIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1RJRk1fU0QgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKKworIworIyBMRUQgZHJpdmVycworIworIyBDT05GSUdfTEVEU19HUElPIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX0NNX1gyNzA9eQorCisjCisjIExFRCBUcmlnZ2VycworIworQ09ORklHX0xFRFNfVFJJR0dFUlM9eQorIyBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSIGlzIG5vdCBzZXQKK0NPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKK0NPTkZJR19SVENfQ0xBU1M9eQorQ09ORklHX1JUQ19IQ1RPU1lTPXkKK0NPTkZJR19SVENfSENUT1NZU19ERVZJQ0U9InJ0YzAiCisjIENPTkZJR19SVENfREVCVUcgaXMgbm90IHNldAorCisjCisjIFJUQyBpbnRlcmZhY2VzCisjCitDT05GSUdfUlRDX0lOVEZfU1lTRlM9eQorQ09ORklHX1JUQ19JTlRGX1BST0M9eQorQ09ORklHX1JUQ19JTlRGX0RFVj15CisjIENPTkZJR19SVENfSU5URl9ERVZfVUlFX0VNVUwgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9URVNUIGlzIG5vdCBzZXQKKworIworIyBJMkMgUlRDIGRyaXZlcnMKKyMKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzA3IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxMzc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfRFMxNjcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTUFYNjkwMCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9JU0wxMjA4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfWDEyMDUgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUENGODU4MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000MVQ4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1MzNTM5MEEgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0NNT1MgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0RSVl9WMzAyMD15CisKKyMKKyMgb24tQ1BVIFJUQyBkcml2ZXJzCisjCitDT05GSUdfUlRDX0RSVl9TQTExMDA9eQorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKK0NPTkZJR19FWFQyX0ZTPXkKKyMgQ09ORklHX0VYVDJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorQ09ORklHX0VYVDNfRlM9eQorQ09ORklHX0VYVDNfRlNfWEFUVFI9eQorIyBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KQkQ9eQorQ09ORklHX0ZTX01CQ0FDSEU9eQorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQorQ09ORklHX0lOT1RJRlk9eQorQ09ORklHX0lOT1RJRllfVVNFUj15CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworQ09ORklHX0ZBVF9GUz1tCisjIENPTkZJR19NU0RPU19GUyBpcyBub3Qgc2V0CitDT05GSUdfVkZBVF9GUz1tCitDT05GSUdfRkFUX0RFRkFVTFRfQ09ERVBBR0U9NDM3CitDT05GSUdfRkFUX0RFRkFVTFRfSU9DSEFSU0VUPSJpc284ODU5LTEiCisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorQ09ORklHX1RNUEZTPXkKKyMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CisjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAorIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKKyMKKyMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTUExVU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX0ZTPXkKK0NPTkZJR19KRkZTMl9GU19ERUJVRz0wCitDT05GSUdfSkZGUzJfRlNfV1JJVEVCVUZGRVI9eQorIyBDT05GSUdfSkZGUzJfRlNfV0JVRl9WRVJJRlkgaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1NVTU1BUlk9eQorIyBDT05GSUdfSkZGUzJfRlNfWEFUVFIgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfQ09NUFJFU1NJT05fT1BUSU9OUyBpcyBub3Qgc2V0CitDT05GSUdfSkZGUzJfWkxJQj15CisjIENPTkZJR19KRkZTMl9MWk8gaXMgbm90IHNldAorQ09ORklHX0pGRlMyX1JUSU1FPXkKKyMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorQ09ORklHX0NJRlM9bQorIyBDT05GSUdfQ0lGU19TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX1dFQUtfUFdfSEFTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DSUZTX1hBVFRSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfREVCVUcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NJRlNfRVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19DT0RBX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0CisKKyMKKyMgUGFydGl0aW9uIFR5cGVzCisjCitDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEPXkKKyMgQ09ORklHX0FDT1JOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19PU0ZfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FNSUdBX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfTUFDX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKKyMgQ09ORklHX0JTRF9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19VTklYV0FSRV9ESVNLTEFCRUwgaXMgbm90IHNldAorIyBDT05GSUdfTERNX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfUEFSVElUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfU1VOX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19LQVJNQV9QQVJUSVRJT04gaXMgbm90IHNldAorIyBDT05GSUdfRUZJX1BBUlRJVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19OTFM9bQorQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0NPREVQQUdFXzQzNz1tCisjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1MCBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg1NyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2MiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzg2NSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV84NjkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzkzNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfOTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19DT0RFUEFHRV85MzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzk0OSBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfQ09ERVBBR0VfODc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzggaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTAgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0NPREVQQUdFXzEyNTEgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0FTQ0lJIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfSVNPODg1OV8xPW0KKyMgQ09ORklHX05MU19JU084ODU5XzIgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV80IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfSVNPODg1OV83IGlzIG5vdCBzZXQKKyMgQ09ORklHX05MU19JU084ODU5XzkgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTQgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAorIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CisjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKK0NPTkZJR19OTFNfVVRGOD1tCisjIENPTkZJR19ETE0gaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBoYWNraW5nCisjCisjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CitDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MAorIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAorIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfS0VSTkVMPXkKKyMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19NVVRFWEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfUFJPVkVfTE9DS0lORyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0NLX1NUQVQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1VTRVI9eQorQ09ORklHX0RFQlVHX0VSUk9SUz15CisjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTEw9eQorIyBDT05GSUdfREVCVUdfSUNFRENDIGlzIG5vdCBzZXQKKworIworIyBTZWN1cml0eSBvcHRpb25zCisjCisjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCisjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCisjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CisKKyMKKyMgTGlicmFyeSByb3V0aW5lcworIworQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAorQ09ORklHX0NSQ19DQ0lUVD1tCisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1pMSUJfREVGTEFURT15CitDT05GSUdfUExJU1Q9eQorQ09ORklHX0hBU19JT01FTT15CitDT05GSUdfSEFTX0lPUE9SVD15CitDT05GSUdfSEFTX0RNQT15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL2FybS9rZXJuZWwvTWFrZWZpbGUKaW5kZXggYWQ0NTVmZi4uZWI5MDkyYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9NYWtlZmlsZQpAQCAtNCw2ICs0LDEwIEBACiAKIEFGTEFHU19oZWFkLm8gOj0gLURURVhUX09GRlNFVD0kKFRFWFRfT0ZGU0VUKQogCitpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK0NGTEFHU19SRU1PVkVfZnRyYWNlLm8gPSAtcGcKK2VuZGlmCisKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKIG9iai15CQk6PSBjb21wYXQubyBlbnRyeS1hcm12Lm8gZW50cnktY29tbW9uLm8gaXJxLm8gXApAQCAtMTgsNiArMjIsNyBAQAogb2JqLSQoQ09ORklHX0lTQV9ETUEpCQkrPSBkbWEtaXNhLm8KIG9iai0kKENPTkZJR19QQ0kpCQkrPSBiaW9zMzIubyBpc2Eubwogb2JqLSQoQ09ORklHX1NNUCkJCSs9IHNtcC5vCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpCSs9IGZ0cmFjZS5vCiBvYmotJChDT05GSUdfS0VYRUMpCQkrPSBtYWNoaW5lX2tleGVjLm8gcmVsb2NhdGVfa2VybmVsLm8KIG9iai0kKENPTkZJR19LUFJPQkVTKQkJKz0ga3Byb2Jlcy5vIGtwcm9iZXMtZGVjb2RlLm8KIG9iai0kKENPTkZJR19BVEFHU19QUk9DKQkrPSBhdGFncy5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvYXJta3N5bXMuYyBiL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCmluZGV4IDY4OGI3YjEuLmNjN2IyNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9hcm1rc3ltcy5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiAvKgogICogbGliZ2NjIGZ1bmN0aW9ucyAtIGZ1bmN0aW9ucyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkgYnkgdGhlCkBAIC0xODEsMyArMTgyLDcgQEAKICNlbmRpZgogCiBFWFBPUlRfU1lNQk9MKGNvcHlfcGFnZSk7CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitFWFBPUlRfU1lNQk9MKG1jb3VudCk7CisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9hdGFncy5jIGIvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKaW5kZXggNjRjNDIwOC4uNDJhMWExNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL2F0YWdzLmMKQEAgLTEsNSArMSw0IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS90eXBlcy5oPgpAQCAtNyw5ICs2LDggQEAKIAogc3RydWN0IGJ1ZmZlciB7CiAJc2l6ZV90IHNpemU7Ci0JY2hhciAqZGF0YTsKKwljaGFyIGRhdGFbXTsKIH07Ci1zdGF0aWMgc3RydWN0IGJ1ZmZlciB0YWdzX2J1ZmZlcjsKIAogc3RhdGljIGludAogcmVhZF9idWZmZXIoY2hhciogcGFnZSwgY2hhcioqIHN0YXJ0LCBvZmZfdCBvZmYsIGludCBjb3VudCwKQEAgLTI5LDU4ICsyNyw1NyBAQAogCXJldHVybiBjb3VudDsKIH0KIAotCi1zdGF0aWMgaW50Ci1jcmVhdGVfcHJvY19lbnRyaWVzKHZvaWQpCi17Ci0Jc3RydWN0IHByb2NfZGlyX2VudHJ5KiB0YWdzX2VudHJ5OwotCi0JdGFnc19lbnRyeSA9IGNyZWF0ZV9wcm9jX3JlYWRfZW50cnkoImF0YWdzIiwgMDQwMCwgTlVMTCwgcmVhZF9idWZmZXIsICZ0YWdzX2J1ZmZlcik7Ci0JaWYgKCF0YWdzX2VudHJ5KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOwotfQotCi0KLXN0YXRpYyBjaGFyIF9faW5pdGRhdGEgYXRhZ3NfY29weV9idWZbS0VYRUNfQk9PVF9QQVJBTVNfU0laRV07Ci1zdGF0aWMgY2hhciBfX2luaXRkYXRhICphdGFnc19jb3B5OworI2RlZmluZSBCT09UX1BBUkFNU19TSVpFIDE1MzYKK3N0YXRpYyBjaGFyIF9faW5pdGRhdGEgYXRhZ3NfY29weVtCT09UX1BBUkFNU19TSVpFXTsKIAogdm9pZCBfX2luaXQgc2F2ZV9hdGFncyhjb25zdCBzdHJ1Y3QgdGFnICp0YWdzKQogewotCWF0YWdzX2NvcHkgPSBhdGFnc19jb3B5X2J1ZjsKLQltZW1jcHkoYXRhZ3NfY29weSwgdGFncywgS0VYRUNfQk9PVF9QQVJBTVNfU0laRSk7CisJbWVtY3B5KGF0YWdzX2NvcHksIHRhZ3MsIHNpemVvZihhdGFnc19jb3B5KSk7CiB9CiAKLQogc3RhdGljIGludCBfX2luaXQgaW5pdF9hdGFnc19wcm9jZnModm9pZCkKIHsKLQlzdHJ1Y3QgdGFnICp0YWc7Ci0JaW50IGVycm9yOworCS8qCisJICogVGhpcyBjYW5ub3QgZ28gaW50byBzYXZlX2F0YWdzKCkgYmVjYXVzZSBrbWFsbG9jIGFuZCBwcm9jIGRvbid0IHdvcmsKKwkgKiB5ZXQgd2hlbiBpdCBpcyBjYWxsZWQuCisJICovCisJc3RydWN0IHByb2NfZGlyX2VudHJ5ICp0YWdzX2VudHJ5OworCXN0cnVjdCB0YWcgKnRhZyA9IChzdHJ1Y3QgdGFnICopYXRhZ3NfY29weTsKKwlzdHJ1Y3QgYnVmZmVyICpiOworCXNpemVfdCBzaXplOwogCi0JaWYgKCFhdGFnc19jb3B5KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkV4cG9ydGluZyBBVEFHczogTm8gc2F2ZWQgdGFncyBmb3VuZFxuIik7Ci0JCXJldHVybiAtRUlPOworCWlmICh0YWctPmhkci50YWcgIT0gQVRBR19DT1JFKSB7CisJCXByaW50ayhLRVJOX0lORk8gIk5vIEFUQUdzPyIpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlmb3IgKHRhZyA9IChzdHJ1Y3QgdGFnICopIGF0YWdzX2NvcHk7IHRhZy0+aGRyLnNpemU7IHRhZyA9IHRhZ19uZXh0KHRhZykpCisJZm9yICg7IHRhZy0+aGRyLnNpemU7IHRhZyA9IHRhZ19uZXh0KHRhZykpCiAJCTsKIAotCXRhZ3NfYnVmZmVyLnNpemUgPSAoKGNoYXIgKikgdGFnIC0gYXRhZ3NfY29weSkgKyBzaXplb2YodGFnLT5oZHIpOwotCXRhZ3NfYnVmZmVyLmRhdGEgPSBrbWFsbG9jKHRhZ3NfYnVmZmVyLnNpemUsIEdGUF9LRVJORUwpOwotCWlmICh0YWdzX2J1ZmZlci5kYXRhID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCW1lbWNweSh0YWdzX2J1ZmZlci5kYXRhLCBhdGFnc19jb3B5LCB0YWdzX2J1ZmZlci5zaXplKTsKKwkvKiBpbmNsdWRlIHRoZSB0ZXJtaW5hdGluZyBBVEFHX05PTkUgKi8KKwlzaXplID0gKGNoYXIgKil0YWcgLSBhdGFnc19jb3B5ICsgc2l6ZW9mKHN0cnVjdCB0YWdfaGVhZGVyKTsKIAotCWVycm9yID0gY3JlYXRlX3Byb2NfZW50cmllcygpOwotCWlmIChlcnJvcikgewotCQlwcmludGsoS0VSTl9FUlIgIkV4cG9ydGluZyBBVEFHczogbm90IGVub3VnaCBtZW1vcnlcbiIpOwotCQlrZnJlZSh0YWdzX2J1ZmZlci5kYXRhKTsKLQkJdGFnc19idWZmZXIuc2l6ZSA9IDA7Ci0JCXRhZ3NfYnVmZmVyLmRhdGEgPSBOVUxMOwotCX0KKwlXQVJOX09OKHRhZy0+aGRyLnRhZyAhPSBBVEFHX05PTkUpOwogCi0JcmV0dXJuIGVycm9yOworCWIgPSBrbWFsbG9jKHNpemVvZigqYikgKyBzaXplLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWIpCisJCWdvdG8gbm9tZW07CisKKwliLT5zaXplID0gc2l6ZTsKKwltZW1jcHkoYi0+ZGF0YSwgYXRhZ3NfY29weSwgc2l6ZSk7CisKKwl0YWdzX2VudHJ5ID0gY3JlYXRlX3Byb2NfcmVhZF9lbnRyeSgiYXRhZ3MiLCAwNDAwLAorCQkJTlVMTCwgcmVhZF9idWZmZXIsIGIpOworCisJaWYgKCF0YWdzX2VudHJ5KQorCQlnb3RvIG5vbWVtOworCisJcmV0dXJuIDA7CisKK25vbWVtOgorCWtmcmVlKGIpOworCXByaW50ayhLRVJOX0VSUiAiRXhwb3J0aW5nIEFUQUdzOiBub3QgZW5vdWdoIG1lbW9yeVxuIik7CisKKwlyZXR1cm4gLUVOT01FTTsKIH0KLQogYXJjaF9pbml0Y2FsbChpbml0X2F0YWdzX3Byb2Nmcyk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuYyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCmluZGV4IGE1M2MwYWIuLjhiZmQyOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5jCkBAIC02ODAsNyArNjgwLDcgQEAKICNkZWZpbmUgSU9fRUNfTUVNQzhfQkFTRSAwCiAjZW5kaWYKIAotdW5zaWduZWQgaW50IF9fZWNhcmRfYWRkcmVzcyhlY2FyZF90ICplYywgY2FyZF90eXBlX3QgdHlwZSwgY2FyZF9zcGVlZF90IHNwZWVkKQorc3RhdGljIHVuc2lnbmVkIGludCBfX2VjYXJkX2FkZHJlc3MoZWNhcmRfdCAqZWMsIGNhcmRfdHlwZV90IHR5cGUsIGNhcmRfc3BlZWRfdCBzcGVlZCkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSAwOwogCWludCBzbG90ID0gZWMtPnNsb3Rfbm87CkBAIC0xMDAyLDcgKzEwMDIsNyBAQAogCX0KIAogCXJjID0gLUVOT0RFVjsKLQlpZiAoKGVjLT5wb2RhZGRyID0gZWNhcmRfYWRkcmVzcyhlYywgdHlwZSwgRUNBUkRfU1lOQykpID09IDApCisJaWYgKChlYy0+cG9kYWRkciA9IF9fZWNhcmRfYWRkcmVzcyhlYywgdHlwZSwgRUNBUkRfU1lOQykpID09IDApCiAJCWdvdG8gbm9kZXY7CiAKIAljaWQucl96ZXJvID0gMTsKQEAgLTExNDEsMTAgKzExNDEsMTAgQEAKIAogCWlkID0gZWNhcmRfbWF0Y2hfZGV2aWNlKGRydi0+aWRfdGFibGUsIGVjKTsKIAotCWVjYXJkX2NsYWltKGVjKTsKKwllYy0+Y2xhaW1lZCA9IDE7CiAJcmV0ID0gZHJ2LT5wcm9iZShlYywgaWQpOwogCWlmIChyZXQpCi0JCWVjYXJkX3JlbGVhc2UoZWMpOworCQllYy0+Y2xhaW1lZCA9IDA7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTE1NCw3ICsxMTU0LDcgQEAKIAlzdHJ1Y3QgZWNhcmRfZHJpdmVyICpkcnYgPSBFQ0FSRF9EUlYoZGV2LT5kcml2ZXIpOwogCiAJZHJ2LT5yZW1vdmUoZWMpOwotCWVjYXJkX3JlbGVhc2UoZWMpOworCWVjLT5jbGFpbWVkID0gMDsKIAogCS8qCiAJICogUmVzdG9yZSB0aGUgZGVmYXVsdCBvcGVyYXRpb25zLiAgV2UgZW5zdXJlIHRoYXQgdGhlCkBAIC0xMTgyLDcgKzExODIsNyBAQAogCWlmIChkZXYtPmRyaXZlcikgewogCQlpZiAoZHJ2LT5zaHV0ZG93bikKIAkJCWRydi0+c2h1dGRvd24oZWMpOwotCQllY2FyZF9yZWxlYXNlKGVjKTsKKwkJZWMtPmNsYWltZWQgPSAwOwogCX0KIAogCS8qCkBAIC0xMjM5LDcgKzEyMzksNiBAQAogcG9zdGNvcmVfaW5pdGNhbGwoZWNhcmRfYnVzX2luaXQpOwogCiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlYWRjaHVuayk7Ci1FWFBPUlRfU1lNQk9MKF9fZWNhcmRfYWRkcmVzcyk7CiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlZ2lzdGVyX2RyaXZlcik7CiBFWFBPUlRfU1lNQk9MKGVjYXJkX3JlbW92ZV9kcml2ZXIpOwogRVhQT1JUX1NZTUJPTChlY2FyZF9idXNfdHlwZSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZWNhcmQuaCBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCmluZGV4IGQ3YzJkYWMuLjQ2NDJkNDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9lY2FyZC5oCkBAIC01NCwzICs1NCwxNiBAQAogI2RlZmluZSBjX2xlbih4KQkoKHgpLT5yX2xlblswXXwoKHgpLT5yX2xlblsxXTw8OCl8KCh4KS0+cl9sZW5bMl08PDE2KSkKICNkZWZpbmUgY19zdGFydCh4KQkoKHgpLT5yX3N0YXJ0KQogfTsKKwordHlwZWRlZiBlbnVtIGVjYXJkX3R5cGUgewkJLyogQ2FyZHMgYWRkcmVzcyBzcGFjZQkJKi8KKwlFQ0FSRF9JT0MsCisJRUNBUkRfTUVNQywKKwlFQ0FSRF9FQVNJCit9IGNhcmRfdHlwZV90OworCit0eXBlZGVmIGVudW0gewkJCQkvKiBTcGVlZCBmb3IgRUNBUkRfSU9DIHNwYWNlCSovCisJRUNBUkRfU0xPVwkgPSAwLAorCUVDQVJEX01FRElVTQkgPSAxLAorCUVDQVJEX0ZBU1QJID0gMiwKKwlFQ0FSRF9TWU5DCSA9IDMKK30gY2FyZF9zcGVlZF90OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL2VudHJ5LWNvbW1vbi5TIGIvYXJjaC9hcm0va2VybmVsL2VudHJ5LWNvbW1vbi5TCmluZGV4IDU5N2VkMDAuLjg0Njk0ZTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9lbnRyeS1jb21tb24uUworKysgYi9hcmNoL2FybS9rZXJuZWwvZW50cnktY29tbW9uLlMKQEAgLTksNiArOSw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZW50cnktbWFjcm8uUz4KIAogI2luY2x1ZGUgImVudHJ5LWhlYWRlci5TIgpAQCAtOTksNiArMTAwLDU2IEBACiAjdW5kZWYgQ0FMTAogI2RlZmluZSBDQUxMKHgpIC5sb25nIHgKIAorI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK0VOVFJZKG1jb3VudCkKKwlzdG1kYiBzcCEsIHtyMC1yMywgbHJ9CisJbW92IHIwLCBscgorCXN1YiByMCwgcjAsICNNQ09VTlRfSU5TTl9TSVpFCisKKwkuZ2xvYmwgbWNvdW50X2NhbGwKK21jb3VudF9jYWxsOgorCWJsIGZ0cmFjZV9zdHViCisJbGRtaWEgc3AhLCB7cjAtcjMsIHBjfQorCitFTlRSWShmdHJhY2VfY2FsbGVyKQorCXN0bWRiIHNwISwge3IwLXIzLCBscn0KKwlsZHIgcjEsIFtmcCwgIy00XQorCW1vdiByMCwgbHIKKwlzdWIgcjAsIHIwLCAjTUNPVU5UX0lOU05fU0laRQorCisJLmdsb2JsIGZ0cmFjZV9jYWxsCitmdHJhY2VfY2FsbDoKKwlibCBmdHJhY2Vfc3R1YgorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKworI2Vsc2UKKworRU5UUlkobWNvdW50KQorCXN0bWRiIHNwISwge3IwLXIzLCBscn0KKwlsZHIgcjAsID1mdHJhY2VfdHJhY2VfZnVuY3Rpb24KKwlsZHIgcjIsIFtyMF0KKwlhZHIgcjAsIGZ0cmFjZV9zdHViCisJY21wIHIwLCByMgorCWJuZSB0cmFjZQorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKwordHJhY2U6CisJbGRyIHIxLCBbZnAsICMtNF0KKwltb3YgcjAsIGxyCisJc3ViIHIwLCByMCwgI01DT1VOVF9JTlNOX1NJWkUKKwltb3YgbHIsIHBjCisJbW92IHBjLCByMgorCWxkbWlhIHNwISwge3IwLXIzLCBwY30KKworI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworCisJLmdsb2JsIGZ0cmFjZV9zdHViCitmdHJhY2Vfc3R1YjoKKwltb3YgcGMsIGxyCisKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqIFNXSSBoYW5kbGVyCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL2FybS9rZXJuZWwvZnRyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkNTBlNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9mdHJhY2UuYwpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIER5bmFtaWMgZnVuY3Rpb24gdHJhY2luZyBzdXBwb3J0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBYmhpc2hlayBTYWdhciA8c2FnYXIuYWJoaXNoZWtAZ21haWwuY29tPgorICoKKyAqIEZvciBsaWNlbmNpbmcgZGV0YWlscywgc2VlIENPUFlJTkcuCisgKgorICogRGVmaW5lcyBsb3ctbGV2ZWwgaGFuZGxpbmcgb2YgbWNvdW50IGNhbGxzIHdoZW4gdGhlIGtlcm5lbAorICogaXMgY29tcGlsZWQgd2l0aCB0aGUgLXBnIGZsYWcuIFdoZW4gdXNpbmcgZHluYW1pYyBmdHJhY2UsIHRoZQorICogbWNvdW50IGNhbGwtc2l0ZXMgZ2V0IHBhdGNoZWQgbGF6aWx5IHdpdGggTk9QIHRpbGwgdGhleSBhcmUKKyAqIGVuYWJsZWQuIEFsbCBjb2RlIG11dGF0aW9uIHJvdXRpbmVzIGhlcmUgdGFrZSBlZmZlY3QgYXRvbWljYWxseS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisKKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworI2RlZmluZSBQQ19PRkZTRVQgICAgICA4CisjZGVmaW5lIEJMX09QQ09ERSAgICAgIDB4ZWIwMDAwMDAKKyNkZWZpbmUgQkxfT0ZGU0VUX01BU0sgMHgwMGZmZmZmZgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBibF9pbnNuOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgTk9QID0gMHhlMWEwMDAwMDsgLyogbW92IHIwLCByMCAqLworCit1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKikmTk9QOworfQorCisvKiBjb25zdHJ1Y3QgYSBicmFuY2ggKEJMKSBpbnN0cnVjdGlvbiB0byBhZGRyICovCit1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgcGMsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlsb25nIG9mZnNldDsKKworCW9mZnNldCA9IChsb25nKWFkZHIgLSAobG9uZykocGMgKyBQQ19PRkZTRVQpOworCWlmICh1bmxpa2VseShvZmZzZXQgPCAtMzM1NTQ0MzIgfHwgb2Zmc2V0ID4gMzM1NTQ0MjgpKSB7CisJCS8qIENhbid0IGdlbmVyYXRlIGJyYW5jaGVzIHRoYXQgZmFyIChmcm9tIEFSTSBBUk0pLiBGdHJhY2UKKwkJICogZG9lc24ndCBnZW5lcmF0ZSBicmFuY2hlcyBvdXRzaWRlIG9mIGtlcm5lbCB0ZXh0LgorCQkgKi8KKwkJV0FSTl9PTl9PTkNFKDEpOworCQlyZXR1cm4gTlVMTDsKKwl9CisJb2Zmc2V0ID0gKG9mZnNldCA+PiAyKSAmIEJMX09GRlNFVF9NQVNLOworCWJsX2luc24gPSBCTF9PUENPREUgfCBvZmZzZXQ7CisJcmV0dXJuICh1bnNpZ25lZCBjaGFyICopJmJsX2luc247Cit9CisKK2ludCBmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBwYywgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCSAgICAgICB1bnNpZ25lZCBjaGFyICpuZXdfY29kZSkKK3sKKwl1bnNpZ25lZCBsb25nIGVyciA9IDAsIHJlcGxhY2VkID0gMCwgb2xkLCBuZXc7CisKKwlvbGQgPSAqKHVuc2lnbmVkIGxvbmcgKilvbGRfY29kZTsKKwluZXcgPSAqKHVuc2lnbmVkIGxvbmcgKiluZXdfY29kZTsKKworCV9fYXNtX18gX192b2xhdGlsZV9fICgKKwkJIjE6ICBsZHIgICAgJTEsIFslMl0gIFxuIgorCQkiICAgIGNtcCAgICAlMSwgJTQgICAgXG4iCisJCSIyOiAgc3RyZXEgICUzLCBbJTJdICBcbiIKKwkJIiAgICBjbXBuZSAgJTEsICUzICAgIFxuIgorCQkiICAgIG1vdm5lICAlMCwgIzIgICAgXG4iCisJCSIzOlxuIgorCisJCSIuc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuIgorCQkiNDogIG1vdiAgJTAsICMxICBcbiIKKwkJIiAgICBiICAgIDNiICAgICAgXG4iCisJCSIucHJldmlvdXNcbiIKKworCQkiLnNlY3Rpb24gX19leF90YWJsZSwgXCJhXCJcbiIKKwkJIiAgICAubG9uZyAxYiwgNGIgXG4iCisJCSIgICAgLmxvbmcgMmIsIDRiIFxuIgorCQkiLnByZXZpb3VzXG4iCisKKwkJOiAiPXIiKGVyciksICI9ciIocmVwbGFjZWQpCisJCTogInIiKHBjKSwgInIiKG5ldyksICJyIihvbGQpLCAiMCIoZXJyKSwgIjEiKHJlcGxhY2VkKQorCQk6ICJtZW1vcnkiKTsKKworCWlmICghZXJyICYmIChyZXBsYWNlZCA9PSBvbGQpKQorCQlmbHVzaF9pY2FjaGVfcmFuZ2UocGMsIHBjICsgTUNPVU5UX0lOU05fU0laRSk7CisKKwlyZXR1cm4gZXJyOworfQorCitpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpCit7CisJaW50IHJldDsKKwl1bnNpZ25lZCBsb25nIHBjLCBvbGQ7CisJdW5zaWduZWQgY2hhciAqbmV3OworCisJcGMgPSAodW5zaWduZWQgbG9uZykmZnRyYWNlX2NhbGw7CisJbWVtY3B5KCZvbGQsICZmdHJhY2VfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShwYywgKHVuc2lnbmVkIGxvbmcpZnVuYyk7CisJcmV0ID0gZnRyYWNlX21vZGlmeV9jb2RlKHBjLCAodW5zaWduZWQgY2hhciAqKSZvbGQsIG5ldyk7CisJcmV0dXJuIHJldDsKK30KKworaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBwYywgb2xkOworCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgKm5ldzsKKworCXBjID0gKHVuc2lnbmVkIGxvbmcpJm1jb3VudF9jYWxsOworCW1lbWNweSgmb2xkLCAmbWNvdW50X2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UocGMsICphZGRyKTsKKwkqYWRkciA9IGZ0cmFjZV9tb2RpZnlfY29kZShwYywgKHVuc2lnbmVkIGNoYXIgKikmb2xkLCBuZXcpOworCXJldHVybiAwOworfQorCisvKiBydW4gZnJvbSBrc3RvcF9tYWNoaW5lICovCitpbnQgX19pbml0IGZ0cmFjZV9keW5fYXJjaF9pbml0KHZvaWQgKmRhdGEpCit7CisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9rZXJuZWwva3Byb2Jlcy5jIGIvYXJjaC9hcm0va2VybmVsL2twcm9iZXMuYwppbmRleCA1NTkzZGQyLi41ZWUzOWUxIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9rcHJvYmVzLmMKQEAgLTI3NCw3ICsyNzQsNyBAQAogICogZm9yIGtyZXRwcm9iZSBoYW5kbGVycyB3aGljaCBzaG91bGQgbm9ybWFsbHkgYmUgaW50ZXJlc3RlZCBpbiByMCBvbmx5CiAgKiBhbnl3YXkuCiAgKi8KLXN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKG5ha2VkKSkgX19rcHJvYmVzIGtyZXRwcm9iZV90cmFtcG9saW5lKHZvaWQpCit2b2lkIF9fbmFrZWQgX19rcHJvYmVzIGtyZXRwcm9iZV90cmFtcG9saW5lKHZvaWQpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18gKAogCQkic3RtZGIJc3AhLCB7cjAgLSByMTF9CQlcblx0IgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggNDZiZjJlZGUuLjE5OWIzNjggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3Byb2Nlc3MuYwpAQCAtMTMzLDEwICsxMzMsOCBAQAogCQljcHVfcmVsYXgoKTsKIAllbHNlIHsKIAkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKLQkJaWYgKCFuZWVkX3Jlc2NoZWQoKSkgewotCQkJdGltZXJfZHluX3JlcHJvZ3JhbSgpOworCQlpZiAoIW5lZWRfcmVzY2hlZCgpKQogCQkJYXJjaF9pZGxlKCk7Ci0JCX0KIAkJbG9jYWxfaXJxX2VuYWJsZSgpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMgYi9hcmNoL2FybS9rZXJuZWwvc3RhY2t0cmFjZS5jCmluZGV4IDZiM2ZmZGUuLmZjNjUwZjYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9zdGFja3RyYWNlLmMKKysrIGIvYXJjaC9hcm0va2VybmVsL3N0YWNrdHJhY2UuYwpAQCAtMzYsNiArMzYsNyBAQAogI2lmZGVmIENPTkZJR19TVEFDS1RSQUNFCiBzdHJ1Y3Qgc3RhY2tfdHJhY2VfZGF0YSB7CiAJc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZTsKKwl1bnNpZ25lZCBpbnQgbm9fc2NoZWRfZnVuY3Rpb25zOwogCXVuc2lnbmVkIGludCBza2lwOwogfTsKIApAQCAtNDMsMjggKzQ0LDUzIEBACiB7CiAJc3RydWN0IHN0YWNrX3RyYWNlX2RhdGEgKmRhdGEgPSBkOwogCXN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UgPSBkYXRhLT50cmFjZTsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSBmcmFtZS0+bHI7CiAKKwlpZiAoZGF0YS0+bm9fc2NoZWRfZnVuY3Rpb25zICYmIGluX3NjaGVkX2Z1bmN0aW9ucyhhZGRyKSkKKwkJcmV0dXJuIDA7CiAJaWYgKGRhdGEtPnNraXApIHsKIAkJZGF0YS0+c2tpcC0tOwogCQlyZXR1cm4gMDsKIAl9CiAKLQl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IGZyYW1lLT5scjsKKwl0cmFjZS0+ZW50cmllc1t0cmFjZS0+bnJfZW50cmllcysrXSA9IGFkZHI7CiAKIAlyZXR1cm4gdHJhY2UtPm5yX2VudHJpZXMgPj0gdHJhY2UtPm1heF9lbnRyaWVzOwogfQogCi12b2lkIHNhdmVfc3RhY2tfdHJhY2Uoc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3ZvaWQgc2F2ZV9zdGFja190cmFjZV90c2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBzdGFja190cmFjZSAqdHJhY2UpCiB7CiAJc3RydWN0IHN0YWNrX3RyYWNlX2RhdGEgZGF0YTsKIAl1bnNpZ25lZCBsb25nIGZwLCBiYXNlOwogCiAJZGF0YS50cmFjZSA9IHRyYWNlOwogCWRhdGEuc2tpcCA9IHRyYWNlLT5za2lwOwotCWJhc2UgPSAodW5zaWduZWQgbG9uZyl0YXNrX3N0YWNrX3BhZ2UoY3VycmVudCk7Ci0JYXNtKCJtb3YgJTAsIGZwIiA6ICI9ciIgKGZwKSk7CisJYmFzZSA9ICh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZSh0c2spOworCisJaWYgKHRzayAhPSBjdXJyZW50KSB7CisjaWZkZWYgQ09ORklHX1NNUAorCQkvKgorCQkgKiBXaGF0IGd1YXJhbnRlZXMgZG8gd2UgaGF2ZSBoZXJlIHRoYXQgJ3RzaycKKwkJICogaXMgbm90IHJ1bm5pbmcgb24gYW5vdGhlciBDUFU/CisJCSAqLworCQlCVUcoKTsKKyNlbHNlCisJCWRhdGEubm9fc2NoZWRfZnVuY3Rpb25zID0gMTsKKwkJZnAgPSB0aHJlYWRfc2F2ZWRfZnAodHNrKTsKKyNlbmRpZgorCX0gZWxzZSB7CisJCWRhdGEubm9fc2NoZWRfZnVuY3Rpb25zID0gMDsKKwkJYXNtKCJtb3YgJTAsIGZwIiA6ICI9ciIgKGZwKSk7CisJfQogCiAJd2Fsa19zdGFja2ZyYW1lKGZwLCBiYXNlLCBiYXNlICsgVEhSRUFEX1NJWkUsIHNhdmVfdHJhY2UsICZkYXRhKTsKKwlpZiAodHJhY2UtPm5yX2VudHJpZXMgPCB0cmFjZS0+bWF4X2VudHJpZXMpCisJCXRyYWNlLT5lbnRyaWVzW3RyYWNlLT5ucl9lbnRyaWVzKytdID0gVUxPTkdfTUFYOworfQorCit2b2lkIHNhdmVfc3RhY2tfdHJhY2Uoc3RydWN0IHN0YWNrX3RyYWNlICp0cmFjZSkKK3sKKwlzYXZlX3N0YWNrX3RyYWNlX3RzayhjdXJyZW50LCB0cmFjZSk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChzYXZlX3N0YWNrX3RyYWNlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3RpbWUuYyBiL2FyY2gvYXJtL2tlcm5lbC90aW1lLmMKaW5kZXggYjU4NjdlYy4uY2M1MTQ1YiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL3RpbWUuYworKysgYi9hcmNoL2FybS9rZXJuZWwvdGltZS5jCkBAIC0zNjUsMTA4ICszNjUsNiBAQAogCS5yZXN1bWUJCT0gdGltZXJfcmVzdW1lLAogfTsKIAotI2lmZGVmIENPTkZJR19OT19JRExFX0haCi1zdGF0aWMgaW50IHRpbWVyX2R5bl90aWNrX2VuYWJsZSh2b2lkKQotewotCXN0cnVjdCBkeW5fdGlja190aW1lciAqZHluX3RpY2sgPSBzeXN0ZW1fdGltZXItPmR5bl90aWNrOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldCA9IC1FTk9ERVY7Ci0KLQlpZiAoZHluX3RpY2spIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JCXJldCA9IDA7Ci0JCWlmICghKGR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpKSB7Ci0JCQlyZXQgPSBkeW5fdGljay0+ZW5hYmxlKCk7Ci0KLQkJCWlmIChyZXQgPT0gMCkKLQkJCQlkeW5fdGljay0+c3RhdGUgfD0gRFlOX1RJQ0tfRU5BQkxFRDsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotCX0KLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgdGltZXJfZHluX3RpY2tfZGlzYWJsZSh2b2lkKQotewotCXN0cnVjdCBkeW5fdGlja190aW1lciAqZHluX3RpY2sgPSBzeXN0ZW1fdGltZXItPmR5bl90aWNrOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldCA9IC1FTk9ERVY7Ci0KLQlpZiAoZHluX3RpY2spIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JCXJldCA9IDA7Ci0JCWlmIChkeW5fdGljay0+c3RhdGUgJiBEWU5fVElDS19FTkFCTEVEKSB7Ci0JCQlyZXQgPSBkeW5fdGljay0+ZGlzYWJsZSgpOwotCi0JCQlpZiAocmV0ID09IDApCi0JCQkJZHluX3RpY2stPnN0YXRlICY9IH5EWU5fVElDS19FTkFCTEVEOwotCQl9Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JfQotCi0JcmV0dXJuIHJldDsKLX0KLQotLyoKLSAqIFJlcHJvZ3JhbSB0aGUgc3lzdGVtIHRpbWVyIGZvciBhdCBsZWFzdCB0aGUgY2FsY3VsYXRlZCB0aW1lIGludGVydmFsLgotICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgY2FsbGVkIGZyb20gdGhlIGlkbGUgdGhyZWFkIHdpdGggSVJRcyBkaXNhYmxlZCwKLSAqIGltbWVkaWF0ZWx5IGJlZm9yZSBzbGVlcGluZy4KLSAqLwotdm9pZCB0aW1lcl9keW5fcmVwcm9ncmFtKHZvaWQpCi17Ci0Jc3RydWN0IGR5bl90aWNrX3RpbWVyICpkeW5fdGljayA9IHN5c3RlbV90aW1lci0+ZHluX3RpY2s7Ci0JdW5zaWduZWQgbG9uZyBuZXh0LCBzZXEsIGZsYWdzOwotCi0JaWYgKCFkeW5fdGljaykKLQkJcmV0dXJuOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmR5bl90aWNrLT5sb2NrLCBmbGFncyk7Ci0JaWYgKGR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpIHsKLQkJbmV4dCA9IG5leHRfdGltZXJfaW50ZXJydXB0KCk7Ci0JCWRvIHsKLQkJCXNlcSA9IHJlYWRfc2VxYmVnaW4oJnh0aW1lX2xvY2spOwotCQkJZHluX3RpY2stPnJlcHJvZ3JhbShuZXh0IC0gamlmZmllcyk7Ci0JCX0gd2hpbGUgKHJlYWRfc2VxcmV0cnkoJnh0aW1lX2xvY2ssIHNlcSkpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkeW5fdGljay0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgc3NpemVfdCB0aW1lcl9zaG93X2R5bl90aWNrKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikKLXsKLQlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwKLQkJICAgICAgIChzeXN0ZW1fdGltZXItPmR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpID4+IDEpOwotfQotCi1zdGF0aWMgc3NpemVfdCB0aW1lcl9zZXRfZHluX3RpY2soc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqYnVmLAotCQkJCSAgc2l6ZV90IGNvdW50KQotewotCXVuc2lnbmVkIGludCBlbmFibGUgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDIpOwotCi0JaWYgKGVuYWJsZSkKLQkJdGltZXJfZHluX3RpY2tfZW5hYmxlKCk7Ci0JZWxzZQotCQl0aW1lcl9keW5fdGlja19kaXNhYmxlKCk7Ci0KLQlyZXR1cm4gY291bnQ7Ci19Ci1zdGF0aWMgU1lTREVWX0FUVFIoZHluX3RpY2ssIDA2NDQsIHRpbWVyX3Nob3dfZHluX3RpY2ssIHRpbWVyX3NldF9keW5fdGljayk7Ci0KLS8qCi0gKiBkeW50aWNrPWVuYWJsZXxkaXNhYmxlCi0gKi8KLXN0YXRpYyBjaGFyIGR5bnRpY2tfc3RyWzRdIF9faW5pdGRhdGEgPSAiIjsKLQotc3RhdGljIGludCBfX2luaXQgZHludGlja19zZXR1cChjaGFyICpzdHIpCi17Ci0JaWYgKHN0cikKLQkJc3RybGNweShkeW50aWNrX3N0ciwgc3RyLCBzaXplb2YoZHludGlja19zdHIpKTsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZHludGljaz0iLCBkeW50aWNrX3NldHVwKTsKLSNlbmRpZgotCiBzdGF0aWMgaW50IF9faW5pdCB0aW1lcl9pbml0X3N5c2ZzKHZvaWQpCiB7CiAJaW50IHJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmdGltZXJfc3lzY2xhc3MpOwpAQCAtNDc1LDE5ICszNzMsNiBAQAogCQlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJnN5c3RlbV90aW1lci0+ZGV2KTsKIAl9CiAKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCWlmIChyZXQgPT0gMCAmJiBzeXN0ZW1fdGltZXItPmR5bl90aWNrKSB7Ci0JCXJldCA9IHN5c2Rldl9jcmVhdGVfZmlsZSgmc3lzdGVtX3RpbWVyLT5kZXYsICZhdHRyX2R5bl90aWNrKTsKLQotCQkvKgotCQkgKiBUdXJuIG9uIGR5bmFtaWMgdGljayBhZnRlciBjYWxpYnJhdGUgZGVsYXkKLQkJICogZm9yIGNvcnJlY3QgYm9nb21pcHMKLQkJICovCi0JCWlmIChyZXQgPT0gMCAmJiBkeW50aWNrX3N0clswXSA9PSAnZScpCi0JCQlyZXQgPSB0aW1lcl9keW5fdGlja19lbmFibGUoKTsKLQl9Ci0jZW5kaWYKLQogCXJldHVybiByZXQ7CiB9CiAKQEAgLTUwMCwxMCArMzg1LDUgQEAKIAkJc3lzdGVtX3RpbWVyLT5vZmZzZXQgPSBkdW1teV9nZXR0aW1lb2Zmc2V0OwogI2VuZGlmCiAJc3lzdGVtX3RpbWVyLT5pbml0KCk7Ci0KLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCWlmIChzeXN0ZW1fdGltZXItPmR5bl90aWNrKQotCQlzcGluX2xvY2tfaW5pdCgmc3lzdGVtX3RpbWVyLT5keW5fdGljay0+bG9jayk7Ci0jZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUyBiL2FyY2gvYXJtL2xpYi9jb3B5X3RlbXBsYXRlLlMKaW5kZXggY2FiMzU1Yy4uMTM5Y2NlNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbGliL2NvcHlfdGVtcGxhdGUuUworKysgYi9hcmNoL2FybS9saWIvY29weV90ZW1wbGF0ZS5TCkBAIC0xMywxNCArMTMsNiBAQAogICovCiAKIC8qCi0gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBjb2RlIHRvIGNhY2hlbGluZSBhbGlnbiB0aGUgc291cmNlIHBvaW50ZXIuCi0gKiBFeHBlcmltZW50cyBvbiB0ZXN0ZWQgYXJjaGl0ZWN0dXJlcyAoU3Ryb25nQVJNIGFuZCBYU2NhbGUpIGRpZG4ndCBzaG93Ci0gKiB0aGlzIGEgd29ydGh3aGlsZSB0aGluZyB0byBkby4gIFRoYXQgbWlnaHQgYmUgZGlmZmVyZW50IGluIHRoZSBmdXR1cmUuCi0gKi8KLS8vI2RlZmluZSBDQUxHTihjb2RlLi4uKQljb2RlCi0jZGVmaW5lIENBTEdOKGNvZGUuLi4pCi0KLS8qCiAgKiBUaGVvcnkgb2Ygb3BlcmF0aW9uCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgpAQCAtODIsNyArNzQsNyBAQAogCQlzdG1mZAlzcCEsIHtyNSAtIHI4fQogCQlibHQJNWYKIAotCUNBTEdOKAlhbmRzCWlwLCByMSwgIzMxCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJcnNiCXIzLCBpcCwgIzMyCQkpCiAJQ0FMR04oCXNiY25lcwlyNCwgcjMsIHIyCQkpICBAIEMgaXMgYWx3YXlzIHNldCBoZXJlCiAJQ0FMR04oCWJjcwkyZgkJCSkKQEAgLTE2OCw3ICsxNjAsNyBAQAogCQlzdWJzCXIyLCByMiwgIzI4CiAJCWJsdAkxNGYKIAotCUNBTEdOKAlhbmRzCWlwLCByMSwgIzMxCQkpCisJQ0FMR04oCWFuZHMJaXAsIHIwLCAjMzEJCSkKIAlDQUxHTigJcnNiCWlwLCBpcCwgIzMyCQkpCiAJQ0FMR04oCXNiY25lcwlyNCwgaXAsIHIyCQkpICBAIEMgaXMgYWx3YXlzIHNldCBoZXJlCiAJQ0FMR04oCXN1YmNjCXIyLCByMiwgaXAJCSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9tZW1tb3ZlLlMgYi9hcmNoL2FybS9saWIvbWVtbW92ZS5TCmluZGV4IGVmN2ZkZGMuLjJlMzAxYjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9tZW1tb3ZlLlMKKysrIGIvYXJjaC9hcm0vbGliL21lbW1vdmUuUwpAQCAtMTMsMTQgKzEzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgogCi0vKgotICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29kZSB0byBjYWNoZWxpbmUgYWxpZ24gdGhlIHNvdXJjZSBwb2ludGVyLgotICogRXhwZXJpbWVudHMgb24gdGVzdGVkIGFyY2hpdGVjdHVyZXMgKFN0cm9uZ0FSTSBhbmQgWFNjYWxlKSBkaWRuJ3Qgc2hvdwotICogdGhpcyBhIHdvcnRod2hpbGUgdGhpbmcgdG8gZG8uICBUaGF0IG1pZ2h0IGJlIGRpZmZlcmVudCBpbiB0aGUgZnV0dXJlLgotICovCi0vLyNkZWZpbmUgQ0FMR04oY29kZS4uLikgICAgICAgIGNvZGUKLSNkZWZpbmUgQ0FMR04oY29kZS4uLikKLQogCQkudGV4dAogCiAvKgpAQCAtNTUsMTEgKzQ3LDEyIEBACiAJCXN0bWZkCXNwISwge3I1IC0gcjh9CiAJCWJsdAk1ZgogCi0JQ0FMR04oCWFuZHMJaXAsIHIxLCAjMzEJCSkKKwlDQUxHTigJYW5kcwlpcCwgcjAsICMzMQkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIGlwLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAliY3MJMmYJCQkpCiAJQ0FMR04oCWFkcglyNCwgNmYJCQkpCiAJQ0FMR04oCXN1YnMJcjIsIHIyLCBpcAkJKSAgQCBDIGlzIHNldCBoZXJlCisJQ0FMR04oCXJzYglpcCwgaXAsICMzMgkJKQogCUNBTEdOKAlhZGQJcGMsIHI0LCBpcAkJKQogCiAJUExEKAlwbGQJW3IxLCAjLTRdCQkpCkBAIC0xMzgsOCArMTMxLDcgQEAKIAkJc3VicwlyMiwgcjIsICMyOAogCQlibHQJMTRmCiAKLQlDQUxHTigJYW5kcwlpcCwgcjEsICMzMQkJKQotCUNBTEdOKAlyc2IJaXAsIGlwLCAjMzIJCSkKKwlDQUxHTigJYW5kcwlpcCwgcjAsICMzMQkJKQogCUNBTEdOKAlzYmNuZXMJcjQsIGlwLCByMgkJKSAgQCBDIGlzIGFsd2F5cyBzZXQgaGVyZQogCUNBTEdOKAlzdWJjYwlyMiwgcjIsIGlwCQkpCiAJQ0FMR04oCWJjYwkxNWYJCQkpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9saWIvbWVtc2V0LlMgYi9hcmNoL2FybS9saWIvbWVtc2V0LlMKaW5kZXggOTViMTEwYi4uYjQ3N2Q0YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbGliL21lbXNldC5TCisrKyBiL2FyY2gvYXJtL2xpYi9tZW1zZXQuUwpAQCAtMzksNiArMzksOSBAQAogCW1vdglyMywgcjEKIAljbXAJcjIsICMxNgogCWJsdAk0ZgorCisjaWYgISBDQUxHTigxKSswCisKIC8qCiAgKiBXZSBuZWVkIGFuIGV4dHJhIHJlZ2lzdGVyIGZvciB0aGlzIGxvb3AgLSBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyBhbmQKICAqIHVzZSB0aGUgTFIKQEAgLTY0LDYgKzY3LDQ5IEBACiAJc3RtbmVpYQlyMCEsIHtyMSwgcjMsIGlwLCBscn0KIAlsZHIJbHIsIFtzcF0sICM0CiAKKyNlbHNlCisKKy8qCisgKiBUaGlzIHZlcnNpb24gYWxpZ25zIHRoZSBkZXN0aW5hdGlvbiBwb2ludGVyIGluIG9yZGVyIHRvIHdyaXRlCisgKiB3aG9sZSBjYWNoZSBsaW5lcyBhdCBvbmNlLgorICovCisKKwlzdG1mZAlzcCEsIHtyNC1yNywgbHJ9CisJbW92CXI0LCByMQorCW1vdglyNSwgcjEKKwltb3YJcjYsIHIxCisJbW92CXI3LCByMQorCW1vdglpcCwgcjEKKwltb3YJbHIsIHIxCisKKwljbXAJcjIsICM5NgorCXRzdGd0CXIwLCAjMzEKKwlibGUJM2YKKworCWFuZAlpcCwgcjAsICMzMQorCXJzYglpcCwgaXAsICMzMgorCXN1YglyMiwgcjIsIGlwCisJbW92cwlpcCwgaXAsIGxzbCAjKDMyIC0gNCkKKwlzdG1jc2lhCXIwISwge3I0LCByNSwgcjYsIHI3fQorCXN0bW1paWEJcjAhLCB7cjQsIHI1fQorCXRzdAlpcCwgIygxIDw8IDMwKQorCW1vdglpcCwgcjEKKwlzdHJuZQlyMSwgW3IwXSwgIzQKKworMzoJc3VicwlyMiwgcjIsICM2NAorCXN0bWdlaWEJcjAhLCB7cjEsIHIzLXI3LCBpcCwgbHJ9CisJc3RtZ2VpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0KKwliZ3QJM2IKKwlsZG1lcWZkCXNwISwge3I0LXI3LCBwY30KKworCXRzdAlyMiwgIzMyCisJc3RtbmVpYQlyMCEsIHtyMSwgcjMtcjcsIGlwLCBscn0KKwl0c3QJcjIsICMxNgorCXN0bW5laWEJcjAhLCB7cjQtcjd9CisJbGRtZmQJc3AhLCB7cjQtcjcsIGxyfQorCisjZW5kaWYKKwogNDoJdHN0CXIyLCAjOAogCXN0bW5laWEJcjAhLCB7cjEsIHIzfQogCXRzdAlyMiwgIzQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2xpYi9tZW16ZXJvLlMgYi9hcmNoL2FybS9saWIvbWVtemVyby5TCmluZGV4IGFiZjI1MDguLmI4Zjc5ZDggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2xpYi9tZW16ZXJvLlMKKysrIGIvYXJjaC9hcm0vbGliL21lbXplcm8uUwpAQCAtMzksNiArMzksOSBAQAogICovCiAJY21wCXIxLCAjMTYJCQlAIDEgd2UgY2FuIHNraXAgdGhpcyBjaHVuayBpZiB3ZQogCWJsdAk0ZgkJCUAgMSBoYXZlIDwgMTYgYnl0ZXMKKworI2lmICEgQ0FMR04oMSkrMAorCiAvKgogICogV2UgbmVlZCBhbiBleHRyYSByZWdpc3RlciBmb3IgdGhpcyBsb29wIC0gc2F2ZSB0aGUgcmV0dXJuIGFkZHJlc3MgYW5kCiAgKiB1c2UgdGhlIExSCkBAIC02NCw2ICs2Nyw0NyBAQAogCXN0bW5laWEJcjAhLCB7cjIsIHIzLCBpcCwgbHJ9CUAgNAogCWxkcglsciwgW3NwXSwgIzQJCUAgMQogCisjZWxzZQorCisvKgorICogVGhpcyB2ZXJzaW9uIGFsaWducyB0aGUgZGVzdGluYXRpb24gcG9pbnRlciBpbiBvcmRlciB0byB3cml0ZQorICogd2hvbGUgY2FjaGUgbGluZXMgYXQgb25jZS4KKyAqLworCisJc3RtZmQJc3AhLCB7cjQtcjcsIGxyfQorCW1vdglyNCwgcjIKKwltb3YJcjUsIHIyCisJbW92CXI2LCByMgorCW1vdglyNywgcjIKKwltb3YJaXAsIHIyCisJbW92CWxyLCByMgorCisJY21wCXIxLCAjOTYKKwlhbmRndHMJaXAsIHIwLCAjMzEKKwlibGUJM2YKKworCXJzYglpcCwgaXAsICMzMgorCXN1YglyMSwgcjEsIGlwCisJbW92cwlpcCwgaXAsIGxzbCAjKDMyIC0gNCkKKwlzdG1jc2lhCXIwISwge3I0LCByNSwgcjYsIHI3fQorCXN0bW1paWEJcjAhLCB7cjQsIHI1fQorCW1vdnMJaXAsIGlwLCBsc2wgIzIKKwlzdHJjcwlyMiwgW3IwXSwgIzQKKworMzoJc3VicwlyMSwgcjEsICM2NAorCXN0bWdlaWEJcjAhLCB7cjItcjcsIGlwLCBscn0KKwlzdG1nZWlhCXIwISwge3IyLXI3LCBpcCwgbHJ9CisJYmd0CTNiCisJbGRtZXFmZAlzcCEsIHtyNC1yNywgcGN9CisKKwl0c3QJcjEsICMzMgorCXN0bW5laWEJcjAhLCB7cjItcjcsIGlwLCBscn0KKwl0c3QJcjEsICMxNgorCXN0bW5laWEJcjAhLCB7cjQtcjd9CisJbGRtZmQJc3AhLCB7cjQtcjcsIGxyfQorCisjZW5kaWYKKwogNDoJdHN0CXIxLCAjOAkJCUAgMSA4IGJ5dGVzIG9yIG1vcmU/CiAJc3RtbmVpYQlyMCEsIHtyMiwgcjN9CQlAIDIKIAl0c3QJcjEsICM0CQkJQCAxIDQgYnl0ZXMgb3IgbW9yZT8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKaW5kZXggMGZjMDdiNi4uNWJhZDZiOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL0tjb25maWcKQEAgLTMwLDYgKzMwLDExIEBACiAJc2VsZWN0IEdFTkVSSUNfVElNRQogCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCiAKK2NvbmZpZyBBUkNIX0FUOTFTQU05RzIwCisJYm9vbCAiQVQ5MVNBTTlHMjAiCisJc2VsZWN0IEdFTkVSSUNfVElNRQorCXNlbGVjdCBHRU5FUklDX0NMT0NLRVZFTlRTCisKIGNvbmZpZyBBUkNIX0FUOTFDQVA5CiAJYm9vbCAiQVQ5MUNBUDkiCiAJc2VsZWN0IEdFTkVSSUNfVElNRQpAQCAtMTI2LDYgKzEzMSwxMiBAQAogCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBlbVFiaXQncyBFQ0JfQVQ5MSBib2FyZC4KIAkgIDxodHRwOi8vd2lraS5lbXFiaXQuY29tL2ZyZWUtZWNiLWF0OTE+CiAKK2NvbmZpZyBNQUNIX1lMOTIwMAorCWJvb2wgInVjRHJhZ29uIFlMLTkyMDAiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFSTTkyMDAKKwloZWxwCisJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIHRoZSB1Y0RyYWdvbiBZTC05MjAwIGJvYXJkLgorCiBlbmRpZgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE2NCw2ICsxNzUsMjAgQEAKIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgT2xpbWV4J3MgU0FNOS1MOTI2MCBib2FyZCBiYXNlZCBvbiB0aGUgQXRtZWwgQVQ5MVNBTTkyNjAuCiAJICA8aHR0cDovL3d3dy5vbGltZXguY29tL2Rldi9zYW05LUw5MjYwLmh0bWw+CiAKK2NvbmZpZyBNQUNIX1VTQl9BOTI2MAorCWJvb2wgIkNBTEFPIFVTQi1BOTI2MCIKKwlkZXBlbmRzIG9uIEFSQ0hfQVQ5MVNBTTkyNjAKKwloZWxwCisJICBTZWxlY3QgdGhpcyBpZiB5b3UgYXJlIHVzaW5nIGEgQ2FsYW8gU3lzdGVtcyBVU0ItQTkyNjAuCisJICA8aHR0cDovL3d3dy5jYWxhby1zeXN0ZW1zLmNvbT4KKworY29uZmlnIE1BQ0hfUUlMX0E5MjYwCisJYm9vbCAiQ0FMQU8gUUlMLUE5MjYwIGJvYXJkIgorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MAorCWhlbHAKKwkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgYSBDYWxhbyBTeXN0ZW1zIFFJTC1BOTI2MCBCb2FyZC4KKwkgIDxodHRwOi8vd3d3LmNhbGFvLXN5c3RlbXMuY29tPgorCiBlbmRpZgogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE5NCw2ICsyMTksMTMgQEAKIAkgIFNlbGVjdCB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgQXRtZWwncyBBVDkxU0FNOTI2My1FSyBFdmFsdWF0aW9uIEtpdC4KIAkgIDxodHRwOi8vd3d3LmF0bWVsLmNvbS9keW4vcHJvZHVjdHMvdG9vbHNfY2FyZC5hc3A/dG9vbF9pZD00MDU3PgogCitjb25maWcgTUFDSF9VU0JfQTkyNjMKKwlib29sICJDQUxBTyBVU0ItQTkyNjMiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYzCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBhIENhbGFvIFN5c3RlbXMgVVNCLUE5MjYzLgorCSAgPGh0dHA6Ly93d3cuY2FsYW8tc3lzdGVtcy5jb20+CisKIGVuZGlmCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjEyLDYgKzI0NCwyMCBAQAogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAoraWYgQVJDSF9BVDkxU0FNOUcyMAorCitjb21tZW50ICJBVDkxU0FNOUcyMCBCb2FyZCBUeXBlIgorCitjb25maWcgTUFDSF9BVDkxU0FNOUcyMEVLCisJYm9vbCAiQXRtZWwgQVQ5MVNBTTlHMjAtRUsgRXZhbHVhdGlvbiBLaXQiCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05RzIwCisJaGVscAorCSAgU2VsZWN0IHRoaXMgaWYgeW91IGFyZSB1c2luZyBBdG1lbCdzIEFUOTFTQU05RzIwLUVLIEV2YWx1YXRpb24gS2l0LgorCitlbmRpZgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogaWYgQVJDSF9BVDkxQ0FQOQogCiBjb21tZW50ICJBVDkxQ0FQOSBCb2FyZCBUeXBlIgpAQCAtMjQ3LDEzICsyOTMsMTMgQEAKIAogY29uZmlnIE1URF9BVDkxX0RBVEFGTEFTSF9DQVJECiAJYm9vbCAiRW5hYmxlIERhdGFGbGFzaCBDYXJkIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiAoQVJDSF9BVDkxUk05MjAwREsgfHwgTUFDSF9BVDkxUk05MjAwRUsgfHwgTUFDSF9BVDkxU0FNOTI2MEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjFFSyB8fCBNQUNIX0FUOTFTQU05MjYzRUsgfHwgTUFDSF9BVDkxQ0FQOUFESyB8fCBNQUNIX1NBTTlfTDkyNjAgfHwgTUFDSF9FQ0JBVDkxKQorCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMERLIHx8IE1BQ0hfQVQ5MVJNOTIwMEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MVNBTTlHMjBFSyB8fCBNQUNIX0VDQkFUOTEgfHwgTUFDSF9TQU05X0w5MjYwIHx8IE1BQ0hfQVQ5MUNBUDlBREspCiAJaGVscAogCSAgRW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBEYXRhRmxhc2ggY2FyZC4KIAogY29uZmlnIE1URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYKIAlib29sICJFbmFibGUgMTYtYml0IGRhdGEgYnVzIGludGVyZmFjZSB0byBOQU5EIGZsYXNoIgotCWRlcGVuZHMgb24gKE1BQ0hfQVQ5MVNBTTkyNjBFSyB8fCBNQUNIX0FUOTFTQU05MjYxRUsgfHwgTUFDSF9BVDkxU0FNOTI2M0VLIHx8IE1BQ0hfQVQ5MUNBUDlBREspCisJZGVwZW5kcyBvbiAoTUFDSF9BVDkxU0FNOTI2MEVLIHx8IE1BQ0hfQVQ5MVNBTTkyNjFFSyB8fCBNQUNIX0FUOTFTQU05MjYzRUsgfHwgTUFDSF9BVDkxU0FNOUcyMEVLIHx8IE1BQ0hfQVQ5MUNBUDlBREspCiAJaGVscAogCSAgT24gQVQ5MVNBTTkyNnggYm9hcmRzIGJvdGggdHlwZXMgb2YgTkFORCBmbGFzaCBjYW4gYmUgcHJlc2VudAogCSAgKDggYW5kIDE2IGJpdCBkYXRhIGJ1cyB3aWR0aCkuCkBAIC0zMDIsMTUgKzM0OCwxNSBAQAogCiBjb25maWcgQVQ5MV9FQVJMWV9VU0FSVDMKIAlib29sICJVU0FSVDMiCi0JZGVwZW5kcyBvbiAoQVJDSF9BVDkxUk05MjAwIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBBUkNIX0FUOTFTQU05MjYwKQorCWRlcGVuZHMgb24gKEFSQ0hfQVQ5MVJNOTIwMCB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05RzIwKQogCiBjb25maWcgQVQ5MV9FQVJMWV9VU0FSVDQKIAlib29sICJVU0FSVDQiCi0JZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYwCisJZGVwZW5kcyBvbiBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTlHMjAKIAogY29uZmlnIEFUOTFfRUFSTFlfVVNBUlQ1CiAJYm9vbCAiVVNBUlQ1IgotCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MAorCWRlcGVuZHMgb24gQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05RzIwCiAKIGVuZGNob2ljZQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLWF0OTEvTWFrZWZpbGUKaW5kZXggOGQ5YmMwMS4uN2Q2NDFmOSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9NYWtlZmlsZQpAQCAtMTUsNiArMTUsNyBAQAogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjEpCSs9IGF0OTFzYW05MjYxLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYxX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjMpCSs9IGF0OTFzYW05MjYzLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYzX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCkJKz0gYXQ5MXNhbTlybC5vIGF0OTFzYW05MjZ4X3RpbWUubyBhdDkxc2FtOXJsX2RldmljZXMubworb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjApCSs9IGF0OTFzYW05MjYwLm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFzYW05MjYwX2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MUNBUDkpCSs9IGF0OTFjYXA5Lm8gYXQ5MXNhbTkyNnhfdGltZS5vIGF0OTFjYXA5X2RldmljZXMubwogb2JqLSQoQ09ORklHX0FSQ0hfQVQ5MVg0MCkJKz0gYXQ5MXg0MC5vIGF0OTF4NDBfdGltZS5vCiAKQEAgLTMwLDIxICszMSwyOCBAQAogb2JqLSQoQ09ORklHX01BQ0hfS0FGQSkJCSs9IGJvYXJkLWthZmEubwogb2JqLSQoQ09ORklHX01BQ0hfUElDT1RVWDJYWCkJKz0gYm9hcmQtcGljb3R1eDIwMC5vCiBvYmotJChDT05GSUdfTUFDSF9FQ0JBVDkxKQkrPSBib2FyZC1lY2JhdDkxLm8KK29iai0kKENPTkZJR19NQUNIX1lMOTIwMCkJKz0gYm9hcmQteWwtOTIwMC5vCiAKICMgQVQ5MVNBTTkyNjAgYm9hcmQtc3BlY2lmaWMgc3VwcG9ydAogb2JqLSQoQ09ORklHX01BQ0hfQVQ5MVNBTTkyNjBFSykgKz0gYm9hcmQtc2FtOTI2MGVrLm8KIG9iai0kKENPTkZJR19NQUNIX0NBTTYwKQkrPSBib2FyZC1jYW02MC5vCiBvYmotJChDT05GSUdfTUFDSF9TQU05X0w5MjYwKQkrPSBib2FyZC1zYW05LWw5MjYwLm8KK29iai0kKENPTkZJR19NQUNIX1VTQl9BOTI2MCkJKz0gYm9hcmQtdXNiLWE5MjYwLm8KK29iai0kKENPTkZJR19NQUNIX1FJTF9BOTI2MCkJKz0gYm9hcmQtcWlsLWE5MjYwLm8KIAogIyBBVDkxU0FNOTI2MSBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOTI2MUVLKSArPSBib2FyZC1zYW05MjYxZWsubwogCiAjIEFUOTFTQU05MjYzIGJvYXJkLXNwZWNpZmljIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX0FUOTFTQU05MjYzRUspICs9IGJvYXJkLXNhbTkyNjNlay5vCitvYmotJChDT05GSUdfTUFDSF9VU0JfQTkyNjMpCSs9IGJvYXJkLXVzYi1hOTI2My5vCiAKICMgQVQ5MVNBTTlSTCBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CiBvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOVJMRUspCSs9IGJvYXJkLXNhbTlybGVrLm8KIAorIyBBVDkxU0FNOUcyMCBib2FyZC1zcGVjaWZpYyBzdXBwb3J0CitvYmotJChDT05GSUdfTUFDSF9BVDkxU0FNOUcyMEVLKSArPSBib2FyZC1zYW05ZzIwZWsubworCiAjIEFUOTFDQVA5IGJvYXJkLXNwZWNpZmljIHN1cHBvcnQKIG9iai0kKENPTkZJR19NQUNIX0FUOTFDQVA5QURLKQkrPSBib2FyZC1jYXA5YWRrLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFjYXA5X2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxY2FwOV9kZXZpY2VzLmMKaW5kZXggYmU1MjY3NC4uNzQ3YjlkZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFjYXA5X2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MWNhcDlfZGV2aWNlcy5jCkBAIC04NCw2ICs4NCwxMDUgQEAKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogIFVTQiBIUyBEZXZpY2UgKEdhZGdldCkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkEpIHx8IGRlZmluZWQoQ09ORklHX1VTQl9HQURHRVRfQVRNRUxfVVNCQV9NT0RVTEUpCisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdXNiYV91ZGNfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBBVDkxQ0FQOV9VRFBIU19GSUZPLAorCQkuZW5kCT0gQVQ5MUNBUDlfVURQSFNfRklGTyArIFNaXzUxMksgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MUNBUDlfQkFTRV9VRFBIUywKKwkJLmVuZAk9IEFUOTFDQVA5X0JBU0VfVURQSFMgKyBTWl8xSyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBBVDkxQ0FQOV9JRF9VRFBIUywKKwkJLmVuZAk9IEFUOTFDQVA5X0lEX1VEUEhTLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworI2RlZmluZSBFUChuYW0sIGlkeCwgbWF4cGt0LCBtYXhiaywgZG1hLCBpc29jKQkJCVwKKwlbaWR4XSA9IHsJCQkJCQlcCisJCS5uYW1lCQk9IG5hbSwJCQkJXAorCQkuaW5kZXgJCT0gaWR4LAkJCQlcCisJCS5maWZvX3NpemUJPSBtYXhwa3QsCQkJXAorCQkubnJfYmFua3MJPSBtYXhiaywJCQlcCisJCS5jYW5fZG1hCT0gZG1hLAkJCQlcCisJCS5jYW5faXNvYwk9IGlzb2MsCQkJCVwKKwl9CisKK3N0YXRpYyBzdHJ1Y3QgdXNiYV9lcF9kYXRhIHVzYmFfdWRjX2VwW10gPSB7CisJRVAoImVwMCIsIDAsICAgNjQsIDEsIDAsIDApLAorCUVQKCJlcDEiLCAxLCAxMDI0LCAzLCAxLCAxKSwKKwlFUCgiZXAyIiwgMiwgMTAyNCwgMywgMSwgMSksCisJRVAoImVwMyIsIDMsIDEwMjQsIDIsIDEsIDEpLAorCUVQKCJlcDQiLCA0LCAxMDI0LCAyLCAxLCAxKSwKKwlFUCgiZXA1IiwgNSwgMTAyNCwgMiwgMSwgMCksCisJRVAoImVwNiIsIDYsIDEwMjQsIDIsIDEsIDApLAorCUVQKCJlcDciLCA3LCAxMDI0LCAyLCAwLCAwKSwKK307CisKKyN1bmRlZiBFUAorCisvKgorICogcGRhdGEgZG9lc24ndCBoYXZlIHJvb20gZm9yIGFueSBlbmRwb2ludHMsIHNvIHdlIG5lZWQgdG8KKyAqIGFwcGVuZCByb29tIGZvciB0aGUgb25lcyB3ZSBuZWVkIHJpZ2h0IGFmdGVyIGl0LgorICovCitzdGF0aWMgc3RydWN0IHsKKwlzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhIHBkYXRhOworCXN0cnVjdCB1c2JhX2VwX2RhdGEgZXBbOF07Cit9IHVzYmFfdWRjX2RhdGE7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0OTFfdXNiYV91ZGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJhdG1lbF91c2JhX3VkYyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnVzYmFfdWRjX2RhdGEucGRhdGEsCisJfSwKKwkucmVzb3VyY2UJPSB1c2JhX3VkY19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHVzYmFfdWRjX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKQoreworCWF0OTFfc3lzX3dyaXRlKEFUOTFfTUFUUklYX1VEUEhTLCBBVDkxX01BVFJJWF9TRUxFQ1RfVURQSFMgfAorCQkJCQkgIEFUOTFfTUFUUklYX1VEUEhTX0JZUEFTU19MT0NLKTsKKworCS8qCisJICogSW52YWxpZCBwaW5zIGFyZSAwIG9uIEFUOTEsIGJ1dCB0aGUgdXNiYSBkcml2ZXIgaXMgc2hhcmVkCisJICogd2l0aCBBVlIzMiwgd2hpY2ggdXNlIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLiBPbmNlL2lmCisJICogZ3Bpb19pc192YWxpZCgpIGlzIHBvcnRlZCB0byBBVDkxLCByZXZpc2l0IHRoaXMgY29kZS4KKwkgKi8KKwl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gLUVJTlZBTDsKKwl1c2JhX3VkY19kYXRhLnBkYXRhLm51bV9lcCA9IEFSUkFZX1NJWkUodXNiYV91ZGNfZXApOworCW1lbWNweSh1c2JhX3VkY19kYXRhLmVwLCB1c2JhX3VkY19lcCwgc2l6ZW9mKHVzYmFfdWRjX2VwKSk7OworCisJaWYgKGRhdGEgJiYgZGF0YS0+dmJ1c19waW4gPiAwKSB7CisJCWF0OTFfc2V0X2dwaW9faW5wdXQoZGF0YS0+dmJ1c19waW4sIDApOworCQlhdDkxX3NldF9kZWdsaXRjaChkYXRhLT52YnVzX3BpbiwgMSk7CisJCXVzYmFfdWRjX2RhdGEucGRhdGEudmJ1c19waW4gPSBkYXRhLT52YnVzX3BpbjsKKwl9CisKKwkvKiBQdWxsdXAgcGluIGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSBVU0IgZGV2aWNlIHBlcmlwaGVyYWwgKi8KKworCS8qIENsb2NrcyAqLworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1dG1pX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJoY2xrIik7CisJYXQ5MV9jbG9ja19hc3NvY2lhdGUoInVkcGhzX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJwY2xrIik7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmF0OTFfdXNiYV91ZGNfZGV2aWNlKTsKK30KKyNlbHNlCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKSB7fQorI2VuZGlmCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBFdGhlcm5ldAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYwppbmRleCBlZTI2NTUwLi4zODBmMTJhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjAuYwpAQCAtNDcsNiArNDcsMjAgQEAKIAl9CiB9OwogCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGF0OTFzYW05ZzIwX3NyYW1fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEFUOTFfSU9fVklSVF9CQVNFIC0gQVQ5MVNBTTlHMjBfU1JBTTBfU0laRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEFUOTFTQU05RzIwX1NSQU0wX0JBU0UpLAorCQkubGVuZ3RoCQk9IEFUOTFTQU05RzIwX1NSQU0wX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CisJCS52aXJ0dWFsCT0gQVQ5MV9JT19WSVJUX0JBU0UgLSBBVDkxU0FNOUcyMF9TUkFNMF9TSVpFIC0gQVQ5MVNBTTlHMjBfU1JBTTFfU0laRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEFUOTFTQU05RzIwX1NSQU0xX0JBU0UpLAorCQkubGVuZ3RoCQk9IEFUOTFTQU05RzIwX1NSQU0xX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9Cit9OworCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIGF0OTFzYW05eGVfc3JhbV9kZXNjW10gX19pbml0ZGF0YSA9IHsKIAl7CiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBVDkxU0FNOVhFX1NSQU1fQkFTRSksCkBAIC0zMDcsNiArMzIxLDggQEAKIAogCWlmIChjcHVfaXNfYXQ5MXNhbTl4ZSgpKQogCQlhdDkxc2FtOXhlX2luaXRpYWxpemUoKTsKKwllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSkKKwkJaW90YWJsZV9pbml0KGF0OTFzYW05ZzIwX3NyYW1fZGVzYywgQVJSQVlfU0laRShhdDkxc2FtOWcyMF9zcmFtX2Rlc2MpKTsKIAllbHNlCiAJCWlvdGFibGVfaW5pdChhdDkxc2FtOTI2MF9zcmFtX2Rlc2MsIEFSUkFZX1NJWkUoYXQ5MXNhbTkyNjBfc3JhbV9kZXNjKSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MF9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjBfZGV2aWNlcy5jCmluZGV4IDM5M2EzMmEuLjg2Y2JhNGEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MF9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYwX2RldmljZXMuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY3B1Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXNhbTkyNjAuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxc2FtOTI2MF9tYXRyaXguaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxc2FtOV9zbWMuaD4KQEAgLTMyMCwyMCArMzIxLDQxIEBACiAJY3NhID0gYXQ5MV9zeXNfcmVhZChBVDkxX01BVFJJWF9FQklDU0EpOwogCWF0OTFfc3lzX3dyaXRlKEFUOTFfTUFUUklYX0VCSUNTQSwgY3NhIHwgQVQ5MV9NQVRSSVhfQ1MzQV9TTUNfU01BUlRNRURJQSk7CiAKLQkvKiBzZXQgdGhlIGJ1cyBpbnRlcmZhY2UgY2hhcmFjdGVyaXN0aWNzICovCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygwKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQotCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOworCWlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSkgeworCQkvKiBUaW1pbmcgZm9yIHNhbTkyNjAgKi8KKwkJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQotCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDMpCisJCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg1KSB8IEFUOTFfU01DX05SRENZQ0xFXyg1KSk7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwogCi0JaWYgKGRhdGEtPmJ1c193aWR0aF8xNikKLQkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKLQllbHNlCi0JCW1vZGUgPSBBVDkxX1NNQ19EQldfODsKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygyKSk7CisJCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzE2OworCQllbHNlCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIG1vZGUgfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDIpKTsKKwl9CisKKwlpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKKwkJLyogVGltaW5nIGZvciBzYW05ZzIwICovCisJCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygyKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDIpIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKworCQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDQpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDQpCisJCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oNCkgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oNCkpOworCisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNykgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNykpOworCisJCWlmIChkYXRhLT5idXNfd2lkdGhfMTYpCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzE2OworCQllbHNlCisJCQltb2RlID0gQVQ5MV9TTUNfREJXXzg7CisJCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIG1vZGUgfCBBVDkxX1NNQ19SRUFETU9ERSB8IEFUOTFfU01DX1dSSVRFTU9ERSB8IEFUOTFfU01DX0VYTldNT0RFX0RJU0FCTEUgfCBBVDkxX1NNQ19UREZfKDMpKTsKKwl9CiAKIAkvKiBlbmFibGUgcGluICovCiAJaWYgKGRhdGEtPmVuYWJsZV9waW4pCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjFfZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYxX2RldmljZXMuYwppbmRleCAwYmFiYjY0Li5lYzE4OTEzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjFfZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2MV9kZXZpY2VzLmMKQEAgLTIzMiwxOSArMjMyLDE5IEBACiAJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9NQVRSSVhfRUJJQ1NBLCBjc2EgfCBBVDkxX01BVFJJWF9DUzNBX1NNQ19TTUFSVE1FRElBKTsKIAogCS8qIHNldCB0aGUgYnVzIGludGVyZmFjZSBjaGFyYWN0ZXJpc3RpY3MgKi8KLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCi0JCQl8IEFUOTFfU01DX05SRFNFVFVQXygwKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfU0VUVVAoMyksIEFUOTFfU01DX05XRVNFVFVQXygxKSB8IEFUOTFfU01DX05DU19XUlNFVFVQXygwKQorCQkJfCBBVDkxX1NNQ19OUkRTRVRVUF8oMSkgfCBBVDkxX1NNQ19OQ1NfUkRTRVRVUF8oMCkpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygyKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXyg1KQotCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMikgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oNSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1BVTFNFKDMpLCBBVDkxX1NNQ19OV0VQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfV1JQVUxTRV8oMykKKwkJCXwgQVQ5MV9TTUNfTlJEUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1JEUFVMU0VfKDMpKTsKIAotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNykgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNykpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NZQ0xFKDMpLCBBVDkxX1NNQ19OV0VDWUNMRV8oNSkgfCBBVDkxX1NNQ19OUkRDWUNMRV8oNSkpOwogCiAJaWYgKGRhdGEtPmJ1c193aWR0aF8xNikKIAkJbW9kZSA9IEFUOTFfU01DX0RCV18xNjsKIAllbHNlCiAJCW1vZGUgPSBBVDkxX1NNQ19EQldfODsKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBtb2RlIHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygxKSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfTU9ERSgzKSwgbW9kZSB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMikpOwogCiAJLyogZW5hYmxlIHBpbiAqLwogCWlmIChkYXRhLT5lbmFibGVfcGluKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYzX2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOTI2M19kZXZpY2VzLmMKaW5kZXggNzE5NjY3ZS4uOGE4MWY3NiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05MjYzX2RldmljZXMuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTkyNjNfZGV2aWNlcy5jCkBAIC0zOTEsOCArMzkxLDggQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQkkwQ1NBLCBjc2EgfCBBVDkxX01BVFJJWF9FQkkwX0NTM0FfU01DX1NNQVJUTUVESUEpOwogCiAJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKLQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQl8IEFUOTFfU01DX05SRFNFVFVQXygxKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CiAKIAlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDMpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDMpCiAJCQl8IEFUOTFfU01DX05SRFBVTFNFXygzKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXygzKSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTlybF9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXNhbTlybF9kZXZpY2VzLmMKaW5kZXggNDUwZGIzMC4uYWUyODEwMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTFzYW05cmxfZGV2aWNlcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxc2FtOXJsX2RldmljZXMuYwpAQCAtMjYsNiArMjYsMTAxIEBACiAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBVU0IgSFMgRGV2aWNlIChHYWRnZXQpCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgZGVmaW5lZChDT05GSUdfVVNCX0dBREdFVF9BVE1FTF9VU0JBKSB8fCBkZWZpbmVkKENPTkZJR19VU0JfR0FER0VUX0FUTUVMX1VTQkFfTU9EVUxFKQorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVzYmFfdWRjX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gQVQ5MVNBTTlSTF9VRFBIU19GSUZPLAorCQkuZW5kCT0gQVQ5MVNBTTlSTF9VRFBIU19GSUZPICsgU1pfNTEySyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzFdID0geworCQkuc3RhcnQJPSBBVDkxU0FNOVJMX0JBU0VfVURQSFMsCisJCS5lbmQJPSBBVDkxU0FNOVJMX0JBU0VfVURQSFMgKyBTWl8xSyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdID0geworCQkuc3RhcnQJPSBBVDkxU0FNOVJMX0lEX1VEUEhTLAorCQkuZW5kCT0gQVQ5MVNBTTlSTF9JRF9VRFBIUywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKKyNkZWZpbmUgRVAobmFtLCBpZHgsIG1heHBrdCwgbWF4YmssIGRtYSwgaXNvYykJCQlcCisJW2lkeF0gPSB7CQkJCQkJXAorCQkubmFtZQkJPSBuYW0sCQkJCVwKKwkJLmluZGV4CQk9IGlkeCwJCQkJXAorCQkuZmlmb19zaXplCT0gbWF4cGt0LAkJCVwKKwkJLm5yX2JhbmtzCT0gbWF4YmssCQkJXAorCQkuY2FuX2RtYQk9IGRtYSwJCQkJXAorCQkuY2FuX2lzb2MJPSBpc29jLAkJCQlcCisJfQorCitzdGF0aWMgc3RydWN0IHVzYmFfZXBfZGF0YSB1c2JhX3VkY19lcFtdIF9faW5pdGRhdGEgPSB7CisJRVAoImVwMCIsIDAsIDY0LCAxLCAwLCAwKSwKKwlFUCgiZXAxIiwgMSwgMTAyNCwgMiwgMSwgMSksCisJRVAoImVwMiIsIDIsIDEwMjQsIDIsIDEsIDEpLAorCUVQKCJlcDMiLCAzLCAxMDI0LCAzLCAxLCAwKSwKKwlFUCgiZXA0IiwgNCwgMTAyNCwgMywgMSwgMCksCisJRVAoImVwNSIsIDUsIDEwMjQsIDMsIDEsIDEpLAorCUVQKCJlcDYiLCA2LCAxMDI0LCAzLCAxLCAxKSwKK307CisKKyN1bmRlZiBFUAorCisvKgorICogcGRhdGEgZG9lc24ndCBoYXZlIHJvb20gZm9yIGFueSBlbmRwb2ludHMsIHNvIHdlIG5lZWQgdG8KKyAqIGFwcGVuZCByb29tIGZvciB0aGUgb25lcyB3ZSBuZWVkIHJpZ2h0IGFmdGVyIGl0LgorICovCitzdGF0aWMgc3RydWN0IHsKKwlzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhIHBkYXRhOworCXN0cnVjdCB1c2JhX2VwX2RhdGEgZXBbN107Cit9IHVzYmFfdWRjX2RhdGE7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGF0OTFfdXNiYV91ZGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJhdG1lbF91c2JhX3VkYyIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnVzYmFfdWRjX2RhdGEucGRhdGEsCisJfSwKKwkucmVzb3VyY2UJPSB1c2JhX3VkY19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHVzYmFfdWRjX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKQoreworCS8qCisJICogSW52YWxpZCBwaW5zIGFyZSAwIG9uIEFUOTEsIGJ1dCB0aGUgdXNiYSBkcml2ZXIgaXMgc2hhcmVkCisJICogd2l0aCBBVlIzMiwgd2hpY2ggdXNlIG5lZ2F0aXZlIHZhbHVlcyBpbnN0ZWFkLiBPbmNlL2lmCisJICogZ3Bpb19pc192YWxpZCgpIGlzIHBvcnRlZCB0byBBVDkxLCByZXZpc2l0IHRoaXMgY29kZS4KKwkgKi8KKwl1c2JhX3VkY19kYXRhLnBkYXRhLnZidXNfcGluID0gLUVJTlZBTDsKKwl1c2JhX3VkY19kYXRhLnBkYXRhLm51bV9lcCA9IEFSUkFZX1NJWkUodXNiYV91ZGNfZXApOworCW1lbWNweSh1c2JhX3VkY19kYXRhLmVwLCB1c2JhX3VkY19lcCwgc2l6ZW9mKHVzYmFfdWRjX2VwKSk7OworCisJaWYgKGRhdGEgJiYgZGF0YS0+dmJ1c19waW4gPiAwKSB7CisJCWF0OTFfc2V0X2dwaW9faW5wdXQoZGF0YS0+dmJ1c19waW4sIDApOworCQlhdDkxX3NldF9kZWdsaXRjaChkYXRhLT52YnVzX3BpbiwgMSk7CisJCXVzYmFfdWRjX2RhdGEucGRhdGEudmJ1c19waW4gPSBkYXRhLT52YnVzX3BpbjsKKwl9CisKKwkvKiBQdWxsdXAgcGluIGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSBVU0IgZGV2aWNlIHBlcmlwaGVyYWwgKi8KKworCS8qIENsb2NrcyAqLworCWF0OTFfY2xvY2tfYXNzb2NpYXRlKCJ1dG1pX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJoY2xrIik7CisJYXQ5MV9jbG9ja19hc3NvY2lhdGUoInVkcGhzX2NsayIsICZhdDkxX3VzYmFfdWRjX2RldmljZS5kZXYsICJwY2xrIik7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmF0OTFfdXNiYV91ZGNfZGV2aWNlKTsKK30KKyNlbHNlCit2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKSB7fQorI2VuZGlmCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqICBNTUMgLyBTRAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTM4LDE1ICsyMzMsMTUgQEAKIAlhdDkxX3N5c193cml0ZShBVDkxX01BVFJJWF9FQklDU0EsIGNzYSB8IEFUOTFfTUFUUklYX0NTM0FfU01DX1NNQVJUTUVESUEpOwogCiAJLyogc2V0IHRoZSBidXMgaW50ZXJmYWNlIGNoYXJhY3RlcmlzdGljcyAqLwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX1NFVFVQKDMpLCBBVDkxX1NNQ19OV0VTRVRVUF8oMCkgfCBBVDkxX1NNQ19OQ1NfV1JTRVRVUF8oMCkKLQkJCXwgQVQ5MV9TTUNfTlJEU0VUVVBfKDApIHwgQVQ5MV9TTUNfTkNTX1JEU0VUVVBfKDApKTsKKwlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19TRVRVUCgzKSwgQVQ5MV9TTUNfTldFU0VUVVBfKDEpIHwgQVQ5MV9TTUNfTkNTX1dSU0VUVVBfKDApCisJCQl8IEFUOTFfU01DX05SRFNFVFVQXygxKSB8IEFUOTFfU01DX05DU19SRFNFVFVQXygwKSk7CiAKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19QVUxTRSgzKSwgQVQ5MV9TTUNfTldFUFVMU0VfKDIpIHwgQVQ5MV9TTUNfTkNTX1dSUFVMU0VfKDUpCi0JCQl8IEFUOTFfU01DX05SRFBVTFNFXygyKSB8IEFUOTFfU01DX05DU19SRFBVTFNFXyg1KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfUFVMU0UoMyksIEFUOTFfU01DX05XRVBVTFNFXygzKSB8IEFUOTFfU01DX05DU19XUlBVTFNFXygzKQorCQkJfCBBVDkxX1NNQ19OUkRQVUxTRV8oMykgfCBBVDkxX1NNQ19OQ1NfUkRQVUxTRV8oMykpOwogCi0JYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg3KSB8IEFUOTFfU01DX05SRENZQ0xFXyg3KSk7CisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1lDTEUoMyksIEFUOTFfU01DX05XRUNZQ0xFXyg1KSB8IEFUOTFfU01DX05SRENZQ0xFXyg1KSk7CiAKLQlhdDkxX3N5c193cml0ZShBVDkxX1NNQ19NT0RFKDMpLCBBVDkxX1NNQ19EQldfOCB8IEFUOTFfU01DX1JFQURNT0RFIHwgQVQ5MV9TTUNfV1JJVEVNT0RFIHwgQVQ5MV9TTUNfRVhOV01PREVfRElTQUJMRSB8IEFUOTFfU01DX1RERl8oMSkpOworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU01DX01PREUoMyksIEFUOTFfU01DX0RCV184IHwgQVQ5MV9TTUNfUkVBRE1PREUgfCBBVDkxX1NNQ19XUklURU1PREUgfCBBVDkxX1NNQ19FWE5XTU9ERV9ESVNBQkxFIHwgQVQ5MV9TTUNfVERGXygyKSk7CiAKIAkvKiBlbmFibGUgcGluICovCiAJaWYgKGRhdGEtPmVuYWJsZV9waW4pCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXg0MC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2F0OTF4NDAuYwppbmRleCAxZGUxMjFmLi5mNDQ2NDc3IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXg0MC5jCisrKyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9hdDkxeDQwLmMKQEAgLTE2LDE2ICsxNiwzMiBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxeDQwLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9zdC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3RpbWV4Lmg+CiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAvKgotICogVGhpcyBpcyB1c2VkIGluIHRoZSBncGlvIGNvZGUsIHN0dWIgbG9jYWxseS4KKyAqIEV4cG9ydCB0aGUgY2xvY2sgZnVuY3Rpb25zIGZvciB0aGUgQVQ5MVg0MC4gU29tZSBleHRlcm5hbCBjb2RlIGNvbW1vbgorICogdG8gYWxsIEFUOTEgZmFtaWx5IHBhcnRzIHJlbHlzIG9uIHRoaXMsIGxpa2UgdGhlIGdwaW8gYW5kIHNlcmlhbCBzdXBwb3J0LgogICovCiBpbnQgY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCiB7CiAJcmV0dXJuIDA7CiB9CiAKK3ZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworfQorCit1bnNpZ25lZCBsb25nIGNsa19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIEFUOTFYNDBfTUFTVEVSX0NMT0NLOworfQorCitzdHJ1Y3QgY2xrICpjbGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqaWQpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKIHZvaWQgX19pbml0IGF0OTF4NDBfaW5pdGlhbGl6ZSh1bnNpZ25lZCBsb25nIG1haW5fY2xvY2spCiB7CiAJYXQ5MV9leHRlcm5faXJxID0gKDEgPDwgQVQ5MVg0MF9JRF9JUlEwKSB8ICgxIDw8IEFUOTFYNDBfSURfSVJRMSkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXA5YWRrLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FwOWFkay5jCmluZGV4IGU1NTEyZDEuLjhhMmE5NTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXA5YWRrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcDlhZGsuYwpAQCAtNzgsNiArNzgsMTIgQEAKIAkucG9ydHMJCT0gMiwKIH07CiAKKy8qCisgKiBVU0IgSFMgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCB1c2JhX3BsYXRmb3JtX2RhdGEgX19pbml0ZGF0YSBjYXA5YWRrX3VzYmFfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEIzMSwKK307CiAKIC8qCiAgKiBBRFM3ODQ2IFRvdWNoc2NyZWVuCkBAIC0zMjYsNiArMzMyLDkgQEAKIAkvKiBVU0IgSG9zdCAqLwogCXNldF9pcnFfdHlwZShBVDkxQ0FQOV9JRF9VSFAsIElSUVRfSElHSCk7CiAJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJmNhcDlhZGtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgSFMgKi8KKwlzZXRfaXJxX3R5cGUoQVQ5MUNBUDlfSURfVURQSFMsIElSUVRfSElHSCk7CisJYXQ5MV9hZGRfZGV2aWNlX3VzYmEoJmNhcDlhZGtfdXNiYV91ZGNfZGF0YSk7CiAJLyogU1BJICovCiAJYXQ5MV9hZGRfZGV2aWNlX3NwaShjYXA5YWRrX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKGNhcDlhZGtfc3BpX2RldmljZXMpKTsKIAkvKiBUb3VjaHNjcmVlbiAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcm1ldmEuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jYXJtZXZhLmMKaW5kZXggMGYwODc4Mi4uOTg1NGZjMyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNhcm1ldmEuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY2FybWV2YS5jCkBAIC00MCwyNCArNDAsMjEgQEAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGNhcm1ldmFfdWFydF9jb25maWcgPSB7Ci0JLmNvbnNvbGVfdHR5CT0gMCwJCQkJLyogdHR5UzAgKi8KLQkubnJfdHR5CQk9IDIsCi0JLnR0eV9tYXAJPSB7IDQsIDEsIC0xLCAtMSwgLTEgfQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KIHN0YXRpYyB2b2lkIF9faW5pdCBjYXJtZXZhX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAyMC4wMDAgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMjAwMDAwMDAsIEFUOTFSTTkyMDBfQkdBKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZjYXJtZXZhX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMSBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMSwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJICAgfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCSAgIHwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgY2FybWV2YV9pbml0X2lycSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNzYjYzNy5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWNzYjYzNy5jCmluZGV4IDQxOWZkMTkuLmJiMWE1NDcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1jc2I2MzcuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtY3NiNjM3LmMKQEAgLTQ1LDEwICs0NSwxMCBAQAogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAzLjY4NjQgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMzY4NjQwMCwgQVQ5MVJNOTIwMF9CR0EpOwogCi0JLyogREJHVSBvbiB0dHlTMCAqLworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCiAJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOwogCi0JLyogbWFrZSBjb25zb2xlPXR0eVMwIHRoZSBkZWZhdWx0ICovCisJLyogbWFrZSBjb25zb2xlPXR0eVMwIChpZSwgREJHVSkgdGhlIGRlZmF1bHQgKi8KIAlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWRrLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYwppbmRleCBjMWE4MTNjLi5kYWI5NThkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZGsuYwpAQCAtNDUsMTcgKzQ1LDYgQEAKICNpbmNsdWRlICJnZW5lcmljLmgiCiAKIAotLyoKLSAqIFNlcmlhbCBwb3J0IGNvbmZpZ3VyYXRpb24uCi0gKiAgICAwIC4uIDMgPSBVU0FSVDAgLi4gVVNBUlQzCi0gKiAgICA0ICAgICAgPSBEQkdVCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgYXQ5MV91YXJ0X2NvbmZpZyBfX2luaXRkYXRhIGRrX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAyLAotCS50dHlfbWFwCT0geyA0LCAxLCAtMSwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCiBzdGF0aWMgdm9pZCBfX2luaXQgZGtfbWFwX2lvKHZvaWQpCiB7CiAJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDE4LjQzMiBNSHogY3J5c3RhbCAqLwpAQCAtNjQsOCArNTMsMTYgQEAKIAkvKiBTZXR1cCB0aGUgTEVEcyAqLwogCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BCMiwgQVQ5MV9QSU5fUEIyKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZka191YXJ0X2NvbmZpZyk7CisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGRrX2luaXRfaXJxKHZvaWQpCkBAIC0xNjMsNyArMTYwLDcgQEAKICNkZWZpbmUgREtfRkxBU0hfU0laRQkweDIwMDAwMAogCiBzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBka19mbGFzaF9kYXRhID0gewotCS53aWR0aAk9IDIsCisJLndpZHRoCQk9IDIsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGRrX2ZsYXNoX3Jlc291cmNlID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWViOTIwMC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWViOTIwMC5jCmluZGV4IGFmMWExZDguLjNmZTA1NGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lYjkyMDAuYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtZWI5MjAwLmMKQEAgLTQwLDI0ICs0MCwyNCBAQAogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqLwotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEgZWI5MjAwX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAyLAotCS50dHlfbWFwCT0geyA0LCAxLCAtMSwgLTEsIC0xIH0JCS8qIHR0eVMwLCAuLi4sIHR0eVM0ICovCi19OwotCiBzdGF0aWMgdm9pZCBfX2luaXQgZWI5MjAwX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KIAlhdDkxcm05MjAwX2luaXRpYWxpemUoMTg0MzIwMDAsIEFUOTFSTTkyMDBfQkdBKTsKIAotCS8qIFNldHVwIHRoZSBzZXJpYWwgcG9ydHMgYW5kIGNvbnNvbGUgKi8KLQlhdDkxX2luaXRfc2VyaWFsKCZlYjkyMDBfdWFydF9jb25maWcpOworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQl8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIFVTQVJUMiBvbiB0dHlTMi4gKFJ4LCBUeCkgLSBJUkRBICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMyLCAyLCAwKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlYjkyMDBfaW5pdF9pcnEodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1lay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKaW5kZXggMDU3NGU1MC4uNzRhYTQzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWVrLmMKQEAgLTQ1LDE3ICs0NSw2IEBACiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICovCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSBla191YXJ0X2NvbmZpZyA9IHsKLQkuY29uc29sZV90dHkJPSAwLAkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMiwKLQkudHR5X21hcAk9IHsgNCwgMSwgLTEsIC0xLCAtMSB9CQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQogewogCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KQEAgLTY0LDggKzUzLDE2IEBACiAJLyogU2V0dXAgdGhlIExFRHMgKi8KIAlhdDkxX2luaXRfbGVkcyhBVDkxX1BJTl9QQjEsIEFUOTFfUElOX1BCMik7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgmZWtfdWFydF9jb25maWcpOworCS8qIERCR1Ugb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQxIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMxLCAxLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTCisJCQkgICB8IEFUTUVMX1VBUlRfRFRSIHwgQVRNRUxfVUFSVF9EU1IgfCBBVE1FTF9VQVJUX0RDRAorCQkJICAgfCBBVE1FTF9VQVJUX1JJKTsKKworCS8qIHNldCBzZXJpYWwgY29uc29sZSB0byB0dHlTMCAoaWUsIERCR1UpICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBla19pbml0X2lycSh2b2lkKQpAQCAtMTIyLDcgKzExOSw3IEBACiAjZGVmaW5lIEVLX0ZMQVNIX1NJWkUJMHgyMDAwMDAKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgZWtfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGgJPSAyLAorCS53aWR0aAkJPSAyLAogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBla19mbGFzaF9yZXNvdXJjZSA9IHsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1rYjkyMDIuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1rYjkyMDIuYwppbmRleCA0YjM5YjljLi5jYjA2NWZlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQta2I5MjAyLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLWtiOTIwMi5jCkBAIC0zNywyMCArMzcsMTEgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDBfbWMuaD4KKwogI2luY2x1ZGUgImdlbmVyaWMuaCIKIAogCi0vKgotICogU2VyaWFsIHBvcnQgY29uZmlndXJhdGlvbi4KLSAqICAgIDAgLi4gMyA9IFVTQVJUMCAuLiBVU0FSVDMKLSAqICAgIDQgICAgICA9IERCR1UKLSAqLwotc3RhdGljIHN0cnVjdCBhdDkxX3VhcnRfY29uZmlnIF9faW5pdGRhdGEga2I5MjAyX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCQkvKiB0dHlTMCAqLwotCS5ucl90dHkJCT0gMywKLQkudHR5X21hcAk9IHsgNCwgMCwgMSwgLTEsIC0xIH0JCQkvKiB0dHlTMCwgLi4uLCB0dHlTNCAqLwotfTsKLQogc3RhdGljIHZvaWQgX19pbml0IGtiOTIwMl9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTAgTUh6IGNyeXN0YWwgKi8KQEAgLTU5LDggKzUwLDIwIEBACiAJLyogU2V0IHVwIHRoZSBMRURzICovCiAJYXQ5MV9pbml0X2xlZHMoQVQ5MV9QSU5fUEMxOSwgQVQ5MV9QSU5fUEMxOCk7CiAKLQkvKiBTZXR1cCB0aGUgc2VyaWFsIHBvcnRzIGFuZCBjb25zb2xlICovCi0JYXQ5MV9pbml0X3NlcmlhbCgma2I5MjAyX3VhcnRfY29uZmlnKTsKKwkvKiBEQkdVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMSAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxUk05MjAwX0lEX1VTMCwgMSwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzIgKFJ4ICYgVHggb25seSkgLSBJUkRBIChvcHRpb25hbCkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDIsIDApOworCisJLyogVVNBUlQzIG9uIHR0eVMzIChSeCwgVHgsIENUUywgUlRTKSAtIFJTNDg1IChvcHRpb25hbCkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzMsIDMsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGtiOTIwMl9pbml0X2lycSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXFpbC1hOTI2MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YjRlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtcWlsLWE5MjYwLmMKQEAgLTAsMCArMSwyNTUgQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQtcWlsLWE5MjYwLmMKKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA1IFNBTiBQZW9wbGUKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYgQXRtZWwKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcgQ2FsYW8tc3lzdGVtcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9zaGR3Yy5oPgorCisjaW5jbHVkZSAiZ2VuZXJpYy5oIgorCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19tYXBfaW8odm9pZCkKK3sKKwkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTIuMDAwIE1IeiBjcnlzdGFsICovCisJYXQ5MXNhbTkyNjBfaW5pdGlhbGl6ZSgxMjAwMDAwMCk7CisKKwkvKiBER0JVIG9uIHR0eVMwLiAoUnggJiBUeCBvbmx5KSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwLCAwKTsKKworCS8qIFVTQVJUMCBvbiB0dHlTMS4gKFJ4LCBUeCwgQ1RTLCBSVFMsIERUUiwgRFNSLCBEQ0QsIFJJKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzAsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCSAgIHwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQkgICB8IEFUTUVMX1VBUlRfUkkpOworCisJLyogVVNBUlQxIG9uIHR0eVMyLiAoUngsIFR4LCBDVFMsIFJUUykgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVNBTTkyNjBfSURfVVMxLCAyLCBBVE1FTF9VQVJUX0NUUyB8IEFUTUVMX1VBUlRfUlRTKTsKKworCS8qIFVTQVJUMiBvbiB0dHlTMy4gKFJ4LCBUeCwgQ1RTLCBSVFMpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFTQU05MjYwX0lEX1VTMiwgMywgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUyk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzEgKGllLCBVU0FSVDApICovCisJYXQ5MV9zZXRfc2VyaWFsX2NvbnNvbGUoMSk7CisKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BDNSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKy8qCisgKiBTUEkgZGV2aWNlcy4KKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBla19zcGlfZGV2aWNlc1tdID0geworI2lmIGRlZmluZWQoQ09ORklHX1JUQ19EUlZfTTQxVDk0KQorCXsJLyogTTQxVDk0IFJUQyAqLworCQkubW9kYWxpYXMJPSAibTQxdDk0IiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDEgKiAxMDAwICogMTAwMCwKKwkJLmJ1c19udW0JPSAwLAorCX0KKyNlbmRpZgorfTsKKworLyoKKyAqIE1BQ0IgRXRoZXJuZXQgZGV2aWNlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9ldGhfZGF0YSBfX2luaXRkYXRhIGVrX21hY2JfZGF0YSA9IHsKKwkucGh5X2lycV9waW4JPSBBVDkxX1BJTl9QQTMxLAorCS5pc19ybWlpCT0gMSwKK307CisKKy8qCisgKiBOQU5EIGZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIGVrX25hbmRfcGFydGl0aW9uW10gPSB7CisJeworCQkubmFtZQk9ICJVYm9vdCAmIEtlcm5lbCIsCisJCS5vZmZzZXQJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQk9IDE2ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlJvb3QgRlMiLAorCQkub2Zmc2V0CT0gMHgwMTAwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiRlMiLAorCQkub2Zmc2V0CT0gMHgwODgwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uICogX19pbml0IG5hbmRfcGFydGl0aW9ucyhpbnQgc2l6ZSwgaW50ICpudW1fcGFydGl0aW9ucykKK3sKKwkqbnVtX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKGVrX25hbmRfcGFydGl0aW9uKTsKKwlyZXR1cm4gZWtfbmFuZF9wYXJ0aXRpb247Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSBla19uYW5kX2RhdGEgPSB7CisJLmFsZQkJPSAyMSwKKwkuY2xlCQk9IDIyLAorLy8JLmRldF9waW4JPSAuLi4gbm90IGNvbm5lY3RlZAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxMywKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTQsCisJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAorI2lmIGRlZmluZWQoQ09ORklHX01URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYpCisJLmJ1c193aWR0aF8xNgk9IDEsCisjZWxzZQorCS5idXNfd2lkdGhfMTYJPSAwLAorI2VuZGlmCit9OworCisvKgorICogTUNJIChTRC9NTUMpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIGVrX21tY19kYXRhID0geworCS5zbG90X2IJCT0gMCwKKwkud2lyZTQJCT0gMSwKKy8vCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKy8vCS53cF9waW4JCT0gLi4uIG5vdCBjb25uZWN0ZWQKKy8vCS52Y2NfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyAqLworI2lmIGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU8pIHx8IGRlZmluZWQoQ09ORklHX0tFWUJPQVJEX0dQSU9fTU9EVUxFKQorc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIGVrX2J1dHRvbnNbXSA9IHsKKwl7CS8qIFVTRVIgUFVTSCBCVVRUT04gKi8KKwkJLmNvZGUJCT0gS0VZX0VOVEVSLAorCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjEwLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJCS5kZXNjCQk9ICJ1c2VyX3BiIiwKKwkJLndha2V1cAkJPSAxLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgZWtfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBla19idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoZWtfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBla19idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmVrX2J1dHRvbl9kYXRhLAorCX0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkKK3sKKwlhdDkxX3NldF9HUElPX3BlcmlwaChBVDkxX1BJTl9QQjEwLCAxKTsJLyogdXNlciBwdXNoIGJ1dHRvbiwgcHVsbCB1cCBlbmFibGVkICovCisJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxMCwgMSk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmVrX2J1dHRvbl9kZXZpY2UpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkIF9faW5pdCBla19hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KKyNlbmRpZgorCisvKgorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIGVrX2xlZHNbXSA9IHsKKwl7CS8qIHVzZXJfbGVkIChncmVlbikgKi8KKwkJLm5hbWUJCQk9ICJ1c2VyX2xlZCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjIxLAorCQkuYWN0aXZlX2xvdwkJPSAwLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2JvYXJkX2luaXQodm9pZCkKK3sKKwkvKiBTZXJpYWwgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc2VyaWFsKCk7CisJLyogVVNCIEhvc3QgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmZWtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgRGV2aWNlICovCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmZWtfdWRjX2RhdGEpOworCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoZWtfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoZWtfc3BpX2RldmljZXMpKTsKKwkvKiBOQU5EICovCisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJmVrX25hbmRfZGF0YSk7CisJLyogSTJDICovCisJYXQ5MV9hZGRfZGV2aWNlX2kyYyhOVUxMLCAwKTsKKwkvKiBFdGhlcm5ldCAqLworCWF0OTFfYWRkX2RldmljZV9ldGgoJmVrX21hY2JfZGF0YSk7CisJLyogTU1DICovCisJYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmZWtfbW1jX2RhdGEpOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoUUlMX0E5MjYwLCAiQ0FMQU8gUUlMX0E5MjYwIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05ZzIwZWsuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05ZzIwZWsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTYxN2MyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlnMjBlay5jCkBAIC0wLDAgKzEsMjE4IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IEF0bWVsCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGkvYXQ3M2MyMTMuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CisKKyNpbmNsdWRlICJnZW5lcmljLmgiCisKKworc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQoreworCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxOC40MzIgTUh6IGNyeXN0YWwgKi8KKwlhdDkxc2FtOTI2MF9pbml0aWFsaXplKDE4NDMyMDAwKTsKKworCS8qIERHQlUgb24gdHR5UzAuIChSeCAmIFR4IG9ubHkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KDAsIDAsIDApOworCisJLyogVVNBUlQwIG9uIHR0eVMxLiAoUngsIFR4LCBDVFMsIFJUUywgRFRSLCBEU1IsIERDRCwgUkkpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFTQU05MjYwX0lEX1VTMCwgMSwgQVRNRUxfVUFSVF9DVFMgfCBBVE1FTF9VQVJUX1JUUworCQkJICAgfCBBVE1FTF9VQVJUX0RUUiB8IEFUTUVMX1VBUlRfRFNSIHwgQVRNRUxfVUFSVF9EQ0QKKwkJCSAgIHwgQVRNRUxfVUFSVF9SSSk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzIuIChSeCwgVHgsIFJUUywgQ1RTKSAqLworCWF0OTFfcmVnaXN0ZXJfdWFydChBVDkxU0FNOTI2MF9JRF9VUzEsIDIsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMpOworCisJLyogc2V0IHNlcmlhbCBjb25zb2xlIHRvIHR0eVMwIChpZSwgREJHVSkgKi8KKwlhdDkxX3NldF9zZXJpYWxfY29uc29sZSgwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVrX2luaXRfaXJxKHZvaWQpCit7CisJYXQ5MXNhbTkyNjBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOworfQorCisKKy8qCisgKiBVU0IgSG9zdCBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91c2JoX2RhdGEgX19pbml0ZGF0YSBla191c2JoX2RhdGEgPSB7CisJLnBvcnRzCQk9IDIsCit9OworCisvKgorICogVVNCIERldmljZSBwb3J0CisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSBfX2luaXRkYXRhIGVrX3VkY19kYXRhID0geworCS52YnVzX3Bpbgk9IEFUOTFfUElOX1BDNSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKworLyoKKyAqIFNQSSBkZXZpY2VzLgorICovCitzdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGVrX3NwaV9kZXZpY2VzW10gPSB7CisjaWYgIWRlZmluZWQoQ09ORklHX01NQ19BVDkxKQorCXsJLyogRGF0YUZsYXNoIGNoaXAgKi8KKwkJLm1vZGFsaWFzCT0gIm10ZF9kYXRhZmxhc2giLAorCQkuY2hpcF9zZWxlY3QJPSAxLAorCQkubWF4X3NwZWVkX2h6CT0gMTUgKiAxMDAwICogMTAwMCwKKwkJLmJ1c19udW0JPSAwLAorCX0sCisjaWYgZGVmaW5lZChDT05GSUdfTVREX0FUOTFfREFUQUZMQVNIX0NBUkQpCisJewkvKiBEYXRhRmxhc2ggY2FyZCAqLworCQkubW9kYWxpYXMJPSAibXRkX2RhdGFmbGFzaCIsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJCS5tYXhfc3BlZWRfaHoJPSAxNSAqIDEwMDAgKiAxMDAwLAorCQkuYnVzX251bQk9IDAsCisJfSwKKyNlbmRpZgorI2VuZGlmCit9OworCisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEE3LAorCS5pc19ybWlpCT0gMSwKK307CisKKworLyoKKyAqIE5BTkQgZmxhc2gKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgZWtfbmFuZF9wYXJ0aXRpb25bXSA9IHsKKwl7CisJCS5uYW1lICAgPSAiQm9vdHN0cmFwIiwKKwkJLm9mZnNldCA9IDAsCisJCS5zaXplICAgPSA0ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlBhcnRpdGlvbiAxIiwKKwkJLm9mZnNldAk9IDQgKiAxMDI0ICogMTAyNCwKKwkJLnNpemUJPSA2MCAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJQYXJ0aXRpb24gMiIsCisJCS5vZmZzZXQJPSA2NCAqIDEwMjQgKiAxMDI0LAorCQkuc2l6ZQk9IE1URFBBUlRfU0laX0ZVTEwsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiAqIF9faW5pdCBuYW5kX3BhcnRpdGlvbnMoaW50IHNpemUsIGludCAqbnVtX3BhcnRpdGlvbnMpCit7CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShla19uYW5kX3BhcnRpdGlvbik7CisJcmV0dXJuIGVrX25hbmRfcGFydGl0aW9uOworfQorCisvKiBkZXRfcGluIGlzIG5vdCBjb25uZWN0ZWQgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSBla19uYW5kX2RhdGEgPSB7CisJLmFsZQkJPSAyMSwKKwkuY2xlCQk9IDIyLAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxMywKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTQsCisJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAorI2lmIGRlZmluZWQoQ09ORklHX01URF9OQU5EX0FUOTFfQlVTV0lEVEhfMTYpCisJLmJ1c193aWR0aF8xNgk9IDEsCisjZWxzZQorCS5idXNfd2lkdGhfMTYJPSAwLAorI2VuZGlmCit9OworCisKKy8qCisgKiBNQ0kgKFNEL01NQykKKyAqIGRldF9waW4sIHdwX3BpbiBhbmQgdmNjX3BpbiBhcmUgbm90IGNvbm5lY3RlZAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfbW1jX2RhdGEgX19pbml0ZGF0YSBla19tbWNfZGF0YSA9IHsKKwkuc2xvdF9iCQk9IDEsCisJLndpcmU0CQk9IDEsCit9OworCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogImJvdHRvbSIgbGVkLCBncmVlbiwgdXNlcmxlZDEgdG8gYmUgZGVmaW5lZCAqLworCQkubmFtZQkJCT0gImRzNSIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQTYsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAibm9uZSIsCisJfSwKKwl7CS8qICJwb3dlciIgbGVkLCB5ZWxsb3cgKi8KKwkJLm5hbWUJCQk9ICJkczEiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEE5LAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2JvYXJkX2luaXQodm9pZCkKK3sKKwkvKiBTZXJpYWwgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc2VyaWFsKCk7CisJLyogVVNCIEhvc3QgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdXNiaCgmZWtfdXNiaF9kYXRhKTsKKwkvKiBVU0IgRGV2aWNlICovCisJYXQ5MV9hZGRfZGV2aWNlX3VkYygmZWtfdWRjX2RhdGEpOworCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoZWtfc3BpX2RldmljZXMsIEFSUkFZX1NJWkUoZWtfc3BpX2RldmljZXMpKTsKKwkvKiBOQU5EICovCisJYXQ5MV9hZGRfZGV2aWNlX25hbmQoJmVrX25hbmRfZGF0YSk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIE1NQyAqLworCWF0OTFfYWRkX2RldmljZV9tbWMoMCwgJmVrX21tY19kYXRhKTsKKwkvKiBJMkMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKK30KKworTUFDSElORV9TVEFSVChBVDkxU0FNOUcyMEVLLCAiQXRtZWwgQVQ5MVNBTTlHMjAtRUsiKQorCS8qIE1haW50YWluZXI6IEF0bWVsICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC1zYW05cmxlay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKaW5kZXggZmZjMDU5Ny4uYjZhNzBmYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXNhbTlybGVrLmMKQEAgLTU2LDYgKzU2LDE0IEBACiAKIAogLyoKKyAqIFVTQiBIUyBEZXZpY2UgcG9ydAorICovCitzdGF0aWMgc3RydWN0IHVzYmFfcGxhdGZvcm1fZGF0YSBfX2luaXRkYXRhIGVrX3VzYmFfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEE4LAorfTsKKworCisvKgogICogTUNJIChTRC9NTUMpCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIGVrX21tY19kYXRhID0gewpAQCAtMTc1LDYgKzE4Myw4IEBACiB7CiAJLyogU2VyaWFsICovCiAJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIUyAqLworCWF0OTFfYWRkX2RldmljZV91c2JhKCZla191c2JhX3VkY19kYXRhKTsKIAkvKiBJMkMgKi8KIAlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOwogCS8qIE5BTkQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzdhZWRmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2MC5jCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2MC5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IENhbGFvLXN5c3RlbXMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFfc2hkd2MuaD4KKworI2luY2x1ZGUgImdlbmVyaWMuaCIKKworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfbWFwX2lvKHZvaWQpCit7CisJLyogSW5pdGlhbGl6ZSBwcm9jZXNzb3I6IDEyLjAwMCBNSHogY3J5c3RhbCAqLworCWF0OTFzYW05MjYwX2luaXRpYWxpemUoMTIwMDAwMDApOworCisJLyogREdCVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfaW5pdF9pcnEodm9pZCkKK3sKKwlhdDkxc2FtOTI2MF9pbml0X2ludGVycnVwdHMoTlVMTCk7Cit9CisKKworLyoKKyAqIFVTQiBIb3N0IHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIGVrX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCT0gMiwKK307CisKKy8qCisgKiBVU0IgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgZWtfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEM1LAorCS5wdWxsdXBfcGluCT0gMCwJCS8qIHB1bGwtdXAgZHJpdmVuIGJ5IFVEQyAqLworfTsKKworLyoKKyAqIE1BQ0IgRXRoZXJuZXQgZGV2aWNlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9ldGhfZGF0YSBfX2luaXRkYXRhIGVrX21hY2JfZGF0YSA9IHsKKwkucGh5X2lycV9waW4JPSBBVDkxX1BJTl9QQTMxLAorCS5pc19ybWlpCT0gMSwKK307CisKKy8qCisgKiBOQU5EIGZsYXNoCisgKi8KK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBfX2luaXRkYXRhIGVrX25hbmRfcGFydGl0aW9uW10gPSB7CisJeworCQkubmFtZQk9ICJVYm9vdCAmIEtlcm5lbCIsCisJCS5vZmZzZXQJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQk9IDE2ICogMTAyNCAqIDEwMjQsCisJfSwKKwl7CisJCS5uYW1lCT0gIlJvb3QgRlMiLAorCQkub2Zmc2V0CT0gMHgwMTAwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiRlMiLAorCQkub2Zmc2V0CT0gMHgwODgwMDAwMCwKKwkJLnNpemUJPSAxMjAgKiAxMDI0ICogMTAyNCwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQoreworCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoZWtfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiBla19uYW5kX3BhcnRpdGlvbjsKK30KKworc3RhdGljIHN0cnVjdCBhdDkxX25hbmRfZGF0YSBfX2luaXRkYXRhIGVrX25hbmRfZGF0YSA9IHsKKwkuYWxlCQk9IDIxLAorCS5jbGUJCT0gMjIsCisvLwkuZGV0X3Bpbgk9IC4uLiBub3QgY29ubmVjdGVkCisJLnJkeV9waW4JPSBBVDkxX1BJTl9QQzEzLAorCS5lbmFibGVfcGluCT0gQVQ5MV9QSU5fUEMxNCwKKwkucGFydGl0aW9uX2luZm8JPSBuYW5kX3BhcnRpdGlvbnMsCisjaWYgZGVmaW5lZChDT05GSUdfTVREX05BTkRfQVQ5MV9CVVNXSURUSF8xNikKKwkuYnVzX3dpZHRoXzE2CT0gMSwKKyNlbHNlCisJLmJ1c193aWR0aF8xNgk9IDAsCisjZW5kaWYKK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyAqLworCisjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gZWtfYnV0dG9uc1tdID0geworCXsJLyogVVNFUiBQVVNIIEJVVFRPTiAqLworCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5ncGlvCQk9IEFUOTFfUElOX1BCMTAsCisJCS5hY3RpdmVfbG93CT0gMSwKKwkJLmRlc2MJCT0gInVzZXJfcGIiLAorCQkud2FrZXVwCQk9IDEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBla19idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IGVrX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShla19idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVrX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZWtfYnV0dG9uX2RhdGEsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQoreworCWF0OTFfc2V0X0dQSU9fcGVyaXBoKEFUOTFfUElOX1BCMTAsIDEpOwkvKiB1c2VyIHB1c2ggYnV0dG9uLCBwdWxsIHVwIGVuYWJsZWQgKi8KKwlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjEwLCAxKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZWtfYnV0dG9uX2RldmljZSk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKSB7fQorI2VuZGlmCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogdXNlcl9sZWQgKGdyZWVuKSAqLworCQkubmFtZQkJCT0gInVzZXJfbGVkIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMjEsCisJCS5hY3RpdmVfbG93CQk9IDAsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKKwl9Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfYm9hcmRfaW5pdCh2b2lkKQoreworCS8qIFNlcmlhbCAqLworCWF0OTFfYWRkX2RldmljZV9zZXJpYWwoKTsKKwkvKiBVU0IgSG9zdCAqLworCWF0OTFfYWRkX2RldmljZV91c2JoKCZla191c2JoX2RhdGEpOworCS8qIFVTQiBEZXZpY2UgKi8KKwlhdDkxX2FkZF9kZXZpY2VfdWRjKCZla191ZGNfZGF0YSk7CisJLyogTkFORCAqLworCWF0OTFfYWRkX2RldmljZV9uYW5kKCZla19uYW5kX2RhdGEpOworCS8qIEkyQyAqLworCWF0OTFfYWRkX2RldmljZV9pMmMoTlVMTCwgMCk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVVNCX0E5MjYwLCAiQ0FMQU8gVVNCX0E5MjYwIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYyBiL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC11c2ItYTkyNjMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTgwMGQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2My5jCkBAIC0wLDAgKzEsMjMwIEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXVzYi1hOTI2My5jCisgKgorICogIENvcHlyaWdodCAoQykgMjAwNSBTQU4gUGVvcGxlCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEF0bWVsIENvcnBvcmF0aW9uLgorICogIENvcHlyaWdodCAoQykgMjAwNyBDYWxhby1zeXN0ZW1zCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3NoZHdjLmg+CisKKyNpbmNsdWRlICJnZW5lcmljLmgiCisKKworc3RhdGljIHZvaWQgX19pbml0IGVrX21hcF9pbyh2b2lkKQoreworCS8qIEluaXRpYWxpemUgcHJvY2Vzc29yOiAxMi4wMCBNSHogY3J5c3RhbCAqLworCWF0OTFzYW05MjYzX2luaXRpYWxpemUoMTIwMDAwMDApOworCisJLyogREdCVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWtfaW5pdF9pcnEodm9pZCkKK3sKKwlhdDkxc2FtOTI2M19pbml0X2ludGVycnVwdHMoTlVMTCk7Cit9CisKKworLyoKKyAqIFVTQiBIb3N0IHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIGVrX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCT0gMiwKK307CisKKy8qCisgKiBVU0IgRGV2aWNlIHBvcnQKKyAqLworc3RhdGljIHN0cnVjdCBhdDkxX3VkY19kYXRhIF9faW5pdGRhdGEgZWtfdWRjX2RhdGEgPSB7CisJLnZidXNfcGluCT0gQVQ5MV9QSU5fUEIxMSwKKwkucHVsbHVwX3Bpbgk9IDAsCQkvKiBwdWxsLXVwIGRyaXZlbiBieSBVREMgKi8KK307CisKKy8qCisgKiBTUEkgZGV2aWNlcy4KKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyBla19zcGlfZGV2aWNlc1tdID0geworI2lmICFkZWZpbmVkKENPTkZJR19NTUNfQVQ5MSkKKwl7CS8qIERhdGFGbGFzaCBjaGlwICovCisJCS5tb2RhbGlhcwk9ICJtdGRfZGF0YWZsYXNoIiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDE1ICogMTAwMCAqIDEwMDAsCisJCS5idXNfbnVtCT0gMCwKKwl9CisjZW5kaWYKK307CisKKy8qCisgKiBNQUNCIEV0aGVybmV0IGRldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSBla19tYWNiX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCT0gQVQ5MV9QSU5fUEUzMSwKKwkuaXNfcm1paQk9IDEsCit9OworCisvKgorICogTkFORCBmbGFzaAorICovCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gX19pbml0ZGF0YSBla19uYW5kX3BhcnRpdGlvbltdID0geworCXsKKwkJLm5hbWUJPSAiTGludXggS2VybmVsIiwKKwkJLm9mZnNldAk9IDB4MDAwMDAwMDAsCisJCS5zaXplCT0gMTYgKiAxMDI0ICogMTAyNCwKKwl9LAorCXsKKwkJLm5hbWUJPSAiUm9vdCBGUyIsCisJCS5vZmZzZXQJPSAweDAxMDAwMDAwLAorCQkuc2l6ZQk9IDEyMCAqIDEwMjQgKiAxMDI0LAorCX0sCisJeworCQkubmFtZQk9ICJGUyIsCisJCS5vZmZzZXQJPSAweDA4ODAwMDAwLAorCQkuc2l6ZQk9IDEyMCAqIDEwMjQgKiAxMDI0LAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiAqIF9faW5pdCBuYW5kX3BhcnRpdGlvbnMoaW50IHNpemUsIGludCAqbnVtX3BhcnRpdGlvbnMpCit7CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRShla19uYW5kX3BhcnRpdGlvbik7CisJcmV0dXJuIGVrX25hbmRfcGFydGl0aW9uOworfQorCitzdGF0aWMgc3RydWN0IGF0OTFfbmFuZF9kYXRhIF9faW5pdGRhdGEgZWtfbmFuZF9kYXRhID0geworCS5hbGUJCT0gMjEsCisJLmNsZQkJPSAyMiwKKy8vCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BBMjIsCisJLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QRDE1LAorCS5wYXJ0aXRpb25faW5mbwk9IG5hbmRfcGFydGl0aW9ucywKKyNpZiBkZWZpbmVkKENPTkZJR19NVERfTkFORF9BVDkxX0JVU1dJRFRIXzE2KQorCS5idXNfd2lkdGhfMTYJPSAxLAorI2Vsc2UKKwkuYnVzX3dpZHRoXzE2CT0gMCwKKyNlbmRpZgorfTsKKworLyoKKyAqIEdQSU8gQnV0dG9ucworICovCisjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gZWtfYnV0dG9uc1tdID0geworCXsJLyogVVNFUiBQVVNIIEJVVFRPTiAqLworCQkuY29kZQkJPSBLRVlfRU5URVIsCisJCS5ncGlvCQk9IEFUOTFfUElOX1BCMTAsCisJCS5hY3RpdmVfbG93CT0gMSwKKwkJLmRlc2MJCT0gInVzZXJfcGIiLAorCQkud2FrZXVwCQk9IDEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBla19idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IGVrX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShla19idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGVrX2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZWtfYnV0dG9uX2RhdGEsCisJfQorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQoreworCWF0OTFfc2V0X0dQSU9fcGVyaXBoKEFUOTFfUElOX1BCMTAsIDEpOwkvKiB1c2VyIHB1c2ggYnV0dG9uLCBwdWxsIHVwIGVuYWJsZWQgKi8KKwlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQjEwLCAxKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZWtfYnV0dG9uX2RldmljZSk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQgX19pbml0IGVrX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKSB7fQorI2VuZGlmCisKKy8qCisgKiBMRURzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19sZWQgZWtfbGVkc1tdID0geworCXsJLyogdXNlcl9sZWQgKGdyZWVuKSAqLworCQkubmFtZQkJCT0gInVzZXJfbGVkIiwKKwkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMjEsCisJCS5hY3RpdmVfbG93CQk9IDEsCisJCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKKwl9Cit9OworCisKK3N0YXRpYyB2b2lkIF9faW5pdCBla19ib2FyZF9pbml0KHZvaWQpCit7CisJLyogU2VyaWFsICovCisJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOworCS8qIFVTQiBIb3N0ICovCisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJmVrX3VzYmhfZGF0YSk7CisJLyogVVNCIERldmljZSAqLworCWF0OTFfYWRkX2RldmljZV91ZGMoJmVrX3VkY19kYXRhKTsKKwkvKiBTUEkgKi8KKwlhdDkxX2FkZF9kZXZpY2Vfc3BpKGVrX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKGVrX3NwaV9kZXZpY2VzKSk7CisJLyogRXRoZXJuZXQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfZXRoKCZla19tYWNiX2RhdGEpOworCS8qIE5BTkQgKi8KKwlhdDkxX2FkZF9kZXZpY2VfbmFuZCgmZWtfbmFuZF9kYXRhKTsKKwkvKiBJMkMgKi8KKwlhdDkxX2FkZF9kZXZpY2VfaTJjKE5VTEwsIDApOworCS8qIFB1c2ggQnV0dG9ucyAqLworCWVrX2FkZF9kZXZpY2VfYnV0dG9ucygpOworCS8qIExFRHMgKi8KKwlhdDkxX2dwaW9fbGVkcyhla19sZWRzLCBBUlJBWV9TSVpFKGVrX2xlZHMpKTsKKwkvKiBzaHV0ZG93biBjb250cm9sbGVyLCB3YWtldXAgYnV0dG9uICg1IG1zZWMgbG93KSAqLworCWF0OTFfc3lzX3dyaXRlKEFUOTFfU0hEV19NUiwgQVQ5MV9TSERXX0NQVFdLMF8oMTApIHwgQVQ5MV9TSERXX1dLTU9ERTBfTE9XCisJCQkJfCBBVDkxX1NIRFdfUlRUV0tFTik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVVNCX0E5MjYzLCAiQ0FMQU8gVVNCX0E5MjYzIikKKwkvKiBNYWludGFpbmVyOiBjYWxhby1zeXN0ZW1zICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAorCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKKwkudGltZXIJCT0gJmF0OTFzYW05MjZ4X3RpbWVyLAorCS5tYXBfaW8JCT0gZWtfbWFwX2lvLAorCS5pbml0X2lycQk9IGVrX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUJPSBla19ib2FyZF9pbml0LAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvYm9hcmQteWwtOTIwMC5jCmluZGV4IGI1NzE3MTAuLjcwNzkwNTAgMTAwNzU1Ci0tLSBhL2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2JvYXJkLXlsLTkyMDAuYwpAQCAtMSwxMSArMSwxMCBAQAogLyoKICAqIGxpbnV4L2FyY2gvYXJtL21hY2gtYXQ5MS9ib2FyZC15bC05MjAwLmMKICAqCi0gKiBBZGFwdGVkIGZyb206Ci0gKnZhcmlvdXMgYm9hcmQgZmlsZXMgaW4KLSAqIC9hcmNoL2FybS9tYWNoLWF0OTEKLSAqIG1vZGlmaWNhdGlvbnMgIHRvIGNvbnZlcnQgdG8gIFlMLTkyMDAgcGxhdGZvcm0KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcgUy5CaXJ0bGVzCisgKiBBZGFwdGVkIGZyb20gdmFyaW91cyBib2FyZCBmaWxlcyBpbiBhcmNoL2FybS9tYWNoLWF0OTEKKyAqCisgKiBNb2RpZmljYXRpb25zIGZvciBZTC05MjAwIHBsYXRmb3JtOgorICogIENvcHlyaWdodCAoQykgMjAwNyBTLiBCaXJ0bGVzCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0yNiwxMyArMjUsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KLS8qI2luY2x1ZGUgPGxpbnV4L2Nhbl9idXMvY2FuZGF0YS5oPiovCiAjaW5jbHVkZSA8bGludXgvc3BpL2Fkczc4NDYuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAKLS8qI2luY2x1ZGUgPHNvdW5kL2dwaW9fc291bmRlci5oPiovCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KQEAgLTQ1LDE3OSArNDUsMTA4IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MXJtOTIwMF9tYy5oPgotI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgotI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAKICNpbmNsdWRlICJnZW5lcmljLmgiCi0jaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9waW8uaD4KIAotI2RlZmluZSBZTF85MjAwX0ZMQVNIX0JBU0UJQVQ5MV9DSElQU0VMRUNUXzAKLSNkZWZpbmUgWUxfOTIwMF9GTEFTSF9TSVpFCTB4ODAwMDAwCiAKLS8qCi0gKiBTZXJpYWwgcG9ydCBjb25maWd1cmF0aW9uLgotICogICAgMCAuLiAzID0gVVNBUlQwIC4uIFVTQVJUMwotICogICAgNCAgICAgID0gREJHVQotICphdG1lbF91c2FydC4wOiB0dHlTMCBhdCBNTUlPIDB4ZmVmZmYyMDAgKGlycSA9IDEpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKmF0bWVsX3VzYXJ0LjE6IHR0eVMxIGF0IE1NSU8gMHhmZmZjMDAwMCAoaXJxID0gNikgaXMgYSBBVE1FTF9TRVJJQUwKLSAqYXRtZWxfdXNhcnQuMjogdHR5UzIgYXQgTU1JTyAweGZmZmM0MDAwIChpcnEgPSA3KSBpcyBhIEFUTUVMX1NFUklBTAotICphdG1lbF91c2FydC4zOiB0dHlTMyBhdCBNTUlPIDB4ZmZmYzgwMDAgKGlycSA9IDgpIGlzIGEgQVRNRUxfU0VSSUFMCi0gKmF0bWVsX3VzYXJ0LjQ6IHR0eVM0IGF0IE1NSU8gMHhmZmZjYzAwMCAoaXJxID0gOSkgaXMgYSBBVE1FTF9TRVJJQUwKLSAqIG9uIHRoZSBZTC05MjAwIHdlIGFyZSBzaXR0aW5nIGF0IHRoZSBmb2xsb3dpbmcKLSAqdHR5UzAgYXQgTU1JTyAweGZlZmZmMjAwIChpcnEgPSAxKSBpcyBhIEFUOTFfU0VSSUFMCi0gKnR0eVMxIGF0IE1NSU8gMHhmZWZjNDAwMCAoaXJxID0gNykgaXMgYSBBVDkxX1NFUklBTAotICovCi0KLS8qIGV4dGVybiB2b2lkIF9faW5pdCB5bF85MjAwX2FkZF9kZXZpY2Vfc291bmRlcihzdHJ1Y3QgZ3Bpb19zb3VuZGVyICpzb3VuZGVycywgaW50IG5yKTsqLwotCi1zdGF0aWMgc3RydWN0IGF0OTFfdWFydF9jb25maWcgX19pbml0ZGF0YSB5bF85MjAwX3VhcnRfY29uZmlnID0gewotCS5jb25zb2xlX3R0eQk9IDAsCQkJCS8qIHR0eVMwICovCi0JLm5yX3R0eQkJPSAzLAotCS50dHlfbWFwCT0geyA0LCAxLCAwLCAtMSwgLTEgfQkJLyogdHR5UzAsIC4uLiwgdHR5UzQgKi8KLX07Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX21hcF9pbyh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9tYXBfaW8odm9pZCkKIHsKIAkvKiBJbml0aWFsaXplIHByb2Nlc3NvcjogMTguNDMyIE1IeiBjcnlzdGFsICovCi0JLypBbHNvIGluaXRpYWxpc2VzIHJlZ2lzdGVyIGNsb2NrcyAmIGdwaW8qLwotCWF0OTFybTkyMDBfaW5pdGlhbGl6ZSgxODQzMjAwMCwgQVQ5MVJNOTIwMF9QUUZQKTsgLyp3ZSBoYXZlIGEgMyBiYW5rIHN5c3RlbSovCisJYXQ5MXJtOTIwMF9pbml0aWFsaXplKDE4NDMyMDAwLCBBVDkxUk05MjAwX1BRRlApOwogCi0JLyogU2V0dXAgdGhlIHNlcmlhbCBwb3J0cyBhbmQgY29uc29sZSAqLwotCWF0OTFfaW5pdF9zZXJpYWwoJnlsXzkyMDBfdWFydF9jb25maWcpOworCS8qIFNldHVwIHRoZSBMRURzIEQyPVBCMTcgKHRpbWVyKSwgRDM9UEIxNiAoY3B1KSAqLworCWF0OTFfaW5pdF9sZWRzKEFUOTFfUElOX1BCMTYsIEFUOTFfUElOX1BCMTcpOwogCi0JLyogU2V0dXAgdGhlIExFRHMgRDI9UEIxNyxEMz1QQjE2ICovCi0JYXQ5MV9pbml0X2xlZHMoQVQ5MV9QSU5fUEIxNixBVDkxX1BJTl9QQjE3KTsgLypjcHUtbGVkLHRpbWVyLWxlZCovCisJLyogREJHVSBvbiB0dHlTMC4gKFJ4ICYgVHggb25seSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoMCwgMCwgMCk7CisKKwkvKiBVU0FSVDEgb24gdHR5UzEuIChSeCwgVHgsIENUUywgUlRTLCBEVFIsIERTUiwgRENELCBSSSkgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzEsIDEsIEFUTUVMX1VBUlRfQ1RTIHwgQVRNRUxfVUFSVF9SVFMKKwkJCXwgQVRNRUxfVUFSVF9EVFIgfCBBVE1FTF9VQVJUX0RTUiB8IEFUTUVMX1VBUlRfRENECisJCQl8IEFUTUVMX1VBUlRfUkkpOworCisJLyogVVNBUlQwIG9uIHR0eVMyLiAoUnggJiBUeCBvbmx5IHRvIEpQMykgKi8KKwlhdDkxX3JlZ2lzdGVyX3VhcnQoQVQ5MVJNOTIwMF9JRF9VUzAsIDIsIDApOworCisJLyogVVNBUlQzIG9uIHR0eVMzLiAoUngsIFR4LCBSVFMgLSBSUzQ4NSBpbnRlcmZhY2UpICovCisJYXQ5MV9yZWdpc3Rlcl91YXJ0KEFUOTFSTTkyMDBfSURfVVMzLCAzLCBBVE1FTF9VQVJUX1JUUyk7CisKKwkvKiBzZXQgc2VyaWFsIGNvbnNvbGUgdG8gdHR5UzAgKGllLCBEQkdVKSAqLworCWF0OTFfc2V0X3NlcmlhbF9jb25zb2xlKDApOwogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9pbml0X2lycSh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9pbml0X2lycSh2b2lkKQogewogCWF0OTFybTkyMDBfaW5pdF9pbnRlcnJ1cHRzKE5VTEwpOwogfQogCi1zdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX2V0aF9kYXRhID0gewotCS5waHlfaXJxX3Bpbgk9IEFUOTFfUElOX1BCMjgsCi0JLmlzX3JtaWkJPSAxLAotfTsKIAotc3RhdGljIHN0cnVjdCBhdDkxX3VzYmhfZGF0YSBfX2luaXRkYXRhIHlsXzkyMDBfdXNiaF9kYXRhID0gewotCS5wb3J0cwkJPSAxLCAgLyogdGhpcyBzaG91bGQgYmUgMSBub3QgMiBmb3IgdGhlIFlsOTIwMCovCi19OwotCi1zdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX3VkY19kYXRhID0gewotLypvbiBzaGVldCA3IFNjaGVtaXRpYyByZXYgMS4wKi8KLQkucHVsbHVwX3Bpbgk9IEFUOTFfUElOX1BDNCwKLQkudmJ1c19waW49ICBBVDkxX1BJTl9QQzUsCi0JLnB1bGx1cF9hY3RpdmVfbG93ID0gMSwgLypBQ1RJVkUgTE9XISEgZHVlIHRvIFBOUCB0cmFuc2lzdG9yIG9uIHBhZ2UgNyovCi0KLX07CiAvKgotc3RhdGljIHN0cnVjdCBhdDkxX2NmX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX2NmX2RhdGEgPSB7Ci1UT0RPIFMuQklSVExFUwotCS5kZXRfcGluCT0gQVQ5MV9QSU5feHh4LAotCS5yc3RfcGluCT0gQVQ5MV9QSU5feHh4LAotCS5pcnFfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKLQkudmNjX3Bpbgk9IC4uLiBhbHdheXMgcG93ZXJlZAorICogTEVEcworICovCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkIHlsOTIwMF9sZWRzW10gPSB7CisJewkvKiBEMiAqLworCQkubmFtZQkJCT0gImxlZDIiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEIxNywKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwkJLmRlZmF1bHRfdHJpZ2dlcgk9ICJ0aW1lciIsCisJfSwKKwl7CS8qIEQzICovCisJCS5uYW1lCQkJPSAibGVkMyIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjE2LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCisJfSwKKwl7CS8qIEQ0ICovCisJCS5uYW1lCQkJPSAibGVkNCIsCisJCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjE1LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0sCisJewkvKiBENSAqLworCQkubmFtZQkJCT0gImxlZDUiLAorCQkuZ3BpbwkJCT0gQVQ5MV9QSU5fUEI4LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0KK307CisKKy8qCisgKiBFdGhlcm5ldAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfZXRoX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfZXRoX2RhdGEgPSB7CisJLnBoeV9pcnFfcGluCQk9IEFUOTFfUElOX1BCMjgsCisJLmlzX3JtaWkJCT0gMSwKK307CisKKy8qCisgKiBVU0IgSG9zdAorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdXNiaF9kYXRhIF9faW5pdGRhdGEgeWw5MjAwX3VzYmhfZGF0YSA9IHsKKwkucG9ydHMJCQk9IDEsCS8qIFBRRlAgdmVyc2lvbiBvZiBBVDkxUk05MjAwICovCit9OworCisvKgorICogVVNCIERldmljZQorICovCitzdGF0aWMgc3RydWN0IGF0OTFfdWRjX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfdWRjX2RhdGEgPSB7CisJLnB1bGx1cF9waW4JCT0gQVQ5MV9QSU5fUEM0LAorCS52YnVzX3BpbgkJPSBBVDkxX1BJTl9QQzUsCisJLnB1bGx1cF9hY3RpdmVfbG93CT0gMSwJLyogQWN0aXZlIExvdyBkdWUgdG8gUE5QIHRyYW5zaXN0b3IgKHBnIDcpICovCiAKIH07Ci0qLwotc3RhdGljIHN0cnVjdCBhdDkxX21tY19kYXRhIF9faW5pdGRhdGEgeWxfOTIwMF9tbWNfZGF0YSA9IHsKLQkuZGV0X3Bpbgk9IEFUOTFfUElOX1BCOSwgLypUSElTIExPT0tTIENPUlJFQ1QgU0hFRVQ3Ki8KLS8qCS53cF9waW4JCT0gLi4uIG5vdCBjb25uZWN0ZWQgIFNIRUVUNyovCi0JLnNsb3RfYgkJPSAwLAorCisvKgorICogTU1DCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9tbWNfZGF0YSBfX2luaXRkYXRhIHlsOTIwMF9tbWNfZGF0YSA9IHsKKwkuZGV0X3Bpbgk9IEFUOTFfUElOX1BCOSwKKwkvLyAud3BfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQKIAkud2lyZTQJCT0gMSwKLQogfTsKIAotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqICBUb3VjaCBzY3JlZW4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0jaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi1zdGF0aWMgaW50IGFkczc4NDNfcGVuZG93bl9zdGF0ZSh2b2lkKQotewotCXJldHVybiAhYXQ5MV9nZXRfZ3Bpb192YWx1ZShBVDkxX1BJTl9QQjExKTsJLyogVG91Y2hzY3JlZW4gUEVOSVJRICovCi19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBhdDkxX2luaXRfZGV2aWNlX3RzKHZvaWQpCi17Ci0vKklNUE9SVEFOVCBOT1RFIFRIRSBTUEkgSU5URVJGQUNFIElTIEFMUkVBRFkgQ09ORklHVVJFRCBCWSBYWFhfREVWSUNFUy5DCi1USEFUIElTIFRPIFNBWSBUSEFUICBNSVNPLE1PU0ksU1BDSyBBTkQgQ1MgIGFyZSBhbHJlYWR5IGNvbmZpZ3VyZWQKLXdlIG9ubHkgbmVlZCB0byBlbmFibGUgdGhlIG90aGVyIGRhdGFwaW5zIHdoaWNoIGFyZToKLVBCMTAvUksxIEJVU1kKLSovCi0vKiBUb3VjaHNjcmVlbiBCVVNZIHNpZ25hbCAsICBwaW4sdXNlIHB1bGx1cCAoIFRPRE8gbm90IGN1cnJlbnRseSB1c2VkIGluIHRoZSBBRFM3ODQzLzYuYyBkcml2ZXIpKi8KLWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxMCwgMSk7Ci19Ci0KLSNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgYXQ5MV9pbml0X2RldmljZV90cyh2b2lkKSB7fQotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgYWRzNzg0Nl9wbGF0Zm9ybV9kYXRhIGFkc19pbmZvID0gewotCS5tb2RlbAkJCT0gNzg0MywKLQkueF9taW4JCQk9IDE1MCwKLQkueF9tYXgJCQk9IDM4MzAsCi0JLnlfbWluCQkJPSAxOTAsCi0JLnlfbWF4CQkJPSAzODMwLAotCS52cmVmX2RlbGF5X3VzZWNzCT0gMTAwLAotLyogZm9yIGEgOCIgdG91Y2ggc2NyZWVuKi8KLQkvLy54X3BsYXRlX29obXMJCT0gNjAzLCAvLz0gNDUwLCBTLkJpcnRsZXMgVE9ETwotCS8vLnlfcGxhdGVfb2htcwkJPSAzMzIsIC8vPSAyNTAsIFMuQmlydGxlcyBUT0RPCi0vKmZvciBhIDEwLjQiIHRvdWNoIHNjcmVlbiovCi0JLy8ueF9wbGF0ZV9vaG1zCQk9NjExLAotCS8vLnlfcGxhdGVfb2htcwkJPTMyNSwKLQotCS54X3BsYXRlX29obXMJPSA1NzYsCi0JLnlfcGxhdGVfb2htcwk9IDM2NiwKLQkJLy8KLQkucHJlc3N1cmVfbWF4CQk9IDE1MDAwLCAvKmdlbmVyYWxseSBub25zZW5zZSBvbiB0aGUgNzg0MyovCi0JIC8qbnVtYmVyIG9mIHRpbWVzIHRvIHNlbmQgcXVlcnkgdG8gY2hpcCBpbiBhIGdpdmVuIHJ1biAwIGVxdWFscyBvbmUgdGltZSAoZG8gbm90IHNldCB0byAwISEgLHRoZXJlIGlzIGEgYnVnIGluIEFEUyA3ODQ2IGNvZGUpKi8KLQkuZGVib3VuY2VfbWF4CQk9IDEsCi0JLmRlYm91bmNlX3JlcAkJPSAwLAotCS5kZWJvdW5jZV90b2wJCT0gKH4wKSwKLQkuZ2V0X3BlbmRvd25fc3RhdGUJPSBhZHM3ODQzX3BlbmRvd25fc3RhdGUsCi19OwotCi0vKnN0YXRpYyBzdHJ1Y3QgY2FuYnVzX3BsYXRmb3JtX2RhdGEgY2FuX2luZm8gPSB7Ci0JLm1vZGVsCQkJPSAyNTEwLAotfTsKLSovCi0KLXN0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8geWxfOTIwMF9zcGlfZGV2aWNlc1tdID0gewotLyp0aGlzIHN0aWNrcyBpdCBhdDoKLSAvc3lzL2RldmljZXMvcGxhdGZvcm0vYXRtZWxfc3BpLjAvc3BpMC4wCi0gL3N5cy9idXMvcGxhdGZvcm0vZGV2aWNlcy8KLURvY3VtZW50YXRpb24vc3BpIElJUkMqLwotCi0jaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi0gLyoodGhpcyBJUyBjb3JyZWN0IDA0LU5PVi0yMDA3KSovCi0JewotCQkubW9kYWxpYXMJCT0gImFkczc4NDYiLCAvKiBiZWNhdXNlIHRoZSBkcml2ZXIgaXMgY2FsbGVkIGFkczc4NDYqLwotCQkuY2hpcF9zZWxlY3QJPSAwLCAvKlRISVMgTVVTVCBCRSBBTiBJTkRFWCBJTlRPIEFOIEFSUkFZIE9GICBwaW5zICovCi0vKnRoaXMgaXMgT05MWSBUTyBCRSBVU0VEIGlmIGNoaXBzZWxlY3QgYWJvdmUgaXMgbm90IHVzZWQsIGl0IHBhc3NlcyBhIHBpbiBkaXJlY3RseSBmb3IgdGhlIGNoaXAgc2VsZWN0Ki8KLQkJLyouY29udHJvbGxlcl9kYXRhID1BVDkxX1BJTl9QQTMgLCovCi0JCS5tYXhfc3BlZWRfaHoJPSA1MDAwKjI2LCAvKig0NzAwICogMjYpLTEyNTAwMCAqIDI2LCAobWF4IHNhbXBsZSByYXRlIEAgM1YpICogKGNtZCArIGRhdGEgKyBvdmVyaGVhZCkgKi8KLQkJLmJ1c19udW0JCT0gMCwKLQkJLnBsYXRmb3JtX2RhdGEJPSAmYWRzX2luZm8sCi0JCS5pcnEJCQk9IEFUOTFfUElOX1BCMTEsCi0JfSwKLSNlbmRpZgotLyp3ZSBuZWVkIHRvIHB1dCBvdXIgQ0FOIGRyaXZlciBkYXRhIGhlcmUhISovCi0vKlRISVMgSVMgQUxMIERVTU1ZIERBVEEqLwotLyoJewotCQkubW9kYWxpYXMJCT0gIm1jcDI1MTAiLCAvL0RVTU1ZIGZvciBNQ1AyNTEwIGNoaXAKLQkJLmNoaXBfc2VsZWN0CT0gMSwqLyAvKlRISVMgTVVTVCBCRSBBTiBJTkRFWCBJTlRPIEFOIEFSUkFZIE9GICBwaW5zICovCi0JLyp0aGlzIGlzIE9OTFkgVE8gQkUgVVNFRCBpZiBjaGlwc2VsZWN0IGFib3ZlIGlzIG5vdCB1c2VkLCBpdCBwYXNzZXMgYSBwaW4gZGlyZWN0bHkgZm9yIHRoZSBjaGlwIHNlbGVjdCAqLwotCS8qICAuY29udHJvbGxlcl9kYXRhID1BVDkxX1BJTl9QQTQgLAotCQkubWF4X3NwZWVkX2h6CT0gMjUwMDAgKiAyNiwKLQkJLmJ1c19udW0JCT0gMCwKLQkJLnBsYXRmb3JtX2RhdGEJPSAmY2FuX2luZm8sCi0JCS5pcnEJCQk9IEFUOTFfUElOX1BDMCwKLQl9LAotCSovCi0JLy9tYXggU1BJIGNoaXAgbmVlZHMgdG8gZ28gaGVyZQotfTsKLQotc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgeWxfOTIwMF9uYW5kX3BhcnRpdGlvbltdID0geworLyoKKyAqIE5BTkQgRmxhc2gKKyAqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIF9faW5pdGRhdGEgeWw5MjAwX25hbmRfcGFydGl0aW9uW10gPSB7CiAJewogCQkubmFtZQk9ICJBVDkxIE5BTkQgcGFydGl0aW9uIDEsIGJvb3QiLAogCQkub2Zmc2V0CT0gMCwKQEAgLTI0Miw0NDIgKzE3MSw0MzQgQEAKIAkJLm5hbWUJPSAiQVQ5MSBOQU5EIHBhcnRpdGlvbiA1LCBleHQtZnMiLAogCQkub2Zmc2V0CT0gMzIgKiBTWl8xTSwKIAkJLnNpemUJPSAzMiAqIFNaXzFNCi0JfSwKKwl9CiB9OwogCiBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gKiBfX2luaXQgbmFuZF9wYXJ0aXRpb25zKGludCBzaXplLCBpbnQgKm51bV9wYXJ0aXRpb25zKQogewotCSpudW1fcGFydGl0aW9ucyA9IEFSUkFZX1NJWkUoeWxfOTIwMF9uYW5kX3BhcnRpdGlvbik7Ci0JcmV0dXJuIHlsXzkyMDBfbmFuZF9wYXJ0aXRpb247CisJKm51bV9wYXJ0aXRpb25zID0gQVJSQVlfU0laRSh5bDkyMDBfbmFuZF9wYXJ0aXRpb24pOworCXJldHVybiB5bDkyMDBfbmFuZF9wYXJ0aXRpb247CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSB5bF85MjAwX25hbmRfZGF0YSA9IHsKLQkuYWxlPSA2LAotCS5jbGU9IDcsCi0JLyouZGV0X3Bpbgk9IEFUOTFfUElOX1BDeHgsKi8gICAvKndlIGRvbid0IGhhdmUgYSBkZXQgcGluIGJlY2F1c2UgTmFuZEZsYXNoIGlzIGZpeGVkIHRvIGJvYXJkKi8KLQkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMTQsICAvKlIvIUIgU2hlZXQxMCovCi0JLmVuYWJsZV9waW4JPSBBVDkxX1BJTl9QQzE1LCAgLyohQ0UgIFNoZWV0MTAgKi8KK3N0YXRpYyBzdHJ1Y3QgYXQ5MV9uYW5kX2RhdGEgX19pbml0ZGF0YSB5bDkyMDBfbmFuZF9kYXRhID0geworCS5hbGUJCT0gNiwKKwkuY2xlCQk9IDcsCisJLy8gLmRldF9waW4JPSAuLi4gbm90IGNvbm5lY3RlZAorCS5yZHlfcGluCT0gQVQ5MV9QSU5fUEMxNCwJLyogUi8hQiAoU2hlZXQxMCkgKi8KKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BDMTUsCS8qICFDRSAgKFNoZWV0MTApICovCiAJLnBhcnRpdGlvbl9pbmZvCT0gbmFuZF9wYXJ0aXRpb25zLAogfTsKIAotCi0KIC8qCi1UT0RPIFMuQmlydGxlcwotcG90ZW50aWFsbHkgYSBwcm9ibGVtIHdpdGggdGhlIHNpemUgYWJvdmUKLXBoeXNtYXAgcGxhdGZvcm0gZmxhc2ggZGV2aWNlOiAwMDgwMDAwMCBhdCAxMDAwMDAwMAotcGh5c21hcC1mbGFzaC4wOiBGb3VuZCAxIHgxNiBkZXZpY2VzIGF0IDB4MCBpbiAxNi1iaXQgYmFuawotTk9SIGNoaXAgdG9vIGxhcmdlIHRvIGZpdCBpbiBtYXBwaW5nLiBBdHRlbXB0aW5nIHRvIGNvcGUuLi4KLSBJbnRlbC9TaGFycCBFeHRlbmRlZCBRdWVyeSBUYWJsZSBhdCAweDAwMzEKLVVzaW5nIGJ1ZmZlciB3cml0ZSBtZXRob2QKLWNmaV9jbWRzZXRfMDAwMTogRXJhc2Ugc3VzcGVuZCBvbiB3cml0ZSBlbmFibGVkCi1SZWR1Y2luZyB2aXNpYmlsaXR5IG9mIDE2Mzg0S2lCIGNoaXAgdG8gODE5MktpQgotKi8KKyAqIE5PUiBGbGFzaAorICovCisjZGVmaW5lIFlMOTIwMF9GTEFTSF9CQVNFCUFUOTFfQ0hJUFNFTEVDVF8wCisjZGVmaW5lIFlMOTIwMF9GTEFTSF9TSVpFCTB4MTAwMDAwMAogCi1zdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24geWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24geWw5MjAwX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKIAl7Ci0JCS5uYW1lID0JCSJCb290bG9hZGVyIiwKLQkJLnNpemUgPQkJMHgwMDA0MDAwMCwKLQkJLm9mZnNldCA9CTAsCi0JCS5tYXNrX2ZsYWdzID0JTVREX1dSSVRFQUJMRSAgLyogZm9yY2UgcmVhZC1vbmx5ICovCi0JfSx7Ci0JCS5uYW1lID0JCSJLZXJuZWwiLAotCQkuc2l6ZSA9CQkweDAwMUMwMDAwLAotCQkub2Zmc2V0ID0JMHgwMDA0MDAwMCwKLQl9LHsKLQkJLm5hbWUgPQkJIkZpbGVzeXN0ZW0iLAotCQkuc2l6ZSA9CQlNVERQQVJUX1NJWl9GVUxMLAotCQkub2Zmc2V0ID0JMHgwMDIwMDAwMAotCX0KLQotfTsKLQotc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgeWxfOTIwMF9mbGFzaF9kYXRhID0gewotCS53aWR0aAk9IDIsCi0JLnBhcnRzICAgICAgICAgID0geWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zLAotCS5ucl9wYXJ0cyAgICAgICA9IEFSUkFZX1NJWkUoeWxfOTIwMF9mbGFzaF9wYXJ0aXRpb25zKSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgeWxfOTIwMF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKLXsKLQkuc3RhcnQJCT0gWUxfOTIwMF9GTEFTSF9CQVNFLAotCS5lbmQJCT0gWUxfOTIwMF9GTEFTSF9CQVNFICsgWUxfOTIwMF9GTEFTSF9TSVpFIC0gMSwKLQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJCS5uYW1lCQk9ICJCb290bG9hZGVyIiwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwkJLm9mZnNldAkJPSAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCS8qIGZvcmNlIHJlYWQtb25seSAqLworCX0sCisJeworCQkubmFtZQkJPSAiS2VybmVsIiwKKwkJLnNpemUJCT0gMHgwMDFDMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwMDQwMDAwLAorCX0sCisJeworCQkubmFtZQkJPSAiRmlsZXN5c3RlbSIsCisJCS5zaXplCQk9IE1URFBBUlRfU0laX0ZVTEwsCisJCS5vZmZzZXQJCT0gMHgwMDIwMDAwMAogCX0KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsXzkyMDBfZmxhc2ggPSB7CitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSB5bDkyMDBfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMiwKKwkucGFydHMJCT0geWw5MjAwX2ZsYXNoX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh5bDkyMDBfZmxhc2hfcGFydGl0aW9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHlsOTIwMF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFlMOTIwMF9GTEFTSF9CQVNFLAorCQkuZW5kCT0gWUw5MjAwX0ZMQVNIX0JBU0UgKyBZTDkyMDBfRkxBU0hfU0laRSAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHlsOTIwMF9mbGFzaCA9IHsKIAkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCiAJLmlkCQk9IDAsCiAJLmRldgkJPSB7Ci0JCQkJLnBsYXRmb3JtX2RhdGEJPSAmeWxfOTIwMF9mbGFzaF9kYXRhLAorCQkJCS5wbGF0Zm9ybV9kYXRhCT0gJnlsOTIwMF9mbGFzaF9kYXRhLAogCQkJfSwKLQkucmVzb3VyY2UJPSB5bF85MjAwX2ZsYXNoX3Jlc291cmNlcywKLQkubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKHlsXzkyMDBfZmxhc2hfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSB5bDkyMDBfZmxhc2hfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh5bDkyMDBfZmxhc2hfcmVzb3VyY2VzKSwKIH07CiAKLQotc3RhdGljIHN0cnVjdCBncGlvX2xlZCB5bF85MjAwX2xlZHNbXSA9IHsKLS8qRDIgJkQzIGFyZSBwYXNzZWQgZGlyZWN0bHkgaW4gdmlhIGF0OTFfaW5pdF9sZWRzKi8KLQl7Ci0JCS5uYW1lCQkJPSAibGVkNCIsICAvKkQ0Ki8KLQkJLmdwaW8JCQk9IEFUOTFfUElOX1BCMTUsCi0JCS5hY3RpdmVfbG93CQk9IDEsCi0JCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKLQkJLyouZGVmYXVsdF90cmlnZ2VyCT0gInRpbWVyIiwqLwotCX0sCi0JewotCQkubmFtZQkJCT0gImxlZDUiLCAgLypENSovCi0JCS5ncGlvCQkJPSBBVDkxX1BJTl9QQjgsCi0JCS5hY3RpdmVfbG93CQk9IDEsCi0JCS5kZWZhdWx0X3RyaWdnZXIJPSAiaGVhcnRiZWF0IiwKLQl9Ci19OwotCi0vL3N0YXRpYyBzdHJ1Y3QgZ3Bpb19zb3VuZGVyIHlsXzkyMDBfc291bmRlcltdID0geyovCi0vKlRoaXMgaXMgYSBzaW1wbGUgc3BlYWtlciBhdHRhY2hlZCB0byBhIGdwbyBsaW5lKi8KLQotLy8JewotLy8JCS5uYW1lCQkJPSAiU3BlYWtlciIsICAvKkxTMSovCi0vLwkJLmdwaW8JCQk9IEFUOTFfUElOX1BBMjIsCi0vLwkJLmFjdGl2ZV9sb3cJCT0gMCwKLS8vCQkuZGVmYXVsdF90cmlnZ2VyCT0gImhlYXJ0YmVhdCIsCi0JCS8qLmRlZmF1bHRfdHJpZ2dlcgk9ICJ0aW1lciIsKi8KLS8vCX0sCi0vL307Ci0KLQotCi1zdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgeWxfOTIwMF9pMmNfZGV2aWNlc1tdID0gewotCXsKLQkvKlRPRE8qLwotCQlJMkNfQk9BUkRfSU5GTygiQ1M0MzM0IiwgMHgwMCksCi0JfQotfTsKLQotCi0gLyoKLSAqIEdQSU8gQnV0dG9ucworLyoKKyAqIEkyQyAoVFdJKQogICovCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgeWw5MjAwX2kyY19kZXZpY2VzW10gPSB7CisJewkvKiBFRVBST00gKi8KKwkJSTJDX0JPQVJEX0lORk8oIjI0YzEyOCIsIDB4NTApLAorCX0KK307CisKKy8qCisgKiBHUElPIEJ1dHRvbnMKKyovCiAjaWYgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJTykgfHwgZGVmaW5lZChDT05GSUdfS0VZQk9BUkRfR1BJT19NT0RVTEUpCi1zdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24geWxfOTIwMF9idXR0b25zW10gPSB7CitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24geWw5MjAwX2J1dHRvbnNbXSA9IHsKIAl7CiAJCS5ncGlvCQk9IEFUOTFfUElOX1BBMjQsCi0JCS5jb2RlCT0gQlROXzIsCisJCS5jb2RlCQk9IEJUTl8yLAogCQkuZGVzYwkJPSAiU1cyIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAogCQkud2FrZXVwCQk9IDEsCiAJfSwKIAl7CiAJCS5ncGlvCQk9IEFUOTFfUElOX1BCMSwKLQkJLmNvZGUJPSBCVE5fMywKKwkJLmNvZGUJCT0gQlROXzMsCiAJCS5kZXNjCQk9ICJTVzMiLAogCQkuYWN0aXZlX2xvdwk9IDEsCiAJCS53YWtldXAJCT0gMSwKIAl9LAogCXsKIAkJLmdwaW8JCT0gQVQ5MV9QSU5fUEIyLAotCQkuY29kZQk9IEJUTl80LAorCQkuY29kZQkJPSBCVE5fNCwKIAkJLmRlc2MJCT0gIlNXNCIsCiAJCS5hY3RpdmVfbG93CT0gMSwKIAkJLndha2V1cAkJPSAxLAogCX0sCiAJewogCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQjYsCi0JCS5jb2RlCT0gQlROXzUsCisJCS5jb2RlCQk9IEJUTl81LAogCQkuZGVzYwkJPSAiU1c1IiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAogCQkud2FrZXVwCQk9IDEsCi0JfSwKLQorCX0KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgeWxfOTIwMF9idXR0b25fZGF0YSA9IHsKLQkuYnV0dG9ucwk9IHlsXzkyMDBfYnV0dG9ucywKLQkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHlsXzkyMDBfYnV0dG9ucyksCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHlsOTIwMF9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IHlsOTIwMF9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoeWw5MjAwX2J1dHRvbnMpLAogfTsKIAotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWxfOTIwMF9idXR0b25fZGV2aWNlID0geworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWw5MjAwX2J1dHRvbl9kZXZpY2UgPSB7CiAJLm5hbWUJCT0gImdwaW8ta2V5cyIsCiAJLmlkCQk9IC0xLAogCS5udW1fcmVzb3VyY2VzCT0gMCwKIAkuZGV2CQk9IHsKLQkucGxhdGZvcm1fZGF0YQk9ICZ5bF85MjAwX2J1dHRvbl9kYXRhLAorCQkucGxhdGZvcm1fZGF0YQk9ICZ5bDkyMDBfYnV0dG9uX2RhdGEsCiAJfQogfTsKIAotc3RhdGljIHZvaWQgX19pbml0IHlsXzkyMDBfYWRkX2RldmljZV9idXR0b25zKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfYnV0dG9ucyh2b2lkKQogewotCS8vU1cyCi0JYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQTI0LCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BBMjQsIDEpOwkvKiBTVzIgKi8KIAlhdDkxX3NldF9kZWdsaXRjaChBVDkxX1BJTl9QQTI0LCAxKTsKLQotCS8vU1czCi0JYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjEsIDApOworCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIxLCAxKTsJLyogU1czICovCiAJYXQ5MV9zZXRfZGVnbGl0Y2goQVQ5MV9QSU5fUEIxLCAxKTsKLQkvL1NXNAotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEIyLCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMiwgMSk7CS8qIFNXNCAqLwogCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCMiwgMSk7Ci0KLQkvL1NXNQotCWF0OTFfc2V0X2dwaW9faW5wdXQoQVQ5MV9QSU5fUEI2LCAwKTsKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCNiwgMSk7CS8qIFNXNSAqLwogCWF0OTFfc2V0X2RlZ2xpdGNoKEFUOTFfUElOX1BCNiwgMSk7CiAKKwkvKiBFbmFibGUgYnV0dG9ucyAoU2hlZXQgNSkgKi8KKwlhdDkxX3NldF9ncGlvX291dHB1dChBVDkxX1BJTl9QQjcsIDEpOwogCi0JYXQ5MV9zZXRfZ3Bpb19vdXRwdXQoQVQ5MV9QSU5fUEI3LCAxKTsJLyogI1RVUk4gQlVUVE9OUyBPTiwgU0hFRVQgNSAgb2Ygc2NoZW1hdGljcyAqLwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmeWxfOTIwMF9idXR0b25fZGV2aWNlKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnlsOTIwMF9idXR0b25fZGV2aWNlKTsKIH0KICNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX2J1dHRvbnModm9pZCkge30KK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfYWRkX2RldmljZV9idXR0b25zKHZvaWQpIHt9CiAjZW5kaWYKIAorLyoKKyAqIFRvdWNoc2NyZWVuCisgKi8KKyNpZiBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2KSB8fCBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2X01PRFVMRSkKK3N0YXRpYyBpbnQgYWRzNzg0M19wZW5kb3duX3N0YXRlKHZvaWQpCit7CisJcmV0dXJuICFhdDkxX2dldF9ncGlvX3ZhbHVlKEFUOTFfUElOX1BCMTEpOwkvKiBUb3VjaHNjcmVlbiBQRU5JUlEgKi8KK30KKworc3RhdGljIHN0cnVjdCBhZHM3ODQ2X3BsYXRmb3JtX2RhdGEgYWRzX2luZm8gPSB7CisJLm1vZGVsCQkJPSA3ODQzLAorCS54X21pbgkJCT0gMTUwLAorCS54X21heAkJCT0gMzgzMCwKKwkueV9taW4JCQk9IDE5MCwKKwkueV9tYXgJCQk9IDM4MzAsCisJLnZyZWZfZGVsYXlfdXNlY3MJPSAxMDAsCisKKwkvKiBGb3IgYSA4IiB0b3VjaC1zY3JlZW4gKi8KKwkvLyAueF9wbGF0ZV9vaG1zCQk9IDYwMywKKwkvLyAueV9wbGF0ZV9vaG1zCQk9IDMzMiwKKworCS8qIEZvciBhIDEwLjQiIHRvdWNoLXNjcmVlbiAqLworCS8vIC54X3BsYXRlX29obXMJCT0gNjExLAorCS8vIC55X3BsYXRlX29obXMJCT0gMzI1LAorCisJLnhfcGxhdGVfb2htcwkJPSA1NzYsCisJLnlfcGxhdGVfb2htcwkJPSAzNjYsCisKKwkucHJlc3N1cmVfbWF4CQk9IDE1MDAwLCAvKiBnZW5lcmFsbHkgbm9uc2Vuc2Ugb24gdGhlIDc4NDMgKi8KKwkuZGVib3VuY2VfbWF4CQk9IDEsCisJLmRlYm91bmNlX3JlcAkJPSAwLAorCS5kZWJvdW5jZV90b2wJCT0gKH4wKSwKKwkuZ2V0X3BlbmRvd25fc3RhdGUJPSBhZHM3ODQzX3BlbmRvd25fc3RhdGUsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfdHModm9pZCkKK3sKKwlhdDkxX3NldF9ncGlvX2lucHV0KEFUOTFfUElOX1BCMTEsIDEpOwkvKiBUb3VjaHNjcmVlbiBpbnRlcnJ1cHQgcGluICovCisJYXQ5MV9zZXRfZ3Bpb19pbnB1dChBVDkxX1BJTl9QQjEwLCAxKTsJLyogVG91Y2hzY3JlZW4gQlVTWSBzaWduYWwgLSBub3QgdXNlZCEgKi8KK30KKyNlbHNlCitzdGF0aWMgdm9pZCBfX2luaXQgeWw5MjAwX2FkZF9kZXZpY2VfdHModm9pZCkge30KKyNlbmRpZgorCisvKgorICogU1BJIGRldmljZXMKKyAqLworc3RhdGljIHN0cnVjdCBzcGlfYm9hcmRfaW5mbyB5bDkyMDBfc3BpX2RldmljZXNbXSA9IHsKKyNpZiBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2KSB8fCBkZWZpbmVkKENPTkZJR19UT1VDSFNDUkVFTl9BRFM3ODQ2X01PRFVMRSkKKwl7CS8qIFRvdWNoc2NyZWVuICovCisJCS5tb2RhbGlhcwk9ICJhZHM3ODQ2IiwKKwkJLmNoaXBfc2VsZWN0CT0gMCwKKwkJLm1heF9zcGVlZF9oegk9IDUwMDAgKiAyNiwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmYWRzX2luZm8sCisJCS5pcnEJCT0gQVQ5MV9QSU5fUEIxMSwKKwl9LAorI2VuZGlmCisJewkvKiBDQU4gKi8KKwkJLm1vZGFsaWFzCT0gIm1jcDI1MTAiLAorCQkuY2hpcF9zZWxlY3QJPSAxLAorCQkubWF4X3NwZWVkX2h6CT0gMjUwMDAgKiAyNiwKKwkJLmlycQkJPSBBVDkxX1BJTl9QQzAsCisJfQorfTsKKworLyoKKyAqIExDRCAvIFZHQQorICoKKyAqIEVQU09OIFMxRDEzODA2IEZCIChkaXNjb250aW51ZWQgY2hpcCkKKyAqIEVQU09OIFMxRDEzNTA2IEZCCisgKi8KICNpZiBkZWZpbmVkKENPTkZJR19GQl9TMUQxMzVYWCkgfHwgZGVmaW5lZChDT05GSUdfRkJfUzFEMTNYWFhfTU9EVUxFKQogI2luY2x1ZGUgPHZpZGVvL3MxZDEzeHh4ZmIuaD4KIAotLyogRVBTT04gUzFEMTM4MDYgRkIgKGRpc2NvbnRpbnVlZCBjaGlwKSovCi0vKiBFUFNPTiBTMUQxMzUwNiBGQiAqLwotCiAjZGVmaW5lIEFUOTFfRkJfUkVHX0JBU0UJMHg4MDAwMDAwMEwKICNkZWZpbmUgQVQ5MV9GQl9SRUdfU0laRQkweDIwMAogI2RlZmluZSBBVDkxX0ZCX1ZNRU1fQkFTRQkweDgwMjAwMDAwTAogI2RlZmluZSBBVDkxX0ZCX1ZNRU1fU0laRQkweDIwMDAwMEwKIAotLyojZGVmaW5lIFMxRF9ESVNQTEFZX1dJRFRIICAgICAgICAgICA2NDAqLwotLyojZGVmaW5lIFMxRF9ESVNQTEFZX0hFSUdIVCAgICAgICAgICA0ODAqLwotCi0KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX2luaXRfdmlkZW8odm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCB5bDkyMDBfaW5pdF92aWRlbyh2b2lkKQogewotCWF0OTFfc3lzX3dyaXRlKEFUOTFfUElPQyArIFBJT19BU1IsQVQ5MV9QSU5fUEM2KTsKLQlhdDkxX3N5c193cml0ZShBVDkxX1BJT0MgKyBQSU9fQlNSLDApOwotCWF0OTFfc3lzX3dyaXRlKEFUOTFfUElPQyArIFBJT19BU1IsQVQ5MV9QSU5fUEM2KTsKKwkvKiBOV0FJVCBTaWduYWwgKi8KKwlhdDkxX3NldF9BX3BlcmlwaChBVDkxX1BJTl9QQzYsIDApOwogCi0JYXQ5MV9zeXNfd3JpdGUoIEFUOTFfU01DX0NTUigyKSwKLQlBVDkxX1NNQ19OV1NfKDB4NCkgfAotCUFUOTFfU01DX1dTRU4gfAotCUFUOTFfU01DX1RERl8oMHgxMDApIHwKLQlBVDkxX1NNQ19EQlcKKwkvKiBJbml0aWFsaXphdGlvbiBvZiB0aGUgU3RhdGljIE1lbW9yeSBDb250cm9sbGVyIGZvciBDaGlwIFNlbGVjdCAyICovCisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9TTUNfQ1NSKDIpLCBBVDkxX1NNQ19EQldfMTYJCS8qIDE2IGJpdCAqLworCQkJfCBBVDkxX1NNQ19XU0VOIHwgQVQ5MV9TTUNfTldTXygweDQpCS8qIHdhaXQgc3RhdGVzICovCisJCQl8IEFUOTFfU01DX1RERl8oMHgxMDApCQkJLyogZmxvYXQgdGltZSAqLwogCSk7Ci0KLQotCiB9CiAKLQotc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3JlZ3ZhbCB5bF85MjAwX3MxZGZiX2luaXRyZWdzW10gPQorc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3JlZ3ZhbCB5bDkyMDBfczFkZmJfaW5pdHJlZ3NbXSA9CiB7Ci0Je1MxRFJFR19NSVNDLAkJCQkweDAwfSwgICAvKiBNaXNjZWxsYW5lb3VzIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NPTV9ESVNQX01PREUsCQkweDAxfSwgICAvKiBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIExDRCBvbmx5Ki8KLQl7UzFEUkVHX0dQSU9fQ05GMCwJCQkweDAwfSwgICAvKiBHZW5lcmFsIElPIFBpbnMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19HUElPX0NUTDAsCQkJMHgwMH0sICAgLyogR2VuZXJhbCBJTyBQaW5zIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ0xLX0NORiwJCQkweDExfSwgICAvKiBNZW1vcnkgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ0xLX0NORiwJCTB4MTB9LCAgIC8qIExDRCBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DTEtfQ05GLAkJMHgxMn0sICAgLyogQ1JUL1RWIFBpeGVsIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfTVBMVUdfQ0xLX0NORiwJCTB4MDF9LCAgIC8qIE1lZGlhUGx1ZyBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NQVTJNRU1fV1NUX1NFTCwJMHgwMn0sICAgLyogQ1BVIFRvIE1lbW9yeSBXYWl0IFN0YXRlIFNlbGVjdCBSZWdpc3RlciovCi0Je1MxRFJFR19NRU1fQ05GLAkJCTB4MDB9LCAgIC8qIE1lbW9yeSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1NEUkFNX1JFRl9SQVRFLAkJMHgwNH0sICAgLyogRFJBTSBSZWZyZXNoIFJhdGUgUmVnaXN0ZXIsIE1DTEsgc291cmNlKi8KLQl7UzFEUkVHX1NEUkFNX1RDMCwJCQkweDEyfSwgICAvKiBEUkFNIFRpbWluZ3MgQ29udHJvbCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX1NEUkFNX1RDMSwJCQkweDAyfSwgICAvKiBEUkFNIFRpbWluZ3MgQ29udHJvbCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX1BBTkVMX1RZUEUsCQkJMHgyNX0sICAgLyogUGFuZWwgVHlwZSBSZWdpc3RlciovCi0Je1MxRFJFR19NT0RfUkFURSwJCQkweDAwfSwgICAvKiBNT0QgUmF0ZSBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9IV0lEVEgsCTB4NEZ9LCAgIC8qIExDRCBIb3Jpem9udGFsIERpc3BsYXkgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX05ESVNQX0hQRVIsCQkweDEzfSwgICAvKiBMQ0QgSG9yaXpvbnRhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQTElORV9TVEFSVCwJMHgwMX0sICAgLyogVEZUIEZQTElORSBTdGFydCBQb3NpdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19URlRfRlBMSU5FX1BXSURUSCwJMHgwY30sICAgLyogVEZUIEZQTElORSBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9WSEVJR0hUMCwJMHhERn0sICAgLyogTENEIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX0RJU1BfVkhFSUdIVDEsCTB4MDF9LCAgIC8qIExDRCBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9ORElTUF9WUEVSLAkJMHgyY30sICAgLyogTENEIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCi0Je1MxRFJFR19URlRfRlBGUkFNRV9TVEFSVCwJMHgwYX0sICAgLyogVEZUIEZQRlJBTUUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfVEZUX0ZQRlJBTUVfUFdJRFRILAkweDAyfSwgICAvKiBURlQgRlBGUkFNRSBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9NT0RFLAkJMHgwNX0sICAgLyogTENEIERpc3BsYXkgTW9kZSBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfTUlTQywJCQkweDAxfSwgICAvKiBMQ0QgTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDAsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDEsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfRElTUF9TVEFSVDIsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19MQ0RfTUVNX09GRjAsCQkweDgwfSwgICAvKiBMQ0QgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX01FTV9PRkYxLAkJMHgwMn0sICAgLyogTENEIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9QSVhfUEFOLAkJMHgwM30sICAgLyogTENEIFBpeGVsIFBhbm5pbmcgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0RJU1BfRklGT19IVEMsCTB4MDB9LCAgIC8qIExDRCBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfRElTUF9GSUZPX0xUQywJMHgwMH0sICAgLyogTENEIERpc3BsYXkgRklGTyBMb3cgVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0RJU1BfSFdJRFRILAkweDRGfSwgICAvKiBDUlQvVFYgSG9yaXpvbnRhbCBEaXNwbGF5IFdpZHRoIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9ORElTUF9IUEVSLAkJMHgxM30sICAgLyogQ1JUL1RWIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9IUlRDX1NUQVJULAkJMHgwMX0sICAgLyogQ1JUL1RWIEhSVEMgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0hSVENfUFdJRFRILAkweDBCfSwgICAvKiBDUlQvVFYgSFJUQyBQdWxzZSBXaWR0aCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfRElTUF9WSEVJR0hUMCwJMHhERn0sICAgLyogQ1JUL1RWIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX0RJU1BfVkhFSUdIVDEsCTB4MDF9LCAgIC8qIENSVC9UViBWZXJ0aWNhbCBEaXNwbGF5IEhlaWdodCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9ORElTUF9WUEVSLAkJMHgyQn0sICAgLyogQ1JUL1RWIFZlcnRpY2FsIE5vbi1EaXNwbGF5IFBlcmlvZCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfVlJUQ19TVEFSVCwJCTB4MDl9LCAgIC8qIENSVC9UViBWUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9WUlRDX1BXSURUSCwJMHgwMX0sICAgLyogQ1JUL1RWIFZSVEMgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLwotCXtTMURSRUdfVFZfT1VUX0NUTCwJCQkweDE4fSwgICAvKiBUViBPdXRwdXQgQ29udHJvbCBSZWdpc3RlciAqLwotCXtTMURSRUdfQ1JUX0RJU1BfTU9ERSwJCTB4MDV9LCAgIC8qIENSVC9UViBEaXNwbGF5IE1vZGUgUmVnaXN0ZXIsIDE2QlBQKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMCwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMSwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMiwJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KLQl7UzFEUkVHX0NSVF9NRU1fT0ZGMCwJCTB4ODB9LCAgIC8qIENSVC9UViBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19DUlRfTUVNX09GRjEsCQkweDAyfSwgICAvKiBDUlQvVFYgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQ1JUX1BJWF9QQU4sCQkweDAwfSwgICAvKiBDUlQvVFYgUGl4ZWwgUGFubmluZyBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfRElTUF9GSUZPX0hUQywJMHgwMH0sICAgLyogQ1JUL1RWIERpc3BsYXkgRklGTyBIaWdoIFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fTFRDLAkweDAwfSwgICAvKiBDUlQvVFYgRGlzcGxheSBGSUZPIExvdyBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19MQ0RfQ1VSX0NUTCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIENvbnRyb2wgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9TVEFSVCwJCTB4MDF9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9YUE9TMCwJCTB4MDB9LCAgIC8qIExDRCBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0xDRF9DVVJfWFBPUzEsCQkweDAwfSwgICAvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMSovCi0Je1MxRFJFR19MQ0RfQ1VSX1lQT1MwLAkJMHgwMH0sICAgLyogTENEIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfTENEX0NVUl9ZUE9TMSwJCTB4MDB9LCAgIC8qIExDRCBDdXJzb3IgWSBQb3NpdGlvbiBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0xDRF9DVVJfQkNUTDAsCQkweDAwfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9HQ1RMMCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9SQ1RMMCwJCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFJlZCBDb2xvciAwIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfQkNUTDEsCQkweDFGfSwgICAvKiBMQ0QgSW5rL0N1cnNvciBCbHVlIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9HQ1RMMSwJCTB4M0Z9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfTENEX0NVUl9SQ1RMMSwJCTB4MUZ9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIFJlZCBDb2xvciAxIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0xDRF9DVVJfRklGT19IVEMsCTB4MDB9LCAgIC8qIExDRCBJbmsvQ3Vyc29yIEZJRk8gVGhyZXNob2xkIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0NSVF9DVVJfQ1RMLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1NUQVJULAkJMHgwMX0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1hQT1MwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEN1cnNvciBYIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQ1JUX0NVUl9YUE9TMSwJCTB4MDB9LCAgIC8qIENSVC9UViBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0NSVF9DVVJfWVBPUzAsCQkweDAwfSwgICAvKiBDUlQvVFYgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19DUlRfQ1VSX1lQT1MxLAkJMHgwMH0sICAgLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMCwJCTB4MDB9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX0dDVEwwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgR3JlZW4gQ29sb3IgMCBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1JDVEwwLAkJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDAgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9CQ1RMMSwJCTB4MUZ9LCAgIC8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX0dDVEwxLAkJMHgzRn0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgR3JlZW4gQ29sb3IgMSBSZWdpc3RlciovCi0Je1MxRFJFR19DUlRfQ1VSX1JDVEwxLAkJMHgxRn0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgUmVkIENvbG9yIDEgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ1JUX0NVUl9GSUZPX0hUQywJMHgwMH0sICAgLyogQ1JUL1RWIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLwotCXtTMURSRUdfQkJMVF9DVEwwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9DVEwxLAkJCTB4MDF9LCAgIC8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9DQ19FWFAsCQkweDAwfSwgICAvKiBCaXRCbHQgUk9QIENvZGUvQ29sb3IgRXhwYW5zaW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX0JCTFRfT1AsCQkJMHgwMH0sICAgLyogQml0Qmx0IE9wZXJhdGlvbiBSZWdpc3RlciovCi0Je1MxRFJFR19CQkxUX1NSQ19TVEFSVDAsCTB4MDB9LCAgIC8qIEJpdEJsdCBTb3VyY2UgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfU1JDX1NUQVJUMSwJMHgwMH0sICAgLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQyLAkweDAwfSwgICAvKiBCaXRCbHQgU291cmNlIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19CQkxUX0RTVF9TVEFSVDAsCTB4MDB9LCAgIC8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQxLAkweDAwfSwgICAvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMiwJMHgwMH0sICAgLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMiovCi0Je1MxRFJFR19CQkxUX01FTV9PRkYwLAkJMHgwMH0sICAgLyogQml0Qmx0IE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAwKi8KLQl7UzFEUkVHX0JCTFRfTUVNX09GRjEsCQkweDAwfSwgICAvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9XSURUSDAsCQkweDAwfSwgICAvKiBCaXRCbHQgV2lkdGggUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX1dJRFRIMSwJCTB4MDB9LCAgIC8qIEJpdEJsdCBXaWR0aCBSZWdpc3RlciAxKi8KLQl7UzFEUkVHX0JCTFRfSEVJR0hUMCwJCTB4MDB9LCAgIC8qIEJpdEJsdCBIZWlnaHQgUmVnaXN0ZXIgMCovCi0Je1MxRFJFR19CQkxUX0hFSUdIVDEsCQkweDAwfSwgICAvKiBCaXRCbHQgSGVpZ2h0IFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9CR0MwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBCYWNrZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9CR0MxLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBCYWNrZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfQkJMVF9GR0MwLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBGb3JlZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDAqLwotCXtTMURSRUdfQkJMVF9GR0MxLAkJCTB4MDB9LCAgIC8qIEJpdEJsdCBGb3JlZ3JvdW5kIENvbG9yIFJlZ2lzdGVyIDEqLwotCXtTMURSRUdfTEtVUF9NT0RFLAkJCTB4MDB9LCAgIC8qIExvb2stVXAgVGFibGUgTW9kZSBSZWdpc3RlciovCi0Je1MxRFJFR19MS1VQX0FERFIsCQkJMHgwMH0sICAgLyogTG9vay1VcCBUYWJsZSBBZGRyZXNzIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1BTX0NORiwJCQkJMHgwMH0sICAgLyogUG93ZXIgU2F2ZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KLQl7UzFEUkVHX1BTX1NUQVRVUywJCQkweDAwfSwgICAvKiBQb3dlciBTYXZlIFN0YXR1cyBSZWdpc3RlciovCi0Je1MxRFJFR19DUFUyTUVNX1dET0dULAkJMHgwMH0sICAgLyogQ1BVLXRvLU1lbW9yeSBBY2Nlc3MgV2F0Y2hkb2cgVGltZXIgUmVnaXN0ZXIqLwotCXtTMURSRUdfQ09NX0RJU1BfTU9ERSwJCTB4MDF9LCAgIC8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLworCXtTMURSRUdfTUlTQywJCQkweDAwfSwJLyogTWlzY2VsbGFuZW91cyBSZWdpc3RlciovCisJe1MxRFJFR19DT01fRElTUF9NT0RFLAkJMHgwMX0sCS8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLworCXtTMURSRUdfR1BJT19DTkYwLAkJMHgwMH0sCS8qIEdlbmVyYWwgSU8gUGlucyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0dQSU9fQ1RMMCwJCTB4MDB9LAkvKiBHZW5lcmFsIElPIFBpbnMgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DTEtfQ05GLAkJMHgxMX0sCS8qIE1lbW9yeSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9DTEtfQ05GLAkJMHgxMH0sCS8qIExDRCBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9DTEtfQ05GLAkJMHgxMn0sCS8qIENSVC9UViBQaXhlbCBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX01QTFVHX0NMS19DTkYsCQkweDAxfSwJLyogTWVkaWFQbHVnIENsb2NrIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfQ1BVMk1FTV9XU1RfU0VMLAkweDAyfSwJLyogQ1BVIFRvIE1lbW9yeSBXYWl0IFN0YXRlIFNlbGVjdCBSZWdpc3RlciovCisJe1MxRFJFR19NRU1fQ05GLAkJMHgwMH0sCS8qIE1lbW9yeSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1NEUkFNX1JFRl9SQVRFLAkJMHgwNH0sCS8qIERSQU0gUmVmcmVzaCBSYXRlIFJlZ2lzdGVyLCBNQ0xLIHNvdXJjZSovCisJe1MxRFJFR19TRFJBTV9UQzAsCQkweDEyfSwJLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19TRFJBTV9UQzEsCQkweDAyfSwJLyogRFJBTSBUaW1pbmdzIENvbnRyb2wgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19QQU5FTF9UWVBFLAkJMHgyNX0sCS8qIFBhbmVsIFR5cGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTU9EX1JBVEUsCQkweDAwfSwJLyogTU9EIFJhdGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfSFdJRFRILAkweDRGfSwJLyogTENEIEhvcml6b250YWwgRGlzcGxheSBXaWR0aCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfTkRJU1BfSFBFUiwJCTB4MTN9LAkvKiBMQ0QgSG9yaXpvbnRhbCBOb24tRGlzcGxheSBQZXJpb2QgUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQTElORV9TVEFSVCwJMHgwMX0sCS8qIFRGVCBGUExJTkUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQTElORV9QV0lEVEgsCTB4MGN9LAkvKiBURlQgRlBMSU5FIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1ZIRUlHSFQwLAkweERGfSwJLyogTENEIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0RJU1BfVkhFSUdIVDEsCTB4MDF9LAkvKiBMQ0QgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfTkRJU1BfVlBFUiwJCTB4MmN9LAkvKiBMQ0QgVmVydGljYWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RGVF9GUEZSQU1FX1NUQVJULAkweDBhfSwJLyogVEZUIEZQRlJBTUUgU3RhcnQgUG9zaXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfVEZUX0ZQRlJBTUVfUFdJRFRILAkweDAyfSwJLyogVEZUIEZQRlJBTUUgUHVsc2UgV2lkdGggUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0RJU1BfTU9ERSwJCTB4MDV9LAkvKiBMQ0QgRGlzcGxheSBNb2RlIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9NSVNDLAkJMHgwMX0sCS8qIExDRCBNaXNjZWxsYW5lb3VzIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0xDRF9ESVNQX1NUQVJUMCwJMHgwMH0sCS8qIExDRCBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19MQ0RfRElTUF9TVEFSVDEsCTB4MDB9LAkvKiBMQ0QgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfTENEX0RJU1BfU1RBUlQyLAkweDAwfSwJLyogTENEIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAyKi8KKwl7UzFEUkVHX0xDRF9NRU1fT0ZGMCwJCTB4ODB9LAkvKiBMQ0QgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX01FTV9PRkYxLAkJMHgwMn0sCS8qIExDRCBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfUElYX1BBTiwJCTB4MDN9LAkvKiBMQ0QgUGl4ZWwgUGFubmluZyBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9GSUZPX0hUQywJMHgwMH0sCS8qIExDRCBEaXNwbGF5IEZJRk8gSGlnaCBUaHJlc2hvbGQgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfRElTUF9GSUZPX0xUQywJMHgwMH0sCS8qIExDRCBEaXNwbGF5IEZJRk8gTG93IFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0hXSURUSCwJMHg0Rn0sCS8qIENSVC9UViBIb3Jpem9udGFsIERpc3BsYXkgV2lkdGggUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX05ESVNQX0hQRVIsCQkweDEzfSwJLyogQ1JUL1RWIEhvcml6b250YWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9IUlRDX1NUQVJULAkJMHgwMX0sCS8qIENSVC9UViBIUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9IUlRDX1BXSURUSCwJMHgwQn0sCS8qIENSVC9UViBIUlRDIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1ZIRUlHSFQwLAkweERGfSwJLyogQ1JUL1RWIFZlcnRpY2FsIERpc3BsYXkgSGVpZ2h0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX0RJU1BfVkhFSUdIVDEsCTB4MDF9LAkvKiBDUlQvVFYgVmVydGljYWwgRGlzcGxheSBIZWlnaHQgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfTkRJU1BfVlBFUiwJCTB4MkJ9LAkvKiBDUlQvVFYgVmVydGljYWwgTm9uLURpc3BsYXkgUGVyaW9kIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9WUlRDX1NUQVJULAkJMHgwOX0sCS8qIENSVC9UViBWUlRDIFN0YXJ0IFBvc2l0aW9uIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9WUlRDX1BXSURUSCwJMHgwMX0sCS8qIENSVC9UViBWUlRDIFB1bHNlIFdpZHRoIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX1RWX09VVF9DVEwsCQkweDE4fSwJLyogVFYgT3V0cHV0IENvbnRyb2wgUmVnaXN0ZXIgKi8KKwl7UzFEUkVHX0NSVF9ESVNQX01PREUsCQkweDA1fSwJLyogQ1JUL1RWIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgMTZCUFAqLworCXtTMURSRUdfQ1JUX0RJU1BfU1RBUlQwLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0NSVF9ESVNQX1NUQVJUMSwJMHgwMH0sCS8qIENSVC9UViBEaXNwbGF5IFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfRElTUF9TVEFSVDIsCTB4MDB9LAkvKiBDUlQvVFYgRGlzcGxheSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQ1JUX01FTV9PRkYwLAkJMHg4MH0sCS8qIENSVC9UViBNZW1vcnkgQWRkcmVzcyBPZmZzZXQgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19DUlRfTUVNX09GRjEsCQkweDAyfSwJLyogQ1JUL1RWIE1lbW9yeSBBZGRyZXNzIE9mZnNldCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0NSVF9QSVhfUEFOLAkJMHgwMH0sCS8qIENSVC9UViBQaXhlbCBQYW5uaW5nIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fSFRDLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgRklGTyBIaWdoIFRocmVzaG9sZCBDb250cm9sIFJlZ2lzdGVyKi8KKwl7UzFEUkVHX0NSVF9ESVNQX0ZJRk9fTFRDLAkweDAwfSwJLyogQ1JUL1RWIERpc3BsYXkgRklGTyBMb3cgVGhyZXNob2xkIENvbnRyb2wgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9DVEwsCQkweDAwfSwJLyogTENEIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX1NUQVJULAkJMHgwMX0sCS8qIExDRCBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9YUE9TMCwJCTB4MDB9LAkvKiBMQ0QgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMCovCisJe1MxRFJFR19MQ0RfQ1VSX1hQT1MxLAkJMHgwMH0sCS8qIExDRCBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0xDRF9DVVJfWVBPUzAsCQkweDAwfSwJLyogTENEIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfTENEX0NVUl9ZUE9TMSwJCTB4MDB9LAkvKiBMQ0QgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19MQ0RfQ1VSX0JDVEwwLAkJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0dDVEwwLAkJMHgwMH0sCS8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9SQ1RMMCwJCTB4MDB9LAkvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0JDVEwxLAkJMHgxRn0sCS8qIExDRCBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0dDVEwxLAkJMHgzRn0sCS8qIExDRCBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfTENEX0NVUl9SQ1RMMSwJCTB4MUZ9LAkvKiBMQ0QgSW5rL0N1cnNvciBSZWQgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19MQ0RfQ1VSX0ZJRk9fSFRDLAkweDAwfSwJLyogTENEIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9DVEwsCQkweDAwfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgQ29udHJvbCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX1NUQVJULAkJMHgwMX0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9YUE9TMCwJCTB4MDB9LAkvKiBDUlQvVFYgQ3Vyc29yIFggUG9zaXRpb24gUmVnaXN0ZXIgMCovCisJe1MxRFJFR19DUlRfQ1VSX1hQT1MxLAkJMHgwMH0sCS8qIENSVC9UViBDdXJzb3IgWCBQb3NpdGlvbiBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0NSVF9DVVJfWVBPUzAsCQkweDAwfSwJLyogQ1JUL1RWIEN1cnNvciBZIFBvc2l0aW9uIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQ1JUX0NVUl9ZUE9TMSwJCTB4MDB9LAkvKiBDUlQvVFYgQ3Vyc29yIFkgUG9zaXRpb24gUmVnaXN0ZXIgMSovCisJe1MxRFJFR19DUlRfQ1VSX0JDVEwwLAkJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0dDVEwwLAkJMHgwMH0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDAgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMCwJCTB4MDB9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBSZWQgQ29sb3IgMCBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0JDVEwxLAkJMHgxRn0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEJsdWUgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0dDVEwxLAkJMHgzRn0sCS8qIENSVC9UViBJbmsvQ3Vyc29yIEdyZWVuIENvbG9yIDEgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1JUX0NVUl9SQ1RMMSwJCTB4MUZ9LAkvKiBDUlQvVFYgSW5rL0N1cnNvciBSZWQgQ29sb3IgMSBSZWdpc3RlciovCisJe1MxRFJFR19DUlRfQ1VSX0ZJRk9fSFRDLAkweDAwfSwJLyogQ1JUL1RWIEluay9DdXJzb3IgRklGTyBUaHJlc2hvbGQgUmVnaXN0ZXIqLworCXtTMURSRUdfQkJMVF9DVEwwLAkJMHgwMH0sCS8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9DVEwxLAkJMHgwMX0sCS8qIEJpdEJsdCBDb250cm9sIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9DQ19FWFAsCQkweDAwfSwJLyogQml0Qmx0IFJPUCBDb2RlL0NvbG9yIEV4cGFuc2lvbiBSZWdpc3RlciovCisJe1MxRFJFR19CQkxUX09QLAkJMHgwMH0sCS8qIEJpdEJsdCBPcGVyYXRpb24gUmVnaXN0ZXIqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQwLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQxLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9TUkNfU1RBUlQyLAkweDAwfSwJLyogQml0Qmx0IFNvdXJjZSBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQkJMVF9EU1RfU1RBUlQwLAkweDAwfSwJLyogQml0Qmx0IERlc3RpbmF0aW9uIFN0YXJ0IEFkZHJlc3MgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0RTVF9TVEFSVDEsCTB4MDB9LAkvKiBCaXRCbHQgRGVzdGluYXRpb24gU3RhcnQgQWRkcmVzcyBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfRFNUX1NUQVJUMiwJMHgwMH0sCS8qIEJpdEJsdCBEZXN0aW5hdGlvbiBTdGFydCBBZGRyZXNzIFJlZ2lzdGVyIDIqLworCXtTMURSRUdfQkJMVF9NRU1fT0ZGMCwJCTB4MDB9LAkvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9NRU1fT0ZGMSwJCTB4MDB9LAkvKiBCaXRCbHQgTWVtb3J5IEFkZHJlc3MgT2Zmc2V0IFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9XSURUSDAsCQkweDAwfSwJLyogQml0Qmx0IFdpZHRoIFJlZ2lzdGVyIDAqLworCXtTMURSRUdfQkJMVF9XSURUSDEsCQkweDAwfSwJLyogQml0Qmx0IFdpZHRoIFJlZ2lzdGVyIDEqLworCXtTMURSRUdfQkJMVF9IRUlHSFQwLAkJMHgwMH0sCS8qIEJpdEJsdCBIZWlnaHQgUmVnaXN0ZXIgMCovCisJe1MxRFJFR19CQkxUX0hFSUdIVDEsCQkweDAwfSwJLyogQml0Qmx0IEhlaWdodCBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfQkdDMCwJCTB4MDB9LAkvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfQkdDMSwJCTB4MDB9LAkvKiBCaXRCbHQgQmFja2dyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0JCTFRfRkdDMCwJCTB4MDB9LAkvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAwKi8KKwl7UzFEUkVHX0JCTFRfRkdDMSwJCTB4MDB9LAkvKiBCaXRCbHQgRm9yZWdyb3VuZCBDb2xvciBSZWdpc3RlciAxKi8KKwl7UzFEUkVHX0xLVVBfTU9ERSwJCTB4MDB9LAkvKiBMb29rLVVwIFRhYmxlIE1vZGUgUmVnaXN0ZXIqLworCXtTMURSRUdfTEtVUF9BRERSLAkJMHgwMH0sCS8qIExvb2stVXAgVGFibGUgQWRkcmVzcyBSZWdpc3RlciovCisJe1MxRFJFR19QU19DTkYsCQkJMHgwMH0sCS8qIFBvd2VyIFNhdmUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciovCisJe1MxRFJFR19QU19TVEFUVVMsCQkweDAwfSwJLyogUG93ZXIgU2F2ZSBTdGF0dXMgUmVnaXN0ZXIqLworCXtTMURSRUdfQ1BVMk1FTV9XRE9HVCwJCTB4MDB9LAkvKiBDUFUtdG8tTWVtb3J5IEFjY2VzcyBXYXRjaGRvZyBUaW1lciBSZWdpc3RlciovCisJe1MxRFJFR19DT01fRElTUF9NT0RFLAkJMHgwMX0sCS8qIERpc3BsYXkgTW9kZSBSZWdpc3RlciwgTENEIG9ubHkqLwogfTsKIAotc3RhdGljIHU2NCBzMWRmYl9kbWFtYXNrID0gMHhmZmZmZmZmZlVMOworc3RhdGljIHU2NCBzMWRmYl9kbWFtYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKIAotc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3BkYXRhIHlsXzkyMDBfczFkZmJfcGRhdGEgPSB7Ci0JCS5pbml0cmVncwkJCQk9IHlsXzkyMDBfczFkZmJfaW5pdHJlZ3MsCi0JCS5pbml0cmVnc3NpemUJCQk9IEFSUkFZX1NJWkUoeWxfOTIwMF9zMWRmYl9pbml0cmVncyksCi0JCS5wbGF0Zm9ybV9pbml0X3ZpZGVvCT0geWxfOTIwMF9pbml0X3ZpZGVvLAorc3RhdGljIHN0cnVjdCBzMWQxM3h4eGZiX3BkYXRhIHlsOTIwMF9zMWRmYl9wZGF0YSA9IHsKKwkuaW5pdHJlZ3MJCT0geWw5MjAwX3MxZGZiX2luaXRyZWdzLAorCS5pbml0cmVnc3NpemUJCT0gQVJSQVlfU0laRSh5bDkyMDBfczFkZmJfaW5pdHJlZ3MpLAorCS5wbGF0Zm9ybV9pbml0X3ZpZGVvCT0geWw5MjAwX2luaXRfdmlkZW8sCiB9OwogCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHlsXzkyMDBfczFkZmJfcmVzb3VyY2VbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgeWw5MjAwX3MxZGZiX3Jlc291cmNlW10gPSB7CiAJWzBdID0gewkvKiB2aWRlbyBtZW0gKi8KLQkJLm5hbWUgICA9ICJzMWQxM3h4eGZiIG1lbW9yeSIsCi0JLyoJLm5hbWUgICA9ICJzMWQxMzgwNiBtZW1vcnkiLCovCi0JCS5zdGFydCAgPSBBVDkxX0ZCX1ZNRU1fQkFTRSwKLQkJLmVuZCAgICA9IEFUOTFfRkJfVk1FTV9CQVNFICsgQVQ5MV9GQl9WTUVNX1NJWkUgLTEsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKKwkJLm5hbWUJPSAiczFkMTN4eHhmYiBtZW1vcnkiLAorCQkuc3RhcnQJPSBBVDkxX0ZCX1ZNRU1fQkFTRSwKKwkJLmVuZAk9IEFUOTFfRkJfVk1FTV9CQVNFICsgQVQ5MV9GQl9WTUVNX1NJWkUgLTEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiAJWzFdID0gewkvKiB2aWRlbyByZWdpc3RlcnMgKi8KLQkJLm5hbWUgICA9ICJzMWQxM3h4eGZiIHJlZ2lzdGVycyIsCi0JLyoJLm5hbWUgICA9ICJzMWQxMzgwNiByZWdpc3RlcnMiLCovCi0JCS5zdGFydCAgPSBBVDkxX0ZCX1JFR19CQVNFLAotCQkuZW5kICAgID0gQVQ5MV9GQl9SRUdfQkFTRSArIEFUOTFfRkJfUkVHX1NJWkUgLTEsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX01FTSwKKwkJLm5hbWUJPSAiczFkMTN4eHhmYiByZWdpc3RlcnMiLAorCQkuc3RhcnQJPSBBVDkxX0ZCX1JFR19CQVNFLAorCQkuZW5kCT0gQVQ5MV9GQl9SRUdfQkFTRSArIEFUOTFfRkJfUkVHX1NJWkUgLTEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB5bF85MjAwX3MxZGZiX2RldmljZSA9IHsKLQkvKlRPRE8gUy5CaXJ0bGVzICwgcmVhbGx5IHdlIG5lZWQgdGhlIGNoaXAgcmV2aXNpb24gaW4gaGVyZSBhcyB3ZWxsKi8KLQkJLm5hbWUJCT0gInMxZDEzODA2ZmIiLAotCS8qICAubmFtZQkJPSAiczFkMTM1MDZmYiIsKi8KLQkJLmlkCQkJPSAtMSwKLQkJLmRldgkJPSB7Ci0JLypUT0RPIHRoZXJlcyBhIHdhcmluZyBoZXJlISEqLwotCS8qV0FSTklORzogdm1saW51eC5vKC5kYXRhKzB4MmRiYyk6IFNlY3Rpb24gbWlzbWF0Y2g6IHJlZmVyZW5jZSB0byAuaW5pdC50ZXh0OiAoYmV0d2VlbiAneWxfOTIwMF9zMWRmYl9wZGF0YScgYW5kICdzMWRmYl9kbWFtYXNrJykqLworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgeWw5MjAwX3MxZGZiX2RldmljZSA9IHsKKwkubmFtZQkJPSAiczFkMTM4MDZmYiIsCisJLmlkCQk9IC0xLAorCS5kZXYJPSB7CiAJCS5kbWFfbWFzawkJPSAmczFkZmJfZG1hbWFzaywKLQkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKLQkJLnBsYXRmb3JtX2RhdGEJCT0gJnlsXzkyMDBfczFkZmJfcGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzawk9IERNQV9CSVRfTUFTSygzMiksCisJCS5wbGF0Zm9ybV9kYXRhCQk9ICZ5bDkyMDBfczFkZmJfcGRhdGEsCiAJfSwKLQkucmVzb3VyY2UJPSB5bF85MjAwX3MxZGZiX3Jlc291cmNlLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRSh5bF85MjAwX3MxZGZiX3Jlc291cmNlKSwKKwkucmVzb3VyY2UJPSB5bDkyMDBfczFkZmJfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHlsOTIwMF9zMWRmYl9yZXNvdXJjZSksCiB9OwogCi12b2lkIF9faW5pdCB5bF85MjAwX2FkZF9kZXZpY2VfdmlkZW8odm9pZCkKK3ZvaWQgX19pbml0IHlsOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKHZvaWQpCiB7Ci0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bF85MjAwX3MxZGZiX2RldmljZSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bDkyMDBfczFkZmJfZGV2aWNlKTsKIH0KICNlbHNlCi0Jdm9pZCBfX2luaXQgeWxfOTIwMF9hZGRfZGV2aWNlX3ZpZGVvKHZvaWQpIHt9Cit2b2lkIF9faW5pdCB5bDkyMDBfYWRkX2RldmljZV92aWRlbyh2b2lkKSB7fQogI2VuZGlmCiAKLS8qdGhpcyBpcyBub3QgY2FsbGVkIGZpcnN0ICwgeWxfOTIwMF9tYXBfaW8gaXMgY2FsbGVkIGZpcnN0Ki8KLXN0YXRpYyB2b2lkIF9faW5pdCB5bF85MjAwX2JvYXJkX2luaXQodm9pZCkKKworc3RhdGljIHZvaWQgX19pbml0IHlsOTIwMF9ib2FyZF9pbml0KHZvaWQpCiB7CiAJLyogU2VyaWFsICovCiAJYXQ5MV9hZGRfZGV2aWNlX3NlcmlhbCgpOwogCS8qIEV0aGVybmV0ICovCi0JYXQ5MV9hZGRfZGV2aWNlX2V0aCgmeWxfOTIwMF9ldGhfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX2V0aCgmeWw5MjAwX2V0aF9kYXRhKTsKIAkvKiBVU0IgSG9zdCAqLwotCWF0OTFfYWRkX2RldmljZV91c2JoKCZ5bF85MjAwX3VzYmhfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX3VzYmgoJnlsOTIwMF91c2JoX2RhdGEpOwogCS8qIFVTQiBEZXZpY2UgKi8KLQlhdDkxX2FkZF9kZXZpY2VfdWRjKCZ5bF85MjAwX3VkY19kYXRhKTsKLQkvKiBwdWxsdXBfcGluIGl0IGlzICBhY3R1YWxseSBhY3RpdmUgbG93LCBidXQgdGhpcyBpcyBub3QgbmVlZGVkLCBkcml2ZXIgc2V0cyBpdCB1cCAqLwotCS8qYXQ5MV9zZXRfbXVsdGlfZHJpdmUoeWxfOTIwMF91ZGNfZGF0YS5wdWxsdXBfcGluLCAwKTsqLwotCi0JLyogQ29tcGFjdCBGbGFzaCAqLwotCS8qYXQ5MV9hZGRfZGV2aWNlX2NmKCZ5bF85MjAwX2NmX2RhdGEpOyovCi0KKwlhdDkxX2FkZF9kZXZpY2VfdWRjKCZ5bDkyMDBfdWRjX2RhdGEpOwogCS8qIEkyQyAqLwotCWF0OTFfYWRkX2RldmljZV9pMmMoeWxfOTIwMF9pMmNfZGV2aWNlcywgQVJSQVlfU0laRSh5bF85MjAwX2kyY19kZXZpY2VzKSk7Ci0JLyogU1BJICovCi0JLypUT0RPIFlMOTIwMCB3ZSBoYXZlIDIgc3BpIGludGVyZmFjZXMgdG91Y2ggc2NyZWVuICYgQ0FOKi8KLQkvKiBBVDkxX1BJTl9QQTUsIEFUOTFfUElOX1BBNiAsIGFyZSB1c2VkIG9uIHRoZSAgbWF4IDQ4NSBOT1QgU1BJKi8KLQotCS8qdG91Y2ggc2NyZWVuIGFuZCBDQU4qLwotCWF0OTFfYWRkX2RldmljZV9zcGkoeWxfOTIwMF9zcGlfZGV2aWNlcywgQVJSQVlfU0laRSh5bF85MjAwX3NwaV9kZXZpY2VzKSk7Ci0KLQkvKkJhc2ljYWxseSB0aGUgIFRTIHVzZXMgIFBCMTEgJiBQQjEwICwgUEIxMSBpcyBjb25maWd1cmVkIGJ5IHRoZSBTUEkgc3lzdGVtIEJQMTAgSVMgTk9UIFVTRUQhISovCi0JLyogd2UgbmVlZCB0aGlzIGluY2FzZSB0aGUgYm9hcmQgaXMgcnVubmluZyB3aXRob3V0IGEgdG91Y2ggc2NyZWVuKi8KLQkjaWYgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0NikgfHwgZGVmaW5lZChDT05GSUdfVE9VQ0hTQ1JFRU5fQURTNzg0Nl9NT0RVTEUpCi0JYXQ5MV9pbml0X2RldmljZV90cygpOyAvKmluaXQgdGhlIHRvdWNoIHNjcmVlbiBkZXZpY2UqLwotCSNlbmRpZgotCS8qIERhdGFGbGFzaCBjYXJkICovCi0JYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmeWxfOTIwMF9tbWNfZGF0YSk7CisJYXQ5MV9hZGRfZGV2aWNlX2kyYyh5bDkyMDBfaTJjX2RldmljZXMsIEFSUkFZX1NJWkUoeWw5MjAwX2kyY19kZXZpY2VzKSk7CisJLyogTU1DICovCisJYXQ5MV9hZGRfZGV2aWNlX21tYygwLCAmeWw5MjAwX21tY19kYXRhKTsKIAkvKiBOQU5EICovCi0JYXQ5MV9hZGRfZGV2aWNlX25hbmQoJnlsXzkyMDBfbmFuZF9kYXRhKTsKKwlhdDkxX2FkZF9kZXZpY2VfbmFuZCgmeWw5MjAwX25hbmRfZGF0YSk7CiAJLyogTk9SIEZsYXNoICovCi0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ5bF85MjAwX2ZsYXNoKTsKLQkvKiBMRURzLiBOb3RlISEgdGhpcyBkb2VzIG5vdCBpbmNsdWRlIHRoZSBsZWQncyB3ZSBwYXNzZWQgZm9yIHRoZSBwcm9jZXNzb3Igc3RhdHVzICovCi0JYXQ5MV9ncGlvX2xlZHMoeWxfOTIwMF9sZWRzLCBBUlJBWV9TSVpFKHlsXzkyMDBfbGVkcykpOwotCS8qIFZHQSAgKi8KLQkvKnRoaXMgaXMgc2VsZiByZWdpc3RlcmVkIGJ5IGluY2x1ZGluZyB0aGUgczFkMTN4eHggY2hpcCBpbiB0aGUga2VybmVsIGJ1aWxkKi8KLQl5bF85MjAwX2FkZF9kZXZpY2VfdmlkZW8oKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnlsOTIwMF9mbGFzaCk7CisjaWYgZGVmaW5lZChDT05GSUdfU1BJX0FUTUVMKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQVRNRUxfTU9EVUxFKQorCS8qIFNQSSAqLworCWF0OTFfYWRkX2RldmljZV9zcGkoeWw5MjAwX3NwaV9kZXZpY2VzLCBBUlJBWV9TSVpFKHlsOTIwMF9zcGlfZGV2aWNlcykpOworCS8qIFRvdWNoc2NyZWVuICovCisJeWw5MjAwX2FkZF9kZXZpY2VfdHMoKTsKKyNlbmRpZgorCS8qIExFRHMuICovCisJYXQ5MV9ncGlvX2xlZHMoeWw5MjAwX2xlZHMsIEFSUkFZX1NJWkUoeWw5MjAwX2xlZHMpKTsKIAkvKiBQdXNoIEJ1dHRvbnMgKi8KLQl5bF85MjAwX2FkZF9kZXZpY2VfYnV0dG9ucygpOwotCS8qVE9ETyBmaXh1cCB0aGUgU291bmRlciAqLwotLy8JeWxfOTIwMF9hZGRfZGV2aWNlX3NvdW5kZXIoeWxfOTIwMF9zb3VuZGVyLEFSUkFZX1NJWkUoeWxfOTIwMF9zb3VuZGVyKSk7Ci0KKwl5bDkyMDBfYWRkX2RldmljZV9idXR0b25zKCk7CisJLyogVkdBICovCisJeWw5MjAwX2FkZF9kZXZpY2VfdmlkZW8oKTsKIH0KIAogTUFDSElORV9TVEFSVChZTDkyMDAsICJ1Q2RyYWdvbiBZTC05MjAwIikKLQkvKiBNYWludGFpbmVyOiBTLkJpcnRsZXMqLwotCS5waHlzX2lvCQk9IEFUOTFfQkFTRV9TWVMsCisJLyogTWFpbnRhaW5lcjogUy5CaXJ0bGVzICovCisJLnBoeXNfaW8JPSBBVDkxX0JBU0VfU1lTLAogCS5pb19wZ19vZmZzdAk9IChBVDkxX1ZBX0JBU0VfU1lTID4+IDE4KSAmIDB4ZmZmYywKIAkuYm9vdF9wYXJhbXMJPSBBVDkxX1NEUkFNX0JBU0UgKyAweDEwMCwKLQkudGltZXIJCQk9ICZhdDkxcm05MjAwX3RpbWVyLAotCS5tYXBfaW8JCQk9IHlsXzkyMDBfbWFwX2lvLAotCS5pbml0X2lycQkJPSB5bF85MjAwX2luaXRfaXJxLAotCS5pbml0X21hY2hpbmUJPSB5bF85MjAwX2JvYXJkX2luaXQsCisJLnRpbWVyCQk9ICZhdDkxcm05MjAwX3RpbWVyLAorCS5tYXBfaW8JCT0geWw5MjAwX21hcF9pbywKKwkuaW5pdF9pcnEJPSB5bDkyMDBfaW5pdF9pcnEsCisJLmluaXRfbWFjaGluZQk9IHlsOTIwMF9ib2FyZF9pbml0LAogTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtYXQ5MS9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKaW5kZXggYTMzZGZlNC4uNDY0YmRiYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1hdDkxL2Nsb2NrLmMKQEAgLTExMiwxMiArMTEyLDM0IEBACiAJCWF0OTFfc3lzX3dyaXRlKEFUOTFfUE1DX1NDRFIsIGNsay0+cG1jX21hc2spOwogfQogCitzdGF0aWMgdm9pZCBwbWNfdWNrcl9tb2RlKHN0cnVjdCBjbGsgKmNsaywgaW50IGlzX29uKQoreworCXVuc2lnbmVkIGludCB1Y2tyID0gYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfVUNLUik7CisKKwlpZiAoaXNfb24pIHsKKwkJaXNfb24gPSBBVDkxX1BNQ19MT0NLVTsKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9DS0dSX1VDS1IsIHVja3IgfCBjbGstPnBtY19tYXNrKTsKKwl9IGVsc2UKKwkJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9DS0dSX1VDS1IsIHVja3IgJiB+KGNsay0+cG1jX21hc2spKTsKKworCWRvIHsKKwkJY3B1X3JlbGF4KCk7CisJfSB3aGlsZSAoKGF0OTFfc3lzX3JlYWQoQVQ5MV9QTUNfU1IpICYgQVQ5MV9QTUNfTE9DS1UpICE9IGlzX29uKTsKK30KKwogLyogVVNCIGZ1bmN0aW9uIGNsb2NrcyAoUExMQiBtdXN0IGJlIDQ4IE1IeikgKi8KIHN0YXRpYyBzdHJ1Y3QgY2xrIHVkcGNrID0gewogCS5uYW1lCQk9ICJ1ZHBjayIsCiAJLnBhcmVudAkJPSAmcGxsYiwKIAkubW9kZQkJPSBwbWNfc3lzX21vZGUsCiB9Oworc3RhdGljIHN0cnVjdCBjbGsgdXRtaV9jbGsgPSB7CisJLm5hbWUJCT0gInV0bWlfY2xrIiwKKwkucGFyZW50CQk9ICZtYWluX2NsaywKKwkucG1jX21hc2sJPSBBVDkxX1BNQ19VUExMRU4sCS8qIGluIENLR1JfVUNLUiAqLworCS5tb2RlCQk9IHBtY191Y2tyX21vZGUsCisJLnR5cGUJCT0gQ0xLX1RZUEVfUExMLAorfTsKIHN0YXRpYyBzdHJ1Y3QgY2xrIHVocGNrID0gewogCS5uYW1lCQk9ICJ1aHBjayIsCiAJLnBhcmVudAkJPSAmcGxsYiwKQEAgLTM2MSw3ICszODMsNyBAQAogCiBzdGF0aWMgaW50IGF0OTFfY2xrX3Nob3coc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICp1bnVzZWQpCiB7Ci0JdTMyCQlzY3NyLCBwY3NyLCBzcjsKKwl1MzIJCXNjc3IsIHBjc3IsIHVja3IgPSAwLCBzcjsKIAlzdHJ1Y3QgY2xrCSpjbGs7CiAKIAlzZXFfcHJpbnRmKHMsICJTQ1NSID0gJTh4XG4iLCBzY3NyID0gYXQ5MV9zeXNfcmVhZChBVDkxX1BNQ19TQ1NSKSk7CkBAIC0zNjksNyArMzkxLDEwIEBACiAJc2VxX3ByaW50ZihzLCAiTU9SICA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfTU9SKSk7CiAJc2VxX3ByaW50ZihzLCAiTUNGUiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfTUNGUikpOwogCXNlcV9wcmludGYocywgIlBMTEEgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEFSKSk7Ci0Jc2VxX3ByaW50ZihzLCAiUExMQiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfUExMQlIpKTsKKwlpZiAoIWNwdV9pc19hdDkxc2FtOXJsKCkpCisJCXNlcV9wcmludGYocywgIlBMTEIgPSAlOHhcbiIsIGF0OTFfc3lzX3JlYWQoQVQ5MV9DS0dSX1BMTEJSKSk7CisJaWYgKGNwdV9pc19hdDkxY2FwOSgpIHx8IGNwdV9pc19hdDkxc2FtOXJsKCkpCisJCXNlcV9wcmludGYocywgIlVDS1IgPSAlOHhcbiIsIHVja3IgPSBhdDkxX3N5c19yZWFkKEFUOTFfQ0tHUl9VQ0tSKSk7CiAJc2VxX3ByaW50ZihzLCAiTUNLUiA9ICU4eFxuIiwgYXQ5MV9zeXNfcmVhZChBVDkxX1BNQ19NQ0tSKSk7CiAJc2VxX3ByaW50ZihzLCAiU1IgICA9ICU4eFxuIiwgc3IgPSBhdDkxX3N5c19yZWFkKEFUOTFfUE1DX1NSKSk7CiAKQEAgLTM4Miw2ICs0MDcsOCBAQAogCQkJc3RhdGUgPSAoc2NzciAmIGNsay0+cG1jX21hc2spID8gIm9uIiA6ICJvZmYiOwogCQllbHNlIGlmIChjbGstPm1vZGUgPT0gcG1jX3BlcmlwaF9tb2RlKQogCQkJc3RhdGUgPSAocGNzciAmIGNsay0+cG1jX21hc2spID8gIm9uIiA6ICJvZmYiOworCQllbHNlIGlmIChjbGstPm1vZGUgPT0gcG1jX3Vja3JfbW9kZSkKKwkJCXN0YXRlID0gKHVja3IgJiBjbGstPnBtY19tYXNrKSA/ICJvbiIgOiAib2ZmIjsKIAkJZWxzZSBpZiAoY2xrLT5wbWNfbWFzaykKIAkJCXN0YXRlID0gKHNyICYgY2xrLT5wbWNfbWFzaykgPyAib24iIDogIm9mZiI7CiAJCWVsc2UgaWYgKGNsayA9PSAmY2xrMzJrIHx8IGNsayA9PSAmbWFpbl9jbGspCkBAIC00ODgsMTQgKzUxNSwxOSBAQAogCQkvKgogCQkgKiBQTEwgaW5wdXQgYmV0d2VlbiAxTUh6IGFuZCAzMk1IeiBwZXIgc3BlYywgYnV0IGxvd2VyCiAJCSAqIGZyZXF1ZW5jZXMgc2VlbSBuZWNlc3NhcnkgaW4gc29tZSBjYXNlcyBzbyBhbGxvdyAxMDBLLgorCQkgKiBXYXJuaW5nOiBzb21lIG5ld2VyIHByb2R1Y3RzIG5lZWQgMk1IeiBtaW4uCiAJCSAqLwogCQlpbnB1dCA9IG1haW5fZnJlcSAvIGk7CisJCWlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSAmJiBpbnB1dCA8IDIwMDAwMDApCisJCQljb250aW51ZTsKIAkJaWYgKGlucHV0IDwgMTAwMDAwKQogCQkJY29udGludWU7CiAJCWlmIChpbnB1dCA+IDMyMDAwMDAwKQogCQkJY29udGludWU7CiAKIAkJbXVsMSA9IG91dF9mcmVxIC8gaW5wdXQ7CisJCWlmIChjcHVfaXNfYXQ5MXNhbTlnMjAoKSAmJiBtdWwgPiA2MykKKwkJCWNvbnRpbnVlOwogCQlpZiAobXVsMSA+IDIwNDgpCiAJCQljb250aW51ZTsKIAkJaWYgKG11bDEgPCAyKQpAQCAtNTU1LDcgKzU4Nyw4IEBACiAKIAkvKiByZXBvcnQgaWYgUExMQSBpcyBtb3JlIHRoYW4gbWlsZGx5IG92ZXJjbG9ja2VkICovCiAJcGxsYS5yYXRlX2h6ID0gYXQ5MV9wbGxfcmF0ZSgmcGxsYSwgbWFpbl9jbG9jaywgYXQ5MV9zeXNfcmVhZChBVDkxX0NLR1JfUExMQVIpKTsKLQlpZiAocGxsYS5yYXRlX2h6ID4gMjA5MDAwMDAwKQorCWlmICgoIWNwdV9pc19hdDkxc2FtOWcyMCgpICYmIHBsbGEucmF0ZV9oeiA+IDIwOTAwMDAwMCkKKwkgICB8fCAoY3B1X2lzX2F0OTFzYW05ZzIwKCkgJiYgcGxsYS5yYXRlX2h6ID4gODAwMDAwMDAwKSkKIAkJcHJfaW5mbygiQ2xvY2tzOiBQTExBIG92ZXJjbG9ja2VkLCAlbGQgTUh6XG4iLCBwbGxhLnJhdGVfaHogLyAxMDAwMDAwKTsKIAogCS8qCkBAIC01NzAsNyArNjAzLDcgQEAKIAkJdWhwY2sucG1jX21hc2sgPSBBVDkxUk05MjAwX1BNQ19VSFA7CiAJCXVkcGNrLnBtY19tYXNrID0gQVQ5MVJNOTIwMF9QTUNfVURQOwogCQlhdDkxX3N5c193cml0ZShBVDkxX1BNQ19TQ0VSLCBBVDkxUk05MjAwX1BNQ19NQ0tVRFApOwotCX0gZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05MjYwKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYxKCkgfHwgY3B1X2lzX2F0OTFzYW05MjYzKCkpIHsKKwl9IGVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MSgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpIHx8IGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CiAJCXVocGNrLnBtY19tYXNrID0gQVQ5MVNBTTkyNnhfUE1DX1VIUDsKIAkJdWRwY2sucG1jX21hc2sgPSBBVDkxU0FNOTI2eF9QTUNfVURQOwogCX0gZWxzZSBpZiAoY3B1X2lzX2F0OTFjYXA5KCkpIHsKQEAgLTU4Miw2ICs2MTUsMTcgQEAKIAl1aHBjay5yYXRlX2h6ID0gYXQ5MV91c2JfcmF0ZSgmcGxsYiwgcGxsYi5yYXRlX2h6LCBhdDkxX3BsbGJfdXNiX2luaXQpOwogCiAJLyoKKwkgKiBVU0IgSFMgY2xvY2sgaW5pdAorCSAqLworCWlmIChjcHVfaXNfYXQ5MWNhcDkoKSB8fCBjcHVfaXNfYXQ5MXNhbTlybCgpKSB7CisJCS8qCisJCSAqIG11bHRpcGxpZXIgaXMgaGFyZC13aXJlZCB0byA0MAorCQkgKiAob2J0YWluIHRoZSBVU0IgSGlnaCBTcGVlZCA0ODAgTUh6IHdoZW4gaW5wdXQgaXMgMTIgTUh6KQorCQkgKi8KKwkJdXRtaV9jbGsucmF0ZV9oeiA9IDQwICogdXRtaV9jbGsucGFyZW50LT5yYXRlX2h6OworCX0KKworCS8qCiAJICogTUNLIGFuZCBDUFUgZGVyaXZlIGZyb20gb25lIG9mIHRob3NlIHByaW1hcnkgY2xvY2tzLgogCSAqIEZvciBub3csIGFzc3VtZSB0aGlzIHBhcmVudGFnZSB3b24ndCBjaGFuZ2UuCiAJICovCkBAIC01OTEsMTMgKzYzNSwyMSBAQAogCWZyZXEgLz0gKDEgPDwgKChtY2tyICYgQVQ5MV9QTUNfUFJFUykgPj4gMikpOwkJCQkvKiBwcmVzY2FsZSAqLwogCWlmIChjcHVfaXNfYXQ5MXJtOTIwMCgpKQogCQltY2sucmF0ZV9oeiA9IGZyZXEgLyAoMSArICgobWNrciAmIEFUOTFfUE1DX01ESVYpID4+IDgpKTsJLyogbWRpdiAqLwotCWVsc2UKLQkJbWNrLnJhdGVfaHogPSBmcmVxIC8gKDEgPDwgKChtY2tyICYgQVQ5MV9QTUNfTURJVikgPj4gOCkpOwkvKiBtZGl2ICovCisJZWxzZSBpZiAoY3B1X2lzX2F0OTFzYW05ZzIwKCkpIHsKKwkJbWNrLnJhdGVfaHogPSAobWNrciAmIEFUOTFfUE1DX01ESVYpID8KKwkJCWZyZXEgLyAoKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA+PiA3KSA6IGZyZXE7CS8qIG1kaXYgOyAoeCA+PiA3KSA9ICgoeCA+PiA4KSAqIDIpICovCisJCWlmIChtY2tyICYgQVQ5MV9QTUNfUERJVikKKwkJCWZyZXEgLz0gMjsJCS8qIHByb2Nlc3NvciBjbG9jayBkaXZpc2lvbiAqLworCX0gZWxzZQorCQltY2sucmF0ZV9oeiA9IGZyZXEgLyAoMSA8PCAoKG1ja3IgJiBBVDkxX1BNQ19NRElWKSA+PiA4KSk7ICAgICAgLyogbWRpdiAqLwogCiAJLyogUmVnaXN0ZXIgdGhlIFBNQydzIHN0YW5kYXJkIGNsb2NrcyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN0YW5kYXJkX3BtY19jbG9ja3MpOyBpKyspCiAJCWxpc3RfYWRkX3RhaWwoJnN0YW5kYXJkX3BtY19jbG9ja3NbaV0tPm5vZGUsICZjbG9ja3MpOwogCisJaWYgKGNwdV9pc19hdDkxY2FwOSgpIHx8IGNwdV9pc19hdDkxc2FtOXJsKCkpCisJCWxpc3RfYWRkX3RhaWwoJnV0bWlfY2xrLm5vZGUsICZjbG9ja3MpOworCiAJLyogTUNLIGFuZCBDUFUgY2xvY2sgYXJlICJhbHdheXMgb24iICovCiAJY2xrX2VuYWJsZSgmbWNrKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1hdDkxL3BtLmMgYi9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYwppbmRleCBhYTg2M2MxLi44YWI0ZmViIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYworKysgYi9hcmNoL2FybS9tYWNoLWF0OTEvcG0uYwpAQCAtMjAyLDcgKzIwMiw3IEBACiAJCQlwcl9kZWJ1ZygiQVQ5MTogUE0gLSBTdXNwZW5kLXRvLVJBTSB3aXRoIFVTQiBzdGlsbCBhY3RpdmVcbiIpOwogCQkJcmV0dXJuIDA7CiAJCX0KLQl9IGVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MSgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpKSB7CisJfSBlbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjEoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQlpZiAoKHNjc3IgJiAoQVQ5MVNBTTkyNnhfUE1DX1VIUCB8IEFUOTFTQU05MjZ4X1BNQ19VRFApKSAhPSAwKSB7CiAJCQlwcl9kZWJ1ZygiQVQ5MTogUE0gLSBTdXNwZW5kLXRvLVJBTSB3aXRoIFVTQiBzdGlsbCBhY3RpdmVcbiIpOwogCQkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWVwOTN4eC9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1lcDkzeHgvY2xvY2suYwppbmRleCA5ZDc1MTVjLi5mNjJjMzU1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWVwOTN4eC9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtZXA5M3h4L2Nsb2NrLmMKQEAgLTc0LDYgKzc0LDcgQEAKIAogCXJldHVybiBFUlJfUFRSKC1FTk9FTlQpOwogfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0KTsKIAogaW50IGNsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQogewpAQCAtODYsNiArODcsNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19lbmFibGUpOwogCiB2b2lkIGNsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKIHsKQEAgLTk2LDE1ICs5OCwxOCBAQAogCQlfX3Jhd193cml0ZWwodmFsdWUgJiB+Y2xrLT5lbmFibGVfbWFzaywgY2xrLT5lbmFibGVfcmVnKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKGNsa19kaXNhYmxlKTsKIAogdW5zaWduZWQgbG9uZyBjbGtfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQogewogCXJldHVybiBjbGstPnJhdGU7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19nZXRfcmF0ZSk7CiAKIHZvaWQgY2xrX3B1dChzdHJ1Y3QgY2xrICpjbGspCiB7CiB9CitFWFBPUlRfU1lNQk9MKGNsa19wdXQpOwogCiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL01ha2VmaWxlCmluZGV4IDA2OTRhZDYuLjMyZjg2MDkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvTWFrZWZpbGUKQEAgLTE0LDEyICsxNCwxMCBAQAogcGNpLSQoQ09ORklHX0FSQ0hfTkVUV0lOREVSKSArPSBuZXR3aW5kZXItcGNpLm8KIHBjaS0kKENPTkZJR19BUkNIX1BFUlNPTkFMX1NFUlZFUikgKz0gcGVyc29uYWwtcGNpLm8KIAotbGVkcy0kKENPTkZJR19BUkNIX0NPMjg1KSArPSBlYnNhMjg1LWxlZHMubwogbGVkcy0kKENPTkZJR19BUkNIX0VCU0EyODUpICs9IGVic2EyODUtbGVkcy5vCiBsZWRzLSQoQ09ORklHX0FSQ0hfTkVUV0lOREVSKSArPSBuZXR3aW5kZXItbGVkcy5vCiAKIG9iai0kKENPTkZJR19BUkNIX0NBVFMpICs9IGNhdHMtaHcubyBpc2EtdGltZXIubwotb2JqLSQoQ09ORklHX0FSQ0hfQ08yODUpICs9IGNvMjg1Lm8gZGMyMTI4NS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9FQlNBMjg1KSArPSBlYnNhMjg1Lm8gZGMyMTI4NS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9ORVRXSU5ERVIpICs9IG5ldHdpbmRlci1ody5vIGlzYS10aW1lci5vCiBvYmotJChDT05GSUdfQVJDSF9QRVJTT05BTF9TRVJWRVIpICs9IHBlcnNvbmFsLm8gZGMyMTI4NS10aW1lci5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY28yODUuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTQ1NTc2Li4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIGxpbnV4L2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jbzI4NS5jCi0gKgotICogQ08yODUgbWFjaGluZSBmaXh1cAotICovCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotCi0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2RlYzIxMjg1Lmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KLQotI2luY2x1ZGUgImNvbW1vbi5oIgotCi1zdGF0aWMgdm9pZCBfX2luaXQKLWZpeHVwX2NvZWJzYTI4NShzdHJ1Y3QgbWFjaGluZV9kZXNjICpkZXNjLCBzdHJ1Y3QgdGFnICp0YWdzLAotCQljaGFyICoqY21kbGluZSwgc3RydWN0IG1lbWluZm8gKm1pKQotewotCWV4dGVybiB1bnNpZ25lZCBsb25nIGJvb3RfbWVtb3J5X2VuZDsKLQlleHRlcm4gY2hhciBib290X2NvbW1hbmRfbGluZVtdOwotCi0JbWktPm5yX2JhbmtzICAgICAgPSAxOwotCW1pLT5iYW5rWzBdLnN0YXJ0ID0gUEhZU19PRkZTRVQ7Ci0JbWktPmJhbmtbMF0uc2l6ZSAgPSBib290X21lbW9yeV9lbmQ7Ci0JbWktPmJhbmtbMF0ubm9kZSAgPSAwOwotCi0JKmNtZGxpbmUgPSBib290X2NvbW1hbmRfbGluZTsKLX0KLQotTUFDSElORV9TVEFSVChDTzI4NSwgImNvLUVCU0EyODUiKQotCS8qIE1haW50YWluZXI6IE1hcmsgdmFuIERvZXNidXJnICovCi0JLnBoeXNfaW8JPSBEQzIxMjg1X0FSTUNTUl9CQVNFLAotCS5pb19wZ19vZmZzdAk9ICgoMHg3Y2YwMDAwMCkgPj4gMTgpICYgMHhmZmZjLAotCS5maXh1cAkJPSBmaXh1cF9jb2Vic2EyODUsCi0JLm1hcF9pbwkJPSBmb290YnJpZGdlX21hcF9pbywKLQkuaW5pdF9pcnEJPSBmb290YnJpZGdlX2luaXRfaXJxLAotCS50aW1lcgkJPSAmZm9vdGJyaWRnZV90aW1lciwKLU1BQ0hJTkVfRU5ECi0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9jb21tb24uYwppbmRleCBlZjI5ZmMzLi5iMDhhYjUwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvY29tbW9uLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2NvbW1vbi5jCkBAIC0xNzcsMjUgKzE3Nyw2IEBACiAjZW5kaWYKIH07CiAKLS8qCi0gKiBUaGUgQ08tZWJzYTI4NSBtYXBwaW5nLgotICovCi1zdGF0aWMgc3RydWN0IG1hcF9kZXNjIGNvMjg1X2lvX2Rlc2NbXSBfX2luaXRkYXRhID0gewotI2lmZGVmIENPTkZJR19BUkNIX0NPMjg1Ci0JewotCQkudmlydHVhbAk9IFBDSU9fQkFTRSwKLQkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKERDMjEyODVfUENJX0lPKSwKLQkJLmxlbmd0aAkJPSBQQ0lPX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRSwKLQl9LCB7Ci0JCS52aXJ0dWFsCT0gUENJTUVNX0JBU0UsCi0JCS5wZm4JCT0gX19waHlzX3RvX3BmbihEQzIxMjg1X1BDSV9NRU0pLAotCQkubGVuZ3RoCQk9IFBDSU1FTV9TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UsCi0JfSwKLSNlbmRpZgotfTsKLQogdm9pZCBfX2luaXQgZm9vdGJyaWRnZV9tYXBfaW8odm9pZCkKIHsKIAkvKgpAQCAtMjA4LDggKzE4OSw2IEBACiAJICogTm93LCB3b3JrIG91dCB3aGF0IHdlJ3ZlIGdvdCB0byBtYXAgaW4gYWRkaXRpb24gb24gdGhpcwogCSAqIHBsYXRmb3JtLgogCSAqLwotCWlmIChtYWNoaW5lX2lzX2NvMjg1KCkpCi0JCWlvdGFibGVfaW5pdChjbzI4NV9pb19kZXNjLCBBUlJBWV9TSVpFKGNvMjg1X2lvX2Rlc2MpKTsKIAlpZiAoZm9vdGJyaWRnZV9jZm5fbW9kZSgpKQogCQlpb3RhYmxlX2luaXQoZWJzYTI4NV9ob3N0X2lvX2Rlc2MsIEFSUkFZX1NJWkUoZWJzYTI4NV9ob3N0X2lvX2Rlc2MpKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9lYnNhMjg1LWxlZHMuYyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS9lYnNhMjg1LWxlZHMuYwppbmRleCBhNjRlMjIyLi4wOWMxZmJjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvZWJzYTI4NS1sZWRzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL2Vic2EyODUtbGVkcy5jCkBAIC0xMjgsNyArMTI4LDcgQEAKIAogc3RhdGljIGludCBfX2luaXQgbGVkc19pbml0KHZvaWQpCiB7Ci0JaWYgKG1hY2hpbmVfaXNfZWJzYTI4NSgpIHx8IG1hY2hpbmVfaXNfY28yODUoKSkKKwlpZiAobWFjaGluZV9pc19lYnNhMjg1KCkpCiAJCWxlZHNfZXZlbnQgPSBlYnNhMjg1X2xlZHNfZXZlbnQ7CiAKIAlsZWRzX2V2ZW50KGxlZF9zdGFydCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1mb290YnJpZGdlL3RpbWUuYwppbmRleCA1ZDAyZTk1Li5kNWNmY2RhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWZvb3RicmlkZ2UvdGltZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtZm9vdGJyaWRnZS90aW1lLmMKQEAgLTExNSw4ICsxMTUsNyBAQAogCiB2b2lkIF9faW5pdCBpc2FfcnRjX2luaXQodm9pZCkKIHsKLQlpZiAobWFjaGluZV9pc19jbzI4NSgpIHx8Ci0JICAgIG1hY2hpbmVfaXNfcGVyc29uYWxfc2VydmVyKCkpCisJaWYgKG1hY2hpbmVfaXNfcGVyc29uYWxfc2VydmVyKCkpCiAJCS8qCiAJCSAqIEFkZC1pbiAyMTI4NXMgc2hvdWxkbid0IGFjY2VzcyB0aGUgUlRDCiAJCSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQppbmRleCA4OGQ1ZTYxLi5iMDQ3YzdlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWlteC9NYWtlZmlsZQpAQCAtNCw3ICs0LDcgQEAKIAogIyBPYmplY3QgZmlsZSBsaXN0cy4KIAotb2JqLXkJCQkrPSBpcnEubyB0aW1lLm8gZG1hLm8gZ2VuZXJpYy5vCitvYmoteQkJCSs9IGlycS5vIHRpbWUubyBkbWEubyBnZW5lcmljLm8gY2xvY2subwogCiBvYmotJChDT05GSUdfQ1BVX0ZSRVFfSU1YKQkrPSBjcHVmcmVxLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvY2xvY2suYyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE5MGZlNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2Nsb2NrLmMKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4sIFBlbmd1dHJvbml4CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtcmVncy5oPgorCisvKgorICogVmVyeSBzaW1wbGUgYXBwcm9hY2g6IFdlIGNhbid0IGRpc2FibGUgY2xvY2tzLCBzbyB3ZSBkbworICogbm90IG5lZWQgcmVmY291bnRpbmcKKyAqLworCitzdHJ1Y3QgY2xrIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CisJY29uc3QgY2hhciAqbmFtZTsKKwl1bnNpZ25lZCBsb25nICgqZ2V0X3JhdGUpKHZvaWQpOworfTsKKworLyoKKyAqICBnZXQgdGhlIHN5c3RlbSBwbGwgY2xvY2sgaW4gSHoKKyAqCisgKiAgICAgICAgICAgICAgICAgIG1maSArIG1mbiAvIChtZmQgKzEpCisgKiAgZiA9IDIgKiBmX3JlZiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHBkICsgMQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZGVjb2RlX3BsbCh1bnNpZ25lZCBpbnQgcGxsLCB1MzIgZl9yZWYpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGxsOworCXVuc2lnbmVkIGxvbmcgcXVvdDsKKworCXUzMiBtZmkgPSAocGxsID4+IDEwKSAmIDB4ZjsKKwl1MzIgbWZuID0gcGxsICYgMHgzZmY7CisJdTMyIG1mZCA9IChwbGwgPj4gMTYpICYgMHgzZmY7CisJdTMyIHBkID0gIChwbGwgPj4gMjYpICYgMHhmOworCisJbWZpID0gbWZpIDw9IDUgPyA1IDogbWZpOworCisJbGwgPSAyICogKHVuc2lnbmVkIGxvbmcgbG9uZylmX3JlZiAqCisJCSgobWZpIDw8IDE2KSArIChtZm4gPDwgMTYpIC8gKG1mZCArIDEpKTsKKwlxdW90ID0gKHBkICsgMSkgKiAoMSA8PCAxNik7CisJbGwgKz0gcXVvdCAvIDI7CisJZG9fZGl2KGxsLCBxdW90KTsKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpbGw7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfc3lzdGVtX2Nsayh2b2lkKQoreworCXUzMiBmX3JlZiA9IChDU0NSICYgQ1NDUl9TWVNURU1fU0VMKSA/IDE2MDAwMDAwIDogKENMSzMyICogNTEyKTsKKworCXJldHVybiBpbXhfZGVjb2RlX3BsbChTUENUTDAsIGZfcmVmKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgaW14X2dldF9tY3VfY2xrKHZvaWQpCit7CisJcmV0dXJuIGlteF9kZWNvZGVfcGxsKE1QQ1RMMCwgQ0xLMzIgKiA1MTIpOworfQorCisvKgorICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDEgKCBVQVJUWzEyXSwgVGltZXJbMTJdLCBQV00gKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3BlcmNsazEodm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSKSAmIDB4ZikrMSk7Cit9CisKKy8qCisgKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMiAoIExDRCwgU0QsIFNQSVsxMl0gKQorICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyBpbXhfZ2V0X3BlcmNsazIodm9pZCkKK3sKKwlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSPj40KSAmIDB4ZikrMSk7Cit9CisKKy8qCisgKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMyAoIFNTSSApCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfcGVyY2xrMyh2b2lkKQoreworCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKFBDRFI+PjE2KSAmIDB4N2YpKzEpOworfQorCisvKgorICogIGdldCBoY2xrICggU0RSQU0sIENTSSwgTWVtb3J5IFN0aWNrLCBJMkMsIERNQSApCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGlteF9nZXRfaGNsayh2b2lkKQoreworCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKENTQ1I+PjEwKSAmIDB4ZikrMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19zeXN0ZW1fY2xrID0geworCS5uYW1lID0gInN5c3RlbV9jbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfc3lzdGVtX2NsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19oY2xrID0geworCS5uYW1lID0gImhjbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfaGNsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19tY3VfY2xrID0geworCS5uYW1lID0gIm1jdV9jbGsiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfbWN1X2NsaywKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19wZXJjbGsxID0geworCS5uYW1lID0gInBlcmNsazEiLAorCS5nZXRfcmF0ZSA9IGlteF9nZXRfcGVyY2xrMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa191YXJ0X2NsayA9IHsKKwkubmFtZSA9ICJ1YXJ0X2NsayIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGsxLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3BlcmNsazIgPSB7CisJLm5hbWUgPSAicGVyY2xrMiIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGsyLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX3BlcmNsazMgPSB7CisJLm5hbWUgPSAicGVyY2xrMyIsCisJLmdldF9yYXRlID0gaW14X2dldF9wZXJjbGszLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKmNsa3NbXSA9IHsKKwkmY2xrX3BlcmNsazEsCisJJmNsa19wZXJjbGsyLAorCSZjbGtfcGVyY2xrMywKKwkmY2xrX3N5c3RlbV9jbGssCisJJmNsa19oY2xrLAorCSZjbGtfbWN1X2NsaywKKwkmY2xrX3VhcnRfY2xrLAorfTsKKworc3RhdGljIExJU1RfSEVBRChjbG9ja3MpOworc3RhdGljIERFRklORV9NVVRFWChjbG9ja3NfbXV0ZXgpOworCitzdHJ1Y3QgY2xrICpjbGtfZ2V0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqaWQpCit7CisJc3RydWN0IGNsayAqcCwgKmNsayA9IEVSUl9QVFIoLUVOT0VOVCk7CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQlpZiAoIXN0cmNtcChwLT5uYW1lLCBpZCkpIHsKKwkJCWNsayA9IHA7CisJCQlnb3RvIGZvdW5kOworCQl9CisJfQorCitmb3VuZDoKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gY2xrOworfQorCit2b2lkIGNsa19wdXQoc3RydWN0IGNsayAqY2xrKQoreworfQorCitpbnQgY2xrX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworfQorCit1bnNpZ25lZCBsb25nIGNsa19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNsay0+Z2V0X3JhdGUoKTsKK30KKworaW50IGlteF9jbG9ja3NfaW5pdCh2b2lkKQoreworCWludCBpOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjbGtzKTsgaSsrKQorCQlsaXN0X2FkZCgmY2xrc1tpXS0+bm9kZSwgJmNsb2Nrcyk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2NwdWZyZXEuYyBiL2FyY2gvYXJtL21hY2gtaW14L2NwdWZyZXEuYwppbmRleCBlNTQ4YmE3Li5iZTA4MDliIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9jcHVmcmVxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvY3B1ZnJlcS5jCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgpAQCAtNTIsNiArNTQsOCBAQAogc3RhdGljIHUzMiBtcGN0bDBfYXRfYm9vdDsKIHN0YXRpYyB1MzIgYmNsa19kaXZfYXRfYm9vdDsKIAorc3RhdGljIHN0cnVjdCBjbGsgKnN5c3RlbV9jbGssICptY3VfY2xrOworCiBzdGF0aWMgdm9pZCBpbXhfc2V0X2FzeW5jX21vZGUodm9pZCkKIHsKIAlhZGp1c3RfY3IoQ1JfOTIwVF9DTE9DS19NT0RFLCBDUl85MjBUX0FTWU5DX01PREUpOwpAQCAtMTYwLDEwICsxNjQsMTAgQEAKIAljciA9IGdldF9jcigpOwogCiAJaWYoKGNyICYgQ1JfOTIwVF9DTE9DS19NT0RFKSA9PSBDUl85MjBUX0ZBU1RCVVNfTU9ERSkgewotCQlmcmVxID0gaW14X2dldF9zeXN0ZW1fY2xrKCk7CisJCWZyZXEgPSBjbGtfZ2V0X3JhdGUoc3lzdGVtX2Nsayk7CiAJCWZyZXEgPSAoZnJlcSArIGJjbGtfZGl2LzIpIC8gYmNsa19kaXY7CiAJfSBlbHNlIHsKLQkJZnJlcSA9IGlteF9nZXRfbWN1X2NsaygpOworCQlmcmVxID0gY2xrX2dldF9yYXRlKG1jdV9jbGspOwogCQlpZiAoY3NjciAmIENTQ1JfTVBVX1BSRVNDKQogCQkJZnJlcSAvPSAyOwogCX0KQEAgLTIwMSw3ICsyMDUsNyBAQAogCXByX2RlYnVnKEtFUk5fREVCVUcgImlteDogcmVxdWVzdGVkIGZyZXF1ZW5jeSAlbGQgSHosIG1wY3RsMCBhdCBib290IDB4JTA4eFxuIiwKIAkJCWZyZXEsIG1wY3RsMF9hdF9ib290KTsKIAotCXN5c2NsayA9IGlteF9nZXRfc3lzdGVtX2NsaygpOworCXN5c2NsayA9IGNsa19nZXRfcmF0ZShzeXN0ZW1fY2xrKTsKIAogCWlmIChmcmVxID4gc3lzY2xrIC8gYmNsa19kaXZfYXRfYm9vdCArIDEwMDAwMDApIHsKIAkJZnJlcSA9IGlteF9jb21wdXRlX21wY3RsKCZtcGN0bDAsIG1wY3RsMF9hdF9ib290LCBDTEszMiAqIDUxMiwgZnJlcSwgcmVsYXRpb24pOwpAQCAtMjkwLDYgKzI5NCwxNiBAQAogCWJjbGtfZGl2X2F0X2Jvb3QgPSBfX21mbGQydmFsKENTQ1JfQkNMS19ESVYsIENTQ1IpICsgMTsKIAltcGN0bDBfYXRfYm9vdCA9IDA7CiAKKwlzeXN0ZW1fY2xrID0gY2xrX2dldChOVUxMLCAic3lzdGVtX2NsayIpOworCWlmIChJU19FUlIoc3lzdGVtX2NsaykpCisJCXJldHVybiBQVFJfRVJSKHN5c3RlbV9jbGspOworCisJbWN1X2NsayA9IGNsa19nZXQoTlVMTCwgIm1jdV9jbGsiKTsKKwlpZiAoSVNfRVJSKG1jdV9jbGspKSB7CisJCWNsa19wdXQoc3lzdGVtX2Nsayk7CisJCXJldHVybiBQVFJfRVJSKG1jdV9jbGspOworCX0KKwogCWlmKChDU0NSICYgQ1NDUl9NUEVOKSAmJgogCSAgICgoZ2V0X2NyKCkgJiBDUl85MjBUX0NMT0NLX01PREUpICE9IENSXzkyMFRfRkFTVEJVU19NT0RFKSkKIAkJbXBjdGwwX2F0X2Jvb3QgPSBNUENUTDA7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9kbWEuYyBiL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCmluZGV4IGE1OWZmMjkuLmVlMWM2ZjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2RtYS5jCkBAIC00MTAsNyArNDEwLDYgQEAKIAogLyoqCiAgKiBpbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyAtIGZpbmQgYW5kIHJlcXVlc3Qgc29tZSBvZiBmcmVlIGNoYW5uZWxzIGJlc3Qgc3VpdGluZyByZXF1ZXN0ZWQgcHJpb3JpdHkKLSAqIEBkbWFfY2g6IGkuTVggRE1BIGNoYW5uZWwgbnVtYmVyCiAgKiBAbmFtZTogdGhlIGRyaXZlci9jYWxsZXIgb3duIG5vbi0lTlVMTCBpZGVudGlmaWNhdGlvbgogICogQHByaW86IG9uZSBvZiB0aGUgaGFyZHdhcmUgZGlzdGluZ3Vpc2hlZCBwcmlvcml0eSBsZXZlbDoKICAqICAgICAgICAlRE1BX1BSSU9fSElHSCwgJURNQV9QUklPX01FRElVTSwgJURNQV9QUklPX0xPVwpAQCAtNDIwLDExICs0MTksOSBAQAogICogaW4gdGhlIGhpZ2hlciBhbmQgdGhlbiBldmVuIGxvd2VyIHByaW9yaXR5IGdyb3Vwcy4KICAqCiAgKiBSZXR1cm4gdmFsdWU6IElmIHRoZXJlIGlzIG5vIGZyZWUgY2hhbm5lbCB0byBhbGxvY2F0ZSwgLSVFTk9ERVYgaXMgcmV0dXJuZWQuCi0gKiAgICAgICAgICAgICAgIFplcm8gdmFsdWUgaW5kaWNhdGVzIHN1Y2Nlc3NmdWwgY2hhbm5lbCBhbGxvY2F0aW9uLgorICogICAgICAgICAgICAgICBPbiBzdWNjZXNzZnVsIGFsbG9jYXRpb24gY2hhbm5lbCBpcyByZXR1cm5lZC4KICAqLwotaW50Ci1pbXhfZG1hX3JlcXVlc3RfYnlfcHJpbyhpbXhfZG1hY2hfdCAqIHBkbWFfY2gsIGNvbnN0IGNoYXIgKm5hbWUsCi0JCQlpbXhfZG1hX3ByaW8gcHJpbykKK2lteF9kbWFjaF90IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKQogewogCWludCBpOwogCWludCBiZXN0OwpAQCAtNDQ0LDE1ICs0NDEsMTMgQEAKIAogCWZvciAoaSA9IGJlc3Q7IGkgPCBJTVhfRE1BX0NIQU5ORUxTOyBpKyspIHsKIAkJaWYgKCFpbXhfZG1hX3JlcXVlc3QoaSwgbmFtZSkpIHsKLQkJCSpwZG1hX2NoID0gaTsKLQkJCXJldHVybiAwOworCQkJcmV0dXJuIGk7CiAJCX0KIAl9CiAKIAlmb3IgKGkgPSBiZXN0IC0gMTsgaSA+PSAwOyBpLS0pIHsKIAkJaWYgKCFpbXhfZG1hX3JlcXVlc3QoaSwgbmFtZSkpIHsKLQkJCSpwZG1hX2NoID0gaTsKLQkJCXJldHVybiAwOworCQkJcmV0dXJuIGk7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW14L2dlbmVyaWMuYyBiL2FyY2gvYXJtL21hY2gtaW14L2dlbmVyaWMuYwppbmRleCA0Y2ZjOWQzLi45OGRkZDhhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWlteC9nZW5lcmljLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbXgvZ2VuZXJpYy5jCkBAIC0yMTQsODIgKzIxNCw2IEBACiAKIEVYUE9SVF9TWU1CT0woaW14X2lycV90b19ncGlvKTsKIAotLyoKLSAqICBnZXQgdGhlIHN5c3RlbSBwbGwgY2xvY2sgaW4gSHoKLSAqCi0gKiAgICAgICAgICAgICAgICAgIG1maSArIG1mbiAvIChtZmQgKzEpCi0gKiAgZiA9IDIgKiBmX3JlZiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiAgICAgICAgICAgICAgICAgICAgICAgIHBkICsgMQotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGlteF9kZWNvZGVfcGxsKHVuc2lnbmVkIGludCBwbGwsIHUzMiBmX3JlZikKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbGw7Ci0JdW5zaWduZWQgbG9uZyBxdW90OwotCi0JdTMyIG1maSA9IChwbGwgPj4gMTApICYgMHhmOwotCXUzMiBtZm4gPSBwbGwgJiAweDNmZjsKLQl1MzIgbWZkID0gKHBsbCA+PiAxNikgJiAweDNmZjsKLQl1MzIgcGQgPSAgKHBsbCA+PiAyNikgJiAweGY7Ci0KLQltZmkgPSBtZmkgPD0gNSA/IDUgOiBtZmk7Ci0KLQlsbCA9IDIgKiAodW5zaWduZWQgbG9uZyBsb25nKWZfcmVmICogKCAobWZpPDwxNikgKyAobWZuPDwxNikgLyAobWZkKzEpICk7Ci0JcXVvdCA9IChwZCsxKSAqICgxPDwxNik7Ci0JbGwgKz0gcXVvdCAvIDI7Ci0JZG9fZGl2KGxsLCBxdW90KTsKLQlyZXR1cm4gKHVuc2lnbmVkIGludCkgbGw7Ci19Ci0KLXVuc2lnbmVkIGludCBpbXhfZ2V0X3N5c3RlbV9jbGsodm9pZCkKLXsKLQl1MzIgZl9yZWYgPSAoQ1NDUiAmIENTQ1JfU1lTVEVNX1NFTCkgPyAxNjAwMDAwMCA6IChDTEszMiAqIDUxMik7Ci0KLQlyZXR1cm4gaW14X2RlY29kZV9wbGwoU1BDVEwwLCBmX3JlZik7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfc3lzdGVtX2Nsayk7Ci0KLXVuc2lnbmVkIGludCBpbXhfZ2V0X21jdV9jbGsodm9pZCkKLXsKLQlyZXR1cm4gaW14X2RlY29kZV9wbGwoTVBDVEwwLCBDTEszMiAqIDUxMik7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfbWN1X2Nsayk7Ci0KLS8qCi0gKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMSAoIFVBUlRbMTJdLCBUaW1lclsxMl0sIFBXTSApCi0gKi8KLXVuc2lnbmVkIGludCBpbXhfZ2V0X3BlcmNsazEodm9pZCkKLXsKLQlyZXR1cm4gaW14X2dldF9zeXN0ZW1fY2xrKCkgLyAoKChQQ0RSKSAmIDB4ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfcGVyY2xrMSk7Ci0KLS8qCi0gKiAgZ2V0IHBlcmlwaGVyYWwgY2xvY2sgMiAoIExDRCwgU0QsIFNQSVsxMl0gKQotICovCi11bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsyKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUj4+NCkgJiAweGYpKzEpOwotfQotRVhQT1JUX1NZTUJPTChpbXhfZ2V0X3BlcmNsazIpOwotCi0vKgotICogIGdldCBwZXJpcGhlcmFsIGNsb2NrIDMgKCBTU0kgKQotICovCi11bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGszKHZvaWQpCi17Ci0JcmV0dXJuIGlteF9nZXRfc3lzdGVtX2NsaygpIC8gKCgoUENEUj4+MTYpICYgMHg3ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfcGVyY2xrMyk7Ci0KLS8qCi0gKiAgZ2V0IGhjbGsgKCBTRFJBTSwgQ1NJLCBNZW1vcnkgU3RpY2ssIEkyQywgRE1BICkKLSAqLwotdW5zaWduZWQgaW50IGlteF9nZXRfaGNsayh2b2lkKQotewotCXJldHVybiBpbXhfZ2V0X3N5c3RlbV9jbGsoKSAvICgoKENTQ1I+PjEwKSAmIDB4ZikrMSk7Ci19Ci1FWFBPUlRfU1lNQk9MKGlteF9nZXRfaGNsayk7Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgaW14X21tY19yZXNvdXJjZXNbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IDB4MDAyMTQwMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9teDFhZHMuYyBiL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCmluZGV4IGE5Nzc4YzEuLjk2MzVkNTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L214MWFkcy5jCkBAIC02OSw2ICs2OSwxMSBAQAogCQkuZW5kCT0gKFVBUlQxX01JTlRfVFgpLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKIAl9LAorCVszXSA9IHsKKwkJLnN0YXJ0CT0gVUFSVDFfTUlOVF9SVFMsCisJCS5lbmQJPSBVQVJUMV9NSU5UX1JUUywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGlteF91YXJ0MV9kZXZpY2UgPSB7CkBAIC05Nyw2ICsxMDIsMTEgQEAKIAkJLmVuZAk9IChVQVJUMl9NSU5UX1RYKSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCiAJfSwKKwlbM10gPSB7CisJCS5zdGFydAk9IFVBUlQyX01JTlRfUlRTLAorCQkuZW5kCT0gVUFSVDJfTUlOVF9SVFMsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpbXhfdWFydDJfZGV2aWNlID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1pbXgvdGltZS5jCmluZGV4IGQ4NmQxMjQuLjVhNDFlOTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW14L3RpbWUuYworKysgYi9hcmNoL2FybS9tYWNoLWlteC90aW1lLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KICNpbmNsdWRlIDxsaW51eC9jbG9ja2NoaXBzLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTg2LDEwICs4NywxMCBAQAogCS5mbGFncwkJPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKIH07CiAKLXN0YXRpYyBpbnQgX19pbml0IGlteF9jbG9ja3NvdXJjZV9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBpbXhfY2xvY2tzb3VyY2VfaW5pdCh1bnNpZ25lZCBsb25nIHJhdGUpCiB7CiAJY2xvY2tzb3VyY2VfaW14Lm11bHQgPQotCQljbG9ja3NvdXJjZV9oejJtdWx0KGlteF9nZXRfcGVyY2xrMSgpLCBjbG9ja3NvdXJjZV9pbXguc2hpZnQpOworCQljbG9ja3NvdXJjZV9oejJtdWx0KHJhdGUsIGNsb2Nrc291cmNlX2lteC5zaGlmdCk7CiAJY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX2lteCk7CiAKIAlyZXR1cm4gMDsKQEAgLTE3NCw5ICsxNzUsOSBAQAogCS5yYXRpbmcJCT0gMjAwLAogfTsKIAotc3RhdGljIGludCBfX2luaXQgaW14X2Nsb2NrZXZlbnRfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgaW14X2Nsb2NrZXZlbnRfaW5pdCh1bnNpZ25lZCBsb25nIHJhdGUpCiB7Ci0JY2xvY2tldmVudF9pbXgubXVsdCA9IGRpdl9zYyhpbXhfZ2V0X3BlcmNsazEoKSwgTlNFQ19QRVJfU0VDLAorCWNsb2NrZXZlbnRfaW14Lm11bHQgPSBkaXZfc2MocmF0ZSwgTlNFQ19QRVJfU0VDLAogCQkJCQljbG9ja2V2ZW50X2lteC5zaGlmdCk7CiAJY2xvY2tldmVudF9pbXgubWF4X2RlbHRhX25zID0KIAkJY2xvY2tldmVudF9kZWx0YTJucygweGZmZmZmZmZlLCAmY2xvY2tldmVudF9pbXgpOwpAQCAtMTkwLDEzICsxOTEsMjMgQEAKIAlyZXR1cm4gMDsKIH0KIAorZXh0ZXJuIGludCBpbXhfY2xvY2tzX2luaXQodm9pZCk7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBpbXhfdGltZXJfaW5pdCh2b2lkKQogewotCWlteF90aW1lcl9oYXJkd2FyZV9pbml0KCk7Ci0JaW14X2Nsb2Nrc291cmNlX2luaXQoKTsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJdW5zaWduZWQgbG9uZyByYXRlOwogCi0JaW14X2Nsb2NrZXZlbnRfaW5pdCgpOworCWlteF9jbG9ja3NfaW5pdCgpOworCisJY2xrID0gY2xrX2dldChOVUxMLCAicGVyY2xrMSIpOworCWNsa19lbmFibGUoY2xrKTsKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsayk7CisKKwlpbXhfdGltZXJfaGFyZHdhcmVfaW5pdCgpOworCWlteF9jbG9ja3NvdXJjZV9pbml0KHJhdGUpOworCisJaW14X2Nsb2NrZXZlbnRfaW5pdChyYXRlKTsKIAogCS8qCiAJICogTWFrZSBpcnFzIGhhcHBlbiBmb3IgdGhlIHN5c3RlbSB0aW1lcgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL01ha2VmaWxlCmluZGV4IDE1OGRhYWYuLjZhNWVmOGQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvTWFrZWZpbGUKQEAgLTQsNyArNCw3IEBACiAKICMgT2JqZWN0IGZpbGUgbGlzdHMuCiAKLW9iai15CQkJCQk6PSBjbG9jay5vIGNvcmUubyBsbS5vIHRpbWUubworb2JqLXkJCQkJCTo9IGNsb2NrLm8gY29yZS5vIGxtLm8KIG9iai0kKENPTkZJR19BUkNIX0lOVEVHUkFUT1JfQVApCSs9IGludGVncmF0b3JfYXAubwogb2JqLSQoQ09ORklHX0FSQ0hfSU5URUdSQVRPUl9DUCkJKz0gaW50ZWdyYXRvcl9jcC5vCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9pbXBkMS5jIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL2ltcGQxLmMKaW5kZXggOTJkNzlmYi4uNjJlNjUzYSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL2ltcGQxLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL2ltcGQxLmMKQEAgLTM2OSw3ICszNjksOCBAQAogCiAJbG1fc2V0X2RydmRhdGEoZGV2LCBpbXBkMSk7CiAKLQlwcmludGsoIklNLVBEMSBmb3VuZCBhdCAweCUwOGx4XG4iLCBkZXYtPnJlc291cmNlLnN0YXJ0KTsKKwlwcmludGsoIklNLVBEMSBmb3VuZCBhdCAweCUwOGx4XG4iLAorCQkodW5zaWduZWQgbG9uZylkZXYtPnJlc291cmNlLnN0YXJ0KTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGltcGQxLT52Y29zKTsgaSsrKSB7CiAJCWltcGQxLT52Y29zW2ldLm93bmVyID0gVEhJU19NT0RVTEUsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvcGNpX3YzLmMgYi9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvcGNpX3YzLmMKaW5kZXggZDU1ZmE0ZS4uYzA3ZjQ5NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL3BjaV92My5jCisrKyBiL2FyY2gvYXJtL21hY2gtaW50ZWdyYXRvci9wY2lfdjMuYwpAQCAtNDA1LDcgKzQwNSw2IEBACiAJCWFkZHIsIGZzciwgcGMsIGluc3RyLCBfX3Jhd19yZWFkbChTQ19MQkZBRERSKSwgX19yYXdfcmVhZGwoU0NfTEJGQ09ERSkgJiAyNTUsCiAJCXYzX3JlYWRiKFYzX0xCX0lTVEFUKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIiVzIiwgYnVmKTsKLQlwcmludGFzY2lpKGJ1Zik7CiAjZW5kaWYKIAogCXYzX3dyaXRlYihWM19MQl9JU1RBVCwgMCk7CkBAIC00NDcsNiArNDQ2LDcgQEAKIAl1bnNpZ25lZCBsb25nIHBjID0gaW5zdHJ1Y3Rpb25fcG9pbnRlcihyZWdzKTsKIAl1bnNpZ25lZCBsb25nIGluc3RyID0gKih1bnNpZ25lZCBsb25nICopcGM7CiAJY2hhciBidWZbMTI4XTsKKwlleHRlcm4gdm9pZCBwcmludGFzY2lpKGNvbnN0IGNoYXIgKik7CiAKIAlzcHJpbnRmKGJ1ZiwgIlYzIGludCAlZDogcGM9MHglMDhseCBbJTA4bHhdIExCRkFERFI9JTA4eCBMQkZDT0RFPSUwMnggIgogCQkiSVNUQVQ9JTAyeFxuIiwgSVJRX0FQX1YzSU5ULCBwYywgaW5zdHIsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jIGIvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL3RpbWUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUwOGEwZC4uMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLWludGVncmF0b3IvdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjIzICswLDAgQEAKLS8qCi0gKiAgbGludXgvYXJjaC9hcm0vbWFjaC1pbnRlZ3JhdG9yL3RpbWUuYwotICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2FtYmEvYnVzLmg+Ci0KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGFzbS9ydGMuaD4KLQotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLQotI2RlZmluZSBSVENfRFIJCSgwKQotI2RlZmluZSBSVENfTVIJCSg0KQotI2RlZmluZSBSVENfU1RBVAkoOCkKLSNkZWZpbmUgUlRDX0VPSQkJKDgpCi0jZGVmaW5lIFJUQ19MUgkJKDEyKQotI2RlZmluZSBSVENfQ1IJCSgxNikKLSNkZWZpbmUgUlRDX0NSX01JRQkoMSA8PCAwKQotCi1leHRlcm4gaW50ICgqc2V0X3J0Yykodm9pZCk7Ci1zdGF0aWMgdm9pZCBfX2lvbWVtICpydGNfYmFzZTsKLQotc3RhdGljIGludCBpbnRlZ3JhdG9yX3NldF9ydGModm9pZCkKLXsKLQlfX3Jhd193cml0ZWwoeHRpbWUudHZfc2VjLCBydGNfYmFzZSArIFJUQ19MUik7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbnQgaW50ZWdyYXRvcl9ydGNfcmVhZF9hbGFybShzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKLXsKLQlydGNfdGltZV90b190bShyZWFkbChydGNfYmFzZSArIFJUQ19NUiksICZhbHJtLT50aW1lKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgaW50ZWdyYXRvcl9ydGNfc2V0X2FsYXJtKHN0cnVjdCBydGNfd2thbHJtICphbHJtKQotewotCXVuc2lnbmVkIGxvbmcgdGltZTsKLQlpbnQgcmV0OwotCi0JLyoKLQkgKiBBdCB0aGUgbW9tZW50LCB3ZSBjYW4gb25seSBkZWFsIHdpdGggbm9uLXdpbGRjYXJkZWQgYWxhcm0gdGltZXMuCi0JICovCi0JcmV0ID0gcnRjX3ZhbGlkX3RtKCZhbHJtLT50aW1lKTsKLQlpZiAocmV0ID09IDApCi0JCXJldCA9IHJ0Y190bV90b190aW1lKCZhbHJtLT50aW1lLCAmdGltZSk7Ci0JaWYgKHJldCA9PSAwKQotCQl3cml0ZWwodGltZSwgcnRjX2Jhc2UgKyBSVENfTVIpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgaW50ZWdyYXRvcl9ydGNfcmVhZF90aW1lKHN0cnVjdCBydGNfdGltZSAqdG0pCi17Ci0JcnRjX3RpbWVfdG9fdG0ocmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpLCB0bSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBTZXQgdGhlIFJUQyB0aW1lLiAgVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWNjdXJhdGVseSBzZXQKLSAqIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgY291bnRlciB1cGRhdGVzLgotICoKLSAqIEFsc28sIHNpbmNlIFJUQ19MUiBpcyB0cmFuc2ZlcnJlZCB0byBSVENfQ1Igb24gbmV4dCByaXNpbmcKLSAqIGVkZ2Ugb2YgdGhlIDFIeiBjbG9jaywgd2UgbXVzdCB3cml0ZSB0aGUgdGltZSBvbmUgc2Vjb25kCi0gKiBpbiBhZHZhbmNlLgotICovCi1zdGF0aWMgaW5saW5lIGludCBpbnRlZ3JhdG9yX3J0Y19zZXRfdGltZShzdHJ1Y3QgcnRjX3RpbWUgKnRtKQotewotCXVuc2lnbmVkIGxvbmcgdGltZTsKLQlpbnQgcmV0OwotCi0JcmV0ID0gcnRjX3RtX3RvX3RpbWUodG0sICZ0aW1lKTsKLQlpZiAocmV0ID09IDApCi0JCXdyaXRlbCh0aW1lICsgMSwgcnRjX2Jhc2UgKyBSVENfTFIpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIHN0cnVjdCBydGNfb3BzIHJ0Y19vcHMgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5yZWFkX3RpbWUJPSBpbnRlZ3JhdG9yX3J0Y19yZWFkX3RpbWUsCi0JLnNldF90aW1lCT0gaW50ZWdyYXRvcl9ydGNfc2V0X3RpbWUsCi0JLnJlYWRfYWxhcm0JPSBpbnRlZ3JhdG9yX3J0Y19yZWFkX2FsYXJtLAotCS5zZXRfYWxhcm0JPSBpbnRlZ3JhdG9yX3J0Y19zZXRfYWxhcm0sCi19OwotCi1zdGF0aWMgaXJxcmV0dXJuX3QgYXJtX3J0Y19pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQotewotCXdyaXRlbCgwLCBydGNfYmFzZSArIFJUQ19FT0kpOwotCXJldHVybiBJUlFfSEFORExFRDsKLX0KLQotc3RhdGljIGludCBydGNfcHJvYmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYsIHZvaWQgKmlkKQotewotCWludCByZXQ7Ci0KLQlpZiAocnRjX2Jhc2UpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQlyZXQgPSBhbWJhX3JlcXVlc3RfcmVnaW9ucyhkZXYsIE5VTEwpOwotCWlmIChyZXQpCi0JCWdvdG8gb3V0OwotCi0JcnRjX2Jhc2UgPSBpb3JlbWFwKGRldi0+cmVzLnN0YXJ0LCBTWl80Syk7Ci0JaWYgKCFydGNfYmFzZSkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIHJlc19vdXQ7Ci0JfQotCi0JX19yYXdfd3JpdGVsKDAsIHJ0Y19iYXNlICsgUlRDX0NSKTsKLQlfX3Jhd193cml0ZWwoMCwgcnRjX2Jhc2UgKyBSVENfRU9JKTsKLQotCXh0aW1lLnR2X3NlYyA9IF9fcmF3X3JlYWRsKHJ0Y19iYXNlICsgUlRDX0RSKTsKLQotCS8qIG5vdGUgdGhhdCAnZGV2JyBpcyBtZXJlbHkgdXNlZCBmb3IgaXJxIGRpc2FtYmlndWF0aW9uOwotCSAqIGl0IGlzIG5vdCBhY3R1YWxseSByZWZlcmVuY2VkIGluIHRoZSBpcnEgaGFuZGxlcgotCSAqLwotCXJldCA9IHJlcXVlc3RfaXJxKGRldi0+aXJxWzBdLCBhcm1fcnRjX2ludGVycnVwdCwgSVJRRl9ESVNBQkxFRCwKLQkJCSAgInJ0Yy1wbDAzMCIsIGRldik7Ci0JaWYgKHJldCkKLQkJZ290byBtYXBfb3V0OwotCi0JcmV0ID0gcmVnaXN0ZXJfcnRjKCZydGNfb3BzKTsKLQlpZiAocmV0KQotCQlnb3RvIGlycV9vdXQ7Ci0KLQlzZXRfcnRjID0gaW50ZWdyYXRvcl9zZXRfcnRjOwotCXJldHVybiAwOwotCi0gaXJxX291dDoKLQlmcmVlX2lycShkZXYtPmlycVswXSwgZGV2KTsKLSBtYXBfb3V0OgotCWlvdW5tYXAocnRjX2Jhc2UpOwotCXJ0Y19iYXNlID0gTlVMTDsKLSByZXNfb3V0OgotCWFtYmFfcmVsZWFzZV9yZWdpb25zKGRldik7Ci0gb3V0OgotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcnRjX3JlbW92ZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldikKLXsKLQlzZXRfcnRjID0gTlVMTDsKLQotCXdyaXRlbCgwLCBydGNfYmFzZSArIFJUQ19DUik7Ci0KLQlmcmVlX2lycShkZXYtPmlycVswXSwgZGV2KTsKLQl1bnJlZ2lzdGVyX3J0YygmcnRjX29wcyk7Ci0KLQlpb3VubWFwKHJ0Y19iYXNlKTsKLQlydGNfYmFzZSA9IE5VTEw7Ci0JYW1iYV9yZWxlYXNlX3JlZ2lvbnMoZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHRpbWVzcGVjIHJ0Y19kZWx0YTsKLQotc3RhdGljIGludCBydGNfc3VzcGVuZChzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXN0cnVjdCB0aW1lc3BlYyBydGM7Ci0KLQlydGMudHZfc2VjID0gcmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpOwotCXJ0Yy50dl9uc2VjID0gMDsKLQlzYXZlX3RpbWVfZGVsdGEoJnJ0Y19kZWx0YSwgJnJ0Yyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBydGNfcmVzdW1lKHN0cnVjdCBhbWJhX2RldmljZSAqZGV2KQotewotCXN0cnVjdCB0aW1lc3BlYyBydGM7Ci0KLQlydGMudHZfc2VjID0gcmVhZGwocnRjX2Jhc2UgKyBSVENfRFIpOwotCXJ0Yy50dl9uc2VjID0gMDsKLQlyZXN0b3JlX3RpbWVfZGVsdGEoJnJ0Y19kZWx0YSwgJnJ0Yyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHN0cnVjdCBhbWJhX2lkIHJ0Y19pZHNbXSA9IHsKLQl7Ci0JCS5pZAk9IDB4MDAwNDEwMzAsCi0JCS5tYXNrCT0gMHgwMDBmZmZmZiwKLQl9LAotCXsgMCwgMCB9LAotfTsKLQotc3RhdGljIHN0cnVjdCBhbWJhX2RyaXZlciBydGNfZHJpdmVyID0gewotCS5kcnYJCT0gewotCQkubmFtZQk9ICJydGMtcGwwMzAiLAotCX0sCi0JLnByb2JlCQk9IHJ0Y19wcm9iZSwKLQkucmVtb3ZlCQk9IHJ0Y19yZW1vdmUsCi0JLnN1c3BlbmQJPSBydGNfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHJ0Y19yZXN1bWUsCi0JLmlkX3RhYmxlCT0gcnRjX2lkcywKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGludGVncmF0b3JfcnRjX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gYW1iYV9kcml2ZXJfcmVnaXN0ZXIoJnJ0Y19kcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaW50ZWdyYXRvcl9ydGNfZXhpdCh2b2lkKQotewotCWFtYmFfZHJpdmVyX3VucmVnaXN0ZXIoJnJ0Y19kcml2ZXIpOwotfQotCi1tb2R1bGVfaW5pdChpbnRlZ3JhdG9yX3J0Y19pbml0KTsKLW1vZHVsZV9leGl0KGludGVncmF0b3JfcnRjX2V4aXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L0tjb25maWcKaW5kZXggZTc3NDQ0Ny4uZGI4YjVmZSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9LY29uZmlnCkBAIC0xMjUsNiArMTI1LDE1IEBACiAJZGVwZW5kcyBvbiBBUkNIX0lYRFA0MjUgfHwgTUFDSF9JWERQNDY1IHx8IE1BQ0hfS0lYUlA0MzUKIAlkZWZhdWx0IHkKIAorY29uZmlnIE1BQ0hfRlNHCisJYm9vbAorCXByb21wdCAiRnJlZWNvbSBGU0ctMyIKKwlzZWxlY3QgUENJCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgRnJlZWNvbSdzCisJICBGU0ctMyBkZXZpY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgcGxhdGZvcm0sCisJICBzZWUgaHR0cDovL3d3dy5uc2x1Mi1saW51eC5vcmcvd2lraS9GU0czL0hvbWVQYWdlCisKICMKICMgQ2VydGFpbiByZWdpc3RlcnMgYW5kIElSUXMgYXJlIG9ubHkgZW5hYmxlZCBpZiBzdXBwb3J0aW5nIElYUDQ2NSBDUFVzCiAjCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCmluZGV4IGMxOTU2ODguLjJlNmJiZjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L01ha2VmaWxlCkBAIC0xNSw2ICsxNSw3IEBACiBvYmotcGNpLSQoQ09ORklHX01BQ0hfRFNNRzYwMCkJCSs9IGRzbWc2MDAtcGNpLm8KIG9iai1wY2ktJChDT05GSUdfTUFDSF9HQVRFV0FZNzAwMSkJKz0gZ2F0ZXdheTcwMDEtcGNpLm8KIG9iai1wY2ktJChDT05GSUdfTUFDSF9XRzMwMlYyKQkJKz0gd2czMDJ2Mi1wY2kubworb2JqLXBjaS0kKENPTkZJR19NQUNIX0ZTRykJCSs9IGZzZy1wY2kubwogCiBvYmoteQkrPSBjb21tb24ubwogCkBAIC0yOCw2ICsyOSw3IEBACiBvYmotJChDT05GSUdfTUFDSF9EU01HNjAwKSAgICAgICs9IGRzbWc2MDAtc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfR0FURVdBWTcwMDEpCSs9IGdhdGV3YXk3MDAxLXNldHVwLm8KIG9iai0kKENPTkZJR19NQUNIX1dHMzAyVjIpCSs9IHdnMzAydjItc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfRlNHKQkJKz0gZnNnLXNldHVwLm8KIAogb2JqLSQoQ09ORklHX1BDSSkJCSs9ICQob2JqLXBjaS0kKENPTkZJR19QQ0kpKSBjb21tb24tcGNpLm8KIG9iai0kKENPTkZJR19JWFA0WFhfUU1HUikJKz0gaXhwNHh4X3FtZ3IubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYwppbmRleCBmNmQ2NmRjLi4zNzgxYjNkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYworKysgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9jb21tb24uYwpAQCAtMzI2LDExICszMjYsMTEgQEAKIH07CiAKIC8qCi0gKiBVU0IgZGV2aWNlIGNvbnRyb2xsZXIuIFRoZSBJWFA0eHggdXNlcyB0aGUgc2FtZSBjb250cm9sbGVyIGFzIFBYQTJYWCwKKyAqIFVTQiBkZXZpY2UgY29udHJvbGxlci4gVGhlIElYUDR4eCB1c2VzIHRoZSBzYW1lIGNvbnRyb2xsZXIgYXMgUFhBMjVYLAogICogc28gd2UganVzdCB1c2UgdGhlIHNhbWUgZGV2aWNlLgogICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpeHA0eHhfdWRjX2RldmljZSA9IHsKLQkubmFtZSAgICAgICAgICAgPSAicHhhMnh4LXVkYyIsCisJLm5hbWUgICAgICAgICAgID0gInB4YTI1eC11ZGMiLAogCS5pZCAgICAgICAgICAgICA9IC0xLAogCS5udW1fcmVzb3VyY2VzICA9IDIsCiAJLnJlc291cmNlICAgICAgID0gaXhwNHh4X3VkY19yZXNvdXJjZXMsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctcGNpLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctcGNpLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE5ZjNmNgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtaXhwNHh4L2ZzZy1wY2kuYwpAQCAtMCwwICsxLDcxIEBACisvKgorICogYXJjaC9hcmNoL21hY2gtaXhwNHh4L2ZzZy1wY2kuYworICoKKyAqIEZTRyBib2FyZC1sZXZlbCBQQ0kgaW5pdGlhbGl6YXRpb24KKyAqCisgKiBBdXRob3I6IFJvZCBXaGl0YnkgPHJvZEB3aGl0YnkuaWQuYXU+CisgKiBNYWludGFpbmVyOiBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZy8KKyAqCisgKiBiYXNlZCBvbiBpeGRwNDI1LXBjaS5jOgorICoJQ29weXJpZ2h0IChDKSAyMDAyIEludGVsIENvcnBvcmF0aW9uLgorICoJQ29weXJpZ2h0IChDKSAyMDAzLTIwMDQgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCit2b2lkIF9faW5pdCBmc2dfcGNpX3ByZWluaXQodm9pZCkKK3sKKwlzZXRfaXJxX3R5cGUoSVJRX0ZTR19QQ0lfSU5UQSwgSVJRVF9MT1cpOworCXNldF9pcnFfdHlwZShJUlFfRlNHX1BDSV9JTlRCLCBJUlFUX0xPVyk7CisJc2V0X2lycV90eXBlKElSUV9GU0dfUENJX0lOVEMsIElSUVRfTE9XKTsKKworCWl4cDR4eF9wY2lfcHJlaW5pdCgpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBmc2dfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJc3RhdGljIGludCBwY2lfaXJxX3RhYmxlW0ZTR19QQ0lfSVJRX0xJTkVTXSA9IHsKKwkJSVJRX0ZTR19QQ0lfSU5UQywKKwkJSVJRX0ZTR19QQ0lfSU5UQiwKKwkJSVJRX0ZTR19QQ0lfSU5UQSwKKwl9OworCisJaW50IGlycSA9IC0xOworCXNsb3QgPSBzbG90IC0gMTE7CisKKwlpZiAoc2xvdCA+PSAxICYmIHNsb3QgPD0gRlNHX1BDSV9NQVhfREVWICYmCisJICAgIHBpbiA+PSAxICYmIHBpbiA8PSBGU0dfUENJX0lSUV9MSU5FUykKKwkJaXJxID0gcGNpX2lycV90YWJsZVsoc2xvdCAtIDEpXTsKKwlwcmludGsoS0VSTl9JTkZPICIlczogTWFwcGVkIHNsb3QgJWQgcGluICVkIHRvIElSUSAlZFxuIiwKKwkgICAgICAgX19mdW5jX18sIHNsb3QsIHBpbiwgaXJxKTsKKworCXJldHVybiBpcnE7Cit9CisKK3N0cnVjdCBod19wY2kgZnNnX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycyA9IDEsCisJLnByZWluaXQgPQkgIGZzZ19wY2lfcHJlaW5pdCwKKwkuc3dpenpsZSA9CSAgcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cCA9CSAgaXhwNHh4X3NldHVwLAorCS5zY2FuID0JCSAgaXhwNHh4X3NjYW5fYnVzLAorCS5tYXBfaXJxID0JICBmc2dfbWFwX2lycSwKK307CisKK2ludCBfX2luaXQgZnNnX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfZnNnKCkpCisJCXBjaV9jb21tb25faW5pdCgmZnNnX3BjaSk7CisJcmV0dXJuIDA7Cit9CisKK3N1YnN5c19pbml0Y2FsbChmc2dfcGNpX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1peHA0eHgvZnNnLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZGIzYTkwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1peHA0eHgvZnNnLXNldHVwLmMKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWl4cDR4eC9mc2ctc2V0dXAuYworICoKKyAqIEZTRyBib2FyZC1zZXR1cAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBSb2QgV2hpdGJ5IDxyb2RAd2hpdGJ5LmlkLmF1PgorICoKKyAqIGJhc2VkIG9uIGl4ZHA0MjUtc2V0dXAuYzoKKyAqCUNvcHlyaWdodCAoQykgMjAwMy0yMDA0IE1vbnRhVmlzdGEgU29mdHdhcmUsIEluYy4KKyAqIGJhc2VkIG9uIG5zbHUyLXBvd2VyLmMKKyAqCUNvcHlyaWdodCAoQykgMjAwNSBUb3dlciBUZWNobm9sb2dpZXMKKyAqCisgKiBBdXRob3I6IFJvZCBXaGl0YnkgPHJvZEB3aGl0YnkuaWQuYXU+CisgKiBNYWludGFpbmVyczogaHR0cDovL3d3dy5uc2x1Mi1saW51eC5vcmcvCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pZl9ldGhlci5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CisjaW5jbHVkZSA8bGludXgvbGVkcy5oPgorI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy1ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9mbGFzaC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisKK3N0YXRpYyBzdHJ1Y3QgZmxhc2hfcGxhdGZvcm1fZGF0YSBmc2dfZmxhc2hfZGF0YSA9IHsKKwkubWFwX25hbWUJCT0gImNmaV9wcm9iZSIsCisJLndpZHRoCQkJPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBmc2dfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQkJPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ19mbGFzaCA9IHsKKwkubmFtZQkJCT0gIklYUDRYWC1GbGFzaCIsCisJLmlkCQkJPSAwLAorCS5kZXYgPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmZzZ19mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJCT0gMSwKKwkucmVzb3VyY2UJCT0gJmZzZ19mbGFzaF9yZXNvdXJjZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2dwaW9fcGxhdGZvcm1fZGF0YSBmc2dfaTJjX2dwaW9fZGF0YSA9IHsKKwkuc2RhX3BpbgkJPSBGU0dfU0RBX1BJTiwKKwkuc2NsX3BpbgkJPSBGU0dfU0NMX1BJTiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ19pMmNfZ3BpbyA9IHsKKwkubmFtZQkJCT0gImkyYy1ncGlvIiwKKwkuaWQJCQk9IDAsCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZnNnX2kyY19ncGlvX2RhdGEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBmc2dfaTJjX2JvYXJkX2luZm8gW10gPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygicnRjLWlzbDEyMDgiLCAweDZmKSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBmc2dfdWFydF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBJWFA0WFhfVUFSVDFfQkFTRV9QSFlTLAorCQkuZW5kCQk9IElYUDRYWF9VQVJUMV9CQVNFX1BIWVMgKyAweDBmZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCXsKKwkJLnN0YXJ0CQk9IElYUDRYWF9VQVJUMl9CQVNFX1BIWVMsCisJCS5lbmQJCT0gSVhQNFhYX1VBUlQyX0JBU0VfUEhZUyArIDB4MGZmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgZnNnX3VhcnRfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBJWFA0WFhfVUFSVDFfQkFTRV9QSFlTLAorCQkubWVtYmFzZQk9IChjaGFyICopSVhQNFhYX1VBUlQxX0JBU0VfVklSVCArIFJFR19PRkZTRVQsCisJCS5pcnEJCT0gSVJRX0lYUDRYWF9VQVJUMSwKKwkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GIHwgVVBGX1NLSVBfVEVTVCwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBJWFA0WFhfVUFSVF9YVEFMLAorCX0sCisJeworCQkubWFwYmFzZQk9IElYUDRYWF9VQVJUMl9CQVNFX1BIWVMsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilJWFA0WFhfVUFSVDJfQkFTRV9WSVJUICsgUkVHX09GRlNFVCwKKwkJLmlycQkJPSBJUlFfSVhQNFhYX1VBUlQyLAorCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYgfCBVUEZfU0tJUF9URVNULAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IElYUDRYWF9VQVJUX1hUQUwsCisJfSwKKwl7IH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGZzZ191YXJ0ID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSBQTEFUODI1MF9ERVZfUExBVEZPUk0sCisJLmRldiA9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBmc2dfdWFydF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShmc2dfdWFydF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQkJPSBmc2dfdWFydF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBmc2dfbGVkcyA9IHsKKwkubmFtZQkJPSAiZnNnLWxlZCIsCisJLmlkCQk9IC0xLAorfTsKKworLyogQnVpbHQtaW4gMTAvMTAwIEV0aGVybmV0IE1BQyBpbnRlcmZhY2VzICovCitzdGF0aWMgc3RydWN0IGV0aF9wbGF0X2luZm8gZnNnX3BsYXRfZXRoW10gPSB7CisJeworCQkucGh5CQk9IDUsCisJCS5yeHEJCT0gMywKKwkJLnR4cmVhZHlxCT0gMjAsCisJfSwgeworCQkucGh5CQk9IDQsCisJCS5yeHEJCT0gNCwKKwkJLnR4cmVhZHlxCT0gMjEsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZnNnX2V0aFtdID0geworCXsKKwkJLm5hbWUJCQk9ICJpeHA0eHhfZXRoIiwKKwkJLmlkCQkJPSBJWFA0WFhfRVRIX05QRUIsCisJCS5kZXYgPSB7CisJCQkucGxhdGZvcm1fZGF0YQk9IGZzZ19wbGF0X2V0aCwKKwkJfSwKKwl9LCB7CisJCS5uYW1lCQkJPSAiaXhwNHh4X2V0aCIsCisJCS5pZAkJCT0gSVhQNFhYX0VUSF9OUEVDLAorCQkuZGV2ID0geworCQkJLnBsYXRmb3JtX2RhdGEJPSBmc2dfcGxhdF9ldGggKyAxLAorCQl9LAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpmc2dfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJmZzZ19pMmNfZ3BpbywKKwkmZnNnX2ZsYXNoLAorCSZmc2dfbGVkcywKKwkmZnNnX2V0aFswXSwKKwkmZnNnX2V0aFsxXSwKK307CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBmc2dfcG93ZXJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJLyogU2lnbmFsIGluaXQgdG8gZG8gdGhlIGN0cmxhbHRkZWwgYWN0aW9uLCB0aGlzIHdpbGwgYnlwYXNzIGluaXQgaWYKKwkgKiBpdCBoYXNuJ3Qgc3RhcnRlZCBhbmQgZG8gYSBrZXJuZWxfcmVzdGFydC4KKwkgKi8KKwljdHJsX2FsdF9kZWwoKTsKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGlycXJldHVybl90IGZzZ19yZXNldF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwkvKiBUaGlzIGlzIHRoZSBwYXBlci1jbGlwIHJlc2V0IHdoaWNoIGRvZXMgYW4gZW1lcmdlbmN5IHJlYm9vdC4gKi8KKwlwcmludGsoS0VSTl9JTkZPICJSZXN0YXJ0aW5nIHN5c3RlbS5cbiIpOworCW1hY2hpbmVfcmVzdGFydChOVUxMKTsKKworCS8qIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQuICovCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnNnX2luaXQodm9pZCkKK3sKKwlERUNMQVJFX01BQ19CVUYobWFjX2J1Zik7CisJdWludDhfdCBfX2lvbWVtICpmOworCWludCBpOworCisJaXhwNHh4X3N5c19pbml0KCk7CisKKwlmc2dfZmxhc2hfcmVzb3VyY2Uuc3RhcnQgPSBJWFA0WFhfRVhQX0JVU19CQVNFKDApOworCWZzZ19mbGFzaF9yZXNvdXJjZS5lbmQgPQorCQlJWFA0WFhfRVhQX0JVU19CQVNFKDApICsgaXhwNHh4X2V4cF9idXNfc2l6ZSAtIDE7CisKKwkqSVhQNFhYX0VYUF9DUzAgfD0gSVhQNFhYX0ZMQVNIX1dSSVRBQkxFOworCSpJWFA0WFhfRVhQX0NTMSA9ICpJWFA0WFhfRVhQX0NTMDsKKworCS8qIENvbmZpZ3VyZSBDUzIgZm9yIG9wZXJhdGlvbiwgOGJpdCBhbmQgd3JpdGFibGUgKi8KKwkqSVhQNFhYX0VYUF9DUzIgPSAweGJmZmYwMDAyOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgZnNnX2kyY19ib2FyZF9pbmZvLAorCQkJCUFSUkFZX1NJWkUoZnNnX2kyY19ib2FyZF9pbmZvKSk7CisKKwkvKiBUaGlzIGlzIG9ubHkgdXNlZnVsIG9uIGEgbW9kaWZpZWQgbWFjaGluZSwgYnV0IGl0IGlzIHZhbHVhYmxlCisJICogdG8gaGF2ZSBpdCBmaXJzdCBpbiBvcmRlciB0byBzZWUgZGVidWcgbWVzc2FnZXMsIGFuZCBzbyB0aGF0CisJICogaXQgZG9lcyAqbm90KiBnZXQgcmVtb3ZlZCBpZiBwbGF0Zm9ybV9hZGRfZGV2aWNlcyBmYWlscyEKKwkgKi8KKwkodm9pZClwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmZzZ191YXJ0KTsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGZzZ19kZXZpY2VzLCBBUlJBWV9TSVpFKGZzZ19kZXZpY2VzKSk7CisKKwlpZiAocmVxdWVzdF9pcnEoZ3Bpb190b19pcnEoRlNHX1JCX0dQSU8pLCAmZnNnX3Jlc2V0X2hhbmRsZXIsCisJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9UUklHR0VSX0xPVywKKwkJCSJGU0cgcmVzZXQgYnV0dG9uIiwgTlVMTCkgPCAwKSB7CisKKwkJcHJpbnRrKEtFUk5fREVCVUcgIlJlc2V0IEJ1dHRvbiBJUlEgJWQgbm90IGF2YWlsYWJsZVxuIiwKKwkJCWdwaW9fdG9faXJxKEZTR19SQl9HUElPKSk7CisJfQorCisJaWYgKHJlcXVlc3RfaXJxKGdwaW9fdG9faXJxKEZTR19TQl9HUElPKSwgJmZzZ19wb3dlcl9oYW5kbGVyLAorCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfVFJJR0dFUl9MT1csCisJCQkiRlNHIHBvd2VyIGJ1dHRvbiIsIE5VTEwpIDwgMCkgeworCisJCXByaW50ayhLRVJOX0RFQlVHICJQb3dlciBCdXR0b24gSVJRICVkIG5vdCBhdmFpbGFibGVcbiIsCisJCQlncGlvX3RvX2lycShGU0dfU0JfR1BJTykpOworCX0KKworCS8qCisJICogTWFwIGluIGEgcG9ydGlvbiBvZiB0aGUgZmxhc2ggYW5kIHJlYWQgdGhlIE1BQyBhZGRyZXNzZXMuCisJICogU2luY2UgaXQgaXMgc3RvcmVkIGluIEJFIGluIHRoZSBmbGFzaCBpdHNlbGYsIHdlIG5lZWQgdG8KKwkgKiBieXRlc3dhcCBpdCBpZiB3ZSdyZSBpbiBMRSBtb2RlLgorCSAqLworCWYgPSBpb3JlbWFwKElYUDRYWF9FWFBfQlVTX0JBU0UoMCksIDB4NDAwMDAwKTsKKwlpZiAoZikgeworI2lmZGVmIF9fQVJNRUJfXworCQlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7CisJCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyW2ldID0gcmVhZGIoZiArIDB4M0MwNDIyICsgaSk7CisJCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyW2ldID0gcmVhZGIoZiArIDB4M0MwNDNCICsgaSk7CisJCX0KKyNlbHNlCisKKwkJLyoKKwkJICBFbmRpYW4tc3dhcHBlZCByZWFkcyBmcm9tIHVuYWxpZ25lZCBhZGRyZXNzZXMgYXJlCisJCSAgcmVxdWlyZWQgdG8gZXh0cmFjdCB0aGUgdHdvIE1BQ3MgZnJvbSB0aGUgYmlnLWVuZGlhbgorCQkgIFJlZGJvb3QgY29uZmlnIGFyZWEgaW4gZmxhc2guCisJCSovCisKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkclswXSA9IHJlYWRiKGYgKyAweDNDMDQyMSk7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbMV0gPSByZWFkYihmICsgMHgzQzA0MjApOworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzJdID0gcmVhZGIoZiArIDB4M0MwNDI3KTsKKwkJZnNnX3BsYXRfZXRoWzBdLmh3YWRkclszXSA9IHJlYWRiKGYgKyAweDNDMDQyNik7CisJCWZzZ19wbGF0X2V0aFswXS5od2FkZHJbNF0gPSByZWFkYihmICsgMHgzQzA0MjUpOworCQlmc2dfcGxhdF9ldGhbMF0uaHdhZGRyWzVdID0gcmVhZGIoZiArIDB4M0MwNDI0KTsKKworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzBdID0gcmVhZGIoZiArIDB4M0MwNDM5KTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkclsxXSA9IHJlYWRiKGYgKyAweDNDMDQzRik7CisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbMl0gPSByZWFkYihmICsgMHgzQzA0M0UpOworCQlmc2dfcGxhdF9ldGhbMV0uaHdhZGRyWzNdID0gcmVhZGIoZiArIDB4M0MwNDNEKTsKKwkJZnNnX3BsYXRfZXRoWzFdLmh3YWRkcls0XSA9IHJlYWRiKGYgKyAweDNDMDQzQyk7CisJCWZzZ19wbGF0X2V0aFsxXS5od2FkZHJbNV0gPSByZWFkYihmICsgMHgzQzA0NDMpOworI2VuZGlmCisJCWlvdW5tYXAoZik7CisJfQorCXByaW50ayhLRVJOX0lORk8gIkZTRzogVXNpbmcgTUFDIGFkZHJlc3MgJXMgZm9yIHBvcnQgMFxuIiwKKwkgICAgICAgcHJpbnRfbWFjKG1hY19idWYsIGZzZ19wbGF0X2V0aFswXS5od2FkZHIpKTsKKwlwcmludGsoS0VSTl9JTkZPICJGU0c6IFVzaW5nIE1BQyBhZGRyZXNzICVzIGZvciBwb3J0IDFcbiIsCisJICAgICAgIHByaW50X21hYyhtYWNfYnVmLCBmc2dfcGxhdF9ldGhbMV0uaHdhZGRyKSk7CisKK30KKworTUFDSElORV9TVEFSVChGU0csICJGcmVlY29tIEZTRy0zIikKKwkvKiBNYWludGFpbmVyOiB3d3cubnNsdTItbGludXgub3JnICovCisJLnBoeXNfaW8JPSBJWFA0WFhfUEVSSVBIRVJBTF9CQVNFX1BIWVMsCisJLmlvX3BnX29mZnN0CT0gKChJWFA0WFhfUEVSSVBIRVJBTF9CQVNFX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkubWFwX2lvCQk9IGl4cDR4eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gaXhwNHh4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmaXhwNHh4X3RpbWVyLAorCS5ib290X3BhcmFtcwk9IDB4MDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gZnNnX2luaXQsCitNQUNISU5FX0VORAorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzYwMGNkOQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvS2NvbmZpZwpAQCAtMCwwICsxLDI1IEBACitpZiBBUkNIX0tJUktXT09ECisKK21lbnUgIk1hcnZlbGwgS2lya3dvb2QgSW1wbGVtZW50YXRpb25zIgorCitjb25maWcgTUFDSF9EQjg4RjYyODFfQlAKKwlib29sICJNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQuCisKK2NvbmZpZyBNQUNIX1JEODhGNjE5Ml9OQVMKKwlib29sICJNYXJ2ZWxsIFJELTg4RjYxOTItTkFTIFJlZmVyZW5jZSBCb2FyZCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgUkQtODhGNjE5Mi1OQVMgUmVmZXJlbmNlIEJvYXJkLgorCitjb25maWcgTUFDSF9SRDg4RjYyODEKKwlib29sICJNYXJ2ZWxsIFJELTg4RjYyODEgUmVmZXJlbmNlIEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBSRC04OEY2MjgxIFJlZmVyZW5jZSBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE0YmY0MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvTWFrZWZpbGUKQEAgLTAsMCArMSw1IEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vIHBjaWUubworCitvYmotJChDT05GSUdfTUFDSF9EQjg4RjYyODFfQlApCQkrPSBkYjg4ZjYyODEtYnAtc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfUkQ4OEY2MTkyX05BUykJKz0gcmQ4OGY2MTkyLW5hcy1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9SRDg4RjYxOTJfTkFTKQkrPSByZDg4ZjYyODEtc2V0dXAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZS5ib290IGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9NYWtlZmlsZS5ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MDM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4MDAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHgwMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweDAwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2FkZHItbWFwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2FkZHItbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM5ZjBmMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYwpAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvYWRkci1tYXAuYworICoKKyAqIEFkZHJlc3MgbWFwIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoKKyAqIEdlbmVyaWMgQWRkcmVzcyBEZWNvZGUgV2luZG93cyBiaXQgc2V0dGluZ3MKKyAqLworI2RlZmluZSBUQVJHRVRfRERSCQkwCisjZGVmaW5lIFRBUkdFVF9ERVZfQlVTCQkxCisjZGVmaW5lIFRBUkdFVF9QQ0lFCQk0CisjZGVmaW5lIEFUVFJfREVWX1NQSV9ST00JMHgxZQorI2RlZmluZSBBVFRSX0RFVl9CT09UCQkweDFkCisjZGVmaW5lIEFUVFJfREVWX05BTkQJCTB4MmYKKyNkZWZpbmUgQVRUUl9ERVZfQ1MzCQkweDM3CisjZGVmaW5lIEFUVFJfREVWX0NTMgkJMHgzYgorI2RlZmluZSBBVFRSX0RFVl9DUzEJCTB4M2QKKyNkZWZpbmUgQVRUUl9ERVZfQ1MwCQkweDNlCisjZGVmaW5lIEFUVFJfUENJRV9JTwkJMHhlMAorI2RlZmluZSBBVFRSX1BDSUVfTUVNCQkweGU4CisKKy8qCisgKiBIZWxwZXJzIHRvIGdldCBERFIgYmFuayBpbmZvCisgKi8KKyNkZWZpbmUgRERSX0JBU0VfQ1NfT0ZGKG4pCSgweDAwMDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfU0laRV9DU19PRkYobikJKDB4MDAwNCArICgobikgPDwgMykpCisKKy8qCisgKiBDUFUgQWRkcmVzcyBEZWNvZGUgV2luZG93cyByZWdpc3RlcnMKKyAqLworI2RlZmluZSBXSU5fT0ZGKG4pCQkoQlJJREdFX1ZJUlRfQkFTRSArIDB4MDAwMCArICgobikgPDwgNCkpCisjZGVmaW5lIFdJTl9DVFJMX09GRgkJMHgwMDAwCisjZGVmaW5lIFdJTl9CQVNFX09GRgkJMHgwMDA0CisjZGVmaW5lIFdJTl9SRU1BUF9MT19PRkYJMHgwMDA4CisjZGVmaW5lIFdJTl9SRU1BUF9ISV9PRkYJMHgwMDBjCisKKworc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBraXJrd29vZF9tYnVzX2RyYW1faW5mbzsKKworc3RhdGljIGludCBfX2luaXQgY3B1X3dpbl9jYW5fcmVtYXAoaW50IHdpbikKK3sKKwlpZiAod2luIDwgNCkKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV93aW4oaW50IHdpbiwgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSB1OCB0YXJnZXQsIHU4IGF0dHIsIGludCByZW1hcCkKK3sKKwl2b2lkIF9faW9tZW0gKmFkZHIgPSAodm9pZCBfX2lvbWVtICopV0lOX09GRih3aW4pOworCXUzMiBjdHJsOworCisJYmFzZSAmPSAweGZmZmYwMDAwOworCWN0cmwgPSAoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMTsKKworCXdyaXRlbChiYXNlLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwl3cml0ZWwoY3RybCwgYWRkciArIFdJTl9DVFJMX09GRik7CisJaWYgKGNwdV93aW5fY2FuX3JlbWFwKHdpbikpIHsKKwkJaWYgKHJlbWFwIDwgMCkKKwkJCXJlbWFwID0gYmFzZTsKKworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0hJX09GRik7CisJfQorfQorCit2b2lkIF9faW5pdCBraXJrd29vZF9zZXR1cF9jcHVfbWJ1cyh2b2lkKQoreworCXZvaWQgX19pb21lbSAqYWRkcjsKKwlpbnQgaTsKKwlpbnQgY3M7CisKKwkvKgorCSAqIEZpcnN0LCBkaXNhYmxlIGFuZCBjbGVhciB3aW5kb3dzLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJYWRkciA9ICh2b2lkIF9faW9tZW0gKilXSU5fT0ZGKGkpOworCisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fQ1RSTF9PRkYpOworCQlpZiAoY3B1X3dpbl9jYW5fcmVtYXAoaSkpIHsKKwkJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCQl3cml0ZWwoMCwgYWRkciArIFdJTl9SRU1BUF9ISV9PRkYpOworCQl9CisJfQorCisJLyoKKwkgKiBTZXR1cCB3aW5kb3dzIGZvciBQQ0llIElPK01FTSBzcGFjZS4KKwkgKi8KKwlzZXR1cF9jcHVfd2luKDAsIEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFLCBLSVJLV09PRF9QQ0lFX0lPX1NJWkUsCisJCSAgICAgIFRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfSU8sIEtJUktXT09EX1BDSUVfSU9fQlVTX0JBU0UpOworCXNldHVwX2NwdV93aW4oMSwgS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFLCBLSVJLV09PRF9QQ0lFX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfUENJRSwgQVRUUl9QQ0lFX01FTSwgLTEpOworCisJLyoKKwkgKiBTZXR1cCB3aW5kb3cgZm9yIE5BTkQgY29udHJvbGxlci4KKwkgKi8KKwlzZXR1cF9jcHVfd2luKDIsIEtJUktXT09EX05BTkRfTUVNX1BIWVNfQkFTRSwgS0lSS1dPT0RfTkFORF9NRU1fU0laRSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX05BTkQsIC0xKTsKKworCS8qCisJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgorCSAqLworCWtpcmt3b29kX21idXNfZHJhbV9pbmZvLm1idXNfZHJhbV90YXJnZXRfaWQgPSBUQVJHRVRfRERSOworCisJYWRkciA9ICh2b2lkIF9faW9tZW0gKilERFJfV0lORE9XX0NQVV9CQVNFOworCisJZm9yIChpID0gMCwgY3MgPSAwOyBpIDwgNDsgaSsrKSB7CisJCXUzMiBiYXNlID0gcmVhZGwoYWRkciArIEREUl9CQVNFX0NTX09GRihpKSk7CisJCXUzMiBzaXplID0gcmVhZGwoYWRkciArIEREUl9TSVpFX0NTX09GRihpKSk7CisKKwkJLyoKKwkJICogQ2hpcCBzZWxlY3QgZW5hYmxlZD8KKwkJICovCisJCWlmIChzaXplICYgMSkgeworCQkJc3RydWN0IG1idXNfZHJhbV93aW5kb3cgKnc7CisKKwkJCXcgPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8uY3NbY3MrK107CisJCQl3LT5jc19pbmRleCA9IGk7CisJCQl3LT5tYnVzX2F0dHIgPSAweGYgJiB+KDEgPDwgaSk7CisJCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmZmZjAwMDA7CisJCQl3LT5zaXplID0gKHNpemUgfCAweDAwMDBmZmZmKSArIDE7CisJCX0KKwl9CisJa2lya3dvb2RfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTM4YTNiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uYwpAQCAtMCwwICsxLDMzMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvY29tbW9uLmMKKyAqCisgKiBDb3JlIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfODI1MC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3RpbWV4Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9laGNpLW9yaW9uLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3RpbWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJL08gQWRkcmVzcyBNYXBwaW5nCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2Mga2lya3dvb2RfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oS0lSS1dPT0RfUENJRV9JT19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IEtJUktXT09EX1BDSUVfSU9fU0laRSwKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKKwkJLnZpcnR1YWwJPSBLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKEtJUktXT09EX1JFR1NfUEhZU19CQVNFKSwKKwkJLmxlbmd0aAkJPSBLSVJLV09PRF9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfbWFwX2lvKHZvaWQpCit7CisJaW90YWJsZV9pbml0KGtpcmt3b29kX2lvX2Rlc2MsIEFSUkFZX1NJWkUoa2lya3dvb2RfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uX2VoY2lfZGF0YSBraXJrd29vZF9laGNpX2RhdGEgPSB7CisJLmRyYW0JCT0gJmtpcmt3b29kX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHU2NCBlaGNpX2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX2VoY2lfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBVU0JfUEhZU19CQVNFLAorCQkuZW5kCT0gVVNCX1BIWVNfQkFTRSArIDB4MGZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfS0lSS1dPT0RfVVNCLAorCQkuZW5kCT0gSVJRX0tJUktXT09EX1VTQiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX2VoY2kgPSB7CisJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuZG1hX21hc2sJCT0gJmVoY2lfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwkJLnBsYXRmb3JtX2RhdGEJCT0gJmtpcmt3b29kX2VoY2lfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX2VoY2lfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShraXJrd29vZF9laGNpX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF9laGNpX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2VoY2kpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEga2lya3dvb2RfZ2UwMF9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gS0lSS1dPT0RfVENMSywKKwkuZHJhbQkJPSAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX2dlMDBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UwMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTAwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX2dlMDBfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZraXJrd29vZF9nZTAwX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IGtpcmt3b29kX2dlMDBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2RfZ2UwMF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMDAgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0tJUktXT09EX0dFMDBfU1VNLAorCQkuZW5kCT0gSVJRX0tJUktXT09EX0dFMDBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Uga2lya3dvb2RfZ2UwMCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBraXJrd29vZF9nZTAwX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZraXJrd29vZF9nZTAwX3NoYXJlZDsKKwlraXJrd29vZF9nZTAwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2dlMDBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmtpcmt3b29kX2dlMDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogU29DIFJUQworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX3J0Y19yZXNvdXJjZSA9IHsKKwkuc3RhcnQJPSBSVENfUEhZU19CQVNFLAorCS5lbmQJPSBSVENfUEhZU19CQVNFICsgU1pfMTYgLSAxLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfcnRjX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJydGMtbXYiLCAtMSwgJmtpcmt3b29kX3J0Y19yZXNvdXJjZSwgMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Uga2lya3dvb2Rfc2F0YV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gInNhdGEgYmFzZSIsCisJCS5zdGFydAk9IFNBVEFfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FUQV9QSFlTX0JBU0UgKyAweDUwMDAgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5uYW1lCT0gInNhdGEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0tJUktXT09EX1NBVEEsCisJCS5lbmQJPSBJUlFfS0lSS1dPT0RfU0FUQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX3NhdGEgPSB7CisJLm5hbWUJCT0gInNhdGFfbXYiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGtpcmt3b29kX3NhdGFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UJPSBraXJrd29vZF9zYXRhX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IGtpcmt3b29kX3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpCit7CisJc2F0YV9kYXRhLT5kcmFtID0gJmtpcmt3b29kX21idXNfZHJhbV9pbmZvOworCWtpcmt3b29kX3NhdGEuZGV2LnBsYXRmb3JtX2RhdGEgPSBzYXRhX2RhdGE7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZraXJrd29vZF9zYXRhKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFVBUlQwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQga2lya3dvb2RfdWFydDBfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX0tJUktXT09EX1VBUlRfMCwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBLSVJLV09PRF9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBraXJrd29vZF91YXJ0MF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9LSVJLV09PRF9VQVJUXzAsCisJCS5lbmQJCT0gSVJRX0tJUktXT09EX1VBUlRfMCwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBraXJrd29vZF91YXJ0MCA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gMCwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0ga2lya3dvb2RfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBraXJrd29vZF91YXJ0MF9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShraXJrd29vZF91YXJ0MF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma2lya3dvb2RfdWFydDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBraXJrd29vZF91YXJ0MV9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQxX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfS0lSS1dPT0RfVUFSVF8xLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IEtJUktXT09EX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGtpcmt3b29kX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0tJUktXT09EX1VBUlRfMSwKKwkJLmVuZAkJPSBJUlFfS0lSS1dPT0RfVUFSVF8xLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGtpcmt3b29kX3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAxLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBraXJrd29vZF91YXJ0MV9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGtpcmt3b29kX3VhcnQxX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGtpcmt3b29kX3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBraXJrd29vZF91YXJ0MV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZraXJrd29vZF91YXJ0MSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBUaW1lIGhhbmRsaW5nCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkIGtpcmt3b29kX3RpbWVyX2luaXQodm9pZCkKK3sKKwlvcmlvbl90aW1lX2luaXQoSVJRX0tJUktXT09EX0JSSURHRSwgS0lSS1dPT0RfVENMSyk7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIga2lya3dvb2RfdGltZXIgPSB7CisJLmluaXQgPSBraXJrd29vZF90aW1lcl9pbml0LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGNoYXIgKiBfX2luaXQga2lya3dvb2RfaWQodm9pZCkKK3sKKwlzd2l0Y2ggKHJlYWRsKERFVklDRV9JRCkgJiAweDMpIHsKKwljYXNlIDA6CisJCXJldHVybiAiODhGNjE4MCI7CisJY2FzZSAxOgorCQlyZXR1cm4gIjg4RjYxOTIiOworCWNhc2UgMjoKKwkJcmV0dXJuICI4OEY2MjgxIjsKKwl9CisKKwlyZXR1cm4gInVua25vd24gODhGNjAwMCB2YXJpYW50IjsKK30KKworc3RhdGljIGludCBfX2luaXQgaXNfbDJfd3JpdGV0aHJvdWdoKHZvaWQpCit7CisJcmV0dXJuICEhKHJlYWRsKEwyX0NPTkZJR19SRUcpICYgTDJfV1JJVEVUSFJPVUdIKTsKK30KKwordm9pZCBfX2luaXQga2lya3dvb2RfaW5pdCh2b2lkKQoreworCXByaW50ayhLRVJOX0lORk8gIktpcmt3b29kOiAlcywgVENMSz0lZC5cbiIsCisJCWtpcmt3b29kX2lkKCksIEtJUktXT09EX1RDTEspOworCisJa2lya3dvb2Rfc2V0dXBfY3B1X21idXMoKTsKKworI2lmZGVmIENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMgorCWZlcm9jZW9uX2wyX2luaXQoaXNfbDJfd3JpdGV0aHJvdWdoKCkpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGVlMmY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaApAQCAtMCwwICsxLDQyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9jb21tb24uaAorICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9LSVJLV09PRF9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfS0lSS1dPT0RfQ09NTU9OX0gKKworc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGE7CitzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhOworCisvKgorICogQmFzaWMgS2lya3dvb2QgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCit2b2lkIGtpcmt3b29kX21hcF9pbyh2b2lkKTsKK3ZvaWQga2lya3dvb2RfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfaW5pdF9pcnEodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGtpcmt3b29kX21idXNfZHJhbV9pbmZvOwordm9pZCBraXJrd29vZF9zZXR1cF9jcHVfbWJ1cyh2b2lkKTsKK3ZvaWQga2lya3dvb2Rfc2V0dXBfcGNpZV9pb193aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCWludCBtYWosIGludCBtaW4pOwordm9pZCBraXJrd29vZF9zZXR1cF9wY2llX21lbV93aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSBpbnQgbWFqLCBpbnQgbWluKTsKKwordm9pZCBraXJrd29vZF9laGNpX2luaXQodm9pZCk7Cit2b2lkIGtpcmt3b29kX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwordm9pZCBraXJrd29vZF9wY2llX2luaXQodm9pZCk7Cit2b2lkIGtpcmt3b29kX3J0Y19pbml0KHZvaWQpOwordm9pZCBraXJrd29vZF9zYXRhX2luaXQoc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSAqc2F0YV9kYXRhKTsKK3ZvaWQga2lya3dvb2RfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQga2lya3dvb2RfdWFydDFfaW5pdCh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIga2lya3dvb2RfdGltZXI7CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWtpcmt3b29kL2RiODhmNjI4MS1icC1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWM0ODJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9kYjg4ZjYyODEtYnAtc2V0dXAuYworICoKKyAqIE1hcnZlbGwgREItODhGNjI4MS1CUCBEZXZlbG9wbWVudCBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI4OGY2MjgxX2dlMDBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgZGI4OGY2MjgxX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZGI4OGY2MjgxX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJa2lya3dvb2RfaW5pdCgpOworCisJa2lya3dvb2RfZWhjaV9pbml0KCk7CisJa2lya3dvb2RfZ2UwMF9pbml0KCZkYjg4ZjYyODFfZ2UwMF9kYXRhKTsKKwlraXJrd29vZF9ydGNfaW5pdCgpOworCWtpcmt3b29kX3NhdGFfaW5pdCgmZGI4OGY2MjgxX3NhdGFfZGF0YSk7CisJa2lya3dvb2RfdWFydDBfaW5pdCgpOworCWtpcmt3b29kX3VhcnQxX2luaXQoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgZGI4OGY2MjgxX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfZGI4OGY2MjgxX2JwKCkpCisJCWtpcmt3b29kX3BjaWVfaW5pdCgpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoZGI4OGY2MjgxX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChEQjg4RjYyODFfQlAsICJNYXJ2ZWxsIERCLTg4RjYyODEtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IGRiODhmNjI4MV9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9pcnEuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAyYmIyYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKQEAgLTAsMCArMSwyMiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvaXJxLmMKKyAqCisgKiBLaXJrd29vZCBJUlEgaGFuZGxpbmcuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2lycS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCit2b2lkIF9faW5pdCBraXJrd29vZF9pbml0X2lycSh2b2lkKQoreworCW9yaW9uX2lycV9pbml0KDAsICh2b2lkIF9faW9tZW0gKikoSVJRX1ZJUlRfQkFTRSArIElSUV9NQVNLX0xPV19PRkYpKTsKKwlvcmlvbl9pcnFfaW5pdCgzMiwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfSElHSF9PRkYpKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcGNpZS5jIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODI4MmQwZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcGNpZS5jCkBAIC0wLDAgKzEsMTgwIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1raXJrd29vZC9wY2llLmMKKyAqCisgKiBQQ0llIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9wY2llLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKworI2RlZmluZSBQQ0lFX0JBU0UJKCh2b2lkIF9faW9tZW0gKilQQ0lFX1ZJUlRfQkFTRSkKKworc3RhdGljIGludCBwY2llX3ZhbGlkX2NvbmZpZyhpbnQgYnVzLCBpbnQgZGV2KQoreworCS8qCisJICogRG9uJ3QgZ28gb3V0IHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyAtLQorCSAqIDEuIG5vbmV4aXN0aW5nIGRldmljZSBvbiBsb2NhbCBidXMKKwkgKiAyLiB3aGVyZSB0aGVyZSdzIG5vIGRldmljZSBjb25uZWN0ZWQgKG5vIGxpbmspCisJICovCisJaWYgKGJ1cyA9PSAwICYmIGRldiA9PSAwKQorCQlyZXR1cm4gMTsKKworCWlmICghb3Jpb25fcGNpZV9saW5rX3VwKFBDSUVfQkFTRSkpCisJCXJldHVybiAwOworCisJaWYgKGJ1cyA9PSAwICYmIGRldiAhPSAxKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOworfQorCisKKy8qCisgKiBQQ0llIGNvbmZpZyBjeWNsZXMgYXJlIGRvbmUgYnkgcHJvZ3JhbW1pbmcgdGhlIFBDSUVfQ09ORl9BRERSIHJlZ2lzdGVyCisgKiBhbmQgdGhlbiByZWFkaW5nIHRoZSBQQ0lFX0NPTkZfREFUQSByZWdpc3Rlci4gTmVlZCB0byBtYWtlIHN1cmUgdGhlc2UKKyAqIHRyYW5zYWN0aW9ucyBhcmUgYXRvbWljLgorICovCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGtpcmt3b29kX3BjaWVfbG9jayk7CisKK3N0YXRpYyBpbnQgcGNpZV9yZF9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwgaW50IHdoZXJlLAorCQkJaW50IHNpemUsIHUzMiAqdmFsKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldDsKKworCWlmIChwY2llX3ZhbGlkX2NvbmZpZyhidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pKSA9PSAwKSB7CisJCSp2YWwgPSAweGZmZmZmZmZmOworCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3JkX2NvbmYoUENJRV9CQVNFLCBidXMsIGRldmZuLCB3aGVyZSwgc2l6ZSwgdmFsKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZraXJrd29vZF9wY2llX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKKwkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJaWYgKHBjaWVfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApCisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgma2lya3dvb2RfcGNpZV9sb2NrLCBmbGFncyk7CisJcmV0ID0gb3Jpb25fcGNpZV93cl9jb25mKFBDSUVfQkFTRSwgYnVzLCBkZXZmbiwgd2hlcmUsIHNpemUsIHZhbCk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma2lya3dvb2RfcGNpZV9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IHBjaV9vcHMgcGNpZV9vcHMgPSB7CisJLnJlYWQgPSBwY2llX3JkX2NvbmYsCisJLndyaXRlID0gcGNpZV93cl9jb25mLAorfTsKKworCitzdGF0aWMgaW50IGtpcmt3b29kX3BjaWVfc2V0dXAoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpCit7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisKKwkvKgorCSAqIEdlbmVyaWMgUENJZSB1bml0IHNldHVwLgorCSAqLworCW9yaW9uX3BjaWVfc2V0dXAoUENJRV9CQVNFLCAma2lya3dvb2RfbWJ1c19kcmFtX2luZm8pOworCisJLyoKKwkgKiBSZXF1ZXN0IHJlc291cmNlcy4KKwkgKi8KKwlyZXMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogMiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyZXMpCisJCXBhbmljKCJwY2llX3NldHVwIHVuYWJsZSB0byBhbGxvYyByZXNvdXJjZXMiKTsKKworCS8qCisJICogSU9SRVNPVVJDRV9JTworCSAqLworCXJlc1swXS5uYW1lID0gIlBDSWUgSS9PIFNwYWNlIjsKKwlyZXNbMF0uZmxhZ3MgPSBJT1JFU09VUkNFX0lPOworCXJlc1swXS5zdGFydCA9IEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFOworCXJlc1swXS5lbmQgPSByZXNbMF0uc3RhcnQgKyBLSVJLV09PRF9QQ0lFX0lPX1NJWkUgLSAxOworCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZpb3BvcnRfcmVzb3VyY2UsICZyZXNbMF0pKQorCQlwYW5pYygiUmVxdWVzdCBQQ0llIElPIHJlc291cmNlIGZhaWxlZFxuIik7CisJc3lzLT5yZXNvdXJjZVswXSA9ICZyZXNbMF07CisKKwkvKgorCSAqIElPUkVTT1VSQ0VfTUVNCisJICovCisJcmVzWzFdLm5hbWUgPSAiUENJZSBNZW1vcnkgU3BhY2UiOworCXJlc1sxXS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOworCXJlc1sxXS5zdGFydCA9IEtJUktXT09EX1BDSUVfTUVNX1BIWVNfQkFTRTsKKwlyZXNbMV0uZW5kID0gcmVzWzFdLnN0YXJ0ICsgS0lSS1dPT0RfUENJRV9NRU1fU0laRSAtIDE7CisJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmcmVzWzFdKSkKKwkJcGFuaWMoIlJlcXVlc3QgUENJZSBNZW1vcnkgcmVzb3VyY2UgZmFpbGVkXG4iKTsKKwlzeXMtPnJlc291cmNlWzFdID0gJnJlc1sxXTsKKworCXN5cy0+cmVzb3VyY2VbMl0gPSBOVUxMOworCXN5cy0+aW9fb2Zmc2V0ID0gMDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZCBfX2RldmluaXQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJLyoKKwkgKiBQcmV2ZW50IGVudW1lcmF0aW9uIG9mIHJvb3QgY29tcGxleC4KKwkgKi8KKwlpZiAoZGV2LT5idXMtPnBhcmVudCA9PSBOVUxMICYmIGRldi0+ZGV2Zm4gPT0gMCkgeworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPSAwOworCQkJZGV2LT5yZXNvdXJjZVtpXS5lbmQgICA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsKKwkJfQorCX0KK30KK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2J1cyBfX2luaXQgKgora2lya3dvb2RfcGNpZV9zY2FuX2J1cyhpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKK3sKKwlzdHJ1Y3QgcGNpX2J1cyAqYnVzOworCisJaWYgKG5yID09IDApIHsKKwkJYnVzID0gcGNpX3NjYW5fYnVzKHN5cy0+YnVzbnIsICZwY2llX29wcywgc3lzKTsKKwl9IGVsc2UgeworCQlidXMgPSBOVUxMOworCQlCVUcoKTsKKwl9CisKKwlyZXR1cm4gYnVzOworfQorCitzdGF0aWMgaW50IF9faW5pdCBraXJrd29vZF9wY2llX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCXJldHVybiBJUlFfS0lSS1dPT0RfUENJRTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kga2lya3dvb2RfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMSwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0ga2lya3dvb2RfcGNpZV9zZXR1cCwKKwkuc2NhbgkJPSBraXJrd29vZF9wY2llX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0ga2lya3dvb2RfcGNpZV9tYXBfaXJxLAorfTsKKwordm9pZCBfX2luaXQga2lya3dvb2RfcGNpZV9pbml0KHZvaWQpCit7CisJcGNpX2NvbW1vbl9pbml0KCZraXJrd29vZF9wY2kpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYxOTItbmFzLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjE5Mi1uYXMtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2Y2NDJjCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYxOTItbmFzLXNldHVwLmMKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MTkyLW5hcy1zZXR1cC5jCisgKgorICogTWFydmVsbCBSRC04OEY2MTkyLU5BUyBSZWZlcmVuY2UgQm9hcmQgU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworI2RlZmluZSBSRDg4RjYxOTJfR1BJT19VU0JfVkJVUwkJMTAKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHJkODhmNjE5Ml9nZTAwX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gOCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHJkODhmNjE5Ml9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHJkODhmNjE5Ml9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBCYXNpYyBzZXR1cC4gTmVlZHMgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCWtpcmt3b29kX2luaXQoKTsKKworCWtpcmt3b29kX2VoY2lfaW5pdCgpOworCWtpcmt3b29kX2dlMDBfaW5pdCgmcmQ4OGY2MTkyX2dlMDBfZGF0YSk7CisJa2lya3dvb2RfcnRjX2luaXQoKTsKKwlraXJrd29vZF9zYXRhX2luaXQoJnJkODhmNjE5Ml9zYXRhX2RhdGEpOworCWtpcmt3b29kX3VhcnQwX2luaXQoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgcmQ4OGY2MTkyX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfcmQ4OGY2MTkyX25hcygpKQorCQlraXJrd29vZF9wY2llX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHJkODhmNjE5Ml9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY2MTkyX05BUywgIk1hcnZlbGwgUkQtODhGNjE5Mi1OQVMgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNjE5Ml9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1raXJrd29vZC9yZDg4ZjYyODEtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MjgxLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTFmOGRlMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gta2lya3dvb2QvcmQ4OGY2MjgxLXNldHVwLmMKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLWtpcmt3b29kL3JkODhmNjI4MS1zZXR1cC5jCisgKgorICogTWFydmVsbCBSRC04OEY2MjgxIFJlZmVyZW5jZSBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHJkODhmNjI4MV9uYW5kX3BhcnRzW10gPSB7CisJeworCQkubmFtZSA9ICJ1LWJvb3QiLAorCQkub2Zmc2V0ID0gMCwKKwkJLnNpemUgPSBTWl8xTQorCX0sIHsKKwkJLm5hbWUgPSAidUltYWdlIiwKKwkJLm9mZnNldCA9IE1URFBBUlRfT0ZTX05YVEJMSywKKwkJLnNpemUgPSBTWl8yTQorCX0sIHsKKwkJLm5hbWUgPSAicm9vdCIsCisJCS5vZmZzZXQgPSBNVERQQVJUX09GU19OWFRCTEssCisJCS5zaXplID0gTVREUEFSVF9TSVpfRlVMTAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHJkODhmNjI4MV9uYW5kX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFLAorCS5lbmQJCT0gS0lSS1dPT0RfTkFORF9NRU1fUEhZU19CQVNFICsKKwkJCSAgS0lSS1dPT0RfTkFORF9NRU1fU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IG9yaW9uX25hbmRfZGF0YSByZDg4ZjYyODFfbmFuZF9kYXRhID0geworCS5wYXJ0cwkJPSByZDg4ZjYyODFfbmFuZF9wYXJ0cywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHJkODhmNjI4MV9uYW5kX3BhcnRzKSwKKwkuY2xlCQk9IDAsCisJLmFsZQkJPSAxLAorCS53aWR0aAkJPSA4LAorCS5jaGlwX2RlbGF5CT0gMjUsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSByZDg4ZjYyODFfbmFuZF9mbGFzaCA9IHsKKwkubmFtZQkJPSAib3Jpb25fbmFuZCIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZyZDg4ZjYyODFfbmFuZF9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gJnJkODhmNjI4MV9uYW5kX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSByZDg4ZjYyODFfZ2UwMF9kYXRhID0geworCS5waHlfYWRkcgk9IC0xLAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgcmQ4OGY2MjgxX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcmQ4OGY2MjgxX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIEJhc2ljIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJa2lya3dvb2RfaW5pdCgpOworCisJa2lya3dvb2RfZWhjaV9pbml0KCk7CisJa2lya3dvb2RfZ2UwMF9pbml0KCZyZDg4ZjYyODFfZ2UwMF9kYXRhKTsKKwlraXJrd29vZF9ydGNfaW5pdCgpOworCWtpcmt3b29kX3NhdGFfaW5pdCgmcmQ4OGY2MjgxX3NhdGFfZGF0YSk7CisJa2lya3dvb2RfdWFydDBfaW5pdCgpOworCWtpcmt3b29kX3VhcnQxX2luaXQoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcmQ4OGY2MjgxX25hbmRfZmxhc2gpOworfQorCitzdGF0aWMgaW50IF9faW5pdCByZDg4ZjYyODFfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19yZDg4ZjYyODEoKSkKKwkJa2lya3dvb2RfcGNpZV9pbml0KCk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjYyODFfcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKFJEODhGNjI4MSwgIk1hcnZlbGwgUkQtODhGNjI4MSBSZWZlcmVuY2UgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IFNhZWVkIEJpc2hhcmEgPHNhZWVkQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhmZmZjLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNjI4MV9pbml0LAorCS5tYXBfaW8JCT0ga2lya3dvb2RfbWFwX2lvLAorCS5pbml0X2lycQk9IGtpcmt3b29kX2luaXRfaXJxLAorCS50aW1lcgkJPSAma2lya3dvb2RfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLWxva2kvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDQ1YmRkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL0tjb25maWcKQEAgLTAsMCArMSwxMyBAQAoraWYgQVJDSF9MT0tJCisKK21lbnUgIk1hcnZlbGwgTG9raSAoODhSQzg0ODApIEltcGxlbWVudGF0aW9ucyIKKworY29uZmlnIE1BQ0hfTEI4OFJDODQ4MAorCWJvb2wgIk1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MzIzM2UKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUKQEAgLTAsMCArMSwzIEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vCisKK29iai0kKENPTkZJR19NQUNIX0xCODhSQzg0ODApCSs9IGxiODhyYzg0ODAtc2V0dXAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlLmJvb3QgYi9hcmNoL2FybS9tYWNoLWxva2kvTWFrZWZpbGUuYm9vdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NzAzOWMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4MDAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHgwMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweDAwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvYWRkci1tYXAuYyBiL2FyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMjVlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvYWRkci1tYXAuYwpAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9hZGRyLW1hcC5jCisgKgorICogQWRkcmVzcyBtYXAgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKy8qCisgKiBHZW5lcmljIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgYml0IHNldHRpbmdzCisgKi8KKyNkZWZpbmUgVEFSR0VUX0REUgkJMAorI2RlZmluZSBUQVJHRVRfREVWX0JVUwkJMQorI2RlZmluZSBUQVJHRVRfUENJRTAJCTMKKyNkZWZpbmUgVEFSR0VUX1BDSUUxCQk0CisjZGVmaW5lIEFUVFJfREVWX0JPT1QJCTB4MGYKKyNkZWZpbmUgQVRUUl9ERVZfQ1MyCQkweDFiCisjZGVmaW5lIEFUVFJfREVWX0NTMQkJMHgxZAorI2RlZmluZSBBVFRSX0RFVl9DUzAJCTB4MWUKKyNkZWZpbmUgQVRUUl9QQ0lFX0lPCQkweDUxCisjZGVmaW5lIEFUVFJfUENJRV9NRU0JCTB4NTkKKworLyoKKyAqIEhlbHBlcnMgdG8gZ2V0IEREUiBiYW5rIGluZm8KKyAqLworI2RlZmluZSBERFJfU0laRV9DUyhuKQkJRERSX1JFRygweDE1MDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfQkFTRV9DUyhuKQkJRERSX1JFRygweDE1MDQgKyAoKG4pIDw8IDMpKQorCisvKgorICogQ1BVIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgcmVnaXN0ZXJzCisgKi8KKyNkZWZpbmUgQ1BVX1dJTl9DVFJMKG4pCQlCUklER0VfUkVHKDB4MDAwIHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9CQVNFKG4pCQlCUklER0VfUkVHKDB4MDA0IHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9SRU1BUF9MTyhuKQlCUklER0VfUkVHKDB4MDA4IHwgKChuKSA8PCA0KSkKKyNkZWZpbmUgQ1BVX1dJTl9SRU1BUF9ISShuKQlCUklER0VfUkVHKDB4MDBjIHwgKChuKSA8PCA0KSkKKworCitzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGxva2lfbWJ1c19kcmFtX2luZm87CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9jcHVfd2luKGludCB3aW4sIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCQkgdTggdGFyZ2V0LCB1OCBhdHRyLCBpbnQgcmVtYXApCit7CisJdTMyIGN0cmw7CisKKwliYXNlICY9IDB4ZmZmZjAwMDA7CisJY3RybCA9ICgoc2l6ZSAtIDEpICYgMHhmZmZmMDAwMCkgfCAoYXR0ciA8PCA4KSB8ICgxIDw8IDUpIHwgdGFyZ2V0OworCisJd3JpdGVsKGJhc2UsIENQVV9XSU5fQkFTRSh3aW4pKTsKKwl3cml0ZWwoY3RybCwgQ1BVX1dJTl9DVFJMKHdpbikpOworCWlmICh3aW4gPCAyKSB7CisJCWlmIChyZW1hcCA8IDApCisJCQlyZW1hcCA9IGJhc2U7CisKKwkJd3JpdGVsKHJlbWFwICYgMHhmZmZmMDAwMCwgQ1BVX1dJTl9SRU1BUF9MTyh3aW4pKTsKKwkJd3JpdGVsKDAsIENQVV9XSU5fUkVNQVBfSEkod2luKSk7CisJfQorfQorCit2b2lkIF9faW5pdCBsb2tpX3NldHVwX2NwdV9tYnVzKHZvaWQpCit7CisJaW50IGk7CisJaW50IGNzOworCisJLyoKKwkgKiBGaXJzdCwgZGlzYWJsZSBhbmQgY2xlYXIgd2luZG93cy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCXdyaXRlbCgwLCBDUFVfV0lOX0JBU0UoaSkpOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9DVFJMKGkpKTsKKwkJaWYgKGkgPCAyKSB7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9MTyhpKSk7CisJCQl3cml0ZWwoMCwgQ1BVX1dJTl9SRU1BUF9ISShpKSk7CisJCX0KKwl9CisKKwkvKgorCSAqIFNldHVwIHdpbmRvd3MgZm9yIFBDSWUgSU8rTUVNIHNwYWNlLgorCSAqLworCXNldHVwX2NwdV93aW4oMiwgTE9LSV9QQ0lFMF9NRU1fUEhZU19CQVNFLCBMT0tJX1BDSUUwX01FTV9TSVpFLAorCQkgICAgICBUQVJHRVRfUENJRTAsIEFUVFJfUENJRV9NRU0sIC0xKTsKKwlzZXR1cF9jcHVfd2luKDMsIExPS0lfUENJRTFfTUVNX1BIWVNfQkFTRSwgTE9LSV9QQ0lFMV9NRU1fU0laRSwKKwkJICAgICAgVEFSR0VUX1BDSUUxLCBBVFRSX1BDSUVfTUVNLCAtMSk7CisKKwkvKgorCSAqIFNldHVwIE1CVVMgZHJhbSB0YXJnZXQgaW5mby4KKwkgKi8KKwlsb2tpX21idXNfZHJhbV9pbmZvLm1idXNfZHJhbV90YXJnZXRfaWQgPSBUQVJHRVRfRERSOworCisJZm9yIChpID0gMCwgY3MgPSAwOyBpIDwgNDsgaSsrKSB7CisJCXUzMiBiYXNlID0gcmVhZGwoRERSX0JBU0VfQ1MoaSkpOworCQl1MzIgc2l6ZSA9IHJlYWRsKEREUl9TSVpFX0NTKGkpKTsKKworCQkvKgorCQkgKiBDaGlwIHNlbGVjdCBlbmFibGVkPworCQkgKi8KKwkJaWYgKHNpemUgJiAxKSB7CisJCQlzdHJ1Y3QgbWJ1c19kcmFtX3dpbmRvdyAqdzsKKworCQkJdyA9ICZsb2tpX21idXNfZHJhbV9pbmZvLmNzW2NzKytdOworCQkJdy0+Y3NfaW5kZXggPSBpOworCQkJdy0+bWJ1c19hdHRyID0gMHhmICYgfigxIDw8IGkpOworCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmZmYwMDAwOworCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMDAwZmZmZikgKyAxOworCQl9CisJfQorCWxva2lfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CisKK3ZvaWQgX19pbml0IGxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKK3sKKwlzZXR1cF9jcHVfd2luKDQsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9CT09ULCAtMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEwZjUwMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYwpAQCAtMCwwICsxLDMwNSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9jb21tb24uYworICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfODI1MC5oPgorI2luY2x1ZGUgPGxpbnV4L21idXMuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3RpbWV4Lmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vdGltZS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBsb2tpX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBMT0tJX1JFR1NfVklSVF9CQVNFLAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oTE9LSV9SRUdTX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gTE9LSV9SRUdTX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQgbG9raV9tYXBfaW8odm9pZCkKK3sKKwlpb3RhYmxlX2luaXQobG9raV9pb19kZXNjLCBBUlJBWV9TSVpFKGxva2lfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBsb2tpX2dlMF9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gTE9LSV9UQ0xLLAorCS5kcmFtCQk9ICZsb2tpX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMF9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAgYmFzZSIsCisJCS5zdGFydAk9IEdFMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTBfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV9nZTBfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZsb2tpX2dlMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMF9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX2dlMF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTE9LSV9HQkVfQV9JTlQsCisJCS5lbmQJPSBJUlFfTE9LSV9HQkVfQV9JTlQsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX2dlMCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBsb2tpX2dlMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBsb2tpX2dlMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJmxva2lfZ2UwX3NoYXJlZDsKKwlsb2tpX2dlMC5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJd3JpdGVsKDB4MDAwNzkyMjAsIEdFMF9WSVJUX0JBU0UgKyAweDIwYjApOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9nZTBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfZ2UwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdFMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbG9raV9nZTFfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IExPS0lfVENMSywKKwkuZHJhbQkJPSAmbG9raV9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV9nZTFfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxIGJhc2UiLAorCQkuc3RhcnQJPSBHRTFfUEhZU19CQVNFICsgMHgyMDAwLAorCQkuZW5kCT0gR0UxX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfZ2UxX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbG9raV9nZTFfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbG9raV9nZTFfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV9nZTFfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX0xPS0lfR0JFX0JfSU5ULAorCQkuZW5kCT0gSVJRX0xPS0lfR0JFX0JfSU5ULAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV9nZTEgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbG9raV9nZTFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbG9raV9nZTFfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZsb2tpX2dlMV9zaGFyZWQ7CisJbG9raV9nZTEuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXdyaXRlbCgweDAwMDc5MjIwLCBHRTFfVklSVF9CQVNFICsgMHgyMGIwKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxva2lfZ2UxX3NoYXJlZCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX2dlMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVMvU0FUQQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGxva2lfc2FzX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAibXZzYXMwIG1lbSIsCisJCS5zdGFydAk9IFNBUzBfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FTMF9QSFlTX0JBU0UgKyAweDAxZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMwIGlycSIsCisJCS5zdGFydAk9IElSUV9MT0tJX1NBU19BLAorCQkuZW5kCT0gSVJRX0xPS0lfU0FTX0EsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMxIG1lbSIsCisJCS5zdGFydAk9IFNBUzFfUEhZU19CQVNFLAorCQkuZW5kCT0gU0FTMV9QSFlTX0JBU0UgKyAweDAxZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAibXZzYXMxIGlycSIsCisJCS5zdGFydAk9IElSUV9MT0tJX1NBU19CLAorCQkuZW5kCT0gSVJRX0xPS0lfU0FTX0IsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsb2tpX3NhcyA9IHsKKwkubmFtZQkJPSAibXZzYXMiLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGxva2lfc2FzX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0gbG9raV9zYXNfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbG9raV9zYXNfaW5pdCh2b2lkKQoreworCXdyaXRlbCgweDgzMDBmNzA3LCBERFJfUkVHKDB4MTQyNCkpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV9zYXMpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBsb2tpX3VhcnQwX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZmxhZ3MJCT0gVVBGX1NLSVBfVEVTVCB8IFVQRl9CT09UX0FVVE9DT05GLAorCQkuaW90eXBlCQk9IFVQSU9fTUVNLAorCQkucmVnc2hpZnQJPSAyLAorCQkudWFydGNsawk9IExPS0lfVENMSywKKwl9LCB7CisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbG9raV91YXJ0MF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAkJPSBVQVJUMF9QSFlTX0JBU0UsCisJCS5lbmQJCT0gVUFSVDBfUEhZU19CQVNFICsgMHhmZiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZW5kCQk9IElSUV9MT0tJX1VBUlQwLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxva2lfdWFydDAgPSB7CisJLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IGxva2lfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBsb2tpX3VhcnQwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKGxva2lfdWFydDBfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IGxva2lfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbG9raV91YXJ0MCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IGxva2lfdWFydDFfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMV9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMV9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gTE9LSV9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsb2tpX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5lbmQJCT0gSVJRX0xPS0lfVUFSVDEsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbG9raV91YXJ0MSA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gMSwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gbG9raV91YXJ0MV9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IGxva2lfdWFydDFfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUobG9raV91YXJ0MV9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbG9raV91YXJ0MV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZsb2tpX3VhcnQxKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFRpbWUgaGFuZGxpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgbG9raV90aW1lcl9pbml0KHZvaWQpCit7CisJb3Jpb25fdGltZV9pbml0KElSUV9MT0tJX0JSSURHRSwgTE9LSV9UQ0xLKTsKK30KKworc3RydWN0IHN5c190aW1lciBsb2tpX3RpbWVyID0geworCS5pbml0ID0gbG9raV90aW1lcl9pbml0LAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZCBfX2luaXQgbG9raV9pbml0KHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiTG9raSBJRDogODhSQzg0ODAuIFRDTEs9JWQuXG4iLCBMT0tJX1RDTEspOworCisJbG9raV9zZXR1cF9jcHVfbWJ1cygpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MDU0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvY29tbW9uLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9jb21tb24uaAorICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FSQ0hfTE9LSV9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfTE9LSV9DT01NT05fSAorCitzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YTsKKworLyoKKyAqIEJhc2ljIExva2kgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCit2b2lkIGxva2lfbWFwX2lvKHZvaWQpOwordm9pZCBsb2tpX2luaXQodm9pZCk7Cit2b2lkIGxva2lfaW5pdF9pcnEodm9pZCk7CisKK2V4dGVybiBzdHJ1Y3QgbWJ1c19kcmFtX3RhcmdldF9pbmZvIGxva2lfbWJ1c19kcmFtX2luZm87Cit2b2lkIGxva2lfc2V0dXBfY3B1X21idXModm9pZCk7Cit2b2lkIGxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSk7CisKK3ZvaWQgbG9raV9nZTBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwordm9pZCBsb2tpX2dlMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIGxva2lfc2FzX2luaXQodm9pZCk7Cit2b2lkIGxva2lfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQgbG9raV91YXJ0MV9pbml0KHZvaWQpOworCitleHRlcm4gc3RydWN0IHN5c190aW1lciBsb2tpX3RpbWVyOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1sb2tpL2lycS5jIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2lycS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4MzlhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLWxva2kvaXJxLmMKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9pcnEuYworICoKKyAqIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIElSUSBoYW5kbGluZy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2lycS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCit2b2lkIF9faW5pdCBsb2tpX2luaXRfaXJxKHZvaWQpCit7CisJb3Jpb25faXJxX2luaXQoMCwgKHZvaWQgX19pb21lbSAqKShJUlFfVklSVF9CQVNFICsgSVJRX01BU0tfT0ZGKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWxva2kvbGI4OHJjODQ4MC1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2xiODhyYzg0ODAtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWI5ZTZlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1sb2tpL2xiODhyYzg0ODAtc2V0dXAuYwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbG9raS9sYjg4cmM4NDgwLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIExCODhSQzg0ODAgRGV2ZWxvcG1lbnQgQm9hcmQgU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorCisjZGVmaW5lIExCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19CQVNFCTB4ZjgwMDAwMDAKKyNkZWZpbmUgTEI4OFJDODQ4MF9GTEFTSF9CT09UX0NTX1NJWkUJU1pfMTI4TQorCisjZGVmaW5lIExCODhSQzg0ODBfTk9SX0JPT1RfQkFTRQkweGZmMDAwMDAwCisjZGVmaW5lIExCODhSQzg0ODBfTk9SX0JPT1RfU0laRQlTWl8xNk0KKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGxiODhyYzg0ODBfYm9vdF9mbGFzaF9wYXJ0c1tdID0geworCXsKKwkJLm5hbWUJPSAia2VybmVsIiwKKwkJLm9mZnNldAk9IDAsCisJCS5zaXplCT0gU1pfMk0sCisJfSwgeworCQkubmFtZQk9ICJyb290LWZzIiwKKwkJLm9mZnNldAk9IFNaXzJNLAorCQkuc2l6ZQk9IChTWl84TSArIFNaXzRNICsgU1pfMU0pLAorCX0sIHsKKwkJLm5hbWUJPSAidS1ib290IiwKKwkJLm9mZnNldAk9IChTWl84TSArIFNaXzRNICsgU1pfMk0gKyBTWl8xTSksCisJCS5zaXplCT0gU1pfMU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIGxiODhyYzg0ODBfYm9vdF9mbGFzaF9kYXRhID0geworCS5wYXJ0cwkJPSBsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcGFydHMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRShsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcGFydHMpLAorCS53aWR0aAkJPSAxLAkvKiA4IGJpdCBidXMgd2lkdGggKi8KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbGI4OHJjODQ4MF9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAk9IExCODhSQzg0ODBfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCT0gTEI4OFJDODQ4MF9OT1JfQk9PVF9CQVNFICsgTEI4OFJDODQ4MF9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxiODhyYzg0ODBfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJPSAwLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmxiODhyYzg0ODBfYm9vdF9mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9ICZsYjg4cmM4NDgwX2Jvb3RfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgbGI4OHJjODQ4MF9nZTBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAxLAorCS5tYWNfYWRkcgk9IHsgMHgwMCwgMHg1MCwgMHg0MywgMHgxMSwgMHgyMiwgMHgzMyB9LAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IGxiODhyYzg0ODBfaW5pdCh2b2lkKQoreworCS8qCisJICogQmFzaWMgc2V0dXAuIE5lZWRzIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlsb2tpX2luaXQoKTsKKworCWxva2lfZ2UwX2luaXQoJmxiODhyYzg0ODBfZ2UwX2RhdGEpOworCWxva2lfc2FzX2luaXQoKTsKKwlsb2tpX3VhcnQwX2luaXQoKTsKKwlsb2tpX3VhcnQxX2luaXQoKTsKKworCWxva2lfc2V0dXBfZGV2X2Jvb3Rfd2luKExCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19CQVNFLAorCQkJCUxCODhSQzg0ODBfRkxBU0hfQk9PVF9DU19TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmxiODhyYzg0ODBfYm9vdF9mbGFzaCk7Cit9CisKK01BQ0hJTkVfU1RBUlQoTEI4OFJDODQ4MCwgIk1hcnZlbGwgTEI4OFJDODQ4MCBEZXZlbG9wbWVudCBCb2FyZCIpCisJLyogTWFpbnRhaW5lcjogS2UgV2VpIDxrZXdlaUBtYXJ2ZWxsLmNvbT4gKi8KKwkucGh5c19pbwk9IExPS0lfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChMT0tJX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gbGI4OHJjODQ4MF9pbml0LAorCS5tYXBfaW8JCT0gbG9raV9tYXBfaW8sCisJLmluaXRfaXJxCT0gbG9raV9pbml0X2lycSwKKwkudGltZXIJCT0gJmxva2lfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODNjYjg2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL0tjb25maWcKQEAgLTAsMCArMSwxMyBAQAoraWYgQVJDSF9NVjc4WFgwCisKK21lbnUgIk1hcnZlbGwgTVY3OHh4MCBJbXBsZW1lbnRhdGlvbnMiCisKK2NvbmZpZyBNQUNIX0RCNzhYMDBfQlAKKwlib29sICJNYXJ2ZWxsIERCLTc4eDAwLUJQIERldmVsb3BtZW50IEJvYXJkIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTWFydmVsbCBEQi03OHgwMC1CUCBEZXZlbG9wbWVudCBCb2FyZC4KKworZW5kbWVudQorCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMTZjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUKQEAgLTAsMCArMSwyIEBACitvYmoteQkJCQkrPSBjb21tb24ubyBhZGRyLW1hcC5vIGlycS5vIHBjaWUubworb2JqLSQoQ09ORklHX01BQ0hfREI3OFgwMF9CUCkJKz0gZGI3OHgwMC1icC1zZXR1cC5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9NYWtlZmlsZS5ib290Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MDM5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvTWFrZWZpbGUuYm9vdApAQCAtMCwwICsxLDMgQEAKKyAgIHpyZWxhZGRyLXkJOj0gMHgwMDAwODAwMAorcGFyYW1zX3BoeXMteQk6PSAweDAwMDAwMTAwCitpbml0cmRfcGh5cy15CTo9IDB4MDA4MDAwMDAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9hZGRyLW1hcC5jIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAwNGI2NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9hZGRyLW1hcC5jCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2FkZHItbWFwLmMKKyAqCisgKiBBZGRyZXNzIG1hcCBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgTVY3OHh4MCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKy8qCisgKiBHZW5lcmljIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgYml0IHNldHRpbmdzCisgKi8KKyNkZWZpbmUgVEFSR0VUX0REUgkJMAorI2RlZmluZSBUQVJHRVRfREVWX0JVUwkJMQorI2RlZmluZSBUQVJHRVRfUENJRTAJCTQKKyNkZWZpbmUgVEFSR0VUX1BDSUUxCQk4CisjZGVmaW5lIFRBUkdFVF9QQ0lFKGkpCQkoKGkpID8gVEFSR0VUX1BDSUUxIDogVEFSR0VUX1BDSUUwKQorI2RlZmluZSBBVFRSX0RFVl9TUElfUk9NCTB4MWYKKyNkZWZpbmUgQVRUUl9ERVZfQk9PVAkJMHgyZgorI2RlZmluZSBBVFRSX0RFVl9DUzMJCTB4MzcKKyNkZWZpbmUgQVRUUl9ERVZfQ1MyCQkweDNiCisjZGVmaW5lIEFUVFJfREVWX0NTMQkJMHgzZAorI2RlZmluZSBBVFRSX0RFVl9DUzAJCTB4M2UKKyNkZWZpbmUgQVRUUl9QQ0lFX0lPKGwpCQkoMHhmMCAmIH4oMHgxMCA8PCAobCkpKQorI2RlZmluZSBBVFRSX1BDSUVfTUVNKGwpCSgweGY4ICYgfigweDEwIDw8IChsKSkpCisKKy8qCisgKiBIZWxwZXJzIHRvIGdldCBERFIgYmFuayBpbmZvCisgKi8KKyNkZWZpbmUgRERSX0JBU0VfQ1NfT0ZGKG4pCSgweDAwMDAgKyAoKG4pIDw8IDMpKQorI2RlZmluZSBERFJfU0laRV9DU19PRkYobikJKDB4MDAwNCArICgobikgPDwgMykpCisKKy8qCisgKiBDUFUgQWRkcmVzcyBEZWNvZGUgV2luZG93cyByZWdpc3RlcnMKKyAqLworI2RlZmluZSBXSU4wX09GRihuKQkJKEJSSURHRV9WSVJUX0JBU0UgKyAweDAwMDAgKyAoKG4pIDw8IDQpKQorI2RlZmluZSBXSU44X09GRihuKQkJKEJSSURHRV9WSVJUX0JBU0UgKyAweDA5MDAgKyAoKChuKSAtIDgpIDw8IDQpKQorI2RlZmluZSBXSU5fQ1RSTF9PRkYJCTB4MDAwMAorI2RlZmluZSBXSU5fQkFTRV9PRkYJCTB4MDAwNAorI2RlZmluZSBXSU5fUkVNQVBfTE9fT0ZGCTB4MDAwOAorI2RlZmluZSBXSU5fUkVNQVBfSElfT0ZGCTB4MDAwYworCisKK3N0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8gbXY3OHh4MF9tYnVzX2RyYW1faW5mbzsKKworc3RhdGljIHZvaWQgX19pbml0IF9faW9tZW0gKndpbl9jZmdfYmFzZShpbnQgd2luKQoreworCS8qCisJICogRmluZCB0aGUgY29udHJvbCByZWdpc3RlciBiYXNlIGFkZHJlc3MgZm9yIHRoaXMgd2luZG93LgorCSAqCisJICogQlJJREdFX1ZJUlRfQkFTRSBwb2ludHMgdG8gdGhlIHJpZ2h0IChDUFUwJ3Mgb3IgQ1BVMSdzKQorCSAqIE1CVVMgYnJpZGdlIGRlcGVuZGluZyBvbiB3aGljaCBDUFUgY29yZSB3ZSdyZSBydW5uaW5nIG9uLAorCSAqIHNvIHdlIGRvbid0IG5lZWQgdG8gdGFrZSB0aGF0IGludG8gYWNjb3VudCBoZXJlLgorCSAqLworCisJcmV0dXJuICh2b2lkIF9faW9tZW0gKikoKHdpbiA8IDgpID8gV0lOMF9PRkYod2luKSA6IFdJTjhfT0ZGKHdpbikpOworfQorCitzdGF0aWMgaW50IF9faW5pdCBjcHVfd2luX2Nhbl9yZW1hcChpbnQgd2luKQoreworCWlmICh3aW4gPCA4KQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1X3dpbihpbnQgd2luLCB1MzIgYmFzZSwgdTMyIHNpemUsCisJCQkJIHU4IHRhcmdldCwgdTggYXR0ciwgaW50IHJlbWFwKQoreworCXZvaWQgX19pb21lbSAqYWRkciA9IHdpbl9jZmdfYmFzZSh3aW4pOworCXUzMiBjdHJsOworCisJYmFzZSAmPSAweGZmZmYwMDAwOworCWN0cmwgPSAoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMTsKKworCXdyaXRlbChiYXNlLCBhZGRyICsgV0lOX0JBU0VfT0ZGKTsKKwl3cml0ZWwoY3RybCwgYWRkciArIFdJTl9DVFJMX09GRik7CisJaWYgKGNwdV93aW5fY2FuX3JlbWFwKHdpbikpIHsKKwkJaWYgKHJlbWFwIDwgMCkKKwkJCXJlbWFwID0gYmFzZTsKKworCQl3cml0ZWwocmVtYXAgJiAweGZmZmYwMDAwLCBhZGRyICsgV0lOX1JFTUFQX0xPX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX1JFTUFQX0hJX09GRik7CisJfQorfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX3NldHVwX2NwdV9tYnVzKHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICphZGRyOworCWludCBpOworCWludCBjczsKKworCS8qCisJICogRmlyc3QsIGRpc2FibGUgYW5kIGNsZWFyIHdpbmRvd3MuCisJICovCisJZm9yIChpID0gMDsgaSA8IDE0OyBpKyspIHsKKwkJYWRkciA9IHdpbl9jZmdfYmFzZShpKTsKKworCQl3cml0ZWwoMCwgYWRkciArIFdJTl9CQVNFX09GRik7CisJCXdyaXRlbCgwLCBhZGRyICsgV0lOX0NUUkxfT0ZGKTsKKwkJaWYgKGNwdV93aW5fY2FuX3JlbWFwKGkpKSB7CisJCQl3cml0ZWwoMCwgYWRkciArIFdJTl9SRU1BUF9MT19PRkYpOworCQkJd3JpdGVsKDAsIGFkZHIgKyBXSU5fUkVNQVBfSElfT0ZGKTsKKwkJfQorCX0KKworCS8qCisJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgorCSAqLworCW12Nzh4eDBfbWJ1c19kcmFtX2luZm8ubWJ1c19kcmFtX3RhcmdldF9pZCA9IFRBUkdFVF9ERFI7CisKKwlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkKKwkJYWRkciA9ICh2b2lkIF9faW9tZW0gKilERFJfV0lORE9XX0NQVTBfQkFTRTsKKwllbHNlCisJCWFkZHIgPSAodm9pZCBfX2lvbWVtICopRERSX1dJTkRPV19DUFUxX0JBU0U7CisKKwlmb3IgKGkgPSAwLCBjcyA9IDA7IGkgPCA0OyBpKyspIHsKKwkJdTMyIGJhc2UgPSByZWFkbChhZGRyICsgRERSX0JBU0VfQ1NfT0ZGKGkpKTsKKwkJdTMyIHNpemUgPSByZWFkbChhZGRyICsgRERSX1NJWkVfQ1NfT0ZGKGkpKTsKKworCQkvKgorCQkgKiBDaGlwIHNlbGVjdCBlbmFibGVkPworCQkgKi8KKwkJaWYgKHNpemUgJiAxKSB7CisJCQlzdHJ1Y3QgbWJ1c19kcmFtX3dpbmRvdyAqdzsKKworCQkJdyA9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLmNzW2NzKytdOworCQkJdy0+Y3NfaW5kZXggPSBpOworCQkJdy0+bWJ1c19hdHRyID0gMHhmICYgfigxIDw8IGkpOworCQkJdy0+YmFzZSA9IGJhc2UgJiAweGZmZmYwMDAwOworCQkJdy0+c2l6ZSA9IChzaXplIHwgMHgwMDAwZmZmZikgKyAxOworCQl9CisJfQorCW12Nzh4eDBfbWJ1c19kcmFtX2luZm8ubnVtX2NzID0gY3M7Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2V0dXBfcGNpZV9pb193aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCSAgICAgIGludCBtYWosIGludCBtaW4pCit7CisJc2V0dXBfY3B1X3dpbih3aW5kb3csIGJhc2UsIHNpemUsIFRBUkdFVF9QQ0lFKG1haiksCisJCSAgICAgIEFUVFJfUENJRV9JTyhtaW4pLCAtMSk7Cit9CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2V0dXBfcGNpZV9tZW1fd2luKGludCB3aW5kb3csIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCQkgICAgICAgaW50IG1haiwgaW50IG1pbikKK3sKKwlzZXR1cF9jcHVfd2luKHdpbmRvdywgYmFzZSwgc2l6ZSwgVEFSR0VUX1BDSUUobWFqKSwKKwkJICAgICAgQVRUUl9QQ0lFX01FTShtaW4pLCAtMSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDI3YjgzYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYwpAQCAtMCwwICsxLDc1NCBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uYworICoKKyAqIENvcmUgZnVuY3Rpb25zIGZvciBNYXJ2ZWxsIE1WNzh4eDAgU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KKyNpbmNsdWRlIDxsaW51eC9tYnVzLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL2NhY2hlLWZlcm9jZW9uLWwyLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vZWhjaS1vcmlvbi5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi90aW1lLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBDb21tb24gYml0cworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitpbnQgbXY3OHh4MF9jb3JlX2luZGV4KHZvaWQpCit7CisJdTMyIGV4dHJhOworCisJLyoKKwkgKiBSZWFkIEV4dHJhIEZlYXR1cmVzIHJlZ2lzdGVyLgorCSAqLworCV9fYXNtX18oIm1yYyBwMTUsIDEsICUwLCBjMTUsIGMxLCAwIiA6ICI9ciIgKGV4dHJhKSk7CisKKwlyZXR1cm4gISEoZXh0cmEgJiAweDAwMDA0MDAwKTsKK30KKworc3RhdGljIGludCBnZXRfaGNsayh2b2lkKQoreworCWludCBoY2xrOworCisJLyoKKwkgKiBIQ0xLIHRpY2sgcmF0ZSBpcyBjb25maWd1cmVkIGJ5IERFVl9EWzc6NV0gcGlucy4KKwkgKi8KKwlzd2l0Y2ggKChyZWFkbChTQU1QTEVfQVRfUkVTRVRfTE9XKSA+PiA1KSAmIDcpIHsKKwljYXNlIDA6CisJCWhjbGsgPSAxNjY2NjY2Njc7CisJCWJyZWFrOworCWNhc2UgMToKKwkJaGNsayA9IDIwMDAwMDAwMDsKKwkJYnJlYWs7CisJY2FzZSAyOgorCQloY2xrID0gMjY2NjY2NjY3OworCQlicmVhazsKKwljYXNlIDM6CisJCWhjbGsgPSAzMzMzMzMzMzM7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJaGNsayA9IDQwMDAwMDAwMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcGFuaWMoInVua25vd24gSENMSyBQTEwgc2V0dGluZzogJS44eFxuIiwKKwkJCXJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpKTsKKwl9CisKKwlyZXR1cm4gaGNsazsKK30KKworc3RhdGljIHZvaWQgZ2V0X3BjbGtfbDJjbGsoaW50IGhjbGssIGludCBjb3JlX2luZGV4LCBpbnQgKnBjbGssIGludCAqbDJjbGspCit7CisJdTMyIGNmZzsKKworCS8qCisJICogQ29yZSAjMCBQQ0xLL0wyQ0xLIGlzIGNvbmZpZ3VyZWQgYnkgYml0cyBbMTM6OF0sIGNvcmUgIzEKKwkgKiBQQ0xLL0wyQ0xLIGJ5IGJpdHMgWzE5OjE0XS4KKwkgKi8KKwlpZiAoY29yZV9pbmRleCA9PSAwKSB7CisJCWNmZyA9IChyZWFkbChTQU1QTEVfQVRfUkVTRVRfTE9XKSA+PiA4KSAmIDB4M2Y7CisJfSBlbHNlIHsKKwkJY2ZnID0gKHJlYWRsKFNBTVBMRV9BVF9SRVNFVF9MT1cpID4+IDE0KSAmIDB4M2Y7CisJfQorCisJLyoKKwkgKiBCaXRzIFsxMTo4XSAoWzE3OjE0XSBmb3IgY29yZSAjMSkgY29uZmlndXJlIHRoZSBQQ0xLOkhDTEsKKwkgKiByYXRpbyAoMSwgMS41LCAyLCAyLjUsIDMsIDMuNSwgNCwgNC41LCA1LCA1LjUsIDYpLgorCSAqLworCSpwY2xrID0gKCh1NjQpaGNsayAqICgyICsgKGNmZyAmIDB4ZikpKSA+PiAxOworCisJLyoKKwkgKiBCaXRzIFsxMzoxMl0gKFsxOToxOF0gZm9yIGNvcmUgIzEpIGNvbmZpZ3VyZSB0aGUgUENMSzpMMkNMSworCSAqIHJhdGlvICgxLCAyLCAzKS4KKwkgKi8KKwkqbDJjbGsgPSAqcGNsayAvICgoKGNmZyA+PiA0KSAmIDMpICsgMSk7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X3RjbGsodm9pZCkKK3sKKwlpbnQgdGNsazsKKworCS8qCisJICogVENMSyB0aWNrIHJhdGUgaXMgY29uZmlndXJlZCBieSBERVZfQVsyOjBdIHN0cmFwIHBpbnMuCisJICovCisJc3dpdGNoICgocmVhZGwoU0FNUExFX0FUX1JFU0VUX0hJR0gpID4+IDYpICYgNykgeworCWNhc2UgMToKKwkJdGNsayA9IDE2NjY2NjY2NzsKKwkJYnJlYWs7CisJY2FzZSAzOgorCQl0Y2xrID0gMjAwMDAwMDAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwYW5pYygidW5rbm93biBUQ0xLIFBMTCBzZXR0aW5nOiAlLjh4XG4iLAorCQkJcmVhZGwoU0FNUExFX0FUX1JFU0VUX0hJR0gpKTsKKwl9CisKKwlyZXR1cm4gdGNsazsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEkvTyBBZGRyZXNzIE1hcHBpbmcKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBtdjc4eHgwX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwJPSBNVjc4WFgwX0NPUkVfUkVHU19WSVJUX0JBU0UsCisJCS5wZm4JCT0gMCwKKwkJLmxlbmd0aAkJPSBNVjc4WFgwX0NPUkVfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgeworCQkudmlydHVhbAk9IE1WNzhYWDBfUENJRV9JT19WSVJUX0JBU0UoMCksCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApKSwKKwkJLmxlbmd0aAkJPSBNVjc4WFgwX1BDSUVfSU9fU0laRSAqIDgsCisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CisJCS52aXJ0dWFsCT0gTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSwKKwkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UpLAorCQkubGVuZ3RoCQk9IE1WNzhYWDBfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfbWFwX2lvKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBwaHlzOworCisJLyoKKwkgKiBNYXAgdGhlIHJpZ2h0IHNldCBvZiBwZXItY29yZSByZWdpc3RlcnMgZGVwZW5kaW5nIG9uCisJICogd2hpY2ggY29yZSB3ZSBhcmUgcnVubmluZyBvbi4KKwkgKi8KKwlpZiAobXY3OHh4MF9jb3JlX2luZGV4KCkgPT0gMCkgeworCQlwaHlzID0gTVY3OFhYMF9DT1JFMF9SRUdTX1BIWVNfQkFTRTsKKwl9IGVsc2UgeworCQlwaHlzID0gTVY3OFhYMF9DT1JFMV9SRUdTX1BIWVNfQkFTRTsKKwl9CisJbXY3OHh4MF9pb19kZXNjWzBdLnBmbiA9IF9fcGh5c190b19wZm4ocGh5cyk7CisKKwlpb3RhYmxlX2luaXQobXY3OHh4MF9pb19kZXNjLCBBUlJBWV9TSVpFKG12Nzh4eDBfaW9fZGVzYykpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uX2VoY2lfZGF0YSBtdjc4eHgwX2VoY2lfZGF0YSA9IHsKKwkuZHJhbQkJPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyB1NjQgZWhjaV9kbWFtYXNrID0gMHhmZmZmZmZmZlVMOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSTAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2VoY2kwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gVVNCMF9QSFlTX0JBU0UsCisJCS5lbmQJPSBVU0IwX1BIWVNfQkFTRSArIDB4MGZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9VU0JfMCwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX1VTQl8wLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9laGNpMCA9IHsKKwkubmFtZQkJPSAib3Jpb24tZWhjaSIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5kbWFfbWFzawkJPSAmZWhjaV9kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCQkucGxhdGZvcm1fZGF0YQkJPSAmbXY3OHh4MF9laGNpX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2VoY2kwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobXY3OHh4MF9laGNpMF9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9laGNpMF9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2VoY2kwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9laGNpMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IFVTQjFfUEhZU19CQVNFLAorCQkuZW5kCT0gVVNCMV9QSFlTX0JBU0UgKyAweDBmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfVVNCXzEsCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9VU0JfMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZWhjaTEgPSB7CisJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAorCS5pZAkJPSAxLAorCS5kZXYJCT0geworCQkuZG1hX21hc2sJCT0gJmVoY2lfZG1hbWFzaywKKwkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKKwkJLnBsYXRmb3JtX2RhdGEJCT0gJm12Nzh4eDBfZWhjaV9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gbXY3OHh4MF9laGNpMV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG12Nzh4eDBfZWhjaTFfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZWhjaTFfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9laGNpMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFSENJMgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZWhjaTJfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJPSBVU0IyX1BIWVNfQkFTRSwKKwkJLmVuZAk9IFVTQjJfUEhZU19CQVNFICsgMHgwZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9NVjc4WFgwX1VTQl8yLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfVVNCXzIsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2VoY2kyID0geworCS5uYW1lCQk9ICJvcmlvbi1laGNpIiwKKwkuaWQJCT0gMiwKKwkuZGV2CQk9IHsKKwkJLmRtYV9tYXNrCQk9ICZlaGNpX2RtYW1hc2ssCisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJCS5wbGF0Zm9ybV9kYXRhCQk9ICZtdjc4eHgwX2VoY2lfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZWhjaTJfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShtdjc4eHgwX2VoY2kyX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2VoY2kyX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZWhjaTIpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UwMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbXY3OHh4MF9nZTAwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSAwLAorCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMDBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UwMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTAwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UwMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12Nzh4eDBfZ2UwMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMDBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTAwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UwMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9HRTAwX1NVTSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX0dFMDBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTAwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDAsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UwMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2dlMDBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZtdjc4eHgwX2dlMDBfc2hhcmVkOworCW12Nzh4eDBfZ2UwMC5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMDBfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UwMCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHRTAxCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0cnVjdCBtdjY0M3h4X2V0aF9zaGFyZWRfcGxhdGZvcm1fZGF0YSBtdjc4eHgwX2dlMDFfc2hhcmVkX2RhdGEgPSB7CisJLnRfY2xrCQk9IDAsCisJLmRyYW0JCT0gJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UwMV9zaGFyZWRfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAxIGJhc2UiLAorCQkuc3RhcnQJPSBHRTAxX1BIWVNfQkFTRSArIDB4MjAwMCwKKwkJLmVuZAk9IEdFMDFfUEhZU19CQVNFICsgMHgzZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTAxX3NoYXJlZCA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9TSEFSRURfTkFNRSwKKwkuaWQJCT0gMSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmbXY3OHh4MF9nZTAxX3NoYXJlZF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UwMV9zaGFyZWRfcmVzb3VyY2VzLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMDFfcmVzb3VyY2VzW10gPSB7CisJeworCQkubmFtZQk9ICJnZTAxIGlycSIsCisJCS5zdGFydAk9IElSUV9NVjc4WFgwX0dFMDFfU1VNLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfR0UwMV9TVU0sCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMDEgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfTkFNRSwKKwkuaWQJCT0gMSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTAxX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfZ2UwMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSkKK3sKKwlldGhfZGF0YS0+c2hhcmVkID0gJm12Nzh4eDBfZ2UwMV9zaGFyZWQ7CisJZXRoX2RhdGEtPnNoYXJlZF9zbWkgPSAmbXY3OHh4MF9nZTAwX3NoYXJlZDsKKwltdjc4eHgwX2dlMDEuZGV2LnBsYXRmb3JtX2RhdGEgPSBldGhfZGF0YTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTAxX3NoYXJlZCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMDEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR0UxMAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgbXY3OHh4MF9nZTEwX3NoYXJlZF9kYXRhID0geworCS50X2NsawkJPSAwLAorCS5kcmFtCQk9ICZtdjc4eHgwX21idXNfZHJhbV9pbmZvLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX2dlMTBfc2hhcmVkX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMCBiYXNlIiwKKwkJLnN0YXJ0CT0gR0UxMF9QSFlTX0JBU0UgKyAweDIwMDAsCisJCS5lbmQJPSBHRTEwX1BIWVNfQkFTRSArIDB4M2ZmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UxMF9zaGFyZWQgPSB7CisJLm5hbWUJCT0gTVY2NDNYWF9FVEhfU0hBUkVEX05BTUUsCisJLmlkCQk9IDIsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12Nzh4eDBfZ2UxMF9zaGFyZWRfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMTBfc2hhcmVkX3Jlc291cmNlcywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTEwX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAiZ2UxMCBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9HRTEwX1NVTSwKKwkJLmVuZAk9IElSUV9NVjc4WFgwX0dFMTBfU1VNLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXY3OHh4MF9nZTEwID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX05BTUUsCisJLmlkCQk9IDIsCisJLm51bV9yZXNvdXJjZXMJPSAxLAorCS5yZXNvdXJjZQk9IG12Nzh4eDBfZ2UxMF9yZXNvdXJjZXMsCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX2dlMTBfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpCit7CisJZXRoX2RhdGEtPnNoYXJlZCA9ICZtdjc4eHgwX2dlMTBfc2hhcmVkOworCWV0aF9kYXRhLT5zaGFyZWRfc21pID0gJm12Nzh4eDBfZ2UwMF9zaGFyZWQ7CisJbXY3OHh4MF9nZTEwLmRldi5wbGF0Zm9ybV9kYXRhID0gZXRoX2RhdGE7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UxMF9zaGFyZWQpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXY3OHh4MF9nZTEwKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdFMTEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RydWN0IG12NjQzeHhfZXRoX3NoYXJlZF9wbGF0Zm9ybV9kYXRhIG12Nzh4eDBfZ2UxMV9zaGFyZWRfZGF0YSA9IHsKKwkudF9jbGsJCT0gMCwKKwkuZHJhbQkJPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9nZTExX3NoYXJlZF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMTEgYmFzZSIsCisJCS5zdGFydAk9IEdFMTFfUEhZU19CQVNFICsgMHgyMDAwLAorCQkuZW5kCT0gR0UxMV9QSFlTX0JBU0UgKyAweDNmZmYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX2dlMTFfc2hhcmVkID0geworCS5uYW1lCQk9IE1WNjQzWFhfRVRIX1NIQVJFRF9OQU1FLAorCS5pZAkJPSAzLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjc4eHgwX2dlMTFfc2hhcmVkX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCisJLnJlc291cmNlCT0gbXY3OHh4MF9nZTExX3NoYXJlZF9yZXNvdXJjZXMsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG12Nzh4eDBfZ2UxMV9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImdlMTEgaXJxIiwKKwkJLnN0YXJ0CT0gSVJRX01WNzhYWDBfR0UxMV9TVU0sCisJCS5lbmQJPSBJUlFfTVY3OFhYMF9HRTExX1NVTSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfZ2UxMSA9IHsKKwkubmFtZQkJPSBNVjY0M1hYX0VUSF9OQU1FLAorCS5pZAkJPSAzLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSBtdjc4eHgwX2dlMTFfcmVzb3VyY2VzLAorfTsKKwordm9pZCBfX2luaXQgbXY3OHh4MF9nZTExX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKQoreworCWV0aF9kYXRhLT5zaGFyZWQgPSAmbXY3OHh4MF9nZTExX3NoYXJlZDsKKwlldGhfZGF0YS0+c2hhcmVkX3NtaSA9ICZtdjc4eHgwX2dlMDBfc2hhcmVkOworCW12Nzh4eDBfZ2UxMS5kZXYucGxhdGZvcm1fZGF0YSA9IGV0aF9kYXRhOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX2dlMTFfc2hhcmVkKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfZ2UxMSk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXY3OHh4MF9zYXRhX3Jlc291cmNlc1tdID0geworCXsKKwkJLm5hbWUJPSAic2F0YSBiYXNlIiwKKwkJLnN0YXJ0CT0gU0FUQV9QSFlTX0JBU0UsCisJCS5lbmQJPSBTQVRBX1BIWVNfQkFTRSArIDB4NTAwMCAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAic2F0YSBpcnEiLAorCQkuc3RhcnQJPSBJUlFfTVY3OFhYMF9TQVRBLAorCQkuZW5kCT0gSVJRX01WNzhYWDBfU0FUQSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12Nzh4eDBfc2F0YSA9IHsKKwkubmFtZQkJPSAic2F0YV9tdiIsCisJLmlkCQk9IDAsCisJLmRldgkJPSB7CisJCS5jb2hlcmVudF9kbWFfbWFzawk9IDB4ZmZmZmZmZmYsCisJfSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUobXY3OHh4MF9zYXRhX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0gbXY3OHh4MF9zYXRhX3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IG12Nzh4eDBfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSkKK3sKKwlzYXRhX2RhdGEtPmRyYW0gPSAmbXY3OHh4MF9tYnVzX2RyYW1faW5mbzsKKwltdjc4eHgwX3NhdGEuZGV2LnBsYXRmb3JtX2RhdGEgPSBzYXRhX2RhdGE7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtdjc4eHgwX3NhdGEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQwX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDBfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDBfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMCwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQwX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMF9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8wLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMCwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQwID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAwLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQwX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0MF9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQwX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQwX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQxX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDFfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDFfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMSwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8xLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMSwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQxID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAxLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQxX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0MV9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQxX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDEpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQyX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDJfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDJfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMiwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQyX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQyX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMl9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8yLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMiwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQyID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAyLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQyX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0Ml9yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQyX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQyX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDIpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVUFSVDMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBtdjc4eHgwX3VhcnQzX2RhdGFbXSA9IHsKKwl7CisJCS5tYXBiYXNlCT0gVUFSVDNfUEhZU19CQVNFLAorCQkubWVtYmFzZQk9IChjaGFyICopVUFSVDNfVklSVF9CQVNFLAorCQkuaXJxCQk9IElSUV9NVjc4WFgwX1VBUlRfMywKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSAwLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjc4eHgwX3VhcnQzX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQzX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUM19QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX01WNzhYWDBfVUFSVF8zLAorCQkuZW5kCQk9IElSUV9NVjc4WFgwX1VBUlRfMywKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjc4eHgwX3VhcnQzID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSAzLAorCS5kZXYJCQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSBtdjc4eHgwX3VhcnQzX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJCT0gbXY3OHh4MF91YXJ0M19yZXNvdXJjZXMsCisJLm51bV9yZXNvdXJjZXMJCT0gQVJSQVlfU0laRShtdjc4eHgwX3VhcnQzX3Jlc291cmNlcyksCit9OworCit2b2lkIF9faW5pdCBtdjc4eHgwX3VhcnQzX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12Nzh4eDBfdWFydDMpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVGltZSBoYW5kbGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZCBtdjc4eHgwX3RpbWVyX2luaXQodm9pZCkKK3sKKwlvcmlvbl90aW1lX2luaXQoSVJRX01WNzhYWDBfVElNRVJfMSwgZ2V0X3RjbGsoKSk7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgbXY3OHh4MF90aW1lciA9IHsKKwkuaW5pdCA9IG12Nzh4eDBfdGltZXJfaW5pdCwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQgX19pbml0IGlzX2wyX3dyaXRldGhyb3VnaCh2b2lkKQoreworCXJldHVybiAhIShyZWFkbChDUFVfQ09OVFJPTCkgJiBMMl9XUklURVRIUk9VR0gpOworfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX2luaXQodm9pZCkKK3sKKwlpbnQgY29yZV9pbmRleDsKKwlpbnQgaGNsazsKKwlpbnQgcGNsazsKKwlpbnQgbDJjbGs7CisJaW50IHRjbGs7CisKKwljb3JlX2luZGV4ID0gbXY3OHh4MF9jb3JlX2luZGV4KCk7CisJaGNsayA9IGdldF9oY2xrKCk7CisJZ2V0X3BjbGtfbDJjbGsoaGNsaywgY29yZV9pbmRleCwgJnBjbGssICZsMmNsayk7CisJdGNsayA9IGdldF90Y2xrKCk7CisKKwlwcmludGsoS0VSTl9JTkZPICJNVjc4eHgwIGNvcmUgIyVkLCAiLCBjb3JlX2luZGV4KTsKKwlwcmludGsoIlBDTEsgPSAlZE1IeiwgIiwgKHBjbGsgKyA0OTk5OTkpIC8gMTAwMDAwMCk7CisJcHJpbnRrKCJMMiA9ICVkTUh6LCAiLCAobDJjbGsgKyA0OTk5OTkpIC8gMTAwMDAwMCk7CisJcHJpbnRrKCJIQ0xLID0gJWRNSHosICIsIChoY2xrICsgNDk5OTk5KSAvIDEwMDAwMDApOworCXByaW50aygiVENMSyA9ICVkTUh6XG4iLCAodGNsayArIDQ5OTk5OSkgLyAxMDAwMDAwKTsKKworCW12Nzh4eDBfc2V0dXBfY3B1X21idXMoKTsKKworI2lmZGVmIENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMgorCWZlcm9jZW9uX2wyX2luaXQoaXNfbDJfd3JpdGV0aHJvdWdoKCkpOworI2VuZGlmCisKKwltdjc4eHgwX2dlMDBfc2hhcmVkX2RhdGEudF9jbGsgPSB0Y2xrOworCW12Nzh4eDBfZ2UwMV9zaGFyZWRfZGF0YS50X2NsayA9IHRjbGs7CisJbXY3OHh4MF9nZTEwX3NoYXJlZF9kYXRhLnRfY2xrID0gdGNsazsKKwltdjc4eHgwX2dlMTFfc2hhcmVkX2RhdGEudF9jbGsgPSB0Y2xrOworCW12Nzh4eDBfdWFydDBfZGF0YVswXS51YXJ0Y2xrID0gdGNsazsKKwltdjc4eHgwX3VhcnQxX2RhdGFbMF0udWFydGNsayA9IHRjbGs7CisJbXY3OHh4MF91YXJ0Ml9kYXRhWzBdLnVhcnRjbGsgPSB0Y2xrOworCW12Nzh4eDBfdWFydDNfZGF0YVswXS51YXJ0Y2xrID0gdGNsazsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uaCBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGFmNWRlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2NvbW1vbi5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvY29tbW9uLmgKKyAqCisgKiBDb3JlIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVJDSF9NVjc4WFgwX0NPTU1PTl9ICisjZGVmaW5lIF9fQVJDSF9NVjc4WFgwX0NPTU1PTl9ICisKK3N0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhOworc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YTsKKworLyoKKyAqIEJhc2ljIE1WNzh4eDAgaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgorICovCitpbnQgbXY3OHh4MF9jb3JlX2luZGV4KHZvaWQpOwordm9pZCBtdjc4eHgwX21hcF9pbyh2b2lkKTsKK3ZvaWQgbXY3OHh4MF9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX2luaXRfaXJxKHZvaWQpOworCitleHRlcm4gc3RydWN0IG1idXNfZHJhbV90YXJnZXRfaW5mbyBtdjc4eHgwX21idXNfZHJhbV9pbmZvOwordm9pZCBtdjc4eHgwX3NldHVwX2NwdV9tYnVzKHZvaWQpOwordm9pZCBtdjc4eHgwX3NldHVwX3BjaWVfaW9fd2luKGludCB3aW5kb3csIHUzMiBiYXNlLCB1MzIgc2l6ZSwKKwkJCSAgICAgICBpbnQgbWFqLCBpbnQgbWluKTsKK3ZvaWQgbXY3OHh4MF9zZXR1cF9wY2llX21lbV93aW4oaW50IHdpbmRvdywgdTMyIGJhc2UsIHUzMiBzaXplLAorCQkJCWludCBtYWosIGludCBtaW4pOworCit2b2lkIG12Nzh4eDBfZWhjaTBfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF9laGNpMV9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX2VoY2kyX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfZ2UwMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UwMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UxMF9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfZ2UxMV9pbml0KHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhICpldGhfZGF0YSk7Cit2b2lkIG12Nzh4eDBfcGNpZV9pbml0KGludCBpbml0X3BvcnQwLCBpbnQgaW5pdF9wb3J0MSk7Cit2b2lkIG12Nzh4eDBfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSk7Cit2b2lkIG12Nzh4eDBfdWFydDBfaW5pdCh2b2lkKTsKK3ZvaWQgbXY3OHh4MF91YXJ0MV9pbml0KHZvaWQpOwordm9pZCBtdjc4eHgwX3VhcnQyX2luaXQodm9pZCk7Cit2b2lkIG12Nzh4eDBfdWFydDNfaW5pdCh2b2lkKTsKKworZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIgbXY3OHh4MF90aW1lcjsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9kYjc4eDAwLWJwLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOTNkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvZGI3OHgwMC1icC1zZXR1cC5jCisgKgorICogTWFydmVsbCBEQi03OHgwMC1CUCBEZXZlbG9wbWVudCBCb2FyZCBTZXR1cAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX2dlMDBfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGRiNzh4MDBfZ2UwMV9kYXRhID0geworCS5waHlfYWRkcgk9IDksCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI3OHgwMF9nZTEwX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZGI3OHgwMF9nZTExX2RhdGEgPSB7CisJLnBoeV9hZGRyCT0gLTEsCit9OworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBkYjc4eDAwX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgZGI3OHgwMF9pbml0KHZvaWQpCit7CisJLyoKKwkgKiBCYXNpYyBNVjc4eHgwIHNldHVwLiBOZWVkcyB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJbXY3OHh4MF9pbml0KCk7CisKKwkvKgorCSAqIFBhcnRpdGlvbiBvbi1jaGlwIHBlcmlwaGVyYWxzIGJldHdlZW4gdGhlIHR3byBDUFUgY29yZXMuCisJICovCisJaWYgKG12Nzh4eDBfY29yZV9pbmRleCgpID09IDApIHsKKwkJbXY3OHh4MF9laGNpMF9pbml0KCk7CisJCW12Nzh4eDBfZWhjaTFfaW5pdCgpOworCQltdjc4eHgwX2VoY2kyX2luaXQoKTsKKwkJbXY3OHh4MF9nZTAwX2luaXQoJmRiNzh4MDBfZ2UwMF9kYXRhKTsKKwkJbXY3OHh4MF9nZTAxX2luaXQoJmRiNzh4MDBfZ2UwMV9kYXRhKTsKKwkJbXY3OHh4MF9nZTEwX2luaXQoJmRiNzh4MDBfZ2UxMF9kYXRhKTsKKwkJbXY3OHh4MF9nZTExX2luaXQoJmRiNzh4MDBfZ2UxMV9kYXRhKTsKKwkJbXY3OHh4MF9zYXRhX2luaXQoJmRiNzh4MDBfc2F0YV9kYXRhKTsKKwkJbXY3OHh4MF91YXJ0MF9pbml0KCk7CisJCW12Nzh4eDBfdWFydDJfaW5pdCgpOworCX0gZWxzZSB7CisJCW12Nzh4eDBfdWFydDFfaW5pdCgpOworCQltdjc4eHgwX3VhcnQzX2luaXQoKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGRiNzh4MDBfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19kYjc4eDAwX2JwKCkpIHsKKwkJLyoKKwkJICogQXNzaWduIHRoZSB4MTYgUENJZSBzbG90IG9uIHRoZSBib2FyZCB0byBDUFUgY29yZQorCQkgKiAjMCwgYW5kIGxldCBDUFUgY29yZSAjMSBoYXZlIHRoZSBmb3VyIHgxIHNsb3RzLgorCQkgKi8KKwkJaWYgKG12Nzh4eDBfY29yZV9pbmRleCgpID09IDApCisJCQltdjc4eHgwX3BjaWVfaW5pdCgwLCAxKTsKKwkJZWxzZQorCQkJbXY3OHh4MF9wY2llX2luaXQoMSwgMCk7CisJfQorCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoZGI3OHgwMF9wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoREI3OFgwMF9CUCwgIk1hcnZlbGwgREItNzh4MDAtQlAgRGV2ZWxvcG1lbnQgQm9hcmQiKQorCS8qIE1haW50YWluZXI6IExlbm5lcnQgQnV5dGVuaGVrIDxidXl0ZW5oQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBkYjc4eDAwX2luaXQsCisJLm1hcF9pbwkJPSBtdjc4eHgwX21hcF9pbywKKwkuaW5pdF9pcnEJPSBtdjc4eHgwX2luaXRfaXJxLAorCS50aW1lcgkJPSAmbXY3OHh4MF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMgYi9hcmNoL2FybS9tYWNoLW12Nzh4eDAvaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBmNGVlNAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9pcnEuYwpAQCAtMCwwICsxLDIyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1tdjc4eHgwL2lycS5jCisgKgorICogTVY3OHh4MCBJUlEgaGFuZGxpbmcuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdjc4eHgwLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vaXJxLmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisKK3ZvaWQgX19pbml0IG12Nzh4eDBfaW5pdF9pcnEodm9pZCkKK3sKKwlvcmlvbl9pcnFfaW5pdCgwLCAodm9pZCBfX2lvbWVtICopKElSUV9WSVJUX0JBU0UgKyBJUlFfTUFTS19MT1dfT0ZGKSk7CisJb3Jpb25faXJxX2luaXQoMzIsICh2b2lkIF9faW9tZW0gKikoSVJRX1ZJUlRfQkFTRSArIElSUV9NQVNLX0hJR0hfT0ZGKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzhlMTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMKKyAqCisgKiBQQ0llIGZ1bmN0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LW9yaW9uL3BjaWUuaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKworc3RydWN0IHBjaWVfcG9ydCB7CisJdTgJCQltYWo7CisJdTgJCQltaW47CisJdTgJCQlyb290X2J1c19ucjsKKwl2b2lkIF9faW9tZW0JCSpiYXNlOworCXNwaW5sb2NrX3QJCWNvbmZfbG9jazsKKwljaGFyCQkJaW9fc3BhY2VfbmFtZVsxNl07CisJY2hhcgkJCW1lbV9zcGFjZV9uYW1lWzE2XTsKKwlzdHJ1Y3QgcmVzb3VyY2UJCXJlc1syXTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGNpZV9wb3J0IHBjaWVfcG9ydFs4XTsKK3N0YXRpYyBpbnQgbnVtX3BjaWVfcG9ydHM7CitzdGF0aWMgc3RydWN0IHJlc291cmNlIHBjaWVfaW9fc3BhY2U7CitzdGF0aWMgc3RydWN0IHJlc291cmNlIHBjaWVfbWVtX3NwYWNlOworCisKK3N0YXRpYyB2b2lkIF9faW5pdCBtdjc4eHgwX3BjaWVfcHJlaW5pdCh2b2lkKQoreworCWludCBpOworCXUzMiBzaXplX2VhY2g7CisJdTMyIHN0YXJ0OworCWludCB3aW47CisKKwlwY2llX2lvX3NwYWNlLm5hbWUgPSAiUENJZSBJL08gU3BhY2UiOworCXBjaWVfaW9fc3BhY2Uuc3RhcnQgPSBNVjc4WFgwX1BDSUVfSU9fUEhZU19CQVNFKDApOworCXBjaWVfaW9fc3BhY2UuZW5kID0KKwkJTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRSgwKSArIE1WNzhYWDBfUENJRV9JT19TSVpFICogOCAtIDE7CisJcGNpZV9pb19zcGFjZS5mbGFncyA9IElPUkVTT1VSQ0VfSU87CisJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmcGNpZV9pb19zcGFjZSkpCisJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIEkvTyBzcGFjZSIpOworCisJcGNpZV9tZW1fc3BhY2UubmFtZSA9ICJQQ0llIE1FTSBTcGFjZSI7CisJcGNpZV9tZW1fc3BhY2Uuc3RhcnQgPSBNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRTsKKwlwY2llX21lbV9zcGFjZS5lbmQgPQorCQlNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRSArIE1WNzhYWDBfUENJRV9NRU1fU0laRSAtIDE7CisJcGNpZV9tZW1fc3BhY2UuZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKKwlpZiAocmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZwY2llX21lbV9zcGFjZSkpCisJCXBhbmljKCJjYW4ndCBhbGxvY2F0ZSBQQ0llIE1FTSBzcGFjZSIpOworCisJZm9yIChpID0gMDsgaSA8IG51bV9wY2llX3BvcnRzOyBpKyspIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBwY2llX3BvcnQgKyBpOworCisJCXNucHJpbnRmKHBwLT5pb19zcGFjZV9uYW1lLCBzaXplb2YocHAtPmlvX3NwYWNlX25hbWUpLAorCQkJIlBDSWUgJWQuJWQgSS9PIiwgcHAtPm1haiwgcHAtPm1pbik7CisJCXBwLT5pb19zcGFjZV9uYW1lW3NpemVvZihwcC0+aW9fc3BhY2VfbmFtZSkgLSAxXSA9IDA7CisJCXBwLT5yZXNbMF0ubmFtZSA9IHBwLT5pb19zcGFjZV9uYW1lOworCQlwcC0+cmVzWzBdLnN0YXJ0ID0gTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRShpKTsKKwkJcHAtPnJlc1swXS5lbmQgPSBwcC0+cmVzWzBdLnN0YXJ0ICsgTVY3OFhYMF9QQ0lFX0lPX1NJWkUgLSAxOworCQlwcC0+cmVzWzBdLmZsYWdzID0gSU9SRVNPVVJDRV9JTzsKKworCQlzbnByaW50ZihwcC0+bWVtX3NwYWNlX25hbWUsIHNpemVvZihwcC0+bWVtX3NwYWNlX25hbWUpLAorCQkJIlBDSWUgJWQuJWQgTUVNIiwgcHAtPm1haiwgcHAtPm1pbik7CisJCXBwLT5tZW1fc3BhY2VfbmFtZVtzaXplb2YocHAtPm1lbV9zcGFjZV9uYW1lKSAtIDFdID0gMDsKKwkJcHAtPnJlc1sxXS5uYW1lID0gcHAtPm1lbV9zcGFjZV9uYW1lOworCQlwcC0+cmVzWzFdLmZsYWdzID0gSU9SRVNPVVJDRV9NRU07CisJfQorCisJc3dpdGNoIChudW1fcGNpZV9wb3J0cykgeworCWNhc2UgMDoKKwkJc2l6ZV9lYWNoID0gMDsKKwkJYnJlYWs7CisKKwljYXNlIDE6CisJCXNpemVfZWFjaCA9IDB4MzAwMDAwMDA7CisJCWJyZWFrOworCisJY2FzZSAyIC4uLiAzOgorCQlzaXplX2VhY2ggPSAweDEwMDAwMDAwOworCQlicmVhazsKKworCWNhc2UgNCAuLi4gNjoKKwkJc2l6ZV9lYWNoID0gMHgwODAwMDAwMDsKKwkJYnJlYWs7CisKKwljYXNlIDc6CisJCXNpemVfZWFjaCA9IDB4MDQwMDAwMDA7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcGFuaWMoImludmFsaWQgbnVtYmVyIG9mIFBDSWUgcG9ydHMiKTsKKwl9CisKKwlzdGFydCA9IE1WNzhYWDBfUENJRV9NRU1fUEhZU19CQVNFOworCWZvciAoaSA9IDA7IGkgPCBudW1fcGNpZV9wb3J0czsgaSsrKSB7CisJCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gcGNpZV9wb3J0ICsgaTsKKworCQlwcC0+cmVzWzFdLnN0YXJ0ID0gc3RhcnQ7CisJCXBwLT5yZXNbMV0uZW5kID0gc3RhcnQgKyBzaXplX2VhY2ggLSAxOworCQlzdGFydCArPSBzaXplX2VhY2g7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG51bV9wY2llX3BvcnRzOyBpKyspIHsKKwkJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBwY2llX3BvcnQgKyBpOworCisJCWlmIChyZXF1ZXN0X3Jlc291cmNlKCZwY2llX2lvX3NwYWNlLCAmcHAtPnJlc1swXSkpCisJCQlwYW5pYygiY2FuJ3QgYWxsb2NhdGUgUENJZSBJL08gc3ViLXNwYWNlIik7CisKKwkJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJnBjaWVfbWVtX3NwYWNlLCAmcHAtPnJlc1sxXSkpCisJCQlwYW5pYygiY2FuJ3QgYWxsb2NhdGUgUENJZSBNRU0gc3ViLXNwYWNlIik7CisJfQorCisJd2luID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX3BjaWVfcG9ydHM7IGkrKykgeworCQlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IHBjaWVfcG9ydCArIGk7CisKKwkJbXY3OHh4MF9zZXR1cF9wY2llX2lvX3dpbih3aW4rKywgcHAtPnJlc1swXS5zdGFydCwKKwkJCXBwLT5yZXNbMF0uZW5kIC0gcHAtPnJlc1swXS5zdGFydCArIDEsCisJCQlwcC0+bWFqLCBwcC0+bWluKTsKKworCQltdjc4eHgwX3NldHVwX3BjaWVfbWVtX3dpbih3aW4rKywgcHAtPnJlc1sxXS5zdGFydCwKKwkJCXBwLT5yZXNbMV0uZW5kIC0gcHAtPnJlc1sxXS5zdGFydCArIDEsCisJCQlwcC0+bWFqLCBwcC0+bWluKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG12Nzh4eDBfcGNpZV9zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcDsKKworCWlmIChuciA+PSBudW1fcGNpZV9wb3J0cykKKwkJcmV0dXJuIDA7CisKKwlwcCA9ICZwY2llX3BvcnRbbnJdOworCXBwLT5yb290X2J1c19uciA9IHN5cy0+YnVzbnI7CisKKwkvKgorCSAqIEdlbmVyaWMgUENJZSB1bml0IHNldHVwLgorCSAqLworCW9yaW9uX3BjaWVfc2V0X2xvY2FsX2J1c19ucihwcC0+YmFzZSwgc3lzLT5idXNucik7CisJb3Jpb25fcGNpZV9zZXR1cChwcC0+YmFzZSwgJm12Nzh4eDBfbWJ1c19kcmFtX2luZm8pOworCisJc3lzLT5yZXNvdXJjZVswXSA9ICZwcC0+cmVzWzBdOworCXN5cy0+cmVzb3VyY2VbMV0gPSAmcHAtPnJlc1sxXTsKKwlzeXMtPnJlc291cmNlWzJdID0gTlVMTDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgc3RydWN0IHBjaWVfcG9ydCAqYnVzX3RvX3BvcnQoaW50IGJ1cykKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IG51bV9wY2llX3BvcnRzIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJaW50IHJidXMgPSBwY2llX3BvcnRbaV0ucm9vdF9idXNfbnI7CisJCWlmIChyYnVzICE9IC0xICYmIHJidXMgPD0gYnVzKQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIGkgPj0gMCA/IHBjaWVfcG9ydCArIGkgOiBOVUxMOworfQorCitzdGF0aWMgaW50IHBjaWVfdmFsaWRfY29uZmlnKHN0cnVjdCBwY2llX3BvcnQgKnBwLCBpbnQgYnVzLCBpbnQgZGV2KQoreworCS8qCisJICogRG9uJ3QgZ28gb3V0IHdoZW4gdHJ5aW5nIHRvIGFjY2VzcyBub25leGlzdGluZyBkZXZpY2VzCisJICogb24gdGhlIGxvY2FsIGJ1cy4KKwkgKi8KKwlpZiAoYnVzID09IHBwLT5yb290X2J1c19uciAmJiBkZXYgPiAxKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IHBjaWVfcmRfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sIGludCB3aGVyZSwKKwkJCWludCBzaXplLCB1MzIgKnZhbCkKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1c190b19wb3J0KGJ1cy0+bnVtYmVyKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlpZiAocGNpZV92YWxpZF9jb25maWcocHAsIGJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbikpID09IDApIHsKKwkJKnZhbCA9IDB4ZmZmZmZmZmY7CisJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3JkX2NvbmYocHAtPmJhc2UsIGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcGNpZV93cl9jb25mKHN0cnVjdCBwY2lfYnVzICpidXMsIHUzMiBkZXZmbiwKKwkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCit7CisJc3RydWN0IHBjaWVfcG9ydCAqcHAgPSBidXNfdG9fcG9ydChidXMtPm51bWJlcik7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJaWYgKHBjaWVfdmFsaWRfY29uZmlnKHBwLCBidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pKSA9PSAwKQorCQlyZXR1cm4gUENJQklPU19ERVZJQ0VfTk9UX0ZPVU5EOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKwlyZXQgPSBvcmlvbl9wY2llX3dyX2NvbmYocHAtPmJhc2UsIGJ1cywgZGV2Zm4sIHdoZXJlLCBzaXplLCB2YWwpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBwLT5jb25mX2xvY2ssIGZsYWdzKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX29wcyBwY2llX29wcyA9IHsKKwkucmVhZCA9IHBjaWVfcmRfY29uZiwKKwkud3JpdGUgPSBwY2llX3dyX2NvbmYsCit9OworCitzdGF0aWMgdm9pZCBfX2RldmluaXQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJLyoKKwkgKiBQcmV2ZW50IGVudW1lcmF0aW9uIG9mIHJvb3QgY29tcGxleC4KKwkgKi8KKwlpZiAoZGV2LT5idXMtPnBhcmVudCA9PSBOVUxMICYmIGRldi0+ZGV2Zm4gPT0gMCkgeworCQlpbnQgaTsKKworCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKKwkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPSAwOworCQkJZGV2LT5yZXNvdXJjZVtpXS5lbmQgICA9IDA7CisJCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsKKwkJfQorCX0KK30KK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2J1cyBfX2luaXQgKgorbXY3OHh4MF9wY2llX3NjYW5fYnVzKGludCBuciwgc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQoreworCXN0cnVjdCBwY2lfYnVzICpidXM7CisKKwlpZiAobnIgPCBudW1fcGNpZV9wb3J0cykgeworCQlidXMgPSBwY2lfc2Nhbl9idXMoc3lzLT5idXNuciwgJnBjaWVfb3BzLCBzeXMpOworCX0gZWxzZSB7CisJCWJ1cyA9IE5VTEw7CisJCUJVRygpOworCX0KKworCXJldHVybiBidXM7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IG12Nzh4eDBfcGNpZV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlzdHJ1Y3QgcGNpZV9wb3J0ICpwcCA9IGJ1c190b19wb3J0KGRldi0+YnVzLT5udW1iZXIpOworCisJcmV0dXJuIElSUV9NVjc4WFgwX1BDSUVfMDAgKyAocHAtPm1haiA8PCAyKSArIHBwLT5taW47Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIG12Nzh4eDBfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gOCwKKwkucHJlaW5pdAk9IG12Nzh4eDBfcGNpZV9wcmVpbml0LAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBtdjc4eHgwX3BjaWVfc2V0dXAsCisJLnNjYW4JCT0gbXY3OHh4MF9wY2llX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gbXY3OHh4MF9wY2llX21hcF9pcnEsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYWRkX3BjaWVfcG9ydChpbnQgbWFqLCBpbnQgbWluLCB1bnNpZ25lZCBsb25nIGJhc2UpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiTVY3OHh4MCBQQ0llIHBvcnQgJWQuJWQ6ICIsIG1haiwgbWluKTsKKworCWlmIChvcmlvbl9wY2llX2xpbmtfdXAoKHZvaWQgX19pb21lbSAqKWJhc2UpKSB7CisJCXN0cnVjdCBwY2llX3BvcnQgKnBwID0gJnBjaWVfcG9ydFtudW1fcGNpZV9wb3J0cysrXTsKKworCQlwcmludGsoImxpbmsgdXBcbiIpOworCisJCXBwLT5tYWogPSBtYWo7CisJCXBwLT5taW4gPSBtaW47CisJCXBwLT5yb290X2J1c19uciA9IC0xOworCQlwcC0+YmFzZSA9ICh2b2lkIF9faW9tZW0gKiliYXNlOworCQlzcGluX2xvY2tfaW5pdCgmcHAtPmNvbmZfbG9jayk7CisJCW1lbXNldChwcC0+cmVzLCAwLCBzaXplb2YocHAtPnJlcykpOworCX0gZWxzZSB7CisJCXByaW50aygibGluayBkb3duLCBpZ25vcmluZ1xuIik7CisJfQorfQorCit2b2lkIF9faW5pdCBtdjc4eHgwX3BjaWVfaW5pdChpbnQgaW5pdF9wb3J0MCwgaW50IGluaXRfcG9ydDEpCit7CisJaWYgKGluaXRfcG9ydDApIHsKKwkJYWRkX3BjaWVfcG9ydCgwLCAwLCBQQ0lFMDBfVklSVF9CQVNFKTsKKwkJaWYgKCFvcmlvbl9wY2llX3g0X21vZGUoKHZvaWQgX19pb21lbSAqKVBDSUUwMF9WSVJUX0JBU0UpKSB7CisJCQlhZGRfcGNpZV9wb3J0KDAsIDEsIFBDSUUwMV9WSVJUX0JBU0UpOworCQkJYWRkX3BjaWVfcG9ydCgwLCAyLCBQQ0lFMDJfVklSVF9CQVNFKTsKKwkJCWFkZF9wY2llX3BvcnQoMCwgMywgUENJRTAzX1ZJUlRfQkFTRSk7CisJCX0KKwl9CisKKwlpZiAoaW5pdF9wb3J0MSkgeworCQlhZGRfcGNpZV9wb3J0KDEsIDAsIFBDSUUxMF9WSVJUX0JBU0UpOworCQlpZiAoIW9yaW9uX3BjaWVfeDRfbW9kZSgodm9pZCBfX2lvbWVtICopUENJRTEwX1ZJUlRfQkFTRSkpIHsKKwkJCWFkZF9wY2llX3BvcnQoMSwgMSwgUENJRTExX1ZJUlRfQkFTRSk7CisJCQlhZGRfcGNpZV9wb3J0KDEsIDIsIFBDSUUxMl9WSVJUX0JBU0UpOworCQkJYWRkX3BjaWVfcG9ydCgxLCAzLCBQQ0lFMTNfVklSVF9CQVNFKTsKKwkJfQorCX0KKworCXBjaV9jb21tb25faW5pdCgmbXY3OHh4MF9wY2kpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtbXgyL0tjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWVhYTk3YwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL0tjb25maWcKQEAgLTAsMCArMSwzOSBAQAorY29tbWVudCAiTVgyIGZhbWlseSBDUFUgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEFSQ0hfTVgyCisKK2NvbmZpZyBNQUNIX01YMjcKKwlib29sICJpLk1YMjcgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIEFSQ0hfTVgyCisJaGVscAorCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSdzIE1YMiBiYXNlZCBpLk1YMjcgcHJvY2Vzc29yLgorCitjb21tZW50ICJNWDIgUGxhdGZvcm1zIgorCWRlcGVuZHMgb24gQVJDSF9NWDIKKworY29uZmlnIE1BQ0hfTVgyN0FEUworCWJvb2wgIk1YMjdBRFMgcGxhdGZvcm0iCisJZGVwZW5kcyBvbiBNQUNIX01YMjcKKwloZWxwCisJICBJbmNsdWRlIHN1cHBvcnQgZm9yIE1YMjdBRFMgcGxhdGZvcm0uIFRoaXMgaW5jbHVkZXMgc3BlY2lmaWMKKwkgIGNvbmZpZ3VyYXRpb25zIGZvciB0aGUgYm9hcmQgYW5kIGl0cyBwZXJpcGhlcmFscy4KKworY29uZmlnIE1BQ0hfUENNMDM4CisJYm9vbCAiUGh5dGVjIHBoeUNPUkUtaS5NWDI3IENQVSBtb2R1bGUgKHBjbTAzOCkiCisJZGVwZW5kcyBvbiBNQUNIX01YMjcKKwloZWxwCisJICBJbmNsdWRlIHN1cHBvcnQgZm9yIHBoeUNPUkUtaS5NWDI3IChha2EgcGNtMDM4KSBwbGF0Zm9ybS4gVGhpcworCSAgaW5jbHVkZXMgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBtb2R1bGUgYW5kIGl0cyBwZXJpcGhlcmFscy4KKworY2hvaWNlCisJcHJvbXB0ICJCYXNlYm9hcmQiCisJZGVwZW5kcyBvbiBNQUNIX1BDTTAzOAorCWRlZmF1bHQgTUFDSF9QQ005NzBfQkFTRUJPQVJECisKK2NvbmZpZyBNQUNIX1BDTTk3MF9CQVNFQk9BUkQKKwlwcm9tcHQgIlBIWVRFQyBQQ005NzAgZGV2ZWxvcG1lbnQgYm9hcmQiCisJYm9vbAorCWhlbHAKKwkgIFRoaXMgYWRkcyBib2FyZCBzcGVjaWZpYyBkZXZpY2VzIHRoYXQgY2FuIGJlIGZvdW5kIG9uIFBoeXRlYydzCisJICBQQ005NzAgZXZhbHVhdGlvbiBib2FyZC4KKworZW5kY2hvaWNlCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MmQ4NjAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9NYWtlZmlsZQpAQCAtMCwwICsxLDE0IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgbGludXgga2VybmVsLgorIworCisjIE9iamVjdCBmaWxlIGxpc3RzLgorCitvYmoteQk6PSAgc3lzdGVtLm8gZ2VuZXJpYy5vIGRldmljZXMubyBzZXJpYWwubworCitvYmotJChDT05GSUdfTUFDSF9NWDI3KSArPSBjcHVfaW14Mjcubworb2JqLSQoQ09ORklHX01BQ0hfTVgyNykgKz0gY2xvY2tfaW14MjcubworCitvYmotJChDT05GSUdfTUFDSF9NWDI3QURTKSArPSBteDI3YWRzLm8KK29iai0kKENPTkZJR19NQUNIX1BDTTAzOCkgKz0gcGNtMDM4Lm8KK29iai0kKENPTkZJR19NQUNIX1BDTTk3MF9CQVNFQk9BUkQpICs9IHBjbTk3MC1iYXNlYm9hcmQubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvTWFrZWZpbGUuYm9vdCBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlLmJvb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk2ODMxZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL01ha2VmaWxlLmJvb3QKQEAgLTAsMCArMSwzIEBACisgICB6cmVsYWRkci15CTo9IDB4QTAwMDgwMDAKK3BhcmFtc19waHlzLXkJOj0gMHhBMDAwMDEwMAoraW5pdHJkX3BoeXMteQk6PSAweEEwODAwMDAwCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jbG9ja19pbXgyNy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvY2xvY2tfaW14MjcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYTI5ZWYyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvY2xvY2tfaW14MjcuYwpAQCAtMCwwICsxLDE2MjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisKKyNpbmNsdWRlICJjcm1fcmVncy5oIgorCitzdGF0aWMgc3RydWN0IGNsayBja2lsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1wbGxfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgbXBsbF9tYWluX2Nsa1tdOworc3RhdGljIHN0cnVjdCBjbGsgc3BsbF9jbGs7CisKK3N0YXRpYyBpbnQgX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgfD0gMSA8PCBjbGstPmVuYWJsZV9zaGlmdDsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChjbGstPmVuYWJsZV9yZWcpOworCXJlZyAmPSB+KDEgPDwgY2xrLT5lbmFibGVfc2hpZnQpOworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19zcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fQ1NDUik7CisJcmVnIHw9IENDTV9DU0NSX1NQRU47CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX0NTQ1IpOworCisJd2hpbGUgKChfX3Jhd19yZWFkbChDQ01fU1BDVEwxKSAmIENDTV9TUENUTDFfTEYpID09IDApCisJCTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NwbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fQ1NDUik7CisJcmVnICY9IH5DQ01fQ1NDUl9TUEVOOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9DU0NSKTsKK30KKworc3RhdGljIHZvaWQgX2Nsa19wY2NyMDFfZW5hYmxlKHVuc2lnbmVkIGxvbmcgbWFzazAsIHVuc2lnbmVkIGxvbmcgbWFzazEpCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyB8PSBtYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgfD0gbWFzazE7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKKworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IwMV9kaXNhYmxlKHVuc2lnbmVkIGxvbmcgbWFzazAsIHVuc2lnbmVkIGxvbmcgbWFzazEpCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyAmPSB+bWFzazA7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IwKTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnICY9IH5tYXNrMTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IxMF9lbmFibGUodW5zaWduZWQgbG9uZyBtYXNrMSwgdW5zaWduZWQgbG9uZyBtYXNrMCkKK3sKKwl1bnNpZ25lZCBsb25nIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMSk7CisJcmVnIHw9IG1hc2sxOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0NSMSk7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjApOworCXJlZyB8PSBtYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3BjY3IxMF9kaXNhYmxlKHVuc2lnbmVkIGxvbmcgbWFzazEsIHVuc2lnbmVkIGxvbmcgbWFzazApCit7CisJdW5zaWduZWQgbG9uZyByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENDUjEpOworCXJlZyAmPSB+bWFzazE7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDQ1IxKTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0NSMCk7CisJcmVnICY9IH5tYXNrMDsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjApOworfQorCitzdGF0aWMgaW50IF9jbGtfZG1hX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9ETUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRE1BX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfZG1hX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX0RNQV9NQVNLLCBDQ01fUENDUjFfSENMS19ETUFfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19ydGljX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZW5hYmxlKENDTV9QQ0NSMF9SVElDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1JUSUNfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19ydGljX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2Rpc2FibGUoQ0NNX1BDQ1IwX1JUSUNfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfUlRJQ19NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX2VtbWFfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX0VNTUFfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2VtbWFfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfRU1NQV9NQVNLLCBDQ01fUENDUjFfSENMS19FTU1BX01BU0spOworfQorCitzdGF0aWMgaW50IF9jbGtfc2xjZGNfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX1NMQ0RDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NMQ0RDX01BU0spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfc2xjZGNfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfU0xDRENfTUFTSywgQ0NNX1BDQ1IxX0hDTEtfU0xDRENfTUFTSyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19mZWNfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IwMV9lbmFibGUoQ0NNX1BDQ1IwX0ZFQ19NQVNLLCBDQ01fUENDUjFfSENMS19GRUNfTUFTSyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19mZWNfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfRkVDX01BU0ssIENDTV9QQ0NSMV9IQ0xLX0ZFQ19NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX3ZwdV9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgfD0gQ0NNX1BDQ1IxX1ZQVV9CQVVEX01BU0sgfCBDQ01fUENDUjFfSENMS19WUFVfTUFTSzsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfdnB1X2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDQ1IxKTsKKwlyZWcgJj0gfihDQ01fUENDUjFfVlBVX0JBVURfTUFTSyB8IENDTV9QQ0NSMV9IQ0xLX1ZQVV9NQVNLKTsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENDUjEpOworfQorCitzdGF0aWMgaW50IF9jbGtfc2FoYXJhMl9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCV9jbGtfcGNjcjAxX2VuYWJsZShDQ01fUENDUjBfU0FIQVJBX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NhaGFyYTJfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMDFfZGlzYWJsZShDQ01fUENDUjBfU0FIQVJBX01BU0ssIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9NQVNLKTsKK30KKworc3RhdGljIGludCBfY2xrX21zdGljazFfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlfY2xrX3BjY3IxMF9lbmFibGUoQ0NNX1BDQ1IxX01TSENfQkFVRF9NQVNLLCBDQ01fUENDUjBfTVNIQ19NQVNLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX21zdGljazFfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJX2Nsa19wY2NyMTBfZGlzYWJsZShDQ01fUENDUjFfTVNIQ19CQVVEX01BU0ssIENDTV9QQ0NSMF9NU0hDX01BU0spOworfQorCisjZGVmaW5lIENTQ1IoKSAoX19yYXdfcmVhZGwoQ0NNX0NTQ1IpKQorI2RlZmluZSBQQ0RSMCgpIChfX3Jhd19yZWFkbChDQ01fUENEUjApKQorI2RlZmluZSBQQ0RSMSgpIChfX3Jhd19yZWFkbChDQ01fUENEUjEpKQorCitzdGF0aWMgaW50IF9jbGtfY3B1X3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJaW50IGNzY3IgPSBDU0NSKCk7CisKKwlpZiAoY2xrLT5wYXJlbnQgPT0gcGFyZW50KQorCQlyZXR1cm4gMDsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCWlmIChwYXJlbnQgPT0gJm1wbGxfbWFpbl9jbGtbMF0pIHsKKwkJCWNzY3IgfD0gQ0NNX0NTQ1JfQVJNX1NSQzsKKwkJfSBlbHNlIHsKKwkJCWlmIChwYXJlbnQgPT0gJm1wbGxfbWFpbl9jbGtbMV0pCisJCQkJY3NjciAmPSB+Q0NNX0NTQ1JfQVJNX1NSQzsKKwkJCWVsc2UKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlfX3Jhd193cml0ZWwoY3NjciwgQ0NNX0NTQ1IpOworCX0gZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNsay0+cGFyZW50ID0gcGFyZW50OworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NwdV9yb3VuZF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCWludCBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAocGFyZW50X3JhdGUgJSByYXRlKQorCQlkaXYrKzsKKworCWlmIChkaXYgPiA0KQorCQlkaXYgPSA0OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2OworfQorCitzdGF0aWMgaW50IF9jbGtfY3B1X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXVuc2lnbmVkIGludCBkaXY7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnRfcmF0ZSAvIHJhdGU7CisKKwlpZiAoZGl2ID4gNCB8fCBkaXYgPCAxIHx8ICgocGFyZW50X3JhdGUgLyBkaXYpICE9IHJhdGUpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpdi0tOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX0NTQ1IpOworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXJlZyAmPSB+Q0NNX0NTQ1JfQVJNX01BU0s7CisJCXJlZyB8PSBkaXYgPDwgQ0NNX0NTQ1JfQVJNX09GRlNFVDsKKwkJcmVnICY9IH4weDA2OworCQlfX3Jhd193cml0ZWwocmVnIHwgMHg4MDAwMDAwMCwgQ0NNX0NTQ1IpOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FudCBzZXQgQ1BVIGZyZXF1ZW5jeSFcbiIpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3BlcmNsa3hfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssCisJCQkJCSAgICAgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAocGFyZW50X3JhdGUgJSByYXRlKQorCQlkaXYrKzsKKworCWlmIChkaXYgPiA2NCkKKwkJZGl2ID0gNjQ7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19wZXJjbGt4X3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWc7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJaWYgKGNsay0+aWQgPCAwIHx8IGNsay0+aWQgPiAzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpdiA9IHBhcmVudF9yYXRlIC8gcmF0ZTsKKwlpZiAoZGl2ID4gNjQgfHwgZGl2IDwgMSB8fCAoKHBhcmVudF9yYXRlIC8gZGl2KSAhPSByYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZGl2LS07CisKKwlyZWcgPQorCSAgICBfX3Jhd19yZWFkbChDQ01fUENEUjEpICYgfihDQ01fUENEUjFfUEVSRElWMV9NQVNLIDw8CisJCQkJICAgICAgIChjbGstPmlkIDw8IDMpKTsKKwlyZWcgfD0gZGl2IDw8IChjbGstPmlkIDw8IDMpOworCV9fcmF3X3dyaXRlbChyZWcsIENDTV9QQ0RSMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa191c2JfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVzYl9wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXVzYl9wZGYgPSAoQ1NDUigpICYgQ0NNX0NTQ1JfVVNCX01BU0spID4+IENDTV9DU0NSX1VTQl9PRkZTRVQ7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyAodXNiX3BkZiArIDFVKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kxX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBzc2kxX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJc3NpMV9wZGYgPSAoUENEUjAoKSAmIENDTV9QQ0RSMF9TU0kxQkFVRERJVl9NQVNLKSA+PgorCQkJCQlDQ01fUENEUjBfU1NJMUJBVURESVZfT0ZGU0VUOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCXNzaTFfcGRmICs9IDQ7CisJZWxzZQorCQlzc2kxX3BkZiA9IChzc2kxX3BkZiA8IDIpID8gMTI0VUwgOiBzc2kxX3BkZjsKKworCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIHNzaTFfcGRmOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX3NzaTJfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTJfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlzc2kyX3BkZiA9IChQQ0RSMCgpICYgQ0NNX1BDRFIwX1NTSTJCQVVERElWX01BU0spID4+CisJICAgIENDTV9QQ0RSMF9TU0kyQkFVRERJVl9PRkZTRVQ7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkKKwkJc3NpMl9wZGYgKz0gNDsKKwllbHNlCisJCXNzaTJfcGRmID0gKHNzaTJfcGRmIDwgMikgPyAxMjRVTCA6IHNzaTJfcGRmOworCisJcmV0dXJuIDJVTCAqIHBhcmVudF9yYXRlIC8gc3NpMl9wZGY7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfbmZjX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBuZmNfcGRmOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlpZiAobXgyN19yZXZpc2lvbigpID49IENISVBfUkVWXzJfMCkgeworCQluZmNfcGRmID0KKwkJICAgIChQQ0RSMCgpICYgQ0NNX1BDRFIwX05GQ0RJVjJfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9ORkNESVYyX09GRlNFVDsKKwl9IGVsc2UgeworCQluZmNfcGRmID0KKwkJICAgIChQQ0RSMCgpICYgQ0NNX1BDRFIwX05GQ0RJVl9NQVNLKSA+PgorCQkgICAgQ0NNX1BDRFIwX05GQ0RJVl9PRkZTRVQ7CisJfQorCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gKG5mY19wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa192cHVfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHZwdV9wZGY7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXZwdV9wZGYgPQorCQkgICAgKFBDRFIwKCkgJiBDQ01fUENEUjBfVlBVRElWMl9NQVNLKSA+PgorCQkgICAgQ0NNX1BDRFIwX1ZQVURJVjJfT0ZGU0VUOworCQl2cHVfcGRmICs9IDQ7CisJfSBlbHNlIHsKKwkJdnB1X3BkZiA9CisJCSAgICAoUENEUjAoKSAmIENDTV9QQ0RSMF9WUFVESVZfTUFTSykgPj4KKwkJICAgIENDTV9QQ0RSMF9WUFVESVZfT0ZGU0VUOworCQl2cHVfcGRmID0gKHZwdV9wZGYgPCAyKSA/IDEyNCA6IHZwdV9wZGY7CisJfQorCXJldHVybiAyVUwgKiBwYXJlbnRfcmF0ZSAvIHZwdV9wZGY7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGFyZW50X3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJcmV0dXJuIGNsay0+cGFyZW50LT5yb3VuZF9yYXRlKGNsay0+cGFyZW50LCByYXRlKTsKK30KKworc3RhdGljIGludCBfY2xrX3BhcmVudF9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlyZXR1cm4gY2xrLT5wYXJlbnQtPnNldF9yYXRlKGNsay0+cGFyZW50LCByYXRlKTsKK30KKworLyogaW4gSHogKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGV4dGVybmFsX2hpZ2hfcmVmZXJlbmNlID0gMjYwMDAwMDA7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9oaWdoX3JlZmVyZW5jZV9jbG9ja19yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gZXh0ZXJuYWxfaGlnaF9yZWZlcmVuY2U7Cit9CisKKy8qCisgKiB0aGUgaGlnaCBmcmVxdWVuY3kgZXh0ZXJuYWwgY2xvY2sgcmVmZXJlbmNlCisgKiBEZWZhdWx0IGNhc2UgaXMgMjZNSHouIENvdWxkIGJlIGNoYW5nZWQgYXQgcnVudGltZQorICogd2l0aCBhIGNhbGwgdG8gY2hhbmdlX2V4dGVybmFsX2hpZ2hfcmVmZXJlbmNlKCkKKyAqLworc3RhdGljIHN0cnVjdCBjbGsgY2tpaF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpaCIsCisJLmdldF9yYXRlID0gZ2V0X2hpZ2hfcmVmZXJlbmNlX2Nsb2NrX3JhdGUsCit9OworCisvKiBpbiBIeiAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgZXh0ZXJuYWxfbG93X3JlZmVyZW5jZSA9IDMyNzY4OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfbG93X3JlZmVyZW5jZV9jbG9ja19yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlyZXR1cm4gZXh0ZXJuYWxfbG93X3JlZmVyZW5jZTsKK30KKworLyoKKyAqIHRoZSBsb3cgZnJlcXVlbmN5IGV4dGVybmFsIGNsb2NrIHJlZmVyZW5jZQorICogRGVmYXVsdCBjYXNlIGlzIDMyLjc2OGtIeiBDb3VsZCBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUKKyAqIHdpdGggYSBjYWxsIHRvIGNoYW5nZV9leHRlcm5hbF9sb3dfcmVmZXJlbmNlKCkKKyAqLworc3RhdGljIHN0cnVjdCBjbGsgY2tpbF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpbCIsCisJLmdldF9yYXRlID0gZ2V0X2xvd19yZWZlcmVuY2VfY2xvY2tfcmF0ZSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9tcGxsX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcmVmX2NsazsKKwl1bnNpZ25lZCBsb25nIG1maSA9IDAsIG1mbiA9IDAsIG1mZCA9IDAsIHBkZiA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIHRlbXA7CisKKwlyZWZfY2xrID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9NUENUTDApOworCXBkZiA9IChyZWcgJiBDQ01fTVBDVEwwX1BEX01BU0spID4+IENDTV9NUENUTDBfUERfT0ZGU0VUOworCW1mZCA9IChyZWcgJiBDQ01fTVBDVEwwX01GRF9NQVNLKSA+PiBDQ01fTVBDVEwwX01GRF9PRkZTRVQ7CisJbWZpID0gKHJlZyAmIENDTV9NUENUTDBfTUZJX01BU0spID4+IENDTV9NUENUTDBfTUZJX09GRlNFVDsKKwltZm4gPSAocmVnICYgQ0NNX01QQ1RMMF9NRk5fTUFTSykgPj4gQ0NNX01QQ1RMMF9NRk5fT0ZGU0VUOworCisJbWZpID0gKG1maSA8PSA1KSA/IDUgOiBtZmk7CisJdGVtcCA9IDJMTCAqIHJlZl9jbGsgKiBtZm47CisJZG9fZGl2KHRlbXAsIG1mZCArIDEpOworCXRlbXAgPSAyTEwgKiByZWZfY2xrICogbWZpICsgdGVtcDsKKwlkb19kaXYodGVtcCwgcGRmICsgMSk7CisKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpdGVtcDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgbXBsbF9jbGsgPSB7CisJLm5hbWUgPSAibXBsbCIsCisJLnBhcmVudCA9ICZja2loX2NsaywKKwkuZ2V0X3JhdGUgPSBnZXRfbXBsbF9jbGssCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX21wbGxfbWFpbl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZTsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCS8qIGkuTVgyNyBUTzI6CisJICogY2xrLT5pZCA9PSAwOiBhcm0gY2xvY2sgc291cmNlIHBhdGggMSB3aGljaCBpcyBmcm9tIDIqTVBMTC9ESVZfMgorCSAqIGNsay0+aWQgPT0gMTogYXJtIGNsb2NrIHNvdXJjZSBwYXRoIDIgd2hpY2ggaXMgZnJvbSAyKk1QTEwvRElWXzMKKwkgKi8KKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wICYmIGNsay0+aWQgPT0gMSkKKwkJcmV0dXJuIDJVTCAqIHBhcmVudF9yYXRlIC8gM1VMOworCisJcmV0dXJuIHBhcmVudF9yYXRlOworfQorCitzdGF0aWMgc3RydWN0IGNsayBtcGxsX21haW5fY2xrW10gPSB7CisJeworCQkvKiBGb3IgaS5NWDI3IFRPMiwgaXQgaXMgdGhlIE1QTEwgcGF0aCAxIG9mIEFSTSBjb3JlCisJCSAqIEl0IHByb3ZpZGUgdGhlIGNsb2NrIHNvdXJjZSB3aG9zZSByYXRlIGlzIHNhbWUgYXMgTVBMTAorCQkgKi8KKwkJLm5hbWUgPSAibXBsbF9tYWluIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZtcGxsX2NsaywKKwkJLmdldF9yYXRlID0gX2Nsa19tcGxsX21haW5fZ2V0X3JhdGUKKwl9LCB7CisJCS8qIEZvciBpLk1YMjcgVE8yLCBpdCBpcyB0aGUgTVBMTCBwYXRoIDIgb2YgQVJNIGNvcmUKKwkJICogSXQgcHJvdmlkZSB0aGUgY2xvY2sgc291cmNlIHdob3NlIHJhdGUgaXMgc2FtZSBNUExMICogMi8zCisJCSAqLworCQkubmFtZSA9ICJtcGxsX21haW4iLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJm1wbGxfY2xrLAorCQkuZ2V0X3JhdGUgPSBfY2xrX21wbGxfbWFpbl9nZXRfcmF0ZQorCX0KK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9zcGxsX2NsayhzdHJ1Y3QgY2xrICpjbGspCit7CisJdWludDMyX3QgcmVnOworCXVuc2lnbmVkIGxvbmcgcmVmX2NsazsKKwl1bnNpZ25lZCBsb25nIG1maSA9IDAsIG1mbiA9IDAsIG1mZCA9IDAsIHBkZiA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIHRlbXA7CisKKwlyZWZfY2xrID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9TUENUTDApOworCS8qVE9ETzogVGhpcyBpcyBUTzIgQnVnICovCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCV9fcmF3X3dyaXRlbChyZWcsIENDTV9TUENUTDApOworCisJcGRmID0gKHJlZyAmIENDTV9TUENUTDBfUERfTUFTSykgPj4gQ0NNX1NQQ1RMMF9QRF9PRkZTRVQ7CisJbWZkID0gKHJlZyAmIENDTV9TUENUTDBfTUZEX01BU0spID4+IENDTV9TUENUTDBfTUZEX09GRlNFVDsKKwltZmkgPSAocmVnICYgQ0NNX1NQQ1RMMF9NRklfTUFTSykgPj4gQ0NNX1NQQ1RMMF9NRklfT0ZGU0VUOworCW1mbiA9IChyZWcgJiBDQ01fU1BDVEwwX01GTl9NQVNLKSA+PiBDQ01fU1BDVEwwX01GTl9PRkZTRVQ7CisKKwltZmkgPSAobWZpIDw9IDUpID8gNSA6IG1maTsKKwl0ZW1wID0gMkxMICogcmVmX2NsayAqIG1mbjsKKwlkb19kaXYodGVtcCwgbWZkICsgMSk7CisJdGVtcCA9IDJMTCAqIHJlZl9jbGsgKiBtZmkgKyB0ZW1wOworCWRvX2Rpdih0ZW1wLCBwZGYgKyAxKTsKKworCXJldHVybiAodW5zaWduZWQgbG9uZyl0ZW1wOworfQorCitzdGF0aWMgc3RydWN0IGNsayBzcGxsX2NsayA9IHsKKwkubmFtZSA9ICJzcGxsIiwKKwkucGFyZW50ID0gJmNraWhfY2xrLAorCS5nZXRfcmF0ZSA9IGdldF9zcGxsX2NsaywKKwkuZW5hYmxlID0gX2Nsa19zcGxsX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfc3BsbF9kaXNhYmxlLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2NwdV9jbGsoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiBkaXY7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCWRpdiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9BUk1fTUFTSykgPj4gQ0NNX0NTQ1JfQVJNX09GRlNFVDsKKwllbHNlCisJCWRpdiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9QUkVTQ19NQVNLKSA+PiBDQ01fQ1NDUl9QUkVTQ19PRkZTRVQ7CisKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlyZXR1cm4gcmF0ZSAvIChkaXYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY3B1X2NsayA9IHsKKwkubmFtZSA9ICJjcHVfY2xrIiwKKwkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJLnNldF9wYXJlbnQgPSBfY2xrX2NwdV9zZXRfcGFyZW50LAorCS5yb3VuZF9yYXRlID0gX2Nsa19jcHVfcm91bmRfcmF0ZSwKKwkuZ2V0X3JhdGUgPSBnZXRfY3B1X2NsaywKKwkuc2V0X3JhdGUgPSBfY2xrX2NwdV9zZXRfcmF0ZSwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9haGJfY2xrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisJdW5zaWduZWQgbG9uZyBiY2xrX3BkZjsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKQorCQliY2xrX3BkZiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9BSEJfTUFTSykKKwkJCQkJPj4gQ0NNX0NTQ1JfQUhCX09GRlNFVDsKKwllbHNlCisJCWJjbGtfcGRmID0gKENTQ1IoKSAmIENDTV9DU0NSX0JDTEtfTUFTSykKKwkJCQkJPj4gQ0NNX0NTQ1JfQkNMS19PRkZTRVQ7CisKKwlyYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlyZXR1cm4gcmF0ZSAvIChiY2xrX3BkZiArIDEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBhaGJfY2xrID0geworCS5uYW1lID0gImFoYl9jbGsiLAorCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkuZ2V0X3JhdGUgPSBnZXRfYWhiX2NsaywKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9pcGdfY2xrKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHJhdGU7CisJdW5zaWduZWQgbG9uZyBpcGdfcGRmOworCisJaWYgKG14MjdfcmV2aXNpb24oKSA+PSBDSElQX1JFVl8yXzApCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCWVsc2UKKwkJaXBnX3BkZiA9IChDU0NSKCkgJiBDQ01fQ1NDUl9JUERJVikgPj4gQ0NNX0NTQ1JfSVBESVZfT0ZGU0VUOworCisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJcmV0dXJuIHJhdGUgLyAoaXBnX3BkZiArIDEpOworfQorCitzdGF0aWMgc3RydWN0IGNsayBpcGdfY2xrID0geworCS5uYW1lID0gImlwZ19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZ2V0X3JhdGUgPSBnZXRfaXBnX2NsaywKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGVyY2xreF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcGVyY2xrX3BkZjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJaWYgKGNsay0+aWQgPCAwIHx8IGNsay0+aWQgPiAzKQorCQlyZXR1cm4gMDsKKworCXBlcmNsa19wZGYgPSAoUENEUjEoKSA+PiAoY2xrLT5pZCA8PCAzKSkgJiBDQ01fUENEUjFfUEVSRElWMV9NQVNLOworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gKHBlcmNsa19wZGYgKyAxKTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgcGVyX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAicGVyX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19wZXJjbGt4X3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9QRVJDTEsxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJwZXJfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkuZ2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1BFUkNMSzJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInBlcl9jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJm1wbGxfbWFpbl9jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wZXJjbGt4X3JvdW5kX3JhdGUsCisJCS5zZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9zZXRfcmF0ZSwKKwkJLmdldF9yYXRlID0gX2Nsa19wZXJjbGt4X3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9QRVJDTEszX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJwZXJfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkucm91bmRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yb3VuZF9yYXRlLAorCQkuc2V0X3JhdGUgPSBfY2xrX3BlcmNsa3hfc2V0X3JhdGUsCisJCS5nZXRfcmF0ZSA9IF9jbGtfcGVyY2xreF9yZWNhbGMsCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfUEVSQ0xLNF9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSAwLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDFfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0Ml9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0M19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIHVhcnQ0X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAidWFydF9jbGsiLAorCQkuaWQgPSAzLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmdWFydDRfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAidWFydF9pcGdfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VBUlQ0X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0cnVjdCBjbGsgdWFydDVfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1YXJ0X2NsayIsCisJCS5pZCA9IDQsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZ1YXJ0NV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJ1YXJ0X2lwZ19jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfVUFSVDVfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RydWN0IGNsayB1YXJ0Nl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInVhcnRfY2xrIiwKKwkJLmlkID0gNSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnVhcnQ2X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInVhcnRfaXBnX2NsayIsCisJCS5pZCA9IDUsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9VQVJUNl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDFfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0Ml9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0Ml9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQyX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDNfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDNfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSAyLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncHQ0X2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiZ3B0X2NsayIsCisJCS5pZCA9IDMsCisJCS5wYXJlbnQgPSAmcGVyX2Nsa1swXSwKKwkJLnNlY29uZGFyeSA9ICZncHQ0X2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImdwdF9pcGdfY2xrIiwKKwkJLmlkID0gMywKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQVDRfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZ3B0NV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImdwdF9jbGsiLAorCQkuaWQgPSA0LAorCQkucGFyZW50ID0gJnBlcl9jbGtbMF0sCisJCS5zZWNvbmRhcnkgPSAmZ3B0NV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJncHRfaXBnX2NsayIsCisJCS5pZCA9IDQsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9HUFQ1X09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdDZfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJncHRfY2xrIiwKKwkJLmlkID0gNSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJmdwdDZfY2xrWzFdLAorCX0sIHsKKwkJLm5hbWUgPSAiZ3B0X2lwZ19jbGsiLAorCQkuaWQgPSA1LAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfR1BUNl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBwd21fY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJwd21fY2xrIiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzBdLAorCQkuc2Vjb25kYXJ5ID0gJnB3bV9jbGtbMV0sCisJfSwgeworCQkubmFtZSA9ICJwd21fY2xrIiwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1BXTV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjMV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjMl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMyX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDMl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjM19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gInNkaGNfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNkaGMzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gInNkaGNfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9TREhDM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpMV9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkxX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJMV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpMl9jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkyX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDEsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJMl9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpM19jbGtbXSA9IHsKKwl7CisJCS5uYW1lID0gImNzcGlfY2xrIiwKKwkJLmlkID0gMiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJmNzcGkzX2Nsa1sxXSwKKwl9LCB7CisJCS5uYW1lID0gImNzcGlfaXBnX2NsayIsCisJCS5pZCA9IDIsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9DU1BJM19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBsY2RjX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAibGNkY19jbGsiLAorCQkucGFyZW50ID0gJnBlcl9jbGtbMl0sCisJCS5zZWNvbmRhcnkgPSAmbGNkY19jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wYXJlbnRfcm91bmRfcmF0ZSwKKwkJLnNldF9yYXRlID0gX2Nsa19wYXJlbnRfc2V0X3JhdGUsCisJfSwgeworCQkubmFtZSA9ICJsY2RjX2lwZ19jbGsiLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5zZWNvbmRhcnkgPSAmbGNkY19jbGtbMl0sCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfTENEQ19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAibGNkY19haGJfY2xrIiwKKwkJLnBhcmVudCA9ICZhaGJfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX0hDTEtfTENEQ19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc2lfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJjc2lfcGVyY2xrIiwKKwkJLnBhcmVudCA9ICZwZXJfY2xrWzNdLAorCQkuc2Vjb25kYXJ5ID0gJmNzaV9jbGtbMV0sCisJCS5yb3VuZF9yYXRlID0gX2Nsa19wYXJlbnRfcm91bmRfcmF0ZSwKKwkJLnNldF9yYXRlID0gX2Nsa19wYXJlbnRfc2V0X3JhdGUsCisJfSwgeworCQkubmFtZSA9ICJjc2lfYWhiX2NsayIsCisJCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0NTSV9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IGNsayB1c2JfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJ1c2JfY2xrIiwKKwkJLnBhcmVudCA9ICZzcGxsX2NsaywKKwkJLmdldF9yYXRlID0gX2Nsa191c2JfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1VTQk9UR19PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAidXNiX2FoYl9jbGsiLAorCQkucGFyZW50ID0gJmFoYl9jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19VU0JPVEdfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IGNsayBzc2kxX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAic3NpX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmbXBsbF9tYWluX2Nsa1sxXSwKKwkJLnNlY29uZGFyeSA9ICZzc2kxX2Nsa1sxXSwKKwkJLmdldF9yYXRlID0gX2Nsa19zc2kxX3JlY2FsYywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9TU0kxX0JBVURfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LCB7CisJCS5uYW1lID0gInNzaV9pcGdfY2xrIiwKKwkJLmlkID0gMCwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1NTSTFfSVBHX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNzaTJfY2xrW10gPSB7CisJeworCQkubmFtZSA9ICJzc2lfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCQkuc2Vjb25kYXJ5ID0gJnNzaTJfY2xrWzFdLAorCQkuZ2V0X3JhdGUgPSBfY2xrX3NzaTJfcmVjYWxjLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1NTSTJfQkFVRF9PRkZTRVQsCisJCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorCX0sIHsKKwkJLm5hbWUgPSAic3NpX2lwZ19jbGsiLAorCQkuaWQgPSAxLAorCQkucGFyZW50ID0gJmlwZ19jbGssCisJCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjAsCisJCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfU1NJMl9JUEdfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbmZjX2NsayA9IHsKKwkubmFtZSA9ICJuZmNfY2xrIiwKKwkucGFyZW50ID0gJmNwdV9jbGssCisJLmdldF9yYXRlID0gX2Nsa19uZmNfcmVjYWxjLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX05GQ19CQVVEX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHZwdV9jbGsgPSB7CisJLm5hbWUgPSAidnB1X2NsayIsCisJLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzFdLAorCS5nZXRfcmF0ZSA9IF9jbGtfdnB1X3JlY2FsYywKKwkuZW5hYmxlID0gX2Nsa192cHVfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa192cHVfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGRtYV9jbGsgPSB7CisJLm5hbWUgPSAiZG1hX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2RtYV9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2RtYV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcnRpY19jbGsgPSB7CisJLm5hbWUgPSAicnRpY19jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19ydGljX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfcnRpY19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgYnJvbV9jbGsgPSB7CisJLm5hbWUgPSAiYnJvbV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0JST01fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZW1tYV9jbGsgPSB7CisJLm5hbWUgPSAiZW1tYV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbW1hX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfZW1tYV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2xjZGNfY2xrID0geworCS5uYW1lID0gInNsY2RjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX3NsY2RjX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfc2xjZGNfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGZlY19jbGsgPSB7CisJLm5hbWUgPSAiZmVjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2ZlY19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2ZlY19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZW1pX2NsayA9IHsKKwkubmFtZSA9ICJlbWlfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IxLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjFfSENMS19FTUlfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2FoYXJhMl9jbGsgPSB7CisJLm5hbWUgPSAic2FoYXJhX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX3NhaGFyYTJfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19zYWhhcmEyX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBhdGFfY2xrID0geworCS5uYW1lID0gImF0YV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBDQ01fUENDUjEsCisJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMV9IQ0xLX0FUQV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBtc3RpY2sxX2NsayA9IHsKKwkubmFtZSA9ICJtc3RpY2sxX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX21zdGljazFfZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19tc3RpY2sxX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB3ZG9nX2NsayA9IHsKKwkubmFtZSA9ICJ3ZG9nX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IxX1dEVF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBncGlvX2NsayA9IHsKKwkubmFtZSA9ICJncGlvX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0dQSU9fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaTJjX2Nsa1tdID0geworCXsKKwkJLm5hbWUgPSAiaTJjX2NsayIsCisJCS5pZCA9IDAsCisJCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCQkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkJLmVuYWJsZV9zaGlmdCA9IENDTV9QQ0NSMF9JMkMxX09GRlNFVCwKKwkJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCisJfSwgeworCQkubmFtZSA9ICJpMmNfY2xrIiwKKwkJLmlkID0gMSwKKwkJLnBhcmVudCA9ICZpcGdfY2xrLAorCQkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCQkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0kyQzJfT0ZGU0VULAorCQkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaWltX2NsayA9IHsKKwkubmFtZSA9ICJpaW1fY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfSUlNX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGtwcF9jbGsgPSB7CisJLm5hbWUgPSAia3BwX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX0tQUF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBvd2lyZV9jbGsgPSB7CisJLm5hbWUgPSAib3dpcmVfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfT1dJUkVfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcnRjX2NsayA9IHsKKwkubmFtZSA9ICJydGNfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gQ0NNX1BDQ1IwLAorCS5lbmFibGVfc2hpZnQgPSBDQ01fUENDUjBfUlRDX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNjY19jbGsgPSB7CisJLm5hbWUgPSAic2NjX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IENDTV9QQ0NSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gQ0NNX1BDQ1IwX1NDQ19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2Nsa29fcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJZGl2ID0gcGFyZW50X3JhdGUgLyByYXRlOworCWlmIChwYXJlbnRfcmF0ZSAlIHJhdGUpCisJCWRpdisrOworCisJaWYgKGRpdiA+IDgpCisJCWRpdiA9IDg7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX3NldF9yYXRlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgbG9uZyByYXRlKQoreworCXUzMiByZWc7CisJdTMyIGRpdjsKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCisJcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdiA+IDggfHwgZGl2IDwgMSB8fCAoKHBhcmVudF9yYXRlIC8gZGl2KSAhPSByYXRlKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZGl2LS07CisKKwlyZWcgPSBfX3Jhd19yZWFkbChDQ01fUENEUjApICYgfkNDTV9QQ0RSMF9DTEtPRElWX01BU0s7CisJcmVnIHw9IGRpdiA8PCBDQ01fUENEUjBfQ0xLT0RJVl9PRkZTRVQ7CisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX1BDRFIwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2Nsa29fcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgZGl2OworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGU7CisKKwlwYXJlbnRfcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBfX3Jhd19yZWFkbChDQ01fUENEUjApICYgQ0NNX1BDRFIwX0NMS09ESVZfTUFTSyA+PgorCQlDQ01fUENEUjBfQ0xLT0RJVl9PRkZTRVQ7CisJZGl2Kys7CisKKwlyZXR1cm4gcGFyZW50X3JhdGUgLyBkaXY7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9DQ1NSKSAmIH5DQ01fQ0NTUl9DTEtPU0VMX01BU0s7CisKKwlpZiAocGFyZW50ID09ICZja2lsX2NsaykKKwkJcmVnIHw9IDAgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZja2loX2NsaykKKwkJcmVnIHw9IDIgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IG1wbGxfY2xrLnBhcmVudCkKKwkJcmVnIHw9IDMgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IHNwbGxfY2xrLnBhcmVudCkKKwkJcmVnIHw9IDQgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZtcGxsX2NsaykKKwkJcmVnIHw9IDUgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZzcGxsX2NsaykKKwkJcmVnIHw9IDYgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZjcHVfY2xrKQorCQlyZWcgfD0gNyA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmFoYl9jbGspCisJCXJlZyB8PSA4IDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmaXBnX2NsaykKKwkJcmVnIHw9IDkgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZwZXJfY2xrWzBdKQorCQlyZWcgfD0gMHhBIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmcGVyX2Nsa1sxXSkKKwkJcmVnIHw9IDB4QiA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnBlcl9jbGtbMl0pCisJCXJlZyB8PSAweEMgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZwZXJfY2xrWzNdKQorCQlyZWcgfD0gMHhEIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmc3NpMV9jbGtbMF0pCisJCXJlZyB8PSAweEUgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZzc2kyX2Nsa1swXSkKKwkJcmVnIHw9IDB4RiA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJm5mY19jbGspCisJCXJlZyB8PSAweDEwIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmbXN0aWNrMV9jbGspCisJCXJlZyB8PSAweDExIDw8IENDTV9DQ1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmdnB1X2NsaykKKwkJcmVnIHw9IDB4MTIgPDwgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZ1c2JfY2xrWzBdKQorCQlyZWcgfD0gMHgxNSA8PCBDQ01fQ0NTUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJX19yYXdfd3JpdGVsKHJlZywgQ0NNX0NDU1IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19jbGtvX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKENDTV9QQ0RSMCkgfCBDQ01fUENEUjBfQ0xLT19FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENEUjApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfY2xrb19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoQ0NNX1BDRFIwKSAmIH5DQ01fUENEUjBfQ0xLT19FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBDQ01fUENEUjApOworfQorCitzdGF0aWMgc3RydWN0IGNsayBjbGtvX2NsayA9IHsKKwkubmFtZSA9ICJjbGtvX2NsayIsCisJLmdldF9yYXRlID0gX2Nsa19jbGtvX3JlY2FsYywKKwkuc2V0X3JhdGUgPSBfY2xrX2Nsa29fc2V0X3JhdGUsCisJLnJvdW5kX3JhdGUgPSBfY2xrX2Nsa29fcm91bmRfcmF0ZSwKKwkuc2V0X3BhcmVudCA9IF9jbGtfY2xrb19zZXRfcGFyZW50LAorCS5lbmFibGUgPSBfY2xrX2Nsa29fZW5hYmxlLAorCS5kaXNhYmxlID0gX2Nsa19jbGtvX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayAqbXhjX2Nsa3NbXSA9IHsKKwkmY2tpaF9jbGssCisJJmNraWxfY2xrLAorCSZtcGxsX2NsaywKKwkmbXBsbF9tYWluX2Nsa1swXSwKKwkmbXBsbF9tYWluX2Nsa1sxXSwKKwkmc3BsbF9jbGssCisJJmNwdV9jbGssCisJJmFoYl9jbGssCisJJmlwZ19jbGssCisJJnBlcl9jbGtbMF0sCisJJnBlcl9jbGtbMV0sCisJJnBlcl9jbGtbMl0sCisJJnBlcl9jbGtbM10sCisJJmNsa29fY2xrLAorCSZ1YXJ0MV9jbGtbMF0sCisJJnVhcnQxX2Nsa1sxXSwKKwkmdWFydDJfY2xrWzBdLAorCSZ1YXJ0Ml9jbGtbMV0sCisJJnVhcnQzX2Nsa1swXSwKKwkmdWFydDNfY2xrWzFdLAorCSZ1YXJ0NF9jbGtbMF0sCisJJnVhcnQ0X2Nsa1sxXSwKKwkmdWFydDVfY2xrWzBdLAorCSZ1YXJ0NV9jbGtbMV0sCisJJnVhcnQ2X2Nsa1swXSwKKwkmdWFydDZfY2xrWzFdLAorCSZncHQxX2Nsa1swXSwKKwkmZ3B0MV9jbGtbMV0sCisJJmdwdDJfY2xrWzBdLAorCSZncHQyX2Nsa1sxXSwKKwkmZ3B0M19jbGtbMF0sCisJJmdwdDNfY2xrWzFdLAorCSZncHQ0X2Nsa1swXSwKKwkmZ3B0NF9jbGtbMV0sCisJJmdwdDVfY2xrWzBdLAorCSZncHQ1X2Nsa1sxXSwKKwkmZ3B0Nl9jbGtbMF0sCisJJmdwdDZfY2xrWzFdLAorCSZwd21fY2xrWzBdLAorCSZwd21fY2xrWzFdLAorCSZzZGhjMV9jbGtbMF0sCisJJnNkaGMxX2Nsa1sxXSwKKwkmc2RoYzJfY2xrWzBdLAorCSZzZGhjMl9jbGtbMV0sCisJJnNkaGMzX2Nsa1swXSwKKwkmc2RoYzNfY2xrWzFdLAorCSZjc3BpMV9jbGtbMF0sCisJJmNzcGkxX2Nsa1sxXSwKKwkmY3NwaTJfY2xrWzBdLAorCSZjc3BpMl9jbGtbMV0sCisJJmNzcGkzX2Nsa1swXSwKKwkmY3NwaTNfY2xrWzFdLAorCSZsY2RjX2Nsa1swXSwKKwkmbGNkY19jbGtbMV0sCisJJmxjZGNfY2xrWzJdLAorCSZjc2lfY2xrWzBdLAorCSZjc2lfY2xrWzFdLAorCSZ1c2JfY2xrWzBdLAorCSZ1c2JfY2xrWzFdLAorCSZzc2kxX2Nsa1swXSwKKwkmc3NpMV9jbGtbMV0sCisJJnNzaTJfY2xrWzBdLAorCSZzc2kyX2Nsa1sxXSwKKwkmbmZjX2NsaywKKwkmdnB1X2NsaywKKwkmZG1hX2NsaywKKwkmcnRpY19jbGssCisJJmJyb21fY2xrLAorCSZlbW1hX2NsaywKKwkmc2xjZGNfY2xrLAorCSZmZWNfY2xrLAorCSZlbWlfY2xrLAorCSZzYWhhcmEyX2NsaywKKwkmYXRhX2NsaywKKwkmbXN0aWNrMV9jbGssCisJJndkb2dfY2xrLAorCSZncGlvX2NsaywKKwkmaTJjX2Nsa1swXSwKKwkmaTJjX2Nsa1sxXSwKKwkmaWltX2NsaywKKwkma3BwX2NsaywKKwkmb3dpcmVfY2xrLAorCSZydGNfY2xrLAorCSZzY2NfY2xrLAorfTsKKwordm9pZCBfX2luaXQgY2hhbmdlX2V4dGVybmFsX2xvd19yZWZlcmVuY2UodW5zaWduZWQgbG9uZyBuZXdfcmVmKQoreworCWV4dGVybmFsX2xvd19yZWZlcmVuY2UgPSBuZXdfcmVmOworfQorCit1bnNpZ25lZCBsb25nIF9faW5pdCBjbGtfZWFybHlfZ2V0X3RpbWVyX3JhdGUodm9pZCkKK3sKKwlyZXR1cm4gY2xrX2dldF9yYXRlKCZwZXJfY2xrWzBdKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHByb2JlX214Y19jbG9ja3Modm9pZCkKK3sKKwlpbnQgaTsKKworCWlmIChteDI3X3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCWlmIChDU0NSKCkgJiAweDgwMDApCisJCQljcHVfY2xrLnBhcmVudCA9ICZtcGxsX21haW5fY2xrWzBdOworCisJCWlmICghKENTQ1IoKSAmIDB4MDA4MDAwMDApKQorCQkJc3NpMl9jbGtbMF0ucGFyZW50ID0gJnNwbGxfY2xrOworCisJCWlmICghKENTQ1IoKSAmIDB4MDA0MDAwMDApKQorCQkJc3NpMV9jbGtbMF0ucGFyZW50ID0gJnNwbGxfY2xrOworCisJCWlmICghKENTQ1IoKSAmIDB4MDAyMDAwMDApKQorCQkJdnB1X2Nsay5wYXJlbnQgPSAmc3BsbF9jbGs7CisJfSBlbHNlIHsKKwkJY3B1X2Nsay5wYXJlbnQgPSAmbXBsbF9jbGs7CisJCWNwdV9jbGsuc2V0X3BhcmVudCA9IE5VTEw7CisJCWNwdV9jbGsucm91bmRfcmF0ZSA9IE5VTEw7CisJCWNwdV9jbGsuc2V0X3JhdGUgPSBOVUxMOworCQlhaGJfY2xrLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHBlcl9jbGspIC8gc2l6ZW9mKHBlcl9jbGtbMF0pOyBpKyspCisJCQlwZXJfY2xrW2ldLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQlzc2kxX2Nsa1swXS5wYXJlbnQgPSAmbXBsbF9jbGs7CisJCXNzaTJfY2xrWzBdLnBhcmVudCA9ICZtcGxsX2NsazsKKworCQl2cHVfY2xrLnBhcmVudCA9ICZtcGxsX2NsazsKKwl9Cit9CisKKy8qCisgKiBtdXN0IGJlIGNhbGxlZCB2ZXJ5IGVhcmx5IHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAqIGF2YWlsYWJsZSBjbG9jayByYXRlIHdoZW4gdGhlIHRpbWVyIGZyYW1ld29yayBzdGFydHMKKyAqLworaW50IF9faW5pdCBteGNfY2xvY2tzX2luaXQodW5zaWduZWQgbG9uZyBmcmVmKQoreworCXUzMiBjc2NyOworCXN0cnVjdCBjbGsgKipjbGtwOworCisJZXh0ZXJuYWxfaGlnaF9yZWZlcmVuY2UgPSBmcmVmOworCisJLyogZGV0ZWN0IGNsb2NrIHJlZmVyZW5jZSBmb3IgYm90aCBzeXN0ZW0gUExMICovCisJY3NjciA9IENTQ1IoKTsKKwlpZiAoY3NjciAmIENDTV9DU0NSX01DVSkKKwkJbXBsbF9jbGsucGFyZW50ID0gJmNraWhfY2xrOworCWVsc2UKKwkJbXBsbF9jbGsucGFyZW50ID0gJmNraWxfY2xrOworCisJaWYgKGNzY3IgJiBDQ01fQ1NDUl9TUCkKKwkJc3BsbF9jbGsucGFyZW50ID0gJmNraWhfY2xrOworCWVsc2UKKwkJc3BsbF9jbGsucGFyZW50ID0gJmNraWxfY2xrOworCisJcHJvYmVfbXhjX2Nsb2NrcygpOworCisJcGVyX2Nsa1swXS5lbmFibGUoJnBlcl9jbGtbMF0pOworCWdwdDFfY2xrWzFdLmVuYWJsZSgmZ3B0MV9jbGtbMV0pOworCisJZm9yIChjbGtwID0gbXhjX2Nsa3M7IGNsa3AgPCBteGNfY2xrcyArIEFSUkFZX1NJWkUobXhjX2Nsa3MpOyBjbGtwKyspCisJCWNsa19yZWdpc3RlcigqY2xrcCk7CisKKwkvKiBUdXJuIG9mZiBhbGwgcG9zc2libGUgY2xvY2tzICovCisJX19yYXdfd3JpdGVsKENDTV9QQ0NSMF9HUFQxX01BU0ssIENDTV9QQ0NSMCk7CisJX19yYXdfd3JpdGVsKENDTV9QQ0NSMV9QRVJDTEsxX01BU0sgfCBDQ01fUENDUjFfSENMS19FTUlfTUFTSywKKwkJICAgICBDQ01fUENDUjEpOworCXNwbGxfY2xrLmRpc2FibGUoJnNwbGxfY2xrKTsKKworCS8qIFRoaXMgd2lsbCBwcm9wYWdhdGUgdG8gYWxsIGNoaWxkcmVuIGFuZCBpbml0IGFsbCB0aGUgY2xvY2sgcmF0ZXMgKi8KKworCWNsa19lbmFibGUoJmVtaV9jbGspOworCWNsa19lbmFibGUoJmdwaW9fY2xrKTsKKwljbGtfZW5hYmxlKCZpaW1fY2xrKTsKKwljbGtfZW5hYmxlKCZncHQxX2Nsa1swXSk7CisjaWZkZWYgQ09ORklHX0RFQlVHX0xMX0NPTlNPTEUKKwljbGtfZW5hYmxlKCZ1YXJ0MV9jbGtbMF0pOworI2VuZGlmCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jcHVfaW14MjcuYyBiL2FyY2gvYXJtL21hY2gtbXgyL2NwdV9pbXgyNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2YjVjMmUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9jcHVfaW14MjcuYwpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IDIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworLyoKKyAqIGkuTVgyNyBzcGVjaWZpYyBDUFUgZGV0ZWN0aW9uIGNvZGUKKyAqLworCisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSAiY3JtX3JlZ3MuaCIKKworc3RhdGljIGludCBjcHVfc2lsaWNvbl9yZXYgPSAtMTsKK3N0YXRpYyBpbnQgY3B1X3BhcnRudW1iZXI7CisKK3N0YXRpYyB2b2lkIHF1ZXJ5X3NpbGljb25fcGFyYW1ldGVyKHZvaWQpCit7CisJdTMyIHZhbDsKKwkvKgorCSAqIG5vdyB3ZSBoYXZlIGFjY2VzcyB0byB0aGUgSU8gcmVnaXN0ZXJzLiBBcyB3ZSBuZWVkCisJICogdGhlIHNpbGljb24gcmV2aXNpb24gdmVyeSBlYXJseSB3ZSByZWFkIGl0IGhlcmUgdG8KKwkgKiBhdm9pZCBhbnkgZnVydGhlciBob29rcworCSovCisJdmFsID0gX19yYXdfcmVhZGwoSU9fQUREUkVTUyhTWVNDVFJMX0JBU0VfQUREUikgKyBTWVNfQ0hJUF9JRCk7CisKKwljcHVfc2lsaWNvbl9yZXYgPSAoaW50KSh2YWwgPj4gMjgpOworCWNwdV9wYXJ0bnVtYmVyID0gKGludCkoKHZhbCA+PiAxMikgJiAweEZGRkYpOworfQorCisvKgorICogUmV0dXJuczoKKyAqCXRoZSBzaWxpY29uIHJldmlzaW9uIG9mIHRoZSBjcHUKKyAqCS1FSU5WQUwgLSBub3QgYSBteDI3CisgKi8KK2ludCBteDI3X3JldmlzaW9uKHZvaWQpCit7CisJaWYgKGNwdV9zaWxpY29uX3JldiA9PSAtMSkKKwkJcXVlcnlfc2lsaWNvbl9wYXJhbWV0ZXIoKTsKKworCWlmIChjcHVfcGFydG51bWJlciAhPSAweDg4MjEpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGNwdV9zaWxpY29uX3JldjsKK30KK0VYUE9SVF9TWU1CT0wobXgyN19yZXZpc2lvbik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9jcm1fcmVncy5oIGIvYXJjaC9hcm0vbWFjaC1teDIvY3JtX3JlZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNDBhOWI5Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvY3JtX3JlZ3MuaApAQCAtMCwwICsxLDI3MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FSQ0hfQVJNX01BQ0hfTVgyX0NSTV9SRUdTX0hfXworI2RlZmluZSBfX0FSQ0hfQVJNX01BQ0hfTVgyX0NSTV9SRUdTX0hfXworCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKworLyogUmVnaXN0ZXIgb2Zmc2V0cyAqLworI2RlZmluZSBDQ01fQ1NDUiAgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MCkKKyNkZWZpbmUgQ0NNX01QQ1RMMCAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDQpCisjZGVmaW5lIENDTV9NUENUTDEgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHg4KQorI2RlZmluZSBDQ01fU1BDVEwwICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4QykKKyNkZWZpbmUgQ0NNX1NQQ1RMMSAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDEwKQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MTQpCisjZGVmaW5lIENDTV9QQ0RSMCAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgxOCkKKyNkZWZpbmUgQ0NNX1BDRFIxICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDFjKQorI2RlZmluZSBDQ01fUENDUjAgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MjApCisjZGVmaW5lIENDTV9QQ0NSMSAgICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgyNCkKKyNkZWZpbmUgQ0NNX0NDU1IgICAgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDI4KQorI2RlZmluZSBDQ01fUE1DVEwgICAgICAgICAgICAgICAoSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKSArIDB4MmMpCisjZGVmaW5lIENDTV9QTUNPVU5UICAgICAgICAgICAgIChJT19BRERSRVNTKENDTV9CQVNFX0FERFIpICsgMHgzMCkKKyNkZWZpbmUgQ0NNX1dLR0RDVEwgICAgICAgICAgICAgKElPX0FERFJFU1MoQ0NNX0JBU0VfQUREUikgKyAweDM0KQorCisjZGVmaW5lIENDTV9DU0NSX1VTQl9PRkZTRVQgICAgIDI4CisjZGVmaW5lIENDTV9DU0NSX1VTQl9NQVNLICAgICAgICgweDcgPDwgMjgpCisjZGVmaW5lIENDTV9DU0NSX1NEX09GRlNFVCAgICAgIDI0CisjZGVmaW5lIENDTV9DU0NSX1NEX01BU0sgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIENDTV9DU0NSX1NTSTIgICAgICAgICAgICgxIDw8IDIzKQorI2RlZmluZSBDQ01fQ1NDUl9TU0kyX09GRlNFVCAgICAyMworI2RlZmluZSBDQ01fQ1NDUl9TU0kxICAgICAgICAgICAoMSA8PCAyMikKKyNkZWZpbmUgQ0NNX0NTQ1JfU1NJMV9PRkZTRVQgICAgMjIKKyNkZWZpbmUgQ0NNX0NTQ1JfVlBVICAgICAgICAgICAoMSA8PCAyMSkKKyNkZWZpbmUgQ0NNX0NTQ1JfVlBVX09GRlNFVCAgICAyMQorI2RlZmluZSBDQ01fQ1NDUl9NU0hDICAgICAgICAgICAoMSA8PCAyMCkKKyNkZWZpbmUgQ0NNX0NTQ1JfU1BMTFJFUyAgICAgICAgKDEgPDwgMTkpCisjZGVmaW5lIENDTV9DU0NSX01QTExSRVMgICAgICAgICgxIDw8IDE4KQorI2RlZmluZSBDQ01fQ1NDUl9TUCAgICAgICAgICAgICAoMSA8PCAxNykKKyNkZWZpbmUgQ0NNX0NTQ1JfTUNVICAgICAgICAgICAgKDEgPDwgMTYpCisvKiBDQ01fQ1NDUl9BUk1feHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9BUk1fU1JDICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX0NTQ1JfQVJNX09GRlNFVCAgICAgMTIKKyNkZWZpbmUgQ0NNX0NTQ1JfQVJNX01BU0sgICAgICAgKDB4MyA8PCAxMikKKy8qIENDTV9DU0NSX0FSTV94eHgganVzdCBiZSBhdmFsaWFibGUgb24gaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9DU0NSX1BSRVNDX09GRlNFVCAgIDEzCisjZGVmaW5lIENDTV9DU0NSX1BSRVNDX01BU0sgICAgICgweDcgPDwgMTMpCisjZGVmaW5lIENDTV9DU0NSX0JDTEtfT0ZGU0VUICAgIDkKKyNkZWZpbmUgQ0NNX0NTQ1JfQkNMS19NQVNLICAgICAgKDB4ZiA8PCA5KQorI2RlZmluZSBDQ01fQ1NDUl9JUERJVl9PRkZTRVQgICA4CisjZGVmaW5lIENDTV9DU0NSX0lQRElWICAgICAgICAgICgxIDw8IDgpCisvKiBDQ01fQ1NDUl9BSEJfeHh4IGp1c3QgYmUgYXZhbGlhYmxlIG9uIGkuTVgyNyBUTzIqLworI2RlZmluZSBDQ01fQ1NDUl9BSEJfT0ZGU0VUICAgICA4CisjZGVmaW5lIENDTV9DU0NSX0FIQl9NQVNLICAgICAgICgweDMgPDwgOCkKKy8qIENDTV9DU0NSX0FIQl94eHgganVzdCBiZSBhdmFsaWFibGUgb24gaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9DU0NSX09TQzI2TURJViAgICAgICgxIDw8IDQpCisjZGVmaW5lIENDTV9DU0NSX09TQzI2TSAgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIENDTV9DU0NSX0ZQTSAgICAgICAgICAgICgxIDw8IDIpCisjZGVmaW5lIENDTV9DU0NSX1NQRU4gICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIENDTV9DU0NSX01QRU4gICAgICAgICAgIDEKKworI2RlZmluZSBDQ01fTVBDVEwwX0NQTE0gICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgQ0NNX01QQ1RMMF9QRF9PRkZTRVQgICAgMjYKKyNkZWZpbmUgQ0NNX01QQ1RMMF9QRF9NQVNLICAgICAgKDB4ZiA8PCAyNikKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRkRfT0ZGU0VUICAgMTYKKyNkZWZpbmUgQ0NNX01QQ1RMMF9NRkRfTUFTSyAgICAgKDB4M2ZmIDw8IDE2KQorI2RlZmluZSBDQ01fTVBDVEwwX01GSV9PRkZTRVQgICAxMAorI2RlZmluZSBDQ01fTVBDVEwwX01GSV9NQVNLICAgICAoMHhmIDw8IDEwKQorI2RlZmluZSBDQ01fTVBDVEwwX01GTl9PRkZTRVQgICAwCisjZGVmaW5lIENDTV9NUENUTDBfTUZOX01BU0sgICAgIDB4M2ZmCisKKyNkZWZpbmUgQ0NNX01QQ1RMMV9MRiAgICAgICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIENDTV9NUENUTDFfQlJNTyAgICAgICAgICgxIDw8IDYpCisKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9DUExNICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9TUENUTDBfUERfT0ZGU0VUICAgIDI2CisjZGVmaW5lIENDTV9TUENUTDBfUERfTUFTSyAgICAgICgweGYgPDwgMjYpCisjZGVmaW5lIENDTV9TUENUTDBfTUZEX09GRlNFVCAgIDE2CisjZGVmaW5lIENDTV9TUENUTDBfTUZEX01BU0sgICAgICgweDNmZiA8PCAxNikKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRklfT0ZGU0VUICAgMTAKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRklfTUFTSyAgICAgKDB4ZiA8PCAxMCkKKyNkZWZpbmUgQ0NNX1NQQ1RMMF9NRk5fT0ZGU0VUICAgMAorI2RlZmluZSBDQ01fU1BDVEwwX01GTl9NQVNLICAgICAweDNmZgorCisjZGVmaW5lIENDTV9TUENUTDFfTEYgICAgICAgICAgICgxIDw8IDE1KQorI2RlZmluZSBDQ01fU1BDVEwxX0JSTU8gICAgICAgICAoMSA8PCA2KQorCisjZGVmaW5lIENDTV9PU0MyNk1DVExfUEVBS19PRkZTRVQgICAgICAgMTYKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9QRUFLX01BU0sgICAgICAgICAoMHgzIDw8IDE2KQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMX0FHQ19PRkZTRVQgICAgICAgIDgKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BR0NfTUFTSyAgICAgICAgICAoMHgzZiA8PCA4KQorI2RlZmluZSBDQ01fT1NDMjZNQ1RMX0FOQVRFU1RfT0ZGU0VUICAgIDAKKyNkZWZpbmUgQ0NNX09TQzI2TUNUTF9BTkFURVNUX01BU0sgICAgICAweDNmCisKKyNkZWZpbmUgQ0NNX1BDRFIwX1NTSTJCQVVERElWX09GRlNFVCAgICAyNgorI2RlZmluZSBDQ01fUENEUjBfU1NJMkJBVURESVZfTUFTSyAgICAgICgweDNmIDw8IDI2KQorI2RlZmluZSBDQ01fUENEUjBfQ0xLT19FTiAgICAgICAgICAgICAgIDI1CisjZGVmaW5lIENDTV9QQ0RSMF9DTEtPRElWX09GRlNFVCAgICAgICAgMjIKKyNkZWZpbmUgQ0NNX1BDRFIwX0NMS09ESVZfTUFTSyAgICAgICAgICAoMHg3IDw8IDIyKQorI2RlZmluZSBDQ01fUENEUjBfU1NJMUJBVURESVZfT0ZGU0VUICAgIDE2CisjZGVmaW5lIENDTV9QQ0RSMF9TU0kxQkFVRERJVl9NQVNLICAgICAgKDB4M2YgPDwgMTYpCisvKlRoZSBkaWZpbml0aW9uIGZvciBpLk1YMjcgVE8yKi8KKyNkZWZpbmUgQ0NNX1BDRFIwX1ZQVURJVjJfT0ZGU0VUICAgICAgICAxMAorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWMl9NQVNLICAgICAgICAgICgweDNmIDw8IDEwKQorI2RlZmluZSBDQ01fUENEUjBfTkZDRElWMl9PRkZTRVQgICAgICAgICA2CisjZGVmaW5lIENDTV9QQ0RSMF9ORkNESVYyX01BU0sgICAgICAgICAgICgweGYgPDwgNikKKyNkZWZpbmUgQ0NNX1BDRFIwX01TSENESVYyX01BU0sgICAgICAgICAgMHgzZgorLypUaGUgZGlmaW5pdGlvbiBmb3IgaS5NWDI3IFRPMiovCisjZGVmaW5lIENDTV9QQ0RSMF9ORkNESVZfT0ZGU0VUICAgICAgICAgMTIKKyNkZWZpbmUgQ0NNX1BDRFIwX05GQ0RJVl9NQVNLICAgICAgICAgICAoMHhmIDw8IDEyKQorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWX09GRlNFVCAgICAgICAgOAorI2RlZmluZSBDQ01fUENEUjBfVlBVRElWX01BU0sgICAgICAgICAgKDB4ZiA8PCA4KQorI2RlZmluZSBDQ01fUENEUjBfTVNIQ0RJVl9PRkZTRVQgICAgICAgIDAKKyNkZWZpbmUgQ0NNX1BDRFIwX01TSENESVZfTUFTSyAgICAgICAgICAweDFmCisKKyNkZWZpbmUgQ0NNX1BDRFIxX1BFUkRJVjRfT0ZGU0VUICAgICAgICAyNAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWNF9NQVNLICAgICAgICAgICgweDNmIDw8IDI0KQorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWM19PRkZTRVQgICAgICAgIDE2CisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYzX01BU0sgICAgICAgICAgKDB4M2YgPDwgMTYpCisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYyX09GRlNFVCAgICAgICAgOAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMl9NQVNLICAgICAgICAgICgweDNmIDw8IDgpCisjZGVmaW5lIENDTV9QQ0RSMV9QRVJESVYxX09GRlNFVCAgICAgICAgMAorI2RlZmluZSBDQ01fUENEUjFfUEVSRElWMV9NQVNLICAgICAgICAgIDB4M2YKKworI2RlZmluZSBDQ01fUENDUjBfQ1NQSTFfT0ZGU0VUICAgICAgICAgIDMxCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJMV9NQVNLICAgICAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIENDTV9QQ0NSMF9DU1BJMl9PRkZTRVQgICAgICAgICAgMzAKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkyX01BU0sgICAgICAgICAgICAoMSA8PCAzMCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0NTUEkzX09GRlNFVCAgICAgICAgICAyOQorI2RlZmluZSBDQ01fUENDUjBfQ1NQSTNfTUFTSyAgICAgICAgICAgICgxIDw8IDI5KQorI2RlZmluZSBDQ01fUENDUjBfRE1BX09GRlNFVCAgICAgICAgICAgIDI4CisjZGVmaW5lIENDTV9QQ0NSMF9ETUFfTUFTSyAgICAgICAgICAgICAgKDEgPDwgMjgpCisjZGVmaW5lIENDTV9QQ0NSMF9FTU1BX09GRlNFVCAgICAgICAgICAgMjcKKyNkZWZpbmUgQ0NNX1BDQ1IwX0VNTUFfTUFTSyAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgQ0NNX1BDQ1IwX0ZFQ19PRkZTRVQgICAgICAgICAgICAyNgorI2RlZmluZSBDQ01fUENDUjBfRkVDX01BU0sgICAgICAgICAgICAgICgxIDw8IDI2KQorI2RlZmluZSBDQ01fUENDUjBfR1BJT19PRkZTRVQgICAgICAgICAgIDI1CisjZGVmaW5lIENDTV9QQ0NSMF9HUElPX01BU0sgICAgICAgICAgICAgKDEgPDwgMjUpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQxX09GRlNFVCAgICAgICAgICAgMjQKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDFfTUFTSyAgICAgICAgICAgICAoMSA8PCAyNCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDJfT0ZGU0VUICAgICAgICAgICAyMworI2RlZmluZSBDQ01fUENDUjBfR1BUMl9NQVNLICAgICAgICAgICAgICgxIDw8IDIzKQorI2RlZmluZSBDQ01fUENDUjBfR1BUM19PRkZTRVQgICAgICAgICAgIDIyCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQzX01BU0sgICAgICAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ0X09GRlNFVCAgICAgICAgICAgMjEKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDRfTUFTSyAgICAgICAgICAgICAoMSA8PCAyMSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0dQVDVfT0ZGU0VUICAgICAgICAgICAyMAorI2RlZmluZSBDQ01fUENDUjBfR1BUNV9NQVNLICAgICAgICAgICAgICgxIDw8IDIwKQorI2RlZmluZSBDQ01fUENDUjBfR1BUNl9PRkZTRVQgICAgICAgICAgIDE5CisjZGVmaW5lIENDTV9QQ0NSMF9HUFQ2X01BU0sgICAgICAgICAgICAgKDEgPDwgMTkpCisjZGVmaW5lIENDTV9QQ0NSMF9JMkMxX09GRlNFVCAgICAgICAgICAgMTgKKyNkZWZpbmUgQ0NNX1BDQ1IwX0kyQzFfTUFTSyAgICAgICAgICAgICAoMSA8PCAxOCkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0kyQzJfT0ZGU0VUICAgICAgICAgICAxNworI2RlZmluZSBDQ01fUENDUjBfSTJDMl9NQVNLICAgICAgICAgICAgICgxIDw8IDE3KQorI2RlZmluZSBDQ01fUENDUjBfSUlNX09GRlNFVCAgICAgICAgICAgIDE2CisjZGVmaW5lIENDTV9QQ0NSMF9JSU1fTUFTSyAgICAgICAgICAgICAgKDEgPDwgMTYpCisjZGVmaW5lIENDTV9QQ0NSMF9LUFBfT0ZGU0VUICAgICAgICAgICAgMTUKKyNkZWZpbmUgQ0NNX1BDQ1IwX0tQUF9NQVNLICAgICAgICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX1BDQ1IwX0xDRENfT0ZGU0VUICAgICAgICAgICAxNAorI2RlZmluZSBDQ01fUENDUjBfTENEQ19NQVNLICAgICAgICAgICAgICgxIDw8IDE0KQorI2RlZmluZSBDQ01fUENDUjBfTVNIQ19PRkZTRVQgICAgICAgICAgIDEzCisjZGVmaW5lIENDTV9QQ0NSMF9NU0hDX01BU0sgICAgICAgICAgICAgKDEgPDwgMTMpCisjZGVmaW5lIENDTV9QQ0NSMF9PV0lSRV9PRkZTRVQgICAgICAgICAgMTIKKyNkZWZpbmUgQ0NNX1BDQ1IwX09XSVJFX01BU0sgICAgICAgICAgICAoMSA8PCAxMikKKyNkZWZpbmUgQ0NNX1BDQ1IwX1BXTV9PRkZTRVQgICAgICAgICAgICAxMQorI2RlZmluZSBDQ01fUENDUjBfUFdNX01BU0sgICAgICAgICAgICAgICgxIDw8IDExKQorI2RlZmluZSBDQ01fUENDUjBfUlRDX09GRlNFVCAgICAgICAgICAgIDkKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUQ19NQVNLICAgICAgICAgICAgICAoMSA8PCA5KQorI2RlZmluZSBDQ01fUENDUjBfUlRJQ19PRkZTRVQgICAgICAgICAgIDgKKyNkZWZpbmUgQ0NNX1BDQ1IwX1JUSUNfTUFTSyAgICAgICAgICAgICAoMSA8PCA4KQorI2RlZmluZSBDQ01fUENDUjBfU0FIQVJBX09GRlNFVCAgICAgICAgIDcKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NBSEFSQV9NQVNLICAgICAgICAgICAoMSA8PCA3KQorI2RlZmluZSBDQ01fUENDUjBfU0NDX09GRlNFVCAgICAgICAgICAgIDYKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NDQ19NQVNLICAgICAgICAgICAgICAoMSA8PCA2KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzFfT0ZGU0VUICAgICAgICAgIDUKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMxX01BU0sgICAgICAgICAgICAoMSA8PCA1KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzJfT0ZGU0VUICAgICAgICAgIDQKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMyX01BU0sgICAgICAgICAgICAoMSA8PCA0KQorI2RlZmluZSBDQ01fUENDUjBfU0RIQzNfT0ZGU0VUICAgICAgICAgIDMKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NESEMzX01BU0sgICAgICAgICAgICAoMSA8PCAzKQorI2RlZmluZSBDQ01fUENDUjBfU0xDRENfT0ZGU0VUICAgICAgICAgIDIKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NMQ0RDX01BU0sgICAgICAgICAgICAoMSA8PCAyKQorI2RlZmluZSBDQ01fUENDUjBfU1NJMV9JUEdfT0ZGU0VUICAgICAgIDEKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTFfSVBHX01BU0sgICAgICAgICAoMSA8PCAxKQorI2RlZmluZSBDQ01fUENDUjBfU1NJMl9JUEdfT0ZGU0VUICAgICAgIDAKKyNkZWZpbmUgQ0NNX1BDQ1IwX1NTSTJfSVBHX01BU0sgICAgICAgICAoMSA8PCAwKQorCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUMV9PRkZTRVQgICAgICAgICAgMzEKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQxX01BU0sgICAgICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQyX09GRlNFVCAgICAgICAgICAzMAorI2RlZmluZSBDQ01fUENDUjFfVUFSVDJfTUFTSyAgICAgICAgICAgICgxIDw8IDMwKQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDNfT0ZGU0VUICAgICAgICAgIDI5CisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUM19NQVNLICAgICAgICAgICAgKDEgPDwgMjkpCisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNF9PRkZTRVQgICAgICAgICAgMjgKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ0X01BU0sgICAgICAgICAgICAoMSA8PCAyOCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VBUlQ1X09GRlNFVCAgICAgICAgICAyNworI2RlZmluZSBDQ01fUENDUjFfVUFSVDVfTUFTSyAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBDQ01fUENDUjFfVUFSVDZfT0ZGU0VUICAgICAgICAgIDI2CisjZGVmaW5lIENDTV9QQ0NSMV9VQVJUNl9NQVNLICAgICAgICAgICAgKDEgPDwgMjYpCisjZGVmaW5lIENDTV9QQ0NSMV9VU0JPVEdfT0ZGU0VUICAgICAgICAgMjUKKyNkZWZpbmUgQ0NNX1BDQ1IxX1VTQk9UR19NQVNLICAgICAgICAgICAoMSA8PCAyNSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1dEVF9PRkZTRVQgICAgICAgICAgICAyNAorI2RlZmluZSBDQ01fUENDUjFfV0RUX01BU0sgICAgICAgICAgICAgICgxIDw8IDI0KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19BVEFfT0ZGU0VUICAgICAgIDIzCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0FUQV9NQVNLICAgICAgICAgKDEgPDwgMjMpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0JST01fT0ZGU0VUICAgICAgMjIKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQlJPTV9NQVNLICAgICAgICAoMSA8PCAyMikKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfQ1NJX09GRlNFVCAgICAgICAyMQorI2RlZmluZSBDQ01fUENDUjFfSENMS19DU0lfTUFTSyAgICAgICAgICgxIDw8IDIxKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19ETUFfT0ZGU0VUICAgICAgIDIwCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0RNQV9NQVNLICAgICAgICAgKDEgPDwgMjApCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0VNSV9PRkZTRVQgICAgICAgMTkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRU1JX01BU0sgICAgICAgICAoMSA8PCAxOSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfRU1NQV9PRkZTRVQgICAgICAxOAorI2RlZmluZSBDQ01fUENDUjFfSENMS19FTU1BX01BU0sgICAgICAgICgxIDw8IDE4KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19GRUNfT0ZGU0VUICAgICAgIDE3CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX0ZFQ19NQVNLICAgICAgICAgKDEgPDwgMTcpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1ZQVV9PRkZTRVQgICAgICAgMTYKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfVlBVX01BU0sgICAgICAgICAoMSA8PCAxNikKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfTENEQ19PRkZTRVQgICAgICAxNQorI2RlZmluZSBDQ01fUENDUjFfSENMS19MQ0RDX01BU0sgICAgICAgICgxIDw8IDE1KQorI2RlZmluZSBDQ01fUENDUjFfSENMS19SVElDX09GRlNFVCAgICAgIDE0CisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1JUSUNfTUFTSyAgICAgICAgKDEgPDwgMTQpCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1NBSEFSQV9PRkZTRVQgICAgMTMKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfU0FIQVJBX01BU0sgICAgICAoMSA8PCAxMykKKyNkZWZpbmUgQ0NNX1BDQ1IxX0hDTEtfU0xDRENfT0ZGU0VUICAgICAxMgorI2RlZmluZSBDQ01fUENDUjFfSENMS19TTENEQ19NQVNLICAgICAgICgxIDw8IDEyKQorI2RlZmluZSBDQ01fUENDUjFfSENMS19VU0JPVEdfT0ZGU0VUICAgIDExCisjZGVmaW5lIENDTV9QQ0NSMV9IQ0xLX1VTQk9UR19NQVNLICAgICAgKDEgPDwgMTEpCisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsxX09GRlNFVCAgICAgICAgMTAKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzFfTUFTSyAgICAgICAgICAoMSA8PCAxMCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzJfT0ZGU0VUICAgICAgICA5CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEsyX01BU0sgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzNfT0ZGU0VUICAgICAgICA4CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEszX01BU0sgICAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1BFUkNMSzRfT0ZGU0VUICAgICAgICA3CisjZGVmaW5lIENDTV9QQ0NSMV9QRVJDTEs0X01BU0sgICAgICAgICAgKDEgPDwgNykKKyNkZWZpbmUgQ0NNX1BDQ1IxX1ZQVV9CQVVEX09GRlNFVCAgICAgICA2CisjZGVmaW5lIENDTV9QQ0NSMV9WUFVfQkFVRF9NQVNLICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgQ0NNX1BDQ1IxX1NTSTFfQkFVRF9PRkZTRVQgICAgICA1CisjZGVmaW5lIENDTV9QQ0NSMV9TU0kxX0JBVURfTUFTSyAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgQ0NNX1BDQ1IxX1NTSTJfQkFVRF9PRkZTRVQgICAgICA0CisjZGVmaW5lIENDTV9QQ0NSMV9TU0kyX0JBVURfTUFTSyAgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgQ0NNX1BDQ1IxX05GQ19CQVVEX09GRlNFVCAgICAgICAzCisjZGVmaW5lIENDTV9QQ0NSMV9ORkNfQkFVRF9NQVNLICAgICAgICAgKDEgPDwgMykKKyNkZWZpbmUgQ0NNX1BDQ1IxX01TSENfQkFVRF9PRkZTRVQgICAgICAyCisjZGVmaW5lIENDTV9QQ0NSMV9NU0hDX0JBVURfTUFTSyAgICAgICAgKDEgPDwgMikKKworI2RlZmluZSBDQ01fQ0NTUl8zMktTUiAgICAgICAgICAoMSA8PCAxNSkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLTU9ERTEgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLTU9ERTAgICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQ0NNX0NDU1JfQ0xLT1NFTF9PRkZTRVQgMAorI2RlZmluZSBDQ01fQ0NTUl9DTEtPU0VMX01BU0sgICAweDFmCisKKyNkZWZpbmUgU1lTX0ZNQ1IgICAgICAgICAgICAgICAgMHgxNAkvKiAgRnVuY3Rpb25hbCBNdXhpbmcgQ29udHJvbCBSZWcgKi8KKyNkZWZpbmUgU1lTX0NISVBfSUQgICAgICAgICAgICAgMHgwMAkvKiBUaGUgb2Zmc2V0IG9mIENISVAgSUQgcmVnaXN0ZXIgKi8KKworI2VuZGlmIC8qIF9fQVJDSF9BUk1fTUFDSF9NWDJfQ1JNX1JFR1NfSF9fICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9kZXZpY2VzLmMgYi9hcmNoL2FybS9tYWNoLW14Mi9kZXZpY2VzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTFmNDRjMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgyL2RldmljZXMuYwpAQCAtMCwwICsxLDIzMSBAQAorLyoKKyAqIEF1dGhvcjogTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLgorICogICAgICAgPHNvdXJjZUBtdmlzdGEuY29tPgorICoKKyAqIEJhc2VkIG9uIHRoZSBPTUFQIGRldmljZXMuYworICoKKyAqIDIwMDUgKGMpIE1vbnRhVmlzdGEgU29mdHdhcmUsIEluYy4gVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZQorICogdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4gVGhpcyBwcm9ncmFtIGlzCisgKiBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55IHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3MKKyAqIG9yIGltcGxpZWQuCisgKgorICogQ29weXJpZ2h0IDIwMDYtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworLyoKKyAqIFJlc291cmNlIGRlZmluaXRpb24gZm9yIHRoZSBNWEMgSXJEQQorICovCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG14Y19pcmRhX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0ICAgPSBVQVJUM19CQVNFX0FERFIsCisJCS5lbmQgICAgID0gVUFSVDNfQkFTRV9BRERSICsgU1pfNEsgLSAxLAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfVUFSVDMsCisJCS5lbmQgICAgID0gTVhDX0lOVF9VQVJUMywKKwkJLmZsYWdzICAgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworLyogUGxhdGZvcm0gRGF0YSBmb3IgTVhDIElyREEgKi8KK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2lyZGFfZGV2aWNlID0geworCS5uYW1lID0gIm14Y19pcmRhIiwKKwkuaWQgPSAwLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRShteGNfaXJkYV9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IG14Y19pcmRhX3Jlc291cmNlcywKK307CisKKy8qCisgKiBHZW5lcmFsIFB1cnBvc2UgVGltZXIKKyAqIC0gaS5NWDE6IDIgdGltZXIgKHNsaWdobHkgZGlmZmVyZW50IHJlZ2lzdGVyIGhhbmRsaW5nKQorICogLSBpLk1YMjE6IDMgdGltZXIKKyAqIC0gaS5NWDI3OiA2IHRpbWVyCisgKi8KKworLyogV2UgdXNlIGdwdDAgYXMgc3lzdGVtIHRpbWVyLCBzbyBkbyBub3QgYWRkIGEgZGV2aWNlIGZvciB0aGlzIG9uZSAqLworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHRpbWVyMV9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IEdQVDJfQkFTRV9BRERSLAorCQkuZW5kCT0gR1BUMl9CQVNFX0FERFIgKyAweDE3LAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfR1BUMiwKKwkJLmVuZCAgICAgPSBNWENfSU5UX0dQVDIsCisJCS5mbGFncyAgID0gSU9SRVNPVVJDRV9JUlEsCisJfQorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfZ3B0MSA9IHsKKwkubmFtZSA9ICJpbXhfZ3B0IiwKKwkuaWQgPSAxLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh0aW1lcjFfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSB0aW1lcjFfcmVzb3VyY2VzCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHRpbWVyMl9yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IEdQVDNfQkFTRV9BRERSLAorCQkuZW5kCT0gR1BUM19CQVNFX0FERFIgKyAweDE3LAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzFdID0geworCQkuc3RhcnQgICA9IE1YQ19JTlRfR1BUMywKKwkJLmVuZCAgICAgPSBNWENfSU5UX0dQVDMsCisJCS5mbGFncyAgID0gSU9SRVNPVVJDRV9JUlEsCisJfQorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfZ3B0MiA9IHsKKwkubmFtZSA9ICJpbXhfZ3B0IiwKKwkuaWQgPSAyLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh0aW1lcjJfcmVzb3VyY2VzKSwKKwkucmVzb3VyY2UgPSB0aW1lcjJfcmVzb3VyY2VzCit9OworCisjaWZkZWYgQ09ORklHX01BQ0hfTVgyNworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjNfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ0X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDRfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDQsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ0LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDMgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gMywKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXIzX3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXIzX3Jlc291cmNlcworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjRfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ1X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDVfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDUsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ1LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDQgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gNCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXI0X3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXI0X3Jlc291cmNlcworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB0aW1lcjVfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkuc3RhcnQJPSBHUFQ2X0JBU0VfQUREUiwKKwkJLmVuZAk9IEdQVDZfQkFTRV9BRERSICsgMHgxNywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0ICAgPSBNWENfSU5UX0dQVDYsCisJCS5lbmQgICAgID0gTVhDX0lOVF9HUFQ2LAorCQkuZmxhZ3MgICA9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX2dwdDUgPSB7CisJLm5hbWUgPSAiaW14X2dwdCIsCisJLmlkID0gNSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodGltZXI1X3Jlc291cmNlcyksCisJLnJlc291cmNlID0gdGltZXI1X3Jlc291cmNlcworfTsKKyNlbmRpZgorCisvKgorICogV2F0Y2hkb2c6CisgKiAtIGkuTVgxCisgKiAtIGkuTVgyMQorICogLSBpLk1YMjcKKyAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBteGNfd2R0X3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gV0RPR19CQVNFX0FERFIsCisJCS5lbmQJPSBXRE9HX0JBU0VfQUREUiArIDB4MzAsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y193ZHQgPSB7CisJLm5hbWUgPSAibXhjX3dkdCIsCisJLmlkID0gMCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUobXhjX3dkdF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSA9IG14Y193ZHRfcmVzb3VyY2VzLAorfTsKKworLyogR1BJTyBwb3J0IGRlc2NyaXB0aW9uICovCitzdGF0aWMgc3RydWN0IG14Y19ncGlvX3BvcnQgaW14X2dwaW9fcG9ydHNbXSA9IHsKKwlbMF0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tMCIsCisJCS5pcnEgPSBNWENfSU5UX0dQSU8sCisJCS5iYXNlID0gKHZvaWQqKShBSVBJX0JBU0VfQUREUl9WSVJUICsgMHgxNTAwMCArIDB4MTAwICogMCksCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19NQVhfSU5UX0xJTkVTLAorCX0sCisJWzFdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTEiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDEpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDMyLAorCX0sCisJWzJdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTIiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDIpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDY0LAorCX0sCisJWzNdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTMiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDMpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDk2LAorCX0sCisJWzRdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTQiLAorCQkuYmFzZSA9ICh2b2lkKikoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MTUwMDAgKyAweDEwMCAqIDQpLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfTUFYX0lOVF9MSU5FUyArIDEyOCwKKwl9LAorCVs1XSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby01IiwKKwkJLmJhc2UgPSAodm9pZCopKEFJUElfQkFTRV9BRERSX1ZJUlQgKyAweDE1MDAwICsgMHgxMDAgKiA1KSwKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX01BWF9JTlRfTElORVMgKyAxNjAsCisJfQorfTsKKworaW50IF9faW5pdCBteGNfcmVnaXN0ZXJfZ3Bpb3Modm9pZCkKK3sKKwlyZXR1cm4gbXhjX2dwaW9faW5pdChpbXhfZ3Bpb19wb3J0cywgQVJSQVlfU0laRShpbXhfZ3Bpb19wb3J0cykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvZ2VuZXJpYy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvZ2VuZXJpYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ODc1Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9nZW5lcmljLmMKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIGdlbmVyaWMuYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKworLyogTVgyNyBtZW1vcnkgbWFwIGRlZmluaXRpb24gKi8KK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgbXhjX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCS8qCisJICogdGhpcyBmaXhlZCBtYXBwaW5nIGNvdmVyczoKKwkgKiAtIEFJUEkxCisJICogLSBBSVBJMgorCSAqIC0gQUlUQworCSAqIC0gUk9NIFBhdGNoCisJICogLSBhbmQgc29tZSByZXNlcnZlZCBzcGFjZQorCSAqLworCXsKKwkJLnZpcnR1YWwgPSBBSVBJX0JBU0VfQUREUl9WSVJULAorCQkucGZuID0gX19waHlzX3RvX3BmbihBSVBJX0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBBSVBJX1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfSwKKwkvKgorCSAqIHRoaXMgZml4ZWQgbWFwcGluZyBjb3ZlcnM6CisJICogLSBDU0kKKwkgKiAtIEFUQQorCSAqLworCXsKKwkJLnZpcnR1YWwgPSBTQUhCMV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oU0FIQjFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFNBSEIxX1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfSwKKwkvKgorCSAqIHRoaXMgZml4ZWQgbWFwcGluZyBjb3ZlcnM6CisJICogLSBFTUkKKwkgKi8KKwl7CisJCS52aXJ0dWFsID0gWF9NRU1DX0JBU0VfQUREUl9WSVJULAorCQkucGZuID0gX19waHlzX3RvX3BmbihYX01FTUNfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFhfTUVNQ19TSVpFLAorCQkudHlwZSA9IE1UX0RFVklDRQorCX0KK307CisKKy8qCisgKiBJbml0aWFsaXplIHRoZSBtZW1vcnkgbWFwLiBJdCBpcyBjYWxsZWQgZHVyaW5nIHRoZQorICogc3lzdGVtIHN0YXJ0dXAgdG8gY3JlYXRlIHN0YXRpYyBwaHlzaWNhbCB0byB2aXJ0dWFsCisgKiBtZW1vcnkgbWFwIGZvciB0aGUgSU8gbW9kdWxlcy4KKyAqLwordm9pZCBfX2luaXQgbXhjX21hcF9pbyh2b2lkKQoreworCWlvdGFibGVfaW5pdChteGNfaW9fZGVzYywgQVJSQVlfU0laRShteGNfaW9fZGVzYykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvbXgyN2Fkcy5jIGIvYXJjaC9hcm0vbWFjaC1teDIvbXgyN2Fkcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZmYwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9teDI3YWRzLmMKQEAgLTAsMCArMSwzMDQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDAwIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyIFNoYW5lIE5heSAoc2hhbmVAbWluaXJsLmNvbSkKKyAqICBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW9tdXgtbXgxLW14Mi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MjdhZHMuaD4KKworLyogQURTJ3MgTk9SIGZsYXNoICovCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSBteDI3YWRzX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoID0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXgyN2Fkc19mbGFzaF9yZXNvdXJjZSA9IHsKKwkuc3RhcnQgPSAweGMwMDAwMDAwLAorCS5lbmQgPSAweGMwMDAwMDAwICsgMHgwMjAwMDAwMCAtIDEsCisJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14MjdhZHNfbm9yX210ZF9kZXZpY2UgPSB7CisJLm5hbWUgPSAicGh5c21hcC1mbGFzaCIsCisJLmlkID0gMCwKKwkuZGV2ID0geworCQkucGxhdGZvcm1fZGF0YSA9ICZteDI3YWRzX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcyA9IDEsCisJLnJlc291cmNlID0gJm14MjdhZHNfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgaW50IG14Y191YXJ0MF9waW5zW10gPSB7CisJUEUxMl9QRl9VQVJUMV9UWEQsCisJUEUxM19QRl9VQVJUMV9SWEQsCisJUEUxNF9QRl9VQVJUMV9DVFMsCisJUEUxNV9QRl9VQVJUMV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQwIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0MV9waW5zW10gPSB7CisJUEUzX1BGX1VBUlQyX0NUUywKKwlQRTRfUEZfVUFSVDJfUlRTLAorCVBFNl9QRl9VQVJUMl9UWEQsCisJUEU3X1BGX1VBUlQyX1JYRAorfTsKKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiVUFSVDEiKTsKK30KKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9leGl0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgbXhjX3VhcnQyX3BpbnNbXSA9IHsKKwlQRThfUEZfVUFSVDNfVFhELAorCVBFOV9QRl9VQVJUM19SWEQsCisJUEUxMF9QRl9VQVJUM19DVFMsCisJUEUxMV9QRl9VQVJUM19SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQyIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMiIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0M19waW5zW10gPSB7CisJUEIyNl9BRl9VQVJUNF9SVFMsCisJUEIyOF9BRl9VQVJUNF9UWEQsCisJUEIyOV9BRl9VQVJUNF9DVFMsCisJUEIzMV9BRl9VQVJUNF9SWEQKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDNfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0M19waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQzIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDNfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0M19waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMyIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0NF9waW5zW10gPSB7CisJUEIxOF9BRl9VQVJUNV9UWEQsCisJUEIxOV9BRl9VQVJUNV9SWEQsCisJUEIyMF9BRl9VQVJUNV9DVFMsCisJUEIyMV9BRl9VQVJUNV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDRfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDRfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQ0Iik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDRfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDRfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUNCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0NV9waW5zW10gPSB7CisJUEIxMF9BRl9VQVJUNl9UWEQsCisJUEIxMl9BRl9VQVJUNl9DVFMsCisJUEIxMV9BRl9VQVJUNl9SWEQsCisJUEIxM19BRl9VQVJUNl9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDVfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDVfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQ1Iik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDVfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0NV9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDVfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUNSIpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJm14MjdhZHNfbm9yX210ZF9kZXZpY2UsCit9OworCitzdGF0aWMgaW50IG14Y19mZWNfcGluc1tdID0geworCVBEMF9BSU5fRkVDX1RYRDAsCisJUEQxX0FJTl9GRUNfVFhEMSwKKwlQRDJfQUlOX0ZFQ19UWEQyLAorCVBEM19BSU5fRkVDX1RYRDMsCisJUEQ0X0FPVVRfRkVDX1JYX0VSLAorCVBENV9BT1VUX0ZFQ19SWEQxLAorCVBENl9BT1VUX0ZFQ19SWEQyLAorCVBEN19BT1VUX0ZFQ19SWEQzLAorCVBEOF9BRl9GRUNfTURJTywKKwlQRDlfQUlOX0ZFQ19NREMsCisJUEQxMF9BT1VUX0ZFQ19DUlMsCisJUEQxMV9BT1VUX0ZFQ19UWF9DTEssCisJUEQxMl9BT1VUX0ZFQ19SWEQwLAorCVBEMTNfQU9VVF9GRUNfUlhfRFYsCisJUEQxNF9BT1VUX0ZFQ19DTFIsCisJUEQxNV9BT1VUX0ZFQ19DT0wsCisJUEQxNl9BSU5fRkVDX1RYX0VSLAorCVBGMjNfQUlOX0ZFQ19UWF9FTgorfTsKKworc3RhdGljIHZvaWQgZ3Bpb19mZWNfYWN0aXZlKHZvaWQpCit7CisJbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfZmVjX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y19mZWNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIkZFQyIpOworfQorCitzdGF0aWMgdm9pZCBncGlvX2ZlY19pbmFjdGl2ZSh2b2lkKQoreworCW14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX2ZlY19waW5zLAorCQkJQVJSQVlfU0laRShteGNfZmVjX3BpbnMpLAorCQkJTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFLCAiRkVDIik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhIHVhcnRfcGRhdGFbXSA9IHsKKwl7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDBfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0MF9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0MV9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQxX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQyX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDJfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDNfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0M19leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0NF9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQ0X2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwgeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQ1X2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDVfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IG14MjdhZHNfYm9hcmRfaW5pdCh2b2lkKQoreworCWludCBpOworCisJZ3Bpb19mZWNfYWN0aXZlKCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKQorCQlpbXhfaW5pdF91YXJ0KGksICZ1YXJ0X3BkYXRhW2ldKTsKKworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHBsYXRmb3JtX2RldmljZXMsIEFSUkFZX1NJWkUocGxhdGZvcm1fZGV2aWNlcykpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgbXgyN2Fkc190aW1lcl9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmcmVmID0gMjYwMDAwMDA7CisKKwlpZiAoKF9fcmF3X3JlYWR3KFBCQ19WRVJTSU9OX1JFRykgJiBDS0lIXzI3TUhaX0JJVF9TRVQpID09IDApCisJCWZyZWYgPSAyNzAwMDAwMDsKKworCW14Y19jbG9ja3NfaW5pdChmcmVmKTsKKwlteGNfdGltZXJfaW5pdCgiZ3B0X2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgbXgyN2Fkc190aW1lciA9IHsKKwkuaW5pdAk9IG14MjdhZHNfdGltZXJfaW5pdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgbXgyN2Fkc19pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsID0gUEJDX0JBU0VfQUREUkVTUywKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQ1M0X0JBU0VfQUREUiksCisJCS5sZW5ndGggPSBTWl8xTSwKKwkJLnR5cGUgPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IG14MjdhZHNfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChteDI3YWRzX2lvX2Rlc2MsIEFSUkFZX1NJWkUobXgyN2Fkc19pb19kZXNjKSk7Cit9CisKK01BQ0hJTkVfU1RBUlQoTVgyN0FEUywgIkZyZWVzY2FsZSBpLk1YMjdBRFMiKQorCS8qIG1haW50YWluZXI6IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuICovCisJLnBoeXNfaW8gICAgICAgID0gQUlQSV9CQVNFX0FERFIsCisJLmlvX3BnX29mZnN0ICAgID0gKChBSVBJX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBteDI3YWRzX21hcF9pbywKKwkuaW5pdF9pcnEgICAgICAgPSBteGNfaW5pdF9pcnEsCisJLmluaXRfbWFjaGluZSAgID0gbXgyN2Fkc19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZteDI3YWRzX3RpbWVyLAorTUFDSElORV9FTkQKKwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvcGNtMDM4LmMgYi9hcmNoL2FybS9tYWNoLW14Mi9wY20wMzguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWEyOGY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtMDM4LmMKQEAgLTAsMCArMSwyMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBSb2JlcnQgU2Nod2ViZWwgPHIuc2Nod2ViZWxAcGVuZ3V0cm9uaXguZGU+LCBQZW5ndXRyb25peAorICogQ29weXJpZ2h0IChDKSAyMDA4IEp1ZXJnZW4gQmVpc2VydCAoa2VybmVsQHBlbmd1dHJvbml4LmRlKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14MS1teDIuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW14LXVhcnQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1wY20wMzguaD4KKworLyoKKyAqIFBoeXRlYydzIHBoeUNPUkUtaS5NWDI3IGNvbWVzIHdpdGggMzJNaUIgZmxhc2gsCisgKiAxNiBiaXQgd2lkdGgKKyAqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcGNtMDM4X2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoID0gMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcGNtMDM4X2ZsYXNoX3Jlc291cmNlID0geworCS5zdGFydCA9IDB4YzAwMDAwMDAsCisJLmVuZCAgID0gMHhjMWZmZmZmZiwKKwkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBjbTAzOF9ub3JfbXRkX2RldmljZSA9IHsKKwkubmFtZSA9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQgPSAwLAorCS5kZXYgPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJnBjbTAzOF9mbGFzaF9kYXRhLAorCX0sCisJLm51bV9yZXNvdXJjZXMgPSAxLAorCS5yZXNvdXJjZSA9ICZwY20wMzhfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgaW50IG14Y191YXJ0MF9waW5zW10gPSB7CisJUEUxMl9QRl9VQVJUMV9UWEQsCisJUEUxM19QRl9VQVJUMV9SWEQsCisJUEUxNF9QRl9VQVJUMV9DVFMsCisJUEUxNV9QRl9VQVJUMV9SVFMKK307CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQwIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDBfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0MF9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDBfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMCIpOworfQorCitzdGF0aWMgaW50IG14Y191YXJ0MV9waW5zW10gPSB7CisJUEUzX1BGX1VBUlQyX0NUUywKKwlQRTRfUEZfVUFSVDJfUlRTLAorCVBFNl9QRl9VQVJUMl9UWEQsCisJUEU3X1BGX1VBUlQyX1JYRAorfTsKKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiVUFSVDEiKTsKK30KKworc3RhdGljIGludCB1YXJ0X214Y19wb3J0MV9leGl0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJcmV0dXJuIG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMobXhjX3VhcnQxX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y191YXJ0MV9waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSwgIlVBUlQxIik7Cit9CisKK3N0YXRpYyBpbnQgbXhjX3VhcnQyX3BpbnNbXSA9IHsgUEUxMF9QRl9VQVJUM19DVFMsCisJCQkJUEU5X1BGX1VBUlQzX1JYRCwKKwkJCQlQRTEwX1BGX1VBUlQzX0NUUywKKwkJCQlQRTlfUEZfVUFSVDNfUlhEIH07CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfaW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX05PUk1BTCwgIlVBUlQyIik7Cit9CisKK3N0YXRpYyBpbnQgdWFydF9teGNfcG9ydDJfZXhpdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y191YXJ0Ml9waW5zLAorCQkJQVJSQVlfU0laRShteGNfdWFydDJfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJVQVJUMiIpOworfQorCitzdGF0aWMgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSB1YXJ0X3BkYXRhW10gPSB7CisJeworCQkuaW5pdCA9IHVhcnRfbXhjX3BvcnQwX2luaXQsCisJCS5leGl0ID0gdWFydF9teGNfcG9ydDBfZXhpdCwKKwkJLmZsYWdzID0gSU1YVUFSVF9IQVZFX1JUU0NUUywKKwl9LCB7CisJCS5pbml0ID0gdWFydF9teGNfcG9ydDFfaW5pdCwKKwkJLmV4aXQgPSB1YXJ0X214Y19wb3J0MV9leGl0LAorCQkuZmxhZ3MgPSBJTVhVQVJUX0hBVkVfUlRTQ1RTLAorCX0sIHsKKwkJLmluaXQgPSB1YXJ0X214Y19wb3J0Ml9pbml0LAorCQkuZXhpdCA9IHVhcnRfbXhjX3BvcnQyX2V4aXQsCisJCS5mbGFncyA9IElNWFVBUlRfSEFWRV9SVFNDVFMsCisJfSwKK307CisKK3N0YXRpYyBpbnQgbXhjX2ZlY19waW5zW10gPSB7CisJUEQwX0FJTl9GRUNfVFhEMCwKKwlQRDFfQUlOX0ZFQ19UWEQxLAorCVBEMl9BSU5fRkVDX1RYRDIsCisJUEQzX0FJTl9GRUNfVFhEMywKKwlQRDRfQU9VVF9GRUNfUlhfRVIsCisJUEQ1X0FPVVRfRkVDX1JYRDEsCisJUEQ2X0FPVVRfRkVDX1JYRDIsCisJUEQ3X0FPVVRfRkVDX1JYRDMsCisJUEQ4X0FGX0ZFQ19NRElPLAorCVBEOV9BSU5fRkVDX01EQywKKwlQRDEwX0FPVVRfRkVDX0NSUywKKwlQRDExX0FPVVRfRkVDX1RYX0NMSywKKwlQRDEyX0FPVVRfRkVDX1JYRDAsCisJUEQxM19BT1VUX0ZFQ19SWF9EViwKKwlQRDE0X0FPVVRfRkVDX0NMUiwKKwlQRDE1X0FPVVRfRkVDX0NPTCwKKwlQRDE2X0FJTl9GRUNfVFhfRVIsCisJUEYyM19BSU5fRkVDX1RYX0VOCit9OworCitzdGF0aWMgdm9pZCBncGlvX2ZlY19hY3RpdmUodm9pZCkKK3sKKwlteGNfZ3Bpb19zZXR1cF9tdWx0aXBsZV9waW5zKG14Y19mZWNfcGlucywKKwkJCUFSUkFZX1NJWkUobXhjX2ZlY19waW5zKSwKKwkJCU1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMLCAiRkVDIik7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fZmVjX2luYWN0aXZlKHZvaWQpCit7CisJbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhteGNfZmVjX3BpbnMsCisJCQlBUlJBWV9TSVpFKG14Y19mZWNfcGlucyksCisJCQlNWENfR1BJT19BTExPQ19NT0RFX1JFTEVBU0UsICJGRUMiKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZwY20wMzhfbm9yX210ZF9kZXZpY2UsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgcGNtMDM4X2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKwlncGlvX2ZlY19hY3RpdmUoKTsKKworCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspCisJCWlteF9pbml0X3VhcnQoaSwgJnVhcnRfcGRhdGFbaV0pOworCisJcGxhdGZvcm1fYWRkX2RldmljZXMocGxhdGZvcm1fZGV2aWNlcywgQVJSQVlfU0laRShwbGF0Zm9ybV9kZXZpY2VzKSk7CisKKyNpZmRlZiBDT05GSUdfTUFDSF9QQ005NzBfQkFTRUJPQVJECisJcGNtOTcwX2Jhc2Vib2FyZF9pbml0KCk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19pbml0IHBjbTAzOF90aW1lcl9pbml0KHZvaWQpCit7CisJbXhjX2Nsb2Nrc19pbml0KDI2MDAwMDAwKTsKKwlteGNfdGltZXJfaW5pdCgiZ3B0X2Nsay4wIik7Cit9CisKK3N0cnVjdCBzeXNfdGltZXIgcGNtMDM4X3RpbWVyID0geworCS5pbml0ID0gcGNtMDM4X3RpbWVyX2luaXQsCit9OworCitNQUNISU5FX1NUQVJUKFBDTTAzOCwgInBoeUNPUkUtaS5NWDI3IikKKwkucGh5c19pbyAgICAgICAgPSBBSVBJX0JBU0VfQUREUiwKKwkuaW9fcGdfb2Zmc3QgICAgPSAoKEFJUElfQkFTRV9BRERSX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMgICAgPSBQSFlTX09GRlNFVCArIDB4MTAwLAorCS5tYXBfaW8gICAgICAgICA9IG14Y19tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IHBjbTAzOF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZwY20wMzhfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvcGNtOTcwLWJhc2Vib2FyZC5jIGIvYXJjaC9hcm0vbWFjaC1teDIvcGNtOTcwLWJhc2Vib2FyZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyOGFjNGQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9wY205NzAtYmFzZWJvYXJkLmMKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisKKy8qCisgKiBzeXN0ZW0gaW5pdCBmb3IgYmFzZWJvYXJkIHVzYWdlLiBXaWxsIGJlIGNhbGxlZCBieSBwY20wMzggaW5pdC4KKyAqCisgKiBBZGQgcGxhdGZvcm0gZGV2aWNlcyBwcmVzZW50IG9uIHRoaXMgYmFzZWJvYXJkIGFuZCBpbml0CisgKiB0aGVtIGZyb20gQ1BVIHNpZGUgYXMgZmFyIGFzIHJlcXVpcmVkIHRvIHVzZSB0aGVtIGxhdGVyIG9uCisgKi8KK3ZvaWQgX19pbml0IHBjbTk3MF9iYXNlYm9hcmRfaW5pdCh2b2lkKQoreworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDIvc2VyaWFsLmMgYi9hcmNoL2FybS9tYWNoLW14Mi9zZXJpYWwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzBjMDJiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1teDIvc2VyaWFsLmMKQEAgLTAsMCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pbXgtdWFydC5oPgorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQwW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUMV9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUMV9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQxLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTAgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDAsCisJLnJlc291cmNlID0gdWFydDAsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQwKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDFbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQyX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQyX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDIsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQyLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMSA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMSwKKwkucmVzb3VyY2UgPSB1YXJ0MSwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDEpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MltdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDNfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDNfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMywKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UyID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAyLAorCS5yZXNvdXJjZSA9IHVhcnQyLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MiksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQzW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUNF9CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUNF9CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQ0LAorCQkuZW5kID0gTVhDX0lOVF9VQVJUNCwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTMgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDMsCisJLnJlc291cmNlID0gdWFydDMsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQzKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDRbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ1X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ1X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDUsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlNCA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gNCwKKwkucmVzb3VyY2UgPSB1YXJ0NCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDQpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0NVtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDZfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDZfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUNiwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2U1ID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSA1LAorCS5yZXNvdXJjZSA9IHVhcnQ1LAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0NSksCit9OworCisvKgorICogUmVnaXN0ZXIgb25seSB0aG9zZSBVQVJUcyB0aGF0IHBoeXNpY2FsbHkgZXhpc3RzCisgKi8KK2ludCBfX2luaXQgaW14X2luaXRfdWFydChpbnQgdWFydF9ubywgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpCit7CisJc3dpdGNoICh1YXJ0X25vKSB7CisJY2FzZSAwOgorCQlteGNfdWFydF9kZXZpY2UwLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMCk7CisJCWJyZWFrOworCWNhc2UgMToKKwkJbXhjX3VhcnRfZGV2aWNlMS5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTEpOworCQlicmVhazsKKyNpZm5kZWYgQ09ORklHX01YQ19JUkRBCisJY2FzZSAyOgorCQlteGNfdWFydF9kZXZpY2UyLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMik7CisJCWJyZWFrOworI2VuZGlmCisJY2FzZSAzOgorCQlteGNfdWFydF9kZXZpY2UzLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMyk7CisJCWJyZWFrOworCWNhc2UgNDoKKwkJbXhjX3VhcnRfZGV2aWNlNC5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTQpOworCQlicmVhazsKKwljYXNlIDU6CisJCW14Y191YXJ0X2RldmljZTUuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2U1KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14Mi9zeXN0ZW0uYyBiL2FyY2gvYXJtL21hY2gtbXgyL3N5c3RlbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzA0NjQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14Mi9zeXN0ZW0uYwpAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IEFSTSBMaW1pdGVkCisgKiBDb3B5cmlnaHQgKEMpIDIwMDAgRGVlcCBCbHVlIFNvbHV0aW9ucyBMdGQKKyAqIENvcHlyaWdodCAyMDA2LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vcHJvYy1mbnMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisKKy8qCisgKiBQdXQgdGhlIENQVSBpbnRvIGlkbGUgbW9kZS4gSXQgaXMgY2FsbGVkIGJ5IGRlZmF1bHRfaWRsZSgpCisgKiBpbiBwcm9jZXNzLmMgZmlsZS4KKyAqLwordm9pZCBhcmNoX2lkbGUodm9pZCkKK3sKKwkvKgorCSAqIFRoaXMgc2hvdWxkIGRvIGFsbCB0aGUgY2xvY2sgc3dpdGNoaW5nCisJICogYW5kIHdhaXQgZm9yIGludGVycnVwdCB0cmlja3MuCisJICovCisJY3B1X2RvX2lkbGUoKTsKK30KKworI2RlZmluZSBXRE9HX1dDUl9SRUcgICAgICAgICAgICAgICAgICAgIElPX0FERFJFU1MoV0RPR19CQVNFX0FERFIpCisjZGVmaW5lIFdET0dfV0NSX1NSUyAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKworLyoKKyAqIFJlc2V0IHRoZSBzeXN0ZW0uIEl0IGlzIGNhbGxlZCBieSBtYWNoaW5lX3Jlc3RhcnQoKS4KKyAqLwordm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSkKK3sKKwlzdHJ1Y3QgY2xrICpjbGs7CisKKwljbGsgPSBjbGtfZ2V0KE5VTEwsICJ3ZG9nX2NsayIpOworCWlmICghY2xrKSB7CisJCXByaW50ayhLRVJOX0VSUiJDYW5ub3QgYWN0aXZhdGUgdGhlIHdhdGNoZG9nLiBHaXZpbmcgdXBcbiIpOworCQlyZXR1cm47CisJfQorCisJY2xrX2VuYWJsZShjbGspOworCisJLyogQXNzZXJ0IFNSUyBzaWduYWwgKi8KKwlfX3Jhd193cml0ZXcoX19yYXdfcmVhZHcoV0RPR19XQ1JfUkVHKSAmIH5XRE9HX1dDUl9TUlMsIFdET0dfV0NSX1JFRyk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZwppbmRleCA1ZmU4NjA2Li5kYjk0MzFkIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtbXgzL0tjb25maWcKQEAgLTgsNSArOCwxOCBAQAogCSAgSW5jbHVkZSBzdXBwb3J0IGZvciBNWDMxQURTIHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzIHNwZWNpZmljCiAJICBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCiAKK2NvbmZpZyBNQUNIX1BDTTAzNworCWJvb2wgIlN1cHBvcnQgUGh5dGVjIHBjbTAzNyBwbGF0Zm9ybXMiCisJaGVscAorCSAgSW5jbHVkZSBzdXBwb3J0IGZvciBQaHl0ZWMgcGNtMDM3IHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzCisJICBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCisKK2NvbmZpZyBNQUNIX01YMzFMSVRFCisJYm9vbCAiU3VwcG9ydCBNWDMxIExJVEVLSVQgKExvZ2ljUEQpIgorCWRlZmF1bHQgbgorCWhlbHAKKwkgIEluY2x1ZGUgc3VwcG9ydCBmb3IgTVgzMSBMSVRFS0lUIHBsYXRmb3JtLiBUaGlzIGluY2x1ZGVzIHNwZWNpZmljCisJICBjb25maWd1cmF0aW9ucyBmb3IgdGhlIGJvYXJkIGFuZCBpdHMgcGVyaXBoZXJhbHMuCisKIGVuZG1lbnUKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQppbmRleCBjYmVjOTk3Li44YjIxYWJiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW14My9NYWtlZmlsZQpAQCAtNCw1ICs0LDcgQEAKIAogIyBPYmplY3QgZmlsZSBsaXN0cy4KIAotb2JqLXkJCQk6PSBtbS5vIHRpbWUubworb2JqLXkJCQk6PSBtbS5vIGNsb2NrLm8gZGV2aWNlcy5vIGlvbXV4Lm8KIG9iai0kKENPTkZJR19NQUNIX01YMzFBRFMpCSs9IG14MzFhZHMubworb2JqLSQoQ09ORklHX01BQ0hfTVgzMUxJVEUpCSs9IG14MzFsaXRlLm8KK29iai0kKENPTkZJR19NQUNIX1BDTTAzNykJKz0gcGNtMDM3Lm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLW14My9jbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmMzYzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9jbG9jay5jCkBAIC0wLDAgKzEsMTE0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBieSBTYXNjaGEgSGF1ZXIgPGtlcm5lbEBwZW5ndXRyb25peC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KKyNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKworI2luY2x1ZGUgImNybV9yZWdzLmgiCisKKyNkZWZpbmUgUFJFX0RJVl9NSU5fRlJFUSAgICAxMDAwMDAwMCAvKiBNaW5pbXVtIEZyZXF1ZW5jeSBhZnRlciBQcmVkaXZpZGVyICovCisKK3N0YXRpYyB2b2lkIF9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyh1MzIgZGl2LCB1MzIgKnByZSwgdTMyICpwb3N0KQoreworCXUzMiBtaW5fcHJlLCB0ZW1wX3ByZSwgb2xkX2VyciwgZXJyOworCisJaWYgKGRpdiA+PSA1MTIpIHsKKwkJKnByZSA9IDg7CisJCSpwb3N0ID0gNjQ7CisJfSBlbHNlIGlmIChkaXYgPj0gNjQpIHsKKwkJbWluX3ByZSA9IChkaXYgLSAxKSAvIDY0ICsgMTsKKwkJb2xkX2VyciA9IDg7CisJCWZvciAodGVtcF9wcmUgPSA4OyB0ZW1wX3ByZSA+PSBtaW5fcHJlOyB0ZW1wX3ByZS0tKSB7CisJCQllcnIgPSBkaXYgJSB0ZW1wX3ByZTsKKwkJCWlmIChlcnIgPT0gMCkgeworCQkJCSpwcmUgPSB0ZW1wX3ByZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWVyciA9IHRlbXBfcHJlIC0gZXJyOworCQkJaWYgKGVyciA8IG9sZF9lcnIpIHsKKwkJCQlvbGRfZXJyID0gZXJyOworCQkJCSpwcmUgPSB0ZW1wX3ByZTsKKwkJCX0KKwkJfQorCQkqcG9zdCA9IChkaXYgKyAqcHJlIC0gMSkgLyAqcHJlOworCX0gZWxzZSBpZiAoZGl2IDw9IDgpIHsKKwkJKnByZSA9IGRpdjsKKwkJKnBvc3QgPSAxOworCX0gZWxzZSB7CisJCSpwcmUgPSAxOworCQkqcG9zdCA9IGRpdjsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9wbGxfY2xrOworc3RhdGljIHN0cnVjdCBjbGsgbWN1X21haW5fY2xrOworc3RhdGljIHN0cnVjdCBjbGsgdXNiX3BsbF9jbGs7CitzdGF0aWMgc3RydWN0IGNsayBzZXJpYWxfcGxsX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlwZ19jbGs7CitzdGF0aWMgc3RydWN0IGNsayBja2loX2NsazsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGFoYl9jbGs7CisKK3N0YXRpYyBpbnQgX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChjbGstPmVuYWJsZV9yZWcpOworCXJlZyB8PSAzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0OworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX2Nsa19kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgJj0gfigzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlfX3Jhd193cml0ZWwocmVnLCBjbGstPmVuYWJsZV9yZWcpOworfQorCitzdGF0aWMgdm9pZCBfY2xrX2VtaV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoY2xrLT5lbmFibGVfcmVnKTsKKwlyZWcgJj0gfigzIDw8IGNsay0+ZW5hYmxlX3NoaWZ0KTsKKwlyZWcgfD0gKDEgPDwgY2xrLT5lbmFibGVfc2hpZnQpOworCV9fcmF3X3dyaXRlbChyZWcsIGNsay0+ZW5hYmxlX3JlZyk7Cit9CisKK3N0YXRpYyBpbnQgX2Nsa19wbGxfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZzsKKwlzaWduZWQgbG9uZyBwZCA9IDE7CS8qIFByZS1kaXZpZGVyICovCisJc2lnbmVkIGxvbmcgbWZpOwkvKiBNdWx0aXBsaWNhdGlvbiBGYWN0b3IgKEludGVnZXIgcGFydCkgKi8KKwlzaWduZWQgbG9uZyBtZm47CS8qIE11bHRpcGxpY2F0aW9uIEZhY3RvciAoSW50ZWdlciBwYXJ0KSAqLworCXNpZ25lZCBsb25nIG1mZDsJLyogTXVsdGlwbGljYXRpb24gRmFjdG9yIChEZW5vbWluYXRvciBQYXJ0KSAqLworCXNpZ25lZCBsb25nIHRtcDsKKwl1MzIgcmVmX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJd2hpbGUgKCgocmVmX2ZyZXEgLyBwZCkgKiAxMCkgPiByYXRlKQorCQlwZCsrOworCisJaWYgKChyZWZfZnJlcSAvIHBkKSA8IFBSRV9ESVZfTUlOX0ZSRVEpCisJCXJldHVybiAtRUlOVkFMOworCisJLyogdGhlIHJlZl9mcmVxLzIgaW4gdGhlIGZvbGxvd2luZyBpcyB0byByb3VuZCB1cCAqLworCW1maSA9ICgoKHJhdGUgLyAyKSAqIHBkKSArIChyZWZfZnJlcSAvIDIpKSAvIHJlZl9mcmVxOworCWlmIChtZmkgPCA1IHx8IG1maSA+IDE1KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHBpY2sgYSBtZmQgdmFsdWUgdGhhdCB3aWxsIHdvcmsKKwkgKiB0aGVuIHNvbHZlIGZvciBtZm4gKi8KKwltZmQgPSByZWZfZnJlcSAvIDUwMDAwOworCisJLyoKKwkgKiAgICAgICAgICBwbGxfZnJlcSAqIHBkICogbWZkCisJICogICBtZm4gPSAtLS0tLS0tLS0tLS0tLS0tLS0tLSAgLSAgKG1maSAqIG1mZCkKKwkgKiAgICAgICAgICAgMiAqIHJlZl9mcmVxCisJICovCisJLyogdGhlIHRtcC8yIGlzIGZvciByb3VuZGluZyAqLworCXRtcCA9IHJlZl9mcmVxIC8gMTAwMDA7CisJbWZuID0KKwkgICAgKCgoKCgocmF0ZSAvIDIpICsgKHRtcCAvIDIpKSAvIHRtcCkgKiBwZCkgKiBtZmQpIC8gMTAwMDApIC0KKwkgICAgKG1maSAqIG1mZCk7CisKKwltZm4gPSBtZm4gJiAweDNmZjsKKwlwZC0tOworCW1mZC0tOworCisJLyogQ2hhbmdlIHRoZSBQbGwgdmFsdWUgKi8KKwlyZWcgPSAobWZpIDw8IE1YQ19DQ01fUENUTF9NRklfT0ZGU0VUKSB8CisJICAgIChtZm4gPDwgTVhDX0NDTV9QQ1RMX01GTl9PRkZTRVQpIHwKKwkgICAgKG1mZCA8PCBNWENfQ0NNX1BDVExfTUZEX09GRlNFVCkgfCAocGQgPDwgTVhDX0NDTV9QQ1RMX1BEX09GRlNFVCk7CisKKwlpZiAoY2xrID09ICZtY3VfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9NUENUTCk7CisJZWxzZSBpZiAoY2xrID09ICZ1c2JfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9VUENUTCk7CisJZWxzZSBpZiAoY2xrID09ICZzZXJpYWxfcGxsX2NsaykKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9TUlBDVEwpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGxsX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlsb25nIG1maSwgbWZuLCBtZmQsIHBkZiwgcmVmX2NsaywgbWZuX2FiczsKKwl1bnNpZ25lZCBsb25nIHJlZywgY2NtcjsKKwlzNjQgdGVtcDsKKwl1bnNpZ25lZCBpbnQgcHJjczsKKworCWNjbXIgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NDTVIpOworCXByY3MgPSAoY2NtciAmIE1YQ19DQ01fQ0NNUl9QUkNTX01BU0spID4+IE1YQ19DQ01fQ0NNUl9QUkNTX09GRlNFVDsKKwlpZiAocHJjcyA9PSAweDEpCisJCXJlZl9jbGsgPSBDS0lMX0NMS19GUkVRICogMTAyNDsKKwllbHNlCisJCXJlZl9jbGsgPSBjbGtfZ2V0X3JhdGUoJmNraWhfY2xrKTsKKworCWlmIChjbGsgPT0gJm1jdV9wbGxfY2xrKSB7CisJCWlmICgoY2NtciAmIE1YQ19DQ01fQ0NNUl9NUEUpID09IDApCisJCQlyZXR1cm4gcmVmX2NsazsKKwkJaWYgKChjY21yICYgTVhDX0NDTV9DQ01SX01EUykgIT0gMCkKKwkJCXJldHVybiByZWZfY2xrOworCQlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX01QQ1RMKTsKKwl9IGVsc2UgaWYgKGNsayA9PSAmdXNiX3BsbF9jbGspCisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fVVBDVEwpOworCWVsc2UgaWYgKGNsayA9PSAmc2VyaWFsX3BsbF9jbGspCisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fU1JQQ1RMKTsKKwllbHNlIHsKKwkJQlVHKCk7CisJCXJldHVybiAwOworCX0KKworCXBkZiA9IChyZWcgJiBNWENfQ0NNX1BDVExfUERfTUFTSykgPj4gTVhDX0NDTV9QQ1RMX1BEX09GRlNFVDsKKwltZmQgPSAocmVnICYgTVhDX0NDTV9QQ1RMX01GRF9NQVNLKSA+PiBNWENfQ0NNX1BDVExfTUZEX09GRlNFVDsKKwltZmkgPSAocmVnICYgTVhDX0NDTV9QQ1RMX01GSV9NQVNLKSA+PiBNWENfQ0NNX1BDVExfTUZJX09GRlNFVDsKKwltZmkgPSAobWZpIDw9IDUpID8gNSA6IG1maTsKKwltZm4gPSBtZm5fYWJzID0gcmVnICYgTVhDX0NDTV9QQ1RMX01GTl9NQVNLOworCisJaWYgKG1mbiA+PSAweDIwMCkgeworCQltZm4gfD0gMHhGRkZGRkUwMDsKKwkJbWZuX2FicyA9IC1tZm47CisJfQorCisJcmVmX2NsayAqPSAyOworCXJlZl9jbGsgLz0gcGRmICsgMTsKKworCXRlbXAgPSAodTY0KSByZWZfY2xrICogbWZuX2FiczsKKwlkb19kaXYodGVtcCwgbWZkICsgMSk7CisJaWYgKG1mbiA8IDApCisJCXRlbXAgPSAtdGVtcDsKKwl0ZW1wID0gKHJlZl9jbGsgKiBtZmkpICsgdGVtcDsKKworCXJldHVybiB0ZW1wOworfQorCitzdGF0aWMgaW50IF9jbGtfdXNiX3BsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NDTVIpOworCXJlZyB8PSBNWENfQ0NNX0NDTVJfVVBFOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ0NNUik7CisKKwkvKiBObyBsb2NrIGJpdCBvbiBNWDMxLCBzbyB1c2luZyBtYXggdGltZSBmcm9tIHNwZWMgKi8KKwl1ZGVsYXkoODApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfdXNiX3BsbF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlyZWcgJj0gfk1YQ19DQ01fQ0NNUl9VUEU7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DQ01SKTsKK30KKworc3RhdGljIGludCBfY2xrX3NlcmlhbF9wbGxfZW5hYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DQ01SKTsKKwlyZWcgfD0gTVhDX0NDTV9DQ01SX1NQRTsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NDTVIpOworCisJLyogTm8gbG9jayBiaXQgb24gTVgzMSwgc28gdXNpbmcgbWF4IHRpbWUgZnJvbSBzcGVjICovCisJdWRlbGF5KDgwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfY2xrX3NlcmlhbF9wbGxfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHJlZzsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ0NNUik7CisJcmVnICY9IH5NWENfQ0NNX0NDTVJfU1BFOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ0NNUik7Cit9CisKKyNkZWZpbmUgUERSMChtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIwKSAmIG1hc2spID4+IG9mZikKKyNkZWZpbmUgUERSMShtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIxKSAmIG1hc2spID4+IG9mZikKKyNkZWZpbmUgUERSMihtYXNrLCBvZmYpICgoX19yYXdfcmVhZGwoTVhDX0NDTV9QRFIyKSAmIG1hc2spID4+IG9mZikKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tY3VfbWFpbl9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdTMyIHBtY3IwID0gX19yYXdfcmVhZGwoTVhDX0NDTV9QTUNSMCk7CisKKwlpZiAoKHBtY3IwICYgTVhDX0NDTV9QTUNSMF9ERlNVUDEpID09IE1YQ19DQ01fUE1DUjBfREZTVVAxX1NQTEwpCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoJnNlcmlhbF9wbGxfY2xrKTsKKwllbHNlCisJCXJldHVybiBjbGtfZ2V0X3JhdGUoJm1jdV9wbGxfY2xrKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19oY2xrX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1heF9wZGY7CisKKwltYXhfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfTUFYX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKG1heF9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19pcGdfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgaXBnX3BkZjsKKworCWlwZ19wZGYgPSBQRFIwKE1YQ19DQ01fUERSMF9JUEdfUE9ERl9NQVNLLAorCQkgICAgICAgTVhDX0NDTV9QRFIwX0lQR19QT0RGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAoaXBnX3BkZiArIDEpOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX25mY19nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyBuZmNfcGRmOworCisJbmZjX3BkZiA9IFBEUjAoTVhDX0NDTV9QRFIwX05GQ19QT0RGX01BU0ssCisJCSAgICAgICBNWENfQ0NNX1BEUjBfTkZDX1BPREZfT0ZGU0VUKTsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChuZmNfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfaHNwX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIGhzcF9wZGY7CisKKwloc3BfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfSFNQX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9IU1BfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKGhzcF9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa191c2JfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdXNiX3BkZiwgdXNiX3ByZXBkZjsKKworCXVzYl9wZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9VU0JfUE9ERl9NQVNLLAorCQkgICAgICAgTVhDX0NDTV9QRFIxX1VTQl9QT0RGX09GRlNFVCk7CisJdXNiX3ByZXBkZiA9IFBEUjEoTVhDX0NDTV9QRFIxX1VTQl9QUkRGX01BU0ssCisJCQkgIE1YQ19DQ01fUERSMV9VU0JfUFJERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHVzYl9wcmVwZGYgKyAxKSAvICh1c2JfcGRmICsgMSk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfY3NpX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnLCBwcmUsIHBvc3Q7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BEUjApOworCXByZSA9IChyZWcgJiBNWENfQ0NNX1BEUjBfQ1NJX1BSREZfTUFTSykgPj4KKwkgICAgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVDsKKwlwcmUrKzsKKwlwb3N0ID0gKHJlZyAmIE1YQ19DQ01fUERSMF9DU0lfUE9ERl9NQVNLKSA+PgorCSAgICBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfT0ZGU0VUOworCXBvc3QrKzsKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvIChwcmUgKiBwb3N0KTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19jc2lfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcHJlLCBwb3N0LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXUzMiBkaXYgPSBwYXJlbnQgLyByYXRlOworCisJaWYgKHBhcmVudCAlIHJhdGUpCisJCWRpdisrOworCisJX19jYWxjX3ByZV9wb3N0X2RpdmlkZXJzKGRpdiwgJnByZSwgJnBvc3QpOworCisJcmV0dXJuIHBhcmVudCAvIChwcmUgKiBwb3N0KTsKK30KKworc3RhdGljIGludCBfY2xrX2NzaV9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgcmVnLCBkaXYsIHByZSwgcG9zdCwgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKworCWRpdiA9IHBhcmVudCAvIHJhdGU7CisKKwlpZiAoKHBhcmVudCAvIGRpdikgIT0gcmF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX2NhbGNfcHJlX3Bvc3RfZGl2aWRlcnMoZGl2LCAmcHJlLCAmcG9zdCk7CisKKwkvKiBTZXQgQ1NJIGNsb2NrIGRpdmlkZXIgKi8KKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX1BEUjApICYKKwkgICAgfihNWENfQ0NNX1BEUjBfQ1NJX1BPREZfTUFTSyB8IE1YQ19DQ01fUERSMF9DU0lfUFJERl9NQVNLKTsKKwlyZWcgfD0gKHBvc3QgLSAxKSA8PCBNWENfQ0NNX1BEUjBfQ1NJX1BPREZfT0ZGU0VUOworCXJlZyB8PSAocHJlIC0gMSkgPDwgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVDsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX1BEUjApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9jbGtfcGVyX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHBlcl9wZGY7CisKKwlwZXJfcGRmID0gUERSMChNWENfQ0NNX1BEUjBfUEVSX1BPREZfTUFTSywKKwkJICAgICAgIE1YQ19DQ01fUERSMF9QRVJfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHBlcl9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kxX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTFfcGRmLCBzc2kxX3ByZXBkZjsKKworCXNzaTFfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMV9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfU1NJMV9QT0RGX09GRlNFVCk7CisJc3NpMV9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9TU0kxX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfU1NJMV9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHNzaTFfcHJlcGRmICsgMSkgLyAoc3NpMV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19zc2kyX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHNzaTJfcGRmLCBzc2kyX3ByZXBkZjsKKworCXNzaTJfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX09GRlNFVCk7CisJc3NpMl9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9TU0kyX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfU1NJMl9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKHNzaTJfcHJlcGRmICsgMSkgLyAoc3NpMl9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19maXJpX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIGZpcmlfcGRmLCBmaXJpX3ByZXBkZjsKKworCWZpcmlfcGRmID0gUERSMShNWENfQ0NNX1BEUjFfRklSSV9QT0RGX01BU0ssCisJCQlNWENfQ0NNX1BEUjFfRklSSV9QT0RGX09GRlNFVCk7CisJZmlyaV9wcmVwZGYgPSBQRFIxKE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX01BU0ssCisJCQkgICBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9PRkZTRVQpOworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gKGZpcmlfcHJlcGRmICsgMSkgLyAoZmlyaV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19maXJpX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHByZSwgcG9zdDsKKwl1MzIgcGFyZW50ID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwl1MzIgZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmIChwYXJlbnQgJSByYXRlKQorCQlkaXYrKzsKKworCV9fY2FsY19wcmVfcG9zdF9kaXZpZGVycyhkaXYsICZwcmUsICZwb3N0KTsKKworCXJldHVybiBwYXJlbnQgLyAocHJlICogcG9zdCk7CisKK30KKworc3RhdGljIGludCBfY2xrX2Zpcmlfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZywgZGl2LCBwcmUsIHBvc3QsIHBhcmVudCA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisKKwlkaXYgPSBwYXJlbnQgLyByYXRlOworCisJaWYgKChwYXJlbnQgLyBkaXYpICE9IHJhdGUpCisJCXJldHVybiAtRUlOVkFMOworCisJX19jYWxjX3ByZV9wb3N0X2RpdmlkZXJzKGRpdiwgJnByZSwgJnBvc3QpOworCisJLyogU2V0IEZJUkkgY2xvY2sgZGl2aWRlciAqLworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fUERSMSkgJgorCSAgICB+KE1YQ19DQ01fUERSMV9GSVJJX1BPREZfTUFTSyB8IE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX01BU0spOworCXJlZyB8PSAocHJlIC0gMSkgPDwgTVhDX0NDTV9QRFIxX0ZJUklfUFJFX1BPREZfT0ZGU0VUOworCXJlZyB8PSAocG9zdCAtIDEpIDw8IE1YQ19DQ01fUERSMV9GSVJJX1BPREZfT0ZGU0VUOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fUERSMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tYnhfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gMjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tc3RpY2sxX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1zdGlfcGRmOworCisJbXN0aV9wZGYgPSBQRFIyKE1YQ19DQ01fUERSMl9NU1QxX1BERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIyX01TVDFfUERGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAobXN0aV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX2Nsa19tc3RpY2syX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIG1zdGlfcGRmOworCisJbXN0aV9wZGYgPSBQRFIyKE1YQ19DQ01fUERSMl9NU1QyX1BERl9NQVNLLAorCQkJTVhDX0NDTV9QRFIyX01TVDJfUERGX09GRlNFVCk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAobXN0aV9wZGYgKyAxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2tpaF9yYXRlOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfY2tpaF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNraWhfcmF0ZTsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2tpaF9jbGsgPSB7CisJLm5hbWUgPSAiY2tpaCIsCisJLmdldF9yYXRlID0gY2xrX2NraWhfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbGtfY2tpbF9nZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIENLSUxfQ0xLX0ZSRVE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNraWxfY2xrID0geworCS5uYW1lID0gImNraWwiLAorCS5nZXRfcmF0ZSA9IGNsa19ja2lsX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbWN1X3BsbF9jbGsgPSB7CisJLm5hbWUgPSAibWN1X3BsbCIsCisJLnBhcmVudCA9ICZja2loX2NsaywKKwkuc2V0X3JhdGUgPSBfY2xrX3BsbF9zZXRfcmF0ZSwKKwkuZ2V0X3JhdGUgPSBfY2xrX3BsbF9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1jdV9tYWluX2NsayA9IHsKKwkubmFtZSA9ICJtY3VfbWFpbl9jbGsiLAorCS5wYXJlbnQgPSAmbWN1X3BsbF9jbGssCisJLmdldF9yYXRlID0gX2Nsa19tY3VfbWFpbl9nZXRfcmF0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNlcmlhbF9wbGxfY2xrID0geworCS5uYW1lID0gInNlcmlhbF9wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLnNldF9yYXRlID0gX2Nsa19wbGxfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19wbGxfZ2V0X3JhdGUsCisJLmVuYWJsZSA9IF9jbGtfc2VyaWFsX3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3NlcmlhbF9wbGxfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHVzYl9wbGxfY2xrID0geworCS5uYW1lID0gInVzYl9wbGwiLAorCS5wYXJlbnQgPSAmY2tpaF9jbGssCisJLnNldF9yYXRlID0gX2Nsa19wbGxfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19wbGxfZ2V0X3JhdGUsCisJLmVuYWJsZSA9IF9jbGtfdXNiX3BsbF9lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX3VzYl9wbGxfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGFoYl9jbGsgPSB7CisJLm5hbWUgPSAiYWhiX2NsayIsCisJLnBhcmVudCA9ICZtY3VfbWFpbl9jbGssCisJLmdldF9yYXRlID0gX2Nsa19oY2xrX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcGVyX2NsayA9IHsKKwkubmFtZSA9ICJwZXJfY2xrIiwKKwkucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfcGVyX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcGVyY2xrX2NsayA9IHsKKwkubmFtZSA9ICJwZXJjbGtfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBjc3BpX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfQ1NQSTFfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAxLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfQ1NQSTJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiY3NwaV9jbGsiLAorCSAuaWQgPSAyLAorCSAucGFyZW50ID0gJmlwZ19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfQ1NQSTNfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgaXBnX2NsayA9IHsKKwkubmFtZSA9ICJpcGdfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmdldF9yYXRlID0gX2Nsa19pcGdfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBlbWlfY2xrID0geworCS5uYW1lID0gImVtaV9jbGsiLAorCS5wYXJlbnQgPSAmYWhiX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjIsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMl9FTUlfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19lbWlfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwdF9jbGsgPSB7CisJLm5hbWUgPSAiZ3B0X2NsayIsCisJLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0dQVF9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBwd21fY2xrID0geworCS5uYW1lID0gInB3bV9jbGsiLAorCS5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9QV01fT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZXBpdF9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gImVwaXRfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0VQSVQxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gImVwaXRfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0VQSVQyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG5mY19jbGsgPSB7CisJLm5hbWUgPSAibmZjX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfbmZjX2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgc2NjX2NsayA9IHsKKwkubmFtZSA9ICJzY2NfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCit9OworCitzdGF0aWMgc3RydWN0IGNsayBpcHVfY2xrID0geworCS5uYW1lID0gImlwdV9jbGsiLAorCS5wYXJlbnQgPSAmbWN1X21haW5fY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfaHNwX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX0lQVV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBrcHBfY2xrID0geworCS5uYW1lID0gImtwcF9jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9LUFBfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgd2RvZ19jbGsgPSB7CisJLm5hbWUgPSAid2RvZ19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9XRE9HX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CitzdGF0aWMgc3RydWN0IGNsayBydGNfY2xrID0geworCS5uYW1lID0gInJ0Y19jbGsiLAorCS5wYXJlbnQgPSAmaXBnX2NsaywKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9SVENfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdXNiX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAidXNiX2NsayIsCisJIC5wYXJlbnQgPSAmdXNiX3BsbF9jbGssCisJIC5nZXRfcmF0ZSA9IF9jbGtfdXNiX2dldF9yYXRlLH0sCisJeworCSAubmFtZSA9ICJ1c2JfYWhiX2NsayIsCisJIC5wYXJlbnQgPSAmYWhiX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9VU0JPVEdfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgY3NpX2NsayA9IHsKKwkubmFtZSA9ICJjc2lfY2xrIiwKKwkucGFyZW50ID0gJnNlcmlhbF9wbGxfY2xrLAorCS5nZXRfcmF0ZSA9IF9jbGtfY3NpX2dldF9yYXRlLAorCS5yb3VuZF9yYXRlID0gX2Nsa19jc2lfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUgPSBfY2xrX2NzaV9zZXRfcmF0ZSwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMV9DU0lfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdWFydF9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1VBUlQxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX1VBUlQyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMiwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQzX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gMywKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQ0X09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gInVhcnRfY2xrIiwKKwkgLmlkID0gNCwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX1VBUlQ1X09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGkyY19jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gImkyY19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfSTJDMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJpMmNfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZwZXJjbGtfY2xrLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0kyQzJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorCXsKKwkgLm5hbWUgPSAiaTJjX2NsayIsCisJIC5pZCA9IDIsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9JMkMzX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG93aXJlX2NsayA9IHsKKwkubmFtZSA9ICJvd2lyZV9jbGsiLAorCS5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX09XSVJFX09GRlNFVCwKKwkuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBzZGhjX2Nsa1tdID0geworCXsKKwkgLm5hbWUgPSAic2RoY19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnBlcmNsa19jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzZGhjX2NsayIsCisJIC5pZCA9IDEsCisJIC5wYXJlbnQgPSAmcGVyY2xrX2NsaywKKwkgLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCSAuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkgLmVuYWJsZV9zaGlmdCA9IE1YQ19DQ01fQ0dSMF9TRF9NTUMyX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNzaV9jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gInNzaV9jbGsiLAorCSAucGFyZW50ID0gJnNlcmlhbF9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX3NzaTFfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU1NJMV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzc2lfY2xrIiwKKwkgLmlkID0gMSwKKwkgLnBhcmVudCA9ICZzZXJpYWxfcGxsX2NsaywKKwkgLmdldF9yYXRlID0gX2Nsa19zc2kyX2dldF9yYXRlLAorCSAuZW5hYmxlID0gX2Nsa19lbmFibGUsCisJIC5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCSAuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX1NTSTJfT0ZGU0VULAorCSAuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSx9LAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgZmlyaV9jbGsgPSB7CisJLm5hbWUgPSAiZmlyaV9jbGsiLAorCS5wYXJlbnQgPSAmdXNiX3BsbF9jbGssCisJLnJvdW5kX3JhdGUgPSBfY2xrX2Zpcmlfcm91bmRfcmF0ZSwKKwkuc2V0X3JhdGUgPSBfY2xrX2Zpcmlfc2V0X3JhdGUsCisJLmdldF9yYXRlID0gX2Nsa19maXJpX2dldF9yYXRlLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0ZJUklfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgYXRhX2NsayA9IHsKKwkubmFtZSA9ICJhdGFfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfQVRBX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1ieF9jbGsgPSB7CisJLm5hbWUgPSAibWJ4X2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX0dBQ0NfT0ZGU0VULAorCS5nZXRfcmF0ZSA9IF9jbGtfbWJ4X2dldF9yYXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgdnB1X2NsayA9IHsKKwkubmFtZSA9ICJ2cHVfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IyLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjJfR0FDQ19PRkZTRVQsCisJLmdldF9yYXRlID0gX2Nsa19tYnhfZ2V0X3JhdGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayBydGljX2NsayA9IHsKKwkubmFtZSA9ICJydGljX2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMiwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IyX1JUSUNfT0ZGU0VULAorCS5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgcm5nX2NsayA9IHsKKwkubmFtZSA9ICJybmdfY2xrIiwKKwkucGFyZW50ID0gJmlwZ19jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IwLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfUk5HX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIHNkbWFfY2xrW10gPSB7CisJeworCSAubmFtZSA9ICJzZG1hX2FoYl9jbGsiLAorCSAucGFyZW50ID0gJmFoYl9jbGssCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjAsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjBfU0RNQV9PRkZTRVQsCisJIC5kaXNhYmxlID0gX2Nsa19kaXNhYmxlLH0sCisJeworCSAubmFtZSA9ICJzZG1hX2lwZ19jbGsiLAorCSAucGFyZW50ID0gJmlwZ19jbGssfQorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgbXBlZzRfY2xrID0geworCS5uYW1lID0gIm1wZWc0X2NsayIsCisJLnBhcmVudCA9ICZhaGJfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMSwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IxX0hBTlRST19PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgc3RydWN0IGNsayB2bDJjY19jbGsgPSB7CisJLm5hbWUgPSAidmwyY2NfY2xrIiwKKwkucGFyZW50ID0gJmFoYl9jbGssCisJLmVuYWJsZSA9IF9jbGtfZW5hYmxlLAorCS5lbmFibGVfcmVnID0gTVhDX0NDTV9DR1IxLAorCS5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfSEFOVFJPX09GRlNFVCwKKwkuZGlzYWJsZSA9IF9jbGtfZGlzYWJsZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIG1zdGlja19jbGtbXSA9IHsKKwl7CisJIC5uYW1lID0gIm1zdGlja19jbGsiLAorCSAuaWQgPSAwLAorCSAucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX21zdGljazFfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKKwl7CisJIC5uYW1lID0gIm1zdGlja19jbGsiLAorCSAuaWQgPSAxLAorCSAucGFyZW50ID0gJnVzYl9wbGxfY2xrLAorCSAuZ2V0X3JhdGUgPSBfY2xrX21zdGljazJfZ2V0X3JhdGUsCisJIC5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkgLmVuYWJsZV9yZWcgPSBNWENfQ0NNX0NHUjEsCisJIC5lbmFibGVfc2hpZnQgPSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX09GRlNFVCwKKwkgLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGlpbV9jbGsgPSB7CisJLm5hbWUgPSAiaWltX2NsayIsCisJLnBhcmVudCA9ICZpcGdfY2xrLAorCS5lbmFibGUgPSBfY2xrX2VuYWJsZSwKKwkuZW5hYmxlX3JlZyA9IE1YQ19DQ01fQ0dSMCwKKwkuZW5hYmxlX3NoaWZ0ID0gTVhDX0NDTV9DR1IwX0lJTV9PRkZTRVQsCisJLmRpc2FibGUgPSBfY2xrX2Rpc2FibGUsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NrbzFfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1MzIgZGl2LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50IC8gcmF0ZTsKKwlpZiAocGFyZW50ICUgcmF0ZSkKKwkJZGl2Kys7CisKKwlpZiAoZGl2ID4gOCkKKwkJZGl2ID0gMTY7CisJZWxzZSBpZiAoZGl2ID4gNCkKKwkJZGl2ID0gODsKKwllbHNlIGlmIChkaXYgPiAyKQorCQlkaXYgPSA0OworCisJcmV0dXJuIHBhcmVudCAvIGRpdjsKK30KKworc3RhdGljIGludCBfY2xrX2NrbzFfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCit7CisJdTMyIHJlZywgZGl2LCBwYXJlbnQgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCisJZGl2ID0gcGFyZW50IC8gcmF0ZTsKKworCWlmIChkaXYgPT0gMTYpCisJCWRpdiA9IDQ7CisJZWxzZSBpZiAoZGl2ID09IDgpCisJCWRpdiA9IDM7CisJZWxzZSBpZiAoZGl2ID09IDQpCisJCWRpdiA9IDI7CisJZWxzZSBpZiAoZGl2ID09IDIpCisJCWRpdiA9IDE7CisJZWxzZSBpZiAoZGl2ID09IDEpCisJCWRpdiA9IDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fQ09TUikgJiB+TVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLOworCXJlZyB8PSBkaXYgPDwgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9PRkZTRVQ7CisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DT1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfY2xrX2NrbzFfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiBkaXY7CisKKwlkaXYgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpICYgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLID4+CisJICAgIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfT0ZGU0VUOworCisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCkgLyAoMSA8PCBkaXYpOworfQorCitzdGF0aWMgaW50IF9jbGtfY2tvMV9zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpICYgfk1YQ19DQ01fQ09TUl9DTEtPU0VMX01BU0s7CisKKwlpZiAocGFyZW50ID09ICZtY3VfbWFpbl9jbGspCisJCXJlZyB8PSAwIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmlwZ19jbGspCisJCXJlZyB8PSAxIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnVzYl9wbGxfY2xrKQorCQlyZWcgfD0gMiA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09IG1jdV9tYWluX2Nsay5wYXJlbnQpCisJCXJlZyB8PSAzIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJmFoYl9jbGspCisJCXJlZyB8PSA1IDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnNlcmlhbF9wbGxfY2xrKQorCQlyZWcgfD0gNyA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZja2loX2NsaykKKwkJcmVnIHw9IDggPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmZW1pX2NsaykKKwkJcmVnIHw9IDkgPDwgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUOworCWVsc2UgaWYgKHBhcmVudCA9PSAmaXB1X2NsaykKKwkJcmVnIHw9IDB4QSA8PCBNWENfQ0NNX0NPU1JfQ0xLT1NFTF9PRkZTRVQ7CisJZWxzZSBpZiAocGFyZW50ID09ICZuZmNfY2xrKQorCQlyZWcgfD0gMHhCIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlIGlmIChwYXJlbnQgPT0gJnVhcnRfY2xrWzBdKQorCQlyZWcgfD0gMHhDIDw8IE1YQ19DQ01fQ09TUl9DTEtPU0VMX09GRlNFVDsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworCisJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9DT1NSKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9jbGtfY2tvMV9lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXUzMiByZWc7CisKKwlyZWcgPSBfX3Jhd19yZWFkbChNWENfQ0NNX0NPU1IpIHwgTVhDX0NDTV9DT1NSX0NMS09FTjsKKwlfX3Jhd193cml0ZWwocmVnLCBNWENfQ0NNX0NPU1IpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9jbGtfY2tvMV9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1MzIgcmVnOworCisJcmVnID0gX19yYXdfcmVhZGwoTVhDX0NDTV9DT1NSKSAmIH5NWENfQ0NNX0NPU1JfQ0xLT0VOOworCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19DQ01fQ09TUik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNrbzFfY2xrID0geworCS5uYW1lID0gImNrbzFfY2xrIiwKKwkuZ2V0X3JhdGUgPSBfY2xrX2NrbzFfZ2V0X3JhdGUsCisJLnNldF9yYXRlID0gX2Nsa19ja28xX3NldF9yYXRlLAorCS5yb3VuZF9yYXRlID0gX2Nsa19ja28xX3JvdW5kX3JhdGUsCisJLnNldF9wYXJlbnQgPSBfY2xrX2NrbzFfc2V0X3BhcmVudCwKKwkuZW5hYmxlID0gX2Nsa19ja28xX2VuYWJsZSwKKwkuZGlzYWJsZSA9IF9jbGtfY2tvMV9kaXNhYmxlLAorfTsKKworc3RhdGljIHN0cnVjdCBjbGsgKm14Y19jbGtzW10gPSB7CisJJmNraWhfY2xrLAorCSZja2lsX2NsaywKKwkmbWN1X3BsbF9jbGssCisJJnVzYl9wbGxfY2xrLAorCSZzZXJpYWxfcGxsX2NsaywKKwkmbWN1X21haW5fY2xrLAorCSZhaGJfY2xrLAorCSZwZXJfY2xrLAorCSZwZXJjbGtfY2xrLAorCSZja28xX2NsaywKKwkmZW1pX2NsaywKKwkmY3NwaV9jbGtbMF0sCisJJmNzcGlfY2xrWzFdLAorCSZjc3BpX2Nsa1syXSwKKwkmaXBnX2NsaywKKwkmZ3B0X2NsaywKKwkmcHdtX2NsaywKKwkmd2RvZ19jbGssCisJJnJ0Y19jbGssCisJJmVwaXRfY2xrWzBdLAorCSZlcGl0X2Nsa1sxXSwKKwkmbmZjX2NsaywKKwkmaXB1X2NsaywKKwkma3BwX2NsaywKKwkmdXNiX2Nsa1swXSwKKwkmdXNiX2Nsa1sxXSwKKwkmY3NpX2NsaywKKwkmdWFydF9jbGtbMF0sCisJJnVhcnRfY2xrWzFdLAorCSZ1YXJ0X2Nsa1syXSwKKwkmdWFydF9jbGtbM10sCisJJnVhcnRfY2xrWzRdLAorCSZpMmNfY2xrWzBdLAorCSZpMmNfY2xrWzFdLAorCSZpMmNfY2xrWzJdLAorCSZvd2lyZV9jbGssCisJJnNkaGNfY2xrWzBdLAorCSZzZGhjX2Nsa1sxXSwKKwkmc3NpX2Nsa1swXSwKKwkmc3NpX2Nsa1sxXSwKKwkmZmlyaV9jbGssCisJJmF0YV9jbGssCisJJnJ0aWNfY2xrLAorCSZybmdfY2xrLAorCSZzZG1hX2Nsa1swXSwKKwkmc2RtYV9jbGtbMV0sCisJJm1zdGlja19jbGtbMF0sCisJJm1zdGlja19jbGtbMV0sCisJJnNjY19jbGssCisJJmlpbV9jbGssCit9OworCitpbnQgX19pbml0IG14Y19jbG9ja3NfaW5pdCh1bnNpZ25lZCBsb25nIGZyZWYpCit7CisJdTMyIHJlZzsKKwlzdHJ1Y3QgY2xrICoqY2xrcDsKKworCWNraWhfcmF0ZSA9IGZyZWY7CisKKwlmb3IgKGNsa3AgPSBteGNfY2xrczsgY2xrcCA8IG14Y19jbGtzICsgQVJSQVlfU0laRShteGNfY2xrcyk7IGNsa3ArKykKKwkJY2xrX3JlZ2lzdGVyKCpjbGtwKTsKKworCWlmIChjcHVfaXNfbXgzMSgpKSB7CisJCWNsa19yZWdpc3RlcigmbXBlZzRfY2xrKTsKKwkJY2xrX3JlZ2lzdGVyKCZtYnhfY2xrKTsKKwl9IGVsc2UgeworCQljbGtfcmVnaXN0ZXIoJnZwdV9jbGspOworCQljbGtfcmVnaXN0ZXIoJnZsMmNjX2Nsayk7CisJfQorCisJLyogVHVybiBvZmYgYWxsIHBvc3NpYmxlIGNsb2NrcyAqLworCV9fcmF3X3dyaXRlbChNWENfQ0NNX0NHUjBfR1BUX01BU0ssIE1YQ19DQ01fQ0dSMCk7CisJX19yYXdfd3JpdGVsKDAsIE1YQ19DQ01fQ0dSMSk7CisKKwlfX3Jhd193cml0ZWwoTVhDX0NDTV9DR1IyX0VNSV9NQVNLIHwKKwkJICAgICBNWENfQ0NNX0NHUjJfSVBNVVgxX01BU0sgfAorCQkgICAgIE1YQ19DQ01fQ0dSMl9JUE1VWDJfTUFTSyB8CisJCSAgICAgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIE1YQ19DQ01fQ0dSMl9DSElLQ0FNUEVOX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIE1YQ19DQ01fQ0dSMl9PVlJWUFVCVVNZX01BU0sgfAkvKiBmb3IgTVgzMiAqLworCQkgICAgIDEgPDwgMjcgfCAxIDw8IDI4LCAvKiBCaXQgMjcgYW5kIDI4IGFyZSBub3QgZGVmaW5lZCBmb3IKKwkJCQkJICAgTVgzMiwgYnV0IHN0aWxsIHJlcXVpcmVkIHRvIGJlIHNldCAqLworCQkgICAgIE1YQ19DQ01fQ0dSMik7CisKKwljbGtfZGlzYWJsZSgmY2tvMV9jbGspOworCWNsa19kaXNhYmxlKCZ1c2JfcGxsX2Nsayk7CisKKwlwcl9pbmZvKCJDbG9jayBpbnB1dCBzb3VyY2UgaXMgJWxkXG4iLCBjbGtfZ2V0X3JhdGUoJmNraWhfY2xrKSk7CisKKwljbGtfZW5hYmxlKCZncHRfY2xrKTsKKwljbGtfZW5hYmxlKCZlbWlfY2xrKTsKKwljbGtfZW5hYmxlKCZpaW1fY2xrKTsKKworCWNsa19lbmFibGUoJnNlcmlhbF9wbGxfY2xrKTsKKworCWlmIChteDMxX3JldmlzaW9uKCkgPj0gQ0hJUF9SRVZfMl8wKSB7CisJCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19DQ01fUE1DUjEpOworCQkvKiBObyBQTEwgcmVzdGFydCBvbiBEVkZTIHN3aXRjaDsgZW5hYmxlIGF1dG8gRU1JIGhhbmRzaGFrZSAqLworCQlyZWcgfD0gTVhDX0NDTV9QTUNSMV9QTExSRElTIHwgTVhDX0NDTV9QTUNSMV9FTUlSUV9FTjsKKwkJX19yYXdfd3JpdGVsKHJlZywgTVhDX0NDTV9QTUNSMSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL2NybV9yZWdzLmggYi9hcmNoL2FybS9tYWNoLW14My9jcm1fcmVncy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhMGUwZWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9jcm1fcmVncy5oCkBAIC0wLDAgKzEsNDAxIEBACisvKgorICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BUkNIX0FSTV9NQUNIX01YM19DUk1fUkVHU19IX18KKyNkZWZpbmUgX19BUkNIX0FSTV9NQUNIX01YM19DUk1fUkVHU19IX18KKworI2RlZmluZSBDS0lIX0NMS19GUkVRICAgICAgICAgICAyNjAwMDAwMAorI2RlZmluZSBDS0lIX0NMS19GUkVRXzI3TUhaICAgICAyNzAwMDAwMAorI2RlZmluZSBDS0lMX0NMS19GUkVRICAgICAgICAgICAzMjc2OAorCisjZGVmaW5lIE1YQ19DQ01fQkFTRQkJSU9fQUREUkVTUyhDQ01fQkFTRV9BRERSKQorCisvKiBSZWdpc3RlciBhZGRyZXNzZXMgKi8KKyNkZWZpbmUgTVhDX0NDTV9DQ01SCQkoTVhDX0NDTV9CQVNFICsgMHgwMCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwCQkoTVhDX0NDTV9CQVNFICsgMHgwNCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxCQkoTVhDX0NDTV9CQVNFICsgMHgwOCkKKyNkZWZpbmUgTVhDX0NDTV9SQ1NSCQkoTVhDX0NDTV9CQVNFICsgMHgwQykKKyNkZWZpbmUgTVhDX0NDTV9NUENUTAkJKE1YQ19DQ01fQkFTRSArIDB4MTApCisjZGVmaW5lIE1YQ19DQ01fVVBDVEwJCShNWENfQ0NNX0JBU0UgKyAweDE0KQorI2RlZmluZSBNWENfQ0NNX1NSUENUTAkJKE1YQ19DQ01fQkFTRSArIDB4MTgpCisjZGVmaW5lIE1YQ19DQ01fQ09TUgkJKE1YQ19DQ01fQkFTRSArIDB4MUMpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMAkJKE1YQ19DQ01fQkFTRSArIDB4MjApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMQkJKE1YQ19DQ01fQkFTRSArIDB4MjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMgkJKE1YQ19DQ01fQkFTRSArIDB4MjgpCisjZGVmaW5lIE1YQ19DQ01fV0lNUgkJKE1YQ19DQ01fQkFTRSArIDB4MkMpCisjZGVmaW5lIE1YQ19DQ01fTERDCQkoTVhDX0NDTV9CQVNFICsgMHgzMCkKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSMAkJKE1YQ19DQ01fQkFTRSArIDB4MzQpCisjZGVmaW5lIE1YQ19DQ01fRENWUjEJCShNWENfQ0NNX0JBU0UgKyAweDM4KQorI2RlZmluZSBNWENfQ0NNX0RDVlIyCQkoTVhDX0NDTV9CQVNFICsgMHgzQykKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSMwkJKE1YQ19DQ01fQkFTRSArIDB4NDApCisjZGVmaW5lIE1YQ19DQ01fTFRSMAkJKE1YQ19DQ01fQkFTRSArIDB4NDQpCisjZGVmaW5lIE1YQ19DQ01fTFRSMQkJKE1YQ19DQ01fQkFTRSArIDB4NDgpCisjZGVmaW5lIE1YQ19DQ01fTFRSMgkJKE1YQ19DQ01fQkFTRSArIDB4NEMpCisjZGVmaW5lIE1YQ19DQ01fTFRSMwkJKE1YQ19DQ01fQkFTRSArIDB4NTApCisjZGVmaW5lIE1YQ19DQ01fTFRCUjAJCShNWENfQ0NNX0JBU0UgKyAweDU0KQorI2RlZmluZSBNWENfQ0NNX0xUQlIxCQkoTVhDX0NDTV9CQVNFICsgMHg1OCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMAkJKE1YQ19DQ01fQkFTRSArIDB4NUMpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjEJCShNWENfQ0NNX0JBU0UgKyAweDYwKQorI2RlZmluZSBNWENfQ0NNX1BEUjIJCShNWENfQ0NNX0JBU0UgKyAweDY0KQorCisvKiBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1dCRU4gICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfQ1NDUyAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QRVJDUyAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NTSTFTX09GRlNFVCAgICAgICAgICAgICAgIDE4CisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9TU0kxU19NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfU1NJMlNfT0ZGU0VUICAgICAgICAgICAgICAgMjEKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NTSTJTX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjEpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9MUE1fT0ZGU0VUICAgICAgICAgICAgICAgICAxNAorI2RlZmluZSBNWENfQ0NNX0NDTVJfTFBNX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX0ZJUlNfT0ZGU0VUICAgICAgICAgICAgICAgIDExCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9GSVJTX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDExKQorI2RlZmluZSBNWENfQ0NNX0NDTVJfVVBFICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX1NQRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9NRFMgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQorI2RlZmluZSBNWENfQ0NNX0NDTVJfU0JZQ1MgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKyNkZWZpbmUgTVhDX0NDTV9DQ01SX01QRSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QUkNTX09GRlNFVCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1YQ19DQ01fQ0NNUl9QUkNTX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDEpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0NTSV9QT0RGX09GRlNFVCAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHgzRiA8PCAyNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0NTSV9QUkRGX09GRlNFVCAgICAgICAgICAgIDIzCisjZGVmaW5lIE1YQ19DQ01fUERSMF9DU0lfUFJERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDIzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfUEVSX1BPREZfT0ZGU0VUICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX1BFUl9QT0RGX01BU0sgICAgICAgICAgICAgICgweDFGIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX1BPREZfT0ZGU0VUICAgICAgICAgICAgMTEKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9QT0RGX01BU0sgICAgICAgICAgICAgICgweDcgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfUE9ERl9PRkZTRVQgICAgICAgICAgICA4CisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfUE9ERl9PRkZTRVQgICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fUERSMF9JUEdfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHgzIDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9PRkZTRVQgICAgICAgICAgICAzCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQVhfUE9ERl9NQVNLICAgICAgICAgICAgICAoMHg3IDw8IDMpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfUE9ERl9PRkZTRVQgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfUE9ERl9NQVNLICAgICAgICAgICAgICAweDcKKworI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl8xICAgICAgICAgICAgICAgICAgKDB4MCA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfMiAgICAgICAgICAgICAgICAgICgweDEgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzMgICAgICAgICAgICAgICAgICAoMHgyIDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl80ICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfNSAgICAgICAgICAgICAgICAgICgweDQgPDwgMTEpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9IU1BfRElWXzYgICAgICAgICAgICAgICAgICAoMHg1IDw8IDExKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfSFNQX0RJVl83ICAgICAgICAgICAgICAgICAgKDB4NiA8PCAxMSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0hTUF9ESVZfOCAgICAgICAgICAgICAgICAgICgweDcgPDwgMTEpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMSAgICAgICAgICAgICAgICAgICgweDAgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMiAgICAgICAgICAgICAgICAgICgweDEgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfMyAgICAgICAgICAgICAgICAgICgweDIgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX0lQR19ESVZfNCAgICAgICAgICAgICAgICAgICgweDMgPDwgNikKKworI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8xICAgICAgICAgICAgICAgICAgKDB4MCA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8yICAgICAgICAgICAgICAgICAgKDB4MSA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl8zICAgICAgICAgICAgICAgICAgKDB4MiA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl80ICAgICAgICAgICAgICAgICAgKDB4MyA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl81ICAgICAgICAgICAgICAgICAgKDB4NCA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl82ICAgICAgICAgICAgICAgICAgKDB4NSA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl83ICAgICAgICAgICAgICAgICAgKDB4NiA8PCAzKQorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUFYX0RJVl84ICAgICAgICAgICAgICAgICAgKDB4NyA8PCAzKQorCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzEgICAgICAgICAgICAgICAgICAoMHgwIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzIgICAgICAgICAgICAgICAgICAoMHgxIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzMgICAgICAgICAgICAgICAgICAoMHgyIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzQgICAgICAgICAgICAgICAgICAoMHgzIDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzUgICAgICAgICAgICAgICAgICAoMHg0IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzYgICAgICAgICAgICAgICAgICAoMHg1IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzcgICAgICAgICAgICAgICAgICAoMHg2IDw8IDgpCisjZGVmaW5lIE1YQ19DQ01fUERSMF9ORkNfRElWXzggICAgICAgICAgICAgICAgICAoMHg3IDw8IDgpCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfMSAgICAgICAgICAgICAgICAgIDB4MAorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl8yICAgICAgICAgICAgICAgICAgMHgxCisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzMgICAgICAgICAgICAgICAgICAweDIKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfNCAgICAgICAgICAgICAgICAgIDB4MworI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl81ICAgICAgICAgICAgICAgICAgMHg0CisjZGVmaW5lIE1YQ19DQ01fUERSMF9NQ1VfRElWXzYgICAgICAgICAgICAgICAgICAweDUKKyNkZWZpbmUgTVhDX0NDTV9QRFIwX01DVV9ESVZfNyAgICAgICAgICAgICAgICAgIDB4NgorI2RlZmluZSBNWENfQ0NNX1BEUjBfTUNVX0RJVl84ICAgICAgICAgICAgICAgICAgMHg3CisKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1VTQl9QUkRGX09GRlNFVCAgICAgICAgICAgIDMwCisjZGVmaW5lIE1YQ19DQ01fUERSMV9VU0JfUFJERl9NQVNLICAgICAgICAgICAgICAoMHgzIDw8IDMwKQorI2RlZmluZSBNWENfQ0NNX1BEUjFfVVNCX1BPREZfT0ZGU0VUICAgICAgICAgICAgMjcKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1VTQl9QT0RGX01BU0sgICAgICAgICAgICAgICgweDcgPDwgMjcpCisjZGVmaW5lIE1YQ19DQ01fUERSMV9GSVJJX1BSRV9QT0RGX09GRlNFVCAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX1BEUjFfRklSSV9QUkVfUE9ERl9NQVNLICAgICAgICAgKDB4NyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX0ZJUklfUE9ERl9PRkZTRVQgICAgICAgICAgIDE4CisjZGVmaW5lIE1YQ19DQ01fUERSMV9GSVJJX1BPREZfTUFTSyAgICAgICAgICAgICAoMHgzRiA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTJfUFJFX1BPREZfT0ZGU0VUICAgICAgIDE1CisjZGVmaW5lIE1YQ19DQ01fUERSMV9TU0kyX1BSRV9QT0RGX01BU0sgICAgICAgICAoMHg3IDw8IDE1KQorI2RlZmluZSBNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX09GRlNFVCAgICAgICAgICAgOQorI2RlZmluZSBNWENfQ0NNX1BEUjFfU1NJMl9QT0RGX01BU0sgICAgICAgICAgICAgKDB4M0YgPDwgOSkKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUFJFX1BPREZfT0ZGU0VUICAgICAgIDYKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUFJFX1BPREZfTUFTSyAgICAgICAgICgweDcgPDwgNikKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9PRkZTRVQgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9QRFIxX1NTSTFfUE9ERl9NQVNLICAgICAgICAgICAgIDB4M0YKKworLyogQml0IGRlZmluaXRpb25zIGZvciBSQ1NSICovCisjZGVmaW5lIE1YQ19DQ01fUkNTUl9ORjE2QgkJCTB4ODAwMDAwMDAKKworLyogQml0IGRlZmluaXRpb25zIGZvciBib3RoIE1DVSwgVVNCIGFuZCBTUiBQTEwgY29udHJvbCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX0JSTSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX1BEX09GRlNFVCAgICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fUENUTF9QRF9NQVNLICAgICAgICAgICAgICAgICAgICAoMHhGIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZEX09GRlNFVCAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GRF9NQVNLICAgICAgICAgICAgICAgICAgICgweDNGRiA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9QQ1RMX01GSV9PRkZTRVQgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIE1YQ19DQ01fUENUTF9NRklfTUFTSyAgICAgICAgICAgICAgICAgICAoMHhGIDw8IDEwKQorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZOX09GRlNFVCAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX1BDVExfTUZOX01BU0sgICAgICAgICAgICAgICAgICAgMHgzRkYKKworI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9PRkZTRVQgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMV9NQVNLICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMl9PRkZTRVQgICAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjBfU0RfTU1DMl9NQVNLICAgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfR1BUX09GRlNFVCAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjBfR1BUX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDFfT0ZGU0VUICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDFfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDJfT0ZGU0VUICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjBfRVBJVDJfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfSUlNX09GRlNFVCAgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0lJTV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9BVEFfT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjBfQVRBX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1NETUFfT0ZGU0VUICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9TRE1BX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfQ1NQSTNfT0ZGU0VUICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0NTUEkzX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9STkdfT0ZGU0VUICAgICAgICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX0NHUjBfUk5HX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1VBUlQxX09GRlNFVCAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9VQVJUMV9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjBfVUFSVDJfT0ZGU0VUICAgICAgICAgICAgICAgMjIKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX1VBUlQyX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9TU0kxX09GRlNFVCAgICAgICAgICAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX0NHUjBfU1NJMV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzFfT0ZGU0VUICAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMxX01BU0sgICAgICAgICAgICAgICAgICAoMHgzIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDMl9PRkZTRVQgICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9DR1IwX0kyQzJfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMF9JMkMzX09GRlNFVCAgICAgICAgICAgICAgICAzMAorI2RlZmluZSBNWENfQ0NNX0NHUjBfSTJDM19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKworI2RlZmluZSBNWENfQ0NNX0NHUjFfSEFOVFJPX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjFfSEFOVFJPX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX09GRlNFVCAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0sxX01BU0sgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX09GRlNFVCAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjFfTUVNU1RJQ0syX01BU0sgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfQ1NJX09GRlNFVCAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjFfQ1NJX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfUlRDX09GRlNFVCAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjFfUlRDX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfV0RPR19PRkZTRVQgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1dET0dfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9QV01fT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjFfUFdNX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1NJTV9PRkZTRVQgICAgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9TSU1fTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfRUNUX09GRlNFVCAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0VDVF9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VU0JPVEdfT0ZGU0VUICAgICAgICAgICAgICAxOAorI2RlZmluZSBNWENfQ0NNX0NHUjFfVVNCT1RHX01BU0sgICAgICAgICAgICAgICAgKDB4MyA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0tQUF9PRkZTRVQgICAgICAgICAgICAgICAgIDIwCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9LUFBfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDIwKQorI2RlZmluZSBNWENfQ0NNX0NHUjFfSVBVX09GRlNFVCAgICAgICAgICAgICAgICAgMjIKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX0lQVV9NQVNLICAgICAgICAgICAgICAgICAgICgweDMgPDwgMjIpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUM19PRkZTRVQgICAgICAgICAgICAgICAyNAorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDNfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQ0X09GRlNFVCAgICAgICAgICAgICAgIDI2CisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9VQVJUNF9NQVNLICAgICAgICAgICAgICAgICAoMHgzIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjFfVUFSVDVfT0ZGU0VUICAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9DR1IxX1VBUlQ1X01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMV9PV0lSRV9PRkZTRVQgICAgICAgICAgICAgICAzMAorI2RlZmluZSBNWENfQ0NNX0NHUjFfT1dJUkVfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAzMCkKKworI2RlZmluZSBNWENfQ0NNX0NHUjJfU1NJMl9PRkZTRVQgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0NHUjJfU1NJMl9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAwKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTFfT0ZGU0VUICAgICAgICAgICAgICAgMgorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTFfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCAyKQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTJfT0ZGU0VUICAgICAgICAgICAgICAgNAorI2RlZmluZSBNWENfQ0NNX0NHUjJfQ1NQSTJfTUFTSyAgICAgICAgICAgICAgICAgKDB4MyA8PCA0KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfR0FDQ19PRkZTRVQgICAgICAgICAgICAgICAgNgorI2RlZmluZSBNWENfQ0NNX0NHUjJfR0FDQ19NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfRU1JX09GRlNFVCAgICAgICAgICAgICAgICAgOAorI2RlZmluZSBNWENfQ0NNX0NHUjJfRU1JX01BU0sgICAgICAgICAgICAgICAgICAgKDB4MyA8PCA4KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfUlRJQ19PRkZTRVQgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX1JUSUNfTUFTSyAgICAgICAgICAgICAgICAgICgweDMgPDwgMTApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9GSVJJX09GRlNFVCAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0NHUjJfRklSSV9NQVNLICAgICAgICAgICAgICAgICAgKDB4MyA8PCAxMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0lQTVVYMV9PRkZTRVQgICAgICAgICAgICAgIDE0CisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9JUE1VWDFfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfSVBNVVgyX09GRlNFVCAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0lQTVVYMl9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMTYpCisKKy8qIFRoZXNlIG5ldyBDR1IyIGJpdHMgYXJlIGFkZGVkIGluIE1YMzIgKi8KKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNZU0NMS1NFTF9PRkZTRVQJMTgKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FQTVNZU0NMS1NFTF9NQVNLCQkoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNU1NJQ0xLU0VMX09GRlNFVAkyMAorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNU1NJQ0xLU0VMX01BU0sJCSgweDMgPDwgMjApCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1QRVJDTEtTRUxfT0ZGU0VUCTIyCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9BUE1QRVJDTEtTRUxfTUFTSwkJKDB4MyA8PCAyMikKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX09GRlNFVAkJMjQKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX01YQ0NMS0VOU0VMX01BU0sJCSgweDEgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fQ0dSMl9DSElLQ0FNUEVOX09GRlNFVAkJMjUKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0NISUtDQU1QRU5fTUFTSwkJKDB4MSA8PCAyNSkKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX09WUlZQVUJVU1lfT0ZGU0VUCQkyNgorI2RlZmluZSBNWENfQ0NNX0NHUjJfT1ZSVlBVQlVTWV9NQVNLCQkoMHgxIDw8IDI2KQorI2RlZmluZSBNWENfQ0NNX0NHUjJfQVBNRU5BX09GRlNFVAkJMzAKKyNkZWZpbmUgTVhDX0NDTV9DR1IyX0FPTUVOQV9NQVNLCQkoMHgxIDw8IDMwKQorCisvKgorICogTFRSMCByZWdpc3RlciBvZmZzZXRzCisgKi8KKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0RJVjNDS19PRkZTRVQgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0RJVjNDS19NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMSkKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX0ROVEhSX09GRlNFVCAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1YQ19DQ01fTFRSMF9ETlRIUl9NQVNLICAgICAgICAgICAgICAgICAoMHgzRiA8PCAxNikKKyNkZWZpbmUgTVhDX0NDTV9MVFIwX1VQVEhSX09GRlNFVCAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fTFRSMF9VUFRIUl9NQVNLICAgICAgICAgICAgICAgICAoMHgzRiA8PCAyMikKKworLyoKKyAqIExUUjEgcmVnaXN0ZXIgb2Zmc2V0cworICovCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9QTkNUSFJfT0ZGU0VUICAgICAgICAgICAgICAwCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9QTkNUSFJfTUFTSyAgICAgICAgICAgICAgICAweDNGCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9VUENOVF9PRkZTRVQgICAgICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fTFRSMV9VUENOVF9NQVNLICAgICAgICAgICAgICAgICAoMHhGRiA8PCA2KQorI2RlZmluZSBNWENfQ0NNX0xUUjFfRE5DTlRfT0ZGU0VUICAgICAgICAgICAgICAgMTQKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0ROQ05UX01BU0sgICAgICAgICAgICAgICAgICgweEZGIDw8IDE0KQorI2RlZmluZSBNWENfQ0NNX0xUUjFfTFRCUlNSX01BU0sgICAgICAgICAgICAgICAgMHg0MDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9MVFIxX0xUQlJTUl9PRkZTRVQgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fTFRSMV9MVEJSU1IgICAgICAgICAgICAgICAgICAgICAweDQwMDAwMAorI2RlZmluZSBNWENfQ0NNX0xUUjFfTFRCUlNIICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAKKworLyoKKyAqIExUUjIgYml0IGRlZmluaXRpb25zLiB4IHJhbmdlcyBmcm9tIDAgZm9yIFdTVzkgdG8gNiBmb3IgV1NXMTUKKyAqLworI2RlZmluZSBNWENfQ0NNX0xUUjJfV1NXX09GRlNFVCh4KSAgICAgICAgICAgICAgKDExICsgKHgpICogMykKKyNkZWZpbmUgTVhDX0NDTV9MVFIyX1dTV19NQVNLKHgpICAgICAgICAgICAgICAgICgweDcgPDwgXAorCQkJCQlNWENfQ0NNX0xUUjJfV1NXX09GRlNFVCgoeCkpKQorI2RlZmluZSBNWENfQ0NNX0xUUjJfRU1BQ19PRkZTRVQgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNWENfQ0NNX0xUUjJfRU1BQ19NQVNLICAgICAgICAgICAgICAgICAgMHgxRkYKKworLyoKKyAqIExUUjMgYml0IGRlZmluaXRpb25zLiB4IHJhbmdlcyBmcm9tIDAgZm9yIFdTVzAgdG8gOCBmb3IgV1NXOAorICovCisjZGVmaW5lIE1YQ19DQ01fTFRSM19XU1dfT0ZGU0VUKHgpICAgICAgICAgICAgICAoNSArICh4KSAqIDMpCisjZGVmaW5lIE1YQ19DQ01fTFRSM19XU1dfTUFTSyh4KSAgICAgICAgICAgICAgICAoMHg3IDw8IFwKKwkJCQkJTVhDX0NDTV9MVFIzX1dTV19PRkZTRVQoKHgpKSkKKworI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMSAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMV9TUExMICAgICAgICAgICAgICAgKDAgPDwgMzEpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVAxX01QTEwgICAgICAgICAgICAgICAoMSA8PCAzMSkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDAgICAgICAgICAgICAgICAgICAgIDB4NDAwMDAwMDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDBfUExMICAgICAgICAgICAgICAgICgwIDw8IDMwKQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMF9QRFIgICAgICAgICAgICAgICAgKDEgPDwgMzApCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfREZTVVBfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDMwKQorCisjZGVmaW5lIERWU1VQX1RVUkJPCQkJCTAKKyNkZWZpbmUgRFZTVVBfSElHSAkJCQkxCisjZGVmaW5lIERWU1VQX01FRElVTQkJCQkyCisjZGVmaW5lIERWU1VQX0xPVwkJCQkzCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfVFVSQk8gICAgICAgICAgICAgICAoRFZTVVBfVFVSQk8gPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfSElHSCAgICAgICAgICAgICAgICAoRFZTVVBfSElHSCA8PCAyOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9EVlNVUF9NRURJVU0gICAgICAgICAgICAgIChEVlNVUF9NRURJVU0gPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZTVVBfTE9XICAgICAgICAgICAgICAgICAoRFZTVVBfTE9XIDw8IDI4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RWU1VQX09GRlNFVCAgICAgICAgICAgICAgMjgKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9EVlNVUF9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMjgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVURTQyAgICAgICAgICAgICAgICAgICAgICAweDA4MDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVURTQ19NQVNLICAgICAgICAgICAgICAgICAoMSA8PCAyNykKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9VRFNDX1VQICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1VEU0NfRE9XTiAgICAgICAgICAgICAgICAgKDAgPDwgMjcpCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF8xICAgICAgICAgICAgICAgICAgICgweDAgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfMiAgICAgICAgICAgICAgICAgICAoMHgxIDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzMgICAgICAgICAgICAgICAgICAgKDB4MiA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF80ICAgICAgICAgICAgICAgICAgICgweDMgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfNSAgICAgICAgICAgICAgICAgICAoMHg0IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UXzYgICAgICAgICAgICAgICAgICAgKDB4NSA8PCAyNCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF83ICAgICAgICAgICAgICAgICAgICgweDYgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVlNDTlRfOCAgICAgICAgICAgICAgICAgICAoMHg3IDw8IDI0KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX1ZTQ05UX09GRlNFVCAgICAgICAgICAgICAgMjQKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9WU0NOVF9NQVNLICAgICAgICAgICAgICAgICgweDcgPDwgMjQpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGRVYgICAgICAgICAgICAgICAgICAgICAweDAwODAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGSVMgICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJNSSAgICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJGTCAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl80ICAgICAgICAgICAgICAgICAgICAoMHgwIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfOCAgICAgICAgICAgICAgICAgICAgKDB4MSA8PCAxOCkKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGXzEyICAgICAgICAgICAgICAgICAgICgweDIgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJDRl8xNiAgICAgICAgICAgICAgICAgICAoMHgzIDw8IDE4KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0xCQ0ZfT0ZGU0VUICAgICAgICAgICAgICAgMTgKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9MQkNGX01BU0sgICAgICAgICAgICAgICAgICgweDMgPDwgMTgpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWSVMgICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVVBEVEVOICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfVVBEVEVOX01BU0sgICAgICAgICAgICAgICAoMHgxIDw8IDE2KQorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0ZTVkFJTSAgICAgICAgICAgICAgICAgICAgMHgwMDAwODAwMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0ZTVkFJX09GRlNFVCAgICAgICAgICAgICAgMTMKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9GU1ZBSV9NQVNLICAgICAgICAgICAgICAgICgweDMgPDwgMTMpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBWQ1IgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBWViAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfV0ZJTSAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTMgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTEgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFJDRTAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDQwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRENSICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFZGRU4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlNICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlfT0ZGU0VUICAgICAgICAgICAgICAxCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfUFRWQUlfTUFTSyAgICAgICAgICAgICAgICAoMHgzIDw8IDEpCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfRFBURU4gICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9EVkdQX09GRlNFVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9EVkdQX01BU0sgICAgICAgICAgICAgICAgICgweEYpCisKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9QTExSRElTICAgICAgICAgICAgICAgICAgICAgICgweDEgPDwgNykKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMV9FTUlSUV9FTiAgICAgICAgICAgICAgICAgICAgICAoMHgxIDw8IDgpCisKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSX1VMVl9NQVNLICAgICAgICAgICAgICAgICAgICgweDNGRiA8PCAyMikKKyNkZWZpbmUgTVhDX0NDTV9EQ1ZSX1VMVl9PRkZTRVQgICAgICAgICAgICAgICAgIDIyCisjZGVmaW5lIE1YQ19DQ01fRENWUl9MTFZfTUFTSyAgICAgICAgICAgICAgICAgICAoMHgzRkYgPDwgMTIpCisjZGVmaW5lIE1YQ19DQ01fRENWUl9MTFZfT0ZGU0VUICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBNWENfQ0NNX0RDVlJfRUxWX01BU0sgICAgICAgICAgICAgICAgICAgKDB4M0ZGIDw8IDIpCisjZGVmaW5lIE1YQ19DQ01fRENWUl9FTFZfT0ZGU0VUICAgICAgICAgICAgICAgICAyCisKKyNkZWZpbmUgTVhDX0NDTV9QRFIyX01TVDJfUERGX01BU0sgICAgICAgICAgICAgICgweDNGIDw8IDcpCisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QyX1BERl9PRkZTRVQgICAgICAgICAgICA3CisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QxX1BERl9NQVNLICAgICAgICAgICAgICAweDNGCisjZGVmaW5lIE1YQ19DQ01fUERSMl9NU1QxX1BERl9PRkZTRVQgICAgICAgICAgICAwCisKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09TRUxfTUFTSyAgICAgICAgICAgICAgIDB4MEYKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09TRUxfT0ZGU0VUICAgICAgICAgICAgIDAKKyNkZWZpbmUgTVhDX0NDTV9DT1NSX0NMS09VVERJVl9NQVNLICAgICAgICAgICAgICgweDA3IDw8IDYpCisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPVVRESVZfT0ZGU0VUICAgICAgICAgICA2CisjZGVmaW5lIE1YQ19DQ01fQ09TUl9DTEtPRU4gICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQorCisvKgorICogUE1DUjAgcmVnaXN0ZXIgb2Zmc2V0cworICovCisjZGVmaW5lIE1YQ19DQ01fUE1DUjBfTEJGTF9PRkZTRVQgICAyMAorI2RlZmluZSBNWENfQ0NNX1BNQ1IwX0RGU1VQMF9PRkZTRVQgMzAKKyNkZWZpbmUgTVhDX0NDTV9QTUNSMF9ERlNVUDFfT0ZGU0VUIDMxCisKKyNlbmRpZgkJCQkvKiBfX0FSQ0hfQVJNX01BQ0hfTVgzX0NSTV9SRUdTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvZGV2aWNlcy5jIGIvYXJjaC9hcm0vbWFjaC1teDMvZGV2aWNlcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjMDMyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9kZXZpY2VzLmMKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNi0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBTYXNjaGEgSGF1ZXIsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDBbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQxX0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQxX0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDEsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQxLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMCA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMCwKKwkucmVzb3VyY2UgPSB1YXJ0MCwKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDApLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0MVtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDJfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDJfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUMiwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDIsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2UxID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSAxLAorCS5yZXNvdXJjZSA9IHVhcnQxLAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0MSksCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHVhcnQyW10gPSB7CisJeworCQkuc3RhcnQgPSBVQVJUM19CQVNFX0FERFIsCisJCS5lbmQgPSBVQVJUM19CQVNFX0FERFIgKyAweDBCNSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQgPSBNWENfSU5UX1VBUlQzLAorCQkuZW5kID0gTVhDX0lOVF9VQVJUMywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG14Y191YXJ0X2RldmljZTIgPSB7CisJLm5hbWUgPSAiaW14LXVhcnQiLAorCS5pZCA9IDIsCisJLnJlc291cmNlID0gdWFydDIsCisJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKHVhcnQyKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdWFydDNbXSA9IHsKKwl7CisJCS5zdGFydCA9IFVBUlQ0X0JBU0VfQUREUiwKKwkJLmVuZCA9IFVBUlQ0X0JBU0VfQUREUiArIDB4MEI1LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydCA9IE1YQ19JTlRfVUFSVDQsCisJCS5lbmQgPSBNWENfSU5UX1VBUlQ0LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXhjX3VhcnRfZGV2aWNlMyA9IHsKKwkubmFtZSA9ICJpbXgtdWFydCIsCisJLmlkID0gMywKKwkucmVzb3VyY2UgPSB1YXJ0MywKKwkubnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUodWFydDMpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB1YXJ0NFtdID0geworCXsKKwkJLnN0YXJ0ID0gVUFSVDVfQkFTRV9BRERSLAorCQkuZW5kID0gVUFSVDVfQkFTRV9BRERSICsgMHgwQjUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0ID0gTVhDX0lOVF9VQVJUNSwKKwkJLmVuZCA9IE1YQ19JTlRfVUFSVDUsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBteGNfdWFydF9kZXZpY2U0ID0geworCS5uYW1lID0gImlteC11YXJ0IiwKKwkuaWQgPSA0LAorCS5yZXNvdXJjZSA9IHVhcnQ0LAorCS5udW1fcmVzb3VyY2VzID0gQVJSQVlfU0laRSh1YXJ0NCksCit9OworCisvKgorICogUmVnaXN0ZXIgb25seSB0aG9zZSBVQVJUcyB0aGF0IHBoeXNpY2FsbHkgZXhpc3QKKyAqLworaW50IF9faW5pdCBpbXhfaW5pdF91YXJ0KGludCB1YXJ0X25vLCBzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhICpwZGF0YSkKK3sKKwlzd2l0Y2ggKHVhcnRfbm8pIHsKKwljYXNlIDA6CisJCW14Y191YXJ0X2RldmljZTAuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UwKTsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQlteGNfdWFydF9kZXZpY2UxLmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlMSk7CisJCWJyZWFrOworCWNhc2UgMjoKKwkJbXhjX3VhcnRfZGV2aWNlMi5kZXYucGxhdGZvcm1fZGF0YSA9IHBkYXRhOworCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm14Y191YXJ0X2RldmljZTIpOworCQlicmVhazsKKwljYXNlIDM6CisJCW14Y191YXJ0X2RldmljZTMuZGV2LnBsYXRmb3JtX2RhdGEgPSBwZGF0YTsKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZteGNfdWFydF9kZXZpY2UzKTsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQlteGNfdWFydF9kZXZpY2U0LmRldi5wbGF0Zm9ybV9kYXRhID0gcGRhdGE7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXhjX3VhcnRfZGV2aWNlNCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXJldHVybiAwOworfQorCisvKiBHUElPIHBvcnQgZGVzY3JpcHRpb24gKi8KK3N0YXRpYyBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCBpbXhfZ3Bpb19wb3J0c1tdID0geworCVswXSA9IHsKKwkJLmNoaXAubGFiZWwgPSAiZ3Bpby0wIiwKKwkJLmJhc2UgPSBJT19BRERSRVNTKEdQSU8xX0JBU0VfQUREUiksCisJCS5pcnEgPSBNWENfSU5UX0dQSU8xLAorCQkudmlydHVhbF9pcnFfc3RhcnQgPSBNWENfR1BJT19JTlRfQkFTRQorCX0sCisJWzFdID0geworCQkuY2hpcC5sYWJlbCA9ICJncGlvLTEiLAorCQkuYmFzZSA9IElPX0FERFJFU1MoR1BJTzJfQkFTRV9BRERSKSwKKwkJLmlycSA9IE1YQ19JTlRfR1BJTzIsCisJCS52aXJ0dWFsX2lycV9zdGFydCA9IE1YQ19HUElPX0lOVF9CQVNFICsgR1BJT19OVU1fUElOCisJfSwKKwlbMl0gPSB7CisJCS5jaGlwLmxhYmVsID0gImdwaW8tMiIsCisJCS5iYXNlID0gSU9fQUREUkVTUyhHUElPM19CQVNFX0FERFIpLAorCQkuaXJxID0gTVhDX0lOVF9HUElPMywKKwkJLnZpcnR1YWxfaXJxX3N0YXJ0ID0gTVhDX0dQSU9fSU5UX0JBU0UgKyBHUElPX05VTV9QSU4gKiAyCisJfQorfTsKKworaW50IF9faW5pdCBteGNfcmVnaXN0ZXJfZ3Bpb3Modm9pZCkKK3sKKwlyZXR1cm4gbXhjX2dwaW9faW5pdChpbXhfZ3Bpb19wb3J0cywgQVJSQVlfU0laRShpbXhfZ3Bpb19wb3J0cykpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1teDMvaW9tdXguYyBiL2FyY2gvYXJtL21hY2gtbXgzL2lvbXV4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRjNTFmZQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtbXgzL2lvbXV4LmMKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggYnkgU2FzY2hhIEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvbXV4LW14My5oPgorCisvKgorICogSU9NVVggcmVnaXN0ZXIgKGJhc2UpIGFkZHJlc3NlcworICovCisjZGVmaW5lIElPTVVYX0JBU0UJSU9fQUREUkVTUyhJT01VWENfQkFTRV9BRERSKQorI2RlZmluZSBJT01VWElOVF9PQlMxCShJT01VWF9CQVNFICsgMHgwMDApCisjZGVmaW5lIElPTVVYSU5UX09CUzIJKElPTVVYX0JBU0UgKyAweDAwNCkKKyNkZWZpbmUgSU9NVVhHUFIJKElPTVVYX0JBU0UgKyAweDAwOCkKKyNkZWZpbmUgSU9NVVhTV19NVVhfQ1RMCShJT01VWF9CQVNFICsgMHgwMEMpCisjZGVmaW5lIElPTVVYU1dfUEFEX0NUTAkoSU9NVVhfQkFTRSArIDB4MTU0KQorCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGdwaW9fbXV4X2xvY2spOworCisjZGVmaW5lIElPTVVYX1JFR19NQVNLIChJT01VWF9QQUROVU1fTUFTSyAmIH4weDMpCisvKgorICogc2V0IHRoZSBtb2RlIGZvciBhIElPTVVYIHBpbi4KKyAqLworaW50IG14Y19pb211eF9tb2RlKHVuc2lnbmVkIGludCBwaW5fbW9kZSkKK3sKKwl1MzIgcmVnLCBmaWVsZCwgbCwgbW9kZSwgcmV0ID0gMDsKKworCXJlZyA9IElPTVVYU1dfTVVYX0NUTCArIChwaW5fbW9kZSAmIElPTVVYX1JFR19NQVNLKTsKKwlmaWVsZCA9IHBpbl9tb2RlICYgMHgzOworCW1vZGUgPSAocGluX21vZGUgJiBJT01VWF9NT0RFX01BU0spID4+IElPTVVYX01PREVfU0hJRlQ7CisKKwlwcl9kZWJ1ZygiJXM6IHJlZyBvZmZzZXQgPSAweCV4IGZpZWxkID0gJWQgbW9kZSA9IDB4JTAyeFxuIiwKKwkJCV9fZnVuY19fLCAocGluX21vZGUgJiBJT01VWF9SRUdfTUFTSyksIGZpZWxkLCBtb2RlKTsKKworCXNwaW5fbG9jaygmZ3Bpb19tdXhfbG9jayk7CisKKwlsID0gX19yYXdfcmVhZGwocmVnKTsKKwlsICY9IH4oMHhmZiA8PCAoZmllbGQgKiA4KSk7CisJbCB8PSBtb2RlIDw8IChmaWVsZCAqIDgpOworCV9fcmF3X3dyaXRlbChsLCByZWcpOworCisJc3Bpbl91bmxvY2soJmdwaW9fbXV4X2xvY2spOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2lvbXV4X21vZGUpOworCisvKgorICogVGhpcyBmdW5jdGlvbiBjb25maWd1cmVzIHRoZSBwYWQgdmFsdWUgZm9yIGEgSU9NVVggcGluLgorICovCit2b2lkIG14Y19pb211eF9zZXRfcGFkKGVudW0gaW9tdXhfcGlucyBwaW4sIHUzMiBjb25maWcpCit7CisJdTMyIHJlZywgZmllbGQsIGw7CisKKwlyZWcgPSBJT01VWFNXX1BBRF9DVEwgKyAocGluICsgMikgLyAzOworCWZpZWxkID0gKHBpbiArIDIpICUgMzsKKworCXByX2RlYnVnKCIlczogcmVnIG9mZnNldCA9IDB4JXggZmllbGQgPSAlZFxuIiwKKwkJCV9fZnVuY19fLCAocGluICsgMikgLyAzLCBmaWVsZCk7CisKKwlzcGluX2xvY2soJmdwaW9fbXV4X2xvY2spOworCisJbCA9IF9fcmF3X3JlYWRsKHJlZyk7CisJbCAmPSB+KDB4MWZmIDw8IChmaWVsZCAqIDkpKTsKKwlsIHw9IGNvbmZpZyA8PCAoZmllbGQgKiA5KTsKKwlfX3Jhd193cml0ZWwobCwgcmVnKTsKKworCXNwaW5fdW5sb2NrKCZncGlvX211eF9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0wobXhjX2lvbXV4X3NldF9wYWQpOworCisvKgorICogVGhpcyBmdW5jdGlvbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBnZW5lcmFsIHB1cnBvc2UgZnVuY3Rpb24gZm9yIGEgcGFydGljdWxhcgorICogc2lnbmFsLgorICovCit2b2lkIG14Y19pb211eF9zZXRfZ3ByKGVudW0gaW9tdXhfZ3BfZnVuYyBncCwgYm9vbCBlbikKK3sKKwl1MzIgbDsKKworCXNwaW5fbG9jaygmZ3Bpb19tdXhfbG9jayk7CisJbCA9IF9fcmF3X3JlYWRsKElPTVVYR1BSKTsKKwlpZiAoZW4pCisJCWwgfD0gZ3A7CisJZWxzZQorCQlsICY9IH5ncDsKKworCV9fcmF3X3dyaXRlbChsLCBJT01VWEdQUik7CisJc3Bpbl91bmxvY2soJmdwaW9fbXV4X2xvY2spOworfQorRVhQT1JUX1NZTUJPTChteGNfaW9tdXhfc2V0X2dwcik7CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL214MzFhZHMuYyBiL2FyY2gvYXJtL21hY2gtbXgzL214MzFhZHMuYwppbmRleCA3ZTg5YmRjLi5lYmEzZTBjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW14My9teDMxYWRzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1teDMvbXgzMWFkcy5jCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KICNpbmNsdWRlIDxhc20vbWVtb3J5Lmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtbXgzMWFkcy5oPgogCiAvKiEKICAqIEBmaWxlIG14MzFhZHMuYwpAQCAtMTI2LDYgKzEyOCwxNiBAQAogCW14Y19pbml0X2V4dHVhcnQoKTsKIH0KIAorc3RhdGljIHZvaWQgX19pbml0IG14MzFhZHNfdGltZXJfaW5pdCh2b2lkKQoreworCW14Y19jbG9ja3NfaW5pdCgyNjAwMDAwMCk7CisJbXhjX3RpbWVyX2luaXQoImlwZ19jbGsuMCIpOworfQorCitzdHJ1Y3Qgc3lzX3RpbWVyIG14MzFhZHNfdGltZXIgPSB7CisJLmluaXQJPSBteDMxYWRzX3RpbWVyX2luaXQsCit9OworCiAvKgogICogVGhlIGZvbGxvd2luZyB1c2VzIHN0YW5kYXJkIGtlcm5lbCBtYWNyb3MgZGVmaW5lZCBpbiBhcmNoLmggaW4gb3JkZXIgdG8KICAqIGluaXRpYWxpemUgX19tYWNoX2Rlc2NfTVgzMUFEUyBkYXRhIHN0cnVjdHVyZS4KQEAgLTEzOCw1ICsxNTAsNSBAQAogCS5tYXBfaW8gICAgICAgICA9IG14MzFhZHNfbWFwX2lvLAogCS5pbml0X2lycSAgICAgICA9IG14Y19pbml0X2lycSwKIAkuaW5pdF9tYWNoaW5lICAgPSBteGNfYm9hcmRfaW5pdCwKLQkudGltZXIgICAgICAgICAgPSAmbXhjX3RpbWVyLAorCS50aW1lciAgICAgICAgICA9ICZteDMxYWRzX3RpbWVyLAogTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtbXgzL214MzFsaXRlLmMgYi9hcmNoL2FybS9tYWNoLW14My9teDMxbGl0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNzJjMWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9teDMxbGl0ZS5jCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwMCBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZAorICogIENvcHlyaWdodCAoQykgMjAwMiBTaGFuZSBOYXkgKHNoYW5lQG1pbmlybC5jb20pCisgKiAgQ29weXJpZ2h0IDIwMDUtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxbGl0ZS5oPgorCisvKgorICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBib2FyZC1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiByb3V0aW5lcy4KKyAqLworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyB0aGUgTVgzMSBtZW1vcnkgbWFwLgorICovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIG14MzFsaXRlX2lvX2Rlc2NbXSBfX2luaXRkYXRhID0geworCXsKKwkJLnZpcnR1YWwgPSBBSVBTMV9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQUlQUzFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IEFJUFMxX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBTUEJBMF9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oU1BCQTBfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IFNQQkEwX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBBSVBTMl9CQVNFX0FERFJfVklSVCwKKwkJLnBmbiA9IF9fcGh5c190b19wZm4oQUlQUzJfQkFTRV9BRERSKSwKKwkJLmxlbmd0aCA9IEFJUFMyX1NJWkUsCisJCS50eXBlID0gTVRfTk9OU0hBUkVEX0RFVklDRQorCX0sIHsKKwkJLnZpcnR1YWwgPSBDUzRfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4gPSBfX3BoeXNfdG9fcGZuKENTNF9CQVNFX0FERFIpLAorCQkubGVuZ3RoID0gQ1M0X1NJWkUsCisJCS50eXBlID0gTVRfREVWSUNFCisJfQorfTsKKworLyoKKyAqIFNldCB1cCBzdGF0aWMgdmlydHVhbCBtYXBwaW5ncy4KKyAqLwordm9pZCBfX2luaXQgbXgzMWxpdGVfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChteDMxbGl0ZV9pb19kZXNjLCBBUlJBWV9TSVpFKG14MzFsaXRlX2lvX2Rlc2MpKTsKK30KKworLyoKKyAqIEJvYXJkIHNwZWNpZmljIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgbXhjX2JvYXJkX2luaXQodm9pZCkKK3sKK30KKworc3RhdGljIHZvaWQgX19pbml0IG14MzFsaXRlX3RpbWVyX2luaXQodm9pZCkKK3sKKwlteGNfY2xvY2tzX2luaXQoMjYwMDAwMDApOworCW14Y190aW1lcl9pbml0KCJpcGdfY2xrLjAiKTsKK30KKworc3RydWN0IHN5c190aW1lciBteDMxbGl0ZV90aW1lciA9IHsKKwkuaW5pdAk9IG14MzFsaXRlX3RpbWVyX2luaXQsCit9OworCisvKgorICogVGhlIGZvbGxvd2luZyB1c2VzIHN0YW5kYXJkIGtlcm5lbCBtYWNyb3MgZGVmaW5lZCBpbiBhcmNoLmggaW4gb3JkZXIgdG8KKyAqIGluaXRpYWxpemUgX19tYWNoX2Rlc2NfTVgzMUxJVEUgZGF0YSBzdHJ1Y3R1cmUuCisgKi8KKworTUFDSElORV9TVEFSVChNWDMxTElURSwgIkxvZ2ljUEQgTVgzMSBMSVRFS0lUIikKKwkvKiBNYWludGFpbmVyOiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiAqLworCS5waHlzX2lvICAgICAgICA9IEFJUFMxX0JBU0VfQUREUiwKKwkuaW9fcGdfb2Zmc3QgICAgPSAoKEFJUFMxX0JBU0VfQUREUl9WSVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zICAgID0gUEhZU19PRkZTRVQgKyAweDEwMCwKKwkubWFwX2lvICAgICAgICAgPSBteDMxbGl0ZV9tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IG14Y19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZteDMxbGl0ZV90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My9wY20wMzcuYyBiL2FyY2gvYXJtL21hY2gtbXgzL3BjbTAzNy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNGFlNmQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW14My9wY20wMzcuYwpAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggU2FzY2hhIEhhdWVyLCBQZW5ndXRyb25peAorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L21lbW9yeS5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lteC11YXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW9tdXgtbXgzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQtcGNtMDM3Lmg+CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHBjbTAzN19mbGFzaF9kYXRhID0geworCS53aWR0aCAgPSAyLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBwY20wMzdfZmxhc2hfcmVzb3VyY2UgPSB7CisJLnN0YXJ0CT0gMHhhMDAwMDAwMCwKKwkuZW5kCT0gMHhhMWZmZmZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHBjbTAzN19mbGFzaCA9IHsKKwkubmFtZQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJPSAwLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhICA9ICZwY20wMzdfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZSA9ICZwY20wMzdfZmxhc2hfcmVzb3VyY2UsCisJLm51bV9yZXNvdXJjZXMgPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgdWFydF9wZGF0YSA9IHsKKwkuZmxhZ3MgPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZXNbXSBfX2luaXRkYXRhID0geworCSZwY20wMzdfZmxhc2gsCit9OworCisvKgorICogQm9hcmQgc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24uCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBteGNfYm9hcmRfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGRldmljZXMsIEFSUkFZX1NJWkUoZGV2aWNlcykpOworCisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fQ1RTMV9fQ1RTMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fUlRTMV9fUlRTMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fVFhEMV9fVFhEMSk7CisJbXhjX2lvbXV4X21vZGUoTVgzMV9QSU5fUlhEMV9fUlhEMSk7CisKKwlpbXhfaW5pdF91YXJ0KDAsICZ1YXJ0X3BkYXRhKTsKKworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX0NTUEkzX01PU0lfX1JYRDMpOworCW14Y19pb211eF9tb2RlKE1YMzFfUElOX0NTUEkzX01JU09fX1RYRDMpOworCisJaW14X2luaXRfdWFydCgyLCAmdWFydF9wZGF0YSk7Cit9CisKKy8qCisgKiBUaGlzIHN0cnVjdHVyZSBkZWZpbmVzIHN0YXRpYyBtYXBwaW5ncyBmb3IgdGhlIHBjbTAzNyBib2FyZC4KKyAqLworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBwY20wMzdfaW9fZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJeworCQkudmlydHVhbAk9IEFJUFMxX0JBU0VfQUREUl9WSVJULAorCQkucGZuCQk9IF9fcGh5c190b19wZm4oQUlQUzFfQkFTRV9BRERSKSwKKwkJLmxlbmd0aAkJPSBBSVBTMV9TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UKKwl9LCB7CisJCS52aXJ0dWFsCT0gQUlQUzJfQkFTRV9BRERSX1ZJUlQsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihBSVBTMl9CQVNFX0FERFIpLAorCQkubGVuZ3RoCQk9IEFJUFMyX1NJWkUsCisJCS50eXBlCQk9IE1UX0RFVklDRQorCX0sCit9OworCisvKgorICogU2V0IHVwIHN0YXRpYyB2aXJ0dWFsIG1hcHBpbmdzLgorICovCit2b2lkIF9faW5pdCBwY20wMzdfbWFwX2lvKHZvaWQpCit7CisJbXhjX21hcF9pbygpOworCWlvdGFibGVfaW5pdChwY20wMzdfaW9fZGVzYywgQVJSQVlfU0laRShwY20wMzdfaW9fZGVzYykpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgcGNtMDM3X3RpbWVyX2luaXQodm9pZCkKK3sKKwlteGNfY2xvY2tzX2luaXQoMjYwMDAwMDApOworCW14Y190aW1lcl9pbml0KCJpcGdfY2xrLjAiKTsKK30KKworc3RydWN0IHN5c190aW1lciBwY20wMzdfdGltZXIgPSB7CisJLmluaXQJPSBwY20wMzdfdGltZXJfaW5pdCwKK307CisKK01BQ0hJTkVfU1RBUlQoUENNMDM3LCAiUGh5dGVjIFBoeWNvcmUgcGNtMDM3IikKKwkvKiBNYWludGFpbmVyOiBQZW5ndXRyb25peCAqLworCS5waHlzX2lvCT0gQUlQUzFfQkFTRV9BRERSLAorCS5pb19wZ19vZmZzdAk9ICgoQUlQUzFfQkFTRV9BRERSX1ZJUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMgICAgPSBQSFlTX09GRlNFVCArIDB4MTAwLAorCS5tYXBfaW8gICAgICAgICA9IHBjbTAzN19tYXBfaW8sCisJLmluaXRfaXJxICAgICAgID0gbXhjX2luaXRfaXJxLAorCS5pbml0X21hY2hpbmUgICA9IG14Y19ib2FyZF9pbml0LAorCS50aW1lciAgICAgICAgICA9ICZwY20wMzdfdGltZXIsCitNQUNISU5FX0VORAorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW14My90aW1lLmMgYi9hcmNoL2FybS9tYWNoLW14My90aW1lLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiNTY1YzkuLjAwMDAwMDAKLS0tIGEvYXJjaC9hcm0vbWFjaC1teDMvdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQ4ICswLDAgQEAKLS8qCi0gKiBTeXN0ZW0gVGltZXIgSW50ZXJydXB0IHJlY29uZmlndXJlZCB0byBydW4gaW4gZnJlZS1ydW4gbW9kZS4KLSAqIEF1dGhvcjogVml0YWx5IFdvb2wKLSAqIENvcHlyaWdodCAyMDA0IE1vbnRhVmlzdGEgU29mdHdhcmUgSW5jLgotICogQ29weXJpZ2h0IDIwMDQtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICovCi0KLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLS8qIQotICogQGZpbGUgdGltZS5jCi0gKiBAYnJpZWYgVGhpcyBmaWxlIGNvbnRhaW5zIE9TIHRpY2sgYW5kIHdkb2cgdGltZXIgaW1wbGVtZW50YXRpb25zLgotICoKLSAqIFRoaXMgZmlsZSBjb250YWlucyBPUyB0aWNrIGFuZCB3ZG9nIHRpbWVyIGltcGxlbWVudGF0aW9ucy4KLSAqCi0gKiBAaW5ncm91cCBUaW1lcnMKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL3RpbWUuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KLQotLyohCi0gKiBUaGlzIGlzIHRoZSB0aW1lciBpbnRlcnJ1cHQgc2VydmljZSByb3V0aW5lIHRvIGRvIHJlcXVpcmVkIHRhc2tzLgotICogSXQgYWxzbyBzZXJ2aWNlcyB0aGUgV0RPRyB0aW1lciBhdCB0aGUgZnJlcXVlbmN5IG9mIHR3aWNlIHBlciBXRE9HCi0gKiB0aW1lb3V0IHZhbHVlLiBGb3IgZXhhbXBsZSwgaWYgdGhlIFdET0cncyB0aW1lb3V0IHZhbHVlIGlzIDQgKDIKLSAqIHNlY29uZHMgc2luY2UgdGhlIFdET0cgcnVucyBhdCAwLjVIeiksIGl0IHdpbGwgYmUgc2VydmljZWQgb25jZQotICogZXZlcnkgMi8yPTEgc2Vjb25kLgotICoKLSAqIEBwYXJhbSAgaXJxICAgICAgICAgIEdQVCBpbnRlcnJ1cHQgc291cmNlIG51bWJlciAobm90IHVzZWQpCi0gKiBAcGFyYW0gIGRldl9pZCAgICAgICB0aGlzIHBhcmFtZXRlciBpcyBub3QgdXNlZAotICogQHJldHVybiBhbHdheXMgcmV0dXJucyBcYiBJUlFfSEFORExFRCBhcyBkZWZpbmVkIGluCi0gKiAgICAgICAgIGluY2x1ZGUvbGludXgvaW50ZXJydXB0LmguCi0gKi8KLXN0YXRpYyBpcnFyZXR1cm5fdCBteGNfdGltZXJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgbmV4dF9tYXRjaDsKLQotCWlmIChfX3Jhd19yZWFkbChNWENfR1BUX0dQVFNSKSAmIEdQVFNSX09GMSkgewotCQlkbyB7Ci0JCQl0aW1lcl90aWNrKCk7Ci0JCQluZXh0X21hdGNoID0gX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRPQ1IxKSArIExBVENIOwotCQkJX19yYXdfd3JpdGVsKEdQVFNSX09GMSwgTVhDX0dQVF9HUFRTUik7Ci0JCQlfX3Jhd193cml0ZWwobmV4dF9tYXRjaCwgTVhDX0dQVF9HUFRPQ1IxKTsKLQkJfSB3aGlsZSAoKHNpZ25lZCBsb25nKShuZXh0X21hdGNoIC0KLQkJCQkgICAgICAgX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRDTlQpKSA8PSAwKTsKLQl9Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLS8qIQotICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIG9idGFpbiB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25kcyBzaW5jZSB0aGUgbGFzdAotICogdGltZXIgaW50ZXJydXB0LiBOb3RlIHRoYXQgaW50ZXJydXB0cyBpcyBkaXNhYmxlZCBieSBkb19nZXR0aW1lb2ZkYXkoKS4KLSAqCi0gKiBAcmV0dXJuIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRzIHNpbmNlIHRoZSBsYXN0IHRpbWVyIGludGVycnVwdC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbXhjX2dldHRpbWVvZmZzZXQodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHRpY2tzX3RvX21hdGNoLCBlbGFwc2VkLCB1c2VjLCB0aWNrX3VzZWMsIGk7Ci0KLQkvKiBHZXQgdGlja3MgYmVmb3JlIG5leHQgdGltZXIgbWF0Y2ggKi8KLQl0aWNrc190b19tYXRjaCA9Ci0JICAgIF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUT0NSMSkgLSBfX3Jhd19yZWFkbChNWENfR1BUX0dQVENOVCk7Ci0KLQkvKiBXZSBuZWVkIGVsYXBzZWQgdGlja3Mgc2luY2UgbGFzdCBtYXRjaCAqLwotCWVsYXBzZWQgPSBMQVRDSCAtIHRpY2tzX3RvX21hdGNoOwotCi0JLyogTm93IGNvbnZlcnQgdGhlbSB0byB1c2VjICovCi0JLyogSW5zdXJlIG5vIG92ZXJmbG93IHdoZW4gY2FsY3VsYXRpbmcgdGhlIHVzZWMgYmVsb3cgKi8KLQlmb3IgKGkgPSAxLCB0aWNrX3VzZWMgPSB0aWNrX25zZWMgLyAxMDAwOzsgaSAqPSAyKSB7Ci0JCXRpY2tfdXNlYyAvPSBpOwotCQlpZiAoKDB4RkZGRkZGRkYgLyB0aWNrX3VzZWMpID4gZWxhcHNlZCkKLQkJCWJyZWFrOwotCX0KLQl1c2VjID0gKHVuc2lnbmVkIGxvbmcpKGVsYXBzZWQgKiB0aWNrX3VzZWMpIC8gKExBVENIIC8gaSk7Ci0KLQlyZXR1cm4gdXNlYzsKLX0KLQotLyohCi0gKiBUaGUgT1MgdGljayB0aW1lciBpbnRlcnJ1cHQgc3RydWN0dXJlLgotICovCi1zdGF0aWMgc3RydWN0IGlycWFjdGlvbiB0aW1lcl9pcnEgPSB7Ci0JLm5hbWUgPSAiTVhDIFRpbWVyIFRpY2siLAotCS5mbGFncyA9IElSUUZfRElTQUJMRUQgfCBJUlFGX1RJTUVSLAotCS5oYW5kbGVyID0gbXhjX3RpbWVyX2ludGVycnVwdAotfTsKLQotLyohCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgR1BUIHRvIHByb2R1Y2UgYW4gaW50ZXJydXB0Ci0gKiBiYXNlZCBvbiBIWi4gIEl0IGlzIGNhbGxlZCBieSBzdGFydF9rZXJuZWwoKSBkdXJpbmcgc3lzdGVtIHN0YXJ0dXAuCi0gKi8KLXZvaWQgX19pbml0IG14Y19pbml0X3RpbWUodm9pZCkKLXsKLQl1MzIgcmVnLCB2OwotCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpOwotCXJlZyAmPSB+R1BUQ1JfRU5BQkxFOwotCV9fcmF3X3dyaXRlbChyZWcsIE1YQ19HUFRfR1BUQ1IpOwotCXJlZyB8PSBHUFRDUl9TV1I7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRDUik7Ci0KLQl3aGlsZSAoKF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpICYgR1BUQ1JfU1dSKSAhPSAwKQotCQljcHVfcmVsYXgoKTsKLQotCXJlZyA9IEdQVENSX0ZSUiB8IEdQVENSX0NMS1NSQ19ISUdIRlJFUTsKLQlfX3Jhd193cml0ZWwocmVnLCBNWENfR1BUX0dQVENSKTsKLQotCS8qIFRPRE86IGdldCB0aW1lciByYXRlIGZyb20gY2xrIGRyaXZlciAqLwotCXYgPSA2NjUwMDAwMDsKLQotCV9fcmF3X3dyaXRlbCgodiAvIENMT0NLX1RJQ0tfUkFURSkgLSAxLCBNWENfR1BUX0dQVFBSKTsKLQotCWlmICgodiAlIENMT0NLX1RJQ0tfUkFURSkgIT0gMCkgewotCQlwcl9pbmZvKCJcbldBUk5JTkc6IENhbid0IGdlbmVyYXRlIENMT0NLX1RJQ0tfUkFURSBhdCAlZCBIelxuIiwKLQkJCUNMT0NLX1RJQ0tfUkFURSk7Ci0JfQotCXByX2luZm8oIkFjdHVhbCBDTE9DS19USUNLX1JBVEUgaXMgJWQgSHpcbiIsCi0JCXYgLyAoKF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUUFIpICYgMHhGRkYpICsgMSkpOwotCi0JcmVnID0gX19yYXdfcmVhZGwoTVhDX0dQVF9HUFRDTlQpOwotCXJlZyArPSBMQVRDSDsKLQlfX3Jhd193cml0ZWwocmVnLCBNWENfR1BUX0dQVE9DUjEpOwotCi0Jc2V0dXBfaXJxKE1YQ19JTlRfR1BULCAmdGltZXJfaXJxKTsKLQotCXJlZyA9IF9fcmF3X3JlYWRsKE1YQ19HUFRfR1BUQ1IpOwotCXJlZyA9Ci0JICAgIEdQVENSX0ZSUiB8IEdQVENSX0NMS1NSQ19ISUdIRlJFUSB8IEdQVENSX1NUT1BFTiB8IEdQVENSX0RPWkVOIHwKLQkgICAgR1BUQ1JfV0FJVEVOIHwgR1BUQ1JfRU5NT0QgfCBHUFRDUl9FTkFCTEU7Ci0JX19yYXdfd3JpdGVsKHJlZywgTVhDX0dQVF9HUFRDUik7Ci0KLQlfX3Jhd193cml0ZWwoR1BUSVJfT0YxSUUsIE1YQ19HUFRfR1BUSVIpOwotfQotCi1zdHJ1Y3Qgc3lzX3RpbWVyIG14Y190aW1lciA9IHsKLQkuaW5pdCA9IG14Y19pbml0X3RpbWUsCi0JLm9mZnNldCA9IG14Y19nZXR0aW1lb2Zmc2V0LAotfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLW9tYXAxL01ha2VmaWxlCmluZGV4IGMwNmY1MjUuLjFiZGE4ZjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDEvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9NYWtlZmlsZQpAQCAtMyw3ICszLDkgQEAKICMKIAogIyBDb21tb24gc3VwcG9ydAotb2JqLXkgOj0gaW8ubyBpZC5vIGNsb2NrLm8gaXJxLm8gbXV4Lm8gc2VyaWFsLm8gZGV2aWNlcy5vCitvYmoteSA6PSBpby5vIGlkLm8gc3JhbS5vIGNsb2NrLm8gaXJxLm8gbXV4Lm8gc2VyaWFsLm8gZGV2aWNlcy5vCisKK29iai0kKENPTkZJR19PTUFQX01DQlNQKSArPSBtY2JzcC5vCiAKIG9iai0kKENPTkZJR19PTUFQX01QVV9USU1FUikJKz0gdGltZS5vCiBvYmotJChDT05GSUdfT01BUF8zMktfVElNRVIpCSs9IHRpbWVyMzJrLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtbm9raWE3NzAuYwppbmRleCBiY2I5ODRmLi4zZjM5ZTBlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW5va2lhNzcwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1ub2tpYTc3MC5jCkBAIC0xMCw2ICsxMCw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgpAQCAtMjAyLDcgKzIwMyw3IEBACiAjZGVmaW5lCUFNUExJRklFUl9DVFJMX0dQSU8JNTgKIAogc3RhdGljIHN0cnVjdCBjbGsgKmRzcHhvcl9jazsKLXN0YXRpYyBERUNMQVJFX01VVEVYKGF1ZGlvX3B3cl9zZW0pOworc3RhdGljIERFRklORV9NVVRFWChhdWRpb19wd3JfbG9jayk7CiAvKgogICogYXVkaW9fcHdyX3N0YXRlCiAgKiArLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0yMTgsNyArMjE5LDcgQEAKIHN0YXRpYyBpbnQgYXVkaW9fcHdyX3N0YXRlID0gLTE7CiAKIC8qCi0gKiBhdWRpb19wd3JfdXAgLyBkb3duIHNob3VsZCBiZSBjYWxsZWQgdW5kZXIgYXVkaW9fcHdyX3NlbQorICogYXVkaW9fcHdyX3VwIC8gZG93biBzaG91bGQgYmUgY2FsbGVkIHVuZGVyIGF1ZGlvX3B3cl9sb2NrCiAgKi8KIHN0YXRpYyB2b2lkIG5va2lhNzcwX2F1ZGlvX3B3cl91cCh2b2lkKQogewpAQCAtMjM3LDExICsyMzgsMTEgQEAKIAogc3RhdGljIHZvaWQgY29kZWNfZGVsYXllZF9wb3dlcl9kb3duKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKLQlkb3duKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF9sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJaWYgKGF1ZGlvX3B3cl9zdGF0ZSA9PSAtMSkKIAkJYWljMjNfcG93ZXJfZG93bigpOwogCWNsa19kaXNhYmxlKGRzcHhvcl9jayk7Ci0JdXAoJmF1ZGlvX3B3cl9zZW0pOworCW11dGV4X3VubG9jaygmYXVkaW9fcHdyX2xvY2spOwogfQogCiBzdGF0aWMgREVDTEFSRV9ERUxBWUVEX1dPUksoY29kZWNfcG93ZXJfZG93bl93b3JrLCBjb2RlY19kZWxheWVkX3Bvd2VyX2Rvd24pOwpAQCAtMjU4LDE5ICsyNTksMTkgQEAKIHN0YXRpYyBpbnQKIG5va2lhNzcwX2F1ZGlvX3B3cl91cF9yZXF1ZXN0KHN0cnVjdCBkc3Bfa2Z1bmNfZGV2aWNlICprZGV2LCBpbnQgc3RhZ2UpCiB7Ci0JZG93bigmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfbG9jaygmYXVkaW9fcHdyX2xvY2spOwogCWlmIChhdWRpb19wd3Jfc3RhdGUgPT0gLTEpCiAJCW5va2lhNzcwX2F1ZGlvX3B3cl91cCgpOwogCS8qIGZvcmNlIGF1ZGlvX3B3cl9zdGF0ZSA9IDAsIGV2ZW4gaWYgaXQgd2FzIDEuICovCiAJYXVkaW9fcHdyX3N0YXRlID0gMDsKLQl1cCgmYXVkaW9fcHdyX3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKIG5va2lhNzcwX2F1ZGlvX3B3cl9kb3duX3JlcXVlc3Qoc3RydWN0IGRzcF9rZnVuY19kZXZpY2UgKmtkZXYsIGludCBzdGFnZSkKIHsKLQlkb3duKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF9sb2NrKCZhdWRpb19wd3JfbG9jayk7CiAJc3dpdGNoIChzdGFnZSkgewogCWNhc2UgMToKIAkJaWYgKGF1ZGlvX3B3cl9zdGF0ZSA9PSAwKQpAQCAtMjgzLDcgKzI4NCw3IEBACiAJCX0KIAkJYnJlYWs7CiAJfQotCXVwKCZhdWRpb19wd3Jfc2VtKTsKKwltdXRleF91bmxvY2soJmF1ZGlvX3B3cl9sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtb3NrLmMKaW5kZXggYTY2NTA1Zi4uODQ1YzY2MyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1vc2suYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLW9zay5jCkBAIC0yNjcsMTMgKzI2NywxNyBAQAogCiBzdGF0aWMgdm9pZCBfX2luaXQgb3NrX2luaXRfc21jOTF4KHZvaWQpCiB7CisJdTMyIGw7CisKIAlpZiAoKGdwaW9fcmVxdWVzdCgwLCAic21jX2lycSIpKSA8IDApIHsKIAkJcHJpbnRrKCJFcnJvciByZXF1ZXN0aW5nIGdwaW8gMCBmb3Igc21jOTF4IGlycVxuIik7CiAJCXJldHVybjsKIAl9CiAKIAkvKiBDaGVjayBFTUlGUyB3YWl0IHN0YXRlcyB0byBmaXggZXJyb3JzIHdpdGggU01DX0dFVF9QS1RfSERSICovCi0JRU1JRlNfQ0NTKDEpIHw9IDB4MzsKKwlsID0gb21hcF9yZWFkbChFTUlGU19DQ1MoMSkpOworCWwgfD0gMHgzOworCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NDUygxKSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvc2tfaW5pdF9jZih2b2lkKQpAQCAtNTI2LDIwICs1MzAsMjYgQEAKIAogc3RhdGljIHZvaWQgX19pbml0IG9za19pbml0KHZvaWQpCiB7CisJdTMyIGw7CisKIAkvKiBXb3JrYXJvdW5kIGZvciB3cm9uZyBDUzMgKE5PUiBmbGFzaCkgdGltaW5nCiAJICogVGhlcmUgYXJlIHNvbWUgVS1Cb290IHZlcnNpb25zIG91dCB0aGVyZSB3aGljaCBjb25maWd1cmUKIAkgKiB3cm9uZyBDUzMgbWVtb3J5IHRpbWluZ3MuIFRoaXMgbWFpbmx5IGxlYWRzIHRvIENSQwogCSAqIG9yIHNpbWlsYXIgZXJyb3JzIGlmIHlvdSB1c2UgTk9SIGZsYXNoIChlLmcuIHdpdGggSkZGUzIpCiAJICovCi0JaWYgKEVNSUZTX0NDUygzKSAhPSBFTUlGU19DUzNfVkFMKQotCQlFTUlGU19DQ1MoMykgPSBFTUlGU19DUzNfVkFMOworCWwgPSBvbWFwX3JlYWRsKEVNSUZTX0NDUygzKSk7CisJaWYgKGwgIT0gRU1JRlNfQ1MzX1ZBTCkKKwkJb21hcF93cml0ZWwoRU1JRlNfQ1MzX1ZBTCwgRU1JRlNfQ0NTKDMpKTsKIAogCW9za19mbGFzaF9yZXNvdXJjZS5lbmQgPSBvc2tfZmxhc2hfcmVzb3VyY2Uuc3RhcnQgPSBvbWFwX2NzM19waHlzKCk7CiAJb3NrX2ZsYXNoX3Jlc291cmNlLmVuZCArPSBTWl8zMk0gLSAxOwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKG9zazU5MTJfZGV2aWNlcywgQVJSQVlfU0laRShvc2s1OTEyX2RldmljZXMpKTsKIAlvbWFwX2JvYXJkX2NvbmZpZyA9IG9za19jb25maWc7CiAJb21hcF9ib2FyZF9jb25maWdfc2l6ZSA9IEFSUkFZX1NJWkUob3NrX2NvbmZpZyk7Ci0JVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9ICgzIDw8IDEpOworCisJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCWwgfD0gKDMgPDwgMSk7CisJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCiAJLyogaXJxIGZvciB0cHM2NTAxMCBjaGlwICovCiAJLyogYm9vdGxvYWRlciBlZmZlY3RpdmVseSBkb2VzOiAgb21hcF9jZmdfcmVnKFUxOV8xNjEwX01QVUlPMSk7ICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXBhbG10ZS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9ib2FyZC1wYWxtdGUuYwppbmRleCBhMGIxNmE3Li5hNGQyMDEyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL2JvYXJkLXBhbG10ZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvYm9hcmQtcGFsbXRlLmMKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvc3BpL3RzYzIxMDIuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9hcG0tZW11bGF0aW9uLmg+CiAKQEAgLTMxNSwxNCArMzE0LDYgQEAKICNkZWZpbmUgcGFsbXRlX2dldF9wb3dlcl9zdGF0dXMJTlVMTAogI2VuZGlmCiAKLXN0YXRpYyBzdHJ1Y3QgdHNjMjEwMl9jb25maWcgcGFsbXRlX3RzYzIxMDJfY29uZmlnID0gewotCS51c2VfaW50ZXJuYWwJPSAwLAotCS5tb25pdG9yCT0gVFNDX0JBVDEgfCBUU0NfQVVYIHwgVFNDX1RFTVAsCi0JLnRlbXBfYXQyNWMJPSB7IDIyMDAsIDI2MTUgfSwKLQkuYXBtX3JlcG9ydAk9IHBhbG10ZV9nZXRfcG93ZXJfc3RhdHVzLAotCS5hbHNhX2NvbmZpZwk9ICZwYWxtdGVfYWxzYV9jb25maWcsCi19OwotCiBzdGF0aWMgc3RydWN0IG9tYXBfYm9hcmRfY29uZmlnX2tlcm5lbCBwYWxtdGVfY29uZmlnW10gX19pbml0ZGF0YSA9IHsKIAl7IE9NQVBfVEFHX1VTQiwJCSZwYWxtdGVfdXNiX2NvbmZpZyB9LAogCXsgT01BUF9UQUdfTU1DLAkJJnBhbG10ZV9tbWNfY29uZmlnIH0sCkBAIC0zMzYsNyArMzI3LDYgQEAKIAkJLmJ1c19udW0JPSAyLAkvKiB1V2lyZSAob2ZmaWNpYWxseSkgKi8KIAkJLmNoaXBfc2VsZWN0CT0gMCwJLyogQXMgb3Bwb3NlZCB0byAzICovCiAJCS5pcnEJCT0gT01BUF9HUElPX0lSUShQQUxNVEVfUElOVERBVl9HUElPKSwKLQkJLnBsYXRmb3JtX2RhdGEJPSAmcGFsbXRlX3RzYzIxMDJfY29uZmlnLAogCQkubWF4X3NwZWVkX2h6CT0gODAwMDAwMCwKIAl9LAogfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvZnBnYS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9mcGdhLmMKaW5kZXggMzBlMTg4MS4uMGNmNjJlZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMS9mcGdhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9mcGdhLmMKQEAgLTMyLDcgKzMyLDcgQEAKIAogc3RhdGljIHZvaWQgZnBnYV9tYXNrX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewotCWlycSAtPSBPTUFQMTUxMF9JSF9GUEdBX0JBU0U7CisJaXJxIC09IE9NQVBfRlBHQV9JUlFfQkFTRTsKIAogCWlmIChpcnEgPCA4KQogCQlfX3Jhd193cml0ZWIoKF9fcmF3X3JlYWRiKE9NQVAxNTEwX0ZQR0FfSU1SX0xPKQpAQCAtNjUsNyArNjUsNyBAQAogCiBzdGF0aWMgdm9pZCBmcGdhX3VubWFza19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlpcnEgLT0gT01BUDE1MTBfSUhfRlBHQV9CQVNFOworCWlycSAtPSBPTUFQX0ZQR0FfSVJRX0JBU0U7CiAKIAlpZiAoaXJxIDwgOCkKIAkJX19yYXdfd3JpdGViKChfX3Jhd19yZWFkYihPTUFQMTUxMF9GUEdBX0lNUl9MTykgfCAoMSA8PCBpcnEpKSwKQEAgLTk1LDggKzk1LDggQEAKIAlpZiAoIXN0YXQpCiAJCXJldHVybjsKIAotCWZvciAoZnBnYV9pcnEgPSBPTUFQMTUxMF9JSF9GUEdBX0JBU0U7Ci0JICAgICAoZnBnYV9pcnEgPCAoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgTlJfRlBHQV9JUlFTKSkgJiYgc3RhdDsKKwlmb3IgKGZwZ2FfaXJxID0gT01BUF9GUEdBX0lSUV9CQVNFOworCSAgICAgKGZwZ2FfaXJxIDwgT01BUF9GUEdBX0lSUV9FTkQpICYmIHN0YXQ7CiAJICAgICBmcGdhX2lycSsrLCBzdGF0ID4+PSAxKSB7CiAJCWlmIChzdGF0ICYgMSkgewogCQkJZCA9IGlycV9kZXNjICsgZnBnYV9pcnE7CkBAIC0xNTEsNyArMTUxLDcgQEAKIAlfX3Jhd193cml0ZWIoMCwgT01BUDE1MTBfRlBHQV9JTVJfSEkpOwogCV9fcmF3X3dyaXRlYigwLCBJTk5PVkFUT1JfRlBHQV9JTVIyKTsKIAotCWZvciAoaSA9IE9NQVAxNTEwX0lIX0ZQR0FfQkFTRTsgaSA8IChPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyBOUl9GUEdBX0lSUVMpOyBpKyspIHsKKwlmb3IgKGkgPSBPTUFQX0ZQR0FfSVJRX0JBU0U7IGkgPCBPTUFQX0ZQR0FfSVJRX0VORDsgaSsrKSB7CiAKIAkJaWYgKGkgPT0gT01BUDE1MTBfSU5UX0ZQR0FfVFMpIHsKIAkJCS8qCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL21jYnNwLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAxL21jYnNwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQyYzI1MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDEvbWNic3AuYwpAQCAtMCwwICsxLDI4MCBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDEvbWNic3AuYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbnN0aXR1dG8gTm9raWEgZGUgVGVjbm9sb2dpYQorICogQ29udGFjdDogRWR1YXJkbyBWYWxlbnRpbiA8ZWR1YXJkby52YWxlbnRpbkBpbmR0Lm9yZy5icj4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIE11bHRpY2hhbm5lbCBtb2RlIG5vdCBzdXBwb3J0ZWQuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL2RtYS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL211eC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvZHNwX2NvbW1vbi5oPgorCisjZGVmaW5lIERQU19SU1RDVDJfUEVSX0VOCSgxIDw8IDApCisjZGVmaW5lIERTUF9SU1RDVDJfV0RfUEVSX0VOCSgxIDw8IDEpCisKK3N0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgeworCXN0cnVjdCBjbGsgY2xrOworCXN0cnVjdCBjbGsgKipjaGlsZHM7CisJaW50IG5fY2hpbGRzOworfTsKKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDE1WFgpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDE2WFgpCitzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2Nsa19pbml0KHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGspCit7CisJY29uc3QgY2hhciAqY2xrX25hbWVzW10gPSB7ICJkc3BfY2siLCAiYXBpX2NrIiwgImRzcHhvcl9jayIgfTsKKwlpbnQgaTsKKworCW1jbGstPm5fY2hpbGRzID0gQVJSQVlfU0laRShjbGtfbmFtZXMpOworCW1jbGstPmNoaWxkcyA9IGt6YWxsb2MobWNsay0+bl9jaGlsZHMgKiBzaXplb2Yoc3RydWN0IGNsayAqKSwKKwkJCQlHRlBfS0VSTkVMKTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKSB7CisJCS8qIFdlIGZha2UgYSBwbGF0Zm9ybSBkZXZpY2UgdG8gZ2V0IGNvcnJlY3QgZGV2aWNlIGlkICovCisJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcGRldjsKKworCQlwZGV2LmRldi5idXMgPSAmcGxhdGZvcm1fYnVzX3R5cGU7CisJCXBkZXYuaWQgPSBtY2xrLT5jbGsuaWQ7CisJCW1jbGstPmNoaWxkc1tpXSA9IGNsa19nZXQoJnBkZXYuZGV2LCBjbGtfbmFtZXNbaV0pOworCQlpZiAoSVNfRVJSKG1jbGstPmNoaWxkc1tpXSkpCisJCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCBnZXQgY2xvY2sgJXMgKCVkKS5cbiIsCisJCQkJY2xrX25hbWVzW2ldLCBtY2xrLT5jbGsuaWQpOworCX0KK30KKworc3RhdGljIGludCBvbWFwX21jYnNwX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGsgPSBjb250YWluZXJfb2YoY2xrLAorCQkJCQlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrLCBjbGspOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspCisJCWNsa19lbmFibGUobWNsay0+Y2hpbGRzW2ldKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgb21hcF9tY2JzcF9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsayA9IGNvbnRhaW5lcl9vZihjbGssCisJCQkJCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGssIGNsayk7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykKKwkJY2xrX2Rpc2FibGUobWNsay0+Y2hpbGRzW2ldKTsKK30KKworc3RhdGljIHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgb21hcF9tY2JzcF9jbGtzW10gPSB7CisJeworCQkuY2xrID0geworCQkJLm5hbWUgCQk9ICJtY2JzcF9jbGsiLAorCQkJLmlkCQk9IDEsCisJCQkuZW5hYmxlCQk9IG9tYXBfbWNic3BfY2xrX2VuYWJsZSwKKwkJCS5kaXNhYmxlCT0gb21hcF9tY2JzcF9jbGtfZGlzYWJsZSwKKwkJfSwKKwl9LAorCXsKKwkJLmNsayA9IHsKKwkJCS5uYW1lIAkJPSAibWNic3BfY2xrIiwKKwkJCS5pZAkJPSAzLAorCQkJLmVuYWJsZQkJPSBvbWFwX21jYnNwX2Nsa19lbmFibGUsCisJCQkuZGlzYWJsZQk9IG9tYXBfbWNic3BfY2xrX2Rpc2FibGUsCisJCX0sCisJfSwKK307CisKKyNkZWZpbmUgb21hcF9tY2JzcF9jbGtzX3NpemUJQVJSQVlfU0laRShvbWFwX21jYnNwX2Nsa3MpCisjZWxzZQorI2RlZmluZSBvbWFwX21jYnNwX2Nsa3Nfc2l6ZQkwCitzdGF0aWMgc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayBfX2luaXRkYXRhICpvbWFwX21jYnNwX2Nsa3M7CitzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9tY2JzcF9jbGtfaW5pdChzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrKQoreyB9CisjZW5kaWYKKworc3RhdGljIGludCBvbWFwMV9tY2JzcF9jaGVjayh1bnNpZ25lZCBpbnQgaWQpCit7CisJLyogUkVWSVNJVDogQ2hlY2sgY29ycmVjdGx5IGZvciBudW1iZXIgb2YgcmVnaXN0ZXJlZCBNY0JTUHMgKi8KKwlpZiAoY3B1X2lzX29tYXA3MzAoKSkgeworCQlpZiAoaWQgPiBPTUFQX01BWF9NQ0JTUF9DT1VOVCAtIDIpIHsKKwkJICAgICAgIHByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLAorCQkJCWlkICsgMSk7CisJCSAgICAgICByZXR1cm4gLUVOT0RFVjsKKwkJfQorCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkpIHsKKwkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQgLSAxKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IE1jQlNQJWQgZG9lc24ndCBleGlzdFxuIiwKKwkJCQlpZCArIDEpOworCQkJcmV0dXJuIC1FTk9ERVY7CisJCX0KKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIC1FTk9ERVY7Cit9CisKK3N0YXRpYyB2b2lkIG9tYXAxX21jYnNwX3JlcXVlc3QodW5zaWduZWQgaW50IGlkKQoreworCS8qCisJICogT24gMTUxMCwgMTYxMCBhbmQgMTcxMCwgTWNCU1AxIGFuZCBNY0JTUDMKKwkgKiBhcmUgRFNQIHB1YmxpYyBwZXJpcGhlcmFscy4KKwkgKi8KKwlpZiAoaWQgPT0gT01BUF9NQ0JTUDEgfHwgaWQgPT0gT01BUF9NQ0JTUDMpIHsKKwkJb21hcF9kc3BfcmVxdWVzdF9tZW0oKTsKKwkJLyoKKwkJICogRFNQIGV4dGVybmFsIHBlcmlwaGVyYWwgcmVzZXQKKwkJICogRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIGRzcCBjb2RlCisJCSAqLworCQlfX3Jhd193cml0ZXcoX19yYXdfcmVhZHcoRFNQX1JTVENUMikgfCBEUFNfUlNUQ1QyX1BFUl9FTiB8CisJCQkJRFNQX1JTVENUMl9XRF9QRVJfRU4sIERTUF9SU1RDVDIpOworCX0KK30KKworc3RhdGljIHZvaWQgb21hcDFfbWNic3BfZnJlZSh1bnNpZ25lZCBpbnQgaWQpCit7CisJaWYgKGlkID09IE9NQVBfTUNCU1AxIHx8IGlkID09IE9NQVBfTUNCU1AzKQorCQlvbWFwX2RzcF9yZWxlYXNlX21lbSgpOworfQorCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3Bfb3BzIG9tYXAxX21jYnNwX29wcyA9IHsKKwkuY2hlY2sJCT0gb21hcDFfbWNic3BfY2hlY2ssCisJLnJlcXVlc3QJPSBvbWFwMV9tY2JzcF9yZXF1ZXN0LAorCS5mcmVlCQk9IG9tYXAxX21jYnNwX2ZyZWUsCit9OworCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDczMAorc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgb21hcDczMF9tY2JzcF9wZGF0YVtdID0geworCXsKKwkJLnZpcnRfYmFzZQk9IGlvX3AydihPTUFQNzMwX01DQlNQMV9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDFfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzczMF9NY0JTUDFSWCwKKwkJLnR4X2lycQkJPSBJTlRfNzMwX01jQlNQMVRYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBpb19wMnYoT01BUDczMF9NQ0JTUDJfQkFTRSksCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1RYLAorCQkucnhfaXJxCQk9IElOVF83MzBfTWNCU1AyUlgsCisJCS50eF9pcnEJCT0gSU5UXzczMF9NY0JTUDJUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCX0sCit9OworI2RlZmluZSBPTUFQNzMwX01DQlNQX1BEQVRBX1NaCQlBUlJBWV9TSVpFKG9tYXA3MzBfbWNic3BfcGRhdGEpCisjZWxzZQorI2RlZmluZSBvbWFwNzMwX21jYnNwX3BkYXRhCQlOVUxMCisjZGVmaW5lIE9NQVA3MzBfTUNCU1BfUERBVEFfU1oJCTAKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDE1WFgKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhIG9tYXAxNXh4X21jYnNwX3BkYXRhW10gPSB7CisJeworCQkudmlydF9iYXNlCT0gT01BUDE1MTBfTUNCU1AxX0JBU0UsCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1RYLAorCQkucnhfaXJxCQk9IElOVF9NY0JTUDFSWCwKKwkJLnR4X2lycQkJPSBJTlRfTWNCU1AxVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJCX0sCisJeworCQkudmlydF9iYXNlCT0gaW9fcDJ2KE9NQVAxNTEwX01DQlNQMl9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AyX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDJfVFgsCisJCS5yeF9pcnEJCT0gSU5UXzE1MTBfU1BJX1JYLAorCQkudHhfaXJxCQk9IElOVF8xNTEwX1NQSV9UWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCX0sCisJeworCQkudmlydF9iYXNlCT0gT01BUDE1MTBfTUNCU1AzX0JBU0UsCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQM19SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1RYLAorCQkucnhfaXJxCQk9IElOVF9NY0JTUDNSWCwKKwkJLnR4X2lycQkJPSBJTlRfTWNCU1AzVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKK307CisjZGVmaW5lIE9NQVAxNVhYX01DQlNQX1BEQVRBX1NaCQlBUlJBWV9TSVpFKG9tYXAxNXh4X21jYnNwX3BkYXRhKQorI2Vsc2UKKyNkZWZpbmUgb21hcDE1eHhfbWNic3BfcGRhdGEJCU5VTEwKKyNkZWZpbmUgT01BUDE1WFhfTUNCU1BfUERBVEFfU1oJCTAKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDE2WFgKK3N0YXRpYyBzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhIG9tYXAxNnh4X21jYnNwX3BkYXRhW10gPSB7CisJeworCQkudmlydF9iYXNlCT0gT01BUDE2MTBfTUNCU1AxX0JBU0UsCisJCS5kbWFfcnhfc3luYwk9IE9NQVBfRE1BX01DQlNQMV9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUF9ETUFfTUNCU1AxX1RYLAorCQkucnhfaXJxCQk9IElOVF9NY0JTUDFSWCwKKwkJLnR4X2lycQkJPSBJTlRfTWNCU1AxVFgsCisJCS5vcHMJCT0gJm9tYXAxX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBpb19wMnYoT01BUDE2MTBfTUNCU1AyX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDJfUlgsCisJCS5kbWFfdHhfc3luYwk9IE9NQVBfRE1BX01DQlNQMl9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMTYxMF9NY0JTUDJfUlgsCisJCS50eF9pcnEJCT0gSU5UXzE2MTBfTWNCU1AyX1RYLAorCQkub3BzCQk9ICZvbWFwMV9tY2JzcF9vcHMsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBPTUFQMTYxMF9NQ0JTUDNfQkFTRSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUF9ETUFfTUNCU1AzX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQX0RNQV9NQ0JTUDNfVFgsCisJCS5yeF9pcnEJCT0gSU5UX01jQlNQM1JYLAorCQkudHhfaXJxCQk9IElOVF9NY0JTUDNUWCwKKwkJLm9wcwkJPSAmb21hcDFfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorfTsKKyNkZWZpbmUgT01BUDE2WFhfTUNCU1BfUERBVEFfU1oJCUFSUkFZX1NJWkUob21hcDE2eHhfbWNic3BfcGRhdGEpCisjZWxzZQorI2RlZmluZSBvbWFwMTZ4eF9tY2JzcF9wZGF0YQkJTlVMTAorI2RlZmluZSBPTUFQMTZYWF9NQ0JTUF9QREFUQV9TWgkJMAorI2VuZGlmCisKK2ludCBfX2luaXQgb21hcDFfbWNic3BfaW5pdCh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG9tYXBfbWNic3BfY2xrc19zaXplOyBpKyspIHsKKwkJaWYgKGNwdV9pc19vbWFwMTV4eCgpIHx8IGNwdV9pc19vbWFwMTZ4eCgpKSB7CisJCQlvbWFwX21jYnNwX2Nsa19pbml0KCZvbWFwX21jYnNwX2Nsa3NbaV0pOworCQkJY2xrX3JlZ2lzdGVyKCZvbWFwX21jYnNwX2Nsa3NbaV0uY2xrKTsKKwkJfQorCX0KKworCWlmIChjcHVfaXNfb21hcDczMCgpKQorCQlvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhvbWFwNzMwX21jYnNwX3BkYXRhLAorCQkJCQkJT01BUDczMF9NQ0JTUF9QREFUQV9TWik7CisKKwlpZiAoY3B1X2lzX29tYXAxNXh4KCkpCisJCW9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKG9tYXAxNXh4X21jYnNwX3BkYXRhLAorCQkJCQkJT01BUDE1WFhfTUNCU1BfUERBVEFfU1opOworCisJaWYgKGNwdV9pc19vbWFwMTZ4eCgpKQorCQlvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhvbWFwMTZ4eF9tY2JzcF9wZGF0YSwKKwkJCQkJCU9NQVAxNlhYX01DQlNQX1BEQVRBX1NaKTsKKworCXJldHVybiBvbWFwX21jYnNwX2luaXQoKTsKK30KKworYXJjaF9pbml0Y2FsbChvbWFwMV9tY2JzcF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDEvcG0uYyBiL2FyY2gvYXJtL21hY2gtb21hcDEvcG0uYwppbmRleCBlNmM2NGUxLi43NDJmNzllIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAxL3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMS9wbS5jCkBAIC0xMTYsMTMgKzExNiw2IEBACiAJCXJldHVybjsKIAl9CiAKLQkvKgotCSAqIFNpbmNlIGFuIGludGVycnVwdCBtYXkgc2V0IHVwIGEgdGltZXIsIHdlIGRvbid0IHdhbnQgdG8KLQkgKiByZXByb2dyYW0gdGhlIGhhcmR3YXJlIHRpbWVyIHdpdGggaW50ZXJydXB0cyBlbmFibGVkLgotCSAqIFJlLWVuYWJsZSBpbnRlcnJ1cHRzIG9ubHkgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gaWRsZS4KLQkgKi8KLQl0aW1lcl9keW5fcmVwcm9ncmFtKCk7Ci0KICNpZmRlZiBDT05GSUdfT01BUF9NUFVfVElNRVIKICN3YXJuaW5nIEVuYWJsZSAzMmtIeiBPUyB0aW1lciBpbiBvcmRlciB0byBhbGxvdyBzbGVlcCBzdGF0ZXMgaW4gaWRsZQogCXVzZV9pZGxlY3QxID0gdXNlX2lkbGVjdDEgJiB+KDEgPDwgOSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAxL3NyYW0uUyBiL2FyY2gvYXJtL21hY2gtb21hcDEvc3JhbS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNmQyNTIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAxL3NyYW0uUwpAQCAtMCwwICsxLDU3IEBACisvKgorICogbGludXgvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0tZm4uUworICoKKyAqIEZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKwkudGV4dAorCisvKgorICogUmVwcm9ncmFtcyBVTFBEIGFuZCBDS0NUTC4KKyAqLworRU5UUlkob21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2spCisJc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQkJQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjaworCisJbW92CXIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweGZmMDAwMDAwCisJb3JyCXIyLCByMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHgwMGZmMDAwMAorCW9ycglyMiwgcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4MDAwMGZmMDAKKworCW1vdglyMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4ZmYwMDAwMDAKKwlvcnIJcjMsIHIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHgwMGZmMDAwMAorCW9ycglyMywgcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweDAwMDBmZjAwCisKKwl0c3QJcjAsICMxIDw8IDQJCQlAIHdhbnQgbG9jayBtb2RlPworCWJlcQluZXdjawkJCQlAIG5vcGUKKwliaWMJcjAsIHIwLCAjMSA8PCA0CQkJQCBlbHNlIGNsZWFyIGxvY2sgYml0CisJc3RyaAlyMCwgW3IyXQkJCUAgc2V0IGRwbGwgaW50byBieXBhc3MgbW9kZQorCW9ycglyMCwgcjAsICMxIDw8IDQJCQlAIHNldCBsb2NrIGJpdCBhZ2FpbgorCituZXdjazoKKwlzdHJoCXIxLCBbcjNdCQkJQCB3cml0ZSBuZXcgY2tjdGwgdmFsdWUKKwlzdHJoCXIwLCBbcjJdCQkJQCB3cml0ZSBuZXcgZHBsbCB2YWx1ZQorCisJbW92CXI0LCAjMHgwNzAwCQkJQCBsZXQgdGhlIGNsb2NrcyBzZXR0bGUKKwlvcnIJcjQsIHI0LCAjMHgwMGZmCitkZWxheToJc3ViCXI0LCByNCwgIzEKKwljbXAJcjQsICMwCisJYm5lCWRlbGF5CisKK2xvY2s6CWxkcmgJcjQsIFtyMl0sICMwCQkJQCByZWFkIGJhY2sgZHBsbCB2YWx1ZQorCXRzdAlyMCwgIzEgPDwgNAkJCUAgd2FudCBsb2NrIG1vZGU/CisJYmVxCW91dAkJCQlAIG5vcGUKKwl0c3QJcjQsICMxIDw8IDAJCQlAIGRwbGwgcmF0ZSBsb2NrZWQ/CisJYmVxCWxvY2sJCQkJQCB0cnkgYWdhaW4KKworb3V0OgorCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JCUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KK0VOVFJZKG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6KQorCS53b3JkCS4gLSBvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9jawpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUKaW5kZXggMmZlYjY4Ny4uOTNlZTk5MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL01ha2VmaWxlCkBAIC0zLDkgKzMsMTUgQEAKICMKIAogIyBDb21tb24gc3VwcG9ydAotb2JqLXkgOj0gaXJxLm8gaWQubyBpby5vIHNyYW0tZm4ubyBtZW1vcnkubyBjb250cm9sLm8gcHJjbS5vIGNsb2NrLm8gbXV4Lm8gXAorb2JqLXkgOj0gaXJxLm8gaWQubyBpby5vIG1lbW9yeS5vIGNvbnRyb2wubyBwcmNtLm8gY2xvY2subyBtdXgubyBcCiAJCWRldmljZXMubyBzZXJpYWwubyBncG1jLm8gdGltZXItZ3AubwogCitvYmotJChDT05GSUdfT01BUF9NQ0JTUCkgKz0gbWNic3AubworCisjIEZ1bmN0aW9ucyBsb2FkZWQgdG8gU1JBTQorb2JqLSQoQ09ORklHX0FSQ0hfT01BUDI0MjApCQkrPSBzcmFtMjQyeC5vCitvYmotJChDT05GSUdfQVJDSF9PTUFQMjQzMCkJCSs9IHNyYW0yNDN4Lm8KKwogIyBQb3dlciBNYW5hZ2VtZW50CiBvYmotJChDT05GSUdfUE0pICs9IHBtLm8gc2xlZXAubwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmMKaW5kZXggYWI5ZmM1Ny4uMTU2NzViYyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suYwpAQCAtNDEsNiArNDEsMjQgQEAKIAogI2RlZmluZSBNQVhfQ0xPQ0tfRU5BQkxFX1dBSVQJCTEwMDAwMAogCisvKiBEUExMIHJhdGUgcm91bmRpbmc6IG1pbmltdW0gRFBMTCBtdWx0aXBsaWVyLCBkaXZpZGVyIHZhbHVlcyAqLworI2RlZmluZSBEUExMX01JTl9NVUxUSVBMSUVSCQkxCisjZGVmaW5lIERQTExfTUlOX0RJVklERVIJCTEKKworLyogUG9zc2libGUgZXJyb3IgcmVzdWx0cyBmcm9tIF9kcGxsX3Rlc3RfbXVsdCAqLworI2RlZmluZSBEUExMX01VTFRfVU5ERVJGTE9XCQkoMSA8PCAwKQorCisvKgorICogU2NhbGUgZmFjdG9yIHRvIG1pdGlnYXRlIHJvdW5kb2ZmIGVycm9ycyBpbiBEUExMIHJhdGUgcm91bmRpbmcuCisgKiBUaGUgaGlnaGVyIHRoZSBzY2FsZSBmYWN0b3IsIHRoZSBncmVhdGVyIHRoZSByaXNrIG9mIGFyaXRobWV0aWMgb3ZlcmZsb3csCisgKiBidXQgdGhlIGNsb3NlciB0aGUgcm91bmRlZCByYXRlIHRvIHRoZSB0YXJnZXQgcmF0ZS4gIERQTExfU0NBTEVfRkFDVE9SCisgKiBtdXN0IGJlIGEgcG93ZXIgb2YgRFBMTF9TQ0FMRV9CQVNFLgorICovCisjZGVmaW5lIERQTExfU0NBTEVfRkFDVE9SCQk2NAorI2RlZmluZSBEUExMX1NDQUxFX0JBU0UJCQkyCisjZGVmaW5lIERQTExfUk9VTkRJTkdfVkFMCQkoKERQTExfU0NBTEVfQkFTRSAvIDIpICogXAorCQkJCQkgKERQTExfU0NBTEVfRkFDVE9SIC8gRFBMTF9TQ0FMRV9CQVNFKSkKKwogdTggY3B1X21hc2s7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTUsNyArMTEzLDcgQEAKIHsKIAlsb25nIGxvbmcgZHBsbF9jbGs7CiAJdTMyIGRwbGxfbXVsdCwgZHBsbF9kaXYsIGRwbGw7Ci0JY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisJc3RydWN0IGRwbGxfZGF0YSAqZGQ7CiAKIAlkZCA9IGNsay0+ZHBsbF9kYXRhOwogCS8qIFJFVklTSVQ6IFdoYXQgZG8gd2UgcmV0dXJuIG9uIGVycm9yPyAqLwpAQCAtNjAzLDcgKzYyMSw4IEBACiAJY2xrLT5yYXRlID0gY2xrLT5wYXJlbnQtPnJhdGUgLyBuZXdfZGl2OwogCiAJaWYgKGNsay0+ZmxhZ3MgJiBERUxBWUVEX0FQUCAmJiBjcHVfaXNfb21hcDI0eHgoKSkgewotCQlfX3Jhd193cml0ZWwoT01BUDI0WFhfVkFMSURfQ09ORklHLCBPTUFQMjRYWF9QUkNNX0NMS0NGR19DVFJMKTsKKwkJcHJtX3dyaXRlX21vZF9yZWcoT01BUDI0WFhfVkFMSURfQ09ORklHLAorCQkJT01BUDI0WFhfR1JfTU9ELCBPTUFQMjRYWF9QUkNNX0NMS0NGR19DVFJMX09GRlNFVCk7CiAJCXdtYigpOwogCX0KIApAQCAtNzIzLDYgKzc0MiwxODQgQEAKIAlyZXR1cm4gMDsKIH0KIAorLyogRFBMTCByYXRlIHJvdW5kaW5nIGNvZGUgKi8KKworLyoqCisgKiBvbWFwMl9kcGxsX3NldF9yYXRlX3RvbGVyYW5jZTogc2V0IHRoZSBlcnJvciB0b2xlcmFuY2UgZHVyaW5nIHJhdGUgcm91bmRpbmcKKyAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiB0aGUgRFBMTAorICogQHRvbGVyYW5jZTogbWF4aW11bSByYXRlIGVycm9yIHRvbGVyYW5jZQorICoKKyAqIFNldCB0aGUgbWF4aW11bSBEUExMIHJhdGUgZXJyb3IgdG9sZXJhbmNlIGZvciB0aGUgcmF0ZSByb3VuZGluZworICogYWxnb3JpdGhtLiAgVGhlIHJhdGUgdG9sZXJhbmNlIGlzIGFuIGF0dGVtcHQgdG8gYmFsYW5jZSBEUExMIHBvd2VyCisgKiBzYXZpbmcgKHRoZSBsZWFzdCBkaXZpZGVyIHZhbHVlICJuIikgdnMuIHJhdGUgZmlkZWxpdHkgKHRoZSBsZWFzdAorICogZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBkZXNpcmVkIERQTEwgdGFyZ2V0IHJhdGUgYW5kIHRoZSByb3VuZGVkCisgKiByYXRlIG91dCBvZiB0aGUgYWxnb3JpdGhtKS4gIFNvLCBpbmNyZWFzaW5nIHRoZSB0b2xlcmFuY2UgaXMgbGlrZWx5CisgKiB0byBkZWNyZWFzZSBEUExMIHBvd2VyIGNvbnN1bXB0aW9uIGFuZCBpbmNyZWFzZSBEUExMIHJhdGUgZXJyb3IuCisgKiBSZXR1cm5zIC1FSU5WQUwgaWYgcHJvdmlkZWQgYSBudWxsIGNsb2NrIHB0ciBvciBhIGNsayB0aGF0IGlzIG5vdCBhCisgKiBEUExMOyBvciAwIHVwb24gc3VjY2Vzcy4KKyAqLworaW50IG9tYXAyX2RwbGxfc2V0X3JhdGVfdG9sZXJhbmNlKHN0cnVjdCBjbGsgKmNsaywgdW5zaWduZWQgaW50IHRvbGVyYW5jZSkKK3sKKwlpZiAoIWNsayB8fCAhY2xrLT5kcGxsX2RhdGEpCisJCXJldHVybiAtRUlOVkFMOworCisJY2xrLT5kcGxsX2RhdGEtPnJhdGVfdG9sZXJhbmNlID0gdG9sZXJhbmNlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9kcGxsX2NvbXB1dGVfbmV3X3JhdGUodW5zaWduZWQgbG9uZyBwYXJlbnRfcmF0ZSwgdW5zaWduZWQgaW50IG0sIHVuc2lnbmVkIGludCBuKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBudW07CisKKwludW0gPSAodW5zaWduZWQgbG9uZyBsb25nKXBhcmVudF9yYXRlICogbTsKKwlkb19kaXYobnVtLCBuKTsKKwlyZXR1cm4gbnVtOworfQorCisvKgorICogX2RwbGxfdGVzdF9tdWx0IC0gdGVzdCBhIERQTEwgbXVsdGlwbGllciB2YWx1ZQorICogQG06IHBvaW50ZXIgdG8gdGhlIERQTEwgbSAobXVsdGlwbGllcikgdmFsdWUgdW5kZXIgdGVzdAorICogQG46IGN1cnJlbnQgRFBMTCBuIChkaXZpZGVyKSB2YWx1ZSB1bmRlciB0ZXN0CisgKiBAbmV3X3JhdGU6IHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJlc3VsdGluZyByb3VuZGVkIHJhdGUKKyAqIEB0YXJnZXRfcmF0ZTogdGhlIGRlc2lyZWQgRFBMTCByYXRlCisgKiBAcGFyZW50X3JhdGU6IHRoZSBEUExMJ3MgcGFyZW50IGNsb2NrIHJhdGUKKyAqCisgKiBUaGlzIGNvZGUgdGVzdHMgYSBEUExMIG11bHRpcGxpZXIgdmFsdWUsIGVuc3VyaW5nIHRoYXQgdGhlCisgKiByZXN1bHRpbmcgcmF0ZSB3aWxsIG5vdCBiZSBoaWdoZXIgdGhhbiB0aGUgdGFyZ2V0X3JhdGUsIGFuZCB0aGF0CisgKiB0aGUgbXVsdGlwbGllciB2YWx1ZSBpdHNlbGYgaXMgdmFsaWQgZm9yIHRoZSBEUExMLiAgSW5pdGlhbGx5LCB0aGUKKyAqIGludGVnZXIgcG9pbnRlZCB0byBieSB0aGUgbSBhcmd1bWVudCBzaG91bGQgYmUgcHJlc2NhbGVkIGJ5CisgKiBtdWx0aXBseWluZyBieSBEUExMX1NDQUxFX0ZBQ1RPUi4gIFRoZSBjb2RlIHdpbGwgcmVwbGFjZSB0aGlzIHdpdGgKKyAqIGEgbm9uLXNjYWxlZCBtIHVwb24gcmV0dXJuLiAgVGhpcyBub24tc2NhbGVkIG0gd2lsbCByZXN1bHQgaW4gYQorICogbmV3X3JhdGUgYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGFyZ2V0X3JhdGUgKGJ1dCBub3QgZ3JlYXRlciB0aGFuCisgKiB0YXJnZXRfcmF0ZSkgZ2l2ZW4gdGhlIGN1cnJlbnQgKHBhcmVudF9yYXRlLCBuLCBwcmVzY2FsZWQgbSkKKyAqIHRyaXBsZS4gUmV0dXJucyBEUExMX01VTFRfVU5ERVJGTE9XIGluIHRoZSBldmVudCB0aGF0IHRoZQorICogbm9uLXNjYWxlZCBtIGF0dGVtcHRlZCB0byB1bmRlcmZsb3csIHdoaWNoIGNhbiBhbGxvdyB0aGUgY2FsbGluZworICogZnVuY3Rpb24gdG8gYmFpbCBvdXQgZWFybHk7IG9yIDAgdXBvbiBzdWNjZXNzLgorICovCitzdGF0aWMgaW50IF9kcGxsX3Rlc3RfbXVsdChpbnQgKm0sIGludCBuLCB1bnNpZ25lZCBsb25nICpuZXdfcmF0ZSwKKwkJCSAgIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X3JhdGUsCisJCQkgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQoreworCWludCBmbGFncyA9IDAsIGNhcnJ5ID0gMDsKKworCS8qIFVuc2NhbGUgbSBhbmQgcm91bmQgaWYgbmVjZXNzYXJ5ICovCisJaWYgKCptICUgRFBMTF9TQ0FMRV9GQUNUT1IgPj0gRFBMTF9ST1VORElOR19WQUwpCisJCWNhcnJ5ID0gMTsKKwkqbSA9ICgqbSAvIERQTExfU0NBTEVfRkFDVE9SKSArIGNhcnJ5OworCisJLyoKKwkgKiBUaGUgbmV3IHJhdGUgbXVzdCBiZSA8PSB0aGUgdGFyZ2V0IHJhdGUgdG8gYXZvaWQgcHJvZ3JhbW1pbmcKKwkgKiBhIHJhdGUgdGhhdCBpcyBpbXBvc3NpYmxlIGZvciB0aGUgaGFyZHdhcmUgdG8gaGFuZGxlCisJICovCisJKm5ld19yYXRlID0gX2RwbGxfY29tcHV0ZV9uZXdfcmF0ZShwYXJlbnRfcmF0ZSwgKm0sIG4pOworCWlmICgqbmV3X3JhdGUgPiB0YXJnZXRfcmF0ZSkgeworCQkoKm0pLS07CisJCSpuZXdfcmF0ZSA9IDA7CisJfQorCisJLyogR3VhcmQgYWdhaW5zdCBtIHVuZGVyZmxvdyAqLworCWlmICgqbSA8IERQTExfTUlOX01VTFRJUExJRVIpIHsKKwkJKm0gPSBEUExMX01JTl9NVUxUSVBMSUVSOworCQkqbmV3X3JhdGUgPSAwOworCQlmbGFncyA9IERQTExfTVVMVF9VTkRFUkZMT1c7CisJfQorCisJaWYgKCpuZXdfcmF0ZSA9PSAwKQorCQkqbmV3X3JhdGUgPSBfZHBsbF9jb21wdXRlX25ld19yYXRlKHBhcmVudF9yYXRlLCAqbSwgbik7CisKKwlyZXR1cm4gZmxhZ3M7Cit9CisKKy8qKgorICogb21hcDJfZHBsbF9yb3VuZF9yYXRlIC0gcm91bmQgYSB0YXJnZXQgcmF0ZSBmb3IgYW4gT01BUCBEUExMCisgKiBAY2xrOiBzdHJ1Y3QgY2xrICogZm9yIGEgRFBMTAorICogQHRhcmdldF9yYXRlOiBkZXNpcmVkIERQTEwgY2xvY2sgcmF0ZQorICoKKyAqIEdpdmVuIGEgRFBMTCwgYSBkZXNpcmVkIHRhcmdldCByYXRlLCBhbmQgYSByYXRlIHRvbGVyYW5jZSwgcm91bmQKKyAqIHRoZSB0YXJnZXQgcmF0ZSB0byBhIHBvc3NpYmxlLCBwcm9ncmFtbWFibGUgcmF0ZSBmb3IgdGhpcyBEUExMLgorICogUmF0ZSB0b2xlcmFuY2UgaXMgYXNzdW1lZCB0byBiZSBzZXQgYnkgdGhlIGNhbGxlciBiZWZvcmUgdGhpcworICogZnVuY3Rpb24gaXMgY2FsbGVkLiAgQXR0ZW1wdHMgdG8gc2VsZWN0IHRoZSBtaW5pbXVtIHBvc3NpYmxlIG4KKyAqIHdpdGhpbiB0aGUgdG9sZXJhbmNlIHRvIHJlZHVjZSBwb3dlciBjb25zdW1wdGlvbi4gIFN0b3JlcyB0aGUKKyAqIGNvbXB1dGVkIChtLCBuKSBpbiB0aGUgRFBMTCdzIGRwbGxfZGF0YSBzdHJ1Y3R1cmUgc28gc2V0X3JhdGUoKQorICogd2lsbCBub3QgbmVlZCB0byBjYWxsIHRoaXMgKGV4cGVuc2l2ZSkgZnVuY3Rpb24gYWdhaW4uICBSZXR1cm5zIH4wCisgKiBpZiB0aGUgdGFyZ2V0IHJhdGUgY2Fubm90IGJlIHJvdW5kZWQsIGVpdGhlciBiZWNhdXNlIHRoZSByYXRlIGlzCisgKiB0b28gbG93IG9yIGJlY2F1c2UgdGhlIHJhdGUgdG9sZXJhbmNlIGlzIHNldCB0b28gdGlnaHRseTsgb3IgdGhlCisgKiByb3VuZGVkIHJhdGUgdXBvbiBzdWNjZXNzLgorICovCitsb25nIG9tYXAyX2RwbGxfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgdGFyZ2V0X3JhdGUpCit7CisJaW50IG0sIG4sIHIsIGUsIHNjYWxlZF9tYXhfbTsKKwl1bnNpZ25lZCBsb25nIHNjYWxlZF9ydF9ycCwgbmV3X3JhdGU7CisJaW50IG1pbl9lID0gLTEsIG1pbl9lX20gPSAtMSwgbWluX2VfbiA9IC0xOworCisJaWYgKCFjbGsgfHwgIWNsay0+ZHBsbF9kYXRhKQorCQlyZXR1cm4gfjA7CisKKwlwcl9kZWJ1ZygiY2xvY2s6IHN0YXJ0aW5nIERQTEwgcm91bmRfcmF0ZSBmb3IgY2xvY2sgJXMsIHRhcmdldCByYXRlICIKKwkJICIlbGRcbiIsIGNsay0+bmFtZSwgdGFyZ2V0X3JhdGUpOworCisJc2NhbGVkX3J0X3JwID0gdGFyZ2V0X3JhdGUgLyAoY2xrLT5wYXJlbnQtPnJhdGUgLyBEUExMX1NDQUxFX0ZBQ1RPUik7CisJc2NhbGVkX21heF9tID0gY2xrLT5kcGxsX2RhdGEtPm1heF9tdWx0aXBsaWVyICogRFBMTF9TQ0FMRV9GQUNUT1I7CisKKwljbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX3JhdGUgPSAwOworCisJZm9yIChuID0gY2xrLT5kcGxsX2RhdGEtPm1heF9kaXZpZGVyOyBuID49IERQTExfTUlOX0RJVklERVI7IG4tLSkgeworCisJCS8qIENvbXB1dGUgdGhlIHNjYWxlZCBEUExMIG11bHRpcGxpZXIsIGJhc2VkIG9uIHRoZSBkaXZpZGVyICovCisJCW0gPSBzY2FsZWRfcnRfcnAgKiBuOworCisJCS8qCisJCSAqIFNpbmNlIHdlJ3JlIGNvdW50aW5nIG4gZG93biwgYSBtIG92ZXJmbG93IG1lYW5zIHdlIGNhbgorCQkgKiBjYW4gaW1tZWRpYXRlbHkgc2tpcCB0byB0aGUgbmV4dCBuCisJCSAqLworCQlpZiAobSA+IHNjYWxlZF9tYXhfbSkKKwkJCWNvbnRpbnVlOworCisJCXIgPSBfZHBsbF90ZXN0X211bHQoJm0sIG4sICZuZXdfcmF0ZSwgdGFyZ2V0X3JhdGUsCisJCQkJICAgIGNsay0+cGFyZW50LT5yYXRlKTsKKworCQllID0gdGFyZ2V0X3JhdGUgLSBuZXdfcmF0ZTsKKwkJcHJfZGVidWcoImNsb2NrOiBuID0gJWQ6IG0gPSAlZDogcmF0ZSBlcnJvciBpcyAlZCAiCisJCQkgIihuZXdfcmF0ZSA9ICVsZClcbiIsIG4sIG0sIGUsIG5ld19yYXRlKTsKKworCQlpZiAobWluX2UgPT0gLTEgfHwKKwkJICAgIG1pbl9lID49IChpbnQpKGFicyhlKSAtIGNsay0+ZHBsbF9kYXRhLT5yYXRlX3RvbGVyYW5jZSkpIHsKKwkJCW1pbl9lID0gZTsKKwkJCW1pbl9lX20gPSBtOworCQkJbWluX2VfbiA9IG47CisKKwkJCXByX2RlYnVnKCJjbG9jazogZm91bmQgbmV3IGxlYXN0IGVycm9yICVkXG4iLCBtaW5fZSk7CisJCX0KKworCQkvKgorCQkgKiBTaW5jZSB3ZSdyZSBjb3VudGluZyBuIGRvd24sIGEgbSB1bmRlcmZsb3cgbWVhbnMgd2UKKwkJICogY2FuIGJhaWwgb3V0IGNvbXBsZXRlbHkgKHNpbmNlIGFzIG4gZGVjcmVhc2VzIGluCisJCSAqIHRoZSBuZXh0IGl0ZXJhdGlvbiwgdGhlcmUncyBubyB3YXkgdGhhdCBtIGNhbgorCQkgKiBpbmNyZWFzZSBiZXlvbmQgdGhlIGN1cnJlbnQgbSkKKwkJICovCisJCWlmIChyICYgRFBMTF9NVUxUX1VOREVSRkxPVykKKwkJCWJyZWFrOworCX0KKworCWlmIChtaW5fZSA8IDApIHsKKwkJcHJfZGVidWcoImNsb2NrOiBlcnJvcjogdGFyZ2V0IHJhdGUgb3IgdG9sZXJhbmNlIHRvbyBsb3dcbiIpOworCQlyZXR1cm4gfjA7CisJfQorCisJY2xrLT5kcGxsX2RhdGEtPmxhc3Rfcm91bmRlZF9tID0gbWluX2VfbTsKKwljbGstPmRwbGxfZGF0YS0+bGFzdF9yb3VuZGVkX24gPSBtaW5fZV9uOworCWNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfcmF0ZSA9CisJCV9kcGxsX2NvbXB1dGVfbmV3X3JhdGUoY2xrLT5wYXJlbnQtPnJhdGUsIG1pbl9lX20sICBtaW5fZV9uKTsKKworCXByX2RlYnVnKCJjbG9jazogZmluYWwgbGVhc3QgZXJyb3I6IGUgPSAlZCwgbSA9ICVkLCBuID0gJWRcbiIsCisJCSBtaW5fZSwgbWluX2VfbSwgbWluX2Vfbik7CisJcHJfZGVidWcoImNsb2NrOiBmaW5hbCByYXRlOiAlbGQgICh0YXJnZXQgcmF0ZTogJWxkKVxuIiwKKwkJIGNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfcmF0ZSwgdGFyZ2V0X3JhdGUpOworCisJcmV0dXJuIGNsay0+ZHBsbF9kYXRhLT5sYXN0X3JvdW5kZWRfcmF0ZTsKK30KKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBPbWFwMiBjbG9jayByZXNldCBhbmQgaW5pdCBmdW5jdGlvbnMKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrLmgKaW5kZXggZDU5ODBhOS4uM2NkMzdjYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jay5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2suaApAQCAtMTgsMTEgKzE4LDE2IEBACiAKICNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgogCisvKiBUaGUgbWF4aW11bSBlcnJvciBiZXR3ZWVuIGEgdGFyZ2V0IERQTEwgcmF0ZSBhbmQgdGhlIHJvdW5kZWQgcmF0ZSBpbiBIeiAqLworI2RlZmluZSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UJNTAwMDAKKwogaW50IG9tYXAyX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKTsKIHZvaWQgb21hcDJfY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKTsKIGxvbmcgb21hcDJfY2xrX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpOwogaW50IG9tYXAyX2Nsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSk7CiBpbnQgb21hcDJfY2xrX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpuZXdfcGFyZW50KTsKK2ludCBvbWFwMl9kcGxsX3JhdGVfdG9sZXJhbmNlX3NldChzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGludCB0b2xlcmFuY2UpOworbG9uZyBvbWFwMl9kcGxsX3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHRhcmdldF9yYXRlKTsKIAogI2lmZGVmIENPTkZJR19PTUFQX1JFU0VUX0NMT0NLUwogdm9pZCBvbWFwMl9jbGtfZGlzYWJsZV91bnVzZWQoc3RydWN0IGNsayAqY2xrKTsKQEAgLTQyLDYgKzQ3LDcgQEAKIGludCBvbWFwMl9jbGtzZWxfc2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpOwogdTMyIG9tYXAyX2dldF9kcGxsX3JhdGUoc3RydWN0IGNsayAqY2xrKTsKIGludCBvbWFwMl93YWl0X2Nsb2NrX3JlYWR5KHZvaWQgX19pb21lbSAqcmVnLCB1MzIgY3ZhbCwgY29uc3QgY2hhciAqbmFtZSk7Cit2b2lkIG9tYXAyX2Nsa19wcmVwYXJlX2Zvcl9yZWJvb3Qodm9pZCk7CiAKIGV4dGVybiB1OCBjcHVfbWFzazsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmMKaW5kZXggZWNlMzJkOC4uYWE1Njc4NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5jCkBAIC0xNTQsNyArMTU0LDcgQEAKICAqIFVzZXMgdGhlIGN1cnJlbnQgcHJjbSBzZXQgdG8gdGVsbCBpZiBhIHJhdGUgaXMgdmFsaWQuCiAgKiBZb3UgY2FuIGdvIHNsb3dlciwgYnV0IG5vdCBmYXN0ZXIgd2l0aGluIGEgZ2l2ZW4gcmF0ZSBzZXQuCiAgKi8KLXN0YXRpYyB1MzIgb21hcDJfZHBsbF9yb3VuZF9yYXRlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0X3JhdGUpCitsb25nIG9tYXAyX2RwbGxjb3JlX3JvdW5kX3JhdGUodW5zaWduZWQgbG9uZyB0YXJnZXRfcmF0ZSkKIHsKIAl1MzIgaGlnaCwgbG93LCBjb3JlX2Nsa19zcmM7CiAKQEAgLTE4MywxNCArMTgzLDE0IEBACiAKIH0KIAotc3RhdGljIHZvaWQgb21hcDJfZHBsbF9yZWNhbGMoc3RydWN0IGNsayAqY2xrKQorc3RhdGljIHZvaWQgb21hcDJfZHBsbGNvcmVfcmVjYWxjKHN0cnVjdCBjbGsgKmNsaykKIHsKIAljbGstPnJhdGUgPSBvbWFwMl9nZXRfZHBsbF9yYXRlXzI0eHgoY2xrKTsKIAogCXByb3BhZ2F0ZV9yYXRlKGNsayk7CiB9CiAKLXN0YXRpYyBpbnQgb21hcDJfcmVwcm9ncmFtX2RwbGwoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpCitzdGF0aWMgaW50IG9tYXAyX3JlcHJvZ3JhbV9kcGxsY29yZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKIHsKIAl1MzIgY3VyX3JhdGUsIGxvdywgbXVsdCwgZGl2LCB2YWxpZF9yYXRlLCBkb25lX3JhdGU7CiAJdTMyIGJ5cGFzcyA9IDA7CkBAIC0yMDksNyArMjA5LDcgQEAKIAl9IGVsc2UgaWYgKChyYXRlID09IChjdXJfcmF0ZSAqIDIpKSAmJiAobXVsdCA9PSAxKSkgewogCQlvbWFwMl9yZXByb2dyYW1fc2RyYyhDT1JFX0NMS19TUkNfRFBMTF9YMiwgMSk7CiAJfSBlbHNlIGlmIChyYXRlICE9IGN1cl9yYXRlKSB7Ci0JCXZhbGlkX3JhdGUgPSBvbWFwMl9kcGxsX3JvdW5kX3JhdGUocmF0ZSk7CisJCXZhbGlkX3JhdGUgPSBvbWFwMl9kcGxsY29yZV9yb3VuZF9yYXRlKHJhdGUpOwogCQlpZiAodmFsaWRfcmF0ZSAhPSByYXRlKQogCQkJZ290byBkcGxsX2V4aXQ7CiAKQEAgLTI1Niw3ICsyNTYsNyBAQAogCQlvbWFwMl9pbml0X21lbW9yeV9wYXJhbXMob21hcDJfZGxsX2ZvcmNlX25lZWRlZCgpKTsKIAkJb21hcDJfcmVwcm9ncmFtX3NkcmMoZG9uZV9yYXRlLCAwKTsKIAl9Ci0Jb21hcDJfZHBsbF9yZWNhbGMoJmRwbGxfY2spOworCW9tYXAyX2RwbGxjb3JlX3JlY2FsYygmZHBsbF9jayk7CiAJcmV0ID0gMDsKIAogZHBsbF9leGl0OgpAQCAtMzgzLDcgKzM4Myw3IEBACiAKIAkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCX0KLQlvbWFwMl9kcGxsX3JlY2FsYygmZHBsbF9jayk7CisJb21hcDJfZHBsbGNvcmVfcmVjYWxjKCZkcGxsX2NrKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2syNHh4LmgKaW5kZXggODgwODFlZC4uYmU0ZTI1NSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazI0eHguaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMjR4eC5oCkBAIC0zMCwxMiArMzAsMTIgQEAKIHN0YXRpYyB2b2lkIG9tYXAyX3N5c19jbGtfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgdm9pZCBvbWFwMl9vc2NfY2xrX3JlY2FsYyhzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIHZvaWQgb21hcDJfc3lzX2Nsa19yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKLXN0YXRpYyB2b2lkIG9tYXAyX2RwbGxfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgdm9pZCBvbWFwMl9kcGxsY29yZV9yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyBpbnQgb21hcDJfY2xrX2ZpeGVkX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIHZvaWQgb21hcDJfY2xrX2ZpeGVkX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKTsKIHN0YXRpYyBpbnQgb21hcDJfZW5hYmxlX29zY19jayhzdHJ1Y3QgY2xrICpjbGspOwogc3RhdGljIHZvaWQgb21hcDJfZGlzYWJsZV9vc2NfY2soc3RydWN0IGNsayAqY2xrKTsKLXN0YXRpYyBpbnQgb21hcDJfcmVwcm9ncmFtX2RwbGwoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpOworc3RhdGljIGludCBvbWFwMl9yZXByb2dyYW1fZHBsbGNvcmUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIHJhdGUpOwogCiAvKiBLZXkgZGl2aWRlcnMgd2hpY2ggbWFrZSB1cCBhIFBSQ00gc2V0LiBSYXRpbydzIGZvciBhIFBSQ00gYXJlIG1hbmRhdGVkLgogICogeHRhbF9zcGVlZCwgZHBsbF9zcGVlZCwgbXB1X3NwZWVkLCBDTV9DTEtTRUxfTVBVLENNX0NMS1NFTF9EU1AKQEAgLTY2NSwyMCArNjY1LDI3IEBACiAgKiBkZWFsIHdpdGggdGhpcwogICovCiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGxfZGQgPSB7CitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsX2RkID0gewogCS5tdWx0X2RpdjFfcmVnCQk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwxKSwKIAkubXVsdF9tYXNrCQk9IE9NQVAyNFhYX0RQTExfTVVMVF9NQVNLLAogCS5kaXYxX21hc2sJCT0gT01BUDI0WFhfRFBMTF9ESVZfTUFTSywKKwkubWF4X211bHRpcGxpZXIJCT0gMTAyNCwKKwkubWF4X2RpdmlkZXIJCT0gMTYsCisJLnJhdGVfdG9sZXJhbmNlCQk9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAorLyoKKyAqIFhYWCBDYW5ub3QgYWRkIHJvdW5kX3JhdGUgaGVyZSB5ZXQsIGFzIHRoaXMgaXMgc3RpbGwgYSBjb21wb3NpdGUgY2xvY2ssCisgKiBub3QganVzdCBhIERQTEwKKyAqLwogc3RhdGljIHN0cnVjdCBjbGsgZHBsbF9jayA9IHsKIAkubmFtZQkJPSAiZHBsbF9jayIsCiAJLnBhcmVudAkJPSAmc3lzX2NrLAkJLyogQ2FuIGJlIGZ1bmNfMzJrIGFsc28gKi8KIAkuZHBsbF9kYXRhCT0gJmRwbGxfZGQsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDJYIHwgQ0xPQ0tfSU5fT01BUDI0M1ggfAogCQkJCVJBVEVfUFJPUEFHQVRFUyB8IEFMV0FZU19FTkFCTEVELAotCS5yZWNhbGMJCT0gJm9tYXAyX2RwbGxfcmVjYWxjLAotCS5zZXRfcmF0ZQk9ICZvbWFwMl9yZXByb2dyYW1fZHBsbCwKKwkucmVjYWxjCQk9ICZvbWFwMl9kcGxsY29yZV9yZWNhbGMsCisJLnNldF9yYXRlCT0gJm9tYXAyX3JlcHJvZ3JhbV9kcGxsY29yZSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGFwbGw5Nl9jayA9IHsKQEAgLTE3NDcsNyArMTc1NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDFfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDFfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMSwKIAkucGFyZW50CQk9ICZsNF9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0MlggfCBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMSksCkBAIC0xNzU2LDcgKzE3NjQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AxX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AxX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDEsCiAJLnBhcmVudAkJPSAmZnVuY185Nm1fY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDJYIHwgQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0ZDTEtFTjEpLApAQCAtMTc2NSw3ICsxNzc0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMl9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMl9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAyLAogCS5wYXJlbnQJCT0gJmw0X2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQyWCB8IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKQEAgLTE3NzQsNyArMTc4NCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDJfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMiwKIAkucGFyZW50CQk9ICZmdW5jXzk2bV9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0MlggfCBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCkBAIC0xNzgzLDcgKzE3OTQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AzX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AzX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDMsCiAJLnBhcmVudAkJPSAmbDRfY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4yKSwKQEAgLTE3OTIsNyArMTgwNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDNfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDNfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMywKIAkucGFyZW50CQk9ICZmdW5jXzk2bV9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIE9NQVAyNFhYX0NNX0ZDTEtFTjIpLApAQCAtMTgwMSw3ICsxODE0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNF9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNF9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSA0LAogCS5wYXJlbnQJCT0gJmw0X2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fSUNMS0VOMiksCkBAIC0xODEwLDcgKzE4MjQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A0X2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3A0X2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDQsCiAJLnBhcmVudAkJPSAmZnVuY185Nm1fY2ssCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAyNDNYLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBPTUFQMjRYWF9DTV9GQ0xLRU4yKSwKQEAgLTE4MTksNyArMTgzNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDVfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDVfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gNSwKIAkucGFyZW50CQk9ICZsNF9jaywKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDI0M1gsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjIpLApAQCAtMTgyOCw3ICsxODQ0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNV9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNV9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSA1LAogCS5wYXJlbnQJCT0gJmZ1bmNfOTZtX2NrLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMjQzWCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgT01BUDI0WFhfQ01fRkNMS0VOMiksCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguYwppbmRleCBiNDJiZGQ2Li40MjYzMDk5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmMKQEAgLTEsMTAgKzEsMTEgQEAKIC8qCiAgKiBPTUFQMy1zcGVjaWZpYyBjbG9jayBmcmFtZXdvcmsgZnVuY3Rpb25zCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgTm9raWEgQ29ycG9yYXRpb24KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRleGFzIEluc3RydW1lbnRzLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbgogICoKICAqIFdyaXR0ZW4gYnkgUGF1bCBXYWxtc2xleQorICogVGVzdGluZyBhbmQgaW50ZWdyYXRpb24gZml4ZXMgYnkgSm91bmkgSMO2Z2FuZGVyCiAgKgogICogUGFydHMgb2YgdGhpcyBjb2RlIGFyZSBiYXNlZCBvbiBjb2RlIHdyaXR0ZW4gYnkKICAqIFJpY2hhcmQgV29vZHJ1ZmYsIFRvbnkgTGluZGdyZW4sIFR1dWtrYSBUaWtrYW5lbiwgS2FydGhpayBEYXN1CkBAIC0yMyw2ICsyNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L2xpbWl0cy5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KICNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CkBAIC0zNyw4ICszOSwxMSBAQAogI2luY2x1ZGUgImNtLmgiCiAjaW5jbHVkZSAiY20tcmVnYml0cy0zNHh4LmgiCiAKLS8qIENNX0NMS0VOX1BMTCouRU4qIGJpdCB2YWx1ZXMgKi8KLSNkZWZpbmUgRFBMTF9MT0NLRUQJCTB4NworLyogQ01fQVVUT0lETEVfUExMKi5BVVRPXyogYml0IHZhbHVlcyAqLworI2RlZmluZSBEUExMX0FVVE9JRExFX0RJU0FCTEUJCQkweDAKKyNkZWZpbmUgRFBMTF9BVVRPSURMRV9MT1dfUE9XRVJfU1RPUAkJMHgxCisKKyNkZWZpbmUgTUFYX0RQTExfV0FJVF9UUklFUwkJMTAwMDAwMAogCiAvKioKICAqIG9tYXAzX2RwbGxfcmVjYWxjIC0gcmVjYWxjdWxhdGUgRFBMTCByYXRlCkBAIC01Myw2ICs1OCwyOTAgQEAKIAlwcm9wYWdhdGVfcmF0ZShjbGspOwogfQogCisvKiBfb21hcDNfZHBsbF93cml0ZV9jbGtlbiAtIHdyaXRlIGNsa2VuX2JpdHMgYXJnIHRvIGEgRFBMTCdzIGVuYWJsZSBiaXRzICovCitzdGF0aWMgdm9pZCBfb21hcDNfZHBsbF93cml0ZV9jbGtlbihzdHJ1Y3QgY2xrICpjbGssIHU4IGNsa2VuX2JpdHMpCit7CisJY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisKKwlkZCA9IGNsay0+ZHBsbF9kYXRhOworCisJY21fcm13X3JlZ19iaXRzKGRkLT5lbmFibGVfbWFzaywgY2xrZW5fYml0cyA8PCBfX2ZmcyhkZC0+ZW5hYmxlX21hc2spLAorCQkJZGQtPmNvbnRyb2xfcmVnKTsKK30KKworLyogX29tYXAzX3dhaXRfZHBsbF9zdGF0dXM6IHdhaXQgZm9yIGEgRFBMTCB0byBlbnRlciBhIHNwZWNpZmljIHN0YXRlICovCitzdGF0aWMgaW50IF9vbWFwM193YWl0X2RwbGxfc3RhdHVzKHN0cnVjdCBjbGsgKmNsaywgdTggc3RhdGUpCit7CisJY29uc3Qgc3RydWN0IGRwbGxfZGF0YSAqZGQ7CisJaW50IGkgPSAwOworCWludCByZXQgPSAtRUlOVkFMOworCXUzMiBpZGxlc3RfbWFzazsKKworCWRkID0gY2xrLT5kcGxsX2RhdGE7CisKKwlzdGF0ZSA8PD0gZGQtPmlkbGVzdF9iaXQ7CisJaWRsZXN0X21hc2sgPSAxIDw8IGRkLT5pZGxlc3RfYml0OworCisJd2hpbGUgKCgoY21fcmVhZF9yZWcoZGQtPmlkbGVzdF9yZWcpICYgaWRsZXN0X21hc2spICE9IHN0YXRlKSAmJgorCSAgICAgICBpIDwgTUFYX0RQTExfV0FJVF9UUklFUykgeworCQlpKys7CisJCXVkZWxheSgxKTsKKwl9CisKKwlpZiAoaSA9PSBNQVhfRFBMTF9XQUlUX1RSSUVTKSB7CisJCXByaW50ayhLRVJOX0VSUiAiY2xvY2s6ICVzIGZhaWxlZCB0cmFuc2l0aW9uIHRvICclcydcbiIsCisJCSAgICAgICBjbGstPm5hbWUsIChzdGF0ZSkgPyAibG9ja2VkIiA6ICJieXBhc3NlZCIpOworCX0gZWxzZSB7CisJCXByX2RlYnVnKCJjbG9jazogJXMgdHJhbnNpdGlvbiB0byAnJXMnIGluICVkIGxvb3BzXG4iLAorCQkJIGNsay0+bmFtZSwgKHN0YXRlKSA/ICJsb2NrZWQiIDogImJ5cGFzc2VkIiwgaSk7CisKKwkJcmV0ID0gMDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisvKiBOb24tQ09SRSBEUExMIChlLmcuLCBEUExMcyB0aGF0IGRvIG5vdCBjb250cm9sIFNEUkMpIGNsb2NrIGZ1bmN0aW9ucyAqLworCisvKgorICogX29tYXAzX25vbmNvcmVfZHBsbF9sb2NrIC0gaW5zdHJ1Y3QgYSBEUExMIHRvIGxvY2sgYW5kIHdhaXQgZm9yIHJlYWRpbmVzcworICogQGNsazogcG9pbnRlciB0byBhIERQTEwgc3RydWN0IGNsaworICoKKyAqIEluc3RydWN0cyBhIG5vbi1DT1JFIERQTEwgdG8gbG9jay4gIFdhaXRzIGZvciB0aGUgRFBMTCB0byByZXBvcnQKKyAqIHJlYWRpbmVzcyBiZWZvcmUgcmV0dXJuaW5nLiAgV2lsbCBzYXZlIGFuZCByZXN0b3JlIHRoZSBEUExMJ3MKKyAqIGF1dG9pZGxlIHN0YXRlIGFjcm9zcyB0aGUgZW5hYmxlLCBwZXIgdGhlIENEUCBjb2RlLiAgSWYgdGhlIERQTEwKKyAqIGxvY2tlZCBzdWNjZXNzZnVsbHksIHJldHVybiAwOyBpZiB0aGUgRFBMTCBkaWQgbm90IGxvY2sgaW4gdGhlIHRpbWUKKyAqIGFsbG90dGVkLCBvciBEUExMMyB3YXMgcGFzc2VkIGluLCByZXR1cm4gLUVJTlZBTC4KKyAqLworc3RhdGljIGludCBfb21hcDNfbm9uY29yZV9kcGxsX2xvY2soc3RydWN0IGNsayAqY2xrKQoreworCXU4IGFpOworCWludCByOworCisJaWYgKGNsayA9PSAmZHBsbDNfY2spCisJCXJldHVybiAtRUlOVkFMOworCisJcHJfZGVidWcoImNsb2NrOiBsb2NraW5nIERQTEwgJXNcbiIsIGNsay0+bmFtZSk7CisKKwlhaSA9IG9tYXAzX2RwbGxfYXV0b2lkbGVfcmVhZChjbGspOworCisJX29tYXAzX2RwbGxfd3JpdGVfY2xrZW4oY2xrLCBEUExMX0xPQ0tFRCk7CisKKwlpZiAoYWkpIHsKKwkJLyoKKwkJICogSWYgbm8gZG93bnN0cmVhbSBjbG9ja3MgYXJlIGVuYWJsZWQsIENNX0lETEVTVCBiaXQKKwkJICogbWF5IG5ldmVyIGJlY29tZSBhY3RpdmUsIHNvIGRvbid0IHdhaXQgZm9yIERQTEwgdG8gbG9jay4KKwkJICovCisJCXIgPSAwOworCQlvbWFwM19kcGxsX2FsbG93X2lkbGUoY2xrKTsKKwl9IGVsc2UgeworCQlyID0gX29tYXAzX3dhaXRfZHBsbF9zdGF0dXMoY2xrLCAxKTsKKwkJb21hcDNfZHBsbF9kZW55X2lkbGUoY2xrKTsKKwl9OworCisJcmV0dXJuIHI7Cit9CisKKy8qCisgKiBvbWFwM19ub25jb3JlX2RwbGxfYnlwYXNzIC0gaW5zdHJ1Y3QgYSBEUExMIHRvIGJ5cGFzcyBhbmQgd2FpdCBmb3IgcmVhZGluZXNzCisgKiBAY2xrOiBwb2ludGVyIHRvIGEgRFBMTCBzdHJ1Y3QgY2xrCisgKgorICogSW5zdHJ1Y3RzIGEgbm9uLUNPUkUgRFBMTCB0byBlbnRlciBsb3ctcG93ZXIgYnlwYXNzIG1vZGUuICBJbgorICogYnlwYXNzIG1vZGUsIHRoZSBEUExMJ3MgcmF0ZSBpcyBzZXQgZXF1YWwgdG8gaXRzIHBhcmVudCBjbG9jaydzCisgKiByYXRlLiAgV2FpdHMgZm9yIHRoZSBEUExMIHRvIHJlcG9ydCByZWFkaW5lc3MgYmVmb3JlIHJldHVybmluZy4KKyAqIFdpbGwgc2F2ZSBhbmQgcmVzdG9yZSB0aGUgRFBMTCdzIGF1dG9pZGxlIHN0YXRlIGFjcm9zcyB0aGUgZW5hYmxlLAorICogcGVyIHRoZSBDRFAgY29kZS4gIElmIHRoZSBEUExMIGVudGVyZWQgYnlwYXNzIG1vZGUgc3VjY2Vzc2Z1bGx5LAorICogcmV0dXJuIDA7IGlmIHRoZSBEUExMIGRpZCBub3QgZW50ZXIgYnlwYXNzIGluIHRoZSB0aW1lIGFsbG90dGVkLCBvcgorICogRFBMTDMgd2FzIHBhc3NlZCBpbiwgb3IgdGhlIERQTEwgZG9lcyBub3Qgc3VwcG9ydCBsb3ctcG93ZXIgYnlwYXNzLAorICogcmV0dXJuIC1FSU5WQUwuCisgKi8KK3N0YXRpYyBpbnQgX29tYXAzX25vbmNvcmVfZHBsbF9ieXBhc3Moc3RydWN0IGNsayAqY2xrKQoreworCWludCByOworCXU4IGFpOworCisJaWYgKGNsayA9PSAmZHBsbDNfY2spCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCEoY2xrLT5kcGxsX2RhdGEtPm1vZGVzICYgKDEgPDwgRFBMTF9MT1dfUE9XRVJfQllQQVNTKSkpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJfZGVidWcoImNsb2NrOiBjb25maWd1cmluZyBEUExMICVzIGZvciBsb3ctcG93ZXIgYnlwYXNzXG4iLAorCQkgY2xrLT5uYW1lKTsKKworCWFpID0gb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKGNsayk7CisKKwlfb21hcDNfZHBsbF93cml0ZV9jbGtlbihjbGssIERQTExfTE9XX1BPV0VSX0JZUEFTUyk7CisKKwlyID0gX29tYXAzX3dhaXRfZHBsbF9zdGF0dXMoY2xrLCAwKTsKKworCWlmIChhaSkKKwkJb21hcDNfZHBsbF9hbGxvd19pZGxlKGNsayk7CisJZWxzZQorCQlvbWFwM19kcGxsX2RlbnlfaWRsZShjbGspOworCisJcmV0dXJuIHI7Cit9CisKKy8qCisgKiBfb21hcDNfbm9uY29yZV9kcGxsX3N0b3AgLSBpbnN0cnVjdCBhIERQTEwgdG8gc3RvcAorICogQGNsazogcG9pbnRlciB0byBhIERQTEwgc3RydWN0IGNsaworICoKKyAqIEluc3RydWN0cyBhIG5vbi1DT1JFIERQTEwgdG8gZW50ZXIgbG93LXBvd2VyIHN0b3AuIFdpbGwgc2F2ZSBhbmQKKyAqIHJlc3RvcmUgdGhlIERQTEwncyBhdXRvaWRsZSBzdGF0ZSBhY3Jvc3MgdGhlIHN0b3AsIHBlciB0aGUgQ0RQCisgKiBjb2RlLiAgSWYgRFBMTDMgd2FzIHBhc3NlZCBpbiwgb3IgdGhlIERQTEwgZG9lcyBub3Qgc3VwcG9ydAorICogbG93LXBvd2VyIHN0b3AsIHJldHVybiAtRUlOVkFMOyBvdGhlcndpc2UsIHJldHVybiAwLgorICovCitzdGF0aWMgaW50IF9vbWFwM19ub25jb3JlX2RwbGxfc3RvcChzdHJ1Y3QgY2xrICpjbGspCit7CisJdTggYWk7CisKKwlpZiAoY2xrID09ICZkcGxsM19jaykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIShjbGstPmRwbGxfZGF0YS0+bW9kZXMgJiAoMSA8PCBEUExMX0xPV19QT1dFUl9TVE9QKSkpCisJCXJldHVybiAtRUlOVkFMOworCisJcHJfZGVidWcoImNsb2NrOiBzdG9wcGluZyBEUExMICVzXG4iLCBjbGstPm5hbWUpOworCisJYWkgPSBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQoY2xrKTsKKworCV9vbWFwM19kcGxsX3dyaXRlX2Nsa2VuKGNsaywgRFBMTF9MT1dfUE9XRVJfU1RPUCk7CisKKwlpZiAoYWkpCisJCW9tYXAzX2RwbGxfYWxsb3dfaWRsZShjbGspOworCWVsc2UKKwkJb21hcDNfZHBsbF9kZW55X2lkbGUoY2xrKTsKKworCXJldHVybiAwOworfQorCisvKioKKyAqIG9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUgLSBpbnN0cnVjdCBhIERQTEwgdG8gZW50ZXIgYnlwYXNzIG9yIGxvY2sgbW9kZQorICogQGNsazogcG9pbnRlciB0byBhIERQTEwgc3RydWN0IGNsaworICoKKyAqIEluc3RydWN0cyBhIG5vbi1DT1JFIERQTEwgdG8gZW5hYmxlLCBlLmcuLCB0byBlbnRlciBieXBhc3Mgb3IgbG9jay4KKyAqIFRoZSBjaG9pY2Ugb2YgbW9kZXMgZGVwZW5kcyBvbiB0aGUgRFBMTCdzIHByb2dyYW1tZWQgcmF0ZTogaWYgaXQgaXMKKyAqIHRoZSBzYW1lIGFzIHRoZSBEUExMJ3MgcGFyZW50IGNsb2NrLCBpdCB3aWxsIGVudGVyIGJ5cGFzczsKKyAqIG90aGVyd2lzZSwgaXQgd2lsbCBlbnRlciBsb2NrLiAgVGhpcyBjb2RlIHdpbGwgd2FpdCBmb3IgdGhlIERQTEwgdG8KKyAqIGluZGljYXRlIHJlYWRpbmVzcyBiZWZvcmUgcmV0dXJuaW5nLCB1bmxlc3MgdGhlIERQTEwgdGFrZXMgdG9vIGxvbmcKKyAqIHRvIGVudGVyIHRoZSB0YXJnZXQgc3RhdGUuICBJbnRlbmRlZCB0byBiZSB1c2VkIGFzIHRoZSBzdHJ1Y3QgY2xrJ3MKKyAqIGVuYWJsZSBmdW5jdGlvbi4gIElmIERQTEwzIHdhcyBwYXNzZWQgaW4sIG9yIHRoZSBEUExMIGRvZXMgbm90CisgKiBzdXBwb3J0IGxvdy1wb3dlciBzdG9wLCBvciBpZiB0aGUgRFBMTCB0b29rIHRvbyBsb25nIHRvIGVudGVyCisgKiBieXBhc3Mgb3IgbG9jaywgcmV0dXJuIC1FSU5WQUw7IG90aGVyd2lzZSwgcmV0dXJuIDAuCisgKi8KK3N0YXRpYyBpbnQgb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaW50IHI7CisKKwlpZiAoY2xrID09ICZkcGxsM19jaykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoY2xrLT5wYXJlbnQtPnJhdGUgPT0gY2xrX2dldF9yYXRlKGNsaykpCisJCXIgPSBfb21hcDNfbm9uY29yZV9kcGxsX2J5cGFzcyhjbGspOworCWVsc2UKKwkJciA9IF9vbWFwM19ub25jb3JlX2RwbGxfbG9jayhjbGspOworCisJcmV0dXJuIHI7Cit9CisKKy8qKgorICogb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSAtIGluc3RydWN0IGEgRFBMTCB0byBlbnRlciBieXBhc3Mgb3IgbG9jayBtb2RlCisgKiBAY2xrOiBwb2ludGVyIHRvIGEgRFBMTCBzdHJ1Y3QgY2xrCisgKgorICogSW5zdHJ1Y3RzIGEgbm9uLUNPUkUgRFBMTCB0byBlbmFibGUsIGUuZy4sIHRvIGVudGVyIGJ5cGFzcyBvciBsb2NrLgorICogVGhlIGNob2ljZSBvZiBtb2RlcyBkZXBlbmRzIG9uIHRoZSBEUExMJ3MgcHJvZ3JhbW1lZCByYXRlOiBpZiBpdCBpcworICogdGhlIHNhbWUgYXMgdGhlIERQTEwncyBwYXJlbnQgY2xvY2ssIGl0IHdpbGwgZW50ZXIgYnlwYXNzOworICogb3RoZXJ3aXNlLCBpdCB3aWxsIGVudGVyIGxvY2suICBUaGlzIGNvZGUgd2lsbCB3YWl0IGZvciB0aGUgRFBMTCB0bworICogaW5kaWNhdGUgcmVhZGluZXNzIGJlZm9yZSByZXR1cm5pbmcsIHVubGVzcyB0aGUgRFBMTCB0YWtlcyB0b28gbG9uZworICogdG8gZW50ZXIgdGhlIHRhcmdldCBzdGF0ZS4gIEludGVuZGVkIHRvIGJlIHVzZWQgYXMgdGhlIHN0cnVjdCBjbGsncworICogZW5hYmxlIGZ1bmN0aW9uLiAgSWYgRFBMTDMgd2FzIHBhc3NlZCBpbiwgb3IgdGhlIERQTEwgZG9lcyBub3QKKyAqIHN1cHBvcnQgbG93LXBvd2VyIHN0b3AsIG9yIGlmIHRoZSBEUExMIHRvb2sgdG9vIGxvbmcgdG8gZW50ZXIKKyAqIGJ5cGFzcyBvciBsb2NrLCByZXR1cm4gLUVJTlZBTDsgb3RoZXJ3aXNlLCByZXR1cm4gMC4KKyAqLworc3RhdGljIHZvaWQgb21hcDNfbm9uY29yZV9kcGxsX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gJmRwbGwzX2NrKQorCQlyZXR1cm47CisKKwlfb21hcDNfbm9uY29yZV9kcGxsX3N0b3AoY2xrKTsKK30KKworLyoqCisgKiBvbWFwM19kcGxsX2F1dG9pZGxlX3JlYWQgLSByZWFkIGEgRFBMTCdzIGF1dG9pZGxlIGJpdHMKKyAqIEBjbGs6IHN0cnVjdCBjbGsgKiBvZiB0aGUgRFBMTCB0byByZWFkCisgKgorICogUmV0dXJuIHRoZSBEUExMJ3MgYXV0b2lkbGUgYml0cywgc2hpZnRlZCBkb3duIHRvIGJpdCAwLiAgUmV0dXJucworICogLUVJTlZBTCBpZiBwYXNzZWQgYSBudWxsIHBvaW50ZXIgb3IgaWYgdGhlIHN0cnVjdCBjbGsgZG9lcyBub3QKKyAqIGFwcGVhciB0byByZWZlciB0byBhIERQTEwuCisgKi8KK3N0YXRpYyB1MzIgb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKHN0cnVjdCBjbGsgKmNsaykKK3sKKwljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKwl1MzIgdjsKKworCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkZCA9IGNsay0+ZHBsbF9kYXRhOworCisJdiA9IGNtX3JlYWRfcmVnKGRkLT5hdXRvaWRsZV9yZWcpOworCXYgJj0gZGQtPmF1dG9pZGxlX21hc2s7CisJdiA+Pj0gX19mZnMoZGQtPmF1dG9pZGxlX21hc2spOworCisJcmV0dXJuIHY7Cit9CisKKy8qKgorICogb21hcDNfZHBsbF9hbGxvd19pZGxlIC0gZW5hYmxlIERQTEwgYXV0b2lkbGUgYml0cworICogQGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIG9wZXJhdGUgb24KKyAqCisgKiBFbmFibGUgRFBMTCBhdXRvbWF0aWMgaWRsZSBjb250cm9sLiAgVGhpcyBhdXRvbWF0aWMgaWRsZSBtb2RlCisgKiBzd2l0Y2hpbmcgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiB0aGUgRFBMTCBpcyBsb2NrZWQsIGF0IGxlYXN0IG9uCisgKiBPTUFQMzQzMC4gIFRoZSBEUExMIHdpbGwgZW50ZXIgbG93LXBvd2VyIHN0b3Agd2hlbiBpdHMgZG93bnN0cmVhbQorICogY2xvY2tzIGFyZSBnYXRlZC4gIE5vIHJldHVybiB2YWx1ZS4KKyAqLworc3RhdGljIHZvaWQgb21hcDNfZHBsbF9hbGxvd19pZGxlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwljb25zdCBzdHJ1Y3QgZHBsbF9kYXRhICpkZDsKKworCWlmICghY2xrIHx8ICFjbGstPmRwbGxfZGF0YSkKKwkJcmV0dXJuOworCisJZGQgPSBjbGstPmRwbGxfZGF0YTsKKworCS8qCisJICogUkVWSVNJVDogQ09SRSBEUExMIGNhbiBvcHRpb25hbGx5IGVudGVyIGxvdy1wb3dlciBieXBhc3MKKwkgKiBieSB3cml0aW5nIDB4NSBpbnN0ZWFkIG9mIDB4MS4gIEFkZCBzb21lIG1lY2hhbmlzbSB0bworCSAqIG9wdGlvbmFsbHkgZW50ZXIgdGhpcyBtb2RlLgorCSAqLworCWNtX3Jtd19yZWdfYml0cyhkZC0+YXV0b2lkbGVfbWFzaywKKwkJCURQTExfQVVUT0lETEVfTE9XX1BPV0VSX1NUT1AgPDwgX19mZnMoZGQtPmF1dG9pZGxlX21hc2spLAorCQkJZGQtPmF1dG9pZGxlX3JlZyk7Cit9CisKKy8qKgorICogb21hcDNfZHBsbF9kZW55X2lkbGUgLSBwcmV2ZW50IERQTEwgZnJvbSBhdXRvbWF0aWNhbGx5IGlkbGluZworICogQGNsazogc3RydWN0IGNsayAqIG9mIHRoZSBEUExMIHRvIG9wZXJhdGUgb24KKyAqCisgKiBEaXNhYmxlIERQTEwgYXV0b21hdGljIGlkbGUgY29udHJvbC4gIE5vIHJldHVybiB2YWx1ZS4KKyAqLworc3RhdGljIHZvaWQgb21hcDNfZHBsbF9kZW55X2lkbGUoc3RydWN0IGNsayAqY2xrKQoreworCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgKmRkOworCisJaWYgKCFjbGsgfHwgIWNsay0+ZHBsbF9kYXRhKQorCQlyZXR1cm47CisKKwlkZCA9IGNsay0+ZHBsbF9kYXRhOworCisJY21fcm13X3JlZ19iaXRzKGRkLT5hdXRvaWRsZV9tYXNrLAorCQkJRFBMTF9BVVRPSURMRV9ESVNBQkxFIDw8IF9fZmZzKGRkLT5hdXRvaWRsZV9tYXNrKSwKKwkJCWRkLT5hdXRvaWRsZV9yZWcpOworfQorCisvKiBDbG9jayBjb250cm9sIGZvciBEUExMIG91dHB1dHMgKi8KKwogLyoqCiAgKiBvbWFwM19jbGtvdXR4Ml9yZWNhbGMgLSByZWNhbGN1bGF0ZSBEUExMIFgyIG91dHB1dCB2aXJ0dWFsIGNsb2NrIHJhdGUKICAqIEBjbGs6IERQTEwgb3V0cHV0IHN0cnVjdCBjbGsKQEAgLTg5LDYgKzM3OCw4IEBACiAJCXByb3BhZ2F0ZV9yYXRlKGNsayk7CiB9CiAKKy8qIENvbW1vbiBjbG9jayBjb2RlICovCisKIC8qCiAgKiBBcyBpdCBpcyBzdHJ1Y3R1cmVkIG5vdywgdGhpcyB3aWxsIHByZXZlbnQgYW4gT01BUDIvMyBtdWx0aWJvb3QKICAqIGtlcm5lbCBmcm9tIGNvbXBpbGluZy4gIFRoaXMgd2lsbCBuZWVkIGZ1cnRoZXIgYXR0ZW50aW9uLgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvY2xvY2szNHh4LmgKaW5kZXggYzljNTk3Mi4uMDU3NTdlYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbG9jazM0eHguaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2Nsb2NrMzR4eC5oCkBAIC0xLDE0ICsxLDE5IEBACiAvKgogICogT01BUDMgY2xvY2sgZnJhbWV3b3JrCiAgKgotICogVmlydHVhbCBjbG9ja3MgYXJlIGludHJvZHVjZWQgYXMgYSBjb252ZW5pZW50IHRvb2xzLgotICogVGhleSBhcmUgc291cmNlcyBmb3Igb3RoZXIgY2xvY2tzIGFuZCBub3Qgc3VwcG9zZWQKLSAqIHRvIGJlIHJlcXVlc3RlZCBmcm9tIGRyaXZlcnMgZGlyZWN0bHkuCi0gKgogICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggVGV4YXMgSW5zdHJ1bWVudHMsIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKgogICogV3JpdHRlbiBieSBQYXVsIFdhbG1zbGV5CisgKiBXaXRoIG1hbnkgZGV2aWNlIGNsb2NrIGZpeGVzIGJ5IEtldmluIEhpbG1hbiBhbmQgSm91bmkgSMO2Z2FuZGVyCisgKiBEUExMIGJ5cGFzcyBjbG9jayBzdXBwb3J0IGFkZGVkIGJ5IFJvbWFuIFRlcmVzaG9ua292CisgKgorICovCisKKy8qCisgKiBWaXJ0dWFsIGNsb2NrcyBhcmUgaW50cm9kdWNlZCBhcyBjb252ZW5pZW50IHRvb2xzLgorICogVGhleSBhcmUgc291cmNlcyBmb3Igb3RoZXIgY2xvY2tzIGFuZCBub3Qgc3VwcG9zZWQKKyAqIHRvIGJlIHJlcXVlc3RlZCBmcm9tIGRyaXZlcnMgZGlyZWN0bHkuCiAgKi8KIAogI2lmbmRlZiBfX0FSQ0hfQVJNX01BQ0hfT01BUDJfQ0xPQ0szNFhYX0gKQEAgLTI0LDYgKzI5LDE1IEBACiAKIHN0YXRpYyB2b2lkIG9tYXAzX2RwbGxfcmVjYWxjKHN0cnVjdCBjbGsgKmNsayk7CiBzdGF0aWMgdm9pZCBvbWFwM19jbGtvdXR4Ml9yZWNhbGMoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyB2b2lkIG9tYXAzX2RwbGxfYWxsb3dfaWRsZShzdHJ1Y3QgY2xrICpjbGspOworc3RhdGljIHZvaWQgb21hcDNfZHBsbF9kZW55X2lkbGUoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyB1MzIgb21hcDNfZHBsbF9hdXRvaWRsZV9yZWFkKHN0cnVjdCBjbGsgKmNsayk7CitzdGF0aWMgaW50IG9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUoc3RydWN0IGNsayAqY2xrKTsKK3N0YXRpYyB2b2lkIG9tYXAzX25vbmNvcmVfZHBsbF9kaXNhYmxlKHN0cnVjdCBjbGsgKmNsayk7CisKKy8qIE1heGltdW0gRFBMTCBtdWx0aXBsaWVyLCBkaXZpZGVyIHZhbHVlcyBmb3IgT01BUDMgKi8KKyNkZWZpbmUgT01BUDNfTUFYX0RQTExfTVVMVAkJMjA0OAorI2RlZmluZSBPTUFQM19NQVhfRFBMTF9ESVYJCTEyOAogCiAvKgogICogRFBMTDEgc3VwcGxpZXMgY2xvY2sgdG8gdGhlIE1QVS4KQEAgLTMzLDYgKzQ3LDExIEBACiAgKiBEUExMNSBzdXBwbGllcyBvdGhlciBwZXJpcGhlcmFsIGNsb2NrcyAoVVNCSE9TVCwgVVNJTSkuCiAgKi8KIAorLyogQ01fQ0xLRU5fUExMKi5FTiogYml0IHZhbHVlcyAtIG5vdCBhbGwgYXJlIGF2YWlsYWJsZSBmb3IgZXZlcnkgRFBMTCAqLworI2RlZmluZSBEUExMX0xPV19QT1dFUl9TVE9QCQkweDEKKyNkZWZpbmUgRFBMTF9MT1dfUE9XRVJfQllQQVNTCQkweDUKKyNkZWZpbmUgRFBMTF9MT0NLRUQJCQkweDcKKwogLyogUFJNIENMT0NLUyAqLwogCiAvKiBBY2NvcmRpbmcgdG8gdGltZXIzMmsuYywgdGhpcyBpcyBhIDMyNzY4SHogY2xvY2ssIG5vdCBhIDMyMDAwSHogY2xvY2suICovCkBAIC0yNDAsMTUgKzI1OSwyMyBAQAogLyogRFBMTDEgKi8KIC8qIE1QVSBjbG9jayBzb3VyY2UgKi8KIC8qIFR5cGU6IERQTEwgKi8KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwxX2RkID0geworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDFfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoTVBVX01PRCwgT01BUDM0MzBfQ01fQ0xLU0VMMV9QTEwpLAogCS5tdWx0X21hc2sJPSBPTUFQMzQzMF9NUFVfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawk9IE9NQVAzNDMwX01QVV9EUExMX0RJVl9NQVNLLAogCS5jb250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9DTEtFTl9QTEwpLAogCS5lbmFibGVfbWFzawk9IE9NQVAzNDMwX0VOX01QVV9EUExMX01BU0ssCisJLm1vZGVzCQk9ICgxIDw8IERQTExfTE9XX1BPV0VSX0JZUEFTUykgfCAoMSA8PCBEUExMX0xPQ0tFRCksCiAJLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBfRU5fTVBVX0RQTExfRFJJRlRHVUFSRF9TSElGVCwKIAkucmVjYWxfZW5fYml0CT0gT01BUDM0MzBfTVBVX0RQTExfUkVDQUxfRU5fU0hJRlQsCiAJLnJlY2FsX3N0X2JpdAk9IE9NQVAzNDMwX01QVV9EUExMX1NUX1NISUZULAorCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoTVBVX01PRCwgT01BUDM0MzBfQ01fQVVUT0lETEVfUExMKSwKKwkuYXV0b2lkbGVfbWFzawk9IE9NQVAzNDMwX0FVVE9fTVBVX0RQTExfTUFTSywKKwkuaWRsZXN0X3JlZwk9IE9NQVBfQ01fUkVHQUREUihNUFVfTU9ELCBPTUFQMzQzMF9DTV9JRExFU1RfUExMKSwKKwkuaWRsZXN0X2JpdAk9IE9NQVAzNDMwX1NUX01QVV9DTEtfU0hJRlQsCisJLm1heF9tdWx0aXBsaWVyID0gT01BUDNfTUFYX0RQTExfTVVMVCwKKwkubWF4X2RpdmlkZXIJPSBPTUFQM19NQVhfRFBMTF9ESVYsCisJLnJhdGVfdG9sZXJhbmNlID0gREVGQVVMVF9EUExMX1JBVEVfVE9MRVJBTkNFCiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBkcGxsMV9jayA9IHsKQEAgLTI1Niw2ICsyODMsNyBAQAogCS5wYXJlbnQJCT0gJnN5c19jaywKIAkuZHBsbF9kYXRhCT0gJmRwbGwxX2RkLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8IEFMV0FZU19FTkFCTEVELAorCS5yb3VuZF9yYXRlCT0gJm9tYXAyX2RwbGxfcm91bmRfcmF0ZSwKIAkucmVjYWxjCQk9ICZvbWFwM19kcGxsX3JlY2FsYywKIH07CiAKQEAgLTI5NywyMiArMzI1LDM0IEBACiAvKiBJVkEyIGNsb2NrIHNvdXJjZSAqLwogLyogVHlwZTogRFBMTCAqLwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsMl9kZCA9IHsKK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGwyX2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9DTEtTRUwxX1BMTCksCiAJLm11bHRfbWFzawk9IE9NQVAzNDMwX0lWQTJfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawk9IE9NQVAzNDMwX0lWQTJfRFBMTF9ESVZfTUFTSywKIAkuY29udHJvbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfSVZBMl9NT0QsIE9NQVAzNDMwX0NNX0NMS0VOX1BMTCksCiAJLmVuYWJsZV9tYXNrCT0gT01BUDM0MzBfRU5fSVZBMl9EUExMX01BU0ssCisJLm1vZGVzCQk9ICgxIDw8IERQTExfTE9XX1BPV0VSX1NUT1ApIHwgKDEgPDwgRFBMTF9MT0NLRUQpIHwKKwkJCQkoMSA8PCBEUExMX0xPV19QT1dFUl9CWVBBU1MpLAogCS5hdXRvX3JlY2FsX2JpdAk9IE9NQVAzNDMwX0VOX0lWQTJfRFBMTF9EUklGVEdVQVJEX1NISUZULAogCS5yZWNhbF9lbl9iaXQJPSBPTUFQMzQzMF9QUk1fSVJRRU5BQkxFX01QVV9JVkEyX0RQTExfUkVDQUxfRU5fU0hJRlQsCiAJLnJlY2FsX3N0X2JpdAk9IE9NQVAzNDMwX1BSTV9JUlFTVEFUVVNfTVBVX0lWQTJfRFBMTF9TVF9TSElGVCwKKwkuYXV0b2lkbGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX0lWQTJfTU9ELCBPTUFQMzQzMF9DTV9BVVRPSURMRV9QTEwpLAorCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVUT19JVkEyX0RQTExfTUFTSywKKwkuaWRsZXN0X3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9JVkEyX01PRCwgT01BUDM0MzBfQ01fSURMRVNUX1BMTCksCisJLmlkbGVzdF9iaXQJPSBPTUFQMzQzMF9TVF9JVkEyX0NMS19TSElGVCwKKwkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAorCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKKwkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGwyX2NrID0gewogCS5uYW1lCQk9ICJkcGxsMl9jayIsCiAJLnBhcmVudAkJPSAmc3lzX2NrLAogCS5kcGxsX2RhdGEJPSAmZHBsbDJfZGQsCi0JLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwgQUxXQVlTX0VOQUJMRUQsCisJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTLAorCS5lbmFibGUJCT0gJm9tYXAzX25vbmNvcmVfZHBsbF9lbmFibGUsCisJLmRpc2FibGUJPSAmb21hcDNfbm9uY29yZV9kcGxsX2Rpc2FibGUsCisJLnJvdW5kX3JhdGUJPSAmb21hcDJfZHBsbF9yb3VuZF9yYXRlLAogCS5yZWNhbGMJCT0gJm9tYXAzX2RwbGxfcmVjYWxjLAogfTsKIApAQCAtMzM4LDEwICszNzgsMTIgQEAKIAkucmVjYWxjCQk9ICZvbWFwMl9jbGtzZWxfcmVjYWxjLAogfTsKIAotLyogRFBMTDMgKi8KLS8qIFNvdXJjZSBjbG9jayBmb3IgYWxsIGludGVyZmFjZXMgYW5kIGZvciBzb21lIGRldmljZSBmY2xrcyAqLwotLyogVHlwZTogRFBMTCAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbDNfZGQgPSB7CisvKgorICogRFBMTDMKKyAqIFNvdXJjZSBjbG9jayBmb3IgYWxsIGludGVyZmFjZXMgYW5kIGZvciBzb21lIGRldmljZSBmY2xrcworICogUkVWSVNJVDogQWxzbyBzdXBwb3J0cyBmYXN0IHJlbG9jayBieXBhc3MgLSBub3QgaW5jbHVkZWQgYmVsb3cKKyAqLworc3RhdGljIHN0cnVjdCBkcGxsX2RhdGEgZHBsbDNfZGQgPSB7CiAJLm11bHRfZGl2MV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSksCiAJLm11bHRfbWFzawk9IE9NQVAzNDMwX0NPUkVfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawk9IE9NQVAzNDMwX0NPUkVfRFBMTF9ESVZfTUFTSywKQEAgLTM1MCw2ICszOTIsMTEgQEAKIAkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMF9FTl9DT1JFX0RQTExfRFJJRlRHVUFSRF9TSElGVCwKIAkucmVjYWxfZW5fYml0CT0gT01BUDM0MzBfQ09SRV9EUExMX1JFQ0FMX0VOX1NISUZULAogCS5yZWNhbF9zdF9iaXQJPSBPTUFQMzQzMF9DT1JFX0RQTExfU1RfU0hJRlQsCisJLmF1dG9pZGxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9BVVRPSURMRSksCisJLmF1dG9pZGxlX21hc2sJPSBPTUFQMzQzMF9BVVRPX0NPUkVfRFBMTF9NQVNLLAorCS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCisJLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAorCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDNfY2sgPSB7CkBAIC0zNTcsNiArNDA0LDcgQEAKIAkucGFyZW50CQk9ICZzeXNfY2ssCiAJLmRwbGxfZGF0YQk9ICZkcGxsM19kZCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfCBBTFdBWVNfRU5BQkxFRCwKKwkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxsX3JvdW5kX3JhdGUsCiAJLnJlY2FsYwkJPSAmb21hcDNfZHBsbF9yZWNhbGMsCiB9OwogCkBAIC00MzksNyArNDg3LDcgQEAKIAkubmFtZQkJPSAiY29yZV9jayIsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX0NPUkVfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBjb3JlX2NrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCVBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTQ1Niw3ICs1MDQsNyBAQAogCS5uYW1lCQk9ICJkcGxsM19tMngyX2NrIiwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGRwbGwzX20yeDJfY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtNTAzLDcgKzU1MSw3IEBACiAJLnBhcmVudAkJPSAmZHBsbDNfbTN4Ml9jaywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfQ09SRV9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGVtdV9jb3JlX2Fsd29uX2NrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCVBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTUxMywyMiArNTYxLDMzIEBACiAvKiBEUExMNCAqLwogLyogU3VwcGxpZXMgOTZNSHosIDU0TWh6IFRWIERBQywgRFNTIGZjbGssIENBTSBzZW5zb3IgY2xvY2ssIGVtdWwgdHJhY2UgY2xrICovCiAvKiBUeXBlOiBEUExMICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfZGF0YSBkcGxsNF9kZCA9IHsKK3N0YXRpYyBzdHJ1Y3QgZHBsbF9kYXRhIGRwbGw0X2RkID0gewogCS5tdWx0X2RpdjFfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpLAogCS5tdWx0X21hc2sJPSBPTUFQMzQzMF9QRVJJUEhfRFBMTF9NVUxUX01BU0ssCiAJLmRpdjFfbWFzawk9IE9NQVAzNDMwX1BFUklQSF9EUExMX0RJVl9NQVNLLAogCS5jb250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtFTiksCiAJLmVuYWJsZV9tYXNrCT0gT01BUDM0MzBfRU5fUEVSSVBIX0RQTExfTUFTSywKKwkubW9kZXMJCT0gKDEgPDwgRFBMTF9MT1dfUE9XRVJfU1RPUCkgfCAoMSA8PCBEUExMX0xPQ0tFRCksCiAJLmF1dG9fcmVjYWxfYml0CT0gT01BUDM0MzBfRU5fUEVSSVBIX0RQTExfRFJJRlRHVUFSRF9TSElGVCwKIAkucmVjYWxfZW5fYml0CT0gT01BUDM0MzBfUEVSSVBIX0RQTExfUkVDQUxfRU5fU0hJRlQsCiAJLnJlY2FsX3N0X2JpdAk9IE9NQVAzNDMwX1BFUklQSF9EUExMX1NUX1NISUZULAorCS5hdXRvaWRsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQVVUT0lETEUpLAorCS5hdXRvaWRsZV9tYXNrCT0gT01BUDM0MzBfQVVUT19QRVJJUEhfRFBMTF9NQVNLLAorCS5pZGxlc3RfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCisJLmlkbGVzdF9iaXQJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX1NISUZULAorCS5tYXhfbXVsdGlwbGllciA9IE9NQVAzX01BWF9EUExMX01VTFQsCisJLm1heF9kaXZpZGVyCT0gT01BUDNfTUFYX0RQTExfRElWLAorCS5yYXRlX3RvbGVyYW5jZSA9IERFRkFVTFRfRFBMTF9SQVRFX1RPTEVSQU5DRQogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgZHBsbDRfY2sgPSB7CiAJLm5hbWUJCT0gImRwbGw0X2NrIiwKIAkucGFyZW50CQk9ICZzeXNfY2ssCiAJLmRwbGxfZGF0YQk9ICZkcGxsNF9kZCwKLQkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfCBBTFdBWVNfRU5BQkxFRCwKKwkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMsCisJLmVuYWJsZQkJPSAmb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSwKKwkuZGlzYWJsZQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZGlzYWJsZSwKKwkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxsX3JvdW5kX3JhdGUsCiAJLnJlY2FsYwkJPSAmb21hcDNfZHBsbF9yZWNhbGMsCiB9OwogCkBAIC01ODQsNyArNjQzLDcgQEAKIAkucGFyZW50CQk9ICZkcGxsNF9tMngyX2NrLAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IG9tYXBfOTZtX2Fsd29uX2Zja19jbGtzZWwsCiAJLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDNYIHwgUkFURV9QUk9QQUdBVEVTIHwKIAkJCQkgUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtNjEwLDcgKzY2OSw3IEBACiAJLnBhcmVudAkJPSAmZHBsbDRfbTJ4Ml9jaywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBjbV85Nm1fZmNrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1ggfCBSQVRFX1BST1BBR0FURVMgfAogCQkJCVBBUkVOVF9DT05UUk9MU19DTE9DSywKQEAgLTY1Miw3ICs3MTEsNyBAQAogCS5wYXJlbnQJCT0gJmRwbGw0X20zeDJfY2ssCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuY2xrc2VsX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpLAotCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEssCisJLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMS19NQVNLLAogCS5jbGtzZWwJCT0gdmlydF9vbWFwXzU0bV9mY2tfY2xrc2VsLAogCS5mbGFncwkJPSBDTE9DS19JTl9PTUFQMzQzWCB8IFJBVEVfUFJPUEFHQVRFUyB8CiAJCQkJUEFSRU5UX0NPTlRST0xTX0NMT0NLLApAQCAtODA0LDIzICs4NjMsMzMgQEAKIC8qIFN1cHBsaWVzIDEyME1IeiBjbG9jaywgVVNJTSBzb3VyY2UgY2xvY2sgKi8KIC8qIFR5cGU6IERQTEwgKi8KIC8qIDM0MzBFUzIgb25seSAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2RhdGEgZHBsbDVfZGQgPSB7CitzdGF0aWMgc3RydWN0IGRwbGxfZGF0YSBkcGxsNV9kZCA9IHsKIAkubXVsdF9kaXYxX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBPTUFQMzQzMEVTMl9DTV9DTEtTRUw0KSwKIAkubXVsdF9tYXNrCT0gT01BUDM0MzBFUzJfUEVSSVBIMl9EUExMX01VTFRfTUFTSywKIAkuZGl2MV9tYXNrCT0gT01BUDM0MzBFUzJfUEVSSVBIMl9EUExMX0RJVl9NQVNLLAogCS5jb250cm9sX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBPTUFQMzQzMEVTMl9DTV9DTEtFTjIpLAogCS5lbmFibGVfbWFzawk9IE9NQVAzNDMwRVMyX0VOX1BFUklQSDJfRFBMTF9NQVNLLAorCS5tb2RlcwkJPSAoMSA8PCBEUExMX0xPV19QT1dFUl9TVE9QKSB8ICgxIDw8IERQTExfTE9DS0VEKSwKIAkuYXV0b19yZWNhbF9iaXQJPSBPTUFQMzQzMEVTMl9FTl9QRVJJUEgyX0RQTExfRFJJRlRHVUFSRF9TSElGVCwKIAkucmVjYWxfZW5fYml0CT0gT01BUDM0MzBFUzJfU05EX1BFUklQSF9EUExMX1JFQ0FMX0VOX1NISUZULAogCS5yZWNhbF9zdF9iaXQJPSBPTUFQMzQzMEVTMl9TTkRfUEVSSVBIX0RQTExfU1RfU0hJRlQsCisJLmF1dG9pZGxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihQTExfTU9ELCBPTUFQMzQzMEVTMl9DTV9BVVRPSURMRTJfUExMKSwKKwkuYXV0b2lkbGVfbWFzawk9IE9NQVAzNDMwRVMyX0FVVE9fUEVSSVBIMl9EUExMX01BU0ssCisJLmlkbGVzdF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUMiksCisJLmlkbGVzdF9iaXQJPSBPTUFQMzQzMEVTMl9TVF9QRVJJUEgyX0NMS19TSElGVCwKKwkubWF4X211bHRpcGxpZXIgPSBPTUFQM19NQVhfRFBMTF9NVUxULAorCS5tYXhfZGl2aWRlcgk9IE9NQVAzX01BWF9EUExMX0RJViwKKwkucmF0ZV90b2xlcmFuY2UgPSBERUZBVUxUX0RQTExfUkFURV9UT0xFUkFOQ0UKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIGRwbGw1X2NrID0gewogCS5uYW1lCQk9ICJkcGxsNV9jayIsCiAJLnBhcmVudAkJPSAmc3lzX2NrLAogCS5kcGxsX2RhdGEJPSAmZHBsbDVfZGQsCi0JLmZsYWdzCQk9IENMT0NLX0lOX09NQVAzNDMwRVMyIHwgUkFURV9QUk9QQUdBVEVTIHwKLQkJCQlBTFdBWVNfRU5BQkxFRCwKKwkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0MzBFUzIgfCBSQVRFX1BST1BBR0FURVMsCisJLmVuYWJsZQkJPSAmb21hcDNfbm9uY29yZV9kcGxsX2VuYWJsZSwKKwkuZGlzYWJsZQk9ICZvbWFwM19ub25jb3JlX2RwbGxfZGlzYWJsZSwKKwkucm91bmRfcmF0ZQk9ICZvbWFwMl9kcGxsX3JvdW5kX3JhdGUsCiAJLnJlY2FsYwkJPSAmb21hcDNfZHBsbF9yZWNhbGMsCiB9OwogCkBAIC0xMzY1LDcgKzE0MzQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A1X2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3A1X2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDUsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDVfU0hJRlQsCkBAIC0xMzc3LDcgKzE0NDcsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AxX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AxX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDEsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihDT1JFX01PRCwgQ01fRkNMS0VOMSksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDFfU0hJRlQsCkBAIC0xNzg5LDcgKzE4NjAsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3A1X2ljayA9IHsKLQkubmFtZQkJPSAibWNic3A1X2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDUsCiAJLnBhcmVudAkJPSAmY29yZV9sNF9pY2ssCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoQ09SRV9NT0QsIENNX0lDTEtFTjEpLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1A1X1NISUZULApAQCAtMTc5OCw3ICsxODcwLDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwMV9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwMV9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSAxLAogCS5wYXJlbnQJCT0gJmNvcmVfbDRfaWNrLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKENPUkVfTU9ELCBDTV9JQ0xLRU4xKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQMV9TSElGVCwKQEAgLTE5MzUsNyArMjAwOCw3IEBACiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfRFNTX01PRCwgQ01fRkNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0RTUzFfU0hJRlQsCiAJLmNsa3NlbF9yZWcJPSBPTUFQX0NNX1JFR0FERFIoUExMX01PRCwgQ01fSURMRVNUKSwKLQkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLLAorCS5jbGtzZWxfbWFzawk9IE9NQVAzNDMwX1NUX1BFUklQSF9DTEtfTUFTSywKIAkuY2xrc2VsCQk9IGRzczFfYWx3b25fZmNrX2Nsa3NlbCwKIAkuZmxhZ3MJCT0gQ0xPQ0tfSU5fT01BUDM0M1gsCiAJLnJlY2FsYwkJPSAmb21hcDJfY2xrc2VsX3JlY2FsYywKQEAgLTE5OTEsNyArMjA2NCw3IEBACiAJLnBhcmVudAkJPSAmZHBsbDRfbTV4Ml9jaywKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5jbGtzZWxfcmVnCT0gT01BUF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCksCi0JLmNsa3NlbF9tYXNrCT0gT01BUDM0MzBfU1RfUEVSSVBIX0NMSywKKwkuY2xrc2VsX21hc2sJPSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0ssCiAJLmNsa3NlbAkJPSBjYW1fbWNsa19jbGtzZWwsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfQ0FNX01PRCwgQ01fRkNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX0NBTV9TSElGVCwKQEAgLTI1NDEsNyArMjYxNCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfaWNrID0gewotCS5uYW1lCQk9ICJtY2JzcDJfaWNrIiwKKwkubmFtZQkJPSAibWNic3BfaWNrIiwKKwkuaWQJCT0gMiwKIAkucGFyZW50CQk9ICZwZXJfbDRfaWNrLAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0lDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDJfU0hJRlQsCkBAIC0yNTUwLDcgKzI2MjQsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AzX2ljayA9IHsKLQkubmFtZQkJPSAibWNic3AzX2ljayIsCisJLm5hbWUJCT0gIm1jYnNwX2ljayIsCisJLmlkCQk9IDMsCiAJLnBhcmVudAkJPSAmcGVyX2w0X2ljaywKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9JQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AzX1NISUZULApAQCAtMjU1OSw3ICsyNjM0LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNF9pY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNF9pY2siLAorCS5uYW1lCQk9ICJtY2JzcF9pY2siLAorCS5pZAkJPSA0LAogCS5wYXJlbnQJCT0gJnBlcl9sNF9pY2ssCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fSUNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQNF9TSElGVCwKQEAgLTI1NzQsNyArMjY1MCw4IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IGNsayBtY2JzcDJfZmNrID0gewotCS5uYW1lCQk9ICJtY2JzcDJfZmNrIiwKKwkubmFtZQkJPSAibWNic3BfZmNrIiwKKwkuaWQJCT0gMiwKIAkuaW5pdAkJPSAmb21hcDJfaW5pdF9jbGtzZWxfcGFyZW50LAogCS5lbmFibGVfcmVnCT0gT01BUF9DTV9SRUdBRERSKE9NQVAzNDMwX1BFUl9NT0QsIENNX0ZDTEtFTiksCiAJLmVuYWJsZV9iaXQJPSBPTUFQMzQzMF9FTl9NQ0JTUDJfU0hJRlQsCkBAIC0yNTg2LDcgKzI2NjMsOCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBjbGsgbWNic3AzX2ZjayA9IHsKLQkubmFtZQkJPSAibWNic3AzX2ZjayIsCisJLm5hbWUJCT0gIm1jYnNwX2ZjayIsCisJLmlkCQk9IDMsCiAJLmluaXQJCT0gJm9tYXAyX2luaXRfY2xrc2VsX3BhcmVudCwKIAkuZW5hYmxlX3JlZwk9IE9NQVBfQ01fUkVHQUREUihPTUFQMzQzMF9QRVJfTU9ELCBDTV9GQ0xLRU4pLAogCS5lbmFibGVfYml0CT0gT01BUDM0MzBfRU5fTUNCU1AzX1NISUZULApAQCAtMjU5OCw3ICsyNjc2LDggQEAKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgY2xrIG1jYnNwNF9mY2sgPSB7Ci0JLm5hbWUJCT0gIm1jYnNwNF9mY2siLAorCS5uYW1lCQk9ICJtY2JzcF9mY2siLAorCS5pZAkJPSA0LAogCS5pbml0CQk9ICZvbWFwMl9pbml0X2Nsa3NlbF9wYXJlbnQsCiAJLmVuYWJsZV9yZWcJPSBPTUFQX0NNX1JFR0FERFIoT01BUDM0MzBfUEVSX01PRCwgQ01fRkNMS0VOKSwKIAkuZW5hYmxlX2JpdAk9IE9NQVAzNDMwX0VOX01DQlNQNF9TSElGVCwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0zNHh4LmggYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLXJlZ2JpdHMtMzR4eC5oCmluZGV4IDNjMzgzOTUuLmVlNGMwY2EgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20tcmVnYml0cy0zNHh4LmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS1yZWdiaXRzLTM0eHguaApAQCAtNzIsNyArNzIsOCBAQAogI2RlZmluZSBPTUFQMzQzMF9TVF9JVkEyCQkJCSgxIDw8IDApCiAKIC8qIENNX0lETEVTVF9QTExfSVZBMiAqLwotI2RlZmluZSBPTUFQMzQzMF9TVF9JVkEyX0NMSwkJCQkoMSA8PCAwKQorI2RlZmluZSBPTUFQMzQzMF9TVF9JVkEyX0NMS19TSElGVAkJCTAKKyNkZWZpbmUgT01BUDM0MzBfU1RfSVZBMl9DTEtfTUFTSwkJCSgxIDw8IDApCiAKIC8qIENNX0FVVE9JRExFX1BMTF9JVkEyICovCiAjZGVmaW5lIE9NQVAzNDMwX0FVVE9fSVZBMl9EUExMX1NISUZUCQkJMApAQCAtMTE1LDEwICsxMTYsNyBAQAogI2RlZmluZSBPTUFQMzQzMF9TVF9NUFUJCQkJCSgxIDw8IDApCiAKIC8qIENNX0lETEVTVF9QTExfTVBVICovCi0jZGVmaW5lIE9NQVAzNDMwX1NUX01QVV9DTEsJCQkJKDEgPDwgMCkKLSNkZWZpbmUgT01BUDM0MzBfU1RfSVZBMl9DTEtfTUFTSwkJCSgxIDw8IDApCi0KLS8qIENNX0lETEVTVF9QTExfTVBVICovCisjZGVmaW5lIE9NQVAzNDMwX1NUX01QVV9DTEtfU0hJRlQJCQkwCiAjZGVmaW5lIE9NQVAzNDMwX1NUX01QVV9DTEtfTUFTSwkJCSgxIDw8IDApCiAKIC8qIENNX0FVVE9JRExFX1BMTF9NUFUgKi8KQEAgLTQwOCw4ICs0MDYsMTAgQEAKICNkZWZpbmUgT01BUDM0MzBfU1RfMTJNX0NMSwkJCQkoMSA8PCA0KQogI2RlZmluZSBPTUFQMzQzMF9TVF80OE1fQ0xLCQkJCSgxIDw8IDMpCiAjZGVmaW5lIE9NQVAzNDMwX1NUXzk2TV9DTEsJCQkJKDEgPDwgMikKLSNkZWZpbmUgT01BUDM0MzBfU1RfUEVSSVBIX0NMSwkJCQkoMSA8PCAxKQotI2RlZmluZSBPTUFQMzQzMF9TVF9DT1JFX0NMSwkJCQkoMSA8PCAwKQorI2RlZmluZSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX1NISUZUCQkJMQorI2RlZmluZSBPTUFQMzQzMF9TVF9QRVJJUEhfQ0xLX01BU0sJCQkoMSA8PCAxKQorI2RlZmluZSBPTUFQMzQzMF9TVF9DT1JFX0NMS19TSElGVAkJCTAKKyNkZWZpbmUgT01BUDM0MzBfU1RfQ09SRV9DTEtfTUFTSwkJCSgxIDw8IDApCiAKIC8qIENNX0lETEVTVDJfQ0tHRU4gKi8KICNkZWZpbmUgT01BUDM0MzBFUzJfU1RfMTIwTV9DTEtfU0hJRlQJCQkxCkBAIC00MjMsNiArNDIzLDEwIEBACiAjZGVmaW5lIE9NQVAzNDMwX0FVVE9fQ09SRV9EUExMX1NISUZUCQkJMAogI2RlZmluZSBPTUFQMzQzMF9BVVRPX0NPUkVfRFBMTF9NQVNLCQkJKDB4NyA8PCAwKQogCisvKiBDTV9BVVRPSURMRTJfUExMICovCisjZGVmaW5lIE9NQVAzNDMwRVMyX0FVVE9fUEVSSVBIMl9EUExMX1NISUZUCQkwCisjZGVmaW5lIE9NQVAzNDMwRVMyX0FVVE9fUEVSSVBIMl9EUExMX01BU0sJCSgweDcgPDwgMCkKKwogLyogQ01fQ0xLU0VMMV9QTEwgKi8KIC8qIE5vdGUgdGhhdCBPTUFQMzQzMF9DT1JFX0RQTExfQ0xLT1VUX0RJVl9NQVNLIHdhcyAoMHgzIDw8IDI3KSBvbiAzNDMwRVMxICovCiAjZGVmaW5lIE9NQVAzNDMwX0NPUkVfRFBMTF9DTEtPVVRfRElWX1NISUZUCQkyNwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9jbS5oCmluZGV4IDg0ODlmMzAuLjg3YTQ0YzcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvY20uaAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NtLmgKQEAgLTgxLDYgKzgxLDcgQEAKICNkZWZpbmUgT01BUDM0MzBFUzJfQ01fRkNMS0VOMwkJCQkweDAwMDgKICNkZWZpbmUgT01BUDM0MzBfQ01fSURMRVNUX1BMTAkJCQlDTV9JRExFU1QyCiAjZGVmaW5lIE9NQVAzNDMwX0NNX0FVVE9JRExFX1BMTAkJCUNNX0FVVE9JRExFMgorI2RlZmluZSBPTUFQMzQzMEVTMl9DTV9BVVRPSURMRTJfUExMCQkJQ01fQVVUT0lETEUyCiAjZGVmaW5lIE9NQVAzNDMwX0NNX0NMS1NFTDEJCQkJQ01fQ0xLU0VMCiAjZGVmaW5lIE9NQVAzNDMwX0NNX0NMS1NFTDFfUExMCQkJCUNNX0NMS1NFTAogI2RlZmluZSBPTUFQMzQzMF9DTV9DTEtTRUwyX1BMTAkJCQlDTV9DTEtTRUwyCkBAIC05NiwxNSArOTcsMjEgQEAKIC8qIENsb2NrIG1hbmFnZW1lbnQgZG9tYWluIHJlZ2lzdGVyIGdldC9zZXQgKi8KIAogI2lmbmRlZiBfX0FTU0VNQkxFUl9fCi1zdGF0aWMgaW5saW5lIHZvaWQgY21fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQorCitleHRlcm4gdTMyIGNtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCB1MTYgaWR4KTsKK2V4dGVybiB2b2lkIGNtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgdTE2IGlkeCk7CitleHRlcm4gdTMyIGNtX3Jtd19tb2RfcmVnX2JpdHModTMyIG1hc2ssIHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KTsKKworc3RhdGljIGlubGluZSB1MzIgY21fc2V0X21vZF9yZWdfYml0cyh1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKIHsKLQlfX3Jhd193cml0ZWwodmFsLCBPTUFQX0NNX1JFR0FERFIobW9kdWxlLCBpZHgpKTsKKwlyZXR1cm4gY21fcm13X21vZF9yZWdfYml0cyhiaXRzLCBiaXRzLCBtb2R1bGUsIGlkeCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIGNtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCBzMTYgaWR4KQorc3RhdGljIGlubGluZSB1MzIgY21fY2xlYXJfbW9kX3JlZ19iaXRzKHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQogewotCXJldHVybiBfX3Jhd19yZWFkbChPTUFQX0NNX1JFR0FERFIobW9kdWxlLCBpZHgpKTsKKwlyZXR1cm4gY21fcm13X21vZF9yZWdfYml0cyhiaXRzLCAweDAsIG1vZHVsZSwgaWR4KTsKIH0KKwogI2VuZGlmCiAKIC8qIENNIHJlZ2lzdGVyIGJpdHMgc2hhcmVkIGJldHdlZW4gMjRYWCBhbmQgMzQzMCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9jb250cm9sLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYwppbmRleCBhNWQ4NmE0Li41MWY3MDMwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2NvbnRyb2wuYwpAQCAtMTMsMjIgKzEzLDIxIEBACiAjdW5kZWYgREVCVUcKIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKLSNpbmNsdWRlIDxhc20vaW8uaD4KLQorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KIAotc3RhdGljIHUzMiBvbWFwMl9jdHJsX2Jhc2U7CitzdGF0aWMgdm9pZCBfX2lvbWVtICpvbWFwMl9jdHJsX2Jhc2U7CiAKLSNkZWZpbmUgT01BUF9DVFJMX1JFR0FERFIocmVnKQkodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhvbWFwMl9jdHJsX2Jhc2UgXAotCQkJCQkJCQkrIChyZWcpKQorI2RlZmluZSBPTUFQX0NUUkxfUkVHQUREUihyZWcpCQkob21hcDJfY3RybF9iYXNlICsgKHJlZykpCiAKLXZvaWQgb21hcF9jdHJsX2Jhc2Vfc2V0KHUzMiBiYXNlKQordm9pZCBfX2luaXQgb21hcDJfc2V0X2dsb2JhbHNfY29udHJvbChzdHJ1Y3Qgb21hcF9nbG9iYWxzICpvbWFwMl9nbG9iYWxzKQogewotCW9tYXAyX2N0cmxfYmFzZSA9IGJhc2U7CisJb21hcDJfY3RybF9iYXNlID0gb21hcDJfZ2xvYmFscy0+Y3RybDsKIH0KIAotdTMyIG9tYXBfY3RybF9iYXNlX2dldCh2b2lkKQordm9pZCBfX2lvbWVtICpvbWFwX2N0cmxfYmFzZV9nZXQodm9pZCkKIHsKIAlyZXR1cm4gb21hcDJfY3RybF9iYXNlOwogfQpAQCAtNTAsMjUgKzQ5LDE2IEBACiAKIHZvaWQgb21hcF9jdHJsX3dyaXRlYih1OCB2YWwsIHUxNiBvZmZzZXQpCiB7Ci0JcHJfZGVidWcoIm9tYXBfY3RybF93cml0ZWI6IHdyaXRpbmcgMHglMHggdG8gMHglMHhcbiIsIHZhbCwKLQkJICh1MzIpT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7Ci0KIAlfX3Jhd193cml0ZWIodmFsLCBPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKIH0KIAogdm9pZCBvbWFwX2N0cmxfd3JpdGV3KHUxNiB2YWwsIHUxNiBvZmZzZXQpCiB7Ci0JcHJfZGVidWcoIm9tYXBfY3RybF93cml0ZXc6IHdyaXRpbmcgMHglMHggdG8gMHglMHhcbiIsIHZhbCwKLQkJICh1MzIpT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7Ci0KIAlfX3Jhd193cml0ZXcodmFsLCBPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKIH0KIAogdm9pZCBvbWFwX2N0cmxfd3JpdGVsKHUzMiB2YWwsIHUxNiBvZmZzZXQpCiB7Ci0JcHJfZGVidWcoIm9tYXBfY3RybF93cml0ZWw6IHdyaXRpbmcgMHglMHggdG8gMHglMHhcbiIsIHZhbCwKLQkJICh1MzIpT01BUF9DVFJMX1JFR0FERFIob2Zmc2V0KSk7Ci0KIAlfX3Jhd193cml0ZWwodmFsLCBPTUFQX0NUUkxfUkVHQUREUihvZmZzZXQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9ncG1jLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMuYwppbmRleCAwMmNlZGUyLi5kYmY2OGRjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2dwbWMuYwpAQCAtNDIsNyArNDIsNyBAQAogI2RlZmluZSBHUE1DX1NUQVRVUwkJMHg1NAogI2RlZmluZSBHUE1DX1BSRUZFVENIX0NPTkZJRzEJMHgxZTAKICNkZWZpbmUgR1BNQ19QUkVGRVRDSF9DT05GSUcyCTB4MWU0Ci0jZGVmaW5lIEdQTUNfUFJFRkVUQ0hfQ09OVFJPTAkweDFlOAorI2RlZmluZSBHUE1DX1BSRUZFVENIX0NPTlRST0wJMHgxZWMKICNkZWZpbmUgR1BNQ19QUkVGRVRDSF9TVEFUVVMJMHgxZjAKICNkZWZpbmUgR1BNQ19FQ0NfQ09ORklHCQkweDFmNAogI2RlZmluZSBHUE1DX0VDQ19DT05UUk9MCTB4MWY4CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL2lkLmMKaW5kZXggNGRmZDg3OC4uZGZmNGIxNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9pZC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvaWQuYwpAQCAtMTcsMTYgKzE3LDIzIEBACiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDI0MjApCi0jZGVmaW5lIE9NQVAyNFhYX1RBUF9CQVNFCWlvX3AydigweDQ4MDE0MDAwKQotI2VuZGlmCisjaW5jbHVkZSA8YXNtL2FyY2gvY29udHJvbC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NwdS5oPgogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjQzMCkKLSNkZWZpbmUgT01BUDI0WFhfVEFQX0JBU0UJaW9fcDJ2KDB4NDkwMEEwMDApCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjQyMCkKKyNkZWZpbmUgVEFQX0JBU0UJaW9fcDJ2KDB4NDgwMTQwMDApCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDMwKQorI2RlZmluZSBUQVBfQkFTRQlpb19wMnYoMHg0OTAwQTAwMCkKKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0WFgpCisjZGVmaW5lIFRBUF9CQVNFCWlvX3AydigweDQ4MzBBMDAwKQogI2VuZGlmCiAKICNkZWZpbmUgT01BUF9UQVBfSURDT0RFCQkweDAyMDQKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNFhYKQorI2RlZmluZSBPTUFQX1RBUF9QUk9EX0lECTB4MDIxMAorI2Vsc2UKICNkZWZpbmUgT01BUF9UQVBfUFJPRF9JRAkweDAyMDgKKyNlbmRpZgogCiAjZGVmaW5lIE9NQVBfVEFQX0RJRV9JRF8wCTB4MDIxOAogI2RlZmluZSBPTUFQX1RBUF9ESUVfSURfMQkweDAyMUMKQEAgLTU2LDkgKzYzLDEzNCBAQAogCXsgLmhhd2tleWUgPSAweGI2OGEsIC5kZXYgPSAweDAsIC50eXBlID0gMHgyNDMwMDAwMCB9LAogfTsKIAorc3RhdGljIHN0cnVjdCBvbWFwX2NoaXBfaWQgb21hcF9jaGlwOworCisvKioKKyAqIG9tYXBfY2hpcF9pcyAtIHRlc3Qgd2hldGhlciBjdXJyZW50bHkgcnVubmluZyBPTUFQIG1hdGNoZXMgYSBjaGlwIHR5cGUKKyAqIEBvYzogb21hcF9jaGlwX3QgdG8gdGVzdCBhZ2FpbnN0CisgKgorICogVGVzdCB3aGV0aGVyIHRoZSBjdXJyZW50bHktcnVubmluZyBPTUFQIGNoaXAgbWF0Y2hlcyB0aGUgc3VwcGxpZWQKKyAqIGNoaXAgdHlwZSAnb2MnLiAgUmV0dXJucyAxIHVwb24gYSBtYXRjaDsgMCB1cG9uIGZhaWx1cmUuCisgKi8KK2ludCBvbWFwX2NoaXBfaXMoc3RydWN0IG9tYXBfY2hpcF9pZCBvY2kpCit7CisJcmV0dXJuIChvY2kub2MgJiBvbWFwX2NoaXAub2MpID8gMSA6IDA7Cit9CitFWFBPUlRfU1lNQk9MKG9tYXBfY2hpcF9pcyk7CisKIHN0YXRpYyB1MzIgX19pbml0IHJlYWRfdGFwX3JlZyhpbnQgcmVnKQogewotCXJldHVybiBfX3Jhd19yZWFkbChPTUFQMjRYWF9UQVBfQkFTRSArIHJlZyk7CisJdW5zaWduZWQgaW50IHJlZ3ZhbCA9IDA7CisJdTMyIGNwdWlkOworCisJLyogUmVhZGluZyB0aGUgSURDT0RFIHJlZ2lzdGVyIG9uIDM0MzAgRVMxIHJlc3VsdHMgaW4gYQorCSAqIGRhdGEgYWJvcnQgYXMgdGhlIHJlZ2lzdGVyIGlzIG5vdCBleHBvc2VkIG9uIHRoZSBPQ1AKKwkgKiBIZW5jZSByZWFkaW5nIHRoZSBDb3J0ZXggUmV2CisJICovCisJY3B1aWQgPSByZWFkX2NwdWlkKENQVUlEX0lEKTsKKworCS8qIElmIHRoZSBwcm9jZXNzb3IgdHlwZSBpcyBDb3J0ZXgtQTggYW5kIHRoZSByZXZpc2lvbiBpcyAweDAKKwkgKiBpdCBtZWFucyBpdHMgQ29ydGV4IHIwcDAgd2hpY2ggaXMgMzQzMCBFUzEKKwkgKi8KKwlpZiAoKCgoY3B1aWQgPj4gNCkgJiAweEZGRikgPT0gMHhDMDgpICYmICgoY3B1aWQgJiAweEYpID09IDB4MCkpIHsKKwkJc3dpdGNoIChyZWcpIHsKKwkJY2FzZSBPTUFQX1RBUF9JRENPREUgIDogcmVndmFsID0gMHgwQjdBRTAyRjsgYnJlYWs7CisJCS8qIE1ha2luZyBEZXZUeXBlIGFzIDB4RiBpbiBFUzEgdG8gZGlmZmVyIGZyb20gRVMyICovCisJCWNhc2UgT01BUF9UQVBfUFJPRF9JRCA6IHJlZ3ZhbCA9IDB4MDAwRjAwRjA7IGJyZWFrOworCQljYXNlIE9NQVBfVEFQX0RJRV9JRF8wOiByZWd2YWwgPSAweDAxMDAwMDAwOyBicmVhazsKKwkJY2FzZSBPTUFQX1RBUF9ESUVfSURfMTogcmVndmFsID0gMHgxMDEyZDY4NzsgYnJlYWs7CisJCWNhc2UgT01BUF9UQVBfRElFX0lEXzI6CXJlZ3ZhbCA9IDB4MDAwMDAwMDA7IGJyZWFrOworCQljYXNlIE9NQVBfVEFQX0RJRV9JRF8zOglyZWd2YWwgPSAweDJkMmMwMDAwOyBicmVhazsKKwkJfQorCX0gZWxzZQorCQlyZWd2YWwgPSBfX3Jhd19yZWFkbChUQVBfQkFTRSArIHJlZyk7CisKKwlyZXR1cm4gcmVndmFsOworCit9CisKKy8qCisgKiBfc2V0X3N5c3RlbV9yZXYgLSBzZXQgdGhlIHN5c3RlbV9yZXYgZ2xvYmFsIGJhc2VkIG9uIGN1cnJlbnQgT01BUCBjaGlwIHR5cGUKKyAqCisgKiBTZXQgdGhlIHN5c3RlbV9yZXYgZ2xvYmFsLiAgVGhpcyBpcyBwcmltYXJpbHkgdXNlZCBieSB0aGUgY3B1X2lzX29tYXB4eHh4KCkKKyAqIG1hY3Jvcy4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IF9zZXRfc3lzdGVtX3Jldih1MzIgdHlwZSwgdTggcmV2KQoreworCXUzMiBpLCBjdHJsX3N0YXR1czsKKworCS8qCisJICogc3lzdGVtX3JldiBlbmNvZGluZyBpcyBhcyBmb2xsb3dzCisJICogc3lzdGVtX3JldiAmIDB4ZmYwMDAwMDAgLT4gT21hcCBDbGFzcyAoMjR4eC8zNHh4KQorCSAqIHN5c3RlbV9yZXYgJiAweGZmZjAwMDAwIC0+IE9tYXAgU3ViIENsYXNzICgyNDJ4LzM0M3gpCisJICogc3lzdGVtX3JldiAmIDB4ZmZmZjAwMDAgLT4gT21hcCB0eXBlICgyNDIwLzI0MjIvMjQyMy8yNDMwLzM0MzApCisJICogc3lzdGVtX3JldiAmIDB4MDAwMGYwMDAgLT4gU2lsaWNvbiByZXZpc2lvbiAoRVMxLCBFUzIgKQorCSAqIHN5c3RlbV9yZXYgJiAweDAwMDAwNzAwIC0+IERldmljZSBUeXBlICggRU1VL0hTL0dQL0JBRCApCisJICogc3lzdGVtX3JldiAmIDB4MDAwMDAwYzAgLT4gSURDT0RFIHJldmlzaW9uWzY6N10KKwkgKiBzeXN0ZW1fcmV2ICYgMHgwMDAwMDAzZiAtPiBzeXNfYm9vdFswOjVdCisJICovCisJLyogRW1iZWRkaW5nIHRoZSBFUyByZXZpc2lvbiBpbmZvIGluIHR5cGUgZmllbGQgKi8KKwlzeXN0ZW1fcmV2ID0gdHlwZTsKKwkvKiBBbHNvIGFkZCBJRENPREUgcmV2aXNpb24gaW5mbyBvbmx5IHR3byBsb3dlciBiaXRzICovCisJc3lzdGVtX3JldiB8PSAoKHJldiAmIDB4MykgPDwgNik7CisKKwkvKiBBZGQgaW4gdGhlIGRldmljZSB0eXBlIGFuZCBzeXNfYm9vdCBmaWVsZHMgKHNlZSBhYm92ZSkgKi8KKwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKKwkJaSA9IE9NQVAyNFhYX0NPTlRST0xfU1RBVFVTOworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAzNDN4KCkpIHsKKwkJaSA9IE9NQVAzNDNYX0NPTlRST0xfU1RBVFVTOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAiaWQ6IHVua25vd24gQ1BVIHR5cGVcbiIpOworCQlCVUcoKTsKKwl9CisJY3RybF9zdGF0dXMgPSBvbWFwX2N0cmxfcmVhZGwoaSk7CisJc3lzdGVtX3JldiB8PSAoY3RybF9zdGF0dXMgJiAoT01BUDJfU1lTQk9PVF81X01BU0sgfAorCQkJCSAgICAgIE9NQVAyX1NZU0JPT1RfNF9NQVNLIHwKKwkJCQkgICAgICBPTUFQMl9TWVNCT09UXzNfTUFTSyB8CisJCQkJICAgICAgT01BUDJfU1lTQk9PVF8yX01BU0sgfAorCQkJCSAgICAgIE9NQVAyX1NZU0JPT1RfMV9NQVNLIHwKKwkJCQkgICAgICBPTUFQMl9TWVNCT09UXzBfTUFTSykpOworCXN5c3RlbV9yZXYgfD0gKGN0cmxfc3RhdHVzICYgT01BUDJfREVWSUNFVFlQRV9NQVNLKTsKK30KKworCisvKgorICogX3NldF9vbWFwX2NoaXAgLSBzZXQgdGhlIG9tYXBfY2hpcCBnbG9iYWwgYmFzZWQgb24gT01BUCBjaGlwIHR5cGUKKyAqCisgKiBCdWlsZCB0aGUgb21hcF9jaGlwIGJpdHMuICBUaGlzIHZhcmlhYmxlIGlzIHVzZWQgYnkgcG93ZXJkb21haW4gYW5kCisgKiBjbG9ja2RvbWFpbiBjb2RlIHRvIGluZGljYXRlIHdoZXRoZXIgc3RydWN0dXJlcyBhcmUgYXBwbGljYWJsZSBmb3IKKyAqIHRoZSBjdXJyZW50IE9NQVAgY2hpcCB0eXBlIGJ5IEFORGluZyBpdCBhZ2FpbnN0IGEgJ3BsYXRmb3JtJyBiaXRmaWVsZAorICogaW4gdGhlIHN0cnVjdHVyZS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IF9zZXRfb21hcF9jaGlwKHZvaWQpCit7CisJaWYgKGNwdV9pc19vbWFwMzQzeCgpKSB7CisKKwkJb21hcF9jaGlwLm9jID0gQ0hJUF9JU19PTUFQMzQzMDsKKwkJaWYgKGlzX3NpbF9yZXZfZXF1YWxfdG8oT01BUDM0MzBfUkVWX0VTMV8wKSkKKwkJCW9tYXBfY2hpcC5vYyB8PSBDSElQX0lTX09NQVAzNDMwRVMxOworCQllbHNlIGlmIChpc19zaWxfcmV2X2dyZWF0ZXJfdGhhbihPTUFQMzQzMF9SRVZfRVMxXzApKQorCQkJb21hcF9jaGlwLm9jIHw9IENISVBfSVNfT01BUDM0MzBFUzI7CisKKwl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMjQzeCgpKSB7CisKKwkJLyogQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgMjQzMEVTMi4xIGFuZCAyNDMwLWFsbCAqLworCQlvbWFwX2NoaXAub2MgfD0gQ0hJUF9JU19PTUFQMjQzMDsKKworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAyNDJ4KCkpIHsKKworCQkvKiBDdXJyZW50bHkgb25seSBzdXBwb3J0cyAyNDIwRVMyLjEuMSBhbmQgMjQyMC1hbGwgKi8KKwkJb21hcF9jaGlwLm9jIHw9IENISVBfSVNfT01BUDI0MjA7CisKKwl9IGVsc2UgeworCisJCS8qIEN1cnJlbnQgQ1BVIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBjb2RlLiAqLworCQlwcmludGsoS0VSTl9XQVJOSU5HICJPTUFQIGNoaXAgdHlwZSBjb2RlIGRvZXMgbm90IHlldCBzdXBwb3J0ICIKKwkJICAgICAgICJ0aGlzIENQVSB0eXBlLlxuIik7CisJCVdBUk5fT04oMSk7CisKKwl9CisKIH0KIAogdm9pZCBfX2luaXQgb21hcDJfY2hlY2tfcmV2aXNpb24odm9pZCkKQEAgLTc2LDIxICsyMDgsMzEgQEAKIAlyZXYgPSAoaWRjb2RlID4+IDI4KSAmIDB4MGY7CiAJZGV2X3R5cGUgPSAocHJvZF9pZCA+PiAxNikgJiAweDBmOwogCi0jaWZkZWYgREVCVUcKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfSURDT0RFIDB4JTA4eCBSRVYgJWkgSEFXS0VZRSAweCUwNHggTUFORiAlMDN4XG4iLAotCQlpZGNvZGUsIHJldiwgaGF3a2V5ZSwgKGlkY29kZSA+PiAxKSAmIDB4N2ZmKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfRElFX0lEXzA6IDB4JTA4eFxuIiwKLQkJcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8wKSk7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX0RJRV9JRF8xOiAweCUwOHggREVWX1JFVjogJWlcbiIsCi0JCXJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMSksCi0JICAgICAgIChyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzEpID4+IDI4KSAmIDB4Zik7Ci0JcHJpbnRrKEtFUk5fREVCVUcgIk9NQVBfVEFQX0RJRV9JRF8yOiAweCUwOHhcbiIsCi0JCXJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMikpOwotCXByaW50ayhLRVJOX0RFQlVHICJPTUFQX1RBUF9ESUVfSURfMzogMHglMDh4XG4iLAotCQlyZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzMpKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiT01BUF9UQVBfUFJPRF9JRF8wOiAweCUwOHggREVWX1RZUEU6ICVpXG4iLAotCQlwcm9kX2lkLCBkZXZfdHlwZSk7Ci0jZW5kaWYKKwlwcl9kZWJ1ZygiT01BUF9UQVBfSURDT0RFIDB4JTA4eCBSRVYgJWkgSEFXS0VZRSAweCUwNHggTUFORiAlMDN4XG4iLAorCQkgaWRjb2RlLCByZXYsIGhhd2tleWUsIChpZGNvZGUgPj4gMSkgJiAweDdmZik7CisJcHJfZGVidWcoIk9NQVBfVEFQX0RJRV9JRF8wOiAweCUwOHhcbiIsCisJCSByZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzApKTsKKwlwcl9kZWJ1ZygiT01BUF9UQVBfRElFX0lEXzE6IDB4JTA4eCBERVZfUkVWOiAlaVxuIiwKKwkJIHJlYWRfdGFwX3JlZyhPTUFQX1RBUF9ESUVfSURfMSksCisJCSAocmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8xKSA+PiAyOCkgJiAweGYpOworCXByX2RlYnVnKCJPTUFQX1RBUF9ESUVfSURfMjogMHglMDh4XG4iLAorCQkgcmVhZF90YXBfcmVnKE9NQVBfVEFQX0RJRV9JRF8yKSk7CisJcHJfZGVidWcoIk9NQVBfVEFQX0RJRV9JRF8zOiAweCUwOHhcbiIsCisJCSByZWFkX3RhcF9yZWcoT01BUF9UQVBfRElFX0lEXzMpKTsKKwlwcl9kZWJ1ZygiT01BUF9UQVBfUFJPRF9JRF8wOiAweCUwOHggREVWX1RZUEU6ICVpXG4iLAorCQkgcHJvZF9pZCwgZGV2X3R5cGUpOworCisJLyoKKwkgKiBEZXRlY3Rpb24gZm9yIDM0eHggRVMyLjAgYW5kIGFib3ZlIGNhbiBiZSBkb25lIHdpdGgganVzdAorCSAqIGhhd2tleWUgYW5kIHJldi4gU2VlIFRSTSAxLjUuMiBEZXZpY2UgSWRlbnRpZmljYXRpb24uCisJICogTm90ZSB0aGF0IHJldiBjYW5ub3QgYmUgdXNlZCBkaXJlY3RseSBhcyBFUzEuMCB1c2VzIHZhbHVlIDAuCisJICovCisJaWYgKGhhd2tleWUgPT0gMHhiN2FlKSB7CisJCXN5c3RlbV9yZXYgPSAweDM0MzAwMDAwIHwgKCgxICsgcmV2KSA8PCAxMik7CisJCXByX2luZm8oIk9NQVAlMDR4IEVTMi4laVxuIiwgc3lzdGVtX3JldiA+PiAxNiwgcmV2KTsKKwkJX3NldF9vbWFwX2NoaXAoKTsKKwkJcmV0dXJuOworCX0KIAogCS8qIENoZWNrIGhhd2tleWUgaWRzICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUob21hcF9pZHMpOyBpKyspIHsKQEAgLTExNCwxNiArMjU2LDE1IEBACiAJCQkJb21hcF9pZHNbaV0udHlwZSA+PiAxNik7CiAJCWogPSBpOwogCX0KLQlzeXN0ZW1fcmV2ID0gb21hcF9pZHNbal0udHlwZTsKIAotCXN5c3RlbV9yZXYgfD0gcmV2IDw8IDg7CisJX3NldF9zeXN0ZW1fcmV2KG9tYXBfaWRzW2pdLnR5cGUsIHJldik7CiAKLQkvKiBBZGQgdGhlIGNwdSBjbGFzcyBpbmZvICgyNHh4KSAqLwotCXN5c3RlbV9yZXYgfD0gMHgyNDsKKwlfc2V0X29tYXBfY2hpcCgpOwogCiAJcHJfaW5mbygiT01BUCUwNHgiLCBzeXN0ZW1fcmV2ID4+IDE2KTsKIAlpZiAoKHN5c3RlbV9yZXYgPj4gOCkgJiAweDBmKQotCQlwcmludGsoIiV4IiwgKHN5c3RlbV9yZXYgPj4gOCkgJiAweDBmKTsKLQlwcmludGsoIlxuIik7CisJCXByX2luZm8oIkVTJXgiLCAoc3lzdGVtX3JldiA+PiAxMikgJiAweGYpOworCXByX2luZm8oIlxuIik7CisKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tY2JzcC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tY2JzcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3Y2YxOTkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL21jYnNwLmMKQEAgLTAsMCArMSwyMDggQEAKKy8qCisgKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL21jYnNwLmMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5zdGl0dXRvIE5va2lhIGRlIFRlY25vbG9naWEKKyAqIENvbnRhY3Q6IEVkdWFyZG8gVmFsZW50aW4gPGVkdWFyZG8udmFsZW50aW5AaW5kdC5vcmcuYnI+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBNdWx0aWNoYW5uZWwgbW9kZSBub3Qgc3VwcG9ydGVkLgorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9kbWEuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jcHUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9tY2JzcC5oPgorCitzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrIHsKKwlzdHJ1Y3QgY2xrIGNsazsKKwlzdHJ1Y3QgY2xrICoqY2hpbGRzOworCWludCBuX2NoaWxkczsKK307CisKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNFhYKQorc3RhdGljIHZvaWQgb21hcF9tY2JzcF9jbGtfaW5pdChzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrICptY2xrKQoreworCWNvbnN0IGNoYXIgKmNsa19uYW1lc1tdID0geyAibWNic3BfaWNrIiwgIm1jYnNwX2ZjayIgfTsKKwlpbnQgaTsKKworCW1jbGstPm5fY2hpbGRzID0gQVJSQVlfU0laRShjbGtfbmFtZXMpOworCW1jbGstPmNoaWxkcyA9IGt6YWxsb2MobWNsay0+bl9jaGlsZHMgKiBzaXplb2Yoc3RydWN0IGNsayAqKSwKKwkJCQlHRlBfS0VSTkVMKTsKKworCWZvciAoaSA9IDA7IGkgPCBtY2xrLT5uX2NoaWxkczsgaSsrKSB7CisJCS8qIFdlIGZha2UgYSBwbGF0Zm9ybSBkZXZpY2UgdG8gZ2V0IGNvcnJlY3QgZGV2aWNlIGlkICovCisJCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcGRldjsKKworCQlwZGV2LmRldi5idXMgPSAmcGxhdGZvcm1fYnVzX3R5cGU7CisJCXBkZXYuaWQgPSBtY2xrLT5jbGsuaWQ7CisJCW1jbGstPmNoaWxkc1tpXSA9IGNsa19nZXQoJnBkZXYuZGV2LCBjbGtfbmFtZXNbaV0pOworCQlpZiAoSVNfRVJSKG1jbGstPmNoaWxkc1tpXSkpCisJCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCBnZXQgY2xvY2sgJXMgKCVkKS5cbiIsCisJCQkJY2xrX25hbWVzW2ldLCBtY2xrLT5jbGsuaWQpOworCX0KK30KKworc3RhdGljIGludCBvbWFwX21jYnNwX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgKm1jbGsgPSBjb250YWluZXJfb2YoY2xrLAorCQkJCQlzdHJ1Y3QgbWNic3BfaW50ZXJuYWxfY2xrLCBjbGspOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1jbGstPm5fY2hpbGRzOyBpKyspCisJCWNsa19lbmFibGUobWNsay0+Y2hpbGRzW2ldKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgb21hcF9tY2JzcF9jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayAqbWNsayA9IGNvbnRhaW5lcl9vZihjbGssCisJCQkJCXN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGssIGNsayk7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbWNsay0+bl9jaGlsZHM7IGkrKykKKwkJY2xrX2Rpc2FibGUobWNsay0+Y2hpbGRzW2ldKTsKK30KKworc3RhdGljIHN0cnVjdCBtY2JzcF9pbnRlcm5hbF9jbGsgb21hcF9tY2JzcF9jbGtzW10gPSB7CisJeworCQkuY2xrID0geworCQkJLm5hbWUgCQk9ICJtY2JzcF9jbGsiLAorCQkJLmlkCQk9IDEsCisJCQkuZW5hYmxlCQk9IG9tYXBfbWNic3BfY2xrX2VuYWJsZSwKKwkJCS5kaXNhYmxlCT0gb21hcF9tY2JzcF9jbGtfZGlzYWJsZSwKKwkJfSwKKwl9LAorCXsKKwkJLmNsayA9IHsKKwkJCS5uYW1lIAkJPSAibWNic3BfY2xrIiwKKwkJCS5pZAkJPSAyLAorCQkJLmVuYWJsZQkJPSBvbWFwX21jYnNwX2Nsa19lbmFibGUsCisJCQkuZGlzYWJsZQk9IG9tYXBfbWNic3BfY2xrX2Rpc2FibGUsCisJCX0sCisJfSwKK307CisKKyNkZWZpbmUgb21hcF9tY2JzcF9jbGtzX3NpemUJQVJSQVlfU0laRShvbWFwX21jYnNwX2Nsa3MpCisjZWxzZQorI2RlZmluZSBvbWFwX21jYnNwX2Nsa3Nfc2l6ZQkwCitzdGF0aWMgc3RydWN0IG1jYnNwX2ludGVybmFsX2NsayBfX2luaXRkYXRhICpvbWFwX21jYnNwX2Nsa3M7CitzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9tY2JzcF9jbGtfaW5pdChzdHJ1Y3QgY2xrICpjbGspCit7IH0KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBvbWFwMl9tY2JzcDJfbXV4X3NldHVwKHZvaWQpCit7CisJb21hcF9jZmdfcmVnKFkxNV8yNFhYX01DQlNQMl9DTEtYKTsKKwlvbWFwX2NmZ19yZWcoUjE0XzI0WFhfTUNCU1AyX0ZTWCk7CisJb21hcF9jZmdfcmVnKFcxNV8yNFhYX01DQlNQMl9EUik7CisJb21hcF9jZmdfcmVnKFYxNV8yNFhYX01DQlNQMl9EWCk7CisJb21hcF9jZmdfcmVnKFYxNF8yNFhYX0dQSU8xMTcpOworCS8qCisJICogVE9ETzogTmVlZCB0byBhZGQgTVVYIHNldHRpbmdzIGZvciBPTUFQIDI0MzAgU0RQCisJICovCit9CisKK3N0YXRpYyB2b2lkIG9tYXAyX21jYnNwX3JlcXVlc3QodW5zaWduZWQgaW50IGlkKQoreworCWlmIChjcHVfaXNfb21hcDI0MjAoKSAmJiAoaWQgPT0gT01BUF9NQ0JTUDIpKQorCQlvbWFwMl9tY2JzcDJfbXV4X3NldHVwKCk7Cit9CisKK3N0YXRpYyBpbnQgb21hcDJfbWNic3BfY2hlY2sodW5zaWduZWQgaW50IGlkKQoreworCWlmIChpZCA+IE9NQVBfTUFYX01DQlNQX0NPVU5UIC0gMSkgeworCQlwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IE1jQlNQJWQgZG9lc24ndCBleGlzdFxuIiwgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3Bfb3BzIG9tYXAyX21jYnNwX29wcyA9IHsKKwkucmVxdWVzdAk9IG9tYXAyX21jYnNwX3JlcXVlc3QsCisJLmNoZWNrCQk9IG9tYXAyX21jYnNwX2NoZWNrLAorfTsKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAyNFhYCitzdGF0aWMgc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSBvbWFwMjR4eF9tY2JzcF9wZGF0YVtdID0geworCXsKKwkJLnZpcnRfYmFzZQk9IElPX0FERFJFU1MoT01BUDI0WFhfTUNCU1AxX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1RYLAorCQkucnhfaXJxCQk9IElOVF8yNFhYX01DQlNQMV9JUlFfUlgsCisJCS50eF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AxX0lSUV9UWCwKKwkJLm9wcwkJPSAmb21hcDJfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorCXsKKwkJLnZpcnRfYmFzZQk9IElPX0FERFJFU1MoT01BUDI0WFhfTUNCU1AyX0JBU0UpLAorCQkuZG1hX3J4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AyX1JYLAorCQkuZG1hX3R4X3N5bmMJPSBPTUFQMjRYWF9ETUFfTUNCU1AyX1RYLAorCQkucnhfaXJxCQk9IElOVF8yNFhYX01DQlNQMl9JUlFfUlgsCisJCS50eF9pcnEJCT0gSU5UXzI0WFhfTUNCU1AyX0lSUV9UWCwKKwkJLm9wcwkJPSAmb21hcDJfbWNic3Bfb3BzLAorCQkuY2xrX25hbWUJPSAibWNic3BfY2xrIiwKKwl9LAorfTsKKyNkZWZpbmUgT01BUDI0WFhfTUNCU1BfUERBVEFfU1oJCUFSUkFZX1NJWkUob21hcDI0eHhfbWNic3BfcGRhdGEpCisjZWxzZQorI2RlZmluZSBvbWFwMjR4eF9tY2JzcF9wZGF0YQkJTlVMTAorI2RlZmluZSBPTUFQMjRYWF9NQ0JTUF9QREFUQV9TWgkJMAorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMzRYWAorc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgb21hcDM0eHhfbWNic3BfcGRhdGFbXSA9IHsKKwl7CisJCS52aXJ0X2Jhc2UJPSBJT19BRERSRVNTKE9NQVAzNFhYX01DQlNQMV9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMV9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMV9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDFfSVJRX1JYLAorCQkudHhfaXJxCQk9IElOVF8yNFhYX01DQlNQMV9JUlFfVFgsCisJCS5vcHMJCT0gJm9tYXAyX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKKwl7CisJCS52aXJ0X2Jhc2UJPSBJT19BRERSRVNTKE9NQVAzNFhYX01DQlNQMl9CQVNFKSwKKwkJLmRtYV9yeF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMl9SWCwKKwkJLmRtYV90eF9zeW5jCT0gT01BUDI0WFhfRE1BX01DQlNQMl9UWCwKKwkJLnJ4X2lycQkJPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1JYLAorCQkudHhfaXJxCQk9IElOVF8yNFhYX01DQlNQMl9JUlFfVFgsCisJCS5vcHMJCT0gJm9tYXAyX21jYnNwX29wcywKKwkJLmNsa19uYW1lCT0gIm1jYnNwX2NsayIsCisJfSwKK307CisjZGVmaW5lIE9NQVAzNFhYX01DQlNQX1BEQVRBX1NaCQlBUlJBWV9TSVpFKG9tYXAzNHh4X21jYnNwX3BkYXRhKQorI2Vsc2UKKyNkZWZpbmUgb21hcDM0eHhfbWNic3BfcGRhdGEJCU5VTEwKKyNkZWZpbmUgT01BUDM0WFhfTUNCU1BfUERBVEFfU1oJCTAKKyNlbmRpZgorCitpbnQgX19pbml0IG9tYXAyX21jYnNwX2luaXQodm9pZCkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBvbWFwX21jYnNwX2Nsa3Nfc2l6ZTsgaSsrKSB7CisJCS8qIE9uY2Ugd2UgY2FsbCBjbGtfZ2V0IGluc2lkZSBpbml0LCB3ZSBkbyBub3QgcmVnaXN0ZXIgaXQgKi8KKwkJb21hcF9tY2JzcF9jbGtfaW5pdCgmb21hcF9tY2JzcF9jbGtzW2ldKTsKKwkJY2xrX3JlZ2lzdGVyKCZvbWFwX21jYnNwX2Nsa3NbaV0uY2xrKTsKKwl9CisKKwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCisJCW9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKG9tYXAyNHh4X21jYnNwX3BkYXRhLAorCQkJCQkJT01BUDI0WFhfTUNCU1BfUERBVEFfU1opOworCisJaWYgKGNwdV9pc19vbWFwMzR4eCgpKQorCQlvbWFwX21jYnNwX3JlZ2lzdGVyX2JvYXJkX2NmZyhvbWFwMzR4eF9tY2JzcF9wZGF0YSwKKwkJCQkJCU9NQVAzNFhYX01DQlNQX1BEQVRBX1NaKTsKKworCXJldHVybiBvbWFwX21jYnNwX2luaXQoKTsKK30KK2FyY2hfaW5pdGNhbGwob21hcDJfbWNic3BfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL21lbW9yeS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9tZW1vcnkuYwppbmRleCAxMjQ3OTA4Li43M2NhZGIyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL21lbW9yeS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbWVtb3J5LmMKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogCisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KICNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CiAKQEAgLTMyLDggKzMzLDggQEAKICNpbmNsdWRlICJtZW1vcnkuaCIKICNpbmNsdWRlICJzZHJjLmgiCiAKLXVuc2lnbmVkIGxvbmcgb21hcDJfc2RyY19iYXNlOwotdW5zaWduZWQgbG9uZyBvbWFwMl9zbXNfYmFzZTsKK3ZvaWQgX19pb21lbSAqb21hcDJfc2RyY19iYXNlOwordm9pZCBfX2lvbWVtICpvbWFwMl9zbXNfYmFzZTsKIAogc3RhdGljIHN0cnVjdCBtZW1vcnlfdGltaW5ncyBtZW1fdGltaW5nczsKIHN0YXRpYyB1MzIgY3Vycl9wZXJmX2xldmVsID0gQ09SRV9DTEtfU1JDX0RQTExfWDI7CkBAIC0xNTQsNiArMTU1LDEyIEBACiAJbWVtX3RpbWluZ3Muc2xvd19kbGxfY3RybCB8PSAoKDEgPDwgMSkgfCAoMyA8PCA4KSk7CiB9CiAKK3ZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzX21lbW9yeShzdHJ1Y3Qgb21hcF9nbG9iYWxzICpvbWFwMl9nbG9iYWxzKQoreworCW9tYXAyX3NkcmNfYmFzZSA9IG9tYXAyX2dsb2JhbHMtPnNkcmM7CisJb21hcDJfc21zX2Jhc2UgPSBvbWFwMl9nbG9iYWxzLT5zbXM7Cit9CisKIC8qIHR1cm4gb24gc21hcnQgaWRsZSBtb2RlcyBmb3IgU0RSQU0gc2NoZWR1bGVyIGFuZCBjb250cm9sbGVyICovCiB2b2lkIF9faW5pdCBvbWFwMl9pbml0X21lbW9yeSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tdXguYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvbXV4LmMKaW5kZXggOTMwNzcwMC4uOGY5OGIyMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9tdXguYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAyL211eC5jCkBAIC0yMzYsNyArMjM2LDcgQEAKIAl3YXJuID0gKG9yaWcgIT0gcmVnKTsKIAlpZiAoZGVidWcgfHwgd2FybikKIAkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkJIk1VWDogc2V0dXAgJXMgKDB4JTA4eCk6IDB4JTAyeCAtPiAweCUwMnhcbiIsCisJCQkiTVVYOiBzZXR1cCAlcyAoMHglcCk6IDB4JTA0eCAtPiAweCUwNHhcbiIsCiAJCQljZmctPm5hbWUsIG9tYXBfY3RybF9iYXNlX2dldCgpICsgY2ZnLT5tdXhfcmVnLAogCQkJb3JpZywgcmVnKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcG0uYyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcG0uYwppbmRleCBhYWQ3ODFkLi5kNmM5ZGU4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wbS5jCkBAIC01NywxMyArNTcsNiBAQAogCQlyZXR1cm47CiAJfQogCi0JLyoKLQkgKiBTaW5jZSBhbiBpbnRlcnJ1cHQgbWF5IHNldCB1cCBhIHRpbWVyLCB3ZSBkb24ndCB3YW50IHRvCi0JICogcmVwcm9ncmFtIHRoZSBoYXJkd2FyZSB0aW1lciB3aXRoIGludGVycnVwdHMgZW5hYmxlZC4KLQkgKiBSZS1lbmFibGUgaW50ZXJydXB0cyBvbmx5IGFmdGVyIHJldHVybmluZyBmcm9tIGlkbGUuCi0JICovCi0JdGltZXJfZHluX3JlcHJvZ3JhbSgpOwotCiAJb21hcDJfc3JhbV9pZGxlKCk7CiAJbG9jYWxfZmlxX2VuYWJsZSgpOwogCWxvY2FsX2lycV9lbmFibGUoKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24uaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS1jb21tb24uaAppbmRleCBjYWNiMzQwLi41NGMzMmY0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3ByY20tY29tbW9uLmgKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLWNvbW1vbi5oCkBAIC0zMiw2ICszMiw3IEBACiAKIAogLyogQ2hpcC1zcGVjaWZpYyBtb2R1bGUgb2Zmc2V0cyAqLworI2RlZmluZSBPTUFQMjRYWF9HUl9NT0QJCQkJCU9DUF9NT0QKICNkZWZpbmUgT01BUDI0WFhfRFNQX01PRAkJCQkweDgwMAogCiAjZGVmaW5lIE9NQVAyNDMwX01ETV9NT0QJCQkJMHhjMDAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvcHJjbS5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLmMKaW5kZXggYjEyZjQyMy4uZmQ5MmE4MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcmNtLmMKQEAgLTE2LDE2ICsxNiwyMSBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCi0jaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvY29tbW9uLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHJjbS5oPgogCisjaW5jbHVkZSAiY2xvY2suaCIKICNpbmNsdWRlICJwcm0uaCIKICNpbmNsdWRlICJwcm0tcmVnYml0cy0yNHh4LmgiCiAKLWV4dGVybiB2b2lkIG9tYXAyX2Nsa19wcmVwYXJlX2Zvcl9yZWJvb3Qodm9pZCk7CitzdGF0aWMgdm9pZCBfX2lvbWVtICpwcm1fYmFzZTsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKmNtX2Jhc2U7CiAKIHUzMiBvbWFwX3ByY21fZ2V0X3Jlc2V0X3NvdXJjZXModm9pZCkKIHsKKwkvKiBYWFggVGhpcyBwcmVzdW1hYmx5IG5lZWRzIG1vZGlmaWNhdGlvbiBmb3IgMzRYWCAqLwogCXJldHVybiBwcm1fcmVhZF9tb2RfcmVnKFdLVVBfTU9ELCBSTV9SU1RTVCkgJiAweDdmOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX3ByY21fZ2V0X3Jlc2V0X3NvdXJjZXMpOwpAQCAtMzMsMTEgKzM4LDkwIEBACiAvKiBSZXNldHMgY2xvY2sgcmF0ZXMgYW5kIHJlYm9vdHMgdGhlIHN5c3RlbS4gT25seSBjYWxsZWQgZnJvbSBzeXN0ZW0uaCAqLwogdm9pZCBvbWFwX3ByY21fYXJjaF9yZXNldChjaGFyIG1vZGUpCiB7Ci0JdTMyIHdrdXA7CisJczE2IHByY21fb2ZmczsKIAlvbWFwMl9jbGtfcHJlcGFyZV9mb3JfcmVib290KCk7CiAKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJd2t1cCA9IHBybV9yZWFkX21vZF9yZWcoV0tVUF9NT0QsIFJNX1JTVENUUkwpIHwgT01BUF9SU1RfRFBMTDM7Ci0JCXBybV93cml0ZV9tb2RfcmVnKHdrdXAsIFdLVVBfTU9ELCBSTV9SU1RDVFJMKTsKLQl9CisJaWYgKGNwdV9pc19vbWFwMjR4eCgpKQorCQlwcmNtX29mZnMgPSBXS1VQX01PRDsKKwllbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkKKwkJcHJjbV9vZmZzID0gT01BUDM0MzBfR1JfTU9EOworCWVsc2UKKwkJV0FSTl9PTigxKTsKKworCXBybV9zZXRfbW9kX3JlZ19iaXRzKE9NQVBfUlNUX0RQTEwzLCBwcmNtX29mZnMsIFJNX1JTVENUUkwpOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBfX29tYXBfcHJjbV9yZWFkKHZvaWQgX19pb21lbSAqYmFzZSwgczE2IG1vZHVsZSwgdTE2IHJlZykKK3sKKwlCVUdfT04oIWJhc2UpOworCXJldHVybiBfX3Jhd19yZWFkbChiYXNlICsgbW9kdWxlICsgcmVnKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIF9fb21hcF9wcmNtX3dyaXRlKHUzMiB2YWx1ZSwgdm9pZCBfX2lvbWVtICpiYXNlLAorCQkJCQkJczE2IG1vZHVsZSwgdTE2IHJlZykKK3sKKwlCVUdfT04oIWJhc2UpOworCV9fcmF3X3dyaXRlbCh2YWx1ZSwgYmFzZSArIG1vZHVsZSArIHJlZyk7Cit9CisKKy8qIFJlYWQgYSByZWdpc3RlciBpbiBhIFBSTSBtb2R1bGUgKi8KK3UzMiBwcm1fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHUxNiBpZHgpCit7CisJcmV0dXJuIF9fb21hcF9wcmNtX3JlYWQocHJtX2Jhc2UsIG1vZHVsZSwgaWR4KTsKK30KK0VYUE9SVF9TWU1CT0wocHJtX3JlYWRfbW9kX3JlZyk7CisKKy8qIFdyaXRlIGludG8gYSByZWdpc3RlciBpbiBhIFBSTSBtb2R1bGUgKi8KK3ZvaWQgcHJtX3dyaXRlX21vZF9yZWcodTMyIHZhbCwgczE2IG1vZHVsZSwgdTE2IGlkeCkKK3sKKwlfX29tYXBfcHJjbV93cml0ZSh2YWwsIHBybV9iYXNlLCBtb2R1bGUsIGlkeCk7Cit9CitFWFBPUlRfU1lNQk9MKHBybV93cml0ZV9tb2RfcmVnKTsKKworLyogUmVhZC1tb2RpZnktd3JpdGUgYSByZWdpc3RlciBpbiBhIFBSTSBtb2R1bGUuIENhbGxlciBtdXN0IGxvY2sgKi8KK3UzMiBwcm1fcm13X21vZF9yZWdfYml0cyh1MzIgbWFzaywgdTMyIGJpdHMsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCit7CisJdTMyIHY7CisKKwl2ID0gcHJtX3JlYWRfbW9kX3JlZyhtb2R1bGUsIGlkeCk7CisJdiAmPSB+bWFzazsKKwl2IHw9IGJpdHM7CisJcHJtX3dyaXRlX21vZF9yZWcodiwgbW9kdWxlLCBpZHgpOworCisJcmV0dXJuIHY7Cit9CitFWFBPUlRfU1lNQk9MKHBybV9ybXdfbW9kX3JlZ19iaXRzKTsKKworLyogUmVhZCBhIHJlZ2lzdGVyIGluIGEgQ00gbW9kdWxlICovCit1MzIgY21fcmVhZF9tb2RfcmVnKHMxNiBtb2R1bGUsIHUxNiBpZHgpCit7CisJcmV0dXJuIF9fb21hcF9wcmNtX3JlYWQoY21fYmFzZSwgbW9kdWxlLCBpZHgpOworfQorRVhQT1JUX1NZTUJPTChjbV9yZWFkX21vZF9yZWcpOworCisvKiBXcml0ZSBpbnRvIGEgcmVnaXN0ZXIgaW4gYSBDTSBtb2R1bGUgKi8KK3ZvaWQgY21fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCB1MTYgaWR4KQoreworCV9fb21hcF9wcmNtX3dyaXRlKHZhbCwgY21fYmFzZSwgbW9kdWxlLCBpZHgpOworfQorRVhQT1JUX1NZTUJPTChjbV93cml0ZV9tb2RfcmVnKTsKKworLyogUmVhZC1tb2RpZnktd3JpdGUgYSByZWdpc3RlciBpbiBhIENNIG1vZHVsZS4gQ2FsbGVyIG11c3QgbG9jayAqLwordTMyIGNtX3Jtd19tb2RfcmVnX2JpdHModTMyIG1hc2ssIHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KQoreworCXUzMiB2OworCisJdiA9IGNtX3JlYWRfbW9kX3JlZyhtb2R1bGUsIGlkeCk7CisJdiAmPSB+bWFzazsKKwl2IHw9IGJpdHM7CisJY21fd3JpdGVfbW9kX3JlZyh2LCBtb2R1bGUsIGlkeCk7CisKKwlyZXR1cm4gdjsKK30KK0VYUE9SVF9TWU1CT0woY21fcm13X21vZF9yZWdfYml0cyk7CisKK3ZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzX3ByY20oc3RydWN0IG9tYXBfZ2xvYmFscyAqb21hcDJfZ2xvYmFscykKK3sKKwlwcm1fYmFzZSA9IG9tYXAyX2dsb2JhbHMtPnBybTsKKwljbV9iYXNlID0gb21hcDJfZ2xvYmFscy0+Y207CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybS5oIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9wcm0uaAppbmRleCA2MThmODExLi5iYmY0MWZjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL3BybS5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvcHJtLmgKQEAgLTM4LDEzICszOCwyOSBAQAogICoKICAqLwogCisvKiBHbG9iYWwgMjR4eCByZWdpc3RlcnMgaW4gR1JfTU9EIChTYW1lIGFzIE9DUF9NT0QgZm9yIDI0eHgpICovCisjZGVmaW5lIE9NQVAyNFhYX1BSQ01fVk9MVENUUkxfT0ZGU0VUCQkweDAwNTAKKyNkZWZpbmUgT01BUDI0WFhfUFJDTV9DTEtDRkdfQ1RSTF9PRkZTRVQJMHgwMDgwCisKKy8qIDI0MnggR1JfTU9EIHJlZ2lzdGVycywgdXNlIHRoZXNlIG9ubHkgZm9yIGFzc2VtYmx5IGNvZGUgKi8KKyNkZWZpbmUgT01BUDI0MlhfUFJDTV9WT0xUQ1RSTAkJT01BUDI0MjBfUFJNX1JFR0FERFIoT01BUDI0WFhfR1JfTU9ELAlcCisJCQkJCQlPTUFQMjRYWF9QUkNNX1ZPTFRDVFJMX09GRlNFVCkKKyNkZWZpbmUgT01BUDI0MlhfUFJDTV9DTEtDRkdfQ1RSTAlPTUFQMjQyMF9QUk1fUkVHQUREUihPTUFQMjRYWF9HUl9NT0QsCVwKKwkJCQkJCU9NQVAyNFhYX1BSQ01fQ0xLQ0ZHX0NUUkxfT0ZGU0VUKQorCisvKiAyNDN4IEdSX01PRCByZWdpc3RlcnMsIHVzZSB0aGVzZSBvbmx5IGZvciBhc3NlbWJseSBjb2RlICovCisjZGVmaW5lIE9NQVAyNDNYX1BSQ01fVk9MVENUUkwJCU9NQVAyNDMwX1BSTV9SRUdBRERSKE9NQVAyNFhYX0dSX01PRCwJXAorCQkJCQkJT01BUDI0WFhfUFJDTV9WT0xUQ1RSTF9PRkZTRVQpCisjZGVmaW5lIE9NQVAyNDNYX1BSQ01fQ0xLQ0ZHX0NUUkwJT01BUDI0MzBfUFJNX1JFR0FERFIoT01BUDI0WFhfR1JfTU9ELAlcCisJCQkJCQlPTUFQMjRYWF9QUkNNX0NMS0NGR19DVFJMX09GRlNFVCkKKworLyogVGhlc2Ugd2lsbCBkaXNhcHBlYXIgKi8KICNkZWZpbmUgT01BUDI0WFhfUFJDTV9SRVZJU0lPTgkJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMDApCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fU1lTQ09ORklHCQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAxMCkKIAogI2RlZmluZSBPTUFQMjRYWF9QUkNNX0lSUVNUQVRVU19NUFUJT01BUF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDAwMTgpCiAjZGVmaW5lIE9NQVAyNFhYX1BSQ01fSVJRRU5BQkxFX01QVQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDAxYykKIAotI2RlZmluZSBPTUFQMjRYWF9QUkNNX1ZPTFRDVFJMCQlPTUFQX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4MDA1MCkKICNkZWZpbmUgT01BUDI0WFhfUFJDTV9WT0xUU1QJCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDU0KQogI2RlZmluZSBPTUFQMjRYWF9QUkNNX0NMS1NSQ19DVFJMCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDYwKQogI2RlZmluZSBPTUFQMjRYWF9QUkNNX0NMS09VVF9DVFJMCU9NQVBfUFJNX1JFR0FERFIoT0NQX01PRCwgMHgwMDcwKQpAQCAtMTUwLDE1ICsxNjYsMTkgQEAKICNpZm5kZWYgX19BU1NFTUJMRVJfXwogCiAvKiBQb3dlci9yZXNldCBtYW5hZ2VtZW50IGRvbWFpbiByZWdpc3RlciBnZXQvc2V0ICovCitleHRlcm4gdTMyIHBybV9yZWFkX21vZF9yZWcoczE2IG1vZHVsZSwgdTE2IGlkeCk7CitleHRlcm4gdm9pZCBwcm1fd3JpdGVfbW9kX3JlZyh1MzIgdmFsLCBzMTYgbW9kdWxlLCB1MTYgaWR4KTsKK2V4dGVybiB1MzIgcHJtX3Jtd19tb2RfcmVnX2JpdHModTMyIG1hc2ssIHUzMiBiaXRzLCBzMTYgbW9kdWxlLCBzMTYgaWR4KTsKIAotc3RhdGljIGlubGluZSB2b2lkIHBybV93cml0ZV9tb2RfcmVnKHUzMiB2YWwsIHMxNiBtb2R1bGUsIHMxNiBpZHgpCisvKiBSZWFkLW1vZGlmeS13cml0ZSBiaXRzIGluIGEgUFJNIHJlZ2lzdGVyIChieSBkb21haW4pICovCitzdGF0aWMgaW5saW5lIHUzMiBwcm1fc2V0X21vZF9yZWdfYml0cyh1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKIHsKLQlfX3Jhd193cml0ZWwodmFsLCBPTUFQX1BSTV9SRUdBRERSKG1vZHVsZSwgaWR4KSk7CisJcmV0dXJuIHBybV9ybXdfbW9kX3JlZ19iaXRzKGJpdHMsIGJpdHMsIG1vZHVsZSwgaWR4KTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgcHJtX3JlYWRfbW9kX3JlZyhzMTYgbW9kdWxlLCBzMTYgaWR4KQorc3RhdGljIGlubGluZSB1MzIgcHJtX2NsZWFyX21vZF9yZWdfYml0cyh1MzIgYml0cywgczE2IG1vZHVsZSwgczE2IGlkeCkKIHsKLQlyZXR1cm4gX19yYXdfcmVhZGwoT01BUF9QUk1fUkVHQUREUihtb2R1bGUsIGlkeCkpOworCXJldHVybiBwcm1fcm13X21vZF9yZWdfYml0cyhiaXRzLCAweDAsIG1vZHVsZSwgaWR4KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NkcmMuaCBiL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYy5oCmluZGV4IGQ3ZjIzYmMuLjFiMWZlNGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYy5oCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc2RyYy5oCkBAIC0xOCwxMyArMTgsMTEgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zZHJjLmg+CiAKICNpZm5kZWYgX19BU1NFTUJMRVJfXwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDJfc2RyY19iYXNlOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDJfc21zX2Jhc2U7CitleHRlcm4gdm9pZCBfX2lvbWVtICpvbWFwMl9zZHJjX2Jhc2U7CitleHRlcm4gdm9pZCBfX2lvbWVtICpvbWFwMl9zbXNfYmFzZTsKIAotI2RlZmluZSBPTUFQX1NEUkNfUkVHQUREUihyZWcpCQkJCQkJXAotCQkodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhvbWFwMl9zZHJjX2Jhc2UgKyAocmVnKSkKLSNkZWZpbmUgT01BUF9TTVNfUkVHQUREUihyZWcpCQkJCQkJXAotCQkodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhvbWFwMl9zbXNfYmFzZSArIChyZWcpKQorI2RlZmluZSBPTUFQX1NEUkNfUkVHQUREUihyZWcpCQkJKG9tYXAyX3NkcmNfYmFzZSArIChyZWcpKQorI2RlZmluZSBPTUFQX1NNU19SRUdBRERSKHJlZykJCQkob21hcDJfc21zX2Jhc2UgKyAocmVnKSkKIAogLyogU0RSQyBnbG9iYWwgcmVnaXN0ZXIgZ2V0L3NldCAqLwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0tZm4uUyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS1mbi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YTllNDkxLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbS1mbi5TCisrKyAvZGV2L251bGwKQEAgLTEsMzI0ICswLDAgQEAKLS8qCi0gKiBsaW51eC9hcmNoL2FybS9tYWNoLW9tYXAyL3NyYW0tZm4uUwotICoKLSAqIE9tYXAyIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDIwMDQKLSAqIFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KLSAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgL1BVUlBPU0UuIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAotICogTUEgMDIxMTEtMTMwNyBVU0EKLSAqLwotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KLSNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KLQotI2luY2x1ZGUgInNkcmMuaCIKLSNpbmNsdWRlICJwcm0uaCIKLSNpbmNsdWRlICJjbS5oIgotCi0jZGVmaW5lIFRJTUVSXzMyS1NZTkNUX0NSX1YJSU9fQUREUkVTUyhPTUFQMjQyMF8zMktTWU5DVF9CQVNFICsgMHgwMTApCi0KLQkudGV4dAotCi1FTlRSWShzcmFtX2Rkcl9pbml0KQotCXN0bWZkCXNwISwge3IwIC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCi0JbW92CXIxMiwgcjIJCQlAIGNhcHR1cmUgQ1MxIHZzIENTMAotCW1vdglyOCwgcjMJCQlAIGNhcHR1cmUgZm9yY2UgcGFyYW1ldGVyCi0KLQkvKiBmcmVxdWVuY3kgc2hpZnQgZG93biAqLwotCWxkcglyMiwgY21fY2xrc2VsMl9wbGwJQCBnZXQgYWRkcmVzcyBvZiBkcGxsb3V0IHJlZwotCW1vdglyMywgIzB4MQkJQCB2YWx1ZSBmb3IgMXggb3BlcmF0aW9uCi0Jc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwxLWZyZXEgb3BlcmF0aW9uCi0KLQkvKiB2b2x0YWdlIHNoaWZ0IGRvd24gKi8KLQltb3YgcjksICMweDEJCQlAIHNldCB1cCBmb3IgTDEgdm9sdGFnZSBjYWxsCi0JYmwgdm9sdGFnZV9zaGlmdAkJQCBnbyBkcm9wIHZvbHRhZ2UKLQotCS8qIGRsbCBsb2NrIG1vZGUgKi8KLQlsZHIJcjExLCBzZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCi0JbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCi0JY21wCXIxMiwgIzB4MQkJQCBjczEgYmFzZSAoMjQyMiBlczIuMDUvMSkKLQlhZGRlcQlyMTEsIHIxMSwgIzB4OAkJQCBpZiBjczEgYmFzZSwgbW92ZSB0byBETExCCi0JbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKLQlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZS4KLQlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCi0Jb3JyCXIxMCwgcjEwLCAjMHgyCQlAIDkwIGRlZ3JlZSBwaGFzZSBmb3IgYWxsIGJlbG93IDEzM01oegotCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKLQlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIGRsbCB0byBsb2NrCi0KLQkvKiBnZXQgZGxsIHZhbHVlICovCi0JYWRkCXIxMSwgcjExLCAjMHg0CQlAIGdldCBhZGRyIG9mIHN0YXR1cyByZWcKLQlsZHIJcjEwLCBbcjExXQkJQCBnZXQgbG9ja2VkIHZhbHVlCi0KLQkvKiB2b2x0YWdlIHNoaWZ0IHVwICovCi0JbW92IHI5LCAjMHgwCQkJQCBzaGlmdCBiYWNrIHRvIEwwLXZvbHRhZ2UKLQlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIHJhaXNlIHZvbHRhZ2UKLQotCS8qIGZyZXF1ZW5jeSBzaGlmdCB1cCAqLwotCW1vdglyMywgIzB4MgkJQCB2YWx1ZSBmb3IgMnggb3BlcmF0aW9uCi0Jc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwwLWZyZXEgb3BlcmF0aW9uCi0KLQkvKiByZXNldCBlbnRyeSBtb2RlIGZvciBkbGxjdHJsICovCi0Jc3ViCXIxMSwgcjExLCAjMHg0CQlAIG1vdmUgZnJvbSBzdGF0dXMgdG8gY3RybAotCWNtcAlyMTIsICMweDEJCUAgbm9ybWFsaXplIGlmIGNzMSBiYXNlZAotCXN1YmVxCXIxMSwgcjExLCAjMHg4CQlAIHBvc3NpYmx5IGJhY2sgdG8gRExMQQotCWNtcAlyOCwgIzB4MQkJQCBpZiBmb3JjZWQgdW5sb2NrIGV4aXQKLQlvcnJlcQlyMSwgcjEsICMweDQJCUAgbWFrZSBzdXJlIGV4aXQgd2l0aCB1bmxvY2tlZCB2YWx1ZQotCXN0cglyMSwgW3IxMV0JCUAgcmVzdG9yZSBETExBX0NUUkwgaGlnaCB2YWx1ZQotCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIERMTEJfQ1RSTCBhZGRyCi0Jc3RyCXIxLCBbcjExXQkJQCBzZXQgdmFsdWUgRExMQl9DVFJMCi0JYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBwb3NzaWJsZSBsb2NrCi0KLQkvKiBzZXQgdXAgZm9yIHJldHVybiwgRERSIHNob3VsZCBiZSBnb29kICovCi0Jc3RyIHIxMCwgW3IwXQkJCUAgd3JpdGUgZGxsX3N0YXR1cyBhbmQgcmV0dXJuIGNvdW50ZXIKLQlsZG1mZAlzcCEsIHtyMCAtIHIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLQotCS8qIGVuc3VyZSB0aGUgRExMIGhhcyByZWxvY2tlZCAqLwotaV9kbGxfd2FpdDoKLQltb3YJcjQsICMweDgwMAkJQCBkZWxheSBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCi1pX2RsbF9kZWxheToKLQlzdWJzCXI0LCByNCwgIzB4MQotCWJuZQlpX2RsbF9kZWxheQotCW1vdglwYywgbHIKLQotCS8qCi0JICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KLQkgKiB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgotCSAqLwotdm9sdGFnZV9zaGlmdDoKLQlsZHIJcjQsIHByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwuCi0JbGRyCXI1LCBbcjRdCQlAIGdldCB2YWx1ZS4KLQlsZHIJcjYsIHByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzawotCWFuZAlyNSwgcjUsIHI2CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cwotCW9ycglyNSwgcjUsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KLQlzdHIJcjUsIFtyNF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCi0JbW92CXIzLCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCi0Jb3JyCXI1LCByNSwgcjMJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCi0Jc3RyCXI1LCBbcjRdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKLQotCWxkcglyMywgdGltZXJfMzJrc3luY3RfY3IJQCBnZXQgYWRkciBvZiBjb3VudGVyCi0JbGRyCXI1LCBbcjNdCQlAIGdldCB2YWx1ZQotCWFkZAlyNSwgcjUsICMweDMJCUAgZ2l2ZSBpdCBhdCBtb3N0IDkzdVMKLXZvbHRfZGVsYXk6Ci0JbGRyCXI3LCBbcjNdCQlAIGdldCB0aW1lciB2YWx1ZQotCWNtcAlyNSwgcjcJCQlAIHRpbWUgdXA/Ci0JYmhpCXZvbHRfZGVsYXkJCUAgbm90IHlldC0+YnJhbmNoCi0JbW92CXBjLCBscgkJCUAgYmFjayB0byBjYWxsZXIuCi0KLS8qIHJlbGF0aXZlIGxvYWQgY29uc3RhbnRzICovCi1jbV9jbGtzZWwyX3BsbDoKLQkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCi1zZHJjX2RsbGFfY3RybDoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi1wcmNtX3ZvbHRjdHJsOgotCS53b3JkIE9NQVAyNDIwX1BSTV9SRUdBRERSKE9DUF9NT0QsIDB4NTApCi1wcmNtX21hc2tfdmFsOgotCS53b3JkIDB4RkZGRjNGRkMKLXRpbWVyXzMya3N5bmN0X2NyOgotCS53b3JkIFRJTUVSXzMyS1NZTkNUX0NSX1YKLUVOVFJZKHNyYW1fZGRyX2luaXRfc3opCi0JLndvcmQJLiAtIHNyYW1fZGRyX2luaXQKLQotLyoKLSAqIFJlcHJvZ3JhbXMgbWVtb3J5IHRpbWluZ3MuCi0gKiByMCA9IFtQUkNNX0ZVTEwgfCBQUkNNX0hBTEZdIHIxID0gU0RSQ19ETExBX0NUUkwgdmFsdWUgcjIgPSBbRERSIHwgU0RSXQotICogUFJDTV9GVUxMID0gMiwgUFJDTV9IQUxGID0gMSwgRERSID0gMSwgU0RSID0gMAotICovCi1FTlRSWShzcmFtX3JlcHJvZ3JhbV9zZHJjKQotCXN0bWZkCXNwISwge3IwIC0gcjEwLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCW1vdglyMywgIzB4MAkJQCBjbGVhciBmb3IgbXJjIGNhbGwKLQltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyLCBmaW5pc2ggQVJNIFNEUi9ERFIKLQlub3AKLQlub3AKLQlsZHIJcjYsIGRkcl9zZHJjX3Jmcl9jdHJsCUAgZ2V0IGFkZHIgb2YgcmVmcmVzaCByZWcKLQlsZHIJcjUsIFtyNl0JCUAgZ2V0IHZhbHVlCi0JbW92CXI1LCByNSwgbHNyICM4CQlAIGlzb2xhdGUgcmZyIGZpZWxkIGFuZCBkcm9wIGJ1cnN0Ci0KLQljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZD8KLQltb3ZuZQlyOSwgIzB4MAkJQCBpZiB1cCBzZXQgZmxhZyB1cCBmb3IgcHJlIHVwLCBoaSB2b2x0Ci0KLQlibG5lCXZvbHRhZ2Vfc2hpZnRfYwkJQCBhZGp1c3Qgdm9sdGFnZQotCi0JY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQgKHBvc3QgYnJhbmNoIGxpbmspCi0JbW92ZXEJcjUsIHI1LCBsc3IgIzEJCUAgZGl2aWRlIGJ5IDIgaWYgdG8gaGFsZgotCW1vdm5lCXI1LCByNSwgbHNsICMxCQlAIG11bHQgYnkgMiBpZiB0byBmdWxsCi0JbW92CXI1LCByNSwgbHNsICM4CQlAIHB1dCByZnIgZmllbGQgYmFjayBpbnRvIHBsYWNlCi0JYWRkCXI1LCByNSwgIzB4MQkJQCB0dXJuIG9uIGJ1cnN0IG9mIDEKLQlsZHIJcjQsIGRkcl9jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIG91dCByZWcKLQlsZHIJcjMsIFtyNF0JCUAgZ2V0IGN1cnIgdmFsdWUKLQlvcnIJcjMsIHIzLCAjMHgzCi0JYmljCXIzLCByMywgIzB4MwkJQCBjbGVhciBsb3dlciBiaXRzCi0Jb3JyCXIzLCByMywgcjAJCUAgbmV3IHN0YXRlIHZhbHVlCi0Jc3RyCXIzLCBbcjRdCQlAIHNldCBuZXcgc3RhdGUgKHBsbC94LCB4PTEgb3IgMikKLQlub3AKLQlub3AKLQotCW1vdmVxCXI5LCAjMHgxCQlAIGlmIHNwZWVkIGRvd24sIHBvc3QgZG93biwgZHJvcCB2b2x0Ci0JYmxlcQl2b2x0YWdlX3NoaWZ0X2MKLQotCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIKLQlzdHIJcjUsIFtyNl0JCUAgc2V0IG5ldyBSRlJfMSB2YWx1ZQotCWFkZAlyNiwgcjYsICMweDMwCQlAIGdldCBSRlJfMiBhZGRyCi0Jc3RyCXI1LCBbcjZdCQlAIHNldCBSRlJfMgotCW5vcAotCWNtcAlyMiwgIzB4MQkJQCAoU0RSIG9yIEREUikgZG8gd2UgbmVlZCB0byBhZGp1c3QgRExMCi0JYm5lCWZyZXFfb3V0CQlAIGxlYXZlIGlmIFNEUiwgbm8gRExMIGZ1bmN0aW9uCi0KLQkvKiBXaXRoIEREUiwgd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgdGhlIERMTCBmb3IgdGhlIGZyZXF1ZW5jeSBjaGFuZ2UgKi8KLQlsZHIJcjIsIGRkcl9zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCi0Jc3RyCXIxLCBbcjJdCQlAIHdyaXRlIG91dCBuZXcgU0RSQ19ETExBX0NUUkwKLQlhZGQJcjIsIHIyLCAjMHg4CQlAIGFkZHIgdG8gU0RSQ19ETExCX0NUUkwKLQlzdHIJcjEsIFtyMl0JCUAgY29tbWl0IHRvIFNEUkNfRExMQl9DVFJMCi0JbW92CXIxLCAjMHgyMDAwCQlAIHdhaXQgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcwotZGxsX3dhaXQ6Ci0Jc3VicwlyMSwgcjEsICMweDEKLQlibmUJZGxsX3dhaXQKLWZyZXFfb3V0OgotCWxkbWZkCXNwISwge3IwIC0gcjEwLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgotCi0gICAgLyoKLSAgICAgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgotICAgICAqCXdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCi0gICAgICovCi12b2x0YWdlX3NoaWZ0X2M6Ci0JbGRyCXIxMCwgZGRyX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwKLQlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQotCWxkcglyNywgZGRyX3ByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzawotCWFuZAlyOCwgcjgsIHI3CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cwotCW9ycglyOCwgcjgsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KLQlzdHIJcjgsIFtyMTBdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgotCW1vdglyNywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQotCW9ycglyOCwgcjgsIHI3CQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQotCXN0cglyOCwgW3IxMF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQotCi0JbGRyCXIxMCwgZGRyX3RpbWVyXzMya3N5bmN0CUAgZ2V0IGFkZHIgb2YgY291bnRlcgotCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCi0JYWRkCXI4LCByOCwgIzB4MgkJQCBnaXZlIGl0IGF0IG1vc3QgNjJ1UyAobWluIDMxKykKLXZvbHRfZGVsYXlfYzoKLQlsZHIJcjcsIFtyMTBdCQlAIGdldCB0aW1lciB2YWx1ZQotCWNtcAlyOCwgcjcJCQlAIHRpbWUgdXA/Ci0JYmhpCXZvbHRfZGVsYXlfYwkJQCBub3QgeWV0LT5icmFuY2gKLQltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlcgotCi1kZHJfY21fY2xrc2VsMl9wbGw6Ci0JLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQotZGRyX3NkcmNfZGxsYV9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKLWRkcl9zZHJjX3Jmcl9jdHJsOgotCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCi1kZHJfcHJjbV92b2x0Y3RybDoKLQkud29yZCBPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDUwKQotZGRyX3ByY21fbWFza192YWw6Ci0JLndvcmQgMHhGRkZGM0ZGQwotZGRyX3RpbWVyXzMya3N5bmN0OgotCS53b3JkIFRJTUVSXzMyS1NZTkNUX0NSX1YKLQotRU5UUlkoc3JhbV9yZXByb2dyYW1fc2RyY19zeikKLQkud29yZAkuIC0gc3JhbV9yZXByb2dyYW1fc2RyYwotCi0vKgotICogU2V0IGRpdmlkZXJzIGFuZCBwbGwuIEFsc28gcmVjYWxjdWxhdGUgRExMIHZhbHVlIGZvciBERFIgYW5kIHVubG9jayBtb2RlLgotICovCi1FTlRSWShzcmFtX3NldF9wcmNtKQotCXN0bWZkCXNwISwge3IwLXIxMiwgbHJ9CUAgcmVncyB0byBzdGFjawotCWFkcglyNCwgcGJlZ2luCQlAIGFkZHIgb2YgcHJlbG9hZCBzdGFydAotCWFkcglyOCwgcGVuZAkJQCBhZGRyIG9mIHByZWxvYWQgZW5kCi0JbWNycglwMTUsIDEsIHI4LCByNCwgYzEyCUAgcHJlbG9hZCBpbnRvIGljYWNoZQotcGJlZ2luOgotCS8qIG1vdmUgaW50byBmYXN0IHJlbG9jayBieXBhc3MgKi8KLQlsZHIJcjgsIHBsbF9jdGwJCUAgZ2V0IGFkZHIKLQlsZHIJcjUsIFtyOF0JCUAgZ2V0IHZhbAotCW12bglyNiwgIzB4MwkJQCBjbGVhciBtYXNrCi0JYW5kCXI1LCByNSwgcjYJCUAgY2xlYXIgZmllbGQKLQlvcnIJcjcsIHI1LCAjMHgyCQlAIGZhc3QgcmVsb2NrIHZhbAotCXN0cglyNywgW3I4XQkJQCBnbyB0byBmYXN0IHJlbG9jawotCWxkcglyNCwgcGxsX3N0YXQJCUAgYWRkciBvZiBzdGF0Ci1ibG9jazoKLQkvKiB3YWl0IGZvciBieXBhc3MgKi8KLQlsZHIJcjgsIFtyNF0JCUAgc3RhdCB2YWx1ZQotCWFuZAlyOCwgcjgsICMweDMJCUAgbWFzayBmb3Igc3RhdAotCWNtcAlyOCwgIzB4MQkJQCB0aGVyZSB5ZXQKLQlibmUJYmxvY2sJCQlAIGxvb3AgaWYgbm90Ci0KLQkvKiBzZXQgbmV3IGRwbGwgZGl2aWRlcnMgX2FmdGVyXyBpbiBieXBhc3MgKi8KLQlsZHIJcjQsIHBsbF9kaXYJCUAgZ2V0IGFkZHIKLQlzdHIJcjAsIFtyNF0JCUAgc2V0IGRwbGwgY3RybCB2YWwKLQotCWxkcglyNCwgc2V0X2NvbmZpZwkJQCBnZXQgYWRkcgotCW1vdglyOCwgIzEJCQlAIHZhbGlkIGNmZyBtc2sKLQlzdHIJcjgsIFtyNF0JCUAgbWFrZSBkaXZpZGVycyB0YWtlCi0KLQltb3YJcjQsICMxMDAJCUAgZGVhZCBzcGluIGEgYml0Ci13YWl0X2FfYml0OgotCXN1YnMJcjQsIHI0LCAjMQkJQCBkZWMgbG9vcAotCWJuZQl3YWl0X2FfYml0CQlAIGRlbGF5IGRvbmU/Ci0KLQkvKiBjaGVjayBpZiBzdGF5aW5nIGluIGJ5cGFzcyAqLwotCWNtcAlyMiwgIzB4MQkJQCBzdGF5IGluIGJ5cGFzcz8KLQliZXEJcGVuZAkJCUAganVtcCBvdmVyIGRwbGwgcmVsb2NrCi0KLQkvKiByZWxvY2sgRFBMTCB3aXRoIG5ldyB2YWxzICovCi0JbGRyCXI1LCBwbGxfc3RhdAkJQCBnZXQgYWRkcgotCWxkcglyNCwgcGxsX2N0bAkJQCBnZXQgYWRkcgotCW9ycglyOCwgcjcsICMweDMJCUAgdmFsIGZvciBsb2NrIGRwbGwKLQlzdHIJcjgsIFtyNF0JCUAgc2V0IHZhbAotCW1vdglyMCwgIzEwMDAJCUAgZGVhZCBzcGluIGEgYml0Ci13YWl0X21vcmU6Ci0Jc3VicwlyMCwgcjAsICMxCQlAIGRlYyBsb29wCi0JYm5lCXdhaXRfbW9yZQkJQCBkZWxheSBkb25lPwotd2FpdF9sb2NrOgotCWxkcglyOCwgW3I1XQkJQCBnZXQgbG9jayB2YWwKLQlhbmQJcjgsIHI4LCAjMwkJQCBpc29sYXRlIGZpZWxkCi0JY21wCXI4LCAjMgkJCUAgbG9ja2VkPwotCWJuZQl3YWl0X2xvY2sJCUAgd2FpdCBpZiBub3QKLXBlbmQ6Ci0JLyogdXBkYXRlIG1lbW9yeSB0aW1pbmdzICYgYnJpZWZseSBsb2NrIGRsbCAqLwotCWxkcglyNCwgc2RyY19yZnIJCUAgZ2V0IGFkZHIKLQlzdHIJcjEsIFtyNF0JCUAgdXBkYXRlIHJlZnJlc2ggdGltaW5nCi0JbGRyCXIxMSwgZGxsYV9jdHJsCQlAIGdldCBhZGRyIG9mIERMTEEgY3RybAotCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAotCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCi0JYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUKLQlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCi0Jc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAotCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIGRsbGIKLQlzdHIJcjEwLCBbcjExXQkJQCBoaXQgRExMQiBhbHNvCi0KLQltb3YJcjQsICMweDgwMAkJQCByZWxvY2sgdGltZSAobWluIDB4NDAwIEwzIGNsb2NrcykKLXdhaXRfZGxsX2xvY2s6Ci0Jc3VicwlyNCwgcjQsICMweDEKLQlibmUJd2FpdF9kbGxfbG9jawotCW5vcAotCWxkbWZkCXNwISwge3IwLXIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLQotc2V0X2NvbmZpZzoKLQkud29yZCBPTUFQMjQyMF9QUk1fUkVHQUREUihPQ1BfTU9ELCAweDgwKQotcGxsX2N0bDoKLQkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0ZDTEtFTjEpCi1wbGxfc3RhdDoKLQkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVDEpCi1wbGxfZGl2OgotCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMKQotc2RyY19yZnI6Ci0JLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKLWRsbGFfY3RybDoKLQkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCi0KLUVOVFJZKHNyYW1fc2V0X3ByY21fc3opCi0JLndvcmQJLiAtIHNyYW1fc2V0X3ByY20KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0MnguUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzI3NDUxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCkBAIC0wLDAgKzEsMzIxIEBACisvKgorICogbGludXgvYXJjaC9hcm0vbWFjaC1vbWFwMi9zcmFtMjQyeC5TCisgKgorICogT21hcDIgc3BlY2lmaWMgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBiZSBydW4gaW4gaW50ZXJuYWwgU1JBTQorICoKKyAqIChDKSBDb3B5cmlnaHQgMjAwNAorICogVGV4YXMgSW5zdHJ1bWVudHMsIDx3d3cudGkuY29tPgorICogUmljaGFyZCBXb29kcnVmZiA8ci13b29kcnVmZjJAdGkuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiAvUFVSUE9TRS4gU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQorICovCisjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgorI2luY2x1ZGUgPGFzbS9hc3NlbWJsZXIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pby5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSAicHJtLmgiCisjaW5jbHVkZSAiY20uaCIKKyNpbmNsdWRlICJzZHJjLmgiCisKKwkudGV4dAorCitFTlRSWShvbWFwMjQyeF9zcmFtX2Rkcl9pbml0KQorCXN0bWZkCXNwISwge3IwIC0gcjEyLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjaworCisJbW92CXIxMiwgcjIJCQlAIGNhcHR1cmUgQ1MxIHZzIENTMAorCW1vdglyOCwgcjMJCQlAIGNhcHR1cmUgZm9yY2UgcGFyYW1ldGVyCisKKwkvKiBmcmVxdWVuY3kgc2hpZnQgZG93biAqLworCWxkcglyMiwgb21hcDI0Mnhfc2RpX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2YgZHBsbG91dCByZWcKKwltb3YJcjMsICMweDEJCUAgdmFsdWUgZm9yIDF4IG9wZXJhdGlvbgorCXN0cglyMywgW3IyXQkJQCBnbyB0byBMMS1mcmVxIG9wZXJhdGlvbgorCisJLyogdm9sdGFnZSBzaGlmdCBkb3duICovCisJbW92IHI5LCAjMHgxCQkJQCBzZXQgdXAgZm9yIEwxIHZvbHRhZ2UgY2FsbAorCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gZHJvcCB2b2x0YWdlCisKKwkvKiBkbGwgbG9jayBtb2RlICovCisJbGRyCXIxMSwgb21hcDI0Mnhfc2RpX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKKwljbXAJcjEyLCAjMHgxCQlAIGNzMSBiYXNlICgyNDIyIGVzMi4wNS8xKQorCWFkZGVxCXIxMSwgcjExLCAjMHg4CQlAIGlmIGNzMSBiYXNlLCBtb3ZlIHRvIERMTEIKKwltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgorCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlLgorCW9ycglyMTAsIHIxMCwgIzB4OAkJQCBtYWtlIHN1cmUgRExMIG9uIChlczIgYml0IHBvcykKKwlvcnIJcjEwLCByMTAsICMweDIJCUAgOTAgZGVncmVlIHBoYXNlIGZvciBhbGwgYmVsb3cgMTMzTWh6CisJc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAorCWJsCWlfZGxsX3dhaXQJCUAgd2FpdCBmb3IgZGxsIHRvIGxvY2sKKworCS8qIGdldCBkbGwgdmFsdWUgKi8KKwlhZGQJcjExLCByMTEsICMweDQJCUAgZ2V0IGFkZHIgb2Ygc3RhdHVzIHJlZworCWxkcglyMTAsIFtyMTFdCQlAIGdldCBsb2NrZWQgdmFsdWUKKworCS8qIHZvbHRhZ2Ugc2hpZnQgdXAgKi8KKwltb3YgcjksICMweDAJCQlAIHNoaWZ0IGJhY2sgdG8gTDAtdm9sdGFnZQorCWJsIHZvbHRhZ2Vfc2hpZnQJCUAgZ28gcmFpc2Ugdm9sdGFnZQorCisJLyogZnJlcXVlbmN5IHNoaWZ0IHVwICovCisJbW92CXIzLCAjMHgyCQlAIHZhbHVlIGZvciAyeCBvcGVyYXRpb24KKwlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDAtZnJlcSBvcGVyYXRpb24KKworCS8qIHJlc2V0IGVudHJ5IG1vZGUgZm9yIGRsbGN0cmwgKi8KKwlzdWIJcjExLCByMTEsICMweDQJCUAgbW92ZSBmcm9tIHN0YXR1cyB0byBjdHJsCisJY21wCXIxMiwgIzB4MQkJQCBub3JtYWxpemUgaWYgY3MxIGJhc2VkCisJc3ViZXEJcjExLCByMTEsICMweDgJCUAgcG9zc2libHkgYmFjayB0byBETExBCisJY21wCXI4LCAjMHgxCQlAIGlmIGZvcmNlZCB1bmxvY2sgZXhpdAorCW9ycmVxCXIxLCByMSwgIzB4NAkJQCBtYWtlIHN1cmUgZXhpdCB3aXRoIHVubG9ja2VkIHZhbHVlCisJc3RyCXIxLCBbcjExXQkJQCByZXN0b3JlIERMTEFfQ1RSTCBoaWdoIHZhbHVlCisJYWRkCXIxMSwgcjExLCAjMHg4CQlAIG1vdmUgdG8gRExMQl9DVFJMIGFkZHIKKwlzdHIJcjEsIFtyMTFdCQlAIHNldCB2YWx1ZSBETExCX0NUUkwKKwlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIHBvc3NpYmxlIGxvY2sKKworCS8qIHNldCB1cCBmb3IgcmV0dXJuLCBERFIgc2hvdWxkIGJlIGdvb2QgKi8KKwlzdHIgcjEwLCBbcjBdCQkJQCB3cml0ZSBkbGxfc3RhdHVzIGFuZCByZXR1cm4gY291bnRlcgorCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCisJLyogZW5zdXJlIHRoZSBETEwgaGFzIHJlbG9ja2VkICovCitpX2RsbF93YWl0OgorCW1vdglyNCwgIzB4ODAwCQlAIGRlbGF5IERMTCByZWxvY2ssIG1pbiAweDQwMCBMMyBjbG9ja3MKK2lfZGxsX2RlbGF5OgorCXN1YnMJcjQsIHI0LCAjMHgxCisJYm5lCWlfZGxsX2RlbGF5CisJbW92CXBjLCBscgorCisJLyoKKwkgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgorCSAqIHdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCisJICovCit2b2x0YWdlX3NoaWZ0OgorCWxkcglyNCwgb21hcDI0Mnhfc2RpX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwuCisJbGRyCXI1LCBbcjRdCQlAIGdldCB2YWx1ZS4KKwlsZHIJcjYsIHByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzaworCWFuZAlyNSwgcjUsIHI2CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cworCW9ycglyNSwgcjUsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KKwlzdHIJcjUsIFtyNF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCisJbW92CXIzLCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCisJb3JyCXI1LCByNSwgcjMJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCisJc3RyCXI1LCBbcjRdCQlAIEZvcmNlIHRyYW5zaXRpb24gdG8gTDEKKworCWxkcglyMywgb21hcDI0Mnhfc2RpX3RpbWVyXzMya3N5bmN0X2NyCUAgZ2V0IGFkZHIgb2YgY291bnRlcgorCWxkcglyNSwgW3IzXQkJQCBnZXQgdmFsdWUKKwlhZGQJcjUsIHI1LCAjMHgzCQlAIGdpdmUgaXQgYXQgbW9zdCA5M3VTCit2b2x0X2RlbGF5OgorCWxkcglyNywgW3IzXQkJQCBnZXQgdGltZXIgdmFsdWUKKwljbXAJcjUsIHI3CQkJQCB0aW1lIHVwPworCWJoaQl2b2x0X2RlbGF5CQlAIG5vdCB5ZXQtPmJyYW5jaAorCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyLgorCitvbWFwMjQyeF9zZGlfY21fY2xrc2VsMl9wbGw6CisJLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQorb21hcDI0Mnhfc2RpX3NkcmNfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDJYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKK29tYXAyNDJ4X3NkaV9wcmNtX3ZvbHRjdHJsOgorCS53b3JkIE9NQVAyNDJYX1BSQ01fVk9MVENUUkwKK3ByY21fbWFza192YWw6CisJLndvcmQgMHhGRkZGM0ZGQworb21hcDI0Mnhfc2RpX3RpbWVyXzMya3N5bmN0X2NyOgorCS53b3JkIElPX0FERFJFU1MoT01BUDJfMzJLU1lOQ1RfQkFTRSArIDB4MDEwKQorRU5UUlkob21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zeikKKwkud29yZAkuIC0gb21hcDI0Mnhfc3JhbV9kZHJfaW5pdAorCisvKgorICogUmVwcm9ncmFtcyBtZW1vcnkgdGltaW5ncy4KKyAqIHIwID0gW1BSQ01fRlVMTCB8IFBSQ01fSEFMRl0gcjEgPSBTRFJDX0RMTEFfQ1RSTCB2YWx1ZSByMiA9IFtERFIgfCBTRFJdCisgKiBQUkNNX0ZVTEwgPSAyLCBQUkNNX0hBTEYgPSAxLCBERFIgPSAxLCBTRFIgPSAwCisgKi8KK0VOVFJZKG9tYXAyNDJ4X3NyYW1fcmVwcm9ncmFtX3NkcmMpCisJc3RtZmQJc3AhLCB7cjAgLSByMTAsIGxyfQlAIHNhdmUgcmVnaXN0ZXJzIG9uIHN0YWNrCisJbW92CXIzLCAjMHgwCQlAIGNsZWFyIGZvciBtcmMgY2FsbAorCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIsIGZpbmlzaCBBUk0gU0RSL0REUgorCW5vcAorCW5vcAorCWxkcglyNiwgb21hcDI0Mnhfc3JzX3NkcmNfcmZyX2N0cmwJQCBnZXQgYWRkciBvZiByZWZyZXNoIHJlZworCWxkcglyNSwgW3I2XQkJQCBnZXQgdmFsdWUKKwltb3YJcjUsIHI1LCBsc3IgIzgJCUAgaXNvbGF0ZSByZnIgZmllbGQgYW5kIGRyb3AgYnVyc3QKKworCWNtcAlyMCwgIzB4MQkJQCBnb2luZyB0byBoYWxmIHNwZWVkPworCW1vdm5lCXI5LCAjMHgwCQlAIGlmIHVwIHNldCBmbGFnIHVwIGZvciBwcmUgdXAsIGhpIHZvbHQKKworCWJsbmUJdm9sdGFnZV9zaGlmdF9jCQlAIGFkanVzdCB2b2x0YWdlCisKKwljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZCAocG9zdCBicmFuY2ggbGluaykKKwltb3ZlcQlyNSwgcjUsIGxzciAjMQkJQCBkaXZpZGUgYnkgMiBpZiB0byBoYWxmCisJbW92bmUJcjUsIHI1LCBsc2wgIzEJCUAgbXVsdCBieSAyIGlmIHRvIGZ1bGwKKwltb3YJcjUsIHI1LCBsc2wgIzgJCUAgcHV0IHJmciBmaWVsZCBiYWNrIGludG8gcGxhY2UKKwlhZGQJcjUsIHI1LCAjMHgxCQlAIHR1cm4gb24gYnVyc3Qgb2YgMQorCWxkcglyNCwgb21hcDI0Mnhfc3JzX2NtX2Nsa3NlbDJfcGxsCUAgZ2V0IGFkZHJlc3Mgb2Ygb3V0IHJlZworCWxkcglyMywgW3I0XQkJQCBnZXQgY3VyciB2YWx1ZQorCW9ycglyMywgcjMsICMweDMKKwliaWMJcjMsIHIzLCAjMHgzCQlAIGNsZWFyIGxvd2VyIGJpdHMKKwlvcnIJcjMsIHIzLCByMAkJQCBuZXcgc3RhdGUgdmFsdWUKKwlzdHIJcjMsIFtyNF0JCUAgc2V0IG5ldyBzdGF0ZSAocGxsL3gsIHg9MSBvciAyKQorCW5vcAorCW5vcAorCisJbW92ZXEJcjksICMweDEJCUAgaWYgc3BlZWQgZG93biwgcG9zdCBkb3duLCBkcm9wIHZvbHQKKwlibGVxCXZvbHRhZ2Vfc2hpZnRfYworCisJbWNyCXAxNSwgMCwgcjMsIGM3LCBjMTAsIDQJQCBtZW1vcnkgYmFycmllcgorCXN0cglyNSwgW3I2XQkJQCBzZXQgbmV3IFJGUl8xIHZhbHVlCisJYWRkCXI2LCByNiwgIzB4MzAJCUAgZ2V0IFJGUl8yIGFkZHIKKwlzdHIJcjUsIFtyNl0JCUAgc2V0IFJGUl8yCisJbm9wCisJY21wCXIyLCAjMHgxCQlAIChTRFIgb3IgRERSKSBkbyB3ZSBuZWVkIHRvIGFkanVzdCBETEwKKwlibmUJZnJlcV9vdXQJCUAgbGVhdmUgaWYgU0RSLCBubyBETEwgZnVuY3Rpb24KKworCS8qIFdpdGggRERSLCB3ZSBuZWVkIHRvIHRha2UgY2FyZSBvZiB0aGUgRExMIGZvciB0aGUgZnJlcXVlbmN5IGNoYW5nZSAqLworCWxkcglyMiwgb21hcDI0Mnhfc3JzX3NkcmNfZGxsYV9jdHJsCUAgYWRkciBvZiBkbGxhIGN0cmwKKwlzdHIJcjEsIFtyMl0JCUAgd3JpdGUgb3V0IG5ldyBTRFJDX0RMTEFfQ1RSTAorCWFkZAlyMiwgcjIsICMweDgJCUAgYWRkciB0byBTRFJDX0RMTEJfQ1RSTAorCXN0cglyMSwgW3IyXQkJQCBjb21taXQgdG8gU0RSQ19ETExCX0NUUkwKKwltb3YJcjEsICMweDIwMDAJCUAgd2FpdCBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCitkbGxfd2FpdDoKKwlzdWJzCXIxLCByMSwgIzB4MQorCWJuZQlkbGxfd2FpdAorZnJlcV9vdXQ6CisJbGRtZmQJc3AhLCB7cjAgLSByMTAsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKKyAgICAvKgorICAgICAqIHNoaWZ0IHVwIG9yIGRvd24gdm9sdGFnZSwgdXNlIFI5IGFzIGlucHV0IHRvIHRlbGwgbGV2ZWwuCisgICAgICoJd2FpdCBmb3IgaXQgdG8gZmluaXNoLCB1c2UgMzJrIHN5bmMgY291bnRlciwgMXRpY2s9MzF1Uy4KKyAgICAgKi8KK3ZvbHRhZ2Vfc2hpZnRfYzoKKwlsZHIJcjEwLCBvbWFwMjQyeF9zcnNfcHJjbV92b2x0Y3RybAlAIGdldCBhZGRyIG9mIHZvbHQgY3RybAorCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCisJbGRyCXI3LCBkZHJfcHJjbV9tYXNrX3ZhbAlAIGdldCB2YWx1ZSBvZiBtYXNrCisJYW5kCXI4LCByOCwgcjcJCUAgYXBwbHkgbWFzayB0byBjbGVhciBiaXRzCisJb3JyCXI4LCByOCwgcjkJCUAgYnVsbGQgdmFsdWUgZm9yIEwwL0wxLXZvbHQgb3BlcmF0aW9uLgorCXN0cglyOCwgW3IxMF0JCUAgc2V0IHVwIGZvciBjaGFuZ2UuCisJbW92CXI3LCAjMHg0MDAwCQlAIGdldCB2YWwgZm9yIGZvcmNlCisJb3JyCXI4LCByOCwgcjcJCUAgYnVpbGQgdmFsdWUgZm9yIGZvcmNlCisJc3RyCXI4LCBbcjEwXQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCisKKwlsZHIJcjEwLCBvbWFwMjQyeF9zcnNfdGltZXJfMzJrc3luY3QJQCBnZXQgYWRkciBvZiBjb3VudGVyCisJbGRyCXI4LCBbcjEwXQkJQCBnZXQgdmFsdWUKKwlhZGQJcjgsIHI4LCAjMHgyCQlAIGdpdmUgaXQgYXQgbW9zdCA2MnVTIChtaW4gMzErKQordm9sdF9kZWxheV9jOgorCWxkcglyNywgW3IxMF0JCUAgZ2V0IHRpbWVyIHZhbHVlCisJY21wCXI4LCByNwkJCUAgdGltZSB1cD8KKwliaGkJdm9sdF9kZWxheV9jCQlAIG5vdCB5ZXQtPmJyYW5jaAorCW1vdglwYywgbHIJCQlAIGJhY2sgdG8gY2FsbGVyCisKK29tYXAyNDJ4X3Nyc19jbV9jbGtzZWwyX3BsbDoKKwkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDIpCitvbWFwMjQyeF9zcnNfc2RyY19kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorb21hcDI0Mnhfc3JzX3NkcmNfcmZyX2N0cmw6CisJLndvcmQgT01BUDI0MlhfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKK29tYXAyNDJ4X3Nyc19wcmNtX3ZvbHRjdHJsOgorCS53b3JkIE9NQVAyNDJYX1BSQ01fVk9MVENUUkwKK2Rkcl9wcmNtX21hc2tfdmFsOgorCS53b3JkIDB4RkZGRjNGRkMKK29tYXAyNDJ4X3Nyc190aW1lcl8zMmtzeW5jdDoKKwkud29yZCBJT19BRERSRVNTKE9NQVAyXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKKworRU5UUlkob21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyY19zeikKKwkud29yZAkuIC0gb21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyYworCisvKgorICogU2V0IGRpdmlkZXJzIGFuZCBwbGwuIEFsc28gcmVjYWxjdWxhdGUgRExMIHZhbHVlIGZvciBERFIgYW5kIHVubG9jayBtb2RlLgorICovCitFTlRSWShvbWFwMjQyeF9zcmFtX3NldF9wcmNtKQorCXN0bWZkCXNwISwge3IwLXIxMiwgbHJ9CUAgcmVncyB0byBzdGFjaworCWFkcglyNCwgcGJlZ2luCQlAIGFkZHIgb2YgcHJlbG9hZCBzdGFydAorCWFkcglyOCwgcGVuZAkJQCBhZGRyIG9mIHByZWxvYWQgZW5kCisJbWNycglwMTUsIDEsIHI4LCByNCwgYzEyCUAgcHJlbG9hZCBpbnRvIGljYWNoZQorcGJlZ2luOgorCS8qIG1vdmUgaW50byBmYXN0IHJlbG9jayBieXBhc3MgKi8KKwlsZHIJcjgsIG9tYXAyNDJ4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKKwlsZHIJcjUsIFtyOF0JCUAgZ2V0IHZhbAorCW12bglyNiwgIzB4MwkJQCBjbGVhciBtYXNrCisJYW5kCXI1LCByNSwgcjYJCUAgY2xlYXIgZmllbGQKKwlvcnIJcjcsIHI1LCAjMHgyCQlAIGZhc3QgcmVsb2NrIHZhbAorCXN0cglyNywgW3I4XQkJQCBnbyB0byBmYXN0IHJlbG9jaworCWxkcglyNCwgb21hcDI0Mnhfc3NwX3BsbF9zdGF0CUAgYWRkciBvZiBzdGF0CitibG9jazoKKwkvKiB3YWl0IGZvciBieXBhc3MgKi8KKwlsZHIJcjgsIFtyNF0JCUAgc3RhdCB2YWx1ZQorCWFuZAlyOCwgcjgsICMweDMJCUAgbWFzayBmb3Igc3RhdAorCWNtcAlyOCwgIzB4MQkJQCB0aGVyZSB5ZXQKKwlibmUJYmxvY2sJCQlAIGxvb3AgaWYgbm90CisKKwkvKiBzZXQgbmV3IGRwbGwgZGl2aWRlcnMgX2FmdGVyXyBpbiBieXBhc3MgKi8KKwlsZHIJcjQsIG9tYXAyNDJ4X3NzcF9wbGxfZGl2CUAgZ2V0IGFkZHIKKwlzdHIJcjAsIFtyNF0JCUAgc2V0IGRwbGwgY3RybCB2YWwKKworCWxkcglyNCwgb21hcDI0Mnhfc3NwX3NldF9jb25maWcJQCBnZXQgYWRkcgorCW1vdglyOCwgIzEJCQlAIHZhbGlkIGNmZyBtc2sKKwlzdHIJcjgsIFtyNF0JCUAgbWFrZSBkaXZpZGVycyB0YWtlCisKKwltb3YJcjQsICMxMDAJCUAgZGVhZCBzcGluIGEgYml0Cit3YWl0X2FfYml0OgorCXN1YnMJcjQsIHI0LCAjMQkJQCBkZWMgbG9vcAorCWJuZQl3YWl0X2FfYml0CQlAIGRlbGF5IGRvbmU/CisKKwkvKiBjaGVjayBpZiBzdGF5aW5nIGluIGJ5cGFzcyAqLworCWNtcAlyMiwgIzB4MQkJQCBzdGF5IGluIGJ5cGFzcz8KKwliZXEJcGVuZAkJCUAganVtcCBvdmVyIGRwbGwgcmVsb2NrCisKKwkvKiByZWxvY2sgRFBMTCB3aXRoIG5ldyB2YWxzICovCisJbGRyCXI1LCBvbWFwMjQyeF9zc3BfcGxsX3N0YXQJQCBnZXQgYWRkcgorCWxkcglyNCwgb21hcDI0Mnhfc3NwX3BsbF9jdGwJQCBnZXQgYWRkcgorCW9ycglyOCwgcjcsICMweDMJCUAgdmFsIGZvciBsb2NrIGRwbGwKKwlzdHIJcjgsIFtyNF0JCUAgc2V0IHZhbAorCW1vdglyMCwgIzEwMDAJCUAgZGVhZCBzcGluIGEgYml0Cit3YWl0X21vcmU6CisJc3VicwlyMCwgcjAsICMxCQlAIGRlYyBsb29wCisJYm5lCXdhaXRfbW9yZQkJQCBkZWxheSBkb25lPword2FpdF9sb2NrOgorCWxkcglyOCwgW3I1XQkJQCBnZXQgbG9jayB2YWwKKwlhbmQJcjgsIHI4LCAjMwkJQCBpc29sYXRlIGZpZWxkCisJY21wCXI4LCAjMgkJCUAgbG9ja2VkPworCWJuZQl3YWl0X2xvY2sJCUAgd2FpdCBpZiBub3QKK3BlbmQ6CisJLyogdXBkYXRlIG1lbW9yeSB0aW1pbmdzICYgYnJpZWZseSBsb2NrIGRsbCAqLworCWxkcglyNCwgb21hcDI0Mnhfc3NwX3NkcmNfcmZyCUAgZ2V0IGFkZHIKKwlzdHIJcjEsIFtyNF0JCUAgdXBkYXRlIHJlZnJlc2ggdGltaW5nCisJbGRyCXIxMSwgb21hcDI0Mnhfc3NwX2RsbGFfY3RybAlAIGdldCBhZGRyIG9mIERMTEEgY3RybAorCWxkcglyMTAsIFtyMTFdCQlAIGdldCBjdXJyZW50IHZhbAorCW12bglyOSwgIzB4NAkJQCBtYXNrIHRvIGdldCBjbGVhciBiaXQyCisJYW5kCXIxMCwgcjEwLCByOQkJQCBjbGVhciBiaXQyIGZvciBsb2NrIG1vZGUKKwlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCisJc3RyCXIxMCwgW3IxMV0JCUAgY29tbWl0IHRvIERMTEFfQ1RSTAorCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIGRsbGIKKwlzdHIJcjEwLCBbcjExXQkJQCBoaXQgRExMQiBhbHNvCisKKwltb3YJcjQsICMweDgwMAkJQCByZWxvY2sgdGltZSAobWluIDB4NDAwIEwzIGNsb2NrcykKK3dhaXRfZGxsX2xvY2s6CisJc3VicwlyNCwgcjQsICMweDEKKwlibmUJd2FpdF9kbGxfbG9jaworCW5vcAorCWxkbWZkCXNwISwge3IwLXIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworb21hcDI0Mnhfc3NwX3NldF9jb25maWc6CisJLndvcmQgT01BUDI0MlhfUFJDTV9DTEtDRkdfQ1RSTAorb21hcDI0Mnhfc3NwX3BsbF9jdGw6CisJLndvcmQgT01BUDI0MjBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtFTikKK29tYXAyNDJ4X3NzcF9wbGxfc3RhdDoKKwkud29yZCBPTUFQMjQyMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0lETEVTVCkKK29tYXAyNDJ4X3NzcF9wbGxfZGl2OgorCS53b3JkIE9NQVAyNDIwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMSkKK29tYXAyNDJ4X3NzcF9zZHJjX3JmcjoKKwkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19SRlJfQ1RSTF8wKQorb21hcDI0Mnhfc3NwX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQyWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCisKK0VOVFJZKG9tYXAyNDJ4X3NyYW1fc2V0X3ByY21fc3opCisJLndvcmQJLiAtIG9tYXAyNDJ4X3NyYW1fc2V0X3ByY20KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2ZhNDhkYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUwpAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtb21hcDIvc3JhbTI0M3guUworICoKKyAqIE9tYXAyIHNwZWNpZmljIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KKyAqCisgKiAoQykgQ29weXJpZ2h0IDIwMDQKKyAqIFRleGFzIEluc3RydW1lbnRzLCA8d3d3LnRpLmNvbT4KKyAqIFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgL1BVUlBPU0UuIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvaW8uaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKworI2luY2x1ZGUgInBybS5oIgorI2luY2x1ZGUgImNtLmgiCisjaW5jbHVkZSAic2RyYy5oIgorCisJLnRleHQKKworRU5UUlkob21hcDI0M3hfc3JhbV9kZHJfaW5pdCkKKwlzdG1mZAlzcCEsIHtyMCAtIHIxMiwgbHJ9CUAgc2F2ZSByZWdpc3RlcnMgb24gc3RhY2sKKworCW1vdglyMTIsIHIyCQkJQCBjYXB0dXJlIENTMSB2cyBDUzAKKwltb3YJcjgsIHIzCQkJQCBjYXB0dXJlIGZvcmNlIHBhcmFtZXRlcgorCisJLyogZnJlcXVlbmN5IHNoaWZ0IGRvd24gKi8KKwlsZHIJcjIsIG9tYXAyNDN4X3NkaV9jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIGRwbGxvdXQgcmVnCisJbW92CXIzLCAjMHgxCQlAIHZhbHVlIGZvciAxeCBvcGVyYXRpb24KKwlzdHIJcjMsIFtyMl0JCUAgZ28gdG8gTDEtZnJlcSBvcGVyYXRpb24KKworCS8qIHZvbHRhZ2Ugc2hpZnQgZG93biAqLworCW1vdiByOSwgIzB4MQkJCUAgc2V0IHVwIGZvciBMMSB2b2x0YWdlIGNhbGwKKwlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIGRyb3Agdm9sdGFnZQorCisJLyogZGxsIGxvY2sgbW9kZSAqLworCWxkcglyMTEsIG9tYXAyNDN4X3NkaV9zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCisJbGRyCXIxMCwgW3IxMV0JCUAgZ2V0IGN1cnJlbnQgdmFsCisJY21wCXIxMiwgIzB4MQkJQCBjczEgYmFzZSAoMjQyMiBlczIuMDUvMSkKKwlhZGRlcQlyMTEsIHIxMSwgIzB4OAkJQCBpZiBjczEgYmFzZSwgbW92ZSB0byBETExCCisJbXZuCXI5LCAjMHg0CQlAIG1hc2sgdG8gZ2V0IGNsZWFyIGJpdDIKKwlhbmQJcjEwLCByMTAsIHI5CQlAIGNsZWFyIGJpdDIgZm9yIGxvY2sgbW9kZS4KKwlvcnIJcjEwLCByMTAsICMweDgJCUAgbWFrZSBzdXJlIERMTCBvbiAoZXMyIGJpdCBwb3MpCisJb3JyCXIxMCwgcjEwLCAjMHgyCQlAIDkwIGRlZ3JlZSBwaGFzZSBmb3IgYWxsIGJlbG93IDEzM01oegorCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKKwlibAlpX2RsbF93YWl0CQlAIHdhaXQgZm9yIGRsbCB0byBsb2NrCisKKwkvKiBnZXQgZGxsIHZhbHVlICovCisJYWRkCXIxMSwgcjExLCAjMHg0CQlAIGdldCBhZGRyIG9mIHN0YXR1cyByZWcKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgbG9ja2VkIHZhbHVlCisKKwkvKiB2b2x0YWdlIHNoaWZ0IHVwICovCisJbW92IHI5LCAjMHgwCQkJQCBzaGlmdCBiYWNrIHRvIEwwLXZvbHRhZ2UKKwlibCB2b2x0YWdlX3NoaWZ0CQlAIGdvIHJhaXNlIHZvbHRhZ2UKKworCS8qIGZyZXF1ZW5jeSBzaGlmdCB1cCAqLworCW1vdglyMywgIzB4MgkJQCB2YWx1ZSBmb3IgMnggb3BlcmF0aW9uCisJc3RyCXIzLCBbcjJdCQlAIGdvIHRvIEwwLWZyZXEgb3BlcmF0aW9uCisKKwkvKiByZXNldCBlbnRyeSBtb2RlIGZvciBkbGxjdHJsICovCisJc3ViCXIxMSwgcjExLCAjMHg0CQlAIG1vdmUgZnJvbSBzdGF0dXMgdG8gY3RybAorCWNtcAlyMTIsICMweDEJCUAgbm9ybWFsaXplIGlmIGNzMSBiYXNlZAorCXN1YmVxCXIxMSwgcjExLCAjMHg4CQlAIHBvc3NpYmx5IGJhY2sgdG8gRExMQQorCWNtcAlyOCwgIzB4MQkJQCBpZiBmb3JjZWQgdW5sb2NrIGV4aXQKKwlvcnJlcQlyMSwgcjEsICMweDQJCUAgbWFrZSBzdXJlIGV4aXQgd2l0aCB1bmxvY2tlZCB2YWx1ZQorCXN0cglyMSwgW3IxMV0JCUAgcmVzdG9yZSBETExBX0NUUkwgaGlnaCB2YWx1ZQorCWFkZAlyMTEsIHIxMSwgIzB4OAkJQCBtb3ZlIHRvIERMTEJfQ1RSTCBhZGRyCisJc3RyCXIxLCBbcjExXQkJQCBzZXQgdmFsdWUgRExMQl9DVFJMCisJYmwJaV9kbGxfd2FpdAkJQCB3YWl0IGZvciBwb3NzaWJsZSBsb2NrCisKKwkvKiBzZXQgdXAgZm9yIHJldHVybiwgRERSIHNob3VsZCBiZSBnb29kICovCisJc3RyIHIxMCwgW3IwXQkJCUAgd3JpdGUgZGxsX3N0YXR1cyBhbmQgcmV0dXJuIGNvdW50ZXIKKwlsZG1mZAlzcCEsIHtyMCAtIHIxMiwgcGN9CUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KKworCS8qIGVuc3VyZSB0aGUgRExMIGhhcyByZWxvY2tlZCAqLworaV9kbGxfd2FpdDoKKwltb3YJcjQsICMweDgwMAkJQCBkZWxheSBETEwgcmVsb2NrLCBtaW4gMHg0MDAgTDMgY2xvY2tzCitpX2RsbF9kZWxheToKKwlzdWJzCXI0LCByNCwgIzB4MQorCWJuZQlpX2RsbF9kZWxheQorCW1vdglwYywgbHIKKworCS8qCisJICogc2hpZnQgdXAgb3IgZG93biB2b2x0YWdlLCB1c2UgUjkgYXMgaW5wdXQgdG8gdGVsbCBsZXZlbC4KKwkgKiB3YWl0IGZvciBpdCB0byBmaW5pc2gsIHVzZSAzMmsgc3luYyBjb3VudGVyLCAxdGljaz0zMXVTLgorCSAqLwordm9sdGFnZV9zaGlmdDoKKwlsZHIJcjQsIG9tYXAyNDN4X3NkaV9wcmNtX3ZvbHRjdHJsCUAgZ2V0IGFkZHIgb2Ygdm9sdCBjdHJsLgorCWxkcglyNSwgW3I0XQkJQCBnZXQgdmFsdWUuCisJbGRyCXI2LCBwcmNtX21hc2tfdmFsCUAgZ2V0IHZhbHVlIG9mIG1hc2sKKwlhbmQJcjUsIHI1LCByNgkJQCBhcHBseSBtYXNrIHRvIGNsZWFyIGJpdHMKKwlvcnIJcjUsIHI1LCByOQkJQCBidWxsZCB2YWx1ZSBmb3IgTDAvTDEtdm9sdCBvcGVyYXRpb24uCisJc3RyCXI1LCBbcjRdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgorCW1vdglyMywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQorCW9ycglyNSwgcjUsIHIzCQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQorCXN0cglyNSwgW3I0XQkJQCBGb3JjZSB0cmFuc2l0aW9uIHRvIEwxCisKKwlsZHIJcjMsIG9tYXAyNDN4X3NkaV90aW1lcl8zMmtzeW5jdF9jcglAIGdldCBhZGRyIG9mIGNvdW50ZXIKKwlsZHIJcjUsIFtyM10JCUAgZ2V0IHZhbHVlCisJYWRkCXI1LCByNSwgIzB4MwkJQCBnaXZlIGl0IGF0IG1vc3QgOTN1Uwordm9sdF9kZWxheToKKwlsZHIJcjcsIFtyM10JCUAgZ2V0IHRpbWVyIHZhbHVlCisJY21wCXI1LCByNwkJCUAgdGltZSB1cD8KKwliaGkJdm9sdF9kZWxheQkJQCBub3QgeWV0LT5icmFuY2gKKwltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlci4KKworb21hcDI0M3hfc2RpX2NtX2Nsa3NlbDJfcGxsOgorCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLU0VMMikKK29tYXAyNDN4X3NkaV9zZHJjX2RsbGFfY3RybDoKKwkud29yZCBPTUFQMjQzWF9TRFJDX1JFR0FERFIoU0RSQ19ETExBX0NUUkwpCitvbWFwMjQzeF9zZGlfcHJjbV92b2x0Y3RybDoKKwkud29yZCBPTUFQMjQzWF9QUkNNX1ZPTFRDVFJMCitwcmNtX21hc2tfdmFsOgorCS53b3JkIDB4RkZGRjNGRkMKK29tYXAyNDN4X3NkaV90aW1lcl8zMmtzeW5jdF9jcjoKKwkud29yZCBJT19BRERSRVNTKE9NQVAyXzMyS1NZTkNUX0JBU0UgKyAweDAxMCkKK0VOVFJZKG9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3opCisJLndvcmQJLiAtIG9tYXAyNDN4X3NyYW1fZGRyX2luaXQKKworLyoKKyAqIFJlcHJvZ3JhbXMgbWVtb3J5IHRpbWluZ3MuCisgKiByMCA9IFtQUkNNX0ZVTEwgfCBQUkNNX0hBTEZdIHIxID0gU0RSQ19ETExBX0NUUkwgdmFsdWUgcjIgPSBbRERSIHwgU0RSXQorICogUFJDTV9GVUxMID0gMiwgUFJDTV9IQUxGID0gMSwgRERSID0gMSwgU0RSID0gMAorICovCitFTlRSWShvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKQorCXN0bWZkCXNwISwge3IwIC0gcjEwLCBscn0JQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjaworCW1vdglyMywgIzB4MAkJQCBjbGVhciBmb3IgbXJjIGNhbGwKKwltY3IJcDE1LCAwLCByMywgYzcsIGMxMCwgNAlAIG1lbW9yeSBiYXJyaWVyLCBmaW5pc2ggQVJNIFNEUi9ERFIKKwlub3AKKwlub3AKKwlsZHIJcjYsIG9tYXAyNDN4X3Nyc19zZHJjX3Jmcl9jdHJsCUAgZ2V0IGFkZHIgb2YgcmVmcmVzaCByZWcKKwlsZHIJcjUsIFtyNl0JCUAgZ2V0IHZhbHVlCisJbW92CXI1LCByNSwgbHNyICM4CQlAIGlzb2xhdGUgcmZyIGZpZWxkIGFuZCBkcm9wIGJ1cnN0CisKKwljbXAJcjAsICMweDEJCUAgZ29pbmcgdG8gaGFsZiBzcGVlZD8KKwltb3ZuZQlyOSwgIzB4MAkJQCBpZiB1cCBzZXQgZmxhZyB1cCBmb3IgcHJlIHVwLCBoaSB2b2x0CisKKwlibG5lCXZvbHRhZ2Vfc2hpZnRfYwkJQCBhZGp1c3Qgdm9sdGFnZQorCisJY21wCXIwLCAjMHgxCQlAIGdvaW5nIHRvIGhhbGYgc3BlZWQgKHBvc3QgYnJhbmNoIGxpbmspCisJbW92ZXEJcjUsIHI1LCBsc3IgIzEJCUAgZGl2aWRlIGJ5IDIgaWYgdG8gaGFsZgorCW1vdm5lCXI1LCByNSwgbHNsICMxCQlAIG11bHQgYnkgMiBpZiB0byBmdWxsCisJbW92CXI1LCByNSwgbHNsICM4CQlAIHB1dCByZnIgZmllbGQgYmFjayBpbnRvIHBsYWNlCisJYWRkCXI1LCByNSwgIzB4MQkJQCB0dXJuIG9uIGJ1cnN0IG9mIDEKKwlsZHIJcjQsIG9tYXAyNDN4X3Nyc19jbV9jbGtzZWwyX3BsbAlAIGdldCBhZGRyZXNzIG9mIG91dCByZWcKKwlsZHIJcjMsIFtyNF0JCUAgZ2V0IGN1cnIgdmFsdWUKKwlvcnIJcjMsIHIzLCAjMHgzCisJYmljCXIzLCByMywgIzB4MwkJQCBjbGVhciBsb3dlciBiaXRzCisJb3JyCXIzLCByMywgcjAJCUAgbmV3IHN0YXRlIHZhbHVlCisJc3RyCXIzLCBbcjRdCQlAIHNldCBuZXcgc3RhdGUgKHBsbC94LCB4PTEgb3IgMikKKwlub3AKKwlub3AKKworCW1vdmVxCXI5LCAjMHgxCQlAIGlmIHNwZWVkIGRvd24sIHBvc3QgZG93biwgZHJvcCB2b2x0CisJYmxlcQl2b2x0YWdlX3NoaWZ0X2MKKworCW1jcglwMTUsIDAsIHIzLCBjNywgYzEwLCA0CUAgbWVtb3J5IGJhcnJpZXIKKwlzdHIJcjUsIFtyNl0JCUAgc2V0IG5ldyBSRlJfMSB2YWx1ZQorCWFkZAlyNiwgcjYsICMweDMwCQlAIGdldCBSRlJfMiBhZGRyCisJc3RyCXI1LCBbcjZdCQlAIHNldCBSRlJfMgorCW5vcAorCWNtcAlyMiwgIzB4MQkJQCAoU0RSIG9yIEREUikgZG8gd2UgbmVlZCB0byBhZGp1c3QgRExMCisJYm5lCWZyZXFfb3V0CQlAIGxlYXZlIGlmIFNEUiwgbm8gRExMIGZ1bmN0aW9uCisKKwkvKiBXaXRoIEREUiwgd2UgbmVlZCB0byB0YWtlIGNhcmUgb2YgdGhlIERMTCBmb3IgdGhlIGZyZXF1ZW5jeSBjaGFuZ2UgKi8KKwlsZHIJcjIsIG9tYXAyNDN4X3Nyc19zZHJjX2RsbGFfY3RybAlAIGFkZHIgb2YgZGxsYSBjdHJsCisJc3RyCXIxLCBbcjJdCQlAIHdyaXRlIG91dCBuZXcgU0RSQ19ETExBX0NUUkwKKwlhZGQJcjIsIHIyLCAjMHg4CQlAIGFkZHIgdG8gU0RSQ19ETExCX0NUUkwKKwlzdHIJcjEsIFtyMl0JCUAgY29tbWl0IHRvIFNEUkNfRExMQl9DVFJMCisJbW92CXIxLCAjMHgyMDAwCQlAIHdhaXQgRExMIHJlbG9jaywgbWluIDB4NDAwIEwzIGNsb2NrcworZGxsX3dhaXQ6CisJc3VicwlyMSwgcjEsICMweDEKKwlibmUJZGxsX3dhaXQKK2ZyZXFfb3V0OgorCWxkbWZkCXNwISwge3IwIC0gcjEwLCBwY30JQCByZXN0b3JlIHJlZ3MgYW5kIHJldHVybgorCisgICAgLyoKKyAgICAgKiBzaGlmdCB1cCBvciBkb3duIHZvbHRhZ2UsIHVzZSBSOSBhcyBpbnB1dCB0byB0ZWxsIGxldmVsLgorICAgICAqCXdhaXQgZm9yIGl0IHRvIGZpbmlzaCwgdXNlIDMyayBzeW5jIGNvdW50ZXIsIDF0aWNrPTMxdVMuCisgICAgICovCit2b2x0YWdlX3NoaWZ0X2M6CisJbGRyCXIxMCwgb21hcDI0M3hfc3JzX3ByY21fdm9sdGN0cmwJQCBnZXQgYWRkciBvZiB2b2x0IGN0cmwKKwlsZHIJcjgsIFtyMTBdCQlAIGdldCB2YWx1ZQorCWxkcglyNywgZGRyX3ByY21fbWFza192YWwJQCBnZXQgdmFsdWUgb2YgbWFzaworCWFuZAlyOCwgcjgsIHI3CQlAIGFwcGx5IG1hc2sgdG8gY2xlYXIgYml0cworCW9ycglyOCwgcjgsIHI5CQlAIGJ1bGxkIHZhbHVlIGZvciBMMC9MMS12b2x0IG9wZXJhdGlvbi4KKwlzdHIJcjgsIFtyMTBdCQlAIHNldCB1cCBmb3IgY2hhbmdlLgorCW1vdglyNywgIzB4NDAwMAkJQCBnZXQgdmFsIGZvciBmb3JjZQorCW9ycglyOCwgcjgsIHI3CQlAIGJ1aWxkIHZhbHVlIGZvciBmb3JjZQorCXN0cglyOCwgW3IxMF0JCUAgRm9yY2UgdHJhbnNpdGlvbiB0byBMMQorCisJbGRyCXIxMCwgb21hcDI0M3hfc3JzX3RpbWVyXzMya3N5bmN0CUAgZ2V0IGFkZHIgb2YgY291bnRlcgorCWxkcglyOCwgW3IxMF0JCUAgZ2V0IHZhbHVlCisJYWRkCXI4LCByOCwgIzB4MgkJQCBnaXZlIGl0IGF0IG1vc3QgNjJ1UyAobWluIDMxKykKK3ZvbHRfZGVsYXlfYzoKKwlsZHIJcjcsIFtyMTBdCQlAIGdldCB0aW1lciB2YWx1ZQorCWNtcAlyOCwgcjcJCQlAIHRpbWUgdXA/CisJYmhpCXZvbHRfZGVsYXlfYwkJQCBub3QgeWV0LT5icmFuY2gKKwltb3YJcGMsIGxyCQkJQCBiYWNrIHRvIGNhbGxlcgorCitvbWFwMjQzeF9zcnNfY21fY2xrc2VsMl9wbGw6CisJLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9DTEtTRUwyKQorb21hcDI0M3hfc3JzX3NkcmNfZGxsYV9jdHJsOgorCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX0RMTEFfQ1RSTCkKK29tYXAyNDN4X3Nyc19zZHJjX3Jmcl9jdHJsOgorCS53b3JkIE9NQVAyNDNYX1NEUkNfUkVHQUREUihTRFJDX1JGUl9DVFJMXzApCitvbWFwMjQzeF9zcnNfcHJjbV92b2x0Y3RybDoKKwkud29yZCBPTUFQMjQzWF9QUkNNX1ZPTFRDVFJMCitkZHJfcHJjbV9tYXNrX3ZhbDoKKwkud29yZCAweEZGRkYzRkZDCitvbWFwMjQzeF9zcnNfdGltZXJfMzJrc3luY3Q6CisJLndvcmQgSU9fQUREUkVTUyhPTUFQMl8zMktTWU5DVF9CQVNFICsgMHgwMTApCisKK0VOVFJZKG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opCisJLndvcmQJLiAtIG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmMKKworLyoKKyAqIFNldCBkaXZpZGVycyBhbmQgcGxsLiBBbHNvIHJlY2FsY3VsYXRlIERMTCB2YWx1ZSBmb3IgRERSIGFuZCB1bmxvY2sgbW9kZS4KKyAqLworRU5UUlkob21hcDI0M3hfc3JhbV9zZXRfcHJjbSkKKwlzdG1mZAlzcCEsIHtyMC1yMTIsIGxyfQlAIHJlZ3MgdG8gc3RhY2sKKwlhZHIJcjQsIHBiZWdpbgkJQCBhZGRyIG9mIHByZWxvYWQgc3RhcnQKKwlhZHIJcjgsIHBlbmQJCUAgYWRkciBvZiBwcmVsb2FkIGVuZAorCW1jcnIJcDE1LCAxLCByOCwgcjQsIGMxMglAIHByZWxvYWQgaW50byBpY2FjaGUKK3BiZWdpbjoKKwkvKiBtb3ZlIGludG8gZmFzdCByZWxvY2sgYnlwYXNzICovCisJbGRyCXI4LCBvbWFwMjQzeF9zc3BfcGxsX2N0bAlAIGdldCBhZGRyCisJbGRyCXI1LCBbcjhdCQlAIGdldCB2YWwKKwltdm4JcjYsICMweDMJCUAgY2xlYXIgbWFzaworCWFuZAlyNSwgcjUsIHI2CQlAIGNsZWFyIGZpZWxkCisJb3JyCXI3LCByNSwgIzB4MgkJQCBmYXN0IHJlbG9jayB2YWwKKwlzdHIJcjcsIFtyOF0JCUAgZ28gdG8gZmFzdCByZWxvY2sKKwlsZHIJcjQsIG9tYXAyNDN4X3NzcF9wbGxfc3RhdAlAIGFkZHIgb2Ygc3RhdAorYmxvY2s6CisJLyogd2FpdCBmb3IgYnlwYXNzICovCisJbGRyCXI4LCBbcjRdCQlAIHN0YXQgdmFsdWUKKwlhbmQJcjgsIHI4LCAjMHgzCQlAIG1hc2sgZm9yIHN0YXQKKwljbXAJcjgsICMweDEJCUAgdGhlcmUgeWV0CisJYm5lCWJsb2NrCQkJQCBsb29wIGlmIG5vdAorCisJLyogc2V0IG5ldyBkcGxsIGRpdmlkZXJzIF9hZnRlcl8gaW4gYnlwYXNzICovCisJbGRyCXI0LCBvbWFwMjQzeF9zc3BfcGxsX2RpdglAIGdldCBhZGRyCisJc3RyCXIwLCBbcjRdCQlAIHNldCBkcGxsIGN0cmwgdmFsCisKKwlsZHIJcjQsIG9tYXAyNDN4X3NzcF9zZXRfY29uZmlnCUAgZ2V0IGFkZHIKKwltb3YJcjgsICMxCQkJQCB2YWxpZCBjZmcgbXNrCisJc3RyCXI4LCBbcjRdCQlAIG1ha2UgZGl2aWRlcnMgdGFrZQorCisJbW92CXI0LCAjMTAwCQlAIGRlYWQgc3BpbiBhIGJpdAord2FpdF9hX2JpdDoKKwlzdWJzCXI0LCByNCwgIzEJCUAgZGVjIGxvb3AKKwlibmUJd2FpdF9hX2JpdAkJQCBkZWxheSBkb25lPworCisJLyogY2hlY2sgaWYgc3RheWluZyBpbiBieXBhc3MgKi8KKwljbXAJcjIsICMweDEJCUAgc3RheSBpbiBieXBhc3M/CisJYmVxCXBlbmQJCQlAIGp1bXAgb3ZlciBkcGxsIHJlbG9jaworCisJLyogcmVsb2NrIERQTEwgd2l0aCBuZXcgdmFscyAqLworCWxkcglyNSwgb21hcDI0M3hfc3NwX3BsbF9zdGF0CUAgZ2V0IGFkZHIKKwlsZHIJcjQsIG9tYXAyNDN4X3NzcF9wbGxfY3RsCUAgZ2V0IGFkZHIKKwlvcnIJcjgsIHI3LCAjMHgzCQlAIHZhbCBmb3IgbG9jayBkcGxsCisJc3RyCXI4LCBbcjRdCQlAIHNldCB2YWwKKwltb3YJcjAsICMxMDAwCQlAIGRlYWQgc3BpbiBhIGJpdAord2FpdF9tb3JlOgorCXN1YnMJcjAsIHIwLCAjMQkJQCBkZWMgbG9vcAorCWJuZQl3YWl0X21vcmUJCUAgZGVsYXkgZG9uZT8KK3dhaXRfbG9jazoKKwlsZHIJcjgsIFtyNV0JCUAgZ2V0IGxvY2sgdmFsCisJYW5kCXI4LCByOCwgIzMJCUAgaXNvbGF0ZSBmaWVsZAorCWNtcAlyOCwgIzIJCQlAIGxvY2tlZD8KKwlibmUJd2FpdF9sb2NrCQlAIHdhaXQgaWYgbm90CitwZW5kOgorCS8qIHVwZGF0ZSBtZW1vcnkgdGltaW5ncyAmIGJyaWVmbHkgbG9jayBkbGwgKi8KKwlsZHIJcjQsIG9tYXAyNDN4X3NzcF9zZHJjX3JmcglAIGdldCBhZGRyCisJc3RyCXIxLCBbcjRdCQlAIHVwZGF0ZSByZWZyZXNoIHRpbWluZworCWxkcglyMTEsIG9tYXAyNDN4X3NzcF9kbGxhX2N0cmwJQCBnZXQgYWRkciBvZiBETExBIGN0cmwKKwlsZHIJcjEwLCBbcjExXQkJQCBnZXQgY3VycmVudCB2YWwKKwltdm4JcjksICMweDQJCUAgbWFzayB0byBnZXQgY2xlYXIgYml0MgorCWFuZAlyMTAsIHIxMCwgcjkJCUAgY2xlYXIgYml0MiBmb3IgbG9jayBtb2RlCisJb3JyCXIxMCwgcjEwLCAjMHg4CQlAIG1ha2Ugc3VyZSBETEwgb24gKGVzMiBiaXQgcG9zKQorCXN0cglyMTAsIFtyMTFdCQlAIGNvbW1pdCB0byBETExBX0NUUkwKKwlhZGQJcjExLCByMTEsICMweDgJCUAgbW92ZSB0byBkbGxiCisJc3RyCXIxMCwgW3IxMV0JCUAgaGl0IERMTEIgYWxzbworCisJbW92CXI0LCAjMHg4MDAJCUAgcmVsb2NrIHRpbWUgKG1pbiAweDQwMCBMMyBjbG9ja3MpCit3YWl0X2RsbF9sb2NrOgorCXN1YnMJcjQsIHI0LCAjMHgxCisJYm5lCXdhaXRfZGxsX2xvY2sKKwlub3AKKwlsZG1mZAlzcCEsIHtyMC1yMTIsIHBjfQlAIHJlc3RvcmUgcmVncyBhbmQgcmV0dXJuCisKK29tYXAyNDN4X3NzcF9zZXRfY29uZmlnOgorCS53b3JkIE9NQVAyNDNYX1BSQ01fQ0xLQ0ZHX0NUUkwKK29tYXAyNDN4X3NzcF9wbGxfY3RsOgorCS53b3JkIE9NQVAyNDMwX0NNX1JFR0FERFIoUExMX01PRCwgQ01fQ0xLRU4pCitvbWFwMjQzeF9zc3BfcGxsX3N0YXQ6CisJLndvcmQgT01BUDI0MzBfQ01fUkVHQUREUihQTExfTU9ELCBDTV9JRExFU1QpCitvbWFwMjQzeF9zc3BfcGxsX2RpdjoKKwkud29yZCBPTUFQMjQzMF9DTV9SRUdBRERSKFBMTF9NT0QsIENNX0NMS1NFTDEpCitvbWFwMjQzeF9zc3Bfc2RyY19yZnI6CisJLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfUkZSX0NUUkxfMCkKK29tYXAyNDN4X3NzcF9kbGxhX2N0cmw6CisJLndvcmQgT01BUDI0M1hfU0RSQ19SRUdBRERSKFNEUkNfRExMQV9DVFJMKQorCitFTlRSWShvbWFwMjQzeF9zcmFtX3NldF9wcmNtX3N6KQorCS53b3JkCS4gLSBvbWFwMjQzeF9zcmFtX3NldF9wcmNtCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAyL3RpbWVyLWdwLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAyL3RpbWVyLWdwLmMKaW5kZXggNzhkMDVmMi4uNTU3NjAzZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi90aW1lci1ncC5jCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvdGltZXItZ3AuYwpAQCAtNTksOCArNTksNyBAQAogc3RhdGljIGludCBvbWFwMl9ncF90aW1lcl9zZXRfbmV4dF9ldmVudCh1bnNpZ25lZCBsb25nIGN5Y2xlcywKIAkJCQkJIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKmV2dCkKIHsKLQlvbWFwX2RtX3RpbWVyX3NldF9sb2FkKGdwdGltZXIsIDAsIDB4ZmZmZmZmZmYgLSBjeWNsZXMpOwotCW9tYXBfZG1fdGltZXJfc3RhcnQoZ3B0aW1lcik7CisJb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChncHRpbWVyLCAwLCAweGZmZmZmZmZmIC0gY3ljbGVzKTsKIAogCXJldHVybiAwOwogfQpAQCAtNzcsOCArNzYsNyBAQAogCQlwZXJpb2QgPSBjbGtfZ2V0X3JhdGUob21hcF9kbV90aW1lcl9nZXRfZmNsayhncHRpbWVyKSkgLyBIWjsKIAkJcGVyaW9kIC09IDE7CiAKLQkJb21hcF9kbV90aW1lcl9zZXRfbG9hZChncHRpbWVyLCAxLCAweGZmZmZmZmZmIC0gcGVyaW9kKTsKLQkJb21hcF9kbV90aW1lcl9zdGFydChncHRpbWVyKTsKKwkJb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChncHRpbWVyLCAxLCAweGZmZmZmZmZmIC0gcGVyaW9kKTsKIAkJYnJlYWs7CiAJY2FzZSBDTE9DS19FVlRfTU9ERV9PTkVTSE9UOgogCQlicmVhazsKQEAgLTE3Miw4ICsxNzAsNyBAQAogCXRpY2tfcmF0ZSA9IGNsa19nZXRfcmF0ZShvbWFwX2RtX3RpbWVyX2dldF9mY2xrKGdwdCkpOwogCXRpY2tfcGVyaW9kID0gKHRpY2tfcmF0ZSAvIEhaKSAtIDE7CiAKLQlvbWFwX2RtX3RpbWVyX3NldF9sb2FkKGdwdCwgMSwgMCk7Ci0Jb21hcF9kbV90aW1lcl9zdGFydChncHQpOworCW9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoZ3B0LCAxLCAwKTsKIAogCWNsb2Nrc291cmNlX2dwdC5tdWx0ID0KIAkJY2xvY2tzb3VyY2Vfa2h6Mm11bHQodGlja19yYXRlLzEwMDAsIGNsb2Nrc291cmNlX2dwdC5zaGlmdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9LY29uZmlnCmluZGV4IDkzZGViZjMuLmRkY2Q0MWIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9LY29uZmlnCkBAIC00NCw2ICs0NCw1NCBAQAogCSAgQnVmZmFsbyBMaW5rc3RhdGlvbiBQcm8vTGl2ZSBwbGF0Zm9ybS4gQm90aCB2MSBhbmQKIAkgIHYyIGRldmljZXMgYXJlIHN1cHBvcnRlZC4KIAorY29uZmlnIE1BQ0hfVFM0MDkKKwlib29sICJRTkFQIFRTLTQwOSIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIFFOQVAgVFMtNDA5IHBsYXRmb3JtLgorCitjb25maWcgTUFDSF9XUlQzNTBOX1YyCisJYm9vbCAiTGlua3N5cyBXUlQzNTBOIHYyIgorCWhlbHAKKwkgIFNheSAnWScgaGVyZSBpZiB5b3Ugd2FudCB5b3VyIGtlcm5lbCB0byBzdXBwb3J0IHRoZQorCSAgTGlua3N5cyBXUlQzNTBOIHYyIHBsYXRmb3JtLgorCitjb25maWcgTUFDSF9UUzc4WFgKKwlib29sICJUZWNobm9sb2dpYyBTeXN0ZW1zIFRTLTc4eHgiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBUZWNobm9sb2dpYyBTeXN0ZW1zIFRTLTc4eHggcGxhdGZvcm0uCisKK2NvbmZpZyBNQUNIX01WMjEyMAorCWJvb2wgIkhQIE1lZGlhIFZhdWx0IG12MjEyMCIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIEhQIE1lZGlhIFZhdWx0IG12MjEyMCBvciBtdjUxMDAuCisKK2NvbmZpZyBNQUNIX01TUzIKKwlib29sICJNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkgcGxhdGZvcm0uCisKK2NvbmZpZyBNQUNIX1dOUjg1NFQKKwlib29sICJOZXRnZWFyIFdOUjg1NFQiCisJaGVscAorCSAgU2F5ICdZJyBoZXJlIGlmIHlvdSB3YW50IHlvdXIga2VybmVsIHRvIHN1cHBvcnQgdGhlCisJICBOZXRnZWFyIFdOUjg1NFQgcGxhdGZvcm0uCisKK2NvbmZpZyBNQUNIX1JEODhGNTE4MUxfR0UKKwlib29sICJNYXJ2ZWxsIE9yaW9uLVZvSVAgR0UgUmVmZXJlbmNlIERlc2lnbiIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgT3Jpb24tVm9JUCBHRSAoODhGNTE4MUwpIFJELgorCitjb25maWcgTUFDSF9SRDg4RjUxODFMX0ZYTworCWJvb2wgIk1hcnZlbGwgT3Jpb24tVm9JUCBGWE8gUmVmZXJlbmNlIERlc2lnbiIKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgaWYgeW91IHdhbnQgeW91ciBrZXJuZWwgdG8gc3VwcG9ydCB0aGUKKwkgIE1hcnZlbGwgT3Jpb24tVm9JUCBGWE8gKDg4RjUxODFMKSBSRC4KKwogZW5kbWVudQogCiBlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L01ha2VmaWxlCmluZGV4IDkzMDFiZjUuLmZjYzQ4YTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvTWFrZWZpbGUKQEAgLTEsNyArMSwxNSBAQAotb2JqLXkJCQkJKz0gY29tbW9uLm8gYWRkci1tYXAubyBwY2kubyBncGlvLm8gaXJxLm8KK29iai15CQkJCSs9IGNvbW1vbi5vIGFkZHItbWFwLm8gcGNpLm8gZ3Bpby5vIGlycS5vIG1wcC5vCiBvYmotJChDT05GSUdfTUFDSF9EQjg4RjUyODEpCSs9IGRiODhmNTI4MS1zZXR1cC5vCiBvYmotJChDT05GSUdfTUFDSF9SRDg4RjUxODIpCSs9IHJkODhmNTE4Mi1zZXR1cC5vCiBvYmotJChDT05GSUdfTUFDSF9LVVJPQk9YX1BSTykJKz0ga3Vyb2JveF9wcm8tc2V0dXAubwogb2JqLSQoQ09ORklHX01BQ0hfTElOS1NUQVRJT05fUFJPKSArPSBrdXJvYm94X3Byby1zZXR1cC5vCiBvYmotJChDT05GSUdfTUFDSF9ETlMzMjMpCSs9IGRuczMyMy1zZXR1cC5vCi1vYmotJChDT05GSUdfTUFDSF9UUzIwOSkJKz0gdHMyMDktc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfVFMyMDkpCSs9IHRzMjA5LXNldHVwLm8gdHN4MDktY29tbW9uLm8KK29iai0kKENPTkZJR19NQUNIX1RTNDA5KQkrPSB0czQwOS1zZXR1cC5vIHRzeDA5LWNvbW1vbi5vCitvYmotJChDT05GSUdfTUFDSF9XUlQzNTBOX1YyKQkrPSB3cnQzNTBuLXYyLXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1RTNzhYWCkJKz0gdHM3OHh4LXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX01WMjEyMCkJKz0gbXYyMTIwLXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX01TUzIpCQkrPSBtc3MyLXNldHVwLm8KK29iai0kKENPTkZJR19NQUNIX1dOUjg1NFQpCSs9IHducjg1NHQtc2V0dXAubworb2JqLSQoQ09ORklHX01BQ0hfUkQ4OEY1MTgxTF9HRSkJKz0gcmQ4OGY1MTgxbC1nZS1zZXR1cC5vCitvYmotJChDT05GSUdfTUFDSF9SRDg4RjUxODFMX0ZYTykJKz0gcmQ4OGY1MTgxbC1meG8tc2V0dXAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2FkZHItbWFwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvYWRkci1tYXAuYwppbmRleCBlNjNmYjA1Li42ZjBkYmRhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvYWRkci1tYXAuYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvYWRkci1tYXAuYwpAQCAtNzAsNiArNzAsNyBAQAogCiAKIHN0cnVjdCBtYnVzX2RyYW1fdGFyZ2V0X2luZm8gb3Jpb241eF9tYnVzX2RyYW1faW5mbzsKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSB3aW5fYWxsb2NfY291bnQ7CiAKIHN0YXRpYyBpbnQgX19pbml0IG9yaW9uNXhfY3B1X3dpbl9jYW5fcmVtYXAoaW50IHdpbikKIHsKQEAgLTg3LDE2ICs4OCwyMiBAQAogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2NwdV93aW4oaW50IHdpbiwgdTMyIGJhc2UsIHUzMiBzaXplLAogCQkJCSB1OCB0YXJnZXQsIHU4IGF0dHIsIGludCByZW1hcCkKIHsKLQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fQkFTRSh3aW4pLCBiYXNlICYgMHhmZmZmMDAwMCk7Ci0Jb3Jpb241eF93cml0ZShDUFVfV0lOX0NUUkwod2luKSwKLQkJKChzaXplIC0gMSkgJiAweGZmZmYwMDAwKSB8IChhdHRyIDw8IDgpIHwgKHRhcmdldCA8PCA0KSB8IDEpOworCWlmICh3aW4gPj0gOCkgeworCQlwcmludGsoS0VSTl9FUlIgInNldHVwX2NwdV93aW46IHRyeWluZyB0byBhbGxvY2F0ZSAiCisJCQkJIndpbmRvdyAlZFxuIiwgd2luKTsKKwkJcmV0dXJuOworCX0KKworCXdyaXRlbChiYXNlICYgMHhmZmZmMDAwMCwgQ1BVX1dJTl9CQVNFKHdpbikpOworCXdyaXRlbCgoKHNpemUgLSAxKSAmIDB4ZmZmZjAwMDApIHwgKGF0dHIgPDwgOCkgfCAodGFyZ2V0IDw8IDQpIHwgMSwKKwkJQ1BVX1dJTl9DVFJMKHdpbikpOwogCiAJaWYgKG9yaW9uNXhfY3B1X3dpbl9jYW5fcmVtYXAod2luKSkgewogCQlpZiAocmVtYXAgPCAwKQogCQkJcmVtYXAgPSBiYXNlOwogCi0JCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9SRU1BUF9MTyh3aW4pLCByZW1hcCAmIDB4ZmZmZjAwMDApOwotCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fUkVNQVBfSEkod2luKSwgMCk7CisJCXdyaXRlbChyZW1hcCAmIDB4ZmZmZjAwMDAsIENQVV9XSU5fUkVNQVBfTE8od2luKSk7CisJCXdyaXRlbCgwLCBDUFVfV0lOX1JFTUFQX0hJKHdpbikpOwogCX0KIH0KIApAQCAtMTA5LDExICsxMTYsMTEgQEAKIAkgKiBGaXJzdCwgZGlzYWJsZSBhbmQgY2xlYXIgd2luZG93cy4KIAkgKi8KIAlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0JCW9yaW9uNXhfd3JpdGUoQ1BVX1dJTl9CQVNFKGkpLCAwKTsKLQkJb3Jpb241eF93cml0ZShDUFVfV0lOX0NUUkwoaSksIDApOworCQl3cml0ZWwoMCwgQ1BVX1dJTl9CQVNFKGkpKTsKKwkJd3JpdGVsKDAsIENQVV9XSU5fQ1RSTChpKSk7CiAJCWlmIChvcmlvbjV4X2NwdV93aW5fY2FuX3JlbWFwKGkpKSB7Ci0JCQlvcmlvbjV4X3dyaXRlKENQVV9XSU5fUkVNQVBfTE8oaSksIDApOwotCQkJb3Jpb241eF93cml0ZShDUFVfV0lOX1JFTUFQX0hJKGkpLCAwKTsKKwkJCXdyaXRlbCgwLCBDUFVfV0lOX1JFTUFQX0xPKGkpKTsKKwkJCXdyaXRlbCgwLCBDUFVfV0lOX1JFTUFQX0hJKGkpKTsKIAkJfQogCX0KIApAQCAtMTI4LDYgKzEzNSw3IEBACiAJCVRBUkdFVF9QQ0lFLCBBVFRSX1BDSUVfTUVNLCAtMSk7CiAJc2V0dXBfY3B1X3dpbigzLCBPUklPTjVYX1BDSV9NRU1fUEhZU19CQVNFLCBPUklPTjVYX1BDSV9NRU1fU0laRSwKIAkJVEFSR0VUX1BDSSwgQVRUUl9QQ0lfTUVNLCAtMSk7CisJd2luX2FsbG9jX2NvdW50ID0gNDsKIAogCS8qCiAJICogU2V0dXAgTUJVUyBkcmFtIHRhcmdldCBpbmZvLgpAQCAtMTQ3LDggKzE1NSw4IEBACiAJCQl3ID0gJm9yaW9uNXhfbWJ1c19kcmFtX2luZm8uY3NbY3MrK107CiAJCQl3LT5jc19pbmRleCA9IGk7CiAJCQl3LT5tYnVzX2F0dHIgPSAweGYgJiB+KDEgPDwgaSk7Ci0JCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmYwMDAwMDA7Ci0JCQl3LT5zaXplID0gKHNpemUgfCAweDAwZmZmZmZmKSArIDE7CisJCQl3LT5iYXNlID0gYmFzZSAmIDB4ZmZmZjAwMDA7CisJCQl3LT5zaXplID0gKHNpemUgfCAweDAwMDBmZmZmKSArIDE7CiAJCX0KIAl9CiAJb3Jpb241eF9tYnVzX2RyYW1faW5mby5udW1fY3MgPSBjczsKQEAgLTE1NiwyNSArMTY0LDMwIEBACiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKIHsKLQlzZXR1cF9jcHVfd2luKDQsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9CT09ULCAtMSk7CisJc2V0dXBfY3B1X3dpbih3aW5fYWxsb2NfY291bnQrKywgYmFzZSwgc2l6ZSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0JPT1QsIC0xKTsKIH0KIAogdm9pZCBfX2luaXQgb3Jpb241eF9zZXR1cF9kZXYwX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpCiB7Ci0Jc2V0dXBfY3B1X3dpbig1LCBiYXNlLCBzaXplLCBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MwLCAtMSk7CisJc2V0dXBfY3B1X3dpbih3aW5fYWxsb2NfY291bnQrKywgYmFzZSwgc2l6ZSwKKwkJICAgICAgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMCwgLTEpOwogfQogCiB2b2lkIF9faW5pdCBvcmlvbjV4X3NldHVwX2RldjFfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSkKIHsKLQlzZXR1cF9jcHVfd2luKDYsIGJhc2UsIHNpemUsIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzEsIC0xKTsKKwlzZXR1cF9jcHVfd2luKHdpbl9hbGxvY19jb3VudCsrLCBiYXNlLCBzaXplLAorCQkgICAgICBUQVJHRVRfREVWX0JVUywgQVRUUl9ERVZfQ1MxLCAtMSk7CiB9CiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2V0dXBfZGV2Ml93aW4odTMyIGJhc2UsIHUzMiBzaXplKQogewotCXNldHVwX2NwdV93aW4oNywgYmFzZSwgc2l6ZSwgVEFSR0VUX0RFVl9CVVMsIEFUVFJfREVWX0NTMiwgLTEpOworCXNldHVwX2NwdV93aW4od2luX2FsbG9jX2NvdW50KyssIGJhc2UsIHNpemUsCisJCSAgICAgIFRBUkdFVF9ERVZfQlVTLCBBVFRSX0RFVl9DUzIsIC0xKTsKIH0KIAogdm9pZCBfX2luaXQgb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbih1MzIgYmFzZSwgdTMyIHNpemUpCiB7Ci0Jc2V0dXBfY3B1X3dpbig3LCBiYXNlLCBzaXplLCBUQVJHRVRfUENJRSwgQVRUUl9QQ0lFX1dBLCAtMSk7CisJc2V0dXBfY3B1X3dpbih3aW5fYWxsb2NfY291bnQrKywgYmFzZSwgc2l6ZSwKKwkJICAgICAgVEFSR0VUX1BDSUUsIEFUVFJfUENJRV9XQSwgLTEpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5jCmluZGV4IDRmMTNmZDAuLmZhZjRlMzIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmMKQEAgLTM5LDI1ICszOSwyMiBAQAogCQkudmlydHVhbAk9IE9SSU9ONVhfUkVHU19WSVJUX0JBU0UsCiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihPUklPTjVYX1JFR1NfUEhZU19CQVNFKSwKIAkJLmxlbmd0aAkJPSBPUklPTjVYX1JFR1NfU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCi0JfSwKLQl7CisJCS50eXBlCQk9IE1UX0RFVklDRSwKKwl9LCB7CiAJCS52aXJ0dWFsCT0gT1JJT041WF9QQ0lFX0lPX1ZJUlRfQkFTRSwKIAkJLnBmbgkJPSBfX3BoeXNfdG9fcGZuKE9SSU9ONVhfUENJRV9JT19QSFlTX0JBU0UpLAogCQkubGVuZ3RoCQk9IE9SSU9ONVhfUENJRV9JT19TSVpFLAotCQkudHlwZQkJPSBNVF9ERVZJQ0UKLQl9LAotCXsKKwkJLnR5cGUJCT0gTVRfREVWSUNFLAorCX0sIHsKIAkJLnZpcnR1YWwJPSBPUklPTjVYX1BDSV9JT19WSVJUX0JBU0UsCiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihPUklPTjVYX1BDSV9JT19QSFlTX0JBU0UpLAogCQkubGVuZ3RoCQk9IE9SSU9ONVhfUENJX0lPX1NJWkUsCi0JCS50eXBlCQk9IE1UX0RFVklDRQotCX0sCi0JeworCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwgewogCQkudmlydHVhbAk9IE9SSU9ONVhfUENJRV9XQV9WSVJUX0JBU0UsCiAJCS5wZm4JCT0gX19waHlzX3RvX3BmbihPUklPTjVYX1BDSUVfV0FfUEhZU19CQVNFKSwKIAkJLmxlbmd0aAkJPSBPUklPTjVYX1BDSUVfV0FfU0laRSwKLQkJLnR5cGUJCT0gTVRfREVWSUNFCisJCS50eXBlCQk9IE1UX0RFVklDRSwKIAl9LAogfTsKIApAQCAtNjYsMTAxICs2MywzMiBAQAogCWlvdGFibGVfaW5pdChvcmlvbjV4X2lvX2Rlc2MsIEFSUkFZX1NJWkUob3Jpb241eF9pb19kZXNjKSk7CiB9CiAKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBVQVJUCisgKiBFSENJCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X3VhcnRfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJCT0gVUFSVDBfUEhZU19CQVNFLAotCQkuZW5kCQk9IFVBUlQwX1BIWVNfQkFTRSArIDB4ZmYsCi0JCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CQk9IElSUV9PUklPTjVYX1VBUlQwLAotCQkuZW5kCQk9IElSUV9PUklPTjVYX1VBUlQwLAotCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLQl7Ci0JCS5zdGFydAkJPSBVQVJUMV9QSFlTX0JBU0UsCi0JCS5lbmQJCT0gVUFSVDFfUEhZU19CQVNFICsgMHhmZiwKLQkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JewotCQkuc3RhcnQJCT0gSVJRX09SSU9ONVhfVUFSVDEsCi0JCS5lbmQJCT0gSVJRX09SSU9ONVhfVUFSVDEsCi0JCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0X3NlcmlhbDgyNTBfcG9ydCBvcmlvbjV4X3VhcnRfZGF0YVtdID0gewotCXsKLQkJLm1hcGJhc2UJPSBVQVJUMF9QSFlTX0JBU0UsCi0JCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMF9WSVJUX0JBU0UsCi0JCS5pcnEJCT0gSVJRX09SSU9ONVhfVUFSVDAsCi0JCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCi0JCS5pb3R5cGUJCT0gVVBJT19NRU0sCi0JCS5yZWdzaGlmdAk9IDIsCi0JCS51YXJ0Y2xrCT0gT1JJT041WF9UQ0xLLAotCX0sCi0JewotCQkubWFwYmFzZQk9IFVBUlQxX1BIWVNfQkFTRSwKLQkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQxX1ZJUlRfQkFTRSwKLQkJLmlycQkJPSBJUlFfT1JJT041WF9VQVJUMSwKLQkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLnJlZ3NoaWZ0CT0gMiwKLQkJLnVhcnRjbGsJPSBPUklPTjVYX1RDTEssCi0JfSwKLQl7IH0sCi19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X3VhcnQgPSB7Ci0JLm5hbWUJCQk9ICJzZXJpYWw4MjUwIiwKLQkuaWQJCQk9IFBMQVQ4MjUwX0RFVl9QTEFURk9STSwKLQkuZGV2CQkJPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhCT0gb3Jpb241eF91YXJ0X2RhdGEsCi0JfSwKLQkucmVzb3VyY2UJCT0gb3Jpb241eF91YXJ0X3Jlc291cmNlcywKLQkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG9yaW9uNXhfdWFydF9yZXNvdXJjZXMpLAotfTsKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFVTQiBDb250cm9sbGVyIC0gMiBpbnRlcmZhY2VzCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfZWhjaTBfcmVzb3VyY2VzW10gPSB7Ci0JewotCQkuc3RhcnQJPSBPUklPTjVYX1VTQjBfUEhZU19CQVNFLAotCQkuZW5kCT0gT1JJT041WF9VU0IwX1BIWVNfQkFTRSArIFNaXzRLIC0gMSwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5zdGFydAk9IElSUV9PUklPTjVYX1VTQjBfQ1RSTCwKLQkJLmVuZAk9IElSUV9PUklPTjVYX1VTQjBfQ1RSTCwKLQkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCi0JfSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9laGNpMV9yZXNvdXJjZXNbXSA9IHsKLQl7Ci0JCS5zdGFydAk9IE9SSU9ONVhfVVNCMV9QSFlTX0JBU0UsCi0JCS5lbmQJPSBPUklPTjVYX1VTQjFfUEhZU19CQVNFICsgU1pfNEsgLSAxLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCXsKLQkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfVVNCMV9DVFJMLAotCQkuZW5kCT0gSVJRX09SSU9ONVhfVVNCMV9DVFJMLAotCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKLQl9LAotfTsKLQogc3RhdGljIHN0cnVjdCBvcmlvbl9laGNpX2RhdGEgb3Jpb241eF9laGNpX2RhdGEgPSB7CiAJLmRyYW0JCT0gJm9yaW9uNXhfbWJ1c19kcmFtX2luZm8sCiB9OwogCiBzdGF0aWMgdTY0IGVoY2lfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKIAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEVIQ0kwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugb3Jpb241eF9laGNpMF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5zdGFydAk9IE9SSU9ONVhfVVNCMF9QSFlTX0JBU0UsCisJCS5lbmQJPSBPUklPTjVYX1VTQjBfUEhZU19CQVNFICsgU1pfNEsgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAk9IElSUV9PUklPTjVYX1VTQjBfQ1RSTCwKKwkJLmVuZAk9IElSUV9PUklPTjVYX1VTQjBfQ1RSTCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG9yaW9uNXhfZWhjaTAgPSB7CiAJLm5hbWUJCT0gIm9yaW9uLWVoY2kiLAogCS5pZAkJPSAwLApAQCAtMTczLDYgKzEwMSwyNyBAQAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShvcmlvbjV4X2VoY2kwX3Jlc291cmNlcyksCiB9OwogCit2b2lkIF9faW5pdCBvcmlvbjV4X2VoY2kwX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfZWhjaTApOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRUhDSTEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X2VoY2kxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CT0gT1JJT041WF9VU0IxX1BIWVNfQkFTRSwKKwkJLmVuZAk9IE9SSU9ONVhfVVNCMV9QSFlTX0JBU0UgKyBTWl80SyAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLnN0YXJ0CT0gSVJRX09SSU9ONVhfVVNCMV9DVFJMLAorCQkuZW5kCT0gSVJRX09SSU9ONVhfVVNCMV9DVFJMLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF9laGNpMSA9IHsKIAkubmFtZQkJPSAib3Jpb24tZWhjaSIsCiAJLmlkCQk9IDEsCkBAIC0xODUsMTEgKzEzNCwxNSBAQAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShvcmlvbjV4X2VoY2kxX3Jlc291cmNlcyksCiB9OwogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEdpZ2FiaXQgRXRoZXJuZXQgcG9ydAotICogKFRoZSBPcmlvbiBhbmQgRGlzY292ZXJ5IChNVjY0M3h4KSBmYW1pbGllcyB1c2UgdGhlIHNhbWUgRXRoZXJuZXQgZHJpdmVyKQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCit2b2lkIF9faW5pdCBvcmlvbjV4X2VoY2kxX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfZWhjaTEpOworfQogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2lnRQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdHJ1Y3QgbXY2NDN4eF9ldGhfc2hhcmVkX3BsYXRmb3JtX2RhdGEgb3Jpb241eF9ldGhfc2hhcmVkX2RhdGEgPSB7CiAJLmRyYW0JCT0gJm9yaW9uNXhfbWJ1c19kcmFtX2luZm8sCiAJLnRfY2xrCQk9IE9SSU9ONVhfVENMSywKQEAgLTIxOSw3ICsxNzIsNyBAQAogCQkuc3RhcnQJPSBJUlFfT1JJT041WF9FVEhfU1VNLAogCQkuZW5kCT0gSVJRX09SSU9ONVhfRVRIX1NVTSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCi0JfQorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X2V0aCA9IHsKQEAgLTIzOCwxMSArMTkxLDEwIEBACiAJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X2V0aCk7CiB9CiAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogSTJDIGNvbnRyb2xsZXIKLSAqIChUaGUgT3Jpb24gYW5kIERpc2NvdmVyeSAoTVY2NDN4eCkgZmFtaWxpZXMgc2hhcmUgdGhlIHNhbWUgSTJDIGNvbnRyb2xsZXIpCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBJMkMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdjY0eHh4X2kyY19wZGF0YSBvcmlvbjV4X2kyY19wZGF0YSA9IHsKIAkuZnJlcV9tCQk9IDgsIC8qIGFzc3VtZXMgMTY2IE1IeiBUQ0xLICovCiAJLmZyZXFfbgkJPSAzLApAQCAtMjUxLDE2ICsyMDMsMTUgQEAKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X2kyY19yZXNvdXJjZXNbXSA9IHsKIAl7Ci0JCS5uYW1lICAgPSAiaTJjIGJhc2UiLAotCQkuc3RhcnQgID0gSTJDX1BIWVNfQkFTRSwKLQkJLmVuZCAgICA9IEkyQ19QSFlTX0JBU0UgKyAweDIwIC0xLAotCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQl7Ci0JCS5uYW1lICAgPSAiaTJjIGlycSIsCi0JCS5zdGFydCAgPSBJUlFfT1JJT041WF9JMkMsCi0JCS5lbmQgICAgPSBJUlFfT1JJT041WF9JMkMsCi0JCS5mbGFncyAgPSBJT1JFU09VUkNFX0lSUSwKKwkJLm5hbWUJPSAiaTJjIGJhc2UiLAorCQkuc3RhcnQJPSBJMkNfUEhZU19CQVNFLAorCQkuZW5kCT0gSTJDX1BIWVNfQkFTRSArIDB4MWYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sIHsKKwkJLm5hbWUJPSAiaTJjIGlycSIsCisJCS5zdGFydAk9IElSUV9PUklPTjVYX0kyQywKKwkJLmVuZAk9IElSUV9PUklPTjVYX0kyQywKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCiAJfSwKIH07CiAKQEAgLTI3MCwzNiArMjIxLDQxIEBACiAJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKG9yaW9uNXhfaTJjX3Jlc291cmNlcyksCiAJLnJlc291cmNlCT0gb3Jpb241eF9pMmNfcmVzb3VyY2VzLAogCS5kZXYJCT0gewotCQkucGxhdGZvcm1fZGF0YSA9ICZvcmlvbjV4X2kyY19wZGF0YSwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmb3Jpb241eF9pMmNfcGRhdGEsCiAJfSwKIH07CiAKK3ZvaWQgX19pbml0IG9yaW9uNXhfaTJjX2luaXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfaTJjKTsKK30KKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIFNhdGEgcG9ydAorICogU0FUQQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfc2F0YV9yZXNvdXJjZXNbXSA9IHsKLSAgICAgICAgewotICAgICAgICAgICAgICAgIC5uYW1lICAgPSAic2F0YSBiYXNlIiwKLSAgICAgICAgICAgICAgICAuc3RhcnQgID0gT1JJT041WF9TQVRBX1BIWVNfQkFTRSwKLSAgICAgICAgICAgICAgICAuZW5kICAgID0gT1JJT041WF9TQVRBX1BIWVNfQkFTRSArIDB4NTAwMCAtIDEsCi0gICAgICAgICAgICAgICAgLmZsYWdzICA9IElPUkVTT1VSQ0VfTUVNLAotICAgICAgICB9LAogCXsKLSAgICAgICAgICAgICAgICAubmFtZSAgID0gInNhdGEgaXJxIiwKLSAgICAgICAgICAgICAgICAuc3RhcnQgID0gSVJRX09SSU9ONVhfU0FUQSwKLSAgICAgICAgICAgICAgICAuZW5kICAgID0gSVJRX09SSU9ONVhfU0FUQSwKLSAgICAgICAgICAgICAgICAuZmxhZ3MgID0gSU9SRVNPVVJDRV9JUlEsCi0gICAgICAgIH0sCisJCS5uYW1lCT0gInNhdGEgYmFzZSIsCisJCS5zdGFydAk9IE9SSU9ONVhfU0FUQV9QSFlTX0JBU0UsCisJCS5lbmQJPSBPUklPTjVYX1NBVEFfUEhZU19CQVNFICsgMHg1MDAwIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkubmFtZQk9ICJzYXRhIGlycSIsCisJCS5zdGFydAk9IElSUV9PUklPTjVYX1NBVEEsCisJCS5lbmQJPSBJUlFfT1JJT041WF9TQVRBLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF9zYXRhID0gewotCS5uYW1lICAgICAgICAgICA9ICJzYXRhX212IiwKLQkuaWQgICAgICAgICAgICAgPSAwLAorCS5uYW1lCQk9ICJzYXRhX212IiwKKwkuaWQJCT0gMCwKIAkuZGV2CQk9IHsKIAkJLmNvaGVyZW50X2RtYV9tYXNrCT0gMHhmZmZmZmZmZiwKIAl9LAotCS5udW1fcmVzb3VyY2VzICA9IEFSUkFZX1NJWkUob3Jpb241eF9zYXRhX3Jlc291cmNlcyksCi0JLnJlc291cmNlICAgICAgID0gb3Jpb241eF9zYXRhX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUob3Jpb241eF9zYXRhX3Jlc291cmNlcyksCisJLnJlc291cmNlCT0gb3Jpb241eF9zYXRhX3Jlc291cmNlcywKIH07CiAKIHZvaWQgX19pbml0IG9yaW9uNXhfc2F0YV9pbml0KHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgKnNhdGFfZGF0YSkKQEAgLTMwOSwyMyArMjY1LDExMSBAQAogCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9zYXRhKTsKIH0KIAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFVBUlQwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgcGxhdF9zZXJpYWw4MjUwX3BvcnQgb3Jpb241eF91YXJ0MF9kYXRhW10gPSB7CisJeworCQkubWFwYmFzZQk9IFVBUlQwX1BIWVNfQkFTRSwKKwkJLm1lbWJhc2UJPSAoY2hhciAqKVVBUlQwX1ZJUlRfQkFTRSwKKwkJLmlycQkJPSBJUlFfT1JJT041WF9VQVJUMCwKKwkJLmZsYWdzCQk9IFVQRl9TS0lQX1RFU1QgfCBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJLnJlZ3NoaWZ0CT0gMiwKKwkJLnVhcnRjbGsJPSBPUklPTjVYX1RDTEssCisJfSwgeworCX0sCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIG9yaW9uNXhfdWFydDBfcmVzb3VyY2VzW10gPSB7CisJeworCQkuc3RhcnQJCT0gVUFSVDBfUEhZU19CQVNFLAorCQkuZW5kCQk9IFVBUlQwX1BIWVNfQkFTRSArIDB4ZmYsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwl9LCB7CisJCS5zdGFydAkJPSBJUlFfT1JJT041WF9VQVJUMCwKKwkJLmVuZAkJPSBJUlFfT1JJT041WF9VQVJUMCwKKwkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBvcmlvbjV4X3VhcnQwID0geworCS5uYW1lCQkJPSAic2VyaWFsODI1MCIsCisJLmlkCQkJPSBQTEFUODI1MF9ERVZfUExBVEZPUk0sCisJLmRldgkJCT0geworCQkucGxhdGZvcm1fZGF0YQk9IG9yaW9uNXhfdWFydDBfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQkJPSBvcmlvbjV4X3VhcnQwX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwkJPSBBUlJBWV9TSVpFKG9yaW9uNXhfdWFydDBfcmVzb3VyY2VzKSwKK307CisKK3ZvaWQgX19pbml0IG9yaW9uNXhfdWFydDBfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF91YXJ0MCk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBVQVJUMQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IG9yaW9uNXhfdWFydDFfZGF0YVtdID0geworCXsKKwkJLm1hcGJhc2UJPSBVQVJUMV9QSFlTX0JBU0UsCisJCS5tZW1iYXNlCT0gKGNoYXIgKilVQVJUMV9WSVJUX0JBU0UsCisJCS5pcnEJCT0gSVJRX09SSU9ONVhfVUFSVDEsCisJCS5mbGFncwkJPSBVUEZfU0tJUF9URVNUIHwgVVBGX0JPT1RfQVVUT0NPTkYsCisJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCS5yZWdzaGlmdAk9IDIsCisJCS51YXJ0Y2xrCT0gT1JJT041WF9UQ0xLLAorCX0sIHsKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBvcmlvbjV4X3VhcnQxX3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0CQk9IFVBUlQxX1BIWVNfQkFTRSwKKwkJLmVuZAkJPSBVQVJUMV9QSFlTX0JBU0UgKyAweGZmLAorCQkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwgeworCQkuc3RhcnQJCT0gSVJRX09SSU9ONVhfVUFSVDEsCisJCS5lbmQJCT0gSVJRX09SSU9ONVhfVUFSVDEsCisJCS5mbGFncwkJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugb3Jpb241eF91YXJ0MSA9IHsKKwkubmFtZQkJCT0gInNlcmlhbDgyNTAiLAorCS5pZAkJCT0gUExBVDgyNTBfREVWX1BMQVRGT1JNMSwKKwkuZGV2CQkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gb3Jpb241eF91YXJ0MV9kYXRhLAorCX0sCisJLnJlc291cmNlCQk9IG9yaW9uNXhfdWFydDFfcmVzb3VyY2VzLAorCS5udW1fcmVzb3VyY2VzCQk9IEFSUkFZX1NJWkUob3Jpb241eF91YXJ0MV9yZXNvdXJjZXMpLAorfTsKKwordm9pZCBfX2luaXQgb3Jpb241eF91YXJ0MV9pbml0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X3VhcnQxKTsKK30KKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFRpbWUgaGFuZGxpbmcKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCiBzdGF0aWMgdm9pZCBvcmlvbjV4X3RpbWVyX2luaXQodm9pZCkKIHsKIAlvcmlvbl90aW1lX2luaXQoSVJRX09SSU9ONVhfQlJJREdFLCBPUklPTjVYX1RDTEspOwogfQogCiBzdHJ1Y3Qgc3lzX3RpbWVyIG9yaW9uNXhfdGltZXIgPSB7Ci0gICAgICAgIC5pbml0ID0gb3Jpb241eF90aW1lcl9pbml0LAorCS5pbml0ID0gb3Jpb241eF90aW1lcl9pbml0LAogfTsKIAorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdlbmVyYWwKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCiAvKgogICogSWRlbnRpZnkgZGV2aWNlIElEIGFuZCByZXYgZnJvbSBQQ0llIGNvbmZpZ3VyYXRpb24gaGVhZGVyIHNwYWNlICcwJy4KICAqLwpAQCAtMzUwLDggKzM5NCwxMCBAQAogCX0gZWxzZSBpZiAoKmRldiA9PSBNVjg4RjUxODFfREVWX0lEKSB7CiAJCWlmICgqcmV2ID09IE1WODhGNTE4MV9SRVZfQjEpIHsKIAkJCSpkZXZfbmFtZSA9ICJNVjg4RjUxODEtUmV2LUIxIjsKKwkJfSBlbHNlIGlmICgqcmV2ID09IE1WODhGNTE4MUxfUkVWX0ExKSB7CisJCQkqZGV2X25hbWUgPSAiTVY4OEY1MTgxTC1SZXYtQTEiOwogCQl9IGVsc2UgewotCQkJKmRldl9uYW1lID0gIk1WODhGNTE4MS1SZXYtVW5zdXBwb3J0ZWQiOworCQkJKmRldl9uYW1lID0gIk1WODhGNTE4MShMKS1SZXYtVW5zdXBwb3J0ZWQiOwogCQl9CiAJfSBlbHNlIHsKIAkJKmRldl9uYW1lID0gIkRldmljZS1Vbmtub3duIjsKQEAgLTM3MCwxNSArNDE2LDYgQEAKIAkgKiBTZXR1cCBPcmlvbiBhZGRyZXNzIG1hcAogCSAqLwogCW9yaW9uNXhfc2V0dXBfY3B1X21idXNfYnJpZGdlKCk7Ci0KLQkvKgotCSAqIFJlZ2lzdGVyIGRldmljZXMuCi0JICovCi0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZvcmlvbjV4X3VhcnQpOwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9laGNpMCk7Ci0JaWYgKGRldiA9PSBNVjg4RjUxODJfREVWX0lEKQotCQlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm9yaW9uNXhfZWhjaTEpOwotCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmb3Jpb241eF9pMmMpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2NvbW1vbi5oCmluZGV4IGJkMGYwNWQuLmY3MmNmMGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9jb21tb24uaAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvY29tbW9uLmgKQEAgLTEsMTAgKzEsMTIgQEAKICNpZm5kZWYgX19BUkNIX09SSU9ONVhfQ09NTU9OX0gKICNkZWZpbmUgX19BUkNIX09SSU9ONVhfQ09NTU9OX0gKIAorc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGE7CitzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhOworCiAvKgogICogQmFzaWMgT3Jpb24gaW5pdCBmdW5jdGlvbnMgdXNlZCBlYXJseSBieSBtYWNoaW5lLXNldHVwLgogICovCi0KIHZvaWQgb3Jpb241eF9tYXBfaW8odm9pZCk7CiB2b2lkIG9yaW9uNXhfaW5pdF9pcnEodm9pZCk7CiB2b2lkIG9yaW9uNXhfaW5pdCh2b2lkKTsKQEAgLTIzLDE1ICsyNSwyMiBAQAogdm9pZCBvcmlvbjV4X3NldHVwX2RldjJfd2luKHUzMiBiYXNlLCB1MzIgc2l6ZSk7CiB2b2lkIG9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4odTMyIGJhc2UsIHUzMiBzaXplKTsKIAotLyoKLSAqIFNoYXJlZCBjb2RlIHVzZWQgaW50ZXJuYWxseSBieSBvdGhlciBPcmlvbiBjb3JlIGZ1bmN0aW9ucy4KLSAqICgvbWFjaC1vcmlvbi9wY2kuYykKLSAqLwordm9pZCBvcmlvbjV4X2VoY2kwX2luaXQodm9pZCk7Cit2b2lkIG9yaW9uNXhfZWhjaTFfaW5pdCh2b2lkKTsKK3ZvaWQgb3Jpb241eF9ldGhfaW5pdChzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSAqZXRoX2RhdGEpOwordm9pZCBvcmlvbjV4X2kyY19pbml0KHZvaWQpOwordm9pZCBvcmlvbjV4X3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpOwordm9pZCBvcmlvbjV4X3VhcnQwX2luaXQodm9pZCk7Cit2b2lkIG9yaW9uNXhfdWFydDFfaW5pdCh2b2lkKTsKIAotc3RydWN0IHBjaV9zeXNfZGF0YTsKKy8qCisgKiBQQ0llL1BDSSBmdW5jdGlvbnMuCisgKi8KIHN0cnVjdCBwY2lfYnVzOworc3RydWN0IHBjaV9zeXNfZGF0YTsKIAogdm9pZCBvcmlvbjV4X3BjaWVfaWQodTMyICpkZXYsIHUzMiAqcmV2KTsKK3ZvaWQgb3Jpb241eF9wY2lfc2V0X2NhcmRidXNfbW9kZSh2b2lkKTsKIGludCBvcmlvbjV4X3BjaV9zeXNfc2V0dXAoaW50IG5yLCBzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpOwogc3RydWN0IHBjaV9idXMgKm9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cyhpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cyk7CiBpbnQgb3Jpb241eF9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pOwpAQCAtNDAsMjYgKzQ5LDkgQEAKICAqIFZhbGlkIEdQSU8gcGlucyBhY2NvcmRpbmcgdG8gTVBQIHNldHVwLCB1c2VkIGJ5IG1hY2hpbmUtc2V0dXAuCiAgKiAoL21hY2gtb3Jpb24vZ3Bpby5jKS4KICAqLwotCi12b2lkIG9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucyh1MzIgcGlucyk7Cit2b2lkIG9yaW9uNXhfZ3Bpb19zZXRfdmFsaWQodW5zaWduZWQgcGluLCBpbnQgdmFsaWQpOwogdm9pZCBncGlvX2Rpc3BsYXkodm9pZCk7CS8qIGRlYnVnICovCiAKLS8qCi0gKiBQdWxsIGluIE9yaW9uIEV0aGVybmV0IHBsYXRmb3JtX2RhdGEsIHVzZWQgYnkgbWFjaGluZS1zZXR1cAotICovCi0KLXN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhOwotCi12b2lkIG9yaW9uNXhfZXRoX2luaXQoc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgKmV0aF9kYXRhKTsKLQotLyoKLSAqIE9yaW9uIFNhdGEgcGxhdGZvcm1fZGF0YSwgdXNlZCBieSBtYWNoaW5lLXNldHVwCi0gKi8KLQotc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YTsKLQotdm9pZCBvcmlvbjV4X3NhdGFfaW5pdChzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhICpzYXRhX2RhdGEpOwotCiBzdHJ1Y3QgbWFjaGluZV9kZXNjOwogc3RydWN0IG1lbWluZm87CiBzdHJ1Y3QgdGFnOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RiODhmNTI4MS1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RiODhmNTI4MS1zZXR1cC5jCmluZGV4IDQ0YzY0MzQuLjg4NDA1ZTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kYjg4ZjUyODEtc2V0dXAuYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZGI4OGY1MjgxLXNldHVwLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIERCLTg4RjUyODEgb24gYm9hcmQgZGV2aWNlcwpAQCAtODYsNyArODcsNyBAQAogCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKIAkuaWQJCT0gMCwKIAkuZGV2CQk9IHsKLQkJLnBsYXRmb3JtX2RhdGEgPSAmZGI4OGY1MjgxX2Jvb3RfZmxhc2hfZGF0YSwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZGI4OGY1MjgxX2Jvb3RfZmxhc2hfZGF0YSwKIAl9LAogCS5udW1fcmVzb3VyY2VzCT0gMSwKIAkucmVzb3VyY2UJPSAmZGI4OGY1MjgxX2Jvb3RfZmxhc2hfcmVzb3VyY2UsCkBAIC0xMTAsNyArMTExLDcgQEAKIAkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCiAJLmlkCQk9IDEsCiAJLmRldgkJPSB7Ci0JCS5wbGF0Zm9ybV9kYXRhID0gJmRiODhmNTI4MV9ub3JfZmxhc2hfZGF0YSwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZGI4OGY1MjgxX25vcl9mbGFzaF9kYXRhLAogCX0sCiAJLm51bV9yZXNvdXJjZXMJPSAxLAogCS5yZXNvdXJjZQk9ICZkYjg4ZjUyODFfbm9yX2ZsYXNoX3Jlc291cmNlLApAQCAtMTI1LDE4ICsxMjYsMTUgQEAKIAkJLm5hbWUgPSAia2VybmVsIiwKIAkJLm9mZnNldCA9IDAsCiAJCS5zaXplID0gU1pfMk0sCi0JfSwKLQl7CisJfSwgewogCQkubmFtZSA9ICJyb290IiwKIAkJLm9mZnNldCA9IFNaXzJNLAogCQkuc2l6ZSA9IChTWl8xNk0gLSBTWl8yTSksCi0JfSwKLQl7CisJfSwgewogCQkubmFtZSA9ICJ1c2VyIiwKIAkJLm9mZnNldCA9IFNaXzE2TSwKIAkJLnNpemUgPSBTWl84TSwKLQl9LAotCXsKKwl9LCB7CiAJCS5uYW1lID0gInJlY292ZXJ5IiwKIAkJLm9mZnNldCA9IChTWl8xNk0gKyBTWl84TSksCiAJCS5zaXplID0gU1pfOE0sCkBAIC0yODgsNyArMjg2LDYgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIGRiODhmNTI4MV9ldGhfZGF0YSA9IHsKIAkucGh5X2FkZHIJPSA4LAotCS5mb3JjZV9waHlfYWRkciA9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTMwMSwxMSArMjk4LDI4IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdlbmVyYWwgU2V0dXAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGI4OGY1MjgxX2RldnNbXSBfX2luaXRkYXRhID0gewotCSZkYjg4ZjUyODFfYm9vdF9mbGFzaCwKLQkmZGI4OGY1MjgxX25vcl9mbGFzaCwKLQkmZGI4OGY1MjgxX25hbmRfZmxhc2gsCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgZGI4OGY1MjgxX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFVTQiBPdmVyIEN1cnJlbnQgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogVVNCIFZiYXQgaW5wdXQgKi8KKwl7ICAyLCBNUFBfUENJX0FSQiB9LAkJLyogUENJX1JFUW5bMl0gKi8KKwl7ICAzLCBNUFBfUENJX0FSQiB9LAkJLyogUENJX0dOVG5bMl0gKi8KKwl7ICA0LCBNUFBfUENJX0FSQiB9LAkJLyogUENJX1JFUW5bM10gKi8KKwl7ICA1LCBNUFBfUENJX0FSQiB9LAkJLyogUENJX0dOVG5bM10gKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogSlAwLCBDT04xNy4yICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIEpQMSwgQ09OMTcuMSAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiBKUDIsIENPTjExLjIgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogSlAzLCBDT04xMS4zICovCisJeyAxMCwgTVBQX0dQSU8gfSwJCS8qIFJUQyBpbnQgKi8KKwl7IDExLCBNUFBfR1BJTyB9LAkJLyogQmF1ZCBSYXRlIEdlbmVyYXRvciAqLworCXsgMTIsIE1QUF9HUElPIH0sCQkvKiBQQ0kgaW50IDEgKi8KKwl7IDEzLCBNUFBfR1BJTyB9LAkJLyogUENJIGludCAyICovCisJeyAxNCwgTVBQX05BTkQgfSwJCS8qIE5BTkRfUkVuWzJdICovCisJeyAxNSwgTVBQX05BTkQgfSwJCS8qIE5BTkRfV0VuWzJdICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxX1JYICovCisJeyAxNywgTVBQX1VBUlQgfSwJCS8qIFVBUlQxX1RYICovCisJeyAxOCwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxX0NUU24gKi8KKwl7IDE5LCBNUFBfVUFSVCB9LAkJLyogVUFSVDFfUlRTbiAqLworCXsgLTEgfSwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBkYjg4ZjUyODFfaW5pdCh2b2lkKQpAQCAtMzE1LDM5ICszMjksMzEgQEAKIAkgKi8KIAlvcmlvbjV4X2luaXQoKTsKIAorCW9yaW9uNXhfbXBwX2NvbmYoZGI4OGY1MjgxX21wcF9tb2Rlcyk7CisJd3JpdGVsKDAsIE1QUF9ERVZfQ1RSTCk7CQkvKiBERVZfRFszMToxNl0gKi8KKwogCS8qCi0JICogU2V0dXAgdGhlIENQVSBhZGRyZXNzIGRlY29kZSB3aW5kb3dzIGZvciBvdXIgb24tYm9hcmQgZGV2aWNlcworCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KIAkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZkYjg4ZjUyODFfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQxX2luaXQoKTsKKwogCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKERCODhGNTI4MV9OT1JfQk9PVF9CQVNFLAogCQkJCURCODhGNTI4MV9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRiODhmNTI4MV9ib290X2ZsYXNoKTsKKwogCW9yaW9uNXhfc2V0dXBfZGV2MF93aW4oREI4OEY1MjgxXzdTRUdfQkFTRSwgREI4OEY1MjgxXzdTRUdfU0laRSk7CisKIAlvcmlvbjV4X3NldHVwX2RldjFfd2luKERCODhGNTI4MV9OT1JfQkFTRSwgREI4OEY1MjgxX05PUl9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRiODhmNTI4MV9ub3JfZmxhc2gpOworCiAJb3Jpb241eF9zZXR1cF9kZXYyX3dpbihEQjg4RjUyODFfTkFORF9CQVNFLCBEQjg4RjUyODFfTkFORF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmRiODhmNTI4MV9uYW5kX2ZsYXNoKTsKIAotCS8qCi0JICogU2V0dXAgTXVsdGlwbGV4aW5nIFBpbnM6Ci0JICogTVBQMDogR1BJTyAoVVNCIE92ZXIgQ3VycmVudCkJTVBQMTogR1BJTyAoVVNCIFZiYXQgaW5wdXQpCi0JICogTVBQMjogUENJX1JFUW5bMl0JCQlNUFAzOiBQQ0lfR05UblsyXQotCSAqIE1QUDQ6IFBDSV9SRVFuWzNdCQkJTVBQNTogUENJX0dOVG5bM10KLQkgKiBNUFA2OiBHUElPIChKUDAsIENPTjE3LjIpCQlNUFA3OiBHUElPIChKUDEsIENPTjE3LjEpCi0JICogTVBQODogR1BJTyAoSlAyLCBDT04xMS4yKQkJTVBQOTogR1BJTyAoSlAzLCBDT04xMS4zKQotCSAqIE1QUDEwOiBHUElPIChSVEMgaW50KQkJTVBQMTE6IEdQSU8gKEJhdWQgUmF0ZSBHZW5lcmF0b3IpCi0JICogTVBQMTI6IEdQSU8gKFBDSSBpbnQgMSkJCU1QUDEzOiBHUElPIChQQ0kgaW50IDIpCi0JICogTVBQMTQ6IE5BTkRfUkVuWzJdCQkJTVBQMTU6IE5BTkRfV0VuWzJdCi0JICogTVBQMTY6IFVBUlQxX1JYCQkJTVBQMTc6IFVBUlQxX1RYCi0JICogTVBQMTg6IFVBUlQxX0NUUwkJCU1QUDE5OiBVQVJUMV9SVFMKLQkgKiBNUFAtREVWOiBERVZfRFsxNjozMV0KLQkgKi8KLQlvcmlvbjV4X3dyaXRlKE1QUF8wXzdfQ1RSTCwgMHgwMDIyMjIwMyk7Ci0Jb3Jpb241eF93cml0ZShNUFBfOF8xNV9DVFJMLCAweDQ0MDAwMDAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF8xNl8xOV9DVFJMLCAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF9ERVZfQ1RSTCwgMCk7Ci0KLQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnMoMHgwMDAwM2ZjMyk7Ci0KLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhkYjg4ZjUyODFfZGV2cywgQVJSQVlfU0laRShkYjg4ZjUyODFfZGV2cykpOwogCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZkYjg4ZjUyODFfaTJjX3J0YywgMSk7Ci0Jb3Jpb241eF9ldGhfaW5pdCgmZGI4OGY1MjgxX2V0aF9kYXRhKTsKIH0KIAogTUFDSElORV9TVEFSVChEQjg4RjUyODEsICJNYXJ2ZWxsIE9yaW9uLTIgRGV2ZWxvcG1lbnQgQm9hcmQiKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RuczMyMy1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2RuczMyMy1zZXR1cC5jCmluZGV4IDI3Y2U5NjcuLjM3OTFjYTYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9kbnMzMjMtc2V0dXAuYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZG5zMzIzLXNldHVwLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCiAKICNkZWZpbmUgRE5TMzIzX0dQSU9fTEVEX1JJR0hUX0FNQkVSCTEKICNkZWZpbmUgRE5TMzIzX0dQSU9fTEVEX0xFRlRfQU1CRVIJMgpAQCAtNTIsOCArNTMsNiBAQAogCWlmIChpcnEgIT0gLTEpCiAJCXJldHVybiBpcnE7CiAKLQlwcl9lcnIoIiVzOiByZXF1ZXN0ZWQgbWFwcGluZyBmb3IgdW5rbm93biBkZXZpY2VcbiIsIF9fZnVuY19fKTsKLQogCXJldHVybiAtMTsKIH0KIApAQCAtODEsNyArODAsNiBAQAogCiBzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgZG5zMzIzX2V0aF9kYXRhID0gewogCS5waHlfYWRkciA9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMTksNyArMTE3LDcgQEAKIAkJLm5hbWUJPSAidS1ib290IiwKIAkJLnNpemUJPSAweDAwMDMwMDAwLAogCQkub2Zmc2V0CT0gMHgwMDdkMDAwMCwKLQl9CisJfSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIGRuczMyM19ub3JfZmxhc2hfZGF0YSA9IHsKQEAgLTEzNyw3ICsxMzUsOSBAQAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZG5zMzIzX25vcl9mbGFzaCA9IHsKIAkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCiAJLmlkCQk9IDAsCi0JLmRldgkJPSB7IC5wbGF0Zm9ybV9kYXRhID0gJmRuczMyM19ub3JfZmxhc2hfZGF0YSwgfSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZG5zMzIzX25vcl9mbGFzaF9kYXRhLAorCX0sCiAJLnJlc291cmNlCT0gJmRuczMyM19ub3JfZmxhc2hfcmVzb3VyY2UsCiAJLm51bV9yZXNvdXJjZXMJPSAxLAogfTsKQEAgLTE3MCw3ICsxNzAsOSBAQAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZG5zMzIzX2dwaW9fbGVkcyA9IHsKIAkubmFtZQkJPSAibGVkcy1ncGlvIiwKIAkuaWQJCT0gLTEsCi0JLmRldgkJPSB7IC5wbGF0Zm9ybV9kYXRhID0gJmRuczMyM19sZWRfZGF0YSwgfSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZG5zMzIzX2xlZF9kYXRhLAorCX0sCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTgzLDM1ICsxODUsNTMgQEAKIAkJLmdwaW8JCT0gRE5TMzIzX0dQSU9fS0VZX1JFU0VULAogCQkuZGVzYwkJPSAiUmVzZXQgQnV0dG9uIiwKIAkJLmFjdGl2ZV9sb3cJPSAxLAotCX0sCi0JeworCX0sIHsKIAkJLmNvZGUJCT0gS0VZX1BPV0VSLAogCQkuZ3BpbwkJPSBETlMzMjNfR1BJT19LRVlfUE9XRVIsCiAJCS5kZXNjCQk9ICJQb3dlciBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfQorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIGRuczMyM19idXR0b25fZGF0YSA9IHsKIAkuYnV0dG9ucwk9IGRuczMyM19idXR0b25zLAotCS5uYnV0dG9ucyAgICAgICA9IEFSUkFZX1NJWkUoZG5zMzIzX2J1dHRvbnMpLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUoZG5zMzIzX2J1dHRvbnMpLAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZG5zMzIzX2J1dHRvbl9kZXZpY2UgPSB7CiAJLm5hbWUJCT0gImdwaW8ta2V5cyIsCiAJLmlkCQk9IC0xLAogCS5udW1fcmVzb3VyY2VzCT0gMCwKLQkuZGV2CQk9IHsgLnBsYXRmb3JtX2RhdGEgID0gJmRuczMyM19idXR0b25fZGF0YSwgfSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmZG5zMzIzX2J1dHRvbl9kYXRhLAorCX0sCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbCBTZXR1cAogICovCi0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkbnMzMjNfcGxhdF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmZG5zMzIzX25vcl9mbGFzaCwKLQkmZG5zMzIzX2dwaW9fbGVkcywKLQkmZG5zMzIzX2J1dHRvbl9kZXZpY2UsCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgZG5zMzIzX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX1BDSUVfUlNUX09VVG4gfSwKKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogcmlnaHQgYW1iZXIgTEVEIChzYXRhIGNoMCkgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogbGVmdCBhbWJlciBMRUQgKHNhdGEgY2gxKSAqLworCXsgIDMsIE1QUF9VTlVTRUQgfSwKKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogcG93ZXIgYnV0dG9uIExFRCAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBwb3dlciBidXR0b24gTEVEICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIEdNVCBHNzUxLTJmIG92ZXJ0ZW1wICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIE00MVQ4MCBuSVJRL09VVC9TUVcgKi8KKwl7ICA4LCBNUFBfR1BJTyB9LAkJLyogdHJpZ2dlcnMgcG93ZXIgb2ZmICovCisJeyAgOSwgTVBQX0dQSU8gfSwJCS8qIHBvd2VyIGJ1dHRvbiBzd2l0Y2ggKi8KKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogcmVzZXQgYnV0dG9uIHN3aXRjaCAqLworCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfVU5VU0VEIH0sCisJeyAxMywgTVBQX1VOVVNFRCB9LAorCXsgMTQsIE1QUF9VTlVTRUQgfSwKKwl7IDE1LCBNUFBfVU5VU0VEIH0sCisJeyAxNiwgTVBQX1VOVVNFRCB9LAorCXsgMTcsIE1QUF9VTlVTRUQgfSwKKwl7IDE4LCBNUFBfVU5VU0VEIH0sCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKIH07CiAKIC8qCkBAIC0yMjUsMTcgKzI0NSwxNSBAQAogc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyBfX2luaXRkYXRhIGRuczMyM19pMmNfZGV2aWNlc1tdID0gewogCXsKIAkJSTJDX0JPQVJEX0lORk8oImc3NjBhIiwgMHgzZSksCi0JfSwKICNpZiAwCiAJLyogdGhpcyBlbnRyeSByZXF1aXJlcyB0aGUgbmV3LXN0eWxlIGRyaXZlciBtb2RlbCBsbTc1IGRyaXZlciwKIAkgKiBmb3IgdGhlIG1lYW50aW1lICJpbnNtb2QgbG03NS5rbyBmb3JjZV9sbTc1PTAsMHg0OCIgaXMgbmVlZGVkICovCi0JeworCX0sIHsKIAkJSTJDX0JPQVJEX0lORk8oImc3NTEiLCAweDQ4KSwKLQl9LAogI2VuZGlmCi0JeworCX0sIHsKIAkJSTJDX0JPQVJEX0lORk8oIm00MXQ4MCIsIDB4NjgpLAotCX0KKwl9LAogfTsKIAogLyogRE5TLTMyMyBzcGVjaWZpYyBwb3dlciBvZmYgbWV0aG9kICovCkBAIC0yNTAsNjIgKzI2OCwzNSBAQAogCS8qIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuICovCiAJb3Jpb241eF9pbml0KCk7CiAKKwlvcmlvbjV4X21wcF9jb25mKGRuczMyM19tcHBfbW9kZXMpOworCXdyaXRlbCgwLCBNUFBfREVWX0NUUkwpOwkJLyogREVWX0RbMzE6MTZdICovCisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZkbnMzMjNfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKwogCS8qIHNldHVwIGZsYXNoIG1hcHBpbmcKIAkgKiBDUzMgaG9sZHMgYSA4IE1CIFNwYW5zaW9uIFMyOUdMMDY0TTkwVEZJUjQKIAkgKi8KIAlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihETlMzMjNfTk9SX0JPT1RfQkFTRSwgRE5TMzIzX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmZG5zMzIzX25vcl9mbGFzaCk7CiAKLQkvKiBETlMtMzIzIGhhcyBhIE1hcnZlbGwgODhYNzA0MiBTQVRBIGNvbnRyb2xsZXIgYXR0YWNoZWQgdmlhIFBDSWUKLQkgKgotCSAqIE9wZW4gYSBzcGVjaWFsIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIHRoZSBQQ0llIFdBLgotCSAqLwotCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKLQkJCQlPUklPTjVYX1BDSUVfV0FfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkbnMzMjNfZ3Bpb19sZWRzKTsKIAotCS8qIHNldCBNUFAgdG8gMCBhcyBELUxpbmsncyAyLjYuMTIuNiBrZXJuZWwgZGlkICovCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDApOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfREVWX0NUUkwsIDApOwotCi0JLyogRGVmaW5lIHVzZWQgR1BJTyBwaW5zCi0KLQkgIEdQSU8gTWFwOgotCi0JICB8ICAwIHwgICAgIHwgUEVYX1JTVF9PVVQgKG5vdCBjb250cm9sbGVkIGJ5IEdQSU8pCi0JICB8ICAxIHwgT3V0IHwgcmlnaHQgYW1iZXIgTEVEICg9IHNhdGEgY2gwIExFRCkgIChsb3ctYWN0aXZlKQotCSAgfCAgMiB8IE91dCB8IGxlZnQgIGFtYmVyIExFRCAoPSBzYXRhIGNoMSBMRUQpICAobG93LWFjdGl2ZSkKLQkgIHwgIDMgfCBPdXQgfCAvL3Vua25vd24vLwotCSAgfCAgNCB8IE91dCB8IHBvd2VyIGJ1dHRvbiBMRUQgKGxvdy1hY3RpdmUsIHRvZ2V0aGVyIHdpdGggcGluICM1KQotCSAgfCAgNSB8IE91dCB8IHBvd2VyIGJ1dHRvbiBMRUQgKGxvdy1hY3RpdmUsIHRvZ2V0aGVyIHdpdGggcGluICM0KQotCSAgfCAgNiB8IEluICB8IEdNVCBHNzUxLTJmIG92ZXJ0ZW1wLiBzaHV0ZG93biBzaWduYWwgKGxvdy1hY3RpdmUpCi0JICB8ICA3IHwgSW4gIHwgTTQxVDgwIG5JUlEvT1VUL1NRVyBzaWduYWwKLQkgIHwgIDggfCBPdXQgfCB0cmlnZ2VycyBwb3dlciBvZmYgKGhpZ2gtYWN0aXZlKQotCSAgfCAgOSB8IEluICB8IHBvd2VyIGJ1dHRvbiBzd2l0Y2ggKGxvdy1hY3RpdmUpCi0JICB8IDEwIHwgSW4gIHwgcmVzZXQgYnV0dG9uIHN3aXRjaCAobG93LWFjdGl2ZSkKLQkgIHwgMTEgfCBPdXQgfCAvL3Vua25vd24vLwotCSAgfCAxMiB8IE91dCB8IC8vdW5rbm93bi8vCi0JICB8IDEzIHwgT3V0IHwgLy91bmtub3duLy8KLQkgIHwgMTQgfCBPdXQgfCAvL3Vua25vd24vLwotCSAgfCAxNSB8IE91dCB8IC8vdW5rbm93bi8vCi0JKi8KLQlvcmlvbjV4X2dwaW9fc2V0X3ZhbGlkX3BpbnMoMHgwN2Y2KTsKLQotCS8qIHJlZ2lzdGVyIGRuczMyMyBzcGVjaWZpYyBwb3dlci1vZmYgbWV0aG9kICovCi0JaWYgKChncGlvX3JlcXVlc3QoRE5TMzIzX0dQSU9fUE9XRVJfT0ZGLCAiUE9XRVJPRkYiKSAhPSAwKQotCSAgICB8fCAoZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KEROUzMyM19HUElPX1BPV0VSX09GRiwgMCkgIT0gMCkpCi0JCXByX2VycigiRE5TMzIzOiBmYWlsZWQgdG8gc2V0dXAgcG93ZXItb2ZmIEdQSU9cbiIpOwotCi0JcG1fcG93ZXJfb2ZmID0gZG5zMzIzX3Bvd2VyX29mZjsKLQotCS8qIHJlZ2lzdGVyIGZsYXNoIGFuZCBvdGhlciBwbGF0Zm9ybSBkZXZpY2VzICovCi0JcGxhdGZvcm1fYWRkX2RldmljZXMoZG5zMzIzX3BsYXRfZGV2aWNlcywKLQkJCSAgICAgQVJSQVlfU0laRShkbnMzMjNfcGxhdF9kZXZpY2VzKSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZkbnMzMjNfYnV0dG9uX2RldmljZSk7CiAKIAlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBkbnMzMjNfaTJjX2RldmljZXMsCiAJCQkJQVJSQVlfU0laRShkbnMzMjNfaTJjX2RldmljZXMpKTsKIAotCW9yaW9uNXhfZXRoX2luaXQoJmRuczMyM19ldGhfZGF0YSk7CisJLyogcmVnaXN0ZXIgZG5zMzIzIHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlpZiAoZ3Bpb19yZXF1ZXN0KEROUzMyM19HUElPX1BPV0VSX09GRiwgIlBPV0VST0ZGIikgIT0gMCB8fAorCSAgICBncGlvX2RpcmVjdGlvbl9vdXRwdXQoRE5TMzIzX0dQSU9fUE9XRVJfT0ZGLCAwKSAhPSAwKQorCQlwcl9lcnIoIkROUzMyMzogZmFpbGVkIHRvIHNldHVwIHBvd2VyLW9mZiBHUElPXG4iKTsKKwlwbV9wb3dlcl9vZmYgPSBkbnMzMjNfcG93ZXJfb2ZmOwogfQogCiAvKiBXYXJuaW5nOiBELUxpbmsgdXNlcyBhIHdyb25nIG1hY2gtdHlwZSAoPTUyNikgaW4gdGhlaXIgYm9vdGxvYWRlciAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2dwaW8uYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9ncGlvLmMKaW5kZXggODEwOGMzMS4uZDA5Nzk3OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2dwaW8uYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvZ3Bpby5jCkBAIC0yNCw5ICsyNCwxMiBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgZ3Bpb192YWxpZFtCSVRTX1RPX0xPTkdTKEdQSU9fTUFYKV07CiBzdGF0aWMgY29uc3QgY2hhciAqZ3Bpb19sYWJlbFtHUElPX01BWF07ICAvKiBub24gbnVsbCBmb3IgYWxsb2NhdGVkIEdQSU9zICovCiAKLXZvaWQgX19pbml0IG9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucyh1MzIgcGlucykKK3ZvaWQgX19pbml0IG9yaW9uNXhfZ3Bpb19zZXRfdmFsaWQodW5zaWduZWQgcGluLCBpbnQgdmFsaWQpCiB7Ci0JZ3Bpb192YWxpZFswXSA9IHBpbnM7CisJaWYgKHZhbGlkKQorCQlfX3NldF9iaXQocGluLCBncGlvX3ZhbGlkKTsKKwllbHNlCisJCV9fY2xlYXJfYml0KHBpbiwgZ3Bpb192YWxpZCk7CiB9CiAKIC8qCkBAIC05MywxMCArOTYsMTAgQEAKIHsKIAlpbnQgdmFsLCBtYXNrID0gMSA8PCBwaW47CiAKLQlpZiAob3Jpb241eF9yZWFkKEdQSU9fSU9fQ09ORikgJiBtYXNrKQotCQl2YWwgPSBvcmlvbjV4X3JlYWQoR1BJT19EQVRBX0lOKSBeIG9yaW9uNXhfcmVhZChHUElPX0lOX1BPTCk7CisJaWYgKHJlYWRsKEdQSU9fSU9fQ09ORikgJiBtYXNrKQorCQl2YWwgPSByZWFkbChHUElPX0RBVEFfSU4pIF4gcmVhZGwoR1BJT19JTl9QT0wpOwogCWVsc2UKLQkJdmFsID0gb3Jpb241eF9yZWFkKEdQSU9fT1VUKTsKKwkJdmFsID0gcmVhZGwoR1BJT19PVVQpOwogCiAJcmV0dXJuIHZhbCAmIG1hc2s7CiB9CkBAIC0xODgsMzkgKzE5MSwzOSBAQAogCQkJcHJpbnRrKCJHUElPLCBmcmVlXG4iKTsKIAkJfSBlbHNlIHsKIAkJCXByaW50aygiR1BJTywgdXNlZCBieSAlcywgIiwgZ3Bpb19sYWJlbFtpXSk7Ci0JCQlpZiAob3Jpb241eF9yZWFkKEdQSU9fSU9fQ09ORikgJiAoMSA8PCBpKSkgeworCQkJaWYgKHJlYWRsKEdQSU9fSU9fQ09ORikgJiAoMSA8PCBpKSkgewogCQkJCXByaW50aygiaW5wdXQsIGFjdGl2ZSAlcywgbGV2ZWwgJXMsIGVkZ2UgJXNcbiIsCi0JCQkJKChvcmlvbjV4X3JlYWQoR1BJT19JTl9QT0wpID4+IGkpICYgMSkgPyAibG93IiA6ICJoaWdoIiwKLQkJCQkoKG9yaW9uNXhfcmVhZChHUElPX0xFVkVMX01BU0spID4+IGkpICYgMSkgPyAiZW5hYmxlZCIgOiAibWFza2VkIiwKLQkJCQkoKG9yaW9uNXhfcmVhZChHUElPX0VER0VfTUFTSykgPj4gaSkgJiAxKSA/ICJlbmFibGVkIiA6ICJtYXNrZWQiKTsKKwkJCQkoKHJlYWRsKEdQSU9fSU5fUE9MKSA+PiBpKSAmIDEpID8gImxvdyIgOiAiaGlnaCIsCisJCQkJKChyZWFkbChHUElPX0xFVkVMX01BU0spID4+IGkpICYgMSkgPyAiZW5hYmxlZCIgOiAibWFza2VkIiwKKwkJCQkoKHJlYWRsKEdQSU9fRURHRV9NQVNLKSA+PiBpKSAmIDEpID8gImVuYWJsZWQiIDogIm1hc2tlZCIpOwogCQkJfSBlbHNlIHsKLQkJCQlwcmludGsoIm91dHB1dCwgdmFsPSVkXG4iLCAob3Jpb241eF9yZWFkKEdQSU9fT1VUKSA+PiBpKSAmIDEpOworCQkJCXByaW50aygib3V0cHV0LCB2YWw9JWRcbiIsIChyZWFkbChHUElPX09VVCkgPj4gaSkgJiAxKTsKIAkJCX0KIAkJfQogCX0KIAogCXByaW50ayhLRVJOX0RFQlVHICJNUFBfMF83X0NUUkwgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJTVBQXzBfN19DVFJMLCBvcmlvbjV4X3JlYWQoTVBQXzBfN19DVFJMKSk7CisJCQkJTVBQXzBfN19DVFJMLCByZWFkbChNUFBfMF83X0NUUkwpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiTVBQXzhfMTVfQ1RSTCAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlNUFBfOF8xNV9DVFJMLCBvcmlvbjV4X3JlYWQoTVBQXzhfMTVfQ1RSTCkpOworCQkJCU1QUF84XzE1X0NUUkwsIHJlYWRsKE1QUF84XzE1X0NUUkwpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiTVBQXzE2XzE5X0NUUkwgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJTVBQXzE2XzE5X0NUUkwsIG9yaW9uNXhfcmVhZChNUFBfMTZfMTlfQ1RSTCkpOworCQkJCU1QUF8xNl8xOV9DVFJMLCByZWFkbChNUFBfMTZfMTlfQ1RSTCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJNUFBfREVWX0NUUkwgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJTVBQX0RFVl9DVFJMLCBvcmlvbjV4X3JlYWQoTVBQX0RFVl9DVFJMKSk7CisJCQkJTVBQX0RFVl9DVFJMLCByZWFkbChNUFBfREVWX0NUUkwpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19PVVQgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19PVVQsIG9yaW9uNXhfcmVhZChHUElPX09VVCkpOworCQkJCUdQSU9fT1VULCByZWFkbChHUElPX09VVCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0lPX0NPTkYgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19JT19DT05GLCBvcmlvbjV4X3JlYWQoR1BJT19JT19DT05GKSk7CisJCQkJR1BJT19JT19DT05GLCByZWFkbChHUElPX0lPX0NPTkYpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19CTElOS19FTiAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0JMSU5LX0VOLCBvcmlvbjV4X3JlYWQoR1BJT19CTElOS19FTikpOworCQkJCUdQSU9fQkxJTktfRU4sIHJlYWRsKEdQSU9fQkxJTktfRU4pKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19JTl9QT0wgKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19JTl9QT0wsIG9yaW9uNXhfcmVhZChHUElPX0lOX1BPTCkpOworCQkJCUdQSU9fSU5fUE9MLCByZWFkbChHUElPX0lOX1BPTCkpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0RBVEFfSU4gKDB4JTA4eCkgPSAweCUwOHhcbiIsCi0JCQkJR1BJT19EQVRBX0lOLCBvcmlvbjV4X3JlYWQoR1BJT19EQVRBX0lOKSk7CisJCQkJR1BJT19EQVRBX0lOLCByZWFkbChHUElPX0RBVEFfSU4pKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiR1BJT19MRVZFTF9NQVNLICgweCUwOHgpID0gMHglMDh4XG4iLAotCQkJCUdQSU9fTEVWRUxfTUFTSywgb3Jpb241eF9yZWFkKEdQSU9fTEVWRUxfTUFTSykpOworCQkJCUdQSU9fTEVWRUxfTUFTSywgcmVhZGwoR1BJT19MRVZFTF9NQVNLKSk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIkdQSU9fRURHRV9DQVVTRSAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0VER0VfQ0FVU0UsIG9yaW9uNXhfcmVhZChHUElPX0VER0VfQ0FVU0UpKTsKKwkJCQlHUElPX0VER0VfQ0FVU0UsIHJlYWRsKEdQSU9fRURHRV9DQVVTRSkpOwogCXByaW50ayhLRVJOX0RFQlVHICJHUElPX0VER0VfTUFTSyAoMHglMDh4KSA9IDB4JTA4eFxuIiwKLQkJCQlHUElPX0VER0VfTUFTSywgb3Jpb241eF9yZWFkKEdQSU9fRURHRV9NQVNLKSk7CisJCQkJR1BJT19FREdFX01BU0ssIHJlYWRsKEdQSU9fRURHRV9NQVNLKSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvaXJxLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvaXJxLmMKaW5kZXggZGQyMWYzOC4uZTJhMDA4NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2lycS5jCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9pcnEuYwpAQCAtODIsNyArODIsNyBAQAogCWludCBwaW4gPSBpcnFfdG9fZ3BpbyhpcnEpOwogCXN0cnVjdCBpcnFfZGVzYyAqZGVzYzsKIAotCWlmICgob3Jpb241eF9yZWFkKEdQSU9fSU9fQ09ORikgJiAoMSA8PCBwaW4pKSA9PSAwKSB7CisJaWYgKChyZWFkbChHUElPX0lPX0NPTkYpICYgKDEgPDwgcGluKSkgPT0gMCkgewogCQlwcmludGsoS0VSTl9FUlIgIm9yaW9uNXhfZ3Bpb19zZXRfaXJxX3R5cGUgZmFpbGVkICIKIAkJCQkiKGlycSAlZCwgcGluICVkKS5cbiIsIGlycSwgcGluKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMTcsNyArMTE3LDcgQEAKIAkJLyoKIAkJICogc2V0IGluaXRpYWwgcG9sYXJpdHkgYmFzZWQgb24gY3VycmVudCBpbnB1dCBsZXZlbAogCQkgKi8KLQkJaWYgKChvcmlvbjV4X3JlYWQoR1BJT19JTl9QT0wpIF4gb3Jpb241eF9yZWFkKEdQSU9fREFUQV9JTikpCisJCWlmICgocmVhZGwoR1BJT19JTl9QT0wpIF4gcmVhZGwoR1BJT19EQVRBX0lOKSkKIAkJICAgICYgKDEgPDwgcGluKSkKIAkJCW9yaW9uNXhfc2V0Yml0cyhHUElPX0lOX1BPTCwgKDEgPDwgcGluKSk7IC8qIGZhbGxpbmcgKi8KIAkJZWxzZQpAQCAtMTQ5LDggKzE0OSw4IEBACiAKIAlCVUdfT04oaXJxIDwgSVJRX09SSU9ONVhfR1BJT18wXzcgfHwgaXJxID4gSVJRX09SSU9ONVhfR1BJT18yNF8zMSk7CiAJb2ZmcyA9IChpcnEgLSBJUlFfT1JJT041WF9HUElPXzBfNykgKiA4OwotCWNhdXNlID0gKG9yaW9uNXhfcmVhZChHUElPX0RBVEFfSU4pICYgb3Jpb241eF9yZWFkKEdQSU9fTEVWRUxfTUFTSykpIHwKLQkJKG9yaW9uNXhfcmVhZChHUElPX0VER0VfQ0FVU0UpICYgb3Jpb241eF9yZWFkKEdQSU9fRURHRV9NQVNLKSk7CisJY2F1c2UgPSAocmVhZGwoR1BJT19EQVRBX0lOKSAmIHJlYWRsKEdQSU9fTEVWRUxfTUFTSykpIHwKKwkJKHJlYWRsKEdQSU9fRURHRV9DQVVTRSkgJiByZWFkbChHUElPX0VER0VfTUFTSykpOwogCiAJZm9yIChwaW4gPSBvZmZzOyBwaW4gPCBvZmZzICsgODsgcGluKyspIHsKIAkJaWYgKGNhdXNlICYgKDEgPDwgcGluKSkgewpAQCAtMTU4LDkgKzE1OCw5IEBACiAJCQlkZXNjID0gaXJxX2Rlc2MgKyBpcnE7CiAJCQlpZiAoKGRlc2MtPnN0YXR1cyAmIElSUV9UWVBFX1NFTlNFX01BU0spID09IElSUVRfQk9USEVER0UpIHsKIAkJCQkvKiBTd2FwIHBvbGFyaXR5IChyYWNlIHdpdGggR1BJTyBsaW5lKSAqLwotCQkJCXUzMiBwb2xhcml0eSA9IG9yaW9uNXhfcmVhZChHUElPX0lOX1BPTCk7CisJCQkJdTMyIHBvbGFyaXR5ID0gcmVhZGwoR1BJT19JTl9QT0wpOwogCQkJCXBvbGFyaXR5IF49IDEgPDwgcGluOwotCQkJCW9yaW9uNXhfd3JpdGUoR1BJT19JTl9QT0wsIHBvbGFyaXR5KTsKKwkJCQl3cml0ZWwocG9sYXJpdHksIEdQSU9fSU5fUE9MKTsKIAkJCX0KIAkJCWRlc2NfaGFuZGxlX2lycShpcnEsIGRlc2MpOwogCQl9CkBAIC0xNzUsOSArMTc1LDkgQEAKIAkvKgogCSAqIE1hc2sgYW5kIGNsZWFyIEdQSU8gSVJRIGludGVycnVwdHMKIAkgKi8KLQlvcmlvbjV4X3dyaXRlKEdQSU9fTEVWRUxfTUFTSywgMHgwKTsKLQlvcmlvbjV4X3dyaXRlKEdQSU9fRURHRV9NQVNLLCAweDApOwotCW9yaW9uNXhfd3JpdGUoR1BJT19FREdFX0NBVVNFLCAweDApOworCXdyaXRlbCgweDAsIEdQSU9fTEVWRUxfTUFTSyk7CisJd3JpdGVsKDB4MCwgR1BJT19FREdFX01BU0spOworCXdyaXRlbCgweDAsIEdQSU9fRURHRV9DQVVTRSk7CiAKIAkvKgogCSAqIFJlZ2lzdGVyIGNoYWluZWQgbGV2ZWwgaGFuZGxlcnMgZm9yIEdQSU8gSVJRcyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L2t1cm9ib3hfcHJvLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgva3Vyb2JveF9wcm8tc2V0dXAuYwppbmRleCBmNTA3NGI4Li44NGZlYWM0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgva3Vyb2JveF9wcm8tc2V0dXAuYworKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgva3Vyb2JveF9wcm8tc2V0dXAuYwpAQCAtMTMsMTAgKzEzLDEyIEBACiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kLmg+CiAjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CiAjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vZ3Bpby5oPgpAQCAtMjUsNiArMjcsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KICNpbmNsdWRlIDxhc20vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmg+CiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogS1VST0JPWC1QUk8gSW5mbwpAQCAtNTMsMTMgKzU2LDExIEBACiAJCS5uYW1lCT0gInVJbWFnZSIsCiAJCS5vZmZzZXQJPSAwLAogCQkuc2l6ZQk9IFNaXzRNLAotCX0sCi0JeworCX0sIHsKIAkJLm5hbWUJPSAicm9vdGZzIiwKIAkJLm9mZnNldAk9IFNaXzRNLAogCQkuc2l6ZQk9IFNaXzY0TSwKLQl9LAotCXsKKwl9LCB7CiAJCS5uYW1lCT0gImV4dHJhIiwKIAkJLm9mZnNldAk9IFNaXzRNICsgU1pfNjRNLAogCQkuc2l6ZQk9IFNaXzI1Nk0gLSAoU1pfNE0gKyBTWl82NE0pLApAQCAtMTMyLDggKzEzMyw2IEBACiAJLyoKIAkgKiBQQ0kgaXNuJ3QgdXNlZCBvbiB0aGUgS3VybwogCSAqLwotCXByaW50ayhLRVJOX0VSUiAia3Vyb2JveF9wcm9fcGNpX21hcF9pcnEgZmFpbGVkLCB1bmtub3duIGJ1c1xuIik7Ci0KIAlyZXR1cm4gLTE7CiB9CiAKQEAgLTE2MSw3ICsxNjAsNiBAQAogCiBzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEga3Vyb2JveF9wcm9fZXRoX2RhdGEgPSB7CiAJLnBoeV9hZGRyCT0gOCwKLQkuZm9yY2VfcGh5X2FkZHIgPSAxLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNzUsMTIgKzE3MywxNjkgQEAKICAqIFNBVEEKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEga3Vyb2JveF9wcm9fc2F0YV9kYXRhID0gewotCS5uX3BvcnRzICAgICAgICA9IDIsCisJLm5fcG9ydHMJPSAyLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBLdXJvYm94IFBybyBzcGVjaWZpYyBwb3dlciBvZmYgbWV0aG9kIHZpYSBVQVJUMS1hdHRhY2hlZCBtaWNyb2NvbnRyb2xsZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFVBUlQxX1JFRyh4KQkoVUFSVDFfVklSVF9CQVNFICsgKChVQVJUXyMjeCkgPDwgMikpCisKK3N0YXRpYyBpbnQga3Vyb2JveF9wcm9fbWljb25yZWFkKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQoreworCWludCBpOworCWludCB0aW1lb3V0OworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJdGltZW91dCA9IDEwOworCisJCXdoaWxlICghKHJlYWRsKFVBUlQxX1JFRyhMU1IpKSAmIFVBUlRfTFNSX0RSKSkgeworCQkJaWYgKC0tdGltZW91dCA9PSAwKQorCQkJCWJyZWFrOworCQkJdWRlbGF5KDEwMDApOworCQl9CisKKwkJaWYgKHRpbWVvdXQgPT0gMCkKKwkJCWJyZWFrOworCQlidWZbaV0gPSByZWFkbChVQVJUMV9SRUcoUlgpKTsKKwl9CisKKwkvKiByZXR1cm4gcmVhZCBieXRlcyAqLworCXJldHVybiBpOworfQorCitzdGF0aWMgaW50IGt1cm9ib3hfcHJvX21pY29ud3JpdGUoY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCit7CisJaW50IGkgPSAwOworCisJd2hpbGUgKGNvdW50LS0pIHsKKwkJd2hpbGUgKCEocmVhZGwoVUFSVDFfUkVHKExTUikpICYgVUFSVF9MU1JfVEhSRSkpCisJCQliYXJyaWVyKCk7CisJCXdyaXRlbChidWZbaSsrXSwgVUFSVDFfUkVHKFRYKSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQga3Vyb2JveF9wcm9fbWljb25zZW5kKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBjb3VudCkKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBjaGFyIGNoZWNrc3VtID0gMDsKKwl1bnNpZ25lZCBjaGFyIHJlY3ZfYnVmWzQwXTsKKwl1bnNpZ25lZCBjaGFyIHNlbmRfYnVmWzQwXTsKKwl1bnNpZ25lZCBjaGFyIGNvcnJlY3RfYWNrWzNdOworCWludCByZXRyeSA9IDI7CisKKwkvKiBHZW5lcmF0ZSBjaGVja3N1bSAqLworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorCQljaGVja3N1bSAtPSAgZGF0YVtpXTsKKworCWRvIHsKKwkJLyogU2VuZCBkYXRhICovCisJCWt1cm9ib3hfcHJvX21pY29ud3JpdGUoZGF0YSwgY291bnQpOworCisJCS8qIHNlbmQgY2hlY2tzdW0gKi8KKwkJa3Vyb2JveF9wcm9fbWljb253cml0ZSgmY2hlY2tzdW0sIDEpOworCisJCWlmIChrdXJvYm94X3Byb19taWNvbnJlYWQocmVjdl9idWYsIHNpemVvZihyZWN2X2J1ZikpIDw9IDMpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiPiVzOiByZWNlaXZlIGZhaWxlZC5cbiIsIF9fZnVuY19fKTsKKworCQkJLyogc2VuZCBwcmVhbWJsZSB0byBjbGVhciB0aGUgcmVjZWl2ZSBidWZmZXIgKi8KKwkJCW1lbXNldCgmc2VuZF9idWYsIDB4ZmYsIHNpemVvZihzZW5kX2J1ZikpOworCQkJa3Vyb2JveF9wcm9fbWljb253cml0ZShzZW5kX2J1Ziwgc2l6ZW9mKHNlbmRfYnVmKSk7CisKKwkJCS8qIG1ha2UgZHVtbXkgcmVhZHMgKi8KKwkJCW1kZWxheSgxMDApOworCQkJa3Vyb2JveF9wcm9fbWljb25yZWFkKHJlY3ZfYnVmLCBzaXplb2YocmVjdl9idWYpKTsKKwkJfSBlbHNlIHsKKwkJCS8qIEdlbmVyYXRlIGV4cGVjdGVkIGFjayAqLworCQkJY29ycmVjdF9hY2tbMF0gPSAweDAxOworCQkJY29ycmVjdF9hY2tbMV0gPSBkYXRhWzFdOworCQkJY29ycmVjdF9hY2tbMl0gPSAweDAwOworCisJCQkvKiBjaGVja3N1bSBDaGVjayAqLworCQkJaWYgKChyZWN2X2J1ZlswXSArIHJlY3ZfYnVmWzFdICsgcmVjdl9idWZbMl0gKworCQkJICAgICByZWN2X2J1ZlszXSkgJiAweEZGKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSICI+JXM6IENoZWNrc3VtIEVycm9yIDogIgorCQkJCQkiUmVjZWl2ZWQgZGF0YVslMDJ4LCAlMDJ4LCAlMDJ4LCAlMDJ4XSIKKwkJCQkJIlxuIiwgX19mdW5jX18sIHJlY3ZfYnVmWzBdLAorCQkJCQlyZWN2X2J1ZlsxXSwgcmVjdl9idWZbMl0sIHJlY3ZfYnVmWzNdKTsKKwkJCX0gZWxzZSB7CisJCQkJLyogQ2hlY2sgUmVjZWl2ZWQgRGF0YSAqLworCQkJCWlmIChjb3JyZWN0X2Fja1swXSA9PSByZWN2X2J1ZlswXSAmJgorCQkJCSAgICBjb3JyZWN0X2Fja1sxXSA9PSByZWN2X2J1ZlsxXSAmJgorCQkJCSAgICBjb3JyZWN0X2Fja1syXSA9PSByZWN2X2J1ZlsyXSkgeworCQkJCQkvKiBJbnRlcnZhbCBmb3IgbmV4dCBjb21tYW5kICovCisJCQkJCW1kZWxheSgxMCk7CisKKwkJCQkJLyogUmVjZWl2ZSBBQ0sgKi8KKwkJCQkJcmV0dXJuIDA7CisJCQkJfQorCQkJfQorCQkJLyogUmVjZWl2ZWQgTkFLIG9yIGlsbGVnYWwgRGF0YSAqLworCQkJcHJpbnRrKEtFUk5fRVJSICI+JXM6IEVycm9yIDogTkFLIG9yIElsbGVnYWwgRGF0YSAiCisJCQkJCSJSZWNlaXZlZFxuIiwgX19mdW5jX18pOworCQl9CisJfSB3aGlsZSAocmV0cnktLSk7CisKKwkvKiBJbnRlcnZhbCBmb3IgbmV4dCBjb21tYW5kICovCisJbWRlbGF5KDEwKTsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIHZvaWQga3Vyb2JveF9wcm9fcG93ZXJfb2ZmKHZvaWQpCit7CisJY29uc3QgdW5zaWduZWQgY2hhciB3YXRjaGRvZ2tpbGxbXQk9IHsweDAxLCAweDM1LCAweDAwfTsKKwljb25zdCB1bnNpZ25lZCBjaGFyIHNodXRkb3dud2FpdFtdCT0gezB4MDAsIDB4MGN9OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgcG93ZXJvZmZbXQkJPSB7MHgwMCwgMHgwNn07CisJLyogMzg0MDAgYmF1ZCBkaXZpc29yICovCisJY29uc3QgdW5zaWduZWQgZGl2aXNvciA9ICgoT1JJT041WF9UQ0xLICsgKDggKiAzODQwMCkpIC8gKDE2ICogMzg0MDApKTsKKworCXByX2luZm8oIiVzOiB0cmlnZ2VyaW5nIHBvd2VyLW9mZi4uLlxuIiwgX19mdW5jX18pOworCisJLyogaGlqYWNrIHVhcnQxIGFuZCByZXNldCBpbnRvIHNhbmUgc3RhdGUgKDM4NDAwLDhuMSxldmVuIHBhcml0eSkgKi8KKwl3cml0ZWwoMHg4MywgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbChkaXZpc29yICYgMHhmZiwgVUFSVDFfUkVHKERMTCkpOworCXdyaXRlbCgoZGl2aXNvciA+PiA4KSAmIDB4ZmYsIFVBUlQxX1JFRyhETE0pKTsKKwl3cml0ZWwoMHgxYiwgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbCgweDAwLCBVQVJUMV9SRUcoSUVSKSk7CisJd3JpdGVsKDB4MDcsIFVBUlQxX1JFRyhGQ1IpKTsKKwl3cml0ZWwoMHgwMCwgVUFSVDFfUkVHKE1DUikpOworCisJLyogU2VuZCB0aGUgY29tbWFuZHMgdG8gc2h1dGRvd24gdGhlIEt1cm9ib3ggUHJvICovCisJa3Vyb2JveF9wcm9fbWljb25zZW5kKHdhdGNoZG9na2lsbCwgc2l6ZW9mKHdhdGNoZG9na2lsbCkpIDsKKwlrdXJvYm94X3Byb19taWNvbnNlbmQoc2h1dGRvd253YWl0LCBzaXplb2Yoc2h1dGRvd253YWl0KSkgOworCWt1cm9ib3hfcHJvX21pY29uc2VuZChwb3dlcm9mZiwgc2l6ZW9mKHBvd2Vyb2ZmKSk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbCBTZXR1cAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUga3Vyb2JveF9wcm9fbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfVU5VU0VEIH0sCisJeyAgMSwgTVBQX1VOVVNFRCB9LAorCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBHUElPIE1pY29uICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIEdQSU8gUnRjICovCisJeyAgNCwgTVBQX1VOVVNFRCB9LAorCXsgIDUsIE1QUF9VTlVTRUQgfSwKKwl7ICA2LCBNUFBfTkFORCB9LAkJLyogTkFORCBGbGFzaCBSRW4gKi8KKwl7ICA3LCBNUFBfTkFORCB9LAkJLyogTkFORCBGbGFzaCBXRW4gKi8KKwl7ICA4LCBNUFBfVU5VU0VEIH0sCisJeyAgOSwgTVBQX1VOVVNFRCB9LAorCXsgMTAsIE1QUF9VTlVTRUQgfSwKKwl7IDExLCBNUFBfVU5VU0VEIH0sCisJeyAxMiwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgcHJlc2VuY2UgKi8KKwl7IDEzLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBwcmVzZW5jZSAqLworCXsgMTQsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIGFjdGl2ZSAqLworCXsgMTUsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIGFjdGl2ZSAqLworCXsgMTYsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBSWEQgKi8KKwl7IDE3LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgVFhEICovCisJeyAxOCwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIENUU24gKi8KKwl7IDE5LCBNUFBfVUFSVCB9LAkJLyogVUFSVDEgUlRTbiAqLworCXsgLTEgfSwKK307CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBrdXJvYm94X3Byb19pbml0KHZvaWQpCiB7CkBAIC0xODksNDYgKzM0NCwzMyBAQAogCSAqLwogCW9yaW9uNXhfaW5pdCgpOwogCi0JLyoKLQkgKiBTZXR1cCB0aGUgQ1BVIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIG91ciBkZXZpY2VzCi0JICovCi0Jb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oS1VST0JPWF9QUk9fTk9SX0JPT1RfQkFTRSwKLQkJCQlLVVJPQk9YX1BST19OT1JfQk9PVF9TSVpFKTsKLQlvcmlvbjV4X3NldHVwX2RldjBfd2luKEtVUk9CT1hfUFJPX05BTkRfQkFTRSwgS1VST0JPWF9QUk9fTkFORF9TSVpFKTsKKwlvcmlvbjV4X21wcF9jb25mKGt1cm9ib3hfcHJvX21wcF9tb2Rlcyk7CiAKIAkvKgotCSAqIE9wZW4gYSBzcGVjaWFsIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIHRoZSBQQ0llIFdBLgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KIAkgKi8KLQlvcmlvbjV4X3NldHVwX3BjaWVfd2Ffd2luKE9SSU9ONVhfUENJRV9XQV9QSFlTX0JBU0UsCi0JCQkJT1JJT041WF9QQ0lFX1dBX1NJWkUpOwotCi0JLyoKLQkgKiBTZXR1cCBNdWx0aXBsZXhpbmcgUGlucyAtLQotCSAqIE1QUFswLTFdIE5vdCB1c2VkCi0JICogTVBQWzJdIEdQSU8gTWljb24KLQkgKiBNUFBbM10gR1BJTyBSVEMKLQkgKiBNUFBbNC01XSBOb3QgdXNlZAotCSAqIE1QUFs2XSBOYW5kIEZsYXNoIFJFbgotCSAqIE1QUFs3XSBOYW5kIEZsYXNoIFdFbgotCSAqIE1QUFs4LTExXSBOb3QgdXNlZAotCSAqIE1QUFsxMl0gU0FUQSAwIHByZXNlbmNlIEluZGljYXRpb24KLQkgKiBNUFBbMTNdIFNBVEEgMSBwcmVzZW5jZSBJbmRpY2F0aW9uCi0JICogTVBQWzE0XSBTQVRBIDAgYWN0aXZlIEluZGljYXRpb24KLQkgKiBNUFBbMTVdIFNBVEEgMSBhY3RpdmUgaW5kaWNhdGlvbgotCSAqIE1QUFsxNi0xOV0gTm90IHVzZWQKLQkgKi8KLQlvcmlvbjV4X3dyaXRlKE1QUF8wXzdfQ1RSTCwgMHg0NDIyMDAwMyk7Ci0Jb3Jpb241eF93cml0ZShNUFBfOF8xNV9DVFJMLCAweDU1NTUwMDAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF8xNl8xOV9DVFJMLCAweDApOwotCi0Jb3Jpb241eF9ncGlvX3NldF92YWxpZF9waW5zKDB4MDAwMDAwMGMpOwotCi0JcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZrdXJvYm94X3Byb19ub3JfZmxhc2gpOwotCWlmIChtYWNoaW5lX2lzX2t1cm9ib3hfcHJvKCkpCi0JCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma3Vyb2JveF9wcm9fbmFuZF9mbGFzaCk7Ci0JaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJmt1cm9ib3hfcHJvX2kyY19ydGMsIDEpOworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZWhjaTFfaW5pdCgpOwogCW9yaW9uNXhfZXRoX2luaXQoJmt1cm9ib3hfcHJvX2V0aF9kYXRhKTsKKwlvcmlvbjV4X2kyY19pbml0KCk7CiAJb3Jpb241eF9zYXRhX2luaXQoJmt1cm9ib3hfcHJvX3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisJb3Jpb241eF91YXJ0MV9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihLVVJPQk9YX1BST19OT1JfQk9PVF9CQVNFLAorCQkJCSAgIEtVUk9CT1hfUFJPX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma3Vyb2JveF9wcm9fbm9yX2ZsYXNoKTsKKworCWlmIChtYWNoaW5lX2lzX2t1cm9ib3hfcHJvKCkpIHsKKwkJb3Jpb241eF9zZXR1cF9kZXYwX3dpbihLVVJPQk9YX1BST19OQU5EX0JBU0UsCisJCQkJICAgICAgIEtVUk9CT1hfUFJPX05BTkRfU0laRSk7CisJCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigma3Vyb2JveF9wcm9fbmFuZF9mbGFzaCk7CisJfQorCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJmt1cm9ib3hfcHJvX2kyY19ydGMsIDEpOworCisJLyogcmVnaXN0ZXIgS3Vyb2JveCBQcm8gc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCXBtX3Bvd2VyX29mZiA9IGt1cm9ib3hfcHJvX3Bvd2VyX29mZjsKIH0KIAogI2lmZGVmIENPTkZJR19NQUNIX0tVUk9CT1hfUFJPCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ4Y2FkYgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuYwpAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIGFyY2gvYXJtL21hY2gtb3Jpb241eC9tcHAuYworICoKKyAqIE1QUCBmdW5jdGlvbnMgZm9yIE1hcnZlbGwgT3Jpb24gNXggU29DcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbWJ1cy5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCitzdGF0aWMgaW50IGlzXzUxODFsKHZvaWQpCit7CisJdTMyIGRldjsKKwl1MzIgcmV2OworCisJb3Jpb241eF9wY2llX2lkKCZkZXYsICZyZXYpOworCisJcmV0dXJuICEhKGRldiA9PSBNVjg4RjUxODFfREVWX0lEICYmIHJldiA+PSBNVjg4RjUxODFMX1JFVl9BMCk7Cit9CisKK3N0YXRpYyBpbnQgaXNfNTE4Mih2b2lkKQoreworCXUzMiBkZXY7CisJdTMyIHJldjsKKworCW9yaW9uNXhfcGNpZV9pZCgmZGV2LCAmcmV2KTsKKworCXJldHVybiAhIShkZXYgPT0gTVY4OEY1MTgyX0RFVl9JRCk7Cit9CisKK3N0YXRpYyBpbnQgaXNfNTI4MSh2b2lkKQoreworCXUzMiBkZXY7CisJdTMyIHJldjsKKworCW9yaW9uNXhfcGNpZV9pZCgmZGV2LCAmcmV2KTsKKworCXJldHVybiAhIShkZXYgPT0gTVY4OEY1MjgxX0RFVl9JRCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGRldGVybWluZV90eXBlX2VuY29kaW5nKGludCBtcHAsIGVudW0gb3Jpb241eF9tcHBfdHlwZSB0eXBlKQoreworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgTVBQX1VOVVNFRDoKKwljYXNlIE1QUF9HUElPOgorCQlpZiAobXBwID09IDApCisJCQlyZXR1cm4gMzsKKwkJaWYgKG1wcCA+PSAxICYmIG1wcCA8PSAxNSkKKwkJCXJldHVybiAwOworCQlpZiAobXBwID49IDE2ICYmIG1wcCA8PSAxOSkgeworCQkJaWYgKGlzXzUxODIoKSkKKwkJCQlyZXR1cm4gNTsKKwkJCWlmICh0eXBlID09IE1QUF9VTlVTRUQpCisJCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfUENJRV9SU1RfT1VUbjoKKwkJaWYgKG1wcCA9PSAwKQorCQkJcmV0dXJuIDA7CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1BDSV9BUkI6CisJCWlmIChtcHAgPj0gMCAmJiBtcHAgPD0gNykKKwkJCXJldHVybiAyOworCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9QQ0lfUE1FbjoKKwkJaWYgKG1wcCA9PSAyKQorCQkJcmV0dXJuIDM7CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX0dJR0U6CisJCWlmIChtcHAgPj0gOCAmJiBtcHAgPD0gMTkpCisJCQlyZXR1cm4gMTsKKwkJcmV0dXJuIC0xOworCisJY2FzZSBNUFBfTkFORDoKKwkJaWYgKGlzXzUxODIoKSB8fCBpc181MjgxKCkpIHsKKwkJCWlmIChtcHAgPj0gNCAmJiBtcHAgPD0gNykKKwkJCQlyZXR1cm4gNDsKKwkJCWlmIChtcHAgPj0gMTIgJiYgbXBwIDw9IDE3KQorCQkJCXJldHVybiA0OworCQl9CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1BDSV9DTEs6CisJCWlmIChpc181MTgxbCgpICYmIG1wcCA+PSA2ICYmIG1wcCA8PSA3KQorCQkJcmV0dXJuIDU7CisJCXJldHVybiAtMTsKKworCWNhc2UgTVBQX1NBVEFfTEVEOgorCQlpZiAoaXNfNTE4MigpKSB7CisJCQlpZiAobXBwID49IDQgJiYgbXBwIDw9IDcpCisJCQkJcmV0dXJuIDU7CisJCQlpZiAobXBwID49IDEyICYmIG1wcCA8PSAxNSkKKwkJCQlyZXR1cm4gNTsKKwkJfQorCQlyZXR1cm4gLTE7CisKKwljYXNlIE1QUF9VQVJUOgorCQlpZiAobXBwID49IDE2ICYmIG1wcCA8PSAxOSkKKwkJCXJldHVybiAwOworCQlyZXR1cm4gLTE7CisJfQorCisJcHJpbnRrKEtFUk5fSU5GTyAidW5rbm93biBNUFAgdHlwZSAlZFxuIiwgdHlwZSk7CisKKwlyZXR1cm4gLTE7Cit9CisKK3ZvaWQgX19pbml0IG9yaW9uNXhfbXBwX2NvbmYoc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgKm1vZGUpCit7CisJdTMyIG1wcF8wXzdfY3RybCA9IHJlYWRsKE1QUF8wXzdfQ1RSTCk7CisJdTMyIG1wcF84XzE1X2N0cmwgPSByZWFkbChNUFBfOF8xNV9DVFJMKTsKKwl1MzIgbXBwXzE2XzE5X2N0cmwgPSByZWFkbChNUFBfMTZfMTlfQ1RSTCk7CisKKwl3aGlsZSAobW9kZS0+bXBwID49IDApIHsKKwkJdTMyICpyZWc7CisJCWludCBudW1fdHlwZTsKKwkJaW50IHNoaWZ0OworCisJCWlmIChtb2RlLT5tcHAgPj0gMCAmJiBtb2RlLT5tcHAgPD0gNykKKwkJCXJlZyA9ICZtcHBfMF83X2N0cmw7CisJCWVsc2UgaWYgKG1vZGUtPm1wcCA+PSA4ICYmIG1vZGUtPm1wcCA8PSAxNSkKKwkJCXJlZyA9ICZtcHBfOF8xNV9jdHJsOworCQllbHNlIGlmIChtb2RlLT5tcHAgPj0gMTYgJiYgbW9kZS0+bXBwIDw9IDE5KQorCQkJcmVnID0gJm1wcF8xNl8xOV9jdHJsOworCQllbHNlIHsKKwkJCXByaW50ayhLRVJOX0VSUiAib3Jpb241eF9tcHBfY29uZjogaW52YWxpZCBNUFAgIgorCQkJCQkiKCVkKVxuIiwgbW9kZS0+bXBwKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbnVtX3R5cGUgPSBkZXRlcm1pbmVfdHlwZV9lbmNvZGluZyhtb2RlLT5tcHAsIG1vZGUtPnR5cGUpOworCQlpZiAobnVtX3R5cGUgPCAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIm9yaW9uNXhfbXBwX2NvbmY6IGludmFsaWQgTVBQICIKKwkJCQkJImNvbWJpbmF0aW9uICglZCwgJWQpXG4iLCBtb2RlLT5tcHAsCisJCQkJCW1vZGUtPnR5cGUpOworCQkJY29udGludWU7CisJCX0KKworCQlzaGlmdCA9IChtb2RlLT5tcHAgJiA3KSA8PCAyOworCQkqcmVnICY9IH4oMHhmIDw8IHNoaWZ0KTsKKwkJKnJlZyB8PSAobnVtX3R5cGUgJiAweGYpIDw8IHNoaWZ0OworCisJCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWQobW9kZS0+bXBwLCAhIShtb2RlLT50eXBlID09IE1QUF9HUElPKSk7CisKKwkJbW9kZSsrOworCX0KKworCXdyaXRlbChtcHBfMF83X2N0cmwsIE1QUF8wXzdfQ1RSTCk7CisJd3JpdGVsKG1wcF84XzE1X2N0cmwsIE1QUF84XzE1X0NUUkwpOworCXdyaXRlbChtcHBfMTZfMTlfY3RybCwgTVBQXzE2XzE5X0NUUkwpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5oIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21wcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5MGU2MTAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvbXBwLmgKQEAgLTAsMCArMSw3NCBAQAorI2lmbmRlZiBfX0FSQ0hfT1JJT041WF9NUFBfSAorI2RlZmluZSBfX0FSQ0hfT1JJT041WF9NUFBfSAorCitlbnVtIG9yaW9uNXhfbXBwX3R5cGUgeworCS8qCisJICogVGhpcyBNUFAgaXMgdW51c2VkLgorCSAqLworCU1QUF9VTlVTRUQsCisKKwkvKgorCSAqIFRoaXMgTVBQIHBpbiBpcyB1c2VkIGFzIGEgZ2VuZXJpYyBHUElPIHBpbi4gIFZhbGlkIGZvcgorCSAqIE1QUHMgMC0xNSBhbmQgZGV2aWNlIGJ1cyBkYXRhIHBpbnMgMTYtMzEuICBPbiA1MTgyLCBhbHNvCisJICogdmFsaWQgZm9yIE1QUHMgMTYtMTkuCisJICovCisJTVBQX0dQSU8sCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgUENJZV9SU1RfT1VUbiBwaW4uICBWYWxpZCBmb3IKKwkgKiBNUFAgMCBvbmx5LgorCSAqLworCU1QUF9QQ0lFX1JTVF9PVVRuLAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIFBDSSBhcmJpdGVyIHBpbiAoUkVRbi9HTlRuKS4KKwkgKiBWYWxpZCBmb3IgTVBQcyAwLTcgb25seS4KKwkgKi8KKwlNUFBfUENJX0FSQiwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBQQ0lfUE1FbiBwaW4uICBWYWxpZCBmb3IgTVBQIDIgb25seS4KKwkgKi8KKwlNUFBfUENJX1BNRW4sCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgR2lnRSBoYWxmLWR1cGxleCAoQ09MLCBDUlMpIG9yIEdNSUkKKwkgKiAoUlhFUlIsIENSUywgVFhFUlIsIFRYRFs3OjRdLCBSWERbNzo0XSkgcGluLiAgVmFsaWQgZm9yCisJICogTVBQcyA4LTE5IG9ubHkuCisJICovCisJTVBQX0dJR0UsCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgTkFORCBSRW4vV0VuIHBpbi4gIFZhbGlkIGZvciBNUFBzCisJICogNC03IGFuZCAxMi0xNyBvbmx5LCBhbmQgb25seSBvbiB0aGUgNTE4MWwvNTE4Mi81MjgxLgorCSAqLworCU1QUF9OQU5ELAorCisJLyoKKwkgKiBUaGlzIE1QUCBpcyB1c2VkIGFzIGEgUENJIGNsb2NrIG91dHB1dCBwaW4uICBWYWxpZCBmb3IKKwkgKiBNUFBzIDYtNyBvbmx5LCBhbmQgb25seSBvbiB0aGUgNTE4MWwuCisJICovCisJTVBQX1BDSV9DTEssCisKKwkvKgorCSAqIFRoaXMgTVBQIGlzIHVzZWQgYXMgYSBTQVRBIHByZXNlbmNlL2FjdGl2aXR5IExFRC4KKwkgKiBWYWxpZCBmb3IgTVBQcyA0LTcgYW5kIDEyLTE1IG9ubHksIGFuZCBvbmx5IG9uIHRoZSA1MTgyLgorCSAqLworCU1QUF9TQVRBX0xFRCwKKworCS8qCisJICogVGhpcyBNUFAgaXMgdXNlZCBhcyBVQVJUMSBSWEQvVFhEL0NUU24vUlRTbiBwaW4uCisJICogVmFsaWQgZm9yIE1QUHMgMTYtMTkgb25seS4KKwkgKi8KKwlNUFBfVUFSVCwKK307CisKK3N0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHsKKwlpbnQJCQltcHA7CisJZW51bSBvcmlvbjV4X21wcF90eXBlCXR5cGU7Cit9OworCit2b2lkIG9yaW9uNXhfbXBwX2NvbmYoc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgKm1vZGUpOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L21zczItc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tc3MyLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2NlOWU0MAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tc3MyLXNldHVwLmMKQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiBNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkgQm9hcmQgU2V0dXAKKyAqCisgKiBNYWludGFpbmVyOiBTeWx2ZXIgQnJ1bmVhdSA8c3lsdmVyLmJydW5lYXVAZ29vZ2xlbWFpbC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgorICogMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9sZWRzLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCisjZGVmaW5lIE1TUzJfTk9SX0JPT1RfQkFTRQkweGZmODAwMDAwCisjZGVmaW5lIE1TUzJfTk9SX0JPT1RfU0laRQlTWl8yNTZLCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIEluZm8KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogTWF4dG9yIFNoYXJlZCBTdG9yYWdlIElJIGhhcmR3YXJlIDoKKyAqIC0gTWFydmVsbCA4OEY1MTgyLUEyIEM1MDAKKyAqIC0gTWFydmVsbCA4OEUxMTExIEdpZ2FiaXQgRXRoZXJuZXQgUEhZCisgKiAtIFJUQyBNNDFUODEgKEAweDY4KSBvbiBJMkMgYnVzCisgKiAtIDI1NktCIE5PUiBmbGFzaAorICogLSA2NE1CIG9mIFJBTQorICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogMjU2S0IgTk9SIEZsYXNoIG9uIEJPT1QgRGV2aWNlCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgbXNzMl9ub3JfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgbXNzMl9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBNU1MyX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBNU1MyX05PUl9CT09UX0JBU0UgKyBNU1MyX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbXNzMl9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtc3MyX25vcl9mbGFzaF9kYXRhLAorCX0sCisJLnJlc291cmNlCT0gJm1zczJfbm9yX2ZsYXNoX3Jlc291cmNlLAorCS5udW1fcmVzb3VyY2VzCT0gMSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBQQ0kgc2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBfX2luaXQgbXNzMl9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCXJldHVybiAtMTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kgbXNzMl9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMgPSAyLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gbXNzMl9wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IG1zczJfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19tc3MyKCkpCisJCXBjaV9jb21tb25faW5pdCgmbXNzMl9wY2kpOworCisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwobXNzMl9wY2lfaW5pdCk7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFdGhlcm5ldAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBtc3MyX2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IDgsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFNBVEEKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgc3RydWN0IG12X3NhdGFfcGxhdGZvcm1fZGF0YSBtc3MyX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdQSU8gYnV0dG9ucworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgTVNTMl9HUElPX0tFWV9SRVNFVAkxMgorI2RlZmluZSBNU1MyX0dQSU9fS0VZX1BPV0VSCTExCisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBtc3MyX2J1dHRvbnNbXSA9IHsKKwl7CisJCS5jb2RlCQk9IEtFWV9QT1dFUiwKKwkJLmdwaW8JCT0gTVNTMl9HUElPX0tFWV9QT1dFUiwKKwkJLmRlc2MJCT0gIlBvd2VyIiwKKwkJLmFjdGl2ZV9sb3cJPSAxLAorCX0sIHsKKwkJLmNvZGUJCT0gS0VZX1JFU1RBUlQsCisJCS5ncGlvCQk9IE1TUzJfR1BJT19LRVlfUkVTRVQsCisJCS5kZXNjCQk9ICJSZXNldCIsCisJCS5hY3RpdmVfbG93CT0gMSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBtc3MyX2J1dHRvbl9kYXRhID0geworCS5idXR0b25zCT0gbXNzMl9idXR0b25zLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUobXNzMl9idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG1zczJfYnV0dG9uX2RldmljZSA9IHsKKwkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKKwkuaWQJCT0gLTEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm1zczJfYnV0dG9uX2RhdGEsCisJfSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUlRDIG00MXQ4MSBvbiBJMkMgYnVzCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBNU1MyX0dQSU9fUlRDX0lSUQkzCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBtc3MyX2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oIm00MXQ4MSIsIDB4NjgpLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBNU1MyIHBvd2VyIG9mZiBtZXRob2QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoKKyAqIE9uIHRoZSBNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUksIHRoZSBzaHV0ZG93biBwcm9jZXNzIGlzIHRoZSBmb2xsb3dpbmcgOgorICogLSBVc2VybGFuZCBtb2RpZmllcyBVLWJvb3QgZW52IHRvIHRlbGwgVS1ib290IHRvIGdvIGlkbGUgYXQgbmV4dCBib290CisgKiAtIFRoZSBib2FyZCByZWJvb3RzCisgKiAtIFUtYm9vdCBzdGFydHMgYW5kIGdvIGludG8gYW4gaWRsZSBtb2RlIHVudGlsIHRoZSB1c2VyIHByZXNzICJwb3dlciIKKyAqLworc3RhdGljIHZvaWQgbXNzMl9wb3dlcl9vZmYodm9pZCkKK3sKKwl1MzIgcmVnOworCisJLyoKKwkgKiBFbmFibGUgYW5kIGlzc3VlIHNvZnQgcmVzZXQKKwkgKi8KKwlyZWcgPSByZWFkbChDUFVfUkVTRVRfTUFTSyk7CisJcmVnIHw9IDEgPDwgMjsKKwl3cml0ZWwocmVnLCBDUFVfUkVTRVRfTUFTSyk7CisKKwlyZWcgPSByZWFkbChDUFVfU09GVF9SRVNFVCk7CisJcmVnIHw9IDE7CisJd3JpdGVsKHJlZywgQ1BVX1NPRlRfUkVTRVQpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogR2VuZXJhbCBTZXR1cAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgbXNzMl9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogRXJyb3IgTEVEICovCisJeyAgMiwgTVBQX1VOVVNFRCB9LAorCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBSVEMgaW50ZXJydXB0ICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIEhERCBpbmQuIChTaW5nbGUvRHVhbCkqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBIRDAgNVYgY29udHJvbCAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBIRDAgMTJWIGNvbnRyb2wgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogSEQxIDVWIGNvbnRyb2wgKi8KKwl7ICA4LCBNUFBfR1BJTyB9LAkJLyogSEQxIDEyViBjb250cm9sICovCisJeyAgOSwgTVBQX1VOVVNFRCB9LAorCXsgMTAsIE1QUF9HUElPIH0sCQkvKiBGYW4gY29udHJvbCAqLworCXsgMTEsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBidXR0b24gKi8KKwl7IDEyLCBNUFBfR1BJTyB9LAkJLyogUmVzZXQgYnV0dG9uICovCisJeyAxMywgTVBQX1VOVVNFRCB9LAorCXsgMTQsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIGFjdGl2ZSAqLworCXsgMTUsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIGFjdGl2ZSAqLworCXsgMTYsIE1QUF9VTlVTRUQgfSwKKwl7IDE3LCBNUFBfVU5VU0VEIH0sCisJeyAxOCwgTVBQX1VOVVNFRCB9LAorCXsgMTksIE1QUF9VTlVTRUQgfSwKKwl7IC0xIH0sCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgbXNzMl9pbml0KHZvaWQpCit7CisJLyogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4gKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYobXNzMl9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBNUFBbMjBdIFVudXNlZAorCSAqIE1QUFsyMV0gUENJIGNsb2NrCisJICogTVBQWzIyXSBVU0IgMCBvdmVyIGN1cnJlbnQKKwkgKiBNUFBbMjNdIFVTQiAxIG92ZXIgY3VycmVudAorCSAqLworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9laGNpMV9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmbXNzMl9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfc2F0YV9pbml0KCZtc3MyX3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihNU1MyX05PUl9CT09UX0JBU0UsIE1TUzJfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZtc3MyX25vcl9mbGFzaCk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm1zczJfYnV0dG9uX2RldmljZSk7CisKKwlpZiAoZ3Bpb19yZXF1ZXN0KE1TUzJfR1BJT19SVENfSVJRLCAicnRjIikgPT0gMCkgeworCQlpZiAoZ3Bpb19kaXJlY3Rpb25faW5wdXQoTVNTMl9HUElPX1JUQ19JUlEpID09IDApCisJCQltc3MyX2kyY19ydGMuaXJxID0gZ3Bpb190b19pcnEoTVNTMl9HUElPX1JUQ19JUlEpOworCQllbHNlCisJCQlncGlvX2ZyZWUoTVNTMl9HUElPX1JUQ19JUlEpOworCX0KKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAmbXNzMl9pMmNfcnRjLCAxKTsKKworCS8qIHJlZ2lzdGVyIG1zczIgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCXBtX3Bvd2VyX29mZiA9IG1zczJfcG93ZXJfb2ZmOworfQorCitNQUNISU5FX1NUQVJUKE1TUzIsICJNYXh0b3IgU2hhcmVkIFN0b3JhZ2UgSUkiKQorCS8qIE1haW50YWluZXI6IFN5bHZlciBCcnVuZWF1IDxzeWx2ZXIuYnJ1bmVhdUBnb29nbGVtYWlsLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gbXNzMl9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMgorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tdjIxMjAtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9tdjIxMjAtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWYzYjBmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L212MjEyMC1zZXR1cC5jCkBAIC0wLDAgKzEsMjM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3IEhlcmJlcnQgVmFsZXJpbyBSaWVkZWwgPGh2ckBnbnUub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBNaWNobG1heXIgPHRibUBjeXJpdXMuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlCisgKiBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2xlZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvX2tleXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCisjZGVmaW5lIE1WMjEyMF9OT1JfQk9PVF9CQVNFCTB4ZjQwMDAwMDAKKyNkZWZpbmUgTVYyMTIwX05PUl9CT09UX1NJWkUJU1pfNTEySworCisjZGVmaW5lIE1WMjEyMF9HUElPX1JUQ19JUlEJMworI2RlZmluZSBNVjIxMjBfR1BJT19LRVlfUkVTRVQJMTcKKyNkZWZpbmUgTVYyMTIwX0dQSU9fS0VZX1BPV0VSCTE4CisjZGVmaW5lIE1WMjEyMF9HUElPX1BPV0VSX09GRgkxOQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogRXRoZXJuZXQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIG12MjEyMF9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgbXYyMTIwX3NhdGFfZGF0YSA9IHsKKwkubl9wb3J0cwk9IDIsCit9OworCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gbXYyMTIwX3BhcnRpdGlvbnNbXSA9IHsKKwl7CisJCS5uYW1lCT0gImZpcm13YXJlIiwKKwkJLnNpemUJPSAweDAwMDgwMDAwLAorCQkub2Zmc2V0CT0gMCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgbXYyMTIwX25vcl9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorCS5wYXJ0cwkJPSBtdjIxMjBfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKG12MjEyMF9wYXJ0aXRpb25zKQorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBtdjIxMjBfbm9yX2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gTVYyMTIwX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBNVjIxMjBfTk9SX0JPT1RfQkFTRSArIE1WMjEyMF9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG12MjEyMF9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjIxMjBfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkucmVzb3VyY2UJPSAmbXYyMTIwX25vcl9mbGFzaF9yZXNvdXJjZSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gbXYyMTIwX2J1dHRvbnNbXSA9IHsKKwl7CisJCS5jb2RlCQk9IEtFWV9SRVNUQVJULAorCQkuZ3BpbwkJPSBNVjIxMjBfR1BJT19LRVlfUkVTRVQsCisJCS5kZXNjCQk9ICJyZXNldCIsCisJCS5hY3RpdmVfbG93CT0gMSwKKwl9LCB7CisJCS5jb2RlCQk9IEtFWV9QT1dFUiwKKwkJLmdwaW8JCT0gTVYyMTIwX0dQSU9fS0VZX1BPV0VSLAorCQkuZGVzYwkJPSAicG93ZXIiLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgbXYyMTIwX2J1dHRvbl9kYXRhID0geworCS5idXR0b25zCT0gbXYyMTIwX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShtdjIxMjBfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjIxMjBfYnV0dG9uX2RldmljZSA9IHsKKwkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKKwkuaWQJCT0gLTEsCisJLm51bV9yZXNvdXJjZXMJPSAwLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZtdjIxMjBfYnV0dG9uX2RhdGEsCisJfSwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIG12MjEyMF9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBTeXMgc3RhdHVzIExFRCAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBTeXMgZXJyb3IgTEVEICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIE92ZXJUZW1wIGludGVycnVwdCAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBSVEMgaW50ZXJydXB0ICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIFZfTEVEIDVWICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIFZfTEVEIDMuM1YgKi8KKwl7ICA2LCBNUFBfVU5VU0VEIH0sCisJeyAgNywgTVBQX1VOVVNFRCB9LAorCXsgIDgsIE1QUF9HUElPIH0sCQkvKiBTQVRBIDAgZmFpbCBMRUQgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogU0FUQSAxIGZhaWwgTEVEICovCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBwcmVzZW5jZSAqLworCXsgMTMsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIHByZXNlbmNlICovCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VOVVNFRCB9LAorCXsgMTcsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBidXR0b24gKi8KKwl7IDE4LCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgYnV0dG9uICovCisJeyAxOSwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIG9mZiAqLworCXsgLTEgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBtdjIxMjBfaTJjX3J0YyA9IHsKKwlJMkNfQk9BUkRfSU5GTygicGNmODU2MyIsIDB4NTEpLAorCS5pcnEJPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2xlZCBtdjIxMjBfbGVkX3BpbnNbXSA9IHsKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOmJsdWU6aGVhbHRoIiwKKwkJLmdwaW8JCQk9IDAsCisJfSwKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOnJlZDpoZWFsdGgiLAorCQkuZ3BpbwkJCT0gMSwKKwl9LAorCXsKKwkJLm5hbWUJCQk9ICJtdjIxMjA6bGVkOmJyaWdodCIsCisJCS5ncGlvCQkJPSA0LAorCQkuZGVmYXVsdF90cmlnZ2VyCT0gImRlZmF1bHQtb24iLAorCX0sCisJeworCQkubmFtZQkJCT0gIm12MjEyMDpsZWQ6ZGltbWVkIiwKKwkJLmdwaW8JCQk9IDUsCisJfSwKKwl7CisJCS5uYW1lCQkJPSAibXYyMTIwOnJlZDpzYXRhMCIsCisJCS5ncGlvCQkJPSA4LAorCQkuYWN0aXZlX2xvdwkJPSAxLAorCX0sCisJeworCQkubmFtZQkJCT0gIm12MjEyMDpyZWQ6c2F0YTEiLAorCQkuZ3BpbwkJCT0gOSwKKwkJLmFjdGl2ZV9sb3cJCT0gMSwKKwl9LAorCit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fbGVkX3BsYXRmb3JtX2RhdGEgbXYyMTIwX2xlZF9kYXRhID0geworCS5sZWRzCQk9IG12MjEyMF9sZWRfcGlucywKKwkubnVtX2xlZHMJPSBBUlJBWV9TSVpFKG12MjEyMF9sZWRfcGlucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBtdjIxMjBfbGVkcyA9IHsKKwkubmFtZQk9ICJsZWRzLWdwaW8iLAorCS5pZAk9IC0xLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm12MjEyMF9sZWRfZGF0YSwKKwl9Cit9OworCitzdGF0aWMgdm9pZCBtdjIxMjBfcG93ZXJfb2ZmKHZvaWQpCit7CisJcHJfaW5mbygiJXM6IHRyaWdnZXJpbmcgcG93ZXItb2ZmLi4uXG4iLCBfX2Z1bmNfXyk7CisJZ3Bpb19zZXRfdmFsdWUoTVYyMTIwX0dQSU9fUE9XRVJfT0ZGLCAwKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IG12MjEyMF9pbml0KHZvaWQpCit7CisJLyogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4gKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYobXYyMTIwX21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZtdjIxMjBfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3NhdGFfaW5pdCgmbXYyMTIwX3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihNVjIxMjBfTk9SX0JPT1RfQkFTRSwgTVYyMTIwX05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXYyMTIwX25vcl9mbGFzaCk7CisKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm12MjEyMF9idXR0b25fZGV2aWNlKTsKKworCWlmIChncGlvX3JlcXVlc3QoTVYyMTIwX0dQSU9fUlRDX0lSUSwgInJ0YyIpID09IDApIHsKKwkJaWYgKGdwaW9fZGlyZWN0aW9uX2lucHV0KE1WMjEyMF9HUElPX1JUQ19JUlEpID09IDApCisJCQltdjIxMjBfaTJjX3J0Yy5pcnEgPSBncGlvX3RvX2lycShNVjIxMjBfR1BJT19SVENfSVJRKTsKKwkJZWxzZQorCQkJZ3Bpb19mcmVlKE1WMjEyMF9HUElPX1JUQ19JUlEpOworCX0KKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCAmbXYyMTIwX2kyY19ydGMsIDEpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmbXYyMTIwX2xlZHMpOworCisJLyogcmVnaXN0ZXIgbXYyMTIwIHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlpZiAoZ3Bpb19yZXF1ZXN0KE1WMjEyMF9HUElPX1BPV0VSX09GRiwgIlBPV0VST0ZGIikgIT0gMCB8fAorCSAgICBncGlvX2RpcmVjdGlvbl9vdXRwdXQoTVYyMTIwX0dQSU9fUE9XRVJfT0ZGLCAxKSAhPSAwKQorCQlwcl9lcnIoIm12MjEyMDogZmFpbGVkIHRvIHNldHVwIHBvd2VyLW9mZiBHUElPXG4iKTsKKwlwbV9wb3dlcl9vZmYgPSBtdjIxMjBfcG93ZXJfb2ZmOworfQorCisvKiBXYXJuaW5nOiBIUCB1c2VzIGEgd3JvbmcgbWFjaC10eXBlICg9NTI2KSBpbiB0aGVpciBib290bG9hZGVyICovCitNQUNISU5FX1NUQVJUKE1WMjEyMCwgIkhQIE1lZGlhIFZhdWx0IG12MjEyMCIpCisJLyogTWFpbnRhaW5lcjogTWFydGluIE1pY2hsbWF5ciA8dGJtQGN5cml1cy5jb20+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IG12MjEyMF9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMgorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9wY2kuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9wY2kuYwppbmRleCA5ZDVkMzlmLi4yNTZhNGY2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCkBAIC0xNTIsNiArMTUyLDggQEAKIAlpZiAoZGV2ID09IE1WODhGNTE4MV9ERVZfSUQgfHwgZGV2ID09IE1WODhGNTE4Ml9ERVZfSUQpIHsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJBcHBseWluZyBPcmlvbi0xL09yaW9uLU5BUyBQQ0llIGNvbmZpZyAiCiAJCQkJICAgInJlYWQgdHJhbnNhY3Rpb24gd29ya2Fyb3VuZFxuIik7CisJCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKKwkJCQkJICBPUklPTjVYX1BDSUVfV0FfU0laRSk7CiAJCXBjaWVfb3BzLnJlYWQgPSBwY2llX3JkX2NvbmZfd2E7CiAJfQogCkBAIC0yNDAsMTMgKzI0MiwxMyBAQAogICogUENJIEFkZHJlc3MgRGVjb2RlIFdpbmRvd3MgcmVnaXN0ZXJzCiAgKi8KICNkZWZpbmUgUENJX0JBUl9TSVpFX0REUl9DUyhuKQkoKChuKSA9PSAwKSA/IE9SSU9ONVhfUENJX1JFRygweGMwOCkgOiBcCi0JCQkJKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQwOCkgOiAgXAotCQkJCSgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjMGMpIDogIFwKLQkJCQkoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDBjKSA6IDApCi0jZGVmaW5lIFBDSV9CQVJfUkVNQVBfRERSX0NTKG4pCSgoKG4pID09MCkgPyBPUklPTjVYX1BDSV9SRUcoMHhjNDgpIDogIFwKLQkJCQkoKG4pID09IDEpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDQ4KSA6ICBcCi0JCQkJKChuKSA9PSAyKSA/IE9SSU9ONVhfUENJX1JFRygweGM0YykgOiAgXAotCQkJCSgobikgPT0gMykgPyBPUklPTjVYX1BDSV9SRUcoMHhkNGMpIDogMCkKKwkJCQkgKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQwOCkgOiBcCisJCQkJICgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjMGMpIDogXAorCQkJCSAoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDBjKSA6IDApCisjZGVmaW5lIFBDSV9CQVJfUkVNQVBfRERSX0NTKG4pCSgoKG4pID09IDApID8gT1JJT041WF9QQ0lfUkVHKDB4YzQ4KSA6IFwKKwkJCQkgKChuKSA9PSAxKSA/IE9SSU9ONVhfUENJX1JFRygweGQ0OCkgOiBcCisJCQkJICgobikgPT0gMikgPyBPUklPTjVYX1BDSV9SRUcoMHhjNGMpIDogXAorCQkJCSAoKG4pID09IDMpID8gT1JJT041WF9QQ0lfUkVHKDB4ZDRjKSA6IDApCiAjZGVmaW5lIFBDSV9CQVJfRU5BQkxFCQlPUklPTjVYX1BDSV9SRUcoMHhjM2MpCiAjZGVmaW5lIFBDSV9BRERSX0RFQ09ERV9DVFJMCU9SSU9ONVhfUENJX1JFRygweGQzYykKIApAQCAtMjY0LDkgKzI2NiwxMSBAQAogICovCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9yaW9uNXhfcGNpX2xvY2spOwogCitzdGF0aWMgaW50IG9yaW9uNXhfcGNpX2NhcmRidXNfbW9kZTsKKwogc3RhdGljIGludCBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIodm9pZCkKIHsKLQl1MzIgY29uZiA9IG9yaW9uNXhfcmVhZChQQ0lfUDJQX0NPTkYpOworCXUzMiBjb25mID0gcmVhZGwoUENJX1AyUF9DT05GKTsKIAlyZXR1cm4oKGNvbmYgJiBQQ0lfUDJQX0JVU19NQVNLKSA+PiBQQ0lfUDJQX0JVU19PRkZTKTsKIH0KIApAQCAtMjc2LDExICsyODAsMTEgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXNwaW5fbG9ja19pcnFzYXZlKCZvcmlvbjV4X3BjaV9sb2NrLCBmbGFncyk7CiAKLQlvcmlvbjV4X3dyaXRlKFBDSV9DT05GX0FERFIsIFBDSV9DT05GX0JVUyhidXMpIHwKLQkJCVBDSV9DT05GX0RFVihkZXYpIHwgUENJX0NPTkZfUkVHKHdoZXJlKSB8Ci0JCQlQQ0lfQ09ORl9GVU5DKGZ1bmMpIHwgUENJX0NPTkZfQUREUl9FTik7CisJd3JpdGVsKFBDSV9DT05GX0JVUyhidXMpIHwKKwkJUENJX0NPTkZfREVWKGRldikgfCBQQ0lfQ09ORl9SRUcod2hlcmUpIHwKKwkJUENJX0NPTkZfRlVOQyhmdW5jKSB8IFBDSV9DT05GX0FERFJfRU4sIFBDSV9DT05GX0FERFIpOwogCi0JKnZhbCA9IG9yaW9uNXhfcmVhZChQQ0lfQ09ORl9EQVRBKTsKKwkqdmFsID0gcmVhZGwoUENJX0NPTkZfREFUQSk7CiAKIAlpZiAoc2l6ZSA9PSAxKQogCQkqdmFsID0gKCp2YWwgPj4gKDgqKHdoZXJlICYgMHgzKSkpICYgMHhmZjsKQEAgLTMwMCw5ICszMDQsOSBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm9yaW9uNXhfcGNpX2xvY2ssIGZsYWdzKTsKIAotCW9yaW9uNXhfd3JpdGUoUENJX0NPTkZfQUREUiwgUENJX0NPTkZfQlVTKGJ1cykgfAotCQkJUENJX0NPTkZfREVWKGRldikgfCBQQ0lfQ09ORl9SRUcod2hlcmUpIHwKLQkJCVBDSV9DT05GX0ZVTkMoZnVuYykgfCBQQ0lfQ09ORl9BRERSX0VOKTsKKwl3cml0ZWwoUENJX0NPTkZfQlVTKGJ1cykgfAorCQlQQ0lfQ09ORl9ERVYoZGV2KSB8IFBDSV9DT05GX1JFRyh3aGVyZSkgfAorCQlQQ0lfQ09ORl9GVU5DKGZ1bmMpIHwgUENJX0NPTkZfQUREUl9FTiwgUENJX0NPTkZfQUREUik7CiAKIAlpZiAoc2l6ZSA9PSA0KSB7CiAJCV9fcmF3X3dyaXRlbCh2YWwsIFBDSV9DT05GX0RBVEEpOwpAQCAtMzE5LDE0ICszMjMsMzAgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW50IG9yaW9uNXhfcGNpX3ZhbGlkX2NvbmZpZyhpbnQgYnVzLCB1MzIgZGV2Zm4pCit7CisJaWYgKGJ1cyA9PSBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIoKSkgeworCQkvKgorCQkgKiBEb24ndCBnbyBvdXQgZm9yIGxvY2FsIGRldmljZQorCQkgKi8KKwkJaWYgKFBDSV9TTE9UKGRldmZuKSA9PSAwICYmIFBDSV9GVU5DKGRldmZuKSAhPSAwKQorCQkJcmV0dXJuIDA7CisKKwkJLyoKKwkJICogV2hlbiB0aGUgUENJIHNpZ25hbHMgYXJlIGRpcmVjdGx5IGNvbm5lY3RlZCB0byBhCisJCSAqIENhcmRidXMgc2xvdCwgaWdub3JlIGFsbCBidXQgZGV2aWNlIElEcyAwIGFuZCAxLgorCQkgKi8KKwkJaWYgKG9yaW9uNXhfcGNpX2NhcmRidXNfbW9kZSAmJiBQQ0lfU0xPVChkZXZmbikgPiAxKQorCQkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQgb3Jpb241eF9wY2lfcmRfY29uZihzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1MzIgZGV2Zm4sCiAJCQkJaW50IHdoZXJlLCBpbnQgc2l6ZSwgdTMyICp2YWwpCiB7Ci0JLyoKLQkgKiBEb24ndCBnbyBvdXQgZm9yIGxvY2FsIGRldmljZQotCSAqLwotCWlmIChidXMtPm51bWJlciA9PSBvcmlvbjV4X3BjaV9sb2NhbF9idXNfbnIoKSAmJgotCSAgICBQQ0lfU0xPVChkZXZmbikgPT0gMCAmJiBQQ0lfRlVOQyhkZXZmbikgIT0gMCkgeworCWlmICghb3Jpb241eF9wY2lfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBkZXZmbikpIHsKIAkJKnZhbCA9IDB4ZmZmZmZmZmY7CiAJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAJfQpAQCAtMzM4LDggKzM1OCw3IEBACiBzdGF0aWMgaW50IG9yaW9uNXhfcGNpX3dyX2NvbmYoc3RydWN0IHBjaV9idXMgKmJ1cywgdTMyIGRldmZuLAogCQkJCWludCB3aGVyZSwgaW50IHNpemUsIHUzMiB2YWwpCiB7Ci0JaWYgKGJ1cy0+bnVtYmVyID09IG9yaW9uNXhfcGNpX2xvY2FsX2J1c19ucigpICYmCi0JICAgIFBDSV9TTE9UKGRldmZuKSA9PSAwICYmIFBDSV9GVU5DKGRldmZuKSAhPSAwKQorCWlmICghb3Jpb241eF9wY2lfdmFsaWRfY29uZmlnKGJ1cy0+bnVtYmVyLCBkZXZmbikpCiAJCXJldHVybiBQQ0lCSU9TX0RFVklDRV9OT1RfRk9VTkQ7CiAKIAlyZXR1cm4gb3Jpb241eF9wY2lfaHdfd3JfY29uZihidXMtPm51bWJlciwgUENJX1NMT1QoZGV2Zm4pLApAQCAtMzUzLDkgKzM3Miw5IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvcmlvbjV4X3BjaV9zZXRfYnVzX25yKGludCBucikKIHsKLQl1MzIgcDJwID0gb3Jpb241eF9yZWFkKFBDSV9QMlBfQ09ORik7CisJdTMyIHAycCA9IHJlYWRsKFBDSV9QMlBfQ09ORik7CiAKLQlpZiAob3Jpb241eF9yZWFkKFBDSV9NT0RFKSAmIFBDSV9NT0RFX1BDSVgpIHsKKwlpZiAocmVhZGwoUENJX01PREUpICYgUENJX01PREVfUENJWCkgewogCQkvKgogCQkgKiBQQ0ktWCBtb2RlCiAJCSAqLwpAQCAtMzcyLDcgKzM5MSw3IEBACiAJCSAqLwogCQlwMnAgJj0gflBDSV9QMlBfQlVTX01BU0s7CiAJCXAycCB8PSAobnIgPDwgUENJX1AyUF9CVVNfT0ZGUyk7Ci0JCW9yaW9uNXhfd3JpdGUoUENJX1AyUF9DT05GLCBwMnApOworCQl3cml0ZWwocDJwLCBQQ0lfUDJQX0NPTkYpOwogCX0KIH0KIApAQCAtMzk5LDcgKzQxOCw3IEBACiAJICogRmlyc3QsIGRpc2FibGUgd2luZG93cy4KIAkgKi8KIAl3aW5fZW5hYmxlID0gMHhmZmZmZmZmZjsKLQlvcmlvbjV4X3dyaXRlKFBDSV9CQVJfRU5BQkxFLCB3aW5fZW5hYmxlKTsKKwl3cml0ZWwod2luX2VuYWJsZSwgUENJX0JBUl9FTkFCTEUpOwogCiAJLyoKIAkgKiBTZXR1cCB3aW5kb3dzIGZvciBERFIgYmFua3MuCkBAIC00MjUsMTAgKzQ0NCwxMCBAQAogCQkgKi8KIAkJcmVnID0gUENJX0NPTkZfUkVHX0JBUl9ISV9DUyhjcy0+Y3NfaW5kZXgpOwogCQlvcmlvbjV4X3BjaV9od193cl9jb25mKGJ1cywgMCwgZnVuYywgcmVnLCA0LCAwKTsKLQkJb3Jpb241eF93cml0ZShQQ0lfQkFSX1NJWkVfRERSX0NTKGNzLT5jc19pbmRleCksCi0JCQkJKGNzLT5zaXplIC0gMSkgJiAweGZmZmZmMDAwKTsKLQkJb3Jpb241eF93cml0ZShQQ0lfQkFSX1JFTUFQX0REUl9DUyhjcy0+Y3NfaW5kZXgpLAotCQkJCWNzLT5iYXNlICYgMHhmZmZmZjAwMCk7CisJCXdyaXRlbCgoY3MtPnNpemUgLSAxKSAmIDB4ZmZmZmYwMDAsCisJCQlQQ0lfQkFSX1NJWkVfRERSX0NTKGNzLT5jc19pbmRleCkpOworCQl3cml0ZWwoY3MtPmJhc2UgJiAweGZmZmZmMDAwLAorCQkJUENJX0JBUl9SRU1BUF9ERFJfQ1MoY3MtPmNzX2luZGV4KSk7CiAKIAkJLyoKIAkJICogRW5hYmxlIGRlY29kZSB3aW5kb3cgZm9yIHRoaXMgY2hpcCBzZWxlY3QuCkBAIC00MzksNyArNDU4LDcgQEAKIAkvKgogCSAqIFJlLWVuYWJsZSBkZWNvZGUgd2luZG93cy4KIAkgKi8KLQlvcmlvbjV4X3dyaXRlKFBDSV9CQVJfRU5BQkxFLCB3aW5fZW5hYmxlKTsKKwl3cml0ZWwod2luX2VuYWJsZSwgUENJX0JBUl9FTkFCTEUpOwogCiAJLyoKIAkgKiBEaXNhYmxlIGF1dG9tYXRpYyB1cGRhdGUgb2YgYWRkcmVzcyByZW1hcGluZyB3aGVuIHdyaXRpbmcgdG8gQkFScy4KQEAgLTUyMiw2ICs1NDEsMTEgQEAKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX01BUlZFTEwsIFBDSV9BTllfSUQsIHJjX3BjaV9maXh1cCk7CiAKK3ZvaWQgX19pbml0IG9yaW9uNXhfcGNpX3NldF9jYXJkYnVzX21vZGUodm9pZCkKK3sKKwlvcmlvbjV4X3BjaV9jYXJkYnVzX21vZGUgPSAxOworfQorCiBpbnQgX19pbml0IG9yaW9uNXhfcGNpX3N5c19zZXR1cChpbnQgbnIsIHN0cnVjdCBwY2lfc3lzX2RhdGEgKnN5cykKIHsKIAlpbnQgcmV0ID0gMDsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZnhvLXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDUwZTM2NQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWZ4by1zZXR1cC5jCkBAIC0wLDAgKzEsMTYxIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZnhvLXNldHVwLmMKKyAqCisgKiBNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPIFJlZmVyZW5jZSBEZXNpZ24gU2V0dXAKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2xlZHMuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJELTg4RjUxODFMIEZYTyBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiA4TSBOT1IgZmxhc2ggRGV2aWNlIGJ1cyBib290IGNoaXAgc2VsZWN0CisgKi8KKyNkZWZpbmUgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfQkFTRQkJMHhmZjgwMDAwMAorI2RlZmluZSBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9TSVpFCQlTWl84TQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogOE0gTk9SIEZsYXNoIG9uIERldmljZSBidXMgQm9vdCBjaGlwIHNlbGVjdAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IHBoeXNtYXBfZmxhc2hfZGF0YSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFJEODhGNTE4MUxfRlhPX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9CQVNFICsKKwkJCSAgUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSByZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQkJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcmQ4OGY1MTgxbF9meG9fbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZyZDg4ZjUxODFsX2Z4b19ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZSwKK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSByZDg4ZjUxODFsX2Z4b19tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9HUElPIH0sCQkvKiBMRUQxIENhcmRCdXMgTEVEIChmcm9udCBwYW5lbCkgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogUENJX2ludEEgKi8KKwl7ICAyLCBNUFBfR1BJTyB9LAkJLyogSGFyZCBSZXNldCAvIEZhY3RvcnkgSW5pdCovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIEZYUyBvciBEQUEgc2VsZWN0ICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIExFRDYgLSBwaG9uZSBMRUQgKGZyb250IHBhbmVsKSAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBMRUQ1IC0gcGhvbmUgTEVEIChmcm9udCBwYW5lbCkgKi8KKwl7ICA2LCBNUFBfUENJX0NMSyB9LAkJLyogQ1BVIFBDSSByZWZjbGsgKi8KKwl7ICA3LCBNUFBfUENJX0NMSyB9LAkJLyogUENJL1BDSWUgcmVmY2xrICovCisJeyAgOCwgTVBQX0dQSU8gfSwJCS8qIENhcmRCdXMgcmVzZXQgKi8KKwl7ICA5LCBNUFBfR1BJTyB9LAkJLyogR0VfUlhFUlIgKi8KKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogTEVEMiBNaW5pUENJIExFRCAoZnJvbnQgcGFuZWwpICovCisJeyAxMSwgTVBQX0dQSU8gfSwJCS8qIExpZmVsaW5lIGNvbnRyb2wgKi8KKwl7IDEyLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzRdICovCisJeyAxMywgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs1XSAqLworCXsgMTQsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNl0gKi8KKwl7IDE1LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzddICovCisJeyAxNiwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs0XSAqLworCXsgMTcsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNV0gKi8KKwl7IDE4LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzZdICovCisJeyAxOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs3XSAqLworCXsgLTEgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSByZDg4ZjUxODFsX2Z4b19ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZDg4ZjUxODFsX2Z4b19pbml0KHZvaWQpCit7CisJLyoKKwkgKiBTZXR1cCBiYXNpYyBPcmlvbiBmdW5jdGlvbnMuIE5lZWQgdG8gYmUgY2FsbGVkIGVhcmx5LgorCSAqLworCW9yaW9uNXhfaW5pdCgpOworCisJb3Jpb241eF9tcHBfY29uZihyZDg4ZjUxODFsX2Z4b19tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmcmQ4OGY1MTgxbF9meG9fZXRoX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgxTF9GWE9fTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBSRDg4RjUxODFMX0ZYT19OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnJkODhmNTE4MWxfZnhvX25vcl9ib290X2ZsYXNoKTsKK30KKworc3RhdGljIGludCBfX2luaXQKK3JkODhmNTE4MWxfZnhvX3BjaV9tYXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHU4IHNsb3QsIHU4IHBpbikKK3sKKwlpbnQgaXJxOworCisJLyoKKwkgKiBDaGVjayBmb3IgZGV2aWNlcyB3aXRoIGhhcmQtd2lyZWQgSVJRcy4KKwkgKi8KKwlpcnEgPSBvcmlvbjV4X3BjaV9tYXBfaXJxKGRldiwgc2xvdCwgcGluKTsKKwlpZiAoaXJxICE9IC0xKQorCQlyZXR1cm4gaXJxOworCisJLyoKKwkgKiBNaW5pLVBDSSAvIENhcmRidXMgc2xvdC4KKwkgKi8KKwlyZXR1cm4gZ3Bpb190b19pcnEoMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHJkODhmNTE4MWxfZnhvX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSByZDg4ZjUxODFsX2Z4b19wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJkODhmNTE4MWxfZnhvX3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfcmQ4OGY1MTgxbF9meG8oKSkgeworCQlvcmlvbjV4X3BjaV9zZXRfY2FyZGJ1c19tb2RlKCk7CisJCXBjaV9jb21tb25faW5pdCgmcmQ4OGY1MTgxbF9meG9fcGNpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjUxODFsX2Z4b19wY2lfaW5pdCk7CisKK01BQ0hJTkVfU1RBUlQoUkQ4OEY1MTgxTF9GWE8sICJNYXJ2ZWxsIE9yaW9uLVZvSVAgRlhPIFJlZmVyZW5jZSBEZXNpZ24iKQorCS8qIE1haW50YWluZXI6IE5pY29sYXMgUGl0cmUgPG5pY29AbWFydmVsbC5jb20+ICovCisJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAorCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAorCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCisJLmluaXRfbWFjaGluZQk9IHJkODhmNTE4MWxfZnhvX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODFsLWdlLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1nZS1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1NjQ0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgxbC1nZS1zZXR1cC5jCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4MWwtZ2Utc2V0dXAuYworICoKKyAqIE1hcnZlbGwgT3Jpb24tVm9JUCBHRSBSZWZlcmVuY2UgRGVzaWduIFNldHVwCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9sZWRzLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBSRC04OEY1MTgxTCBHRSBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qCisgKiAxNk0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfQkFTRQkJMHhmZjAwMDAwMAorI2RlZmluZSBSRDg4RjUxODFMX0dFX05PUl9CT09UX1NJWkUJCVNaXzE2TQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogMTZNIE5PUiBGbGFzaCBvbiBEZXZpY2UgYnVzIEJvb3QgY2hpcCBzZWxlY3QKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcmQ4OGY1MTgxbF9nZV9ub3JfYm9vdF9mbGFzaF9kYXRhID0geworCS53aWR0aAkJPSAxLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSByZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFLAorCS5lbmQJCT0gUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFICsKKwkJCSAgUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHJkODhmNTE4MWxfZ2Vfbm9yX2Jvb3RfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnJkODhmNTE4MWxfZ2Vfbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZyZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoX3Jlc291cmNlLAorfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHJkODhmNTE4MWxfZ2VfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogTEVEMSAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBMRUQ1ICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIExFRDQgKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogTEVEMyAqLworCXsgIDQsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QSAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBSVEMgaW50ZXJydXB0ICovCisJeyAgNiwgTVBQX1BDSV9DTEsgfSwJCS8qIENQVSBQQ0kgcmVmY2xrICovCisJeyAgNywgTVBQX1BDSV9DTEsgfSwJCS8qIFBDSS9QQ0llIHJlZmNsayAqLworCXsgIDgsIE1QUF9HUElPIH0sCQkvKiA4OGU2MTMxIGludGVycnVwdCAqLworCXsgIDksIE1QUF9HUElPIH0sCQkvKiBHRV9SWEVSUiAqLworCXsgMTAsIE1QUF9HUElPIH0sCQkvKiBQQ0lfaW50QiAqLworCXsgMTEsIE1QUF9HUElPIH0sCQkvKiBMRUQyICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgxbF9nZV9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSByZDg4ZjUxODFsX2dlX2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oImRzMTMzOCIsIDB4NjgpLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHJkODhmNTE4MWxfZ2VfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYocmQ4OGY1MTgxbF9nZV9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9laGNpMF9pbml0KCk7CisJb3Jpb241eF9ldGhfaW5pdCgmcmQ4OGY1MTgxbF9nZV9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oUkQ4OEY1MTgxTF9HRV9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFJEODhGNTE4MUxfR0VfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZyZDg4ZjUxODFsX2dlX25vcl9ib290X2ZsYXNoKTsKKworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZyZDg4ZjUxODFsX2dlX2kyY19ydGMsIDEpOworfQorCitzdGF0aWMgaW50IF9faW5pdAorcmQ4OGY1MTgxbF9nZV9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCS8qCisJICogQ2FyZGJ1cyBzbG90LgorCSAqLworCWlmIChwaW4gPT0gMSkKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDQpOworCWVsc2UKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDEwKTsKK30KKworc3RhdGljIHN0cnVjdCBod19wY2kgcmQ4OGY1MTgxbF9nZV9wY2kgX19pbml0ZGF0YSA9IHsKKwkubnJfY29udHJvbGxlcnMJPSAyLAorCS5zd2l6emxlCT0gcGNpX3N0ZF9zd2l6emxlLAorCS5zZXR1cAkJPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCisJLnNjYW4JCT0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAorCS5tYXBfaXJxCT0gcmQ4OGY1MTgxbF9nZV9wY2lfbWFwX2lycSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJkODhmNTE4MWxfZ2VfcGNpX2luaXQodm9pZCkKK3sKKwlpZiAobWFjaGluZV9pc19yZDg4ZjUxODFsX2dlKCkpIHsKKwkJb3Jpb241eF9wY2lfc2V0X2NhcmRidXNfbW9kZSgpOworCQlwY2lfY29tbW9uX2luaXQoJnJkODhmNTE4MWxfZ2VfcGNpKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbChyZDg4ZjUxODFsX2dlX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChSRDg4RjUxODFMX0dFLCAiTWFydmVsbCBPcmlvbi1Wb0lQIEdFIFJlZmVyZW5jZSBEZXNpZ24iKQorCS8qIE1haW50YWluZXI6IExlbm5lcnQgQnV5dGVuaGVrIDxidXl0ZW5oQG1hcnZlbGwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSByZDg4ZjUxODFsX2dlX2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODItc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC9yZDg4ZjUxODItc2V0dXAuYwppbmRleCA4MWFiYzEwLi4xMGFlNjI4IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcmQ4OGY1MTgyLXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3JkODhmNTE4Mi1zZXR1cC5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgogI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFJELTg4RjUxODIgSW5mbwpAQCAtMTI1LDYgKzEyNiw3IEBACiAKIAkJbGVkc19ldmVudCA9IHJkODhmNTE4Ml9kYmdsZWRfZXZlbnQ7CiAJfQorCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTIyMCw3ICsyMjIsNiBAQAogCiBzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgyX2V0aF9kYXRhID0gewogCS5waHlfYWRkcgk9IDgsCi0JLmZvcmNlX3BoeV9hZGRyID0gMSwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMjM0LDE1ICsyMzUsMzQgQEAKICAqIFNhdGEKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIHN0cnVjdCBtdl9zYXRhX3BsYXRmb3JtX2RhdGEgcmQ4OGY1MTgyX3NhdGFfZGF0YSA9IHsKLQkubl9wb3J0cyAgICAgICAgPSAyLAorCS5uX3BvcnRzCT0gMiwKIH07CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2VuZXJhbCBTZXR1cAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpyZDg4ZjUxODJfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnJkODhmNTE4Ml9ub3JfZmxhc2gsCitzdGF0aWMgc3RydWN0IG9yaW9uNXhfbXBwX21vZGUgcmQ4OGY1MTgyX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIERlYnVnIExlZCAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBTd2l0Y2ggKi8KKwl7ICAyLCBNUFBfVU5VU0VEIH0sCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJUQyBJbnQgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAorCXsgIDUsIE1QUF9HUElPIH0sCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qIFBDSV9pbnRBICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIFBDSV9pbnRCICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAwIHByZXNlbmNlICovCisJeyAxMywgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgcHJlc2VuY2UgKi8KKwl7IDE0LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBhY3RpdmUgKi8KKwl7IDE1LCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMSBhY3RpdmUgKi8KKwl7IDE2LCBNUFBfVU5VU0VEIH0sCisJeyAxNywgTVBQX1VOVVNFRCB9LAorCXsgMTgsIE1QUF9VTlVTRUQgfSwKKwl7IDE5LCBNUFBfVU5VU0VEIH0sCisJeyAtMSB9LAogfTsKIAogc3RhdGljIHZvaWQgX19pbml0IHJkODhmNTE4Ml9pbml0KHZvaWQpCkBAIC0yNTIsMzUgKzI3Miw5IEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKLQkvKgotCSAqIFNldHVwIHRoZSBDUFUgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3Igb3VyIGRldmljZXMKLQkgKi8KLQlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihSRDg4RjUxODJfTk9SX0JPT1RfQkFTRSwKLQkJCQlSRDg4RjUxODJfTk9SX0JPT1RfU0laRSk7Ci0Jb3Jpb241eF9zZXR1cF9kZXYxX3dpbihSRDg4RjUxODJfTk9SX0JBU0UsIFJEODhGNTE4Ml9OT1JfU0laRSk7CisJb3Jpb241eF9tcHBfY29uZihyZDg4ZjUxODJfbXBwX21vZGVzKTsKIAogCS8qCi0JICogT3BlbiBhIHNwZWNpYWwgYWRkcmVzcyBkZWNvZGUgd2luZG93cyBmb3IgdGhlIFBDSWUgV0EuCi0JICovCi0Jb3Jpb241eF9zZXR1cF9wY2llX3dhX3dpbihPUklPTjVYX1BDSUVfV0FfUEhZU19CQVNFLAotCQkJCU9SSU9ONVhfUENJRV9XQV9TSVpFKTsKLQotCS8qCi0JICogU2V0dXAgTXVsdGlwbGV4aW5nIFBpbnMgLS0KLQkgKiBNUFBbMF0gRGVidWcgTGVkIChHUElPIC0gT3V0KQotCSAqIE1QUFsxXSBEZWJ1ZyBMZWQgKEdQSU8gLSBPdXQpCi0JICogTVBQWzJdIE4vQQotCSAqIE1QUFszXSBSVENfSW50IChHUElPIC0gSW4pCi0JICogTVBQWzRdIEdQSU8KLQkgKiBNUFBbNV0gR1BJTwotCSAqIE1QUFs2XSBQQ0lfaW50QSAoR1BJTyAtIEluKQotCSAqIE1QUFs3XSBQQ0lfaW50QiAoR1BJTyAtIEluKQotCSAqIE1QUFs4LTExXSBOL0EKLQkgKiBNUFBbMTJdIFNBVEEgMCBwcmVzZW5jZSBJbmRpY2F0aW9uCi0JICogTVBQWzEzXSBTQVRBIDEgcHJlc2VuY2UgSW5kaWNhdGlvbgotCSAqIE1QUFsxNF0gU0FUQSAwIGFjdGl2ZSBJbmRpY2F0aW9uCi0JICogTVBQWzE1XSBTQVRBIDEgYWN0aXZlIGluZGljYXRpb24KLQkgKiBNUFBbMTYtMTldIE5vdCB1c2VkCiAJICogTVBQWzIwXSBQQ0kgQ2xvY2sgdG8gTVY4OEY1MTgyCiAJICogTVBQWzIxXSBQQ0kgQ2xvY2sgdG8gbWluaSBQQ0kgQ09OMTEKIAkgKiBNUFBbMjJdIFVTQiAwIG92ZXIgY3VycmVudCBpbmRpY2F0aW9uCkBAIC0yODksMTYgKzI4MywyMyBAQAogCSAqIE1QUFsyNV0gVVNCIDAgb3ZlciBjdXJyZW50IGVuYWJsZQogCSAqLwogCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4MDAwMDAwMDMpOwotCW9yaW9uNXhfd3JpdGUoTVBQXzhfMTVfQ1RSTCwgMHg1NTU1MDAwMCk7Ci0Jb3Jpb241eF93cml0ZShNUFBfMTZfMTlfQ1RSTCwgMHg1NTU1KTsKLQotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDAwMDAwMGZiKTsKLQotCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHJkODhmNTE4Ml9kZXZpY2VzLCBBUlJBWV9TSVpFKHJkODhmNTE4Ml9kZXZpY2VzKSk7Ci0JaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnJkODhmNTE4Ml9pMmNfcnRjLCAxKTsKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKIAlvcmlvbjV4X2V0aF9pbml0KCZyZDg4ZjUxODJfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKIAlvcmlvbjV4X3NhdGFfaW5pdCgmcmQ4OGY1MTgyX3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihSRDg4RjUxODJfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBSRDg4RjUxODJfTk9SX0JPT1RfU0laRSk7CisKKwlvcmlvbjV4X3NldHVwX2RldjFfd2luKFJEODhGNTE4Ml9OT1JfQkFTRSwgUkQ4OEY1MTgyX05PUl9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnJkODhmNTE4Ml9ub3JfZmxhc2gpOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnJkODhmNTE4Ml9pMmNfcnRjLCAxKTsKIH0KIAogTUFDSElORV9TVEFSVChSRDg4RjUxODIsICJNYXJ2ZWxsIE9yaW9uLU5BUyBSZWZlcmVuY2UgRGVzaWduIikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czIwOS1zZXR1cC5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKaW5kZXggOWFmYjQxZS4uYTljZWY5NyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzMjA5LXNldHVwLmMKQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisjaW5jbHVkZSAidHN4MDktY29tbW9uLmgiCiAKICNkZWZpbmUgUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFIDB4ZjQwMDAwMDAKICNkZWZpbmUgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFIFNaXzhNCkBAIC00Nyw1MiArNDksNTQgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gcW5hcF90czIwOV9wYXJ0aXRpb25zW10gPSB7CiAJewotCQkubmFtZSAgICAgICA9ICJVLUJvb3QiLAotCQkuc2l6ZSAgICAgICA9IDB4MDAwODAwMDAsCi0JCS5vZmZzZXQgICAgID0gMHgwMDc4MDAwMCwKLQkJLm1hc2tfZmxhZ3MgPSBNVERfV1JJVEVBQkxFLAorCQkubmFtZQkJPSAiVS1Cb290IiwKKwkJLnNpemUJCT0gMHgwMDA4MDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNzgwMDAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCiAJfSwgewotCQkubmFtZSAgID0gIktlcm5lbCIsCi0JCS5zaXplICAgPSAweDAwMjAwMDAwLAotCQkub2Zmc2V0ID0gMCwKKwkJLm5hbWUJCT0gIktlcm5lbCIsCisJCS5zaXplCQk9IDB4MDAyMDAwMDAsCisJCS5vZmZzZXQJCT0gMCwKIAl9LCB7Ci0JCS5uYW1lICAgPSAiUm9vdEZTMSIsCi0JCS5zaXplICAgPSAweDAwNDAwMDAwLAotCQkub2Zmc2V0ID0gMHgwMDIwMDAwMCwKKwkJLm5hbWUJCT0gIlJvb3RGUzEiLAorCQkuc2l6ZQkJPSAweDAwNDAwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDAyMDAwMDAsCiAJfSwgewotCQkubmFtZSAgID0gIlJvb3RGUzIiLAotCQkuc2l6ZSAgID0gMHgwMDEwMDAwMCwKLQkJLm9mZnNldCA9IDB4MDA2MDAwMDAsCisJCS5uYW1lCQk9ICJSb290RlMyIiwKKwkJLnNpemUJCT0gMHgwMDEwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNjAwMDAwLAogCX0sIHsKLQkJLm5hbWUgICA9ICJVLUJvb3QgQ29uZmlnIiwKLQkJLnNpemUgICA9IDB4MDAwMjAwMDAsCi0JCS5vZmZzZXQgPSAweDAwNzYwMDAwLAorCQkubmFtZQkJPSAiVS1Cb290IENvbmZpZyIsCisJCS5zaXplCQk9IDB4MDAwMjAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKIAl9LCB7Ci0JCS5uYW1lICAgICAgID0gIk5BUyBDb25maWciLAotCQkuc2l6ZSAgICAgICA9IDB4MDAwNjAwMDAsCi0JCS5vZmZzZXQgICAgID0gMHgwMDcwMDAwMCwKLQkJLm1hc2tfZmxhZ3MgPSBNVERfV1JJVEVBQkxFLAotCX0KKwkJLm5hbWUJCT0gIk5BUyBDb25maWciLAorCQkuc2l6ZQkJPSAweDAwMDYwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA3MDAwMDAsCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwKKwl9LAogfTsKIAogc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgcW5hcF90czIwOV9ub3JfZmxhc2hfZGF0YSA9IHsKLQkud2lkdGggICAgPSAxLAotCS5wYXJ0cyAgICA9IHFuYXBfdHMyMDlfcGFydGl0aW9ucywKLQkubnJfcGFydHMgPSBBUlJBWV9TSVpFKHFuYXBfdHMyMDlfcGFydGl0aW9ucykKKwkud2lkdGgJCT0gMSwKKwkucGFydHMJCT0gcW5hcF90czIwOV9wYXJ0aXRpb25zLAorCS5ucl9wYXJ0cwk9IEFSUkFZX1NJWkUocW5hcF90czIwOV9wYXJ0aXRpb25zKQogfTsKIAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBxbmFwX3RzMjA5X25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQkuc3RhcnQgPSBRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCi0JLmVuZCAgID0gUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFICsgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFIC0gMSwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJPSBRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCisJLmVuZAk9IFFOQVBfVFMyMDlfTk9SX0JPT1RfQkFTRSArIFFOQVBfVFMyMDlfTk9SX0JPT1RfU0laRSAtIDEsCiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxbmFwX3RzMjA5X25vcl9mbGFzaCA9IHsKLQkubmFtZSAgICAgICAgICA9ICJwaHlzbWFwLWZsYXNoIiwKLQkuaWQgICAgICAgICAgICA9IDAsCi0JLmRldiAgICAgICAgICAgPSB7IC5wbGF0Zm9ybV9kYXRhID0gJnFuYXBfdHMyMDlfbm9yX2ZsYXNoX2RhdGEsIH0sCi0JLnJlc291cmNlICAgICAgPSAmcW5hcF90czIwOV9ub3JfZmxhc2hfcmVzb3VyY2UsCi0JLm51bV9yZXNvdXJjZXMgPSAxLAorCS5uYW1lCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czIwOV9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5yZXNvdXJjZQk9ICZxbmFwX3RzMjA5X25vcl9mbGFzaF9yZXNvdXJjZSwKKwkubnVtX3Jlc291cmNlcwk9IDEsCiB9OwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTE2NCwxMiArMTY4LDEyIEBACiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaHdfcGNpIHFuYXBfdHMyMDlfcGNpIF9faW5pdGRhdGEgPSB7Ci0JLm5yX2NvbnRyb2xsZXJzID0gMiwKLQkucHJlaW5pdCAgICAgICAgPSBxbmFwX3RzMjA5X3BjaV9wcmVpbml0LAotCS5zd2l6emxlICAgICAgICA9IHBjaV9zdGRfc3dpenpsZSwKLQkuc2V0dXAgICAgICAgICAgPSBvcmlvbjV4X3BjaV9zeXNfc2V0dXAsCi0JLnNjYW4gICAgICAgICAgID0gb3Jpb241eF9wY2lfc3lzX3NjYW5fYnVzLAotCS5tYXBfaXJxICAgICAgICA9IHFuYXBfdHMyMDlfcGNpX21hcF9pcnEsCisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkucHJlaW5pdAk9IHFuYXBfdHMyMDlfcGNpX3ByZWluaXQsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSBxbmFwX3RzMjA5X3BjaV9tYXBfaXJxLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgcW5hcF90czIwOV9wY2lfaW5pdCh2b2lkKQpAQCAtMTgzLDk2ICsxODcsNiBAQAogc3Vic3lzX2luaXRjYWxsKHFuYXBfdHMyMDlfcGNpX2luaXQpOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEV0aGVybmV0Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3RhdGljIHN0cnVjdCBtdjY0M3h4X2V0aF9wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfZXRoX2RhdGEgPSB7Ci0JLnBoeV9hZGRyICAgICAgID0gOCwKLQkuZm9yY2VfcGh5X2FkZHIgPSAxLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfaGV4X25pYmJsZShjaGFyIG4pCi17Ci0JaWYgKG4gPj0gJzAnICYmIG4gPD0gJzknKQotCQlyZXR1cm4gbiAtICcwJzsKLQotCWlmIChuID49ICdBJyAmJiBuIDw9ICdGJykKLQkJcmV0dXJuIG4gLSAnQScgKyAxMDsKLQotCWlmIChuID49ICdhJyAmJiBuIDw9ICdmJykKLQkJcmV0dXJuIG4gLSAnYScgKyAxMDsKLQotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfaGV4X2J5dGUoY29uc3QgY2hhciAqYikKLXsKLQlpbnQgaGk7Ci0JaW50IGxvOwotCi0JaGkgPSBwYXJzZV9oZXhfbmliYmxlKGJbMF0pOwotCWxvID0gcGFyc2VfaGV4X25pYmJsZShiWzFdKTsKLQotCWlmIChoaSA8IDAgfHwgbG8gPCAwKQotCQlyZXR1cm4gLTE7Ci0KLQlyZXR1cm4gKGhpIDw8IDQpIHwgbG87Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNoZWNrX21hY19hZGRyKGNvbnN0IGNoYXIgKmFkZHJfc3RyKQotewotCXVfaW50OF90IGFkZHJbNl07Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgNjsgaSsrKSB7Ci0JCWludCBieXRlOwotCi0JCS8qCi0JCSAqIEVuZm9yY2UgInh4Onh4Onh4Onh4Onh4Onh4XG4iIGZvcm1hdC4KLQkJICovCi0JCWlmIChhZGRyX3N0clsoaSAqIDMpICsgMl0gIT0gKChpIDwgNSkgPyAnOicgOiAnXG4nKSkKLQkJCXJldHVybiAtMTsKLQotCQlieXRlID0gcGFyc2VfaGV4X2J5dGUoYWRkcl9zdHIgKyAoaSAqIDMpKTsKLQkJaWYgKGJ5dGUgPCAwKQotCQkJcmV0dXJuIC0xOwotCQlhZGRyW2ldID0gYnl0ZTsKLQl9Ci0KLQlwcmludGsoS0VSTl9JTkZPICJ0czIwOTogZm91bmQgZXRoZXJuZXQgbWFjIGFkZHJlc3MgIik7Ci0JZm9yIChpID0gMDsgaSA8IDY7IGkrKykKLQkJcHJpbnRrKCIlLjJ4JXMiLCBhZGRyW2ldLCAoaSA8IDUpID8gIjoiIDogIi5cbiIpOwotCi0JbWVtY3B5KHFuYXBfdHMyMDlfZXRoX2RhdGEubWFjX2FkZHIsIGFkZHIsIDYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBUaGUgJ05BUyBDb25maWcnIGZsYXNoIHBhcnRpdGlvbiBoYXMgYW4gZXh0MiBmaWxlc3lzdGVtIHdoaWNoCi0gKiBjb250YWlucyBhIGZpbGUgdGhhdCBoYXMgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzIGluIHBsYWluIHRleHQKLSAqIChmb3JtYXQgInh4Onh4Onh4Onh4Onh4Onh4XG4iLikKLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHRzMjA5X2ZpbmRfbWFjX2FkZHIodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0KLQlmb3IgKGFkZHIgPSAweDAwNzAwMDAwOyBhZGRyIDwgMHgwMDc2MDAwMDsgYWRkciArPSAxMDI0KSB7Ci0JCWNoYXIgKm5vcl9wYWdlOwotCQlpbnQgcmV0ID0gMDsKLQotCQlub3JfcGFnZSA9IGlvcmVtYXAoUU5BUF9UUzIwOV9OT1JfQk9PVF9CQVNFICsgYWRkciwgMTAyNCk7Ci0JCWlmIChub3JfcGFnZSAhPSBOVUxMKSB7Ci0JCQlyZXQgPSBjaGVja19tYWNfYWRkcihub3JfcGFnZSk7Ci0JCQlpb3VubWFwKG5vcl9wYWdlKTsKLQkJfQotCi0JCWlmIChyZXQgPT0gMCkKLQkJCWJyZWFrOwotCX0KLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBSVEMgUzM1MzkwQSBvbiBJMkMgYnVzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtMjgwLDcgKzE5NCw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBxbmFwX3RzMjA5X2kyY19ydGMgPSB7CiAJSTJDX0JPQVJEX0lORk8oInMzNTM5MGEiLCAweDMwKSwKLSAgICAgICAuaXJxICAgICAgICAgPSAwLAorCS5pcnEJPSAwLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI5Nyw3MCArMjExLDYzIEBACiAJCS5ncGlvCQk9IFFOQVBfVFMyMDlfR1BJT19LRVlfTUVESUEsCiAJCS5kZXNjCQk9ICJVU0IgQ29weSBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfSwKLQl7CisJfSwgewogCQkuY29kZQkJPSBLRVlfUE9XRVIsCiAJCS5ncGlvCQk9IFFOQVBfVFMyMDlfR1BJT19LRVlfUkVTRVQsCiAJCS5kZXNjCQk9ICJSZXNldCBCdXR0b24iLAogCQkuYWN0aXZlX2xvdwk9IDEsCi0JfQorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfYnV0dG9uX2RhdGEgPSB7CiAJLmJ1dHRvbnMJPSBxbmFwX3RzMjA5X2J1dHRvbnMsCi0JLm5idXR0b25zICAgICAgID0gQVJSQVlfU0laRShxbmFwX3RzMjA5X2J1dHRvbnMpLAorCS5uYnV0dG9ucwk9IEFSUkFZX1NJWkUocW5hcF90czIwOV9idXR0b25zKSwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHFuYXBfdHMyMDlfYnV0dG9uX2RldmljZSA9IHsKIAkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKIAkuaWQJCT0gLTEsCiAJLm51bV9yZXNvdXJjZXMJPSAwLAotCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSAgPSAmcW5hcF90czIwOV9idXR0b25fZGF0YSwgfSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czIwOV9idXR0b25fZGF0YSwKKwl9LAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBTQVRBCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHFuYXBfdHMyMDlfc2F0YV9kYXRhID0gewotCS5uX3BvcnRzICAgICAgICA9IDIsCisJLm5fcG9ydHMJPSAyLAogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKICAqIEdlbmVyYWwgU2V0dXAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcW5hcF90czIwOV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmcW5hcF90czIwOV9ub3JfZmxhc2gsCi0JJnFuYXBfdHMyMDlfYnV0dG9uX2RldmljZSwKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB0czIwOV9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogVVNCIGNvcHkgYnV0dG9uICovCisJeyAgMiwgTVBQX0dQSU8gfSwJCS8qIExvYWQgZGVmYXVsdHMgYnV0dG9uICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIEdQSU8gUlRDICovCisJeyAgNCwgTVBQX1VOVVNFRCB9LAorCXsgIDUsIE1QUF9VTlVTRUQgfSwKKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogUENJIEludCBBICovCisJeyAgNywgTVBQX0dQSU8gfSwJCS8qIFBDSSBJbnQgQiAqLworCXsgIDgsIE1QUF9VTlVTRUQgfSwKKwl7ICA5LCBNUFBfVU5VU0VEIH0sCisJeyAxMCwgTVBQX1VOVVNFRCB9LAorCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfU0FUQV9MRUQgfSwJCS8qIFNBVEEgMCBwcmVzZW5jZSAqLworCXsgMTMsIE1QUF9TQVRBX0xFRCB9LAkJLyogU0FUQSAxIHByZXNlbmNlICovCisJeyAxNCwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDAgYWN0aXZlICovCisJeyAxNSwgTVBQX1NBVEFfTEVEIH0sCQkvKiBTQVRBIDEgYWN0aXZlICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJYRCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBUWEQgKi8KKwl7IDE4LCBNUFBfR1BJTyB9LAkJLyogU1dfUlNUICovCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKIH07CiAKLS8qCi0gKiBRTkFQIFRTLVsxMl0wOSBzcGVjaWZpYyBwb3dlciBvZmYgbWV0aG9kIHZpYSBVQVJUMS1hdHRhY2hlZCBQSUMKLSAqLwotCi0jZGVmaW5lIFVBUlQxX1JFRyh4KSAgKFVBUlQxX1ZJUlRfQkFTRSArICgoVUFSVF8jI3gpIDw8IDIpKQotCi1zdGF0aWMgdm9pZCBxbmFwX3RzMjA5X3Bvd2VyX29mZih2b2lkKQotewotCS8qIDE5MjAwIGJhdWQgZGl2aXNvciAqLwotCWNvbnN0IHVuc2lnbmVkIGRpdmlzb3IgPSAoKE9SSU9ONVhfVENMSyArICg4ICogMTkyMDApKSAvICgxNiAqIDE5MjAwKSk7Ci0KLQlwcl9pbmZvKCIlczogdHJpZ2dlcmluZyBwb3dlci1vZmYuLi5cbiIsIF9fZnVuY19fKTsKLQotCS8qIGhpamFjayB1YXJ0MSBhbmQgcmVzZXQgaW50byBzYW5lIHN0YXRlICgxOTIwMCw4bjEpICovCi0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTENSKSwgMHg4Myk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoRExMKSwgZGl2aXNvciAmIDB4ZmYpOwotCW9yaW9uNXhfd3JpdGUoVUFSVDFfUkVHKERMTSksIChkaXZpc29yID4+IDgpICYgMHhmZik7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTENSKSwgMHgwMyk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoSUVSKSwgMHgwMCk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoRkNSKSwgMHgwMCk7Ci0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoTUNSKSwgMHgwMCk7Ci0KLQkvKiBzZW5kIHRoZSBwb3dlci1vZmYgY29tbWFuZCAnQScgdG8gUElDICovCi0Jb3Jpb241eF93cml0ZShVQVJUMV9SRUcoVFgpLCAnQScpOwotfQotCiBzdGF0aWMgdm9pZCBfX2luaXQgcW5hcF90czIwOV9pbml0KHZvaWQpCiB7CiAJLyoKQEAgLTM2OCw1MSArMjc1LDMzIEBACiAJICovCiAJb3Jpb241eF9pbml0KCk7CiAKLQkvKgotCSAqIFNldHVwIGZsYXNoIG1hcHBpbmcKLQkgKi8KLQlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCi0JCQkgICAgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFKTsKKwlvcmlvbjV4X21wcF9jb25mKHRzMjA5X21wcF9tb2Rlcyk7CiAKIAkvKgotCSAqIE9wZW4gYSBzcGVjaWFsIGFkZHJlc3MgZGVjb2RlIHdpbmRvd3MgZm9yIHRoZSBQQ0llIFdBLgotCSAqLwotCW9yaW9uNXhfc2V0dXBfcGNpZV93YV93aW4oT1JJT041WF9QQ0lFX1dBX1BIWVNfQkFTRSwKLQkJCQlPUklPTjVYX1BDSUVfV0FfU0laRSk7Ci0KLQkvKgotCSAqIFNldHVwIE11bHRpcGxleGluZyBQaW5zIC0tCi0JICogTVBQWzBdIFJlc2VydmVkCi0JICogTVBQWzFdIFVTQiBjb3B5IGJ1dHRvbiAoMCBhY3RpdmUpCi0JICogTVBQWzJdIExvYWQgZGVmYXVsdHMgYnV0dG9uICgwIGFjdGl2ZSkKLQkgKiBNUFBbM10gR1BJTyBSVEMKLQkgKiBNUFBbNC01XSBSZXNlcnZlZAotCSAqIE1QUFs2XSBQQ0kgSW50IEEKLQkgKiBNUFBbN10gUENJIEludCBCCi0JICogTVBQWzgtMTFdIFJlc2VydmVkCi0JICogTVBQWzEyXSBTQVRBIDAgcHJlc2VuY2UKLQkgKiBNUFBbMTNdIFNBVEEgMSBwcmVzZW5jZQotCSAqIE1QUFsxNF0gU0FUQSAwIGFjdGl2ZQotCSAqIE1QUFsxNV0gU0FUQSAxIGFjdGl2ZQotCSAqIE1QUFsxNl0gVUFSVDEgUlhECi0JICogTVBQWzE3XSBVQVJUMSBUWEQKLQkgKiBNUFBbMThdIFNXX1JTVCAoMCBhY3RpdmUpCi0JICogTVBQWzE5XSBSZXNlcnZlZAogCSAqIE1QUFsyMF0gUENJIGNsb2NrIDAKIAkgKiBNUFBbMjFdIFBDSSBjbG9jayAxCiAJICogTVBQWzIyXSBVU0IgMCBvdmVyIGN1cnJlbnQKIAkgKiBNUFBbMjMtMjVdIFJlc2VydmVkCiAJICovCi0Jb3Jpb241eF93cml0ZShNUFBfMF83X0NUUkwsIDB4Myk7Ci0Jb3Jpb241eF93cml0ZShNUFBfOF8xNV9DVFJMLCAweDU1NTUwMDAwKTsKLQlvcmlvbjV4X3dyaXRlKE1QUF8xNl8xOV9DVFJMLCAweDU1MDApOwotCW9yaW9uNXhfZ3Bpb19zZXRfdmFsaWRfcGlucygweDNjYzBmZmYpOwogCi0JLyogcmVnaXN0ZXIgdHMyMDkgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLwotCXBtX3Bvd2VyX29mZiA9IHFuYXBfdHMyMDlfcG93ZXJfb2ZmOworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZWhjaTFfaW5pdCgpOworCXFuYXBfdHN4MDlfZmluZF9tYWNfYWRkcihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UgKworCQkJCSBxbmFwX3RzMjA5X3BhcnRpdGlvbnNbNV0ub2Zmc2V0LAorCQkJCSBxbmFwX3RzMjA5X3BhcnRpdGlvbnNbNV0uc2l6ZSk7CisJb3Jpb241eF9ldGhfaW5pdCgmcW5hcF90c3gwOV9ldGhfZGF0YSk7CisJb3Jpb241eF9pMmNfaW5pdCgpOworCW9yaW9uNXhfc2F0YV9pbml0KCZxbmFwX3RzMjA5X3NhdGFfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CiAKLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhxbmFwX3RzMjA5X2RldmljZXMsCi0JCQkJQVJSQVlfU0laRShxbmFwX3RzMjA5X2RldmljZXMpKTsKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihRTkFQX1RTMjA5X05PUl9CT09UX0JBU0UsCisJCQkJICAgUU5BUF9UUzIwOV9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnFuYXBfdHMyMDlfbm9yX2ZsYXNoKTsKKworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcW5hcF90czIwOV9idXR0b25fZGV2aWNlKTsKIAogCS8qIEdldCBSVEMgSVJRIGFuZCByZWdpc3RlciB0aGUgY2hpcCAqLwogCWlmIChncGlvX3JlcXVlc3QoVFMyMDlfUlRDX0dQSU8sICJydGMiKSA9PSAwKSB7CkBAIC00MjUsMTQgKzMxNCwxMiBAQAogCQlwcl93YXJuaW5nKCJxbmFwX3RzMjA5X2luaXQ6IGZhaWxlZCB0byBnZXQgUlRDIElSUVxuIik7CiAJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgJnFuYXBfdHMyMDlfaTJjX3J0YywgMSk7CiAKLQl0czIwOV9maW5kX21hY19hZGRyKCk7Ci0Jb3Jpb241eF9ldGhfaW5pdCgmcW5hcF90czIwOV9ldGhfZGF0YSk7Ci0KLQlvcmlvbjV4X3NhdGFfaW5pdCgmcW5hcF90czIwOV9zYXRhX2RhdGEpOworCS8qIHJlZ2lzdGVyIHRzeDA5IHNwZWNpZmljIHBvd2VyLW9mZiBtZXRob2QgKi8KKwlwbV9wb3dlcl9vZmYgPSBxbmFwX3RzeDA5X3Bvd2VyX29mZjsKIH0KIAogTUFDSElORV9TVEFSVChUUzIwOSwgIlFOQVAgVFMtMTA5L1RTLTIwOSIpCi0JLyogTWFpbnRhaW5lcjogIEJ5cm9uIEJyYWRsZXkgPGJ5cm9uLmJicmFkbGV5QGdtYWlsLmNvbT4gKi8KKwkvKiBNYWludGFpbmVyOiBCeXJvbiBCcmFkbGV5IDxieXJvbi5iYnJhZGxleUBnbWFpbC5jb20+ICovCiAJLnBoeXNfaW8JPSBPUklPTjVYX1JFR1NfUEhZU19CQVNFLAogCS5pb19wZ19vZmZzdAk9ICgoT1JJT041WF9SRUdTX1ZJUlRfQkFTRSkgPj4gMTgpICYgMHhGRkZDLAogCS5ib290X3BhcmFtcwk9IDB4MDAwMDAxMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM0MDktc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czQwOS1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyZjBmZjAKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHM0MDktc2V0dXAuYwpAQCAtMCwwICsxLDI3MyBAQAorLyoKKyAqIFFOQVAgVFMtNDA5IEJvYXJkIFNldHVwCisgKgorICogTWFpbnRhaW5lcjogU3lsdmVyIEJydW5lYXUgPHN5bHZlci5icnVuZWF1QGdtYWlsLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCisgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL3BoeXNtYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdjY0M3h4X2V0aC5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvcGNpLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvb3Jpb241eC5oPgorI2luY2x1ZGUgImNvbW1vbi5oIgorI2luY2x1ZGUgIm1wcC5oIgorI2luY2x1ZGUgInRzeDA5LWNvbW1vbi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFFOQVAgVFMtNDA5IEluZm8KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogUU5BUCBUUy00MDkgaGFyZHdhcmUgOgorICogLSBNYXJ2ZWxsIDg4RjUyODEtRDAKKyAqIC0gTWFydmVsbCA4OFNYNzA0MiBTQVRBIGNvbnRyb2xsZXIgKFBDSWUpCisgKiAtIE1hcnZlbGwgODhFMTExOCBHaWdhYml0IEV0aGVybmV0IFBIWQorICogLSBSVEMgUzM1MzkwQSAoQDB4MzApIG9uIEkyQyBidXMKKyAqIC0gOE1CIE5PUiBmbGFzaAorICogLSAyNTZNQiBvZiBERFItMiBSQU0KKyAqLworCisvKgorICogOE1CIE5PUiBmbGFzaCBEZXZpY2UgYnVzIGJvb3QgY2hpcCBzZWxlY3QKKyAqLworCisjZGVmaW5lIFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSAweGZmODAwMDAwCisjZGVmaW5lIFFOQVBfVFM0MDlfTk9SX0JPT1RfU0laRSBTWl84TQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogOE1pQiBOT1IgZmxhc2guIFRoZSBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBpcyBub3QgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlCisgKiAgICAgcGFydGl0aW9ucyBvbiB0aGUgZGV2aWNlIGJlY2F1c2Ugd2Ugd2FudCB0byBrZWVwIGNvbXBhdGFiaWxpdHkgd2l0aAorICogICAgIGV4aXN0aW5nIFFOQVAgZmlybXdhcmUuCisgKgorICogTGF5b3V0IGFzIHVzZWQgYnkgUU5BUDoKKyAqICBbMl0gMHgwMDAwMDAwMC0weDAwMjAwMDAwIDogIktlcm5lbCIKKyAqICBbM10gMHgwMDIwMDAwMC0weDAwNjAwMDAwIDogIlJvb3RGUzEiCisgKiAgWzRdIDB4MDA2MDAwMDAtMHgwMDcwMDAwMCA6ICJSb290RlMyIgorICogIFs2XSAweDAwNzAwMDAwLTB4MDA3NjAwMDAgOiAiTkFTIENvbmZpZyIgKHJlYWQtb25seSkKKyAqICBbNV0gMHgwMDc2MDAwMC0weDAwNzgwMDAwIDogIlUtQm9vdCBDb25maWciCisgKiAgWzFdIDB4MDA3ODAwMDAtMHgwMDgwMDAwMCA6ICJVLUJvb3QiIChyZWFkLW9ubHkpCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHFuYXBfdHM0MDlfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJCT0gIlUtQm9vdCIsCisJCS5zaXplCQk9IDB4MDAwODAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc4MDAwMCwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLAorCX0sIHsKKwkJLm5hbWUJCT0gIktlcm5lbCIsCisJCS5zaXplCQk9IDB4MDAyMDAwMDAsCisJCS5vZmZzZXQJCT0gMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJSb290RlMxIiwKKwkJLnNpemUJCT0gMHgwMDQwMDAwMCwKKwkJLm9mZnNldAkJPSAweDAwMjAwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gIlJvb3RGUzIiLAorCQkuc2l6ZQkJPSAweDAwMTAwMDAwLAorCQkub2Zmc2V0CQk9IDB4MDA2MDAwMDAsCisJfSwgeworCQkubmFtZQkJPSAiVS1Cb290IENvbmZpZyIsCisJCS5zaXplCQk9IDB4MDAwMjAwMDAsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJOQVMgQ29uZmlnIiwKKwkJLnNpemUJCT0gMHgwMDA2MDAwMCwKKwkJLm9mZnNldAkJPSAweDAwNzAwMDAwLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHFuYXBfdHM0MDlfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHFuYXBfdHM0MDlfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHFuYXBfdHM0MDlfcGFydGl0aW9ucykKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcW5hcF90czQwOV9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CT0gUU5BUF9UUzQwOV9OT1JfQk9PVF9CQVNFLAorCS5lbmQJPSBRTkFQX1RTNDA5X05PUl9CT09UX0JBU0UgKyBRTkFQX1RTNDA5X05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcW5hcF90czQwOV9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAwLAorCS5kZXYJCT0geyAucGxhdGZvcm1fZGF0YSA9ICZxbmFwX3RzNDA5X25vcl9mbGFzaF9kYXRhLCB9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSAmcW5hcF90czQwOV9ub3JfZmxhc2hfcmVzb3VyY2UsCit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFBDSQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQgX19pbml0IHFuYXBfdHM0MDlfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIFBDSSBpc24ndCB1c2VkIG9uIHRoZSBUUy00MDkKKwkgKi8KKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHFuYXBfdHM0MDlfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IHFuYXBfdHM0MDlfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBxbmFwX3RzNDA5X3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfdHM0MDkoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZxbmFwX3RzNDA5X3BjaSk7CisKKwlyZXR1cm4gMDsKK30KKworc3Vic3lzX2luaXRjYWxsKHFuYXBfdHM0MDlfcGNpX2luaXQpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIFJUQyBTMzUzOTBBIG9uIEkyQyBidXMKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFRTNDA5X1JUQ19HUElPCTEwCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gX19pbml0ZGF0YSBxbmFwX3RzNDA5X2kyY19ydGMgPSB7CisJSTJDX0JPQVJEX0lORk8oInMzNTM5MGEiLCAweDMwKSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHUElPIEF0dGFjaGVkIEtleXMKKyAqICAgICBQb3dlciBidXR0b24gaXMgYXR0YWNoZWQgdG8gdGhlIFBJQyBtaWNyb2NvbnRyb2xsZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFFOQVBfVFM0MDlfR1BJT19LRVlfTUVESUEJMTUKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfYnV0dG9uIHFuYXBfdHM0MDlfYnV0dG9uc1tdID0geworCXsKKwkJLmNvZGUJCT0gS0VZX1JFU1RBUlQsCisJCS5ncGlvCQk9IFFOQVBfVFM0MDlfR1BJT19LRVlfTUVESUEsCisJCS5kZXNjCQk9ICJVU0IgQ29weSBCdXR0b24iLAorCQkuYWN0aXZlX2xvdwk9IDEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgcW5hcF90czQwOV9idXR0b25fZGF0YSA9IHsKKwkuYnV0dG9ucwk9IHFuYXBfdHM0MDlfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKHFuYXBfdHM0MDlfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBxbmFwX3RzNDA5X2J1dHRvbl9kZXZpY2UgPSB7CisJLm5hbWUJCT0gImdwaW8ta2V5cyIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcW5hcF90czQwOV9idXR0b25fZGF0YSwKKwl9LAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBHZW5lcmFsIFNldHVwCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB0czQwOV9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfVU5VU0VEIH0sCisJeyAgMiwgTVBQX1VOVVNFRCB9LAorCXsgIDMsIE1QUF9VTlVTRUQgfSwKKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogSEREIDEgc3RhdHVzICovCisJeyAgNSwgTVBQX0dQSU8gfSwJCS8qIEhERCAyIHN0YXR1cyAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBIREQgMyBzdGF0dXMgKi8KKwl7ICA3LCBNUFBfR1BJTyB9LAkJLyogSEREIDQgc3RhdHVzICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfR1BJTyB9LAkJLyogUlRDIGludCAqLworCXsgMTEsIE1QUF9VTlVTRUQgfSwKKwl7IDEyLCBNUFBfVU5VU0VEIH0sCisJeyAxMywgTVBQX1VOVVNFRCB9LAorCXsgMTQsIE1QUF9HUElPIH0sCQkvKiBTV19SU1QgKi8KKwl7IDE1LCBNUFBfR1BJTyB9LAkJLyogVVNCIGNvcHkgYnV0dG9uICovCisJeyAxNiwgTVBQX1VBUlQgfSwJCS8qIFVBUlQxIFJYRCAqLworCXsgMTcsIE1QUF9VQVJUIH0sCQkvKiBVQVJUMSBUWEQgKi8KKwl7IDE4LCBNUFBfVU5VU0VEIH0sCisJeyAxOSwgTVBQX1VOVVNFRCB9LAorCXsgLTEgfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBxbmFwX3RzNDA5X2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHRzNDA5X21wcF9tb2Rlcyk7CisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlxbmFwX3RzeDA5X2ZpbmRfbWFjX2FkZHIoUU5BUF9UUzQwOV9OT1JfQk9PVF9CQVNFICsKKwkJCQkgcW5hcF90czQwOV9wYXJ0aXRpb25zWzVdLm9mZnNldCwKKwkJCQkgcW5hcF90czQwOV9wYXJ0aXRpb25zWzVdLnNpemUpOworCW9yaW9uNXhfZXRoX2luaXQoJnFuYXBfdHN4MDlfZXRoX2RhdGEpOworCW9yaW9uNXhfaTJjX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFFOQVBfVFM0MDlfTk9SX0JPT1RfQkFTRSwKKwkJCQkgICBRTkFQX1RTNDA5X05PUl9CT09UX1NJWkUpOworCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcW5hcF90czQwOV9ub3JfZmxhc2gpOworCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZxbmFwX3RzNDA5X2J1dHRvbl9kZXZpY2UpOworCisJLyogR2V0IFJUQyBJUlEgYW5kIHJlZ2lzdGVyIHRoZSBjaGlwICovCisJaWYgKGdwaW9fcmVxdWVzdChUUzQwOV9SVENfR1BJTywgInJ0YyIpID09IDApIHsKKwkJaWYgKGdwaW9fZGlyZWN0aW9uX2lucHV0KFRTNDA5X1JUQ19HUElPKSA9PSAwKQorCQkJcW5hcF90czQwOV9pMmNfcnRjLmlycSA9IGdwaW9fdG9faXJxKFRTNDA5X1JUQ19HUElPKTsKKwkJZWxzZQorCQkJZ3Bpb19mcmVlKFRTNDA5X1JUQ19HUElPKTsKKwl9CisJaWYgKHFuYXBfdHM0MDlfaTJjX3J0Yy5pcnEgPT0gMCkKKwkJcHJfd2FybmluZygicW5hcF90czQwOV9pbml0OiBmYWlsZWQgdG8gZ2V0IFJUQyBJUlFcbiIpOworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsICZxbmFwX3RzNDA5X2kyY19ydGMsIDEpOworCisJLyogcmVnaXN0ZXIgdHN4MDkgc3BlY2lmaWMgcG93ZXItb2ZmIG1ldGhvZCAqLworCXBtX3Bvd2VyX29mZiA9IHFuYXBfdHN4MDlfcG93ZXJfb2ZmOworfQorCitNQUNISU5FX1NUQVJUKFRTNDA5LCAiUU5BUCBUUy00MDkiKQorCS8qIE1haW50YWluZXI6ICBTeWx2ZXIgQnJ1bmVhdSA8c3lsdmVyLmJydW5lYXVAZ21haWwuY29tPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSBxbmFwX3RzNDA5X2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90czc4eHgtc2V0dXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2U5ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNzh4eC1zZXR1cC5jCkBAIC0wLDAgKzEsMjc3IEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzNzh4eC1zZXR1cC5jCisgKgorICogTWFpbnRhaW5lcjogQWxleGFuZGVyIENsb3V0ZXIgPGFsZXhAZGlncml6Lm9yZy51az4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9tNDh0ODYuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogVFMtNzh4eCBJbmZvCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEZQR0EgLSBsaXZlcyB3aGVyZSB0aGUgUENJIGJ1cyB3b3VsZCBiZSBhdCBPUklPTjVYX1BDSV9NRU1fUEhZU19CQVNFCisgKi8KKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19QSFlTX0JBU0UJMHhlODAwMDAwMAorI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRQkweGZmOTAwMDAwCisjZGVmaW5lIFRTNzhYWF9GUEdBX1JFR1NfU0laRQkJU1pfMU0KKworI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1NZU0NPTl9JRAkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwMCkKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19TWVNDT05fTENESQkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwNCkKKyNkZWZpbmUgVFM3OFhYX0ZQR0FfUkVHU19TWVNDT05fTENETwkoVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UgfCAweDAwOCkKKworI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1JUQ19DVFJMCShUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRSB8IDB4ODA4KQorI2RlZmluZSBUUzc4WFhfRlBHQV9SRUdTX1JUQ19EQVRBCShUUzc4WFhfRlBHQV9SRUdTX1ZJUlRfQkFTRSB8IDB4ODBjKQorCisvKgorICogNTEya0IgTk9SIGZsYXNoIERldmljZQorICovCisjZGVmaW5lIFRTNzhYWF9OT1JfQk9PVF9CQVNFCQkweGZmODAwMDAwCisjZGVmaW5lIFRTNzhYWF9OT1JfQk9PVF9TSVpFCQlTWl81MTJLCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogSS9PIEFkZHJlc3MgTWFwcGluZworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG1hcF9kZXNjIHRzNzh4eF9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCS52aXJ0dWFsCT0gVFM3OFhYX0ZQR0FfUkVHU19WSVJUX0JBU0UsCisJCS5wZm4JCT0gX19waHlzX3RvX3BmbihUUzc4WFhfRlBHQV9SRUdTX1BIWVNfQkFTRSksCisJCS5sZW5ndGgJCT0gVFM3OFhYX0ZQR0FfUkVHU19TSVpFLAorCQkudHlwZQkJPSBNVF9ERVZJQ0UsCisJfSwKK307CisKK3ZvaWQgX19pbml0IHRzNzh4eF9tYXBfaW8odm9pZCkKK3sKKwlvcmlvbjV4X21hcF9pbygpOworCWlvdGFibGVfaW5pdCh0czc4eHhfaW9fZGVzYywgQVJSQVlfU0laRSh0czc4eHhfaW9fZGVzYykpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIDUxMmtCIE5PUiBCb290IEZsYXNoIC0gdGhlIGNoaXAgaXMgYSBNMjVQNDAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJ0cy1ib290cm9tIiwKKwkJLm9mZnNldAkJPSAwLAorCQkvKiBvbmx5IHRoZSBmaXJzdCAyNTZrQiBpcyB1c2VkICovCisJCS5zaXplCQk9IFNaXzI1NkssCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgdHM3OHh4X25vcl9ib290X2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHRzNzh4eF9ub3JfYm9vdF9mbGFzaF9yZXNvdXJjZXMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh0czc4eHhfbm9yX2Jvb3RfZmxhc2hfcmVzb3VyY2VzKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdHM3OHh4X25vcl9ib290X2ZsYXNoX3Jlc291cmNlID0geworCS5mbGFncwkJPSBJT1JFU09VUkNFX01FTSwKKwkuc3RhcnQJCT0gVFM3OFhYX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBUUzc4WFhfTk9SX0JPT1RfQkFTRSArIFRTNzhYWF9OT1JfQk9PVF9TSVpFIC0gMSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHRzNzh4eF9ub3JfYm9vdF9mbGFzaCA9IHsKKwkubmFtZQkJPSAicGh5c21hcC1mbGFzaCIsCisJLmlkCQk9IC0xLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YQk9ICZ0czc4eHhfbm9yX2Jvb3RfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCT0gMSwKKwkucmVzb3VyY2UJPSAmdHM3OHh4X25vcl9ib290X2ZsYXNoX3Jlc291cmNlLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBFdGhlcm5ldAorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgdHM3OHh4X2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IDAsCisJLmZvcmNlX3BoeV9hZGRyID0gMSwKK307CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUlRDIE00OFQ4NiAtIG5pY2tlZF5XYm9ycm93ZWQgZnJvbSBhcmNoL2FybS9tYWNoLWVwOTN4eC90czcyeHguYworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaWZkZWYgQ09ORklHX1JUQ19EUlZfTTQ4VDg2CitzdGF0aWMgdW5zaWduZWQgY2hhciB0czc4eHhfcnRjX3JlYWRieXRlKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwl3cml0ZWIoYWRkciwgVFM3OFhYX0ZQR0FfUkVHU19SVENfQ1RSTCk7CisJcmV0dXJuIHJlYWRiKFRTNzhYWF9GUEdBX1JFR1NfUlRDX0RBVEEpOworfQorCitzdGF0aWMgdm9pZCB0czc4eHhfcnRjX3dyaXRlYnl0ZSh1bnNpZ25lZCBjaGFyIHZhbHVlLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJd3JpdGViKGFkZHIsIFRTNzhYWF9GUEdBX1JFR1NfUlRDX0NUUkwpOworCXdyaXRlYih2YWx1ZSwgVFM3OFhYX0ZQR0FfUkVHU19SVENfREFUQSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbTQ4dDg2X29wcyB0czc4eHhfcnRjX29wcyA9IHsKKwkucmVhZGJ5dGUJPSB0czc4eHhfcnRjX3JlYWRieXRlLAorCS53cml0ZWJ5dGUJPSB0czc4eHhfcnRjX3dyaXRlYnl0ZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHRzNzh4eF9ydGNfZGV2aWNlID0geworCS5uYW1lCQk9ICJydGMtbTQ4dDg2IiwKKwkuaWQJCT0gLTEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJnRzNzh4eF9ydGNfb3BzLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSAwLAorfTsKKworLyoKKyAqIFRTIHVzZXMgc29tZSBvZiB0aGUgdXNlciBzdG9yYWdlIHNwYWNlIG9uIHRoZSBSVEMgY2hpcCBzbyBzZWUgaWYgaXQgaXMKKyAqIHByZXNlbnQ7IGFzIGl0J3MgYW4gb3B0aW9uYWwgZmVhdHVyZSBhdCBwdXJjaGFzZSB0aW1lIGFuZCBub3QgYWxsIGJvYXJkcworICogd2lsbCBoYXZlIGl0IHByZXNlbnQKKyAqCisgKiBJJ3ZlIHVzZWQgdGhlIG1ldGhvZCBUUyB1c2UgaW4gdGhlaXIgcnRjNzgwMC5jIGV4YW1wbGUgZm9yIHRoZSBkZXRlY3Rpb24KKyAqCisgKiBUT0RPOiB0cmFjayBkb3duIGEgZ3VpbmVhIHBpZyB3aXRob3V0IGFuIFJUQyB0byBzZWUgaWYgd2UgY2FuIHdvcmsgb3V0IGEKKyAqIAkJYmV0dGVyIFJUQyBkZXRlY3Rpb24gcm91dGluZQorICovCitzdGF0aWMgaW50IF9faW5pdCB0czc4eHhfcnRjX2luaXQodm9pZCkKK3sKKwl1bnNpZ25lZCBjaGFyIHRtcF9ydGMwLCB0bXBfcnRjMTsKKworCXRtcF9ydGMwID0gdHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjYpOworCXRtcF9ydGMxID0gdHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjcpOworCisJdHM3OHh4X3J0Y193cml0ZWJ5dGUoMHgwMCwgMTI2KTsKKwl0czc4eHhfcnRjX3dyaXRlYnl0ZSgweDU1LCAxMjcpOworCWlmICh0czc4eHhfcnRjX3JlYWRieXRlKDEyNykgPT0gMHg1NSkgeworCQl0czc4eHhfcnRjX3dyaXRlYnl0ZSgweGFhLCAxMjcpOworCQlpZiAodHM3OHh4X3J0Y19yZWFkYnl0ZSgxMjcpID09IDB4YWEKKwkJCQkmJiB0czc4eHhfcnRjX3JlYWRieXRlKDEyNikgPT0gMHgwMCkgeworCQkJdHM3OHh4X3J0Y193cml0ZWJ5dGUodG1wX3J0YzAsIDEyNik7CisJCQl0czc4eHhfcnRjX3dyaXRlYnl0ZSh0bXBfcnRjMSwgMTI3KTsKKwkJCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmdHM3OHh4X3J0Y19kZXZpY2UpOworCQkJcmV0dXJuIDE7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK307CisjZWxzZQorc3RhdGljIGludCBfX2luaXQgdHM3OHh4X3J0Y19pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBTQVRBCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBzdHJ1Y3QgbXZfc2F0YV9wbGF0Zm9ybV9kYXRhIHRzNzh4eF9zYXRhX2RhdGEgPSB7CisJLm5fcG9ydHMJPSAyLAorfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiBwcmludCBzb21lIGluZm9ybWF0aW9uIHJlZ2FyZGluZyB0aGUgYm9hcmQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHZvaWQgX19pbml0IHRzNzh4eF9wcmludF9ib2FyZF9pZCh2b2lkKQoreworCXVuc2lnbmVkIGludCBib2FyZF9pbmZvOworCisJYm9hcmRfaW5mbyA9IHJlYWRsKFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0lEKTsKKwlwcmludGsoS0VSTl9JTkZPICJUUy03OHh4IEluZm86IEZQR0EgcmV2PSUuMngsIEJvYXJkIE1hZ2ljPSUuNngsICIsCisJCQkJYm9hcmRfaW5mbyAmIDB4ZmYsCisJCQkJKGJvYXJkX2luZm8gPj4gOCkgJiAweGZmZmZmZik7CisJYm9hcmRfaW5mbyA9IHJlYWRsKFRTNzhYWF9GUEdBX1JFR1NfU1lTQ09OX0xDREkpOworCXByaW50aygiSlAxPSVkLCBKUDI9JWRcbiIsCisJCQkJKGJvYXJkX2luZm8gPj4gMzApICYgMHgxLAorCQkJCShib2FyZF9pbmZvID4+IDMxKSAmIDB4MSk7Cit9OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEdlbmVyYWwgU2V0dXAKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHRzNzh4eF9tcHBfbW9kZXNbXSBfX2luaXRkYXRhID0geworCXsgIDAsIE1QUF9VTlVTRUQgfSwKKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogSlRBRyBDbG9jayAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBKVEFHIERhdGEgSW4gKi8KKwl7ICAzLCBNUFBfR1BJTyB9LAkJLyogTGF0IEVDUDIgMjU2IEZQR0EgLSBQQjJCICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIEpUQUcgRGF0YSBPdXQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogSlRBRyBUTVMgKi8KKwl7ICA2LCBNUFBfR1BJTyB9LAkJLyogTGF0IEVDUDIgMjU2IEZQR0EgLSBQQjMxQV9DTEs0KyAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBMYXQgRUNQMiAyNTYgRlBHQSAtIFBCMjJCICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAorCXsgIDksIE1QUF9VTlVTRUQgfSwKKwl7IDEwLCBNUFBfVU5VU0VEIH0sCisJeyAxMSwgTVBQX1VOVVNFRCB9LAorCXsgMTIsIE1QUF9VTlVTRUQgfSwKKwl7IDEzLCBNUFBfVU5VU0VEIH0sCisJeyAxNCwgTVBQX1VOVVNFRCB9LAorCXsgMTUsIE1QUF9VTlVTRUQgfSwKKwl7IDE2LCBNUFBfVUFSVCB9LAorCXsgMTcsIE1QUF9VQVJUIH0sCisJeyAxOCwgTVBQX1VBUlQgfSwKKwl7IDE5LCBNUFBfVUFSVCB9LAorCXsgLTEgfSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCB0czc4eHhfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCXRzNzh4eF9wcmludF9ib2FyZF9pZCgpOworCisJb3Jpb241eF9tcHBfY29uZih0czc4eHhfbXBwX21vZGVzKTsKKworCS8qCisJICogTVBQWzIwXSBQQ0kgQ2xvY2sgT3V0IDEKKwkgKiBNUFBbMjFdIFBDSSBDbG9jayBPdXQgMAorCSAqIE1QUFsyMl0gVW51c2VkCisJICogTVBQWzIzXSBVbnVzZWQKKwkgKiBNUFBbMjRdIFVudXNlZAorCSAqIE1QUFsyNV0gVW51c2VkCisJICovCisKKwkvKgorCSAqIENvbmZpZ3VyZSBwZXJpcGhlcmFscy4KKwkgKi8KKwlvcmlvbjV4X2VoY2kwX2luaXQoKTsKKwlvcmlvbjV4X2VoY2kxX2luaXQoKTsKKwlvcmlvbjV4X2V0aF9pbml0KCZ0czc4eHhfZXRoX2RhdGEpOworCW9yaW9uNXhfc2F0YV9pbml0KCZ0czc4eHhfc2F0YV9kYXRhKTsKKwlvcmlvbjV4X3VhcnQwX2luaXQoKTsKKwlvcmlvbjV4X3VhcnQxX2luaXQoKTsKKworCW9yaW9uNXhfc2V0dXBfZGV2X2Jvb3Rfd2luKFRTNzhYWF9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFRTNzhYWF9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnRzNzh4eF9ub3JfYm9vdF9mbGFzaCk7CisKKwlpZiAoIXRzNzh4eF9ydGNfaW5pdCgpKQorCQlwcmludGsoS0VSTl9JTkZPICJUUy03OHh4IFJUQyBub3QgZGV0ZWN0ZWQgb3IgZW5hYmxlZFxuIik7Cit9CisKK01BQ0hJTkVfU1RBUlQoVFM3OFhYLCAiVGVjaG5vbG9naWMgU3lzdGVtcyBUUy03OHh4IFNCQyIpCisJLyogTWFpbnRhaW5lcjogQWxleGFuZGVyIENsb3V0ZXIgPGFsZXhAZGlncml6Lm9yZy51az4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gdHM3OHh4X2luaXQsCisJLm1hcF9pbwkJPSB0czc4eHhfbWFwX2lvLAorCS5pbml0X2lycQk9IG9yaW9uNXhfaW5pdF9pcnEsCisJLnRpbWVyCQk9ICZvcmlvbjV4X3RpbWVyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC90c3gwOS1jb21tb24uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2ZlYWMzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5jCkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIGNvbW1vbiBmdW5jdGlvbnMKKyAqCisgKiBNYWludGFpbmVyczogTGVubmVydCBCdXl0ZW5oZWsgPGJ1eXRlbmhAbWFydmVsbC5jb20+CisgKgkJQnlyb24gQnJhZGxleSA8Ynlyb24uYmJyYWRsZXlAZ21haWwuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CisjaW5jbHVkZSAidHN4MDktY29tbW9uLmgiCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogUU5BUCBUUy14MDkgc3BlY2lmaWMgcG93ZXIgb2ZmIG1ldGhvZCB2aWEgVUFSVDEtYXR0YWNoZWQgUElDCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBVQVJUMV9SRUcoeCkJKFVBUlQxX1ZJUlRfQkFTRSArICgoVUFSVF8jI3gpIDw8IDIpKQorCit2b2lkIHFuYXBfdHN4MDlfcG93ZXJfb2ZmKHZvaWQpCit7CisJLyogMTkyMDAgYmF1ZCBkaXZpc29yICovCisJY29uc3QgdW5zaWduZWQgZGl2aXNvciA9ICgoT1JJT041WF9UQ0xLICsgKDggKiAxOTIwMCkpIC8gKDE2ICogMTkyMDApKTsKKworCXByX2luZm8oIiVzOiB0cmlnZ2VyaW5nIHBvd2VyLW9mZi4uLlxuIiwgX19mdW5jX18pOworCisJLyogaGlqYWNrIHVhcnQxIGFuZCByZXNldCBpbnRvIHNhbmUgc3RhdGUgKDE5MjAwLDhuMSkgKi8KKwl3cml0ZWwoMHg4MywgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbChkaXZpc29yICYgMHhmZiwgVUFSVDFfUkVHKERMTCkpOworCXdyaXRlbCgoZGl2aXNvciA+PiA4KSAmIDB4ZmYsIFVBUlQxX1JFRyhETE0pKTsKKwl3cml0ZWwoMHgwMywgVUFSVDFfUkVHKExDUikpOworCXdyaXRlbCgweDAwLCBVQVJUMV9SRUcoSUVSKSk7CisJd3JpdGVsKDB4MDAsIFVBUlQxX1JFRyhGQ1IpKTsKKwl3cml0ZWwoMHgwMCwgVUFSVDFfUkVHKE1DUikpOworCisJLyogc2VuZCB0aGUgcG93ZXItb2ZmIGNvbW1hbmQgJ0EnIHRvIFBJQyAqLworCXdyaXRlbCgnQScsIFVBUlQxX1JFRyhUWCkpOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIEV0aGVybmV0CisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgcW5hcF90c3gwOV9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSA4LAorfTsKKworc3RhdGljIGludCBfX2luaXQgcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGNoYXIgbikKK3sKKwlpZiAobiA+PSAnMCcgJiYgbiA8PSAnOScpCisJCXJldHVybiBuIC0gJzAnOworCisJaWYgKG4gPj0gJ0EnICYmIG4gPD0gJ0YnKQorCQlyZXR1cm4gbiAtICdBJyArIDEwOworCisJaWYgKG4gPj0gJ2EnICYmIG4gPD0gJ2YnKQorCQlyZXR1cm4gbiAtICdhJyArIDEwOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgaW50IF9faW5pdCBxbmFwX3RzeDA5X3BhcnNlX2hleF9ieXRlKGNvbnN0IGNoYXIgKmIpCit7CisJaW50IGhpOworCWludCBsbzsKKworCWhpID0gcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGJbMF0pOworCWxvID0gcW5hcF90c3gwOV9wYXJzZV9oZXhfbmliYmxlKGJbMV0pOworCisJaWYgKGhpIDwgMCB8fCBsbyA8IDApCisJCXJldHVybiAtMTsKKworCXJldHVybiAoaGkgPDwgNCkgfCBsbzsKK30KKworc3RhdGljIGludCBfX2luaXQgcW5hcF90c3gwOV9jaGVja19tYWNfYWRkcihjb25zdCBjaGFyICphZGRyX3N0cikKK3sKKwl1X2ludDhfdCBhZGRyWzZdOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykgeworCQlpbnQgYnl0ZTsKKworCQkvKgorCQkgKiBFbmZvcmNlICJ4eDp4eDp4eDp4eDp4eDp4eFxuIiBmb3JtYXQuCisJCSAqLworCQlpZiAoYWRkcl9zdHJbKGkgKiAzKSArIDJdICE9ICgoaSA8IDUpID8gJzonIDogJ1xuJykpCisJCQlyZXR1cm4gLTE7CisKKwkJYnl0ZSA9IHFuYXBfdHN4MDlfcGFyc2VfaGV4X2J5dGUoYWRkcl9zdHIgKyAoaSAqIDMpKTsKKwkJaWYgKGJ5dGUgPCAwKQorCQkJcmV0dXJuIC0xOworCQlhZGRyW2ldID0gYnl0ZTsKKwl9CisKKwlwcmludGsoS0VSTl9JTkZPICJ0c3gwOTogZm91bmQgZXRoZXJuZXQgbWFjIGFkZHJlc3MgIik7CisJZm9yIChpID0gMDsgaSA8IDY7IGkrKykKKwkJcHJpbnRrKCIlLjJ4JXMiLCBhZGRyW2ldLCAoaSA8IDUpID8gIjoiIDogIi5cbiIpOworCisJbWVtY3B5KHFuYXBfdHN4MDlfZXRoX2RhdGEubWFjX2FkZHIsIGFkZHIsIDYpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGUgJ05BUyBDb25maWcnIGZsYXNoIHBhcnRpdGlvbiBoYXMgYW4gZXh0MiBmaWxlc3lzdGVtIHdoaWNoCisgKiBjb250YWlucyBhIGZpbGUgdGhhdCBoYXMgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzIGluIHBsYWluIHRleHQKKyAqIChmb3JtYXQgInh4Onh4Onh4Onh4Onh4Onh4XG4iKS4KKyAqLwordm9pZCBfX2luaXQgcW5hcF90c3gwOV9maW5kX21hY19hZGRyKHUzMiBtZW1fYmFzZSwgdTMyIHNpemUpCit7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCisJZm9yIChhZGRyID0gbWVtX2Jhc2U7IGFkZHIgPCAobWVtX2Jhc2UgKyBzaXplKTsgYWRkciArPSAxMDI0KSB7CisJCWNoYXIgKm5vcl9wYWdlOworCQlpbnQgcmV0ID0gMDsKKworCQlub3JfcGFnZSA9IGlvcmVtYXAoYWRkciwgMTAyNCk7CisJCWlmIChub3JfcGFnZSAhPSBOVUxMKSB7CisJCQlyZXQgPSBxbmFwX3RzeDA5X2NoZWNrX21hY19hZGRyKG5vcl9wYWdlKTsKKwkJCWlvdW5tYXAobm9yX3BhZ2UpOworCQl9CisKKwkJaWYgKHJldCA9PSAwKQorCQkJYnJlYWs7CisJfQorfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5oIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3RzeDA5LWNvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ODQyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvdHN4MDktY29tbW9uLmgKQEAgLTAsMCArMSwyMCBAQAorI2lmbmRlZiBfX0FSQ0hfT1JJT041WF9UU1gwOV9DT01NT05fSAorI2RlZmluZSBfX0FSQ0hfT1JJT041WF9UU1gwOV9DT01NT05fSAorCisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIHBvd2VyLW9mZiBmdW5jdGlvbgorICovCitleHRlcm4gdm9pZCBxbmFwX3RzeDA5X3Bvd2VyX29mZih2b2lkKTsKKworLyoKKyAqIFFOQVAgVFMteDA5IEJvYXJkcyBmdW5jdGlvbiB0byBmaW5kIEV0aGVybmV0IE1BQyBhZGRyZXNzIGluIGZsYXNoIG1lbW9yeQorICovCitleHRlcm4gdm9pZCBfX2luaXQgcW5hcF90c3gwOV9maW5kX21hY19hZGRyKHUzMiBtZW1fYmFzZSwgdTMyIHNpemUpOworCisvKgorICogUU5BUCBUUy14MDkgQm9hcmRzIGV0aGVybmV0IGRlY2xhcmF0aW9uCisgKi8KK2V4dGVybiBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSBxbmFwX3RzeDA5X2V0aF9kYXRhOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3ducjg1NHQtc2V0dXAuYyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC93bnI4NTR0LXNldHVwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFmMDkzZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21hY2gtb3Jpb241eC93bnI4NTR0LXNldHVwLmMKQEAgLTAsMCArMSwxNjQgQEAKKy8qCisgKiBhcmNoL2FybS9tYWNoLW9yaW9uNXgvd25yODU0dC1zZXR1cC5jCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CisjaW5jbHVkZSA8bGludXgvbXY2NDN4eF9ldGguaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL3BjaS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL29yaW9uNXguaD4KKyNpbmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlICJtcHAuaCIKKworc3RhdGljIHN0cnVjdCBvcmlvbjV4X21wcF9tb2RlIHducjg1NHRfbXBwX21vZGVzW10gX19pbml0ZGF0YSA9IHsKKwl7ICAwLCBNUFBfR1BJTyB9LAkJLyogUG93ZXIgTEVEIGdyZWVuICgwPW9uKSAqLworCXsgIDEsIE1QUF9HUElPIH0sCQkvKiBSZXNldCBCdXR0b24gKDA9b2ZmKSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgYmxpbmsgKDA9b2ZmKSAqLworCXsgIDMsIE1QUF9HUElPIH0sCQkvKiBXQU4gU3RhdHVzIExFRCBhbWJlciAoMD1vZmYpICovCisJeyAgNCwgTVBQX0dQSU8gfSwJCS8qIFBDSSBpbnQgKi8KKwl7ICA1LCBNUFBfR1BJTyB9LAkJLyogPz8/ICovCisJeyAgNiwgTVBQX0dQSU8gfSwJCS8qID8/PyAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiA/Pz8gKi8KKwl7ICA4LCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7ICA5LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhFUlIgKi8KKwl7IDEwLCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7IDExLCBNUFBfVU5VU0VEIH0sCQkvKiA/Pz8gKi8KKwl7IDEyLCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzRdICovCisJeyAxMywgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs1XSAqLworCXsgMTQsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNl0gKi8KKwl7IDE1LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzddICovCisJeyAxNiwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs0XSAqLworCXsgMTcsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNV0gKi8KKwl7IDE4LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzZdICovCisJeyAxOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs3XSAqLworCXsgLTEgfSwKK307CisKKy8qCisgKiA4TSBOT1IgZmxhc2ggRGV2aWNlIGJ1cyBib290IGNoaXAgc2VsZWN0CisgKi8KKyNkZWZpbmUgV05SODU0VF9OT1JfQk9PVF9CQVNFCTB4ZjQwMDAwMDAKKyNkZWZpbmUgV05SODU0VF9OT1JfQk9PVF9TSVpFCVNaXzhNCisKK3N0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiB3bnI4NTR0X25vcl9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CisJeworCQkubmFtZQkJPSAia2VybmVsIiwKKwkJLm9mZnNldAkJPSAweDAwMDAwMDAwLAorCQkuc2l6ZQkJPSAweDAwMTAwMDAwLAorCX0sIHsKKwkJLm5hbWUJCT0gInJvb3RmcyIsCisJCS5vZmZzZXQJCT0gMHgwMDEwMDAwMCwKKwkJLnNpemUJCT0gMHgwMDY2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJ1Ym9vdCIsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgd25yODU0dF9ub3JfZmxhc2hfZGF0YSA9IHsKKwkud2lkdGgJCT0gMiwKKwkucGFydHMJCT0gd25yODU0dF9ub3JfZmxhc2hfcGFydGl0aW9ucywKKwkubnJfcGFydHMJPSBBUlJBWV9TSVpFKHducjg1NHRfbm9yX2ZsYXNoX3BhcnRpdGlvbnMpLAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSB3bnI4NTR0X25vcl9mbGFzaF9yZXNvdXJjZSA9IHsKKwkuZmxhZ3MJCT0gSU9SRVNPVVJDRV9NRU0sCisJLnN0YXJ0CQk9IFdOUjg1NFRfTk9SX0JPT1RfQkFTRSwKKwkuZW5kCQk9IFdOUjg1NFRfTk9SX0JPT1RfQkFTRSArIFdOUjg1NFRfTk9SX0JPT1RfU0laRSAtIDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB3bnI4NTR0X25vcl9mbGFzaCA9IHsKKwkubmFtZQkJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJCT0gMCwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmd25yODU0dF9ub3JfZmxhc2hfZGF0YSwKKwl9LAorCS5udW1fcmVzb3VyY2VzCQk9IDEsCisJLnJlc291cmNlCQk9ICZ3bnI4NTR0X25vcl9mbGFzaF9yZXNvdXJjZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbXY2NDN4eF9ldGhfcGxhdGZvcm1fZGF0YSB3bnI4NTR0X2V0aF9kYXRhID0geworCS5waHlfYWRkcgk9IC0xLAorfTsKKworc3RhdGljIHZvaWQgX19pbml0IHducjg1NHRfaW5pdCh2b2lkKQoreworCS8qCisJICogU2V0dXAgYmFzaWMgT3Jpb24gZnVuY3Rpb25zLiBOZWVkIHRvIGJlIGNhbGxlZCBlYXJseS4KKwkgKi8KKwlvcmlvbjV4X2luaXQoKTsKKworCW9yaW9uNXhfbXBwX2NvbmYod25yODU0dF9tcHBfbW9kZXMpOworCisJLyoKKwkgKiBDb25maWd1cmUgcGVyaXBoZXJhbHMuCisJICovCisJb3Jpb241eF9ldGhfaW5pdCgmd25yODU0dF9ldGhfZGF0YSk7CisJb3Jpb241eF91YXJ0MF9pbml0KCk7CisKKwlvcmlvbjV4X3NldHVwX2Rldl9ib290X3dpbihXTlI4NTRUX05PUl9CT09UX0JBU0UsCisJCQkJICAgV05SODU0VF9OT1JfQk9PVF9TSVpFKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnducjg1NHRfbm9yX2ZsYXNoKTsKK30KKworc3RhdGljIGludCBfX2luaXQgd25yODU0dF9wY2lfbWFwX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCit7CisJaW50IGlycTsKKworCS8qCisJICogQ2hlY2sgZm9yIGRldmljZXMgd2l0aCBoYXJkLXdpcmVkIElSUXMuCisJICovCisJaXJxID0gb3Jpb241eF9wY2lfbWFwX2lycShkZXYsIHNsb3QsIHBpbik7CisJaWYgKGlycSAhPSAtMSkKKwkJcmV0dXJuIGlycTsKKworCS8qCisJICogTWluaS1QQ0kgc2xvdC4KKwkgKi8KKwlpZiAoc2xvdCA9PSA3KQorCQlyZXR1cm4gZ3Bpb190b19pcnEoNCk7CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdfcGNpIHducjg1NHRfcGNpIF9faW5pdGRhdGEgPSB7CisJLm5yX2NvbnRyb2xsZXJzCT0gMiwKKwkuc3dpenpsZQk9IHBjaV9zdGRfc3dpenpsZSwKKwkuc2V0dXAJCT0gb3Jpb241eF9wY2lfc3lzX3NldHVwLAorCS5zY2FuCQk9IG9yaW9uNXhfcGNpX3N5c19zY2FuX2J1cywKKwkubWFwX2lycQk9IHducjg1NHRfcGNpX21hcF9pcnEsCit9OworCitzdGF0aWMgaW50IF9faW5pdCB3bnI4NTR0X3BjaV9pbml0KHZvaWQpCit7CisJaWYgKG1hY2hpbmVfaXNfd25yODU0dCgpKQorCQlwY2lfY29tbW9uX2luaXQoJnducjg1NHRfcGNpKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHducjg1NHRfcGNpX2luaXQpOworCitNQUNISU5FX1NUQVJUKFdOUjg1NFQsICJOZXRnZWFyIFdOUjg1NFQiKQorCS8qIE1haW50YWluZXI6IEltcmUgS2Fsb3ogPGthbG96QG9wZW53cnQub3JnPiAqLworCS5waHlzX2lvCT0gT1JJT041WF9SRUdTX1BIWVNfQkFTRSwKKwkuaW9fcGdfb2Zmc3QJPSAoKE9SSU9ONVhfUkVHU19WSVJUX0JBU0UpID4+IDE4KSAmIDB4RkZGQywKKwkuYm9vdF9wYXJhbXMJPSAweDAwMDAwMTAwLAorCS5pbml0X21hY2hpbmUJPSB3bnI4NTR0X2luaXQsCisJLm1hcF9pbwkJPSBvcmlvbjV4X21hcF9pbywKKwkuaW5pdF9pcnEJPSBvcmlvbjV4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmb3Jpb241eF90aW1lciwKKwkuZml4dXAJCT0gdGFnX2ZpeHVwX21lbTMyLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC93cnQzNTBuLXYyLXNldHVwLmMgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd3J0MzUwbi12Mi1zZXR1cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYWI1NWMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9yaW9uNXgvd3J0MzUwbi12Mi1zZXR1cC5jCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3dydDM1MG4tdjItc2V0dXAuYworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L212NjQzeHhfZXRoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CisjaW5jbHVkZSAiY29tbW9uLmgiCisjaW5jbHVkZSAibXBwLmgiCisKK3N0YXRpYyBzdHJ1Y3Qgb3Jpb241eF9tcHBfbW9kZSB3cnQzNTBuX3YyX21wcF9tb2Rlc1tdIF9faW5pdGRhdGEgPSB7CisJeyAgMCwgTVBQX0dQSU8gfSwJCS8qIFBvd2VyIExFRCBncmVlbiAoMD1vbikgKi8KKwl7ICAxLCBNUFBfR1BJTyB9LAkJLyogU2VjdXJpdHkgTEVEICgwPW9uKSAqLworCXsgIDIsIE1QUF9HUElPIH0sCQkvKiBJbnRlcm5hbCBCdXR0b24gKDA9b24pICovCisJeyAgMywgTVBQX0dQSU8gfSwJCS8qIFJlc2V0IEJ1dHRvbiAoMD1vbikgKi8KKwl7ICA0LCBNUFBfR1BJTyB9LAkJLyogUENJIGludCAqLworCXsgIDUsIE1QUF9HUElPIH0sCQkvKiBQb3dlciBMRUQgb3JhbmdlICgwPW9uKSAqLworCXsgIDYsIE1QUF9HUElPIH0sCQkvKiBVU0IgTEVEICgwPW9uKSAqLworCXsgIDcsIE1QUF9HUElPIH0sCQkvKiBXaXJlbGVzcyBMRUQgKDA9b24pICovCisJeyAgOCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAgOSwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRVJSICovCisJeyAxMCwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMSwgTVBQX1VOVVNFRCB9LAkJLyogPz8/ICovCisJeyAxMiwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs0XSAqLworCXsgMTMsIE1QUF9HSUdFIH0sCQkvKiBHRV9UWERbNV0gKi8KKwl7IDE0LCBNUFBfR0lHRSB9LAkJLyogR0VfVFhEWzZdICovCisJeyAxNSwgTVBQX0dJR0UgfSwJCS8qIEdFX1RYRFs3XSAqLworCXsgMTYsIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbNF0gKi8KKwl7IDE3LCBNUFBfR0lHRSB9LAkJLyogR0VfUlhEWzVdICovCisJeyAxOCwgTVBQX0dJR0UgfSwJCS8qIEdFX1JYRFs2XSAqLworCXsgMTksIE1QUF9HSUdFIH0sCQkvKiBHRV9SWERbN10gKi8KKwl7IC0xIH0sCit9OworCisvKgorICogOE0gTk9SIGZsYXNoIERldmljZSBidXMgYm9vdCBjaGlwIHNlbGVjdAorICovCisjZGVmaW5lIFdSVDM1ME5fVjJfTk9SX0JPT1RfQkFTRQkweGY0MDAwMDAwCisjZGVmaW5lIFdSVDM1ME5fVjJfTk9SX0JPT1RfU0laRQlTWl84TQorCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gd3J0MzUwbl92Ml9ub3JfZmxhc2hfcGFydGl0aW9uc1tdID0geworCXsKKwkJLm5hbWUJCT0gImtlcm5lbCIsCisJCS5vZmZzZXQJCT0gMHgwMDAwMDAwMCwKKwkJLnNpemUJCT0gMHgwMDc2MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJyb290ZnMiLAorCQkub2Zmc2V0CQk9IDB4MDAxYTAwMDAsCisJCS5zaXplCQk9IDB4MDA1YzAwMDAsCisJfSwgeworCQkubmFtZQkJPSAibGFuZyIsCisJCS5vZmZzZXQJCT0gMHgwMDc2MDAwMCwKKwkJLnNpemUJCT0gMHgwMDA0MDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJudnJhbSIsCisJCS5vZmZzZXQJCT0gMHgwMDdhMDAwMCwKKwkJLnNpemUJCT0gMHgwMDAyMDAwMCwKKwl9LCB7CisJCS5uYW1lCQk9ICJ1LWJvb3QiLAorCQkub2Zmc2V0CQk9IDB4MDA3YzAwMDAsCisJCS5zaXplCQk9IDB4MDAwNDAwMDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGh5c21hcF9mbGFzaF9kYXRhIHdydDM1MG5fdjJfbm9yX2ZsYXNoX2RhdGEgPSB7CisJLndpZHRoCQk9IDEsCisJLnBhcnRzCQk9IHdydDM1MG5fdjJfbm9yX2ZsYXNoX3BhcnRpdGlvbnMsCisJLm5yX3BhcnRzCT0gQVJSQVlfU0laRSh3cnQzNTBuX3YyX25vcl9mbGFzaF9wYXJ0aXRpb25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugd3J0MzUwbl92Ml9ub3JfZmxhc2hfcmVzb3VyY2UgPSB7CisJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAorCS5zdGFydAkJPSBXUlQzNTBOX1YyX05PUl9CT09UX0JBU0UsCisJLmVuZAkJPSBXUlQzNTBOX1YyX05PUl9CT09UX0JBU0UgKyBXUlQzNTBOX1YyX05PUl9CT09UX1NJWkUgLSAxLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugd3J0MzUwbl92Ml9ub3JfZmxhc2ggPSB7CisJLm5hbWUJCQk9ICJwaHlzbWFwLWZsYXNoIiwKKwkuaWQJCQk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJndydDM1MG5fdjJfbm9yX2ZsYXNoX2RhdGEsCisJfSwKKwkubnVtX3Jlc291cmNlcwkJPSAxLAorCS5yZXNvdXJjZQkJPSAmd3J0MzUwbl92Ml9ub3JfZmxhc2hfcmVzb3VyY2UsCit9OworCitzdGF0aWMgc3RydWN0IG12NjQzeHhfZXRoX3BsYXRmb3JtX2RhdGEgd3J0MzUwbl92Ml9ldGhfZGF0YSA9IHsKKwkucGh5X2FkZHIJPSAtMSwKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCB3cnQzNTBuX3YyX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIFNldHVwIGJhc2ljIE9yaW9uIGZ1bmN0aW9ucy4gTmVlZCB0byBiZSBjYWxsZWQgZWFybHkuCisJICovCisJb3Jpb241eF9pbml0KCk7CisKKwlvcmlvbjV4X21wcF9jb25mKHdydDM1MG5fdjJfbXBwX21vZGVzKTsKKworCS8qCisJICogQ29uZmlndXJlIHBlcmlwaGVyYWxzLgorCSAqLworCW9yaW9uNXhfZWhjaTBfaW5pdCgpOworCW9yaW9uNXhfZXRoX2luaXQoJndydDM1MG5fdjJfZXRoX2RhdGEpOworCW9yaW9uNXhfdWFydDBfaW5pdCgpOworCisJb3Jpb241eF9zZXR1cF9kZXZfYm9vdF93aW4oV1JUMzUwTl9WMl9OT1JfQk9PVF9CQVNFLAorCQkJCSAgIFdSVDM1ME5fVjJfTk9SX0JPT1RfU0laRSk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZ3cnQzNTBuX3YyX25vcl9mbGFzaCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHdydDM1MG5fdjJfcGNpX21hcF9pcnEoc3RydWN0IHBjaV9kZXYgKmRldiwgdTggc2xvdCwgdTggcGluKQoreworCWludCBpcnE7CisKKwkvKgorCSAqIENoZWNrIGZvciBkZXZpY2VzIHdpdGggaGFyZC13aXJlZCBJUlFzLgorCSAqLworCWlycSA9IG9yaW9uNXhfcGNpX21hcF9pcnEoZGV2LCBzbG90LCBwaW4pOworCWlmIChpcnEgIT0gLTEpCisJCXJldHVybiBpcnE7CisKKwkvKgorCSAqIE1pbmktUENJIHNsb3QuCisJICovCisJaWYgKHNsb3QgPT0gNykKKwkJcmV0dXJuIGdwaW9fdG9faXJxKDQpOworCisJcmV0dXJuIC0xOworfQorCitzdGF0aWMgc3RydWN0IGh3X3BjaSB3cnQzNTBuX3YyX3BjaSBfX2luaXRkYXRhID0geworCS5ucl9jb250cm9sbGVycwk9IDIsCisJLnN3aXp6bGUJPSBwY2lfc3RkX3N3aXp6bGUsCisJLnNldHVwCQk9IG9yaW9uNXhfcGNpX3N5c19zZXR1cCwKKwkuc2NhbgkJPSBvcmlvbjV4X3BjaV9zeXNfc2Nhbl9idXMsCisJLm1hcF9pcnEJPSB3cnQzNTBuX3YyX3BjaV9tYXBfaXJxLAorfTsKKworc3RhdGljIGludCBfX2luaXQgd3J0MzUwbl92Ml9wY2lfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX3dydDM1MG5fdjIoKSkKKwkJcGNpX2NvbW1vbl9pbml0KCZ3cnQzNTBuX3YyX3BjaSk7CisKKwlyZXR1cm4gMDsKK30KK3N1YnN5c19pbml0Y2FsbCh3cnQzNTBuX3YyX3BjaV9pbml0KTsKKworTUFDSElORV9TVEFSVChXUlQzNTBOX1YyLCAiTGlua3N5cyBXUlQzNTBOIHYyIikKKwkvKiBNYWludGFpbmVyOiBMZW5uZXJ0IEJ1eXRlbmhlayA8YnV5dGVuaEBtYXJ2ZWxsLmNvbT4gKi8KKwkucGh5c19pbwk9IE9SSU9ONVhfUkVHU19QSFlTX0JBU0UsCisJLmlvX3BnX29mZnN0CT0gKChPUklPTjVYX1JFR1NfVklSVF9CQVNFKSA+PiAxOCkgJiAweEZGRkMsCisJLmJvb3RfcGFyYW1zCT0gMHgwMDAwMDEwMCwKKwkuaW5pdF9tYWNoaW5lCT0gd3J0MzUwbl92Ml9pbml0LAorCS5tYXBfaW8JCT0gb3Jpb241eF9tYXBfaW8sCisJLmluaXRfaXJxCT0gb3Jpb241eF9pbml0X2lycSwKKwkudGltZXIJCT0gJm9yaW9uNXhfdGltZXIsCisJLmZpeHVwCQk9IHRhZ19maXh1cF9tZW0zMiwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1weGEvS2NvbmZpZwppbmRleCA1ZGE3YTY4Li45MTRiYjMzIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL0tjb25maWcKQEAgLTIwLDggKzIwLDcgQEAKIAogZW5kaWYKIAotY2hvaWNlCi0JcHJvbXB0ICJTZWxlY3QgdGFyZ2V0IGJvYXJkIgorbWVudSAiU2VsZWN0IHRhcmdldCBib2FyZHMiCiAKIGNvbmZpZyBBUkNIX0dVTVNUSVgKIAlib29sICJHdW1zdGl4IFhTY2FsZSBib2FyZHMiCkBAIC0zNywxMCArMzYsMTIgQEAKIGNvbmZpZyBNQUNIX0xPR0lDUERfUFhBMjcwCiAJYm9vbCAiTG9naWNQRCBQWEEyNzAgQ2FyZCBFbmdpbmUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTI3eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgTUFDSF9NQUlOU1RPTkUKIAlib29sICJJbnRlbCBIQ0REQkJWQTAgRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTI3eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgQVJDSF9QWEFfSURQCiAJYm9vbCAiQWNjZWxlbnQgWHNjYWxlIElEUCIKQEAgLTExNiw2ICsxMTcsNyBAQAogY29uZmlnIE1BQ0hfWllMT05JVEUKIAlib29sICJQWEEzeHggRGV2ZWxvcG1lbnQgUGxhdGZvcm0iCiAJc2VsZWN0IFBYQTN4eAorCXNlbGVjdCBIQVZFX1BXTQogCiBjb25maWcgTUFDSF9MSVRUTEVUT04KIAlib29sICJQWEEzeHggRm9ybSBGYWN0b3IgUGxhdGZvcm0gKGFrYSBMaXR0bGV0b24pIgpAQCAtMTM4LDcgKzE0MCw3IEBACiAJc2VsZWN0IFBYQTI3eAogCXNlbGVjdCBJV01NWFQKIAotZW5kY2hvaWNlCitlbmRtZW51CiAKIGNob2ljZQogCXByb21wdCAiVXNlZCBiYXNlYm9hcmQiCkBAIC0xNDYsMjYgKzE0OCwyNSBAQAogCiBjb25maWcgTUFDSF9QQ005OTBfQkFTRUJPQVJECiAJYm9vbCAiUEhZVEVDIFBDTS05OTAgZGV2ZWxvcG1lbnQgYm9hcmQiCisJc2VsZWN0IEhBVkVfUFdNCiAKIGVuZGNob2ljZQogCi1pZiBQWEFfU0hBUlBTTAotCiBjaG9pY2UKLQlwcm9tcHQgIlNlbGVjdCB0YXJnZXQgU2hhcnAgWmF1cnVzIGRldmljZSByYW5nZSIKKwlwcm9tcHQgImRpc3BsYXkgb24gcGNtOTkwIgorCWRlcGVuZHMgb24gTUFDSF9QQ005OTBfQkFTRUJPQVJECiAKLWNvbmZpZyBQWEFfU0hBUlBTTF8yNXgKLQlib29sICJTaGFycCBQWEEyNXggbW9kZWxzIChTTC01NjAwLCBTTC1DN3h4IGFuZCBTTC1DNjAwMHgpIgotCXNlbGVjdCBQWEEyNXgKK2NvbmZpZyBQQ005OTBfRElTUExBWV9TSEFSUAorCWJvb2wgInNoYXJwIGxxMDg0djFkZzIxIHN0biBkaXNwbGF5IgogCi1jb25maWcgUFhBX1NIQVJQU0xfMjd4Ci0JYm9vbCAiU2hhcnAgUFhBMjcwIG1vZGVscyAoU0wtQ3h4MDApIgotCXNlbGVjdCBQWEEyN3gKK2NvbmZpZyBQQ005OTBfRElTUExBWV9ORUMKKwlib29sICJuZWMgbmw2NDQ4YmMyMF8xOGQgdGZ0IGRpc3BsYXkiCisKK2NvbmZpZyBQQ005OTBfRElTUExBWV9OT05FCisJYm9vbCAibm8gZGlzcGxheSIKIAogZW5kY2hvaWNlCiAKLWVuZGlmCi0KIGlmIEFSQ0hfR1VNU1RJWAogCiBjaG9pY2UKQEAgLTE5OSwyOCArMjAwLDMzIEBACiAKIGNvbmZpZyBNQUNIX1BPT0RMRQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC01NjAwIChQb29kbGUpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCXNlbGVjdCBTSEFSUF9MT0NPTU8KIAlzZWxlY3QgUFhBX1NTUAogCiBjb25maWcgTUFDSF9DT1JHSQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC1DNzAwIChDb3JnaSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI1eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjV4CiAJc2VsZWN0IFBYQV9TSEFSUF9DN3h4CiAKIGNvbmZpZyBNQUNIX1NIRVBIRVJECiAJYm9vbCAiRW5hYmxlIFNoYXJwIFNMLUM3NTAgKFNoZXBoZXJkKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjV4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyNXgKIAlzZWxlY3QgUFhBX1NIQVJQX0M3eHgKIAogY29uZmlnIE1BQ0hfSFVTS1kKIAlib29sICJFbmFibGUgU2hhcnAgU0wtQzc2MCAoSHVza3kpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCXNlbGVjdCBQWEFfU0hBUlBfQzd4eAogCiBjb25maWcgTUFDSF9BS0lUQQogCWJvb2wgIkVuYWJsZSBTaGFycCBTTC0xMDAwIChBa2l0YSkgU3VwcG9ydCIKLQlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMXzI3eAorCWRlcGVuZHMgb24gUFhBX1NIQVJQU0wKKwlzZWxlY3QgUFhBMjd4CiAJc2VsZWN0IFBYQV9TSEFSUF9DeHgwMAogCXNlbGVjdCBNQUNIX1NQSVRaCiAJc2VsZWN0IEkyQwpAQCAtMjI4LDE3ICsyMzQsMjAgQEAKIAogY29uZmlnIE1BQ0hfU1BJVFoKIAlib29sICJFbmFibGUgU2hhcnAgWmF1cnVzIFNMLTMwMDAgKFNwaXR6KSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjd4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyN3gKIAlzZWxlY3QgUFhBX1NIQVJQX0N4eDAwCiAKIGNvbmZpZyBNQUNIX0JPUlpPSQogCWJvb2wgIkVuYWJsZSBTaGFycCBaYXVydXMgU0wtMzEwMCAoQm9yem9pKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gUFhBX1NIQVJQU0xfMjd4CisJZGVwZW5kcyBvbiBQWEFfU0hBUlBTTAorCXNlbGVjdCBQWEEyN3gKIAlzZWxlY3QgUFhBX1NIQVJQX0N4eDAwCiAKIGNvbmZpZyBNQUNIX1RPU0EKIAlib29sICJFbmFibGUgU2hhcnAgU0wtNjAwMHggKFRvc2EpIFN1cHBvcnQiCi0JZGVwZW5kcyBvbiBQWEFfU0hBUlBTTF8yNXgKKwlkZXBlbmRzIG9uIFBYQV9TSEFSUFNMCisJc2VsZWN0IFBYQTI1eAogCiBjb25maWcgUFhBMjV4CiAJYm9vbApAQCAtMjczLDQgKzI4MiwxMCBAQAogCXRyaXN0YXRlCiAJaGVscAogCSAgRW5hYmxlIHN1cHBvcnQgZm9yIFBYQTJ4eCBTU1AgcG9ydHMKKworY29uZmlnIFBYQV9QV00KKwl0cmlzdGF0ZQorCWRlZmF1bHQgQkFDS0xJR0hUX1BXTQorCWhlbHAKKwkgIEVuYWJsZSBzdXBwb3J0IGZvciBQWEEyeHgvUFhBM3h4IFBXTSBjb250cm9sbGVycwogZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKaW5kZXggMGU2ZDA1Yi4uYzRkZmJlOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvTWFrZWZpbGUKQEAgLTEwLDEwICsxMCwxMSBAQAogCiAjIEdlbmVyaWMgZHJpdmVycyB0aGF0IG90aGVyIGRyaXZlcnMgbWF5IGRlcGVuZCB1cG9uCiBvYmotJChDT05GSUdfUFhBX1NTUCkJCSs9IHNzcC5vCitvYmotJChDT05GSUdfUFhBX1BXTSkJCSs9IHB3bS5vCiAKICMgU29DLXNwZWNpZmljIGNvZGUKLW9iai0kKENPTkZJR19QWEEyNXgpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMjV4Lm8KLW9iai0kKENPTkZJR19QWEEyN3gpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMjd4Lm8KK29iai0kKENPTkZJR19QWEEyNXgpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMnh4Lm8gcHhhMjV4Lm8KK29iai0kKENPTkZJR19QWEEyN3gpCQkrPSBtZnAtcHhhMnh4Lm8gcHhhMnh4Lm8gcHhhMjd4Lm8KIG9iai0kKENPTkZJR19QWEEzeHgpCQkrPSBtZnAtcHhhM3h4Lm8gcHhhM3h4Lm8gc21lbWMubwogb2JqLSQoQ09ORklHX0NQVV9QWEEzMDApCSs9IHB4YTMwMC5vCiBvYmotJChDT05GSUdfQ1BVX1BYQTMyMCkJKz0gcHhhMzIwLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5jCmluZGV4IGU5N2RjNTkuLmI0ZDA0OTUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suYwpAQCAtMTIsNyArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAKLSNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIApAQCAtNDcsNiArNDcsOSBAQAogCQljbGsgPSBwOwogCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKIAorCWlmICghSVNfRVJSKGNsaykgJiYgY2xrLT5vcHMgPT0gTlVMTCkKKwkJY2xrID0gY2xrLT5vdGhlcjsKKwogCXJldHVybiBjbGs7CiB9CiBFWFBPUlRfU1lNQk9MKGNsa19nZXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suaCBiL2FyY2gvYXJtL21hY2gtcHhhL2Nsb2NrLmgKaW5kZXggYmM2Yjc3ZS4uODNjYmZhYiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY2xvY2suaAorKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbG9jay5oCkBAIC0xNSw2ICsxNSw3IEBACiAJdW5zaWduZWQgaW50CQlja2VuOwogCXVuc2lnbmVkIGludAkJZGVsYXk7CiAJdW5zaWduZWQgaW50CQllbmFibGVkOworCXN0cnVjdCBjbGsJCSpvdGhlcjsKIH07CiAKICNkZWZpbmUgSU5JVF9DS0VOKF9uYW1lLCBfY2tlbiwgX3JhdGUsIF9kZWxheSwgX2RldikJXApAQCAtMzUsNiArMzYsMTcgQEAKIAkJLmNrZW4JPSBDS0VOXyMjX2NrZW4sCQkJXAogCX0KIAorLyoKKyAqIFRoaXMgaXMgYSBwbGFjZWhvbGRlciB0byBhbGlhcyBvbmUgY2xvY2sgZGV2aWNlK25hbWUgcGFpcgorICogdG8gYW5vdGhlciBzdHJ1Y3QgY2xrLgorICovCisjZGVmaW5lIElOSVRfQ0tPVEhFUihfbmFtZSwgX290aGVyLCBfZGV2KQkJXAorCXsJCQkJCQlcCisJCS5uYW1lCT0gX25hbWUsCQkJXAorCQkuZGV2CT0gX2RldiwJCQkJXAorCQkub3RoZXIJPSBfb3RoZXIsCQkJXAorCX0KKwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBjbGtvcHMgY2xrX2NrZW5fb3BzOwogCiB2b2lkIGNsa19ja2VuX2VuYWJsZShzdHJ1Y3QgY2xrICpjbGspOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC1wY2kuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAtcGNpLmMKaW5kZXggYWM3ZjA1Zi4uMzE5YzlmZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC1wY2kuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLXBjaS5jCkBAIC00MSwxOCArNDEsMjAgQEAKIHsKIAl1bnNpZ25lZCBpbnQgc3ogPSBTWl82NE0gPj4gUEFHRV9TSElGVDsKIAotCXByX2luZm8oIkFkanVzdGluZyB6b25lcyBmb3IgQ00teDI3MFxuIik7CisJaWYgKG1hY2hpbmVfaXNfYXJtY29yZSgpKSB7CisJCXByX2luZm8oIkFkanVzdGluZyB6b25lcyBmb3IgQ00teDI3MFxuIik7CiAKLQkvKgotCSAqIE9ubHkgYWRqdXN0IGlmID4gNjRNIG9uIGN1cnJlbnQgc3lzdGVtCi0JICovCi0JaWYgKG5vZGUgfHwgKHpvbmVfc2l6ZVswXSA8PSBzeikpCi0JCXJldHVybjsKKwkJLyoKKwkJICogT25seSBhZGp1c3QgaWYgPiA2NE0gb24gY3VycmVudCBzeXN0ZW0KKwkJICovCisJCWlmIChub2RlIHx8ICh6b25lX3NpemVbMF0gPD0gc3opKQorCQkJcmV0dXJuOwogCi0Jem9uZV9zaXplWzFdID0gem9uZV9zaXplWzBdIC0gc3o7Ci0Jem9uZV9zaXplWzBdID0gc3o7Ci0JemhvbGVfc2l6ZVsxXSA9IHpob2xlX3NpemVbMF07Ci0JemhvbGVfc2l6ZVswXSA9IDA7CisJCXpvbmVfc2l6ZVsxXSA9IHpvbmVfc2l6ZVswXSAtIHN6OworCQl6b25lX3NpemVbMF0gPSBzejsKKwkJemhvbGVfc2l6ZVsxXSA9IHpob2xlX3NpemVbMF07CisJCXpob2xlX3NpemVbMF0gPSAwOworCX0KIH0KIAogc3RhdGljIHZvaWQgY214MjcwX2l0ODE1Ml9pcnFfZGVtdXgodW5zaWduZWQgaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY20teDI3MC5jCmluZGV4IDZkNDQxNmEuLjAxYjk5NjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2NtLXgyNzAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9jbS14MjcwLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgpAQCAtNTksNyArNjAsNyBAQAogCVsyXSA9IHsKIAkJLnN0YXJ0ID0gQ01YMjcwX0VUSElSUSwKIAkJLmVuZCAgID0gQ01YMjcwX0VUSElSUSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSU9SRVNPVVJDRV9JUlFfSElHSEVER0UsCiAJfQogfTsKIApAQCAtODEsMTIgKzgyLDYgQEAKIAl9CiB9OwogCi0vKiBhdWRpbyBkZXZpY2UgKi8KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGNteDI3MF9hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiAvKiB0b3VjaHNjcmVlbiBjb250cm9sbGVyICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBjbXgyNzBfdHNfZGV2aWNlID0gewogCS5uYW1lCQk9ICJ1Y2IxNDAwX3RzIiwKQEAgLTIxOSw3ICsyMTQsNiBAQAogLyogcGxhdGZvcm0gZGV2aWNlcyAqLwogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXRmb3JtX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZjbXgyNzBfZGV2aWNlX2RtOWssCi0JJmNteDI3MF9hdWRpb19kZXZpY2UsCiAJJmNteDI3MF9ydGNfZGV2aWNlLAogCSZjbXgyNzBfMjcwMEcsCiAJJmNteDI3MF9sZWRfZGV2aWNlLApAQCAtNTk0LDYgKzU4OCw3IEBACiAKIAkvKiByZWdpc3RlciBDTS1YMjcwIHBsYXRmb3JtIGRldmljZXMgKi8KIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhwbGF0Zm9ybV9kZXZpY2VzLCBBUlJBWV9TSVpFKHBsYXRmb3JtX2RldmljZXMpKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAogCS8qIHNldCBNQ0kgYW5kIE9IQ0kgcGxhdGZvcm0gcGFyYW1ldGVycyAqLwogCXB4YV9zZXRfbWNpX2luZm8oJmNteDI3MF9tY2lfcGxhdGZvcm1fZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2kuYwppbmRleCBiNzU3ZGQ3Li5iMzc2NzFiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpLmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpX3BtLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9jb3JnaV9wbS5jCmluZGV4IDBhODVmNzAuLmU5MWMwZjIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2NvcmdpX3BtLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvY29yZ2lfcG0uYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL3NoYXJwc2wuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jb3JnaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgogI2luY2x1ZGUgInNoYXJwc2wuaCIKIApAQCAtMjA0LDcgKzIwNSw5IEBACiAJLnJlYWRfZGV2ZGF0YSAgICA9IGNvcmdpcG1fcmVhZF9kZXZkYXRhLAogCS5jaGFyZ2VyX3dha2V1cCAgPSBjb3JnaV9jaGFyZ2VyX3dha2V1cCwKIAkuc2hvdWxkX3dha2V1cCAgID0gY29yZ2lfc2hvdWxkX3dha2V1cCwKKyNpZmRlZiBDT05GSUdfQkFDS0xJR0hUX0NPUkdJCiAJLmJhY2tsaWdodF9saW1pdCA9IGNvcmdpYmxfbGltaXRfaW50ZW5zaXR5LAorI2VuZGlmCiAJLmNoYXJnZV9vbl92b2x0CSAgPSBTSEFSUFNMX0NIQVJHRV9PTl9WT0xULAogCS5jaGFyZ2Vfb25fdGVtcAkgID0gU0hBUlBTTF9DSEFSR0VfT05fVEVNUCwKIAkuY2hhcmdlX2FjaW5faGlnaCA9IFNIQVJQU0xfQ0hBUkdFX09OX0FDSU5fSElHSCwKQEAgLTIyNiw2ICsyMjksMTAgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX2NvcmdpKCkgJiYgIW1hY2hpbmVfaXNfc2hlcGhlcmQoKQorCQkJJiYgIW1hY2hpbmVfaXNfaHVza3koKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljb3JnaXBtX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic2hhcnBzbC1wbSIsIC0xKTsKIAlpZiAoIWNvcmdpcG1fZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuYwppbmRleCBkNmMwNWI2Li5hNmYyMzkwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5jCkBAIC0xMCwxMSArMTAsMTQgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaTJjLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI3eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL29oY2kuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyN3hfa2V5cGFkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvY2FtZXJhLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KIAogI2luY2x1ZGUgImRldmljZXMuaCIKKyNpbmNsdWRlICJnZW5lcmljLmgiCiAKIHZvaWQgX19pbml0IHB4YV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhKQogewpAQCAtOTEsOCArOTQsMTkgQEAKIAogc3RhdGljIHU2NCB1ZGNfZG1hX21hc2sgPSB+KHUzMikwOwogCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfdWRjID0gewotCS5uYW1lCQk9ICJweGEyeHgtdWRjIiwKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV91ZGMgPSB7CisJLm5hbWUJCT0gInB4YTI1eC11ZGMiLAorCS5pZAkJPSAtMSwKKwkucmVzb3VyY2UJPSBweGEyeHhfdWRjX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMnh4X3VkY19yZXNvdXJjZXMpLAorCS5kZXYJCT0gIHsKKwkJLnBsYXRmb3JtX2RhdGEJPSAmcHhhX3VkY19pbmZvLAorCQkuZG1hX21hc2sJPSAmdWRjX2RtYV9tYXNrLAorCX0KK307CisKK3N0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV91ZGMgPSB7CisJLm5hbWUJCT0gInB4YTI3eC11ZGMiLAogCS5pZAkJPSAtMSwKIAkucmVzb3VyY2UJPSBweGEyeHhfdWRjX3Jlc291cmNlcywKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMnh4X3VkY19yZXNvdXJjZXMpLApAQCAtMjMzLDggKzI0NywxNSBAQAogCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGFpMmNfcmVzb3VyY2VzKSwKIH07CiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB4YTI3eF9pMmNfbWZwX2NmZ1tdID0geworCUdQSU8xMTdfSTJDX1NDTCwKKwlHUElPMTE4X0kyQ19TREEsCit9OworCiB2b2lkIF9faW5pdCBweGFfc2V0X2kyY19pbmZvKHN0cnVjdCBpMmNfcHhhX3BsYXRmb3JtX2RhdGEgKmluZm8pCiB7CisJaWYgKGNwdV9pc19weGEyN3goKSkKKwkJcHhhMnh4X21mcF9jb25maWcoQVJSQVlfQU5EX1NJWkUocHhhMjd4X2kyY19tZnBfY2ZnKSk7CiAJcHhhX3JlZ2lzdGVyX2RldmljZSgmcHhhX2RldmljZV9pMmMsIGluZm8pOwogfQogCkBAIC0yNzgsOCArMjk5LDY5IEBACiAJLmlkCQk9IC0xLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGFfYWM5N19yZXNvdXJjZXNbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydCAgPSAweDQwNTAwMDAwLAorCQkuZW5kCT0gMHg0MDUwMDAwMCArIDB4ZmZmLAorCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydCAgPSBJUlFfQUM5NywKKwkJLmVuZCAgICA9IElSUV9BQzk3LAorCQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyB1NjQgcHhhX2FjOTdfZG1hbWFzayA9IDB4ZmZmZmZmZmZVTDsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2FjOTcgPSB7CisJLm5hbWUgICAgICAgICAgID0gInB4YTJ4eC1hYzk3IiwKKwkuaWQgICAgICAgICAgICAgPSAtMSwKKwkuZGV2ICAgICAgICAgICAgPSB7CisJCS5kbWFfbWFzayA9ICZweGFfYWM5N19kbWFtYXNrLAorCQkuY29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMgID0gQVJSQVlfU0laRShweGFfYWM5N19yZXNvdXJjZXMpLAorCS5yZXNvdXJjZSAgICAgICA9IHB4YV9hYzk3X3Jlc291cmNlcywKK307CisKK3ZvaWQgX19pbml0IHB4YV9zZXRfYWM5N19pbmZvKHB4YTJ4eF9hdWRpb19vcHNfdCAqb3BzKQoreworCXB4YV9yZWdpc3Rlcl9kZXZpY2UoJnB4YV9kZXZpY2VfYWM5Nywgb3BzKTsKK30KKwogI2lmZGVmIENPTkZJR19QWEEyNXgKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyNXhfcmVzb3VyY2VfcHdtMFtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gMHg0MGIwMDAwMCwKKwkJLmVuZAk9IDB4NDBiMDAwMGYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI1eF9kZXZpY2VfcHdtMCA9IHsKKwkubmFtZQkJPSAicHhhMjV4LXB3bSIsCisJLmlkCQk9IDAsCisJLnJlc291cmNlCT0gcHhhMjV4X3Jlc291cmNlX3B3bTAsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTI1eF9yZXNvdXJjZV9wd20wKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjV4X3Jlc291cmNlX3B3bTFbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBjMDAwMDAsCisJCS5lbmQJPSAweDQwYzAwMDBmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyNXhfZGV2aWNlX3B3bTEgPSB7CisJLm5hbWUJCT0gInB4YTI1eC1wd20iLAorCS5pZAkJPSAxLAorCS5yZXNvdXJjZQk9IHB4YTI1eF9yZXNvdXJjZV9wd20xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyNXhfcmVzb3VyY2VfcHdtMSksCit9OworCiBzdGF0aWMgdTY0IHB4YTI1eF9zc3BfZG1hX21hc2sgPSBETUFfQklUX01BU0soMzIpOwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI1eF9yZXNvdXJjZV9zc3BbXSA9IHsKQEAgLTU2OCw2ICs2NTAsMzYgQEAKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocHhhMjd4X3Jlc291cmNlX3NzcDMpLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBweGEyN3hfcmVzb3VyY2VfcHdtMFtdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gMHg0MGIwMDAwMCwKKwkJLmVuZAk9IDB4NDBiMDAwMWYsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCit9OworCitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfcHdtMCA9IHsKKwkubmFtZQkJPSAicHhhMjd4LXB3bSIsCisJLmlkCQk9IDAsCisJLnJlc291cmNlCT0gcHhhMjd4X3Jlc291cmNlX3B3bTAsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHB4YTI3eF9yZXNvdXJjZV9wd20wKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjd4X3Jlc291cmNlX3B3bTFbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydAk9IDB4NDBjMDAwMDAsCisJCS5lbmQJPSAweDQwYzAwMDFmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX3B3bTEgPSB7CisJLm5hbWUJCT0gInB4YTI3eC1wd20iLAorCS5pZAkJPSAxLAorCS5yZXNvdXJjZQk9IHB4YTI3eF9yZXNvdXJjZV9wd20xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShweGEyN3hfcmVzb3VyY2VfcHdtMSksCit9OworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHB4YTI3eF9yZXNvdXJjZV9jYW1lcmFbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IDB4NTAwMDAwMDAsCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmggYi9hcmNoL2FybS9tYWNoLXB4YS9kZXZpY2VzLmgKaW5kZXggZmNhYjAxNy4uYjg1MmViMSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZGV2aWNlcy5oCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2RldmljZXMuaApAQCAtMSw3ICsxLDggQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfbWNpOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhM3h4X2RldmljZV9tY2kyOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhM3h4X2RldmljZV9tY2kzOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV91ZGM7CitleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyNXhfZGV2aWNlX3VkYzsKK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfdWRjOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9mYjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfZmZ1YXJ0OwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9idHVhcnQ7CkBAIC0xMSw2ICsxMiw3IEBACiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGFfZGV2aWNlX2kyczsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfZmljcDsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YV9kZXZpY2VfcnRjOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhX2RldmljZV9hYzk3OwogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBweGEyN3hfZGV2aWNlX2kyY19wb3dlcjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2Vfb2hjaTsKQEAgLTI0LDQgKzI2LDkgQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2Vfc3NwMzsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTN4eF9kZXZpY2Vfc3NwNDsKIAorZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV9wd20wOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjV4X2RldmljZV9wd20xOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9wd20wOworZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgcHhhMjd4X2RldmljZV9wd20xOworCiB2b2lkIF9faW5pdCBweGFfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9lbS14MjcwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9lbS14MjcwLmMKaW5kZXggZWRjNGYwNy4uMWJmNjgwNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvZW0teDI3MC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2VtLXgyNzAuYwpAQCAtMjQsNiArMjQsOCBAQAogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTI3eC11ZGMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgpAQCAtNTAsNyArNTIsNyBAQAogCVsyXSA9IHsKIAkJLnN0YXJ0ID0gRU1fWDI3MF9FVEhJUlEsCiAJCS5lbmQgICA9IEVNX1gyNzBfRVRISVJRLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEgfCBJT1JFU09VUkNFX0lSUV9ISUdIRURHRSwKIAl9CiB9OwogCkBAIC03MiwxMiArNzQsNiBAQAogCX0KIH07CiAKLS8qIGF1ZGlvIGRldmljZSAqLwotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgZW1feDI3MF9hdWRpbyA9IHsKLQkubmFtZQkJPSAicHhhMnh4LWFjOTciLAotCS5pZAkJPSAtMSwKLX07Ci0KIC8qIFdNOTcxMiB0b3VjaHNjcmVlbiBjb250cm9sbGVyLiBIb3BlZnVsbHkgdGhlIGRyaXZlciB3aWxsIG1ha2UgaXQgdG8KICAqIHRoZSBtYWluc3RyZWFtIHNvbWV0aW1lICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBlbV94MjcwX3RzID0gewpAQCAtMjE3LDcgKzIxMyw2IEBACiAvKiBwbGF0Zm9ybSBkZXZpY2VzICovCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJmVtX3gyNzBfZG05aywKLQkmZW1feDI3MF9hdWRpbywKIAkmZW1feDI3MF90cywKIAkmZW1feDI3MF9ydGMsCiAJJmVtX3gyNzBfbmFuZCwKQEAgLTMyNSw2ICszMjAsNyBAQAogCiAJLyogcmVnaXN0ZXIgRU0tWDI3MCBwbGF0Zm9ybSBkZXZpY2VzICovCiAJcGxhdGZvcm1fYWRkX2RldmljZXMocGxhdGZvcm1fZGV2aWNlcywgQVJSQVlfU0laRShwbGF0Zm9ybV9kZXZpY2VzKSk7CisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAKIAkvKiBzZXQgTUNJIGFuZCBPSENJIHBsYXRmb3JtIHBhcmFtZXRlcnMgKi8KIAlweGFfc2V0X21jaV9pbmZvKCZlbV94MjcwX21jaV9wbGF0Zm9ybV9kYXRhKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL2dlbmVyaWMuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2dlbmVyaWMuYwppbmRleCA0NDYxNzkzLi5jYTA1MzIyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9nZW5lcmljLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvZ2VuZXJpYy5jCkBAIC02MCwyMyArNjAsNiBAQAogRVhQT1JUX1NZTUJPTChnZXRfbWVtY2xrX2ZyZXF1ZW5jeV8xMGtoeik7CiAKIC8qCi0gKiBSb3V0aW5lIHRvIHNhZmVseSBlbmFibGUgb3IgZGlzYWJsZSBhIGNsb2NrIGluIHRoZSBDS0VOCi0gKi8KLXZvaWQgX19weGFfc2V0X2NrZW4oaW50IGNsb2NrLCBpbnQgZW5hYmxlKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JaWYgKGVuYWJsZSkKLQkJQ0tFTiB8PSAoMSA8PCBjbG9jayk7Ci0JZWxzZQotCQlDS0VOICY9IH4oMSA8PCBjbG9jayk7Ci0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci1FWFBPUlRfU1lNQk9MKF9fcHhhX3NldF9ja2VuKTsKLQotLyoKICAqIEludGVsIFBYQTJ4eCBpbnRlcm5hbCByZWdpc3RlciBtYXBwaW5nLgogICoKICAqIE5vdGUgMTogbm90IGFsbCBQWEEyeHggdmFyaWFudHMgaW1wbGVtZW50IGFsbCB0aG9zZSBhZGRyZXNzZXMuCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9pcnEuYyBiL2FyY2gvYXJtL21hY2gtcHhhL2lycS5jCmluZGV4IGE5YTBjM2YuLmZiZmY1NTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2lycS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL2lycS5jCkBAIC0yMSw3ICsyMSw2IEBACiAjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KIAogI2luY2x1ZGUgImdlbmVyaWMuaCIKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbHBkMjcwLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9scGQyNzAuYwppbmRleCBhMjBlNGIxLi5jYzFjNGZhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9scGQyNzAuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9scGQyNzAuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPGFzbS90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgpAQCAtMTM0LDkgKzEzNSwxMiBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBscGQyNzBfaXJxX2RldmljZV9pbml0KHZvaWQpCiB7Ci0JaW50IHJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmbHBkMjcwX2lycV9zeXNjbGFzcyk7Ci0JaWYgKHJldCA9PSAwKQotCQlyZXQgPSBzeXNkZXZfcmVnaXN0ZXIoJmxwZDI3MF9pcnFfZGV2aWNlKTsKKwlpbnQgcmV0ID0gLUVOT0RFVjsKKwlpZiAobWFjaGluZV9pc19sb2dpY3BkX3B4YTI3MCgpKSB7CisJCXJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmbHBkMjcwX2lycV9zeXNjbGFzcyk7CisJCWlmIChyZXQgPT0gMCkKKwkJCXJldCA9IHN5c2Rldl9yZWdpc3RlcigmbHBkMjcwX2lycV9kZXZpY2UpOworCX0KIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xNjQsMTEgKzE2OCw2IEBACiAJLnJlc291cmNlCT0gc21jOTF4X3Jlc291cmNlcywKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGxwZDI3MF9hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGxwZDI3MF9mbGFzaF9yZXNvdXJjZXNbXSA9IHsKIAlbMF0gPSB7CiAJCS5zdGFydAk9IFBYQV9DUzBfUEhZUywKQEAgLTIzMywyMSArMjMyLDIwIEBACiAJfSwKIH07CiAKLXN0YXRpYyB2b2lkIGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIoaW50IG9uKQotewotCWlmIChvbikgewotCQlweGFfZ3Bpb19tb2RlKEdQSU8xNl9QV00wX01EKTsKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMSk7Ci0JCVBXTV9DVFJMMCA9IDA7Ci0JCVBXTV9QV0RVVFkwID0gMHgzZmY7Ci0JCVBXTV9QRVJWQUwwID0gMHgzZmY7Ci0JfSBlbHNlIHsKLQkJUFdNX0NUUkwwID0gMDsKLQkJUFdNX1BXRFVUWTAgPSAweDA7Ci0JCVBXTV9QRVJWQUwwID0gMHgzRkY7Ci0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDApOwotCX0KLX0KK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhIGxwZDI3MF9iYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkCQk9IDAsCisJLm1heF9icmlnaHRuZXNzCT0gMSwKKwkuZGZ0X2JyaWdodG5lc3MJPSAxLAorCS5wd21fcGVyaW9kX25zCT0gNzg3NzAsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBscGQyNzBfYmFja2xpZ2h0X2RldmljZSA9IHsKKwkubmFtZQkJPSAicHdtLWJhY2tsaWdodCIsCisJLmRldgkJPSB7CisJCS5wYXJlbnQJPSAmcHhhMjd4X2RldmljZV9wd20wLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEgPSAmbHBkMjcwX2JhY2tsaWdodF9kYXRhLAorCX0sCit9OwogCiAvKiA1LjciIFRGVCBRVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDEpICovCiBzdGF0aWMgc3RydWN0IHB4YWZiX21vZGVfaW5mbyBzaGFycF9scTA1N3EzZGMwMl9tb2RlID0gewpAQCAtMjY5LDcgKzI2Nyw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiAvKiAxMi4xIiBURlQgU1ZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciAyKSAqLwpAQCAtMjkyLDcgKzI4OSw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiAvKiAzLjYiIFRGVCBRVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDMpICovCkBAIC0zMTUsNyArMzExLDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIC8qIDYuNCIgVEZUIFZHQSAoTG9MbyBkaXNwbGF5IG51bWJlciA1KSAqLwpAQCAtMzM4LDcgKzMzMyw2IEBACiAJLm51bV9tb2RlcwkJPSAxLAogCS5sY2NyMAkJCT0gMHgwNzgwMDA4MCwKIAkubGNjcjMJCQk9IDB4MDA0MDAwMDAsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IGxwZDI3MF9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiAvKiAxMC40IiBURlQgVkdBIChMb0xvIGRpc3BsYXkgbnVtYmVyIDcpICovCkBAIC0zNjEsNyArMzU1LDYgQEAKIAkubnVtX21vZGVzCQk9IDEsCiAJLmxjY3IwCQkJPSAweDA3ODAwMDgwLAogCS5sY2NyMwkJCT0gMHgwMDQwMDAwMCwKLQkucHhhZmJfYmFja2xpZ2h0X3Bvd2VyCT0gbHBkMjcwX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIC8qIDMuNSIgVEZUIFFWR0EgKExvTG8gZGlzcGxheSBudW1iZXIgOCkgKi8KQEAgLTM4NCw3ICszNzcsNiBAQAogCS5udW1fbW9kZXMJCT0gMSwKIAkubGNjcjAJCQk9IDB4MDc4MDAwODAsCiAJLmxjY3IzCQkJPSAweDAwNDAwMDAwLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSBscGQyNzBfYmFja2xpZ2h0X3Bvd2VyLAogfTsKIAogc3RhdGljIHN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmxwZDI3MF9sY2RfdG9fdXNlOwpAQCAtNDE0LDcgKzQwNiw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0Zm9ybV9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmc21jOTF4X2RldmljZSwKLQkmbHBkMjcwX2F1ZGlvX2RldmljZSwKKwkmbHBkMjcwX2JhY2tsaWdodF9kZXZpY2UsCiAJJmxwZDI3MF9mbGFzaF9kZXZpY2VbMF0sCiAJJmxwZDI3MF9mbGFzaF9kZXZpY2VbMV0sCiB9OwpAQCAtNDU0LDkgKzQ0NiwxMiBAQAogCSAqIE9uIExvZ2ljUEQgUFhBMjcwLCB3ZSByb3V0ZSBBQzk3X1NZU0NMSyB2aWEgR1BJTzQ1LgogCSAqLwogCXB4YV9ncGlvX21vZGUoR1BJTzQ1X1NZU0NMS19BQzk3X01EKTsKKwlweGFfZ3Bpb19tb2RlKEdQSU8xNl9QV00wX01EKTsKIAogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKHBsYXRmb3JtX2RldmljZXMsIEFSUkFZX1NJWkUocGxhdGZvcm1fZGV2aWNlcykpOwogCisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CisKIAlpZiAobHBkMjcwX2xjZF90b191c2UgIT0gTlVMTCkKIAkJc2V0X3B4YV9mYl9pbmZvKGxwZDI3MF9sY2RfdG9fdXNlKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbHViYm9jay5jCmluZGV4IDdiOWJkZDAuLmEzZmFlNDEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL2x1YmJvY2suYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9sdWJib2NrLmMKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI1eC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbHViYm9jay5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3VkYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KQEAgLTE5NiwxMSArMTk3LDYgQEAKIAkvLyBubyBEKyBwdWxsdXA7IGx1YmJvY2sgY2FuJ3QgY29ubmVjdC9kaXNjb25uZWN0IGluIHNvZnR3YXJlCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBsdWJfYXVkaW9fZGV2aWNlID0gewotCS5uYW1lCQk9ICJweGEyeHgtYWM5NyIsCi0JLmlkCQk9IC0xLAotfTsKLQogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzYTExMTFfcmVzb3VyY2VzW10gPSB7CiAJWzBdID0gewogCQkuc3RhcnQJPSAweDEwMDAwMDAwLApAQCAtMzY4LDcgKzM2NCw2IEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKIAkmc2ExMTExX2RldmljZSwKLQkmbHViX2F1ZGlvX2RldmljZSwKIAkmc21jOTF4X2RldmljZSwKIAkmbHViYm9ja19mbGFzaF9kZXZpY2VbMF0sCiAJJmx1YmJvY2tfZmxhc2hfZGV2aWNlWzFdLApAQCAtNDk0LDYgKzQ4OSw3IEBACiAJc2V0X3B4YV9mYl9pbmZvKCZzaGFycF9sbTh2MzEpOwogCXB4YV9zZXRfbWNpX2luZm8oJmx1YmJvY2tfbWNpX3BsYXRmb3JtX2RhdGEpOwogCXB4YV9zZXRfZmljcF9pbmZvKCZsdWJib2NrX2ZpY3BfcGxhdGZvcm1fZGF0YSk7CisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAKIAlsdWJib2NrX2ZsYXNoX2RhdGFbMF0ud2lkdGggPSBsdWJib2NrX2ZsYXNoX2RhdGFbMV0ud2lkdGggPQogCQkoQk9PVF9ERUYgJiAxKSA/IDIgOiA0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbWFnaWNpYW4uYyBiL2FyY2gvYXJtL21hY2gtcHhhL21hZ2ljaWFuLmMKaW5kZXggYmFkYmEwNi4uMDFiMmZhNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbWFnaWNpYW4uYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9tYWdpY2lhbi5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvbXRkL21hcC5oPgogI2luY2x1ZGUgPGxpbnV4L210ZC9waHlzbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvcGRhX3Bvd2VyLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgogCiAjaW5jbHVkZSA8YXNtL2dwaW8uaD4KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KQEAgLTMzLDEyICszNCwxNCBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL21hZ2ljaWFuLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTI3eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGFmYi5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2kyYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21tYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CiAKKyNpbmNsdWRlICJkZXZpY2VzLmgiCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBtYWdpY2lhbl9waW5fY29uZmlnW10gPSB7CkBAIC0zNDgsNDAgKzM1MSw1OCBAQAogICogQmFja2xpZ2h0CiAgKi8KIAotc3RhdGljIHZvaWQgbWFnaWNpYW5fc2V0X2JsX2ludGVuc2l0eShpbnQgaW50ZW5zaXR5KQorc3RhdGljIGludCBtYWdpY2lhbl9iYWNrbGlnaHRfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7Ci0JaWYgKGludGVuc2l0eSkgewotCQlQV01fQ1RSTDAgPSAxOwotCQlQV01fUEVSVkFMMCA9IDB4Yzg7Ci0JCWlmIChpbnRlbnNpdHkgPiAweGM3KSB7Ci0JCQlQV01fUFdEVVRZMCA9IGludGVuc2l0eSAtIDB4NDg7Ci0JCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIsIDEpOwotCQl9IGVsc2UgewotCQkJUFdNX1BXRFVUWTAgPSBpbnRlbnNpdHk7Ci0JCQlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUjIsIDApOwotCQl9Ci0JCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSLCAxKTsKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMSk7CisJaW50IHJldDsKKworCXJldCA9IGdwaW9fcmVxdWVzdChFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUiwgIkJMX1BPV0VSIik7CisJaWYgKHJldCkKKwkJZ290byBlcnI7CisJcmV0ID0gZ3Bpb19yZXF1ZXN0KEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMiwgIkJMX1BPV0VSMiIpOworCWlmIChyZXQpCisJCWdvdG8gZXJyMjsKKwlyZXR1cm4gMDsKKworZXJyMjoKKwlncGlvX2ZyZWUoRUdQSU9fTUFHSUNJQU5fQkxfUE9XRVIpOworZXJyOgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgbWFnaWNpYW5fYmFja2xpZ2h0X25vdGlmeShpbnQgYnJpZ2h0bmVzcykKK3sKKwlncGlvX3NldF92YWx1ZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUiwgYnJpZ2h0bmVzcyk7CisJaWYgKGJyaWdodG5lc3MgPj0gMjAwKSB7CisJCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMiwgMSk7CisJCXJldHVybiBicmlnaHRuZXNzIC0gNzI7CiAJfSBlbHNlIHsKLQkJLyogUFdNX1BXRFVUWTAgPSBpbnRlbnNpdHk7ICovCi0JCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSLCAwKTsKLQkJcHhhX3NldF9ja2VuKENLRU5fUFdNMCwgMCk7CisJCWdwaW9fc2V0X3ZhbHVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMiwgMCk7CisJCXJldHVybiBicmlnaHRuZXNzOwogCX0KIH0KIAotc3RhdGljIHN0cnVjdCBnZW5lcmljX2JsX2luZm8gYmFja2xpZ2h0X2luZm8gPSB7Ci0JLmRlZmF1bHRfaW50ZW5zaXR5ID0gMHg2NCwKLQkubGltaXRfbWFzayAgICAgICAgPSAweDBiLAotCS5tYXhfaW50ZW5zaXR5ICAgICA9IDB4YzcrMHg0OCwKLQkuc2V0X2JsX2ludGVuc2l0eSAgPSBtYWdpY2lhbl9zZXRfYmxfaW50ZW5zaXR5LAorc3RhdGljIHZvaWQgbWFnaWNpYW5fYmFja2xpZ2h0X2V4aXQoc3RydWN0IGRldmljZSAqZGV2KQoreworCWdwaW9fZnJlZShFR1BJT19NQUdJQ0lBTl9CTF9QT1dFUik7CisJZ3Bpb19mcmVlKEVHUElPX01BR0lDSUFOX0JMX1BPV0VSMik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhIGJhY2tsaWdodF9kYXRhID0geworCS5wd21faWQgICAgICAgICA9IDAsCisJLm1heF9icmlnaHRuZXNzID0gMjcyLAorCS5kZnRfYnJpZ2h0bmVzcyA9IDEwMCwKKwkucHdtX3BlcmlvZF9ucyAgPSAzMDkyMywKKwkuaW5pdCAgICAgICAgICAgPSBtYWdpY2lhbl9iYWNrbGlnaHRfaW5pdCwKKwkubm90aWZ5ICAgICAgICAgPSBtYWdpY2lhbl9iYWNrbGlnaHRfbm90aWZ5LAorCS5leGl0ICAgICAgICAgICA9IG1hZ2ljaWFuX2JhY2tsaWdodF9leGl0LAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFja2xpZ2h0ID0gewotCS5uYW1lID0gImdlbmVyaWMtYmwiLAorCS5uYW1lID0gInB3bS1iYWNrbGlnaHQiLAogCS5kZXYgID0gewotCQkucGxhdGZvcm1fZGF0YSA9ICZiYWNrbGlnaHRfaW5mbywKKwkJLnBhcmVudCAgICAgICAgPSAmcHhhMjd4X2RldmljZV9wd20wLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEgPSAmYmFja2xpZ2h0X2RhdGEsCiAJfSwKLQkuaWQgICA9IC0xLAogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL21haW5zdG9uZS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKaW5kZXggNzM5OWZiMy4uZjJlOWU3YyAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvbWFpbnN0b25lLmMKQEAgLTIzLDkgKzIzLDkgQEAKICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CiAjaW5jbHVkZSA8bGludXgvbXRkL3BhcnRpdGlvbnMuaD4KLSNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC5oPgogI2luY2x1ZGUgPGxpbnV4L2dwaW9fa2V5cy5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPGFzbS90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgpAQCAtMjgwLDEyICsyODAsNiBAQAogCS5yZXN1bWUJCT0gbXN0X2F1ZGlvX3Jlc3VtZSwKIH07CiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG1zdF9hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi0JLmRldgkJPSB7IC5wbGF0Zm9ybV9kYXRhID0gJm1zdF9hdWRpb19vcHMgfSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZmxhc2hfcmVzb3VyY2VzW10gPSB7CiAJWzBdID0gewogCQkuc3RhcnQJPSBQWEFfQ1MwX1BIWVMsCkBAIC0zNDksNTYgKzM0MywyNyBAQAogCX0sCiB9OwogCi0jaWZkZWYgQ09ORklHX0JBQ0tMSUdIVF9DTEFTU19ERVZJQ0UKLXN0YXRpYyBpbnQgbWFpbnN0b25lX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKLXsKLQlpbnQgYnJpZ2h0bmVzcyA9IGJsLT5wcm9wcy5icmlnaHRuZXNzOworI2lmIGRlZmluZWQoQ09ORklHX0ZCX1BYQSkgfHwgZGVmaW5lZChDT05GSUdfRkJfUFhBX01PRFVMRSkKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhIG1haW5zdG9uZV9iYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkCQk9IDAsCisJLm1heF9icmlnaHRuZXNzCT0gMTAyMywKKwkuZGZ0X2JyaWdodG5lc3MJPSAxMDIzLAorCS5wd21fcGVyaW9kX25zCT0gNzg3NzAsCit9OwogCi0JaWYgKGJsLT5wcm9wcy5wb3dlciAhPSBGQl9CTEFOS19VTkJMQU5LIHx8Ci0JICAgIGJsLT5wcm9wcy5mYl9ibGFuayAhPSBGQl9CTEFOS19VTkJMQU5LKQotCQlicmlnaHRuZXNzID0gMDsKLQotCWlmIChicmlnaHRuZXNzICE9IDApCi0JCXB4YV9zZXRfY2tlbihDS0VOX1BXTTAsIDEpOwotCi0JUFdNX0NUUkwwID0gMDsKLQlQV01fUFdEVVRZMCA9IGJyaWdodG5lc3M7Ci0JUFdNX1BFUlZBTDAgPSBibC0+cHJvcHMubWF4X2JyaWdodG5lc3M7Ci0KLQlpZiAoYnJpZ2h0bmVzcyA9PSAwKQotCQlweGFfc2V0X2NrZW4oQ0tFTl9QV00wLCAwKTsKLQlyZXR1cm4gMDsgLyogcG9pbnRsZXNzIHJldHVybiB2YWx1ZSAqLwotfQotCi1zdGF0aWMgaW50IG1haW5zdG9uZV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQotewotCXJldHVybiBQV01fUFdEVVRZMDsKLX0KLQotc3RhdGljIC8qY29uc3QqLyBzdHJ1Y3QgYmFja2xpZ2h0X29wcyBtYWluc3RvbmVfYmFja2xpZ2h0X29wcyA9IHsKLQkudXBkYXRlX3N0YXR1cwk9IG1haW5zdG9uZV9iYWNrbGlnaHRfdXBkYXRlX3N0YXR1cywKLQkuZ2V0X2JyaWdodG5lc3MJPSBtYWluc3RvbmVfYmFja2xpZ2h0X2dldF9icmlnaHRuZXNzLAorc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbWFpbnN0b25lX2JhY2tsaWdodF9kZXZpY2UgPSB7CisJLm5hbWUJCT0gInB3bS1iYWNrbGlnaHQiLAorCS5kZXYJCT0geworCQkucGFyZW50ID0gJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYsCisJCS5wbGF0Zm9ybV9kYXRhID0gJm1haW5zdG9uZV9iYWNrbGlnaHRfZGF0YSwKKwl9LAogfTsKIAogc3RhdGljIHZvaWQgX19pbml0IG1haW5zdG9uZV9iYWNrbGlnaHRfcmVnaXN0ZXIodm9pZCkKIHsKLQlzdHJ1Y3QgYmFja2xpZ2h0X2RldmljZSAqYmw7Ci0KLQlibCA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIoIm1haW5zdG9uZS1ibCIsICZweGFfZGV2aWNlX2ZiLmRldiwKLQkJCQkgICAgICAgTlVMTCwgJm1haW5zdG9uZV9iYWNrbGlnaHRfb3BzKTsKLQlpZiAoSVNfRVJSKGJsKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1haW5zdG9uZTogdW5hYmxlIHRvIHJlZ2lzdGVyIGJhY2tsaWdodDogJWxkXG4iLAotCQkgICAgICAgUFRSX0VSUihibCkpOwotCQlyZXR1cm47Ci0JfQotCi0JLyoKLQkgKiBicm9rZW4gZGVzaWduIC0gcmVnaXN0ZXItdGhlbi1zZXR1cCBpbnRlcmZhY2VzIGFyZQotCSAqIHV0dGVybHkgYnJva2VuIGJ5IGRlZmluaXRpb24uCi0JICovCi0JYmwtPnByb3BzLm1heF9icmlnaHRuZXNzID0gMTAyMzsKLQlibC0+cHJvcHMuYnJpZ2h0bmVzcyA9IDEwMjM7Ci0JYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoYmwpOworCWludCByZXQgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJm1haW5zdG9uZV9iYWNrbGlnaHRfZGV2aWNlKTsKKwlpZiAocmV0KQorCQlwcmludGsoS0VSTl9FUlIgIm1haW5zdG9uZTogZmFpbGVkIHRvIHJlZ2lzdGVyIGJhY2tsaWdodCBkZXZpY2U6ICVkXG4iLCByZXQpOwogfQogI2Vsc2UKICNkZWZpbmUgbWFpbnN0b25lX2JhY2tsaWdodF9yZWdpc3RlcigpCWRvIHsgfSB3aGlsZSAoMCkKQEAgLTUyOCw3ICs0OTMsNiBAQAogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGxhdGZvcm1fZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJnNtYzkxeF9kZXZpY2UsCi0JJm1zdF9hdWRpb19kZXZpY2UsCiAJJm1zdF9mbGFzaF9kZXZpY2VbMF0sCiAJJm1zdF9mbGFzaF9kZXZpY2VbMV0sCiAJJm1zdF9ncGlvX2tleXNfZGV2aWNlLApAQCAtNjM4LDYgKzYwMiw3IEBACiAJcHhhX3NldF9maWNwX2luZm8oJm1haW5zdG9uZV9maWNwX3BsYXRmb3JtX2RhdGEpOwogCXB4YV9zZXRfb2hjaV9pbmZvKCZtYWluc3RvbmVfb2hjaV9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X2kyY19pbmZvKE5VTEwpOworCXB4YV9zZXRfYWM5N19pbmZvKCZtc3RfYXVkaW9fb3BzKTsKIAogCW1haW5zdG9uZV9pbml0X2tleXBhZCgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvbWZwLXB4YTJ4eC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvbWZwLXB4YTJ4eC5jCmluZGV4IDIyMDk3YTEuLmQxY2RiNGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL21mcC1weGEyeHguYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9tZnAtcHhhMnh4LmMKQEAgLTIwLDYgKzIwLDcgQEAKIAogI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyeHguaD4KIAogI2luY2x1ZGUgImdlbmVyaWMuaCIKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3BjbTk5MC1iYXNlYm9hcmQuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3BjbTk5MC1iYXNlYm9hcmQuYwppbmRleCA0OWQ5NTFkLi41ZDg3YzdjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9wY205OTAtYmFzZWJvYXJkLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcGNtOTkwLWJhc2Vib2FyZC5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaWRlLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgogCiAjaW5jbHVkZSA8bWVkaWEvc29jX2NhbWVyYS5oPgogCkBAIC0zMywxMiArMzQsMTAzIEBACiAjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtZ3Bpby5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbW1jLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvb2hjaS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BjbTk5MF9iYXNlYm9hcmQuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGFmYi5oPgorCisjaW5jbHVkZSAiZGV2aWNlcy5oIgogCiAvKgotICogVGhlIFBDTS05OTAgZGV2ZWxvcG1lbnQgYmFzZWJvYXJkIHVzZXMgUENNLTAyNydzIGhhcmRld2FyZSBpbiB0aGUKKyAqIHBjbTk5MF9sY2RfcG93ZXIgLSBjb250cm9sIHBvd2VyIHN1cHBseSB0byB0aGUgTENECisgKiBAb246IDAgPSBzd2l0Y2ggb2ZmLCAxID0gc3dpdGNoIG9uCisgKgorICogQ2FsbGVkIGJ5IHRoZSBweGFmYiBkcml2ZXIKKyAqLworI2lmbmRlZiBDT05GSUdfUENNOTkwX0RJU1BMQVlfTk9ORQorc3RhdGljIHZvaWQgcGNtOTkwX2xjZF9wb3dlcihpbnQgb24sIHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyKQoreworCWlmIChvbikgeworCQkvKiBlbmFibGUgTENELUxhdGNoZXMKKwkJICogcG93ZXIgb24gTENECisJCSAqLworCQlfX1BDTTk5MF9DVFJMX1JFRyhQQ005OTBfQ1RSTF9QSFlTICsgUENNOTkwX0NUUkxfUkVHMykgPQorCQkJUENNOTkwX0NUUkxfTENEUFdSICsgUENNOTkwX0NUUkxfTENET047CisJfSBlbHNlIHsKKwkJLyogZGlzYWJsZSBMQ0QtTGF0Y2hlcworCQkgKiBwb3dlciBvZmYgTENECisJCSAqLworCQlfX1BDTTk5MF9DVFJMX1JFRyhQQ005OTBfQ1RSTF9QSFlTICsgUENNOTkwX0NUUkxfUkVHMykgPSAweDAwOworCX0KK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfUENNOTkwX0RJU1BMQVlfU0hBUlApCitzdGF0aWMgc3RydWN0IHB4YWZiX21vZGVfaW5mbyBmYl9pbmZvX3NoYXJwX2xxMDg0djFkZzIxID0geworCS5waXhjbG9jawkJPSAyODAwMCwKKwkueHJlcwkJCT0gNjQwLAorCS55cmVzCQkJPSA0ODAsCisJLmJwcAkJCT0gMTYsCisJLmhzeW5jX2xlbgkJPSAyMCwKKwkubGVmdF9tYXJnaW4JCT0gMTAzLAorCS5yaWdodF9tYXJnaW4JCT0gNDcsCisJLnZzeW5jX2xlbgkJPSA2LAorCS51cHBlcl9tYXJnaW4JCT0gMjgsCisJLmxvd2VyX21hcmdpbgkJPSA1LAorCS5zeW5jCQkJPSAwLAorCS5jbWFwX2dyZXlzY2FsZQkJPSAwLAorfTsKKworc3RhdGljIHN0cnVjdCBweGFmYl9tYWNoX2luZm8gcGNtOTkwX2ZiaW5mbyBfX2luaXRkYXRhID0geworCS5tb2RlcwkJCT0gJmZiX2luZm9fc2hhcnBfbHEwODR2MWRnMjEsCisJLm51bV9tb2RlcwkJPSAxLAorCS5sY2NyMAkJCT0gTENDUjBfUEFTLAorCS5sY2NyMwkJCT0gTENDUjNfUENQLAorCS5weGFmYl9sY2RfcG93ZXIJPSBwY205OTBfbGNkX3Bvd2VyLAorfTsKKyNlbGlmIGRlZmluZWQoQ09ORklHX1BDTTk5MF9ESVNQTEFZX05FQykKK3N0cnVjdCBweGFmYl9tb2RlX2luZm8gZmJfaW5mb19uZWNfbmw2NDQ4YmMyMF8xOGQgPSB7CisJLnBpeGNsb2NrCQk9IDM5NzIwLAorCS54cmVzCQkJPSA2NDAsCisJLnlyZXMJCQk9IDQ4MCwKKwkuYnBwCQkJPSAxNiwKKwkuaHN5bmNfbGVuCQk9IDMyLAorCS5sZWZ0X21hcmdpbgkJPSAxNiwKKwkucmlnaHRfbWFyZ2luCQk9IDQ4LAorCS52c3luY19sZW4JCT0gMiwKKwkudXBwZXJfbWFyZ2luCQk9IDEyLAorCS5sb3dlcl9tYXJnaW4JCT0gMTcsCisJLnN5bmMJCQk9IDAsCisJLmNtYXBfZ3JleXNjYWxlCQk9IDAsCit9OworCitzdGF0aWMgc3RydWN0IHB4YWZiX21hY2hfaW5mbyBwY205OTBfZmJpbmZvIF9faW5pdGRhdGEgPSB7CisJLm1vZGVzCQkJPSAmZmJfaW5mb19uZWNfbmw2NDQ4YmMyMF8xOGQsCisJLm51bV9tb2RlcwkJPSAxLAorCS5sY2NyMAkJCT0gTENDUjBfQWN0LAorCS5sY2NyMwkJCT0gTENDUjNfUGl4RmxFZGcsCisJLnB4YWZiX2xjZF9wb3dlcgk9IHBjbTk5MF9sY2RfcG93ZXIsCit9OworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhIHBjbTk5MF9iYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkCQk9IDAsCisJLm1heF9icmlnaHRuZXNzCT0gMTAyMywKKwkuZGZ0X2JyaWdodG5lc3MJPSAxMDIzLAorCS5wd21fcGVyaW9kX25zCT0gNzg3NzAsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBwY205OTBfYmFja2xpZ2h0X2RldmljZSA9IHsKKwkubmFtZQkJPSAicHdtLWJhY2tsaWdodCIsCisJLmRldgkJPSB7CisJCS5wYXJlbnQgPSAmcHhhMjd4X2RldmljZV9wd20wLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEgPSAmcGNtOTkwX2JhY2tsaWdodF9kYXRhLAorCX0sCit9OworCisvKgorICogVGhlIFBDTS05OTAgZGV2ZWxvcG1lbnQgYmFzZWJvYXJkIHVzZXMgUENNLTAyNydzIGhhcmR3YXJlIGluIHRoZQogICogZm9sbG93aW5nIHdheToKICAqCiAgKiAtIExDRCBzdXBwb3J0IGlzIGluIHVzZQpAQCAtMzMzLDM2ICs0MjUsNiBAQAogI2VuZGlmIC8qIENPTkZJR19WSURFT19QWEEyN3ggfHxDT05GSUdfVklERU9fUFhBMjd4X01PRFVMRSAqLwogCiAvKgotICogQUM5NyBzdXBwb3J0Ci0gKiBOb3RlOiBUaGUgY29ubmVjdGVkIEFDOTcgbWl4ZXIgYWxzbyByZXBvcnRzIGludGVycnVwdHMgYXQgUENNOTkwX0FDOTdfSVJRCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcHhhMjd4X2FjOTdfcmVzb3VyY2VzW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgID0gMHg0MDUwMDAwMCwKLQkJLmVuZAk9IDB4NDA1MDAwMDAgKyAweGZmZiwKLQkJLmZsYWdzICA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgID0gSVJRX0FDOTcsCi0JCS5lbmQgICAgPSBJUlFfQUM5NywKLQkJLmZsYWdzICA9IElPUkVTT1VSQ0VfSVJRLAotCX0sCi19OwotCi1zdGF0aWMgdTY0IHB4YV9hYzk3X2RtYW1hc2sgPSAweGZmZmZmZmZmVUw7Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHB4YTI3eF9kZXZpY2VfYWM5NyA9IHsKLQkubmFtZSAgICAgICAgICAgPSAicHhhMnh4LWFjOTciLAotCS5pZCAgICAgICAgICAgICA9IC0xLAotCS5kZXYgICAgICAgICAgICA9IHsKLQkJLmRtYV9tYXNrID0gJnB4YV9hYzk3X2RtYW1hc2ssCi0JCS5jb2hlcmVudF9kbWFfbWFzayA9IDB4ZmZmZmZmZmYsCi0JfSwKLQkubnVtX3Jlc291cmNlcyAgPSBBUlJBWV9TSVpFKHB4YTI3eF9hYzk3X3Jlc291cmNlcyksCi0JLnJlc291cmNlICAgICAgID0gcHhhMjd4X2FjOTdfcmVzb3VyY2VzLAotfTsKLQotLyoKICAqIGVuYWJsZSBnZW5lcmljIGFjY2VzcyB0byB0aGUgYmFzZSBib2FyZCBjb250cm9sIENQTERzIFU2IGFuZCBVNwogICovCiBzdGF0aWMgc3RydWN0IG1hcF9kZXNjIHBjbTk5MF9pb19kZXNjW10gX19pbml0ZGF0YSA9IHsKQEAgLTM5Myw3ICs0NTUsMTEgQEAKIAkvKiByZWdpc3RlciBDUExEJ3MgSVJRIGNvbnRyb2xsZXIgKi8KIAlwY205OTBfaW5pdF9pcnEoKTsKIAotCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcHhhMjd4X2RldmljZV9hYzk3KTsKKyNpZm5kZWYgQ09ORklHX1BDTTk5MF9ESVNQTEFZX05PTkUKKwlzZXRfcHhhX2ZiX2luZm8oJnBjbTk5MF9mYmluZm8pOworI2VuZGlmCisJcHhhX2dwaW9fbW9kZShHUElPMTZfUFdNMF9NRCk7CisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZwY205OTBfYmFja2xpZ2h0X2RldmljZSk7CiAKIAkvKiBNTUMgKi8KIAlweGFfc2V0X21jaV9pbmZvKCZwY205OTBfbWNpX3BsYXRmb3JtX2RhdGEpOwpAQCAtNDAyLDYgKzQ2OCw3IEBACiAJcHhhX3NldF9vaGNpX2luZm8oJnBjbTk5MF9vaGNpX3BsYXRmb3JtX2RhdGEpOwogCiAJcHhhX3NldF9pMmNfaW5mbyhOVUxMKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1ZJREVPX1BYQTI3eCkgfHwgZGVmaW5lZChDT05GSUdfVklERU9fUFhBMjd4X01PRFVMRSkKIAlweGFfc2V0X2NhbWVyYV9pbmZvKCZwY205OTBfcHhhY2FtZXJhX3BsYXRmb3JtX2RhdGEpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcG9vZGxlLmMgYi9hcmNoL2FybS9tYWNoLXB4YS9wb29kbGUuYwppbmRleCAwYjMwZjI1Li5mODFjMTBjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9wb29kbGUuYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9wb29kbGUuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbW1jLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvdWRjLmg+CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9wd20uYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B3bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMjhjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXB4YS9wd20uYwpAQCAtMCwwICsxLDMxOSBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtcHhhL3B3bS5jCisgKgorICogc2ltcGxlIGRyaXZlciBmb3IgUFdNIChQdWxzZSBXaWR0aCBNb2R1bGF0b3IpIGNvbnRyb2xsZXIKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIDIwMDgtMDItMTMJaW5pdGlhbCB2ZXJzaW9uCisgKiAJCWVyaWMgbWlhbyA8ZXJpYy5taWFvQG1hcnZlbGwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bS5oPgorCisjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKworLyogUFdNIHJlZ2lzdGVycyBhbmQgYml0cyBkZWZpbml0aW9ucyAqLworI2RlZmluZSBQV01DUgkJKDB4MDApCisjZGVmaW5lIFBXTURDUgkJKDB4MDQpCisjZGVmaW5lIFBXTVBDUgkJKDB4MDgpCisKKyNkZWZpbmUgUFdNQ1JfU0QJKDEgPDwgNikKKyNkZWZpbmUgUFdNRENSX0ZECSgxIDw8IDEwKQorCitzdHJ1Y3QgcHdtX2RldmljZSB7CisJc3RydWN0IGxpc3RfaGVhZAlub2RlOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisKKwljb25zdCBjaGFyCSpsYWJlbDsKKwlzdHJ1Y3QgY2xrCSpjbGs7CisJaW50CQljbGtfZW5hYmxlZDsKKwl2b2lkIF9faW9tZW0JKm1taW9fYmFzZTsKKworCXVuc2lnbmVkIGludAl1c2VfY291bnQ7CisJdW5zaWduZWQgaW50CXB3bV9pZDsKK307CisKKy8qCisgKiBwZXJpb2RfbnMgPSAxMF45ICogKFBSRVNDQUxFICsgMSkgKiAoUFYgKyAxKSAvIFBXTV9DTEtfUkFURQorICogZHV0eV9ucyAgID0gMTBeOSAqIChQUkVTQ0FMRSArIDEpICogREMgLyBQV01fQ0xLX1JBVEUKKyAqLworaW50IHB3bV9jb25maWcoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgaW50IGR1dHlfbnMsIGludCBwZXJpb2RfbnMpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGM7CisJdW5zaWduZWQgbG9uZyBwZXJpb2RfY3ljbGVzLCBwcmVzY2FsZSwgcHYsIGRjOworCisJaWYgKHB3bSA9PSBOVUxMIHx8IHBlcmlvZF9ucyA9PSAwIHx8IGR1dHlfbnMgPiBwZXJpb2RfbnMpCisJCXJldHVybiAtRUlOVkFMOworCisJYyA9IGNsa19nZXRfcmF0ZShwd20tPmNsayk7CisJYyA9IGMgKiBwZXJpb2RfbnM7CisJZG9fZGl2KGMsIDEwMDAwMDAwMDApOworCXBlcmlvZF9jeWNsZXMgPSBjOworCisJaWYgKHBlcmlvZF9jeWNsZXMgPCAwKQorCQlwZXJpb2RfY3ljbGVzID0gMTsKKwlwcmVzY2FsZSA9IChwZXJpb2RfY3ljbGVzIC0gMSkgLyAxMDI0OworCXB2ID0gcGVyaW9kX2N5Y2xlcyAvIChwcmVzY2FsZSArIDEpIC0gMTsKKworCWlmIChwcmVzY2FsZSA+IDYzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChkdXR5X25zID09IHBlcmlvZF9ucykKKwkJZGMgPSBQV01EQ1JfRkQ7CisJZWxzZQorCQlkYyA9IChwdiArIDEpICogZHV0eV9ucyAvIHBlcmlvZF9uczsKKworCS8qIE5PVEU6IHRoZSBjbG9jayB0byBQV00gaGFzIHRvIGJlIGVuYWJsZWQgZmlyc3QKKwkgKiBiZWZvcmUgd3JpdGluZyB0byB0aGUgcmVnaXN0ZXJzCisJICovCisJY2xrX2VuYWJsZShwd20tPmNsayk7CisJX19yYXdfd3JpdGVsKHByZXNjYWxlLCBwd20tPm1taW9fYmFzZSArIFBXTUNSKTsKKwlfX3Jhd193cml0ZWwoZGMsIHB3bS0+bW1pb19iYXNlICsgUFdNRENSKTsKKwlfX3Jhd193cml0ZWwocHYsIHB3bS0+bW1pb19iYXNlICsgUFdNUENSKTsKKwljbGtfZGlzYWJsZShwd20tPmNsayk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wocHdtX2NvbmZpZyk7CisKK2ludCBwd21fZW5hYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJaW50IHJjID0gMDsKKworCWlmICghcHdtLT5jbGtfZW5hYmxlZCkgeworCQlyYyA9IGNsa19lbmFibGUocHdtLT5jbGspOworCQlpZiAoIXJjKQorCQkJcHdtLT5jbGtfZW5hYmxlZCA9IDE7CisJfQorCXJldHVybiByYzsKK30KK0VYUE9SVF9TWU1CT0wocHdtX2VuYWJsZSk7CisKK3ZvaWQgcHdtX2Rpc2FibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlpZiAocHdtLT5jbGtfZW5hYmxlZCkgeworCQljbGtfZGlzYWJsZShwd20tPmNsayk7CisJCXB3bS0+Y2xrX2VuYWJsZWQgPSAwOworCX0KK30KK0VYUE9SVF9TWU1CT0wocHdtX2Rpc2FibGUpOworCitzdGF0aWMgREVGSU5FX01VVEVYKHB3bV9sb2NrKTsKK3N0YXRpYyBMSVNUX0hFQUQocHdtX2xpc3QpOworCitzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3JlcXVlc3QoaW50IHB3bV9pZCwgY29uc3QgY2hhciAqbGFiZWwpCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKwlpbnQgZm91bmQgPSAwOworCisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShwd20sICZwd21fbGlzdCwgbm9kZSkgeworCQlpZiAocHdtLT5wd21faWQgPT0gcHdtX2lkKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmIChmb3VuZCkgeworCQlpZiAocHdtLT51c2VfY291bnQgPT0gMCkgeworCQkJcHdtLT51c2VfY291bnQrKzsKKwkJCXB3bS0+bGFiZWwgPSBsYWJlbDsKKwkJfSBlbHNlCisJCQlwd20gPSBFUlJfUFRSKC1FQlVTWSk7CisJfSBlbHNlCisJCXB3bSA9IEVSUl9QVFIoLUVOT0VOVCk7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKwlyZXR1cm4gcHdtOworfQorRVhQT1JUX1NZTUJPTChwd21fcmVxdWVzdCk7CisKK3ZvaWQgcHdtX2ZyZWUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisKKwlpZiAocHdtLT51c2VfY291bnQpIHsKKwkJcHdtLT51c2VfY291bnQtLTsKKwkJcHdtLT5sYWJlbCA9IE5VTEw7CisJfSBlbHNlCisJCXByX3dhcm5pbmcoIlBXTSBkZXZpY2UgYWxyZWFkeSBmcmVlZFxuIik7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0wocHdtX2ZyZWUpOworCitzdGF0aWMgaW5saW5lIHZvaWQgX19hZGRfcHdtKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCWxpc3RfYWRkX3RhaWwoJnB3bS0+bm9kZSwgJnB3bV9saXN0KTsKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKK30KKworc3RhdGljIHN0cnVjdCBwd21fZGV2aWNlICpwd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJdW5zaWduZWQgaW50IHB3bV9pZCwgc3RydWN0IHB3bV9kZXZpY2UgKnBhcmVudF9wd20pCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJaW50IHJldCA9IDA7CisKKwlwd20gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHdtX2RldmljZSksIEdGUF9LRVJORUwpOworCWlmIChwd20gPT0gTlVMTCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5XG4iKTsKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisJfQorCisJcHdtLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJQV01DTEsiKTsKKwlpZiAoSVNfRVJSKHB3bS0+Y2xrKSkgeworCQlyZXQgPSBQVFJfRVJSKHB3bS0+Y2xrKTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisJcHdtLT5jbGtfZW5hYmxlZCA9IDA7CisKKwlwd20tPnVzZV9jb3VudCA9IDA7CisJcHdtLT5wd21faWQgPSBwd21faWQ7CisJcHdtLT5wZGV2ID0gcGRldjsKKworCWlmIChwYXJlbnRfcHdtICE9IE5VTEwpIHsKKwkJLyogcmVnaXN0ZXJzIGZvciB0aGUgc2Vjb25kIFBXTSBoYXMgb2Zmc2V0IG9mIDB4MTAgKi8KKwkJcHdtLT5tbWlvX2Jhc2UgPSBwYXJlbnRfcHdtLT5tbWlvX2Jhc2UgKyAweDEwOworCQlfX2FkZF9wd20ocHdtKTsKKwkJcmV0dXJuIHB3bTsKKwl9CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAociA9PSBOVUxMKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIG1lbW9yeSByZXNvdXJjZSBkZWZpbmVkXG4iKTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBlcnJfZnJlZV9jbGs7CisJfQorCisJciA9IHJlcXVlc3RfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxLCBwZGV2LT5uYW1lKTsKKwlpZiAociA9PSBOVUxMKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZXF1ZXN0IG1lbW9yeSByZXNvdXJjZVxuIik7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBlcnJfZnJlZV9jbGs7CisJfQorCisJcHdtLT5tbWlvX2Jhc2UgPSBpb3JlbWFwKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOworCWlmIChwd20tPm1taW9fYmFzZSA9PSBOVUxMKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpb3JlbWFwKCkgcmVnaXN0ZXJzXG4iKTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBlcnJfZnJlZV9tZW07CisJfQorCisJX19hZGRfcHdtKHB3bSk7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHdtKTsKKwlyZXR1cm4gcHdtOworCitlcnJfZnJlZV9tZW06CisJcmVsZWFzZV9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOworZXJyX2ZyZWVfY2xrOgorCWNsa19wdXQocHdtLT5jbGspOworZXJyX2ZyZWU6CisJa2ZyZWUocHdtKTsKKwlyZXR1cm4gRVJSX1BUUihyZXQpOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBweGEyNXhfcHdtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHB3bV9kZXZpY2UgKnB3bSA9IHB3bV9wcm9iZShwZGV2LCBwZGV2LT5pZCwgTlVMTCk7CisKKwlpZiAoSVNfRVJSKHB3bSkpCisJCXJldHVybiBQVFJfRVJSKHB3bSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2RldmluaXQgcHhhMjd4X3B3bV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisKKwlwd20gPSBwd21fcHJvYmUocGRldiwgcGRldi0+aWQsIE5VTEwpOworCWlmIChJU19FUlIocHdtKSkKKwkJcmV0dXJuIFBUUl9FUlIocHdtKTsKKworCXB3bSA9IHB3bV9wcm9iZShwZGV2LCBwZGV2LT5pZCArIDIsIHB3bSk7CisJaWYgKElTX0VSUihwd20pKQorCQlyZXR1cm4gUFRSX0VSUihwd20pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IHB3bV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtOworCXN0cnVjdCByZXNvdXJjZSAqcjsKKworCXB3bSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCWlmIChwd20gPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwltdXRleF9sb2NrKCZwd21fbG9jayk7CisJbGlzdF9kZWwoJnB3bS0+bm9kZSk7CisJbXV0ZXhfdW5sb2NrKCZwd21fbG9jayk7CisKKwlpb3VubWFwKHB3bS0+bW1pb19iYXNlKTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCXJlbGVhc2VfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKKworCWNsa19wdXQocHdtLT5jbGspOworCWtmcmVlKHB3bSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHB4YTI1eF9wd21fZHJpdmVyID0geworCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJweGEyNXgtcHdtIiwKKwl9LAorCS5wcm9iZQkJPSBweGEyNXhfcHdtX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AocHdtX3JlbW92ZSksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBweGEyN3hfcHdtX2RyaXZlciA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAicHhhMjd4LXB3bSIsCisJfSwKKwkucHJvYmUJCT0gcHhhMjd4X3B3bV9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKHB3bV9yZW1vdmUpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcHdtX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0ID0gMDsKKworCXJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcHhhMjV4X3B3bV9kcml2ZXIpOworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcmVnaXN0ZXIgcHhhMjV4X3B3bV9kcml2ZXJcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcHhhMjd4X3B3bV9kcml2ZXIpOworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcmVnaXN0ZXIgcHhhMjd4X3B3bV9kcml2ZXJcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiByZXQ7Cit9CithcmNoX2luaXRjYWxsKHB3bV9pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IHB3bV9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnB4YTI1eF9wd21fZHJpdmVyKTsKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHhhMjd4X3B3bV9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQocHdtX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyNXguYyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCmluZGV4IGU1YjQxN2QuLjRjZDUwZTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3B4YTI1eC5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJxcy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZnAtcHhhMjV4Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcG0uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9kbWEuaD4KQEAgLTExNywyOSArMTE4LDM1IEBACiAJSU5JVF9DS0VOKCJVQVJUQ0xLIiwgSFdVQVJULCAxNDc0NTYwMCwgMSwgJnB4YV9kZXZpY2VfaHd1YXJ0LmRldikKIDsKIAorLyoKKyAqIFBYQSAyeHggY2xvY2sgZGVjbGFyYXRpb25zLiBPcmRlciBpcyBpbXBvcnRhbnQgKHNlZSBhbGlhc2VzIGJlbG93KQorICogUGxlYXNlIGJlIGNhcmVmdWwgbm90IHRvIGRpc3J1cHQgdGhlIG9yZGVyaW5nLgorICovCiBzdGF0aWMgc3RydWN0IGNsayBweGEyNXhfY2xrc1tdID0gewogCUlOSVRfQ0soIkxDRENMSyIsIExDRCwgJmNsa19weGEyNXhfbGNkX29wcywgJnB4YV9kZXZpY2VfZmIuZGV2KSwKIAlJTklUX0NLRU4oIlVBUlRDTEsiLCBGRlVBUlQsIDE0NzQ1NjAwLCAxLCAmcHhhX2RldmljZV9mZnVhcnQuZGV2KSwKIAlJTklUX0NLRU4oIlVBUlRDTEsiLCBCVFVBUlQsIDE0NzQ1NjAwLCAxLCAmcHhhX2RldmljZV9idHVhcnQuZGV2KSwKIAlJTklUX0NLRU4oIlVBUlRDTEsiLCBTVFVBUlQsIDE0NzQ1NjAwLCAxLCBOVUxMKSwKLQlJTklUX0NLRU4oIlVEQ0NMSyIsIFVTQiwgNDc5MjMwMDAsIDUsICZweGFfZGV2aWNlX3VkYy5kZXYpLAorCUlOSVRfQ0tFTigiVURDQ0xLIiwgVVNCLCA0NzkyMzAwMCwgNSwgJnB4YTI1eF9kZXZpY2VfdWRjLmRldiksCiAJSU5JVF9DS0VOKCJNTUNDTEsiLCBNTUMsIDE5MTY5MDAwLCAwLCAmcHhhX2RldmljZV9tY2kuZGV2KSwKIAlJTklUX0NLRU4oIkkyQ0NMSyIsIEkyQywgMzE5NDkwMDAsIDAsICZweGFfZGV2aWNlX2kyYy5kZXYpLAogCiAJSU5JVF9DS0VOKCJTU1BDTEsiLCAgU1NQLCAzNjg2NDAwLCAwLCAmcHhhMjV4X2RldmljZV9zc3AuZGV2KSwKIAlJTklUX0NLRU4oIlNTUENMSyIsIE5TU1AsIDM2ODY0MDAsIDAsICZweGEyNXhfZGV2aWNlX25zc3AuZGV2KSwKIAlJTklUX0NLRU4oIlNTUENMSyIsIEFTU1AsIDM2ODY0MDAsIDAsICZweGEyNXhfZGV2aWNlX2Fzc3AuZGV2KSwKKwlJTklUX0NLRU4oIlBXTUNMSyIsIFBXTTAsIDM2ODY0MDAsIDAsICZweGEyNXhfZGV2aWNlX3B3bTAuZGV2KSwKKwlJTklUX0NLRU4oIlBXTUNMSyIsIFBXTTEsIDM2ODY0MDAsIDAsICZweGEyNXhfZGV2aWNlX3B3bTEuZGV2KSwKIAogCUlOSVRfQ0tFTigiQUM5N0NMSyIsICAgICBBQzk3LCAgICAgMjQ1NzYwMDAsIDAsIE5VTEwpLAogCiAJLyoKLQlJTklUX0NLRU4oIlBXTUNMSyIsICBQV00wLCAzNjg2NDAwLCAgMCwgTlVMTCksCi0JSU5JVF9DS0VOKCJQV01DTEsiLCAgUFdNMCwgMzY4NjQwMCwgIDAsIE5VTEwpLAogCUlOSVRfQ0tFTigiSTJTQ0xLIiwgIEkyUywgIDE0NzQ1NjAwLCAwLCBOVUxMKSwKIAkqLwogCUlOSVRfQ0tFTigiRklDUENMSyIsIEZJQ1AsIDQ3OTIzMDAwLCAwLCBOVUxMKSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgY2xrIGdwaW83X2NsayA9IElOSVRfQ0tPVEhFUigiR1BJTzdfQ0siLCAmcHhhMjV4X2Nsa3NbNF0sIE5VTEwpOworCiAjaWZkZWYgQ09ORklHX1BNCiAKICNkZWZpbmUgU0FWRSh4KQkJc2xlZXBfc2F2ZVtTTEVFUF9TQVZFXyMjeF0gPSB4CkBAIC0yNjAsNyArMjY3LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnB4YTI1eF9kZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmcHhhX2RldmljZV91ZGMsCisJJnB4YTI1eF9kZXZpY2VfdWRjLAogCSZweGFfZGV2aWNlX2ZmdWFydCwKIAkmcHhhX2RldmljZV9idHVhcnQsCiAJJnB4YV9kZXZpY2Vfc3R1YXJ0LApAQCAtMjY5LDYgKzI3Niw4IEBACiAJJnB4YTI1eF9kZXZpY2Vfc3NwLAogCSZweGEyNXhfZGV2aWNlX25zc3AsCiAJJnB4YTI1eF9kZXZpY2VfYXNzcCwKKwkmcHhhMjV4X2RldmljZV9wd20wLAorCSZweGEyNXhfZGV2aWNlX3B3bTEsCiB9OwogCiBzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgcHhhMjV4X3N5c2RldltdID0gewpAQCAtMzExLDYgKzMyMCw4IEBACiAJaWYgKGNwdV9pc19weGEyNXgoKSkKIAkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZweGFfZGV2aWNlX2h3dWFydCk7CiAKKwljbGtzX3JlZ2lzdGVyKCZncGlvN19jbGssIDEpOworCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhMjd4LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYwppbmRleCA3ZTk0NTgzLi5kNWQxNGVhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyN3guYwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAKIAlJTklUX0NLRU4oIkkyU0NMSyIsICBJMlMsICAxNDY4MjAwMCwgMCwgJnB4YV9kZXZpY2VfaTJzLmRldiksCiAJSU5JVF9DS0VOKCJJMkNDTEsiLCAgSTJDLCAgMzI4NDIwMDAsIDAsICZweGFfZGV2aWNlX2kyYy5kZXYpLAotCUlOSVRfQ0tFTigiVURDQ0xLIiwgIFVTQiwgIDQ4MDAwMDAwLCA1LCAmcHhhX2RldmljZV91ZGMuZGV2KSwKKwlJTklUX0NLRU4oIlVEQ0NMSyIsICBVU0IsICA0ODAwMDAwMCwgNSwgJnB4YTI3eF9kZXZpY2VfdWRjLmRldiksCiAJSU5JVF9DS0VOKCJNTUNDTEsiLCAgTU1DLCAgMTk1MDAwMDAsIDAsICZweGFfZGV2aWNlX21jaS5kZXYpLAogCUlOSVRfQ0tFTigiRklDUENMSyIsIEZJQ1AsIDQ4MDAwMDAwLCAwLCAmcHhhX2RldmljZV9maWNwLmRldiksCiAKQEAgLTE1NywxMiArMTU3LDEzIEBACiAJSU5JVF9DS0VOKCJTU1BDTEsiLCBTU1AxLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfc3NwMS5kZXYpLAogCUlOSVRfQ0tFTigiU1NQQ0xLIiwgU1NQMiwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3NzcDIuZGV2KSwKIAlJTklUX0NLRU4oIlNTUENMSyIsIFNTUDMsIDEzMDAwMDAwLCAwLCAmcHhhMjd4X2RldmljZV9zc3AzLmRldiksCisJSU5JVF9DS0VOKCJQV01DTEsiLCBQV00wLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYpLAorCUlOSVRfQ0tFTigiUFdNQ0xLIiwgUFdNMSwgMTMwMDAwMDAsIDAsICZweGEyN3hfZGV2aWNlX3B3bTEuZGV2KSwKIAogCUlOSVRfQ0tFTigiQUM5N0NMSyIsICAgICBBQzk3LCAgICAgMjQ1NzYwMDAsIDAsIE5VTEwpLAogCUlOSVRfQ0tFTigiQUM5N0NPTkZDTEsiLCBBQzk3Q09ORiwgMjQ1NzYwMDAsIDAsIE5VTEwpLAogCiAJLyoKLQlJTklUX0NLRU4oIlBXTUNMSyIsICBQV00wLCAxMzAwMDAwMCwgMCwgTlVMTCksCiAJSU5JVF9DS0VOKCJNU0xDTEsiLCAgTVNMLCAgNDgwMDAwMDAsIDAsIE5VTEwpLAogCUlOSVRfQ0tFTigiVVNJTUNMSyIsIFVTSU0sIDQ4MDAwMDAwLCAwLCBOVUxMKSwKIAlJTklUX0NLRU4oIk1TVEtDTEsiLCBNRU1TVEssIDE5NTAwMDAwLCAwLCBOVUxMKSwKQEAgLTM0OSwxMSArMzUwLDE0IEBACiAKIHZvaWQgX19pbml0IHB4YV9zZXRfaTJjX3Bvd2VyX2luZm8oc3RydWN0IGkyY19weGFfcGxhdGZvcm1fZGF0YSAqaW5mbykKIHsKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCVBDRlIgfD0gUENGUl9QSTJDRU47CisJbG9jYWxfaXJxX2VuYWJsZSgpOwogCXB4YTI3eF9kZXZpY2VfaTJjX3Bvd2VyLmRldi5wbGF0Zm9ybV9kYXRhID0gaW5mbzsKIH0KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldmljZXNbXSBfX2luaXRkYXRhID0gewotCSZweGFfZGV2aWNlX3VkYywKKwkmcHhhMjd4X2RldmljZV91ZGMsCiAJJnB4YV9kZXZpY2VfZmZ1YXJ0LAogCSZweGFfZGV2aWNlX2J0dWFydCwKIAkmcHhhX2RldmljZV9zdHVhcnQsCkBAIC0zNjMsNiArMzY3LDggQEAKIAkmcHhhMjd4X2RldmljZV9zc3AxLAogCSZweGEyN3hfZGV2aWNlX3NzcDIsCiAJJnB4YTI3eF9kZXZpY2Vfc3NwMywKKwkmcHhhMjd4X2RldmljZV9wd20wLAorCSZweGEyN3hfZGV2aWNlX3B3bTEsCiB9OwogCiBzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgcHhhMjd4X3N5c2RldltdID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhMnh4LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEyeHguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNGY2NDE1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvcHhhMnh4LmMKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIGxpbnV4L2FyY2gvYXJtL21hY2gtcHhhL3B4YTJ4eC5jCisgKgorICogY29kZSBzcGVjaWZpYyB0byBweGEyeHgKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggRG1pdHJ5IEJhcnlzaGtvdgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvbWZwLXB4YTJ4eC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21mcC1weGEyNXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pcmRhLmg+CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB4YTJ4eF9tZnBfZmlyW10gPSB7CisJR1BJTzQ2X0ZJQ1BfUlhELAorCUdQSU80N19GSUNQX1RYRCwKK307CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB4YTJ4eF9tZnBfc2lyW10gPSB7CisJR1BJTzQ2X1NUVUFSVF9SWEQsCisJR1BJTzQ3X1NUVUFSVF9UWEQsCit9OworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBweGEyeHhfbWZwX29mZltdID0geworCUdQSU80Nl9HUElPIHwgTUZQX0xQTV9EUklWRV9MT1csCisJR1BJTzQ3X0dQSU8gfCBNRlBfTFBNX0RSSVZFX0xPVywKK307CisKK3ZvaWQgcHhhMnh4X3RyYW5zY2VpdmVyX21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgbW9kZSkKK3sKKwlpZiAobW9kZSAmIElSX09GRikgeworCQlweGEyeHhfbWZwX2NvbmZpZyhweGEyeHhfbWZwX29mZiwgQVJSQVlfU0laRShweGEyeHhfbWZwX29mZikpOworCX0gZWxzZSBpZiAobW9kZSAmIElSX1NJUk1PREUpIHsKKwkJcHhhMnh4X21mcF9jb25maWcocHhhMnh4X21mcF9zaXIsIEFSUkFZX1NJWkUocHhhMnh4X21mcF9zaXIpKTsKKwl9IGVsc2UgaWYgKG1vZGUgJiBJUl9GSVJNT0RFKSB7CisJCXB4YTJ4eF9tZnBfY29uZmlnKHB4YTJ4eF9tZnBfZmlyLCBBUlJBWV9TSVpFKHB4YTJ4eF9tZnBfZmlyKSk7CisJfSBlbHNlCisJCUJVRygpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvcHhhM3h4LmMgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEzeHguYwppbmRleCA2NDQ1NTBiLi4xNTY4NWQyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9weGEzeHguYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9weGEzeHguYwpAQCAtMjMxLDcgKzIzMSw3IEBACiAJUFhBM3h4X0NLRU4oIlVBUlRDTEsiLCBTVFVBUlQsIDE0ODU3MDAwLCAxLCBOVUxMKSwKIAogCVBYQTN4eF9DS0VOKCJJMkNDTEsiLCBJMkMsICAzMjg0MjAwMCwgMCwgJnB4YV9kZXZpY2VfaTJjLmRldiksCi0JUFhBM3h4X0NLRU4oIlVEQ0NMSyIsIFVEQywgIDQ4MDAwMDAwLCA1LCAmcHhhX2RldmljZV91ZGMuZGV2KSwKKwlQWEEzeHhfQ0tFTigiVURDQ0xLIiwgVURDLCAgNDgwMDAwMDAsIDUsICZweGEyN3hfZGV2aWNlX3VkYy5kZXYpLAogCVBYQTN4eF9DS0VOKCJVU0JDTEsiLCBVU0JILCA0ODAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfb2hjaS5kZXYpLAogCVBYQTN4eF9DS0VOKCJLQkRDTEsiLCBLRVlQQUQsICAzMjc2OCwgMCwgJnB4YTI3eF9kZXZpY2Vfa2V5cGFkLmRldiksCiAKQEAgLTIzOSw2ICsyMzksOCBAQAogCVBYQTN4eF9DS0VOKCJTU1BDTEsiLCBTU1AyLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfc3NwMi5kZXYpLAogCVBYQTN4eF9DS0VOKCJTU1BDTEsiLCBTU1AzLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2Vfc3NwMy5kZXYpLAogCVBYQTN4eF9DS0VOKCJTU1BDTEsiLCBTU1A0LCAxMzAwMDAwMCwgMCwgJnB4YTN4eF9kZXZpY2Vfc3NwNC5kZXYpLAorCVBYQTN4eF9DS0VOKCJQV01DTEsiLCBQV00wLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2VfcHdtMC5kZXYpLAorCVBYQTN4eF9DS0VOKCJQV01DTEsiLCBQV00xLCAxMzAwMDAwMCwgMCwgJnB4YTI3eF9kZXZpY2VfcHdtMS5kZXYpLAogCiAJUFhBM3h4X0NLRU4oIk1NQ0NMSyIsIE1NQzEsIDE5NTAwMDAwLCAwLCAmcHhhX2RldmljZV9tY2kuZGV2KSwKIAlQWEEzeHhfQ0tFTigiTU1DQ0xLIiwgTU1DMiwgMTk1MDAwMDAsIDAsICZweGEzeHhfZGV2aWNlX21jaTIuZGV2KSwKQEAgLTUyMCw3ICs1MjIsNyBAQAogICovCiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXZpY2VzW10gX19pbml0ZGF0YSA9IHsKLQkmcHhhX2RldmljZV91ZGMsCisvKgkmcHhhX2RldmljZV91ZGMsCVRoZSBVREMgZHJpdmVyIGlzIFBYQTI1eCBvbmx5ICovCiAJJnB4YV9kZXZpY2VfZmZ1YXJ0LAogCSZweGFfZGV2aWNlX2J0dWFydCwKIAkmcHhhX2RldmljZV9zdHVhcnQsCkBAIC01MzAsNiArNTMyLDggQEAKIAkmcHhhMjd4X2RldmljZV9zc3AyLAogCSZweGEyN3hfZGV2aWNlX3NzcDMsCiAJJnB4YTN4eF9kZXZpY2Vfc3NwNCwKKwkmcHhhMjd4X2RldmljZV9wd20wLAorCSZweGEyN3hfZGV2aWNlX3B3bTEsCiB9OwogCiBzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgcHhhM3h4X3N5c2RldltdID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHouYyBiL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6LmMKaW5kZXggZGFjZTM4Mi4uZTdkMGZjZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHouYworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9zcGl0ei5jCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvcHhhMjd4LXVkYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9zcGl0el9wbS5jIGIvYXJjaC9hcm0vbWFjaC1weGEvc3BpdHpfcG0uYwppbmRleCAyM2YwNTBmLi4zNjAzNTQwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS9zcGl0el9wbS5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3NwaXR6X3BtLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zaGFycHNsLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc3BpdHouaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KICNpbmNsdWRlICJzaGFycHNsLmgiCiAKQEAgLTIwNyw3ICsyMDgsOSBAQAogCS5yZWFkX2RldmRhdGEgICAgID0gc3BpdHpwbV9yZWFkX2RldmRhdGEsCiAJLmNoYXJnZXJfd2FrZXVwICAgPSBzcGl0el9jaGFyZ2VyX3dha2V1cCwKIAkuc2hvdWxkX3dha2V1cCAgICA9IHNwaXR6X3Nob3VsZF93YWtldXAsCisjaWZkZWYgQ09ORklHX0JBQ0tMSUdIVF9DT1JHSQogICAgICAgICAuYmFja2xpZ2h0X2xpbWl0ICA9IGNvcmdpYmxfbGltaXRfaW50ZW5zaXR5LAorI2VuZGlmCiAJLmNoYXJnZV9vbl92b2x0CSAgPSBTSEFSUFNMX0NIQVJHRV9PTl9WT0xULAogCS5jaGFyZ2Vfb25fdGVtcAkgID0gU0hBUlBTTF9DSEFSR0VfT05fVEVNUCwKIAkuY2hhcmdlX2FjaW5faGlnaCA9IFNIQVJQU0xfQ0hBUkdFX09OX0FDSU5fSElHSCwKQEAgLTIyOSw2ICsyMzIsMTAgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX3NwaXR6KCkgJiYgIW1hY2hpbmVfaXNfYWtpdGEoKQorCQkJJiYgIW1hY2hpbmVfaXNfYm9yem9pKCkpCisJCXJldHVybiAtRU5PREVWOworCiAJc3BpdHpwbV9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNoYXJwc2wtcG0iLCAtMSk7CiAJaWYgKCFzcGl0enBtX2RldmljZSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS9zc3AuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCmluZGV4IDAwYWY3ZjIuLjBiYjMxOTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3NzcC5jCkBAIC0zMzAsNyArMzMwLDcgQEAKIAogCW11dGV4X3VubG9jaygmc3NwX2xvY2spOwogCi0JaWYgKHNzcC0+cG9ydF9pZCAhPSBwb3J0KQorCWlmICgmc3NwLT5ub2RlID09ICZzc3BfbGlzdCkKIAkJcmV0dXJuIE5VTEw7CiAKIAlyZXR1cm4gc3NwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1weGEvc3RhbmRieS5TIGIvYXJjaC9hcm0vbWFjaC1weGEvc3RhbmRieS5TCmluZGV4IDE2NzQxMmUuLjQwYmI3MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3N0YW5kYnkuUworKysgYi9hcmNoL2FybS9tYWNoLXB4YS9zdGFuZGJ5LlMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4KIAogCQkudGV4dAogCkBAIC0zNSwyMCArMzYsMjAgQEAKIAogI2lmZGVmIENPTkZJR19QWEEzeHgKIAotI2RlZmluZSBNRENORkcJCTB4MDAwMAotI2RlZmluZSBNRENORkdfRE1DRU4JKDEgPDwgMzApCi0jZGVmaW5lIEREUl9IQ0FMCTB4MDA2MAotI2RlZmluZSBERFJfSENBTF9IQ1JORwkweDFmCi0jZGVmaW5lIEREUl9IQ0FMX0hDUFJPRwkoMSA8PCAyOCkKLSNkZWZpbmUgRERSX0hDQUxfSENFTgkoMSA8PCAzMSkKLSNkZWZpbmUgRE1DSUVSCQkweDAwNzAKLSNkZWZpbmUgRE1DSUVSX0VETFAJKDEgPDwgMjkpCi0jZGVmaW5lIERNQ0lTUgkJMHgwMDc4Ci0jZGVmaW5lIFJDT01QCQkweDAxMDAKLSNkZWZpbmUgUkNPTVBfU1dFVkFMCSgxIDw8IDMxKQorI2RlZmluZSBQWEEzX01EQ05GRwkJMHgwMDAwCisjZGVmaW5lIFBYQTNfTURDTkZHX0RNQ0VOCSgxIDw8IDMwKQorI2RlZmluZSBQWEEzX0REUl9IQ0FMCQkweDAwNjAKKyNkZWZpbmUgUFhBM19ERFJfSENBTF9IQ1JORwkweDFmCisjZGVmaW5lIFBYQTNfRERSX0hDQUxfSENQUk9HCSgxIDw8IDI4KQorI2RlZmluZSBQWEEzX0REUl9IQ0FMX0hDRU4JKDEgPDwgMzEpCisjZGVmaW5lIFBYQTNfRE1DSUVSCQkweDAwNzAKKyNkZWZpbmUgUFhBM19ETUNJRVJfRURMUAkoMSA8PCAyOSkKKyNkZWZpbmUgUFhBM19ETUNJU1IJCTB4MDA3OAorI2RlZmluZSBQWEEzX1JDT01QCQkweDAxMDAKKyNkZWZpbmUgUFhBM19SQ09NUF9TV0VWQUwJKDEgPDwgMzEpCiAKIEVOVFJZKHBtX2VudGVyX3N0YW5kYnlfc3RhcnQpCi0JbW92CXIxLCAjMHhmNjAwMDAwMAkJQCBETUVNQ19SRUdfQkFTRSAoTURDTkZHKQorCW1vdglyMSwgIzB4ZjYwMDAwMDAJCQlAIERNRU1DX1JFR19CQVNFIChQWEEzX01EQ05GRykKIAlhZGQJcjEsIHIxLCAjMHgwMDEwMDAwMAogCiAJLyoKQEAgLTU5LDU0ICs2MCw1NCBAQAogCSAqIFRoaXMgYWxzbyBtZWFucyB0aGF0IG9ubHkgdGhlIGR5bmFtaWMgbWVtb3J5IGNvbnRyb2xsZXIKIAkgKiBjYW4gYmUgcmVsaWFibHkgYWNjZXNzZWQgaW4gdGhlIGNvZGUgZm9sbG93aW5nIHN0YW5kYnkuCiAJICovCi0JbGRyCXIyLCBbcjFdCQlAIER1bW15IHJlYWQgTURDTkZHCisJbGRyCXIyLCBbcjFdCQkJQCBEdW1teSByZWFkIFBYQTNfTURDTkZHCiAKIAltY3IJcDE0LCAwLCByMCwgYzcsIGMwLCAwCiAJLnJlcHQJOAogCW5vcAogCS5lbmRyCiAKLQlsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQlAIENsZWFyIChhbmQgd2FpdCBmb3IpIEhDRU4KLQliaWMJcjAsIHIwLCAjRERSX0hDQUxfSENFTgotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCi0xOglsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQotCXRzdAlyMCwgI0REUl9IQ0FMX0hDRU4KKwlsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCUAgQ2xlYXIgKGFuZCB3YWl0IGZvcikgSENFTgorCWJpYwlyMCwgcjAsICNQWEEzX0REUl9IQ0FMX0hDRU4KKwlzdHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCisJdHN0CXIwLCAjUFhBM19ERFJfSENBTF9IQ0VOCiAJYm5lCTFiCiAKLQlsZHIJcjAsIFtyMSwgI1JDT01QXQlAIEluaXRpYXRlIFJDT01QCi0Jb3JyCXIwLCByMCwgI1JDT01QX1NXRVZBTAotCXN0cglyMCwgW3IxLCAjUkNPTVBdCisJbGRyCXIwLCBbcjEsICNQWEEzX1JDT01QXQkJQCBJbml0aWF0ZSBSQ09NUAorCW9ycglyMCwgcjAsICNQWEEzX1JDT01QX1NXRVZBTAorCXN0cglyMCwgW3IxLCAjUFhBM19SQ09NUF0KIAotCW1vdglyMCwgI34wCQkJQCBDbGVhciBpbnRlcnJ1cHRzCi0Jc3RyCXIwLCBbcjEsICNETUNJU1JdCisJbW92CXIwLCAjfjAJCQkJQCBDbGVhciBpbnRlcnJ1cHRzCisJc3RyCXIwLCBbcjEsICNQWEEzX0RNQ0lTUl0KIAotCWxkcglyMCwgW3IxLCAjRE1DSUVSXQlAIHNldCBETUlFUltFRExQXQotCW9ycglyMCwgcjAsICNETUNJRVJfRURMUAotCXN0cglyMCwgW3IxLCAjRE1DSUVSXQorCWxkcglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCQlAIHNldCBETUlFUltFRExQXQorCW9ycglyMCwgcjAsICNQWEEzX0RNQ0lFUl9FRExQCisJc3RyCXIwLCBbcjEsICNQWEEzX0RNQ0lFUl0KIAotCWxkcglyMCwgW3IxLCAjRERSX0hDQUxdCUAgY2xlYXIgSENSTkcsIHNldCBIQ1BST0csIEhDRU4KLQliaWMJcjAsIHIwLCAjRERSX0hDQUxfSENSTkcKLQlvcnIJcjAsIHIwLCAjRERSX0hDQUxfSENFTiB8IEREUl9IQ0FMX0hDUFJPRwotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCisJbGRyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQlAIGNsZWFyIEhDUk5HLCBzZXQgSENQUk9HLCBIQ0VOCisJYmljCXIwLCByMCwgI1BYQTNfRERSX0hDQUxfSENSTkcKKwlvcnIJcjAsIHIwLCAjUFhBM19ERFJfSENBTF9IQ0VOIHwgUFhBM19ERFJfSENBTF9IQ1BST0cKKwlzdHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCiAKLTE6CWxkcglyMCwgW3IxLCAjRE1DSVNSXQotCXRzdAlyMCwgI0RNQ0lFUl9FRExQCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfRE1DSVNSXQorCXRzdAlyMCwgI1BYQTNfRE1DSUVSX0VETFAKIAliZXEJMWIKIAotCWxkcglyMCwgW3IxLCAjTURDTkZHXQlAIHNldCBNRENORkdbRE1DRU5dCi0Jb3JyCXIwLCByMCwgI01EQ05GR19ETUNFTgotCXN0cglyMCwgW3IxLCAjTURDTkZHXQotMToJbGRyCXIwLCBbcjEsICNNRENORkddCi0JdHN0CXIwLCAjTURDTkZHX0RNQ0VOCisJbGRyCXIwLCBbcjEsICNQWEEzX01EQ05GR10JCUAgc2V0IFBYQTNfTURDTkZHW0RNQ0VOXQorCW9ycglyMCwgcjAsICNQWEEzX01EQ05GR19ETUNFTgorCXN0cglyMCwgW3IxLCAjUFhBM19NRENORkddCisxOglsZHIJcjAsIFtyMSwgI1BYQTNfTURDTkZHXQorCXRzdAlyMCwgI1BYQTNfTURDTkZHX0RNQ0VOCiAJYmVxCTFiCiAKLQlsZHIJcjAsIFtyMSwgI0REUl9IQ0FMXQlAIHNldCBERFJfSENBTFtIQ1JOR10KKwlsZHIJcjAsIFtyMSwgI1BYQTNfRERSX0hDQUxdCUAgc2V0IFBYQTNfRERSX0hDQUxbSENSTkddCiAJb3JyCXIwLCByMCwgIzIgQCBIQ1JORwotCXN0cglyMCwgW3IxLCAjRERSX0hDQUxdCisJc3RyCXIwLCBbcjEsICNQWEEzX0REUl9IQ0FMXQogCi0JbGRyCXIwLCBbcjEsICNETUNJRVJdCUAgQ2xlYXIgdGhlIGludGVycnVwdAorCWxkcglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCQlAIENsZWFyIHRoZSBpbnRlcnJ1cHQKIAliaWMJcjAsIHIwLCAjMHgyMDAwMDAwMAotCXN0cglyMCwgW3IxLCAjRE1DSUVSXQorCXN0cglyMCwgW3IxLCAjUFhBM19ETUNJRVJdCiAKIAltb3YJcGMsIGxyCiBFTlRSWShwbV9lbnRlcl9zdGFuZGJ5X2VuZCkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3Rvc2EuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3Rvc2EuYwppbmRleCBjMmNiZDY2Li5hYjRhOWY1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS90b3NhLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvdG9zYS5jCkBAIC00NjcsOCArNDY3LDggQEAKIAogc3RhdGljIHZvaWQgdG9zYV9wb3dlcm9mZih2b2lkKQogewotCXB4YV9ncGlvX21vZGUoVE9TQV9HUElPX09OX1JFU0VUIHwgR1BJT19PVVQpOwotCUdQU1IoVE9TQV9HUElPX09OX1JFU0VUKSA9IEdQSU9fYml0KFRPU0FfR1BJT19PTl9SRVNFVCk7CisJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KFRPU0FfR1BJT19PTl9SRVNFVCwgMCk7CisJZ3Bpb19zZXRfdmFsdWUoVE9TQV9HUElPX09OX1JFU0VULCAxKTsKIAogCW1kZWxheSgxMDAwKTsKIAlhcm1fbWFjaGluZV9yZXN0YXJ0KCdoJyk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS90cml6ZXBzNC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvdHJpemVwczQuYwppbmRleCA5MzE4ODVkLi42MWUyNDQwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXB4YS90cml6ZXBzNC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3RyaXplcHM0LmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxhc20vbWFjaC9mbGFzaC5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvdHJpemVwczQuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9hdWRpby5oPgpAQCAtMTc1LDE5ICsxNzYsMTAgQEAKIAkucmVzb3VyY2UJPSBOVUxMLAogfTsKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBQWEEyNzAgYWM5NyBzb3VuZCBjb2RlYwotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYWM5N19hdWRpb19kZXZpY2UgPSB7Ci0JLm5hbWUJCT0gInB4YTJ4eC1hYzk3IiwKLQkuaWQJCT0gLTEsCi19OwotCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqIHRyaXplcHM0X2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZmbGFzaF9kZXZpY2UsCiAJJnVhcnRfZGV2aWNlcywKIAkmZG05MDAwX2RldmljZSwKLQkmYWM5N19hdWRpb19kZXZpY2UsCiB9OwogCiAjaWZkZWYgQ09ORklHX01BQ0hfVFJJWkVQUzRfQ09OWFMKQEAgLTQzOCw2ICs0MzAsNyBAQAogCXB4YV9zZXRfbWNpX2luZm8oJnRyaXplcHM0X21jaV9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X2ZpY3BfaW5mbygmdHJpemVwczRfZmljcF9wbGF0Zm9ybV9kYXRhKTsKIAlweGFfc2V0X29oY2lfaW5mbygmdHJpemVwczRfb2hjaV9wbGF0Zm9ybV9kYXRhKTsKKwlweGFfc2V0X2FjOTdfaW5mbyhOVUxMKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IHRyaXplcHM0X21hcF9pbyh2b2lkKQpAQCAtNDg3LDYgKzQ4MCw3IEBACiAJQ29uWFNfQkNSID0gdHJpemVwc19jb254c19iY3I7CiAjZW5kaWYKIAorI3dhcm5pbmcgRklYTUUgLSBhY2Nlc3NpbmcgUE0gcmVnaXN0ZXJzIGRpcmVjdGx5IGlzIGRlcHJlY2F0ZWQKIAlQV0VSICA9IDB4MDAwMDAwMDI7CiAJUEZFUiAgPSAweDAwMDAwMDAwOwogCVBSRVIgID0gMHgwMDAwMDAwMjsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlLmMgYi9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZS5jCmluZGV4IDRhMDAyODAuLjY2YjQ0NmMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGUuYwpAQCAtMTgsMjIgKzE4LDI0IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B3bV9iYWNrbGlnaHQuaD4KIAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2F1ZGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YWZiLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvenlsb25pdGUuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tbWMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEyN3hfa2V5cGFkLmg+CiAKKyNpbmNsdWRlICJkZXZpY2VzLmgiCiAjaW5jbHVkZSAiZ2VuZXJpYy5oIgogCiAjZGVmaW5lIE1BWF9TTE9UUwkzCiBzdHJ1Y3QgcGxhdGZvcm1fbW1jX3Nsb3Qgenlsb25pdGVfbW1jX3Nsb3RbTUFYX1NMT1RTXTsKIAotaW50IGdwaW9fYmFja2xpZ2h0OwogaW50IGdwaW9fZXRoX2lycTsKIAogaW50IHdtOTcxM19pcnE7CkBAIC02MiwxMCArNjQsMjAgQEAKIH07CiAKICNpZiBkZWZpbmVkKENPTkZJR19GQl9QWEEpIHx8IGRlZmluZWQoQ09ORklHX0ZCX1BYQV9NT0RVTEUpCi1zdGF0aWMgdm9pZCB6eWxvbml0ZV9iYWNrbGlnaHRfcG93ZXIoaW50IG9uKQotewotCWdwaW9fc2V0X3ZhbHVlKGdwaW9fYmFja2xpZ2h0LCBvbik7Ci19CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX3B3bV9iYWNrbGlnaHRfZGF0YSB6eWxvbml0ZV9iYWNrbGlnaHRfZGF0YSA9IHsKKwkucHdtX2lkCQk9IDMsCisJLm1heF9icmlnaHRuZXNzCT0gMTAwLAorCS5kZnRfYnJpZ2h0bmVzcwk9IDEwMCwKKwkucHdtX3BlcmlvZF9ucwk9IDEwMDAwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugenlsb25pdGVfYmFja2xpZ2h0X2RldmljZSA9IHsKKwkubmFtZQkJPSAicHdtLWJhY2tsaWdodCIsCisJLmRldgkJPSB7CisJCS5wYXJlbnQgPSAmcHhhMjd4X2RldmljZV9wd20xLmRldiwKKwkJLnBsYXRmb3JtX2RhdGEJPSAmenlsb25pdGVfYmFja2xpZ2h0X2RhdGEsCisJfSwKK307CiAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIHRvc2hpYmFfbHRtMDM1YTc3NmNfbW9kZSA9IHsKIAkucGl4Y2xvY2sJCT0gMTEwMDAwLApAQCAtOTgsNyArMTEwLDYgQEAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbWFjaF9pbmZvIHp5bG9uaXRlX3Rvc2hpYmFfbGNkX2luZm8gPSB7CiAJLm51bV9tb2RlcyAgICAgIAk9IDEsCiAJLmxjZF9jb25uCQk9IExDRF9DT0xPUl9URlRfMTZCUFAgfCBMQ0RfUENMS19FREdFX0ZBTEwsCi0JLnB4YWZiX2JhY2tsaWdodF9wb3dlcgk9IHp5bG9uaXRlX2JhY2tsaWdodF9wb3dlciwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvIHNoYXJwX2xzMDM3X21vZGVzW10gPSB7CkBAIC0xMzQsMTMgKzE0NSwxMSBAQAogCS5tb2RlcwkJCT0gc2hhcnBfbHMwMzdfbW9kZXMsCiAJLm51bV9tb2RlcwkJPSAyLAogCS5sY2RfY29ubgkJPSBMQ0RfQ09MT1JfVEZUXzE2QlBQIHwgTENEX1BDTEtfRURHRV9GQUxMLAotCS5weGFmYl9iYWNrbGlnaHRfcG93ZXIJPSB6eWxvbml0ZV9iYWNrbGlnaHRfcG93ZXIsCiB9OwogCiBzdGF0aWMgdm9pZCBfX2luaXQgenlsb25pdGVfaW5pdF9sY2Qodm9pZCkKIHsKLQkvKiBiYWNrbGlnaHQgR1BJTzogb3V0cHV0LCBkZWZhdWx0IG9uICovCi0JZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGdwaW9fYmFja2xpZ2h0LCAxKTsKKwlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnp5bG9uaXRlX2JhY2tsaWdodF9kZXZpY2UpOwogCiAJaWYgKGxjZF9pZCAmIDB4MjApIHsKIAkJc2V0X3B4YV9mYl9pbmZvKCZ6eWxvbml0ZV9zaGFycF9sY2RfaW5mbyk7CkBAIC0zMjksNiArMzM4LDcgQEAKIAlzbWM5MXhfcmVzb3VyY2VzWzFdLmVuZCAgID0gZ3Bpb190b19pcnEoZ3Bpb19ldGhfaXJxKTsKIAlwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJnNtYzkxeF9kZXZpY2UpOwogCisJcHhhX3NldF9hYzk3X2luZm8oTlVMTCk7CiAJenlsb25pdGVfaW5pdF9sY2QoKTsKIAl6eWxvbml0ZV9pbml0X21tYygpOwogCXp5bG9uaXRlX2luaXRfa2V5cGFkKCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXB4YS96eWxvbml0ZV9weGEzMDAuYyBiL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCmluZGV4IDMyNGZiOWQuLjZmN2FlOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCisrKyBiL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMwMC5jCkBAIC01MCw2ICs1MCw3IEBACiAJR1BJTzc1X0xDRF9CSUFTLAogCUdQSU83Nl9MQ0RfVlNZTkMsCiAJR1BJTzEyN19MQ0RfQ1NfTiwKKwlHUElPMjBfUFdNM19PVVQsCS8qIGJhY2tsaWdodCAqLwogCiAJLyogQlRVQVJUICovCiAJR1BJTzExMV9VQVJUMl9SVFMsCkBAIC0yMDAsOSArMjAxLDYgQEAKIAkJLyogZGV0ZWN0IExDRCBwYW5lbCAqLwogCQl6eWxvbml0ZV9kZXRlY3RfbGNkX3BhbmVsKCk7CiAKLQkJLyogR1BJTyBwaW4gYXNzaWdubWVudCAqLwotCQlncGlvX2JhY2tsaWdodCA9IG1mcF90b19ncGlvKE1GUF9QSU5fR1BJTzIwKTsKLQogCQkvKiBNTUMgY2FyZCBkZXRlY3QgJiB3cml0ZSBwcm90ZWN0IGZvciBjb250cm9sbGVyIDAgKi8KIAkJenlsb25pdGVfbW1jX3Nsb3RbMF0uZ3Bpb19jZCAgPSBFWFRfR1BJTygwKTsKIAkJenlsb25pdGVfbW1jX3Nsb3RbMF0uZ3Bpb193cCAgPSBFWFRfR1BJTygyKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcHhhL3p5bG9uaXRlX3B4YTMyMC5jIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKaW5kZXggMTkzZDA3OS4uMmI0ZmMzNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1weGEvenlsb25pdGVfcHhhMzIwLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKIAlHUElPMTVfMl9MQ0RfTENMSywKIAlHUElPMTZfMl9MQ0RfUENMSywKIAlHUElPMTdfMl9MQ0RfQklBUywKKwlHUElPMTRfUFdNM19PVVQsCS8qIGJhY2tsaWdodCAqLwogCiAJLyogRkZVQVJUICovCiAJR1BJTzQxX1VBUlQxX1JYRCB8IE1GUF9MUE1fRURHRV9GQUxMLApAQCAtMTg3LDcgKzE4OCw2IEBACiAJCXp5bG9uaXRlX2RldGVjdF9sY2RfcGFuZWwoKTsKIAogCQkvKiBHUElPIHBpbiBhc3NpZ25tZW50ICovCi0JCWdwaW9fYmFja2xpZ2h0CT0gbWZwX3RvX2dwaW8oTUZQX1BJTl9HUElPMTQpOwogCQlncGlvX2V0aF9pcnEJPSBtZnBfdG9fZ3BpbyhNRlBfUElOX0dQSU85KTsKIAogCQkvKiBNTUMgY2FyZCBkZXRlY3QgJiB3cml0ZSBwcm90ZWN0IGZvciBjb250cm9sbGVyIDAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtcmVhbHZpZXcvcGxhdHNtcC5jIGIvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKaW5kZXggM2U1NzQyOC4uOGU4MTNlZCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1yZWFsdmlldy9wbGF0c21wLmMKQEAgLTc0LDYgKzc0LDggQEAKIAogdm9pZCBfX2NwdWluaXQgcGxhdGZvcm1fc2Vjb25kYXJ5X2luaXQodW5zaWduZWQgaW50IGNwdSkKIHsKKwl0cmFjZV9oYXJkaXJxc19vZmYoKTsKKwogCS8qCiAJICogdGhlIHByaW1hcnkgY29yZSBtYXkgaGF2ZSB1c2VkIGEgImNyb3NzIGNhbGwiIHNvZnQgaW50ZXJydXB0CiAJICogdG8gZ2V0IHRoaXMgcHJvY2Vzc29yIG91dCBvZiBXRkkgaW4gdGhlIEJvb3RNb25pdG9yIC0gbWFrZQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZwppbmRleCBjZDNkYzA4Li45OWZkYzczIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvS2NvbmZpZwpAQCAtMzcsNiArMzcsMTcgQEAKIAloZWxwCiAJICBDbG9jayBjb2RlIGZvciB0aGUgUzNDMjQxMCwgYW5kIHNpbWlsYXIgcHJvY2Vzc29ycwogCitjb25maWcgU0lNVEVDX05PUgorCWJvb2wKKwloZWxwCisJICBJbnRlcm5hbCBub2RlIHRvIHNwZWNpZnkgbWFjaGluZSBoYXMgc2ltdGVjIE5PUiBtYXBwaW5nCisKK2NvbmZpZyBNQUNIX0JBU1RfSURFCisJYm9vbAorCXNlbGVjdCBIQVZFX1BBVEFfUExBVEZPUk0KKwloZWxwCisJICBJbnRlcm5hbCBub2RlIGZvciBtYWNoaW5lcyB3aXRoIGFuIEJBU1Qgc3R5bGUgSURFCisJICBpbnRlcmZhY2UKIAogbWVudSAiUzNDMjQxMCBNYWNoaW5lcyIKIApAQCAtNjEsMTUgKzcyLDE4IEBACiAJICBJbnRlcm5hbCBub2RlIGZvciBIMTk0MCBhbmQgcmVsYXRlZCBQTQogCiBjb25maWcgTUFDSF9OMzAKLQlib29sICJBY2VyIE4zMCIKKwlib29sICJBY2VyIE4zMCBmYW1pbHkiCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJaGVscAotCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBBY2VyIE4zMAorCSAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCBzdXBwdCBmb3IgdGhlIEFjZXIgTjMwLCBBY2VyIE4zNSwKKwkgIE5hdm1hbiBQaU41NzAsIFlha3VtbyBBbHBoYVggb3IgQWlyaXMgTkMwNSBQREFzLgogCiBjb25maWcgQVJDSF9CQVNUCiAJYm9vbCAiU2ltdGVjIEVsZWN0cm9uaWNzIEJBU1QgKEVCMjQxMElUWCkiCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJc2VsZWN0IFBNX1NJTVRFQyBpZiBQTQorCXNlbGVjdCBTSU1URUNfTk9SCisJc2VsZWN0IE1BQ0hfQkFTVF9JREUKIAlzZWxlY3QgSVNBCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBTaW10ZWMgRWxlY3Ryb25pY3MgRUIyNDEwSVRYCkBAIC0xMDcsNiArMTIxLDggQEAKIGNvbmZpZyBNQUNIX1ZSMTAwMAogCWJvb2wgIlRob3Jjb20gVlIxMDAwIgogCXNlbGVjdCBQTV9TSU1URUMgaWYgUE0KKwlzZWxlY3QgU0lNVEVDX05PUgorCXNlbGVjdCBNQUNIX0JBU1RfSURFCiAJc2VsZWN0IENQVV9TM0MyNDEwCiAJaGVscAogCSAgU2F5IFkgaGVyZSBpZiB5b3UgYXJlIHVzaW5nIHRoZSBUaG9yY29tIFZSMTAwMCBib2FyZC4KQEAgLTExOCw0ICsxMzQsMyBAQAogCSAgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyB0aGUgQXJtem9uZSBRVDI0MTAKIAogZW5kbWVudQotCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvTWFrZWZpbGUKaW5kZXggY2FiYzEzYy4uMDBmMzFmOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9NYWtlZmlsZQpAQCAtMzAsMyArMzAsMTEgQEAKIG9iai0kKENPTkZJR19NQUNIX1RDVF9IQU1NRVIpCSs9IG1hY2gtdGN0X2hhbW1lci5vCiBvYmotJChDT05GSUdfTUFDSF9WUjEwMDApCSs9IG1hY2gtdnIxMDAwLm8gdXNiLXNpbXRlYy5vCiBvYmotJChDT05GSUdfTUFDSF9RVDI0MTApCSs9IG1hY2gtcXQyNDEwLm8KKworIyBDb21tb24gYml0cyBvZiBtYWNoaW5lIHN1cHBvcnQKKworb2JqLSQoQ09ORklHX1NJTVRFQ19OT1IpCSs9IG5vci1zaW10ZWMubworCisjIG1hY2hpbmUgYWRkaXRpb25zCisKK29iai0kKENPTkZJR19NQUNIX0JBU1RfSURFKQkrPSBiYXN0LWlkZS5vCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvYmFzdC1pZGUuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMC9iYXN0LWlkZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmOTVmZTMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvYmFzdC1pZGUuYwpAQCAtMCwwICsxLDExMiBAQAorLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL2Jhc3QtaWRlLmMKKyAqCisgKiBDb3B5cmlnaHQgMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL0VCMjQxMElUWC8KKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKworI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL21hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2Jhc3QtbWFwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYmFzdC1pcnEuaD4KKworLyogSURFIHBvcnRzICovCisKK3N0YXRpYyBzdHJ1Y3QgcGF0YV9wbGF0Zm9ybV9pbmZvIGJhc3RfaWRlX3BsYXRkYXRhID0geworCS5pb3BvcnRfc2hpZnQJPSA1LAorfTsKKworI2RlZmluZSBJREVfQ1MJUzNDMjQxMF9DUzUKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiYXN0X2lkZTBfcmVzb3VyY2VbXSA9IHsKKwlbMF0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFUFJJLAorCQkuZW5kCT0gSURFX0NTICsgQkFTVF9QQV9JREVQUkkgKyAoOCAqIDB4MjApIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFUFJJQVVYICsgKDYgKiAweDIwKSAsCisJCS5lbmQJPSBJREVfQ1MgKyBCQVNUX1BBX0lERVBSSUFVWCArICg3ICogMHgyMCkgLSAxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsyXQk9IHsKKwkJLnN0YXJ0CT0gSVJRX0lERTAsCisJCS5lbmQJPSBJUlFfSURFMCwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGJhc3RfZGV2aWNlX2lkZTAgPSB7CisJLm5hbWUJCT0gInBhdGFfcGxhdGZvcm0iLAorCS5pZAkJPSAwLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShiYXN0X2lkZTBfcmVzb3VyY2UpLAorCS5yZXNvdXJjZQk9IGJhc3RfaWRlMF9yZXNvdXJjZSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmYmFzdF9pZGVfcGxhdGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzayA9IH4wLAorCX0KKworfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiYXN0X2lkZTFfcmVzb3VyY2VbXSA9IHsKKwlbMF0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDLAorCQkuZW5kCT0gSURFX0NTICsgQkFTVF9QQV9JREVTRUMgKyAoOCAqIDB4MjApIC0gMSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0JPSB7CisJCS5zdGFydAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDQVVYICsgKDYgKiAweDIwKSwKKwkJLmVuZAk9IElERV9DUyArIEJBU1RfUEFfSURFU0VDQVVYICsgKDcgKiAweDIwKSAtIDEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAorCX0sCisJWzJdCT0geworCQkuc3RhcnQJPSBJUlFfSURFMSwKKwkJLmVuZAk9IElSUV9JREUxLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0lSUSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFzdF9kZXZpY2VfaWRlMSA9IHsKKwkubmFtZQkJPSAicGF0YV9wbGF0Zm9ybSIsCisJLmlkCQk9IDEsCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKGJhc3RfaWRlMV9yZXNvdXJjZSksCisJLnJlc291cmNlCT0gYmFzdF9pZGUxX3Jlc291cmNlLAorCS5kZXYJCT0geworCQkucGxhdGZvcm1fZGF0YSA9ICZiYXN0X2lkZV9wbGF0ZGF0YSwKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gfjAsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmJhc3RfaWRlX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZiYXN0X2RldmljZV9pZGUwLAorCSZiYXN0X2RldmljZV9pZGUxLAorfTsKKworc3RhdGljIF9faW5pdCBpbnQgYmFzdF9pZGVfaW5pdCh2b2lkKQoreworCWlmIChtYWNoaW5lX2lzX2Jhc3QoKSB8fCBtYWNoaW5lX2lzX3ZyMTAwMCgpKQorCQlyZXR1cm4gcGxhdGZvcm1fYWRkX2RldmljZXMoYmFzdF9pZGVfZGV2aWNlcywKKwkJCQkJICAgIEFSUkFZX1NJWkUoYmFzdF9pZGVfZGV2aWNlcykpOworCisJcmV0dXJuIDA7Cit9CisKK2ZzX2luaXRjYWxsKGJhc3RfaWRlX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtYmFzdC5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtYmFzdC5jCmluZGV4IDY2MWEyMzUuLjk2NWYyNzEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLWJhc3QuYworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMKQEAgLTEsNiArMSw2IEBACiAvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1iYXN0LmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCiAgKiAgIEJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KICAqCiAgKiBodHRwOi8vd3d3LnNpbXRlYy5jby51ay9wcm9kdWN0cy9FQjI0MTBJVFgvCkBAIC0yMCw2ICsyMCw4IEBACiAjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kbTkwMDAuaD4KKyNpbmNsdWRlIDxsaW51eC9hdGFfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KIAogI2luY2x1ZGUgPG5ldC9heDg4Nzk2Lmg+CiAKQEAgLTU2LDcgKzU4LDkgQEAKICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKwogI2luY2x1ZGUgInVzYi1zaW10ZWMuaCIKKyNpbmNsdWRlICJub3Itc2ltdGVjLmgiCiAKICNkZWZpbmUgQ09QWVJJR0hUICIsIChjKSAyMDA0LTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzIgogCkBAIC0xMzQsMzcgKzEzOCwyMSBAQAogICB7IFZBX0MyKEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTMihCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMihCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzIoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzIoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1MyKEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTMyhCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihCQVNUX1ZBX0lERVNFQyksICBQQV9DUzMoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzIoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogc2xvdywgd29yZCAqLwogICB7IFZBX0MzKEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTMyhCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DMyhCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzMoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzMoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1MzKEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MzKEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTMyhCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhCQVNUX1ZBX0lERVNFQyksICBQQV9DUzMoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzMoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogZmFzdCwgYnl0ZSAqLwogICB7IFZBX0M0KEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTNChCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNChCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzQoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzQoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1M0KEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTNShCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNChCQVNUX1ZBX0lERVNFQyksICBQQV9DUzUoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiAKICAgLyogZmFzdCwgd29yZCAqLwogICB7IFZBX0M1KEJBU1RfVkFfSVNBSU8pLCAgIFBBX0NTNShCQVNUX1BBX0lTQUlPKSwgICAgU1pfMTZNLCBNVF9ERVZJQ0UgfSwKICAgeyBWQV9DNShCQVNUX1ZBX0lTQU1FTSksICBQQV9DUzUoQkFTVF9QQV9JU0FNRU0pLCAgIFNaXzE2TSwgTVRfREVWSUNFIH0sCiAgIHsgVkFfQzUoQkFTVF9WQV9TVVBFUklPKSwgUEFfQ1M1KEJBU1RfUEFfU1VQRVJJTyksICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KEJBU1RfVkFfSURFUFJJKSwgIFBBX0NTNShCQVNUX1BBX0lERVBSSSksICAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShCQVNUX1ZBX0lERVNFQyksICBQQV9DUzUoQkFTVF9QQV9JREVTRUMpLCAgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoQkFTVF9WQV9JREVQUklBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzUoQkFTVF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoQkFTVF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiB9OwogCiAjZGVmaW5lIFVDT04gUzNDMjQxMF9VQ09OX0RFRkFVTFQgfCBTM0MyNDEwX1VDT05fVUNMSwpAQCAtMjE4LDIzICsyMDYsNiBAQAogCX0KIH07CiAKLS8qIE5PUiBGbGFzaCBvbiBCQVNUIGJvYXJkICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYmFzdF9ub3JfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwLAotCQkuZW5kICAgPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCArICgzMioxMDI0KjEwMjQpIC0gMSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfQotfTsKLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYmFzdF9kZXZpY2Vfbm9yID0gewotCS5uYW1lCQk9ICJiYXN0LW5vciIsCi0JLmlkCQk9IC0xLAotCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShiYXN0X25vcl9yZXNvdXJjZSksCi0JLnJlc291cmNlCT0gYmFzdF9ub3JfcmVzb3VyY2UsCi19OwotCiAvKiBOQU5EIEZsYXNoIG9uIEJBU1QgYm9hcmQgKi8KIAogI2lmZGVmIENPTkZJR19QTQpAQCAtMzc0LDcgKzM0NSw3IEBACiAJWzJdID0gewogCQkuc3RhcnQgPSBJUlFfRE05MDAwLAogCQkuZW5kICAgPSBJUlFfRE05MDAwLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEgfCBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwsCiAJfQogCiB9OwpAQCAtNTY0LDYgKzUzNSwxOCBAQAogCS5kZWZhdWx0X2Rpc3BsYXkgPSAxLAogfTsKIAorLyogSTJDIGRldmljZXMgZml0dGVkLiAqLworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIGJhc3RfaTJjX2RldnNbXSBfX2luaXRkYXRhID0geworCXsKKwkJSTJDX0JPQVJEX0lORk8oInRsdjMyMGFpYzIzIiwgMHgxYSksCisJfSwgeworCQlJMkNfQk9BUkRfSU5GTygic2ltdGVjLXBtdSIsIDB4NmIpLAorCX0sIHsKKwkJSTJDX0JPQVJEX0lORk8oImNoNzAxMyIsIDB4NzUpLAorCX0sCit9OworCiAvKiBTdGFuZGFyZCBCQVNUIGRldmljZXMgKi8KIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmJhc3RfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CkBAIC01NzMsNyArNTU2LDYgQEAKIAkmczNjX2RldmljZV9pMmMsCiAgCSZzM2NfZGV2aWNlX3J0YywKIAkmczNjX2RldmljZV9uYW5kLAotCSZiYXN0X2RldmljZV9ub3IsCiAJJmJhc3RfZGV2aWNlX2RtOWssCiAJJmJhc3RfZGV2aWNlX2FzaXgsCiAJJmJhc3RfZGV2aWNlX2F4cHAsCkBAIC02MjIsNiArNjA0LDExIEBACiAKIAlzM2MyNHh4X2ZiX3NldF9wbGF0ZGF0YSgmYmFzdF9mYl9pbmZvKTsKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhiYXN0X2RldmljZXMsIEFSUkFZX1NJWkUoYmFzdF9kZXZpY2VzKSk7CisKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBiYXN0X2kyY19kZXZzLAorCQkJCUFSUkFZX1NJWkUoYmFzdF9pMmNfZGV2cykpOworCisJbm9yX3NpbXRlY19pbml0KCk7CiB9CiAKIE1BQ0hJTkVfU1RBUlQoQkFTVCwgIlNpbXRlYy1CQVNUIikKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLW4zMC5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtbjMwLmMKaW5kZXggNjIxZjU0OC4uNDNjMmU5MSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtbjMwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtbjMwLmMKQEAgLTEsOSArMSwxMCBAQAotLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtbjMwLmMKKy8qIE1hY2hpbmUgc3BlY2lmaWMgY29kZSBmb3IgdGhlIEFjZXIgbjMwLCBBY2VyIE4zNSwgTmF2bWFuIFBpTiA1NzAsCisgKiBZYWt1bW8gQWxwaGFYIGFuZCBBaXJpcyBOQzA1IFBEQXMuCiAgKgogICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCiAgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CiAgKgotICogQ29weXJpZ2h0IChjKSAyMDA1IENocmlzdGVyIFdlaW5pZ2VsIDxjaHJpc3RlckB3ZWluaWdlbC5zZT4KKyAqIENvcHlyaWdodCAoYykgMjAwNS0yMDA4IENocmlzdGVyIFdlaW5pZ2VsIDxjaHJpc3RlckB3ZWluaWdlbC5zZT4KICAqCiAgKiBUaGVyZSBpcyBhIHdpa2kgd2l0aCBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBuMzAgcG9ydCBhdAogICogaHR0cDovL2hhbmRoZWxkcy5vcmcvbW9pbi9tb2luLmNnaS9BY2VyTjMwRG9jdW1lbnRhdGlvbiAuCkBAIC0xMSwzNiArMTIsNDIgQEAKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwogICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0qLworICovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1lci5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgogCi0jaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgotI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpb19rZXlzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAKLSNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9mYi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2xlZHMtZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgotI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9paWMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWxjZC5oPgogCi0jaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9zM2MyNDEwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvYXJjaC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL2lycS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoL21hcC5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL2lpYy5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgorCiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgotI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvZGV2cy5oPgogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9zM2MyNDEwLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC91ZGMuaD4KIAogc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBuMzBfaW9kZXNjW10gX19pbml0ZGF0YSA9IHsKIAkvKiBub3RoaW5nIGhlcmUgeWV0ICovCkBAIC02NCw3ICs3MSw4IEBACiAJCS51bGNvbgkgICAgID0gMHg0MywKIAkJLnVmY29uCSAgICAgPSAweDUxLAogCX0sCi0JLyogVGhlIEJsdWVUb290aCBjb250cm9sbGVyIGlzIGNvbm5lY3RlZCB0byBwb3J0IDIgKi8KKwkvKiBPbiB0aGUgTjMwIHRoZSBibHVldG9vdGggY29udHJvbGxlciBpcyBjb25uZWN0ZWQgaGVyZS4KKwkgKiBPbiB0aGUgTjM1IGFuZCB2YXJpYW50cyB0aGUgR1BTIHJlY2VpdmVyIGlzIGNvbm5lY3RlZCBoZXJlLiAqLwogCVsyXSA9IHsKIAkJLmh3cG9ydAkgICAgID0gMiwKIAkJLmZsYWdzCSAgICAgPSAwLApAQCAtNzQsMTMgKzgyLDI2MCBAQAogCX0sCiB9OwogCitzdGF0aWMgdm9pZCBuMzBfdWRjX3B1bGx1cChlbnVtIHMzYzI0MTBfdWRjX2NtZF9lIGNtZCkKK3sKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgUzNDMjQxMF9VRENfUF9FTkFCTEUgOgorCQlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BCMywgMSk7CisJCWJyZWFrOworCWNhc2UgUzNDMjQxMF9VRENfUF9ESVNBQkxFIDoKKwkJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQjMsIDApOworCQlicmVhazsKKwljYXNlIFMzQzI0MTBfVURDX1BfUkVTRVQgOgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF91ZGNfbWFjaF9pbmZvIG4zMF91ZGNfY2ZnIF9faW5pdGRhdGEgPSB7CisJLnVkY19jb21tYW5kCQk9IG4zMF91ZGNfcHVsbHVwLAorCS52YnVzX3BpbgkJPSBTM0MyNDEwX0dQRzEsCisJLnZidXNfcGluX2ludmVydGVkCT0gMCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX2J1dHRvbiBuMzBfYnV0dG9uc1tdID0geworCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEYwLAorCQkuY29kZQkJPSBLRVlfUE9XRVIsCisJCS5kZXNjCQk9ICJQb3dlciIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc5LAorCQkuY29kZQkJPSBLRVlfVVAsCisJCS5kZXNjCQk9ICJUaHVtYndoZWVsIFVwIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzgsCisJCS5jb2RlCQk9IEtFWV9ET1dOLAorCQkuZGVzYwkJPSAiVGh1bWJ3aGVlbCBEb3duIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzcsCisJCS5jb2RlCQk9IEtFWV9FTlRFUiwKKwkJLmRlc2MJCT0gIlRodW1id2hlZWwgUHJlc3MiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNywKKwkJLmNvZGUJCT0gS0VZX0hPTUVQQUdFLAorCQkuZGVzYwkJPSAiSG9tZSIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY2LAorCQkuY29kZQkJPSBLRVlfQ0FMRU5EQVIsCisJCS5kZXNjCQk9ICJDYWxlbmRhciIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY1LAorCQkuY29kZQkJPSBLRVlfQUREUkVTU0JPT0ssCisJCS5kZXNjCQk9ICJDb250YWN0cyIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEY0LAorCQkuY29kZQkJPSBLRVlfTUFJTCwKKwkJLmRlc2MJCT0gIk1haWwiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19rZXlzX3BsYXRmb3JtX2RhdGEgbjMwX2J1dHRvbl9kYXRhID0geworCS5idXR0b25zCT0gbjMwX2J1dHRvbnMsCisJLm5idXR0b25zCT0gQVJSQVlfU0laRShuMzBfYnV0dG9ucyksCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBuMzBfYnV0dG9uX2RldmljZSA9IHsKKwkubmFtZQkJPSAiZ3Bpby1rZXlzIiwKKwkuaWQJCT0gLTEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm4zMF9idXR0b25fZGF0YSwKKwl9Cit9OworCitzdGF0aWMgc3RydWN0IGdwaW9fa2V5c19idXR0b24gbjM1X2J1dHRvbnNbXSA9IHsKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGMCwKKwkJLmNvZGUJCT0gS0VZX1BPV0VSLAorCQkuZGVzYwkJPSAiUG93ZXIiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHOSwKKwkJLmNvZGUJCT0gS0VZX1VQLAorCQkuZGVzYwkJPSAiSm95c3RpY2sgVXAiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHOCwKKwkJLmNvZGUJCT0gS0VZX0RPV04sCisJCS5kZXNjCQk9ICJKb3lzdGljayBEb3duIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzYsCisJCS5jb2RlCQk9IEtFWV9ET1dOLAorCQkuZGVzYwkJPSAiSm95c3RpY2sgTGVmdCIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorCXsKKwkJLmdwaW8JCT0gUzNDMjQxMF9HUEc1LAorCQkuY29kZQkJPSBLRVlfRE9XTiwKKwkJLmRlc2MJCT0gIkpveXN0aWNrIFJpZ2h0IiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRzcsCisJCS5jb2RlCQk9IEtFWV9FTlRFUiwKKwkJLmRlc2MJCT0gIkpveXN0aWNrIFByZXNzIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjcsCisJCS5jb2RlCQk9IEtFWV9IT01FUEFHRSwKKwkJLmRlc2MJCT0gIkhvbWUiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNiwKKwkJLmNvZGUJCT0gS0VZX0NBTEVOREFSLAorCQkuZGVzYwkJPSAiQ2FsZW5kYXIiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNSwKKwkJLmNvZGUJCT0gS0VZX0FERFJFU1NCT09LLAorCQkuZGVzYwkJPSAiQ29udGFjdHMiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BGNCwKKwkJLmNvZGUJCT0gS0VZX01BSUwsCisJCS5kZXNjCQk9ICJNYWlsIiwKKwkJLmFjdGl2ZV9sb3cJPSAwLAorCX0sCisJeworCQkuZ3BpbwkJPSBTM0MyNDEwX0dQRjMsCisJCS5jb2RlCQk9IFNXX1JBRElPLAorCQkuZGVzYwkJPSAiR1BTIEFudGVubmEiLAorCQkuYWN0aXZlX2xvdwk9IDAsCisJfSwKKwl7CisJCS5ncGlvCQk9IFMzQzI0MTBfR1BHMiwKKwkJLmNvZGUJCT0gU1dfSEVBRFBIT05FX0lOU0VSVCwKKwkJLmRlc2MJCT0gIkhlYWRwaG9uZSIsCisJCS5hY3RpdmVfbG93CT0gMCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBncGlvX2tleXNfcGxhdGZvcm1fZGF0YSBuMzVfYnV0dG9uX2RhdGEgPSB7CisJLmJ1dHRvbnMJPSBuMzVfYnV0dG9ucywKKwkubmJ1dHRvbnMJPSBBUlJBWV9TSVpFKG4zNV9idXR0b25zKSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIG4zNV9idXR0b25fZGV2aWNlID0geworCS5uYW1lCQk9ICJncGlvLWtleXMiLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IDAsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm4zNV9idXR0b25fZGF0YSwKKwl9Cit9OworCisvKiBUaGlzIGlzIHRoZSBibHVldG9vdGggTEVEIG9uIHRoZSBkZXZpY2UuICovCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfbGVkX3BsYXRkYXRhIG4zMF9ibHVlX2xlZF9wZGF0YSA9IHsKKwkubmFtZQkJPSAiYmx1ZV9sZWQiLAorCS5ncGlvCQk9IFMzQzI0MTBfR1BHNiwKKwkuZGVmX3RyaWdnZXIJPSAiIiwKK307CisKKy8qIFRoaXMgTEVEIGlzIGRyaXZlbiBieSB0aGUgYmF0dGVyeSBtaWNyb2NvbnRyb2xsZXIsIGFuZCBpcyBibGlua2luZworICogcmVkLCBibGlua2luZyBncmVlbiBvciBzb2xpZCBncmVlbiB3aGVuIHRoZSBiYXR0ZXJ5IGlzIGxvdywKKyAqIGNoYXJnaW5nIG9yIGZ1bGwgcmVzcGVjdGl2ZWx5LiAgQnkgZHJpdmluZyBHUEQ5IGxvdywgaXQncyBwb3NzaWJsZQorICogdG8gZm9yY2UgdGhlIExFRCB0byBibGluayByZWQsIHNvIGNhbGwgdGhhdCB3YXJuaW5nIExFRC4gICovCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfbGVkX3BsYXRkYXRhIG4zMF93YXJuaW5nX2xlZF9wZGF0YSA9IHsKKwkubmFtZQkJPSAid2FybmluZ19sZWQiLAorCS5mbGFncyAgICAgICAgICA9IFMzQzI0WFhfTEVERl9BQ1RMT1csCisJLmdwaW8JCT0gUzNDMjQxMF9HUEQ5LAorCS5kZWZfdHJpZ2dlcgk9ICIiLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbjMwX2JsdWVfbGVkID0geworCS5uYW1lCQk9ICJzM2MyNHh4X2xlZCIsCisJLmlkCQk9IDEsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm4zMF9ibHVlX2xlZF9wZGF0YSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgbjMwX3dhcm5pbmdfbGVkID0geworCS5uYW1lCQk9ICJzM2MyNHh4X2xlZCIsCisJLmlkCQk9IDIsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJm4zMF93YXJuaW5nX2xlZF9wZGF0YSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwZmJfZGlzcGxheSBuMzBfZGlzcGxheSBfX2luaXRkYXRhID0geworCS50eXBlCQk9IFMzQzI0MTBfTENEQ09OMV9URlQsCisJLndpZHRoCQk9IDI0MCwKKwkuaGVpZ2h0CQk9IDMyMCwKKwkucGl4Y2xvY2sJPSAxNzAwMDAsCisKKwkueHJlcwkJPSAyNDAsCisJLnlyZXMJCT0gMzIwLAorCS5icHAJCT0gMTYsCisJLmxlZnRfbWFyZ2luCT0gMywKKwkucmlnaHRfbWFyZ2luCT0gNDAsCisJLmhzeW5jX2xlbgk9IDQwLAorCS51cHBlcl9tYXJnaW4JPSAyLAorCS5sb3dlcl9tYXJnaW4JPSAzLAorCS52c3luY19sZW4JPSAyLAorCisJLmxjZGNvbjUgPSBTM0MyNDEwX0xDRENPTjVfSU5WVkxJTkUgfCBTM0MyNDEwX0xDRENPTjVfSU5WVkZSQU1FLAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwZmJfbWFjaF9pbmZvIG4zMF9mYl9pbmZvIF9faW5pdGRhdGEgPSB7CisJLmRpc3BsYXlzCT0gJm4zMF9kaXNwbGF5LAorCS5udW1fZGlzcGxheXMJPSAxLAorCS5kZWZhdWx0X2Rpc3BsYXkgPSAwLAorCS5scGNzZWwJCT0gMHgwNiwKK307CisKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpuMzBfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJnMzY19kZXZpY2VfbGNkLAorCSZzM2NfZGV2aWNlX3dkdCwKKwkmczNjX2RldmljZV9pMmMsCisJJnMzY19kZXZpY2VfaWlzLAogCSZzM2NfZGV2aWNlX3VzYiwKKwkmczNjX2RldmljZV91c2JnYWRnZXQsCisJJm4zMF9idXR0b25fZGV2aWNlLAorCSZuMzBfYmx1ZV9sZWQsCisJJm4zMF93YXJuaW5nX2xlZCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpuMzVfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CiAJJnMzY19kZXZpY2VfbGNkLAogCSZzM2NfZGV2aWNlX3dkdCwKIAkmczNjX2RldmljZV9pMmMsCiAJJnMzY19kZXZpY2VfaWlzLAogCSZzM2NfZGV2aWNlX3VzYmdhZGdldCwKKwkmbjM1X2J1dHRvbl9kZXZpY2UsCiB9OwogCiBzdGF0aWMgc3RydWN0IHMzYzI0MTBfcGxhdGZvcm1faTJjIG4zMF9pMmNjZmcgPSB7CkBAIC05MCw5ICszNDUsMTQ4IEBACiAJLm1heF9mcmVxCT0gMTAqMTAwMCwKIH07CiAKKy8qIExvdHMgb2YgaGFyZGNvZGVkIHN0dWZmLCBidXQgaXQgc2V0cyB1cCB0aGUgaGFyZHdhcmUgaW4gYSB1c2VmdWwKKyAqIHN0YXRlIHNvIHRoYXQgd2UgY2FuIGJvb3QgTGludXggZGlyZWN0bHkgZnJvbSBmbGFzaC4gKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBuMzBfaHdpbml0KHZvaWQpCit7CisJLyogR1BBMC0xMSBzcGVjaWFsIGZ1bmN0aW9ucyAtLSB1bmtub3duIHdoYXQgdGhleSBkbworCSAqIEdQQTEyIE4zMCBzcGVjaWFsIGZ1bmN0aW9uIC0tIHVua25vd24gd2hhdCBpdCBkb2VzCisJICogICAgICAgTjM1L1BpTiBvdXRwdXQgLS0gdW5rbm93biB3aGF0IGl0IGRvZXMKKwkgKgorCSAqIEExMiBpcyBuR0NTMSBvbiB0aGUgTjMwIGFuZCBhbiBvdXRwdXQgb24gdGhlIE4zNS9QaU4uICBJCisJICogZG9uJ3QgdGhpbmsgaXQgZG9lcyBhbnl0aGluZyB1c2VmdWwgb24gdGhlIE4zMCwgc28gSSBvdWdodAorCSAqIHRvIG1ha2UgaXQgYW4gb3V0cHV0IHRoZXJlIHRvbyBzaW5jZSBpdCBhbHdheXMgZHJpdmVuIHRvIDAKKwkgKiBhcyBmYXIgYXMgSSBjYW4gdGVsbC4gKi8KKwlpZiAobWFjaGluZV9pc19uMzAoKSkKKwkJX19yYXdfd3JpdGVsKDB4MDA3ZmZmZmYsIFMzQzI0MTBfR1BBQ09OKTsKKwlpZiAobWFjaGluZV9pc19uMzUoKSkKKwkJX19yYXdfd3JpdGVsKDB4MDA3ZmVmZmYsIFMzQzI0MTBfR1BBQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDAwMCwgUzNDMjQxMF9HUEFEQVQpOworCisJLyogR1BCMCBUT1VUMCBiYWNrbGlnaHQgbGV2ZWwKKwkgKiBHUEIxIG91dHB1dCAxPWJhY2tsaWdodCBvbgorCSAqIEdQQjIgb3V0cHV0IElyREEgZW5hYmxlIDA9dHJhbnNjZWl2ZXIgZW5hYmxlZCwgMT1kaXNhYmxlZAorCSAqIEdQQjMgb3V0cHV0IFVTQiBEKyBwdWxsIHVwIDA9ZGlzYWJsZWQsIDE9ZW5hYmxlZAorCSAqIEdQQjQgTjMwIG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICBOMzAvUGlOIEdQUyBjb250cm9sIDA9R1BTIGVuYWJsZWQsIDE9R1BTIGRpc2FibGVkCisJICogR1BCNSBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQQjYgaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQQjcgb3V0cHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEI4IG91dHB1dCAtLSBwcm9iYWJseSBMQ0QgZHJpdmVyIGVuYWJsZQorCSAqIEdQQjkgb3V0cHV0IC0tIHByb2JhYmx5IExDRCBWU1lOQyBkcml2ZXIgZW5hYmxlCisJICogR1BCMTAgb3V0cHV0IC0tIHByb2JhYmx5IExDRCBIU1lOQyBkcml2ZXIgZW5hYmxlCisJICovCisJX19yYXdfd3JpdGVsKDB4MDAxNTQ1NTYsIFMzQzI0MTBfR1BCQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDc1MCwgUzNDMjQxMF9HUEJEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDAwMDczLCBTM0MyNDEwX0dQQlVQKTsKKworCS8qIEdQQzAgaW5wdXQgUlMyMzIgRENEL0RTUi9SSQorCSAqIEdQQzEgTENECisJICogR1BDMiBvdXRwdXQgUlMyMzIgRFRSPworCSAqIEdQQzMgaW5wdXQgUlMyMzIgRENEL0RTUi9SSQorCSAqIEdQQzQgTENECisJICogR1BDNSBvdXRwdXQgMD1OQU5EIHdyaXRlIGVuYWJsZWQsIDE9TkFORCB3cml0ZSBwcm90ZWN0CisJICogR1BDNiBpbnB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BDNyBpbnB1dCBjaGFyZ2VyIHN0YXR1cyAwPWNoYXJnZXIgY29ubmVjdGVkCisJICogICAgICB0aGlzIGlucHV0IGNhbiBiZSB0cmlnZ2VyZWQgYnkgcG93ZXIgb24gdGhlIFVTQiBkZXZpY2UKKwkgKiAgICAgIHBvcnQgdG9vLCBidXQgd2lsbCBnbyBiYWNrIHRvIGRpc2Nvbm5lY3RlZCBzb29uIGFmdGVyLgorCSAqIEdQQzggTjMwL04zNSBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbiwgYWx3YXlzIGRyaXZlbiB0byAxCisJICogICAgICBQaU4gaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbiwgYWx3YXlzIHJlYWQgYXMgMQorCSAqICAgICAgTWFrZSBpdCBhbiBpbnB1dCB3aXRoIGEgcHVsbCB1cCBmb3IgYWxsIG1vZGVscy4KKwkgKiBHUEM5LTE1IExDRAorCSAqLworCV9fcmF3X3dyaXRlbCgweGFhYTgwNjE4LCBTM0MyNDEwX0dQQ0NPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDAxNGMsIFMzQzI0MTBfR1BDREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZmVmMiwgUzNDMjQxMF9HUENVUCk7CisKKwkvKiBHUEQwIGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEQxLUQ3IExDRAorCSAqIEdQRDggTjMwIG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICBOMzUvUGlOIG91dHB1dCAxPUdQUyBMRUQgb24KKwkgKiBHUEQ5IG91dHB1dCAwPXBvd2VyIGxlZCBibGlua3MgcmVkLCAxPW5vcm1hbCBwb3dlciBsZWQgZnVuY3Rpb24KKwkgKiBHUEQxMCBvdXRwdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqIEdQRDExLTE1IExDRCBkcml2ZXJzCisJICovCisJX19yYXdfd3JpdGVsKDB4YWE5NWFhYTQsIFMzQzI0MTBfR1BEQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDYwMSwgUzNDMjQxMF9HUEREQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDBmYmZlLCBTM0MyNDEwX0dQRFVQKTsKKworCS8qIEdQRTAtNCBJMlMgYXVkaW8gYnVzCisJICogR1BFNS0xMCBTRC9NTUMgYnVzCisJICogRTExLTEzIG91dHB1dHMgLS0gdW5rbm93biBmdW5jdGlvbiwgcHJvYmFibHkgcG93ZXIgbWFuYWdlbWVudAorCSAqIEUxNC0xNSBJMkMgYnVzIGNvbm5lY3RlZCB0byB0aGUgYmF0dGVyeSBjb250cm9sbGVyCisJICovCisJX19yYXdfd3JpdGVsKDB4YTU2YWFhYWEsIFMzQzI0MTBfR1BFQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZWZjNSwgUzNDMjQxMF9HUEVEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDBmODFmLCBTM0MyNDEwX0dQRVVQKTsKKworCS8qIEdQRjAgIGlucHV0IDA9cG93ZXIgYnV0dG9uIHByZXNzZWQKKwkgKiBHUEYxICBpbnB1dCBTRC9NTUMgc3dpdGNoIDA9Y2FyZCBwcmVzZW50CisJICogR1BGMiAgTjMwIDE9cmVzZXQgYnV0dG9uIHByZXNzZWQgKGludmVydGVkIGNvbXBhcmVkIHRvIHRoZSByZXN0KQorCSAqCSBOMzUvUGlOIDA9cmVzZXQgYnV0dG9uIHByZXNzZWQKKwkgKiBHUEYzICBOMzAvUGlOIGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgICBOMzUgaW5wdXQgR1BTIGFudGVubmEgcG9zaXRpb24sIDA9YW50ZW5uYSBjbG9zZWQsIDE9b3BlbgorCSAqIEdQRjQgIGlucHV0IDA9YnV0dG9uIDQgcHJlc3NlZAorCSAqIEdQRjUgIGlucHV0IDA9YnV0dG9uIDMgcHJlc3NlZAorCSAqIEdQRjYgIGlucHV0IDA9YnV0dG9uIDIgcHJlc3NlZAorCSAqIEdQRjcgIGlucHV0IDA9YnV0dG9uIDEgcHJlc3NlZAorCSAqLworCV9fcmF3X3dyaXRlbCgweDAwMDBhYWFhLCBTM0MyNDEwX0dQRkNPTik7CisJX19yYXdfd3JpdGVsKDB4MDAwMDAwMDAsIFMzQzI0MTBfR1BGREFUKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwMDBmZiwgUzNDMjQxMF9HUEZVUCk7CisKKwkvKiBHUEcwICBpbnB1dCBSUzIzMiBEQ0QvRFNSL1JJCisJICogR1BHMSAgaW5wdXQgMT1VU0IgZ2FkZ2V0IHBvcnQgaGFzIHBvd2VyIGZyb20gYSBob3N0CisJICogR1BHMiAgTjMwIGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiAgICAgICBOMzUvUGlOIGlucHV0IDA9aGVhZHBob25lcyBwbHVnZ2VkIGluLCAxPW5vdCBwbHVnZ2VkIGluCisJICogR1BHMyAgTjMwIG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogICAgICAgTjM1L1BpTiBpbnB1dCB3aXRoIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEc0ICBOMzAgb3V0cHV0IDA9TU1DIGVuYWJsZWQsIDE9TU1DIGRpc2FibGVkCisJICogR1BHNSAgTjMwIG91dHB1dCAwPUJsdWVUb290aCBjaGlwIGRpc2FibGVkLCAxPWVuYWJsZWQKKwkgKiAgICAgICBOMzUvUGlOIGlucHV0IGpveXN0aWNrIHJpZ2h0CisJICogR1BHNiAgTjMwIG91dHB1dCAwPWJsdWUgbGVkIG9uLCAxPW9mZgorCSAqICAgICAgIE4zNS9QaU4gaW5wdXQgam95c3RpY2sgbGVmdAorCSAqIEdQRzcgIGlucHV0IDA9dGh1bWJ3aGVlbCBwcmVzc2VkCisJICogR1BHOCAgaW5wdXQgMD10aHVtYndoZWVsIGRvd24KKwkgKiBHUEc5ICBpbnB1dCAwPXRodW1id2hlZWwgdXAKKwkgKiBHUEcxMCBpbnB1dCBTRC9NTUMgd3JpdGUgcHJvdGVjdCBzd2l0Y2gKKwkgKiBHUEcxMSBOMzAgaW5wdXQgLS0gdW5rbm93biBmdW5jdGlvbgorCSAqICAgICAgIE4zNSBvdXRwdXQgMD1HUFMgYW50ZW5uYSBwb3dlcmVkLCAxPW5vdCBwb3dlcmVkCisJICogICAgICAgUGlOIG91dHB1dCAtLSB1bmtub3duIGZ1bmN0aW9uCisJICogR1BHMTItMTUgdG91Y2ggc2NyZWVuIGZ1bmN0aW9ucworCSAqCisJICogVGhlIHB1bGx1cHMgZGlmZmVyIGJldHdlZW4gdGhlIG1vZGVscywgc28gZW5hYmxlIGFsbAorCSAqIHB1bGx1cHMgdGhhdCBhcmUgZW5hYmxlZCBvbiBhbnkgb2YgdGhlIG1vZGVscy4KKwkgKi8KKwlpZiAobWFjaGluZV9pc19uMzAoKSkKKwkJX19yYXdfd3JpdGVsKDB4ZmYwYTk1NmEsIFMzQzI0MTBfR1BHQ09OKTsKKwlpZiAobWFjaGluZV9pc19uMzUoKSkKKwkJX19yYXdfd3JpdGVsKDB4ZmY0YWE5MmEsIFMzQzI0MTBfR1BHQ09OKTsKKwlfX3Jhd193cml0ZWwoMHgwMDAwZTgwMCwgUzNDMjQxMF9HUEdEQVQpOworCV9fcmF3X3dyaXRlbCgweDAwMDBmODZmLCBTM0MyNDEwX0dQR1VQKTsKKworCS8qIEdQSDAvMS8yLzMgUlMyMzIgc2VyaWFsIHBvcnQKKwkgKiBHUEg0LzUgSXJEQSBzZXJpYWwgcG9ydAorCSAqIEdQSDYvNyAgTjMwIEJsdWVUb290aCBzZXJpYWwgcG9ydAorCSAqICAgICAgICAgTjM1L1BpTiBHUFMgcmVjZWl2ZXIKKwkgKiBHUEg4IGlucHV0IC0tIHVua25vd24gZnVuY3Rpb24KKwkgKiBHUEg5IENMS09VVDAgSENMSyAtLSB1bmtub3duIHVzZQorCSAqIEdQSDEwIENMS09VVDEgRkNMSyAtLSB1bmtub3duIHVzZQorCSAqCisJICogVGhlIHB1bGwgdXBzIGZvciBINi9INyBhcmUgZW5hYmxlZCBvbiBOMzAgYnV0IG5vdCBvbiB0aGUKKwkgKiBOMzUvUGlOLiAgSSBzdXBwb3NlIGlzIHVzZWZ1bCBmb3IgYSBidWRnZXQgbW9kZWwgb2YgdGhlIE4zMAorCSAqIHdpdGggbm8gYmx1ZXRvb2guICBJdCBkb2Vzbid0IGh1cnQgdG8gaGF2ZSB0aGUgcHVsbCB1cHMKKwkgKiBlbmFibGVkIG9uIHRoZSBOMzUsIHNvIGxlYXZlIHRoZW0gZW5hYmxlZCBmb3IgYWxsIG1vZGVscy4KKwkgKi8KKwlfX3Jhd193cml0ZWwoMHgwMDI4YWFhYSwgUzNDMjQxMF9HUEhDT04pOworCV9fcmF3X3dyaXRlbCgweDAwMDAwNWVmLCBTM0MyNDEwX0dQSERBVCk7CisJX19yYXdfd3JpdGVsKDB4MDAwMDA2M2YsIFMzQzI0MTBfR1BIVVApOworfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgbjMwX21hcF9pbyh2b2lkKQogewogCXMzYzI0eHhfaW5pdF9pbyhuMzBfaW9kZXNjLCBBUlJBWV9TSVpFKG4zMF9pb2Rlc2MpKTsKKwluMzBfaHdpbml0KCk7CiAJczNjMjR4eF9pbml0X2Nsb2NrcygwKTsKIAlzM2MyNHh4X2luaXRfdWFydHMobjMwX3VhcnRjZmdzLCBBUlJBWV9TSVpFKG4zMF91YXJ0Y2ZncykpOwogfQpAQCAtMTA2LDcgKzUwMCw5IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBuMzBfaW5pdCh2b2lkKQogeworCXMzYzI0eHhfZmJfc2V0X3BsYXRkYXRhKCZuMzBfZmJfaW5mbyk7CiAJczNjX2RldmljZV9pMmMuZGV2LnBsYXRmb3JtX2RhdGEgPSAmbjMwX2kyY2NmZzsKKwlzM2MyNHh4X3VkY19zZXRfcGxhdGRhdGEoJm4zMF91ZGNfY2ZnKTsKIAogCS8qIFR1cm4gb2ZmIHN1c3BlbmQgb24gYm90aCBVU0IgcG9ydHMsIGFuZCBzd2l0Y2ggdGhlCiAJICogc2VsZWN0YWJsZSBVU0IgcG9ydCB0byBVU0IgZGV2aWNlIG1vZGUuICovCkBAIC0xMTUsNyArNTExLDMyIEBACiAJCQkgICAgICBTM0MyNDEwX01JU0NDUl9VU0JTVVNQTkQwIHwKIAkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDEsIDB4MCk7CiAKLQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhuMzBfZGV2aWNlcywgQVJSQVlfU0laRShuMzBfZGV2aWNlcykpOworCWlmIChtYWNoaW5lX2lzX24zMCgpKSB7CisJCS8qIFR1cm4gb2ZmIHN1c3BlbmQgb24gYm90aCBVU0IgcG9ydHMsIGFuZCBzd2l0Y2ggdGhlCisJCSAqIHNlbGVjdGFibGUgVVNCIHBvcnQgdG8gVVNCIGRldmljZSBtb2RlLiAqLworCQlzM2MyNDEwX21vZGlmeV9taXNjY3IoUzNDMjQxMF9NSVNDQ1JfVVNCSE9TVCB8CisJCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMCB8CisJCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMSwgMHgwKTsKKworCQlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhuMzBfZGV2aWNlcywgQVJSQVlfU0laRShuMzBfZGV2aWNlcykpOworCX0KKworCWlmIChtYWNoaW5lX2lzX24zNSgpKSB7CisJCS8qIFR1cm4gb2ZmIHN1c3BlbmQgYW5kIHN3aXRjaCB0aGUgc2VsZWN0YWJsZSBVU0IgcG9ydAorCQkgKiB0byBVU0IgZGV2aWNlIG1vZGUuICBUdXJuIG9uIHN1c3BlbmQgZm9yIHRoZSBob3N0CisJCSAqIHBvcnQgc2luY2UgaXQgaXMgbm90IGNvbm5lY3RlZCBvbiB0aGUgTjM1LgorCQkgKgorCQkgKiBBY3R1YWxseSwgdGhlIGhvc3QgcG9ydCBpcyBhdmFpbGFibGUgYXQgc29tZSBwYWRzCisJCSAqIG9uIHRoZSBiYWNrIG9mIHRoZSBkZXZpY2UsIHNvIGl0IHdvdWxkIGFjdHVhbGx5IGJlCisJCSAqIHBvc3NpYmxlIHRvIGFkZCBhIFVTQiBkZXZpY2UgaW5zaWRlIHRoZSBOMzUgaWYgeW91CisJCSAqIGFyZSB3aWxsaW5nIHRvIGRvIHNvbWUgaGFyZHdhcmUgbW9kaWZpY2F0aW9ucy4gKi8KKwkJczNjMjQxMF9tb2RpZnlfbWlzY2NyKFMzQzI0MTBfTUlTQ0NSX1VTQkhPU1QgfAorCQkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDAgfAorCQkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDEsCisJCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMSk7CisKKwkJcGxhdGZvcm1fYWRkX2RldmljZXMobjM1X2RldmljZXMsIEFSUkFZX1NJWkUobjM1X2RldmljZXMpKTsKKwl9CiB9CiAKIE1BQ0hJTkVfU1RBUlQoTjMwLCAiQWNlci1OMzAiKQpAQCAtMTMxLDkgKzU1MiwxNCBAQAogCS5tYXBfaW8JCT0gbjMwX21hcF9pbywKIE1BQ0hJTkVfRU5ECiAKLS8qCi0gICAgTG9jYWwgdmFyaWFibGVzOgotICAgICAgICBjb21waWxlLWNvbW1hbmQ6ICJtYWtlIEFSQ0g9YXJtIENST1NTX0NPTVBJTEU9L3Vzci9sb2NhbC9hcm0vMy4zLjIvYmluL2FybS1saW51eC0gLWsgLUMgLi4vLi4vLi4iCi0gICAgICAgIGMtYmFzaWMtb2Zmc2V0OiA4Ci0gICAgRW5kOgotKi8KK01BQ0hJTkVfU1RBUlQoTjM1LCAiQWNlci1OMzUiKQorCS8qIE1haW50YWluZXI6IENocmlzdGVyIFdlaW5pZ2VsIDxjaHJpc3RlckB3ZWluaWdlbC5zZT4KKwkqLworCS5waHlzX2lvCT0gUzNDMjQxMF9QQV9VQVJULAorCS5pb19wZ19vZmZzdAk9ICgoKHUzMilTM0MyNFhYX1ZBX1VBUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBTM0MyNDEwX1NEUkFNX1BBICsgMHgxMDAsCisJLnRpbWVyCQk9ICZzM2MyNHh4X3RpbWVyLAorCS5pbml0X21hY2hpbmUJPSBuMzBfaW5pdCwKKwkuaW5pdF9pcnEJPSBuMzBfaW5pdF9pcnEsCisJLm1hcF9pbwkJPSBuMzBfbWFwX2lvLAorTUFDSElORV9FTkQKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9tYWNoLXZyMTAwMC5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtdnIxMDAwLmMKaW5kZXggYzU2NDIzMy4uOWEwOTY1YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtdnIxMDAwLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL21hY2gtdnIxMDAwLmMKQEAgLTEsNiArMSw2IEBACiAvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC12cjEwMDAuYwogICoKLSAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKICAqICAgQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKICAqIE1hY2hpbmUgc3VwcG9ydCBmb3IgVGhvcmNvbSBWUjEwMDAgYm9hcmQuIERlc2lnbmVkIGZvciBUaG9yY29tIGJ5CkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZG05MDAwLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAKICNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KQEAgLTQ2LDcgKzQ3LDkgQEAKICNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CiAjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKwogI2luY2x1ZGUgInVzYi1zaW10ZWMuaCIKKyNpbmNsdWRlICJub3Itc2ltdGVjLmgiCiAKIC8qIG1hY3JvcyBmb3IgdmlydHVhbCBhZGRyZXNzIG1vZHMgZm9yIHRoZSBpbyBzcGFjZSBlbnRyaWVzICovCiAjZGVmaW5lIFZBX0M1KGl0ZW0pICgodW5zaWduZWQgbG9uZykoaXRlbSkgKyBCQVNUX1ZBTV9DUzUpCkBAIC05NywzNCArMTAwLDYgQEAKIAkgIC5sZW5ndGgJPSBTWl8xTSwKIAkgIC50eXBlCQk9IE1UX0RFVklDRSwKICAgfSwKLQotICAvKiBwZXJpcGhlcmFsIHNwYWNlLi4uIG9uZSBmb3IgZWFjaCBvZiBmYXN0L3Nsb3cvYnl0ZS8xNmJpdCAqLwotICAvKiBub3RlLCBpZGUgaXMgb25seSBkZWNvZGVkIGluIHdvcmQgc3BhY2UsIGV2ZW4gdGhvdWdoIHNvbWUgcmVnaXN0ZXJzCi0gICAqIGFyZSBvbmx5IDhiaXQgKi8KLQotICAvKiBzbG93LCBieXRlICovCi0gIHsgVkFfQzIoVlIxMDAwX1ZBX0lERVBSSSksICBQQV9DUzMoVlIxMDAwX1BBX0lERVBSSSksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihWUjEwMDBfVkFfSURFU0VDKSwgIFBBX0NTMyhWUjEwMDBfUEFfSURFU0VDKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0MyKFZSMTAwMF9WQV9JREVQUklBVVgpLCBQQV9DUzMoVlIxMDAwX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMihWUjEwMDBfVkFfSURFU0VDQVVYKSwgUEFfQ1MzKFZSMTAwMF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0KLSAgLyogc2xvdywgd29yZCAqLwotICB7IFZBX0MzKFZSMTAwMF9WQV9JREVQUkkpLCAgUEFfQ1MzKFZSMTAwMF9QQV9JREVQUkkpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoVlIxMDAwX1ZBX0lERVNFQyksICBQQV9DUzMoVlIxMDAwX1BBX0lERVNFQyksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DMyhWUjEwMDBfVkFfSURFUFJJQVVYKSwgUEFfQ1MzKFZSMTAwMF9QQV9JREVQUklBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzMoVlIxMDAwX1ZBX0lERVNFQ0FVWCksIFBBX0NTMyhWUjEwMDBfUEFfSURFU0VDQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotCi0gIC8qIGZhc3QsIGJ5dGUgKi8KLSAgeyBWQV9DNChWUjEwMDBfVkFfSURFUFJJKSwgIFBBX0NTNShWUjEwMDBfUEFfSURFUFJJKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KFZSMTAwMF9WQV9JREVTRUMpLCAgUEFfQ1M1KFZSMTAwMF9QQV9JREVTRUMpLAkgIFNaXzFNLCAgTVRfREVWSUNFIH0sCi0gIHsgVkFfQzQoVlIxMDAwX1ZBX0lERVBSSUFVWCksIFBBX0NTNShWUjEwMDBfUEFfSURFUFJJQVVYKSwgU1pfMU0sIE1UX0RFVklDRSB9LAotICB7IFZBX0M0KFZSMTAwMF9WQV9JREVTRUNBVVgpLCBQQV9DUzUoVlIxMDAwX1BBX0lERVNFQ0FVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLQotICAvKiBmYXN0LCB3b3JkICovCi0gIHsgVkFfQzUoVlIxMDAwX1ZBX0lERVBSSSksICBQQV9DUzUoVlIxMDAwX1BBX0lERVBSSSksCSAgU1pfMU0sICBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShWUjEwMDBfVkFfSURFU0VDKSwgIFBBX0NTNShWUjEwMDBfUEFfSURFU0VDKSwJICBTWl8xTSwgIE1UX0RFVklDRSB9LAotICB7IFZBX0M1KFZSMTAwMF9WQV9JREVQUklBVVgpLCBQQV9DUzUoVlIxMDAwX1BBX0lERVBSSUFVWCksIFNaXzFNLCBNVF9ERVZJQ0UgfSwKLSAgeyBWQV9DNShWUjEwMDBfVkFfSURFU0VDQVVYKSwgUEFfQ1M1KFZSMTAwMF9QQV9JREVTRUNBVVgpLCBTWl8xTSwgTVRfREVWSUNFIH0sCiB9OwogCiAjZGVmaW5lIFVDT04gUzNDMjQxMF9VQ09OX0RFRkFVTFQgfCBTM0MyNDEwX1VDT05fVUNMSwpAQCAtMjMwLDIzICsyMDUsNiBAQAogCX0sCiB9OwogCi0vKiBNVEQgTk9SIEZsYXNoICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdnIxMDAwX25vcl9yZXNvdXJjZVtdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0CT0gUzNDMjQxMF9DUzEgKyAweDQwMDAwMDAsCi0JCS5lbmQJPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCArIFNaXzE2TSAtIDEsCi0JCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAotCX0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHZyMTAwMF9ub3IgPSB7Ci0JLm5hbWUJCT0gImJhc3Qtbm9yIiwKLQkuaWQJCT0gLTEsCi0JLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHZyMTAwMF9ub3JfcmVzb3VyY2UpLAotCS5yZXNvdXJjZQk9IHZyMTAwMF9ub3JfcmVzb3VyY2UsCi19OwotCiAvKiBETTkwMDAgZXRoZXJuZXQgZGV2aWNlcyAqLwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHZyMTAwMF9kbTlrMF9yZXNvdXJjZVtdID0gewpAQCAtMjYzLDcgKzIyMSw3IEBACiAJWzJdID0gewogCQkuc3RhcnQgPSBJUlFfVlIxMDAwX0RNOTAwMEEsCiAJCS5lbmQgICA9IElSUV9WUjEwMDBfRE05MDAwQSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEgfCBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwsCiAJfQogCiB9OwpAQCAtMjgyLDcgKzI0MCw3IEBACiAJWzJdID0gewogCQkuc3RhcnQgPSBJUlFfVlIxMDAwX0RNOTAwME4sCiAJCS5lbmQgICA9IElSUV9WUjEwMDBfRE05MDAwTiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEgfCBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwsCiAJfQogfTsKIApAQCAtMzU4LDYgKzMxNiwxOCBAQAogCX0sCiB9OwogCisvKiBJMkMgZGV2aWNlcy4gKi8KKworc3RhdGljIHN0cnVjdCBpMmNfYm9hcmRfaW5mbyB2cjEwMDBfaTJjX2RldnNbXSBfX2luaXRkYXRhID0geworCXsKKwkJSTJDX0JPQVJEX0lORk8oInRsdjMyMGFpYzIzIiwgMHgxYSksCisJfSwgeworCQlJMkNfQk9BUkRfSU5GTygidG1wMTAxIiwgMHg0OCksCisJfSwgeworCQlJMkNfQk9BUkRfSU5GTygibTQxc3Q4NyIsIDB4NjgpLAorCX0sCit9OworCiAvKiBkZXZpY2VzIGZvciB0aGlzIGJvYXJkICovCiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICp2cjEwMDBfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CkBAIC0zNjcsNyArMzM3LDYgQEAKIAkmczNjX2RldmljZV9pMmMsCiAJJnMzY19kZXZpY2VfYWRjLAogCSZzZXJpYWxfZGV2aWNlLAotCSZ2cjEwMDBfbm9yLAogCSZ2cjEwMDBfZG05azAsCiAJJnZyMTAwMF9kbTlrMSwKIAkmdnIxMDAwX2xlZDEsCkBAIC00MTYsNiArMzg1LDExIEBACiBzdGF0aWMgdm9pZCBfX2luaXQgdnIxMDAwX2luaXQodm9pZCkKIHsKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyh2cjEwMDBfZGV2aWNlcywgQVJSQVlfU0laRSh2cjEwMDBfZGV2aWNlcykpOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgdnIxMDAwX2kyY19kZXZzLAorCQkJCUFSUkFZX1NJWkUodnIxMDAwX2kyY19kZXZzKSk7CisKKwlub3Jfc2ltdGVjX2luaXQoKTsKIH0KIAogTUFDSElORV9TVEFSVChWUjEwMDAsICJUaG9yY29tLVZSMTAwMCIpCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDRlMjFiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEwL25vci1zaW10ZWMuYwpAQCAtMCwwICsxLDg2IEBACisvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5jCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBTaW10ZWMgTk9SIG1hcHBpbmcKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9tYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGh5c21hcC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9iYXN0LW1hcC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2Jhc3QtY3BsZC5oPgorCisKK3N0YXRpYyB2b2lkIHNpbXRlY19ub3JfdnBwKHN0cnVjdCBtYXBfaW5mbyAqbWFwLCBpbnQgdnBwKQoreworCXVuc2lnbmVkIGludCB2YWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwl2YWwgPSBfX3Jhd19yZWFkYihCQVNUX1ZBX0NUUkwzKTsKKworCXByaW50ayhLRVJOX0RFQlVHICIlcyglZClcbiIsIF9fZnVuY19fLCB2cHApOworCisJaWYgKHZwcCkKKwkJdmFsIHw9IEJBU1RfQ1BMRF9DVFJMM19ST01XRU47CisJZWxzZQorCQl2YWwgJj0gfkJBU1RfQ1BMRF9DVFJMM19ST01XRU47CisKKwlfX3Jhd193cml0ZWIodmFsLCBCQVNUX1ZBX0NUUkwzKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKK3N0cnVjdCBwaHlzbWFwX2ZsYXNoX2RhdGEgc2ltdGVjX25vcl9wZGF0YSA9IHsKKwkud2lkdGgJCT0gMiwKKwkuc2V0X3ZwcAk9IHNpbXRlY19ub3JfdnBwLAorCS5ucl9wYXJ0cwk9IDAsCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHNpbXRlY19ub3JfcmVzb3VyY2VbXSA9IHsKKwlbMF0gPSB7CisJCS5zdGFydCA9IFMzQzI0MTBfQ1MxICsgMHg0MDAwMDAwLAorCQkuZW5kICAgPSBTM0MyNDEwX0NTMSArIDB4NDAwMDAwMCArIFNaXzhNIC0gMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ugc2ltdGVjX2RldmljZV9ub3IgPSB7CisJLm5hbWUJCT0gInBoeXNtYXAtZmxhc2giLAorCS5pZAkJPSAtMSwKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoc2ltdGVjX25vcl9yZXNvdXJjZSksCisJLnJlc291cmNlCT0gc2ltdGVjX25vcl9yZXNvdXJjZSwKKwkuZGV2CQk9IHsKKwkJLnBsYXRmb3JtX2RhdGEgPSAmc2ltdGVjX25vcl9wZGF0YSwKKwl9LAorfTsKKwordm9pZCBfX2luaXQgbm9yX3NpbXRlY19pbml0KHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmc2ltdGVjX2RldmljZV9ub3IpOworCWlmIChyZXQgPCAwKQorCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byByZWdpc3RlciBwaHlzbWFwLWZsYXNoIGRldmljZVxuIik7CisJZWxzZQorCQlzaW10ZWNfbm9yX3ZwcChOVUxMLCAxKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmggYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MTljMWUKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbm9yLXNpbXRlYy5oCkBAIC0wLDAgKzEsMTQgQEAKKy8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQxMC9ub3Itc2ltdGVjLmgKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgorICoKKyAqIFNpbXRlYyBOT1IgbWFwcGluZworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCitleHRlcm4gdm9pZCBub3Jfc2ltdGVjX2luaXQodm9pZCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvS2NvbmZpZyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9LY29uZmlnCmluZGV4IDBiNDM0MzEuLmM1OWE5ZDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9LY29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9LY29uZmlnCkBAIC0zNCw2ICszNCwxNiBAQAogCiBtZW51ICJTM0MyNDEyIE1hY2hpbmVzIgogCitjb25maWcgTUFDSF9KSVZFCisJYm9vbCAiTG9naXRlY2ggSml2ZSIKKwlzZWxlY3QgQ1BVX1MzQzI0MTIKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIExvZ2l0ZWNoIEppdmUuCisKK2NvbmZpZyBNQUNIX0pJVkVfU0hPV19CT09UTE9BREVSCisJYm9vbCAiQWxsb3cgYWNjZXNzIHRvIGJvb3Rsb2FkZXIgcGFydGl0aW9ucyBpbiBNVEQiCisJZGVwZW5kcyBvbiBNQUNIX0pJVkUgJiYgRVhQRVJJTUVOVEFMCisKIGNvbmZpZyBNQUNIX1NNREsyNDEzCiAJYm9vbCAiU01ESzI0MTMiCiAJc2VsZWN0IENQVV9TM0MyNDEyCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0MTIvTWFrZWZpbGUgYi9hcmNoL2FybS9tYWNoLXMzYzI0MTIvTWFrZWZpbGUKaW5kZXggMjY3ZjMzNC4uMjA5MThkNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9NYWtlZmlsZQpAQCAtMTgsNSArMTgsNiBAQAogCiAjIE1hY2hpbmUgc3VwcG9ydAogCitvYmotJChDT05GSUdfTUFDSF9KSVZFKQkJKz0gbWFjaC1qaXZlLm8KIG9iai0kKENPTkZJR19NQUNIX1NNREsyNDEzKQkrPSBtYWNoLXNtZGsyNDEzLm8KIG9iai0kKENPTkZJR19NQUNIX1ZTVE1TKQkrPSBtYWNoLXZzdG1zLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL2Nsb2NrLmMKaW5kZXggMjY5N2E2NS4uMTE1N2I1YSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL2Nsb2NrLmMKQEAgLTYzMSw2ICs2MzEsMTcgQEAKIAkJLmJpdAk9IFMzQzI0MTJfQ0xLU1JDX1VTQkNMS19IQ0xLLAogCQkuc3JjXzAJPSAmY2xrX3VzeXNjbGssCiAJCS5zcmNfMQk9ICZjbGtfaCwKKwkvKiBoZXJlIHdlIGFzc3VtZSAgT01bNF0gc2VsZWN0IHh0YWwgKi8KKwl9LCB7CisJCS5jbGsJPSAmY2xrX2VyZWZjbGssCisJCS5iaXQJPSBTM0MyNDEyX0NMS1NSQ19FUkVGQ0xLX0VYVENMSywKKwkJLnNyY18wCT0gJmNsa194dGFsLAorCQkuc3JjXzEJPSAmY2xrX2V4dCwKKwl9LCB7CisJCS5jbGsJPSAmY2xrX3VyZWZjbGssCisJCS5iaXQJPSBTM0MyNDEyX0NMS1NSQ19VUkVGQ0xLX0VYVENMSywKKwkJLnNyY18wCT0gJmNsa194dGFsLAorCQkuc3JjXzEJPSAmY2xrX2V4dCwKIAl9LAogfTsKIApAQCAtNjY2LDggKzY3Nyw2IEBACiBzdGF0aWMgc3RydWN0IGNsayAqY2xrc1tdIF9faW5pdGRhdGEgPSB7CiAJJmNsa19leHQsCiAJJmNsa191c2JfYnVzLAotCSZjbGtfZXJlZmNsaywKLQkmY2xrX3VyZWZjbGssCiAJJmNsa19tcmVmY2xrLAogCSZjbGtfYXJtY2xrLAogfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQxMi9tYWNoLWppdmUuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQxMi9tYWNoLWppdmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjU5MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDEyL21hY2gtaml2ZS5jCkBAIC0wLDAgKzEsNjg3IEBACisvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0MTAvbWFjaC1qaXZlLmMKKyAqCisgKiBDb3B5cmlnaHQgMjAwNyBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCUJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4KKyAqCisgKiBodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorCisjaW5jbHVkZSA8dmlkZW8vaWxpOTMyMC5oPgorCisjaW5jbHVkZSA8bGludXgvc3BpL3NwaS5oPgorCisjaW5jbHVkZSA8bGludXgvbXRkL210ZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisKKyNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvaXJxLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvbmFuZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9paWMuaD4KKworI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtcG93ZXIuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLW1lbS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtbGNkLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvc3BpLWdwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9mYi5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKworI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZC5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9uYW5kX2VjYy5oPgorI2luY2x1ZGUgPGxpbnV4L210ZC9wYXJ0aXRpb25zLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L2Nsb2NrLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9kZXZzLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jcHUuaD4KKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MyNHh4L3BtLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC91ZGMuaD4KKworc3RhdGljIHN0cnVjdCBtYXBfZGVzYyBqaXZlX2lvZGVzY1tdIF9faW5pdGRhdGEgPSB7Cit9OworCisjZGVmaW5lIFVDT04gUzNDMjQxMF9VQ09OX0RFRkFVTFQKKyNkZWZpbmUgVUxDT04gUzNDMjQxMF9MQ09OX0NTOCB8IFMzQzI0MTBfTENPTl9QTk9ORQorI2RlZmluZSBVRkNPTiBTM0MyNDEwX1VGQ09OX1JYVFJJRzggfCBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFCisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnIGppdmVfdWFydGNmZ3NbXSA9IHsKKwlbMF0gPSB7CisJCS5od3BvcnQJICAgICA9IDAsCisJCS5mbGFncwkgICAgID0gMCwKKwkJLnVjb24JICAgICA9IFVDT04sCisJCS51bGNvbgkgICAgID0gVUxDT04sCisJCS51ZmNvbgkgICAgID0gVUZDT04sCisJfSwKKwlbMV0gPSB7CisJCS5od3BvcnQJICAgICA9IDEsCisJCS5mbGFncwkgICAgID0gMCwKKwkJLnVjb24JICAgICA9IFVDT04sCisJCS51bGNvbgkgICAgID0gVUxDT04sCisJCS51ZmNvbgkgICAgID0gVUZDT04sCisJfSwKKwlbMl0gPSB7CisJCS5od3BvcnQJICAgICA9IDIsCisJCS5mbGFncwkgICAgID0gMCwKKwkJLnVjb24JICAgICA9IFVDT04sCisJCS51bGNvbgkgICAgID0gVUxDT04sCisJCS51ZmNvbgkgICAgID0gVUZDT04sCisJfQorfTsKKworLyogSml2ZSBmbGFzaCBhc3NpZ25tZW50CisgKgorICogMHgwMDAwMDAwMC0weDAwMDI4MDAwIDogdWJvb3QKKyAqIDB4MDAwMjgwMDAtMHgwMDAyYzAwMCA6IHVib290IGVudgorICogMHgwMDAyYzAwMC0weDAwMDMwMDAwIDogc3BhcmUKKyAqIDB4MDAwMzAwMDAtMHgwMDIwMDAwMCA6IHppbWFnZSBBCisgKiAweDAwMjAwMDAwLTB4MDE2MDAwMDAgOiBjcmFtZnMgQQorICogMHgwMTYwMDAwMC0weDAxN2QwMDAwIDogemltYWdlIEIKKyAqIDB4MDE3ZDAwMDAtMHgwMmJkMDAwMCA6IGNyYW1mcyBCCisgKiAweDAyYmQwMDAwLTB4MDNmZDAwMDAgOiB5YWZmcworICovCitzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gaml2ZV9pbWFnZUFfbmFuZF9wYXJ0W10gPSB7CisKKyNpZmRlZiBDT05GSUdfTUFDSF9KSVZFX1NIT1dfQk9PVExPQURFUgorCS8qIERvbid0IGFsbG93IGFjY2VzcyB0byB0aGUgYm9vdGxvYWRlciBmcm9tIGxpbnV4ICovCisJeworCQkubmFtZSAgICAgICAgICAgPSAidWJvb3QiLAorCQkub2Zmc2V0ICAgICAgICAgPSAwLAorCQkuc2l6ZSAgICAgICAgICAgPSAoMTYwICogU1pfMUspLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworCX0sCisKKwkvKiBzcGFyZSAqLworICAgICAgICB7CisgICAgICAgICAgICAgICAgLm5hbWUgICAgICAgICAgID0gInNwYXJlIiwKKyAgICAgICAgICAgICAgICAub2Zmc2V0ICAgICAgICAgPSAoMTc2ICogU1pfMUspLAorICAgICAgICAgICAgICAgIC5zaXplICAgICAgICAgICA9ICgxNiAqIFNaXzFLKSwKKyAgICAgICAgfSwKKyNlbmRpZgorCisJLyogYm9vdGVkIGltYWdlcyAqLworICAgICAgICB7CisJCS5uYW1lCQk9ICJrZXJuZWwgKHJvKSIsCisJCS5vZmZzZXQJCT0gKDE5MiAqIFNaXzFLKSwKKwkJLnNpemUJCT0gKFNaXzJNKSAtICgxOTIgKiBTWl8xSyksCisJCS5tYXNrX2ZsYWdzCT0gTVREX1dSSVRFQUJMRSwgLyogZm9yY2UgcmVhZC1vbmx5ICovCisgICAgICAgIH0sIHsKKyAgICAgICAgICAgICAgICAubmFtZSAgICAgICAgICAgPSAicm9vdCAocm8pIiwKKyAgICAgICAgICAgICAgICAub2Zmc2V0ICAgICAgICAgPSAoU1pfMk0pLAorICAgICAgICAgICAgICAgIC5zaXplICAgICAgICAgICA9ICgyMCAqIFNaXzFNKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKyAgICAgICAgfSwKKworCS8qIHlhZmZzICovCisJeworCQkubmFtZQkJPSAieWFmZnMiLAorCQkub2Zmc2V0CQk9ICg0NCAqIFNaXzFNKSwKKwkJLnNpemUJCT0gKDIwICogU1pfMU0pLAorCX0sCisKKwkvKiBib290bG9hZGVyIGVudmlyb25tZW50ICovCisJeworICAgICAgICAgICAgICAgIC5uYW1lCQk9ICJlbnYiLAorCQkub2Zmc2V0CQk9ICgxNjAgKiBTWl8xSyksCisJCS5zaXplCQk9ICgxNiAqIFNaXzFLKSwKKwl9LAorCisJLyogdXBncmFkZSBpbWFnZXMgKi8KKyAgICAgICAgeworCQkubmFtZQkJPSAiemltYWdlIiwKKwkJLm9mZnNldAkJPSAoMjIgKiBTWl8xTSksCisJCS5zaXplCQk9ICgyICogU1pfMU0pIC0gKDE5MiAqIFNaXzFLKSwKKyAgICAgICAgfSwgeworCQkubmFtZQkJPSAiY3JhbWZzIiwKKwkJLm9mZnNldAkJPSAoMjQgKiBTWl8xTSkgLSAoMTkyKlNaXzFLKSwKKwkJLnNpemUJCT0gKDIwICogU1pfMU0pLAorICAgICAgICB9LAorfTsKKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGppdmVfaW1hZ2VCX25hbmRfcGFydFtdID0geworCisjaWZkZWYgQ09ORklHX01BQ0hfSklWRV9TSE9XX0JPT1RMT0FERVIKKwkvKiBEb24ndCBhbGxvdyBhY2Nlc3MgdG8gdGhlIGJvb3Rsb2FkZXIgZnJvbSBsaW51eCAqLworCXsKKwkJLm5hbWUgICAgICAgICAgID0gInVib290IiwKKwkJLm9mZnNldCAgICAgICAgID0gMCwKKwkJLnNpemUgICAgICAgICAgID0gKDE2MCAqIFNaXzFLKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKwl9LAorCisJLyogc3BhcmUgKi8KKyAgICAgICAgeworICAgICAgICAgICAgICAgIC5uYW1lICAgICAgICAgICA9ICJzcGFyZSIsCisgICAgICAgICAgICAgICAgLm9mZnNldCAgICAgICAgID0gKDE3NiAqIFNaXzFLKSwKKyAgICAgICAgICAgICAgICAuc2l6ZSAgICAgICAgICAgPSAoMTYgKiBTWl8xSyksCisgICAgICAgIH0sCisjZW5kaWYKKworCS8qIGJvb3RlZCBpbWFnZXMgKi8KKyAgICAgICAgeworCQkubmFtZSAgICAgICAgICAgPSAia2VybmVsIChybykiLAorCQkub2Zmc2V0ICAgICAgICAgPSAoMjIgKiBTWl8xTSksCisJCS5zaXplICAgICAgICAgICA9ICgyICogU1pfMU0pIC0gKDE5MiAqIFNaXzFLKSwKKwkJLm1hc2tfZmxhZ3MJPSBNVERfV1JJVEVBQkxFLCAvKiBmb3JjZSByZWFkLW9ubHkgKi8KKyAgICAgICAgfSwKKwl7CisJCS5uYW1lCQk9ICJyb290IChybykiLAorCQkub2Zmc2V0CQk9ICgyNCAqIFNaXzFNKSAtICgxOTIgKiBTWl8xSyksCisgICAgICAgICAgICAgICAgLnNpemUJCT0gKDIwICogU1pfMU0pLAorCQkubWFza19mbGFncwk9IE1URF9XUklURUFCTEUsIC8qIGZvcmNlIHJlYWQtb25seSAqLworCX0sCisKKwkvKiB5YWZmcyAqLworCXsKKwkJLm5hbWUJCT0gInlhZmZzIiwKKwkJLm9mZnNldAkJPSAoNDQgKiBTWl8xTSksCisJCS5zaXplCQk9ICgyMCAqIFNaXzFNKSwKKyAgICAgICAgfSwKKworCS8qIGJvb3Rsb2FkZXIgZW52aXJvbm1lbnQgKi8KKwl7CisJCS5uYW1lCQk9ICJlbnYiLAorCQkub2Zmc2V0CQk9ICgxNjAgKiBTWl8xSyksCisJCS5zaXplCQk9ICgxNiAqIFNaXzFLKSwKKwl9LAorCisJLyogdXBncmFkZSBpbWFnZXMgKi8KKwl7CisJCS5uYW1lCQk9ICJ6aW1hZ2UiLAorCQkub2Zmc2V0CQk9ICgxOTIgKiBTWl8xSyksCisJCS5zaXplCQk9ICgyICogU1pfMU0pIC0gKDE5MiAqIFNaXzFLKSwKKyAgICAgICAgfSwgeworCQkubmFtZQkJPSAiY3JhbWZzIiwKKwkJLm9mZnNldAkJPSAoMiAqIFNaXzFNKSwKKwkJLnNpemUJCT0gKDIwICogU1pfMU0pLAorICAgICAgICB9LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX25hbmRfc2V0IGppdmVfbmFuZF9zZXRzW10gPSB7CisJWzBdID0geworCQkubmFtZSAgICAgICAgICAgPSAiZmxhc2giLAorCQkubnJfY2hpcHMgICAgICAgPSAxLAorCQkubnJfcGFydGl0aW9ucyAgPSBBUlJBWV9TSVpFKGppdmVfaW1hZ2VBX25hbmRfcGFydCksCisJCS5wYXJ0aXRpb25zICAgICA9IGppdmVfaW1hZ2VBX25hbmRfcGFydCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3BsYXRmb3JtX25hbmQgaml2ZV9uYW5kX2luZm8gPSB7CisJLyogc2V0IHRha2VuIGZyb20gb3NpcmlzIG5hbmQgdGltaW5ncywgcG9zc2libHkgc3RpbGwgY29uc2VydmF0aXZlICovCisJLnRhY2xzCQk9IDMwLAorCS50d3JwaDAJCT0gNTUsCisJLnR3cnBoMQkJPSA0MCwKKwkuc2V0cwkJPSBqaXZlX25hbmRfc2V0cywKKwkubnJfc2V0cwk9IEFSUkFZX1NJWkUoaml2ZV9uYW5kX3NldHMpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaml2ZV9tdGRzZXQoY2hhciAqb3B0aW9ucykKK3sKKwlzdHJ1Y3QgczNjMjQxMF9uYW5kX3NldCAqbmFuZCA9ICZqaXZlX25hbmRfc2V0c1swXTsKKwl1bnNpZ25lZCBsb25nIHNldDsKKworCWlmIChvcHRpb25zID09IE5VTEwgfHwgb3B0aW9uc1swXSA9PSAnXDAnKQorCQlyZXR1cm4gMDsKKworCWlmIChzdHJpY3Rfc3RydG91bChvcHRpb25zLCAxMCwgJnNldCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcGFyc2UgbXRkc2V0PSVzXG4iLCBvcHRpb25zKTsKKwkJcmV0dXJuIDA7CisJfQorCisJc3dpdGNoIChzZXQpIHsKKwljYXNlIDE6CisJCW5hbmQtPm5yX3BhcnRpdGlvbnMgPSBBUlJBWV9TSVpFKGppdmVfaW1hZ2VCX25hbmRfcGFydCk7CisJCW5hbmQtPnBhcnRpdGlvbnMgPSBqaXZlX2ltYWdlQl9uYW5kX3BhcnQ7CisJY2FzZSAwOgorCQkvKiB0aGlzIGlzIGFscmVhZHkgc2V0dXAgaW4gdGhlIG5hbmQgaW5mbyAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIlVua25vd24gbXRkIHNldCAlbGQgc3BlY2lmaWVkLCIKKwkJICAgICAgICJ1c2luZyBkZWZhdWx0LiIsIHNldCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIHBhcnNlIHRoZSBtdGRzZXQ9IG9wdGlvbiBnaXZlbiB0byB0aGUga2VybmVsIGNvbW1hbmQgbGluZSAqLworX19zZXR1cCgibXRkc2V0PSIsIGppdmVfbXRkc2V0KTsKKworLyogTENEIHRpbWluZyBhbmQgc2V0dXAgKi8KKworI2RlZmluZSBMQ0RfWFJFUwkgKDI0MCkKKyNkZWZpbmUgTENEX1lSRVMJICgzMjApCisjZGVmaW5lIExDRF9MRUZUX01BUkdJTiAgKDEyKQorI2RlZmluZSBMQ0RfUklHSFRfTUFSR0lOICgxMikKKyNkZWZpbmUgTENEX0xPV0VSX01BUkdJTiAoMTIpCisjZGVmaW5lIExDRF9VUFBFUl9NQVJHSU4gKDEyKQorI2RlZmluZSBMQ0RfVlNZTkMJICgyKQorI2RlZmluZSBMQ0RfSFNZTkMJICgyKQorCisjZGVmaW5lIExDRF9SRUZSRVNICSAoNjApCisKKyNkZWZpbmUgTENEX0hUT1QgKExDRF9IU1lOQyArIExDRF9MRUZUX01BUkdJTiArIExDRF9YUkVTICsgTENEX1JJR0hUX01BUkdJTikKKyNkZWZpbmUgTENEX1ZUT1QgKExDRF9WU1lOQyArIExDRF9MT1dFUl9NQVJHSU4gKyBMQ0RfWVJFUyArIExDRF9VUFBFUl9NQVJHSU4pCisKK3N0cnVjdCBzM2MyNDEwZmJfZGlzcGxheSBqaXZlX3ZnZzI0MzJhNF9kaXNwbGF5W10gPSB7CisJWzBdID0geworCQkud2lkdGgJCT0gTENEX1hSRVMsCisJCS5oZWlnaHQJCT0gTENEX1lSRVMsCisJCS54cmVzCQk9IExDRF9YUkVTLAorCQkueXJlcwkJPSBMQ0RfWVJFUywKKwkJLmxlZnRfbWFyZ2luCT0gTENEX0xFRlRfTUFSR0lOLAorCQkucmlnaHRfbWFyZ2luCT0gTENEX1JJR0hUX01BUkdJTiwKKwkJLnVwcGVyX21hcmdpbgk9IExDRF9VUFBFUl9NQVJHSU4sCisJCS5sb3dlcl9tYXJnaW4JPSBMQ0RfTE9XRVJfTUFSR0lOLAorCQkuaHN5bmNfbGVuCT0gTENEX0hTWU5DLAorCQkudnN5bmNfbGVuCT0gTENEX1ZTWU5DLAorCisJCS5waXhjbG9jawk9ICgxMDAwMDAwMDAwMDAwTEwgLworCQkJCSAgIChMQ0RfUkVGUkVTSCAqIExDRF9IVE9UICogTENEX1ZUT1QpKSwKKworCQkuYnBwCQk9IDE2LAorCQkudHlwZQkJPSAoUzNDMjQxMF9MQ0RDT04xX1RGVDE2QlBQIHwKKwkJCQkgICBTM0MyNDEwX0xDRENPTjFfVEZUKSwKKworCQkubGNkY29uNQk9IChTM0MyNDEwX0xDRENPTjVfRlJNNTY1IHwKKwkJCQkgICBTM0MyNDEwX0xDRENPTjVfSU5WVkxJTkUgfAorCQkJCSAgIFMzQzI0MTBfTENEQ09ONV9JTlZWRlJBTUUgfAorCQkJCSAgIFMzQzI0MTBfTENEQ09ONV9JTlZWREVOIHwKKwkJCQkgICBTM0MyNDEwX0xDRENPTjVfUFdSRU4pLAorCX0sCit9OworCisvKiB0b2RvIC0gcHV0IGludG8gZ3BpbyBoZWFkZXIgKi8KKworI2RlZmluZSBTM0MyNDEwX0dQQ0NPTl9NQVNLKHgpCSgzIDw8ICgoeCkgKiAyKSkKKyNkZWZpbmUgUzNDMjQxMF9HUERDT05fTUFTSyh4KQkoMyA8PCAoKHgpICogMikpCisKK3N0cnVjdCBzM2MyNDEwZmJfbWFjaF9pbmZvIGppdmVfbGNkX2NvbmZpZyA9IHsKKwkuZGlzcGxheXMJID0gaml2ZV92Z2cyNDMyYTRfZGlzcGxheSwKKwkubnVtX2Rpc3BsYXlzCSA9IEFSUkFZX1NJWkUoaml2ZV92Z2cyNDMyYTRfZGlzcGxheSksCisJLmRlZmF1bHRfZGlzcGxheSA9IDAsCisKKwkvKiBFbmFibGUgVkRbMi4uN10sIFZEWzEwLi4xNV0sIFZEWzE4Li4yM10gYW5kIFZDTEssIHN5bmNzLCBWREVOCisJICogYW5kIGRpc2FibGUgdGhlIHB1bGwgZG93biByZXNpc3RvcnMgb24gcGlucyB3ZSBhcmUgdXNpbmcgZm9yIExDRAorCSAqIGRhdGEuICovCisKKwkuZ3BjdXAJCT0gKDB4ZiA8PCAxKSB8ICgweDNmIDw8IDEwKSwKKworCS5ncGNjb24JCT0gKFMzQzI0MTBfR1BDMV9WQ0xLICAgfCBTM0MyNDEwX0dQQzJfVkxJTkUgfAorCQkJICAgUzNDMjQxMF9HUEMzX1ZGUkFNRSB8IFMzQzI0MTBfR1BDNF9WTSB8CisJCQkgICBTM0MyNDEwX0dQQzEwX1ZEMiAgIHwgUzNDMjQxMF9HUEMxMV9WRDMgfAorCQkJICAgUzNDMjQxMF9HUEMxMl9WRDQgICB8IFMzQzI0MTBfR1BDMTNfVkQ1IHwKKwkJCSAgIFMzQzI0MTBfR1BDMTRfVkQ2ICAgfCBTM0MyNDEwX0dQQzE1X1ZENyksCisKKwkuZ3BjY29uX21hc2sJPSAoUzNDMjQxMF9HUENDT05fTUFTSygxKSAgfCBTM0MyNDEwX0dQQ0NPTl9NQVNLKDIpICB8CisJCQkgICBTM0MyNDEwX0dQQ0NPTl9NQVNLKDMpICB8IFMzQzI0MTBfR1BDQ09OX01BU0soNCkgIHwKKwkJCSAgIFMzQzI0MTBfR1BDQ09OX01BU0soMTApIHwgUzNDMjQxMF9HUENDT05fTUFTSygxMSkgfAorCQkJICAgUzNDMjQxMF9HUENDT05fTUFTSygxMikgfCBTM0MyNDEwX0dQQ0NPTl9NQVNLKDEzKSB8CisJCQkgICBTM0MyNDEwX0dQQ0NPTl9NQVNLKDE0KSB8IFMzQzI0MTBfR1BDQ09OX01BU0soMTUpKSwKKworCS5ncGR1cAkJPSAoMHgzZiA8PCAyKSB8ICgweDNmIDw8IDEwKSwKKworCS5ncGRjb24JCT0gKFMzQzI0MTBfR1BEMl9WRDEwICB8IFMzQzI0MTBfR1BEM19WRDExIHwKKwkJCSAgIFMzQzI0MTBfR1BENF9WRDEyICB8IFMzQzI0MTBfR1BENV9WRDEzIHwKKwkJCSAgIFMzQzI0MTBfR1BENl9WRDE0ICB8IFMzQzI0MTBfR1BEN19WRDE1IHwKKwkJCSAgIFMzQzI0MTBfR1BEMTBfVkQxOCB8IFMzQzI0MTBfR1BEMTFfVkQxOSB8CisJCQkgICBTM0MyNDEwX0dQRDEyX1ZEMjAgfCBTM0MyNDEwX0dQRDEzX1ZEMjEgfAorCQkJICAgUzNDMjQxMF9HUEQxNF9WRDIyIHwgUzNDMjQxMF9HUEQxNV9WRDIzKSwKKworCS5ncGRjb25fbWFzawk9IChTM0MyNDEwX0dQRENPTl9NQVNLKDIpICB8IFMzQzI0MTBfR1BEQ09OX01BU0soMykgfAorCQkJICAgUzNDMjQxMF9HUERDT05fTUFTSyg0KSAgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDUpIHwKKwkJCSAgIFMzQzI0MTBfR1BEQ09OX01BU0soNikgIHwgUzNDMjQxMF9HUERDT05fTUFTSyg3KSB8CisJCQkgICBTM0MyNDEwX0dQRENPTl9NQVNLKDEwKSB8IFMzQzI0MTBfR1BEQ09OX01BU0soMTEpfAorCQkJICAgUzNDMjQxMF9HUERDT05fTUFTSygxMikgfCBTM0MyNDEwX0dQRENPTl9NQVNLKDEzKXwKKwkJCSAgIFMzQzI0MTBfR1BEQ09OX01BU0soMTQpIHwgUzNDMjQxMF9HUERDT05fTUFTSygxNSkpLAorfTsKKworLyogSUxJOTMyMCBzdXBwb3J0LiAqLworCitzdGF0aWMgdm9pZCBqaXZlX2xjbV9yZXNldCh1bnNpZ25lZCBpbnQgc2V0KQoreworCXByaW50ayhLRVJOX0RFQlVHICIlcyglZClcbiIsIF9fZnVuY19fLCBzZXQpOworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQRzEzLCBzZXQpOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEcxMywgUzNDMjQxMF9HUElPX09VVFBVVCk7Cit9CisKKyN1bmRlZiBMQ0RfVVBQRVJfTUFSR0lOCisjZGVmaW5lIExDRF9VUFBFUl9NQVJHSU4gMgorCitzdGF0aWMgc3RydWN0IGlsaTkzMjBfcGxhdGRhdGEgaml2ZV9sY21fY29uZmlnID0geworCS5oc2l6ZQkJPSBMQ0RfWFJFUywKKwkudnNpemUJCT0gTENEX1lSRVMsCisKKwkucmVzZXQJCT0gaml2ZV9sY21fcmVzZXQsCisJLnN1c3BlbmQJPSBJTEk5MzIwX1NVU1BFTkRfREVFUCwKKworCS5lbnRyeV9tb2RlCT0gSUxJOTMyMF9FTlRSWU1PREVfSUQoMykgfCBJTEk5MzIwX0VOVFJZTU9ERV9CR1IsCisJLmRpc3BsYXkyCT0gKElMSTkzMjBfRElTUExBWTJfRlAoTENEX1VQUEVSX01BUkdJTikgfAorCQkJICAgSUxJOTMyMF9ESVNQTEFZMl9CUChMQ0RfTE9XRVJfTUFSR0lOKSksCisJLmRpc3BsYXkzCT0gMHgwLAorCS5kaXNwbGF5NAk9IDB4MCwKKwkucmdiX2lmMQk9IChJTEk5MzIwX1JHQklGMV9SSU1fUkdCMTggfAorCQkJICAgSUxJOTMyMF9SR0JJRjFfUk0gfCBJTEk5MzIwX1JHQklGMV9DTEtfUkdCSUYpLAorCS5yZ2JfaWYyCT0gSUxJOTMyMF9SR0JJRjJfRFBMLAorCS5pbnRlcmZhY2UyCT0gMHgwLAorCS5pbnRlcmZhY2UzCT0gMHgzLAorCS5pbnRlcmZhY2U0CT0gKElMSTkzMjBfSU5URVJGQUNFNF9SVE5FKDE2KSB8CisJCQkgICBJTEk5MzIwX0lOVEVSRkFDRTRfRElWRSgxKSksCisJLmludGVyZmFjZTUJPSAweDAsCisJLmludGVyZmFjZTYJPSAweDAsCit9OworCisvKiBMQ0QgU1BJIHN1cHBvcnQgKi8KKworc3RhdGljIHZvaWQgaml2ZV9sY2Rfc3BpX2NoaXBzZWxlY3Qoc3RydWN0IHMzYzI0MTBfc3BpZ3Bpb19pbmZvICpzcGksIGludCBjcykKK3sKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BCNywgY3MgPyAwIDogMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9zcGlncGlvX2luZm8gaml2ZV9sY2Rfc3BpID0geworCS5idXNfbnVtCT0gMCwKKwkucGluX2Nsawk9IFMzQzI0MTBfR1BHOCwKKwkucGluX21vc2kJPSBTM0MyNDEwX0dQQjgsCisJLmNoaXBfc2VsZWN0CT0gaml2ZV9sY2Rfc3BpX2NoaXBzZWxlY3QsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBqaXZlX2RldmljZV9sY2RzcGkgPSB7CisJLm5hbWUJCT0gInMzYzI0eHgtc3BpLWdwaW8iLAorCS5pZAkJPSAxLAorCS5udW1fcmVzb3VyY2VzICA9IDAsCisJLmRldi5wbGF0Zm9ybV9kYXRhID0gJmppdmVfbGNkX3NwaSwKK307CisKKy8qIFdNODc1MCBhdWRpbyBjb2RlIFNQSSBkZWZpbml0aW9uICovCisKK3N0YXRpYyB2b2lkIGppdmVfd204NzUwX2NoaXBzZWxlY3Qoc3RydWN0IHMzYzI0MTBfc3BpZ3Bpb19pbmZvICpzcGksIGludCBjcykKK3sKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BIMTAsIGNzID8gMCA6IDEpOworfQorCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfc3BpZ3Bpb19pbmZvIGppdmVfd204NzUwX3NwaSA9IHsKKwkuYnVzX251bQk9IDIsCisJLnBpbl9jbGsJPSBTM0MyNDEwX0dQQjQsCisJLnBpbl9tb3NpCT0gUzNDMjQxMF9HUEI5LAorCS5jaGlwX3NlbGVjdAk9IGppdmVfd204NzUwX2NoaXBzZWxlY3QsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBqaXZlX2RldmljZV93bTg3NTAgPSB7CisJLm5hbWUJCT0gInMzYzI0eHgtc3BpLWdwaW8iLAorCS5pZAkJPSAyLAorCS5udW1fcmVzb3VyY2VzICA9IDAsCisJLmRldi5wbGF0Zm9ybV9kYXRhID0gJmppdmVfd204NzUwX3NwaSwKK307CisKKy8qIEpJVkUgU1BJIGRldmljZXMuICovCisKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gX19pbml0ZGF0YSBqaXZlX3NwaV9kZXZzW10gPSB7CisJWzBdID0geworCQkubW9kYWxpYXMJPSAiVkdHMjQzMkE0IiwKKwkJLmJ1c19udW0JPSAxLAorCQkuY2hpcF9zZWxlY3QJPSAwLAorCQkubW9kZQkJPSBTUElfTU9ERV8zLAkvKiBDUE9MPTEsIENQSEE9MSAqLworCQkubWF4X3NwZWVkX2h6CT0gMTAwMDAwLAorCQkucGxhdGZvcm1fZGF0YQk9ICZqaXZlX2xjbV9jb25maWcsCisJfSwgeworCQkubW9kYWxpYXMJPSAiV004NzUwIiwKKwkJLmJ1c19udW0JPSAyLAorCQkuY2hpcF9zZWxlY3QJPSAwLAorCQkubW9kZQkJPSBTUElfTU9ERV8wLAkvKiBDUE9MPTAsIENQSEE9MCAqLworCQkubWF4X3NwZWVkX2h6CT0gMTAwMDAwLAorCX0sCit9OworCisvKiBJMkMgYnVzIGFuZCBkZXZpY2UgY29uZmlndXJhdGlvbi4gKi8KKworc3RhdGljIHN0cnVjdCBzM2MyNDEwX3BsYXRmb3JtX2kyYyBqaXZlX2kyY19jZmcgPSB7CisJLm1heF9mcmVxCT0gODAgKiAxMDAwLAorCS5idXNfZnJlcQk9IDUwICogMTAwMCwKKwkuZmxhZ3MJCT0gUzNDX0lJQ0ZMR19GSUxURVIsCisJLnNkYV9kZWxheQk9IDIsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIGppdmVfaTJjX2RldnNbXSA9IHsKKwlbMF0gPSB7CisJCUkyQ19CT0FSRF9JTkZPKCJsaXMzMDJkbCIsIDB4MWMpLAorCQkuaXJxCT0gSVJRX0VJTlQxNCwKKwl9LAorfTsKKworLyogVGhlIHBsYXRmb3JtIGRldmljZXMgYmVpbmcgdXNlZC4gKi8KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmppdmVfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CisJJnMzY19kZXZpY2VfdXNiLAorCSZzM2NfZGV2aWNlX3J0YywKKwkmczNjX2RldmljZV93ZHQsCisJJnMzY19kZXZpY2VfaTJjLAorCSZzM2NfZGV2aWNlX2xjZCwKKwkmaml2ZV9kZXZpY2VfbGNkc3BpLAorCSZqaXZlX2RldmljZV93bTg3NTAsCisJJnMzY19kZXZpY2VfbmFuZCwKKwkmczNjX2RldmljZV91c2JnYWRnZXQsCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfdWRjX21hY2hfaW5mbyBqaXZlX3VkY19jZmcgX19pbml0ZGF0YSA9IHsKKwkudmJ1c19waW4JPSBTM0MyNDEwX0dQRzEsCQkvKiBkZXRlY3QgaXMgb24gR1BHMSAqLworfTsKKworLyogSml2ZSBwb3dlciBtYW5hZ2VtZW50IGRldmljZSAqLworCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IGppdmVfcG1fc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqc2QsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwkvKiBXcml0ZSB0aGUgbWFnaWMgdmFsdWUgdS1ib290IHVzZXMgdG8gY2hlY2sgZm9yIHJlc3VtZSBpbnRvCisJICogdGhlIElORk9STTAgcmVnaXN0ZXIsIGFuZCBlbnN1cmUgSU5GT1JNMSBpcyBzZXQgdG8gdGhlCisJICogY29ycmVjdCBhZGRyZXNzIHRvIHJlc3VtZSBmcm9tLiAqLworCisJX19yYXdfd3JpdGVsKDB4MkJFRCwgUzNDMjQxMl9JTkZPUk0wKTsKKwlfX3Jhd193cml0ZWwodmlydF90b19waHlzKHMzYzI0MTBfY3B1X3Jlc3VtZSksIFMzQzI0MTJfSU5GT1JNMSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBqaXZlX3BtX3Jlc3VtZShzdHJ1Y3Qgc3lzX2RldmljZSAqc2QpCit7CisJX19yYXdfd3JpdGVsKDB4MCwgUzNDMjQxMl9JTkZPUk0wKTsKKwlyZXR1cm4gMDsKK30KKworI2Vsc2UKKyNkZWZpbmUgaml2ZV9wbV9zdXNwZW5kIE5VTEwKKyNkZWZpbmUgaml2ZV9wbV9yZXN1bWUgTlVMTAorI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGppdmVfcG1fc3lzY2xhc3MgPSB7CisJLm5hbWUJCT0gImppdmUtcG0iLAorCS5zdXNwZW5kCT0gaml2ZV9wbV9zdXNwZW5kLAorCS5yZXN1bWUJCT0gaml2ZV9wbV9yZXN1bWUsCit9OworCitzdGF0aWMgc3RydWN0IHN5c19kZXZpY2Ugaml2ZV9wbV9zeXNkZXYgPSB7CisJLmNscwkJPSAmaml2ZV9wbV9zeXNjbGFzcywKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBqaXZlX21hcF9pbyh2b2lkKQoreworCXMzYzI0eHhfaW5pdF9pbyhqaXZlX2lvZGVzYywgQVJSQVlfU0laRShqaXZlX2lvZGVzYykpOworCXMzYzI0eHhfaW5pdF9jbG9ja3MoMTIwMDAwMDApOworCXMzYzI0eHhfaW5pdF91YXJ0cyhqaXZlX3VhcnRjZmdzLCBBUlJBWV9TSVpFKGppdmVfdWFydGNmZ3MpKTsKK30KKworc3RhdGljIHZvaWQgaml2ZV9wb3dlcl9vZmYodm9pZCkKK3sKKwlwcmludGsoS0VSTl9JTkZPICJwb3dlcmluZyBzeXN0ZW0gZG93bi4uLlxuIik7CisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BDNSwgMSk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQQzUsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaml2ZV9tYWNoaW5lX2luaXQodm9pZCkKK3sKKwkvKiByZWdpc3RlciBzeXN0ZW0gZGV2aWNlcyBmb3IgbWFuYWdpbmcgbG93IGxldmVsIHN1c3BlbmQgKi8KKworCXN5c2Rldl9jbGFzc19yZWdpc3Rlcigmaml2ZV9wbV9zeXNjbGFzcyk7CisJc3lzZGV2X3JlZ2lzdGVyKCZqaXZlX3BtX3N5c2Rldik7CisKKwkvKiB3cml0ZSBvdXIgc2xlZXAgY29uZmlndXJhdGlvbnMgZm9yIHRoZSBJTy4gUHVsbCBkb3duIGFsbCB1bnVzZWQKKwkgKiBJTywgZW5zdXJlIHRoYXQgd2UgaGF2ZSB0dXJuZWQgb2ZmIGFsbCBwZXJpcGhlcmFscyB3ZSBkbyBub3QKKwkgKiBuZWVkLCBhbmQgY29uZmlndXJlIHRoZSBvbmVzIHdlIGRvIG5lZWQuICovCisKKwkvKiBQb3J0IEIgc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9JTigwKSAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9ISUdIKDIpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDQpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDUpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDYpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9ISUdIKDcpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDgpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDkpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEwKSwgUzNDMjQxMl9HUEJTTFBDT04pOworCisJLyogUG9ydCBDIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fUFVMTCgwKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgyKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg0KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg1KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fTE9XKDYpICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg2KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg3KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg4KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg5KSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTEpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEyKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTQpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDE1KSwgUzNDMjQxMl9HUENTTFBDT04pOworCisJLyogUG9ydCBEIHNsZWVwICovCisKKwlfX3Jhd193cml0ZWwoUzNDMjQxMl9TTFBDT05fQUxMX1BVTEwsIFMzQzI0MTJfR1BEU0xQQ09OKTsKKworCS8qIFBvcnQgRiBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX0xPVygwKSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0xPVygxKSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0xPVygyKSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0VJTlQoMykgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0VJTlQoNCkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0VJTlQoNSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0VJTlQoNikgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0VJTlQoNyksIFMzQzI0MTJfR1BGU0xQQ09OKTsKKworCS8qIFBvcnQgRyBzbGVlcCAqLworCisJX19yYXdfd3JpdGVsKFMzQzI0MTJfU0xQQ09OX0lOKDApICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigxKSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMikgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDMpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig0KSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oNSkgICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX0lOKDYpICAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig3KSAgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCg4KSAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoOSkgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigxMCkgICB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fUFVMTCgxMSkgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTIpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEzKSB8CisJCSAgICAgUzNDMjQxMl9TTFBDT05fSU4oMTQpICAgfAorCQkgICAgIFMzQzI0MTJfU0xQQ09OX1BVTEwoMTUpLCBTM0MyNDEyX0dQR1NMUENPTik7CisKKwkvKiBQb3J0IEggc2xlZXAgKi8KKworCV9fcmF3X3dyaXRlbChTM0MyNDEyX1NMUENPTl9QVUxMKDApIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDEpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDIpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDMpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDQpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDUpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDYpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig3KSAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTig4KSAgIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9QVUxMKDkpIHwKKwkJICAgICBTM0MyNDEyX1NMUENPTl9JTigxMCksIFMzQzI0MTJfR1BIU0xQQ09OKTsKKworCS8qIGluaXRpYWxpc2UgdGhlIHBvd2VyIG1hbmFnZW1lbnQgbm93IHdlJ3ZlIHNldHVwIGV2ZXJ5dGhpbmcuICovCisKKwlzM2MyNDEwX3BtX2luaXQoKTsKKworCXMzY19kZXZpY2VfbmFuZC5kZXYucGxhdGZvcm1fZGF0YSA9ICZqaXZlX25hbmRfaW5mbzsKKworCS8qIGluaXRpYWxpc2UgdGhlIHNwaSAqLworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQRzEzLCAwKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BHMTMsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQQjcsIDEpOworCXMzYzI0MTBfZ3Bpb19jZmdwaW4oUzNDMjQxMF9HUEI3LCBTM0MyNDEwX0dQSU9fT1VUUFVUKTsKKworCXMzYzI0MTBfZ3Bpb19zZXRwaW4oUzNDMjQxMF9HUEI2LCAwKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BCNiwgUzNDMjQxMF9HUElPX09VVFBVVCk7CisKKwlzM2MyNDEwX2dwaW9fc2V0cGluKFMzQzI0MTBfR1BHOCwgMSk7CisJczNjMjQxMF9ncGlvX2NmZ3BpbihTM0MyNDEwX0dQRzgsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworCisJLyogaW5pdGlhbGlzZSB0aGUgV004NzUwIHNwaSAqLworCisJczNjMjQxMF9ncGlvX3NldHBpbihTM0MyNDEwX0dQSDEwLCAxKTsKKwlzM2MyNDEwX2dwaW9fY2ZncGluKFMzQzI0MTBfR1BIMTAsIFMzQzI0MTBfR1BJT19PVVRQVVQpOworCisJLyogVHVybiBvZmYgc3VzcGVuZCBvbiBib3RoIFVTQiBwb3J0cywgYW5kIHN3aXRjaCB0aGUKKwkgKiBzZWxlY3RhYmxlIFVTQiBwb3J0IHRvIFVTQiBkZXZpY2UgbW9kZS4gKi8KKworCXMzYzI0MTBfbW9kaWZ5X21pc2NjcihTM0MyNDEwX01JU0NDUl9VU0JIT1NUIHwKKwkJCSAgICAgIFMzQzI0MTBfTUlTQ0NSX1VTQlNVU1BORDAgfAorCQkJICAgICAgUzNDMjQxMF9NSVNDQ1JfVVNCU1VTUE5EMSwgMHgwKTsKKworCXMzYzI0eHhfdWRjX3NldF9wbGF0ZGF0YSgmaml2ZV91ZGNfY2ZnKTsKKwlzM2MyNHh4X2ZiX3NldF9wbGF0ZGF0YSgmaml2ZV9sY2RfY29uZmlnKTsKKworCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGppdmVfc3BpX2RldnMsIEFSUkFZX1NJWkUoaml2ZV9zcGlfZGV2cykpOworCisJczNjX2RldmljZV9pMmMuZGV2LnBsYXRmb3JtX2RhdGEgPSAmaml2ZV9pMmNfY2ZnOworCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIGppdmVfaTJjX2RldnMsIEFSUkFZX1NJWkUoaml2ZV9pMmNfZGV2cykpOworCisJcG1fcG93ZXJfb2ZmID0gaml2ZV9wb3dlcl9vZmY7CisKKwlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhqaXZlX2RldmljZXMsIEFSUkFZX1NJWkUoaml2ZV9kZXZpY2VzKSk7Cit9CisKK01BQ0hJTkVfU1RBUlQoSklWRSwgIkpJVkUiKQorCS8qIE1haW50YWluZXI6IEJlbiBEb29rcyA8YmVuQGZsdWZmLm9yZz4gKi8KKwkucGh5c19pbwk9IFMzQzI0MTBfUEFfVUFSVCwKKwkuaW9fcGdfb2Zmc3QJPSAoKCh1MzIpUzNDMjRYWF9WQV9VQVJUKSA+PiAxOCkgJiAweGZmZmMsCisJLmJvb3RfcGFyYW1zCT0gUzNDMjQxMF9TRFJBTV9QQSArIDB4MTAwLAorCisJLmluaXRfaXJxCT0gczNjMjR4eF9pbml0X2lycSwKKwkubWFwX2lvCQk9IGppdmVfbWFwX2lvLAorCS5pbml0X21hY2hpbmUJPSBqaXZlX21hY2hpbmVfaW5pdCwKKwkudGltZXIJCT0gJnMzYzI0eHhfdGltZXIsCitNQUNISU5FX0VORApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvS2NvbmZpZwppbmRleCBmMTkxNWJkLi4yNWRlMDQyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvS2NvbmZpZwpAQCAtMjksNiArMjksNyBAQAogCWJvb2wgIlNpbXRlYyBFbGVjdHJvbmljcyBBTlVCSVMiCiAJc2VsZWN0IENQVV9TM0MyNDQwCiAJc2VsZWN0IFBNX1NJTVRFQyBpZiBQTQorCXNlbGVjdCBIQVZFX1BBVEFfUExBVEZPUk0KIAloZWxwCiAJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIFNpbXRlYyBFbGVjdHJvbmljcyBBTlVCSVMKIAkgIGRldmVsb3BtZW50IHN5c3RlbQpAQCAtNjcsNiArNjgsMTEgQEAKIAlkZWZhdWx0IHkgaWYgQVJDSF9TM0MyNDQwCiAJc2VsZWN0IENQVV9TM0MyNDQwCiAKK2NvbmZpZyBNQUNIX0FUMjQ0MEVWQgorCWJvb2wgIkF2YW50ZWNoIEFUMjQ0MEVWQiBkZXZlbG9wbWVudCBib2FyZCIKKwlzZWxlY3QgQ1BVX1MzQzI0NDAKKwloZWxwCisJICBTYXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIEFUMjQ0MEVWQiBkZXZlbG9wbWVudCBib2FyZAogCiBlbmRtZW51CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9NYWtlZmlsZSBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9NYWtlZmlsZQppbmRleCBjODFlZDYyLi4wYjQ0NDBlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL01ha2VmaWxlCkBAIC0yMSwzICsyMSw0IEBACiBvYmotJChDT05GSUdfTUFDSF9SWDM3MTUpCSs9IG1hY2gtcngzNzE1Lm8KIG9iai0kKENPTkZJR19BUkNIX1MzQzI0NDApCSs9IG1hY2gtc21kazI0NDAubwogb2JqLSQoQ09ORklHX01BQ0hfTkVYQ09ERVJfMjQ0MCkgKz0gbWFjaC1uZXhjb2Rlci5vCitvYmotJChDT05GSUdfTUFDSF9BVDI0NDBFVkIpICs9IG1hY2gtYXQyNDQwZXZiLm8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWFudWJpcy5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYW51YmlzLmMKaW5kZXggNDcyNTg5MS4uMDlhZjhiMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYW51YmlzLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYW51YmlzLmMKQEAgLTEsNiArMSw2IEBACiAvKiBsaW51eC9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hbnViaXMuYwogICoKLSAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA1IFNpbXRlYyBFbGVjdHJvbmljcworICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKICAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCiAgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CiAgKgpAQCAtMTcsNiArMTcsOCBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2F0YV9wbGF0Zm9ybS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogCiAjaW5jbHVkZSA8bGludXgvc201MDEuaD4KICNpbmNsdWRlIDxsaW51eC9zbTUwMS1yZWdzLmg+CkBAIC0yNDEsMTQgKzI0MywxOCBAQAogCiAvKiBJREUgY2hhbm5lbHMgKi8KIAorc3RydWN0IHBhdGFfcGxhdGZvcm1faW5mbyBhbnViaXNfaWRlX3BsYXRkYXRhID0geworCS5pb3BvcnRfc2hpZnQJPSA1LAorfTsKKwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhbnViaXNfaWRlMF9yZXNvdXJjZVtdID0gewogCXsKIAkJLnN0YXJ0CT0gUzNDMjQxMF9DUzMsCiAJCS5lbmQJPSBTM0MyNDEwX0NTMyArICg4KjMyKSAtIDEsCiAJCS5mbGFncwk9IElPUkVTT1VSQ0VfTUVNLAogCX0sIHsKLQkJLnN0YXJ0CT0gUzNDMjQxMF9DUzMgKyAoMTw8MjYpLAotCQkuZW5kCT0gUzNDMjQxMF9DUzMgKyAoMTw8MjYpICsgKDgqMzIpIC0gMSwKKwkJLnN0YXJ0CT0gUzNDMjQxMF9DUzMgKyAoMTw8MjYpICsgKDYqMzIpLAorCQkuZW5kCT0gUzNDMjQxMF9DUzMgKyAoMTw8MjYpICsgKDcqMzIpIC0gMSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCiAJfSwgewogCQkuc3RhcnQJPSBJUlFfSURFMCwKQEAgLTI1OCwxMCArMjY0LDE0IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhbnViaXNfZGV2aWNlX2lkZTAgPSB7Ci0JLm5hbWUJCT0gInNpbXRlYy1pZGUiLAorCS5uYW1lCQk9ICJwYXRhX3BsYXRmb3JtIiwKIAkuaWQJCT0gMCwKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoYW51YmlzX2lkZTBfcmVzb3VyY2UpLAogCS5yZXNvdXJjZQk9IGFudWJpc19pZGUwX3Jlc291cmNlLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJmFudWJpc19pZGVfcGxhdGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzayA9IH4wLAorCX0sCiB9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGFudWJpc19pZGUxX3Jlc291cmNlW10gPSB7CkBAIC0yNzAsOCArMjgwLDggQEAKIAkJLmVuZAk9IFMzQzI0MTBfQ1M0ICsgKDgqMzIpIC0gMSwKIAkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCiAJfSwgewotCQkuc3RhcnQJPSBTM0MyNDEwX0NTNCArICgxPDwyNiksCi0JCS5lbmQJPSBTM0MyNDEwX0NTNCArICgxPDwyNikgKyAoOCozMikgLSAxLAorCQkuc3RhcnQJPSBTM0MyNDEwX0NTNCArICgxPDwyNikgKyAoNiozMiksCisJCS5lbmQJPSBTM0MyNDEwX0NTNCArICgxPDwyNikgKyAoNyozMikgLSAxLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKIAl9LCB7CiAJCS5zdGFydAk9IElSUV9JREUwLApAQCAtMjgwLDEyICsyOTAsMTUgQEAKIAl9LAogfTsKIAotCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBhbnViaXNfZGV2aWNlX2lkZTEgPSB7Ci0JLm5hbWUJCT0gInNpbXRlYy1pZGUiLAorCS5uYW1lCQk9ICJwYXRhX3BsYXRmb3JtIiwKIAkuaWQJCT0gMSwKIAkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUoYW51YmlzX2lkZTFfcmVzb3VyY2UpLAogCS5yZXNvdXJjZQk9IGFudWJpc19pZGUxX3Jlc291cmNlLAorCS5kZXYJPSB7CisJCS5wbGF0Zm9ybV9kYXRhID0gJmFudWJpc19pZGVfcGxhdGRhdGEsCisJCS5jb2hlcmVudF9kbWFfbWFzayA9IH4wLAorCX0sCiB9OwogCiAvKiBBc2l4IEFYODg3OTYgMTAvMTAwIGV0aGVybmV0IGNvbnRyb2xsZXIgKi8KQEAgLTQwOSw2ICs0MjIsMTUgQEAKIAkmczNjMjR4eF91Y2xrLAogfTsKIAorLyogSTJDIGRldmljZXMuICovCisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2JvYXJkX2luZm8gYW51YmlzX2kyY19kZXZzW10gX19pbml0ZGF0YSA9IHsKKwl7CisJCUkyQ19CT0FSRF9JTkZPKCJ0cHM2NTAxMSIsIDB4NDgpLAorCQkuaXJxCT0gSVJRX0VJTlQyMCwKKwl9Cit9OworCiBzdGF0aWMgdm9pZCBfX2luaXQgYW51YmlzX21hcF9pbyh2b2lkKQogewogCS8qIGluaXRpYWxpc2UgdGhlIGNsb2NrcyAqLwpAQCAtNDQ4LDYgKzQ3MCw5IEBACiBzdGF0aWMgdm9pZCBfX2luaXQgYW51YmlzX2luaXQodm9pZCkKIHsKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhhbnViaXNfZGV2aWNlcywgQVJSQVlfU0laRShhbnViaXNfZGV2aWNlcykpOworCisJaTJjX3JlZ2lzdGVyX2JvYXJkX2luZm8oMCwgYW51YmlzX2kyY19kZXZzLAorCQkJCUFSUkFZX1NJWkUoYW51YmlzX2kyY19kZXZzKSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYXQyNDQwZXZiLmMgYi9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1hdDI0NDBldmIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWUzYzdmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtYXQyNDQwZXZiLmMKQEAgLTAsMCArMSwxOTggQEAKKy8qIGxpbnV4L2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLWF0MjQ0MGV2Yi5jCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IFJhbWF4IExvIDxyYW1heGxvQGdtYWlsLmNvbT4KKyAqICAgICAgQmFzZWQgb24gbWFjaC1hbnViaXMuYyBieSBCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKiAgICAgIGFuZCBtb2RpZmljYXRpb25zIGJ5IFNCWiA8c2J6QHNwZ3VpLm9yZz4gYW5kCisgKiAgICAgIFdlaWJpbmcgPGh0dHA6Ly93ZWliaW5nLmJsb2didXMuY29tPgorICoKKyAqIEZvciBwcm9kdWN0IGluZm9ybWF0aW9uLCB2aXNpdCBodHRwOi8vd3d3LmFybTllLmNvbS8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsX2NvcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9kbTkwMDAuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1tZW0uaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWxjZC5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9uYW5kLmg+CisKKyNpbmNsdWRlIDxsaW51eC9tdGQvbXRkLmg+CisjaW5jbHVkZSA8bGludXgvbXRkL25hbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvbmFuZF9lY2MuaD4KKyNpbmNsdWRlIDxsaW51eC9tdGQvcGFydGl0aW9ucy5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvZGV2cy5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisKK3N0YXRpYyBzdHJ1Y3QgbWFwX2Rlc2MgYXQyNDQwZXZiX2lvZGVzY1tdIF9faW5pdGRhdGEgPSB7CisJLyogTm90aGluZyBoZXJlICovCit9OworCisjZGVmaW5lIFVDT04gUzNDMjQxMF9VQ09OX0RFRkFVTFQKKyNkZWZpbmUgVUxDT04gKFMzQzI0MTBfTENPTl9DUzggfCBTM0MyNDEwX0xDT05fUE5PTkUpCisjZGVmaW5lIFVGQ09OIChTM0MyNDEwX1VGQ09OX1JYVFJJRzggfCBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFKQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgYXQyNDQwZXZiX3NlcmlhbF9jbG9ja3NbXSA9IHsKKwlbMF0gPSB7CisJCS5uYW1lCQk9ICJ1Y2xrIiwKKwkJLmRpdmlzb3IJPSAxLAorCQkubWluX2JhdWQJPSAwLAorCQkubWF4X2JhdWQJPSAwLAorCX0sCisJWzFdID0geworCQkubmFtZQkJPSAicGNsayIsCisJCS5kaXZpc29yCT0gMSwKKwkJLm1pbl9iYXVkCT0gMCwKKwkJLm1heF9iYXVkCT0gMCwKKwl9Cit9OworCisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnIGF0MjQ0MGV2Yl91YXJ0Y2Znc1tdIF9faW5pdGRhdGEgPSB7CisJWzBdID0geworCQkuaHdwb3J0CSAgICAgPSAwLAorCQkuZmxhZ3MJICAgICA9IDAsCisJCS51Y29uCSAgICAgPSBVQ09OLAorCQkudWxjb24JICAgICA9IFVMQ09OLAorCQkudWZjb24JICAgICA9IFVGQ09OLAorCQkuY2xvY2tzCSAgICAgPSBhdDI0NDBldmJfc2VyaWFsX2Nsb2NrcywKKwkJLmNsb2Nrc19zaXplID0gQVJSQVlfU0laRShhdDI0NDBldmJfc2VyaWFsX2Nsb2NrcyksCisJfSwKKwlbMV0gPSB7CisJCS5od3BvcnQJICAgICA9IDEsCisJCS5mbGFncwkgICAgID0gMCwKKwkJLnVjb24JICAgICA9IFVDT04sCisJCS51bGNvbgkgICAgID0gVUxDT04sCisJCS51ZmNvbgkgICAgID0gVUZDT04sCisJCS5jbG9ja3MJICAgICA9IGF0MjQ0MGV2Yl9zZXJpYWxfY2xvY2tzLAorCQkuY2xvY2tzX3NpemUgPSBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9zZXJpYWxfY2xvY2tzKSwKKwl9LAorfTsKKworLyogTkFORCBGbGFzaCBvbiBBVDI0NDBFVkIgYm9hcmQgKi8KKworc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGF0MjQ0MGV2Yl9kZWZhdWx0X25hbmRfcGFydFtdID0geworCVswXSA9IHsKKwkJLm5hbWUJPSAiQm9vdCBBZ2VudCIsCisJCS5zaXplCT0gU1pfMjU2SywKKwkJLm9mZnNldAk9IDAsCisJfSwKKwlbMV0gPSB7CisJCS5uYW1lCT0gIktlcm5lbCIsCisJCS5zaXplCT0gU1pfMk0sCisJCS5vZmZzZXQJPSBTWl8yNTZLLAorCX0sCisJWzJdID0geworCQkubmFtZQk9ICJSb290IiwKKwkJLm9mZnNldAk9IFNaXzI1NksgKyBTWl8yTSwKKwkJLnNpemUJPSBNVERQQVJUX1NJWl9GVUxMLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHMzYzI0MTBfbmFuZF9zZXQgYXQyNDQwZXZiX25hbmRfc2V0c1tdID0geworCVswXSA9IHsKKwkJLm5hbWUJCT0gIm5hbmQiLAorCQkubnJfY2hpcHMJPSAxLAorCQkubnJfcGFydGl0aW9ucwk9IEFSUkFZX1NJWkUoYXQyNDQwZXZiX2RlZmF1bHRfbmFuZF9wYXJ0KSwKKwkJLnBhcnRpdGlvbnMJPSBhdDI0NDBldmJfZGVmYXVsdF9uYW5kX3BhcnQsCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjQxMF9wbGF0Zm9ybV9uYW5kIGF0MjQ0MGV2Yl9uYW5kX2luZm8gPSB7CisJLnRhY2xzCQk9IDI1LAorCS50d3JwaDAJCT0gNTUsCisJLnR3cnBoMQkJPSA0MCwKKwkubnJfc2V0cwk9IEFSUkFZX1NJWkUoYXQyNDQwZXZiX25hbmRfc2V0cyksCisJLnNldHMJCT0gYXQyNDQwZXZiX25hbmRfc2V0cywKK307CisKKy8qIERNOTAwMEFFUCAxMC8xMDAgZXRoZXJuZXQgY29udHJvbGxlciAqLworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGF0MjQ0MGV2Yl9kbTlrX3Jlc291cmNlW10gPSB7CisJWzBdID0geworCQkuc3RhcnQgPSBTM0MyNDEwX0NTMywKKwkJLmVuZCAgID0gUzNDMjQxMF9DUzMgKyAzLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTQorCX0sCisJWzFdID0geworCQkuc3RhcnQgPSBTM0MyNDEwX0NTMyArIDQsCisJCS5lbmQgICA9IFMzQzI0MTBfQ1MzICsgNywKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0KKwl9LAorCVsyXSA9IHsKKwkJLnN0YXJ0ID0gSVJRX0VJTlQ3LAorCQkuZW5kICAgPSBJUlFfRUlOVDcsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRIHwgSU9SRVNPVVJDRV9JUlFfSElHSEVER0UsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBkbTkwMDBfcGxhdF9kYXRhIGF0MjQ0MGV2Yl9kbTlrX3BkYXRhID0geworCS5mbGFncwkJPSAoRE05MDAwX1BMQVRGXzE2QklUT05MWSB8IERNOTAwMF9QTEFURl9OT19FRVBST00pLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgYXQyNDQwZXZiX2RldmljZV9ldGggPSB7CisJLm5hbWUJCT0gImRtOTAwMCIsCisJLmlkCQk9IC0xLAorCS5udW1fcmVzb3VyY2VzCT0gQVJSQVlfU0laRShhdDI0NDBldmJfZG05a19yZXNvdXJjZSksCisJLnJlc291cmNlCT0gYXQyNDQwZXZiX2RtOWtfcmVzb3VyY2UsCisJLmRldgkJPSB7CisJCS5wbGF0Zm9ybV9kYXRhCT0gJmF0MjQ0MGV2Yl9kbTlrX3BkYXRhLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYXQyNDQwZXZiX2RldmljZXNbXSBfX2luaXRkYXRhID0geworCSZzM2NfZGV2aWNlX3VzYiwKKwkmczNjX2RldmljZV93ZHQsCisJJnMzY19kZXZpY2VfYWRjLAorCSZzM2NfZGV2aWNlX2kyYywKKwkmczNjX2RldmljZV9ydGMsCisJJnMzY19kZXZpY2VfbmFuZCwKKwkmYXQyNDQwZXZiX2RldmljZV9ldGgsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYXQyNDQwZXZiX21hcF9pbyh2b2lkKQoreworCXMzY19kZXZpY2VfbmFuZC5kZXYucGxhdGZvcm1fZGF0YSA9ICZhdDI0NDBldmJfbmFuZF9pbmZvOworCisJczNjMjR4eF9pbml0X2lvKGF0MjQ0MGV2Yl9pb2Rlc2MsIEFSUkFZX1NJWkUoYXQyNDQwZXZiX2lvZGVzYykpOworCXMzYzI0eHhfaW5pdF9jbG9ja3MoMTY5MzQ0MDApOworCXMzYzI0eHhfaW5pdF91YXJ0cyhhdDI0NDBldmJfdWFydGNmZ3MsIEFSUkFZX1NJWkUoYXQyNDQwZXZiX3VhcnRjZmdzKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhdDI0NDBldmJfaW5pdCh2b2lkKQoreworCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGF0MjQ0MGV2Yl9kZXZpY2VzLCBBUlJBWV9TSVpFKGF0MjQ0MGV2Yl9kZXZpY2VzKSk7Cit9CisKKworTUFDSElORV9TVEFSVChBVDI0NDBFVkIsICJBVDI0NDBFVkIiKQorCS5waHlzX2lvCT0gUzNDMjQxMF9QQV9VQVJULAorCS5pb19wZ19vZmZzdAk9ICgoKHUzMilTM0MyNFhYX1ZBX1VBUlQpID4+IDE4KSAmIDB4ZmZmYywKKwkuYm9vdF9wYXJhbXMJPSBTM0MyNDEwX1NEUkFNX1BBICsgMHgxMDAsCisJLm1hcF9pbwkJPSBhdDI0NDBldmJfbWFwX2lvLAorCS5pbml0X21hY2hpbmUJPSBhdDI0NDBldmJfaW5pdCwKKwkuaW5pdF9pcnEJPSBzM2MyNHh4X2luaXRfaXJxLAorCS50aW1lcgkJPSAmczNjMjR4eF90aW1lciwKK01BQ0hJTkVfRU5ECmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXMzYzI0NDAvbWFjaC1vc2lyaXMuYyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLW9zaXJpcy5jCmluZGV4IDhhOGFjZGIuLmFmOTk2YjAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLW9zaXJpcy5jCisrKyBiL2FyY2gvYXJtL21hY2gtczNjMjQ0MC9tYWNoLW9zaXJpcy5jCkBAIC0xLDYgKzEsNiBAQAogLyogbGludXgvYXJjaC9hcm0vbWFjaC1zM2MyNDQwL21hY2gtb3NpcmlzLmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKICAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCiAgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CiAgKgpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAKICNpbmNsdWRlIDxhc20vbWFjaC9hcmNoLmg+CiAjaW5jbHVkZSA8YXNtL21hY2gvbWFwLmg+CkBAIC0zMjIsNiArMzIzLDE1IEBACiAJLmNscwkJPSAmb3NpcmlzX3BtX3N5c2NsYXNzLAogfTsKIAorLyogSTJDIGRldmljZXMgZml0dGVkLiAqLworCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIG9zaXJpc19pMmNfZGV2c1tdIF9faW5pdGRhdGEgPSB7CisJeworCQlJMkNfQk9BUkRfSU5GTygidHBzNjUwMTEiLCAweDQ4KSwKKwkJLmlycQk9IElSUV9FSU5UMjAsCisJfSwKK307CisKIC8qIFN0YW5kYXJkIE9zaXJpcyBkZXZpY2VzICovCiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvc2lyaXNfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7CkBAIC0zODgsNiArMzk4LDkgQEAKIAlzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJm9zaXJpc19wbV9zeXNjbGFzcyk7CiAJc3lzZGV2X3JlZ2lzdGVyKCZvc2lyaXNfcG1fc3lzZGV2KTsKIAorCWkyY19yZWdpc3Rlcl9ib2FyZF9pbmZvKDAsIG9zaXJpc19pMmNfZGV2cywKKwkJCQlBUlJBWV9TSVpFKG9zaXJpc19pMmNfZGV2cykpOworCiAJcGxhdGZvcm1fYWRkX2RldmljZXMob3NpcmlzX2RldmljZXMsIEFSUkFZX1NJWkUob3NpcmlzX2RldmljZXMpKTsKIH07CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtczNjMjQ0My9jbG9jay5jIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQzL2Nsb2NrLmMKaW5kZXggYjQyZjk1Ni4uMTdmMDY0ZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1zM2MyNDQzL2Nsb2NrLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1zM2MyNDQzL2Nsb2NrLmMKQEAgLTgxLDcgKzgxLDcgQEAKIAllbHNlCiAJCWNsa2NvbiAmPSB+Y2xvY2tzOwogCi0JX19yYXdfd3JpdGVsKGNsa2NvbiwgUzNDMjQ0M19IQ0xLQ09OKTsKKwlfX3Jhd193cml0ZWwoY2xrY29uLCBTM0MyNDQzX1BDTEtDT04pOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMjEsNyArMjIxLDYgQEAKIAkuZ2V0X3JhdGUJPSBzM2MyNDQzX2dldHJhdGVfbWRpdmNsaywKIH07CiAKLQogc3RhdGljIGludCBzM2MyNDQzX3NldHBhcmVudF9tc3lzY2xrKHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQogewogCXVuc2lnbmVkIGxvbmcgY2xrc3JjID0gX19yYXdfcmVhZGwoUzNDMjQ0M19DTEtTUkMpOwpAQCAtMjQ5LDYgKzI0OCw0NiBAQAogCS5zZXRfcGFyZW50CT0gczNjMjQ0M19zZXRwYXJlbnRfbXN5c2NsaywKIH07CiAKKy8qIGFybWRpdgorICoKKyAqIHRoaXMgY2xvY2sgaXMgc291cmNlZCBmcm9tIG1zeXNjbGsgYW5kIGNhbiBoYXZlIGEgbnVtYmVyIG9mCisgKiBkaXZpZGVyIHZhbHVlcyBhcHBsaWVkIHRvIGl0IHRvIHRoZW4gYmUgZmVkIGludG8gYXJtY2xrLgorKi8KKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX2FybWRpdiA9IHsKKwkubmFtZQkJPSAiYXJtZGl2IiwKKwkuaWQJCT0gLTEsCisJLnBhcmVudAkJPSAmY2xrX21zeXNjbGssCit9OworCisvKiBhcm1jbGsKKyAqCisgKiB0aGlzIGlzIHRoZSBjbG9jayBmZWQgaW50byB0aGUgQVJNIGNvcmUgaXRzZWxmLCBlaXRoZXIgZnJvbQorICogYXJtZGl2IG9yIGZyb20gaGNsay4KKyAqLworCitzdGF0aWMgaW50IHMzYzI0NDNfc2V0cGFyZW50X2FybWNsayhzdHJ1Y3QgY2xrICpjbGssIHN0cnVjdCBjbGsgKnBhcmVudCkKK3sKKwl1bnNpZ25lZCBsb25nIGNsa2RpdjA7CisKKwljbGtkaXYwID0gX19yYXdfcmVhZGwoUzNDMjQ0M19DTEtESVYwKTsKKworCWlmIChwYXJlbnQgPT0gJmNsa19hcm1kaXYpCisJCWNsa2RpdjAgJj0gflMzQzI0NDNfQ0xLRElWMF9EVlM7CisJZWxzZSBpZiAocGFyZW50ID09ICZjbGtfaCkKKwkJY2xrZGl2MCB8PSBTM0MyNDQzX0NMS0RJVjBfRFZTOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX3Jhd193cml0ZWwoY2xrZGl2MCwgUzNDMjQ0M19DTEtESVYwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBjbGsgY2xrX2FybSA9IHsKKwkubmFtZQkJPSAiYXJtY2xrIiwKKwkuaWQJCT0gLTEsCisJLnNldF9wYXJlbnQJPSBzM2MyNDQzX3NldHBhcmVudF9hcm1jbGssCit9OwogCiAvKiBlc3lzY2xrCiAgKgpAQCAtNjM5LDYgKzY3OCwyOSBAQAogCS5yb3VuZF9yYXRlCT0gczNjMjQ0M19yb3VuZHJhdGVfY2xrc3JjMjU2LAogfTsKIAorLyogcHJlZGl2CisgKgorICogdGhpcyBkaXZpZGVzIHRoZSBtc3lzY2xrIGRvd24gdG8gcGFzcyB0byBoL3AvZXRjLgorICovCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHMzYzI0NDNfcHJlZGl2X2dldHJhdGUoc3RydWN0IGNsayAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7CisJdW5zaWduZWQgbG9uZyBjbGtkaXYwID0gX19yYXdfcmVhZGwoUzNDMjQ0M19DTEtESVYwKTsKKworCWNsa2RpdjAgJj0gUzNDMjQ0M19DTEtESVYwX1BSRURJVl9NQVNLOworCWNsa2RpdjAgPj49IFMzQzI0NDNfQ0xLRElWMF9QUkVESVZfU0hJRlQ7CisKKwlyZXR1cm4gcmF0ZSAvIChjbGtkaXYwICsgMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa19wcmVkaXYgPSB7CisJLm5hbWUJCT0gInByZWRpdiIsCisJLmlkCQk9IC0xLAorCS5wYXJlbnQJCT0gJmNsa19tc3lzY2xrLAorCS5nZXRfcmF0ZQk9IHMzYzI0NDNfcHJlZGl2X2dldHJhdGUsCit9OworCiAvKiBzdGFuZGFyZCBjbG9jayBkZWZpbml0aW9ucyAqLwogCiBzdGF0aWMgc3RydWN0IGNsayBpbml0X2Nsb2Nrc19kaXNhYmxlW10gPSB7CkBAIC04ODcsNiArOTQ5LDE1IEBACiAJfQogCiAJY2xrX2luaXRfc2V0X3BhcmVudCgmY2xrX21zeXNjbGssIHBhcmVudCk7CisKKwkvKiBhcm0gKi8KKworCWlmIChfX3Jhd19yZWFkbChTM0MyNDQzX0NMS0RJVjApICYgUzNDMjQ0M19DTEtESVYwX0RWUykKKwkJcGFyZW50ID0gJmNsa19oOworCWVsc2UKKwkJcGFyZW50ID0gJmNsa19hcm1kaXY7CisKKwljbGtfaW5pdF9zZXRfcGFyZW50KCZjbGtfYXJtLCBwYXJlbnQpOwogfQogCiAvKiBhcm1kaXYgZGl2aXNvciB0YWJsZSAqLwpAQCAtOTA5LDEwICs5ODAsOSBAQAogCXJldHVybiBhcm1kaXZbY2xrY29uMCA+PiBTM0MyNDQzX0NMS0RJVjBfQVJNRElWX1NISUZUXTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHMzYzI0NDNfZ2V0X3ByZWRpdih1bnNpZ25lZCBsb25nIGNsa2NvbjApCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgczNjMjQ0M19nZXRfaGRpdih1bnNpZ25lZCBsb25nIGNsa2NvbjApCiB7Ci0JY2xrY29uMCAmPSBTM0MyNDQzX0NMS0RJVjBfUFJFRElWX01BU0s7Ci0JY2xrY29uMCA+Pj0gUzNDMjQ0M19DTEtESVYwX1BSRURJVl9TSElGVDsKKwljbGtjb24wICY9IFMzQzI0NDNfQ0xLRElWMF9IQ0xLRElWX01BU0s7CiAKIAlyZXR1cm4gY2xrY29uMCArIDE7CiB9CkBAIC05MzYsNiArMTAwNiw5IEBACiAJJmNsa19oc3NwaSwKIAkmY2xrX2hzbW1jX2RpdiwKIAkmY2xrX2hzbW1jLAorCSZjbGtfYXJtZGl2LAorCSZjbGtfYXJtLAorCSZjbGtfcHJlZGl2LAogfTsKIAogdm9pZCBfX2luaXQgczNjMjQ0M19pbml0X2Nsb2NrcyhpbnQgeHRhbCkKQEAgLTk1MSwxMCArMTAyNCwxNiBAQAogCWludCByZXQ7CiAJaW50IHB0cjsKIAorCS8qIHMzYzI0NDMgcGFyZW50cyBoIGFuZCBwIGNsb2NrcyBmcm9tIHByZWRpdiAqLworCWNsa19oLnBhcmVudCA9ICZjbGtfcHJlZGl2OworCWNsa19wLnBhcmVudCA9ICZjbGtfcHJlZGl2OworCiAJcGxsID0gczNjMjQ0M19nZXRfbXBsbChtcGxsY29uLCB4dGFsKTsKKwljbGtfbXN5c2Nsay5yYXRlID0gcGxsOwogCiAJZmNsayA9IHBsbCAvIHMzYzI0NDNfZmNsa19kaXYoY2xrZGl2MCk7Ci0JaGNsayA9IGZjbGsgLyBzM2MyNDQzX2dldF9wcmVkaXYoY2xrZGl2MCk7CisJaGNsayA9IHMzYzI0NDNfcHJlZGl2X2dldHJhdGUoJmNsa19wcmVkaXYpOworCWhjbGsgPSBoY2xrIC8gczNjMjQ0M19nZXRfaGRpdihjbGtkaXYwKTsKIAloY2xrID0gaGNsayAvICgoY2xrZGl2MCAmIFMzQzI0NDNfQ0xLRElWMF9IQUxGX0hDTEspID8gMiA6IDEpOwogIAlwY2xrID0gaGNsayAvICgoY2xrZGl2MCAmIFMzQzI0NDNfQ0xLRElWMF9IQUxGX1BDTEspID8gMiA6IDEpOwogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLXNhMTEwMC9jb2xsaWUuYyBiL2FyY2gvYXJtL21hY2gtc2ExMTAwL2NvbGxpZS5jCmluZGV4IDY0OTZlYjYuLjJmNzcyYTMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtc2ExMTAwL2NvbGxpZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtc2ExMTAwL2NvbGxpZS5jCkBAIC0yMjUsMjYgKzIyNSwyOCBAQAogCWludCByZXQgPSAwOwogCiAJLyogY3B1IGluaXRpYWxpemUgKi8KLQlHQUZSID0gKCBHUElPX1NTUF9UWEQgfCBcCi0JCSBHUElPX1NTUF9TQ0xLIHwgR1BJT19TU1BfU0ZSTSB8IEdQSU9fU1NQX0NMSyB8IEdQSU9fVElDX0FDSyB8IFwKLQkJIEdQSU9fMzJfNzY4a0h6ICk7CisJR0FGUiA9IEdQSU9fU1NQX1RYRCB8IEdQSU9fU1NQX1NDTEsgfCBHUElPX1NTUF9TRlJNIHwgR1BJT19TU1BfQ0xLIHwKKwkJR1BJT19NQ1BfQ0xLIHwgR1BJT18zMl83NjhrSHo7CiAKLQlHUERSID0gKCBHUElPX0xERDggfCBHUElPX0xERDkgfCBHUElPX0xERDEwIHwgR1BJT19MREQxMSB8IEdQSU9fTEREMTIgfCBcCi0JCSBHUElPX0xERDEzIHwgR1BJT19MREQxNCB8IEdQSU9fTEREMTUgfCBHUElPX1NTUF9UWEQgfCBcCi0JCSBHUElPX1NTUF9TQ0xLIHwgR1BJT19TU1BfU0ZSTSB8IEdQSU9fU0RMQ19TQ0xLIHwgXAotCQkgR1BJT19TRExDX0FBRiB8IEdQSU9fVUFSVF9TQ0xLMSB8IEdQSU9fMzJfNzY4a0h6ICk7Ci0JR1BMUiA9IEdQSU9fR1BJTzE4OworCUdQRFIgPSBHUElPX0xERDggfCBHUElPX0xERDkgfCBHUElPX0xERDEwIHwgR1BJT19MREQxMSB8IEdQSU9fTEREMTIgfAorCQlHUElPX0xERDEzIHwgR1BJT19MREQxNCB8IEdQSU9fTEREMTUgfCBHUElPX1NTUF9UWEQgfAorCQlHUElPX1NTUF9TQ0xLIHwgR1BJT19TU1BfU0ZSTSB8IEdQSU9fU0RMQ19TQ0xLIHwKKwkJQ09MTElFX0dQSU9fVUNCMXgwMF9SRVNFVCB8IENPTExJRV9HUElPX25NSUNfT04gfAorCQlDT0xMSUVfR1BJT19uUkVNT0NPTl9PTiB8IEdQSU9fMzJfNzY4a0h6OwogCi0JLy8gUFBDIHBpbiBzZXR0aW5nCi0JUFBEUiA9ICggUFBDX0xERDAgfCBQUENfTEREMSB8IFBQQ19MREQyIHwgUFBDX0xERDMgfCBQUENfTERENCB8IFBQQ19MREQ1IHwgXAotCQkgUFBDX0xERDYgfCBQUENfTERENyB8IFBQQ19MX1BDTEsgfCBQUENfTF9MQ0xLIHwgUFBDX0xfRkNMSyB8IFBQQ19MX0JJQVMgfCBcCi0JIAkgUFBDX1RYRDEgfCBQUENfVFhEMiB8IFBQQ19SWEQyIHwgUFBDX1RYRDMgfCBQUENfVFhENCB8IFBQQ19TQ0xLIHwgUFBDX1NGUk0gKTsKKwlQUERSID0gUFBDX0xERDAgfCBQUENfTEREMSB8IFBQQ19MREQyIHwgUFBDX0xERDMgfCBQUENfTERENCB8IFBQQ19MREQ1IHwKKwkJUFBDX0xERDYgfCBQUENfTERENyB8IFBQQ19MX1BDTEsgfCBQUENfTF9MQ0xLIHwgUFBDX0xfRkNMSyB8IFBQQ19MX0JJQVMgfAorCQlQUENfVFhEMSB8IFBQQ19UWEQyIHwgUFBDX1RYRDMgfCBQUENfVFhENCB8IFBQQ19TQ0xLIHwgUFBDX1NGUk07CiAKLQlQU0RSID0gKCBQUENfUlhEMSB8IFBQQ19SWEQyIHwgUFBDX1JYRDMgfCBQUENfUlhENCApOworCVBXRVIgPSBDT0xMSUVfR1BJT19BQ19JTiB8IENPTExJRV9HUElPX0NPIHwgQ09MTElFX0dQSU9fT05fS0VZIHwKKwkJQ09MTElFX0dQSU9fV0FLRVVQIHwgQ09MTElFX0dQSU9fblJFTU9DT05fSU5UIHwgUFdFUl9SVEM7CiAKLQlHQUZSIHw9IEdQSU9fMzJfNzY4a0h6OwotCUdQRFIgfD0gR1BJT18zMl83NjhrSHo7Ci0JVFVDUiAgPSBUVUNSXzMyXzc2OGtIejsKKwlQR1NSID0gQ09MTElFX0dQSU9fblJFTU9DT05fT047CisKKwlQU0RSID0gUFBDX1JYRDEgfCBQUENfUlhEMiB8IFBQQ19SWEQzIHwgUFBDX1JYRDQ7CisKKwlQQ0ZSID0gUENGUl9PUERFOworCiAKIAlwbGF0Zm9ybV9zY29vcF9jb25maWcgPSAmY29sbGllX3BjbWNpYV9jb25maWc7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL0tjb25maWcgYi9hcmNoL2FybS9tbS9LY29uZmlnCmluZGV4IDMzZWQwNDguLjNhNmM4ZWMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL0tjb25maWcKKysrIGIvYXJjaC9hcm0vbW0vS2NvbmZpZwpAQCAtMTgwLDggKzE4MCwyMSBAQAogIyBBUk05MjZUCiBjb25maWcgQ1BVX0FSTTkyNlQKIAlib29sICJTdXBwb3J0IEFSTTkyNlQgcHJvY2Vzc29yIgotCWRlcGVuZHMgb24gQVJDSF9JTlRFR1JBVE9SIHx8IEFSQ0hfVkVSU0FUSUxFX1BCIHx8IE1BQ0hfVkVSU0FUSUxFX0FCIHx8IEFSQ0hfT01BUDczMCB8fCBBUkNIX09NQVAxNlhYIHx8IE1BQ0hfUkVBTFZJRVdfRUIgfHwgQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX05TOVhYWCB8fCBBUkNIX0RBVklOQ0kKLQlkZWZhdWx0IHkgaWYgQVJDSF9WRVJTQVRJTEVfUEIgfHwgTUFDSF9WRVJTQVRJTEVfQUIgfHwgQVJDSF9PTUFQNzMwIHx8IEFSQ0hfT01BUDE2WFggfHwgQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05UkwgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX05TOVhYWCB8fCBBUkNIX0RBVklOQ0kKKwlkZXBlbmRzIG9uIEFSQ0hfSU5URUdSQVRPUiB8fCBBUkNIX1ZFUlNBVElMRV9QQiB8fCBcCisJCU1BQ0hfVkVSU0FUSUxFX0FCIHx8IEFSQ0hfT01BUDczMCB8fCBcCisJCUFSQ0hfT01BUDE2WFggfHwgTUFDSF9SRUFMVklFV19FQiB8fCBcCisJCUFSQ0hfUE5YNDAwOCB8fCBBUkNIX05FVFggfHwgQ1BVX1MzQzI0MTIgfHwgXAorCQlBUkNIX0FUOTFTQU05MjYwIHx8IEFSQ0hfQVQ5MVNBTTkyNjEgfHwgXAorCQlBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MVNBTTlSTCB8fCBcCisJCUFSQ0hfQVQ5MVNBTTlHMjAgfHwgQVJDSF9BVDkxQ0FQOSB8fCBcCisJCUFSQ0hfTlM5WFhYIHx8IEFSQ0hfREFWSU5DSQorCWRlZmF1bHQgeSBpZiBBUkNIX1ZFUlNBVElMRV9QQiB8fCBNQUNIX1ZFUlNBVElMRV9BQiB8fCBcCisJCUFSQ0hfT01BUDczMCB8fCBBUkNIX09NQVAxNlhYIHx8IFwKKwkJQVJDSF9QTlg0MDA4IHx8IEFSQ0hfTkVUWCB8fCBDUFVfUzNDMjQxMiB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MSB8fCBcCisJCUFSQ0hfQVQ5MVNBTTkyNjMgfHwgQVJDSF9BVDkxU0FNOVJMIHx8IFwKKwkJQVJDSF9BVDkxU0FNOUcyMCB8fCBBUkNIX0FUOTFDQVA5IHx8IFwKKwkJQVJDSF9OUzlYWFggfHwgQVJDSF9EQVZJTkNJIHx8IEFSQ0hfTVgyCiAJc2VsZWN0IENQVV8zMnY1CiAJc2VsZWN0IENQVV9BQlJUX0VWNVRKCiAJc2VsZWN0IENQVV9QQUJSVF9OT0lGQVIKQEAgLTM2NSw3ICszNzgsNyBAQAogIyBGZXJvY2VvbgogY29uZmlnIENQVV9GRVJPQ0VPTgogCWJvb2wKLQlkZXBlbmRzIG9uIEFSQ0hfT1JJT041WAorCWRlcGVuZHMgb24gQVJDSF9PUklPTjVYIHx8IEFSQ0hfTE9LSSB8fCBBUkNIX0tJUktXT09EIHx8IEFSQ0hfTVY3OFhYMAogCWRlZmF1bHQgeQogCXNlbGVjdCBDUFVfMzJ2NQogCXNlbGVjdCBDUFVfQUJSVF9FVjVUCkBAIC0zNzMsNyArMzg2LDcgQEAKIAlzZWxlY3QgQ1BVX0NBQ0hFX1ZJVlQKIAlzZWxlY3QgQ1BVX0NQMTVfTU1VCiAJc2VsZWN0IENQVV9DT1BZX0ZFUk9DRU9OIGlmIE1NVQotCXNlbGVjdCBDUFVfVExCX1Y0V0JJIGlmIE1NVQorCXNlbGVjdCBDUFVfVExCX0ZFUk9DRU9OIGlmIE1NVQogCiBjb25maWcgQ1BVX0ZFUk9DRU9OX09MRF9JRAogCWJvb2wgIkFjY2VwdCBlYXJseSBGZXJvY2VvbiBjb3JlcyB3aXRoIGFuIEFSTTkyNiBJRCIKQEAgLTU1MSw2ICs1NjQsMTEgQEAKIAkgIEFSTSBBcmNoaXRlY3R1cmUgVmVyc2lvbiA0IFRMQiB3aXRoIHdyaXRlYmFjayBjYWNoZSBhbmQgaW52YWxpZGF0ZQogCSAgaW5zdHJ1Y3Rpb24gY2FjaGUgZW50cnkuCiAKK2NvbmZpZyBDUFVfVExCX0ZFUk9DRU9OCisJYm9vbAorCWhlbHAKKwkgIEZlcm9jZW9uIFRMQiAodjR3Ymkgd2l0aCBub24tb3V0ZXItY2FjaGFibGUgcGFnZSB0YWJsZSB3YWxrcykuCisKIGNvbmZpZyBDUFVfVExCX1Y2CiAJYm9vbAogCkBAIC03MDksNiArNzI3LDE0IEBACiAJYm9vbAogCWRlZmF1bHQgbgogCitjb25maWcgQ0FDSEVfRkVST0NFT05fTDIKKwlib29sICJFbmFibGUgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIiCisJZGVwZW5kcyBvbiBBUkNIX0tJUktXT09EIHx8IEFSQ0hfTVY3OFhYMAorCWRlZmF1bHQgeQorCXNlbGVjdCBPVVRFUl9DQUNIRQorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIuCisKIGNvbmZpZyBDQUNIRV9MMlgwCiAJYm9vbCAiRW5hYmxlIHRoZSBMMngwIG91dGVyIGNhY2hlIGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBSRUFMVklFV19FQl9BUk0xMU1QIHx8IE1BQ0hfUkVBTFZJRVdfUEIxMU1QIHx8IE1BQ0hfUkVBTFZJRVdfUEIxMTc2CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9NYWtlZmlsZSBiL2FyY2gvYXJtL21tL01ha2VmaWxlCmluZGV4IDMyYjJkMmQuLmY2NGI5MjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21tL01ha2VmaWxlCisrKyBiL2FyY2gvYXJtL21tL01ha2VmaWxlCkBAIC00Niw2ICs0Niw3IEBACiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNFdUKQkrPSB0bGItdjQubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjRXQikJKz0gdGxiLXY0d2Iubwogb2JqLSQoQ09ORklHX0NQVV9UTEJfVjRXQkkpCSs9IHRsYi12NHdiaS5vCitvYmotJChDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTikJKz0gdGxiLXY0d2JpLm8JIyByZXVzZSB2NHdiaSBUTEIgZnVuY3Rpb25zCiBvYmotJChDT05GSUdfQ1BVX1RMQl9WNikJKz0gdGxiLXY2Lm8KIG9iai0kKENPTkZJR19DUFVfVExCX1Y3KQkrPSB0bGItdjcubwogCkBAIC03Myw0ICs3NCw1IEBACiBvYmotJChDT05GSUdfQ1BVX1Y2KQkJKz0gcHJvYy12Ni5vCiBvYmotJChDT05GSUdfQ1BVX1Y3KQkJKz0gcHJvYy12Ny5vCiAKK29iai0kKENPTkZJR19DQUNIRV9GRVJPQ0VPTl9MMikJKz0gY2FjaGUtZmVyb2Nlb24tbDIubwogb2JqLSQoQ09ORklHX0NBQ0hFX0wyWDApCSs9IGNhY2hlLWwyeDAubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vY2FjaGUtZmVyb2Nlb24tbDIuYyBiL2FyY2gvYXJtL21tL2NhY2hlLWZlcm9jZW9uLWwyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBlZWM0YgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL21tL2NhY2hlLWZlcm9jZW9uLWwyLmMKQEAgLTAsMCArMSwzMTggQEAKKy8qCisgKiBhcmNoL2FybS9tbS9jYWNoZS1mZXJvY2Vvbi1sMi5jIC0gRmVyb2Nlb24gTDIgY2FjaGUgY29udHJvbGxlciBzdXBwb3J0CisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnZlbGwgU2VtaWNvbmR1Y3RvcgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICoKKyAqIFJlZmVyZW5jZXM6CisgKiAtIFVuaWZpZWQgTGF5ZXIgMiBDYWNoZSBmb3IgRmVyb2Nlb24gQ1BVIENvcmVzLAorICogICBEb2N1bWVudCBJRCBNVi1TMTA0ODU4LTAwLCBSZXYuIEEsIE9jdG9iZXIgMjMgMjAwNy4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3BsYXQtb3Jpb24vY2FjaGUtZmVyb2Nlb24tbDIuaD4KKworCisvKgorICogTG93LWxldmVsIGNhY2hlIG1haW50ZW5hbmNlIG9wZXJhdGlvbnMuCisgKgorICogQXMgd2VsbCBhcyB0aGUgcmVndWxhciAnY2xlYW4vaW52YWxpZGF0ZS9mbHVzaCBMMiBjYWNoZSBsaW5lIGJ5CisgKiBNVkEnIGluc3RydWN0aW9ucywgdGhlIEZlcm9jZW9uIEwyIGNhY2hlIGNvbnRyb2xsZXIgYWxzbyBmZWF0dXJlcworICogJ2NsZWFuL2ludmFsaWRhdGUgTDIgcmFuZ2UgYnkgTVZBJyBvcGVyYXRpb25zLgorICoKKyAqIENhY2hlIHJhbmdlIG9wZXJhdGlvbnMgYXJlIGluaXRpYXRlZCBieSB3cml0aW5nIHRoZSBzdGFydCBhbmQKKyAqIGVuZCBhZGRyZXNzZXMgdG8gc3VjY2Vzc2l2ZSBjcDE1IHJlZ2lzdGVycywgYW5kIHByb2Nlc3MgZXZlcnkKKyAqIGNhY2hlIGxpbmUgd2hvc2UgZmlyc3QgYnl0ZSBhZGRyZXNzIGxpZXMgaW4gdGhlIGluY2x1c2l2ZSByYW5nZQorICogW3N0YXJ0OmVuZF0uCisgKgorICogVGhlIGNhY2hlIHJhbmdlIG9wZXJhdGlvbnMgc3RhbGwgdGhlIENQVSBwaXBlbGluZSB1bnRpbCBjb21wbGV0aW9uLgorICoKKyAqIFRoZSByYW5nZSBvcGVyYXRpb25zIHJlcXVpcmUgdHdvIHN1Y2Nlc3NpdmUgY3AxNSB3cml0ZXMsIGluCisgKiBiZXR3ZWVuIHdoaWNoIHdlIGRvbid0IHdhbnQgdG8gYmUgcHJlZW1wdGVkLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfY2xlYW5fcGEodW5zaWduZWQgbG9uZyBhZGRyKQoreworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGM5LCAzIiA6IDogInIiIChhZGRyKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9jbGVhbl9tdmFfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogTWFrZSBzdXJlICdzdGFydCcgYW5kICdlbmQnIHJlZmVyZW5jZSB0aGUgc2FtZSBwYWdlLCBhcworCSAqIEwyIGlzIFBJUFQgYW5kIHJhbmdlIG9wZXJhdGlvbnMgb25seSBkbyBhIFRMQiBsb29rdXAgb24KKwkgKiB0aGUgc3RhcnQgYWRkcmVzcy4KKwkgKi8KKwlCVUdfT04oKHN0YXJ0IF4gZW5kKSAmIH4oUEFHRV9TSVpFIC0gMSkpOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjOSwgNCIgOiA6ICJyIiAoc3RhcnQpKTsKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjOSwgNSIgOiA6ICJyIiAoZW5kKSk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2NsZWFuX3BhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWwyX2NsZWFuX212YV9yYW5nZShfX3BoeXNfdG9fdmlydChzdGFydCksIF9fcGh5c190b192aXJ0KGVuZCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbDJfY2xlYW5faW52X3BhKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMTAsIDMiIDogOiAiciIgKGFkZHIpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2ludl9wYSh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzExLCAzIiA6IDogInIiIChhZGRyKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBsMl9pbnZfbXZhX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkvKgorCSAqIE1ha2Ugc3VyZSAnc3RhcnQnIGFuZCAnZW5kJyByZWZlcmVuY2UgdGhlIHNhbWUgcGFnZSwgYXMKKwkgKiBMMiBpcyBQSVBUIGFuZCByYW5nZSBvcGVyYXRpb25zIG9ubHkgZG8gYSBUTEIgbG9va3VwIG9uCisJICogdGhlIHN0YXJ0IGFkZHJlc3MuCisJICovCisJQlVHX09OKChzdGFydCBeIGVuZCkgJiB+KFBBR0VfU0laRSAtIDEpKTsKKworCXJhd19sb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJX19hc21fXygibWNyIHAxNSwgMSwgJTAsIGMxNSwgYzExLCA0IiA6IDogInIiIChzdGFydCkpOworCV9fYXNtX18oIm1jciBwMTUsIDEsICUwLCBjMTUsIGMxMSwgNSIgOiA6ICJyIiAoZW5kKSk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGwyX2ludl9wYV9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlsMl9pbnZfbXZhX3JhbmdlKF9fcGh5c190b192aXJ0KHN0YXJ0KSwgX19waHlzX3RvX3ZpcnQoZW5kKSk7Cit9CisKKworLyoKKyAqIExpbnV4IHByaW1pdGl2ZXMuCisgKgorICogTm90ZSB0aGF0IHRoZSBlbmQgYWRkcmVzc2VzIHBhc3NlZCB0byBMaW51eCBwcmltaXRpdmVzIGFyZQorICogbm9uaW5jbHVzaXZlLCB3aGlsZSB0aGUgaGFyZHdhcmUgY2FjaGUgcmFuZ2Ugb3BlcmF0aW9ucyB1c2UKKyAqIGluY2x1c2l2ZSBzdGFydCBhbmQgZW5kIGFkZHJlc3Nlcy4KKyAqLworI2RlZmluZSBDQUNIRV9MSU5FX1NJWkUJCTMyCisjZGVmaW5lIE1BWF9SQU5HRV9TSVpFCQkxMDI0CisKK3N0YXRpYyBpbnQgbDJfd3Rfb3ZlcnJpZGU7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGNhbGNfcmFuZ2VfZW5kKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgcmFuZ2VfZW5kOworCisJQlVHX09OKHN0YXJ0ICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKTsKKwlCVUdfT04oZW5kICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKTsKKworCS8qCisJICogVHJ5IHRvIHByb2Nlc3MgYWxsIGNhY2hlIGxpbmVzIGJldHdlZW4gJ3N0YXJ0JyBhbmQgJ2VuZCcuCisJICovCisJcmFuZ2VfZW5kID0gZW5kOworCisJLyoKKwkgKiBMaW1pdCB0aGUgbnVtYmVyIG9mIGNhY2hlIGxpbmVzIHByb2Nlc3NlZCBhdCBvbmNlLAorCSAqIHNpbmNlIGNhY2hlIHJhbmdlIG9wZXJhdGlvbnMgc3RhbGwgdGhlIENQVSBwaXBlbGluZQorCSAqIHVudGlsIGNvbXBsZXRpb24uCisJICovCisJaWYgKHJhbmdlX2VuZCA+IHN0YXJ0ICsgTUFYX1JBTkdFX1NJWkUpCisJCXJhbmdlX2VuZCA9IHN0YXJ0ICsgTUFYX1JBTkdFX1NJWkU7CisKKwkvKgorCSAqIENhY2hlIHJhbmdlIG9wZXJhdGlvbnMgY2FuJ3Qgc3RyYWRkbGUgYSBwYWdlIGJvdW5kYXJ5LgorCSAqLworCWlmIChyYW5nZV9lbmQgPiAoc3RhcnQgfCAoUEFHRV9TSVpFIC0gMSkpICsgMSkKKwkJcmFuZ2VfZW5kID0gKHN0YXJ0IHwgKFBBR0VfU0laRSAtIDEpKSArIDE7CisKKwlyZXR1cm4gcmFuZ2VfZW5kOworfQorCitzdGF0aWMgdm9pZCBmZXJvY2Vvbl9sMl9pbnZfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJLyoKKwkgKiBDbGVhbiBhbmQgaW52YWxpZGF0ZSBwYXJ0aWFsIGZpcnN0IGNhY2hlIGxpbmUuCisJICovCisJaWYgKHN0YXJ0ICYgKENBQ0hFX0xJTkVfU0laRSAtIDEpKSB7CisJCWwyX2NsZWFuX2ludl9wYShzdGFydCAmIH4oQ0FDSEVfTElORV9TSVpFIC0gMSkpOworCQlzdGFydCA9IChzdGFydCB8IChDQUNIRV9MSU5FX1NJWkUgLSAxKSkgKyAxOworCX0KKworCS8qCisJICogQ2xlYW4gYW5kIGludmFsaWRhdGUgcGFydGlhbCBsYXN0IGNhY2hlIGxpbmUuCisJICovCisJaWYgKGVuZCAmIChDQUNIRV9MSU5FX1NJWkUgLSAxKSkgeworCQlsMl9jbGVhbl9pbnZfcGEoZW5kICYgfihDQUNIRV9MSU5FX1NJWkUgLSAxKSk7CisJCWVuZCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCX0KKworCS8qCisJICogSW52YWxpZGF0ZSBhbGwgZnVsbCBjYWNoZSBsaW5lcyBiZXR3ZWVuICdzdGFydCcgYW5kICdlbmQnLgorCSAqLworCXdoaWxlIChzdGFydCAhPSBlbmQpIHsKKwkJdW5zaWduZWQgbG9uZyByYW5nZV9lbmQgPSBjYWxjX3JhbmdlX2VuZChzdGFydCwgZW5kKTsKKwkJbDJfaW52X3BhX3JhbmdlKHN0YXJ0LCByYW5nZV9lbmQgLSBDQUNIRV9MSU5FX1NJWkUpOworCQlzdGFydCA9IHJhbmdlX2VuZDsKKwl9CisKKwlkc2IoKTsKK30KKworc3RhdGljIHZvaWQgZmVyb2Nlb25fbDJfY2xlYW5fcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJLyoKKwkgKiBJZiBMMiBpcyBmb3JjZWQgdG8gV1QsIHRoZSBMMiB3aWxsIGFsd2F5cyBiZSBjbGVhbiBhbmQgd2UKKwkgKiBkb24ndCBuZWVkIHRvIGRvIGFueXRoaW5nIGhlcmUuCisJICovCisJaWYgKCFsMl93dF9vdmVycmlkZSkgeworCQlzdGFydCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCQllbmQgPSAoZW5kICsgQ0FDSEVfTElORV9TSVpFIC0gMSkgJiB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCQl3aGlsZSAoc3RhcnQgIT0gZW5kKSB7CisJCQl1bnNpZ25lZCBsb25nIHJhbmdlX2VuZCA9IGNhbGNfcmFuZ2VfZW5kKHN0YXJ0LCBlbmQpOworCQkJbDJfY2xlYW5fcGFfcmFuZ2Uoc3RhcnQsIHJhbmdlX2VuZCAtIENBQ0hFX0xJTkVfU0laRSk7CisJCQlzdGFydCA9IHJhbmdlX2VuZDsKKwkJfQorCX0KKworCWRzYigpOworfQorCitzdGF0aWMgdm9pZCBmZXJvY2Vvbl9sMl9mbHVzaF9yYW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlzdGFydCAmPSB+KENBQ0hFX0xJTkVfU0laRSAtIDEpOworCWVuZCA9IChlbmQgKyBDQUNIRV9MSU5FX1NJWkUgLSAxKSAmIH4oQ0FDSEVfTElORV9TSVpFIC0gMSk7CisJd2hpbGUgKHN0YXJ0ICE9IGVuZCkgeworCQl1bnNpZ25lZCBsb25nIHJhbmdlX2VuZCA9IGNhbGNfcmFuZ2VfZW5kKHN0YXJ0LCBlbmQpOworCQlpZiAoIWwyX3d0X292ZXJyaWRlKQorCQkJbDJfY2xlYW5fcGFfcmFuZ2Uoc3RhcnQsIHJhbmdlX2VuZCAtIENBQ0hFX0xJTkVfU0laRSk7CisJCWwyX2ludl9wYV9yYW5nZShzdGFydCwgcmFuZ2VfZW5kIC0gQ0FDSEVfTElORV9TSVpFKTsKKwkJc3RhcnQgPSByYW5nZV9lbmQ7CisJfQorCisJZHNiKCk7Cit9CisKKworLyoKKyAqIFJvdXRpbmVzIHRvIGRpc2FibGUgYW5kIHJlLWVuYWJsZSB0aGUgRC1jYWNoZSBhbmQgSS1jYWNoZSBhdCBydW4KKyAqIHRpbWUuICBUaGVzZSBhcmUgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIEwyIGNhY2hlIGNhbiBvbmx5IGJlIGVuYWJsZWQKKyAqIG9yIGRpc2FibGVkIHdoaWxlIHRoZSBMMSBEY2FjaGUgYW5kIEljYWNoZSBhcmUgYm90aCBkaXNhYmxlZC4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IGludmFsaWRhdGVfYW5kX2Rpc2FibGVfZGNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoY3IgJiBDUl9DKSB7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwkJcmF3X2xvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwkJZmx1c2hfY2FjaGVfYWxsKCk7CisJCXNldF9jcihjciAmIH5DUl9DKTsKKwkJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfZGNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoIShjciAmIENSX0MpKQorCQlzZXRfY3IoY3IgfCBDUl9DKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IF9faW52YWxpZGF0ZV9pY2FjaGUodm9pZCkKK3sKKwlpbnQgZHVtbXk7CisKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXygibWNyIHAxNSwgMCwgJTAsIGM3LCBjNSwgMFxuIiA6ICI9ciIgKGR1bW15KSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbnZhbGlkYXRlX2FuZF9kaXNhYmxlX2ljYWNoZSh2b2lkKQoreworCXUzMiBjcjsKKworCWNyID0gZ2V0X2NyKCk7CisJaWYgKGNyICYgQ1JfSSkgeworCQlzZXRfY3IoY3IgJiB+Q1JfSSk7CisJCV9faW52YWxpZGF0ZV9pY2FjaGUoKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfaWNhY2hlKHZvaWQpCit7CisJdTMyIGNyOworCisJY3IgPSBnZXRfY3IoKTsKKwlpZiAoIShjciAmIENSX0kpKQorCQlzZXRfY3IoY3IgfCBDUl9JKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgcmVhZF9leHRyYV9mZWF0dXJlcyh2b2lkKQoreworCXUzMiB1OworCisJX19hc21fXygibXJjIHAxNSwgMSwgJTAsIGMxNSwgYzEsIDAiIDogIj1yIiAodSkpOworCisJcmV0dXJuIHU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZV9leHRyYV9mZWF0dXJlcyh1MzIgdSkKK3sKKwlfX2FzbV9fKCJtY3IgcDE1LCAxLCAlMCwgYzE1LCBjMSwgMCIgOiA6ICJyIiAodSkpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZGlzYWJsZV9sMl9wcmVmZXRjaCh2b2lkKQoreworCXUzMiB1OworCisJLyoKKwkgKiBSZWFkIHRoZSBDUFUgRXh0cmEgRmVhdHVyZXMgcmVnaXN0ZXIgYW5kIHZlcmlmeSB0aGF0IHRoZQorCSAqIERpc2FibGUgTDIgUHJlZmV0Y2ggYml0IGlzIHNldC4KKwkgKi8KKwl1ID0gcmVhZF9leHRyYV9mZWF0dXJlcygpOworCWlmICghKHUgJiAweDAxMDAwMDAwKSkgeworCQlwcmludGsoS0VSTl9JTkZPICJGZXJvY2VvbiBMMjogRGlzYWJsaW5nIEwyIHByZWZldGNoLlxuIik7CisJCXdyaXRlX2V4dHJhX2ZlYXR1cmVzKHUgfCAweDAxMDAwMDAwKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBlbmFibGVfbDIodm9pZCkKK3sKKwl1MzIgdTsKKworCXUgPSByZWFkX2V4dHJhX2ZlYXR1cmVzKCk7CisJaWYgKCEodSAmIDB4MDA0MDAwMDApKSB7CisJCXByaW50ayhLRVJOX0lORk8gIkZlcm9jZW9uIEwyOiBFbmFibGluZyBMMlxuIik7CisKKwkJaW52YWxpZGF0ZV9hbmRfZGlzYWJsZV9kY2FjaGUoKTsKKwkJaW52YWxpZGF0ZV9hbmRfZGlzYWJsZV9pY2FjaGUoKTsKKwkJd3JpdGVfZXh0cmFfZmVhdHVyZXModSB8IDB4MDA0MDAwMDApOworCQllbmFibGVfaWNhY2hlKCk7CisJCWVuYWJsZV9kY2FjaGUoKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IGZlcm9jZW9uX2wyX2luaXQoaW50IF9fbDJfd3Rfb3ZlcnJpZGUpCit7CisJbDJfd3Rfb3ZlcnJpZGUgPSBfX2wyX3d0X292ZXJyaWRlOworCisJZGlzYWJsZV9sMl9wcmVmZXRjaCgpOworCisJb3V0ZXJfY2FjaGUuaW52X3JhbmdlID0gZmVyb2Nlb25fbDJfaW52X3JhbmdlOworCW91dGVyX2NhY2hlLmNsZWFuX3JhbmdlID0gZmVyb2Nlb25fbDJfY2xlYW5fcmFuZ2U7CisJb3V0ZXJfY2FjaGUuZmx1c2hfcmFuZ2UgPSBmZXJvY2Vvbl9sMl9mbHVzaF9yYW5nZTsKKworCWVuYWJsZV9sMigpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiRmVyb2Nlb24gTDI6IENhY2hlIHN1cHBvcnQgaW5pdGlhbGlzZWQlcy5cbiIsCisJCQkgbDJfd3Rfb3ZlcnJpZGUgPyAiLCBpbiBXVCBvdmVycmlkZSBtb2RlIiA6ICIiKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2ZhdWx0LWFybXYuYyBiL2FyY2gvYXJtL21tL2ZhdWx0LWFybXYuYwppbmRleCA0NDU1OGQ1Li5mYmZhMjYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9mYXVsdC1hcm12LmMKKysrIGIvYXJjaC9hcm0vbW0vZmF1bHQtYXJtdi5jCkBAIC0xNDQsMTMgKzE0NCwxNyBAQAogCXBhZ2UgPSBwZm5fdG9fcGFnZShwZm4pOwogCW1hcHBpbmcgPSBwYWdlX21hcHBpbmcocGFnZSk7CiAJaWYgKG1hcHBpbmcpIHsKKyNpZm5kZWYgQ09ORklHX1NNUAogCQlpbnQgZGlydHkgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfZGNhY2hlX2RpcnR5LCAmcGFnZS0+ZmxhZ3MpOwogCiAJCWlmIChkaXJ0eSkKIAkJCV9fZmx1c2hfZGNhY2hlX3BhZ2UobWFwcGluZywgcGFnZSk7CisjZW5kaWYKIAogCQlpZiAoY2FjaGVfaXNfdml2dCgpKQogCQkJbWFrZV9jb2hlcmVudChtYXBwaW5nLCB2bWEsIGFkZHIsIHBmbik7CisJCWVsc2UgaWYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9FWEVDKQorCQkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9mbHVzaC5jIGIvYXJjaC9hcm0vbW0vZmx1c2guYwppbmRleCA5ZGY1MDdkLi4wMjllZTY1IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tbS9mbHVzaC5jCisrKyBiL2FyY2gvYXJtL21tL2ZsdXNoLmMKQEAgLTE5OSw2ICsxOTksOCBAQAogCQlfX2ZsdXNoX2RjYWNoZV9wYWdlKG1hcHBpbmcsIHBhZ2UpOwogCQlpZiAobWFwcGluZyAmJiBjYWNoZV9pc192aXZ0KCkpCiAJCQlfX2ZsdXNoX2RjYWNoZV9hbGlhc2VzKG1hcHBpbmcsIHBhZ2UpOworCQllbHNlIGlmIChtYXBwaW5nKQorCQkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CiAJfQogfQogRVhQT1JUX1NZTUJPTChmbHVzaF9kY2FjaGVfcGFnZSk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9wcm9jLWZlcm9jZW9uLlMgYi9hcmNoL2FybS9tbS9wcm9jLWZlcm9jZW9uLlMKaW5kZXggYTAyYzE3MS4uZjJlNTg4NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vcHJvYy1mZXJvY2Vvbi5TCisrKyBiL2FyY2gvYXJtL21tL3Byb2MtZmVyb2Nlb24uUwpAQCAtNDQsMTEgKzQ0LDMxIEBACiAgKi8KICNkZWZpbmUgQ0FDSEVfRExJTkVTSVpFCTMyCiAKKwkuYnNzCisJLmFsaWduIDMKK19fY2FjaGVfcGFyYW1zX2xvYzoKKwkuc3BhY2UJOAorCiAJLnRleHQKK19fY2FjaGVfcGFyYW1zOgorCS53b3JkCV9fY2FjaGVfcGFyYW1zX2xvYworCiAvKgogICogY3B1X2Zlcm9jZW9uX3Byb2NfaW5pdCgpCiAgKi8KIEVOVFJZKGNwdV9mZXJvY2Vvbl9wcm9jX2luaXQpCisJbXJjCXAxNSwgMCwgcjAsIGMwLCBjMCwgMQkJQCByZWFkIGNhY2hlIHR5cGUgcmVnaXN0ZXIKKwlsZHIJcjEsIF9fY2FjaGVfcGFyYW1zCisJbW92CXIyLCAjKDE2IDw8IDUpCisJdHN0CXIwLCAjKDEgPDwgMTYpCQkJQCBnZXQgd2F5CisJbW92CXIwLCByMCwgbHNyICMxOAkJCUAgZ2V0IGNhY2hlIHNpemUgb3JkZXIKKwltb3ZuZQlyMywgIygoNCAtIDEpIDw8IDMwKQkJQCA0LXdheQorCWFuZAlyMCwgcjAsICMweGYKKwltb3ZlcQlyMywgIzAJCQkJQCAxLXdheQorCW1vdglyMiwgcjIsIGxzbCByMAkJCUAgYWN0dWFsIGNhY2hlIHNpemUKKwltb3ZuZQlyMiwgcjIsIGxzciAjMgkJCUAgdHVybmVkIGludG8gIyBvZiBzZXRzCisJc3ViCXIyLCByMiwgIygxIDw8IDUpCisJc3RtaWEJcjEsIHtyMiwgcjN9CiAJbW92CXBjLCBscgogCiAvKgpAQCAtNTksNiArNzksMTMgQEAKIAltb3YJaXAsICNQU1JfRl9CSVQgfCBQU1JfSV9CSVQgfCBTVkNfTU9ERQogCW1zcgljcHNyX2MsIGlwCiAJYmwJZmVyb2Nlb25fZmx1c2hfa2Vybl9jYWNoZV9hbGwKKworI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorCW1vdglyMCwgIzAKKwltY3IJcDE1LCAxLCByMCwgYzE1LCBjOSwgMAkJQCBjbGVhbiBMMgorCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisjZW5kaWYKKwogCW1yYwlwMTUsIDAsIHIwLCBjMSwgYzAsIDAJCUAgY3RybCByZWdpc3RlcgogCWJpYwlyMCwgcjAsICMweDEwMDAJCQlAIC4uLmkuLi4uLi4uLi4uLi4KIAliaWMJcjAsIHIwLCAjMHgwMDBlCQkJQCAuLi4uLi4uLi4uLi53Y2EuCkBAIC0xMTcsMTEgKzE0NCwxOSBAQAogICovCiBFTlRSWShmZXJvY2Vvbl9mbHVzaF9rZXJuX2NhY2hlX2FsbCkKIAltb3YJcjIsICNWTV9FWEVDCi0JbW92CWlwLCAjMAorCiBfX2ZsdXNoX3dob2xlX2NhY2hlOgotMToJbXJjCXAxNSwgMCwgcjE1LCBjNywgYzE0LCAzIAlAIHRlc3QsY2xlYW4saW52YWxpZGF0ZQotCWJuZQkxYgorCWxkcglyMSwgX19jYWNoZV9wYXJhbXMKKwlsZG1pYQlyMSwge3IxLCByM30KKzE6CW9ycglpcCwgcjEsIHIzCisyOgltY3IJcDE1LCAwLCBpcCwgYzcsIGMxNCwgMgkJQCBjbGVhbiArIGludmFsaWRhdGUgRCBzZXQvd2F5CisJc3VicwlpcCwgaXAsICMoMSA8PCAzMCkJCUAgbmV4dCB3YXkKKwliY3MJMmIKKwlzdWJzCXIxLCByMSwgIygxIDw8IDUpCQlAIG5leHQgc2V0CisJYmNzCTFiCisKIAl0c3QJcjIsICNWTV9FWEVDCisJbW92CWlwLCAjMAogCW1jcm5lCXAxNSwgMCwgaXAsIGM3LCBjNSwgMAkJQCBpbnZhbGlkYXRlIEkgY2FjaGUKIAltY3JuZQlwMTUsIDAsIGlwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgpAQCAtMTM4LDcgKzE3Myw2IEBACiAgKi8KIAkuYWxpZ24JNQogRU5UUlkoZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9yYW5nZSkKLQltb3YJaXAsICMwCiAJc3ViCXIzLCByMSwgcjAJCQlAIGNhbGN1bGF0ZSB0b3RhbCBzaXplCiAJY21wCXIzLCAjQ0FDSEVfRExJTUlUCiAJYmd0CV9fZmx1c2hfd2hvbGVfY2FjaGUKQEAgLTE1Miw2ICsxODYsNyBAQAogCWNtcAlyMCwgcjEKIAlibG8JMWIKIAl0c3QJcjIsICNWTV9FWEVDCisJbW92CWlwLCAjMAogCW1jcm5lCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKQEAgLTIwOSw2ICsyNDQsMjAgQEAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIAorCS5hbGlnbgk1CitFTlRSWShmZXJvY2Vvbl9yYW5nZV9mbHVzaF9rZXJuX2RjYWNoZV9wYWdlKQorCW1ycwlyMiwgY3BzcgorCWFkZAlyMSwgcjAsICNQQUdFX1NaIC0gQ0FDSEVfRExJTkVTSVpFCUAgdG9wIGFkZHIgaXMgaW5jbHVzaXZlCisJb3JyCXIzLCByMiwgI1BTUl9JX0JJVAorCW1zcgljcHNyX2MsIHIzCQkJQCBkaXNhYmxlIGludGVycnVwdHMKKwltY3IJcDE1LCA1LCByMCwgYzE1LCBjMTUsIDAJCUAgRCBjbGVhbi9pbnYgcmFuZ2Ugc3RhcnQKKwltY3IJcDE1LCA1LCByMSwgYzE1LCBjMTUsIDEJCUAgRCBjbGVhbi9pbnYgcmFuZ2UgdG9wCisJbXNyCWNwc3JfYywgcjIJCQlAIHJlc3RvcmUgaW50ZXJydXB0cworCW1vdglyMCwgIzAKKwltY3IJcDE1LCAwLCByMCwgYzcsIGM1LCAwCQlAIGludmFsaWRhdGUgSSBjYWNoZQorCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisJbW92CXBjLCBscgorCiAvKgogICoJZG1hX2ludl9yYW5nZShzdGFydCwgZW5kKQogICoKQEAgLTIyNSwxMCArMjc0LDEwIEBACiAJLmFsaWduCTUKIEVOVFJZKGZlcm9jZW9uX2RtYV9pbnZfcmFuZ2UpCiAJdHN0CXIwLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQorCWJpYwlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCiAJbWNybmUJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CiAJdHN0CXIxLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQogCW1jcm5lCXAxNSwgMCwgcjEsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQotCWJpYwlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCiAxOgltY3IJcDE1LCAwLCByMCwgYzcsIGM2LCAxCQlAIGludmFsaWRhdGUgRCBlbnRyeQogCWFkZAlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUKIAljbXAJcjAsIHIxCkBAIC0yMzYsNiArMjg1LDIyIEBACiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKIAltb3YJcGMsIGxyCiAKKwkuYWxpZ24JNQorRU5UUlkoZmVyb2Nlb25fcmFuZ2VfZG1hX2ludl9yYW5nZSkKKwltcnMJcjIsIGNwc3IKKwl0c3QJcjAsICNDQUNIRV9ETElORVNJWkUgLSAxCisJbWNybmUJcDE1LCAwLCByMCwgYzcsIGMxMCwgMQkJQCBjbGVhbiBEIGVudHJ5CisJdHN0CXIxLCAjQ0FDSEVfRExJTkVTSVpFIC0gMQorCW1jcm5lCXAxNSwgMCwgcjEsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQorCWNtcAlyMSwgcjAKKwlzdWJuZQlyMSwgcjEsICMxCQkJQCB0b3AgYWRkcmVzcyBpcyBpbmNsdXNpdmUKKwlvcnIJcjMsIHIyLCAjUFNSX0lfQklUCisJbXNyCWNwc3JfYywgcjMJCQlAIGRpc2FibGUgaW50ZXJydXB0cworCW1jcglwMTUsIDUsIHIwLCBjMTUsIGMxNCwgMAkJQCBEIGludiByYW5nZSBzdGFydAorCW1jcglwMTUsIDUsIHIxLCBjMTUsIGMxNCwgMQkJQCBEIGludiByYW5nZSB0b3AKKwltc3IJY3Bzcl9jLCByMgkJCUAgcmVzdG9yZSBpbnRlcnJ1cHRzCisJbW92CXBjLCBscgorCiAvKgogICoJZG1hX2NsZWFuX3JhbmdlKHN0YXJ0LCBlbmQpCiAgKgpAQCAtMjU2LDYgKzMyMSwxOSBAQAogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCisJLmFsaWduCTUKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2RtYV9jbGVhbl9yYW5nZSkKKwltcnMJcjIsIGNwc3IKKwljbXAJcjEsIHIwCisJc3VibmUJcjEsIHIxLCAjMQkJCUAgdG9wIGFkZHJlc3MgaXMgaW5jbHVzaXZlCisJb3JyCXIzLCByMiwgI1BTUl9JX0JJVAorCW1zcgljcHNyX2MsIHIzCQkJQCBkaXNhYmxlIGludGVycnVwdHMKKwltY3IJcDE1LCA1LCByMCwgYzE1LCBjMTMsIDAJCUAgRCBjbGVhbiByYW5nZSBzdGFydAorCW1jcglwMTUsIDUsIHIxLCBjMTUsIGMxMywgMQkJQCBEIGNsZWFuIHJhbmdlIHRvcAorCW1zcgljcHNyX2MsIHIyCQkJQCByZXN0b3JlIGludGVycnVwdHMKKwltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgorCW1vdglwYywgbHIKKwogLyoKICAqCWRtYV9mbHVzaF9yYW5nZShzdGFydCwgZW5kKQogICoKQEAgLTI3NCw2ICszNTIsMTkgQEAKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogCW1vdglwYywgbHIKIAorCS5hbGlnbgk1CitFTlRSWShmZXJvY2Vvbl9yYW5nZV9kbWFfZmx1c2hfcmFuZ2UpCisJbXJzCXIyLCBjcHNyCisJY21wCXIxLCByMAorCXN1Ym5lCXIxLCByMSwgIzEJCQlAIHRvcCBhZGRyZXNzIGlzIGluY2x1c2l2ZQorCW9ycglyMywgcjIsICNQU1JfSV9CSVQKKwltc3IJY3Bzcl9jLCByMwkJCUAgZGlzYWJsZSBpbnRlcnJ1cHRzCisJbWNyCXAxNSwgNSwgcjAsIGMxNSwgYzE1LCAwCQlAIEQgY2xlYW4vaW52IHJhbmdlIHN0YXJ0CisJbWNyCXAxNSwgNSwgcjEsIGMxNSwgYzE1LCAxCQlAIEQgY2xlYW4vaW52IHJhbmdlIHRvcAorCW1zcgljcHNyX2MsIHIyCQkJQCByZXN0b3JlIGludGVycnVwdHMKKwltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgorCW1vdglwYywgbHIKKwogRU5UUlkoZmVyb2Nlb25fY2FjaGVfZm5zKQogCS5sb25nCWZlcm9jZW9uX2ZsdXNoX2tlcm5fY2FjaGVfYWxsCiAJLmxvbmcJZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9hbGwKQEAgLTI4NSwxMiArMzc2LDMzIEBACiAJLmxvbmcJZmVyb2Nlb25fZG1hX2NsZWFuX3JhbmdlCiAJLmxvbmcJZmVyb2Nlb25fZG1hX2ZsdXNoX3JhbmdlCiAKK0VOVFJZKGZlcm9jZW9uX3JhbmdlX2NhY2hlX2ZucykKKwkubG9uZwlmZXJvY2Vvbl9mbHVzaF9rZXJuX2NhY2hlX2FsbAorCS5sb25nCWZlcm9jZW9uX2ZsdXNoX3VzZXJfY2FjaGVfYWxsCisJLmxvbmcJZmVyb2Nlb25fZmx1c2hfdXNlcl9jYWNoZV9yYW5nZQorCS5sb25nCWZlcm9jZW9uX2NvaGVyZW50X2tlcm5fcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9jb2hlcmVudF91c2VyX3JhbmdlCisJLmxvbmcJZmVyb2Nlb25fcmFuZ2VfZmx1c2hfa2Vybl9kY2FjaGVfcGFnZQorCS5sb25nCWZlcm9jZW9uX3JhbmdlX2RtYV9pbnZfcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9kbWFfY2xlYW5fcmFuZ2UKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9kbWFfZmx1c2hfcmFuZ2UKKwogCS5hbGlnbgk1CiBFTlRSWShjcHVfZmVyb2Nlb25fZGNhY2hlX2NsZWFuX2FyZWEpCisjaWYgZGVmaW5lZChDT05GSUdfQ0FDSEVfRkVST0NFT05fTDIpICYmICFkZWZpbmVkKENPTkZJR19MMl9DQUNIRV9XUklURVRIUk9VR0gpCisJbW92CXIyLCByMAorCW1vdglyMywgcjEKKyNlbmRpZgogMToJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQogCWFkZAlyMCwgcjAsICNDQUNIRV9ETElORVNJWkUKIAlzdWJzCXIxLCByMSwgI0NBQ0hFX0RMSU5FU0laRQogCWJoaQkxYgorI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorMToJbWNyCXAxNSwgMSwgcjIsIGMxNSwgYzksIDEJCUAgY2xlYW4gTDIgZW50cnkKKwlhZGQJcjIsIHIyLCAjQ0FDSEVfRExJTkVTSVpFCisJc3VicwlyMywgcjMsICNDQUNIRV9ETElORVNJWkUKKwliaGkJMWIKKyNlbmRpZgogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCiAJbW92CXBjLCBscgogCkBAIC0zMDYsMTYgKzQxOCwyNSBAQAogCS5hbGlnbgk1CiBFTlRSWShjcHVfZmVyb2Nlb25fc3dpdGNoX21tKQogI2lmZGVmIENPTkZJR19NTVUKLQltb3YJaXAsICMwCi1AICYmICdDbGVhbiAmIEludmFsaWRhdGUgd2hvbGUgRENhY2hlJwotMToJbXJjCXAxNSwgMCwgcjE1LCBjNywgYzE0LCAzIAlAIHRlc3QsY2xlYW4saW52YWxpZGF0ZQotCWJuZQkxYgotCW1jcglwMTUsIDAsIGlwLCBjNywgYzUsIDAJCUAgaW52YWxpZGF0ZSBJIGNhY2hlCi0JbWNyCXAxNSwgMCwgaXAsIGM3LCBjMTAsIDQJCUAgZHJhaW4gV0IKKwkvKgorCSAqIE5vdGU6IHdlIHdpc2ggdG8gY2FsbCBfX2ZsdXNoX3dob2xlX2NhY2hlIGJ1dCB3ZSBuZWVkIHRvIHByZXNlcnZlCisJICogbHIgdG8gZG8gc28uICBUaGUgb25seSB3YXkgd2l0aG91dCB0b3VjaGluZyBtYWluIG1lbW9yeSBpcyB0bworCSAqIHVzZSByMiB3aGljaCBpcyBub3JtYWxseSB1c2VkIHRvIHRlc3QgdGhlIFZNX0VYRUMgZmxhZywgYW5kCisJICogY29tcGVuc2F0ZSBsb2NhbGx5IGZvciB0aGUgc2tpcHBlZCBvcHMgaWYgaXQgaXMgbm90IHNldC4KKwkgKi8KKwltb3YJcjIsIGxyCQkJCUAgYWJ1c2UgcjIgdG8gcHJlc2VydmUgbHIKKwlibAlfX2ZsdXNoX3dob2xlX2NhY2hlCisJQCBpZiByMiBjb250YWlucyB0aGUgVk1fRVhFQyBiaXQgdGhlbiB0aGUgbmV4dCAyIG9wcyBhcmUgZG9uZSBhbHJlYWR5CisJdHN0CXIyLCAjVk1fRVhFQworCW1jcmVxCXAxNSwgMCwgaXAsIGM3LCBjNSwgMAkJQCBpbnZhbGlkYXRlIEkgY2FjaGUKKwltY3JlcQlwMTUsIDAsIGlwLCBjNywgYzEwLCA0CQlAIGRyYWluIFdCCisKIAltY3IJcDE1LCAwLCByMCwgYzIsIGMwLCAwCQlAIGxvYWQgcGFnZSB0YWJsZSBwb2ludGVyCiAJbWNyCXAxNSwgMCwgaXAsIGM4LCBjNywgMAkJQCBpbnZhbGlkYXRlIEkgJiBEIFRMQnMKLSNlbmRpZgorCW1vdglwYywgcjIKKyNlbHNlCiAJbW92CXBjLCBscgorI2VuZGlmCiAKIC8qCiAgKiBjcHVfZmVyb2Nlb25fc2V0X3B0ZV9leHQocHRlcCwgcHRlLCBleHQpCkBAIC0zNDUsNiArNDY2LDkgQEAKIAlzdHIJcjIsIFtyMF0JCQlAIGhhcmR3YXJlIHZlcnNpb24KIAltb3YJcjAsIHIwCiAJbWNyCXAxNSwgMCwgcjAsIGM3LCBjMTAsIDEJCUAgY2xlYW4gRCBlbnRyeQorI2lmIGRlZmluZWQoQ09ORklHX0NBQ0hFX0ZFUk9DRU9OX0wyKSAmJiAhZGVmaW5lZChDT05GSUdfTDJfQ0FDSEVfV1JJVEVUSFJPVUdIKQorCW1jcglwMTUsIDEsIHIwLCBjMTUsIGM5LCAxCQlAIGNsZWFuIEwyIGVudHJ5CisjZW5kaWYKIAltY3IJcDE1LCAwLCByMCwgYzcsIGMxMCwgNAkJQCBkcmFpbiBXQgogI2VuZGlmCiAJbW92CXBjLCBscgpAQCAtMzY5LDE0ICs0OTMsMTUgQEAKIAkuc2l6ZQlfX2Zlcm9jZW9uX3NldHVwLCAuIC0gX19mZXJvY2Vvbl9zZXR1cAogCiAJLyoKLQkgKiAgUgotCSAqIC5SVkkgWkZSUyBCTERQIFdDQU0KLQkgKiAuMDExIDAwMDEgLi4xMSAwMTAxCisJICogICAgICBCCisJICogIFIgICBQCisJICogLlJWSSBVRlJTIEJMRFAgV0NBTQorCSAqIC4wMTEgLjAwMSAuLjExIDAxMDEKIAkgKgogCSAqLwogCS50eXBlCWZlcm9jZW9uX2NydmFsLCAjb2JqZWN0CiBmZXJvY2Vvbl9jcnZhbDoKLQljcnZhbAljbGVhcj0weDAwMDA3ZjNmLCBtbXVzZXQ9MHgwMDAwMzEzNSwgdWNzZXQ9MHgwMDAwMTEzNAorCWNydmFsCWNsZWFyPTB4MDAwMDc3M2YsIG1tdXNldD0weDAwMDAzMTM1LCB1Y3NldD0weDAwMDAxMTM0CiAKIAlfX0lOSVREQVRBCiAKQEAgLTQxNCw2ICs1MzksMjEgQEAKIAkuYXNjaXoJIkZlcm9jZW9uIgogCS5zaXplCWNwdV9mZXJvY2Vvbl9uYW1lLCAuIC0gY3B1X2Zlcm9jZW9uX25hbWUKIAorCS50eXBlCWNwdV84OGZyNTMxX25hbWUsICNvYmplY3QKK2NwdV84OGZyNTMxX25hbWU6CisJLmFzY2l6CSJGZXJvY2VvbiA4OEZSNTMxLXZkIgorCS5zaXplCWNwdV84OGZyNTMxX25hbWUsIC4gLSBjcHVfODhmcjUzMV9uYW1lCisKKwkudHlwZQljcHVfODhmcjU3MV9uYW1lLCAjb2JqZWN0CitjcHVfODhmcjU3MV9uYW1lOgorCS5hc2NpegkiRmVyb2Nlb24gODhGUjU3MS12ZCIKKwkuc2l6ZQljcHVfODhmcjU3MV9uYW1lLCAuIC0gY3B1Xzg4ZnI1NzFfbmFtZQorCisJLnR5cGUJY3B1Xzg4ZnIxMzFfbmFtZSwgI29iamVjdAorY3B1Xzg4ZnIxMzFfbmFtZToKKwkuYXNjaXoJIkZlcm9jZW9uIDg4RlIxMzEiCisJLnNpemUJY3B1Xzg4ZnIxMzFfbmFtZSwgLiAtIGNwdV84OGZyMTMxX25hbWUKKwogCS5hbGlnbgogCiAJLnNlY3Rpb24gIi5wcm9jLmluZm8uaW5pdCIsICNhbGxvYywgI2V4ZWNpbnN0cgpAQCAtNDIxLDE1ICs1NjEsMTUgQEAKICNpZmRlZiBDT05GSUdfQ1BVX0ZFUk9DRU9OX09MRF9JRAogCS50eXBlCV9fZmVyb2Nlb25fb2xkX2lkX3Byb2NfaW5mbywjb2JqZWN0CiBfX2Zlcm9jZW9uX29sZF9pZF9wcm9jX2luZm86Ci0JLmxvbmcJMHg0MTA2OTI2MAotCS5sb25nCTB4ZmZmZmZmZjAKLQkubG9uZyAgIFBNRF9UWVBFX1NFQ1QgfCBcCisJLmxvbmcJMHg0MTAwOTI2MAorCS5sb25nCTB4ZmYwMGZmZjAKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAogCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfQklUNCB8IFwKIAkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCiAJCVBNRF9TRUNUX0FQX1JFQUQKQEAgLTQ0NSwxNyArNTg1LDE3IEBACiAJLnNpemUJX19mZXJvY2Vvbl9vbGRfaWRfcHJvY19pbmZvLCAuIC0gX19mZXJvY2Vvbl9vbGRfaWRfcHJvY19pbmZvCiAjZW5kaWYKIAotCS50eXBlCV9fZmVyb2Nlb25fcHJvY19pbmZvLCNvYmplY3QKLV9fZmVyb2Nlb25fcHJvY19pbmZvOgorCS50eXBlCV9fODhmcjUzMV9wcm9jX2luZm8sI29iamVjdAorX184OGZyNTMxX3Byb2NfaW5mbzoKIAkubG9uZwkweDU2MDU1MzEwCiAJLmxvbmcJMHhmZmZmZmZmMAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAogCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCiAJCVBNRF9CSVQ0IHwgXAogCQlQTURfU0VDVF9BUF9XUklURSB8IFwKIAkJUE1EX1NFQ1RfQVBfUkVBRAotCS5sb25nICAgUE1EX1RZUEVfU0VDVCB8IFwKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAogCQlQTURfQklUNCB8IFwKIAkJUE1EX1NFQ1RfQVBfV1JJVEUgfCBcCiAJCVBNRF9TRUNUX0FQX1JFQUQKQEAgLTQ2Myw5ICs2MDMsNTkgQEAKIAkubG9uZwljcHVfYXJjaF9uYW1lCiAJLmxvbmcJY3B1X2VsZl9uYW1lCiAJLmxvbmcJSFdDQVBfU1dQfEhXQ0FQX0hBTEZ8SFdDQVBfVEhVTUJ8SFdDQVBfRkFTVF9NVUxUfEhXQ0FQX0VEU1AKLQkubG9uZwljcHVfZmVyb2Nlb25fbmFtZQorCS5sb25nCWNwdV84OGZyNTMxX25hbWUKIAkubG9uZwlmZXJvY2Vvbl9wcm9jZXNzb3JfZnVuY3Rpb25zCiAJLmxvbmcJdjR3YmlfdGxiX2ZucwogCS5sb25nCWZlcm9jZW9uX3VzZXJfZm5zCiAJLmxvbmcJZmVyb2Nlb25fY2FjaGVfZm5zCi0JLnNpemUJX19mZXJvY2Vvbl9wcm9jX2luZm8sIC4gLSBfX2Zlcm9jZW9uX3Byb2NfaW5mbworCS5zaXplCV9fODhmcjUzMV9wcm9jX2luZm8sIC4gLSBfXzg4ZnI1MzFfcHJvY19pbmZvCisKKwkudHlwZQlfXzg4ZnI1NzFfcHJvY19pbmZvLCNvYmplY3QKK19fODhmcjU3MV9wcm9jX2luZm86CisJLmxvbmcJMHg1NjE1NTcxMAorCS5sb25nCTB4ZmZmZmZmZjAKKwkubG9uZwlQTURfVFlQRV9TRUNUIHwgXAorCQlQTURfU0VDVF9CVUZGRVJBQkxFIHwgXAorCQlQTURfU0VDVF9DQUNIRUFCTEUgfCBcCisJCVBNRF9CSVQ0IHwgXAorCQlQTURfU0VDVF9BUF9XUklURSB8IFwKKwkJUE1EX1NFQ1RfQVBfUkVBRAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCisJCVBNRF9CSVQ0IHwgXAorCQlQTURfU0VDVF9BUF9XUklURSB8IFwKKwkJUE1EX1NFQ1RfQVBfUkVBRAorCWIJX19mZXJvY2Vvbl9zZXR1cAorCS5sb25nCWNwdV9hcmNoX25hbWUKKwkubG9uZwljcHVfZWxmX25hbWUKKwkubG9uZwlIV0NBUF9TV1B8SFdDQVBfSEFMRnxIV0NBUF9USFVNQnxIV0NBUF9GQVNUX01VTFR8SFdDQVBfRURTUAorCS5sb25nCWNwdV84OGZyNTcxX25hbWUKKwkubG9uZwlmZXJvY2Vvbl9wcm9jZXNzb3JfZnVuY3Rpb25zCisJLmxvbmcJdjR3YmlfdGxiX2ZucworCS5sb25nCWZlcm9jZW9uX3VzZXJfZm5zCisJLmxvbmcJZmVyb2Nlb25fcmFuZ2VfY2FjaGVfZm5zCisJLnNpemUJX184OGZyNTcxX3Byb2NfaW5mbywgLiAtIF9fODhmcjU3MV9wcm9jX2luZm8KKworCS50eXBlCV9fODhmcjEzMV9wcm9jX2luZm8sI29iamVjdAorX184OGZyMTMxX3Byb2NfaW5mbzoKKwkubG9uZwkweDU2MjUxMzEwCisJLmxvbmcJMHhmZmZmZmZmMAorCS5sb25nCVBNRF9UWVBFX1NFQ1QgfCBcCisJCVBNRF9TRUNUX0JVRkZFUkFCTEUgfCBcCisJCVBNRF9TRUNUX0NBQ0hFQUJMRSB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJLmxvbmcJUE1EX1RZUEVfU0VDVCB8IFwKKwkJUE1EX0JJVDQgfCBcCisJCVBNRF9TRUNUX0FQX1dSSVRFIHwgXAorCQlQTURfU0VDVF9BUF9SRUFECisJYglfX2Zlcm9jZW9uX3NldHVwCisJLmxvbmcJY3B1X2FyY2hfbmFtZQorCS5sb25nCWNwdV9lbGZfbmFtZQorCS5sb25nCUhXQ0FQX1NXUHxIV0NBUF9IQUxGfEhXQ0FQX1RIVU1CfEhXQ0FQX0ZBU1RfTVVMVHxIV0NBUF9FRFNQCisJLmxvbmcJY3B1Xzg4ZnIxMzFfbmFtZQorCS5sb25nCWZlcm9jZW9uX3Byb2Nlc3Nvcl9mdW5jdGlvbnMKKwkubG9uZwl2NHdiaV90bGJfZm5zCisJLmxvbmcJZmVyb2Nlb25fdXNlcl9mbnMKKwkubG9uZwlmZXJvY2Vvbl9yYW5nZV9jYWNoZV9mbnMKKwkuc2l6ZQlfXzg4ZnIxMzFfcHJvY19pbmZvLCAuIC0gX184OGZyMTMxX3Byb2NfaW5mbwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1pb3AvZ3Bpby5jIGIvYXJjaC9hcm0vcGxhdC1pb3AvZ3Bpby5jCmluZGV4IGVkYTQzNjAuLjY0MGU0OTggMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtaW9wL2dwaW8uYworKysgYi9hcmNoL2FybS9wbGF0LWlvcC9ncGlvLmMKQEAgLTExLDYgKzExLDEwIEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9pb3AzeHguaD4KIAogdm9pZCBncGlvX2xpbmVfY29uZmlnKGludCBsaW5lLCBpbnQgZGlyZWN0aW9uKQpAQCAtNDYsMyArNTAsNDIgQEAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiBFWFBPUlRfU1lNQk9MKGdwaW9fbGluZV9zZXQpOworCitzdGF0aWMgaW50IGlvcDN4eF9ncGlvX2RpcmVjdGlvbl9pbnB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvKQoreworCWdwaW9fbGluZV9jb25maWcoZ3BpbywgR1BJT19JTik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW9wM3h4X2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvLCBpbnQgbGV2ZWwpCit7CisJZ3Bpb19saW5lX3NldChncGlvLCBsZXZlbCk7CisJZ3Bpb19saW5lX2NvbmZpZyhncGlvLCBHUElPX09VVCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW9wM3h4X2dwaW9fZ2V0X3ZhbHVlKHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIGdwaW8pCit7CisJcmV0dXJuIGdwaW9fbGluZV9nZXQoZ3Bpbyk7Cit9CisKK3N0YXRpYyB2b2lkIGlvcDN4eF9ncGlvX3NldF92YWx1ZShzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBncGlvLCBpbnQgdmFsdWUpCit7CisJZ3Bpb19saW5lX3NldChncGlvLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ3Bpb19jaGlwIGlvcDN4eF9jaGlwID0geworCS5sYWJlbAkJCT0gImlvcDN4eCIsCisJLmRpcmVjdGlvbl9pbnB1dAk9IGlvcDN4eF9ncGlvX2RpcmVjdGlvbl9pbnB1dCwKKwkuZ2V0CQkJPSBpb3AzeHhfZ3Bpb19nZXRfdmFsdWUsCisJLmRpcmVjdGlvbl9vdXRwdXQJPSBpb3AzeHhfZ3Bpb19kaXJlY3Rpb25fb3V0cHV0LAorCS5zZXQJCQk9IGlvcDN4eF9ncGlvX3NldF92YWx1ZSwKKwkuYmFzZQkJCT0gMCwKKwkubmdwaW8JCQk9IElPUDNYWF9OX0dQSU9TLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaW9wM3h4X2dwaW9fc2V0dXAodm9pZCkKK3sKKwlyZXR1cm4gZ3Bpb2NoaXBfYWRkKCZpb3AzeHhfY2hpcCk7Cit9CithcmNoX2luaXRjYWxsKGlvcDN4eF9ncGlvX3NldHVwKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtbXhjL0tjb25maWcgYi9hcmNoL2FybS9wbGF0LW14Yy9LY29uZmlnCmluZGV4IGJiNmUxMjcuLmUxNGVhYWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtbXhjL0tjb25maWcKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvS2NvbmZpZwpAQCAtMyw5ICszLDE0IEBACiBtZW51ICJGcmVlc2NhbGUgTVhDIEltcGxlbWVudGF0aW9ucyIKIAogY2hvaWNlCi0JcHJvbXB0ICJNWEMvaU1YIFN5c3RlbSBUeXBlIgorCXByb21wdCAiTVhDL2lNWCBCYXNlIFR5cGUiCiAJZGVmYXVsdCBBUkNIX01YMwogCitjb25maWcgQVJDSF9NWDIKKwlib29sICJNWDItYmFzZWQiCisJaGVscAorCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHN5c3RlbXMgYmFzZWQgb24gdGhlIEZyZWVzY2FsZSBpLk1YMiBmYW1pbHkKKwogY29uZmlnIEFSQ0hfTVgzCiAJYm9vbCAiTVgzLWJhc2VkIgogCWhlbHAKQEAgLTEzLDYgKzE4LDcgQEAKIAogZW5kY2hvaWNlCiAKK3NvdXJjZSAiYXJjaC9hcm0vbWFjaC1teDIvS2NvbmZpZyIKIHNvdXJjZSAiYXJjaC9hcm0vbWFjaC1teDMvS2NvbmZpZyIKIAogZW5kbWVudQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvTWFrZWZpbGUgYi9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQppbmRleCBmOTZkYzAzLi5kYjY2ZTlhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9NYWtlZmlsZQpAQCAtMyw0ICszLDYgQEAKICMKIAogIyBDb21tb24gc3VwcG9ydAotb2JqLXkgOj0gaXJxLm8KK29iai15IDo9IGlycS5vIGNsb2NrLm8gZ3Bpby5vIHRpbWUubworCitvYmotJChDT05GSUdfQVJDSF9NWDIpICs9IGlvbXV4LW14MS1teDIubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtbXhjL2Nsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFhODZmZAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2Nsb2NrLmMKQEAgLTAsMCArMSwzMzEgQEAKKy8qCisgKiBCYXNlZCBvbiBhcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNCAtIDIwMDUgTm9raWEgY29ycG9yYXRpb24KKyAqIFdyaXR0ZW4gYnkgVHV1a2thIFRpa2thbmVuIDx0dXVra2EudGlra2FuZW5AZWxla3Ryb2JpdC5jb20+CisgKiBNb2RpZmllZCBmb3Igb21hcCBzaGFyZWQgY2xvY2sgZnJhbWV3b3JrIGJ5IFRvbnkgTGluZGdyZW4gPHRvbnlAYXRvbWlkZS5jb20+CisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc2VtYXBob3JlLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvY2xvY2suaD4KKworc3RhdGljIExJU1RfSEVBRChjbG9ja3MpOworc3RhdGljIERFRklORV9NVVRFWChjbG9ja3NfbXV0ZXgpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN0YW5kYXJkIGNsb2NrIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGluY2x1ZGUvbGludXgvY2xrLmgKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBSZXRyaWV2ZSBhIGNsb2NrIGJ5IG5hbWUuCisgKgorICogTm90ZSB0aGF0IHdlIGZpcnN0IHRyeSB0byB1c2UgZGV2aWNlIGlkIG9uIHRoZSBidXMKKyAqIGFuZCBjbG9jayBuYW1lLiBJZiB0aGlzIGZhaWxzLCB3ZSB0cnkgdG8gdXNlICI8bmFtZT4uPGlkPiIuIElmIHRoaXMgZmFpbHMsCisgKiB3ZSB0cnkgdG8gdXNlIGNsb2NrIG5hbWUgb25seS4KKyAqIFRoZSByZWZlcmVuY2UgY291bnQgdG8gdGhlIGNsb2NrJ3MgbW9kdWxlIG93bmVyIHJlZiBjb3VudCBpcyBpbmNyZW1lbnRlZC4KKyAqLworc3RydWN0IGNsayAqY2xrX2dldChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmlkKQoreworCXN0cnVjdCBjbGsgKnAsICpjbGsgPSBFUlJfUFRSKC1FTk9FTlQpOworCWludCBpZG5vOworCWNvbnN0IGNoYXIgKnN0cjsKKworCWlmIChpZCA9PSBOVUxMKQorCQlyZXR1cm4gY2xrOworCisJaWYgKGRldiA9PSBOVUxMIHx8IGRldi0+YnVzICE9ICZwbGF0Zm9ybV9idXNfdHlwZSkKKwkJaWRubyA9IC0xOworCWVsc2UKKwkJaWRubyA9IHRvX3BsYXRmb3JtX2RldmljZShkZXYpLT5pZDsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKKwkJaWYgKHAtPmlkID09IGlkbm8gJiYKKwkJICAgIHN0cmNtcChpZCwgcC0+bmFtZSkgPT0gMCAmJiB0cnlfbW9kdWxlX2dldChwLT5vd25lcikpIHsKKwkJCWNsayA9IHA7CisJCQlnb3RvIGZvdW5kOworCQl9CisJfQorCisJc3RyID0gc3RycmNocihpZCwgJy4nKTsKKwlpZiAoc3RyKSB7CisJCWludCBjbnQgPSBzdHIgLSBpZDsKKwkJc3RyKys7CisJCWlkbm8gPSBzaW1wbGVfc3RydG9sKHN0ciwgTlVMTCwgMTApOworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKKwkJCWlmIChwLT5pZCA9PSBpZG5vICYmCisJCQkgICAgc3RybGVuKHAtPm5hbWUpID09IGNudCAmJgorCQkJICAgIHN0cm5jbXAoaWQsIHAtPm5hbWUsIGNudCkgPT0gMCAmJgorCQkJICAgIHRyeV9tb2R1bGVfZ2V0KHAtPm93bmVyKSkgeworCQkJCWNsayA9IHA7CisJCQkJZ290byBmb3VuZDsKKwkJCX0KKwkJfQorCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnkocCwgJmNsb2Nrcywgbm9kZSkgeworCQlpZiAoc3RyY21wKGlkLCBwLT5uYW1lKSA9PSAwICYmIHRyeV9tb2R1bGVfZ2V0KHAtPm93bmVyKSkgeworCQkJY2xrID0gcDsKKwkJCWdvdG8gZm91bmQ7CisJCX0KKwl9CisKKwlwcmludGsoS0VSTl9XQVJOSU5HICJjbGs6IFVuYWJsZSB0byBnZXQgcmVxdWVzdGVkIGNsb2NrOiAlc1xuIiwgaWQpOworCitmb3VuZDoKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gY2xrOworfQorRVhQT1JUX1NZTUJPTChjbGtfZ2V0KTsKKworc3RhdGljIHZvaWQgX19jbGtfZGlzYWJsZShzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm47CisKKwlfX2Nsa19kaXNhYmxlKGNsay0+cGFyZW50KTsKKwlfX2Nsa19kaXNhYmxlKGNsay0+c2Vjb25kYXJ5KTsKKworCWlmICghKC0tY2xrLT51c2Vjb3VudCkgJiYgY2xrLT5kaXNhYmxlKQorCQljbGstPmRpc2FibGUoY2xrKTsKK30KKworc3RhdGljIGludCBfX2Nsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX2Nsa19lbmFibGUoY2xrLT5wYXJlbnQpOworCV9fY2xrX2VuYWJsZShjbGstPnNlY29uZGFyeSk7CisKKwlpZiAoY2xrLT51c2Vjb3VudCsrID09IDAgJiYgY2xrLT5lbmFibGUpCisJCWNsay0+ZW5hYmxlKGNsayk7CisKKwlyZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlvbiBpbmNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgb24gdGhlIGNsb2NrIGFuZCBlbmFibGVzIHRoZQorICogY2xvY2sgaWYgbm90IGFscmVhZHkgZW5hYmxlZC4gVGhlIHBhcmVudCBjbG9jayB0cmVlIGlzIHJlY3Vyc2l2ZWx5IGVuYWJsZWQKKyAqLworaW50IGNsa19lbmFibGUoc3RydWN0IGNsayAqY2xrKQoreworCWludCByZXQgPSAwOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmNsb2Nrc19tdXRleCk7CisJcmV0ID0gX19jbGtfZW5hYmxlKGNsayk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX2VuYWJsZSk7CisKKy8qIFRoaXMgZnVuY3Rpb24gZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IG9uIHRoZSBjbG9jayBhbmQgZGlzYWJsZXMKKyAqIHRoZSBjbG9jayB3aGVuIHJlZmVyZW5jZSBjb3VudCBpcyAwLiBUaGUgcGFyZW50IGNsb2NrIHRyZWUgaXMKKyAqIHJlY3Vyc2l2ZWx5IGRpc2FibGVkCisgKi8KK3ZvaWQgY2xrX2Rpc2FibGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlfX2Nsa19kaXNhYmxlKGNsayk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworfQorRVhQT1JUX1NZTUJPTChjbGtfZGlzYWJsZSk7CisKKy8qIFJldHJpZXZlIHRoZSAqY3VycmVudCogY2xvY2sgcmF0ZS4gSWYgdGhlIGNsb2NrIGl0c2VsZgorICogZG9lcyBub3QgcHJvdmlkZSBhIHNwZWNpYWwgY2FsY3VsYXRpb24gcm91dGluZSwgYXNrCisgKiBpdHMgcGFyZW50IGFuZCBzbyBvbiwgdW50aWwgb25lIGlzIGFibGUgdG8gcmV0dXJuCisgKiBhIHZhbGlkIGNsb2NrIHJhdGUKKyAqLwordW5zaWduZWQgbG9uZyBjbGtfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIDBVTDsKKworCWlmIChjbGstPmdldF9yYXRlKQorCQlyZXR1cm4gY2xrLT5nZXRfcmF0ZShjbGspOworCisJcmV0dXJuIGNsa19nZXRfcmF0ZShjbGstPnBhcmVudCk7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19nZXRfcmF0ZSk7CisKKy8qIERlY3JlbWVudCB0aGUgY2xvY2sncyBtb2R1bGUgcmVmZXJlbmNlIGNvdW50ICovCit2b2lkIGNsa19wdXQoc3RydWN0IGNsayAqY2xrKQoreworCWlmIChjbGsgJiYgIUlTX0VSUihjbGspKQorCQltb2R1bGVfcHV0KGNsay0+b3duZXIpOworfQorRVhQT1JUX1NZTUJPTChjbGtfcHV0KTsKKworLyogUm91bmQgdGhlIHJlcXVlc3RlZCBjbG9jayByYXRlIHRvIHRoZSBuZWFyZXN0IHN1cHBvcnRlZAorICogcmF0ZSB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVxdWVzdGVkIHJhdGUuCisgKiBUaGlzIGlzIGRlcGVuZGVudCBvbiB0aGUgY2xvY2sncyBjdXJyZW50IHBhcmVudC4KKyAqLworbG9uZyBjbGtfcm91bmRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykgfHwgIWNsay0+cm91bmRfcmF0ZSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gY2xrLT5yb3VuZF9yYXRlKGNsaywgcmF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGNsa19yb3VuZF9yYXRlKTsKKworLyogU2V0IHRoZSBjbG9jayB0byB0aGUgcmVxdWVzdGVkIGNsb2NrIHJhdGUuIFRoZSByYXRlIG11c3QKKyAqIG1hdGNoIGEgc3VwcG9ydGVkIHJhdGUgZXhhY3RseSBiYXNlZCBvbiB3aGF0IGNsa19yb3VuZF9yYXRlIHJldHVybnMKKyAqLworaW50IGNsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlpbnQgcmV0ID0gLUVJTlZBTDsKKworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSB8fCBjbGstPnNldF9yYXRlID09IE5VTEwgfHwgcmF0ZSA9PSAwKQorCQlyZXR1cm4gcmV0OworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlyZXQgPSBjbGstPnNldF9yYXRlKGNsaywgcmF0ZSk7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3NldF9yYXRlKTsKKworLyogU2V0IHRoZSBjbG9jaydzIHBhcmVudCB0byBhbm90aGVyIGNsb2NrIHNvdXJjZSAqLworaW50IGNsa19zZXRfcGFyZW50KHN0cnVjdCBjbGsgKmNsaywgc3RydWN0IGNsayAqcGFyZW50KQoreworCWludCByZXQgPSAtRUlOVkFMOworCisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspIHx8IHBhcmVudCA9PSBOVUxMIHx8CisJICAgIElTX0VSUihwYXJlbnQpIHx8IGNsay0+c2V0X3BhcmVudCA9PSBOVUxMKQorCQlyZXR1cm4gcmV0OworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlyZXQgPSBjbGstPnNldF9wYXJlbnQoY2xrLCBwYXJlbnQpOworCWlmIChyZXQgPT0gMCkKKwkJY2xrLT5wYXJlbnQgPSBwYXJlbnQ7CisJbXV0ZXhfdW5sb2NrKCZjbG9ja3NfbXV0ZXgpOworCisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3NldF9wYXJlbnQpOworCisvKiBSZXRyaWV2ZSB0aGUgY2xvY2sncyBwYXJlbnQgY2xvY2sgc291cmNlICovCitzdHJ1Y3QgY2xrICpjbGtfZ2V0X3BhcmVudChzdHJ1Y3QgY2xrICpjbGspCit7CisJc3RydWN0IGNsayAqcmV0ID0gTlVMTDsKKworCWlmIChjbGsgPT0gTlVMTCB8fCBJU19FUlIoY2xrKSkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiBjbGstPnBhcmVudDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX2dldF9wYXJlbnQpOworCisvKgorICogQWRkIGEgbmV3IGNsb2NrIHRvIHRoZSBjbG9jayB0cmVlLgorICovCitpbnQgY2xrX3JlZ2lzdGVyKHN0cnVjdCBjbGsgKmNsaykKK3sKKwlpZiAoY2xrID09IE5VTEwgfHwgSVNfRVJSKGNsaykpCisJCXJldHVybiAtRUlOVkFMOworCisJbXV0ZXhfbG9jaygmY2xvY2tzX211dGV4KTsKKwlsaXN0X2FkZCgmY2xrLT5ub2RlLCAmY2xvY2tzKTsKKwltdXRleF91bmxvY2soJmNsb2Nrc19tdXRleCk7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3JlZ2lzdGVyKTsKKworLyogUmVtb3ZlIGEgY2xvY2sgZnJvbSB0aGUgY2xvY2sgdHJlZSAqLwordm9pZCBjbGtfdW5yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspCit7CisJaWYgKGNsayA9PSBOVUxMIHx8IElTX0VSUihjbGspKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZjbG9ja3NfbXV0ZXgpOworCWxpc3RfZGVsKCZjbGstPm5vZGUpOworCW11dGV4X3VubG9jaygmY2xvY2tzX211dGV4KTsKK30KK0VYUE9SVF9TWU1CT0woY2xrX3VucmVnaXN0ZXIpOworCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK3N0YXRpYyBpbnQgbXhjX2Nsb2NrX3JlYWRfcHJvYyhjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsIG9mZl90IG9mZiwKKwkJCQlpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQoreworCXN0cnVjdCBjbGsgKmNsa3A7CisJY2hhciAqcCA9IHBhZ2U7CisJaW50IGxlbjsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2xrcCwgJmNsb2Nrcywgbm9kZSkgeworCQlwICs9IHNwcmludGYocCwgIiVzLSVkOlx0XHQlbHUsICVkIiwgY2xrcC0+bmFtZSwgY2xrcC0+aWQsCisJCQkJY2xrX2dldF9yYXRlKGNsa3ApLCBjbGtwLT51c2Vjb3VudCk7CisJCWlmIChjbGtwLT5wYXJlbnQpCisJCQlwICs9IHNwcmludGYocCwgIiwgJXMtJWRcbiIsIGNsa3AtPnBhcmVudC0+bmFtZSwKKwkJCQkgICAgIGNsa3AtPnBhcmVudC0+aWQpOworCQllbHNlCisJCQlwICs9IHNwcmludGYocCwgIlxuIik7CisJfQorCisJbGVuID0gKHAgLSBwYWdlKSAtIG9mZjsKKwlpZiAobGVuIDwgMCkKKwkJbGVuID0gMDsKKworCSplb2YgPSAobGVuIDw9IGNvdW50KSA/IDEgOiAwOworCSpzdGFydCA9IHBhZ2UgKyBvZmY7CisKKwlyZXR1cm4gbGVuOworfQorCitzdGF0aWMgaW50IF9faW5pdCBteGNfc2V0dXBfcHJvY19lbnRyeSh2b2lkKQoreworCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcmVzOworCisJcmVzID0gY3JlYXRlX3Byb2NfcmVhZF9lbnRyeSgiY3B1L2Nsb2NrcyIsIDAsIE5VTEwsCisJCQkJICAgICBteGNfY2xvY2tfcmVhZF9wcm9jLCBOVUxMKTsKKwlpZiAoIXJlcykgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBjcmVhdGUgcHJvYy9jcHUvY2xvY2tzXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCXJldHVybiAwOworfQorCitsYXRlX2luaXRjYWxsKG14Y19zZXR1cF9wcm9jX2VudHJ5KTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvZ3Bpby5jIGIvYXJjaC9hcm0vcGxhdC1teGMvZ3Bpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzczNjcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9ncGlvLmMKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBNWEMgR1BJTyBzdXBwb3J0LiAoYykgMjAwOCBEYW5pZWwgTWFjayA8ZGFuaWVsQGNhaWFxLmRlPgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gRnJlZXNjYWxlLAorICogQ29weXJpZ2h0IDIwMDQtMjAwNiBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvYnVnLmg+CisKK3N0YXRpYyBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqbXhjX2dwaW9fcG9ydHM7CitzdGF0aWMgaW50IGdwaW9fdGFibGVfc2l6ZTsKKworLyogTm90ZTogVGhpcyBkcml2ZXIgYXNzdW1lcyAzMiBHUElPcyBhcmUgaGFuZGxlZCBpbiBvbmUgcmVnaXN0ZXIgKi8KKworc3RhdGljIHZvaWQgX2NsZWFyX2dwaW9faXJxc3RhdHVzKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCB1MzIgaW5kZXgpCit7CisJX19yYXdfd3JpdGVsKDEgPDwgaW5kZXgsIHBvcnQtPmJhc2UgKyBHUElPX0lTUik7Cit9CisKK3N0YXRpYyB2b2lkIF9zZXRfZ3Bpb19pcnFlbmFibGUoc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQsIHUzMiBpbmRleCwKKwkJCQlpbnQgZW5hYmxlKQoreworCXUzMiBsOworCisJbCA9IF9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0lNUik7CisJbCA9IChsICYgKH4oMSA8PCBpbmRleCkpKSB8ICghIWVuYWJsZSA8PCBpbmRleCk7CisJX19yYXdfd3JpdGVsKGwsIHBvcnQtPmJhc2UgKyBHUElPX0lNUik7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fYWNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfY2xlYXJfZ3Bpb19pcnFzdGF0dXMoJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl0sIGdwaW8gJiAweDFmKTsKK30KKworc3RhdGljIHZvaWQgZ3Bpb19tYXNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfc2V0X2dwaW9faXJxZW5hYmxlKCZteGNfZ3Bpb19wb3J0c1tncGlvIC8gMzJdLCBncGlvICYgMHgxZiwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGdwaW9fdW5tYXNrX2lycSh1MzIgaXJxKQoreworCXUzMiBncGlvID0gaXJxX3RvX2dwaW8oaXJxKTsKKwlfc2V0X2dwaW9faXJxZW5hYmxlKCZteGNfZ3Bpb19wb3J0c1tncGlvIC8gMzJdLCBncGlvICYgMHgxZiwgMSk7Cit9CisKK3N0YXRpYyBpbnQgZ3Bpb19zZXRfaXJxX3R5cGUodTMyIGlycSwgdTMyIHR5cGUpCit7CisJdTMyIGdwaW8gPSBpcnFfdG9fZ3BpbyhpcnEpOworCXN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0ID0gJm14Y19ncGlvX3BvcnRzW2dwaW8gLyAzMl07CisJdTMyIGJpdCwgdmFsOworCWludCBlZGdlOworCXZvaWQgX19pb21lbSAqcmVnID0gcG9ydC0+YmFzZTsKKworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgSVJRVF9SSVNJTkc6CisJCWVkZ2UgPSBHUElPX0lOVF9SSVNFX0VER0U7CisJCWJyZWFrOworCWNhc2UgSVJRVF9GQUxMSU5HOgorCQllZGdlID0gR1BJT19JTlRfRkFMTF9FREdFOworCQlicmVhazsKKwljYXNlIElSUVRfTE9XOgorCQllZGdlID0gR1BJT19JTlRfTE9XX0xFVjsKKwkJYnJlYWs7CisJY2FzZSBJUlFUX0hJR0g6CisJCWVkZ2UgPSBHUElPX0lOVF9ISUdIX0xFVjsKKwkJYnJlYWs7CisJZGVmYXVsdDoJLyogdGhpcyBpbmNsdWRlcyBJUlFUX0JPVEhFREdFICovCisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJlZyArPSBHUElPX0lDUjEgKyAoKGdwaW8gJiAweDEwKSA+PiAyKTsgLyogbG93ZXIgb3IgdXBwZXIgcmVnaXN0ZXIgKi8KKwliaXQgPSBncGlvICYgMHhmOworCXZhbCA9IF9fcmF3X3JlYWRsKHJlZykgJiB+KDB4MyA8PCAoYml0IDw8IDEpKTsKKwlfX3Jhd193cml0ZWwodmFsIHwgKGVkZ2UgPDwgKGJpdCA8PCAxKSksIHJlZyk7CisJX2NsZWFyX2dwaW9faXJxc3RhdHVzKHBvcnQsIGdwaW8gJiAweDFmKTsKKworCXJldHVybiAwOworfQorCisvKiBoYW5kbGUgbiBpbnRlcnJ1cHRzIGluIG9uZSBzdGF0dXMgcmVnaXN0ZXIgKi8KK3N0YXRpYyB2b2lkIG14Y19ncGlvX2lycV9oYW5kbGVyKHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCB1MzIgaXJxX3N0YXQpCit7CisJdTMyIGdwaW9faXJxX25vOworCisJZ3Bpb19pcnFfbm8gPSBwb3J0LT52aXJ0dWFsX2lycV9zdGFydDsKKwlmb3IgKDsgaXJxX3N0YXQgIT0gMDsgaXJxX3N0YXQgPj49IDEsIGdwaW9faXJxX25vKyspIHsKKworCQlpZiAoKGlycV9zdGF0ICYgMSkgPT0gMCkKKwkJCWNvbnRpbnVlOworCisJCUJVR19PTighKGlycV9kZXNjW2dwaW9faXJxX25vXS5oYW5kbGVfaXJxKSk7CisJCWlycV9kZXNjW2dwaW9faXJxX25vXS5oYW5kbGVfaXJxKGdwaW9faXJxX25vLAorCQkJCSZpcnFfZGVzY1tncGlvX2lycV9ub10pOworCX0KK30KKworI2lmZGVmIENPTkZJR19BUkNIX01YMworLyogTVgzIGhhcyBvbmUgaW50ZXJydXB0ICpwZXIqIGdwaW8gcG9ydCAqLworc3RhdGljIHZvaWQgbXgzX2dwaW9faXJxX2hhbmRsZXIodTMyIGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworCXUzMiBpcnFfc3RhdDsKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9IChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqKWdldF9pcnFfZGF0YShpcnEpOworCisJaXJxX3N0YXQgPSBfX3Jhd19yZWFkbChwb3J0LT5iYXNlICsgR1BJT19JU1IpICYKKwkJCV9fcmF3X3JlYWRsKHBvcnQtPmJhc2UgKyBHUElPX0lNUik7CisJQlVHX09OKCFpcnFfc3RhdCk7CisJbXhjX2dwaW9faXJxX2hhbmRsZXIocG9ydCwgaXJxX3N0YXQpOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKy8qIE1YMiBoYXMgb25lIGludGVycnVwdCAqZm9yIGFsbCogZ3BpbyBwb3J0cyAqLworc3RhdGljIHZvaWQgbXgyX2dwaW9faXJxX2hhbmRsZXIodTMyIGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjKQoreworCWludCBpOworCXUzMiBpcnFfbXNrLCBpcnFfc3RhdDsKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9IChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqKWdldF9pcnFfZGF0YShpcnEpOworCisJLyogd2FsayB0aHJvdWdoIGFsbCBpbnRlcnJ1cHQgc3RhdHVzIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IDA7IGkgPCBncGlvX3RhYmxlX3NpemU7IGkrKykgeworCQlpcnFfbXNrID0gX19yYXdfcmVhZGwocG9ydFtpXS5iYXNlICsgR1BJT19JTVIpOworCQlpZiAoIWlycV9tc2spCisJCQljb250aW51ZTsKKworCQlpcnFfc3RhdCA9IF9fcmF3X3JlYWRsKHBvcnRbaV0uYmFzZSArIEdQSU9fSVNSKSAmIGlycV9tc2s7CisJCWlmIChpcnFfc3RhdCkKKwkJCW14Y19ncGlvX2lycV9oYW5kbGVyKCZwb3J0W2ldLCBpcnFfc3RhdCk7CisJfQorfQorI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgZ3Bpb19pcnFfY2hpcCA9IHsKKwkuYWNrID0gZ3Bpb19hY2tfaXJxLAorCS5tYXNrID0gZ3Bpb19tYXNrX2lycSwKKwkudW5tYXNrID0gZ3Bpb191bm1hc2tfaXJxLAorCS5zZXRfdHlwZSA9IGdwaW9fc2V0X2lycV90eXBlLAorfTsKKworc3RhdGljIHZvaWQgX3NldF9ncGlvX2RpcmVjdGlvbihzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQsCisJCQkJaW50IGRpcikKK3sKKwlzdHJ1Y3QgbXhjX2dwaW9fcG9ydCAqcG9ydCA9CisJCWNvbnRhaW5lcl9vZihjaGlwLCBzdHJ1Y3QgbXhjX2dwaW9fcG9ydCwgY2hpcCk7CisJdTMyIGw7CisKKwlsID0gX19yYXdfcmVhZGwocG9ydC0+YmFzZSArIEdQSU9fR0RJUik7CisJaWYgKGRpcikKKwkJbCB8PSAxIDw8IG9mZnNldDsKKwllbHNlCisJCWwgJj0gfigxIDw8IG9mZnNldCk7CisJX19yYXdfd3JpdGVsKGwsIHBvcnQtPmJhc2UgKyBHUElPX0dESVIpOworfQorCitzdGF0aWMgdm9pZCBteGNfZ3Bpb19zZXQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQgPQorCQljb250YWluZXJfb2YoY2hpcCwgc3RydWN0IG14Y19ncGlvX3BvcnQsIGNoaXApOworCXZvaWQgX19pb21lbSAqcmVnID0gcG9ydC0+YmFzZSArIEdQSU9fRFI7CisJdTMyIGw7CisKKwlsID0gKF9fcmF3X3JlYWRsKHJlZykgJiAofigxIDw8IG9mZnNldCkpKSB8ICh2YWx1ZSA8PCBvZmZzZXQpOworCV9fcmF3X3dyaXRlbChsLCByZWcpOworfQorCitzdGF0aWMgaW50IG14Y19ncGlvX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IG14Y19ncGlvX3BvcnQgKnBvcnQgPQorCQljb250YWluZXJfb2YoY2hpcCwgc3RydWN0IG14Y19ncGlvX3BvcnQsIGNoaXApOworCisJcmV0dXJuIChfX3Jhd19yZWFkbChwb3J0LT5iYXNlICsgR1BJT19EUikgPj4gb2Zmc2V0KSAmIDE7Cit9CisKK3N0YXRpYyBpbnQgbXhjX2dwaW9fZGlyZWN0aW9uX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlfc2V0X2dwaW9fZGlyZWN0aW9uKGNoaXAsIG9mZnNldCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbXhjX2dwaW9fZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCSAgICAgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJX3NldF9ncGlvX2RpcmVjdGlvbihjaGlwLCBvZmZzZXQsIDEpOworCW14Y19ncGlvX3NldChjaGlwLCBvZmZzZXQsIHZhbHVlKTsKKwlyZXR1cm4gMDsKK30KKworaW50IF9faW5pdCBteGNfZ3Bpb19pbml0KHN0cnVjdCBteGNfZ3Bpb19wb3J0ICpwb3J0LCBpbnQgY250KQoreworCWludCBpLCBqOworCisJLyogc2F2ZSBmb3IgbG9jYWwgdXNhZ2UgKi8KKwlteGNfZ3Bpb19wb3J0cyA9IHBvcnQ7CisJZ3Bpb190YWJsZV9zaXplID0gY250OworCisJcHJpbnRrKEtFUk5fSU5GTyAiTVhDIEdQSU8gaGFyZHdhcmVcbiIpOworCisJZm9yIChpID0gMDsgaSA8IGNudDsgaSsrKSB7CisJCS8qIGRpc2FibGUgdGhlIGludGVycnVwdCBhbmQgY2xlYXIgdGhlIHN0YXR1cyAqLworCQlfX3Jhd193cml0ZWwoMCwgcG9ydFtpXS5iYXNlICsgR1BJT19JTVIpOworCQlfX3Jhd193cml0ZWwofjAsIHBvcnRbaV0uYmFzZSArIEdQSU9fSVNSKTsKKwkJZm9yIChqID0gcG9ydFtpXS52aXJ0dWFsX2lycV9zdGFydDsKKwkJCWogPCBwb3J0W2ldLnZpcnR1YWxfaXJxX3N0YXJ0ICsgMzI7IGorKykgeworCQkJc2V0X2lycV9jaGlwKGosICZncGlvX2lycV9jaGlwKTsKKwkJCXNldF9pcnFfaGFuZGxlcihqLCBoYW5kbGVfZWRnZV9pcnEpOworCQkJc2V0X2lycV9mbGFncyhqLCBJUlFGX1ZBTElEKTsKKwkJfQorCisJCS8qIHJlZ2lzdGVyIGdwaW8gY2hpcCAqLworCQlwb3J0W2ldLmNoaXAuZGlyZWN0aW9uX2lucHV0ID0gbXhjX2dwaW9fZGlyZWN0aW9uX2lucHV0OworCQlwb3J0W2ldLmNoaXAuZGlyZWN0aW9uX291dHB1dCA9IG14Y19ncGlvX2RpcmVjdGlvbl9vdXRwdXQ7CisJCXBvcnRbaV0uY2hpcC5nZXQgPSBteGNfZ3Bpb19nZXQ7CisJCXBvcnRbaV0uY2hpcC5zZXQgPSBteGNfZ3Bpb19zZXQ7CisJCXBvcnRbaV0uY2hpcC5iYXNlID0gaSAqIDMyOworCQlwb3J0W2ldLmNoaXAubmdwaW8gPSAzMjsKKworCQkvKiBpdHMgYSBzZXJpb3VzIGNvbmZpZ3VyYXRpb24gYnVnIHdoZW4gaXQgZmFpbHMgKi8KKwkJQlVHX09OKCBncGlvY2hpcF9hZGQoJnBvcnRbaV0uY2hpcCkgPCAwICk7CisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDMKKwkJLyogc2V0dXAgb25lIGhhbmRsZXIgZm9yIGVhY2ggZW50cnkgKi8KKwkJc2V0X2lycV9jaGFpbmVkX2hhbmRsZXIocG9ydFtpXS5pcnEsIG14M19ncGlvX2lycV9oYW5kbGVyKTsKKwkJc2V0X2lycV9kYXRhKHBvcnRbaV0uaXJxLCAmcG9ydFtpXSk7CisjZW5kaWYKKwl9CisKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKwkvKiBzZXR1cCBvbmUgaGFuZGxlciBmb3IgYWxsIEdQSU8gaW50ZXJydXB0cyAqLworCXNldF9pcnFfY2hhaW5lZF9oYW5kbGVyKHBvcnRbMF0uaXJxLCBteDJfZ3Bpb19pcnFfaGFuZGxlcik7CisJc2V0X2lycV9kYXRhKHBvcnRbMF0uaXJxLCBwb3J0KTsKKyNlbmRpZgorCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1teGMvaW9tdXgtbXgxLW14Mi5jIGIvYXJjaC9hcm0vcGxhdC1teGMvaW9tdXgtbXgxLW14Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ODU1NzEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9wbGF0LW14Yy9pb211eC1teDEtbXgyLmMKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiAgYXJjaC9hcm0vbWFjaC1teGMvZ2VuZXJpYy5jCisgKgorICogIGF1dGhvcjogU2FzY2hhIEhhdWVyCisgKiAgQ3JlYXRlZDogYXByaWwgMjB0aCwgMjAwNAorICogIENvcHlyaWdodDogU3luZXJ0cm9uaXh4IEdtYkgKKyAqCisgKiAgQ29tbW9uIGNvZGUgZm9yIGkuTVggbWFjaGluZXMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC9tYXAuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9pb211eC1teDEtbXgyLmg+CisKK3ZvaWQgbXhjX2dwaW9fbW9kZShpbnQgZ3Bpb19tb2RlKQoreworCXVuc2lnbmVkIGludCBwaW4gPSBncGlvX21vZGUgJiBHUElPX1BJTl9NQVNLOworCXVuc2lnbmVkIGludCBwb3J0ID0gKGdwaW9fbW9kZSAmIEdQSU9fUE9SVF9NQVNLKSA+PiBHUElPX1BPUlRfU0hJRlQ7CisJdW5zaWduZWQgaW50IG9jciA9IChncGlvX21vZGUgJiBHUElPX09DUl9NQVNLKSA+PiBHUElPX09DUl9TSElGVDsKKwl1bnNpZ25lZCBpbnQgdG1wOworCisJLyogUHVsbHVwIGVuYWJsZSAqLworCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19QVUVOKHBvcnQpKTsKKwlpZiAoZ3Bpb19tb2RlICYgR1BJT19QVUVOKQorCQl0bXAgfD0gKDEgPDwgcGluKTsKKwllbHNlCisJCXRtcCAmPSB+KDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfUFVFTihwb3J0KSk7CisKKwkvKiBEYXRhIGRpcmVjdGlvbiAqLworCXRtcCA9IF9fcmF3X3JlYWRsKFZBX0dQSU9fQkFTRSArIE1YQ19ERElSKHBvcnQpKTsKKwlpZiAoZ3Bpb19tb2RlICYgR1BJT19PVVQpCisJCXRtcCB8PSAxIDw8IHBpbjsKKwllbHNlCisJCXRtcCAmPSB+KDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfRERJUihwb3J0KSk7CisKKwkvKiBQcmltYXJ5IC8gYWx0ZXJuYXRlIGZ1bmN0aW9uICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX0dQUihwb3J0KSk7CisJaWYgKGdwaW9fbW9kZSAmIEdQSU9fQUYpCisJCXRtcCB8PSAoMSA8PCBwaW4pOworCWVsc2UKKwkJdG1wICY9IH4oMSA8PCBwaW4pOworCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19HUFIocG9ydCkpOworCisJLyogdXNlIGFzIGdwaW8/ICovCisJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX0dJVVMocG9ydCkpOworCWlmIChncGlvX21vZGUgJiAoR1BJT19QRiB8IEdQSU9fQUYpKQorCQl0bXAgJj0gfigxIDw8IHBpbik7CisJZWxzZQorCQl0bXAgfD0gKDEgPDwgcGluKTsKKwlfX3Jhd193cml0ZWwodG1wLCBWQV9HUElPX0JBU0UgKyBNWENfR0lVUyhwb3J0KSk7CisKKwlpZiAocGluIDwgMTYpIHsKKwkJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX09DUjEocG9ydCkpOworCQl0bXAgJj0gfigzIDw8IChwaW4gKiAyKSk7CisJCXRtcCB8PSAob2NyIDw8IChwaW4gKiAyKSk7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19PQ1IxKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZBMShwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQU9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkExKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZCMShwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQk9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIxKHBvcnQpKTsKKwl9IGVsc2UgeworCQlwaW4gLT0gMTY7CisKKwkJdG1wID0gX19yYXdfcmVhZGwoVkFfR1BJT19CQVNFICsgTVhDX09DUjIocG9ydCkpOworCQl0bXAgJj0gfigzIDw8IChwaW4gKiAyKSk7CisJCXRtcCB8PSAob2NyIDw8IChwaW4gKiAyKSk7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19PQ1IyKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZBMihwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQU9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkEyKHBvcnQpKTsKKworCQl0bXAgPSBfX3Jhd19yZWFkbChWQV9HUElPX0JBU0UgKyBNWENfSUNPTkZCMihwb3J0KSk7CisJCXRtcCAmPSB+KDMgPDwgKHBpbiAqIDIpKTsKKwkJdG1wIHw9ICgoZ3Bpb19tb2RlID4+IEdQSU9fQk9VVF9TSElGVCkgJiAzKSA8PCAocGluICogMik7CisJCV9fcmF3X3dyaXRlbCh0bXAsIFZBX0dQSU9fQkFTRSArIE1YQ19JQ09ORkIyKHBvcnQpKTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKG14Y19ncGlvX21vZGUpOworCitpbnQgbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhjb25zdCBpbnQgKnBpbl9saXN0LCB1bnNpZ25lZCBjb3VudCwKKwkJCQlpbnQgYWxsb2NfbW9kZSwgY29uc3QgY2hhciAqbGFiZWwpCit7CisJY29uc3QgaW50ICpwID0gcGluX2xpc3Q7CisJaW50IGk7CisJdW5zaWduZWQgZ3BpbzsKKwl1bnNpZ25lZCBtb2RlOworCisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKwkJZ3BpbyA9ICpwICYgKEdQSU9fUElOX01BU0sgfCBHUElPX1BPUlRfTUFTSyk7CisJCW1vZGUgPSAqcCAmIH4oR1BJT19QSU5fTUFTSyB8IEdQSU9fUE9SVF9NQVNLKTsKKworCQlpZiAoZ3BpbyA+PSAoR1BJT19QT1JUX01BWCArIDEpICogMzIpCisJCQlnb3RvIHNldHVwX2Vycm9yOworCisJCWlmIChhbGxvY19tb2RlICYgTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFKQorCQkJZ3Bpb19mcmVlKGdwaW8pOworCQllbHNlIGlmICghKGFsbG9jX21vZGUgJiBNWENfR1BJT19BTExPQ19NT0RFX05PX0FMTE9DKSkKKwkJCWlmIChncGlvX3JlcXVlc3QoZ3BpbywgbGFiZWwpCisJCQkgICAmJiAhKGFsbG9jX21vZGUgJiBNWENfR1BJT19BTExPQ19NT0RFX1RSWV9BTExPQykpCisJCQkJZ290byBzZXR1cF9lcnJvcjsKKworCQlpZiAoIShhbGxvY19tb2RlICYgKE1YQ19HUElPX0FMTE9DX01PREVfQUxMT0NfT05MWSB8CisJCQkJICAgIE1YQ19HUElPX0FMTE9DX01PREVfUkVMRUFTRSkpKQorCQkJbXhjX2dwaW9fbW9kZShncGlvIHwgbW9kZSk7CisKKwkJcCsrOworCX0KKwlyZXR1cm4gMDsKKworc2V0dXBfZXJyb3I6CisJaWYgKGFsbG9jX21vZGUgJiAoTVhDX0dQSU9fQUxMT0NfTU9ERV9OT19BTExPQyB8CisJICAgIE1YQ19HUElPX0FMTE9DX01PREVfVFJZX0FMTE9DKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl3aGlsZSAocCAhPSBwaW5fbGlzdCkgeworCQlwLS07CisJCWdwaW8gPSAqcCAmIChHUElPX1BJTl9NQVNLIHwgR1BJT19QT1JUX01BU0spOworCQlncGlvX2ZyZWUoZ3Bpbyk7CisJfQorCisJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MKG14Y19ncGlvX3NldHVwX211bHRpcGxlX3BpbnMpOworCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW14Yy9pcnEuYyBiL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCmluZGV4IDJhZDVhNjkuLjFmYmUwMWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCisrKyBiL2FyY2gvYXJtL3BsYXQtbXhjL2lycS5jCkBAIC0xLDI0ICsxLDU5IEBACiAvKgotICogIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KIAorI2RlZmluZSBBVklDX0JBU0UJCUlPX0FERFJFU1MoQVZJQ19CQVNFX0FERFIpCisjZGVmaW5lIEFWSUNfSU5UQ05UTAkJKEFWSUNfQkFTRSArIDB4MDApCS8qIGludCBjb250cm9sIHJlZyAqLworI2RlZmluZSBBVklDX05JTUFTSwkJKEFWSUNfQkFTRSArIDB4MDQpCS8qIGludCBtYXNrIHJlZyAqLworI2RlZmluZSBBVklDX0lOVEVOTlVNCQkoQVZJQ19CQVNFICsgMHgwOCkJLyogaW50IGVuYWJsZSBudW1iZXIgcmVnICovCisjZGVmaW5lIEFWSUNfSU5URElTTlVNCQkoQVZJQ19CQVNFICsgMHgwQykJLyogaW50IGRpc2FibGUgbnVtYmVyIHJlZyAqLworI2RlZmluZSBBVklDX0lOVEVOQUJMRUgJCShBVklDX0JBU0UgKyAweDEwKQkvKiBpbnQgZW5hYmxlIHJlZyBoaWdoICovCisjZGVmaW5lIEFWSUNfSU5URU5BQkxFTAkJKEFWSUNfQkFTRSArIDB4MTQpCS8qIGludCBlbmFibGUgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX0lOVFRZUEVICQkoQVZJQ19CQVNFICsgMHgxOCkJLyogaW50IHR5cGUgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRUWVBFTAkJKEFWSUNfQkFTRSArIDB4MUMpCS8qIGludCB0eXBlIHJlZyBsb3cgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNwkoQVZJQ19CQVNFICsgMHgyMCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNyAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFk2CShBVklDX0JBU0UgKyAweDI0KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw2ICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTUJKEFWSUNfQkFTRSArIDB4MjgpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDUgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNAkoQVZJQ19CQVNFICsgMHgyQykJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNCAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFkzCShBVklDX0JBU0UgKyAweDMwKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwzICovCisjZGVmaW5lIEFWSUNfTklQUklPUklUWTIJKEFWSUNfQkFTRSArIDB4MzQpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDIgKi8KKyNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMQkoQVZJQ19CQVNFICsgMHgzOCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMSAqLworI2RlZmluZSBBVklDX05JUFJJT1JJVFkwCShBVklDX0JBU0UgKyAweDNDKQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwwICovCisjZGVmaW5lIEFWSUNfTklWRUNTUgkJKEFWSUNfQkFTRSArIDB4NDApCS8qIG5vcm0gaW50IHZlY3Rvci9zdGF0dXMgKi8KKyNkZWZpbmUgQVZJQ19GSVZFQ1NSCQkoQVZJQ19CQVNFICsgMHg0NCkJLyogZmFzdCBpbnQgdmVjdG9yL3N0YXR1cyAqLworI2RlZmluZSBBVklDX0lOVFNSQ0gJCShBVklDX0JBU0UgKyAweDQ4KQkvKiBpbnQgc291cmNlIHJlZyBoaWdoICovCisjZGVmaW5lIEFWSUNfSU5UU1JDTAkJKEFWSUNfQkFTRSArIDB4NEMpCS8qIGludCBzb3VyY2UgcmVnIGxvdyAqLworI2RlZmluZSBBVklDX0lOVEZSQ0gJCShBVklDX0JBU0UgKyAweDUwKQkvKiBpbnQgZm9yY2UgcmVnIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19JTlRGUkNMCQkoQVZJQ19CQVNFICsgMHg1NCkJLyogaW50IGZvcmNlIHJlZyBsb3cgKi8KKyNkZWZpbmUgQVZJQ19OSVBOREgJCShBVklDX0JBU0UgKyAweDU4KQkvKiBub3JtIGludCBwZW5kaW5nIGhpZ2ggKi8KKyNkZWZpbmUgQVZJQ19OSVBOREwJCShBVklDX0JBU0UgKyAweDVDKQkvKiBub3JtIGludCBwZW5kaW5nIGxvdyAqLworI2RlZmluZSBBVklDX0ZJUE5ESAkJKEFWSUNfQkFTRSArIDB4NjApCS8qIGZhc3QgaW50IHBlbmRpbmcgaGlnaCAqLworI2RlZmluZSBBVklDX0ZJUE5ETAkJKEFWSUNfQkFTRSArIDB4NjQpCS8qIGZhc3QgaW50IHBlbmRpbmcgbG93ICovCisKKyNkZWZpbmUgU1lTVEVNX1BSRVZfUkVHCQlJT19BRERSRVNTKElJTV9CQVNFX0FERFIgKyAweDIwKQorI2RlZmluZSBTWVNURU1fU1JFVl9SRUcJCUlPX0FERFJFU1MoSUlNX0JBU0VfQUREUiArIDB4MjQpCisjZGVmaW5lIElJTV9QUk9EX1JFVl9TSAkJMworI2RlZmluZSBJSU1fUFJPRF9SRVZfTEVOCTUKKwogLyogRGlzYWJsZSBpbnRlcnJ1cHQgbnVtYmVyICJpcnEiIGluIHRoZSBBVklDICovCiBzdGF0aWMgdm9pZCBteGNfbWFza19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKQEAgLTMyLDcgKzY3LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBteGNfYXZpY19jaGlwID0gewotCS5tYXNrX2FjayA9IG14Y19tYXNrX2lycSwKKwkuYWNrID0gbXhjX21hc2tfaXJxLAogCS5tYXNrID0gbXhjX21hc2tfaXJxLAogCS51bm1hc2sgPSBteGNfdW5tYXNrX2lycSwKIH07CkBAIC03MSw1ICsxMDYsOCBAQAogCXJlZyB8PSAoMHhGIDw8IDI4KTsKIAlfX3Jhd193cml0ZWwocmVnLCBBVklDX05JUFJJT1JJVFk2KTsKIAorCS8qIGluaXQgYXJjaGl0ZWN0dXJlcyBjaGFpbmVkIGludGVycnVwdCBoYW5kbGVyICovCisJbXhjX3JlZ2lzdGVyX2dwaW9zKCk7CisKIAlwcmludGsoS0VSTl9JTkZPICJNWEMgSVJRIGluaXRpYWxpemVkXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYyBiL2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmY4NjM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1teGMvdGltZS5jCkBAIC0wLDAgKzEsMjI4IEBACisvKgorICogIGxpbnV4L2FyY2gvYXJtL3BsYXQtbXhjL3RpbWUuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zCisgKiAgQ29weXJpZ2h0IChDKSAyMDAyIFNoYW5lIE5heSAoc2hhbmVAbWluaXJsLmNvbSkKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNyBQYXZlbCBQaXNhIChwcGlzYUBwaWtyb24uY29tKQorICogIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbW1vbi5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL214Y190aW1lci5oPgorCitzdGF0aWMgc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSBjbG9ja2V2ZW50X214YzsKK3N0YXRpYyBlbnVtIGNsb2NrX2V2ZW50X21vZGUgY2xvY2tldmVudF9tb2RlID0gQ0xPQ0tfRVZUX01PREVfVU5VU0VEOworCisvKiBjbG9jayBzb3VyY2UgZm9yIHRoZSB0aW1lciAqLworc3RhdGljIHN0cnVjdCBjbGsgKnRpbWVyX2NsazsKKworLyogY2xvY2sgc291cmNlICovCisKK3N0YXRpYyBjeWNsZV90IG14Y19nZXRfY3ljbGVzKHZvaWQpCit7CisJcmV0dXJuIF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENOKTsKK30KKworc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV9teGMgPSB7CisJLm5hbWUgCQk9ICJteGNfdGltZXIxIiwKKwkucmF0aW5nCQk9IDIwMCwKKwkucmVhZAkJPSBteGNfZ2V0X2N5Y2xlcywKKwkubWFzawkJPSBDTE9DS1NPVVJDRV9NQVNLKDMyKSwKKwkuc2hpZnQgCQk9IDIwLAorCS5mbGFncwkJPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IG14Y19jbG9ja3NvdXJjZV9pbml0KHZvaWQpCit7CisJdW5zaWduZWQgaW50IGNsb2NrOworCisJY2xvY2sgPSBjbGtfZ2V0X3JhdGUodGltZXJfY2xrKTsKKworCWNsb2Nrc291cmNlX214Yy5tdWx0ID0gY2xvY2tzb3VyY2VfaHoybXVsdChjbG9jaywKKwkJCQkJY2xvY2tzb3VyY2VfbXhjLnNoaWZ0KTsKKwljbG9ja3NvdXJjZV9yZWdpc3RlcigmY2xvY2tzb3VyY2VfbXhjKTsKKworCXJldHVybiAwOworfQorCisvKiBjbG9jayBldmVudCAqLworCitzdGF0aWMgaW50IG14Y19zZXRfbmV4dF9ldmVudCh1bnNpZ25lZCBsb25nIGV2dCwKKwkJCSAgICAgIHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UgKnVudXNlZCkKK3sKKwl1bnNpZ25lZCBsb25nIHRjbXA7CisKKwl0Y21wID0gX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ04pICsgZXZ0OworCV9fcmF3X3dyaXRlbCh0Y21wLCBUSU1FUl9CQVNFICsgTVhDX1RDTVApOworCisJcmV0dXJuIChpbnQpKHRjbXAgLSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDTikpIDwgMCA/CisJCQkJLUVUSU1FIDogMDsKK30KKworI2lmZGVmIERFQlVHCitzdGF0aWMgY29uc3QgY2hhciAqY2xvY2tfZXZlbnRfbW9kZV9sYWJlbFtdID0geworCVtDTE9DS19FVlRfTU9ERV9QRVJJT0RJQ10gPSAiQ0xPQ0tfRVZUX01PREVfUEVSSU9ESUMiLAorCVtDTE9DS19FVlRfTU9ERV9PTkVTSE9UXSAgPSAiQ0xPQ0tfRVZUX01PREVfT05FU0hPVCIsCisJW0NMT0NLX0VWVF9NT0RFX1NIVVRET1dOXSA9ICJDTE9DS19FVlRfTU9ERV9TSFVURE9XTiIsCisJW0NMT0NLX0VWVF9NT0RFX1VOVVNFRF0gICA9ICJDTE9DS19FVlRfTU9ERV9VTlVTRUQiCit9OworI2VuZGlmIC8qIERFQlVHICovCisKK3N0YXRpYyB2b2lkIG14Y19zZXRfbW9kZShlbnVtIGNsb2NrX2V2ZW50X21vZGUgbW9kZSwKKwkJCQlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogVGhlIHRpbWVyIGludGVycnVwdCBnZW5lcmF0aW9uIGlzIGRpc2FibGVkIGF0IGxlYXN0CisJICogZm9yIGVub3VnaCB0aW1lIHRvIGNhbGwgbXhjX3NldF9uZXh0X2V2ZW50KCkKKwkgKi8KKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwkvKiBEaXNhYmxlIGludGVycnVwdCBpbiBHUFQgbW9kdWxlICovCisJZ3B0X2lycV9kaXNhYmxlKCk7CisKKwlpZiAobW9kZSAhPSBjbG9ja2V2ZW50X21vZGUpIHsKKwkJLyogU2V0IGV2ZW50IHRpbWUgaW50byBmYXItZmFyIGZ1dHVyZSAqLworCQlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ04pIC0gMywKKwkJCQlUSU1FUl9CQVNFICsgTVhDX1RDTVApOworCQkvKiBDbGVhciBwZW5kaW5nIGludGVycnVwdCAqLworCQlncHRfaXJxX2Fja25vd2xlZGdlKCk7CisJfQorCisjaWZkZWYgREVCVUcKKwlwcmludGsoS0VSTl9JTkZPICJteGNfc2V0X21vZGU6IGNoYW5naW5nIG1vZGUgZnJvbSAlcyB0byAlc1xuIiwKKwkJY2xvY2tfZXZlbnRfbW9kZV9sYWJlbFtjbG9ja2V2ZW50X21vZGVdLAorCQljbG9ja19ldmVudF9tb2RlX2xhYmVsW21vZGVdKTsKKyNlbmRpZiAvKiBERUJVRyAqLworCisJLyogUmVtZW1iZXIgdGltZXIgbW9kZSAqLworCWNsb2NrZXZlbnRfbW9kZSA9IG1vZGU7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBDTE9DS19FVlRfTU9ERV9QRVJJT0RJQzoKKwkJcHJpbnRrKEtFUk5fRVJSIm14Y19zZXRfbW9kZTogUGVyaW9kaWMgbW9kZSBpcyBub3QgIgorCQkJCSJzdXBwb3J0ZWQgZm9yIGkuTVhcbiIpOworCQlicmVhazsKKwljYXNlIENMT0NLX0VWVF9NT0RFX09ORVNIT1Q6CisJLyoKKwkgKiBEbyBub3QgcHV0IG92ZXJoZWFkIG9mIGludGVycnVwdCBlbmFibGUvZGlzYWJsZSBpbnRvCisJICogbXhjX3NldF9uZXh0X2V2ZW50KCksIHRoZSBjb3JlIGhhcyBhYm91dCA0IG1pbnV0ZXMKKwkgKiB0byBjYWxsIG14Y19zZXRfbmV4dF9ldmVudCgpIG9yIHNodXRkb3duIGNsb2NrIGFmdGVyCisJICogbW9kZSBzd2l0Y2hpbmcKKwkgKi8KKwkJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCQlncHRfaXJxX2VuYWJsZSgpOworCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJCWJyZWFrOworCWNhc2UgQ0xPQ0tfRVZUX01PREVfU0hVVERPV046CisJY2FzZSBDTE9DS19FVlRfTU9ERV9VTlVTRUQ6CisJY2FzZSBDTE9DS19FVlRfTU9ERV9SRVNVTUU6CisJCS8qIExlZnQgZXZlbnQgc291cmNlcyBkaXNhYmxlZCwgbm8gbW9yZSBpbnRlcnJ1cHRzIGFwcGVhciAqLworCQlicmVhazsKKwl9Cit9CisKKy8qCisgKiBJUlEgaGFuZGxlciBmb3IgdGhlIHRpbWVyCisgKi8KK3N0YXRpYyBpcnFyZXR1cm5fdCBteGNfdGltZXJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpldnQgPSAmY2xvY2tldmVudF9teGM7CisJdWludDMyX3QgdHN0YXQ7CisKKwl0c3RhdCA9IF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVFNUQVQpOworCisJZ3B0X2lycV9hY2tub3dsZWRnZSgpOworCisJZXZ0LT5ldmVudF9oYW5kbGVyKGV2dCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIG14Y190aW1lcl9pcnEgPSB7CisJLm5hbWUJCT0gImkuTVggVGltZXIgVGljayIsCisJLmZsYWdzCQk9IElSUUZfRElTQUJMRUQgfCBJUlFGX1RJTUVSIHwgSVJRRl9JUlFQT0xMLAorCS5oYW5kbGVyCT0gbXhjX3RpbWVyX2ludGVycnVwdCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlIGNsb2NrZXZlbnRfbXhjID0geworCS5uYW1lCQk9ICJteGNfdGltZXIxIiwKKwkuZmVhdHVyZXMJPSBDTE9DS19FVlRfRkVBVF9PTkVTSE9ULAorCS5zaGlmdAkJPSAzMiwKKwkuc2V0X21vZGUJPSBteGNfc2V0X21vZGUsCisJLnNldF9uZXh0X2V2ZW50CT0gbXhjX3NldF9uZXh0X2V2ZW50LAorCS5yYXRpbmcJCT0gMjAwLAorfTsKKworc3RhdGljIGludCBfX2luaXQgbXhjX2Nsb2NrZXZlbnRfaW5pdCh2b2lkKQoreworCXVuc2lnbmVkIGludCBjbG9jazsKKworCWNsb2NrID0gY2xrX2dldF9yYXRlKHRpbWVyX2Nsayk7CisKKwljbG9ja2V2ZW50X214Yy5tdWx0ID0gZGl2X3NjKGNsb2NrLCBOU0VDX1BFUl9TRUMsCisJCQkJCWNsb2NrZXZlbnRfbXhjLnNoaWZ0KTsKKwljbG9ja2V2ZW50X214Yy5tYXhfZGVsdGFfbnMgPQorCQkJY2xvY2tldmVudF9kZWx0YTJucygweGZmZmZmZmZlLCAmY2xvY2tldmVudF9teGMpOworCWNsb2NrZXZlbnRfbXhjLm1pbl9kZWx0YV9ucyA9CisJCQljbG9ja2V2ZW50X2RlbHRhMm5zKDB4ZmYsICZjbG9ja2V2ZW50X214Yyk7CisKKwljbG9ja2V2ZW50X214Yy5jcHVtYXNrID0gY3B1bWFza19vZl9jcHUoMCk7CisKKwljbG9ja2V2ZW50c19yZWdpc3Rlcl9kZXZpY2UoJmNsb2NrZXZlbnRfbXhjKTsKKworCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBteGNfdGltZXJfaW5pdChjb25zdCBjaGFyICpjbGtfdGltZXIpCit7CisJdGltZXJfY2xrID0gY2xrX2dldChOVUxMLCBjbGtfdGltZXIpOworCWlmICghdGltZXJfY2xrKSB7CisJCXByaW50ayhLRVJOX0VSUiJDYW5ub3QgZGV0ZXJtaW5lIHRpbWVyIGNsb2NrLiBHaXZpbmcgdXAuXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWNsa19lbmFibGUodGltZXJfY2xrKTsKKworCS8qCisJICogSW5pdGlhbGlzZSB0byBhIGtub3duIHN0YXRlIChhbGwgdGltZXJzIG9mZiwgYW5kIHRpbWluZyByZXNldCkKKwkgKi8KKwlfX3Jhd193cml0ZWwoMCwgVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKKwlfX3Jhd193cml0ZWwoMCwgVElNRVJfQkFTRSArIE1YQ19UUFJFUik7IC8qIHNlZSBkYXRhc2hlZXQgbm90ZSAqLworCisJX19yYXdfd3JpdGVsKFRDVExfRlJSIHwJLyogZnJlZSBydW5uaW5nICovCisJCSAgICAgVENUTF9WQUwgfAkvKiBzZXQgY2xvY2tzb3VyY2UgYW5kIGFyY2ggc3BlY2lmaWMgYml0cyAqLworCQkgICAgIFRDVExfVEVOLAkvKiBzdGFydCB0aGUgdGltZXIgKi8KKwkJICAgICBUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCisJLyogaW5pdCBhbmQgcmVnaXN0ZXIgdGhlIHRpbWVyIHRvIHRoZSBmcmFtZXdvcmsgKi8KKwlteGNfY2xvY2tzb3VyY2VfaW5pdCgpOworCW14Y19jbG9ja2V2ZW50X2luaXQoKTsKKworCS8qIE1ha2UgaXJxcyBoYXBwZW4gKi8KKwlzZXR1cF9pcnEoVElNRVJfSU5URVJSVVBULCAmbXhjX3RpbWVyX2lycSk7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9NYWtlZmlsZSBiL2FyY2gvYXJtL3BsYXQtb21hcC9NYWtlZmlsZQppbmRleCBiYzYzOWEzLi4yYzQwNTFjIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL01ha2VmaWxlCkBAIC0zLDcgKzMsNyBAQAogIwogCiAjIENvbW1vbiBzdXBwb3J0Ci1vYmoteSA6PSBjb21tb24ubyBzcmFtLm8gc3JhbS1mbi5vIGNsb2NrLm8gZGV2aWNlcy5vIGRtYS5vIG11eC5vIGdwaW8ubyBcCitvYmoteSA6PSBjb21tb24ubyBzcmFtLm8gY2xvY2subyBkZXZpY2VzLm8gZG1hLm8gbXV4Lm8gZ3Bpby5vIFwKIAkgdXNiLm8gZmIubwogb2JqLW0gOj0KIG9iai1uIDo9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCmluZGV4IDI5NDZjMTkuLmMyZTc0MWQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCisrKyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jbG9jay5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBsaW51eC9hcmNoL2FybS9wbGF0LW9tYXAvY2xvY2suYwogICoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDQgLSAyMDA1IE5va2lhIGNvcnBvcmF0aW9uCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IC0gMjAwOCBOb2tpYSBjb3Jwb3JhdGlvbgogICogIFdyaXR0ZW4gYnkgVHV1a2thIFRpa2thbmVuIDx0dXVra2EudGlra2FuZW5AZWxla3Ryb2JpdC5jb20+CiAgKgogICogIE1vZGlmaWVkIGZvciBvbWFwIHNoYXJlZCBjbG9jayBmcmFtZXdvcmsgYnkgVG9ueSBMaW5kZ3JlbiA8dG9ueUBhdG9taWRlLmNvbT4KQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdWZyZXEuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIApAQCAtMzIsNDEgKzM0LDYgQEAKIAogc3RhdGljIHN0cnVjdCBjbGtfZnVuY3Rpb25zICphcmNoX2Nsb2NrOwogCi0jaWZkZWYgQ09ORklHX1BNX0RFQlVHCi0KLXN0YXRpYyB2b2lkIHByaW50X3BhcmVudHMoc3RydWN0IGNsayAqY2xrKQotewotCXN0cnVjdCBjbGsgKnA7Ci0JaW50IHByaW50ZWQgPSAwOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShwLCAmY2xvY2tzLCBub2RlKSB7Ci0JCWlmIChwLT5wYXJlbnQgPT0gY2xrICYmIHAtPnVzZWNvdW50KSB7Ci0JCQlpZiAoIWNsay0+dXNlY291bnQgJiYgIXByaW50ZWQpIHsKLQkJCQlwcmludGsoIk1JU01BVENIOiAlc1xuIiwgY2xrLT5uYW1lKTsKLQkJCQlwcmludGVkID0gMTsKLQkJCX0KLQkJCXByaW50aygiXHQlLTE1c1xuIiwgcC0+bmFtZSk7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgY2xrX3ByaW50X3VzZWNvdW50cyh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0Jc3RydWN0IGNsayAqcDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjbG9ja2Z3X2xvY2ssIGZsYWdzKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHAsICZjbG9ja3MsIG5vZGUpIHsKLQkJaWYgKHAtPnVzZWNvdW50KQotCQkJcHJpbnRrKCIlLTE1czogJWRcbiIsIHAtPm5hbWUsIHAtPnVzZWNvdW50KTsKLQkJcHJpbnRfcGFyZW50cyhwKTsKLQotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbG9ja2Z3X2xvY2ssIGZsYWdzKTsKLX0KLQotI2VuZGlmCi0KIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogU3RhbmRhcmQgY2xvY2sgZnVuY3Rpb25zIGRlZmluZWQgaW4gaW5jbHVkZS9saW51eC9jbGsuaAogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTQ0NSwzICs0MTIsOTMgQEAKIAlyZXR1cm4gMDsKIH0KIAorI2lmIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKKy8qCisgKglkZWJ1Z2ZzIHN1cHBvcnQgdG8gdHJhY2UgY2xvY2sgdHJlZSBoaWVyYXJjaHkgYW5kIGF0dHJpYnV0ZXMKKyAqLworc3RhdGljIHN0cnVjdCBkZW50cnkgKmNsa19kZWJ1Z2ZzX3Jvb3Q7CisKK3N0YXRpYyBpbnQgY2xrX2RlYnVnZnNfcmVnaXN0ZXJfb25lKHN0cnVjdCBjbGsgKmMpCit7CisJaW50IGVycjsKKwlzdHJ1Y3QgZGVudHJ5ICpkLCAqY2hpbGQ7CisJc3RydWN0IGNsayAqcGEgPSBjLT5wYXJlbnQ7CisJY2hhciBzWzI1NV07CisJY2hhciAqcCA9IHM7CisKKwlwICs9IHNwcmludGYocCwgIiVzIiwgYy0+bmFtZSk7CisJaWYgKGMtPmlkICE9IDApCisJCXNwcmludGYocCwgIjolZCIsIGMtPmlkKTsKKwlkID0gZGVidWdmc19jcmVhdGVfZGlyKHMsIHBhID8gcGEtPmRlbnQgOiBjbGtfZGVidWdmc19yb290KTsKKwlpZiAoSVNfRVJSKGQpKQorCQlyZXR1cm4gUFRSX0VSUihkKTsKKwljLT5kZW50ID0gZDsKKworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV91OCgidXNlY291bnQiLCBTX0lSVUdPLCBjLT5kZW50LCAodTggKikmYy0+dXNlY291bnQpOworCWlmIChJU19FUlIoZCkpIHsKKwkJZXJyID0gUFRSX0VSUihkKTsKKwkJZ290byBlcnJfb3V0OworCX0KKwlkID0gZGVidWdmc19jcmVhdGVfdTMyKCJyYXRlIiwgU19JUlVHTywgYy0+ZGVudCwgKHUzMiAqKSZjLT5yYXRlKTsKKwlpZiAoSVNfRVJSKGQpKSB7CisJCWVyciA9IFBUUl9FUlIoZCk7CisJCWdvdG8gZXJyX291dDsKKwl9CisJZCA9IGRlYnVnZnNfY3JlYXRlX3gzMigiZmxhZ3MiLCBTX0lSVUdPLCBjLT5kZW50LCAodTMyICopJmMtPmZsYWdzKTsKKwlpZiAoSVNfRVJSKGQpKSB7CisJCWVyciA9IFBUUl9FUlIoZCk7CisJCWdvdG8gZXJyX291dDsKKwl9CisJcmV0dXJuIDA7CisKK2Vycl9vdXQ6CisJZCA9IGMtPmRlbnQ7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShjaGlsZCwgJmQtPmRfc3ViZGlycywgZF91LmRfY2hpbGQpCisJCWRlYnVnZnNfcmVtb3ZlKGNoaWxkKTsKKwlkZWJ1Z2ZzX3JlbW92ZShjLT5kZW50KTsKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgaW50IGNsa19kZWJ1Z2ZzX3JlZ2lzdGVyKHN0cnVjdCBjbGsgKmMpCit7CisJaW50IGVycjsKKwlzdHJ1Y3QgY2xrICpwYSA9IGMtPnBhcmVudDsKKworCWlmIChwYSAmJiAhcGEtPmRlbnQpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXIocGEpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlpZiAoIWMtPmRlbnQpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXJfb25lKGMpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNsa19kZWJ1Z2ZzX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgY2xrICpjOworCXN0cnVjdCBkZW50cnkgKmQ7CisJaW50IGVycjsKKworCWQgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImNsb2NrIiwgTlVMTCk7CisJaWYgKElTX0VSUihkKSkKKwkJcmV0dXJuIFBUUl9FUlIoZCk7CisJY2xrX2RlYnVnZnNfcm9vdCA9IGQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGMsICZjbG9ja3MsIG5vZGUpIHsKKwkJZXJyID0gY2xrX2RlYnVnZnNfcmVnaXN0ZXIoYyk7CisJCWlmIChlcnIpCisJCQlnb3RvIGVycl9vdXQ7CisJfQorCXJldHVybiAwOworZXJyX291dDoKKwlkZWJ1Z2ZzX3JlbW92ZShjbGtfZGVidWdmc19yb290KTsgLyogUkVWSVNJVDogQ2xlYW51cCBjb3JyZWN0bHkgKi8KKwlyZXR1cm4gZXJyOworfQorbGF0ZV9pbml0Y2FsbChjbGtfZGVidWdmc19pbml0KTsKKworI2VuZGlmIC8qIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykgKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9jb21tb24uYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9jb21tb24uYwppbmRleCBiZDFjZWYyLi44ZDA0OTI5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvY29tbW9uLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2NvbW1vbi5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAKKyNpbmNsdWRlIDxhc20vYXJjaC9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tdXguaD4KQEAgLTI0MSwzMCArMjQyLDcwIEBACiAKIC8qIEdsb2JhbCBhZGRyZXNzIGJhc2Ugc2V0dXAgY29kZSAqLwogCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKKworc3RhdGljIHN0cnVjdCBvbWFwX2dsb2JhbHMgKm9tYXAyX2dsb2JhbHM7CisKK3N0YXRpYyB2b2lkIF9faW5pdCBfX29tYXAyX3NldF9nbG9iYWxzKHZvaWQpCit7CisJb21hcDJfc2V0X2dsb2JhbHNfbWVtb3J5KG9tYXAyX2dsb2JhbHMpOworCW9tYXAyX3NldF9nbG9iYWxzX2NvbnRyb2wob21hcDJfZ2xvYmFscyk7CisJb21hcDJfc2V0X2dsb2JhbHNfcHJjbShvbWFwMl9nbG9iYWxzKTsKK30KKworI2VuZGlmCisKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDIwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMjQyeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDgwMTQwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDIwX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0MjBfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQyMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzI0Mngodm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMjQyMF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMjQyMF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDI0MjBfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAyNDJ4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNDMwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMjQzeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDkwMGEwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzWF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAyNDNYX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDI0M1hfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMjQzMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzI0M3godm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMjQzWF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMjQzWF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDI0M1hfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAyNDN4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNDMwKQorCitzdGF0aWMgc3RydWN0IG9tYXBfZ2xvYmFscyBvbWFwMzQzeF9nbG9iYWxzID0geworCS50YXAJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKDB4NDgzMEEwMDApLAorCS5zZHJjCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzWF9TRFJDX0JBU0UpLAorCS5zbXMJPSAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilPTUFQMl9JT19BRERSRVNTKE9NQVAzNDNYX1NNU19CQVNFKSwKKwkuY3RybAk9IChfX2ZvcmNlIHZvaWQgX19pb21lbSAqKU9NQVAyX0lPX0FERFJFU1MoT01BUDM0M1hfQ1RSTF9CQVNFKSwKKwkucHJtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzMF9QUk1fQkFTRSksCisJLmNtCT0gKF9fZm9yY2Ugdm9pZCBfX2lvbWVtICopT01BUDJfSU9fQUREUkVTUyhPTUFQMzQzMF9DTV9CQVNFKSwKK307CisKIHZvaWQgX19pbml0IG9tYXAyX3NldF9nbG9iYWxzXzM0M3godm9pZCkKIHsKLQlvbWFwMl9zZHJjX2Jhc2UgPSBPTUFQMzQzWF9TRFJDX0JBU0U7Ci0Jb21hcDJfc21zX2Jhc2UgPSBPTUFQMzQzWF9TTVNfQkFTRTsKLQlvbWFwX2N0cmxfYmFzZV9zZXQoT01BUDM0M1hfQ1RSTF9CQVNFKTsKKwlvbWFwMl9nbG9iYWxzID0gJm9tYXAzNDN4X2dsb2JhbHM7CisJX19vbWFwMl9zZXRfZ2xvYmFscygpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9kZXZpY2VzLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvZGV2aWNlcy5jCmluZGV4IDRhNTNmOWIuLjgxMDAyYjcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kZXZpY2VzLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RldmljZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL211eC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tZW5lbGF1cy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL21jYnNwLmg+CiAKICNpZglkZWZpbmVkKENPTkZJR19PTUFQX0RTUCkgfHwgZGVmaW5lZChDT05GSUdfT01BUF9EU1BfTU9EVUxFKQogCkBAIC0xNDUsNiArMTQ2LDUzIEBACiAjZW5kaWYKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZiBkZWZpbmVkKENPTkZJR19PTUFQX01DQlNQKSB8fCBkZWZpbmVkKENPTkZJR19PTUFQX01DQlNQX01PRFVMRSkKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipvbWFwX21jYnNwX2RldmljZXM7CisKK3ZvaWQgb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcoc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSAqY29uZmlnLAorCQkJCQlpbnQgc2l6ZSkKK3sKKwlpbnQgaTsKKworCWlmIChzaXplID4gT01BUF9NQVhfTUNCU1BfQ09VTlQpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUmVnaXN0ZXJlZCB0b28gbWFueSBNY0JTUHMgcGxhdGZvcm1fZGF0YS4iCisJCQkiIFVzaW5nIG1heGltdW0gKCVkKSBhdmFpbGFibGUuXG4iLAorCQkJT01BUF9NQVhfTUNCU1BfQ09VTlQpOworCQlzaXplID0gT01BUF9NQVhfTUNCU1BfQ09VTlQ7CisJfQorCisJb21hcF9tY2JzcF9kZXZpY2VzID0ga3phbGxvYyhzaXplICogc2l6ZW9mKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKiksCisJCQkJICAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIW9tYXBfbWNic3BfZGV2aWNlcykgeworCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCByZWdpc3RlciBNY0JTUCBkZXZpY2VzXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKwkJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqbmV3X21jYnNwOworCQlpbnQgcmV0OworCisJCW5ld19tY2JzcCA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygib21hcC1tY2JzcCIsIGkgKyAxKTsKKwkJaWYgKCFuZXdfbWNic3ApCisJCQljb250aW51ZTsKKwkJbmV3X21jYnNwLT5kZXYucGxhdGZvcm1fZGF0YSA9ICZjb25maWdbaV07CisJCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQobmV3X21jYnNwKTsKKwkJaWYgKHJldCkgeworCQkJcGxhdGZvcm1fZGV2aWNlX3B1dChuZXdfbWNic3ApOworCQkJY29udGludWU7CisJCX0KKwkJb21hcF9tY2JzcF9kZXZpY2VzW2ldID0gbmV3X21jYnNwOworCX0KK30KKworI2Vsc2UKK3ZvaWQgb21hcF9tY2JzcF9yZWdpc3Rlcl9ib2FyZF9jZmcoc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSAqY29uZmlnLAorCQkJCQlpbnQgc2l6ZSkKK3sgIH0KKyNlbmRpZgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAjaWYJZGVmaW5lZChDT05GSUdfTU1DX09NQVApIHx8IGRlZmluZWQoQ09ORklHX01NQ19PTUFQX01PRFVMRSkKIApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jCmluZGV4IGMwMGVkYTUuLmZhYzhlOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbWEuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG1hLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogbGludXgvYXJjaC9hcm0vcGxhdC1vbWFwL2RtYS5jCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDAzIE5va2lhIENvcnBvcmF0aW9uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgLSAyMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKiBBdXRob3I6IEp1aGEgWXJqw7Zsw6QgPGp1aGEueXJqb2xhQG5va2lhLmNvbT4KICAqIERNQSBjaGFubmVsIGxpbmtpbmcgZm9yIDE2MTAgYnkgU2FtdWVsIE9ydGl6IDxzYW11ZWwub3J0aXpAbm9raWEuY29tPgogICogR3JhcGhpY3MgRE1BIGFuZCBMQ0QgRE1BIGdyYXBoaWNzIHRyYW5mb3JtYXRpb25zCkBAIC0yNSwxMSArMjUsMTEgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvdGMuaD4KIApAQCAtNDMsMTMgKzQzLDEzIEBACiBlbnVtIHsgRE1BX0NIQUlOX1NUQVJURUQsIERNQV9DSEFJTl9OT1RTVEFSVEVEIH07CiAjZW5kaWYKIAotI2RlZmluZSBPTUFQX0RNQV9BQ1RJVkUJCTB4MDEKLSNkZWZpbmUgT01BUF9ETUFfQ0NSX0VOCQkoMSA8PCA3KQorI2RlZmluZSBPTUFQX0RNQV9BQ1RJVkUJCQkweDAxCisjZGVmaW5lIE9NQVBfRE1BX0NDUl9FTgkJCSgxIDw8IDcpCiAjZGVmaW5lIE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSwkweGZmZQogCi0jZGVmaW5lIE9NQVBfRlVOQ19NVVhfQVJNX0JBU0UJKDB4ZmZmZTEwMDAgKyAweGVjKQorI2RlZmluZSBPTUFQX0ZVTkNfTVVYX0FSTV9CQVNFCQkoMHhmZmZlMTAwMCArIDB4ZWMpCiAKLXN0YXRpYyBpbnQgZW5hYmxlXzE1MTBfbW9kZSA9IDA7CitzdGF0aWMgaW50IGVuYWJsZV8xNTEwX21vZGU7CiAKIHN0cnVjdCBvbWFwX2RtYV9sY2ggewogCWludCBuZXh0X2xjaDsKQEAgLTU3LDcgKzU3LDcgQEAKIAl1MTYgc2F2ZWRfY3NyOwogCXUxNiBlbmFibGVkX2lycXM7CiAJY29uc3QgY2hhciAqZGV2X25hbWU7Ci0Jdm9pZCAoKiBjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSk7CisJdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKTsKIAl2b2lkICpkYXRhOwogCiAjaWZuZGVmIENPTkZJR19BUkNIX09NQVAxCkBAIC03Miw3ICs3Miw2IEBACiAJbG9uZyBmbGFnczsKIH07CiAKLSNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKIHN0cnVjdCBkbWFfbGlua19pbmZvIHsKIAlpbnQgKmxpbmtlZF9kbWFjaF9xOwogCWludCBub19vZl9sY2hzX2xpbmtlZDsKQEAgLTg2LDcgKzg1LDkgQEAKIAogfTsKIAotc3RhdGljIHN0cnVjdCBkbWFfbGlua19pbmZvIGRtYV9saW5rZWRfbGNoW09NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOworc3RhdGljIHN0cnVjdCBkbWFfbGlua19pbmZvICpkbWFfbGlua2VkX2xjaDsKKworI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQogCiAvKiBDaGFpbiBoYW5kbGluZyBtYWNyb3MgKi8KICNkZWZpbmUgT01BUF9ETUFfQ0hBSU5fUUlOSVQoY2hhaW5faWQpCQkJCQlcCkBAIC0xMTksMTIgKzEyMCwxNSBAQAogCQlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9jb3VudCsrOyBcCiAJfSB3aGlsZSAoMCkKICNlbmRpZgorCitzdGF0aWMgaW50IGRtYV9sY2hfY291bnQ7CiBzdGF0aWMgaW50IGRtYV9jaGFuX2NvdW50OwogCiBzdGF0aWMgc3BpbmxvY2tfdCBkbWFfY2hhbl9sb2NrOwotc3RhdGljIHN0cnVjdCBvbWFwX2RtYV9sY2ggZG1hX2NoYW5bT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVF07CitzdGF0aWMgc3RydWN0IG9tYXBfZG1hX2xjaCAqZG1hX2NoYW47CitzdGF0aWMgdm9pZCBfX2lvbWVtICpvbWFwX2RtYV9iYXNlOwogCi1zdGF0aWMgY29uc3QgdTggb21hcDFfZG1hX2lycVtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXSA9IHsKK3N0YXRpYyBjb25zdCB1OCBvbWFwMV9kbWFfaXJxW09NQVAxX0xPR0lDQUxfRE1BX0NIX0NPVU5UXSA9IHsKIAlJTlRfRE1BX0NIMF82LCBJTlRfRE1BX0NIMV83LCBJTlRfRE1BX0NIMl84LCBJTlRfRE1BX0NIMywKIAlJTlRfRE1BX0NINCwgSU5UX0RNQV9DSDUsIElOVF8xNjEwX0RNQV9DSDYsIElOVF8xNjEwX0RNQV9DSDcsCiAJSU5UXzE2MTBfRE1BX0NIOCwgSU5UXzE2MTBfRE1BX0NIOSwgSU5UXzE2MTBfRE1BX0NIMTAsCkBAIC0xMzksNiArMTQzLDI0IEBACiAjZGVmaW5lIFJFVklTSVRfMjRYWCgpCQlwcmludGsoS0VSTl9FUlIgIkZJWE1FOiBubyAlcyBvbiAyNHh4XG4iLCBcCiAJCQkJCQlfX2Z1bmNfXyk7CiAKKyNkZWZpbmUgZG1hX3JlYWQocmVnKQkJCQkJCQlcCisoewkJCQkJCQkJCVwKKwl1MzIgX192YWw7CQkJCQkJCVwKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCQkJCQlcCisJCV9fdmFsID0gX19yYXdfcmVhZHcob21hcF9kbWFfYmFzZSArIE9NQVAxX0RNQV8jI3JlZyk7CVwKKwllbHNlCQkJCQkJCQlcCisJCV9fdmFsID0gX19yYXdfcmVhZGwob21hcF9kbWFfYmFzZSArIE9NQVBfRE1BNF8jI3JlZyk7CVwKKwlfX3ZhbDsJCQkJCQkJCVwKK30pCisKKyNkZWZpbmUgZG1hX3dyaXRlKHZhbCwgcmVnKQkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkJCQkJCVwKKwkJX19yYXdfd3JpdGV3KCh1MTYpKHZhbCksIG9tYXBfZG1hX2Jhc2UgKyBPTUFQMV9ETUFfIyNyZWcpOyBcCisJZWxzZQkJCQkJCQkJXAorCQlfX3Jhd193cml0ZWwoKHZhbCksIG9tYXBfZG1hX2Jhc2UgKyBPTUFQX0RNQTRfIyNyZWcpOwlcCit9KQorCiAjaWZkZWYgQ09ORklHX0FSQ0hfT01BUDE1WFgKIC8qIFJldHVybnMgMSBpZiB0aGUgRE1BIG1vZHVsZSBpcyBpbiBPTUFQMTUxMC1jb21wYXRpYmxlIG1vZGUsIDAgb3RoZXJ3aXNlICovCiBpbnQgb21hcF9kbWFfaW5fMTUxMF9tb2RlKHZvaWQpCkBAIC0xNzMsMTMgKzE5NSwxNCBAQAogI2RlZmluZSBzZXRfZ2RtYV9kZXYocmVxLCBkZXYpCWRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKKy8qIE9tYXAxIG9ubHkgKi8KIHN0YXRpYyB2b2lkIGNsZWFyX2xjaF9yZWdzKGludCBsY2gpCiB7CiAJaW50IGk7Ci0JdTMyIGxjaF9iYXNlID0gT01BUF9ETUFfQkFTRSArIGxjaCAqIDB4NDA7CisJdm9pZCBfX2lvbWVtICpsY2hfYmFzZSA9IG9tYXBfZG1hX2Jhc2UgKyBPTUFQMV9ETUFfQ0hfQkFTRShsY2gpOwogCiAJZm9yIChpID0gMDsgaSA8IDB4MmM7IGkgKz0gMikKLQkJb21hcF93cml0ZXcoMCwgbGNoX2Jhc2UgKyBpKTsKKwkJX19yYXdfd3JpdGV3KDAsIGxjaF9iYXNlICsgaSk7CiB9CiAKIHZvaWQgb21hcF9zZXRfZG1hX3ByaW9yaXR5KGludCBsY2gsIGludCBkc3RfcG9ydCwgaW50IHByaW9yaXR5KQpAQCAtMjEyLDMzICsyMzUsNDkgQEAKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKKwkJdTMyIGNjcjsKKworCQljY3IgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAJCWlmIChwcmlvcml0eSkKLQkJCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSAoMSA8PCA2KTsKKwkJCWNjciB8PSAoMSA8PCA2KTsKIAkJZWxzZQotCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMSA8PCA2KTsKKwkJCWNjciAmPSB+KDEgPDwgNik7CisJCWRtYV93cml0ZShjY3IsIENDUihsY2gpKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9wcmlvcml0eSk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhpbnQgbGNoLCBpbnQgZGF0YV90eXBlLCBpbnQgZWxlbV9jb3VudCwKIAkJCQkgIGludCBmcmFtZV9jb3VudCwgaW50IHN5bmNfbW9kZSwKIAkJCQkgIGludCBkbWFfdHJpZ2dlciwgaW50IHNyY19vcl9kc3Rfc3luY2gpCiB7Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+MHgwMzsKLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IGRhdGFfdHlwZTsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCWwgJj0gfjB4MDM7CisJbCB8PSBkYXRhX3R5cGU7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpICY9IH4oMSA8PCA1KTsKLQkJaWYgKHN5bmNfbW9kZSA9PSBPTUFQX0RNQV9TWU5DX0ZSQU1FKQotCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpIHw9IDEgPDwgNTsKKwkJdTE2IGNjcjsKIAotCQlPTUFQMV9ETUFfQ0NSMl9SRUcobGNoKSAmPSB+KDEgPDwgMik7CisJCWNjciA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwkJY2NyICY9IH4oMSA8PCA1KTsKKwkJaWYgKHN5bmNfbW9kZSA9PSBPTUFQX0RNQV9TWU5DX0ZSQU1FKQorCQkJY2NyIHw9IDEgPDwgNTsKKwkJZG1hX3dyaXRlKGNjciwgQ0NSKGxjaCkpOworCisJCWNjciA9IGRtYV9yZWFkKENDUjIobGNoKSk7CisJCWNjciAmPSB+KDEgPDwgMik7CiAJCWlmIChzeW5jX21vZGUgPT0gT01BUF9ETUFfU1lOQ19CTE9DSykKLQkJCU9NQVAxX0RNQV9DQ1IyX1JFRyhsY2gpIHw9IDEgPDwgMjsKKwkJCWNjciB8PSAxIDw8IDI7CisJCWRtYV93cml0ZShjY3IsIENDUjIobGNoKSk7CiAJfQogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpICYmIGRtYV90cmlnZ2VyKSB7Ci0JCXUzMiB2YWwgPSBPTUFQX0RNQV9DQ1JfUkVHKGxjaCk7CisJCXUzMiB2YWw7CiAKKwkJdmFsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOwogCQl2YWwgJj0gfigzIDw8IDE5KTsKIAkJaWYgKGRtYV90cmlnZ2VyID4gNjMpCiAJCQl2YWwgfD0gMSA8PCAyMDsKQEAgLTI2MywxMiArMzAyLDEzIEBACiAJCWVsc2UKIAkJCXZhbCAmPSB+KDEgPDwgMjQpOwkvKiBkZXN0IHN5bmNoICovCiAKLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gdmFsOworCQlkbWFfd3JpdGUodmFsLCBDQ1IobGNoKSk7CiAJfQogCi0JT01BUF9ETUFfQ0VOX1JFRyhsY2gpID0gZWxlbV9jb3VudDsKLQlPTUFQX0RNQV9DRk5fUkVHKGxjaCkgPSBmcmFtZV9jb3VudDsKKwlkbWFfd3JpdGUoZWxlbV9jb3VudCwgQ0VOKGxjaCkpOworCWRtYV93cml0ZShmcmFtZV9jb3VudCwgQ0ZOKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfdHJhbnNmZXJfcGFyYW1zKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfY29sb3JfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2NvbG9yX21vZGUgbW9kZSwgdTMyIGNvbG9yKQogewpAQCAtMjgxLDcgKzMyMSw5IEBACiAJCXJldHVybjsKIAl9CiAKLQl3ID0gT01BUDFfRE1BX0NDUjJfUkVHKGxjaCkgJiB+MHgwMzsKKwl3ID0gZG1hX3JlYWQoQ0NSMihsY2gpKTsKKwl3ICY9IH4weDAzOworCiAJc3dpdGNoIChtb2RlKSB7CiAJY2FzZSBPTUFQX0RNQV9DT05TVEFOVF9GSUxMOgogCQl3IHw9IDB4MDE7CkBAIC0yOTQsNTIgKzMzNiw4MSBAQAogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KLQlPTUFQMV9ETUFfQ0NSMl9SRUcobGNoKSA9IHc7CisJZG1hX3dyaXRlKHcsIENDUjIobGNoKSk7CiAKLQl3ID0gT01BUDFfRE1BX0xDSF9DVFJMX1JFRyhsY2gpICYgfjB4MGY7CisJdyA9IGRtYV9yZWFkKExDSF9DVFJMKGxjaCkpOworCXcgJj0gfjB4MGY7CiAJLyogRGVmYXVsdCBpcyBjaGFubmVsIHR5cGUgMkQgKi8KIAlpZiAobW9kZSkgewotCQlPTUFQMV9ETUFfQ09MT1JfTF9SRUcobGNoKSA9ICh1MTYpY29sb3I7Ci0JCU9NQVAxX0RNQV9DT0xPUl9VX1JFRyhsY2gpID0gKHUxNikoY29sb3IgPj4gMTYpOworCQlkbWFfd3JpdGUoKHUxNiljb2xvciwgQ09MT1JfTChsY2gpKTsKKwkJZG1hX3dyaXRlKCh1MTYpKGNvbG9yID4+IDE2KSwgQ09MT1JfVShsY2gpKTsKIAkJdyB8PSAxOwkJLyogQ2hhbm5lbCB0eXBlIEcgKi8KIAl9Ci0JT01BUDFfRE1BX0xDSF9DVFJMX1JFRyhsY2gpID0gdzsKKwlkbWFfd3JpdGUodywgTENIX0NUUkwobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKTsKIAogdm9pZCBvbWFwX3NldF9kbWFfd3JpdGVfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX3dyaXRlX21vZGUgbW9kZSkKIHsKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MyA8PCAxNik7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gKG1vZGUgPDwgMTYpOworCQl1MzIgY3NkcDsKKworCQljc2RwID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwkJY3NkcCAmPSB+KDB4MyA8PCAxNik7CisJCWNzZHAgfD0gKG1vZGUgPDwgMTYpOworCQlkbWFfd3JpdGUoY3NkcCwgQ1NEUChsY2gpKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV93cml0ZV9tb2RlKTsKKwordm9pZCBvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY2hhbm5lbF9tb2RlIG1vZGUpCit7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSkgeworCQl1MzIgbDsKKworCQlsID0gZG1hX3JlYWQoTENIX0NUUkwobGNoKSk7CisJCWwgJj0gfjB4NzsKKwkJbCB8PSBtb2RlOworCQlkbWFfd3JpdGUobCwgTENIX0NUUkwobGNoKSk7CisJfQorfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKTsKIAogLyogTm90ZSB0aGF0IHNyY19wb3J0IGlzIG9ubHkgZm9yIG9tYXAxICovCiB2b2lkIG9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKGludCBsY2gsIGludCBzcmNfcG9ydCwgaW50IHNyY19hbW9kZSwKIAkJCSAgICAgdW5zaWduZWQgbG9uZyBzcmNfc3RhcnQsCiAJCQkgICAgIGludCBzcmNfZWksIGludCBzcmNfZmkpCiB7CisJdTMyIGw7CisKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSAmPSB+KDB4MWYgPDwgMik7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gc3JjX3BvcnQgPDwgMjsKKwkJdTE2IHc7CisKKwkJdyA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJCXcgJj0gfigweDFmIDw8IDIpOworCQl3IHw9IHNyY19wb3J0IDw8IDI7CisJCWRtYV93cml0ZSh3LCBDU0RQKGxjaCkpOwogCX0KIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+KDB4MDMgPDwgMTIpOwotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBzcmNfYW1vZGUgPDwgMTI7CisJbCA9IGRtYV9yZWFkKENDUihsY2gpKTsKKwlsICY9IH4oMHgwMyA8PCAxMik7CisJbCB8PSBzcmNfYW1vZGUgPDwgMTI7CisJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewotCQlPTUFQMV9ETUFfQ1NTQV9VX1JFRyhsY2gpID0gc3JjX3N0YXJ0ID4+IDE2OwotCQlPTUFQMV9ETUFfQ1NTQV9MX1JFRyhsY2gpID0gc3JjX3N0YXJ0OworCQlkbWFfd3JpdGUoc3JjX3N0YXJ0ID4+IDE2LCBDU1NBX1UobGNoKSk7CisJCWRtYV93cml0ZSgodTE2KXNyY19zdGFydCwgQ1NTQV9MKGxjaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJT01BUDJfRE1BX0NTU0FfUkVHKGxjaCkgPSBzcmNfc3RhcnQ7CisJCWRtYV93cml0ZShzcmNfc3RhcnQsIENTU0EobGNoKSk7CiAKLQlPTUFQX0RNQV9DU0VJX1JFRyhsY2gpID0gc3JjX2VpOwotCU9NQVBfRE1BX0NTRklfUkVHKGxjaCkgPSBzcmNfZmk7CisJZG1hX3dyaXRlKHNyY19laSwgQ1NFSShsY2gpKTsKKwlkbWFfd3JpdGUoc3JjX2ZpLCBDU0ZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyk7CiAKLXZvaWQgb21hcF9zZXRfZG1hX3BhcmFtcyhpbnQgbGNoLCBzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgKiBwYXJhbXMpCit2b2lkIG9tYXBfc2V0X2RtYV9wYXJhbXMoaW50IGxjaCwgc3RydWN0IG9tYXBfZG1hX2NoYW5uZWxfcGFyYW1zICpwYXJhbXMpCiB7CiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhsY2gsIHBhcmFtcy0+ZGF0YV90eXBlLAogCQkJCSAgICAgcGFyYW1zLT5lbGVtX2NvdW50LCBwYXJhbXMtPmZyYW1lX2NvdW50LApAQCAtMzU2LDI4ICs0MjcsMzcgQEAKIAkJb21hcF9kbWFfc2V0X3ByaW9fbGNoKGxjaCwgcGFyYW1zLT5yZWFkX3ByaW8sCiAJCQkJICAgICAgcGFyYW1zLT53cml0ZV9wcmlvKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3BhcmFtcyk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX3NyY19pbmRleChpbnQgbGNoLCBpbnQgZWlkeCwgaW50IGZpZHgpCiB7Ci0JaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7Ci0JCVJFVklTSVRfMjRYWCgpOworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJcmV0dXJuOwotCX0KLQlPTUFQX0RNQV9DU0VJX1JFRyhsY2gpID0gZWlkeDsKLQlPTUFQX0RNQV9DU0ZJX1JFRyhsY2gpID0gZmlkeDsKKworCWRtYV93cml0ZShlaWR4LCBDU0VJKGxjaCkpOworCWRtYV93cml0ZShmaWR4LCBDU0ZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfc3JjX2luZGV4KTsKIAogdm9pZCBvbWFwX3NldF9kbWFfc3JjX2RhdGFfcGFjayhpbnQgbGNoLCBpbnQgZW5hYmxlKQogewotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigxIDw8IDYpOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+KDEgPDwgNik7CiAJaWYgKGVuYWJsZSkKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAoMSA8PCA2KTsKKwkJbCB8PSAoMSA8PCA2KTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19kYXRhX3BhY2spOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9zcmNfYnVyc3RfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2J1cnN0X21vZGUgYnVyc3RfbW9kZSkKIHsKIAl1bnNpZ25lZCBpbnQgYnVyc3QgPSAwOwotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDAzIDw8IDcpOworCXUzMiBsOworCisJbCA9IGRtYV9yZWFkKENTRFAobGNoKSk7CisJbCAmPSB+KDB4MDMgPDwgNyk7CiAKIAlzd2l0Y2ggKGJ1cnN0X21vZGUpIHsKIAljYXNlIE9NQVBfRE1BX0RBVEFfQlVSU1RfRElTOgpAQCAtNDA4LDU1ICs0ODgsNzMgQEAKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9Ci0JT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAoYnVyc3QgPDwgNyk7CisKKwlsIHw9IChidXJzdCA8PCA3KTsKKwlkbWFfd3JpdGUobCwgQ1NEUChsY2gpKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKTsKIAogLyogTm90ZSB0aGF0IGRlc3RfcG9ydCBpcyBvbmx5IGZvciBPTUFQMSAqLwogdm9pZCBvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMoaW50IGxjaCwgaW50IGRlc3RfcG9ydCwgaW50IGRlc3RfYW1vZGUsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGRlc3Rfc3RhcnQsCiAJCQkgICAgICBpbnQgZHN0X2VpLCBpbnQgZHN0X2ZpKQogeworCXUzMiBsOworCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDFmIDw8IDkpOwotCQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpIHw9IGRlc3RfcG9ydCA8PCA5OworCQlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwkJbCAmPSB+KDB4MWYgPDwgOSk7CisJCWwgfD0gZGVzdF9wb3J0IDw8IDk7CisJCWRtYV93cml0ZShsLCBDU0RQKGxjaCkpOwogCX0KIAotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+KDB4MDMgPDwgMTQpOwotCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBkZXN0X2Ftb2RlIDw8IDE0OworCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJbCAmPSB+KDB4MDMgPDwgMTQpOworCWwgfD0gZGVzdF9hbW9kZSA8PCAxNDsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCU9NQVAxX0RNQV9DRFNBX1VfUkVHKGxjaCkgPSBkZXN0X3N0YXJ0ID4+IDE2OwotCQlPTUFQMV9ETUFfQ0RTQV9MX1JFRyhsY2gpID0gZGVzdF9zdGFydDsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQgPj4gMTYsIENEU0FfVShsY2gpKTsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQsIENEU0FfTChsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCi0JCU9NQVAyX0RNQV9DRFNBX1JFRyhsY2gpID0gZGVzdF9zdGFydDsKKwkJZG1hX3dyaXRlKGRlc3Rfc3RhcnQsIENEU0EobGNoKSk7CiAKLQlPTUFQX0RNQV9DREVJX1JFRyhsY2gpID0gZHN0X2VpOwotCU9NQVBfRE1BX0NERklfUkVHKGxjaCkgPSBkc3RfZmk7CisJZG1hX3dyaXRlKGRzdF9laSwgQ0RFSShsY2gpKTsKKwlkbWFfd3JpdGUoZHN0X2ZpLCBDREZJKGxjaCkpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMpOwogCiB2b2lkIG9tYXBfc2V0X2RtYV9kZXN0X2luZGV4KGludCBsY2gsIGludCBlaWR4LCBpbnQgZmlkeCkKIHsKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKLQkJUkVWSVNJVF8yNFhYKCk7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQogCQlyZXR1cm47Ci0JfQotCU9NQVBfRE1BX0NERUlfUkVHKGxjaCkgPSBlaWR4OwotCU9NQVBfRE1BX0NERklfUkVHKGxjaCkgPSBmaWR4OworCisJZG1hX3dyaXRlKGVpZHgsIENERUkobGNoKSk7CisJZG1hX3dyaXRlKGZpZHgsIENERkkobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2luZGV4KTsKIAogdm9pZCBvbWFwX3NldF9kbWFfZGVzdF9kYXRhX3BhY2soaW50IGxjaCwgaW50IGVuYWJsZSkKIHsKLQlPTUFQX0RNQV9DU0RQX1JFRyhsY2gpICY9IH4oMSA8PCAxMyk7CisJdTMyIGw7CisKKwlsID0gZG1hX3JlYWQoQ1NEUChsY2gpKTsKKwlsICY9IH4oMSA8PCAxMyk7CiAJaWYgKGVuYWJsZSkKLQkJT01BUF9ETUFfQ1NEUF9SRUcobGNoKSB8PSAxIDw8IDEzOworCQlsIHw9IDEgPDwgMTM7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayk7CiAKIHZvaWQgb21hcF9zZXRfZG1hX2Rlc3RfYnVyc3RfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX2J1cnN0X21vZGUgYnVyc3RfbW9kZSkKIHsKIAl1bnNpZ25lZCBpbnQgYnVyc3QgPSAwOwotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgJj0gfigweDAzIDw8IDE0KTsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDU0RQKGxjaCkpOworCWwgJj0gfigweDAzIDw8IDE0KTsKIAogCXN3aXRjaCAoYnVyc3RfbW9kZSkgewogCWNhc2UgT01BUF9ETUFfREFUQV9CVVJTVF9ESVM6CkBAIC00ODYsOCArNTg0LDEwIEBACiAJCUJVRygpOwogCQlyZXR1cm47CiAJfQotCU9NQVBfRE1BX0NTRFBfUkVHKGxjaCkgfD0gKGJ1cnN0IDw8IDE0KTsKKwlsIHw9IChidXJzdCA8PCAxNCk7CisJZG1hX3dyaXRlKGwsIENTRFAobGNoKSk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgb21hcF9lbmFibGVfY2hhbm5lbF9pcnEoaW50IGxjaCkKIHsKQEAgLTQ5NSw2NCArNTk1LDc0IEBACiAKIAkvKiBDbGVhciBDU1IgKi8KIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCXN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcobGNoKTsKKwkJc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGxjaCkpOwogCWVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQotCQlPTUFQX0RNQV9DU1JfUkVHKGxjaCkgPSBPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0s7CisJCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihsY2gpKTsKIAogCS8qIEVuYWJsZSBzb21lIG5pY2UgaW50ZXJydXB0cy4gKi8KLQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXM7Ci0KLQlkbWFfY2hhbltsY2hdLmZsYWdzIHw9IE9NQVBfRE1BX0FDVElWRTsKKwlkbWFfd3JpdGUoZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMsIENJQ1IobGNoKSk7CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfZGlzYWJsZV9jaGFubmVsX2lycShpbnQgbGNoKQogewogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogfQogCiB2b2lkIG9tYXBfZW5hYmxlX2RtYV9pcnEoaW50IGxjaCwgdTE2IGJpdHMpCiB7CiAJZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMgfD0gYml0czsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9lbmFibGVfZG1hX2lycSk7CiAKIHZvaWQgb21hcF9kaXNhYmxlX2RtYV9pcnEoaW50IGxjaCwgdTE2IGJpdHMpCiB7CiAJZG1hX2NoYW5bbGNoXS5lbmFibGVkX2lycXMgJj0gfmJpdHM7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZGlzYWJsZV9kbWFfaXJxKTsKIAogc3RhdGljIGlubGluZSB2b2lkIGVuYWJsZV9sbmsoaW50IGxjaCkKIHsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDTE5LX0NUUkwobGNoKSk7CisKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSAmPSB+KDEgPDwgMTQpOworCQlsICY9IH4oMSA8PCAxNCk7CiAKIAkvKiBTZXQgdGhlIEVOQUJMRV9MTksgYml0cyAqLwogCWlmIChkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKQotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgPQotCQkJZG1hX2NoYW5bbGNoXS5uZXh0X2xjaCB8ICgxIDw8IDE1KTsKKwkJbCA9IGRtYV9jaGFuW2xjaF0ubmV4dF9sY2ggfCAoMSA8PCAxNSk7CiAKICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKLQlpZiAoZG1hX2NoYW5bbGNoXS5uZXh0X2xpbmtlZF9jaCAhPSAtMSkKLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpID0KLQkJCWRtYV9jaGFuW2xjaF0ubmV4dF9saW5rZWRfY2ggfCAoMSA8PCAxNSk7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKQorCQlpZiAoZG1hX2NoYW5bbGNoXS5uZXh0X2xpbmtlZF9jaCAhPSAtMSkKKwkJCWwgPSBkbWFfY2hhbltsY2hdLm5leHRfbGlua2VkX2NoIHwgKDEgPDwgMTUpOwogI2VuZGlmCisKKwlkbWFfd3JpdGUobCwgQ0xOS19DVFJMKGxjaCkpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGlzYWJsZV9sbmsoaW50IGxjaCkKIHsKKwl1MzIgbDsKKworCWwgPSBkbWFfcmVhZChDTE5LX0NUUkwobGNoKSk7CisKIAkvKiBEaXNhYmxlIGludGVycnVwdHMgKi8KIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJT01BUF9ETUFfQ0lDUl9SRUcobGNoKSA9IDA7CisJCWRtYV93cml0ZSgwLCBDSUNSKGxjaCkpOwogCQkvKiBTZXQgdGhlIFNUT1BfTE5LIGJpdCAqLwotCQlPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaCkgfD0gMSA8PCAxNDsKKwkJbCB8PSAxIDw8IDE0OwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlvbWFwX2Rpc2FibGVfY2hhbm5lbF9pcnEobGNoKTsKIAkJLyogQ2xlYXIgdGhlIEVOQUJMRV9MTksgYml0ICovCi0JCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoKSAmPSB+KDEgPDwgMTUpOworCQlsICY9IH4oMSA8PCAxNSk7CiAJfQogCisJZG1hX3dyaXRlKGwsIENMTktfQ1RSTChsY2gpKTsKIAlkbWFfY2hhbltsY2hdLmZsYWdzICY9IH5PTUFQX0RNQV9BQ1RJVkU7CiB9CiAKQEAgLTU2MywxMyArNjczLDEzIEBACiAJaWYgKCFjcHVfY2xhc3NfaXNfb21hcDIoKSkKIAkJcmV0dXJuOwogCi0JdmFsID0gb21hcF9yZWFkbChPTUFQX0RNQTRfSVJRRU5BQkxFX0wwKTsKKwl2YWwgPSBkbWFfcmVhZChJUlFFTkFCTEVfTDApOwogCXZhbCB8PSAxIDw8IGxjaDsKLQlvbWFwX3dyaXRlbCh2YWwsIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDApOworCWRtYV93cml0ZSh2YWwsIElSUUVOQUJMRV9MMCk7CiB9CiAKIGludCBvbWFwX3JlcXVlc3RfZG1hKGludCBkZXZfaWQsIGNvbnN0IGNoYXIgKmRldl9uYW1lLAotCQkgICAgIHZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAorCQkgICAgIHZvaWQgKCpjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCiAJCSAgICAgdm9pZCAqZGF0YSwgaW50ICpkbWFfY2hfb3V0KQogewogCWludCBjaCwgZnJlZV9jaCA9IC0xOwpAQCAtNjAyLDEwICs3MTIsMTQgQEAKIAljaGFuLT5kZXZfbmFtZSA9IGRldl9uYW1lOwogCWNoYW4tPmNhbGxiYWNrID0gY2FsbGJhY2s7CiAJY2hhbi0+ZGF0YSA9IGRhdGE7CisKICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKLQljaGFuLT5jaGFpbl9pZCA9IC0xOwotCWNoYW4tPm5leHRfbGlua2VkX2NoID0gLTE7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CisJCWNoYW4tPmNoYWluX2lkID0gLTE7CisJCWNoYW4tPm5leHRfbGlua2VkX2NoID0gLTE7CisJfQogI2VuZGlmCisKIAljaGFuLT5lbmFibGVkX2lycXMgPSBPTUFQX0RNQV9EUk9QX0lSUSB8IE9NQVBfRE1BX0JMT0NLX0lSUTsKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKQEAgLTYyMCwyNiArNzM0LDI4IEBACiAJCQlzZXRfZ2RtYV9kZXYoZnJlZV9jaCArIDEsIGRldl9pZCk7CiAJCQlkZXZfaWQgPSBmcmVlX2NoICsgMTsKIAkJfQotCQkvKiBEaXNhYmxlIHRoZSAxNTEwIGNvbXBhdGliaWxpdHkgbW9kZSBhbmQgc2V0IHRoZSBzeW5jIGRldmljZQotCQkgKiBpZC4gKi8KLQkJT01BUF9ETUFfQ0NSX1JFRyhmcmVlX2NoKSA9IGRldl9pZCB8ICgxIDw8IDEwKTsKKwkJLyoKKwkJICogRGlzYWJsZSB0aGUgMTUxMCBjb21wYXRpYmlsaXR5IG1vZGUgYW5kIHNldCB0aGUgc3luYyBkZXZpY2UKKwkJICogaWQuCisJCSAqLworCQlkbWFfd3JpdGUoZGV2X2lkIHwgKDEgPDwgMTApLCBDQ1IoZnJlZV9jaCkpOwogCX0gZWxzZSBpZiAoY3B1X2lzX29tYXA3MzAoKSB8fCBjcHVfaXNfb21hcDE1eHgoKSkgewotCQlPTUFQX0RNQV9DQ1JfUkVHKGZyZWVfY2gpID0gZGV2X2lkOworCQlkbWFfd3JpdGUoZGV2X2lkLCBDQ1IoZnJlZV9jaCkpOwogCX0KIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlvbWFwMl9lbmFibGVfaXJxX2xjaChmcmVlX2NoKTsKLQogCQlvbWFwX2VuYWJsZV9jaGFubmVsX2lycShmcmVlX2NoKTsKIAkJLyogQ2xlYXIgdGhlIENTUiByZWdpc3RlciBhbmQgSVJRIHN0YXR1cyByZWdpc3RlciAqLwotCQlPTUFQX0RNQV9DU1JfUkVHKGZyZWVfY2gpID0gT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLOwotCQlvbWFwX3dyaXRlbCgxIDw8IGZyZWVfY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQlkbWFfd3JpdGUoT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLLCBDU1IoZnJlZV9jaCkpOworCQlkbWFfd3JpdGUoMSA8PCBmcmVlX2NoLCBJUlFTVEFUVVNfTDApOwogCX0KIAogCSpkbWFfY2hfb3V0ID0gZnJlZV9jaDsKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hKTsKIAogdm9pZCBvbWFwX2ZyZWVfZG1hKGludCBsY2gpCiB7CkBAIC02NDcsMTEgKzc2MywxMiBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRtYV9jaGFuX2xvY2ssIGZsYWdzKTsKIAlpZiAoZG1hX2NoYW5bbGNoXS5kZXZfaWQgPT0gLTEpIHsKLQkJcHJpbnRrKCJvbWFwX2RtYTogdHJ5aW5nIHRvIGZyZWUgbm9uYWxsb2NhdGVkIERNQSBjaGFubmVsICVkXG4iLAorCQlwcl9lcnIoIm9tYXBfZG1hOiB0cnlpbmcgdG8gZnJlZSB1bmFsbG9jYXRlZCBETUEgY2hhbm5lbCAlZFxuIiwKIAkJICAgICAgIGxjaCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtYV9jaGFuX2xvY2ssIGZsYWdzKTsKIAkJcmV0dXJuOwogCX0KKwogCWRtYV9jaGFuW2xjaF0uZGV2X2lkID0gLTE7CiAJZG1hX2NoYW5bbGNoXS5uZXh0X2xjaCA9IC0xOwogCWRtYV9jaGFuW2xjaF0uY2FsbGJhY2sgPSBOVUxMOwpAQCAtNjU5LDMwICs3NzYsMzEgQEAKIAogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgewogCQkvKiBEaXNhYmxlIGFsbCBETUEgaW50ZXJydXB0cyBmb3IgdGhlIGNoYW5uZWwuICovCi0JCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0lDUihsY2gpKTsKIAkJLyogTWFrZSBzdXJlIHRoZSBETUEgdHJhbnNmZXIgaXMgc3RvcHBlZC4gKi8KLQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENDUihsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKIAkJdTMyIHZhbDsKIAkJLyogRGlzYWJsZSBpbnRlcnJ1cHRzICovCi0JCXZhbCA9IG9tYXBfcmVhZGwoT01BUF9ETUE0X0lSUUVOQUJMRV9MMCk7CisJCXZhbCA9IGRtYV9yZWFkKElSUUVOQUJMRV9MMCk7CiAJCXZhbCAmPSB+KDEgPDwgbGNoKTsKLQkJb21hcF93cml0ZWwodmFsLCBPTUFQX0RNQTRfSVJRRU5BQkxFX0wwKTsKKwkJZG1hX3dyaXRlKHZhbCwgSVJRRU5BQkxFX0wwKTsKIAogCQkvKiBDbGVhciB0aGUgQ1NSIHJlZ2lzdGVyIGFuZCBJUlEgc3RhdHVzIHJlZ2lzdGVyICovCi0JCU9NQVBfRE1BX0NTUl9SRUcobGNoKSA9IE9NQVAyX0RNQV9DU1JfQ0xFQVJfTUFTSzsKLQkJb21hcF93cml0ZWwoMSA8PCBsY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQlkbWFfd3JpdGUoT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLLCBDU1IobGNoKSk7CisJCWRtYV93cml0ZSgxIDw8IGxjaCwgSVJRU1RBVFVTX0wwKTsKIAogCQkvKiBEaXNhYmxlIGFsbCBETUEgaW50ZXJydXB0cyBmb3IgdGhlIGNoYW5uZWwuICovCi0JCU9NQVBfRE1BX0NJQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0lDUihsY2gpKTsKIAogCQkvKiBNYWtlIHN1cmUgdGhlIERNQSB0cmFuc2ZlciBpcyBzdG9wcGVkLiAqLwotCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSAwOworCQlkbWFfd3JpdGUoMCwgQ0NSKGxjaCkpOwogCQlvbWFwX2NsZWFyX2RtYShsY2gpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0wob21hcF9mcmVlX2RtYSk7CiAKIC8qKgogICogQGJyaWVmIG9tYXBfZG1hX3NldF9nbG9iYWxfcGFyYW1zIDogU2V0IGdsb2JhbCBwcmlvcml0eSBzZXR0aW5ncyBmb3IgZG1hCkBAIC03MTAsNyArODI4LDcgQEAKIAlyZWcgPSAoYXJiX3JhdGUgJiAweGZmKSA8PCAxNjsKIAlyZWcgfD0gKDB4ZmYgJiBtYXhfZmlmb19kZXB0aCk7CiAKLQlvbWFwX3dyaXRlbChyZWcsIE9NQVBfRE1BNF9HQ1JfUkVHKTsKKwlkbWFfd3JpdGUocmVnLCBHQ1IpOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX2RtYV9zZXRfZ2xvYmFsX3BhcmFtcyk7CiAKQEAgLTcyNywyMCArODQ1LDIxIEBACiBvbWFwX2RtYV9zZXRfcHJpb19sY2goaW50IGxjaCwgdW5zaWduZWQgY2hhciByZWFkX3ByaW8sCiAJCSAgICAgIHVuc2lnbmVkIGNoYXIgd3JpdGVfcHJpbykKIHsKLQl1MzIgdzsKKwl1MzIgbDsKIAotCWlmICh1bmxpa2VseSgobGNoIDwgMCB8fCBsY2ggPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChsY2ggPCAwIHx8IGxjaCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYW5uZWwgaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JdyA9IE9NQVBfRE1BX0NDUl9SRUcobGNoKTsKLQl3ICY9IH4oKDEgPDwgNikgfCAoMSA8PCAyNikpOworCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CisJbCAmPSB+KCgxIDw8IDYpIHwgKDEgPDwgMjYpKTsKIAlpZiAoY3B1X2lzX29tYXAyNDMwKCkgfHwgY3B1X2lzX29tYXAzNHh4KCkpCi0JCXcgfD0gKChyZWFkX3ByaW8gJiAweDEpIDw8IDYpIHwgKCh3cml0ZV9wcmlvICYgMHgxKSA8PCAyNik7CisJCWwgfD0gKChyZWFkX3ByaW8gJiAweDEpIDw8IDYpIHwgKCh3cml0ZV9wcmlvICYgMHgxKSA8PCAyNik7CiAJZWxzZQotCQl3IHw9ICgocmVhZF9wcmlvICYgMHgxKSA8PCA2KTsKKwkJbCB8PSAoKHJlYWRfcHJpbyAmIDB4MSkgPDwgNik7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB3OworCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9kbWFfc2V0X3ByaW9fbGNoKTsKQEAgLTc1NiwyOCArODc1LDM0IEBACiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCWludCBzdGF0dXM7Ci0JCU9NQVBfRE1BX0NDUl9SRUcobGNoKSAmPSB+T01BUF9ETUFfQ0NSX0VOOworCQl1MzIgbDsKKworCQlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCQlsICY9IH5PTUFQX0RNQV9DQ1JfRU47CisJCWRtYV93cml0ZShsLCBDQ1IobGNoKSk7CiAKIAkJLyogQ2xlYXIgcGVuZGluZyBpbnRlcnJ1cHRzICovCi0JCXN0YXR1cyA9IE9NQVBfRE1BX0NTUl9SRUcobGNoKTsKKwkJbCA9IGRtYV9yZWFkKENTUihsY2gpKTsKIAl9CiAKIAlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpIHsKIAkJaW50IGk7Ci0JCXUzMiBsY2hfYmFzZSA9IE9NQVBfRE1BNF9CQVNFICsgbGNoICogMHg2MCArIDB4ODA7CisJCXZvaWQgX19pb21lbSAqbGNoX2Jhc2UgPSBvbWFwX2RtYV9iYXNlICsgT01BUF9ETUE0X0NIX0JBU0UobGNoKTsKIAkJZm9yIChpID0gMDsgaSA8IDB4NDQ7IGkgKz0gNCkKLQkJCW9tYXBfd3JpdGVsKDAsIGxjaF9iYXNlICsgaSk7CisJCQlfX3Jhd193cml0ZWwoMCwgbGNoX2Jhc2UgKyBpKTsKIAl9CiAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfY2xlYXJfZG1hKTsKIAogdm9pZCBvbWFwX3N0YXJ0X2RtYShpbnQgbGNoKQogeworCXUzMiBsOworCiAJaWYgKCFvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSAmJiBkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKSB7CiAJCWludCBuZXh0X2xjaCwgY3VyX2xjaDsKLQkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXTsKKwkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOwogCiAJCWRtYV9jaGFuX2xpbmtfbWFwW2xjaF0gPSAxOwogCQkvKiBTZXQgdGhlIGxpbmsgcmVnaXN0ZXIgb2YgdGhlIGZpcnN0IGNoYW5uZWwgKi8KQEAgLTgwMSwyNyArOTI2LDM0IEBACiAJCX0gd2hpbGUgKG5leHRfbGNoICE9IC0xKTsKIAl9IGVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7CiAJCS8qIEVycmF0YTogTmVlZCB0byB3cml0ZSBsY2ggZXZlbiBpZiBub3QgdXNpbmcgY2hhaW5pbmcgKi8KLQkJT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2gpID0gbGNoOworCQlkbWFfd3JpdGUobGNoLCBDTE5LX0NUUkwobGNoKSk7CiAJfQogCiAJb21hcF9lbmFibGVfY2hhbm5lbF9pcnEobGNoKTsKIAotCS8qIEVycmF0YTogT24gRVMyLjAgQlVGRkVSSU5HIGRpc2FibGUgbXVzdCBiZSBzZXQuCi0JICogVGhpcyB3aWxsIGFsd2F5cyBmYWlsIG9uIEVTMS4wICovCi0JaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7Ci0JCU9NQVBfRE1BX0NDUl9SRUcobGNoKSB8PSBPTUFQX0RNQV9DQ1JfRU47Ci0JfQorCWwgPSBkbWFfcmVhZChDQ1IobGNoKSk7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgfD0gT01BUF9ETUFfQ0NSX0VOOworCS8qCisJICogRXJyYXRhOiBPbiBFUzIuMCBCVUZGRVJJTkcgZGlzYWJsZSBtdXN0IGJlIHNldC4KKwkgKiBUaGlzIHdpbGwgYWx3YXlzIGZhaWwgb24gRVMxLjAKKwkgKi8KKwlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCisJCWwgfD0gT01BUF9ETUFfQ0NSX0VOOworCisJbCB8PSBPTUFQX0RNQV9DQ1JfRU47CisJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAogCWRtYV9jaGFuW2xjaF0uZmxhZ3MgfD0gT01BUF9ETUFfQUNUSVZFOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3N0YXJ0X2RtYSk7CiAKIHZvaWQgb21hcF9zdG9wX2RtYShpbnQgbGNoKQogeworCXUzMiBsOworCiAJaWYgKCFvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSAmJiBkbWFfY2hhbltsY2hdLm5leHRfbGNoICE9IC0xKSB7CiAJCWludCBuZXh0X2xjaCwgY3VyX2xjaCA9IGxjaDsKLQkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UXTsKKwkJY2hhciBkbWFfY2hhbl9saW5rX21hcFtPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlRdOwogCiAJCW1lbXNldChkbWFfY2hhbl9saW5rX21hcCwgMCwgc2l6ZW9mKGRtYV9jaGFuX2xpbmtfbWFwKSk7CiAJCWRvIHsKQEAgLTg0MiwxOCArOTc0LDIyIEBACiAKIAkvKiBEaXNhYmxlIGFsbCBpbnRlcnJ1cHRzIG9uIHRoZSBjaGFubmVsICovCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlPTUFQX0RNQV9DSUNSX1JFRyhsY2gpID0gMDsKKwkJZG1hX3dyaXRlKDAsIENJQ1IobGNoKSk7CiAKLQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgJj0gfk9NQVBfRE1BX0NDUl9FTjsKKwlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOworCWwgJj0gfk9NQVBfRE1BX0NDUl9FTjsKKwlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOworCiAJZG1hX2NoYW5bbGNoXS5mbGFncyAmPSB+T01BUF9ETUFfQUNUSVZFOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfZG1hKTsKIAogLyoKICAqIEFsbG93cyBjaGFuZ2luZyB0aGUgRE1BIGNhbGxiYWNrIGZ1bmN0aW9uIG9yIGRhdGEuIFRoaXMgbWF5IGJlIG5lZWRlZCBpZgogICogdGhlIGRyaXZlciBzaGFyZXMgYSBzaW5nbGUgRE1BIGNoYW5uZWwgZm9yIG11bHRpcGxlIGRtYSB0cmlnZ2Vycy4KICAqLwogaW50IG9tYXBfc2V0X2RtYV9jYWxsYmFjayhpbnQgbGNoLAotCQkJICB2b2lkICgqIGNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKKwkJCSAgdm9pZCAoKmNhbGxiYWNrKShpbnQgbGNoLCB1MTYgY2hfc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCSAgdm9pZCAqZGF0YSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtODczLDYgKzEwMDksNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jYWxsYmFjayk7CiAKIC8qCiAgKiBSZXR1cm5zIGN1cnJlbnQgcGh5c2ljYWwgc291cmNlIGFkZHJlc3MgZm9yIHRoZSBnaXZlbiBETUEgY2hhbm5lbC4KQEAgLTg4NiwxNSArMTAyMywyNCBAQAogewogCWRtYV9hZGRyX3Qgb2Zmc2V0ID0gMDsKIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJb2Zmc2V0ID0gKGRtYV9hZGRyX3QpIChPTUFQMV9ETUFfQ1NTQV9MX1JFRyhsY2gpIHwKLQkJCQkgICAgICAgKE9NQVAxX0RNQV9DU1NBX1VfUkVHKGxjaCkgPDwgMTYpKTsKKwlpZiAoY3B1X2lzX29tYXAxNXh4KCkpCisJCW9mZnNldCA9IGRtYV9yZWFkKENQQyhsY2gpKTsKKwllbHNlCisJCW9mZnNldCA9IGRtYV9yZWFkKENTQUMobGNoKSk7CiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCi0JCW9mZnNldCA9IE9NQVBfRE1BX0NTQUNfUkVHKGxjaCk7CisJLyoKKwkgKiBvbWFwIDMuMi8zLjMgZXJyYXR1bTogc29tZXRpbWVzIDAgaXMgcmV0dXJuZWQgaWYgQ1NBQy9DREFDIGlzCisJICogcmVhZCBiZWZvcmUgdGhlIERNQSBjb250cm9sbGVyIGZpbmlzaGVkIGRpc2FibGluZyB0aGUgY2hhbm5lbC4KKwkgKi8KKwlpZiAoIWNwdV9pc19vbWFwMTV4eCgpICYmIG9mZnNldCA9PSAwKQorCQlvZmZzZXQgPSBkbWFfcmVhZChDU0FDKGxjaCkpOworCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQorCQlvZmZzZXQgfD0gKGRtYV9yZWFkKENTU0FfVShsY2gpKSA8PCAxNik7CiAKIAlyZXR1cm4gb2Zmc2V0OwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfc3JjX3Bvcyk7CiAKIC8qCiAgKiBSZXR1cm5zIGN1cnJlbnQgcGh5c2ljYWwgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgdGhlIGdpdmVuIERNQSBjaGFubmVsLgpAQCAtOTA4LDI1ICsxMDU0LDMwIEBACiB7CiAJZG1hX2FkZHJfdCBvZmZzZXQgPSAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKQotCQlvZmZzZXQgPSAoZG1hX2FkZHJfdCkgKE9NQVAxX0RNQV9DRFNBX0xfUkVHKGxjaCkgfAotCQkJCSAgICAgICAoT01BUDFfRE1BX0NEU0FfVV9SRUcobGNoKSA8PCAxNikpOworCWlmIChjcHVfaXNfb21hcDE1eHgoKSkKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ1BDKGxjaCkpOworCWVsc2UKKwkJb2Zmc2V0ID0gZG1hX3JlYWQoQ0RBQyhsY2gpKTsKIAotCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkKLQkJb2Zmc2V0ID0gT01BUF9ETUFfQ0RBQ19SRUcobGNoKTsKKwkvKgorCSAqIG9tYXAgMy4yLzMuMyBlcnJhdHVtOiBzb21ldGltZXMgMCBpcyByZXR1cm5lZCBpZiBDU0FDL0NEQUMgaXMKKwkgKiByZWFkIGJlZm9yZSB0aGUgRE1BIGNvbnRyb2xsZXIgZmluaXNoZWQgZGlzYWJsaW5nIHRoZSBjaGFubmVsLgorCSAqLworCWlmICghY3B1X2lzX29tYXAxNXh4KCkgJiYgb2Zmc2V0ID09IDApCisJCW9mZnNldCA9IGRtYV9yZWFkKENEQUMobGNoKSk7CisKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpCisJCW9mZnNldCB8PSAoZG1hX3JlYWQoQ0RTQV9VKGxjaCkpIDw8IDE2KTsKIAogCXJldHVybiBvZmZzZXQ7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9kc3RfcG9zKTsKIAotLyoKLSAqIFJldHVybnMgY3VycmVudCBzb3VyY2UgdHJhbnNmZXIgY291bnRpbmcgZm9yIHRoZSBnaXZlbiBETUEgY2hhbm5lbC4KLSAqIENhbiBiZSB1c2VkIHRvIG1vbml0b3IgdGhlIHByb2dyZXNzIG9mIGEgdHJhbnNmZXIgaW5zaWRlIGEgYmxvY2suCi0gKiBJdCBtdXN0IGJlIGNhbGxlZCB3aXRoIGRpc2FibGVkIGludGVycnVwdHMuCi0gKi8KLWludCBvbWFwX2dldF9kbWFfc3JjX2FkZHJfY291bnRlcihpbnQgbGNoKQoraW50IG9tYXBfZ2V0X2RtYV9hY3RpdmVfc3RhdHVzKGludCBsY2gpCiB7Ci0JcmV0dXJuIChkbWFfYWRkcl90KSBPTUFQX0RNQV9DU0FDX1JFRyhsY2gpOworCXJldHVybiAoZG1hX3JlYWQoQ0NSKGxjaCkpICYgT01BUF9ETUFfQ0NSX0VOKSAhPSAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfYWN0aXZlX3N0YXR1cyk7CiAKIGludCBvbWFwX2RtYV9ydW5uaW5nKHZvaWQpCiB7CkBAIC05MzgsNyArMTA4OSw3IEBACiAJCQlyZXR1cm4gMTsKIAogCWZvciAobGNoID0gMDsgbGNoIDwgZG1hX2NoYW5fY291bnQ7IGxjaCsrKQotCQlpZiAoT01BUF9ETUFfQ0NSX1JFRyhsY2gpICYgT01BUF9ETUFfQ0NSX0VOKQorCQlpZiAoZG1hX3JlYWQoQ0NSKGxjaCkpICYgT01BUF9ETUFfQ0NSX0VOKQogCQkJcmV0dXJuIDE7CiAKIAlyZXR1cm4gMDsKQEAgLTk0OSw3ICsxMTAwLDcgQEAKICAqIEZvciB0aGlzIERNQSBsaW5rIHRvIHN0YXJ0LCB5b3Ugc3RpbGwgbmVlZCB0byBzdGFydCAoc2VlIG9tYXBfc3RhcnRfZG1hKQogICogdGhlIGZpcnN0IG9uZS4gVGhhdCB3aWxsIGZpcmUgdXAgdGhlIGVudGlyZSBxdWV1ZS4KICAqLwotdm9pZCBvbWFwX2RtYV9saW5rX2xjaCAoaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKQordm9pZCBvbWFwX2RtYV9saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCiB7CiAJaWYgKG9tYXBfZG1hX2luXzE1MTBfbW9kZSgpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRE1BIGxpbmtpbmcgaXMgbm90IHN1cHBvcnRlZCBpbiAxNTEwIG1vZGVcbiIpOwpAQCAtOTY2LDExICsxMTE3LDEyIEBACiAKIAlkbWFfY2hhbltsY2hfaGVhZF0ubmV4dF9sY2ggPSBsY2hfcXVldWU7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2xpbmtfbGNoKTsKIAogLyoKICAqIE9uY2UgdGhlIERNQSBxdWV1ZSBpcyBzdG9wcGVkLCB3ZSBjYW4gZGVzdHJveSBpdC4KICAqLwotdm9pZCBvbWFwX2RtYV91bmxpbmtfbGNoIChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpCit2b2lkIG9tYXBfZG1hX3VubGlua19sY2goaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKQogewogCWlmIChvbWFwX2RtYV9pbl8xNTEwX21vZGUoKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkRNQSBsaW5raW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gMTUxMCBtb2RlXG4iKTsKQEAgLTk4NSw3ICsxMTM3LDYgQEAKIAkJZHVtcF9zdGFjaygpOwogCX0KIAotCiAJaWYgKChkbWFfY2hhbltsY2hfaGVhZF0uZmxhZ3MgJiBPTUFQX0RNQV9BQ1RJVkUpIHx8CiAJICAgIChkbWFfY2hhbltsY2hfaGVhZF0uZmxhZ3MgJiBPTUFQX0RNQV9BQ1RJVkUpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAib21hcF9kbWE6IFlvdSBuZWVkIHRvIHN0b3AgdGhlIERNQSBjaGFubmVscyAiCkBAIC05OTUsMTIgKzExNDYsMTUgQEAKIAogCWRtYV9jaGFuW2xjaF9oZWFkXS5uZXh0X2xjaCA9IC0xOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2RtYV91bmxpbmtfbGNoKTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAogI2lmbmRlZiBDT05GSUdfQVJDSF9PTUFQMQogLyogQ3JlYXRlIGNoYWluIG9mIERNQSBjaGFubmVzbHMgKi8KIHN0YXRpYyB2b2lkIGNyZWF0ZV9kbWFfbGNoX2NoYWluKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSkKIHsKLQl1MzIgdzsKKwl1MzIgbDsKIAogCS8qIENoZWNrIGlmIHRoaXMgaXMgdGhlIGZpcnN0IGxpbmsgaW4gY2hhaW4gKi8KIAlpZiAoZG1hX2NoYW5bbGNoX2hlYWRdLm5leHRfbGlua2VkX2NoID09IC0xKSB7CkBAIC0xMDIwLDE1ICsxMTc0LDE1IEBACiAJCQkJCWxjaF9xdWV1ZTsKIAl9CiAKLQl3ID0gT01BUF9ETUFfQ0xOS19DVFJMX1JFRyhsY2hfaGVhZCk7Ci0JdyAmPSB+KDB4MWYpOwotCXcgfD0gbGNoX3F1ZXVlOwotCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoX2hlYWQpID0gdzsKKwlsID0gZG1hX3JlYWQoQ0xOS19DVFJMKGxjaF9oZWFkKSk7CisJbCAmPSB+KDB4MWYpOworCWwgfD0gbGNoX3F1ZXVlOworCWRtYV93cml0ZShsLCBDTE5LX0NUUkwobGNoX2hlYWQpKTsKIAotCXcgPSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKGxjaF9xdWV1ZSk7Ci0JdyAmPSB+KDB4MWYpOwotCXcgfD0gKGRtYV9jaGFuW2xjaF9xdWV1ZV0ubmV4dF9saW5rZWRfY2gpOwotCU9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobGNoX3F1ZXVlKSA9IHc7CisJbCA9IGRtYV9yZWFkKENMTktfQ1RSTChsY2hfcXVldWUpKTsKKwlsICY9IH4oMHgxZik7CisJbCB8PSAoZG1hX2NoYW5bbGNoX3F1ZXVlXS5uZXh0X2xpbmtlZF9jaCk7CisJZG1hX3dyaXRlKGwsIENMTktfQ1RSTChsY2hfcXVldWUpKTsKIH0KIAogLyoqCkBAIC0xMDYzLDcgKzEyMTcsNyBAQAogCX0KIAogCWlmICh1bmxpa2VseSgobm9fb2ZfY2hhbnMgPCAxCi0JCQl8fCBub19vZl9jaGFucyA+IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCQkJfHwgbm9fb2ZfY2hhbnMgPiBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIE51bWJlciBvZiBjaGFubmVscyByZXF1ZXN0ZWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMTE4LDYgKzEyNzIsNyBAQAogCQlmb3IgKGkgPSAwOyBpIDwgKG5vX29mX2NoYW5zIC0gMSk7IGkrKykKIAkJCWNyZWF0ZV9kbWFfbGNoX2NoYWluKGNoYW5uZWxzW2ldLCBjaGFubmVsc1tpICsgMV0pOwogCX0KKwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hX2NoYWluKTsKQEAgLTExNDAsNyArMTI5NSw3IEBACiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCiAJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAKLQkJCXx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCQkJfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTExNjAsNiArMTMxNSw3IEBACiAJCSAqLwogCQlvbWFwX3NldF9kbWFfcGFyYW1zKGNoYW5uZWxzW2ldLCAmcGFyYW1zKTsKIAl9CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9tb2RpZnlfZG1hX2NoYWluX3BhcmFtcyk7CkBAIC0xMTc4LDcgKzEzMzQsNyBAQAogCXUzMiBpOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjAzLDYgKzEzNTksNyBAQAogCWRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5saW5rZWRfZG1hY2hfcSA9IE5VTEw7CiAJZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX21vZGUgPSAtMTsKIAlkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fc3RhdGUgPSAtMTsKKwogCXJldHVybiAoMCk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZnJlZV9kbWFfY2hhaW4pOwpAQCAtMTIxOCw3ICsxMzc1LDcgQEAKIGludCBvbWFwX2RtYV9jaGFpbl9zdGF0dXMoaW50IGNoYWluX2lkKQogewogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTIzMyw2ICsxMzkwLDcgQEAKIAogCWlmIChPTUFQX0RNQV9DSEFJTl9RRU1QVFkoY2hhaW5faWQpKQogCQlyZXR1cm4gT01BUF9ETUFfQ0hBSU5fSU5BQ1RJVkU7CisKIAlyZXR1cm4gT01BUF9ETUFfQ0hBSU5fQUNUSVZFOwogfQogRVhQT1JUX1NZTUJPTChvbWFwX2RtYV9jaGFpbl9zdGF0dXMpOwpAQCAtMTI1NSwxMSArMTQxMywxMyBAQAogCQkJaW50IGVsZW1fY291bnQsIGludCBmcmFtZV9jb3VudCwgdm9pZCAqY2FsbGJrX2RhdGEpCiB7CiAJaW50ICpjaGFubmVsczsKLQl1MzIgdywgbGNoOworCXUzMiBsLCBsY2g7CiAJaW50IHN0YXJ0X2RtYSA9IDA7CiAKLQkvKiBpZiBidWZmZXIgc2l6ZSBpcyBsZXNzIHRoYW4gMSB0aGVuIHRoZXJlIGlzCi0JICogbm8gdXNlIG9mIHN0YXJ0aW5nIHRoZSBjaGFpbiAqLworCS8qCisJICogaWYgYnVmZmVyIHNpemUgaXMgbGVzcyB0aGFuIDEgdGhlbiB0aGVyZSBpcworCSAqIG5vIHVzZSBvZiBzdGFydGluZyB0aGUgY2hhaW4KKwkgKi8KIAlpZiAoZWxlbV9jb3VudCA8IDEpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGJ1ZmZlciBzaXplXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMjY3LDcgKzE0MjcsNyBAQAogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwogCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwCi0JCQl8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwkJCXx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xMjk2LDIwICsxNDU2LDI0IEBACiAKIAkvKiBTZXQgdGhlIHBhcmFtcyB0byB0aGUgZnJlZSBjaGFubmVsICovCiAJaWYgKHNyY19zdGFydCAhPSAwKQotCQlPTUFQMl9ETUFfQ1NTQV9SRUcobGNoKSA9IHNyY19zdGFydDsKKwkJZG1hX3dyaXRlKHNyY19zdGFydCwgQ1NTQShsY2gpKTsKIAlpZiAoZGVzdF9zdGFydCAhPSAwKQotCQlPTUFQMl9ETUFfQ0RTQV9SRUcobGNoKSA9IGRlc3Rfc3RhcnQ7CisJCWRtYV93cml0ZShkZXN0X3N0YXJ0LCBDRFNBKGxjaCkpOwogCiAJLyogV3JpdGUgdGhlIGJ1ZmZlciBzaXplICovCi0JT01BUF9ETUFfQ0VOX1JFRyhsY2gpID0gZWxlbV9jb3VudDsKLQlPTUFQX0RNQV9DRk5fUkVHKGxjaCkgPSBmcmFtZV9jb3VudDsKKwlkbWFfd3JpdGUoZWxlbV9jb3VudCwgQ0VOKGxjaCkpOworCWRtYV93cml0ZShmcmFtZV9jb3VudCwgQ0ZOKGxjaCkpOwogCi0JLyogSWYgdGhlIGNoYWluIGlzIGR5bmFtaWNhbGx5IGxpbmtlZCwKLQkgKiB0aGVuIHdlIG1heSBoYXZlIHRvIHN0YXJ0IHRoZSBjaGFpbiBpZiBpdHMgbm90IGFjdGl2ZSAqLworCS8qCisJICogSWYgdGhlIGNoYWluIGlzIGR5bmFtaWNhbGx5IGxpbmtlZCwKKwkgKiB0aGVuIHdlIG1heSBoYXZlIHRvIHN0YXJ0IHRoZSBjaGFpbiBpZiBpdHMgbm90IGFjdGl2ZQorCSAqLwogCWlmIChkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0uY2hhaW5fbW9kZSA9PSBPTUFQX0RNQV9EWU5BTUlDX0NIQUlOKSB7CiAKLQkJLyogSW4gRHluYW1pYyBjaGFpbiwgaWYgdGhlIGNoYWluIGlzIG5vdCBzdGFydGVkLAotCQkgKiBxdWV1ZSB0aGUgY2hhbm5lbCAqLworCQkvKgorCQkgKiBJbiBEeW5hbWljIGNoYWluLCBpZiB0aGUgY2hhaW4gaXMgbm90IHN0YXJ0ZWQsCisJCSAqIHF1ZXVlIHRoZSBjaGFubmVsCisJCSAqLwogCQlpZiAoZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX3N0YXRlID09CiAJCQkJCQlETUFfQ0hBSU5fTk9UU1RBUlRFRCkgewogCQkJLyogRW5hYmxlIHRoZSBsaW5rIGluIHByZXZpb3VzIGNoYW5uZWwgKi8KQEAgLTEzMTksOCArMTQ4MywxMCBAQAogCQkJZG1hX2NoYW5bbGNoXS5zdGF0ZSA9IERNQV9DSF9RVUVVRUQ7CiAJCX0KIAotCQkvKiBDaGFpbiBpcyBhbHJlYWR5IHN0YXJ0ZWQsIG1ha2Ugc3VyZSBpdHMgYWN0aXZlLAotCQkgKiBpZiBub3QgdGhlbiBzdGFydCB0aGUgY2hhaW4gKi8KKwkJLyoKKwkJICogQ2hhaW4gaXMgYWxyZWFkeSBzdGFydGVkLCBtYWtlIHN1cmUgaXRzIGFjdGl2ZSwKKwkJICogaWYgbm90IHRoZW4gc3RhcnQgdGhlIGNoYWluCisJCSAqLwogCQllbHNlIHsKIAkJCXN0YXJ0X2RtYSA9IDE7CiAKQEAgLTEzMjksOCArMTQ5NSw4IEBACiAJCQkJZW5hYmxlX2xuayhkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKTsKIAkJCQlkbWFfY2hhbltsY2hdLnN0YXRlID0gRE1BX0NIX1FVRVVFRDsKIAkJCQlzdGFydF9kbWEgPSAwOwotCQkJCWlmICgwID09ICgoMSA8PCA3KSAmIChPTUFQX0RNQV9DQ1JfUkVHCi0JCQkJCShkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKSkpKSB7CisJCQkJaWYgKDAgPT0gKCgxIDw8IDcpICYgZG1hX3JlYWQoCisJCQkJCUNDUihkbWFfY2hhbltsY2hdLnByZXZfbGlua2VkX2NoKSkpKSB7CiAJCQkJCWRpc2FibGVfbG5rKGRtYV9jaGFuW2xjaF0uCiAJCQkJCQkgICAgcHJldl9saW5rZWRfY2gpOwogCQkJCQlwcl9kZWJ1ZygiXG4gcHJldiBjaCBpcyBzdG9wcGVkXG4iKTsKQEAgLTEzNDYsMjcgKzE1MTIsMjggQEAKIAkJCX0KIAkJCW9tYXBfZW5hYmxlX2NoYW5uZWxfaXJxKGxjaCk7CiAKLQkJCXcgPSBPTUFQX0RNQV9DQ1JfUkVHKGxjaCk7CisJCQlsID0gZG1hX3JlYWQoQ0NSKGxjaCkpOwogCi0JCQlpZiAoKDAgPT0gKHcgJiAoMSA8PCAyNCkpKSkKLQkJCQl3ICY9IH4oMSA8PCAyNSk7CisJCQlpZiAoKDAgPT0gKGwgJiAoMSA8PCAyNCkpKSkKKwkJCQlsICY9IH4oMSA8PCAyNSk7CiAJCQllbHNlCi0JCQkJdyB8PSAoMSA8PCAyNSk7CisJCQkJbCB8PSAoMSA8PCAyNSk7CiAJCQlpZiAoc3RhcnRfZG1hID09IDEpIHsKLQkJCQlpZiAoMCA9PSAodyAmICgxIDw8IDcpKSkgewotCQkJCQl3IHw9ICgxIDw8IDcpOworCQkJCWlmICgwID09IChsICYgKDEgPDwgNykpKSB7CisJCQkJCWwgfD0gKDEgPDwgNyk7CiAJCQkJCWRtYV9jaGFuW2xjaF0uc3RhdGUgPSBETUFfQ0hfU1RBUlRFRDsKIAkJCQkJcHJfZGVidWcoInN0YXJ0aW5nICVkXG4iLCBsY2gpOwotCQkJCQlPTUFQX0RNQV9DQ1JfUkVHKGxjaCkgPSB3OworCQkJCQlkbWFfd3JpdGUobCwgQ0NSKGxjaCkpOwogCQkJCX0gZWxzZQogCQkJCQlzdGFydF9kbWEgPSAwOwogCQkJfSBlbHNlIHsKLQkJCQlpZiAoMCA9PSAodyAmICgxIDw8IDcpKSkKLQkJCQkJT01BUF9ETUFfQ0NSX1JFRyhsY2gpID0gdzsKKwkJCQlpZiAoMCA9PSAobCAmICgxIDw8IDcpKSkKKwkJCQkJZG1hX3dyaXRlKGwsIENDUihsY2gpKTsKIAkJCX0KIAkJCWRtYV9jaGFuW2xjaF0uZmxhZ3MgfD0gT01BUF9ETUFfQUNUSVZFOwogCQl9CiAJfQorCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2NoYWluX2FfdHJhbnNmZXIpOwpAQCAtMTM4Miw5ICsxNTQ5LDkgQEAKIGludCBvbWFwX3N0YXJ0X2RtYV9jaGFpbl90cmFuc2ZlcnMoaW50IGNoYWluX2lkKQogewogCWludCAqY2hhbm5lbHM7Ci0JdTMyIHcsIGk7CisJdTMyIGwsIGk7CiAKLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTQwNiwxOCArMTU3MywxOSBAQAogCQlvbWFwX2VuYWJsZV9jaGFubmVsX2lycShjaGFubmVsc1swXSk7CiAJfQogCi0JdyA9IE9NQVBfRE1BX0NDUl9SRUcoY2hhbm5lbHNbMF0pOwotCXcgfD0gKDEgPDwgNyk7CisJbCA9IGRtYV9yZWFkKENDUihjaGFubmVsc1swXSkpOworCWwgfD0gKDEgPDwgNyk7CiAJZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmNoYWluX3N0YXRlID0gRE1BX0NIQUlOX1NUQVJURUQ7CiAJZG1hX2NoYW5bY2hhbm5lbHNbMF1dLnN0YXRlID0gRE1BX0NIX1NUQVJURUQ7CiAKLQlpZiAoKDAgPT0gKHcgJiAoMSA8PCAyNCkpKSkKLQkJdyAmPSB+KDEgPDwgMjUpOworCWlmICgoMCA9PSAobCAmICgxIDw8IDI0KSkpKQorCQlsICY9IH4oMSA8PCAyNSk7CiAJZWxzZQotCQl3IHw9ICgxIDw8IDI1KTsKLQlPTUFQX0RNQV9DQ1JfUkVHKGNoYW5uZWxzWzBdKSA9IHc7CisJCWwgfD0gKDEgPDwgMjUpOworCWRtYV93cml0ZShsLCBDQ1IoY2hhbm5lbHNbMF0pKTsKIAogCWRtYV9jaGFuW2NoYW5uZWxzWzBdXS5mbGFncyB8PSBPTUFQX0RNQV9BQ1RJVkU7CisKIAlyZXR1cm4gMDsKIH0KIEVYUE9SVF9TWU1CT0wob21hcF9zdGFydF9kbWFfY2hhaW5fdHJhbnNmZXJzKTsKQEAgLTE0MzMsMTEgKzE2MDEsMTEgQEAKIGludCBvbWFwX3N0b3BfZG1hX2NoYWluX3RyYW5zZmVycyhpbnQgY2hhaW5faWQpCiB7CiAJaW50ICpjaGFubmVsczsKLQl1MzIgdywgaTsKKwl1MzIgbCwgaTsKIAl1MzIgc3lzX2NmOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNDQ5LDIxICsxNjE3LDIyIEBACiAJfQogCWNoYW5uZWxzID0gZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLmxpbmtlZF9kbWFjaF9xOwogCi0JLyogRE1BIEVycmF0YToKKwkvKgorCSAqIERNQSBFcnJhdGE6CiAJICogU3BlY2lhbCBwcm9ncmFtbWluZyBtb2RlbCBuZWVkZWQgdG8gZGlzYWJsZSBETUEgYmVmb3JlIGVuZCBvZiBibG9jawogCSAqLwotCXN5c19jZiA9IG9tYXBfcmVhZGwoT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOwotCXcgPSBzeXNfY2Y7CisJc3lzX2NmID0gZG1hX3JlYWQoT0NQX1NZU0NPTkZJRyk7CisJbCA9IHN5c19jZjsKIAkvKiBNaWRkbGUgbW9kZSByZWcgc2V0IG5vIFN0YW5kYnkgKi8KLQl3ICY9IH4oKDEgPDwgMTIpfCgxIDw8IDEzKSk7Ci0Jb21hcF93cml0ZWwodywgT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOworCWwgJj0gfigoMSA8PCAxMil8KDEgPDwgMTMpKTsKKwlkbWFfd3JpdGUobCwgT0NQX1NZU0NPTkZJRyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZG1hX2xpbmtlZF9sY2hbY2hhaW5faWRdLm5vX29mX2xjaHNfbGlua2VkOyBpKyspIHsKIAogCQkvKiBTdG9wIHRoZSBDaGFubmVsIHRyYW5zbWlzc2lvbiAqLwotCQl3ID0gT01BUF9ETUFfQ0NSX1JFRyhjaGFubmVsc1tpXSk7Ci0JCXcgJj0gfigxIDw8IDcpOwotCQlPTUFQX0RNQV9DQ1JfUkVHKGNoYW5uZWxzW2ldKSA9IHc7CisJCWwgPSBkbWFfcmVhZChDQ1IoY2hhbm5lbHNbaV0pKTsKKwkJbCAmPSB+KDEgPDwgNyk7CisJCWRtYV93cml0ZShsLCBDQ1IoY2hhbm5lbHNbaV0pKTsKIAogCQkvKiBEaXNhYmxlIHRoZSBsaW5rIGluIGFsbCB0aGUgY2hhbm5lbHMgKi8KIAkJZGlzYWJsZV9sbmsoY2hhbm5lbHNbaV0pOwpAQCAtMTQ3Niw3ICsxNjQ1LDggQEAKIAlPTUFQX0RNQV9DSEFJTl9RSU5JVChjaGFpbl9pZCk7CiAKIAkvKiBFcnJhdGEgLSBwdXQgaW4gdGhlIG9sZCB2YWx1ZSAqLwotCW9tYXBfd3JpdGVsKHN5c19jZiwgT01BUF9ETUE0X09DUF9TWVNDT05GSUcpOworCWRtYV93cml0ZShzeXNfY2YsIE9DUF9TWVNDT05GSUcpOworCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfc3RvcF9kbWFfY2hhaW5fdHJhbnNmZXJzKTsKQEAgLTE0OTksNyArMTY2OSw3IEBACiAJaW50ICpjaGFubmVsczsKIAogCS8qIENoZWNrIGZvciBpbnB1dCBwYXJhbXMgKi8KLQlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UKSkpIHsKKwlpZiAodW5saWtlbHkoKGNoYWluX2lkIDwgMCB8fCBjaGFpbl9pZCA+PSBkbWFfbGNoX2NvdW50KSkpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIGNoYWluIGlkXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQpAQCAtMTUxNyw4ICsxNjg3LDggQEAKIAkvKiBHZXQgdGhlIGN1cnJlbnQgY2hhbm5lbCAqLwogCWxjaCA9IGNoYW5uZWxzW2RtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5xX2hlYWRdOwogCi0JKmVpID0gT01BUDJfRE1BX0NDRU5fUkVHKGxjaCk7Ci0JKmZpID0gT01BUDJfRE1BX0NDRk5fUkVHKGxjaCk7CisJKmVpID0gZG1hX3JlYWQoQ0NFTihsY2gpKTsKKwkqZmkgPSBkbWFfcmVhZChDQ0ZOKGxjaCkpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTM5LDcgKzE3MDksNyBAQAogCWludCAqY2hhbm5lbHM7CiAKIAkvKiBDaGVjayBmb3IgaW5wdXQgcGFyYW1zICovCi0JaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCkpKSB7CisJaWYgKHVubGlrZWx5KChjaGFpbl9pZCA8IDAgfHwgY2hhaW5faWQgPj0gZG1hX2xjaF9jb3VudCkpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBjaGFpbiBpZFxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE1NTUsNyArMTcyNSw3IEBACiAJLyogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgKi8KIAlsY2ggPSBjaGFubmVsc1tkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9oZWFkXTsKIAotCXJldHVybiAoT01BUF9ETUFfQ0RBQ19SRUcobGNoKSk7CisJcmV0dXJuIGRtYV9yZWFkKENEQUMobGNoKSk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9jaGFpbl9kc3RfcG9zKTsKIApAQCAtMTU3Myw3ICsxNzQzLDcgQEAKIAlpbnQgKmNoYW5uZWxzOwogCiAJLyogQ2hlY2sgZm9yIGlucHV0IHBhcmFtcyAqLwotCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQpKSkgeworCWlmICh1bmxpa2VseSgoY2hhaW5faWQgPCAwIHx8IGNoYWluX2lkID49IGRtYV9sY2hfY291bnQpKSkgewogCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgY2hhaW4gaWRcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0xNTg5LDEwICsxNzU5LDEwIEBACiAJLyogR2V0IHRoZSBjdXJyZW50IGNoYW5uZWwgKi8KIAlsY2ggPSBjaGFubmVsc1tkbWFfbGlua2VkX2xjaFtjaGFpbl9pZF0ucV9oZWFkXTsKIAotCXJldHVybiAoT01BUF9ETUFfQ1NBQ19SRUcobGNoKSk7CisJcmV0dXJuIGRtYV9yZWFkKENTQUMobGNoKSk7CiB9CiBFWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9jaGFpbl9zcmNfcG9zKTsKLSNlbmRpZgorI2VuZGlmCS8qIGlmbmRlZiBDT05GSUdfQVJDSF9PTUFQMSAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0xNjAwLDEzICsxNzcwLDEzIEBACiAKIHN0YXRpYyBpbnQgb21hcDFfZG1hX2hhbmRsZV9jaChpbnQgY2gpCiB7Ci0JdTE2IGNzcjsKKwl1MzIgY3NyOwogCiAJaWYgKGVuYWJsZV8xNTEwX21vZGUgJiYgY2ggPj0gNikgewogCQljc3IgPSBkbWFfY2hhbltjaF0uc2F2ZWRfY3NyOwogCQlkbWFfY2hhbltjaF0uc2F2ZWRfY3NyID0gMDsKIAl9IGVsc2UKLQkJY3NyID0gT01BUF9ETUFfQ1NSX1JFRyhjaCk7CisJCWNzciA9IGRtYV9yZWFkKENTUihjaCkpOwogCWlmIChlbmFibGVfMTUxMF9tb2RlICYmIGNoIDw9IDIgJiYgKGNzciA+PiA3KSAhPSAwKSB7CiAJCWRtYV9jaGFuW2NoICsgNl0uc2F2ZWRfY3NyID0gY3NyID4+IDc7CiAJCWNzciAmPSAweDdmOwpAQCAtMTYyOCw2ICsxNzk4LDcgQEAKIAkJZG1hX2NoYW5bY2hdLmZsYWdzICY9IH5PTUFQX0RNQV9BQ1RJVkU7CiAJaWYgKGxpa2VseShkbWFfY2hhbltjaF0uY2FsbGJhY2sgIT0gTlVMTCkpCiAJCWRtYV9jaGFuW2NoXS5jYWxsYmFjayhjaCwgY3NyLCBkbWFfY2hhbltjaF0uZGF0YSk7CisKIAlyZXR1cm4gMTsKIH0KIApAQCAtMTY1OCwxMiArMTgyOSwxMyBAQAogCiBzdGF0aWMgaW50IG9tYXAyX2RtYV9oYW5kbGVfY2goaW50IGNoKQogewotCXUzMiBzdGF0dXMgPSBPTUFQX0RNQV9DU1JfUkVHKGNoKTsKKwl1MzIgc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGNoKSk7CiAKIAlpZiAoIXN0YXR1cykgewogCQlpZiAocHJpbnRrX3JhdGVsaW1pdCgpKQotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiU3B1cmlvdXMgRE1BIElSUSBmb3IgbGNoICVkXG4iLCBjaCk7Ci0JCW9tYXBfd3JpdGVsKDEgPDwgY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiU3B1cmlvdXMgRE1BIElSUSBmb3IgbGNoICVkXG4iLAorCQkJCWNoKTsKKwkJZG1hX3dyaXRlKDEgPDwgY2gsIElSUVNUQVRVU19MMCk7CiAJCXJldHVybiAwOwogCX0KIAlpZiAodW5saWtlbHkoZG1hX2NoYW5bY2hdLmRldl9pZCA9PSAtMSkpIHsKQEAgLTE2ODYsMTQgKzE4NTgsMTQgQEAKIAkJcHJpbnRrKEtFUk5fSU5GTyAiRE1BIG1pc2FsaWduZWQgZXJyb3Igd2l0aCBkZXZpY2UgJWRcbiIsCiAJCSAgICAgICBkbWFfY2hhbltjaF0uZGV2X2lkKTsKIAotCU9NQVBfRE1BX0NTUl9SRUcoY2gpID0gT01BUDJfRE1BX0NTUl9DTEVBUl9NQVNLOwotCW9tYXBfd3JpdGVsKDEgPDwgY2gsIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCWRtYV93cml0ZShPTUFQMl9ETUFfQ1NSX0NMRUFSX01BU0ssIENTUihjaCkpOworCWRtYV93cml0ZSgxIDw8IGNoLCBJUlFTVEFUVVNfTDApOwogCiAJLyogSWYgdGhlIGNoIGlzIG5vdCBjaGFpbmVkIHRoZW4gY2hhaW5faWQgd2lsbCBiZSAtMSAqLwogCWlmIChkbWFfY2hhbltjaF0uY2hhaW5faWQgIT0gLTEpIHsKIAkJaW50IGNoYWluX2lkID0gZG1hX2NoYW5bY2hdLmNoYWluX2lkOwogCQlkbWFfY2hhbltjaF0uc3RhdGUgPSBETUFfQ0hfTk9UU1RBUlRFRDsKLQkJaWYgKE9NQVBfRE1BX0NMTktfQ1RSTF9SRUcoY2gpICYgKDEgPDwgMTUpKQorCQlpZiAoZG1hX3JlYWQoQ0xOS19DVFJMKGNoKSkgJiAoMSA8PCAxNSkpCiAJCQlkbWFfY2hhbltkbWFfY2hhbltjaF0ubmV4dF9saW5rZWRfY2hdLnN0YXRlID0KIAkJCQkJCQlETUFfQ0hfU1RBUlRFRDsKIAkJaWYgKGRtYV9saW5rZWRfbGNoW2NoYWluX2lkXS5jaGFpbl9tb2RlID09CkBAIC0xNzAzLDEzICsxODc1LDEzIEBACiAJCWlmICghT01BUF9ETUFfQ0hBSU5fUUVNUFRZKGNoYWluX2lkKSkKIAkJCU9NQVBfRE1BX0NIQUlOX0lOQ1FIRUFEKGNoYWluX2lkKTsKIAotCQlzdGF0dXMgPSBPTUFQX0RNQV9DU1JfUkVHKGNoKTsKKwkJc3RhdHVzID0gZG1hX3JlYWQoQ1NSKGNoKSk7CiAJfQogCiAJaWYgKGxpa2VseShkbWFfY2hhbltjaF0uY2FsbGJhY2sgIT0gTlVMTCkpCiAJCWRtYV9jaGFuW2NoXS5jYWxsYmFjayhjaCwgc3RhdHVzLCBkbWFfY2hhbltjaF0uZGF0YSk7CiAKLQlPTUFQX0RNQV9DU1JfUkVHKGNoKSA9IHN0YXR1czsKKwlkbWFfd3JpdGUoc3RhdHVzLCBDU1IoY2gpKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTcyMCwxMyArMTg5MiwxMyBAQAogCXUzMiB2YWw7CiAJaW50IGk7CiAKLQl2YWwgPSBvbWFwX3JlYWRsKE9NQVBfRE1BNF9JUlFTVEFUVVNfTDApOworCXZhbCA9IGRtYV9yZWFkKElSUVNUQVRVU19MMCk7CiAJaWYgKHZhbCA9PSAwKSB7CiAJCWlmIChwcmludGtfcmF0ZWxpbWl0KCkpCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJTcHVyaW91cyBETUEgSVJRXG4iKTsKIAkJcmV0dXJuIElSUV9IQU5ETEVEOwogCX0KLQlmb3IgKGkgPSAwOyBpIDwgT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVCAmJiB2YWwgIT0gMDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGRtYV9sY2hfY291bnQgJiYgdmFsICE9IDA7IGkrKykgewogCQlpZiAodmFsICYgMSkKIAkJCW9tYXAyX2RtYV9oYW5kbGVfY2goaSk7CiAJCXZhbCA+Pj0gMTsKQEAgLTE3NTAsNyArMTkyMiw3IEBACiBzdGF0aWMgc3RydWN0IGxjZF9kbWFfaW5mbyB7CiAJc3BpbmxvY2tfdCBsb2NrOwogCWludCByZXNlcnZlZDsKLQl2b2lkICgqIGNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKTsKKwl2b2lkICgqY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpOwogCXZvaWQgKmNiX2RhdGE7CiAKIAlpbnQgYWN0aXZlOwpAQCAtMTc3Miw2ICsxOTQ0LDcgQEAKIAlsY2RfZG1hLnhyZXMgPSBmYl94cmVzOwogCWxjZF9kbWEueXJlcyA9IGZiX3lyZXM7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjEpOwogCiB2b2lkIG9tYXBfc2V0X2xjZF9kbWFfc3JjX3BvcnQoaW50IHBvcnQpCiB7CkBAIC0xNzgyLDEyICsxOTU1LDEzIEBACiB7CiAJbGNkX2RtYS5leHRfY3RybCA9IGV4dGVybmFsOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2V4dF9jb250cm9sbGVyKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX3NpbmdsZV90cmFuc2ZlcihpbnQgc2luZ2xlKQogewogCWxjZF9kbWEuc2luZ2xlX3RyYW5zZmVyID0gc2luZ2xlOwogfQotCitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfc2luZ2xlX3RyYW5zZmVyKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX3JvdGF0aW9uKGludCByb3RhdGUpCiB7CkBAIC0xNzk4LDYgKzE5NzIsNyBAQAogCX0KIAlsY2RfZG1hLnJvdGF0ZSA9IHJvdGF0ZTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMV9yb3RhdGlvbik7CiAKIHZvaWQgb21hcF9zZXRfbGNkX2RtYV9iMV9taXJyb3IoaW50IG1pcnJvcikKIHsKQEAgLTE4MDcsNiArMTk4Miw3IEBACiAJfQogCWxjZF9kbWEubWlycm9yID0gbWlycm9yOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX21pcnJvcik7CiAKIHZvaWQgb21hcF9zZXRfbGNkX2RtYV9iMV92eHJlcyh1bnNpZ25lZCBsb25nIHZ4cmVzKQogewpAQCAtMTgxNyw2ICsxOTkzLDcgQEAKIAl9CiAJbGNkX2RtYS52eHJlcyA9IHZ4cmVzOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3Z4cmVzKTsKIAogdm9pZCBvbWFwX3NldF9sY2RfZG1hX2IxX3NjYWxlKHVuc2lnbmVkIGludCB4c2NhbGUsIHVuc2lnbmVkIGludCB5c2NhbGUpCiB7CkBAIC0xODI3LDYgKzIwMDQsNyBAQAogCWxjZF9kbWEueHNjYWxlID0geHNjYWxlOwogCWxjZF9kbWEueXNjYWxlID0geXNjYWxlOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3NjYWxlKTsKIAogc3RhdGljIHZvaWQgc2V0X2IxX3JlZ3Modm9pZCkKIHsKQEAgLTE4NTcsOCArMjAzNSwxMSBAQAogCXhzY2FsZSA9IGxjZF9kbWEueHNjYWxlID8gbGNkX2RtYS54c2NhbGUgOiAxOwogCXlzY2FsZSA9IGxjZF9kbWEueXNjYWxlID8gbGNkX2RtYS55c2NhbGUgOiAxOwogCUJVR19PTih2eHJlcyA8IGxjZF9kbWEueHJlcyk7Ci0jZGVmaW5lIFBJWEFERFIoeCx5KSAobGNkX2RtYS5hZGRyICsgKCh5KSAqIHZ4cmVzICogeXNjYWxlICsgKHgpICogeHNjYWxlKSAqIGVzKQorCisjZGVmaW5lIFBJWEFERFIoeCwgeSkgKGxjZF9kbWEuYWRkciArCQkJCQlcCisJCSgoeSkgKiB2eHJlcyAqIHlzY2FsZSArICh4KSAqIHhzY2FsZSkgKiBlcykKICNkZWZpbmUgUElYU1RFUChzeCwgc3ksIGR4LCBkeSkgKFBJWEFERFIoZHgsIGR5KSAtIFBJWEFERFIoc3gsIHN5KSAtIGVzICsgMSkKKwogCXN3aXRjaCAobGNkX2RtYS5yb3RhdGUpIHsKIAljYXNlIDA6CiAJCWlmICghbGNkX2RtYS5taXJyb3IpIHsKQEAgLTE4NjcsOCArMjA0OCw4IEBACiAJCQkvKiAxNTEwIERNQSByZXF1aXJlcyB0aGUgYm90dG9tIGFkZHJlc3MgdG8gYmUgMiBtb3JlCiAJCQkgKiB0aGFuIHRoZSBhY3R1YWwgbGFzdCBtZW1vcnkgYWNjZXNzIGxvY2F0aW9uLiAqLwogCQkJaWYgKG9tYXBfZG1hX2luXzE1MTBfbW9kZSgpICYmCi0JCQkgICAgbGNkX2RtYS5kYXRhX3R5cGUgPT0gT01BUF9ETUFfREFUQV9UWVBFX1MzMikKLQkJCQlib3R0b20gKz0gMjsKKwkJCQlsY2RfZG1hLmRhdGFfdHlwZSA9PSBPTUFQX0RNQV9EQVRBX1RZUEVfUzMyKQorCQkJCQlib3R0b20gKz0gMjsKIAkJCWVpID0gUElYU1RFUCgwLCAwLCAxLCAwKTsKIAkJCWZpID0gUElYU1RFUChsY2RfZG1hLnhyZXMgLSAxLCAwLCAwLCAxKTsKIAkJfSBlbHNlIHsKQEAgLTE5OTUsNyArMjE3Niw3IEBACiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCi1pbnQgb21hcF9yZXF1ZXN0X2xjZF9kbWEodm9pZCAoKiBjYWxsYmFjaykodTE2IHN0YXR1cywgdm9pZCAqZGF0YSksCitpbnQgb21hcF9yZXF1ZXN0X2xjZF9kbWEodm9pZCAoKmNhbGxiYWNrKSh1MTYgc3RhdHVzLCB2b2lkICpkYXRhKSwKIAkJCSB2b2lkICpkYXRhKQogewogCXNwaW5fbG9ja19pcnEoJmxjZF9kbWEubG9jayk7CkBAIC0yMDIxLDYgKzIyMDIsNyBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfcmVxdWVzdF9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX2ZyZWVfbGNkX2RtYSh2b2lkKQogewpAQCAtMjAzNywxMiArMjIxOSwxNCBAQAogCWxjZF9kbWEucmVzZXJ2ZWQgPSAwOwogCXNwaW5fdW5sb2NrKCZsY2RfZG1hLmxvY2spOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfbGNkX2RtYSk7CiAKIHZvaWQgb21hcF9lbmFibGVfbGNkX2RtYSh2b2lkKQogewogCXUxNiB3OwogCi0JLyogU2V0IHRoZSBFbmFibGUgYml0IG9ubHkgaWYgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBpcworCS8qCisJICogU2V0IHRoZSBFbmFibGUgYml0IG9ubHkgaWYgYW4gZXh0ZXJuYWwgY29udHJvbGxlciBpcwogCSAqIGNvbm5lY3RlZC4gT3RoZXJ3aXNlIHRoZSBPTUFQIGludGVybmFsIGNvbnRyb2xsZXIgd2lsbAogCSAqIHN0YXJ0IHRoZSB0cmFuc2ZlciB3aGVuIGl0IGdldHMgZW5hYmxlZC4KIAkgKi8KQEAgLTIwNTksNiArMjI0Myw3IEBACiAJdyB8PSAxIDw8IDc7CiAJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DQ1IpOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX2VuYWJsZV9sY2RfZG1hKTsKIAogdm9pZCBvbWFwX3NldHVwX2xjZF9kbWEodm9pZCkKIHsKQEAgLTIwNzQsMTYgKzIyNTksMTggQEAKIAkJdTE2IHc7CiAKIAkJdyA9IG9tYXBfcmVhZHcoT01BUDE2MTBfRE1BX0xDRF9DQ1IpOwotCQkvKiBJZiBETUEgd2FzIGFscmVhZHkgYWN0aXZlIHNldCB0aGUgZW5kX3Byb2cgYml0IHRvIGhhdmUKKwkJLyoKKwkJICogSWYgRE1BIHdhcyBhbHJlYWR5IGFjdGl2ZSBzZXQgdGhlIGVuZF9wcm9nIGJpdCB0byBoYXZlCiAJCSAqIHRoZSBwcm9ncmFtbWVkIHJlZ2lzdGVyIHNldCBsb2FkZWQgaW50byB0aGUgYWN0aXZlCiAJCSAqIHJlZ2lzdGVyIHNldC4KIAkJICovCiAJCXcgfD0gMSA8PCAxMTsJCS8qIEVuZF9wcm9nICovCiAJCWlmICghbGNkX2RtYS5zaW5nbGVfdHJhbnNmZXIpCi0JICAgICAgICAJdyB8PSAoMyA8PCA4KTsJLyogQXV0b19pbml0LCByZXBlYXQgKi8KKwkJCXcgfD0gKDMgPDwgOCk7CS8qIEF1dG9faW5pdCwgcmVwZWF0ICovCiAJCW9tYXBfd3JpdGV3KHcsIE9NQVAxNjEwX0RNQV9MQ0RfQ0NSKTsKIAl9CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfc2V0dXBfbGNkX2RtYSk7CiAKIHZvaWQgb21hcF9zdG9wX2xjZF9kbWEodm9pZCkKIHsKQEAgLTIxMDEsNiArMjI4OCw3IEBACiAJdyAmPSB+KDEgPDwgOCk7CiAJb21hcF93cml0ZXcodywgT01BUDE2MTBfRE1BX0xDRF9DVFJMKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9zdG9wX2xjZF9kbWEpOwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0yMTA4LDI3ICsyMjk2LDU1IEBACiB7CiAJaW50IGNoLCByOwogCisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CisJCW9tYXBfZG1hX2Jhc2UgPSAodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhPTUFQMV9ETUFfQkFTRSk7CisJCWRtYV9sY2hfY291bnQgPSBPTUFQMV9MT0dJQ0FMX0RNQV9DSF9DT1VOVDsKKwl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMjR4eCgpKSB7CisJCW9tYXBfZG1hX2Jhc2UgPSAodm9pZCBfX2lvbWVtICopSU9fQUREUkVTUyhPTUFQMjRYWF9ETUE0X0JBU0UpOworCQlkbWFfbGNoX2NvdW50ID0gT01BUF9ETUE0X0xPR0lDQUxfRE1BX0NIX0NPVU5UOworCX0gZWxzZSBpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKKwkJb21hcF9kbWFfYmFzZSA9ICh2b2lkIF9faW9tZW0gKilJT19BRERSRVNTKE9NQVAzNFhYX0RNQTRfQkFTRSk7CisJCWRtYV9sY2hfY291bnQgPSBPTUFQX0RNQTRfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CisJfSBlbHNlIHsKKwkJcHJfZXJyKCJETUEgaW5pdCBmYWlsZWQgZm9yIHVuc3VwcG9ydGVkIG9tYXBcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlkbWFfY2hhbiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBvbWFwX2RtYV9sY2gpICogZG1hX2xjaF9jb3VudCwKKwkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9jaGFuKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgeworCQlkbWFfbGlua2VkX2xjaCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBkbWFfbGlua19pbmZvKSAqCisJCQkJCQlkbWFfbGNoX2NvdW50LCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFkbWFfbGlua2VkX2xjaCkgeworCQkJa2ZyZWUoZG1hX2NoYW4pOworCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KKwl9CisKIAlpZiAoY3B1X2lzX29tYXAxNXh4KCkpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiRE1BIHN1cHBvcnQgZm9yIE9NQVAxNXh4IGluaXRpYWxpemVkXG4iKTsKIAkJZG1hX2NoYW5fY291bnQgPSA5OwogCQllbmFibGVfMTUxMF9tb2RlID0gMTsKIAl9IGVsc2UgaWYgKGNwdV9pc19vbWFwMTZ4eCgpIHx8IGNwdV9pc19vbWFwNzMwKCkpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiT01BUCBETUEgaGFyZHdhcmUgdmVyc2lvbiAlZFxuIiwKLQkJICAgICAgIG9tYXBfcmVhZHcoT01BUF9ETUFfSFdfSUQpKTsKKwkJICAgICAgIGRtYV9yZWFkKEhXX0lEKSk7CiAJCXByaW50ayhLRVJOX0lORk8gIkRNQSBjYXBhYmlsaXRpZXM6ICUwOHg6JTA4eDolMDR4OiUwNHg6JTA0eFxuIiwKLQkJICAgICAgIChvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMF9VKSA8PCAxNikgfAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzBfTCksCi0JCSAgICAgICAob21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzFfVSkgPDwgMTYpIHwKLQkJICAgICAgIG9tYXBfcmVhZHcoT01BUF9ETUFfQ0FQU18xX0wpLAotCQkgICAgICAgb21hcF9yZWFkdyhPTUFQX0RNQV9DQVBTXzIpLCBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfMyksCi0JCSAgICAgICBvbWFwX3JlYWR3KE9NQVBfRE1BX0NBUFNfNCkpOworCQkgICAgICAgKGRtYV9yZWFkKENBUFNfMF9VKSA8PCAxNikgfAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18wX0wpLAorCQkgICAgICAgKGRtYV9yZWFkKENBUFNfMV9VKSA8PCAxNikgfAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18xX0wpLAorCQkgICAgICAgZG1hX3JlYWQoQ0FQU18yKSwgZG1hX3JlYWQoQ0FQU18zKSwKKwkJICAgICAgIGRtYV9yZWFkKENBUFNfNCkpOwogCQlpZiAoIWVuYWJsZV8xNTEwX21vZGUpIHsKIAkJCXUxNiB3OwogCiAJCQkvKiBEaXNhYmxlIE9NQVAgMy4wLzMuMSBjb21wYXRpYmlsaXR5IG1vZGUuICovCi0JCQl3ID0gb21hcF9yZWFkdyhPTUFQX0RNQV9HU0NSKTsKKwkJCXcgPSBkbWFfcmVhZChHU0NSKTsKIAkJCXcgfD0gMSA8PCAzOwotCQkJb21hcF93cml0ZXcodywgT01BUF9ETUFfR1NDUik7CisJCQlkbWFfd3JpdGUodywgR1NDUik7CiAJCQlkbWFfY2hhbl9jb3VudCA9IDE2OwogCQl9IGVsc2UKIAkJCWRtYV9jaGFuX2NvdW50ID0gOTsKQEAgLTIxNDEsMTkgKzIzNTcsMTcgQEAKIAkJCW9tYXBfd3JpdGV3KHcsIE9NQVAxNjEwX0RNQV9MQ0RfQ1RSTCk7CiAJCX0KIAl9IGVsc2UgaWYgKGNwdV9jbGFzc19pc19vbWFwMigpKSB7Ci0JCXU4IHJldmlzaW9uID0gb21hcF9yZWFkYihPTUFQX0RNQTRfUkVWSVNJT04pOworCQl1OCByZXZpc2lvbiA9IGRtYV9yZWFkKFJFVklTSU9OKSAmIDB4ZmY7CiAJCXByaW50ayhLRVJOX0lORk8gIk9NQVAgRE1BIGhhcmR3YXJlIHJldmlzaW9uICVkLiVkXG4iLAogCQkgICAgICAgcmV2aXNpb24gPj4gNCwgcmV2aXNpb24gJiAweGYpOwotCQlkbWFfY2hhbl9jb3VudCA9IE9NQVBfTE9HSUNBTF9ETUFfQ0hfQ09VTlQ7CisJCWRtYV9jaGFuX2NvdW50ID0gT01BUF9ETUE0X0xPR0lDQUxfRE1BX0NIX0NPVU5UOwogCX0gZWxzZSB7CiAJCWRtYV9jaGFuX2NvdW50ID0gMDsKIAkJcmV0dXJuIDA7CiAJfQogCi0JbWVtc2V0KCZsY2RfZG1hLCAwLCBzaXplb2YobGNkX2RtYSkpOwogCXNwaW5fbG9ja19pbml0KCZsY2RfZG1hLmxvY2spOwogCXNwaW5fbG9ja19pbml0KCZkbWFfY2hhbl9sb2NrKTsKLQltZW1zZXQoJmRtYV9jaGFuLCAwLCBzaXplb2YoZG1hX2NoYW4pKTsKIAogCWZvciAoY2ggPSAwOyBjaCA8IGRtYV9jaGFuX2NvdW50OyBjaCsrKSB7CiAJCW9tYXBfY2xlYXJfZG1hKGNoKTsKQEAgLTIxNjQsOCArMjM3OCwxMCBAQAogCQkJY29udGludWU7CiAKIAkJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7Ci0JCQkvKiByZXF1ZXN0X2lycSgpIGRvZXNuJ3QgbGlrZSBkZXZfaWQgKGllLiBjaCkgYmVpbmcKLQkJCSAqIHplcm8sIHNvIHdlIGhhdmUgdG8ga2x1ZGdlIGFyb3VuZCB0aGlzLiAqLworCQkJLyoKKwkJCSAqIHJlcXVlc3RfaXJxKCkgZG9lc24ndCBsaWtlIGRldl9pZCAoaWUuIGNoKSBiZWluZworCQkJICogemVybywgc28gd2UgaGF2ZSB0byBrbHVkZ2UgYXJvdW5kIHRoaXMuCisJCQkgKi8KIAkJCXIgPSByZXF1ZXN0X2lycShvbWFwMV9kbWFfaXJxW2NoXSwKIAkJCQkJb21hcDFfZG1hX2lycV9oYW5kbGVyLCAwLCAiRE1BIiwKIAkJCQkJKHZvaWQgKikgKGNoICsgMSkpOwpAQCAtMjIxMCw0OCArMjQyNiw0IEBACiAKIGFyY2hfaW5pdGNhbGwob21hcF9pbml0X2RtYSk7CiAKLUVYUE9SVF9TWU1CT0wob21hcF9nZXRfZG1hX3NyY19wb3MpOwotRVhQT1JUX1NZTUJPTChvbWFwX2dldF9kbWFfZHN0X3Bvcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZ2V0X2RtYV9zcmNfYWRkcl9jb3VudGVyKTsKLUVYUE9SVF9TWU1CT0wob21hcF9jbGVhcl9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfcHJpb3JpdHkpOwotRVhQT1JUX1NZTUJPTChvbWFwX3JlcXVlc3RfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9mcmVlX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc3RhcnRfZG1hKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zdG9wX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jYWxsYmFjayk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZW5hYmxlX2RtYV9pcnEpOwotRVhQT1JUX1NZTUJPTChvbWFwX2Rpc2FibGVfZG1hX2lycSk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9jb2xvcl9tb2RlKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3dyaXRlX21vZGUpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfcGFyYW1zKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19pbmRleCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9zcmNfZGF0YV9wYWNrKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfZG1hX3NyY19idXJzdF9tb2RlKTsKLQotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9kbWFfZGVzdF9pbmRleCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2RhdGFfcGFjayk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2RtYV9wYXJhbXMpOwotCi1FWFBPUlRfU1lNQk9MKG9tYXBfZG1hX2xpbmtfbGNoKTsKLUVYUE9SVF9TWU1CT0wob21hcF9kbWFfdW5saW5rX2xjaCk7Ci0KLUVYUE9SVF9TWU1CT0wob21hcF9yZXF1ZXN0X2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX2ZyZWVfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfZW5hYmxlX2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldHVwX2xjZF9kbWEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3N0b3BfbGNkX2RtYSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjEpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX3NpbmdsZV90cmFuc2Zlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfZXh0X2NvbnRyb2xsZXIpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX3JvdGF0aW9uKTsKLUVYUE9SVF9TWU1CT0wob21hcF9zZXRfbGNkX2RtYV9iMV92eHJlcyk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfc2V0X2xjZF9kbWFfYjFfc2NhbGUpOwotRVhQT1JUX1NZTUJPTChvbWFwX3NldF9sY2RfZG1hX2IxX21pcnJvcik7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbXRpbWVyLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvZG10aW1lci5jCmluZGV4IDMwMmFkOGQuLmYyMjUwNmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9kbXRpbWVyLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL2RtdGltZXIuYwpAQCAtMzgsMzQgKzM4LDExMyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2lycXMuaD4KIAogLyogcmVnaXN0ZXIgb2Zmc2V0cyAqLwotI2RlZmluZSBPTUFQX1RJTUVSX0lEX1JFRwkJMHgwMAotI2RlZmluZSBPTUFQX1RJTUVSX09DUF9DRkdfUkVHCQkweDEwCi0jZGVmaW5lIE9NQVBfVElNRVJfU1lTX1NUQVRfUkVHCQkweDE0Ci0jZGVmaW5lIE9NQVBfVElNRVJfU1RBVF9SRUcJCTB4MTgKLSNkZWZpbmUgT01BUF9USU1FUl9JTlRfRU5fUkVHCQkweDFjCi0jZGVmaW5lIE9NQVBfVElNRVJfV0FLRVVQX0VOX1JFRwkweDIwCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9SRUcJCTB4MjQKLSNkZWZpbmUgT01BUF9USU1FUl9DT1VOVEVSX1JFRwkJMHgyOAotI2RlZmluZSBPTUFQX1RJTUVSX0xPQURfUkVHCQkweDJjCi0jZGVmaW5lIE9NQVBfVElNRVJfVFJJR0dFUl9SRUcJCTB4MzAKLSNkZWZpbmUgT01BUF9USU1FUl9XUklURV9QRU5EX1JFRwkweDM0Ci0jZGVmaW5lIE9NQVBfVElNRVJfTUFUQ0hfUkVHCQkweDM4Ci0jZGVmaW5lIE9NQVBfVElNRVJfQ0FQVFVSRV9SRUcJCTB4M2MKLSNkZWZpbmUgT01BUF9USU1FUl9JRl9DVFJMX1JFRwkJMHg0MAorI2RlZmluZSBfT01BUF9USU1FUl9JRF9PRkZTRVQJCTB4MDAKKyNkZWZpbmUgX09NQVBfVElNRVJfT0NQX0NGR19PRkZTRVQJMHgxMAorI2RlZmluZSBfT01BUF9USU1FUl9TWVNfU1RBVF9PRkZTRVQJMHgxNAorI2RlZmluZSBfT01BUF9USU1FUl9TVEFUX09GRlNFVAkJMHgxOAorI2RlZmluZSBfT01BUF9USU1FUl9JTlRfRU5fT0ZGU0VUCTB4MWMKKyNkZWZpbmUgX09NQVBfVElNRVJfV0FLRVVQX0VOX09GRlNFVAkweDIwCisjZGVmaW5lIF9PTUFQX1RJTUVSX0NUUkxfT0ZGU0VUCQkweDI0CisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfR1BPQ0ZHCQkoMSA8PCAxNCkKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9DQVBUTU9ERQkoMSA8PCAxMykKKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9QVAkJKDEgPDwgMTIpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0xPV1RPSElHSAkoMHgxIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0hJR0hUT0xPVwkoMHgyIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfVENNX0JPVEhFREdFUwkoMHgzIDw8IDgpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfU0NQV00JCSgxIDw8IDcpCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfQ0UJCSgxIDw8IDYpIC8qIGNvbXBhcmUgZW5hYmxlICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUFJFCQkoMSA8PCA1KSAvKiBwcmVzY2FsZXIgZW5hYmxlICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUFRWX1NISUZUCTIgLyogcHJlc2NhbGVyIHZhbHVlIHNoaWZ0ICovCisjZGVmaW5lCQlPTUFQX1RJTUVSX0NUUkxfUE9TVEVECQkoMSA8PCAyKQorI2RlZmluZQkJT01BUF9USU1FUl9DVFJMX0FSCQkoMSA8PCAxKSAvKiBhdXRvLXJlbG9hZCBlbmFibGUgKi8KKyNkZWZpbmUJCU9NQVBfVElNRVJfQ1RSTF9TVAkJKDEgPDwgMCkgLyogc3RhcnQgdGltZXIgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfQ09VTlRFUl9PRkZTRVQJMHgyOAorI2RlZmluZSBfT01BUF9USU1FUl9MT0FEX09GRlNFVAkJMHgyYworI2RlZmluZSBfT01BUF9USU1FUl9UUklHR0VSX09GRlNFVAkweDMwCisjZGVmaW5lIF9PTUFQX1RJTUVSX1dSSVRFX1BFTkRfT0ZGU0VUCTB4MzQKKyNkZWZpbmUJCVdQX05PTkUJCQkwCS8qIG5vIHdyaXRlIHBlbmRpbmcgYml0ICovCisjZGVmaW5lCQlXUF9UQ0xSCQkJKDEgPDwgMCkKKyNkZWZpbmUJCVdQX1RDUlIJCQkoMSA8PCAxKQorI2RlZmluZQkJV1BfVExEUgkJCSgxIDw8IDIpCisjZGVmaW5lCQlXUF9UVEdSCQkJKDEgPDwgMykKKyNkZWZpbmUJCVdQX1RNQVIJCQkoMSA8PCA0KQorI2RlZmluZQkJV1BfVFBJUgkJCSgxIDw8IDUpCisjZGVmaW5lCQlXUF9UTklSCQkJKDEgPDwgNikKKyNkZWZpbmUJCVdQX1RDVlIJCQkoMSA8PCA3KQorI2RlZmluZQkJV1BfVE9DUgkJCSgxIDw8IDgpCisjZGVmaW5lCQlXUF9UT1dSCQkJKDEgPDwgOSkKKyNkZWZpbmUgX09NQVBfVElNRVJfTUFUQ0hfT0ZGU0VUCTB4MzgKKyNkZWZpbmUgX09NQVBfVElNRVJfQ0FQVFVSRV9PRkZTRVQJMHgzYworI2RlZmluZSBfT01BUF9USU1FUl9JRl9DVFJMX09GRlNFVAkweDQwCisjZGVmaW5lIF9PTUFQX1RJTUVSX0NBUFRVUkUyX09GRlNFVAkJMHg0NAkvKiBUQ0FSMiwgMzR4eCBvbmx5ICovCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RJQ0tfUE9TX09GRlNFVAkJMHg0OAkvKiBUUElSLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19ORUdfT0ZGU0VUCQkweDRjCS8qIFROSVIsIDM0eHggb25seSAqLworI2RlZmluZSBfT01BUF9USU1FUl9USUNLX0NPVU5UX09GRlNFVAkJMHg1MAkvKiBUQ1ZSLCAzNHh4IG9ubHkgKi8KKyNkZWZpbmUgX09NQVBfVElNRVJfVElDS19JTlRfTUFTS19TRVRfT0ZGU0VUCTB4NTQJLyogVE9DUiwgMzR4eCBvbmx5ICovCisjZGVmaW5lIF9PTUFQX1RJTUVSX1RJQ0tfSU5UX01BU0tfQ09VTlRfT0ZGU0VUCTB4NTgJLyogVE9XUiwgMzR4eCBvbmx5ICovCiAKLS8qIHRpbWVyIGNvbnRyb2wgcmVnIGJpdHMgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX0dQT0NGRwkJKDEgPDwgMTQpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9DQVBUTU9ERQkoMSA8PCAxMykKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1BUCQkoMSA8PCAxMikKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1RDTV9MT1dUT0hJR0gJKDB4MSA8PCA4KQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfVENNX0hJR0hUT0xPVwkoMHgyIDw8IDgpCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9UQ01fQk9USEVER0VTCSgweDMgPDwgOCkKLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1NDUFdNCQkoMSA8PCA3KQotI2RlZmluZSBPTUFQX1RJTUVSX0NUUkxfQ0UJCSgxIDw8IDYpCS8qIGNvbXBhcmUgZW5hYmxlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9QUkUJCSgxIDw8IDUpCS8qIHByZXNjYWxlciBlbmFibGUgKi8KLSNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1BUVl9TSElGVAkyCQkvKiBob3cgbXVjaCB0byBzaGlmdCB0aGUgcHJlc2NhbGVyIHZhbHVlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9BUgkJKDEgPDwgMSkJLyogYXV0by1yZWxvYWQgZW5hYmxlICovCi0jZGVmaW5lIE9NQVBfVElNRVJfQ1RSTF9TVAkJKDEgPDwgMCkJLyogc3RhcnQgdGltZXIgKi8KKy8qIHJlZ2lzdGVyIG9mZnNldHMgd2l0aCB0aGUgd3JpdGUgcGVuZGluZyBiaXQgZW5jb2RlZCAqLworI2RlZmluZQlXUFNISUZUCQkJCQkxNgorCisjZGVmaW5lIE9NQVBfVElNRVJfSURfUkVHCQkJKF9PTUFQX1RJTUVSX0lEX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX09DUF9DRkdfUkVHCQkJKF9PTUFQX1RJTUVSX09DUF9DRkdfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfU1lTX1NUQVRfUkVHCQkJKF9PTUFQX1RJTUVSX1NZU19TVEFUX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1NUQVRfUkVHCQkJKF9PTUFQX1RJTUVSX1NUQVRfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfSU5UX0VOX1JFRwkJCShfT01BUF9USU1FUl9JTlRfRU5fT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9OT05FIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfV0FLRVVQX0VOX1JFRwkJKF9PTUFQX1RJTUVSX1dBS0VVUF9FTl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9DVFJMX1JFRwkJCShfT01BUF9USU1FUl9DVFJMX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVENMUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0NPVU5URVJfUkVHCQkJKF9PTUFQX1RJTUVSX0NPVU5URVJfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UQ1JSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfTE9BRF9SRUcJCQkoX09NQVBfVElNRVJfTE9BRF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RMRFIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9UUklHR0VSX1JFRwkJCShfT01BUF9USU1FUl9UUklHR0VSX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVFRHUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHCQkoX09NQVBfVElNRVJfV1JJVEVfUEVORF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9NQVRDSF9SRUcJCQkoX09NQVBfVElNRVJfTUFUQ0hfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UTUFSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfQ0FQVFVSRV9SRUcJCQkoX09NQVBfVElNRVJfQ0FQVFVSRV9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9JRl9DVFJMX1JFRwkJCShfT01BUF9USU1FUl9JRl9DVFJMX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfTk9ORSA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX0NBUFRVUkUyX1JFRwkJCShfT01BUF9USU1FUl9DQVBUVVJFMl9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX05PTkUgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX1BPU19SRUcJCQkoX09NQVBfVElNRVJfVElDS19QT1NfT0ZGU0VUIFwKKwkJCQkJCQl8IChXUF9UUElSIDw8IFdQU0hJRlQpKQorCisjZGVmaW5lIE9NQVBfVElNRVJfVElDS19ORUdfUkVHCQkJKF9PTUFQX1RJTUVSX1RJQ0tfTkVHX09GRlNFVCBcCisJCQkJCQkJfCAoV1BfVE5JUiA8PCBXUFNISUZUKSkKKworI2RlZmluZSBPTUFQX1RJTUVSX1RJQ0tfQ09VTlRfUkVHCQkoX09NQVBfVElNRVJfVElDS19DT1VOVF9PRkZTRVQgXAorCQkJCQkJCXwgKFdQX1RDVlIgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX1NFVF9SRUcJCQkJXAorCQkoX09NQVBfVElNRVJfVElDS19JTlRfTUFTS19TRVRfT0ZGU0VUIHwgKFdQX1RPQ1IgPDwgV1BTSElGVCkpCisKKyNkZWZpbmUgT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX0NPVU5UX1JFRwkJCQlcCisJCShfT01BUF9USU1FUl9USUNLX0lOVF9NQVNLX0NPVU5UX09GRlNFVCB8IChXUF9UT1dSIDw8IFdQU0hJRlQpKQogCiBzdHJ1Y3Qgb21hcF9kbV90aW1lciB7CiAJdW5zaWduZWQgbG9uZyBwaHlzX2Jhc2U7CkBAIC03Niw2ICsxNTUsNyBAQAogCXZvaWQgX19pb21lbSAqaW9fYmFzZTsKIAl1bnNpZ25lZCByZXNlcnZlZDoxOwogCXVuc2lnbmVkIGVuYWJsZWQ6MTsKKwl1bnNpZ25lZCBwb3N0ZWQ6MTsKIH07CiAKICNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQpAQCAtMTgxLDE2ICsyNjEsMzQgQEAKIAogc3RhdGljIHNwaW5sb2NrX3QgZG1fdGltZXJfbG9jazsKIAotc3RhdGljIGlubGluZSB1MzIgb21hcF9kbV90aW1lcl9yZWFkX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCByZWcpCisvKgorICogUmVhZHMgdGltZXIgcmVnaXN0ZXJzIGluIHBvc3RlZCBhbmQgbm9uLXBvc3RlZCBtb2RlLiBUaGUgcG9zdGVkIG1vZGUgYml0CisgKiBpcyBlbmNvZGVkIGluIHJlZy4gTm90ZSB0aGF0IGluIHBvc3RlZCBtb2RlIHdyaXRlIHBlbmRpbmcgYml0IG11c3QgYmUKKyAqIGNoZWNrZWQuIE90aGVyd2lzZSBhIHJlYWQgb2YgYSBub24gY29tcGxldGVkIHdyaXRlIHdpbGwgcHJvZHVjZSBhbiBlcnJvci4KKyAqLworc3RhdGljIGlubGluZSB1MzIgb21hcF9kbV90aW1lcl9yZWFkX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIHUzMiByZWcpCiB7Ci0JcmV0dXJuIHJlYWRsKHRpbWVyLT5pb19iYXNlICsgcmVnKTsKKwlpZiAodGltZXItPnBvc3RlZCkKKwkJd2hpbGUgKHJlYWRsKHRpbWVyLT5pb19iYXNlICsgKE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcgJiAweGZmKSkKKwkJCQkmIChyZWcgPj4gV1BTSElGVCkpCisJCQljcHVfcmVsYXgoKTsKKwlyZXR1cm4gcmVhZGwodGltZXItPmlvX2Jhc2UgKyAocmVnICYgMHhmZikpOwogfQogCi1zdGF0aWMgdm9pZCBvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyhzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCByZWcsIHUzMiB2YWx1ZSkKKy8qCisgKiBXcml0ZXMgdGltZXIgcmVnaXN0ZXJzIGluIHBvc3RlZCBhbmQgbm9uLXBvc3RlZCBtb2RlLiBUaGUgcG9zdGVkIG1vZGUgYml0CisgKiBpcyBlbmNvZGVkIGluIHJlZy4gTm90ZSB0aGF0IGluIHBvc3RlZCBtb2RlIHRoZSB3cml0ZSBwZW5kaW5nIGJpdCBtdXN0IGJlCisgKiBjaGVja2VkLiBPdGhlcndpc2UgYSB3cml0ZSBvbiBhIHJlZ2lzdGVyIHdoaWNoIGhhcyBhIHBlbmRpbmcgd3JpdGUgd2lsbCBiZQorICogbG9zdC4KKyAqLworc3RhdGljIHZvaWQgb21hcF9kbV90aW1lcl93cml0ZV9yZWcoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCB1MzIgcmVnLAorCQkJCQkJdTMyIHZhbHVlKQogewotCXdyaXRlbCh2YWx1ZSwgdGltZXItPmlvX2Jhc2UgKyByZWcpOwotCXdoaWxlIChvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX1dSSVRFX1BFTkRfUkVHKSkKLQkJOworCWlmICh0aW1lci0+cG9zdGVkKQorCQl3aGlsZSAocmVhZGwodGltZXItPmlvX2Jhc2UgKyAoT01BUF9USU1FUl9XUklURV9QRU5EX1JFRyAmIDB4ZmYpKQorCQkJCSYgKHJlZyA+PiBXUFNISUZUKSkKKwkJCWNwdV9yZWxheCgpOworCXdyaXRlbCh2YWx1ZSwgdGltZXItPmlvX2Jhc2UgKyAocmVnICYgMHhmZikpOwogfQogCiBzdGF0aWMgdm9pZCBvbWFwX2RtX3RpbWVyX3dhaXRfZm9yX3Jlc2V0KHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lcikKQEAgLTIxNywxNyArMzE1LDIzIEBACiAJfQogCW9tYXBfZG1fdGltZXJfc2V0X3NvdXJjZSh0aW1lciwgT01BUF9USU1FUl9TUkNfMzJfS0haKTsKIAotCS8qIFNldCB0byBzbWFydC1pZGxlIG1vZGUgKi8KIAlsID0gb21hcF9kbV90aW1lcl9yZWFkX3JlZyh0aW1lciwgT01BUF9USU1FUl9PQ1BfQ0ZHX1JFRyk7Ci0JbCB8PSAweDAyIDw8IDM7CisJbCB8PSAweDAyIDw8IDM7ICAvKiBTZXQgdG8gc21hcnQtaWRsZSBtb2RlICovCisJbCB8PSAweDIgPDwgODsgICAvKiBTZXQgY2xvY2sgYWN0aXZpdHkgdG8gcGVyc2VydmUgZi1jbG9jayBvbiBpZGxlICovCiAKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkgJiYgdGltZXIgPT0gJmRtX3RpbWVyc1swXSkgewotCQkvKiBFbmFibGUgd2FrZS11cCBvbmx5IGZvciBHUFQxIG9uIE9NQVAyIENQVXMqLworCS8qCisJICogRW5hYmxlIHdha2UtdXAgb25seSBmb3IgR1BUMSBvbiBPTUFQMiBDUFVzLgorCSAqIEZJWE1FOiBBbGwgdGltZXJzIHNob3VsZCBoYXZlIHdha2UtdXAgZW5hYmxlZCBhbmQgY2xlYXIKKwkgKiBQUkNNIHN0YXR1cy4KKwkgKi8KKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkgJiYgKHRpbWVyID09ICZkbV90aW1lcnNbMF0pKQogCQlsIHw9IDEgPDwgMjsKLQkJLyogTm9uLXBvc3RlZCBtb2RlICovCi0JCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHLCAwKTsKLQl9CiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfT0NQX0NGR19SRUcsIGwpOworCisJLyogTWF0Y2ggaGFyZHdhcmUgcmVzZXQgZGVmYXVsdCBvZiBwb3N0ZWQgbW9kZSAqLworCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0lGX0NUUkxfUkVHLAorCQkJT01BUF9USU1FUl9DVFJMX1BPU1RFRCk7CisJdGltZXItPnBvc3RlZCA9IDE7CiB9CiAKIHN0YXRpYyB2b2lkIG9tYXBfZG1fdGltZXJfcHJlcGFyZShzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIpCkBAIC00MzQsOSArNTM4LDMyIEBACiAJCWwgJj0gfk9NQVBfVElNRVJfQ1RSTF9BUjsKIAlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9DVFJMX1JFRywgbCk7CiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfTE9BRF9SRUcsIGxvYWQpOworCisJLyogUkVWSVNJVDogaHcgZmVhdHVyZSwgdHRnciBvdmVydGFraW5nIHRsZHI/ICovCisJd2hpbGUgKHJlYWRsKHRpbWVyLT5pb19iYXNlICsgKE9NQVBfVElNRVJfV1JJVEVfUEVORF9SRUcgJiAweGZmKSkpCisJCWNwdV9yZWxheCgpOworCiAJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfVFJJR0dFUl9SRUcsIDApOwogfQogCisvKiBPcHRpbWl6ZWQgc2V0X2xvYWQgd2hpY2ggcmVtb3ZlcyBjb3N0bHkgc3BpbiB3YWl0IGluIHRpbWVyX3N0YXJ0ICovCit2b2lkIG9tYXBfZG1fdGltZXJfc2V0X2xvYWRfc3RhcnQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgYXV0b3JlbG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbG9hZCkKK3sKKwl1MzIgbDsKKworCWwgPSBvbWFwX2RtX3RpbWVyX3JlYWRfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NUUkxfUkVHKTsKKwlpZiAoYXV0b3JlbG9hZCkKKwkJbCB8PSBPTUFQX1RJTUVSX0NUUkxfQVI7CisJZWxzZQorCQlsICY9IH5PTUFQX1RJTUVSX0NUUkxfQVI7CisJbCB8PSBPTUFQX1RJTUVSX0NUUkxfU1Q7CisKKwlvbWFwX2RtX3RpbWVyX3dyaXRlX3JlZyh0aW1lciwgT01BUF9USU1FUl9DT1VOVEVSX1JFRywgbG9hZCk7CisJb21hcF9kbV90aW1lcl93cml0ZV9yZWcodGltZXIsIE9NQVBfVElNRVJfTE9BRF9SRUcsIGxvYWQpOworCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX0NUUkxfUkVHLCBsKTsKK30KKwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9tYXRjaChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBlbmFibGUsCiAJCQkgICAgIHVuc2lnbmVkIGludCBtYXRjaCkKIHsKQEAgLTQ1MSw3ICs1NzgsNiBAQAogCW9tYXBfZG1fdGltZXJfd3JpdGVfcmVnKHRpbWVyLCBPTUFQX1RJTUVSX01BVENIX1JFRywgbWF0Y2gpOwogfQogCi0KIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfcHdtKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IGRlZl9vbiwKIAkJCSAgIGludCB0b2dnbGUsIGludCB0cmlnZ2VyKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL21jYnNwLmMgYi9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYwppbmRleCA5Y2Y4M2M0Li5jN2Y3NDA2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvbWNic3AuYwpAQCAtMTUsOTUgKzE1LDY2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCiAjaW5jbHVkZSA8YXNtL2FyY2gvZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvbXV4Lmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvaXJxcy5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2RzcF9jb21tb24uaD4KICNpbmNsdWRlIDxhc20vYXJjaC9tY2JzcC5oPgogCi0jaWZkZWYgQ09ORklHX01DQlNQX0RFQlVHCi0jZGVmaW5lIERCRyh4Li4uKQlwcmludGsoeCkKLSNlbHNlCi0jZGVmaW5lIERCRyh4Li4uKQkJCWRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi1zdHJ1Y3Qgb21hcF9tY2JzcCB7Ci0JdTMyICAgICAgICAgICAgICAgICAgICAgICAgICBpb19iYXNlOwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ7Ci0JdTggICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggICAgICAgcnhfd29yZF9sZW5ndGg7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCAgICAgICB0eF93b3JkX2xlbmd0aDsKLQotCW9tYXBfbWNic3BfaW9fdHlwZV90ICAgICAgICAgaW9fdHlwZTsgLyogSVJRIG9yIHBvbGwgKi8KLQkvKiBJUlEgYmFzZWQgVFgvUlggKi8KLQlpbnQgICAgICAgICAgICAgICAgICAgICAgICAgIHJ4X2lycTsKLQlpbnQgICAgICAgICAgICAgICAgICAgICAgICAgIHR4X2lycTsKLQotCS8qIERNQSBzdHVmZiAqLwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3J4X3N5bmM7Ci0Jc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICBkbWFfcnhfbGNoOwotCXU4ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1hX3R4X3N5bmM7Ci0Jc2hvcnQgICAgICAgICAgICAgICAgICAgICAgICBkbWFfdHhfbGNoOwotCi0JLyogQ29tcGxldGlvbiBxdWV1ZXMgKi8KLQlzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICAgIHR4X2lycV9jb21wbGV0aW9uOwotCXN0cnVjdCBjb21wbGV0aW9uICAgICAgICAgICAgcnhfaXJxX2NvbXBsZXRpb247Ci0Jc3RydWN0IGNvbXBsZXRpb24gICAgICAgICAgICB0eF9kbWFfY29tcGxldGlvbjsKLQlzdHJ1Y3QgY29tcGxldGlvbiAgICAgICAgICAgIHJ4X2RtYV9jb21wbGV0aW9uOwotCi0Jc3BpbmxvY2tfdCAgICAgICAgICAgICAgICAgICBsb2NrOwotfTsKLQogc3RhdGljIHN0cnVjdCBvbWFwX21jYnNwIG1jYnNwW09NQVBfTUFYX01DQlNQX0NPVU5UXTsKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQotc3RhdGljIHN0cnVjdCBjbGsgKm1jYnNwX2RzcF9jayA9IDA7Ci1zdGF0aWMgc3RydWN0IGNsayAqbWNic3BfYXBpX2NrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcF9kc3B4b3JfY2sgPSAwOwotI2VuZGlmCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDFfaWNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDFfZmNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDJfaWNrID0gMDsKLXN0YXRpYyBzdHJ1Y3QgY2xrICptY2JzcDJfZmNrID0gMDsKLSNlbmRpZgorCisjZGVmaW5lIG9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpCShtY2JzcFtpZF0ucGRhdGEgJiYgXAorCQkJCQltY2JzcFtpZF0ucGRhdGEtPm9wcyAmJiBcCisJCQkJCW1jYnNwW2lkXS5wZGF0YS0+b3BzLT5jaGVjayAmJiBcCisJCQkJCShtY2JzcFtpZF0ucGRhdGEtPm9wcy0+Y2hlY2soaWQpID09IDApKQogCiBzdGF0aWMgdm9pZCBvbWFwX21jYnNwX2R1bXBfcmVnKHU4IGlkKQogewotCURCRygiKioqKiBNQ0JTUCVkIHJlZ3MgKioqKlxuIiwgbWNic3BbaWRdLmlkKTsKLQlEQkcoIkRSUjI6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFJSMikpOwotCURCRygiRFJSMTogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEUlIxKSk7Ci0JREJHKCJEWFIyOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERYUjIpKTsKLQlEQkcoIkRYUjE6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMSkpOwotCURCRygiU1BDUjI6IDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMikpOwotCURCRygiU1BDUjE6IDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMSkpOwotCURCRygiUkNSMjogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBSQ1IyKSk7Ci0JREJHKCJSQ1IxOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFJDUjEpKTsKLQlEQkcoIlhDUjI6ICAweCUwNHhcbiIsIE9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgWENSMikpOwotCURCRygiWENSMTogIDB4JTA0eFxuIiwgT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IxKSk7Ci0JREJHKCJTUkdSMjogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IyKSk7Ci0JREJHKCJTUkdSMTogMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IxKSk7Ci0JREJHKCJQQ1IwOiAgMHglMDR4XG4iLCBPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFBDUjApKTsKLQlEQkcoIioqKioqKioqKioqKioqKioqKioqKioqXG4iKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICIqKioqIE1jQlNQJWQgcmVncyAqKioqXG4iLCBtY2JzcFtpZF0uaWQpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkRSUjI6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERSUjIpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJEUlIxOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBEUlIxKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiRFhSMjogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgRFhSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIkRYUjE6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIERYUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJTUENSMjogMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlNQQ1IxOiAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNQQ1IxKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiUkNSMjogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgUkNSMikpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlJDUjE6ICAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFJDUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJYQ1IyOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBYQ1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiWENSMTogIDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgWENSMSkpOworCWRldl9kYmcobWNic3BbaWRdLmRldiwgIlNSR1IyOiAweCUwNHhcbiIsCisJCQlPTUFQX01DQlNQX1JFQUQobWNic3BbaWRdLmlvX2Jhc2UsIFNSR1IyKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiU1JHUjE6IDB4JTA0eFxuIiwKKwkJCU9NQVBfTUNCU1BfUkVBRChtY2JzcFtpZF0uaW9fYmFzZSwgU1JHUjEpKTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJQQ1IwOiAgMHglMDR4XG4iLAorCQkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwW2lkXS5pb19iYXNlLCBQQ1IwKSk7CisJZGV2X2RiZyhtY2JzcFtpZF0uZGV2LCAiKioqKioqKioqKioqKioqKioqKioqKipcbiIpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgb21hcF9tY2JzcF90eF9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CiAJc3RydWN0IG9tYXBfbWNic3AgKm1jYnNwX3R4ID0gZGV2X2lkOwogCi0JREJHKCJUWCBJUlEgY2FsbGJhY2sgOiAweCV4XG4iLAotCSAgICBPTUFQX01DQlNQX1JFQUQobWNic3BfdHgtPmlvX2Jhc2UsIFNQQ1IyKSk7CisJZGV2X2RiZyhtY2JzcF90eC0+ZGV2LCAiVFggSVJRIGNhbGxiYWNrIDogMHgleFxuIiwKKwkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwX3R4LT5pb19iYXNlLCBTUENSMikpOwogCiAJY29tcGxldGUoJm1jYnNwX3R4LT50eF9pcnFfY29tcGxldGlvbik7CisKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKQEAgLTExMSwxMCArODIsMTEgQEAKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3BfcnggPSBkZXZfaWQ7CiAKLQlEQkcoIlJYIElSUSBjYWxsYmFjayA6IDB4JXhcbiIsCi0JICAgIE9NQVBfTUNCU1BfUkVBRChtY2JzcF9yeC0+aW9fYmFzZSwgU1BDUjIpKTsKKwlkZXZfZGJnKG1jYnNwX3J4LT5kZXYsICJSWCBJUlEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfcngtPmlvX2Jhc2UsIFNQQ1IyKSk7CiAKIAljb21wbGV0ZSgmbWNic3BfcngtPnJ4X2lycV9jb21wbGV0aW9uKTsKKwogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIApAQCAtMTIyLDggKzk0LDggQEAKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3BfZG1hX3R4ID0gZGF0YTsKIAotCURCRygiVFggRE1BIGNhbGxiYWNrIDogMHgleFxuIiwKLQkgICAgT01BUF9NQ0JTUF9SRUFEKG1jYnNwX2RtYV90eC0+aW9fYmFzZSwgU1BDUjIpKTsKKwlkZXZfZGJnKG1jYnNwX2RtYV90eC0+ZGV2LCAiVFggRE1BIGNhbGxiYWNrIDogMHgleFxuIiwKKwkJT01BUF9NQ0JTUF9SRUFEKG1jYnNwX2RtYV90eC0+aW9fYmFzZSwgU1BDUjIpKTsKIAogCS8qIFdlIGNhbiBmcmVlIHRoZSBjaGFubmVscyAqLwogCW9tYXBfZnJlZV9kbWEobWNic3BfZG1hX3R4LT5kbWFfdHhfbGNoKTsKQEAgLTEzNiw4ICsxMDgsOCBAQAogewogCXN0cnVjdCBvbWFwX21jYnNwICptY2JzcF9kbWFfcnggPSBkYXRhOwogCi0JREJHKCJSWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAotCSAgICBPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3J4LT5pb19iYXNlLCBTUENSMikpOworCWRldl9kYmcobWNic3BfZG1hX3J4LT5kZXYsICJSWCBETUEgY2FsbGJhY2sgOiAweCV4XG4iLAorCQlPTUFQX01DQlNQX1JFQUQobWNic3BfZG1hX3J4LT5pb19iYXNlLCBTUENSMikpOwogCiAJLyogV2UgY2FuIGZyZWUgdGhlIGNoYW5uZWxzICovCiAJb21hcF9mcmVlX2RtYShtY2JzcF9kbWFfcngtPmRtYV9yeF9sY2gpOwpAQCAtMTQ2LDE5ICsxMTgsMjQgQEAKIAljb21wbGV0ZSgmbWNic3BfZG1hX3J4LT5yeF9kbWFfY29tcGxldGlvbik7CiB9CiAKLQogLyoKICAqIG9tYXBfbWNic3BfY29uZmlnIHNpbXBseSB3cml0ZSBhIGNvbmZpZyB0byB0aGUKICAqIGFwcHJvcHJpYXRlIE1jQlNQLgogICogWW91IGVpdGhlciBjYWxsIHRoaXMgZnVuY3Rpb24gb3Igc2V0IHRoZSBNY0JTUCByZWdpc3RlcnMKICAqIGJ5IHlvdXJzZWxmIGJlZm9yZSBjYWxsaW5nIG9tYXBfbWNic3Bfc3RhcnQoKS4KICAqLwotCi12b2lkIG9tYXBfbWNic3BfY29uZmlnKHVuc2lnbmVkIGludCBpZCwgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfcmVnX2NmZyAqIGNvbmZpZykKK3ZvaWQgb21hcF9tY2JzcF9jb25maWcodW5zaWduZWQgaW50IGlkLCBjb25zdCBzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnICpjb25maWcpCiB7Ci0JdTMyIGlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl1MzIgaW9fYmFzZTsKIAotCURCRygiT01BUC1NY0JTUDogTWNCU1AlZCAgaW9fYmFzZTogMHglOHhcbiIsIGlkKzEsIGlvX2Jhc2UpOworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuOworCX0KKworCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwlkZXZfZGJnKG1jYnNwW2lkXS5kZXYsICJDb25maWd1cmluZyBNY0JTUCVkICBpb19iYXNlOiAweCU4eFxuIiwKKwkJCW1jYnNwW2lkXS5pZCwgaW9fYmFzZSk7CiAKIAkvKiBXZSB3cml0ZSB0aGUgZ2l2ZW4gY29uZmlnICovCiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBTUENSMiwgY29uZmlnLT5zcGNyMik7CkBAIC0xNzMsODMgKzE1MCw3IEBACiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBNQ1IxLCBjb25maWctPm1jcjEpOwogCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgUENSMCwgY29uZmlnLT5wY3IwKTsKIH0KLQotCi0KLXN0YXRpYyBpbnQgb21hcF9tY2JzcF9jaGVjayh1bnNpZ25lZCBpbnQgaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwNzMwKCkpIHsKLQkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQgLSAxKSB7Ci0JCSAgICAgICBwcmludGsoS0VSTl9FUlIgIk9NQVAtTWNCU1A6IE1jQlNQJWQgZG9lc24ndCBleGlzdFxuIiwgaWQgKyAxKTsKLQkJICAgICAgIHJldHVybiAtMTsKLQkJfQotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkgfHwgY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID4gT01BUF9NQVhfTUNCU1BfQ09VTlQpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBkb2Vzbid0IGV4aXN0XG4iLCBpZCArIDEpOwotCQkJcmV0dXJuIC0xOwotCQl9Ci0JCXJldHVybiAwOwotCX0KLQotCXJldHVybiAtMTsKLX0KLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi1zdGF0aWMgdm9pZCBvbWFwX21jYnNwX2RzcF9yZXF1ZXN0KHZvaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwMTV4eCgpIHx8IGNwdV9pc19vbWFwMTZ4eCgpKSB7Ci0JCWludCByZXQ7Ci0KLQkJcmV0ID0gb21hcF9kc3BfcmVxdWVzdF9tZW0oKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiQ291bGQgbm90IGdldCBkc3AgbWVtb3J5OiAlaVxuIiwgcmV0KTsKLQkJCXJldHVybjsKLQkJfQotCi0JCWNsa19lbmFibGUobWNic3BfZHNwX2NrKTsKLQkJY2xrX2VuYWJsZShtY2JzcF9hcGlfY2spOwotCi0JCS8qIGVuYWJsZSAxMk1IeiBjbG9jayB0byBtY2JzcCAxICYgMyAqLwotCQljbGtfZW5hYmxlKG1jYnNwX2RzcHhvcl9jayk7Ci0KLQkJLyoKLQkJICogRFNQIGV4dGVybmFsIHBlcmlwaGVyYWwgcmVzZXQKLQkJICogRklYTUU6IFRoaXMgc2hvdWxkIGJlIG1vdmVkIHRvIGRzcCBjb2RlCi0JCSAqLwotCQlfX3Jhd193cml0ZXcoX19yYXdfcmVhZHcoRFNQX1JTVENUMikgfCAxIHwgMSA8PCAxLAotCQkJICAgICBEU1BfUlNUQ1QyKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIG9tYXBfbWNic3BfZHNwX2ZyZWUodm9pZCkKLXsKLQlpZiAoY3B1X2lzX29tYXAxNXh4KCkgfHwgY3B1X2lzX29tYXAxNnh4KCkpIHsKLQkJb21hcF9kc3BfcmVsZWFzZV9tZW0oKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfZHNweG9yX2NrKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfZHNwX2NrKTsKLQkJY2xrX2Rpc2FibGUobWNic3BfYXBpX2NrKTsKLQl9Ci19Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCi1zdGF0aWMgdm9pZCBvbWFwMl9tY2JzcDJfbXV4X3NldHVwKHZvaWQpCi17Ci0JaWYgKGNwdV9pc19vbWFwMjQyMCgpKSB7Ci0JCW9tYXBfY2ZnX3JlZyhZMTVfMjRYWF9NQ0JTUDJfQ0xLWCk7Ci0JCW9tYXBfY2ZnX3JlZyhSMTRfMjRYWF9NQ0JTUDJfRlNYKTsKLQkJb21hcF9jZmdfcmVnKFcxNV8yNFhYX01DQlNQMl9EUik7Ci0JCW9tYXBfY2ZnX3JlZyhWMTVfMjRYWF9NQ0JTUDJfRFgpOwotCQlvbWFwX2NmZ19yZWcoVjE0XzI0WFhfR1BJTzExNyk7Ci0JfQotCS8qCi0JICogTmVlZCB0byBhZGQgTVVYIHNldHRpbmdzIGZvciBPTUFQIDI0MzAgU0RQCi0JICovCi19Ci0jZW5kaWYKK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9jb25maWcpOwogCiAvKgogICogV2UgY2FuIGNob29zZSBiZXR3ZWVuIElSUSBiYXNlZCBvciBwb2xsZWQgSU8uCkBAIC0yNTcsMTMgKzE1OCwxNiBAQAogICovCiBpbnQgb21hcF9tY2JzcF9zZXRfaW9fdHlwZSh1bnNpZ25lZCBpbnQgaWQsIG9tYXBfbWNic3BfaW9fdHlwZV90IGlvX3R5cGUpCiB7Ci0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAlzcGluX2xvY2soJm1jYnNwW2lkXS5sb2NrKTsKIAogCWlmICghbWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBpcyBjdXJyZW50bHkgaW4gdXNlXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC0yNzQsMzggKzE3OCwyNiBAQAogCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc2V0X2lvX3R5cGUpOwogCiBpbnQgb21hcF9tY2JzcF9yZXF1ZXN0KHVuc2lnbmVkIGludCBpZCkKIHsKIAlpbnQgZXJyOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMQotCS8qCi0JICogT24gMTUxMCwgMTYxMCBhbmQgMTcxMCwgTWNCU1AxIGFuZCBNY0JTUDMKLQkgKiBhcmUgRFNQIHB1YmxpYyBwZXJpcGhlcmFscy4KLQkgKi8KLQlpZiAoaWQgPT0gT01BUF9NQ0JTUDEgfHwgaWQgPT0gT01BUF9NQ0JTUDMpCi0JCW9tYXBfbWNic3BfZHNwX3JlcXVlc3QoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxKSB7Ci0JCQljbGtfZW5hYmxlKG1jYnNwMV9pY2spOwotCQkJY2xrX2VuYWJsZShtY2JzcDFfZmNrKTsKLQkJfSBlbHNlIHsKLQkJCWNsa19lbmFibGUobWNic3AyX2ljayk7Ci0JCQljbGtfZW5hYmxlKG1jYnNwMl9mY2spOwotCQl9CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKIAl9Ci0jZW5kaWYKKworCWlmIChtY2JzcFtpZF0ucGRhdGEtPm9wcy0+cmVxdWVzdCkKKwkJbWNic3BbaWRdLnBkYXRhLT5vcHMtPnJlcXVlc3QoaWQpOworCisJY2xrX2VuYWJsZShtY2JzcFtpZF0uY2xrKTsKIAogCXNwaW5fbG9jaygmbWNic3BbaWRdLmxvY2spOwogCWlmICghbWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCBpcyBjdXJyZW50bHkgaW4gdXNlXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIGlzIGN1cnJlbnRseSBpbiB1c2VcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMzE1LDI0ICsyMDcsMjMgQEAKIAogCWlmIChtY2JzcFtpZF0uaW9fdHlwZSA9PSBPTUFQX01DQlNQX0lSUV9JTykgewogCQkvKiBXZSBuZWVkIHRvIGdldCBJUlFzIGhlcmUgKi8KLQkJZXJyID0gcmVxdWVzdF9pcnEobWNic3BbaWRdLnR4X2lycSwgb21hcF9tY2JzcF90eF9pcnFfaGFuZGxlciwgMCwKLQkJCQkgICJNY0JTUCIsCi0JCQkJICAodm9pZCAqKSAoJm1jYnNwW2lkXSkpOworCQllcnIgPSByZXF1ZXN0X2lycShtY2JzcFtpZF0udHhfaXJxLCBvbWFwX21jYnNwX3R4X2lycV9oYW5kbGVyLAorCQkJCQkwLCAiTWNCU1AiLCAodm9pZCAqKSAoJm1jYnNwW2lkXSkpOwogCQlpZiAoZXJyICE9IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiT01BUC1NY0JTUDogVW5hYmxlIHRvIHJlcXVlc3QgVFggSVJRICVkIGZvciBNY0JTUCVkXG4iLAotCQkJICAgICAgIG1jYnNwW2lkXS50eF9pcnEsIG1jYnNwW2lkXS5pZCk7CisJCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJVbmFibGUgdG8gcmVxdWVzdCBUWCBJUlEgJWQgIgorCQkJCQkiZm9yIE1jQlNQJWRcbiIsIG1jYnNwW2lkXS50eF9pcnEsCisJCQkJCW1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CiAKIAkJaW5pdF9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2lycV9jb21wbGV0aW9uKSk7CiAKLQotCQllcnIgPSByZXF1ZXN0X2lycShtY2JzcFtpZF0ucnhfaXJxLCBvbWFwX21jYnNwX3J4X2lycV9oYW5kbGVyLCAwLAotCQkJCSAgIk1jQlNQIiwKLQkJCQkgICh2b2lkICopICgmbWNic3BbaWRdKSk7CisJCWVyciA9IHJlcXVlc3RfaXJxKG1jYnNwW2lkXS5yeF9pcnEsIG9tYXBfbWNic3BfcnhfaXJxX2hhbmRsZXIsCisJCQkJCTAsICJNY0JTUCIsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJCWlmIChlcnIgIT0gMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJPTUFQLU1jQlNQOiBVbmFibGUgdG8gcmVxdWVzdCBSWCBJUlEgJWQgZm9yIE1jQlNQJWRcbiIsCi0JCQkgICAgICAgbWNic3BbaWRdLnJ4X2lycSwgbWNic3BbaWRdLmlkKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIlVuYWJsZSB0byByZXF1ZXN0IFJYIElSUSAlZCAiCisJCQkJCSJmb3IgTWNCU1AlZFxuIiwgbWNic3BbaWRdLnJ4X2lycSwKKwkJCQkJbWNic3BbaWRdLmlkKTsKIAkJCWZyZWVfaXJxKG1jYnNwW2lkXS50eF9pcnEsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJCQlyZXR1cm4gZXJyOwogCQl9CkBAIC0zNDEsMzYgKzIzMiwyNSBAQAogCX0KIAogCXJldHVybiAwOwotCiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVxdWVzdCk7CiAKIHZvaWQgb21hcF9tY2JzcF9mcmVlKHVuc2lnbmVkIGludCBpZCkKIHsKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKLQlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxIHx8IGlkID09IE9NQVBfTUNCU1AzKQotCQkJb21hcF9tY2JzcF9kc3BfZnJlZSgpOwogCX0KLSNlbmRpZgogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDIKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJaWYgKGlkID09IE9NQVBfTUNCU1AxKSB7Ci0JCQljbGtfZGlzYWJsZShtY2JzcDFfaWNrKTsKLQkJCWNsa19kaXNhYmxlKG1jYnNwMV9mY2spOwotCQl9IGVsc2UgewotCQkJY2xrX2Rpc2FibGUobWNic3AyX2ljayk7Ci0JCQljbGtfZGlzYWJsZShtY2JzcDJfZmNrKTsKLQkJfQotCX0KLSNlbmRpZgorCWlmIChtY2JzcFtpZF0ucGRhdGEtPm9wcy0+ZnJlZSkKKwkJbWNic3BbaWRdLnBkYXRhLT5vcHMtPmZyZWUoaWQpOworCisJY2xrX2Rpc2FibGUobWNic3BbaWRdLmNsayk7CiAKIAlzcGluX2xvY2soJm1jYnNwW2lkXS5sb2NrKTsKIAlpZiAobWNic3BbaWRdLmZyZWUpIHsKLQkJcHJpbnRrIChLRVJOX0VSUiAiT01BUC1NY0JTUDogTWNCU1AlZCB3YXMgbm90IHJlc2VydmVkXG4iLCBpZCArIDEpOworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIHdhcyBub3QgcmVzZXJ2ZWRcbiIsCisJCQltY2JzcFtpZF0uaWQpOwogCQlzcGluX3VubG9jaygmbWNic3BbaWRdLmxvY2spOwogCQlyZXR1cm47CiAJfQpAQCAtMzg0LDYgKzI2NCw3IEBACiAJCWZyZWVfaXJxKG1jYnNwW2lkXS50eF9pcnEsICh2b2lkICopICgmbWNic3BbaWRdKSk7CiAJfQogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX2ZyZWUpOwogCiAvKgogICogSGVyZSB3ZSBzdGFydCB0aGUgTWNCU1AsIGJ5IGVuYWJsaW5nIHRoZSBzYW1wbGUKQEAgLTM5NSwxMyArMjc2LDE1IEBACiAJdTMyIGlvX2Jhc2U7CiAJdTE2IHc7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQorCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKIAkJcmV0dXJuOworCX0KIAogCWlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKIAotCW1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aCA9ICgoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFJDUjEpID4+IDUpICYgMHg3KTsKLQltY2JzcFtpZF0udHhfd29yZF9sZW5ndGggPSAoKE9NQVBfTUNCU1BfUkVBRChpb19iYXNlLCBYQ1IxKSA+PiA1KSAmIDB4Nyk7CisJbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoID0gKE9NQVBfTUNCU1BfUkVBRChpb19iYXNlLCBSQ1IxKSA+PiA1KSAmIDB4NzsKKwltY2JzcFtpZF0udHhfd29yZF9sZW5ndGggPSAoT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFhDUjEpID4+IDUpICYgMHg3OwogCiAJLyogU3RhcnQgdGhlIHNhbXBsZSBnZW5lcmF0b3IgKi8KIAl3ID0gT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFNQQ1IyKTsKQEAgLTQyMiwyMCArMzA1LDIyIEBACiAKIAkvKiBEdW1wIE1jQlNQIFJlZ3MgKi8KIAlvbWFwX21jYnNwX2R1bXBfcmVnKGlkKTsKLQogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0YXJ0KTsKIAogdm9pZCBvbWFwX21jYnNwX3N0b3AodW5zaWduZWQgaW50IGlkKQogewogCXUzMiBpb19iYXNlOwogCXUxNiB3OwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CiAJCXJldHVybjsKKwl9CiAKIAlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CiAKLSAgICAgICAgLyogUmVzZXQgdHJhbnNtaXR0ZXIgKi8KKwkvKiBSZXNldCB0cmFuc21pdHRlciAqLwogCXcgPSBPTUFQX01DQlNQX1JFQUQoaW9fYmFzZSwgU1BDUjIpOwogCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjIsIHcgJiB+KDEpKTsKIApAQCAtNDQ3LDEyICszMzIsMTkgQEAKIAl3ID0gT01BUF9NQ0JTUF9SRUFEKGlvX2Jhc2UsIFNQQ1IyKTsKIAlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCB3ICYgfigxIDw8IDYpKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0b3ApOwogCiAvKiBwb2xsZWQgbWNic3AgaS9vIG9wZXJhdGlvbnMgKi8KIGludCBvbWFwX21jYnNwX3BvbGx3cml0ZSh1bnNpZ25lZCBpbnQgaWQsIHUxNiBidWYpCiB7Ci0JdTMyIGJhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKKwl1MzIgYmFzZTsKKworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCXdyaXRldyhidWYsIGJhc2UgKyBPTUFQX01DQlNQX1JFR19EWFIxKTsKIAkvKiBpZiBmcmFtZSBzeW5jIGVycm9yIC0gY2xlYXIgdGhlIGVycm9yICovCiAJaWYgKHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19TUENSMikgJiBYU1lOQ19FUlIpIHsKQEAgLTQ3NCwxOCArMzY2LDI3IEBACiAJCQkJICAgICAgIChYUlNUKSwKIAkJCQkgICAgICAgYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IyKTsKIAkJCQl1ZGVsYXkoMTApOwotCQkJCXByaW50ayhLRVJOX0VSUgotCQkJCSAgICAgICAiIENvdWxkIG5vdCB3cml0ZSB0byBNY0JTUCBSZWdpc3RlclxuIik7CisJCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiQ291bGQgbm90IHdyaXRlIHRvIgorCQkJCQkiIE1jQlNQJWQgUmVnaXN0ZXJcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQkJcmV0dXJuIC0yOwogCQkJfQogCQl9CiAJfQorCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcG9sbHdyaXRlKTsKIAotaW50IG9tYXBfbWNic3BfcG9sbHJlYWQodW5zaWduZWQgaW50IGlkLCB1MTYgKiBidWYpCitpbnQgb21hcF9tY2JzcF9wb2xscmVhZCh1bnNpZ25lZCBpbnQgaWQsIHUxNiAqYnVmKQogewotCXUzMiBiYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdTMyIGJhc2U7CisKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWJhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZTsKIAkvKiBpZiBmcmFtZSBzeW5jIGVycm9yIC0gY2xlYXIgdGhlIGVycm9yICovCiAJaWYgKHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19TUENSMSkgJiBSU1lOQ19FUlIpIHsKIAkJLyogY2xlYXIgZXJyb3IgKi8KQEAgLTUwNiwxNSArNDA3LDE3IEBACiAJCQkJICAgICAgIChSUlNUKSwKIAkJCQkgICAgICAgYmFzZSArIE9NQVBfTUNCU1BfUkVHX1NQQ1IxKTsKIAkJCQl1ZGVsYXkoMTApOwotCQkJCXByaW50ayhLRVJOX0VSUgotCQkJCSAgICAgICAiIENvdWxkIG5vdCByZWFkIGZyb20gTWNCU1AgUmVnaXN0ZXJcbiIpOworCQkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIkNvdWxkIG5vdCByZWFkIGZyb20iCisJCQkJCSIgTWNCU1AlZCBSZWdpc3RlclxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCQlyZXR1cm4gLTI7CiAJCQl9CiAJCX0KIAl9CiAJKmJ1ZiA9IHJlYWR3KGJhc2UgKyBPTUFQX01DQlNQX1JFR19EUlIxKTsKKwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3BvbGxyZWFkKTsKIAogLyoKICAqIElSUSBiYXNlZCB3b3JkIHRyYW5zbWlzc2lvbi4KQEAgLTUyMiwxMiArNDI1LDE1IEBACiB2b2lkIG9tYXBfbWNic3BfeG1pdF93b3JkKHVuc2lnbmVkIGludCBpZCwgdTMyIHdvcmQpCiB7CiAJdTMyIGlvX2Jhc2U7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB3b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHdvcmRfbGVuZ3RoOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CiAJCXJldHVybjsKKwl9CiAKIAlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CiAKIAl3YWl0X2Zvcl9jb21wbGV0aW9uKCYobWNic3BbaWRdLnR4X2lycV9jb21wbGV0aW9uKSk7CiAKQEAgLTUzNSwxNiArNDQxLDIwIEBACiAJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgRFhSMiwgd29yZCA+PiAxNik7CiAJT01BUF9NQ0JTUF9XUklURShpb19iYXNlLCBEWFIxLCB3b3JkICYgMHhmZmZmKTsKIH0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF94bWl0X3dvcmQpOwogCiB1MzIgb21hcF9tY2JzcF9yZWN2X3dvcmQodW5zaWduZWQgaW50IGlkKQogewogCXUzMiBpb19iYXNlOwogCXUxNiB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCB3b3JkX2xlbmd0aDsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCi0JCXJldHVybiAtRUlOVkFMOworCWlmICghb21hcF9tY2JzcF9jaGVja192YWxpZF9pZChpZCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogSW52YWxpZCBpZCAoJWQpXG4iLCBfX2Z1bmNfXywgaWQgKyAxKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQogCisJd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CiAJaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwogCiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS5yeF9pcnFfY29tcGxldGlvbikpOwpAQCAtNTU1LDE1ICs0NjUsMjQgQEAKIAogCXJldHVybiAod29yZF9sc2IgfCAod29yZF9tc2IgPDwgMTYpKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3JlY3Zfd29yZCk7CiAKIGludCBvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwodW5zaWduZWQgaW50IGlkLCB1MzIgd29yZCkKIHsKLQl1MzIgaW9fYmFzZSA9IG1jYnNwW2lkXS5pb19iYXNlOwotCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCByeF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS5yeF93b3JkX2xlbmd0aDsKKwl1MzIgaW9fYmFzZTsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHR4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CiAJdTE2IHNwY3IyLCBzcGNyMSwgYXR0ZW1wdHMgPSAwLCB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwogCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CisJcnhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisKIAlpZiAodHhfd29yZF9sZW5ndGggIT0gcnhfd29yZF9sZW5ndGgpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC01NzcsNyArNDk2LDggQEAKIAkJCXVkZWxheSgxMCk7CiAJCQlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCBzcGNyMiB8IFhSU1QpOwogCQkJdWRlbGF5KDEwKTsKLQkJCXByaW50aygiTWNCU1AgdHJhbnNtaXR0ZXIgbm90IHJlYWR5XG4iKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgdHJhbnNtaXR0ZXIgbm90ICIKKwkJCQkicmVhZHlcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQogCX0KQEAgLTU5Nyw3ICs1MTcsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjEsIHNwY3IxIHwgUlJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCByZWNlaXZlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCByZWNlaXZlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNjA5LDE0ICs1MzAsMjQgQEAKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwpOwogCi1pbnQgb21hcF9tY2JzcF9zcGlfbWFzdGVyX3JlY3Zfd29yZF9wb2xsKHVuc2lnbmVkIGludCBpZCwgdTMyICogd29yZCkKK2ludCBvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwodW5zaWduZWQgaW50IGlkLCB1MzIgKndvcmQpCiB7Ci0JdTMyIGlvX2Jhc2UgPSBtY2JzcFtpZF0uaW9fYmFzZSwgY2xvY2tfd29yZCA9IDA7Ci0Jb21hcF9tY2JzcF93b3JkX2xlbmd0aCB0eF93b3JkX2xlbmd0aCA9IG1jYnNwW2lkXS50eF93b3JkX2xlbmd0aDsKLQlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHJ4X3dvcmRfbGVuZ3RoID0gbWNic3BbaWRdLnJ4X3dvcmRfbGVuZ3RoOworCXUzMiBpb19iYXNlLCBjbG9ja193b3JkID0gMDsKKwlvbWFwX21jYnNwX3dvcmRfbGVuZ3RoIHR4X3dvcmRfbGVuZ3RoOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CiAJdTE2IHNwY3IyLCBzcGNyMSwgYXR0ZW1wdHMgPSAwLCB3b3JkX2xzYiwgd29yZF9tc2IgPSAwOwogCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpb19iYXNlID0gbWNic3BbaWRdLmlvX2Jhc2U7CisJdHhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0udHhfd29yZF9sZW5ndGg7CisJcnhfd29yZF9sZW5ndGggPSBtY2JzcFtpZF0ucnhfd29yZF9sZW5ndGg7CisKIAlpZiAodHhfd29yZF9sZW5ndGggIT0gcnhfd29yZF9sZW5ndGgpCiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC02MzAsNyArNTYxLDggQEAKIAkJCXVkZWxheSgxMCk7CiAJCQlPTUFQX01DQlNQX1dSSVRFKGlvX2Jhc2UsIFNQQ1IyLCBzcGNyMiB8IFhSU1QpOwogCQkJdWRlbGF5KDEwKTsKLQkJCXByaW50aygiTWNCU1AgdHJhbnNtaXR0ZXIgbm90IHJlYWR5XG4iKTsKKwkJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgdHJhbnNtaXR0ZXIgbm90ICIKKwkJCQkicmVhZHlcbiIsIG1jYnNwW2lkXS5pZCk7CiAJCQlyZXR1cm4gLUVBR0FJTjsKIAkJfQogCX0KQEAgLTY1MCw3ICs1ODIsOCBAQAogCQkJdWRlbGF5KDEwKTsKIAkJCU9NQVBfTUNCU1BfV1JJVEUoaW9fYmFzZSwgU1BDUjEsIHNwY3IxIHwgUlJTVCk7CiAJCQl1ZGVsYXkoMTApOwotCQkJcHJpbnRrKCJNY0JTUCByZWNlaXZlciBub3QgcmVhZHlcbiIpOworCQkJZGV2X2VycihtY2JzcFtpZF0uZGV2LCAiTWNCU1AlZCByZWNlaXZlciBub3QgIgorCQkJCSJyZWFkeVxuIiwgbWNic3BbaWRdLmlkKTsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJfQpAQCAtNjY0LDcgKzU5Nyw3IEBACiAKIAlyZXR1cm4gMDsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwpOwogCiAvKgogICogU2ltcGxlIERNQSBiYXNlZCBidWZmZXIgcngvdHggcm91dGluZXMuCkBAIC02NzMsMjUgKzYwNiwzMiBAQAogICogRm9yIGFueXRoaW5nIGZhbmNpZXIsIHlvdSBzaG91bGQgdXNlIHlvdXIgb3duIGN1c3RvbWl6ZWQgRE1BCiAgKiByb3V0aW5lcyBhbmQgY2FsbGJhY2tzLgogICovCi1pbnQgb21hcF9tY2JzcF94bWl0X2J1ZmZlcih1bnNpZ25lZCBpbnQgaWQsIGRtYV9hZGRyX3QgYnVmZmVyLCB1bnNpZ25lZCBpbnQgbGVuZ3RoKQoraW50IG9tYXBfbWNic3BfeG1pdF9idWZmZXIodW5zaWduZWQgaW50IGlkLCBkbWFfYWRkcl90IGJ1ZmZlciwKKwkJCQl1bnNpZ25lZCBpbnQgbGVuZ3RoKQogewogCWludCBkbWFfdHhfY2g7CiAJaW50IHNyY19wb3J0ID0gMDsKIAlpbnQgZGVzdF9wb3J0ID0gMDsKIAlpbnQgc3luY19kZXYgPSAwOwogCi0JaWYgKG9tYXBfbWNic3BfY2hlY2soaWQpIDwgMCkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKLQlpZiAob21hcF9yZXF1ZXN0X2RtYShtY2JzcFtpZF0uZG1hX3R4X3N5bmMsICJNY0JTUCBUWCIsIG9tYXBfbWNic3BfdHhfZG1hX2NhbGxiYWNrLAotCQkJICAgICAmbWNic3BbaWRdLAotCQkJICAgICAmZG1hX3R4X2NoKSkgewotCQlwcmludGsoIk9NQVAtTWNCU1A6IFVuYWJsZSB0byByZXF1ZXN0IERNQSBjaGFubmVsIGZvciBNY0JTUCVkIFRYLiBUcnlpbmcgSVJRIGJhc2VkIFRYXG4iLCBpZCsxKTsKKwlpZiAob21hcF9yZXF1ZXN0X2RtYShtY2JzcFtpZF0uZG1hX3R4X3N5bmMsICJNY0JTUCBUWCIsCisJCQkJb21hcF9tY2JzcF90eF9kbWFfY2FsbGJhY2ssCisJCQkJJm1jYnNwW2lkXSwKKwkJCQkmZG1hX3R4X2NoKSkgeworCQlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICIgVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yICIKKwkJCQkiTWNCU1AlZCBUWC4gVHJ5aW5nIElSUSBiYXNlZCBUWFxuIiwKKwkJCQltY2JzcFtpZF0uaWQpOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAJbWNic3BbaWRdLmRtYV90eF9sY2ggPSBkbWFfdHhfY2g7CiAKLQlEQkcoIlRYIERNQSBvbiBjaGFubmVsICVkXG4iLCBkbWFfdHhfY2gpOworCWRldl9lcnIobWNic3BbaWRdLmRldiwgIk1jQlNQJWQgVFggRE1BIG9uIGNoYW5uZWwgJWRcbiIsIG1jYnNwW2lkXS5pZCwKKwkJZG1hX3R4X2NoKTsKIAogCWluaXRfY29tcGxldGlvbigmKG1jYnNwW2lkXS50eF9kbWFfY29tcGxldGlvbikpOwogCkBAIC02OTksNyArNjM5LDcgQEAKIAkJc3JjX3BvcnQgPSBPTUFQX0RNQV9QT1JUX1RJUEI7CiAJCWRlc3RfcG9ydCA9IE9NQVBfRE1BX1BPUlRfRU1JRkY7CiAJfQotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCiAJCXN5bmNfZGV2ID0gbWNic3BbaWRdLmRtYV90eF9zeW5jOwogCiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3R4X2xjaCwKQEAgLTcyMiwyOSArNjYyLDM3IEBACiAKIAlvbWFwX3N0YXJ0X2RtYShtY2JzcFtpZF0uZG1hX3R4X2xjaCk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS50eF9kbWFfY29tcGxldGlvbikpOworCiAJcmV0dXJuIDA7CiB9CitFWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfeG1pdF9idWZmZXIpOwogCi0KLWludCBvbWFwX21jYnNwX3JlY3ZfYnVmZmVyKHVuc2lnbmVkIGludCBpZCwgZG1hX2FkZHJfdCBidWZmZXIsIHVuc2lnbmVkIGludCBsZW5ndGgpCitpbnQgb21hcF9tY2JzcF9yZWN2X2J1ZmZlcih1bnNpZ25lZCBpbnQgaWQsIGRtYV9hZGRyX3QgYnVmZmVyLAorCQkJCXVuc2lnbmVkIGludCBsZW5ndGgpCiB7CiAJaW50IGRtYV9yeF9jaDsKIAlpbnQgc3JjX3BvcnQgPSAwOwogCWludCBkZXN0X3BvcnQgPSAwOwogCWludCBzeW5jX2RldiA9IDA7CiAKLQlpZiAob21hcF9tY2JzcF9jaGVjayhpZCkgPCAwKQotCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoIW9tYXBfbWNic3BfY2hlY2tfdmFsaWRfaWQoaWQpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IEludmFsaWQgaWQgKCVkKVxuIiwgX19mdW5jX18sIGlkICsgMSk7CisJCXJldHVybiAtRU5PREVWOworCX0KIAotCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfcnhfc3luYywgIk1jQlNQIFJYIiwgb21hcF9tY2JzcF9yeF9kbWFfY2FsbGJhY2ssCi0JCQkgICAgICZtY2JzcFtpZF0sCi0JCQkgICAgICZkbWFfcnhfY2gpKSB7Ci0JCXByaW50aygiVW5hYmxlIHRvIHJlcXVlc3QgRE1BIGNoYW5uZWwgZm9yIE1jQlNQJWQgUlguIFRyeWluZyBJUlEgYmFzZWQgUlhcbiIsIGlkKzEpOworCWlmIChvbWFwX3JlcXVlc3RfZG1hKG1jYnNwW2lkXS5kbWFfcnhfc3luYywgIk1jQlNQIFJYIiwKKwkJCQlvbWFwX21jYnNwX3J4X2RtYV9jYWxsYmFjaywKKwkJCQkmbWNic3BbaWRdLAorCQkJCSZkbWFfcnhfY2gpKSB7CisJCWRldl9lcnIobWNic3BbaWRdLmRldiwgIlVuYWJsZSB0byByZXF1ZXN0IERNQSBjaGFubmVsIGZvciAiCisJCQkJIk1jQlNQJWQgUlguIFRyeWluZyBJUlEgYmFzZWQgUlhcbiIsCisJCQkJbWNic3BbaWRdLmlkKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQogCW1jYnNwW2lkXS5kbWFfcnhfbGNoID0gZG1hX3J4X2NoOwogCi0JREJHKCJSWCBETUEgb24gY2hhbm5lbCAlZFxuIiwgZG1hX3J4X2NoKTsKKwlkZXZfZXJyKG1jYnNwW2lkXS5kZXYsICJNY0JTUCVkIFJYIERNQSBvbiBjaGFubmVsICVkXG4iLCBtY2JzcFtpZF0uaWQsCisJCWRtYV9yeF9jaCk7CiAKIAlpbml0X2NvbXBsZXRpb24oJihtY2JzcFtpZF0ucnhfZG1hX2NvbXBsZXRpb24pKTsKIApAQCAtNzUyLDE0ICs3MDAsMTQgQEAKIAkJc3JjX3BvcnQgPSBPTUFQX0RNQV9QT1JUX1RJUEI7CiAJCWRlc3RfcG9ydCA9IE9NQVBfRE1BX1BPUlRfRU1JRkY7CiAJfQotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAyKCkpCiAJCXN5bmNfZGV2ID0gbWNic3BbaWRdLmRtYV9yeF9zeW5jOwogCiAJb21hcF9zZXRfZG1hX3RyYW5zZmVyX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3J4X2xjaCwKLQkJCQkgICAgIE9NQVBfRE1BX0RBVEFfVFlQRV9TMTYsCi0JCQkJICAgICBsZW5ndGggPj4gMSwgMSwKLQkJCQkgICAgIE9NQVBfRE1BX1NZTkNfRUxFTUVOVCwKLQkgc3luY19kZXYsIDApOworCQkJCQlPTUFQX0RNQV9EQVRBX1RZUEVfUzE2LAorCQkJCQlsZW5ndGggPj4gMSwgMSwKKwkJCQkJT01BUF9ETUFfU1lOQ19FTEVNRU5ULAorCQkJCQlzeW5jX2RldiwgMCk7CiAKIAlvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyhtY2JzcFtpZF0uZG1hX3J4X2xjaCwKIAkJCQlzcmNfcG9ydCwKQEAgLTc2OCwxNiArNzE2LDE3IEBACiAJCQkJMCwgMCk7CiAKIAlvbWFwX3NldF9kbWFfZGVzdF9wYXJhbXMobWNic3BbaWRdLmRtYV9yeF9sY2gsCi0JCQkJIGRlc3RfcG9ydCwKLQkJCQkgT01BUF9ETUFfQU1PREVfUE9TVF9JTkMsCi0JCQkJIGJ1ZmZlciwKLQkJCQkgMCwgMCk7CisJCQkJCWRlc3RfcG9ydCwKKwkJCQkJT01BUF9ETUFfQU1PREVfUE9TVF9JTkMsCisJCQkJCWJ1ZmZlciwKKwkJCQkJMCwgMCk7CiAKIAlvbWFwX3N0YXJ0X2RtYShtY2JzcFtpZF0uZG1hX3J4X2xjaCk7CiAJd2FpdF9mb3JfY29tcGxldGlvbigmKG1jYnNwW2lkXS5yeF9kbWFfY29tcGxldGlvbikpOworCiAJcmV0dXJuIDA7CiB9Ci0KK0VYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZWN2X2J1ZmZlcik7CiAKIC8qCiAgKiBTUEkgd3JhcHBlci4KQEAgLTc4NSwxMiArNzM0LDE1IEBACiAgKiB0aGlzIHdyYXBwZXIganVzdCBuZWVkIGFuIG9tYXBfbWNic3Bfc3BpX2NmZyBzdHJ1Y3R1cmUgYXMgYW4gaW5wdXQuCiAgKiBPbmNlIHRoaXMgaXMgZG9uZSwgeW91IGNhbiBjYWxsIG9tYXBfbWNic3Bfc3RhcnQoKS4KICAqLwotdm9pZCBvbWFwX21jYnNwX3NldF9zcGlfbW9kZSh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX3NwaV9jZmcgKiBzcGlfY2ZnKQordm9pZCBvbWFwX21jYnNwX3NldF9zcGlfbW9kZSh1bnNpZ25lZCBpbnQgaWQsCisJCQkJY29uc3Qgc3RydWN0IG9tYXBfbWNic3Bfc3BpX2NmZyAqc3BpX2NmZykKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnIG1jYnNwX2NmZzsKIAotCWlmIChvbWFwX21jYnNwX2NoZWNrKGlkKSA8IDApCisJaWYgKCFvbWFwX21jYnNwX2NoZWNrX3ZhbGlkX2lkKGlkKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBJbnZhbGlkIGlkICglZClcbiIsIF9fZnVuY19fLCBpZCArIDEpOwogCQlyZXR1cm47CisJfQogCiAJbWVtc2V0KCZtY2JzcF9jZmcsIDAsIHNpemVvZihzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnKSk7CiAKQEAgLTc5OCw3ICs3NTAsNyBAQAogCW1jYnNwX2NmZy5yY3IxIHw9IChSV0RMRU4xKHNwaV9jZmctPndvcmRfbGVuZ3RoKSB8IFJGUkxFTjEoMCkpOwogCW1jYnNwX2NmZy54Y3IxIHw9IChYV0RMRU4xKHNwaV9jZmctPndvcmRfbGVuZ3RoKSB8IFhGUkxFTjEoMCkpOwogCi0gICAgICAgIC8qIENsb2NrIHN0b3AgbW9kZSAqLworCS8qIENsb2NrIHN0b3AgbW9kZSAqLwogCWlmIChzcGlfY2ZnLT5jbGtfc3RwX21vZGUgPT0gT01BUF9NQ0JTUF9DTEtfU1RQX01PREVfTk9fREVMQVkpCiAJCW1jYnNwX2NmZy5zcGNyMSB8PSAoMSA8PCAxMik7CiAJZWxzZQpAQCAtODI3LDEzICs3NzksMTIgQEAKIAogCWlmIChzcGlfY2ZnLT5zcGlfbW9kZSA9PSBPTUFQX01DQlNQX1NQSV9NQVNURVIpIHsKIAkJbWNic3BfY2ZnLnBjcjAgfD0gQ0xLWE07Ci0JCW1jYnNwX2NmZy5zcmdyMSB8PSBDTEtHRFYoc3BpX2NmZy0+Y2xrX2RpdiAtMSk7CisJCW1jYnNwX2NmZy5zcmdyMSB8PSBDTEtHRFYoc3BpX2NmZy0+Y2xrX2RpdiAtIDEpOwogCQltY2JzcF9jZmcucGNyMCB8PSBGU1hNOwogCQltY2JzcF9jZmcuc3JncjIgJj0gfkZTR007CiAJCW1jYnNwX2NmZy54Y3IyIHw9IFhEQVRETFkoMSk7CiAJCW1jYnNwX2NmZy5yY3IyIHw9IFJEQVRETFkoMSk7Ci0JfQotCWVsc2UgeworCX0gZWxzZSB7CiAJCW1jYnNwX2NmZy5wY3IwICY9IH5DTEtYTTsKIAkJbWNic3BfY2ZnLnNyZ3IxIHw9IENMS0dEVigxKTsKIAkJbWNic3BfY2ZnLnBjcjAgJj0gfkZTWE07CkBAIC04NDYsMTk5ICs3OTcsOTkgQEAKIAogCW9tYXBfbWNic3BfY29uZmlnKGlkLCAmbWNic3BfY2ZnKTsKIH0KLQorRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NldF9zcGlfbW9kZSk7CiAKIC8qCiAgKiBNY0JTUDEgYW5kIE1jQlNQMyBhcmUgZGlyZWN0bHkgbWFwcGVkIG9uIDE2MTAgYW5kIDE1MTAuCiAgKiA3MzAgaGFzIG9ubHkgMiBNY0JTUCwgYW5kIGJvdGggb2YgdGhlbSBhcmUgTVBVIHBlcmlwaGVyYWxzLgogICovCi1zdHJ1Y3Qgb21hcF9tY2JzcF9pbmZvIHsKLQl1MzIgdmlydF9iYXNlOwotCXU4IGRtYV9yeF9zeW5jLCBkbWFfdHhfc3luYzsKLQl1MTYgcnhfaXJxLCB0eF9pcnE7Ci19OwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDczMAotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfNzMwW10gPSB7Ci0JWzBdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AxX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF83MzBfTWNCU1AxUlgsCi0JCS50eF9pcnEgPSBJTlRfNzMwX01jQlNQMVRYIH0sCi0JWzFdID0geyAudmlydF9iYXNlID0gaW9fcDJ2KE9NQVA3MzBfTUNCU1AyX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDNfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19UWCwKLQkJLnJ4X2lycSA9IElOVF83MzBfTWNCU1AyUlgsCi0JCS50eF9pcnEgPSBJTlRfNzMwX01jQlNQMlRYIH0sCi19OwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMTUxMFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IE9NQVAxNTEwX01DQlNQMV9CQVNFLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF9NY0JTUDFSWCwKLQkJLnR4X2lycSA9IElOVF9NY0JTUDFUWCB9LAotCVsxXSA9IHsgLnZpcnRfYmFzZSA9IGlvX3AydihPTUFQMTUxMF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMl9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1RYLAotCQkucnhfaXJxID0gSU5UXzE1MTBfU1BJX1JYLAotCQkudHhfaXJxID0gSU5UXzE1MTBfU1BJX1RYIH0sCi0JWzJdID0geyAudmlydF9iYXNlID0gT01BUDE1MTBfTUNCU1AzX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQM1JYLAotCQkudHhfaXJxID0gSU5UX01jQlNQM1RYIH0sCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNlhYKQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMTYxMFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IE9NQVAxNjEwX01DQlNQMV9CQVNFLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQX0RNQV9NQ0JTUDFfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVBfRE1BX01DQlNQMV9UWCwKLQkJLnJ4X2lycSA9IElOVF9NY0JTUDFSWCwKLQkJLnR4X2lycSA9IElOVF9NY0JTUDFUWCB9LAotCVsxXSA9IHsgLnZpcnRfYmFzZSA9IGlvX3AydihPTUFQMTYxMF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQMl9SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AyX1RYLAotCQkucnhfaXJxID0gSU5UXzE2MTBfTWNCU1AyX1JYLAotCQkudHhfaXJxID0gSU5UXzE2MTBfTWNCU1AyX1RYIH0sCi0JWzJdID0geyAudmlydF9iYXNlID0gT01BUDE2MTBfTUNCU1AzX0JBU0UsCi0JCS5kbWFfcnhfc3luYyA9IE9NQVBfRE1BX01DQlNQM19SWCwKLQkJLmRtYV90eF9zeW5jID0gT01BUF9ETUFfTUNCU1AzX1RYLAotCQkucnhfaXJxID0gSU5UX01jQlNQM1JYLAotCQkudHhfaXJxID0gSU5UX01jQlNQM1RYIH0sCi19OwotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKQotc3RhdGljIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX2luZm8gbWNic3BfMjR4eFtdID0gewotCVswXSA9IHsgLnZpcnRfYmFzZSA9IElPX0FERFJFU1MoT01BUDI0WFhfTUNCU1AxX0JBU0UpLAotCQkuZG1hX3J4X3N5bmMgPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYLAotCQkuZG1hX3R4X3N5bmMgPSBPTUFQMjRYWF9ETUFfTUNCU1AxX1RYLAotCQkucnhfaXJxID0gSU5UXzI0WFhfTUNCU1AxX0lSUV9SWCwKLQkJLnR4X2lycSA9IElOVF8yNFhYX01DQlNQMV9JUlFfVFgsCi0JCX0sCi0JWzFdID0geyAudmlydF9iYXNlID0gSU9fQUREUkVTUyhPTUFQMjRYWF9NQ0JTUDJfQkFTRSksCi0JCS5kbWFfcnhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgsCi0JCS5kbWFfdHhfc3luYyA9IE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgsCi0JCS5yeF9pcnEgPSBJTlRfMjRYWF9NQ0JTUDJfSVJRX1JYLAotCQkudHhfaXJxID0gSU5UXzI0WFhfTUNCU1AyX0lSUV9UWCwKLQkJfSwKLX07Ci0jZW5kaWYKLQotc3RhdGljIGludCBfX2luaXQgb21hcF9tY2JzcF9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBvbWFwX21jYnNwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiB7Ci0JaW50IG1jYnNwX2NvdW50ID0gMCwgaTsKLQlzdGF0aWMgY29uc3Qgc3RydWN0IG9tYXBfbWNic3BfaW5mbyAqbWNic3BfaW5mbzsKKwlzdHJ1Y3Qgb21hcF9tY2JzcF9wbGF0Zm9ybV9kYXRhICpwZGF0YSA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOworCWludCBpZCA9IHBkZXYtPmlkIC0gMTsKKwlpbnQgcmV0ID0gMDsKIAotCXByaW50aygiSW5pdGlhbGl6aW5nIE9NQVAgTWNCU1Agc3lzdGVtXG4iKTsKKwlpZiAoIXBkYXRhKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIk1jQlNQIGRldmljZSBpbml0aWFsaXplZCB3aXRob3V0IgorCQkJCSJwbGF0Zm9ybSBkYXRhXG4iKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBleGl0OworCX0KIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAxCi0JbWNic3BfZHNwX2NrID0gY2xrX2dldCgwLCAiZHNwX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9kc3BfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGRzcF9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfZHNwX2NrKTsKLQl9Ci0JbWNic3BfYXBpX2NrID0gY2xrX2dldCgwLCAiYXBpX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9hcGlfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGFwaV9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfYXBpX2NrKTsKLQl9Ci0JbWNic3BfZHNweG9yX2NrID0gY2xrX2dldCgwLCAiZHNweG9yX2NrIik7Ci0JaWYgKElTX0VSUihtY2JzcF9kc3B4b3JfY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIGRzcHhvcl9jayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3BfZHNweG9yX2NrKTsKLQl9Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMgotCW1jYnNwMV9pY2sgPSBjbGtfZ2V0KDAsICJtY2JzcDFfaWNrIik7Ci0JaWYgKElTX0VSUihtY2JzcDFfaWNrKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1jYnNwOiBjb3VsZCBub3QgYWNxdWlyZSBtY2JzcDFfaWNrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcDFfaWNrKTsKLQl9Ci0JbWNic3AxX2ZjayA9IGNsa19nZXQoMCwgIm1jYnNwMV9mY2siKTsKLQlpZiAoSVNfRVJSKG1jYnNwMV9mY2spKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAibWNic3A6IGNvdWxkIG5vdCBhY3F1aXJlIG1jYnNwMV9mY2sgaGFuZGxlLlxuIik7Ci0JCXJldHVybiBQVFJfRVJSKG1jYnNwMV9mY2spOwotCX0KLQltY2JzcDJfaWNrID0gY2xrX2dldCgwLCAibWNic3AyX2ljayIpOwotCWlmIChJU19FUlIobWNic3AyX2ljaykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJtY2JzcDogY291bGQgbm90IGFjcXVpcmUgbWNic3AyX2ljayBoYW5kbGUuXG4iKTsKLQkJcmV0dXJuIFBUUl9FUlIobWNic3AyX2ljayk7Ci0JfQotCW1jYnNwMl9mY2sgPSBjbGtfZ2V0KDAsICJtY2JzcDJfZmNrIik7Ci0JaWYgKElTX0VSUihtY2JzcDJfZmNrKSkgewotCQlwcmludGsoS0VSTl9FUlIgIm1jYnNwOiBjb3VsZCBub3QgYWNxdWlyZSBtY2JzcDJfZmNrIGhhbmRsZS5cbiIpOwotCQlyZXR1cm4gUFRSX0VSUihtY2JzcDJfZmNrKTsKLQl9Ci0jZW5kaWYKKwlkZXZfZGJnKCZwZGV2LT5kZXYsICJJbml0aWFsaXppbmcgT01BUCBNY0JTUCAoJWQpLlxuIiwgcGRldi0+aWQpOwogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDczMAotCWlmIChjcHVfaXNfb21hcDczMCgpKSB7Ci0JCW1jYnNwX2luZm8gPSBtY2JzcF83MzA7Ci0JCW1jYnNwX2NvdW50ID0gQVJSQVlfU0laRShtY2JzcF83MzApOworCWlmIChpZCA+PSBPTUFQX01BWF9NQ0JTUF9DT1VOVCkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJJbnZhbGlkIE1jQlNQIGRldmljZSBpZCAoJWQpXG4iLCBpZCk7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZXhpdDsKIAl9Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMTVYWAotCWlmIChjcHVfaXNfb21hcDE1eHgoKSkgewotCQltY2JzcF9pbmZvID0gbWNic3BfMTUxMDsKLQkJbWNic3BfY291bnQgPSBBUlJBWV9TSVpFKG1jYnNwXzE1MTApOwotCX0KLSNlbmRpZgotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDE2WFgpCi0JaWYgKGNwdV9pc19vbWFwMTZ4eCgpKSB7Ci0JCW1jYnNwX2luZm8gPSBtY2JzcF8xNjEwOwotCQltY2JzcF9jb3VudCA9IEFSUkFZX1NJWkUobWNic3BfMTYxMCk7Ci0JfQotI2VuZGlmCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjRYWCkKLQlpZiAoY3B1X2lzX29tYXAyNHh4KCkpIHsKLQkJbWNic3BfaW5mbyA9IG1jYnNwXzI0eHg7Ci0JCW1jYnNwX2NvdW50ID0gQVJSQVlfU0laRShtY2JzcF8yNHh4KTsKLQkJb21hcDJfbWNic3AyX211eF9zZXR1cCgpOwotCX0KLSNlbmRpZgotCWZvciAoaSA9IDA7IGkgPCBPTUFQX01BWF9NQ0JTUF9DT1VOVCA7IGkrKykgewotCQlpZiAoaSA+PSBtY2JzcF9jb3VudCkgewotCQkJbWNic3BbaV0uaW9fYmFzZSA9IDA7Ci0JCQltY2JzcFtpXS5mcmVlID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCQl9Ci0JCW1jYnNwW2ldLmlkID0gaSArIDE7Ci0JCW1jYnNwW2ldLmZyZWUgPSAxOwotCQltY2JzcFtpXS5kbWFfdHhfbGNoID0gLTE7Ci0JCW1jYnNwW2ldLmRtYV9yeF9sY2ggPSAtMTsKIAotCQltY2JzcFtpXS5pb19iYXNlID0gbWNic3BfaW5mb1tpXS52aXJ0X2Jhc2U7Ci0JCW1jYnNwW2ldLmlvX3R5cGUgPSBPTUFQX01DQlNQX0lSUV9JTzsgLyogRGVmYXVsdCBJL08gaXMgSVJRIGJhc2VkICovCi0JCW1jYnNwW2ldLnR4X2lycSA9IG1jYnNwX2luZm9baV0udHhfaXJxOwotCQltY2JzcFtpXS5yeF9pcnEgPSBtY2JzcF9pbmZvW2ldLnJ4X2lycTsKLQkJbWNic3BbaV0uZG1hX3J4X3N5bmMgPSBtY2JzcF9pbmZvW2ldLmRtYV9yeF9zeW5jOwotCQltY2JzcFtpXS5kbWFfdHhfc3luYyA9IG1jYnNwX2luZm9baV0uZG1hX3R4X3N5bmM7Ci0JCXNwaW5fbG9ja19pbml0KCZtY2JzcFtpXS5sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmbWNic3BbaWRdLmxvY2spOworCW1jYnNwW2lkXS5pZCA9IGlkICsgMTsKKwltY2JzcFtpZF0uZnJlZSA9IDE7CisJbWNic3BbaWRdLmRtYV90eF9sY2ggPSAtMTsKKwltY2JzcFtpZF0uZG1hX3J4X2xjaCA9IC0xOworCisJbWNic3BbaWRdLmlvX2Jhc2UgPSBwZGF0YS0+dmlydF9iYXNlOworCS8qIERlZmF1bHQgSS9PIGlzIElSUSBiYXNlZCAqLworCW1jYnNwW2lkXS5pb190eXBlID0gT01BUF9NQ0JTUF9JUlFfSU87CisJbWNic3BbaWRdLnR4X2lycSA9IHBkYXRhLT50eF9pcnE7CisJbWNic3BbaWRdLnJ4X2lycSA9IHBkYXRhLT5yeF9pcnE7CisJbWNic3BbaWRdLmRtYV9yeF9zeW5jID0gcGRhdGEtPmRtYV9yeF9zeW5jOworCW1jYnNwW2lkXS5kbWFfdHhfc3luYyA9IHBkYXRhLT5kbWFfdHhfc3luYzsKKworCWlmIChwZGF0YS0+Y2xrX25hbWUpCisJCW1jYnNwW2lkXS5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsIHBkYXRhLT5jbGtfbmFtZSk7CisJaWYgKElTX0VSUihtY2JzcFtpZF0uY2xrKSkgeworCQltY2JzcFtpZF0uZnJlZSA9IDA7CisJCWRldl9lcnIoJnBkZXYtPmRldiwKKwkJCSJJbnZhbGlkIGNsb2NrIGNvbmZpZ3VyYXRpb24gZm9yIE1jQlNQJWQuXG4iLAorCQkJbWNic3BbaWRdLmlkKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBleGl0OworCX0KKworCW1jYnNwW2lkXS5wZGF0YSA9IHBkYXRhOworCW1jYnNwW2lkXS5kZXYgPSAmcGRldi0+ZGV2OworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsICZtY2JzcFtpZF0pOworCitleGl0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgb21hcF9tY2JzcCAqbWNic3AgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCWlmIChtY2JzcCkgeworCisJCWlmIChtY2JzcC0+cGRhdGEgJiYgbWNic3AtPnBkYXRhLT5vcHMgJiYKKwkJCQltY2JzcC0+cGRhdGEtPm9wcy0+ZnJlZSkKKwkJCW1jYnNwLT5wZGF0YS0+b3BzLT5mcmVlKG1jYnNwLT5pZCk7CisKKwkJY2xrX2Rpc2FibGUobWNic3AtPmNsayk7CisJCWNsa19wdXQobWNic3AtPmNsayk7CisKKwkJbWNic3AtPmNsayA9IE5VTEw7CisJCW1jYnNwLT5mcmVlID0gMDsKKwkJbWNic3AtPmRldiA9IE5VTEw7CiAJfQogCiAJcmV0dXJuIDA7CiB9CiAKLWFyY2hfaW5pdGNhbGwob21hcF9tY2JzcF9pbml0KTsKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIG9tYXBfbWNic3BfZHJpdmVyID0geworCS5wcm9iZQkJPSBvbWFwX21jYnNwX3Byb2JlLAorCS5yZW1vdmUJCT0gb21hcF9tY2JzcF9yZW1vdmUsCisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gIm9tYXAtbWNic3AiLAorCX0sCit9OwogCi1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfY29uZmlnKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9yZXF1ZXN0KTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9zZXRfaW9fdHlwZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfZnJlZSk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3Bfc3RhcnQpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3N0b3ApOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3BvbGxyZWFkKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF9wb2xsd3JpdGUpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3htaXRfd29yZCk7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVjdl93b3JkKTsKLUVYUE9SVF9TWU1CT0wob21hcF9tY2JzcF94bWl0X2J1ZmZlcik7Ci1FWFBPUlRfU1lNQk9MKG9tYXBfbWNic3BfcmVjdl9idWZmZXIpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfeG1pdF93b3JkX3BvbGwpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NwaV9tYXN0ZXJfcmVjdl93b3JkX3BvbGwpOwotRVhQT1JUX1NZTUJPTChvbWFwX21jYnNwX3NldF9zcGlfbW9kZSk7CitpbnQgX19pbml0IG9tYXBfbWNic3BfaW5pdCh2b2lkKQoreworCS8qIFJlZ2lzdGVyIHRoZSBNY0JTUCBkcml2ZXIgKi8KKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZvbWFwX21jYnNwX2RyaXZlcik7Cit9CisKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMgYi9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS1mbi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ZTE4MTNjLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLWZuLlMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogbGludXgvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0tZm4uUwotICoKLSAqIEZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgcnVuIGluIGludGVybmFsIFNSQU0KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0KLQkudGV4dAotCi0vKgotICogUmVwcm9ncmFtcyBVTFBEIGFuZCBDS0NUTC4KLSAqLwotRU5UUlkoc3JhbV9yZXByb2dyYW1fY2xvY2spCi0Jc3RtZmQJc3AhLCB7cjAgLSByMTIsIGxyfQkJQCBzYXZlIHJlZ2lzdGVycyBvbiBzdGFjawotCi0JbW92CXIyLCAjSU9fQUREUkVTUyhEUExMX0NUTCkgJiAweGZmMDAwMDAwCi0Jb3JyCXIyLCByMiwgI0lPX0FERFJFU1MoRFBMTF9DVEwpICYgMHgwMGZmMDAwMAotCW9ycglyMiwgcjIsICNJT19BRERSRVNTKERQTExfQ1RMKSAmIDB4MDAwMGZmMDAKLQotCW1vdglyMywgI0lPX0FERFJFU1MoQVJNX0NLQ1RMKSAmIDB4ZmYwMDAwMDAKLQlvcnIJcjMsIHIzLCAjSU9fQUREUkVTUyhBUk1fQ0tDVEwpICYgMHgwMGZmMDAwMAotCW9ycglyMywgcjMsICNJT19BRERSRVNTKEFSTV9DS0NUTCkgJiAweDAwMDBmZjAwCi0KLQl0c3QJcjAsICMxIDw8IDQJCQlAIHdhbnQgbG9jayBtb2RlPwotCWJlcQluZXdjawkJCQlAIG5vcGUKLQliaWMJcjAsIHIwLCAjMSA8PCA0CQkJQCBlbHNlIGNsZWFyIGxvY2sgYml0Ci0Jc3RyaAlyMCwgW3IyXQkJCUAgc2V0IGRwbGwgaW50byBieXBhc3MgbW9kZQotCW9ycglyMCwgcjAsICMxIDw8IDQJCQlAIHNldCBsb2NrIGJpdCBhZ2FpbgotCi1uZXdjazoKLQlzdHJoCXIxLCBbcjNdCQkJQCB3cml0ZSBuZXcgY2tjdGwgdmFsdWUKLQlzdHJoCXIwLCBbcjJdCQkJQCB3cml0ZSBuZXcgZHBsbCB2YWx1ZQotCi0JbW92CXI0LCAjMHgwNzAwCQkJQCBsZXQgdGhlIGNsb2NrcyBzZXR0bGUKLQlvcnIJcjQsIHI0LCAjMHgwMGZmCi1kZWxheToJc3ViCXI0LCByNCwgIzEKLQljbXAJcjQsICMwCi0JYm5lCWRlbGF5Ci0KLWxvY2s6CWxkcmgJcjQsIFtyMl0sICMwCQkJQCByZWFkIGJhY2sgZHBsbCB2YWx1ZQotCXRzdAlyMCwgIzEgPDwgNAkJCUAgd2FudCBsb2NrIG1vZGU/Ci0JYmVxCW91dAkJCQlAIG5vcGUKLQl0c3QJcjQsICMxIDw8IDAJCQlAIGRwbGwgcmF0ZSBsb2NrZWQ/Ci0JYmVxCWxvY2sJCQkJQCB0cnkgYWdhaW4KLQotb3V0OgotCWxkbWZkCXNwISwge3IwIC0gcjEyLCBwY30JCUAgcmVzdG9yZSByZWdzIGFuZCByZXR1cm4KLUVOVFJZKHNyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6KQotCS53b3JkCS4gLSBzcmFtX3JlcHJvZ3JhbV9jbG9jawpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0uYyBiL2FyY2gvYXJtL3BsYXQtb21hcC9zcmFtLmMKaW5kZXggMWYyM2YwNC4uNTU0ZWU1OCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vbWFwL3NyYW0uYworKysgYi9hcmNoL2FybS9wbGF0LW9tYXAvc3JhbS5jCkBAIC0xMCw2ICsxMCw3IEBACiAgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwogICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCiAgKi8KKyN1bmRlZiBERUJVRwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC0yNCwyNSArMjUsNDMgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYm9hcmQuaD4KIAorI2luY2x1ZGUgPGFzbS9hcmNoL2NvbnRyb2wuaD4KKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDIpIHx8IGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDMpCisjIGluY2x1ZGUgIi4uL21hY2gtb21hcDIvcHJtLmgiCisjIGluY2x1ZGUgIi4uL21hY2gtb21hcDIvY20uaCIKKyMgaW5jbHVkZSAiLi4vbWFjaC1vbWFwMi9zZHJjLmgiCisjZW5kaWYKKwogI2RlZmluZSBPTUFQMV9TUkFNX1BBCQkweDIwMDAwMDAwCi0jZGVmaW5lIE9NQVAxX1NSQU1fVkEJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgT01BUDFfU1JBTV9WQQkJVk1BTExPQ19FTkQKICNkZWZpbmUgT01BUDJfU1JBTV9QQQkJMHg0MDIwMDAwMAogI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9QQQkweDQwMjBmODAwCi0jZGVmaW5lIE9NQVAyX1NSQU1fVkEJCTB4ZDAwMDAwMDAKLSNkZWZpbmUgT01BUDJfU1JBTV9QVUJfVkEJMHhkMDAwMDgwMAorI2RlZmluZSBPTUFQMl9TUkFNX1ZBCQlWTUFMTE9DX0VORAorI2RlZmluZSBPTUFQMl9TUkFNX1BVQl9WQQkoVk1BTExPQ19FTkQgKyAweDgwMCkKKyNkZWZpbmUgT01BUDNfU1JBTV9QQSAgICAgICAgICAgMHg0MDIwMDAwMAorI2RlZmluZSBPTUFQM19TUkFNX1ZBICAgICAgICAgICAweGQ3MDAwMDAwCisjZGVmaW5lIE9NQVAzX1NSQU1fUFVCX1BBICAgICAgIDB4NDAyMDgwMDAKKyNkZWZpbmUgT01BUDNfU1JBTV9QVUJfVkEgICAgICAgMHhkNzAwODAwMAogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMjRYWCkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyNFhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzNFhYKQogI2RlZmluZSBTUkFNX0JPT1RMT0FERVJfU1oJMHgwMAogI2Vsc2UKICNkZWZpbmUgU1JBTV9CT09UTE9BREVSX1NaCTB4ODAKICNlbmRpZgogCi0jZGVmaW5lIFZBX1JFUUlORk9QRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDQ4KQotI2RlZmluZSBWQV9SRUFEUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAwNTA1MCkKLSNkZWZpbmUgVkFfV1JJVEVQRVJNMAkJSU9fQUREUkVTUygweDY4MDA1MDU4KQotI2RlZmluZSBWQV9DT05UUk9MX1NUQVQJCUlPX0FERFJFU1MoMHg0ODAwMDJGOCkKKyNkZWZpbmUgT01BUDI0WFhfVkFfUkVRSU5GT1BFUk0wCUlPX0FERFJFU1MoMHg2ODAwNTA0OCkKKyNkZWZpbmUgT01BUDI0WFhfVkFfUkVBRFBFUk0wCQlJT19BRERSRVNTKDB4NjgwMDUwNTApCisjZGVmaW5lIE9NQVAyNFhYX1ZBX1dSSVRFUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAwNTA1OCkKKworI2RlZmluZSBPTUFQMzRYWF9WQV9SRVFJTkZPUEVSTTAJSU9fQUREUkVTUygweDY4MDEyODQ4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9SRUFEUEVSTTAJCUlPX0FERFJFU1MoMHg2ODAxMjg1MCkKKyNkZWZpbmUgT01BUDM0WFhfVkFfV1JJVEVQRVJNMAkJSU9fQUREUkVTUygweDY4MDEyODU4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9BRERSX01BVENIMgkJSU9fQUREUkVTUygweDY4MDEyODgwKQorI2RlZmluZSBPTUFQMzRYWF9WQV9TTVNfUkdfQVRUMAkJSU9fQUREUkVTUygweDZDMDAwMDQ4KQorI2RlZmluZSBPTUFQMzRYWF9WQV9DT05UUk9MX1NUQVQJSU9fQUREUkVTUygweDQ4MDAyMkYwKQorCiAjZGVmaW5lIEdQX0RFVklDRQkJMHgzMDAKLSNkZWZpbmUgVFlQRV9NQVNLCQkweDcwMAogCiAjZGVmaW5lIFJPVU5EX0RPV04odmFsdWUsYm91bmRhcnkpCSgodmFsdWUpICYgKH4oKGJvdW5kYXJ5KS0xKSkpCiAKQEAgLTY4LDE0ICs4NywyMSBAQAogCWludCB0eXBlID0gMDsKIAogCWlmIChjcHVfaXNfb21hcDI0MngoKSkKLQkJdHlwZSA9IF9fcmF3X3JlYWRsKFZBX0NPTlRST0xfU1RBVCkgJiBUWVBFX01BU0s7CisJCXR5cGUgPSBzeXN0ZW1fcmV2ICYgT01BUDJfREVWSUNFVFlQRV9NQVNLOwogCiAJaWYgKHR5cGUgPT0gR1BfREVWSUNFKSB7CiAJCS8qIFJBTUZXOiBSL1cgYWNjZXNzIHRvIGFsbCBpbml0aWF0b3JzIGZvciBhbGwgcXVhbGlmaWVyIHNldHMgKi8KIAkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKSB7Ci0JCQlfX3Jhd193cml0ZWwoMHhGRiwgVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8KLQkJCV9fcmF3X3dyaXRlbCgweENGREUsIFZBX1JFQURQRVJNMCk7ICAvKiBhbGwgaS1yZWFkICovCi0JCQlfX3Jhd193cml0ZWwoMHhDRkRFLCBWQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUgKi8KKwkJCV9fcmF3X3dyaXRlbCgweEZGLCBPTUFQMjRYWF9WQV9SRVFJTkZPUEVSTTApOyAvKiBhbGwgcS12ZWN0cyAqLworCQkJX19yYXdfd3JpdGVsKDB4Q0ZERSwgT01BUDI0WFhfVkFfUkVBRFBFUk0wKTsgIC8qIGFsbCBpLXJlYWQgKi8KKwkJCV9fcmF3X3dyaXRlbCgweENGREUsIE9NQVAyNFhYX1ZBX1dSSVRFUEVSTTApOyAvKiBhbGwgaS13cml0ZSAqLworCQl9CisJCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQkJX19yYXdfd3JpdGVsKDB4RkZGRiwgT01BUDM0WFhfVkFfUkVRSU5GT1BFUk0wKTsgLyogYWxsIHEtdmVjdHMgKi8KKwkJCV9fcmF3X3dyaXRlbCgweEZGRkYsIE9NQVAzNFhYX1ZBX1JFQURQRVJNMCk7ICAvKiBhbGwgaS1yZWFkICovCisJCQlfX3Jhd193cml0ZWwoMHhGRkZGLCBPTUFQMzRYWF9WQV9XUklURVBFUk0wKTsgLyogYWxsIGktd3JpdGUgKi8KKwkJCV9fcmF3X3dyaXRlbCgweDAsIE9NQVAzNFhYX1ZBX0FERFJfTUFUQ0gyKTsKKwkJCV9fcmF3X3dyaXRlbCgweEZGRkZGRkZGLCBPTUFQMzRYWF9WQV9TTVNfUkdfQVRUMCk7CiAJCX0KIAkJcmV0dXJuIDA7CiAJfSBlbHNlCkBAIC05MiwxOCArMTE4LDMwIEBACiB7CiAJdW5zaWduZWQgbG9uZyByZXNlcnZlZDsKIAotCWlmIChjcHVfaXNfb21hcDI0eHgoKSkgeworCWlmIChjcHVfY2xhc3NfaXNfb21hcDIoKSkgewogCQlpZiAoaXNfc3JhbV9sb2NrZWQoKSkgewotCQkJb21hcF9zcmFtX2Jhc2UgPSBPTUFQMl9TUkFNX1BVQl9WQTsKLQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUFVCX1BBOwotCQkJb21hcF9zcmFtX3NpemUgPSAweDgwMDsgLyogMksgKi8KKwkJCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQkJCW9tYXBfc3JhbV9iYXNlID0gT01BUDNfU1JBTV9QVUJfVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QVUJfUEE7CisJCQkJb21hcF9zcmFtX3NpemUgPSAweDgwMDA7IC8qIDMySyAqLworCQkJfSBlbHNlIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fUFVCX1ZBOworCQkJCW9tYXBfc3JhbV9zdGFydCA9IE9NQVAyX1NSQU1fUFVCX1BBOworCQkJCW9tYXBfc3JhbV9zaXplID0gMHg4MDA7IC8qIDJLICovCisJCQl9CiAJCX0gZWxzZSB7Ci0JCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fVkE7Ci0JCQlvbWFwX3NyYW1fc3RhcnQgPSBPTUFQMl9TUkFNX1BBOwotCQkJaWYgKGNwdV9pc19vbWFwMjQyeCgpKQotCQkJCW9tYXBfc3JhbV9zaXplID0gMHhhMDAwMDsgLyogNjQwSyAqLwotCQkJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDN4KCkpCisJCQlpZiAoY3B1X2lzX29tYXAzNHh4KCkpIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAzX1NSQU1fVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDNfU1JBTV9QQTsKIAkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAqLworCQkJfSBlbHNlIHsKKwkJCQlvbWFwX3NyYW1fYmFzZSA9IE9NQVAyX1NSQU1fVkE7CisJCQkJb21hcF9zcmFtX3N0YXJ0ID0gT01BUDJfU1JBTV9QQTsKKwkJCQlpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCisJCQkJCW9tYXBfc3JhbV9zaXplID0gMHhhMDAwMDsgLyogNjQwSyAqLworCQkJCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzeCgpKQorCQkJCQlvbWFwX3NyYW1fc2l6ZSA9IDB4MTAwMDA7IC8qIDY0SyAqLworCQkJfQogCQl9CiAJfSBlbHNlIHsKIAkJb21hcF9zcmFtX2Jhc2UgPSBPTUFQMV9TUkFNX1ZBOwpAQCAtMTU3LDYgKzE5NSwxMyBAQAogCQlvbWFwX3NyYW1faW9fZGVzY1swXS5wZm4gPSBfX3BoeXNfdG9fcGZuKGJhc2UpOwogCX0KIAorCWlmIChjcHVfaXNfb21hcDM0eHgoKSkgeworCQlvbWFwX3NyYW1faW9fZGVzY1swXS52aXJ0dWFsID0gT01BUDNfU1JBTV9WQTsKKwkJYmFzZSA9IE9NQVAzX1NSQU1fUEE7CisJCWJhc2UgPSBST1VORF9ET1dOKGJhc2UsIFBBR0VfU0laRSk7CisJCW9tYXBfc3JhbV9pb19kZXNjWzBdLnBmbiA9IF9fcGh5c190b19wZm4oYmFzZSk7CisJfQorCiAJb21hcF9zcmFtX2lvX2Rlc2NbMF0ubGVuZ3RoID0gMTAyNCAqIDEwMjQ7CS8qIFVzZSBzZWN0aW9uIGRlc2MgKi8KIAlpb3RhYmxlX2luaXQob21hcF9zcmFtX2lvX2Rlc2MsIEFSUkFZX1NJWkUob21hcF9zcmFtX2lvX2Rlc2MpKTsKIApAQCAtMTkxLDYgKzIzNiw3IEBACiAJb21hcF9zcmFtX2NlaWwgLT0gc2l6ZTsKIAlvbWFwX3NyYW1fY2VpbCA9IFJPVU5EX0RPV04ob21hcF9zcmFtX2NlaWwsIHNpemVvZih2b2lkICopKTsKIAltZW1jcHkoKHZvaWQgKilvbWFwX3NyYW1fY2VpbCwgc3RhcnQsIHNpemUpOworCWZsdXNoX2ljYWNoZV9yYW5nZSgodW5zaWduZWQgbG9uZylzdGFydCwgKHVuc2lnbmVkIGxvbmcpKHN0YXJ0ICsgc2l6ZSkpOwogCiAJcmV0dXJuICh2b2lkICopb21hcF9zcmFtX2NlaWw7CiB9CkBAIC0yMTQsOCArMjYwLDkgQEAKIAogaW50IF9faW5pdCBvbWFwMV9zcmFtX2luaXQodm9pZCkKIHsKLQlfb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fcmVwcm9ncmFtX2Nsb2NrLAotCQkJCQkJICAgIHNyYW1fcmVwcm9ncmFtX2Nsb2NrX3N6KTsKKwlfb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayA9CisJCQlvbWFwX3NyYW1fcHVzaChvbWFwMV9zcmFtX3JlcHJvZ3JhbV9jbG9jaywKKwkJCQkJb21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3opOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMjQsNyArMjcxLDcgQEAKICNkZWZpbmUgb21hcDFfc3JhbV9pbml0KCkJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19BUkNIX09NQVAyCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMikgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKIAogc3RhdGljIHZvaWQgKCpfb21hcDJfc3JhbV9kZHJfaW5pdCkodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKIAkJCSAgICAgIHUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKQEAgLTI1OSwxOSArMzA2LDEwOSBAQAogCiAJcmV0dXJuIF9vbWFwMl9zZXRfcHJjbShkcGxsX2N0cmxfdmFsLCBzZHJjX3Jmcl92YWwsIGJ5cGFzcyk7CiB9CisjZW5kaWYKIAotaW50IF9faW5pdCBvbWFwMl9zcmFtX2luaXQodm9pZCkKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMjQyMAoraW50IF9faW5pdCBvbWFwMjQyeF9zcmFtX2luaXQodm9pZCkKIHsKLQlfb21hcDJfc3JhbV9kZHJfaW5pdCA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fZGRyX2luaXQsIHNyYW1fZGRyX2luaXRfc3opOworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDI0Mnhfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zeik7CiAKLQlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKHNyYW1fcmVwcm9ncmFtX3NkcmMsCi0JCQkJCQkgICAgc3JhbV9yZXByb2dyYW1fc2RyY19zeik7Ci0JX29tYXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2goc3JhbV9zZXRfcHJjbSwgc3JhbV9zZXRfcHJjbV9zeik7CisJX29tYXAyX3NyYW1fcmVwcm9ncmFtX3NkcmMgPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjLAorCQkJCQkgICAgb21hcDI0Mnhfc3JhbV9yZXByb2dyYW1fc2RyY19zeik7CisKKwlfb21hcDJfc2V0X3ByY20gPSBvbWFwX3NyYW1fcHVzaChvbWFwMjQyeF9zcmFtX3NldF9wcmNtLAorCQkJCQkgb21hcDI0Mnhfc3JhbV9zZXRfcHJjbV9zeik7CiAKIAlyZXR1cm4gMDsKIH0KICNlbHNlCi0jZGVmaW5lIG9tYXAyX3NyYW1faW5pdCgpCWRvIHt9IHdoaWxlICgwKQorc3RhdGljIGlubGluZSBpbnQgb21hcDI0Mnhfc3JhbV9pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX09NQVAyNDMwCitpbnQgX19pbml0IG9tYXAyNDN4X3NyYW1faW5pdCh2b2lkKQoreworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDI0M3hfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDI0M3hfc3JhbV9kZHJfaW5pdF9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDN4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCisJCQkJCSAgICBvbWFwMjQzeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6KTsKKworCV9vbWFwMl9zZXRfcHJjbSA9IG9tYXBfc3JhbV9wdXNoKG9tYXAyNDN4X3NyYW1fc2V0X3ByY20sCisJCQkJCSBvbWFwMjQzeF9zcmFtX3NldF9wcmNtX3N6KTsKKworCXJldHVybiAwOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IG9tYXAyNDN4X3NyYW1faW5pdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQVJDSF9PTUFQMworCitzdGF0aWMgdTMyICgqX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMpKHUzMiBwZXJmX2xldmVsKTsKK3UzMiBvbWFwMl9zcmFtX3JlcHJvZ3JhbV9ncG1jKHUzMiBwZXJmX2xldmVsKQoreworCWlmICghX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMpCisJCW9tYXBfc3JhbV9lcnJvcigpOworCisJcmV0dXJuIF9vbWFwMl9zcmFtX3JlcHJvZ3JhbV9ncG1jKHBlcmZfbGV2ZWwpOworfQorCitzdGF0aWMgdTMyICgqX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCkodTMyIG0sIHUzMiBuLAorCQkJCQkJdTMyIGZyZXFzZWwsIHUzMiBtMik7Cit1MzIgb21hcDJfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsKHUzMiBtLCB1MzIgbiwgdTMyIGZyZXFzZWwsIHUzMiBtMikKK3sKKwlpZiAoIV9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwpCisJCW9tYXBfc3JhbV9lcnJvcigpOworCisJcmV0dXJuIF9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwobSwgbiwgZnJlcXNlbCwgbTIpOworfQorCisvKiBSRVZJU0lUOiBTaG91bGQgdGhpcyBiZSBzYW1lIGFzIG9tYXAzNHh4X3NyYW1faW5pdCgpIGFmdGVyIG9mZi1pZGxlPyAqLwordm9pZCByZXN0b3JlX3NyYW1fZnVuY3Rpb25zKHZvaWQpCit7CisJb21hcF9zcmFtX2NlaWwgPSBvbWFwX3NyYW1fYmFzZSArIG9tYXBfc3JhbV9zaXplOworCisJX29tYXAyX3NyYW1fcmVwcm9ncmFtX2dwbWMgPSBvbWFwX3NyYW1fcHVzaChvbWFwMzR4eF9zcmFtX3JlcHJvZ3JhbV9ncG1jLAorCQlvbWFwMzR4eF9zcmFtX3JlcHJvZ3JhbV9ncG1jX3N6KTsKKworCV9vbWFwMl9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGwgPQorCQkJb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsLAorCQkJCQlvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGxfc3opOworfQorCitpbnQgX19pbml0IG9tYXAzNHh4X3NyYW1faW5pdCh2b2lkKQoreworCV9vbWFwMl9zcmFtX2Rkcl9pbml0ID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9kZHJfaW5pdCwKKwkJCQkJb21hcDM0eHhfc3JhbV9kZHJfaW5pdF9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fc2RyYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX3NkcmMsCisJCQkJCW9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX3NkcmNfc3opOworCisJX29tYXAyX3NldF9wcmNtID0gb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9zZXRfcHJjbSwKKwkJCQkJb21hcDM0eHhfc3JhbV9zZXRfcHJjbV9zeik7CisKKwlfb21hcDJfc3JhbV9yZXByb2dyYW1fZ3BtYyA9IG9tYXBfc3JhbV9wdXNoKG9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWMsCisJCQkJCW9tYXAzNHh4X3NyYW1fcmVwcm9ncmFtX2dwbWNfc3opOworCisJX29tYXAyX3NyYW1fY29uZmlndXJlX2NvcmVfZHBsbCA9CisJCQkJb21hcF9zcmFtX3B1c2gob21hcDM0eHhfc3JhbV9jb25maWd1cmVfY29yZV9kcGxsLAorCQkJCQlvbWFwMzR4eF9zcmFtX2NvbmZpZ3VyZV9jb3JlX2RwbGxfc3opOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgb21hcDM0eHhfc3JhbV9pbml0KHZvaWQpCit7CisJcmV0dXJuIDA7Cit9CiAjZW5kaWYKIAogaW50IF9faW5pdCBvbWFwX3NyYW1faW5pdCh2b2lkKQpAQCAtMjc5LDEwICs0MTYsMTQgQEAKIAlvbWFwX2RldGVjdF9zcmFtKCk7CiAJb21hcF9tYXBfc3JhbSgpOwogCi0JaWYgKCFjcHVfaXNfb21hcDI0eHgoKSkKKwlpZiAoIShjcHVfY2xhc3NfaXNfb21hcDIoKSkpCiAJCW9tYXAxX3NyYW1faW5pdCgpOwotCWVsc2UKLQkJb21hcDJfc3JhbV9pbml0KCk7CisJZWxzZSBpZiAoY3B1X2lzX29tYXAyNDJ4KCkpCisJCW9tYXAyNDJ4X3NyYW1faW5pdCgpOworCWVsc2UgaWYgKGNwdV9pc19vbWFwMjQzMCgpKQorCQlvbWFwMjQzeF9zcmFtX2luaXQoKTsKKwllbHNlIGlmIChjcHVfaXNfb21hcDM0eHgoKSkKKwkJb21hcDM0eHhfc3JhbV9pbml0KCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtb21hcC91c2IuYyBiL2FyY2gvYXJtL3BsYXQtb21hcC91c2IuYwppbmRleCBhNjE5NDc1Li4yNjk5YzE2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9tYXAvdXNiLmMKKysrIGIvYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jCkBAIC0xLDQgKzEsNCBAQAotLyoKKyAvKgogICogYXJjaC9hcm0vcGxhdC1vbWFwL3VzYi5jIC0tIHBsYXRmb3JtIGxldmVsIFVTQiBpbml0aWFsaXphdGlvbgogICoKICAqIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cywgSW5jLgpAQCAtMTU2LDggKzE1NiwxMiBAQAogCiAJaWYgKG53aXJlcyA9PSAwKSB7CiAJCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJCXUzMiBsOworCiAJCQkvKiBwdWxsZG93biBEKy9ELSAqLwotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH4oMyA8PCAxKTsKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgJj0gfigzIDw8IDEpOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCQl9CiAJCXJldHVybiAwOwogCX0KQEAgLTE3MSw2ICsxNzUsOCBAQAogCiAJLyogaW50ZXJuYWwgdHJhbnNjZWl2ZXIgKHVuYXZhaWxhYmxlIG9uIDE3eHgsIDI0eHgpICovCiAJaWYgKCFjcHVfY2xhc3NfaXNfb21hcDIoKSAmJiBud2lyZXMgPT0gMikgeworCQl1MzIgbDsKKwogCQkvLyBvbWFwX2NmZ19yZWcoUDlfVVNCX0RQKTsKIAkJLy8gb21hcF9jZmdfcmVnKFI4X1VTQl9ETSk7CiAKQEAgLTE4NSw5ICsxOTEsMTEgQEAKIAkJICogIC0gT1RHIHN1cHBvcnQgb24gdGhpcyBwb3J0IG5vdCB5ZXQgd3JpdHRlbgogCQkgKi8KIAotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfig3IDw8IDQpOworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfig3IDw8IDQpOwogCQlpZiAoIWlzX2RldmljZSkKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSAoMyA8PCAxKTsKKwkJCWwgfD0gKDMgPDwgMSk7CisJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAogCQlyZXR1cm4gMyA8PCAxNjsKIAl9CkBAIC0yMTcsOCArMjI1LDEzIEBACiAJICogd2l0aCBWQlVTIHN3aXRjaGluZyBhbmQgb3ZlcmN1cnJlbnQgZGV0ZWN0aW9uLgogCSAqLwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmIG53aXJlcyAhPSA2KQotCQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwlpZiAoY3B1X2NsYXNzX2lzX29tYXAxKCkgJiYgbndpcmVzICE9IDYpIHsKKwkJdTMyIGw7CisKKwkJbCA9IG9tYXBfcmVhZGwoVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCQlsICY9IH5DT05GX1VTQjJfVU5JX1I7CisJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwl9CiAKIAlzd2l0Y2ggKG53aXJlcykgewogCWNhc2UgMzoKQEAgLTIzOCw5ICsyNTEsMTMgQEAKIAkJCW9tYXBfY2ZnX3JlZyhLMjBfMjRYWF9VU0IwX1ZNKTsKIAkJCW9tYXAyX3VzYl9kZXZjb25mX3NldCgwLCBVU0JfVU5JRElSKTsKIAkJfSBlbHNlIHsKKwkJCXUzMiBsOworCiAJCQlvbWFwX2NmZ19yZWcoQUE5X1VTQjBfVlApOwogCQkJb21hcF9jZmdfcmVnKFI5X1VTQjBfVk0pOwotCQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHIHw9IENPTkZfVVNCMl9VTklfUjsKKwkJCWwgPSBvbWFwX3JlYWRsKFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJCWwgfD0gQ09ORl9VU0IyX1VOSV9SOworCQkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOwogCQl9CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0yNTQsOCArMjcxLDEzIEBACiB7CiAJdTMyCXN5c2NvbjEgPSAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikKLQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH5DT05GX1VTQjFfVU5JX1I7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfkNPTkZfVVNCMV9VTklfUjsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCX0KIAlpZiAoY3B1X2lzX29tYXAyNHh4KCkpCiAJCW9tYXAyX3VzYl9kZXZjb25mX2NsZWFyKDEsIFVTQl9CSURJUl9UTEwpOwogCkBAIC0zMTYsOCArMzM4LDEzIEBACiAJCXN5c2NvbjEgPSAzOwogCQlvbWFwX2NmZ19yZWcoVVNCMV9WUCk7CiAJCW9tYXBfY2ZnX3JlZyhVU0IxX1ZNKTsKLQkJaWYgKCFjcHVfaXNfb21hcDE1eHgoKSkKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSBDT05GX1VTQjFfVU5JX1I7CisJCWlmICghY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJCXUzMiBsOworCisJCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCQlsIHw9IENPTkZfVVNCMV9VTklfUjsKKwkJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKKwkJfQogCQlicmVhazsKIAlkZWZhdWx0OgogYmFkOgpAQCAtMzQwLDggKzM2NywxMyBAQAogCWlmIChhbHRfcGluZ3JvdXAgfHwgbndpcmVzID09IDApCiAJCXJldHVybiAwOwogCi0JaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikKLQkJVVNCX1RSQU5TQ0VJVkVSX0NUUkxfUkVHICY9IH5DT05GX1VTQjJfVU5JX1I7CisJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSAmJiBud2lyZXMgIT0gNikgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCWwgJj0gfkNPTkZfVVNCMl9VTklfUjsKKwkJb21hcF93cml0ZWwobCwgVVNCX1RSQU5TQ0VJVkVSX0NUUkwpOworCX0KIAogCS8qIGV4dGVybmFsIHRyYW5zY2VpdmVyICovCiAJaWYgKGNwdV9pc19vbWFwMTV4eCgpKSB7CkBAIC00MTAsOSArNDQyLDEzIEBACiAJCQlvbWFwX2NmZ19yZWcoVVNCMl9WUCk7CiAJCQlvbWFwX2NmZ19yZWcoVVNCMl9WTSk7CiAJCX0gZWxzZSB7CisJCQl1MzIgbDsKKwogCQkJb21hcF9jZmdfcmVnKEFBOV9VU0IyX1ZQKTsKIAkJCW9tYXBfY2ZnX3JlZyhSOV9VU0IyX1ZNKTsKLQkJCVVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyB8PSBDT05GX1VTQjJfVU5JX1I7CisJCQlsID0gb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCk7CisJCQlsIHw9IENPTkZfVVNCMl9VTklfUjsKKwkJCW9tYXBfd3JpdGVsKGwsIFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAkJfQogCQlicmVhazsKIAlkZWZhdWx0OgpAQCAtNTMxLDEwICs1NjcsNiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jZGVmaW5lIFVMUERfQ0xPQ0tfQ1RSTF9SRUcJX19SRUcxNihVTFBEX0NMT0NLX0NUUkwpCi0jZGVmaW5lIFVMUERfU09GVF9SRVFfUkVHCV9fUkVHMTYoVUxQRF9TT0ZUX1JFUSkKLQotCiAvLyBGSVhNRSBjb3JyZWN0IGFuc3dlciBkZXBlbmRzIG9uIGhtY19tb2RlLAogLy8gYXMgZG9lcyAob24gb21hcDEpIGFueSBub256ZXJvIHZhbHVlIGZvciBjb25maWctPm90ZyBwb3J0IG51bWJlcgogI2lmZGVmCUNPTkZJR19VU0JfR0FER0VUX09NQVAKQEAgLTU1MCwxNyArNTgyLDE3IEBACiB2b2lkIF9faW5pdAogb21hcF9vdGdfaW5pdChzdHJ1Y3Qgb21hcF91c2JfY29uZmlnICpjb25maWcpCiB7Ci0JdTMyCQlzeXNjb24gPSBPVEdfU1lTQ09OXzFfUkVHICYgMHhmZmZmOworCXUzMgkJc3lzY29uOwogCWludAkJc3RhdHVzOwogCWludAkJYWx0X3Bpbmdyb3VwID0gMDsKIAogCS8qIE5PVEU6ICBubyBidXMgb3IgY2xvY2sgc2V0dXAgKHlldD8pICovCiAKLQlzeXNjb24gPSBPVEdfU1lTQ09OXzFfUkVHICYgMHhmZmZmOworCXN5c2NvbiA9IG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8xKSAmIDB4ZmZmZjsKIAlpZiAoIShzeXNjb24gJiBPVEdfUkVTRVRfRE9ORSkpCiAJCXByX2RlYnVnKCJVU0IgcmVzZXRzIG5vdCBjb21wbGV0ZT9cbiIpOwogCi0JLy8gT1RHX0lSUV9FTl9SRUcgPSAwOworCS8vb21hcF93cml0ZXcoMCwgT1RHX0lSUV9FTik7CiAKIAkvKiBwaW4gbXV4aW5nIGFuZCB0cmFuc2NlaXZlciBwaW5vdXRzICovCiAJaWYgKGNvbmZpZy0+cGluc1swXSA+IDIpCS8qIGFsdCBwaW5ncm91cCAyICovCkBAIC01NjgsOCArNjAwLDggQEAKIAlzeXNjb24gfD0gb21hcF91c2IwX2luaXQoY29uZmlnLT5waW5zWzBdLCBpc191c2IwX2RldmljZShjb25maWcpKTsKIAlzeXNjb24gfD0gb21hcF91c2IxX2luaXQoY29uZmlnLT5waW5zWzFdKTsKIAlzeXNjb24gfD0gb21hcF91c2IyX2luaXQoY29uZmlnLT5waW5zWzJdLCBhbHRfcGluZ3JvdXApOwotCXByX2RlYnVnKCJPVEdfU1lTQ09OXzFfUkVHID0gJTA4eFxuIiwgc3lzY29uKTsKLQlPVEdfU1lTQ09OXzFfUkVHID0gc3lzY29uOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzEgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMSkpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8xKTsKIAogCXN5c2NvbiA9IGNvbmZpZy0+aG1jX21vZGU7CiAJc3lzY29uIHw9IFVTQlhfU1lOQ0hSTyB8ICg0IDw8IDE2KSAvKiBCX0FTRTBfQlJTVCAqLzsKQEAgLTU3OCw5ICs2MTAsMTAgQEAKIAkJc3lzY29uIHw9IE9UR19FTjsKICNlbmRpZgogCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkKLQkJcHJfZGVidWcoIlVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyA9ICUwM3hcbiIsIFVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRyk7Ci0JcHJfZGVidWcoIk9UR19TWVNDT05fMl9SRUcgPSAlMDh4XG4iLCBzeXNjb24pOwotCU9UR19TWVNDT05fMl9SRUcgPSBzeXNjb247CisJCXByX2RlYnVnKCJVU0JfVFJBTlNDRUlWRVJfQ1RSTCA9ICUwM3hcbiIsCisJCQkgb21hcF9yZWFkbChVU0JfVFJBTlNDRUlWRVJfQ1RSTCkpOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzIgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMikpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8yKTsKIAogCXByaW50aygiVVNCOiBobWMgJWQiLCBjb25maWctPmhtY19tb2RlKTsKIAlpZiAoIWFsdF9waW5ncm91cCkKQEAgLTU5NywxMiArNjMwLDE5IEBACiAJcHJpbnRrKCJcbiIpOwogCiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CisJCXUxNiB3OworCiAJCS8qIGxlYXZlIFVTQiBjbG9ja3MvY29udHJvbGxlcnMgb2ZmIHVudGlsIG5lZWRlZCAqLwotCQlVTFBEX1NPRlRfUkVRX1JFRyAmPSB+U09GVF9VU0JfQ0xLX1JFUTsKLQkJVUxQRF9DTE9DS19DVFJMX1JFRyAmPSB+VVNCX01DTEtfRU47Ci0JCVVMUERfQ0xPQ0tfQ1RSTF9SRUcgfD0gRElTX1VTQl9QVkNJX0NMSzsKKwkJdyA9IG9tYXBfcmVhZHcoVUxQRF9TT0ZUX1JFUSk7CisJCXcgJj0gflNPRlRfVVNCX0NMS19SRVE7CisJCW9tYXBfd3JpdGV3KHcsIFVMUERfU09GVF9SRVEpOworCisJCXcgPSBvbWFwX3JlYWR3KFVMUERfQ0xPQ0tfQ1RSTCk7CisJCXcgJj0gflVTQl9NQ0xLX0VOOworCQl3IHw9IERJU19VU0JfUFZDSV9DTEs7CisJCW9tYXBfd3JpdGV3KHcsIFVMUERfQ0xPQ0tfQ1RSTCk7CiAJfQotCXN5c2NvbiA9IE9UR19TWVNDT05fMV9SRUc7CisJc3lzY29uID0gb21hcF9yZWFkbChPVEdfU1lTQ09OXzEpOwogCXN5c2NvbiB8PSBIU1RfSURMRV9FTnxERVZfSURMRV9FTnxPVEdfSURMRV9FTjsKIAogI2lmZGVmCUNPTkZJR19VU0JfR0FER0VUX09NQVAKQEAgLTYzOSw4ICs2NzksOCBAQAogCQkJcHJfZGVidWcoImNhbid0IHJlZ2lzdGVyIE9URyBkZXZpY2UsICVkXG4iLCBzdGF0dXMpOwogCX0KICNlbmRpZgotCXByX2RlYnVnKCJPVEdfU1lTQ09OXzFfUkVHID0gJTA4eFxuIiwgc3lzY29uKTsKLQlPVEdfU1lTQ09OXzFfUkVHID0gc3lzY29uOworCXByX2RlYnVnKCJPVEdfU1lTQ09OXzEgPSAlMDh4XG4iLCBvbWFwX3JlYWRsKE9UR19TWVNDT05fMSkpOworCW9tYXBfd3JpdGVsKHN5c2NvbiwgT1RHX1NZU0NPTl8xKTsKIAogCXN0YXR1cyA9IDA7CiB9CkBAIC02NTMsMTggKzY5MywxOSBAQAogCiAjaWZkZWYJQ09ORklHX0FSQ0hfT01BUDE1WFgKIAotI2RlZmluZSBVTFBEX0RQTExfQ1RSTF9SRUcJX19SRUcxNihVTFBEX0RQTExfQ1RSTCkKKy8qIFVMUERfRFBMTF9DVFJMICovCiAjZGVmaW5lIERQTExfSU9CCQkoMSA8PCAxMykKICNkZWZpbmUgRFBMTF9QTExfRU5BQkxFCQkoMSA8PCA0KQogI2RlZmluZSBEUExMX0xPQ0sJCSgxIDw8IDApCiAKLSNkZWZpbmUgVUxQRF9BUExMX0NUUkxfUkVHCV9fUkVHMTYoVUxQRF9BUExMX0NUUkwpCisvKiBVTFBEX0FQTExfQ1RSTCAqLwogI2RlZmluZSBBUExMX05EUExMX1NXSVRDSAkoMSA8PCAwKQogCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBvbWFwXzE1MTBfdXNiX2luaXQoc3RydWN0IG9tYXBfdXNiX2NvbmZpZyAqY29uZmlnKQogewogCXVuc2lnbmVkIGludCB2YWw7CisJdTE2IHc7CiAKIAlvbWFwX3VzYjBfaW5pdChjb25maWctPnBpbnNbMF0sIGlzX3VzYjBfZGV2aWNlKGNvbmZpZykpOwogCW9tYXBfdXNiMV9pbml0KGNvbmZpZy0+cGluc1sxXSk7CkBAIC02ODUsMTIgKzcyNiwyMiBAQAogCXByaW50aygiXG4iKTsKIAogCS8qIHVzZSBEUExMIGZvciA0OCBNSHogZnVuY3Rpb24gY2xvY2sgKi8KLQlwcl9kZWJ1ZygiQVBMTCAlMDR4IERQTEwgJTA0eCBSRVEgJTA0eFxuIiwgVUxQRF9BUExMX0NUUkxfUkVHLAotCQkJVUxQRF9EUExMX0NUUkxfUkVHLCBVTFBEX1NPRlRfUkVRX1JFRyk7Ci0JVUxQRF9BUExMX0NUUkxfUkVHICY9IH5BUExMX05EUExMX1NXSVRDSDsKLQlVTFBEX0RQTExfQ1RSTF9SRUcgfD0gRFBMTF9JT0IgfCBEUExMX1BMTF9FTkFCTEU7Ci0JVUxQRF9TT0ZUX1JFUV9SRUcgfD0gU09GVF9VRENfUkVRIHwgU09GVF9EUExMX1JFUTsKLQl3aGlsZSAoIShVTFBEX0RQTExfQ1RSTF9SRUcgJiBEUExMX0xPQ0spKQorCXByX2RlYnVnKCJBUExMICUwNHggRFBMTCAlMDR4IFJFUSAlMDR4XG4iLCBvbWFwX3JlYWR3KFVMUERfQVBMTF9DVFJMKSwKKwkJCW9tYXBfcmVhZHcoVUxQRF9EUExMX0NUUkwpLCBvbWFwX3JlYWR3KFVMUERfU09GVF9SRVEpKTsKKworCXcgPSBvbWFwX3JlYWR3KFVMUERfQVBMTF9DVFJMKTsKKwl3ICY9IH5BUExMX05EUExMX1NXSVRDSDsKKwlvbWFwX3dyaXRldyh3LCBVTFBEX0FQTExfQ1RSTCk7CisKKwl3ID0gb21hcF9yZWFkdyhVTFBEX0RQTExfQ1RSTCk7CisJdyB8PSBEUExMX0lPQiB8IERQTExfUExMX0VOQUJMRTsKKwlvbWFwX3dyaXRldyh3LCBVTFBEX0RQTExfQ1RSTCk7CisKKwl3ID0gb21hcF9yZWFkdyhVTFBEX1NPRlRfUkVRKTsKKwl3IHw9IFNPRlRfVURDX1JFUSB8IFNPRlRfRFBMTF9SRVE7CisJb21hcF93cml0ZXcodywgVUxQRF9TT0ZUX1JFUSk7CisKKwl3aGlsZSAoIShvbWFwX3JlYWR3KFVMUERfRFBMTF9DVFJMKSAmIERQTExfTE9DSykpCiAJCWNwdV9yZWxheCgpOwogCiAjaWZkZWYJQ09ORklHX1VTQl9HQURHRVRfT01BUApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9pcnEuYyBiL2FyY2gvYXJtL3BsYXQtb3Jpb24vaXJxLmMKaW5kZXggYzViNjY5ZC4uZmU2NmExOCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9pcnEuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL2lycS5jCkBAIC0zNiw4ICszNiw4IEBACiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgb3Jpb25faXJxX2NoaXAgPSB7CiAJLm5hbWUJCT0gIm9yaW9uX2lycSIsCi0JLmFjawkJPSBvcmlvbl9pcnFfbWFzaywKIAkubWFzawkJPSBvcmlvbl9pcnFfbWFzaywKKwkubWFza19hY2sJPSBvcmlvbl9pcnFfbWFzaywKIAkudW5tYXNrCQk9IG9yaW9uX2lycV91bm1hc2ssCiB9OwogCkBAIC01OSw2ICs1OSw3IEBACiAJCXNldF9pcnFfY2hpcChpcnEsICZvcmlvbl9pcnFfY2hpcCk7CiAJCXNldF9pcnFfY2hpcF9kYXRhKGlycSwgbWFza2FkZHIpOwogCQlzZXRfaXJxX2hhbmRsZXIoaXJxLCBoYW5kbGVfbGV2ZWxfaXJxKTsKKwkJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgfD0gSVJRX0xFVkVMOwogCQlzZXRfaXJxX2ZsYWdzKGlycSwgSVJRRl9WQUxJRCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi9wY2llLmMgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYwppbmRleCBhYmZkYTUzLi5jYTMyYzYwIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3BjaWUuYwpAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBQQ0lFX0NPTkZfREFUQV9PRkYJMHgxOGZjCiAjZGVmaW5lIFBDSUVfTUFTS19PRkYJCTB4MTkxMAogI2RlZmluZSBQQ0lFX0NUUkxfT0ZGCQkweDFhMDAKKyNkZWZpbmUgIFBDSUVfQ1RSTF9YMV9NT0RFCQkweDAwMDEKICNkZWZpbmUgUENJRV9TVEFUX09GRgkJMHgxYTA0CiAjZGVmaW5lICBQQ0lFX1NUQVRfREVWX09GRlMJCTIwCiAjZGVmaW5lICBQQ0lFX1NUQVRfREVWX01BU0sJCTB4MWYKQEAgLTYyLDYgKzYzLDExIEBACiAJcmV0dXJuICEocmVhZGwoYmFzZSArIFBDSUVfU1RBVF9PRkYpICYgUENJRV9TVEFUX0xJTktfRE9XTik7CiB9CiAKK2ludCBfX2luaXQgb3Jpb25fcGNpZV94NF9tb2RlKHZvaWQgX19pb21lbSAqYmFzZSkKK3sKKwlyZXR1cm4gIShyZWFkbChiYXNlICsgUENJRV9DVFJMX09GRikgJiBQQ0lFX0NUUkxfWDFfTU9ERSk7Cit9CisKIGludCBvcmlvbl9wY2llX2dldF9sb2NhbF9idXNfbnIodm9pZCBfX2lvbWVtICpiYXNlKQogewogCXUzMiBzdGF0ID0gcmVhZGwoYmFzZSArIFBDSUVfU1RBVF9PRkYpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1vcmlvbi90aW1lLmMgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYwppbmRleCAyOGI1Mjg1Li45M2M0ZWY5IDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYworKysgYi9hcmNoL2FybS9wbGF0LW9yaW9uL3RpbWUuYwpAQCAtNzQsNyArNzQsNyBAQAogCS8qCiAJICogQ2xlYXIgYW5kIGVuYWJsZSBjbG9ja2V2ZW50IHRpbWVyIGludGVycnVwdC4KIAkgKi8KLQl3cml0ZWwofkJSSURHRV9JTlRfVElNRVIxLCBCUklER0VfQ0FVU0UpOworCXdyaXRlbChCUklER0VfSU5UX1RJTUVSMV9DTFIsIEJSSURHRV9DQVVTRSk7CiAKIAl1ID0gcmVhZGwoQlJJREdFX01BU0spOwogCXUgfD0gQlJJREdFX0lOVF9USU1FUjE7CkBAIC0xMzgsNyArMTM4LDcgQEAKIAkJLyoKIAkJICogQUNLIHBlbmRpbmcgdGltZXIgaW50ZXJydXB0LgogCQkgKi8KLQkJd3JpdGVsKH5CUklER0VfSU5UX1RJTUVSMSwgQlJJREdFX0NBVVNFKTsKKwkJd3JpdGVsKEJSSURHRV9JTlRfVElNRVIxX0NMUiwgQlJJREdFX0NBVVNFKTsKIAogCX0KIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CkBAIC0xNTksNyArMTU5LDcgQEAKIAkvKgogCSAqIEFDSyB0aW1lciBpbnRlcnJ1cHQgYW5kIGNhbGwgZXZlbnQgaGFuZGxlci4KIAkgKi8KLQl3cml0ZWwofkJSSURHRV9JTlRfVElNRVIxLCBCUklER0VfQ0FVU0UpOworCXdyaXRlbChCUklER0VfSU5UX1RJTUVSMV9DTFIsIEJSSURHRV9DQVVTRSk7CiAJb3Jpb25fY2xrZXZ0LmV2ZW50X2hhbmRsZXIoJm9yaW9uX2Nsa2V2dCk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvS2NvbmZpZyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCmluZGV4IGI2NmZiM2MuLjVlMjhjMjEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCisrKyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9LY29uZmlnCkBAIC05LDYgKzksNyBAQAogCWRlcGVuZHMgb24gQVJDSF9TM0MyNDEwCiAJZGVmYXVsdCB5IGlmIEFSQ0hfUzNDMjQxMAogCXNlbGVjdCBOT19JT1BPUlQKKwlzZWxlY3QgSEFWRV9HUElPX0xJQgogCWhlbHAKIAkgIEJhc2UgcGxhdGZvcm0gY29kZSBmb3IgYW55IFNhbXN1bmcgUzNDMjRYWCBkZXZpY2UKIApAQCAtMjAsNiArMjEsMTMgQEAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBTM0MyNDQwIGFuZCBTM0MyNDQyIFNhbXN1bmcgTW9iaWxlIENQVSBiYXNlZCBzeXN0ZW1zLgogCitjb25maWcgUzNDMjRYWF9QV00KKwlib29sICJQV00gZGV2aWNlIHN1cHBvcnQiCisJc2VsZWN0IEhBVkVfUFdNCisJaGVscAorCSAgU3VwcG9ydCBmb3IgZXhwb3J0aW5nIHRoZSBQV00gdGltZXIgYmxvY2tzIHZpYSB0aGUgcHdtIGRldmljZQorCSAgc3lzdGVtLgorCiBjb25maWcgUE1fU0lNVEVDCiAJYm9vbAogCWhlbHAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9NYWtlZmlsZSBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9NYWtlZmlsZQppbmRleCAxMzFkMjAyLi5kODI3NjdiIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L01ha2VmaWxlCkBAIC0xNiw4ICsxNiwxMCBAQAogb2JqLXkJCQkJKz0gaXJxLm8KIG9iai15CQkJCSs9IGRldnMubwogb2JqLXkJCQkJKz0gZ3Bpby5vCitvYmoteQkJCQkrPSBncGlvbGliLm8KIG9iai15CQkJCSs9IHRpbWUubwogb2JqLXkJCQkJKz0gY2xvY2subworb2JqLXkJCQkJKz0gcHdtLWNsb2NrLm8KIAogIyBBcmNoaXRlY3R1cmUgZGVwZW5kYW50IGJ1aWxkcwogCkBAIC0yNyw1ICsyOSw2IEBACiBvYmotJChDT05GSUdfUE1fU0lNVEVDKQkJKz0gcG0tc2ltdGVjLm8KIG9iai0kKENPTkZJR19QTSkJCSs9IHBtLm8KIG9iai0kKENPTkZJR19QTSkJCSs9IHNsZWVwLm8KK29iai0kKENPTkZJR19IQVZFX1BXTSkJCSs9IHB3bS5vCiBvYmotJChDT05GSUdfUzNDMjQxMF9ETUEpCSs9IGRtYS5vCiBvYmotJChDT05GSUdfTUFDSF9TTURLKQkJKz0gY29tbW9uLXNtZGsubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2RldnMuYyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9kZXZzLmMKaW5kZXggZTU0NmU5My4uZWVhM2IzMiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2RldnMuYworKysgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZGV2cy5jCkBAIC00OTUsMTA2ICs0OTUsNiBAQAogCiBFWFBPUlRfU1lNQk9MKHMzY19kZXZpY2Vfc3BpMSk7CiAKLS8qIHB3bSB0aW1lciBibG9ja3MgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzM2NfdGltZXIwX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgwQywKLQkJLmVuZCAgID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MEMgKyAweEIsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBJUlFfVElNRVIwLAotCQkuZW5kICAgPSBJUlFfVElNRVIwLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci0KLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjAgPSB7Ci0JLm5hbWUJCSAgPSAiczNjMjQxMC10aW1lciIsCi0JLmlkCQkgID0gMCwKLQkubnVtX3Jlc291cmNlcwkgID0gQVJSQVlfU0laRShzM2NfdGltZXIwX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJICA9IHMzY190aW1lcjBfcmVzb3VyY2UsCi19OwotCi1FWFBPUlRfU1lNQk9MKHMzY19kZXZpY2VfdGltZXIwKTsKLQotLyogdGltZXIgMSAqLwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHMzY190aW1lcjFfcmVzb3VyY2VbXSA9IHsKLQlbMF0gPSB7Ci0JCS5zdGFydCA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDE4LAotCQkuZW5kICAgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgyMywKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0sCi0JfSwKLQlbMV0gPSB7Ci0JCS5zdGFydCA9IElSUV9USU1FUjEsCi0JCS5lbmQgICA9IElSUV9USU1FUjEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfSVJRLAotCX0KLQotfTsKLQotc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMSA9IHsKLQkubmFtZQkJICA9ICJzM2MyNDEwLXRpbWVyIiwKLQkuaWQJCSAgPSAxLAotCS5udW1fcmVzb3VyY2VzCSAgPSBBUlJBWV9TSVpFKHMzY190aW1lcjFfcmVzb3VyY2UpLAotCS5yZXNvdXJjZQkgID0gczNjX3RpbWVyMV9yZXNvdXJjZSwKLX07Ci0KLUVYUE9SVF9TWU1CT0woczNjX2RldmljZV90aW1lcjEpOwotCi0vKiB0aW1lciAyICovCi0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgczNjX3RpbWVyMl9yZXNvdXJjZVtdID0gewotCVswXSA9IHsKLQkJLnN0YXJ0ID0gUzNDMjRYWF9QQV9USU1FUiArIDB4MjQsCi0JCS5lbmQgICA9IFMzQzI0WFhfUEFfVElNRVIgKyAweDJGLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSwKLQl9LAotCVsxXSA9IHsKLQkJLnN0YXJ0ID0gSVJRX1RJTUVSMiwKLQkJLmVuZCAgID0gSVJRX1RJTUVSMiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEsCi0JfQotCi19OwotCi1zdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIyID0gewotCS5uYW1lCQkgID0gInMzYzI0MTAtdGltZXIiLAotCS5pZAkJICA9IDIsCi0JLm51bV9yZXNvdXJjZXMJICA9IEFSUkFZX1NJWkUoczNjX3RpbWVyMl9yZXNvdXJjZSksCi0JLnJlc291cmNlCSAgPSBzM2NfdGltZXIyX3Jlc291cmNlLAotfTsKLQotRVhQT1JUX1NZTUJPTChzM2NfZGV2aWNlX3RpbWVyMik7Ci0KLS8qIHRpbWVyIDMgKi8KLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzM2NfdGltZXIzX3Jlc291cmNlW10gPSB7Ci0JWzBdID0gewotCQkuc3RhcnQgPSBTM0MyNFhYX1BBX1RJTUVSICsgMHgzMCwKLQkJLmVuZCAgID0gUzNDMjRYWF9QQV9USU1FUiArIDB4M0IsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNLAotCX0sCi0JWzFdID0gewotCQkuc3RhcnQgPSBJUlFfVElNRVIzLAotCQkuZW5kICAgPSBJUlFfVElNRVIzLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0lSUSwKLQl9Ci0KLX07Ci0KLXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjMgPSB7Ci0JLm5hbWUJCSAgPSAiczNjMjQxMC10aW1lciIsCi0JLmlkCQkgID0gMywKLQkubnVtX3Jlc291cmNlcwkgID0gQVJSQVlfU0laRShzM2NfdGltZXIzX3Jlc291cmNlKSwKLQkucmVzb3VyY2UJICA9IHMzY190aW1lcjNfcmVzb3VyY2UsCi19OwotCi1FWFBPUlRfU1lNQk9MKHMzY19kZXZpY2VfdGltZXIzKTsKLQogI2lmZGVmIENPTkZJR19DUFVfUzNDMjQ0MAogCiAvKiBDYW1pZiBDb250cm9sbGVyICovCmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvZ3Bpb2xpYi5jIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjVkOGQwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYwpAQCAtMCwwICsxLDI1OSBAQAorLyogbGludXgvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L2dwaW9saWIuYworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKglCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+CisgKgorICogUzNDMjRYWCBHUElPbGliIHN1cHBvcnQKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvZ3Bpby5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKK3N0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCB7CisJc3RydWN0IGdwaW9fY2hpcAljaGlwOworCXZvaWQgX19pb21lbQkJKmJhc2U7Cit9OworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqdG9fczNjX2NoaXAoc3RydWN0IGdwaW9fY2hpcCAqZ3BjKQoreworCXJldHVybiBjb250YWluZXJfb2YoZ3BjLCBzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAsIGNoaXApOworfQorCisvKiB0aGVzZSByb3V0aW5lcyBhcmUgZXhwb3J0ZWQgZm9yIHVzZSBieSBvdGhlciBwYXJ0cyBvZiB0aGUgcGxhdGZvcm0KKyAqIGFuZCBzeXN0ZW0gc3VwcG9ydCwgYnV0IGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBieSB0aGUKKyAqIGRyaXZlcnMgdGhlbXNldmxlcy4KKyAqLworCitpbnQgczNjMjR4eF9ncGlvbGliX2lucHV0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2UgPSBvdXJjaGlwLT5iYXNlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBjb247CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJY29uICY9IH4oMyA8PCAob2Zmc2V0ICogMikpOworCWNvbiB8PSAoUzNDMjQxMF9HUElPX09VVFBVVCAmIDB4ZikgPDwgKG9mZnNldCAqIDIpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCXJldHVybiAwOworfQorCitpbnQgczNjMjR4eF9ncGlvbGliX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCSAgdW5zaWduZWQgb2Zmc2V0LCBpbnQgdmFsdWUpCit7CisJc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICpvdXJjaGlwID0gdG9fczNjX2NoaXAoY2hpcCk7CisJdm9pZCBfX2lvbWVtICpiYXNlID0gb3VyY2hpcC0+YmFzZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgZGF0OworCXVuc2lnbmVkIGxvbmcgY29uOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJZGF0ID0gX19yYXdfcmVhZGwoYmFzZSArIDB4MDQpOworCWRhdCAmPSB+KDEgPDwgb2Zmc2V0KTsKKwlpZiAodmFsdWUpCisJCWRhdCB8PSAxIDw8IG9mZnNldDsKKwlfX3Jhd193cml0ZWwoZGF0LCBiYXNlICsgMHgwNCk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJY29uICY9IH4oMyA8PCAob2Zmc2V0ICogMikpOworCWNvbiB8PSAoUzNDMjQxMF9HUElPX09VVFBVVCAmIDB4ZikgPDwgKG9mZnNldCAqIDIpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCV9fcmF3X3dyaXRlbChkYXQsIGJhc2UgKyAweDA0KTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKwordm9pZCBzM2MyNHh4X2dwaW9saWJfc2V0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAsIHVuc2lnbmVkIG9mZnNldCwgaW50IHZhbHVlKQoreworCXN0cnVjdCBzM2MyNHh4X2dwaW9fY2hpcCAqb3VyY2hpcCA9IHRvX3MzY19jaGlwKGNoaXApOworCXZvaWQgX19pb21lbSAqYmFzZSA9IG91cmNoaXAtPmJhc2U7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIGRhdDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCWRhdCA9IF9fcmF3X3JlYWRsKGJhc2UgKyAweDA0KTsKKwlkYXQgJj0gfigxIDw8IG9mZnNldCk7CisJaWYgKHZhbHVlKQorCQlkYXQgfD0gMSA8PCBvZmZzZXQ7CisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitpbnQgczNjMjR4eF9ncGlvbGliX2dldChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJc3RydWN0IHMzYzI0eHhfZ3Bpb19jaGlwICpvdXJjaGlwID0gdG9fczNjX2NoaXAoY2hpcCk7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwl2YWwgPSBfX3Jhd19yZWFkbChvdXJjaGlwLT5iYXNlICsgMHgwNCk7CisJdmFsID4+PSBvZmZzZXQ7CisJdmFsICY9IDE7CisKKwlyZXR1cm4gdmFsOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfZ3Bpb2xpYl9iYW5rYV9pbnB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLCB1bnNpZ25lZCBvZmZzZXQpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9ncGlvbGliX2JhbmthX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpjaGlwLAorCQkJCQl1bnNpZ25lZCBvZmZzZXQsIGludCB2YWx1ZSkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKm91cmNoaXAgPSB0b19zM2NfY2hpcChjaGlwKTsKKwl2b2lkIF9faW9tZW0gKmJhc2UgPSBvdXJjaGlwLT5iYXNlOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBkYXQ7CisJdW5zaWduZWQgbG9uZyBjb247CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwljb24gPSBfX3Jhd19yZWFkbChiYXNlICsgMHgwMCk7CisJZGF0ID0gX19yYXdfcmVhZGwoYmFzZSArIDB4MDQpOworCisJZGF0ICY9IH4oMSA8PCBvZmZzZXQpOworCWlmICh2YWx1ZSkKKwkJZGF0IHw9IDEgPDwgb2Zmc2V0OworCisJX19yYXdfd3JpdGVsKGRhdCwgYmFzZSArIDB4MDQpOworCisJY29uICY9IH4oMSA8PCBvZmZzZXQpOworCisJX19yYXdfd3JpdGVsKGNvbiwgYmFzZSArIDB4MDApOworCV9fcmF3X3dyaXRlbChkYXQsIGJhc2UgKyAweDA0KTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworCitzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgZ3Bpb3NbXSA9IHsKKwlbMF0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEEwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEEwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9BIiwKKwkJCS5uZ3BpbwkJCT0gMjQsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2JhbmthX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfYmFua2Ffb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbMV0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEIwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEIwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9CIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbMl0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEMwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEMwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9DIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbM10gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEQwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEQwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9EIiwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbNF0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEUwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEUwLAorCQkJLmxhYmVsCQkJPSAiR1BJT0UiLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5uZ3BpbwkJCT0gMTYsCisJCQkuZGlyZWN0aW9uX2lucHV0CT0gczNjMjR4eF9ncGlvbGliX2lucHV0LAorCQkJLmRpcmVjdGlvbl9vdXRwdXQJPSBzM2MyNHh4X2dwaW9saWJfb3V0cHV0LAorCQkJLnNldAkJCT0gczNjMjR4eF9ncGlvbGliX3NldCwKKwkJCS5nZXQJCQk9IHMzYzI0eHhfZ3Bpb2xpYl9nZXQsCisJCX0sCisJfSwKKwlbNV0gPSB7CisJCS5iYXNlCT0gUzNDMjRYWF9HUElPX0JBU0UoUzNDMjQxMF9HUEYwKSwKKwkJLmNoaXAJPSB7CisJCQkuYmFzZQkJCT0gUzNDMjQxMF9HUEYwLAorCQkJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkJCS5sYWJlbAkJCT0gIkdQSU9GIiwKKwkJCS5uZ3BpbwkJCT0gOCwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorCVs2XSA9IHsKKwkJLmJhc2UJPSBTM0MyNFhYX0dQSU9fQkFTRShTM0MyNDEwX0dQRzApLAorCQkuY2hpcAk9IHsKKwkJCS5iYXNlCQkJPSBTM0MyNDEwX0dQRzAsCisJCQkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCQkJLmxhYmVsCQkJPSAiR1BJT0ciLAorCQkJLm5ncGlvCQkJPSAxMCwKKwkJCS5kaXJlY3Rpb25faW5wdXQJPSBzM2MyNHh4X2dwaW9saWJfaW5wdXQsCisJCQkuZGlyZWN0aW9uX291dHB1dAk9IHMzYzI0eHhfZ3Bpb2xpYl9vdXRwdXQsCisJCQkuc2V0CQkJPSBzM2MyNHh4X2dwaW9saWJfc2V0LAorCQkJLmdldAkJCT0gczNjMjR4eF9ncGlvbGliX2dldCwKKwkJfSwKKwl9LAorfTsKKworc3RhdGljIF9faW5pdCBpbnQgczNjMjR4eF9ncGlvbGliX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF9ncGlvX2NoaXAgKmNoaXAgPSBncGlvczsKKwlpbnQgZ3BuOworCisJZm9yIChncG4gPSAwOyBncG4gPCBBUlJBWV9TSVpFKGdwaW9zKTsgZ3BuKyssIGNoaXArKykKKwkJZ3Bpb2NoaXBfYWRkKCZjaGlwLT5jaGlwKTsKKworCXJldHVybiAwOworfQorCithcmNoX2luaXRjYWxsKHMzYzI0eHhfZ3Bpb2xpYl9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20tY2xvY2suYyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20tY2xvY2suYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2RhM2UzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS1jbG9jay5jCkBAIC0wLDAgKzEsNDM3IEBACisvKiBsaW51eC9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLWNsb2NrLmMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgU2ltdGVjIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggQmVuIERvb2tzCisgKglCZW4gRG9va3MgPGJlbi1saW51eEBmbHVmZi5vcmc+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjMjR4eC9jbG9jay5oPgorI2luY2x1ZGUgPGFzbS9wbGF0LXMzYzI0eHgvY3B1Lmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy10aW1lci5oPgorCisvKiBFYWNoIG9mIHRoZSB0aW1lcnMgMCB0aHJvdWdoIDUgZ28gdGhyb3VnaCB0aGUgZm9sbG93aW5nCisgKiBjbG9jayB0cmVlLCB3aXRoIHRoZSBpbnB1dHMgZGVwZW5kaW5nIG9uIHRoZSB0aW1lcnMuCisgKgorICogcGNsayAtLS0tIFsgcHJlc2NhbGVyIDAgXSAtKy0tLT4gdGltZXIgMAorICoJCQkgICAgICArLS0tPiB0aW1lciAxCisgKgorICogcGNsayAtLS0tIFsgcHJlc2NhbGVyIDEgXSAtKy0tLT4gdGltZXIgMgorICoJCQkgICAgICArLS0tPiB0aW1lciAzCisgKgkJCSAgICAgIFwtLS0+IHRpbWVyIDQKKyAqCisgKiBXaGljaCBhcmUgZmVkIGludG8gdGhlIHRpbWVycyBhcyBzbzoKKyAqCisgKiBwcmVzY2FsZWQgMCAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDAKKyAqIHRjbGsgMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICogcHJlc2NhbGVkIDAgLS0tLSBbIGRpdiAyLDQsOCwxNiBdIC0tLVwKKyAqCQkJCSAgICAgICBbbXV4XSAtPiB0aW1lciAxCisgKiB0Y2xrIDAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworICoKKyAqCisgKiBwcmVzY2FsZWQgMSAtLS0tIFsgZGl2IDIsNCw4LDE2IF0gLS0tXAorICoJCQkJICAgICAgIFttdXhdIC0+IHRpbWVyIDIKKyAqIHRjbGsgMSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0vCisgKgorICogcHJlc2NhbGVkIDEgLS0tLSBbIGRpdiAyLDQsOCwxNiBdIC0tLVwKKyAqCQkJCSAgICAgICBbbXV4XSAtPiB0aW1lciAzCisgKiB0Y2xrIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworICoKKyAqIHByZXNjYWxlZCAxIC0tLS0gWyBkaXYgMiw0LDgsIDE2IF0gLS1cCisgKgkJCQkgICAgICAgW211eF0gLT4gdGltZXIgNAorICogdGNsayAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS8KKyAqCisgKiBTaW5jZSB0aGUgbXV4IGFuZCB0aGUgZGl2aWRlciBhcmUgdGllZCB0b2dldGhlciBpbiB0aGUKKyAqIHNhbWUgcmVnaXN0ZXIgc3BhY2UsIGl0IGlzIGltcG9zc2libGUgdG8gc2V0IHRoZSBwYXJlbnQKKyAqIGFuZCB0aGUgcmF0ZSBhdCB0aGUgc2FtZSB0aW1lLiBUbyBhdm9pZCB0aGlzLCB3ZSBhZGQgYW4KKyAqIGludGVybWVkaWF0ZSAncHJlc2NhbGVkLWFuZC1kaXZpZGVkJyBjbG9jayB0byBzZWxlY3QKKyAqIGFzIHRoZSBwYXJlbnQgZm9yIHRoZSB0aW1lciBpbnB1dCBjbG9jayBjYWxsZWQgdGRpdi4KKyAqCisgKiBwcmVzY2FsZWQgY2xrIC0tPiBwd20tdGRpdiAtLS1cCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyBtdXggXSAtLT4gdGltZXIgWAorICogdGNsayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLworKi8KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV9zY2FsZXJfZ2V0cmF0ZShzdHJ1Y3QgY2xrICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMCA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzApOworCisJaWYgKGNsay0+aWQgPT0gMSkgeworCQl0Y2ZnMCAmPSBTM0MyNDEwX1RDRkdfUFJFU0NBTEVSMV9NQVNLOworCQl0Y2ZnMCA+Pj0gUzNDMjQxMF9UQ0ZHX1BSRVNDQUxFUjFfU0hJRlQ7CisJfSBlbHNlIHsKKwkJdGNmZzAgJj0gUzNDMjQxMF9UQ0ZHX1BSRVNDQUxFUjBfTUFTSzsKKwl9CisKKwlyZXR1cm4gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KSAvICh0Y2ZnMCArIDEpOworfQorCisvKiBUT0RPIC0gYWRkIHNldCByYXRlIGNhbGxzLiAqLworCitzdHJ1Y3QgY2xrIGNsa190aW1lcl9zY2FsZXJbXSA9IHsKKwlbMF0JPSB7CisJCS5uYW1lCQk9ICJwd20tc2NhbGVyMCIsCisJCS5pZAkJPSAtMSwKKwkJLmdldF9yYXRlCT0gY2xrX3B3bV9zY2FsZXJfZ2V0cmF0ZSwKKwl9LAorCVsxXQk9IHsKKwkJLm5hbWUJCT0gInB3bS1zY2FsZXIxIiwKKwkJLmlkCQk9IC0xLAorCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3NjYWxlcl9nZXRyYXRlLAorCX0sCit9OworCitzdHJ1Y3QgY2xrIGNsa190aW1lcl90Y2xrW10gPSB7CisJWzBdCT0geworCQkubmFtZQkJPSAicHdtLXRjbGswIiwKKwkJLmlkCQk9IC0xLAorCX0sCisJWzFdCT0geworCQkubmFtZQkJPSAicHdtLXRjbGsxIiwKKwkJLmlkCQk9IC0xLAorCX0sCit9OworCitzdHJ1Y3QgcHdtX3RkaXZfY2xrIHsKKwlzdHJ1Y3QgY2xrCWNsazsKKwl1bnNpZ25lZCBpbnQJZGl2aXNvcjsKK307CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHB3bV90ZGl2X2NsayAqdG9fdGRpdihzdHJ1Y3QgY2xrICpjbGspCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihjbGssIHN0cnVjdCBwd21fdGRpdl9jbGssIGNsayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB0Y2ZnX3RvX2Rpdmlzb3IodW5zaWduZWQgbG9uZyB0Y2ZnMSkKK3sKKwlyZXR1cm4gMSA8PCAoMSArIHRjZmcxKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgaW50IGRpdmlzb3I7CisKKwl0Y2ZnMSA+Pj0gUzNDMjQxMF9UQ0ZHMV9TSElGVChjbGstPmlkKTsKKwl0Y2ZnMSAmPSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLOworCisJaWYgKHRjZmcxID09IFMzQzI0MTBfVENGRzFfTVVYX1RDTEspCisJCWRpdmlzb3IgPSB0b190ZGl2KGNsayktPmRpdmlzb3I7CisJZWxzZQorCQlkaXZpc29yID0gdGNmZ190b19kaXZpc29yKHRjZmcxKTsKKworCXJldHVybiBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpIC8gZGl2aXNvcjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X3JvdW5kX3JhdGUoc3RydWN0IGNsayAqY2xrLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwl1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlOworCXVuc2lnbmVkIGxvbmcgZGl2aXNvcjsKKworCXBhcmVudF9yYXRlID0gY2xrX2dldF9yYXRlKGNsay0+cGFyZW50KTsKKwlkaXZpc29yID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdmlzb3IgPD0gMikKKwkJZGl2aXNvciA9IDI7CisJZWxzZSBpZiAoZGl2aXNvciA8PSA0KQorCQlkaXZpc29yID0gNDsKKwllbHNlIGlmIChkaXZpc29yIDw9IDgpCisJCWRpdmlzb3IgPSA4OworCWVsc2UKKwkJZGl2aXNvciA9IDE2OworCisJcmV0dXJuIHBhcmVudF9yYXRlIC8gZGl2aXNvcjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2xrX3B3bV90ZGl2X2JpdHMoc3RydWN0IHB3bV90ZGl2X2NsayAqZGl2Y2xrKQoreworCXVuc2lnbmVkIGxvbmcgYml0czsKKworCXN3aXRjaCAoZGl2Y2xrLT5kaXZpc29yKSB7CisJY2FzZSAyOgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMjsKKwkJYnJlYWs7CisJY2FzZSA0OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWNDsKKwkJYnJlYWs7CisJY2FzZSA4OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWODsKKwkJYnJlYWs7CisJY2FzZSAxNjoKKwlkZWZhdWx0OgorCQliaXRzID0gUzNDMjQxMF9UQ0ZHMV9NVVhfRElWMTY7CisJCWJyZWFrOworCX0KKworCXJldHVybiBiaXRzOworfQorCitzdGF0aWMgdm9pZCBjbGtfcHdtX3RkaXZfdXBkYXRlKHN0cnVjdCBwd21fdGRpdl9jbGsgKmRpdmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHRjZmcxID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ0ZHMSk7CisJdW5zaWduZWQgbG9uZyBiaXRzID0gY2xrX3B3bV90ZGl2X2JpdHMoZGl2Y2xrKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgc2hpZnQgPSAgUzNDMjQxMF9UQ0ZHMV9TSElGVChkaXZjbGstPmNsay5pZCk7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwl0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXRjZmcxICY9IH4oUzNDMjQxMF9UQ0ZHMV9NVVhfTUFTSyA8PCBzaGlmdCk7CisJdGNmZzEgfD0gYml0cyA8PCBzaGlmdDsKKwlfX3Jhd193cml0ZWwodGNmZzEsIFMzQzI0MTBfVENGRzEpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgaW50IGNsa19wd21fdGRpdl9zZXRfcmF0ZShzdHJ1Y3QgY2xrICpjbGssIHVuc2lnbmVkIGxvbmcgcmF0ZSkKK3sKKwlzdHJ1Y3QgcHdtX3RkaXZfY2xrICpkaXZjbGsgPSB0b190ZGl2KGNsayk7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXVuc2lnbmVkIGxvbmcgcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrLT5wYXJlbnQpOworCXVuc2lnbmVkIGxvbmcgZGl2aXNvcjsKKworCXRjZmcxID4+PSBTM0MyNDEwX1RDRkcxX1NISUZUKGNsay0+aWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlyYXRlID0gY2xrX3JvdW5kX3JhdGUoY2xrLCByYXRlKTsKKwlkaXZpc29yID0gcGFyZW50X3JhdGUgLyByYXRlOworCisJaWYgKGRpdmlzb3IgPiAxNikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkaXZjbGstPmRpdmlzb3IgPSBkaXZpc29yOworCisJLyogVXBkYXRlIHRoZSBjdXJyZW50IE1VWCBzZXR0aW5ncyBpZiB3ZSBhcmUgY3VycmVudGx5CisJICogc2VsZWN0ZWQgYXMgdGhlIGNsb2NrIHNvdXJjZSBmb3IgdGhpcyBjbG9jay4gKi8KKworCWlmICh0Y2ZnMSAhPSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLKQorCQljbGtfcHdtX3RkaXZfdXBkYXRlKGRpdmNsayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IHB3bV90ZGl2X2NsayBjbGtfdGltZXJfdGRpdltdID0geworCVswXQk9IHsKKwkJLmNsawk9IHsKKwkJCS5uYW1lCQk9ICJwd20tdGRpdiIsCisJCQkucGFyZW50CQk9ICZjbGtfdGltZXJfc2NhbGVyWzBdLAorCQkJLmdldF9yYXRlCT0gY2xrX3B3bV90ZGl2X2dldF9yYXRlLAorCQkJLnNldF9yYXRlCT0gY2xrX3B3bV90ZGl2X3NldF9yYXRlLAorCQkJLnJvdW5kX3JhdGUJPSBjbGtfcHdtX3RkaXZfcm91bmRfcmF0ZSwKKwkJfSwKKwl9LAorCVsxXQk9IHsKKwkJLmNsawk9IHsKKwkJCS5uYW1lCQk9ICJwd20tdGRpdiIsCisJCQkucGFyZW50CQk9ICZjbGtfdGltZXJfc2NhbGVyWzBdLAorCQkJLmdldF9yYXRlCT0gY2xrX3B3bV90ZGl2X2dldF9yYXRlLAorCQkJLnNldF9yYXRlCT0gY2xrX3B3bV90ZGl2X3NldF9yYXRlLAorCQkJLnJvdW5kX3JhdGUJPSBjbGtfcHdtX3RkaXZfcm91bmRfcmF0ZSwKKwkJfQorCX0sCisJWzJdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCisJWzNdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCisJWzRdCT0geworCQkuY2xrCT0geworCQkJLm5hbWUJCT0gInB3bS10ZGl2IiwKKwkJCS5wYXJlbnQJCT0gJmNsa190aW1lcl9zY2FsZXJbMV0sCisJCQkuZ2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfZ2V0X3JhdGUsCisJCQkuc2V0X3JhdGUJPSBjbGtfcHdtX3RkaXZfc2V0X3JhdGUsCisJCQkucm91bmRfcmF0ZQk9IGNsa19wd21fdGRpdl9yb3VuZF9yYXRlLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCBjbGtfcHdtX3RkaXZfcmVnaXN0ZXIodW5zaWduZWQgaW50IGlkKQoreworCXN0cnVjdCBwd21fdGRpdl9jbGsgKmRpdmNsayA9ICZjbGtfdGltZXJfdGRpdltpZF07CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCisJdGNmZzEgPj49IFMzQzI0MTBfVENGRzFfU0hJRlQoaWQpOworCXRjZmcxICY9IFMzQzI0MTBfVENGRzFfTVVYX01BU0s7CisKKwlkaXZjbGstPmNsay5pZCA9IGlkOworCWRpdmNsay0+ZGl2aXNvciA9IHRjZmdfdG9fZGl2aXNvcih0Y2ZnMSk7CisKKwlyZXR1cm4gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmZGl2Y2xrLT5jbGspOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjbGsgKnMzYzI0eHhfcHdtY2xrX3RjbGsodW5zaWduZWQgaW50IGlkKQoreworCXJldHVybiAoaWQgPj0gMikgPyAmY2xrX3RpbWVyX3RjbGtbMV0gOiAmY2xrX3RpbWVyX3RjbGtbMF07Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNsayAqczNjMjR4eF9wd21jbGtfdGRpdih1bnNpZ25lZCBpbnQgaWQpCit7CisJcmV0dXJuICZjbGtfdGltZXJfdGRpdltpZF0uY2xrOworfQorCitzdGF0aWMgaW50IGNsa19wd21fdGluX3NldF9wYXJlbnQoc3RydWN0IGNsayAqY2xrLCBzdHJ1Y3QgY2xrICpwYXJlbnQpCit7CisJdW5zaWduZWQgaW50IGlkID0gY2xrLT5pZDsKKwl1bnNpZ25lZCBsb25nIHRjZmcxOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBiaXRzOworCXVuc2lnbmVkIGxvbmcgc2hpZnQgPSBTM0MyNDEwX1RDRkcxX1NISUZUKGlkKTsKKworCWlmIChwYXJlbnQgPT0gczNjMjR4eF9wd21jbGtfdGNsayhpZCkpCisJCWJpdHMgPSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLIDw8IHNoaWZ0OworCWVsc2UgaWYgKHBhcmVudCA9PSBzM2MyNHh4X3B3bWNsa190ZGl2KGlkKSkKKwkJYml0cyA9IGNsa19wd21fdGRpdl9iaXRzKHRvX3RkaXYoY2xrKSkgPDwgc2hpZnQ7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWNsay0+cGFyZW50ID0gcGFyZW50OworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJdGNmZzEgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDRkcxKTsKKwl0Y2ZnMSAmPSB+KFMzQzI0MTBfVENGRzFfTVVYX01BU0sgPDwgc2hpZnQpOworCV9fcmF3X3dyaXRlbCh0Y2ZnMSB8IGJpdHMsIFMzQzI0MTBfVENGRzEpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xrIGNsa190aW5bXSA9IHsKKwlbMF0JPSB7CisJCS5uYW1lCQk9ICJwd20tdGluIiwKKwkJLmlkCQk9IDAsCisJCS5zZXRfcGFyZW50CT0gY2xrX3B3bV90aW5fc2V0X3BhcmVudCwKKwl9LAorCVsxXQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gMSwKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCisJWzJdCT0geworCQkubmFtZQkJPSAicHdtLXRpbiIsCisJCS5pZAkJPSAyLAorCQkuc2V0X3BhcmVudAk9IGNsa19wd21fdGluX3NldF9wYXJlbnQsCisJfSwKKwlbM10JPSB7CisJCS5uYW1lCQk9ICJwd20tdGluIiwKKwkJLmlkCQk9IDMsCisJCS5zZXRfcGFyZW50CT0gY2xrX3B3bV90aW5fc2V0X3BhcmVudCwKKwl9LAorCVs0XQk9IHsKKwkJLm5hbWUJCT0gInB3bS10aW4iLAorCQkuaWQJCT0gNCwKKwkJLnNldF9wYXJlbnQJPSBjbGtfcHdtX3Rpbl9zZXRfcGFyZW50LAorCX0sCit9OworCitzdGF0aWMgX19pbml0IGludCBjbGtfcHdtX3Rpbl9yZWdpc3RlcihzdHJ1Y3QgY2xrICpwd20pCit7CisJdW5zaWduZWQgbG9uZyB0Y2ZnMSA9IF9fcmF3X3JlYWRsKFMzQzI0MTBfVENGRzEpOworCXVuc2lnbmVkIGludCBpZCA9IHB3bS0+aWQ7CisKKwlzdHJ1Y3QgY2xrICpwYXJlbnQ7CisJaW50IHJldDsKKworCXJldCA9IHMzYzI0eHhfcmVnaXN0ZXJfY2xvY2socHdtKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCXRjZmcxID4+PSBTM0MyNDEwX1RDRkcxX1NISUZUKGlkKTsKKwl0Y2ZnMSAmPSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLOworCisJaWYgKHRjZmcxID09IFMzQzI0MTBfVENGRzFfTVVYX1RDTEspCisJCXBhcmVudCA9IHMzYzI0eHhfcHdtY2xrX3RjbGsoaWQpOworCWVsc2UKKwkJcGFyZW50ID0gczNjMjR4eF9wd21jbGtfdGRpdihpZCk7CisKKwlyZXR1cm4gY2xrX3NldF9wYXJlbnQocHdtLCBwYXJlbnQpOworfQorCitzdGF0aWMgX19pbml0IGludCBzM2MyNHh4X3B3bWNsa19pbml0KHZvaWQpCit7CisJc3RydWN0IGNsayAqY2xrX3RpbWVyczsKKwl1bnNpZ25lZCBpbnQgY2xrOworCWludCByZXQ7CisKKwljbGtfdGltZXJzID0gY2xrX2dldChOVUxMLCAidGltZXJzIik7CisJaWYgKElTX0VSUihjbGtfdGltZXJzKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBubyBwYXJlbnQgY2xvY2tcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChjbGsgPSAwOyBjbGsgPCBBUlJBWV9TSVpFKGNsa190aW1lcl9zY2FsZXIpOyBjbGsrKykgeworCQljbGtfdGltZXJfc2NhbGVyW2Nsa10ucGFyZW50ID0gY2xrX3RpbWVyczsKKwkJcmV0ID0gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmY2xrX3RpbWVyX3NjYWxlcltjbGtdKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3bSBzY2FsZXIlZCBjbG9ja1xuIiwgY2xrKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJZm9yIChjbGsgPSAwOyBjbGsgPCBBUlJBWV9TSVpFKGNsa190aW1lcl90Y2xrKTsgY2xrKyspIHsKKwkJcmV0ID0gczNjMjR4eF9yZWdpc3Rlcl9jbG9jaygmY2xrX3RpbWVyX3RjbGtbY2xrXSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImVycm9yIGFkZGluZyBwd3cgdGNsayVkXG4iLCBjbGspOworCQkJZ290byBlcnI7CisJCX0KKwl9CisKKwlmb3IgKGNsayA9IDA7IGNsayA8IEFSUkFZX1NJWkUoY2xrX3RpbWVyX3RkaXYpOyBjbGsrKykgeworCQlyZXQgPSBjbGtfcHdtX3RkaXZfcmVnaXN0ZXIoY2xrKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiZXJyb3IgYWRkaW5nIHB3bSVkIHRkaXYgY2xvY2tcbiIsIGNsayk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCWZvciAoY2xrID0gMDsgY2xrIDwgQVJSQVlfU0laRShjbGtfdGluKTsgY2xrKyspIHsKKwkJcmV0ID0gY2xrX3B3bV90aW5fcmVnaXN0ZXIoJmNsa190aW5bY2xrXSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImVycm9yIGFkZGluZyBwd20lZCB0aW4gY2xvY2tcbiIsIGNsayk7CisJCQlnb3RvIGVycjsKKwkJfQorCX0KKworCXJldHVybiAwOworCisgZXJyOgorCXJldHVybiByZXQ7Cit9CisKK2FyY2hfaW5pdGNhbGwoczNjMjR4eF9wd21jbGtfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLmMgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvcHdtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThjNGJkYwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9wd20uYwpAQCAtMCwwICsxLDQwMiBAQAorLyogYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3B3bS5jCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3IEJlbiBEb29rcworICogQ29weXJpZ2h0IChjKSAyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiwgPGJlbi1saW51eEBmbHVmZi5vcmc+CisgKgorICogUzNDMjRYWCBQV00gZGV2aWNlIGNvcmUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wd20uaD4KKworI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXRpbWVyLmg+CisKK3N0cnVjdCBwd21fZGV2aWNlIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkCSBsaXN0OworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UJKnBkZXY7CisKKwlzdHJ1Y3QgY2xrCQkqY2xrX2RpdjsKKwlzdHJ1Y3QgY2xrCQkqY2xrOworCWNvbnN0IGNoYXIJCSpsYWJlbDsKKworCXVuc2lnbmVkIGludAkJIHBlcmlvZF9uczsKKwl1bnNpZ25lZCBpbnQJCSBkdXR5X25zOworCisJdW5zaWduZWQgY2hhcgkJIHRjb25fYmFzZTsKKwl1bnNpZ25lZCBjaGFyCQkgcnVubmluZzsKKwl1bnNpZ25lZCBjaGFyCQkgdXNlX2NvdW50OworCXVuc2lnbmVkIGNoYXIJCSBwd21faWQ7Cit9OworCisjZGVmaW5lIHB3bV9kYmcoX3B3bSwgbXNnLi4uKSBkZXZfaW5mbygmKF9wd20pLT5wZGV2LT5kZXYsIG1zZykKKworc3RhdGljIHN0cnVjdCBjbGsgKmNsa19zY2FsZXJbMl07CisKKy8qIFN0YW5kYXJkIHNldHVwIGZvciBhIHRpbWVyIGJsb2NrLiAqLworCisjZGVmaW5lIFRJTUVSX1JFU09VUkNFX1NJWkUgKDEpCisKKyNkZWZpbmUgVElNRVJfUkVTT1VSQ0UoX3RtciwgX2lycSkJCQlcCisJKHN0cnVjdCByZXNvdXJjZSBbVElNRVJfUkVTT1VSQ0VfU0laRV0pIHsJXAorCQlbMF0gPSB7CQkJCQlcCisJCQkuc3RhcnQJPSBfaXJxLAkJCVwKKwkJCS5lbmQJPSBfaXJxLAkJCVwKKwkJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRCVwKKwkJfQkJCQkJXAorCX0KKworI2RlZmluZSBERUZJTkVfVElNRVIoX3Rtcl9ubywgX2lycSkJCQlcCisJLm5hbWUJCT0gInMzYzI0eHgtcHdtIiwJCVwKKwkuaWQJCT0gX3Rtcl9ubywJCQlcCisJLm51bV9yZXNvdXJjZXMJPSBUSU1FUl9SRVNPVVJDRV9TSVpFLAkJXAorCS5yZXNvdXJjZQk9IFRJTUVSX1JFU09VUkNFKF90bXJfbm8sIF9pcnEpLAlcCisKKy8qIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSBhbiBzdGF0aWMgbWFwcGluZyBmb3IgdGhlIHRpbWVyLCB3ZSBkbyBub3QKKyAqIGJvdGhlciBzZXR0aW5nIGFueSBJTyByZXNvdXJjZSBmb3IgdGhlIGJhc2UuCisgKi8KKworc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyW10gPSB7CisJWzBdID0geyBERUZJTkVfVElNRVIoMCwgSVJRX1RJTUVSMCkgfSwKKwlbMV0gPSB7IERFRklORV9USU1FUigxLCBJUlFfVElNRVIxKSB9LAorCVsyXSA9IHsgREVGSU5FX1RJTUVSKDIsIElSUV9USU1FUjIpIH0sCisJWzNdID0geyBERUZJTkVfVElNRVIoMywgSVJRX1RJTUVSMykgfSwKKwlbNF0gPSB7IERFRklORV9USU1FUig0LCBJUlFfVElNRVI0KSB9LAorfTsKKworc3RhdGljIGlubGluZSBpbnQgcHdtX2lzX3RkaXYoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlyZXR1cm4gY2xrX2dldF9wYXJlbnQocHdtLT5jbGspID09IHB3bS0+Y2xrX2RpdjsKK30KKworc3RhdGljIERFRklORV9NVVRFWChwd21fbG9jayk7CitzdGF0aWMgTElTVF9IRUFEKHB3bV9saXN0KTsKKworc3RydWN0IHB3bV9kZXZpY2UgKnB3bV9yZXF1ZXN0KGludCBwd21faWQsIGNvbnN0IGNoYXIgKmxhYmVsKQoreworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJaW50IGZvdW5kID0gMDsKKworCW11dGV4X2xvY2soJnB3bV9sb2NrKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkocHdtLCAmcHdtX2xpc3QsIGxpc3QpIHsKKwkJaWYgKHB3bS0+cHdtX2lkID09IHB3bV9pZCkgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoZm91bmQpIHsKKwkJaWYgKHB3bS0+dXNlX2NvdW50ID09IDApIHsKKwkJCXB3bS0+dXNlX2NvdW50ID0gMTsKKwkJCXB3bS0+bGFiZWwgPSBsYWJlbDsKKwkJfSBlbHNlCisJCQlwd20gPSBFUlJfUFRSKC1FQlVTWSk7CisJfSBlbHNlCisJCXB3bSA9IEVSUl9QVFIoLUVOT0VOVCk7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKwlyZXR1cm4gcHdtOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9yZXF1ZXN0KTsKKworCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pCit7CisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCisJaWYgKHB3bS0+dXNlX2NvdW50KSB7CisJCXB3bS0+dXNlX2NvdW50LS07CisJCXB3bS0+bGFiZWwgPSBOVUxMOworCX0gZWxzZQorCQlwcmludGsoS0VSTl9FUlIgIlBXTSVkIGRldmljZSBhbHJlYWR5IGZyZWVkXG4iLCBwd20tPnB3bV9pZCk7CisKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKK30KKworRVhQT1JUX1NZTUJPTChwd21fZnJlZSk7CisKKyNkZWZpbmUgcHdtX3Rjb25fc3RhcnQocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAwKSkKKyNkZWZpbmUgcHdtX3Rjb25faW52ZXJ0KHB3bSkgKDEgPDwgKHB3bS0+dGNvbl9iYXNlICsgMikpCisjZGVmaW5lIHB3bV90Y29uX2F1dG9yZWxvYWQocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAzKSkKKyNkZWZpbmUgcHdtX3Rjb25fbWFudWx1cGRhdGUocHdtKSAoMSA8PCAocHdtLT50Y29uX2Jhc2UgKyAxKSkKKworaW50IHB3bV9lbmFibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgdGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25fc3RhcnQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXB3bS0+cnVubmluZyA9IDE7CisJcmV0dXJuIDA7Cit9CisKK0VYUE9SVF9TWU1CT0wocHdtX2VuYWJsZSk7CisKK3ZvaWQgcHdtX2Rpc2FibGUoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgdGNvbjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gJj0gfnB3bV90Y29uX3N0YXJ0KHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlwd20tPnJ1bm5pbmcgPSAwOworfQorCitFWFBPUlRfU1lNQk9MKHB3bV9kaXNhYmxlKTsKKwordW5zaWduZWQgbG9uZyBwd21fY2FsY190aW4oc3RydWN0IHB3bV9kZXZpY2UgKnB3bSwgdW5zaWduZWQgbG9uZyBmcmVxKQoreworCXVuc2lnbmVkIGxvbmcgdGluX3BhcmVudF9yYXRlOworCXVuc2lnbmVkIGludCBkaXY7CisKKwl0aW5fcGFyZW50X3JhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrX2dldF9wYXJlbnQocHdtLT5jbGtfZGl2KSk7CisJcHdtX2RiZyhwd20sICJ0aW4gcGFyZW50IGF0ICVsdVxuIiwgdGluX3BhcmVudF9yYXRlKTsKKworCWZvciAoZGl2ID0gMjsgZGl2IDw9IDE2OyBkaXYgKj0gMikgeworCQlpZiAoKHRpbl9wYXJlbnRfcmF0ZSAvIChkaXYgPDwgMTYpKSA8IGZyZXEpCisJCQlyZXR1cm4gdGluX3BhcmVudF9yYXRlIC8gZGl2OworCX0KKworCXJldHVybiB0aW5fcGFyZW50X3JhdGUgLyAxNjsKK30KKworI2RlZmluZSBOU19JTl9IWiAoMTAwMDAwMDAwMFVMKQorCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucykKK3sKKwl1bnNpZ25lZCBsb25nIHRpbl9yYXRlOworCXVuc2lnbmVkIGxvbmcgdGluX25zOworCXVuc2lnbmVkIGxvbmcgcGVyaW9kOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyB0Y29uOworCXVuc2lnbmVkIGxvbmcgdGNudDsKKwlsb25nIHRjbXA7CisKKwkvKiBXZSBjdXJyZW50bHkgYXZvaWQgdXNpbmcgNjRiaXQgYXJpdGhtZXRpYyBieSB1c2luZyB0aGUKKwkgKiBmYWN0IHRoYXQgYW55dGhpbmcgZmFzdGVyIHRoYW4gMUh6IGlzIGVhc2lseSByZXByZXNlbnRhYmxlCisJICogYnkgMzJiaXRzLiAqLworCisJaWYgKHBlcmlvZF9ucyA+IE5TX0lOX0haIHx8IGR1dHlfbnMgPiBOU19JTl9IWikKKwkJcmV0dXJuIC1FUkFOR0U7CisKKwlpZiAoZHV0eV9ucyA+IHBlcmlvZF9ucykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAocGVyaW9kX25zID09IHB3bS0+cGVyaW9kX25zICYmCisJICAgIGR1dHlfbnMgPT0gcHdtLT5kdXR5X25zKQorCQlyZXR1cm4gMDsKKworCS8qIFRoZSBUQ01QIGFuZCBUQ05UIGNhbiBiZSByZWFkIHdpdGhvdXQgYSBsb2NrLCB0aGV5J3JlIG5vdAorCSAqIHNoYXJlZCBiZXR3ZWVuIHRoZSB0aW1lcnMuICovCisKKwl0Y21wID0gX19yYXdfcmVhZGwoUzNDMjQxMF9UQ01QQihwd20tPnB3bV9pZCkpOworCXRjbnQgPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDTlRCKHB3bS0+cHdtX2lkKSk7CisKKwlwZXJpb2QgPSBOU19JTl9IWiAvIHBlcmlvZF9uczsKKworCXB3bV9kYmcocHdtLCAiZHV0eV9ucz0lZCwgcGVyaW9kX25zPSVkICglbHUpXG4iLAorCQlkdXR5X25zLCBwZXJpb2RfbnMsIHBlcmlvZCk7CisKKwkvKiBDaGVjayB0byBzZWUgaWYgd2UgYXJlIGNoYW5naW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSBQV00gKi8KKworCWlmIChwd20tPnBlcmlvZF9ucyAhPSBwZXJpb2RfbnMpIHsKKwkJaWYgKHB3bV9pc190ZGl2KHB3bSkpIHsKKwkJCXRpbl9yYXRlID0gcHdtX2NhbGNfdGluKHB3bSwgcGVyaW9kKTsKKwkJCWNsa19zZXRfcmF0ZShwd20tPmNsa19kaXYsIHRpbl9yYXRlKTsKKwkJfSBlbHNlCisJCQl0aW5fcmF0ZSA9IGNsa19nZXRfcmF0ZShwd20tPmNsayk7CisKKwkJcHdtLT5wZXJpb2RfbnMgPSBwZXJpb2RfbnM7CisKKwkJcHdtX2RiZyhwd20sICJ0aW5fcmF0ZT0lbHVcbiIsIHRpbl9yYXRlKTsKKworCQl0aW5fbnMgPSBOU19JTl9IWiAvIHRpbl9yYXRlOworCQl0Y250ID0gcGVyaW9kX25zIC8gdGluX25zOworCX0gZWxzZQorCQl0aW5fbnMgPSBOU19JTl9IWiAvIGNsa19nZXRfcmF0ZShwd20tPmNsayk7CisKKwkvKiBOb3RlLCBjb3VudGVycyBjb3VudCBkb3duICovCisKKwl0Y21wID0gZHV0eV9ucyAvIHRpbl9uczsKKwl0Y21wID0gdGNudCAtIHRjbXA7CisKKwlwd21fZGJnKHB3bSwgInRpbl9ucz0lbHUsIHRjbXA9JWxkLyVsdVxuIiwgdGluX25zLCB0Y21wLCB0Y250KTsKKworCWlmICh0Y21wIDwgMCkKKwkJdGNtcCA9IDA7CisKKwkvKiBVcGRhdGUgdGhlIFBXTSByZWdpc3RlciBibG9jay4gKi8KKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCV9fcmF3X3dyaXRlbCh0Y21wLCBTM0MyNDEwX1RDTVBCKHB3bS0+cHdtX2lkKSk7CisJX19yYXdfd3JpdGVsKHRjbnQsIFMzQzI0MTBfVENOVEIocHdtLT5wd21faWQpKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25fbWFudWx1cGRhdGUocHdtKTsKKwl0Y29uIHw9IHB3bV90Y29uX2F1dG9yZWxvYWQocHdtKTsKKwlfX3Jhd193cml0ZWwodGNvbiwgUzNDMjQxMF9UQ09OKTsKKworCXRjb24gJj0gfnB3bV90Y29uX21hbnVsdXBkYXRlKHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworRVhQT1JUX1NZTUJPTChwd21fY29uZmlnKTsKKworc3RhdGljIGludCBwd21fcmVnaXN0ZXIoc3RydWN0IHB3bV9kZXZpY2UgKnB3bSkKK3sKKwlwd20tPmR1dHlfbnMgPSAtMTsKKwlwd20tPnBlcmlvZF9ucyA9IC0xOworCisJbXV0ZXhfbG9jaygmcHdtX2xvY2spOworCWxpc3RfYWRkX3RhaWwoJnB3bS0+bGlzdCwgJnB3bV9saXN0KTsKKwltdXRleF91bmxvY2soJnB3bV9sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzY19wd21fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2OworCXN0cnVjdCBwd21fZGV2aWNlICpwd207CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBsb25nIHRjb247CisJdW5zaWduZWQgaW50IGlkID0gcGRldi0+aWQ7CisJaW50IHJldDsKKworCWlmIChpZCA9PSA0KSB7CisJCWRldl9lcnIoZGV2LCAiVElNRVI0IGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXG4iKTsKKwkJcmV0dXJuIC1FTlhJTzsKKwl9CisKKwlwd20gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcHdtX2RldmljZSksIEdGUF9LRVJORUwpOworCWlmIChwd20gPT0gTlVMTCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSBwd21fZGV2aWNlXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcHdtLT5wZGV2ID0gcGRldjsKKwlwd20tPnB3bV9pZCA9IGlkOworCisJLyogY2FsY3VsYXRlIGJhc2Ugb2YgY29udHJvbCBiaXRzIGluIFRDT04gKi8KKwlwd20tPnRjb25fYmFzZSA9IGlkID09IDAgPyAwIDogKGlkICogNCkgKyA0OworCisJcHdtLT5jbGsgPSBjbGtfZ2V0KGRldiwgInB3bS10aW4iKTsKKwlpZiAoSVNfRVJSKHB3bS0+Y2xrKSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcHdtIHRpbiBjbGtcbiIpOworCQlyZXQgPSBQVFJfRVJSKHB3bS0+Y2xrKTsKKwkJZ290byBlcnJfYWxsb2M7CisJfQorCisJcHdtLT5jbGtfZGl2ID0gY2xrX2dldChkZXYsICJwd20tdGRpdiIpOworCWlmIChJU19FUlIocHdtLT5jbGtfZGl2KSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBnZXQgcHdtIHRkaXYgY2xrXG4iKTsKKwkJcmV0ID0gUFRSX0VSUihwd20tPmNsa19kaXYpOworCQlnb3RvIGVycl9jbGtfdGluOworCX0KKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRjb24gPSBfX3Jhd19yZWFkbChTM0MyNDEwX1RDT04pOworCXRjb24gfD0gcHdtX3Rjb25faW52ZXJ0KHB3bSk7CisJX19yYXdfd3JpdGVsKHRjb24sIFMzQzI0MTBfVENPTik7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKworCXJldCA9IHB3bV9yZWdpc3Rlcihwd20pOworCWlmIChyZXQpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVnaXN0ZXIgcHdtXG4iKTsKKwkJZ290byBlcnJfY2xrX3RkaXY7CisJfQorCisJcHdtX2RiZyhwd20sICJjb25maWcgYml0cyAlMDJ4XG4iLAorCQkoX19yYXdfcmVhZGwoUzNDMjQxMF9UQ09OKSA+PiBwd20tPnRjb25fYmFzZSkgJiAweDBmKTsKKworCWRldl9pbmZvKGRldiwgInRpbiBhdCAlbHUsIHRkaXYgYXQgJWx1LCB0aW49JXNjbGssIGJhc2UgJWRcbiIsCisJCSBjbGtfZ2V0X3JhdGUocHdtLT5jbGspLAorCQkgY2xrX2dldF9yYXRlKHB3bS0+Y2xrX2RpdiksCisJCSBwd21faXNfdGRpdihwd20pID8gImRpdiIgOiAiZXh0IiwgcHdtLT50Y29uX2Jhc2UpOworCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHdtKTsKKwlyZXR1cm4gMDsKKworIGVycl9jbGtfdGRpdjoKKwljbGtfcHV0KHB3bS0+Y2xrX2Rpdik7CisKKyBlcnJfY2xrX3RpbjoKKwljbGtfcHV0KHB3bS0+Y2xrKTsKKworIGVycl9hbGxvYzoKKwlrZnJlZShwd20pOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgczNjX3B3bV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcHdtX2RldmljZSAqcHdtID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwljbGtfcHV0KHB3bS0+Y2xrX2Rpdik7CisJY2xrX3B1dChwd20tPmNsayk7CisJa2ZyZWUocHdtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2NfcHdtX2RyaXZlciA9IHsKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjR4eC1wd20iLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorCS5wcm9iZQkJPSBzM2NfcHdtX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AoczNjX3B3bV9yZW1vdmUpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgcHdtX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJY2xrX3NjYWxlclswXSA9IGNsa19nZXQoTlVMTCwgInB3bS1zY2FsZXIwIik7CisJY2xrX3NjYWxlclsxXSA9IGNsa19nZXQoTlVMTCwgInB3bS1zY2FsZXIxIik7CisKKwlpZiAoSVNfRVJSKGNsa19zY2FsZXJbMF0pIHx8IElTX0VSUihjbGtfc2NhbGVyWzFdKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmYWlsZWQgdG8gZ2V0IHNjYWxlciBjbG9ja3NcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZzM2NfcHdtX2RyaXZlcik7CisJaWYgKHJldCkKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogZmFpbGVkIHRvIGFkZCBwd20gZHJpdmVyXG4iLCBfX2Z1bmNfXyk7CisKKwlyZXR1cm4gcmV0OworfQorCithcmNoX2luaXRjYWxsKHB3bV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9zM2MyNDR4LmMgYi9hcmNoL2FybS9wbGF0LXMzYzI0eHgvczNjMjQ0eC5jCmluZGV4IGYxOTdiYjMuLjJmMDFhZjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL3BsYXQtczNjMjR4eC9zM2MyNDR4LmMKKysrIGIvYXJjaC9hcm0vcGxhdC1zM2MyNHh4L3MzYzI0NHguYwpAQCAtNjUsNiArNjUsNyBAQAogCiAJLyogcmVuYW1lIGFueSBwZXJpcGhlcmFscyB1c2VkIGRpZmZlcmluZyBmcm9tIHRoZSBzM2MyNDEwICovCiAKKwlzM2NfZGV2aWNlX3NkaS5uYW1lICA9ICJzM2MyNDQwLXNkaSI7CiAJczNjX2RldmljZV9pMmMubmFtZSAgPSAiczNjMjQ0MC1pMmMiOwogCXMzY19kZXZpY2VfbmFuZC5uYW1lID0gInMzYzI0NDAtbmFuZCI7CiAJczNjX2RldmljZV91c2JnYWRnZXQubmFtZSA9ICJzM2MyNDQwLXVzYmdhZGdldCI7CmRpZmYgLS1naXQgYS9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzIGIvYXJjaC9hcm0vdG9vbHMvbWFjaC10eXBlcwppbmRleCAyMDdhOGI1Li4wYmU1NjMwIDEwMDY0NAotLS0gYS9hcmNoL2FybS90b29scy9tYWNoLXR5cGVzCisrKyBiL2FyY2gvYXJtL3Rvb2xzL21hY2gtdHlwZXMKQEAgLTEyLDcgKzEyLDcgQEAKICMKICMgICBodHRwOi8vd3d3LmFybS5saW51eC5vcmcudWsvZGV2ZWxvcGVyL21hY2hpbmVzLz9hY3Rpb249bmV3CiAjCi0jIExhc3QgdXBkYXRlOiBTYXQgQXByIDE5IDExOjIzOjM4IDIwMDgKKyMgTGFzdCB1cGRhdGU6IE1vbiBKdWwgNyAxNjoyNTozOSAyMDA4CiAjCiAjIG1hY2hpbmVfaXNfeHh4CUNPTkZJR194eHh4CQlNQUNIX1RZUEVfeHh4CQludW1iZXIKICMKQEAgLTU2MCw3ICs1NjAsNiBAQAogYm94ZXIJCQlNQUNIX0JPWEVSCQlCT1hFUgkJCTU0NAogc2hlcGhlcmQJCU1BQ0hfU0hFUEhFUkQJCVNIRVBIRVJECQk1NDUKIGFtbDQyODAwYWEJCU1BQ0hfQU1MNDI4MDBBQQkJQU1MNDI4MDBBQQkJNTQ2Ci1tbDY3NDAwMQkJTUFDSF9NQUNIX1RZUEVfTUw2NzQwMDEJTUFDSF9UWVBFX01MNjc0MDAxCTU0NwogbHBjMjI5NAkJCU1BQ0hfTFBDMjI5NAkJTFBDMjI5NAkJCTU0OAogc3dpdGNoZ3Jhc3MJCU1BQ0hfU1dJVENIR1JBU1MJU1dJVENIR1JBU1MJCTU0OQogZW5zX2NtdQkJCU1BQ0hfRU5TX0NNVQkJRU5TX0NNVQkJCTU1MApAQCAtNzQ4LDcgKzc0Nyw2IEBACiBpdGU4MTUyCQkJTUFDSF9JVEU4MTUyCQlJVEU4MTUyCQkJNzM1CiBscGMzeHh4CQkJTUFDSF9MUEMzWFhYCQlMUEMzWFhYCQkJNzM2CiBwdXBwZXRlZXIJCU1BQ0hfUFVQUEVURUVSCQlQVVBQRVRFRVIJCTczNwotdnQwMDEJCQlNQUNIX01BQ0hfVkFEQVRFQ0gJTUFDSF9WQURBVEVDSAkJNzM4CiBlNTcwCQkJTUFDSF9FNTcwCQlFNTcwCQkJNzM5CiB4NTAJCQlNQUNIX1g1MAkJWDUwCQkJNzQwCiByZWNvbgkJCU1BQ0hfUkVDT04JCVJFQ09OCQkJNzQxCkBAIC04MzksNyArODM3LDcgQEAKIG9tYXBfZ3NhbXBsZQkJTUFDSF9PTUFQX0dTQU1QTEUJT01BUF9HU0FNUExFCQk4MjYKIHJlYWx2aWV3X2ViCQlNQUNIX1JFQUxWSUVXX0VCCVJFQUxWSUVXX0VCCQk4MjcKIHNhbW9hCQkJTUFDSF9TQU1PQQkJU0FNT0EJCQk4MjgKLXQzeHNjYWxlCQlNQUNIX1QzWFNDQUxFCQlUM1hTQ0FMRQkJODI5CitwYWxtdDMJCQlNQUNIX1BBTE1UMwkJUEFMTVQzCQkJODI5CiBpODc4CQkJTUFDSF9JODc4CQlJODc4CQkJODMwCiBib3J6b2kJCQlNQUNIX0JPUlpPSQkJQk9SWk9JCQkJODMxCiBnZWNrbwkJCU1BQ0hfR0VDS08JCUdFQ0tPCQkJODMyCkBAIC04OTUsNyArODkzLDcgQEAKIG9taV9ib2FyZAkJTUFDSF9PTUlfQk9BUkQJCU9NSV9CT0FSRAkJODgyCiBteDIxY2l2CQkJTUFDSF9NWDIxQ0lWCQlNWDIxQ0lWCQkJODgzCiBtYWhpX2NkYWMJCU1BQ0hfTUFISV9DREFDCQlNQUhJX0NEQUMJCTg4NAoteHNjYWxlX3BhbG10eAkJTUFDSF9YU0NBTEVfUEFMTVRYCVhTQ0FMRV9QQUxNVFgJCTg4NQorcGFsbXR4CQkJTUFDSF9QQUxNVFgJCVBBTE1UWAkJCTg4NQogczNjMjQxMwkJCU1BQ0hfUzNDMjQxMwkJUzNDMjQxMwkJCTg4Nwogc2Ftc3lzX2VwMAkJTUFDSF9TQU1TWVNfRVAwCQlTQU1TWVNfRVAwCQk4ODgKIHdnMzAydjEJCQlNQUNIX1dHMzAyVjEJCVdHMzAyVjEJCQk4ODkKQEAgLTkxOCw3ICs5MTYsNyBAQAogYXBmOTMyOAkJCU1BQ0hfQVBGOTMyOAkJQVBGOTMyOAkJCTkwNgogb21hcF93aXBvcQkJTUFDSF9PTUFQX1dJUE9RCQlPTUFQX1dJUE9RCQk5MDcKIG9tYXBfdHdpcAkJTUFDSF9PTUFQX1RXSVAJCU9NQVBfVFdJUAkJOTA4Ci14c2NhbGVfdHJlbzY1MAkJTUFDSF9YU0NBTEVfUEFMTVRSRU82NTAJWFNDQUxFX1BBTE1UUkVPNjUwCTkwOQorcGFsbXRyZW82NTAJCU1BQ0hfUEFMTVRSRU82NTAJUEFMTVRSRU82NTAJCTkwOQogYWN1bWVuCQkJTUFDSF9BQ1VNRU4JCUFDVU1FTgkJCTkxMAogeHAxMDAJCQlNQUNIX1hQMTAwCQlYUDEwMAkJCTkxMQogZnMyNDEwCQkJTUFDSF9GUzI0MTAJCUZTMjQxMAkJCTkxMgpAQCAtOTI2LDggKzkyNCw4IEBACiBzcTJmdGxwYWxtCQlNQUNIX1NRMkZUTFBBTE0JCVNRMkZUTFBBTE0JCTkxNAogYnNlbXNlcnZlcgkJTUFDSF9CU0VNU0VSVkVSCQlCU0VNU0VSVkVSCQk5MTUKIG5ldGNsaWVudAkJTUFDSF9ORVRDTElFTlQJCU5FVENMSUVOVAkJOTE2Ci14c2NhbGVfcGFsbXR0NQkJTUFDSF9YU0NBTEVfUEFMTVRUNQlYU0NBTEVfUEFMTVRUNQkJOTE3Ci14c2NhbGVfcGFsbXRjCQlNQUNIX09NQVBfUEFMTVRDCU9NQVBfUEFMTVRDCQk5MTgKK3BhbG10NQkJCU1BQ0hfUEFMTVQ1CQlQQUxNVDUJCQk5MTcKK3BhbG10YwkJCU1BQ0hfUEFMTVRDCQlQQUxNVEMJCQk5MTgKIG9tYXBfYXBvbGxvbgkJTUFDSF9PTUFQX0FQT0xMT04JT01BUF9BUE9MTE9OCQk5MTkKIG14YzMwMDMwZXZiCQlNQUNIX01YQzMwMDMwRVZCCU1YQzMwMDMwRVZCCQk5MjAKIHJlYV8yZAkJCU1BQ0hfUkVBXzJECQlSRUFfMkQJCQk5MjEKQEAgLTEyMjAsNyArMTIxOCw2IEBACiBlbTcyMTAJCQlNQUNIX0VNNzIxMAkJRU03MjEwCQkJMTIxMgogaHRjaGVybWVzCQlNQUNIX0hUQ0hFUk1FUwkJSFRDSEVSTUVTCQkxMjEzCiBldGlfYzEJCQlNQUNIX0VUSV9DMQkJRVRJX0MxCQkJMTIxNAotbWFjaF9kZXAyNDEwCQlNQUNIX01BQ0hfREVQMjQxMAlNQUNIX0RFUDI0MTAJCTEyMTUKIGFjMTAwCQkJTUFDSF9BQzEwMAkJQUMxMDAJCQkxMjE2CiBzbmVldGNoCQkJTUFDSF9TTkVFVENICQlTTkVFVENICQkJMTIxNwogc3R1ZGVudG1hdGUJCU1BQ0hfU1RVREVOVE1BVEUJU1RVREVOVE1BVEUJCTEyMTgKQEAgLTE0MjEsMTAgKzE0MTgsMTAgQEAKIGNudHlfdGl0YW4JCU1BQ0hfQ05UWV9USVRBTgkJQ05UWV9USVRBTgkJMTQxOAogYXBwM3h4CQkJTUFDSF9BUFAzWFgJCUFQUDNYWAkJCTE0MTkKIHNpZGVvYXRzZ3JhbWEJCU1BQ0hfU0lERU9BVFNHUkFNQQlTSURFT0FUU0dSQU1BCQkxNDIwCi14c2NhbGVfcGFsbXQ3MDBwCU1BQ0hfWFNDQUxFX1BBTE1UNzAwUAlYU0NBTEVfUEFMTVQ3MDBQCTE0MjEKLXhzY2FsZV9wYWxtdDcwMHcJTUFDSF9YU0NBTEVfUEFMTVQ3MDBXCVhTQ0FMRV9QQUxNVDcwMFcJMTQyMgoteHNjYWxlX3BhbG10NzUwCQlNQUNIX1hTQ0FMRV9QQUxNVDc1MAlYU0NBTEVfUEFMTVQ3NTAJCTE0MjMKLXhzY2FsZV9wYWxtdDc1NXAJTUFDSF9YU0NBTEVfUEFMTVQ3NTVQCVhTQ0FMRV9QQUxNVDc1NVAJMTQyNAorcGFsbXRyZW83MDBwCQlNQUNIX1BBTE1UUkVPNzAwUAlQQUxNVFJFTzcwMFAJCTE0MjEKK3BhbG10cmVvNzAwdwkJTUFDSF9QQUxNVFJFTzcwMFcJUEFMTVRSRU83MDBXCQkxNDIyCitwYWxtdHJlbzc1MAkJTUFDSF9QQUxNVFJFTzc1MAlQQUxNVFJFTzc1MAkJMTQyMworcGFsbXRyZW83NTVwCQlNQUNIX1BBTE1UUkVPNzU1UAlQQUxNVFJFTzc1NVAJCTE0MjQKIGV6cmVnYW51dDkyMDAJCU1BQ0hfRVpSRUdBTlVUOTIwMAlFWlJFR0FOVVQ5MjAwCQkxNDI1CiBzYXJnZQkJCU1BQ0hfU0FSR0UJCVNBUkdFCQkJMTQyNgogYTY5NgkJCU1BQ0hfQTY5NgkJQTY5NgkJCTE0MjcKQEAgLTE0NjMsNyArMTQ2MCw3IEBACiBodGN0aXRhbgkJTUFDSF9IVENUSVRBTgkJSFRDVElUQU4JCTE0NjMKIHFyYW5pdW0JCQlNQUNIX1FSQU5JVU0JCVFSQU5JVU0JCQkxNDY0CiBhZHhfd3NjMgkJTUFDSF9BRFhfV1NDMgkJQURYX1dTQzIJCTE0NjUKLWFkeF9tZWRjb20JCU1BQ0hfQURYX01FRElORVQJQURYX01FRElORVQJCTE0NjYKK2FkeF9tZWRjb20JCU1BQ0hfQURYX01FRENPTQkJQURYX01FRENPTQkJMTQ2NgogYmJvYXJkCQkJTUFDSF9CQk9BUkQJCUJCT0FSRAkJCTE0NjcKIGNhbWJyaWEJCQlNQUNIX0NBTUJSSUEJCUNBTUJSSUEJCQkxNDY4CiBtdDd4eHgJCQlNQUNIX01UN1hYWAkJTVQ3WFhYCQkJMTQ2OQpAQCAtMTUxOSw3ICsxNTE2LDcgQEAKIGNvcnNpY2EJCQlNQUNIX0NPUlNJQ0EJCUNPUlNJQ0EJCQkxNTE5CiBiaWdleWUJCQlNQUNIX0JJR0VZRQkJQklHRVlFCQkJMTUyMAogdGxsNTAwMAkJCU1BQ0hfVExMNTAwMAkJVExMNTAwMAkJCTE1MjIKLWhuaTI3MAkJCU1BQ0hfSE5JX1gyNzAJCUhOSV9YMjcwCQkxNTIzCitiZWJvdAkJCU1BQ0hfQkVCT1QJCUJFQk9UCQkJMTUyMwogcW9uZwkJCU1BQ0hfUU9ORwkJUU9ORwkJCTE1MjQKIHRjb21wYWN0CQlNQUNIX1RDT01QQUNUCQlUQ09NUEFDVAkJMTUyNQogcHVtYTUJCQlNQUNIX1BVTUE1CQlQVU1BNQkJCTE1MjYKQEAgLTE2MzYsNyArMTYzMyw2IEBACiBwYWxlcm1vYwkJTUFDSF9QQUxFUk1PQwkJUEFMRVJNT0MJCTE2MzgKIG9tYXBfbGRwCQlNQUNIX09NQVBfTERQCQlPTUFQX0xEUAkJMTYzOQogaXA1MDAJCQlNQUNIX0lQNTAwCQlJUDUwMAkJCTE2NDAKLW14MzVhZHMJCQlNQUNIX01BQ0hfTVgzNUFEUwlNQUNIX01YMzVBRFMJCTE2NDEKIGFzZTIJCQlNQUNIX0FTRTIJCUFTRTIJCQkxNjQyCiBteDM1ZXZiCQkJTUFDSF9NWDM1RVZCCQlNWDM1RVZCCQkJMTY0MwogYW1sX204MDUwCQlNQUNIX0FNTF9NODA1MAkJQU1MX004MDUwCQkxNjQ0CkBAIC0xNjQ3LDcgKzE2NDMsNyBAQAogdHJpemVwczR3bAkJTUFDSF9UUklaRVBTNFdMCQlUUklaRVBTNFdMCQkxNjQ5CiB0cml6ZXBzNQkJTUFDSF9UUklaRVBTNQkJVFJJWkVQUzUJCTE2NTAKIG1hcmxpbgkJCU1BQ0hfTUFSTElOCQlNQVJMSU4JCQkxNjUxCi10czc4MDAJCQlNQUNIX1RTNzgwMAkJVFM3ODAwCQkJMTY1MgordHM3OHh4CQkJTUFDSF9UUzc4WFgJCVRTNzhYWAkJCTE2NTIKIGhwaXBhcTIxNAkJTUFDSF9IUElQQVEyMTQJCUhQSVBBUTIxNAkJMTY1MwogYXQ1NzJkOTQwZGNtCQlNQUNIX0FUNTcyRDk0MERDTQlBVDU3MkQ5NDBEQ00JCTE2NTQKIG5lMWJvYXJkCQlNQUNIX05FMUJPQVJECQlORTFCT0FSRAkJMTY1NQpAQCAtMTcyMCwzICsxNzE2LDk5IEBACiBsZ19rczIwCQkJTUFDSF9MR19LUzIwCQlMR19LUzIwCQkJMTcyNQogaGhncHMJCQlNQUNIX0hIR1BTCQlISEdQUwkJCTE3MjYKIG5va2lhX244MTBfd2ltYXgJTUFDSF9OT0tJQV9OODEwX1dJTUFYCU5PS0lBX044MTBfV0lNQVgJMTcyNworaW5zaWdodAkJCU1BQ0hfSU5TSUdIVAkJSU5TSUdIVAkJCTE3MjgKK3NhcHBoaXJlCQlNQUNIX1NBUFBISVJFCQlTQVBQSElSRQkJMTcyOQorY3NiNjM3eG8JCU1BQ0hfQ1NCNjM3WE8JCUNTQjYzN1hPCQkxNzMwCitldmlzaW9uZwkJTUFDSF9FVklTSU9ORwkJRVZJU0lPTkcJCTE3MzEKK3N0bXAzN3h4CQlNQUNIX1NUTVAzN1hYCQlTVE1QMzdYWAkJMTczMgorc3RtcDM3OHgJCU1BQ0hfU1RNUDM4WFgJCVNUTVAzOFhYCQkxNzMzCit0bnQJCQlNQUNIX1ROVAkJVE5UCQkJMTczNAordGJ4dAkJCU1BQ0hfVEJYVAkJVEJYVAkJCTE3MzUKK3BsYXltYXRlCQlNQUNIX1BMQVlNQVRFCQlQTEFZTUFURQkJMTczNgorcG5zMTAJCQlNQUNIX1BOUzEwCQlQTlMxMAkJCTE3MzcKK2V6bmF2aQkJCU1BQ0hfRVpOQVZJCQlFWk5BVkkJCQkxNzM4CitwczQwMDAJCQlNQUNIX1BTNDAwMAkJUFM0MDAwCQkJMTczOQorZXp4X2E3ODAJCU1BQ0hfRVpYX0E3ODAJCUVaWF9BNzgwCQkxNzQwCitlenhfZTY4MAkJTUFDSF9FWlhfRTY4MAkJRVpYX0U2ODAJCTE3NDEKK2V6eF9hMTIwMAkJTUFDSF9FWlhfQTEyMDAJCUVaWF9BMTIwMAkJMTc0MgorZXp4X2U2CQkJTUFDSF9FWlhfRTYJCUVaWF9FNgkJCTE3NDMKK2V6eF9lMgkJCU1BQ0hfRVpYX0UyCQlFWlhfRTIJCQkxNzQ0CitlenhfYTkxMAkJTUFDSF9FWlhfQTkxMAkJRVpYX0E5MTAJCTE3NDUKK2N3bXgzMQkJCU1BQ0hfQ1dNWDMxCQlDV01YMzEJCQkxNzQ2CitzbDIzMTIJCQlNQUNIX1NMMjMxMgkJU0wyMzEyCQkJMTc0NworYmxlbm55CQkJTUFDSF9CTEVOTlkJCUJMRU5OWQkJCTE3NDgKK2RzMTA3CQkJTUFDSF9EUzEwNwkJRFMxMDcJCQkxNzQ5Citkc3gwNwkJCU1BQ0hfRFNYMDcJCURTWDA3CQkJMTc1MAorcGljb2NvbTEJCU1BQ0hfUElDT0NPTTEJCVBJQ09DT00xCQkxNzUxCitseW54X3dvbHZlcmluZQkJTUFDSF9MWU5YX1dPTFZFUklORQlMWU5YX1dPTFZFUklORQkJMTc1MgordWJpc3lzX3A5X3NjMTkJCU1BQ0hfVUJJU1lTX1A5X1NDMTkJVUJJU1lTX1A5X1NDMTkJCTE3NTMKK2tyYXRvc19sb3cJCU1BQ0hfS1JBVE9TX0xPVwkJS1JBVE9TX0xPVwkJMTc1NAorbTcwMAkJCU1BQ0hfTTcwMAkJTTcwMAkJCTE3NTUKK2VkbWluaV92MgkJTUFDSF9FRE1JTklfVjIJCUVETUlOSV9WMgkJMTc1NgoremlwaXQyCQkJTUFDSF9aSVBJVDIJCVpJUElUMgkJCTE3NTcKK2hzbGZlbXRvY2VsbAkJTUFDSF9IU0xGRU1UT0NFTEwJSFNMRkVNVE9DRUxMCQkxNzU4CitkYWludHJlZV9hdDkxCQlNQUNIX0RBSU5UUkVFX0FUOTEJREFJTlRSRUVfQVQ5MQkJMTc1OQorc2c1NjB1c2IJCU1BQ0hfU0c1NjBVU0IJCVNHNTYwVVNCCQkxNzYwCitvbWFwM19wYW5kb3JhCQlNQUNIX09NQVAzX1BBTkRPUkEJT01BUDNfUEFORE9SQQkJMTc2MQordXNyODIwMAkJCU1BQ0hfVVNSODIwMAkJVVNSODIwMAkJCTE3NjIKK3MxczY1awkJCU1BQ0hfUzFTNjVLCQlTMVM2NUsJCQkxNzYzCitzMnM2NWEJCQlNQUNIX1MyUzY1QQkJUzJTNjVBCQkJMTc2NAoraWNvcmUJCQlNQUNIX0lDT1JFCQlJQ09SRQkJCTE3NjUKK21zczIJCQlNQUNIX01TUzIJCU1TUzIJCQkxNzY2CitiZWxtb250CQkJTUFDSF9CRUxNT05UCQlCRUxNT05UCQkJMTc2NworYXN1c3A1MjUJCU1BQ0hfQVNVU1A1MjUJCUFTVVNQNTI1CQkxNzY4CitsYjg4cmM4NDgwCQlNQUNIX0xCODhSQzg0ODAJCUxCODhSQzg0ODAJCTE3NjkKK2hpcHhhCQkJTUFDSF9ISVBYQQkJSElQWEEJCQkxNzcwCitteDI1XzNkcwkJTUFDSF9NWDI1XzNEUwkJTVgyNV8zRFMJCTE3NzEKK204MDAJCQlNQUNIX004MDAJCU04MDAJCQkxNzcyCitvbWFwMzUzMF9sdl9zb20JCU1BQ0hfT01BUDM1MzBfTFZfU09NCU9NQVAzNTMwX0xWX1NPTQkJMTc3MworcHJpbWFfZXZiCQlNQUNIX1BSSU1BX0VWQgkJUFJJTUFfRVZCCQkxNzc0CitteDMxYnQxCQkJTUFDSF9NWDMxQlQxCQlNWDMxQlQxCQkJMTc3NQorYXRsYXM0X2V2YgkJTUFDSF9BVExBUzRfRVZCCQlBVExBUzRfRVZCCQkxNzc2CitteDMxY2ljYWRhCQlNQUNIX01YMzFDSUNBREEJCU1YMzFDSUNBREEJCTE3NzcKK21pNDI0d3IJCQlNQUNIX01JNDI0V1IJCU1JNDI0V1IJCQkxNzc4CitheHNfdWx0cmF4CQlNQUNIX0FYU19VTFRSQVgJCUFYU19VTFRSQVgJCTE3NzkKK2F0NTcyZDk0MGRlYgkJTUFDSF9BVDU3MkQ5NDBERUIJQVQ1NzJEOTQwREVCCQkxNzgwCitkYXZpbmNpX2RhOHh4X2V2bQlNQUNIX0RBVklOQ0lfREE4WFhfRVZNCURBVklOQ0lfREE4WFhfRVZNCTE3ODEKK2VwOTMwMgkJCU1BQ0hfRVA5MzAyCQlFUDkzMDIJCQkxNzgyCithdDU3MmQ5NDBoZmViCQlNQUNIX0FUNTcyRDk0MEhGRUIJQVQ1NzJEOTQwSEZFQgkJMTc4MworY3lib29rMwkJCU1BQ0hfQ1lCT09LMwkJQ1lCT09LMwkJCTE3ODQKK3dkZzAwMgkJCU1BQ0hfV0RHMDAyCQlXREcwMDIJCQkxNzg1CitzZzU2MGFkc2wJCU1BQ0hfU0c1NjBBRFNMCQlTRzU2MEFEU0wJCTE3ODYKK25leHRpb19uMjgwMF9pY2EJTUFDSF9ORVhUSU9fTjI4MDBfSUNBCU5FWFRJT19OMjgwMF9JQ0EJMTc4NworbWFydmVsbF9uZXdkYgkJTUFDSF9NQVJWRUxMX05FV0RCCU1BUlZFTExfTkVXREIJCTE3ODkKK3ZhbmRpaHVkCQlNQUNIX1ZBTkRJSFVECQlWQU5ESUhVRAkJMTc5MAorbWFneF9lOAkJCU1BQ0hfTUFHWF9FOAkJTUFHWF9FOAkJCTE3OTEKK21hZ3hfejYJCQlNQUNIX01BR1hfWjYJCU1BR1hfWjYJCQkxNzkyCittYWd4X3Y4CQkJTUFDSF9NQUdYX1Y4CQlNQUdYX1Y4CQkJMTc5MworbWFneF91OQkJCU1BQ0hfTUFHWF9VOQkJTUFHWF9VOQkJCTE3OTQKK3RvdWdoY2YwOAkJTUFDSF9UT1VHSENGMDgJCVRPVUdIQ0YwOAkJMTc5NQorenc0NDAwCQkJTUFDSF9aVzQ0MDAJCVpXNDQwMAkJCTE3OTYKK21hcmF0OTEJCQlNQUNIX01BUkFUOTEJCU1BUkFUOTEJCQkxNzk3CitvdmVybwkJCU1BQ0hfT1ZFUk8JCU9WRVJPCQkJMTc5OAorYXQyNDQwZXZiCQlNQUNIX0FUMjQ0MEVWQgkJQVQyNDQwRVZCCQkxNzk5CituZW9jb3JlOTI2CQlNQUNIX05FT0NPUkU5MjYJCU5FT0NPUkU5MjYJCTE4MDAKK3ducjg1NHQJCQlNQUNIX1dOUjg1NFQJCVdOUjg1NFQJCQkxODAxCitpbXgyNwkJCU1BQ0hfSU1YMjcJCUlNWDI3CQkJMTgwMgorbW9vc2VfZGIJCU1BQ0hfTU9PU0VfREIJCU1PT1NFX0RCCQkxODAzCitmYWI0CQkJTUFDSF9GQUI0CQlGQUI0CQkJMTgwNAoraHRjZGlhbW9uZAkJTUFDSF9IVENESUFNT05ECQlIVENESUFNT05ECQkxODA1CitmaW9uYQkJCU1BQ0hfRklPTkEJCUZJT05BCQkJMTgwNgorbXhjMzAwMzBfeAkJTUFDSF9NWEMzMDAzMF9YCQlNWEMzMDAzMF9YCQkxODA3CitibXAxMDAwCQkJTUFDSF9CTVAxMDAwCQlCTVAxMDAwCQkJMTgwOAorbG9naTkyMDAJCU1BQ0hfTE9HSTkyMDAJCUxPR0k5MjAwCQkxODA5Cit0cW1hMzEJCQlNQUNIX1RRTUEzMQkJVFFNQTMxCQkJMTgxMAorY2N3OXA5MjE1anMJCU1BQ0hfQ0NXOVA5MjE1SlMJQ0NXOVA5MjE1SlMJCTE4MTEKK3JkODhmNTE4MWxfZ2UJCU1BQ0hfUkQ4OEY1MTgxTF9HRQlSRDg4RjUxODFMX0dFCQkxODEyCitzaWZtYWluCQkJTUFDSF9TSUZNQUlOCQlTSUZNQUlOCQkJMTgxMworc2FtOV9sOTI2MQkJTUFDSF9TQU05X0w5MjYxCQlTQU05X0w5MjYxCQkxODE0CitjYzltMjQ0M2pzCQlNQUNIX0NDOU0yNDQzSlMJCUNDOU0yNDQzSlMJCTE4MTUKK3hhcmlhMzAwCQlNQUNIX1hBUklBMzAwCQlYQVJJQTMwMAkJMTgxNgoraXQ5MjAwCQkJTUFDSF9JVDkyMDAJCUlUOTIwMAkJCTE4MTcKK3JkODhmNTE4MWxfZnhvCQlNQUNIX1JEODhGNTE4MUxfRlhPCVJEODhGNTE4MUxfRlhPCQkxODE4Citrcmlzc19zZW5zb3IJCU1BQ0hfS1JJU1NfU0VOU09SCUtSSVNTX1NFTlNPUgkJMTgxOQorcGlsel9wbWk1CQlNQUNIX1BJTFpfUE1JNQkJUElMWl9QTUk1CQkxODIwCitqYWRlCQkJTUFDSF9KQURFCQlKQURFCQkJMTgyMQora3M4Njk1X3NvZnRwbGMJCU1BQ0hfS1M4Njk1X1NPRlRQTEMJS1M4Njk1X1NPRlRQTEMJCTE4MjIKK2dwcmlzYzQJCQlNQUNIX0dQUklTQzQJCUdQUklTQzQJCQkxODIzCitzdGFtcDkyNjAJCU1BQ0hfU1RBTVA5MjYwCQlTVEFNUDkyNjAJCTE4MjQKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvS2NvbmZpZyBiL2FyY2gvYXZyMzIvS2NvbmZpZwppbmRleCAwOWFkNzk5Li40NWQ2M2M5IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL0tjb25maWcKKysrIGIvYXJjaC9hdnIzMi9LY29uZmlnCkBAIC04OCw2ICs4OCw3IEBACiAJc2VsZWN0IE1NVQogCXNlbGVjdCBQRVJGT1JNQU5DRV9DT1VOVEVSUwogCXNlbGVjdCBIQVZFX0dQSU9fTElCCisJc2VsZWN0IEdFTkVSSUNfQUxMT0NBVE9SCiAKICMKICMgQ1BVIHR5cGVzCkBAIC0xNDcsNiArMTQ4LDkgQEAKIAogc291cmNlICJrZXJuZWwvS2NvbmZpZy5wcmVlbXB0IgogCitjb25maWcgUVVJQ0tMSVNUCisJZGVmX2Jvb2wgeQorCiBjb25maWcgSEFWRV9BUkNIX0JPT1RNRU1fTk9ERQogCWRlZl9ib29sIG4KIApAQCAtMjAxLDYgKzIwNSwxMSBAQAogCiBtZW51ICJQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMiCiAKK3NvdXJjZSAia2VybmVsL3Bvd2VyL0tjb25maWciCisKK2NvbmZpZyBBUkNIX1NVU1BFTkRfUE9TU0lCTEUKKwlkZWZfYm9vbCB5CisKIG1lbnUgIkNQVSBGcmVxdWVuY3kgc2NhbGluZyIKIAogc291cmNlICJkcml2ZXJzL2NwdWZyZXEvS2NvbmZpZyIKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0bmd3MTAwL3NldHVwLmMgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdG5ndzEwMC9zZXR1cC5jCmluZGV4IGEzOThiZTIuLmE1MWJiOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0bmd3MTAwL3NldHVwLmMKKysrIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRuZ3cxMDAvc2V0dXAuYwpAQCAtOSw2ICs5LDggQEAKICAqLwogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2V0aGVyZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaXJxLmg+CisjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLWdwaW8uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgpAQCAtMjUsNiArMjcsMTMgQEAKICNpbmNsdWRlIDxhc20vYXJjaC9pbml0Lmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcG9ydG11eC5oPgogCisvKiBPc2NpbGxhdG9yIGZyZXF1ZW5jaWVzLiBUaGVzZSBhcmUgYm9hcmQtc3BlY2lmaWMgKi8KK3Vuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbM10gPSB7CisJWzBdID0gMzI3NjgsCS8qIDMyLjc2OCBrSHogb24gUlRDIG9zYyAqLworCVsxXSA9IDIwMDAwMDAwLAkvKiAyMCBNSHogb24gb3NjMCAqLworCVsyXSA9IDEyMDAwMDAwLAkvKiAxMiBNSHogb24gb3NjMSAqLworfTsKKwogLyogSW5pdGlhbGl6ZWQgYnkgYm9vdGxvYWRlci1zcGVjaWZpYyBzdGFydHVwIGNvZGUuICovCiBzdHJ1Y3QgdGFnICpib290bG9hZGVyX3RhZ3MgX19pbml0ZGF0YTsKIApAQCAtMTQwLDYgKzE0OSwxMCBAQAogCX0sCiB9OwogCitzdGF0aWMgc3RydWN0IGkyY19ib2FyZF9pbmZvIF9faW5pdGRhdGEgaTJjX2luZm9bXSA9IHsKKwkvKiBOT1RFOiAgb3JpZ2luYWwgQVR0aW55MjQgZmlybXdhcmUgaXMgYXQgYWRkcmVzcyAweDBiICovCit9OworCiBzdGF0aWMgaW50IF9faW5pdCBhdG5ndzEwMF9pbml0KHZvaWQpCiB7CiAJdW5zaWduZWQJaTsKQEAgLTE2NSwxMiArMTc4LDI4IEBACiAJfQogCXBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcigmbmd3X2dwaW9fbGVkcyk7CiAKKwkvKiBhbGwgdGhlc2UgaTJjL3NtYnVzIHBpbnMgc2hvdWxkIGhhdmUgZXh0ZXJuYWwgcHVsbHVwcyBmb3IKKwkgKiBvcGVuLWRyYWluIHNoYXJpbmcgYW1vbmcgYWxsIEkyQyBkZXZpY2VzLiAgU0RBIGFuZCBTQ0wgZG87CisJICogUEIyOC9FWFRJTlQzIGRvZXNuJ3Q7IGl0IHNob3VsZCBiZSBTTUJBTEVSVCMgKGZvciBQTUJ1cyksCisJICogYnV0IGl0J3Mgbm90IGF2YWlsYWJsZSBvZmYtYm9hcmQuCisJICovCisJYXQzMl9zZWxlY3RfcGVyaXBoKEdQSU9fUElOX1BCKDI4KSwgMCwgQVQzMl9HUElPRl9QVUxMVVApOwogCWF0MzJfc2VsZWN0X2dwaW8oaTJjX2dwaW9fZGF0YS5zZGFfcGluLAogCQlBVDMyX0dQSU9GX01VTFRJRFJWIHwgQVQzMl9HUElPRl9PVVRQVVQgfCBBVDMyX0dQSU9GX0hJR0gpOwogCWF0MzJfc2VsZWN0X2dwaW8oaTJjX2dwaW9fZGF0YS5zY2xfcGluLAogCQlBVDMyX0dQSU9GX01VTFRJRFJWIHwgQVQzMl9HUElPRl9PVVRQVVQgfCBBVDMyX0dQSU9GX0hJR0gpOwogCXBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmaTJjX2dwaW9fZGV2aWNlKTsKKwlpMmNfcmVnaXN0ZXJfYm9hcmRfaW5mbygwLCBpMmNfaW5mbywgQVJSQVlfU0laRShpMmNfaW5mbykpOwogCiAJcmV0dXJuIDA7CiB9CiBwb3N0Y29yZV9pbml0Y2FsbChhdG5ndzEwMF9pbml0KTsKKworc3RhdGljIGludCBfX2luaXQgYXRuZ3cxMDBfYXJjaF9pbml0KHZvaWQpCit7CisJLyogc2V0X2lycV90eXBlKCkgYWZ0ZXIgdGhlIGFyY2hfaW5pdGNhbGwgZm9yIEVJQyBoYXMgcnVuLCBhbmQKKwkgKiBiZWZvcmUgdGhlIEkyQyBzdWJzeXN0ZW0gY291bGQgdHJ5IHVzaW5nIHRoaXMgSVJRLgorCSAqLworCXJldHVybiBzZXRfaXJxX3R5cGUoQVQzMl9FWFRJTlQoMyksIElSUV9UWVBFX0VER0VfRkFMTElORyk7Cit9CithcmNoX2luaXRjYWxsKGF0bmd3MTAwX2FyY2hfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAyLmMgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAyLmMKaW5kZXggMDAwZWI0Mi4uODZiMzYzYyAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMi5jCisrKyBiL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDIuYwpAQCAtMjgsNiArMjgsMTIgQEAKIAogI2luY2x1ZGUgImF0c3RrMTAwMC5oIgogCisvKiBPc2NpbGxhdG9yIGZyZXF1ZW5jaWVzLiBUaGVzZSBhcmUgYm9hcmQgc3BlY2lmaWMgKi8KK3Vuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbM10gPSB7CisJWzBdID0gMzI3NjgsCS8qIDMyLjc2OCBrSHogb24gUlRDIG9zYyAqLworCVsxXSA9IDIwMDAwMDAwLAkvKiAyMCBNSHogb24gb3NjMCAqLworCVsyXSA9IDEyMDAwMDAwLAkvKiAxMiBNSHogb24gb3NjMSAqLworfTsKIAogc3RydWN0IGV0aF9hZGRyIHsKIAl1OCBhZGRyWzZdOwpAQCAtMjMyLDcgKzIzOCw3IEBACiAJc2V0X2h3X2FkZHIoYXQzMl9hZGRfZGV2aWNlX2V0aCgxLCAmZXRoX2RhdGFbMV0pKTsKICNlbHNlCiAJYXQzMl9hZGRfZGV2aWNlX2xjZGMoMCwgJmF0c3RrMTAwMF9sY2RjX2RhdGEsCi0JCQkgICAgIGZibWVtX3N0YXJ0LCBmYm1lbV9zaXplKTsKKwkJCSAgICAgZmJtZW1fc3RhcnQsIGZibWVtX3NpemUsIDApOwogI2VuZGlmCiAJYXQzMl9hZGRfZGV2aWNlX3VzYmEoMCwgTlVMTCk7CiAjaWZuZGVmIENPTkZJR19CT0FSRF9BVFNUSzEwMFhfU1czX0NVU1RPTQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMy5jIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwMy5jCmluZGV4IGEwYjIyM2QuLmVhMTA5ZjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDMuYworKysgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDAzLmMKQEAgLTI3LDYgKzI3LDEzIEBACiAKICNpbmNsdWRlICJhdHN0azEwMDAuaCIKIAorLyogT3NjaWxsYXRvciBmcmVxdWVuY2llcy4gVGhlc2UgYXJlIGJvYXJkIHNwZWNpZmljICovCit1bnNpZ25lZCBsb25nIGF0MzJfYm9hcmRfb3NjX3JhdGVzWzNdID0geworCVswXSA9IDMyNzY4LAkvKiAzMi43Njgga0h6IG9uIFJUQyBvc2MgKi8KKwlbMV0gPSAyMDAwMDAwMCwJLyogMjAgTUh6IG9uIG9zYzAgKi8KKwlbMl0gPSAxMjAwMDAwMCwJLyogMTIgTUh6IG9uIG9zYzEgKi8KK307CisKICNpZmRlZiBDT05GSUdfQk9BUkRfQVRTVEsxMDAwX0VYVERBQwogc3RhdGljIHN0cnVjdCBhdDczYzIxM19ib2FyZF9pbmZvIGF0NzNjMjEzX2RhdGEgPSB7CiAJLnNzY19pZAkJPSAwLApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwNC5jIGIvYXJjaC9hdnIzMi9ib2FyZHMvYXRzdGsxMDAwL2F0c3RrMTAwNC5jCmluZGV4IGU3NjVhODYuLmM3MjM2ZGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvYm9hcmRzL2F0c3RrMTAwMC9hdHN0azEwMDQuYworKysgYi9hcmNoL2F2cjMyL2JvYXJkcy9hdHN0azEwMDAvYXRzdGsxMDA0LmMKQEAgLTI5LDYgKzI5LDEzIEBACiAKICNpbmNsdWRlICJhdHN0azEwMDAuaCIKIAorLyogT3NjaWxsYXRvciBmcmVxdWVuY2llcy4gVGhlc2UgYXJlIGJvYXJkIHNwZWNpZmljICovCit1bnNpZ25lZCBsb25nIGF0MzJfYm9hcmRfb3NjX3JhdGVzWzNdID0geworCVswXSA9IDMyNzY4LAkvKiAzMi43Njgga0h6IG9uIFJUQyBvc2MgKi8KKwlbMV0gPSAyMDAwMDAwMCwJLyogMjAgTUh6IG9uIG9zYzAgKi8KKwlbMl0gPSAxMjAwMDAwMCwJLyogMTIgTUh6IG9uIG9zYzEgKi8KK307CisKICNpZmRlZiBDT05GSUdfQk9BUkRfQVRTVEsxMDAwX0VYVERBQwogc3RhdGljIHN0cnVjdCBhdDczYzIxM19ib2FyZF9pbmZvIGF0NzNjMjEzX2RhdGEgPSB7CiAJLnNzY19pZAkJPSAwLApAQCAtMTMzLDcgKzE0MCw3IEBACiAJYXQzMl9hZGRfZGV2aWNlX21jaSgwKTsKICNlbmRpZgogCWF0MzJfYWRkX2RldmljZV9sY2RjKDAsICZhdHN0azEwMDBfbGNkY19kYXRhLAotCQkJICAgICBmYm1lbV9zdGFydCwgZmJtZW1fc2l6ZSk7CisJCQkgICAgIGZibWVtX3N0YXJ0LCBmYm1lbV9zaXplLCAwKTsKIAlhdDMyX2FkZF9kZXZpY2VfdXNiYSgwLCBOVUxMKTsKICNpZm5kZWYgQ09ORklHX0JPQVJEX0FUU1RLMTAwWF9TVzNfQ1VTVE9NCiAJYXQzMl9hZGRfZGV2aWNlX3NzYygwLCBBVE1FTF9TU0NfVFgpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9jb25maWdzL2F0bmd3MTAwX2RlZmNvbmZpZyBiL2FyY2gvYXZyMzIvY29uZmlncy9hdG5ndzEwMF9kZWZjb25maWcKaW5kZXggMDYwNDYwNy4uMTE5ZWRiOCAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9jb25maWdzL2F0bmd3MTAwX2RlZmNvbmZpZworKysgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRuZ3cxMDBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0LXJjNwotIyBXZWQgSmFuICA5IDIzOjIwOjQxIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzMKKyMgTW9uIE1heSAyNiAxMzozMDo1OSAyMDA4CiAjCiBDT05GSUdfQVZSMzI9eQogQ09ORklHX0dFTkVSSUNfR1BJTz15CkBAIC0xMywxMCArMTMsMTAgQEAKIENPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CiBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CiBDT05GSUdfR0VORVJJQ19USU1FPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKICMgQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAotQ09ORklHX0FSQ0hfU1VQUE9SVFNfT1BST0ZJTEU9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQogQ09ORklHX0dFTkVSSUNfQlVHPXkKQEAgLTM3LDE3ICszNywxNSBAQAogQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9eQogQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjM9eQogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkBAIC02MSwxMSArNTksMTMgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19CQVNFX0ZVTEwgaXMgbm90IHNldAogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CiBDT05GSUdfRVBPTEw9eQogQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKIENPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQpAQCAtNzMsMTEgKzczLDIxIEBACiAjIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKIENPTkZJR19TTFVCPXkKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19PUFJPRklMRT1tCitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MQogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMTAxLDEwICsxMTEsMTUgQEAKIENPTkZJR19ERUZBVUxUX0NGUT15CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBTeXN0ZW0gVHlwZSBhbmQgZmVhdHVyZXMKICMKK0NPTkZJR19USUNLX09ORVNIT1Q9eQorQ09ORklHX05PX0haPXkKK0NPTkZJR19ISUdIX1JFU19USU1FUlM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogQ09ORklHX1NVQkFSQ0hfQVZSMzJCPXkKIENPTkZJR19NTVU9eQogQ09ORklHX1BFUkZPUk1BTkNFX0NPVU5URVJTPXkKQEAgLTE0MSwxNiArMTU2LDE5IEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTAKIENPTkZJR19WSVJUX1RPX0JVUz15CiAjIENPTkZJR19PV05FUlNISVBfVFJBQ0UgaXMgbm90IHNldAorQ09ORklHX05NSV9ERUJVR0dJTkc9eQogIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKIENPTkZJR19IWl8yNTA9eQogIyBDT05GSUdfSFpfMzAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzEwMDAgaXMgbm90IHNldAogQ09ORklHX0haPTI1MAorIyBDT05GSUdfU0NIRURfSFJUSUNLIGlzIG5vdCBzZXQKIENPTkZJR19DTURMSU5FPSIiCiAKICMKQEAgLTE2NCw5ICsxODIsMTAgQEAKIENPTkZJR19DUFVfRlJFUV9UQUJMRT15CiAjIENPTkZJR19DUFVfRlJFUV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRlJFUV9TVEFUIGlzIG5vdCBzZXQKLUNPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRT15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORD15CiAjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKQEAgLTIwMiw2ICsyMjEsNyBAQAogQ09ORklHX1hGUk1fVVNFUj15CiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0tFWT15CiAjIENPTkZJR19ORVRfS0VZX01JR1JBVEUgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQpAQCAtMjU1LDg3ICsyNzUsNDAgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSPXkKICMgQ09ORklHX05FVEZJTFRFUl9ERUJVRyBpcyBub3Qgc2V0Ci1DT05GSUdfQlJJREdFX05FVEZJTFRFUj15CisjIENPTkZJR19ORVRGSUxURVJfQURWQU5DRUQgaXMgbm90IHNldAogCiAjCiAjIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KICMKLSMgQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LIGlzIG5vdCBzZXQKLUNPTkZJR19ORl9DT05OVFJBQ0tfRU5BQkxFRD1tCitDT05GSUdfTkVURklMVEVSX05FVExJTks9bQorQ09ORklHX05FVEZJTFRFUl9ORVRMSU5LX0xPRz1tCiBDT05GSUdfTkZfQ09OTlRSQUNLPW0KLUNPTkZJR19ORl9DVF9BQ0NUPXkKLUNPTkZJR19ORl9DT05OVFJBQ0tfTUFSSz15Ci0jIENPTkZJR19ORl9DT05OVFJBQ0tfRVZFTlRTIGlzIG5vdCBzZXQKLUNPTkZJR19ORl9DVF9QUk9UT19HUkU9bQotIyBDT05GSUdfTkZfQ1RfUFJPVE9fU0NUUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORl9DVF9QUk9UT19VRFBMSVRFIGlzIG5vdCBzZXQKLUNPTkZJR19ORl9DT05OVFJBQ0tfQU1BTkRBPW0KIENPTkZJR19ORl9DT05OVFJBQ0tfRlRQPW0KLUNPTkZJR19ORl9DT05OVFJBQ0tfSDMyMz1tCiBDT05GSUdfTkZfQ09OTlRSQUNLX0lSQz1tCi1DT05GSUdfTkZfQ09OTlRSQUNLX05FVEJJT1NfTlM9bQotQ09ORklHX05GX0NPTk5UUkFDS19QUFRQPW0KLUNPTkZJR19ORl9DT05OVFJBQ0tfU0FORT1tCiBDT05GSUdfTkZfQ09OTlRSQUNLX1NJUD1tCi1DT05GSUdfTkZfQ09OTlRSQUNLX1RGVFA9bQorQ09ORklHX05GX0NUX05FVExJTks9bQogQ09ORklHX05FVEZJTFRFUl9YVEFCTEVTPXkKLUNPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX0NMQVNTSUZZPW0KLSMgQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09OTk1BUksgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9EU0NQIGlzIG5vdCBzZXQKIENPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX01BUks9bQotQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTkZRVUVVRT1tCiBDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9ORkxPRz1tCi0jIENPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX05PVFJBQ0sgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9UUkFDRSBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9UQ1BNU1M9bQotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UPW0KLUNPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTkJZVEVTPW0KLSMgQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OTElNSVQgaXMgbm90IHNldAotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9DT05OTUFSSz1tCiBDT05GSUdfTkVURklMVEVSX1hUX01BVENIX0NPTk5UUkFDSz1tCi0jIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRENDUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfRFNDUCBpcyBub3Qgc2V0Ci1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX0VTUD1tCi1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX0hFTFBFUj1tCi1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX0xFTkdUSD1tCi1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX0xJTUlUPW0KLUNPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTUFDPW0KIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTUFSSz1tCiBDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT1tCi1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX01VTFRJUE9SVD1tCi0jIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfUEhZU0RFViBpcyBub3Qgc2V0Ci1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BLVFRZUEU9bQotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9RVU9UQT1tCi1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX1JFQUxNPW0KLSMgQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TQ1RQIGlzIG5vdCBzZXQKIENPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfU1RBVEU9bQotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVEFUSVNUSUM9bQotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9TVFJJTkc9bQotQ09ORklHX05FVEZJTFRFUl9YVF9NQVRDSF9UQ1BNU1M9bQotIyBDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1RJTUUgaXMgbm90IHNldAotIyBDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1UzMiBpcyBub3Qgc2V0Ci1DT05GSUdfTkVURklMVEVSX1hUX01BVENIX0hBU0hMSU1JVD1tCiAKICMKICMgSVA6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCiAjCiBDT05GSUdfTkZfQ09OTlRSQUNLX0lQVjQ9bQogQ09ORklHX05GX0NPTk5UUkFDS19QUk9DX0NPTVBBVD15Ci0jIENPTkZJR19JUF9ORl9RVUVVRSBpcyBub3Qgc2V0CiBDT05GSUdfSVBfTkZfSVBUQUJMRVM9bQotQ09ORklHX0lQX05GX01BVENIX0lQUkFOR0U9bQotQ09ORklHX0lQX05GX01BVENIX1RPUz1tCi1DT05GSUdfSVBfTkZfTUFUQ0hfUkVDRU5UPW0KLUNPTkZJR19JUF9ORl9NQVRDSF9FQ049bQotQ09ORklHX0lQX05GX01BVENIX0FIPW0KLUNPTkZJR19JUF9ORl9NQVRDSF9UVEw9bQotQ09ORklHX0lQX05GX01BVENIX09XTkVSPW0KLUNPTkZJR19JUF9ORl9NQVRDSF9BRERSVFlQRT1tCiBDT05GSUdfSVBfTkZfRklMVEVSPW0KIENPTkZJR19JUF9ORl9UQVJHRVRfUkVKRUNUPW0KIENPTkZJR19JUF9ORl9UQVJHRVRfTE9HPW0KQEAgLTM0Myw1NCArMzE2LDI1IEBACiBDT05GSUdfTkZfTkFUPW0KIENPTkZJR19ORl9OQVRfTkVFREVEPXkKIENPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVFUkFERT1tCi1DT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfTkVUTUFQPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfU0FNRT1tCi1DT05GSUdfTkZfTkFUX1NOTVBfQkFTSUM9bQotQ09ORklHX05GX05BVF9QUk9UT19HUkU9bQogQ09ORklHX05GX05BVF9GVFA9bQogQ09ORklHX05GX05BVF9JUkM9bQotQ09ORklHX05GX05BVF9URlRQPW0KLUNPTkZJR19ORl9OQVRfQU1BTkRBPW0KLUNPTkZJR19ORl9OQVRfUFBUUD1tCi1DT05GSUdfTkZfTkFUX0gzMjM9bQorIyBDT05GSUdfTkZfTkFUX1RGVFAgaXMgbm90IHNldAorIyBDT05GSUdfTkZfTkFUX0FNQU5EQSBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfUFBUUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfSDMyMyBpcyBub3Qgc2V0CiBDT05GSUdfTkZfTkFUX1NJUD1tCiBDT05GSUdfSVBfTkZfTUFOR0xFPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfVE9TPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfRUNOPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfVFRMPW0KLUNPTkZJR19JUF9ORl9UQVJHRVRfQ0xVU1RFUklQPW0KLUNPTkZJR19JUF9ORl9SQVc9bQotQ09ORklHX0lQX05GX0FSUFRBQkxFUz1tCi1DT05GSUdfSVBfTkZfQVJQRklMVEVSPW0KLUNPTkZJR19JUF9ORl9BUlBfTUFOR0xFPW0KIAogIwotIyBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQorIyBJUHY2OiBOZXRmaWx0ZXIgQ29uZmlndXJhdGlvbgogIwogQ09ORklHX05GX0NPTk5UUkFDS19JUFY2PW0KLUNPTkZJR19JUDZfTkZfUVVFVUU9bQogQ09ORklHX0lQNl9ORl9JUFRBQkxFUz1tCi1DT05GSUdfSVA2X05GX01BVENIX1JUPW0KLUNPTkZJR19JUDZfTkZfTUFUQ0hfT1BUUz1tCi1DT05GSUdfSVA2X05GX01BVENIX0ZSQUc9bQotQ09ORklHX0lQNl9ORl9NQVRDSF9ITD1tCi1DT05GSUdfSVA2X05GX01BVENIX09XTkVSPW0KIENPTkZJR19JUDZfTkZfTUFUQ0hfSVBWNkhFQURFUj1tCi1DT05GSUdfSVA2X05GX01BVENIX0FIPW0KLUNPTkZJR19JUDZfTkZfTUFUQ0hfTUg9bQotQ09ORklHX0lQNl9ORl9NQVRDSF9FVUk2ND1tCiBDT05GSUdfSVA2X05GX0ZJTFRFUj1tCiBDT05GSUdfSVA2X05GX1RBUkdFVF9MT0c9bQogQ09ORklHX0lQNl9ORl9UQVJHRVRfUkVKRUNUPW0KIENPTkZJR19JUDZfTkZfTUFOR0xFPW0KLUNPTkZJR19JUDZfTkZfVEFSR0VUX0hMPW0KLUNPTkZJR19JUDZfTkZfUkFXPW0KLQotIwotIyBCcmlkZ2U6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCi0jCi0jIENPTkZJR19CUklER0VfTkZfRUJUQUJMRVMgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJUEMgaXMgbm90IHNldApAQCAtNDA3LDcgKzM1MSw2IEBACiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAotQ09ORklHX05FVF9DTFNfUk9VVEU9eQogCiAjCiAjIE5ldHdvcmsgdGVzdGluZwpAQCAtNDE1LDYgKzM1OCw3IEBACiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiAjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CkBAIC00NTAsNiArMzk0LDcgQEAKIENPTkZJR19NVERfUEFSVElUSU9OUz15CiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTUzMSwxMSArNDc2LDE4IEBACiBDT05GSUdfQkxLX0RFVl9SQU09bQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKKyMgQ09ORklHX0JMS19ERVZfWElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREUgaXMgbm90IHNldAorQ09ORklHX01JU0NfREVWSUNFUz15CisjIENPTkZJR19BVE1FTF9QV00gaXMgbm90IHNldAorQ09ORklHX0FUTUVMX1RDTElCPXkKK0NPTkZJR19BVE1FTF9UQ0JfQ0xLU1JDPXkKK0NPTkZJR19BVE1FTF9UQ0JfQ0xLU1JDX0JMT0NLPTAKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CisjIENPTkZJR19BVE1FTF9TU0MgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfSURFIGlzIG5vdCBzZXQKIAogIwogIyBTQ1NJIGRldmljZSBzdXBwb3J0CkBAIC01NjgsMTEgKzUyMCwxMyBAQAogIyBDT05GSUdfU01TQ19QSFkgaXMgbm90IHNldAogIyBDT05GSUdfQlJPQURDT01fUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lDUExVU19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVBTFRFS19QSFkgaXMgbm90IHNldAogIyBDT05GSUdfRklYRURfUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKICMgQ09ORklHX01JSSBpcyBub3Qgc2V0CiBDT05GSUdfTUFDQj15CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAogIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CkBAIC01ODYsNiArNTQwLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKIENPTkZJR19QUFA9bQogIyBDT05GSUdfUFBQX01VTFRJTElOSyBpcyBub3Qgc2V0CkBAIC01OTksNyArNTU0LDYgQEAKICMgQ09ORklHX1BQUE9MMlRQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAogQ09ORklHX1NMSEM9bQotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTYyMSw2ICs1NzUsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorIyBDT05GSUdfREVWS01FTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC02MzMsNiArNTg4LDcgQEAKICMKIENPTkZJR19TRVJJQUxfQVRNRUw9eQogQ09ORklHX1NFUklBTF9BVE1FTF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfUERDPXkKICMgQ09ORklHX1NFUklBTF9BVE1FTF9UVFlBVCBpcyBub3Qgc2V0CiBDT05GSUdfU0VSSUFMX0NPUkU9eQogQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQpAQCAtNjQwLDIxICs1OTYsMTMgQEAKICMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAotIyBDT05GSUdfUlRDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIENPTkZJR19JMkM9bQogQ09ORklHX0kyQ19CT0FSRElORk89eQogQ09ORklHX0kyQ19DSEFSREVWPW0KLQotIwotIyBJMkMgQWxnb3JpdGhtcwotIwogQ09ORklHX0kyQ19BTEdPQklUPW0KLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKIAogIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKQEAgLTY2NSwyNyArNjEzLDIzIEBACiAjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKICMKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzc0IGlzIG5vdCBzZXQKICMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQ0E5NTM5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19TUElfTUFTVEVSPXkKQEAgLTcwMiw5ICs2NDYsMjcgQEAKICMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKIENPTkZJR19TUElfU1BJREVWPW0KICMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKyMgQ09ORklHX0RFQlVHX0dQSU8gaXMgbm90IHNldAorCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fUENBOTUzWCBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPX1BDRjg1N1ggaXMgbm90IHNldAorCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fTUNQMjNTMDggaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAogQ09ORklHX1dBVENIRE9HPXkKICMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKIApAQCAtNzI0LDEyICs2ODYsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtNzUzLDE0ICs3MjUsMTIgQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCiAjCi0KLSMKLSMgVVNCIEdhZGdldCBTdXBwb3J0Ci0jCiBDT05GSUdfVVNCX0dBREdFVD15CiAjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgaXMgbm90IHNldApAQCAtNzcyLDYgKzc0Miw3IEBACiAjIENPTkZJR19VU0JfR0FER0VUX05FVDIyODAgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtNzg3LDYgKzc1OCw3IEBACiAjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFX1RFU1QgaXMgbm90IHNldAogQ09ORklHX1VTQl9HX1NFUklBTD1tCiAjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfUFJJTlRFUiBpcyBub3Qgc2V0CiBDT05GSUdfTU1DPW0KICMgQ09ORklHX01NQ19ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUNfVU5TQUZFX1JFU1VNRSBpcyBub3Qgc2V0CkBAIC03OTcsMTEgKzc2OSwxMyBAQAogQ09ORklHX01NQ19CTE9DSz1tCiBDT05GSUdfTU1DX0JMT0NLX0JPVU5DRT15CiAjIENPTkZJR19TRElPX1VBUlQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DX1RFU1QgaXMgbm90IHNldAogCiAjCiAjIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIwogQ09ORklHX01NQ19TUEk9bQorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogQ09ORklHX05FV19MRURTPXkKIENPTkZJR19MRURTX0NMQVNTPXkKIApAQCAtODE2LDYgKzc5MCw4IEBACiBDT05GSUdfTEVEU19UUklHR0VSUz15CiBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkKIENPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTj15CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKIENPTkZJR19SVENfQ0xBU1M9eQogQ09ORklHX1JUQ19IQ1RPU1lTPXkKQEAgLTg0NCwxOSArODIwLDIyIEBACiAjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CiAKICMKICMgU1BJIFJUQyBkcml2ZXJzCiAjCi0jIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKIAogIwogIyBQbGF0Zm9ybSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldApAQCAtODY1LDEwICs4NDQsNiBAQAogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKIENPTkZJR19SVENfRFJWX0FUMzJBUDcwMFg9eQotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTg4NSwxNCArODYwLDExIEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GVVNFX0ZTPW0KQEAgLTk0OCw4ICs5MjAsMTAgQEAKICMgQ09ORklHX0pGRlMyX1JVQklOIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKQEAgLTk1NywxMiArOTMxLDEwIEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xMDMwLDExICsxMDAyLDYgQEAKICMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAogQ09ORklHX05MU19VVEY4PW0KICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5TVFJVTUVOVEFUSU9OPXkKLUNPTkZJR19QUk9GSUxJTkc9eQotQ09ORklHX09QUk9GSUxFPW0KLUNPTkZJR19LUFJPQkVTPXkKLSMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDQyLDYgKzEwMDksNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKIENPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMDUyLDcgKzEwMjAsOSBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldApAQCAtMTA2NiwxMiArMTAzNiwxNCBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogQ09ORklHX0ZSQU1FX1BPSU5URVI9eQotIyBDT05GSUdfRk9SQ0VEX0lOTElOSU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfS1BST0JFU19TQU5JVFlfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xLRFRNIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKQEAgLTEwODMsNTIgKzEwNTUsOTAgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklHX0NSWVBUT19BRUFEPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPXkKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogQ09ORklHX0NSWVBUT19ITUFDPXkKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19TSEExPXkKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVJDND1tCisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FSQzQ9bQorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKIENPTkZJR19DUllQVE9fREVGTEFURT15Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKIENPTkZJR19DUkNfSVRVX1Q9bQpAQCAtMTEzNywxMCArMTE0Nyw2IEBACiAjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldAogQ09ORklHX1pMSUJfSU5GTEFURT15CiBDT05GSUdfWkxJQl9ERUZMQVRFPXkKLUNPTkZJR19URVhUU0VBUkNIPXkKLUNPTkZJR19URVhUU0VBUkNIX0tNUD1tCi1DT05GSUdfVEVYVFNFQVJDSF9CTT1tCi1DT05GSUdfVEVYVFNFQVJDSF9GU009bQogQ09ORklHX1BMSVNUPXkKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9jb25maWdzL2F0c3RrMTAwMl9kZWZjb25maWcgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAyX2RlZmNvbmZpZwppbmRleCAyZmIyZWRlLi5jNmQwMmVhIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAyX2RlZmNvbmZpZworKysgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAyX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNC1yYzcKLSMgV2VkIEphbiAgOSAyMzowNzo0MyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCisjIE1vbiBNYXkgMjYgMTM6MzA6MjAgMjAwOAogIwogQ09ORklHX0FWUjMyPXkKIENPTkZJR19HRU5FUklDX0dQSU89eQpAQCAtMTMsMTAgKzEzLDEwIEBACiBDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CiAjIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKLUNPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKIENPTkZJR19HRU5FUklDX0JVRz15CkBAIC0zNiwxNSArMzYsMTUgQEAKIENPTkZJR19QT1NJWF9NUVVFVUU9eQogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAogIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKICMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAotIyBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiBDT05GSUdfUkVMQVk9eQorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkBAIC01OCwxMSArNTgsMTMgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19CQVNFX0ZVTEwgaXMgbm90IHNldAogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CiBDT05GSUdfRVBPTEw9eQogQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKIENPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQpAQCAtNzAsMTEgKzcyLDIxIEBACiAjIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKIENPTkZJR19TTFVCPXkKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19PUFJPRklMRT1tCitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MQogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC05OCwxMCArMTEwLDE1IEBACiBDT05GSUdfREVGQVVMVF9DRlE9eQogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgU3lzdGVtIFR5cGUgYW5kIGZlYXR1cmVzCiAjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKIENPTkZJR19TVUJBUkNIX0FWUjMyQj15CiBDT05GSUdfTU1VPXkKIENPTkZJR19QRVJGT1JNQU5DRV9DT1VOVEVSUz15CkBAIC0xNDcsMTYgKzE2NCwxOSBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQogIyBDT05GSUdfT1dORVJTSElQX1RSQUNFIGlzIG5vdCBzZXQKK0NPTkZJR19OTUlfREVCVUdHSU5HPXkKICMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CiBDT05GSUdfSFpfMjUwPXkKICMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKIENPTkZJR19IWj0yNTAKKyMgQ09ORklHX1NDSEVEX0hSVElDSyBpcyBub3Qgc2V0CiBDT05GSUdfQ01ETElORT0iIgogCiAjCkBAIC0xNzAsOSArMTkwLDEwIEBACiBDT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQogIyBDT05GSUdfQ1BVX0ZSRVFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQ9eQogIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfUEVSRk9STUFOQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CkBAIC0yMDgsNiArMjI5LDcgQEAKIENPTkZJR19YRlJNX1VTRVI9bQogIyBDT05GSUdfWEZSTV9TVUJfUE9MSUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGUk1fTUlHUkFURSBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogQ09ORklHX05FVF9LRVk9bQogIyBDT05GSUdfTkVUX0tFWV9NSUdSQVRFIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKQEAgLTI1Miw4ICsyNzQsMTAgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD1tCiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPW0KK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKIENPTkZJR19JUFY2X1RVTk5FTD1tCiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMjc5LDYgKzMwMyw3IEBACiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiAjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CkBAIC0zMTQsNiArMzM5LDcgQEAKIENPTkZJR19NVERfUEFSVElUSU9OUz15CiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTM2OCw2ICszOTQsNyBAQAogIwogQ09ORklHX01URF9EQVRBRkxBU0g9bQogQ09ORklHX01URF9NMjVQODA9bQorQ09ORklHX00yNVBYWF9VU0VfRkFTVF9SRUFEPXkKICMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAogIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CkBAIC0zOTUsMTMgKzQyMiwxOCBAQAogQ09ORklHX0JMS19ERVZfUkFNPW0KIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiBDT05GSUdfTUlTQ19ERVZJQ0VTPXkKK0NPTkZJR19BVE1FTF9QV009bQorQ09ORklHX0FUTUVMX1RDTElCPXkKK0NPTkZJR19BVE1FTF9UQ0JfQ0xLU1JDPXkKK0NPTkZJR19BVE1FTF9UQ0JfQ0xLU1JDX0JMT0NLPTAKICMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiBDT05GSUdfQVRNRUxfU1NDPW0KLSMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorIyBDT05GSUdfSEFWRV9JREUgaXMgbm90IHNldAogCiAjCiAjIFNDU0kgZGV2aWNlIHN1cHBvcnQKQEAgLTQ0NCw2ICs0NzYsOSBAQAogIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPW0KICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BNUCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX0FUMzI9bQogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CkBAIC00NjksMTEgKzUwNCwxMyBAQAogIyBDT05GSUdfU01TQ19QSFkgaXMgbm90IHNldAogIyBDT05GSUdfQlJPQURDT01fUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lDUExVU19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVBTFRFS19QSFkgaXMgbm90IHNldAogIyBDT05GSUdfRklYRURfUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKICMgQ09ORklHX01JSSBpcyBub3Qgc2V0CiBDT05GSUdfTUFDQj15CisjIENPTkZJR19FTkMyOEo2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAogIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CkBAIC00ODcsNiArNTI0LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKIENPTkZJR19QUFA9bQogIyBDT05GSUdfUFBQX01VTFRJTElOSyBpcyBub3Qgc2V0CkBAIC01MDAsNyArNTM4LDYgQEAKICMgQ09ORklHX1BQUE9MMlRQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAogQ09ORklHX1NMSEM9bQotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTU1Niw2ICs1OTMsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorIyBDT05GSUdfREVWS01FTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NjgsNiArNjA2LDcgQEAKICMKIENPTkZJR19TRVJJQUxfQVRNRUw9eQogQ09ORklHX1NFUklBTF9BVE1FTF9DT05TT0xFPXkKK0NPTkZJR19TRVJJQUxfQVRNRUxfUERDPXkKICMgQ09ORklHX1NFUklBTF9BVE1FTF9UVFlBVCBpcyBub3Qgc2V0CiBDT05GSUdfU0VSSUFMX0NPUkU9eQogQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQpAQCAtNTc1LDIxICs2MTQsMTMgQEAKICMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAotIyBDT05GSUdfUlRDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIENPTkZJR19JMkM9bQogQ09ORklHX0kyQ19CT0FSRElORk89eQogQ09ORklHX0kyQ19DSEFSREVWPW0KLQotIwotIyBJMkMgQWxnb3JpdGhtcwotIwogQ09ORklHX0kyQ19BTEdPQklUPW0KLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKIAogIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKQEAgLTYwMCwyNyArNjMxLDIzIEBACiAjIENPTkZJR19JMkNfU0lNVEVDIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKICMKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzM3IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfRFMxMzc0IGlzIG5vdCBzZXQKICMgQ09ORklHX0RTMTY4MiBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX0VFUFJPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAotIyBDT05GSUdfU0VOU09SU19QQ0E5NTM5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19TUElfTUFTVEVSPXkKQEAgLTYzNyw5ICs2NjQsMjcgQEAKICMgQ09ORklHX1NQSV9BVDI1IGlzIG5vdCBzZXQKIENPTkZJR19TUElfU1BJREVWPW0KICMgQ09ORklHX1NQSV9UTEU2MlgwIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0dQSU9fTElCPXkKKworIworIyBHUElPIFN1cHBvcnQKKyMKKyMgQ09ORklHX0RFQlVHX0dQSU8gaXMgbm90IHNldAorCisjCisjIEkyQyBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fUENBOTUzWCBpcyBub3Qgc2V0CisjIENPTkZJR19HUElPX1BDRjg1N1ggaXMgbm90IHNldAorCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fTUNQMjNTMDggaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAogQ09ORklHX1dBVENIRE9HPXkKICMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKIApAQCAtNjU5LDEyICs3MDQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtNjgyLDggKzczNyw4IEBACiAjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAotQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKICMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAogIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAogIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKQEAgLTc0OSw3ICs4MDQsMTEgQEAKICMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAogCiAjCi0jIFNvQyBBdWRpbyBzdXBwb3J0IGZvciBTdXBlckgKKyMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCisjCisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC03NjEsMTQgKzgyMCwxMiBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKIENPTkZJR19VU0JfR0FER0VUPXkKICMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CkBAIC03ODEsNiArODM4LDcgQEAKICMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTI3WCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CkBAIC03OTYsNiArODU0LDcgQEAKICMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0VfVEVTVCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0dfU0VSSUFMPW0KICMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19QUklOVEVSIGlzIG5vdCBzZXQKIENPTkZJR19NTUM9bQogIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKQEAgLTgwNiwxNyArODY1LDIwIEBACiBDT05GSUdfTU1DX0JMT0NLPW0KIENPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKICMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CitDT05GSUdfTU1DX1RFU1Q9bQogCiAjCiAjIE1NQy9TRCBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIwogQ09ORklHX01NQ19TUEk9bQorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogQ09ORklHX05FV19MRURTPXkKIENPTkZJR19MRURTX0NMQVNTPW0KIAogIwogIyBMRUQgZHJpdmVycwogIworQ09ORklHX0xFRFNfQVRNRUxfUFdNPW0KIENPTkZJR19MRURTX0dQSU89bQogCiAjCkBAIC04MjUsNiArODg3LDggQEAKIENPTkZJR19MRURTX1RSSUdHRVJTPXkKIENPTkZJR19MRURTX1RSSUdHRVJfVElNRVI9bQogQ09ORklHX0xFRFNfVFJJR0dFUl9IRUFSVEJFQVQ9bQorQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OPW0KKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtODUzLDE5ICs5MTcsMjIgQEAKICMgQ09ORklHX1JUQ19EUlZfUENGODU2MyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX1BDRjg1ODMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDFUODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TMzUzOTBBIGlzIG5vdCBzZXQKIAogIwogIyBTUEkgUlRDIGRyaXZlcnMKICMKLSMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAogCiAjCiAjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC04NzQsMTAgKzk0MSw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogQ09ORklHX1JUQ19EUlZfQVQzMkFQNzAwWD15Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODk1LDE0ICs5NTgsMTEgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotQ09ORklHX01JTklYX0ZTPW0KLSMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlM0X0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GVVNFX0ZTPW0KQEAgLTk1Nyw4ICsxMDE3LDEwIEBACiAjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTUlOSVhfRlM9bQogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAogQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQpAQCAtOTY2LDcgKzEwMjgsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMjgsMTEgKzEwODksNiBAQAogIyBDT05GSUdfTkxTX0tPSThfVSBpcyBub3Qgc2V0CiBDT05GSUdfTkxTX1VURjg9bQogIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLUNPTkZJR19JTlNUUlVNRU5UQVRJT049eQotQ09ORklHX1BST0ZJTElORz15Ci1DT05GSUdfT1BST0ZJTEU9bQotQ09ORklHX0tQUk9CRVM9eQotIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEwNDAsNiArMTA5Niw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15CkBAIC0xMDUwLDcgKzExMDcsOSBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldApAQCAtMTA2NCwxMiArMTEyMywxNCBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogQ09ORklHX0ZSQU1FX1BPSU5URVI9eQotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CkBAIC0xMDgxLDUyICsxMTQyLDkwIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPW0KK0NPTkZJR19DUllQVE9fQUVBRD1tCiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj1tCiBDT05GSUdfQ1JZUFRPX0hBU0g9bQogQ09ORklHX0NSWVBUT19NQU5BR0VSPW0KKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVVUSEVOQz1tCisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9bQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiBDT05GSUdfQ1JZUFRPX0hNQUM9bQogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PW0KKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPW0KLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPW0KKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiBDT05GSUdfQ1JZUFRPX0RFRkxBVEU9bQotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKIENPTkZJR19DUkNfSVRVX1Q9bQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9jb25maWdzL2F0c3RrMTAwM19kZWZjb25maWcgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAzX2RlZmNvbmZpZwppbmRleCA0NWUyM2UwLi41YTRhZTZiIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAzX2RlZmNvbmZpZworKysgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDAzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNC1yYzcKLSMgV2VkIEphbiAgOSAyMjo1NDozNCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCisjIE1vbiBNYXkgMjYgMTM6MzM6MDUgMjAwOAogIwogQ09ORklHX0FWUjMyPXkKIENPTkZJR19HRU5FUklDX0dQSU89eQpAQCAtMTMsMTAgKzEzLDEwIEBACiBDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CiAjIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKLUNPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKIENPTkZJR19HRU5FUklDX0JVRz15CkBAIC0zOSwxNyArMzksMTUgQEAKIENPTkZJR19UQVNLU1RBVFM9eQogQ09ORklHX1RBU0tfREVMQVlfQUNDVD15CiAjIENPTkZJR19UQVNLX1hBQ0NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKIENPTkZJR19BVURJVD15CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAogIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15Ci1DT05GSUdfRkFJUl9VU0VSX1NDSEVEPXkKLSMgQ09ORklHX0ZBSVJfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKIENPTkZJR19SRUxBWT15CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKQEAgLTYzLDExICs2MSwxMyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBU0VfRlVMTCBpcyBub3Qgc2V0CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKIENPTkZJR19FUE9MTD15CiBDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQogQ09ORklHX0VWRU5URkQ9eQogQ09ORklHX1NITUVNPXkKIENPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CkBAIC03NSwxMSArNzUsMjAgQEAKICMgQ09ORklHX1NMQUIgaXMgbm90IHNldAogQ09ORklHX1NMVUI9eQogIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0Ci1DT05GSUdfU0xBQklORk89eQorQ09ORklHX1BST0ZJTElORz15CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19PUFJPRklMRT1tCitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0xCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTEwMywxMCArMTEyLDE1IEBACiBDT05GSUdfREVGQVVMVF9DRlE9eQogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImNmcSIKK0NPTkZJR19DTEFTU0lDX1JDVT15CiAKICMKICMgU3lzdGVtIFR5cGUgYW5kIGZlYXR1cmVzCiAjCitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKIENPTkZJR19TVUJBUkNIX0FWUjMyQj15CiBDT05GSUdfTU1VPXkKIENPTkZJR19QRVJGT1JNQU5DRV9DT1VOVEVSUz15CkBAIC0xNTIsMTYgKzE2NiwxOSBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQogIyBDT05GSUdfT1dORVJTSElQX1RSQUNFIGlzIG5vdCBzZXQKK0NPTkZJR19OTUlfREVCVUdHSU5HPXkKICMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CiBDT05GSUdfSFpfMjUwPXkKICMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAwIGlzIG5vdCBzZXQKIENPTkZJR19IWj0yNTAKKyMgQ09ORklHX1NDSEVEX0hSVElDSyBpcyBub3Qgc2V0CiBDT05GSUdfQ01ETElORT0iIgogCiAjCkBAIC0xNzUsOSArMTkyLDEwIEBACiBDT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQogIyBDT05GSUdfQ1BVX0ZSRVFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORCBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQ9eQogIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfUEVSRk9STUFOQ0U9eQogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CkBAIC0yMzQsOCArMjUyLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTI2MCw2ICsyNzYsNyBAQAogIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMjk1LDYgKzMxMiw3IEBACiBDT05GSUdfTVREX1BBUlRJVElPTlM9eQogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC0zNDksNiArMzY3LDcgQEAKICMKIENPTkZJR19NVERfREFUQUZMQVNIPW0KIENPTkZJR19NVERfTTI1UDgwPW0KK0NPTkZJR19NMjVQWFhfVVNFX0ZBU1RfUkVBRD15CiAjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAogIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldApAQCAtMzc2LDEzICszOTUsMTggQEAKIENPTkZJR19CTEtfREVWX1JBTT1tCiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKIENPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CitDT05GSUdfQVRNRUxfUFdNPW0KK0NPTkZJR19BVE1FTF9UQ0xJQj15CitDT05GSUdfQVRNRUxfVENCX0NMS1NSQz15CitDT05GSUdfQVRNRUxfVENCX0NMS1NSQ19CTE9DSz0wCiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAogQ09ORklHX0FUTUVMX1NTQz1tCi0jIENPTkZJR19JREUgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfSURFIGlzIG5vdCBzZXQKIAogIwogIyBTQ1NJIGRldmljZSBzdXBwb3J0CkBAIC00MjcsNiArNDUxLDkgQEAKICMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0FUQT1tCiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9QTVAgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CiBDT05GSUdfUEFUQV9BVDMyPW0KICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldApAQCAtNDQ3LDYgKzQ3NCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiBDT05GSUdfUFBQPW0KICMgQ09ORklHX1BQUF9NVUxUSUxJTksgaXMgbm90IHNldApAQCAtNDYwLDcgKzQ4OCw2IEBACiAjIENPTkZJR19QUFBPTDJUUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKIENPTkZJR19TTEhDPW0KLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CkBAIC01MTYsNiArNTQzLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTI4LDYgKzU1Niw3IEBACiAjCiBDT05GSUdfU0VSSUFMX0FUTUVMPXkKIENPTkZJR19TRVJJQUxfQVRNRUxfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0FUTUVMX1BEQz15CiAjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAogQ09ORklHX1NFUklBTF9DT1JFPXkKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKQEAgLTUzNSwyMSArNTY0LDEzIEBACiAjIENPTkZJR19MRUdBQ1lfUFRZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfSTJDPW0KIENPTkZJR19JMkNfQk9BUkRJTkZPPXkKIENPTkZJR19JMkNfQ0hBUkRFVj1tCi0KLSMKLSMgSTJDIEFsZ29yaXRobXMKLSMKIENPTkZJR19JMkNfQUxHT0JJVD1tCi0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0CiAKICMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CkBAIC01NjAsMjcgKzU4MSwyMyBAQAogIyBDT05GSUdfSTJDX1NJTVRFQyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVEFPU19FVk0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1NUVUIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CiAjCi0jIENPTkZJR19TRU5TT1JTX0RTMTMzNyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRU5TT1JTX0RTMTM3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFTlNPUlNfUENBOTUzOSBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKICMgQ09ORklHX1NQSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfU1BJX01BU1RFUj15CkBAIC01OTcsOSArNjE0LDI3IEBACiAjIENPTkZJR19TUElfQVQyNSBpcyBub3Qgc2V0CiBDT05GSUdfU1BJX1NQSURFVj1tCiAjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisjIENPTkZJR19ERUJVR19HUElPIGlzIG5vdCBzZXQKKworIworIyBJMkMgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX1BDQTk1M1ggaXMgbm90IHNldAorIyBDT05GSUdfR1BJT19QQ0Y4NTdYIGlzIG5vdCBzZXQKKworIworIyBTUEkgR1BJTyBleHBhbmRlcnM6CisjCisjIENPTkZJR19HUElPX01DUDIzUzA4IGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CisjIENPTkZJR19USEVSTUFMIGlzIG5vdCBzZXQKIENPTkZJR19XQVRDSERPRz15CiAjIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CiAKQEAgLTYxOSwxMiArNjU0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKQEAgLTY4Miw3ICs3MjcsMTEgQEAKICMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAogCiAjCi0jIFNvQyBBdWRpbyBzdXBwb3J0IGZvciBTdXBlckgKKyMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCisjCisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC02OTQsMTQgKzc0MywxMiBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKIENPTkZJR19VU0JfR0FER0VUPXkKICMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CkBAIC03MTQsNiArNzYxLDcgQEAKICMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTI3WCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CkBAIC03MjksNiArNzc3LDcgQEAKICMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0VfVEVTVCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0dfU0VSSUFMPW0KICMgQ09ORklHX1VTQl9NSURJX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR19QUklOVEVSIGlzIG5vdCBzZXQKIENPTkZJR19NTUM9bQogIyBDT05GSUdfTU1DX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQ19VTlNBRkVfUkVTVU1FIGlzIG5vdCBzZXQKQEAgLTczOSwxNyArNzg4LDIwIEBACiBDT05GSUdfTU1DX0JMT0NLPW0KICMgQ09ORklHX01NQ19CTE9DS19CT1VOQ0UgaXMgbm90IHNldAogIyBDT05GSUdfU0RJT19VQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX01NQ19URVNUIGlzIG5vdCBzZXQKIAogIwogIyBNTUMvU0QgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKIENPTkZJR19NTUNfU1BJPW0KKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKIENPTkZJR19ORVdfTEVEUz15CiBDT05GSUdfTEVEU19DTEFTUz15CiAKICMKICMgTEVEIGRyaXZlcnMKICMKK0NPTkZJR19MRURTX0FUTUVMX1BXTT1tCiBDT05GSUdfTEVEU19HUElPPXkKIAogIwpAQCAtNzU4LDYgKzgxMCw4IEBACiBDT05GSUdfTEVEU19UUklHR0VSUz15CiBDT05GSUdfTEVEU19UUklHR0VSX1RJTUVSPXkKIENPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUPXkKK0NPTkZJR19MRURTX1RSSUdHRVJfREVGQVVMVF9PTj15CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKIENPTkZJR19SVENfQ0xBU1M9eQogQ09ORklHX1JUQ19IQ1RPU1lTPXkKQEAgLTc4NiwxOSArODQwLDIyIEBACiAjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CiAKICMKICMgU1BJIFJUQyBkcml2ZXJzCiAjCi0jIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUjk3MDEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SUzVDMzQ4IGlzIG5vdCBzZXQKIAogIwogIyBQbGF0Zm9ybSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldApAQCAtODA3LDExICs4NjQsOCBAQAogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKIENPTkZJR19SVENfRFJWX0FUMzJBUDcwMFg9eQotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKIENPTkZJR19VSU89bQorIyBDT05GSUdfVUlPX1NNWCBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC04MjgsMTQgKzg4MiwxMSBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlVTRV9GUz1tCkBAIC04OTEsOCArOTQyLDEwIEBACiAjIENPTkZJR19KRkZTMl9SVUJJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TIGlzIG5vdCBzZXQKQEAgLTk0MywxMSArOTk2LDYgQEAKICMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAogQ09ORklHX05MU19VVEY4PW0KICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5TVFJVTUVOVEFUSU9OPXkKLUNPTkZJR19QUk9GSUxJTkc9eQotQ09ORklHX09QUk9GSUxFPW0KLUNPTkZJR19LUFJPQkVTPXkKLSMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC05NTUsNiArMTAwMyw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15CkBAIC05NjUsNiArMTAxNCw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKQEAgLTk3OCwxMiArMTAyOCwxNCBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogQ09ORklHX0ZSQU1FX1BPSU5URVI9eQotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CkBAIC0xMDAwLDYgKzEwNTIsOCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKIENPTkZJR19DUkNfSVRVX1Q9bQpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9jb25maWdzL2F0c3RrMTAwNF9kZWZjb25maWcgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDA0X2RlZmNvbmZpZwppbmRleCA2MzRjNTI3Li5hMDkxMmZiIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDA0X2RlZmNvbmZpZworKysgYi9hcmNoL2F2cjMyL2NvbmZpZ3MvYXRzdGsxMDA0X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNC1yYzcKLSMgV2VkIEphbiAgOSAyMzowNDoyMCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCisjIE1vbiBNYXkgMjYgMTM6MzQ6NTcgMjAwOAogIwogQ09ORklHX0FWUjMyPXkKIENPTkZJR19HRU5FUklDX0dQSU89eQpAQCAtMTMsMTAgKzEzLDEwIEBACiBDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CiAjIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITSBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKLUNPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKIENPTkZJR19HRU5FUklDX0JVRz15CkBAIC0zNCwxNSArMzQsMTUgQEAKICMgQ09ORklHX1BPU0lYX01RVUVVRSBpcyBub3Qgc2V0CiAjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKICMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BJRF9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAogIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GQUlSX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKICMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JTklUUkQgaXMgbm90IHNldAogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKIENPTkZJR19TWVNDVEw9eQpAQCAtNTQsMjQgKzU0LDM4IEBACiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAogIyBDT05GSUdfQkFTRV9GVUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVVEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJR05BTEZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJTUVSRkQgaXMgbm90IHNldAogIyBDT05GSUdfRVZFTlRGRCBpcyBub3Qgc2V0CiBDT05GSUdfU0hNRU09eQogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKICMgQ09ORklHX1NMQUIgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CiBDT05GSUdfU0xPQj15CisjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTEKICMgQ09ORklHX01PRFVMRVMgaXMgbm90IHNldAogIyBDT05GSUdfQkxPQ0sgaXMgbm90IHNldAorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBTeXN0ZW0gVHlwZSBhbmQgZmVhdHVyZXMKICMKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogQ09ORklHX1NVQkFSQ0hfQVZSMzJCPXkKIENPTkZJR19NTVU9eQogQ09ORklHX1BFUkZPUk1BTkNFX0NPVU5URVJTPXkKQEAgLTExNSwxNiArMTI5LDE5IEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTAKIENPTkZJR19WSVJUX1RPX0JVUz15CiAjIENPTkZJR19PV05FUlNISVBfVFJBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfTk1JX0RFQlVHR0lORyBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAogQ09ORklHX0haXzI1MD15CiAjIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTAwMCBpcyBub3Qgc2V0CiBDT05GSUdfSFo9MjUwCisjIENPTkZJR19TQ0hFRF9IUlRJQ0sgaXMgbm90IHNldAogQ09ORklHX0NNRExJTkU9IiIKIAogIwpAQCAtMTM0LDIwICsxNTEsNyBAQAogIwogIyBDUFUgRnJlcXVlbmN5IHNjYWxpbmcKICMKLUNPTkZJR19DUFVfRlJFUT15Ci1DT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQotIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKLSMgQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAotQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0U9eQotQ09ORklHX0NQVV9GUkVRX0dPVl9PTkRFTUFORD15Ci0jIENPTkZJR19DUFVfRlJFUV9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKLUNPTkZJR19DUFVfRlJFUV9BVDMyQVA9eQorIyBDT05GSUdfQ1BVX0ZSRVEgaXMgbm90IHNldAogCiAjCiAjIEJ1cyBvcHRpb25zCkBAIC0xOTcsOCArMjAxLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTIyMiw2ICsyMjQsNyBAQAogIwogIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAogIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CVCBpcyBub3Qgc2V0CiAjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CkBAIC0yNTUsNiArMjU4LDcgQEAKIENPTkZJR19NVERfUEFSVElUSU9OUz15CiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTMyMSw2ICszMjUsNyBAQAogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKICMgQ09ORklHX01JU0NfREVWSUNFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0lERSBpcyBub3Qgc2V0CiAKICMKICMgU0NTSSBkZXZpY2Ugc3VwcG9ydApAQCAtMzQ2LDYgKzM1MSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERVZLTUVNIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAKICMKQEAgLTM1OCw2ICszNjQsNyBAQAogIwogQ09ORklHX1NFUklBTF9BVE1FTD15CiBDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEU9eQorIyBDT05GSUdfU0VSSUFMX0FUTUVMX1BEQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TRVJJQUxfQVRNRUxfVFRZQVQgaXMgbm90IHNldAogQ09ORklHX1NFUklBTF9DT1JFPXkKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKQEAgLTM2NSwxNSArMzcyLDkgQEAKICMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAotIyBDT05GSUdfUlRDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKIENPTkZJR19TUElfTUFTVEVSPXkKIApAQCAtMzg5LDkgKzM5MCwyNCBAQAogIyBDT05GSUdfU1BJX0FUMjUgaXMgbm90IHNldAogIyBDT05GSUdfU1BJX1NQSURFViBpcyBub3Qgc2V0CiAjIENPTkZJR19TUElfVExFNjJYMCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9HUElPX0xJQj15CisKKyMKKyMgR1BJTyBTdXBwb3J0CisjCisKKyMKKyMgSTJDIEdQSU8gZXhwYW5kZXJzOgorIworCisjCisjIFNQSSBHUElPIGV4cGFuZGVyczoKKyMKKyMgQ09ORklHX0dQSU9fTUNQMjNTMDggaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAogQ09ORklHX1dBVENIRE9HPXkKICMgQ09ORklHX1dBVENIRE9HX05PV0FZT1VUIGlzIG5vdCBzZXQKIApAQCAtNDExLDEyICs0MjcsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtNDM0LDggKzQ2MCw4IEBACiAjIENPTkZJR19GQl9TWVNfRklMTFJFQ1QgaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0NPUFlBUkVBIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19JTUFHRUJMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfRk9SRUlHTl9FTkRJQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0ZPUFMgaXMgbm90IHNldAotQ09ORklHX0ZCX0RFRkVSUkVEX0lPPXkKICMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAogIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAogIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKQEAgLTQ2NywxNCArNDkzLDEyIEBACiAjIENPTkZJR19VU0JfQVJDSF9IQVNfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwogIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwogQ09ORklHX1VTQl9HQURHRVQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CkBAIC00ODUsNiArNTA5LDcgQEAKICMgQ09ORklHX1VTQl9HQURHRVRfTkVUMjI4MCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX002NjU5MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfR0FER0VUX1BYQTI3WCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0dPS1UgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9MSDdBNDBYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfT01BUCBpcyBub3Qgc2V0CkBAIC00OTksOCArNTI0LDExIEBACiAjIENPTkZJR19VU0JfRklMRV9TVE9SQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HX1NFUklBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTUlESV9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dfUFJJTlRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKIENPTkZJR19SVENfSENUT1NZUz15CkBAIC01MTksMTUgKzU0NywxNyBAQAogIwogIyBTUEkgUlRDIGRyaXZlcnMKICMKLSMgQ09ORklHX1JUQ19EUlZfUlM1QzM0OCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX01BWDY5MDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9SOTcwMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1JTNUMzNDggaXMgbm90IHNldAogCiAjCiAjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC01MzYsMTggKzU2NiwxNCBAQAogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKIENPTkZJR19SVENfRFJWX0FUMzJBUDcwMFg9eQotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCiAjCisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTU4MCw3ICs2MDYsNiBAQAogIyBDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUyBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFMgaXMgbm90IHNldAogIyBDT05GSUdfRExNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOU1RSVU1FTlRBVElPTiBpcyBub3Qgc2V0CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTU4OCw2ICs2MTMsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKIENPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC02MDgsNiArNjM0LDggQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC9hdnIzMl9rc3ltcy5jIGIvYXJjaC9hdnIzMi9rZXJuZWwvYXZyMzJfa3N5bXMuYwppbmRleCA4MGY1NWY4Li44NGE3ZDQ0IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL2tlcm5lbC9hdnIzMl9rc3ltcy5jCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL2F2cjMyX2tzeW1zLmMKQEAgLTI5LDcgKzI5LDkgQEAKICAqLwogRVhQT1JUX1NZTUJPTChtZW1zZXQpOwogRVhQT1JUX1NZTUJPTChtZW1jcHkpOworCiBFWFBPUlRfU1lNQk9MKGNsZWFyX3BhZ2UpOworRVhQT1JUX1NZTUJPTChjb3B5X3BhZ2UpOwogCiAvKgogICogVXNlcnNwYWNlIGFjY2VzcyBzdHVmZi4KQEAgLTQxLDYgKzQzLDggQEAKIEVYUE9SVF9TWU1CT0woX19zdHJuY3B5X2Zyb21fdXNlcik7CiBFWFBPUlRfU1lNQk9MKGNsZWFyX3VzZXIpOwogRVhQT1JUX1NZTUJPTChfX2NsZWFyX3VzZXIpOworRVhQT1JUX1NZTUJPTChzdHJubGVuX3VzZXIpOworCiBFWFBPUlRfU1lNQk9MKGNzdW1fcGFydGlhbCk7CiBFWFBPUlRfU1lNQk9MKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpOwogCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2tlcm5lbC9lbnRyeS1hdnIzMmIuUyBiL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCmluZGV4IDVmMzE3MDIuLjJiMzk4Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCisrKyBiL2FyY2gvYXZyMzIva2VybmVsL2VudHJ5LWF2cjMyYi5TCkBAIC03NCw1MCArNzQsNDEgQEAKIAkuYWxpZ24JMgogCWJyYWwJZG9fZHRsYl9tb2RpZmllZAogCi0JLyoKLQkgKiByMCA6CVBHRC9QVC9QVEUKLQkgKiByMSA6IE9mZmVuZGluZyBhZGRyZXNzCi0JICogcjIgOiBTY3JhdGNoIHJlZ2lzdGVyCi0JICogcjMgOiBDYXVzZSAoNSwgMTIgb3IgMTMpCi0JICovCiAjZGVmaW5lCXRsYm1pc3Nfc2F2ZQlwdXNobQlyMC1yMwogI2RlZmluZSB0bGJtaXNzX3Jlc3RvcmUJcG9wbQlyMC1yMwogCi0JLnNlY3Rpb24gLnRsYnguZXgudGV4dCwiYXgiLEBwcm9nYml0cworCS5vcmcJMHg1MAogCS5nbG9iYWwJaXRsYl9taXNzCiBpdGxiX21pc3M6CiAJdGxibWlzc19zYXZlCiAJcmptcAl0bGJfbWlzc19jb21tb24KIAotCS5zZWN0aW9uIC50bGJyLmV4LnRleHQsImF4IixAcHJvZ2JpdHMKKwkub3JnCTB4NjAKIGR0bGJfbWlzc19yZWFkOgogCXRsYm1pc3Nfc2F2ZQogCXJqbXAJdGxiX21pc3NfY29tbW9uCiAKLQkuc2VjdGlvbiAudGxidy5leC50ZXh0LCJheCIsQHByb2diaXRzCisJLm9yZwkweDcwCiBkdGxiX21pc3Nfd3JpdGU6CiAJdGxibWlzc19zYXZlCiAKIAkuZ2xvYmFsCXRsYl9taXNzX2NvbW1vbgorCS5hbGlnbgkyCiB0bGJfbWlzc19jb21tb246CiAJbWZzcglyMCwgU1lTUkVHX1RMQkVBUgogCW1mc3IJcjEsIFNZU1JFR19QVEJSCiAKLQkvKiBJcyBpdCB0aGUgdm1hbGxvYyBzcGFjZT8gKi8KLQlibGQJcjAsIDMxCi0JYnJjcwloYW5kbGVfdm1hbGxvY19taXNzCi0KLQkvKiBGaXJzdCBsZXZlbCBsb29rdXAgKi8KKwkvKgorCSAqIEZpcnN0IGxldmVsIGxvb2t1cDogVGhlIFBHRCBjb250YWlucyB2aXJ0dWFsIHBvaW50ZXJzIHRvCisJICogdGhlIHNlY29uZC1sZXZlbCBwYWdlIHRhYmxlcywgYnV0IHRoZXkgbWF5IGJlIE5VTEwgaWYgbm90CisJICogcHJlc2VudC4KKwkgKi8KIHBndGJsX2xvb2t1cDoKIAlsc3IJcjIsIHIwLCBQR0RJUl9TSElGVAogCWxkLncJcjMsIHIxW3IyIDw8IDJdCiAJYmZleHR1CXIxLCByMCwgUEFHRV9TSElGVCwgUEdESVJfU0hJRlQgLSBQQUdFX1NISUZUCi0JYmxkCXIzLCBfUEFHRV9CSVRfUFJFU0VOVAotCWJyY2MJcGFnZV90YWJsZV9ub3RfcHJlc2VudAotCi0JLyogVHJhbnNsYXRlIHRvIHZpcnR1YWwgYWRkcmVzcyBpbiBQMS4gKi8KLQlhbmRsCXIzLCAweGYwMDAKLQlzYnIJcjMsIDMxCisJY3AudwlyMywgMAorCWJyZXEJcGFnZV90YWJsZV9ub3RfcHJlc2VudAogCiAJLyogU2Vjb25kIGxldmVsIGxvb2t1cCAqLwogCWxkLncJcjIsIHIzW3IxIDw8IDJdCkBAIC0xNDgsMTYgKzEzOSw1NSBAQAogCXRsYm1pc3NfcmVzdG9yZQogCXJldGUKIAotaGFuZGxlX3ZtYWxsb2NfbWlzczoKLQkvKiBTaW1wbHkgZG8gdGhlIGxvb2t1cCBpbiBpbml0J3MgcGFnZSB0YWJsZSAqLworCS8qIFRoZSBzbG93IHBhdGggb2YgdGhlIFRMQiBtaXNzIGhhbmRsZXIgKi8KKwkuYWxpZ24JMgorcGFnZV90YWJsZV9ub3RfcHJlc2VudDoKKwkvKiBEbyB3ZSBuZWVkIHRvIHN5bmNocm9uaXplIHdpdGggc3dhcHBlcl9wZ19kaXI/ICovCisJYmxkCXIwLCAzMQorCWJyY3MJc3luY193aXRoX3N3YXBwZXJfcGdfZGlyCisKK3BhZ2Vfbm90X3ByZXNlbnQ6CisJdGxibWlzc19yZXN0b3JlCisJc3ViCXNwLCA0CisJc3RtdHMJLS1zcCwgcjAtbHIKKwlyY2FsbAlzYXZlX2Z1bGxfY29udGV4dF9leAorCW1mc3IJcjEyLCBTWVNSRUdfRUNSCisJbW92CXIxMSwgc3AKKwlyY2FsbAlkb19wYWdlX2ZhdWx0CisJcmptcAlyZXRfZnJvbV9leGNlcHRpb24KKworCS5hbGlnbgkyCitzeW5jX3dpdGhfc3dhcHBlcl9wZ19kaXI6CisJLyoKKwkgKiBJZiBzd2FwcGVyX3BnX2RpciBjb250YWlucyBhIG5vbi1OVUxMIHNlY29uZC1sZXZlbCBwYWdlCisJICogdGFibGUgcG9pbnRlciwgY29weSBpdCBpbnRvIHRoZSBjdXJyZW50IFBHRC4gSWYgbm90LCB3ZQorCSAqIG11c3QgaGFuZGxlIGl0IGFzIGEgZnVsbC1ibG93biBwYWdlIGZhdWx0LgorCSAqCisJICogSnVtcGluZyBiYWNrIHRvIHBndGJsX2xvb2t1cCBjYXVzZXMgYW4gdW5uZWNlc3NhcnkgbG9va3VwLAorCSAqIGJ1dCBpdCBpcyBndWFyYW50ZWVkIHRvIGJlIGEgY2FjaGUgaGl0LCBpdCB3b24ndCBoYXBwZW4KKwkgKiB2ZXJ5IG9mdGVuLCBhbmQgd2UgYWJzb2x1dGVseSBkbyBub3Qgd2FudCB0byBzYWNyaWZpY2UgYW55CisJICogcGVyZm9ybWFuY2UgaW4gdGhlIGZhc3QgcGF0aCBpbiBvcmRlciB0byBpbXByb3ZlIHRoaXMuCisJICovCiAJbW92CXIxLCBsbyhzd2FwcGVyX3BnX2RpcikKIAlvcmgJcjEsIGhpKHN3YXBwZXJfcGdfZGlyKQorCWxkLncJcjMsIHIxW3IyIDw8IDJdCisJY3AudwlyMywgMAorCWJyZXEJcGFnZV9ub3RfcHJlc2VudAorCW1mc3IJcjEsIFNZU1JFR19QVEJSCisJc3QudwlyMVtyMiA8PCAyXSwgcjMKIAlyam1wCXBndGJsX2xvb2t1cAogCisJLyoKKwkgKiBXZSBjdXJyZW50bHkgaGF2ZSB0d28gYnl0ZXMgbGVmdCBhdCB0aGlzIHBvaW50IHVudGlsIHdlCisJICogY3Jhc2ggaW50byB0aGUgc3lzdGVtIGNhbGwgaGFuZGxlci4uLgorCSAqCisJICogRG9uJ3Qgd29ycnksIHRoZSBhc3NlbWJsZXIgd2lsbCBsZXQgdXMga25vdy4KKwkgKi8KKwogCiAJLyogLS0tICAgICAgICAgICAgICAgICAgICBTeXN0ZW0gQ2FsbCAgICAgICAgICAgICAgICAgICAgLS0tICovCiAKLQkuc2VjdGlvbiAuc2NhbGwudGV4dCwiYXgiLEBwcm9nYml0cworCS5vcmcJMHgxMDAKIHN5c3RlbV9jYWxsOgogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAJbWFza19pbnRlcnJ1cHRzCkBAIC0yNjYsMTggKzI5Niw2IEBACiAJYnJjYwlzeXNjYWxsX2V4aXRfY29udAogCXJqbXAJZW50ZXJfbW9uaXRvcl9tb2RlCiAKLQkvKiBUaGUgc2xvdyBwYXRoIG9mIHRoZSBUTEIgbWlzcyBoYW5kbGVyICovCi1wYWdlX3RhYmxlX25vdF9wcmVzZW50OgotcGFnZV9ub3RfcHJlc2VudDoKLQl0bGJtaXNzX3Jlc3RvcmUKLQlzdWIJc3AsIDQKLQlzdG10cwktLXNwLCByMC1scgotCXJjYWxsCXNhdmVfZnVsbF9jb250ZXh0X2V4Ci0JbWZzcglyMTIsIFNZU1JFR19FQ1IKLQltb3YJcjExLCBzcAotCXJjYWxsCWRvX3BhZ2VfZmF1bHQKLQlyam1wCXJldF9mcm9tX2V4Y2VwdGlvbgotCiAJLyogVGhpcyBmdW5jdGlvbiBleHBlY3RzIHRvIGZpbmQgb2ZmZW5kaW5nIFBDIGluIFNZU1JFR19SQVJfRVggKi8KIAkudHlwZQlzYXZlX2Z1bGxfY29udGV4dF9leCwgQGZ1bmN0aW9uCiAJLmFsaWduCTIKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIva2VybmVsL3NpZ25hbC5jIGIvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKaW5kZXggNTYxNmEwMC4uYzViMTFmOSAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKKysrIGIvYXJjaC9hdnIzMi9rZXJuZWwvc2lnbmFsLmMKQEAgLTkzLDYgKzkzLDkgQEAKIAlpZiAocmVzdG9yZV9zaWdjb250ZXh0KHJlZ3MsICZmcmFtZS0+dWMudWNfbWNvbnRleHQpKQogCQlnb3RvIGJhZGZyYW1lOwogCisJaWYgKGRvX3NpZ2FsdHN0YWNrKCZmcmFtZS0+dWMudWNfc3RhY2ssIE5VTEwsIHJlZ3MtPnNwKSA9PSAtRUZBVUxUKQorCQlnb3RvIGJhZGZyYW1lOworCiAJcHJfZGVidWcoIkNvbnRleHQgcmVzdG9yZWQ6IHBjID0gJTA4bHgsIGxyID0gJTA4bHgsIHNwID0gJTA4bHhcbiIsCiAJCSByZWdzLT5wYywgcmVncy0+bHIsIHJlZ3MtPnNwKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9rZXJuZWwvdGltZS5jIGIvYXJjaC9hdnIzMi9rZXJuZWwvdGltZS5jCmluZGV4IDAwYTk4NjIuLmFiZDk1NGYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIva2VybmVsL3RpbWUuYworKysgYi9hcmNoL2F2cjMyL2tlcm5lbC90aW1lLmMKQEAgLTcsMjEgKzcsMTMgQEAKICAqLwogI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1lLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KIAotI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgogI2luY2x1ZGUgPGFzbS9zeXNyZWcuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3BtLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2F2cjMyL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IDQ4MWNmZDQuLjc5MTBkNDEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIva2VybmVsL3ZtbGludXgubGRzLlMKKysrIGIvYXJjaC9hdnIzMi9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNjgsMTQgKzY4LDYgQEAKIAkJX2V2YmEgPSAuOwogCQlfdGV4dCA9IC47CiAJCSooLmV4LnRleHQpCi0JCS4gPSAweDUwOwotCQkqKC50bGJ4LmV4LnRleHQpCi0JCS4gPSAweDYwOwotCQkqKC50bGJyLmV4LnRleHQpCi0JCS4gPSAweDcwOwotCQkqKC50bGJ3LmV4LnRleHQpCi0JCS4gPSAweDEwMDsKLQkJKiguc2NhbGwudGV4dCkKIAkJKiguaXJxLnRleHQpCiAJCUtQUk9CRVNfVEVYVAogCQlURVhUX1RFWFQKQEAgLTkzLDggKzg1LDYgQEAKIAkJX19zdG9wX19fZXhfdGFibGUgPSAuOwogCX0KIAotCUJVR19UQUJMRQotCiAJUk9EQVRBCiAKIAkuID0gQUxJR04oVEhSRUFEX1NJWkUpOwpAQCAtMTA3LDYgKzk3LDEwIEBACiAJCSAqLwogCQkqKC5kYXRhLmluaXRfdGFzaykKIAorCQkvKiBUaGVuLCB0aGUgcGFnZS1hbGlnbmVkIGRhdGEgKi8KKwkJLiA9IEFMSUdOKFBBR0VfU0laRSk7CisJCSooLmRhdGEucGFnZV9hbGlnbmVkKQorCiAJCS8qIFRoZW4sIHRoZSBjYWNoZWxpbmUgYWxpZ25lZCBkYXRhICovCiAJCS4gPSBBTElHTihMMV9DQUNIRV9CWVRFUyk7CiAJCSooLmRhdGEuY2FjaGVsaW5lX2FsaWduZWQpCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL2xpYi9pby1yZWFkc2IuUyBiL2FyY2gvYXZyMzIvbGliL2lvLXJlYWRzYi5TCmluZGV4IDJiZTVkYTcuLmNiMmQ4NjkgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbGliL2lvLXJlYWRzYi5TCisrKyBiL2FyY2gvYXZyMzIvbGliL2lvLXJlYWRzYi5TCkBAIC00MSw3ICs0MSw3IEBACiAyOglzdWIJcjEwLCAtNAogCXJldGVxCXIxMgogCi0zOglsZC51aAlyOCwgcjEyWzBdCiszOglsZC51YglyOCwgcjEyWzBdCiAJc3ViCXIxMCwgMQogCXN0LmIJcjExKyssIHI4CiAJYnJuZQkzYgpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9NYWtlZmlsZSBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvTWFrZWZpbGUKaW5kZXggZTg5MDA5NC4uZDUwMThlMiAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9NYWtlZmlsZQorKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL01ha2VmaWxlCkBAIC0xLDMgKzEsOCBAQAotb2JqLXkJCQkJKz0gYXQzMmFwLm8gY2xvY2subyBpbnRjLm8gZXh0aW50Lm8gcGlvLm8gaHNtYy5vCitvYmoteQkJCQkrPSBwZGMubyBjbG9jay5vIGludGMubyBleHRpbnQubyBwaW8ubyBoc21jLm8KIG9iai0kKENPTkZJR19DUFVfQVQzMkFQNzAwWCkJKz0gYXQzMmFwNzAweC5vIHBtLWF0MzJhcDcwMHgubwogb2JqLSQoQ09ORklHX0NQVV9GUkVRX0FUMzJBUCkJKz0gY3B1ZnJlcS5vCitvYmotJChDT05GSUdfUE0pCQkrPSBwbS5vCisKK2lmZXEgKCQoQ09ORklHX1BNX0RFQlVHKSx5KQorQ0ZMQUdTX3BtLm8JKz0gLURERUJVRworZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvYXQzMmFwLmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YzQ5ODdmLi4wMDAwMDAwCi0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvYXQzMmFwLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEF0bWVsIENvcnBvcmF0aW9uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCi0gKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvY2xrLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgotCi0jaW5jbHVkZSA8YXNtL2FyY2gvaW5pdC5oPgotCi12b2lkIF9faW5pdCBzZXR1cF9wbGF0Zm9ybSh2b2lkKQotewotCWF0MzJfY2xvY2tfaW5pdCgpOwotCWF0MzJfcG9ydG11eF9pbml0KCk7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQotewotCXN0cnVjdCBjbGsgKnBjbGssICpoY2xrOwotCi0JcGNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgInBjbGsiKTsKLQlpZiAoSVNfRVJSKHBjbGspKSB7Ci0JCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIHBjbGsgZGVmaW5lZFxuIik7Ci0JCXJldHVybiBQVFJfRVJSKHBjbGspOwotCX0KLQloY2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAiaGNsayIpOwotCWlmIChJU19FUlIoaGNsaykpIHsKLQkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gaGNsayBkZWZpbmVkXG4iKTsKLQkJY2xrX3B1dChwY2xrKTsKLQkJcmV0dXJuIFBUUl9FUlIoaGNsayk7Ci0JfQotCi0JY2xrX2VuYWJsZShwY2xrKTsKLQljbGtfZW5hYmxlKGhjbGspOwotCi0JZGV2X2luZm8oJnBkZXYtPmRldiwgIkF0bWVsIFBlcmlwaGVyYWwgRE1BIENvbnRyb2xsZXIgZW5hYmxlZFxuIik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHBkY19kcml2ZXIgPSB7Ci0JLnByb2JlCQk9IHBkY19wcm9iZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAicGRjIiwKLQl9LAotfTsKLQotc3RhdGljIGludCBfX2luaXQgcGRjX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZwZGNfZHJpdmVyKTsKLX0KLWFyY2hfaW5pdGNhbGwocGRjX2luaXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9hdDMyYXA3MDB4LmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYwppbmRleCAwZjI0YjRmLi4wN2IyMWIxIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYworKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2F0MzJhcDcwMHguYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGFzbS9hcmNoL2F0MzJhcDcwMHguaD4KICNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BvcnRtdXguaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9zcmFtLmg+CiAKICNpbmNsdWRlIDx2aWRlby9hdG1lbF9sY2RjLmg+CiAKQEAgLTkzLDE5ICs5NCwxMiBAQAogCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHBtX2xvY2spOwogCi11bnNpZ25lZCBsb25nIGF0MzJhcDcwMDBfb3NjX3JhdGVzWzNdID0gewotCVswXSA9IDMyNzY4LAotCS8qIEZJWE1FOiB0aGVzZSBhcmUgQVRTVEsxMDAyLXNwZWNpZmljICovCi0JWzFdID0gMjAwMDAwMDAsCi0JWzJdID0gMTIwMDAwMDAsCi19OwotCiBzdGF0aWMgc3RydWN0IGNsayBvc2MwOwogc3RhdGljIHN0cnVjdCBjbGsgb3NjMTsKIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgb3NjX2dldF9yYXRlKHN0cnVjdCBjbGsgKmNsaykKIHsKLQlyZXR1cm4gYXQzMmFwNzAwMF9vc2NfcmF0ZXNbY2xrLT5pbmRleF07CisJcmV0dXJuIGF0MzJfYm9hcmRfb3NjX3JhdGVzW2Nsay0+aW5kZXhdOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBwbGxfZ2V0X3JhdGUoc3RydWN0IGNsayAqY2xrLCB1bnNpZ25lZCBsb25nIGNvbnRyb2wpCkBAIC02ODIsNiArNjc2LDE0IEBACiAJLnVzZXJzCQk9IDEsCiAJLmluZGV4CQk9IDMsCiB9Oworc3RhdGljIHN0cnVjdCBjbGsgc2RyYW1jX2NsayA9IHsKKwkubmFtZQkJPSAic2RyYW1jX2NsayIsCisJLnBhcmVudAkJPSAmcGJiX2NsaywKKwkubW9kZQkJPSBwYmJfY2xrX21vZGUsCisJLmdldF9yYXRlCT0gcGJiX2Nsa19nZXRfcmF0ZSwKKwkudXNlcnMJCT0gMSwKKwkuaW5kZXgJCT0gMTQsCit9OwogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHNtYzBfcmVzb3VyY2VbXSA9IHsKIAlQQk1FTSgweGZmZjAzNDAwKSwKQEAgLTg0MSw2ICs4NDMsODEgQEAKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBQU0lGCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdG1lbF9wc2lmMF9yZXNvdXJjZVtdIF9faW5pdGRhdGEgPSB7CisJeworCQkuc3RhcnQJPSAweGZmZTAzYzAwLAorCQkuZW5kCT0gMHhmZmUwM2NmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlJUlEoMTgpLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3BzaWYwX3BjbGsgPSB7CisJLm5hbWUJCT0gInBjbGsiLAorCS5wYXJlbnQJCT0gJnBiYV9jbGssCisJLm1vZGUJCT0gcGJhX2Nsa19tb2RlLAorCS5nZXRfcmF0ZQk9IHBiYV9jbGtfZ2V0X3JhdGUsCisJLmluZGV4CQk9IDE1LAorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdG1lbF9wc2lmMV9yZXNvdXJjZVtdIF9faW5pdGRhdGEgPSB7CisJeworCQkuc3RhcnQJPSAweGZmZTAzZDAwLAorCQkuZW5kCT0gMHhmZmUwM2RmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlJUlEoMTgpLAorfTsKK3N0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3BzaWYxX3BjbGsgPSB7CisJLm5hbWUJCT0gInBjbGsiLAorCS5wYXJlbnQJCT0gJnBiYV9jbGssCisJLm1vZGUJCT0gcGJhX2Nsa19tb2RlLAorCS5nZXRfcmF0ZQk9IHBiYV9jbGtfZ2V0X3JhdGUsCisJLmluZGV4CQk9IDE1LAorfTsKKworc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX19pbml0IGF0MzJfYWRkX2RldmljZV9wc2lmKHVuc2lnbmVkIGludCBpZCkKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCisJaWYgKCEoaWQgPT0gMCB8fCBpZCA9PSAxKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJhdG1lbF9wc2lmIiwgaWQpOworCWlmICghcGRldikKKwkJcmV0dXJuIE5VTEw7CisKKwlzd2l0Y2ggKGlkKSB7CisJY2FzZSAwOgorCQlpZiAocGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocGRldiwgYXRtZWxfcHNpZjBfcmVzb3VyY2UsCisJCQkJCUFSUkFZX1NJWkUoYXRtZWxfcHNpZjBfcmVzb3VyY2UpKSkKKwkJCWdvdG8gZXJyX2FkZF9yZXNvdXJjZXM7CisJCWF0bWVsX3BzaWYwX3BjbGsuZGV2ID0gJnBkZXYtPmRldjsKKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoOCksIFBFUklQSF9BLCAwKTsgLyogQ0xPQ0sgKi8KKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoOSksIFBFUklQSF9BLCAwKTsgLyogREFUQSAgKi8KKwkJYnJlYWs7CisJY2FzZSAxOgorCQlpZiAocGxhdGZvcm1fZGV2aWNlX2FkZF9yZXNvdXJjZXMocGRldiwgYXRtZWxfcHNpZjFfcmVzb3VyY2UsCisJCQkJCUFSUkFZX1NJWkUoYXRtZWxfcHNpZjFfcmVzb3VyY2UpKSkKKwkJCWdvdG8gZXJyX2FkZF9yZXNvdXJjZXM7CisJCWF0bWVsX3BzaWYxX3BjbGsuZGV2ID0gJnBkZXYtPmRldjsKKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMTEpLCBQRVJJUEhfQSwgMCk7IC8qIENMT0NLICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBCKDEyKSwgUEVSSVBIX0EsIDApOyAvKiBEQVRBICAqLworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlwbGF0Zm9ybV9kZXZpY2VfYWRkKHBkZXYpOworCXJldHVybiBwZGV2OworCitlcnJfYWRkX3Jlc291cmNlczoKKwlwbGF0Zm9ybV9kZXZpY2VfcHV0KHBkZXYpOworCXJldHVybiBOVUxMOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogIFVTQVJUCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC0xMTEzLDcgKzExOTAsOCBAQAogCXN3aXRjaCAoaWQpIHsKIAljYXNlIDA6CiAJCXBkZXYgPSAmYXRtZWxfc3BpMF9kZXZpY2U7Ci0JCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDApLCAgUEVSSVBIX0EsIDApOwkvKiBNSVNPCSAqLworCQkvKiBwdWxsdXAgTUlTTyBzbyBhIGxldmVsIGlzIGFsd2F5cyBkZWZpbmVkICovCisJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDApLCAgUEVSSVBIX0EsIEFUMzJfR1BJT0ZfUFVMTFVQKTsKIAkJc2VsZWN0X3BlcmlwaGVyYWwoUEEoMSksICBQRVJJUEhfQSwgMCk7CS8qIE1PU0kJICovCiAJCXNlbGVjdF9wZXJpcGhlcmFsKFBBKDIpLCAgUEVSSVBIX0EsIDApOwkvKiBTQ0sJICovCiAJCWF0MzJfc3BpX3NldHVwX3NsYXZlcygwLCBiLCBuLCBzcGkwX3BpbnMpOwpAQCAtMTEyMSw3ICsxMTk5LDggQEAKIAogCWNhc2UgMToKIAkJcGRldiA9ICZhdG1lbF9zcGkxX2RldmljZTsKLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMCksICBQRVJJUEhfQiwgMCk7CS8qIE1JU08gICovCisJCS8qIHB1bGx1cCBNSVNPIHNvIGEgbGV2ZWwgaXMgYWx3YXlzIGRlZmluZWQgKi8KKwkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoMCksICBQRVJJUEhfQiwgQVQzMl9HUElPRl9QVUxMVVApOwogCQlzZWxlY3RfcGVyaXBoZXJhbChQQigxKSwgIFBFUklQSF9CLCAwKTsJLyogTU9TSSAgKi8KIAkJc2VsZWN0X3BlcmlwaGVyYWwoUEIoNSksICBQRVJJUEhfQiwgMCk7CS8qIFNDSyAgICovCiAJCWF0MzJfc3BpX3NldHVwX3NsYXZlcygxLCBiLCBuLCBzcGkxX3BpbnMpOwpAQCAtMTI2NCw3ICsxMzQzLDggQEAKIAogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX19pbml0CiBhdDMyX2FkZF9kZXZpY2VfbGNkYyh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvICpkYXRhLAotCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuKQorCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuLAorCQkgICAgIHVuc2lnbmVkIGludCBwaW5fY29uZmlnKQogewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CiAJc3RydWN0IGF0bWVsX2xjZGZiX2luZm8gKmluZm87CkBAIC0xMjkxLDM3ICsxMzcxLDc3IEBACiAJc3dpdGNoIChpZCkgewogCWNhc2UgMDoKIAkJcGRldiA9ICZhdG1lbF9sY2RmYjBfZGV2aWNlOwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygxOSksIFBFUklQSF9BLCAwKTsJLyogQ0MJICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMCksIFBFUklQSF9BLCAwKTsJLyogSFNZTkMgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDIxKSwgUEVSSVBIX0EsIDApOwkvKiBQQ0xLCSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjIpLCBQRVJJUEhfQSwgMCk7CS8qIFZTWU5DICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMyksIFBFUklQSF9BLCAwKTsJLyogRFZBTAkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI0KSwgUEVSSVBIX0EsIDApOwkvKiBNT0RFCSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjUpLCBQRVJJUEhfQSwgMCk7CS8qIFBXUgkgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMCAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjcpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyOCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI5KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMyAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMzApLCBQRVJJUEhfQSwgMCk7CS8qIERBVEE0ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTUgICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDApLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNiAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMSksICBQRVJJUEhfQSwgMCk7CS8qIERBVEE3ICAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgyKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTggICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDMpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOSAgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNCksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMCAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg1KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTExICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDYpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTIgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoNyksICBQRVJJUEhfQSwgMCk7CS8qIERBVEExMyAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg4KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE0ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDkpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTUgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTApLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExNiAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTE3ICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEyKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTggKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTMpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEExOSAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNCksIFBFUklQSF9BLCAwKTsJLyogREFUQTIwICovCi0JCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE1KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjEgKi8KLQkJc2VsZWN0X3BlcmlwaGVyYWwoUEQoMTYpLCBQRVJJUEhfQSwgMCk7CS8qIERBVEEyMiAqLwotCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTIzICovCisKKwkJc3dpdGNoIChwaW5fY29uZmlnKSB7CisJCWNhc2UgMDoKKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDE5KSwgUEVSSVBIX0EsIDApOwkvKiBDQwkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMCksIFBFUklQSF9BLCAwKTsJLyogSFNZTkMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMSksIFBFUklQSF9BLCAwKTsJLyogUENMSwkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMiksIFBFUklQSF9BLCAwKTsJLyogVlNZTkMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyMyksIFBFUklQSF9BLCAwKTsJLyogRFZBTAkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNCksIFBFUklQSF9BLCAwKTsJLyogTU9ERQkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygyNSksIFBFUklQSF9BLCAwKTsJLyogUFdSCSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI3KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI4KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMiAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDI5KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDMwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBNCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBDKDMxKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBNSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDApLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNiAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBNyAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDIpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOCAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDMpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBOSAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDQpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDUpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTEgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDYpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTIgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDcpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTMgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDgpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTQgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDkpLCAgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTUgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEwKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTYgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDExKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTcgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEyKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTggKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDEzKSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMTkgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE0KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjAgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE1KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjEgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE2KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjIgKi8KKwkJCXNlbGVjdF9wZXJpcGhlcmFsKFBEKDE3KSwgUEVSSVBIX0EsIDApOwkvKiBEQVRBMjMgKi8KKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgwKSwgIFBFUklQSF9CLCAwKTsJLyogQ0MJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjApLCBQRVJJUEhfQSwgMCk7CS8qIEhTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjEpLCBQRVJJUEhfQSwgMCk7CS8qIFBDTEsJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjIpLCBQRVJJUEhfQSwgMCk7CS8qIFZTWU5DICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMSksICBQRVJJUEhfQiwgMCk7CS8qIERWQUwJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEUoMiksICBQRVJJUEhfQiwgMCk7CS8qIE1PREUJICAqLworCQkJc2VsZWN0X3BlcmlwaGVyYWwoUEMoMjUpLCBQRVJJUEhfQSwgMCk7CS8qIFBXUgkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgzKSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTAgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg0KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTEgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg1KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTIgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg2KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTMgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg3KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTQgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQQygzMSksIFBFUklQSF9BLCAwKTsJLyogREFUQTUgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgwKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTYgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxKSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTcgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg4KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTggICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSg5KSwgIFBFUklQSF9CLCAwKTsJLyogREFUQTkgICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMCksIFBFUklQSF9CLCAwKTsJLyogREFUQTEwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMSksIFBFUklQSF9CLCAwKTsJLyogREFUQTExICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMiksIFBFUklQSF9CLCAwKTsJLyogREFUQTEyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg3KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTEzICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg4KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE0ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCg5KSwgIFBFUklQSF9BLCAwKTsJLyogREFUQTE1ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxMyksIFBFUklQSF9CLCAwKTsJLyogREFUQTE2ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNCksIFBFUklQSF9CLCAwKTsJLyogREFUQTE3ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNSksIFBFUklQSF9CLCAwKTsJLyogREFUQTE4ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNiksIFBFUklQSF9CLCAwKTsJLyogREFUQTE5ICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxNyksIFBFUklQSF9CLCAwKTsJLyogREFUQTIwICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRSgxOCksIFBFUklQSF9CLCAwKTsJLyogREFUQTIxICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNiksIFBFUklQSF9BLCAwKTsJLyogREFUQTIyICovCisJCQlzZWxlY3RfcGVyaXBoZXJhbChQRCgxNyksIFBFUklQSF9BLCAwKTsJLyogREFUQTIzICovCisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWdvdG8gZXJyX2ludmFsaWRfaWQ7CisJCX0KIAogCQljbGtfc2V0X3BhcmVudCgmYXRtZWxfbGNkZmIwX3BpeGNsaywgJnBsbDApOwogCQljbGtfc2V0X3JhdGUoJmF0bWVsX2xjZGZiMF9waXhjbGssIGNsa19nZXRfcmF0ZSgmcGxsMCkpOwpAQCAtMTM2MCw3ICsxNDgwLDcgQEAKIAlJUlEoMjQpLAogfTsKIHN0YXRpYyBzdHJ1Y3QgY2xrIGF0bWVsX3B3bTBfbWNrID0gewotCS5uYW1lCQk9ICJtY2siLAorCS5uYW1lCQk9ICJwd21fY2xrIiwKIAkucGFyZW50CQk9ICZwYmJfY2xrLAogCS5tb2RlCQk9IHBiYl9jbGtfbW9kZSwKIAkuZ2V0X3JhdGUJPSBwYmJfY2xrX2dldF9yYXRlLApAQCAtMTg4Nyw2ICsyMDA3LDcgQEAKIAkmaG1hdHJpeF9jbGssCiAJJmViaV9jbGssCiAJJmhyYW1jX2NsaywKKwkmc2RyYW1jX2NsaywKIAkmc21jMF9wY2xrLAogCSZzbWMwX21jaywKIAkmcGRjX2hjbGssCkBAIC0xOTAwLDYgKzIwMjEsOCBAQAogCSZwaW80X21jaywKIAkmYXQzMl90Y2IwX3QwX2NsaywKIAkmYXQzMl90Y2IxX3QwX2NsaywKKwkmYXRtZWxfcHNpZjBfcGNsaywKKwkmYXRtZWxfcHNpZjFfcGNsaywKIAkmYXRtZWxfdXNhcnQwX3VzYXJ0LAogCSZhdG1lbF91c2FydDFfdXNhcnQsCiAJJmF0bWVsX3VzYXJ0Ml91c2FydCwKQEAgLTE5MzUsMTYgKzIwNTgsNyBAQAogfTsKIHVuc2lnbmVkIGludCBhdDMyX25yX2Nsb2NrcyA9IEFSUkFZX1NJWkUoYXQzMl9jbG9ja19saXN0KTsKIAotdm9pZCBfX2luaXQgYXQzMl9wb3J0bXV4X2luaXQodm9pZCkKLXsKLQlhdDMyX2luaXRfcGlvKCZwaW8wX2RldmljZSk7Ci0JYXQzMl9pbml0X3BpbygmcGlvMV9kZXZpY2UpOwotCWF0MzJfaW5pdF9waW8oJnBpbzJfZGV2aWNlKTsKLQlhdDMyX2luaXRfcGlvKCZwaW8zX2RldmljZSk7Ci0JYXQzMl9pbml0X3BpbygmcGlvNF9kZXZpY2UpOwotfQotCi12b2lkIF9faW5pdCBhdDMyX2Nsb2NrX2luaXQodm9pZCkKK3ZvaWQgX19pbml0IHNldHVwX3BsYXRmb3JtKHZvaWQpCiB7CiAJdTMyIGNwdV9tYXNrID0gMCwgaHNiX21hc2sgPSAwLCBwYmFfbWFzayA9IDAsIHBiYl9tYXNrID0gMDsKIAlpbnQgaTsKQEAgLTE5OTksNCArMjExMywzNiBAQAogCXBtX3dyaXRlbChIU0JfTUFTSywgaHNiX21hc2spOwogCXBtX3dyaXRlbChQQkFfTUFTSywgcGJhX21hc2spOwogCXBtX3dyaXRlbChQQkJfTUFTSywgcGJiX21hc2spOworCisJLyogSW5pdGlhbGl6ZSB0aGUgcG9ydCBtdXhlcyAqLworCWF0MzJfaW5pdF9waW8oJnBpbzBfZGV2aWNlKTsKKwlhdDMyX2luaXRfcGlvKCZwaW8xX2RldmljZSk7CisJYXQzMl9pbml0X3BpbygmcGlvMl9kZXZpY2UpOworCWF0MzJfaW5pdF9waW8oJnBpbzNfZGV2aWNlKTsKKwlhdDMyX2luaXRfcGlvKCZwaW80X2RldmljZSk7CiB9CisKK3N0cnVjdCBnZW5fcG9vbCAqc3JhbV9wb29sOworCitzdGF0aWMgaW50IF9faW5pdCBzcmFtX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgZ2VuX3Bvb2wgKnBvb2w7CisKKwkvKiAxS2lCIGdyYW51bGFyaXR5ICovCisJcG9vbCA9IGdlbl9wb29sX2NyZWF0ZSgxMCwgLTEpOworCWlmICghcG9vbCkKKwkJZ290byBmYWlsOworCisJaWYgKGdlbl9wb29sX2FkZChwb29sLCAweDI0MDAwMDAwLCAweDgwMDAsIC0xKSkKKwkJZ290byBlcnJfcG9vbF9hZGQ7CisKKwlzcmFtX3Bvb2wgPSBwb29sOworCXJldHVybiAwOworCitlcnJfcG9vbF9hZGQ6CisJZ2VuX3Bvb2xfZGVzdHJveShwb29sKTsKK2ZhaWw6CisJcHJfZXJyKCJGYWlsZWQgdG8gY3JlYXRlIFNSQU0gcG9vbFxuIik7CisJcmV0dXJuIC1FTk9NRU07Cit9Citjb3JlX2luaXRjYWxsKHNyYW1faW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL2NwdWZyZXEuYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvY3B1ZnJlcS5jCmluZGV4IDIzNTUyNGIuLjVkZDhkMjUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvY3B1ZnJlcS5jCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvY3B1ZnJlcS5jCkBAIC0xMDgsNSArMTA4LDQgQEAKIHsKIAlyZXR1cm4gY3B1ZnJlcV9yZWdpc3Rlcl9kcml2ZXIoJmF0MzJfZHJpdmVyKTsKIH0KLQotYXJjaF9pbml0Y2FsbChhdDMyX2NwdWZyZXFfaW5pdCk7CitsYXRlX2luaXRjYWxsKGF0MzJfY3B1ZnJlcV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvaW50Yy5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9pbnRjLmMKaW5kZXggMDk3Y2Y0ZS4uOTk0YzQ1NDUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvaW50Yy5jCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvaW50Yy5jCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBdG1lbCBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEF0bWVsIENvcnBvcmF0aW9uCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCkBAIC0xMiwxNCArMTIsMjAgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pcnEuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSAiaW50Yy5oIgogCiBzdHJ1Y3QgaW50YyB7Ci0Jdm9pZCBfX2lvbWVtCSpyZWdzOwotCXN0cnVjdCBpcnFfY2hpcAljaGlwOworCXZvaWQgX19pb21lbQkJKnJlZ3M7CisJc3RydWN0IGlycV9jaGlwCQljaGlwOworCXN0cnVjdCBzeXNfZGV2aWNlCXN5c2RldjsKKyNpZmRlZiBDT05GSUdfUE0KKwl1bnNpZ25lZCBsb25nCQlzdXNwZW5kX2lwcjsKKwl1bnNpZ25lZCBsb25nCQlzYXZlZF9pcHJbNjRdOworI2VuZGlmCiB9OwogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBhdDMyX2ludGMwX2RldmljZTsKQEAgLTEzNiw2ICsxNDIsNzQgQEAKIAlwYW5pYygiSW50ZXJydXB0IGNvbnRyb2xsZXIgaW5pdGlhbGl6YXRpb24gZmFpbGVkIVxuIik7CiB9CiAKKyNpZmRlZiBDT05GSUdfUE0KK3ZvaWQgaW50Y19zZXRfc3VzcGVuZF9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCWludGMwLnN1c3BlbmRfaXByID0gb2Zmc2V0OworfQorCitzdGF0aWMgaW50IGludGNfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqc2RldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBpbnRjICppbnRjID0gY29udGFpbmVyX29mKHNkZXYsIHN0cnVjdCBpbnRjLCBzeXNkZXYpOworCWludCBpOworCisJaWYgKHVubGlrZWx5KCFpcnFzX2Rpc2FibGVkKCkpKSB7CisJCXByX2VycigiaW50Y19zdXNwZW5kOiBjYWxsZWQgd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAodW5saWtlbHkoIWludGMtPnN1c3BlbmRfaXByKSkgeworCQlwcl9lcnIoImludGNfc3VzcGVuZDogc3VzcGVuZF9pcHIgbm90IGluaXRpYWxpemVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZm9yIChpID0gMDsgaSA8IDY0OyBpKyspIHsKKwkJaW50Yy0+c2F2ZWRfaXByW2ldID0gaW50Y19yZWFkbChpbnRjLCBJTlRQUjAgKyA0ICogaSk7CisJCWludGNfd3JpdGVsKGludGMsIElOVFBSMCArIDQgKiBpLCBpbnRjLT5zdXNwZW5kX2lwcik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaW50Y19yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKnNkZXYpCit7CisJc3RydWN0IGludGMgKmludGMgPSBjb250YWluZXJfb2Yoc2Rldiwgc3RydWN0IGludGMsIHN5c2Rldik7CisJaW50IGk7CisKKwlXQVJOX09OKCFpcnFzX2Rpc2FibGVkKCkpOworCisJZm9yIChpID0gMDsgaSA8IDY0OyBpKyspCisJCWludGNfd3JpdGVsKGludGMsIElOVFBSMCArIDQgKiBpLCBpbnRjLT5zYXZlZF9pcHJbaV0pOworCisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBpbnRjX3N1c3BlbmQJTlVMTAorI2RlZmluZSBpbnRjX3Jlc3VtZQlOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3MgaW50Y19jbGFzcyA9IHsKKwkubmFtZQkJPSAiaW50YyIsCisJLnN1c3BlbmQJPSBpbnRjX3N1c3BlbmQsCisJLnJlc3VtZQkJPSBpbnRjX3Jlc3VtZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGludGNfaW5pdF9zeXNkZXYodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZpbnRjX2NsYXNzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaW50YzAuc3lzZGV2LmlkID0gMDsKKwlpbnRjMC5zeXNkZXYuY2xzID0gJmludGNfY2xhc3M7CisJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZpbnRjMC5zeXNkZXYpOworCisJcmV0dXJuIHJldDsKK30KK2RldmljZV9pbml0Y2FsbChpbnRjX2luaXRfc3lzZGV2KTsKKwogdW5zaWduZWQgbG9uZyBpbnRjX2dldF9wZW5kaW5nKHVuc2lnbmVkIGludCBncm91cCkKIHsKIAlyZXR1cm4gaW50Y19yZWFkbCgmaW50YzAsIElOVFJFUTAgKyA0ICogZ3JvdXApOwpkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9wZGMuYyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGRjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA0MGJkYQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGRjLmMKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBdG1lbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworc3RhdGljIGludCBfX2luaXQgcGRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGNsayAqcGNsaywgKmhjbGs7CisKKwlwY2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAicGNsayIpOworCWlmIChJU19FUlIocGNsaykpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAibm8gcGNsayBkZWZpbmVkXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIocGNsayk7CisJfQorCWhjbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJoY2xrIik7CisJaWYgKElTX0VSUihoY2xrKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJubyBoY2xrIGRlZmluZWRcbiIpOworCQljbGtfcHV0KHBjbGspOworCQlyZXR1cm4gUFRSX0VSUihoY2xrKTsKKwl9CisKKwljbGtfZW5hYmxlKHBjbGspOworCWNsa19lbmFibGUoaGNsayk7CisKKwlkZXZfaW5mbygmcGRldi0+ZGV2LCAiQXRtZWwgUGVyaXBoZXJhbCBETUEgQ29udHJvbGxlciBlbmFibGVkXG4iKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcGRjX2RyaXZlciA9IHsKKwkucHJvYmUJCT0gcGRjX3Byb2JlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJwZGMiLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwZGNfaW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnBkY19kcml2ZXIpOworfQorYXJjaF9pbml0Y2FsbChwZGNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5jIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uYwppbmRleCAzOGE4ZmEzLi42MGRhMDNiIDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5jCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmMKQEAgLTMxOCw2ICszMTgsOCBAQAogCQljb25zdCBjaGFyICpsYWJlbDsKIAogCQlsYWJlbCA9IGdwaW9jaGlwX2lzX3JlcXVlc3RlZChjaGlwLCBpKTsKKwkJaWYgKCFsYWJlbCAmJiAoaW1yICYgbWFzaykpCisJCQlsYWJlbCA9ICJbaXJxXSI7CiAJCWlmICghbGFiZWwpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uaCBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcGlvLmgKaW5kZXggNzc5NTExNi4uOTQ4NGRmYyAxMDA2NDQKLS0tIGEvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9waW8uaAorKysgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3Bpby5oCkBAIC01Nyw3ICs1Nyw3IEBACiAKIC8qIEJpdGZpZWxkcyBpbiBJRkRSICovCiAKLS8qIEJpdGZpZWxkcyBpbiBJU0ZSICovCisvKiBCaXRmaWVsZHMgaW4gSUZTUiAqLwogCiAvKiBCaXRmaWVsZHMgaW4gU09EUiAqLwogCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLWF0MzJhcDcwMHguUyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0tYXQzMmFwNzAweC5TCmluZGV4IDk0OWUyNDguLjBhNTNhZDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0tYXQzMmFwNzAweC5TCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0tYXQzMmFwNzAweC5TCkBAIC0xMiw2ICsxMiwxMiBAQAogI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3BtLmg+CiAKKyNpbmNsdWRlICJwbS5oIgorI2luY2x1ZGUgInNkcmFtYy5oIgorCisvKiBTYW1lIGFzIDB4ZmZmMDAwMDAgYnV0IGZpdHMgaW4gYSAyMSBiaXQgc2lnbmVkIGltbWVkaWF0ZSAqLworI2RlZmluZSBQTV9CQVNFCS0weDEwMDAwMAorCiAJLnNlY3Rpb24gLmJzcywgIndhIiwgQG5vYml0cwogCS5nbG9iYWwJZGlzYWJsZV9pZGxlX3NsZWVwCiAJLnR5cGUJZGlzYWJsZV9pZGxlX3NsZWVwLCBAb2JqZWN0CkBAIC02NCwzICs3MCwxMDUgQEAKIAl1bm1hc2tfaW50ZXJydXB0cwogCXJldGFsCXIxMgogCS5zaXplCWNwdV9pZGxlX3NraXBfc2xlZXAsIC4gLSBjcHVfaWRsZV9za2lwX3NsZWVwCisKKyNpZmRlZiBDT05GSUdfUE0KKwkuc2VjdGlvbiAuaW5pdC50ZXh0LCAiYXgiLCBAcHJvZ2JpdHMKKworCS5nbG9iYWwJcG1fZXhjZXB0aW9uCisJLnR5cGUJcG1fZXhjZXB0aW9uLCBAZnVuY3Rpb24KK3BtX2V4Y2VwdGlvbjoKKwkvKgorCSAqIEV4Y2VwdGlvbnMgYXJlIG1hc2tlZCB3aGVuIHdlIHN3aXRjaCB0byB0aGlzIGhhbmRsZXIsIHNvCisJICogd2UnbGwgb25seSBnZXQgInVucmVjb3ZlcmFibGUiIGV4Y2VwdGlvbnMgKG9mZnNldCAwLikKKwkgKi8KKwlzdWIJcjEyLCBwYywgLiAtIC5McGFuaWNfbXNnCisJbGRkcGMJcGMsIC5McGFuaWNfYWRkcgorCisJLmFsaWduCTIKKy5McGFuaWNfYWRkcjoKKwkubG9uZwlwYW5pYworLkxwYW5pY19tc2c6CisJLmFzY2l6CSJVbnJlY292ZXJhYmxlIGV4Y2VwdGlvbiBkdXJpbmcgc3VzcGVuZFxuIgorCS5zaXplCXBtX2V4Y2VwdGlvbiwgLiAtIHBtX2V4Y2VwdGlvbgorCisJLmdsb2JhbAlwbV9pcnEwCisJLnR5cGUJcG1faXJxMCwgQGZ1bmN0aW9uCitwbV9pcnEwOgorCS8qIERpc2FibGUgaW50ZXJydXB0cyBhbmQgcmV0dXJuIGFmdGVyIHRoZSBzbGVlcCBpbnN0cnVjdGlvbiAqLworCW1mc3IJcjksIFNZU1JFR19SU1JfSU5UMAorCW10c3IJU1lTUkVHX1JBUl9JTlQwLCByOAorCXNicglyOSwgU1lTUkVHX0dNX09GRlNFVAorCW10c3IJU1lTUkVHX1JTUl9JTlQwLCByOQorCXJldGUKKworCS8qCisJICogdm9pZCBjcHVfZW50ZXJfc3RhbmRieSh1bnNpZ25lZCBsb25nIHNkcmFtY19iYXNlKQorCSAqCisJICogRW50ZXIgUE1fU1VTUEVORF9TVEFOREJZIG1vZGUuIEF0IHRoaXMgcG9pbnQsIGFsbCBkcml2ZXJzCisJICogYXJlIHN1c3BlbmRlZCBhbmQgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQuIEludGVycnVwdHMKKwkgKiBtYXJrZWQgYXMgJ3dha2V1cCcgZXZlbnQgc291cmNlcyBtYXkgc3RpbGwgY29tZSBhbG9uZyBhbmQKKwkgKiBnZXQgdXMgb3V0IG9mIGhlcmUuCisJICoKKwkgKiBUaGUgU0RSQU0gd2lsbCBiZSBwdXQgaW50byBzZWxmLXJlZnJlc2ggbW9kZSAod2hpY2ggZG9lcworCSAqIG5vdCByZXF1aXJlIGEgY2xvY2sgZnJvbSB0aGUgQ1BVKSwgYW5kIHRoZSBDUFUgd2lsbCBiZSBwdXQKKwkgKiBpbnRvICJmcm96ZW4iIG1vZGUgKEhTQiBidXMgc3RvcHBlZCkuIFRoZSBTRFJBTSBjb250cm9sbGVyCisJICogd2lsbCBhdXRvbWF0aWNhbGx5IGJyaW5nIHRoZSBTRFJBTSBpbnRvIG5vcm1hbCBtb2RlIG9uIHRoZQorCSAqIGZpcnN0IGFjY2VzcywgYW5kIHRoZSBwb3dlciBtYW5hZ2VyIHdpbGwgYXV0b21hdGljYWxseQorCSAqIHN0YXJ0IHRoZSBIU0IgYW5kIENQVSBjbG9ja3MgdXBvbiBhIHdha2V1cCBldmVudC4KKwkgKgorCSAqIFRoaXMgY29kZSB1c2VzIHRoZSBzYW1lICJza2lwIHNsZWVwIiB0ZWNobmlxdWUgYXMgYWJvdmUuCisJICogSXQgaXMgdmVyeSBpbXBvcnRhbnQgdGhhdCB3ZSBqdW1wIGRpcmVjdGx5IHRvCisJICogY3B1X2FmdGVyX3NsZWVwIGFmdGVyIHRoZSBzbGVlcCBpbnN0cnVjdGlvbiBzaW5jZSB0aGF0J3MKKwkgKiB3aGVyZSB3ZSdsbCBlbmQgdXAgaWYgdGhlIGludGVycnVwdCBoYW5kbGVyIGRlY2lkZXMgdGhhdCB3ZQorCSAqIG5lZWQgdG8gc2tpcCB0aGUgc2xlZXAgaW5zdHJ1Y3Rpb24uCisJICovCisJLmdsb2JhbAlwbV9zdGFuZGJ5CisJLnR5cGUJcG1fc3RhbmRieSwgQGZ1bmN0aW9uCitwbV9zdGFuZGJ5OgorCS8qCisJICogaW50ZXJydXB0cyBhcmUgYWxyZWFkeSBtYXNrZWQgYXQgdGhpcyBwb2ludCwgYW5kIEVWQkEKKwkgKiBwb2ludHMgdG8gcG1fZXhjZXB0aW9uIGFib3ZlLgorCSAqLworCWxkLncJcjEwLCByMTJbU0RSQU1DX0xQUl0KKwlzdWIJcjgsIHBjLCAuIC0gMWYJCS8qIHJldHVybiBhZGRyZXNzIGZvciBpcnEgaGFuZGxlciAqLworCW1vdglyMTEsIFNEUkFNQ19MUFJfTFBDQl9TRUxGX1JGUgorCWJmaW5zCXIxMCwgcjExLCAwLCAyCQkvKiBMUENCIDwtIHNlbGYgUmVmcmVzaCAqLworCXN5bmMJMAkJCS8qIGZsdXNoIHdyaXRlIGJ1ZmZlciAqLworCXN0LncJcjEyW1NEUkFNQ19MUFJdLCByMTEJLyogcHV0IFNEUkFNIGluIHNlbGYtcmVmcmVzaCBtb2RlICovCisJbGQudwlyMTEsIHIxMltTRFJBTUNfTFBSXQorCXVubWFza19pbnRlcnJ1cHRzCisJc2xlZXAJQ1BVX1NMRUVQX0ZST1pFTgorMToJbWFza19pbnRlcnJ1cHRzCisJcmV0YWwJcjEyCisJLnNpemUJcG1fc3RhbmRieSwgLiAtIHBtX3N0YW5kYnkKKworCS5nbG9iYWwJcG1fc3VzcGVuZF90b19yYW0KKwkudHlwZQlwbV9zdXNwZW5kX3RvX3JhbSwgQGZ1bmN0aW9uCitwbV9zdXNwZW5kX3RvX3JhbToKKwkvKgorCSAqIGludGVycnVwdHMgYXJlIGFscmVhZHkgbWFza2VkIGF0IHRoaXMgcG9pbnQsIGFuZCBFVkJBCisJICogcG9pbnRzIHRvIHBtX2V4Y2VwdGlvbiBhYm92ZS4KKwkgKi8KKwltb3YJcjExLCAwCisJY2FjaGUJcjExWzJdLCA4CQkvKiBjbGVhbiBhbGwgZGNhY2hlIGxpbmVzICovCisJc3luYwkwCQkJLyogZmx1c2ggd3JpdGUgYnVmZmVyICovCisJbGQudwlyMTAsIHIxMltTRFJBTUNfTFBSXQorCXN1YglyOCwgcGMsIC4gLSAxZgkJLyogcmV0dXJuIGFkZHJlc3MgZm9yIGlycSBoYW5kbGVyICovCisJbW92CXIxMSwgU0RSQU1DX0xQUl9MUENCX1NFTEZfUkZSCisJYmZpbnMJcjEwLCByMTEsIDAsIDIJCS8qIExQQ0IgPC0gc2VsZiByZWZyZXNoICovCisJc3QudwlyMTJbU0RSQU1DX0xQUl0sIHIxMAkvKiBwdXQgU0RSQU0gaW4gc2VsZi1yZWZyZXNoIG1vZGUgKi8KKwlsZC53CXIxMSwgcjEyW1NEUkFNQ19MUFJdCisKKwl1bm1hc2tfaW50ZXJydXB0cworCXNsZWVwCUNQVV9TTEVFUF9TVE9QCisxOgltYXNrX2ludGVycnVwdHMKKworCXJldGFsCXIxMgorCS5zaXplCXBtX3N1c3BlbmRfdG9fcmFtLCAuIC0gcG1fc3VzcGVuZF90b19yYW0KKworCS5nbG9iYWwJcG1fc3JhbV9lbmQKKwkudHlwZQlwbV9zcmFtX2VuZCwgQGZ1bmN0aW9uCitwbV9zcmFtX2VuZDoKKwkuc2l6ZQlwbV9zcmFtX2VuZCwgMAorCisjZW5kaWYgLyogQ09ORklHX1BNICovCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLmMgYi9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3BtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI3NjQzMgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXZyMzIvbWFjaC1hdDMyYXAvcG0uYwpAQCAtMCwwICsxLDI0NSBAQAorLyoKKyAqIEFWUjMyIEFQIFBvd2VyIE1hbmFnZW1lbnQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXRtZWwgQ29ycG9yYXRpb24KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorCisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vc3lzcmVnLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9wbS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3NyYW0uaD4KKworLyogRklYTUU6IFRoaXMgaXMgb25seSB2YWxpZCBmb3IgQVA3MDAwICovCisjZGVmaW5lIFNEUkFNQ19CQVNFCTB4ZmZmMDM4MDAKKworI2luY2x1ZGUgInNkcmFtYy5oIgorCisjZGVmaW5lIFNSQU1fUEFHRV9GTEFHUwkoU1lTUkVHX0JJVChUTEJFTE9fRCkgfCBTWVNSRUdfQkYoU1osIDEpCVwKKwkJCQl8IFNZU1JFR19CRihBUCwgMykgfCBTWVNSRUdfQklUKEcpKQorCisKK3N0YXRpYyB1bnNpZ25lZCBsb25nCXBtX3NyYW1fc3RhcnQ7CitzdGF0aWMgc2l6ZV90CQlwbV9zcmFtX3NpemU7CitzdGF0aWMgc3RydWN0IHZtX3N0cnVjdAkqcG1fc3JhbV9hcmVhOworCitzdGF0aWMgdm9pZCAoKmF2cjMyX3BtX2VudGVyX3N0YW5kYnkpKHVuc2lnbmVkIGxvbmcgc2RyYW1jX2Jhc2UpOworc3RhdGljIHZvaWQgKCphdnIzMl9wbV9lbnRlcl9zdHIpKHVuc2lnbmVkIGxvbmcgc2RyYW1jX2Jhc2UpOworCisvKgorICogTXVzdCBiZSBjYWxsZWQgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkLiBFeGNlcHRpb25zIHdpbGwgYmUgbWFza2VkCisgKiBvbiByZXR1cm4gKGkuZS4gYWxsIGV4Y2VwdGlvbnMgd2lsbCBiZSAidW5yZWNvdmVyYWJsZSIuKQorICovCitzdGF0aWMgdm9pZCAqYXZyMzJfcG1fbWFwX3NyYW0odm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nCXZhZGRyOworCXVuc2lnbmVkIGxvbmcJcGFnZV9hZGRyOworCXUzMgkJdGxiZWhpOworCXUzMgkJbW11Y3I7CisKKwl2YWRkciA9ICh1bnNpZ25lZCBsb25nKXBtX3NyYW1fYXJlYS0+YWRkcjsKKwlwYWdlX2FkZHIgPSBwbV9zcmFtX3N0YXJ0ICYgUEFHRV9NQVNLOworCisJLyoKKwkgKiBNYXNrIGV4Y2VwdGlvbnMgYW5kIGdyYWIgdGhlIGZpcnN0IFRMQiBlbnRyeS4gV2Ugd29uJ3QgYmUKKwkgKiBuZWVkaW5nIGl0IHdoaWxlIHNsZWVwaW5nLgorCSAqLworCWFzbSB2b2xhdGlsZSgic3NyZgklMCIgOiA6ICJpIihTWVNSRUdfRU1fT0ZGU0VUKSA6ICJtZW1vcnkiKTsKKworCW1tdWNyID0gc3lzcmVnX3JlYWQoTU1VQ1IpOworCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7CisJc3lzcmVnX3dyaXRlKE1NVUNSLCBTWVNSRUdfQkZJTlMoRFJQLCAwLCBtbXVjcikpOworCisJdGxiZWhpID0gU1lTUkVHX0JGKEFTSUQsIFNZU1JFR19CRkVYVChBU0lELCB0bGJlaGkpKTsKKwl0bGJlaGkgfD0gdmFkZHIgJiBQQUdFX01BU0s7CisJdGxiZWhpIHw9IFNZU1JFR19CSVQoVExCRUhJX1YpOworCisJc3lzcmVnX3dyaXRlKFRMQkVMTywgcGFnZV9hZGRyIHwgU1JBTV9QQUdFX0ZMQUdTKTsKKwlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGkpOworCV9fYnVpbHRpbl90bGJ3KCk7CisKKwlyZXR1cm4gKHZvaWQgKikodmFkZHIgKyBwbV9zcmFtX3N0YXJ0IC0gcGFnZV9hZGRyKTsKK30KKworLyoKKyAqIE11c3QgYmUgY2FsbGVkIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZC4gRXhjZXB0aW9ucyB3aWxsIGJlCisgKiB1bm1hc2tlZCBvbiByZXR1cm4uCisgKi8KK3N0YXRpYyB2b2lkIGF2cjMyX3BtX3VubWFwX3NyYW0odm9pZCkKK3sKKwl1MzIJbW11Y3I7CisJdTMyCXRsYmVoaTsKKwl1MzIJdGxiYXJsbzsKKworCS8qIEdvaW5nIHRvIHVwZGF0ZSBUTEIgZW50cnkgYXQgaW5kZXggMCAqLworCW1tdWNyID0gc3lzcmVnX3JlYWQoTU1VQ1IpOworCXRsYmVoaSA9IHN5c3JlZ19yZWFkKFRMQkVISSk7CisJc3lzcmVnX3dyaXRlKE1NVUNSLCBTWVNSRUdfQkZJTlMoRFJQLCAwLCBtbXVjcikpOworCisJLyogQ2xlYXIgdGhlICJ2YWxpZCIgYml0ICovCisJdGxiZWhpID0gU1lTUkVHX0JGKEFTSUQsIFNZU1JFR19CRkVYVChBU0lELCB0bGJlaGkpKTsKKwlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGkpOworCisJLyogTWFyayBpdCBhcyAibm90IGFjY2Vzc2VkIiAqLworCXRsYmFybG8gPSBzeXNyZWdfcmVhZChUTEJBUkxPKTsKKwlzeXNyZWdfd3JpdGUoVExCQVJMTywgdGxiYXJsbyB8IDB4ODAwMDAwMDBVKTsKKworCS8qIFVwZGF0ZSB0aGUgVExCICovCisJX19idWlsdGluX3RsYncoKTsKKworCS8qIFVubWFzayBleGNlcHRpb25zICovCisJYXNtIHZvbGF0aWxlKCJjc3JmCSUwIiA6IDogImkiKFNZU1JFR19FTV9PRkZTRVQpIDogIm1lbW9yeSIpOworfQorCitzdGF0aWMgaW50IGF2cjMyX3BtX3ZhbGlkX3N0YXRlKHN1c3BlbmRfc3RhdGVfdCBzdGF0ZSkKK3sKKwlzd2l0Y2ggKHN0YXRlKSB7CisJY2FzZSBQTV9TVVNQRU5EX09OOgorCWNhc2UgUE1fU1VTUEVORF9TVEFOREJZOgorCWNhc2UgUE1fU1VTUEVORF9NRU06CisJCXJldHVybiAxOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorfQorCitzdGF0aWMgaW50IGF2cjMyX3BtX2VudGVyKHN1c3BlbmRfc3RhdGVfdCBzdGF0ZSkKK3sKKwl1MzIJCWxwcl9zYXZlZDsKKwl1MzIJCWV2YmFfc2F2ZWQ7CisJdm9pZAkJKnNyYW07CisKKwlzd2l0Y2ggKHN0YXRlKSB7CisJY2FzZSBQTV9TVVNQRU5EX1NUQU5EQlk6CisJCXNyYW0gPSBhdnIzMl9wbV9tYXBfc3JhbSgpOworCisJCS8qIFN3aXRjaCB0byBpbi1zcmFtIGV4Y2VwdGlvbiBoYW5kbGVycyAqLworCQlldmJhX3NhdmVkID0gc3lzcmVnX3JlYWQoRVZCQSk7CisJCXN5c3JlZ193cml0ZShFVkJBLCAodW5zaWduZWQgbG9uZylzcmFtKTsKKworCQkvKgorCQkgKiBTYXZlIHRoZSBMUFIgcmVnaXN0ZXIgc28gdGhhdCB3ZSBjYW4gcmUtZW5hYmxlCisJCSAqIFNEUkFNIExvdyBQb3dlciBtb2RlIG9uIHJlc3VtZS4KKwkJICovCisJCWxwcl9zYXZlZCA9IHNkcmFtY19yZWFkbChMUFIpOworCQlwcl9kZWJ1ZygiJXM6IEVudGVyaW5nIHN0YW5kYnkuLi5cbiIsIF9fZnVuY19fKTsKKwkJYXZyMzJfcG1fZW50ZXJfc3RhbmRieShTRFJBTUNfQkFTRSk7CisJCXNkcmFtY193cml0ZWwoTFBSLCBscHJfc2F2ZWQpOworCisJCS8qIFN3aXRjaCBiYWNrIHRvIHJlZ3VsYXIgZXhjZXB0aW9uIGhhbmRsZXJzICovCisJCXN5c3JlZ193cml0ZShFVkJBLCBldmJhX3NhdmVkKTsKKworCQlhdnIzMl9wbV91bm1hcF9zcmFtKCk7CisJCWJyZWFrOworCisJY2FzZSBQTV9TVVNQRU5EX01FTToKKwkJc3JhbSA9IGF2cjMyX3BtX21hcF9zcmFtKCk7CisKKwkJLyogU3dpdGNoIHRvIGluLXNyYW0gZXhjZXB0aW9uIGhhbmRsZXJzICovCisJCWV2YmFfc2F2ZWQgPSBzeXNyZWdfcmVhZChFVkJBKTsKKwkJc3lzcmVnX3dyaXRlKEVWQkEsICh1bnNpZ25lZCBsb25nKXNyYW0pOworCisJCS8qCisJCSAqIFNhdmUgdGhlIExQUiByZWdpc3RlciBzbyB0aGF0IHdlIGNhbiByZS1lbmFibGUKKwkJICogU0RSQU0gTG93IFBvd2VyIG1vZGUgb24gcmVzdW1lLgorCQkgKi8KKwkJbHByX3NhdmVkID0gc2RyYW1jX3JlYWRsKExQUik7CisJCXByX2RlYnVnKCIlczogRW50ZXJpbmcgc3VzcGVuZC10by1yYW0uLi5cbiIsIF9fZnVuY19fKTsKKwkJYXZyMzJfcG1fZW50ZXJfc3RyKFNEUkFNQ19CQVNFKTsKKwkJc2RyYW1jX3dyaXRlbChMUFIsIGxwcl9zYXZlZCk7CisKKwkJLyogU3dpdGNoIGJhY2sgdG8gcmVndWxhciBleGNlcHRpb24gaGFuZGxlcnMgKi8KKwkJc3lzcmVnX3dyaXRlKEVWQkEsIGV2YmFfc2F2ZWQpOworCisJCWF2cjMyX3BtX3VubWFwX3NyYW0oKTsKKwkJYnJlYWs7CisKKwljYXNlIFBNX1NVU1BFTkRfT046CisJCXByX2RlYnVnKCIlczogRW50ZXJpbmcgaWRsZS4uLlxuIiwgX19mdW5jX18pOworCQljcHVfZW50ZXJfaWRsZSgpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXByX2RlYnVnKCIlczogSW52YWxpZCBzdXNwZW5kIHN0YXRlICVkXG4iLCBfX2Z1bmNfXywgc3RhdGUpOworCQlnb3RvIG91dDsKKwl9CisKKwlwcl9kZWJ1ZygiJXM6IHdha2V1cFxuIiwgX19mdW5jX18pOworCitvdXQ6CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fc3VzcGVuZF9vcHMgYXZyMzJfcG1fb3BzID0geworCS52YWxpZAk9IGF2cjMyX3BtX3ZhbGlkX3N0YXRlLAorCS5lbnRlcgk9IGF2cjMyX3BtX2VudGVyLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgYXZyMzJfcG1fb2Zmc2V0KHZvaWQgKnN5bWJvbCkKK3sKKwlleHRlcm4gdTggcG1fZXhjZXB0aW9uW107CisKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpc3ltYm9sIC0gKHVuc2lnbmVkIGxvbmcpcG1fZXhjZXB0aW9uOworfQorCitzdGF0aWMgaW50IF9faW5pdCBhdnIzMl9wbV9pbml0KHZvaWQpCit7CisJZXh0ZXJuIHU4IHBtX2V4Y2VwdGlvbltdOworCWV4dGVybiB1OCBwbV9pcnEwW107CisJZXh0ZXJuIHU4IHBtX3N0YW5kYnlbXTsKKwlleHRlcm4gdTggcG1fc3VzcGVuZF90b19yYW1bXTsKKwlleHRlcm4gdTggcG1fc3JhbV9lbmRbXTsKKwl2b2lkICpkc3Q7CisKKwkvKgorCSAqIFRvIGtlZXAgdGhpbmdzIHNpbXBsZSwgd2UgZGVwZW5kIG9uIG5vdCBuZWVkaW5nIG1vcmUgdGhhbiBhCisJICogc2luZ2xlIHBhZ2UuCisJICovCisJcG1fc3JhbV9zaXplID0gYXZyMzJfcG1fb2Zmc2V0KHBtX3NyYW1fZW5kKTsKKwlpZiAocG1fc3JhbV9zaXplID4gUEFHRV9TSVpFKQorCQlnb3RvIGVycjsKKworCXBtX3NyYW1fc3RhcnQgPSBzcmFtX2FsbG9jKHBtX3NyYW1fc2l6ZSk7CisJaWYgKCFwbV9zcmFtX3N0YXJ0KQorCQlnb3RvIGVycl9hbGxvY19zcmFtOworCisJLyogR3JhYiBhIHZpcnR1YWwgYXJlYSB3ZSBjYW4gdXNlIGxhdGVyIG9uLiAqLworCXBtX3NyYW1fYXJlYSA9IGdldF92bV9hcmVhKHBtX3NyYW1fc2l6ZSwgVk1fSU9SRU1BUCk7CisJaWYgKCFwbV9zcmFtX2FyZWEpCisJCWdvdG8gZXJyX3ZtX2FyZWE7CisJcG1fc3JhbV9hcmVhLT5waHlzX2FkZHIgPSBwbV9zcmFtX3N0YXJ0OworCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlkc3QgPSBhdnIzMl9wbV9tYXBfc3JhbSgpOworCW1lbWNweShkc3QsIHBtX2V4Y2VwdGlvbiwgcG1fc3JhbV9zaXplKTsKKwlmbHVzaF9kY2FjaGVfcmVnaW9uKGRzdCwgcG1fc3JhbV9zaXplKTsKKwlpbnZhbGlkYXRlX2ljYWNoZV9yZWdpb24oZHN0LCBwbV9zcmFtX3NpemUpOworCWF2cjMyX3BtX3VubWFwX3NyYW0oKTsKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwlhdnIzMl9wbV9lbnRlcl9zdGFuZGJ5ID0gZHN0ICsgYXZyMzJfcG1fb2Zmc2V0KHBtX3N0YW5kYnkpOworCWF2cjMyX3BtX2VudGVyX3N0ciA9IGRzdCArIGF2cjMyX3BtX29mZnNldChwbV9zdXNwZW5kX3RvX3JhbSk7CisJaW50Y19zZXRfc3VzcGVuZF9oYW5kbGVyKGF2cjMyX3BtX29mZnNldChwbV9pcnEwKSk7CisKKwlzdXNwZW5kX3NldF9vcHMoJmF2cjMyX3BtX29wcyk7CisKKwlwcmludGsoIkFWUjMyIEFQIFBvd2VyIE1hbmFnZW1lbnQgZW5hYmxlZFxuIik7CisKKwlyZXR1cm4gMDsKKworZXJyX3ZtX2FyZWE6CisJc3JhbV9mcmVlKHBtX3NyYW1fc3RhcnQsIHBtX3NyYW1fc2l6ZSk7CitlcnJfYWxsb2Nfc3JhbToKK2VycjoKKwlwcl9lcnIoIkFWUjMyIFBvd2VyIE1hbmFnZW1lbnQgaW5pdGlhbGl6YXRpb24gZmFpbGVkXG4iKTsKKwlyZXR1cm4gLUVOT01FTTsKK30KK2FyY2hfaW5pdGNhbGwoYXZyMzJfcG1faW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21hY2gtYXQzMmFwL3NkcmFtYy5oIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9zZHJhbWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NmVlYWVkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hdnIzMi9tYWNoLWF0MzJhcC9zZHJhbWMuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogUmVnaXN0ZXIgZGVmaW5pdGlvbnMgZm9yIHRoZSBBVDMyQVAgU0RSQU0gQ29udHJvbGxlcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBdG1lbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworLyogUmVnaXN0ZXIgb2Zmc2V0cyAqLworI2RlZmluZSBTRFJBTUNfTVIJCQkweDAwMDAKKyNkZWZpbmUgU0RSQU1DX1RSCQkJMHgwMDA0CisjZGVmaW5lIFNEUkFNQ19DUgkJCTB4MDAwOAorI2RlZmluZSBTRFJBTUNfSFNSCQkJMHgwMDBjCisjZGVmaW5lIFNEUkFNQ19MUFIJCQkweDAwMTAKKyNkZWZpbmUgU0RSQU1DX0lFUgkJCTB4MDAxNAorI2RlZmluZSBTRFJBTUNfSURSCQkJMHgwMDE4CisjZGVmaW5lIFNEUkFNQ19JTVIJCQkweDAwMWMKKyNkZWZpbmUgU0RSQU1DX0lTUgkJCTB4MDAyMAorI2RlZmluZSBTRFJBTUNfTURSCQkJMHgwMDI0CisKKy8qIE1SIC0gTW9kZSBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9OT1JNQUwJCSggIDAgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX05PUAkJKCAgMSA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfQkFOS1NfUFJFQ0hBUkdFCSggIDIgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19NUl9NT0RFX0xPQURfTU9ERQkoICAzIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9BVVRPX1JFRlJFU0gJKCAgNCA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX01SX01PREVfRVhUX0xPQURfTU9ERQkoICA1IDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTVJfTU9ERV9QT1dFUl9ET1dOCSggIDYgPDwgIDApCisKKy8qIENSIC0gQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfQ1JfTkNfOF9CSVRTCQkoICAwIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfQ1JfTkNfOV9CSVRTCQkoICAxIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfQ1JfTkNfMTBfQklUUwkJKCAgMiA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0NSX05DXzExX0JJVFMJCSggIDMgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19DUl9OUl8xMV9CSVRTCQkoICAwIDw8ICAyKQorI2RlZmluZSBTRFJBTUNfQ1JfTlJfMTJfQklUUwkJKCAgMSA8PCAgMikKKyNkZWZpbmUgU0RSQU1DX0NSX05SXzEzX0JJVFMJCSggIDIgPDwgIDIpCisjZGVmaW5lIFNEUkFNQ19DUl9OQl8yX0JBTktTCQkoICAwIDw8ICA0KQorI2RlZmluZSBTRFJBTUNfQ1JfTkJfNF9CQU5LUwkJKCAgMSA8PCAgNCkKKyNkZWZpbmUgU0RSQU1DX0NSX0NBUyh4KQkJKCh4KSA8PCAgNSkKKyNkZWZpbmUgU0RSQU1DX0NSX0RCV18zMl9CSVRTCQkoICAwIDw8ICA3KQorI2RlZmluZSBTRFJBTUNfQ1JfREJXXzE2X0JJVFMJCSggIDEgPDwgIDcpCisjZGVmaW5lIFNEUkFNQ19DUl9UV1IoeCkJCSgoeCkgPDwgIDgpCisjZGVmaW5lIFNEUkFNQ19DUl9UUkMoeCkJCSgoeCkgPDwgMTIpCisjZGVmaW5lIFNEUkFNQ19DUl9UUlAoeCkJCSgoeCkgPDwgMTYpCisjZGVmaW5lIFNEUkFNQ19DUl9UUkNEKHgpCQkoKHgpIDw8IDIwKQorI2RlZmluZSBTRFJBTUNfQ1JfVFJBUyh4KQkJKCh4KSA8PCAyNCkKKyNkZWZpbmUgU0RSQU1DX0NSX1RYU1IoeCkJCSgoeCkgPDwgMjgpCisKKy8qIEhTUiAtIEhpZ2ggU3BlZWQgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgU0RSQU1DX0hTUl9EQQkJCSggIDEgPDwgIDApCisKKy8qIExQUiAtIExvdyBQb3dlciBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfTFBSX0xQQ0JfSU5ISUJJVAkJKCAgMCA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9MUENCX1NFTEZfUkZSCSggIDEgPDwgIDApCisjZGVmaW5lIFNEUkFNQ19MUFJfTFBDQl9QRE9XTgkJKCAgMiA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9MUENCX0RFRVBfUERPV04JKCAgMyA8PCAgMCkKKyNkZWZpbmUgU0RSQU1DX0xQUl9QQVNSKHgpCQkoKHgpIDw8ICA0KQorI2RlZmluZSBTRFJBTUNfTFBSX1RDU1IoeCkJCSgoeCkgPDwgIDgpCisjZGVmaW5lIFNEUkFNQ19MUFJfRFMoeCkJCSgoeCkgPDwgMTApCisjZGVmaW5lIFNEUkFNQ19MUFJfVElNRU9VVCh4KQkJKCh4KSA8PCAxMikKKworLyogSUVSL0lEUi9JTVIvSVNSIC0gSW50ZXJydXB0IEVuYWJsZS9EaXNhYmxlL01hc2svU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFNEUkFNQ19JU1JfUkVTCQkJKCAgMSA8PCAgMCkKKworLyogTURSIC0gTWVtb3J5IERldmljZSBSZWdpc3RlciAqLworI2RlZmluZSBTRFJBTUNfTURSX01EX1NEUkFNCQkoICAwIDw8ICAwKQorI2RlZmluZSBTRFJBTUNfTURSX01EX0xPV19QV1JfU0RSQU0JKCAgMSA8PCAgMCkKKworLyogUmVnaXN0ZXIgYWNjZXNzIG1hY3JvcyAqLworI2RlZmluZSBzZHJhbWNfcmVhZGwocmVnKSBcCisJX19yYXdfcmVhZGwoKHZvaWQgX19pb21lbSBfX2ZvcmNlICopU0RSQU1DX0JBU0UgKyBTRFJBTUNfIyNyZWcpCisjZGVmaW5lIHNkcmFtY193cml0ZWwocmVnLCB2YWx1ZSkgXAorCV9fcmF3X3dyaXRlbCh2YWx1ZSwgKHZvaWQgX19pb21lbSBfX2ZvcmNlICopU0RSQU1DX0JBU0UgKyBTRFJBTUNfIyNyZWcpCmRpZmYgLS1naXQgYS9hcmNoL2F2cjMyL21tL2luaXQuYyBiL2FyY2gvYXZyMzIvbW0vaW5pdC5jCmluZGV4IDBlNjRkZGMuLjNmOTBhODcgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbW0vaW5pdC5jCisrKyBiL2FyY2gvYXZyMzIvbW0vaW5pdC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L25vZGVtYXNrLmg+CkBAIC0yMywxMSArMjQsMTQgQEAKICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KIAorI2RlZmluZSBfX3BhZ2VfYWxpZ25lZAlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuZGF0YS5wYWdlX2FsaWduZWQiKSkpCisKIERFRklORV9QRVJfQ1BVKHN0cnVjdCBtbXVfZ2F0aGVyLCBtbXVfZ2F0aGVycyk7CiAKLXBnZF90IHN3YXBwZXJfcGdfZGlyW1BUUlNfUEVSX1BHRF07CitwZ2RfdCBzd2FwcGVyX3BnX2RpcltQVFJTX1BFUl9QR0RdIF9fcGFnZV9hbGlnbmVkOwogCiBzdHJ1Y3QgcGFnZSAqZW1wdHlfemVyb19wYWdlOworRVhQT1JUX1NZTUJPTChlbXB0eV96ZXJvX3BhZ2UpOwogCiAvKgogICogQ2FjaGUgb2YgTU1VIGNvbnRleHQgbGFzdCB1c2VkLgpAQCAtMTA2LDE5ICsxMTAsOSBAQAogCXplcm9fcGFnZSA9IGFsbG9jX2Jvb3RtZW1fbG93X3BhZ2VzX25vZGUoTk9ERV9EQVRBKDApLAogCQkJCQkJIFBBR0VfU0laRSk7CiAKLQl7Ci0JCXBnZF90ICpwZ19kaXI7Ci0JCWludCBpOwotCi0JCXBnX2RpciA9IHN3YXBwZXJfcGdfZGlyOwotCQlzeXNyZWdfd3JpdGUoUFRCUiwgKHVuc2lnbmVkIGxvbmcpcGdfZGlyKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgUFRSU19QRVJfUEdEOyBpKyspCi0JCQlwZ2RfdmFsKHBnX2RpcltpXSkgPSAwOwotCi0JCWVuYWJsZV9tbXUoKTsKLQkJcHJpbnRrICgiQ1BVOiBQYWdpbmcgZW5hYmxlZFxuIik7Ci0JfQorCXN5c3JlZ193cml0ZShQVEJSLCAodW5zaWduZWQgbG9uZylzd2FwcGVyX3BnX2Rpcik7CisJZW5hYmxlX21tdSgpOworCXByaW50ayAoIkNQVTogUGFnaW5nIGVuYWJsZWRcbiIpOwogCiAJZm9yX2VhY2hfb25saW5lX25vZGUobmlkKSB7CiAJCXBnX2RhdGFfdCAqcGdkYXQgPSBOT0RFX0RBVEEobmlkKTsKZGlmZiAtLWdpdCBhL2FyY2gvYXZyMzIvbW0vdGxiLmMgYi9hcmNoL2F2cjMyL21tL3RsYi5jCmluZGV4IGNkMTJlZGIuLjA2Njc3YmUgMTAwNjQ0Ci0tLSBhL2FyY2gvYXZyMzIvbW0vdGxiLmMKKysrIGIvYXJjaC9hdnIzMi9tbS90bGIuYwpAQCAtMTEsMjEgKzExLDIxIEBACiAKICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KIAotI2RlZmluZSBfVExCRUhJX0kJMHgxMDAKKy8qIFRPRE86IEdldCB0aGUgY29ycmVjdCBudW1iZXIgZnJvbSB0aGUgQ09ORklHMSBzeXN0ZW0gcmVnaXN0ZXIgKi8KKyNkZWZpbmUgTlJfVExCX0VOVFJJRVMgMzIKIAotdm9pZCBzaG93X2R0bGJfZW50cnkodW5zaWduZWQgaW50IGluZGV4KQorc3RhdGljIHZvaWQgc2hvd19kdGxiX2VudHJ5KHVuc2lnbmVkIGludCBpbmRleCkKIHsKLQl1bnNpZ25lZCBpbnQgdGxiZWhpLCB0bGJlaGlfc2F2ZSwgdGxiZWxvLCBtbXVjciwgbW11Y3Jfc2F2ZTsKKwl1MzIgdGxiZWhpLCB0bGJlaGlfc2F2ZSwgdGxiZWxvLCBtbXVjciwgbW11Y3Jfc2F2ZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCW1tdWNyX3NhdmUgPSBzeXNyZWdfcmVhZChNTVVDUik7CiAJdGxiZWhpX3NhdmUgPSBzeXNyZWdfcmVhZChUTEJFSEkpOwotCW1tdWNyID0gbW11Y3Jfc2F2ZSAmIDB4MTM7Ci0JbW11Y3IgfD0gaW5kZXggPDwgMTQ7CisJbW11Y3IgPSBTWVNSRUdfQkZJTlMoRFJQLCBpbmRleCwgbW11Y3Jfc2F2ZSk7CiAJc3lzcmVnX3dyaXRlKE1NVUNSLCBtbXVjcik7CiAKLQlhc20gdm9sYXRpbGUoInRsYnIiIDogOiA6ICJtZW1vcnkiKTsKKwlfX2J1aWx0aW5fdGxicigpOwogCWNwdV9zeW5jX3BpcGVsaW5lKCk7CiAKIAl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOwpAQCAtMzMsMTUgKzMzLDE3IEBACiAKIAlwcmludGsoIiUydTogJWMgJWMgJTAyeCAgICUwNXggJTA1eCAlbyAgJW8gICVjICVjICVjICVjXG4iLAogCSAgICAgICBpbmRleCwKLQkgICAgICAgKHRsYmVoaSAmIDB4MjAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgxMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlaGkgJiAweGZmKSwKLQkgICAgICAgKHRsYmVoaSA+PiAxMiksICh0bGJlbG8gPj4gMTIpLAotCSAgICAgICAodGxiZWxvID4+IDQpICYgNywgKHRsYmVsbyA+PiAyKSAmIDMsCi0JICAgICAgICh0bGJlbG8gJiAweDIwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDgwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwMDEpPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDAwMik/JzEnOicwJyk7CisJICAgICAgIFNZU1JFR19CRkVYVChUTEJFSElfViwgdGxiZWhpKSA/ICcxJyA6ICcwJywKKwkgICAgICAgU1lTUkVHX0JGRVhUKEcsIHRsYmVsbykgPyAnMScgOiAnMCcsCisJICAgICAgIFNZU1JFR19CRkVYVChBU0lELCB0bGJlaGkpLAorCSAgICAgICBTWVNSRUdfQkZFWFQoVlBOLCB0bGJlaGkpID4+IDIsCisJICAgICAgIFNZU1JFR19CRkVYVChQRk4sIHRsYmVsbykgPj4gMiwKKwkgICAgICAgU1lTUkVHX0JGRVhUKEFQLCB0bGJlbG8pLAorCSAgICAgICBTWVNSRUdfQkZFWFQoU1osIHRsYmVsbyksCisJICAgICAgIFNZU1JFR19CRkVYVChUTEJFTE9fQywgdGxiZWxvKSA/ICdDJyA6ICcgJywKKwkgICAgICAgU1lTUkVHX0JGRVhUKEIsIHRsYmVsbykgPyAnQicgOiAnICcsCisJICAgICAgIFNZU1JFR19CRkVYVChXLCB0bGJlbG8pID8gJ1cnIDogJyAnLAorCSAgICAgICBTWVNSRUdfQkZFWFQoVExCRUxPX0QsIHRsYmVsbykgPyAnRCcgOiAnICcpOwogCiAJc3lzcmVnX3dyaXRlKE1NVUNSLCBtbXVjcl9zYXZlKTsKIAlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGlfc2F2ZSk7CkBAIC01NCwyOSArNTYsMzMgQEAKIAl1bnNpZ25lZCBpbnQgaTsKIAogCXByaW50aygiSUQgIFYgRyBBU0lEIFZQTiAgIFBGTiAgIEFQIFNaIEMgQiBXIERcbiIpOwotCWZvciAoaSA9IDA7IGkgPCAzMjsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBOUl9UTEJfRU5UUklFUzsgaSsrKQogCQlzaG93X2R0bGJfZW50cnkoaSk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxhc3RfbW11Y3I7Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfcmVwbGFjZW1lbnRfcG9pbnRlcih1bnNpZ25lZCBzaGlmdCkKK3N0YXRpYyB2b2lkIHVwZGF0ZV9kdGxiKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgcHRlX3QgcHRlKQogewotCXVuc2lnbmVkIGxvbmcgbW11Y3IsIG1tdWNyX3NhdmU7CisJdTMyIHRsYmVoaTsKKwl1MzIgbW11Y3I7CiAKLQltbXVjciA9IG1tdWNyX3NhdmUgPSBzeXNyZWdfcmVhZChNTVVDUik7CisJLyoKKwkgKiBXZSdyZSBub3QgY2hhbmdpbmcgdGhlIEFTSUQgaGVyZSwgc28gbm8gbmVlZCB0byBmbHVzaCB0aGUKKwkgKiBwaXBlbGluZS4KKwkgKi8KKwl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOworCXRsYmVoaSA9IFNZU1JFR19CRihBU0lELCBTWVNSRUdfQkZFWFQoQVNJRCwgdGxiZWhpKSk7CisJdGxiZWhpIHw9IGFkZHJlc3MgJiBNTVVfVlBOX01BU0s7CisJdGxiZWhpIHw9IFNZU1JFR19CSVQoVExCRUhJX1YpOworCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaSk7CiAKIAkvKiBEb2VzIHRoaXMgbWFwcGluZyBhbHJlYWR5IGV4aXN0PyAqLwotCV9fYXNtX18gX192b2xhdGlsZV9fKAotCQkiCXRsYnNcbiIKLQkJIgltZnNyICUwLCAlMSIKLQkJOiAiPXIiKG1tdWNyKQotCQk6ICJpIihTWVNSRUdfTU1VQ1IpKTsKKwlfX2J1aWx0aW5fdGxicygpOworCW1tdWNyID0gc3lzcmVnX3JlYWQoTU1VQ1IpOwogCiAJaWYgKG1tdWNyICYgU1lTUkVHX0JJVChNTVVDUl9OKSkgewogCQkvKiBOb3QgZm91bmQgLS0gcGljayBhIG5vdC1yZWNlbnRseS1hY2Nlc3NlZCBlbnRyeSAqLwotCQl1bnNpZ25lZCBsb25nIHJwOwotCQl1bnNpZ25lZCBsb25nIHRsYmFyID0gc3lzcmVnX3JlYWQoVExCQVJMTyk7CisJCXVuc2lnbmVkIGludCBycDsKKwkJdTMyIHRsYmFyID0gc3lzcmVnX3JlYWQoVExCQVJMTyk7CiAKIAkJcnAgPSAzMiAtIGZscyh0bGJhcik7CiAJCWlmIChycCA9PSAzMikgewpAQCAtODQsMzAgKzkwLDE0IEBACiAJCQlzeXNyZWdfd3JpdGUoVExCQVJMTywgLTFMKTsKIAkJfQogCi0JCW1tdWNyICY9IDB4MTM7Ci0JCW1tdWNyIHw9IChycCA8PCBzaGlmdCk7Ci0KKwkJbW11Y3IgPSBTWVNSRUdfQkZJTlMoRFJQLCBycCwgbW11Y3IpOwogCQlzeXNyZWdfd3JpdGUoTU1VQ1IsIG1tdWNyKTsKIAl9CiAKLQlsYXN0X21tdWNyID0gbW11Y3I7Ci19Ci0KLXN0YXRpYyB2b2lkIHVwZGF0ZV9kdGxiKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgcHRlX3QgcHRlLCB1bnNpZ25lZCBsb25nIGFzaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB2cG47Ci0KLQl2cG4gPSAoYWRkcmVzcyAmIE1NVV9WUE5fTUFTSykgfCBfVExCRUhJX1ZBTElEIHwgYXNpZDsKLQlzeXNyZWdfd3JpdGUoVExCRUhJLCB2cG4pOwotCWNwdV9zeW5jX3BpcGVsaW5lKCk7Ci0KLQlzZXRfcmVwbGFjZW1lbnRfcG9pbnRlcigxNCk7Ci0KIAlzeXNyZWdfd3JpdGUoVExCRUxPLCBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9GTEFHU19IQVJEV0FSRV9NQVNLKTsKIAogCS8qIExldCdzIGdvICovCi0JYXNtIHZvbGF0aWxlKCJub3Bcblx0dGxidyIgOiA6IDogIm1lbW9yeSIpOwotCWNwdV9zeW5jX3BpcGVsaW5lKCk7CisJX19idWlsdGluX3RsYncoKTsKIH0KIAogdm9pZCB1cGRhdGVfbW11X2NhY2hlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLApAQCAtMTIwLDM5ICsxMTAsNDAgQEAKIAkJcmV0dXJuOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXVwZGF0ZV9kdGxiKGFkZHJlc3MsIHB0ZSwgZ2V0X2FzaWQoKSk7CisJdXBkYXRlX2R0bGIoYWRkcmVzcywgcHRlKTsKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKLXZvaWQgX19mbHVzaF90bGJfcGFnZSh1bnNpZ25lZCBsb25nIGFzaWQsIHVuc2lnbmVkIGxvbmcgcGFnZSkKK3N0YXRpYyB2b2lkIF9fZmx1c2hfdGxiX3BhZ2UodW5zaWduZWQgbG9uZyBhc2lkLCB1bnNpZ25lZCBsb25nIHBhZ2UpCiB7Ci0JdW5zaWduZWQgbG9uZyBtbXVjciwgdGxiZWhpOworCXUzMiBtbXVjciwgdGxiZWhpOwogCi0JcGFnZSB8PSBhc2lkOwotCXN5c3JlZ193cml0ZShUTEJFSEksIHBhZ2UpOwotCWNwdV9zeW5jX3BpcGVsaW5lKCk7Ci0JYXNtIHZvbGF0aWxlKCJ0bGJzIik7CisJLyoKKwkgKiBDYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIG1hc2tpbmcgb3V0IG5vbi1QRk4gYml0cyBpbiBwYWdlCisJICogYW5kIGNoYW5naW5nIHRoZSBjdXJyZW50IEFTSUQgaWYgbmVjZXNzYXJ5LiBUaGlzIG1lYW5zIHRoYXQKKwkgKiB3ZSBkb24ndCBuZWVkIHRvIGZsdXNoIHRoZSBwaXBlbGluZSBhZnRlciB3cml0aW5nIFRMQkVISS4KKwkgKi8KKwl0bGJlaGkgPSBwYWdlIHwgYXNpZDsKKwlzeXNyZWdfd3JpdGUoVExCRUhJLCB0bGJlaGkpOworCisJX19idWlsdGluX3RsYnMoKTsKIAltbXVjciA9IHN5c3JlZ19yZWFkKE1NVUNSKTsKIAogCWlmICghKG1tdWNyICYgU1lTUkVHX0JJVChNTVVDUl9OKSkpIHsKLQkJdW5zaWduZWQgbG9uZyB0bGJhcmxvOwotCQl1bnNpZ25lZCBsb25nIGVudHJ5OworCQl1bnNpZ25lZCBpbnQgZW50cnk7CisJCXUzMiB0bGJhcmxvOwogCiAJCS8qIENsZWFyIHRoZSAidmFsaWQiIGJpdCAqLwotCQl0bGJlaGkgPSBzeXNyZWdfcmVhZChUTEJFSEkpOwotCQl0bGJlaGkgJj0gfl9UTEJFSElfVkFMSUQ7CiAJCXN5c3JlZ193cml0ZShUTEJFSEksIHRsYmVoaSk7Ci0JCWNwdV9zeW5jX3BpcGVsaW5lKCk7CiAKIAkJLyogbWFyayB0aGUgZW50cnkgYXMgIm5vdCBhY2Nlc3NlZCIgKi8KLQkJZW50cnkgPSAobW11Y3IgPj4gMTQpICYgMHgzZjsKKwkJZW50cnkgPSBTWVNSRUdfQkZFWFQoRFJQLCBtbXVjcik7CiAJCXRsYmFybG8gPSBzeXNyZWdfcmVhZChUTEJBUkxPKTsKLQkJdGxiYXJsbyB8PSAoMHg4MDAwMDAwMCA+PiBlbnRyeSk7CisJCXRsYmFybG8gfD0gKDB4ODAwMDAwMDBVTCA+PiBlbnRyeSk7CiAJCXN5c3JlZ193cml0ZShUTEJBUkxPLCB0bGJhcmxvKTsKIAogCQkvKiB1cGRhdGUgdGhlIGVudHJ5IHdpdGggdmFsaWQgYml0IGNsZWFyICovCi0JCWFzbSB2b2xhdGlsZSgidGxidyIpOwotCQljcHVfc3luY19waXBlbGluZSgpOworCQlfX2J1aWx0aW5fdGxidygpOwogCX0KIH0KIApAQCAtMTkwLDE3ICsxODEsMjIgQEAKIAogCQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJCXNpemUgPSAoZW5kIC0gc3RhcnQgKyAoUEFHRV9TSVpFIC0gMSkpID4+IFBBR0VfU0hJRlQ7CisKIAkJaWYgKHNpemUgPiAoTU1VX0RUTEJfRU5UUklFUyAvIDQpKSB7IC8qIFRvbyBtYW55IGVudHJpZXMgdG8gZmx1c2ggKi8KIAkJCW1tLT5jb250ZXh0ID0gTk9fQ09OVEVYVDsKIAkJCWlmIChtbSA9PSBjdXJyZW50LT5tbSkKIAkJCQlhY3RpdmF0ZV9jb250ZXh0KG1tKTsKIAkJfSBlbHNlIHsKLQkJCXVuc2lnbmVkIGxvbmcgYXNpZCA9IG1tLT5jb250ZXh0ICYgTU1VX0NPTlRFWFRfQVNJRF9NQVNLOwotCQkJdW5zaWduZWQgbG9uZyBzYXZlZF9hc2lkID0gTU1VX05PX0FTSUQ7CisJCQl1bnNpZ25lZCBsb25nIGFzaWQ7CisJCQl1bnNpZ25lZCBsb25nIHNhdmVkX2FzaWQ7CisKKwkJCWFzaWQgPSBtbS0+Y29udGV4dCAmIE1NVV9DT05URVhUX0FTSURfTUFTSzsKKwkJCXNhdmVkX2FzaWQgPSBNTVVfTk9fQVNJRDsKIAogCQkJc3RhcnQgJj0gUEFHRV9NQVNLOwogCQkJZW5kICs9IChQQUdFX1NJWkUgLSAxKTsKIAkJCWVuZCAmPSBQQUdFX01BU0s7CisKIAkJCWlmIChtbSAhPSBjdXJyZW50LT5tbSkgewogCQkJCXNhdmVkX2FzaWQgPSBnZXRfYXNpZCgpOwogCQkJCXNldF9hc2lkKGFzaWQpOwpAQCAtMjE4LDMzICsyMTQsMzQgQEAKIH0KIAogLyoKLSAqIFRPRE86IElmIHRoaXMgaXMgb25seSBjYWxsZWQgZm9yIGFkZHJlc3NlcyA+IFRBU0tfU0laRSwgd2UgY2FuIHByb2JhYmx5Ci0gKiBza2lwIHRoZSBBU0lEIHN0dWZmIGFuZCBqdXN0IHVzZSB0aGUgR2xvYmFsIGJpdC4uLgorICogVGhpcyBmdW5jdGlvbiBkZXBlbmRzIG9uIHRoZSBwYWdlcyB0byBiZSBmbHVzaGVkIGhhdmluZyB0aGUgRworICogKGdsb2JhbCkgYml0IHNldCBpbiB0aGVpciBwdGUuIFRoaXMgaXMgdHJ1ZSBmb3IgYWxsCisgKiBQQUdFX0tFUk5FTChfUk8pIHBhZ2VzLgogICovCiB2b2lkIGZsdXNoX3RsYl9rZXJuZWxfcmFuZ2UodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgc2l6ZTsKIAotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAlzaXplID0gKGVuZCAtIHN0YXJ0ICsgKFBBR0VfU0laRSAtIDEpKSA+PiBQQUdFX1NISUZUOwogCWlmIChzaXplID4gKE1NVV9EVExCX0VOVFJJRVMgLyA0KSkgeyAvKiBUb28gbWFueSBlbnRyaWVzIHRvIGZsdXNoICovCiAJCWZsdXNoX3RsYl9hbGwoKTsKIAl9IGVsc2UgewotCQl1bnNpZ25lZCBsb25nIGFzaWQgPSBpbml0X21tLmNvbnRleHQgJiBNTVVfQ09OVEVYVF9BU0lEX01BU0s7Ci0JCXVuc2lnbmVkIGxvbmcgc2F2ZWRfYXNpZCA9IGdldF9hc2lkKCk7CisJCXVuc2lnbmVkIGxvbmcgYXNpZDsKKworCQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJCWFzaWQgPSBnZXRfYXNpZCgpOwogCiAJCXN0YXJ0ICY9IFBBR0VfTUFTSzsKIAkJZW5kICs9IChQQUdFX1NJWkUgLSAxKTsKIAkJZW5kICY9IFBBR0VfTUFTSzsKLQkJc2V0X2FzaWQoYXNpZCk7CisKIAkJd2hpbGUgKHN0YXJ0IDwgZW5kKSB7CiAJCQlfX2ZsdXNoX3RsYl9wYWdlKGFzaWQsIHN0YXJ0KTsKIAkJCXN0YXJ0ICs9IFBBR0VfU0laRTsKIAkJfQotCQlzZXRfYXNpZChzYXZlZF9hc2lkKTsKKwkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCX0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKIHZvaWQgZmx1c2hfdGxiX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQpAQCAtMjgwLDcgKzI3Nyw3IEBACiB7CiAJc3RhdGljIHVuc2lnbmVkIGxvbmcgdGxiX2luZGV4OwogCi0JaWYgKCpwb3MgPj0gMzIpCisJaWYgKCpwb3MgPj0gTlJfVExCX0VOVFJJRVMpCiAJCXJldHVybiBOVUxMOwogCiAJdGxiX2luZGV4ID0gMDsKQEAgLTI5MSw3ICsyODgsNyBAQAogewogCXVuc2lnbmVkIGxvbmcgKmluZGV4ID0gdjsKIAotCWlmICgqaW5kZXggPj0gMzEpCisJaWYgKCppbmRleCA+PSBOUl9UTEJfRU5UUklFUyAtIDEpCiAJCXJldHVybiBOVUxMOwogCiAJKysqcG9zOwpAQCAtMzEzLDE2ICszMTAsMTYgQEAKIAlpZiAoKmluZGV4ID09IDApCiAJCXNlcV9wdXRzKHRsYiwgIklEICBWIEcgQVNJRCBWUE4gICBQRk4gICBBUCBTWiBDIEIgVyBEXG4iKTsKIAotCUJVR19PTigqaW5kZXggPj0gMzIpOworCUJVR19PTigqaW5kZXggPj0gTlJfVExCX0VOVFJJRVMpOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCW1tdWNyX3NhdmUgPSBzeXNyZWdfcmVhZChNTVVDUik7CiAJdGxiZWhpX3NhdmUgPSBzeXNyZWdfcmVhZChUTEJFSEkpOwotCW1tdWNyID0gbW11Y3Jfc2F2ZSAmIDB4MTM7Ci0JbW11Y3IgfD0gKmluZGV4IDw8IDE0OworCW1tdWNyID0gU1lTUkVHX0JGSU5TKERSUCwgKmluZGV4LCBtbXVjcl9zYXZlKTsKIAlzeXNyZWdfd3JpdGUoTU1VQ1IsIG1tdWNyKTsKIAotCWFzbSB2b2xhdGlsZSgidGxiciIgOiA6IDogIm1lbW9yeSIpOworCS8qIFRMQlIgbWlnaHQgY2hhbmdlIHRoZSBBU0lEICovCisJX19idWlsdGluX3RsYnIoKTsKIAljcHVfc3luY19waXBlbGluZSgpOwogCiAJdGxiZWhpID0gc3lzcmVnX3JlYWQoVExCRUhJKTsKQEAgLTMzNCwxNiArMzMxLDE4IEBACiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCiAJc2VxX3ByaW50Zih0bGIsICIlMmx1OiAlYyAlYyAlMDJ4ICAgJTA1eCAlMDV4ICVvICAlbyAgJWMgJWMgJWMgJWNcbiIsCi0JICAgICAgICppbmRleCwKLQkgICAgICAgKHRsYmVoaSAmIDB4MjAwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgxMDApPycxJzonMCcsCi0JICAgICAgICh0bGJlaGkgJiAweGZmKSwKLQkgICAgICAgKHRsYmVoaSA+PiAxMiksICh0bGJlbG8gPj4gMTIpLAotCSAgICAgICAodGxiZWxvID4+IDQpICYgNywgKHRsYmVsbyA+PiAyKSAmIDMsCi0JICAgICAgICh0bGJlbG8gJiAweDIwMCk/JzEnOicwJywKLQkgICAgICAgKHRsYmVsbyAmIDB4MDgwKT8nMSc6JzAnLAotCSAgICAgICAodGxiZWxvICYgMHgwMDEpPycxJzonMCcsCi0JICAgICAgICh0bGJlbG8gJiAweDAwMik/JzEnOicwJyk7CisJCSAgICppbmRleCwKKwkJICAgU1lTUkVHX0JGRVhUKFRMQkVISV9WLCB0bGJlaGkpID8gJzEnIDogJzAnLAorCQkgICBTWVNSRUdfQkZFWFQoRywgdGxiZWxvKSA/ICcxJyA6ICcwJywKKwkJICAgU1lTUkVHX0JGRVhUKEFTSUQsIHRsYmVoaSksCisJCSAgIFNZU1JFR19CRkVYVChWUE4sIHRsYmVoaSkgPj4gMiwKKwkJICAgU1lTUkVHX0JGRVhUKFBGTiwgdGxiZWxvKSA+PiAyLAorCQkgICBTWVNSRUdfQkZFWFQoQVAsIHRsYmVsbyksCisJCSAgIFNZU1JFR19CRkVYVChTWiwgdGxiZWxvKSwKKwkJICAgU1lTUkVHX0JGRVhUKFRMQkVMT19DLCB0bGJlbG8pID8gJzEnIDogJzAnLAorCQkgICBTWVNSRUdfQkZFWFQoQiwgdGxiZWxvKSA/ICcxJyA6ICcwJywKKwkJICAgU1lTUkVHX0JGRVhUKFcsIHRsYmVsbykgPyAnMScgOiAnMCcsCisJCSAgIFNZU1JFR19CRkVYVChUTEJFTE9fRCwgdGxiZWxvKSA/ICcxJyA6ICcwJyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4va2VybmVsL2NwbGItbm9tcHUvY3BsYmluaXQuYyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2NwbGItbm9tcHUvY3BsYmluaXQuYwppbmRleCA5MTczMjViLi42YmUwYzUwIDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL2tlcm5lbC9jcGxiLW5vbXB1L2NwbGJpbml0LmMKKysrIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvY3BsYi1ub21wdS9jcGxiaW5pdC5jCkBAIC0yNTQsNyArMjU0LDggQEAKIH0KIAogLyogaGVscGVyIGZ1bmN0aW9uICovCi1zdGF0aWMgdm9pZCBfX2ZpbGxfY29kZV9jcGxidGFiKHN0cnVjdCBjcGxiX3RhYiAqdCwgaW50IGksIHUzMiBhX3N0YXJ0LCB1MzIgYV9lbmQpCitzdGF0aWMgdm9pZCBfX2luaXQKK19fZmlsbF9jb2RlX2NwbGJ0YWIoc3RydWN0IGNwbGJfdGFiICp0LCBpbnQgaSwgdTMyIGFfc3RhcnQsIHUzMiBhX2VuZCkKIHsKIAlpZiAoY3BsYl9kYXRhW2ldLnBzaXplKSB7CiAJCWZpbGxfY3BsYnRhYih0LApAQCAtMjkxLDcgKzI5Miw4IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBfX2ZpbGxfZGF0YV9jcGxidGFiKHN0cnVjdCBjcGxiX3RhYiAqdCwgaW50IGksIHUzMiBhX3N0YXJ0LCB1MzIgYV9lbmQpCitzdGF0aWMgdm9pZCBfX2luaXQKK19fZmlsbF9kYXRhX2NwbGJ0YWIoc3RydWN0IGNwbGJfdGFiICp0LCBpbnQgaSwgdTMyIGFfc3RhcnQsIHUzMiBhX2VuZCkKIHsKIAlpZiAoY3BsYl9kYXRhW2ldLnBzaXplKSB7CiAJCWZpbGxfY3BsYnRhYih0LApkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvZ3B0aW1lcnMuYyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2dwdGltZXJzLmMKaW5kZXggZTY5ODU1NC4uM2EzZTk2MSAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9rZXJuZWwvZ3B0aW1lcnMuYworKysgYi9hcmNoL2JsYWNrZmluL2tlcm5lbC9ncHRpbWVycy5jCkBAIC0xMCw4ICsxMCw4IEBACiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCi0jaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2JsYWNrZmluLmg+CiAjaW5jbHVkZSA8YXNtL2dwdGltZXJzLmg+CiAKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4va2VybmVsL2lycWNoaXAuYyBiL2FyY2gvYmxhY2tmaW4va2VybmVsL2lycWNoaXAuYwppbmRleCA3MzY0N2MxLi4wNzQwMmY1IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL2tlcm5lbC9pcnFjaGlwLmMKKysrIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvaXJxY2hpcC5jCkBAIC02MCw5ICs2MCwxNCBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBpcnFfZGVzYyBiYWRfaXJxX2Rlc2MgPSB7CisJLnN0YXR1cyA9IElSUV9ESVNBQkxFRCwKIAkuY2hpcCA9ICZiYWRfY2hpcCwKIAkuaGFuZGxlX2lycSA9IGhhbmRsZV9iYWRfaXJxLAogCS5kZXB0aCA9IDEsCisJLmxvY2sgPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChpcnFfZGVzYy0+bG9jayksCisjaWZkZWYgQ09ORklHX1NNUAorCS5hZmZpbml0eSA9IENQVV9NQVNLX0FMTAorI2VuZGlmCiB9OwogCiBpbnQgc2hvd19pbnRlcnJ1cHRzKHN0cnVjdCBzZXFfZmlsZSAqcCwgdm9pZCAqdikKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4va2VybmVsL3RyYXBzLmMgYi9hcmNoL2JsYWNrZmluL2tlcm5lbC90cmFwcy5jCmluZGV4IDdiZmJkOTUuLmYwNjFmNTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4va2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9ibGFja2Zpbi9rZXJuZWwvdHJhcHMuYwpAQCAtNjcsNyArNjcsNyBAQAogCUNTWU5DKCk7CiB9CiAKLXZvaWQgKnNhdmVkX2ljcGxiX2ZhdWx0X2FkZHIsICpzYXZlZF9kY3BsYl9mYXVsdF9hZGRyOwordW5zaWduZWQgbG9uZyBzYXZlZF9pY3BsYl9mYXVsdF9hZGRyLCBzYXZlZF9kY3BsYl9mYXVsdF9hZGRyOwogCiBpbnQga3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gNDg7CiAKQEAgLTM2Niw3ICszNjYsNyBAQAogCQlpbmZvLnNpX2NvZGUgPSBJTExfQ1BMQl9NVUxISVQ7CiAJCXNpZyA9IFNJR1NFR1Y7CiAjaWZkZWYgQ09ORklHX0RFQlVHX0hVTlRfRk9SX1pFUk8KLQkJaWYgKHNhdmVkX2RjcGxiX2ZhdWx0X2FkZHIgPCAodm9pZCAqKUZJWEVEX0NPREVfU1RBUlQpCisJCWlmIChzYXZlZF9kY3BsYl9mYXVsdF9hZGRyIDwgRklYRURfQ09ERV9TVEFSVCkKIAkJCXByaW50ayhLRVJOX05PVElDRSAiTlVMTCBwb2ludGVyIGFjY2Vzc1xuIik7CiAJCWVsc2UKICNlbmRpZgpAQCAtNDIxLDcgKzQyMSw3IEBACiAJCWluZm8uc2lfY29kZSA9IElMTF9DUExCX01VTEhJVDsKIAkJc2lnID0gU0lHU0VHVjsKICNpZmRlZiBDT05GSUdfREVCVUdfSFVOVF9GT1JfWkVSTwotCQlpZiAoc2F2ZWRfaWNwbGJfZmF1bHRfYWRkciA8ICh2b2lkICopRklYRURfQ09ERV9TVEFSVCkKKwkJaWYgKHNhdmVkX2ljcGxiX2ZhdWx0X2FkZHIgPCBGSVhFRF9DT0RFX1NUQVJUKQogCQkJcHJpbnRrKEtFUk5fTk9USUNFICJKdW1wIHRvIE5VTEwgYWRkcmVzc1xuIik7CiAJCWVsc2UKICNlbmRpZgpAQCAtOTM5LDggKzkzOSw2IEBACiAKIAlvb3BzX2luX3Byb2dyZXNzID0gMTsKIAotCXByaW50ayhLRVJOX0VNRVJHICJEQ1BMQl9GQVVMVF9BRERSPSVwXG4iLCBzYXZlZF9kY3BsYl9mYXVsdF9hZGRyKTsKLQlwcmludGsoS0VSTl9FTUVSRyAiSUNQTEJfRkFVTFRfQUREUj0lcFxuIiwgc2F2ZWRfaWNwbGJfZmF1bHRfYWRkcik7CiAJZHVtcF9iZmluX3Byb2Nlc3MoZnApOwogCWR1bXBfYmZpbl9tZW0oZnApOwogCXNob3dfcmVncyhmcCk7CmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL2xpYi9vdXRzLlMgYi9hcmNoL2JsYWNrZmluL2xpYi9vdXRzLlMKaW5kZXggM2RhZjk2MC4uNDY4NWI3YSAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9saWIvb3V0cy5TCisrKyBiL2FyY2gvYmxhY2tmaW4vbGliL291dHMuUwpAQCAtNzYsNCArNzYsNCBAQAogCQlSMCA9IFIwICsgUjE7CiAuTHdvcmQ4X2xvb3BfZTogV1tQMF0gPSBSMDsKIAlSVFM7Ci1FTkRQUk9DKF9vdXRzdykKK0VORFBST0MoX291dHN3XzgpCmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MjcvYm9hcmRzL2V6a2l0LmMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MjcvYm9hcmRzL2V6a2l0LmMKaW5kZXggYmI2ZDU4Yy4uNTk1OGVlYyAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTI3L2JvYXJkcy9lemtpdC5jCisrKyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUyNy9ib2FyZHMvZXpraXQuYwpAQCAtNDUxLDkgKzQ1MSw2IEBACiB9OwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotLyogYWxsIFNQSSBwZXJpcGhlcmFscyBpbmZvIGdvZXMgaGVyZSAqLwotCiAjaWYgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MCkgXAogCXx8IGRlZmluZWQoQ09ORklHX01URF9NMjVQODBfTU9EVUxFKQogc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGJmaW5fc3BpX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKQEAgLTY0NywxMCArNjQ0LDEwIEBACiAJewogCQkubW9kYWxpYXMJCT0gImFkNzg3NyIsCiAJCS5wbGF0Zm9ybV9kYXRhCQk9ICZiZmluX2FkNzg3N190c19pbmZvLAotCQkuaXJxCQkJPSBJUlFfUEY2LAorCQkuaXJxCQkJPSBJUlFfUEY4LAogCQkubWF4X3NwZWVkX2h6CT0gMTI1MDAwMDAsICAgICAvKiBtYXggc3BpIGNsb2NrIChTQ0spIHNwZWVkIGluIEhaICovCiAJCS5idXNfbnVtCT0gMCwKLQkJLmNoaXBfc2VsZWN0ICA9IDEsCisJCS5jaGlwX3NlbGVjdCAgPSAyLAogCQkuY29udHJvbGxlcl9kYXRhID0gJnNwaV9hZDc4NzdfY2hpcF9pbmZvLAogCX0sCiAjZW5kaWYKQEAgLTY3Niw2ICs2NzMsNyBAQAogI2VuZGlmCiB9OwogCisjaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKIC8qIFNQSSBjb250cm9sbGVyIGRhdGEgKi8KIHN0YXRpYyBzdHJ1Y3QgYmZpbjV4eF9zcGlfbWFzdGVyIGJmaW5fc3BpMF9pbmZvID0gewogCS5udW1fY2hpcHNlbGVjdCA9IDgsCkBAIC0xMDE4LDEwICsxMDE2LDcgQEAKICNlbmRpZgogCiAJcGxhdGZvcm1fYWRkX2RldmljZXMoc3RhbXBfZGV2aWNlcywgQVJSQVlfU0laRShzdGFtcF9kZXZpY2VzKSk7Ci0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLQlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLAotCQkJCUFSUkFZX1NJWkUoYmZpbl9zcGlfYm9hcmRfaW5mbykpOwotI2VuZGlmCisJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmZpbl9zcGlfYm9hcmRfaW5mbywgQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7CiAKICNpZiBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNKSB8fCBkZWZpbmVkKENPTkZJR19QQVRBX1BMQVRGT1JNX01PRFVMRSkKIAlpcnFfZGVzY1tQQVRBX0lOVF0uc3RhdHVzIHw9IElSUV9OT0FVVE9FTjsKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvZXpraXQuYyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvZXpraXQuYwppbmRleCA5ZDI4NDE1Li4wNzkzODljIDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzMvYm9hcmRzL2V6a2l0LmMKKysrIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTMzL2JvYXJkcy9lemtpdC5jCkBAIC04Nyw5ICs4Nyw2IEBACiB9OwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotLyogYWxsIFNQSSBwZXJpcGhlcmFscyBpbmZvIGdvZXMgaGVyZSAqLwotCiAjaWYgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MCkgfHwgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MF9NT0RVTEUpCiBzdGF0aWMgc3RydWN0IG10ZF9wYXJ0aXRpb24gYmZpbl9zcGlfZmxhc2hfcGFydGl0aW9uc1tdID0gewogCXsKQEAgLTE4OSw2ICsxODYsNyBAQAogI2VuZGlmCiB9OwogCisjaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKIC8qIFNQSSAoMCkgKi8KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYmZpbl9zcGkwX3Jlc291cmNlW10gPSB7CiAJWzBdID0gewpAQCAtNDI1LDkgKzQyMyw3IEBACiB7CiAJcHJpbnRrKEtFUk5fSU5GTyAiJXMoKTogcmVnaXN0ZXJpbmcgZGV2aWNlIHJlc291cmNlc1xuIiwgX19mdW5jX18pOwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGV6a2l0X2RldmljZXMsIEFSUkFZX1NJWkUoZXpraXRfZGV2aWNlcykpOwotI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmZpbl9zcGlfYm9hcmRfaW5mbywgQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTMzL2JvYXJkcy9zdGFtcC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTMzL2JvYXJkcy9zdGFtcC5jCmluZGV4IGVjMDViMjMuLjEzYWU0OTUgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzMy9ib2FyZHMvc3RhbXAuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzMvYm9hcmRzL3N0YW1wLmMKQEAgLTE2MSw5ICsxNjEsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KLQogI2lmIGRlZmluZWQoQ09ORklHX01URF9NMjVQODApIHx8IGRlZmluZWQoQ09ORklHX01URF9NMjVQODBfTU9EVUxFKQogc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGJmaW5fc3BpX2ZsYXNoX3BhcnRpdGlvbnNbXSA9IHsKIAl7CkBAIC0zMjAsNiArMzE3LDcgQEAKICNlbmRpZgogfTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAvKiBTUEkgKDApICovCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGJmaW5fc3BpMF9yZXNvdXJjZVtdID0gewogCVswXSA9IHsKQEAgLTYyNiwxMCArNjI0LDggQEAKIAlTU1lOQygpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sCi0JCQkJQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKKwogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzcvYm9hcmRzL01ha2VmaWxlIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTM3L2JvYXJkcy9NYWtlZmlsZQppbmRleCA4N2U0NTBmLi5jOTRmN2E1IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzcvYm9hcmRzL01ha2VmaWxlCisrKyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzNy9ib2FyZHMvTWFrZWZpbGUKQEAgLTMsNyArMyw3IEBACiAjCiAKIG9iai0kKENPTkZJR19HRU5FUklDX0JGNTM3X0JPQVJEKSAgICAgICs9IGdlbmVyaWNfYm9hcmQubwotb2JqLSQoQ09ORklHX0JGSU41MzdfU1RBTVApICAgICAgICAgICAgKz0gc3RhbXAubyBsZWQubworb2JqLSQoQ09ORklHX0JGSU41MzdfU1RBTVApICAgICAgICAgICAgKz0gc3RhbXAubwogb2JqLSQoQ09ORklHX0JGSU41MzdfQkxVRVRFQ0hOSVhfQ00pICAgKz0gY21fYmY1Mzcubwogb2JqLSQoQ09ORklHX1BOQVYxMCkgICAgICAgICAgICAgICAgICAgKz0gcG5hdjEwLm8KIG9iai0kKENPTkZJR19DQU1TSUdfTUlOT1RBVVIpICAgICAgICAgICs9IG1pbm90YXVyLm8KZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzNy9ib2FyZHMvbGVkLlMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzcvYm9hcmRzL2xlZC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTllYTQyLi4wMDAwMDAwCi0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzNy9ib2FyZHMvbGVkLlMKKysrIC9kZXYvbnVsbApAQCAtMSwxODMgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIExFRDEgLS0tLSBQRjYgICAgICAgIExFRDIgLS0tLSBQRjcgICAgICAgICAgICAgICAqCi0gKiBMRUQzIC0tLS0gUEY4ICAgICAgICBMRUQ0IC0tLS0gUEY5ICAgICAgICAgICAgICAgKgotICogTEVENSAtLS0tIFBGMTAgICAgICAgTEVENiAtLS0tIFBGMTEgICAgICAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9ibGFja2Zpbi5oPgotCi0vKiBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBzYXZlIHRoZSByZWdpc3RlcnMgdGhleSB1c2VzLgotICAgU28gdGhlcmUgaXMgbm8gbmVlZCB0byBzYXZlIGFueSByZWdpc3RlcnMgYmVmb3JlIGNhbGxpbmcgdGhlbS4gICovCi0KLQkudGV4dDsKLQotLyogSW5pdGlhbGl6ZSBMRURzLiAgKi8KLQotRU5UUlkoX2xlZF9pbml0KQotCUxJTksgMTI7Ci0JWy0tU1BdID0gUDA7Ci0JWy0tU1BdID0gUjA7Ci0JWy0tU1BdID0gUjE7Ci0JWy0tU1BdID0gUjI7Ci0JUjEgPSBQRjZ8UEY3fFBGOHxQRjl8UEYxMHxQRjExIChaKTsKLQlSMiA9IH5SMTsKLQotCVAwLkggPSBoaShQT1JURl9GRVIpOwotCVAwLkwgPSBsbyhQT1JURl9GRVIpOwotCVIwID0gV1tQMF0oWik7Ci0JU1NZTkM7Ci0JUjAgPSBSMCAmIFIyOwotCVdbUDBdID0gUjAuTDsKLQlTU1lOQzsKLQotCVAwLkggPSBoaShQT1JURklPX0RJUik7Ci0JUDAuTCA9IGxvKFBPUlRGSU9fRElSKTsKLQlSMCA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIwID0gUjAgfCBSMTsKLQlXW1AwXSA9IFIwLkw7Ci0JU1NZTkM7Ci0KLQlQMC5IID0gaGkoUE9SVEZJT19JTkVOKTsKLQlQMC5MID0gbG8oUE9SVEZJT19JTkVOKTsKLQlSMCA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIwID0gUjAgJiBSMjsKLQlXW1AwXSA9IFIwLkw7Ci0JU1NZTkM7Ci0KLQlSMiA9IFtTUCsrXTsKLQlSMSA9IFtTUCsrXTsKLQlSMCA9IFtTUCsrXTsKLQlQMCA9IFtTUCsrXTsKLQlVTkxJTks7Ci0JUlRTOwotCS5zaXplCV9sZWRfaW5pdCwgLi1fbGVkX2luaXQKLQotLyogU2V0IG9uZSBMRUQgb24uIExlYXZlIG90aGVyIExFRHMgdW5jaGFuZ2VkLgotICAgSXQgZXhwZWN0cyB0aGUgTEVEIG51bWJlciBwYXNzZWQgdGhyb3VnaCBSMC4gICovCi0KLUVOVFJZKF9sZWRfb24pCi0JTElOSyAxMjsKLQlbLS1TUF0gPSBQMDsKLQlbLS1TUF0gPSBSMTsKLQlDQUxMIF9sZWRfaW5pdDsKLQlSMSA9IDE7Ci0JUjAgKz0gNTsKLQlSMSA8PD0gUjA7Ci0JUDAuSCA9IGhpKFBPUlRGSU8pOwotCVAwLkwgPSBsbyhQT1JURklPKTsKLQlSMCA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIwID0gUjAgfCBSMTsKLQlXW1AwXSA9IFIwLkw7Ci0JU1NZTkM7Ci0JUjEgPSBbU1ArK107Ci0JUDAgPSBbU1ArK107Ci0JVU5MSU5LOwotCVJUUzsKLQkuc2l6ZQlfbGVkX29uLCAuLV9sZWRfb24KLQotLyogU2V0IG9uZSBMRUQgb2ZmLiBMZWF2ZSBvdGhlciBMRURzIHVuY2hhbmdlZC4gICovCi0KLUVOVFJZKF9sZWRfb2ZmKQotCUxJTksgMTI7Ci0JWy0tU1BdID0gUDA7Ci0JWy0tU1BdID0gUjE7Ci0JQ0FMTCBfbGVkX2luaXQ7Ci0JUjEgPSAxOwotCVIwICs9IDU7Ci0JUjEgPDw9IFIwOwotCVIxID0gflIxOwotCVAwLkggPSBoaShQT1JURklPKTsKLQlQMC5MID0gbG8oUE9SVEZJTyk7Ci0JUjAgPSBXW1AwXShaKTsKLQlTU1lOQzsKLQlSMCA9IFIwICYgUjE7Ci0JV1tQMF0gPSBSMC5MOwotCVNTWU5DOwotCVIxID0gW1NQKytdOwotCVAwID0gW1NQKytdOwotCVVOTElOSzsKLQlSVFM7Ci0JLnNpemUJX2xlZF9vZmYsIC4tX2xlZF9vZmYKLQotLyogVG9nZ2xlIG9uZSBMRUQuIExlYXZlIG90aGVyIExFRHMgdW5jaGFuZ2VkLiAgKi8KLQotRU5UUlkoX2xlZF90b2dnbGUpCi0JTElOSyAxMjsKLQlbLS1TUF0gPSBQMDsKLQlbLS1TUF0gPSBSMTsKLQlDQUxMIF9sZWRfaW5pdDsKLQlSMSA9IDE7Ci0JUjAgKz0gNTsKLQlSMSA8PD0gUjA7Ci0JUDAuSCA9IGhpKFBPUlRGSU8pOwotCVAwLkwgPSBsbyhQT1JURklPKTsKLQlSMCA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIwID0gUjAgXiBSMTsKLQlXW1AwXSA9IFIwLkw7Ci0JU1NZTkM7Ci0JUjEgPSBbU1ArK107Ci0JUDAgPSBbU1ArK107Ci0JVU5MSU5LOwotCVJUUzsKLQkuc2l6ZQlfbGVkX3RvZ2dsZSwgLi1fbGVkX3RvZ2dsZQotCi0vKiBEaXNwbGF5IHRoZSBudW1iZXIgdXNpbmcgTEVEcyBpbiBiaW5hcnkgZm9ybWF0LiAgKi8KLQotRU5UUlkoX2xlZF9kaXNwX251bSkKLQlMSU5LIDEyOwotCVstLVNQXSA9IFAwOwotCVstLVNQXSA9IFIxOwotCVstLVNQXSA9IFIyOwotCUNBTEwgX2xlZF9pbml0OwotCVIxID0gMHgzZihYKTsKLQlSMCA9IFIwICYgUjE7Ci0JUjIgPSA2KFgpOwotCVIwIDw8PSBSMjsKLQlSMSA8PD0gUjI7Ci0JUDAuSCA9IGhpKFBPUlRGSU8pOwotCVAwLkwgPSBsbyhQT1JURklPKTsKLQlSMiA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIxID0gflIxOwotCVIyID0gUjIgJiBSMTsKLQlSMiA9IFIyIHwgUjA7Ci0JV1tQMF0gPSBSMi5MOwotCVNTWU5DOwotCVIyID0gW1NQKytdOwotCVIxID0gW1NQKytdOwotCVAwID0gW1NQKytdOwotCVVOTElOSzsKLQlSVFM7Ci0JLnNpemUJX2xlZF9kaXNwX251bSwgLi1fbGVkX2Rpc3BfbnVtCi0KLS8qIFRvZ2dsZSB0aGUgbnVtYmVyIHVzaW5nIExFRHMgaW4gYmluYXJ5IGZvcm1hdC4gICovCi0KLUVOVFJZKF9sZWRfdG9nZ2xlX251bSkKLQlMSU5LIDEyOwotCVstLVNQXSA9IFAwOwotCVstLVNQXSA9IFIxOwotCVstLVNQXSA9IFIyOwotCUNBTEwgX2xlZF9pbml0OwotCVIxID0gMHgzZihYKTsKLQlSMCA9IFIwICYgUjE7Ci0JUjEgPSA2KFgpOwotCVIwIDw8PSBSMTsKLQlQMC5IID0gaGkoUE9SVEZJTyk7Ci0JUDAuTCA9IGxvKFBPUlRGSU8pOwotCVIxID0gV1tQMF0oWik7Ci0JU1NZTkM7Ci0JUjEgPSBSMSBeIFIwOwotCVdbUDBdID0gUjEuTDsKLQlTU1lOQzsKLQlSMiA9IFtTUCsrXTsKLQlSMSA9IFtTUCsrXTsKLQlQMCA9IFtTUCsrXTsKLQlVTkxJTks7Ci0JUlRTOwotCS5zaXplCV9sZWRfdG9nZ2xlX251bSwgLi1fbGVkX3RvZ2dsZV9udW0KLQpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTM3L2JvYXJkcy9zdGFtcC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTM3L2JvYXJkcy9zdGFtcC5jCmluZGV4IDlhNzU2ZDEuLjY3MWY5ZDYgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjUzNy9ib2FyZHMvc3RhbXAuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1MzcvYm9hcmRzL3N0YW1wLmMKQEAgLTQwMCw5ICs0MDAsNiBAQAogfTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKLS8qIGFsbCBTUEkgcGVyaXBoZXJhbHMgaW5mbyBnb2VzIGhlcmUgKi8KLQogI2lmIGRlZmluZWQoQ09ORklHX01URF9NMjVQODApIFwKIAl8fCBkZWZpbmVkKENPTkZJR19NVERfTTI1UDgwX01PRFVMRSkKIHN0YXRpYyBzdHJ1Y3QgbXRkX3BhcnRpdGlvbiBiZmluX3NwaV9mbGFzaF9wYXJ0aXRpb25zW10gPSB7CkBAIC02MjksNiArNjI2LDcgQEAKICNlbmRpZgogfTsKIAorI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCiAvKiBTUEkgY29udHJvbGxlciBkYXRhICovCiBzdGF0aWMgc3RydWN0IGJmaW41eHhfc3BpX21hc3RlciBiZmluX3NwaTBfaW5mbyA9IHsKIAkubnVtX2NoaXBzZWxlY3QgPSA4LApAQCAtOTM5LDEwICs5MzcsNyBAQAogI2VuZGlmCiAKIAlwbGF0Zm9ybV9hZGRfZGV2aWNlcyhzdGFtcF9kZXZpY2VzLCBBUlJBWV9TSVpFKHN0YW1wX2RldmljZXMpKTsKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sCi0JCQkJQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9NYWtlZmlsZSBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvTWFrZWZpbGUKaW5kZXggZWVkMTYxZC4uMzE5ZWY1NCAxMDA2NDQKLS0tIGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9NYWtlZmlsZQorKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL01ha2VmaWxlCkBAIC0yLDUgKzIsNSBAQAogIyBhcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL01ha2VmaWxlCiAjCiAKLW9iai0kKENPTkZJR19CRklONTQ4X0VaS0lUKSAgICAgICAgICAgICs9IGV6a2l0Lm8gbGVkLm8KK29iai0kKENPTkZJR19CRklONTQ4X0VaS0lUKSAgICAgICAgICAgICs9IGV6a2l0Lm8KIG9iai0kKENPTkZJR19CRklONTQ4X0JMVUVURUNITklYX0NNKSAgICs9IGNtX2JmNTQ4Lm8KZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvY21fYmY1NDguYyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvY21fYmY1NDguYwppbmRleCAzYjc0Zjk2Li40ZjRhZTg3IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL2NtX2JmNTQ4LmMKKysrIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9jbV9iZjU0OC5jCkBAIC02ODQsNyArNjg0LDcgQEAKIAogc3RhdGljIGludCBfX2luaXQgY21fYmY1NDhfaW5pdCh2b2lkKQogewotCXByaW50ayhLRVJOX0lORk8gIiVzKCk6IHJlZ2lzdGVyaW5nIGRldmljZSByZXNvdXJjZXNcbiIsIF9fRlVOQ1RJT05fXyk7CisJcHJpbnRrKEtFUk5fSU5GTyAiJXMoKTogcmVnaXN0ZXJpbmcgZGV2aWNlIHJlc291cmNlc1xuIiwgX19mdW5jX18pOwogCXBsYXRmb3JtX2FkZF9kZXZpY2VzKGNtX2JmNTQ4X2RldmljZXMsIEFSUkFZX1NJWkUoY21fYmY1NDhfZGV2aWNlcykpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvZXpraXQuYyBiL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvZXpraXQuYwppbmRleCBkMTY4MmJiLi5hZjdjMjExIDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL2V6a2l0LmMKKysrIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTQ4L2JvYXJkcy9lemtpdC5jCkBAIC00MTIsOCArNDEyLDYgQEAKIH07CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX1NQSV9CRklOKSB8fCBkZWZpbmVkKENPTkZJR19TUElfQkZJTl9NT0RVTEUpCi0vKiBhbGwgU1BJIHBlcmlwaGVyYWxzIGluZm8gZ29lcyBoZXJlICovCiAjaWYgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MCkgXAogCXx8IGRlZmluZWQoQ09ORklHX01URF9NMjVQODBfTU9EVUxFKQogLyogU1BJIGZsYXNoIGNoaXAgKG0yNXAxNikgKi8KQEAgLTQ4MSw3ICs0NzksNyBAQAogfTsKICNlbmRpZgogCi1zdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGJmNTR4X3NwaV9ib2FyZF9pbmZvW10gX19pbml0ZGF0YSA9IHsKK3N0YXRpYyBzdHJ1Y3Qgc3BpX2JvYXJkX2luZm8gYmZpbl9zcGlfYm9hcmRfaW5mb1tdIF9faW5pdGRhdGEgPSB7CiAjaWYgZGVmaW5lZChDT05GSUdfTVREX00yNVA4MCkgXAogCXx8IGRlZmluZWQoQ09ORklHX01URF9NMjVQODBfTU9EVUxFKQogCXsKQEAgLTUyNyw2ICs1MjUsNyBAQAogI2VuZGlmCiB9OwogCisjaWYgZGVmaW5lZChDT05GSUdfU1BJX0JGSU4pIHx8IGRlZmluZWQoQ09ORklHX1NQSV9CRklOX01PRFVMRSkKIC8qIFNQSSAoMCkgKi8KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYmZpbl9zcGkwX3Jlc291cmNlW10gPSB7CiAJWzBdID0gewpAQCAtODAwLDEwICs3OTksNyBAQAogCiAJcGxhdGZvcm1fYWRkX2RldmljZXMoZXpraXRfZGV2aWNlcywgQVJSQVlfU0laRShlemtpdF9kZXZpY2VzKSk7CiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmNTR4X3NwaV9ib2FyZF9pbmZvLAotCQkJQVJSQVlfU0laRShiZjU0eF9zcGlfYm9hcmRfaW5mbykpOwotI2VuZGlmCisJc3BpX3JlZ2lzdGVyX2JvYXJkX2luZm8oYmZpbl9zcGlfYm9hcmRfaW5mbywgQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvbGVkLlMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NDgvYm9hcmRzL2xlZC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDdkYWYzLi4wMDAwMDAwCi0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU0OC9ib2FyZHMvbGVkLlMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzIgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIExFRDEgLS0tLSBQRzYgICAgICAgIExFRDIgLS0tLSBQRzcgICAgICAgICAgICAgICAqCi0gKiBMRUQzIC0tLS0gUEc4ICAgICAgICBMRUQ0IC0tLS0gUEc5ICAgICAgICAgICAgICAgKgotICogTEVENSAtLS0tIFBHMTAgICAgICAgTEVENiAtLS0tIFBHMTEgICAgICAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9ibGFja2Zpbi5oPgotCi0vKiBBbGwgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBzYXZlIHRoZSByZWdpc3RlcnMgdGhleSB1c2VzLgotICAgU28gdGhlcmUgaXMgbm8gbmVlZCB0byBzYXZlIGFueSByZWdpc3RlcnMgYmVmb3JlIGNhbGxpbmcgdGhlbS4gICovCi0KLQkudGV4dDsKLQotLyogSW5pdGlhbGl6ZSBMRURzLiAgKi8KLQotRU5UUlkoX2xlZF9pbml0KQotCUxJTksgMDsKLQlbLS1TUF0gPSBQMDsKLQlbLS1TUF0gPSBSMDsKLQlbLS1TUF0gPSBSMTsKLQlbLS1TUF0gPSBSMjsKLQlSMSA9IChQRzZ8UEc3fFBHOHxQRzl8UEcxMHxQRzExKShaKTsKLQlSMiA9IH5SMTsKLQotCVAwLkggPSBoaShQT1JUR19GRVIpOwotCVAwLkwgPSBsbyhQT1JUR19GRVIpOwotCVIwID0gV1tQMF0oWik7Ci0JU1NZTkM7Ci0JUjAgPSBSMCAmIFIyOwotCVdbUDBdID0gUjAuTDsKLQlTU1lOQzsKLQotCVAwLkggPSBoaShQT1JUR19ESVJfU0VUKTsKLQlQMC5MID0gbG8oUE9SVEdfRElSX1NFVCk7Ci0JV1tQMF0gPSBSMS5MOwotCVNTWU5DOwotCi0JUDAuSCA9IGhpKFBPUlRHX0lORU4pOwotCVAwLkwgPSBsbyhQT1JUR19JTkVOKTsKLQlSMCA9IFdbUDBdKFopOwotCVNTWU5DOwotCVIwID0gUjAgJiBSMjsKLQlXW1AwXSA9IFIwLkw7Ci0JU1NZTkM7Ci0KLQlSMiA9IFtTUCsrXTsKLQlSMSA9IFtTUCsrXTsKLQlSMCA9IFtTUCsrXTsKLQlQMCA9IFtTUCsrXTsKLQlSVFM7Ci0JLnNpemUJX2xlZF9pbml0LCAuLV9sZWRfaW5pdAotCi0vKiBTZXQgb25lIExFRCBvbi4gTGVhdmUgb3RoZXIgTEVEcyB1bmNoYW5nZWQuCi0gICBJdCBleHBlY3RzIHRoZSBMRUQgbnVtYmVyIHBhc3NlZCB0aHJvdWdoIFIwLiAgKi8KLQotRU5UUlkoX2xlZF9vbikKLQlMSU5LIDA7Ci0JWy0tU1BdID0gUDA7Ci0JWy0tU1BdID0gUjE7Ci0JQ0FMTCBfbGVkX2luaXQ7Ci0JUjEgPSAxOwotCVIwICs9IDU7Ci0JUjEgPDw9IFIwOwotCVAwLkggPSBoaShQT1JUR19TRVQpOwotCVAwLkwgPSBsbyhQT1JUR19TRVQpOwotCVdbUDBdID0gUjEuTDsKLQlTU1lOQzsKLQlSMSA9IFtTUCsrXTsKLQlQMCA9IFtTUCsrXTsKLQlVTkxJTks7Ci0JUlRTOwotCS5zaXplCV9sZWRfb24sIC4tX2xlZF9vbgotCi0vKiBTZXQgb25lIExFRCBvZmYuIExlYXZlIG90aGVyIExFRHMgdW5jaGFuZ2VkLiAgKi8KLQotRU5UUlkoX2xlZF9vZmYpCi0JTElOSyAwOwotCVstLVNQXSA9IFAwOwotCVstLVNQXSA9IFIxOwotCUNBTEwgX2xlZF9pbml0OwotCVIxID0gMTsKLQlSMCArPSA1OwotCVIxIDw8PSBSMDsKLQlQMC5IID0gaGkoUE9SVEdfQ0xFQVIpOwotCVAwLkwgPSBsbyhQT1JUR19DTEVBUik7Ci0JV1tQMF0gPSBSMS5MOwotCVNTWU5DOwotCVIxID0gW1NQKytdOwotCVAwID0gW1NQKytdOwotCVVOTElOSzsKLQlSVFM7Ci0JLnNpemUJX2xlZF9vZmYsIC4tX2xlZF9vZmYKLQotLyogVG9nZ2xlIG9uZSBMRUQuIExlYXZlIG90aGVyIExFRHMgdW5jaGFuZ2VkLiAgKi8KLQotRU5UUlkoX2xlZF90b2dnbGUpCi0JTElOSyAwOwotCVstLVNQXSA9IFAwOwotCVstLVNQXSA9IFIxOwotCUNBTEwgX2xlZF9pbml0OwotCVIxID0gMTsKLQlSMCArPSA1OwotCVIxIDw8PSBSMDsKLQlQMC5IID0gaGkoUE9SVEcpOwotCVAwLkwgPSBsbyhQT1JURyk7Ci0JUjAgPSBXW1AwXShaKTsKLQlTU1lOQzsKLQlSMCA9IFIwIF4gUjE7Ci0JV1tQMF0gPSBSMC5MOwotCVNTWU5DOwotCVIxID0gW1NQKytdOwotCVAwID0gW1NQKytdOwotCVVOTElOSzsKLQlSVFM7Ci0JLnNpemUJX2xlZF90b2dnbGUsIC4tX2xlZF90b2dnbGUKLQotLyogRGlzcGxheSB0aGUgbnVtYmVyIHVzaW5nIExFRHMgaW4gYmluYXJ5IGZvcm1hdC4gICovCi0KLUVOVFJZKF9sZWRfZGlzcF9udW0pCi0JTElOSyAwOwotCVstLVNQXSA9IFAwOwotCVstLVNQXSA9IFIxOwotCVstLVNQXSA9IFIyOwotCUNBTEwgX2xlZF9pbml0OwotCVIxID0gMHgzZihYKTsKLQlSMCA9IFIwICYgUjE7Ci0JUjIgPSA2KFgpOwotCVIwIDw8PSBSMjsKLQlSMSA8PD0gUjI7Ci0JUDAuSCA9IGhpKFBPUlRHKTsKLQlQMC5MID0gbG8oUE9SVEcpOwotCVIyID0gV1tQMF0oWik7Ci0JU1NZTkM7Ci0JUjEgPSB+UjE7Ci0JUjIgPSBSMiAmIFIxOwotCVIyID0gUjIgfCBSMDsKLQlXW1AwXSA9IFIyLkw7Ci0JU1NZTkM7Ci0JUjIgPSBbU1ArK107Ci0JUjEgPSBbU1ArK107Ci0JUDAgPSBbU1ArK107Ci0JVU5MSU5LOwotCVJUUzsKLQkuc2l6ZQlfbGVkX2Rpc3BfbnVtLCAuLV9sZWRfZGlzcF9udW0KLQotLyogVG9nZ2xlIHRoZSBudW1iZXIgdXNpbmcgTEVEcyBpbiBiaW5hcnkgZm9ybWF0LiAgKi8KLQotRU5UUlkoX2xlZF90b2dnbGVfbnVtKQotCUxJTksgMDsKLQlbLS1TUF0gPSBQMDsKLQlbLS1TUF0gPSBSMTsKLQlbLS1TUF0gPSBSMjsKLQlDQUxMIF9sZWRfaW5pdDsKLQlSMSA9IDB4M2YoWCk7Ci0JUjAgPSBSMCAmIFIxOwotCVIxID0gNihYKTsKLQlSMCA8PD0gUjE7Ci0JUDAuSCA9IGhpKFBPUlRHKTsKLQlQMC5MID0gbG8oUE9SVEcpOwotCVIxID0gV1tQMF0oWik7Ci0JU1NZTkM7Ci0JUjEgPSBSMSBeIFIwOwotCVdbUDBdID0gUjEuTDsKLQlTU1lOQzsKLQlSMiA9IFtTUCsrXTsKLQlSMSA9IFtTUCsrXTsKLQlQMCA9IFtTUCsrXTsKLQlVTkxJTks7Ci0JUlRTOwotCS5zaXplCV9sZWRfdG9nZ2xlX251bSwgLi1fbGVkX3RvZ2dsZV9udW0KLQpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2JvYXJkcy9lemtpdC5jIGIvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2JvYXJkcy9lemtpdC5jCmluZGV4IDYxZDhmNzYuLmJjNmZlZGUgMTAwNjQ0Ci0tLSBhL2FyY2gvYmxhY2tmaW4vbWFjaC1iZjU2MS9ib2FyZHMvZXpraXQuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvYm9hcmRzL2V6a2l0LmMKQEAgLTI4MCw3ICsyODAsNiBAQAogfTsKICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1NQSV9CRklOCiAjaWYgZGVmaW5lZChDT05GSUdfU05EX0JMQUNLRklOX0FEMTgzNikgXAogCXx8IGRlZmluZWQoQ09ORklHX1NORF9CTEFDS0ZJTl9BRDE4MzZfTU9EVUxFKQogc3RhdGljIHN0cnVjdCBiZmluNXh4X3NwaV9jaGlwIGFkMTgzNl9zcGlfY2hpcF9pbmZvID0gewpAQCAtMjk1LDggKzI5NCw4IEBACiAJLmJpdHNfcGVyX3dvcmQgPSA4LAogfTsKICNlbmRpZgotI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQogLyogU1BJICgwKSAqLwogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBiZmluX3NwaTBfcmVzb3VyY2VbXSA9IHsKIAlbMF0gPSB7CkBAIC0zMjcsNiArMzI2LDcgQEAKIAkJLnBsYXRmb3JtX2RhdGEgPSAmYmZpbl9zcGkwX2luZm8sIC8qIFBhc3NlZCB0byBkcml2ZXIgKi8KIAl9LAogfTsKKyNlbmRpZgogCiBzdGF0aWMgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGJmaW5fc3BpX2JvYXJkX2luZm9bXSBfX2luaXRkYXRhID0gewogI2lmIGRlZmluZWQoQ09ORklHX1NORF9CTEFDS0ZJTl9BRDE4MzYpIFwKQEAgLTUzNywxMCArNTM3LDcgQEAKIAlTU1lOQygpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkKENPTkZJR19TUElfQkZJTikgfHwgZGVmaW5lZChDT05GSUdfU1BJX0JGSU5fTU9EVUxFKQotCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGJmaW5fc3BpX2JvYXJkX2luZm8sCi0JCQkJQVJSQVlfU0laRShiZmluX3NwaV9ib2FyZF9pbmZvKSk7Ci0jZW5kaWYKKwlzcGlfcmVnaXN0ZXJfYm9hcmRfaW5mbyhiZmluX3NwaV9ib2FyZF9pbmZvLCBBUlJBWV9TSVpFKGJmaW5fc3BpX2JvYXJkX2luZm8pKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk0pIHx8IGRlZmluZWQoQ09ORklHX1BBVEFfUExBVEZPUk1fTU9EVUxFKQogCWlycV9kZXNjW1BBVEFfSU5UXS5zdGF0dXMgfD0gSVJRX05PQVVUT0VOOwpkaWZmIC0tZ2l0IGEvYXJjaC9ibGFja2Zpbi9tYWNoLWJmNTYxL2NvcmViLmMgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYwppbmRleCAxYjQ0ZTllLi44NTk4MDk4IDEwMDY0NAotLS0gYS9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYworKysgYi9hcmNoL2JsYWNrZmluL21hY2gtYmY1NjEvY29yZWIuYwpAQCAtMTk0LDYgKzE5NCw3IEBACiAJcmV0dXJuIHJldDsKIH0KIAorLyogTm8gQktMIG5lZWRlZCBoZXJlICovCiBzdGF0aWMgaW50IGNvcmViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJc3Bpbl9sb2NrX2lycSgmY29yZWJfbG9jayk7CmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9lZXByb20uYyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCmluZGV4IGYxY2FjOWQuLjFmMmFlOTAgMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2VlcHJvbS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlICJpMmMuaCIKQEAgLTM3NSwxMCArMzc2LDkgQEAKIH0KIAogLyogT3BlbnMgdGhlIGRldmljZS4gKi8KLQogc3RhdGljIGludCBlZXByb21fb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogewotCisgIGN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAgIGlmKGltaW5vcihpbm9kZSkgIT0gRUVQUk9NX01JTk9SX05SKQogICAgICByZXR1cm4gLUVOWElPOwogICBpZihpbWFqb3IoaW5vZGUpICE9IEVFUFJPTV9NQUpPUl9OUikKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2dwaW8uYyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL2dwaW8uYwppbmRleCA2OGE5OThiLi44NjA0OGU2IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9ncGlvLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvZ3Bpby5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTMyMyw2ICszMjQsNyBAQAogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlsb2NrX2tlcm5lbCgpOwogCXByaXYtPm1pbm9yID0gcDsKIAogCS8qIGluaXRpYWxpemUgdGhlIGlvL2FsYXJtIHN0cnVjdCAqLwpAQCAtMzU3LDYgKzM1OSw3IEBACiAJYWxhcm1saXN0ID0gcHJpdjsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZncGlvX2xvY2ssIGZsYWdzKTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvaTJjLmMgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYwppbmRleCBkNmQyMjA2Li4yNzk3ZTY3IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9pMmMuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNTY2LDYgKzU2Nyw3IEBACiBzdGF0aWMgaW50CiBpMmNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9zeW5jX3NlcmlhbC5jIGIvYXJjaC9jcmlzL2FyY2gtdjEwL2RyaXZlcnMvc3luY19zZXJpYWwuYwppbmRleCAwNjk1NDZlLi45MWZlYTYyIDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MTAvZHJpdmVycy9zeW5jX3NlcmlhbC5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYxMC9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgpAQCAtNDQzLDE4ICs0NDQsMjEgQEAKIAlpbnQgZGV2ID0gTUlOT1IoaW5vZGUtPmlfcmRldik7CiAJc3RydWN0IHN5bmNfcG9ydCAqcG9ydDsKIAlpbnQgbW9kZTsKKwlpbnQgZXJyID0gLUVCVVNZOwogCisJbG9ja19rZXJuZWwoKTsKIAlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiT3BlbiBzeW5jIHNlcmlhbCBwb3J0ICVkXG4iLCBkZXYpKTsKIAogCWlmIChkZXYgPCAwIHx8IGRldiA+PSBOVU1CRVJfT0ZfUE9SVFMgfHwgIXBvcnRzW2Rldl0uZW5hYmxlZCkgewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiSW52YWxpZCBtaW5vciAlZFxuIiwgZGV2KSk7Ci0JCXJldHVybiAtRU5PREVWOworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAJcG9ydCA9ICZwb3J0c1tkZXZdOwogCS8qIEFsbG93IG9wZW4gdGhpcyBkZXZpY2UgdHdpY2UgKGFzc3VtaW5nIG9uZSByZWFkZXIgYW5kIG9uZSB3cml0ZXIpICovCiAJaWYgKHBvcnQtPmJ1c3kgPT0gMikgewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiRGV2aWNlIGlzIGJ1c3kuLiBcbiIpKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCWlmIChwb3J0LT5pbml0X2lycXMpIHsKIAkJaWYgKHBvcnQtPnVzZV9kbWEpIHsKQEAgLTQ2NSwxNCArNDY5LDE0IEBACiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBwb3J0IDEgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAocmVxdWVzdF9pcnEoMjUsIHJ4X2ludGVycnVwdCwgMCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMSBkbWEgcngiLAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlmcmVlX2lycSgyNCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAxIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXNfcmVxdWVzdF9kbWEoOCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMSBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00ODIsNyArNDg2LDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMSAiCiAJCQkJCQkiVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDksCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTQ5Myw3ICs0OTcsNyBAQAogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAxICIKIAkJCQkJCSJSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCQlSRVNFVF9ETUEoOCk7IFdBSVRfRE1BKDgpOwpAQCAtNTIwLDE0ICs1MjQsMTQgQEAKIAkJCQkJCSZwb3J0c1sxXSkpIHsKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycSgyMSwgcnhfaW50ZXJydXB0LCAwLAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAzIGRtYSByeCIsCiAJCQkJCQkmcG9ydHNbMV0pKSB7CiAJCQkJCWZyZWVfaXJxKDIwLCAmcG9ydHNbMV0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAzIElSUSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXNfcmVxdWVzdF9kbWEoNCwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMyBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC01MzcsNyArNTQxLDcgQEAKIAkJCQkJcHJpbnRrKEtFUk5fQ1JJVCAiQ2FuJ3QgYWxsb2MgIgogCQkJCQkJInN5bmMgc2VyaWFsIHBvcnQgMyAiCiAJCQkJCQkiVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzX3JlcXVlc3RfZG1hKDUsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDMgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTU0OCw3ICs1NTIsNyBAQAogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgcG9ydCAzICIKIAkJCQkJCSJSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCQlSRVNFVF9ETUEoNCk7IFdBSVRfRE1BKDQpOwpAQCAtNTgxLDcgKzU4NSw3IEBACiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jICIKIAkJCQkJCSJzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0gZWxzZSBpZiAocG9ydCA9PSAmcG9ydHNbMV0pIHsKIAkJCQlpZiAocmVxdWVzdF9pcnEoOCwKQEAgLTU5MSw3ICs1OTUsNyBAQAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvYyAiCiAJCQkJCQkic3luYyBzZXJpYWwgbWFudWFsIGlycSIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAJCQl9CiAJCQlwb3J0LT5pbml0X2lycXMgPSAwOwpAQCAtNjIwLDcgKzYyNCwxMSBAQAogCQkJKlJfSVJRX01BU0sxX1NFVCA9IDEgPDwgcG9ydC0+ZGF0YV9hdmFpbF9iaXQ7CiAJCURFQlVHKHByaW50ayhLRVJOX0RFQlVHICJzc2VyJWQgcmVjIHN0YXJ0ZWRcbiIsIGRldikpOwogCX0KLQlyZXR1cm4gMDsKKwlyZXQgPSAwOworCQorb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHN5bmNfc2VyaWFsX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9jcnlwdG9jb3AuYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCmluZGV4IDlmYjU4MjAuLjY3YzYxZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCisrKyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2NyeXB0b2NvcC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zdGRkZWYuaD4KIApAQCAtMjMwMiwxMSArMjMwMywxMSBAQAogCXJldHVybiAwOwogfQogCi0KIHN0YXRpYyBpbnQgY3J5cHRvY29wX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJaW50IHAgPSBpbWlub3IoaW5vZGUpOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlpZiAocCAhPSBDUllQVE9DT1BfTUlOT1IpIHJldHVybiAtRUlOVkFMOwogCiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL2kyYy5jIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKaW5kZXggYzJmYjdhNS4uMTc5ZTdiOCAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvaTJjLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2V0cmF4aTJjLmg+CiAKQEAgLTYzNiw2ICs2MzcsNyBAQAogc3RhdGljIGludAogaTJjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1hMy9ncGlvLmMgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYwppbmRleCBkZTEwN2RhLi5lZjk4NjA4IDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYworKysgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9tYWNoLWEzL2dwaW8uYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vZXRyYXhncGlvLmg+CiAjaW5jbHVkZSA8aHdyZWdzL3JlZ19tYXAuaD4KQEAgLTM5MCw2ICszOTEsOCBAQAogCiAJaWYgKCFwcml2KQogCQlyZXR1cm4gLUVOT01FTTsKKworCWxvY2tfa2VybmVsKCk7CiAJbWVtc2V0KHByaXYsIDAsIHNpemVvZigqcHJpdikpOwogCiAJcHJpdi0+bWlub3IgPSBwOwpAQCAtNDEyLDYgKzQxNSw3IEBACiAJCXNwaW5fdW5sb2NrX2lycSgmZ3Bpb19sb2NrKTsKIAl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL21hY2gtZnMvZ3Bpby5jIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKaW5kZXggNzg2M2ZkNC4uZmUxZmRlOCAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKKysrIGIvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvbWFjaC1mcy9ncGlvLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL2V0cmF4Z3Bpby5oPgogI2luY2x1ZGUgPGh3cmVncy9yZWdfbWFwLmg+CkBAIC00MjYsOSArNDI3LDEwIEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJcHJpdiA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBncGlvX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKLQogCWlmICghcHJpdikKIAkJcmV0dXJuIC1FTk9NRU07CisKKwlsb2NrX2tlcm5lbCgpOwogCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKIAogCXByaXYtPm1pbm9yID0gcDsKQEAgLTQ0OSw2ICs0NTEsNyBAQAogCWFsYXJtbGlzdCA9IHByaXY7CiAJc3Bpbl91bmxvY2tfaXJxKCZhbGFybV9sb2NrKTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvc3luY19zZXJpYWwuYyBiL2FyY2gvY3Jpcy9hcmNoLXYzMi9kcml2ZXJzL3N5bmNfc2VyaWFsLmMKaW5kZXggNDdjMzc3ZC4uZDJhMGZiZiAxMDA2NDQKLS0tIGEvYXJjaC9jcmlzL2FyY2gtdjMyL2RyaXZlcnMvc3luY19zZXJpYWwuYworKysgYi9hcmNoL2NyaXMvYXJjaC12MzIvZHJpdmVycy9zeW5jX3NlcmlhbC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC00MjksMjMgKzQzMCwyNiBAQAogc3RhdGljIGludCBzeW5jX3NlcmlhbF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCWludCBkZXYgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQgPSAtRUJVU1k7CiAJc3luY19wb3J0ICpwb3J0OwogCXJlZ19kbWFfcndfY2ZnIGNmZyA9IHsuZW4gPSByZWdrX2RtYV95ZXN9OwogCXJlZ19kbWFfcndfaW50cl9tYXNrIGludHJfbWFzayA9IHsuZGF0YSA9IHJlZ2tfZG1hX3llc307CiAKKwlsb2NrX2tlcm5lbCgpOwogCURFQlVHKHByaW50ayhLRVJOX0RFQlVHICJPcGVuIHN5bmMgc2VyaWFsIHBvcnQgJWRcbiIsIGRldikpOwogCiAJaWYgKGRldiA8IDAgfHwgZGV2ID49IE5CUl9QT1JUUyB8fCAhcG9ydHNbZGV2XS5lbmFibGVkKQogCXsKIAkJREVCVUcocHJpbnRrKEtFUk5fREVCVUcgIkludmFsaWQgbWlub3IgJWRcbiIsIGRldikpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCXBvcnQgPSAmcG9ydHNbZGV2XTsKIAkvKiBBbGxvdyBvcGVuIHRoaXMgZGV2aWNlIHR3aWNlIChhc3N1bWluZyBvbmUgcmVhZGVyIGFuZCBvbmUgd3JpdGVyKSAqLwogCWlmIChwb3J0LT5idXN5ID09IDIpCiAJewogCQlERUJVRyhwcmludGsoS0VSTl9ERUJVRyAiRGV2aWNlIGlzIGJ1c3kuLiBcbiIpKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCiAKQEAgLTQ1OSw3ICs0NjMsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAwIGRtYSB0ciIsCiAJCQkJCQkmcG9ydHNbMF0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMCBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycShETUFfSU5fSU5UUl9WRUNULAogCQkJCQkJcnhfaW50ZXJydXB0LAogCQkJCQkJMCwKQEAgLTQ2Nyw3ICs0NzEsNyBAQAogCQkJCQkJJnBvcnRzWzBdKSkgewogCQkJCQlmcmVlX2lycShETUFfT1VUX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDAgSVJRIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0gZWxzZSBpZiAoY3Jpc3YzMl9yZXF1ZXN0X2RtYShPVVRfRE1BX05CUiwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMCBkbWEgdHIiLAogCQkJCQkJRE1BX1ZFUkJPU0VfT05fRVJST1IsCkBAIC00NzYsNyArNDgwLDcgQEAKIAkJCQkJZnJlZV9pcnEoRE1BX09VVF9JTlRSX1ZFQ1QsICZwb3J0WzBdKTsKIAkJCQkJZnJlZV9pcnEoRE1BX0lOX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBwb3J0IDAgVFggRE1BIGNoYW5uZWwiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzdjMyX3JlcXVlc3RfZG1hKElOX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDAgZG1hIHJlYyIsCiAJCQkJCQlETUFfVkVSQk9TRV9PTl9FUlJPUiwKQEAgLTQ4Niw3ICs0OTAsNyBAQAogCQkJCQlmcmVlX2lycShETUFfT1VUX0lOVFJfVkVDVCwgJnBvcnRbMF0pOwogCQkJCQlmcmVlX2lycShETUFfSU5fSU5UUl9WRUNULCAmcG9ydFswXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMSBSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCX0KQEAgLTQ5OSw3ICs1MDMsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCAxIGRtYSB0ciIsCiAJCQkJCQkmcG9ydHNbMV0pKSB7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMSBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChyZXF1ZXN0X2lycShETUE3X0lOVFJfVkVDVCwKIAkJCQkJCSAgICAgICByeF9pbnRlcnJ1cHQsCiAJCQkJCQkgICAgICAgMCwKQEAgLTUwNyw3ICs1MTEsNyBAQAogCQkJCQkJICAgICAgICZwb3J0c1sxXSkpIHsKIAkJCQkJZnJlZV9pcnEoRE1BNl9JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBJUlEiKTsKLQkJCQkJcmV0dXJuIC1FQlVTWTsKKwkJCQkJZ290byBvdXQ7CiAJCQkJfSBlbHNlIGlmIChjcmlzdjMyX3JlcXVlc3RfZG1hKAogCQkJCQkJU1lOQ19TRVIxX1RYX0RNQV9OQlIsCiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIDEgZG1hIHRyIiwKQEAgLTUxNyw3ICs1MjEsNyBAQAogCQkJCQlmcmVlX2lycShETUE2X0lOVFJfVkVDVCwgJnBvcnRzWzFdKTsKIAkJCQkJZnJlZV9pcnEoRE1BN19JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBUWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9IGVsc2UgaWYgKGNyaXN2MzJfcmVxdWVzdF9kbWEoCiAJCQkJCQlTWU5DX1NFUjFfUlhfRE1BX05CUiwKIAkJCQkJCSJzeW5jaHJvbm91cyBzZXJpYWwgMyBkbWEgcmVjIiwKQEAgLTUyOCw3ICs1MzIsNyBAQAogCQkJCQlmcmVlX2lycShETUE2X0lOVFJfVkVDVCwgJnBvcnRzWzFdKTsKIAkJCQkJZnJlZV9pcnEoRE1BN19JTlRSX1ZFQ1QsICZwb3J0c1sxXSk7CiAJCQkJCXByaW50ayhLRVJOX0NSSVQgIkNhbid0IGFsbG9jYXRlIHN5bmMgc2VyaWFsIHBvcnQgMyBSWCBETUEgY2hhbm5lbCIpOwotCQkJCQlyZXR1cm4gLUVCVVNZOworCQkJCQlnb3RvIG91dDsKIAkJCQl9CiAjZW5kaWYKIAkJCX0KQEAgLTU1NCw3ICs1NTgsNyBAQAogCQkJCQkJInN5bmNocm9ub3VzIHNlcmlhbCBtYW51YWwgaXJxIiwKIAkJCQkJCSZwb3J0c1swXSkpIHsKIAkJCQkJcHJpbnRrKCJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0KICNpZmRlZiBDT05GSUdfRVRSQVhGUwpAQCAtNTY1LDcgKzU2OSw3IEBACiAJCQkJCQkic3luY2hyb25vdXMgc2VyaWFsIG1hbnVhbCBpcnEiLAogCQkJCQkJJnBvcnRzWzFdKSkgewogCQkJCQlwcmludGsoS0VSTl9DUklUICJDYW4ndCBhbGxvY2F0ZSBzeW5jIHNlcmlhbCBtYW51YWwgaXJxIik7Ci0JCQkJCXJldHVybiAtRUJVU1k7CisJCQkJCWdvdG8gb3V0OwogCQkJCX0KIAkJCX0KICNlbmRpZgpAQCAtNTc4LDcgKzU4MiwxMCBAQAogCX0gLyogcG9ydC0+aW5pdF9pcnFzICovCiAKIAlwb3J0LT5idXN5Kys7Ci0JcmV0dXJuIDA7CisJcmV0ID0gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBzeW5jX3NlcmlhbF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvYXJjaC9mcnYva2VybmVsL2Ntb2RlLlMgYi9hcmNoL2Zydi9rZXJuZWwvY21vZGUuUwppbmRleCA4MWJhMjhhLi41M2RlZWI1IDEwMDY0NAotLS0gYS9hcmNoL2Zydi9rZXJuZWwvY21vZGUuUworKysgYi9hcmNoL2Zydi9rZXJuZWwvY21vZGUuUwpAQCAtMSw3ICsxLDcgQEAKIC8qIGNtb2RlLlM6IGNsb2NrIG1vZGUgbWFuYWdlbWVudAogICoKICAqIENvcHlyaWdodCAoQykgMjAwNCBSZWQgSGF0LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKiBXcml0dGVuIGJ5IERhdmlkIFdvb2Rob3VzZSAoZHdtdzJAcmVkaGF0LmNvbSkKKyAqIFdyaXR0ZW4gYnkgRGF2aWQgV29vZGhvdXNlIChkd213MkBpbmZyYWRlYWQub3JnKQogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmRpZmYgLS1naXQgYS9hcmNoL2Zydi9rZXJuZWwvc2xlZXAuUyBiL2FyY2gvZnJ2L2tlcm5lbC9zbGVlcC5TCmluZGV4IGM5YjJkNTEuLmY2N2JmNzMgMTAwNjQ0Ci0tLSBhL2FyY2gvZnJ2L2tlcm5lbC9zbGVlcC5TCisrKyBiL2FyY2gvZnJ2L2tlcm5lbC9zbGVlcC5TCkBAIC0xLDcgKzEsNyBAQAogLyogc2xlZXAuUzogcG93ZXIgc2F2aW5nIG1vZGUgZW50cnkKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogV3JpdHRlbiBieSBEYXZpZCBXb29kaG91c2UgKGR3bXcyQHJlZGhhdC5jb20pCisgKiBXcml0dGVuIGJ5IERhdmlkIFdvb2Rob3VzZSAoZHdtdzJAaW5mcmFkZWFkLm9yZykKICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQpkaWZmIC0tZ2l0IGEvYXJjaC9mcnYvbWI5MzA5MC1tYjAwL3BjaS1kbWEtbm9tbXUuYyBiL2FyY2gvZnJ2L21iOTMwOTAtbWIwMC9wY2ktZG1hLW5vbW11LmMKaW5kZXggNDk4NTQ2Ni4uNjRlZTU4ZCAxMDA2NDQKLS0tIGEvYXJjaC9mcnYvbWI5MzA5MC1tYjAwL3BjaS1kbWEtbm9tbXUuYworKysgYi9hcmNoL2Zydi9tYjkzMDkwLW1iMDAvcGNpLWRtYS1ub21tdS5jCkBAIC0xLDcgKzEsNyBAQAogLyogcGNpLWRtYS1ub21tdS5jOiBEeW5hbWljIERNQSBtYXBwaW5nIHN1cHBvcnQgZm9yIHRoZSBGUlYKICAqCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQgUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICogV3JpdHRlbiBieSBEYXZpZCBXb29kaG91c2UgKGR3bXcyQHJlZGhhdC5jb20pCisgKiBXcml0dGVuIGJ5IERhdmlkIFdvb2Rob3VzZSAoZHdtdzJAaW5mcmFkZWFkLm9yZykKICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQpkaWZmIC0tZ2l0IGEvYXJjaC9mcnYvbW0vaW5pdC5jIGIvYXJjaC9mcnYvbW0vaW5pdC5jCmluZGV4IGI4NDFlY2YuLjlhZjc3NDAgMTAwNjQ0Ci0tLSBhL2FyY2gvZnJ2L21tL2luaXQuYworKysgYi9hcmNoL2Zydi9tbS9pbml0LmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgpAQCAtNTYsNyArNTcsOSBAQAogICovCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBlbXB0eV9iYWRfcGFnZV90YWJsZTsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGVtcHR5X2JhZF9wYWdlOworCiB1bnNpZ25lZCBsb25nIGVtcHR5X3plcm9fcGFnZTsKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9NYWtlZmlsZSBiL2FyY2gvaWE2NC9NYWtlZmlsZQppbmRleCA4OGYxYTU1Li5lNjdlZTNmIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvTWFrZWZpbGUKKysrIGIvYXJjaC9pYTY0L01ha2VmaWxlCkBAIC01Nyw2ICs1Nyw3IEBACiBjb3JlLSQoQ09ORklHX0lBNjRfSFBfWlgxKQkrPSBhcmNoL2lhNjQvZGlnLwogY29yZS0kKENPTkZJR19JQTY0X0hQX1pYMV9TV0lPVExCKSArPSBhcmNoL2lhNjQvZGlnLwogY29yZS0kKENPTkZJR19JQTY0X1NHSV9TTjIpCSs9IGFyY2gvaWE2NC9zbi8KK2NvcmUtJChDT05GSUdfSUE2NF9TR0lfVVYpCSs9IGFyY2gvaWE2NC91di8KIGNvcmUtJChDT05GSUdfS1ZNKSAJCSs9IGFyY2gvaWE2NC9rdm0vCiAKIGRyaXZlcnMtJChDT05GSUdfUENJKQkJKz0gYXJjaC9pYTY0L3BjaS8KZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvYWNwaS5jIGIvYXJjaC9pYTY0L2tlcm5lbC9hY3BpLmMKaW5kZXggODUzZDFmMS4uNDM2ODdjYyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9hY3BpLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9hY3BpLmMKQEAgLTQ2NSw3ICs0NjUsNiBAQAogCQlwcmludGsoS0VSTl9FUlIKIAkJICAgICAgICJBQ1BJIDIuMCBTTElUOiBzaXplIG1pc21hdGNoOiAlZCBleHBlY3RlZCwgJWQgYWN0dWFsXG4iLAogCQkgICAgICAgbGVuLCBzbGl0LT5oZWFkZXIubGVuZ3RoKTsKLQkJbWVtc2V0KG51bWFfc2xpdCwgMTAsIHNpemVvZihudW1hX3NsaXQpKTsKIAkJcmV0dXJuOwogCX0KIAlzbGl0X3RhYmxlID0gc2xpdDsKQEAgLTU3NCw4ICs1NzMsMTQgQEAKIAlwcmludGsoS0VSTl9JTkZPICJOdW1iZXIgb2YgbWVtb3J5IGNodW5rcyBpbiBzeXN0ZW0gPSAlZFxuIiwKIAkgICAgICAgbnVtX25vZGVfbWVtYmxrcyk7CiAKLQlpZiAoIXNsaXRfdGFibGUpCisJaWYgKCFzbGl0X3RhYmxlKSB7CisJCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykKKwkJCWZvciAoaiA9IDA7IGogPCBNQVhfTlVNTk9ERVM7IGorKykKKwkJCQlub2RlX2Rpc3RhbmNlKGksIGopID0gaSA9PSBqID8gTE9DQUxfRElTVEFOQ0UgOgorCQkJCQkJCVJFTU9URV9ESVNUQU5DRTsKIAkJcmV0dXJuOworCX0KKwogCW1lbXNldChudW1hX3NsaXQsIC0xLCBzaXplb2YobnVtYV9zbGl0KSk7CiAJZm9yIChpID0gMDsgaSA8IHNsaXRfdGFibGUtPmxvY2FsaXR5X2NvdW50OyBpKyspIHsKIAkJaWYgKCFweG1fYml0X3Rlc3QoaSkpCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL2lvc2FwaWMuYyBiL2FyY2gvaWE2NC9rZXJuZWwvaW9zYXBpYy5jCmluZGV4IDA4MmMzMWQuLjM5NzUyY2QgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvaW9zYXBpYy5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvaW9zYXBpYy5jCkBAIC01NTgsOCArNTU4LDYgQEAKIAlpZiAoIWlvc2FwaWNfa21hbGxvY19vayAmJiBsaXN0X2VtcHR5KCZmcmVlX3J0ZV9saXN0KSkgewogCQlydGUgPSBhbGxvY19ib290bWVtKHNpemVvZihzdHJ1Y3QgaW9zYXBpY19ydGVfaW5mbykgKgogCQkJCSAgICBOUl9QUkVBTExPQ0FURV9SVEVfRU5UUklFUyk7Ci0JCWlmICghcnRlKQotCQkJcmV0dXJuIE5VTEw7CiAJCWZvciAoaSA9IDA7IGkgPCBOUl9QUkVBTExPQ0FURV9SVEVfRU5UUklFUzsgaSsrLCBydGUrKykKIAkJCWxpc3RfYWRkKCZydGUtPnJ0ZV9saXN0LCAmZnJlZV9ydGVfbGlzdCk7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9pdnQuUyBiL2FyY2gvaWE2NC9rZXJuZWwvaXZ0LlMKaW5kZXggNjY3OGM0OS4uODBiNDRlYSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9pdnQuUworKysgYi9hcmNoL2lhNjQva2VybmVsL2l2dC5TCkBAIC0xMDc2LDQ4ICsxMDc2LDYgQEAKIAlEQkdfRkFVTFQoMTUpCiAJRkFVTFQoMTUpCiAKLQkvKgotCSAqIFNxdWF0dGluZyBpbiB0aGlzIHNwYWNlIC4uLgotCSAqCi0JICogVGhpcyBzcGVjaWFsIGNhc2UgZGlzcGF0Y2hlciBmb3IgaWxsZWdhbCBvcGVyYXRpb24gZmF1bHRzIGFsbG93cyBwcmVzZXJ2ZWQKLQkgKiByZWdpc3RlcnMgdG8gYmUgbW9kaWZpZWQgdGhyb3VnaCBhIGNhbGxiYWNrIGZ1bmN0aW9uIChhc20gb25seSkgdGhhdCBpcyBoYW5kZWQKLQkgKiBiYWNrIGZyb20gdGhlIGZhdWx0IGhhbmRsZXIgaW4gcjguIFVwIHRvIHRocmVlIGFyZ3VtZW50cyBjYW4gYmUgcGFzc2VkIHRvIHRoZQotCSAqIGNhbGxiYWNrIGZ1bmN0aW9uIGJ5IHJldHVybmluZyBhbiBhZ2dyZWdhdGUgd2l0aCB0aGUgY2FsbGJhY2sgYXMgaXRzIGZpcnN0Ci0JICogZWxlbWVudCwgZm9sbG93ZWQgYnkgdGhlIGFyZ3VtZW50cy4KLQkgKi8KLUVOVFJZKGRpc3BhdGNoX2lsbGVnYWxfb3BfZmF1bHQpCi0JLnByb2xvZ3VlCi0JLmJvZHkKLQlTQVZFX01JTl9XSVRIX0NPVkVSCi0Jc3NtIHBzci5pYyB8IFBTUl9ERUZBVUxUX0JJVFMKLQk7OwotCXNybHouaQkJLy8gZ3VhcmFudGVlIHRoYXQgaW50ZXJydXB0aW9uIGNvbGxlY3Rpb24gaXMgb24KLQk7OwotKHAxNSkJc3NtIHBzci5pCS8vIHJlc3RvcmUgcHNyLmkKLQlhZGRzIHIzPTgscjIJLy8gc2V0IHVwIHNlY29uZCBiYXNlIHBvaW50ZXIgZm9yIFNBVkVfUkVTVAotCTs7Ci0JYWxsb2MgcjE0PWFyLnBmcywwLDAsMSwwCS8vIG11c3QgYmUgZmlyc3QgaW4gaW5zbiBncm91cAotCW1vdiBvdXQwPWFyLmVjCi0JOzsKLQlTQVZFX1JFU1QKLQlQVF9SRUdTX1VOV0lORF9JTkZPKDApCi0JOzsKLQlici5jYWxsLnNwdGsubWFueSBycD1pYTY0X2lsbGVnYWxfb3BfZmF1bHQKLS5yZXQwOgk7OwotCWFsbG9jIHIxND1hci5wZnMsMCwwLDMsMAkvLyBtdXN0IGJlIGZpcnN0IGluIGluc24gZ3JvdXAKLQltb3Ygb3V0MD1yOQotCW1vdiBvdXQxPXIxMAotCW1vdiBvdXQyPXIxMQotCW1vdmwgcjE1PWlhNjRfbGVhdmVfa2VybmVsCi0JOzsKLQltb3YgcnA9cjE1Ci0JbW92IGI2PXI4Ci0JOzsKLQljbXAubmUgcDYscDA9MCxyOAotKHA2KQlici5jYWxsLmRwbnQubWFueSBiNj1iNgkJLy8gY2FsbCByZXR1cm5zIHRvIGlhNjRfbGVhdmVfa2VybmVsCi0JYnIuc3B0ay5tYW55IGlhNjRfbGVhdmVfa2VybmVsCi1FTkQoZGlzcGF0Y2hfaWxsZWdhbF9vcF9mYXVsdCkKLQogCS5vcmcgaWE2NF9pdnQrMHg0MDAwCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogLy8gMHg0MDAwIEVudHJ5IDE2IChzaXplIDY0IGJ1bmRsZXMpIFJlc2VydmVkCkBAIC0xNzE1LDYgKzE2NzMsNDggQEAKIAlEQkdfRkFVTFQoNjcpCiAJRkFVTFQoNjcpCiAKKwkvKgorCSAqIFNxdWF0dGluZyBpbiB0aGlzIHNwYWNlIC4uLgorCSAqCisJICogVGhpcyBzcGVjaWFsIGNhc2UgZGlzcGF0Y2hlciBmb3IgaWxsZWdhbCBvcGVyYXRpb24gZmF1bHRzIGFsbG93cyBwcmVzZXJ2ZWQKKwkgKiByZWdpc3RlcnMgdG8gYmUgbW9kaWZpZWQgdGhyb3VnaCBhIGNhbGxiYWNrIGZ1bmN0aW9uIChhc20gb25seSkgdGhhdCBpcyBoYW5kZWQKKwkgKiBiYWNrIGZyb20gdGhlIGZhdWx0IGhhbmRsZXIgaW4gcjguIFVwIHRvIHRocmVlIGFyZ3VtZW50cyBjYW4gYmUgcGFzc2VkIHRvIHRoZQorCSAqIGNhbGxiYWNrIGZ1bmN0aW9uIGJ5IHJldHVybmluZyBhbiBhZ2dyZWdhdGUgd2l0aCB0aGUgY2FsbGJhY2sgYXMgaXRzIGZpcnN0CisJICogZWxlbWVudCwgZm9sbG93ZWQgYnkgdGhlIGFyZ3VtZW50cy4KKwkgKi8KK0VOVFJZKGRpc3BhdGNoX2lsbGVnYWxfb3BfZmF1bHQpCisJLnByb2xvZ3VlCisJLmJvZHkKKwlTQVZFX01JTl9XSVRIX0NPVkVSCisJc3NtIHBzci5pYyB8IFBTUl9ERUZBVUxUX0JJVFMKKwk7OworCXNybHouaQkJLy8gZ3VhcmFudGVlIHRoYXQgaW50ZXJydXB0aW9uIGNvbGxlY3Rpb24gaXMgb24KKwk7OworKHAxNSkJc3NtIHBzci5pCS8vIHJlc3RvcmUgcHNyLmkKKwlhZGRzIHIzPTgscjIJLy8gc2V0IHVwIHNlY29uZCBiYXNlIHBvaW50ZXIgZm9yIFNBVkVfUkVTVAorCTs7CisJYWxsb2MgcjE0PWFyLnBmcywwLDAsMSwwCS8vIG11c3QgYmUgZmlyc3QgaW4gaW5zbiBncm91cAorCW1vdiBvdXQwPWFyLmVjCisJOzsKKwlTQVZFX1JFU1QKKwlQVF9SRUdTX1VOV0lORF9JTkZPKDApCisJOzsKKwlici5jYWxsLnNwdGsubWFueSBycD1pYTY0X2lsbGVnYWxfb3BfZmF1bHQKKy5yZXQwOgk7OworCWFsbG9jIHIxND1hci5wZnMsMCwwLDMsMAkvLyBtdXN0IGJlIGZpcnN0IGluIGluc24gZ3JvdXAKKwltb3Ygb3V0MD1yOQorCW1vdiBvdXQxPXIxMAorCW1vdiBvdXQyPXIxMQorCW1vdmwgcjE1PWlhNjRfbGVhdmVfa2VybmVsCisJOzsKKwltb3YgcnA9cjE1CisJbW92IGI2PXI4CisJOzsKKwljbXAubmUgcDYscDA9MCxyOAorKHA2KQlici5jYWxsLmRwbnQubWFueSBiNj1iNgkJLy8gY2FsbCByZXR1cm5zIHRvIGlhNjRfbGVhdmVfa2VybmVsCisJYnIuc3B0ay5tYW55IGlhNjRfbGVhdmVfa2VybmVsCitFTkQoZGlzcGF0Y2hfaWxsZWdhbF9vcF9mYXVsdCkKKwogI2lmZGVmIENPTkZJR19JQTMyX1NVUFBPUlQKIAogCS8qCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL21pbnN0YXRlLmggYi9hcmNoL2lhNjQva2VybmVsL21pbnN0YXRlLmgKaW5kZXggN2M1NDhhYy4uNzRiNmQ2NyAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9taW5zdGF0ZS5oCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvbWluc3RhdGUuaApAQCAtMTUsNiArMTUsOSBAQAogI2RlZmluZSBBQ0NPVU5UX1NZU19FTlRFUgogI2VuZGlmCiAKKy5zZWN0aW9uICIuZGF0YS5wYXRjaC5yc2UiLCAiYSIKKy5wcmV2aW91cworCiAvKgogICogRE9fU0FWRV9NSU4gc3dpdGNoZXMgdG8gdGhlIGtlcm5lbCBzdGFja3MgKGlmIG5lY2Vzc2FyeSkgYW5kIHNhdmVzCiAgKiB0aGUgbWluaW11bSBzdGF0ZSBuZWNlc3NhcnkgdGhhdCBhbGxvd3MgdXMgdG8gdHVybiBwc3IuaWMgYmFjawpAQCAtNDAsNyArNDMsNyBAQAogICogTm90ZSB0aGF0IHBzci5pYyBpcyBOT1QgdHVybmVkIG9uIGJ5IHRoaXMgbWFjcm8uICBUaGlzIGlzIHNvIHRoYXQKICAqIHdlIGNhbiBwYXNzIGludGVycnVwdGlvbiBzdGF0ZSBhcyBhcmd1bWVudHMgdG8gYSBoYW5kbGVyLgogICovCi0jZGVmaW5lIERPX1NBVkVfTUlOKENPVkVSLFNBVkVfSUZTLEVYVFJBKQkJCQkJCQlcCisjZGVmaW5lIERPX1NBVkVfTUlOKENPVkVSLFNBVkVfSUZTLEVYVFJBLFdPUktBUk9VTkQpCQkJCQkJXAogCW1vdiByMTY9SUE2NF9LUihDVVJSRU5UKTsJLyogTSAqLwkJCQkJCQlcCiAJbW92IHIyNz1hci5yc2M7CQkJLyogTSAqLwkJCQkJCQlcCiAJbW92IHIyMD1yMTsJCQkvKiBBICovCQkJCQkJCVwKQEAgLTg3LDYgKzkwLDcgQEAKIAl0Yml0Lm56IHAxNSxwMD1yMjksSUE2NF9QU1JfSV9CSVQ7CQkJCQkJCVwKIAltb3YgcjI5PWIwCQkJCQkJCQkJCVwKIAk7OwkJCQkJCQkJCQkJXAorCVdPUktBUk9VTkQ7CQkJCQkJCQkJCVwKIAlhZGRzIHIxNj1QVChSOCkscjE7CS8qIGluaXRpYWxpemUgZmlyc3QgYmFzZSBwb2ludGVyICovCQkJCVwKIAlhZGRzIHIxNz1QVChSOSkscjE7CS8qIGluaXRpYWxpemUgc2Vjb25kIGJhc2UgcG9pbnRlciAqLwkJCQlcCiAocEtTdGspCW1vdiByMTg9cjA7CQkvKiBtYWtlIHN1cmUgcjE4IGlzbid0IE5hVCAqLwkJCQkJXApAQCAtMjA2LDYgKzIxMCw0MCBAQAogCXN0OCBbcjI1XT1yMTA7ICAgICAgCS8qIGFyLnNzZCAqLwlcCiAJOzsKIAotI2RlZmluZSBTQVZFX01JTl9XSVRIX0NPVkVSCURPX1NBVkVfTUlOKGNvdmVyLCBtb3YgcjMwPWNyLmlmcywpCi0jZGVmaW5lIFNBVkVfTUlOX1dJVEhfQ09WRVJfUjE5CURPX1NBVkVfTUlOKGNvdmVyLCBtb3YgcjMwPWNyLmlmcywgbW92IHIxNT1yMTkpCi0jZGVmaW5lIFNBVkVfTUlOCQlET19TQVZFX01JTiggICAgICwgbW92IHIzMD1yMCwgKQorI2RlZmluZSBSU0VfV09SS0FST1VORAkJCQlcCisocFVTdGspIGV4dHIudSByMTc9cjE4LDMsNjsJCQlcCisocFVTdGspCXN1YiByMTY9cjE4LHIyMjsJCQlcCitbMTpdKHBLU3RrKQlici5jb25kLnNwdGsubWFueSAxZjsJCVwKKwkueGRhdGE0ICIuZGF0YS5wYXRjaC5yc2UiLDFiLS4JCVwKKwk7OwkJCQkJXAorCWNtcC5nZSBwNixwNyA9IDMzLHIxNzsJCQlcCisJOzsJCQkJCVwKKyhwNikJbW92IHIxNz0weDMxMDsJCQkJXAorKHA3KQltb3YgcjE3PTB4MzA4OwkJCQlcCisJOzsJCQkJCVwKKwljbXAubGV1IHAxLHAwPXIxNixyMTc7CQkJXAorKHAxKQlici5jb25kLnNwdGsubWFueSAxZjsJCQlcCisJZGVwLnogcjE3PXIyNiwwLDYyOwkJCVwKKwltb3ZsIHIxNj0yZjsJCQkJXAorCTs7CQkJCQlcCisJbW92IGFyLnBmcz1yMTc7CQkJCVwKKwlkZXAgcjI3PXIwLHIyNywxNiwxNDsJCQlcCisJbW92IGIwPXIxNjsJCQkJXAorCTs7CQkJCQlcCisJYnIucmV0LnNwdGsgYjA7CQkJCVwKKwk7OwkJCQkJXAorMjoJCQkJCQlcCisJbW92IGFyLnJzYz1yMAkJCQlcCisJOzsJCQkJCVwKKwlmbHVzaHJzOwkJCQlcCisJOzsJCQkJCVwKKwltb3YgYXIuYnNwc3RvcmU9cjIyCQkJXAorCTs7CQkJCQlcCisJbW92IHIxOD1hci5ic3A7CQkJCVwKKwk7OwkJCQkJXAorMToJCQkJCQlcCisJLnByZWQucmVsICJtdXRleCIsIHBLU3RrLCBwVVN0aworCisjZGVmaW5lIFNBVkVfTUlOX1dJVEhfQ09WRVIJRE9fU0FWRV9NSU4oY292ZXIsIG1vdiByMzA9Y3IuaWZzLCAsIFJTRV9XT1JLQVJPVU5EKQorI2RlZmluZSBTQVZFX01JTl9XSVRIX0NPVkVSX1IxOQlET19TQVZFX01JTihjb3ZlciwgbW92IHIzMD1jci5pZnMsIG1vdiByMTU9cjE5LCBSU0VfV09SS0FST1VORCkKKyNkZWZpbmUgU0FWRV9NSU4JCQlET19TQVZFX01JTiggICAgICwgbW92IHIzMD1yMCwgLCApCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3BhdGNoLmMgYi9hcmNoL2lhNjQva2VybmVsL3BhdGNoLmMKaW5kZXggZTBkY2E4Ny4uYjgzYjJjNSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC9wYXRjaC5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvcGF0Y2guYwpAQCAtMTE1LDYgKzExNSwyOSBAQAogCWlhNjRfc3Jsel9pKCk7CiB9CiAKKy8qCisgKiBEaXNhYmxlIHRoZSBSU0Ugd29ya2Fyb3VuZCBieSB0dXJuaW5nIHRoZSBjb25kaXRpb25hbCBicmFuY2gKKyAqIHRoYXQgd2UgdGFnZ2VkIGluIGVhY2ggcGxhY2UgdGhlIHdvcmthcm91bmQgd2FzIHVzZWQgaW50byBhbgorICogdW5jb25kaXRpb25hbCBicmFuY2guCisgKi8KK3ZvaWQgX19pbml0CitpYTY0X3BhdGNoX3JzZSAodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCit7CisJczMyICpvZmZwID0gKHMzMiAqKSBzdGFydDsKKwl1NjQgaXAsICpiOworCisJd2hpbGUgKG9mZnAgPCAoczMyICopIGVuZCkgeworCQlpcCA9ICh1NjQpIG9mZnAgKyAqb2ZmcDsKKworCQliID0gKHU2NCAqKShpcCAmIC0xNik7CisJCWJbMV0gJj0gfjB4ZjgwMDAwMEw7CisJCWlhNjRfZmMoKHZvaWQgKikgaXApOworCQkrK29mZnA7CisJfQorCWlhNjRfc3luY19pKCk7CisJaWE2NF9zcmx6X2koKTsKK30KKwogdm9pZCBfX2luaXQKIGlhNjRfcGF0Y2hfbWNraW5sZXlfZTkgKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L2tlcm5lbC9wZXJmbW9uLmMgYi9hcmNoL2lhNjQva2VybmVsL3BlcmZtb24uYwppbmRleCA3MWQwNTEzLi43NzE0YTk3IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3BlcmZtb24uYworKysgYi9hcmNoL2lhNjQva2VybmVsL3BlcmZtb24uYwpAQCAtMTg2NCwxMSArMTg2NCw2IEBACiAJICogaW52b2tlZCBhZnRlciwgaXQgd2lsbCBmaW5kIGFuIGVtcHR5IHF1ZXVlIGFuZCBubwogCSAqIHNpZ25hbCB3aWxsIGJlIHNlbnQuIEluIGJvdGggY2FzZSwgd2UgYXJlIHNhZmUKIAkgKi8KLQlpZiAoZmlscC0+Zl9mbGFncyAmIEZBU1lOQykgewotCQlEUFJJTlQoKCJjbGVhbmluZyB1cCBhc3luY19xdWV1ZT0lcFxuIiwgY3R4LT5jdHhfYXN5bmNfcXVldWUpKTsKLQkJcGZtX2RvX2Zhc3luYyAoLTEsIGZpbHAsIGN0eCwgMCk7Ci0JfQotCiAJUFJPVEVDVF9DVFgoY3R4LCBmbGFncyk7CiAKIAlzdGF0ZSAgICAgPSBjdHgtPmN0eF9zdGF0ZTsKQEAgLTE5OTksNiArMTk5NCwxMSBAQAogCQlyZXR1cm4gLUVCQURGOwogCX0KIAorCWlmIChmaWxwLT5mX2ZsYWdzICYgRkFTWU5DKSB7CisJCURQUklOVCgoImNsZWFuaW5nIHVwIGFzeW5jX3F1ZXVlPSVwXG4iLCBjdHgtPmN0eF9hc3luY19xdWV1ZSkpOworCQlwZm1fZG9fZmFzeW5jKC0xLCBmaWxwLCBjdHgsIDApOworCX0KKwogCVBST1RFQ1RfQ1RYKGN0eCwgZmxhZ3MpOwogCiAJc3RhdGUgICAgID0gY3R4LT5jdHhfc3RhdGU7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3NhbC5jIGIvYXJjaC9pYTY0L2tlcm5lbC9zYWwuYwppbmRleCA3ZTAyNTk3Li4wNDY0MTczIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3NhbC5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvc2FsLmMKQEAgLTI1MiwxMSArMjUyLDEwIEBACiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCiAJLyoKLQkgKiBTY2hlZHVsZSBhIHRpbWVyIGludGVycnVwdCwgd2FpdCB1bnRpbCBpdCdzIHJlcG9ydGVkLCBhbmQgc2VlIGlmCi0JICogU0FMX0NBQ0hFX0ZMVVNIIGRyb3BzIGl0LgorCSAqIFNlbmQgb3Vyc2VsdmVzIGEgdGltZXIgaW50ZXJydXB0LCB3YWl0IHVudGlsIGl0J3MgcmVwb3J0ZWQsIGFuZCBzZWUKKwkgKiBpZiBTQUxfQ0FDSEVfRkxVU0ggZHJvcHMgaXQuCiAJICovCi0JaWE2NF9zZXRfaXR2KElBNjRfVElNRVJfVkVDVE9SKTsKLQlpYTY0X3NldF9pdG0oaWE2NF9nZXRfaXRjKCkgKyAxMDAwKTsKKwlwbGF0Zm9ybV9zZW5kX2lwaShjcHUsIElBNjRfVElNRVJfVkVDVE9SLCBJQTY0X0lQSV9ETV9JTlQsIDApOwogCiAJd2hpbGUgKCFpYTY0X2dldF9pcnIoSUE2NF9USU1FUl9WRUNUT1IpKQogCQljcHVfcmVsYXgoKTsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvaWE2NC9rZXJuZWwvc2V0dXAuYwppbmRleCBlOTU5NmNkLi42MzJjZGE4IDEwMDY0NAotLS0gYS9hcmNoL2lhNjQva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9pYTY0L2tlcm5lbC9zZXR1cC5jCkBAIC01NDcsNyArNTQ3LDggQEAKICMgaWZkZWYgQ09ORklHX0FDUElfTlVNQQogCWFjcGlfbnVtYV9pbml0KCk7CiAJcGVyX2NwdV9zY2FuX2ZpbmFsaXplKChjcHVzX3dlaWdodChlYXJseV9jcHVfcG9zc2libGVfbWFwKSA9PSAwID8KLQkJMzIgOiBjcHVzX3dlaWdodChlYXJseV9jcHVfcG9zc2libGVfbWFwKSksIGFkZGl0aW9uYWxfY3B1cyk7CisJCTMyIDogY3B1c193ZWlnaHQoZWFybHlfY3B1X3Bvc3NpYmxlX21hcCkpLAorCQlhZGRpdGlvbmFsX2NwdXMgPiAwID8gYWRkaXRpb25hbF9jcHVzIDogMCk7CiAjIGVuZGlmCiAjZWxzZQogIyBpZmRlZiBDT05GSUdfU01QCkBAIC01NjAsNiArNTYxLDE3IEBACiAJLyogcHJvY2VzcyBTQUwgc3lzdGVtIHRhYmxlOiAqLwogCWlhNjRfc2FsX2luaXQoX192YShlZmkuc2FsX3N5c3RhYikpOwogCisjaWZkZWYgQ09ORklHX0lUQU5JVU0KKwlpYTY0X3BhdGNoX3JzZSgodTY0KSBfX3N0YXJ0X19fcnNlX3BhdGNobGlzdCwgKHU2NCkgX19lbmRfX19yc2VfcGF0Y2hsaXN0KTsKKyNlbHNlCisJeworCQl1NjQgbnVtX3BoeXNfc3RhY2tlZDsKKworCQlpZiAoaWE2NF9wYWxfcnNlX2luZm8oJm51bV9waHlzX3N0YWNrZWQsIDApID09IDAgJiYgbnVtX3BoeXNfc3RhY2tlZCA+IDk2KQorCQkJaWE2NF9wYXRjaF9yc2UoKHU2NCkgX19zdGFydF9fX3JzZV9wYXRjaGxpc3QsICh1NjQpIF9fZW5kX19fcnNlX3BhdGNobGlzdCk7CisJfQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfU01QCiAJY3B1X3BoeXNpY2FsX2lkKDApID0gaGFyZF9zbXBfcHJvY2Vzc29yX2lkKCk7CiAjZW5kaWYKQEAgLTU2Nyw4ICs1NzksNiBAQAogCWNwdV9pbml0KCk7CS8qIGluaXRpYWxpemUgdGhlIGJvb3RzdHJhcCBDUFUgKi8KIAltbXVfY29udGV4dF9pbml0KCk7CS8qIGluaXRpYWxpemUgY29udGV4dF9pZCBiaXRtYXAgKi8KIAotCWNoZWNrX3NhbF9jYWNoZV9mbHVzaCgpOwotCiAjaWZkZWYgQ09ORklHX0FDUEkKIAlhY3BpX2Jvb3RfaW5pdCgpOwogI2VuZGlmCkBAIC01OTYsNiArNjA2LDcgQEAKIAkJaWE2NF9tY2FfaW5pdCgpOwogCiAJcGxhdGZvcm1fc2V0dXAoY21kbGluZV9wKTsKKwljaGVja19zYWxfY2FjaGVfZmx1c2goKTsKIAlwYWdpbmdfaW5pdCgpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3RpbWUuYyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCmluZGV4IDhjNzM2NDMuLmFhZDFiN2IgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvdGltZS5jCkBAIC0xMTcsNiArMTE3LDcgQEAKIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGFjY291bnRfc3lzdGVtX3Z0aW1lKTsKIAogLyoKICAqIENhbGxlZCBmcm9tIHRoZSB0aW1lciBpbnRlcnJ1cHQgaGFuZGxlciB0byBjaGFyZ2UgYWNjdW11bGF0ZWQgdXNlciB0aW1lCmRpZmYgLS1naXQgYS9hcmNoL2lhNjQva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL2lhNjQva2VybmVsL3ZtbGludXgubGRzLlMKaW5kZXggODA2MjJhYy4uNTkyOWFiMSAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvaWE2NC9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtMTU2LDYgKzE1NiwxMyBAQAogCSAgX19lbmRfX192dG9wX3BhdGNobGlzdCA9IC47CiAJfQogCisgIC5kYXRhLnBhdGNoLnJzZSA6IEFUKEFERFIoLmRhdGEucGF0Y2gucnNlKSAtIExPQURfT0ZGU0VUKQorCXsKKwkgIF9fc3RhcnRfX19yc2VfcGF0Y2hsaXN0ID0gLjsKKwkgICooLmRhdGEucGF0Y2gucnNlKQorCSAgX19lbmRfX19yc2VfcGF0Y2hsaXN0ID0gLjsKKwl9CisKICAgLmRhdGEucGF0Y2gubWNraW5sZXlfZTkgOiBBVChBRERSKC5kYXRhLnBhdGNoLm1ja2lubGV5X2U5KSAtIExPQURfT0ZGU0VUKQogCXsKIAkgIF9fc3RhcnRfX19tY2tpbmxleV9lOV9idW5kbGVzID0gLjsKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9rdm0vbW1pby5jIGIvYXJjaC9pYTY0L2t2bS9tbWlvLmMKaW5kZXggMzUxYmY3MC4uN2YxYTg1OCAxMDA2NDQKLS0tIGEvYXJjaC9pYTY0L2t2bS9tbWlvLmMKKysrIGIvYXJjaC9pYTY0L2t2bS9tbWlvLmMKQEAgLTE1OSw3ICsxNTksOCBAQAogCiAJaWYgKHAtPnUuaW9yZXEuc3RhdGUgPT0gU1RBVEVfSU9SRVNQX1JFQURZKSB7CiAJCWlmIChkaXIgPT0gSU9SRVFfUkVBRCkKLQkJCSpkZXN0ID0gcC0+dS5pb3JlcS5kYXRhOworCQkJLyogaXQncyBuZWNlc3NhcnkgdG8gZW5zdXJlIHplcm8gZXh0ZW5kaW5nICovCisJCQkqZGVzdCA9IHAtPnUuaW9yZXEuZGF0YSAmICh+MFVMID4+ICg2NC0ocyo4KSkpOwogCX0gZWxzZQogCQlwYW5pY192bSh2Y3B1KTsKIG91dDoKZGlmZiAtLWdpdCBhL2FyY2gvaWE2NC9zbi9rZXJuZWwvc24yL3NuMl9zbXAuYyBiL2FyY2gvaWE2NC9zbi9rZXJuZWwvc24yL3NuMl9zbXAuYwppbmRleCA0OWQzMTIwLi5lNTg1ZjlhIDEwMDY0NAotLS0gYS9hcmNoL2lhNjQvc24va2VybmVsL3NuMi9zbjJfc21wLmMKKysrIGIvYXJjaC9pYTY0L3NuL2tlcm5lbC9zbjIvc24yX3NtcC5jCkBAIC01MTIsNiArNTEyLDggQEAKIAlpbnQgY3B1OwogCWNoYXIgb3B0c3RyWzY0XTsKIAorCWlmIChjb3VudCA9PSAwIHx8IGNvdW50ID4gc2l6ZW9mKG9wdHN0cikpCisJCXJldHVybiAtRUlOVkFMOwogCWlmIChjb3B5X2Zyb21fdXNlcihvcHRzdHIsIHVzZXIsIGNvdW50KSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJb3B0c3RyW2NvdW50IC0gMV0gPSAnXDAnOwpkaWZmIC0tZ2l0IGEvYXJjaC9pYTY0L3V2L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9pYTY0L3V2L2tlcm5lbC9zZXR1cC5jCmluZGV4IDlhYTc0MzIuLmNmNWYyOGEgMTAwNjQ0Ci0tLSBhL2FyY2gvaWE2NC91di9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL2lhNjQvdXYva2VybmVsL3NldHVwLmMKQEAgLTE3LDYgKzE3LDkgQEAKIERFRklORV9QRVJfQ1BVKHN0cnVjdCB1dl9odWJfaW5mb19zLCBfX3V2X2h1Yl9pbmZvKTsKIEVYUE9SVF9QRVJfQ1BVX1NZTUJPTF9HUEwoX191dl9odWJfaW5mbyk7CiAKKyNpZmRlZiBDT05GSUdfSUE2NF9TR0lfVVYKK2ludCBzbl9wcm9tX3R5cGU7CisjZW5kaWYKIAogc3RydWN0IHJlZGlyX2FkZHIgewogCXVuc2lnbmVkIGxvbmcgcmVkaXJlY3Q7CkBAIC02NCw2ICs2NywxNSBAQAogCQltX25fY29uZmlnLnMubV9za3QgPSAzNzsKIAkJbV9uX2NvbmZpZy5zLm5fc2t0ID0gMDsKIAkJbW1yX2Jhc2UgPSAwOworI2lmIDAKKwkJLyogTmVlZCBCSU9TIGNhbGxzIC0gVERCICovCisJCWlmICghaWE2NF9zbl9pc19mYWtlX3Byb20oKSkKKwkJCXNuX3Byb21fdHlwZSA9IDE7CisJCWVsc2UKKyNlbmRpZgorCQkJc25fcHJvbV90eXBlID0gMjsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUnVubmluZyBvbiBtZWR1c2Egd2l0aCAlcyBQUk9NXG4iLAorCQkJCQkoc25fcHJvbV90eXBlID09IDEpID8gInJlYWwiIDogImZha2UiKTsKIAl9IGVsc2UgewogCQlnZXRfbG93bWVtX3JlZGlyZWN0KCZsb3dtZW1fcmVkaXJfYmFzZSwgJmxvd21lbV9yZWRpcl9zaXplKTsKIAkJbm9kZV9pZC52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX05PREVfSUQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2J2bWU2MDAwL3J0Yy5jIGIvYXJjaC9tNjhrL2J2bWU2MDAwL3J0Yy5jCmluZGV4IGE4MTJkMDMuLmU4YWMzZjcgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9idm1lNjAwMC9ydGMuYworKysgYi9hcmNoL202OGsvYnZtZTYwMDAvcnRjLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KQEAgLTE0MCwxMCArMTQxLDE0IEBACiAKIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYocnRjX3N0YXR1cykKKwlsb2NrX2tlcm5lbCgpOworCWlmKHJ0Y19zdGF0dXMpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAogCXJ0Y19zdGF0dXMgPSAxOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvYW1pZ2FfZGVmY29uZmlnCmluZGV4IGRjYTUwZGEuLjhlMmEwZjUgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL2FtaWdhX2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9hbWlnYV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMyCi0jIFN1biBNYXkgMTggMTQ6NDQ6NDEgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBXZWQgTWF5IDI4IDIyOjQ3OjM1IDIwMDgKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtNTksNyArNTksNyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15Ci0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvYXBvbGxvX2RlZmNvbmZpZwppbmRleCBjM2NkNWI3Li5lMmQ1MTFlIDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9hcG9sbG9fZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2Fwb2xsb19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMyCi0jIFN1biBNYXkgMTggMTQ6NDQ6NDIgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBXZWQgTWF5IDI4IDIyOjQ3OjM1IDIwMDgKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtNTksNyArNTksNyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15Ci0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9hdGFyaV9kZWZjb25maWcKaW5kZXggMDczYWU0Yi4uNmUyMGQ2NSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvYXRhcmlfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL2F0YXJpX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzIKLSMgU3VuIE1heSAxOCAxNDo0NDo0MyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIFdlZCBNYXkgMjggMjI6NDc6MzUgMjAwOAogIwogQ09ORklHX002OEs9eQogQ09ORklHX01NVT15CkBAIC01OSw3ICs1OSw3IEBACiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9jb25maWdzL2J2bWU2MDAwX2RlZmNvbmZpZwppbmRleCAwNzg5ZWRlLi5hMGE5YjMwIDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9idm1lNjAwMF9kZWZjb25maWcKKysrIGIvYXJjaC9tNjhrL2NvbmZpZ3MvYnZtZTYwMDBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMgotIyBTdW4gTWF5IDE4IDE0OjQ0OjQ1IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzQKKyMgV2VkIE1heSAyOCAyMjo0NzozNSAyMDA4CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTU5LDcgKzU5LDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQotIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CitDT05GSUdfQ09NUEFUX0JSSz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvaHAzMDBfZGVmY29uZmlnCmluZGV4IDNlMTQwYmYuLjY3NzgwNDEgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL2hwMzAwX2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9ocDMwMF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMyCi0jIFN1biBNYXkgMTggMTQ6NDQ6NDYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBXZWQgTWF5IDI4IDIyOjQ3OjM1IDIwMDgKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtNTksNyArNTksNyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15Ci0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvbWFjX2RlZmNvbmZpZwppbmRleCBiYTNhOTE3Li43Y2QzNzU3IDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9tYWNfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL21hY19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMyCi0jIFN1biBNYXkgMTggMTQ6NDQ6NDcgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBXZWQgTWF5IDI4IDIyOjQ3OjM1IDIwMDgKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtNTksNyArNTksNyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15Ci0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9tdWx0aV9kZWZjb25maWcKaW5kZXggNGQyM2Y5OS4uMDc0N2ZhMyAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvbXVsdGlfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL211bHRpX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzIKLSMgU3VuIE1heSAxOCAxNDo0MjozMSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIFdlZCBNYXkgMjggMjI6NDc6MzUgMjAwOAogIwogQ09ORklHX002OEs9eQogQ09ORklHX01NVT15CkBAIC01OSw3ICs1OSw3IEBACiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL212bWUxNDdfZGVmY29uZmlnIGIvYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWcKaW5kZXggMTg4ODQ3Zi4uZTdhODI0NiAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWcKKysrIGIvYXJjaC9tNjhrL2NvbmZpZ3MvbXZtZTE0N19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMyCi0jIFN1biBNYXkgMTggMTQ6NDQ6NDkgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBXZWQgTWF5IDI4IDIyOjQ3OjM1IDIwMDgKICMKIENPTkZJR19NNjhLPXkKIENPTkZJR19NTVU9eQpAQCAtNTksNyArNTksNyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15Ci0jIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19DT01QQVRfQlJLPXkKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CmRpZmYgLS1naXQgYS9hcmNoL202OGsvY29uZmlncy9tdm1lMTZ4X2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCmluZGV4IDk4M2U1M2QuLmFiNTM2ZWIgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCisrKyBiL2FyY2gvbTY4ay9jb25maWdzL212bWUxNnhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMgotIyBTdW4gTWF5IDE4IDE0OjQ0OjUwIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzQKKyMgV2VkIE1heSAyOCAyMjo0NzozNSAyMDA4CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTU5LDcgKzU5LDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQotIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CitDT05GSUdfQ09NUEFUX0JSSz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9jb25maWdzL3E0MF9kZWZjb25maWcKaW5kZXggNzcwN2YzZi4uZTA1YmU2OCAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL2NvbmZpZ3MvcTQwX2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9xNDBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMgotIyBTdW4gTWF5IDE4IDE0OjQ0OjUxIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzQKKyMgV2VkIE1heSAyOCAyMjo0NzozNSAyMDA4CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTU5LDcgKzU5LDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQotIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CitDT05GSUdfQ09NUEFUX0JSSz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM19kZWZjb25maWcgYi9hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZwppbmRleCBhNzY1ZjZmLi4yOTYzNDBkIDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZworKysgYi9hcmNoL202OGsvY29uZmlncy9zdW4zX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzIKLSMgU3VuIE1heSAxOCAxNDo0NDo1MyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIFdlZCBNYXkgMjggMjI6NDc6MzUgMjAwOAogIwogQ09ORklHX002OEs9eQogQ09ORklHX01NVT15CkBAIC01OSw3ICs1OSw3IEBACiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKLSMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZyBiL2FyY2gvbTY4ay9jb25maWdzL3N1bjN4X2RlZmNvbmZpZwppbmRleCA0MzE1MTM5Li44ZDNhNDE2IDEwMDY0NAotLS0gYS9hcmNoL202OGsvY29uZmlncy9zdW4zeF9kZWZjb25maWcKKysrIGIvYXJjaC9tNjhrL2NvbmZpZ3Mvc3VuM3hfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMgotIyBTdW4gTWF5IDE4IDE0OjQ0OjU0IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzQKKyMgV2VkIE1heSAyOCAyMjo0NzozNSAyMDA4CiAjCiBDT05GSUdfTTY4Sz15CiBDT05GSUdfTU1VPXkKQEAgLTU5LDcgKzU5LDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQotIyBDT05GSUdfQ09NUEFUX0JSSyBpcyBub3Qgc2V0CitDT05GSUdfQ09NUEFUX0JSSz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQpkaWZmIC0tZ2l0IGEvYXJjaC9tNjhrL212bWUxNngvcnRjLmMgYi9hcmNoL202OGsvbXZtZTE2eC9ydGMuYwppbmRleCBlMzQxMzg3Li40MzJhOWYxIDEwMDY0NAotLS0gYS9hcmNoL202OGsvbXZtZTE2eC9ydGMuYworKysgYi9hcmNoL202OGsvbXZtZTE2eC9ydGMuYwpAQCAtMTAsNiArMTAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9mY250bC5oPgpAQCAtMTI3LDExICsxMjgsMTQgQEAKIAogc3RhdGljIGludCBydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCWlmKCAhYXRvbWljX2RlY19hbmRfdGVzdCgmcnRjX3JlYWR5KSApCiAJewogCQlhdG9taWNfaW5jKCAmcnRjX3JlYWR5ICk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL202OGtub21tdS9wbGF0Zm9ybS9jb2xkZmlyZS90aW1lcnMuYyBiL2FyY2gvbTY4a25vbW11L3BsYXRmb3JtL2NvbGRmaXJlL3RpbWVycy5jCmluZGV4IGJhNWE5ZjMuLjQ1NGYyNTQgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4a25vbW11L3BsYXRmb3JtL2NvbGRmaXJlL3RpbWVycy5jCisrKyBiL2FyY2gvbTY4a25vbW11L3BsYXRmb3JtL2NvbGRmaXJlL3RpbWVycy5jCkBAIC0xMTEsNyArMTExLDEzIEBACiAKIAlfX3Jhd193cml0ZXcoTUNGVElNRVJfVE1SX0RJU0FCTEUsIFRBKE1DRlRJTUVSX1RNUikpOwogCW1jZnRtcl9jeWNsZXNfcGVyX2ppZmZ5ID0gRlJFUSAvIEhaOwotCV9fcmF3X3dyaXRldHJyKG1jZnRtcl9jeWNsZXNfcGVyX2ppZmZ5LCBUQShNQ0ZUSU1FUl9UUlIpKTsKKwkvKgorCSAqCVRoZSBjb2xkZmlyZSB0aW1lciBydW5zIGZyb20gMCB0byBUUlIgaW5jbHVkZWQsIHRoZW4gMAorCSAqCWFnYWluIGFuZCBzbyBvbi4gIEl0IGNvdW50cyB0aHVzIGFjdHVhbGx5IFRSUiArIDEgc3RlcHMKKwkgKglmb3IgMSB0aWNrLCBub3QgVFJSLiAgU28gaWYgeW91IHdhbnQgbiBjeWNsZXMsCisJICoJaW5pdGlhbGl6ZSBUUlIgd2l0aCBuIC0gMS4KKwkgKi8KKwlfX3Jhd193cml0ZXRycihtY2Z0bXJfY3ljbGVzX3Blcl9qaWZmeSAtIDEsIFRBKE1DRlRJTUVSX1RSUikpOwogCV9fcmF3X3dyaXRldyhNQ0ZUSU1FUl9UTVJfRU5PUkkgfCBNQ0ZUSU1FUl9UTVJfQ0xLMTYgfAogCQlNQ0ZUSU1FUl9UTVJfUkVTVEFSVCB8IE1DRlRJTUVSX1RNUl9FTkFCTEUsIFRBKE1DRlRJTUVSX1RNUikpOwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvS2NvbmZpZyBiL2FyY2gvbWlwcy9LY29uZmlnCmluZGV4IGU1YTdjNWQuLjI0YzVkZWUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9LY29uZmlnCisrKyBiL2FyY2gvbWlwcy9LY29uZmlnCkBAIC0xMDA2LDcgKzEwMDYsNyBAQAogY29uZmlnIE1JUFNfTDFfQ0FDSEVfU0hJRlQKIAlpbnQKIAlkZWZhdWx0ICI0IiBpZiBNQUNIX0RFQ1NUQVRJT04KLQlkZWZhdWx0ICI3IiBpZiBTR0lfSVAyNyB8fCBTR0lfSVAyOCB8fCBTTklfUk0KKwlkZWZhdWx0ICI3IiBpZiBTR0lfSVAyMiB8fCBTR0lfSVAyNyB8fCBTR0lfSVAyOCB8fCBTTklfUk0KIAlkZWZhdWx0ICI0IiBpZiBQTUNfTVNQNDIwMF9FVkFMCiAJZGVmYXVsdCAiNSIKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL01ha2VmaWxlIGIvYXJjaC9taXBzL01ha2VmaWxlCmluZGV4IDY5NjQ4ZDAuLmFkMzZjOTQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvTWFrZWZpbGUKQEAgLTUzOCwxOSArNTM4LDE5IEBACiAjIFNpYnl0ZSBTV0FSTSBib2FyZAogIyBTaWJ5dGUgQkNNOTF4ODAgKEJpZ1N1cikgYm9hcmQKICMKLWxpYnMtJChDT05GSUdfU0lCWVRFX0NBUk1FTCkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KK2NvcmUtJChDT05GSUdfU0lCWVRFX0NBUk1FTCkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KIGxvYWQtJChDT05GSUdfU0lCWVRFX0NBUk1FTCkJOj0gMHhmZmZmZmZmZjgwMTAwMDAwCi1saWJzLSQoQ09ORklHX1NJQllURV9DUkhJTkUpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCitjb3JlLSQoQ09ORklHX1NJQllURV9DUkhJTkUpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9DUkhJTkUpCTo9IDB4ZmZmZmZmZmY4MDEwMDAwMAotbGlicy0kKENPTkZJR19TSUJZVEVfQ1JIT05FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLworY29yZS0kKENPTkZJR19TSUJZVEVfQ1JIT05FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLwogbG9hZC0kKENPTkZJR19TSUJZVEVfQ1JIT05FKQk6PSAweGZmZmZmZmZmODAxMDAwMDAKLWxpYnMtJChDT05GSUdfU0lCWVRFX1JIT05FKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLworY29yZS0kKENPTkZJR19TSUJZVEVfUkhPTkUpCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCiBsb2FkLSQoQ09ORklHX1NJQllURV9SSE9ORSkJOj0gMHhmZmZmZmZmZjgwMTAwMDAwCi1saWJzLSQoQ09ORklHX1NJQllURV9TRU5UT1NBKQkrPSBhcmNoL21pcHMvc2lieXRlL3N3YXJtLworY29yZS0kKENPTkZJR19TSUJZVEVfU0VOVE9TQSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KIGxvYWQtJChDT05GSUdfU0lCWVRFX1NFTlRPU0EpCTo9IDB4ZmZmZmZmZmY4MDEwMDAwMAotbGlicy0kKENPTkZJR19TSUJZVEVfU1dBUk0pCSs9IGFyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vCitjb3JlLSQoQ09ORklHX1NJQllURV9TV0FSTSkJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KIGxvYWQtJChDT05GSUdfU0lCWVRFX1NXQVJNKQk6PSAweGZmZmZmZmZmODAxMDAwMDAKLWxpYnMtJChDT05GSUdfU0lCWVRFX0JJR1NVUikJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KK2NvcmUtJChDT05GSUdfU0lCWVRFX0JJR1NVUikJKz0gYXJjaC9taXBzL3NpYnl0ZS9zd2FybS8KIGxvYWQtJChDT05GSUdfU0lCWVRFX0JJR1NVUikJOj0gMHhmZmZmZmZmZjgwMTAwMDAwCiAKICMKQEAgLTU2NSw3ICs1NjUsMTEgQEAKICMKIGNvcmUtJChDT05GSUdfU05JX1JNKQkJKz0gYXJjaC9taXBzL3NuaS8KIGNmbGFncy0kKENPTkZJR19TTklfUk0pCQkrPSAtSWluY2x1ZGUvYXNtLW1pcHMvbWFjaC1ybQoraWZkZWYgQ09ORklHX0NQVV9MSVRUTEVfRU5ESUFOCiBsb2FkLSQoQ09ORklHX1NOSV9STSkJCSs9IDB4ZmZmZmZmZmY4MDYwMDAwMAorZWxzZQorbG9hZC0kKENPTkZJR19TTklfUk0pCQkrPSAweGZmZmZmZmZmODAwMzAwMDAKK2VuZGlmCiBhbGwtJChDT05GSUdfU05JX1JNKQkJOj0gdm1saW51eC5lY29mZgogCiAjCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvYXUxMDAwL2NvbW1vbi9jbG9ja3MuYyBiL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL2Nsb2Nrcy5jCmluZGV4IDQ2ZjhlZTAuLjA0MzQyOWQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL2Nsb2Nrcy5jCisrKyBiL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL2Nsb2Nrcy5jCkBAIC00NSw2ICs0NSw3IEBACiB7CiAJcmV0dXJuIGF1MXgwMF9jbG9jazsKIH0KK0VYUE9SVF9TWU1CT0woZ2V0X2F1MXgwMF9zcGVlZCk7CiAKIC8qCiAgKiBUaGUgVUFSVCBiYXVkIGJhc2UgaXMgbm90IGtub3duIGF0IGNvbXBpbGUgdGltZSAuLi4gaWYKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL2RiZG1hLmMgYi9hcmNoL21pcHMvYXUxMDAwL2NvbW1vbi9kYmRtYS5jCmluZGV4IDQyZDU1NTIuLjYwMWVlOTEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL2RiZG1hLmMKKysrIGIvYXJjaC9taXBzL2F1MTAwMC9jb21tb24vZGJkbWEuYwpAQCAtMjE2LDYgKzIxNiwxNyBAQAogfQogRVhQT1JUX1NZTUJPTChhdTF4eHhfZGRtYV9hZGRfZGV2aWNlKTsKIAordm9pZCBhdTF4eHhfZGRtYV9kZWxfZGV2aWNlKHUzMiBkZXZpZCkKK3sKKwlkYmRldl90YWJfdCAqcCA9IGZpbmRfZGJkZXZfaWQoZGV2aWQpOworCisJaWYgKHAgIT0gTlVMTCkgeworCQltZW1zZXQocCwgMCwgc2l6ZW9mKGRiZGV2X3RhYl90KSk7CisJCXAtPmRldl9pZCA9IH4wOworCX0KK30KK0VYUE9SVF9TWU1CT0woYXUxeHh4X2RkbWFfZGVsX2RldmljZSk7CisKIC8qIEFsbG9jYXRlIGEgY2hhbm5lbCBhbmQgcmV0dXJuIGEgbm9uLXplcm8gZGVzY3JpcHRvciBpZiBzdWNjZXNzZnVsLiAqLwogdTMyIGF1MXh4eF9kYmRtYV9jaGFuX2FsbG9jKHUzMiBzcmNpZCwgdTMyIGRlc3RpZCwKICAgICAgICB2b2lkICgqY2FsbGJhY2spKGludCwgdm9pZCAqKSwgdm9pZCAqY2FsbHBhcmFtKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2F1MTAwMC9jb21tb24vcGxhdGZvcm0uYyBiL2FyY2gvbWlwcy9hdTEwMDAvY29tbW9uL3BsYXRmb3JtLmMKaW5kZXggOGNhZTc3NS4uNzRkNmQ0YSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2F1MTAwMC9jb21tb24vcGxhdGZvcm0uYworKysgYi9hcmNoL21pcHMvYXUxMDAwL2NvbW1vbi9wbGF0Zm9ybS5jCkBAIC0xNjUsMTIgKzE2NSwxMiBAQAogc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhdTF4eHhfbW1jX3Jlc291cmNlc1tdID0gewogCVswXSA9IHsKIAkJLnN0YXJ0ICAgICAgICAgID0gU0QwX1BIWVNfQUREUiwKLQkJLmVuZCAgICAgICAgICAgID0gU0QwX1BIWVNfQUREUiArIDB4NDAsCisJCS5lbmQgICAgICAgICAgICA9IFNEMF9QSFlTX0FERFIgKyAweDdmZmZmLAogCQkuZmxhZ3MgICAgICAgICAgPSBJT1JFU09VUkNFX01FTSwKIAl9LAogCVsxXSA9IHsKIAkJLnN0YXJ0CQk9IFNEMV9QSFlTX0FERFIsCi0JCS5lbmQgCQk9IFNEMV9QSFlTX0FERFIgKyAweDQwLAorCQkuZW5kIAkJPSBTRDFfUEhZU19BRERSICsgMHg3ZmZmZiwKIAkJLmZsYWdzCQk9IElPUkVTT1VSQ0VfTUVNLAogCX0sCiAJWzJdID0gewpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2Jhc2xlci9leGNpdGUvZXhjaXRlX2lvZGV2LmMgYi9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYwppbmRleCA0NzZkMjBlLi5hMWUzNTI2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYworKysgYi9hcmNoL21pcHMvYmFzbGVyL2V4Y2l0ZS9leGNpdGVfaW9kZXYuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAiZXhjaXRlX2lvZGV2LmgiCiAKQEAgLTExMCw4ICsxMTEsMTQgQEAKIAogc3RhdGljIGludCBpb2Rldl9vcGVuKHN0cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpCiB7Ci0JcmV0dXJuIHJlcXVlc3RfaXJxKGlvZGV2X2lycSwgaW9kZXZfaXJxaGRsLCBJUlFGX0RJU0FCTEVELAorCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IHJlcXVlc3RfaXJxKGlvZGV2X2lycSwgaW9kZXZfaXJxaGRsLCBJUlFGX0RJU0FCTEVELAogCQkJICAgaW9kZXZfbmFtZSwgJm1pc2NkZXYpOworCXVubG9ja19rZXJuZWwoKTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW9kZXZfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmksIHN0cnVjdCBmaWxlICpmKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwLXN3YXJtX2RlZmNvbmZpZyBiL2FyY2gvbWlwcy9jb25maWdzL3NiMTI1MC1zd2FybV9kZWZjb25maWcKaW5kZXggMTE3NDcwYi4uNGI4Nzk5OCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2NvbmZpZ3Mvc2IxMjUwLXN3YXJtX2RlZmNvbmZpZworKysgYi9hcmNoL21pcHMvY29uZmlncy9zYjEyNTAtc3dhcm1fZGVmY29uZmlnCkBAIC0xLDY3ICsxLDU4IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjAKLSMgVHVlIEZlYiAyMCAyMTo0Nzo0MCAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUKKyMgU2F0IE1heSAgMyAwMDozODoxMSAyMDA4CiAjCiBDT05GSUdfTUlQUz15CiAKICMKICMgTWFjaGluZSBzZWxlY3Rpb24KICMKLUNPTkZJR19aT05FX0RNQT15Ci0jIENPTkZJR19NSVBTX01UWDEgaXMgbm90IHNldAotIyBDT05GSUdfTUlQU19CT1NQT1JVUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTU1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1BCMTIwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTUwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTU1MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX0RCMTIwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX01JUkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX0FMQ0hFTVkgaXMgbm90IHNldAogIyBDT05GSUdfQkFTTEVSX0VYQ0lURSBpcyBub3Qgc2V0CisjIENPTkZJR19CQ000N1hYIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfQ09CQUxUIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0hfREVDU1RBVElPTiBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0pBWlogaXMgbm90IHNldAorIyBDT05GSUdfTEFTQVQgaXMgbm90IHNldAorIyBDT05GSUdfTEVNT1RFX0ZVTE9ORyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0FUTEFTIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfTUFMVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19TRUFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dSX1BQTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19TSU0gaXMgbm90IHNldAotIyBDT05GSUdfTU9NRU5DT19KQUdVQVJfQVRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JUFNfWFhTMTUwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRUlOUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIX1ZSNDFYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTlg4NTUwX0pCUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QTlg4NTUwX1NUQjgxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUNIX1ZSNDFYWCBpcyBub3Qgc2V0CisjIENPTkZJR19QTUNfTVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQVJLRUlOUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSUJZVEVfQklHU1VSIGlzIG5vdCBzZXQKLUNPTkZJR19TSUJZVEVfU1dBUk09eQotIyBDT05GSUdfU0lCWVRFX1NFTlRPU0EgaXMgbm90IHNldAotIyBDT05GSUdfU0lCWVRFX1JIT05FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldAotIyBDT05GSUdfU0lCWVRFX0xJVFRMRVNVUiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0NSSE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19TSUJZVEVfUkhPTkUgaXMgbm90IHNldAorQ09ORklHX1NJQllURV9TV0FSTT15CisjIENPTkZJR19TSUJZVEVfTElUVExFU1VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9TRU5UT1NBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NJQllURV9CSUdTVVIgaXMgbm90IHNldAogIyBDT05GSUdfU05JX1JNIGlzIG5vdCBzZXQKICMgQ09ORklHX1RPU0hJQkFfSk1SMzkyNyBpcyBub3Qgc2V0CiAjIENPTkZJR19UT1NISUJBX1JCVFg0OTI3IGlzIG5vdCBzZXQKICMgQ09ORklHX1RPU0hJQkFfUkJUWDQ5MzggaXMgbm90IHNldAorIyBDT05GSUdfV1JfUFBNQyBpcyBub3Qgc2V0CiBDT05GSUdfU0lCWVRFX1NCMTI1MD15CiBDT05GSUdfU0lCWVRFX1NCMXh4eF9TT0M9eQotQ09ORklHX0NQVV9TQjFfUEFTU18xPXkKKyMgQ09ORklHX0NQVV9TQjFfUEFTU18xIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TQjFfUEFTU18yXzEyNTAgaXMgbm90IHNldAotIyBDT05GSUdfQ1BVX1NCMV9QQVNTXzJfMiBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX1NCMV9QQVNTXzJfMj15CiAjIENPTkZJR19DUFVfU0IxX1BBU1NfNCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU0IxX1BBU1NfMl8xMTJ4IGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TQjFfUEFTU18zIGlzIG5vdCBzZXQKIENPTkZJR19TSUJZVEVfSEFTX0xEVD15CitDT05GSUdfU0lCWVRFX0VOQUJMRV9MRFRfSUZfUENJPXkKICMgQ09ORklHX1NJTVVMQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0IxX0NFWF9BTFdBWVNfRkFUQUwgaXMgbm90IHNldAogIyBDT05GSUdfU0IxX0NFUlJfU1RBTEwgaXMgbm90IHNldApAQCAtNjksMjAgKzYwLDMyIEBACiAjIENPTkZJR19TSUJZVEVfQ0ZFX0NPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0JVU19XQVRDSEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9UQlBST0YgaXMgbm90IHNldAorQ09ORklHX1NJQllURV9IQVNfWkJVU19QUk9GSUxJTkc9eQogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFJPRklMRT15CiBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKIENPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQogQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CiAjIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlEgaXMgbm90IHNldAorQ09ORklHX0NFVlRfU0IxMjUwPXkKK0NPTkZJR19DU1JDX1NCMTI1MD15CitDT05GSUdfQ0ZFPXkKIENPTkZJR19ETUFfQ09IRVJFTlQ9eQorQ09ORklHX0VBUkxZX1BSSU5USz15CitDT05GSUdfU1lTX0hBU19FQVJMWV9QUklOVEs9eQorIyBDT05GSUdfSE9UUExVR19DUFUgaXMgbm90IHNldAorIyBDT05GSUdfTk9fSU9QT1JUIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfQklHX0VORElBTj15CiAjIENPTkZJR19DUFVfTElUVExFX0VORElBTiBpcyBub3Qgc2V0CiBDT05GSUdfU1lTX1NVUFBPUlRTX0JJR19FTkRJQU49eQogQ09ORklHX1NZU19TVVBQT1JUU19MSVRUTEVfRU5ESUFOPXkKK0NPTkZJR19JUlFfQ1BVPXkKIENPTkZJR19TV0FQX0lPX1NQQUNFPXkKIENPTkZJR19CT09UX0VMRjMyPXkKIENPTkZJR19NSVBTX0wxX0NBQ0hFX1NISUZUPTUKQEAgLTkwLDYgKzkzLDcgQEAKICMKICMgQ1BVIHNlbGVjdGlvbgogIworIyBDT05GSUdfQ1BVX0xPT05HU09OMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfTUlQUzMyX1IxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9NSVBTMzJfUjIgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX01JUFM2NF9SMSBpcyBub3Qgc2V0CkBAIC0xMzAsOCArMTM0LDcgQEAKIENPTkZJR19NSVBTX01UX0RJU0FCTEVEPXkKICMgQ09ORklHX01JUFNfTVRfU01QIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfTVRfU01UQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSVBTX1ZQRV9MT0FERVIgaXMgbm90IHNldAotQ09ORklHX1NCMV9QQVNTXzFfV09SS0FST1VORFM9eQorQ09ORklHX1NCMV9QQVNTXzJfV09SS0FST1VORFM9eQogQ09ORklHX0NQVV9IQVNfTExTQz15CiBDT05GSUdfQ1BVX0hBU19TWU5DPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKQEAgLTE0MCw2ICsxNDMsNyBAQAogQ09ORklHX0NQVV9TVVBQT1JUU19ISUdITUVNPXkKIENPTkZJR19TWVNfU1VQUE9SVFNfSElHSE1FTT15CiBDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldApAQCAtMTQ3LDEzICsxNTEsMTkgQEAKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogQ09ORklHX1JFU09VUkNFU182NEJJVD15Ci1DT05GSUdfWk9ORV9ETUFfRkxBRz0xCitDT05GSUdfWk9ORV9ETUFfRkxBRz0wCitDT05GSUdfVklSVF9UT19CVVM9eQogQ09ORklHX1NNUD15CiBDT05GSUdfU1lTX1NVUFBPUlRTX1NNUD15CiBDT05GSUdfTlJfQ1BVU19ERUZBVUxUXzI9eQogQ09ORklHX05SX0NQVVM9MgorQ09ORklHX1RJQ0tfT05FU0hPVD15CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKICMgQ09ORklHX0haXzQ4IGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMjggaXMgbm90IHNldApAQCAtMTY2LDM4ICsxNzYsNDkgQEAKIENPTkZJR19QUkVFTVBUX05PTkU9eQogIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUFJFRU1QVF9CS0w9eQogIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorQ09ORklHX1NFQ0NPTVA9eQogQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKIENPTkZJR19ERUZDT05GSUdfTElTVD0iL2xpYi9tb2R1bGVzLyRVTkFNRV9SRUxFQVNFLy5jb25maWciCiAKICMKLSMgQ29kZSBtYXR1cml0eSBsZXZlbCBvcHRpb25zCisjIEdlbmVyYWwgc2V0dXAKICMKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0xPQ0tfS0VSTkVMPXkKIENPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKLQotIwotIyBHZW5lcmFsIHNldHVwCi0jCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCiBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQotIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKIENPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVRTX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE1CiBDT05GSUdfQ0dST1VQUz15CisjIENPTkZJR19DR1JPVVBfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfQ0dST1VQX05TIGlzIG5vdCBzZXQKIENPTkZJR19DUFVTRVRTPXkKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKKyMgQ09ORklHX1JFU09VUkNFX0NPVU5URVJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorIyBDT05GSUdfUFJPQ19QSURfQ1BVU0VUIGlzIG5vdCBzZXQKIENPTkZJR19SRUxBWT15CitDT05GSUdfTkFNRVNQQUNFUz15CisjIENPTkZJR19VVFNfTlMgaXMgbm90IHNldAorIyBDT05GSUdfSVBDX05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAorIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogIyBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkUgaXMgbm90IHNldAogQ09ORklHX1NZU0NUTD15CkBAIC0yMDksMjAgKzIzMCwyOSBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKK0NPTkZJR19BTk9OX0lOT0RFUz15CiBDT05GSUdfRVBPTEw9eQorQ09ORklHX1NJR05BTEZEPXkKK0NPTkZJR19USU1FUkZEPXkKK0NPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15Ci1DT05GSUdfU0xBQj15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQorQ09ORklHX1NMQUI9eQorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CisjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJLRVJTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0hBVkVfS1BST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0tSRVRQUk9CRVMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAotCi0jCi0jIExvYWRhYmxlIG1vZHVsZSBzdXBwb3J0Ci0jCiBDT05GSUdfTU9EVUxFUz15CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKQEAgLTIzMCwxMiArMjYwLDEwIEBACiBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMPXkKIENPTkZJR19LTU9EPXkKIENPTkZJR19TVE9QX01BQ0hJTkU9eQotCi0jCi0jIEJsb2NrIGxheWVyCi0jCiBDT05GSUdfQkxPQ0s9eQogIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9CU0c9eQorQ09ORklHX0JMT0NLX0NPTVBBVD15CiAKICMKICMgSU8gU2NoZWR1bGVycwpAQCAtMjQ5LDIyICsyNzcsMTkgQEAKICMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCitDT05GSUdfQ0xBU1NJQ19SQ1U9eQogCiAjCiAjIEJ1cyBvcHRpb25zIChQQ0ksIFBDTUNJQSwgRUlTQSwgSVNBLCBUQykKICMKIENPTkZJR19IV19IQVNfUENJPXkKIENPTkZJR19QQ0k9eQorQ09ORklHX1BDSV9ET01BSU5TPXkKKyMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDSV9MRUdBQ1kgaXMgbm90IHNldAogQ09ORklHX01NVT15Ci0KLSMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAotIworQ09ORklHX1pPTkVfRE1BMzI9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKLQotIwotIyBQQ0kgSG90cGx1ZyBTdXBwb3J0Ci0jCiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CiAKICMKQEAgLTI3Miw3ICsyOTcsNiBAQAogIwogQ09ORklHX0JJTkZNVF9FTEY9eQogIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotIyBDT05GSUdfQlVJTERfRUxGNjQgaXMgbm90IHNldAogQ09ORklHX01JUFMzMl9DT01QQVQ9eQogQ09ORklHX0NPTVBBVD15CiBDT05GSUdfU1lTVklQQ19DT01QQVQ9eQpAQCAtMjg2LDcgKzMxMCw2IEBACiBDT05GSUdfUE09eQogIyBDT05GSUdfUE1fTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BNX1NZU0ZTX0RFUFJFQ0FURUQgaXMgbm90IHNldAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Niw3ICszMTksNiBAQAogIwogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKLSMgQ09ORklHX05FVERFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19QQUNLRVQ9eQogQ09ORklHX1BBQ0tFVF9NTUFQPXkKIENPTkZJR19VTklYPXkKQEAgLTMwNCw2ICszMjYsNyBAQAogQ09ORklHX1hGUk1fVVNFUj1tCiAjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAogQ09ORklHX1hGUk1fTUlHUkFURT15CisjIENPTkZJR19YRlJNX1NUQVRJU1RJQ1MgaXMgbm90IHNldAogQ09ORklHX05FVF9LRVk9eQogQ09ORklHX05FVF9LRVlfTUlHUkFURT15CiBDT05GSUdfSU5FVD15CkBAIC0zMjYsNiArMzQ5LDcgQEAKIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9bQogQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD1tCiBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVD1tCitDT05GSUdfSU5FVF9MUk89bQogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0zMzMsMjQgKzM1NywxNSBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogQ09ORklHX1RDUF9NRDVTSUc9eQogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogQ09ORklHX05FVFdPUktfU0VDTUFSSz15CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAotCi0jCi0jIERDQ1AgQ29uZmlndXJhdGlvbiAoRVhQRVJJTUVOVEFMKQotIwogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NUUCBDb25maWd1cmF0aW9uIChFWFBFUklNRU5UQUwpCi0jCi0jIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKLQotIwotIyBUSVBDIENvbmZpZ3VyYXRpb24gKEVYUEVSSU1FTlRBTCkKLSMKK0NPTkZJR19JUF9TQ1RQPW0KKyMgQ09ORklHX1NDVFBfREJHX01TRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1RQX0RCR19PQkpDTlQgaXMgbm90IHNldAorIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAorIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAorQ09ORklHX1NDVFBfSE1BQ19NRDU9eQogIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVE0gaXMgbm90IHNldAogIyBDT05GSUdfQlJJREdFIGlzIG5vdCBzZXQKQEAgLTM2MywyNiArMzc4LDUyIEBACiAjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKICMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKLQotIwotIyBRb1MgYW5kL29yIGZhaXIgcXVldWVpbmcKLSMKICMgQ09ORklHX05FVF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1NDSF9GSUZPPXkKIAogIwogIyBOZXR3b3JrIHRlc3RpbmcKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAorIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorCisjCisjIFdpcmVsZXNzCisjCitDT05GSUdfQ0ZHODAyMTE9bQorQ09ORklHX05MODAyMTE9eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfTUFDODAyMTE9bQorCisjCisjIFJhdGUgY29udHJvbCBhbGdvcml0aG0gc2VsZWN0aW9uCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9OT05FIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RpbmcgJ3knIGZvciBhbiBhbGdvcml0aG0gd2lsbAorIworCisjCisjIGJ1aWxkIHRoZSBhbGdvcml0aG0gaW50byBtYWM4MDIxMS4KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJwaWQiCitDT05GSUdfTUFDODAyMTFfUkNfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX01FU0ggaXMgbm90IHNldAorIyBDT05GSUdfTUFDODAyMTFfREVCVUdfUEFDS0VUX0FMSUdOTUVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSUVFRTgwMjExPW0KICMgQ09ORklHX0lFRUU4MDIxMV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQotQ09ORklHX0lFRUU4MDIxMV9TT0ZUTUFDPW0KLSMgQ09ORklHX0lFRUU4MDIxMV9TT0ZUTUFDX0RFQlVHIGlzIG5vdCBzZXQKLUNPTkZJR19XSVJFTEVTU19FWFQ9eQorQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQPW0KK0NPTkZJR19SRktJTEw9bQorIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKIAogIwogIyBEZXZpY2UgRHJpdmVycwpAQCAtMzkxLDM0ICs0MzIsMTUgQEAKICMKICMgR2VuZXJpYyBEcml2ZXIgT3B0aW9ucwogIworQ09ORklHX1VFVkVOVF9IRUxQRVJfUEFUSD0iL3NiaW4vaG90cGx1ZyIKIENPTkZJR19TVEFOREFMT05FPXkKIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEPXkKIENPTkZJR19GV19MT0FERVI9bQogIyBDT05GSUdfU1lTX0hZUEVSVklTT1IgaXMgbm90IHNldAotCi0jCi0jIENvbm5lY3RvciAtIHVuaWZpZWQgdXNlcnNwYWNlIDwtPiBrZXJuZWxzcGFjZSBsaW5rZXIKLSMKIENPTkZJR19DT05ORUNUT1I9bQotCi0jCi0jIE1lbW9yeSBUZWNobm9sb2d5IERldmljZXMgKE1URCkKLSMKICMgQ09ORklHX01URCBpcyBub3Qgc2V0Ci0KLSMKLSMgUGFyYWxsZWwgcG9ydCBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBQbHVnIGFuZCBQbGF5IHN1cHBvcnQKLSMKLSMgQ09ORklHX1BOUEFDUEkgaXMgbm90IHNldAotCi0jCi0jIEJsb2NrIGRldmljZXMKLSMKK0NPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19DUFFfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9DSVNTX0RBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfREFDOTYwIGlzIG5vdCBzZXQKQEAgLTQyNyw0OSArNDQ5LDc3IEBACiAjIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9TWDggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT05MjIwCi1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKLUNPTkZJR19CTEtfREVWX0lOSVRSRD15CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiBDT05GSUdfQ0RST01fUEtUQ0RWRD1tCiBDT05GSUdfQ0RST01fUEtUQ0RWRF9CVUZGRVJTPTgKICMgQ09ORklHX0NEUk9NX1BLVENEVkRfV0NBQ0hFIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfT1ZFUl9FVEg9bQotCi0jCi0jIE1pc2MgZGV2aWNlcwotIworQ09ORklHX01JU0NfREVWSUNFUz15CisjIENPTkZJR19QSEFOVE9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiBDT05GSUdfU0dJX0lPQzQ9bQogIyBDT05GSUdfVElGTV9DT1JFIGlzIG5vdCBzZXQKLQotIwotIyBBVEEvQVRBUEkvTUZNL1JMTCBzdXBwb3J0Ci0jCisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKIENPTkZJR19JREU9eQogQ09ORklHX0lERV9NQVhfSFdJRlM9NAogQ09ORklHX0JMS19ERVZfSURFPXkKIAogIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKKyMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwogIwogIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVESVNLPXkKICMgQ09ORklHX0lERURJU0tfTVVMVElfTU9ERSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVDRD15CitDT05GSUdfQkxLX0RFVl9JREVDRF9WRVJCT1NFX0VSUk9SUz15CiBDT05GSUdfQkxLX0RFVl9JREVUQVBFPXkKIENPTkZJR19CTEtfREVWX0lERUZMT1BQWT15CiAjIENPTkZJR19JREVfVEFTS19JT0NUTCBpcyBub3Qgc2V0CitDT05GSUdfSURFX1BST0NfRlM9eQogCiAjCiAjIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKICMKLUNPTkZJR19JREVfR0VORVJJQz15Ci0jIENPTkZJR19CTEtfREVWX0lERVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19JREVfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1BMQVRGT1JNIGlzIG5vdCBzZXQKKworIworIyBQQ0kgSURFIGNoaXBzZXRzIHN1cHBvcnQKKyMKKyMgQ09ORklHX0JMS19ERVZfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX09QVEk2MjEgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9BRUM2MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0FNRDc0WFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9UUklGTEVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfQ1k4MkM2OTMgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9IUFQzNFggaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9IUFQzNjYgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfU0MxMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lUODIxMyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lUODIxWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05TODc0MTUgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9PTEQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9QREMyMDJYWF9ORVcgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TVldLUyBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1NJSU1BR0UgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9TTEM5MEU2NiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1RSTTI5MCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lERV9TV0FSTT15Ci0jIENPTkZJR19JREVfQVJNIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSURFRE1BIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERURNQV9BVVRPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNDc3LDg5ICs1MjcsNjggQEAKICMKIENPTkZJR19SQUlEX0FUVFJTPW0KICMgQ09ORklHX1NDU0kgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9ETUEgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9ORVRMSU5LIGlzIG5vdCBzZXQKLQotIwotIyBTZXJpYWwgQVRBIChwcm9kKSBhbmQgUGFyYWxsZWwgQVRBIChleHBlcmltZW50YWwpIGRyaXZlcnMKLSMKICMgQ09ORklHX0FUQSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGktZGV2aWNlIHN1cHBvcnQgKFJBSUQgYW5kIExWTSkKLSMKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKLQotIwotIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0Ci0jCiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCiAjCiAjIElFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQKICMKKyMgQ09ORklHX0ZJUkVXSVJFIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKLQotIwotIyBJMk8gZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0kyTyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogQ09ORklHX05FVERFVklDRVM9eQorQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRT15CiAjIENPTkZJR19EVU1NWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CT05ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNWTEFOPW0KICMgQ09ORklHX0VRVUFMSVpFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UVU4gaXMgbm90IHNldAotCi0jCi0jIEFSQ25ldCBkZXZpY2VzCi0jCisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0Ci0KLSMKLSMgUEhZIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfUEhZTElCPW0KK0NPTkZJR19QSFlMSUI9eQogCiAjCiAjIE1JSSBQSFkgZGV2aWNlIGRyaXZlcnMKICMKLUNPTkZJR19NQVJWRUxMX1BIWT1tCi1DT05GSUdfREFWSUNPTV9QSFk9bQotQ09ORklHX1FTRU1JX1BIWT1tCi1DT05GSUdfTFhUX1BIWT1tCi1DT05GSUdfQ0lDQURBX1BIWT1tCi1DT05GSUdfVklURVNTRV9QSFk9bQotQ09ORklHX1NNU0NfUEhZPW0KLSMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKK0NPTkZJR19CUk9BRENPTV9QSFk9eQorIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUFMVEVLX1BIWSBpcyBub3Qgc2V0CiAjIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAotCi0jCi0jIEV0aGVybmV0ICgxMCBvciAxMDBNYml0KQotIworIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKICMgQ09ORklHX0hBUFBZTUVBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAogIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVkVORE9SXzNDT00gaXMgbm90IHNldAogIyBDT05GSUdfRE05MDAwIGlzIG5vdCBzZXQKLQotIwotIyBUdWxpcCBmYW1pbHkgbmV0d29yayBkZXZpY2Ugc3VwcG9ydAotIwogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUENJIGlzIG5vdCBzZXQKLQotIwotIyBFdGhlcm5ldCAoMTAwMCBNYml0KQotIworIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKK0NPTkZJR19ORVRERVZfMTAwMD15CiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKQEAgLTU2OCw1MyArNTk3LDcwIEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAorIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKLUNPTkZJR19RTEEzWFhYPW0KKyMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci0KLSMKLSMgRXRoZXJuZXQgKDEwMDAwIE1iaXQpCi0jCitDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotQ09ORklHX0NIRUxTSU9fVDM9bQorIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0CisjIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKICMgQ09ORklHX1MySU8gaXMgbm90IHNldAogIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotQ09ORklHX05FVFhFTl9OSUM9bQotCi0jCi0jIFRva2VuIFJpbmcgZGV2aWNlcwotIworIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0CisjIENPTkZJR19OSVUgaXMgbm90IHNldAorIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CisjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKLSMgV2lyZWxlc3MgTEFOIChub24taGFtcmFkaW8pCisjIFdpcmVsZXNzIExBTgogIwotIyBDT05GSUdfTkVUX1JBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dMQU5fODAyMTE9eQorIyBDT05GSUdfSVBXMjEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMjAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xJQkVSVEFTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFUk1FUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE1FTCBpcyBub3Qgc2V0CisjIENPTkZJR19QUklTTTU0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9aRDEyMDEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX05FVF9STkRJU19XTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODAgaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4NyBpcyBub3Qgc2V0CisjIENPTkZJR19BRE04MjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1A1NF9DT01NT04gaXMgbm90IHNldAorIyBDT05GSUdfQVRINUsgaXMgbm90IHNldAorIyBDT05GSUdfSVdMQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfSVdMNDk2NSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0wzOTQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPU1RBUCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDMgaXMgbm90IHNldAorIyBDT05GSUdfQjQzTEVHQUNZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1pEMTIxMVJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUMlgwMCBpcyBub3Qgc2V0CiAKICMKLSMgV2FuIGludGVyZmFjZXMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKICMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldAotCi0jCi0jIElTRE4gc3Vic3lzdGVtCi0jCiAjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKLQotIwotIyBUZWxlcGhvbnkgU3VwcG9ydAotIwogIyBDT05GSUdfUEhPTkUgaXMgbm90IHNldAogCiAjCkBAIC02MzcsMjQgKzY4Myw4IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0Ci1DT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEPXkKLSMgQ09ORklHX0NPTVBVVE9ORSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST0NLRVRQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NZQ0xBREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKLSMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAotIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKLUNPTkZJR19NT1hBX1NNQVJUSU9fTkVXPW0KLSMgQ09ORklHX0lTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWU5DTElOS01QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTkNMSU5LX0dUIGlzIG5vdCBzZXQKLSMgQ09ORklHX05fSERMQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUEVDSUFMSVggaXMgbm90IHNldAotIyBDT05GSUdfU1ggaXMgbm90IHNldAotIyBDT05GSUdfUklPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NUQUxEUlYgaXMgbm90IHNldAotQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlQ9eQotQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlRfQ09OU09MRT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIAogIwogIyBTZXJpYWwgZHJpdmVycwpAQCAtNjY0LDM3ICs2OTQsMjIgQEAKICMKICMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAogIworQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlQ9eQorQ09ORklHX1NFUklBTF9TQjEyNTBfRFVBUlRfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQogIyBDT05GSUdfU0VSSUFMX0pTTSBpcyBub3Qgc2V0CiBDT05GSUdfVU5JWDk4X1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlTPXkKIENPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgotCi0jCi0jIElQTUkKLSMKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgV2F0Y2hkb2cgQ2FyZHMKLSMKLSMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVEMgaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVExLIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKLQotIwotIyBUUE0gZGV2aWNlcwotIwogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0KLSMKLSMgSTJDIHN1cHBvcnQKLSMKK0NPTkZJR19ERVZQT1JUPXkKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0CiAKICMKQEAgLTcwMiwxMDkgKzcxNywxMzkgQEAKICMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKLQotIwotIyBEYWxsYXMncyAxLXdpcmUgYnVzCi0jCiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiAKICMKLSMgSGFyZHdhcmUgTW9uaXRvcmluZyBzdXBwb3J0CisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQogIwotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotIyBDT05GSUdfSFdNT05fVklEIGlzIG5vdCBzZXQKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKLQotIwotIyBEaWdpdGFsIFZpZGVvIEJyb2FkY2FzdGluZyBEZXZpY2VzCi0jCi0jIENPTkZJR19EVkIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCi0jIENPTkZJR19GSVJNV0FSRV9FRElEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQiBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKICMgU291bmQKICMKICMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKLQotIwotIyBVU0Igc3VwcG9ydAotIworQ09ORklHX1VTQl9TVVBQT1JUPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQotIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKK0NPTkZJR19VU0I9eQorIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucworIworQ09ORklHX1VTQl9ERVZJQ0VGUz15CitDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CisjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NVU1BFTkQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFUlNJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCisjCisjIENPTkZJR19VU0JfRUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfT0hDSV9IQ0Q9eQorIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX09IQ0lfTElUVExFX0VORElBTj15CisjIENPTkZJR19VU0JfVUhDSV9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKKworIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKIAogIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKKyMgbWF5IGFsc28gYmUgbmVlZGVkOyBzZWUgVVNCX1NUT1JBR0UgSGVscCBmb3IgbW9yZSBpbmZvcm1hdGlvbgogIworIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW1hZ2luZyBkZXZpY2VzCisjCisjIENPTkZJR19VU0JfTURDODAwIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfTU9OPXkKKworIworIyBVU0IgcG9ydCBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKKworIworIyBVU0IgTWlzY2VsbGFuZW91cyBkcml2ZXJzCisjCisjIENPTkZJR19VU0JfRU1JNjIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0VNSTI2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BRFVUVVggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FVRVJTV0FMRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfUklPNTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUdPVE9XRVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQkVSUllfQ0hBUkdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZUFJFU1NfQ1k3QzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9DWVRIRVJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9QSElER0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JRE1PVVNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9GVERJX0VMQU4gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FQUExFRElTUExBWSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0Ci0KLSMKLSMgTU1DL1NEIENhcmQgc3VwcG9ydAotIwogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIworIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAotCi0jCi0jIExFRCBkcml2ZXJzCi0jCi0KLSMKLSMgTEVEIFRyaWdnZXJzCi0jCi0KLSMKLSMgSW5maW5pQmFuZCBzdXBwb3J0Ci0jCiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKLQotIwotIyBFREFDIC0gZXJyb3IgZGV0ZWN0aW9uIGFuZCByZXBvcnRpbmcgKFJBUykgKEVYUEVSSU1FTlRBTCkKLSMKLQotIwotIyBSZWFsIFRpbWUgQ2xvY2sKLSMKK0NPTkZJR19SVENfTElCPXkKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0CisjIFVzZXJzcGFjZSBJL08KICMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBBdXhpbGlhcnkgRGlzcGxheSBzdXBwb3J0Ci0jCi0KLSMKLSMgVmlydHVhbGl6YXRpb24KLSMKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC04MjMsMTUgKzg2OCwxNCBAQAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlVTRV9GUz1tCitDT05GSUdfR0VORVJJQ19BQ0w9eQogCiAjCiAjIENELVJPTS9EVkQgRmlsZXN5c3RlbXMKQEAgLTg1Myw5ICs4OTcsOSBAQAogQ09ORklHX1BST0NfS0NPUkU9eQogQ09ORklHX1BST0NfU1lTQ1RMPXkKIENPTkZJR19TWVNGUz15Ci0jIENPTkZJR19UTVBGUyBpcyBub3Qgc2V0CitDT05GSUdfVE1QRlM9eQorQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAotQ09ORklHX1JBTUZTPXkKIENPTkZJR19DT05GSUdGU19GUz1tCiAKICMKQEAgLTg3MSwxNCArOTE1LDEzIEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CiBDT05GSUdfTkZTX0ZTPXkKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CkBAIC04OTAsNiArOTMzLDcgQEAKIENPTkZJR19MT0NLRF9WND15CiBDT05GSUdfTkZTX0NPTU1PTj15CiBDT05GSUdfU1VOUlBDPXkKKyMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAogIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKICMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAogIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKQEAgLTg5Nyw0NSArOTQxLDI5IEBACiAjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfOVBfRlMgaXMgbm90IHNldAogCiAjCiAjIFBhcnRpdGlvbiBUeXBlcwogIwogIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKIENPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCiAjIENPTkZJR19OTFMgaXMgbm90IHNldAotCi0jCi0jIERpc3RyaWJ1dGVkIExvY2sgTWFuYWdlcgotIwogQ09ORklHX0RMTT1tCi1DT05GSUdfRExNX1RDUD15Ci0jIENPTkZJR19ETE1fU0NUUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ETE1fREVCVUcgaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTUKLUNPTkZJR19DUk9TU0NPTVBJTEU9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ01ETElORT0iIgogQ09ORklHX1NZU19TVVBQT1JUU19LR0RCPXkKICMgQ09ORklHX1NCMVhYWF9DT1JFTElTIGlzIG5vdCBzZXQKQEAgLTk0NiwxMyArOTc0LDEyIEBACiBDT05GSUdfS0VZUz15CiBDT05GSUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAotCi0jCi0jIENyeXB0b2dyYXBoaWMgb3B0aW9ucwotIworIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CitDT05GSUdfQ1JZUFRPX0FFQUQ9bQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9bQorQ09ORklHX0NSWVBUT19TRVFJVj1tCiBDT05GSUdfQ1JZUFRPX0hBU0g9eQogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKIENPTkZJR19DUllQVE9fSE1BQz15CkBAIC05NzAsNiArOTk3LDExIEBACiBDT05GSUdfQ1JZUFRPX0NCQz1tCiBDT05GSUdfQ1JZUFRPX1BDQkM9bQogQ09ORklHX0NSWVBUT19MUlc9bQorQ09ORklHX0NSWVBUT19YVFM9bQorQ09ORklHX0NSWVBUT19DVFI9bQorQ09ORklHX0NSWVBUT19HQ009bQorQ09ORklHX0NSWVBUT19DQ009bQorQ09ORklHX0NSWVBUT19DUllQVEQ9bQogQ09ORklHX0NSWVBUT19ERVM9bQogQ09ORklHX0NSWVBUT19GQ1JZUFQ9bQogQ09ORklHX0NSWVBUT19CTE9XRklTSD1tCkBAIC05ODMsMTUgKzEwMTUsMTYgQEAKIENPTkZJR19DUllQVE9fQVJDND1tCiBDT05GSUdfQ1JZUFRPX0tIQVpBRD1tCiBDT05GSUdfQ1JZUFRPX0FOVUJJUz1tCitDT05GSUdfQ1JZUFRPX1NFRUQ9bQorQ09ORklHX0NSWVBUT19TQUxTQTIwPW0KIENPTkZJR19DUllQVE9fREVGTEFURT1tCiBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDPW0KIENPTkZJR19DUllQVE9fQ1JDMzJDPW0KIENPTkZJR19DUllQVE9fQ0FNRUxMSUE9bQogIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotCi0jCi0jIEhhcmR3YXJlIGNyeXB0byBkZXZpY2VzCi0jCitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorQ09ORklHX0NSWVBUT19MWk89bQorIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCkBAIC05OTksMTAgKzEwMzIsMTUgQEAKIENPTkZJR19CSVRSRVZFUlNFPXkKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDMTY9bQorIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKIENPTkZJR19DUkMzMj15CisjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQogQ09ORklHX1pMSUJfSU5GTEFURT1tCiBDT05GSUdfWkxJQl9ERUZMQVRFPW0KK0NPTkZJR19MWk9fQ09NUFJFU1M9bQorQ09ORklHX0xaT19ERUNPTVBSRVNTPW0KIENPTkZJR19QTElTVD15CiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKK0NPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIxOV9kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyMTlfZGVmY29uZmlnCmluZGV4IGFmODJlMWEuLjhkZDNhZTMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIxOV9kZWZjb25maWcKKysrIGIvYXJjaC9taXBzL2NvbmZpZ3MvdGIwMjE5X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMy1yYzIKLSMgV2VkIEF1ZyAgOCAxNjoxMTo0NyAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIE1vbiBNYXkgMTIgMTE6NTQ6NTEgMjAwOAogIwogQ09ORklHX01JUFM9eQogCkBAIC0xMCw5ICsxMCwxMSBAQAogIwogIyBDT05GSUdfTUFDSF9BTENIRU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBU0xFUl9FWENJVEUgaXMgbm90IHNldAorIyBDT05GSUdfQkNNNDdYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0RFQ1NUQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9KQVpaIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU0FUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xFTU9URV9GVUxPTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19BVExBUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX01BTFRBIGlzIG5vdCBzZXQKQEAgLTI2LDYgKzI4LDcgQEAKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldApAQCAtNTMsMTIgKzU2LDE3IEBACiBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15CiBDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlE9eQorQ09ORklHX0NFVlRfUjRLPXkKK0NPTkZJR19DU1JDX1I0Sz15CiBDT05GSUdfRE1BX05PTkNPSEVSRU5UPXkKIENPTkZJR19ETUFfTkVFRF9QQ0lfTUFQX1NUQVRFPXkKICMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMjEsNyBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CkBAIC0xMjAsMTAgKzEyOSwxNiBAQAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiAjIENPTkZJR19IWl80OCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTI4IGlzIG5vdCBzZXQKQEAgLTE1NiwyMyArMTcxLDI5IEBACiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA2LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQyLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY2LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc4LDYgKzMwOCw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0yODUsMTUgKzMxNiwxMCBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX01ENSBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldApAQCAtMzA2LDEwICszMzIsNiBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAogCiAjCkBAIC0zMTcsNiArMzM5LDcgQEAKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMzM5LDYgKzM2Miw3IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPW0KQEAgLTM2MCwxMCArMzg0LDExIEBACiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1hJUD15CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKICMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKQEAgLTM3NSwxMCArNDAwLDYgQEAKICMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKICMKQEAgLTM5NCw2ICs0MTUsNyBAQAogIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAogIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAogIyBDT05GSUdfQVJDTkVUIGlzIG5vdCBzZXQKIENPTkZJR19QSFlMSUI9bQogCkBAIC00MDksNyArNDMxLDggQEAKIENPTkZJR19TTVNDX1BIWT1tCiAjIENPTkZJR19CUk9BRENPTV9QSFkgaXMgbm90IHNldAogIyBDT05GSUdfSUNQTFVTX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19GSVhFRF9QSFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVBTFRFS19QSFkgaXMgbm90IHNldAorIyBDT05GSUdfTURJT19CSVRCQU5HIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQogQ09ORklHX01JST15CiAjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKQEAgLTQyMCw2ICs0NDMsMTAgQEAKICMgQ09ORklHX0RNOTAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfVFVMSVAgaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUENJPXkKICMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAogIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldApAQCAtNDI3LDcgKzQ1NCw2IEBACiAjIENPTkZJR19CNDQgaXMgbm90IHNldAogIyBDT05GSUdfRk9SQ0VERVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDMzU4MTUgaXMgbm90IHNldAotIyBDT05GSUdfREdSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0CkBAIC00MzksNiArNDY1LDcgQEAKICMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAogIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CkBAIC00NTEsNiArNDc4LDEwIEBACiAjIENPTkZJR19BQ0VOSUMgaXMgbm90IHNldAogIyBDT05GSUdfREwySyBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKQEAgLTQ3Miw2ICs1MDMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTQ4MCwxNCArNTEyLDEyIEBACiAjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTUwNiw3ICs1MzYsNiBAQAogIwogIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNTMzLDcgKzU2Miw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTU1Miw1MiArNTgzLDYyIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiBDT05GSUdfR1BJT19UQjAyMTk9eQotIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKIENPTkZJR19HUElPX1ZSNDFYWD15CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAogCiAjCiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIworIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CiAKICMKICMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAogIwogIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJREVPX09VVFBVVF9DT05UUk9MIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKQEAgLTYxNiw2ICs2NTcsNyBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9bQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtNjI0LDE1ICs2NjYsMTggQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPW0KLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9bQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC02NjUsMTAgKzcxMCw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtNjk0LDE3ICs3MzUsMTEgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKQEAgLTcyOSw5ICs3NjQsMTAgQEAKICMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKICMKICMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC03NDAsMjMgKzc3Niw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogQ09ORklHX1JUQ19EUlZfVlI0MVhYPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03NzEsMjAgKzc5MCwxNiBAQAogIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19KQkQ9eQotIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19GU19NQkNBQ0hFPXkKICMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19ST01GU19GUz1tCitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKICMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKICMgQ09ORklHX0FVVE9GU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQVVUT0ZTNF9GUz15CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTgxMyw3ICs4MjgsNiBAQAogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTgyOCwyNCArODQyLDIxIEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0NSQU1GUz1tCiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19GUz1tCiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0Ci0KLSMKLSMgTmV0d29yayBGaWxlIFN5c3RlbXMKLSMKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKIENPTkZJR19ORlNfRlM9eQogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogQ09ORklHX05GU0Q9eQogQ09ORklHX05GU0RfVjM9eQogIyBDT05GSUdfTkZTRF9WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CiBDT05GSUdfTE9DS0RfVjQ9eQpAQCAtODY2LDQ3ICs4NzcsMzggQEAKICMKICMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIwogIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CiAKICMKLSMgUHJvZmlsaW5nIHN1cHBvcnQKLSMKLSMgQ09ORklHX1BST0ZJTElORyBpcyBub3Qgc2V0Ci0KLSMKICMgS2VybmVsIGhhY2tpbmcKICMKIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JPU1NDT01QSUxFPXkKLUNPTkZJR19DTURMSU5FPSJtZW09NjRNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCBpcD1hbnkgcm9vdD0vZGV2L25mcyIKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorQ09ORklHX0NNRExJTkU9ImNjYT0zIG1lbT02NE0gY29uc29sZT10dHlWUjAsMTE1MjAwIGlwPWFueSByb290PS9kZXYvbmZzIgogCiAjCiAjIFNlY3VyaXR5IG9wdGlvbnMKICMKICMgQ09ORklHX0tFWVMgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIyNl9kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyMjZfZGVmY29uZmlnCmluZGV4IGE5NTM4NWIuLjJiYTI0MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDIyNl9kZWZjb25maWcKKysrIGIvYXJjaC9taXBzL2NvbmZpZ3MvdGIwMjI2X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yMy1yYzIKLSMgVGh1IEF1ZyAgOSAxMToxNjo1NSAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIE1vbiBNYXkgMTIgMTE6NTM6NTQgMjAwOAogIwogQ09ORklHX01JUFM9eQogCkBAIC0xMCw5ICsxMCwxMSBAQAogIwogIyBDT05GSUdfTUFDSF9BTENIRU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JBU0xFUl9FWENJVEUgaXMgbm90IHNldAorIyBDT05GSUdfQkNNNDdYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNIX0RFQ1NUQVRJT04gaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9KQVpaIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBU0FUIGlzIG5vdCBzZXQKICMgQ09ORklHX0xFTU9URV9GVUxPTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19BVExBUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVBTX01BTFRBIGlzIG5vdCBzZXQKQEAgLTI2LDYgKzI4LDcgQEAKICMgQ09ORklHX1BNQ19ZT1NFTUlURSBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAyNyBpcyBub3Qgc2V0CisjIENPTkZJR19TR0lfSVAyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSVAzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ1JISU5FIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJQllURV9DQVJNRUwgaXMgbm90IHNldApAQCAtNTMsMTIgKzU2LDE3IEBACiBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSz15CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVUFBPUlRTX09QUk9GSUxFPXkKIENPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CiBDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15CiBDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSPXkKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTX05PX19ET19JUlE9eQorQ09ORklHX0NFVlRfUjRLPXkKK0NPTkZJR19DU1JDX1I0Sz15CiBDT05GSUdfRE1BX05PTkNPSEVSRU5UPXkKIENPTkZJR19ETUFfTkVFRF9QQ0lfTUFQX1NUQVRFPXkKICMgQ09ORklHX0hPVFBMVUdfQ1BVIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMjEsNyBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CiBDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0CkBAIC0xMjAsMTAgKzEyOSwxNiBAQAogQ09ORklHX0ZMQVRNRU09eQogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0wCiBDT05GSUdfVklSVF9UT19CVVM9eQorIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PX0haIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJR0hfUkVTX1RJTUVSUyBpcyBub3Qgc2V0CitDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UU19CVUlMRD15CiAjIENPTkZJR19IWl80OCBpcyBub3Qgc2V0CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTI4IGlzIG5vdCBzZXQKQEAgLTE1NiwyMyArMTcxLDI5IEBACiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVURJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAorIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CisjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA2LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQyLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY2LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc3LDYgKzMwNyw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CkBAIC0yODQsMTUgKzMxNSwxMCBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX05PTkUgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX1NIQTEgaXMgbm90IHNldAotIyBDT05GSUdfU0NUUF9ITUFDX01ENSBpcyBub3Qgc2V0CiAjIENPTkZJR19USVBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19CUklER0UgaXMgbm90IHNldApAQCAtMzA1LDEwICszMzEsNiBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAogCiAjCkBAIC0zMTYsNiArMzM4LDcgQEAKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMzM4LDYgKzM2MSw3IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPXkKQEAgLTM1OSwxMCArMzgzLDExIEBACiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2Ci1DT05GSUdfQkxLX0RFVl9SQU1fQkxPQ0tTSVpFPTEwMjQKK0NPTkZJR19CTEtfREVWX1hJUD15CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSVNDX0RFVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKICMgQ09ORklHX0lERSBpcyBub3Qgc2V0CiAKICMKQEAgLTQwMiwxOCArNDI3LDEzIEBACiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19TQ1NJX1NBU19BVFRSUz1tCiBDT05GSUdfU0NTSV9TQVNfTElCU0FTPW0KK0NPTkZJR19TQ1NJX1NBU19IT1NUX1NNUD15CiAjIENPTkZJR19TQ1NJX1NBU19MSUJTQVNfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9TUlBfQVRUUlMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9MT1dMRVZFTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEEgaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CkBAIC00MjgsNiArNDQ4LDcgQEAKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAogQ09ORklHX05FVF9FVEhFUk5FVD15CkBAIC00NDAsNiArNDYxLDEwIEBACiAjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKQEAgLTQ0Nyw3ICs0NzIsNiBAQAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQzM1ODE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQogIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKQEAgLTQ1NSw2ICs0NzksNyBAQAogIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAogIyBDT05GSUdfODEzOUNQIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT08gaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtNDcwLDYgKzQ5NSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNDc4LDcgKzUwNCw2IEBACiBDT05GSUdfVVNCX0tBV0VUSD1tCiBDT05GSUdfVVNCX1BFR0FTVVM9bQogQ09ORklHX1VTQl9SVEw4MTUwPW0KLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldApAQCAtNDg2LDcgKzUxMSw2IEBACiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVENPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUUE9MTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSIGlzIG5vdCBzZXQKQEAgLTUwNSw3ICs1MjksNiBAQAogIwogIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNTMyLDcgKzU1NSw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTU1MSw1MiArNTc2LDYyIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19HUElPX1RCMDIxOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAogQ09ORklHX0dQSU9fVlI0MVhYPXkKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCisjIENPTkZJR19EUk0gaXMgbm90IHNldAorIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAorIyBDT05GSUdfRkIgaXMgbm90IHNldAogIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwogIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0CiAjCiAjIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAotIyBDT05GSUdfVkdBU1RBVEUgaXMgbm90IHNldAotIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAotIyBDT05GSUdfRkIgaXMgbm90IHNldAogCiAjCiAjIENvbnNvbGUgZGlzcGxheSBkcml2ZXIgc3VwcG9ydApAQCAtNjE1LDYgKzY1MCw3IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogQ09ORklHX1VTQj15CiAjIENPTkZJR19VU0JfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FOTk9VTkNFX05FV19ERVZJQ0VTIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIFVTQiBvcHRpb25zCkBAIC02MjMsMTUgKzY1OSwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQotIyBDT05GSUdfVVNCX0VIQ0lfU1BMSVRfSVNPIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9NTUlPIGlzIG5vdCBzZXQKQEAgLTY1NywxMyArNjk2LDE2IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC02NzYsMTAgKzcxOCw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtNzA1LDE3ICs3NDMsMTEgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CiBDT05GSUdfUlRDX0NMQVNTPXkKQEAgLTc0MCw5ICs3NzIsMTAgQEAKICMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKICMKICMgQ09ORklHX1JUQ19EUlZfQ01PUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNzQyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUODYgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9NNDhUNTkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9WMzAyMCBpcyBub3Qgc2V0CkBAIC03NTEsMjMgKzc4NCw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogQ09ORklHX1JUQ19EUlZfVlI0MVhYPXkKLQotIwotIyBETUEgRW5naW5lIHN1cHBvcnQKLSMKLSMgQ09ORklHX0RNQV9FTkdJTkUgaXMgbm90IHNldAotCi0jCi0jIERNQSBDbGllbnRzCi0jCi0KLSMKLSMgRE1BIERldmljZXMKLSMKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03ODIsMTQgKzc5OCwxMSBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotQ09ORklHX1JPTUZTX0ZTPW0KK0NPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKIENPTkZJR19JTk9USUZZX1VTRVI9eQogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtODE4LDcgKzgzMSw2IEBACiBDT05GSUdfVE1QRlM9eQogQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19IVUdFVExCX1BBR0UgaXMgbm90IHNldAotQ09ORklHX1JBTUZTPXkKICMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtODMzLDI0ICs4NDUsMjEgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPW0KICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPW0KICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0RfVENQIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTg3MSw0NyArODgwLDM4IEBACiAjCiAjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKICMgQ09ORklHX05MUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0NST1NTQ09NUElMRT15Ci1DT05GSUdfQ01ETElORT0ibWVtPTMyTSBjb25zb2xlPXR0eVZSMCwxMTUyMDAiCisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19DTURMSU5FPSJjY2E9MyBtZW09MzJNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCIKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9bQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jb25maWdzL3RiMDI4N19kZWZjb25maWcgYi9hcmNoL21pcHMvY29uZmlncy90YjAyODdfZGVmY29uZmlnCmluZGV4IDQwZDRhNDBhLi5hNWQwZjNjIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvY29uZmlncy90YjAyODdfZGVmY29uZmlnCisrKyBiL2FyY2gvbWlwcy9jb25maWdzL3RiMDI4N19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjMtcmMyCi0jIFRodSBBdWcgIDkgMTQ6MDM6NTQgMjAwNworIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMQorIyBNb24gTWF5IDEyIDExOjU1OjU1IDIwMDgKICMKIENPTkZJR19NSVBTPXkKIApAQCAtMTAsOSArMTAsMTEgQEAKICMKICMgQ09ORklHX01BQ0hfQUxDSEVNWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CQVNMRVJfRVhDSVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JDTTQ3WFggaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19DT0JBTFQgaXMgbm90IHNldAogIyBDT05GSUdfTUFDSF9ERUNTVEFUSU9OIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0hfSkFaWiBpcyBub3Qgc2V0CisjIENPTkZJR19MQVNBVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MRU1PVEVfRlVMT05HIGlzIG5vdCBzZXQKICMgQ09ORklHX01JUFNfQVRMQVMgaXMgbm90IHNldAogIyBDT05GSUdfTUlQU19NQUxUQSBpcyBub3Qgc2V0CkBAIC0yNiw2ICsyOCw3IEBACiAjIENPTkZJR19QTUNfWU9TRU1JVEUgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMjIgaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMjcgaXMgbm90IHNldAorIyBDT05GSUdfU0dJX0lQMjggaXMgbm90IHNldAogIyBDT05GSUdfU0dJX0lQMzIgaXMgbm90IHNldAogIyBDT05GSUdfU0lCWVRFX0NSSElORSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSUJZVEVfQ0FSTUVMIGlzIG5vdCBzZXQKQEAgLTUzLDEyICs1NiwxNyBAQAogQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFJPRklMRT15CiBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQogQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTPXkKIENPTkZJR19HRU5FUklDX1RJTUU9eQorQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEU9eQogQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CiBDT05GSUdfR0VORVJJQ19IQVJESVJRU19OT19fRE9fSVJRPXkKK0NPTkZJR19DRVZUX1I0Sz15CitDT05GSUdfQ1NSQ19SNEs9eQogQ09ORklHX0RNQV9OT05DT0hFUkVOVD15CiBDT05GSUdfRE1BX05FRURfUENJX01BUF9TVEFURT15CiAjIENPTkZJR19IT1RQTFVHX0NQVSBpcyBub3Qgc2V0CkBAIC0xMTMsNiArMTIxLDcgQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKIENPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CiBDT05GSUdfQVJDSF9GTEFUTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQogQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQogQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldApAQCAtMTIwLDEwICsxMjksMTYgQEAKIENPTkZJR19GTEFUTUVNPXkKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MAogQ09ORklHX1ZJUlRfVE9fQlVTPXkKKyMgQ09ORklHX1RJQ0tfT05FU0hPVCBpcyBub3Qgc2V0CisjIENPTkZJR19OT19IWiBpcyBub3Qgc2V0CisjIENPTkZJR19ISUdIX1JFU19USU1FUlMgaXMgbm90IHNldAorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlVJTEQ9eQogIyBDT05GSUdfSFpfNDggaXMgbm90IHNldAogIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0haXzEyOCBpcyBub3Qgc2V0CkBAIC0xNTYsMTIgKzE3MSwxNSBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAogIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKKyMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRSBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMPXkKQEAgLTE3Myw2ICsxOTEsOCBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19QQ1NQS1JfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTE4NSwxMCArMjA1LDE5IEBACiBDT05GSUdfU0xBQj15CiAjIENPTkZJR19TTFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfUFJPRklMSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorIyBDT05GSUdfSEFWRV9LUFJPQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBVkVfS1JFVFBST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CitDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQorQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTIxMiwxOCArMjQxLDE3IEBACiAjIENPTkZJR19ERUZBVUxUX0NGUSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBCdXMgb3B0aW9ucyAoUENJLCBQQ01DSUEsIEVJU0EsIElTQSwgVEMpCiAjCiBDT05GSUdfSFdfSEFTX1BDST15CiBDT05GSUdfUENJPXkKK0NPTkZJR19QQ0lfRE9NQUlOUz15CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CitDT05GSUdfUENJX0xFR0FDWT15CiBDT05GSUdfTU1VPXkKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAogCkBAIC0yMzcsNiArMjY1LDcgQEAKICMKICMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCitDT05GSUdfQVJDSF9TVVNQRU5EX1BPU1NJQkxFPXkKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKIAogIwpAQCAtMjc4LDYgKzMwNyw3IEBACiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9MUk8gaXMgbm90IHNldAogQ09ORklHX0lORVRfRElBRz15CiBDT05GSUdfSU5FVF9UQ1BfRElBRz15CiBDT05GSUdfVENQX0NPTkdfQURWQU5DRUQ9eQpAQCAtMzAyLDggKzMzMiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iYmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19TRUNNQVJLPXkKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTMyMCwxMCArMzQ4LDYgQEAKICMgQ09ORklHX0xBUEIgaXMgbm90IHNldAogIyBDT05GSUdfRUNPTkVUIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTl9ST1VURVIgaXMgbm90IHNldAotCi0jCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZwotIwogIyBDT05GSUdfTkVUX1NDSEVEIGlzIG5vdCBzZXQKIAogIwpAQCAtMzMxLDYgKzM1NSw3IEBACiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTVJBRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUkRBIGlzIG5vdCBzZXQKICMgQ09ORklHX0JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGX1JYUlBDIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNzgsNyBAQAogIwogIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiAjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgogQ09ORklHX1NUQU5EQUxPTkU9eQogQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQogQ09ORklHX0ZXX0xPQURFUj1tCkBAIC0zNzQsMTAgKzQwMCwxMSBAQAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9NDA5NgotQ09ORklHX0JMS19ERVZfUkFNX0JMT0NLU0laRT0xMDI0CitDT05GSUdfQkxLX0RFVl9YSVA9eQogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiAjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCkBAIC00MTYsMTAgKzQ0MywxNCBAQAogIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0xPV0xFVkVMIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTQyOSw3ICs0NjAsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldApAQCAtNDU4LDcgKzQ4OCw5IEBACiAjIENPTkZJR19QQVRBX01QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT0xEUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX05FVENFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OSU5KQTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTlM4NzQxMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTUgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9PUFRJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSURNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BEQ19PTEQgaXMgbm90IHNldApAQCAtNDcyLDE1ICs1MDQsOSBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAotCi0jCi0jIEZ1c2lvbiBNUFQgZGV2aWNlIHN1cHBvcnQKLSMKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKIAogIwogIyBJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0CkBAIC01MjAsNiArNTQ2LDcgQEAKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldAogQ09ORklHX05FVF9FVEhFUk5FVD15CkBAIC01MzIsNiArNTU5LDEwIEBACiAjIENPTkZJR19ETTkwMDAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BDST15CiAjIENPTkZJR19QQ05FVDMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FNRDgxMTFfRVRIIGlzIG5vdCBzZXQKQEAgLTUzOSw3ICs1NzAsNiBAQAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQzM1ODE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldApAQCAtNTUxLDYgKzU4MSw3IEBACiAjIENPTkZJR184MTM5VE9PX1RVTkVfVFdJU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5VE9PXzgxMjkgaXMgbm90IHNldAogIyBDT05GSUdfODEzOV9PTERfUlhfUkVTRVQgaXMgbm90IHNldAorIyBDT05GSUdfUjYwNDAgaXMgbm90IHNldAogIyBDT05GSUdfU0lTOTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0VQSUMxMDAgaXMgbm90IHNldAogIyBDT05GSUdfU1VOREFOQ0UgaXMgbm90IHNldApAQCAtNTYzLDYgKzU5NCwxMCBAQAogIyBDT05GSUdfQUNFTklDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RMMksgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAogIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKICMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0CkBAIC01ODQsNiArNjE5LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC01OTIsNyArNjI4LDYgQEAKICMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CkBAIC02MDAsNyArNjM1LDYgQEAKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogIyBDT05GSUdfTkVUQ09OU09MRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRQT0xMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIgaXMgbm90IHNldApAQCAtNjIyLDcgKzY1Niw2IEBACiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1g9MTAyNAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9ZPTc2OAogIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RTREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtNjQ5LDcgKzY4Miw5IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HPXkKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKICMKICMgU2VyaWFsIGRyaXZlcnMKQEAgLTY2OCw0OSArNzAzLDUzIEBACiBDT05GSUdfTEVHQUNZX1BUWVM9eQogQ09ORklHX0xFR0FDWV9QVFlfQ09VTlQ9MjU2CiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAotIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19HUElPX1RCMDIxOSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EUk0gaXMgbm90IHNldAogQ09ORklHX0dQSU9fVlI0MVhYPXkKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CisjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogQ09ORklHX01GRF9TTTUwMT15CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydAogIwotIyBDT05GSUdfQkFDS0xJR0hUX0xDRF9TVVBQT1JUIGlzIG5vdCBzZXQKLQotIwotIyBEaXNwbGF5IGRldmljZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ESVNQTEFZX1NVUFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTD1tCiBDT05GSUdfRkI9eQpAQCAtNzE5LDkgKzc1OCwxMSBAQAogQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CiBDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKIENPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKIENPTkZJR19GQl9ERUZFUlJFRF9JTz15CiAjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKQEAgLTc1Nyw3ICs3OTgsMTQgQEAKICMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAogQ09ORklHX0ZCX1NNNTAxPXkKKyMgQ09ORklHX0ZCX0NPQkFMVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9WSVJUVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKQEAgLTc4Nyw2ICs4MzUsNyBAQAogQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQogIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hJRFJBVyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIElucHV0IERldmljZXMKQEAgLTgwNyw2ICs4NTYsNyBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9bQogIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUyBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtODE1LDE1ICs4NjUsMTggQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPW0KLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9bQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC04NDksMTMgKzkwMiwxNiBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9EUENNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtODY4LDEwICs5MjQsNiBAQAogIwogIyBVU0IgcG9ydCBkcml2ZXJzCiAjCi0KLSMKLSMgVVNCIFNlcmlhbCBDb252ZXJ0ZXIgc3VwcG9ydAotIwogIyBDT05GSUdfVVNCX1NFUklBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTg5NiwzNiArOTQ4LDE0IEBACiAjIENPTkZJR19VU0JfTEQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAotCi0jCi0jIFVTQiBEU0wgbW9kZW0gc3VwcG9ydAotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfTElCPXkKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0Ci0jCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKLQotIwotIyBETUEgQ2xpZW50cwotIwotCi0jCi0jIERNQSBEZXZpY2VzCi0jCi0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTQwLDI1ICs5NzAsMjEgQEAKICMgQ09ORklHX0VYVDNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfSkJEPXkKLSMgQ09ORklHX0pCRF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfTUJDQUNIRT15CiAjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiBDT05GSUdfWEZTX0ZTPXkKIENPTkZJR19YRlNfUVVPVEE9eQotIyBDT05GSUdfWEZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIENPTkZJR19YRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGU19ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci1DT05GSUdfUk9NRlNfRlM9bQorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CiBDT05GSUdfUVVPVEFDVEw9eQotQ09ORklHX0ROT1RJRlk9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtOTg3LDcgKzEwMTMsNiBAQAogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMDIsMjQgKzEwMjcsMjEgQEAKICMgQ09ORklHX0VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JBTUZTPW0KICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPW0KICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIworQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xMDQwLDQ3ICsxMDYyLDM4IEBACiAjCiAjIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKICMgQ09ORklHX05MUyBpcyBub3Qgc2V0Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIFByb2ZpbGluZyBzdXBwb3J0Ci0jCi0jIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAotCi0jCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAotQ09ORklHX0NST1NTQ09NUElMRT15Ci1DT05GSUdfQ01ETElORT0ibWVtPTY0TSBjb25zb2xlPXR0eVZSMCwxMTUyMDAgaXA9YW55IHJvb3Q9L2Rldi9uZnMiCisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKK0NPTkZJR19DTURMSU5FPSJjY2E9MyBtZW09NjRNIGNvbnNvbGU9dHR5VlIwLDExNTIwMCBpcD1hbnkgcm9vdD0vZGV2L25mcyIKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPXkKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvZncvYXJjL2lkZW50aWZ5LmMgYi9hcmNoL21pcHMvZncvYXJjL2lkZW50aWZ5LmMKaW5kZXggMjhkZmQyZS4uMjMwNjY5OCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2Z3L2FyYy9pZGVudGlmeS5jCisrKyBiL2FyY2gvbWlwcy9mdy9hcmMvaWRlbnRpZnkuYwpAQCAtNjcsNiArNjcsMTEgQEAKIAkJLmxpbmFtZQkJPSAiU05JIFJNMjAwX1BDSSIsCiAJCS50eXBlCQk9IE1BQ0hfU05JX1JNMjAwX1BDSSwKIAkJLmZsYWdzCQk9IFBST01fRkxBR19ET05UX0ZSRUVfVEVNUCwKKwl9LCB7CisJCS5hcmNuYW1lCT0gIlJNMjAwUENJLVI1SyIsCisJCS5saW5hbWUJCT0gIlNOSSBSTTIwMF9QQ0ktUjVLIiwKKwkJLnR5cGUJCT0gTUFDSF9TTklfUk0yMDBfUENJLAorCQkuZmxhZ3MJCT0gUFJPTV9GTEFHX0RPTlRfRlJFRV9URU1QLAogCX0KIH07CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL21pcHMva2VybmVsL01ha2VmaWxlCmluZGV4IGNjMDI0NDAuLjY1ZTQ2YTYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9NYWtlZmlsZQpAQCAtMzAsNyArMzAsNiBAQAogb2JqLSQoQ09ORklHX0NQVV9NSVBTMzIpCSs9IHI0a19mcHUubyByNGtfc3dpdGNoLm8KIG9iai0kKENPTkZJR19DUFVfTUlQUzY0KQkrPSByNGtfZnB1Lm8gcjRrX3N3aXRjaC5vCiBvYmotJChDT05GSUdfQ1BVX1IzMDAwKQkJKz0gcjIzMDBfZnB1Lm8gcjIzMDBfc3dpdGNoLm8KLW9iai0kKENPTkZJR19DUFVfUjQwMDApCQkrPSByNGtfZnB1Lm8gcjRrX3N3aXRjaC5vCiBvYmotJChDT05GSUdfQ1BVX1I0MzAwKQkJKz0gcjRrX2ZwdS5vIHI0a19zd2l0Y2gubwogb2JqLSQoQ09ORklHX0NQVV9SNFgwMCkJCSs9IHI0a19mcHUubyByNGtfc3dpdGNoLm8KIG9iai0kKENPTkZJR19DUFVfUjUwMDApCQkrPSByNGtfZnB1Lm8gcjRrX3N3aXRjaC5vCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2NldnQtdHh4OS5jIGIvYXJjaC9taXBzL2tlcm5lbC9jZXZ0LXR4eDkuYwppbmRleCA3OTVjYjhmLi5iNWZjNGViIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL2NldnQtdHh4OS5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvY2V2dC10eHg5LmMKQEAgLTE2MSw2ICsxNjEsOSBAQAogCXN0cnVjdCB0eHg5X3Rtcl9yZWcgX19pb21lbSAqdG1ycHRyOwogCiAJdG1ycHRyID0gaW9yZW1hcChiYXNlYWRkciwgc2l6ZW9mKHN0cnVjdCB0eHg5X3Rtcl9yZWcpKTsKKwkvKiBTdGFydCBvbmNlIHRvIG1ha2UgQ291bnRlclJlc2V0RW5hYmxlIGVmZmVjdGl2ZSAqLworCV9fcmF3X3dyaXRlbChUWHg5X1RNVENSX0NSRSB8IFRYeDlfVE1UQ1JfVENFLCAmdG1ycHRyLT50Y3IpOworCS8qIFN0b3AgYW5kIHJlc2V0IHRoZSBjb3VudGVyICovCiAJX19yYXdfd3JpdGVsKFRYeDlfVE1UQ1JfQ1JFLCAmdG1ycHRyLT50Y3IpOwogCV9fcmF3X3dyaXRlbCgwLCAmdG1ycHRyLT50aXNyKTsKIAlfX3Jhd193cml0ZWwoMHhmZmZmZmZmZiwgJnRtcnB0ci0+Y3ByYSk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3J0bHguYyBiL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCmluZGV4IGI4OGYxYzEuLmI1NTY0MTkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvcnRseC5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L2VsZi5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZWxvYWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtMzkyLDggKzM5MywxMiBAQAogc3RhdGljIGludCBmaWxlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgZXJyOwogCi0JcmV0dXJuIHJ0bHhfb3BlbihtaW5vciwgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSA/IDAgOiAxKTsKKwlsb2NrX2tlcm5lbCgpOworCWVyciA9IHJ0bHhfb3BlbihtaW5vciwgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSA/IDAgOiAxKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCBmaWxlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3NtcC5jIGIvYXJjaC9taXBzL2tlcm5lbC9zbXAuYwppbmRleCA2MzM3MGNkLi5jZGY4N2E5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3NtcC5jCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvc21wLmMKQEAgLTIxNiw2ICsyMTYsNyBAQAogewogCXJldHVybiBzbXBfY2FsbF9mdW5jdGlvbl9tYXNrKGNwdV9vbmxpbmVfbWFwLCBmdW5jLCBpbmZvLCByZXRyeSwgd2FpdCk7CiB9CitFWFBPUlRfU1lNQk9MKHNtcF9jYWxsX2Z1bmN0aW9uKTsKIAogdm9pZCBzbXBfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCkKIHsKQEAgLTI3MSw2ICsyNzIsNyBAQAogCXB1dF9jcHUoKTsKIAlyZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0woc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKTsKIAogc3RhdGljIHZvaWQgc3RvcF90aGlzX2NwdSh2b2lkICpkdW1teSkKIHsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYyBiL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYwppbmRleCBjYjhiMGUyLi5mOTE2NWQxIDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC90cmFwcy5jCkBAIC04OCwxNSArODgsMTcgQEAKICNpZmRlZiBDT05GSUdfS0FMTFNZTVMKIAlwcmludGsoIlxuIik7CiAjZW5kaWYKLSNkZWZpbmUgSVNfS1ZBMDEoYSkgKCgoKHVuc2lnbmVkIGludClhKSAmIDB4YzAwMDAwMDApID09IDB4ODAwMDAwMDApCi0JaWYgKElTX0tWQTAxKHNwKSkgewotCQl3aGlsZSAoIWtzdGFja19lbmQoc3ApKSB7Ci0JCQlhZGRyID0gKnNwKys7Ci0JCQlpZiAoX19rZXJuZWxfdGV4dF9hZGRyZXNzKGFkZHIpKQotCQkJCXByaW50X2lwX3N5bShhZGRyKTsKKwl3aGlsZSAoIWtzdGFja19lbmQoc3ApKSB7CisJCXVuc2lnbmVkIGxvbmcgX191c2VyICpwID0KKwkJCSh1bnNpZ25lZCBsb25nIF9fdXNlciAqKSh1bnNpZ25lZCBsb25nKXNwKys7CisJCWlmIChfX2dldF91c2VyKGFkZHIsIHApKSB7CisJCQlwcmludGsoIiAoQmFkIHN0YWNrIGFkZHJlc3MpIik7CisJCQlicmVhazsKIAkJfQotCQlwcmludGsoIlxuIik7CisJCWlmIChfX2tlcm5lbF90ZXh0X2FkZHJlc3MoYWRkcikpCisJCQlwcmludF9pcF9zeW0oYWRkcik7CiAJfQorCXByaW50aygiXG4iKTsKIH0KIAogI2lmZGVmIENPTkZJR19LQUxMU1lNUwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC92cGUuYyBiL2FyY2gvbWlwcy9rZXJuZWwvdnBlLmMKaW5kZXggMjc5NDUwMS4uOTcyYjJkMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC92cGUuYworKysgYi9hcmNoL21pcHMva2VybmVsL3ZwZS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L2VsZi5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZWxvYWRlci5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtMTA1MCwxNyArMTA1MSwyMCBAQAogCWVudW0gdnBlX3N0YXRlIHN0YXRlOwogCXN0cnVjdCB2cGVfbm90aWZpY2F0aW9ucyAqbm90OwogCXN0cnVjdCB2cGUgKnY7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAobWlub3IgIT0gaW1pbm9yKGlub2RlKSkgewogCQkvKiBhc3N1bWUgb25seSAxIGRldmljZSBhdCB0aGUgbW9tZW50LiAqLwogCQlwcmludGsoS0VSTl9XQVJOSU5HICJWUEUgbG9hZGVyOiBvbmx5IHZwZTEgaXMgc3VwcG9ydGVkXG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCWVyciA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KIAogCWlmICgodiA9IGdldF92cGUodGNsaW1pdCkpID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiVlBFIGxvYWRlcjogdW5hYmxlIHRvIGdldCB2cGVcbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCiAJc3RhdGUgPSB4Y2hnKCZ2LT5zdGF0ZSwgVlBFX1NUQVRFX0lOVVNFKTsKQEAgLTExMDAsNiArMTEwNCw4IEBACiAJdi0+c2hhcmVkX3B0ciA9IE5VTEw7CiAJdi0+X19zdGFydCA9IDA7CiAKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9sYXNhdC9pbnRlcnJ1cHQuYyBiL2FyY2gvbWlwcy9sYXNhdC9pbnRlcnJ1cHQuYwppbmRleCBjZmVhYjY2Li5hNTZjMTUwIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbGFzYXQvaW50ZXJydXB0LmMKKysrIGIvYXJjaC9taXBzL2xhc2F0L2ludGVycnVwdC5jCkBAIC0zNCwxMSArMzQsMTMgQEAKIAogdm9pZCBkaXNhYmxlX2xhc2F0X2lycSh1bnNpZ25lZCBpbnQgaXJxX25yKQogeworCWlycV9uciAtPSBMQVNBVF9JUlFfQkFTRTsKIAkqbGFzYXRfaW50X21hc2sgJj0gfigxIDw8IGlycV9ucikgPDwgbGFzYXRfaW50X21hc2tfc2hpZnQ7CiB9CiAKIHZvaWQgZW5hYmxlX2xhc2F0X2lycSh1bnNpZ25lZCBpbnQgaXJxX25yKQogeworCWlycV9uciAtPSBMQVNBVF9JUlFfQkFTRTsKIAkqbGFzYXRfaW50X21hc2sgfD0gKDEgPDwgaXJxX25yKSA8PCBsYXNhdF9pbnRfbWFza19zaGlmdDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2xhc2F0L2xhc2F0X2JvYXJkLmMgYi9hcmNoL21pcHMvbGFzYXQvbGFzYXRfYm9hcmQuYwppbmRleCBlYzJmNjU4Li4zMWUzMjhiIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbGFzYXQvbGFzYXRfYm9hcmQuYworKysgYi9hcmNoL21pcHMvbGFzYXQvbGFzYXRfYm9hcmQuYwpAQCAtMjMsMTggKzIzLDE5IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGFzbS9ib290aW5mby5oPgogI2luY2x1ZGUgPGFzbS9hZGRyc3BhY2UuaD4KICNpbmNsdWRlICJhdDkzYy5oIgogLyogTmV3IG1vZGVsIGRlc2NyaXB0aW9uIHRhYmxlICovCiAjaW5jbHVkZSAibGFzYXRfbW9kZWxzLmgiCiAKK3N0YXRpYyBERUZJTkVfTVVURVgobGFzYXRfZWVwcm9tX211dGV4KTsKKwogI2RlZmluZSBFRVBST01fQ1JDKGRhdGEsIGxlbikgKH5jcmMzMih+MCwgZGF0YSwgbGVuKSkKIAogc3RydWN0IGxhc2F0X2luZm8gbGFzYXRfYm9hcmRfaW5mbzsKIAotdm9pZCB1cGRhdGVfYmNhc3RhZGRyKHZvaWQpOwotCiBpbnQgRUVQUk9NUmVhZCh1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuKQogewogCWludCBpOwpAQCAtMjU4LDEwICsyNTksNiBAQAogCQkJc3ByaW50ZihsYXNhdF9ib2FyZF9pbmZvLmxpX3R5cGVzdHIsICIlZCIsIDEwICogYyk7CiAJfQogCi0jaWYgZGVmaW5lZChDT05GSUdfSU5FVCkgJiYgZGVmaW5lZChDT05GSUdfU1lTQ1RMKQotCXVwZGF0ZV9iY2FzdGFkZHIoKTsKLSNlbmRpZgotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI2OSw2ICsyNjYsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgY3JjOwogCisJbXV0ZXhfbG9jaygmbGFzYXRfZWVwcm9tX211dGV4KTsKKwogCS8qIEdlbmVyYXRlIHRoZSBDUkMgKi8KIAljcmMgPSBFRVBST01fQ1JDKCh1bnNpZ25lZCBjaGFyICopKCZsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvKSwKIAkJICAgIHNpemVvZihzdHJ1Y3QgbGFzYXRfZWVwcm9tX3N0cnVjdCkgLSA0KTsKQEAgLTI3Nyw0ICsyNzYsNiBAQAogCS8qIFdyaXRlIHRoZSBFRVBST00gaW5mbyAqLwogCUVFUFJPTVdyaXRlKDAsICh1bnNpZ25lZCBjaGFyICopJmxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8sCiAJCSAgICBzaXplb2Yoc3RydWN0IGxhc2F0X2VlcHJvbV9zdHJ1Y3QpKTsKKworCW11dGV4X3VubG9jaygmbGFzYXRfZWVwcm9tX211dGV4KTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9sYXNhdC9zeXNjdGwuYyBiL2FyY2gvbWlwcy9sYXNhdC9zeXNjdGwuYwppbmRleCAzODkzMzZjLi44NjY4ODFlIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbGFzYXQvc3lzY3RsLmMKKysrIGIvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5jCkBAIC0yOSwxNSArMjksMTMgQEAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9uZXQuaD4KICNpbmNsdWRlIDxsaW51eC9pbmV0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKICNpbmNsdWRlIDxhc20vdGltZS5oPgogCi0jaW5jbHVkZSAic3lzY3RsLmgiCisjaWZkZWYgQ09ORklHX0RTMTYwMwogI2luY2x1ZGUgImRzMTYwMy5oIgotCi1zdGF0aWMgREVGSU5FX01VVEVYKGxhc2F0X2luZm9fbXV0ZXgpOworI2VuZGlmCiAKIC8qIFN0cmF0ZWd5IGZ1bmN0aW9uIHRvIHdyaXRlIEVFUFJPTSBhZnRlciBjaGFuZ2luZyBzdHJpbmcgZW50cnkgKi8KIGludCBzeXNjdGxfbGFzYXRzdHJpbmcoY3RsX3RhYmxlICp0YWJsZSwgaW50ICpuYW1lLCBpbnQgbmxlbiwKQEAgLTQ2LDE4ICs0NCwxNSBAQAogewogCWludCByOwogCi0JbXV0ZXhfbG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAJciA9IHN5c2N0bF9zdHJpbmcodGFibGUsIG5hbWUsCiAJCQkgIG5sZW4sIG9sZHZhbCwgb2xkbGVucCwgbmV3dmFsLCBuZXdsZW4pOwotCWlmIChyIDwgMCkgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7Ci0JfQorCiAJaWYgKG5ld3ZhbCAmJiBuZXdsZW4pCiAJCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAotCXJldHVybiAxOworCXJldHVybiAwOwogfQogCiAKQEAgLTY3LDE0ICs2MiwxMSBAQAogewogCWludCByOwogCi0JbXV0ZXhfbG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAJciA9IHByb2NfZG9zdHJpbmcodGFibGUsIHdyaXRlLCBmaWxwLCBidWZmZXIsIGxlbnAsIHBwb3MpOwotCWlmICgoIXdyaXRlKSB8fCByKSB7Ci0JCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJaWYgKCghd3JpdGUpIHx8IHIpCiAJCXJldHVybiByOwotCX0KKwogCWxhc2F0X3dyaXRlX2VlcHJvbV9pbmZvKCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAogCXJldHVybiAwOwogfQpAQCAtODUsMjggKzc3LDI0IEBACiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlyID0gcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbHAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7Ci0JaWYgKCghd3JpdGUpIHx8IHIpIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAoKCF3cml0ZSkgfHwgcikKIAkJcmV0dXJuIHI7Ci0JfQorCiAJbGFzYXRfd3JpdGVfZWVwcm9tX2luZm8oKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCiAJcmV0dXJuIDA7CiB9CiAKKyNpZmRlZiBDT05GSUdfRFMxNjAzCiBzdGF0aWMgaW50IHJ0Y3RtcDsKIAotI2lmZGVmIENPTkZJR19EUzE2MDMKIC8qIHByb2MgZnVuY3Rpb24gdG8gcmVhZC93cml0ZSBSZWFsVGltZSBDbG9jayAqLwogaW50IHByb2NfZG9sYXNhdHJ0YyhjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxwLAogCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAlpbnQgcjsKIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCWlmICghd3JpdGUpIHsKIAkJcnRjdG1wID0gcmVhZF9wZXJzaXN0ZW50X2Nsb2NrKCk7CiAJCS8qIGNoZWNrIGZvciB0aW1lIDwgMCBhbmQgc2V0IHRvIDAgKi8KQEAgLTExNCwxMiArMTAyLDExIEBACiAJCQlydGN0bXAgPSAwOwogCX0KIAlyID0gcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbHAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7Ci0JaWYgKCghd3JpdGUpIHx8IHIpIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAocikKIAkJcmV0dXJuIHI7Ci0JfQotCXJ0Y19taXBzX3NldF9tbXNzKHJ0Y3RtcCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKworCWlmICh3cml0ZSkKKwkJcnRjX21pcHNfc2V0X21tc3MocnRjdG1wKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTMyLDE3ICsxMTksMTQgQEAKIHsKIAlpbnQgcjsKIAotCW11dGV4X2xvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCXIgPSBzeXNjdGxfaW50dmVjKHRhYmxlLCBuYW1lLCBubGVuLCBvbGR2YWwsIG9sZGxlbnAsIG5ld3ZhbCwgbmV3bGVuKTsKLQlpZiAociA8IDApIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAociA8IDApCiAJCXJldHVybiByOwotCX0KKwogCWlmIChuZXd2YWwgJiYgbmV3bGVuKQogCQlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOwotCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAKLQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKIH0KIAogI2lmZGVmIENPTkZJR19EUzE2MDMKQEAgLTE1Myw1MCArMTM3LDI3IEBACiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlydGN0bXAgPSByZWFkX3BlcnNpc3RlbnRfY2xvY2soKTsKIAlpZiAocnRjdG1wIDwgMCkKIAkJcnRjdG1wID0gMDsKIAlyID0gc3lzY3RsX2ludHZlYyh0YWJsZSwgbmFtZSwgbmxlbiwgb2xkdmFsLCBvbGRsZW5wLCBuZXd2YWwsIG5ld2xlbik7Ci0JaWYgKHIgPCAwKSB7Ci0JCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJaWYgKHIgPCAwKQogCQlyZXR1cm4gcjsKLQl9CiAJaWYgKG5ld3ZhbCAmJiBuZXdsZW4pCiAJCXJ0Y19taXBzX3NldF9tbXNzKHJ0Y3RtcCk7Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAotCXJldHVybiAxOworCXJldHVybiByOwogfQogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfSU5FVAotc3RhdGljIGNoYXIgbGFzYXRfYmNhc3RhZGRyWzE2XTsKLQotdm9pZCB1cGRhdGVfYmNhc3RhZGRyKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IGlwOwotCi0JaXAgPSAobGFzYXRfYm9hcmRfaW5mby5saV9lZXByb21faW5mby5pcGFkZHIgJgotCQlsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvLm5ldG1hc2spIHwKLQkJfmxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ubmV0bWFzazsKLQotCXNwcmludGYobGFzYXRfYmNhc3RhZGRyLCAiJWQuJWQuJWQuJWQiLAotCQkJKGlwKSAgICAgICAmIDB4ZmYsCi0JCQkoaXAgPj4gIDgpICYgMHhmZiwKLQkJCShpcCA+PiAxNikgJiAweGZmLAotCQkJKGlwID4+IDI0KSAmIDB4ZmYpOwotfQotCi1zdGF0aWMgY2hhciBwcm9jX2xhc2F0X2lwYnVmWzMyXTsKLQotLyogUGFyc2luZyBvZiBJUCBhZGRyZXNzICovCiBpbnQgcHJvY19sYXNhdF9pcChjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxwLAogCQkgICAgICAgdm9pZCAqYnVmZmVyLCBzaXplX3QgKmxlbnAsIGxvZmZfdCAqcHBvcykKIHsKIAl1bnNpZ25lZCBpbnQgaXA7CiAJY2hhciAqcCwgYzsKIAlpbnQgbGVuOworCWNoYXIgaXBidWZbMzJdOwogCiAJaWYgKCF0YWJsZS0+ZGF0YSB8fCAhdGFibGUtPm1heGxlbiB8fCAhKmxlbnAgfHwKIAkgICAgKCpwcG9zICYmICF3cml0ZSkpIHsKQEAgLTIwNCwxMTcgKzE2NSw4OCBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlpZiAod3JpdGUpIHsKIAkJbGVuID0gMDsKIAkJcCA9IGJ1ZmZlcjsKIAkJd2hpbGUgKGxlbiA8ICpsZW5wKSB7Ci0JCQlpZiAoZ2V0X3VzZXIoYywgcCsrKSkgewotCQkJCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJCQlpZiAoZ2V0X3VzZXIoYywgcCsrKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCX0KIAkJCWlmIChjID09IDAgfHwgYyA9PSAnXG4nKQogCQkJCWJyZWFrOwogCQkJbGVuKys7CiAJCX0KLQkJaWYgKGxlbiA+PSBzaXplb2YocHJvY19sYXNhdF9pcGJ1ZiktMSkKLQkJCWxlbiA9IHNpemVvZihwcm9jX2xhc2F0X2lwYnVmKSAtIDE7Ci0JCWlmIChjb3B5X2Zyb21fdXNlcihwcm9jX2xhc2F0X2lwYnVmLCBidWZmZXIsIGxlbikpIHsKLQkJCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7CisJCWlmIChsZW4gPj0gc2l6ZW9mKGlwYnVmKS0xKQorCQkJbGVuID0gc2l6ZW9mKGlwYnVmKSAtIDE7CisJCWlmIChjb3B5X2Zyb21fdXNlcihpcGJ1ZiwgYnVmZmVyLCBsZW4pKQogCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCX0KLQkJcHJvY19sYXNhdF9pcGJ1ZltsZW5dID0gMDsKKwkJaXBidWZbbGVuXSA9IDA7CiAJCSpwcG9zICs9ICpsZW5wOwogCQkvKiBOb3cgc2VlIGlmIHdlIGNhbiBjb252ZXJ0IGl0IHRvIGEgdmFsaWQgSVAgKi8KLQkJaXAgPSBpbl9hdG9uKHByb2NfbGFzYXRfaXBidWYpOworCQlpcCA9IGluX2F0b24oaXBidWYpOwogCQkqKHVuc2lnbmVkIGludCAqKSh0YWJsZS0+ZGF0YSkgPSBpcDsKIAkJbGFzYXRfd3JpdGVfZWVwcm9tX2luZm8oKTsKIAl9IGVsc2UgewogCQlpcCA9ICoodW5zaWduZWQgaW50ICopKHRhYmxlLT5kYXRhKTsKLQkJc3ByaW50Zihwcm9jX2xhc2F0X2lwYnVmLCAiJWQuJWQuJWQuJWQiLAorCQlzcHJpbnRmKGlwYnVmLCAiJWQuJWQuJWQuJWQiLAogCQkJKGlwKSAgICAgICAmIDB4ZmYsCiAJCQkoaXAgPj4gIDgpICYgMHhmZiwKIAkJCShpcCA+PiAxNikgJiAweGZmLAogCQkJKGlwID4+IDI0KSAmIDB4ZmYpOwotCQlsZW4gPSBzdHJsZW4ocHJvY19sYXNhdF9pcGJ1Zik7CisJCWxlbiA9IHN0cmxlbihpcGJ1Zik7CiAJCWlmIChsZW4gPiAqbGVucCkKIAkJCWxlbiA9ICpsZW5wOwogCQlpZiAobGVuKQotCQkJaWYgKGNvcHlfdG9fdXNlcihidWZmZXIsIHByb2NfbGFzYXRfaXBidWYsIGxlbikpIHsKLQkJCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCQkJaWYgKGNvcHlfdG9fdXNlcihidWZmZXIsIGlwYnVmLCBsZW4pKQogCQkJCXJldHVybiAtRUZBVUxUOwotCQkJfQogCQlpZiAobGVuIDwgKmxlbnApIHsKLQkJCWlmIChwdXRfdXNlcignXG4nLCAoKGNoYXIgKikgYnVmZmVyKSArIGxlbikpIHsKLQkJCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCQkJaWYgKHB1dF91c2VyKCdcbicsICgoY2hhciAqKSBidWZmZXIpICsgbGVuKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCX0KIAkJCWxlbisrOwogCQl9CiAJCSpsZW5wID0gbGVuOwogCQkqcHBvcyArPSBsZW47CiAJfQotCXVwZGF0ZV9iY2FzdGFkZHIoKTsKLQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOwogCiAJcmV0dXJuIDA7CiB9Ci0jZW5kaWYgLyogZGVmaW5lZChDT05GSUdfSU5FVCkgKi8KKyNlbmRpZgogCi1zdGF0aWMgaW50IHN5c2N0bF9sYXNhdF9lZXByb21fdmFsdWUoY3RsX3RhYmxlICp0YWJsZSwgaW50ICpuYW1lLCBpbnQgbmxlbiwKK3N0YXRpYyBpbnQgc3lzY3RsX2xhc2F0X3ByaWQoY3RsX3RhYmxlICp0YWJsZSwgaW50ICpuYW1lLCBpbnQgbmxlbiwKIAkJCQkgICAgIHZvaWQgKm9sZHZhbCwgc2l6ZV90ICpvbGRsZW5wLAogCQkJCSAgICAgdm9pZCAqbmV3dmFsLCBzaXplX3QgbmV3bGVuKQogewogCWludCByOwogCi0JbXV0ZXhfbG9jaygmbGFzYXRfaW5mb19tdXRleCk7CiAJciA9IHN5c2N0bF9pbnR2ZWModGFibGUsIG5hbWUsIG5sZW4sIG9sZHZhbCwgb2xkbGVucCwgbmV3dmFsLCBuZXdsZW4pOwotCWlmIChyIDwgMCkgewotCQltdXRleF91bmxvY2soJmxhc2F0X2luZm9fbXV0ZXgpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7Ci0JfQotCiAJaWYgKG5ld3ZhbCAmJiBuZXdsZW4pIHsKLQkJaWYgKG5hbWUgJiYgKm5hbWUgPT0gTEFTQVRfUFJJRCkKLQkJCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ucHJpZCA9ICooaW50ICopbmV3dmFsOwotCisJCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ucHJpZCA9ICooaW50ICopbmV3dmFsOwogCQlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOwogCQlsYXNhdF9pbml0X2JvYXJkX2luZm8oKTsKIAl9Ci0JbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKLQogCXJldHVybiAwOwogfQogCi1pbnQgcHJvY19sYXNhdF9lZXByb21fdmFsdWUoY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKK2ludCBwcm9jX2xhc2F0X3ByaWQoY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKIAkJICAgICAgIHZvaWQgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLCBsb2ZmX3QgKnBwb3MpCiB7CiAJaW50IHI7CiAKLQltdXRleF9sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKIAlyID0gcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbHAsIGJ1ZmZlciwgbGVucCwgcHBvcyk7Ci0JaWYgKCghd3JpdGUpIHx8IHIpIHsKLQkJbXV0ZXhfdW5sb2NrKCZsYXNhdF9pbmZvX211dGV4KTsKKwlpZiAociA8IDApCiAJCXJldHVybiByOworCWlmICh3cml0ZSkgeworCQlsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvLnByaWQgPQorCQkJbGFzYXRfYm9hcmRfaW5mby5saV9wcmlkOworCQlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOworCQlsYXNhdF9pbml0X2JvYXJkX2luZm8oKTsKIAl9Ci0JaWYgKGZpbHAgJiYgZmlscC0+Zl9wYXRoLmRlbnRyeSkgewotCQlpZiAoIXN0cmNtcChmaWxwLT5mX3BhdGguZGVudHJ5LT5kX25hbWUubmFtZSwgInByaWQiKSkKLQkJCWxhc2F0X2JvYXJkX2luZm8ubGlfZWVwcm9tX2luZm8ucHJpZCA9Ci0JCQkJbGFzYXRfYm9hcmRfaW5mby5saV9wcmlkOwotCQlpZiAoIXN0cmNtcChmaWxwLT5mX3BhdGguZGVudHJ5LT5kX25hbWUubmFtZSwgImRlYnVnYWNjZXNzIikpCi0JCQlsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvLmRlYnVnYWNjZXNzID0KLQkJCQlsYXNhdF9ib2FyZF9pbmZvLmxpX2RlYnVnYWNjZXNzOwotCX0KLQlsYXNhdF93cml0ZV9lZXByb21faW5mbygpOwotCW11dGV4X3VubG9jaygmbGFzYXRfaW5mb19tdXRleCk7Ci0KIAlyZXR1cm4gMDsKIH0KIAogZXh0ZXJuIGludCBsYXNhdF9ib290X3RvX3NlcnZpY2U7CiAKLSNpZmRlZiBDT05GSUdfU1lTQ1RMCi0KIHN0YXRpYyBjdGxfdGFibGUgbGFzYXRfdGFibGVbXSA9IHsKIAl7CiAJCS5jdGxfbmFtZQk9IENUTF9VTk5VTUJFUkVELApAQCAtMzQ5LDggKzI4MSw4IEBACiAJCS5kYXRhCQk9ICZsYXNhdF9ib2FyZF9pbmZvLmxpX3ByaWQsCiAJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCiAJCS5tb2RlCQk9IDA2NDQsCi0JCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19sYXNhdF9lZXByb21fdmFsdWUsCi0JCS5zdHJhdGVneQk9ICZzeXNjdGxfbGFzYXRfZWVwcm9tX3ZhbHVlCisJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19sYXNhdF9wcmlkLAorCQkuc3RyYXRlZ3kJPSAmc3lzY3RsX2xhc2F0X3ByaWQKIAl9LAogI2lmZGVmIENPTkZJR19JTkVUCiAJewpAQCAtMzYzLDcgKzI5NSw3IEBACiAJCS5zdHJhdGVneQk9ICZzeXNjdGxfbGFzYXRfaW50dmVjCiAJfSwKIAl7Ci0JCS5jdGxfbmFtZQk9IExBU0FUX05FVE1BU0ssCisJCS5jdGxfbmFtZQk9IENUTF9VTk5VTUJFUkVELAogCQkucHJvY25hbWUJPSAibmV0bWFzayIsCiAJCS5kYXRhCQk9ICZsYXNhdF9ib2FyZF9pbmZvLmxpX2VlcHJvbV9pbmZvLm5ldG1hc2ssCiAJCS5tYXhsZW4JCT0gc2l6ZW9mKGludCksCkBAIC0zNzEsMTUgKzMwMyw2IEBACiAJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19sYXNhdF9pcCwKIAkJLnN0cmF0ZWd5CT0gJnN5c2N0bF9sYXNhdF9pbnR2ZWMKIAl9LAotCXsKLQkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCi0JCS5wcm9jbmFtZQk9ICJiY2FzdGFkZHIiLAotCQkuZGF0YQkJPSAmbGFzYXRfYmNhc3RhZGRyLAotCQkubWF4bGVuCQk9IHNpemVvZihsYXNhdF9iY2FzdGFkZHIpLAotCQkubW9kZQkJPSAwNjAwLAotCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9zdHJpbmcsCi0JCS5zdHJhdGVneQk9ICZzeXNjdGxfc3RyaW5nCi0JfSwKICNlbmRpZgogCXsKIAkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCkBAIC00MTcsNyArMzQwLDcgQEAKIAkJLmRhdGEJCT0gJmxhc2F0X2JvYXJkX2luZm8ubGlfbmFtZXN0ciwKIAkJLm1heGxlbgkJPSBzaXplb2YobGFzYXRfYm9hcmRfaW5mby5saV9uYW1lc3RyKSwKIAkJLm1vZGUJCT0gMDQ0NCwKLQkJLnByb2NfaGFuZGxlcgk9ICAmcHJvY19kb3N0cmluZywKKwkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2Rvc3RyaW5nLAogCQkuc3RyYXRlZ3kJPSAmc3lzY3RsX3N0cmluZwogCX0sCiAJewpAQCAtNDQ4LDkgKzM3MSwxMiBAQAogCiAJbGFzYXRfdGFibGVfaGVhZGVyID0KIAkJcmVnaXN0ZXJfc3lzY3RsX3RhYmxlKGxhc2F0X3Jvb3RfdGFibGUpOworCWlmICghbGFzYXRfdGFibGVfaGVhZGVyKSB7CisJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHJlZ2lzdGVyIExBU0FUIHN5c2N0bFxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0KIAogCXJldHVybiAwOwogfQogCiBfX2luaXRjYWxsKGxhc2F0X3JlZ2lzdGVyX3N5c2N0bCk7Ci0jZW5kaWYgLyogQ09ORklHX1NZU0NUTCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5oIGIvYXJjaC9taXBzL2xhc2F0L3N5c2N0bC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDFiOTc5Li4wMDAwMDAwCi0tLSBhL2FyY2gvbWlwcy9sYXNhdC9zeXNjdGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLS8qCi0gKiBMQVNBVCBzeXNjdGwgdmFsdWVzCi0gKi8KLQotI2lmbmRlZiBfTEFTQVRfU1lTQ1RMX0gKLSNkZWZpbmUgX0xBU0FUX1NZU0NUTF9ICi0KLS8qIC9wcm9jL3N5cy9sYXNhdCAqLwotZW51bSB7Ci0JTEFTQVRfQ1BVX0haID0gMSwKLQlMQVNBVF9CVVNfSFosCi0JTEFTQVRfTU9ERUwsCi0JTEFTQVRfUFJJRCwKLQlMQVNBVF9JUEFERFIsCi0JTEFTQVRfTkVUTUFTSywKLQlMQVNBVF9CQ0FTVCwKLQlMQVNBVF9QQVNTV09SRCwKLQlMQVNBVF9TQk9PVCwKLQlMQVNBVF9SVEMsCi0JTEFTQVRfTkFNRVNUUiwKLQlMQVNBVF9UWVBFU1RSLAotfTsKLQotI2VuZGlmIC8qIF9MQVNBVF9TWVNDVExfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21pcHMtYm9hcmRzL2dlbmVyaWMvYW1vbi5jIGIvYXJjaC9taXBzL21pcHMtYm9hcmRzL2dlbmVyaWMvYW1vbi5jCmluZGV4IGI3NjMzZmQuLjk2MjM2YmYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9nZW5lcmljL2Ftb24uYworKysgYi9hcmNoL21pcHMvbWlwcy1ib2FyZHMvZ2VuZXJpYy9hbW9uLmMKQEAgLTI4LDcgKzI4LDcgQEAKIAogaW50IGFtb25fY3B1X2F2YWlsKGludCBjcHUpCiB7Ci0Jc3RydWN0IGNwdWxhdW5jaCAqbGF1bmNoID0gKHN0cnVjdCBjcHVsYXVuY2ggKilLU0VHMEFERFIoQ1BVTEFVTkNIKTsKKwlzdHJ1Y3QgY3B1bGF1bmNoICpsYXVuY2ggPSAoc3RydWN0IGNwdWxhdW5jaCAqKUNLU0VHMEFERFIoQ1BVTEFVTkNIKTsKIAogCWlmIChjcHUgPCAwIHx8IGNwdSA+PSBOQ1BVTEFVTkNIKSB7CiAJCXByX2RlYnVnKCJhdmFpbDogY3B1JWQgaXMgb3V0IG9mIHJhbmdlXG4iLCBjcHUpOwpAQCAtNTMsNyArNTMsNyBAQAogCQkgICAgdW5zaWduZWQgbG9uZyBncCwgdW5zaWduZWQgbG9uZyBhMCkKIHsKIAl2b2xhdGlsZSBzdHJ1Y3QgY3B1bGF1bmNoICpsYXVuY2ggPQotCQkoc3RydWN0IGNwdWxhdW5jaCAgKilLU0VHMEFERFIoQ1BVTEFVTkNIKTsKKwkJKHN0cnVjdCBjcHVsYXVuY2ggICopQ0tTRUcwQUREUihDUFVMQVVOQ0gpOwogCiAJaWYgKCFhbW9uX2NwdV9hdmFpbChjcHUpKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbWlwcy1ib2FyZHMvZ2VuZXJpYy90aW1lLmMgYi9hcmNoL21pcHMvbWlwcy1ib2FyZHMvZ2VuZXJpYy90aW1lLmMKaW5kZXggMDA4ZmQ4Mi4uZmUyY2FjMSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21pcHMtYm9hcmRzL2dlbmVyaWMvdGltZS5jCisrKyBiL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9nZW5lcmljL3RpbWUuYwpAQCAtNTgsMjcgKzU4LDggQEAKIHN0YXRpYyBpbnQgbWlwc19jcHVfcGVyZl9pcnE7CiBleHRlcm4gaW50IGNwMF9wZXJmY291bnRfaXJxOwogCi1ERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCBpbnQsIHRpY2tjb3VudCk7Ci0jZGVmaW5lIHRpY2tjb3VudF90aGlzX2NwdSBfX2dldF9jcHVfdmFyKHRpY2tjb3VudCkKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxlZGJpdG1hc2s7Ci0KIHN0YXRpYyB2b2lkIG1pcHNfdGltZXJfZGlzcGF0Y2godm9pZCkKIHsKLSNpZiBkZWZpbmVkKENPTkZJR19NSVBTX01BTFRBKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0FUTEFTKQotCS8qCi0JICogWWVzLCB0aGlzIGlzIHZlcnkgdGFja3ksIHdvbid0IHdvcmsgYXMgZXhwZWN0ZWQgd2l0aCBTTVRDIGFuZAotCSAqIGR5bnRpY2sgd2lsbCBicmVhayBpdCwKLQkgKiBidXQgaXQgZ2l2ZXMgbWUgYSBuaWNlIHdhcm0gZmVlbGluZyBkdXJpbmcgZGVidWcKLQkgKi8KLSNkZWZpbmUgTEVEQkFSIDB4YmYwMDA0MDgKLQlpZiAodGlja2NvdW50X3RoaXNfY3B1KysgPj0gSFopIHsKLQkJdGlja2NvdW50X3RoaXNfY3B1ID0gMDsKLQkJY2hhbmdlX2JpdChzbXBfcHJvY2Vzc29yX2lkKCksICZsZWRiaXRtYXNrKTsKLQkJc21wX3dtYigpOyAvKiBNYWtlIHN1cmUgZXZlcnkgb25lIGVsc2Ugc2VlcyB0aGUgY2hhbmdlICovCi0JCS8qIFRoaXMgd2lsbCBwaWNrIHVwIGFueSByZWNlbnQgY2hhbmdlcyBtYWRlIGJ5IG90aGVyIENQVSdzICovCi0JCSoodW5zaWduZWQgaW50ICopTEVEQkFSID0gbGVkYml0bWFzazsKLQl9Ci0jZW5kaWYKIAlkb19JUlEobWlwc19jcHVfdGltZXJfaXJxKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21pcHMtYm9hcmRzL21hbHRhL01ha2VmaWxlIGIvYXJjaC9taXBzL21pcHMtYm9hcmRzL21hbHRhL01ha2VmaWxlCmluZGV4IDhkYzZlMmEuLmRiNGFkNjUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9taXBzLWJvYXJkcy9tYWx0YS9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvbWlwcy1ib2FyZHMvbWFsdGEvTWFrZWZpbGUKQEAgLTE5LDkgKzE5LDggQEAKICMgdW5kZXIgTGludXguCiAjCiAKLW9iai15IDo9IG1hbHRhX2ludC5vIG1hbHRhX3BsYXRmb3JtLm8gbWFsdGFfc2V0dXAubworb2JqLXkgOj0gbWFsdGFfaW50Lm8gbWFsdGFfbXRkLm8gbWFsdGFfcGxhdGZvcm0ubyBtYWx0YV9zZXR1cC5vCiAKLW9iai0kKENPTkZJR19NVEQpICs9IG1hbHRhX210ZC5vCiAjIEZJWE1FIEZJWE1FIEZJWE1FCiBvYmotJChDT05GSUdfTUlQU19NVF9TTVRDKSArPSBtYWx0YV9zbXRjLm8KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2MtcjNrLmMgYi9hcmNoL21pcHMvbW0vYy1yM2suYwppbmRleCA3NjkzNWUzLi4yN2E1YjQ2IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vYy1yM2suYworKysgYi9hcmNoL21pcHMvbW0vYy1yM2suYwpAQCAtMjYsNyArMjYsNyBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgaWNhY2hlX3NpemUsIGRjYWNoZV9zaXplOwkJLyogU2l6ZSBpbiBieXRlcyAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgaWNhY2hlX2xzaXplLCBkY2FjaGVfbHNpemU7CS8qIFNpemUgaW4gYnl0ZXMgKi8KIAotdW5zaWduZWQgbG9uZyBfX2luaXQgcjNrX2NhY2hlX3NpemUodW5zaWduZWQgbG9uZyBjYV9mbGFncykKK3Vuc2lnbmVkIGxvbmcgX19jcHVpbml0IHIza19jYWNoZV9zaXplKHVuc2lnbmVkIGxvbmcgY2FfZmxhZ3MpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFncywgc3RhdHVzLCBkdW1teSwgc2l6ZTsKIAl2b2xhdGlsZSB1bnNpZ25lZCBsb25nICpwOwpAQCAtNjEsNyArNjEsNyBAQAogCXJldHVybiBzaXplICogc2l6ZW9mKCpwKTsKIH0KIAotdW5zaWduZWQgbG9uZyBfX2luaXQgcjNrX2NhY2hlX2xzaXplKHVuc2lnbmVkIGxvbmcgY2FfZmxhZ3MpCit1bnNpZ25lZCBsb25nIF9fY3B1aW5pdCByM2tfY2FjaGVfbHNpemUodW5zaWduZWQgbG9uZyBjYV9mbGFncykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzLCBzdGF0dXMsIGxzaXplLCBpOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKnA7CkBAIC05MCw3ICs5MCw3IEBACiAJcmV0dXJuIGxzaXplICogc2l6ZW9mKCpwKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IHIza19wcm9iZV9jYWNoZSh2b2lkKQorc3RhdGljIHZvaWQgX19jcHVpbml0IHIza19wcm9iZV9jYWNoZSh2b2lkKQogewogCWRjYWNoZV9zaXplID0gcjNrX2NhY2hlX3NpemUoU1QwX0lTQyk7CiAJaWYgKGRjYWNoZV9zaXplKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL2MtcjRrLmMgYi9hcmNoL21pcHMvbW0vYy1yNGsuYwppbmRleCA2NDNjOGJjLi4yNzA5Njc1IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vYy1yNGsuYworKysgYi9hcmNoL21pcHMvbW0vYy1yNGsuYwpAQCAtNDQ2LDYgKzQ0Niw3IEBACiAJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwZm5fdG9fcGFnZShmY3BfYXJncy0+cGZuKTsKIAlpbnQgZXhlYyA9IHZtYS0+dm1fZmxhZ3MgJiBWTV9FWEVDOwogCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tID0gdm1hLT52bV9tbTsKKwlpbnQgbWFwX2NvaGVyZW50ID0gMDsKIAlwZ2RfdCAqcGdkcDsKIAlwdWRfdCAqcHVkcDsKIAlwbWRfdCAqcG1kcDsKQEAgLTQ3OSw3ICs0ODAsOSBAQAogCQkgKiBVc2Uga21hcF9jb2hlcmVudCBvciBrbWFwX2F0b21pYyB0byBkbyBmbHVzaGVzIGZvcgogCQkgKiBhbm90aGVyIEFTSUQgdGhhbiB0aGUgY3VycmVudCBvbmUuCiAJCSAqLwotCQlpZiAoY3B1X2hhc19kY19hbGlhc2VzKQorCQltYXBfY29oZXJlbnQgPSAoY3B1X2hhc19kY19hbGlhc2VzICYmCisJCQkJcGFnZV9tYXBwZWQocGFnZSkgJiYgIVBhZ2VfZGNhY2hlX2RpcnR5KHBhZ2UpKTsKKwkJaWYgKG1hcF9jb2hlcmVudCkKIAkJCXZhZGRyID0ga21hcF9jb2hlcmVudChwYWdlLCBhZGRyKTsKIAkJZWxzZQogCQkJdmFkZHIgPSBrbWFwX2F0b21pYyhwYWdlLCBLTV9VU0VSMCk7CkBAIC01MDIsNyArNTA1LDcgQEAKIAl9CiAKIAlpZiAodmFkZHIpIHsKLQkJaWYgKGNwdV9oYXNfZGNfYWxpYXNlcykKKwkJaWYgKG1hcF9jb2hlcmVudCkKIAkJCWt1bm1hcF9jb2hlcmVudCgpOwogCQllbHNlCiAJCQlrdW5tYXBfYXRvbWljKHZhZGRyLCBLTV9VU0VSMCk7CkBAIC0xMjI2LDYgKzEyMjksMjggQEAKIAl9CiB9CiAKKy8qIENQMCBoYXphcmQgYXZvaWRhbmNlLiAqLworI2RlZmluZSBOWFBfQkFSUklFUigpCQkJCQkJCVwKKwkgX19hc21fXyBfX3ZvbGF0aWxlX18oCQkJCQkJXAorCSIuc2V0IG5vcmVvcmRlclxuXHQiCQkJCQkJXAorCSJub3A7IG5vcDsgbm9wOyBub3A7IG5vcDsgbm9wO1xuXHQiCQkJCVwKKwkiLnNldCByZW9yZGVyXG5cdCIpCisKK3N0YXRpYyB2b2lkIG54cF9wcjQ0NTBfZml4dXBfY29uZmlnKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBjb25maWcwOworCisJY29uZmlnMCA9IHJlYWRfYzBfY29uZmlnKCk7CisKKwkvKiBjbGVhciBhbGwgdGhyZWUgY2FjaGUgY29oZXJlbmN5IGZpZWxkcyAqLworCWNvbmZpZzAgJj0gfigweDcgfCAoNyA8PCAyNSkgfCAoNyA8PCAyOCkpOworCWNvbmZpZzAgfD0gKCgoX3BhZ2VfY2FjaGFibGVfZGVmYXVsdCA+PiBfQ0FDSEVfU0hJRlQpIDw8ICAwKSB8CisJCSAgICAoKF9wYWdlX2NhY2hhYmxlX2RlZmF1bHQgPj4gX0NBQ0hFX1NISUZUKSA8PCAyNSkgfAorCQkgICAgKChfcGFnZV9jYWNoYWJsZV9kZWZhdWx0ID4+IF9DQUNIRV9TSElGVCkgPDwgMjgpKTsKKwl3cml0ZV9jMF9jb25maWcoY29uZmlnMCk7CisJTlhQX0JBUlJJRVIoKTsKK30KKwogc3RhdGljIGludCBfX2NwdWluaXRkYXRhIGNjYSA9IC0xOwogCiBzdGF0aWMgaW50IF9faW5pdCBjY2Ffc2V0dXAoY2hhciAqc3RyKQpAQCAtMTI3MSw2ICsxMjk2LDEwIEBACiAJY2FzZSBDUFVfQVUxNTAwOiAvKiByZXYuIEFCICovCiAJCWF1MXgwMF9maXh1cF9jb25maWdfb2QoKTsKIAkJYnJlYWs7CisKKwljYXNlIFBSSURfSU1QX1BSNDQ1MDoKKwkJbnhwX3ByNDQ1MF9maXh1cF9jb25maWcoKTsKKwkJYnJlYWs7CiAJfQogfQogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vaW5pdC5jIGIvYXJjaC9taXBzL21tL2luaXQuYwppbmRleCBlY2Q1NjJkLi4xMzdjMTRiIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbW0vaW5pdC5jCisrKyBiL2FyY2gvbWlwcy9tbS9pbml0LmMKQEAgLTcxLDYgKzcxLDcgQEAKICAqIGRvbid0IGhhdmUgdG8gY2FyZSBhYm91dCBhbGlhc2VzIG9uIG90aGVyIENQVXMuCiAgKi8KIHVuc2lnbmVkIGxvbmcgZW1wdHlfemVyb19wYWdlLCB6ZXJvX3BhZ2VfbWFzazsKK0VYUE9SVF9TWU1CT0xfR1BMKGVtcHR5X3plcm9fcGFnZSk7CiAKIC8qCiAgKiBOb3Qgc3RhdGljIGlubGluZSBiZWNhdXNlIHVzZWQgYnkgSVAyNyBzcGVjaWFsIG1hZ2ljIGluaXRpYWxpemF0aW9uIGNvZGUKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9wYWdlLmMgYi9hcmNoL21pcHMvbW0vcGFnZS5jCmluZGV4IGQ4MjdkNjEuLjE0MTdjNjQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS9wYWdlLmMKKysrIGIvYXJjaC9taXBzL21tL3BhZ2UuYwpAQCAtMjM1LDEzICsyMzUsMTIgQEAKIAl9CiAJLyoKIAkgKiBUb28gbXVjaCB1bnJvbGxpbmcgd2lsbCBvdmVyZmxvdyB0aGUgYXZhaWxhYmxlIHNwYWNlIGluCi0JICogY2xlYXJfc3BhY2VfYXJyYXkgLyBjb3B5X3BhZ2VfYXJyYXkuIDggd29yZHMgc291bmRzIGdlbmVyb3VzLAotCSAqIGJ1dCBhIFI0MDAwIHdpdGggMTI4IGJ5dGUgTDIgbGluZSBsZW5ndGggY2FuIGV4Y2VlZCBldmVuIHRoYXQuCisJICogY2xlYXJfc3BhY2VfYXJyYXkgLyBjb3B5X3BhZ2VfYXJyYXkuCiAJICovCi0JaGFsZl9jbGVhcl9sb29wX3NpemUgPSBtaW4oOCAqIGNsZWFyX3dvcmRfc2l6ZSwKKwloYWxmX2NsZWFyX2xvb3Bfc2l6ZSA9IG1pbigxNiAqIGNsZWFyX3dvcmRfc2l6ZSwKIAkJCQkgICBtYXgoY2FjaGVfbGluZV9zaXplID4+IDEsCiAJCQkJICAgICAgIDQgKiBjbGVhcl93b3JkX3NpemUpKTsKLQloYWxmX2NvcHlfbG9vcF9zaXplID0gbWluKDggKiBjb3B5X3dvcmRfc2l6ZSwKKwloYWxmX2NvcHlfbG9vcF9zaXplID0gbWluKDE2ICogY29weV93b3JkX3NpemUsCiAJCQkJICBtYXgoY2FjaGVfbGluZV9zaXplID4+IDEsCiAJCQkJICAgICAgNCAqIGNvcHlfd29yZF9zaXplKSk7CiB9CkBAIC0yNjMsMjEgKzI2MiwyMyBAQAogCWlmIChwcmVmX2JpYXNfY2xlYXJfc3RvcmUpIHsKIAkJdWFzbV9pX3ByZWYoYnVmLCBwcmVmX2RzdF9tb2RlLCBwcmVmX2JpYXNfY2xlYXJfc3RvcmUgKyBvZmYsCiAJCQkgICAgQTApOwotCX0gZWxzZSBpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKLQkJdWFzbV9pX2NhY2hlKGJ1ZiwgQ3JlYXRlX0RpcnR5X0V4Y2xfU0QsIG9mZiwgQTApOwotCX0gZWxzZSBpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3ApIHsKLQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7CisJfSBlbHNlIGlmIChjYWNoZV9saW5lX3NpemUgPT0gKGhhbGZfY2xlYXJfbG9vcF9zaXplIDw8IDEpKSB7CisJCWlmIChjcHVfaGFzX2NhY2hlX2NkZXhfcykgeworCQkJdWFzbV9pX2NhY2hlKGJ1ZiwgQ3JlYXRlX0RpcnR5X0V4Y2xfU0QsIG9mZiwgQTApOworCQl9IGVsc2UgaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9wKSB7CisJCQlpZiAoUjQ2MDBfVjFfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92MV94KCkpIHsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQl9CisKKwkJCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKKwkJCQl1YXNtX2lfbHcoYnVmLCBaRVJPLCBaRVJPLCBBVCk7CisKKwkJCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX0QsIG9mZiwgQTApOwogCQl9Ci0KLQkJaWYgKFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjJfeCgpKQotCQkJdWFzbV9pX2x3KGJ1ZiwgWkVSTywgWkVSTywgQVQpOwotCi0JCXVhc21faV9jYWNoZShidWYsIENyZWF0ZV9EaXJ0eV9FeGNsX0QsIG9mZiwgQTApOwotCX0KKwkJfQogfQogCiB2b2lkIF9fY3B1aW5pdCBidWlsZF9jbGVhcl9wYWdlKHZvaWQpCkBAIC0zMTAsOCArMzExLDggQEAKIAlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCiAJCXVhc21faV9sdWkoJmJ1ZiwgQVQsIDB4YTAwMCk7CiAKLQlvZmYgPSBtaW4oOCwgcHJlZl9iaWFzX2NsZWFyX3N0b3JlIC8gY2FjaGVfbGluZV9zaXplKSAqCi0JICAgICAgY2FjaGVfbGluZV9zaXplOworCW9mZiA9IGNhY2hlX2xpbmVfc2l6ZSA/IG1pbig4LCBwcmVmX2JpYXNfY2xlYXJfc3RvcmUgLyBjYWNoZV9saW5lX3NpemUpCisJICAgICAgICAgICAgICAgICAgICAgICAgKiBjYWNoZV9saW5lX3NpemUgOiAwOwogCXdoaWxlIChvZmYpIHsKIAkJYnVpbGRfY2xlYXJfcHJlZigmYnVmLCAtb2ZmKTsKIAkJb2ZmIC09IGNhY2hlX2xpbmVfc2l6ZTsKQEAgLTQwMywyMCArNDA0LDIyIEBACiAJaWYgKHByZWZfYmlhc19jb3B5X3N0b3JlKSB7CiAJCXVhc21faV9wcmVmKGJ1ZiwgcHJlZl9kc3RfbW9kZSwgcHJlZl9iaWFzX2NvcHlfc3RvcmUgKyBvZmYsCiAJCQkgICAgQTApOwotCX0gZWxzZSBpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3MpIHsKLQkJdWFzbV9pX2NhY2hlKGJ1ZiwgQ3JlYXRlX0RpcnR5X0V4Y2xfU0QsIG9mZiwgQTApOwotCX0gZWxzZSBpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3ApIHsKLQkJaWYgKFI0NjAwX1YxX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjFfeCgpKSB7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7Ci0JCQl1YXNtX2lfbm9wKGJ1Zik7CisJfSBlbHNlIGlmIChjYWNoZV9saW5lX3NpemUgPT0gKGhhbGZfY29weV9sb29wX3NpemUgPDwgMSkpIHsKKwkJaWYgKGNwdV9oYXNfY2FjaGVfY2RleF9zKSB7CisJCQl1YXNtX2lfY2FjaGUoYnVmLCBDcmVhdGVfRGlydHlfRXhjbF9TRCwgb2ZmLCBBMCk7CisJCX0gZWxzZSBpZiAoY3B1X2hhc19jYWNoZV9jZGV4X3ApIHsKKwkJCWlmIChSNDYwMF9WMV9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YxX3goKSkgeworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCQl1YXNtX2lfbm9wKGJ1Zik7CisJCQkJdWFzbV9pX25vcChidWYpOworCQkJCXVhc21faV9ub3AoYnVmKTsKKwkJCX0KKworCQkJaWYgKFI0NjAwX1YyX0hJVF9DQUNIRU9QX1dBUiAmJiBjcHVfaXNfcjQ2MDBfdjJfeCgpKQorCQkJCXVhc21faV9sdyhidWYsIFpFUk8sIFpFUk8sIEFUKTsKKworCQkJdWFzbV9pX2NhY2hlKGJ1ZiwgQ3JlYXRlX0RpcnR5X0V4Y2xfRCwgb2ZmLCBBMCk7CiAJCX0KLQotCQlpZiAoUjQ2MDBfVjJfSElUX0NBQ0hFT1BfV0FSICYmIGNwdV9pc19yNDYwMF92Ml94KCkpCi0JCQl1YXNtX2lfbHcoYnVmLCBaRVJPLCBaRVJPLCBBVCk7Ci0KLQkJdWFzbV9pX2NhY2hlKGJ1ZiwgQ3JlYXRlX0RpcnR5X0V4Y2xfRCwgb2ZmLCBBMCk7CiAJfQogfQogCkBAIC00NTQsMTIgKzQ1NywxNCBAQAogCWlmIChSNDYwMF9WMl9ISVRfQ0FDSEVPUF9XQVIgJiYgY3B1X2lzX3I0NjAwX3YyX3goKSkKIAkJdWFzbV9pX2x1aSgmYnVmLCBBVCwgMHhhMDAwKTsKIAotCW9mZiA9IG1pbig4LCBwcmVmX2JpYXNfY29weV9sb2FkIC8gY2FjaGVfbGluZV9zaXplKSAqIGNhY2hlX2xpbmVfc2l6ZTsKKwlvZmYgPSBjYWNoZV9saW5lX3NpemUgPyBtaW4oOCwgcHJlZl9iaWFzX2NvcHlfbG9hZCAvIGNhY2hlX2xpbmVfc2l6ZSkgKgorCSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX2xpbmVfc2l6ZSA6IDA7CiAJd2hpbGUgKG9mZikgewogCQlidWlsZF9jb3B5X2xvYWRfcHJlZigmYnVmLCAtb2ZmKTsKIAkJb2ZmIC09IGNhY2hlX2xpbmVfc2l6ZTsKIAl9Ci0Jb2ZmID0gbWluKDgsIHByZWZfYmlhc19jb3B5X3N0b3JlIC8gY2FjaGVfbGluZV9zaXplKSAqIGNhY2hlX2xpbmVfc2l6ZTsKKwlvZmYgPSBjYWNoZV9saW5lX3NpemUgPyBtaW4oOCwgcHJlZl9iaWFzX2NvcHlfc3RvcmUgLyBjYWNoZV9saW5lX3NpemUpICoKKwkgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9saW5lX3NpemUgOiAwOwogCXdoaWxlIChvZmYpIHsKIAkJYnVpbGRfY29weV9zdG9yZV9wcmVmKCZidWYsIC1vZmYpOwogCQlvZmYgLT0gY2FjaGVfbGluZV9zaXplOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL21tL3NjLXJtN2suYyBiL2FyY2gvbWlwcy9tbS9zYy1ybTdrLmMKaW5kZXggZmMyMjdmMy4uZTNhYmZiMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL21tL3NjLXJtN2suYworKysgYi9hcmNoL21pcHMvbW0vc2Mtcm03ay5jCkBAIC04Niw3ICs4Niw3IEBACiAvKgogICogVGhpcyBmdW5jdGlvbiBpcyBleGVjdXRlZCBpbiB1bmNhY2hlZCBhZGRyZXNzIHNwYWNlLgogICovCi1zdGF0aWMgX19pbml0IHZvaWQgX19ybTdrX3NjX2VuYWJsZSh2b2lkKQorc3RhdGljIF9fY3B1aW5pdCB2b2lkIF9fcm03a19zY19lbmFibGUodm9pZCkKIHsKIAlpbnQgaTsKIApAQCAtMTA3LDcgKzEwNyw3IEBACiAJfQogfQogCi1zdGF0aWMgX19pbml0IHZvaWQgcm03a19zY19lbmFibGUodm9pZCkKK3N0YXRpYyBfX2NwdWluaXQgdm9pZCBybTdrX3NjX2VuYWJsZSh2b2lkKQogewogCWlmIChyZWFkX2MwX2NvbmZpZygpICYgUk03S19DT05GX1NFKQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbW0vdGxiZXguYyBiL2FyY2gvbWlwcy9tbS90bGJleC5jCmluZGV4IDM4MjczOGMuLjc2ZGE3M2EgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9tbS90bGJleC5jCisrKyBiL2FyY2gvbWlwcy9tbS90bGJleC5jCkBAIC0yMjQsOCArMjI0LDkgQEAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBfX21heWJlX3VudXNlZCBidWlsZF90bGJfcHJvYmVfZW50cnkodTMyICoqcCkKIHsKIAlzd2l0Y2ggKGN1cnJlbnRfY3B1X3R5cGUoKSkgewotCS8qIEZvdW5kIGJ5IGV4cGVyaW1lbnQ6IFI0NjAwIHYyLjAgbmVlZHMgdGhpcywgdG9vLiAgKi8KKwkvKiBGb3VuZCBieSBleHBlcmltZW50OiBSNDYwMCB2Mi4wL1I0NzAwIG5lZWRzIHRoaXMsIHRvby4gICovCiAJY2FzZSBDUFVfUjQ2MDA6CisJY2FzZSBDUFVfUjQ3MDA6CiAJY2FzZSBDUFVfUjUwMDA6CiAJY2FzZSBDUFVfUjUwMDBBOgogCWNhc2UgQ1BVX05FVkFEQToKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9ueHAvcG54ODU1MC9qYnMvYm9hcmRfc2V0dXAuYyBiL2FyY2gvbWlwcy9ueHAvcG54ODU1MC9qYnMvYm9hcmRfc2V0dXAuYwppbmRleCBmOTI4MjZlLi41N2RkOTAzIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvbnhwL3BueDg1NTAvamJzL2JvYXJkX3NldHVwLmMKKysrIGIvYXJjaC9taXBzL254cC9wbng4NTUwL2picy9ib2FyZF9zZXR1cC5jCkBAIC00NywxNiArNDcsNyBAQAogCiB2b2lkIF9faW5pdCBib2FyZF9zZXR1cCh2b2lkKQogewotCXVuc2lnbmVkIGxvbmcgY29uZmlnMCwgY29uZmlncHI7Ci0KLQljb25maWcwID0gcmVhZF9jMF9jb25maWcoKTsKLQotCS8qIGNsZWFyIGFsbCB0aHJlZSBjYWNoZSBjb2hlcmVuY3kgZmllbGRzICovCi0JY29uZmlnMCAmPSB+KDB4NyB8ICg3PDwyNSkgfCAoNzw8MjgpKTsKLQljb25maWcwIHw9IChDT05GX0NNX0RFRkFVTFQgfCAoQ09ORl9DTV9ERUZBVUxUPDwyNSkgfAotCQkJKENPTkZfQ01fREVGQVVMVDw8MjgpKTsKLQl3cml0ZV9jMF9jb25maWcoY29uZmlnMCk7Ci0JQkFSUklFUjsKKwl1bnNpZ25lZCBsb25nIGNvbmZpZ3ByOwogCiAJY29uZmlncHIgPSByZWFkX2MwX2NvbmZpZzcoKTsKIAljb25maWdwciB8PSAoMTw8MTkpOyAvKiBlbmFibGUgdGxiICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvbnhwL3BueDg1NTAvc3RiODEwL2JvYXJkX3NldHVwLmMgYi9hcmNoL21pcHMvbnhwL3BueDg1NTAvc3RiODEwL2JvYXJkX3NldHVwLmMKaW5kZXggMTI4MmMyNy4uYWYyYTU1ZSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL254cC9wbng4NTUwL3N0YjgxMC9ib2FyZF9zZXR1cC5jCisrKyBiL2FyY2gvbWlwcy9ueHAvcG54ODU1MC9zdGI4MTAvYm9hcmRfc2V0dXAuYwpAQCAtMzMsMTUgKzMzLDcgQEAKIAogdm9pZCBfX2luaXQgYm9hcmRfc2V0dXAodm9pZCkKIHsKLQl1bnNpZ25lZCBsb25nIGNvbmZpZzAsIGNvbmZpZ3ByOwotCi0JY29uZmlnMCA9IHJlYWRfYzBfY29uZmlnKCk7Ci0KLQkvKiBjbGVhciBhbGwgdGhyZWUgY2FjaGUgY29oZXJlbmN5IGZpZWxkcyAqLwotCWNvbmZpZzAgJj0gfigweDcgfCAoNzw8MjUpIHwgKDc8PDI4KSk7Ci0JY29uZmlnMCB8PSAoQ09ORl9DTV9ERUZBVUxUIHwgKENPTkZfQ01fREVGQVVMVDw8MjUpIHwKLQkJCShDT05GX0NNX0RFRkFVTFQ8PDI4KSk7Ci0Jd3JpdGVfYzBfY29uZmlnKGNvbmZpZzApOworCXVuc2lnbmVkIGxvbmcgY29uZmlncHI7CiAKIAljb25maWdwciA9IHJlYWRfYzBfY29uZmlnNygpOwogCWNvbmZpZ3ByIHw9ICgxPDwxOSk7IC8qIGVuYWJsZSB0bGIgKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wY2kvb3BzLWJyaWRnZS5jIGIvYXJjaC9taXBzL3BjaS9vcHMtYnJpZGdlLmMKaW5kZXggMWZhMDk5Mi4uYjQ2YjNlMiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9vcHMtYnJpZGdlLmMKKysrIGIvYXJjaC9taXBzL3BjaS9vcHMtYnJpZGdlLmMKQEAgLTE0LDYgKzE0LDIyIEBACiAjaW5jbHVkZSA8YXNtL3NuL3NuMC9odWIuaD4KIAogLyoKKyAqIE1vc3Qgb2YgdGhlIElPQzMgUENJIGNvbmZpZyByZWdpc3RlciBhcmVuJ3QgcHJlc2VudAorICogd2UgZW11bGF0ZSB3aGF0IGlzIG5lZWRlZCBmb3IgYSBub3JtYWwgUENJIGVudW1lcmF0aW9uCisgKi8KK3N0YXRpYyB1MzIgZW11bGF0ZV9pb2MzX2NmZyhpbnQgd2hlcmUsIGludCBzaXplKQoreworCWlmIChzaXplID09IDEgJiYgd2hlcmUgPT0gMHgzZCkKKwkJcmV0dXJuIDB4MDE7CisJZWxzZSBpZiAoc2l6ZSA9PSAyICYmIHdoZXJlID09IDB4M2MpCisJCXJldHVybiAweDAxMDA7CisJZWxzZSBpZiAoc2l6ZSA9PSA0ICYmIHdoZXJlID09IDB4M2MpCisJCXJldHVybiAweDAwMDAwMTAwOworCisJcmV0dXJuIDA7Cit9CisKKy8qCiAgKiBUaGUgQnJpZGdlIEFTSUMgc3VwcG9ydHMgYm90aCB0eXBlIDAgYW5kIHR5cGUgMSBhY2Nlc3MuICBUeXBlIDEgaXMKICAqIG5vdCByZWFsbHkgZG9jdW1lbnRlZCwgc28gcmlnaHQgbm93IEkgY2FuJ3Qgd3JpdGUgY29kZSB3aGljaCB1c2VzIGl0LgogICogVGhlcmVmb3JlIHdlIHVzZSB0eXBlIDAgYWNjZXNzZXMgZm9yIG5vdyBldmVuIHRob3VnaCB0aGV5IHdvbid0IHdvcmsKQEAgLTY0LDcgKzgwLDcgQEAKIAkgKiBnZW5lcmljIFBDSSBjb2RlIGEgY2hhbmNlIHRvIGxvb2sgYXQgdGhlIHdyb25nIHJlZ2lzdGVyLgogCSAqLwogCWlmICgod2hlcmUgPj0gMHgxNCAmJiB3aGVyZSA8IDB4NDApIHx8ICh3aGVyZSA+PSAweDQ4KSkgewotCQkqdmFsdWUgPSAwOworCQkqdmFsdWUgPSBlbXVsYXRlX2lvYzNfY2ZnKHdoZXJlLCBzaXplKTsKIAkJcmV0dXJuIFBDSUJJT1NfU1VDQ0VTU0ZVTDsKIAl9CiAKQEAgLTEyNyw3ICsxNDMsNyBAQAogCSAqIGdlbmVyaWMgUENJIGNvZGUgYSBjaGFuY2UgdG8gbG9vayBhdCB0aGUgd3JvbmcgcmVnaXN0ZXIuCiAJICovCiAJaWYgKCh3aGVyZSA+PSAweDE0ICYmIHdoZXJlIDwgMHg0MCkgfHwgKHdoZXJlID49IDB4NDgpKSB7Ci0JCSp2YWx1ZSA9IDA7CisJCSp2YWx1ZSA9IGVtdWxhdGVfaW9jM19jZmcod2hlcmUsIHNpemUpOwogCQlyZXR1cm4gUENJQklPU19TVUNDRVNTRlVMOwogCX0KIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3BjaS9wY2ktaXAyNy5jIGIvYXJjaC9taXBzL3BjaS9wY2ktaXAyNy5jCmluZGV4IGJiNjQ4MjguLmExODUxNjkgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9wY2kvcGNpLWlwMjcuYworKysgYi9hcmNoL21pcHMvcGNpL3BjaS1pcDI3LmMKQEAgLTQ3LDYgKzQ3LDkgQEAKIAlzdGF0aWMgaW50IG51bV9icmlkZ2VzID0gMDsKIAlicmlkZ2VfdCAqYnJpZGdlOwogCWludCBzbG90OworCWV4dGVybiBpbnQgcGNpX3Byb2JlX29ubHk7CisKKwlwY2lfcHJvYmVfb25seSA9IDE7CiAKIAlwcmludGsoImEgYnJpZGdlXG4iKTsKIApAQCAtMTAwLDYgKzEwMywxMSBAQAogCSAqLwogCWJyaWRnZS0+Yl93aWRfY29udHJvbCB8PSBCUklER0VfQ1RSTF9JT19TV0FQIHwKIAkgICAgICAgICAgICAgICAgICAgICAgICAgQlJJREdFX0NUUkxfTUVNX1NXQVA7CisjaWZkZWYgQ09ORklHX1BBR0VfU0laRV80S0IKKwlicmlkZ2UtPmJfd2lkX2NvbnRyb2wgJj0gfkJSSURHRV9DVFJMX1BBR0VfU0laRTsKKyNlbHNlIC8qIDE2a0Igb3IgbGFyZ2VyICovCisJYnJpZGdlLT5iX3dpZF9jb250cm9sIHw9IEJSSURHRV9DVFJMX1BBR0VfU0laRTsKKyNlbmRpZgogCiAJLyoKIAkgKiBIbW0uLi4gIElSSVggc2V0cyBhZGRpdGlvbmFsIGJpdHMgaW4gdGhlIGFkZHJlc3Mgd2hpY2gKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wY2kvcGNpLXNiMTI1MC5jIGIvYXJjaC9taXBzL3BjaS9wY2ktc2IxMjUwLmMKaW5kZXggNDJlNGQyYy4uMmEwOWFkOSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9wY2ktc2IxMjUwLmMKKysrIGIvYXJjaC9taXBzL3BjaS9wY2ktc2IxMjUwLmMKQEAgLTIwNyw2ICsyMDcsNyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBzYjEyNTBfcGNpYmlvc19pbml0KHZvaWQpCiB7CisJdm9pZCBfX2lvbWVtICppb19tYXBfYmFzZTsKIAl1aW50MzJfdCBjbWRyZWc7CiAJdWludDY0X3QgcmVnOwogCWV4dGVybiBpbnQgcGNpX3Byb2JlX29ubHk7CkBAIC0yNTMsMTIgKzI1NCwxMyBAQAogCSAqIHdvcmtzIGNvcnJlY3RseSB3aXRoIG1vc3Qgb2YgTGludXgncyBkcml2ZXJzLgogCSAqIFhYWCBlaHM6IFNob3VsZCB0aGlzIGhhcHBlbiBpbiBQQ0kgRGV2aWNlIG1vZGU/CiAJICovCi0KLQlzZXRfaW9fcG9ydF9iYXNlKCh1bnNpZ25lZCBsb25nKQotCQkJIGlvcmVtYXAoQV9QSFlTX0xEVFBDSV9JT19NQVRDSF9CWVRFUywgNjU1MzYpKTsKIAlpc2Ffc2xvdF9vZmZzZXQgPSAodW5zaWduZWQgbG9uZykKIAkgICAgaW9yZW1hcChBX1BIWVNfTERUUENJX0lPX01BVENIX0JZVEVTXzMyLCAxMDI0ICogMTAyNCk7CiAKKwlpb19tYXBfYmFzZSA9IGlvcmVtYXAoQV9QSFlTX0xEVFBDSV9JT19NQVRDSF9CWVRFUywgMTAyNCAqIDEwMjQpOworCXNiMTI1MF9jb250cm9sbGVyLmlvX21hcF9iYXNlID0gaW9fbWFwX2Jhc2U7CisJc2V0X2lvX3BvcnRfYmFzZSgodW5zaWduZWQgbG9uZylpb19tYXBfYmFzZSk7CisKICNpZmRlZiBDT05GSUdfU0lCWVRFX0hBU19MRFQKIAkvKgogCSAqIEFsc28gY2hlY2sgdGhlIExEVCBicmlkZ2UncyBlbmFibGUsIGp1c3QgaW4gY2FzZSB3ZSBkaWRuJ3QKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9wY2kvcGNpLXZyNDF4eC5jIGIvYXJjaC9taXBzL3BjaS9wY2ktdnI0MXh4LmMKaW5kZXggMzNjNGY2OC4uZDFlMDQ5YiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3BjaS9wY2ktdnI0MXh4LmMKKysrIGIvYXJjaC9taXBzL3BjaS9wY2ktdnI0MXh4LmMKQEAgLTMsNyArMyw3IEBACiAgKgogICogIENvcHlyaWdodCAoQykgMjAwMS0yMDAzIE1vbnRhVmlzdGEgU29mdHdhcmUgSW5jLgogICogICAgQXV0aG9yOiBZb2ljaGkgWXVhc2EgPHl5dWFzYUBtdmlzdGEuY29tIG9yIHNvdXJjZUBtdmlzdGEuY29tPgotICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA1ICBZb2ljaGkgWXVhc2EgPHlvaWNoaV95dWFzYUB0cmlwZWFrcy5jby5qcD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCAgWW9pY2hpIFl1YXNhIDx5b2ljaGlfeXVhc2FAdHJpcGVha3MuY28uanA+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA0IGJ5IFJhbGYgQmFlY2hsZSAocmFsZkBsaW51eC1taXBzLm9yZykKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKQEAgLTMwMCw2ICszMDAsMTggQEAKIAkJaW9wb3J0X3Jlc291cmNlLmVuZCA9IElPX1BPUlRfUkVTT1VSQ0VfRU5EOwogCX0KIAorCWlmIChzZXR1cC0+bWFzdGVyX2lvKSB7CisJCXZvaWQgX19pb21lbSAqaW9fbWFwX2Jhc2U7CisJCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gdnI0MXh4X3BjaV9jb250cm9sbGVyLmlvX3Jlc291cmNlOworCQltYXN0ZXIgPSBzZXR1cC0+bWFzdGVyX2lvOworCQlpb19tYXBfYmFzZSA9IGlvcmVtYXAobWFzdGVyLT5idXNfYmFzZV9hZGRyZXNzLAorCQkJCSAgICAgIHJlcy0+ZW5kIC0gcmVzLT5zdGFydCArIDEpOworCQlpZiAoIWlvX21hcF9iYXNlKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQl2cjQxeHhfcGNpX2NvbnRyb2xsZXIuaW9fbWFwX2Jhc2UgPSAodW5zaWduZWQgbG9uZylpb19tYXBfYmFzZTsKKwl9CisKIAlyZWdpc3Rlcl9wY2lfY29udHJvbGxlcigmdnI0MXh4X3BjaV9jb250cm9sbGVyKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctaW5pdC5jIGIvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctaW5pdC5jCmluZGV4IDcwOTNlN2MuLjRhNTAwZTggMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9zZ2ktaXAyNy9pcDI3LWluaXQuYworKysgYi9hcmNoL21pcHMvc2dpLWlwMjcvaXAyNy1pbml0LmMKQEAgLTE2MSwyNyArMTYxLDYgQEAKIAlyZXR1cm4gTkFTSURfVE9fQ09NUEFDVF9OT0RFSUQoZ2V0X25hc2lkKCkpOwogfQogCi0vKiBFeHRyYWN0ZWQgZnJvbSB0aGUgSU9DMyBtZXRhIGRyaXZlci4gIEZJWE1FLiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBpb2MzX3Npb19pbml0KHZvaWQpCi17Ci0Jc3RydWN0IGlvYzMgKmlvYzM7Ci0JbmFzaWRfdCBuaWQ7Ci0JbG9uZyBsb29wczsKLQotCW5pZCA9IGdldF9uYXNpZCgpOwotCWlvYzMgPSAoc3RydWN0IGlvYzMgKikgS0xfQ09ORklHX0NIX0NPTlNfSU5GTyhuaWQpLT5tZW1vcnlfYmFzZTsKLQotCWlvYzMtPnNzY3JfYSA9IDA7CQkJLyogUElPIG1vZGUgZm9yIHVhcnRhLiAgKi8KLQlpb2MzLT5zc2NyX2IgPSAwOwkJCS8qIFBJTyBtb2RlIGZvciB1YXJ0Yi4gICovCi0JaW9jMy0+c2lvX2llYyA9IH4wOwotCWlvYzMtPnNpb19pZXMgPSAoU0lPX0lSX1NBX0lOVCB8IFNJT19JUl9TQl9JTlQpOwotCi0JbG9vcHM9MTAwMDAwMDsgd2hpbGUobG9vcHMtLSk7Ci0JaW9jMy0+c3JlZ3MudWFydGEuaXVfZmNyID0gMDsKLQlpb2MzLT5zcmVncy51YXJ0Yi5pdV9mY3IgPSAwOwotCWxvb3BzPTEwMDAwMDA7IHdoaWxlKGxvb3BzLS0pOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgaW9jM19ldGhfaW5pdCh2b2lkKQogewogCXN0cnVjdCBpb2MzICppb2MzOwpAQCAtMjM0LDcgKzIxMyw2IEBACiAJCXBhbmljKCJLZXJuZWwgY29tcGlsZWQgZm9yIE4gbW9kZS4iKTsKICNlbmRpZgogCi0JaW9jM19zaW9faW5pdCgpOwogCWlvYzNfZXRoX2luaXQoKTsKIAlwZXJfY3B1X2luaXQoKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctbWVtb3J5LmMgYi9hcmNoL21pcHMvc2dpLWlwMjcvaXAyNy1tZW1vcnkuYwppbmRleCBiZjQzOGQwLi40MmNkMTA5IDEwMDY0NAotLS0gYS9hcmNoL21pcHMvc2dpLWlwMjcvaXAyNy1tZW1vcnkuYworKysgYi9hcmNoL21pcHMvc2dpLWlwMjcvaXAyNy1tZW1vcnkuYwpAQCAtMzMsMTAgKzMzLDYgQEAKICNkZWZpbmUgU0xPVF9QRk5TSElGVCAgICAgICAgICAgKFNMT1RfU0hJRlQgLSBQQUdFX1NISUZUKQogI2RlZmluZSBQRk5fTkFTSURTSEZUICAgICAgICAgICAoTkFTSURfU0hGVCAtIFBBR0VfU0hJRlQpCiAKLSNkZWZpbmUgU0xPVF9JR05PUkVECQkweGZmZmYKLQotc3RhdGljIHNob3J0IF9faW5pdGRhdGEgc2xvdF9sYXN0ZmlsbGVkX2NhY2hlW01BWF9DT01QQUNUX05PREVTXTsKLXN0YXRpYyB1bnNpZ25lZCBzaG9ydCBfX2luaXRkYXRhIHNsb3RfcHNpemVfY2FjaGVbTUFYX0NPTVBBQ1RfTk9ERVNdW01BWF9NRU1fU0xPVFNdOwogc3RhdGljIHN0cnVjdCBib290bWVtX2RhdGEgX19pbml0ZGF0YSBwbGF0X25vZGVfYmRhdGFbTUFYX0NPTVBBQ1RfTk9ERVNdOwogCiBzdHJ1Y3Qgbm9kZV9kYXRhICpfX25vZGVfZGF0YVtNQVhfQ09NUEFDVF9OT0RFU107CkBAIC0yNjcsNTEgKzI2Myw2IEBACiAJcmV0dXJuICgocGZuX3QpbmFzaWQgPDwgUEZOX05BU0lEU0hGVCkgfCAoc2xvdCA8PCBTTE9UX1BGTlNISUZUKTsKIH0KIAotLyoKLSAqIFJldHVybiB0aGUgbnVtYmVyIG9mIHBhZ2VzIG9mIG1lbW9yeSBwcm92aWRlZCBieSB0aGUgZ2l2ZW4gc2xvdAotICogb24gdGhlIHNwZWNpZmllZCBub2RlLgotICovCi1zdGF0aWMgcGZuX3QgX19pbml0IHNsb3RfZ2V0c2l6ZShjbm9kZWlkX3Qgbm9kZSwgaW50IHNsb3QpCi17Ci0JcmV0dXJuIChwZm5fdCkgc2xvdF9wc2l6ZV9jYWNoZVtub2RlXVtzbG90XTsKLX0KLQotLyoKLSAqIFJldHVybiBoaWdoZXN0IHNsb3QgZmlsbGVkCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IG5vZGVfZ2V0bGFzdHNsb3QoY25vZGVpZF90IG5vZGUpCi17Ci0JcmV0dXJuIChpbnQpIHNsb3RfbGFzdGZpbGxlZF9jYWNoZVtub2RlXTsKLX0KLQotLyoKLSAqIFJldHVybiB0aGUgcGZuIG9mIHRoZSBsYXN0IGZyZWUgcGFnZSBvZiBtZW1vcnkgb24gYSBub2RlLgotICovCi1zdGF0aWMgcGZuX3QgX19pbml0IG5vZGVfZ2V0bWF4Y2xpY2soY25vZGVpZF90IG5vZGUpCi17Ci0JcGZuX3QJc2xvdF9wc2l6ZTsKLQlpbnQJc2xvdDsKLQotCS8qCi0JICogU3RhcnQgYXQgdGhlIHRvcCBzbG90LiBXaGVuIHdlIGZpbmQgYSBzbG90IHdpdGggbWVtb3J5IGluIGl0LAotCSAqIHRoYXQncyB0aGUgd2lubmVyLgotCSAqLwotCWZvciAoc2xvdCA9IChNQVhfTUVNX1NMT1RTIC0gMSk7IHNsb3QgPj0gMDsgc2xvdC0tKSB7Ci0JCWlmICgoc2xvdF9wc2l6ZSA9IHNsb3RfZ2V0c2l6ZShub2RlLCBzbG90KSkpIHsKLQkJCWlmIChzbG90X3BzaXplID09IFNMT1RfSUdOT1JFRCkKLQkJCQljb250aW51ZTsKLQkJCS8qIFJldHVybiB0aGUgYmFzZXBmbiArIHRoZSBzbG90IHNpemUsIG1pbnVzIDEuICovCi0JCQlyZXR1cm4gc2xvdF9nZXRiYXNlcGZuKG5vZGUsIHNsb3QpICsgc2xvdF9wc2l6ZSAtIDE7Ci0JCX0KLQl9Ci0KLQkvKgotCSAqIElmIHRoZXJlJ3Mgbm8gbWVtb3J5IG9uIHRoZSBub2RlLCByZXR1cm4gMC4gVGhpcyBpcyBsaWtlbHkKLQkgKiB0byBjYXVzZSBwcm9ibGVtcy4KLQkgKi8KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHBmbl90IF9faW5pdCBzbG90X3BzaXplX2NvbXB1dGUoY25vZGVpZF90IG5vZGUsIGludCBzbG90KQogewogCW5hc2lkX3QgbmFzaWQ7CkBAIC00MDQsMTMgKzM1NSwxMyBAQAogc3RhdGljIHZvaWQgX19pbml0IHN6bWVtKHZvaWQpCiB7CiAJcGZuX3Qgc2xvdF9wc2l6ZSwgc2xvdDBzeiA9IDAsIG5vZGVieXRlczsJLyogSGFjayB0byBkZXRlY3QgcHJvYmxlbSBjb25maWdzICovCi0JaW50IHNsb3QsIGlnbm9yZTsKKwlpbnQgc2xvdDsKIAljbm9kZWlkX3Qgbm9kZTsKIAogCW51bV9waHlzcGFnZXMgPSAwOwogCiAJZm9yX2VhY2hfb25saW5lX25vZGUobm9kZSkgewotCQlpZ25vcmUgPSBub2RlYnl0ZXMgPSAwOworCQlub2RlYnl0ZXMgPSAwOwogCQlmb3IgKHNsb3QgPSAwOyBzbG90IDwgTUFYX01FTV9TTE9UUzsgc2xvdCsrKSB7CiAJCQlzbG90X3BzaXplID0gc2xvdF9wc2l6ZV9jb21wdXRlKG5vZGUsIHNsb3QpOwogCQkJaWYgKHNsb3QgPT0gMCkKQEAgLTQyMCwyMSArMzcxLDIwIEBACiAJCQkgKiBrZXJuZWwgdGV4dC4KIAkJCSAqLwogCQkJbm9kZWJ5dGVzICs9ICgxTEwgPDwgU0xPVF9TSElGVCk7CisKKwkJCWlmICghc2xvdF9wc2l6ZSkKKwkJCQljb250aW51ZTsKKwogCQkJaWYgKChub2RlYnl0ZXMgPj4gUEFHRV9TSElGVCkgKiAoc2l6ZW9mKHN0cnVjdCBwYWdlKSkgPgotCQkJCQkJKHNsb3Qwc3ogPDwgUEFHRV9TSElGVCkpCi0JCQkJaWdub3JlID0gMTsKLQkJCWlmIChpZ25vcmUgJiYgc2xvdF9wc2l6ZSkgeworCQkJCQkJKHNsb3Qwc3ogPDwgUEFHRV9TSElGVCkpIHsKIAkJCQlwcmludGsoIklnbm9yaW5nIHNsb3QgJWQgb253YXJkcyBvbiBub2RlICVkXG4iLAogCQkJCQkJCQlzbG90LCBub2RlKTsKLQkJCQlzbG90X3BzaXplX2NhY2hlW25vZGVdW3Nsb3RdID0gU0xPVF9JR05PUkVEOwogCQkJCXNsb3QgPSBNQVhfTUVNX1NMT1RTOwogCQkJCWNvbnRpbnVlOwogCQkJfQogCQkJbnVtX3BoeXNwYWdlcyArPSBzbG90X3BzaXplOwotCQkJc2xvdF9wc2l6ZV9jYWNoZVtub2RlXVtzbG90XSA9Ci0JCQkJCSh1bnNpZ25lZCBzaG9ydCkgc2xvdF9wc2l6ZTsKLQkJCWlmIChzbG90X3BzaXplKQotCQkJCXNsb3RfbGFzdGZpbGxlZF9jYWNoZVtub2RlXSA9IHNsb3Q7CisJCQlhZGRfYWN0aXZlX3JhbmdlKG5vZGUsIHNsb3RfZ2V0YmFzZXBmbihub2RlLCBzbG90KSwKKwkJCQkJIHNsb3RfZ2V0YmFzZXBmbihub2RlLCBzbG90KSArIHNsb3RfcHNpemUpOwogCQl9CiAJfQogfQpAQCAtNDQyLDE4ICszOTIsMjAgQEAKIHN0YXRpYyB2b2lkIF9faW5pdCBub2RlX21lbV9pbml0KGNub2RlaWRfdCBub2RlKQogewogCXBmbl90IHNsb3RfZmlyc3RwZm4gPSBzbG90X2dldGJhc2VwZm4obm9kZSwgMCk7Ci0JcGZuX3Qgc2xvdF9sYXN0cGZuID0gc2xvdF9maXJzdHBmbiArIHNsb3RfZ2V0c2l6ZShub2RlLCAwKTsKIAlwZm5fdCBzbG90X2ZyZWVwZm4gPSBub2RlX2dldGZpcnN0ZnJlZShub2RlKTsKLQlzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBkOwogCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zaXplOworCXBmbl90IHN0YXJ0X3BmbiwgZW5kX3BmbjsKKworCWdldF9wZm5fcmFuZ2VfZm9yX25pZChub2RlLCAmc3RhcnRfcGZuLCAmZW5kX3Bmbik7CiAKIAkvKgogCSAqIEFsbG9jYXRlIHRoZSBub2RlIGRhdGEgc3RydWN0dXJlcyBvbiB0aGUgbm9kZSBmaXJzdC4KIAkgKi8KIAlfX25vZGVfZGF0YVtub2RlXSA9IF9fdmEoc2xvdF9mcmVlcGZuIDw8IFBBR0VfU0hJRlQpOwogCi0JcGQgPSBOT0RFX0RBVEEobm9kZSk7Ci0JcGQtPmJkYXRhID0gJnBsYXRfbm9kZV9iZGF0YVtub2RlXTsKKwlOT0RFX0RBVEEobm9kZSktPmJkYXRhID0gJnBsYXRfbm9kZV9iZGF0YVtub2RlXTsKKwlOT0RFX0RBVEEobm9kZSktPm5vZGVfc3RhcnRfcGZuID0gc3RhcnRfcGZuOworCU5PREVfREFUQShub2RlKS0+bm9kZV9zcGFubmVkX3BhZ2VzID0gZW5kX3BmbiAtIHN0YXJ0X3BmbjsKIAogCWNwdXNfY2xlYXIoaHViX2RhdGEobm9kZSktPmhfY3B1cyk7CiAKQEAgLTQ2MSwxMiArNDEzLDEyIEBACiAJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBodWJfZGF0YSkpOwogCiAgIAlib290bWFwX3NpemUgPSBpbml0X2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZSksIHNsb3RfZnJlZXBmbiwKLQkJCQkJc2xvdF9maXJzdHBmbiwgc2xvdF9sYXN0cGZuKTsKLQlmcmVlX2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZSksIHNsb3RfZmlyc3RwZm4gPDwgUEFHRV9TSElGVCwKLQkJCShzbG90X2xhc3RwZm4gLSBzbG90X2ZpcnN0cGZuKSA8PCBQQUdFX1NISUZUKTsKKwkJCQkJc3RhcnRfcGZuLCBlbmRfcGZuKTsKKwlmcmVlX2Jvb3RtZW1fd2l0aF9hY3RpdmVfcmVnaW9ucyhub2RlLCBlbmRfcGZuKTsKIAlyZXNlcnZlX2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZSksIHNsb3RfZmlyc3RwZm4gPDwgUEFHRV9TSElGVCwKIAkJKChzbG90X2ZyZWVwZm4gLSBzbG90X2ZpcnN0cGZuKSA8PCBQQUdFX1NISUZUKSArIGJvb3RtYXBfc2l6ZSwKIAkJQk9PVE1FTV9ERUZBVUxUKTsKKwlzcGFyc2VfbWVtb3J5X3ByZXNlbnRfd2l0aF9hY3RpdmVfcmVnaW9ucyhub2RlKTsKIH0KIAogLyoKQEAgLTUxNSwxNiArNDY3LDE1IEBACiAJcGFnZXRhYmxlX2luaXQoKTsKIAogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKLQkJcGZuX3Qgc3RhcnRfcGZuID0gc2xvdF9nZXRiYXNlcGZuKG5vZGUsIDApOwotCQlwZm5fdCBlbmRfcGZuID0gbm9kZV9nZXRtYXhjbGljayhub2RlKSArIDE7CisJCXBmbl90IHN0YXJ0X3BmbiwgZW5kX3BmbjsKIAotCQl6b25lc19zaXplW1pPTkVfTk9STUFMXSA9IGVuZF9wZm4gLSBzdGFydF9wZm47Ci0JCWZyZWVfYXJlYV9pbml0X25vZGUobm9kZSwgTk9ERV9EQVRBKG5vZGUpLAotCQkJCXpvbmVzX3NpemUsIHN0YXJ0X3BmbiwgTlVMTCk7CisJCWdldF9wZm5fcmFuZ2VfZm9yX25pZChub2RlLCAmc3RhcnRfcGZuLCAmZW5kX3Bmbik7CiAKIAkJaWYgKGVuZF9wZm4gPiBtYXhfbG93X3BmbikKIAkJCW1heF9sb3dfcGZuID0gZW5kX3BmbjsKIAl9CisJem9uZXNfc2l6ZVtaT05FX05PUk1BTF0gPSBtYXhfbG93X3BmbjsKKwlmcmVlX2FyZWFfaW5pdF9ub2Rlcyh6b25lc19zaXplKTsKIH0KIAogdm9pZCBfX2luaXQgbWVtX2luaXQodm9pZCkKQEAgLTUzNSwzNCArNDg2LDEwIEBACiAJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKG51bV9waHlzcGFnZXMgPDwgUEFHRV9TSElGVCk7CiAKIAlmb3JfZWFjaF9vbmxpbmVfbm9kZShub2RlKSB7Ci0JCXVuc2lnbmVkIHNsb3QsIG51bXNsb3RzOwotCQlzdHJ1Y3QgcGFnZSAqZW5kLCAqcDsKLQogCQkvKgogCQkgKiBUaGlzIHdpbGwgZnJlZSB1cCB0aGUgYm9vdG1lbSwgaWUsIHNsb3QgMCBtZW1vcnkuCiAJCSAqLwogCQl0b3RhbHJhbV9wYWdlcyArPSBmcmVlX2FsbF9ib290bWVtX25vZGUoTk9ERV9EQVRBKG5vZGUpKTsKLQotCQkvKgotCQkgKiBXZSBuZWVkIHRvIG1hbnVhbGx5IGRvIHRoZSBvdGhlciBzbG90cy4KLQkJICovCi0JCW51bXNsb3RzID0gbm9kZV9nZXRsYXN0c2xvdChub2RlKTsKLQkJZm9yIChzbG90ID0gMTsgc2xvdCA8PSBudW1zbG90czsgc2xvdCsrKSB7Ci0JCQlwID0gbmlkX3BhZ2VfbnIobm9kZSwgc2xvdF9nZXRiYXNlcGZuKG5vZGUsIHNsb3QpIC0KLQkJCQkJICAgICAgc2xvdF9nZXRiYXNlcGZuKG5vZGUsIDApKTsKLQotCQkJLyoKLQkJCSAqIEZyZWUgdmFsaWQgbWVtb3J5IGluIGN1cnJlbnQgc2xvdC4KLQkJCSAqLwotCQkJZm9yIChlbmQgPSBwICsgc2xvdF9nZXRzaXplKG5vZGUsIHNsb3QpOyBwIDwgZW5kOyBwKyspIHsKLQkJCQkvKiBpZiAoIXBhZ2VfaXNfcmFtKHBnbnIpKSBjb250aW51ZTsgKi8KLQkJCQkvKiBjb21tZW50ZWQgb3V0IHVudGlsIHBhZ2VfaXNfcmFtIHdvcmtzICovCi0JCQkJQ2xlYXJQYWdlUmVzZXJ2ZWQocCk7Ci0JCQkJaW5pdF9wYWdlX2NvdW50KHApOwotCQkJCV9fZnJlZV9wYWdlKHApOwotCQkJCXRvdGFscmFtX3BhZ2VzKys7Ci0JCQl9Ci0JCX0KIAl9CiAKIAl0b3RhbHJhbV9wYWdlcyAtPSBzZXR1cF96ZXJvX3BhZ2VzKCk7CS8qIFRoaXMgY29tZXMgZnJvbSBub2RlIDAgKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9zZ2ktaXAyNy9pcDI3LXNtcC5jIGIvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctc21wLmMKaW5kZXggZjE1ZmM5My4uYmE1Y2RlYiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctc21wLmMKKysrIGIvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctc21wLmMKQEAgLTE3NiwxMSArMTc2LDE0IEBACiBzdGF0aWMgdm9pZCBfX2NwdWluaXQgaXAyN19pbml0X3NlY29uZGFyeSh2b2lkKQogewogCXBlcl9jcHVfaW5pdCgpOwotCWxvY2FsX2lycV9lbmFibGUoKTsKIH0KIAogc3RhdGljIHZvaWQgX19jcHVpbml0IGlwMjdfc21wX2ZpbmlzaCh2b2lkKQogeworCWV4dGVybiB2b2lkIGh1Yl9ydF9jbG9ja19ldmVudF9pbml0KHZvaWQpOworCisJaHViX3J0X2Nsb2NrX2V2ZW50X2luaXQoKTsKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBpcDI3X2NwdXNfZG9uZSh2b2lkKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctdGltZXIuYyBiL2FyY2gvbWlwcy9zZ2ktaXAyNy9pcDI3LXRpbWVyLmMKaW5kZXggOWNlYmM5ZS4uOGI0ZTg1NCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NnaS1pcDI3L2lwMjctdGltZXIuYworKysgYi9hcmNoL21pcHMvc2dpLWlwMjcvaXAyNy10aW1lci5jCkBAIC0xNjAsMTAgKzE2MCwxMyBAQAogCiBpbnQgcnRfdGltZXJfaXJxOwogCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSwgaHViX3J0X2Nsb2NrZXZlbnQpOworc3RhdGljIERFRklORV9QRVJfQ1BVKGNoYXIgWzExXSwgaHViX3J0X25hbWUpOworCiBzdGF0aWMgaXJxcmV0dXJuX3QgaHViX3J0X2NvdW50ZXJfaGFuZGxlcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0Jc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY2QgPSBkZXZfaWQ7CiAJdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlzdHJ1Y3QgY2xvY2tfZXZlbnRfZGV2aWNlICpjZCA9ICZwZXJfY3B1KGh1Yl9ydF9jbG9ja2V2ZW50LCBjcHUpOwogCWludCBzbGljZSA9IGNwdXRvc2xpY2UoY3B1KTsKIAogCS8qCkBAIC0xOTIsMTAgKzE5NSw3IEBACiAjZGVmaW5lIE5TRUNfUEVSX0NZQ0xFCQk4MDAKICNkZWZpbmUgQ1lDTEVTX1BFUl9TRUMJCShOU0VDX1BFUl9TRUMgLyBOU0VDX1BFUl9DWUNMRSkKIAotc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBjbG9ja19ldmVudF9kZXZpY2UsIGh1Yl9ydF9jbG9ja2V2ZW50KTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShjaGFyIFsxMV0sIGh1Yl9ydF9uYW1lKTsKLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGh1Yl9ydF9jbG9ja19ldmVudF9pbml0KHZvaWQpCit2b2lkIF9fY3B1aW5pdCBodWJfcnRfY2xvY2tfZXZlbnRfaW5pdCh2b2lkKQogewogCXVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJc3RydWN0IGNsb2NrX2V2ZW50X2RldmljZSAqY2QgPSAmcGVyX2NwdShodWJfcnRfY2xvY2tldmVudCwgY3B1KTsKQEAgLTIwMywxNyArMjAzLDE2IEBACiAJaW50IGlycSA9IHJ0X3RpbWVyX2lycTsKIAogCXNwcmludGYobmFtZSwgImh1Yi1ydCAlZCIsIGNwdSk7Ci0JY2QtPm5hbWUJCT0gIkhVQi1SVCIsCi0JY2QtPmZlYXR1cmVzCQk9IENMT0NLX0VWVF9GRUFUX09ORVNIT1QsCisJY2QtPm5hbWUJCT0gbmFtZTsKKwljZC0+ZmVhdHVyZXMJCT0gQ0xPQ0tfRVZUX0ZFQVRfT05FU0hPVDsKIAljbG9ja2V2ZW50X3NldF9jbG9jayhjZCwgQ1lDTEVTX1BFUl9TRUMpOwogCWNkLT5tYXhfZGVsdGFfbnMgICAgICAgID0gY2xvY2tldmVudF9kZWx0YTJucygweGZmZmZmZmZmZmZmZmYsIGNkKTsKIAljZC0+bWluX2RlbHRhX25zICAgICAgICA9IGNsb2NrZXZlbnRfZGVsdGEybnMoMHgzMDAsIGNkKTsKLQljZC0+cmF0aW5nCQk9IDIwMCwKLQljZC0+aXJxCQkJPSBpcnEsCi0JY2QtPmNwdW1hc2sJCT0gY3B1bWFza19vZl9jcHUoY3B1KSwKLQljZC0+cmF0aW5nCQk9IDMwMCwKLQljZC0+c2V0X25leHRfZXZlbnQJPSBydF9uZXh0X2V2ZW50LAotCWNkLT5zZXRfbW9kZQkJPSBydF9zZXRfbW9kZSwKKwljZC0+cmF0aW5nCQk9IDIwMDsKKwljZC0+aXJxCQkJPSBpcnE7CisJY2QtPmNwdW1hc2sJCT0gY3B1bWFza19vZl9jcHUoY3B1KTsKKwljZC0+c2V0X25leHRfZXZlbnQJPSBydF9uZXh0X2V2ZW50OworCWNkLT5zZXRfbW9kZQkJPSBydF9zZXRfbW9kZTsKIAljbG9ja2V2ZW50c19yZWdpc3Rlcl9kZXZpY2UoY2QpOwogfQogCkBAIC0yNjEsNiArMjYwLDcgQEAKIHsKIAlodWJfcnRfY2xvY2tzb3VyY2VfaW5pdCgpOwogCWh1Yl9ydF9jbG9ja19ldmVudF9nbG9iYWxfaW5pdCgpOworCWh1Yl9ydF9jbG9ja19ldmVudF9pbml0KCk7CiB9CiAKIHZvaWQgX19jcHVpbml0IGNwdV90aW1lX2luaXQodm9pZCkKQEAgLTI4MSw3ICsyODEsNiBAQAogCiAJcHJpbnRrKCJDUFUgJWQgY2xvY2sgaXMgJWRNSHouXG4iLCBzbXBfcHJvY2Vzc29yX2lkKCksIGNwdS0+Y3B1X3NwZWVkKTsKIAotCWh1Yl9ydF9jbG9ja19ldmVudF9pbml0KCk7CiAJc2V0X2MwX3N0YXR1cyhTUkJfVElNT0NMSyk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9zZ2ktaXAzMi9pcDMyLWlycS5jIGIvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKaW5kZXggYjBlYTBlNC4uMGQ2YjY2NiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKKysrIGIvYXJjaC9taXBzL3NnaS1pcDMyL2lwMzItaXJxLmMKQEAgLTQyNSw2ICs0MjUsMTEgQEAKIAlCVUlMRF9CVUdfT04oTUFDRUlTQV9TRVJJQUwyX1JETUFPUl9JUlEgLSBNQUNFSVNBX0FVRElPX1NXX0lSUSAhPSAzMSk7CiAKIAljcmltZV9pbnQgPSBjcmltZS0+aXN0YXQgJiBjcmltZV9tYXNrOworCisJLyogY3JpbWUgc29tZXRpbWUgZGVsaXZlcnMgc3B1cmlvdXMgaW50ZXJydXB0cywgaWdub3JlIHRoZW0gKi8KKwlpZiAodW5saWtlbHkoY3JpbWVfaW50ID09IDApKQorCQlyZXR1cm47CisKIAlpcnEgPSBNQUNFX1ZJRF9JTjFfSVJRICsgX19mZnMoY3JpbWVfaW50KTsKIAogCWlmIChjcmltZV9pbnQgJiBDUklNRV9NQUNFSVNBX0lOVF9NQVNLKSB7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMvc2lieXRlL2NvbW1vbi9zYl90YnByb2YuYyBiL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCmluZGV4IDYzYjQ0NGUuLjI4YjAxMmEgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCisrKyBiL2FyY2gvbWlwcy9zaWJ5dGUvY29tbW9uL3NiX3RicHJvZi5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CkBAIC00MDIsMTggKzQwMywyNiBAQAogc3RhdGljIGludCBzYnByb2ZfdGJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3I7CisJaW50IGVyciA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKLQlpZiAobWlub3IgIT0gMCkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKG1pbm9yICE9IDApIHsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKHhjaGcoJnNicC5vcGVuLCBTQl9PUEVOSU5HKSAhPSBTQl9DTE9TRUQpCi0JCXJldHVybiAtRUJVU1k7CisJaWYgKHhjaGcoJnNicC5vcGVuLCBTQl9PUEVOSU5HKSAhPSBTQl9DTE9TRUQpIHsKKwkJZXJyID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAKIAltZW1zZXQoJnNicCwgMCwgc2l6ZW9mKHN0cnVjdCBzYnByb2ZfdGIpKTsKIAlzYnAuc2Jwcm9mX3RiYnVmID0gdm1hbGxvYyhNQVhfVEJTQU1QTEVfQllURVMpOwotCWlmICghc2JwLnNicHJvZl90YmJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKCFzYnAuc2Jwcm9mX3RiYnVmKSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KIAltZW1zZXQoc2JwLnNicHJvZl90YmJ1ZiwgMCwgTUFYX1RCU0FNUExFX0JZVEVTKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzYnAudGJfc3luYyk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmc2JwLnRiX3JlYWQpOwpAQCAtNDIxLDcgKzQzMCw5IEBACiAKIAlzYnAub3BlbiA9IFNCX09QRU47CiAKLQlyZXR1cm4gMDsKKyAgb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IHNicHJvZl90Yl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9NYWtlZmlsZSBiL2FyY2gvbWlwcy9zaWJ5dGUvc3dhcm0vTWFrZWZpbGUKaW5kZXggMmQ2MjYwMy4uMTc3NTc1NSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3NpYnl0ZS9zd2FybS9NYWtlZmlsZQorKysgYi9hcmNoL21pcHMvc2lieXRlL3N3YXJtL01ha2VmaWxlCkBAIC0xLDMgKzEsMyBAQAotbGliLXkJCQkJPSBzZXR1cC5vIHJ0Y194aWNvcjEyNDEubyBydGNfbTQxdDgxLm8KK29iai15CQkJCTo9IHNldHVwLm8gcnRjX3hpY29yMTI0MS5vIHJ0Y19tNDF0ODEubwogCi1saWItJChDT05GSUdfS0dEQikJCSs9IGRiZ19pby5vCitvYmotJChDT05GSUdfS0dEQikJCSs9IGRiZ19pby5vCmRpZmYgLS1naXQgYS9hcmNoL21uMTAzMDAva2VybmVsL21uMTAzMDBfa3N5bXMuYyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCmluZGV4IDZkMTk2MjguLmY5ZWI5NzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCisrKyBiL2FyY2gvbW4xMDMwMC9rZXJuZWwvbW4xMDMwMF9rc3ltcy5jCkBAIC0xMCw4ICsxMCwxMSBAQAogICovCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCiAKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKKwogRVhQT1JUX1NZTUJPTChjaGFuZ2VfYml0KTsKIEVYUE9SVF9TWU1CT0wodGVzdF9hbmRfY2hhbmdlX2JpdCk7CiAKQEAgLTMxLDcgKzM0LDkgQEAKIGV4dGVybiB1NjQgX19hc2hsZGkzKHU2NCwgdW5zaWduZWQpOwogZXh0ZXJuIHU2NCBfX2xzaHJkaTModTY0LCB1bnNpZ25lZCk7CiBleHRlcm4gczY0IF9fbmVnZGkyKHM2NCk7CitleHRlcm4gaW50IF9fdWNtcGRpMih1NjQsIHU2NCk7CiBFWFBPUlRfU1lNQk9MKF9fYXNocmRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fYXNobGRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fbHNocmRpMyk7CiBFWFBPUlRfU1lNQk9MKF9fbmVnZGkyKTsKK0VYUE9SVF9TWU1CT0woX191Y21wZGkyKTsKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggM2IwZDU3OS4uYjI4YzlhNiAxMDA2NDQKLS0tIGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKKysrIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTIwLDcgKzIwLDYgQEAKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KQEAgLTE1NCw2ICsxNTMsNyBAQAogCXJldHVybiBkb19mb3JrKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCwgMCwgJnJlZ3MsIDAsCiAJCSAgICAgICBOVUxMLCBOVUxMKTsKIH0KK0VYUE9SVF9TWU1CT0woa2VybmVsX3RocmVhZCk7CiAKIC8qCiAgKiBmcmVlIGN1cnJlbnQgdGhyZWFkIGRhdGEgc3RydWN0dXJlcyBldGMuLgpkaWZmIC0tZ2l0IGEvYXJjaC9tbjEwMzAwL2tlcm5lbC9zZXR1cC5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9zZXR1cC5jCmluZGV4IDZiN2NlMjYuLjAxNzEyMWMgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL21uMTAzMDAva2VybmVsL3NldHVwLmMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNlci5oPgotI2luY2x1ZGUgPGxpbnV4L2Eub3V0Lmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9saWIvTWFrZWZpbGUgYi9hcmNoL21uMTAzMDAvbGliL01ha2VmaWxlCmluZGV4IGZkZmE5ZWMuLjBjZDIzNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC9tbjEwMzAwL2xpYi9NYWtlZmlsZQpAQCAtNCw0ICs0LDQgQEAKIAogbGliLXkgPSBkZWxheS5vIHVzZXJjb3B5Lm8gY2hlY2tzdW0ubyBiaXRvcHMubyBtZW1jcHkubyBtZW1tb3ZlLm8gbWVtc2V0Lm8KIGxpYi15ICs9IGRvX2NzdW0ubwotbGliLXkgKz0gX19hc2hsZGkzLm8gX19hc2hyZGkzLm8gX19sc2hyZGkzLm8gbmVnZGkyLm8KK2xpYi15ICs9IF9fYXNobGRpMy5vIF9fYXNocmRpMy5vIF9fbHNocmRpMy5vIG5lZ2RpMi5vIF9fdWNtcGRpMi5vCmRpZmYgLS1naXQgYS9hcmNoL21uMTAzMDAvbGliL19fdWNtcGRpMi5TIGIvYXJjaC9tbjEwMzAwL2xpYi9fX3VjbXBkaTIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGRjYmRmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9tbjEwMzAwL2xpYi9fX3VjbXBkaTIuUwpAQCAtMCwwICsxLDQzIEBACisvKiBfX3VjbXBkaTIuUzogNjQtYml0IHVuc2lnbmVkIGNvbXBhcmUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggUmVkIEhhdCwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogV3JpdHRlbiBieSBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24KKyAqIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworCisgICAgICAgIC50ZXh0CisgICAgICAgIC5wMmFsaWduCTQKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBpbnQgX191Y21wZGkyKHVuc2lnbmVkIGxvbmcgbG9uZyBhIFtEMDpEMV0sCisjCQl1bnNpZ25lZCBsb25nIGxvbmcgYiBbKFNQLDEyKSwoU1AsMTYpXSkKKyMKKyMgLSByZXR1cm5zIDAsIDEsIG9yIDIgYXMgYSA8LCA9LCA+IGIgcmVzcGVjdGl2ZWx5LgorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgICAgICAuZ2xvYmwJCV9fdWNtcGRpMgorICAgICAgICAudHlwZQkJX191Y21wZGkyLEBmdW5jdGlvbgorX191Y21wZGkyOgorCW1vdgkJKDEyLHNwKSxhMAkJIyBiLmxzdworCW1vdgkJKDE2LHNwKSxhMQkJIyBiLm1zdworCisJc3ViCQlhMCxkMAorCXN1YmMJCWExLGQxCQkJIyBtYXkgY2xlYXIgWiwgbmV2ZXIgc2V0cyBpdAorCWJuZQkJX191Y21wZGkyX2RpZmZlcgkjIGEubXN3ICE9IGIubXN3CisJbW92CQkrMSxkMAorCXJldHMKKworX191Y21wZGkyX2RpZmZlcjoKKwkjIEMgZmxhZyBpcyBzZXQgaWYgTEUsIGNsZWFyIGlmIEdFCisJc3ViYwkJZDAsZDAJCQkjIC0xIGlmIExFLCAwIGlmIEdFCisJYWRkCQkrMSxkMAkJCSMgIDAgaWYgTEUsIDEgaWYgR0UKKwlhZGQJCWQwLGQwCQkJIyAgMCBpZiBMRSwgMiBpZiBHRQorCXJldHMKKworCS5zaXplCQlfX3VjbXBkaTIsIC4tX191Y21wZGkyCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9ocHV4L2dhdGUuUyBiL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCmluZGV4IGYwYjE4Y2UuLjM4YTFjMWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCisrKyBiL2FyY2gvcGFyaXNjL2hwdXgvZ2F0ZS5TCkBAIC0xMywxMCArMTMsOSBAQAogI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KICNpbmNsdWRlIDxhc20vZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLmxldmVsCUxFVkVMCi0JX19IRUFECisJLnRleHQKIAogCS5pbXBvcnQgaHB1eF9jYWxsX3RhYmxlCiAJLmltcG9ydCBocHV4X3N5c2NhbGxfZXhpdCxjb2RlCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9ocHV4L3dyYXBwZXJzLlMgYi9hcmNoL3BhcmlzYy9ocHV4L3dyYXBwZXJzLlMKaW5kZXggY2NkM2E1MC4uNThjNTNjOCAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2MvaHB1eC93cmFwcGVycy5TCisrKyBiL2FyY2gvcGFyaXNjL2hwdXgvd3JhcHBlcnMuUwpAQCAtMjgsMTAgKzI4LDkgQEAKICNpbmNsdWRlIDxhc20vYXNzZW1ibHkuaD4KICNpbmNsdWRlIDxhc20vc2lnbmFsLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogCS5sZXZlbAlMRVZFTAotCV9fSEVBRAorCS50ZXh0CiAKIAkvKiBUaGVzZSBzaG91bGQgcHJvYmFibHkgZ28gaW4gYSBoZWFkZXIgZmlsZSBzb21ld2hlcmUuCiAJICogVGhleSBhcmUgZHVwbGljYXRlZCBpbiBrZXJuZWwvd3JhcHBlcnMuUwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2VudHJ5LlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUwppbmRleCA1ZDA4Mzc0Li5kMWZhNGVkIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvZW50cnkuUwpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgogCiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogI2lmZGVmIENPTkZJR182NEJJVAogCS5sZXZlbCAyLjB3CkBAIC02MjIsNyArNjIxLDcgQEAKIAkgKiB0aGUgc3RhdGljIHBhcnQgb2YgdGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNlLgogCSAqLwogCi0JX19IRUFECisJLnRleHQKIAogCS5hbGlnbglQQUdFX1NJWkUKIApkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL2hlYWQuUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9oZWFkLlMKaW5kZXggNTY4MGEyYy4uYTg0ZTMxZSAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL2hlYWQuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvaGVhZC5TCkBAIC0zMyw2ICszMyw3IEBACiBFTkQoYm9vdF9hcmdzKQogCiAJX19IRUFECisKIAkuYWxpZ24JNAogCS5pbXBvcnQgaW5pdF90aHJlYWRfdW5pb24sZGF0YQogCS5pbXBvcnQgZmF1bHRfdmVjdG9yXzIwLGNvZGUgICAgLyogSVZBIHBhcmlzYyAyLjAgMzIgYml0ICovCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvaHBtYy5TIGIvYXJjaC9wYXJpc2Mva2VybmVsL2hwbWMuUwppbmRleCAwNjgzMjJlLi4yY2JmMTNiIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvaHBtYy5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9ocG1jLlMKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxhc20vcGRjLmg+CiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLyoKIAkgKiBzdGFjayBmb3Igb3NfaHBtYywgdGhlIEhQTUMgaGFuZGxlci4KQEAgLTc3LDcgKzc2LDcgQEAKIAkuYmxvY2sgSFBNQ19QSU1fREFUQV9TSVpFCiBFTkQoaHBtY19waW1fZGF0YSkKIAotCV9fSEVBRAorCS50ZXh0CiAKIAkuaW1wb3J0IGludHJfc2F2ZSwgY29kZQogRU5UUlkob3NfaHBtYykKZGlmZiAtLWdpdCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYWNhY2hlLlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGFjYWNoZS5TCmluZGV4IGUzMjQ2YTUuLjA5Yjc3YjIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYWNhY2hlLlMKKysrIGIvYXJjaC9wYXJpc2Mva2VybmVsL3BhY2FjaGUuUwpAQCAtMzcsOSArMzcsOCBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAotCV9fSEVBRAorCS50ZXh0CiAJLmFsaWduCTEyOAogCiBFTlRSWShmbHVzaF90bGJfYWxsX2xvY2FsKQpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jIGIvYXJjaC9wYXJpc2Mva2VybmVsL3BhcmlzY19rc3ltcy5jCmluZGV4IDViN2ZjNGEuLjBlZWNmYmIgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wYXJpc2Nfa3N5bXMuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGFyaXNjX2tzeW1zLmMKQEAgLTE1MiwzICsxNTIsNiBAQAogRVhQT1JUX1NZTUJPTChub2RlX2RhdGEpOwogRVhQT1JUX1NZTUJPTChwZm5uaWRfbWFwKTsKICNlbmRpZgorCisvKiBmcm9tIHBhY2FjaGUuUyAtLSBuZWVkZWQgZm9yIGNvcHlfcGFnZSAqLworRVhQT1JUX1NZTUJPTChjb3B5X3VzZXJfcGFnZV9hc20pOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmLmMKaW5kZXggODlkNmQ1YS4uZjY5NmY1NyAxMDA2NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3BlcmYuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcGVyZi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTI2MCwxMyArMjYxLDE2IEBACiAgKi8KIHN0YXRpYyBpbnQgcGVyZl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZwZXJmX2xvY2spOwogCWlmIChwZXJmX2VuYWJsZWQpIHsKIAkJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJcGVyZl9lbmFibGVkID0gMTsKICAJc3Bpbl91bmxvY2soJnBlcmZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvcGVyZl9hc20uUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCmluZGV4IGQ0MTFkZmIuLmZhNmVhOTkgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wZXJmX2FzbS5TCkBAIC00Myw3ICs0Myw3IEBACiA7IFRoZSBjb3Byb2Nlc3NvciBvbmx5IG5lZWRzIHRvIGJlIGVuYWJsZWQgd2hlbgogOyBzdGFydGluZy9zdG9wcGluZyB0aGUgY29wcm9jZXNzb3Igd2l0aCB0aGUgcG1lbmIvcG1kaXMuCiA7Ci0JX19IRUFECisJLnRleHQKIAogRU5UUlkocGVyZl9pbnRyaWd1ZV9lbmFibGVfcGVyZl9jb3VudGVycykKIAkucHJvYwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3JlYWwyLlMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUwppbmRleCA0N2ZiZGFlLi43YTkyNjk1IDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcmVhbDIuUwpAQCAtMTIsNyArMTIsNiBAQAogI2luY2x1ZGUgPGFzbS9hc3NlbWJseS5oPgogCiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KIAogCS5zZWN0aW9uCS5ic3MKIAkuZXhwb3J0IHJlYWxfc3RhY2sKQEAgLTQwLDcgKzM5LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKiogMzItYml0IHJlYWwtbW9kZSBjYWxscyAqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFRoaXMgY2FuIGJlIGNhbGxlZCBpbiBib3RoIG5hcnJvdyBhbmQgd2lkZSBrZXJuZWxzICovCiAKLQlfX0hFQUQKKwkudGV4dAogCiAJLyogdW5zaWduZWQgbG9uZyByZWFsMzJfY2FsbF9hc20odW5zaWduZWQgaW50ICpzcCwKIAkgKgkJdW5zaWduZWQgaW50ICphcmcwcCwKQEAgLTExNCw3ICsxMTMsNyBAQAogIyAgZGVmaW5lIFBVU0hfQ1Iociwgd2hlcmUpIG1mY3RsIHIsICVyMSAhIFNUUkVHLG1hICVyMSwgUkVHX1NaKHdoZXJlKQogIyAgZGVmaW5lIFBPUF9DUihyLCB3aGVyZSkgTERSRUcsbWIgLVJFR19TWih3aGVyZSksICVyMSAhIG10Y3RsICVyMSwgcgogCi0JX19IRUFECisJLnRleHQKIHNhdmVfY29udHJvbF9yZWdzOgogCWxvYWQzMglQQShzYXZlX2NyX3NwYWNlKSwgJXIyOAogCVBVU0hfQ1IoJWNyMjQsICVyMjgpCkBAIC0xNDYsNyArMTQ1LDcgQEAKIC8qIHJmaV92aXJ0MnJlYWwoKSBhbmQgcmZpX3JlYWwydmlydCgpIGNvdWxkIHBlcmhhcHMgYmUgYWRhcHRlZCBmb3IKICAqIG1vcmUgZ2VuZXJhbC1wdXJwb3NlIHVzZSBieSB0aGUgc2V2ZXJhbCBwbGFjZXMgd2hpY2ggbmVlZCBSRklzCiAgKi8KLQlfX0hFQUQKKwkudGV4dAogCS5hbGlnbiAxMjgKIHJmaV92aXJ0MnJlYWw6CiAJLyogc3dpdGNoIHRvIHJlYWwgbW9kZS4uLiAqLwpAQCAtMTgxLDcgKzE4MCw3IEBACiAJYnYJMCglcjIpCiAJbm9wCiAKLQlfX0hFQUQKKwkudGV4dAogCS5hbGlnbiAxMjgKIHJmaV9yZWFsMnZpcnQ6CiAJcnNtCQlQU1dfU01fSSwlcjAKQEAgLTIxOSw3ICsyMTgsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqIDY0LWJpdCByZWFsLW1vZGUgY2FsbHMgKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiBUaGlzIGlzIG9ubHkgdXNhYmxlIGluIHdpZGUga2VybmVscyByaWdodCBub3cgYW5kIHdpbGwgcHJvYmFibHkgc3RheSBzbyAqLwotCV9fSEVBRAorCS50ZXh0CiAJLyogdW5zaWduZWQgbG9uZyByZWFsNjRfY2FsbF9hc20odW5zaWduZWQgbG9uZyAqc3AsCiAJICoJCXVuc2lnbmVkIGxvbmcgKmFyZzBwLAogCSAqCQl1bnNpZ25lZCBsb25nIGZuKQpAQCAtMjc3LDcgKzI3Niw3IEBACiAKICNlbmRpZgogCi0JX19IRUFECisJLnRleHQKIAkvKiBodHRwOi8vbGlzdHMucGFyaXNjLWxpbnV4Lm9yZy9oeXBlcm1haWwvcGFyaXNjLWxpbnV4LzEwOTE2Lmh0bWwKIAkqKglHQ0MgMy4zIGFuZCBsYXRlciBoYXMgYSBuZXcgZnVuY3Rpb24gaW4gbGliZ2NjLmEgZm9yCiAJKioJY29tcGFyaW5nIGZ1bmN0aW9uIHBvaW50ZXJzLgpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2Mva2VybmVsL3NpZ25hbDMyLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYwppbmRleCBkYjk0YWZmLi5mYjU5ODUyIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYworKysgYi9hcmNoL3BhcmlzYy9rZXJuZWwvc2lnbmFsMzIuYwpAQCAtMjg5LDcgKzI4OSw3IEBACiAJCQkJJnNjLT5zY19pYW9xWzBdLCBjb21wYXRfcmVnKTsKIAkJCiAJCS8qIFN0b3JlIHVwcGVyIGhhbGYgKi8KLQkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KShyZWdzLT5nclszMl0gPj4gMzIpOworCQljb21wYXRfcmVnID0gKGNvbXBhdF91aW50X3QpKHJlZ3MtPmdyWzMxXSA+PiAzMik7CiAJCWVyciB8PSBfX3B1dF91c2VyKGNvbXBhdF9yZWcsICZyZi0+cmZfaWFvcVswXSk7CiAJCURCRygyLCJzZXR1cF9zaWdjb250ZXh0MzI6IHVwcGVyIGhhbGYgaWFvcVswXSA9ICUjeFxuIiwgY29tcGF0X3JlZyk7CiAJCQpAQCAtMjk5LDcgKzI5OSw3IEBACiAJCURCRygyLCJzZXR1cF9zaWdjb250ZXh0MzI6IHNjLT5zY19pYW9xWzFdID0gJXAgPD0gJSN4XG4iLAogCQkJCSZzYy0+c2NfaWFvcVsxXSwgY29tcGF0X3JlZyk7CiAJCS8qIFN0b3JlIHVwcGVyIGhhbGYgKi8KLQkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KSgocmVncy0+Z3JbMzJdKzQpID4+IDMyKTsKKwkJY29tcGF0X3JlZyA9IChjb21wYXRfdWludF90KSgocmVncy0+Z3JbMzFdKzQpID4+IDMyKTsKIAkJZXJyIHw9IF9fcHV0X3VzZXIoY29tcGF0X3JlZywgJnJmLT5yZl9pYW9xWzFdKTsKIAkJREJHKDIsInNldHVwX3NpZ2NvbnRleHQzMjogdXBwZXIgaGFsZiBpYW9xWzFdID0gJSN4XG4iLCBjb21wYXRfcmVnKTsKIAkJCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbC5TIGIvYXJjaC9wYXJpc2Mva2VybmVsL3N5c2NhbGwuUwppbmRleCBhZTUwOWQ4Li42OWI2ZWViIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzY2FsbC5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9zeXNjYWxsLlMKQEAgLTE3LDcgKzE3LDYgQEAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgogCiAJLyogV2UgZmlsbCB0aGUgZW1wdHkgcGFydHMgb2YgdGhlIGdhdGV3YXkgcGFnZSB3aXRoCiAgCSAqIHNvbWV0aGluZyB0aGF0IHdpbGwga2lsbCB0aGUga2VybmVsIG9yIGEKQEAgLTI3LDcgKzI2LDcgQEAKIAogCS5sZXZlbCAgICAgICAgICBMRVZFTAogCi0JX19IRUFECisJLnRleHQKIAogCS5pbXBvcnQgc3lzY2FsbF9leGl0LGNvZGUKIAkuaW1wb3J0IHN5c2NhbGxfZXhpdF9yZmksY29kZQpAQCAtNjM3LDcgKzYzNiw3IEBACiAJCUFsbCBsaWdodC13ZWlnaHQtc3lzY2FsbCBhdG9taWMgb3BlcmF0aW9ucyAKIAkJd2lsbCB1c2UgdGhpcyBzZXQgb2YgbG9ja3MgCiAJKi8KLQkuc2VjdGlvbiAuZGF0YSwgImF3IgorCS5zZWN0aW9uIC5kYXRhCiAJLmFsaWduCVBBR0VfU0laRQogRU5UUlkobHdzX2xvY2tfc3RhcnQpCiAJLyogbHdzIGxvY2tzICovCmRpZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvdm1saW51eC5sZHMuUyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IDUwYjRhM2EuLjFhM2I2Y2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCkBAIC01MCw2ICs1MCw3IEBACiAKIAlfdGV4dCA9IC47CQkvKiBUZXh0IGFuZCByZWFkLW9ubHkgZGF0YSAqLwogCS50ZXh0IEFMSUdOKDE2KSA6IHsKKwkJSEVBRF9URVhUCiAJCVRFWFRfVEVYVAogCQlTQ0hFRF9URVhUCiAJCUxPQ0tfVEVYVApAQCAtNjYsNyArNjcsNiBAQAogCV9ldGV4dCA9IC47CiAKIAlST0RBVEEKLQlCVUdfVEFCTEUKIAogCS8qIHdyaXRlYWJsZSAqLwogCS8qIE1ha2Ugc3VyZSB0aGlzIGlzIHBhZ2UgYWxpZ25lZCBzbwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL2ZpeHVwLlMgYi9hcmNoL3BhcmlzYy9saWIvZml4dXAuUwppbmRleCA0ODIxYWQ2Li5kMTcyZDQyIDEwMDY0NAotLS0gYS9hcmNoL3BhcmlzYy9saWIvZml4dXAuUworKysgYi9hcmNoL3BhcmlzYy9saWIvZml4dXAuUwpAQCAtMjMsNyArMjMsNiBAQAogI2luY2x1ZGUgPGFzbS9hc3NlbWJseS5oPgogI2luY2x1ZGUgPGFzbS9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAKICNpZmRlZiBDT05GSUdfU01QCiAJLm1hY3JvICBnZXRfZmF1bHRfaXAgdDEgdDIKQEAgLTU2LDcgKzU1LDcgQEAKIAogCS5sZXZlbCBMRVZFTAogCi0JX19IRUFECisJLnRleHQKIAkuc2VjdGlvbiAuZml4dXAsICJheCIKIAogCS8qIGdldF91c2VyKCkgZml4dXBzLCBzdG9yZSAtRUZBVUxUIGluIHI4LCBhbmQgMCBpbiByOSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbGliL2x1c2VyY29weS5TIGIvYXJjaC9wYXJpc2MvbGliL2x1c2VyY29weS5TCmluZGV4IGIwZDg4NTMuLjFiZDIzY2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL2xpYi9sdXNlcmNvcHkuUworKysgYi9hcmNoL3BhcmlzYy9saWIvbHVzZXJjb3B5LlMKQEAgLTMzLDEyICszMywxMSBAQAogICovCiAKIAorCS50ZXh0CisJCiAjaW5jbHVkZSA8YXNtL2Fzc2VtYmx5Lmg+CiAjaW5jbHVkZSA8YXNtL2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotCV9fSEVBRAogCiAJLyoKIAkgKiBnZXRfc3IgZ2V0cyB0aGUgYXBwcm9wcmlhdGUgc3BhY2UgdmFsdWUgaW50bwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbW0vaW5pdC5jIGIvYXJjaC9wYXJpc2MvbW0vaW5pdC5jCmluZGV4IDc4ZmUyNTIuLmNlMGRhNjggMTAwNjQ0Ci0tLSBhL2FyY2gvcGFyaXNjL21tL2luaXQuYworKysgYi9hcmNoL3BhcmlzYy9tbS9pbml0LmMKQEAgLTU0Nyw2ICs1NDcsNyBAQAogfQogCiB1bnNpZ25lZCBsb25nICplbXB0eV96ZXJvX3BhZ2UgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKIAogdm9pZCBzaG93X21lbSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL0tjb25maWcgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwppbmRleCAzOTM0ZTI2Li5hNWU5OTEyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvS2NvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvS2NvbmZpZwpAQCAtMTA1LDExICsxMDUsMTMgQEAKIGNvbmZpZyBQUEMKIAlib29sCiAJZGVmYXVsdCB5CisJc2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0UKKwlzZWxlY3QgSEFWRV9GVFJBQ0UKIAlzZWxlY3QgSEFWRV9JREUKLQlzZWxlY3QgSEFWRV9PUFJPRklMRQogCXNlbGVjdCBIQVZFX0tQUk9CRVMKIAlzZWxlY3QgSEFWRV9LUkVUUFJPQkVTCiAJc2VsZWN0IEhBVkVfTE1CCisJc2VsZWN0IEhBVkVfT1BST0ZJTEUKIAogY29uZmlnIEVBUkxZX1BSSU5USwogCWJvb2wKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9NYWtlZmlsZSBiL2FyY2gvcG93ZXJwYy9NYWtlZmlsZQppbmRleCA5ZGNkYzAzLi5iN2Q0YzRjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL01ha2VmaWxlCkBAIC05Niw2ICs5Niw4IEBACiBlbHNlCiAJS0JVSUxEX0NGTEFHUyArPSAkKGNhbGwgY2Mtb3B0aW9uLC1tdHVuZT1wb3dlcjQpCiBlbmRpZgorZWxzZQorTERGTEFHU19NT0RVTEUJKz0gYXJjaC9wb3dlcnBjL2xpYi9jcnRzYXZyZXMubwogZW5kaWYKIAogaWZlcSAoJChDT05GSUdfVFVORV9DRUxMKSx5KQpAQCAtMTU0LDcgKzE1Niw3IEBACiAKIENQUEZMQUdTX3ZtbGludXgubGRzCTo9IC1VcG93ZXJwYwogCi1CT09UX1RBUkdFVFMgPSB6SW1hZ2UgekltYWdlLmluaXRyZCB1SW1hZ2UgekltYWdlJSBkdGJJbWFnZSUgdHJlZUltYWdlLiUgY3VJbWFnZS4lCitCT09UX1RBUkdFVFMgPSB6SW1hZ2UgekltYWdlLmluaXRyZCB1SW1hZ2UgekltYWdlJSBkdGJJbWFnZSUgdHJlZUltYWdlLiUgY3VJbWFnZS4lIHNpbXBsZUltYWdlLiUKIAogUEhPTlkgKz0gJChCT09UX1RBUkdFVFMpCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKaW5kZXggZjVlMGIyYS4uMDk1ZTA0ZCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvTWFrZWZpbGUKQEAgLTUxLDcgKzUxLDcgQEAKIAkkKGFkZHByZWZpeCAkKG9iaikvLCQoemxpYmxpbnV4aGVhZGVyKSkgJChhZGRwcmVmaXggJChvYmopLywkKHpsaWJoZWFkZXIpKQogCiBzcmMtbGliZmR0IDo9IGZkdC5jIGZkdF9yby5jIGZkdF93aXAuYyBmZHRfc3cuYyBmZHRfcncuYyBmZHRfc3RyZXJyb3IuYwotc3JjLXdsaWIgOj0gc3RyaW5nLlMgY3J0MC5TIHN0ZGlvLmMgbWFpbi5jIFwKK3NyYy13bGliIDo9IHN0cmluZy5TIGNydDAuUyBjcnRzYXZyZXMuUyBzdGRpby5jIG1haW4uYyBcCiAJCSQoYWRkcHJlZml4IGxpYmZkdC8sJChzcmMtbGliZmR0KSkgbGliZmR0LXdyYXBwZXIuYyBcCiAJCW5zMTY1NTAuYyBzZXJpYWwuYyBzaW1wbGVfYWxsb2MuYyBkaXY2NC5TIHV0aWwuUyBcCiAJCWd1bnppcF91dGlsLmMgZWxmX3V0aWwuYyAkKHpsaWIpIGRldnRyZWUuYyBvZmxpYi5jIG9mY29uc29sZS5jIFwKQEAgLTIyMSw4ICsyMjEsOCBAQAogaW1hZ2UtJChDT05GSUdfWU9TRU1JVEUpCQkrPSBjdUltYWdlLnlvc2VtaXRlCiAKICMgQm9hcmQgcG9ydHMgaW4gYXJjaC9wb3dlcnBjL3BsYXRmb3JtLzh4eC9LY29uZmlnCi1pbWFnZS0kKENPTkZJR19QUENfTVBDODZYQURTKQkJKz0gY3VJbWFnZS5tcGM4NjZhZHMKLWltYWdlLSQoQ09ORklHX1BQQ19NUEM4ODVBRFMpCQkrPSBjdUltYWdlLm1wYzg4NWFkcworaW1hZ2UtJChDT05GSUdfTVBDODZYQURTKQkJKz0gY3VJbWFnZS5tcGM4NjZhZHMKK2ltYWdlLSQoQ09ORklHX01QQzg4NUFEUykJCSs9IGN1SW1hZ2UubXBjODg1YWRzCiBpbWFnZS0kKENPTkZJR19QUENfRVA4OFhDKQkJKz0gZHRiSW1hZ2UuZXA4OHhjCiBpbWFnZS0kKENPTkZJR19QUENfQURERVI4NzUpCQkrPSBjdUltYWdlLmFkZGVyODc1LXVib290IFwKIAkJCQkJICAgZHRiSW1hZ2UuYWRkZXI4NzUtcmVkYm9vdApAQCAtMjczLDcgKzI3Myw4IEBACiBpbml0cmQtICA6PSAkKHBhdHN1YnN0IHpJbWFnZSUsIHpJbWFnZS5pbml0cmQlLCAkKGltYWdlLW4pICQoaW1hZ2UtKSkKIGluaXRyZC15IDo9ICQocGF0c3Vic3QgekltYWdlJSwgekltYWdlLmluaXRyZCUsIFwKIAkJJChwYXRzdWJzdCBkdGJJbWFnZSUsIGR0YkltYWdlLmluaXRyZCUsIFwKLQkJJChwYXRzdWJzdCB0cmVlSW1hZ2UlLCB0cmVlSW1hZ2UuaW5pdHJkJSwgJChpbWFnZS15KSkpKQorCQkkKHBhdHN1YnN0IHNpbXBsZUltYWdlJSwgc2ltcGxlSW1hZ2UuaW5pdHJkJSwgXAorCQkkKHBhdHN1YnN0IHRyZWVJbWFnZSUsIHRyZWVJbWFnZS5pbml0cmQlLCAkKGltYWdlLXkpKSkpKQogaW5pdHJkLXkgOj0gJChmaWx0ZXItb3V0ICQoaW1hZ2UteSksICQoaW5pdHJkLXkpKQogdGFyZ2V0cwkrPSAkKGltYWdlLXkpICQoaW5pdHJkLXkpCiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2NydHNhdnJlcy5TIGIvYXJjaC9wb3dlcnBjL2Jvb3QvY3J0c2F2cmVzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNkOWIzNQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2NydHNhdnJlcy5TCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogU3BlY2lhbCBzdXBwb3J0IGZvciBlYWJpIGFuZCBTVlI0CisgKgorICogICBDb3B5cmlnaHQgKEMpIDE5OTUsIDE5OTYsIDE5OTgsIDIwMDAsIDIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgKiAgIENvcHlyaWdodCAyMDA4IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKiAgIFdyaXR0ZW4gQnkgTWljaGFlbCBNZWlzc25lcgorICoKKyAqIEJhc2VkIG9uIGdjYy9jb25maWcvcnM2MDAwL2NydHNhdnJlcy5hc20gZnJvbSBnY2MKKyAqCisgKiBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CisgKiBsYXRlciB2ZXJzaW9uLgorICoKKyAqIEluIGFkZGl0aW9uIHRvIHRoZSBwZXJtaXNzaW9ucyBpbiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzIHlvdSB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBsaW5rIHRoZQorICogY29tcGlsZWQgdmVyc2lvbiBvZiB0aGlzIGZpbGUgd2l0aCBvdGhlciBwcm9ncmFtcywgYW5kIHRvIGRpc3RyaWJ1dGUKKyAqIHRob3NlIHByb2dyYW1zIHdpdGhvdXQgYW55IHJlc3RyaWN0aW9uIGNvbWluZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcworICogZmlsZS4gIChUaGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSByZXN0cmljdGlvbnMgZG8gYXBwbHkgaW4gb3RoZXIKKyAqIHJlc3BlY3RzOyBmb3IgZXhhbXBsZSwgdGhleSBjb3ZlciBtb2RpZmljYXRpb24gb2YgdGhlIGZpbGUsIGFuZAorICogZGlzdHJpYnV0aW9uIHdoZW4gbm90IGxpbmtlZCBpbnRvIGFub3RoZXIgcHJvZ3JhbS4pCisgKgorICogVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqICAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIHlvdSBsaW5rIHRoaXMgbGlicmFyeSB3aXRoIGZpbGVzCisgKiAgICBjb21waWxlZCB3aXRoIEdDQyB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIHRoaXMgZG9lcyBub3QgY2F1c2UKKyAqICAgIHRoZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KKyAqICAgIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIgaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkKKyAqICAgIHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKi8KKworCS5maWxlCSJjcnRzYXZyZXMuUyIKKwkuc2VjdGlvbiAiLnRleHQiCisKKy8qIE9uIFBvd2VyUEM2NCBMaW51eCwgdGhlc2UgZnVuY3Rpb25zIGFyZSBwcm92aWRlZCBieSB0aGUgbGlua2VyLiAgKi8KKyNpZm5kZWYgX19wb3dlcnBjNjRfXworCisjZGVmaW5lIF9HTE9CQUwobmFtZSkgXAorCS50eXBlIG5hbWUsQGZ1bmN0aW9uOyBcCisJLmdsb2JsIG5hbWU7IFwKK25hbWU6CisKKy8qIFJvdXRpbmVzIGZvciBzYXZpbmcgaW50ZWdlciByZWdpc3RlcnMsIGNhbGxlZCBieSB0aGUgY29tcGlsZXIuICAqLworLyogQ2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVyIG9mIHRoZSAqLworLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgc2F2ZSBhcmVhLiAgKi8KKworX0dMT0JBTChfc2F2ZWdwcl8xNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNCkKKwlzdHcJMTQsLTcyKDExKQkvKiBzYXZlIGdwIHJlZ2lzdGVycyAqLworX0dMT0JBTChfc2F2ZWdwcl8xNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xNSkKKwlzdHcJMTUsLTY4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNikKK19HTE9CQUwoX3NhdmUzMmdwcl8xNikKKwlzdHcJMTYsLTY0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xNykKK19HTE9CQUwoX3NhdmUzMmdwcl8xNykKKwlzdHcJMTcsLTYwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOCkKKwlzdHcJMTgsLTU2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8xOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8xOSkKKwlzdHcJMTksLTUyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMCkKKwlzdHcJMjAsLTQ4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yMSkKKwlzdHcJMjEsLTQ0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMikKK19HTE9CQUwoX3NhdmUzMmdwcl8yMikKKwlzdHcJMjIsLTQwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yMykKK19HTE9CQUwoX3NhdmUzMmdwcl8yMykKKwlzdHcJMjMsLTM2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNCkKKwlzdHcJMjQsLTMyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yNSkKKwlzdHcJMjUsLTI4KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNikKK19HTE9CQUwoX3NhdmUzMmdwcl8yNikKKwlzdHcJMjYsLTI0KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yNykKK19HTE9CQUwoX3NhdmUzMmdwcl8yNykKKwlzdHcJMjcsLTIwKDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOCkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOCkKKwlzdHcJMjgsLTE2KDExKQorX0dMT0JBTChfc2F2ZWdwcl8yOSkKK19HTE9CQUwoX3NhdmUzMmdwcl8yOSkKKwlzdHcJMjksLTEyKDExKQorX0dMT0JBTChfc2F2ZWdwcl8zMCkKK19HTE9CQUwoX3NhdmUzMmdwcl8zMCkKKwlzdHcJMzAsLTgoMTEpCitfR0xPQkFMKF9zYXZlZ3ByXzMxKQorX0dMT0JBTChfc2F2ZTMyZ3ByXzMxKQorCXN0dwkzMSwtNCgxMSkKKwlibHIKKworLyogUm91dGluZXMgZm9yIHJlc3RvcmluZyBpbnRlZ2VyIHJlZ2lzdGVycywgY2FsbGVkIGJ5IHRoZSBjb21waWxlci4gICovCisvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCisvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciByZXN0b3JlIGFyZWEuICAqLworCitfR0xPQkFMKF9yZXN0Z3ByXzE0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE0KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE1KQorCWx3egkxNSwtNjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2KQorCWx3egkxNiwtNjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE3KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE4KQorCWx3egkxOCwtNTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5KQorCWx3egkxOSwtNTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIwKQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIxKQorCWx3egkyMSwtNDQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIyKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyKQorCWx3egkyMiwtNDAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIzKQorX0dMT0JBTChfcmVzdDMyZ3ByXzIzKQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI0KQorCWx3egkyNCwtMzIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI1KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1KQorCWx3egkyNSwtMjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI2KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI2KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI3KQorCWx3egkyNywtMjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI4KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4KQorCWx3egkyOCwtMTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI5KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI5KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwKQorX0dMT0JBTChfcmVzdDMyZ3ByXzMwKQorCWx3egkzMCwtOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMzEpCitfR0xPQkFMKF9yZXN0MzJncHJfMzEpCisJbHd6CTMxLC00KDExKQorCWJscgorCisvKiBSb3V0aW5lcyBmb3IgcmVzdG9yaW5nIGludGVnZXIgcmVnaXN0ZXJzLCBjYWxsZWQgYnkgdGhlIGNvbXBpbGVyLiAgKi8KKy8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBvZiB0aGUgKi8KKy8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHJlc3RvcmUgYXJlYS4gICovCisKK19HTE9CQUwoX3Jlc3RncHJfMTRfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNF94KQorCWx3egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCitfR0xPQkFMKF9yZXN0Z3ByXzE1X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMTVfeCkKKwlsd3oJMTUsLTY4KDExKQorX0dMT0JBTChfcmVzdGdwcl8xNl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE2X3gpCisJbHd6CTE2LC02NCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMTdfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xN194KQorCWx3egkxNywtNjAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE4X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMThfeCkKKwlsd3oJMTgsLTU2KDExKQorX0dMT0JBTChfcmVzdGdwcl8xOV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE5X3gpCisJbHd6CTE5LC01MigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjBfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMF94KQorCWx3egkyMCwtNDgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjFfeCkKKwlsd3oJMjEsLTQ0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMl94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzIyX3gpCisJbHd6CTIyLC00MCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjNfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yM194KQorCWx3egkyMywtMzYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI0X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjRfeCkKKwlsd3oJMjQsLTMyKDExKQorX0dMT0JBTChfcmVzdGdwcl8yNV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI1X3gpCisJbHd6CTI1LC0yOCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjZfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNl94KQorCWx3egkyNiwtMjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI3X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjdfeCkKKwlsd3oJMjcsLTIwKDExKQorX0dMT0JBTChfcmVzdGdwcl8yOF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI4X3gpCisJbHd6CTI4LC0xNigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjlfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOV94KQorCWx3egkyOSwtMTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMwX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzBfeCkKKwlsd3oJMzAsLTgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMxX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMzFfeCkKKwlsd3oJMCw0KDExKQorCWx3egkzMSwtNCgxMSkKKwltdGxyCTAKKwltcgkxLDExCisJYmxyCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc3X3JkYi5kdHMgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3N19yZGIuZHRzCmluZGV4IDViYzA5YWQuLmYzMDgzYzcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc3X3JkYi5kdHMKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzdfcmRiLmR0cwpAQCAtMTY0LDEyICsxNjQsNiBAQAogCQkJCXJlZyA9IDwweDI+OwogCQkJCWRldmljZV90eXBlID0gImV0aGVybmV0LXBoeSI7CiAJCQl9OwotCQkJcGh5MzogZXRoZXJuZXQtcGh5QDMgewotCQkJCWludGVycnVwdC1wYXJlbnQgPSA8JmlwaWM+OwotCQkJCWludGVycnVwdHMgPSA8MTggMHg4PjsKLQkJCQlyZWcgPSA8MHgzPjsKLQkJCQlkZXZpY2VfdHlwZSA9ICJldGhlcm5ldC1waHkiOwotCQkJfTsKIAkJfTsKIAogCQllbmV0MDogZXRoZXJuZXRAMjQwMDAgewpAQCAtMTk1LDcgKzE4OSw3IEBACiAJCQlpbnRlcnJ1cHRzID0gPDM1IDB4OCAzNiAweDggMzcgMHg4PjsKIAkJCXBoeS1jb25uZWN0aW9uLXR5cGUgPSAibWlpIjsKIAkJCWludGVycnVwdC1wYXJlbnQgPSA8JmlwaWM+OwotCQkJcGh5LWhhbmRsZSA9IDwmcGh5Mz47CisJCQlmaXhlZC1saW5rID0gPDEgMSAxMDAwIDAgMD47CiAJCX07CiAKIAkJc2VyaWFsMDogc2VyaWFsQDQ1MDAgewpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzhfcmRiLmR0cyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc4X3JkYi5kdHMKaW5kZXggNzExZjlhMy4uMGU4NzJhNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzhfcmRiLmR0cworKysgYi9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OF9yZGIuZHRzCkBAIC0xNjQsMTIgKzE2NCw2IEBACiAJCQkJcmVnID0gPDB4Mj47CiAJCQkJZGV2aWNlX3R5cGUgPSAiZXRoZXJuZXQtcGh5IjsKIAkJCX07Ci0JCQlwaHkzOiBldGhlcm5ldC1waHlAMyB7Ci0JCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmaXBpYz47Ci0JCQkJaW50ZXJydXB0cyA9IDwxOCAweDg+OwotCQkJCXJlZyA9IDwweDM+OwotCQkJCWRldmljZV90eXBlID0gImV0aGVybmV0LXBoeSI7Ci0JCQl9OwogCQl9OwogCiAJCWVuZXQwOiBldGhlcm5ldEAyNDAwMCB7CkBAIC0xOTUsNyArMTg5LDcgQEAKIAkJCWludGVycnVwdHMgPSA8MzUgMHg4IDM2IDB4OCAzNyAweDg+OwogCQkJcGh5LWNvbm5lY3Rpb24tdHlwZSA9ICJtaWkiOwogCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmaXBpYz47Ci0JCQlwaHktaGFuZGxlID0gPCZwaHkzPjsKKwkJCWZpeGVkLWxpbmsgPSA8MSAxIDEwMDAgMCAwPjsKIAkJfTsKIAogCQlzZXJpYWwwOiBzZXJpYWxANDUwMCB7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OV9yZGIuZHRzIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzgzNzlfcmRiLmR0cwppbmRleCBjMTFjZWI3Li4xZWI4ZGVmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODM3OV9yZGIuZHRzCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4Mzc5X3JkYi5kdHMKQEAgLTE2NCwxMiArMTY0LDYgQEAKIAkJCQlyZWcgPSA8MHgyPjsKIAkJCQlkZXZpY2VfdHlwZSA9ICJldGhlcm5ldC1waHkiOwogCQkJfTsKLQkJCXBoeTM6IGV0aGVybmV0LXBoeUAzIHsKLQkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpcGljPjsKLQkJCQlpbnRlcnJ1cHRzID0gPDE4IDB4OD47Ci0JCQkJcmVnID0gPDB4Mz47Ci0JCQkJZGV2aWNlX3R5cGUgPSAiZXRoZXJuZXQtcGh5IjsKLQkJCX07CiAJCX07CiAKIAkJZW5ldDA6IGV0aGVybmV0QDI0MDAwIHsKQEAgLTE5NSw3ICsxODksNyBAQAogCQkJaW50ZXJydXB0cyA9IDwzNSAweDggMzYgMHg4IDM3IDB4OD47CiAJCQlwaHktY29ubmVjdGlvbi10eXBlID0gIm1paSI7CiAJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZpcGljPjsKLQkJCXBoeS1oYW5kbGUgPSA8JnBoeTM+OworCQkJZml4ZWQtbGluayA9IDwxIDEgMTAwMCAwIDA+OwogCQl9OwogCiAJCXNlcmlhbDA6IHNlcmlhbEA0NTAwIHsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NTQ4Y2RzLmR0cyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NTQ4Y2RzLmR0cwppbmRleCBmYTI5OGE4Li40ODExYjgxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODU0OGNkcy5kdHMKKysrIGIvYXJjaC9wb3dlcnBjL2Jvb3QvZHRzL21wYzg1NDhjZHMuZHRzCkBAIC00MDksNyArNDA5LDcgQEAKIAkJaW50ZXJydXB0cyA9IDwyNiAyPjsKIAkJYnVzLXJhbmdlID0gPDAgMjU1PjsKIAkJcmFuZ2VzID0gPDB4MjAwMDAwMCAweDAgMHhhMDAwMDAwMCAweGEwMDAwMDAwIDB4MCAweDIwMDAwMDAwCi0JCQkgIDB4MTAwMDAwMCAweDAgMHgwIDB4ZTMwMDAwMDAgMHgwIDB4ODAwMDAwMD47CisJCQkgIDB4MTAwMDAwMCAweDAgMHgwIDB4ZTMwMDAwMDAgMHgwIDB4MTAwMDAwPjsKIAkJY2xvY2stZnJlcXVlbmN5ID0gPDMzMzMzMzMzPjsKIAkJI2ludGVycnVwdC1jZWxscyA9IDwxPjsKIAkJI3NpemUtY2VsbHMgPSA8Mj47CkBAIC00MjgsNyArNDI4LDcgQEAKIAogCQkJCSAgMHgxMDAwMDAwIDB4MCAweDAKIAkJCQkgIDB4MTAwMDAwMCAweDAgMHgwCi0JCQkJICAweDAgMHg4MDAwMDAwPjsKKwkJCQkgIDB4MCAweDEwMDAwMD47CiAJCX07CiAJfTsKIH07CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvYm9vdC9kdHMvbXBjODYxMF9ocGNkLmR0cyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NjEwX2hwY2QuZHRzCmluZGV4IDA4YTc4MGQuLmZhOWI2YmIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NjEwX2hwY2QuZHRzCisrKyBiL2FyY2gvcG93ZXJwYy9ib290L2R0cy9tcGM4NjEwX2hwY2QuZHRzCkBAIC0yNTEsMTQgKzI1MSwxNCBAQAogCQlkbWFAYzMwMCB7CiAJCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsKIAkJCSNzaXplLWNlbGxzID0gPDE+OwotCQkJY29tcGF0aWJsZSA9ICJmc2wsbXBjODYxMC1kbWEiLCAiZnNsLG1wYzg1NDAtZG1hIjsKKwkJCWNvbXBhdGlibGUgPSAiZnNsLG1wYzg2MTAtZG1hIiwgImZzbCxlbG9wbHVzLWRtYSI7CiAJCQljZWxsLWluZGV4ID0gPDE+OwogCQkJcmVnID0gPDB4YzMwMCAweDQ+OyAvKiBETUEgZ2VuZXJhbCBzdGF0dXMgcmVnaXN0ZXIgKi8KIAkJCXJhbmdlcyA9IDwweDAgMHhjMTAwIDB4MjAwPjsKIAogCQkJZG1hLWNoYW5uZWxAMCB7CiAJCQkJY29tcGF0aWJsZSA9ICJmc2wsbXBjODYxMC1kbWEtY2hhbm5lbCIsCi0JCQkJCSJmc2wsbXBjODU0MC1kbWEtY2hhbm5lbCI7CisJCQkJCSJmc2wsZWxvcGx1cy1kbWEtY2hhbm5lbCI7CiAJCQkJY2VsbC1pbmRleCA9IDwwPjsKIAkJCQlyZWcgPSA8MHgwIDB4ODA+OwogCQkJCWludGVycnVwdC1wYXJlbnQgPSA8Jm1waWM+OwpAQCAtMjY2LDcgKzI2Niw3IEBACiAJCQl9OwogCQkJZG1hLWNoYW5uZWxAMSB7CiAJCQkJY29tcGF0aWJsZSA9ICJmc2wsbXBjODYxMC1kbWEtY2hhbm5lbCIsCi0JCQkJCSJmc2wsbXBjODU0MC1kbWEtY2hhbm5lbCI7CisJCQkJCSJmc2wsZWxvcGx1cy1kbWEtY2hhbm5lbCI7CiAJCQkJY2VsbC1pbmRleCA9IDwxPjsKIAkJCQlyZWcgPSA8MHg4MCAweDgwPjsKIAkJCQlpbnRlcnJ1cHQtcGFyZW50ID0gPCZtcGljPjsKQEAgLTI3NCw3ICsyNzQsNyBAQAogCQkJfTsKIAkJCWRtYS1jaGFubmVsQDIgewogCQkJCWNvbXBhdGlibGUgPSAiZnNsLG1wYzg2MTAtZG1hLWNoYW5uZWwiLAotCQkJCQkiZnNsLG1wYzg1NDAtZG1hLWNoYW5uZWwiOworCQkJCQkiZnNsLGVsb3BsdXMtZG1hLWNoYW5uZWwiOwogCQkJCWNlbGwtaW5kZXggPSA8Mj47CiAJCQkJcmVnID0gPDB4MTAwIDB4ODA+OwogCQkJCWludGVycnVwdC1wYXJlbnQgPSA8Jm1waWM+OwpAQCAtMjgyLDcgKzI4Miw3IEBACiAJCQl9OwogCQkJZG1hLWNoYW5uZWxAMyB7CiAJCQkJY29tcGF0aWJsZSA9ICJmc2wsbXBjODYxMC1kbWEtY2hhbm5lbCIsCi0JCQkJCSJmc2wsbXBjODU0MC1kbWEtY2hhbm5lbCI7CisJCQkJCSJmc2wsZWxvcGx1cy1kbWEtY2hhbm5lbCI7CiAJCQkJY2VsbC1pbmRleCA9IDwzPjsKIAkJCQlyZWcgPSA8MHgxODAgMHg4MD47CiAJCQkJaW50ZXJydXB0LXBhcmVudCA9IDwmbXBpYz47CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTNfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCmluZGV4IDdkMTg0NDAuLjU0MjhmOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxM19yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBGcmkgQXByIDExIDExOjEwOjA5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0xOTYsNyArMjAxLDYgQEAKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAogQ09ORklHX0JJTkZNVF9FTEY9eQogIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAotQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQogQ09ORklHX0FSQ0hfSEFTX1dBTEtfTUVNT1JZPXkKQEAgLTIxMSwxMSArMjE1LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzksNiArMjQ1LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDgsMTEgKzI1NSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDAsOCArMzA3LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM2Miw2ICszNjcsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9PRl9QQVJUUz15CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDQ1LDYgKzQ1MSw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNjQxLDcgKzY0OCw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY2MSw2ICs2NjcsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NjgsNiArNjc1LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MjQsNiArNzMyLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NTEsNyArNzYwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NjIsMTMgKzc3MCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTUsNiArNzk2LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwNCwxNyArODA2LDEyIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogQ09ORklHX1NQST15CiAjIENPTkZJR19TUElfREVCVUcgaXMgbm90IHNldAogQ09ORklHX1NQSV9NQVNURVI9eQpAQCAtOTE5LDEyICs5MTYsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtOTc3LDE2ICs5ODQsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMDA0LDYgKzEwMTUsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMDIzLDcgKzEwMzUsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjEsNiArMTA3NSw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKQEAgLTEwNzIsNiArMTA4Nyw3IEBACiBDT05GSUdfVVNCX05FVDIyODA9eQogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtMTA5MCw2ICsxMTA2LDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC0xMTQ0LDExICsxMTYxLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMTY4LDcgKzExODIsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMjM3LDcgKzEyNTAsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMjgyLDYgKzEyOTQsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTMwMiw2ICsxMzE1LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMzEyLDYgKzEzMjYsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMzI0LDYgKzEzMzksNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMzM1LDYgKzEzNTEsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTEzNDUsNTEgKzEzNjIsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMTVfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCmluZGV4IDFmNTc0NTYuLjliYzNhMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMxNV9yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjE1IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM4LDYgKzI0NSw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ3LDExICsyNTUsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk5LDggKzMwNyw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNjEsNiArMzY3LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDQ0LDYgKzQ1MSw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTQ5LDcgKzU1NywxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX0ZTTD15CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTU1OSwxMyArNTcxLDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9GU0w9eQogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC02MDUsNiArNjE1LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CiBDT05GSUdfTURfTElORUFSPXkKQEAgLTY5OCw3ICs3MDksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC03MTgsNiArNzI4LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNzI1LDYgKzczNiw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNzgxLDYgKzc5Myw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtODA4LDcgKzgyMSw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtODE5LDEzICs4MzEsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODUyLDYgKzg1Nyw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04NjEsMTcgKzg2NywxMiBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogIyBDT05GSUdfU1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19TUElfTUFTVEVSPXkKQEAgLTk3NiwxMiArOTc3LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKQEAgLTEwMzQsMTYgKzEwNDUsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMDYxLDYgKzEwNzYsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMDgwLDcgKzEwOTYsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTExMTgsNiArMTEzNiw3IEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogQ09ORklHX1VTQl9HQURHRVQ9eQogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTIGlzIG5vdCBzZXQKQEAgLTExMjksNiArMTE0OCw3IEBACiBDT05GSUdfVVNCX05FVDIyODA9eQogIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtMTE0Nyw2ICsxMTY3LDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC0xMjAxLDExICsxMjIyLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjI1LDcgKzEyNDMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMjk0LDcgKzEzMTEsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMzM5LDYgKzEzNTUsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTM1MSw2ICsxMzY4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTM1OCw2ICsxMzc2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMzY4LDYgKzEzODcsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMzgwLDYgKzE0MDAsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMzkxLDYgKzE0MTIsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE0MDEsNTEgKzE0MjMsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfbWRzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCmluZGV4IDUwY2NlZGEuLjFlY2EyNmYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODMyeF9tZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM2OjUxIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTIsMTEgKzIxNywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM5LDYgKzI0Niw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDgsMTEgKzI1NiwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMDAsOCArMzA4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1NSw2ICszNjEsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUyMiw3ICs1MjksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC01NDYsNiArNTUyLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNTUzLDYgKzU2MCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTYwMCw2ICs2MDgsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTYyOCw3ICs2MzcsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQogIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTYzOSwxMyArNjQ3LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTY3MSw2ICs2NzIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNjgwLDE5ICs2ODIsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTc3NSwxMiArNzcxLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC04MTEsNiArODE3LDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODE5LDYgKzgyNyw3IEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtODcwLDExICs4NzksOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTg5NCw3ICs5MDAsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05NTIsNyArOTU3LDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtOTk1LDYgKzk5OSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDA1LDYgKzEwMTAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDEyLDYgKzEwMTgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwMjEsNiArMTAyOCw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTAzMCw1MiArMTAzOCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzJ4X3JkYl9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZwppbmRleCBhYzkxMzAyLi5kZTk1ZDMyIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzMnhfcmRiX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxNiAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjQgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEyLDExICsyMTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzOSw2ICsyNDYsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ4LDExICsyNTYsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAwLDggKzMwOCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTUsNiArMzYxLDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjYsNyArNTMzLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTUwLDYgKzU1Niw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1Nyw2ICs1NjQsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTYxMyw2ICs2MjEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTY1MywxMyArNjYyLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTY4Niw2ICs2ODgsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNjk1LDE3ICs2OTgsMTIgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKIENPTkZJR19TUElfTUFTVEVSPXkKIApAQCAtODA5LDEyICs4MDcsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtODY3LDE2ICs4NzUsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEX1BQQ19PRj15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0Y9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0ZfQkU9eQpAQCAtODk0LDYgKzkwNiw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTkxMyw3ICs5MjYsOSBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1IGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTk1MSw2ICs5NjYsNyBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogQ09ORklHX01NQz15CiAjIENPTkZJR19NTUNfREVCVUcgaXMgbm90IHNldApAQCAtOTYyLDYgKzk3OCw3IEBACiBDT05GSUdfTU1DX0JMT0NLPXkKIENPTkZJR19NTUNfQkxPQ0tfQk9VTkNFPXkKICMgQ09ORklHX1NESU9fVUFSVCBpcyBub3Qgc2V0CisjIENPTkZJR19NTUNfVEVTVCBpcyBub3Qgc2V0CiAKICMKICMgTU1DL1NEIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCkBAIC05NzIsMTQgKzk4OSwxMSBAQAogQ09ORklHX01NQ19TUEk9eQogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTk5OSw3ICsxMDEzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTA2MCw3ICsxMDczLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTE0Nyw2ICsxMTU5LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogQ09ORklHX0NSQ19JVFVfVD15CkBAIC0xMTU3LDYgKzExNzAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMTY0LDYgKzExNzgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTExNzMsNiArMTE4OCw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE4Miw1MiArMTE5OCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZwppbmRleCBlMWRlMzk5Li5iNDdmYzkxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxNyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjUgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNyw2ICsyNDQsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ2LDExICsyNTQsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk4LDggKzMwNiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MzIsNiArNDM4LDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01NDEsNyArNTQ4LDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC01NTEsMTMgKzU2MiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX1NJTD15Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldApAQCAtNTk4LDYgKzYwNyw3IEBACiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogQ09ORklHX1BBVEFfUExBVEZPUk09eQogQ09ORklHX1BBVEFfT0ZfUExBVEZPUk09eQorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogQ09ORklHX01EPXkKIENPTkZJR19CTEtfREVWX01EPXkKIENPTkZJR19NRF9MSU5FQVI9eQpAQCAtNjU5LDcgKzY2OSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY3OSw2ICs2ODgsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02ODYsNiArNjk2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MjIsNiArNzMzLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NDksNyArNzYxLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NjAsMTMgKzc3MSw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTMsNiArNzk3LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwMiwxNyArODA3LDEyIEBACiBDT05GSUdfU0VOU09SU19QQ0Y4NTc0PXkKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKIENPTkZJR19TUEk9eQogQ09ORklHX1NQSV9NQVNURVI9eQogCkBAIC04NjIsMTIgKzg2MiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC05MDUsMTYgKzkxNSwyMCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9VSENJX0hDRD15CiAjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKQEAgLTkyNSw2ICs5MzksNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC05NDUsNiArOTYwLDcgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTk4MiwxMCArOTk4LDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtMTA0MCwxMSArMTA1OCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA2NCw3ICsxMDc5LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTEyNiw3ICsxMTQwLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTIxMCw2ICsxMjIzLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEyMjAsNiArMTIzNCw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEyMjcsNiArMTI0Miw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTIzNiw2ICsxMjUyLDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMjQ1LDUxICsxMjYyLDgxIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eGdwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9pdHhncF9kZWZjb25maWcKaW5kZXggYjRlMzljZi4uZmRhYzQ4NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzR4X2l0eGdwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfaXR4Z3BfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjE4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM3LDYgKzI0NCw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDYsMTEgKzI1NCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTgsOCArMzA2LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQzMiw2ICs0MzgsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTU4Nyw3ICs1OTQsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MDcsNiArNjEzLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE0LDYgKzYyMSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNjUwLDYgKzY1OCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNjc3LDcgKzY4Niw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT15CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNjg4LDEzICs2OTYsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzIxLDYgKzcyMiw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03MzAsMTcgKzczMiwxMiBAQAogQ09ORklHX1NFTlNPUlNfUENGODU3ND15CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiBDT05GSUdfU1BJPXkKIENPTkZJR19TUElfTUFTVEVSPXkKIApAQCAtNzkwLDEyICs3ODcsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtODMzLDE2ICs4NDAsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfVUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CkBAIC04NTMsNiArODY0LDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODczLDYgKzg4NSw3IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC05MDksMTAgKzkyMiwxMiBAQAogIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC05NjcsMTEgKzk4Miw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTkxLDcgKzEwMDMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMDUzLDcgKzEwNjQsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMTM3LDYgKzExNDcsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTE0Nyw2ICsxMTU4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTE1NCw2ICsxMTY2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMTYzLDYgKzExNzYsNyBAQAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTExNzIsNTEgKzExODYsODEgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNHhfbWRzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCmluZGV4IGI0ZTgyYzAuLmM4MmU5NmUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM0eF9tZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM2OjU2IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTEwLDEyICsxMTMsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTAsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM3LDYgKzI0NCw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDYsMTEgKzI1NCwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTgsOCArMzA2LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNTksNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQ3MSw3ICs0NzgsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00OTEsNiArNDk3LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDk4LDYgKzUwNSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTU0NCw2ICs1NTIsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU3MSw3ICs1ODAsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNTgyLDEzICs1OTAsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNjE0LDYgKzYxNSw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC02MjMsMTkgKzYyNSwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNzE4LDEyICs3MTQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTc1NCw2ICs3NjAsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC03NjIsNiArNzcwLDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC04MTMsMTEgKzgyMiw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODM3LDcgKzg0Myw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTg5NSw3ICs5MDAsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC05MzYsNiArOTQwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTk0Niw2ICs5NTEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC05NTMsNiArOTU5LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC05NjIsNiArOTY5LDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC05NzEsNTEgKzk3OSw4MSBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4MzZ4X21kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZwppbmRleCBkNTBhOTZlLi4yMGZkOWY1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzNnhfbWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNjo1NyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MjcgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODYsNiArODgsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMCwxMiArMTEzLDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNyw2ICsyNDQsNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ2LDExICsyNTQsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk4LDggKzMwNiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTMsNiArMzU5LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjAsNyArNTI3LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTQ0LDYgKzU1MCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1MSw2ICs1NTgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC01OTgsNiArNjA2LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjYsNyArNjM1LDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC02MzcsMTMgKzY0NSw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC02NjksNiArNjcwLDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY3OCwxOSArNjgwLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NzMsMTIgKzc2OSwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODA5LDYgKzgxNSw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTgxNyw2ICs4MjUsNyBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTg2OCwxMSArODc3LDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC04OTIsNyArODk4LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTUwLDcgKzk1NSw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTk5Myw2ICs5OTcsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTAwMyw2ICsxMDA4LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTAxMCw2ICsxMDE2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMDE5LDYgKzEwMjYsNyBAQAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMjgsNTIgKzEwMzYsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9tZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKaW5kZXggZjM3N2NkZS4uMGY5NGQ5ZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9tcGM4Mzd4X21kc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MjMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjI4IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDEyICsxMTQsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTIxMSwxMSArMjE2LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzQsNiArMjQxLDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MywxMSArMjUxLDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5NSw4ICszMDMsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUwLDYgKzM1Niw3IEBACiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNDExLDggKzQxOCwxMCBAQAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9GU0w9eQorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX01BQ0lOVE9TSF9EUklWRVJTIGlzIG5vdCBzZXQKQEAgLTQ1OSw2ICs0NjgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTAzLDYgKzUxMyw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01MzcsMTMgKzU0OCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01NTIsNiArNTU2LDcgQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNTYxLDE5ICs1NjYsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTY0NiwxMiArNjQ1LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC02ODAsNiArNjg5LDggQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC02ODgsMTMgKzY5OSwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNzE0LDcgKzcyMiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTc3Miw3ICs3NzksNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC04MTcsNiArODIzLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgyNyw2ICs4MzQsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04MzQsNiArODQyLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NDEsNiArODUwLDcgQEAKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTg1MCw1MCArODYwLDgwIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L21wYzgzN3hfcmRiX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCmluZGV4IGE2MzMxNzYuLjBkNDQ4NTUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvbXBjODM3eF9yZGJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjI0IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgVHVlIEp1biAxMCAwOToxNzoxMiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKQEAgLTExMSwxMiArMTE0LDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTEsMTEgKzIxNiwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzI0MSw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDMsMTEgKzI1MSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTAsOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM0NSw2ICszNTEsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTM1Miw2ICszNTksNyBAQAogQ09ORklHX0JMS19ERVZfTE9PUD15CiAjIENPTkZJR19CTEtfREVWX0NSWVBUT0xPT1AgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9OQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9VQiBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9SQU09eQogQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CiBDT05GSUdfQkxLX0RFVl9SQU1fU0laRT0zMjc2OApAQCAtNDA2LDggKzQxNCwxMCBAQAogIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9GU0w9eQorQ09ORklHX0FUQV9TRkY9eQorIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CkBAIC00NDQsNyArNDU0LDcgQEAKICMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKICMgQ09ORklHX1JFQUxURUtfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0CitDT05GSUdfRklYRURfUEhZPXkKICMgQ09ORklHX01ESU9fQklUQkFORyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKIENPTkZJR19NSUk9eQpAQCAtNDY0LDYgKzQ3NCwxNiBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKKyMKKyMgQ09ORklHX1VTQl9DQVRDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTA4LDYgKzUyOCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NDIsMTMgKzU2Myw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01NTcsNiArNTcxLDggQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTU2NiwxOSArNTgyLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC02NDIsNiArNjUyLDExIEBACiBDT05GSUdfODN4eF9XRFQ9eQogCiAjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKICMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCiAjCiBDT05GSUdfU1NCX1BPU1NJQkxFPXkKQEAgLTY1MSwxMyArNjY2LDI0IEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQorIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKICMKICMgR3JhcGhpY3Mgc3VwcG9ydApAQCAtNjgwLDYgKzcwNiwxNCBAQAogQ09ORklHX0hJRD15CiAjIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfSElEUkFXIGlzIG5vdCBzZXQKKworIworIyBVU0IgSW5wdXQgRGV2aWNlcworIworQ09ORklHX1VTQl9ISUQ9eQorIyBDT05GSUdfVVNCX0hJRElOUFVUX1BPV0VSQk9PSyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURfRkYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0hJRERFViBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1NVUFBPUlQ9eQogQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldApAQCAtNjk1LDMzICs3MjksODMgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVD15CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfRlNMPXkKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NMODExX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUjhBNjY1OTdfSENEIGlzIG5vdCBzZXQKIAogIworIyBVU0IgRGV2aWNlIENsYXNzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CisKKyMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwogIworCisjCisjIG1heSBhbHNvIGJlIG5lZWRlZDsgc2VlIFVTQl9TVE9SQUdFIEhlbHAgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMKKyMgQ09ORklHX1VTQl9TVE9SQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIEltYWdpbmcgZGV2aWNlcworIworIyBDT05GSUdfVVNCX01EQzgwMCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTUlDUk9URUsgaXMgbm90IHNldAorQ09ORklHX1VTQl9NT049eQorCisjCisjIFVTQiBwb3J0IGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9TRVJJQUwgaXMgbm90IHNldAorCisjCisjIFVTQiBNaXNjZWxsYW5lb3VzIGRyaXZlcnMKKyMKKyMgQ09ORklHX1VTQl9FTUk2MiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfRU1JMjYgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0FEVVRVWCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVVFUlNXQUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9SSU81MDAgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFR09UT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9CRVJSWV9DSEFSR0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQ1lQUkVTU19DWTdDNjMgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0NZVEhFUk0gaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1BISURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lETU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0ZURElfRUxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfQVBQTEVESVNQTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TSVNVU0JWR0EgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTc0MSw3ICs4MjUsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC03OTksNyArODgyLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtODQ0LDYgKzkyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC04NTQsNiArOTM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtODYxLDYgKzk0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NjgsNiArOTUzLDcgQEAKICMgQ09ORklHX0RFQlVHX0tFUk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTg4MSw1MCArOTY3LDgwIEBACiBDT05GSUdfQVNZTkNfTUVNQ1BZPXkKIENPTkZJR19BU1lOQ19YT1I9eQogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9zYmM4MzR4X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzgzeHgvc2JjODM0eF9kZWZjb25maWcKaW5kZXggMWYxNTE4Mi4uMTc1MjkxOCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODN4eC9zYmM4MzR4X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84M3h4L3NiYzgzNHhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjM4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozMCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Niw2ICs4OCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTA5LDEyICsxMTIsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMDksMTEgKzIxNCwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjMyLDYgKzIzOSw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDEsMTEgKzI0OSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTMsOCArMzAxLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM0OCw2ICszNTQsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQyMCw2ICs0MjcsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNDY0LDYgKzQ3Miw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC00OTgsMTMgKzUwNyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiBDT05GSUdfSTJDX01QQz15CkBAIC01MTMsNiArNTE1LDcgQEAKICMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNTIyLDE5ICs1MjUsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTYwNywxMiArNjA0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKICMgQ09ORklHX0RBQiBpcyBub3Qgc2V0CiAKICMKQEAgLTY0MCwxMyArNjQ3LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC02NTksNyArNjYzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNzE3LDcgKzcyMCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTc0Niw2ICs3NDgsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzU2LDYgKzc1OSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc2Myw2ICs3NjcsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc3MCw2ICs3NzUsNyBAQAogIyBDT05GSUdfREVCVUdfS0VSTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtNzc5LDUwICs3ODUsODAgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9rc2k4NTYwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgva3NpODU2MF9kZWZjb25maWcKaW5kZXggMmQwZGViYy4uYjgyYmIwNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9rc2k4NTYwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L2tzaTg1NjBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI0Ci0jIE1vbiBGZWIgMTEgMTY6MjU6MTkgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjMwIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTY4LDIzICs3MCwyMiBAQAogIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfUElEX05TIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTkyLDYgKzkzLDcgQEAKIENPTkZJR19QUklOVEs9eQogQ09ORklHX0JVRz15CiBDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTEwOSw2ICsxMTEsOCBAQAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xMzQsNyArMTM4LDYgQEAKICMgQ09ORklHX0RFRkFVTFRfTk9PUCBpcyBub3Qgc2V0CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJhbnRpY2lwYXRvcnkiCiBDT05GSUdfQ0xBU1NJQ19SQ1U9eQotIyBDT05GSUdfUFJFRU1QVF9SQ1UgaXMgbm90IHNldAogCiAjCiAjIFBsYXRmb3JtIHN1cHBvcnQKQEAgLTE5MSwxMiArMTk0LDEzIEBACiBDT05GSUdfUFJFRU1QVF9OT05FPXkKICMgQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotQ09ORklHX1JDVV9UUkFDRT15CiBDT05GSUdfQklORk1UX0VMRj15CiBDT05GSUdfQklORk1UX01JU0M9eQogQ09ORklHX01BVEhfRU1VTEFUSU9OPXkKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQorQ09ORklHX0FSQ0hfSEFTX1dBTEtfTUVNT1JZPXkKK0NPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUkVNT1ZFPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKIENPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CkBAIC0yMDcsMTYgKzIxMSwxNyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNDT01QIGlzIG5vdCBzZXQKLUNPTkZJR19XQU5UX0RFVklDRV9UUkVFPXkKIENPTkZJR19JU0FfRE1BX0FQST15CiAKICMKQEAgLTIyOSw2ICsyMzQsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjM4LDExICsyNDQsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5MCw4ICsyOTcsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUxLDYgKzM1Niw4IEBACiBDT05GSUdfTVREX1BBUlRJVElPTlM9eQogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MzAsMTcgKzQzNywxOSBAQAogQ09ORklHX0JMS19ERVZfUkFNPXkKIENPTkZJR19CTEtfREVWX1JBTV9DT1VOVD0xNgogQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MzI3NjgKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiBDT05GSUdfSURFPXkKIENPTkZJR19JREVfTUFYX0hXSUZTPTQKIENPTkZJR19CTEtfREVWX0lERT15CiAKICMKLSMgUGxlYXNlIHNlZSBEb2N1bWVudGF0aW9uL2lkZS50eHQgZm9yIGhlbHAvaW5mbyBvbiBJREUgZHJpdmVzCisjIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUvaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKICMKICMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVESVNLIGlzIG5vdCBzZXQKQEAgLTQ1Nyw3ICs0NjYsNyBAQAogQ09ORklHX0lERV9HRU5FUklDPXkKICMgQ09ORklHX0JMS19ERVZfUExBVEZPUk0gaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01MTcsNiArNTI2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTU2MSw2ICs1NzEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTk0LDEyICs2MDUsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNjE1LDYgKzYyMSw3IEBACiAjIENPTkZJR19TRU5TT1JTX1c4MzYyN0hGIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OX0RFQlVHX0NISVAgaXMgbm90IHNldAorIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiAKICMKQEAgLTYyNywxMiArNjM0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC02NjAsMTkgKzY3NywyMCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKKyMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjkzLDE0ICs3MTEsMTEgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15CiAjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTc0MywxNSArNzU4LDE2IEBACiAjIENPTkZJR19KRkZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkFNRlMgaXMgbm90IHNldAogIyBDT05GSUdfVlhGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IUEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03OTAsNiArODA2LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgwMCw2ICs4MTcsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04MDcsNiArODI1LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfRlM9eQpAQCAtODE3LDcgKzgzNiw5IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC04MjksOSArODUwLDkgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAotQ09ORklHX0ZPUkNFRF9JTkxJTklORz15CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CkBAIC04NDEsNiArODYyLDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJUlFfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldApAQCAtODUyLDQ4ICs4NzQsNzggQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTQwX2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZwppbmRleCBiOTk4NTM5Li5mMzNmZDUxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDBfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoyNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzEgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtMTEzLDYgKzExNiw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xNTMsNiArMTU3LDcgQEAKICMgQ09ORklHX01QQzg1eHhfQ0RTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDgsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjI5LDYgKzIzNiw3IEBACiAjIENPTkZJR19QQ0lfU1lTQ0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yMzgsMTEgKzI0NiwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjkwLDggKzI5OSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MTksNiArNDI2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTQ2Myw2ICs0NzEsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNDk0LDEyICs1MDMsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNTI4LDEyICs1MzIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTU2MSw2ICs1NzUsOCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTU2OSwxMyArNTg1LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC01OTUsNyArNjA4LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNjUyLDcgKzY2NCw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC02OTEsNiArNzAyLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcwMSw2ICs3MTMsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MDgsNiArNzIxLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC03MTgsNiArNzMyLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtNzMwLDYgKzc0NSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTc0MCw2ICs3NTYsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTc1MCw0NyArNzY3LDc3IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU0NF9kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NDRfZHNfZGVmY29uZmlnCmluZGV4IGE5ZjExM2IuLjA0MmE4NWUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU0NF9kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTQ0X2RzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzowMyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtOTAsNiArOTIsNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CkBAIC0xMTcsMTIgKzEyMCwxNCBAQAogIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEPXkKIENPTkZJR19NT0RWRVJTSU9OUz15CkBAIC0yMDMsNyArMjA4LDYgQEAKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAogQ09ORklHX0JJTkZNVF9FTEY9eQogQ09ORklHX0JJTkZNVF9NSVNDPW0KLUNPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfTUFUSF9FTVVMQVRJT049eQogIyBDT05GSUdfSU9NTVVfSEVMUEVSIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRz15CkBAIC0yMTksMTEgKzIyMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjQ4LDYgKzI1NCw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjU3LDExICsyNjQsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMzMiw4ICszNDAsMTAgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD15CiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFCTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVjZfTVJPVVRFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zOTUsNiArNDA1LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MDEsNyArNTEyLDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfQUhDST15CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldApAQCAtNTExLDEzICs1MjYsMTEgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX0FMST15CiAjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKQEAgLTU1Nyw2ICs1NzAsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNjIyLDcgKzYzNiw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY0Miw2ICs2NTUsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NDksNiArNjYzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MTMsNiArNzI4LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKICMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzQ0LDcgKzc2MCw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKIENPTkZJR19OVlJBTT15Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNzU1LDEzICs3NzAsNiBAQAogIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03ODgsNiArNzk2LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc5NywxOSArODA2LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTgyNiwxMyArODI5LDMzIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKIENPTkZJR19EVkJfQ09SRT1tCi0jIENPTkZJR19EVkJfQ09SRV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPW0KKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVI9bQorIyBDT05GSUdfTUVESUFfVFVORVJfQ1VTVE9NSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD1tCitDT05GSUdfTUVESUFfVFVORVJfWEMyMDI4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQogQ09ORklHX0RWQl9DQVBUVVJFX0RSSVZFUlM9eQogCiAjCkBAIC04NzUsMTQgKzg5OCwxNyBAQAogIwogIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKICMKLSMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTIzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9NVDMxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQyMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVERBMTAwODYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVTkVSX0lURDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogCiAjCiAjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCkBAIC05MDAsNiArOTI2LDcgQEAKICMgQ09ORklHX0RWQl9ESUIzMDAwTUMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwUCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBMTAwNDggaXMgbm90IHNldAogCiAjCiAjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCkBAIC05MTgsMjcgKzk0NSwyMSBAQAogIyBDT05GSUdfRFZCX0JDTTM1MTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0xHRFQzMzBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9BVTg1MjIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1M1SDE0MTEgaXMgbm90IHNldAogCiAjCi0jIFR1bmVycy9QTEwgc3VwcG9ydAorIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAogIwogIyBDT05GSUdfRFZCX1BMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI3WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBMTgyNzEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1FUMTAxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMDYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIyNjYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjEzMSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVFVORVJfRElCMDA3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfWEM1MDAwIGlzIG5vdCBzZXQKIAogIwotIyBNaXNjZWxsYW5lb3VzIGRldmljZXMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKICMKICMgQ09ORklHX0RWQl9MTkJQMjEgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0lTTDY0MDUgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0lTTDY0MjEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtMTAwNSw2ICsxMDI2LDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA3OSwxMSArMTEwMSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTE4LDE2ICsxMTQwLDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9GU0wgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExNDUsNiArMTE3MSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNjQsNyArMTE5MSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTIwMiwxMCArMTIzMSwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyNTcsMjMgKzEyODgsMTkgQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiBDT05GSUdfRE1BREVWSUNFUz15CiAKICMKICMgRE1BIERldmljZXMKICMKIENPTkZJR19GU0xfRE1BPXkKLSMgQ09ORklHX0ZTTF9ETUFfU0VMRlRFU1QgaXMgbm90IHNldAogQ09ORklHX0RNQV9FTkdJTkU9eQogCiAjCiAjIERNQSBDbGllbnRzCiAjCiAjIENPTkZJR19ORVRfRE1BIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjkzLDcgKzEzMjAsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMzYzLDEwICsxMzg5LDkgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTE0NTAsOSArMTQ3NSwxMCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiBDT05GSUdfTElCQ1JDMzJDPW0KQEAgLTE0NjksNiArMTQ5NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ3OSw2ICsxNTA2LDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTQ5Miw2ICsxNTIwLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE1MDMsNiArMTUzMiw3IEBACiAjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTUxMyw1MiArMTU0Myw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IQVNIPXkKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogQ09ORklHX0NSWVBUT19ITUFDPXkKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19TSEExPW0KICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2MF9hZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKaW5kZXggODUxYWM5MS4uZTE5NTkyYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTYwX2Fkc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MjcgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjMzIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTExMyw2ICsxMTYsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUzLDYgKzE1Nyw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDEgaXMgbm90IHNldApAQCAtMjEwLDExICsyMTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM4LDYgKzI0NSw3IEBACiBDT05GSUdfUENJX0RFQlVHPXkKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0NywxMSArMjU1LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTksOCArMzA4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ2Miw3ICs0NjksNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00ODIsNiArNDg4LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDg5LDYgKzQ5Niw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTUzNSw2ICs1NDMsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU3MiwxMiArNTgxLDcgQEAKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC02MTAsMTIgKzYxNCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjQ2LDYgKzY2MCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTY1NCwxNCArNjcwLDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY4MSw3ICs2OTQsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC03MzgsNyArNzUwLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTc3Nyw2ICs3ODgsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzg3LDYgKzc5OSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc5NCw2ICs4MDcsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTgwNCw2ICs4MTgsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC04MTYsNiArODMxLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtODI3LDYgKzg0Myw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTgzNyw0OSArODU0LDc5IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2OG1kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NjhtZHNfZGVmY29uZmlnCmluZGV4IDJiODY2YjMuLjI4MDA0ZTkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU2OG1kc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9tcGM4NTY4bWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzcKLSMgTW9uIE1hciAzMSAxMTozNzowNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzQgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSwxMiArMTE0LDE0IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMTU2LDYgKzE2MSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODV4eF9NRFM9eQogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxMiwxMSArMjE4LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDAsNiArMjQ4LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDksMTEgKzI1OCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAxLDggKzMxMSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTgsNiArMzY2LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MjUsNyArNTM0LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTQ2LDYgKzU1NCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU1Myw2ICs1NjIsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02MDAsNiArNjEwLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjksNyArNjQwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKICMgQ09ORklHX05WUkFNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC02NDAsMTMgKzY1MCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC02NzIsNiArNjc1LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY4MSwxOSArNjg1LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NzYsMTIgKzc3NCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODEyLDYgKzgyMCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTgyMCw2ICs4MzAsNyBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTg3MSwxMSArODgyLDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC04OTUsNyArOTAzLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTUzLDcgKzk2MCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTk5NCw2ICsxMDAwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEwMDQsNiArMTAxMSw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEwMTEsNiArMTAxOSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTAyMSw2ICsxMDMwLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTAzMyw2ICsxMDQzLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtMTA0NSw2ICsxMDU2LDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdHRVI9eQogIyBDT05GSUdfWE1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0VBUkxZX0RFQlVHPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVR19MUEFSIGlzIG5vdCBzZXQKQEAgLTEwNjYsNTIgKzEwNzgsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworQ09ORklHX0NSWVBUT19DQkM9eQorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fRUNCPW0KKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU3Ml9kc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NzJfZHNfZGVmY29uZmlnCmluZGV4IDUzYWE2ZjMuLjAzNjI3Y2ZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1NzJfZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODU3Ml9kc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM3Ci0jIE1vbiBNYXIgMzEgMTE6Mzc6MDYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjM1IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTkwLDYgKzkyLDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQogQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQpAQCAtMTE3LDEyICsxMjAsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRD15CiBDT05GSUdfTU9EVkVSU0lPTlM9eQpAQCAtMTYyLDYgKzE2Nyw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODV4eF9EUz15CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxNywxMSArMjIzLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDYsNiArMjU0LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTUsMTEgKzI2NCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzMwLDggKzM0MCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM5Myw2ICs0MDUsNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTQ5OSw3ICs1MTIsMTEgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC01MDksMTMgKzUyNiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAogQ09ORklHX1BBVEFfQUxJPXkKICMgQ09ORklHX1BBVEFfQU1EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldApAQCAtNTU1LDYgKzU3MCw3IEBACiAjIENPTkZJR19QQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1dJTkJPTkQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNJT04gaXMgbm90IHNldAogCkBAIC02MjAsNyArNjM2LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjQwLDYgKzY1NSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTY0Nyw2ICs2NjMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTcxMSw2ICs3MjgsNyBAQAogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQogIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03NDIsNyArNzYwLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19IV19SQU5ET00gaXMgbm90IHNldAogQ09ORklHX05WUkFNPXkKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CkBAIC03NTMsMTMgKzc3MCw2IEBACiAjIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTc4Niw2ICs3OTYsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNzk1LDE5ICs4MDYsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtODI0LDEzICs4MjksMzMgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogQ09ORklHX0RWQl9DT1JFPW0KLSMgQ09ORklHX0RWQl9DT1JFX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfVklERU9fTUVESUE9bQorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfTUVESUFfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUj1tCisjIENPTkZJR19NRURJQV9UVU5FUl9DVVNUT01JWkUgaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSX1NJTVBMRT1tCitDT05GSUdfTUVESUFfVFVORVJfVERBODI5MD1tCitDT05GSUdfTUVESUFfVFVORVJfVERBOTg4Nz1tCitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2MT1tCitDT05GSUdfTUVESUFfVFVORVJfVEVBNTc2Nz1tCitDT05GSUdfTUVESUFfVFVORVJfTVQyMFhYPW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzIwMjg9bQorQ09ORklHX01FRElBX1RVTkVSX1hDNTAwMD1tCiBDT05GSUdfRFZCX0NBUFRVUkVfRFJJVkVSUz15CiAKICMKQEAgLTg3MywxNCArODk4LDE3IEBACiAjCiAjIERWQi1TIChzYXRlbGxpdGUpIGZyb250ZW5kcwogIwotIyBDT05GSUdfRFZCX1NUVjAyOTkgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NYMjQxMTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NYMjQxMjMgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgwODMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX01UMzEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9WRVMxWDkzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9UREExMDA4NiBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVFVORVJfSVREMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVFVBNjEwMCBpcyBub3Qgc2V0CiAKICMKICMgRFZCLVQgKHRlcnJlc3RyaWFsKSBmcm9udGVuZHMKQEAgLTg5OCw2ICs5MjYsNyBAQAogIyBDT05GSUdfRFZCX0RJQjMwMDBNQyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfRElCNzAwME0gaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREExMDA0OCBpcyBub3Qgc2V0CiAKICMKICMgRFZCLUMgKGNhYmxlKSBmcm9udGVuZHMKQEAgLTkxNiwyNyArOTQ1LDIxIEBACiAjIENPTkZJR19EVkJfQkNNMzUxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfTEdEVDMzMFggaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1M1SDE0MDkgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0FVODUyMiBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfUzVIMTQxMSBpcyBub3Qgc2V0CiAKICMKLSMgVHVuZXJzL1BMTCBzdXBwb3J0CisjIERpZ2l0YWwgdGVycmVzdHJpYWwgb25seSB0dW5lcnMvUExMCiAjCiAjIENPTkZJR19EVkJfUExMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MjZYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MjdYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREExODI3MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfUVQxMDEwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIwNjAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjI2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMTMxIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9UVU5FUl9ESUIwMDcwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9YQzUwMDAgaXMgbm90IHNldAogCiAjCi0jIE1pc2NlbGxhbmVvdXMgZGV2aWNlcworIyBTRUMgY29udHJvbCBkZXZpY2VzIGZvciBEVkItUwogIwogIyBDT05GSUdfRFZCX0xOQlAyMSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfSVNMNjQwNSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfSVNMNjQyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVBNjEwMCBpcyBub3Qgc2V0CiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC0xMDAzLDYgKzEwMjYsNyBAQAogIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FXMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVpUMzMyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQlQ4N1ggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0NBMDEwNiBpcyBub3Qgc2V0CkBAIC0xMDc3LDExICsxMTAxLDExIEBACiAjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKIAogIwotIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcwogIwogCiAjCi0jIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCiAjCiAKICMKQEAgLTExMTYsMTYgKzExNDAsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEX1BQQ19PRj15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0Y9eQogQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0ZfQkU9eQpAQCAtMTE0Myw2ICsxMTcxLDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTE2Miw3ICsxMTkxLDkgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfTElCVVNVQUwgaXMgbm90IHNldAogCiAjCkBAIC0xMjAwLDEwICsxMjMxLDEyIEBACiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQpAQCAtMTI1NSwxMSArMTI4OCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTI3OSw3ICsxMzA5LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTM0OSwxMCArMTM3OCw5IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogQ09ORklHX05GU0Q9eQogIyBDT05GSUdfTkZTRF9WMyBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRF9UQ1A9eQorIyBDT05GSUdfTkZTRF9WNCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xNDM2LDkgKzE0NjQsMTAgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfSVRVX1Q9bQogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAogQ09ORklHX0xJQkNSQzMyQz1tCkBAIC0xNDQ3LDYgKzE0NzYsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xNDU0LDYgKzE0ODQsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTE0NjQsNiArMTQ5NSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTE0NzcsNiArMTUwOSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xNDg4LDYgKzE1MjEsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE0OTgsNTIgKzE1MzIsODIgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fU0hBMT1tCiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L21wYzg1eHhfY2RzX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCmluZGV4IGE0NjlmZTkuLmIwOWYwMDMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvbXBjODV4eF9jZHNfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjMwIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozNiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Nyw2ICs4OSw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTMsNiArMTE2LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1Myw2ICsxNTcsNyBAQAogQ09ORklHX01QQzg1eHhfQ0RTPXkKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDgsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM2LDYgKzI0Myw3IEBACiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ1LDExICsyNTMsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Nyw4ICszMDYsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtNDM3LDcgKzQ0NCw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01MTUsNyArNTIyLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTM1LDYgKzU0MSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU0Miw2ICs1NDksNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC01ODgsNiArNTk2LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC02MjQsMTIgKzYzMyw3IEBACiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKIENPTkZJR19ERVZQT1JUPXkKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNjYyLDEyICs2NjYsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTY5OCw2ICs3MTIsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC03MDYsMTQgKzcyMiwxMSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03MzMsNyArNzQ2LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNzkwLDcgKzgwMiw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC04MjksNiArODQwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTgzOSw2ICs4NTEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04NDYsNiArODU5LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC04NTYsNiArODcwLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtODY4LDYgKzg4Myw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTg3OCw2ICs4OTQsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTg4OCw0OCArOTA1LDc4IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc2JjODU0OF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NDhfZGVmY29uZmlnCmluZGV4IDY3ZjY3OTcuLjI0ZjdmNDQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc2JjODU0OF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTQ4X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODozOSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzcgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CiBDT05GSUdfSE9UUExVRz15CkBAIC0xMTEsNiArMTE0LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1MSw2ICsxNTUsNyBAQAogIyBDT05GSUdfTVBDODV4eF9DRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9NRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIwNiwxMSArMjExLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzMsNiArMjQwLDcgQEAKIENPTkZJR19QQ0lfTEVHQUNZPXkKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MiwxMSArMjUwLDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTQsOCArMzAzLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ0OSw3ICs0NTYsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC00NjksNiArNDc1LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNDc2LDYgKzQ4Myw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTUyMiw2ICs1MzAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTU1OCwxMiArNTY3LDcgQEAKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogQ09ORklHX0RFVlBPUlQ9eQogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC01OTYsMTIgKzYwMCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjI4LDE0ICs2NDIsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjQ4LDcgKzY1OSw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTcwNSw3ICs3MTUsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzMyLDYgKzc0MSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03NDIsNiArNzUyLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzQ5LDYgKzc2MCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzU2LDYgKzc2OCw3IEBACiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC03NjUsNDggKzc3OCw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NjBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTYwX2RlZmNvbmZpZwppbmRleCBmZWY2MDU1Li42NTU1MThkYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zYmM4NTYwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3NiYzg1NjBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjM5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjozOCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04Nyw2ICs4OSw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTIsNiArMTE1LDcgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKQEAgLTE1Miw2ICsxNTYsNyBAQAogIyBDT05GSUdfTVBDODV4eF9DRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9NRFMgaXMgbm90IHNldAogIyBDT05GSUdfTVBDODV4eF9EUyBpcyBub3Qgc2V0CisjIENPTkZJR19LU0k4NTYwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NUWF9HUDMgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIwNywxMSArMjEyLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMjgsNiArMjM1LDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTIzNywxMSArMjQ1LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yODksOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQxOCw2ICs0MjUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNDYyLDYgKzQ3MCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC00ODcsMTcgKzQ5NiwxMSBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTUyNiwxMiArNTI5LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01NTksNiArNTcyLDggQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19IQ0QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0kgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC01NjcsNiArNTgyLDcgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CkBAIC02MDIsMTEgKzYxOCw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE5LDcgKzYzMiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTY3Niw3ICs2ODgsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzE1LDYgKzcyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03MjUsNiArNzM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzMyLDYgKzc0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc0Miw2ICs3NTYsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKQEAgLTc1Myw2ICs3NjgsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NjMsNiArNzc5LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0VBUkxZX0RFQlVHPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVR19MUEFSIGlzIG5vdCBzZXQKQEAgLTc4NCw0NyArODAxLDc3IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc3R4X2dwM19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3N0eF9ncDNfZGVmY29uZmlnCmluZGV4IDFkMzAzYzQuLjc4MDRjYTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvc3R4X2dwM19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC9zdHhfZ3AzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODo0MiAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MzggMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtMTE0LDEyICsxMTcsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RVTEVfVU5MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RWRVJTSU9OUz15CiAjIENPTkZJR19NT0RVTEVfU1JDVkVSU0lPTl9BTEwgaXMgbm90IHNldApAQCAtMTU4LDYgKzE2Myw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogQ09ORklHX1NUWF9HUDM9eQogIyBDT05GSUdfVFFNODU0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTIxNSwxMSArMjIxLDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDMsNiArMjUxLDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTIsMTEgKzI2MSwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzA0LDggKzMxNCw2IEBACiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSPXkKICMgQ09ORklHX05FVEZJTFRFUl9ERUJVRyBpcyBub3Qgc2V0CkBAIC00MTgsNiArNDI2LDcgQEAKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19NVEQgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPW0KIENPTkZJR19QQVJQT1JUPW0KIENPTkZJR19QQVJQT1JUX1BDPW0KICMgQ09ORklHX1BBUlBPUlRfUENfRklGTyBpcyBub3Qgc2V0CkBAIC01MDUsNyArNTE0LDcgQEAKICMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02NTMsNyArNjYyLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjczLDYgKzY4MSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTY4MCw2ICs2ODksNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC03NTMsNiArNzYzLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03OTYsMTMgKzgwNyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9bQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi1DT05GSUdfSTJDX0FMR09CSVQ9bQotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODI5LDYgKzgzMyw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04MzgsMTkgKzg0MywxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtOTIwLDEyICs5MTksMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTk3Myw2ICs5ODIsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC05ODEsMTUgKzk5MiwxMiBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVWERJU1BMQVkgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwMDksNyArMTAxNyw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTEwNzMsNyArMTA4MCw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTE0MSw5ICsxMTQ3LDEwIEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogQ09ORklHX0NSQ19DQ0lUVD15CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiAjIENPTkZJR19MSUJDUkMzMkMgaXMgbm90IHNldApAQCAtMTE1Miw2ICsxMTU5LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTE1OSw2ICsxMTY3LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMTY5LDYgKzExNzgsNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMTgyLDYgKzExOTIsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xMTk0LDYgKzEyMDUsNyBAQAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX0JESV9TV0lUQ0g9eQogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTIwNCw1MCArMTIxNiw4MCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTQwX2RlZmNvbmZpZwppbmRleCBkMzllZTNiLi5lMGI1NTU5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDBfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjM5IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiBDT05GSUdfVFFNODU0MD15CiAjIENPTkZJR19UUU04NTQxIGlzIG5vdCBzZXQKQEAgLTE3MSw3ICsxNzYsNiBAQAogIyBDT05GSUdfR0VORVJJQ19JT01BUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRlJFUSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUE0yIGlzIG5vdCBzZXQKLUNPTkZJR19QUENfQ1BNX05FV19CSU5ESU5HPXkKICMgQ09ORklHX0ZTTF9VTEkxNTc1IGlzIG5vdCBzZXQKIAogIwpAQCAtMjA4LDExICsyMTIsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjMzLDYgKzIzOSw3IEBACiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogIyBDT05GSUdfUENJX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MiwxMSArMjQ5LDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTQsOCArMzAyLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Miw2ICszNTgsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDIzLDYgKzQzMCw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTA2LDcgKzUxNCw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MDAsNyArNjA4LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjIwLDYgKzYyNyw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTYyNyw2ICs2MzUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02NzMsNiArNjgyLDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03MTMsMTMgKzcyMyw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03NDQsNiArNzQ3LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc1MywxOSArNzU3LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC04MzUsMTIgKzgzMywyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODcxLDYgKzg3OSw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTg3OSwxNCArODg5LDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTkwNiw3ICs5MTMsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05NzQsNyArOTgwLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMTMsNiArMTAxOCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDI1LDYgKzEwMzEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDMyLDYgKzEwMzksNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwNDEsNiArMTA0OSw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA1MCw0OCArMTA1OSw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDFfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTQxX2RlZmNvbmZpZwppbmRleCBjYmY2YWQyLi42ZjkwNjdiIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NDFfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU0MV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDQgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjQwIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKIENPTkZJR19UUU04NTQxPXkKQEAgLTIwOSwxMSArMjE0LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiAjIENPTkZJR19QUk9DX0RFVklDRVRSRUUgaXMgbm90IHNldAogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNCw2ICsyNDEsNyBAQAogQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJPXkKICMgQ09ORklHX1BDSV9NU0kgaXMgbm90IHNldAogQ09ORklHX1BDSV9MRUdBQ1k9eQorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDMsMTEgKzI1MSwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk1LDggKzMwNCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTMsNiArMzYwLDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfQ01ETElORV9QQVJUUz15CiAjIENPTkZJR19NVERfT0ZfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQyNCw2ICs0MzIsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwNyw3ICs1MTYsNyBAQAogQ09ORklHX0JMS19ERVZfVklBODJDWFhYPXkKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLUNPTkZJR19JREVfQVJDSF9PQlNPTEVURV9JTklUPXkKKyMgQ09ORklHX0JMS19ERVZfSERfT05MWSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0hEIGlzIG5vdCBzZXQKIAogIwpAQCAtNjAyLDcgKzYxMSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTYyMiw2ICs2MzAsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02MjksNiArNjM4LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNjc1LDYgKzY4NSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzIzLDEzICs3MzQsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzU0LDYgKzc1OCw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03NjMsMTkgKzc2OCwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtODQ1LDEyICs4NDQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTg4MSw2ICs4OTAsOCBAQAogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiAjIENPTkZJR19VU0IgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC04ODksMTQgKzkwMCwxMSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC05MTYsNyArOTI0LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTg0LDcgKzk5MSw2IEBACiBDT05GSUdfTkZTX0ZTPXkKICMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC0xMDIzLDYgKzEwMjksNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtMTAzNSw2ICsxMDQyLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTA0Miw2ICsxMDUwLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMDUyLDYgKzEwNjEsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA2MSw0OSArMTA3MSw3OSBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTU1X2RlZmNvbmZpZwppbmRleCBiYmZmOTYyLi4wMzEyMGI1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NTVfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU1NV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6NDQgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjQxIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzIsNiArMzIsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg3LDYgKzg5LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogIyBDT05GSUdfS0FMTFNZTVMgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVRyBpcyBub3Qgc2V0CiBDT05GSUdfUFJJTlRLPXkKQEAgLTExMSw2ICsxMTQsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTUxLDYgKzE1NSw3IEBACiAjIENPTkZJR19NUEM4NXh4X0NEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X01EUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEM4NXh4X0RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tTSTg1NjAgaXMgbm90IHNldAogIyBDT05GSUdfU1RYX0dQMyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUU04NTQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDEgaXMgbm90IHNldApAQCAtMjA5LDExICsyMTQsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzI0MSw3IEBACiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogIyBDT05GSUdfUENJX01TSSBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0xFR0FDWT15CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MywxMSArMjUxLDEyIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfQUxJR049MHgxMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTUsOCArMzA0LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM1Myw2ICszNjAsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogQ09ORklHX01URF9DTURMSU5FX1BBUlRTPXkKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDI0LDYgKzQzMiw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTA3LDcgKzUxNiw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MDIsNyArNjExLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjIyLDYgKzYzMCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTYyOSw2ICs2MzgsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CkBAIC02NzUsNiArNjg1LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC03MjMsMTMgKzczNCw2IEBACiBDT05GSUdfSTJDX0NIQVJERVY9eQogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03NTQsNiArNzU4LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTc2MywxOSArNzY4LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC04NDUsMTIgKzg0NCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtODgxLDYgKzg5MCw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTg4OSwxNCArOTAwLDExIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTkxNiw3ICs5MjQsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC05ODQsNyArOTkxLDYgQEAKIENPTkZJR19ORlNfRlM9eQogIyBDT05GSUdfTkZTX1YzIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMjMsNiArMTAyOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDM1LDYgKzEwNDIsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMDQyLDYgKzEwNTAsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwNTIsNiArMTA2MSw3IEBACiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMDYxLDQ5ICsxMDcxLDc5IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy84NXh4L3RxbTg1NjBfZGVmY29uZmlnCmluZGV4IDYzYzVlYzguLjMxMTMyNTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzLzg1eHgvdHFtODU2MF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvODV4eC90cW04NTYwX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODo0NSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6NDIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMiw2ICszMiw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtODcsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiAjIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHIGlzIG5vdCBzZXQKIENPTkZJR19QUklOVEs9eQpAQCAtMTExLDYgKzExNCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0xNTEsNiArMTU1LDcgQEAKICMgQ09ORklHX01QQzg1eHhfQ0RTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfTURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg1eHhfRFMgaXMgbm90IHNldAorIyBDT05GSUdfS1NJODU2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKICMgQ09ORklHX1RRTTg1NDAgaXMgbm90IHNldAogIyBDT05GSUdfVFFNODU0MSBpcyBub3Qgc2V0CkBAIC0yMDksMTEgKzIxNCwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzQsNiArMjQxLDcgQEAKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiAjIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZPXkKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQzLDExICsyNTEsMTIgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5NSw4ICszMDQsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzUzLDYgKzM2MCw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NNRExJTkVfUEFSVFM9eQogIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC00MjQsNiArNDMyLDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC01MDcsNyArNTE2LDcgQEAKIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWD15CiAjIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0lERURNQT15Ci1DT05GSUdfSURFX0FSQ0hfT0JTT0xFVEVfSU5JVD15CisjIENPTkZJR19CTEtfREVWX0hEX09OTFkgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CiAKICMKQEAgLTYwMiw3ICs2MTEsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MjIsNiArNjMwLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjI5LDYgKzYzOCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKICMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GRERJIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKQEAgLTY3NSw2ICs2ODUsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTcyMywxMyArNzM0LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTc1NCw2ICs3NTgsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNzYzLDE5ICs3NjgsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTg0NSwxMiArODQ0LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC04ODEsNiArODkwLDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODg5LDE0ICs5MDAsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtOTE2LDcgKzkyNCw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTk4NCw3ICs5OTEsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTAyMyw2ICsxMDI5LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEwMzUsNiArMTA0Miw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEwNDIsNiArMTA1MCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTA1Miw2ICsxMDYxLDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTEwNjEsNDkgKzEwNzEsNzkgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvYWRkZXI4NzVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvYWRkZXI4NzVfZGVmY29uZmlnCmluZGV4IGEzY2M5NGEuLjY3NDBmMmEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2FkZGVyODc1X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9hZGRlcjg3NV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmMyCi0jIFdlZCBGZWIgMjAgMTI6MjY6MDcgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjA4IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTc1LDYgKzc3LDcgQEAKIENPTkZJR19VU0VSX1NDSEVEPXkKICMgQ09ORklHX0NHUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfU1lTRlNfREVQUkVDQVRFRF9WMj15CiAjIENPTkZJR19SRUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19OQU1FU1BBQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKQEAgLTEwNyw2ICsxMTAsOCBAQAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKQEAgLTEzMSw3ICsxMzYsNiBAQAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImRlYWRsaW5lIgogQ09ORklHX0NMQVNTSUNfUkNVPXkKLSMgQ09ORklHX1BSRUVNUFRfUkNVIGlzIG5vdCBzZXQKIAogIwogIyBQbGF0Zm9ybSBzdXBwb3J0CkBAIC0xOTQsNyArMTk4LDYgQEAKIENPTkZJR19QUkVFTVBUX05PTkU9eQogIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUkNVX1RSQUNFPXkKIENPTkZJR19CSU5GTVRfRUxGPXkKICMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX01BVEhfRU1VTEFUSU9OIGlzIG5vdCBzZXQKQEAgLTIxMywxMSArMjE2LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiAjIENPTkZJR19QUk9DX0RFVklDRVRSRUUgaXMgbm90IHNldAogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIzNSw2ICsyNDAsNyBAQAogIyBDT05GSUdfUENJX1FTUEFOIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0NCwxMyArMjUwLDEzIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4ODAwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NUQVJUPTB4ZmQwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NJWkU9MHgwMDIwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjkzLDggKzI5OSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00ODIsNiArNDg2LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTU0OCw2ICs1NTMsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTgwLDEyICs1ODYsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC02MDIsMTIgKzYwMywyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjMyLDEyICs2NDMsMTAgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0VEQUMgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCisjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY1MCw3ICs2NTksNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldApAQCAtNzA4LDcgKzcxNiw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzUxLDYgKzc1OCw3IEBACiAjCiAjIExpYnJhcnkgcm91dGluZXMKICMKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC03NjEsNiArNzY5LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtNzY4LDYgKzc3Nyw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15CkBAIC03NzgsNiArNzg4LDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKQEAgLTc4OCw2ICs3OTksNyBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTc5OCw2ICs4MTAsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSVJRX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKQEAgLTgxMSwzICs4MjQsNCBAQAogIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDgyNDhlX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCmluZGV4IDJiMTUwNGUuLmJhMmE0NjMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODI0OGVfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBNb24gTWFyIDI0IDA4OjQ4OjA5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjowOSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMwLDYgKzMwLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC03MCwxOCArNzIsMTYgQEAKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19HUk9VUF9TQ0hFRD15Ci1DT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15Ci1DT05GSUdfVVNFUl9TQ0hFRD15Ci0jIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTEwNyw2ICsxMDcsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTk0LDExICsxOTUsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIxNSw2ICsyMTgsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjI0LDExICsyMjgsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjgzLDYgKzI4Nyw3IEBACiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1RVTk5FTD15CiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogQ09ORklHX0lQVjZfU0lUPXkKK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKICMgQ09ORklHX0lQVjZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiBDT05GSUdfTkVURklMVEVSPXkKQEAgLTQ5OCw2ICs1MDMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTIxLDYgKzUyNyw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NTIsMTIgKzU1OSw3IEBACiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC01NzQsMTIgKzU3NiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtNjAzLDEyICs2MTUsOSBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTY3NSw3ICs2ODQsNiBAQAogQ09ORklHX05GU19GUz15CiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03NTIsNiArNzYwLDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTc2Myw2ICs3NzIsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03NzAsNiArNzgwLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzgwLDYgKzc5MSw3IEBACiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CkBAIC03OTEsNiArODAzLDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC04MDIsNiArODE1LDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19LR0RCX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKIENPTkZJR19CRElfU1dJVENIPXkKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTgxMSw0NSArODI1LDc1IEBACiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15Ci0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9eQorQ09ORklHX0NSWVBUT19QQ0JDPXkKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj15Ci1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9eQotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0hXIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDg4eGNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZXA4OHhjX2RlZmNvbmZpZwppbmRleCAxMjViNDc2Li5hYzcyYjQ4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9lcDg4eGNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2VwODh4Y19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MTAgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjA5IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTEwOCw2ICsxMTAsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CkBAIC0yMTIsMTEgKzIxNSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM0LDYgKzIzOSw3IEBACiAjIENPTkZJR19QQ0lfUVNQQU4gaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQzLDEzICsyNDksMTMgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHg4MDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU1RBUlQ9MHhmZDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU0laRT0weDAwMjAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA0MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTIsOCArMjk4LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ4MSw2ICs0ODUsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTA1LDYgKzUxMCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01MzcsMTIgKzU0Myw3IEBACiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTU1OSwxMiArNTYwLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01ODgsMTMgKzU5OSwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjA3LDcgKzYxNSw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CkBAIC02NjUsNyArNjcyLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03MDgsNiArNzE0LDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcxOCw2ICs3MjUsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MjUsNiArNzMzLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzM1LDYgKzc0NCw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC03NDUsNiArNzU1LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NTUsNiArNzY2LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC03NjcsMyArNzc5LDQgQEAKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvZzVfZGVmY29uZmlnCmluZGV4IGRiMzQ5MDkuLjBjY2M2ZTQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2c1X2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9nNV9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMzCi0jIFR1ZSBNYXkgMjAgMjA6MDE6MTggMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNgorIyBNb24gSnVuIDE2IDIxOjA4OjMxIDIwMDgKICMKIENPTkZJR19QUEM2ND15CiAKQEAgLTU5Nyw3ICs1OTcsNjEgQEAKIENPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVEFfU0ZGIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKK0NPTkZJR19TQVRBX1NWVz15CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAorIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMk4gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QRENfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUkFESVNZUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDMTIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NFUlZFUldPUktTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDMjAyN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSUw2ODAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogQ09ORklHX01EPXkKIENPTkZJR19CTEtfREVWX01EPXkKIENPTkZJR19NRF9MSU5FQVI9eQpAQCAtMTIzMCw2ICsxMjg0LDcgQEAKICMKIENPTkZJR19VU0JfQUNNPW0KIENPTkZJR19VU0JfUFJJTlRFUj15CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMzQ1LDYgKzE0MDAsNyBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZwppbmRleCAyMmE5NDNhLi40ODQzNGMyYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbGlua3N0YXRpb25fZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL2xpbmtzdGF0aW9uX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxMCAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTAgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMSw2ICszMSw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtOTEsNiArOTMsNyBAQAogQ09ORklHX1NZU0NUTD15CiAjIENPTkZJR19FTUJFRERFRCBpcyBub3Qgc2V0CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiAjIENPTkZJR19LQUxMU1lNU19BTEwgaXMgbm90IHNldAogIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CkBAIC0xMTgsMTIgKzEyMSwxNCBAQAogIyBDT05GSUdfS1BST0JFUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldApAQCAtMjIzLDExICsyMjgsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTI1MSw2ICsyNTgsNyBAQAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI2MCwxMSArMjY4LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMxMyw4ICszMjEsNiBAQAogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9WUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CiAjIENPTkZJR19ORVRGSUxURVJfREVCVUcgaXMgbm90IHNldApAQCAtMzI5LDYgKzMzNSw3IEBACiAjIENPTkZJR19ORl9DVF9BQ0NUIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX0NPTk5UUkFDS19NQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX0NPTk5UUkFDS19FVkVOVFMgaXMgbm90IHNldAorIyBDT05GSUdfTkZfQ1RfUFJPVE9fRENDUCBpcyBub3Qgc2V0CiBDT05GSUdfTkZfQ1RfUFJPVE9fR1JFPW0KIENPTkZJR19ORl9DVF9QUk9UT19TQ1RQPW0KICMgQ09ORklHX05GX0NUX1BST1RPX1VEUExJVEUgaXMgbm90IHNldApAQCAtNDA3LDYgKzQxNCw3IEBACiAjIENPTkZJR19JUF9ORl9UQVJHRVRfTkVUTUFQIGlzIG5vdCBzZXQKICMgQ09ORklHX05GX05BVF9TTk1QX0JBU0lDIGlzIG5vdCBzZXQKIENPTkZJR19ORl9OQVRfUFJPVE9fR1JFPW0KK0NPTkZJR19ORl9OQVRfUFJPVE9fU0NUUD1tCiBDT05GSUdfTkZfTkFUX0ZUUD1tCiBDT05GSUdfTkZfTkFUX0lSQz1tCiBDT05GSUdfTkZfTkFUX1RGVFA9bQpAQCAtNDU5LDggKzQ2Nyw2IEBACiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX1dFUD1tCiBDT05GSUdfSUVFRTgwMjExX0NSWVBUX0NDTVA9bQogQ09ORklHX0lFRUU4MDIxMV9DUllQVF9US0lQPW0KLUNPTkZJR19JRUVFODAyMTFfU09GVE1BQz1tCi1DT05GSUdfSUVFRTgwMjExX1NPRlRNQUNfREVCVUc9eQogIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CiAKQEAgLTQ4Niw2ICs0OTIsNyBAQAogIyBDT05GSUdfTVREX1JFREJPT1RfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX0NNRExJTkVfUEFSVFMgaXMgbm90IHNldAogIyBDT05GSUdfTVREX09GX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC01NjUsNiArNTcyLDcgQEAKICMKICMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogQ09ORklHX09GX0RFVklDRT15CitDT05GSUdfT0ZfSTJDPXkKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9GRCBpcyBub3Qgc2V0CkBAIC02NzAsNyArNjc4LDExIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CkBAIC02ODAsMTMgKzY5MiwxMSBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9GU0wgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC03MjYsNiArNzM2LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTc4NSw3ICs3OTYsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC04MDUsNiArODE1LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtODEyLDYgKzgyMyw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtODg2LDYgKzg5OCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTkxMyw3ICs5MjYsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKIENPTkZJR19IV19SQU5ET009eQogIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTkyNCwxMyArOTM2LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTk1Nyw2ICs5NjIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtOTY2LDE5ICs5NzIsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTEwNDgsMTIgKzEwNDgsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtMTExNSwxMiArMTEyNSwxNCBAQAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRj15CiBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRl9CRT15CkBAIC0xMTM4LDYgKzExNTAsNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX1BSSU5URVI9bQorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTE1OSw2ICsxMTcyLDcgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9LQVJNQSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1RPUkFHRV9DWVBSRVNTX0FUQUNCIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9MSUJVU1VBTCBpcyBub3Qgc2V0CiAKICMKQEAgLTEyMDIsOSArMTIxNiwxMSBAQAogIyBDT05GSUdfVVNCX1NFUklBTF9NQ1RfVTIzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX01PUzc3MjAgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9NT1M3ODQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfTU9UT1JPTEEgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9OQVZNQU4gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9QTDIzMDMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9PVEk2ODU4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TRVJJQUxfU1BDUDhYNSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0VSSUFMX0hQNFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NFUklBTF9TQUZFIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TRVJJQUxfU0lFUlJBV0lSRUxFU1MgaXMgbm90IHNldApAQCAtMTIzOCwxMCArMTI1NCwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyOTMsMTEgKzEzMTEsOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEzMTgsMTAgKzEzMzMsOSBAQAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiBDT05GSUdfWEZTX0ZTPW0KICMgQ09ORklHX1hGU19RVU9UQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19YRlNfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfUlQgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19YRlNfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtMTM4OCwxMiArMTQwMiwxMCBAQAogQ09ORklHX05GU19WMz15CiBDT05GSUdfTkZTX1YzX0FDTD15CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD1tCiBDT05GSUdfTkZTRF9WMz15CiAjIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKIENPTkZJR19MT0NLRF9WND15CkBAIC0xNDY3LDkgKzE0NzksMTAgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQpAQCAtMTQ4MSw2ICsxNDk0LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTQ4OCw2ICsxNTAyLDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ5OCw2ICsxNTEzLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTUxMCw2ICsxNTI2LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKICMgQ09ORklHX0RFQlVHX0lORk8gaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE1MjEsNiArMTUzOCw3IEBACiAjIENPTkZJR19ERUJVR19TVEFDS19VU0FHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JESV9TV0lUQ0ggaXMgbm90IHNldAogIyBDT05GSUdfQk9PVFhfVEVYVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldApAQCAtMTUzMiw1MiArMTU1MCw4MiBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworQ09ORklHX0NSWVBUT19DUkMzMkM9bQogQ09ORklHX0NSWVBUT19NRDQ9bQogQ09ORklHX0NSWVBUT19NRDU9eQorQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj1tCi1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9bQotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0KLUNPTkZJR19DUllQVE9fVFdPRklTSD1tCi1DT05GSUdfQ1JZUFRPX1RXT0ZJU0hfQ09NTU9OPW0KLUNPTkZJR19DUllQVE9fU0VSUEVOVD1tCisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKIENPTkZJR19DUllQVE9fQUVTPW0KKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BUkM0PW0KK0NPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FSQzQ9bQorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TRVJQRU5UPW0KKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19UV09GSVNIPW0KK0NPTkZJR19DUllQVE9fVFdPRklTSF9DT01NT049bQorCisjCisjIENvbXByZXNzaW9uCisjCiBDT05GSUdfQ1JZUFRPX0RFRkxBVEU9bQotQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQz1tCi1DT05GSUdfQ1JZUFRPX0NSQzMyQz1tCi0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM3NDQ4X2hwYzJfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjNzQ0OF9ocGMyX2RlZmNvbmZpZwppbmRleCBhM2Q1MmUzLi4wNjZjNTgzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM3NDQ4X2hwYzJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzc0NDhfaHBjMl9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MTEgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjExIDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDYgKzExNCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0yMDksMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM1LDYgKzI0MSw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDQsMTEgKzI1MSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTYsOCArMzAzLDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ1NCw3ICs0NTksMTAgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiAjIENPTkZJR19TQVRBX0FIQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiBDT05GSUdfU0FUQV9NVj15CkBAIC00NjQsNyArNDcyLDYgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKQEAgLTUwOSw2ICs1MTYsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNTk2LDcgKzYwNCw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTYxNiw2ICs2MjMsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02MjMsNiArNjMxLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNjcwLDYgKzY3OSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzA1LDEyICs3MTUsNyBAQAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTc0MywxMiArNzQ4LDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC03NzksNiArNzk0LDggQEAKIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDST15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0VIQ0k9eQogIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtNzg3LDE0ICs4MDQsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtODE0LDcgKzgyOCw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTg3MSw3ICs4ODQsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtOTE0LDYgKzkyNiw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC05MjQsNiArOTM3LDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtOTMxLDYgKzk0NSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtOTQwLDYgKzk1NSw3IEBACiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVFhfVEVYVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC05NTAsNDggKzk2Niw3OCBAQAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4MjcyX2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4MjcyX2Fkc19kZWZjb25maWcKaW5kZXggMDI2NGM1Ny4uMzBkNzgzNCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODI3Ml9hZHNfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzgyNzJfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODoxMyAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTIgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0zMCw2ICszMCw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtNzAsMTggKzcyLDE2IEBACiBDT05GSUdfSUtDT05GSUdfUFJPQz15CiBDT05GSUdfTE9HX0JVRl9TSElGVD0xNAogIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0Ci1DT05GSUdfR1JPVVBfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0Ci1DT05GSUdfVVNFUl9TQ0hFRD15Ci0jIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAogIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0CitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTEwOCw2ICsxMDgsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTk2LDExICsxOTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIyNCw2ICsyMjcsNyBAQAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTIzMywxMSArMjM3LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDQwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Miw2ICsyOTYsNyBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9eQogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CkBAIC01MzYsNyArNTQxLDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNTU0LDYgKzU1OCw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTU2MSw2ICs1NjYsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiBDT05GSUdfUFBQPXkKQEAgLTYzNCw2ICs2NDAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNjY4LDEyICs2NzUsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtNjkwLDEyICs2OTIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTcyMiwxMyArNzM0LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC03OTgsNyArODA3LDYgQEAKIENPTkZJR19ORlNfRlM9eQogQ09ORklHX05GU19WMz15CiBDT05GSUdfTkZTX1YzX0FDTD15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTg3Nyw2ICs4ODUsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTg4OSw2ICs4OTgsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC04OTYsNiArOTA2LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtOTA2LDYgKzkxNyw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTkxOCw2ICs5MzAsNyBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTkyOSw2ICs5NDIsNyBAQAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKICMgQ09ORklHX0tHREJfQ09OU09MRSBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogQ09ORklHX0JESV9TV0lUQ0g9eQogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtOTM4LDQ1ICs5NTIsNzUgQEAKICMgQ09ORklHX0tFWVMgaXMgbm90IHNldAogIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0JMS0NJUEhFUj15Ci0jIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKLSMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj15CitDT05GSUdfQ1JZUFRPX1BDQkM9eQorCisjCisjIEhhc2ggbW9kZXMKKyMKKyMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01ENT15CisjIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPXkKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz15Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fSFcgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzgzeHhfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKaW5kZXggOWUwZGQ4Mi4uNDI5M2M4YiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODN4eF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM5Ci0jIFR1ZSBBcHIgMTUgMTg6MDc6MzYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjE0IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTg2LDYgKzg4LDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTExLDEyICsxMTQsMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTIwMSw3ICsyMDYsNiBAQAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CiBDT05GSUdfQklORk1UX0VMRj15CiAjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0Ci1DT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX01BVEhfRU1VTEFUSU9OPXkKICMgQ09ORklHX0lPTU1VX0hFTFBFUiBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQpAQCAtMjE3LDExICsyMjEsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTI0MCw2ICsyNDYsNyBAQAogIyBDT05GSUdfUENJX1NZU0NBTEwgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjQ5LDExICsyNTYsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAxLDggKzMwOCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNjEsNiArMzY2LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKIENPTkZJR19NVERfT0ZfUEFSVFM9eQorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQzOSw2ICs0NDUsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwMSw4ICs1MDgsMTAgQEAKICMgQ09ORklHX1NDU0lfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfRlNMPXkKK0NPTkZJR19BVEFfU0ZGPXkKKyMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QTEFURk9STSBpcyBub3Qgc2V0CiAjIENPTkZJR19NRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NQUNJTlRPU0hfRFJJVkVSUyBpcyBub3Qgc2V0CkBAIC01NTQsNiArNTYzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC02MDcsNiArNjE3LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAKICMKQEAgLTY0MiwxMyArNjUzLDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKIENPTkZJR19JMkNfTVBDPXkKQEAgLTY1OCw2ICs2NjIsNyBAQAogIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTY2NywxOSArNjcyLDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKIENPTkZJR19IV01PTj15CkBAIC03NTcsMTIgKzc1NiwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKICMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAogCkBAIC04MTAsMTYgKzgxOSwyMCBAQAogQ09ORklHX1VTQl9ERVZJQ0VfQ0xBU1M9eQogIyBDT05GSUdfVVNCX0RZTkFNSUNfTUlOT1JTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PVEcgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19XSElURUxJU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX09UR19CTEFDS0xJU1RfSFVCIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUPXkKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU0w4MTFfSENEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SOEE2NjU5N19IQ0QgaXMgbm90IHNldAogCkBAIC04MjgsNiArODQxLDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtODczLDE3ICs4ODcsMTUgQEAKICMgQ09ORklHX1VTQl9MRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfVFJBTkNFVklCUkFUT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0lPV0FSUklPUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNJR0hURlcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC05MDMsNyArOTE1LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtOTYyLDcgKzk3Myw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU19WND15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTEwMDksNiArMTAxOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMDI3LDYgKzEwMzgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEwMzQsNiArMTA0Niw3IEBACiAjIENPTkZJR19ERUJVR19LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCiAjCkBAIC0xMDQzLDUxICsxMDU2LDgxIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0VDQj1tCisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiAjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19FQ0I9bQotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NXh4X2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCmluZGV4IDIwNzU3MjIuLjNlZmFiNzEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg1eHhfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjA4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwOTowMzo0NiAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC05MCw2ICs5Miw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExNywxMiArMTIwLDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTE2Miw2ICsxNjcsNyBAQAogQ09ORklHX01QQzg1eHhfQ0RTPXkKIENPTkZJR19NUEM4NXh4X01EUz15CiBDT05GSUdfTVBDODV4eF9EUz15CitDT05GSUdfS1NJODU2MD15CiAjIENPTkZJR19TVFhfR1AzIGlzIG5vdCBzZXQKIENPTkZJR19UUU04NTQwPXkKIENPTkZJR19UUU04NTQxPXkKQEAgLTIyMSwxMSArMjI3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNTAsNiArMjU4LDcgQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTksMTEgKzI2OCwxMiBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MTAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzM0LDggKzM0NCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTM5Nyw2ICs0MDksNyBAQAogIyBDT05GSUdfQ09OTkVDVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX01URCBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwMyw3ICs1MTYsMTEgQEAKICMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfRlNMPXkKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfTVYgaXMgbm90IHNldApAQCAtNTEzLDEzICs1MzAsMTEgQEAKICMgQ09ORklHX1NBVEFfUFJPTUlTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NYNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NBVEFfRlNMIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX0FMST15CiAjIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FSVE9QIGlzIG5vdCBzZXQKQEAgLTU1OSw2ICs1NzQsNyBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogIyBDT05GSUdfTUQgaXMgbm90IHNldAogIyBDT05GSUdfRlVTSU9OIGlzIG5vdCBzZXQKIApAQCAtNjI1LDcgKzY0MSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTY0Niw2ICs2NjEsNyBAQAogIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19TRkMgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC02NTMsNiArNjY5LDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03MTcsNiArNzM0LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKICMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzUwLDcgKzc2OCw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogIyBDT05GSUdfSFdfUkFORE9NIGlzIG5vdCBzZXQKIENPTkZJR19OVlJBTT15Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtNzYxLDEzICs3NzgsNiBAQAogIyBDT05GSUdfSTJDX0NIQVJERVYgaXMgbm90IHNldAogCiAjCi0jIEkyQyBBbGdvcml0aG1zCi0jCi0jIENPTkZJR19JMkNfQUxHT0JJVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkNfQUxHT1BDQSBpcyBub3Qgc2V0Ci0KLSMKICMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCiAjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CkBAIC03OTQsNiArODA0LDcgQEAKICMgQ09ORklHX0kyQ19WSUEgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZJQVBSTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVk9PRE9PMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUENBX1BMQVRGT1JNIGlzIG5vdCBzZXQKIAogIwogIyBNaXNjZWxsYW5lb3VzIEkyQyBDaGlwIHN1cHBvcnQKQEAgLTgwMywxOSArODE0LDEzIEBACiAjIENPTkZJR19TRU5TT1JTX1BDRjg1NzQgaXMgbm90IHNldAogIyBDT05GSUdfUENGODU3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1BDRjg1OTEgaXMgbm90IHNldAotIyBDT05GSUdfVFBTNjUwMTAgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19NQVg2ODc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfVFNMMjU1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQUxHTyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQlVTIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DSElQIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTgzMiwxMyArODM3LDMzIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKIENPTkZJR19EVkJfQ09SRT1tCi0jIENPTkZJR19EVkJfQ09SRV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX1ZJREVPX01FRElBPW0KKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKKyMgQ09ORklHX01FRElBX0FUVEFDSCBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVI9bQorIyBDT05GSUdfTUVESUFfVFVORVJfQ1VTVE9NSVpFIGlzIG5vdCBzZXQKK0NPTkZJR19NRURJQV9UVU5FUl9TSU1QTEU9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTgyOTA9bQorQ09ORklHX01FRElBX1RVTkVSX1REQTk4ODc9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3NjE9bQorQ09ORklHX01FRElBX1RVTkVSX1RFQTU3Njc9bQorQ09ORklHX01FRElBX1RVTkVSX01UMjBYWD1tCitDT05GSUdfTUVESUFfVFVORVJfWEMyMDI4PW0KK0NPTkZJR19NRURJQV9UVU5FUl9YQzUwMDA9bQogQ09ORklHX0RWQl9DQVBUVVJFX0RSSVZFUlM9eQogCiAjCkBAIC04ODEsMTQgKzkwNiwxNyBAQAogIwogIyBEVkItUyAoc2F0ZWxsaXRlKSBmcm9udGVuZHMKICMKLSMgQ09ORklHX0RWQl9TVFYwMjk5IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DWDI0MTIzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UREE4MDgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9NVDMxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVkVTMVg5MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQyMCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVERBMTAwODYgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVTkVSX0lURDEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogCiAjCiAjIERWQi1UICh0ZXJyZXN0cmlhbCkgZnJvbnRlbmRzCkBAIC05MDYsNiArOTM0LDcgQEAKICMgQ09ORklHX0RWQl9ESUIzMDAwTUMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0RJQjcwMDBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwUCBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfVERBMTAwNDggaXMgbm90IHNldAogCiAjCiAjIERWQi1DIChjYWJsZSkgZnJvbnRlbmRzCkBAIC05MjQsMjcgKzk1MywyMSBAQAogIyBDT05GSUdfRFZCX0JDTTM1MTAgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0xHRFQzMzBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9TNUgxNDA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9BVTg1MjIgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1M1SDE0MTEgaXMgbm90IHNldAogCiAjCi0jIFR1bmVycy9QTEwgc3VwcG9ydAorIyBEaWdpdGFsIHRlcnJlc3RyaWFsIG9ubHkgdHVuZXJzL1BMTAogIwogIyBDT05GSUdfRFZCX1BMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI2WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODI3WCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBMTgyNzEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1FUMTAxMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMDYwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIyNjYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjEzMSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfVFVORVJfRElCMDA3MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfWEM1MDAwIGlzIG5vdCBzZXQKIAogIwotIyBNaXNjZWxsYW5lb3VzIGRldmljZXMKKyMgU0VDIGNvbnRyb2wgZGV2aWNlcyBmb3IgRFZCLVMKICMKICMgQ09ORklHX0RWQl9MTkJQMjEgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX0lTTDY0MDUgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0lTTDY0MjEgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVQTYxMDAgaXMgbm90IHNldAogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtMTAxMSw2ICsxMDM0LDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA4NSwxMSArMTEwOSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTI0LDE2ICsxMTQ4LDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15Ci0jIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQ9eQogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0VIQ0lfRlNMIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfRUhDSV9GU0w9eQogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExNTEsNiArMTE3OSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNzAsNyArMTE5OSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTIwOCwxMiArMTIzOSwyMSBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19FREFDPXkKKworIworIyBSZXBvcnRpbmcgc3Vic3lzdGVtcworIworIyBDT05GSUdfRURBQ19ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfRURBQ19NTV9FREFDPXkKK0NPTkZJR19FREFDX01QQzg1WFg9eQogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtMTI2MywxMSArMTMwMywxOSBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKLSMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAorQ09ORklHX0RNQURFVklDRVM9eQogCiAjCi0jIFVzZXJzcGFjZSBJL08KKyMgRE1BIERldmljZXMKICMKK0NPTkZJR19GU0xfRE1BPXkKK0NPTkZJR19ETUFfRU5HSU5FPXkKKworIworIyBETUEgQ2xpZW50cworIworIyBDT05GSUdfTkVUX0RNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMjg3LDcgKzEzMzUsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMzU3LDEwICsxNDA0LDkgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiBDT05GSUdfTkZTX1Y0PXkKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTE0NDQsOSArMTQ5MCwxMCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQ19JVFVfVD1tCiBDT05GSUdfQ1JDMzI9eQogIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiBDT05GSUdfTElCQ1JDMzJDPW0KQEAgLTE0NTUsNiArMTUwMiw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTE0NjIsNiArMTUxMCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTQ3Miw2ICsxNTIxLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldApAQCAtMTQ4NSw2ICsxNTM1LDcgQEAKICMgQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0UgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTE0OTcsNiArMTU0OCw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTE1MDcsNTMgKzE1NTksODMgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAorCisjCisjIEF1dGhlbnRpY2F0ZWQgRW5jcnlwdGlvbiB3aXRoIEFzc29jaWF0ZWQgRGF0YQorIworIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQmxvY2sgbW9kZXMKKyMKK0NPTkZJR19DUllQVE9fQ0JDPXkKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19QQ0JDPW0KKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fU0hBMT1tCiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotQ09ORklHX0NSWVBUT19QQ0JDPW0KLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fREVTPXkKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRUVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAorCisjCisjIENvbXByZXNzaW9uCisjCiAjIENPTkZJR19DUllQVE9fREVGTEFURSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTUlDSEFFTF9NSUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFU1QgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX0xJQl9SSEVBUD15CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjEwX2hwY2RfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODYxMF9ocGNkX2RlZmNvbmZpZwppbmRleCA3ZTViOWNlLi41NjEyZDQwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjEwX2hwY2RfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg2MTBfaHBjZF9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MzMgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUwOjI0IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzEsNiArMzEsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTYwLDkgKzYyLDEwIEBACiBDT05GSUdfQlJPS0VOX09OX1NNUD15CiBDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCi0jIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CitDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQogIyBDT05GSUdfU1dBUCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWVNWSVBDIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldApAQCAtODYsNiArODksNyBAQAogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExMCwxNCArMTE0LDIyIEBACiAjIENPTkZJR19QUk9GSUxJTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUFSS0VSUyBpcyBub3Qgc2V0CiBDT05GSUdfSEFWRV9PUFJPRklMRT15CisjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAotIyBDT05GSUdfTU9EVUxFUyBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CitDT05GSUdfS01PRD15CiBDT05GSUdfQkxPQ0s9eQogIyBDT05GSUdfTEJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSU9fVFJBQ0UgaXMgbm90IHNldApAQCAtMTUxLDYgKzE2Myw3IEBACiAjIENPTkZJR19QUENfQ0VMTF9OQVRJVkUgaXMgbm90IHNldAogIyBDT05GSUdfUFEyQURTIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg2NDFfSFBDTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQkM4NjQxRCBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODYxMF9IUENEPXkKIENPTkZJR19NUEM4NjEwPXkKICMgQ09ORklHX0lQSUMgaXMgbm90IHNldApAQCAtMTk5LDExICsyMTIsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTIKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIyMywxMiArMjM4LDE0IEBACiBDT05GSUdfUENJX1NZU0NBTEw9eQogQ09ORklHX1BDSUVQT1JUQlVTPXkKIENPTkZJR19QQ0lFQUVSPXkKKyMgQ09ORklHX1BDSUVBU1BNIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiAjIENPTkZJR19QQ0lfTVNJIGlzIG5vdCBzZXQKIENPTkZJR19QQ0lfTEVHQUNZPXkKIENPTkZJR19QQ0lfREVCVUc9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjM4LDExICsyNTUsMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMzAzLDggKzMyMCwxMCBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ0Niw2ICs0NjUsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUwNCw2ICs1MjQsNyBAQAogIyBDT05GSUdfU0NTSV9DT05TVEFOVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9XQUlUX1NDQU49bQogCiAjCiAjIFNDU0kgVHJhbnNwb3J0cwpAQCAtNTUzLDcgKzU3NCwxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTU2MywxMyArNTg4LDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfUEFUQV9BTEk9eQogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC02MDksNiArNjMyLDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTYyOCwyNSArNjUyLDkgQEAKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0Ci1DT05GSUdfUEhZTElCPXkKLQotIwotIyBNSUkgUEhZIGRldmljZSBkcml2ZXJzCi0jCi0jIENPTkZJR19NQVJWRUxMX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19EQVZJQ09NX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19RU0VNSV9QSFkgaXMgbm90IHNldAotIyBDT05GSUdfTFhUX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DSUNBREFfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJVEVTU0VfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NNU0NfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JST0FEQ09NX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JQ1BMVVNfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JFQUxURUtfUEhZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZJWEVEX1BIWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRElPX0JJVEJBTkcgaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfRVRIRVJORVQ9eQotQ09ORklHX01JST15CisjIENPTkZJR19NSUkgaXMgbm90IHNldAogIyBDT05GSUdfSEFQUFlNRUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CiAjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKQEAgLTY2Myw2NCArNjcxLDEwIEBACiAjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAogIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAotQ09ORklHX05FVF9QQ0k9eQotIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9QQ0kgaXMgbm90IHNldAogIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZPUkNFREVUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZFQUxOWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19OQVRTRU1JIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FMktfUENJIGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlDUCBpcyBub3Qgc2V0Ci1DT05GSUdfODEzOVRPTz15Ci1DT05GSUdfODEzOVRPT19QSU89eQotIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAotIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKLSMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1I2MDQwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RMQU4gaXMgbm90IHNldAotIyBDT05GSUdfVklBX1JISU5FIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDOTIwMzEgaXMgbm90IHNldAotQ09ORklHX05FVERFVl8xMDAwPXkKLSMgQ09ORklHX0FDRU5JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETDJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0UxMDAwRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FMTAwMEVfRU5BQkxFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JUDEwMDAgaXMgbm90IHNldAotIyBDT05GSUdfSUdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX05TODM4MjAgaXMgbm90IHNldAotIyBDT05GSUdfSEFNQUNISSBpcyBub3Qgc2V0Ci0jIENPTkZJR19ZRUxMT1dGSU4gaXMgbm90IHNldAotIyBDT05GSUdfUjgxNjkgaXMgbm90IHNldAotIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLR0UgaXMgbm90IHNldAotIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19USUdPTjMgaXMgbm90IHNldAotIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19HSUFORkFSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAotIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0Ci1DT05GSUdfTkVUREVWXzEwMDAwPXkKLSMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAotIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKLSMgQ09ORklHX1MySU8gaXMgbm90IHNldAotIyBDT05GSUdfTVlSSTEwR0UgaXMgbm90IHNldAotIyBDT05GSUdfTkVUWEVOX05JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OSVUgaXMgbm90IHNldAotIyBDT05GSUdfTUxYNF9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RFSFVUSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTlgyWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRERVZfMTAwMDAgaXMgbm90IHNldAogIyBDT05GSUdfVFIgaXMgbm90IHNldAogCiAjCkBAIC03MjgsNiArNjgyLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZEREkgaXMgbm90IHNldAogIyBDT05GSUdfSElQUEkgaXMgbm90IHNldApAQCAtNzgzLDYgKzczOCw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTgyNCwxMyArNzgwLDYgQEAKICMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODUyLDkgKzgwMSwxMSBAQAogIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC04NjQsMTkgKzgxNSwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC04OTMsMTIgKzgzOCwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiBDT05GSUdfREFCPXkKIAogIwpAQCAtOTA4LDcgKzg2Myw1NiBAQAogIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTD15Ci0jIENPTkZJR19GQiBpcyBub3Qgc2V0CitDT05GSUdfRkI9eQorIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKK0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NWR0FMSUIgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTUFDTU9ERVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQkFDS0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01PREVfSEVMUEVSUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9USUxFQkxJVFRJTkcgaXMgbm90IHNldAorCisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9PRiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DVDY1NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZHQTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BVFJPWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SQURFT04gaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVRZMTI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TQVZBR0UgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05FT01BR0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0tZUk8gaXMgbm90IHNldAorIyBDT05GSUdfRkJfM0RGWCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WT09ET08xIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZUODYyMyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FSSyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9QTTMgaXMgbm90IHNldAorQ09ORklHX0ZCX0ZTTF9ESVU9eQorIyBDT05GSUdfRkJfSUJNX0dYVDQ1MDAgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVklSVFVBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCkBAIC05MjIsNiArOTI2LDggQEAKIENPTkZJR19WR0FfQ09OU09MRT15CiAjIENPTkZJR19WR0FDT05fU09GVF9TQ1JPTExCQUNLIGlzIG5vdCBzZXQKIENPTkZJR19EVU1NWV9DT05TT0xFPXkKKyMgQ09ORklHX0ZSQU1FQlVGRkVSX0NPTlNPTEUgaXMgbm90IHNldAorIyBDT05GSUdfTE9HTyBpcyBub3Qgc2V0CiAKICMKICMgU291bmQKQEAgLTkzOCw3ICs5NDQsNyBAQAogQ09ORklHX1NORF9PU1NFTVVMPXkKIENPTkZJR19TTkRfTUlYRVJfT1NTPXkKIENPTkZJR19TTkRfUENNX09TUz15Ci0jIENPTkZJR19TTkRfUENNX09TU19QTFVHSU5TIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKICMgQ09ORklHX1NORF9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJIGlzIG5vdCBzZXQKIENPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQpAQCAtOTY1LDYgKzk3MSw3IEBACiAjIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BVTg4MjAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVcyIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKQEAgLTEwMzEsMTQgKzEwMzgsMTQgQEAKIENPTkZJR19TTkRfU09DPXkKIAogIwotIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICi0jCi0KLSMKICMgQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzCiAjCiBDT05GSUdfU05EX1NPQ19NUEM4NjEwPXkKIENPTkZJR19TTkRfU09DX01QQzg2MTBfSFBDRD15CisKKyMKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAorIwogQ09ORklHX1NORF9TT0NfQ1M0MjcwPXkKIENPTkZJR19TTkRfU09DX0NTNDI3MF9WRDMzX0VSUkFUQT15CiAKQEAgLTEwNTUsNiArMTA2Miw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTEwNjMsMTQgKzEwNzIsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA5MCw3ICsxMDk2LDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTk9USUZZIGlzIG5vdCBzZXQKQEAgLTExMzQsNiArMTEzOSw3IEBACiAjIENPTkZJR19CRUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSkZGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldApAQCAtMTE0NywxMCArMTE1Myw5IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiBDT05GSUdfTkZTRD15CiAjIENPTkZJR19ORlNEX1YzIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15CisjIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTEyMzQsNiArMTIzOSw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMjQ0LDYgKzEyNTAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMjUxLDYgKzEyNTgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTEyNjEsNiArMTI2OSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKQEAgLTEyNzQsOSArMTI4MywxMSBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JDVV9UT1JUVVJFX1RFU1QgaXMgbm90IHNldAogIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CkBAIC0xMjg0LDYgKzEyOTUsNyBAQAogIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUEFHRUFMTE9DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKQEAgLTEyOTQsNDggKzEzMDYsODAgQEAKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZX0ZJTEVfQ0FQQUJJTElUSUVTIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKICMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RXT0ZJU0ggaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCiAjIENPTkZJR19DUllQVE9fQUVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY0MV9ocGNuX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg2NDFfaHBjbl9kZWZjb25maWcKaW5kZXggZDAxZGNkYi4uNGE4MTcxNSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY0MV9ocGNuX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjQxX2hwY25fZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjExIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoxNSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC05MCw2ICs5Miw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTPXkKQEAgLTExNywxMiArMTIwLDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQ9eQogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTE2Miw2ICsxNjcsNyBAQAogIyBDT05GSUdfUFBDX0NFTExfTkFUSVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX1BRMkFEUyBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODY0MV9IUENOPXkKKyMgQ09ORklHX1NCQzg2NDFEIGlzIG5vdCBzZXQKICMgQ09ORklHX01QQzg2MTBfSFBDRCBpcyBub3Qgc2V0CiBDT05GSUdfTVBDODY0MT15CiAjIENPTkZJR19JUElDIGlzIG5vdCBzZXQKQEAgLTIxMSwxMSArMjE3LDEzIEBACiBDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CiAjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogIyBDT05GSUdfUkVTT1VSQ0VTXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQogQ09ORklHX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTExCiBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFPXkKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yNDAsNiArMjQ4LDggQEAKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorQ09ORklHX0hBU19SQVBJRElPPXkKKyMgQ09ORklHX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNDksMTEgKzI1OSwxMSBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA4MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0zMjQsOCArMzM0LDEwIEBACiBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQ9eQogIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRFT1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzg3LDYgKzM5OSw3IEBACiAjIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNDkzLDcgKzUwNiwxMSBAQAogIyBDT05GSUdfU0NTSV9TUlAgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1NBVEFfUE1QPXkKIENPTkZJR19TQVRBX0FIQ0k9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CiAjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKQEAgLTUwMywxMyArNTIwLDExIEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQVRBX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfUEFUQV9BTEk9eQogIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CkBAIC01NDksNiArNTY0LDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTYxNCw3ICs2MzAsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC02MzQsNiArNjQ5LDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNjQxLDYgKzY1Nyw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNzA1LDYgKzcyMiw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTczNiw3ICs3NTQsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiBDT05GSUdfTlZSQU09eQotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTc0NywxMyArNzY0LDYgQEAKICMgQ09ORklHX0kyQ19DSEFSREVWIGlzIG5vdCBzZXQKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtNzgwLDYgKzc5MCw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC03ODksMTkgKzgwMCwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CkBAIC04MTgsMTMgKzgyMywzMyBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiBDT05GSUdfRFZCX0NPUkU9bQotIyBDT05GSUdfRFZCX0NPUkVfQVRUQUNIIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19NRURJQT1tCisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCisjIENPTkZJR19NRURJQV9BVFRBQ0ggaXMgbm90IHNldAorQ09ORklHX01FRElBX1RVTkVSPW0KKyMgQ09ORklHX01FRElBX1RVTkVSX0NVU1RPTUlaRSBpcyBub3Qgc2V0CitDT05GSUdfTUVESUFfVFVORVJfU0lNUExFPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE4MjkwPW0KK0NPTkZJR19NRURJQV9UVU5FUl9UREE5ODg3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzYxPW0KK0NPTkZJR19NRURJQV9UVU5FUl9URUE1NzY3PW0KK0NPTkZJR19NRURJQV9UVU5FUl9NVDIwWFg9bQorQ09ORklHX01FRElBX1RVTkVSX1hDMjAyOD1tCitDT05GSUdfTUVESUFfVFVORVJfWEM1MDAwPW0KIENPTkZJR19EVkJfQ0FQVFVSRV9EUklWRVJTPXkKIAogIwpAQCAtODY3LDE0ICs4OTIsMTcgQEAKICMKICMgRFZCLVMgKHNhdGVsbGl0ZSkgZnJvbnRlbmRzCiAjCi0jIENPTkZJR19EVkJfU1RWMDI5OSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ1gyNDExMCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ1gyNDEyMyBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVERBODA4MyBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfTVQzMTIgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1ZFUzFYOTMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1M1SDE0MjAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1NUVjAyOTkgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTgwODMgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1REQTEwMDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9WRVMxWDkzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UVU5FUl9JVEQxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UREE4MjZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9UVUE2MTAwIGlzIG5vdCBzZXQKIAogIwogIyBEVkItVCAodGVycmVzdHJpYWwpIGZyb250ZW5kcwpAQCAtODkyLDYgKzkyMCw3IEBACiAjIENPTkZJR19EVkJfRElCMzAwME1DIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9ESUI3MDAwTSBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfRElCNzAwMFAgaXMgbm90IHNldAorIyBDT05GSUdfRFZCX1REQTEwMDQ4IGlzIG5vdCBzZXQKIAogIwogIyBEVkItQyAoY2FibGUpIGZyb250ZW5kcwpAQCAtOTEwLDI3ICs5MzksMjEgQEAKICMgQ09ORklHX0RWQl9CQ00zNTEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9MR0RUMzMwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfUzVIMTQwOSBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQVU4NTIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9TNUgxNDExIGlzIG5vdCBzZXQKIAogIwotIyBUdW5lcnMvUExMIHN1cHBvcnQKKyMgRGlnaXRhbCB0ZXJyZXN0cmlhbCBvbmx5IHR1bmVycy9QTEwKICMKICMgQ09ORklHX0RWQl9QTEwgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgyNlggaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTgyN1ggaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1REQTE4MjcxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9RVDEwMTAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX01UMjA2MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19EVkJfVFVORVJfTVQyMjY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVU5FUl9NVDIxMzEgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX1RVTkVSX0RJQjAwNzAgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX1RVTkVSX1hDNTAwMCBpcyBub3Qgc2V0CiAKICMKLSMgTWlzY2VsbGFuZW91cyBkZXZpY2VzCisjIFNFQyBjb250cm9sIGRldmljZXMgZm9yIERWQi1TCiAjCiAjIENPTkZJR19EVkJfTE5CUDIxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9JU0w2NDA1IGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9JU0w2NDIxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RWQl9UVUE2MTAwIGlzIG5vdCBzZXQKIENPTkZJR19EQUI9eQogIyBDT05GSUdfVVNCX0RBQlVTQiBpcyBub3Qgc2V0CiAKQEAgLTk5Nyw2ICsxMDIwLDcgQEAKICMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAogIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldApAQCAtMTA3MSwxMSArMTA5NSwxMSBAQAogIyBDT05GSUdfU05EX1NPQyBpcyBub3Qgc2V0CiAKICMKLSMgU29DIEF1ZGlvIHN1cHBvcnQgZm9yIFN1cGVySAorIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKICMKIAogIwotIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMgU29DIEF1ZGlvIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMgT01BUAogIwogCiAjCkBAIC0xMTEwLDE2ICsxMTM0LDIwIEBACiBDT05GSUdfVVNCX0RFVklDRV9DTEFTUz15CiAjIENPTkZJR19VU0JfRFlOQU1JQ19NSU5PUlMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIFVTQiBIb3N0IENvbnRyb2xsZXIgRHJpdmVycwogIworIyBDT05GSUdfVVNCX0M2N1gwMF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRD15CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9GU0wgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GPXkKIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GX0JFPXkKQEAgLTExMzcsNiArMTE2NSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExNTYsNyArMTE4NSw5IEBACiAjIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE5NCwxMCArMTIyNSwxMiBAQAogIyBDT05GSUdfVVNCX1RSQU5DRVZJQlJBVE9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9JT1dBUlJJT1IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTSUdIVEZXIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKIENPTkZJR19SVENfTElCPXkKQEAgLTEyNDksMTEgKzEyODIsOCBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfUFBDIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNQURFVklDRVMgaXMgbm90IHNldAotCi0jCi0jIFVzZXJzcGFjZSBJL08KLSMKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKQEAgLTEyNzMsNyArMTMwMyw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTEzNDMsMTAgKzEzNzIsOSBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKIENPTkZJR19ORlNEPXkKICMgQ09ORklHX05GU0RfVjMgaXMgbm90IHNldAotQ09ORklHX05GU0RfVENQPXkKKyMgQ09ORklHX05GU0RfVjQgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CiBDT05GSUdfTE9DS0RfVjQ9eQpAQCAtMTQzMCw5ICsxNDU4LDEwIEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CitDT05GSUdfQ1JDX0lUVV9UPW0KIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKIENPTkZJR19MSUJDUkMzMkM9bQpAQCAtMTQ0MSw2ICsxNDcwLDcgQEAKIENPTkZJR19IQVNfSU9NRU09eQogQ09ORklHX0hBU19JT1BPUlQ9eQogQ09ORklHX0hBU19ETUE9eQorQ09ORklHX0hBVkVfTE1CPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwpAQCAtMTQ0OCw2ICsxNDc4LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xNDU4LDYgKzE0ODksNyBAQAogQ09ORklHX1NDSEVEX0RFQlVHPXkKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xNDcxLDYgKzE1MDMsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfSU5GTz15CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtMTQ4Miw2ICsxNTE1LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC0xNDkyLDUyICsxNTI2LDgyIEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKIENPTkZJR19DUllQVE9fQUxHQVBJPXkKIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hBU0g9eQogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fUENCQz1tCisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCiBDT05GSUdfQ1JZUFRPX0hNQUM9eQogIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX1NIQTE9bQogIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODY2X2Fkc19kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZwppbmRleCAyZDgzMWRiLi40NmZmZmJjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9tcGM4NjZfYWRzX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNS1yYzYKLSMgTW9uIE1hciAyNCAwODo0ODozNSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM1CisjIE1vbiBKdW4gIDkgMDg6NTI6MTYgMjAwOAogIwogIyBDT05GSUdfUFBDNjQgaXMgbm90IHNldAogCkBAIC0yOCw2ICsyOCw4IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiAjIENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSBpcyBub3Qgc2V0CiBDT05GSUdfSVJRX1BFUl9DUFU9eQorQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15CitDT05GSUdfTE9DS0RFUF9TVVBQT1JUPXkKIENPTkZJR19SV1NFTV9YQ0hHQUREX0FMR09SSVRITT15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKIENPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpAQCAtMTA2LDYgKzEwOCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0yMTAsMTEgKzIxMywxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfUFJPQ19ERVZJQ0VUUkVFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NNRExJTkVfQk9PTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QTSBpcyBub3Qgc2V0CkBAIC0yMzEsNiArMjM2LDcgQEAKICMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9RU1BBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX1NVUFBPUlRTX01TSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI0MCwxMyArMjQ2LDEzIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4ODAwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NUQVJUPTB4ZmQwMDAwMDAKIENPTkZJR19DT05TSVNURU5UX1NJWkU9MHgwMDIwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwNDAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk0LDggKzMwMCw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC00MTksNiArNDIzLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTQ4NSw2ICs0OTAsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTE3LDEyICs1MjMsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ0dfVFBNIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQyBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtNTUxLDEyICs1NTIsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTU4NCw2ICs1OTUsOCBAQAogIyBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDSSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTU5MiwxMyArNjA1LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19FREFDIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC02MjAsNyArNjMwLDYgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAogQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQpAQCAtNjc4LDcgKzY4Nyw2IEBACiBDT05GSUdfTkZTX1YzPXkKICMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtNzIyLDYgKzczMCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogQ09ORklHX0NSQ19DQ0lUVD15CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApAQCAtNzMzLDYgKzc0Miw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTc0MCw2ICs3NTAsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKICMgQ09ORklHX01BR0lDX1NZU1JRIGlzIG5vdCBzZXQKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTc0OCw2ICs3NTksNyBAQAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CiAKICMKQEAgLTc1Nyw0OCArNzY5LDc4IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTElCX1JIRUFQPXkKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL21wYzg4NV9hZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKaW5kZXggODIxNTFiOS4uOWRmNzg5NyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvbXBjODg1X2Fkc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MzUgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjE3IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMjgsNiArMjgsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTEwOCw2ICsxMTAsNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CkBAIC0yMTksMTEgKzIyMiwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjQxLDYgKzI0Niw3IEBACiAjIENPTkZJR19QQ0lfUVNQQU4gaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjUwLDEzICsyNTYsMTMgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHg4MDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU1RBUlQ9MHhmZDAwMDAwMAogQ09ORklHX0NPTlNJU1RFTlRfU0laRT0weDAwMjAwMDAwCi1DT05GSUdfQk9PVF9MT0FEPTB4MDA0MDAwMDAKIAogIwogIyBOZXR3b3JraW5nCkBAIC0yOTksOCArMzA1LDYgQEAKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKICMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKQEAgLTQ5Miw2ICs0OTYsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfUFBQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMSVAgaXMgbm90IHNldApAQCAtNTE2LDYgKzUyMSw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogCiAjCkBAIC01NDgsMTIgKzU1NCw3IEBACiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKQEAgLTU3MCwxMiArNTcxLDIyIEBACiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKIENPTkZJR19EQUI9eQogCiAjCkBAIC01OTksMTMgKzYxMCwxMCBAQAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKICMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjE4LDcgKzYyNiw2IEBACiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CkBAIC02NzYsNyArNjgzLDYgQEAKIENPTkZJR19ORlNfVjM9eQogIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU0QgaXMgbm90IHNldAogQ09ORklHX1JPT1RfTkZTPXkKIENPTkZJR19MT0NLRD15CkBAIC03MTksNiArNzI1LDcgQEAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIworIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTcyOSw2ICs3MzYsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC03MzYsNiArNzQ0LDcgQEAKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKIENPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSz15CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiBDT05GSUdfTUFHSUNfU1lTUlE9eQogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtNzQ2LDYgKzc1NSw3IEBACiBDT05GSUdfU0NIRURfREVCVUc9eQogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfREVCVUdfT04gaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DSyBpcyBub3Qgc2V0CkBAIC03NTYsNiArNzY2LDcgQEAKIENPTkZJR19ERUJVR19CVUdWRVJCT1NFPXkKIENPTkZJR19ERUJVR19JTkZPPXkKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC03NjYsNiArNzc3LDcgQEAKICMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR0dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQkRJX1NXSVRDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC03NzgsMyArNzkwLDQgQEAKICMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcGFzZW1pX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3Bhc2VtaV9kZWZjb25maWcKaW5kZXggMDlmMzA2Mi4uMTk5ZTVmNSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcGFzZW1pX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wYXNlbWlfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBUdWUgTWFyIDI1IDEwOjI1OjQ4IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzMKKyMgVHVlIE1heSAyNyAxNjowODowNiAyMDA4CiAjCiBDT05GSUdfUFBDNjQ9eQogCkBAIC0yOSw2ICsyOSw5IEBACiBDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CiBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUE9eQogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0PXkKQEAgLTg3LDYgKzkwLDcgQEAKIENPTkZJR19TWVNDVEw9eQogIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogIyBDT05GSUdfS0FMTFNZTVNfQUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldApAQCAtMTE1LDEyICsxMTksMTQgQEAKICMgQ09ORklHX0tQUk9CRVMgaXMgbm90IHNldAogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCiBDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CiBDT05GSUdfTU9EVUxFX1VOTE9BRD15CiAjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKQEAgLTE2NywxMSArMTczLDExIEBACiBDT05GSUdfUFBDX1BBU0VNSV9JT01NVT15CiAjIENPTkZJR19QUENfUEFTRU1JX0lPTU1VX0RNQV9GT1JDRSBpcyBub3Qgc2V0CiBDT05GSUdfUFBDX1BBU0VNSV9NRElPPXkKLSMgQ09ORklHX1BQQ19DRUxMRUIgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX1BTMyBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0VMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0VMTF9OQVRJVkUgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0lCTV9DRUxMX0JMQURFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BQQ19DRUxMRUIgaXMgbm90IHNldAogIyBDT05GSUdfUFEyQURTIGlzIG5vdCBzZXQKIENPTkZJR19QUENfTkFUSVZFPXkKICMgQ09ORklHX0lQSUMgaXMgbm90IHNldApAQCAtMTkyLDYgKzE5OCw3IEBACiBDT05GSUdfQ1BVX0ZSRVFfU1RBVD15CiAjIENPTkZJR19DUFVfRlJFUV9TVEFUX0RFVEFJTFMgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BFUkZPUk1BTkNFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1BPV0VSU0FWRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfT05ERU1BTkQgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfQ09OU0VSVkFUSVZFIGlzIG5vdCBzZXQKQEAgLTIyNiw3ICsyMzMsNiBAQAogQ09ORklHX0JJTkZNVF9FTEY9eQogQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGPXkKICMgQ09ORklHX0JJTkZNVF9NSVNDIGlzIG5vdCBzZXQKLUNPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTkKIENPTkZJR19IVUdFVExCX1BBR0VfU0laRV9WQVJJQUJMRT15CiBDT05GSUdfSU9NTVVfVk1FUkdFPXkKIENPTkZJR19JT01NVV9IRUxQRVI9eQpAQCAtMjQ5LDEyICsyNTUsMTQgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEU9eQorQ09ORklHX1BBR0VGTEFHU19FWFRFTkRFRD15CiBDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9NAogQ09ORklHX1JFU09VUkNFU182NEJJVD15CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19QUENfSEFTX0hBU0hfNjRLPXkKIENPTkZJR19QUENfNjRLX1BBR0VTPXkKK0NPTkZJR19GT1JDRV9NQVhfWk9ORU9SREVSPTkKICMgQ09ORklHX1BQQ19TVUJQQUdFX1BST1QgaXMgbm90IHNldAogIyBDT05GSUdfU0NIRURfU01UIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQpAQCAtMjkwLDkgKzI5OCwxMiBAQAogIyBDT05GSUdfWUVOVEEgaXMgbm90IHNldAogIyBDT05GSUdfUEQ2NzI5IGlzIG5vdCBzZXQKICMgQ09ORklHX0k4MjA5MiBpcyBub3Qgc2V0Ci0jIENPTkZJR19FTEVDVFJBX0NGIGlzIG5vdCBzZXQKK0NPTkZJR19FTEVDVFJBX0NGPXkKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwMDAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMDAwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTM0MSw4ICszNTIsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtNDczLDYgKzQ4Miw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTIwLDcgKzUzMCw2IEBACiAjCiAjIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKICMKLSMgQ09ORklHX0lERV9HRU5FUklDIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCkBAIC01NTQsNyArNTYzLDcgQEAKICMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MzIsNyArNjQxLDEwIEBACiAjIENPTkZJR19TQ1NJX0xPV0xFVkVMX1BDTUNJQSBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKK0NPTkZJR19TQVRBX1NJTDI0PXkKK0NPTkZJR19BVEFfU0ZGPXkKICMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9QSUlYIGlzIG5vdCBzZXQKIENPTkZJR19TQVRBX01WPXkKQEAgLTY0Miw3ICs2NTQsNiBAQAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX1NJTDI0PXkKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKQEAgLTY4OSw2ICs3MDAsNyBAQAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKIENPTkZJR19QQVRBX1BMQVRGT1JNPXkKIENPTkZJR19QQVRBX09GX1BMQVRGT1JNPXkKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKIENPTkZJR19NRD15CiBDT05GSUdfQkxLX0RFVl9NRD15CiBDT05GSUdfTURfTElORUFSPXkKQEAgLTc5MSw3ICs4MDMsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiBDT05GSUdfVElHT04zPXkKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtODEwLDYgKzgyMSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTgxNyw2ICs4MjksNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIE5ldHdvcmsgQWRhcHRlcnMKQEAgLTg5MCw2ICs5MDMsNyBAQAogQ09ORklHX1ZUX0NPTlNPTEU9eQogQ09ORklHX0hXX0NPTlNPTEU9eQogIyBDT05GSUdfVlRfSFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKK0NPTkZJR19ERVZLTUVNPXkKICMgQ09ORklHX1NFUklBTF9OT05TVEFOREFSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCkBAIC05MTcsNyArOTMxLDYgQEAKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKIENPTkZJR19IV19SQU5ET01fUEFTRU1JPXkKLSMgQ09ORklHX0dFTl9SVEMgaXMgbm90IHNldAogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAogCkBAIC05MzYsMTMgKzk0OSw3IEBACiBDT05GSUdfSTJDPXkKIENPTkZJR19JMkNfQk9BUkRJTkZPPXkKIENPTkZJR19JMkNfQ0hBUkRFVj15Ci0KLSMKLSMgSTJDIEFsZ29yaXRobXMKLSMKIENPTkZJR19JMkNfQUxHT0JJVD15Ci1DT05GSUdfSTJDX0FMR09QQ0Y9eQotQ09ORklHX0kyQ19BTEdPUENBPXkKIAogIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKQEAgLTk3MSw2ICs5NzgsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtOTgwLDE5ICs5ODgsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogQ09ORklHX0hXTU9OPXkKQEAgLTEwNjIsMTIgKzEwNjQsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIApAQCAtMTA5NCw4ICsxMTA2LDggQEAKICMgQ09ORklHX0ZCX1NZU19GSUxMUkVDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9TWVNfQ09QWUFSRUEgaXMgbm90IHNldAogIyBDT05GSUdfRkJfU1lTX0lNQUdFQkxJVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9GT1JFSUdOX0VORElBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19GQl9TWVNfRk9QUyBpcyBub3Qgc2V0Ci1DT05GSUdfRkJfREVGRVJSRURfSU89eQogIyBDT05GSUdfRkJfU1ZHQUxJQiBpcyBub3Qgc2V0CiBDT05GSUdfRkJfTUFDTU9ERVM9eQogQ09ORklHX0ZCX0JBQ0tMSUdIVD15CkBAIC0xMjEzLDYgKzEyMjUsNyBAQAogIyBDT05GSUdfU05EX0FVODgxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVU4ODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NORF9BVTg4MzAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FXMiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQVpUMzMyOCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTkRfQlQ4N1ggaXMgbm90IHNldAogIyBDT05GSUdfU05EX0NBMDEwNiBpcyBub3Qgc2V0CkBAIC0xMjkyLDExICsxMzA1LDExIEBACiAjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKIAogIwotIyBTb0MgQXVkaW8gc3VwcG9ydCBmb3IgU3VwZXJICisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcwogIwogCiAjCi0jIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCiAjCiAKICMKQEAgLTEzMzQsMTEgKzEzNDcsMTMgQEAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0RfUFBDX09GPXkKICMgQ09ORklHX1VTQl9JU1AxMTZYX0hDRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfSVNQMTc2MF9IQ0QgaXMgbm90IHNldAogQ09ORklHX1VTQl9PSENJX0hDRD15CiAjIENPTkZJR19VU0JfT0hDSV9IQ0RfUFBDX09GIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fREVTQyBpcyBub3Qgc2V0CkBAIC0xMzU0LDYgKzEzNjksNyBAQAogIwogIyBDT05GSUdfVVNCX0FDTSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfUFJJTlRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfV0RNIGlzIG5vdCBzZXQKIAogIwogIyBOT1RFOiBVU0JfU1RPUkFHRSBlbmFibGVzIFNDU0ksIGFuZCAnU0NTSSBkaXNrIHN1cHBvcnQnCkBAIC0xMzc1LDYgKzEzOTEsNyBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogQ09ORklHX1VTQl9MSUJVU1VBTD15CiAKICMKQEAgLTE0MTYsNiArMTQzMyw3IEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKIENPTkZJR19FREFDPXkKIApAQCAtMTQ3NSwxMCArMTQ5Myw2IEBACiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIwogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTU3NiwxMiArMTU5MCwxMCBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogQ09ORklHX05GU0Q9eQogQ09ORklHX05GU0RfVjM9eQogIyBDT05GSUdfTkZTRF9WM19BQ0wgaXMgbm90IHNldAogQ09ORklHX05GU0RfVjQ9eQotQ09ORklHX05GU0RfVENQPXkKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQogQ09ORklHX0xPQ0tEX1Y0PXkKQEAgLTE2NjUsOSArMTY3NywxMCBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfSVRVX1Q9eQogQ09ORklHX0NSQzMyPXkKICMgQ09ORklHX0NSQzcgaXMgbm90IHNldAogQ09ORklHX0xJQkNSQzMyQz1tCkBAIC0xNjc3LDYgKzE2OTAsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xNjg0LDYgKzE2OTgsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTIwNDgKIENPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xNjk0LDE4ICsxNzA5LDIzIEBACiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX01VVEVYRVMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TUElOTE9DS19TTEVFUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CkBAIC0xNzM1LDUzICsxNzU1LDgzIEBACiBDT05GSUdfQVNZTkNfTUVNQ1BZPXkKIENPTkZJR19BU1lOQ19YT1I9eQogQ09ORklHX0NSWVBUTz15CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiBDT05GSUdfQ1JZUFRPX0FMR0FQST15CiBDT05GSUdfQ1JZUFRPX0FFQUQ9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSEFTSD15CiBDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPXkKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKIENPTkZJR19DUllQVE9fSE1BQz15CiAjIENPTkZJR19DUllQVE9fWENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUQ0PXkKIENPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX1NIQTE9eQogQ09ORklHX0NSWVBUT19TSEEyNTY9eQogQ09ORklHX0NSWVBUT19TSEE1MTI9eQotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19DQkM9eQotIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAotQ09ORklHX0NSWVBUT19ERVM9eQotIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0JMT1dGSVNIPXkKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogQ09ORklHX0NSWVBUT19BRVM9eQorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0JMT1dGSVNIPXkKKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19URUEgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FSQzQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0FVVEhFTkM9eQogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWcgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcGM2NF9kZWZjb25maWcKaW5kZXggNDBmODRmYS4uY2UyNTBiYyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHBjNjRfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BwYzY0X2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzMKLSMgVHVlIE1heSAyMCAyMDowMzowMiAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM2CisjIE1vbiBKdW4gMTYgMjE6MTE6MTkgMjAwOAogIwogQ09ORklHX1BQQzY0PXkKIApAQCAtNzYzLDcgKzc2Myw2MyBAQAogQ09ORklHX1NBVEFfUE1QPXkKICMgQ09ORklHX1NBVEFfQUhDSSBpcyBub3Qgc2V0CiBDT05GSUdfU0FUQV9TSUwyND15Ci0jIENPTkZJR19BVEFfU0ZGIGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKK0NPTkZJR19TQVRBX1NWVz15CisjIENPTkZJR19BVEFfUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAorIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CisjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9WSVRFU1NFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfSU5JQzE2MlggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DTUQ2NFggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MjAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DUzU1MzAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9DWVBSRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfRUZBUiBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFfR0VORVJJQyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDM3WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0hQVDNYMk4gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9IUFQzWDMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9JVDgyMTMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9KTUlDUk9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfVFJJRkxFWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX01BUlZFTEwgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9NUElJWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09MRFBJSVggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QQ01DSUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QRENfT0xEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUkFESVNZUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NDMTIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX1NFUlZFUldPUktTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUERDMjAyN1ggaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSUw2ODAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TSVMgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfUExBVEZPUk0gaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0MgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9TQ0ggaXMgbm90IHNldAogQ09ORklHX01EPXkKIENPTkZJR19CTEtfREVWX01EPXkKIENPTkZJR19NRF9MSU5FQVI9eQpAQCAtMTQ3OCw2ICsxNTM0LDcgQEAKICMKICMgQ09ORklHX1VTQl9BQ00gaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BSSU5URVIgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1dETSBpcyBub3Qgc2V0CiAKICMKICMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwpAQCAtMTUzNyw2ICsxNTk0LDcgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CkBAIC0xNTk3LDYgKzE2NTUsNyBAQAogIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0ZNMzEzMCBpcyBub3Qgc2V0CiAKICMKICMgU1BJIFJUQyBkcml2ZXJzCkBAIC0xNjE3LDYgKzE2NzYsNyBAQAogIwogIyBvbi1DUFUgUlRDIGRyaXZlcnMKICMKK0NPTkZJR19SVENfRFJWX1BQQz15CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3BxMmZhZHNfZGVmY29uZmlnIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHEyZmFkc19kZWZjb25maWcKaW5kZXggMTM4M2ViNi4uYmMzYmY2MiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHEyZmFkc19kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHEyZmFkc19kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUtcmM2Ci0jIE1vbiBNYXIgMjQgMDg6NDg6MzYgMjAwOAorIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNQorIyBNb24gSnVuICA5IDA4OjUyOjE4IDIwMDgKICMKICMgQ09ORklHX1BQQzY0IGlzIG5vdCBzZXQKIApAQCAtMzAsNiArMzAsOCBAQAogQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQogIyBDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEgaXMgbm90IHNldAogQ09ORklHX0lSUV9QRVJfQ1BVPXkKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CiBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQogQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMj15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKQEAgLTcwLDE5ICs3MiwxNyBAQAogQ09ORklHX0lLQ09ORklHX1BST0M9eQogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKICMgQ09ORklHX0NHUk9VUFMgaXMgbm90IHNldAotQ09ORklHX0dST1VQX1NDSEVEPXkKLSMgQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQgaXMgbm90IHNldAotQ09ORklHX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfQ0dST1VQX1NDSEVEIGlzIG5vdCBzZXQKIENPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyPXkKICMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKICMgQ09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKIENPTkZJR19JTklUUkFNRlNfU09VUkNFPSIiCitDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQogQ09ORklHX1NZU0NUTD15CiBDT05GSUdfRU1CRURERUQ9eQogQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CiBDT05GSUdfS0FMTFNZTVM9eQogQ09ORklHX0tBTExTWU1TX0FMTD15CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTEwOSw2ICsxMDksNyBAQAogQ09ORklHX0hBVkVfT1BST0ZJTEU9eQogQ09ORklHX0hBVkVfS1BST0JFUz15CiBDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKIENPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CiBDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQpAQCAtMTk2LDExICsxOTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKIENPTkZJR19QUk9DX0RFVklDRVRSRUU9eQogIyBDT05GSUdfQ01ETElORV9CT09MIGlzIG5vdCBzZXQKICMgQ09ORklHX1BNIGlzIG5vdCBzZXQKQEAgLTIyNSw2ICsyMjgsNyBAQAogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTIzNCwxMSArMjM4LDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDQwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI5Myw2ICsyOTcsNyBAQAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9eQogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKIENPTkZJR19JUFY2X1NJVD15CitDT05GSUdfSVBWNl9ORElTQ19OT0RFVFlQRT15CiAjIENPTkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CkBAIC01MTMsNyArNTE4LDcgQEAKICMgQ09ORklHX0JMS19ERVZfVklBODJDWFhYIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfVEM4NkMwMDEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9JREVETUEgaXMgbm90IHNldAotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01OTMsNyArNTk4LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjExLDYgKzYxNSw3IEBACiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CiAjIENPTkZJR19UUiBpcyBub3Qgc2V0CiAKICMKQEAgLTYxOCw2ICs2MjMsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CiBDT05GSUdfUFBQPXkKQEAgLTY5Miw2ICs2OTgsNyBAQAogIyBDaGFyYWN0ZXIgZGV2aWNlcwogIwogIyBDT05GSUdfVlQgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNzI2LDEyICs3MzMsNyBAQAogIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15CiAjIENPTkZJR19JMkMgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtNzQ4LDEyICs3NTAsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTc4MSwxMSArNzkzLDE0IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKICMKIENPTkZJR19VU0JfR0FER0VUPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0dBREdFVF9TRUxFQ1RFRD15CiAjIENPTkZJR19VU0JfR0FER0VUX0FNRDU1MzZVREMgaXMgbm90IHNldApAQCAtNzk1LDYgKzgxMCw3IEBACiAjIENPTkZJR19VU0JfR0FER0VUX1BYQTJYWCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0dBREdFVF9NNjY1OTI9eQogQ09ORklHX1VTQl9NNjY1OTI9eQorIyBDT05GSUdfVVNCX0dBREdFVF9QWEEyN1ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9HT0tVIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfTEg3QTQwWCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX09NQVAgaXMgbm90IHNldApAQCAtODA0LDYgKzgyMCw3IEBACiBDT05GSUdfVVNCX0dBREdFVF9EVUFMU1BFRUQ9eQogIyBDT05GSUdfVVNCX1pFUk8gaXMgbm90IHNldAogQ09ORklHX1VTQl9FVEg9eQorQ09ORklHX1VTQl9FVEhfUk5ESVM9eQogIyBDT05GSUdfVVNCX0dBREdFVEZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9GSUxFX1NUT1JBR0UgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dfU0VSSUFMIGlzIG5vdCBzZXQKQEAgLTgxMiwxMyArODI5LDEwIEBACiAjIENPTkZJR19NTUMgaXMgbm90IHNldAogIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfQUNDRVNTSUJJTElUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkZJTklCQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC04ODgsNyArOTAyLDYgQEAKIENPTkZJR19ORlNfRlM9eQogQ09ORklHX05GU19WMz15CiBDT05GSUdfTkZTX1YzX0FDTD15Ci0jIENPTkZJR19ORlNfRElSRUNUSU8gaXMgbm90IHNldAogIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiBDT05GSUdfUk9PVF9ORlM9eQogQ09ORklHX0xPQ0tEPXkKQEAgLTk2Nyw2ICs5ODAsNyBAQAogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKIENPTkZJR19DUkNfQ0NJVFQ9eQogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTk3OSw2ICs5OTMsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC05ODYsNiArMTAwMSw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKQEAgLTk5Niw2ICsxMDEyLDcgQEAKICMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfVElNRVJfU1RBVFMgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfT0JKRUNUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTFVCX0RFQlVHX09OIGlzIG5vdCBzZXQKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CkBAIC0xMDA4LDYgKzEwMjUsNyBAQAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogQ09ORklHX0RFQlVHX0lORk89eQogIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKQEAgLTEwMTksNiArMTAzNyw3IEBACiAjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdHRVIgaXMgbm90IHNldAogIyBDT05GSUdfS0dEQl9DT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lSUVNUQUNLUyBpcyBub3Qgc2V0CiBDT05GSUdfQkRJX1NXSVRDSD15CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC0xMDI4LDQ2ICsxMDQ3LDc2IEBACiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19CTEtDSVBIRVI9eQotIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fTUFOQUdFUj15Ci0jIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9eQorQ09ORklHX0NSWVBUT19QQ0JDPXkKKworIworIyBIYXNoIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fSE1BQyBpcyBub3Qgc2V0CisKKyMKKyMgRGlnZXN0CisjCisjIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19NRDQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19NRDU9eQorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0VDQj15Ci1DT05GSUdfQ1JZUFRPX0NCQz15Ci1DT05GSUdfQ1JZUFRPX1BDQkM9eQotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fV1A1MTIgaXMgbm90IHNldAorCisjCisjIENpcGhlcnMKKyMKICMgQ09ORklHX0NSWVBUT19BRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVJDNCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0RFUz15CisjIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19LSEFaQUQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIwogIyBDT05GSUdfQ1JZUFRPX0RFRkxBVEUgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19IVz15CiAjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfQ0xPQ0sgaXMgbm90IHNldAogQ09ORklHX1BQQ19MSUJfUkhFQVA9eQorIyBDT05GSUdfVklSVFVBTElaQVRJT04gaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHJwbWMyODAwX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3BycG1jMjgwMF9kZWZjb25maWcKaW5kZXggZjkxMjE2OC4uYzZiODM1NyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvcHJwbWMyODAwX2RlZmNvbmZpZworKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9wcnBtYzI4MDBfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjE1IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoxOCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMzLDYgKzMzLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC05Miw2ICs5NCw3IEBACiBDT05GSUdfU1lTQ1RMPXkKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAogQ09ORklHX0hPVFBMVUc9eQpAQCAtMTE3LDYgKzEyMCw3IEBACiBDT05GSUdfSEFWRV9PUFJPRklMRT15CiBDT05GSUdfSEFWRV9LUFJPQkVTPXkKIENPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAogQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CkBAIC0yMTUsMTEgKzIxOSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjQxLDYgKzI0Nyw3IEBACiBDT05GSUdfUENJX0xFR0FDWT15CiAjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSEFTX1JBUElESU8gaXMgbm90IHNldAogCiAjCiAjIEFkdmFuY2VkIHNldHVwCkBAIC0yNTAsMTMgKzI1NywxMyBAQAogIwogIyBEZWZhdWx0IHNldHRpbmdzIGZvciBhZHZhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXJlIHVzZWQKICMKLUNPTkZJR19ISUdITUVNX1NUQVJUPTB4ZmUwMDAwMDAKIENPTkZJR19MT1dNRU1fU0laRT0weDMwMDAwMDAwCitDT05GSUdfUEFHRV9PRkZTRVQ9MHhjMDAwMDAwMAogQ09ORklHX0tFUk5FTF9TVEFSVD0weGMwMDAwMDAwCitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgwMDAwMDAwMAogQ09ORklHX1RBU0tfU0laRT0weGMwMDAwMDAwCiBDT05GSUdfQ09OU0lTVEVOVF9TVEFSVD0weGZmMTAwMDAwCiBDT05GSUdfQ09OU0lTVEVOVF9TSVpFPTB4MDAyMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMwNCw4ICszMTEsNiBAQAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMzY0LDYgKzM2OSw3IEBACiAjIENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfQ01ETElORV9QQVJUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19NVERfT0ZfUEFSVFMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX0FSN19QQVJUUyBpcyBub3Qgc2V0CiAKICMKICMgVXNlciBNb2R1bGVzIEFuZCBUcmFuc2xhdGlvbiBMYXllcnMKQEAgLTQzNSw2ICs0NDEsNyBAQAogIwogIyBDT05GSUdfTVREX1VCSSBpcyBub3Qgc2V0CiBDT05GSUdfT0ZfREVWSUNFPXkKK0NPTkZJR19PRl9JMkM9eQogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0ZEIGlzIG5vdCBzZXQKQEAgLTUxOSw3ICs1MjYsNyBAQAogIyBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC01OTgsNyArNjA1LDEwIEBACiAjIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CiBDT05GSUdfQVRBPXkKICMgQ09ORklHX0FUQV9OT05TVEFOREFSRCBpcyBub3Qgc2V0CitDT05GSUdfU0FUQV9QTVA9eQogIyBDT05GSUdfU0FUQV9BSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorQ09ORklHX0FUQV9TRkY9eQogIyBDT05GSUdfU0FUQV9TVlcgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX1BJSVggaXMgbm90IHNldAogQ09ORklHX1NBVEFfTVY9eQpAQCAtNjA4LDcgKzYxOCw2IEBACiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAotIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1NJUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1VMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CkBAIC02NTMsNiArNjYyLDcgQEAKICMgQ09ORklHX1BBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfV0lOQk9ORCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1BMQVRGT1JNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfU0NIIGlzIG5vdCBzZXQKICMgQ09ORklHX01EIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKQEAgLTc0NCw3ICs3NTQsNiBAQAogIyBDT05GSUdfU0lTMTkwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLR0UgaXMgbm90IHNldAogIyBDT05GSUdfU0tZMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSzk4TElOIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19USUdPTjMgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMiBpcyBub3Qgc2V0CkBAIC03NjMsNiArNzcyLDcgQEAKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAogIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKICMgQ09ORklHX1RSIGlzIG5vdCBzZXQKIAogIwpAQCAtNzcwLDYgKzc4MCw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtODMyLDYgKzg0Myw3IEBACiBDT05GSUdfVlRfQ09OU09MRT15CiBDT05GSUdfSFdfQ09OU09MRT15CiAjIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkcgaXMgbm90IHNldAorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX05PWk9NSSBpcyBub3Qgc2V0CiAKQEAgLTg1NSw3ICs4NjcsNiBAQAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRU5fUlRDIGlzIG5vdCBzZXQKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX0FQUExJQ09NIGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldApAQCAtODY2LDEzICs4NzcsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODk4LDYgKzkwMiw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiBDT05GSUdfSTJDX01WNjRYWFg9eQogCiAjCkBAIC05MDgsMTkgKzkxMywxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtOTkwLDEyICs5ODksMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA1NSwxMSArMTA2NCwxMyBAQAogIwogIyBVU0IgSG9zdCBDb250cm9sbGVyIERyaXZlcnMKICMKKyMgQ09ORklHX1VTQl9DNjdYMDBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfRUhDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX0VIQ0lfUk9PVF9IVUJfVFQgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0VIQ0lfVFRfTkVXU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1VTQl9FSENJX0hDRF9QUENfT0Y9eQogIyBDT05GSUdfVVNCX0lTUDExNlhfSENEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU1AxNzYwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX09IQ0lfSENEPXkKICMgQ09ORklHX1VTQl9PSENJX0hDRF9QUENfT0YgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKQEAgLTEwNzQsNiArMTA4NSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTExMjAsMTAgKzExMzIsMTIgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC0xMTc1LDExICsxMTg5LDggQEAKICMKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX1BQQyBpcyBub3Qgc2V0CiAjIENPTkZJR19ETUFERVZJQ0VTIGlzIG5vdCBzZXQKLQotIwotIyBVc2Vyc3BhY2UgSS9PCi0jCiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCkBAIC0xMTk5LDcgKzEyMTAsNiBAQAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CkBAIC0xMjU3LDcgKzEyNjcsNiBAQAogQ09ORklHX05GU19GUz15CiAjIENPTkZJR19ORlNfVjMgaXMgbm90IHNldAogIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTMwMCw2ICsxMzA5LDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQEAgLTEzMTAsNiArMTMyMCw3IEBACiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKK0NPTkZJR19IQVZFX0xNQj15CiAKICMKICMgS2VybmVsIGhhY2tpbmcKQEAgLTEzMTcsNiArMTMyOCw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfRlMgaXMgbm90IHNldApAQCAtMTMyNiw2ICsxMzM4LDcgQEAKICMgQ09ORklHX1NMVUJfU1RBVFMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQogIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVFhfVEVYVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QUENfRUFSTFlfREVCVUcgaXMgbm90IHNldAogCkBAIC0xMzM2LDQ4ICsxMzQ5LDc4IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogIyBDT05GSUdfQ1JZUFRPX0RFVl9ISUZOXzc5NVggaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0NMT0NLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRVQUxJWkFUSU9OIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3NiYzg2NDFkX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3NiYzg2NDFkX2RlZmNvbmZpZwppbmRleCAzMTgwMTI1Li44MjI3NTEwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9zYmM4NjQxZF9kZWZjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3Mvc2JjODY0MWRfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNgotIyBUaHUgQXByIDEwIDE4OjAzOjI1IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoxOSAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMyLDYgKzMyLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19HRU5FUklDX0xPQ0tCUkVBSz15CiBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyPXkKQEAgLTkwLDYgKzkyLDcgQEAKIENPTkZJR19TWVNDVEw9eQogQ09ORklHX0VNQkVEREVEPXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKICMgQ09ORklHX0tBTExTWU1TX0FMTCBpcyBub3Qgc2V0CiAjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKQEAgLTExNiwxMiArMTE5LDE0IEBACiAjIENPTkZJR19LUFJPQkVTIGlzIG5vdCBzZXQKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0xOTcsNyArMjAyLDYgQEAKICMgQ09ORklHX1BSRUVNUFRfUkNVIGlzIG5vdCBzZXQKIENPTkZJR19CSU5GTVRfRUxGPXkKIENPTkZJR19CSU5GTVRfTUlTQz1tCi1DT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogIyBDT05GSUdfSU9NTVVfSEVMUEVSIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRz15CiBDT05GSUdfQVJDSF9IQVNfV0FMS19NRU1PUlk9eQpAQCAtMjEzLDExICsyMTcsMTMgQEAKIENPTkZJR19GTEFUX05PREVfTUVNX01BUD15CiAjIENPTkZJR19TUEFSU0VNRU1fU1RBVElDIGlzIG5vdCBzZXQKICMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQorQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKICMgQ09ORklHX1BST0NfREVWSUNFVFJFRSBpcyBub3Qgc2V0CiAjIENPTkZJR19DTURMSU5FX0JPT0wgaXMgbm90IHNldAogIyBDT05GSUdfUE0gaXMgbm90IHNldApAQCAtMjM3LDEyICsyNDMsMTQgQEAKIENPTkZJR19QQ0lfU1lTQ0FMTD15CiBDT05GSUdfUENJRVBPUlRCVVM9eQogQ09ORklHX1BDSUVBRVI9eQorIyBDT05GSUdfUENJRUFTUE0gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJPXkKICMgQ09ORklHX1BDSV9NU0kgaXMgbm90IHNldAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENJX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0CiAjIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19IQVNfUkFQSURJTyBpcyBub3Qgc2V0CiAKICMKICMgQWR2YW5jZWQgc2V0dXAKQEAgLTI1MiwxMSArMjYwLDExIEBACiAjCiAjIERlZmF1bHQgc2V0dGluZ3MgZm9yIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhcmUgdXNlZAogIwotQ09ORklHX0hJR0hNRU1fU1RBUlQ9MHhmZTAwMDAwMAogQ09ORklHX0xPV01FTV9TSVpFPTB4MzAwMDAwMDAKK0NPTkZJR19QQUdFX09GRlNFVD0weGMwMDAwMDAwCiBDT05GSUdfS0VSTkVMX1NUQVJUPTB4YzAwMDAwMDAKK0NPTkZJR19QSFlTSUNBTF9TVEFSVD0weDAwMDAwMDAwCiBDT05GSUdfVEFTS19TSVpFPTB4YzAwMDAwMDAKLUNPTkZJR19CT09UX0xPQUQ9MHgwMDgwMDAwMAogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTMyOCw4ICszMzYsMTAgQEAKIENPTkZJR19JTkVUNl9YRlJNX01PREVfQkVFVD1tCiAjIENPTkZJR19JTkVUNl9YRlJNX01PREVfUk9VVEVPUFRJTUlaQVRJT04gaXMgbm90IHNldAogQ09ORklHX0lQVjZfU0lUPW0KK0NPTkZJR19JUFY2X05ESVNDX05PREVUWVBFPXkKIENPTkZJR19JUFY2X1RVTk5FTD1tCiAjIENPTkZJR19JUFY2X01VTFRJUExFX1RBQkxFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRMQUJFTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogQ09ORklHX05FVEZJTFRFUj15CkBAIC01MzQsNiArNTQ0LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNjEwLDYgKzYyMSw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNzI3LDcgKzczOSw2IEBACiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TS1kyIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLOThMSU4gaXMgbm90IHNldAogIyBDT05GSUdfVklBX1ZFTE9DSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJR09OMyBpcyBub3Qgc2V0CiAjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKQEAgLTc0Myw2ICs3NTQsNyBAQAogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAogQ09ORklHX0FUTV9EUklWRVJTPXkKICMgQ09ORklHX0FUTV9EVU1NWSBpcyBub3Qgc2V0CkBAIC04MjUsNiArODM3LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKICMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtODYzLDEzICs4NzYsNiBAQAogQ09ORklHX0kyQ19DSEFSREVWPXkKIAogIwotIyBJMkMgQWxnb3JpdGhtcwotIwotIyBDT05GSUdfSTJDX0FMR09CSVQgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0YgaXMgbm90IHNldAotIyBDT05GSUdfSTJDX0FMR09QQ0EgaXMgbm90IHNldAotCi0jCiAjIEkyQyBIYXJkd2FyZSBCdXMgc3VwcG9ydAogIwogIyBDT05GSUdfSTJDX0FMSTE1MzUgaXMgbm90IHNldApAQCAtODk1LDYgKzkwMSw3IEBACiAjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CiAKICMKICMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CkBAIC05MDQsMTkgKzkxMSwxMyBAQAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKICMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RQUzY1MDEwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0Ci0KLSMKLSMgU1BJIHN1cHBvcnQKLSMKICMgQ09ORklHX1NQSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TUElfTUFTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1cxIGlzIG5vdCBzZXQKICMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CiBDT05GSUdfSFdNT049eQpAQCAtOTk4LDEyICs5OTksMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAKICMKQEAgLTEwNDEsNiArMTA1Miw4IEBACiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTEwNDksMTQgKzEwNjIsMTEgQEAKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfQ0xBU1MgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA4NCw4ICsxMDk0LDggQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRlNfUE9TSVhfQUNMPXkKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19PQ0ZTMl9GUz1tCitDT05GSUdfT0NGUzJfRlNfTzJDQj1tCiBDT05GSUdfT0NGUzJfREVCVUdfTUFTS0xPRz15CiAjIENPTkZJR19PQ0ZTMl9ERUJVR19GUyBpcyBub3Qgc2V0CiBDT05GSUdfRE5PVElGWT15CkBAIC0xMTQ1LDcgKzExNTUsNiBAQAogQ09ORklHX05GU19WMz15CiAjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKIENPTkZJR19ORlNfVjQ9eQotQ09ORklHX05GU19ESVJFQ1RJTz15CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKIENPTkZJR19ST09UX05GUz15CiBDT05GSUdfTE9DS0Q9eQpAQCAtMTIyMSw2ICsxMjMwLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiBDT05GSUdfQ1JDX0NDSVRUPW0KICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMjQxLDYgKzEyNTEsNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQogQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLPXkKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKIENPTkZJR19NQUdJQ19TWVNSUT15CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfRlM9eQpAQCAtMTI1MSw2ICsxMjYyLDcgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0xBQiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19SVF9NVVRFWEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUX01VVEVYX1RFU1RFUiBpcyBub3Qgc2V0CkBAIC0xMjYyLDYgKzEyNzQsNyBAQAogIyBDT05GSUdfREVCVUdfQlVHVkVSQk9TRSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfSU5GTz15CiAjIENPTkZJR19ERUJVR19WTSBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0xJU1QgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU0cgaXMgbm90IHNldAogIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldApAQCAtMTI3NCw2ICsxMjg3LDcgQEAKICMgQ09ORklHX0RFQlVHX1BBR0VBTExPQyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdHRVI9eQogIyBDT05GSUdfWE1PTiBpcyBub3Qgc2V0CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAogIyBDT05GSUdfVklSUV9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRElfU1dJVENIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19FQVJMWV9ERUJVRyBpcyBub3Qgc2V0CkBAIC0xMjg5LDU0ICsxMzAzLDg0IEBACiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfU0VDVVJJVFlfREVGQVVMVF9NTUFQX01JTl9BRERSPTAKIENPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIwogQ09ORklHX0NSWVBUT19BTEdBUEk9eQogQ09ORklHX0NSWVBUT19BRUFEPW0KIENPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hBU0g9eQogQ09ORklHX0NSWVBUT19NQU5BR0VSPXkKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX05VTEw9bQorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQorQ09ORklHX0NSWVBUT19URVNUPW0KKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9bQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1BDQkM9bQorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIwogQ09ORklHX0NSWVBUT19ITUFDPXkKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fTlVMTD1tCisKKyMKKyMgRGlnZXN0CisjCitDT05GSUdfQ1JZUFRPX0NSQzMyQz1tCiBDT05GSUdfQ1JZUFRPX01END1tCiBDT05GSUdfQ1JZUFRPX01ENT15CitDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDPW0KIENPTkZJR19DUllQVE9fU0hBMT1tCiBDT05GSUdfQ1JZUFRPX1NIQTI1Nj1tCiBDT05GSUdfQ1JZUFRPX1NIQTUxMj1tCi1DT05GSUdfQ1JZUFRPX1dQNTEyPW0KICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fRUNCPW0KLUNPTkZJR19DUllQVE9fQ0JDPXkKLUNPTkZJR19DUllQVE9fUENCQz1tCi0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci1DT05GSUdfQ1JZUFRPX0RFUz15Ci0jIENPTkZJR19DUllQVE9fRkNSWVBUIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fQkxPV0ZJU0g9bQotQ09ORklHX0NSWVBUT19UV09GSVNIPW0KLUNPTkZJR19DUllQVE9fVFdPRklTSF9DT01NT049bQotQ09ORklHX0NSWVBUT19TRVJQRU5UPW0KK0NPTkZJR19DUllQVE9fV1A1MTI9bQorCisjCisjIENpcGhlcnMKKyMKIENPTkZJR19DUllQVE9fQUVTPW0KK0NPTkZJR19DUllQVE9fQU5VQklTPW0KK0NPTkZJR19DUllQVE9fQVJDND1tCitDT05GSUdfQ1JZUFRPX0JMT1dGSVNIPW0KKyMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0NBU1Q1PW0KIENPTkZJR19DUllQVE9fQ0FTVDY9bQotQ09ORklHX0NSWVBUT19URUE9bQotQ09ORklHX0NSWVBUT19BUkM0PW0KK0NPTkZJR19DUllQVE9fREVTPXkKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAogQ09ORklHX0NSWVBUT19LSEFaQUQ9bQotQ09ORklHX0NSWVBUT19BTlVCSVM9bQotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19TRVJQRU5UPW0KK0NPTkZJR19DUllQVE9fVEVBPW0KK0NPTkZJR19DUllQVE9fVFdPRklTSD1tCitDT05GSUdfQ1JZUFRPX1RXT0ZJU0hfQ09NTU9OPW0KKworIworIyBDb21wcmVzc2lvbgorIwogQ09ORklHX0NSWVBUT19ERUZMQVRFPW0KLUNPTkZJR19DUllQVE9fTUlDSEFFTF9NSUM9bQotQ09ORklHX0NSWVBUT19DUkMzMkM9bQotIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKLUNPTkZJR19DUllQVE9fVEVTVD1tCi1DT05GSUdfQ1JZUFRPX0FVVEhFTkM9bQogIyBDT05GSUdfQ1JZUFRPX0xaTyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPX0hXPXkKICMgQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvY29uZmlncy9zdG9yY2VudGVyX2RlZmNvbmZpZyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3N0b3JjZW50ZXJfZGVmY29uZmlnCmluZGV4IGZkYmZkMzkuLjg4ZjZhYTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9jb25maWdzL3N0b3JjZW50ZXJfZGVmY29uZmlnCisrKyBiL2FyY2gvcG93ZXJwYy9jb25maWdzL3N0b3JjZW50ZXJfZGVmY29uZmlnCkBAIC0xLDcgKzEsNyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI1LXJjNwotIyBNb24gTWFyIDMxIDExOjM3OjE5IDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzUKKyMgTW9uIEp1biAgOSAwODo1MjoyMCAyMDA4CiAjCiAjIENPTkZJR19QUEM2NCBpcyBub3Qgc2V0CiAKQEAgLTMxLDYgKzMxLDggQEAKIENPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKICMgQ09ORklHX0hBVkVfU0VUVVBfUEVSX0NQVV9BUkVBIGlzIG5vdCBzZXQKIENPTkZJR19JUlFfUEVSX0NQVT15CitDT05GSUdfU1RBQ0tUUkFDRV9TVVBQT1JUPXkKK0NPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzI9eQogQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CkBAIC04NSw2ICs4Nyw3IEBACiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKICMgQ09ORklHX0tBTExTWU1TIGlzIG5vdCBzZXQKIENPTkZJR19IT1RQTFVHPXkKIENPTkZJR19QUklOVEs9eQpAQCAtMTA5LDEyICsxMTIsMTQgQEAKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX0tQUk9CRVM9eQogQ09ORklHX0hBVkVfS1JFVFBST0JFUz15CisjIENPTkZJR19IQVZFX0RNQV9BVFRSUyBpcyBub3Qgc2V0CiBDT05GSUdfUFJPQ19QQUdFX01PTklUT1I9eQogQ09ORklHX1NMQUJJTkZPPXkKIENPTkZJR19SVF9NVVRFWEVTPXkKICMgQ09ORklHX1RJTllfU0hNRU0gaXMgbm90IHNldAogQ09ORklHX0JBU0VfU01BTEw9MAogQ09ORklHX01PRFVMRVM9eQorIyBDT05GSUdfTU9EVUxFX0ZPUkNFX0xPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFVMRV9VTkxPQUQ9eQogIyBDT05GSUdfTU9EVUxFX0ZPUkNFX1VOTE9BRCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT0RWRVJTSU9OUyBpcyBub3Qgc2V0CkBAIC0yMTQsMTEgKzIxOSwxMyBAQAogQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKICMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAogIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQogQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKICMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CiBDT05GSUdfWk9ORV9ETUFfRkxBRz0xCiBDT05GSUdfQk9VTkNFPXkKIENPTkZJR19WSVJUX1RPX0JVUz15CitDT05GSUdfRk9SQ0VfTUFYX1pPTkVPUkRFUj0xMQogQ09ORklHX1BST0NfREVWSUNFVFJFRT15CiBDT05GSUdfQ01ETElORV9CT09MPXkKIENPTkZJR19DTURMSU5FPSJjb25zb2xlPXR0eVMwLDExNTIwMCIKQEAgLTI0Miw2ICsyNDksNyBAQAogQ09ORklHX1BDSV9MRUdBQ1k9eQogIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKICMgQ09ORklHX0hPVFBMVUdfUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hBU19SQVBJRElPIGlzIG5vdCBzZXQKIAogIwogIyBBZHZhbmNlZCBzZXR1cApAQCAtMjUxLDExICsyNTksMTEgQEAKICMKICMgRGVmYXVsdCBzZXR0aW5ncyBmb3IgYWR2YW5jZWQgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSB1c2VkCiAjCi1DT05GSUdfSElHSE1FTV9TVEFSVD0weGZlMDAwMDAwCiBDT05GSUdfTE9XTUVNX1NJWkU9MHgzMDAwMDAwMAorQ09ORklHX1BBR0VfT0ZGU0VUPTB4YzAwMDAwMDAKIENPTkZJR19LRVJORUxfU1RBUlQ9MHhjMDAwMDAwMAorQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MDAwMDAwMDAKIENPTkZJR19UQVNLX1NJWkU9MHhjMDAwMDAwMAotQ09ORklHX0JPT1RfTE9BRD0weDAwODAwMDAwCiAKICMKICMgTmV0d29ya2luZwpAQCAtMjk4LDggKzMwNiw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNTgsNiArMzY0LDcgQEAKICMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9PRl9QQVJUUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKIAogIwogIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycwpAQCAtNDMzLDYgKzQ0MCw3IEBACiAjCiAjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKIENPTkZJR19PRl9ERVZJQ0U9eQorQ09ORklHX09GX0kyQz15CiAjIENPTkZJR19QQVJQT1JUIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWPXkKICMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldApAQCAtNTEzLDcgKzUyMSw3IEBACiBDT05GSUdfQkxLX0RFVl9WSUE4MkNYWFg9eQogIyBDT05GSUdfQkxLX0RFVl9UQzg2QzAwMSBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JREVETUE9eQotQ09ORklHX0lERV9BUkNIX09CU09MRVRFX0lOSVQ9eQorIyBDT05GSUdfQkxLX0RFVl9IRF9PTkxZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JMS19ERVZfSEQgaXMgbm90IHNldAogCiAjCkBAIC02MzgsNyArNjQ2LDYgQEAKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NLWTIgaXMgbm90IHNldAotIyBDT05GSUdfU0s5OExJTiBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogIyBDT05GSUdfVElHT04zIGlzIG5vdCBzZXQKICMgQ09ORklHX0JOWDIgaXMgbm90IHNldApAQCAtNjU0LDYgKzY2MSw3IEBACiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKICMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtNjkwLDYgKzY5OCw3IEBACiAjIENoYXJhY3RlciBkZXZpY2VzCiAjCiAjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CiAjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogIyBDT05GSUdfTk9aT01JIGlzIG5vdCBzZXQKIApAQCAtNzE3LDcgKzcyNiw2IEBACiAjIENPTkZJR19JUE1JX0hBTkRMRVIgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTT1tCiBDT05GSUdfTlZSQU09eQotIyBDT05GSUdfR0VOX1JUQyBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKQEAgLTcyOCwxMyArNzM2LDYgQEAKIENPTkZJR19JMkNfQ0hBUkRFVj15CiAKICMKLSMgSTJDIEFsZ29yaXRobXMKLSMKLSMgQ09ORklHX0kyQ19BTEdPQklUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0kyQ19BTEdPUENBIGlzIG5vdCBzZXQKLQotIwogIyBJMkMgSGFyZHdhcmUgQnVzIHN1cHBvcnQKICMKICMgQ09ORklHX0kyQ19BTEkxNTM1IGlzIG5vdCBzZXQKQEAgLTc2MSw2ICs3NjIsNyBAQAogIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAogCiAjCiAjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydApAQCAtNzcwLDE5ICs3NzIsMTMgQEAKICMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKICMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUFM2NTAxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAogIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKICMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAogIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAotCi0jCi0jIFNQSSBzdXBwb3J0Ci0jCiAjIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XMSBpcyBub3Qgc2V0CiAjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAogIyBDT05GSUdfSFdNT04gaXMgbm90IHNldApAQCAtNzk5LDEyICs3OTUsMjIgQEAKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwpAQCAtODQxLDE2ICs4NDcsMjAgQEAKIENPTkZJR19VU0JfREVWSUNFX0NMQVNTPXkKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT1RHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfV0hJVEVMSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9PVEdfQkxBQ0tMSVNUX0hVQiBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKICMgQ09ORklHX1VTQl9FSENJX1JPT1RfSFVCX1RUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX1RUX05FV1NDSEVEIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9FSENJX0ZTTCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEX1BQQ19PRj15CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX09IQ0lfSENEX1BQQ19PRiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfT0hDSV9CSUdfRU5ESUFOX0RFU0MgaXMgbm90IHNldApAQCAtODY1LDYgKzg3NSw3IEBACiAjCiAjIENPTkZJR19VU0JfQUNNIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QUklOVEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9XRE0gaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTg4NSw2ICs4OTYsNyBAQAogIyBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9TVE9SQUdFX0tBUk1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtOTIyLDEwICs5MzQsMTIgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9JU0lHSFRGVyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX01NQyBpcyBub3Qgc2V0CiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19BQ0NFU1NJQklMSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORklOSUJBTkQgaXMgbm90IHNldAogIyBDT05GSUdfRURBQyBpcyBub3Qgc2V0CiBDT05GSUdfUlRDX0xJQj15CkBAIC05NzcsMTEgKzk5MSw4IEBACiAjCiAjIG9uLUNQVSBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9QUEMgaXMgbm90IHNldAogIyBDT05GSUdfRE1BREVWSUNFUyBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtMTAwMiwxMCArMTAxMyw5IEBACiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogQ09ORklHX1hGU19GUz1tCiAjIENPTkZJR19YRlNfUVVPVEEgaXMgbm90IHNldAotIyBDT05GSUdfWEZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19ETk9USUZZPXkKIENPTkZJR19JTk9USUZZPXkKQEAgLTExMzgsNiArMTE0OCw3IEBACiAjIExpYnJhcnkgcm91dGluZXMKICMKIENPTkZJR19CSVRSRVZFUlNFPXkKKyMgQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CkBAIC0xMTUwLDYgKzExNjEsNyBAQAogQ09ORklHX0hBU19JT01FTT15CiBDT05GSUdfSEFTX0lPUE9SVD15CiBDT05GSUdfSEFTX0RNQT15CitDT05GSUdfSEFWRV9MTUI9eQogCiAjCiAjIEtlcm5lbCBoYWNraW5nCkBAIC0xMTU3LDYgKzExNjksNyBAQAogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAogIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CkBAIC0xMTY2LDYgKzExNzksNyBAQAogIyBDT05GSUdfU0xVQl9TVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19CVUdWRVJCT1NFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPT1RYX1RFWFQgaXMgbm90IHNldAogIyBDT05GSUdfUFBDX0VBUkxZX0RFQlVHIGlzIG5vdCBzZXQKIApAQCAtMTE4MSwzICsxMTk1LDQgQEAKIENPTkZJR19BU1lOQ19YT1I9eQogIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQQ19DTE9DSyBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUVUFMSVpBVElPTiBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9NYWtlZmlsZQppbmRleCAyMzQ2ZDI3Li5mM2Y1ZTI2IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvTWFrZWZpbGUKQEAgLTEyLDYgKzEyLDE4IEBACiBDRkxBR1NfYnRleHQubwkJKz0gLWZQSUMKIGVuZGlmCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHRyYWNlIGVhcmx5IGJvb3QgY29kZQorQ0ZMQUdTX1JFTU9WRV9jcHV0YWJsZS5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3Byb21faW5pdC5vID0gLXBnCisKK2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorIyBkeW5hbWljIGZ0cmFjZSBzZXR1cC4KK0NGTEFHU19SRU1PVkVfZnRyYWNlLm8gPSAtcGcKK2VuZGlmCisKK2VuZGlmCisKIG9iai15CQkJCTo9IGNwdXRhYmxlLm8gcHRyYWNlLm8gc3lzY2FsbHMubyBcCiAJCQkJICAgaXJxLm8gYWxpZ24ubyBzaWduYWxfMzIubyBwbWMubyB2ZHNvLm8gXAogCQkJCSAgIGluaXRfdGFzay5vIHByb2Nlc3MubyBzeXN0YmwubyBpZGxlLm8gXApAQCAtNzgsNiArOTAsOCBAQAogb2JqLSQoQ09ORklHX0FVRElUKQkJKz0gYXVkaXQubwogb2JqNjQtJChDT05GSUdfQVVESVQpCQkrPSBjb21wYXRfYXVkaXQubwogCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpCSs9IGZ0cmFjZS5vCisKIG9iai0kKENPTkZJR184WFhfTUlOSU1BTF9GUEVNVSkgKz0gc29mdGVtdTh4eC5vCiAKIGlmbmVxICgkKENPTkZJR19QUENfSU5ESVJFQ1RfSU8pLHkpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzMyLlMKaW5kZXggMGM4NjE0ZC4uNzIzMWE3MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV8zMi5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfMzIuUwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9wcGNfYXNtLmg+CiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KIAogI3VuZGVmIFNIT1dfU1lTQ0FMTFMKICN1bmRlZiBTSE9XX1NZU0NBTExTX1RBU0sKQEAgLTEwMzUsMyArMTAzNiwxMjkgQEAKIAkvKiBYWFggbG9hZCB1cCBCQVRzIGFuZCBwYW5pYyAqLwogCiAjZW5kaWYgLyogQ09ORklHX1BQQ19SVEFTICovCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCitfR0xPQkFMKG1jb3VudCkKK19HTE9CQUwoX21jb3VudCkKKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlzdHcJcjcsIDI4KHIxKQorCW1mY3IJcjUKKwlzdHcJcjgsIDMyKHIxKQorCXN0dwlyOSwgMzYocjEpCisJc3R3CXIxMCw0MChyMSkKKwlzdHcJcjMsIDQ0KHIxKQorCXN0dwlyNSwgOChyMSkKKwlzdWJpCXIzLCByMywgTUNPVU5UX0lOU05fU0laRQorCS5nbG9ibCBtY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJYmwJZnRyYWNlX3N0dWIKKwlub3AKKwlsd3oJcjYsIDgocjEpCisJbHd6CXIwLCA0NChyMSkKKwlsd3oJcjMsIDEyKHIxKQorCW10Y3RyCXIwCisJbHd6CXI0LCAxNihyMSkKKwltdGNyCXI2CisJbHd6CXI1LCAyMChyMSkKKwlsd3oJcjYsIDI0KHIxKQorCWx3eglyMCwgNTIocjEpCisJbHd6CXI3LCAyOChyMSkKKwlsd3oJcjgsIDMyKHIxKQorCW10bHIJcjAKKwlsd3oJcjksIDM2KHIxKQorCWx3eglyMTAsNDAocjEpCisJYWRkaQlyMSwgcjEsIDQ4CisJYmN0cgorCitfR0xPQkFMKGZ0cmFjZV9jYWxsZXIpCisJLyogQmFzZWQgb2ZmIG9mIG9iamR1bXAgb3B0cHV0IGZyb20gZ2xpYmMgKi8KKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlsd3oJcjQsIDUyKHIxKQorCW1mY3IJcjUKKwlzdHcJcjcsIDI4KHIxKQorCXN0dwlyOCwgMzIocjEpCisJc3R3CXI5LCAzNihyMSkKKwlzdHcJcjEwLDQwKHIxKQorCXN0dwlyMywgNDQocjEpCisJc3R3CXI1LCA4KHIxKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWJsCWZ0cmFjZV9zdHViCisJbm9wCisJbHd6CXI2LCA4KHIxKQorCWx3eglyMCwgNDQocjEpCisJbHd6CXIzLCAxMihyMSkKKwltdGN0cglyMAorCWx3eglyNCwgMTYocjEpCisJbXRjcglyNgorCWx3eglyNSwgMjAocjEpCisJbHd6CXI2LCAyNChyMSkKKwlsd3oJcjAsIDUyKHIxKQorCWx3eglyNywgMjgocjEpCisJbHd6CXI4LCAzMihyMSkKKwltdGxyCXIwCisJbHd6CXI5LCAzNihyMSkKKwlsd3oJcjEwLDQwKHIxKQorCWFkZGkJcjEsIHIxLCA0OAorCWJjdHIKKyNlbHNlCitfR0xPQkFMKG1jb3VudCkKK19HTE9CQUwoX21jb3VudCkKKwlzdHd1CXIxLC00OChyMSkKKwlzdHcJcjMsIDEyKHIxKQorCXN0dwlyNCwgMTYocjEpCisJc3R3CXI1LCAyMChyMSkKKwlzdHcJcjYsIDI0KHIxKQorCW1mbHIJcjMKKwlsd3oJcjQsIDUyKHIxKQorCW1mY3IJcjUKKwlzdHcJcjcsIDI4KHIxKQorCXN0dwlyOCwgMzIocjEpCisJc3R3CXI5LCAzNihyMSkKKwlzdHcJcjEwLDQwKHIxKQorCXN0dwlyMywgNDQocjEpCisJc3R3CXI1LCA4KHIxKQorCisJc3ViaQlyMywgcjMsIE1DT1VOVF9JTlNOX1NJWkUKKwlMT0FEX1JFR19BRERSKHI1LCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24pCisJbHd6CXI1LDAocjUpCisKKwltdGN0cglyNQorCWJjdHJsCisKKwlub3AKKworCWx3eglyNiwgOChyMSkKKwlsd3oJcjAsIDQ0KHIxKQorCWx3eglyMywgMTIocjEpCisJbXRjdHIJcjAKKwlsd3oJcjQsIDE2KHIxKQorCW10Y3IJcjYKKwlsd3oJcjUsIDIwKHIxKQorCWx3eglyNiwgMjQocjEpCisJbHd6CXIwLCA1MihyMSkKKwlsd3oJcjcsIDI4KHIxKQorCWx3eglyOCwgMzIocjEpCisJbXRscglyMAorCWx3eglyOSwgMzYocjEpCisJbHd6CXIxMCw0MChyMSkKKwlhZGRpCXIxLCByMSwgNDgKKwliY3RyCisjZW5kaWYKKworX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKworI2VuZGlmIC8qIENPTkZJR19NQ09VTlQgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvZW50cnlfNjQuUwppbmRleCBjMGRiNWI3Li4yZjUxMWE5IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2VudHJ5XzY0LlMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9lbnRyeV82NC5TCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8YXNtL2J1Zy5oPgogI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KICNpbmNsdWRlIDxhc20vaXJxZmxhZ3MuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CiAKIC8qCiAgKiBTeXN0ZW0gY2FsbHMuCkBAIC04NzAsMyArODcxLDY3IEBACiAJbGQJcjAsMTYocjEpCiAJbXRsciAgICByMAogICAgICAgICBibHIKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK19HTE9CQUwobWNvdW50KQorX0dMT0JBTChfbWNvdW50KQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlzdGR1CXIxLCAtMTEyKHIxKQorCXN0ZAlyMywgMTI4KHIxKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisJLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwlibAlmdHJhY2Vfc3R1YgorCW5vcAorCWxkCXIwLCAxMjgocjEpCisJbXRscglyMAorCWFkZGkJcjEsIHIxLCAxMTIKKwlibHIKKworX0dMT0JBTChmdHJhY2VfY2FsbGVyKQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlsZAlyMTEsIDAocjEpCisJc3RkdQlyMSwgLTExMihyMSkKKwlzdGQJcjMsIDEyOChyMSkKKwlsZAlyNCwgMTYocjExKQorCXN1YmkJcjMsIHIzLCBNQ09VTlRfSU5TTl9TSVpFCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWJsCWZ0cmFjZV9zdHViCisJbm9wCisJbGQJcjAsIDEyOChyMSkKKwltdGxyCXIwCisJYWRkaQlyMSwgcjEsIDExMgorX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKyNlbHNlCitfR0xPQkFMKG1jb3VudCkKKwlibHIKKworX0dMT0JBTChfbWNvdW50KQorCS8qIFRha2VuIGZyb20gb3V0cHV0IG9mIG9iamR1bXAgZnJvbSBsaWI2NC9nbGliYyAqLworCW1mbHIJcjMKKwlsZAlyMTEsIDAocjEpCisJc3RkdQlyMSwgLTExMihyMSkKKwlzdGQJcjMsIDEyOChyMSkKKwlsZAlyNCwgMTYocjExKQorCisJc3ViaQlyMywgcjMsIE1DT1VOVF9JTlNOX1NJWkUKKwlMT0FEX1JFR19BRERSKHI1LGZ0cmFjZV90cmFjZV9mdW5jdGlvbikKKwlsZAlyNSwwKHI1KQorCWxkCXI1LDAocjUpCisJbXRjdHIJcjUKKwliY3RybAorCisJbm9wCisJbGQJcjAsIDEyOChyMSkKKwltdGxyCXIwCisJYWRkaQlyMSwgcjEsIDExMgorX0dMT0JBTChmdHJhY2Vfc3R1YikKKwlibHIKKworI2VuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvZnRyYWNlLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NTVjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2Z0cmFjZS5jCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogQ29kZSBmb3IgcmVwbGFjaW5nIGZ0cmFjZSBjYWxscyB3aXRoIGp1bXBzLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICoKKyAqIFRoYW5rcyBnb2VzIG91dCB0byBQLkEuIFNlbWksIEluYyBmb3Igc3VwcGx5aW5nIG1lIHdpdGggYSBQUEM2NCBib3guCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2hhcmRpcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKworc3RhdGljIHVuc2lnbmVkIGludCBmdHJhY2Vfbm9wID0gMHg2MDAwMDAwMDsKKworI2lmZGVmIENPTkZJR19QUEMzMgorIyBkZWZpbmUgR0VUX0FERFIoYWRkcikgYWRkcgorI2Vsc2UKKy8qIFBvd2VyUEM2NCdzIGZ1bmN0aW9ucyBhcmUgZGF0YSB0aGF0IHBvaW50cyB0byB0aGUgZnVuY3Rpb25zICovCisjIGRlZmluZSBHRVRfQUREUihhZGRyKSAqKHVuc2lnbmVkIGxvbmcgKilhZGRyCisjZW5kaWYKKworCitzdGF0aWMgdW5zaWduZWQgaW50IG5vdHJhY2UgZnRyYWNlX2NhbGNfb2Zmc2V0KGxvbmcgaXAsIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKGludCkoYWRkciAtIGlwKTsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKikmZnRyYWNlX25vcDsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdGF0aWMgdW5zaWduZWQgaW50IG9wOworCisJLyoKKwkgKiBJdCB3b3VsZCBiZSBuaWNlIHRvIGp1c3QgdXNlIGNyZWF0ZV9mdW5jdGlvbl9jYWxsLCBidXQgdGhhdCB3aWxsCisJICogdXBkYXRlIHRoZSBjb2RlIGl0c2VsZi4gSGVyZSB3ZSBuZWVkIHRvIGp1c3QgcmV0dXJuIHRoZQorCSAqIGluc3RydWN0aW9uIHRoYXQgaXMgZ29pbmcgdG8gYmUgbW9kaWZpZWQsIHdpdGhvdXQgbW9kaWZ5aW5nIHRoZQorCSAqIGNvZGUuCisJICovCisJYWRkciA9IEdFVF9BRERSKGFkZHIpOworCisJLyogU2V0IHRvICJibCBhZGRyIiAqLworCW9wID0gMHg0ODAwMDAwMSB8IChmdHJhY2VfY2FsY19vZmZzZXQoaXAsIGFkZHIpICYgMHgwM2ZmZmZmYyk7CisKKwkvKgorCSAqIE5vIGxvY2tpbmcgbmVlZGVkLCB0aGlzIG11c3QgYmUgY2FsbGVkIHZpYSBrc3RvcF9tYWNoaW5lCisJICogd2hpY2ggaW4gZXNzZW5jZSBpcyBsaWtlIHJ1bm5pbmcgb24gYSB1bmlwcm9jZXNzb3IgbWFjaGluZS4KKwkgKi8KKwlyZXR1cm4gKHVuc2lnbmVkIGNoYXIgKikmb3A7Cit9CisKKyNpZmRlZiBDT05GSUdfUFBDNjQKKyMgZGVmaW5lIF9BU01fQUxJR04JIiAuYWxpZ24gMyAiCisjIGRlZmluZSBfQVNNX1BUUgkiIC5sbG9uZyAiCisjZWxzZQorIyBkZWZpbmUgX0FTTV9BTElHTgkiIC5hbGlnbiAyICIKKyMgZGVmaW5lIF9BU01fUFRSCSIgLmxvbmcgIgorI2VuZGlmCisKK25vdHJhY2UgaW50CitmdHJhY2VfbW9kaWZ5X2NvZGUodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgY2hhciAqb2xkX2NvZGUsCisJCSAgIHVuc2lnbmVkIGNoYXIgKm5ld19jb2RlKQoreworCXVuc2lnbmVkIHJlcGxhY2VkOworCXVuc2lnbmVkIG9sZCA9ICoodW5zaWduZWQgKilvbGRfY29kZTsKKwl1bnNpZ25lZCBuZXcgPSAqKHVuc2lnbmVkICopbmV3X2NvZGU7CisJaW50IGZhdWx0ZWQgPSAwOworCisJLyoKKwkgKiBOb3RlOiBEdWUgdG8gbW9kdWxlcyBhbmQgX19pbml0LCBjb2RlIGNhbgorCSAqICBkaXNhcHBlYXIgYW5kIGNoYW5nZSwgd2UgbmVlZCB0byBwcm90ZWN0IGFnYWluc3QgZmF1bHRpbmcKKwkgKiAgYXMgd2VsbCBhcyBjb2RlIGNoYW5naW5nLgorCSAqCisJICogTm8gcmVhbCBsb2NraW5nIG5lZWRlZCwgdGhpcyBjb2RlIGlzIHJ1biB0aHJvdWdoCisJICoga3N0b3BfbWFjaGluZS4KKwkgKi8KKwlhc20gdm9sYXRpbGUgKAorCQkiMTogbHd6CQklMSwgMCglMilcbiIKKwkJIiAgIGNtcHcJJTEsICU1XG4iCisJCSIgICBibmUJCTJmXG4iCisJCSIgICBzdHd1CSUzLCAwKCUyKVxuIgorCQkiMjpcbiIKKwkJIi5zZWN0aW9uIC5maXh1cCwgXCJheFwiXG4iCisJCSIzOglsaSAlMCwgMVxuIgorCQkiCWIgMmJcbiIKKwkJIi5wcmV2aW91c1xuIgorCQkiLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIgorCQlfQVNNX0FMSUdOICJcbiIKKwkJX0FTTV9QVFIgIjFiLCAzYlxuIgorCQkiLnByZXZpb3VzIgorCQk6ICI9ciIoZmF1bHRlZCksICI9ciIocmVwbGFjZWQpCisJCTogInIiKGlwKSwgInIiKG5ldyksCisJCSAgIjAiKGZhdWx0ZWQpLCAiciIob2xkKQorCQk6ICJtZW1vcnkiKTsKKworCWlmIChyZXBsYWNlZCAhPSBvbGQgJiYgcmVwbGFjZWQgIT0gbmV3KQorCQlmYXVsdGVkID0gMjsKKworCWlmICghZmF1bHRlZCkKKwkJZmx1c2hfaWNhY2hlX3JhbmdlKGlwLCBpcCArIDgpOworCisJcmV0dXJuIGZhdWx0ZWQ7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV91cGRhdGVfZnRyYWNlX2Z1bmMoZnRyYWNlX2Z1bmNfdCBmdW5jKQoreworCXVuc2lnbmVkIGxvbmcgaXAgPSAodW5zaWduZWQgbG9uZykoJmZ0cmFjZV9jYWxsKTsKKwl1bnNpZ25lZCBjaGFyIG9sZFtNQ09VTlRfSU5TTl9TSVpFXSwgKm5ldzsKKwlpbnQgcmV0OworCisJbWVtY3B5KG9sZCwgJmZ0cmFjZV9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAodW5zaWduZWQgbG9uZylmdW5jKTsKKwlyZXQgPSBmdHJhY2VfbW9kaWZ5X2NvZGUoaXAsIG9sZCwgbmV3KTsKKworCXJldHVybiByZXQ7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9IChsb25nKSgmbWNvdW50X2NhbGwpOworCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCisJLyoKKwkgKiBSZXBsYWNlIHRoZSBtY291bnQgc3R1YiB3aXRoIGEgcG9pbnRlciB0byB0aGUKKwkgKiBpcCByZWNvcmRlciBmdW5jdGlvbi4KKwkgKi8KKwltZW1jcHkob2xkLCAmbWNvdW50X2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICphZGRyKTsKKwkqYWRkciA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCBfX2luaXQgZnRyYWNlX2R5bl9hcmNoX2luaXQodm9pZCAqZGF0YSkKK3sKKwkvKiBUaGlzIGlzIHJ1bm5pbmcgaW4ga3N0b3BfbWFjaGluZSAqLworCisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisKKwlyZXR1cm4gMDsKK30KKwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzQ0eC5TIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9oZWFkXzQ0eC5TCmluZGV4IGMyYjlkYzQuLjIyYjVkMmMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF80NHguUworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2hlYWRfNDR4LlMKQEAgLTM2OCw3ICszNjgsMTIgQEAKIAogCXJsd2ltaQlyMTEscjEzLDAsMjYsMzEJCS8qIEluc2VydCBzdGF0aWMgcGVybXMgKi8KIAotCXJsd2lubQlyMTEscjExLDAsMjAsMTUJCS8qIENsZWFyIFUwLVUzICovCisJLyoKKwkgKiBDbGVhciBVMC1VMyBhbmQgV0wxIElMMUkgSUwxRCBJTDJJIElMMkQgYml0cyB3aGljaCBhcmUgYWRkZWQKKwkgKiBvbiBuZXdlciA0NDAgY29yZXMgbGlrZSB0aGUgNDQweDYgdXNlZCBvbiBBTUNDIDQ2MEVYLzQ2MEdUIChzZWUKKwkgKiBpbmNsdWRlL2FzbS1wb3dlcnBjL3BndGFibGUtcHBjMzIuaCBmb3IgZGV0YWlscykuCisJICovCisJcmx3aW5tCXIxMSxyMTEsMCwyMCwxMAogCiAJLyogZmluZCB0aGUgVExCIGluZGV4IHRoYXQgY2F1c2VkIHRoZSBmYXVsdC4gIEl0IGhhcyB0byBiZSBoZXJlLiAqLwogCXRsYnN4CXIxMCwgMCwgcjEwCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2lvLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lvLmMKaW5kZXggZTMxYWNhOTIuLjE4ODJiZjQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvaW8uYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2lvLmMKQEAgLTEyMCw3ICsxMjAsOCBAQAogCiAjZGVmaW5lIElPX0NIRUNLX0FMSUdOKHYsYSkgKCgoKHVuc2lnbmVkIGxvbmcpKHYpKSAmICgoYSkgLSAxKSkgPT0gMCkKIAotdm9pZCBfbWVtc2V0X2lvKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkciwgaW50IGMsIHVuc2lnbmVkIGxvbmcgbikKK25vdHJhY2Ugdm9pZAorX21lbXNldF9pbyh2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIsIGludCBjLCB1bnNpZ25lZCBsb25nIG4pCiB7CiAJdm9pZCAqcCA9ICh2b2lkIF9fZm9yY2UgKilhZGRyOwogCXUzMiBsYyA9IGM7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2lycS5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9pcnEuYwppbmRleCAyZjczZjcwLi5kY2M5NDZlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2lycS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaXJxLmMKQEAgLTk4LDcgKzk4LDcgQEAKIAogaW50IGRpc3RyaWJ1dGVfaXJxcyA9IDE7CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfaGFyZF9lbmFibGVkKHZvaWQpCitzdGF0aWMgaW5saW5lIG5vdHJhY2UgdW5zaWduZWQgbG9uZyBnZXRfaGFyZF9lbmFibGVkKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBlbmFibGVkOwogCkBAIC0xMDgsMTMgKzEwOCwxMyBAQAogCXJldHVybiBlbmFibGVkOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3NvZnRfZW5hYmxlZCh1bnNpZ25lZCBsb25nIGVuYWJsZSkKK3N0YXRpYyBpbmxpbmUgbm90cmFjZSB2b2lkIHNldF9zb2Z0X2VuYWJsZWQodW5zaWduZWQgbG9uZyBlbmFibGUpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0YiAlMCwlMSgxMykiCiAJOiA6ICJyIiAoZW5hYmxlKSwgImkiIChvZmZzZXRvZihzdHJ1Y3QgcGFjYV9zdHJ1Y3QsIHNvZnRfZW5hYmxlZCkpKTsKIH0KIAotdm9pZCByYXdfbG9jYWxfaXJxX3Jlc3RvcmUodW5zaWduZWQgbG9uZyBlbikKK25vdHJhY2Ugdm9pZCByYXdfbG9jYWxfaXJxX3Jlc3RvcmUodW5zaWduZWQgbG9uZyBlbikKIHsKIAkvKgogCSAqIGdldF9wYWNhKCktPnNvZnRfZW5hYmxlZCA9IGVuOwpAQCAtMTA3Myw3ICsxMDczLDcgQEAKIHN0YXRpYyBpbnQgX19pbml0IGlycV9kZWJ1Z2ZzX2luaXQodm9pZCkKIHsKIAlpZiAoZGVidWdmc19jcmVhdGVfZmlsZSgidmlycV9tYXBwaW5nIiwgU19JUlVHTywgcG93ZXJwY19kZWJ1Z2ZzX3Jvb3QsCi0JCQkJIE5VTEwsICZ2aXJxX2RlYnVnX2ZvcHMpKQorCQkJCSBOVUxMLCAmdmlycV9kZWJ1Z19mb3BzKSA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL2xlZ2FjeV9zZXJpYWwuYwppbmRleCA2MWRkMTc0Li40ZDk2ZTFkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL2xlZ2FjeV9zZXJpYWwuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL2xlZ2FjeV9zZXJpYWwuYwpAQCAtMzMsMTMgKzMzLDE0IEBACiAJcGh5c19hZGRyX3QJCQl0YWRkcjsKIH0gbGVnYWN5X3NlcmlhbF9pbmZvc1tNQVhfTEVHQUNZX1NFUklBTF9QT1JUU107CiAKLXN0YXRpYyBzdHJ1Y3QgX19pbml0ZGF0YSBvZl9kZXZpY2VfaWQgcGFyZW50c1tdID0geworc3RhdGljIHN0cnVjdCBfX2luaXRkYXRhIG9mX2RldmljZV9pZCBsZWdhY3lfc2VyaWFsX3BhcmVudHNbXSA9IHsKIAl7LnR5cGUgPSAic29jIix9LAogCXsudHlwZSA9ICJ0c2ktYnJpZGdlIix9LAogCXsudHlwZSA9ICJvcGIiLCB9LAogCXsuY29tcGF0aWJsZSA9ICJpYm0sb3BiIix9LAogCXsuY29tcGF0aWJsZSA9ICJzaW1wbGUtYnVzIix9LAogCXsuY29tcGF0aWJsZSA9ICJ3cnMsZXBsZC1sb2NhbGJ1cyIsfSwKKwl7fSwKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbGVnYWN5X3NlcmlhbF9jb3VudDsKQEAgLTEzNiw2ICsxMzcsMTEgQEAKIAlpZiAob2ZfZ2V0X3Byb3BlcnR5KG5wLCAiY2xvY2stZnJlcXVlbmN5IiwgTlVMTCkgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwogCisJLyogaWYgcmVnLXNoaWZ0IG9yIG9mZnNldCwgZG9uJ3QgdHJ5IHRvIHVzZSBpdCAqLworCWlmICgob2ZfZ2V0X3Byb3BlcnR5KG5wLCAicmVnLXNoaWZ0IiwgTlVMTCkgIT0gTlVMTCkgfHwKKwkJKG9mX2dldF9wcm9wZXJ0eShucCwgInJlZy1vZmZzZXQiLCBOVUxMKSAhPSBOVUxMKSkKKwkJcmV0dXJuIC0xOworCiAJLyogaWYgcnRhcyB1c2VzIHRoaXMgZGV2aWNlLCBkb24ndCB0cnkgdG8gdXNlIGl0IGFzIHdlbGwgKi8KIAlpZiAob2ZfZ2V0X3Byb3BlcnR5KG5wLCAidXNlZC1ieS1ydGFzIiwgTlVMTCkgIT0gTlVMTCkKIAkJcmV0dXJuIC0xOwpAQCAtMzIyLDcgKzMyOCw3IEBACiAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFyZW50ID0gb2ZfZ2V0X3BhcmVudChucCk7CiAJCWlmICghcGFyZW50KQogCQkJY29udGludWU7Ci0JCWlmIChvZl9tYXRjaF9ub2RlKHBhcmVudHMsIHBhcmVudCkgIT0gTlVMTCkgeworCQlpZiAob2ZfbWF0Y2hfbm9kZShsZWdhY3lfc2VyaWFsX3BhcmVudHMsIHBhcmVudCkgIT0gTlVMTCkgewogCQkJaW5kZXggPSBhZGRfbGVnYWN5X3NvY19wb3J0KG5wLCBucCk7CiAJCQlpZiAoaW5kZXggPj0gMCAmJiBucCA9PSBzdGRvdXQpCiAJCQkJbGVnYWN5X3NlcmlhbF9jb25zb2xlID0gaW5kZXg7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL29mX3BsYXRmb3JtLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL29mX3BsYXRmb3JtLmMKaW5kZXggZTc5YWQ4YS4uM2YzN2E2ZSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfcGxhdGZvcm0uYwpAQCAtNzYsNiArNzYsOCBAQAogCQlyZXR1cm4gTlVMTDsKIAogCWRldi0+ZG1hX21hc2sgPSAweGZmZmZmZmZmVUw7CisJZGV2LT5kZXYuY29oZXJlbnRfZG1hX21hc2sgPSBETUFfMzJCSVRfTUFTSzsKKwogCWRldi0+ZGV2LmJ1cyA9ICZvZl9wbGF0Zm9ybV9idXNfdHlwZTsKIAogCS8qIFdlIGRvIG5vdCBmaWxsIHRoZSBETUEgb3BzIGZvciBwbGF0Zm9ybSBkZXZpY2VzIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV82NC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfNjQuYwppbmRleCA1Mjc1MDc0Li4zMGVlZGZjIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaV82NC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzY0LmMKQEAgLTE4OSw3ICsxODksNyBAQAogCiAJZGV2LT5jZmdfc2l6ZSA9IHBjaV9jZmdfc3BhY2Vfc2l6ZShkZXYpOwogCi0Jc3ByaW50ZihwY2lfbmFtZShkZXYpLCAiJTA0eDolMDJ4OiUwMnguJWQiLCBwY2lfZG9tYWluX25yKGJ1cyksCisJZGV2X3NldF9uYW1lKCZkZXYtPmRldiwgIiUwNHg6JTAyeDolMDJ4LiVkIiwgcGNpX2RvbWFpbl9ucihidXMpLAogCQlkZXYtPmJ1cy0+bnVtYmVyLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAJZGV2LT5jbGFzcyA9IGdldF9pbnRfcHJvcChub2RlLCAiY2xhc3MtY29kZSIsIDApOwogCWRldi0+cmV2aXNpb24gPSBnZXRfaW50X3Byb3Aobm9kZSwgInJldmlzaW9uLWlkIiwgMCk7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3BwY19rc3ltcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcGNfa3N5bXMuYwppbmRleCBjZjZiNWE3Li5hOGQwMjUwIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3BwY19rc3ltcy5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHBjX2tzeW1zLmMKQEAgLTgsNyArOCw2IEBACiAjaW5jbHVkZSA8bGludXgvc2NyZWVuX2luZm8uaD4KICNpbmNsdWRlIDxsaW51eC92dF9rZXJuLmg+CiAjaW5jbHVkZSA8bGludXgvbnZyYW0uaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTQzLDYgKzQyLDcgQEAKICNpbmNsdWRlIDxhc20vZGl2NjQuaD4KICNpbmNsdWRlIDxhc20vc2lnbmFsLmg+CiAjaW5jbHVkZSA8YXNtL2Rjci5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KIAogI2lmZGVmIENPTkZJR19QUEMzMgogZXh0ZXJuIHZvaWQgdHJhbnNmZXJfdG9faGFuZGxlcih2b2lkKTsKQEAgLTY4LDYgKzY4LDEwIEBACiBFWFBPUlRfU1lNQk9MKHN5c19zaWdyZXR1cm4pOwogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitFWFBPUlRfU1lNQk9MKF9tY291bnQpOworI2VuZGlmCisKIEVYUE9SVF9TWU1CT0woc3RyY3B5KTsKIEVYUE9SVF9TWU1CT0woc3RybmNweSk7CiBFWFBPUlRfU1lNQk9MKHN0cmNhdCk7CkBAIC0xNjAsNyArMTY0LDYgQEAKIEVYUE9SVF9TWU1CT0wodGltZXJfaW50ZXJydXB0KTsKIEVYUE9SVF9TWU1CT0woaXJxX2Rlc2MpOwogRVhQT1JUX1NZTUJPTCh0Yl90aWNrc19wZXJfamlmZnkpOwotRVhQT1JUX1NZTUJPTChjb25zb2xlX2RyaXZlcnMpOwogRVhQT1JUX1NZTUJPTChjYWNoZWFibGVfbWVtY3B5KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3Byb21faW5pdF9jaGVjay5zaCBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbV9pbml0X2NoZWNrLnNoCmluZGV4IDhlMjRmYzEuLjJjN2U4ZTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbV9pbml0X2NoZWNrLnNoCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvbV9pbml0X2NoZWNrLnNoCkBAIC0yMCw3ICsyMCw3IEBACiBfZW5kIGVudGVyX3Byb20gbWVtY3B5IG1lbXNldCByZWxvY19vZmZzZXQgX19zZWNvbmRhcnlfaG9sZAogX19zZWNvbmRhcnlfaG9sZF9hY2tub3dsZWRnZSBfX3NlY29uZGFyeV9ob2xkX3NwaW5sb29wIF9fc3RhcnQKIHN0cmNtcCBzdHJjcHkgc3RybGNweSBzdHJsZW4gc3RybmNtcCBzdHJzdHIgbG9nb19saW51eF9jbHV0MjI0Ci1yZWxvY19nb3QyIgorcmVsb2NfZ290MiBrZXJuc3RhcnRfYWRkciIKIAogTk09IiQxIgogT0JKPSIkMiIKQEAgLTQ4LDYgKzQ4LDIwIEBACiAJCWZpCiAJZG9uZQogCisJIyBpZ25vcmUgcmVnaXN0ZXIgc2F2ZS9yZXN0b3JlIGZ1bmNpdG9ucworCWlmIFsgIiR7VU5ERUY6MDo5fSIgPSAiX3Jlc3RncHJfIiBdOyB0aGVuCisJCU9LPTEKKwlmaQorCWlmIFsgIiR7VU5ERUY6MDoxMX0iID0gIl9yZXN0MzJncHJfIiBdOyB0aGVuCisJCU9LPTEKKwlmaQorCWlmIFsgIiR7VU5ERUY6MDo5fSIgPSAiX3NhdmVncHJfIiBdOyB0aGVuCisJCU9LPTEKKwlmaQorCWlmIFsgIiR7VU5ERUY6MDoxMX0iID0gIl9zYXZlMzJncHJfIiBdOyB0aGVuCisJCU9LPTEKKwlmaQorCiAJaWYgWyAkT0sgLWVxIDAgXTsgdGhlbgogCQlFUlJPUj0xCiAJCWVjaG8gIkVycm9yOiBFeHRlcm5hbCBzeW1ib2wgJyRVTkRFRicgcmVmZXJlbmNlZCIgXApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF8zMi5jCmluZGV4IDUxMTJhNGEuLjE5ZThmY2IgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfMzIuYworKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzMyLmMKQEAgLTgxLDcgKzgxLDcgQEAKICAqIGZyb20gdGhlIGFkZHJlc3MgdGhhdCBpdCB3YXMgbGlua2VkIGF0LCBzbyB3ZSBtdXN0IHVzZSBSRUxPQy9QVFJSRUxPQwogICogdG8gYWNjZXNzIHN0YXRpYyBkYXRhIChpbmNsdWRpbmcgc3RyaW5ncykuICAtLSBwYXVsdXMKICAqLwotdW5zaWduZWQgbG9uZyBfX2luaXQgZWFybHlfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0cikKK25vdHJhY2UgdW5zaWduZWQgbG9uZyBfX2luaXQgZWFybHlfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0cikKIHsKIAl1bnNpZ25lZCBsb25nIG9mZnNldCA9IHJlbG9jX29mZnNldCgpOwogCXN0cnVjdCBjcHVfc3BlYyAqc3BlYzsKQEAgLTExMSw3ICsxMTEsNyBAQAogICogVGhpcyBpcyBjYWxsZWQgdmVyeSBlYXJseSBvbiB0aGUgYm9vdCBwcm9jZXNzLCBhZnRlciBhIG1pbmltYWwKICAqIE1NVSBlbnZpcm9ubWVudCBoYXMgYmVlbiBzZXQgdXAgYnV0IGJlZm9yZSBNTVVfaW5pdCBpcyBjYWxsZWQuCiAgKi8KLXZvaWQgX19pbml0IG1hY2hpbmVfaW5pdCh1bnNpZ25lZCBsb25nIGR0X3B0ciwgdW5zaWduZWQgbG9uZyBwaHlzKQorbm90cmFjZSB2b2lkIF9faW5pdCBtYWNoaW5lX2luaXQodW5zaWduZWQgbG9uZyBkdF9wdHIsIHVuc2lnbmVkIGxvbmcgcGh5cykKIHsKIAkvKiBFbmFibGUgZWFybHkgZGVidWdnaW5nIGlmIGFueSBzcGVjaWZpZWQgKHNlZSB1ZGJnLmgpICovCiAJdWRiZ19lYXJseV9pbml0KCk7CkBAIC0xMzMsNyArMTMzLDcgQEAKIAogI2lmZGVmIENPTkZJR19CT09LRV9XRFQKIC8qIENoZWNrcyB3ZHQ9eCBhbmQgd2R0X3BlcmlvZD14eCBjb21tYW5kLWxpbmUgb3B0aW9uICovCi1pbnQgX19pbml0IGVhcmx5X3BhcnNlX3dkdChjaGFyICpwKQorbm90cmFjZSBpbnQgX19pbml0IGVhcmx5X3BhcnNlX3dkdChjaGFyICpwKQogewogCWlmIChwICYmIHN0cm5jbXAocCwgIjAiLCAxKSAhPSAwKQogCSAgICAgICBib29rZV93ZHRfZW5hYmxlZCA9IDE7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3NpZ25hbF82NC5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zaWduYWxfNjQuYwppbmRleCBmYWViOGYyLi5kYTdjMDU4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3NpZ25hbF82NC5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2lnbmFsXzY0LmMKQEAgLTg3LDYgKzg3LDcgQEAKICNpZmRlZiBDT05GSUdfQUxUSVZFQwogCWVsZl92cnJlZ190IF9fdXNlciAqdl9yZWdzID0gKGVsZl92cnJlZ190IF9fdXNlciAqKSgoKHVuc2lnbmVkIGxvbmcpc2MtPnZteF9yZXNlcnZlICsgMTUpICYgfjB4ZnVsKTsKICNlbmRpZgorCXVuc2lnbmVkIGxvbmcgbXNyID0gcmVncy0+bXNyOwogCWxvbmcgZXJyID0gMDsKIAogCWZsdXNoX2ZwX3RvX3RocmVhZChjdXJyZW50KTsKQEAgLTEwMiw3ICsxMDMsNyBAQAogCQkvKiBzZXQgTVNSX1ZFQyBpbiB0aGUgTVNSIHZhbHVlIGluIHRoZSBmcmFtZSB0byBpbmRpY2F0ZSB0aGF0IHNjLT52X3JlZykKIAkJICogY29udGFpbnMgdmFsaWQgZGF0YS4KIAkJICovCi0JCXJlZ3MtPm1zciB8PSBNU1JfVkVDOworCQltc3IgfD0gTVNSX1ZFQzsKIAl9CiAJLyogV2UgYWx3YXlzIGNvcHkgdG8vZnJvbSB2cnNhdmUsIGl0J3MgMCBpZiB3ZSBkb24ndCBoYXZlIG9yIGRvbid0CiAJICogdXNlIGFsdGl2ZWMuCkBAIC0xMTQsNiArMTE1LDcgQEAKIAllcnIgfD0gX19wdXRfdXNlcigmc2MtPmdwX3JlZ3MsICZzYy0+cmVncyk7CiAJV0FSTl9PTighRlVMTF9SRUdTKHJlZ3MpKTsKIAllcnIgfD0gX19jb3B5X3RvX3VzZXIoJnNjLT5ncF9yZWdzLCByZWdzLCBHUF9SRUdTX1NJWkUpOworCWVyciB8PSBfX3B1dF91c2VyKG1zciwgJnNjLT5ncF9yZWdzW1BUX01TUl0pOwogCWVyciB8PSBfX2NvcHlfdG9fdXNlcigmc2MtPmZwX3JlZ3MsICZjdXJyZW50LT50aHJlYWQuZnByLCBGUF9SRUdTX1NJWkUpOwogCWVyciB8PSBfX3B1dF91c2VyKHNpZ25yLCAmc2MtPnNpZ25hbCk7CiAJZXJyIHw9IF9fcHV0X3VzZXIoaGFuZGxlciwgJnNjLT5oYW5kbGVyKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvdmRzby5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvLmMKaW5kZXggYzIxYTYyNi4uY2UyNDVhOCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC92ZHNvLmMKQEAgLTE0Miw3ICsxNDIsNyBAQAogCXByaW50aygia3BnOiAlcCAoYzolZCxmOiUwOGx4KSIsIF9fdmEocGFnZV90b19wZm4ocGcpIDw8IFBBR0VfU0hJRlQpLAogCSAgICAgICBwYWdlX2NvdW50KHBnKSwKIAkgICAgICAgcGctPmZsYWdzKTsKLQlpZiAodXBnLyogJiYgcGcgIT0gdXBnKi8pIHsKKwlpZiAodXBnICYmICFJU19FUlIodXBnKSAvKiAmJiBwZyAhPSB1cGcqLykgewogCQlwcmludGsoIiB1cGc6ICVwIChjOiVkLGY6JTA4bHgpIiwgX192YShwYWdlX3RvX3Bmbih1cGcpCiAJCQkJCQkgICAgICAgPDwgUEFHRV9TSElGVCksCiAJCSAgICAgICBwYWdlX2NvdW50KHVwZyksCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3ZtbGludXgubGRzLlMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3ZtbGludXgubGRzLlMKaW5kZXggMGMzMDAwYi4uNTNkNTdkMSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC92bWxpbnV4Lmxkcy5TCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdm1saW51eC5sZHMuUwpAQCAtNjQsOCArNjQsNiBAQAogCiAJTk9URVMKIAotCUJVR19UQUJMRQotCiAvKgogICogSW5pdCBzZWN0aW9ucyBkaXNjYXJkZWQgYXQgcnVudGltZQogICovCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva3ZtLzQ0eF90bGIuYyBiL2FyY2gvcG93ZXJwYy9rdm0vNDR4X3RsYi5jCmluZGV4IGY1ZDdhNWUuLjc1ZGZmN2MgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vNDR4X3RsYi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rdm0vNDR4X3RsYi5jCkBAIC0xMTYsOCArMTE2LDYgQEAKIAlzdHJ1Y3QgdGxiZSAqc3RsYmUgPSAmdmNwdS0+YXJjaC5zaGFkb3dfdGxiW2luZGV4XTsKIAlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZjcHUtPmFyY2guc2hhZG93X3BhZ2VzW2luZGV4XTsKIAotCWt1bm1hcCh2Y3B1LT5hcmNoLnNoYWRvd19wYWdlc1tpbmRleF0pOwotCiAJaWYgKGdldF90bGJfdihzdGxiZSkpIHsKIAkJaWYgKGt2bXBwY180NHhfdGxiZV9pc193cml0YWJsZShzdGxiZSkpCiAJCQlrdm1fcmVsZWFzZV9wYWdlX2RpcnR5KHBhZ2UpOwpAQCAtMTQ0LDE4ICsxNDIsMTkgQEAKIAlzdGxiZSA9ICZ2Y3B1LT5hcmNoLnNoYWRvd190bGJbdmljdGltXTsKIAogCS8qIEdldCByZWZlcmVuY2UgdG8gbmV3IHBhZ2UuICovCi0JZG93bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKKwlkb3duX3JlYWQoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CiAJbmV3X3BhZ2UgPSBnZm5fdG9fcGFnZSh2Y3B1LT5rdm0sIGdmbik7CiAJaWYgKGlzX2Vycm9yX3BhZ2UobmV3X3BhZ2UpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQ291bGRuJ3QgZ2V0IGd1ZXN0IHBhZ2UhXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJDb3VsZG4ndCBnZXQgZ3Vlc3QgcGFnZSBmb3IgZ2ZuICVseCFcbiIsIGdmbik7CiAJCWt2bV9yZWxlYXNlX3BhZ2VfY2xlYW4obmV3X3BhZ2UpOworCQl1cF9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCQlyZXR1cm47CiAJfQogCWhwYWRkciA9IHBhZ2VfdG9fcGh5cyhuZXdfcGFnZSk7CiAKIAkvKiBEcm9wIHJlZmVyZW5jZSB0byBvbGQgcGFnZS4gKi8KIAlrdm1wcGNfNDR4X3NoYWRvd19yZWxlYXNlKHZjcHUsIHZpY3RpbSk7Ci0JdXBfd3JpdGUoJmN1cnJlbnQtPm1tLT5tbWFwX3NlbSk7CisJdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKIAogCXZjcHUtPmFyY2guc2hhZG93X3BhZ2VzW3ZpY3RpbV0gPSBuZXdfcGFnZTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2t2bS9ib29rZV9ndWVzdC5jIGIvYXJjaC9wb3dlcnBjL2t2bS9ib29rZV9ndWVzdC5jCmluZGV4IDcxMmQ4OWEuLjljOGFkODUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rdm0vYm9va2VfZ3Vlc3QuYworKysgYi9hcmNoL3Bvd2VycGMva3ZtL2Jvb2tlX2d1ZXN0LmMKQEAgLTIyNywzOSArMjI3LDYgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQga3ZtcHBjX2VtdWxhdGVfbW1pbyhzdHJ1Y3Qga3ZtX3J1biAqcnVuLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCi17Ci0JZW51bSBlbXVsYXRpb25fcmVzdWx0IGVyOwotCWludCByOwotCi0JZXIgPSBrdm1wcGNfZW11bGF0ZV9pbnN0cnVjdGlvbihydW4sIHZjcHUpOwotCXN3aXRjaCAoZXIpIHsKLQljYXNlIEVNVUxBVEVfRE9ORToKLQkJLyogRnV0dXJlIG9wdGltaXphdGlvbjogb25seSByZWxvYWQgbm9uLXZvbGF0aWxlcyBpZiB0aGV5IHdlcmUKLQkJICogYWN0dWFsbHkgbW9kaWZpZWQuICovCi0JCXIgPSBSRVNVTUVfR1VFU1RfTlY7Ci0JCWJyZWFrOwotCWNhc2UgRU1VTEFURV9ET19NTUlPOgotCQlydW4tPmV4aXRfcmVhc29uID0gS1ZNX0VYSVRfTU1JTzsKLQkJLyogV2UgbXVzdCByZWxvYWQgbm9udm9sYXRpbGVzIGJlY2F1c2UgInVwZGF0ZSIgbG9hZC9zdG9yZQotCQkgKiBpbnN0cnVjdGlvbnMgbW9kaWZ5IHJlZ2lzdGVyIHN0YXRlLiAqLwotCQkvKiBGdXR1cmUgb3B0aW1pemF0aW9uOiBvbmx5IHJlbG9hZCBub24tdm9sYXRpbGVzIGlmIHRoZXkgd2VyZQotCQkgKiBhY3R1YWxseSBtb2RpZmllZC4gKi8KLQkJciA9IFJFU1VNRV9IT1NUX05WOwotCQlicmVhazsKLQljYXNlIEVNVUxBVEVfRkFJTDoKLQkJLyogWFhYIERlbGl2ZXIgUHJvZ3JhbSBpbnRlcnJ1cHQgdG8gZ3Vlc3QuICovCi0JCXByaW50ayhLRVJOX0VNRVJHICIlczogZW11bGF0aW9uIGZhaWxlZCAoJTA4eClcbiIsIF9fZnVuY19fLAotCQkgICAgICAgdmNwdS0+YXJjaC5sYXN0X2luc3QpOwotCQlyID0gUkVTVU1FX0hPU1Q7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUJVRygpOwotCX0KLQotCXJldHVybiByOwotfQotCiAvKioKICAqIGt2bXBwY19oYW5kbGVfZXhpdAogICoKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vZW11bGF0ZS5jIGIvYXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMKaW5kZXggYTAzZmUwYy4uMDAwMDk3NCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMKKysrIGIvYXJjaC9wb3dlcnBjL2t2bS9lbXVsYXRlLmMKQEAgLTI0Niw2ICsyNDYsMTEgQEAKIAljYXNlIDMxOgogCQlzd2l0Y2ggKGdldF94b3AoaW5zdCkpIHsKIAorCQljYXNlIDIzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsd3p4ICovCisJCQlydCA9IGdldF9ydChpbnN0KTsKKwkJCWVtdWxhdGVkID0ga3ZtcHBjX2hhbmRsZV9sb2FkKHJ1biwgdmNwdSwgcnQsIDQsIDEpOworCQkJYnJlYWs7CisKIAkJY2FzZSA4MzogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbWZtc3IgKi8KIAkJCXJ0ID0gZ2V0X3J0KGluc3QpOwogCQkJdmNwdS0+YXJjaC5ncHJbcnRdID0gdmNwdS0+YXJjaC5tc3I7CkBAIC0yNjcsNiArMjcyLDEzIEBACiAJCQlrdm1wcGNfc2V0X21zcih2Y3B1LCB2Y3B1LT5hcmNoLmdwcltyc10pOwogCQkJYnJlYWs7CiAKKwkJY2FzZSAxNTE6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3R3eCAqLworCQkJcnMgPSBnZXRfcnMoaW5zdCk7CisJCQllbXVsYXRlZCA9IGt2bXBwY19oYW5kbGVfc3RvcmUocnVuLCB2Y3B1LAorCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZjcHUtPmFyY2guZ3ByW3JzXSwKKwkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAxKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgMTYzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdydGVlaSAqLwogCQkJdmNwdS0+YXJjaC5tc3IgPSAodmNwdS0+YXJjaC5tc3IgJiB+TVNSX0VFKQogCQkJICAgICAgICAgICAgICAgICB8IChpbnN0ICYgTVNSX0VFKTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9saWIvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvbGliL01ha2VmaWxlCmluZGV4IGM3MWQzN2QuLmU1MjJiMDYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL2xpYi9NYWtlZmlsZQpAQCAtOSw3ICs5LDcgQEAKIGlmZXEgKCQoQ09ORklHX1BQQ19NRVJHRSkseSkKIG9iai15CQkJOj0gc3RyaW5nLm8gYWxsb2MubyBcCiAJCQkgICBjaGVja3N1bV8kKENPTkZJR19XT1JEX1NJWkUpLm8KLW9iai0kKENPTkZJR19QUEMzMikJKz0gZGl2NjQubyBjb3B5XzMyLm8KK29iai0kKENPTkZJR19QUEMzMikJKz0gZGl2NjQubyBjb3B5XzMyLm8gY3J0c2F2cmVzLm8KIG9iai0kKENPTkZJR19IQVNfSU9NRU0pCSs9IGRldnJlcy5vCiBlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbGliL2NydHNhdnJlcy5TIGIvYXJjaC9wb3dlcnBjL2xpYi9jcnRzYXZyZXMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGE5Y2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9wb3dlcnBjL2xpYi9jcnRzYXZyZXMuUwpAQCAtMCwwICsxLDIyOSBAQAorLyoKKyAqIFNwZWNpYWwgc3VwcG9ydCBmb3IgZWFiaSBhbmQgU1ZSNAorICoKKyAqICAgQ29weXJpZ2h0IChDKSAxOTk1LCAxOTk2LCAxOTk4LCAyMDAwLCAyMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICogICBDb3B5cmlnaHQgMjAwOCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICogICBXcml0dGVuIEJ5IE1pY2hhZWwgTWVpc3NuZXIKKyAqCisgKiBCYXNlZCBvbiBnY2MvY29uZmlnL3JzNjAwMC9jcnRzYXZyZXMuYXNtIGZyb20gZ2NjCisgKgorICogVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQorICogbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBJbiBhZGRpdGlvbiB0byB0aGUgcGVybWlzc2lvbnMgaW4gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcyB5b3UgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gbGluayB0aGUKKyAqIGNvbXBpbGVkIHZlcnNpb24gb2YgdGhpcyBmaWxlIHdpdGggb3RoZXIgcHJvZ3JhbXMsIGFuZCB0byBkaXN0cmlidXRlCisgKiB0aG9zZSBwcm9ncmFtcyB3aXRob3V0IGFueSByZXN0cmljdGlvbiBjb21pbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMKKyAqIGZpbGUuICAoVGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgcmVzdHJpY3Rpb25zIGRvIGFwcGx5IGluIG90aGVyCisgKiByZXNwZWN0czsgZm9yIGV4YW1wbGUsIHRoZXkgY292ZXIgbW9kaWZpY2F0aW9uIG9mIHRoZSBmaWxlLCBhbmQKKyAqIGRpc3RyaWJ1dGlvbiB3aGVuIG5vdCBsaW5rZWQgaW50byBhbm90aGVyIHByb2dyYW0uKQorICoKKyAqIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKiAgICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiB5b3UgbGluayB0aGlzIGxpYnJhcnkgd2l0aCBmaWxlcworICogICAgY29tcGlsZWQgd2l0aCBHQ0MgdG8gcHJvZHVjZSBhbiBleGVjdXRhYmxlLCB0aGlzIGRvZXMgbm90IGNhdXNlCisgKiAgICB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFibGUgdG8gYmUgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisgKiAgICBUaGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMgd2h5CisgKiAgICB0aGUgZXhlY3V0YWJsZSBmaWxlIG1pZ2h0IGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxhc20vcHBjX2FzbS5oPgorCisJLmZpbGUJImNydHNhdnJlcy5TIgorCS5zZWN0aW9uICIudGV4dCIKKworI2lmZGVmIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRQorCisvKiBSb3V0aW5lcyBmb3Igc2F2aW5nIGludGVnZXIgcmVnaXN0ZXJzLCBjYWxsZWQgYnkgdGhlIGNvbXBpbGVyLiAgKi8KKy8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sgaGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBvZiB0aGUgKi8KKy8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnRlZ2VyIHNhdmUgYXJlYS4gICovCisKK19HTE9CQUwoX3NhdmVncHJfMTQpCitfR0xPQkFMKF9zYXZlMzJncHJfMTQpCisJc3R3CTE0LC03MigxMSkJLyogc2F2ZSBncCByZWdpc3RlcnMgKi8KK19HTE9CQUwoX3NhdmVncHJfMTUpCitfR0xPQkFMKF9zYXZlMzJncHJfMTUpCisJc3R3CTE1LC02OCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMTYpCitfR0xPQkFMKF9zYXZlMzJncHJfMTYpCisJc3R3CTE2LC02NCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMTcpCitfR0xPQkFMKF9zYXZlMzJncHJfMTcpCisJc3R3CTE3LC02MCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMTgpCitfR0xPQkFMKF9zYXZlMzJncHJfMTgpCisJc3R3CTE4LC01NigxMSkKK19HTE9CQUwoX3NhdmVncHJfMTkpCitfR0xPQkFMKF9zYXZlMzJncHJfMTkpCisJc3R3CTE5LC01MigxMSkKK19HTE9CQUwoX3NhdmVncHJfMjApCitfR0xPQkFMKF9zYXZlMzJncHJfMjApCisJc3R3CTIwLC00OCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjEpCitfR0xPQkFMKF9zYXZlMzJncHJfMjEpCisJc3R3CTIxLC00NCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjIpCitfR0xPQkFMKF9zYXZlMzJncHJfMjIpCisJc3R3CTIyLC00MCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjMpCitfR0xPQkFMKF9zYXZlMzJncHJfMjMpCisJc3R3CTIzLC0zNigxMSkKK19HTE9CQUwoX3NhdmVncHJfMjQpCitfR0xPQkFMKF9zYXZlMzJncHJfMjQpCisJc3R3CTI0LC0zMigxMSkKK19HTE9CQUwoX3NhdmVncHJfMjUpCitfR0xPQkFMKF9zYXZlMzJncHJfMjUpCisJc3R3CTI1LC0yOCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjYpCitfR0xPQkFMKF9zYXZlMzJncHJfMjYpCisJc3R3CTI2LC0yNCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjcpCitfR0xPQkFMKF9zYXZlMzJncHJfMjcpCisJc3R3CTI3LC0yMCgxMSkKK19HTE9CQUwoX3NhdmVncHJfMjgpCitfR0xPQkFMKF9zYXZlMzJncHJfMjgpCisJc3R3CTI4LC0xNigxMSkKK19HTE9CQUwoX3NhdmVncHJfMjkpCitfR0xPQkFMKF9zYXZlMzJncHJfMjkpCisJc3R3CTI5LC0xMigxMSkKK19HTE9CQUwoX3NhdmVncHJfMzApCitfR0xPQkFMKF9zYXZlMzJncHJfMzApCisJc3R3CTMwLC04KDExKQorX0dMT0JBTChfc2F2ZWdwcl8zMSkKK19HTE9CQUwoX3NhdmUzMmdwcl8zMSkKKwlzdHcJMzEsLTQoMTEpCisJYmxyCisKKy8qIFJvdXRpbmVzIGZvciByZXN0b3JpbmcgaW50ZWdlciByZWdpc3RlcnMsIGNhbGxlZCBieSB0aGUgY29tcGlsZXIuICAqLworLyogQ2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVyIG9mIHRoZSAqLworLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgcmVzdG9yZSBhcmVhLiAgKi8KKworX0dMT0JBTChfcmVzdGdwcl8xNCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNCkKKwlsd3oJMTQsLTcyKDExKQkvKiByZXN0b3JlIGdwIHJlZ2lzdGVycyAqLworX0dMT0JBTChfcmVzdGdwcl8xNSkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNSkKKwlsd3oJMTUsLTY4KDExKQorX0dMT0JBTChfcmVzdGdwcl8xNikKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNikKKwlsd3oJMTYsLTY0KDExKQorX0dMT0JBTChfcmVzdGdwcl8xNykKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNykKKwlsd3oJMTcsLTYwKDExKQorX0dMT0JBTChfcmVzdGdwcl8xOCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xOCkKKwlsd3oJMTgsLTU2KDExKQorX0dMT0JBTChfcmVzdGdwcl8xOSkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xOSkKKwlsd3oJMTksLTUyKDExKQorX0dMT0JBTChfcmVzdGdwcl8yMCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMCkKKwlsd3oJMjAsLTQ4KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMSkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMSkKKwlsd3oJMjEsLTQ0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMikKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMikKKwlsd3oJMjIsLTQwKDExKQorX0dMT0JBTChfcmVzdGdwcl8yMykKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMykKKwlsd3oJMjMsLTM2KDExKQorX0dMT0JBTChfcmVzdGdwcl8yNCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNCkKKwlsd3oJMjQsLTMyKDExKQorX0dMT0JBTChfcmVzdGdwcl8yNSkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNSkKKwlsd3oJMjUsLTI4KDExKQorX0dMT0JBTChfcmVzdGdwcl8yNikKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNikKKwlsd3oJMjYsLTI0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yNykKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNykKKwlsd3oJMjcsLTIwKDExKQorX0dMT0JBTChfcmVzdGdwcl8yOCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOCkKKwlsd3oJMjgsLTE2KDExKQorX0dMT0JBTChfcmVzdGdwcl8yOSkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOSkKKwlsd3oJMjksLTEyKDExKQorX0dMT0JBTChfcmVzdGdwcl8zMCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8zMCkKKwlsd3oJMzAsLTgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzMxKQorX0dMT0JBTChfcmVzdDMyZ3ByXzMxKQorCWx3egkzMSwtNCgxMSkKKwlibHIKKworLyogUm91dGluZXMgZm9yIHJlc3RvcmluZyBpbnRlZ2VyIHJlZ2lzdGVycywgY2FsbGVkIGJ5IHRoZSBjb21waWxlci4gICovCisvKiBDYWxsZWQgd2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCisvKiBmdW5jdGlvbiwganVzdCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciByZXN0b3JlIGFyZWEuICAqLworCitfR0xPQkFMKF9yZXN0Z3ByXzE0X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMTRfeCkKKwlsd3oJMTQsLTcyKDExKQkvKiByZXN0b3JlIGdwIHJlZ2lzdGVycyAqLworX0dMT0JBTChfcmVzdGdwcl8xNV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE1X3gpCisJbHd6CTE1LC02OCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMTZfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xNl94KQorCWx3egkxNiwtNjQoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzE3X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMTdfeCkKKwlsd3oJMTcsLTYwKDExKQorX0dMT0JBTChfcmVzdGdwcl8xOF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzE4X3gpCisJbHd6CTE4LC01NigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMTlfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8xOV94KQorCWx3egkxOSwtNTIoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIwX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjBfeCkKKwlsd3oJMjAsLTQ4KDExKQorX0dMT0JBTChfcmVzdGdwcl8yMV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzIxX3gpCisJbHd6CTIxLC00NCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjJfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yMl94KQorCWx3egkyMiwtNDAoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzIzX3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjNfeCkKKwlsd3oJMjMsLTM2KDExKQorX0dMT0JBTChfcmVzdGdwcl8yNF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI0X3gpCisJbHd6CTI0LC0zMigxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjVfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yNV94KQorCWx3egkyNSwtMjgoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI2X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjZfeCkKKwlsd3oJMjYsLTI0KDExKQorX0dMT0JBTChfcmVzdGdwcl8yN194KQorX0dMT0JBTChfcmVzdDMyZ3ByXzI3X3gpCisJbHd6CTI3LC0yMCgxMSkKK19HTE9CQUwoX3Jlc3RncHJfMjhfeCkKK19HTE9CQUwoX3Jlc3QzMmdwcl8yOF94KQorCWx3egkyOCwtMTYoMTEpCitfR0xPQkFMKF9yZXN0Z3ByXzI5X3gpCitfR0xPQkFMKF9yZXN0MzJncHJfMjlfeCkKKwlsd3oJMjksLTEyKDExKQorX0dMT0JBTChfcmVzdGdwcl8zMF94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzMwX3gpCisJbHd6CTMwLC04KDExKQorX0dMT0JBTChfcmVzdGdwcl8zMV94KQorX0dMT0JBTChfcmVzdDMyZ3ByXzMxX3gpCisJbHd6CTAsNCgxMSkKKwlsd3oJMzEsLTQoMTEpCisJbXRscgkwCisJbXIJMSwxMQorCWJscgorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbW0vaGFzaF9sb3dfNjQuUyBiL2FyY2gvcG93ZXJwYy9tbS9oYXNoX2xvd182NC5TCmluZGV4IDIxZDI0ODQuLjcwZjRjODMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9oYXNoX2xvd182NC5TCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9oYXNoX2xvd182NC5TCkBAIC01NjgsNiArNTY4LDEwIEBACiAJbGQJcjcsU1RLX1BBUk0ocjkpKHIxKQkvKiBzc2l6ZSAqLwogCWxkCXI4LFNUS19QQVJNKHI4KShyMSkJLyogbG9jYWwgKi8KIAlibAkuZmx1c2hfaGFzaF9wYWdlCisJLyogQ2xlYXIgb3V0IF9QQUdFX0hQVEVfU1VCIGJpdHMgaW4gdGhlIG5ldyBsaW51eCBQVEUgKi8KKwlsaXMJcjAsX1BBR0VfSFBURV9TVUJAaAorCW9yaQlyMCxyMCxfUEFHRV9IUFRFX1NVQkBsCisJYW5kYwlyMzAscjMwLHIwCiAJYglodGFiX2luc2VydF9wdGUKIAkKIGh0YWJfYmFpbF9vazoKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9tZW0uYyBiL2FyY2gvcG93ZXJwYy9tbS9tZW0uYwppbmRleCBmNjdlMTE4Li41MWY4MmQ4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vbWVtLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL21lbS5jCkBAIC0xNTEsNiArMTUxLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogI2VuZGlmIC8qIENPTkZJR19NRU1PUllfSE9UUkVNT1ZFICovCisjZW5kaWYgLyogQ09ORklHX01FTU9SWV9IT1RQTFVHICovCiAKIC8qCiAgKiB3YWxrX21lbW9yeV9yZXNvdXJjZSgpIG5lZWRzIHRvIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBob2xlcyBpbiBhIGdpdmVuCkBAIC0xODQsOCArMTg1LDYgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHdhbGtfbWVtb3J5X3Jlc291cmNlKTsKIAotI2VuZGlmIC8qIENPTkZJR19NRU1PUllfSE9UUExVRyAqLwotCiB2b2lkIHNob3dfbWVtKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyB0b3RhbCA9IDAsIHJlc2VydmVkID0gMDsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlXzMyLmMgYi9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZV8zMi5jCmluZGV4IDgwZDFiYWIuLmUwZmY1OWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlXzMyLmMKKysrIGIvYXJjaC9wb3dlcnBjL21tL3BndGFibGVfMzIuYwpAQCAtNDAyLDcgKzQwMiw3IEBACiAJCXJldHVybjsKIAl9CiAKLQltYXBfcGFnZShhZGRyZXNzLCBwaHlzLCBmbGFncyk7CisJbWFwX3BhZ2UoYWRkcmVzcywgcGh5cywgcGdwcm90X3ZhbChmbGFncykpOwogCWZpeG1hcHMrKzsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81Mnh4L2xpdGU1MjAwX3BtLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYwppbmRleCA0MWM3ZmQ5Li5mZTkyZTY1IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbGl0ZTUyMDBfcG0uYwpAQCAtMTQsNiArMTQsNyBAQAogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X3hsYiBfX2lvbWVtICp4bGI7CiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfZ3BpbyBfX2lvbWVtICpncHM7CiBzdGF0aWMgc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwIF9faW9tZW0gKmdwdzsKK3N0YXRpYyB2b2lkIF9faW9tZW0gKnBjaTsKIHN0YXRpYyB2b2lkIF9faW9tZW0gKnNyYW07CiBzdGF0aWMgY29uc3QgaW50IHNyYW1fc2l6ZSA9IDB4NDAwMDsJLyogMTYga0J5dGVzICovCiBzdGF0aWMgdm9pZCBfX2lvbWVtICptYmFyOwpAQCAtNTAsNiArNTEsOCBAQAogCQl7IC50eXBlID0gImJ1aWx0aW4iLCAuY29tcGF0aWJsZSA9ICJtcGM1MjAwIiwgfSwgLyogZWZpa2EgKi8KIAkJe30KIAl9OworCXU2NCByZWdhZGRyNjQgPSAwOworCWNvbnN0IHUzMiAqcmVnYWRkcl9wOwogCiAJLyogZGVlcCBzbGVlcD8gbGV0IG1wYzUyeHggY29kZSBoYW5kbGUgdGhhdCAqLwogCWlmIChsaXRlNTIwMF9wbV90YXJnZXRfc3RhdGUgPT0gUE1fU1VTUEVORF9TVEFOREJZKQpAQCAtNjAsOCArNjMsMTIgQEAKIAogCS8qIG1hcCByZWdpc3RlcnMgKi8KIAlucCA9IG9mX2ZpbmRfbWF0Y2hpbmdfbm9kZShOVUxMLCBpbW1yX2lkcyk7Ci0JbWJhciA9IG9mX2lvbWFwKG5wLCAwKTsKKwlyZWdhZGRyX3AgPSBvZl9nZXRfYWRkcmVzcyhucCwgMCwgTlVMTCwgTlVMTCk7CisJaWYgKHJlZ2FkZHJfcCkKKwkJcmVnYWRkcjY0ID0gb2ZfdHJhbnNsYXRlX2FkZHJlc3MobnAsIHJlZ2FkZHJfcCk7CiAJb2Zfbm9kZV9wdXQobnApOworCisJbWJhciA9IGlvcmVtYXAoKHUzMikgcmVnYWRkcjY0LCAweEMwMDApOwogCWlmICghbWJhcikgewogCQlwcmludGsoS0VSTl9FUlIgIiVzOiVpIEVycm9yIG1hcHBpbmcgcmVnaXN0ZXJzXG4iLCBfX2Z1bmNfXywgX19MSU5FX18pOwogCQlyZXR1cm4gLUVOT1NZUzsKQEAgLTcxLDYgKzc4LDcgQEAKIAlwaWMgPSBtYmFyICsgMHg1MDA7CiAJZ3BzID0gbWJhciArIDB4YjAwOwogCWdwdyA9IG1iYXIgKyAweGMwMDsKKwlwY2kgPSBtYmFyICsgMHhkMDA7CiAJYmVzID0gbWJhciArIDB4MTIwMDsKIAl4bGIgPSBtYmFyICsgMHgxZjAwOwogCXNyYW0gPSBtYmFyICsgMHg4MDAwOwpAQCAtODUsNiArOTMsNyBAQAogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X3hsYiBzeGxiOwogc3RhdGljIHN0cnVjdCBtcGM1Mnh4X2dwaW8gc2dwczsKIHN0YXRpYyBzdHJ1Y3QgbXBjNTJ4eF9ncGlvX3drdXAgc2dwdzsKK3N0YXRpYyBjaGFyIHNwY2lbMHgyMDBdOwogCiBzdGF0aWMgdm9pZCBsaXRlNTIwMF9zYXZlX3JlZ3Modm9pZCkKIHsKQEAgLTk0LDYgKzEwMyw3IEBACiAJX21lbWNweV9mcm9taW8oJnN4bGIsIHhsYiwgc2l6ZW9mKCp4bGIpKTsKIAlfbWVtY3B5X2Zyb21pbygmc2dwcywgZ3BzLCBzaXplb2YoKmdwcykpOwogCV9tZW1jcHlfZnJvbWlvKCZzZ3B3LCBncHcsIHNpemVvZigqZ3B3KSk7CisJX21lbWNweV9mcm9taW8oc3BjaSwgcGNpLCAweDIwMCk7CiAKIAlfbWVtY3B5X2Zyb21pbyhzYXZlZF9zcmFtLCBzcmFtLCBzcmFtX3NpemUpOwogfQpAQCAtMTAzLDYgKzExMyw4IEBACiAJaW50IGk7CiAJX21lbWNweV90b2lvKHNyYW0sIHNhdmVkX3NyYW0sIHNyYW1fc2l6ZSk7CiAKKwkvKiBQQ0kgQ29uZmlndXJhdGlvbiAqLworCV9tZW1jcHlfdG9pbyhwY2ksIHNwY2ksIDB4MjAwKTsKIAogCS8qCiAJICogR1BJT3MuIEludGVycnVwdCBNYXN0ZXIgRW5hYmxlIGhhcyBoaWdoZXIgYWRkcmVzcyB0aGVuIG90aGVyCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9ncGlvLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9ncGlvLmMKaW5kZXggNDhkYTVkZi4uOGE0NTVlYiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81Mnh4L21wYzUyeHhfZ3Bpby5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9tcGM1Mnh4X2dwaW8uYwpAQCAtMTAwLDcgKzEwMCw3IEBACiAJc3RydWN0IG9mX21tX2dwaW9fY2hpcCAqbW1fZ2MgPSB0b19vZl9tbV9ncGlvX2NoaXAoZ2MpOwogCXN0cnVjdCBtcGM1Mnh4X2dwaW9jaGlwICpjaGlwID0gY29udGFpbmVyX29mKG1tX2djLAogCQkJc3RydWN0IG1wYzUyeHhfZ3Bpb2NoaXAsIG1tY2hpcCk7Ci0Jc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwICpyZWdzID0gbW1fZ2MtPnJlZ3M7CisJc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwIF9faW9tZW0gKnJlZ3MgPSBtbV9nYy0+cmVnczsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmdwaW9fbG9jaywgZmxhZ3MpOwpAQCAtMTIyLDcgKzEyMiw3IEBACiBtcGM1Mnh4X3drdXBfZ3Bpb19kaXJfb3V0KHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1bnNpZ25lZCBpbnQgZ3BpbywgaW50IHZhbCkKIHsKIAlzdHJ1Y3Qgb2ZfbW1fZ3Bpb19jaGlwICptbV9nYyA9IHRvX29mX21tX2dwaW9fY2hpcChnYyk7Ci0Jc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwICpyZWdzID0gbW1fZ2MtPnJlZ3M7CisJc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwIF9faW9tZW0gKnJlZ3MgPSBtbV9nYy0+cmVnczsKIAlzdHJ1Y3QgbXBjNTJ4eF9ncGlvY2hpcCAqY2hpcCA9IGNvbnRhaW5lcl9vZihtbV9nYywKIAkJCXN0cnVjdCBtcGM1Mnh4X2dwaW9jaGlwLCBtbWNoaXApOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0xNTAsNyArMTUwLDcgQEAKIAkJCQkJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCiB7CiAJc3RydWN0IG1wYzUyeHhfZ3Bpb2NoaXAgKmNoaXA7Ci0Jc3RydWN0IG1wYzUyeHhfZ3Bpb193a3VwICpyZWdzOworCXN0cnVjdCBtcGM1Mnh4X2dwaW9fd2t1cCBfX2lvbWVtICpyZWdzOwogCXN0cnVjdCBvZl9ncGlvX2NoaXAgKm9mY2hpcDsKIAlpbnQgcmV0OwogCkBAIC0yNjAsNyArMjYwLDcgQEAKIAlzdHJ1Y3Qgb2ZfbW1fZ3Bpb19jaGlwICptbV9nYyA9IHRvX29mX21tX2dwaW9fY2hpcChnYyk7CiAJc3RydWN0IG1wYzUyeHhfZ3Bpb2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2YobW1fZ2MsCiAJCQlzdHJ1Y3QgbXBjNTJ4eF9ncGlvY2hpcCwgbW1jaGlwKTsKLQlzdHJ1Y3QgbXBjNTJ4eF9ncGlvICpyZWdzID0gbW1fZ2MtPnJlZ3M7CisJc3RydWN0IG1wYzUyeHhfZ3BpbyBfX2lvbWVtICpyZWdzID0gbW1fZ2MtPnJlZ3M7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZncGlvX2xvY2ssIGZsYWdzKTsKQEAgLTI4NCw3ICsyODQsNyBAQAogCXN0cnVjdCBvZl9tbV9ncGlvX2NoaXAgKm1tX2djID0gdG9fb2ZfbW1fZ3Bpb19jaGlwKGdjKTsKIAlzdHJ1Y3QgbXBjNTJ4eF9ncGlvY2hpcCAqY2hpcCA9IGNvbnRhaW5lcl9vZihtbV9nYywKIAkJCXN0cnVjdCBtcGM1Mnh4X2dwaW9jaGlwLCBtbWNoaXApOwotCXN0cnVjdCBtcGM1Mnh4X2dwaW8gKnJlZ3MgPSBtbV9nYy0+cmVnczsKKwlzdHJ1Y3QgbXBjNTJ4eF9ncGlvIF9faW9tZW0gKnJlZ3MgPSBtbV9nYy0+cmVnczsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmdwaW9fbG9jaywgZmxhZ3MpOwpAQCAtMzEyLDcgKzMxMiw3IEBACiB7CiAJc3RydWN0IG1wYzUyeHhfZ3Bpb2NoaXAgKmNoaXA7CiAJc3RydWN0IG9mX2dwaW9fY2hpcCAqb2ZjaGlwOwotCXN0cnVjdCBtcGM1Mnh4X2dwaW8gKnJlZ3M7CisJc3RydWN0IG1wYzUyeHhfZ3BpbyBfX2lvbWVtICpyZWdzOwogCWludCByZXQ7CiAKIAljaGlwID0ga3phbGxvYyhzaXplb2YoKmNoaXApLCBHRlBfS0VSTkVMKTsKQEAgLTM4Nyw3ICszODcsNyBAQAogc3RhdGljIGludCBtcGM1Mnh4X2dwdF9ncGlvX2Rpcl9pbihzdHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgaW50IGdwaW8pCiB7CiAJc3RydWN0IG9mX21tX2dwaW9fY2hpcCAqbW1fZ2MgPSB0b19vZl9tbV9ncGlvX2NoaXAoZ2MpOwotCXN0cnVjdCBtcGM1Mnh4X2dwdCAqcmVncyA9IG1tX2djLT5yZWdzOworCXN0cnVjdCBtcGM1Mnh4X2dwdCBfX2lvbWVtICpyZWdzID0gbW1fZ2MtPnJlZ3M7CiAKIAlvdXRfYmUzMigmcmVncy0+bW9kZSwgMHgwNCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9LY29uZmlnIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L0tjb25maWcKaW5kZXggN2ZmMjlkNS4uZWNiZTU4MCAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L0tjb25maWcKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L0tjb25maWcKQEAgLTM0LDYgKzM0LDcgQEAKIAlib29sICJGcmVlc2NhbGUgTVBDODV4eCBNRFMiCiAJc2VsZWN0IERFRkFVTFRfVUlNQUdFCiAJc2VsZWN0IFFVSUNDX0VOR0lORQorCXNlbGVjdCBQSFlMSUIKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBNUEM4NXh4IE1EUyBib2FyZAogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvY2VsbGViX3NjY19wY2lleC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL2NlbGxlYl9zY2NfcGNpZXguYwppbmRleCAzMWRhODRjLi4wZTA0ZjhmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvY2VsbGViX3NjY19wY2lleC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9jZWxsZWJfc2NjX3BjaWV4LmMKQEAgLTIxNyw3ICsyMTcsNyBAQAogc3RhdGljIHZvaWQgc2NjX3BjaWV4X2lucyMjbmFtZSh1bnNpZ25lZCBsb25nIHAsIHZvaWQgKmIsIHVuc2lnbmVkIGxvbmcgYykgXAogewkJCQkJCQkJCVwKIAlzdHJ1Y3QgaW93YV9idXMgKmJ1cyA9IGlvd2FfcGlvX2ZpbmRfYnVzKHApOwkJCVwKLQl1IyNzaXplICpkc3QgPSBiOwkJCQkJCVwKKwlfX2xlIyNzaXplICpkc3QgPSBiOwkJCQkJCVwKIAlmb3IgKDsgYyAhPSAwOyBjLS0sIGRzdCsrKQkJCQkJXAogCQkqZHN0ID0gY3B1X3RvX2xlIyNzaXplKF9fc2NjX3BjaWV4X2luIyNuYW1lKGJ1cy0+cGhiLCBwKSk7IFwKIAlzY2NfcGNpZXhfaW9fZmx1c2goYnVzKTsJCQkJCVwKQEAgLTIzMSwxMCArMjMxLDExIEBACiAJCQkJIHVuc2lnbmVkIGxvbmcgYykJCQlcCiB7CQkJCQkJCQkJXAogCXN0cnVjdCBpb3dhX2J1cyAqYnVzID0gaW93YV9waW9fZmluZF9idXMocCk7CQkJXAotCWNvbnN0IHUjI3NpemUgKnNyYyA9IGI7CQkJCQkJXAorCWNvbnN0IF9fbGUjI3NpemUgKnNyYyA9IGI7CQkJCQlcCiAJZm9yICg7IGMgIT0gMDsgYy0tLCBzcmMrKykJCQkJCVwKIAkJX19zY2NfcGNpZXhfb3V0IyNuYW1lKGJ1cy0+cGhiLCBsZSMjc2l6ZSMjX3RvX2NwdSgqc3JjKSwgcCk7IFwKIH0KKyNkZWZpbmUgX19sZTggdTgKICNkZWZpbmUgY3B1X3RvX2xlOCh4KSAoeCkKICNkZWZpbmUgbGU4X3RvX2NwdSh4KSAoeCkKIFBDSUVYX1BJT19GVU5DKDgsIGIpCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1X2Jhc2UuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVfYmFzZS5jCmluZGV4IDcwYzY2MDEuLjc4ZjkwNWIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVfYmFzZS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVfYmFzZS5jCkBAIC0yMTksMTUgKzIxOSwyNSBAQAogZXh0ZXJuIGludCBoYXNoX3BhZ2UodW5zaWduZWQgbG9uZyBlYSwgdW5zaWduZWQgbG9uZyBhY2Nlc3MsIHVuc2lnbmVkIGxvbmcgdHJhcCk7IC8vWFhYCiBzdGF0aWMgaW50IF9fc3B1X3RyYXBfZGF0YV9tYXAoc3RydWN0IHNwdSAqc3B1LCB1bnNpZ25lZCBsb25nIGVhLCB1NjQgZHNpc3IpCiB7CisJaW50IHJldDsKKwogCXByX2RlYnVnKCIlcywgJWx4LCAlbHhcbiIsIF9fZnVuY19fLCBkc2lzciwgZWEpOwogCi0JLyogSGFuZGxlIGtlcm5lbCBzcGFjZSBoYXNoIGZhdWx0cyBpbW1lZGlhdGVseS4KLQkgICBVc2VyIGhhc2ggZmF1bHRzIG5lZWQgdG8gYmUgZGVmZXJyZWQgdG8gcHJvY2VzcyBjb250ZXh0LiAqLwotCWlmICgoZHNpc3IgJiBNRkNfRFNJU1JfUFRFX05PVF9GT1VORCkKLQkgICAgJiYgUkVHSU9OX0lEKGVhKSAhPSBVU0VSX1JFR0lPTl9JRAotCSAgICAmJiBoYXNoX3BhZ2UoZWEsIF9QQUdFX1BSRVNFTlQsIDB4MzAwKSA9PSAwKSB7Ci0JCXNwdV9yZXN0YXJ0X2RtYShzcHUpOwotCQlyZXR1cm4gMDsKKwkvKgorCSAqIEhhbmRsZSBrZXJuZWwgc3BhY2UgaGFzaCBmYXVsdHMgaW1tZWRpYXRlbHkuIFVzZXIgaGFzaAorCSAqIGZhdWx0cyBuZWVkIHRvIGJlIGRlZmVycmVkIHRvIHByb2Nlc3MgY29udGV4dC4KKwkgKi8KKwlpZiAoKGRzaXNyICYgTUZDX0RTSVNSX1BURV9OT1RfRk9VTkQpICYmCisJICAgIChSRUdJT05fSUQoZWEpICE9IFVTRVJfUkVHSU9OX0lEKSkgeworCisJCXNwaW5fdW5sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOworCQlyZXQgPSBoYXNoX3BhZ2UoZWEsIF9QQUdFX1BSRVNFTlQsIDB4MzAwKTsKKwkJc3Bpbl9sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOworCisJCWlmICghcmV0KSB7CisJCQlzcHVfcmVzdGFydF9kbWEoc3B1KTsKKwkJCXJldHVybiAwOworCQl9CiAJfQogCiAJc3B1LT5jbGFzc18xX2RhciA9IGVhOwpAQCAtMzI0LDE3ICszMzQsMTMgQEAKIAlzdGF0ID0gc3B1X2ludF9zdGF0X2dldChzcHUsIDApICYgbWFzazsKIAogCXNwdS0+Y2xhc3NfMF9wZW5kaW5nIHw9IHN0YXQ7Ci0Jc3B1LT5jbGFzc18wX2RzaXNyID0gc3B1X21mY19kc2lzcl9nZXQoc3B1KTsKIAlzcHUtPmNsYXNzXzBfZGFyID0gc3B1X21mY19kYXJfZ2V0KHNwdSk7Ci0Jc3Bpbl91bmxvY2soJnNwdS0+cmVnaXN0ZXJfbG9jayk7Ci0KIAlzcHUtPnN0b3BfY2FsbGJhY2soc3B1LCAwKTsKLQogCXNwdS0+Y2xhc3NfMF9wZW5kaW5nID0gMDsKLQlzcHUtPmNsYXNzXzBfZHNpc3IgPSAwOwogCXNwdS0+Y2xhc3NfMF9kYXIgPSAwOwogCiAJc3B1X2ludF9zdGF0X2NsZWFyKHNwdSwgMCwgc3RhdCk7CisJc3Bpbl91bmxvY2soJnNwdS0+cmVnaXN0ZXJfbG9jayk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0zNTcsMTMgKzM2MywxMiBAQAogCQlzcHVfbWZjX2RzaXNyX3NldChzcHUsIDB1bCk7CiAJc3B1X2ludF9zdGF0X2NsZWFyKHNwdSwgMSwgc3RhdCk7CiAKLQlpZiAoc3RhdCAmIENMQVNTMV9TRUdNRU5UX0ZBVUxUX0lOVFIpCi0JCV9fc3B1X3RyYXBfZGF0YV9zZWcoc3B1LCBkYXIpOwotCi0Jc3Bpbl91bmxvY2soJnNwdS0+cmVnaXN0ZXJfbG9jayk7CiAJcHJfZGVidWcoIiVzOiAlbHggJWx4ICVseCAlbHhcbiIsIF9fZnVuY19fLCBtYXNrLCBzdGF0LAogCQkJZGFyLCBkc2lzcik7CiAKKwlpZiAoc3RhdCAmIENMQVNTMV9TRUdNRU5UX0ZBVUxUX0lOVFIpCisJCV9fc3B1X3RyYXBfZGF0YV9zZWcoc3B1LCBkYXIpOworCiAJaWYgKHN0YXQgJiBDTEFTUzFfU1RPUkFHRV9GQVVMVF9JTlRSKQogCQlfX3NwdV90cmFwX2RhdGFfbWFwKHNwdSwgZGFyLCBkc2lzcik7CiAKQEAgLTM3Niw2ICszODEsOCBAQAogCXNwdS0+Y2xhc3NfMV9kc2lzciA9IDA7CiAJc3B1LT5jbGFzc18xX2RhciA9IDA7CiAKKwlzcGluX3VubG9jaygmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKKwogCXJldHVybiBzdGF0ID8gSVJRX0hBTkRMRUQgOiBJUlFfTk9ORTsKIH0KIApAQCAtMzk0LDE0ICs0MDEsMTIgQEAKIAltYXNrID0gc3B1X2ludF9tYXNrX2dldChzcHUsIDIpOwogCS8qIGlnbm9yZSBpbnRlcnJ1cHRzIHdlJ3JlIG5vdCB3YWl0aW5nIGZvciAqLwogCXN0YXQgJj0gbWFzazsKLQogCS8qIG1haWxib3ggaW50ZXJydXB0cyBhcmUgbGV2ZWwgdHJpZ2dlcmVkLiBtYXNrIHRoZW0gbm93IGJlZm9yZQogCSAqIGFja25vd2xlZGdpbmcgKi8KIAlpZiAoc3RhdCAmIG1haWxib3hfaW50cnMpCiAJCXNwdV9pbnRfbWFza19hbmQoc3B1LCAyLCB+KHN0YXQgJiBtYWlsYm94X2ludHJzKSk7CiAJLyogYWNrbm93bGVkZ2UgYWxsIGludGVycnVwdHMgYmVmb3JlIHRoZSBjYWxsYmFja3MgKi8KIAlzcHVfaW50X3N0YXRfY2xlYXIoc3B1LCAyLCBzdGF0KTsKLQlzcGluX3VubG9jaygmc3B1LT5yZWdpc3Rlcl9sb2NrKTsKIAogCXByX2RlYnVnKCJjbGFzcyAyIGludGVycnVwdCAlZCwgJWx4LCAlbHhcbiIsIGlycSwgc3RhdCwgbWFzayk7CiAKQEAgLTQyMSw2ICs0MjYsOSBAQAogCQlzcHUtPndib3hfY2FsbGJhY2soc3B1KTsKIAogCXNwdS0+c3RhdHMuY2xhc3MyX2ludHIrKzsKKworCXNwaW5fdW5sb2NrKCZzcHUtPnJlZ2lzdGVyX2xvY2spOworCiAJcmV0dXJuIHN0YXQgPyBJUlFfSEFORExFRCA6IElSUV9OT05FOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvcnVuLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvcnVuLmMKaW5kZXggYjc0OTNiOC4uZjdlZGJhNiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3NwdWZzL3J1bi5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9ydW4uYwpAQCAtMjcsNyArMjcsNiBAQAogCQlzd2l0Y2goaXJxKSB7CiAJCWNhc2UgMCA6CiAJCQljdHgtPmNzYS5jbGFzc18wX3BlbmRpbmcgPSBzcHUtPmNsYXNzXzBfcGVuZGluZzsKLQkJCWN0eC0+Y3NhLmNsYXNzXzBfZHNpc3IgPSBzcHUtPmNsYXNzXzBfZHNpc3I7CiAJCQljdHgtPmNzYS5jbGFzc18wX2RhciA9IHNwdS0+Y2xhc3NfMF9kYXI7CiAJCQlicmVhazsKIAkJY2FzZSAxIDoKQEAgLTUxLDE4ICs1MCwyMiBAQAogCXU2NCBkc2lzcjsKIAl1MzIgc3RvcHBlZDsKIAotCSpzdGF0ID0gY3R4LT5vcHMtPnN0YXR1c19yZWFkKGN0eCk7Ci0KLQlpZiAodGVzdF9iaXQoU1BVX1NDSEVEX05PVElGWV9BQ1RJVkUsICZjdHgtPnNjaGVkX2ZsYWdzKSkKLQkJcmV0dXJuIDE7Ci0KIAlzdG9wcGVkID0gU1BVX1NUQVRVU19JTlZBTElEX0lOU1RSIHwgU1BVX1NUQVRVU19TSU5HTEVfU1RFUCB8CiAJCVNQVV9TVEFUVVNfU1RPUFBFRF9CWV9IQUxUIHwgU1BVX1NUQVRVU19TVE9QUEVEX0JZX1NUT1A7Ci0JaWYgKCEoKnN0YXQgJiBTUFVfU1RBVFVTX1JVTk5JTkcpICYmICgqc3RhdCAmIHN0b3BwZWQpKQotCQlyZXR1cm4gMTsKIAotCWRzaXNyID0gY3R4LT5jc2EuY2xhc3NfMF9kc2lzcjsKLQlpZiAoZHNpc3IgJiAoTUZDX0RTSVNSX1BURV9OT1RfRk9VTkQgfCBNRkNfRFNJU1JfQUNDRVNTX0RFTklFRCkpCit0b3A6CisJKnN0YXQgPSBjdHgtPm9wcy0+c3RhdHVzX3JlYWQoY3R4KTsKKwlpZiAoKnN0YXQgJiBzdG9wcGVkKSB7CisJCS8qCisJCSAqIElmIHRoZSBzcHUgaGFzbid0IGZpbmlzaGVkIHN0b3BwaW5nLCB3ZSBuZWVkIHRvCisJCSAqIHJlLXJlYWQgdGhlIHJlZ2lzdGVyIHRvIGdldCB0aGUgc3RvcHBlZCB2YWx1ZS4KKwkJICovCisJCWlmICgqc3RhdCAmIFNQVV9TVEFUVVNfUlVOTklORykKKwkJCWdvdG8gdG9wOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAodGVzdF9iaXQoU1BVX1NDSEVEX05PVElGWV9BQ1RJVkUsICZjdHgtPnNjaGVkX2ZsYWdzKSkKIAkJcmV0dXJuIDE7CiAKIAlkc2lzciA9IGN0eC0+Y3NhLmNsYXNzXzFfZHNpc3I7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc3B1ZnMvc2NoZWQuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9zY2hlZC5jCmluZGV4IDc0NWRkNTEuLmU5MjllNzAgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9zY2hlZC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVmcy9zY2hlZC5jCkBAIC0yMzAsMTkgKzIzMCwyMyBAQAogCWN0eC0+c3RhdHMuc2xiX2ZsdF9iYXNlID0gc3B1LT5zdGF0cy5zbGJfZmx0OwogCWN0eC0+c3RhdHMuY2xhc3MyX2ludHJfYmFzZSA9IHNwdS0+c3RhdHMuY2xhc3MyX2ludHI7CiAKKwlzcHVfYXNzb2NpYXRlX21tKHNwdSwgY3R4LT5vd25lcik7CisKKwlzcGluX2xvY2tfaXJxKCZzcHUtPnJlZ2lzdGVyX2xvY2spOwogCXNwdS0+Y3R4ID0gY3R4OwogCXNwdS0+ZmxhZ3MgPSAwOwogCWN0eC0+c3B1ID0gc3B1OwogCWN0eC0+b3BzID0gJnNwdV9od19vcHM7CiAJc3B1LT5waWQgPSBjdXJyZW50LT5waWQ7CiAJc3B1LT50Z2lkID0gY3VycmVudC0+dGdpZDsKLQlzcHVfYXNzb2NpYXRlX21tKHNwdSwgY3R4LT5vd25lcik7CiAJc3B1LT5pYm94X2NhbGxiYWNrID0gc3B1ZnNfaWJveF9jYWxsYmFjazsKIAlzcHUtPndib3hfY2FsbGJhY2sgPSBzcHVmc193Ym94X2NhbGxiYWNrOwogCXNwdS0+c3RvcF9jYWxsYmFjayA9IHNwdWZzX3N0b3BfY2FsbGJhY2s7CiAJc3B1LT5tZmNfY2FsbGJhY2sgPSBzcHVmc19tZmNfY2FsbGJhY2s7Ci0JbWIoKTsKKwlzcGluX3VubG9ja19pcnEoJnNwdS0+cmVnaXN0ZXJfbG9jayk7CisKIAlzcHVfdW5tYXBfbWFwcGluZ3MoY3R4KTsKKwogCXNwdV9zd2l0Y2hfbG9nX25vdGlmeShzcHUsIGN0eCwgU1dJVENIX0xPR19TVEFSVCwgMCk7CiAJc3B1X3Jlc3RvcmUoJmN0eC0+Y3NhLCBzcHUpOwogCXNwdS0+dGltZXN0YW1wID0gamlmZmllczsKQEAgLTQwMyw2ICs0MDcsOCBAQAogICovCiBzdGF0aWMgdm9pZCBzcHVfdW5iaW5kX2NvbnRleHQoc3RydWN0IHNwdSAqc3B1LCBzdHJ1Y3Qgc3B1X2NvbnRleHQgKmN0eCkKIHsKKwl1MzIgc3RhdHVzOworCiAJc3B1X2NvbnRleHRfdHJhY2Uoc3B1X3VuYmluZF9jb250ZXh0X19lbnRlciwgY3R4LCBzcHUpOwogCiAJc3B1Y3R4X3N3aXRjaF9zdGF0ZShjdHgsIFNQVV9VVElMX1NZU1RFTSk7CkBAIC00MjMsMTggKzQyOSwyMiBAQAogCXNwdV91bm1hcF9tYXBwaW5ncyhjdHgpOwogCXNwdV9zYXZlKCZjdHgtPmNzYSwgc3B1KTsKIAlzcHVfc3dpdGNoX2xvZ19ub3RpZnkoc3B1LCBjdHgsIFNXSVRDSF9MT0dfU1RPUCwgMCk7CisKKwlzcGluX2xvY2tfaXJxKCZzcHUtPnJlZ2lzdGVyX2xvY2spOwogCXNwdS0+dGltZXN0YW1wID0gamlmZmllczsKIAljdHgtPnN0YXRlID0gU1BVX1NUQVRFX1NBVkVEOwogCXNwdS0+aWJveF9jYWxsYmFjayA9IE5VTEw7CiAJc3B1LT53Ym94X2NhbGxiYWNrID0gTlVMTDsKIAlzcHUtPnN0b3BfY2FsbGJhY2sgPSBOVUxMOwogCXNwdS0+bWZjX2NhbGxiYWNrID0gTlVMTDsKLQlzcHVfYXNzb2NpYXRlX21tKHNwdSwgTlVMTCk7CiAJc3B1LT5waWQgPSAwOwogCXNwdS0+dGdpZCA9IDA7CiAJY3R4LT5vcHMgPSAmc3B1X2JhY2tpbmdfb3BzOwogCXNwdS0+ZmxhZ3MgPSAwOwogCXNwdS0+Y3R4ID0gTlVMTDsKKwlzcGluX3VubG9ja19pcnEoJnNwdS0+cmVnaXN0ZXJfbG9jayk7CisKKwlzcHVfYXNzb2NpYXRlX21tKHNwdSwgTlVMTCk7CiAKIAljdHgtPnN0YXRzLnNsYl9mbHQgKz0KIAkJKHNwdS0+c3RhdHMuc2xiX2ZsdCAtIGN0eC0+c3RhdHMuc2xiX2ZsdF9iYXNlKTsKQEAgLTQ0NCw2ICs0NTQsOSBAQAogCS8qIFRoaXMgbWFwcyB0aGUgdW5kZXJseWluZyBzcHUgc3RhdGUgdG8gaWRsZSAqLwogCXNwdWN0eF9zd2l0Y2hfc3RhdGUoY3R4LCBTUFVfVVRJTF9JRExFX0xPQURFRCk7CiAJY3R4LT5zcHUgPSBOVUxMOworCisJaWYgKHNwdV9zdG9wcGVkKGN0eCwgJnN0YXR1cykpCisJCXdha2VfdXBfYWxsKCZjdHgtPnN0b3Bfd3EpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvTWFrZWZpbGUgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL01ha2VmaWxlCmluZGV4IDRkNzJjOGYuLjg5Nzc0MTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvTWFrZWZpbGUKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9NYWtlZmlsZQpAQCAtMSw1ICsxLDEwIEBACiBDRkxBR1NfYm9vdHhfaW5pdC5vICAJCSs9IC1mUElDCiAKK2lmZGVmIENPTkZJR19GVFJBQ0UKKyMgRG8gbm90IHRyYWNlIGVhcmx5IGJvb3QgY29kZQorQ0ZMQUdTX1JFTU9WRV9ib290eF9pbml0Lm8gPSAtcGcKK2VuZGlmCisKIG9iai15CQkJCSs9IHBpYy5vIHNldHVwLm8gdGltZS5vIGZlYXR1cmUubyBwY2kubyBcCiAJCQkJICAgc2xlZXAubyBsb3dfaTJjLm8gY2FjaGUubyBwZnVuY19jb3JlLm8gXAogCQkJCSAgIHBmdW5jX2Jhc2UubwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvbW0uYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHMzL21tLmMKaW5kZXggNWIzZmIyYi4uM2E1OGZmYSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvbW0uYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9tbS5jCkBAIC0zMTcsNiArMzE3LDkgQEAKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CiAKKwlsbWJfYWRkKHN0YXJ0X2FkZHIsIG1hcC5yMS5zaXplKTsKKwlsbWJfYW5hbHl6ZSgpOworCiAJcmVzdWx0ID0gb25saW5lX3BhZ2VzKHN0YXJ0X3BmbiwgbnJfcGFnZXMpOwogCiAJaWYgKHJlc3VsdCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9lZWhfZHJpdmVyLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZWVoX2RyaXZlci5jCmluZGV4IDY4ZWE1ZWUuLjhjMWNhNDcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9lZWhfZHJpdmVyLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL2VlaF9kcml2ZXIuYwpAQCAtNDIsMTcgKzQyLDIwIEBACiB9CiAKICNpZmRlZiBERUJVRwotc3RhdGljIHZvaWQgcHJpbnRfZGV2aWNlX25vZGVfdHJlZSAoc3RydWN0IHBjaV9kbiAqcGRuLCBpbnQgZGVudCkKK3N0YXRpYyB2b2lkIHByaW50X2RldmljZV9ub2RlX3RyZWUoc3RydWN0IHBjaV9kbiAqcGRuLCBpbnQgZGVudCkKIHsKIAlpbnQgaTsKLQlpZiAoIXBkbikgcmV0dXJuOwotCWZvciAoaT0wO2k8ZGVudDsgaSsrKQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGM7CisKKwlpZiAoIXBkbikKKwkJcmV0dXJuOworCWZvciAoaSA9IDA7IGkgPCBkZW50OyBpKyspCiAJCXByaW50aygiICIpOwogCXByaW50aygiZG49JXMgbW9kZT0leCBcdGNmZ19hZGRyPSV4IHBlX2FkZHI9JXggXHRmdWxsPSVzXG4iLAogCQlwZG4tPm5vZGUtPm5hbWUsIHBkbi0+ZWVoX21vZGUsIHBkbi0+ZWVoX2NvbmZpZ19hZGRyLAogCQlwZG4tPmVlaF9wZV9jb25maWdfYWRkciwgcGRuLT5ub2RlLT5mdWxsX25hbWUpOwogCWRlbnQgKz0gMzsKLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBjID0gcGRuLT5ub2RlLT5jaGlsZDsKKwlwYyA9IHBkbi0+bm9kZS0+Y2hpbGQ7CiAJd2hpbGUgKHBjKSB7CiAJCXByaW50X2RldmljZV9ub2RlX3RyZWUoUENJX0ROKHBjKSwgZGVudCk7CiAJCXBjID0gcGMtPnNpYmxpbmc7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvbnZyYW0uYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCmluZGV4IGY2ODkwM2UuLjQyZjdlMzggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9udnJhbS5jCkBAIC0xMzEsOCArMTMxLDEwIEBACiAJCXJldHVybiAtRU5PREVWOwogCiAJbmJ5dGVzX3AgPSBvZl9nZXRfcHJvcGVydHkobnZyYW0sICIjYnl0ZXMiLCAmcHJvcGxlbik7Ci0JaWYgKG5ieXRlc19wID09IE5VTEwgfHwgcHJvcGxlbiAhPSBzaXplb2YodW5zaWduZWQgaW50KSkKKwlpZiAobmJ5dGVzX3AgPT0gTlVMTCB8fCBwcm9wbGVuICE9IHNpemVvZih1bnNpZ25lZCBpbnQpKSB7CisJCW9mX25vZGVfcHV0KG52cmFtKTsKIAkJcmV0dXJuIC1FSU87CisJfQogCiAJbnZyYW1fc2l6ZSA9ICpuYnl0ZXNfcDsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfc29jLmMgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9zb2MuYwppbmRleCAzYTcwNTRlLi4wMTk2NTdjMTEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3NvYy5jCisrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3NvYy5jCkBAIC00MzIsNyArNDMyLDcgQEAKIAl7ImRhbGxhcyxkczEzMzkiLCAgImRzMTMzOSJ9LAogCXsiZGFsbGFzLGRzMTM0MCIsICAiZHMxMzQwIn0sCiAJeyJzdG0sbTQxdDAwIiwgICAgICJtNDF0MDAifSwKLQl7ImRhbGxhcyxkczEzNzQiLCAgInJ0Yy1kczEzNzQifSwKKwl7ImRhbGxhcyxkczEzNzQiLCAgImRzMTM3NCJ9LAogfTsKIAogc3RhdGljIGludCBfX2luaXQgb2ZfZmluZF9pMmNfZHJpdmVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvbXBpYy5jIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9tcGljLmMKaW5kZXggODYxOWYyYS4uNzY4MDAwMSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9tcGljLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9tcGljLmMKQEAgLTEzMzEsNiArMTMzMSw5IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1MzIgcmVnOwogCisJaWYgKCFtcGljKQorCQlyZXR1cm47CisKIAlzcGluX2xvY2tfaXJxc2F2ZSgmbXBpY19sb2NrLCBmbGFncyk7CiAJaWYgKGlzX2lwaSkgewogCQlyZWcgPSBtcGljX2lwaV9yZWFkKHNyYyAtIG1waWMtPmlwaV92ZWNzWzBdKSAmCkBAIC0xMzQ2LDIzICsxMzQ5LDYgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtcGljX2xvY2ssIGZsYWdzKTsKIH0KIAotdW5zaWduZWQgaW50IG1waWNfaXJxX2dldF9wcmlvcml0eSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBpc19pcGk7Ci0Jc3RydWN0IG1waWMgKm1waWMgPSBtcGljX2ZpbmQoaXJxLCAmaXNfaXBpKTsKLQl1bnNpZ25lZCBpbnQgc3JjID0gbXBpY19pcnFfdG9faHcoaXJxKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXUzMiByZWc7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmbXBpY19sb2NrLCBmbGFncyk7Ci0JaWYgKGlzX2lwaSkKLQkJcmVnID0gbXBpY19pcGlfcmVhZChzcmMgPSBtcGljLT5pcGlfdmVjc1swXSk7Ci0JZWxzZQotCQlyZWcgPSBtcGljX2lycV9yZWFkKHNyYywgTVBJQ19JTkZPKElSUV9WRUNUT1JfUFJJKSk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbXBpY19sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIChyZWcgJiBNUElDX1ZFQ1BSSV9QUklPUklUWV9NQVNLKSA+PiBNUElDX1ZFQ1BSSV9QUklPUklUWV9TSElGVDsKLX0KLQogdm9pZCBtcGljX3NldHVwX3RoaXNfY3B1KHZvaWQpCiB7CiAjaWZkZWYgQ09ORklHX1NNUApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3htb24veG1vbi5jIGIvYXJjaC9wb3dlcnBjL3htb24veG1vbi5jCmluZGV4IDE3MDJkZTkuLmJmY2Y3MGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy94bW9uL3htb24uYworKysgYi9hcmNoL3Bvd2VycGMveG1vbi94bW9uLmMKQEAgLTI4NDQsNyArMjg0NCw2IEBACiAJRFVNUF9GSUVMRChzcHUsICIweCVseCIsIGZsYWdzKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIiVkIiwgY2xhc3NfMF9wZW5kaW5nKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgY2xhc3NfMF9kYXIpOwotCURVTVBfRklFTEQoc3B1LCAiMHglbHgiLCBjbGFzc18wX2RzaXNyKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgY2xhc3NfMV9kYXIpOwogCURVTVBfRklFTEQoc3B1LCAiMHglbHgiLCBjbGFzc18xX2RzaXNyKTsKIAlEVU1QX0ZJRUxEKHNwdSwgIjB4JWx4IiwgaXJxc1swXSk7CmRpZmYgLS1naXQgYS9hcmNoL3BwYy9rZXJuZWwvcHBjX2tzeW1zLmMgYi9hcmNoL3BwYy9rZXJuZWwvcHBjX2tzeW1zLmMKaW5kZXggNjAyYzI2OC4uNWQ1MjliYyAxMDA2NDQKLS0tIGEvYXJjaC9wcGMva2VybmVsL3BwY19rc3ltcy5jCisrKyBiL2FyY2gvcHBjL2tlcm5lbC9wcGNfa3N5bXMuYwpAQCAtNjAsOCArNjAsMTAgQEAKIGxvbmcgbG9uZyBfX2FzaGxkaTMobG9uZyBsb25nLCBpbnQpOwogbG9uZyBsb25nIF9fbHNocmRpMyhsb25nIGxvbmcsIGludCk7CiAKK0VYUE9SVF9TWU1CT0woZW1wdHlfemVyb19wYWdlKTsKIEVYUE9SVF9TWU1CT0woY2xlYXJfcGFnZXMpOwogRVhQT1JUX1NZTUJPTChjbGVhcl91c2VyX3BhZ2UpOworRVhQT1JUX1NZTUJPTChjb3B5X3BhZ2UpOwogRVhQT1JUX1NZTUJPTCh0cmFuc2Zlcl90b19oYW5kbGVyKTsKIEVYUE9SVF9TWU1CT0woZG9fSVJRKTsKIEVYUE9SVF9TWU1CT0wobWFjaGluZV9jaGVja19leGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL0tjb25maWcgYi9hcmNoL3MzOTAvS2NvbmZpZwppbmRleCAxZDAzNTA4Li41ZGM4ZjgwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvS2NvbmZpZworKysgYi9hcmNoL3MzOTAvS2NvbmZpZwpAQCAtMTQ2LDYgKzE0Niw3IEBACiBjb25maWcgQ09NUEFUCiAJYm9vbCAiS2VybmVsIHN1cHBvcnQgZm9yIDMxIGJpdCBlbXVsYXRpb24iCiAJZGVwZW5kcyBvbiA2NEJJVAorCXNlbGVjdCBDT01QQVRfQklORk1UX0VMRgogCWhlbHAKIAkgIFNlbGVjdCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBlbmFibGUgeW91ciBzeXN0ZW0ga2VybmVsIHRvCiAJICBoYW5kbGUgc3lzdGVtLWNhbGxzIGZyb20gRUxGIGJpbmFyaWVzIGZvciAzMSBiaXQgRVNBLiAgVGhpcyBvcHRpb24KQEAgLTMwNCwxMCArMzA1LDE4IEBACiAJZGVmX2Jvb2wgeQogCXNlbGVjdCBTUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUKIAlzZWxlY3QgU1BBUlNFTUVNX1ZNRU1NQVAKKwlzZWxlY3QgU1BBUlNFTUVNX1NUQVRJQyBpZiAhNjRCSVQKIAogY29uZmlnIEFSQ0hfU1BBUlNFTUVNX0RFRkFVTFQKIAlkZWZfYm9vbCB5CiAKK2NvbmZpZyBBUkNIX1NFTEVDVF9NRU1PUllfTU9ERUwKKyAgICAgICBkZWZfYm9vbCB5CisKK2NvbmZpZyBBUkNIX0VOQUJMRV9NRU1PUllfSE9UUExVRworCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFNQQVJTRU1FTQorCiBzb3VyY2UgIm1tL0tjb25maWciCiAKIGNvbW1lbnQgIkkvTyBzdWJzeXN0ZW0gY29uZmlndXJhdGlvbiIKQEAgLTM0MCw2ICszNDksMjIgQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIENIU0NfU0NICisJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIENIU0Mgc3ViY2hhbm5lbHMiCisJaGVscAorCSAgVGhpcyBkcml2ZXIgYWxsb3dzIHVzYWdlIG9mIENIU0Mgc3ViY2hhbm5lbHMuIEEgQ0hTQyBzdWJjaGFubmVsCisJICBpcyB1c3VhbGx5IHByZXNlbnQgb24gTFBBUiBvbmx5LgorCSAgVGhlIGRyaXZlciBjcmVhdGVzIGEgZGV2aWNlIC9kZXYvY2hzYywgd2hpY2ggbWF5IGJlIHVzZWQgdG8KKwkgIG9idGFpbiBJL08gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbWFjaGluZSBhbmQKKwkgIHRvIGlzc3VlIGFzeW5jaHJvbm91cyBjaHNjIGNvbW1hbmRzIChEQU5HRVJPVVMpLgorCSAgWW91IHdpbGwgdXN1YWxseSBvbmx5IHdhbnQgdG8gdXNlIHRoaXMgaW50ZXJmYWNlIG9uIGEgc3BlY2lhbAorCSAgTFBBUiBkZXNpZ25hdGVkIGZvciBzeXN0ZW0gbWFuYWdlbWVudC4KKworCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgY2hzY19zY2guCisKKwkgIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbW1lbnQgIk1pc2MiCiAKIGNvbmZpZyBJUEwKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YS5oIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhLmgKaW5kZXggZGIzYWU4NS4uMTdhMjYzNiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhLmgKKysrIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhLmgKQEAgLTMsMTMgKzMsMTEgQEAKICAqCiAgKiBEZWZpbml0aW9ucyBhbmQgaW50ZXJmYWNlIGZvciBMaW51eCAtIHovVk0gTW9uaXRvciBTdHJlYW0uCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDAzLDIwMDYgSUJNIENvcnBvcmF0aW9uLCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSC4KKyAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMywgMjAwOAogICoKICAqIEF1dGhvcjogR2VyYWxkIFNjaGFlZmVyIDxnZXJhbGQuc2NoYWVmZXJAZGUuaWJtLmNvbT4KICAqLwogCi0vLyNkZWZpbmUgQVBQTERBVEFfREVCVUcJCQkvKiBEZWJ1ZyBtZXNzYWdlcyBvbi9vZmYgKi8KLQogI2RlZmluZSBBUFBMREFUQV9NQVhfUkVDX1NJWkUJICA0MDI0CS8qIE1heGltdW0gc2l6ZSBvZiB0aGUgKi8KIAkJCQkJLyogZGF0YSBidWZmZXIgKi8KICNkZWZpbmUgQVBQTERBVEFfTUFYX1BST0NTIDEwMApAQCAtMzIsMTIgKzMwLDYgQEAKICNkZWZpbmUgUF9FUlJPUih4Li4uKQlwcmludGsoS0VSTl9FUlIgTVlfUFJJTlRfTkFNRSAiIGVycm9yOiAiIHgpCiAjZGVmaW5lIFBfV0FSTklORyh4Li4uKQlwcmludGsoS0VSTl9XQVJOSU5HIE1ZX1BSSU5UX05BTUUgIiBzdGF0dXM6ICIgeCkKIAotI2lmZGVmIEFQUExEQVRBX0RFQlVHCi0jZGVmaW5lIFBfREVCVUcoeC4uLikgICBwcmludGsoS0VSTl9ERUJVRyBNWV9QUklOVF9OQU1FICIgZGVidWc6ICIgeCkKLSNlbHNlCi0jZGVmaW5lIFBfREVCVUcoeC4uLikgICBkbyB7fSB3aGlsZSAoMCkKLSNlbmRpZgotCiBzdHJ1Y3QgYXBwbGRhdGFfb3BzIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAJc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKnN5c2N0bF9oZWFkZXI7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX2Jhc2UuYwppbmRleCA2NTVkNTI1Li45Y2IzZDkyIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfYmFzZS5jCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9iYXNlLmMKQEAgLTUsNyArNSw3IEBACiAgKiBFeHBvcnRzIGFwcGxkYXRhX3JlZ2lzdGVyX29wcygpIGFuZCBhcHBsZGF0YV91bnJlZ2lzdGVyX29wcygpIGZvciB0aGUKICAqIGRhdGEgZ2F0aGVyaW5nIG1vZHVsZXMuCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDAzLDIwMDYgSUJNIENvcnBvcmF0aW9uLCBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSC4KKyAqIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMywgMjAwOAogICoKICAqIEF1dGhvcjogR2VyYWxkIFNjaGFlZmVyIDxnZXJhbGQuc2NoYWVmZXJAZGUuaWJtLmNvbT4KICAqLwpAQCAtMTA4LDkgKzEwOCw2IEBACiAgKi8KIHN0YXRpYyB2b2lkIGFwcGxkYXRhX3RpbWVyX2Z1bmN0aW9uKHVuc2lnbmVkIGxvbmcgZGF0YSkKIHsKLQlQX0RFQlVHKCIgICAtPSBUaW1lciA9LVxuIik7Ci0JUF9ERUJVRygiQ1BVOiAlaSwgZXhwaXJlX2NvdW50OiAlaVxuIiwgc21wX3Byb2Nlc3Nvcl9pZCgpLAotCQlhdG9taWNfcmVhZCgmYXBwbGRhdGFfZXhwaXJlX2NvdW50KSk7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCkpIHsKIAkJYXRvbWljX3NldCgmYXBwbGRhdGFfZXhwaXJlX2NvdW50LCBudW1fb25saW5lX2NwdXMoKSk7CiAJCXF1ZXVlX3dvcmsoYXBwbGRhdGFfd3EsIChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKikgZGF0YSk7CkBAIC0xMjgsMTggKzEyNSwxNyBAQAogCXN0cnVjdCBhcHBsZGF0YV9vcHMgKm9wczsKIAlpbnQgaTsKIAotCVBfREVCVUcoIiAgLT0gV29yayBRdWV1ZSA9LVxuIik7CiAJaSA9IDA7CisJZ2V0X29ubGluZV9jcHVzKCk7CiAJc3Bpbl9sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAJbGlzdF9mb3JfZWFjaChsaCwgJmFwcGxkYXRhX29wc19saXN0KSB7CiAJCW9wcyA9IGxpc3RfZW50cnkobGgsIHN0cnVjdCBhcHBsZGF0YV9vcHMsIGxpc3QpOwotCQlQX0RFQlVHKCJsaXN0X2Zvcl9lYWNoIGxvb3A6ICVpKSBhY3RpdmUgPSAldSwgbmFtZSA9ICVzXG4iLAotCQkJKytpLCBvcHMtPmFjdGl2ZSwgb3BzLT5uYW1lKTsKIAkJaWYgKG9wcy0+YWN0aXZlID09IDEpIHsKIAkJCW9wcy0+Y2FsbGJhY2sob3BzLT5kYXRhKTsKIAkJfQogCX0KIAlzcGluX3VubG9jaygmYXBwbGRhdGFfb3BzX2xvY2spOworCXB1dF9vbmxpbmVfY3B1cygpOwogfQogCiAvKgpAQCAtMjEwLDcgKzIwNiw2IEBACiAJCQkJCQkgMCwgMSk7CiAJCX0KIAkJYXBwbGRhdGFfdGltZXJfYWN0aXZlID0gMTsKLQkJUF9JTkZPKCJNb25pdG9yaW5nIHRpbWVyIHN0YXJ0ZWQuXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBBUFBMREFUQV9ERUxfVElNRVI6CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaSkKQEAgLTIxOSw3ICsyMTQsNiBAQAogCQkJYnJlYWs7CiAJCWFwcGxkYXRhX3RpbWVyX2FjdGl2ZSA9IDA7CiAJCWF0b21pY19zZXQoJmFwcGxkYXRhX2V4cGlyZV9jb3VudCwgbnVtX29ubGluZV9jcHVzKCkpOwotCQlQX0lORk8oIk1vbml0b3JpbmcgdGltZXIgc3RvcHBlZC5cbiIpOwogCQlicmVhazsKIAljYXNlIEFQUExEQVRBX01PRF9USU1FUjoKIAkJcGVyX2NwdV9pbnRlcnZhbCA9ICh1NjQpIChhcHBsZGF0YV9pbnRlcnZhbCoxMDAwIC8KQEAgLTI2NiwxMiArMjYwLDE0IEBACiAJbGVuID0gKmxlbnA7CiAJaWYgKGNvcHlfZnJvbV91c2VyKGJ1ZiwgYnVmZmVyLCBsZW4gPiBzaXplb2YoYnVmKSA/IHNpemVvZihidWYpIDogbGVuKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CisJZ2V0X29ubGluZV9jcHVzKCk7CiAJc3Bpbl9sb2NrKCZhcHBsZGF0YV90aW1lcl9sb2NrKTsKIAlpZiAoYnVmWzBdID09ICcxJykKIAkJX19hcHBsZGF0YV92dGltZXJfc2V0dXAoQVBQTERBVEFfQUREX1RJTUVSKTsKIAllbHNlIGlmIChidWZbMF0gPT0gJzAnKQogCQlfX2FwcGxkYXRhX3Z0aW1lcl9zZXR1cChBUFBMREFUQV9ERUxfVElNRVIpOwogCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV90aW1lcl9sb2NrKTsKKwlwdXRfb25saW5lX2NwdXMoKTsKIG91dDoKIAkqbGVucCA9IGxlbjsKIAkqcHBvcyArPSBsZW47CkBAIC0zMDksMTggKzMwNSwxNSBAQAogCX0KIAlpbnRlcnZhbCA9IDA7CiAJc3NjYW5mKGJ1ZiwgIiVpIiwgJmludGVydmFsKTsKLQlpZiAoaW50ZXJ2YWwgPD0gMCkgewotCQlQX0VSUk9SKCJUaW1lciBDUFUgaW50ZXJ2YWwgaGFzIHRvIGJlID4gMCFcbiIpOworCWlmIChpbnRlcnZhbCA8PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAKKwlnZXRfb25saW5lX2NwdXMoKTsKIAlzcGluX2xvY2soJmFwcGxkYXRhX3RpbWVyX2xvY2spOwogCWFwcGxkYXRhX2ludGVydmFsID0gaW50ZXJ2YWw7CiAJX19hcHBsZGF0YV92dGltZXJfc2V0dXAoQVBQTERBVEFfTU9EX1RJTUVSKTsKIAlzcGluX3VubG9jaygmYXBwbGRhdGFfdGltZXJfbG9jayk7Ci0KLQlQX0lORk8oIk1vbml0b3JpbmcgQ1BVIGludGVydmFsIHNldCB0byAldSBtaWxsaXNlY29uZHMuXG4iLAotCQkgaW50ZXJ2YWwpOworCXB1dF9vbmxpbmVfY3B1cygpOwogb3V0OgogCSpsZW5wID0gbGVuOwogCSpwcG9zICs9IGxlbjsKQEAgLTQwMCwyMyArMzkzLDE2IEBACiAJCQlQX0VSUk9SKCJTVEFSVCBESUFHIDB4REMgZm9yICVzIGZhaWxlZCwgIgogCQkJCSJyZXR1cm4gY29kZTogJWRcbiIsIG9wcy0+bmFtZSwgcmMpOwogCQkJbW9kdWxlX3B1dChvcHMtPm93bmVyKTsKLQkJfSBlbHNlIHsKLQkJCVBfSU5GTygiTW9uaXRvcmluZyAlcyBkYXRhIGVuYWJsZWQsICIKLQkJCQkiRElBRyAweERDIHN0YXJ0ZWQuXG4iLCBvcHMtPm5hbWUpOworCQl9IGVsc2UKIAkJCW9wcy0+YWN0aXZlID0gMTsKLQkJfQogCX0gZWxzZSBpZiAoKGJ1ZlswXSA9PSAnMCcpICYmIChvcHMtPmFjdGl2ZSA9PSAxKSkgewogCQlvcHMtPmFjdGl2ZSA9IDA7CiAJCXJjID0gYXBwbGRhdGFfZGlhZyhvcHMtPnJlY29yZF9uciwgQVBQTERBVEFfU1RPUF9SRUMsCiAJCQkJKHVuc2lnbmVkIGxvbmcpIG9wcy0+ZGF0YSwgb3BzLT5zaXplLAogCQkJCW9wcy0+bW9kX2x2bCk7Ci0JCWlmIChyYyAhPSAwKSB7CisJCWlmIChyYyAhPSAwKQogCQkJUF9FUlJPUigiU1RPUCBESUFHIDB4REMgZm9yICVzIGZhaWxlZCwgIgogCQkJCSJyZXR1cm4gY29kZTogJWRcbiIsIG9wcy0+bmFtZSwgcmMpOwotCQl9IGVsc2UgewotCQkJUF9JTkZPKCJNb25pdG9yaW5nICVzIGRhdGEgZGlzYWJsZWQsICIKLQkJCQkiRElBRyAweERDIHN0b3BwZWQuXG4iLCBvcHMtPm5hbWUpOwotCQl9CiAJCW1vZHVsZV9wdXQob3BzLT5vd25lcik7CiAJfQogCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CkBAIC00NjIsNyArNDQ4LDYgQEAKIAlvcHMtPnN5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUob3BzLT5jdGxfdGFibGUpOwogCWlmICghb3BzLT5zeXNjdGxfaGVhZGVyKQogCQlnb3RvIG91dDsKLQlQX0lORk8oIiVzLW9wcyByZWdpc3RlcmVkIVxuIiwgb3BzLT5uYW1lKTsKIAlyZXR1cm4gMDsKIG91dDoKIAlzcGluX2xvY2soJmFwcGxkYXRhX29wc19sb2NrKTsKQEAgLTQ4NCw3ICs0NjksNiBAQAogCXNwaW5fdW5sb2NrKCZhcHBsZGF0YV9vcHNfbG9jayk7CiAJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUob3BzLT5zeXNjdGxfaGVhZGVyKTsKIAlrZnJlZShvcHMtPmN0bF90YWJsZSk7Ci0JUF9JTkZPKCIlcy1vcHMgdW5yZWdpc3RlcmVkIVxuIiwgb3BzLT5uYW1lKTsKIH0KIC8qKioqKioqKioqKioqKioqKioqKioqIG1vZHVsZS1vcHMgbWFuYWdlbWVudCA8RU5EPiAqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNTQ3LDI0ICs1MzEsMTkgQEAKIHsKIAlpbnQgaTsKIAotCVBfREVCVUcoInNpemVvZihwYXJhbWV0ZXJfbGlzdCkgPSAlbHVcbiIsCi0JCXNpemVvZihzdHJ1Y3QgYXBwbGRhdGFfcGFyYW1ldGVyX2xpc3QpKTsKLQogCWFwcGxkYXRhX3dxID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoImFwcGxkYXRhIik7Ci0JaWYgKCFhcHBsZGF0YV93cSkgewotCQlQX0VSUk9SKCJDb3VsZCBub3QgY3JlYXRlIHdvcmsgcXVldWVcbiIpOworCWlmICghYXBwbGRhdGFfd3EpCiAJCXJldHVybiAtRU5PTUVNOwotCX0KIAorCWdldF9vbmxpbmVfY3B1cygpOwogCWZvcl9lYWNoX29ubGluZV9jcHUoaSkKIAkJYXBwbGRhdGFfb25saW5lX2NwdShpKTsKKwlwdXRfb25saW5lX2NwdXMoKTsKIAogCS8qIFJlZ2lzdGVyIGNwdSBob3RwbHVnIG5vdGlmaWVyICovCiAJcmVnaXN0ZXJfaG90Y3B1X25vdGlmaWVyKCZhcHBsZGF0YV9uYik7CiAKIAlhcHBsZGF0YV9zeXNjdGxfaGVhZGVyID0gcmVnaXN0ZXJfc3lzY3RsX3RhYmxlKGFwcGxkYXRhX2Rpcl90YWJsZSk7Ci0KLQlQX0RFQlVHKCJCYXNlIGludGVyZmFjZSBpbml0aWFsaXplZC5cbiIpOwogCXJldHVybiAwOwogfQogCkBAIC01NzYsNyArNTU1LDkgQEAKIEVYUE9SVF9TWU1CT0xfR1BMKGFwcGxkYXRhX3VucmVnaXN0ZXJfb3BzKTsKIEVYUE9SVF9TWU1CT0xfR1BMKGFwcGxkYXRhX2RpYWcpOwogCisjaWZkZWYgQ09ORklHX1NXQVAKIEVYUE9SVF9TWU1CT0xfR1BMKHNpX3N3YXBpbmZvKTsKKyNlbmRpZgogRVhQT1JUX1NZTUJPTF9HUEwobnJfdGhyZWFkcyk7CiBFWFBPUlRfU1lNQk9MX0dQTChucl9ydW5uaW5nKTsKIEVYUE9SVF9TWU1CT0xfR1BMKG5yX2lvd2FpdCk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbWVtLmMgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbWVtLmMKaW5kZXggNTExODFjYy4uM2VkNTZiNyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX21lbS5jCisrKyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9tZW0uYwpAQCAtMTQsMTQgKzE0LDEzIEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSAiYXBwbGRhdGEuaCIKIAogCi0jZGVmaW5lIE1ZX1BSSU5UX05BTUUgImFwcGxkYXRhX21lbSIJCS8qIGZvciBkZWJ1ZyBtZXNzYWdlcywgZXRjLiAqLwogI2RlZmluZSBQMksoeCkgKCh4KSA8PCAoUEFHRV9TSElGVCAtIDEwKSkJLyogQ29udmVydHMgI1BhZ2VzIHRvIEtCICovCiAKIC8qCkBAIC03MCwzMCArNjksNiBAQAogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBhcHBsZGF0YV9tZW1fZGF0YTsKIAogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXBwbGRhdGFfZGVidWdfcHJpbnQoc3RydWN0IGFwcGxkYXRhX21lbV9kYXRhICptZW1fZGF0YSkKLXsKLQlQX0RFQlVHKCItLS0gTUVNIC0gUkVDT1JEIC0tLVxuIik7Ci0JUF9ERUJVRygicGdwZ2luICAgICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5wZ3BnaW4pOwotCVBfREVCVUcoInBncGdvdXQgICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+cGdwZ291dCk7Ci0JUF9ERUJVRygicHN3cGluICAgICA9ICU4bHUgUGFnZXNcbiIsIG1lbV9kYXRhLT5wc3dwaW4pOwotCVBfREVCVUcoInBzd3BvdXQgICAgPSAlOGx1IFBhZ2VzXG4iLCBtZW1fZGF0YS0+cHN3cG91dCk7Ci0JUF9ERUJVRygicGdhbGxvYyAgICA9ICU4bHUgXG4iLCBtZW1fZGF0YS0+cGdhbGxvYyk7Ci0JUF9ERUJVRygicGdmYXVsdCAgICA9ICU4bHUgXG4iLCBtZW1fZGF0YS0+cGdmYXVsdCk7Ci0JUF9ERUJVRygicGdtYWpmYXVsdCA9ICU4bHUgXG4iLCBtZW1fZGF0YS0+cGdtYWpmYXVsdCk7Ci0JUF9ERUJVRygic2hhcmVkcmFtICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT5zaGFyZWRyYW0pOwotCVBfREVCVUcoInRvdGFscmFtICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+dG90YWxyYW0pOwotCVBfREVCVUcoImZyZWVyYW0gICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+ZnJlZXJhbSk7Ci0JUF9ERUJVRygidG90YWxoaWdoICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT50b3RhbGhpZ2gpOwotCVBfREVCVUcoImZyZWVoaWdoICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+ZnJlZWhpZ2gpOwotCVBfREVCVUcoImJ1ZmZlcnJhbSAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+YnVmZmVycmFtKTsKLQlQX0RFQlVHKCJjYWNoZWQgICAgID0gJThsdSBLQlxuIiwgbWVtX2RhdGEtPmNhY2hlZCk7Ci0JUF9ERUJVRygidG90YWxzd2FwICA9ICU4bHUgS0JcbiIsIG1lbV9kYXRhLT50b3RhbHN3YXApOwotCVBfREVCVUcoImZyZWVzd2FwICAgPSAlOGx1IEtCXG4iLCBtZW1fZGF0YS0+ZnJlZXN3YXApOwotCVBfREVCVUcoInN5bmNfY291bnRfMSA9ICV1XG4iLCBtZW1fZGF0YS0+c3luY19jb3VudF8xKTsKLQlQX0RFQlVHKCJzeW5jX2NvdW50XzIgPSAldVxuIiwgbWVtX2RhdGEtPnN5bmNfY291bnRfMik7Ci0JUF9ERUJVRygidGltZXN0YW1wICAgID0gJWxYXG4iLCBtZW1fZGF0YS0+dGltZXN0YW1wKTsKLX0KLQogLyoKICAqIGFwcGxkYXRhX2dldF9tZW1fZGF0YSgpCiAgKgpAQCAtMTQwLDkgKzExNSw2IEBACiAKIAltZW1fZGF0YS0+dGltZXN0YW1wID0gZ2V0X2Nsb2NrKCk7CiAJbWVtX2RhdGEtPnN5bmNfY291bnRfMisrOwotI2lmZGVmIEFQUExEQVRBX0RFQlVHCi0JYXBwbGRhdGFfZGVidWdfcHJpbnQobWVtX2RhdGEpOwotI2VuZGlmCiB9CiAKIApAQCAtMTY0LDE3ICsxMzYsNyBAQAogICovCiBzdGF0aWMgaW50IF9faW5pdCBhcHBsZGF0YV9tZW1faW5pdCh2b2lkKQogewotCWludCByYzsKLQotCVBfREVCVUcoInNpemVvZihtZW0pID0gJWx1XG4iLCBzaXplb2Yoc3RydWN0IGFwcGxkYXRhX21lbV9kYXRhKSk7Ci0KLQlyYyA9IGFwcGxkYXRhX3JlZ2lzdGVyX29wcygmb3BzKTsKLQlpZiAocmMgIT0gMCkgewotCQlQX0VSUk9SKCJFcnJvciByZWdpc3RlcmluZyBvcHMsIHJjID0gJWlcbiIsIHJjKTsKLQl9IGVsc2UgewotCQlQX0RFQlVHKCIlcy1vcHMgcmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKLQl9Ci0JcmV0dXJuIHJjOworCXJldHVybiBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7CiB9CiAKIC8qCkBAIC0xODUsNyArMTQ3LDYgQEAKIHN0YXRpYyB2b2lkIF9fZXhpdCBhcHBsZGF0YV9tZW1fZXhpdCh2b2lkKQogewogCWFwcGxkYXRhX3VucmVnaXN0ZXJfb3BzKCZvcHMpOwotCVBfREVCVUcoIiVzLW9wcyB1bnJlZ2lzdGVyZWQhXG4iLCBvcHMubmFtZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX25ldF9zdW0uYyBiL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9uZXRfc3VtLmMKaW5kZXggNGQ4MzQ0My4uM2I3NDY1NSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX25ldF9zdW0uYworKysgYi9hcmNoL3MzOTAvYXBwbGRhdGEvYXBwbGRhdGFfbmV0X3N1bS5jCkBAIC0yMSw5ICsyMSw2IEBACiAjaW5jbHVkZSAiYXBwbGRhdGEuaCIKIAogCi0jZGVmaW5lIE1ZX1BSSU5UX05BTUUJImFwcGxkYXRhX25ldF9zdW0iCS8qIGZvciBkZWJ1ZyBtZXNzYWdlcywgZXRjLiAqLwotCi0KIC8qCiAgKiBOZXR3b3JrIGRhdGEKICAqCkBAIC02MCwyNiArNTcsNiBAQAogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKSBhcHBsZGF0YV9uZXRfc3VtX2RhdGE7CiAKIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGxkYXRhX3ByaW50X2RlYnVnKHN0cnVjdCBhcHBsZGF0YV9uZXRfc3VtX2RhdGEgKm5ldF9kYXRhKQotewotCVBfREVCVUcoIi0tLSBORVQgLSBSRUNPUkQgLS0tXG4iKTsKLQotCVBfREVCVUcoIm5yX2ludGVyZmFjZXMgPSAldVxuIiwgbmV0X2RhdGEtPm5yX2ludGVyZmFjZXMpOwotCVBfREVCVUcoInJ4X3BhY2tldHMgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfcGFja2V0cyk7Ci0JUF9ERUJVRygidHhfcGFja2V0cyAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT50eF9wYWNrZXRzKTsKLQlQX0RFQlVHKCJyeF9ieXRlcyAgICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnJ4X2J5dGVzKTsKLQlQX0RFQlVHKCJ0eF9ieXRlcyAgICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnR4X2J5dGVzKTsKLQlQX0RFQlVHKCJyeF9lcnJvcnMgICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPnJ4X2Vycm9ycyk7Ci0JUF9ERUJVRygidHhfZXJyb3JzICAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT50eF9lcnJvcnMpOwotCVBfREVCVUcoInJ4X2Ryb3BwZWQgICAgPSAlOGx1XG4iLCBuZXRfZGF0YS0+cnhfZHJvcHBlZCk7Ci0JUF9ERUJVRygidHhfZHJvcHBlZCAgICA9ICU4bHVcbiIsIG5ldF9kYXRhLT50eF9kcm9wcGVkKTsKLQlQX0RFQlVHKCJjb2xsaXNpb25zICAgID0gJThsdVxuIiwgbmV0X2RhdGEtPmNvbGxpc2lvbnMpOwotCi0JUF9ERUJVRygic3luY19jb3VudF8xID0gJXVcbiIsIG5ldF9kYXRhLT5zeW5jX2NvdW50XzEpOwotCVBfREVCVUcoInN5bmNfY291bnRfMiA9ICV1XG4iLCBuZXRfZGF0YS0+c3luY19jb3VudF8yKTsKLQlQX0RFQlVHKCJ0aW1lc3RhbXAgICAgPSAlbFhcbiIsIG5ldF9kYXRhLT50aW1lc3RhbXApOwotfQotCiAvKgogICogYXBwbGRhdGFfZ2V0X25ldF9zdW1fZGF0YSgpCiAgKgpAQCAtMTM1LDkgKzExMiw2IEBACiAKIAluZXRfZGF0YS0+dGltZXN0YW1wID0gZ2V0X2Nsb2NrKCk7CiAJbmV0X2RhdGEtPnN5bmNfY291bnRfMisrOwotI2lmZGVmIEFQUExEQVRBX0RFQlVHCi0JYXBwbGRhdGFfcHJpbnRfZGVidWcobmV0X2RhdGEpOwotI2VuZGlmCiB9CiAKIApAQCAtMTU5LDE3ICsxMzMsNyBAQAogICovCiBzdGF0aWMgaW50IF9faW5pdCBhcHBsZGF0YV9uZXRfaW5pdCh2b2lkKQogewotCWludCByYzsKLQotCVBfREVCVUcoInNpemVvZihuZXQpID0gJWx1XG4iLCBzaXplb2Yoc3RydWN0IGFwcGxkYXRhX25ldF9zdW1fZGF0YSkpOwotCi0JcmMgPSBhcHBsZGF0YV9yZWdpc3Rlcl9vcHMoJm9wcyk7Ci0JaWYgKHJjICE9IDApIHsKLQkJUF9FUlJPUigiRXJyb3IgcmVnaXN0ZXJpbmcgb3BzLCByYyA9ICVpXG4iLCByYyk7Ci0JfSBlbHNlIHsKLQkJUF9ERUJVRygiJXMtb3BzIHJlZ2lzdGVyZWQhXG4iLCBvcHMubmFtZSk7Ci0JfQotCXJldHVybiByYzsKKwlyZXR1cm4gYXBwbGRhdGFfcmVnaXN0ZXJfb3BzKCZvcHMpOwogfQogCiAvKgpAQCAtMTgwLDcgKzE0NCw2IEBACiBzdGF0aWMgdm9pZCBfX2V4aXQgYXBwbGRhdGFfbmV0X2V4aXQodm9pZCkKIHsKIAlhcHBsZGF0YV91bnJlZ2lzdGVyX29wcygmb3BzKTsKLQlQX0RFQlVHKCIlcy1vcHMgdW5yZWdpc3RlcmVkIVxuIiwgb3BzLm5hbWUpOwogfQogCiAKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9hcHBsZGF0YS9hcHBsZGF0YV9vcy5jIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMKaW5kZXggNmIzZWFmZS4uZWI0NGY5ZiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMKKysrIGIvYXJjaC9zMzkwL2FwcGxkYXRhL2FwcGxkYXRhX29zLmMKQEAgLTg5LDQ0ICs4OSw2IEBACiB9OwogCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBsZGF0YV9wcmludF9kZWJ1ZyhzdHJ1Y3QgYXBwbGRhdGFfb3NfZGF0YSAqb3NfZGF0YSkKLXsKLQlpbnQgYTAsIGExLCBhMiwgaTsKLQotCVBfREVCVUcoIi0tLSBPUyAtIFJFQ09SRCAtLS1cbiIpOwotCVBfREVCVUcoIm5yX3RocmVhZHMgICA9ICV1XG4iLCBvc19kYXRhLT5ucl90aHJlYWRzKTsKLQlQX0RFQlVHKCJucl9ydW5uaW5nICAgPSAldVxuIiwgb3NfZGF0YS0+bnJfcnVubmluZyk7Ci0JUF9ERUJVRygibnJfaW93YWl0ICAgID0gJXVcbiIsIG9zX2RhdGEtPm5yX2lvd2FpdCk7Ci0JUF9ERUJVRygiYXZlbnJ1bihpbnQpID0gJTh4IC8gJTh4IC8gJTh4XG4iLCBvc19kYXRhLT5hdmVucnVuWzBdLAotCQlvc19kYXRhLT5hdmVucnVuWzFdLCBvc19kYXRhLT5hdmVucnVuWzJdKTsKLQlhMCA9IG9zX2RhdGEtPmF2ZW5ydW5bMF07Ci0JYTEgPSBvc19kYXRhLT5hdmVucnVuWzFdOwotCWEyID0gb3NfZGF0YS0+YXZlbnJ1blsyXTsKLQlQX0RFQlVHKCJhdmVucnVuKGZsb2F0KSA9ICVkLiUwMmQgLyAlZC4lMDJkIC8gJWQuJTAyZFxuIiwKLQkJTE9BRF9JTlQoYTApLCBMT0FEX0ZSQUMoYTApLCBMT0FEX0lOVChhMSksIExPQURfRlJBQyhhMSksCi0JCUxPQURfSU5UKGEyKSwgTE9BRF9GUkFDKGEyKSk7Ci0KLQlQX0RFQlVHKCJucl9jcHVzID0gJXVcbiIsIG9zX2RhdGEtPm5yX2NwdXMpOwotCWZvciAoaSA9IDA7IGkgPCBvc19kYXRhLT5ucl9jcHVzOyBpKyspIHsKLQkJUF9ERUJVRygiY3B1JXUgOiB1c2VyID0gJXUsIG5pY2UgPSAldSwgc3lzdGVtID0gJXUsICIKLQkJCSJpZGxlID0gJXUsIGlycSA9ICV1LCBzb2Z0aXJxID0gJXUsIGlvd2FpdCA9ICV1LCAiCi0JCQkic3RlYWwgPSAldVxuIiwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0uY3B1X2lkLAotCQkJCW9zX2RhdGEtPm9zX2NwdVtpXS5wZXJfY3B1X3VzZXIsCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfbmljZSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9zeXN0ZW0sCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfaWRsZSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9pcnEsCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfc29mdGlycSwKLQkJCQlvc19kYXRhLT5vc19jcHVbaV0ucGVyX2NwdV9pb3dhaXQsCi0JCQkJb3NfZGF0YS0+b3NfY3B1W2ldLnBlcl9jcHVfc3RlYWwpOwotCX0KLQotCVBfREVCVUcoInN5bmNfY291bnRfMSA9ICV1XG4iLCBvc19kYXRhLT5zeW5jX2NvdW50XzEpOwotCVBfREVCVUcoInN5bmNfY291bnRfMiA9ICV1XG4iLCBvc19kYXRhLT5zeW5jX2NvdW50XzIpOwotCVBfREVCVUcoInRpbWVzdGFtcCAgICA9ICVsWFxuIiwgb3NfZGF0YS0+dGltZXN0YW1wKTsKLX0KLQogLyoKICAqIGFwcGxkYXRhX2dldF9vc19kYXRhKCkKICAqCkBAIC0xODAsMTMgKzE0MiwxMCBAQAogCQkJCQkgICBBUFBMREFUQV9TVEFSVF9JTlRFUlZBTF9SRUMsCiAJCQkJCSAgICh1bnNpZ25lZCBsb25nKSBvcHMuZGF0YSwgbmV3X3NpemUsCiAJCQkJCSAgIG9wcy5tb2RfbHZsKTsKLQkJCWlmIChyYyAhPSAwKSB7CisJCQlpZiAocmMgIT0gMCkKIAkJCQlQX0VSUk9SKCJvczogU1RBUlQgTkVXIERJQUcgMHhEQyBmYWlsZWQsICIKIAkJCQkJInJldHVybiBjb2RlOiAlZCwgbmV3IHNpemUgPSAlaVxuIiwgcmMsCiAJCQkJCW5ld19zaXplKTsKLQkJCQlQX0lORk8oIm9zOiBzdG9wcGluZyBvbGQgcmVjb3JkIG5vd1xuIik7Ci0JCQl9IGVsc2UKLQkJCQlQX0lORk8oIm9zOiBuZXcgcmVjb3JkIHNpemUgPSAlaVxuIiwgbmV3X3NpemUpOwogCiAJCQlyYyA9IGFwcGxkYXRhX2RpYWcoQVBQTERBVEFfUkVDT1JEX09TX0lELAogCQkJCQkgICBBUFBMREFUQV9TVE9QX1JFQywKQEAgLTIwNCw5ICsxNjMsNiBAQAogCX0KIAlvc19kYXRhLT50aW1lc3RhbXAgPSBnZXRfY2xvY2soKTsKIAlvc19kYXRhLT5zeW5jX2NvdW50XzIrKzsKLSNpZmRlZiBBUFBMREFUQV9ERUJVRwotCWFwcGxkYXRhX3ByaW50X2RlYnVnKG9zX2RhdGEpOwotI2VuZGlmCiB9CiAKIApAQCAtMjI3LDEyICsxODMsOSBAQAogCQlyYyA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwogCX0KLQlQX0RFQlVHKCJtYXguIHNpemVvZihvcykgPSAlaSwgc2l6ZW9mKG9zX2NwdSkgPSAlbHVcbiIsIG1heF9zaXplLAotCQlzaXplb2Yoc3RydWN0IGFwcGxkYXRhX29zX3Blcl9jcHUpKTsKIAogCWFwcGxkYXRhX29zX2RhdGEgPSBremFsbG9jKG1heF9zaXplLCBHRlBfRE1BKTsKIAlpZiAoYXBwbGRhdGFfb3NfZGF0YSA9PSBOVUxMKSB7Ci0JCVBfRVJST1IoIk5vIG1lbW9yeSBmb3IgJXMhXG4iLCBvcHMubmFtZSk7CiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMjQwLDE3ICsxOTMsMTIgQEAKIAlhcHBsZGF0YV9vc19kYXRhLT5wZXJfY3B1X3NpemUgPSBzaXplb2Yoc3RydWN0IGFwcGxkYXRhX29zX3Blcl9jcHUpOwogCWFwcGxkYXRhX29zX2RhdGEtPmNwdV9vZmZzZXQgICA9IG9mZnNldG9mKHN0cnVjdCBhcHBsZGF0YV9vc19kYXRhLAogCQkJCQkJCW9zX2NwdSk7Ci0JUF9ERUJVRygiY3B1IG9mZnNldCA9ICV1XG4iLCBhcHBsZGF0YV9vc19kYXRhLT5jcHVfb2Zmc2V0KTsKIAogCW9wcy5kYXRhID0gYXBwbGRhdGFfb3NfZGF0YTsKIAlvcHMuY2FsbGJhY2sgID0gJmFwcGxkYXRhX2dldF9vc19kYXRhOwogCXJjID0gYXBwbGRhdGFfcmVnaXN0ZXJfb3BzKCZvcHMpOwotCWlmIChyYyAhPSAwKSB7Ci0JCVBfRVJST1IoIkVycm9yIHJlZ2lzdGVyaW5nIG9wcywgcmMgPSAlaVxuIiwgcmMpOworCWlmIChyYyAhPSAwKQogCQlrZnJlZShhcHBsZGF0YV9vc19kYXRhKTsKLQl9IGVsc2UgewotCQlQX0RFQlVHKCIlcy1vcHMgcmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKLQl9CiBvdXQ6CiAJcmV0dXJuIHJjOwogfQpAQCAtMjY0LDcgKzIxMiw2IEBACiB7CiAJYXBwbGRhdGFfdW5yZWdpc3Rlcl9vcHMoJm9wcyk7CiAJa2ZyZWUoYXBwbGRhdGFfb3NfZGF0YSk7Ci0JUF9ERUJVRygiJXMtb3BzIHVucmVnaXN0ZXJlZCFcbiIsIG9wcy5uYW1lKTsKIH0KIAogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvY3J5cHRvL2NyeXB0X3MzOTAuaCBiL2FyY2gvczM5MC9jcnlwdG8vY3J5cHRfczM5MC5oCmluZGV4IDk5OTJmOTUuLjBlZjk4MjkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9jcnlwdG8vY3J5cHRfczM5MC5oCisrKyBiL2FyY2gvczM5MC9jcnlwdG8vY3J5cHRfczM5MC5oCkBAIC0yOTYsNiArMjk2LDEwIEBACiAJdW5zaWduZWQgY2hhciBzdGF0dXNbMTZdOwogCWludCByZXQ7CiAKKwkvKiBjaGVjayBpZiBDUEFDRiBmYWNpbGl0eSAoYml0IDE3KSBpcyBhdmFpbGFibGUgKi8KKwlpZiAoIShzdGZsKCkgJiAxVUxMIDw8ICgzMSAtIDE3KSkpCisJCXJldHVybiAwOworCiAJc3dpdGNoIChmdW5jICYgQ1JZUFRfUzM5MF9PUF9NQVNLKSB7CiAJY2FzZSBDUllQVF9TMzkwX0tNOgogCQlyZXQgPSBjcnlwdF9zMzkwX2ttKEtNX1FVRVJZLCAmc3RhdHVzLCBOVUxMLCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlwdG8vcHJuZy5jIGIvYXJjaC9zMzkwL2NyeXB0by9wcm5nLmMKaW5kZXggMGNmZWZkZC4uZWNhNzI0ZCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9wcm5nLmMKKysrIGIvYXJjaC9zMzkwL2NyeXB0by9wcm5nLmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KQEAgLTQ4LDYgKzQ5LDcgQEAKIAogc3RhdGljIGludCBwcm5nX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiB9CiAKQEAgLTE4NSwxMSArMTg3LDggQEAKIAlwcm5nX3NlZWQoMTYpOwogCiAJcmV0ID0gbWlzY19yZWdpc3RlcigmcHJuZ19kZXYpOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkgICAgICAgIkNvdWxkIG5vdCByZWdpc3RlciBtaXNjIGRldmljZSBmb3IgUFJORy5cbiIpOworCWlmIChyZXQpCiAJCWdvdG8gb3V0X2J1ZjsKLQl9CiAJcmV0dXJuIDA7CiAKIG91dF9idWY6CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvZGVmY29uZmlnIGIvYXJjaC9zMzkwL2RlZmNvbmZpZwppbmRleCBhYTM0MWQwLi5jNWNkYjk3IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvZGVmY29uZmlnCisrKyBiL2FyY2gvczM5MC9kZWZjb25maWcKQEAgLTEsNyArMSw3IEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjUKLSMgV2VkIEFwciAzMCAxMTowNzo0NSAyMDA4CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIEZyaSBNYXkgMzAgMDk6NDk6MzMgMjAwOAogIwogQ09ORklHX1NDSEVEX01DPXkKIENPTkZJR19NTVU9eQpAQCAtMTAzLDYgKzEwMyw3IEBACiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKIENPTkZJR19NT0RVTEVfVU5MT0FEPXkKICMgQ09ORklHX01PRFVMRV9GT1JDRV9VTkxPQUQgaXMgbm90IHNldAogQ09ORklHX01PRFZFUlNJT05TPXkKQEAgLTE3Myw2ICsxNzQsNyBAQAogIyBDT05GSUdfUFJFRU1QVF9SQ1UgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CiBDT05GSUdfQVJDSF9TUEFSU0VNRU1fREVGQVVMVD15CitDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKIENPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKICMgQ09ORklHX0ZMQVRNRU1fTUFOVUFMIGlzIG5vdCBzZXQKICMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldApAQCAtMjEwLDYgKzIxMiw3IEBACiBDT05GSUdfUEZBVUxUPXkKICMgQ09ORklHX1NIQVJFRF9LRVJORUwgaXMgbm90IHNldAogIyBDT05GSUdfQ01NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBR0VfU1RBVEVTIGlzIG5vdCBzZXQKIENPTkZJR19WSVJUX1RJTUVSPXkKIENPTkZJR19WSVJUX0NQVV9BQ0NPVU5USU5HPXkKICMgQ09ORklHX0FQUExEQVRBX0JBU0UgaXMgbm90IHNldApAQCAtNjIwLDYgKzYyMyw3IEBACiAjCiAjIENPTkZJR19NRU1TVElDSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVdfTEVEUyBpcyBub3Qgc2V0CitDT05GSUdfQUNDRVNTSUJJTElUWT15CiAKICMKICMgRmlsZSBzeXN0ZW1zCkBAIC03NTQsMTEgKzc1OCwxMiBAQAogQ09ORklHX01BR0lDX1NZU1JRPXkKICMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19GUz15Ci1DT05GSUdfSEVBREVSU19DSEVDSz15CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19LRVJORUw9eQogIyBDT05GSUdfU0NIRURfREVCVUcgaXMgbm90IHNldAogIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CiAjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX1BSRUVNUFQ9eQogIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvaHlwZnMvaW5vZGUuYyBiL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jCmluZGV4IDRiMDEwZmYuLjczODM3ODEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jCisrKyBiL2FyY2gvczM5MC9oeXBmcy9pbm9kZS5jCkBAIC0xNTAsMzMgKzE1MCwyNCBAQAogCQkJICAgICAgdW5zaWduZWQgbG9uZyBucl9zZWdzLCBsb2ZmX3Qgb2Zmc2V0KQogewogCWNoYXIgKmRhdGE7Ci0Jc2l6ZV90IGxlbjsKKwlzc2l6ZV90IHJldDsKIAlzdHJ1Y3QgZmlsZSAqZmlscCA9IGlvY2ItPmtpX2ZpbHA7CiAJLyogWFhYOiB0ZW1wb3JhcnkgKi8KIAljaGFyIF9fdXNlciAqYnVmID0gaW92WzBdLmlvdl9iYXNlOwogCXNpemVfdCBjb3VudCA9IGlvdlswXS5pb3ZfbGVuOwogCi0JaWYgKG5yX3NlZ3MgIT0gMSkgewotCQljb3VudCA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0OwotCX0KKwlpZiAobnJfc2VncyAhPSAxKQorCQlyZXR1cm4gLUVJTlZBTDsKIAogCWRhdGEgPSBmaWxwLT5wcml2YXRlX2RhdGE7Ci0JbGVuID0gc3RybGVuKGRhdGEpOwotCWlmIChvZmZzZXQgPiBsZW4pIHsKLQkJY291bnQgPSAwOwotCQlnb3RvIG91dDsKLQl9Ci0JaWYgKGNvdW50ID4gbGVuIC0gb2Zmc2V0KQotCQljb3VudCA9IGxlbiAtIG9mZnNldDsKLQlpZiAoY29weV90b191c2VyKGJ1ZiwgZGF0YSArIG9mZnNldCwgY291bnQpKSB7Ci0JCWNvdW50ID0gLUVGQVVMVDsKLQkJZ290byBvdXQ7Ci0JfQotCWlvY2ItPmtpX3BvcyArPSBjb3VudDsKKwlyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2Zmc2V0LCBkYXRhLCBzdHJsZW4oZGF0YSkpOworCWlmIChyZXQgPD0gMCkKKwkJcmV0dXJuIHJldDsKKworCWlvY2ItPmtpX3BvcyArPSByZXQ7CiAJZmlsZV9hY2Nlc3NlZChmaWxwKTsKLW91dDoKLQlyZXR1cm4gY291bnQ7CisKKwlyZXR1cm4gcmV0OwogfQogc3RhdGljIHNzaXplX3QgaHlwZnNfYWlvX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIG5yX3NlZ3MsIGxvZmZfdCBvZmZzZXQpCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlIGIvYXJjaC9zMzkwL2tlcm5lbC9NYWtlZmlsZQppbmRleCA2MzAyZjUwLi41MGY2NTdlIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL01ha2VmaWxlCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvTWFrZWZpbGUKQEAgLTcsOSArNywxNCBAQAogIwogQ0ZMQUdTX3NtcC5vCTo9IC1Xbm8tbm9ubnVsbAogCisjCisjIFBhc3MgVVRTX01BQ0hJTkUgZm9yIHVzZXJfcmVnc2V0IGRlZmluaXRpb24KKyMKK0NGTEFHU19wdHJhY2UubwkJKz0gLURVVFNfTUFDSElORT0nIiQoVVRTX01BQ0hJTkUpIicKKwogb2JqLXkJOj0gIGJpdG1hcC5vIHRyYXBzLm8gdGltZS5vIHByb2Nlc3MubyBiYXNlLm8gZWFybHkubyBcCiAgICAgICAgICAgICBzZXR1cC5vIHN5c19zMzkwLm8gcHRyYWNlLm8gc2lnbmFsLm8gY3BjbWQubyBlYmNkaWMubyBcCi0JICAgIHMzOTBfZXh0Lm8gZGVidWcubyBpcnEubyBpcGwubyBkaXMubyBkaWFnLm8KKwkgICAgczM5MF9leHQubyBkZWJ1Zy5vIGlycS5vIGlwbC5vIGRpcy5vIGRpYWcubyBtZW1fZGV0ZWN0Lm8KIAogb2JqLXkJKz0gJChpZiAkKENPTkZJR182NEJJVCksZW50cnk2NC5vLGVudHJ5Lm8pCiBvYmoteQkrPSAkKGlmICQoQ09ORklHXzY0QklUKSxyZWlwbDY0Lm8scmVpcGwubykKQEAgLTIzLDcgKzI4LDcgQEAKIGNvbXBhdC1vYmotJChDT05GSUdfQVVESVQpCSs9IGNvbXBhdF9hdWRpdC5vCiBvYmotJChDT05GSUdfQ09NUEFUKQkJKz0gY29tcGF0X2xpbnV4Lm8gY29tcGF0X3NpZ25hbC5vIFwKIAkJCQkJY29tcGF0X3dyYXBwZXIubyBjb21wYXRfZXhlY19kb21haW4ubyBcCi0JCQkJCWJpbmZtdF9lbGYzMi5vICQoY29tcGF0LW9iai15KQorCQkJCQkkKGNvbXBhdC1vYmoteSkKIAogb2JqLSQoQ09ORklHX1ZJUlRfVElNRVIpCSs9IHZ0aW1lLm8KIG9iai0kKENPTkZJR19TVEFDS1RSQUNFKQkrPSBzdGFja3RyYWNlLm8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvYmluZm10X2VsZjMyLmMgYi9hcmNoL3MzOTAva2VybmVsL2JpbmZtdF9lbGYzMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTFjMzE1Li4wMDAwMDAwCi0tLSBhL2FyY2gvczM5MC9rZXJuZWwvYmluZm10X2VsZjMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQgKzAsMCBAQAotLyoKLSAqIFN1cHBvcnQgZm9yIDMyLWJpdCBMaW51eCBmb3IgUzM5MCBFTEYgYmluYXJpZXMuCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAwIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILCBJQk0gQ29ycG9yYXRpb24KLSAqIEF1dGhvcihzKTogR2VyaGFyZCBUb25uICh0b25AZGUuaWJtLmNvbSkKLSAqCi0gKiBIZWF2aWx5IGluc3BpcmVkIGJ5IHRoZSAzMi1iaXQgU3BhcmMgY29tcGF0IGNvZGUgd2hpY2ggaXMKLSAqIENvcHlyaWdodCAoQykgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCBEYXZpZCBTLiBNaWxsZXIgKGRhdmVtQHJlZGhhdC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTggSmFrdWIgSmVsaW5layAgIChqakB1bHRyYS5saW51eC5jeikKLSAqLwotCi0jZGVmaW5lIF9fQVNNUzM5MF9FTEZfSAotCi0jaW5jbHVkZSA8bGludXgvdGltZS5oPgotCi0vKgotICogVGhlc2UgYXJlIHVzZWQgdG8gc2V0IHBhcmFtZXRlcnMgaW4gdGhlIGNvcmUgZHVtcHMuCi0gKi8KLSNkZWZpbmUgRUxGX0NMQVNTCUVMRkNMQVNTMzIKLSNkZWZpbmUgRUxGX0RBVEEJRUxGREFUQTJNU0IKLSNkZWZpbmUgRUxGX0FSQ0gJRU1fUzM5MAotCi0vKgotICogVGhpcyBpcyB1c2VkIHRvIGVuc3VyZSB3ZSBkb24ndCBsb2FkIHNvbWV0aGluZyBmb3IgdGhlIHdyb25nIGFyY2hpdGVjdHVyZS4KLSAqLwotI2RlZmluZSBlbGZfY2hlY2tfYXJjaCh4KSBcCi0JKCgoeCktPmVfbWFjaGluZSA9PSBFTV9TMzkwIHx8ICh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTBfT0xEKSBcCi0gICAgICAgICAmJiAoeCktPmVfaWRlbnRbRUlfQ0xBU1NdID09IEVMRl9DTEFTUykKLQotLyogRUxGIHJlZ2lzdGVyIGRlZmluaXRpb25zICovCi0jZGVmaW5lIE5VTV9HUFJTICAgICAgMTYKLSNkZWZpbmUgTlVNX0ZQUlMgICAgICAxNgotI2RlZmluZSBOVU1fQUNSUyAgICAgIDE2ICAgIAotCi0vKiBGb3IgU1ZSNC9TMzkwIHRoZSBmdW5jdGlvbiBwb2ludGVyIHRvIGJlIHJlZ2lzdGVyZWQgd2l0aCBgYXRleGl0YCBpcwotICAgcGFzc2VkIGluIFIxNC4gKi8KLSNkZWZpbmUgRUxGX1BMQVRfSU5JVChfciwgbG9hZF9hZGRyKSBcCi0JZG8geyBcCi0JCV9yLT5ncHJzWzE0XSA9IDA7IFwKLQl9IHdoaWxlKDApCi0KLSNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKLSNkZWZpbmUgRUxGX0VYRUNfUEFHRVNJWkUgICAgICAgNDA5NgotCi0vKiBUaGlzIGlzIHRoZSBsb2NhdGlvbiB0aGF0IGFuIEVUX0RZTiBwcm9ncmFtIGlzIGxvYWRlZCBpZiBleGVjJ2VkLiAgVHlwaWNhbAotICAgdXNlIG9mIHRoaXMgaXMgdG8gaW52b2tlICIuL2xkLnNvIHNvbWVwcm9nIiB0byB0ZXN0IG91dCBhIG5ldyB2ZXJzaW9uIG9mCi0gICB0aGUgbG9hZGVyLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBpdCBpcyBvdXQgb2YgdGhlIHdheSBvZiB0aGUgcHJvZ3JhbQotICAgdGhhdCBpdCB3aWxsICJleGVjIiwgYW5kIHRoYXQgdGhlcmUgaXMgc3VmZmljaWVudCByb29tIGZvciB0aGUgYnJrLiAgKi8KLQotI2RlZmluZSBFTEZfRVRfRFlOX0JBU0UgICAgICAgICAoVEFTS19TSVpFIC8gMyAqIDIpCi0KLS8qIFdvdywgdGhlICJtYWluIiBhcmNoIG5lZWRzIGFyY2ggZGVwZW5kZW50IGZ1bmN0aW9ucyB0b28uLiA6KSAqLwotCi0vKiByZWdzIGlzIHN0cnVjdCBwdF9yZWdzLCBwcl9yZWcgaXMgZWxmX2dyZWdzZXRfdCAod2hpY2ggaXMKLSAgIG5vdyBzdHJ1Y3RfdXNlcl9yZWdzLCB0aGV5IGFyZSBkaWZmZXJlbnQpICovCi0KLSNkZWZpbmUgRUxGX0NPUkVfQ09QWV9SRUdTKHByX3JlZywgcmVncykgZHVtcF9yZWdzMzIocmVncywgJnByX3JlZyk7Ci0KLSNkZWZpbmUgRUxGX0NPUkVfQ09QWV9UQVNLX1JFR1ModHNrLCByZWdzKSBkdW1wX3Rhc2tfcmVnczMyKHRzaywgcmVncykKLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX0ZQUkVHUyh0c2ssIGZwcmVncykgZHVtcF90YXNrX2ZwdSh0c2ssIGZwcmVncykKLQotLyogVGhpcyB5aWVsZHMgYSBtYXNrIHRoYXQgdXNlciBwcm9ncmFtcyBjYW4gdXNlIHRvIGZpZ3VyZSBvdXQgd2hhdAotICAgaW5zdHJ1Y3Rpb24gc2V0IHRoaXMgQ1BVIHN1cHBvcnRzLiAqLwotCi0jZGVmaW5lIEVMRl9IV0NBUCAoMCkKLQotLyogVGhpcyB5aWVsZHMgYSBzdHJpbmcgdGhhdCBsZC5zbyB3aWxsIHVzZSB0byBsb2FkIGltcGxlbWVudGF0aW9uCi0gICBzcGVjaWZpYyBsaWJyYXJpZXMgZm9yIG9wdGltaXphdGlvbi4gIFRoaXMgaXMgbW9yZSBzcGVjaWZpYyBpbgotICAgaW50ZW50IHRoYW4gcG9raW5nIGF0IHVuYW1lIG9yIC9wcm9jL2NwdWluZm8uCi0KLSAgIEZvciB0aGUgbW9tZW50LCB3ZSBoYXZlIG9ubHkgb3B0aW1pemF0aW9ucyBmb3IgdGhlIEludGVsIGdlbmVyYXRpb25zLAotICAgYnV0IHRoYXQgY291bGQgY2hhbmdlLi4uICovCi0KLSNkZWZpbmUgRUxGX1BMQVRGT1JNIChOVUxMKQotCi0jZGVmaW5lIFNFVF9QRVJTT05BTElUWShleCwgaWJjczIpCQkJXAotZG8gewkJCQkJCQlcCi0JaWYgKGliY3MyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotCQlzZXRfcGVyc29uYWxpdHkoUEVSX1NWUjQpOyAgICAgICAgICAgICAgXAotCWVsc2UgaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICE9IFBFUl9MSU5VWDMyKSAgIFwKLQkJc2V0X3BlcnNvbmFsaXR5KFBFUl9MSU5VWCk7ICAgICAgICAgICAgIFwKLQlzZXRfdGhyZWFkX2ZsYWcoVElGXzMxQklUKTsJCQlcCi19IHdoaWxlICgwKQotCi0jaW5jbHVkZSAiY29tcGF0X2xpbnV4LmgiCi0KLXR5cGVkZWYgX3MzOTBfZnBfcmVnczMyIGVsZl9mcHJlZ3NldF90OwotCi10eXBlZGVmIHN0cnVjdAotewotCQotCV9wc3dfdDMyCXBzdzsKLQlfX3UzMgkJZ3Byc1tfX05VTV9HUFJTXTsgCi0JX191MzIJCWFjcnNbX19OVU1fQUNSU107IAotCV9fdTMyCQlvcmlnX2dwcjI7Ci19IHMzOTBfcmVnczMyOwotdHlwZWRlZiBzMzkwX3JlZ3MzMiBlbGZfZ3JlZ3NldF90OwotCi1zdGF0aWMgaW5saW5lIGludCBkdW1wX3JlZ3MzMihzdHJ1Y3QgcHRfcmVncyAqcHRyZWdzLCBlbGZfZ3JlZ3NldF90ICpyZWdzKQotewotCWludCBpOwotCi0JbWVtY3B5KCZyZWdzLT5wc3cubWFzaywgJnB0cmVncy0+cHN3Lm1hc2ssIDQpOwotCW1lbWNweSgmcmVncy0+cHN3LmFkZHIsIChjaGFyICopJnB0cmVncy0+cHN3LmFkZHIgKyA0LCA0KTsKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX0dQUlM7IGkrKykKLQkJcmVncy0+Z3Byc1tpXSA9IHB0cmVncy0+Z3Byc1tpXTsKLQlzYXZlX2FjY2Vzc19yZWdzKHJlZ3MtPmFjcnMpOwotCXJlZ3MtPm9yaWdfZ3ByMiA9IHB0cmVncy0+b3JpZ19ncHIyOwotCXJldHVybiAxOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1wX3Rhc2tfcmVnczMyKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBlbGZfZ3JlZ3NldF90ICpyZWdzKQotewotCXN0cnVjdCBwdF9yZWdzICpwdHJlZ3MgPSB0YXNrX3B0X3JlZ3ModHNrKTsKLQlpbnQgaTsKLQotCW1lbWNweSgmcmVncy0+cHN3Lm1hc2ssICZwdHJlZ3MtPnBzdy5tYXNrLCA0KTsKLQltZW1jcHkoJnJlZ3MtPnBzdy5hZGRyLCAoY2hhciAqKSZwdHJlZ3MtPnBzdy5hZGRyICsgNCwgNCk7Ci0JZm9yIChpID0gMDsgaSA8IE5VTV9HUFJTOyBpKyspCi0JCXJlZ3MtPmdwcnNbaV0gPSBwdHJlZ3MtPmdwcnNbaV07Ci0JbWVtY3B5KHJlZ3MtPmFjcnMsIHRzay0+dGhyZWFkLmFjcnMsIHNpemVvZihyZWdzLT5hY3JzKSk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19mcHUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9mcHJlZ3NldF90ICpmcHJlZ3MpCi17Ci0JaWYgKHRzayA9PSBjdXJyZW50KQotCQlzYXZlX2ZwX3JlZ3MoKHMzOTBfZnBfcmVncyAqKSBmcHJlZ3MpOwotCWVsc2UKLQkJbWVtY3B5KGZwcmVncywgJnRzay0+dGhyZWFkLmZwX3JlZ3MsIHNpemVvZihlbGZfZnByZWdzZXRfdCkpOwotCXJldHVybiAxOwotfQotCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvZWxmY29yZS5oPgotI2luY2x1ZGUgPGxpbnV4L2JpbmZtdHMuaD4KLSNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KLQotI2RlZmluZSBlbGZfcHJzdGF0dXMgZWxmX3Byc3RhdHVzMzIKLXN0cnVjdCBlbGZfcHJzdGF0dXMzMgotewotCXN0cnVjdCBlbGZfc2lnaW5mbyBwcl9pbmZvOwkvKiBJbmZvIGFzc29jaWF0ZWQgd2l0aCBzaWduYWwgKi8KLQlzaG9ydAlwcl9jdXJzaWc7CQkvKiBDdXJyZW50IHNpZ25hbCAqLwotCXUzMglwcl9zaWdwZW5kOwkvKiBTZXQgb2YgcGVuZGluZyBzaWduYWxzICovCi0JdTMyCXByX3NpZ2hvbGQ7CS8qIFNldCBvZiBoZWxkIHNpZ25hbHMgKi8KLQlwaWRfdAlwcl9waWQ7Ci0JcGlkX3QJcHJfcHBpZDsKLQlwaWRfdAlwcl9wZ3JwOwotCXBpZF90CXByX3NpZDsKLQlzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgcHJfdXRpbWU7CS8qIFVzZXIgdGltZSAqLwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl9zdGltZTsJLyogU3lzdGVtIHRpbWUgKi8KLQlzdHJ1Y3QgY29tcGF0X3RpbWV2YWwgcHJfY3V0aW1lOwkvKiBDdW11bGF0aXZlIHVzZXIgdGltZSAqLwotCXN0cnVjdCBjb21wYXRfdGltZXZhbCBwcl9jc3RpbWU7CS8qIEN1bXVsYXRpdmUgc3lzdGVtIHRpbWUgKi8KLQllbGZfZ3JlZ3NldF90IHByX3JlZzsJLyogR1AgcmVnaXN0ZXJzICovCi0JaW50IHByX2ZwdmFsaWQ7CQkvKiBUcnVlIGlmIG1hdGggY28tcHJvY2Vzc29yIGJlaW5nIHVzZWQuICAqLwotfTsKLQotI2RlZmluZSBlbGZfcHJwc2luZm8gZWxmX3BycHNpbmZvMzIKLXN0cnVjdCBlbGZfcHJwc2luZm8zMgotewotCWNoYXIJcHJfc3RhdGU7CS8qIG51bWVyaWMgcHJvY2VzcyBzdGF0ZSAqLwotCWNoYXIJcHJfc25hbWU7CS8qIGNoYXIgZm9yIHByX3N0YXRlICovCi0JY2hhcglwcl96b21iOwkvKiB6b21iaWUgKi8KLQljaGFyCXByX25pY2U7CS8qIG5pY2UgdmFsICovCi0JdTMyCXByX2ZsYWc7CS8qIGZsYWdzICovCi0JdTE2CXByX3VpZDsKLQl1MTYJcHJfZ2lkOwotCXBpZF90CXByX3BpZCwgcHJfcHBpZCwgcHJfcGdycCwgcHJfc2lkOwotCS8qIExvdHMgbWlzc2luZyAqLwotCWNoYXIJcHJfZm5hbWVbMTZdOwkvKiBmaWxlbmFtZSBvZiBleGVjdXRhYmxlICovCi0JY2hhcglwcl9wc2FyZ3NbRUxGX1BSQVJHU1pdOwkvKiBpbml0aWFsIHBhcnQgb2YgYXJnIGxpc3QgKi8KLX07Ci0KLSNpbmNsdWRlIDxsaW51eC9oaWdodWlkLmg+Ci0KLS8qCi0jZGVmaW5lIGluaXRfZWxmX2JpbmZtdCBpbml0X2VsZjMyX2JpbmZtdAotKi8KLQotI3VuZGVmIHN0YXJ0X3RocmVhZAotI2RlZmluZSBzdGFydF90aHJlYWQgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3RocmVhZDMxIAotCi1zdGF0aWMgaW5saW5lIHZvaWQgc3RhcnRfdGhyZWFkMzEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgbmV3X3BzdywKLQkJCQkgIHVuc2lnbmVkIGxvbmcgbmV3X3N0YWNrcCkKLXsKLQlzZXRfZnMoVVNFUl9EUyk7Ci0JcmVncy0+cHN3Lm1hc2sJPSBwc3dfdXNlcjMyX2JpdHM7Ci0JcmVncy0+cHN3LmFkZHIJPSBuZXdfcHN3OwotCXJlZ3MtPmdwcnNbMTVdCT0gbmV3X3N0YWNrcDsKLQljcnN0X3RhYmxlX2Rvd25ncmFkZShjdXJyZW50LT5tbSwgMVVMIDw8IDMxKTsKLX0KLQotTU9EVUxFX0RFU0NSSVBUSU9OKCJCaW5hcnkgZm9ybWF0IGxvYWRlciBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIDMyYml0IExpbnV4IGZvciBTMzkwIGJpbmFyaWVzLCIKLSAgICAgICAgICAgICAgICAgICAiIENvcHlyaWdodCAyMDAwIElCTSBDb3Jwb3JhdGlvbiIpOyAKLU1PRFVMRV9BVVRIT1IoIkdlcmhhcmQgVG9ubiA8dG9uQGRlLmlibS5jb20+Iik7Ci0KLSN1bmRlZiBNT0RVTEVfREVTQ1JJUFRJT04KLSN1bmRlZiBNT0RVTEVfQVVUSE9SCi0KLSN1bmRlZiBjcHV0aW1lX3RvX3RpbWV2YWwKLSNkZWZpbmUgY3B1dGltZV90b190aW1ldmFsIGNwdXRpbWVfdG9fY29tcGF0X3RpbWV2YWwKLXN0YXRpYyBpbmxpbmUgdm9pZAotY3B1dGltZV90b19jb21wYXRfdGltZXZhbChjb25zdCBjcHV0aW1lX3QgY3B1dGltZSwgc3RydWN0IGNvbXBhdF90aW1ldmFsICp2YWx1ZSkKLXsKLQl2YWx1ZS0+dHZfdXNlYyA9IGNwdXRpbWUgJSAxMDAwMDAwOwotCXZhbHVlLT50dl9zZWMgPSBjcHV0aW1lIC8gMTAwMDAwMDsKLX0KLQotI2luY2x1ZGUgIi4uLy4uLy4uL2ZzL2JpbmZtdF9lbGYuYyIKLQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9jb21wYXRfcHRyYWNlLmggYi9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9wdHJhY2UuaAppbmRleCA0MTlhZWY5Li5jZGU4MWZhIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9wdHJhY2UuaAorKysgYi9hcmNoL3MzOTAva2VybmVsL2NvbXBhdF9wdHJhY2UuaApAQCAtMSw3ICsxLDcgQEAKICNpZm5kZWYgX1BUUkFDRTMyX0gKICNkZWZpbmUgX1BUUkFDRTMyX0gKIAotI2luY2x1ZGUgImNvbXBhdF9saW51eC5oIiAgLyogbmVlZGVkIGZvciBfcHN3X3QzMiAqLworI2luY2x1ZGUgImNvbXBhdF9saW51eC5oIiAgLyogbmVlZGVkIGZvciBwc3dfY29tcGF0X3QgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewogCV9fdTMyIGNyWzNdOwpAQCAtMzgsNyArMzgsNyBAQAogCiBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdDMyCiB7Ci0JX3Bzd190MzIgcHN3OworCXBzd19jb21wYXRfdCBwc3c7CiAJdTMyIGdwcnNbTlVNX0dQUlNdOwogCXUzMiBhY3JzW05VTV9BQ1JTXTsKIAl1MzIgb3JpZ19ncHIyOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9kZWJ1Zy5jIGIvYXJjaC9zMzkwL2tlcm5lbC9kZWJ1Zy5jCmluZGV4IGM5M2QxMjkuLmQ4MGZjZDQgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZGVidWcuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2RlYnVnLmMKQEAgLTEwNzksNyArMTA3OSw2IEBACiAJczM5MGRiZl9zeXNjdGxfaGVhZGVyID0gcmVnaXN0ZXJfc3lzY3RsX3RhYmxlKHMzOTBkYmZfZGlyX3RhYmxlKTsKIAltdXRleF9sb2NrKCZkZWJ1Z19tdXRleCk7CiAJZGVidWdfZGVidWdmc19yb290X2VudHJ5ID0gZGVidWdmc19jcmVhdGVfZGlyKERFQlVHX0RJUl9ST09ULE5VTEwpOwotCXByaW50ayhLRVJOX0lORk8gImRlYnVnOiBJbml0aWFsaXphdGlvbiBjb21wbGV0ZVxuIik7CiAJaW5pdGlhbGl6ZWQgPSAxOwogCW11dGV4X3VubG9jaygmZGVidWdfbXV0ZXgpOwogCkBAIC0xMTkzLDcgKzExOTIsNiBAQAogCWZvcig7IGlzc3BhY2UoKmJ1Zik7IGJ1ZisrKTsKIAlyYyA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgJmJ1ZiwgMTApOwogCWlmKCpidWYpewotCQlwcmludGsoImRlYnVnOiBubyBpbnRlZ2VyIHNwZWNpZmllZCFcbiIpOwogCQlyYyA9IC1FSU5WQUw7CiAJfQogCXJldHVybiByYzsKQEAgLTEzNDAsMTkgKzEzMzgsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIAltZW1zZXQoaWQtPmFyZWFzW2ldW2pdLCAwLCBQQUdFX1NJWkUpOwogCQkJfQogCQl9Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiZGVidWc6ICVzOiBhbGwgYXJlYXMgZmx1c2hlZFxuIixpZC0+bmFtZSk7CiAgICAgICAgIH0gZWxzZSBpZihhcmVhID49IDAgJiYgYXJlYSA8IGlkLT5ucl9hcmVhcykgewogICAgICAgICAgICAgICAgIGlkLT5hY3RpdmVfZW50cmllc1thcmVhXSA9IDA7CiAJCWlkLT5hY3RpdmVfcGFnZXNbYXJlYV0gPSAwOwogCQlmb3IoaSA9IDA7IGkgPCBpZC0+cGFnZXNfcGVyX2FyZWE7IGkrKykgewogICAgICAgICAgICAgICAgIAltZW1zZXQoaWQtPmFyZWFzW2FyZWFdW2ldLDAsUEFHRV9TSVpFKTsKIAkJfQotICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gImRlYnVnOiAlczogYXJlYSAlaSBoYXMgYmVlbiBmbHVzaGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgaWQtPm5hbWUsIGFyZWEpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8KLSAgICAgICAgICAgICAgICAgICAgICAiZGVidWc6ICVzOiBhcmVhICVpIGNhbm5vdCBiZSBmbHVzaGVkIChyYW5nZTogJWkgLSAlaSlcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBpZC0+bmFtZSwgYXJlYSwgMCwgaWQtPm5yX2FyZWFzLTEpOwogICAgICAgICB9CiAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlkLT5sb2NrLGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvZGlzLmMgYi9hcmNoL3MzOTAva2VybmVsL2Rpcy5jCmluZGV4IGMxNGEzMzYuLmQyZjI3MGMgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZGlzLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9kaXMuYwpAQCAtMjA4LDcgKzIwOCw3IEBACiAJW0lOU1RSX1JSRl9GMEZGXSAgPSB7IDB4ZmYsIEZfMTYsRl8yNCxGXzI4LDAsMCwwIH0sICAgIC8qIGUuZy4gbWFkYnIgKi8KIAlbSU5TVFJfUlJGX0ZVRkZdICA9IHsgMHhmZiwgRl8yNCxGXzE2LEZfMjgsVTRfMjAsMCwwIH0sLyogZS5nLiBkaWRiciAqLwogCVtJTlNUUl9SUkZfUlVSUl0gID0geyAweGZmLCBSXzI0LFJfMjgsUl8xNixVNF8yMCwwLDAgfSwvKiBlLmcuIC5pbnNuICovCi0JW0lOU1RSX1JSRl9SMFJSXSAgPSB7IDB4ZmYsIFJfMjQsUl8yOCxSXzE2LDAsMCwwIH0sICAgIC8qIGUuZy4gaWR0ZSAgKi8KKwlbSU5TVFJfUlJGX1IwUlJdICA9IHsgMHhmZiwgUl8yNCxSXzE2LFJfMjgsMCwwLDAgfSwgICAgLyogZS5nLiBpZHRlICAqLwogCVtJTlNUUl9SUkZfVTBGRl0gID0geyAweGZmLCBGXzI0LFU0XzE2LEZfMjgsMCwwLDAgfSwgICAvKiBlLmcuIGZpeHIgICovCiAJW0lOU1RSX1JSRl9VMFJGXSAgPSB7IDB4ZmYsIFJfMjQsVTRfMTYsRl8yOCwwLDAsMCB9LCAgIC8qIGUuZy4gY2ZlYnIgKi8KIAlbSU5TVFJfUlJGX00wUlJdICA9IHsgMHhmZiwgUl8yNCxSXzI4LE1fMTYsMCwwLDAgfSwgICAgLyogZS5nLiBzc2tlICAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jIGIvYXJjaC9zMzkwL2tlcm5lbC9lYXJseS5jCmluZGV4IGQwZTA5NjguLjJhMmNhMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvZWFybHkuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2Vhcmx5LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wZm4uaD4KICNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgPGFzbS9pcGwuaD4KICNpbmNsdWRlIDxhc20vbG93Y29yZS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KQEAgLTI2LDEyICsyNyw0MCBAQAogLyoKICAqIENyZWF0ZSBhIEtlcm5lbCBOU1MgaWYgdGhlIFNBVkVTWVM9IHBhcmFtZXRlciBpcyBkZWZpbmVkCiAgKi8KLSNkZWZpbmUgREVGU1lTX0NNRF9TSVpFCQk5NgorI2RlZmluZSBERUZTWVNfQ01EX1NJWkUJCTEyOAogI2RlZmluZSBTQVZFU1lTX0NNRF9TSVpFCTMyCiAKIGNoYXIga2VybmVsX25zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXTsKIAorc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2Jvb3RfY29tbWFuZF9saW5lKHZvaWQpOworCisKICNpZmRlZiBDT05GSUdfU0hBUkVEX0tFUk5FTAoraW50IF9faW5pdCBzYXZlc3lzX2lwbF9uc3MoY2hhciAqY21kLCBjb25zdCBpbnQgY21kbGVuKTsKKworYXNtKAorCSIJLnNlY3Rpb24gLmluaXQudGV4dCxcImF4XCIsQHByb2diaXRzXG4iCisJIgkuYWxpZ24JNFxuIgorCSIJLnR5cGUJc2F2ZXN5c19pcGxfbnNzLCBAZnVuY3Rpb25cbiIKKwkic2F2ZXN5c19pcGxfbnNzOlxuIgorI2lmZGVmIENPTkZJR182NEJJVAorCSIJc3RtZwk2LDE1LDQ4KDE1KVxuIgorCSIJbGdyCTE0LDNcbiIKKwkiCXNhbTMxXG4iCisJIglkaWFnCTIsMTQsMHg4XG4iCisJIglzYW02NFxuIgorCSIJbGdyCTIsMTRcbiIKKwkiCWxtZwk2LDE1LDQ4KDE1KVxuIgorI2Vsc2UKKwkiCXN0bQk2LDE1LDI0KDE1KVxuIgorCSIJbHIJMTQsM1xuIgorCSIJZGlhZwkyLDE0LDB4OFxuIgorCSIJbHIJMiwxNFxuIgorCSIJbG0JNiwxNSwyNCgxNSlcbiIKKyNlbmRpZgorCSIJYnIJMTRcbiIKKwkiCS5zaXplCXNhdmVzeXNfaXBsX25zcywgLi1zYXZlc3lzX2lwbF9uc3NcbiIpOworCiBzdGF0aWMgbm9pbmxpbmUgX19pbml0IHZvaWQgY3JlYXRlX2tlcm5lbF9uc3Modm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgaSwgc3RleHRfcGZuLCBlc2hhcmVkX3BmbiwgZW5kX3BmbiwgbWluX3NpemU7CkBAIC0zOSw2ICs2OCw3IEBACiAJdW5zaWduZWQgaW50IHNpbml0cmRfcGZuLCBlaW5pdHJkX3BmbjsKICNlbmRpZgogCWludCByZXNwb25zZTsKKwlzaXplX3QgbGVuOwogCWNoYXIgKnNhdmVzeXNfcHRyOwogCWNoYXIgdXBwZXJfY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKIAljaGFyIGRlZnN5c19jbWRbREVGU1lTX0NNRF9TSVpFXTsKQEAgLTQ5LDggKzc5LDggQEAKIAkJcmV0dXJuOwogCiAJLyogQ29udmVydCBDT01NQU5EX0xJTkUgdG8gdXBwZXIgY2FzZSAqLwotCWZvciAoaSA9IDA7IGkgPCBzdHJsZW4oQ09NTUFORF9MSU5FKTsgaSsrKQotCQl1cHBlcl9jb21tYW5kX2xpbmVbaV0gPSB0b3VwcGVyKENPTU1BTkRfTElORVtpXSk7CisJZm9yIChpID0gMDsgaSA8IHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7IGkrKykKKwkJdXBwZXJfY29tbWFuZF9saW5lW2ldID0gdG91cHBlcihib290X2NvbW1hbmRfbGluZVtpXSk7CiAKIAlzYXZlc3lzX3B0ciA9IHN0cnN0cih1cHBlcl9jb21tYW5kX2xpbmUsICJTQVZFU1lTPSIpOwogCkBAIC04Myw3ICsxMTMsOCBAQAogCX0KICNlbmRpZgogCi0Jc3ByaW50ZihkZWZzeXNfY21kLCAiJXMgRVcgTUlOU0laRT0lLjdpSyIsIGRlZnN5c19jbWQsIG1pbl9zaXplKTsKKwlzcHJpbnRmKGRlZnN5c19jbWQsICIlcyBFVyBNSU5TSVpFPSUuN2lLIFBBUk1SRUdTPTAtMTMiLAorCQlkZWZzeXNfY21kLCBtaW5fc2l6ZSk7CiAJc3ByaW50ZihzYXZlc3lzX2NtZCwgIlNBVkVTWVMgJXMgXG4gSVBMICVzIiwKIAkJa2VybmVsX25zc19uYW1lLCBrZXJuZWxfbnNzX25hbWUpOwogCkBAIC05NCwxMyArMTI1LDI0IEBACiAJCXJldHVybjsKIAl9CiAKLQlfX2NwY21kKHNhdmVzeXNfY21kLCBOVUxMLCAwLCAmcmVzcG9uc2UpOworCWxlbiA9IHN0cmxlbihzYXZlc3lzX2NtZCk7CisJQVNDRUJDKHNhdmVzeXNfY21kLCBsZW4pOworCXJlc3BvbnNlID0gc2F2ZXN5c19pcGxfbnNzKHNhdmVzeXNfY21kLCBsZW4pOwogCi0JaWYgKHJlc3BvbnNlICE9IHN0cmxlbihzYXZlc3lzX2NtZCkpIHsKKwkvKiBPbiBzdWNjZXNzOiByZXNwb25zZSBpcyBlcXVhbCB0byB0aGUgY29tbWFuZCBzaXplLAorCSAqCSAgICAgICBtYXggU0FWRVNZU19DTURfU0laRQorCSAqIE9uIGVycm9yOiByZXNwb25zZSBjb250YWlucyB0aGUgbnVtZXJpYyBwb3J0aW9uIG9mIGNwIGVycm9yIG1lc3NhZ2UuCisJICoJICAgICBmb3IgU0FWRVNZUyBpdCB3aWxsIGJlID49IDI2MworCSAqLworCWlmIChyZXNwb25zZSA+IFNBVkVTWVNfQ01EX1NJWkUpIHsKIAkJa2VybmVsX25zc19uYW1lWzBdID0gJ1wwJzsKIAkJcmV0dXJuOwogCX0KIAorCS8qIHJlLXNldHVwIGJvb3QgY29tbWFuZCBsaW5lIHdpdGggbmV3IGlwbCB2bSBwYXJtcyAqLworCWlwbF91cGRhdGVfcGFyYW1ldGVycygpOworCXNldHVwX2Jvb3RfY29tbWFuZF9saW5lKCk7CisKIAlpcGxfZmxhZ3MgPSBJUExfTlNTX1ZBTElEOwogfQogCkBAIC0xNDEsMTA5ICsxODMsMTEgQEAKIAlpZiAoY3B1aW5mby0+Y3B1X2lkLnZlcnNpb24gPT0gMHhmZikKIAkJbWFjaGluZV9mbGFncyB8PSBNQUNISU5FX0ZMQUdfVk07CiAKLQkvKiBSdW5uaW5nIG9uIGEgUC8zOTAgPyAqLwotCWlmIChjcHVpbmZvLT5jcHVfaWQubWFjaGluZSA9PSAweDc0OTApCi0JCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX1AzOTA7Ci0KIAkvKiBSdW5uaW5nIHVuZGVyIEtWTSA/ICovCiAJaWYgKGNwdWluZm8tPmNwdV9pZC52ZXJzaW9uID09IDB4ZmUpCiAJCW1hY2hpbmVfZmxhZ3MgfD0gTUFDSElORV9GTEFHX0tWTTsKIH0KIAotI2lmZGVmIENPTkZJR182NEJJVAotc3RhdGljIG5vaW5saW5lIF9faW5pdCBpbnQgbWVtb3J5X2Zhc3RfZGV0ZWN0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyB2YWwwID0gMDsKLQl1bnNpZ25lZCBsb25nIHZhbDEgPSAweGM7Ci0JaW50IHJldCA9IC1FTk9TWVM7Ci0KLQlpZiAoaXBsX2ZsYWdzICYgSVBMX05TU19WQUxJRCkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJZGlhZwklMSwlMiwweDI2MFxuIgotCQkiMDoJbGhpCSUwLDBcbiIKLQkJIjE6XG4iCi0JCUVYX1RBQkxFKDBiLDFiKQotCQk6ICIrZCIgKHJldCksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7Ci0KLQlpZiAocmV0IHx8IHZhbDAgIT0gdmFsMSkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQltZW1vcnlfY2h1bmtbMF0uc2l6ZSA9IHZhbDAgKyAxOwotCXJldHVybiAwOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgaW50IG1lbW9yeV9mYXN0X2RldGVjdCh2b2lkKQotewotCXJldHVybiAtRU5PU1lTOwotfQotI2VuZGlmCi0KLXN0YXRpYyBpbmxpbmUgX19pbml0IHVuc2lnbmVkIGxvbmcgX190cHJvdCh1bnNpZ25lZCBsb25nIGFkZHIpCi17Ci0JaW50IGNjID0gLTE7Ci0KLQlhc20gdm9sYXRpbGUoCi0JCSIJdHByb3QJMCglMSksMFxuIgotCQkiMDoJaXBtCSUwXG4iCi0JCSIJc3JsCSUwLDI4XG4iCi0JCSIxOlxuIgotCQlFWF9UQUJMRSgwYiwxYikKLQkJOiAiK2QiIChjYykgOiAiYSIgKGFkZHIpIDogImNjIik7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWNjOwotfQotCi0vKiBDaGVja2luZyBtZW1vcnkgaW4gMTI4S0IgaW5jcmVtZW50cy4gKi8KLSNkZWZpbmUgQ0hVTktfSU5DUgkoMVVMIDw8IDE3KQotI2RlZmluZSBBRERSMkcJCSgxVUwgPDwgMzEpCi0KLXN0YXRpYyBub2lubGluZSBfX2luaXQgdm9pZCBmaW5kX21lbW9yeV9jaHVua3ModW5zaWduZWQgbG9uZyBtZW1zaXplKQotewotCXVuc2lnbmVkIGxvbmcgYWRkciA9IDAsIG9sZF9hZGRyID0gMDsKLQl1bnNpZ25lZCBsb25nIG9sZF9jYyA9IENIVU5LX1JFQURfV1JJVEU7Ci0JdW5zaWduZWQgbG9uZyBjYzsKLQlpbnQgY2h1bmsgPSAwOwotCi0Jd2hpbGUgKGNodW5rIDwgTUVNT1JZX0NIVU5LUykgewotCQljYyA9IF9fdHByb3QoYWRkcik7Ci0JCXdoaWxlIChjYyA9PSBvbGRfY2MpIHsKLQkJCWFkZHIgKz0gQ0hVTktfSU5DUjsKLQkJCWlmIChtZW1zaXplICYmIGFkZHIgPj0gbWVtc2l6ZSkKLQkJCQlicmVhazsKLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCQlpZiAoYWRkciA9PSBBRERSMkcpCi0JCQkJYnJlYWs7Ci0jZW5kaWYKLQkJCWNjID0gX190cHJvdChhZGRyKTsKLQkJfQotCi0JCWlmIChvbGRfYWRkciAhPSBhZGRyICYmCi0JCSAgICAob2xkX2NjID09IENIVU5LX1JFQURfV1JJVEUgfHwgb2xkX2NjID09IENIVU5LX1JFQURfT05MWSkpIHsKLQkJCW1lbW9yeV9jaHVua1tjaHVua10uYWRkciA9IG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS5zaXplID0gYWRkciAtIG9sZF9hZGRyOwotCQkJbWVtb3J5X2NodW5rW2NodW5rXS50eXBlID0gb2xkX2NjOwotCQkJY2h1bmsrKzsKLQkJfQotCi0JCW9sZF9hZGRyID0gYWRkcjsKLQkJb2xkX2NjID0gY2M7Ci0KLSNpZm5kZWYgQ09ORklHXzY0QklUCi0JCWlmIChhZGRyID09IEFERFIyRykKLQkJCWJyZWFrOwotI2VuZGlmCi0JCS8qCi0JCSAqIEZpbmlzaCBtZW1vcnkgZGV0ZWN0aW9uIGF0IHRoZSBmaXJzdCBob2xlCi0JCSAqIGlmIHN0b3JhZ2Ugc2l6ZSBpcyB1bmtub3duLgotCQkgKi8KLQkJaWYgKGNjID09IC0xVUwgJiYgIW1lbXNpemUpCi0JCQlicmVhazsKLQkJaWYgKG1lbXNpemUgJiYgYWRkciA+PSBtZW1zaXplKQotCQkJYnJlYWs7Ci0JfQotfQotCiBzdGF0aWMgX19pbml0IHZvaWQgZWFybHlfcGdtX2NoZWNrX2hhbmRsZXIodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CkBAIC0zODAsMjMgKzMyNCw2MSBAQAogI2VuZGlmCiB9CiAKK3N0YXRpYyBfX2luaXQgdm9pZCByZXNjdWVfaW5pdHJkKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECisJLyoKKwkgKiBNb3ZlIHRoZSBpbml0cmQgcmlnaHQgYmVoaW5kIHRoZSBic3Mgc2VjdGlvbiBpbiBjYXNlIGl0IHN0YXJ0cworCSAqIHdpdGhpbiB0aGUgYnNzIHNlY3Rpb24uIFNvIHdlIGRvbid0IG92ZXJ3cml0ZSBpdCB3aGVuIHRoZSBic3MKKwkgKiBzZWN0aW9uIGdldHMgY2xlYXJlZC4KKwkgKi8KKwlpZiAoIUlOSVRSRF9TVEFSVCB8fCAhSU5JVFJEX1NJWkUpCisJCXJldHVybjsKKwlpZiAoSU5JVFJEX1NUQVJUID49ICh1bnNpZ25lZCBsb25nKSBfX2Jzc19zdG9wKQorCQlyZXR1cm47CisJbWVtbW92ZShfX2Jzc19zdG9wLCAodm9pZCAqKSBJTklUUkRfU1RBUlQsIElOSVRSRF9TSVpFKTsKKwlJTklUUkRfU1RBUlQgPSAodW5zaWduZWQgbG9uZykgX19ic3Nfc3RvcDsKKyNlbmRpZgorfQorCisvKiBTZXQgdXAgYm9vdCBjb21tYW5kIGxpbmUgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ib290X2NvbW1hbmRfbGluZSh2b2lkKQoreworCWNoYXIgKnBhcm0gPSBOVUxMOworCisJLyogY29weSBhcmNoIGNvbW1hbmQgbGluZSAqLworCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQVJDSF9DT01NQU5EX0xJTkVfU0laRSk7CisJYm9vdF9jb21tYW5kX2xpbmVbQVJDSF9DT01NQU5EX0xJTkVfU0laRSAtIDFdID0gMDsKKworCS8qIGFwcGVuZCBJUEwgUEFSTSBkYXRhIHRvIHRoZSBib290IGNvbW1hbmQgbGluZSAqLworCWlmIChNQUNISU5FX0lTX1ZNKSB7CisJCXBhcm0gPSBib290X2NvbW1hbmRfbGluZSArIHN0cmxlbihib290X2NvbW1hbmRfbGluZSk7CisJCSpwYXJtKysgPSAnICc7CisJCWdldF9pcGxfdm1wYXJtKHBhcm0pOworCQlpZiAocGFybVswXSA9PSAnPScpCisJCQltZW1tb3ZlKGJvb3RfY29tbWFuZF9saW5lLCBwYXJtICsgMSwgc3RybGVuKHBhcm0pKTsKKwl9Cit9CisKKwogLyoKICAqIFNhdmUgaXBsIHBhcmFtZXRlcnMsIGNsZWFyIGJzcyBtZW1vcnksIGluaXRpYWxpemUgc3RvcmFnZSBrZXlzCiAgKiBhbmQgY3JlYXRlIGEga2VybmVsIE5TUyBhdCBzdGFydHVwIGlmIHRoZSBTQVZFU1lTPSBwYXJtIGlzIGRlZmluZWQKICAqLwogdm9pZCBfX2luaXQgc3RhcnR1cF9pbml0KHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIG1lbXNpemU7Ci0KIAlpcGxfc2F2ZV9wYXJhbWV0ZXJzKCk7CisJcmVzY3VlX2luaXRyZCgpOwogCWNsZWFyX2Jzc19zZWN0aW9uKCk7CiAJaW5pdF9rZXJuZWxfc3RvcmFnZV9rZXkoKTsKIAlsb2NrZGVwX2luaXQoKTsKIAlsb2NrZGVwX29mZigpOwotCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKLQljcmVhdGVfa2VybmVsX25zcygpOwogCXNvcnRfbWFpbl9leHRhYmxlKCk7CiAJc2V0dXBfbG93Y29yZV9lYXJseSgpOworCWRldGVjdF9tYWNoaW5lX3R5cGUoKTsKKwlpcGxfdXBkYXRlX3BhcmFtZXRlcnMoKTsKKwlzZXR1cF9ib290X2NvbW1hbmRfbGluZSgpOworCWNyZWF0ZV9rZXJuZWxfbnNzKCk7CiAJZGV0ZWN0X212cGcoKTsKIAlkZXRlY3RfaWVlZSgpOwogCWRldGVjdF9jc3AoKTsKQEAgLTQwNCwxOCArMzg2LDcgQEAKIAlkZXRlY3RfZGlhZzQ0KCk7CiAJZGV0ZWN0X21hY2hpbmVfZmFjaWxpdGllcygpOwogCXNldHVwX2hwYWdlKCk7Ci0Jc2NscF9yZWFkX2luZm9fZWFybHkoKTsKIAlzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KCk7Ci0JbWVtc2l6ZSA9IHNjbHBfbWVtb3J5X2RldGVjdCgpOwotI2lmbmRlZiBDT05GSUdfNjRCSVQKLQkvKgotCSAqIENhbid0IGRlYWwgd2l0aCBtb3JlIHRoYW4gMkcgaW4gMzEgYml0IGFkZHJlc3NpbmcgbW9kZSwgc28KLQkgKiBsaW1pdCB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gYXZvaWQgc3RyYW5nZSBzaWRlIGVmZmVjdHMuCi0JICovCi0JaWYgKG1lbXNpemUgPiBBRERSMkcpCi0JCW1lbXNpemUgPSBBRERSMkc7Ci0jZW5kaWYKLQlpZiAobWVtb3J5X2Zhc3RfZGV0ZWN0KCkgPCAwKQotCQlmaW5kX21lbW9yeV9jaHVua3MoKHVuc2lnbmVkIGxvbmcpIG1lbXNpemUpOworCWRldGVjdF9tZW1vcnlfbGF5b3V0KG1lbW9yeV9jaHVuayk7CiAJbG9ja2RlcF9vbigpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYyBiL2FyY2gvczM5MC9rZXJuZWwvaXBsLmMKaW5kZXggNTMyNTQyNC4uNTRiMjc3OSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9pcGwuYworKysgYi9hcmNoL3MzOTAva2VybmVsL2lwbC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8YXNtL2lwbC5oPgogI2luY2x1ZGUgPGFzbS9zbXAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KQEAgLTIyLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxhc20vZWJjZGljLmg+CiAjaW5jbHVkZSA8YXNtL3Jlc2V0Lmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KIAogI2RlZmluZSBJUExfUEFSTV9CTE9DS19WRVJTSU9OIDAKIApAQCAtMTIxLDYgKzEyMyw3IEBACiAJUkVJUExfTUVUSE9EX0ZDUF9ST19WTSwKIAlSRUlQTF9NRVRIT0RfRkNQX0RVTVAsCiAJUkVJUExfTUVUSE9EX05TUywKKwlSRUlQTF9NRVRIT0RfTlNTX0RJQUcsCiAJUkVJUExfTUVUSE9EX0RFRkFVTFQsCiB9OwogCkBAIC0xMzQsMTQgKzEzNywxNSBAQAogCiBzdGF0aWMgaW50IGRpYWczMDhfc2V0X3dvcmtzID0gMDsKIAorc3RhdGljIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIGlwbF9ibG9jazsKKwogc3RhdGljIGludCByZWlwbF9jYXBhYmlsaXRpZXMgPSBJUExfVFlQRV9VTktOT1dOOwogCiBzdGF0aWMgZW51bSBpcGxfdHlwZSByZWlwbF90eXBlID0gSVBMX1RZUEVfVU5LTk9XTjsKIHN0YXRpYyBlbnVtIGlwbF9tZXRob2QgcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CiBzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX2ZjcDsKIHN0YXRpYyBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqcmVpcGxfYmxvY2tfY2N3OwotCi1zdGF0aWMgY2hhciByZWlwbF9uc3NfbmFtZVtOU1NfTkFNRV9TSVpFICsgMV07CitzdGF0aWMgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKnJlaXBsX2Jsb2NrX25zczsKIAogc3RhdGljIGludCBkdW1wX2NhcGFiaWxpdGllcyA9IERVTVBfVFlQRV9OT05FOwogc3RhdGljIGVudW0gZHVtcF90eXBlIGR1bXBfdHlwZSA9IERVTVBfVFlQRV9OT05FOwpAQCAtMjYzLDYgKzI2Nyw1NiBAQAogCiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfdHlwZV9hdHRyID0gX19BVFRSX1JPKGlwbF90eXBlKTsKIAorLyogVk0gSVBMIFBBUk0gcm91dGluZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV92bXBhcm0oY2hhciAqZGVzdCwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCWludCBpOworCWludCBsZW4gPSAwOworCWNoYXIgaGFzX2xvd2VyY2FzZSA9IDA7CisKKwlpZiAoKGlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkgJiYKKwkgICAgKGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID4gMCkpIHsKKworCQlsZW4gPSBpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbjsKKwkJbWVtY3B5KGRlc3QsIGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIGxlbik7CisJCS8qIElmIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaXMgbG93ZXJjYXNlLCB3ZSBhc3N1bWUgbWl4ZWQKKwkJICogY2FzZTsgb3RoZXJ3aXNlIHdlIGNvbnZlcnQgZXZlcnl0aGluZyB0byBsb3dlcmNhc2UuCisJCSAqLworCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCisJCQlpZiAoKGRlc3RbaV0gPiAweDgwICYmIGRlc3RbaV0gPCAweDhhKSB8fCAvKiBhLWkgKi8KKwkJCSAgICAoZGVzdFtpXSA+IDB4OTAgJiYgZGVzdFtpXSA8IDB4OWEpIHx8IC8qIGotciAqLworCQkJICAgIChkZXN0W2ldID4gMHhhMSAmJiBkZXN0W2ldIDwgMHhhYSkpIHsgLyogcy16ICovCisJCQkJaGFzX2xvd2VyY2FzZSA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCWlmICghaGFzX2xvd2VyY2FzZSkKKwkJCUVCQ19UT0xPV0VSKGRlc3QsIGxlbik7CisJCUVCQ0FTQyhkZXN0LCBsZW4pOworCX0KKwlkZXN0W2xlbl0gPSAwOworfQorCit2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKmRlc3QpCit7CisJaWYgKGRpYWczMDhfc2V0X3dvcmtzICYmIChpcGxfYmxvY2suaGRyLnBidCA9PSBESUFHMzA4X0lQTF9UWVBFX0NDVykpCisJCXJlaXBsX2dldF9hc2NpaV92bXBhcm0oZGVzdCwgJmlwbF9ibG9jayk7CisJZWxzZQorCQlkZXN0WzBdID0gMDsKK30KKworc3RhdGljIHNzaXplX3QgaXBsX3ZtX3Bhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJY2hhciBwYXJtW0RJQUczMDhfVk1QQVJNX1NJWkUgKyAxXSA9IHt9OworCisJZ2V0X2lwbF92bXBhcm0ocGFybSk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBwYXJtKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfaXBsX3ZtX3Bhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08sIGlwbF92bV9wYXJtX3Nob3csIE5VTEwpOworCiBzdGF0aWMgc3NpemVfdCBzeXNfaXBsX2RldmljZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKQEAgLTI4NSwxNCArMzM5LDggQEAKIHN0YXRpYyBzc2l6ZV90IGlwbF9wYXJhbWV0ZXJfcmVhZChzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGJpbl9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkJICBjaGFyICpidWYsIGxvZmZfdCBvZmYsIHNpemVfdCBjb3VudCkKIHsKLQl1bnNpZ25lZCBpbnQgc2l6ZSA9IElQTF9QQVJNQkxPQ0tfU0laRTsKLQotCWlmIChvZmYgPiBzaXplKQotCQlyZXR1cm4gMDsKLQlpZiAob2ZmICsgY291bnQgPiBzaXplKQotCQljb3VudCA9IHNpemUgLSBvZmY7Ci0JbWVtY3B5KGJ1ZiwgKHZvaWQgKilJUExfUEFSTUJMT0NLX1NUQVJUICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBJUExfUEFSTUJMT0NLX1NUQVJULAorCQkJCQlJUExfUEFSTUJMT0NLX1NJWkUpOwogfQogCiBzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgaXBsX3BhcmFtZXRlcl9hdHRyID0gewpAQCAtMzEwLDEyICszNTgsNyBAQAogCXVuc2lnbmVkIGludCBzaXplID0gSVBMX1BBUk1CTE9DS19TVEFSVC0+aXBsX2luZm8uZmNwLnNjcF9kYXRhX2xlbjsKIAl2b2lkICpzY3BfZGF0YSA9ICZJUExfUEFSTUJMT0NLX1NUQVJULT5pcGxfaW5mby5mY3Auc2NwX2RhdGE7CiAKLQlpZiAob2ZmID4gc2l6ZSkKLQkJcmV0dXJuIDA7Ci0JaWYgKG9mZiArIGNvdW50ID4gc2l6ZSkKLQkJY291bnQgPSBzaXplIC0gb2ZmOwotCW1lbWNweShidWYsIHNjcF9kYXRhICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLCBzY3BfZGF0YSwgc2l6ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSBpcGxfc2NwX2RhdGFfYXR0ciA9IHsKQEAgLTM3MCwxNSArNDEzLDI3IEBACiBzdGF0aWMgc3RydWN0IGtvYmpfYXR0cmlidXRlIHN5c19pcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQogCV9fQVRUUihsb2FkcGFybSwgMDQ0NCwgaXBsX2Njd19sb2FkcGFybV9zaG93LCBOVUxMKTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfY2N3X2F0dHJzX3ZtW10gPSB7CisJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCisJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKKwkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfaXBsX3ZtX3Bhcm1fYXR0ci5hdHRyLAorCU5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXBsX2Njd19hdHRyc19scGFyW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfZGV2aWNlX2F0dHIuYXR0ciwKIAkmc3lzX2lwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBpcGxfY2N3X2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gaXBsX2Njd19hdHRycywKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlwbF9jY3dfYXR0cl9ncm91cF92bSA9IHsKKwkuYXR0cnMgPSBpcGxfY2N3X2F0dHJzX3ZtLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaXBsX2Njd19hdHRyX2dyb3VwX2xwYXIgPSB7CisJLmF0dHJzID0gaXBsX2Njd19hdHRyc19scGFyCiB9OwogCiAvKiBOU1MgaXBsIGRldmljZSBhdHRyaWJ1dGVzICovCkBAIC0zODgsNiArNDQzLDggQEAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppcGxfbnNzX2F0dHJzW10gPSB7CiAJJnN5c19pcGxfdHlwZV9hdHRyLmF0dHIsCiAJJnN5c19pcGxfbnNzX25hbWVfYXR0ci5hdHRyLAorCSZzeXNfaXBsX2Njd19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19pcGxfdm1fcGFybV9hdHRyLmF0dHIsCiAJTlVMTCwKIH07CiAKQEAgLTQ1MCw3ICs1MDcsMTIgQEAKIAl9CiAJc3dpdGNoIChpcGxfaW5mby50eXBlKSB7CiAJY2FzZSBJUExfVFlQRV9DQ1c6Ci0JCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwgJmlwbF9jY3dfYXR0cl9ncm91cCk7CisJCWlmIChNQUNISU5FX0lTX1ZNKQorCQkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJmlwbF9rc2V0LT5rb2JqLAorCQkJCQkJJmlwbF9jY3dfYXR0cl9ncm91cF92bSk7CisJCWVsc2UKKwkJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZpcGxfa3NldC0+a29iaiwKKwkJCQkJCSZpcGxfY2N3X2F0dHJfZ3JvdXBfbHBhcik7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfRkNQOgogCWNhc2UgSVBMX1RZUEVfRkNQX0RVTVA6CkBAIC00ODEsNiArNTQzLDgzIEBACiAgKiByZWlwbCBzaHV0ZG93biBhY3Rpb246IFJlYm9vdCBMaW51eCBvbiBzaHV0ZG93bi4KICAqLwogCisvKiBWTSBJUEwgUEFSTSBhdHRyaWJ1dGVzICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX3ZtcGFybV9zaG93KHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgY2hhciAqcGFnZSkKK3sKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKworCXJlaXBsX2dldF9hc2NpaV92bXBhcm0odm1wYXJtLCBpcGIpOworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlc1xuIiwgdm1wYXJtKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfZ2VuZXJpY192bXBhcm1fc3RvcmUoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCQkJICBzaXplX3Qgdm1wYXJtX21heCwKKwkJCQkJICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJaW50IGksIGlwX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJaXBfbGVuID0gbGVuOworCWlmICgobGVuID4gMCkgJiYgKGJ1ZltsZW4gLSAxXSA9PSAnXG4nKSkKKwkJaXBfbGVuLS07CisKKwlpZiAoaXBfbGVuID4gdm1wYXJtX21heCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBwYXJtIGlzIHVzZWQgdG8gc3RvcmUga2VybmVsIG9wdGlvbnMsIGNoZWNrIGZvciBjb21tb24gY2hhcnMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgaXBfbGVuOyBpKyspCisJCWlmICghKGlzYWxudW0oYnVmW2ldKSB8fCBpc2FzY2lpKGJ1ZltpXSkgfHwgaXNwcmludChidWZbaV0pKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm0sIDAsIERJQUczMDhfVk1QQVJNX1NJWkUpOworCWlwYi0+aXBsX2luZm8uY2N3LnZtX3Bhcm1fbGVuID0gaXBfbGVuOworCWlmIChpcF9sZW4gPiAwKSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzIHw9IERJQUczMDhfVk1fRkxBR1NfVlBfVkFMSUQ7CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBidWYsIGlwX2xlbik7CisJCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLCBpcF9sZW4pOworCX0gZWxzZSB7CisJCWlwYi0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9IH5ESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCX0KKworCXJldHVybiBsZW47Cit9CisKKy8qIE5TUyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9uc3Nfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfbnNzLCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19uc3MsIDU2LCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfdm1wYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfdm1wYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X3ZtcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgICAgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX3ZtcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIDY0LCBidWYsIGxlbik7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ciA9CisJX19BVFRSKHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3Nfdm1wYXJtX3Nob3csCisJCQkJCXJlaXBsX25zc192bXBhcm1fc3RvcmUpOworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyID0KKwlfX0FUVFIocGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd192bXBhcm1fc2hvdywKKwkJCQkJcmVpcGxfY2N3X3ZtcGFybV9zdG9yZSk7CisKIC8qIEZDUCByZWlwbCBkZXZpY2UgYXR0cmlidXRlcyAqLwogCiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfZmNwLCB3d3BuLCAiMHglMDE2bGx4XG4iLCAiJTAxNmxseFxuIiwKQEAgLTUxMywyNyArNjUyLDI2IEBACiBERUZJTkVfSVBMX0FUVFJfUlcocmVpcGxfY2N3LCBkZXZpY2UsICIwLjAuJTA0bGx4XG4iLCAiMC4wLiVsbHhcbiIsCiAJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwogCi1zdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0pCitzdGF0aWMgdm9pZCByZWlwbF9nZXRfYXNjaWlfbG9hZHBhcm0oY2hhciAqbG9hZHBhcm0sCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaWJwKQogewotCW1lbWNweShsb2FkcGFybSwgJnJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JICAgICAgIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGxvYWRwYXJtLCBpYnAtPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJRUJDQVNDKGxvYWRwYXJtLCBMT0FEUEFSTV9MRU4pOwogCWxvYWRwYXJtW0xPQURQQVJNX0xFTl0gPSAwOwogCXN0cnN0cmlwKGxvYWRwYXJtKTsKIH0KIAotc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCi0JCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc2hvdyhzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiLAorCQkJCQkgICBjaGFyICpwYWdlKQogewogCWNoYXIgYnVmW0xPQURQQVJNX0xFTiArIDFdOwogCi0JcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1Zik7CisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGJ1ZiwgaXBiKTsKIAlyZXR1cm4gc3ByaW50ZihwYWdlLCAiJXNcbiIsIGJ1Zik7CiB9CiAKLXN0YXRpYyBzc2l6ZV90IHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKLQkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAotCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCitzdGF0aWMgc3NpemVfdCByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrICppcGIsCisJCQkJCSAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCiB7CiAJaW50IGksIGxwX2xlbjsKIApAQCAtNTUyLDM1ICs2OTAsMTI4IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAkvKiBpbml0aWFsaXplIGxvYWRwYXJtIHdpdGggYmxhbmtzICovCi0JbWVtc2V0KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAnICcsIExPQURQQVJNX0xFTik7CisJbWVtc2V0KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgJyAnLCBMT0FEUEFSTV9MRU4pOwogCS8qIGNvcHkgYW5kIGNvbnZlcnQgdG8gZWJjZGljICovCi0JbWVtY3B5KCZyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCBidWYsIGxwX2xlbik7Ci0JQVNDRUJDKHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sIExPQURQQVJNX0xFTik7CisJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwgYnVmLCBscF9sZW4pOworCUFTQ0VCQyhpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIExPQURQQVJNX0xFTik7CiAJcmV0dXJuIGxlbjsKIH0KIAotc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQotCV9fQVRUUihsb2FkcGFybSwgMDY0NCwgcmVpcGxfY2N3X2xvYWRwYXJtX3Nob3csCi0JICAgICAgIHJlaXBsX2Njd19sb2FkcGFybV9zdG9yZSk7CisvKiBOU1Mgd3JhcHBlciAqLworc3RhdGljIHNzaXplX3QgcmVpcGxfbnNzX2xvYWRwYXJtX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgICAgIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zaG93KHJlaXBsX2Jsb2NrX25zcywgcGFnZSk7Cit9CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNbXSA9IHsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19sb2FkcGFybV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAorCQkJCQljb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCit7CisJcmV0dXJuIHJlaXBsX2dlbmVyaWNfbG9hZHBhcm1fc3RvcmUocmVpcGxfYmxvY2tfbnNzLCBidWYsIGxlbik7Cit9CisKKy8qIENDVyB3cmFwcGVyICovCitzdGF0aWMgc3NpemVfdCByZWlwbF9jY3dfbG9hZHBhcm1fc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQkgICAgICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCXJldHVybiByZWlwbF9nZW5lcmljX2xvYWRwYXJtX3Nob3cocmVpcGxfYmxvY2tfY2N3LCBwYWdlKTsKK30KKworc3RhdGljIHNzaXplX3QgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCQlzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJCWNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gcmVpcGxfZ2VuZXJpY19sb2FkcGFybV9zdG9yZShyZWlwbF9ibG9ja19jY3csIGJ1ZiwgbGVuKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIgPQorCV9fQVRUUihsb2FkcGFybSwgU19JUlVHTyB8IFNfSVdVU1IsIHJlaXBsX2Njd19sb2FkcGFybV9zaG93LAorCQkJCQkgICAgcmVpcGxfY2N3X2xvYWRwYXJtX3N0b3JlKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnJlaXBsX2Njd19hdHRyc192bVtdID0geworCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAorCSZzeXNfcmVpcGxfY2N3X3ZtcGFybV9hdHRyLmF0dHIsCisJTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9jY3dfYXR0cnNfbHBhcltdID0gewogCSZzeXNfcmVpcGxfY2N3X2RldmljZV9hdHRyLmF0dHIsCiAJJnN5c19yZWlwbF9jY3dfbG9hZHBhcm1fYXR0ci5hdHRyLAogCU5VTEwsCiB9OwogCi1zdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cCA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIHJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtID0gewogCS5uYW1lICA9IElQTF9DQ1dfU1RSLAotCS5hdHRycyA9IHJlaXBsX2Njd19hdHRycywKKwkuYXR0cnMgPSByZWlwbF9jY3dfYXR0cnNfdm0sCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyID0geworCS5uYW1lICA9IElQTF9DQ1dfU1RSLAorCS5hdHRycyA9IHJlaXBsX2Njd19hdHRyc19scGFyLAogfTsKIAogCiAvKiBOU1MgcmVpcGwgZGV2aWNlIGF0dHJpYnV0ZXMgKi8KK3N0YXRpYyB2b2lkIHJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShjaGFyICpkc3QsCisJCQkJICAgICBzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQoreworCW1lbWNweShkc3QsIGlwYi0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwlFQkNBU0MoZHN0LCBOU1NfTkFNRV9TSVpFKTsKKwlkc3RbTlNTX05BTUVfU0laRV0gPSAwOworfQogCi1ERUZJTkVfSVBMX0FUVFJfU1RSX1JXKHJlaXBsX25zcywgbmFtZSwgIiVzXG4iLCAiJXNcbiIsIHJlaXBsX25zc19uYW1lKTsKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCisJCQkJICAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQoreworCWNoYXIgbnNzX25hbWVbTlNTX05BTUVfU0laRSArIDFdID0ge307CisKKwlyZWlwbF9nZXRfYXNjaWlfbnNzX25hbWUobnNzX25hbWUsIHJlaXBsX2Jsb2NrX25zcyk7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBuc3NfbmFtZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJlaXBsX25zc19uYW1lX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsCisJCQkJICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlpbnQgbnNzX2xlbjsKKworCS8qIGlnbm9yZSB0cmFpbGluZyBuZXdsaW5lICovCisJbnNzX2xlbiA9IGxlbjsKKwlpZiAoKGxlbiA+IDApICYmIChidWZbbGVuIC0gMV0gPT0gJ1xuJykpCisJCW5zc19sZW4tLTsKKworCWlmIChuc3NfbGVuID4gTlNTX05BTUVfU0laRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIDB4NDAsIE5TU19OQU1FX1NJWkUpOworCWlmIChuc3NfbGVuID4gMCkgeworCQlyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PQorCQkJRElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJCW1lbWNweShyZWlwbF9ibG9ja19uc3MtPmlwbF9pbmZvLmNjdy5uc3NfbmFtZSwgYnVmLCBuc3NfbGVuKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBuc3NfbGVuKTsKKwkJRUJDX1RPVVBQRVIocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsIG5zc19sZW4pOworCX0gZWxzZSB7CisJCXJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3LnZtX2ZsYWdzICY9CisJCQl+RElBRzMwOF9WTV9GTEFHU19OU1NfVkFMSUQ7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBzeXNfcmVpcGxfbnNzX25hbWVfYXR0ciA9CisJX19BVFRSKG5hbWUsIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbmFtZV9zaG93LAorCQkJCQlyZWlwbF9uc3NfbmFtZV9zdG9yZSk7CisKK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyID0KKwlfX0FUVFIobG9hZHBhcm0sIFNfSVJVR08gfCBTX0lXVVNSLCByZWlwbF9uc3NfbG9hZHBhcm1fc2hvdywKKwkJCQkJICAgIHJlaXBsX25zc19sb2FkcGFybV9zdG9yZSk7CiAKIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpyZWlwbF9uc3NfYXR0cnNbXSA9IHsKIAkmc3lzX3JlaXBsX25zc19uYW1lX2F0dHIuYXR0ciwKKwkmc3lzX3JlaXBsX25zc19sb2FkcGFybV9hdHRyLmF0dHIsCisJJnN5c19yZWlwbF9uc3Nfdm1wYXJtX2F0dHIuYXR0ciwKIAlOVUxMLAogfTsKIApAQCAtNjE3LDcgKzg0OCwxMCBAQAogCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfRkNQX0RVTVA7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfTlNTOgotCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTOworCQlpZiAoZGlhZzMwOF9zZXRfd29ya3MpCisJCQlyZWlwbF9tZXRob2QgPSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc7CisJCWVsc2UKKwkJCXJlaXBsX21ldGhvZCA9IFJFSVBMX01FVEhPRF9OU1M7CiAJCWJyZWFrOwogCWNhc2UgSVBMX1RZUEVfVU5LTk9XTjoKIAkJcmVpcGxfbWV0aG9kID0gUkVJUExfTUVUSE9EX0RFRkFVTFQ7CkBAIC02NTUsMTEgKzg4OSwzOCBAQAogCiBzdGF0aWMgc3RydWN0IGtzZXQgKnJlaXBsX2tzZXQ7CiAKK3N0YXRpYyB2b2lkIGdldF9pcGxfc3RyaW5nKGNoYXIgKmRzdCwgc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYiwKKwkJCSAgIGNvbnN0IGVudW0gaXBsX21ldGhvZCBtKQoreworCWNoYXIgbG9hZHBhcm1bTE9BRFBBUk1fTEVOICsgMV0gPSB7fTsKKwljaGFyIHZtcGFybVtESUFHMzA4X1ZNUEFSTV9TSVpFICsgMV0gPSB7fTsKKwljaGFyIG5zc19uYW1lW05TU19OQU1FX1NJWkUgKyAxXSA9IHt9OworCXNpemVfdCBwb3MgPSAwOworCisJcmVpcGxfZ2V0X2FzY2lpX2xvYWRwYXJtKGxvYWRwYXJtLCBpcGIpOworCXJlaXBsX2dldF9hc2NpaV9uc3NfbmFtZShuc3NfbmFtZSwgaXBiKTsKKwlyZWlwbF9nZXRfYXNjaWlfdm1wYXJtKHZtcGFybSwgaXBiKTsKKworCXN3aXRjaCAobSkgeworCWNhc2UgUkVJUExfTUVUSE9EX0NDV19WTToKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJVggQ0xFQVIiLCBpcGItPmlwbF9pbmZvLmNjdy5kZXZubyk7CisJCWJyZWFrOworCWNhc2UgUkVJUExfTUVUSE9EX05TUzoKKwkJcG9zID0gc3ByaW50Zihkc3QsICJJUEwgJXMiLCBuc3NfbmFtZSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlpZiAoc3RybGVuKGxvYWRwYXJtKSA+IDApCisJCXBvcyArPSBzcHJpbnRmKGRzdCArIHBvcywgIiBMT0FEUEFSTSAnJXMnIiwgbG9hZHBhcm0pOworCWlmIChzdHJsZW4odm1wYXJtKSA+IDApCisJCXNwcmludGYoZHN0ICsgcG9zLCAiIFBBUk0gJXMiLCB2bXBhcm0pOworfQorCiBzdGF0aWMgdm9pZCByZWlwbF9ydW4oc3RydWN0IHNodXRkb3duX3RyaWdnZXIgKnRyaWdnZXIpCiB7CiAJc3RydWN0IGNjd19kZXZfaWQgZGV2aWQ7Ci0Jc3RhdGljIGNoYXIgYnVmWzEwMF07Ci0JY2hhciBsb2FkcGFybVtMT0FEUEFSTV9MRU4gKyAxXTsKKwlzdGF0aWMgY2hhciBidWZbMTI4XTsKIAogCXN3aXRjaCAocmVpcGxfbWV0aG9kKSB7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0NJTzoKQEAgLTY2OCwxMyArOTI5LDcgQEAKIAkJcmVpcGxfY2N3X2RldigmZGV2aWQpOwogCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9DQ1dfVk06Ci0JCXJlaXBsX2dldF9hc2NpaV9sb2FkcGFybShsb2FkcGFybSk7Ci0JCWlmIChzdHJsZW4obG9hZHBhcm0pID09IDApCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiIsCi0JCQkJcmVpcGxfYmxvY2tfY2N3LT5pcGxfaW5mby5jY3cuZGV2bm8pOwotCQllbHNlCi0JCQlzcHJpbnRmKGJ1ZiwgIklQTCAlWCBDTEVBUiBMT0FEUEFSTSAnJXMnIiwKLQkJCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubywgbG9hZHBhcm0pOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX2NjdywgUkVJUExfTUVUSE9EX0NDV19WTSk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfQ0NXX0RJQUc6CkBAIC02OTEsOCArOTQ2LDEyIEBACiAJY2FzZSBSRUlQTF9NRVRIT0RfRkNQX1JPX1ZNOgogCQlfX2NwY21kKCJJUEwiLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CisJY2FzZSBSRUlQTF9NRVRIT0RfTlNTX0RJQUc6CisJCWRpYWczMDgoRElBRzMwOF9TRVQsIHJlaXBsX2Jsb2NrX25zcyk7CisJCWRpYWczMDgoRElBRzMwOF9JUEwsIE5VTEwpOworCQlicmVhazsKIAljYXNlIFJFSVBMX01FVEhPRF9OU1M6Ci0JCXNwcmludGYoYnVmLCAiSVBMICVzIiwgcmVpcGxfbnNzX25hbWUpOworCQlnZXRfaXBsX3N0cmluZyhidWYsIHJlaXBsX2Jsb2NrX25zcywgUkVJUExfTUVUSE9EX05TUyk7CiAJCV9fY3BjbWQoYnVmLCBOVUxMLCAwLCBOVUxMKTsKIAkJYnJlYWs7CiAJY2FzZSBSRUlQTF9NRVRIT0RfREVGQVVMVDoKQEAgLTcwNywxNiArOTY2LDM2IEBACiAJZGlzYWJsZWRfd2FpdCgodW5zaWduZWQgbG9uZykgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IHJlaXBsX3Byb2JlKHZvaWQpCitzdGF0aWMgdm9pZCByZWlwbF9ibG9ja19jY3dfaW5pdChzdHJ1Y3QgaXBsX3BhcmFtZXRlcl9ibG9jayAqaXBiKQogewotCXZvaWQgKmJ1ZmZlcjsKKwlpcGItPmhkci5sZW4gPSBJUExfUEFSTV9CTEtfQ0NXX0xFTjsKKwlpcGItPmhkci52ZXJzaW9uID0gSVBMX1BBUk1fQkxPQ0tfVkVSU0lPTjsKKwlpcGItPmhkci5ibGswX2xlbiA9IElQTF9QQVJNX0JMSzBfQ0NXX0xFTjsKKwlpcGItPmhkci5wYnQgPSBESUFHMzA4X0lQTF9UWVBFX0NDVzsKK30KIAotCWJ1ZmZlciA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuOwotCWlmIChkaWFnMzA4KERJQUczMDhfU1RPUkUsIGJ1ZmZlcikgPT0gRElBRzMwOF9SQ19PSykKLQkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOwotCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylidWZmZXIpOworc3RhdGljIHZvaWQgcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMoc3RydWN0IGlwbF9wYXJhbWV0ZXJfYmxvY2sgKmlwYikKK3sKKwkvKiBMT0FEUEFSTSAqLworCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KKwlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKKwkJbWVtY3B5KGlwYi0+aXBsX2luZm8uY2N3LmxvYWRfcGFybSwKKwkJCQkmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKKwllbHNlCisJCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCisJCW1lbXNldChpcGItPmlwbF9pbmZvLmNjdy5sb2FkX3Bhcm0sIDB4NDAsIExPQURQQVJNX0xFTik7CisJaXBiLT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOworCisJLyogVk0gUEFSTSAqLworCWlmIChNQUNISU5FX0lTX1ZNICYmIGRpYWczMDhfc2V0X3dvcmtzICYmCisJICAgIChpcGxfYmxvY2suaXBsX2luZm8uY2N3LnZtX2ZsYWdzICYgRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRCkpIHsKKworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9mbGFncyB8PSBESUFHMzA4X1ZNX0ZMQUdTX1ZQX1ZBTElEOworCQlpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtX2xlbiA9CisJCQkJCWlwbF9ibG9jay5pcGxfaW5mby5jY3cudm1fcGFybV9sZW47CisJCW1lbWNweShpcGItPmlwbF9pbmZvLmNjdy52bV9wYXJtLAorCQkgICAgICAgaXBsX2Jsb2NrLmlwbF9pbmZvLmNjdy52bV9wYXJtLCBESUFHMzA4X1ZNUEFSTV9TSVpFKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IHJlaXBsX25zc19pbml0KHZvaWQpCkBAIC03MjUsMTAgKzEwMDQsMzEgQEAKIAogCWlmICghTUFDSElORV9JU19WTSkKIAkJcmV0dXJuIDA7CisKKwlyZWlwbF9ibG9ja19uc3MgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKCFyZWlwbF9ibG9ja19uc3MpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKCFkaWFnMzA4X3NldF93b3JrcykKKwkJc3lzX3JlaXBsX25zc192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCiAJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9uc3NfYXR0cl9ncm91cCk7CiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7Ci0Jc3RybmNweShyZWlwbF9uc3NfbmFtZSwga2VybmVsX25zc19uYW1lLCBOU1NfTkFNRV9TSVpFICsgMSk7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19uc3MpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX05TUykgeworCQltZW1zZXQocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQknICcsIE5TU19OQU1FX1NJWkUpOworCQltZW1jcHkocmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cubnNzX25hbWUsCisJCQlrZXJuZWxfbnNzX25hbWUsIHN0cmxlbihrZXJuZWxfbnNzX25hbWUpKTsKKwkJQVNDRUJDKHJlaXBsX2Jsb2NrX25zcy0+aXBsX2luZm8uY2N3Lm5zc19uYW1lLCBOU1NfTkFNRV9TSVpFKTsKKwkJcmVpcGxfYmxvY2tfbnNzLT5pcGxfaW5mby5jY3cudm1fZmxhZ3MgfD0KKwkJCURJQUczMDhfVk1fRkxBR1NfTlNTX1ZBTElEOworCisJCXJlaXBsX2Jsb2NrX2Njd19maWxsX3Bhcm1zKHJlaXBsX2Jsb2NrX25zcyk7CisJfQorCiAJcmVpcGxfY2FwYWJpbGl0aWVzIHw9IElQTF9UWVBFX05TUzsKIAlyZXR1cm4gMDsKIH0KQEAgLTc0MCwyOCArMTA0MCwyNyBAQAogCXJlaXBsX2Jsb2NrX2NjdyA9ICh2b2lkICopIGdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKIAlpZiAoIXJlaXBsX2Jsb2NrX2NjdykKIAkJcmV0dXJuIC1FTk9NRU07Ci0JcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosICZyZWlwbF9jY3dfYXR0cl9ncm91cCk7Ci0JaWYgKHJjKSB7Ci0JCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylyZWlwbF9ibG9ja19jY3cpOwotCQlyZXR1cm4gcmM7CisKKwlpZiAoTUFDSElORV9JU19WTSkgeworCQlpZiAoIWRpYWczMDhfc2V0X3dvcmtzKQorCQkJc3lzX3JlaXBsX2Njd192bXBhcm1fYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCQlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmcmVpcGxfa3NldC0+a29iaiwKKwkJCQkJJnJlaXBsX2Njd19hdHRyX2dyb3VwX3ZtKTsKKwl9IGVsc2UgeworCQlpZighZGlhZzMwOF9zZXRfd29ya3MpCisJCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKKwkJcmMgPSBzeXNmc19jcmVhdGVfZ3JvdXAoJnJlaXBsX2tzZXQtPmtvYmosCisJCQkJCSZyZWlwbF9jY3dfYXR0cl9ncm91cF9scGFyKTsKIAl9Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIubGVuID0gSVBMX1BBUk1fQkxLX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIudmVyc2lvbiA9IElQTF9QQVJNX0JMT0NLX1ZFUlNJT047Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuYmxrMF9sZW4gPSBJUExfUEFSTV9CTEswX0NDV19MRU47Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIucGJ0ID0gRElBRzMwOF9JUExfVFlQRV9DQ1c7Ci0JcmVpcGxfYmxvY2tfY2N3LT5oZHIuZmxhZ3MgPSBESUFHMzA4X0ZMQUdTX0xQX1ZBTElEOwotCS8qIGNoZWNrIGlmIHJlYWQgc2NwIGluZm8gd29ya2VkIGFuZCBzZXQgbG9hZHBhcm0gKi8KLQlpZiAoc2NscF9pcGxfaW5mby5pc192YWxpZCkKLQkJbWVtY3B5KHJlaXBsX2Jsb2NrX2Njdy0+aXBsX2luZm8uY2N3LmxvYWRfcGFyYW0sCi0JCSAgICAgICAmc2NscF9pcGxfaW5mby5sb2FkcGFybSwgTE9BRFBBUk1fTEVOKTsKLQllbHNlCi0JCS8qIHJlYWQgc2NwIGluZm8gZmFpbGVkOiBzZXQgZW1wdHkgbG9hZHBhcm0gKEVCQ0RJQyBibGFua3MpICovCi0JCW1lbXNldChyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5sb2FkX3BhcmFtLCAweDQwLAotCQkgICAgICAgTE9BRFBBUk1fTEVOKTsKLQlpZiAoIU1BQ0hJTkVfSVNfVk0gJiYgIWRpYWczMDhfc2V0X3dvcmtzKQotCQlzeXNfcmVpcGxfY2N3X2xvYWRwYXJtX2F0dHIuYXR0ci5tb2RlID0gU19JUlVHTzsKLQlpZiAoaXBsX2luZm8udHlwZSA9PSBJUExfVFlQRV9DQ1cpCisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlyZWlwbF9ibG9ja19jY3dfaW5pdChyZWlwbF9ibG9ja19jY3cpOworCWlmIChpcGxfaW5mby50eXBlID09IElQTF9UWVBFX0NDVykgewogCQlyZWlwbF9ibG9ja19jY3ctPmlwbF9pbmZvLmNjdy5kZXZubyA9IGlwbF9kZXZubzsKKwkJcmVpcGxfYmxvY2tfY2N3X2ZpbGxfcGFybXMocmVpcGxfYmxvY2tfY2N3KTsKKwl9CisKIAlyZWlwbF9jYXBhYmlsaXRpZXMgfD0gSVBMX1RZUEVfQ0NXOwogCXJldHVybiAwOwogfQpAQCAtMTI5OCw3ICsxNTk3LDYgQEAKIAogc3RhdGljIGludCBfX2luaXQgczM5MF9pcGxfaW5pdCh2b2lkKQogewotCXJlaXBsX3Byb2JlKCk7CiAJc2NscF9nZXRfaXBsX2luZm8oJnNjbHBfaXBsX2luZm8pOwogCXNodXRkb3duX2FjdGlvbnNfaW5pdCgpOwogCXNodXRkb3duX3RyaWdnZXJzX2luaXQoKTsKQEAgLTE0MDUsNiArMTcwMywxMiBAQAogCWF0b21pY19ub3RpZmllcl9jaGFpbl9yZWdpc3RlcigmcGFuaWNfbm90aWZpZXJfbGlzdCwgJm9uX3BhbmljX25iKTsKIH0KIAordm9pZCBfX2luaXQgaXBsX3VwZGF0ZV9wYXJhbWV0ZXJzKHZvaWQpCit7CisJaWYgKGRpYWczMDgoRElBRzMwOF9TVE9SRSwgJmlwbF9ibG9jaykgPT0gRElBRzMwOF9SQ19PSykKKwkJZGlhZzMwOF9zZXRfd29ya3MgPSAxOworfQorCiB2b2lkIF9faW5pdCBpcGxfc2F2ZV9wYXJhbWV0ZXJzKHZvaWQpCiB7CiAJc3RydWN0IGNpb19pcGxpbmZvIGlwbGluZm87CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL2twcm9iZXMuYyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCmluZGV4IGVkMDRkMTMuLjI4OGFkNDkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwva3Byb2Jlcy5jCkBAIC00MSwxMCArNDEsOCBAQAogCWlmIChpc19wcm9oaWJpdGVkX29wY29kZSgoa3Byb2JlX29wY29kZV90ICopIHAtPmFkZHIpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICgodW5zaWduZWQgbG9uZylwLT5hZGRyICYgMHgwMSkgewotCQlwcmludGsoIkF0dGVtcHQgdG8gcmVnaXN0ZXIga3Byb2JlIGF0IGFuIHVuYWxpZ25lZCBhZGRyZXNzXG4iKTsKKwlpZiAoKHVuc2lnbmVkIGxvbmcpcC0+YWRkciAmIDB4MDEpCiAJCXJldHVybiAtRUlOVkFMOwotCQl9CiAKIAkvKiBVc2UgdGhlIGdldF9pbnNuX3Nsb3QoKSBmYWNpbGl0eSBmb3IgY29ycmVjdG5lc3MgKi8KIAlpZiAoIShwLT5haW5zbi5pbnNuID0gZ2V0X2luc25fc2xvdCgpKSkKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvbWFjaGluZV9rZXhlYy5jIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKaW5kZXggM2M3N2RkMy4uMTMxZDdlZSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tYWNoaW5lX2tleGVjLmMKQEAgLTUyLDcgKzUyLDYgQEAKIAogdm9pZCBtYWNoaW5lX3NodXRkb3duKHZvaWQpCiB7Ci0JcHJpbnRrKEtFUk5fSU5GTyAia2V4ZWM6IG1hY2hpbmVfc2h1dGRvd24gY2FsbGVkXG4iKTsKIH0KIAogdm9pZCBtYWNoaW5lX2tleGVjKHN0cnVjdCBraW1hZ2UgKmltYWdlKQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMgYi9hcmNoL3MzOTAva2VybmVsL21lbV9kZXRlY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGVkN2FiCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9tZW1fZGV0ZWN0LmMKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogSGVpa28gQ2Fyc3RlbnMgPGhlaWtvLmNhcnN0ZW5zQGRlLmlibS5jb20+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9pcGwuaD4KKyNpbmNsdWRlIDxhc20vc2NscC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorCitzdGF0aWMgaW50IG1lbW9yeV9mYXN0X2RldGVjdChzdHJ1Y3QgbWVtX2NodW5rICpjaHVuaykKK3sKKwl1bnNpZ25lZCBsb25nIHZhbDAgPSAwOworCXVuc2lnbmVkIGxvbmcgdmFsMSA9IDB4YzsKKwlpbnQgcmMgPSAtRU9QTk9UU1VQUDsKKworCWlmIChpcGxfZmxhZ3MgJiBJUExfTlNTX1ZBTElEKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJYXNtIHZvbGF0aWxlKAorCQkiCWRpYWcJJTEsJTIsMHgyNjBcbiIKKwkJIjA6CWxoaQklMCwwXG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYyksICIrZCIgKHZhbDApLCAiK2QiICh2YWwxKSA6IDogImNjIik7CisKKwlpZiAocmMgfHwgdmFsMCAhPSB2YWwxKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2h1bmstPnNpemUgPSB2YWwwICsgMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSBpbnQgdHByb3QodW5zaWduZWQgbG9uZyBhZGRyKQoreworCWludCByYyA9IC1FRkFVTFQ7CisKKwlhc20gdm9sYXRpbGUoCisJCSIJdHByb3QJMCglMSksMFxuIgorCQkiMDoJaXBtCSUwXG4iCisJCSIJc3JsCSUwLDI4XG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwxYikKKwkJOiAiK2QiIChyYykgOiAiYSIgKGFkZHIpIDogImNjIik7CisJcmV0dXJuIHJjOworfQorCisjZGVmaW5lIEFERFIyRyAoMVVMTCA8PCAzMSkKKworc3RhdGljIHZvaWQgZmluZF9tZW1vcnlfY2h1bmtzKHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgbWVtc2l6ZSwgcm5tYXgsIHJ6bTsKKwl1bnNpZ25lZCBsb25nIGFkZHIgPSAwLCBzaXplOworCWludCBpID0gMCwgdHlwZTsKKworCXJ6bSA9IHNjbHBfZ2V0X3J6bSgpOworCXJubWF4ID0gc2NscF9nZXRfcm5tYXgoKTsKKwltZW1zaXplID0gcnptICogcm5tYXg7CisJaWYgKCFyem0pCisJCXJ6bSA9IDFVTEwgPDwgMTc7CisJaWYgKHNpemVvZihsb25nKSA9PSA0KSB7CisJCXJ6bSA9IG1pbihBRERSMkcsIHJ6bSk7CisJCW1lbXNpemUgPSBtZW1zaXplID8gbWluKEFERFIyRywgbWVtc2l6ZSkgOiBBRERSMkc7CisJfQorCWRvIHsKKwkJc2l6ZSA9IDA7CisJCXR5cGUgPSB0cHJvdChhZGRyKTsKKwkJZG8geworCQkJc2l6ZSArPSByem07CisJCQlpZiAobWVtc2l6ZSAmJiBhZGRyICsgc2l6ZSA+PSBtZW1zaXplKQorCQkJCWJyZWFrOworCQl9IHdoaWxlICh0eXBlID09IHRwcm90KGFkZHIgKyBzaXplKSk7CisJCWlmICh0eXBlID09IENIVU5LX1JFQURfV1JJVEUgfHwgdHlwZSA9PSBDSFVOS19SRUFEX09OTFkpIHsKKwkJCWNodW5rW2ldLmFkZHIgPSBhZGRyOworCQkJY2h1bmtbaV0uc2l6ZSA9IHNpemU7CisJCQljaHVua1tpXS50eXBlID0gdHlwZTsKKwkJCWkrKzsKKwkJfQorCQlhZGRyICs9IHNpemU7CisJfSB3aGlsZSAoYWRkciA8IG1lbXNpemUgJiYgaSA8IE1FTU9SWV9DSFVOS1MpOworfQorCit2b2lkIGRldGVjdF9tZW1vcnlfbGF5b3V0KHN0cnVjdCBtZW1fY2h1bmsgY2h1bmtbXSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBjcjA7CisKKwltZW1zZXQoY2h1bmssIDAsIE1FTU9SWV9DSFVOS1MgKiBzaXplb2Yoc3RydWN0IG1lbV9jaHVuaykpOworCWlmIChtZW1vcnlfZmFzdF9kZXRlY3QoJmNodW5rWzBdKSA9PSAwKQorCQlyZXR1cm47CisJLyogRGlzYWJsZSBJUlFzLCBEQVQgYW5kIGxvdyBhZGRyZXNzIHByb3RlY3Rpb24gc28gdHByb3QgZG9lcyB0aGUKKwkgKiByaWdodCB0aGluZyBhbmQgd2UgZG9uJ3QgZ2V0IHNjaGVkdWxlZCBhd2F5IHdpdGggbG93IGFkZHJlc3MKKwkgKiBwcm90ZWN0aW9uIGRpc2FibGVkLgorCSAqLworCWZsYWdzID0gX19yYXdfbG9jYWxfaXJxX3N0bnNtKDB4ZjgpOworCV9fY3RsX3N0b3JlKGNyMCwgMCwgMCk7CisJX19jdGxfY2xlYXJfYml0KDAsIDI4KTsKKwlmaW5kX21lbW9yeV9jaHVua3MoY2h1bmspOworCV9fY3RsX2xvYWQoY3IwLCAwLCAwKTsKKwlfX3Jhd19sb2NhbF9pcnFfc3NtKGZsYWdzKTsKK30KK0VYUE9SVF9TWU1CT0woZGV0ZWN0X21lbW9yeV9sYXlvdXQpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwppbmRleCA3OTIwODYxLi44NWRlZmQwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzUsNDYgKzc1LDE5IEBACiAJcmV0dXJuIHNmLT5ncHJzWzhdOwogfQogCi0vKgotICogTmVlZCB0byBrbm93IGFib3V0IENQVXMgZ29pbmcgaWRsZT8KLSAqLwotc3RhdGljIEFUT01JQ19OT1RJRklFUl9IRUFEKGlkbGVfY2hhaW4pOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHMzOTBfaWRsZV9kYXRhLCBzMzkwX2lkbGUpOwogCi1pbnQgcmVnaXN0ZXJfaWRsZV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iKQotewotCXJldHVybiBhdG9taWNfbm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wocmVnaXN0ZXJfaWRsZV9ub3RpZmllcik7Ci0KLWludCB1bnJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYikKLXsKLQlyZXR1cm4gYXRvbWljX25vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIoJmlkbGVfY2hhaW4sIG5iKTsKLX0KLUVYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKTsKLQogc3RhdGljIGludCBzMzkwX2lkbGVfZW50ZXIodm9pZCkKIHsKIAlzdHJ1Y3QgczM5MF9pZGxlX2RhdGEgKmlkbGU7Ci0JaW50IG5yX2NhbGxzID0gMDsKLQl2b2lkICpoY3B1OwotCWludCByYzsKIAotCWhjcHUgPSAodm9pZCAqKShsb25nKXNtcF9wcm9jZXNzb3JfaWQoKTsKLQlyYyA9IF9fYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmlkbGVfY2hhaW4sIFMzOTBfQ1BVX0lETEUsIGhjcHUsIC0xLAotCQkJCQkgICZucl9jYWxscyk7Ci0JaWYgKHJjID09IE5PVElGWV9CQUQpIHsKLQkJbnJfY2FsbHMtLTsKLQkJX19hdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJCSAgICAgaGNwdSwgbnJfY2FsbHMsIE5VTEwpOwotCQlyZXR1cm4gcmM7Ci0JfQogCWlkbGUgPSAmX19nZXRfY3B1X3ZhcihzMzkwX2lkbGUpOwogCXNwaW5fbG9jaygmaWRsZS0+bG9jayk7CiAJaWRsZS0+aWRsZV9jb3VudCsrOwogCWlkbGUtPmluX2lkbGUgPSAxOwogCWlkbGUtPmlkbGVfZW50ZXIgPSBnZXRfY2xvY2soKTsKIAlzcGluX3VubG9jaygmaWRsZS0+bG9jayk7CisJdnRpbWVfc3RvcF9jcHVfdGltZXIoKTsKIAlyZXR1cm4gTk9USUZZX09LOwogfQogCkBAIC0xMjIsMTMgKzk1LDEyIEBACiB7CiAJc3RydWN0IHMzOTBfaWRsZV9kYXRhICppZGxlOwogCisJdnRpbWVfc3RhcnRfY3B1X3RpbWVyKCk7CiAJaWRsZSA9ICZfX2dldF9jcHVfdmFyKHMzOTBfaWRsZSk7CiAJc3Bpbl9sb2NrKCZpZGxlLT5sb2NrKTsKIAlpZGxlLT5pZGxlX3RpbWUgKz0gZ2V0X2Nsb2NrKCkgLSBpZGxlLT5pZGxlX2VudGVyOwogCWlkbGUtPmluX2lkbGUgPSAwOwogCXNwaW5fdW5sb2NrKCZpZGxlLT5sb2NrKTsKLQlhdG9taWNfbm90aWZpZXJfY2FsbF9jaGFpbigmaWRsZV9jaGFpbiwgUzM5MF9DUFVfTk9UX0lETEUsCi0JCQkJICAgKHZvaWQgKikobG9uZykgc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIH0KIAogZXh0ZXJuIHZvaWQgczM5MF9oYW5kbGVfbWNjayh2b2lkKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMgYi9hcmNoL3MzOTAva2VybmVsL3B0cmFjZS5jCmluZGV4IDM1ODI3YjkuLjI4MTViZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvcHRyYWNlLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9wdHJhY2UuYwpAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvYXVkaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9lbGYuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWdzZXQuaD4KIAogI2luY2x1ZGUgPGFzbS9zZWdtZW50Lmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KQEAgLTQ3LDYgKzQ5LDExIEBACiAjaW5jbHVkZSAiY29tcGF0X3B0cmFjZS5oIgogI2VuZGlmCiAKK2VudW0gczM5MF9yZWdzZXQgeworCVJFR1NFVF9HRU5FUkFMLAorCVJFR1NFVF9GUCwKK307CisKIHN0YXRpYyB2b2lkCiBGaXhQZXJSZWdpc3RlcnMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQogewpAQCAtMTI2LDI0ICsxMzMsMTAgQEAKICAqIHN0cnVjdCB1c2VyIGNvbnRhaW4gcGFkIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQgYXMgemVyb2VzLgogICogTG92ZWx5Li4uCiAgKi8KLXN0YXRpYyBpbnQKLXBlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX3BlZWtfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkcikKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIHRtcCwgbWFzazsKLQotCS8qCi0JICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwuLi4KLQkgKi8KLQltYXNrID0gX19BRERSX01BU0s7Ci0jaWZkZWYgQ09ORklHXzY0QklUCi0JaWYgKGFkZHIgPj0gKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMgJiYKLQkgICAgYWRkciA8IChhZGRyX3QpICZkdW1teS0+cmVncy5vcmlnX2dwcjIpCi0JCW1hc2sgPSAzOwotI2VuZGlmCi0JaWYgKChhZGRyICYgbWFzaykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSBfX0FERFJfTUFTSykKLQkJcmV0dXJuIC1FSU87CisJYWRkcl90IG9mZnNldCwgdG1wOwogCiAJaWYgKGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3MuYWNycykgewogCQkvKgpAQCAtMTk3LDI0ICsxOTAsMTggQEAKIAl9IGVsc2UKIAkJdG1wID0gMDsKIAotCXJldHVybiBwdXRfdXNlcih0bXAsIChhZGRyX3QgX191c2VyICopIGRhdGEpOworCXJldHVybiB0bXA7CiB9CiAKLS8qCi0gKiBXcml0ZSBhIHdvcmQgdG8gdGhlIHVzZXIgYXJlYSBvZiBhIHByb2Nlc3MgYXQgbG9jYXRpb24gYWRkci4gVGhpcwotICogb3BlcmF0aW9uIGRvZXMgaGF2ZSBhbiBhZGRpdGlvbmFsIHByb2JsZW0gY29tcGFyZWQgdG8gcGVla191c2VyLgotICogU3RvcmVzIHRvIHRoZSBwcm9ncmFtIHN0YXR1cyB3b3JkIGFuZCBvbiB0aGUgZmxvYXRpbmcgcG9pbnQKLSAqIGNvbnRyb2wgcmVnaXN0ZXIgbmVlZHMgdG8gZ2V0IGNoZWNrZWQgZm9yIHZhbGlkaXR5LgotICovCiBzdGF0aWMgaW50Ci1wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorcGVla191c2VyKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKIHsKIAlzdHJ1Y3QgdXNlciAqZHVtbXkgPSBOVUxMOwotCWFkZHJfdCBvZmZzZXQsIG1hc2s7CisJYWRkcl90IHRtcCwgbWFzazsKIAogCS8qCiAJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAotCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICogYW4gYWxpZ25tZW50IG9mIDQuIFByb2dyYW1tZXJzIGZyb20gaGVsbC4uLgogCSAqLwogCW1hc2sgPSBfX0FERFJfTUFTSzsKICNpZmRlZiBDT05GSUdfNjRCSVQKQEAgLTIyNSw2ICsyMTIsMjEgQEAKIAlpZiAoKGFkZHIgJiBtYXNrKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyKSAtIF9fQUREUl9NQVNLKQogCQlyZXR1cm4gLUVJTzsKIAorCXRtcCA9IF9fcGVla191c2VyKGNoaWxkLCBhZGRyKTsKKwlyZXR1cm4gcHV0X3VzZXIodG1wLCAoYWRkcl90IF9fdXNlciAqKSBkYXRhKTsKK30KKworLyoKKyAqIFdyaXRlIGEgd29yZCB0byB0aGUgdXNlciBhcmVhIG9mIGEgcHJvY2VzcyBhdCBsb2NhdGlvbiBhZGRyLiBUaGlzCisgKiBvcGVyYXRpb24gZG9lcyBoYXZlIGFuIGFkZGl0aW9uYWwgcHJvYmxlbSBjb21wYXJlZCB0byBwZWVrX3VzZXIuCisgKiBTdG9yZXMgdG8gdGhlIHByb2dyYW0gc3RhdHVzIHdvcmQgYW5kIG9uIHRoZSBmbG9hdGluZyBwb2ludAorICogY29udHJvbCByZWdpc3RlciBuZWVkcyB0byBnZXQgY2hlY2tlZCBmb3IgdmFsaWRpdHkuCisgKi8KK3N0YXRpYyBpbnQgX19wb2tlX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCXN0cnVjdCB1c2VyICpkdW1teSA9IE5VTEw7CisJYWRkcl90IG9mZnNldDsKKwogCWlmIChhZGRyIDwgKGFkZHJfdCkgJmR1bW15LT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC0yOTIsNiArMjk0LDI4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK3Bva2VfdXNlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCit7CisJc3RydWN0IHVzZXIgKmR1bW15ID0gTlVMTDsKKwlhZGRyX3QgbWFzazsKKworCS8qCisJICogU3R1cGlkIGdkYiBwZWVrcy9wb2tlcyB0aGUgYWNjZXNzIHJlZ2lzdGVycyBpbiA2NCBiaXQgd2l0aAorCSAqIGFuIGFsaWdubWVudCBvZiA0LiBQcm9ncmFtbWVycyBmcm9tIGhlbGwgaW5kZWVkLi4uCisJICovCisJbWFzayA9IF9fQUREUl9NQVNLOworI2lmZGVmIENPTkZJR182NEJJVAorCWlmIChhZGRyID49IChhZGRyX3QpICZkdW1teS0+cmVncy5hY3JzICYmCisJICAgIGFkZHIgPCAoYWRkcl90KSAmZHVtbXktPnJlZ3Mub3JpZ19ncHIyKQorCQltYXNrID0gMzsKKyNlbmRpZgorCWlmICgoYWRkciAmIG1hc2spIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gX19BRERSX01BU0spCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyKGNoaWxkLCBhZGRyLCBkYXRhKTsKK30KKwogbG9uZyBhcmNoX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkLCBsb25nIHJlcXVlc3QsIGxvbmcgYWRkciwgbG9uZyBkYXRhKQogewogCXB0cmFjZV9hcmVhIHBhcmVhOyAKQEAgLTM2NywxOCArMzkxLDEzIEBACiAvKgogICogU2FtZSBhcyBwZWVrX3VzZXIgYnV0IGZvciBhIDMxIGJpdCBwcm9ncmFtLgogICovCi1zdGF0aWMgaW50Ci1wZWVrX3VzZXJfZW11MzEoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQorc3RhdGljIHUzMiBfX3BlZWtfdXNlcl9jb21wYXQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgYWRkcl90IGFkZHIpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CiAJYWRkcl90IG9mZnNldDsKIAlfX3UzMiB0bXA7CiAKLQlpZiAoIXRlc3RfdGhyZWFkX2ZsYWcoVElGXzMxQklUKSB8fAotCSAgICAoYWRkciAmIDMpIHx8IGFkZHIgPiBzaXplb2Yoc3RydWN0IHVzZXIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKIAkJICogcHN3IGFuZCBncHJzIGFyZSBzdG9yZWQgb24gdGhlIHN0YWNrCkBAIC00MzUsMjUgKzQ1NCwzMiBAQAogCX0gZWxzZQogCQl0bXAgPSAwOwogCisJcmV0dXJuIHRtcDsKK30KKworc3RhdGljIGludCBwZWVrX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCV9fdTMyIHRtcDsKKworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcikgLSAzKQorCQlyZXR1cm4gLUVJTzsKKworCXRtcCA9IF9fcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkcik7CiAJcmV0dXJuIHB1dF91c2VyKHRtcCwgKF9fdTMyIF9fdXNlciAqKSBkYXRhKTsKIH0KIAogLyoKICAqIFNhbWUgYXMgcG9rZV91c2VyIGJ1dCBmb3IgYSAzMSBiaXQgcHJvZ3JhbS4KICAqLwotc3RhdGljIGludAotcG9rZV91c2VyX2VtdTMxKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGFkZHJfdCBhZGRyLCBhZGRyX3QgZGF0YSkKK3N0YXRpYyBpbnQgX19wb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgICBhZGRyX3QgYWRkciwgYWRkcl90IGRhdGEpCiB7CiAJc3RydWN0IHVzZXIzMiAqZHVtbXkzMiA9IE5VTEw7CiAJcGVyX3N0cnVjdDMyICpkdW1teV9wZXIzMiA9IE5VTEw7CisJX191MzIgdG1wID0gKF9fdTMyKSBkYXRhOwogCWFkZHJfdCBvZmZzZXQ7Ci0JX191MzIgdG1wOwotCi0JaWYgKCF0ZXN0X3RocmVhZF9mbGFnKFRJRl8zMUJJVCkgfHwKLQkgICAgKGFkZHIgJiAzKSB8fCBhZGRyID4gc2l6ZW9mKHN0cnVjdCB1c2VyMzIpIC0gMykKLQkJcmV0dXJuIC1FSU87Ci0KLQl0bXAgPSAoX191MzIpIGRhdGE7CiAKIAlpZiAoYWRkciA8IChhZGRyX3QpICZkdW1teTMyLT5yZWdzLmFjcnMpIHsKIAkJLyoKQEAgLTUyOCw2ICs1NTQsMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwb2tlX3VzZXJfY29tcGF0KHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgICAgYWRkcl90IGFkZHIsIGFkZHJfdCBkYXRhKQoreworCWlmICghdGVzdF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpIHx8CisJICAgIChhZGRyICYgMykgfHwgYWRkciA+IHNpemVvZihzdHJ1Y3QgdXNlcjMyKSAtIDMpCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIF9fcG9rZV91c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7Cit9CisKIGxvbmcgY29tcGF0X2FyY2hfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsIGNvbXBhdF9sb25nX3QgcmVxdWVzdCwKIAkJCWNvbXBhdF91bG9uZ190IGNhZGRyLCBjb21wYXRfdWxvbmdfdCBjZGF0YSkKIHsKQEAgLTUzOSwxMSArNTc1LDExIEBACiAJc3dpdGNoIChyZXF1ZXN0KSB7CiAJY2FzZSBQVFJBQ0VfUEVFS1VTUjoKIAkJLyogcmVhZCB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEuICovCi0JCXJldHVybiBwZWVrX3VzZXJfZW11MzEoY2hpbGQsIGFkZHIsIGRhdGEpOworCQlyZXR1cm4gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAKIAljYXNlIFBUUkFDRV9QT0tFVVNSOgogCQkvKiB3cml0ZSB0aGUgd29yZCBhdCBsb2NhdGlvbiBhZGRyIGluIHRoZSBVU0VSIGFyZWEgKi8KLQkJcmV0dXJuIHBva2VfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCXJldHVybiBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCBkYXRhKTsKIAogCWNhc2UgUFRSQUNFX1BFRUtVU1JfQVJFQToKIAljYXNlIFBUUkFDRV9QT0tFVVNSX0FSRUE6CkBAIC01NTUsMTMgKzU5MSwxMyBAQAogCQljb3BpZWQgPSAwOwogCQl3aGlsZSAoY29waWVkIDwgcGFyZWEubGVuKSB7CiAJCQlpZiAocmVxdWVzdCA9PSBQVFJBQ0VfUEVFS1VTUl9BUkVBKQotCQkJCXJldCA9IHBlZWtfdXNlcl9lbXUzMShjaGlsZCwgYWRkciwgZGF0YSk7CisJCQkJcmV0ID0gcGVla191c2VyX2NvbXBhdChjaGlsZCwgYWRkciwgZGF0YSk7CiAJCQllbHNlIHsKIAkJCQlfX3UzMiB1dG1wOwogCQkJCWlmIChnZXRfdXNlcih1dG1wLAogCQkJCQkgICAgIChfX3UzMiBfX2ZvcmNlIF9fdXNlciAqKSBkYXRhKSkKIAkJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQkJcmV0ID0gcG9rZV91c2VyX2VtdTMxKGNoaWxkLCBhZGRyLCB1dG1wKTsKKwkJCQlyZXQgPSBwb2tlX3VzZXJfY29tcGF0KGNoaWxkLCBhZGRyLCB1dG1wKTsKIAkJCX0KIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKQEAgLTYxMCwzICs2NDYsMjQwIEBACiAJCQkJICAgIHJlZ3MtPmdwcnNbMl0sIHJlZ3MtPm9yaWdfZ3ByMiwgcmVncy0+Z3Byc1szXSwKIAkJCQkgICAgcmVncy0+Z3Byc1s0XSwgcmVncy0+Z3Byc1s1XSk7CiB9CisKKy8qCisgKiB1c2VyX3JlZ3NldCBkZWZpbml0aW9ucy4KKyAqLworCitzdGF0aWMgaW50IHMzOTBfcmVnc19nZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkgdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJIHZvaWQgKmtidWYsIHZvaWQgX191c2VyICp1YnVmKQoreworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCXVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXIodGFyZ2V0LCBwb3MpOworCQkJY291bnQgLT0gc2l6ZW9mKCprKTsKKwkJCXBvcyArPSBzaXplb2YoKmspOworCQl9CisJfSBlbHNlIHsKKwkJdW5zaWduZWQgbG9uZyBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQlpZiAoX19wdXRfdXNlcihfX3BlZWtfdXNlcih0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9yZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCSB1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkgY29uc3Qgdm9pZCAqa2J1ZiwgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9hY2Nlc3NfcmVncyh0YXJnZXQtPnRocmVhZC5hY3JzKTsKKworCWlmIChrYnVmKSB7CisJCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJcmMgPSBfX3Bva2VfdXNlcih0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCB1bnNpZ25lZCBsb25nICBfX3VzZXIgKnUgPSB1YnVmOworCQl3aGlsZSAoY291bnQgPiAwICYmICFyYykgeworCQkJdW5zaWduZWQgbG9uZyB3b3JkOworCQkJcmMgPSBfX2dldF91c2VyKHdvcmQsIHUrKyk7CisJCQlpZiAocmMpCisJCQkJYnJlYWs7CisJCQlyYyA9IF9fcG9rZV91c2VyKHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCB2b2lkICprYnVmLCB2b2lkIF9fdXNlciAqdWJ1ZikKK3sKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfZnBfcmVncygmdGFyZ2V0LT50aHJlYWQuZnBfcmVncyk7CisKKwlyZXR1cm4gdXNlcl9yZWdzZXRfY29weW91dCgmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkgICAmdGFyZ2V0LT50aHJlYWQuZnBfcmVncywgMCwgLTEpOworfQorCitzdGF0aWMgaW50IHMzOTBfZnByZWdzX3NldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCSAgIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCAqcmVnc2V0LCB1bnNpZ25lZCBpbnQgcG9zLAorCQkJICAgdW5zaWduZWQgaW50IGNvdW50LCBjb25zdCB2b2lkICprYnVmLAorCQkJICAgY29uc3Qgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaW50IHJjID0gMDsKKworCWlmICh0YXJnZXQgPT0gY3VycmVudCkKKwkJc2F2ZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCS8qIElmIHNldHRpbmcgRlBDLCBtdXN0IHZhbGlkYXRlIGl0IGZpcnN0LiAqLworCWlmIChjb3VudCA+IDAgJiYgcG9zIDwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSkgeworCQl1MzIgZnBjWzJdID0geyB0YXJnZXQtPnRocmVhZC5mcF9yZWdzLmZwYywgMCB9OworCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwgJmZwYywKKwkJCQkJMCwgb2Zmc2V0b2YoczM5MF9mcF9yZWdzLCBmcHJzKSk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJaWYgKChmcGNbMF0gJiB+RlBDX1ZBTElEX01BU0spICE9IDAgfHwgZnBjWzFdICE9IDApCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcGMgPSBmcGNbMF07CisJfQorCisJaWYgKHJjID09IDAgJiYgY291bnQgPiAwKQorCQlyYyA9IHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKKwkJCQkJdGFyZ2V0LT50aHJlYWQuZnBfcmVncy5mcHJzLAorCQkJCQlvZmZzZXRvZihzMzkwX2ZwX3JlZ3MsIGZwcnMpLCAtMSk7CisKKwlpZiAocmMgPT0gMCAmJiB0YXJnZXQgPT0gY3VycmVudCkKKwkJcmVzdG9yZV9mcF9yZWdzKCZ0YXJnZXQtPnRocmVhZC5mcF9yZWdzKTsKKworCXJldHVybiByYzsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB1c2VyX3JlZ3NldCBzMzkwX3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9yZWdzKSAvIHNpemVvZihsb25nKSwKKwkJLnNpemUgPSBzaXplb2YobG9uZyksCisJCS5hbGlnbiA9IHNpemVvZihsb25nKSwKKwkJLmdldCA9IHMzOTBfcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YobG9uZyksCisJCS5zaXplID0gc2l6ZW9mKGxvbmcpLAorCQkuYWxpZ24gPSBzaXplb2YobG9uZyksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfdmlldyA9IHsKKwkubmFtZSA9IFVUU19NQUNISU5FLAorCS5lX21hY2hpbmUgPSBFTV9TMzkwLAorCS5yZWdzZXRzID0gczM5MF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX3JlZ3NldHMpCit9OworCisjaWZkZWYgQ09ORklHX0NPTVBBVAorc3RhdGljIGludCBzMzkwX2NvbXBhdF9yZWdzX2dldChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKKwkJCQljb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXQgKnJlZ3NldCwKKwkJCQl1bnNpZ25lZCBpbnQgcG9zLCB1bnNpZ25lZCBpbnQgY291bnQsCisJCQkJdm9pZCAqa2J1Ziwgdm9pZCBfX3VzZXIgKnVidWYpCit7CisJaWYgKHRhcmdldCA9PSBjdXJyZW50KQorCQlzYXZlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJaWYgKGtidWYpIHsKKwkJY29tcGF0X3Vsb25nX3QgKmsgPSBrYnVmOworCQl3aGlsZSAoY291bnQgPiAwKSB7CisJCQkqaysrID0gX19wZWVrX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zKTsKKwkJCWNvdW50IC09IHNpemVvZigqayk7CisJCQlwb3MgKz0gc2l6ZW9mKCprKTsKKwkJfQorCX0gZWxzZSB7CisJCWNvbXBhdF91bG9uZ190IF9fdXNlciAqdSA9IHVidWY7CisJCXdoaWxlIChjb3VudCA+IDApIHsKKwkJCWlmIChfX3B1dF91c2VyKF9fcGVla191c2VyX2NvbXBhdCh0YXJnZXQsIHBvcyksIHUrKykpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQljb3VudCAtPSBzaXplb2YoKnUpOworCQkJcG9zICs9IHNpemVvZigqdSk7CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgczM5MF9jb21wYXRfcmVnc19zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCisJCQkJY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0ICpyZWdzZXQsCisJCQkJdW5zaWduZWQgaW50IHBvcywgdW5zaWduZWQgaW50IGNvdW50LAorCQkJCWNvbnN0IHZvaWQgKmtidWYsIGNvbnN0IHZvaWQgX191c2VyICp1YnVmKQoreworCWludCByYyA9IDA7CisKKwlpZiAodGFyZ2V0ID09IGN1cnJlbnQpCisJCXNhdmVfYWNjZXNzX3JlZ3ModGFyZ2V0LT50aHJlYWQuYWNycyk7CisKKwlpZiAoa2J1ZikgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAqayA9IGtidWY7CisJCXdoaWxlIChjb3VudCA+IDAgJiYgIXJjKSB7CisJCQlyYyA9IF9fcG9rZV91c2VyX2NvbXBhdCh0YXJnZXQsIHBvcywgKmsrKyk7CisJCQljb3VudCAtPSBzaXplb2YoKmspOworCQkJcG9zICs9IHNpemVvZigqayk7CisJCX0KKwl9IGVsc2UgeworCQljb25zdCBjb21wYXRfdWxvbmdfdCAgX191c2VyICp1ID0gdWJ1ZjsKKwkJd2hpbGUgKGNvdW50ID4gMCAmJiAhcmMpIHsKKwkJCWNvbXBhdF91bG9uZ190IHdvcmQ7CisJCQlyYyA9IF9fZ2V0X3VzZXIod29yZCwgdSsrKTsKKwkJCWlmIChyYykKKwkJCQlicmVhazsKKwkJCXJjID0gX19wb2tlX3VzZXJfY29tcGF0KHRhcmdldCwgcG9zLCB3b3JkKTsKKwkJCWNvdW50IC09IHNpemVvZigqdSk7CisJCQlwb3MgKz0gc2l6ZW9mKCp1KTsKKwkJfQorCX0KKworCWlmIChyYyA9PSAwICYmIHRhcmdldCA9PSBjdXJyZW50KQorCQlyZXN0b3JlX2FjY2Vzc19yZWdzKHRhcmdldC0+dGhyZWFkLmFjcnMpOworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHVzZXJfcmVnc2V0IHMzOTBfY29tcGF0X3JlZ3NldHNbXSA9IHsKKwlbUkVHU0VUX0dFTkVSQUxdID0geworCQkuY29yZV9ub3RlX3R5cGUgPSBOVF9QUlNUQVRVUywKKwkJLm4gPSBzaXplb2YoczM5MF9jb21wYXRfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2NvbXBhdF9yZWdzX2dldCwKKwkJLnNldCA9IHMzOTBfY29tcGF0X3JlZ3Nfc2V0LAorCX0sCisJW1JFR1NFVF9GUF0gPSB7CisJCS5jb3JlX25vdGVfdHlwZSA9IE5UX1BSRlBSRUcsCisJCS5uID0gc2l6ZW9mKHMzOTBfZnBfcmVncykgLyBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5zaXplID0gc2l6ZW9mKGNvbXBhdF9sb25nX3QpLAorCQkuYWxpZ24gPSBzaXplb2YoY29tcGF0X2xvbmdfdCksCisJCS5nZXQgPSBzMzkwX2ZwcmVnc19nZXQsCisJCS5zZXQgPSBzMzkwX2ZwcmVnc19zZXQsCisJfSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyB1c2VyX3MzOTBfY29tcGF0X3ZpZXcgPSB7CisJLm5hbWUgPSAiczM5MCIsCisJLmVfbWFjaGluZSA9IEVNX1MzOTAsCisJLnJlZ3NldHMgPSBzMzkwX2NvbXBhdF9yZWdzZXRzLAorCS5uID0gQVJSQVlfU0laRShzMzkwX2NvbXBhdF9yZWdzZXRzKQorfTsKKyNlbmRpZgorCitjb25zdCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyAqdGFza191c2VyX3JlZ3NldF92aWV3KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKK3sKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisJaWYgKHRlc3RfdHNrX3RocmVhZF9mbGFnKHRhc2ssIFRJRl8zMUJJVCkpCisJCXJldHVybiAmdXNlcl9zMzkwX2NvbXBhdF92aWV3OworI2VuZGlmCisJcmV0dXJuICZ1c2VyX3MzOTBfdmlldzsKK30KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYwppbmRleCAyYmM3MGI2Li5iMzU4ZTE4IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC9zZXR1cC5jCkBAIC03Nyw3ICs3Nyw3IEBACiB1bnNpZ25lZCBsb25nIGVsZl9od2NhcCA9IDA7CiBjaGFyIGVsZl9wbGF0Zm9ybVtFTEZfUExBVEZPUk1fU0laRV07CiAKLXN0cnVjdCBtZW1fY2h1bmsgX19tZW1pbml0ZGF0YSBtZW1vcnlfY2h1bmtbTUVNT1JZX0NIVU5LU107CitzdHJ1Y3QgbWVtX2NodW5rIF9faW5pdGRhdGEgbWVtb3J5X2NodW5rW01FTU9SWV9DSFVOS1NdOwogdm9sYXRpbGUgaW50IF9fY3B1X2xvZ2ljYWxfbWFwW05SX0NQVVNdOyAvKiBsb2dpY2FsIGNwdSB0byBjcHUgYWRkcmVzcyAqLwogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBtZW1vcnlfZW5kOwogCkBAIC0yMDUsMTIgKzIwNSw2IEBACiAJCQlTRVRfQ09OU09MRV9TQ0xQOwogI2VuZGlmCiAJCX0KLSAgICAgICAgfSBlbHNlIGlmIChNQUNISU5FX0lTX1AzOTApIHsKLSNpZiBkZWZpbmVkKENPTkZJR19UTjMyMTVfQ09OU09MRSkKLQkJU0VUX0NPTlNPTEVfMzIxNTsKLSNlbGlmIGRlZmluZWQoQ09ORklHX1ROMzI3MF9DT05TT0xFKQotCQlTRVRfQ09OU09MRV8zMjcwOwotI2VuZGlmCiAJfSBlbHNlIHsKICNpZiBkZWZpbmVkKENPTkZJR19TQ0xQX0NPTlNPTEUpIHx8IGRlZmluZWQoQ09ORklHX1NDTFBfVlQyMjBfQ09OU09MRSkKIAkJU0VUX0NPTlNPTEVfU0NMUDsKQEAgLTIyMSwxOCArMjE1LDE3IEBACiAjaWYgZGVmaW5lZChDT05GSUdfWkZDUERVTVApIHx8IGRlZmluZWQoQ09ORklHX1pGQ1BEVU1QX01PRFVMRSkKIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF96ZmNwZHVtcCh1bnNpZ25lZCBpbnQgY29uc29sZV9kZXZubykKIHsKLQlzdGF0aWMgY2hhciBzdHJbNjRdOworCXN0YXRpYyBjaGFyIHN0cls0MV07CiAKIAlpZiAoaXBsX2luZm8udHlwZSAhPSBJUExfVFlQRV9GQ1BfRFVNUCkKIAkJcmV0dXJuOwogCWlmIChjb25zb2xlX2Rldm5vICE9IC0xKQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCwhMC4wLiUwNHgiLAorCQlzcHJpbnRmKHN0ciwgIiBjaW9faWdub3JlPWFsbCwhMC4wLiUwNHgsITAuMC4lMDR4IiwKIAkJCWlwbF9pbmZvLmRhdGEuZmNwLmRldl9pZC5kZXZubywgY29uc29sZV9kZXZubyk7CiAJZWxzZQotCQlzcHJpbnRmKHN0ciwgImNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCisJCXNwcmludGYoc3RyLCAiIGNpb19pZ25vcmU9YWxsLCEwLjAuJTA0eCIsCiAJCQlpcGxfaW5mby5kYXRhLmZjcC5kZXZfaWQuZGV2bm8pOwotCXN0cmNhdChDT01NQU5EX0xJTkUsICIgIik7Ci0Jc3RyY2F0KENPTU1BTkRfTElORSwgc3RyKTsKKwlzdHJjYXQoYm9vdF9jb21tYW5kX2xpbmUsIHN0cik7CiAJY29uc29sZV9sb2dsZXZlbCA9IDI7CiB9CiAjZWxzZQpAQCAtMjg5LDMyICsyODIsNiBAQAogfQogZWFybHlfcGFyYW0oIm1lbSIsIGVhcmx5X3BhcnNlX21lbSk7CiAKLS8qCi0gKiAiaXBsZGVsYXk9WFhYW3NtXSIgc2V0cyBpcGwgZGVsYXkgaW4gc2Vjb25kcyBvciBtaW51dGVzCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3BhcnNlX2lwbGRlbGF5KGNoYXIgKnApCi17Ci0JdW5zaWduZWQgbG9uZyBkZWxheSA9IDA7Ci0KLQlkZWxheSA9IHNpbXBsZV9zdHJ0b3VsKHAsICZwLCAwKTsKLQotCXN3aXRjaCAoKnApIHsKLQljYXNlICdzJzoKLQljYXNlICdTJzoKLQkJZGVsYXkgKj0gMTAwMDAwMDsKLQkJYnJlYWs7Ci0JY2FzZSAnbSc6Ci0JY2FzZSAnTSc6Ci0JCWRlbGF5ICo9IDYwICogMTAwMDAwMDsKLQl9Ci0KLQkvKiBub3cgd2FpdCBmb3IgdGhlIHJlcXVlc3RlZCBhbW91bnQgb2YgdGltZSAqLwotCXVkZWxheShkZWxheSk7Ci0KLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJpcGxkZWxheSIsIGVhcmx5X3BhcnNlX2lwbGRlbGF5KTsKLQogI2lmZGVmIENPTkZJR19TMzkwX1NXSVRDSF9BTU9ERQogI2lmZGVmIENPTkZJR19QR1NURQogdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZSA9IDE7CkBAIC04MDQsMTEgKzc3MSw5IEBACiAJCXByaW50aygiV2UgYXJlIHJ1bm5pbmcgbmF0aXZlICg2NCBiaXQgbW9kZSlcbiIpOwogI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwogCi0JLyogU2F2ZSB1bnBhcnNlZCBjb21tYW5kIGxpbmUgY29weSBmb3IgL3Byb2MvY21kbGluZSAqLwotCXN0cmxjcHkoYm9vdF9jb21tYW5kX2xpbmUsIENPTU1BTkRfTElORSwgQ09NTUFORF9MSU5FX1NJWkUpOwotCi0JKmNtZGxpbmVfcCA9IENPTU1BTkRfTElORTsKLQkqKCpjbWRsaW5lX3AgKyBDT01NQU5EX0xJTkVfU0laRSAtIDEpID0gJ1wwJzsKKwkvKiBIYXZlIG9uZSBjb21tYW5kIGxpbmUgdGhhdCBpcyBwYXJzZWQgYW5kIHNhdmVkIGluIC9wcm9jL2NtZGxpbmUgKi8KKwkvKiBib290X2NvbW1hbmRfbGluZSBoYXMgYmVlbiBhbHJlYWR5IHNldCB1cCBpbiBlYXJseS5jICovCisJKmNtZGxpbmVfcCA9IGJvb3RfY29tbWFuZF9saW5lOwogCiAgICAgICAgIFJPT1RfREVWID0gUm9vdF9SQU0wOwogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9zbXAuYwppbmRleCAxZjQyMjg5Li41ZDRmYTRiIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvc21wLmMKQEAgLTcxMSw3ICs3MTEsNyBAQAogCW1lbXNldChzZiwgMCwgc2l6ZW9mKHN0cnVjdCBzdGFja19mcmFtZSkpOwogCXNmLT5ncHJzWzldID0gKHVuc2lnbmVkIGxvbmcpIHNmOwogCWNwdV9sb3djb3JlLT5zYXZlX2FyZWFbMTVdID0gKHVuc2lnbmVkIGxvbmcpIHNmOwotCV9fY3RsX3N0b3JlKGNwdV9sb3djb3JlLT5jcmVnc19zYXZlX2FyZWFbMF0sIDAsIDE1KTsKKwlfX2N0bF9zdG9yZShjcHVfbG93Y29yZS0+Y3JlZ3Nfc2F2ZV9hcmVhLCAwLCAxNSk7CiAJYXNtIHZvbGF0aWxlKAogCQkiCXN0YW0JMCwxNSwwKCUwKSIKIAkJOiA6ICJhIiAoJmNwdV9sb3djb3JlLT5hY2Nlc3NfcmVnc19zYXZlX2FyZWEpIDogIm1lbW9yeSIpOwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAKIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogCi1pbnQgc21wX3Jlc2Nhbl9jcHVzKHZvaWQpCitpbnQgX19yZWYgc21wX3Jlc2Nhbl9jcHVzKHZvaWQpCiB7CiAJY3B1bWFza190IG5ld2NwdXM7CiAJaW50IGNwdTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdGltZS5jIGIvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKaW5kZXggN2FlYzY3Ni4uNzQxOGJlYiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKKysrIGIvYXJjaC9zMzkwL2tlcm5lbC90aW1lLmMKQEAgLTMsNyArMyw3IEBACiAgKiAgICBUaW1lIG9mIGRheSBiYXNlZCB0aW1lciBmdW5jdGlvbnMuCiAgKgogICogIFMzOTAgdmVyc2lvbgotICogICAgQ29weXJpZ2h0IChDKSAxOTk5IElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILCBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMTk5OSwgMjAwOAogICogICAgQXV0aG9yKHMpOiBIYXJ0bXV0IFBlbm5lciAoaHBAZGUuaWJtLmNvbSksCiAgKiAgICAgICAgICAgICAgIE1hcnRpbiBTY2h3aWRlZnNreSAoc2Nod2lkZWZza3lAZGUuaWJtLmNvbSksCiAgKiAgICAgICAgICAgICAgIERlbmlzIEpvc2VwaCBCYXJyb3cgKGRqYmFycm93QGRlLmlibS5jb20sYmFycm93X2RqQHlhaG9vLmNvbSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kZWxheS5oPgogI2luY2x1ZGUgPGFzbS9zMzkwX2V4dC5oPgpAQCAtMTYyLDcgKzE2Myw3IEBACiAJLyogRW5hYmxlIGNsb2NrIGNvbXBhcmF0b3IgdGltZXIgaW50ZXJydXB0LiAqLwogCV9fY3RsX3NldF9iaXQoMCwxMSk7CiAKLQkvKiBBbHdheXMgYWxsb3cgRVRSIGV4dGVybmFsIGludGVycnVwdHMsIGV2ZW4gd2l0aG91dCBhbiBFVFIuICovCisJLyogQWx3YXlzIGFsbG93IHRoZSB0aW1pbmcgYWxlcnQgZXh0ZXJuYWwgaW50ZXJydXB0LiAqLwogCV9fY3RsX3NldF9iaXQoMCwgNCk7CiB9CiAKQEAgLTE3MCw4ICsxNzEsMjEgQEAKIHsKIH0KIAorc3RhdGljIHZvaWQgZXRyX3RpbWluZ19hbGVydChzdHJ1Y3QgZXRyX2lycV9wYXJtICopOworc3RhdGljIHZvaWQgc3RwX3RpbWluZ19hbGVydChzdHJ1Y3Qgc3RwX2lycV9wYXJtICopOworCitzdGF0aWMgdm9pZCB0aW1pbmdfYWxlcnRfaW50ZXJydXB0KF9fdTE2IGNvZGUpCit7CisJaWYgKFMzOTBfbG93Y29yZS5leHRfcGFyYW1zICYgMHgwMGM0MDAwMCkKKwkJZXRyX3RpbWluZ19hbGVydCgoc3RydWN0IGV0cl9pcnFfcGFybSAqKQorCQkJCSAmUzM5MF9sb3djb3JlLmV4dF9wYXJhbXMpOworCWlmIChTMzkwX2xvd2NvcmUuZXh0X3BhcmFtcyAmIDB4MDAwMzgwMDApCisJCXN0cF90aW1pbmdfYWxlcnQoKHN0cnVjdCBzdHBfaXJxX3Bhcm0gKikKKwkJCQkgJlMzOTBfbG93Y29yZS5leHRfcGFyYW1zKTsKK30KKwogc3RhdGljIHZvaWQgZXRyX3Jlc2V0KHZvaWQpOwotc3RhdGljIHZvaWQgZXRyX2V4dF9oYW5kbGVyKF9fdTE2KTsKK3N0YXRpYyB2b2lkIHN0cF9yZXNldCh2b2lkKTsKIAogLyoKICAqIEdldCB0aGUgVE9EIGNsb2NrIHJ1bm5pbmcuCkBAIC0xODEsNiArMTk1LDcgQEAKIAl1NjQgdGltZTsKIAogCWV0cl9yZXNldCgpOworCXN0cF9yZXNldCgpOwogCWlmIChzdG9yZV9jbG9jaygmdGltZSkgPT0gMCkKIAkJcmV0dXJuIHRpbWU7CiAJLyogVE9EIGNsb2NrIG5vdCBydW5uaW5nLiBTZXQgdGhlIGNsb2NrIHRvIFVuaXggRXBvY2guICovCkBAIC0yMzEsOCArMjQ2LDkgQEAKIAlpZiAoY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3RvZCkgIT0gMCkKIAkJcGFuaWMoIkNvdWxkIG5vdCByZWdpc3RlciBUT0QgY2xvY2sgc291cmNlIik7CiAKLQkvKiByZXF1ZXN0IHRoZSBldHIgZXh0ZXJuYWwgaW50ZXJydXB0ICovCi0JaWYgKHJlZ2lzdGVyX2Vhcmx5X2V4dGVybmFsX2ludGVycnVwdCgweDE0MDYsIGV0cl9leHRfaGFuZGxlciwKKwkvKiByZXF1ZXN0IHRoZSB0aW1pbmcgYWxlcnQgZXh0ZXJuYWwgaW50ZXJydXB0ICovCisJaWYgKHJlZ2lzdGVyX2Vhcmx5X2V4dGVybmFsX2ludGVycnVwdCgweDE0MDYsCisJCQkJCSAgICAgIHRpbWluZ19hbGVydF9pbnRlcnJ1cHQsCiAJCQkJCSAgICAgICZleHRfaW50X2V0cl9jYykgIT0gMCkKIAkJcGFuaWMoIkNvdWxkbid0IHJlcXVlc3QgZXh0ZXJuYWwgaW50ZXJydXB0IDB4MTQwNiIpOwogCkBAIC0yNDUsMTAgKzI2MSwxMTIgQEAKIH0KIAogLyoKKyAqIFRoZSB0aW1lIGlzICJjbG9jayIuIG9sZCBpcyB3aGF0IHdlIHRoaW5rIHRoZSB0aW1lIGlzLgorICogQWRqdXN0IHRoZSB2YWx1ZSBieSBhIG11bHRpcGxlIG9mIGppZmZpZXMgYW5kIGFkZCB0aGUgZGVsdGEgdG8gbnRwLgorICogImRlbGF5IiBpcyBhbiBhcHByb3hpbWF0aW9uIGhvdyBsb25nIHRoZSBzeW5jaHJvbml6YXRpb24gdG9vay4gSWYKKyAqIHRoZSB0aW1lIGNvcnJlY3Rpb24gaXMgcG9zaXRpdmUsIHRoZW4gImRlbGF5IiBpcyBzdWJ0cmFjdGVkIGZyb20KKyAqIHRoZSB0aW1lIGRpZmZlcmVuY2UgYW5kIG9ubHkgdGhlIHJlbWFpbmluZyBwYXJ0IGlzIHBhc3NlZCB0byBudHAuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgYWRqdXN0X3RpbWUodW5zaWduZWQgbG9uZyBsb25nIG9sZCwKKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2ssCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRlbGF5KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSwgdGlja3M7CisJc3RydWN0IHRpbWV4IGFkanVzdDsKKworCWlmIChjbG9jayA+IG9sZCkgeworCQkvKiBJdCBpcyBsYXRlciB0aGFuIHdlIHRob3VnaHQuICovCisJCWRlbHRhID0gdGlja3MgPSBjbG9jayAtIG9sZDsKKwkJZGVsdGEgPSB0aWNrcyA9IChkZWx0YSA8IGRlbGF5KSA/IDAgOiBkZWx0YSAtIGRlbGF5OworCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOworCQlhZGp1c3Qub2Zmc2V0ID0gdGlja3MgKiAoMTAwMDAwMCAvIEhaKTsKKwl9IGVsc2UgeworCQkvKiBJdCBpcyBlYXJsaWVyIHRoYW4gd2UgdGhvdWdodC4gKi8KKwkJZGVsdGEgPSB0aWNrcyA9IG9sZCAtIGNsb2NrOworCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOworCQlkZWx0YSA9IC1kZWx0YTsKKwkJYWRqdXN0Lm9mZnNldCA9IC10aWNrcyAqICgxMDAwMDAwIC8gSFopOworCX0KKwlqaWZmaWVzX3RpbWVyX2NjICs9IGRlbHRhOworCWlmIChhZGp1c3Qub2Zmc2V0ICE9IDApIHsKKwkJcHJpbnRrKEtFUk5fTk9USUNFICJldHI6IHRpbWUgYWRqdXN0ZWQgYnkgJWxpIG1pY3JvLXNlY29uZHNcbiIsCisJCSAgICAgICBhZGp1c3Qub2Zmc2V0KTsKKwkJYWRqdXN0Lm1vZGVzID0gQURKX09GRlNFVF9TSU5HTEVTSE9UOworCQlkb19hZGp0aW1leCgmYWRqdXN0KTsKKwl9CisJcmV0dXJuIGRlbHRhOworfQorCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoYXRvbWljX3QsIGNsb2NrX3N5bmNfd29yZCk7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBjbG9ja19zeW5jX2ZsYWdzOworCisjZGVmaW5lIENMT0NLX1NZTkNfSEFTX0VUUgkwCisjZGVmaW5lIENMT0NLX1NZTkNfSEFTX1NUUAkxCisjZGVmaW5lIENMT0NLX1NZTkNfRVRSCQkyCisjZGVmaW5lIENMT0NLX1NZTkNfU1RQCQkzCisKKy8qCisgKiBUaGUgc3luY2hyb25vdXMgZ2V0X2Nsb2NrIGZ1bmN0aW9uLiBJdCB3aWxsIHdyaXRlIHRoZSBjdXJyZW50IGNsb2NrCisgKiB2YWx1ZSB0byB0aGUgY2xvY2sgcG9pbnRlciBhbmQgcmV0dXJuIDAgaWYgdGhlIGNsb2NrIGlzIGluIHN5bmMgd2l0aAorICogdGhlIGV4dGVybmFsIHRpbWUgc291cmNlLiBJZiB0aGUgY2xvY2sgbW9kZSBpcyBsb2NhbCBpdCB3aWxsIHJldHVybgorICogLUVOT1NZUyBhbmQgLUVBR0FJTiBpZiB0aGUgY2xvY2sgaXMgbm90IGluIHN5bmMgd2l0aCB0aGUgZXh0ZXJuYWwKKyAqIHJlZmVyZW5jZS4KKyAqLworaW50IGdldF9zeW5jX2Nsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqY2xvY2spCit7CisJYXRvbWljX3QgKnN3X3B0cjsKKwl1bnNpZ25lZCBpbnQgc3cwLCBzdzE7CisKKwlzd19wdHIgPSAmZ2V0X2NwdV92YXIoY2xvY2tfc3luY193b3JkKTsKKwlzdzAgPSBhdG9taWNfcmVhZChzd19wdHIpOworCSpjbG9jayA9IGdldF9jbG9jaygpOworCXN3MSA9IGF0b21pY19yZWFkKHN3X3B0cik7CisJcHV0X2NwdV92YXIoY2xvY2tfc3luY19zeW5jKTsKKwlpZiAoc3cwID09IHN3MSAmJiAoc3cwICYgMHg4MDAwMDAwMFUpKQorCQkvKiBTdWNjZXNzOiB0aW1lIGlzIGluIHN5bmMuICovCisJCXJldHVybiAwOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfRVRSLCAmY2xvY2tfc3luY19mbGFncykgJiYKKwkgICAgIXRlc3RfYml0KENMT0NLX1NZTkNfSEFTX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm4gLUVOT1NZUzsKKwlpZiAoIXRlc3RfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncykgJiYKKwkgICAgIXRlc3RfYml0KENMT0NLX1NZTkNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRUFDQ0VTOworCXJldHVybiAtRUFHQUlOOworfQorRVhQT1JUX1NZTUJPTChnZXRfc3luY19jbG9jayk7CisKKy8qCisgKiBNYWtlIGdldF9zeW5jX2Nsb2NrIHJldHVybiAtRUFHQUlOLgorICovCitzdGF0aWMgdm9pZCBkaXNhYmxlX3N5bmNfY2xvY2sodm9pZCAqZHVtbXkpCit7CisJYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGNsb2NrX3N5bmNfd29yZCk7CisJLyoKKwkgKiBDbGVhciB0aGUgaW4tc3luYyBiaXQgMl4zMS4gQWxsIGdldF9zeW5jX2Nsb2NrIGNhbGxzIHdpbGwKKwkgKiBmYWlsIHVudGlsIHRoZSBzeW5jIGJpdCBpcyB0dXJuZWQgYmFjayBvbi4gSW4gYWRkaXRpb24KKwkgKiBpbmNyZWFzZSB0aGUgInNlcXVlbmNlIiBjb3VudGVyIHRvIGF2b2lkIHRoZSByYWNlIG9mIGFuCisJICogZXRyIGV2ZW50IGFuZCB0aGUgY29tcGxldGUgcmVjb3ZlcnkgYWdhaW5zdCBnZXRfc3luY19jbG9jay4KKwkgKi8KKwlhdG9taWNfY2xlYXJfbWFzaygweDgwMDAwMDAwLCBzd19wdHIpOworCWF0b21pY19pbmMoc3dfcHRyKTsKK30KKworLyoKKyAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIDAgYWdhaW4uCisgKiBOZWVkcyB0byBiZSBjYWxsZWQgZnJvbSBhIGNvbnRleHQgZGlzYWJsZWQgZm9yIHByZWVtcHRpb24uCisgKi8KK3N0YXRpYyB2b2lkIGVuYWJsZV9zeW5jX2Nsb2NrKHZvaWQpCit7CisJYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGNsb2NrX3N5bmNfd29yZCk7CisJYXRvbWljX3NldF9tYXNrKDB4ODAwMDAwMDAsIHN3X3B0cik7Cit9CisKKy8qCiAgKiBFeHRlcm5hbCBUaW1lIFJlZmVyZW5jZSAoRVRSKSBjb2RlLgogICovCiBzdGF0aWMgaW50IGV0cl9wb3J0MF9vbmxpbmU7CiBzdGF0aWMgaW50IGV0cl9wb3J0MV9vbmxpbmU7CitzdGF0aWMgaW50IGV0cl9zdGVhaV9hdmFpbGFibGU7CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3BhcnNlX2V0cihjaGFyICpwKQogewpAQCAtMjczLDEyICszOTEsNiBAQAogCUVUUl9FVkVOVF9VUERBVEUsCiB9OwogCi1lbnVtIGV0cl9mbGFncyB7Ci0JRVRSX0ZMQUdfRU5PU1lTLAotCUVUUl9GTEFHX0VBQ0NFUywKLQlFVFJfRkxBR19TVEVBSSwKLX07Ci0KIC8qCiAgKiBWYWxpZCBiaXQgY29tYmluYXRpb25zIG9mIHRoZSBlYWNyIHJlZ2lzdGVyIGFyZSAoeCA9IGRvbid0IGNhcmUpOgogICogZTAgZTEgZHAgcDAgcDEgZWEgZXMgc2wKQEAgLTMwNSw3NCArNDE3LDE4IEBACiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZXRyX2VhY3IgZXRyX2VhY3I7CiBzdGF0aWMgdTY0IGV0cl90b2xlYzsJCQkvKiB0aW1lIG9mIGxhc3QgZWFjciB1cGRhdGUgKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGV0cl9mbGFnczsKIHN0YXRpYyBzdHJ1Y3QgZXRyX2FpYiBldHJfcG9ydDA7CiBzdGF0aWMgaW50IGV0cl9wb3J0MF91cHRvZGF0ZTsKIHN0YXRpYyBzdHJ1Y3QgZXRyX2FpYiBldHJfcG9ydDE7CiBzdGF0aWMgaW50IGV0cl9wb3J0MV91cHRvZGF0ZTsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIGV0cl9ldmVudHM7CiBzdGF0aWMgc3RydWN0IHRpbWVyX2xpc3QgZXRyX3RpbWVyOwotc3RhdGljIERFRklORV9QRVJfQ1BVKGF0b21pY190LCBldHJfc3luY193b3JkKTsKIAogc3RhdGljIHZvaWQgZXRyX3RpbWVvdXQodW5zaWduZWQgbG9uZyBkdW1teSk7CiBzdGF0aWMgdm9pZCBldHJfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogc3RhdGljIERFQ0xBUkVfV09SSyhldHJfd29yaywgZXRyX3dvcmtfZm4pOwogCiAvKgotICogVGhlIGV0ciBnZXRfY2xvY2sgZnVuY3Rpb24uIEl0IHdpbGwgd3JpdGUgdGhlIGN1cnJlbnQgY2xvY2sgdmFsdWUKLSAqIHRvIHRoZSBjbG9jayBwb2ludGVyIGFuZCByZXR1cm4gMCBpZiB0aGUgY2xvY2sgaXMgaW4gc3luYyB3aXRoIHRoZQotICogZXh0ZXJuYWwgdGltZSBzb3VyY2UuIElmIHRoZSBjbG9jayBtb2RlIGlzIGxvY2FsIGl0IHdpbGwgcmV0dXJuCi0gKiAtRU5PU1lTIGFuZCAtRUFHQUlOIGlmIHRoZSBjbG9jayBpcyBub3QgaW4gc3luYyB3aXRoIHRoZSBleHRlcm5hbAotICogcmVmZXJlbmNlLiBUaGlzIGZ1bmN0aW9uIGlzIHdoYXQgRVRSIGlzIGFsbCBhYm91dC4uCi0gKi8KLWludCBnZXRfc3luY19jbG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKmNsb2NrKQotewotCWF0b21pY190ICpzd19wdHI7Ci0JdW5zaWduZWQgaW50IHN3MCwgc3cxOwotCi0Jc3dfcHRyID0gJmdldF9jcHVfdmFyKGV0cl9zeW5jX3dvcmQpOwotCXN3MCA9IGF0b21pY19yZWFkKHN3X3B0cik7Ci0JKmNsb2NrID0gZ2V0X2Nsb2NrKCk7Ci0Jc3cxID0gYXRvbWljX3JlYWQoc3dfcHRyKTsKLQlwdXRfY3B1X3ZhcihldHJfc3luY19zeW5jKTsKLQlpZiAoc3cwID09IHN3MSAmJiAoc3cwICYgMHg4MDAwMDAwMFUpKQotCQkvKiBTdWNjZXNzOiB0aW1lIGlzIGluIHN5bmMuICovCi0JCXJldHVybiAwOwotCWlmICh0ZXN0X2JpdChFVFJfRkxBR19FTk9TWVMsICZldHJfZmxhZ3MpKQotCQlyZXR1cm4gLUVOT1NZUzsKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKSkKLQkJcmV0dXJuIC1FQUNDRVM7Ci0JcmV0dXJuIC1FQUdBSU47Ci19Ci1FWFBPUlRfU1lNQk9MKGdldF9zeW5jX2Nsb2NrKTsKLQotLyoKLSAqIE1ha2UgZ2V0X3N5bmNfY2xvY2sgcmV0dXJuIC1FQUdBSU4uCi0gKi8KLXN0YXRpYyB2b2lkIGV0cl9kaXNhYmxlX3N5bmNfY2xvY2sodm9pZCAqZHVtbXkpCi17Ci0JYXRvbWljX3QgKnN3X3B0ciA9ICZfX2dldF9jcHVfdmFyKGV0cl9zeW5jX3dvcmQpOwotCS8qCi0JICogQ2xlYXIgdGhlIGluLXN5bmMgYml0IDJeMzEuIEFsbCBnZXRfc3luY19jbG9jayBjYWxscyB3aWxsCi0JICogZmFpbCB1bnRpbCB0aGUgc3luYyBiaXQgaXMgdHVybmVkIGJhY2sgb24uIEluIGFkZGl0aW9uCi0JICogaW5jcmVhc2UgdGhlICJzZXF1ZW5jZSIgY291bnRlciB0byBhdm9pZCB0aGUgcmFjZSBvZiBhbgotCSAqIGV0ciBldmVudCBhbmQgdGhlIGNvbXBsZXRlIHJlY292ZXJ5IGFnYWluc3QgZ2V0X3N5bmNfY2xvY2suCi0JICovCi0JYXRvbWljX2NsZWFyX21hc2soMHg4MDAwMDAwMCwgc3dfcHRyKTsKLQlhdG9taWNfaW5jKHN3X3B0cik7Ci19Ci0KLS8qCi0gKiBNYWtlIGdldF9zeW5jX2Nsb2NrIHJldHVybiAwIGFnYWluLgotICogTmVlZHMgdG8gYmUgY2FsbGVkIGZyb20gYSBjb250ZXh0IGRpc2FibGVkIGZvciBwcmVlbXB0aW9uLgotICovCi1zdGF0aWMgdm9pZCBldHJfZW5hYmxlX3N5bmNfY2xvY2sodm9pZCkKLXsKLQlhdG9taWNfdCAqc3dfcHRyID0gJl9fZ2V0X2NwdV92YXIoZXRyX3N5bmNfd29yZCk7Ci0JYXRvbWljX3NldF9tYXNrKDB4ODAwMDAwMDAsIHN3X3B0cik7Ci19Ci0KLS8qCiAgKiBSZXNldCBFVFIgYXR0YWNobWVudC4KICAqLwogc3RhdGljIHZvaWQgZXRyX3Jlc2V0KHZvaWQpCkBAIC0zODEsMTUgKzQzNywxMyBAQAogCQkuZTAgPSAwLCAuZTEgPSAwLCAuX3BhZDAgPSA0LCAuZHAgPSAwLAogCQkucDAgPSAwLCAucDEgPSAwLCAuX3BhZDEgPSAwLCAuZWEgPSAwLAogCQkuZXMgPSAwLCAuc2wgPSAwIH07Ci0JaWYgKGV0cl9zZXRyKCZldHJfZWFjcikgPT0gMCkKKwlpZiAoZXRyX3NldHIoJmV0cl9lYWNyKSA9PSAwKSB7CiAJCWV0cl90b2xlYyA9IGdldF9jbG9jaygpOwotCWVsc2UgewotCQlzZXRfYml0KEVUUl9GTEFHX0VOT1NZUywgJmV0cl9mbGFncyk7Ci0JCWlmIChldHJfcG9ydDBfb25saW5lIHx8IGV0cl9wb3J0MV9vbmxpbmUpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlJ1bm5pbmcgb24gbm9uIEVUUiBjYXBhYmxlICIKLQkJCSAgICAgICAibWFjaGluZSwgb25seSBsb2NhbCBtb2RlIGF2YWlsYWJsZS5cbiIpOwotCQkJZXRyX3BvcnQwX29ubGluZSA9IGV0cl9wb3J0MV9vbmxpbmUgPSAwOwotCQl9CisJCXNldF9iaXQoQ0xPQ0tfU1lOQ19IQVNfRVRSLCAmY2xvY2tfc3luY19mbGFncyk7CisJfSBlbHNlIGlmIChldHJfcG9ydDBfb25saW5lIHx8IGV0cl9wb3J0MV9vbmxpbmUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gRVRSIGNhcGFibGUgIgorCQkgICAgICAgIm1hY2hpbmUsIG9ubHkgbG9jYWwgbW9kZSBhdmFpbGFibGUuXG4iKTsKKwkJZXRyX3BvcnQwX29ubGluZSA9IGV0cl9wb3J0MV9vbmxpbmUgPSAwOwogCX0KIH0KIApAQCAtMzk3LDE0ICs0NTEsMTIgQEAKIHsKIAlzdHJ1Y3QgZXRyX2FpYiBhaWI7CiAKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKSkKKwlpZiAoIXRlc3RfYml0KENMT0NLX1NZTkNfSEFTX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpKQogCQlyZXR1cm4gMDsKIAkvKiBDaGVjayBpZiB0aGlzIG1hY2hpbmUgaGFzIHRoZSBzdGVhaSBpbnN0cnVjdGlvbi4gKi8KIAlpZiAoZXRyX3N0ZWFpKCZhaWIsIEVUUl9TVEVBSV9TVEVQUElOR19QT1JUKSA9PSAwKQotCQlzZXRfYml0KEVUUl9GTEFHX1NURUFJLCAmZXRyX2ZsYWdzKTsKKwkJZXRyX3N0ZWFpX2F2YWlsYWJsZSA9IDE7CiAJc2V0dXBfdGltZXIoJmV0cl90aW1lciwgZXRyX3RpbWVvdXQsIDBVTCk7Ci0JaWYgKCFldHJfcG9ydDBfb25saW5lICYmICFldHJfcG9ydDFfb25saW5lKQotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJaWYgKGV0cl9wb3J0MF9vbmxpbmUpIHsKIAkJc2V0X2JpdChFVFJfRVZFTlRfUE9SVDBfQ0hBTkdFLCAmZXRyX2V2ZW50cyk7CiAJCXNjaGVkdWxlX3dvcmsoJmV0cl93b3JrKTsKQEAgLTQzNSw3ICs0ODcsOCBAQAogewogCWlmICghZXRyX2VhY3Iuc2wpCiAJCXJldHVybjsKLQlldHJfZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlkaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CiAJc2V0X2JpdChFVFJfRVZFTlRfU1dJVENIX0xPQ0FMLCAmZXRyX2V2ZW50cyk7CiAJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOwogfQpAQCAtNDUwLDIzICs1MDMsMjEgQEAKIHsKIAlpZiAoIWV0cl9lYWNyLmVzKQogCQlyZXR1cm47Ci0JZXRyX2Rpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwlpZiAodGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCXNldF9iaXQoRVRSX0VWRU5UX1NZTkNfQ0hFQ0ssICZldHJfZXZlbnRzKTsKIAlzY2hlZHVsZV93b3JrKCZldHJfd29yayk7CiB9CiAKIC8qCi0gKiBFVFIgZXh0ZXJuYWwgaW50ZXJydXB0LiBUaGVyZSBhcmUgdHdvIGNhdXNlczoKKyAqIEVUUiB0aW1pbmcgYWxlcnQuIFRoZXJlIGFyZSB0d28gY2F1c2VzOgogICogMSkgcG9ydCBzdGF0ZSBjaGFuZ2UsIGNoZWNrIHRoZSB1c2FiaWxpdHkgb2YgdGhlIHBvcnQKICAqIDIpIHBvcnQgYWxlcnQsIG9uZSBvZiB0aGUgRVRSLWRhdGEtdmFsaWRpdHkgYml0cyAodjEtdjIgYml0cyBvZiB0aGUKICAqICAgIHNsZHItc3RhdHVzIHdvcmQpIG9yIEVUUi1kYXRhIHdvcmQgMSAoZWRmMSkgb3IgRVRSLWRhdGEgd29yZCAzIChlZGYzKQogICogICAgb3IgRVRSLWRhdGEgd29yZCA0IChlZGY0KSBoYXMgY2hhbmdlZC4KICAqLwotc3RhdGljIHZvaWQgZXRyX2V4dF9oYW5kbGVyKF9fdTE2IGNvZGUpCitzdGF0aWMgdm9pZCBldHJfdGltaW5nX2FsZXJ0KHN0cnVjdCBldHJfaXJxX3Bhcm0gKmludHBhcm0pCiB7Ci0Jc3RydWN0IGV0cl9pbnRlcnJ1cHRpb25fcGFyYW1ldGVyICppbnRwYXJtID0KLQkJKHN0cnVjdCBldHJfaW50ZXJydXB0aW9uX3BhcmFtZXRlciAqKSAmUzM5MF9sb3djb3JlLmV4dF9wYXJhbXM7Ci0KIAlpZiAoaW50cGFybS0+cGMwKQogCQkvKiBFVFIgcG9ydCAwIHN0YXRlIGNoYW5nZS4gKi8KIAkJc2V0X2JpdChFVFJfRVZFTlRfUE9SVDBfQ0hBTkdFLCAmZXRyX2V2ZW50cyk7CkBAIC01OTEsNTggKzY0MiwyMyBAQAogCXJldHVybiAxOwogfQogCi0vKgotICogVGhlIHRpbWUgaXMgImNsb2NrIi4gb2xkIGlzIHdoYXQgd2UgdGhpbmsgdGhlIHRpbWUgaXMuCi0gKiBBZGp1c3QgdGhlIHZhbHVlIGJ5IGEgbXVsdGlwbGUgb2YgamlmZmllcyBhbmQgYWRkIHRoZSBkZWx0YSB0byBudHAuCi0gKiAiZGVsYXkiIGlzIGFuIGFwcHJveGltYXRpb24gaG93IGxvbmcgdGhlIHN5bmNocm9uaXphdGlvbiB0b29rLiBJZgotICogdGhlIHRpbWUgY29ycmVjdGlvbiBpcyBwb3NpdGl2ZSwgdGhlbiAiZGVsYXkiIGlzIHN1YnRyYWN0ZWQgZnJvbQotICogdGhlIHRpbWUgZGlmZmVyZW5jZSBhbmQgb25seSB0aGUgcmVtYWluaW5nIHBhcnQgaXMgcGFzc2VkIHRvIG50cC4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBldHJfYWRqdXN0X3RpbWUodW5zaWduZWQgbG9uZyBsb25nIG9sZCwKLQkJCQkJICB1bnNpZ25lZCBsb25nIGxvbmcgY2xvY2ssCi0JCQkJCSAgdW5zaWduZWQgbG9uZyBsb25nIGRlbGF5KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSwgdGlja3M7Ci0Jc3RydWN0IHRpbWV4IGFkanVzdDsKLQotCWlmIChjbG9jayA+IG9sZCkgewotCQkvKiBJdCBpcyBsYXRlciB0aGFuIHdlIHRob3VnaHQuICovCi0JCWRlbHRhID0gdGlja3MgPSBjbG9jayAtIG9sZDsKLQkJZGVsdGEgPSB0aWNrcyA9IChkZWx0YSA8IGRlbGF5KSA/IDAgOiBkZWx0YSAtIGRlbGF5OwotCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOwotCQlhZGp1c3Qub2Zmc2V0ID0gdGlja3MgKiAoMTAwMDAwMCAvIEhaKTsKLQl9IGVsc2UgewotCQkvKiBJdCBpcyBlYXJsaWVyIHRoYW4gd2UgdGhvdWdodC4gKi8KLQkJZGVsdGEgPSB0aWNrcyA9IG9sZCAtIGNsb2NrOwotCQlkZWx0YSAtPSBkb19kaXYodGlja3MsIENMS19USUNLU19QRVJfSklGRlkpOwotCQlkZWx0YSA9IC1kZWx0YTsKLQkJYWRqdXN0Lm9mZnNldCA9IC10aWNrcyAqICgxMDAwMDAwIC8gSFopOwotCX0KLQlqaWZmaWVzX3RpbWVyX2NjICs9IGRlbHRhOwotCWlmIChhZGp1c3Qub2Zmc2V0ICE9IDApIHsKLQkJcHJpbnRrKEtFUk5fTk9USUNFICJldHI6IHRpbWUgYWRqdXN0ZWQgYnkgJWxpIG1pY3JvLXNlY29uZHNcbiIsCi0JCSAgICAgICBhZGp1c3Qub2Zmc2V0KTsKLQkJYWRqdXN0Lm1vZGVzID0gQURKX09GRlNFVF9TSU5HTEVTSE9UOwotCQlkb19hZGp0aW1leCgmYWRqdXN0KTsKLQl9Ci0JcmV0dXJuIGRlbHRhOwotfQotCi1zdGF0aWMgc3RydWN0IHsKK3N0cnVjdCBjbG9ja19zeW5jX2RhdGEgewogCWludCBpbl9zeW5jOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBmaXh1cF9jYzsKLX0gZXRyX3N5bmM7Cit9OwogCi1zdGF0aWMgdm9pZCBldHJfc3luY19jcHVfc3RhcnQodm9pZCAqZHVtbXkpCitzdGF0aWMgdm9pZCBjbG9ja19zeW5jX2NwdV9zdGFydCh2b2lkICpkdW1teSkKIHsKLQlldHJfZW5hYmxlX3N5bmNfY2xvY2soKTsKKwlzdHJ1Y3QgY2xvY2tfc3luY19kYXRhICpzeW5jID0gZHVtbXk7CisKKwllbmFibGVfc3luY19jbG9jaygpOwogCS8qCiAJICogVGhpcyBsb29rcyBsaWtlIGEgYnVzeSB3YWl0IGxvb3AgYnV0IGl0IGlzbid0LiBldHJfc3luY19jcHVzCiAJICogaXMgY2FsbGVkIG9uIGFsbCBvdGhlciBjcHVzIHdoaWxlIHRoZSBUT0QgY2xvY2tzIGlzIHN0b3BwZWQuCiAJICogX191ZGVsYXkgd2lsbCBzdG9wIHRoZSBjcHUgb24gYW4gZW5hYmxlZCB3YWl0IHBzdyB1bnRpbCB0aGUKIAkgKiBUT0QgaXMgcnVubmluZyBhZ2Fpbi4KIAkgKi8KLQl3aGlsZSAoZXRyX3N5bmMuaW5fc3luYyA9PSAwKSB7CisJd2hpbGUgKHN5bmMtPmluX3N5bmMgPT0gMCkgewogCQlfX3VkZWxheSgxKTsKIAkJLyoKIAkJICogQSBkaWZmZXJlbnQgY3B1IGNoYW5nZXMgKmluX3N5bmMuIFRoZXJlZm9yZSB1c2UKQEAgLTY1MCwxNyArNjY2LDE3IEBACiAJCSAqLwogCQliYXJyaWVyKCk7CiAJfQotCWlmIChldHJfc3luYy5pbl9zeW5jICE9IDEpCisJaWYgKHN5bmMtPmluX3N5bmMgIT0gMSkKIAkJLyogRGlkbid0IHdvcmsuIENsZWFyIHBlci1jcHUgaW4gc3luYyBiaXQgYWdhaW4uICovCi0JCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKIAkvKgogCSAqIFRoaXMgcm91bmQgb2YgVE9EIHN5bmNpbmcgaXMgZG9uZS4gU2V0IHRoZSBjbG9jayBjb21wYXJhdG9yCiAJICogdG8gdGhlIG5leHQgdGljayBhbmQgbGV0IHRoZSBwcm9jZXNzb3IgY29udGludWUuCiAJICovCi0JZml4dXBfY2xvY2tfY29tcGFyYXRvcihldHJfc3luYy5maXh1cF9jYyk7CisJZml4dXBfY2xvY2tfY29tcGFyYXRvcihzeW5jLT5maXh1cF9jYyk7CiB9CiAKLXN0YXRpYyB2b2lkIGV0cl9zeW5jX2NwdV9lbmQodm9pZCAqZHVtbXkpCitzdGF0aWMgdm9pZCBjbG9ja19zeW5jX2NwdV9lbmQodm9pZCAqZHVtbXkpCiB7CiB9CiAKQEAgLTY3Miw2ICs2ODgsNyBAQAogc3RhdGljIGludCBldHJfc3luY19jbG9jayhzdHJ1Y3QgZXRyX2FpYiAqYWliLCBpbnQgcG9ydCkKIHsKIAlzdHJ1Y3QgZXRyX2FpYiAqc3luY19wb3J0OworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgZXRyX3N5bmM7CiAJdW5zaWduZWQgbG9uZyBsb25nIGNsb2NrLCBvbGRfY2xvY2ssIGRlbGF5LCBkZWx0YTsKIAlpbnQgZm9sbG93czsKIAlpbnQgcmM7CkBAIC02OTAsOSArNzA3LDkgQEAKIAkgKi8KIAltZW1zZXQoJmV0cl9zeW5jLCAwLCBzaXplb2YoZXRyX3N5bmMpKTsKIAlwcmVlbXB0X2Rpc2FibGUoKTsKLQlzbXBfY2FsbF9mdW5jdGlvbihldHJfc3luY19jcHVfc3RhcnQsIE5VTEwsIDAsIDApOworCXNtcF9jYWxsX2Z1bmN0aW9uKGNsb2NrX3N5bmNfY3B1X3N0YXJ0LCAmZXRyX3N5bmMsIDAsIDApOwogCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JZXRyX2VuYWJsZV9zeW5jX2Nsb2NrKCk7CisJZW5hYmxlX3N5bmNfY2xvY2soKTsKIAogCS8qIFNldCBjbG9jayB0byBuZXh0IE9URS4gKi8KIAlfX2N0bF9zZXRfYml0KDE0LCAyMSk7CkBAIC03MDcsMTMgKzcyNCwxMyBAQAogCQkvKiBBZGp1c3QgTGludXggdGltaW5nIHZhcmlhYmxlcy4gKi8KIAkJZGVsYXkgPSAodW5zaWduZWQgbG9uZyBsb25nKQogCQkJKGFpYi0+ZWRmMi5ldHYgLSBzeW5jX3BvcnQtPmVkZjIuZXR2KSA8PCAzMjsKLQkJZGVsdGEgPSBldHJfYWRqdXN0X3RpbWUob2xkX2Nsb2NrLCBjbG9jaywgZGVsYXkpOworCQlkZWx0YSA9IGFkanVzdF90aW1lKG9sZF9jbG9jaywgY2xvY2ssIGRlbGF5KTsKIAkJZXRyX3N5bmMuZml4dXBfY2MgPSBkZWx0YTsKIAkJZml4dXBfY2xvY2tfY29tcGFyYXRvcihkZWx0YSk7CiAJCS8qIFZlcmlmeSB0aGF0IHRoZSBjbG9jayBpcyBwcm9wZXJseSBzZXQuICovCiAJCWlmICghZXRyX2FpYl9mb2xsb3dzKHN5bmNfcG9ydCwgYWliLCBwb3J0KSkgewogCQkJLyogRGlkbid0IHdvcmsuICovCi0JCQlldHJfZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCQkJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOwogCQkJZXRyX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CiAJCQlyYyA9IC1FQUdBSU47CiAJCX0gZWxzZSB7CkBAIC03MjQsMTIgKzc0MSwxMiBAQAogCQkvKiBDb3VsZCBub3Qgc2V0IHRoZSBjbG9jayA/IT8gKi8KIAkJX19jdGxfY2xlYXJfYml0KDAsIDI5KTsKIAkJX19jdGxfY2xlYXJfYml0KDE0LCAyMSk7Ci0JCWV0cl9kaXNhYmxlX3N5bmNfY2xvY2soTlVMTCk7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKIAkJZXRyX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CiAJCXJjID0gLUVBR0FJTjsKIAl9CiAJbG9jYWxfaXJxX2VuYWJsZSgpOwotCXNtcF9jYWxsX2Z1bmN0aW9uKGV0cl9zeW5jX2NwdV9lbmQsTlVMTCwwLDApOworCXNtcF9jYWxsX2Z1bmN0aW9uKGNsb2NrX3N5bmNfY3B1X2VuZCwgTlVMTCwgMCwgMCk7CiAJcHJlZW1wdF9lbmFibGUoKTsKIAlyZXR1cm4gcmM7CiB9CkBAIC04MzIsNyArODQ5LDcgQEAKIAkgKiBEbyBub3QgdHJ5IHRvIGdldCB0aGUgYWx0ZXJuYXRlIHBvcnQgYWliIGlmIHRoZSBjbG9jawogCSAqIGlzIG5vdCBpbiBzeW5jIHlldC4KIAkgKi8KLQlpZiAoIWVhY3IuZXMpCisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpICYmICFlYWNyLmVzKQogCQlyZXR1cm4gZWFjcjsKIAogCS8qCkBAIC04NDAsNyArODU3LDcgQEAKIAkgKiB0aGUgb3RoZXIgcG9ydCBpbW1lZGlhdGVseS4gSWYgb25seSBzdGV0ciBpcyBhdmFpbGFibGUgdGhlCiAJICogZGF0YS1wb3J0IGJpdCB0b2dnbGUgaGFzIHRvIGJlIHVzZWQuCiAJICovCi0JaWYgKHRlc3RfYml0KEVUUl9GTEFHX1NURUFJLCAmZXRyX2ZsYWdzKSkgeworCWlmIChldHJfc3RlYWlfYXZhaWxhYmxlKSB7CiAJCWlmIChlYWNyLnAwICYmICFldHJfcG9ydDBfdXB0b2RhdGUpIHsKIAkJCWV0cl9zdGVhaV9jdigmZXRyX3BvcnQwLCBFVFJfU1RFQUlfUE9SVF8wKTsKIAkJCWV0cl9wb3J0MF91cHRvZGF0ZSA9IDE7CkBAIC05MDksMTAgKzkyNiwxMCBAQAogCWlmICghZWFjci5lYSkgewogCQkvKiBCb3RoIHBvcnRzIG9mZmxpbmUuIFJlc2V0IGV2ZXJ5dGhpbmcuICovCiAJCWVhY3IuZHAgPSBlYWNyLmVzID0gZWFjci5zbCA9IDA7Ci0JCW9uX2VhY2hfY3B1KGV0cl9kaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDAsIDEpOworCQlvbl9lYWNoX2NwdShkaXNhYmxlX3N5bmNfY2xvY2ssIE5VTEwsIDAsIDEpOwogCQlkZWxfdGltZXJfc3luYygmZXRyX3RpbWVyKTsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCQlyZXR1cm47CiAJfQogCkBAIC05NTMsNyArOTcwLDYgQEAKIAkJCWVhY3IuZTEgPSAxOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQwX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDAsIDApKSA/IDAgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAxICYmIGFpYi5lc3cucHNjMSA9PSBldHJfbHBzY19wcHNfbW9kZSkgewogCQllYWNyLnNsID0gMDsKIAkJZWFjci5lMCA9IDA7CkBAIC05NjIsNyArOTc4LDYgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIGlmIChlYWNyLnAwICYmIGFpYi5lc3cucHNjMCA9PSBldHJfbHBzY19vcGVyYXRpb25hbF9zdGVwKSB7CiAJCWVhY3Iuc2wgPSAxOwogCQllYWNyLmUwID0gMTsKQEAgLTk3Niw3ICs5OTEsNiBAQAogCQkJZWFjci5lMSA9IDE7CiAJCXN5bmNfcG9ydCA9IChldHJfcG9ydDBfdXB0b2RhdGUgJiYKIAkJCSAgICAgZXRyX3BvcnRfdmFsaWQoJmV0cl9wb3J0MCwgMCkpID8gMCA6IC0xOwotCQljbGVhcl9iaXQoRVRSX0ZMQUdfRUFDQ0VTLCAmZXRyX2ZsYWdzKTsKIAl9IGVsc2UgaWYgKGVhY3IucDEgJiYgYWliLmVzdy5wc2MxID09IGV0cl9scHNjX29wZXJhdGlvbmFsX3N0ZXApIHsKIAkJZWFjci5zbCA9IDE7CiAJCWVhY3IuZTAgPSAwOwpAQCAtOTg1LDE5ICs5OTksMjIgQEAKIAkJCWVhY3IuZXMgPSAwOwogCQlzeW5jX3BvcnQgPSAoZXRyX3BvcnQxX3VwdG9kYXRlICYmCiAJCQkgICAgIGV0cl9wb3J0X3ZhbGlkKCZldHJfcG9ydDEsIDEpKSA/IDEgOiAtMTsKLQkJY2xlYXJfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CiAJfSBlbHNlIHsKIAkJLyogQm90aCBwb3J0cyBub3QgdXNhYmxlLiAqLwogCQllYWNyLmVzID0gZWFjci5zbCA9IDA7CiAJCXN5bmNfcG9ydCA9IC0xOwotCQlzZXRfYml0KEVUUl9GTEFHX0VBQ0NFUywgJmV0cl9mbGFncyk7CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX0VUUiwgJmNsb2NrX3N5bmNfZmxhZ3MpOwogCX0KIAorCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJZWFjci5lcyA9IDA7CisKIAkvKgogCSAqIElmIHRoZSBjbG9jayBpcyBpbiBzeW5jIGp1c3QgdXBkYXRlIHRoZSBlYWNyIGFuZCByZXR1cm4uCiAJICogSWYgdGhlcmUgaXMgbm8gdmFsaWQgc3luYyBwb3J0IHdhaXQgZm9yIGEgcG9ydCB1cGRhdGUuCiAJICovCi0JaWYgKGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgeworCWlmICh0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpIHx8CisJICAgIGVhY3IuZXMgfHwgc3luY19wb3J0IDwgMCkgewogCQlldHJfdXBkYXRlX2VhY3IoZWFjcik7CiAJCWV0cl9zZXRfdG9sZWNfdGltZW91dChub3cpOwogCQlyZXR1cm47CkBAIC0xMDE4LDExICsxMDM1LDEzIEBACiAJICogYW5kIHNldCB1cCBhIHRpbWVyIHRvIHRyeSBhZ2FpbiBhZnRlciAwLjUgc2Vjb25kcwogCSAqLwogCWV0cl91cGRhdGVfZWFjcihlYWNyKTsKKwlzZXRfYml0KENMT0NLX1NZTkNfRVRSLCAmY2xvY2tfc3luY19mbGFncyk7CiAJaWYgKG5vdyA8IGV0cl90b2xlYyArICgxNjAwMDAwIDw8IDEyKSB8fAogCSAgICBldHJfc3luY19jbG9jaygmYWliLCBzeW5jX3BvcnQpICE9IDApIHsKIAkJLyogU3luYyBmYWlsZWQuIFRyeSBhZ2FpbiBpbiAxLzIgc2Vjb25kLiAqLwogCQllYWNyLmVzID0gMDsKIAkJZXRyX3VwZGF0ZV9lYWNyKGVhY3IpOworCQljbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKTsKIAkJZXRyX3NldF9zeW5jX3RpbWVvdXQoKTsKIAl9IGVsc2UKIAkJZXRyX3NldF90b2xlY190aW1lb3V0KG5vdyk7CkBAIC0xMDk3LDggKzExMTYsOCBAQAogCXZhbHVlID0gc2ltcGxlX3N0cnRvdWwoYnVmLCBOVUxMLCAwKTsKIAlpZiAodmFsdWUgIT0gMCAmJiB2YWx1ZSAhPSAxKQogCQlyZXR1cm4gLUVJTlZBTDsKLQlpZiAodGVzdF9iaXQoRVRSX0ZMQUdfRU5PU1lTLCAmZXRyX2ZsYWdzKSkKLQkJcmV0dXJuIC1FTk9TWVM7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX0hBU19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmIChkZXYgPT0gJmV0cl9wb3J0MF9kZXYpIHsKIAkJaWYgKGV0cl9wb3J0MF9vbmxpbmUgPT0gdmFsdWUpCiAJCQlyZXR1cm4gY291bnQ7CS8qIE5vdGhpbmcgdG8gZG8uICovCkBAIC0xMjkyLDMgKzEzMTEsMzE4IEBACiB9CiAKIGRldmljZV9pbml0Y2FsbChldHJfaW5pdF9zeXNmcyk7CisKKy8qCisgKiBTZXJ2ZXIgVGltZSBQcm90b2NvbCAoU1RQKSBjb2RlLgorICovCitzdGF0aWMgaW50IHN0cF9vbmxpbmU7CitzdGF0aWMgc3RydWN0IHN0cF9zc3RwaSBzdHBfaW5mbzsKK3N0YXRpYyB2b2lkICpzdHBfcGFnZTsKKworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3N0YXRpYyBERUNMQVJFX1dPUksoc3RwX3dvcmssIHN0cF93b3JrX2ZuKTsKKworc3RhdGljIGludCBfX2luaXQgZWFybHlfcGFyc2Vfc3RwKGNoYXIgKnApCit7CisJaWYgKHN0cm5jbXAocCwgIm9mZiIsIDMpID09IDApCisJCXN0cF9vbmxpbmUgPSAwOworCWVsc2UgaWYgKHN0cm5jbXAocCwgIm9uIiwgMikgPT0gMCkKKwkJc3RwX29ubGluZSA9IDE7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgic3RwIiwgZWFybHlfcGFyc2Vfc3RwKTsKKworLyoKKyAqIFJlc2V0IFNUUCBhdHRhY2htZW50LgorICovCitzdGF0aWMgdm9pZCBzdHBfcmVzZXQodm9pZCkKK3sKKwlpbnQgcmM7CisKKwlzdHBfcGFnZSA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKKwlyYyA9IGNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCWlmIChyYyA9PSAxKQorCQlzZXRfYml0KENMT0NLX1NZTkNfSEFTX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWVsc2UgaWYgKHN0cF9vbmxpbmUpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiUnVubmluZyBvbiBub24gU1RQIGNhcGFibGUgbWFjaGluZS5cbiIpOworCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHN0cF9wYWdlLCBQQUdFX1NJWkUpOworCQlzdHBfcGFnZSA9IE5VTEw7CisJCXN0cF9vbmxpbmUgPSAwOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgc3RwX2luaXQodm9pZCkKK3sKKwlpZiAodGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykgJiYgc3RwX29ubGluZSkKKwkJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiAwOworfQorCithcmNoX2luaXRjYWxsKHN0cF9pbml0KTsKKworLyoKKyAqIFNUUCB0aW1pbmcgYWxlcnQuIFRoZXJlIGFyZSB0aHJlZSBjYXVzZXM6CisgKiAxKSB0aW1pbmcgc3RhdHVzIGNoYW5nZQorICogMikgbGluayBhdmFpbGFiaWxpdHkgY2hhbmdlCisgKiAzKSB0aW1lIGNvbnRyb2wgcGFyYW1ldGVyIGNoYW5nZQorICogSW4gYWxsIHRocmVlIGNhc2VzIHdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGNsb2NrIHNvdXJjZSBzdGF0ZS4KKyAqIElmIGEgU1RQIGNsb2NrIHNvdXJjZSBpcyBub3cgYXZhaWxhYmxlIHVzZSBpdC4KKyAqLworc3RhdGljIHZvaWQgc3RwX3RpbWluZ19hbGVydChzdHJ1Y3Qgc3RwX2lycV9wYXJtICppbnRwYXJtKQoreworCWlmIChpbnRwYXJtLT50c2MgfHwgaW50cGFybS0+bGFjIHx8IGludHBhcm0tPnRjcGMpCisJCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBzeW5jIGNoZWNrIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gdGhlIHRpbWluZyBzdGF0ZQorICogY2hhbmdlcyBmcm9tIHRoZSBzeW5jaHJvbml6ZWQgc3RhdGUgdG8gdGhlIHVuc3luY2hyb25pemVkIHN0YXRlLgorICogQWZ0ZXIgYSBTVFAgc3luYyBjaGVjayB0aGUgY2xvY2sgaXMgbm90IGluIHN5bmMuIFRoZSBtYWNoaW5lIGNoZWNrCisgKiBpcyBicm9hZGNhc3RlZCB0byBhbGwgY3B1cyBhdCB0aGUgc2FtZSB0aW1lLgorICovCit2b2lkIHN0cF9zeW5jX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCBpc2xhbmQgY29uZGl0aW9uIG1hY2hpbmUgY2hlY2suIFRoaXMgaXMgY2FsbGVkIHdoZW4gYW4gYXR0YWNoZWQKKyAqIHNlcnZlciAgYXR0ZW1wdHMgdG8gY29tbXVuaWNhdGUgb3ZlciBhbiBTVFAgbGluayBhbmQgdGhlIHNlcnZlcnMKKyAqIGhhdmUgbWF0Y2hpbmcgQ1ROIGlkcyBhbmQgaGF2ZSBhIHZhbGlkIHN0cmF0dW0tMSBjb25maWd1cmF0aW9uCisgKiBidXQgdGhlIGNvbmZpZ3VyYXRpb25zIGRvIG5vdCBtYXRjaC4KKyAqLwordm9pZCBzdHBfaXNsYW5kX2NoZWNrKHZvaWQpCit7CisJaWYgKCF0ZXN0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpKQorCQlyZXR1cm47CisJZGlzYWJsZV9zeW5jX2Nsb2NrKE5VTEwpOworCXNjaGVkdWxlX3dvcmsoJnN0cF93b3JrKTsKK30KKworLyoKKyAqIFNUUCB0YXNrbGV0LiBDaGVjayBmb3IgdGhlIFNUUCBzdGF0ZSBhbmQgdGFrZSBvdmVyIHRoZSBjbG9jaworICogc3luY2hyb25pemF0aW9uIGlmIHRoZSBTVFAgY2xvY2sgc291cmNlIGlzIHVzYWJsZS4KKyAqLworc3RhdGljIHZvaWQgc3RwX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBjbG9ja19zeW5jX2RhdGEgc3RwX3N5bmM7CisJdW5zaWduZWQgbG9uZyBsb25nIG9sZF9jbG9jaywgZGVsdGE7CisJaW50IHJjOworCisJaWYgKCFzdHBfb25saW5lKSB7CisJCWNoc2Nfc3N0cGMoc3RwX3BhZ2UsIFNUUF9PUF9DVFJMLCAweDAwMDApOworCQlyZXR1cm47CisJfQorCisJcmMgPSBjaHNjX3NzdHBjKHN0cF9wYWdlLCBTVFBfT1BfQ1RSTCwgMHhiMGUwKTsKKwlpZiAocmMpCisJCXJldHVybjsKKworCXJjID0gY2hzY19zc3RwaShzdHBfcGFnZSwgJnN0cF9pbmZvLCBzaXplb2Yoc3RydWN0IHN0cF9zc3RwaSkpOworCWlmIChyYyB8fCBzdHBfaW5mby5jID09IDApCisJCXJldHVybjsKKworCS8qCisJICogQ2F0Y2ggYWxsIG90aGVyIGNwdXMgYW5kIG1ha2UgdGhlbSB3YWl0IHVudGlsIHdlIGhhdmUKKwkgKiBzdWNjZXNzZnVsbHkgc3luY2VkIHRoZSBjbG9jay4gc21wX2NhbGxfZnVuY3Rpb24gd2lsbAorCSAqIHJldHVybiBhZnRlciBhbGwgb3RoZXIgY3B1cyBhcmUgaW4gY2xvY2tfc3luY19jcHVfc3RhcnQuCisJICovCisJbWVtc2V0KCZzdHBfc3luYywgMCwgc2l6ZW9mKHN0cF9zeW5jKSk7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJc21wX2NhbGxfZnVuY3Rpb24oY2xvY2tfc3luY19jcHVfc3RhcnQsICZzdHBfc3luYywgMCwgMCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwllbmFibGVfc3luY19jbG9jaygpOworCisJc2V0X2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCWlmICh0ZXN0X2FuZF9jbGVhcl9iaXQoQ0xPQ0tfU1lOQ19FVFIsICZjbG9ja19zeW5jX2ZsYWdzKSkKKwkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCisJcmMgPSAwOworCWlmIChzdHBfaW5mby50b2RvZmZbMF0gfHwgc3RwX2luZm8udG9kb2ZmWzFdIHx8CisJICAgIHN0cF9pbmZvLnRvZG9mZlsyXSB8fCBzdHBfaW5mby50b2RvZmZbM10gfHwKKwkgICAgc3RwX2luZm8udG1kICE9IDIpIHsKKwkJb2xkX2Nsb2NrID0gZ2V0X2Nsb2NrKCk7CisJCXJjID0gY2hzY19zc3RwYyhzdHBfcGFnZSwgU1RQX09QX1NZTkMsIDApOworCQlpZiAocmMgPT0gMCkgeworCQkJZGVsdGEgPSBhZGp1c3RfdGltZShvbGRfY2xvY2ssIGdldF9jbG9jaygpLCAwKTsKKwkJCWZpeHVwX2Nsb2NrX2NvbXBhcmF0b3IoZGVsdGEpOworCQkJcmMgPSBjaHNjX3NzdHBpKHN0cF9wYWdlLCAmc3RwX2luZm8sCisJCQkJCXNpemVvZihzdHJ1Y3Qgc3RwX3NzdHBpKSk7CisJCQlpZiAocmMgPT0gMCAmJiBzdHBfaW5mby50bWQgIT0gMikKKwkJCQlyYyA9IC1FQUdBSU47CisJCX0KKwl9CisJaWYgKHJjKSB7CisJCWRpc2FibGVfc3luY19jbG9jayhOVUxMKTsKKwkJc3RwX3N5bmMuaW5fc3luYyA9IC1FQUdBSU47CisJCWNsZWFyX2JpdChDTE9DS19TWU5DX1NUUCwgJmNsb2NrX3N5bmNfZmxhZ3MpOworCQlpZiAoZXRyX3BvcnQwX29ubGluZSB8fCBldHJfcG9ydDFfb25saW5lKQorCQkJc2NoZWR1bGVfd29yaygmZXRyX3dvcmspOworCX0gZWxzZQorCQlzdHBfc3luYy5pbl9zeW5jID0gMTsKKworCWxvY2FsX2lycV9lbmFibGUoKTsKKwlzbXBfY2FsbF9mdW5jdGlvbihjbG9ja19zeW5jX2NwdV9lbmQsIE5VTEwsIDAsIDApOworCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKKy8qCisgKiBTVFAgY2xhc3Mgc3lzZnMgaW50ZXJmYWNlIGZ1bmN0aW9ucworICovCitzdGF0aWMgc3RydWN0IHN5c2Rldl9jbGFzcyBzdHBfc3lzY2xhc3MgPSB7CisJLm5hbWUJPSAic3RwIiwKK307CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5faWRfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiUwMTZsbHhcbiIsCisJCSAgICAgICAqKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSBzdHBfaW5mby5jdG5pZCk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5faWQsIDA0MDAsIHN0cF9jdG5faWRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9jdG5fdHlwZV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIHN0cF9pbmZvLmN0bik7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihjdG5fdHlwZSwgMDQwMCwgc3RwX2N0bl90eXBlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfZHN0X29mZnNldF9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDIwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uZHN0byk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihkc3Rfb2Zmc2V0LCAwNDAwLCBzdHBfZHN0X29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX2xlYXBfc2Vjb25kc19zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lIHx8ICEoc3RwX2luZm8udmJpdHMgJiAweDgwMDApKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8ubGVhcHMpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIobGVhcF9zZWNvbmRzLCAwNDAwLCBzdHBfbGVhcF9zZWNvbmRzX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfc3RyYXR1bV9zaG93KHN0cnVjdCBzeXNkZXZfY2xhc3MgKmNsYXNzLCBjaGFyICpidWYpCit7CisJaWYgKCFzdHBfb25saW5lKQorCQlyZXR1cm4gLUVOT0RBVEE7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWlcbiIsIChpbnQpKHMxNikgc3RwX2luZm8uc3RyYXR1bSk7Cit9CisKK3N0YXRpYyBTWVNERVZfQ0xBU1NfQVRUUihzdHJhdHVtLCAwNDAwLCBzdHBfc3RyYXR1bV9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4MDgwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkgc3RwX2luZm8udHRvKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWVfb2Zmc2V0LCAwNDAwLCBzdHBfdGltZV9vZmZzZXRfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1lX3pvbmVfb2Zmc2V0X3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUgfHwgIShzdHBfaW5mby52Yml0cyAmIDB4NDAwMCkpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgKGludCkoczE2KSBzdHBfaW5mby50em8pOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltZV96b25lX29mZnNldCwgMDQwMCwKKwkJCSBzdHBfdGltZV96b25lX29mZnNldF9zaG93LCBOVUxMKTsKKworc3RhdGljIHNzaXplX3Qgc3RwX3RpbWluZ19tb2RlX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlpZiAoIXN0cF9vbmxpbmUpCisJCXJldHVybiAtRU5PREFUQTsKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX2luZm8udG1kKTsKK30KKworc3RhdGljIFNZU0RFVl9DTEFTU19BVFRSKHRpbWluZ19tb2RlLCAwNDAwLCBzdHBfdGltaW5nX21vZGVfc2hvdywgTlVMTCk7CisKK3N0YXRpYyBzc2l6ZV90IHN0cF90aW1pbmdfc3RhdGVfc2hvdyhzdHJ1Y3Qgc3lzZGV2X2NsYXNzICpjbGFzcywgY2hhciAqYnVmKQoreworCWlmICghc3RwX29ubGluZSkKKwkJcmV0dXJuIC1FTk9EQVRBOworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVpXG4iLCBzdHBfaW5mby50c3QpOworfQorCitzdGF0aWMgU1lTREVWX0NMQVNTX0FUVFIodGltaW5nX3N0YXRlLCAwNDAwLCBzdHBfdGltaW5nX3N0YXRlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBzdHBfb25saW5lX3Nob3coc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlaVxuIiwgc3RwX29ubGluZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0cF9vbmxpbmVfc3RvcmUoc3RydWN0IHN5c2Rldl9jbGFzcyAqY2xhc3MsCisJCQkJY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCit7CisJdW5zaWduZWQgaW50IHZhbHVlOworCisJdmFsdWUgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDApOworCWlmICh2YWx1ZSAhPSAwICYmIHZhbHVlICE9IDEpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghdGVzdF9iaXQoQ0xPQ0tfU1lOQ19IQVNfU1RQLCAmY2xvY2tfc3luY19mbGFncykpCisJCXJldHVybiAtRU9QTk9UU1VQUDsKKwlzdHBfb25saW5lID0gdmFsdWU7CisJc2NoZWR1bGVfd29yaygmc3RwX3dvcmspOworCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIENhbid0IHVzZSBTWVNERVZfQ0xBU1NfQVRUUiBiZWNhdXNlIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIGJlIG5hbWVkCisgKiBzdHAvb25saW5lIGJ1dCBhdHRyX29ubGluZSBhbHJlYWR5IGV4aXN0cyBpbiB0aGlzIGZpbGUgLi4KKyAqLworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3NfYXR0cmlidXRlIGF0dHJfc3RwX29ubGluZSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAib25saW5lIiwgLm1vZGUgPSAwNjAwIH0sCisJLnNob3cJPSBzdHBfb25saW5lX3Nob3csCisJLnN0b3JlCT0gc3RwX29ubGluZV9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzX2F0dHJpYnV0ZSAqc3RwX2F0dHJpYnV0ZXNbXSA9IHsKKwkmYXR0cl9jdG5faWQsCisJJmF0dHJfY3RuX3R5cGUsCisJJmF0dHJfZHN0X29mZnNldCwKKwkmYXR0cl9sZWFwX3NlY29uZHMsCisJJmF0dHJfc3RwX29ubGluZSwKKwkmYXR0cl9zdHJhdHVtLAorCSZhdHRyX3RpbWVfb2Zmc2V0LAorCSZhdHRyX3RpbWVfem9uZV9vZmZzZXQsCisJJmF0dHJfdGltaW5nX21vZGUsCisJJmF0dHJfdGltaW5nX3N0YXRlLAorCU5VTEwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHN0cF9pbml0X3N5c2ZzKHZvaWQpCit7CisJc3RydWN0IHN5c2Rldl9jbGFzc19hdHRyaWJ1dGUgKiphdHRyOworCWludCByYzsKKworCXJjID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZzdHBfc3lzY2xhc3MpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisJZm9yIChhdHRyID0gc3RwX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspIHsKKwkJcmMgPSBzeXNkZXZfY2xhc3NfY3JlYXRlX2ZpbGUoJnN0cF9zeXNjbGFzcywgKmF0dHIpOworCQlpZiAocmMpCisJCQlnb3RvIG91dF91bnJlZzsKKwl9CisJcmV0dXJuIDA7CitvdXRfdW5yZWc6CisJZm9yICg7IGF0dHIgPj0gc3RwX2F0dHJpYnV0ZXM7IGF0dHItLSkKKwkJc3lzZGV2X2NsYXNzX3JlbW92ZV9maWxlKCZzdHBfc3lzY2xhc3MsICphdHRyKTsKKwlzeXNkZXZfY2xhc3NfdW5yZWdpc3Rlcigmc3RwX3N5c2NsYXNzKTsKK291dDoKKwlyZXR1cm4gcmM7Cit9CisKK2RldmljZV9pbml0Y2FsbChzdHBfaW5pdF9zeXNmcyk7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMKaW5kZXggNjYxYTA3Mi4uMjEyZDYxOCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwpAQCAtMzEzLDggKzMxMyw2IEBACiAJCW1hY2hpbmVfaGFzX3RvcG9sb2d5X2lycSA9IDE7CiAKIAl0bF9pbmZvID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOwotCWlmICghdGxfaW5mbykKLQkJZ290byBlcnJvcjsKIAlpbmZvID0gdGxfaW5mbzsKIAlzdHNpKGluZm8sIDE1LCAxLCAyKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9zMzkwL2tlcm5lbC92bWxpbnV4Lmxkcy5TCmluZGV4IGI0NjA3MTUuLjc2YzFlNjAgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rZXJuZWwvdm1saW51eC5sZHMuUworKysgYi9hcmNoL3MzOTAva2VybmVsL3ZtbGludXgubGRzLlMKQEAgLTQwLDcgKzQwLDYgQEAKIAlfZXRleHQgPSAuOwkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCiAJTk9URVMgOnRleHQgOm5vdGUKLQlCVUdfVEFCTEUgOnRleHQKIAogCVJPREFUQQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMgYi9hcmNoL3MzOTAva2VybmVsL3Z0aW1lLmMKaW5kZXggY2E5MGVlMy4uMGZhNWRjNSAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC92dGltZS5jCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvdnRpbWUuYwpAQCAtMTM2LDcgKzEzNiw3IEBACiB9CiAjZW5kaWYKIAotc3RhdGljIHZvaWQgc3RhcnRfY3B1X3RpbWVyKHZvaWQpCit2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTE1MCw3ICsxNTAsNyBAQAogCQlzZXRfdnRpbWVyKHZ0X2xpc3QtPmlkbGUpOwogfQogCi1zdGF0aWMgdm9pZCBzdG9wX2NwdV90aW1lcih2b2lkKQordm9pZCB2dGltZV9zdG9wX2NwdV90aW1lcih2b2lkKQogewogCXN0cnVjdCB2dGltZXJfcXVldWUgKnZ0X2xpc3Q7CiAKQEAgLTMxOCw4ICszMTgsNyBAQAogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgdGltZXItPmNwdSk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIAotCWlmICh0aW1lci0+Y3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkKLQkJcHJpbnRrKCJpbnRlcm5hbF9hZGRfdnRpbWVyOiBCVUcsIHJ1bm5pbmcgb24gd3JvbmcgQ1BVIik7CisJQlVHX09OKHRpbWVyLT5jcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAogCS8qIGlmIGxpc3QgaXMgZW1wdHkgd2Ugb25seSBoYXZlIHRvIHNldCB0aGUgdGltZXIgKi8KIAlpZiAobGlzdF9lbXB0eSgmdnRfbGlzdC0+bGlzdCkpIHsKQEAgLTM1MywyNSArMzUyLDEyIEBACiAJcHV0X2NwdSgpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBwcmVwYXJlX3Z0aW1lcihzdHJ1Y3QgdnRpbWVyX2xpc3QgKnRpbWVyKQorc3RhdGljIGlubGluZSB2b2lkIHByZXBhcmVfdnRpbWVyKHN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXIpCiB7Ci0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICghdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKSB7Ci0JCXByaW50aygiYWRkX3ZpcnRfdGltZXI6IGludmFsaWQgdGltZXIgZXhwaXJlIHZhbHVlIVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICh2dGltZXJfcGVuZGluZyh0aW1lcikpIHsKLQkJcHJpbnRrKCJhZGRfdmlydF90aW1lcjogdGltZXIgcGVuZGluZ1xuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCisJQlVHX09OKCF0aW1lci0+ZnVuY3Rpb24pOworCUJVR19PTighdGltZXItPmV4cGlyZXMgfHwgdGltZXItPmV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKKwlCVUdfT04odnRpbWVyX3BlbmRpbmcodGltZXIpKTsKIAl0aW1lci0+Y3B1ID0gZ2V0X2NwdSgpOwotCXJldHVybiAwOwogfQogCiAvKgpAQCAtMzgyLDEwICszNjgsNyBAQAogCXN0cnVjdCB2dGltZXJfbGlzdCAqdGltZXI7CiAKIAl0aW1lciA9IChzdHJ1Y3QgdnRpbWVyX2xpc3QgKiluZXc7Ci0KLQlpZiAocHJlcGFyZV92dGltZXIodGltZXIpIDwgMCkKLQkJcmV0dXJuOwotCisJcHJlcGFyZV92dGltZXIodGltZXIpOwogCXRpbWVyLT5pbnRlcnZhbCA9IDA7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC0zOTksMTAgKzM4Miw3IEBACiAJc3RydWN0IHZ0aW1lcl9saXN0ICp0aW1lcjsKIAogCXRpbWVyID0gKHN0cnVjdCB2dGltZXJfbGlzdCAqKW5ldzsKLQotCWlmIChwcmVwYXJlX3Z0aW1lcih0aW1lcikgPCAwKQotCQlyZXR1cm47Ci0KKwlwcmVwYXJlX3Z0aW1lcih0aW1lcik7CiAJdGltZXItPmludGVydmFsID0gdGltZXItPmV4cGlyZXM7CiAJaW50ZXJuYWxfYWRkX3Z0aW1lcih0aW1lcik7CiB9CkBAIC00MjMsMTUgKzQwMyw4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgY3B1OwogCi0JaWYgKCF0aW1lci0+ZnVuY3Rpb24pIHsKLQkJcHJpbnRrKCJtb2RfdmlydF90aW1lcjogdW5pbml0aWFsaXplZCB0aW1lclxuIik7Ci0JCXJldHVybgktRUlOVkFMOwotCX0KLQotCWlmICghZXhwaXJlcyB8fCBleHBpcmVzID4gVlRJTUVSX01BWF9TTElDRSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBpbnZhbGlkIGV4cGlyZSByYW5nZVxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KKwlCVUdfT04oIXRpbWVyLT5mdW5jdGlvbik7CisJQlVHX09OKCFleHBpcmVzIHx8IGV4cGlyZXMgPiBWVElNRVJfTUFYX1NMSUNFKTsKIAogCS8qCiAJICogVGhpcyBpcyBhIGNvbW1vbiBvcHRpbWl6YXRpb24gdHJpZ2dlcmVkIGJ5IHRoZQpAQCAtNDQ0LDYgKzQxNyw5IEBACiAJY3B1ID0gZ2V0X2NwdSgpOwogCXZ0X2xpc3QgPSAmcGVyX2NwdSh2aXJ0X2NwdV90aW1lciwgY3B1KTsKIAorCS8qIGNoZWNrIGlmIHdlIHJ1biBvbiB0aGUgcmlnaHQgQ1BVICovCisJQlVHX09OKHRpbWVyLT5jcHUgIT0gY3B1KTsKKwogCS8qIGRpc2FibGUgaW50ZXJydXB0cyBiZWZvcmUgdGVzdCBpZiB0aW1lciBpcyBwZW5kaW5nICovCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnZ0X2xpc3QtPmxvY2ssIGZsYWdzKTsKIApAQCAtNDU4LDE0ICs0MzQsNiBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQkvKiBjaGVjayBpZiB3ZSBydW4gb24gdGhlIHJpZ2h0IENQVSAqLwotCWlmICh0aW1lci0+Y3B1ICE9IGNwdSkgewotCQlwcmludGsoIm1vZF92aXJ0X3RpbWVyOiBydW5uaW5nIG9uIHdyb25nIENQVSwgY2hlY2sgeW91ciBjb2RlXG4iKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdnRfbGlzdC0+bG9jaywgZmxhZ3MpOwotCQlwdXRfY3B1KCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQogCWxpc3RfZGVsX2luaXQoJnRpbWVyLT5lbnRyeSk7CiAJdGltZXItPmV4cGlyZXMgPSBleHBpcmVzOwogCkBAIC01MzYsMjQgKzUwNCw2IEBACiAKIH0KIAotc3RhdGljIGludCB2dGltZXJfaWRsZV9ub3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmhjcHUpCi17Ci0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIFMzOTBfQ1BVX0lETEU6Ci0JCXN0b3BfY3B1X3RpbWVyKCk7Ci0JCWJyZWFrOwotCWNhc2UgUzM5MF9DUFVfTk9UX0lETEU6Ci0JCXN0YXJ0X2NwdV90aW1lcigpOwotCQlicmVhazsKLQl9Ci0JcmV0dXJuIE5PVElGWV9PSzsKLX0KLQotc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayB2dGltZXJfaWRsZV9uYiA9IHsKLQkubm90aWZpZXJfY2FsbCA9IHZ0aW1lcl9pZGxlX25vdGlmeSwKLX07Ci0KIHZvaWQgX19pbml0IHZ0aW1lX2luaXQodm9pZCkKIHsKIAkvKiByZXF1ZXN0IHRoZSBjcHUgdGltZXIgZXh0ZXJuYWwgaW50ZXJydXB0ICovCkBAIC01NjEsOSArNTExLDYgQEAKIAkJCQkJICAgICAgJmV4dF9pbnRfaW5mb190aW1lcikgIT0gMCkKIAkJcGFuaWMoIkNvdWxkbid0IHJlcXVlc3QgZXh0ZXJuYWwgaW50ZXJydXB0IDB4MTAwNSIpOwogCi0JaWYgKHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoJnZ0aW1lcl9pZGxlX25iKSkKLQkJcGFuaWMoIkNvdWxkbid0IHJlZ2lzdGVyIGlkbGUgbm90aWZpZXIiKTsKLQogCS8qIEVuYWJsZSBjcHUgdGltZXIgaW50ZXJydXB0cyBvbiB0aGUgYm9vdCBjcHUuICovCiAJaW5pdF9jcHVfdnRpbWVyKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva3ZtL2RpYWcuYyBiL2FyY2gvczM5MC9rdm0vZGlhZy5jCmluZGV4IGY2MzlhMTUuLmEwNzc1ZTEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rdm0vZGlhZy5jCisrKyBiL2FyY2gvczM5MC9rdm0vZGlhZy5jCkBAIC0yMCw3ICsyMCw3IEBACiAJVkNQVV9FVkVOVCh2Y3B1LCA1LCAiJXMiLCAiZGlhZyB0aW1lIHNsaWNlIGVuZCIpOwogCXZjcHUtPnN0YXQuZGlhZ25vc2VfNDQrKzsKIAl2Y3B1X3B1dCh2Y3B1KTsKLQlzY2hlZHVsZSgpOworCXlpZWxkKCk7CiAJdmNwdV9sb2FkKHZjcHUpOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYyBiL2FyY2gvczM5MC9rdm0vaW50ZXJydXB0LmMKaW5kZXggZmNkMWVkOC4uODRhN2ZlZCAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2t2bS9pbnRlcnJ1cHQuYworKysgYi9hcmNoL3MzOTAva3ZtL2ludGVycnVwdC5jCkBAIC0zMzksNiArMzM5LDExIEBACiAJaWYgKGt2bV9jcHVfaGFzX2ludGVycnVwdCh2Y3B1KSkKIAkJcmV0dXJuIDA7CiAKKwlfX3NldF9jcHVfaWRsZSh2Y3B1KTsKKwlzcGluX2xvY2tfYmgoJnZjcHUtPmFyY2gubG9jYWxfaW50LmxvY2spOworCXZjcHUtPmFyY2gubG9jYWxfaW50LnRpbWVyX2R1ZSA9IDA7CisJc3Bpbl91bmxvY2tfYmgoJnZjcHUtPmFyY2gubG9jYWxfaW50LmxvY2spOworCiAJaWYgKHBzd19pbnRlcnJ1cHRzX2Rpc2FibGVkKHZjcHUpKSB7CiAJCVZDUFVfRVZFTlQodmNwdSwgMywgIiVzIiwgImRpc2FibGVkIHdhaXQiKTsKIAkJX191bnNldF9jcHVfaWRsZSh2Y3B1KTsKQEAgLTM2Niw4ICszNzEsNiBAQAogbm9fdGltZXI6CiAJc3Bpbl9sb2NrX2JoKCZ2Y3B1LT5hcmNoLmxvY2FsX2ludC5mbG9hdF9pbnQtPmxvY2spOwogCXNwaW5fbG9ja19iaCgmdmNwdS0+YXJjaC5sb2NhbF9pbnQubG9jayk7Ci0JX19zZXRfY3B1X2lkbGUodmNwdSk7Ci0JdmNwdS0+YXJjaC5sb2NhbF9pbnQudGltZXJfZHVlID0gMDsKIAlhZGRfd2FpdF9xdWV1ZSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQud3EsICZ3YWl0KTsKIAl3aGlsZSAobGlzdF9lbXB0eSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQubGlzdCkgJiYKIAkJbGlzdF9lbXB0eSgmdmNwdS0+YXJjaC5sb2NhbF9pbnQuZmxvYXRfaW50LT5saXN0KSAmJgpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jIGIvYXJjaC9zMzkwL2t2bS9rdm0tczM5MC5jCmluZGV4IDBhYzM2YTYuLjY1NThiMDkgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYworKysgYi9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMKQEAgLTQyMyw2ICs0MjMsOCBAQAogCXJldHVybiAtRUlOVkFMOyAvKiBub3QgaW1wbGVtZW50ZWQgeWV0ICovCiB9CiAKK2V4dGVybiB2b2lkIHMzOTBfaGFuZGxlX21jY2sodm9pZCk7CisKIHN0YXRpYyB2b2lkIF9fdmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewogCW1lbWNweSgmdmNwdS0+YXJjaC5zaWVfYmxvY2stPmdnMTQsICZ2Y3B1LT5hcmNoLmd1ZXN0X2dwcnNbMTRdLCAxNik7CkBAIC00MzAsMTMgKzQzMiwyMSBAQAogCWlmIChuZWVkX3Jlc2NoZWQoKSkKIAkJc2NoZWR1bGUoKTsKIAorCWlmICh0ZXN0X3RocmVhZF9mbGFnKFRJRl9NQ0NLX1BFTkRJTkcpKQorCQlzMzkwX2hhbmRsZV9tY2NrKCk7CisKKwlrdm1fczM5MF9kZWxpdmVyX3BlbmRpbmdfaW50ZXJydXB0cyh2Y3B1KTsKKwogCXZjcHUtPmFyY2guc2llX2Jsb2NrLT5pY3B0Y29kZSA9IDA7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAlrdm1fZ3Vlc3RfZW50ZXIoKTsKIAlsb2NhbF9pcnFfZW5hYmxlKCk7CiAJVkNQVV9FVkVOVCh2Y3B1LCA2LCAiZW50ZXJpbmcgc2llIGZsYWdzICV4IiwKIAkJICAgYXRvbWljX3JlYWQoJnZjcHUtPmFyY2guc2llX2Jsb2NrLT5jcHVmbGFncykpOwotCXNpZTY0YSh2Y3B1LT5hcmNoLnNpZV9ibG9jaywgdmNwdS0+YXJjaC5ndWVzdF9ncHJzKTsKKwlpZiAoc2llNjRhKHZjcHUtPmFyY2guc2llX2Jsb2NrLCB2Y3B1LT5hcmNoLmd1ZXN0X2dwcnMpKSB7CisJCVZDUFVfRVZFTlQodmNwdSwgMywgIiVzIiwgImZhdWx0IGluIHNpZSBpbnN0cnVjdGlvbiIpOworCQlrdm1fczM5MF9pbmplY3RfcHJvZ3JhbV9pbnQodmNwdSwgUEdNX0FERFJFU1NJTkcpOworCX0KIAlWQ1BVX0VWRU5UKHZjcHUsIDYsICJleGl0IHNpZSBpY3B0Y29kZSAlZCIsCiAJCSAgIHZjcHUtPmFyY2guc2llX2Jsb2NrLT5pY3B0Y29kZSk7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKQEAgLTQ3NSw3ICs0ODUsNiBAQAogCW1pZ2h0X3NsZWVwKCk7CiAKIAlkbyB7Ci0JCWt2bV9zMzkwX2RlbGl2ZXJfcGVuZGluZ19pbnRlcnJ1cHRzKHZjcHUpOwogCQlfX3ZjcHVfcnVuKHZjcHUpOwogCQlyYyA9IGt2bV9oYW5kbGVfc2llX2ludGVyY2VwdCh2Y3B1KTsKIAl9IHdoaWxlICghc2lnbmFsX3BlbmRpbmcoY3VycmVudCkgJiYgIXJjKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9pbml0LmMgYi9hcmNoL3MzOTAvbW0vaW5pdC5jCmluZGV4IDI5ZjNhNjMuLjM4OGNjNzQgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9pbml0LmMKKysrIGIvYXJjaC9zMzkwL21tL2luaXQuYwpAQCAtNDQsMzcgKzQ0LDM0IEBACiAKIHZvaWQgc2hvd19tZW0odm9pZCkKIHsKLQlpbnQgaSwgdG90YWwgPSAwLCByZXNlcnZlZCA9IDA7Ci0JaW50IHNoYXJlZCA9IDAsIGNhY2hlZCA9IDA7CisJdW5zaWduZWQgbG9uZyBpLCB0b3RhbCA9IDAsIHJlc2VydmVkID0gMDsKKwl1bnNpZ25lZCBsb25nIHNoYXJlZCA9IDAsIGNhY2hlZCA9IDA7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwlwZ19kYXRhX3QgKnBnZGF0OwogCiAJcHJpbnRrKCJNZW0taW5mbzpcbiIpOwogCXNob3dfZnJlZV9hcmVhcygpOwotCWkgPSBtYXhfbWFwbnI7Ci0Jd2hpbGUgKGktLSA+IDApIHsKLQkJaWYgKCFwZm5fdmFsaWQoaSkpCi0JCQljb250aW51ZTsKLQkJcGFnZSA9IHBmbl90b19wYWdlKGkpOwotCQl0b3RhbCsrOwotCQlpZiAoUGFnZVJlc2VydmVkKHBhZ2UpKQotCQkJcmVzZXJ2ZWQrKzsKLQkJZWxzZSBpZiAoUGFnZVN3YXBDYWNoZShwYWdlKSkKLQkJCWNhY2hlZCsrOwotCQllbHNlIGlmIChwYWdlX2NvdW50KHBhZ2UpKQotCQkJc2hhcmVkICs9IHBhZ2VfY291bnQocGFnZSkgLSAxOworCWZvcl9lYWNoX29ubGluZV9wZ2RhdChwZ2RhdCkgeworCQlwZ2RhdF9yZXNpemVfbG9jayhwZ2RhdCwgJmZsYWdzKTsKKwkJZm9yIChpID0gMDsgaSA8IHBnZGF0LT5ub2RlX3NwYW5uZWRfcGFnZXM7IGkrKykgeworCQkJaWYgKCFwZm5fdmFsaWQocGdkYXQtPm5vZGVfc3RhcnRfcGZuICsgaSkpCisJCQkJY29udGludWU7CisJCQlwYWdlID0gcGZuX3RvX3BhZ2UocGdkYXQtPm5vZGVfc3RhcnRfcGZuICsgaSk7CisJCQl0b3RhbCsrOworCQkJaWYgKFBhZ2VSZXNlcnZlZChwYWdlKSkKKwkJCQlyZXNlcnZlZCsrOworCQkJZWxzZSBpZiAoUGFnZVN3YXBDYWNoZShwYWdlKSkKKwkJCQljYWNoZWQrKzsKKwkJCWVsc2UgaWYgKHBhZ2VfY291bnQocGFnZSkpCisJCQkJc2hhcmVkICs9IHBhZ2VfY291bnQocGFnZSkgLSAxOworCQl9CisJCXBnZGF0X3Jlc2l6ZV91bmxvY2socGdkYXQsICZmbGFncyk7CiAJfQotCXByaW50aygiJWQgcGFnZXMgb2YgUkFNXG4iLCB0b3RhbCk7Ci0JcHJpbnRrKCIlZCByZXNlcnZlZCBwYWdlc1xuIiwgcmVzZXJ2ZWQpOwotCXByaW50aygiJWQgcGFnZXMgc2hhcmVkXG4iLCBzaGFyZWQpOwotCXByaW50aygiJWQgcGFnZXMgc3dhcCBjYWNoZWRcbiIsIGNhY2hlZCk7Ci0KLQlwcmludGsoIiVsdSBwYWdlcyBkaXJ0eVxuIiwgZ2xvYmFsX3BhZ2Vfc3RhdGUoTlJfRklMRV9ESVJUWSkpOwotCXByaW50aygiJWx1IHBhZ2VzIHdyaXRlYmFja1xuIiwgZ2xvYmFsX3BhZ2Vfc3RhdGUoTlJfV1JJVEVCQUNLKSk7Ci0JcHJpbnRrKCIlbHUgcGFnZXMgbWFwcGVkXG4iLCBnbG9iYWxfcGFnZV9zdGF0ZShOUl9GSUxFX01BUFBFRCkpOwotCXByaW50aygiJWx1IHBhZ2VzIHNsYWJcbiIsCi0JICAgICAgIGdsb2JhbF9wYWdlX3N0YXRlKE5SX1NMQUJfUkVDTEFJTUFCTEUpICsKLQkgICAgICAgZ2xvYmFsX3BhZ2Vfc3RhdGUoTlJfU0xBQl9VTlJFQ0xBSU1BQkxFKSk7Ci0JcHJpbnRrKCIlbHUgcGFnZXMgcGFnZXRhYmxlc1xuIiwgZ2xvYmFsX3BhZ2Vfc3RhdGUoTlJfUEFHRVRBQkxFKSk7CisJcHJpbnRrKCIlbGQgcGFnZXMgb2YgUkFNXG4iLCB0b3RhbCk7CisJcHJpbnRrKCIlbGQgcmVzZXJ2ZWQgcGFnZXNcbiIsIHJlc2VydmVkKTsKKwlwcmludGsoIiVsZCBwYWdlcyBzaGFyZWRcbiIsIHNoYXJlZCk7CisJcHJpbnRrKCIlbGQgcGFnZXMgc3dhcCBjYWNoZWRcbiIsIGNhY2hlZCk7CiB9CiAKIC8qCkBAIC0yMDUsMyArMjAyLDIyIEBACiAgICAgICAgIH0KIH0KICNlbmRpZgorCisjaWZkZWYgQ09ORklHX01FTU9SWV9IT1RQTFVHCitpbnQgYXJjaF9hZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpCit7CisJc3RydWN0IHBnbGlzdF9kYXRhICpwZ2RhdDsKKwlzdHJ1Y3Qgem9uZSAqem9uZTsKKwlpbnQgcmM7CisKKwlwZ2RhdCA9IE5PREVfREFUQShuaWQpOworCXpvbmUgPSBwZ2RhdC0+bm9kZV96b25lcyArIFpPTkVfTk9STUFMOworCXJjID0gdm1lbV9hZGRfbWFwcGluZyhzdGFydCwgc2l6ZSk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisJcmMgPSBfX2FkZF9wYWdlcyh6b25lLCBQRk5fRE9XTihzdGFydCksIFBGTl9ET1dOKHNpemUpKTsKKwlpZiAocmMpCisJCXZtZW1fcmVtb3ZlX21hcHBpbmcoc3RhcnQsIHNpemUpOworCXJldHVybiByYzsKK30KKyNlbmRpZiAvKiBDT05GSUdfTUVNT1JZX0hPVFBMVUcgKi8KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS9wZ3RhYmxlLmMgYi9hcmNoL3MzOTAvbW0vcGd0YWJsZS5jCmluZGV4IDVjMWFlYTkuLjNkOThiYTggMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9wZ3RhYmxlLmMKKysrIGIvYXJjaC9zMzkwL21tL3BndGFibGUuYwpAQCAtMjU0LDM2ICsyNTQsNDYgQEAKIGludCBzMzkwX2VuYWJsZV9zaWUodm9pZCkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7Ci0Jc3RydWN0IG1tX3N0cnVjdCAqbW07Ci0JaW50IHJjOworCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCAqb2xkX21tOwogCi0JdGFza19sb2NrKHRzayk7Ci0KLQlyYyA9IDA7CisJLyogRG8gd2UgaGF2ZSBwZ3N0ZXM/IGlmIHllcywgd2UgYXJlIGRvbmUgKi8KIAlpZiAodHNrLT5tbS0+Y29udGV4dC5wZ3N0ZXMpCi0JCWdvdG8gdW5sb2NrOworCQlyZXR1cm4gMDsKIAotCXJjID0gLUVJTlZBTDsKKwkvKiBsZXRzIGNoZWNrIGlmIHdlIGFyZSBhbGxvd2VkIHRvIHJlcGxhY2UgdGhlIG1tICovCisJdGFza19sb2NrKHRzayk7CiAJaWYgKCF0c2stPm1tIHx8IGF0b21pY19yZWFkKCZ0c2stPm1tLT5tbV91c2VycykgPiAxIHx8Ci0JICAgIHRzay0+bW0gIT0gdHNrLT5hY3RpdmVfbW0gfHwgdHNrLT5tbS0+aW9jdHhfbGlzdCkKLQkJZ290byB1bmxvY2s7CisJICAgIHRzay0+bW0gIT0gdHNrLT5hY3RpdmVfbW0gfHwgdHNrLT5tbS0+aW9jdHhfbGlzdCkgeworCQl0YXNrX3VubG9jayh0c2spOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJdGFza191bmxvY2sodHNrKTsKIAotCXRzay0+bW0tPmNvbnRleHQucGdzdGVzID0gMTsJLyogZGlydHkgbGl0dGxlIHRyaWNrcyAuLiAqLworCS8qIHdlIGNvcHkgdGhlIG1tIHdpdGggcGdzdGVzIGVuYWJsZWQgKi8KKwl0c2stPm1tLT5jb250ZXh0LnBnc3RlcyA9IDE7CiAJbW0gPSBkdXBfbW0odHNrKTsKIAl0c2stPm1tLT5jb250ZXh0LnBnc3RlcyA9IDA7Ci0KLQlyYyA9IC1FTk9NRU07CiAJaWYgKCFtbSkKLQkJZ290byB1bmxvY2s7Ci0JbW1wdXQodHNrLT5tbSk7CisJCXJldHVybiAtRU5PTUVNOworCisJLyogTm93IGxldHMgY2hlY2sgYWdhaW4gaWYgc29tZWJvZHkgYXR0YWNoZWQgcHRyYWNlIGV0YyAqLworCXRhc2tfbG9jayh0c2spOworCWlmICghdHNrLT5tbSB8fCBhdG9taWNfcmVhZCgmdHNrLT5tbS0+bW1fdXNlcnMpID4gMSB8fAorCSAgICB0c2stPm1tICE9IHRzay0+YWN0aXZlX21tIHx8IHRzay0+bW0tPmlvY3R4X2xpc3QpIHsKKwkJbW1wdXQobW0pOworCQl0YXNrX3VubG9jayh0c2spOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBvaywgd2UgYXJlIGFsb25lLiBObyBwdHJhY2UsIG5vIHRocmVhZHMsIGV0Yy4gKi8KKwlvbGRfbW0gPSB0c2stPm1tOwogCXRzay0+bW0gPSB0c2stPmFjdGl2ZV9tbSA9IG1tOwogCXByZWVtcHRfZGlzYWJsZSgpOwogCXVwZGF0ZV9tbShtbSwgdHNrKTsKIAljcHVfc2V0KHNtcF9wcm9jZXNzb3JfaWQoKSwgbW0tPmNwdV92bV9tYXNrKTsKIAlwcmVlbXB0X2VuYWJsZSgpOwotCXJjID0gMDsKLXVubG9jazoKIAl0YXNrX3VubG9jayh0c2spOwotCXJldHVybiByYzsKKwltbXB1dChvbGRfbW0pOworCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoczM5MF9lbmFibGVfc2llKTsKZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9tbS92bWVtLmMgYi9hcmNoL3MzOTAvbW0vdm1lbS5jCmluZGV4IGVhMjgwNDguLmU0ODY4YmYgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS92bWVtLmMKKysrIGIvYXJjaC9zMzkwL21tL3ZtZW0uYwpAQCAtMjcsMTIgKzI3LDE5IEBACiAKIHN0YXRpYyBMSVNUX0hFQUQobWVtX3NlZ3MpOwogCi1zdGF0aWMgcHVkX3QgKnZtZW1fcHVkX2FsbG9jKHZvaWQpCitzdGF0aWMgdm9pZCBfX3JlZiAqdm1lbV9hbGxvY19wYWdlcyh1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisJaWYgKHNsYWJfaXNfYXZhaWxhYmxlKCkpCisJCXJldHVybiAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCwgb3JkZXIpOworCXJldHVybiBhbGxvY19ib290bWVtX3BhZ2VzKCgxIDw8IG9yZGVyKSAqIFBBR0VfU0laRSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgcHVkX3QgKnZtZW1fcHVkX2FsbG9jKHZvaWQpCiB7CiAJcHVkX3QgKnB1ZCA9IE5VTEw7CiAKICNpZmRlZiBDT05GSUdfNjRCSVQKLQlwdWQgPSB2bWVtbWFwX2FsbG9jX2Jsb2NrKFBBR0VfU0laRSAqIDQsIDApOworCXB1ZCA9IHZtZW1fYWxsb2NfcGFnZXMoMik7CiAJaWYgKCFwdWQpCiAJCXJldHVybiBOVUxMOwogCWNsZWFyX3RhYmxlKCh1bnNpZ25lZCBsb25nICopIHB1ZCwgX1JFR0lPTjNfRU5UUllfRU1QVFksIFBBR0VfU0laRSAqIDQpOwpAQCAtNDAsMTIgKzQ3LDEyIEBACiAJcmV0dXJuIHB1ZDsKIH0KIAotc3RhdGljIHBtZF90ICp2bWVtX3BtZF9hbGxvYyh2b2lkKQorc3RhdGljIGlubGluZSBwbWRfdCAqdm1lbV9wbWRfYWxsb2Modm9pZCkKIHsKIAlwbWRfdCAqcG1kID0gTlVMTDsKIAogI2lmZGVmIENPTkZJR182NEJJVAotCXBtZCA9IHZtZW1tYXBfYWxsb2NfYmxvY2soUEFHRV9TSVpFICogNCwgMCk7CisJcG1kID0gdm1lbV9hbGxvY19wYWdlcygyKTsKIAlpZiAoIXBtZCkKIAkJcmV0dXJuIE5VTEw7CiAJY2xlYXJfdGFibGUoKHVuc2lnbmVkIGxvbmcgKikgcG1kLCBfU0VHTUVOVF9FTlRSWV9FTVBUWSwgUEFHRV9TSVpFICogNCk7CkBAIC0yMDcsMTMgKzIxNCwxNCBAQAogCQlpZiAocHRlX25vbmUoKnB0X2RpcikpIHsKIAkJCXVuc2lnbmVkIGxvbmcgbmV3X3BhZ2U7CiAKLQkJCW5ld19wYWdlID1fX3BhKHZtZW1tYXBfYWxsb2NfYmxvY2soUEFHRV9TSVpFLCAwKSk7CisJCQluZXdfcGFnZSA9X19wYSh2bWVtX2FsbG9jX3BhZ2VzKDApKTsKIAkJCWlmICghbmV3X3BhZ2UpCiAJCQkJZ290byBvdXQ7CiAJCQlwdGUgPSBwZm5fcHRlKG5ld19wYWdlID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMKTsKIAkJCSpwdF9kaXIgPSBwdGU7CiAJCX0KIAl9CisJbWVtc2V0KHN0YXJ0LCAwLCBuciAqIHNpemVvZihzdHJ1Y3QgcGFnZSkpOwogCXJldCA9IDA7CiBvdXQ6CiAJZmx1c2hfdGxiX2tlcm5lbF9yYW5nZShzdGFydF9hZGRyLCBlbmRfYWRkcik7CkBAIC0yMjgsNyArMjM2LDcgQEAKIHsKIAlzdHJ1Y3QgbWVtb3J5X3NlZ21lbnQgKnRtcDsKIAotCWlmIChzZWctPnN0YXJ0ICsgc2VnLT5zaXplID49IFZNRU1fTUFYX1BIWVMgfHwKKwlpZiAoc2VnLT5zdGFydCArIHNlZy0+c2l6ZSA+IFZNRU1fTUFYX1BIWVMgfHwKIAkgICAgc2VnLT5zdGFydCArIHNlZy0+c2l6ZSA8IHNlZy0+c3RhcnQpCiAJCXJldHVybiAtRVJBTkdFOwogCmRpZmYgLS1naXQgYS9hcmNoL3NoL0tjb25maWcgYi9hcmNoL3NoL0tjb25maWcKaW5kZXggOGE2ODE2MC4uOWE4NTRjOCAxMDA2NDQKLS0tIGEvYXJjaC9zaC9LY29uZmlnCisrKyBiL2FyY2gvc2gvS2NvbmZpZwpAQCAtMjgxLDcgKzI4MSw2IEBACiAJc2VsZWN0IENQVV9TSDRBCiAJc2VsZWN0IENQVV9TSFgyCiAJc2VsZWN0IEFSQ0hfU1BBUlNFTUVNX0VOQUJMRQotCXNlbGVjdCBTWVNfU1VQUE9SVFNfTlVNQQogCWhlbHAKIAkgIFNlbGVjdCBTSDc3MjMgaWYgeW91IGhhdmUgYW4gU0gtTW9iaWxlUjIgQ1BVLgogCmRpZmYgLS1naXQgYS9hcmNoL3NoL0tjb25maWcuZGVidWcgYi9hcmNoL3NoL0tjb25maWcuZGVidWcKaW5kZXggMGQyZWYxZS4uMGY0NTQ5OCAxMDA2NDQKLS0tIGEvYXJjaC9zaC9LY29uZmlnLmRlYnVnCisrKyBiL2FyY2gvc2gvS2NvbmZpZy5kZWJ1ZwpAQCAtODEsNyArODEsNyBAQAogCiBjb25maWcgNEtTVEFDS1MKIAlib29sICJVc2UgNEtiIGZvciBrZXJuZWwgc3RhY2tzIGluc3RlYWQgb2YgOEtiIgotCWRlcGVuZHMgb24gREVCVUdfS0VSTkVMCisJZGVwZW5kcyBvbiBERUJVR19LRVJORUwgJiYgKE1NVSB8fCBCUk9LRU4pCiAJaGVscAogCSAgSWYgeW91IHNheSBZIGhlcmUgdGhlIGtlcm5lbCB3aWxsIHVzZSBhIDRLYiBzdGFja3NpemUgZm9yIHRoZQogCSAga2VybmVsIHN0YWNrIGF0dGFjaGVkIHRvIGVhY2ggcHJvY2Vzcy90aHJlYWQuIFRoaXMgZmFjaWxpdGF0ZXMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvTWFrZWZpbGUgYi9hcmNoL3NoL01ha2VmaWxlCmluZGV4IDgwNTBiMDMuLmZiN2IxYjEgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvTWFrZWZpbGUKKysrIGIvYXJjaC9zaC9NYWtlZmlsZQpAQCAtNDEsNiArNDEsOCBAQAogY2ZsYWdzLSQoQ09ORklHX0NQVV9CSUdfRU5ESUFOKQkJKz0gLW1iCiBjZmxhZ3MtJChDT05GSUdfQ1BVX0xJVFRMRV9FTkRJQU4pCSs9IC1tbAogCitjZmxhZ3MteQkrPSAkKGNhbGwgY2Mtb3B0aW9uLC1tbm8tZmRwaWMpCisKICMKICMgLVdhLC1pc2E9IHR1bmluZyBpbXBsaWVzIC1XYSwtZHNwIGZvciB0aGUgdmVyc2lvbnMgb2YgYmludXRpbHMgdGhhdAogIyBzdXBwb3J0IGl0LCB3aGlsZSAtV2EsLWRzcCBieSBpdHNlbGYgbGltaXRzIHRoZSByYW5nZSBvZiB1c2FibGUgb3Bjb2RlcwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYyBiL2FyY2gvc2gvYm9hcmRzL2xhbmRpc2svZ2lvLmMKaW5kZXggMTcwMjUwOC4uMGMxNWIwYSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9ib2FyZHMvbGFuZGlzay9naW8uYworKysgYi9hcmNoL3NoL2JvYXJkcy9sYW5kaXNrL2dpby5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9rZGV2X3QuaD4KICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTMyLDE3ICszMywyMCBAQAogc3RhdGljIGludCBnaW9fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgbWlub3I7CisJaW50IHJldCA9IC1FTk9FTlQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gTUlOT1IoaW5vZGUtPmlfcmRldik7CiAJaWYgKG1pbm9yIDwgREVWQ09VTlQpIHsKIAkJaWYgKG9wZW5DbnQgPiAwKSB7Ci0JCQlyZXR1cm4gLUVBTFJFQURZOworCQkJcmV0ID0gLUVBTFJFQURZOwogCQl9IGVsc2UgewogCQkJb3BlbkNudCsrOwotCQkJcmV0dXJuIDA7CisJCQlyZXQgPSAwOwogCQl9CiAJfQotCXJldHVybiAtRU5PRU5UOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGdpb19jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKZGlmZiAtLWdpdCBhL2FyY2gvc2gvYm9hcmRzL3JlbmVzYXMvcnRzNzc1MXIyZC9zZXR1cC5jIGIvYXJjaC9zaC9ib2FyZHMvcmVuZXNhcy9ydHM3NzUxcjJkL3NldHVwLmMKaW5kZXggNDUyZDBkNi4uMjMwOGU4NyAxMDA2NDQKLS0tIGEvYXJjaC9zaC9ib2FyZHMvcmVuZXNhcy9ydHM3NzUxcjJkL3NldHVwLmMKKysrIGIvYXJjaC9zaC9ib2FyZHMvcmVuZXNhcy9ydHM3NzUxcjJkL3NldHVwLmMKQEAgLTExLDcgKzExLDYgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvYXRhX3BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8bGludXgvc2VyaWFsXzgyNTAuaD4KICNpbmNsdWRlIDxsaW51eC9zbTUwMS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtNTAxLXJlZ3MuaD4KICNpbmNsdWRlIDxsaW51eC9wbS5oPgpAQCAtMTA5LDI3ICsxMDgsNiBAQAogCS5yZXNvdXJjZQk9IGhlYXJ0YmVhdF9yZXNvdXJjZXMsCiB9OwogCi1zdGF0aWMgc3RydWN0IHBsYXRfc2VyaWFsODI1MF9wb3J0IHVhcnRfcGxhdGZvcm1fZGF0YVtdID0gewotCXsKLQkJLm1lbWJhc2UJPSAodm9pZCBfX2lvbWVtICopMHhiM2UzMDAwMCwKLQkJLm1hcGJhc2UJPSAweGIzZTMwMDAwLAotCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkuaXJxCQk9IElSUV9WT1lBR0VSLAotCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYgfCBVUEZfU0hBUkVfSVJRLAotCQkucmVnc2hpZnQJPSAyLAotCQkudWFydGNsawk9ICg5NjAwICogMTYpLAotCX0sCi0JeyAwIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSB1YXJ0X2RldmljZSA9IHsKLQkubmFtZQkJPSAic2VyaWFsODI1MCIsCi0JLmlkCQk9IFBMQVQ4MjUwX0RFVl9QTEFURk9STSwKLQkuZGV2CQk9IHsKLQkJLnBsYXRmb3JtX2RhdGEJPSB1YXJ0X3BsYXRmb3JtX2RhdGEsCi0JfSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc201MDFfcmVzb3VyY2VzW10gPSB7CiAJWzBdCT0gewogCQkuc3RhcnQJPSAweDEwMDAwMDAwLApAQCAtMTg1LDExICsxNjMsNyBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBzbTUwMV9pbml0ZGF0YSBzbTUwMV9pbml0ZGF0YSA9IHsKLQkuZ3Bpb19oaWdoCT0gewotCQkuc2V0CT0gMHgwMDAwMWZlMCwKLQkJLm1hc2sJPSAweDAsCi0JfSwKLQkuZGV2aWNlcwk9IFNNNTAxX1VTRV9VU0JfSE9TVCwKKwkuZGV2aWNlcwk9IFNNNTAxX1VTRV9VU0JfSE9TVCB8IFNNNTAxX1VTRV9VQVJUMCwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc201MDFfcGxhdGRhdGEgc201MDFfcGxhdGZvcm1fZGF0YSA9IHsKQEAgLTIwOCw3ICsxODIsNiBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnJ0czc3NTFyMmRfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Ci0JJnVhcnRfZGV2aWNlLAogCSZzbTUwMV9kZXZpY2UsCiAJJmhlYXJ0YmVhdF9kZXZpY2UsCiAJJnNwaV9zaF9zY2lfZGV2aWNlLApAQCAtMjcyLDE2ICsyNDUsNiBAQAogCiAJc201MDFfcmVnID0gKHZvaWQgX19pb21lbSAqKTB4YjNlMDAwMDAgKyBTTTUwMV9EUkFNX0NPTlRST0w7CiAJd3JpdGVsKHJlYWRsKHNtNTAxX3JlZykgfCAweDAwZjEwN2MwLCBzbTUwMV9yZWcpOwotCi0JLyoKLQkgKiBQb3dlciBNb2RlIEdhdGUgLSBFbmFibGUgVUFSVDAKLQkgKi8KLQotCXNtNTAxX3JlZyA9ICh2b2lkIF9faW9tZW0gKikweGIzZTAwMDAwICsgU001MDFfUE9XRVJfTU9ERV8wX0dBVEU7Ci0Jd3JpdGVsKHJlYWRsKHNtNTAxX3JlZykgfCAoMSA8PCBTTTUwMV9HQVRFX1VBUlQwKSwgc201MDFfcmVnKTsKLQotCXNtNTAxX3JlZyA9ICh2b2lkIF9faW9tZW0gKikweGIzZTAwMDAwICsgU001MDFfUE9XRVJfTU9ERV8xX0dBVEU7Ci0Jd3JpdGVsKHJlYWRsKHNtNTAxX3JlZykgfCAoMSA8PCBTTTUwMV9HQVRFX1VBUlQwKSwgc201MDFfcmVnKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYW5kaXNrX2RlZmNvbmZpZwppbmRleCBmNTJkYjEyLi4zOGY5MzRhIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGFuZGlza19kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xhbmRpc2tfZGVmY29uZmlnCkBAIC0yMjYsNyArMjI2LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9sYm94cmUyX2RlZmNvbmZpZwppbmRleCA5ZmE2NmQ5Li5iNjhiNmNkIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3MvbGJveHJlMl9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL2xib3hyZTJfZGVmY29uZmlnCkBAIC0yMzEsNyArMjMxLDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTQwMDAwMDAwCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9taWdvcl9kZWZjb25maWcgYi9hcmNoL3NoL2NvbmZpZ3MvbWlnb3JfZGVmY29uZmlnCmluZGV4IGVlNTkwMDguLjI4NzQwOGIgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvY29uZmlncy9taWdvcl9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL21pZ29yX2RlZmNvbmZpZwpAQCAtMSw3ICsxLDcgQEAKICMKICMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFrZSBjb25maWc6IGRvbid0IGVkaXQKLSMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNAotIyBXZWQgRmViICA2IDIxOjUyOjIwIDIwMDgKKyMgTGludXgga2VybmVsIHZlcnNpb246IDIuNi4yNi1yYzMKKyMgVGh1IE1heSAyMiAxNDozMDowNyAyMDA4CiAjCiBDT05GSUdfU1VQRVJIPXkKIENPTkZJR19TVVBFUkgzMj15CkBAIC0yMCw2ICsyMCw3IEBACiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX05PX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQogQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKIAogIwpAQCAtMzYsMTggKzM3LDE2IEBACiAjIENPTkZJR19QT1NJWF9NUVVFVUUgaXMgbm90IHNldAogIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiAjIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19QSURfTlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAogQ09ORklHX0lLQ09ORklHPXkKIENPTkZJR19JS0NPTkZJR19QUk9DPXkKIENPTkZJR19MT0dfQlVGX1NISUZUPTE0CiAjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKLUNPTkZJR19GQUlSX0dST1VQX1NDSEVEPXkKLUNPTkZJR19GQUlSX1VTRVJfU0NIRUQ9eQotIyBDT05GSUdfRkFJUl9DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfR1JPVVBfU0NIRUQgaXMgbm90IHNldAogQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQogIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQogQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKICMgQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFIGlzIG5vdCBzZXQKQEAgLTYxLDExICs2MCwxMyBAQAogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CitDT05GSUdfQ09NUEFUX0JSSz15CiBDT05GSUdfQkFTRV9GVUxMPXkKIENPTkZJR19GVVRFWD15CiBDT05GSUdfQU5PTl9JTk9ERVM9eQogQ09ORklHX0VQT0xMPXkKIENPTkZJR19TSUdOQUxGRD15CitDT05GSUdfVElNRVJGRD15CiBDT05GSUdfRVZFTlRGRD15CiBDT05GSUdfU0hNRU09eQogQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKQEAgLTc3LDExICs3OCwxNSBAQAogQ09ORklHX09QUk9GSUxFPXkKIENPTkZJR19IQVZFX09QUk9GSUxFPXkKICMgQ09ORklHX0hBVkVfS1BST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0tSRVRQUk9CRVMgaXMgbm90IHNldAorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKIENPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKIENPTkZJR19NT0RVTEVTPXkKKyMgQ09ORklHX01PRFVMRV9GT1JDRV9MT0FEIGlzIG5vdCBzZXQKICMgQ09ORklHX01PRFVMRV9VTkxPQUQgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVkVSU0lPTlMgaXMgbm90IHNldAogIyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKQEAgLTEwNSw3ICsxMTAsNiBAQAogIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0lPU0NIRUQ9ImFudGljaXBhdG9yeSIKIENPTkZJR19DTEFTU0lDX1JDVT15Ci0jIENPTkZJR19QUkVFTVBUX1JDVSBpcyBub3Qgc2V0CiAKICMKICMgU3lzdGVtIHR5cGUKQEAgLTExOCw2ICsxMjIsNyBAQAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MjAzIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzIwNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDcyNjMgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfTVhHIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcwNSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MDYgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzA3IGlzIG5vdCBzZXQKQEAgLTEzNSw2ICsxNDAsNyBAQAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzUxUiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NjAgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g0XzIwMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MjMgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzYzIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzc3MCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3ODAgaXMgbm90IHNldApAQCAtMTQyLDYgKzE0OCw3IEBACiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSFgzIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzM0MyBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzIyPXkKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzM2NiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDVfMTAxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINV8xMDMgaXMgbm90IHNldAogCkBAIC0yNTUsNyArMjYyLDYgQEAKIENPTkZJR19QUkVFTVBUX05PTkU9eQogIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAogIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0Ci1DT05GSUdfUkNVX1RSQUNFPXkKIENPTkZJR19HVVNBPXkKIAogIwpAQCAtMzIzLDggKzMyOSw2IEBACiBDT05GSUdfREVGQVVMVF9UQ1BfQ09ORz0iY3ViaWMiCiAjIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjYgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAogIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CkBAIC0zNzYsNyArMzgwLDkwIEBACiBDT05GSUdfRldfTE9BREVSPW0KICMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKICMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NVEQgaXMgbm90IHNldAorQ09ORklHX01URD15CisjIENPTkZJR19NVERfREVCVUcgaXMgbm90IHNldAorQ09ORklHX01URF9DT05DQVQ9eQorQ09ORklHX01URF9QQVJUSVRJT05TPXkKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ01ETElORV9QQVJUUz15CisjIENPTkZJR19NVERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKKworIworIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0aW9uIExheWVycworIworQ09ORklHX01URF9DSEFSPXkKK0NPTkZJR19NVERfQkxLREVWUz15CitDT05GSUdfTVREX0JMT0NLPXkKKyMgQ09ORklHX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAorIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAorCisjCisjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCisjCitDT05GSUdfTVREX0NGST15CisjIENPTkZJR19NVERfSkVERUNQUk9CRSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0dFTl9QUk9CRT15CisjIENPTkZJR19NVERfQ0ZJX0FEVl9PUFRJT05TIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzI9eQorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF80PXkKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xNiBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMzIgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfSTE9eQorQ09ORklHX01URF9DRklfSTI9eQorIyBDT05GSUdfTVREX0NGSV9JNCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQ0ZJX0k4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSU5URUxFWFQgaXMgbm90IHNldAorQ09ORklHX01URF9DRklfQU1EU1REPXkKKyMgQ09ORklHX01URF9DRklfU1RBQSBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9VVElMPXkKKyMgQ09ORklHX01URF9SQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1JPTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKKworIworIyBNYXBwaW5nIGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCisjCisjIENPTkZJR19NVERfQ09NUExFWF9NQVBQSU5HUyBpcyBub3Qgc2V0CitDT05GSUdfTVREX1BIWVNNQVA9eQorQ09ORklHX01URF9QSFlTTUFQX1NUQVJUPTB4ZmZmZmZmZmYKK0NPTkZJR19NVERfUEhZU01BUF9MRU49MAorQ09ORklHX01URF9QSFlTTUFQX0JBTktXSURUSD0wCisjIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CisKKyMKKyMgU2VsZi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NVERfU0xSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NVERSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX0JMT0NLMk1URCBpcyBub3Qgc2V0CisKKyMKKyMgRGlzay1Pbi1DaGlwIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19NVERfRE9DMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfRE9DMjAwMVBMVVMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EPXkKKyMgQ09ORklHX01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORF9FQ0NfU01DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX01VU0VVTV9JRFMgaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX0lEUz15CisjIENPTkZJR19NVERfTkFORF9ESVNLT05DSElQIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMgbm90IHNldAorQ09ORklHX01URF9OQU5EX1BMQVRGT1JNPXkKKyMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKKworIworIyBVQkkgLSBVbnNvcnRlZCBibG9jayBpbWFnZXMKKyMKKyMgQ09ORklHX01URF9VQkkgaXMgbm90IHNldAogIyBDT05GSUdfUEFSUE9SVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVj15CiAjIENPTkZJR19CTEtfREVWX0NPV19DT01NT04gaXMgbm90IHNldApAQCAtMzg1LDExICs0NzIsMTMgQEAKIENPTkZJR19CTEtfREVWX1JBTT15CiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKIENPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorIyBDT05GSUdfQkxLX0RFVl9YSVAgaXMgbm90IHNldAogIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEFfT1ZFUl9FVEggaXMgbm90IHNldAogQ09ORklHX01JU0NfREVWSUNFUz15CiAjIENPTkZJR19FRVBST01fOTNDWDYgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CiAjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCkBAIC00NjEsNiArNTUwLDcgQEAKICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKQEAgLTQ4MiwxMyArNTcyLDIwIEBACiAjCiAjIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0CiAjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfRVZERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0VWREVWPXkKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIAogIwogIyBJbnB1dCBEZXZpY2UgRHJpdmVycwogIwotIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKKyMgQ09ORklHX0tFWUJPQVJEX0FUS0JEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tFWUJPQVJEX1NVTktCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9MS0tCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CisjIENPTkZJR19LRVlCT0FSRF9ORVdUT04gaXMgbm90IHNldAorIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkgaXMgbm90IHNldAorQ09ORklHX0tFWUJPQVJEX1NIX0tFWVNDPXkKICMgQ09ORklHX0lOUFVUX01PVVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0CkBAIC01MDgsNiArNjA1LDcgQEAKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKIENPTkZJR19WVF9IV19DT05TT0xFX0JJTkRJTkc9eQorQ09ORklHX0RFVktNRU09eQogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTMxLDE2ICs2MjksNDAgQEAKICMgQ09ORklHX1IzOTY0IGlzIG5vdCBzZXQKICMgQ09ORklHX1JBV19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JMkMgaXMgbm90IHNldAorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CisjIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CiAKICMKLSMgU1BJIHN1cHBvcnQKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCisjIENPTkZJR19JMkNfT0NPUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQVJQT1JUX0xJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorQ09ORklHX0kyQ19TSF9NT0JJTEU9eQorCisjCisjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfRFMxNjgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAogIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAogCiAjCkBAIC01NTMsMTIgKzY3NSwyMiBAQAogIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCiAjCiAjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGltZWRpYSBkZXZpY2VzCiAjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKICMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CiAjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19NRURJQSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCiAjIENPTkZJR19EQUIgaXMgbm90IHNldAogCiAjCkBAIC01OTIsNiArNzI0LDggQEAKICMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAogCiAjCiAjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKQEAgLTYwOCw2ICs3NDIsNyBAQAogQ09ORklHX1VTQl9HQURHRVRfTTY2NTkyPXkKIENPTkZJR19VU0JfTTY2NTkyPXkKIENPTkZJR19TVVBFUkhfQlVJTFRfSU5fTTY2NTkyPXkKKyMgQ09ORklHX1VTQl9HQURHRVRfUFhBMjdYIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HQURHRVRfR09LVSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfR0FER0VUX0xIN0E0MFggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX0dBREdFVF9PTUFQIGlzIG5vdCBzZXQKQEAgLTYyMyw3ICs3NTgsOSBAQAogIyBDT05GSUdfVVNCX01JRElfR0FER0VUIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9HX1BSSU5URVIgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKICMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogQ09ORklHX1JUQ19MSUI9eQogQ09ORklHX1JUQ19DTEFTUz15CiBDT05GSUdfUlRDX0hDVE9TWVM9eQpAQCAtNjQwLDE1ICs3NzcsMzEgQEAKICMgQ09ORklHX1JUQ19EUlZfVEVTVCBpcyBub3Qgc2V0CiAKICMKKyMgSTJDIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTMwNyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTM3NCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTY3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX01BWDY5MDAgaXMgbm90IHNldAorQ09ORklHX1JUQ19EUlZfUlM1QzM3Mj15CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisKKyMKICMgU1BJIFJUQyBkcml2ZXJzCiAjCiAKICMKICMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKICMKKyMgQ09ORklHX1JUQ19EUlZfRFMxNTExIGlzIG5vdCBzZXQKICMgQ09ORklHX1JUQ19EUlZfRFMxNTUzIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JUQ19EUlZfU1RLMTdUQTggaXMgbm90IHNldAogIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CiAjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKQEAgLTY1NywxMCArODEwLDYgQEAKICMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCiBDT05GSUdfUlRDX0RSVl9TSD15Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIwogIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKIAogIwpAQCAtNjczLDEzICs4MjIsMTAgQEAKICMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19JTk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FVVE9GUzRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CkBAIC03MjAsMTAgKzg2NiwxMyBAQAogIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVMgaXMgbm90IHNldApAQCAtNzQzLDYgKzg5Miw3IEBACiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CiBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0s9eQorQ09ORklHX0ZSQU1FX1dBUk49MTAyNAogIyBDT05GSUdfTUFHSUNfU1lTUlEgaXMgbm90IHNldAogIyBDT05GSUdfVU5VU0VEX1NZTUJPTFMgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0ZTPXkKQEAgLTc2Myw0OCArOTEzLDc3IEBACiAjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CiAjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1JZUFRPPXkKLSMgQ09ORklHX0NSWVBUT19TRVFJViBpcyBub3Qgc2V0CisKKyMKKyMgQ3J5cHRvIGNvcmUgb3IgaGVscGVyCisjCiAjIENPTkZJR19DUllQVE9fTUFOQUdFUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fR0YxMjhNVUwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX05VTEwgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0CisKKyMKKyMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2NpYXRlZCBEYXRhCisjCisjIENPTkZJR19DUllQVE9fQ0NNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUUlWIGlzIG5vdCBzZXQKKworIworIyBCbG9jayBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19QQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAorCisjCisjIEhhc2ggbW9kZXMKKyMKICMgQ09ORklHX0NSWVBUT19ITUFDIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKworIworIyBEaWdlc3QKKyMKKyMgQ09ORklHX0NSWVBUT19DUkMzMkMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX01ENCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTUQ1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fU0hBMjU2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19TSEE1MTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19FQ0IgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fTFJXIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19YVFMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NUUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fR0NNIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0NSWVBURCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIwogIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKICMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19ERVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19BTlVCSVMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JZUFRPX1NBTFNBMjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFRUQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NFUlBFTlQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1RFQSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVFdPRklTSCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKICMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQ1JDMzJDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUT19DQU1FTExJQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fVEVTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUllQVE9fQVVUSEVOQyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUllQVE9fTFpPIGlzIG5vdCBzZXQKIENPTkZJR19DUllQVE9fSFc9eQogCkBAIC04MTIsNiArOTkxLDcgQEAKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorIyBDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9yc2s3MjAzX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9yc2s3MjAzX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGViZDQzCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9zaC9jb25maWdzL3JzazcyMDNfZGVmY29uZmlnCkBAIC0wLDAgKzEsODQxIEBACisjCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmM0CisjIFR1ZSBKdW4gIDMgMTM6MDI6NDIgMjAwOAorIworQ09ORklHX1NVUEVSSD15CitDT05GSUdfU1VQRVJIMzI9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorQ09ORklHX0dFTkVSSUNfQlVHPXkKK0NPTkZJR19HRU5FUklDX0ZJTkRfTkVYVF9CSVQ9eQorQ09ORklHX0dFTkVSSUNfSFdFSUdIVD15CitDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CitDT05GSUdfR0VORVJJQ19JUlFfUFJPQkU9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKKyMgQ09ORklHX0dFTkVSSUNfVElNRSBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTIGlzIG5vdCBzZXQKK0NPTkZJR19TVEFDS1RSQUNFX1NVUFBPUlQ9eQorQ09ORklHX0xPQ0tERVBfU1VQUE9SVD15CisjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VMzIgaXMgbm90IHNldAorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTY0IGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX05PX1ZJUlRfVE9fQlVTPXkKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX0RFRkNPTkZJR19MSVNUPSIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKKworIworIyBHZW5lcmFsIHNldHVwCisjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19CUk9LRU5fT05fU01QPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKK0NPTkZJR19MT0NBTFZFUlNJT049IiIKKyMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CitDT05GSUdfUE9TSVhfTVFVRVVFPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE0CisjIENPTkZJR19DR1JPVVBTIGlzIG5vdCBzZXQKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfVVNFUl9TQ0hFRD15CisjIENPTkZJR19DR1JPVVBfU0NIRUQgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjI9eQorIyBDT05GSUdfUkVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfTkFNRVNQQUNFUyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKK0NPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CitDT05GSUdfU1lTQ1RMPXkKK0NPTkZJR19FTUJFRERFRD15CitDT05GSUdfVUlEMTY9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMPXkKK0NPTkZJR19TWVNDVExfU1lTQ0FMTF9DSEVDSz15CitDT05GSUdfS0FMTFNZTVM9eQorQ09ORklHX0tBTExTWU1TX0FMTD15CisjIENPTkZJR19LQUxMU1lNU19FWFRSQV9QQVNTIGlzIG5vdCBzZXQKK0NPTkZJR19IT1RQTFVHPXkKK0NPTkZJR19QUklOVEs9eQorQ09ORklHX0JVRz15CitDT05GSUdfRUxGX0NPUkU9eQorQ09ORklHX0NPTVBBVF9CUks9eQorQ09ORklHX0JBU0VfRlVMTD15CitDT05GSUdfRlVURVg9eQorQ09ORklHX0FOT05fSU5PREVTPXkKK0NPTkZJR19FUE9MTD15CitDT05GSUdfU0lHTkFMRkQ9eQorQ09ORklHX1RJTUVSRkQ9eQorQ09ORklHX0VWRU5URkQ9eQorQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTPXkKK0NPTkZJR19TTEFCPXkKKyMgQ09ORklHX1NMVUIgaXMgbm90IHNldAorIyBDT05GSUdfU0xPQiBpcyBub3Qgc2V0CitDT05GSUdfUFJPRklMSU5HPXkKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0hBVkVfS1BST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0tSRVRQUk9CRVMgaXMgbm90IHNldAorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1NMQUJJTkZPPXkKK0NPTkZJR19SVF9NVVRFWEVTPXkKK0NPTkZJR19USU5ZX1NITUVNPXkKK0NPTkZJR19CQVNFX1NNQUxMPTAKKyMgQ09ORklHX01PRFVMRVMgaXMgbm90IHNldAorQ09ORklHX0JMT0NLPXkKKyMgQ09ORklHX0xCRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0lPX1RSQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xTRiBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CisKKyMKKyMgSU8gU2NoZWR1bGVycworIworQ09ORklHX0lPU0NIRURfTk9PUD15CisjIENPTkZJR19JT1NDSEVEX0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPU0NIRURfREVBRExJTkUgaXMgbm90IHNldAorIyBDT05GSUdfSU9TQ0hFRF9DRlEgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9BUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQ0ZRIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX05PT1A9eQorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0ibm9vcCIKK0NPTkZJR19DTEFTU0lDX1JDVT15CisKKyMKKyMgU3lzdGVtIHR5cGUKKyMKK0NPTkZJR19DUFVfU0gyPXkKK0NPTkZJR19DUFVfU0gyQT15CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc2MTkgaXMgbm90IHNldAorQ09ORklHX0NQVV9TVUJUWVBFX1NINzIwMz15CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDcyMDYgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX01YRyBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcwNyBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MDggaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzA5IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcxMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcyMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NTAgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MDkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzc1MFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzUwUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NTEgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzUxUiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g0XzIwMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MjMgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzc3MCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3ODAgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3Nzg1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NIWDMgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MzQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcyMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDczNjYgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g1XzEwMSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDVfMTAzIGlzIG5vdCBzZXQKKworIworIyBNZW1vcnkgbWFuYWdlbWVudCBvcHRpb25zCisjCitDT05GSUdfUVVJQ0tMSVNUPXkKK0NPTkZJR19QQUdFX09GRlNFVD0weDAwMDAwMDAwCitDT05GSUdfTUVNT1JZX1NUQVJUPTB4MGMwMDAwMDAKK0NPTkZJR19NRU1PUllfU0laRT0weDAxMDAwMDAwCitDT05GSUdfMjlCSVQ9eQorQ09ORklHX0FSQ0hfRkxBVE1FTV9FTkFCTEU9eQorQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9TUEFSU0VNRU1fREVGQVVMVD15CitDT05GSUdfTUFYX0FDVElWRV9SRUdJT05TPTEKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CitDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKK0NPTkZJR19QQUdFX1NJWkVfNEtCPXkKKyMgQ09ORklHX1BBR0VfU0laRV84S0IgaXMgbm90IHNldAorIyBDT05GSUdfUEFHRV9TSVpFXzY0S0IgaXMgbm90IHNldAorQ09ORklHX1NFTEVDVF9NRU1PUllfTU9ERUw9eQorQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKKyMgQ09ORklHX0RJU0NPTlRJR01FTV9NQU5VQUwgaXMgbm90IHNldAorIyBDT05GSUdfU1BBUlNFTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTT15CitDT05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQorQ09ORklHX1NQQVJTRU1FTV9TVEFUSUM9eQorIyBDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVBfRU5BQkxFIGlzIG5vdCBzZXQKK0NPTkZJR19QQUdFRkxBR1NfRVhURU5ERUQ9eQorQ09ORklHX1NQTElUX1BUTE9DS19DUFVTPTQKKyMgQ09ORklHX1JFU09VUkNFU182NEJJVCBpcyBub3Qgc2V0CitDT05GSUdfWk9ORV9ETUFfRkxBRz0wCitDT05GSUdfTlJfUVVJQ0s9MgorCisjCisjIENhY2hlIGNvbmZpZ3VyYXRpb24KKyMKKyMgQ09ORklHX1NIX0RJUkVDVF9NQVBQRUQgaXMgbm90IHNldAorQ09ORklHX0NBQ0hFX1dSSVRFQkFDSz15CisjIENPTkZJR19DQUNIRV9XUklURVRIUk9VR0ggaXMgbm90IHNldAorIyBDT05GSUdfQ0FDSEVfT0ZGIGlzIG5vdCBzZXQKKworIworIyBQcm9jZXNzb3IgZmVhdHVyZXMKKyMKKyMgQ09ORklHX0NQVV9MSVRUTEVfRU5ESUFOIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfQklHX0VORElBTj15CitDT05GSUdfU0hfRlBVPXkKK0NPTkZJR19DUFVfSEFTX0ZQVT15CisKKyMKKyMgQm9hcmQgc3VwcG9ydAorIworCisjCisjIFRpbWVyIGFuZCBjbG9jayBjb25maWd1cmF0aW9uCisjCitDT05GSUdfU0hfQ01UPXkKKyMgQ09ORklHX1NIX01UVTIgaXMgbm90IHNldAorQ09ORklHX1NIX1RJTUVSX0lSUT0xNDIKK0NPTkZJR19TSF9QQ0xLX0ZSRVE9MTY2NzA4MDAKK0NPTkZJR19TSF9DTEtfTUQ9MAorIyBDT05GSUdfVElDS19PTkVTSE9UIGlzIG5vdCBzZXQKKworIworIyBDUFUgRnJlcXVlbmN5IHNjYWxpbmcKKyMKK0NPTkZJR19DUFVfRlJFUT15CitDT05GSUdfQ1BVX0ZSRVFfVEFCTEU9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX1NUQVQ9eQorIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVF9ERVRBSUxTIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRT15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfVVNFUlNQQUNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVX0ZSRVFfR09WX1BFUkZPUk1BTkNFPXkKKyMgQ09ORklHX0NQVV9GUkVRX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9HT1ZfT05ERU1BTkQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CitDT05GSUdfU0hfQ1BVX0ZSRVE9eQorCisjCisjIERNQSBzdXBwb3J0CisjCisKKyMKKyMgQ29tcGFuaW9uIENoaXBzCisjCisKKyMKKyMgQWRkaXRpb25hbCBTdXBlckggRGV2aWNlIERyaXZlcnMKKyMKK0NPTkZJR19IRUFSVEJFQVQ9eQorIyBDT05GSUdfUFVTSF9TV0lUQ0ggaXMgbm90IHNldAorCisjCisjIEtlcm5lbCBmZWF0dXJlcworIworIyBDT05GSUdfSFpfMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0haXzI1MCBpcyBub3Qgc2V0CisjIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAorQ09ORklHX0haXzEwMDA9eQorQ09ORklHX0haPTEwMDAKKyMgQ09ORklHX1NDSEVEX0hSVElDSyBpcyBub3Qgc2V0CisjIENPTkZJR19LRVhFQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUkFTSF9EVU1QIGlzIG5vdCBzZXQKK0NPTkZJR19QUkVFTVBUX05PTkU9eQorIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldAorIyBDT05GSUdfUFJFRU1QVCBpcyBub3Qgc2V0CitDT05GSUdfR1VTQT15CisKKyMKKyMgQm9vdCBvcHRpb25zCisjCitDT05GSUdfWkVST19QQUdFX09GRlNFVD0weDAwMDAxMDAwCitDT05GSUdfQk9PVF9MSU5LX09GRlNFVD0weDAwODAwMDAwCitDT05GSUdfQ01ETElORV9CT09MPXkKK0NPTkZJR19DTURMSU5FPSJjb25zb2xlPXR0eVNDMCwxMTUyMDAgZWFybHlwcmludGs9c2VyaWFsIGlnbm9yZV9sb2dsZXZlbCIKKworIworIyBCdXMgb3B0aW9ucworIworIyBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAorIyBDT05GSUdfUENDQVJEIGlzIG5vdCBzZXQKKworIworIyBFeGVjdXRhYmxlIGZpbGUgZm9ybWF0cworIworQ09ORklHX0JJTkZNVF9GTEFUPXkKK0NPTkZJR19CSU5GTVRfWkZMQVQ9eQorQ09ORklHX0JJTkZNVF9TSEFSRURfRkxBVD15CisjIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CisKKyMKKyMgTmV0d29ya2luZworIworQ09ORklHX05FVD15CisKKyMKKyMgTmV0d29ya2luZyBvcHRpb25zCisjCisjIENPTkZJR19QQUNLRVQgaXMgbm90IHNldAorIyBDT05GSUdfVU5JWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUPXkKKyMgQ09ORklHX0lQX01VTFRJQ0FTVCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0ZJQl9IQVNIPXkKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAorIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9UVU5ORUwgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgorIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFdPUktfU0VDTUFSSyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAorIyBDT05GSUdfSVBfRENDUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9TQ1RQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RJUEMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19MTEMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQWCBpcyBub3Qgc2V0CisjIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CisjIENPTkZJR19YMjUgaXMgbm90IHNldAorIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CisjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAorIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorCisjCisjIE5ldHdvcmsgdGVzdGluZworIworIyBDT05GSUdfTkVUX1BLVEdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DQU4gaXMgbm90IHNldAorIyBDT05GSUdfSVJEQSBpcyBub3Qgc2V0CisjIENPTkZJR19CVCBpcyBub3Qgc2V0CisjIENPTkZJR19BRl9SWFJQQyBpcyBub3Qgc2V0CisKKyMKKyMgV2lyZWxlc3MKKyMKKyMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JRUVFODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUkZLSUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF85UCBpcyBub3Qgc2V0CisKKyMKKyMgRGV2aWNlIERyaXZlcnMKKyMKKworIworIyBHZW5lcmljIERyaXZlciBPcHRpb25zCisjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgorIyBDT05GSUdfU1RBTkRBTE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CitDT05GSUdfTVREPXkKKyMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NPTkNBVD15CitDT05GSUdfTVREX1BBUlRJVElPTlM9eQorQ09ORklHX01URF9SRURCT09UX1BBUlRTPXkKK0NPTkZJR19NVERfUkVEQk9PVF9ESVJFQ1RPUllfQkxPQ0s9LTEKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1VOQUxMT0NBVEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAorCisjCisjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCisjCitDT05GSUdfTVREX0NIQVI9eQorQ09ORklHX01URF9CTEtERVZTPXkKK0NPTkZJR19NVERfQkxPQ0s9eQorIyBDT05GSUdfRlRMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GVEwgaXMgbm90IHNldAorIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAorIyBDT05GSUdfUkZEX0ZUTCBpcyBub3Qgc2V0CisjIENPTkZJR19TU0ZEQyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CisKKyMKKyMgUkFNL1JPTS9GbGFzaCBjaGlwIGRyaXZlcnMKKyMKK0NPTkZJR19NVERfQ0ZJPXkKKyMgQ09ORklHX01URF9KRURFQ1BST0JFIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfR0VOX1BST0JFPXkKKyMgQ09ORklHX01URF9DRklfQURWX09QVElPTlMgaXMgbm90IHNldAorQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8xPXkKK0NPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMj15CitDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzQ9eQorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzggaXMgbm90IHNldAorIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9NQVBfQkFOS19XSURUSF8zMiBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9JMT15CitDT05GSUdfTVREX0NGSV9JMj15CisjIENPTkZJR19NVERfQ0ZJX0k0IGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9DRklfSTggaXMgbm90IHNldAorIyBDT05GSUdfTVREX0NGSV9JTlRFTEVYVCBpcyBub3Qgc2V0CitDT05GSUdfTVREX0NGSV9BTURTVEQ9eQorIyBDT05GSUdfTVREX0NGSV9TVEFBIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfQ0ZJX1VUSUw9eQorIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BQlNFTlQgaXMgbm90IHNldAorCisjCisjIE1hcHBpbmcgZHJpdmVycyBmb3IgY2hpcCBhY2Nlc3MKKyMKKyMgQ09ORklHX01URF9DT01QTEVYX01BUFBJTkdTIGlzIG5vdCBzZXQKK0NPTkZJR19NVERfUEhZU01BUD15CitDT05GSUdfTVREX1BIWVNNQVBfU1RBUlQ9MHgyMDAwMDAwMAorQ09ORklHX01URF9QSFlTTUFQX0xFTj0weDAxMDAwMDAwCitDT05GSUdfTVREX1BIWVNNQVBfQkFOS1dJRFRIPTQKKyMgQ09ORklHX01URF9VQ0xJTlVYIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKKworIworIyBTZWxmLWNvbnRhaW5lZCBNVEQgZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01URF9TTFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfUEhSQU0gaXMgbm90IHNldAorIyBDT05GSUdfTVREX01URFJBTSBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfQkxPQ0syTVREIGlzIG5vdCBzZXQKKworIworIyBEaXNrLU9uLUNoaXAgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX01URF9ET0MyMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9ET0MyMDAxUExVUyBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfTkFORCBpcyBub3Qgc2V0CisjIENPTkZJR19NVERfT05FTkFORCBpcyBub3Qgc2V0CisKKyMKKyMgVUJJIC0gVW5zb3J0ZWQgYmxvY2sgaW1hZ2VzCisjCisjIENPTkZJR19NVERfVUJJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVY9eQorIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JMS19ERVZfTE9PUCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CisjIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CisjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CitDT05GSUdfTUlTQ19ERVZJQ0VTPXkKKyMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CisjIENPTkZJR19FTkNMT1NVUkVfU0VSVklDRVMgaXMgbm90IHNldAorQ09ORklHX0hBVkVfSURFPXkKKyMgQ09ORklHX0lERSBpcyBub3Qgc2V0CisKKyMKKyMgU0NTSSBkZXZpY2Ugc3VwcG9ydAorIworIyBDT05GSUdfUkFJRF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfRE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19BVEEgaXMgbm90IHNldAorIyBDT05GSUdfTUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVklDRVM9eQorIyBDT05GSUdfTkVUREVWSUNFU19NVUxUSVFVRVVFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAorIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CisjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAorIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAorIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfRVRIRVJORVQ9eQorQ09ORklHX01JST15CisjIENPTkZJR19BWDg4Nzk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NUTklDIGlzIG5vdCBzZXQKK0NPTkZJR19TTUM5MVg9eQorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CitDT05GSUdfTkVUREVWXzEwMDA9eQorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorQ09ORklHX05FVERFVl8xMDAwMD15CisKKyMKKyMgV2lyZWxlc3MgTEFOCisjCisjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QUFAgaXMgbm90IHNldAorIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JU0ROIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BIT05FIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBkZXZpY2Ugc3VwcG9ydAorIworQ09ORklHX0lOUFVUPXkKKyMgQ09ORklHX0lOUFVUX0ZGX01FTUxFU1MgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CisKKyMKKyMgVXNlcmxhbmQgaW50ZXJmYWNlcworIworIyBDT05GSUdfSU5QVVRfTU9VU0VERVYgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKKworIworIyBJbnB1dCBEZXZpY2UgRHJpdmVycworIworIyBDT05GSUdfSU5QVVRfS0VZQk9BUkQgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfTU9VU0UgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorCisjCisjIEhhcmR3YXJlIEkvTyBwb3J0cworIworIyBDT05GSUdfU0VSSU8gaXMgbm90IHNldAorIyBDT05GSUdfR0FNRVBPUlQgaXMgbm90IHNldAorCisjCisjIENoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19WVCBpcyBub3Qgc2V0CitDT05GSUdfREVWS01FTT15CisjIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorCisjCisjIFNlcmlhbCBkcml2ZXJzCisjCisjIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CisKKyMKKyMgTm9uLTgyNTAgc2VyaWFsIHBvcnQgc3VwcG9ydAorIworQ09ORklHX1NFUklBTF9TSF9TQ0k9eQorQ09ORklHX1NFUklBTF9TSF9TQ0lfTlJfVUFSVFM9NAorQ09ORklHX1NFUklBTF9TSF9TQ0lfQ09OU09MRT15CitDT05GSUdfU0VSSUFMX0NPUkU9eQorQ09ORklHX1NFUklBTF9DT1JFX0NPTlNPTEU9eQorIyBDT05GSUdfVU5JWDk4X1BUWVMgaXMgbm90IHNldAorIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAorIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CisjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQSSBpcyBub3Qgc2V0CisjIENPTkZJR19XMSBpcyBub3Qgc2V0CisjIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAorIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAorQ09ORklHX1RIRVJNQUw9eQorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAorCisjCisjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKKyMKKyMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRldmljZXMKKyMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIworIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJREVPX01FRElBIGlzIG5vdCBzZXQKKworIworIyBNdWx0aW1lZGlhIGRyaXZlcnMKKyMKK0NPTkZJR19EQUI9eQorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKK0NPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTD15CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorCisjCisjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKKyMKKyMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0CisKKyMKKyMgU291bmQKKyMKKyMgQ09ORklHX1NPVU5EIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfU1VQUE9SVD15CitDT05GSUdfSElEPXkKKyMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ISURSQVcgaXMgbm90IHNldAorQ09ORklHX1VTQl9TVVBQT1JUPXkKK0NPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX1dISVRFTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9IVUIgaXMgbm90IHNldAorCisjCisjIE5PVEU6IFVTQl9TVE9SQUdFIGVuYWJsZXMgU0NTSSwgYW5kICdTQ1NJIGRpc2sgc3VwcG9ydCcKKyMKKyMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAorIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKKyMgQ09ORklHX01FTVNUSUNLIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FV19MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CisKKyMKKyMgUlRDIGludGVyZmFjZXMKKyMKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAorCisjCisjIFNQSSBSVEMgZHJpdmVycworIworCisjCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCisjCisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAorCisjCisjIG9uLUNQVSBSVEMgZHJpdmVycworIworQ09ORklHX1JUQ19EUlZfU0g9eQorIyBDT05GSUdfVUlPIGlzIG5vdCBzZXQKKworIworIyBGaWxlIHN5c3RlbXMKKyMKKyMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRVhUM19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GU19QT1NJWF9BQ0wgaXMgbm90IHNldAorIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX09DRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ROT1RJRlkgaXMgbm90IHNldAorIyBDT05GSUdfSU5PVElGWSBpcyBub3Qgc2V0CisjIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0CisjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKKworIworIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19JU085NjYwX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VERl9GUyBpcyBub3Qgc2V0CisKKyMKKyMgRE9TL0ZBVC9OVCBGaWxlc3lzdGVtcworIworIyBDT05GSUdfTVNET1NfRlMgaXMgbm90IHNldAorIyBDT05GSUdfVkZBVF9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19OVEZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBQc2V1ZG8gZmlsZXN5c3RlbXMKKyMKK0NPTkZJR19QUk9DX0ZTPXkKK0NPTkZJR19QUk9DX1NZU0NUTD15CitDT05GSUdfU1lTRlM9eQorIyBDT05GSUdfVE1QRlMgaXMgbm90IHNldAorIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKKworIworIyBNaXNjZWxsYW5lb3VzIGZpbGVzeXN0ZW1zCisjCisjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pGRlMyX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CisjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ST01GU19GUz15CisjIENPTkZJR19TWVNWX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUV09SS19GSUxFU1lTVEVNUz15CitDT05GSUdfTkZTX0ZTPXkKKyMgQ09ORklHX05GU19WMyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAorIyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CitDT05GSUdfUk9PVF9ORlM9eQorQ09ORklHX0xPQ0tEPXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CisjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldAorIyBDT05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19BRlNfRlMgaXMgbm90IHNldAorCisjCisjIFBhcnRpdGlvbiBUeXBlcworIworIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19NU0RPU19QQVJUSVRJT049eQorIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RMTSBpcyBub3Qgc2V0CisKKyMKKyMgS2VybmVsIGhhY2tpbmcKKyMKK0NPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKKyMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKK0NPTkZJR19FTkFCTEVfV0FSTl9ERVBSRUNBVEVEPXkKKyMgQ09ORklHX0VOQUJMRV9NVVNUX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9XQVJOPTEwMjQKK0NPTkZJR19NQUdJQ19TWVNSUT15CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19LRVJORUw9eQorQ09ORklHX0RFQlVHX1NISVJRPXkKK0NPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CitDT05GSUdfU0NIRURfREVCVUc9eQorIyBDT05GSUdfU0NIRURTVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19USU1FUl9TVEFUUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19PQkpFQ1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX01VVEVYRVM9eQorIyBDT05GSUdfREVCVUdfTE9DS19BTExPQyBpcyBub3Qgc2V0CisjIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xPQ0tfU1RBVCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVA9eQorIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQorQ09ORklHX0RFQlVHX0lORk89eQorIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19MSVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKK0NPTkZJR19GUkFNRV9QT0lOVEVSPXkKKyMgQ09ORklHX0JPT1RfUFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBQ0tUUkFDRV9TRUxGX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfRkFVTFRfSU5KRUNUSU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBTVBMRVMgaXMgbm90IHNldAorIyBDT05GSUdfU0hfU1RBTkRBUkRfQklPUyBpcyBub3Qgc2V0CitDT05GSUdfRUFSTFlfU0NJRl9DT05TT0xFPXkKK0NPTkZJR19FQVJMWV9TQ0lGX0NPTlNPTEVfUE9SVD0weGZmZmU4MDAwCitDT05GSUdfRUFSTFlfUFJJTlRLPXkKK0NPTkZJR19ERUJVR19CT09UTUVNPXkKK0NPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XPXkKK0NPTkZJR19ERUJVR19TVEFDS19VU0FHRT15CisjIENPTkZJR19JUlFTVEFDS1MgaXMgbm90IHNldAorCisjCisjIFNlY3VyaXR5IG9wdGlvbnMKKyMKKyMgQ09ORklHX0tFWVMgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPIGlzIG5vdCBzZXQKKworIworIyBMaWJyYXJ5IHJvdXRpbmVzCisjCitDT05GSUdfQklUUkVWRVJTRT15CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldAorQ09ORklHX0NSQzMyPXkKKyMgQ09ORklHX0NSQzcgaXMgbm90IHNldAorIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19aTElCX0lORkxBVEU9eQorQ09ORklHX1BMSVNUPXkKK0NPTkZJR19IQVNfSU9NRU09eQorQ09ORklHX0hBU19JT1BPUlQ9eQorQ09ORklHX0hBU19ETUE9eQpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9jb25maWdzL3NlNzIwNl9kZWZjb25maWcgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3MjA2X2RlZmNvbmZpZwppbmRleCAwZDBjZGE5Li42YjM0YmFhIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3MjA2X2RlZmNvbmZpZworKysgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3MjA2X2RlZmNvbmZpZwpAQCAtMSw5ICsxLDEwIEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjMtcmM0Ci0jIFRodSBTZXAgMTMgMTY6NDA6MTYgMjAwNworIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjNAorIyBUdWUgSnVuICAzIDIwOjI3OjA4IDIwMDgKICMKIENPTkZJR19TVVBFUkg9eQorQ09ORklHX1NVUEVSSDMyPXkKIENPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKIENPTkZJR19HRU5FUklDX0JVRz15CiBDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKQEAgLTE4LDYgKzE5LDcgQEAKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAogQ09ORklHX0FSQ0hfTk9fVklSVF9UT19CVVM9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CiBDT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgogCiAjCkBAIC0yNSw0NyArMjcsODIgQEAKICMKIENPTkZJR19FWFBFUklNRU5UQUw9eQogQ09ORklHX0JST0tFTl9PTl9TTVA9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKIENPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIENPTkZJR19MT0NBTFZFUlNJT049IiIKLSMgQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZU1ZJUEMgaXMgbm90IHNldAotIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1QgaXMgbm90IHNldAorQ09ORklHX0xPQ0FMVkVSU0lPTl9BVVRPPXkKK0NPTkZJR19TWVNWSVBDPXkKK0NPTkZJR19TWVNWSVBDX1NZU0NUTD15CitDT05GSUdfUE9TSVhfTVFVRVVFPXkKK0NPTkZJR19CU0RfUFJPQ0VTU19BQ0NUPXkKKyMgQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1RfVjMgaXMgbm90IHNldAogIyBDT05GSUdfVEFTS1NUQVRTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTRVJfTlMgaXMgbm90IHNldAotIyBDT05GSUdfQVVESVQgaXMgbm90IHNldAorQ09ORklHX0FVRElUPXkKK0NPTkZJR19BVURJVFNZU0NBTEw9eQogIyBDT05GSUdfSUtDT05GSUcgaXMgbm90IHNldAogQ09ORklHX0xPR19CVUZfU0hJRlQ9MTQKLUNPTkZJR19TWVNGU19ERVBSRUNBVEVEPXkKLSMgQ09ORklHX1JFTEFZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSU5JVFJEIGlzIG5vdCBzZXQKK0NPTkZJR19DR1JPVVBTPXkKK0NPTkZJR19DR1JPVVBfREVCVUc9eQorQ09ORklHX0NHUk9VUF9OUz15CitDT05GSUdfQ0dST1VQX0RFVklDRT15CisjIENPTkZJR19HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfQ0dST1VQX0NQVUFDQ1Q9eQorQ09ORklHX1JFU09VUkNFX0NPVU5URVJTPXkKK0NPTkZJR19NTV9PV05FUj15CitDT05GSUdfQ0dST1VQX01FTV9SRVNfQ1RMUj15CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKK0NPTkZJR19SRUxBWT15CitDT05GSUdfTkFNRVNQQUNFUz15CitDT05GSUdfVVRTX05TPXkKK0NPTkZJR19JUENfTlM9eQorQ09ORklHX1VTRVJfTlM9eQorQ09ORklHX1BJRF9OUz15CitDT05GSUdfQkxLX0RFVl9JTklUUkQ9eQorQ09ORklHX0lOSVRSQU1GU19TT1VSQ0U9IiIKIENPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CiBDT05GSUdfU1lTQ1RMPXkKIENPTkZJR19FTUJFRERFRD15CiAjIENPTkZJR19VSUQxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19TWVNDVExfU1lTQ0FMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19LQUxMU1lNUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IT1RQTFVHIGlzIG5vdCBzZXQKK0NPTkZJR19LQUxMU1lNUz15CitDT05GSUdfS0FMTFNZTVNfQUxMPXkKKyMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKICMgQ09ORklHX0VMRl9DT1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JBU0VfRlVMTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVRFWCBpcyBub3Qgc2V0CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKK0NPTkZJR19CQVNFX0ZVTEw9eQorQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15Ci0jIENPTkZJR19FUE9MTCBpcyBub3Qgc2V0CitDT05GSUdfRVBPTEw9eQogQ09ORklHX1NJR05BTEZEPXkKIENPTkZJR19USU1FUkZEPXkKIENPTkZJR19FVkVOVEZEPXkKLSMgQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJTIGlzIG5vdCBzZXQKLUNPTkZJR19TTFVCX0RFQlVHPXkKK0NPTkZJR19WTV9FVkVOVF9DT1VOVEVSUz15CiAjIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKLUNPTkZJR19TTFVCPXkKLSMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CitDT05GSUdfU0xPQj15CitDT05GSUdfUFJPRklMSU5HPXkKKyMgQ09ORklHX01BUktFUlMgaXMgbm90IHNldAorQ09ORklHX09QUk9GSUxFPXkKK0NPTkZJR19IQVZFX09QUk9GSUxFPXkKKyMgQ09ORklHX0hBVkVfS1BST0JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19IQVZFX0tSRVRQUk9CRVMgaXMgbm90IHNldAorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1JUX01VVEVYRVM9eQogQ09ORklHX1RJTllfU0hNRU09eQotQ09ORklHX0JBU0VfU01BTEw9MQotIyBDT05GSUdfTU9EVUxFUyBpcyBub3Qgc2V0CitDT05GSUdfQkFTRV9TTUFMTD0wCitDT05GSUdfTU9EVUxFUz15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9BRCBpcyBub3Qgc2V0CitDT05GSUdfTU9EVUxFX1VOTE9BRD15CisjIENPTkZJR19NT0RVTEVfRk9SQ0VfVU5MT0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PRFVMRV9TUkNWRVJTSU9OX0FMTCBpcyBub3Qgc2V0CisjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKIENPTkZJR19CTE9DSz15CiAjIENPTkZJR19MQkQgaXMgbm90IHNldAorIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CiAjIENPTkZJR19MU0YgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9CU0cgaXMgbm90IHNldAogCkBAIC04MSw2ICsxMTgsNyBAQAogIyBDT05GSUdfREVGQVVMVF9DRlEgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfTk9PUD15CiBDT05GSUdfREVGQVVMVF9JT1NDSEVEPSJub29wIgorIyBDT05GSUdfQ0xBU1NJQ19SQ1UgaXMgbm90IHNldAogCiAjCiAjIFN5c3RlbSB0eXBlCkBAIC04OCw3ICsxMjYsMTAgQEAKIENPTkZJR19DUFVfU0gyPXkKIENPTkZJR19DUFVfU0gyQT15CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc2MTkgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MjAzIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfU1VCVFlQRV9TSDcyMDY9eQorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3MjYzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX01YRyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MDUgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzA2IGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcwNyBpcyBub3Qgc2V0CkBAIC05Nyw2ICsxMzgsNyBAQAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzEwIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcxMiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3MjAgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzIxIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzc1MCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDcwOTEgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzUwUiBpcyBub3Qgc2V0CkBAIC0xMDUsMTQgKzE0NywxNyBAQAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzUxUiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NjAgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g0XzIwMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUFVfU1VCVFlQRV9TVDQwU1RCMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUFVfU1VCVFlQRV9TVDQwR1gxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzcyMyBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3NjMgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzcwIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzc4MCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDc3ODUgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0hYMyBpcyBub3Qgc2V0CiAjIENPTkZJR19DUFVfU1VCVFlQRV9TSDczNDMgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX1NVQlRZUEVfU0g3NzIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINzM2NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfU1VCVFlQRV9TSDVfMTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVV9TVUJUWVBFX1NINV8xMDMgaXMgbm90IHNldAogCiAjCiAjIE1lbW9yeSBtYW5hZ2VtZW50IG9wdGlvbnMKQEAgLTEyMSwyMyArMTY2LDI1IEBACiBDT05GSUdfUEFHRV9PRkZTRVQ9MHgwMDAwMDAwMAogQ09ORklHX01FTU9SWV9TVEFSVD0weDBjMDAwMDAwCiBDT05GSUdfTUVNT1JZX1NJWkU9MHgwNDAwMDAwMAorQ09ORklHXzI5QklUPXkKIENPTkZJR19BUkNIX0ZMQVRNRU1fRU5BQkxFPXkKIENPTkZJR19BUkNIX1NQQVJTRU1FTV9FTkFCTEU9eQogQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0RFRkFVTFQ9eQogQ09ORklHX01BWF9BQ1RJVkVfUkVHSU9OUz0xCiBDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQogQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15Ci1DT05GSUdfQVJDSF9FTkFCTEVfTUVNT1JZX0hPVFBMVUc9eQogQ09ORklHX1BBR0VfU0laRV80S0I9eQogIyBDT05GSUdfUEFHRV9TSVpFXzhLQiBpcyBub3Qgc2V0CiAjIENPTkZJR19QQUdFX1NJWkVfNjRLQiBpcyBub3Qgc2V0CiBDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15Ci0jIENPTkZJR19GTEFUTUVNX01BTlVBTCBpcyBub3Qgc2V0CitDT05GSUdfRkxBVE1FTV9NQU5VQUw9eQogIyBDT05GSUdfRElTQ09OVElHTUVNX01BTlVBTCBpcyBub3Qgc2V0Ci1DT05GSUdfU1BBUlNFTUVNX01BTlVBTD15Ci1DT05GSUdfU1BBUlNFTUVNPXkKLUNPTkZJR19IQVZFX01FTU9SWV9QUkVTRU5UPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAorQ09ORklHX0ZMQVRNRU09eQorQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKIENPTkZJR19TUEFSU0VNRU1fU1RBVElDPXkKKyMgQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRSBpcyBub3Qgc2V0CitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiAjIENPTkZJR19SRVNPVVJDRVNfNjRCSVQgaXMgbm90IHNldAogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MApAQCAtMTgzLDEzICsyMzAsMTYgQEAKIENPTkZJR19DUFVfRlJFUV9TVEFUPXkKICMgQ09ORklHX0NQVV9GUkVRX1NUQVRfREVUQUlMUyBpcyBub3Qgc2V0CiBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUEVSRk9STUFOQ0U9eQorIyBDT05GSUdfQ1BVX0ZSRVFfREVGQVVMVF9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAogIyBDT05GSUdfQ1BVX0ZSRVFfR09WX09OREVNQU5EIGlzIG5vdCBzZXQKICMgQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAotIyBDT05GSUdfU0hfQ1BVX0ZSRVEgaXMgbm90IHNldAorQ09ORklHX1NIX0NQVV9GUkVRPXkKIAogIwogIyBETUEgc3VwcG9ydApAQCAtMjEzLDExICsyNjMsMTUgQEAKICMgQ09ORklHX0haXzMwMCBpcyBub3Qgc2V0CiBDT05GSUdfSFpfMTAwMD15CiBDT05GSUdfSFo9MTAwMAotIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAorIyBDT05GSUdfU0NIRURfSFJUSUNLIGlzIG5vdCBzZXQKK0NPTkZJR19LRVhFQz15CiAjIENPTkZJR19DUkFTSF9EVU1QIGlzIG5vdCBzZXQKLUNPTkZJR19QUkVFTVBUX05PTkU9eQorIyBDT05GSUdfUFJFRU1QVF9OT05FIGlzIG5vdCBzZXQKICMgQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAorQ09ORklHX1BSRUVNUFQ9eQorQ09ORklHX1BSRUVNUFRfUkNVPXkKK0NPTkZJR19SQ1VfVFJBQ0U9eQorQ09ORklHX0dVU0E9eQogCiAjCiAjIEJvb3Qgb3B0aW9ucwpAQCAtMjI1LDI1ICsyNzksMjUgQEAKIENPTkZJR19aRVJPX1BBR0VfT0ZGU0VUPTB4MDAwMDEwMDAKIENPTkZJR19CT09UX0xJTktfT0ZGU0VUPTB4MDA4MDAwMDAKIENPTkZJR19DTURMSU5FX0JPT0w9eQotQ09ORklHX0NNRExJTkU9ImNvbnNvbGU9dHR5U0MzLDExNTIwMCBlYXJseXByaW50az1zZXJpYWwgaWdub3JlX2xvZ2xldmVsIgorQ09ORklHX0NNRExJTkU9ImNvbnNvbGU9dHR5U0MzLDExNTIwMCBpZ25vcmVfbG9nbGV2ZWwgZWFybHlwcmludGs9c2VyaWFsIgogCiAjCiAjIEJ1cyBvcHRpb25zCiAjCi0jIENPTkZJR19DRl9FTkFCTEVSIGlzIG5vdCBzZXQKK0NPTkZJR19DRl9FTkFCTEVSPXkKKyMgQ09ORklHX0NGX0FSRUE1IGlzIG5vdCBzZXQKK0NPTkZJR19DRl9BUkVBNj15CitDT05GSUdfQ0ZfQkFTRV9BRERSPTB4YjgwMDAwMDAKICMgQ09ORklHX0FSQ0hfU1VQUE9SVFNfTVNJIGlzIG5vdCBzZXQKLQotIwotIyBQQ0NBUkQgKFBDTUNJQS9DYXJkQnVzKSBzdXBwb3J0Ci0jCisjIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAogCiAjCiAjIEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzCiAjCiBDT05GSUdfQklORk1UX0ZMQVQ9eQogQ09ORklHX0JJTkZNVF9aRkxBVD15Ci0jIENPTkZJR19CSU5GTVRfU0hBUkVEX0ZMQVQgaXMgbm90IHNldAotIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorQ09ORklHX0JJTkZNVF9TSEFSRURfRkxBVD15CitDT05GSUdfQklORk1UX01JU0M9eQogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTI1MywxNCArMzA3LDI0IEBACiAjCiAjIE5ldHdvcmtpbmcgb3B0aW9ucwogIwotIyBDT05GSUdfUEFDS0VUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VOSVggaXMgbm90IHNldAotIyBDT05GSUdfTkVUX0tFWSBpcyBub3Qgc2V0CitDT05GSUdfUEFDS0VUPXkKKyMgQ09ORklHX1BBQ0tFVF9NTUFQIGlzIG5vdCBzZXQKK0NPTkZJR19VTklYPXkKK0NPTkZJR19YRlJNPXkKKyMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0tFWT15CisjIENPTkZJR19ORVRfS0VZX01JR1JBVEUgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQogIyBDT05GSUdfSVBfTVVMVElDQVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBub3Qgc2V0CiBDT05GSUdfSVBfRklCX0hBU0g9eQotIyBDT05GSUdfSVBfUE5QIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9QTlA9eQorQ09ORklHX0lQX1BOUF9ESENQPXkKKyMgQ09ORklHX0lQX1BOUF9CT09UUCBpcyBub3Qgc2V0CisjIENPTkZJR19JUF9QTlBfUkFSUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAogIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0CkBAIC0yNzMsMTQgKzMzNywxMyBAQAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9CRUVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lORVRfTFJPIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfRElBRyBpcyBub3Qgc2V0CiAjIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgogIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAogIyBDT05GSUdfTkVURklMVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX0RDQ1AgaXMgbm90IHNldApAQCAtMjk3LDEwICszNjAsNiBAQAogIyBDT05GSUdfTEFQQiBpcyBub3Qgc2V0CiAjIENPTkZJR19FQ09ORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOX1JPVVRFUiBpcyBub3Qgc2V0Ci0KLSMKLSMgUW9TIGFuZC9vciBmYWlyIHF1ZXVlaW5nCi0jCiAjIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAogCiAjCkBAIC0zMDgsNiArMzY3LDcgQEAKICMKICMgQ09ORklHX05FVF9QS1RHRU4gaXMgbm90IHNldAogIyBDT05GSUdfSEFNUkFESU8gaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldApAQCAtMzI5LDggKzM4OSwxMCBAQAogIwogIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiAjCitDT05GSUdfVUVWRU5UX0hFTFBFUl9QQVRIPSIvc2Jpbi9ob3RwbHVnIgogIyBDT05GSUdfU1RBTkRBTE9ORSBpcyBub3Qgc2V0CiAjIENPTkZJR19QUkVWRU5UX0ZJUk1XQVJFX0JVSUxEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZXX0xPQURFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfREVWUkVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU19IWVBFUlZJU09SIGlzIG5vdCBzZXQKQEAgLTMzOSwxMSArNDAxLDkgQEAKICMgQ09ORklHX01URF9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfTVREX0NPTkNBVD15CiBDT05GSUdfTVREX1BBUlRJVElPTlM9eQotQ09ORklHX01URF9SRURCT09UX1BBUlRTPXkKLUNPTkZJR19NVERfUkVEQk9PVF9ESVJFQ1RPUllfQkxPQ0s9LTEKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1VOQUxMT0NBVEVEIGlzIG5vdCBzZXQKLSMgQ09ORklHX01URF9SRURCT09UX1BBUlRTX1JFQURPTkxZIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9SRURCT09UX1BBUlRTIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9DTURMSU5FX1BBUlRTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01URF9BUjdfUEFSVFMgaXMgbm90IHNldAogCiAjCiAjIFVzZXIgTW9kdWxlcyBBbmQgVHJhbnNsYXRpb24gTGF5ZXJzCkBAIC0zNTYsNiArNDE2LDcgQEAKICMgQ09ORklHX0lORlRMIGlzIG5vdCBzZXQKICMgQ09ORklHX1JGRF9GVEwgaXMgbm90IHNldAogIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAorIyBDT05GSUdfTVREX09PUFMgaXMgbm90IHNldAogCiAjCiAjIFJBTS9ST00vRmxhc2ggY2hpcCBkcml2ZXJzCkBAIC0zOTAsNyArNDUxLDYgQEAKIENPTkZJR19NVERfUEhZU01BUF9TVEFSVD0weDIwMDAwMDAwCiBDT05GSUdfTVREX1BIWVNNQVBfTEVOPTB4MDEwMDAwMDAKIENPTkZJR19NVERfUEhZU01BUF9CQU5LV0lEVEg9NAotIyBDT05GSUdfTVREX1NPTFVUSU9ORU5HSU5FIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9VQ0xJTlVYIGlzIG5vdCBzZXQKICMgQ09ORklHX01URF9QTEFUUkFNIGlzIG5vdCBzZXQKIApAQCAtNDE4LDEzICs0NzgsMTkgQEAKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX0JMS19ERVY9eQogIyBDT05GSUdfQkxLX0RFVl9DT1dfQ09NTU9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfTE9PUCBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9MT09QPXkKKyMgQ09ORklHX0JMS19ERVZfQ1JZUFRPTE9PUCBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1JBTSBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9SQU09eQorQ09ORklHX0JMS19ERVZfUkFNX0NPVU5UPTE2CitDT05GSUdfQkxLX0RFVl9SQU1fU0laRT00MDk2CisjIENPTkZJR19CTEtfREVWX1hJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19DRFJPTV9QS1RDRFZEIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiBDT05GSUdfTUlTQ19ERVZJQ0VTPXkKLSMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CitDT05GSUdfRUVQUk9NXzkzQ1g2PXkKKyMgQ09ORklHX0VOQ0xPU1VSRV9TRVJWSUNFUyBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9JREU9eQogIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKIAogIwpAQCAtNDQzLDIzICs1MDksMzAgQEAKICMgQ09ORklHX01BQ1ZMQU4gaXMgbm90IHNldAogIyBDT05GSUdfRVFVQUxJWkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RVTiBpcyBub3Qgc2V0CisjIENPTkZJR19WRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1BIWUxJQiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX0VUSEVSTkVUPXkKIENPTkZJR19NSUk9eQorIyBDT05GSUdfQVg4ODc5NiBpcyBub3Qgc2V0CiAjIENPTkZJR19TVE5JQyBpcyBub3Qgc2V0CiBDT05GSUdfU01DOTFYPXkKLUNPTkZJR19ORVRERVZfMTAwMD15Ci1DT05GSUdfTkVUREVWXzEwMDAwPXkKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19aTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19SR01JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfVEFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19FTUFDNCBpcyBub3Qgc2V0CisjIENPTkZJR19CNDQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUREVWXzEwMDAwIGlzIG5vdCBzZXQKIAogIwogIyBXaXJlbGVzcyBMQU4KICMKICMgQ09ORklHX1dMQU5fUFJFODAyMTEgaXMgbm90IHNldAogIyBDT05GSUdfV0xBTl84MDIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJX0xFRFMgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NIQVBFUiBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRDT05TT0xFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFBPTEwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUiBpcyBub3Qgc2V0CkBAIC00NjksMjggKzU0Miw3IEBACiAjCiAjIElucHV0IGRldmljZSBzdXBwb3J0CiAjCi1DT05GSUdfSU5QVVQ9eQotIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKLQotIwotIyBVc2VybGFuZCBpbnRlcmZhY2VzCi0jCi0jIENPTkZJR19JTlBVVF9NT1VTRURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfRVZERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAotCi0jCi0jIElucHV0IERldmljZSBEcml2ZXJzCi0jCi0jIENPTkZJR19JTlBVVF9LRVlCT0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9NT1VTRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9KT1lTVElDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UQUJMRVQgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfTUlTQyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVCBpcyBub3Qgc2V0CiAKICMKICMgSGFyZHdhcmUgSS9PIHBvcnRzCkBAIC01MDIsNiArNTU0LDcgQEAKICMgQ2hhcmFjdGVyIGRldmljZXMKICMKICMgQ09ORklHX1ZUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFVktNRU0gaXMgbm90IHNldAogIyBDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIAogIwpAQCAtNTIwLDEwNiArNTczLDExOSBAQAogIyBDT05GSUdfVU5JWDk4X1BUWVMgaXMgbm90IHNldAogIyBDT05GSUdfTEVHQUNZX1BUWVMgaXMgbm90IHNldAogIyBDT05GSUdfSVBNSV9IQU5ETEVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXX1JBTkRPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKICMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAogIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKLQotIwotIyBTUEkgc3VwcG9ydAotIwogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAogIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKICMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RIRVJNQUwgaXMgbm90IHNldAorIyBDT05GSUdfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFNvbmljcyBTaWxpY29uIEJhY2twbGFuZQorIworQ09ORklHX1NTQl9QT1NTSUJMRT15CisjIENPTkZJR19TU0IgaXMgbm90IHNldAogCiAjCiAjIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKICMKICMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0CisjIENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIAogIwogIyBNdWx0aW1lZGlhIGRldmljZXMKICMKKworIworIyBNdWx0aW1lZGlhIGNvcmUgc3VwcG9ydAorIwogIyBDT05GSUdfVklERU9fREVWIGlzIG5vdCBzZXQKICMgQ09ORklHX0RWQl9DT1JFIGlzIG5vdCBzZXQKLUNPTkZJR19EQUI9eQorIyBDT05GSUdfVklERU9fTUVESUEgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIworIyBDT05GSUdfREFCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQiBpcyBub3Qgc2V0CiAjIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAogCiAjCiAjIERpc3BsYXkgZGV2aWNlIHN1cHBvcnQKICMKICMgQ09ORklHX0RJU1BMQVlfU1VQUE9SVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0Ci1DT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0w9eQotIyBDT05GSUdfRkIgaXMgbm90IHNldAogCiAjCiAjIFNvdW5kCiAjCiAjIENPTkZJR19TT1VORCBpcyBub3Qgc2V0Ci1DT05GSUdfSElEX1NVUFBPUlQ9eQotQ09ORklHX0hJRD15Ci0jIENPTkZJR19ISURfREVCVUcgaXMgbm90IHNldAotQ09ORklHX1VTQl9TVVBQT1JUPXkKLUNPTkZJR19VU0JfQVJDSF9IQVNfSENEPXkKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19PSENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9BUkNIX0hBU19FSENJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQiBpcyBub3Qgc2V0Ci0KLSMKLSMgTk9URTogVVNCX1NUT1JBR0UgZW5hYmxlcyBTQ1NJLCBhbmQgJ1NDU0kgZGlzayBzdXBwb3J0JwotIwotCi0jCi0jIFVTQiBHYWRnZXQgU3VwcG9ydAotIwotIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfU1VQUE9SVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NTUMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAogIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAotIyBDT05GSUdfUlRDX0NMQVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAorQ09ORklHX1JUQ19MSUI9eQorQ09ORklHX1JUQ19DTEFTUz15CitDT05GSUdfUlRDX0hDVE9TWVM9eQorQ09ORklHX1JUQ19IQ1RPU1lTX0RFVklDRT0icnRjMCIKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0CisjIFJUQyBpbnRlcmZhY2VzCiAjCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAogCiAjCi0jIERNQSBDbGllbnRzCisjIFNQSSBSVEMgZHJpdmVycwogIwogCiAjCi0jIERNQSBEZXZpY2VzCisjIFBsYXRmb3JtIFJUQyBkcml2ZXJzCiAjCisjIENPTkZJR19SVENfRFJWX0RTMTUxMSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTU1MyBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0RTMTc0MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1NUSzE3VEE4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQ4VDU5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfVjMwMjAgaXMgbm90IHNldAogCiAjCi0jIFVzZXJzcGFjZSBJL08KKyMgb24tQ1BVIFJUQyBkcml2ZXJzCiAjCitDT05GSUdfUlRDX0RSVl9TSD15CiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCiAjIEZpbGUgc3lzdGVtcwogIwotIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CitDT05GSUdfRVhUMl9GUz15CisjIENPTkZJR19FWFQyX0ZTX1hBVFRSIGlzIG5vdCBzZXQKICMgQ09ORklHX0VYVDNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRVhUNERFVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKICMgQ09ORklHX1hGU19GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19HRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKLUNPTkZJR19ST01GU19GUz15CisjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ETk9USUZZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lOT1RJRlkgaXMgbm90IHNldAogIyBDT05GSUdfUVVPVEEgaXMgbm90IHNldAotIyBDT05GSUdfRE5PVElGWSBpcyBub3Qgc2V0CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQVVUT0ZTNF9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19GVVNFX0ZTIGlzIG5vdCBzZXQKQEAgLTY0MiwxMCArNzA4LDExIEBACiAjCiBDT05GSUdfUFJPQ19GUz15CiBDT05GSUdfUFJPQ19TWVNDVEw9eQotIyBDT05GSUdfU1lTRlMgaXMgbm90IHNldAotIyBDT05GSUdfVE1QRlMgaXMgbm90IHNldAorQ09ORklHX1NZU0ZTPXkKK0NPTkZJR19UTVBGUz15CisjIENPTkZJR19UTVBGU19QT1NJWF9BQ0wgaXMgbm90IHNldAogIyBDT05GSUdfSFVHRVRMQl9QQUdFIGlzIG5vdCBzZXQKLUNPTkZJR19SQU1GUz15CitDT05GSUdfQ09ORklHRlNfRlM9eQogCiAjCiAjIE1pc2NlbGxhbmVvdXMgZmlsZXN5c3RlbXMKQEAgLTY1OCwxOCArNzI1LDI4IEBACiAjIENPTkZJR19CRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0pGRlMyX0ZTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JBTUZTPXkKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorQ09ORklHX1JPTUZTX0ZTPXkKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIwotIyBDT05GSUdfTkZTX0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKK0NPTkZJR19ORlNfRlM9eQorQ09ORklHX05GU19WMz15CisjIENPTkZJR19ORlNfVjNfQUNMIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU19WNCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKK0NPTkZJR19ST09UX05GUz15CitDT05GSUdfTE9DS0Q9eQorQ09ORklHX0xPQ0tEX1Y0PXkKK0NPTkZJR19ORlNfQ09NTU9OPXkKK0NPTkZJR19TVU5SUEM9eQorIyBDT05GSUdfU1VOUlBDX0JJTkQzNCBpcyBub3Qgc2V0CisjIENPTkZJR19SUENTRUNfR1NTX0tSQjUgaXMgbm90IHNldAorIyBDT05GSUdfUlBDU0VDX0dTU19TUEtNMyBpcyBub3Qgc2V0CiAjIENPTkZJR19TTUJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ0lGUyBpcyBub3Qgc2V0CiAjIENPTkZJR19OQ1BfRlMgaXMgbm90IHNldApAQCAtNjgxLDMwICs3NTgsMjAgQEAKICMKICMgQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRCBpcyBub3Qgc2V0CiBDT05GSUdfTVNET1NfUEFSVElUSU9OPXkKLQotIwotIyBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydAotIwogIyBDT05GSUdfTkxTIGlzIG5vdCBzZXQKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKLQotIwotIyBQcm9maWxpbmcgc3VwcG9ydAotIwotQ09ORklHX1BST0ZJTElORz15Ci0jIENPTkZJR19PUFJPRklMRSBpcyBub3Qgc2V0CisjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCiAjIEtlcm5lbCBoYWNraW5nCiAjCiBDT05GSUdfVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVD15CiAjIENPTkZJR19QUklOVEtfVElNRSBpcyBub3Qgc2V0CitDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRD15CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiAjIENPTkZJR19NQUdJQ19TWVNSUSBpcyBub3Qgc2V0CiAjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfRlM9eQogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKICMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKQEAgLTcxMiw3ICs3NzksMTAgQEAKIENPTkZJR19TQ0hFRF9ERUJVRz15CiAjIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKLUNPTkZJR19TTFVCX0RFQlVHX09OPXkKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1BSRUVNUFQ9eQorIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CisjIENPTkZJR19SVF9NVVRFWF9URVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfU1BJTkxPQ0sgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ERUJVR19MT0NLX0FMTE9DIGlzIG5vdCBzZXQKQEAgLTcyMiwzOCArNzkyLDEyMyBAQAogIyBDT05GSUdfREVCVUdfTE9DS0lOR19BUElfU0VMRlRFU1RTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX0tPQkpFQ1QgaXMgbm90IHNldAogQ09ORklHX0RFQlVHX0JVR1ZFUkJPU0U9eQotQ09ORklHX0RFQlVHX0lORk89eQotIyBDT05GSUdfREVCVUdfVk0gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19WTT15CisjIENPTkZJR19ERUJVR19XUklURUNPVU5UIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19MSVNUPXkKKyMgQ09ORklHX0RFQlVHX1NHIGlzIG5vdCBzZXQKIENPTkZJR19GUkFNRV9QT0lOVEVSPXkKLUNPTkZJR19GT1JDRURfSU5MSU5JTkc9eQorIyBDT05GSUdfQk9PVF9QUklOVEtfREVMQVkgaXMgbm90IHNldAorIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NIX1NUQU5EQVJEX0JJT1MgaXMgbm90IHNldAotQ09ORklHX0VBUkxZX1NDSUZfQ09OU09MRT15Ci1DT05GSUdfRUFSTFlfU0NJRl9DT05TT0xFX1BPUlQ9MHhmZmZlOTgwMAotQ09ORklHX0VBUkxZX1BSSU5USz15CisjIENPTkZJR19FQVJMWV9TQ0lGX0NPTlNPTEUgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfQk9PVE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfU1RBQ0tPVkVSRkxPVz15CiBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0U9eQotIyBDT05GSUdfNEtTVEFDS1MgaXMgbm90IHNldAorIyBDT05GSUdfSVJRU1RBQ0tTIGlzIG5vdCBzZXQKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCiAjIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPPXkKKworIworIyBDcnlwdG8gY29yZSBvciBoZWxwZXIKKyMKK0NPTkZJR19DUllQVE9fQUxHQVBJPXkKKyMgQ09ORklHX0NSWVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19HRjEyOE1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTlVMTCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BVVRIRU5DIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCisjIENPTkZJR19DUllQVE9fQ0JDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NUUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fRUNCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MUlcgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1BDQkMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hUUyBpcyBub3Qgc2V0CisKKyMKKyMgSGFzaCBtb2RlcworIworIyBDT05GSUdfQ1JZUFRPX0hNQUMgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19NRDUgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX01JQ0hBRUxfTUlDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEExIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1NIQTUxMiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEdSMTkyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CisKKyMKKyMgQ2lwaGVycworIworIyBDT05GSUdfQ1JZUFRPX0FFUyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19BUkM0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19CTE9XRklTSCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FNRUxMSUEgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBU1Q1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0tIQVpBRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0FMU0EyMCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKworIworIyBDb21wcmVzc2lvbgorIworQ09ORklHX0NSWVBUT19ERUZMQVRFPXkKK0NPTkZJR19DUllQVE9fTFpPPXkKKyMgQ09ORklHX0NSWVBUT19IVyBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQotIyBDT05GSUdfQ1JDX0NDSVRUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQzE2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQ19JVFVfVCBpcyBub3Qgc2V0CisjIENPTkZJR19HRU5FUklDX0ZJTkRfRklSU1RfQklUIGlzIG5vdCBzZXQKK0NPTkZJR19DUkNfQ0NJVFQ9eQorQ09ORklHX0NSQzE2PXkKK0NPTkZJR19DUkNfSVRVX1Q9eQogQ09ORklHX0NSQzMyPXkKLSMgQ09ORklHX0NSQzcgaXMgbm90IHNldAotIyBDT05GSUdfTElCQ1JDMzJDIGlzIG5vdCBzZXQKK0NPTkZJR19DUkM3PXkKK0NPTkZJR19MSUJDUkMzMkM9eQorQ09ORklHX0FVRElUX0dFTkVSSUM9eQogQ09ORklHX1pMSUJfSU5GTEFURT15CitDT05GSUdfWkxJQl9ERUZMQVRFPXkKK0NPTkZJR19MWk9fQ09NUFJFU1M9eQorQ09ORklHX0xaT19ERUNPTVBSRVNTPXkKK0NPTkZJR19QTElTVD15CiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKZGlmZiAtLWdpdCBhL2FyY2gvc2gvY29uZmlncy9zZTc3MDVfZGVmY29uZmlnIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKaW5kZXggODQ3MTdkOC4uNDkwZGNiYyAxMDA2NDQKLS0tIGEvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKKysrIGIvYXJjaC9zaC9jb25maWdzL3NlNzcwNV9kZWZjb25maWcKQEAgLTIzOSw3ICsyMzksNiBAQAogIwogQ09ORklHX1NIX1RNVT15CiBDT05GSUdfU0hfVElNRVJfSVJRPTE2Ci0jIENPTkZJR19OT19JRExFX0haIGlzIG5vdCBzZXQKIENPTkZJR19TSF9QQ0xLX0ZSRVE9MzMzMzMzMzMKIAogIwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9jb25maWdzL3NlNzcxMl9kZWZjb25maWcgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwppbmRleCAyNDBhMWNlLi4yZGQ4M2FmIDEwMDY0NAotLS0gYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZworKysgYi9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzEyX2RlZmNvbmZpZwpAQCAtMjM2LDcgKzIzNiw2IEBACiAjCiBDT05GSUdfU0hfVE1VPXkKIENPTkZJR19TSF9USU1FUl9JUlE9MTYKLSMgQ09ORklHX05PX0lETEVfSFogaXMgbm90IHNldAogQ09ORklHX1NIX1BDTEtfRlJFUT02NjY2NjY2NgogCiAjCmRpZmYgLS1naXQgYS9hcmNoL3NoL2NvbmZpZ3Mvc2U3NzUwX2RlZmNvbmZpZyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCmluZGV4IGM2MGI2ZmQuLjE2Nzc4NmYgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCisrKyBiL2FyY2gvc2gvY29uZmlncy9zZTc3NTBfZGVmY29uZmlnCkBAIC0yMzUsNyArMjM1LDYgQEAKICMKIENPTkZJR19TSF9UTVU9eQogQ09ORklHX1NIX1RJTUVSX0lSUT0xNgotIyBDT05GSUdfTk9fSURMRV9IWiBpcyBub3Qgc2V0CiBDT05GSUdfU0hfUENMS19GUkVRPTMzMzMzMzMzCiAKICMKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL2NwdS9pcnEvaW50Yy1zaDUuYyBiL2FyY2gvc2gva2VybmVsL2NwdS9pcnEvaW50Yy1zaDUuYwppbmRleCBkZTQ1YzZhLi43OWJhYTQ3IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC9jcHUvaXJxL2ludGMtc2g1LmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvY3B1L2lycS9pbnRjLXNoNS5jCkBAIC0yNDIsNiArMjQyLDcgQEAKIAkJCQlyZWcgKz0gODsKIAkJCX0KIAkJfQorCX0KICNlbmRpZgogCiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL2NwdS9zaDQvcHJvYmUuYyBiL2FyY2gvc2gva2VybmVsL2NwdS9zaDQvcHJvYmUuYwppbmRleCBlYmNlYjBkLi5iZTQ5MjY5IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0L3Byb2JlLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNC9wcm9iZS5jCkBAIC0xMzIsNiArMTMyLDcgQEAKIAogCQlzd2l0Y2ggKHBycikgewogCQljYXNlIDB4NTA6CisJCWNhc2UgMHg1MToKIAkJCWJvb3RfY3B1X2RhdGEudHlwZSA9IENQVV9TSDc3MjM7CiAJCQlib290X2NwdV9kYXRhLmZsYWdzIHw9IENQVV9IQVNfRlBVIHwgQ1BVX0hBU19MMl9DQUNIRTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIyLmMgYi9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0YS9zZXR1cC1zaDc3MjIuYwppbmRleCAwNjkzMTQwLi42MmViY2NmIDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0YS9zZXR1cC1zaDc3MjIuYworKysgYi9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0YS9zZXR1cC1zaDc3MjIuYwpAQCAtMTYsNyArMTYsNyBAQAogCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHVzYmZfcmVzb3VyY2VzW10gPSB7CiAJWzBdID0gewotCQkubmFtZQk9ICJVU0JGIiwKKwkJLm5hbWUJPSAibTY2NTkyX3VkYyIsCiAJCS5zdGFydAk9IDB4MDQ0ODAwMDAsCiAJCS5lbmQJPSAweDA0NDgwMEZGLAogCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzcyMy5jIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKaW5kZXggMTY5MjVjZi4uYTA0NzBmMiAxMDA2NDQKLS0tIGEvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKKysrIGIvYXJjaC9zaC9rZXJuZWwvY3B1L3NoNGEvc2V0dXAtc2g3NzIzLmMKQEAgLTE2LDYgKzE2LDIxIEBACiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdF9zY2lfcG9ydCBzY2lfcGxhdGZvcm1fZGF0YVtdID0gewogCXsKKwkJLm1hcGJhc2UgICAgICAgID0gMHhmZmUwMDAwMCwKKwkJLmZsYWdzICAgICAgICAgID0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCS50eXBlICAgICAgICAgICA9IFBPUlRfU0NJRiwKKwkJLmlycXMgICAgICAgICAgID0geyA4MCwgODAsIDgwLCA4MCB9LAorCX0seworCQkubWFwYmFzZSAgICAgICAgPSAweGZmZTEwMDAwLAorCQkuZmxhZ3MgICAgICAgICAgPSBVUEZfQk9PVF9BVVRPQ09ORiwKKwkJLnR5cGUgICAgICAgICAgID0gUE9SVF9TQ0lGLAorCQkuaXJxcyAgICAgICAgICAgPSB7IDgxLCA4MSwgODEsIDgxIH0sCisJfSx7CisJCS5tYXBiYXNlICAgICAgICA9IDB4ZmZlMjAwMDAsCisJCS5mbGFncyAgICAgICAgICA9IFVQRl9CT09UX0FVVE9DT05GLAorCQkudHlwZSAgICAgICAgICAgPSBQT1JUX1NDSUYsCisJCS5pcnFzICAgICAgICAgICA9IHsgODIsIDgyLCA4MiwgODIgfSwKKwl9LHsKIAkJLm1hcGJhc2UJPSAweGE0ZTMwMDAwLAogCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCiAJCS50eXBlCQk9IFBPUlRfU0NJLApAQCAtNzMsOSArODgsMzUgQEAKIAkucmVzb3VyY2UJPSBydGNfcmVzb3VyY2VzLAogfTsKIAorc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzaDc3MjNfdXNiX2hvc3RfcmVzb3VyY2VzW10gPSB7CisJWzBdID0geworCQkubmFtZQk9ICJyOGE2NjU5N19oY2QiLAorCQkuc3RhcnQJPSAweGE0ZDgwMDAwLAorCQkuZW5kCT0gMHhhNGQ4MDBmZiwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCisJfSwKKwlbMV0gPSB7CisJCS5zdGFydAk9IDY1LAorCQkuZW5kCT0gNjUsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBzaDc3MjNfdXNiX2hvc3RfZGV2aWNlID0geworCS5uYW1lCQk9ICJyOGE2NjU5N19oY2QiLAorCS5pZAkJPSAwLAorCS5kZXYgPSB7CisJCS5kbWFfbWFzawkJPSBOVUxMLCAgICAgICAgIC8qICBub3QgdXNlIGRtYSAqLworCQkuY29oZXJlbnRfZG1hX21hc2sJPSAweGZmZmZmZmZmLAorCX0sCisJLm51bV9yZXNvdXJjZXMJPSBBUlJBWV9TSVpFKHNoNzcyM191c2JfaG9zdF9yZXNvdXJjZXMpLAorCS5yZXNvdXJjZQk9IHNoNzcyM191c2JfaG9zdF9yZXNvdXJjZXMsCit9OworCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqc2g3NzIzX2RldmljZXNbXSBfX2luaXRkYXRhID0gewogCSZzY2lfZGV2aWNlLAogCSZydGNfZGV2aWNlLAorCSZzaDc3MjNfdXNiX2hvc3RfZGV2aWNlLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgc2g3NzIzX2RldmljZXNfc2V0dXAodm9pZCkKQEAgLTE1Myw3ICsxOTQsNyBAQAogCUlOVENfVkVDVChWSU9fVk9VSSwweDhFMCksCiAKIAlJTlRDX1ZFQ1QoU0NJRkFfU0NJRkEwLDB4OTAwKSwKLQlJTlRDX1ZFQ1QoVlBVX1ZQVUksMHg5MjApLAorCUlOVENfVkVDVChWUFVfVlBVSSwweDk4MCksCiAJSU5UQ19WRUNUKFRQVV9UUFVJLDB4OUEwKSwKIAlJTlRDX1ZFQ1QoQURDX0FESSwweDlFMCksCiAJSU5UQ19WRUNUKFVTQl9VU0kwLDB4QTIwKSwKQEAgLTI5Miw5ICszMzMsMyBAQAogewogCXJlZ2lzdGVyX2ludGNfY29udHJvbGxlcigmaW50Y19kZXNjKTsKIH0KLQotdm9pZCBfX2luaXQgcGxhdF9tZW1fc2V0dXAodm9pZCkKLXsKLQkvKiBSZWdpc3RlciB0aGUgVVJBTSBzcGFjZSBhcyBOb2RlIDEgKi8KLQlzZXR1cF9ib290bWVtX25vZGUoMSwgMHgwNTVmMDAwMCwgMHgwNTYxMDAwMCk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3NoL2tlcm5lbC9jcHUvc2g0YS9zZXR1cC1zaDc3NjMuYyBiL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzc2My5jCmluZGV4IGFlMmIyMjIuLmYxODlhNTUgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzc2My5jCisrKyBiL2FyY2gvc2gva2VybmVsL2NwdS9zaDRhL3NldHVwLXNoNzc2My5jCkBAIC0yOTEsOCArMjkxLDkgQEAKIH07CiAKIHN0YXRpYyBERUNMQVJFX0lOVENfREVTQyhpbnRjX2lycV9kZXNjLCAic2g3NzYzLWlycSIsIGlycV92ZWN0b3JzLAotCQkJIE5VTEwsIE5VTEwsIGlycV9tYXNrX3JlZ2lzdGVycywgaXJxX3ByaW9fcmVnaXN0ZXJzLAotCQkJIGlycV9zZW5zZV9yZWdpc3RlcnMpOworCQkJTlVMTCwgaXJxX21hc2tfcmVnaXN0ZXJzLCBpcnFfcHJpb19yZWdpc3RlcnMsCisJCQlpcnFfc2Vuc2VfcmVnaXN0ZXJzKTsKKwogCiAvKiBFeHRlcm5hbCBpbnRlcnJ1cHQgcGlucyBpbiBJUkwgbW9kZSAqLwogc3RhdGljIHN0cnVjdCBpbnRjX3ZlY3QgaXJsX3ZlY3RvcnNbXSBfX2luaXRkYXRhID0gewpAQCAtMzI0LDEwICszMjUsMTAgQEAKIH07CiAKIHN0YXRpYyBERUNMQVJFX0lOVENfREVTQyhpbnRjX2lybDc2NTRfZGVzYywgInNoNzc2My1pcmw3NjU0IiwgaXJsX3ZlY3RvcnMsCi0JCQkgTlVMTCwgTlVMTCwgaXJsNzY1NF9tYXNrX3JlZ2lzdGVycywgTlVMTCwgTlVMTCk7CisJCQlOVUxMLCBpcmw3NjU0X21hc2tfcmVnaXN0ZXJzLCBOVUxMLCBOVUxMKTsKIAogc3RhdGljIERFQ0xBUkVfSU5UQ19ERVNDKGludGNfaXJsMzIxMF9kZXNjLCAic2g3NzYzLWlybDMyMTAiLCBpcmxfdmVjdG9ycywKLQkJCSBOVUxMLCBOVUxMLCBpcmwzMjEwX21hc2tfcmVnaXN0ZXJzLCBOVUxMLCBOVUxMKTsKKwkJCU5VTEwsIGlybDMyMTBfbWFza19yZWdpc3RlcnMsIE5VTEwsIE5VTEwpOwogCiAjZGVmaW5lIElOVENfSUNSMAkweGZmZDAwMDAwCiAjZGVmaW5lIElOVENfSU5UTVNLMAkweGZmZDAwMDQ0CmRpZmYgLS1naXQgYS9hcmNoL3NoL2tlcm5lbC9tb2R1bGUuYyBiL2FyY2gvc2gva2VybmVsL21vZHVsZS5jCmluZGV4IGIzZDBhMDMuLjU0ODJlNjUgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gva2VybmVsL21vZHVsZS5jCisrKyBiL2FyY2gvc2gva2VybmVsL21vZHVsZS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAKIHZvaWQgKm1vZHVsZV9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUpCiB7CkBAIC01NiwzNCArNTcsNiBAQAogCXJldHVybiAwOwogfQogCi0jaWZkZWYgQ09ORklHX1NVUEVSSDMyCi0jZGVmaW5lIENPUFlfVU5BTElHTkVEX1dPUkQoc3csIHR3LCBhbGlnbikgXAoteyBcCi0Jdm9pZCAqX19zID0gJihzdyksICpfX3QgPSAmKHR3KTsgXAotCXVuc2lnbmVkIHNob3J0ICpfX3MyID0gX19zLCAqX190MiA9IF9fdDsgXAotCXVuc2lnbmVkIGNoYXIgKl9fczEgPSBfX3MsICpfX3QxID0gX190OyBcCi0Jc3dpdGNoICgoYWxpZ24pKSBcCi0JeyBcCi0JY2FzZSAwOiBcCi0JCSoodW5zaWduZWQgbG9uZyAqKSBfX3QgPSAqKHVuc2lnbmVkIGxvbmcgKikgX19zOyBcCi0JCWJyZWFrOyBcCi0JY2FzZSAyOiBcCi0JCSpfX3QyKysgPSAqX19zMisrOyBcCi0JCSpfX3QyID0gKl9fczI7IFwKLQkJYnJlYWs7IFwKLQlkZWZhdWx0OiBcCi0JCSpfX3QxKysgPSAqX19zMSsrOyBcCi0JCSpfX3QxKysgPSAqX19zMSsrOyBcCi0JCSpfX3QxKysgPSAqX19zMSsrOyBcCi0JCSpfX3QxID0gKl9fczE7IFwKLQkJYnJlYWs7IFwKLQl9IFwKLX0KLSNlbHNlCi0vKiBPbmUgdGhpbmcgU0htZWRpYSBkb2Vzbid0IHNjcmV3IHVwISAqLwotI2RlZmluZSBDT1BZX1VOQUxJR05FRF9XT1JEKHN3LCB0dywgYWxpZ24pCXsgKHR3KSA9IChzdyk7IH0KLSNlbmRpZgotCiBpbnQgYXBwbHlfcmVsb2NhdGVfYWRkKEVsZjMyX1NoZHIgKnNlY2hkcnMsCiAJCSAgIGNvbnN0IGNoYXIgKnN0cnRhYiwKIAkJICAgdW5zaWduZWQgaW50IHN5bWluZGV4LApAQCAtOTYsNyArNjksNiBAQAogCUVsZjMyX0FkZHIgcmVsb2NhdGlvbjsKIAl1aW50MzJfdCAqbG9jYXRpb247CiAJdWludDMyX3QgdmFsdWU7Ci0JaW50IGFsaWduOwogCiAJcHJfZGVidWcoIkFwcGx5aW5nIHJlbG9jYXRlIHNlY3Rpb24gJXUgdG8gJXVcbiIsIHJlbHNlYywKIAkJIHNlY2hkcnNbcmVsc2VjXS5zaF9pbmZvKTsKQEAgLTEwOSw3ICs4MSw2IEBACiAJCXN5bSA9IChFbGYzMl9TeW0gKilzZWNoZHJzW3N5bWluZGV4XS5zaF9hZGRyCiAJCQkrIEVMRjMyX1JfU1lNKHJlbFtpXS5yX2luZm8pOwogCQlyZWxvY2F0aW9uID0gc3ltLT5zdF92YWx1ZSArIHJlbFtpXS5yX2FkZGVuZDsKLQkJYWxpZ24gPSAoaW50KWxvY2F0aW9uICYgMzsKIAogI2lmZGVmIENPTkZJR19TVVBFUkg2NAogCQkvKiBGb3IgdGV4dCBhZGRyZXNzZXMsIGJpdDIgb2YgdGhlIHN0X290aGVyIGZpZWxkIGluZGljYXRlcwpAQCAtMTIyLDE1ICs5MywxNSBAQAogCiAJCXN3aXRjaCAoRUxGMzJfUl9UWVBFKHJlbFtpXS5yX2luZm8pKSB7CiAJCWNhc2UgUl9TSF9ESVIzMjoKLQkJCUNPUFlfVU5BTElHTkVEX1dPUkQgKCpsb2NhdGlvbiwgdmFsdWUsIGFsaWduKTsKKwkJCXZhbHVlID0gZ2V0X3VuYWxpZ25lZChsb2NhdGlvbik7CiAJCQl2YWx1ZSArPSByZWxvY2F0aW9uOwotCQkJQ09QWV9VTkFMSUdORURfV09SRCAodmFsdWUsICpsb2NhdGlvbiwgYWxpZ24pOworCQkJcHV0X3VuYWxpZ25lZCh2YWx1ZSwgbG9jYXRpb24pOwogCQkJYnJlYWs7CiAJCWNhc2UgUl9TSF9SRUwzMjoKIAkJCXJlbG9jYXRpb24gPSAocmVsb2NhdGlvbiAtIChFbGYzMl9BZGRyKSBsb2NhdGlvbik7Ci0JCQlDT1BZX1VOQUxJR05FRF9XT1JEICgqbG9jYXRpb24sIHZhbHVlLCBhbGlnbik7CisJCQl2YWx1ZSA9IGdldF91bmFsaWduZWQobG9jYXRpb24pOwogCQkJdmFsdWUgKz0gcmVsb2NhdGlvbjsKLQkJCUNPUFlfVU5BTElHTkVEX1dPUkQgKHZhbHVlLCAqbG9jYXRpb24sIGFsaWduKTsKKwkJCXB1dF91bmFsaWduZWQodmFsdWUsIGxvY2F0aW9uKTsKIAkJCWJyZWFrOwogCQljYXNlIFJfU0hfSU1NX0xPVzE2OgogCQkJKmxvY2F0aW9uID0gKCpsb2NhdGlvbiAmIH4weDNmZmZjMDApIHwKZGlmZiAtLWdpdCBhL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMgYi9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzMyLmxkcy5TCmluZGV4IGM3MTEzNzguLjdiNGI4MmIgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gva2VybmVsL3ZtbGludXhfMzIubGRzLlMKKysrIGIvYXJjaC9zaC9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwpAQCAtNDQsNyArNDQsNiBAQAogCiAJX2V0ZXh0ID0gLjsJCQkvKiBFbmQgb2YgdGV4dCBzZWN0aW9uICovCiAKLQlCVUdfVEFCTEUKIAlOT1RFUwogCVJPX0RBVEEoUEFHRV9TSVpFKQogCmRpZmYgLS1naXQgYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TIGIvYXJjaC9zaC9rZXJuZWwvdm1saW51eF82NC5sZHMuUwppbmRleCBkMWUxNzcwLi4zM2ZhNDY0IDEwMDY0NAotLS0gYS9hcmNoL3NoL2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCisrKyBiL2FyY2gvc2gva2VybmVsL3ZtbGludXhfNjQubGRzLlMKQEAgLTY1LDcgKzY1LDYgQEAKIAogCV9ldGV4dCA9IC47CQkJLyogRW5kIG9mIHRleHQgc2VjdGlvbiAqLwogCi0JQlVHX1RBQkxFCiAJTk9URVMgCiAJUk9fREFUQShQQUdFX1NJWkUpCiAKZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL2FwYy5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKaW5kZXggZDA2YTQwNS4uNjcwNzQyMiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvYXBjLmMKQEAgLTEwLDYgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wbS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC03NSw2ICs3Niw3IEBACiAKIHN0YXRpYyBpbnQgYXBjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmYpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9rZXJuZWwvbGVkLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9sZWQuYwppbmRleCA1OWU5MzQ0Li5hZGFhZWQ0IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9sZWQuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9sZWQuYwpAQCAtMiw2ICsyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CkBAIC00NSwyMSArNDYsMjIgQEAKIAlhZGRfdGltZXIoJmxlZF9ibGlua190aW1lcik7CiB9CiAKLXN0YXRpYyBpbnQgbGVkX3JlYWRfcHJvYyhjaGFyICpidWYsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgY291bnQsCi0JCQkgaW50ICplb2YsIHZvaWQgKmRhdGEpCitzdGF0aWMgaW50IGxlZF9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQogewotCWludCBsZW4gPSAwOwotCiAJaWYgKGdldF9hdXhpbygpICYgQVVYSU9fTEVEKQotCQlsZW4gPSBzcHJpbnRmKGJ1ZiwgIm9uXG4iKTsKKwkJc2VxX3B1dHMobSwgIm9uXG4iKTsKIAllbHNlCi0JCWxlbiA9IHNwcmludGYoYnVmLCAib2ZmXG4iKTsKLQotCXJldHVybiBsZW47CisJCXNlcV9wdXRzKG0sICJvZmZcbiIpOworCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGxlZF93cml0ZV9wcm9jKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmZmVyLAotCQkJICB1bnNpZ25lZCBsb25nIGNvdW50LCB2b2lkICpkYXRhKQorc3RhdGljIGludCBsZWRfcHJvY19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBzaW5nbGVfb3BlbihmaWxlLCBsZWRfcHJvY19zaG93LCBOVUxMKTsKK30KKworc3RhdGljIHNzaXplX3QgbGVkX3Byb2Nfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJCQkgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKIAljaGFyICpidWYgPSBOVUxMOwogCkBAIC0xMDMsNiArMTA1LDE1IEBACiAJcmV0dXJuIGNvdW50OwogfQogCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBsZWRfcHJvY19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSBsZWRfcHJvY19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCisJLndyaXRlCQk9IGxlZF9wcm9jX3dyaXRlLAorfTsKKwogc3RhdGljIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqbGVkOwogCiAjZGVmaW5lIExFRF9WRVJTSU9OCSIwLjEiCkBAIC0xMTIsMTIgKzEyMyw5IEBACiAJaW5pdF90aW1lcigmbGVkX2JsaW5rX3RpbWVyKTsKIAlsZWRfYmxpbmtfdGltZXIuZnVuY3Rpb24gPSBsZWRfYmxpbms7CiAKLQlsZWQgPSBjcmVhdGVfcHJvY19lbnRyeSgibGVkIiwgMCwgTlVMTCk7CisJbGVkID0gcHJvY19jcmVhdGUoImxlZCIsIDAsIE5VTEwsICZsZWRfcHJvY19mb3BzKTsKIAlpZiAoIWxlZCkKIAkJcmV0dXJuIC1FTk9NRU07Ci0KLQlsZWQtPnJlYWRfcHJvYyA9IGxlZF9yZWFkX3Byb2M7IC8qIHJlYWRlciBmdW5jdGlvbiAqLwotCWxlZC0+d3JpdGVfcHJvYyA9IGxlZF93cml0ZV9wcm9jOyAvKiB3cml0ZXIgZnVuY3Rpb24gKi8KIAlsZWQtPm93bmVyID0gVEhJU19NT0RVTEU7CiAKIAlwcmludGsoS0VSTl9JTkZPCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQvS2NvbmZpZyBiL2FyY2gvc3BhcmM2NC9LY29uZmlnCmluZGV4IGViMzZmM2IuLmZjYTkyNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9LY29uZmlnCisrKyBiL2FyY2gvc3BhcmM2NC9LY29uZmlnCkBAIC0xMSw2ICsxMSw4IEBACiBjb25maWcgU1BBUkM2NAogCWJvb2wKIAlkZWZhdWx0IHkKKwlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRQorCXNlbGVjdCBIQVZFX0ZUUkFDRQogCXNlbGVjdCBIQVZFX0lERQogCXNlbGVjdCBIQVZFX0xNQgogCXNlbGVjdCBIQVZFX0FSQ0hfS0dEQgpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L0tjb25maWcuZGVidWcgYi9hcmNoL3NwYXJjNjQvS2NvbmZpZy5kZWJ1ZwppbmRleCA2YTRkMjhhLi5kNmQzMmQxIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQvS2NvbmZpZy5kZWJ1ZworKysgYi9hcmNoL3NwYXJjNjQvS2NvbmZpZy5kZWJ1ZwpAQCAtMzMsNyArMzMsNyBAQAogCiBjb25maWcgTUNPVU5UCiAJYm9vbAotCWRlcGVuZHMgb24gU1RBQ0tfREVCVUcKKwlkZXBlbmRzIG9uIFNUQUNLX0RFQlVHIHx8IEZUUkFDRQogCWRlZmF1bHQgeQogCiBjb25maWcgRlJBTUVfUE9JTlRFUgpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gvc3BhcmM2NC9rZXJuZWwvTWFrZWZpbGUKaW5kZXggZWM0ZjVlYi4uNDE4YjU3OCAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9NYWtlZmlsZQorKysgYi9hcmNoL3NwYXJjNjQva2VybmVsL01ha2VmaWxlCkBAIC0xNCw2ICsxNCw3IEBACiAJCSAgIHBvd2VyLm8gc2J1cy5vIHNwYXJjNjRfa3N5bXMubyBjaG1jLm8gXAogCQkgICB2aXNlbXVsLm8gcHJvbS5vIG9mX2RldmljZS5vIGh2YXBpLm8gc3N0YXRlLm8gbWRlc2MubwogCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpICs9IGZ0cmFjZS5vCiBvYmotJChDT05GSUdfU1RBQ0tUUkFDRSkgKz0gc3RhY2t0cmFjZS5vCiBvYmotJChDT05GSUdfUENJKQkgKz0gZWJ1cy5vIHBjaV9jb21tb24ubyBcCiAJCQkgICAgcGNpX3BzeWNoby5vIHBjaV9zYWJyZS5vIHBjaV9zY2hpem8ubyBcCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjNjQva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9mdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjk4ZDBhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9mdHJhY2UuYwpAQCAtMCwwICsxLDk0IEBACisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9oYXJkaXJxLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworc3RhdGljIGNvbnN0IHUzMiBmdHJhY2Vfbm9wID0gMHgwMTAwMDAwMDsKKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCkKK3sKKwlyZXR1cm4gKGNoYXIgKikmZnRyYWNlX25vcDsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdGF0aWMgdTMyIGNhbGw7CisJczMyIG9mZjsKKworCW9mZiA9ICgoczMyKWFkZHIgLSAoczMyKWlwKTsKKwljYWxsID0gMHg0MDAwMDAwMCB8ICgodTMyKW9mZiA+PiAyKTsKKworCXJldHVybiAodW5zaWduZWQgY2hhciAqKSAmY2FsbDsKK30KKworbm90cmFjZSBpbnQKK2Z0cmFjZV9tb2RpZnlfY29kZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBjaGFyICpvbGRfY29kZSwKKwkJICAgdW5zaWduZWQgY2hhciAqbmV3X2NvZGUpCit7CisJdTMyIG9sZCA9ICoodTMyICopb2xkX2NvZGU7CisJdTMyIG5ldyA9ICoodTMyICopbmV3X2NvZGU7CisJdTMyIHJlcGxhY2VkOworCWludCBmYXVsdGVkOworCisJX19hc21fXyBfX3ZvbGF0aWxlX18oCisJIjE6CWNhcwlbJVtpcF1dLCAlW29sZF0sICVbbmV3XVxuIgorCSIJZmx1c2gJJVtpcF1cbiIKKwkiCW1vdgkwLCAlW2ZhdWx0ZWRdXG4iCisJIjI6XG4iCisJIgkuc2VjdGlvbiAuZml4dXAsI2FsbG9jLCNleGVjaW5zdHJcbiIKKwkiCS5hbGlnbgk0XG4iCisJIjM6CXNldGhpCSUlaGkoMmIpLCAlW2ZhdWx0ZWRdXG4iCisJIglqbXBsCSVbZmF1bHRlZF0gKyAlJWxvKDJiKSwgJSVnMFxuIgorCSIJIG1vdgkxLCAlW2ZhdWx0ZWRdXG4iCisJIgkucHJldmlvdXNcbiIKKwkiCS5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCJcbiIKKwkiCS5hbGlnbgk0XG4iCisJIgkud29yZAkxYiwgM2JcbiIKKwkiCS5wcmV2aW91c1xuIgorCTogIj1yIiAocmVwbGFjZWQpLCBbZmF1bHRlZF0gIj1yIiAoZmF1bHRlZCkKKwk6IFtuZXddICIwIiAobmV3KSwgW29sZF0gInIiIChvbGQpLCBbaXBdICJyIiAoaXApCisJOiAibWVtb3J5Iik7CisKKwlpZiAocmVwbGFjZWQgIT0gb2xkICYmIHJlcGxhY2VkICE9IG5ldykKKwkJZmF1bHRlZCA9IDI7CisKKwlyZXR1cm4gZmF1bHRlZDsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9ICh1bnNpZ25lZCBsb25nKSgmZnRyYWNlX2NhbGwpOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCisJbWVtY3B5KG9sZCwgJmZ0cmFjZV9jYWxsLCBNQ09VTlRfSU5TTl9TSVpFKTsKKwluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCAodW5zaWduZWQgbG9uZylmdW5jKTsKKwlyZXR1cm4gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7Cit9CisKK25vdHJhY2UgaW50IGZ0cmFjZV9tY291bnRfc2V0KHVuc2lnbmVkIGxvbmcgKmRhdGEpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9IChsb25nKSgmbWNvdW50X2NhbGwpOworCXVuc2lnbmVkIGxvbmcgKmFkZHIgPSBkYXRhOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCisJLyoKKwkgKiBSZXBsYWNlIHRoZSBtY291bnQgc3R1YiB3aXRoIGEgcG9pbnRlciB0byB0aGUKKwkgKiBpcCByZWNvcmRlciBmdW5jdGlvbi4KKwkgKi8KKwltZW1jcHkob2xkLCAmbWNvdW50X2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICphZGRyKTsKKwkqYWRkciA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworCisJcmV0dXJuIDA7Cit9CisKKworaW50IF9faW5pdCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKQoreworCWZ0cmFjZV9tY291bnRfc2V0KGRhdGEpOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9zcGFyYzY0X2tzeW1zLmMgYi9hcmNoL3NwYXJjNjQva2VybmVsL3NwYXJjNjRfa3N5bXMuYwppbmRleCA4YWMwYjk5Li40OWQzZWE1MCAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYzY0L2tlcm5lbC9zcGFyYzY0X2tzeW1zLmMKKysrIGIvYXJjaC9zcGFyYzY0L2tlcm5lbC9zcGFyYzY0X2tzeW1zLmMKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxhc20vbnM4NzMwMy5oPgogI2luY2x1ZGUgPGFzbS90aW1lci5oPgogI2luY2x1ZGUgPGFzbS9jcHVkYXRhLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiBzdHJ1Y3QgcG9sbCB7CiAJaW50IGZkOwpAQCAtMTExLDggKzExMiw3IEBACiBFWFBPUlRfU1lNQk9MKHNtcF9jYWxsX2Z1bmN0aW9uKTsKICNlbmRpZiAvKiBDT05GSUdfU01QICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19NQ09VTlQpCi1leHRlcm4gdm9pZCBfbWNvdW50KHZvaWQpOworI2lmZGVmIENPTkZJR19NQ09VTlQKIEVYUE9SVF9TWU1CT0woX21jb3VudCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvYXJjaC9zcGFyYzY0L2tlcm5lbC90aW1lLmMgYi9hcmNoL3NwYXJjNjQva2VybmVsL3RpbWUuYwppbmRleCBlNWQyMzg5Li5iZWRjNGMxIDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjNjQva2VybmVsL3RpbWUuYworKysgYi9hcmNoL3NwYXJjNjQva2VybmVsL3RpbWUuYwpAQCAtMTEsNiArMTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CkBAIC0xNjU5LDEwICsxNjYwLDE0IEBACiAKIHN0YXRpYyBpbnQgbWluaV9ydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZiAobWluaV9ydGNfc3RhdHVzICYgUlRDX0lTX09QRU4pCisJbG9ja19rZXJuZWwoKTsKKwlpZiAobWluaV9ydGNfc3RhdHVzICYgUlRDX0lTX09QRU4pIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAogCW1pbmlfcnRjX3N0YXR1cyB8PSBSVENfSVNfT1BFTjsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmM2NC9saWIvbWNvdW50LlMgYi9hcmNoL3NwYXJjNjQvbGliL21jb3VudC5TCmluZGV4IDllNDUzNGIuLjc3MzVhN2EgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmM2NC9saWIvbWNvdW50LlMKKysrIGIvYXJjaC9zcGFyYzY0L2xpYi9tY291bnQuUwpAQCAtMjgsMTAgKzI4LDEzIEBACiAJLnNraXAJCU9WU1RBQ0tTSVpFCiAjZW5kaWYKIAkudGV4dAotCS5hbGlnbiAzMgotCS5nbG9ibCBtY291bnQsIF9tY291bnQKLW1jb3VudDoKKwkuYWxpZ24JCTMyCisJLmdsb2JsCQlfbWNvdW50CisJLnR5cGUJCV9tY291bnQsI2Z1bmN0aW9uCisJLmdsb2JsCQltY291bnQKKwkudHlwZQkJbWNvdW50LCNmdW5jdGlvbgogX21jb3VudDoKK21jb3VudDoKICNpZmRlZiBDT05GSUdfU1RBQ0tfREVCVUcKIAkvKgogCSAqIENoZWNrIHdoZXRoZXIgJXNwIGlzIGRhbmdlcm91c2x5IGxvdy4KQEAgLTU1LDYgKzU4LDUzIEBACiAJIG9yCQklZzMsICVsbyhwYW5pY3N0cmluZyksICVvMAogCWNhbGwJCXByb21faGFsdAogCSBub3AKKzE6CiAjZW5kaWYKLTE6CXJldGwKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJbW92CQklbzcsICVvMAorCS5nbG9ibAkJbWNvdW50X2NhbGwKK21jb3VudF9jYWxsOgorCWNhbGwJCWZ0cmFjZV9zdHViCisJIG1vdgkJJW8wLCAlbzcKKyNlbHNlCisJc2V0aGkJCSVoaShmdHJhY2VfdHJhY2VfZnVuY3Rpb24pLCAlZzEKKwlzZXRoaQkJJWhpKGZ0cmFjZV9zdHViKSwgJWcyCisJbGR4CQlbJWcxICsgJWxvKGZ0cmFjZV90cmFjZV9mdW5jdGlvbildLCAlZzEKKwlvcgkJJWcyLCAlbG8oZnRyYWNlX3N0dWIpLCAlZzIKKwljbXAJCSVnMSwgJWcyCisJYmUscG4JCSVpY2MsIDFmCisJIG1vdgkJJWk3LCAlbzEKKwlqbXBsCQklZzEsICVnMAorCSBtb3YJCSVvNywgJW8wCisJLyogbm90IHJlYWNoZWQgKi8KKzE6CisjZW5kaWYKKyNlbmRpZgorCXJldGwKIAkgbm9wCisJLnNpemUJCV9tY291bnQsLi1fbWNvdW50CisJLnNpemUJCW1jb3VudCwuLW1jb3VudAorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCS5nbG9ibAkJZnRyYWNlX3N0dWIKKwkudHlwZQkJZnRyYWNlX3N0dWIsI2Z1bmN0aW9uCitmdHJhY2Vfc3R1YjoKKwlyZXRsCisJIG5vcAorCS5zaXplCQlmdHJhY2Vfc3R1YiwuLWZ0cmFjZV9zdHViCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJLmdsb2JsCQlmdHJhY2VfY2FsbGVyCisJLnR5cGUJCWZ0cmFjZV9jYWxsZXIsI2Z1bmN0aW9uCitmdHJhY2VfY2FsbGVyOgorCW1vdgkJJWk3LCAlbzEKKwltb3YJCSVvNywgJW8wCisJLmdsb2JsCQlmdHJhY2VfY2FsbAorZnRyYWNlX2NhbGw6CisJY2FsbAkJZnRyYWNlX3N0dWIKKwkgbW92CQklbzAsICVvNworCXJldGwKKwkgbm9wCisJLnNpemUJCWZ0cmFjZV9jYWxsZXIsLi1mdHJhY2VfY2FsbGVyCisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9NYWtlZmlsZSBiL2FyY2gvdW0vTWFrZWZpbGUKaW5kZXggZGJlYWIxNS4uY2E0MDM5NyAxMDA2NDQKLS0tIGEvYXJjaC91bS9NYWtlZmlsZQorKysgYi9hcmNoL3VtL01ha2VmaWxlCkBAIC03Nyw3ICs3Nyw2IEBACiBLRVJORUxfREVGSU5FUyA9ICQoc3RyaXAgLURlcnJubz1rZXJuZWxfZXJybm8gLURzaWdwcm9jbWFzaz1rZXJuZWxfc2lncHJvY21hc2sgXAogCQkJIC1EbWt0aW1lPWtlcm5lbF9ta3RpbWUgJChBUkNIX0tFUk5FTF9ERUZJTkVTKSkKIEtCVUlMRF9DRkxBR1MgKz0gJChLRVJORUxfREVGSU5FUykKLUtCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwtZm5vLXVuaXQtYXQtYS10aW1lLCkKIAogUEhPTlkgKz0gbGludXgKIApkaWZmIC0tZ2l0IGEvYXJjaC91bS9NYWtlZmlsZS1pMzg2IGIvYXJjaC91bS9NYWtlZmlsZS1pMzg2CmluZGV4IDU2MWUzNzMuLjMwMmNiZTUgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vTWFrZWZpbGUtaTM4NgorKysgYi9hcmNoL3VtL01ha2VmaWxlLWkzODYKQEAgLTMyLDQgKzMyLDExIEBACiAjIGFuIHVucmVzb2x2ZWQgcmVmZXJlbmNlLgogY2ZsYWdzLXkgKz0gLWZmcmVlc3RhbmRpbmcKIAorIyBEaXNhYmxlIHVuaXQtYXQtYS10aW1lIG1vZGUgb24gcHJlLWdjYy00LjAgY29tcGlsZXJzLCBpdCBtYWtlcyBnY2MgdXNlCisjIGEgbG90IG1vcmUgc3RhY2sgZHVlIHRvIHRoZSBsYWNrIG9mIHNoYXJpbmcgb2Ygc3RhY2tsb3RzLiAgQWxzbywgZ2NjCisjIDQuMy4wIG5lZWRzIC1mdW5pdC1hdC1hLXRpbWUgZm9yIGV4dGVybiBpbmxpbmUgZnVuY3Rpb25zLgorS0JVSUxEX0NGTEFHUyArPSAkKHNoZWxsIGlmIFsgJChjYWxsIGNjLXZlcnNpb24pIC1sdCAwNDAwIF0gOyB0aGVuIFwKKwkJCWVjaG8gJChjYWxsIGNjLW9wdGlvbiwtZm5vLXVuaXQtYXQtYS10aW1lKTsgXAorCQkJZWxzZSBlY2hvICQoY2FsbCBjYy1vcHRpb24sLWZ1bml0LWF0LWEtdGltZSk7IGZpIDspCisKIEtCVUlMRF9DRkxBR1MgKz0gJChjZmxhZ3MteSkKZGlmZiAtLWdpdCBhL2FyY2gvdW0vTWFrZWZpbGUteDg2XzY0IGIvYXJjaC91bS9NYWtlZmlsZS14ODZfNjQKaW5kZXggOGVkMzYyZi4uYTljZDdlNyAxMDA2NDQKLS0tIGEvYXJjaC91bS9NYWtlZmlsZS14ODZfNjQKKysrIGIvYXJjaC91bS9NYWtlZmlsZS14ODZfNjQKQEAgLTIxLDMgKzIxLDYgQEAKIAogTElOSy0kKENPTkZJR19MRF9TQ1JJUFRfRFlOKSArPSAtV2wsLXJwYXRoLC9saWI2NAogTElOSy15ICs9IC1tNjQKKworIyBEbyB1bml0LWF0LWEtdGltZSB1bmNvbmRpdGlvbmFsbHkgb24geDg2XzY0LCBmb2xsb3dpbmcgdGhlIGhvc3QKK0tCVUlMRF9DRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwtZnVuaXQtYXQtYS10aW1lKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL2hhcmRkb2dfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL2hhcmRkb2dfa2Vybi5jCmluZGV4IGE5YWQ0YmQuLmQzMzI1MDMgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy9oYXJkZG9nX2tlcm4uYworKysgYi9hcmNoL3VtL2RyaXZlcnMvaGFyZGRvZ19rZXJuLmMKQEAgLTY2LDYgKzY2LDcgQEAKIAlpbnQgZXJyID0gLUVCVVNZOwogCWNoYXIgKnNvY2sgPSBOVUxMOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmxvY2spOwogCWlmKHRpbWVyX2FsaXZlKQogCQlnb3RvIGVycjsKQEAgLTgyLDkgKzgzLDExIEBACiAKIAl0aW1lcl9hbGl2ZSA9IDE7CiAJc3Bpbl91bmxvY2soJmxvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiBlcnI6CiAJc3Bpbl91bmxvY2soJmxvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvbW1hcHBlcl9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvbW1hcHBlcl9rZXJuLmMKaW5kZXggNjdiMmY1NS4uZWIyNDAzMiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2ZXJzL21tYXBwZXJfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy9tbWFwcGVyX2tlcm4uYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlICJtZW1fdXNlci5oIgogCkBAIC03Nyw2ICs3OCw3IEBACiAKIHN0YXRpYyBpbnQgbW1hcHBlcl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9yYW5kb20uYyBiL2FyY2gvdW0vZHJpdmVycy9yYW5kb20uYwppbmRleCA0OTQ5MDQ0Li42ZWFiYjcwIDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvcmFuZG9tLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL3JhbmRvbS5jCkBAIC03LDYgKzcsNyBAQAogICogb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpbmNvcnBvcmF0ZWQgaGVyZWluIGJ5IHJlZmVyZW5jZS4KICAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgpAQCAtMzMsNiArMzQsOCBAQAogCiBzdGF0aWMgaW50IHJuZ19kZXZfb3BlbiAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKKwogCS8qIGVuZm9yY2UgcmVhZC1vbmx5IGFjY2VzcyB0byB0aGlzIGNocmRldiAqLwogCWlmICgoZmlscC0+Zl9tb2RlICYgRk1PREVfUkVBRCkgPT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9hcmNoL3VtL2RyaXZlcnMvdWJkX2tlcm4uYyBiL2FyY2gvdW0vZHJpdmVycy91YmRfa2Vybi5jCmluZGV4IDQ0YWQxNjAuLmI1OGZiODkgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vZHJpdmVycy91YmRfa2Vybi5jCisrKyBiL2FyY2gvdW0vZHJpdmVycy91YmRfa2Vybi5jCkBAIC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiaXJxX3VzZXIuaCIKICNpbmNsdWRlICJpcnFfa2Vybi5oIgogI2luY2x1ZGUgInViZF91c2VyLmgiCi0jaW5jbHVkZSAia2Vybl91dGlsLmgiCiAjaW5jbHVkZSAib3MuaCIKICNpbmNsdWRlICJtZW0uaCIKICNpbmNsdWRlICJtZW1fa2Vybi5oIgpkaWZmIC0tZ2l0IGEvYXJjaC91bS9pbmNsdWRlL29zLmggYi9hcmNoL3VtL2luY2x1ZGUvb3MuaAppbmRleCBlMjcxNmFjLi5kYjViZTQ2IDEwMDY0NAotLS0gYS9hcmNoL3VtL2luY2x1ZGUvb3MuaAorKysgYi9hcmNoL3VtL2luY2x1ZGUvb3MuaApAQCAtMjk5LDYgKzI5OSw2IEBACiBleHRlcm4gaW50IGdldF9wdHkodm9pZCk7CiAKIC8qIHN5cy0kQVJDSC90YXNrX3NpemUuYyAqLwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb3NfZ2V0X3Rhc2tfc2l6ZSh2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9zX2dldF90b3BfYWRkcmVzcyh2b2lkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3VtL2tlcm5lbC91bV9hcmNoLmMgYi9hcmNoL3VtL2tlcm5lbC91bV9hcmNoLmMKaW5kZXggOWRiODViMi4uOGQ4NDI1MCAxMDA2NDQKLS0tIGEvYXJjaC91bS9rZXJuZWwvdW1fYXJjaC5jCisrKyBiL2FyY2gvdW0va2VybmVsL3VtX2FyY2guYwpAQCAtMjc0LDcgKzI3NCw3IEBACiAJaWYgKGhhdmVfcm9vdCA9PSAwKQogCQlhZGRfYXJnKERFRkFVTFRfQ09NTUFORF9MSU5FKTsKIAotCWhvc3RfdGFza19zaXplID0gb3NfZ2V0X3Rhc2tfc2l6ZSgpOworCWhvc3RfdGFza19zaXplID0gb3NfZ2V0X3RvcF9hZGRyZXNzKCk7CiAJLyoKIAkgKiBUQVNLX1NJWkUgbmVlZHMgdG8gYmUgUEdESVJfU0laRSBhbGlnbmVkIG9yIGVsc2UgZXhpdF9tbWFwIGNyYXBzCiAJICogb3V0CmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L2hlbHBlci5jIGIvYXJjaC91bS9vcy1MaW51eC9oZWxwZXIuYwppbmRleCA3NGNhN2FhLi4zMDg2MGI4IDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L2hlbHBlci5jCisrKyBiL2FyY2gvdW0vb3MtTGludXgvaGVscGVyLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpbWl0cy5oPgogI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICNpbmNsdWRlIDxzeXMvd2FpdC5oPgogI2luY2x1ZGUgImtlcm5fY29uc3RhbnRzLmgiCmRpZmYgLS1naXQgYS9hcmNoL3VtL29zLUxpbnV4L3NrYXMvcHJvY2Vzcy5jIGIvYXJjaC91bS9vcy1MaW51eC9za2FzL3Byb2Nlc3MuYwppbmRleCA2YmUwMjhjLi4xNzJhZDhmIDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L3NrYXMvcHJvY2Vzcy5jCisrKyBiL2FyY2gvdW0vb3MtTGludXgvc2thcy9wcm9jZXNzLmMKQEAgLTU1LDcgKzU1LDcgQEAKICAqIFNpZ25hbHMgdGhhdCBhcmUgT0sgdG8gcmVjZWl2ZSBpbiB0aGUgc3R1YiAtIHdlJ2xsIGp1c3QgY29udGludWUgaXQuCiAgKiBTSUdXSU5DSCB3aWxsIGhhcHBlbiB3aGVuIFVNTCBpcyBpbnNpZGUgYSBkZXRhY2hlZCBzY3JlZW4uCiAgKi8KLSNkZWZpbmUgU1RVQl9TSUdfTUFTSyAoMSA8PCBTSUdWVEFMUk0pCisjZGVmaW5lIFNUVUJfU0lHX01BU0sgKCgxIDw8IFNJR1ZUQUxSTSkgfCAoMSA8PCBTSUdXSU5DSCkpCiAKIC8qIFNpZ25hbHMgdGhhdCB0aGUgc3R1YiB3aWxsIGZpbmlzaCB3aXRoIC0gYW55dGhpbmcgZWxzZSBpcyBhbiBlcnJvciAqLwogI2RlZmluZSBTVFVCX0RPTkVfTUFTSyAoMSA8PCBTSUdUUkFQKQpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zdGFydF91cC5jIGIvYXJjaC91bS9vcy1MaW51eC9zdGFydF91cC5jCmluZGV4IGI0YjM2ZTAuLjE4M2RiMjYgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc3RhcnRfdXAuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N0YXJ0X3VwLmMKQEAgLTEyMSw4ICsxMjEsMTAgQEAKIHsKIAlpbnQgc3RhdHVzLCBuLCByZXQgPSAwOwogCi0JaWYgKHB0cmFjZShQVFJBQ0VfQ09OVCwgcGlkLCAwLCAwKSA8IDApCi0JCWZhdGFsX3BlcnJvcigic3RvcF9wdHJhY2VkX2NoaWxkIDogcHRyYWNlIGZhaWxlZCIpOworCWlmIChwdHJhY2UoUFRSQUNFX0NPTlQsIHBpZCwgMCwgMCkgPCAwKSB7CisJCXBlcnJvcigic3RvcF9wdHJhY2VkX2NoaWxkIDogcHRyYWNlIGZhaWxlZCIpOworCQlyZXR1cm4gLTE7CisJfQogCUNBVENIX0VJTlRSKG4gPSB3YWl0cGlkKHBpZCwgJnN0YXR1cywgMCkpOwogCWlmICghV0lGRVhJVEVEKHN0YXR1cykgfHwgKFdFWElUU1RBVFVTKHN0YXR1cykgIT0gZXhpdGNvZGUpKSB7CiAJCWludCBleGl0X3dpdGggPSBXRVhJVFNUQVRVUyhzdGF0dXMpOwpAQCAtMjEyLDcgKzIxNCw3IEBACiAJaWYgKG4gPCAwKQogCQlmYXRhbF9wZXJyb3IoImNoZWNrX3N5c2VtdSA6IHdhaXQgZmFpbGVkIik7CiAJaWYgKCFXSUZTVE9QUEVEKHN0YXR1cykgfHwgKFdTVE9QU0lHKHN0YXR1cykgIT0gU0lHVFJBUCkpCi0JCWZhdGFsKCJjaGVja19zeXNlbXUgOiBleHBlY3RlZCBTSUdUUkFQLCBnb3Qgc3RhdHVzID0gJWQiLAorCQlmYXRhbCgiY2hlY2tfc3lzZW11IDogZXhwZWN0ZWQgU0lHVFJBUCwgZ290IHN0YXR1cyA9ICVkXG4iLAogCQkgICAgICBzdGF0dXMpOwogCiAJaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHUywgcGlkLCAwLCByZWdzKSA8IDApCkBAIC0yNTQsOSArMjU2LDExIEBACiAKIAkJaWYgKFdJRlNUT1BQRUQoc3RhdHVzKSAmJgogCQkgICAgKFdTVE9QU0lHKHN0YXR1cykgPT0gKFNJR1RSQVB8MHg4MCkpKSB7Ci0JCQlpZiAoIWNvdW50KQotCQkJCWZhdGFsKCJjaGVja19wdHJhY2UgOiBTWVNFTVVfU0lOR0xFU1RFUCAiCi0JCQkJICAgICAgImRvZXNuJ3Qgc2luZ2xlc3RlcCIpOworCQkJaWYgKCFjb3VudCkgeworCQkJCW5vbl9mYXRhbCgiY2hlY2tfcHRyYWNlIDogU1lTRU1VX1NJTkdMRVNURVAgIgorCQkJCQkgICJkb2Vzbid0IHNpbmdsZXN0ZXAiKTsKKwkJCQlnb3RvIGZhaWw7CisJCQl9CiAJCQluID0gcHRyYWNlKFBUUkFDRV9QT0tFVVNSLCBwaWQsIFBUX1NZU0NBTExfUkVUX09GRlNFVCwKIAkJCQkgICBvc19nZXRwaWQoKSk7CiAJCQlpZiAobiA8IDApCkBAIC0yNjYsOSArMjcwLDEyIEBACiAJCX0KIAkJZWxzZSBpZiAoV0lGU1RPUFBFRChzdGF0dXMpICYmIChXU1RPUFNJRyhzdGF0dXMpID09IFNJR1RSQVApKQogCQkJY291bnQrKzsKLQkJZWxzZQotCQkJZmF0YWwoImNoZWNrX3B0cmFjZSA6IGV4cGVjdGVkIFNJR1RSQVAgb3IgIgotCQkJICAgICAgIihTSUdUUkFQIHwgMHg4MCksIGdvdCBzdGF0dXMgPSAlZCIsIHN0YXR1cyk7CisJCWVsc2UgeworCQkJbm9uX2ZhdGFsKCJjaGVja19wdHJhY2UgOiBleHBlY3RlZCBTSUdUUkFQIG9yICIKKwkJCQkgICIoU0lHVFJBUCB8IDB4ODApLCBnb3Qgc3RhdHVzID0gJWRcbiIsCisJCQkJICBzdGF0dXMpOworCQkJZ290byBmYWlsOworCQl9CiAJfQogCWlmIChzdG9wX3B0cmFjZWRfY2hpbGQocGlkLCAwLCAwKSA8IDApCiAJCWdvdG8gZmFpbF9zdG9wcGVkOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni9yZWdpc3RlcnMuYyBiL2FyY2gvdW0vb3MtTGludXgvc3lzLWkzODYvcmVnaXN0ZXJzLmMKaW5kZXggYjQ4N2NiZS4uMjI5ZjdhNSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni9yZWdpc3RlcnMuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N5cy1pMzg2L3JlZ2lzdGVycy5jCkBAIC02LDcgKzYsNyBAQAogCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8YXNtL3VzZXIuaD4KKyNpbmNsdWRlIDxzeXMvdXNlci5oPgogI2luY2x1ZGUgImtlcm5fY29uc3RhbnRzLmgiCiAjaW5jbHVkZSAibG9uZ2ptcC5oIgogI2luY2x1ZGUgInVzZXIuaCIKQEAgLTc2LDcgKzc2LDcgQEAKIAogdm9pZCBhcmNoX2luaXRfcmVnaXN0ZXJzKGludCBwaWQpCiB7Ci0Jc3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QgZnB4X3JlZ3M7CisJc3RydWN0IHVzZXJfZnB4cmVnc19zdHJ1Y3QgZnB4X3JlZ3M7CiAJaW50IGVycjsKIAogCWVyciA9IHB0cmFjZShQVFJBQ0VfR0VURlBYUkVHUywgcGlkLCAwLCAmZnB4X3JlZ3MpOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni90YXNrX3NpemUuYyBiL2FyY2gvdW0vb3MtTGludXgvc3lzLWkzODYvdGFza19zaXplLmMKaW5kZXggY2NiNDliMC4uYmUwNGMxZSAxMDA2NDQKLS0tIGEvYXJjaC91bS9vcy1MaW51eC9zeXMtaTM4Ni90YXNrX3NpemUuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N5cy1pMzg2L3Rhc2tfc2l6ZS5jCkBAIC02Myw3ICs2Myw3IEBACiAJcmV0dXJuIG9rOwogfQogCi11bnNpZ25lZCBsb25nIG9zX2dldF90YXNrX3NpemUodm9pZCkKK3Vuc2lnbmVkIGxvbmcgb3NfZ2V0X3RvcF9hZGRyZXNzKHZvaWQpCiB7CiAJc3RydWN0IHNpZ2FjdGlvbiBzYSwgb2xkOwogCXVuc2lnbmVkIGxvbmcgYm90dG9tID0gMDsKQEAgLTc2LDkgKzc2LDkgQEAKIAkgKiBob3N0cywgYnV0IHNob3VsZG4ndCBodXJ0IG90aGVyd2lzZS4KIAkgKi8KIAl1bnNpZ25lZCBsb25nIHRvcCA9IDB4ZmZmZmQwMDAgPj4gVU1fS0VSTl9QQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgdGVzdDsKKwl1bnNpZ25lZCBsb25nIHRlc3QsIG9yaWdpbmFsOwogCi0JcHJpbnRmKCJMb2NhdGluZyB0aGUgdG9wIG9mIHRoZSBhZGRyZXNzIHNwYWNlIC4uLiAiKTsKKwlwcmludGYoIkxvY2F0aW5nIHRoZSBib3R0b20gb2YgdGhlIGFkZHJlc3Mgc3BhY2UgLi4uICIpOwogCWZmbHVzaChzdGRvdXQpOwogCiAJLyoKQEAgLTg5LDE2ICs4OSwzMSBAQAogCXNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKIAlzYS5zYV9mbGFncyA9IFNBX05PREVGRVI7CiAJaWYgKHNpZ2FjdGlvbihTSUdTRUdWLCAmc2EsICZvbGQpKSB7Ci0JCXBlcnJvcigib3NfZ2V0X3Rhc2tfc2l6ZSIpOworCQlwZXJyb3IoIm9zX2dldF90b3BfYWRkcmVzcyIpOwogCQlleGl0KDEpOwogCX0KIAotCWlmICghcGFnZV9vayhib3R0b20pKSB7Ci0JCWZwcmludGYoc3RkZXJyLCAiQWRkcmVzcyAweCV4IG5vIGdvb2Q/XG4iLAotCQkJYm90dG9tIDw8IFVNX0tFUk5fUEFHRV9TSElGVCk7CisJLyogTWFudWFsbHkgc2NhbiB0aGUgYWRkcmVzcyBzcGFjZSwgYm90dG9tLXVwLCB1bnRpbCB3ZSBmaW5kCisJICogdGhlIGZpcnN0IHZhbGlkIHBhZ2UgKG9yIHJ1biBvdXQgb2YgdGhlbSkuCisJICovCisJZm9yIChib3R0b20gPSAwOyBib3R0b20gPCB0b3A7IGJvdHRvbSsrKSB7CisJCWlmIChwYWdlX29rKGJvdHRvbSkpCisJCQlicmVhazsKKwl9CisKKwkvKiBJZiB3ZSd2ZSBnb3QgdGhpcyBmYXIsIHdlIHJhbiBvdXQgb2YgcGFnZXMuICovCisJaWYgKGJvdHRvbSA9PSB0b3ApIHsKKwkJZnByaW50ZihzdGRlcnIsICJVbmFibGUgdG8gZGV0ZXJtaW5lIGJvdHRvbSBvZiBhZGRyZXNzICIKKwkJCSJzcGFjZS5cbiIpOwogCQlleGl0KDEpOwogCX0KIAorCXByaW50ZigiMHgleFxuIiwgYm90dG9tIDw8IFVNX0tFUk5fUEFHRV9TSElGVCk7CisJcHJpbnRmKCJMb2NhdGluZyB0aGUgdG9wIG9mIHRoZSBhZGRyZXNzIHNwYWNlIC4uLiAiKTsKKwlmZmx1c2goc3Rkb3V0KTsKKworCW9yaWdpbmFsID0gYm90dG9tOworCiAJLyogVGhpcyBjb3VsZCBoYXBwZW4gd2l0aCBhIDRHLzRHIHNwbGl0ICovCiAJaWYgKHBhZ2Vfb2sodG9wKSkKIAkJZ290byBvdXQ7CkBAIC0xMTQsNyArMTI5LDcgQEAKIG91dDoKIAkvKiBSZXN0b3JlIHRoZSBvbGQgU0lHU0VHViBoYW5kbGluZyAqLwogCWlmIChzaWdhY3Rpb24oU0lHU0VHViwgJm9sZCwgTlVMTCkpIHsKLQkJcGVycm9yKCJvc19nZXRfdGFza19zaXplIik7CisJCXBlcnJvcigib3NfZ2V0X3RvcF9hZGRyZXNzIik7CiAJCWV4aXQoMSk7CiAJfQogCXRvcCA8PD0gVU1fS0VSTl9QQUdFX1NISUZUOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC9zeXMteDg2XzY0L3Rhc2tfc2l6ZS5jIGIvYXJjaC91bS9vcy1MaW51eC9zeXMteDg2XzY0L3Rhc2tfc2l6ZS5jCmluZGV4IGZhZDZmNTcuLjI2YTBkZDEgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0vb3MtTGludXgvc3lzLXg4Nl82NC90YXNrX3NpemUuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3N5cy14ODZfNjQvdGFza19zaXplLmMKQEAgLTEsNCArMSw0IEBACi11bnNpZ25lZCBsb25nIG9zX2dldF90YXNrX3NpemUodW5zaWduZWQgbG9uZyBzaGlmdCkKK3Vuc2lnbmVkIGxvbmcgb3NfZ2V0X3RvcF9hZGRyZXNzKHVuc2lnbmVkIGxvbmcgc2hpZnQpCiB7CiAJLyogVGhlIG9sZCB2YWx1ZSBvZiBDT05GSUdfVE9QX0FERFIgKi8KIAlyZXR1cm4gMHg3ZmMwMDAwMDAwOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9vcy1MaW51eC90aW1lLmMgYi9hcmNoL3VtL29zLUxpbnV4L3RpbWUuYwppbmRleCBiZWU5OGY0Li5kZWM1Njc4IDEwMDY0NAotLS0gYS9hcmNoL3VtL29zLUxpbnV4L3RpbWUuYworKysgYi9hcmNoL3VtL29zLUxpbnV4L3RpbWUuYwpAQCAtMTA2LDYgKzEwNiwxMCBAQAogCXVuc2lnbmVkIGxvbmcgbG9uZyB0aGlzX3RpY2sgPSBvc19uc2VjcygpOwogCWludCBvbmVfdGljayA9IFVNX05TRUNfUEVSX1NFQyAvIFVNX0haOwogCisJLyogUHJvdGVjdGlvbiBhZ2FpbnN0IHRoZSBob3N0J3MgdGltZSBnb2luZyBiYWNrd2FyZHMgKi8KKwlpZiAoKGxhc3RfdGljayAhPSAwKSAmJiAodGhpc190aWNrIDwgbGFzdF90aWNrKSkKKwkJdGhpc190aWNrID0gbGFzdF90aWNrOworCiAJaWYgKGxhc3RfdGljayA9PSAwKQogCQlsYXN0X3RpY2sgPSB0aGlzX3RpY2sgLSBvbmVfdGljazsKIApAQCAtMTQ4LDYgKzE1Miw5IEBACiAJCXN0YXJ0X3VzZWNzID0gdXNlYzsKIAogCXN0YXJ0X3VzZWNzIC09IHNrZXcgLyBVTV9OU0VDX1BFUl9VU0VDOworCWlmIChzdGFydF91c2VjcyA8IDApCisJCXN0YXJ0X3VzZWNzID0gMDsKKwogCXR2ID0gKChzdHJ1Y3QgdGltZXZhbCkgeyAudHZfc2VjICA9IHN0YXJ0X3VzZWNzIC8gVU1fVVNFQ19QRVJfU0VDLAogCQkJCSAudHZfdXNlYyA9IHN0YXJ0X3VzZWNzICUgVU1fVVNFQ19QRVJfU0VDIH0pOwogCWludGVydmFsID0gKChzdHJ1Y3QgaXRpbWVydmFsKSB7IHsgMCwgdXNlYyB9LCB0diB9KTsKZGlmZiAtLWdpdCBhL2FyY2gvdW0vc3lzLXg4Nl82NC9rc3ltcy5jIGIvYXJjaC91bS9zeXMteDg2XzY0L2tzeW1zLmMKaW5kZXggNjYwNDY3My4uMWRiMmZjZSAxMDA2NDQKLS0tIGEvYXJjaC91bS9zeXMteDg2XzY0L2tzeW1zLmMKKysrIGIvYXJjaC91bS9zeXMteDg2XzY0L2tzeW1zLmMKQEAgLTMsNSArMyw5IEBACiAjaW5jbHVkZSA8YXNtL2NoZWNrc3VtLmg+CiAKIC8qWFhYOiB3ZSBuZWVkIHRoZW0gYmVjYXVzZSB0aGV5IHdvdWxkIGJlIGV4cG9ydGVkIGJ5IHg4Nl82NCAqLworI2lmIChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fID49IDMpIHx8IF9fR05VQ19fID4gNAorRVhQT1JUX1NZTUJPTChtZW1jcHkpOworI2Vsc2UKIEVYUE9SVF9TWU1CT0woX19tZW1jcHkpOworI2VuZGlmCiBFWFBPUlRfU1lNQk9MKGNzdW1fcGFydGlhbCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZwppbmRleCBmZTM2MWFlLi4yNjQyYjRiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9LY29uZmlnCisrKyBiL2FyY2gveDg2L0tjb25maWcKQEAgLTIzLDIwICsyMywxNSBAQAogCXNlbGVjdCBIQVZFX09QUk9GSUxFCiAJc2VsZWN0IEhBVkVfS1BST0JFUwogCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMKKwlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRQorCXNlbGVjdCBIQVZFX0ZUUkFDRQogCXNlbGVjdCBIQVZFX0tWTSBpZiAoKFg4Nl8zMiAmJiAhWDg2X1ZPWUFHRVIgJiYgIVg4Nl9WSVNXUyAmJiAhWDg2X05VTUFRKSB8fCBYODZfNjQpCiAJc2VsZWN0IEhBVkVfQVJDSF9LR0RCIGlmICFYODZfVk9ZQUdFUgogCi1jb25maWcgREVGQ09ORklHX0xJU1QKK2NvbmZpZyBBUkNIX0RFRkNPTkZJRwogCXN0cmluZwotCWRlcGVuZHMgb24gWDg2XzMyCi0Jb3B0aW9uIGRlZmNvbmZpZ19saXN0Ci0JZGVmYXVsdCAiYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZyIKLQotY29uZmlnIERFRkNPTkZJR19MSVNUCi0Jc3RyaW5nCi0JZGVwZW5kcyBvbiBYODZfNjQKLQlvcHRpb24gZGVmY29uZmlnX2xpc3QKLQlkZWZhdWx0ICJhcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWciCisJZGVmYXVsdCAiYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZyIgaWYgWDg2XzMyCisJZGVmYXVsdCAiYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnIiBpZiBYODZfNjQKIAogCiBjb25maWcgR0VORVJJQ19MT0NLQlJFQUsKQEAgLTEyOCw3ICsxMjMsNyBAQAogCWRlZl9ib29sIHkKIAogY29uZmlnIEhBVkVfU0VUVVBfUEVSX0NQVV9BUkVBCi0JZGVmX2Jvb2wgWDg2XzY0IHx8IChYODZfU01QICYmICFYODZfVk9ZQUdFUikKKwlkZWZfYm9vbCBYODZfNjRfU01QIHx8IChYODZfU01QICYmICFYODZfVk9ZQUdFUikKIAogY29uZmlnIEhBVkVfQ1BVTUFTS19PRl9DUFVfTUFQCiAJZGVmX2Jvb2wgWDg2XzY0X1NNUApAQCAtMTg4LDEyICsxODMsMTIgQEAKIGNvbmZpZyBYODZfSFQKIAlib29sCiAJZGVwZW5kcyBvbiBTTVAKLQlkZXBlbmRzIG9uIChYODZfMzIgJiYgIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpKSB8fCBYODZfNjQKKwlkZXBlbmRzIG9uIChYODZfMzIgJiYgIVg4Nl9WT1lBR0VSKSB8fCBYODZfNjQKIAlkZWZhdWx0IHkKIAogY29uZmlnIFg4Nl9CSU9TX1JFQk9PVAogCWJvb2wKLQlkZXBlbmRzIG9uICFYODZfVklTV1MgJiYgIVg4Nl9WT1lBR0VSCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAlkZWZhdWx0IHkKIAogY29uZmlnIFg4Nl9UUkFNUE9MSU5FCkBAIC0yMzcsNiArMjMyLDI2IEBACiAKIAkgIElmIHlvdSBkb24ndCBrbm93IHdoYXQgdG8gZG8gaGVyZSwgc2F5IE4uCiAKK2NvbmZpZyBYODZfRklORF9TTVBfQ09ORklHCisJZGVmX2Jvb2wgeQorCWRlcGVuZHMgb24gWDg2X01QUEFSU0UgfHwgWDg2X1ZPWUFHRVIKKworaWYgQUNQSQorY29uZmlnIFg4Nl9NUFBBUlNFCisJZGVmX2Jvb2wgeQorCWJvb2wgIkVuYWJsZSBNUFMgdGFibGUiCisJZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQworCWhlbHAKKwkgIEZvciBvbGQgc21wIHN5c3RlbXMgdGhhdCBkbyBub3QgaGF2ZSBwcm9wZXIgYWNwaSBzdXBwb3J0LiBOZXdlciBzeXN0ZW1zCisJICAoZXNwIHdpdGggNjRiaXQgY3B1cykgd2l0aCBhY3BpIHN1cHBvcnQsIE1BRFQgYW5kIERTRFQgd2lsbCBvdmVycmlkZSBpdAorZW5kaWYKKworaWYgIUFDUEkKK2NvbmZpZyBYODZfTVBQQVJTRQorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFg4Nl9MT0NBTF9BUElDCitlbmRpZgorCiBjaG9pY2UKIAlwcm9tcHQgIlN1YmFyY2hpdGVjdHVyZSBUeXBlIgogCWRlZmF1bHQgWDg2X1BDCkBAIC0yNTgsNyArMjczLDcgQEAKIAogY29uZmlnIFg4Nl9WT1lBR0VSCiAJYm9vbCAiVm95YWdlciAoTkNSKSIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAoU01QIHx8IEJST0tFTikKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAoU01QIHx8IEJST0tFTikgJiYgIVBDSQogCWhlbHAKIAkgIFZveWFnZXIgaXMgYW4gTUNBLWJhc2VkIDMyLXdheSBjYXBhYmxlIFNNUCBhcmNoaXRlY3R1cmUgcHJvcHJpZXRhcnkKIAkgIHRvIE5DUiBDb3JwLiAgTWFjaGluZSBjbGFzc2VzIDM0NXgvMzV4eC80MTAwLzUxeHggYXJlIFZveWFnZXItYmFzZWQuCkBAIC0yNjgsMTYgKzI4MywyNyBAQAogCSAgSWYgeW91IGRvIG5vdCBzcGVjaWZpY2FsbHkga25vdyB5b3UgaGF2ZSBhIFZveWFnZXIgYmFzZWQgbWFjaGluZSwKIAkgIHNheSBOIGhlcmUsIG90aGVyd2lzZSB0aGUga2VybmVsIHlvdSBidWlsZCB3aWxsIG5vdCBiZSBib290YWJsZS4KIAorY29uZmlnIFg4Nl9HRU5FUklDQVJDSAorICAgICAgIGJvb2wgIkdlbmVyaWMgYXJjaGl0ZWN0dXJlIgorCWRlcGVuZHMgb24gWDg2XzMyCisgICAgICAgaGVscAorICAgICAgICAgIFRoaXMgb3B0aW9uIGNvbXBpbGVzIGluIHRoZSBOVU1BUSwgU3VtbWl0LCBiaWdzbXAsIEVTNzAwMCwgZGVmYXVsdAorCSAgc3ViYXJjaGl0ZWN0dXJlcy4gIEl0IGlzIGludGVuZGVkIGZvciBhIGdlbmVyaWMgYmluYXJ5IGtlcm5lbC4KKwkgIGlmIHlvdSBzZWxlY3QgdGhlbSBhbGwsIGtlcm5lbCB3aWxsIHByb2JlIGl0IG9uZSBieSBvbmUuIGFuZCB3aWxsCisJICBmYWxsYmFjayB0byBkZWZhdWx0LgorCitpZiBYODZfR0VORVJJQ0FSQ0gKKwogY29uZmlnIFg4Nl9OVU1BUQogCWJvb2wgIk5VTUFRIChJQk0vU2VxdWVudCkiCi0JZGVwZW5kcyBvbiBTTVAgJiYgWDg2XzMyCisJZGVwZW5kcyBvbiBTTVAgJiYgWDg2XzMyICYmIFBDSSAmJiBYODZfTVBQQVJTRQogCXNlbGVjdCBOVU1BCiAJaGVscAotCSAgVGhpcyBvcHRpb24gaXMgdXNlZCBmb3IgZ2V0dGluZyBMaW51eCB0byBydW4gb24gYSAoSUJNL1NlcXVlbnQpIE5VTUEKLQkgIG11bHRpcXVhZCBib3guIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoYXQgcHJvY2Vzc29ycyBhcmUgYm9vdHN0cmFwcGVkLAotCSAgYW5kIHVzZXMgQ2x1c3RlcmVkIExvZ2ljYWwgQVBJQyBhZGRyZXNzaW5nIG1vZGUgaW5zdGVhZCBvZiBGbGF0IExvZ2ljYWwuCi0JICBZb3Ugd2lsbCBuZWVkIGEgbmV3IGx5bnhlci5lbGYgZmlsZSB0byBmbGFzaCB5b3VyIGZpcm13YXJlIHdpdGggLSBzZW5kCi0JICBlbWFpbCB0byA8TWFydGluLkJsaWdoQHVzLmlibS5jb20+LgorCSAgVGhpcyBvcHRpb24gaXMgdXNlZCBmb3IgZ2V0dGluZyBMaW51eCB0byBydW4gb24gYSBOVU1BUSAoSUJNL1NlcXVlbnQpCisJICBOVU1BIG11bHRpcXVhZCBib3guIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoYXQgcHJvY2Vzc29ycyBhcmUKKwkgIGJvb3RzdHJhcHBlZCwgYW5kIHVzZXMgQ2x1c3RlcmVkIExvZ2ljYWwgQVBJQyBhZGRyZXNzaW5nIG1vZGUgaW5zdGVhZAorCSAgb2YgRmxhdCBMb2dpY2FsLiAgWW91IHdpbGwgbmVlZCBhIG5ldyBseW54ZXIuZWxmIGZpbGUgdG8gZmxhc2ggeW91cgorCSAgZmlybXdhcmUgd2l0aCAtIHNlbmQgZW1haWwgdG8gPE1hcnRpbi5CbGlnaEB1cy5pYm0uY29tPi4KIAogY29uZmlnIFg4Nl9TVU1NSVQKIAlib29sICJTdW1taXQvRVhBIChJQk0geDQ0MCkiCkBAIC0yODYsNDYgKzMxMiwyMSBAQAogCSAgVGhpcyBvcHRpb24gaXMgbmVlZGVkIGZvciBJQk0gc3lzdGVtcyB0aGF0IHVzZSB0aGUgU3VtbWl0L0VYQSBjaGlwc2V0LgogCSAgSW4gcGFydGljdWxhciwgaXQgaXMgbmVlZGVkIGZvciB0aGUgeDQ0MC4KIAotCSAgSWYgeW91IGRvbid0IGhhdmUgb25lIG9mIHRoZXNlIGNvbXB1dGVycywgeW91IHNob3VsZCBzYXkgTiBoZXJlLgotCSAgSWYgeW91IHdhbnQgdG8gYnVpbGQgYSBOVU1BIGtlcm5lbCwgeW91IG11c3Qgc2VsZWN0IEFDUEkuCi0KLWNvbmZpZyBYODZfQklHU01QCi0JYm9vbCAiU3VwcG9ydCBmb3Igb3RoZXIgc3ViLWFyY2ggU01QIHN5c3RlbXMgd2l0aCBtb3JlIHRoYW4gOCBDUFVzIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFNNUAotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGlzIG5lZWRlZCBmb3IgdGhlIHN5c3RlbXMgdGhhdCBoYXZlIG1vcmUgdGhhbiA4IENQVXMKLQkgIGFuZCBpZiB0aGUgc3lzdGVtIGlzIG5vdCBvZiBhbnkgc3ViLWFyY2ggdHlwZSBhYm92ZS4KLQotCSAgSWYgeW91IGRvbid0IGhhdmUgc3VjaCBhIHN5c3RlbSwgeW91IHNob3VsZCBzYXkgTiBoZXJlLgotCi1jb25maWcgWDg2X1ZJU1dTCi0JYm9vbCAiU0dJIDMyMC81NDAgKFZpc3VhbCBXb3Jrc3RhdGlvbikiCi0JZGVwZW5kcyBvbiBYODZfMzIKLQloZWxwCi0JICBUaGUgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBzZXJpZXMgaXMgYW4gSUEzMi1iYXNlZCB3b3Jrc3RhdGlvbgotCSAgYmFzZWQgb24gU0dJIHN5c3RlbXMgY2hpcHMgd2l0aCBzb21lIGxlZ2FjeSBQQyBoYXJkd2FyZSBhdHRhY2hlZC4KLQotCSAgU2F5IFkgaGVyZSB0byBjcmVhdGUgYSBrZXJuZWwgdG8gcnVuIG9uIHRoZSBTR0kgMzIwIG9yIDU0MC4KLQotCSAgQSBrZXJuZWwgY29tcGlsZWQgZm9yIHRoZSBWaXN1YWwgV29ya3N0YXRpb24gd2lsbCBub3QgcnVuIG9uIFBDcwotCSAgYW5kIHZpY2UgdmVyc2EuIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL3NnaS12aXN3cy50eHQ+IGZvciBkZXRhaWxzLgotCi1jb25maWcgWDg2X0dFTkVSSUNBUkNICi0gICAgICAgYm9vbCAiR2VuZXJpYyBhcmNoaXRlY3R1cmUgKFN1bW1pdCwgYmlnc21wLCBFUzcwMDAsIGRlZmF1bHQpIgotCWRlcGVuZHMgb24gWDg2XzMyCi0gICAgICAgaGVscAotICAgICAgICAgIFRoaXMgb3B0aW9uIGNvbXBpbGVzIGluIHRoZSBTdW1taXQsIGJpZ3NtcCwgRVM3MDAwLCBkZWZhdWx0IHN1YmFyY2hpdGVjdHVyZXMuCi0JICBJdCBpcyBpbnRlbmRlZCBmb3IgYSBnZW5lcmljIGJpbmFyeSBrZXJuZWwuCi0JICBJZiB5b3Ugd2FudCBhIE5VTUEga2VybmVsLCBzZWxlY3QgQUNQSS4gICBXZSBuZWVkIFNSQVQgZm9yIE5VTUEuCi0KIGNvbmZpZyBYODZfRVM3MDAwCiAJYm9vbCAiU3VwcG9ydCBmb3IgVW5pc3lzIEVTNzAwMCBJQTMyIHNlcmllcyIKIAlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBTTVAKIAloZWxwCiAJICBTdXBwb3J0IGZvciBVbmlzeXMgRVM3MDAwIHN5c3RlbXMuICBTYXkgJ1knIGhlcmUgaWYgdGhpcyBrZXJuZWwgaXMKIAkgIHN1cHBvc2VkIHRvIHJ1biBvbiBhbiBJQTMyLWJhc2VkIFVuaXN5cyBFUzcwMDAgc3lzdGVtLgotCSAgT25seSBjaG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IGhhdmUgc3VjaCBhIHN5c3RlbSwgb3RoZXJ3aXNlIHlvdQotCSAgc2hvdWxkIHNheSBOIGhlcmUuCisKK2NvbmZpZyBYODZfQklHU01QCisJYm9vbCAiU3VwcG9ydCBmb3IgYmlnIFNNUCBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDggQ1BVcyIKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBTTVAKKwloZWxwCisJICBUaGlzIG9wdGlvbiBpcyBuZWVkZWQgZm9yIHRoZSBzeXN0ZW1zIHRoYXQgaGF2ZSBtb3JlIHRoYW4gOCBDUFVzCisJICBhbmQgaWYgdGhlIHN5c3RlbSBpcyBub3Qgb2YgYW55IHN1Yi1hcmNoIHR5cGUgYWJvdmUuCisKK2VuZGlmCiAKIGNvbmZpZyBYODZfUkRDMzIxWAogCWJvb2wgIlJEQyBSLTMyMXggU29DIgpAQCAtMzQ0LDcgKzM0NSw3IEBACiBjb25maWcgWDg2X1ZTTVAKIAlib29sICJTdXBwb3J0IGZvciBTY2FsZU1QIHZTTVAiCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiBYODZfNjQKKwlkZXBlbmRzIG9uIFg4Nl82NCAmJiBQQ0kKIAloZWxwCiAJICBTdXBwb3J0IGZvciBTY2FsZU1QIHZTTVAgc3lzdGVtcy4gIFNheSAnWScgaGVyZSBpZiB0aGlzIGtlcm5lbCBpcwogCSAgc3VwcG9zZWQgdG8gcnVuIG9uIHRoZXNlIEVNNjRULWJhc2VkIG1hY2hpbmVzLiAgT25seSBjaG9vc2UgdGhpcyBvcHRpb24KQEAgLTM1Miw2ICszNTMsMTggQEAKIAogZW5kY2hvaWNlCiAKK2NvbmZpZyBYODZfVklTV1MKKwlib29sICJTR0kgMzIwLzU0MCAoVmlzdWFsIFdvcmtzdGF0aW9uKSIKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQQ0kgJiYgIVg4Nl9WT1lBR0VSICYmIFg4Nl9NUFBBUlNFICYmIFBDSV9HT0RJUkVDVAorCWhlbHAKKwkgIFRoZSBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIHNlcmllcyBpcyBhbiBJQTMyLWJhc2VkIHdvcmtzdGF0aW9uCisJICBiYXNlZCBvbiBTR0kgc3lzdGVtcyBjaGlwcyB3aXRoIHNvbWUgbGVnYWN5IFBDIGhhcmR3YXJlIGF0dGFjaGVkLgorCisJICBTYXkgWSBoZXJlIHRvIGNyZWF0ZSBhIGtlcm5lbCB0byBydW4gb24gdGhlIFNHSSAzMjAgb3IgNTQwLgorCisJICBBIGtlcm5lbCBjb21waWxlZCBmb3IgdGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiB3aWxsIHJ1biBvbiBnZW5lcmFsCisJICBQQ3MgYXMgd2VsbC4gU2VlIDxmaWxlOkRvY3VtZW50YXRpb24vc2dpLXZpc3dzLnR4dD4gZm9yIGRldGFpbHMuCisKIGNvbmZpZyBTQ0hFRF9OT19OT19PTUlUX0ZSQU1FX1BPSU5URVIKIAlkZWZfYm9vbCB5CiAJcHJvbXB0ICJTaW5nbGUtZGVwdGggV0NIQU4gb3V0cHV0IgpAQCAtMzgwLDcgKzM5Myw3IEBACiAJYm9vbCAiVk1JIEd1ZXN0IHN1cHBvcnQiCiAJc2VsZWN0IFBBUkFWSVJUCiAJZGVwZW5kcyBvbiBYODZfMzIKLQlkZXBlbmRzIG9uICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQorCWRlcGVuZHMgb24gIVg4Nl9WT1lBR0VSCiAJaGVscAogCSAgVk1JIHByb3ZpZGVzIGEgcGFyYXZpcnR1YWxpemVkIGludGVyZmFjZSB0byB0aGUgVk13YXJlIEVTWCBzZXJ2ZXIKIAkgIChpdCBjb3VsZCBiZSB1c2VkIGJ5IG90aGVyIGh5cGVydmlzb3JzIGluIHRoZW9yeSB0b28sIGJ1dCBpcyBub3QKQEAgLTM5MCw3ICs0MDMsOCBAQAogY29uZmlnIEtWTV9DTE9DSwogCWJvb2wgIktWTSBwYXJhdmlydHVhbGl6ZWQgY2xvY2siCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlzZWxlY3QgUEFSQVZJUlRfQ0xPQ0sKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgIFR1cm5pbmcgb24gdGhpcyBvcHRpb24gd2lsbCBhbGxvdyB5b3UgdG8gcnVuIGEgcGFyYXZpcnR1YWxpemVkIGNsb2NrCiAJICB3aGVuIHJ1bm5pbmcgb3ZlciB0aGUgS1ZNIGh5cGVydmlzb3IuIEluc3RlYWQgb2YgcmVseWluZyBvbiBhIFBJVApAQCAtNDAxLDcgKzQxNSw3IEBACiBjb25maWcgS1ZNX0dVRVNUCiAJYm9vbCAiS1ZNIEd1ZXN0IHN1cHBvcnQiCiAJc2VsZWN0IFBBUkFWSVJUCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCWhlbHAKIAkgVGhpcyBvcHRpb24gZW5hYmxlcyB2YXJpb3VzIG9wdGltaXphdGlvbnMgZm9yIHJ1bm5pbmcgdW5kZXIgdGhlIEtWTQogCSBoeXBlcnZpc29yLgpAQCAtNDEwLDYwICs0MjQsNDUgQEAKIAogY29uZmlnIFBBUkFWSVJUCiAJYm9vbCAiRW5hYmxlIHBhcmF2aXJ0dWFsaXphdGlvbiBjb2RlIgotCWRlcGVuZHMgb24gIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBUaGlzIGNoYW5nZXMgdGhlIGtlcm5lbCBzbyBpdCBjYW4gbW9kaWZ5IGl0c2VsZiB3aGVuIGl0IGlzIHJ1bgogCSAgdW5kZXIgYSBoeXBlcnZpc29yLCBwb3RlbnRpYWxseSBpbXByb3ZpbmcgcGVyZm9ybWFuY2Ugc2lnbmlmaWNhbnRseQogCSAgb3ZlciBmdWxsIHZpcnR1YWxpemF0aW9uLiAgSG93ZXZlciwgd2hlbiBydW4gd2l0aG91dCBhIGh5cGVydmlzb3IKIAkgIHRoZSBrZXJuZWwgaXMgdGhlb3JldGljYWxseSBzbG93ZXIgYW5kIHNsaWdodGx5IGxhcmdlci4KIAorY29uZmlnIFBBUkFWSVJUX0NMT0NLCisJYm9vbAorCWRlZmF1bHQgbgorCiBlbmRpZgogCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU0KLQlib29sICJNZW10ZXN0IGJvb3QgcGFyYW1ldGVyIgorY29uZmlnIFBBUkFWSVJUX0RFQlVHCisgICAgICAgYm9vbCAicGFyYXZpcnQtb3BzIGRlYnVnZ2luZyIKKyAgICAgICBkZXBlbmRzIG9uIFBBUkFWSVJUICYmIERFQlVHX0tFUk5FTAorICAgICAgIGhlbHAKKyAgICAgICAgIEVuYWJsZSB0byBkZWJ1ZyBwYXJhdmlydF9vcHMgaW50ZXJuYWxzLiAgU3BlY2lmaWNhbGx5LCBCVUcgaWYKKwkgYSBwYXJhdmlydF9vcCBpcyBtaXNzaW5nIHdoZW4gaXQgaXMgY2FsbGVkLgorCitjb25maWcgTUVNVEVTVAorCWJvb2wgIk1lbXRlc3QiCiAJZGVwZW5kcyBvbiBYODZfNjQKLQlkZWZhdWx0IHkKIAloZWxwCiAJICBUaGlzIG9wdGlvbiBhZGRzIGEga2VybmVsIHBhcmFtZXRlciAnbWVtdGVzdCcsIHdoaWNoIGFsbG93cyBtZW10ZXN0Ci0JICB0byBiZSBkaXNhYmxlZCBhdCBib290LiAgSWYgdGhpcyBvcHRpb24gaXMgc2VsZWN0ZWQsIG1lbXRlc3QKLQkgIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIGRpc2FibGVkIHdpdGggbWVtdGVzdD0wIG9uIHRoZSBrZXJuZWwKLQkgIGNvbW1hbmQgbGluZS4gIFRoZSBwdXJwb3NlIG9mIHRoaXMgb3B0aW9uIGlzIHRvIGFsbG93IGEgc2luZ2xlCi0JICBrZXJuZWwgaW1hZ2UgdG8gYmUgZGlzdHJpYnV0ZWQgd2l0aCBtZW10ZXN0IGJ1aWx0IGluLCBidXQgbm90Ci0JICBuZWNlc3NhcmlseSBlbmFibGVkLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBZLgotCi1jb25maWcgTUVNVEVTVF9CT09UUEFSQU1fVkFMVUUKLQlpbnQgIk1lbXRlc3QgYm9vdCBwYXJhbWV0ZXIgZGVmYXVsdCB2YWx1ZSAoMC00KSIKLQlkZXBlbmRzIG9uIE1FTVRFU1RfQk9PVFBBUkFNCi0JcmFuZ2UgMCA0Ci0JZGVmYXVsdCAwCi0JaGVscAotCSAgVGhpcyBvcHRpb24gc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGtlcm5lbCBwYXJhbWV0ZXIKLQkgICdtZW10ZXN0Jywgd2hpY2ggYWxsb3dzIG1lbXRlc3QgdG8gYmUgZGlzYWJsZWQgYXQgYm9vdC4gIElmIHRoaXMKLQkgIG9wdGlvbiBpcyBzZXQgdG8gMCAoemVybyksIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbAotCSAgZGVmYXVsdCB0byAwLCBkaXNhYmxpbmcgbWVtdGVzdCBhdCBib290dXAuICBJZiB0aGlzIG9wdGlvbiBpcwotCSAgc2V0IHRvIDQsIHRoZSBtZW10ZXN0IGtlcm5lbCBwYXJhbWV0ZXIgd2lsbCBkZWZhdWx0IHRvIDQsCi0JICBlbmFibGluZyBtZW10ZXN0IGF0IGJvb3R1cCwgYW5kIHVzZSB0aGF0IGFzIHBhdHRlcm4gbnVtYmVyLgotCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciAwLgotCi1jb25maWcgQUNQSV9TUkFUCi0JZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIEFDUEkgJiYgTlVNQSAmJiAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpCi0Jc2VsZWN0IEFDUElfTlVNQQotCi1jb25maWcgSEFWRV9BUkNIX1BBUlNFX1NSQVQKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBBQ1BJX1NSQVQKKwkgIHRvIGJlIHNldC4KKwkJbWVtdGVzdD0wLCBtZWFuIGRpc2FibGVkOyAtLSBkZWZhdWx0CisJCW1lbXRlc3Q9MSwgbWVhbiBkbyAxIHRlc3QgcGF0dGVybjsKKwkJLi4uCisJCW1lbXRlc3Q9NCwgbWVhbiBkbyA0IHRlc3QgcGF0dGVybnMuCisJICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBOLgogCiBjb25maWcgWDg2X1NVTU1JVF9OVU1BCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgKFg4Nl9TVU1NSVQgfHwgWDg2X0dFTkVSSUNBUkNIKQorCWRlcGVuZHMgb24gWDg2XzMyICYmIE5VTUEgJiYgWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBYODZfQ1lDTE9ORV9USU1FUgogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfU1VNTUlUIHx8IFg4Nl9HRU5FUklDQVJDSAorCWRlcGVuZHMgb24gWDg2X0dFTkVSSUNBUkNICiAKIGNvbmZpZyBFUzcwMDBfQ0xVU1RFUkVEX0FQSUMKIAlkZWZfYm9vbCB5CkBAIC01NTEsNiArNTUwLDIxIEBACiAJICBDYWxnYXJ5IGFueXdheSwgcGFzcyAnaW9tbXU9Y2FsZ2FyeScgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCiAJICBJZiB1bnN1cmUsIHNheSBZLgogCitjb25maWcgQU1EX0lPTU1VCisJYm9vbCAiQU1EIElPTU1VIHN1cHBvcnQiCisJc2VsZWN0IFNXSU9UTEIKKwlkZXBlbmRzIG9uIFg4Nl82NCAmJiBQQ0kgJiYgQUNQSQorCWhlbHAKKwkgIFdpdGggdGhpcyBvcHRpb24geW91IGNhbiBlbmFibGUgc3VwcG9ydCBmb3IgQU1EIElPTU1VIGhhcmR3YXJlIGluCisJICB5b3VyIHN5c3RlbS4gQW4gSU9NTVUgaXMgYSBoYXJkd2FyZSBjb21wb25lbnQgd2hpY2ggcHJvdmlkZXMKKwkgIHJlbWFwcGluZyBvZiBETUEgbWVtb3J5IGFjY2Vzc2VzIGZyb20gZGV2aWNlcy4gV2l0aCBhbiBBTUQgSU9NTVUgeW91CisJICBjYW4gaXNvbGF0ZSB0aGUgdGhlIERNQSBtZW1vcnkgb2YgZGlmZmVyZW50IGRldmljZXMgYW5kIHByb3RlY3QgdGhlCisJICBzeXN0ZW0gZnJvbSBtaXNiZWhhdmluZyBkZXZpY2UgZHJpdmVycyBvciBoYXJkd2FyZS4KKworCSAgWW91IGNhbiBmaW5kIG91dCBpZiB5b3VyIHN5c3RlbSBoYXMgYW4gQU1EIElPTU1VIGlmIHlvdSBsb29rIGludG8KKwkgIHlvdXIgQklPUyBmb3IgYW4gb3B0aW9uIHRvIGVuYWJsZSBpdCBvciBpZiB5b3UgaGF2ZSBhbiBJVlJTIEFDUEkKKwkgIHRhYmxlLgorCiAjIG5lZWQgdGhpcyBhbHdheXMgc2VsZWN0ZWQgYnkgSU9NTVUgZm9yIHRoZSBWSUEgd29ya2Fyb3VuZAogY29uZmlnIFNXSU9UTEIKIAlib29sCkBAIC01NjIsMjEgKzU3NiwzNiBAQAogCSAgMyBHQiBvZiBtZW1vcnkuIElmIHVuc3VyZSwgc2F5IFkuCiAKIGNvbmZpZyBJT01NVV9IRUxQRVIKLQlkZWZfYm9vbCAoQ0FMR0FSWV9JT01NVSB8fCBHQVJUX0lPTU1VIHx8IFNXSU9UTEIpCisJZGVmX2Jvb2wgKENBTEdBUllfSU9NTVUgfHwgR0FSVF9JT01NVSB8fCBTV0lPVExCIHx8IEFNRF9JT01NVSkKK2NvbmZpZyBNQVhTTVAKKwlib29sICJDb25maWd1cmUgTWF4aW11bSBudW1iZXIgb2YgU01QIFByb2Nlc3NvcnMgYW5kIE5VTUEgTm9kZXMiCisJZGVwZW5kcyBvbiBYODZfNjQgJiYgU01QCisJZGVmYXVsdCBuCisJaGVscAorCSAgQ29uZmlndXJlIG1heGltdW0gbnVtYmVyIG9mIENQVVMgYW5kIE5VTUEgTm9kZXMgZm9yIHRoaXMgYXJjaGl0ZWN0dXJlLgorCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAoraWYgTUFYU01QCiBjb25maWcgTlJfQ1BVUwotCWludCAiTWF4aW11bSBudW1iZXIgb2YgQ1BVcyAoMi0yNTUpIgotCXJhbmdlIDIgMjU1CisJaW50CisJZGVmYXVsdCAiNDA5NiIKK2VuZGlmCisKK2lmICFNQVhTTVAKK2NvbmZpZyBOUl9DUFVTCisJaW50ICJNYXhpbXVtIG51bWJlciBvZiBDUFVzICgyLTQwOTYpIgorCXJhbmdlIDIgNDA5NgogCWRlcGVuZHMgb24gU01QCiAJZGVmYXVsdCAiMzIiIGlmIFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUIHx8IFg4Nl9CSUdTTVAgfHwgWDg2X0VTNzAwMAogCWRlZmF1bHQgIjgiCiAJaGVscAogCSAgVGhpcyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIENQVXMgd2hpY2ggdGhpcwotCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyAyNTUgYW5kIHRoZQorCSAga2VybmVsIHdpbGwgc3VwcG9ydC4gIFRoZSBtYXhpbXVtIHN1cHBvcnRlZCB2YWx1ZSBpcyA0MDk2IGFuZCB0aGUKIAkgIG1pbmltdW0gdmFsdWUgd2hpY2ggbWFrZXMgc2Vuc2UgaXMgMi4KIAogCSAgVGhpcyBpcyBwdXJlbHkgdG8gc2F2ZSBtZW1vcnkgLSBlYWNoIHN1cHBvcnRlZCBDUFUgYWRkcwogCSAgYXBwcm94aW1hdGVseSBlaWdodCBraWxvYnl0ZXMgdG8gdGhlIGtlcm5lbCBpbWFnZS4KK2VuZGlmCiAKIGNvbmZpZyBTQ0hFRF9TTVQKIAlib29sICJTTVQgKEh5cGVydGhyZWFkaW5nKSBzY2hlZHVsZXIgc3VwcG9ydCIKQEAgLTYwMCw3ICs2MjksNyBAQAogCiBjb25maWcgWDg2X1VQX0FQSUMKIAlib29sICJMb2NhbCBBUElDIHN1cHBvcnQgb24gdW5pcHJvY2Vzc29ycyIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSIHx8IFg4Nl9HRU5FUklDQVJDSCkKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhU01QICYmICEoWDg2X1ZPWUFHRVIgfHwgWDg2X0dFTkVSSUNBUkNIKQogCWhlbHAKIAkgIEEgbG9jYWwgQVBJQyAoQWR2YW5jZWQgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyKSBpcyBhbgogCSAgaW50ZWdyYXRlZCBpbnRlcnJ1cHQgY29udHJvbGxlciBpbiB0aGUgQ1BVLiBJZiB5b3UgaGF2ZSBhIHNpbmdsZS1DUFUKQEAgLTYyNSwxMSArNjU0LDExIEBACiAKIGNvbmZpZyBYODZfTE9DQUxfQVBJQwogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoKFg4Nl9WSVNXUyB8fCBTTVApICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIChYODZfVVBfQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9JT19BUElDCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzY0IHx8IChYODZfMzIgJiYgKFg4Nl9VUF9JT0FQSUMgfHwgKFNNUCAmJiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikpIHx8IFg4Nl9HRU5FUklDQVJDSCkpCisJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiAoWDg2X1VQX0lPQVBJQyB8fCAoU01QICYmICFYODZfVk9ZQUdFUikgfHwgWDg2X0dFTkVSSUNBUkNIKSkKIAogY29uZmlnIFg4Nl9WSVNXU19BUElDCiAJZGVmX2Jvb2wgeQpAQCAtNjgzLDcgKzcxMiw3IEBACiAKIGNvbmZpZyBYODZfTUNFX1A0VEhFUk1BTAogCWJvb2wgImNoZWNrIGZvciBQNCB0aGVybWFsIHRocm90dGxpbmcgaW50ZXJydXB0LiIKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBYODZfTUNFICYmIChYODZfVVBfQVBJQyB8fCBTTVApCiAJaGVscAogCSAgRW5hYmxpbmcgdGhpcyBmZWF0dXJlIHdpbGwgY2F1c2UgYSBtZXNzYWdlIHRvIGJlIHByaW50ZWQgd2hlbiB0aGUgUDQKIAkgIGVudGVycyB0aGVybWFsIHRocm90dGxpbmcuCkBAIC05MTMsOSArOTQyLDkgQEAKIGNvbmZpZyBOVU1BCiAJYm9vbCAiTnVtYSBNZW1vcnkgQWxsb2NhdGlvbiBhbmQgU2NoZWR1bGVyIFN1cHBvcnQgKEVYUEVSSU1FTlRBTCkiCiAJZGVwZW5kcyBvbiBTTVAKLQlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCAoWDg2X1NVTU1JVCB8fCBYODZfR0VORVJJQ0FSQ0gpICYmIEFDUEkpICYmIEVYUEVSSU1FTlRBTCkKKwlkZXBlbmRzIG9uIFg4Nl82NCB8fCAoWDg2XzMyICYmIEhJR0hNRU02NEcgJiYgKFg4Nl9OVU1BUSB8fCBYODZfQklHU01QIHx8IFg4Nl9TVU1NSVQgJiYgQUNQSSkgJiYgRVhQRVJJTUVOVEFMKQogCWRlZmF1bHQgbiBpZiBYODZfUEMKLQlkZWZhdWx0IHkgaWYgKFg4Nl9OVU1BUSB8fCBYODZfU1VNTUlUKQorCWRlZmF1bHQgeSBpZiAoWDg2X05VTUFRIHx8IFg4Nl9TVU1NSVQgfHwgWDg2X0JJR1NNUCkKIAloZWxwCiAJICBFbmFibGUgTlVNQSAoTm9uIFVuaWZvcm0gTWVtb3J5IEFjY2Vzcykgc3VwcG9ydC4KIAkgIFRoZSBrZXJuZWwgd2lsbCB0cnkgdG8gYWxsb2NhdGUgbWVtb3J5IHVzZWQgYnkgYSBDUFUgb24gdGhlCkBAIC05NjcsMTMgKzk5NiwyNSBAQAogCSAgaW50byB2aXJ0dWFsIG5vZGVzIHdoZW4gYm9vdGVkIHdpdGggIm51bWE9ZmFrZT1OIiwgd2hlcmUgTiBpcyB0aGUKIAkgIG51bWJlciBvZiBub2Rlcy4gVGhpcyBpcyBvbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nLgogCitpZiBNQVhTTVAKKwogY29uZmlnIE5PREVTX1NISUZUCi0JaW50ICJNYXggbnVtIG5vZGVzIHNoaWZ0KDEtMTUpIgotCXJhbmdlIDEgMTUgIGlmIFg4Nl82NAorCWludAorCWRlZmF1bHQgIjkiCitlbmRpZgorCitpZiAhTUFYU01QCitjb25maWcgTk9ERVNfU0hJRlQKKwlpbnQgIk1heGltdW0gTlVNQSBOb2RlcyAoYXMgYSBwb3dlciBvZiAyKSIKKwlyYW5nZSAxIDkgICBpZiBYODZfNjQKIAlkZWZhdWx0ICI2IiBpZiBYODZfNjQKIAlkZWZhdWx0ICI0IiBpZiBYODZfTlVNQVEKIAlkZWZhdWx0ICIzIgogCWRlcGVuZHMgb24gTkVFRF9NVUxUSVBMRV9OT0RFUworCWhlbHAKKwkgIFNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIE5VTUEgTm9kZXMgYXZhaWxhYmxlIG9uIHRoZSB0YXJnZXQKKwkgIHN5c3RlbS4gIEluY3JlYXNlcyBtZW1vcnkgcmVzZXJ2ZWQgdG8gYWNjb21vZGF0ZSB2YXJpb3VzIHRhYmxlcy4KK2VuZGlmCiAKIGNvbmZpZyBIQVZFX0FSQ0hfQk9PVE1FTV9OT0RFCiAJZGVmX2Jvb2wgeQpAQCAtMTA5Miw2ICsxMTMzLDM3IEBACiAKIAkgIFNlZSA8ZmlsZTpEb2N1bWVudGF0aW9uL210cnIudHh0PiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAorY29uZmlnIE1UUlJfU0FOSVRJWkVSCisJYm9vbAorCXByb21wdCAiTVRSUiBjbGVhbnVwIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBNVFJSCisJaGVscAorCSAgQ29udmVydCBNVFJSIGxheW91dCBmcm9tIGNvbnRpbnVvdXMgdG8gZGlzY3JldGUsIHNvIFggZHJpdmVycyBjYW4KKwkgIGFkZCB3cml0ZWJhY2sgZW50cmllcy4KKworCSAgQ2FuIGJlIGRpc2FibGVkIHdpdGggZGlzYWJsZV9tdHJyX2NsZWFudXAgb24gdGhlIGtlcm5lbCBjb21tYW5kIGxpbmUuCisJICBUaGUgbGFyZ2VzdCBtdHJyIGVudHJ5IHNpemUgZm9yIGEgY29udGlub3VzIGJsb2NrIGNhbiBiZSBzZXQgd2l0aAorCSAgbXRycl9jaHVua19zaXplLgorCisJICBJZiB1bnN1cmUsIHNheSBOLgorCitjb25maWcgTVRSUl9TQU5JVElaRVJfRU5BQkxFX0RFRkFVTFQKKwlpbnQgIk1UUlIgY2xlYW51cCBlbmFibGUgdmFsdWUgKDAtMSkiCisJcmFuZ2UgMCAxCisJZGVmYXVsdCAiMCIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgRW5hYmxlIG10cnIgY2xlYW51cCBkZWZhdWx0IHZhbHVlCisKK2NvbmZpZyBNVFJSX1NBTklUSVpFUl9TUEFSRV9SRUdfTlJfREVGQVVMVAorCWludCAiTVRSUiBjbGVhbnVwIHNwYXJlIHJlZyBudW0gKDAtNykiCisJcmFuZ2UgMCA3CisJZGVmYXVsdCAiMSIKKwlkZXBlbmRzIG9uIE1UUlJfU0FOSVRJWkVSCisJaGVscAorCSAgbXRyciBjbGVhbnVwIHNwYXJlIGVudHJpZXMgZGVmYXVsdCwgaXQgY2FuIGJlIGNoYW5nZWQgdmlhCisJICBtdHJyX3NwYXJlX3JlZ19ucj1OIG9uIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgorCiBjb25maWcgWDg2X1BBVAogCWJvb2wKIAlwcm9tcHQgIng4NiBQQVQgc3VwcG9ydCIKQEAgLTExOTIsNyArMTI2NCw2IEBACiAKIGNvbmZpZyBDUkFTSF9EVU1QCiAJYm9vbCAia2VybmVsIGNyYXNoIGR1bXBzIChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJZGVwZW5kcyBvbiBYODZfNjQgfHwgKFg4Nl8zMiAmJiBISUdITUVNKQogCWhlbHAKIAkgIEdlbmVyYXRlIGNyYXNoIGR1bXAgYWZ0ZXIgYmVpbmcgc3RhcnRlZCBieSBrZXhlYy4KQEAgLTEzNDEsNyArMTQxMiw3IEBACiAKIG1lbnVjb25maWcgQVBNCiAJdHJpc3RhdGUgIkFQTSAoQWR2YW5jZWQgUG93ZXIgTWFuYWdlbWVudCkgQklPUyBzdXBwb3J0IgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBNX1NMRUVQICYmICFYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQTV9TTEVFUAogCS0tLWhlbHAtLS0KIAkgIEFQTSBpcyBhIEJJT1Mgc3BlY2lmaWNhdGlvbiBmb3Igc2F2aW5nIHBvd2VyIHVzaW5nIHNldmVyYWwgZGlmZmVyZW50CiAJICB0ZWNobmlxdWVzLiBUaGlzIGlzIG1vc3RseSB1c2VmdWwgZm9yIGJhdHRlcnkgcG93ZXJlZCBsYXB0b3BzIHdpdGgKQEAgLTE0NzcsOCArMTU0OCw3IEBACiBtZW51ICJCdXMgb3B0aW9ucyAoUENJIGV0Yy4pIgogCiBjb25maWcgUENJCi0JYm9vbCAiUENJIHN1cHBvcnQiIGlmICFYODZfVklTV1MgJiYgIVg4Nl9WU01QCi0JZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKKwlib29sICJQQ0kgc3VwcG9ydCIKIAlkZWZhdWx0IHkKIAlzZWxlY3QgQVJDSF9TVVBQT1JUU19NU0kgaWYgKFg4Nl9MT0NBTF9BUElDICYmIFg4Nl9JT19BUElDKQogCWhlbHAKQEAgLTE0ODksNyArMTU1OSw3IEBACiAKIGNob2ljZQogCXByb21wdCAiUENJIGFjY2VzcyBtb2RlIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIFBDSSAmJiAhWDg2X1ZJU1dTCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgUENJCiAJZGVmYXVsdCBQQ0lfR09BTlkKIAktLS1oZWxwLS0tCiAJICBPbiBQQ0kgc3lzdGVtcywgdGhlIEJJT1MgY2FuIGJlIHVzZWQgdG8gZGV0ZWN0IHRoZSBQQ0kgZGV2aWNlcyBhbmQKQEAgLTE1MTUsMzIgKzE1ODUsMzEgQEAKIGNvbmZpZyBQQ0lfR09ESVJFQ1QKIAlib29sICJEaXJlY3QiCiAKLWNvbmZpZyBQQ0lfR09BTlkKLQlib29sICJBbnkiCi0KIGNvbmZpZyBQQ0lfR09PTFBDCiAJYm9vbCAiT0xQQyIKIAlkZXBlbmRzIG9uIE9MUEMKIAorY29uZmlnIFBDSV9HT0FOWQorCWJvb2wgIkFueSIKKwogZW5kY2hvaWNlCiAKIGNvbmZpZyBQQ0lfQklPUwogCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIFg4Nl8zMiAmJiAhWDg2X1ZJU1dTICYmIFBDSSAmJiAoUENJX0dPQklPUyB8fCBQQ0lfR09BTlkpCisJZGVwZW5kcyBvbiBYODZfMzIgJiYgUENJICYmIChQQ0lfR09CSU9TIHx8IFBDSV9HT0FOWSkKIAogIyB4ODYtNjQgZG9lc24ndCBzdXBwb3J0IFBDSSBCSU9TIGFjY2VzcyBmcm9tIGxvbmcgbW9kZSBzbyBhbHdheXMgZ28gZGlyZWN0LgogY29uZmlnIFBDSV9ESVJFQ1QKIAlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBQQ0kgJiYgKFg4Nl82NCB8fCAoUENJX0dPRElSRUNUIHx8IFBDSV9HT0FOWSB8fCBQQ0lfR09PTFBDKSB8fCBYODZfVklTV1MpCisJZGVwZW5kcyBvbiBQQ0kgJiYgKFg4Nl82NCB8fCAoUENJX0dPRElSRUNUIHx8IFBDSV9HT0FOWSB8fCBQQ0lfR09PTFBDKSkKIAogY29uZmlnIFBDSV9NTUNPTkZJRwogCWRlZl9ib29sIHkKIAlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBQQ0kgJiYgQUNQSSAmJiAoUENJX0dPTU1DT05GSUcgfHwgUENJX0dPQU5ZKQogCiBjb25maWcgUENJX09MUEMKLQlib29sCi0JZGVwZW5kcyBvbiBQQ0kgJiYgUENJX0dPT0xQQwotCWRlZmF1bHQgeQorCWRlZl9ib29sIHkKKwlkZXBlbmRzIG9uIFBDSSAmJiBPTFBDICYmIChQQ0lfR09PTFBDIHx8IFBDSV9HT0FOWSkKIAogY29uZmlnIFBDSV9ET01BSU5TCiAJZGVmX2Jvb2wgeQpAQCAtMTU5Miw3ICsxNjYxLDcgQEAKIAogY29uZmlnIElTQQogCWJvb2wgIklTQSBzdXBwb3J0IgotCWRlcGVuZHMgb24gIShYODZfVk9ZQUdFUiB8fCBYODZfVklTV1MpCisJZGVwZW5kcyBvbiAhWDg2X1ZPWUFHRVIKIAloZWxwCiAJICBGaW5kIG91dCB3aGV0aGVyIHlvdSBoYXZlIElTQSBzbG90cyBvbiB5b3VyIG1vdGhlcmJvYXJkLiAgSVNBIGlzIHRoZQogCSAgbmFtZSBvZiBhIGJ1cyBzeXN0ZW0sIGkuZS4gdGhlIHdheSB0aGUgQ1BVIHRhbGtzIHRvIHRoZSBvdGhlciBzdHVmZgpAQCAtMTYxOSw3ICsxNjg4LDcgQEAKIHNvdXJjZSAiZHJpdmVycy9laXNhL0tjb25maWciCiAKIGNvbmZpZyBNQ0EKLQlib29sICJNQ0Egc3VwcG9ydCIgaWYgIShYODZfVklTV1MgfHwgWDg2X1ZPWUFHRVIpCisJYm9vbCAiTUNBIHN1cHBvcnQiIGlmICFYODZfVk9ZQUdFUgogCWRlZmF1bHQgeSBpZiBYODZfVk9ZQUdFUgogCWhlbHAKIAkgIE1pY3JvQ2hhbm5lbCBBcmNoaXRlY3R1cmUgaXMgZm91bmQgaW4gc29tZSBJQk0gUFMvMiBtYWNoaW5lcyBhbmQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L0tjb25maWcuY3B1IGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKaW5kZXggMmFkNjMwMS4uYWJmZjFiOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5jcHUKKysrIGIvYXJjaC94ODYvS2NvbmZpZy5jcHUKQEAgLTM0NCw3ICszNDQsNyBAQAogCiBjb25maWcgWDg2X1dQX1dPUktTX09LCiAJZGVmX2Jvb2wgeQotCWRlcGVuZHMgb24gWDg2XzMyICYmICFNMzg2CisJZGVwZW5kcyBvbiAhTTM4NgogCiBjb25maWcgWDg2X0lOVkxQRwogCWRlZl9ib29sIHkKQEAgLTM5OSw2ICszOTksMTAgQEAKIAlkZWZfYm9vbCB5CiAJZGVwZW5kcyBvbiAoKE1XSU5DSElQM0QgfHwgTVdJTkNISVAyIHx8IE1DUlVTT0UgfHwgTUVGRklDRU9OIHx8IE1DWVJJWElJSSB8fCBNSzcgfHwgTUs2IHx8IE1QRU5USVVNNCB8fCBNUEVOVElVTU0gfHwgTVBFTlRJVU1JSUkgfHwgTVBFTlRJVU1JSSB8fCBNNjg2IHx8IE01ODZNTVggfHwgTTU4NlRTQyB8fCBNSzggfHwgTVZJQUMzXzIgfHwgTVZJQUM3IHx8IE1HRU9ERUdYMSB8fCBNR0VPREVfTFggfHwgTUNPUkUyKSAmJiAhWDg2X05VTUFRKSB8fCBYODZfNjQKIAorY29uZmlnIFg4Nl9DTVBYQ0hHNjQKKwlkZWZfYm9vbCB5CisJZGVwZW5kcyBvbiBYODZfUEFFIHx8IFg4Nl82NAorCiAjIHRoaXMgc2hvdWxkIGJlIHNldCBmb3IgYWxsIC1tYXJjaD0uLiBvcHRpb25zIHdoZXJlIHRoZSBjb21waWxlcgogIyBnZW5lcmF0ZXMgY21vdi4KIGNvbmZpZyBYODZfQ01PVgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZyBiL2FyY2gveDg2L0tjb25maWcuZGVidWcKaW5kZXggYWMxZTMxYi4uYWUzNmJmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZy5kZWJ1ZworKysgYi9hcmNoL3g4Ni9LY29uZmlnLmRlYnVnCkBAIC02LDE1ICs2LDI3IEBACiBzb3VyY2UgImxpYi9LY29uZmlnLmRlYnVnIgogCiBjb25maWcgTk9OUFJPTUlTQ19ERVZNRU0KLQlib29sICJEaXNhYmxlIHByb21pc2N1b3VzIC9kZXYvbWVtIgorCWJvb2wgIkZpbHRlciBhY2Nlc3MgdG8gL2Rldi9tZW0iCiAJaGVscAotCSAgVGhlIC9kZXYvbWVtIGZpbGUgYnkgZGVmYXVsdCBvbmx5IGFsbG93cyB1c2Vyc3BhY2UgYWNjZXNzIHRvIFBDSQotCSAgc3BhY2UgYW5kIHRoZSBCSU9TIGNvZGUgYW5kIGRhdGEgcmVnaW9ucy4gVGhpcyBpcyBzdWZmaWNpZW50IGZvcgotCSAgZG9zZW11IGFuZCBYIGFuZCBhbGwgY29tbW9uIHVzZXJzIG9mIC9kZXYvbWVtLiBXaXRoIHRoaXMgY29uZmlnCi0JICBvcHRpb24sIHlvdSBhbGxvdyB1c2Vyc3BhY2UgYWNjZXNzIHRvIGFsbCBvZiBtZW1vcnksIGluY2x1ZGluZwotCSAga2VybmVsIGFuZCB1c2Vyc3BhY2UgbWVtb3J5LiBBY2NpZGVudGFsIGFjY2VzcyB0byB0aGlzIGlzCi0JICBvYnZpb3VzbHkgZGlzYXN0ZXJvdXMsIGJ1dCBzcGVjaWZpYyBhY2Nlc3MgY2FuIGJlIHVzZWQgYnkgcGVvcGxlCi0JICBkZWJ1Z2dpbmcgdGhlIGtlcm5lbC4KKwkgIElmIHRoaXMgb3B0aW9uIGlzIGxlZnQgb2ZmLCB5b3UgYWxsb3cgdXNlcnNwYWNlIGFjY2VzcyB0byBhbGwKKwkgIG9mIG1lbW9yeSwgaW5jbHVkaW5nIGtlcm5lbCBhbmQgdXNlcnNwYWNlIG1lbW9yeS4gQWNjaWRlbnRhbAorCSAgYWNjZXNzIHRvIHRoaXMgaXMgb2J2aW91c2x5IGRpc2FzdHJvdXMsIGJ1dCBzcGVjaWZpYyBhY2Nlc3MgY2FuCisJICBiZSB1c2VkIGJ5IHBlb3BsZSBkZWJ1Z2dpbmcgdGhlIGtlcm5lbC4KKworCSAgSWYgdGhpcyBvcHRpb24gaXMgc3dpdGNoZWQgb24sIHRoZSAvZGV2L21lbSBmaWxlIG9ubHkgYWxsb3dzCisJICB1c2Vyc3BhY2UgYWNjZXNzIHRvIFBDSSBzcGFjZSBhbmQgdGhlIEJJT1MgY29kZSBhbmQgZGF0YSByZWdpb25zLgorCSAgVGhpcyBpcyBzdWZmaWNpZW50IGZvciBkb3NlbXUgYW5kIFggYW5kIGFsbCBjb21tb24gdXNlcnMgb2YKKwkgIC9kZXYvbWVtLgorCisJICBJZiBpbiBkb3VidCwgc2F5IFkuCisKK2NvbmZpZyBYODZfVkVSQk9TRV9CT09UVVAKKwlib29sICJFbmFibGUgdmVyYm9zZSB4ODYgYm9vdHVwIGluZm8gbWVzc2FnZXMiCisJZGVmYXVsdCB5CisJaGVscAorCSAgRW5hYmxlcyB0aGUgaW5mb3JtYXRpb25hbCBvdXRwdXQgZnJvbSB0aGUgZGVjb21wcmVzc2lvbiBzdGFnZQorCSAgKGUuZy4gYnpJbWFnZSkgb2YgdGhlIGJvb3QuIElmIHlvdSBkaXNhYmxlIHRoaXMgeW91IHdpbGwgc3RpbGwKKwkgIHNlZSBlcnJvcnMuIERpc2FibGUgdGhpcyBpZiB5b3Ugd2FudCBzaWxlbnQgYm9vdHVwLgogCiBjb25maWcgRUFSTFlfUFJJTlRLCiAJYm9vbCAiRWFybHkgcHJpbnRrIiBpZiBFTUJFRERFRApAQCAtNTYsNyArNjgsNyBAQAogY29uZmlnIERFQlVHX1BFUl9DUFVfTUFQUwogCWJvb2wgIkRlYnVnIGFjY2VzcyB0byBwZXJfY3B1IG1hcHMiCiAJZGVwZW5kcyBvbiBERUJVR19LRVJORUwKLQlkZXBlbmRzIG9uIFg4Nl82NF9TTVAKKwlkZXBlbmRzIG9uIFg4Nl9TTVAKIAlkZWZhdWx0IG4KIAloZWxwCiAJICBTYXkgWSB0byB2ZXJpZnkgdGhhdCB0aGUgcGVyX2NwdSBtYXAgYmVpbmcgYWNjZXNzZWQgaGFzCkBAIC0xMjUsMTUgKzEzNyw2IEBACiAJICBvbiB0aGUgVk0gc3Vic3lzdGVtIGZvciBoaWdoZXIgb3JkZXIgYWxsb2NhdGlvbnMuIFRoaXMgb3B0aW9uCiAJICB3aWxsIGFsc28gdXNlIElSUSBzdGFja3MgdG8gY29tcGVuc2F0ZSBmb3IgdGhlIHJlZHVjZWQgc3RhY2tzcGFjZS4KIAotY29uZmlnIFg4Nl9GSU5EX1NNUF9DT05GSUcKLQlkZWZfYm9vbCB5Ci0JZGVwZW5kcyBvbiBYODZfTE9DQUxfQVBJQyB8fCBYODZfVk9ZQUdFUgotCWRlcGVuZHMgb24gWDg2XzMyCi0KLWNvbmZpZyBYODZfTVBQQVJTRQotCWRlZl9ib29sIHkKLQlkZXBlbmRzIG9uIChYODZfMzIgJiYgKFg4Nl9MT0NBTF9BUElDICYmICFYODZfVklTV1MpKSB8fCBYODZfNjQKLQogY29uZmlnIERPVUJMRUZBVUxUCiAJZGVmYXVsdCB5CiAJYm9vbCAiRW5hYmxlIGRvdWJsZWZhdWx0IGV4Y2VwdGlvbiBoYW5kbGVyIiBpZiBFTUJFRERFRApAQCAtMTY4LDYgKzE3MSwzMyBAQAogCSAgQWRkIGEgc2ltcGxlIGxlYWsgdHJhY2VyIHRvIHRoZSBJT01NVSBjb2RlLiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdQogCSAgYXJlIGRlYnVnZ2luZyBhIGJ1Z2d5IGRldmljZSBkcml2ZXIgdGhhdCBsZWFrcyBJT01NVSBtYXBwaW5ncy4KIAorY29uZmlnIE1NSU9UUkFDRV9IT09LUworCWJvb2wKKworY29uZmlnIE1NSU9UUkFDRQorCWJvb2wgIk1lbW9yeSBtYXBwZWQgSU8gdHJhY2luZyIKKwlkZXBlbmRzIG9uIERFQlVHX0tFUk5FTCAmJiBQQ0kKKwlzZWxlY3QgVFJBQ0lORworCXNlbGVjdCBNTUlPVFJBQ0VfSE9PS1MKKwloZWxwCisJICBNbWlvdHJhY2UgdHJhY2VzIE1lbW9yeSBNYXBwZWQgSS9PIGFjY2VzcyBhbmQgaXMgbWVhbnQgZm9yCisJICBkZWJ1Z2dpbmcgYW5kIHJldmVyc2UgZW5naW5lZXJpbmcuIEl0IGlzIGNhbGxlZCBmcm9tIHRoZSBpb3JlbWFwCisJICBpbXBsZW1lbnRhdGlvbiBhbmQgd29ya3MgdmlhIHBhZ2UgZmF1bHRzLiBUcmFjaW5nIGlzIGRpc2FibGVkIGJ5CisJICBkZWZhdWx0IGFuZCBjYW4gYmUgZW5hYmxlZCBhdCBydW4tdGltZS4KKworCSAgU2VlIERvY3VtZW50YXRpb24vdHJhY2Vycy9tbWlvdHJhY2UudHh0LgorCSAgSWYgeW91IGFyZSBub3QgaGVscGluZyB0byBkZXZlbG9wIGRyaXZlcnMsIHNheSBOLgorCitjb25maWcgTU1JT1RSQUNFX1RFU1QKKwl0cmlzdGF0ZSAiVGVzdCBtb2R1bGUgZm9yIG1taW90cmFjZSIKKwlkZXBlbmRzIG9uIE1NSU9UUkFDRSAmJiBtCisJaGVscAorCSAgVGhpcyBpcyBhIGR1bWIgbW9kdWxlIGZvciB0ZXN0aW5nIG1taW90cmFjZS4gSXQgaXMgdmVyeSBkYW5nZXJvdXMKKwkgIGFzIGl0IHdpbGwgd3JpdGUgZ2FyYmFnZSB0byBJTyBtZW1vcnkgc3RhcnRpbmcgYXQgYSBnaXZlbiBhZGRyZXNzLgorCSAgSG93ZXZlciwgaXQgc2hvdWxkIGJlIHNhZmUgdG8gdXNlIG9uIGUuZy4gdW51c2VkIHBvcnRpb24gb2YgVlJBTS4KKworCSAgU2F5IE4sIHVubGVzcyB5b3UgYWJzb2x1dGVseSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4KKwogIwogIyBJTyBkZWxheSB0eXBlczoKICMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggM2NmZjNjOC4uOTE5Y2UyMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvTWFrZWZpbGUKQEAgLTExMywzMyArMTEzLDExIEBACiBtZmxhZ3MtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdm95YWdlcgogbWNvcmUtJChDT05GSUdfWDg2X1ZPWUFHRVIpCTo9IGFyY2gveDg2L21hY2gtdm95YWdlci8KIAotIyBWSVNXUyBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfVklTV1MpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MKLW1jb3JlLSQoQ09ORklHX1g4Nl9WSVNXUykJOj0gYXJjaC94ODYvbWFjaC12aXN3cy8KLQotIyBOVU1BUSBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfTlVNQVEpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEKLW1jb3JlLSQoQ09ORklHX1g4Nl9OVU1BUSkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jIEJJR1NNUCBzdWJhcmNoIHN1cHBvcnQKLW1mbGFncy0kKENPTkZJR19YODZfQklHU01QKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcAotbWNvcmUtJChDT05GSUdfWDg2X0JJR1NNUCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwotCi0jU3VtbWl0IHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9TVU1NSVQpCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtc3VtbWl0Ci1tY29yZS0kKENPTkZJR19YODZfU1VNTUlUKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCi0KICMgZ2VuZXJpYyBzdWJhcmNoaXRlY3R1cmUKIG1mbGFncy0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpOj0gLUlpbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljCiBmY29yZS0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpCSs9IGFyY2gveDg2L21hY2gtZ2VuZXJpYy8KIG1jb3JlLSQoQ09ORklHX1g4Nl9HRU5FUklDQVJDSCkJOj0gYXJjaC94ODYvbWFjaC1kZWZhdWx0LwogCi0KLSMgRVM3MDAwIHN1YmFyY2ggc3VwcG9ydAotbWZsYWdzLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IC1JaW5jbHVkZS9hc20teDg2L21hY2gtZXM3MDAwCi1mY29yZS0kKENPTkZJR19YODZfRVM3MDAwKQk6PSBhcmNoL3g4Ni9tYWNoLWVzNzAwMC8KLW1jb3JlLSQoQ09ORklHX1g4Nl9FUzcwMDApCTo9IGFyY2gveDg2L21hY2gtZGVmYXVsdC8KLQogIyBSREMgUi0zMjF4IHN1YmFyY2ggc3VwcG9ydAogbWZsYWdzLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSAtSWluY2x1ZGUvYXNtLXg4Ni9tYWNoLXJkYzMyMXgKIG1jb3JlLSQoQ09ORklHX1g4Nl9SREMzMjFYKQk6PSBhcmNoL3g4Ni9tYWNoLWRlZmF1bHQvCkBAIC0xNjAsNiArMTM4LDcgQEAKIAogaGVhZC15IDo9IGFyY2gveDg2L2tlcm5lbC9oZWFkXyQoQklUUykubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9oZWFkJChCSVRTKS5vCitoZWFkLXkgKz0gYXJjaC94ODYva2VybmVsL2hlYWQubwogaGVhZC15ICs9IGFyY2gveDg2L2tlcm5lbC9pbml0X3Rhc2subwogCiBsaWJzLXkgICs9IGFyY2gveDg2L2xpYi8KQEAgLTIxMCwxMiArMTg5LDEyIEBACiAKICMgS0JVSUxEX0lNQUdFIHNwZWNpZnkgdGFyZ2V0IGltYWdlIGJlaW5nIGJ1aWx0CiAgICAgICAgICAgICAgICAgICAgIEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL2J6SW1hZ2UKLXpJbWFnZSB6bGlsbyB6ZGlzazogS0JVSUxEX0lNQUdFIDo9IGFyY2gveDg2L2Jvb3QvekltYWdlCit6SW1hZ2UgemxpbG8gemRpc2s6IEtCVUlMRF9JTUFHRSA6PSAkKGJvb3QpL3pJbWFnZQogCiB6SW1hZ2UgYnpJbWFnZTogdm1saW51eAogCSQoUSkkKE1BS0UpICQoYnVpbGQpPSQoYm9vdCkgJChLQlVJTERfSU1BR0UpCiAJJChRKW1rZGlyIC1wICQob2JqdHJlZSkvYXJjaC8kKFVUU19NQUNISU5FKS9ib290Ci0JJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC9iekltYWdlCisJJChRKWxuIC1mc24gLi4vLi4veDg2L2Jvb3QvYnpJbWFnZSAkKG9ianRyZWUpL2FyY2gvJChVVFNfTUFDSElORSkvYm9vdC8kQAogCiBjb21wcmVzc2VkOiB6SW1hZ2UKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9hMjAuYyBiL2FyY2gveDg2L2Jvb3QvYTIwLmMKaW5kZXggOTA5NDNmOC4uNDA2M2Q2MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9hMjAuYworKysgYi9hcmNoL3g4Ni9ib290L2EyMC5jCkBAIC0xLDcgKzEsNyBAQAogLyogLSotIGxpbnV4LWMgLSotIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgogICoKICAqICAgQ29weXJpZ2h0IChDKSAxOTkxLCAxOTkyIExpbnVzIFRvcnZhbGRzCi0gKiAgIENvcHlyaWdodCAyMDA3IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAorICogICBDb3B5cmlnaHQgMjAwNy0yMDA4IHJQYXRoLCBJbmMuIC0gQWxsIFJpZ2h0cyBSZXNlcnZlZAogICoKICAqICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIExpbnV4IGtlcm5lbCwgYW5kIGlzIG1hZGUgYXZhaWxhYmxlIHVuZGVyCiAgKiAgIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLgpAQCAtOTUsNiArOTUsOSBAQAogCiAJb3V0YigweGRmLCAweDYwKTsJLyogQTIwIG9uICovCiAJZW1wdHlfODA0MigpOworCisJb3V0YigweGZmLCAweDY0KTsJLyogTnVsbCBjb21tYW5kLCBidXQgVUhDSSB3YW50cyBpdCAqLworCWVtcHR5XzgwNDIoKTsKIH0KIAogc3RhdGljIHZvaWQgZW5hYmxlX2EyMF9mYXN0KHZvaWQpCkBAIC0xMTUsOCArMTE4LDYgQEAKIAogaW50IGVuYWJsZV9hMjAodm9pZCkKIHsKLQlpbnQgbG9vcHMgPSBBMjBfRU5BQkxFX0xPT1BTOwotCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X0VMQU4pCiAJLyogRWxhbiBjcm9ha3MgaWYgd2UgdHJ5IHRvIHRvdWNoIHRoZSBLQkMgKi8KIAllbmFibGVfYTIwX2Zhc3QoKTsKQEAgLTEyOCw2ICsxMjksNyBAQAogCWVuYWJsZV9hMjBfa2JjKCk7CiAJcmV0dXJuIDA7CiAjZWxzZQorICAgICAgIGludCBsb29wcyA9IEEyMF9FTkFCTEVfTE9PUFM7CiAJd2hpbGUgKGxvb3BzLS0pIHsKIAkJLyogRmlyc3QsIGNoZWNrIHRvIHNlZSBpZiBBMjAgaXMgYWxyZWFkeSBlbmFibGVkCiAJCSAgIChsZWdhY3kgZnJlZSwgZXRjLikgKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9oZWFkXzY0LlMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvaGVhZF82NC5TCmluZGV4IGQ4ODE5ZWYuLjFkNWRmZjQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9oZWFkXzY0LlMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL2hlYWRfNjQuUwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogCiAuc2VjdGlvbiAiLnRleHQuaGVhZCIKQEAgLTEwOSw3ICsxMTAsNyBAQAogCiAJLyogRW5hYmxlIFBBRSBtb2RlICovCiAJeG9ybAklZWF4LCAlZWF4Ci0Jb3JsCSQoMSA8PCA1KSwgJWVheAorCW9ybAkkKFg4Nl9DUjRfUEFFKSwgJWVheAogCW1vdmwJJWVheCwgJWNyNAogCiAgLyoKQEAgLTE3MCw3ICsxNzEsNyBAQAogCXB1c2hsCSVlYXgKIAogCS8qIEVudGVyIHBhZ2VkIHByb3RlY3RlZCBNb2RlLCBhY3RpdmF0aW5nIExvbmcgTW9kZSAqLwotCW1vdmwJJDB4ODAwMDAwMDEsICVlYXggLyogRW5hYmxlIFBhZ2luZyBhbmQgUHJvdGVjdGVkIG1vZGUgKi8KKwltb3ZsCSQoWDg2X0NSMF9QRyB8IFg4Nl9DUjBfUEUpLCAlZWF4IC8qIEVuYWJsZSBQYWdpbmcgYW5kIFByb3RlY3RlZCBtb2RlICovCiAJbW92bAklZWF4LCAlY3IwCiAKIAkvKiBKdW1wIGZyb20gMzJiaXQgY29tcGF0aWJpbGl0eSBtb2RlIGludG8gNjRiaXQgbW9kZS4gKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMgYi9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvbWlzYy5jCmluZGV4IDkwNDU2Y2UuLmJjNTU1M2IgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9taXNjLmMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL21pc2MuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2Jvb3QuaD4KKyNpbmNsdWRlIDxhc20vYm9vdHBhcmFtLmg+CiAKIC8qIFdBUk5JTkchIQogICogVGhpcyBjb2RlIGlzIGNvbXBpbGVkIHdpdGggLWZQSUMgYW5kIGl0IGlzIHJlbG9jYXRlZCBkeW5hbWljYWxseQpAQCAtMTg3LDEzICsxODgsOCBAQAogLyoKICAqIFRoaXMgaXMgc2V0IHVwIGJ5IHRoZSBzZXR1cC1yb3V0aW5lIGF0IGJvb3QtdGltZQogICovCi1zdGF0aWMgdW5zaWduZWQgY2hhciAqcmVhbF9tb2RlOyAvKiBQb2ludGVyIHRvIHJlYWwtbW9kZSBkYXRhICovCi0KLSNkZWZpbmUgUk1fRVhUX01FTV9LICAgKCoodW5zaWduZWQgc2hvcnQgKikocmVhbF9tb2RlICsgMHgyKSkKLSNpZm5kZWYgU1RBTkRBUkRfTUVNT1JZX0JJT1NfQ0FMTAotI2RlZmluZSBSTV9BTFRfTUVNX0sgICAoKih1bnNpZ25lZCBsb25nICopKHJlYWxfbW9kZSArIDB4MWUwKSkKLSNlbmRpZgotI2RlZmluZSBSTV9TQ1JFRU5fSU5GTyAoKihzdHJ1Y3Qgc2NyZWVuX2luZm8gKikocmVhbF9tb2RlKzApKQorc3RhdGljIHN0cnVjdCBib290X3BhcmFtcyAqcmVhbF9tb2RlOwkJLyogUG9pbnRlciB0byByZWFsLW1vZGUgZGF0YSAqLworc3RhdGljIGludCBxdWlldDsKIAogZXh0ZXJuIHVuc2lnbmVkIGNoYXIgaW5wdXRfZGF0YVtdOwogZXh0ZXJuIGludCBpbnB1dF9sZW47CkBAIC0yMDYsNyArMjAyLDggQEAKIHN0YXRpYyB2b2lkICptZW1zZXQodm9pZCAqcywgaW50IGMsIHVuc2lnbmVkIG4pOwogc3RhdGljIHZvaWQgKm1lbWNweSh2b2lkICpkZXN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIG4pOwogCi1zdGF0aWMgdm9pZCBwdXRzdHIoY29uc3QgY2hhciAqKTsKK3N0YXRpYyB2b2lkIF9fcHV0c3RyKGludCwgY29uc3QgY2hhciAqKTsKKyNkZWZpbmUgcHV0c3RyKF9feCkgIF9fcHV0c3RyKDAsIF9feCkKIAogI2lmZGVmIENPTkZJR19YODZfNjQKICNkZWZpbmUgbWVtcHRyIGxvbmcKQEAgLTIyMSwxMCArMjE4LDYgQEAKIHN0YXRpYyBpbnQgdmlkcG9ydDsKIHN0YXRpYyBpbnQgbGluZXMsIGNvbHM7CiAKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRCi12b2lkICp4cXVhZF9wb3J0aW87Ci0jZW5kaWYKLQogI2luY2x1ZGUgIi4uLy4uLy4uLy4uL2xpYi9pbmZsYXRlLmMiCiAKIHN0YXRpYyB2b2lkICptYWxsb2MoaW50IHNpemUpCkBAIC0yNzAsMTggKzI2MywyNCBAQAogCQl2aWRtZW1baV0gPSAnICc7CiB9CiAKLXN0YXRpYyB2b2lkIHB1dHN0cihjb25zdCBjaGFyICpzKQorc3RhdGljIHZvaWQgX19wdXRzdHIoaW50IGVycm9yLCBjb25zdCBjaGFyICpzKQogewogCWludCB4LCB5LCBwb3M7CiAJY2hhciBjOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCWlmIChSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX21vZGUgPT0gMCAmJiBsaW5lcyA9PSAwICYmIGNvbHMgPT0gMCkKKyNpZm5kZWYgQ09ORklHX1g4Nl9WRVJCT1NFX0JPT1RVUAorCWlmICghZXJyb3IpCiAJCXJldHVybjsKICNlbmRpZgogCi0JeCA9IFJNX1NDUkVFTl9JTkZPLm9yaWdfeDsKLQl5ID0gUk1fU0NSRUVOX0lORk8ub3JpZ195OworI2lmZGVmIENPTkZJR19YODZfMzIKKwlpZiAocmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX21vZGUgPT0gMCAmJgorCSAgICBsaW5lcyA9PSAwICYmIGNvbHMgPT0gMCkKKwkJcmV0dXJuOworI2VuZGlmCisKKwl4ID0gcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3g7CisJeSA9IHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ195OwogCiAJd2hpbGUgKChjID0gKnMrKykgIT0gJ1wwJykgewogCQlpZiAoYyA9PSAnXG4nKSB7CkBAIC0zMDIsOCArMzAxLDggQEAKIAkJfQogCX0KIAotCVJNX1NDUkVFTl9JTkZPLm9yaWdfeCA9IHg7Ci0JUk1fU0NSRUVOX0lORk8ub3JpZ195ID0geTsKKwlyZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfeCA9IHg7CisJcmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3kgPSB5OwogCiAJcG9zID0gKHggKyBjb2xzICogeSkgKiAyOwkvKiBVcGRhdGUgY3Vyc29yIHBvc2l0aW9uICovCiAJb3V0YigxNCwgdmlkcG9ydCk7CkBAIC0zNjYsOSArMzY1LDkgQEAKIAogc3RhdGljIHZvaWQgZXJyb3IoY2hhciAqeCkKIHsKLQlwdXRzdHIoIlxuXG4iKTsKLQlwdXRzdHIoeCk7Ci0JcHV0c3RyKCJcblxuIC0tIFN5c3RlbSBoYWx0ZWQiKTsKKwlfX3B1dHN0cigxLCAiXG5cbiIpOworCV9fcHV0c3RyKDEsIHgpOworCV9fcHV0c3RyKDEsICJcblxuIC0tIFN5c3RlbSBoYWx0ZWQiKTsKIAogCXdoaWxlICgxKQogCQlhc20oImhsdCIpOwpAQCAtMzk1LDcgKzM5NCw4IEBACiAJCXJldHVybjsKIAl9CiAKLQlwdXRzdHIoIlBhcnNpbmcgRUxGLi4uICIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiUGFyc2luZyBFTEYuLi4gIik7CiAKIAlwaGRycyA9IG1hbGxvYyhzaXplb2YoKnBoZHJzKSAqIGVoZHIuZV9waG51bSk7CiAJaWYgKCFwaGRycykKQEAgLTQzMCw3ICs0MzAsMTAgQEAKIHsKIAlyZWFsX21vZGUgPSBybW9kZTsKIAotCWlmIChSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX21vZGUgPT0gNykgeworCWlmIChyZWFsX21vZGUtPmhkci5sb2FkZmxhZ3MgJiBRVUlFVF9GTEFHKQorCQlxdWlldCA9IDE7CisKKwlpZiAocmVhbF9tb2RlLT5zY3JlZW5faW5mby5vcmlnX3ZpZGVvX21vZGUgPT0gNykgewogCQl2aWRtZW0gPSAoY2hhciAqKSAweGIwMDAwOwogCQl2aWRwb3J0ID0gMHgzYjQ7CiAJfSBlbHNlIHsKQEAgLTQzOCw4ICs0NDEsOCBAQAogCQl2aWRwb3J0ID0gMHgzZDQ7CiAJfQogCi0JbGluZXMgPSBSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX2xpbmVzOwotCWNvbHMgPSBSTV9TQ1JFRU5fSU5GTy5vcmlnX3ZpZGVvX2NvbHM7CisJbGluZXMgPSByZWFsX21vZGUtPnNjcmVlbl9pbmZvLm9yaWdfdmlkZW9fbGluZXM7CisJY29scyA9IHJlYWxfbW9kZS0+c2NyZWVuX2luZm8ub3JpZ192aWRlb19jb2xzOwogCiAJd2luZG93ID0gb3V0cHV0OwkJLyogT3V0cHV0IGJ1ZmZlciAoTm9ybWFsbHkgYXQgMU0pICovCiAJZnJlZV9tZW1fcHRyICAgICA9IGhlYXA7CS8qIEhlYXAgKi8KQEAgLTQ2NSw5ICs0NjgsMTEgQEAKICNlbmRpZgogCiAJbWFrZWNyYygpOwotCXB1dHN0cigiXG5EZWNvbXByZXNzaW5nIExpbnV4Li4uICIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiXG5EZWNvbXByZXNzaW5nIExpbnV4Li4uICIpOwogCWd1bnppcCgpOwogCXBhcnNlX2VsZihvdXRwdXQpOwotCXB1dHN0cigiZG9uZS5cbkJvb3RpbmcgdGhlIGtlcm5lbC5cbiIpOworCWlmICghcXVpZXQpCisJCXB1dHN0cigiZG9uZS5cbkJvb3RpbmcgdGhlIGtlcm5lbC5cbiIpOwogCXJldHVybjsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9yZWxvY3MuYyBiL2FyY2gveDg2L2Jvb3QvY29tcHJlc3NlZC9yZWxvY3MuYwppbmRleCBlZGFhZGVhLi5hMTMxMGM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L2NvbXByZXNzZWQvcmVsb2NzLmMKKysrIGIvYXJjaC94ODYvYm9vdC9jb21wcmVzc2VkL3JlbG9jcy5jCkBAIC0xMCwxNiArMTAsMjAgQEAKICNkZWZpbmUgVVNFX0JTRAogI2luY2x1ZGUgPGVuZGlhbi5oPgogCi0jZGVmaW5lIE1BWF9TSERSUyAxMDAKICNkZWZpbmUgQVJSQVlfU0laRSh4KSAoc2l6ZW9mKHgpIC8gc2l6ZW9mKCh4KVswXSkpCiBzdGF0aWMgRWxmMzJfRWhkciBlaGRyOwotc3RhdGljIEVsZjMyX1NoZHIgc2hkcltNQVhfU0hEUlNdOwotc3RhdGljIEVsZjMyX1N5bSAgKnN5bXRhYltNQVhfU0hEUlNdOwotc3RhdGljIEVsZjMyX1JlbCAgKnJlbHRhYltNQVhfU0hEUlNdOwotc3RhdGljIGNoYXIgKnN0cnRhYltNQVhfU0hEUlNdOwogc3RhdGljIHVuc2lnbmVkIGxvbmcgcmVsb2NfY291bnQsIHJlbG9jX2lkeDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nICpyZWxvY3M7CiAKK3N0cnVjdCBzZWN0aW9uIHsKKwlFbGYzMl9TaGRyICAgICBzaGRyOworCXN0cnVjdCBzZWN0aW9uICpsaW5rOworCUVsZjMyX1N5bSAgICAgICpzeW10YWI7CisJRWxmMzJfUmVsICAgICAgKnJlbHRhYjsKKwljaGFyICAgICAgICAgICAqc3RydGFiOworfTsKK3N0YXRpYyBzdHJ1Y3Qgc2VjdGlvbiAqc2VjczsKKwogLyoKICAqIEZvbGxvd2luZyBzeW1ib2xzIGhhdmUgYmVlbiBhdWRpdGVkLiBUaGVyZSB2YWx1ZXMgYXJlIGNvbnN0YW50IGFuZCBkbwogICogbm90IGNoYW5nZSBpZiBiekltYWdlIGlzIGxvYWRlZCBhdCBhIGRpZmZlcmVudCBwaHlzaWNhbCBhZGRyZXNzIHRoYW4KQEAgLTM1LDcgKzM5LDcgQEAKIHsKIAlpbnQgaTsKIAotCWZvcihpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2FmZV9hYnNfcmVsb2NzKTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2FmZV9hYnNfcmVsb2NzKTsgaSsrKSB7CiAJCWlmICghc3RyY21wKHN5bV9uYW1lLCBzYWZlX2Fic19yZWxvY3NbaV0pKQogCQkJLyogTWF0Y2ggZm91bmQgKi8KIAkJCXJldHVybiAxOwpAQCAtMTM3LDEwICsxNDEsMTAgQEAKIHsKIAljb25zdCBjaGFyICpzZWNfc3RydGFiOwogCWNvbnN0IGNoYXIgKm5hbWU7Ci0Jc2VjX3N0cnRhYiA9IHN0cnRhYltlaGRyLmVfc2hzdHJuZHhdOworCXNlY19zdHJ0YWIgPSBzZWNzW2VoZHIuZV9zaHN0cm5keF0uc3RydGFiOwogCW5hbWUgPSAiPG5vbmFtZT4iOwogCWlmIChzaG5keCA8IGVoZHIuZV9zaG51bSkgewotCQluYW1lID0gc2VjX3N0cnRhYiArIHNoZHJbc2huZHhdLnNoX25hbWU7CisJCW5hbWUgPSBzZWNfc3RydGFiICsgc2Vjc1tzaG5keF0uc2hkci5zaF9uYW1lOwogCX0KIAllbHNlIGlmIChzaG5keCA9PSBTSE5fQUJTKSB7CiAJCW5hbWUgPSAiQUJTT0xVVEUiOwpAQCAtMTU5LDcgKzE2Myw3IEBACiAJCW5hbWUgPSBzeW1fc3RydGFiICsgc3ltLT5zdF9uYW1lOwogCX0KIAllbHNlIHsKLQkJbmFtZSA9IHNlY19uYW1lKHNoZHJbc3ltLT5zdF9zaG5keF0uc2hfbmFtZSk7CisJCW5hbWUgPSBzZWNfbmFtZShzZWNzW3N5bS0+c3Rfc2huZHhdLnNoZHIuc2hfbmFtZSk7CiAJfQogCXJldHVybiBuYW1lOwogfQpAQCAtMjQ0LDI5ICsyNDgsMzQgQEAKIHN0YXRpYyB2b2lkIHJlYWRfc2hkcnMoRklMRSAqZnApCiB7CiAJaW50IGk7Ci0JaWYgKGVoZHIuZV9zaG51bSA+IE1BWF9TSERSUykgewotCQlkaWUoIiVkIHNlY3Rpb24gaGVhZGVycyBzdXBwb3J0ZWQ6ICVkXG4iLAotCQkJZWhkci5lX3NobnVtLCBNQVhfU0hEUlMpOworCUVsZjMyX1NoZHIgc2hkcjsKKworCXNlY3MgPSBjYWxsb2MoZWhkci5lX3NobnVtLCBzaXplb2Yoc3RydWN0IHNlY3Rpb24pKTsKKwlpZiAoIXNlY3MpIHsKKwkJZGllKCJVbmFibGUgdG8gYWxsb2NhdGUgJWQgc2VjdGlvbiBoZWFkZXJzXG4iLAorCQkgICAgZWhkci5lX3NobnVtKTsKIAl9CiAJaWYgKGZzZWVrKGZwLCBlaGRyLmVfc2hvZmYsIFNFRUtfU0VUKSA8IDApIHsKIAkJZGllKCJTZWVrIHRvICVkIGZhaWxlZDogJXNcbiIsCiAJCQllaGRyLmVfc2hvZmYsIHN0cmVycm9yKGVycm5vKSk7CiAJfQotCWlmIChmcmVhZCgmc2hkciwgc2l6ZW9mKHNoZHJbMF0pLCBlaGRyLmVfc2hudW0sIGZwKSAhPSBlaGRyLmVfc2hudW0pIHsKLQkJZGllKCJDYW5ub3QgcmVhZCBFTEYgc2VjdGlvbiBoZWFkZXJzOiAlc1xuIiwKLQkJCXN0cmVycm9yKGVycm5vKSk7Ci0JfQotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7Ci0JCXNoZHJbaV0uc2hfbmFtZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfbmFtZSk7Ci0JCXNoZHJbaV0uc2hfdHlwZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfdHlwZSk7Ci0JCXNoZHJbaV0uc2hfZmxhZ3MgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfZmxhZ3MpOwotCQlzaGRyW2ldLnNoX2FkZHIgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX2FkZHIpOwotCQlzaGRyW2ldLnNoX29mZnNldCAgICA9IGVsZjMyX3RvX2NwdShzaGRyW2ldLnNoX29mZnNldCk7Ci0JCXNoZHJbaV0uc2hfc2l6ZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfc2l6ZSk7Ci0JCXNoZHJbaV0uc2hfbGluayAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfbGluayk7Ci0JCXNoZHJbaV0uc2hfaW5mbyAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfaW5mbyk7Ci0JCXNoZHJbaV0uc2hfYWRkcmFsaWduID0gZWxmMzJfdG9fY3B1KHNoZHJbaV0uc2hfYWRkcmFsaWduKTsKLQkJc2hkcltpXS5zaF9lbnRzaXplICAgPSBlbGYzMl90b19jcHUoc2hkcltpXS5zaF9lbnRzaXplKTsKKwlmb3IgKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCQlpZiAoZnJlYWQoJnNoZHIsIHNpemVvZiBzaGRyLCAxLCBmcCkgIT0gMSkKKwkJCWRpZSgiQ2Fubm90IHJlYWQgRUxGIHNlY3Rpb24gaGVhZGVycyAlZC8lZDogJXNcbiIsCisJCQkgICAgaSwgZWhkci5lX3NobnVtLCBzdHJlcnJvcihlcnJubykpOworCQlzZWMtPnNoZHIuc2hfbmFtZSAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfbmFtZSk7CisJCXNlYy0+c2hkci5zaF90eXBlICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF90eXBlKTsKKwkJc2VjLT5zaGRyLnNoX2ZsYWdzICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2ZsYWdzKTsKKwkJc2VjLT5zaGRyLnNoX2FkZHIgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2FkZHIpOworCQlzZWMtPnNoZHIuc2hfb2Zmc2V0ICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfb2Zmc2V0KTsKKwkJc2VjLT5zaGRyLnNoX3NpemUgICAgICA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX3NpemUpOworCQlzZWMtPnNoZHIuc2hfbGluayAgICAgID0gZWxmMzJfdG9fY3B1KHNoZHIuc2hfbGluayk7CisJCXNlYy0+c2hkci5zaF9pbmZvICAgICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9pbmZvKTsKKwkJc2VjLT5zaGRyLnNoX2FkZHJhbGlnbiA9IGVsZjMyX3RvX2NwdShzaGRyLnNoX2FkZHJhbGlnbik7CisJCXNlYy0+c2hkci5zaF9lbnRzaXplICAgPSBlbGYzMl90b19jcHUoc2hkci5zaF9lbnRzaXplKTsKKwkJaWYgKHNlYy0+c2hkci5zaF9saW5rIDwgZWhkci5lX3NobnVtKQorCQkJc2VjLT5saW5rID0gJnNlY3Nbc2VjLT5zaGRyLnNoX2xpbmtdOwogCX0KIAogfQpAQCAtMjc0LDIwICsyODMsMjIgQEAKIHN0YXRpYyB2b2lkIHJlYWRfc3RydGFicyhGSUxFICpmcCkKIHsKIAlpbnQgaTsKLQlmb3IoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgewotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9TVFJUQUIpIHsKKwlmb3IgKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKKwkJc3RydWN0IHNlY3Rpb24gKnNlYyA9ICZzZWNzW2ldOworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1NUUlRBQikgewogCQkJY29udGludWU7CiAJCX0KLQkJc3RydGFiW2ldID0gbWFsbG9jKHNoZHJbaV0uc2hfc2l6ZSk7Ci0JCWlmICghc3RydGFiW2ldKSB7CisJCXNlYy0+c3RydGFiID0gbWFsbG9jKHNlYy0+c2hkci5zaF9zaXplKTsKKwkJaWYgKCFzZWMtPnN0cnRhYikgewogCQkJZGllKCJtYWxsb2Mgb2YgJWQgYnl0ZXMgZm9yIHN0cnRhYiBmYWlsZWRcbiIsCi0JCQkJc2hkcltpXS5zaF9zaXplKTsKKwkJCQlzZWMtPnNoZHIuc2hfc2l6ZSk7CiAJCX0KLQkJaWYgKGZzZWVrKGZwLCBzaGRyW2ldLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgeworCQlpZiAoZnNlZWsoZnAsIHNlYy0+c2hkci5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKIAkJCWRpZSgiU2VlayB0byAlZCBmYWlsZWQ6ICVzXG4iLAotCQkJCXNoZHJbaV0uc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOworCQkJCXNlYy0+c2hkci5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJaWYgKGZyZWFkKHN0cnRhYltpXSwgMSwgc2hkcltpXS5zaF9zaXplLCBmcCkgIT0gc2hkcltpXS5zaF9zaXplKSB7CisJCWlmIChmcmVhZChzZWMtPnN0cnRhYiwgMSwgc2VjLT5zaGRyLnNoX3NpemUsIGZwKQorCQkgICAgIT0gc2VjLT5zaGRyLnNoX3NpemUpIHsKIAkJCWRpZSgiQ2Fubm90IHJlYWQgc3ltYm9sIHRhYmxlOiAlc1xuIiwKIAkJCQlzdHJlcnJvcihlcnJubykpOwogCQl9CkBAIC0yOTcsMjggKzMwOCwzMSBAQAogc3RhdGljIHZvaWQgcmVhZF9zeW10YWJzKEZJTEUgKmZwKQogewogCWludCBpLGo7Ci0JZm9yKGkgPSAwOyBpIDwgZWhkci5lX3NobnVtOyBpKyspIHsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfU1lNVEFCKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9TWU1UQUIpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXN5bXRhYltpXSA9IG1hbGxvYyhzaGRyW2ldLnNoX3NpemUpOwotCQlpZiAoIXN5bXRhYltpXSkgeworCQlzZWMtPnN5bXRhYiA9IG1hbGxvYyhzZWMtPnNoZHIuc2hfc2l6ZSk7CisJCWlmICghc2VjLT5zeW10YWIpIHsKIAkJCWRpZSgibWFsbG9jIG9mICVkIGJ5dGVzIGZvciBzeW10YWIgZmFpbGVkXG4iLAotCQkJCXNoZHJbaV0uc2hfc2l6ZSk7CisJCQkJc2VjLT5zaGRyLnNoX3NpemUpOwogCQl9Ci0JCWlmIChmc2VlayhmcCwgc2hkcltpXS5zaF9vZmZzZXQsIFNFRUtfU0VUKSA8IDApIHsKKwkJaWYgKGZzZWVrKGZwLCBzZWMtPnNoZHIuc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CiAJCQlkaWUoIlNlZWsgdG8gJWQgZmFpbGVkOiAlc1xuIiwKLQkJCQlzaGRyW2ldLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlzZWMtPnNoZHIuc2hfb2Zmc2V0LCBzdHJlcnJvcihlcnJubykpOwogCQl9Ci0JCWlmIChmcmVhZChzeW10YWJbaV0sIDEsIHNoZHJbaV0uc2hfc2l6ZSwgZnApICE9IHNoZHJbaV0uc2hfc2l6ZSkgeworCQlpZiAoZnJlYWQoc2VjLT5zeW10YWIsIDEsIHNlYy0+c2hkci5zaF9zaXplLCBmcCkKKwkJICAgICE9IHNlYy0+c2hkci5zaF9zaXplKSB7CiAJCQlkaWUoIkNhbm5vdCByZWFkIHN5bWJvbCB0YWJsZTogJXNcbiIsCiAJCQkJc3RyZXJyb3IoZXJybm8pKTsKIAkJfQotCQlmb3IoaiA9IDA7IGogPCBzaGRyW2ldLnNoX3NpemUvc2l6ZW9mKHN5bXRhYltpXVswXSk7IGorKykgewotCQkJc3ltdGFiW2ldW2pdLnN0X25hbWUgID0gZWxmMzJfdG9fY3B1KHN5bXRhYltpXVtqXS5zdF9uYW1lKTsKLQkJCXN5bXRhYltpXVtqXS5zdF92YWx1ZSA9IGVsZjMyX3RvX2NwdShzeW10YWJbaV1bal0uc3RfdmFsdWUpOwotCQkJc3ltdGFiW2ldW2pdLnN0X3NpemUgID0gZWxmMzJfdG9fY3B1KHN5bXRhYltpXVtqXS5zdF9zaXplKTsKLQkJCXN5bXRhYltpXVtqXS5zdF9zaG5keCA9IGVsZjE2X3RvX2NwdShzeW10YWJbaV1bal0uc3Rfc2huZHgpOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1N5bSk7IGorKykgeworCQkJRWxmMzJfU3ltICpzeW0gPSAmc2VjLT5zeW10YWJbal07CisJCQlzeW0tPnN0X25hbWUgID0gZWxmMzJfdG9fY3B1KHN5bS0+c3RfbmFtZSk7CisJCQlzeW0tPnN0X3ZhbHVlID0gZWxmMzJfdG9fY3B1KHN5bS0+c3RfdmFsdWUpOworCQkJc3ltLT5zdF9zaXplICA9IGVsZjMyX3RvX2NwdShzeW0tPnN0X3NpemUpOworCQkJc3ltLT5zdF9zaG5keCA9IGVsZjE2X3RvX2NwdShzeW0tPnN0X3NobmR4KTsKIAkJfQogCX0KIH0KQEAgLTMyNywyNiArMzQxLDI5IEBACiBzdGF0aWMgdm9pZCByZWFkX3JlbG9jcyhGSUxFICpmcCkKIHsKIAlpbnQgaSxqOwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1JFTCkgeworCWZvciAoaSA9IDA7IGkgPCBlaGRyLmVfc2hudW07IGkrKykgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfUkVMKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlyZWx0YWJbaV0gPSBtYWxsb2Moc2hkcltpXS5zaF9zaXplKTsKLQkJaWYgKCFyZWx0YWJbaV0pIHsKKwkJc2VjLT5yZWx0YWIgPSBtYWxsb2Moc2VjLT5zaGRyLnNoX3NpemUpOworCQlpZiAoIXNlYy0+cmVsdGFiKSB7CiAJCQlkaWUoIm1hbGxvYyBvZiAlZCBieXRlcyBmb3IgcmVsb2NzIGZhaWxlZFxuIiwKLQkJCQlzaGRyW2ldLnNoX3NpemUpOworCQkJCXNlYy0+c2hkci5zaF9zaXplKTsKIAkJfQotCQlpZiAoZnNlZWsoZnAsIHNoZHJbaV0uc2hfb2Zmc2V0LCBTRUVLX1NFVCkgPCAwKSB7CisJCWlmIChmc2VlayhmcCwgc2VjLT5zaGRyLnNoX29mZnNldCwgU0VFS19TRVQpIDwgMCkgewogCQkJZGllKCJTZWVrIHRvICVkIGZhaWxlZDogJXNcbiIsCi0JCQkJc2hkcltpXS5zaF9vZmZzZXQsIHN0cmVycm9yKGVycm5vKSk7CisJCQkJc2VjLT5zaGRyLnNoX29mZnNldCwgc3RyZXJyb3IoZXJybm8pKTsKIAkJfQotCQlpZiAoZnJlYWQocmVsdGFiW2ldLCAxLCBzaGRyW2ldLnNoX3NpemUsIGZwKSAhPSBzaGRyW2ldLnNoX3NpemUpIHsKKwkJaWYgKGZyZWFkKHNlYy0+cmVsdGFiLCAxLCBzZWMtPnNoZHIuc2hfc2l6ZSwgZnApCisJCSAgICAhPSBzZWMtPnNoZHIuc2hfc2l6ZSkgewogCQkJZGllKCJDYW5ub3QgcmVhZCBzeW1ib2wgdGFibGU6ICVzXG4iLAogCQkJCXN0cmVycm9yKGVycm5vKSk7CiAJCX0KLQkJZm9yKGogPSAwOyBqIDwgc2hkcltpXS5zaF9zaXplL3NpemVvZihyZWx0YWJbMF1bMF0pOyBqKyspIHsKLQkJCXJlbHRhYltpXVtqXS5yX29mZnNldCA9IGVsZjMyX3RvX2NwdShyZWx0YWJbaV1bal0ucl9vZmZzZXQpOwotCQkJcmVsdGFiW2ldW2pdLnJfaW5mbyAgID0gZWxmMzJfdG9fY3B1KHJlbHRhYltpXVtqXS5yX2luZm8pOworCQlmb3IgKGogPSAwOyBqIDwgc2VjLT5zaGRyLnNoX3NpemUvc2l6ZW9mKEVsZjMyX1JlbCk7IGorKykgeworCQkJRWxmMzJfUmVsICpyZWwgPSAmc2VjLT5yZWx0YWJbal07CisJCQlyZWwtPnJfb2Zmc2V0ID0gZWxmMzJfdG9fY3B1KHJlbC0+cl9vZmZzZXQpOworCQkJcmVsLT5yX2luZm8gICA9IGVsZjMyX3RvX2NwdShyZWwtPnJfaW5mbyk7CiAJCX0KIAl9CiB9CkBAIC0zNTcsMTkgKzM3NCwyMSBAQAogCWludCBpOwogCXByaW50ZigiQWJzb2x1dGUgc3ltYm9sc1xuIik7CiAJcHJpbnRmKCIgTnVtOiAgICBWYWx1ZSBTaXplICBUeXBlICAgICAgIEJpbmQgICAgICAgIFZpc2liaWxpdHkgIE5hbWVcbiIpOwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKIAkJY2hhciAqc3ltX3N0cnRhYjsKIAkJRWxmMzJfU3ltICpzaF9zeW10YWI7CiAJCWludCBqOwotCQlpZiAoc2hkcltpXS5zaF90eXBlICE9IFNIVF9TWU1UQUIpIHsKKworCQlpZiAoc2VjLT5zaGRyLnNoX3R5cGUgIT0gU0hUX1NZTVRBQikgewogCQkJY29udGludWU7CiAJCX0KLQkJc2hfc3ltdGFiID0gc3ltdGFiW2ldOwotCQlzeW1fc3RydGFiID0gc3RydGFiW3NoZHJbaV0uc2hfbGlua107Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2Yoc3ltdGFiWzBdWzBdKTsgaisrKSB7CisJCXNoX3N5bXRhYiA9IHNlYy0+c3ltdGFiOworCQlzeW1fc3RydGFiID0gc2VjLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfU3ltKTsgaisrKSB7CiAJCQlFbGYzMl9TeW0gKnN5bTsKIAkJCWNvbnN0IGNoYXIgKm5hbWU7Ci0JCQlzeW0gPSAmc3ltdGFiW2ldW2pdOworCQkJc3ltID0gJnNlYy0+c3ltdGFiW2pdOwogCQkJbmFtZSA9IHN5bV9uYW1lKHN5bV9zdHJ0YWIsIHN5bSk7CiAJCQlpZiAoc3ltLT5zdF9zaG5keCAhPSBTSE5fQUJTKSB7CiAJCQkJY29udGludWU7CkBAIC0zODksMjYgKzQwOCwyNyBAQAogewogCWludCBpLCBwcmludGVkID0gMDsKIAotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJCXN0cnVjdCBzZWN0aW9uICpzZWMgPSAmc2Vjc1tpXTsKKwkJc3RydWN0IHNlY3Rpb24gKnNlY19hcHBsaWVzLCAqc2VjX3N5bXRhYjsKIAkJY2hhciAqc3ltX3N0cnRhYjsKIAkJRWxmMzJfU3ltICpzaF9zeW10YWI7Ci0JCXVuc2lnbmVkIHNlY19hcHBsaWVzLCBzZWNfc3ltdGFiOwogCQlpbnQgajsKLQkJaWYgKHNoZHJbaV0uc2hfdHlwZSAhPSBTSFRfUkVMKSB7CisJCWlmIChzZWMtPnNoZHIuc2hfdHlwZSAhPSBTSFRfUkVMKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzZWNfc3ltdGFiICA9IHNoZHJbaV0uc2hfbGluazsKLQkJc2VjX2FwcGxpZXMgPSBzaGRyW2ldLnNoX2luZm87Ci0JCWlmICghKHNoZHJbc2VjX2FwcGxpZXNdLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgeworCQlzZWNfc3ltdGFiICA9IHNlYy0+bGluazsKKwkJc2VjX2FwcGxpZXMgPSAmc2Vjc1tzZWMtPnNoZHIuc2hfaW5mb107CisJCWlmICghKHNlY19hcHBsaWVzLT5zaGRyLnNoX2ZsYWdzICYgU0hGX0FMTE9DKSkgewogCQkJY29udGludWU7CiAJCX0KLQkJc2hfc3ltdGFiID0gc3ltdGFiW3NlY19zeW10YWJdOwotCQlzeW1fc3RydGFiID0gc3RydGFiW3NoZHJbc2VjX3N5bXRhYl0uc2hfbGlua107Ci0JCWZvcihqID0gMDsgaiA8IHNoZHJbaV0uc2hfc2l6ZS9zaXplb2YocmVsdGFiWzBdWzBdKTsgaisrKSB7CisJCXNoX3N5bXRhYiAgPSBzZWNfc3ltdGFiLT5zeW10YWI7CisJCXN5bV9zdHJ0YWIgPSBzZWNfc3ltdGFiLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfUmVsKTsgaisrKSB7CiAJCQlFbGYzMl9SZWwgKnJlbDsKIAkJCUVsZjMyX1N5bSAqc3ltOwogCQkJY29uc3QgY2hhciAqbmFtZTsKLQkJCXJlbCA9ICZyZWx0YWJbaV1bal07CisJCQlyZWwgPSAmc2VjLT5yZWx0YWJbal07CiAJCQlzeW0gPSAmc2hfc3ltdGFiW0VMRjMyX1JfU1lNKHJlbC0+cl9pbmZvKV07CiAJCQluYW1lID0gc3ltX25hbWUoc3ltX3N0cnRhYiwgc3ltKTsKIAkJCWlmIChzeW0tPnN0X3NobmR4ICE9IFNITl9BQlMpIHsKQEAgLTQ1NiwyNiArNDc2LDI4IEBACiB7CiAJaW50IGk7CiAJLyogV2FsayB0aHJvdWdoIHRoZSByZWxvY2F0aW9ucyAqLwotCWZvcihpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGVoZHIuZV9zaG51bTsgaSsrKSB7CiAJCWNoYXIgKnN5bV9zdHJ0YWI7CiAJCUVsZjMyX1N5bSAqc2hfc3ltdGFiOwotCQl1bnNpZ25lZCBzZWNfYXBwbGllcywgc2VjX3N5bXRhYjsKKwkJc3RydWN0IHNlY3Rpb24gKnNlY19hcHBsaWVzLCAqc2VjX3N5bXRhYjsKIAkJaW50IGo7Ci0JCWlmIChzaGRyW2ldLnNoX3R5cGUgIT0gU0hUX1JFTCkgeworCQlzdHJ1Y3Qgc2VjdGlvbiAqc2VjID0gJnNlY3NbaV07CisKKwkJaWYgKHNlYy0+c2hkci5zaF90eXBlICE9IFNIVF9SRUwpIHsKIAkJCWNvbnRpbnVlOwogCQl9Ci0JCXNlY19zeW10YWIgID0gc2hkcltpXS5zaF9saW5rOwotCQlzZWNfYXBwbGllcyA9IHNoZHJbaV0uc2hfaW5mbzsKLQkJaWYgKCEoc2hkcltzZWNfYXBwbGllc10uc2hfZmxhZ3MgJiBTSEZfQUxMT0MpKSB7CisJCXNlY19zeW10YWIgID0gc2VjLT5saW5rOworCQlzZWNfYXBwbGllcyA9ICZzZWNzW3NlYy0+c2hkci5zaF9pbmZvXTsKKwkJaWYgKCEoc2VjX2FwcGxpZXMtPnNoZHIuc2hfZmxhZ3MgJiBTSEZfQUxMT0MpKSB7CiAJCQljb250aW51ZTsKIAkJfQotCQlzaF9zeW10YWIgPSBzeW10YWJbc2VjX3N5bXRhYl07Ci0JCXN5bV9zdHJ0YWIgPSBzdHJ0YWJbc2hkcltzZWNfc3ltdGFiXS5zaF9saW5rXTsKLQkJZm9yKGogPSAwOyBqIDwgc2hkcltpXS5zaF9zaXplL3NpemVvZihyZWx0YWJbMF1bMF0pOyBqKyspIHsKKwkJc2hfc3ltdGFiID0gc2VjX3N5bXRhYi0+c3ltdGFiOworCQlzeW1fc3RydGFiID0gc2VjLT5saW5rLT5zdHJ0YWI7CisJCWZvciAoaiA9IDA7IGogPCBzZWMtPnNoZHIuc2hfc2l6ZS9zaXplb2YoRWxmMzJfUmVsKTsgaisrKSB7CiAJCQlFbGYzMl9SZWwgKnJlbDsKIAkJCUVsZjMyX1N5bSAqc3ltOwogCQkJdW5zaWduZWQgcl90eXBlOwotCQkJcmVsID0gJnJlbHRhYltpXVtqXTsKKwkJCXJlbCA9ICZzZWMtPnJlbHRhYltqXTsKIAkJCXN5bSA9ICZzaF9zeW10YWJbRUxGMzJfUl9TWU0ocmVsLT5yX2luZm8pXTsKIAkJCXJfdHlwZSA9IEVMRjMyX1JfVFlQRShyZWwtPnJfaW5mbyk7CiAJCQkvKiBEb24ndCB2aXNpdCByZWxvY2F0aW9ucyB0byBhYnNvbHV0ZSBzeW1ib2xzICovCkBAIC01MzksNyArNTYxLDcgQEAKIAkJICovCiAJCXByaW50ZigiLnNlY3Rpb24gXCIuZGF0YS5yZWxvY1wiLFwiYVwiXG4iKTsKIAkJcHJpbnRmKCIuYmFsaWduIDRcbiIpOwotCQlmb3IoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CiAJCQlwcmludGYoIlx0IC5sb25nIDB4JTA4bHhcbiIsIHJlbG9jc1tpXSk7CiAJCX0KIAkJcHJpbnRmKCJcbiIpOwpAQCAtNTUwLDcgKzU3Miw3IEBACiAJCS8qIFByaW50IGEgc3RvcCAqLwogCQlwcmludGYoIiVjJWMlYyVjIiwgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdKTsKIAkJLyogTm93IHByaW50IGVhY2ggcmVsb2NhdGlvbiAqLwotCQlmb3IoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCByZWxvY19jb3VudDsgaSsrKSB7CiAJCQlidWZbMF0gPSAocmVsb2NzW2ldID4+ICAwKSAmIDB4ZmY7CiAJCQlidWZbMV0gPSAocmVsb2NzW2ldID4+ICA4KSAmIDB4ZmY7CiAJCQlidWZbMl0gPSAocmVsb2NzW2ldID4+IDE2KSAmIDB4ZmY7CkBAIC01NzcsNyArNTk5LDcgQEAKIAlzaG93X2Fic29sdXRlX3JlbG9jcyA9IDA7CiAJYXNfdGV4dCA9IDA7CiAJZm5hbWUgPSBOVUxMOwotCWZvcihpID0gMTsgaSA8IGFyZ2M7IGkrKykgeworCWZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspIHsKIAkJY2hhciAqYXJnID0gYXJndltpXTsKIAkJaWYgKCphcmcgPT0gJy0nKSB7CiAJCQlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLWFicy1zeW1zIikgPT0gMCkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9jcHUuYyBiL2FyY2gveDg2L2Jvb3QvY3B1LmMKaW5kZXggMDBlMTllZC4uOTJkNmZkNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9jcHUuYworKysgYi9hcmNoL3g4Ni9ib290L2NwdS5jCkBAIC0yOCw2ICsyOCw4IEBACiAJaWYgKGxldmVsID09IDY0KSB7CiAJCXJldHVybiAieDg2LTY0IjsKIAl9IGVsc2UgeworCQlpZiAobGV2ZWwgPT0gMTUpCisJCQlsZXZlbCA9IDY7CiAJCXNwcmludGYoYnVmLCAiaSVkODYiLCBsZXZlbCk7CiAJCXJldHVybiBidWY7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYm9vdC9tYWluLmMgYi9hcmNoL3g4Ni9ib290L21haW4uYwppbmRleCA3NzU2OWE0Li4yMjk2MTY0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L21haW4uYworKysgYi9hcmNoL3g4Ni9ib290L21haW4uYwpAQCAtMTY1LDYgKzE2NSwxMCBAQAogCS8qIFNldCB0aGUgdmlkZW8gbW9kZSAqLwogCXNldF92aWRlbygpOwogCisJLyogUGFyc2UgY29tbWFuZCBsaW5lIGZvciAncXVpZXQnIGFuZCBwYXNzIGl0IHRvIGRlY29tcHJlc3Nvci4gKi8KKwlpZiAoY21kbGluZV9maW5kX29wdGlvbl9ib29sKCJxdWlldCIpKQorCQlib290X3BhcmFtcy5oZHIubG9hZGZsYWdzIHw9IFFVSUVUX0ZMQUc7CisKIAkvKiBEbyB0aGUgbGFzdCB0aGluZ3MgYW5kIGludm9rZSBwcm90ZWN0ZWQgbW9kZSAqLwogCWdvX3RvX3Byb3RlY3RlZF9tb2RlKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L21lbW9yeS5jIGIvYXJjaC94ODYvYm9vdC9tZW1vcnkuYwppbmRleCBhY2FkMzJlLi41MzE2NWM5IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9ib290L21lbW9yeS5jCisrKyBiL2FyY2gveDg2L2Jvb3QvbWVtb3J5LmMKQEAgLTEzLDYgKzEzLDcgQEAKICAqLwogCiAjaW5jbHVkZSAiYm9vdC5oIgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCiAjZGVmaW5lIFNNQVAJMHg1MzRkNDE1MAkvKiBBU0NJSSAiU01BUCIgKi8KIApAQCAtNTMsNyArNTQsNyBAQAogCiAJCWNvdW50Kys7CiAJCWRlc2MrKzsKLQl9IHdoaWxlIChuZXh0ICYmIGNvdW50IDwgRTgyME1BWCk7CisJfSB3aGlsZSAobmV4dCAmJiBjb3VudCA8IEFSUkFZX1NJWkUoYm9vdF9wYXJhbXMuZTgyMF9tYXApKTsKIAogCXJldHVybiBib290X3BhcmFtcy5lODIwX2VudHJpZXMgPSBjb3VudDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvcG1qdW1wLlMgYi9hcmNoL3g4Ni9ib290L3BtanVtcC5TCmluZGV4IGFiMDQ5ZDQuLjE0MWI2ZTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvcG1qdW1wLlMKKysrIGIvYXJjaC94ODYvYm9vdC9wbWp1bXAuUwpAQCAtMzMsNiArMzMsOCBAQAogCW1vdncJJWNzLCAlYngKIAlzaGxsCSQ0LCAlZWJ4CiAJYWRkbAklZWJ4LCAyZgorCWptcAkxZgkJCSMgU2hvcnQganVtcCB0byBzZXJpYWxpemUgb24gMzg2LzQ4NgorMToKIAogCW1vdncJJF9fQk9PVF9EUywgJWN4CiAJbW92dwkkX19CT09UX1RTUywgJWRpCkBAIC00MCw4ICs0Miw2IEBACiAJbW92bAklY3IwLCAlZWR4CiAJb3JiCSRYODZfQ1IwX1BFLCAlZGwJIyBQcm90ZWN0ZWQgbW9kZQogCW1vdmwJJWVkeCwgJWNyMAotCWptcAkxZgkJCSMgU2hvcnQganVtcCB0byBzZXJpYWxpemUgb24gMzg2LzQ4NgotMToKIAogCSMgVHJhbnNpdGlvbiB0byAzMi1iaXQgbW9kZQogCS5ieXRlCTB4NjYsIDB4ZWEJCSMgbGptcGwgb3Bjb2RlCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9ib290L3ByaW50Zi5jIGIvYXJjaC94ODYvYm9vdC9wcmludGYuYwppbmRleCBjMWQwMGMwMi4uNTBlNDdjZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvYm9vdC9wcmludGYuYworKysgYi9hcmNoL3g4Ni9ib290L3ByaW50Zi5jCkBAIC01Niw3ICs1Niw3IEBACiAJaWYgKHR5cGUgJiBMRUZUKQogCQl0eXBlICY9IH5aRVJPUEFEOwogCWlmIChiYXNlIDwgMiB8fCBiYXNlID4gMzYpCi0JCXJldHVybiAwOworCQlyZXR1cm4gTlVMTDsKIAljID0gKHR5cGUgJiBaRVJPUEFEKSA/ICcwJyA6ICcgJzsKIAlzaWduID0gMDsKIAlpZiAodHlwZSAmIFNJR04pIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmdhLmMgYi9hcmNoL3g4Ni9ib290L3ZpZGVvLXZnYS5jCmluZGV4IDQwZWNiOGQuLmI5MzljYjQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2Jvb3QvdmlkZW8tdmdhLmMKKysrIGIvYXJjaC94ODYvYm9vdC92aWRlby12Z2EuYwpAQCAtMjU5LDggKzI1OSw3IEBACiAJcmV0dXJuIG1vZGVfY291bnRbYWRhcHRlcl07CiB9CiAKLV9fdmlkZW9jYXJkIHZpZGVvX3ZnYSA9Ci17CitfX3ZpZGVvY2FyZCB2aWRlb192Z2EgPSB7CiAJLmNhcmRfbmFtZQk9ICJWR0EiLAogCS5wcm9iZQkJPSB2Z2FfcHJvYmUsCiAJLnNldF9tb2RlCT0gdmdhX3NldF9tb2RlLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZyBiL2FyY2gveDg2L2NvbmZpZ3MvaTM4Nl9kZWZjb25maWcKaW5kZXggYWQ3ZGRhYS4uOWJjMzRlMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY29uZmlncy9pMzg2X2RlZmNvbmZpZworKysgYi9hcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnCkBAIC0xLDU0ICsxLDEwMyBAQAogIwogIyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtYWtlIGNvbmZpZzogZG9uJ3QgZWRpdAotIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjIyLWdpdDE0Ci0jIEZyaSBKdWwgMjAgMDk6NTM6MTUgMjAwNworIyBMaW51eCBrZXJuZWwgdmVyc2lvbjogMi42LjI2LXJjMQorIyBTdW4gTWF5ICA0IDE5OjU5OjAyIDIwMDgKICMKKyMgQ09ORklHXzY0QklUIGlzIG5vdCBzZXQKIENPTkZJR19YODZfMzI9eQorIyBDT05GSUdfWDg2XzY0IGlzIG5vdCBzZXQKK0NPTkZJR19YODY9eQorQ09ORklHX0RFRkNPTkZJR19MSVNUPSJhcmNoL3g4Ni9jb25maWdzL2kzODZfZGVmY29uZmlnIgorIyBDT05GSUdfR0VORVJJQ19MT0NLQlJFQUsgaXMgbm90IHNldAogQ09ORklHX0dFTkVSSUNfVElNRT15CitDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15CiBDT05GSUdfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0c9eQogQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQogQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUPXkKIENPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15Ci1DT05GSUdfU0VNQVBIT1JFX1NMRUVQRVJTPXkKLUNPTkZJR19YODY9eQorQ09ORklHX0hBVkVfTEFURU5DWVRPUF9TVVBQT1JUPXkKK0NPTkZJR19GQVNUX0NNUFhDSEdfTE9DQUw9eQogQ09ORklHX01NVT15CiBDT05GSUdfWk9ORV9ETUE9eQotQ09ORklHX1FVSUNLTElTVD15CiBDT05GSUdfR0VORVJJQ19JU0FfRE1BPXkKIENPTkZJR19HRU5FUklDX0lPTUFQPXkKIENPTkZJR19HRU5FUklDX0JVRz15CiBDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKKyMgQ09ORklHX0dFTkVSSUNfR1BJTyBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQotQ09ORklHX0RNST15Ci1DT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgotCi0jCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucwotIwotQ09ORklHX0VYUEVSSU1FTlRBTD15Ci1DT05GSUdfTE9DS19LRVJORUw9eQotQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorIyBDT05GSUdfUldTRU1fR0VORVJJQ19TUElOTE9DSyBpcyBub3Qgc2V0CitDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE09eQorIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9IQVNfQ1BVX0lETEVfV0FJVD15CitDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVMQVk9eQorIyBDT05GSUdfR0VORVJJQ19USU1FX1ZTWVNDQUxMIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX0hBU19DUFVfUkVMQVg9eQorQ09ORklHX0FSQ0hfSEFTX0NBQ0hFX0xJTkVfU0laRT15CitDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUE9eQorIyBDT05GSUdfSEFWRV9DUFVNQVNLX09GX0NQVV9NQVAgaXMgbm90IHNldAorQ09ORklHX0FSQ0hfSElCRVJOQVRJT05fUE9TU0lCTEU9eQorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CisjIENPTkZJR19aT05FX0RNQTMyIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15CisjIENPTkZJR19BVURJVF9BUkNIIGlzIG5vdCBzZXQKK0NPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQ9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfT1BUSU1JWkVEX0lOTElOSU5HPXkKK0NPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKK0NPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15CitDT05GSUdfR0VORVJJQ19QRU5ESU5HX0lSUT15CitDT05GSUdfWDg2X1NNUD15CitDT05GSUdfWDg2XzMyX1NNUD15CitDT05GSUdfWDg2X0hUPXkKK0NPTkZJR19YODZfQklPU19SRUJPT1Q9eQorQ09ORklHX1g4Nl9UUkFNUE9MSU5FPXkKK0NPTkZJR19LVElNRV9TQ0FMQVI9eQogCiAjCiAjIEdlbmVyYWwgc2V0dXAKICMKK0NPTkZJR19FWFBFUklNRU5UQUw9eQorQ09ORklHX0xPQ0tfS0VSTkVMPXkKK0NPTkZJR19JTklUX0VOVl9BUkdfTElNSVQ9MzIKIENPTkZJR19MT0NBTFZFUlNJT049IiIKLUNPTkZJR19MT0NBTFZFUlNJT05fQVVUTz15CisjIENPTkZJR19MT0NBTFZFUlNJT05fQVVUTyBpcyBub3Qgc2V0CiBDT05GSUdfU1dBUD15CiBDT05GSUdfU1lTVklQQz15CiBDT05GSUdfU1lTVklQQ19TWVNDVEw9eQogQ09ORklHX1BPU0lYX01RVUVVRT15Ci0jIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RBU0tTVEFUUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0VSX05TIGlzIG5vdCBzZXQKLSMgQ09ORklHX0FVRElUIGlzIG5vdCBzZXQKLUNPTkZJR19JS0NPTkZJRz15Ci1DT05GSUdfSUtDT05GSUdfUFJPQz15Ci1DT05GSUdfTE9HX0JVRl9TSElGVD0xOAotIyBDT05GSUdfQ1BVU0VUUyBpcyBub3Qgc2V0Ci1DT05GSUdfU1lTRlNfREVQUkVDQVRFRD15CitDT05GSUdfQlNEX1BST0NFU1NfQUNDVD15CisjIENPTkZJR19CU0RfUFJPQ0VTU19BQ0NUX1YzIGlzIG5vdCBzZXQKK0NPTkZJR19UQVNLU1RBVFM9eQorQ09ORklHX1RBU0tfREVMQVlfQUNDVD15CitDT05GSUdfVEFTS19YQUNDVD15CitDT05GSUdfVEFTS19JT19BQ0NPVU5USU5HPXkKK0NPTkZJR19BVURJVD15CitDT05GSUdfQVVESVRTWVNDQUxMPXkKK0NPTkZJR19BVURJVF9UUkVFPXkKKyMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dfQlVGX1NISUZUPTE3CitDT05GSUdfQ0dST1VQUz15CisjIENPTkZJR19DR1JPVVBfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0NHUk9VUF9OUz15CisjIENPTkZJR19DR1JPVVBfREVWSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19DUFVTRVRTPXkKK0NPTkZJR19HUk9VUF9TQ0hFRD15CitDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRD15CisjIENPTkZJR19SVF9HUk9VUF9TQ0hFRCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0VSX1NDSEVEIGlzIG5vdCBzZXQKK0NPTkZJR19DR1JPVVBfU0NIRUQ9eQorQ09ORklHX0NHUk9VUF9DUFVBQ0NUPXkKK0NPTkZJR19SRVNPVVJDRV9DT1VOVEVSUz15CisjIENPTkZJR19DR1JPVVBfTUVNX1JFU19DVExSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZU0ZTX0RFUFJFQ0FURURfVjIgaXMgbm90IHNldAorQ09ORklHX1BST0NfUElEX0NQVVNFVD15CiBDT05GSUdfUkVMQVk9eQorQ09ORklHX05BTUVTUEFDRVM9eQorQ09ORklHX1VUU19OUz15CitDT05GSUdfSVBDX05TPXkKK0NPTkZJR19VU0VSX05TPXkKK0NPTkZJR19QSURfTlM9eQogQ09ORklHX0JMS19ERVZfSU5JVFJEPXkKIENPTkZJR19JTklUUkFNRlNfU09VUkNFPSIiCiBDT05GSUdfQ0NfT1BUSU1JWkVfRk9SX1NJWkU9eQpAQCAtNTYsMTMgKzEwNSwxNSBAQAogIyBDT05GSUdfRU1CRURERUQgaXMgbm90IHNldAogQ09ORklHX1VJRDE2PXkKIENPTkZJR19TWVNDVExfU1lTQ0FMTD15CitDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQogQ09ORklHX0tBTExTWU1TPXkKIENPTkZJR19LQUxMU1lNU19BTEw9eQotIyBDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUyBpcyBub3Qgc2V0CitDT05GSUdfS0FMTFNZTVNfRVhUUkFfUEFTUz15CiBDT05GSUdfSE9UUExVRz15CiBDT05GSUdfUFJJTlRLPXkKIENPTkZJR19CVUc9eQogQ09ORklHX0VMRl9DT1JFPXkKKyMgQ09ORklHX0NPTVBBVF9CUksgaXMgbm90IHNldAogQ09ORklHX0JBU0VfRlVMTD15CiBDT05GSUdfRlVURVg9eQogQ09ORklHX0FOT05fSU5PREVTPXkKQEAgLTc2LDYgKzEyNywxNyBAQAogIyBDT05GSUdfU0xBQiBpcyBub3Qgc2V0CiBDT05GSUdfU0xVQj15CiAjIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9GSUxJTkc9eQorQ09ORklHX01BUktFUlM9eQorIyBDT05GSUdfT1BST0ZJTEUgaXMgbm90IHNldAorQ09ORklHX0hBVkVfT1BST0ZJTEU9eQorQ09ORklHX0tQUk9CRVM9eQorQ09ORklHX0tSRVRQUk9CRVM9eQorQ09ORklHX0hBVkVfS1BST0JFUz15CitDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKKyMgQ09ORklHX0hBVkVfRE1BX0FUVFJTIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CitDT05GSUdfU0xBQklORk89eQogQ09ORklHX1JUX01VVEVYRVM9eQogIyBDT05GSUdfVElOWV9TSE1FTSBpcyBub3Qgc2V0CiBDT05GSUdfQkFTRV9TTUFMTD0wCkBAIC04NywxMCArMTQ5LDEwIEBACiAjIENPTkZJR19LTU9EIGlzIG5vdCBzZXQKIENPTkZJR19TVE9QX01BQ0hJTkU9eQogQ09ORklHX0JMT0NLPXkKLUNPTkZJR19MQkQ9eQotIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0CisjIENPTkZJR19MQkQgaXMgbm90IHNldAorQ09ORklHX0JMS19ERVZfSU9fVFJBQ0U9eQogIyBDT05GSUdfTFNGIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQlNHIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX0JTRz15CiAKICMKICMgSU8gU2NoZWR1bGVycwpAQCAtMTAzLDcgKzE2NSw4IEBACiAjIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX0NGUT15CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAotQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iYW50aWNpcGF0b3J5IgorQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBQcm9jZXNzb3IgdHlwZSBhbmQgZmVhdHVyZXMKQEAgLTExMSwxOCArMTc0LDIxIEBACiBDT05GSUdfVElDS19PTkVTSE9UPXkKIENPTkZJR19OT19IWj15CiBDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKIENPTkZJR19TTVA9eQotIyBDT05GSUdfWDg2X1BDIGlzIG5vdCBzZXQKK0NPTkZJR19YODZfUEM9eQogIyBDT05GSUdfWDg2X0VMQU4gaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1ZPWUFHRVIgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X05VTUFRIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9TVU1NSVQgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X0JJR1NNUCBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfVklTV1MgaXMgbm90IHNldAotQ09ORklHX1g4Nl9HRU5FUklDQVJDSD15CisjIENPTkZJR19YODZfR0VORVJJQ0FSQ0ggaXMgbm90IHNldAogIyBDT05GSUdfWDg2X0VTNzAwMCBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQVJBVklSVCBpcyBub3Qgc2V0Ci1DT05GSUdfWDg2X0NZQ0xPTkVfVElNRVI9eQorIyBDT05GSUdfWDg2X1JEQzMyMVggaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1ZTTVAgaXMgbm90IHNldAorQ09ORklHX1NDSEVEX05PX05PX09NSVRfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19QQVJBVklSVF9HVUVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19NMzg2IGlzIG5vdCBzZXQKICMgQ09ORklHX000ODYgaXMgbm90IHNldAogIyBDT05GSUdfTTU4NiBpcyBub3Qgc2V0CkBAIC0xMzAsOSArMTk2LDggQEAKICMgQ09ORklHX001ODZNTVggaXMgbm90IHNldAogIyBDT05GSUdfTTY4NiBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEVOVElVTUlJIGlzIG5vdCBzZXQKLUNPTkZJR19NUEVOVElVTUlJST15CisjIENPTkZJR19NUEVOVElVTUlJSSBpcyBub3Qgc2V0CiAjIENPTkZJR19NUEVOVElVTU0gaXMgbm90IHNldAotIyBDT05GSUdfTUNPUkUyIGlzIG5vdCBzZXQKICMgQ09ORklHX01QRU5USVVNNCBpcyBub3Qgc2V0CiAjIENPTkZJR19NSzYgaXMgbm90IHNldAogIyBDT05GSUdfTUs3IGlzIG5vdCBzZXQKQEAgLTE0NywxNCArMjEyLDE0IEBACiAjIENPTkZJR19NQ1lSSVhJSUkgaXMgbm90IHNldAogIyBDT05GSUdfTVZJQUMzXzIgaXMgbm90IHNldAogIyBDT05GSUdfTVZJQUM3IGlzIG5vdCBzZXQKLUNPTkZJR19YODZfR0VORVJJQz15CisjIENPTkZJR19NUFNDIGlzIG5vdCBzZXQKK0NPTkZJR19NQ09SRTI9eQorIyBDT05GSUdfR0VORVJJQ19DUFUgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X0dFTkVSSUMgaXMgbm90IHNldAorQ09ORklHX1g4Nl9DUFU9eQogQ09ORklHX1g4Nl9DTVBYQ0hHPXkKLUNPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NworQ09ORklHX1g4Nl9MMV9DQUNIRV9TSElGVD02CiBDT05GSUdfWDg2X1hBREQ9eQotQ09ORklHX1JXU0VNX1hDSEdBRERfQUxHT1JJVEhNPXkKLSMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1UzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19BUkNIX0hBU19JTE9HMl9VNjQgaXMgbm90IHNldAotQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKIENPTkZJR19YODZfV1BfV09SS1NfT0s9eQogQ09ORklHX1g4Nl9JTlZMUEc9eQogQ09ORklHX1g4Nl9CU1dBUD15CkBAIC0xNjIsMTA2ICsyMjcsMTIwIEBACiBDT05GSUdfWDg2X0dPT0RfQVBJQz15CiBDT05GSUdfWDg2X0lOVEVMX1VTRVJDT1BZPXkKIENPTkZJR19YODZfVVNFX1BQUk9fQ0hFQ0tTVU09eQorQ09ORklHX1g4Nl9QNl9OT1A9eQogQ09ORklHX1g4Nl9UU0M9eQotQ09ORklHX1g4Nl9DTU9WPXkKLUNPTkZJR19YODZfTUlOSU1VTV9DUFVfRkFNSUxZPTQKK0NPTkZJR19YODZfTUlOSU1VTV9DUFVfRkFNSUxZPTYKK0NPTkZJR19YODZfREVCVUdDVExNU1I9eQogQ09ORklHX0hQRVRfVElNRVI9eQogQ09ORklHX0hQRVRfRU1VTEFURV9SVEM9eQotQ09ORklHX05SX0NQVVM9MzIKLUNPTkZJR19TQ0hFRF9TTVQ9eQorQ09ORklHX0RNST15CisjIENPTkZJR19JT01NVV9IRUxQRVIgaXMgbm90IHNldAorQ09ORklHX05SX0NQVVM9NAorIyBDT05GSUdfU0NIRURfU01UIGlzIG5vdCBzZXQKIENPTkZJR19TQ0hFRF9NQz15CiAjIENPTkZJR19QUkVFTVBUX05PTkUgaXMgbm90IHNldAogQ09ORklHX1BSRUVNUFRfVk9MVU5UQVJZPXkKICMgQ09ORklHX1BSRUVNUFQgaXMgbm90IHNldAotQ09ORklHX1BSRUVNUFRfQktMPXkKIENPTkZJR19YODZfTE9DQUxfQVBJQz15CiBDT05GSUdfWDg2X0lPX0FQSUM9eQotQ09ORklHX1g4Nl9NQ0U9eQotQ09ORklHX1g4Nl9NQ0VfTk9ORkFUQUw9eQotQ09ORklHX1g4Nl9NQ0VfUDRUSEVSTUFMPXkKKyMgQ09ORklHX1g4Nl9NQ0UgaXMgbm90IHNldAogQ09ORklHX1ZNODY9eQogIyBDT05GSUdfVE9TSElCQSBpcyBub3Qgc2V0CiAjIENPTkZJR19JOEsgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1JFQk9PVEZJWFVQUyBpcyBub3Qgc2V0Ci1DT05GSUdfTUlDUk9DT0RFPXkKLUNPTkZJR19NSUNST0NPREVfT0xEX0lOVEVSRkFDRT15CisjIENPTkZJR19NSUNST0NPREUgaXMgbm90IHNldAogQ09ORklHX1g4Nl9NU1I9eQogQ09ORklHX1g4Nl9DUFVJRD15Ci0KLSMKLSMgRmlybXdhcmUgRHJpdmVycwotIwotIyBDT05GSUdfRUREIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RFTExfUkJVIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RDREJBUyBpcyBub3Qgc2V0Ci1DT05GSUdfRE1JSUQ9eQogIyBDT05GSUdfTk9ISUdITUVNIGlzIG5vdCBzZXQKIENPTkZJR19ISUdITUVNNEc9eQogIyBDT05GSUdfSElHSE1FTTY0RyBpcyBub3Qgc2V0CiBDT05GSUdfUEFHRV9PRkZTRVQ9MHhDMDAwMDAwMAogQ09ORklHX0hJR0hNRU09eQotQ09ORklHX0FSQ0hfUE9QVUxBVEVTX05PREVfTUFQPXkKK0NPTkZJR19ORUVEX05PREVfTUVNTUFQX1NJWkU9eQorQ09ORklHX0FSQ0hfRkxBVE1FTV9FTkFCTEU9eQorQ09ORklHX0FSQ0hfU1BBUlNFTUVNX0VOQUJMRT15CitDT05GSUdfQVJDSF9TRUxFQ1RfTUVNT1JZX01PREVMPXkKIENPTkZJR19TRUxFQ1RfTUVNT1JZX01PREVMPXkKLUNPTkZJR19GTEFUTUVNX01BTlVBTD15CisjIENPTkZJR19GTEFUTUVNX01BTlVBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQQVJTRU1FTV9NQU5VQUwgaXMgbm90IHNldAotQ09ORklHX0ZMQVRNRU09eQotQ09ORklHX0ZMQVRfTk9ERV9NRU1fTUFQPXkKLSMgQ09ORklHX1NQQVJTRU1FTV9TVEFUSUMgaXMgbm90IHNldAorQ09ORklHX1NQQVJTRU1FTV9NQU5VQUw9eQorQ09ORklHX1NQQVJTRU1FTT15CitDT05GSUdfSEFWRV9NRU1PUllfUFJFU0VOVD15CitDT05GSUdfU1BBUlNFTUVNX1NUQVRJQz15CisjIENPTkZJR19TUEFSU0VNRU1fVk1FTU1BUF9FTkFCTEUgaXMgbm90IHNldAorCisjCisjIE1lbW9yeSBob3RwbHVnIGlzIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBTb2Z0d2FyZSBTdXNwZW5kCisjCitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiBDT05GSUdfUkVTT1VSQ0VTXzY0QklUPXkKIENPTkZJR19aT05FX0RNQV9GTEFHPTEKIENPTkZJR19CT1VOQ0U9eQotQ09ORklHX05SX1FVSUNLPTEKIENPTkZJR19WSVJUX1RPX0JVUz15CiAjIENPTkZJR19ISUdIUFRFIGlzIG5vdCBzZXQKICMgQ09ORklHX01BVEhfRU1VTEFUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19NVFJSPXkKLSMgQ09ORklHX0VGSSBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfUEFUIGlzIG5vdCBzZXQKK0NPTkZJR19FRkk9eQogIyBDT05GSUdfSVJRQkFMQU5DRSBpcyBub3Qgc2V0CiBDT05GSUdfU0VDQ09NUD15CiAjIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAotQ09ORklHX0haXzI1MD15CisjIENPTkZJR19IWl8yNTAgaXMgbm90IHNldAogIyBDT05GSUdfSFpfMzAwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0haXzEwMDAgaXMgbm90IHNldAotQ09ORklHX0haPTI1MAotIyBDT05GSUdfS0VYRUMgaXMgbm90IHNldAotIyBDT05GSUdfQ1JBU0hfRFVNUCBpcyBub3Qgc2V0Ci1DT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgxMDAwMDAKLSMgQ09ORklHX1JFTE9DQVRBQkxFIGlzIG5vdCBzZXQKLUNPTkZJR19QSFlTSUNBTF9BTElHTj0weDEwMDAwMAotIyBDT05GSUdfSE9UUExVR19DUFUgaXMgbm90IHNldAotQ09ORklHX0NPTVBBVF9WRFNPPXkKK0NPTkZJR19IWl8xMDAwPXkKK0NPTkZJR19IWj0xMDAwCitDT05GSUdfU0NIRURfSFJUSUNLPXkKK0NPTkZJR19LRVhFQz15CitDT05GSUdfQ1JBU0hfRFVNUD15CitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgxMDAwMDAwCitDT05GSUdfUkVMT0NBVEFCTEU9eQorQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MjAwMDAwCitDT05GSUdfSE9UUExVR19DUFU9eQorIyBDT05GSUdfQ09NUEFUX1ZEU08gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRU5BQkxFX01FTU9SWV9IT1RQTFVHPXkKIAogIwotIyBQb3dlciBtYW5hZ2VtZW50IG9wdGlvbnMgKEFDUEksIEFQTSkKKyMgUG93ZXIgbWFuYWdlbWVudCBvcHRpb25zCiAjCiBDT05GSUdfUE09eQotQ09ORklHX1BNX0xFR0FDWT15Ci0jIENPTkZJR19QTV9ERUJVRyBpcyBub3Qgc2V0Ci0KLSMKLSMgQUNQSSAoQWR2YW5jZWQgQ29uZmlndXJhdGlvbiBhbmQgUG93ZXIgSW50ZXJmYWNlKSBTdXBwb3J0Ci0jCitDT05GSUdfUE1fREVCVUc9eQorIyBDT05GSUdfUE1fVkVSQk9TRSBpcyBub3Qgc2V0CitDT05GSUdfQ0FOX1BNX1RSQUNFPXkKK0NPTkZJR19QTV9UUkFDRT15CitDT05GSUdfUE1fVFJBQ0VfUlRDPXkKK0NPTkZJR19QTV9TTEVFUF9TTVA9eQorQ09ORklHX1BNX1NMRUVQPXkKK0NPTkZJR19TVVNQRU5EPXkKK0NPTkZJR19TVVNQRU5EX0ZSRUVaRVI9eQorQ09ORklHX0hJQkVSTkFUSU9OPXkKK0NPTkZJR19QTV9TVERfUEFSVElUSU9OPSIiCiBDT05GSUdfQUNQST15CitDT05GSUdfQUNQSV9TTEVFUD15CiBDT05GSUdfQUNQSV9QUk9DRlM9eQorQ09ORklHX0FDUElfUFJPQ0ZTX1BPV0VSPXkKK0NPTkZJR19BQ1BJX1NZU0ZTX1BPV0VSPXkKK0NPTkZJR19BQ1BJX1BST0NfRVZFTlQ9eQogQ09ORklHX0FDUElfQUM9eQogQ09ORklHX0FDUElfQkFUVEVSWT15CiBDT05GSUdfQUNQSV9CVVRUT049eQogQ09ORklHX0FDUElfRkFOPXkKLSMgQ09ORklHX0FDUElfRE9DSyBpcyBub3Qgc2V0CitDT05GSUdfQUNQSV9ET0NLPXkKKyMgQ09ORklHX0FDUElfQkFZIGlzIG5vdCBzZXQKIENPTkZJR19BQ1BJX1BST0NFU1NPUj15CitDT05GSUdfQUNQSV9IT1RQTFVHX0NQVT15CiBDT05GSUdfQUNQSV9USEVSTUFMPXkKKyMgQ09ORklHX0FDUElfV01JIGlzIG5vdCBzZXQKICMgQ09ORklHX0FDUElfQVNVUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BQ1BJX1RPU0hJQkEgaXMgbm90IHNldAotQ09ORklHX0FDUElfQkxBQ0tMSVNUX1lFQVI9MjAwMQotQ09ORklHX0FDUElfREVCVUc9eQorIyBDT05GSUdfQUNQSV9DVVNUT01fRFNEVCBpcyBub3Qgc2V0CitDT05GSUdfQUNQSV9CTEFDS0xJU1RfWUVBUj0wCisjIENPTkZJR19BQ1BJX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19BQ1BJX0VDPXkKIENPTkZJR19BQ1BJX1BPV0VSPXkKIENPTkZJR19BQ1BJX1NZU1RFTT15CiBDT05GSUdfWDg2X1BNX1RJTUVSPXkKLSMgQ09ORklHX0FDUElfQ09OVEFJTkVSIGlzIG5vdCBzZXQKK0NPTkZJR19BQ1BJX0NPTlRBSU5FUj15CiAjIENPTkZJR19BQ1BJX1NCUyBpcyBub3Qgc2V0CiAjIENPTkZJR19BUE0gaXMgbm90IHNldAogCkBAIC0yNzEsMTUgKzM1MCwxNyBAQAogQ09ORklHX0NQVV9GUkVRPXkKIENPTkZJR19DUFVfRlJFUV9UQUJMRT15CiBDT05GSUdfQ1BVX0ZSRVFfREVCVUc9eQotQ09ORklHX0NQVV9GUkVRX1NUQVQ9eQotIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVF9ERVRBSUxTIGlzIG5vdCBzZXQKLUNPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRT15Ci0jIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRT15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfVVNFUlNQQUNFPXkKIENPTkZJR19DUFVfRlJFUV9HT1ZfT05ERU1BTkQ9eQotQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkU9eQorIyBDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CiAKICMKICMgQ1BVRnJlcSBwcm9jZXNzb3IgZHJpdmVycwpAQCAtMjg3LDggKzM2OCw3IEBACiBDT05GSUdfWDg2X0FDUElfQ1BVRlJFUT15CiAjIENPTkZJR19YODZfUE9XRVJOT1dfSzYgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1BPV0VSTk9XX0s3IGlzIG5vdCBzZXQKLUNPTkZJR19YODZfUE9XRVJOT1dfSzg9eQotQ09ORklHX1g4Nl9QT1dFUk5PV19LOF9BQ1BJPXkKKyMgQ09ORklHX1g4Nl9QT1dFUk5PV19LOCBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfR1hfU1VTUE1PRCBpcyBub3Qgc2V0CiAjIENPTkZJR19YODZfU1BFRURTVEVQX0NFTlRSSU5PIGlzIG5vdCBzZXQKICMgQ09ORklHX1g4Nl9TUEVFRFNURVBfSUNIIGlzIG5vdCBzZXQKQEAgLTMwMiw0MyArMzgyLDcyIEBACiAjCiAjIHNoYXJlZCBvcHRpb25zCiAjCi1DT05GSUdfWDg2X0FDUElfQ1BVRlJFUV9QUk9DX0lOVEY9eQorIyBDT05GSUdfWDg2X0FDUElfQ1BVRlJFUV9QUk9DX0lOVEYgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9MSUIgaXMgbm90IHNldAorQ09ORklHX0NQVV9JRExFPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTEFEREVSPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTUVOVT15CiAKICMKLSMgQnVzIG9wdGlvbnMgKFBDSSwgUENNQ0lBLCBFSVNBLCBNQ0EsIElTQSkKKyMgQnVzIG9wdGlvbnMgKFBDSSBldGMuKQogIwogQ09ORklHX1BDST15CiAjIENPTkZJR19QQ0lfR09CSU9TIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9HT01NQ09ORklHIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9HT0RJUkVDVCBpcyBub3Qgc2V0CiBDT05GSUdfUENJX0dPQU5ZPXkKKyMgQ09ORklHX1BDSV9HT09MUEMgaXMgbm90IHNldAogQ09ORklHX1BDSV9CSU9TPXkKIENPTkZJR19QQ0lfRElSRUNUPXkKIENPTkZJR19QQ0lfTU1DT05GSUc9eQotIyBDT05GSUdfUENJRVBPUlRCVVMgaXMgbm90IHNldAorQ09ORklHX1BDSV9ET01BSU5TPXkKK0NPTkZJR19QQ0lFUE9SVEJVUz15CisjIENPTkZJR19IT1RQTFVHX1BDSV9QQ0lFIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0lFQUVSPXkKKyMgQ09ORklHX1BDSUVBU1BNIGlzIG5vdCBzZXQKIENPTkZJR19BUkNIX1NVUFBPUlRTX01TST15CiBDT05GSUdfUENJX01TST15CisjIENPTkZJR19QQ0lfTEVHQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX1BDSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19IVF9JUlEgaXMgbm90IHNldAorQ09ORklHX0hUX0lSUT15CiBDT05GSUdfSVNBX0RNQV9BUEk9eQogIyBDT05GSUdfSVNBIGlzIG5vdCBzZXQKICMgQ09ORklHX01DQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ3gyMDAgaXMgbm90IHNldAorIyBDT05GSUdfT0xQQyBpcyBub3Qgc2V0CiBDT05GSUdfSzhfTkI9eQorQ09ORklHX1BDQ0FSRD15CisjIENPTkZJR19QQ01DSUFfREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BDTUNJQT15CitDT05GSUdfUENNQ0lBX0xPQURfQ0lTPXkKK0NPTkZJR19QQ01DSUFfSU9DVEw9eQorQ09ORklHX0NBUkRCVVM9eQogCiAjCi0jIFBDQ0FSRCAoUENNQ0lBL0NhcmRCdXMpIHN1cHBvcnQKKyMgUEMtY2FyZCBicmlkZ2VzCiAjCi0jIENPTkZJR19QQ0NBUkQgaXMgbm90IHNldAotIyBDT05GSUdfSE9UUExVR19QQ0kgaXMgbm90IHNldAorQ09ORklHX1lFTlRBPXkKK0NPTkZJR19ZRU5UQV9PMj15CitDT05GSUdfWUVOVEFfUklDT0g9eQorQ09ORklHX1lFTlRBX1RJPXkKK0NPTkZJR19ZRU5UQV9FTkVfVFVORT15CitDT05GSUdfWUVOVEFfVE9TSElCQT15CisjIENPTkZJR19QRDY3MjkgaXMgbm90IHNldAorIyBDT05GSUdfSTgyMDkyIGlzIG5vdCBzZXQKK0NPTkZJR19QQ0NBUkRfTk9OU1RBVElDPXkKK0NPTkZJR19IT1RQTFVHX1BDST15CisjIENPTkZJR19IT1RQTFVHX1BDSV9GQUtFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX0lCTSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9BQ1BJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX0NQQ0kgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfU0hQQyBpcyBub3Qgc2V0CiAKICMKLSMgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMKKyMgRXhlY3V0YWJsZSBmaWxlIGZvcm1hdHMgLyBFbXVsYXRpb25zCiAjCiBDT05GSUdfQklORk1UX0VMRj15CiAjIENPTkZJR19CSU5GTVRfQU9VVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CitDT05GSUdfQklORk1UX01JU0M9eQogCiAjCiAjIE5ldHdvcmtpbmcKQEAgLTM0OSw1OSArNDU4LDE0MiBAQAogIyBOZXR3b3JraW5nIG9wdGlvbnMKICMKIENPTkZJR19QQUNLRVQ9eQotIyBDT05GSUdfUEFDS0VUX01NQVAgaXMgbm90IHNldAorQ09ORklHX1BBQ0tFVF9NTUFQPXkKIENPTkZJR19VTklYPXkKIENPTkZJR19YRlJNPXkKLSMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qgc2V0CitDT05GSUdfWEZSTV9VU0VSPXkKICMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19YRlJNX01JR1JBVEUgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9TVEFUSVNUSUNTIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldAogQ09ORklHX0lORVQ9eQogQ09ORklHX0lQX01VTFRJQ0FTVD15Ci0jIENPTkZJR19JUF9BRFZBTkNFRF9ST1VURVIgaXMgbm90IHNldAorQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUj15CitDT05GSUdfQVNLX0lQX0ZJQl9IQVNIPXkKKyMgQ09ORklHX0lQX0ZJQl9UUklFIGlzIG5vdCBzZXQKIENPTkZJR19JUF9GSUJfSEFTSD15Ci1DT05GSUdfSVBfUE5QPXkKLUNPTkZJR19JUF9QTlBfREhDUD15Ci0jIENPTkZJR19JUF9QTlBfQk9PVFAgaXMgbm90IHNldAotIyBDT05GSUdfSVBfUE5QX1JBUlAgaXMgbm90IHNldAorQ09ORklHX0lQX01VTFRJUExFX1RBQkxFUz15CitDT05GSUdfSVBfUk9VVEVfTVVMVElQQVRIPXkKK0NPTkZJR19JUF9ST1VURV9WRVJCT1NFPXkKKyMgQ09ORklHX0lQX1BOUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfSVBHUkUgaXMgbm90IHNldAotIyBDT05GSUdfSVBfTVJPVVRFIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NUk9VVEU9eQorQ09ORklHX0lQX1BJTVNNX1YxPXkKK0NPTkZJR19JUF9QSU1TTV9WMj15CiAjIENPTkZJR19BUlBEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKK0NPTkZJR19TWU5fQ09PS0lFUz15CiAjIENPTkZJR19JTkVUX0FIIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfSVBDT01QIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9UVU5ORUwgaXMgbm90IHNldAogQ09ORklHX0lORVRfVFVOTkVMPXkKLUNPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQotQ09ORklHX0lORVRfWEZSTV9NT0RFX1RVTk5FTD15CisjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UUkFOU1BPUlQgaXMgbm90IHNldAorIyBDT05GSUdfSU5FVF9YRlJNX01PREVfVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAotQ09ORklHX0lORVRfRElBRz15Ci1DT05GSUdfSU5FVF9UQ1BfRElBRz15Ci0jIENPTkZJR19UQ1BfQ09OR19BRFZBTkNFRCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVF9MUk89eQorIyBDT05GSUdfSU5FVF9ESUFHIGlzIG5vdCBzZXQKK0NPTkZJR19UQ1BfQ09OR19BRFZBTkNFRD15CisjIENPTkZJR19UQ1BfQ09OR19CSUMgaXMgbm90IHNldAogQ09ORklHX1RDUF9DT05HX0NVQklDPXkKKyMgQ09ORklHX1RDUF9DT05HX1dFU1RXT09EIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0hUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFNUQ1AgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFlCTEEgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfVkVHQVMgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfU0NBTEFCTEUgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfTFAgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfVkVOTyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19ZRUFIIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX0lMTElOT0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfQklDIGlzIG5vdCBzZXQKK0NPTkZJR19ERUZBVUxUX0NVQklDPXkKKyMgQ09ORklHX0RFRkFVTFRfSFRDUCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1ZFR0FTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfV0VTVFdPT0QgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9SRU5PIGlzIG5vdCBzZXQKIENPTkZJR19ERUZBVUxUX1RDUF9DT05HPSJjdWJpYyIKLSMgQ09ORklHX1RDUF9NRDVTSUcgaXMgbm90IHNldAorQ09ORklHX1RDUF9NRDVTSUc9eQorIyBDT05GSUdfSVBfVlMgaXMgbm90IHNldAogQ09ORklHX0lQVjY9eQogIyBDT05GSUdfSVBWNl9QUklWQUNZIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfUk9VVEVSX1BSRUYgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9PUFRJTUlTVElDX0RBRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9BSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9FU1AgaXMgbm90IHNldAorQ09ORklHX0lORVQ2X0FIPXkKK0NPTkZJR19JTkVUNl9FU1A9eQogIyBDT05GSUdfSU5FVDZfSVBDT01QIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQVjZfTUlQNiBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUNl9YRlJNX1RVTk5FTCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldAogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQogQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9eQotIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAotIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CitDT05GSUdfTkVUTEFCRUw9eQorQ09ORklHX05FVFdPUktfU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSPXkKKyMgQ09ORklHX05FVEZJTFRFUl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVJfQURWQU5DRUQgaXMgbm90IHNldAorCisjCisjIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOSz15CitDT05GSUdfTkVURklMVEVSX05FVExJTktfTE9HPXkKK0NPTkZJR19ORl9DT05OVFJBQ0s9eQorQ09ORklHX05GX0NPTk5UUkFDS19TRUNNQVJLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfRlRQPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVJDPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0lQPXkKK0NPTkZJR19ORl9DVF9ORVRMSU5LPXkKK0NPTkZJR19ORVRGSUxURVJfWFRBQkxFUz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9NQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX05GTE9HPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1NFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09OTlNFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVENQTVNTPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTlRSQUNLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1NUQVRFPXkKKworIworIyBJUDogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVBWND15CitDT05GSUdfTkZfQ09OTlRSQUNLX1BST0NfQ09NUEFUPXkKK0NPTkZJR19JUF9ORl9JUFRBQkxFUz15CitDT05GSUdfSVBfTkZfRklMVEVSPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfUkVKRUNUPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfTE9HPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfVUxPRz15CitDT05GSUdfTkZfTkFUPXkKK0NPTkZJR19ORl9OQVRfTkVFREVEPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVFUkFERT15CitDT05GSUdfTkZfTkFUX0ZUUD15CitDT05GSUdfTkZfTkFUX0lSQz15CisjIENPTkZJR19ORl9OQVRfVEZUUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfQU1BTkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9QUFRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9IMzIzIGlzIG5vdCBzZXQKK0NPTkZJR19ORl9OQVRfU0lQPXkKK0NPTkZJR19JUF9ORl9NQU5HTEU9eQorCisjCisjIElQdjY6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfQ09OTlRSQUNLX0lQVjY9eQorQ09ORklHX0lQNl9ORl9JUFRBQkxFUz15CitDT05GSUdfSVA2X05GX01BVENIX0lQVjZIRUFERVI9eQorQ09ORklHX0lQNl9ORl9GSUxURVI9eQorQ09ORklHX0lQNl9ORl9UQVJHRVRfTE9HPXkKK0NPTkZJR19JUDZfTkZfVEFSR0VUX1JFSkVDVD15CitDT05GSUdfSVA2X05GX01BTkdMRT15CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAogIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CkBAIC00MDksNiArNjAxLDcgQEAKICMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CitDT05GSUdfTExDPXkKICMgQ09ORklHX0xMQzIgaXMgbm90IHNldAogIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKQEAgLTQxNiwyOCArNjA5LDk5IEBACiAjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKICMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfU0NIRUQ9eQogCiAjCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZworIyBRdWV1ZWluZy9TY2hlZHVsaW5nCiAjCi0jIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9DQlEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9IVEIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9IRlNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUFJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1JSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfU0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfVEVRTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1RCRiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0dSRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9EU01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9ORVRFTSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0lOR1JFU1MgaXMgbm90IHNldAorCisjCisjIENsYXNzaWZpY2F0aW9uCisjCitDT05GSUdfTkVUX0NMUz15CisjIENPTkZJR19ORVRfQ0xTX0JBU0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfVENJTkRFWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JPVVRFNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX0ZXIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUlNWUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JTVlA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfRkxPVyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VNQVRDSD15CitDT05GSUdfTkVUX0VNQVRDSF9TVEFDSz0zMgorIyBDT05GSUdfTkVUX0VNQVRDSF9DTVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9OQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX01FVEEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9URVhUIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfQ0xTX0FDVD15CisjIENPTkZJR19ORVRfQUNUX1BPTElDRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX0dBQ1QgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9NSVJSRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9JUFQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9OQVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9QRURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX1NJTVAgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hfRklGTz15CiAKICMKICMgTmV0d29yayB0ZXN0aW5nCiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CitDT05GSUdfSEFNUkFESU89eQorCisjCisjIFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKKyMgQ09ORklHX0FYMjUgaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorQ09ORklHX0ZJQl9SVUxFUz15CiAKICMKICMgV2lyZWxlc3MKICMKLSMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfQ0ZHODAyMTE9eQorQ09ORklHX05MODAyMTE9eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfTUFDODAyMTE9eQorCisjCisjIFJhdGUgY29udHJvbCBhbGdvcml0aG0gc2VsZWN0aW9uCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9OT05FIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RpbmcgJ3knIGZvciBhbiBhbGdvcml0aG0gd2lsbAorIworCisjCisjIGJ1aWxkIHRoZSBhbGdvcml0aG0gaW50byBtYWM4MDIxMS4KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJwaWQiCitDT05GSUdfTUFDODAyMTFfUkNfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX01FU0ggaXMgbm90IHNldAorQ09ORklHX01BQzgwMjExX0xFRFM9eQorIyBDT05GSUdfTUFDODAyMTFfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR19QQUNLRVRfQUxJR05NRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKQEAgLTQ0OSwxMyArNzEzLDE1IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPXkKICMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0RFVlJFUz15CiAjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX0NPTk5FQ1RPUj15CitDT05GSUdfUFJPQ19FVkVOVFM9eQogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX1BOUD15CkBAIC00NjYsNyArNzMyLDcgQEAKICMKIENPTkZJR19QTlBBQ1BJPXkKIENPTkZJR19CTEtfREVWPXkKLUNPTkZJR19CTEtfREVWX0ZEPXkKKyMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldApAQCAtNDc5LDggKzc0NSw4IEBACiAjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX1JBTT15CiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKLUNPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MTYzODQKKyMgQ09ORklHX0JMS19ERVZfWElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKIENPTkZJR19NSVNDX0RFVklDRVM9eQpAQCAtNDg5LDczICs3NTUsMTcgQEAKICMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0CiAjIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfQUNFUl9XTUkgaXMgbm90IHNldAorIyBDT05GSUdfQVNVU19MQVBUT1AgaXMgbm90IHNldAorIyBDT05GSUdfRlVKSVRTVV9MQVBUT1AgaXMgbm90IHNldAorIyBDT05GSUdfVEMxMTAwX1dNSSBpcyBub3Qgc2V0CisjIENPTkZJR19NU0lfTEFQVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1NPTllfTEFQVE9QIGlzIG5vdCBzZXQKICMgQ09ORklHX1RISU5LUEFEX0FDUEkgaXMgbm90IHNldAotQ09ORklHX0lERT15Ci1DT05GSUdfQkxLX0RFVl9JREU9eQotCi0jCi0jIFBsZWFzZSBzZWUgRG9jdW1lbnRhdGlvbi9pZGUudHh0IGZvciBoZWxwL2luZm8gb24gSURFIGRyaXZlcwotIwotIyBDT05GSUdfQkxLX0RFVl9JREVfU0FUQSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0hEX0lERSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVESVNLPXkKLUNPTkZJR19JREVESVNLX01VTFRJX01PREU9eQotQ09ORklHX0JMS19ERVZfSURFQ0Q9eQotIyBDT05GSUdfQkxLX0RFVl9JREVUQVBFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFRkxPUFBZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFU0NTSSBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVBQ1BJPXkKLSMgQ09ORklHX0lERV9UQVNLX0lPQ1RMIGlzIG5vdCBzZXQKLUNPTkZJR19JREVfUFJPQ19GUz15Ci0KLSMKLSMgSURFIGNoaXBzZXQgc3VwcG9ydC9idWdmaXhlcwotIwotQ09ORklHX0lERV9HRU5FUklDPXkKLSMgQ09ORklHX0JMS19ERVZfQ01ENjQwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSURFUE5QIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX0lERVBDST15Ci0jIENPTkZJR19JREVQQ0lfU0hBUkVfSVJRIGlzIG5vdCBzZXQKLUNPTkZJR19JREVQQ0lfUENJQlVTX09SREVSPXkKLSMgQ09ORklHX0JMS19ERVZfT0ZGQk9BUkQgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9HRU5FUklDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfT1BUSTYyMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1JaMTAwMCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVETUFfUENJPXkKLSMgQ09ORklHX0JMS19ERVZfSURFRE1BX0ZPUkNFRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JREVETUFfT05MWURJU0sgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9BRUM2MlhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQUxJMTVYMyBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9BTUQ3NFhYPXkKLSMgQ09ORklHX0JMS19ERVZfQVRJSVhQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ01ENjRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfVFJJRkxFWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0NZODJDNjkzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1M1NTIwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1M1NTMwIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1M1NTM1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSFBUMzRYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSFBUMzY2IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSk1JQ1JPTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NDMTIwMCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9QSUlYPXkKLSMgQ09ORklHX0JMS19ERVZfSVQ4MjEzIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfSVQ4MjFYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfTlM4NzQxNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1BEQzIwMlhYX09MRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1BEQzIwMlhYX05FVyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NWV0tTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0lJTUFHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NJUzU1MTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TTEM5MEU2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RSTTI5MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERV9BUk0gaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLSMgQ09ORklHX0lERURNQV9JVkIgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlRFTF9NRU5MT1cgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCiAjIFNDU0kgZGV2aWNlIHN1cHBvcnQKQEAgLTU2NCw4ICs3NzQsOCBAQAogQ09ORklHX1NDU0k9eQogQ09ORklHX1NDU0lfRE1BPXkKICMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX05FVExJTks9eQotIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKIAogIwogIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQpAQCAtNTc0LDcgKzc4NCw3IEBACiAjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9TUj15Ci0jIENPTkZJR19CTEtfREVWX1NSX1ZFTkRPUiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1I9eQogQ09ORklHX0NIUl9ERVZfU0c9eQogIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAogCkBAIC01ODIsNyArNzkyLDcgQEAKICMgU29tZSBTQ1NJIGRldmljZXMgKGUuZy4gQ0QganVrZWJveCkgc3VwcG9ydCBtdWx0aXBsZSBMVU5zCiAjCiAjIENPTkZJR19TQ1NJX01VTFRJX0xVTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0NPTlNUQU5UUyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9DT05TVEFOVFM9eQogIyBDT05GSUdfU0NTSV9MT0dHSU5HIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0NBTl9BU1lOQyBpcyBub3Qgc2V0CiBDT05GSUdfU0NTSV9XQUlUX1NDQU49bQpAQCAtNTkxLDgxICs4MDEsMzcgQEAKICMgU0NTSSBUcmFuc3BvcnRzCiAjCiBDT05GSUdfU0NTSV9TUElfQVRUUlM9eQotQ09ORklHX1NDU0lfRkNfQVRUUlM9eQorIyBDT05GSUdfU0NTSV9GQ19BVFRSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ1NJX0lTQ1NJX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FTX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBsb3ctbGV2ZWwgZHJpdmVycwotIwotIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWXzNXX1hYWFhfUkFJRD15Ci0jIENPTkZJR19TQ1NJXzNXXzlYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BQ0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FBQ1JBSUQgaXMgbm90IHNldAotQ09ORklHX1NDU0lfQUlDN1hYWD15Ci1DT05GSUdfQUlDN1hYWF9DTURTX1BFUl9ERVZJQ0U9MzIKLUNPTkZJR19BSUM3WFhYX1JFU0VUX0RFTEFZX01TPTUwMDAKLUNPTkZJR19BSUM3WFhYX0RFQlVHX0VOQUJMRT15Ci1DT05GSUdfQUlDN1hYWF9ERUJVR19NQVNLPTAKLUNPTkZJR19BSUM3WFhYX1JFR19QUkVUVFlfUFJJTlQ9eQotIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9BSUM3OVhYPXkKLUNPTkZJR19BSUM3OVhYX0NNRFNfUEVSX0RFVklDRT0zMgotQ09ORklHX0FJQzc5WFhfUkVTRVRfREVMQVlfTVM9NDAwMAotIyBDT05GSUdfQUlDNzlYWF9ERUJVR19FTkFCTEUgaXMgbm90IHNldAotQ09ORklHX0FJQzc5WFhfREVCVUdfTUFTSz0wCi0jIENPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfRFBUX0kyTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FEVkFOU1lTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0VBVEEgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfR0RUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSVRJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9OU1AzMiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1JQIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfU1JQX0FUVFJTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUwgaXMgbm90IHNldAorIyBDT05GSUdfU0NTSV9MT1dMRVZFTF9QQ01DSUEgaXMgbm90IHNldAogQ09ORklHX0FUQT15CiAjIENPTkZJR19BVEFfTk9OU1RBTkRBUkQgaXMgbm90IHNldAogQ09ORklHX0FUQV9BQ1BJPXkKK0NPTkZJR19TQVRBX1BNUD15CiBDT05GSUdfU0FUQV9BSENJPXkKLUNPTkZJR19TQVRBX1NWVz15CisjIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKK0NPTkZJR19BVEFfU0ZGPXkKKyMgQ09ORklHX1NBVEFfU1ZXIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfUElJWD15CiAjIENPTkZJR19TQVRBX01WIGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX05WPXkKKyMgQ09ORklHX1NBVEFfTlYgaXMgbm90IHNldAogIyBDT05GSUdfUERDX0FETUEgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9RU1RPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1BST01JU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TWDQgaXMgbm90IHNldAotQ09ORklHX1NBVEFfU0lMPXkKLSMgQ09ORklHX1NBVEFfU0lMMjQgaXMgbm90IHNldAorIyBDT05GSUdfU0FUQV9TSUwgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9TSVMgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9VTEkgaXMgbm90IHNldAotQ09ORklHX1NBVEFfVklBPXkKKyMgQ09ORklHX1NBVEFfVklBIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVklURVNTRSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX0lOSUMxNjJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfQUNQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FMSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QQVRBX0FNRCBpcyBub3Qgc2V0CitDT05GSUdfUEFUQV9BTUQ9eQogIyBDT05GSUdfUEFUQV9BUlRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0FUSUlYUCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0NNRDY0MF9QQ0kgaXMgbm90IHNldApAQCAtNjczLDYgKzgzOSw3IEBACiAjIENPTkZJR19QQVRBX0NTNTUyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0NTNTUzMCBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0NTNTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0NTNTUzNiBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX0NZUFJFU1MgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9FRkFSIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQV9HRU5FUklDIGlzIG5vdCBzZXQKQEAgLTY4NiwxMSArODUzLDE0IEBACiAjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAotIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX09MRFBJSVg9eQogIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QQ01DSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QRENfT0xEIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUkFESVNZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CkBAIC03MDIsNjUgKzg3Miw0MiBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKIENPTkZJR19NRD15Ci0jIENPTkZJR19CTEtfREVWX01EIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX01EPXkKKyMgQ09ORklHX01EX0xJTkVBUiBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMTAgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDQ1NiBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9NVUxUSVBBVEggaXMgbm90IHNldAorIyBDT05GSUdfTURfRkFVTFRZIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0RNPXkKICMgQ09ORklHX0RNX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX0NSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX1NOQVBTSE9UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RNX01JUlJPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETV9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19ETV9NSVJST1I9eQorQ09ORklHX0RNX1pFUk89eQogIyBDT05GSUdfRE1fTVVMVElQQVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX0RFTEFZIGlzIG5vdCBzZXQKLQotIwotIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfRlVTSU9OPXkKLUNPTkZJR19GVVNJT05fU1BJPXkKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKLUNPTkZJR19GVVNJT05fTUFYX1NHRT0xMjgKLSMgQ09ORklHX0ZVU0lPTl9DVEwgaXMgbm90IHNldAorIyBDT05GSUdfRE1fVUVWRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKICMKICMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAogIwogIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAotQ09ORklHX0lFRUUxMzk0PXkKLQotIwotIyBTdWJzeXN0ZW0gT3B0aW9ucwotIwotIyBDT05GSUdfSUVFRTEzOTRfVkVSQk9TRURFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBDb250cm9sbGVycwotIwotCi0jCi0jIFRleGFzIEluc3RydW1lbnRzIFBDSUx5bnggcmVxdWlyZXMgSTJDCi0jCi1DT05GSUdfSUVFRTEzOTRfT0hDSTEzOTQ9eQotCi0jCi0jIFByb3RvY29scwotIwotIyBDT05GSUdfSUVFRTEzOTRfVklERU8xMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X1NCUDIgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRVRIMTM5NF9ST01fRU5UUlkgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRVRIMTM5NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9EVjEzOTQgaXMgbm90IHNldAotQ09ORklHX0lFRUUxMzk0X1JBV0lPPXkKKyMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKICMgQ09ORklHX0kyTyBpcyBub3Qgc2V0CiBDT05GSUdfTUFDSU5UT1NIX0RSSVZFUlM9eQotIyBDT05GSUdfTUFDX0VNVU1PVVNFQlROIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNfRU1VTU9VU0VCVE49eQogQ09ORklHX05FVERFVklDRVM9eQotQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRT15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfSUZCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAogIyBDT05GSUdfVFVOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZFVEggaXMgbm90IHNldAogIyBDT05GSUdfTkVUX1NCMTAwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUkNORVQgaXMgbm90IHNldAogIyBDT05GSUdfUEhZTElCIGlzIG5vdCBzZXQKQEAgLTc3MCwzOCArOTE3LDQwIEBACiAjIENPTkZJR19TVU5HRU0gaXMgbm90IHNldAogIyBDT05GSUdfQ0FTU0lOSSBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NPXkKLUNPTkZJR19WT1JURVg9eQorIyBDT05GSUdfVk9SVEVYIGlzIG5vdCBzZXQKICMgQ09ORklHX1RZUEhPT04gaXMgbm90IHNldAogQ09ORklHX05FVF9UVUxJUD15CiAjIENPTkZJR19ERTIxMDRYIGlzIG5vdCBzZXQKLUNPTkZJR19UVUxJUD15Ci0jIENPTkZJR19UVUxJUF9NV0kgaXMgbm90IHNldAotIyBDT05GSUdfVFVMSVBfTU1JTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVUxJUF9OQVBJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RVTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFNFg1IGlzIG5vdCBzZXQKICMgQ09ORklHX1dJTkJPTkRfODQwIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNOTEwMiBpcyBub3Qgc2V0CiAjIENPTkZJR19VTEk1MjZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9YSVJDT00gaXMgbm90IHNldAogIyBDT05GSUdfSFAxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1pNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1JHTUlJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTV9ORVdfRU1BQ19UQUggaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX0VNQUM0IGlzIG5vdCBzZXQKIENPTkZJR19ORVRfUENJPXkKICMgQ09ORklHX1BDTkVUMzIgaXMgbm90IHNldAogIyBDT05GSUdfQU1EODExMV9FVEggaXMgbm90IHNldAogIyBDT05GSUdfQURBUFRFQ19TVEFSRklSRSBpcyBub3Qgc2V0Ci1DT05GSUdfQjQ0PXkKKyMgQ09ORklHX0I0NCBpcyBub3Qgc2V0CiBDT05GSUdfRk9SQ0VERVRIPXkKICMgQ09ORklHX0ZPUkNFREVUSF9OQVBJIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RHUlMgaXMgbm90IHNldAogIyBDT05GSUdfRUVQUk8xMDAgaXMgbm90IHNldAogQ09ORklHX0UxMDA9eQogIyBDT05GSUdfRkVBTE5YIGlzIG5vdCBzZXQKICMgQ09ORklHX05BVFNFTUkgaXMgbm90IHNldAogIyBDT05GSUdfTkUyS19QQ0kgaXMgbm90IHNldAotQ09ORklHXzgxMzlDUD15CisjIENPTkZJR184MTM5Q1AgaXMgbm90IHNldAogQ09ORklHXzgxMzlUT089eQotIyBDT05GSUdfODEzOVRPT19QSU8gaXMgbm90IHNldAorQ09ORklHXzgxMzlUT09fUElPPXkKICMgQ09ORklHXzgxMzlUT09fVFVORV9UV0lTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlUT09fODEyOSBpcyBub3Qgc2V0CiAjIENPTkZJR184MTM5X09MRF9SWF9SRVNFVCBpcyBub3Qgc2V0CisjIENPTkZJR19SNjA0MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVM5MDAgaXMgbm90IHNldAogIyBDT05GSUdfRVBJQzEwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TVU5EQU5DRSBpcyBub3Qgc2V0CkBAIC04MTQsMzQgKzk2Myw3NSBAQAogQ09ORklHX0UxMDAwPXkKICMgQ09ORklHX0UxMDAwX05BUEkgaXMgbm90IHNldAogIyBDT05GSUdfRTEwMDBfRElTQUJMRV9QQUNLRVRfU1BMSVQgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0UxMDAwRV9FTkFCTEVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQMTAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JR0IgaXMgbm90IHNldAogIyBDT05GSUdfTlM4MzgyMCBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU1BQ0hJIGlzIG5vdCBzZXQKICMgQ09ORklHX1lFTExPV0ZJTiBpcyBub3Qgc2V0Ci1DT05GSUdfUjgxNjk9eQotIyBDT05GSUdfUjgxNjlfTkFQSSBpcyBub3Qgc2V0CisjIENPTkZJR19SODE2OSBpcyBub3Qgc2V0CiAjIENPTkZJR19TSVMxOTAgaXMgbm90IHNldAogIyBDT05GSUdfU0tHRSBpcyBub3Qgc2V0CiBDT05GSUdfU0tZMj15CisjIENPTkZJR19TS1kyX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZJQV9WRUxPQ0lUWSBpcyBub3Qgc2V0CiBDT05GSUdfVElHT04zPXkKLUNPTkZJR19CTlgyPXkKKyMgQ09ORklHX0JOWDIgaXMgbm90IHNldAogIyBDT05GSUdfUUxBM1hYWCBpcyBub3Qgc2V0CiAjIENPTkZJR19BVEwxIGlzIG5vdCBzZXQKIENPTkZJR19ORVRERVZfMTAwMDA9eQogIyBDT05GSUdfQ0hFTFNJT19UMSBpcyBub3Qgc2V0CiAjIENPTkZJR19DSEVMU0lPX1QzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lYR0JFIGlzIG5vdCBzZXQKICMgQ09ORklHX0lYR0IgaXMgbm90IHNldAogIyBDT05GSUdfUzJJTyBpcyBub3Qgc2V0CiAjIENPTkZJR19NWVJJMTBHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRYRU5fTklDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05JVSBpcyBub3Qgc2V0CiAjIENPTkZJR19NTFg0X0NPUkUgaXMgbm90IHNldAotIyBDT05GSUdfVFIgaXMgbm90IHNldAorIyBDT05GSUdfVEVIVVRJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JOWDJYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NGQyBpcyBub3Qgc2V0CitDT05GSUdfVFI9eQorIyBDT05GSUdfSUJNT0wgaXMgbm90IHNldAorIyBDT05GSUdfSUJNTFMgaXMgbm90IHNldAorIyBDT05GSUdfM0MzNTkgaXMgbm90IHNldAorIyBDT05GSUdfVE1TMzgwVFIgaXMgbm90IHNldAogCiAjCiAjIFdpcmVsZXNzIExBTgogIwogIyBDT05GSUdfV0xBTl9QUkU4MDIxMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19XTEFOXzgwMjExIGlzIG5vdCBzZXQKK0NPTkZJR19XTEFOXzgwMjExPXkKKyMgQ09ORklHX1BDTUNJQV9SQVlDUyBpcyBub3Qgc2V0CisjIENPTkZJR19JUFcyMTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIyMDAgaXMgbm90IHNldAorIyBDT05GSUdfTElCRVJUQVMgaXMgbm90IHNldAorIyBDT05GSUdfQUlSTyBpcyBub3Qgc2V0CisjIENPTkZJR19IRVJNRVMgaXMgbm90IHNldAorIyBDT05GSUdfQVRNRUwgaXMgbm90IHNldAorIyBDT05GSUdfQUlST19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfV0wzNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BSSVNNNTQgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1pEMTIwMSBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfTkVUX1JORElTX1dMQU4gaXMgbm90IHNldAorIyBDT05GSUdfUlRMODE4MCBpcyBub3Qgc2V0CisjIENPTkZJR19SVEw4MTg3IGlzIG5vdCBzZXQKKyMgQ09ORklHX0FETTgyMTEgaXMgbm90IHNldAorIyBDT05GSUdfUDU0X0NPTU1PTiBpcyBub3Qgc2V0CitDT05GSUdfQVRINUs9eQorIyBDT05GSUdfQVRINUtfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSSBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xDT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTFdJRklfTEVEUyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0w0OTY1IGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTDM5NDUgaXMgbm90IHNldAorIyBDT05GSUdfSE9TVEFQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0MyBpcyBub3Qgc2V0CisjIENPTkZJR19CNDNMRUdBQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWkQxMjExUlcgaXMgbm90IHNldAorIyBDT05GSUdfUlQyWDAwIGlzIG5vdCBzZXQKIAogIwogIyBVU0IgTmV0d29yayBBZGFwdGVycwpAQCAtODUwLDE2ICsxMDQwLDI3IEBACiAjIENPTkZJR19VU0JfS0FXRVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9QRUdBU1VTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9SVEw4MTUwIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9VU0JORVRfTUlJIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9VU0JORVQgaXMgbm90IHNldAorQ09ORklHX05FVF9QQ01DSUE9eQorIyBDT05GSUdfUENNQ0lBXzNDNTg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV8zQzU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfRk1WSjE4WCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfUENORVQgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX05NQ0xBTiBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfU01DOTFDOTIgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1hJUkMyUFMgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX0FYTkVUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9JQk1UUiBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU4gaXMgbm90IHNldAotIyBDT05GSUdfRkRESSBpcyBub3Qgc2V0CitDT05GSUdfRkREST15CisjIENPTkZJR19ERUZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TS0ZQIGlzIG5vdCBzZXQKICMgQ09ORklHX0hJUFBJIGlzIG5vdCBzZXQKICMgQ09ORklHX1BQUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TTElQIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TSEFQRVIgaXMgbm90IHNldAogQ09ORklHX05FVENPTlNPTEU9eQorIyBDT05GSUdfTkVUQ09OU09MRV9EWU5BTUlDIGlzIG5vdCBzZXQKIENPTkZJR19ORVRQT0xMPXkKICMgQ09ORklHX05FVFBPTExfVFJBUCBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUj15CkBAIC04NzAsMTggKzEwNzEsMTcgQEAKICMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKICMKIENPTkZJR19JTlBVVD15Ci0jIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1BPTExERVYgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0ZGX01FTUxFU1M9eQorQ09ORklHX0lOUFVUX1BPTExERVY9eQogCiAjCiAjIFVzZXJsYW5kIGludGVyZmFjZXMKICMKIENPTkZJR19JTlBVVF9NT1VTRURFVj15Ci1DT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQorIyBDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVggaXMgbm90IHNldAogQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YPTEwMjQKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWT03NjgKICMgQ09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UU0RFViBpcyBub3Qgc2V0CiBDT05GSUdfSU5QVVRfRVZERVY9eQogIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAogCkBAIC05MDYsMTcgKzExMDYsNjMgQEAKICMgQ09ORklHX01PVVNFX1NFUklBTCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9BUFBMRVRPVUNIIGlzIG5vdCBzZXQKICMgQ09ORklHX01PVVNFX1ZTWFhYQUEgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfSk9ZU1RJQ0sgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX01JU0MgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX0pPWVNUSUNLPXkKKyMgQ09ORklHX0pPWVNUSUNLX0FOQUxPRyBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19BM0QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQURJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0NPQlJBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dGMksgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1JJUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HUklQX01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dVSUxMRU1PVCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19JTlRFUkFDVCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TSURFV0lOREVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1RNREMgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSUZPUkNFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1dBUlJJT1IgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfTUFHRUxMQU4gaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VPUkIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU1BBQ0VCQUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NUSU5HRVIgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfVFdJREpPWSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19aSEVOSFVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0pPWURVTVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfWFBBRCBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfVEFCTEVUPXkKKyMgQ09ORklHX1RBQkxFVF9VU0JfQUNFQ0FEIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfQUlQVEVLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfR1RDTyBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0tCVEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RBQkxFVF9VU0JfV0FDT00gaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RPVUNIU0NSRUVOPXkKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0ZVSklUU1UgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fR1VOWkUgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fRUxPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX01UT1VDSCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NSzcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9QRU5NT1VOVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFJJR0hUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1RPVUNIV0lOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VDQjE0MDAgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVVNCX0NPTVBPU0lURSBpcyBub3Qgc2V0CitDT05GSUdfSU5QVVRfTUlTQz15CisjIENPTkZJR19JTlBVVF9QQ1NQS1IgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVBBTkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1dJU1RST05fQlROUyBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVExBU19CVE5TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUSV9SRU1PVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRJX1JFTU9URTIgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfS0VZU1BBTl9SRU1PVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9XRVJNQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1lFQUxJTksgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVUlOUFVUIGlzIG5vdCBzZXQKIAogIwogIyBIYXJkd2FyZSBJL08gcG9ydHMKICMKIENPTkZJR19TRVJJTz15CiBDT05GSUdfU0VSSU9fSTgwNDI9eQotIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fU0VSUE9SVD15CiAjIENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRVJJT19QQ0lQUzIgaXMgbm90IHNldAogQ09ORklHX1NFUklPX0xJQlBTMj15CkBAIC05MjksOCArMTE3NSwyNiBAQAogQ09ORklHX1ZUPXkKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKLSMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORz15CitDT05GSUdfREVWS01FTT15CitDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEPXkKKyMgQ09ORklHX0NPTVBVVE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19ST0NLRVRQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NZQ0xBREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAorIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOS01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LX0dUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05fSERMQyBpcyBub3Qgc2V0CisjIENPTkZJR19SSVNDT004IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQRUNJQUxJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TWCBpcyBub3Qgc2V0CisjIENPTkZJR19SSU8gaXMgbm90IHNldAorIyBDT05GSUdfU1RBTERSViBpcyBub3Qgc2V0CisjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCiAjCiAjIFNlcmlhbCBkcml2ZXJzCkBAIC05NDAsOSArMTIwNCwxNCBAQAogQ09ORklHX0ZJWF9FQVJMWUNPTl9NRU09eQogQ09ORklHX1NFUklBTF84MjUwX1BDST15CiBDT05GSUdfU0VSSUFMXzgyNTBfUE5QPXkKLUNPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CisjIENPTkZJR19TRVJJQUxfODI1MF9DUyBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9MzIKIENPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTQKLSMgQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRD15CitDT05GSUdfU0VSSUFMXzgyNTBfTUFOWV9QT1JUUz15CitDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkKK0NPTkZJR19TRVJJQUxfODI1MF9ERVRFQ1RfSVJRPXkKK0NPTkZJR19TRVJJQUxfODI1MF9SU0E9eQogCiAjCiAjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKQEAgLTk1MSwyMCArMTIyMCwxNjggQEAKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKICMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAogQ09ORklHX1VOSVg5OF9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKLUNPTkZJR19IV19SQU5ET01fSU5URUw9eQotQ09ORklHX0hXX1JBTkRPTV9BTUQ9eQorIyBDT05GSUdfSFdfUkFORE9NX0lOVEVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXX1JBTkRPTV9BTUQgaXMgbm90IHNldAogQ09ORklHX0hXX1JBTkRPTV9HRU9ERT15CiBDT05GSUdfSFdfUkFORE9NX1ZJQT15Ci0jIENPTkZJR19OVlJBTSBpcyBub3Qgc2V0Ci1DT05GSUdfUlRDPXkKK0NPTkZJR19OVlJBTT15CiAjIENPTkZJR19SMzk2NCBpcyBub3Qgc2V0CiAjIENPTkZJR19BUFBMSUNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19TT05ZUEkgaXMgbm90IHNldAorCisjCisjIFBDTUNJQSBjaGFyYWN0ZXIgZGV2aWNlcworIworIyBDT05GSUdfU1lOQ0xJTktfQ1MgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NBUkRNQU5fNDA0MCBpcyBub3Qgc2V0CisjIENPTkZJR19JUFdJUkVMRVNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01XQVZFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDODczNnhfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19OU0NfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19DUzU1MzVfR1BJTyBpcyBub3Qgc2V0CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKK0NPTkZJR19IUEVUPXkKKyMgQ09ORklHX0hQRVRfUlRDX0lSUSBpcyBub3Qgc2V0CisjIENPTkZJR19IUEVUX01NQVAgaXMgbm90IHNldAorIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAorIyBDT05GSUdfVEVMQ0xPQ0sgaXMgbm90IHNldAorQ09ORklHX0RFVlBPUlQ9eQorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CisjIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CisKKyMKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CisjCisjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfSTgwMT15CisjIENPTkZJR19JMkNfSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUElJWDQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUFJPU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfU0N4MjAwX0FDQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNTU5NSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTNjMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSVM5NlggaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1RBT1NfRVZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TVFVCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19USU5ZX1VTQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WSUFQUk8gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZPT0RPTzMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1BDQV9QTEFURk9STSBpcyBub3Qgc2V0CisKKyMKKyMgTWlzY2VsbGFuZW91cyBJMkMgQ2hpcCBzdXBwb3J0CisjCisjIENPTkZJR19EUzE2ODIgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19FRVBST00gaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDRjg1NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19QQ0Y4NTkxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfTUFYNjg3NSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX1RTTDI1NTAgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0FMR08gaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0JVUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfREVCVUdfQ0hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19TUEkgaXMgbm90IHNldAorIyBDT05GSUdfVzEgaXMgbm90IHNldAorQ09ORklHX1BPV0VSX1NVUFBMWT15CisjIENPTkZJR19QT1dFUl9TVVBQTFlfREVCVUcgaXMgbm90IHNldAorIyBDT05GSUdfUERBX1BPV0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0JBVFRFUllfRFMyNzYwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hXTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19USEVSTUFMPXkKK0NPTkZJR19XQVRDSERPRz15CisjIENPTkZJR19XQVRDSERPR19OT1dBWU9VVCBpcyBub3Qgc2V0CisKKyMKKyMgV2F0Y2hkb2cgRGV2aWNlIERyaXZlcnMKKyMKKyMgQ09ORklHX1NPRlRfV0FUQ0hET0cgaXMgbm90IHNldAorIyBDT05GSUdfQUNRVUlSRV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQURWQU5URUNIX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19BTElNMTUzNV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQUxJTTcxMDFfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDNTIwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19FVVJPVEVDSF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSUI3MDBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCTUFTUiBpcyBub3Qgc2V0CisjIENPTkZJR19XQUZFUl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfSTYzMDBFU0JfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lUQ09fV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lUODcxMkZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hQX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDMTIwMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfUEM4NzQxM19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfNjBYWF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0JDODM2MF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0JDNzI0MF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVNV9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU01TQzM3Qjc4N19XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzNjI3SEZfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4MzY5N0hGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM4NzdGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM5NzdGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19NQUNIWl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfU0JDX0VQWF9DM19XQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgUENJLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19QQ0lQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX1dEVFBDSSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCLWJhc2VkIFdhdGNoZG9nIENhcmRzCisjCisjIENPTkZJR19VU0JQQ1dBVENIRE9HIGlzIG5vdCBzZXQKKworIworIyBTb25pY3MgU2lsaWNvbiBCYWNrcGxhbmUKKyMKK0NPTkZJR19TU0JfUE9TU0lCTEU9eQorIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKKworIworIyBNdWx0aWZ1bmN0aW9uIGRldmljZSBkcml2ZXJzCisjCisjIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAorIyBDT05GSUdfSFRDX1BBU0lDMyBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkZXZpY2VzCisjCisKKyMKKyMgTXVsdGltZWRpYSBjb3JlIHN1cHBvcnQKKyMKKyMgQ09ORklHX1ZJREVPX0RFViBpcyBub3Qgc2V0CisjIENPTkZJR19EVkJfQ09SRSBpcyBub3Qgc2V0CisKKyMKKyMgTXVsdGltZWRpYSBkcml2ZXJzCisjCitDT05GSUdfREFCPXkKKyMgQ09ORklHX1VTQl9EQUJVU0IgaXMgbm90IHNldAorCisjCisjIEdyYXBoaWNzIHN1cHBvcnQKKyMKIENPTkZJR19BR1A9eQogIyBDT05GSUdfQUdQX0FMSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BR1BfQVRJIGlzIG5vdCBzZXQKQEAgLTk3Niw2NCArMTM5MywxMDIgQEAKICMgQ09ORklHX0FHUF9TV09SS1MgaXMgbm90IHNldAogIyBDT05GSUdfQUdQX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19BR1BfRUZGSUNFT04gaXMgbm90IHNldAotIyBDT05GSUdfRFJNIGlzIG5vdCBzZXQKLSMgQ09ORklHX01XQVZFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1BDODczNnhfR1BJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19OU0NfR1BJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19DUzU1MzVfR1BJTyBpcyBub3Qgc2V0Ci1DT05GSUdfUkFXX0RSSVZFUj15Ci1DT05GSUdfTUFYX1JBV19ERVZTPTI1NgotQ09ORklHX0hQRVQ9eQotIyBDT05GSUdfSFBFVF9SVENfSVJRIGlzIG5vdCBzZXQKLUNPTkZJR19IUEVUX01NQVA9eQotIyBDT05GSUdfSEFOR0NIRUNLX1RJTUVSIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RDR19UUE0gaXMgbm90IHNldAotIyBDT05GSUdfVEVMQ0xPQ0sgaXMgbm90IHNldAotQ09ORklHX0RFVlBPUlQ9eQotIyBDT05GSUdfSTJDIGlzIG5vdCBzZXQKK0NPTkZJR19EUk09eQorIyBDT05GSUdfRFJNX1RERlggaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1IxMjggaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fSTgzMCBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0k5MTU9eQorIyBDT05GSUdfRFJNX01HQSBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CitDT05GSUdfRkI9eQorIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKK0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9ERUZFUlJFRF9JTz15CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CitDT05GSUdfRkJfTU9ERV9IRUxQRVJTPXkKK0NPTkZJR19GQl9USUxFQkxJVFRJTkc9eQogCiAjCi0jIFNQSSBzdXBwb3J0CisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCiAjCi0jIENPTkZJR19TUEkgaXMgbm90IHNldAotIyBDT05GSUdfU1BJX01BU1RFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XMSBpcyBub3Qgc2V0Ci0jIENPTkZJR19QT1dFUl9TVVBQTFkgaXMgbm90IHNldAotIyBDT05GSUdfSFdNT04gaXMgbm90IHNldAotCi0jCi0jIE11bHRpZnVuY3Rpb24gZGV2aWNlIGRyaXZlcnMKLSMKLSMgQ09ORklHX01GRF9TTTUwMSBpcyBub3Qgc2V0Ci0KLSMKLSMgTXVsdGltZWRpYSBkZXZpY2VzCi0jCi0jIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAotIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAotQ09ORklHX0RBQj15Ci0jIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKLQotIwotIyBHcmFwaGljcyBzdXBwb3J0Ci0jCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ0lSUlVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1BNMiBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9DWUJFUjIwMDAgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVJDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FTSUxJQU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0lNU1RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZHQTE2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1VWRVNBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZFU0EgaXMgbm90IHNldAorQ09ORklHX0ZCX0VGST15CisjIENPTkZJR19GQl9JTUFDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX040MTEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSEdBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1MxRDEzWFhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX05WSURJQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9SSVZBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0k4MTAgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTEU4MDU3OCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JTlRFTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAorIyBDT05GSUdfRkJfUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9LWVJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCXzNERlggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVk9PRE9PMSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQ1lCTEEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVFJJREVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUksgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0dFT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVD15CisjIENPTkZJR19MQ0RfQ0xBU1NfREVWSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19CQUNLTElHSFRfQ0xBU1NfREVWSUNFPXkKKyMgQ09ORklHX0JBQ0tMSUdIVF9DT1JHSSBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfUFJPR0VBUiBpcyBub3Qgc2V0CiAKICMKICMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAogIwogIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKICMKIENPTkZJR19WR0FfQ09OU09MRT15CiBDT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDSz15Ci1DT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDS19TSVpFPTEyOAorQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0tfU0laRT02NAogQ09ORklHX1ZJREVPX1NFTEVDVD15CiBDT05GSUdfRFVNTVlfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dPPXkKKyMgQ09ORklHX0xPR09fTElOVVhfTU9OTyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0dPX0xJTlVYX1ZHQTE2IGlzIG5vdCBzZXQKK0NPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQogCiAjCiAjIFNvdW5kCkBAIC0xMDQzLDMzICsxNDk4LDE2NyBAQAogIwogIyBBZHZhbmNlZCBMaW51eCBTb3VuZCBBcmNoaXRlY3R1cmUKICMKLSMgQ09ORklHX1NORCBpcyBub3Qgc2V0CitDT05GSUdfU05EPXkKK0NPTkZJR19TTkRfVElNRVI9eQorQ09ORklHX1NORF9QQ009eQorQ09ORklHX1NORF9IV0RFUD15CitDT05GSUdfU05EX1NFUVVFTkNFUj15CitDT05GSUdfU05EX1NFUV9EVU1NWT15CitDT05GSUdfU05EX09TU0VNVUw9eQorQ09ORklHX1NORF9NSVhFUl9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTPXkKK0NPTkZJR19TTkRfUENNX09TU19QTFVHSU5TPXkKK0NPTkZJR19TTkRfU0VRVUVOQ0VSX09TUz15CitDT05GSUdfU05EX0RZTkFNSUNfTUlOT1JTPXkKK0NPTkZJR19TTkRfU1VQUE9SVF9PTERfQVBJPXkKK0NPTkZJR19TTkRfVkVSQk9TRV9QUk9DRlM9eQorIyBDT05GSUdfU05EX1ZFUkJPU0VfUFJJTlRLIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfU05EX1ZNQVNURVI9eQorCisjCisjIEdlbmVyaWMgZGV2aWNlcworIworIyBDT05GSUdfU05EX1BDU1AgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RVTU1ZIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJNSURJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NVFBBViBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU0VSSUFMX1UxNjU1MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTVBVNDAxIGlzIG5vdCBzZXQKKworIworIyBQQ0kgZGV2aWNlcworIworIyBDT05GSUdfU05EX0FEMTg4OSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQUxTMzAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFM0MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTEk1NDUxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVElJWFAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUF9NT0RFTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODEwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVcyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BWlQzMzI4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9CVDg3WCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ0EwMTA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DTUlQQ0kgaXMgbm90IHNldAorIyBDT05GSUdfU05EX09YWUdFTiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M0MjgxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQ2WFggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNTUzMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M1NTM1QVVESU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RBUkxBMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0dJTkEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTEFZTEEyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfREFSTEEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfR0lOQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9MQVlMQTI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NT05BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSUEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VDSE8zRyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTkRJR09JTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPREogaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VNVTEwSzFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTlMxMzcxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FUzE5MzggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0VTMTk2OCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRk04MDEgaXMgbm90IHNldAorQ09ORklHX1NORF9IREFfSU5URUw9eQorQ09ORklHX1NORF9IREFfSFdERVA9eQorQ09ORklHX1NORF9IREFfQ09ERUNfUkVBTFRFSz15CitDT05GSUdfU05EX0hEQV9DT0RFQ19BTkFMT0c9eQorQ09ORklHX1NORF9IREFfQ09ERUNfU0lHTUFURUw9eQorQ09ORklHX1NORF9IREFfQ09ERUNfVklBPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0FUSUhETUk9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQ09ORVhBTlQ9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQ01FRElBPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1NJMzA1ND15CitDT05GSUdfU05EX0hEQV9HRU5FUklDPXkKKyMgQ09ORklHX1NORF9IREFfUE9XRVJfU0FWRSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSERTUE0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hJRklFUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcxMiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSUNFMTcyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5URUw4WDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lOVEVMOFgwTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfS09SRzEyMTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01BRVNUUk8zIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NSVhBUlQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX05NMjU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QQ1hIUiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUklQVElERSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FMzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTk2IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUU5NjUyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TSVM3MDE5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TT05JQ1ZJQkVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9UUklERU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSUE4MlhYX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9WSVJUVU9TTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVlgyMjIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1lNRlBDSSBpcyBub3Qgc2V0CisKKyMKKyMgVVNCIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9VU0JfQVVESU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9VU1gyWSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVVNCX0NBSUFRIGlzIG5vdCBzZXQKKworIworIyBQQ01DSUEgZGV2aWNlcworIworIyBDT05GSUdfU05EX1ZYUE9DS0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9QREFVRElPQ0YgaXMgbm90IHNldAorCisjCisjIFN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQKKyMKKyMgQ09ORklHX1NORF9TT0MgaXMgbm90IHNldAorCisjCisjIEFMU0EgU29DIGF1ZGlvIGZvciBGcmVlc2NhbGUgU09DcworIworCisjCisjIFNvQyBBdWRpbyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzIE9NQVAKKyMKIAogIwogIyBPcGVuIFNvdW5kIFN5c3RlbQogIwotQ09ORklHX1NPVU5EX1BSSU1FPXkKLSMgQ09ORklHX1NPVU5EX1RSSURFTlQgaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfTVNORENMQVMgaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfTVNORFBJTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19TT1VORF9PU1MgaXMgbm90IHNldAorIyBDT05GSUdfU09VTkRfUFJJTUUgaXMgbm90IHNldAogQ09ORklHX0hJRF9TVVBQT1JUPXkKIENPTkZJR19ISUQ9eQotIyBDT05GSUdfSElEX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19ISURfREVCVUc9eQorQ09ORklHX0hJRFJBVz15CiAKICMKICMgVVNCIElucHV0IERldmljZXMKICMKIENPTkZJR19VU0JfSElEPXkKLSMgQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0sgaXMgbm90IHNldAotIyBDT05GSUdfSElEX0ZGIGlzIG5vdCBzZXQKLSMgQ09ORklHX1VTQl9ISURERVYgaXMgbm90IHNldAorQ09ORklHX1VTQl9ISURJTlBVVF9QT1dFUkJPT0s9eQorQ09ORklHX0hJRF9GRj15CitDT05GSUdfSElEX1BJRD15CitDT05GSUdfTE9HSVRFQ0hfRkY9eQorIyBDT05GSUdfTE9HSVJVTUJMRVBBRDJfRkYgaXMgbm90IHNldAorQ09ORklHX1BBTlRIRVJMT1JEX0ZGPXkKK0NPTkZJR19USFJVU1RNQVNURVJfRkY9eQorQ09ORklHX1pFUk9QTFVTX0ZGPXkKK0NPTkZJR19VU0JfSElEREVWPXkKIENPTkZJR19VU0JfU1VQUE9SVD15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX0hDRD15CiBDT05GSUdfVVNCX0FSQ0hfSEFTX09IQ0k9eQogQ09ORklHX1VTQl9BUkNIX0hBU19FSENJPXkKIENPTkZJR19VU0I9eQotIyBDT05GSUdfVVNCX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfREVCVUc9eQorQ09ORklHX1VTQl9BTk5PVU5DRV9ORVdfREVWSUNFUz15CiAKICMKICMgTWlzY2VsbGFuZW91cyBVU0Igb3B0aW9ucwpAQCAtMTA3NywxOCArMTY2NiwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VGUz15CiAjIENPTkZJR19VU0JfREVWSUNFX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEVSU0lTVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVU1BFTkQ9eQogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC0xMTIxLDggKzE3MTAsMTAgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorQ09ORklHX1VTQl9MSUJVU1VBTD15CiAKICMKICMgVVNCIEltYWdpbmcgZGV2aWNlcwpAQCAtMTEzNCwxMCArMTcyNSw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE2Myw5MCArMTc1MCwxMjUgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIwotIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKIAogIwogIyBMRUQgZHJpdmVycwogIworIyBDT05GSUdfTEVEU19DTEVWT19NQUlMIGlzIG5vdCBzZXQKIAogIwogIyBMRUQgVHJpZ2dlcnMKICMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0CisjIENPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19FREFDPXkKIAogIwotIyBSZWFsIFRpbWUgQ2xvY2sKKyMgUmVwb3J0aW5nIHN1YnN5c3RlbXMKICMKLSMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19FREFDX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VEQUNfTU1fRURBQyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKKyMgQ09ORklHX1JUQ19IQ1RPU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0CisjIFJUQyBpbnRlcmZhY2VzCiAjCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAogCiAjCi0jIERNQSBDbGllbnRzCisjIEkyQyBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0NNT1M9eQorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19ETUFERVZJQ0VTPXkKIAogIwogIyBETUEgRGV2aWNlcwogIwotQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKLSMgQ09ORklHX0tWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JTlRFTF9JT0FURE1BIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VJTyBpcyBub3Qgc2V0CiAKICMKLSMgVXNlcnNwYWNlIEkvTworIyBGaXJtd2FyZSBEcml2ZXJzCiAjCi0jIENPTkZJR19VSU8gaXMgbm90IHNldAorIyBDT05GSUdfRUREIGlzIG5vdCBzZXQKK0NPTkZJR19FRklfVkFSUz15CisjIENPTkZJR19ERUxMX1JCVSBpcyBub3Qgc2V0CisjIENPTkZJR19EQ0RCQVMgaXMgbm90IHNldAorQ09ORklHX0RNSUlEPXkKKyMgQ09ORklHX0lTQ1NJX0lCRlRfRklORCBpcyBub3Qgc2V0CiAKICMKICMgRmlsZSBzeXN0ZW1zCiAjCi1DT05GSUdfRVhUMl9GUz15Ci1DT05GSUdfRVhUMl9GU19YQVRUUj15Ci1DT05GSUdfRVhUMl9GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfRVhUMl9GU19TRUNVUklUWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19FWFQyX0ZTX1hJUCBpcyBub3Qgc2V0CisjIENPTkZJR19FWFQyX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19FWFQzX0ZTPXkKIENPTkZJR19FWFQzX0ZTX1hBVFRSPXkKIENPTkZJR19FWFQzX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19FWFQzX0ZTX1NFQ1VSSVRZIGlzIG5vdCBzZXQKK0NPTkZJR19FWFQzX0ZTX1NFQ1VSSVRZPXkKICMgQ09ORklHX0VYVDRERVZfRlMgaXMgbm90IHNldAogQ09ORklHX0pCRD15CiAjIENPTkZJR19KQkRfREVCVUcgaXMgbm90IHNldAogQ09ORklHX0ZTX01CQ0FDSEU9eQotQ09ORklHX1JFSVNFUkZTX0ZTPXkKLSMgQ09ORklHX1JFSVNFUkZTX0NIRUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX1JFSVNFUkZTX1BST0NfSU5GTyBpcyBub3Qgc2V0Ci1DT05GSUdfUkVJU0VSRlNfRlNfWEFUVFI9eQotQ09ORklHX1JFSVNFUkZTX0ZTX1BPU0lYX0FDTD15Ci0jIENPTkZJR19SRUlTRVJGU19GU19TRUNVUklUWSBpcyBub3Qgc2V0CisjIENPTkZJR19SRUlTRVJGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19KRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0ZTX1BPU0lYX0FDTD15CiAjIENPTkZJR19YRlNfRlMgaXMgbm90IHNldAotIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19PQ0ZTMl9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19NSU5JWF9GUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19ST01GU19GUyBpcyBub3Qgc2V0CitDT05GSUdfRE5PVElGWT15CiBDT05GSUdfSU5PVElGWT15CiBDT05GSUdfSU5PVElGWV9VU0VSPXkKLSMgQ09ORklHX1FVT1RBIGlzIG5vdCBzZXQKLUNPTkZJR19ETk9USUZZPXkKK0NPTkZJR19RVU9UQT15CitDT05GSUdfUVVPVEFfTkVUTElOS19JTlRFUkZBQ0U9eQorIyBDT05GSUdfUFJJTlRfUVVPVEFfV0FSTklORyBpcyBub3Qgc2V0CisjIENPTkZJR19RRk1UX1YxIGlzIG5vdCBzZXQKK0NPTkZJR19RRk1UX1YyPXkKK0NPTkZJR19RVU9UQUNUTD15CiAjIENPTkZJR19BVVRPRlNfRlMgaXMgbm90IHNldAogQ09ORklHX0FVVE9GUzRfRlM9eQogIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CkBAIC0xMjU2LDggKzE4NzgsOCBAQAogIyBDRC1ST00vRFZEIEZpbGVzeXN0ZW1zCiAjCiBDT05GSUdfSVNPOTY2MF9GUz15Ci0jIENPTkZJR19KT0xJRVQgaXMgbm90IHNldAotIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19KT0xJRVQ9eQorQ09ORklHX1pJU09GUz15CiAjIENPTkZJR19VREZfRlMgaXMgbm90IHNldAogCiAjCkBAIC0xMjc1LDEzICsxODk3LDEzIEBACiAjCiBDT05GSUdfUFJPQ19GUz15CiBDT05GSUdfUFJPQ19LQ09SRT15CitDT05GSUdfUFJPQ19WTUNPUkU9eQogQ09ORklHX1BST0NfU1lTQ1RMPXkKIENPTkZJR19TWVNGUz15CiBDT05GSUdfVE1QRlM9eQogQ09ORklHX1RNUEZTX1BPU0lYX0FDTD15CiBDT05GSUdfSFVHRVRMQkZTPXkKIENPTkZJR19IVUdFVExCX1BBR0U9eQotQ09ORklHX1JBTUZTPXkKICMgQ09ORklHX0NPTkZJR0ZTX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtMTI4OSw2ICsxOTExLDcgQEAKICMKICMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQUZGU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19FQ1JZUFRfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hGU1BMVVNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQkVGU19GUyBpcyBub3Qgc2V0CkBAIC0xMjk2LDMzICsxOTE5LDE1IEBACiAjIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1ZYRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSFBGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19RTlg0RlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19VRlNfRlMgaXMgbm90IHNldAotCi0jCi0jIE5ldHdvcmsgRmlsZSBTeXN0ZW1zCi0jCi1DT05GSUdfTkZTX0ZTPXkKLUNPTkZJR19ORlNfVjM9eQotIyBDT05GSUdfTkZTX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNfVjQgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX0RJUkVDVElPIGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEPXkKLUNPTkZJR19ORlNEX1YzPXkKLSMgQ09ORklHX05GU0RfVjNfQUNMIGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU0RfVjQgaXMgbm90IHNldAotQ09ORklHX05GU0RfVENQPXkKLUNPTkZJR19ST09UX05GUz15Ci1DT05GSUdfTE9DS0Q9eQotQ09ORklHX0xPQ0tEX1Y0PXkKLUNPTkZJR19FWFBPUlRGUz15Ci1DT05GSUdfTkZTX0NPTU1PTj15Ci1DT05GSUdfU1VOUlBDPXkKLSMgQ09ORklHX1NVTlJQQ19CSU5EMzQgaXMgbm90IHNldAotIyBDT05GSUdfUlBDU0VDX0dTU19LUkI1IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfU1BLTTMgaXMgbm90IHNldAorQ09ORklHX05FVFdPUktfRklMRVNZU1RFTVM9eQorIyBDT05GSUdfTkZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GU0QgaXMgbm90IHNldAogIyBDT05GSUdfU01CX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NJRlMgaXMgbm90IHNldAogIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKQEAgLTEzMzIsMTQgKzE5MzcsMjYgQEAKICMKICMgUGFydGl0aW9uIFR5cGVzCiAjCi0jIENPTkZJR19QQVJUSVRJT05fQURWQU5DRUQgaXMgbm90IHNldAorQ09ORklHX1BBUlRJVElPTl9BRFZBTkNFRD15CisjIENPTkZJR19BQ09STl9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX09TRl9QQVJUSVRJT049eQorQ09ORklHX0FNSUdBX1BBUlRJVElPTj15CisjIENPTkZJR19BVEFSSV9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX01BQ19QQVJUSVRJT049eQogQ09ORklHX01TRE9TX1BBUlRJVElPTj15Ci0KLSMKLSMgTmF0aXZlIExhbmd1YWdlIFN1cHBvcnQKLSMKK0NPTkZJR19CU0RfRElTS0xBQkVMPXkKK0NPTkZJR19NSU5JWF9TVUJQQVJUSVRJT049eQorQ09ORklHX1NPTEFSSVNfWDg2X1BBUlRJVElPTj15CitDT05GSUdfVU5JWFdBUkVfRElTS0xBQkVMPXkKKyMgQ09ORklHX0xETV9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX1NHSV9QQVJUSVRJT049eQorIyBDT05GSUdfVUxUUklYX1BBUlRJVElPTiBpcyBub3Qgc2V0CitDT05GSUdfU1VOX1BBUlRJVElPTj15CitDT05GSUdfS0FSTUFfUEFSVElUSU9OPXkKK0NPTkZJR19FRklfUEFSVElUSU9OPXkKKyMgQ09ORklHX1NZU1Y2OF9QQVJUSVRJT04gaXMgbm90IHNldAogQ09ORklHX05MUz15Ci1DT05GSUdfTkxTX0RFRkFVTFQ9Imlzbzg4NTktMSIKK0NPTkZJR19OTFNfREVGQVVMVD0idXRmOCIKIENPTkZJR19OTFNfQ09ERVBBR0VfNDM3PXkKICMgQ09ORklHX05MU19DT0RFUEFHRV83MzcgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3NSBpcyBub3Qgc2V0CkBAIC0xMzc0LDM3ICsxOTkxLDMzIEBACiAjIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19JU084ODU5XzEzIGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19JU084ODU5XzE0IGlzIG5vdCBzZXQKLUNPTkZJR19OTFNfSVNPODg1OV8xNT15CisjIENPTkZJR19OTFNfSVNPODg1OV8xNSBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfS09JOF9SIGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19LT0k4X1UgaXMgbm90IHNldAogQ09ORklHX05MU19VVEY4PXkKLQotIwotIyBEaXN0cmlidXRlZCBMb2NrIE1hbmFnZXIKLSMKICMgQ09ORklHX0RMTSBpcyBub3Qgc2V0Ci1DT05GSUdfSU5TVFJVTUVOVEFUSU9OPXkKLUNPTkZJR19QUk9GSUxJTkc9eQotQ09ORklHX09QUk9GSUxFPXkKLUNPTkZJR19LUFJPQkVTPXkKIAogIwogIyBLZXJuZWwgaGFja2luZwogIwogQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQogIyBDT05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldAorIyBDT05GSUdfRU5BQkxFX1dBUk5fREVQUkVDQVRFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19FTkFCTEVfTVVTVF9DSEVDSyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfV0FSTj0yMDQ4CiBDT05GSUdfTUFHSUNfU1lTUlE9eQotQ09ORklHX1VOVVNFRF9TWU1CT0xTPXkKLSMgQ09ORklHX0RFQlVHX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VOVVNFRF9TWU1CT0xTIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19GUz15CiAjIENPTkZJR19IRUFERVJTX0NIRUNLIGlzIG5vdCBzZXQKIENPTkZJR19ERUJVR19LRVJORUw9eQogIyBDT05GSUdfREVCVUdfU0hJUlEgaXMgbm90IHNldAotQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQPXkKKyMgQ09ORklHX0RFVEVDVF9TT0ZUTE9DS1VQIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDSEVEX0RFQlVHIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDSEVEU1RBVFMgaXMgbm90IHNldAorQ09ORklHX1NDSEVEU1RBVFM9eQogQ09ORklHX1RJTUVSX1NUQVRTPXkKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAogIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CisjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKQEAgLTE0MTksNDggKzIwMzIsMTc0IEBACiBDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUkFNRV9QT0lOVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19PUFRJTUlaRV9JTkxJTklORz15CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAorIyBDT05GSUdfTEFURU5DWVRPUCBpcyBub3Qgc2V0CitDT05GSUdfUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVD15CisjIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tHREIgaXMgbm90IHNldAorQ09ORklHX0hBVkVfQVJDSF9LR0RCPXkKKyMgQ09ORklHX05PTlBST01JU0NfREVWTUVNIGlzIG5vdCBzZXQKIENPTkZJR19FQVJMWV9QUklOVEs9eQogQ09ORklHX0RFQlVHX1NUQUNLT1ZFUkZMT1c9eQotIyBDT05GSUdfREVCVUdfU1RBQ0tfVVNBR0UgaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfUk9EQVRBIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19TVEFDS19VU0FHRT15CisjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1BURFVNUCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfUk9EQVRBPXkKKyMgQ09ORklHX0RFQlVHX1JPREFUQV9URVNUIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19OWF9URVNUPW0KICMgQ09ORklHXzRLU1RBQ0tTIGlzIG5vdCBzZXQKIENPTkZJR19YODZfRklORF9TTVBfQ09ORklHPXkKIENPTkZJR19YODZfTVBQQVJTRT15CiBDT05GSUdfRE9VQkxFRkFVTFQ9eQorQ09ORklHX0lPX0RFTEFZX1RZUEVfMFg4MD0wCitDT05GSUdfSU9fREVMQVlfVFlQRV8wWEVEPTEKK0NPTkZJR19JT19ERUxBWV9UWVBFX1VERUxBWT0yCitDT05GSUdfSU9fREVMQVlfVFlQRV9OT05FPTMKK0NPTkZJR19JT19ERUxBWV8wWDgwPXkKKyMgQ09ORklHX0lPX0RFTEFZXzBYRUQgaXMgbm90IHNldAorIyBDT05GSUdfSU9fREVMQVlfVURFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPX0RFTEFZX05PTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9fREVMQVlfVFlQRT0wCitDT05GSUdfREVCVUdfQk9PVF9QQVJBTVM9eQorIyBDT05GSUdfQ1BBX0RFQlVHIGlzIG5vdCBzZXQKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCi0jIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CitDT05GSUdfS0VZUz15CitDT05GSUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQorQ09ORklHX1NFQ1VSSVRZPXkKK0NPTkZJR19TRUNVUklUWV9ORVRXT1JLPXkKKyMgQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfQ0FQQUJJTElUSUVTPXkKK0NPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUz15CisjIENPTkZJR19TRUNVUklUWV9ST09UUExVRyBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfREVGQVVMVF9NTUFQX01JTl9BRERSPTY1NTM2CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWD15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9CT09UUEFSQU09eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQk9PVFBBUkFNX1ZBTFVFPTEKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0RJU0FCTEU9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfREVWRUxPUD15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9BVkNfU1RBVFM9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQ0hFQ0tSRVFQUk9UX1ZBTFVFPTEKKyMgQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfRU5BQkxFX1NFQ01BUktfREVGQVVMVCBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX1BPTElDWURCX1ZFUlNJT05fTUFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1NNQUNLIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklHX0NSWVBUT19BRUFEPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fSEFTSD15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPXkKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9eQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0hNQUM9eQorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1NIQTE9eQorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCitDT05GSUdfQ1JZUFRPX0FFUz15CisjIENPTkZJR19DUllQVE9fQUVTXzU4NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVJDND15CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwXzU4NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIXzU4NiBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19IVz15CisjIENPTkZJR19DUllQVE9fREVWX1BBRExPQ0sgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0RFVl9HRU9ERSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LVk09eQorQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKKyMgQ09ORklHX0tWTSBpcyBub3Qgc2V0CisjIENPTkZJR19MR1VFU1QgaXMgbm90IHNldAorIyBDT05GSUdfVklSVElPX1BDSSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUSU9fQkFMTE9PTiBpcyBub3Qgc2V0CiAKICMKICMgTGlicmFyeSByb3V0aW5lcwogIwogQ09ORklHX0JJVFJFVkVSU0U9eQorQ09ORklHX0dFTkVSSUNfRklORF9GSVJTVF9CSVQ9eQorQ09ORklHX0dFTkVSSUNfRklORF9ORVhUX0JJVD15CiAjIENPTkZJR19DUkNfQ0NJVFQgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDMTYgaXMgbm90IHNldAogIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKIENPTkZJR19DUkMzMj15CiAjIENPTkZJR19DUkM3IGlzIG5vdCBzZXQKICMgQ09ORklHX0xJQkNSQzMyQyBpcyBub3Qgc2V0CitDT05GSUdfQVVESVRfR0VORVJJQz15CiBDT05GSUdfWkxJQl9JTkZMQVRFPXkKIENPTkZJR19QTElTVD15CiBDT05GSUdfSEFTX0lPTUVNPXkKIENPTkZJR19IQVNfSU9QT1JUPXkKIENPTkZJR19IQVNfRE1BPXkKLUNPTkZJR19HRU5FUklDX0hBUkRJUlFTPXkKLUNPTkZJR19HRU5FUklDX0lSUV9QUk9CRT15Ci1DT05GSUdfR0VORVJJQ19QRU5ESU5HX0lSUT15Ci1DT05GSUdfWDg2X1NNUD15Ci1DT05GSUdfWDg2X0hUPXkKLUNPTkZJR19YODZfQklPU19SRUJPT1Q9eQotQ09ORklHX1g4Nl9UUkFNUE9MSU5FPXkKLUNPTkZJR19LVElNRV9TQ0FMQVI9eQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnIGIvYXJjaC94ODYvY29uZmlncy94ODZfNjRfZGVmY29uZmlnCmluZGV4IDJkNmY1YjIuLmFlNTEyNGUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZworKysgYi9hcmNoL3g4Ni9jb25maWdzL3g4Nl82NF9kZWZjb25maWcKQEAgLTEsNjQgKzEsMTAzIEBACiAjCiAjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0Ci0jIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjItZ2l0MTQKLSMgRnJpIEp1bCAyMCAwOTo1MzoxNSAyMDA3CisjIExpbnV4IGtlcm5lbCB2ZXJzaW9uOiAyLjYuMjYtcmMxCisjIFN1biBNYXkgIDQgMTk6NTk6NTcgMjAwOAogIwotQ09ORklHX1g4Nl82ND15CiBDT05GSUdfNjRCSVQ9eQorIyBDT05GSUdfWDg2XzMyIGlzIG5vdCBzZXQKK0NPTkZJR19YODZfNjQ9eQogQ09ORklHX1g4Nj15CitDT05GSUdfREVGQ09ORklHX0xJU1Q9ImFyY2gveDg2L2NvbmZpZ3MveDg2XzY0X2RlZmNvbmZpZyIKKyMgQ09ORklHX0dFTkVSSUNfTE9DS0JSRUFLIGlzIG5vdCBzZXQKIENPTkZJR19HRU5FUklDX1RJTUU9eQotQ09ORklHX0dFTkVSSUNfVElNRV9WU1lTQ0FMTD15CiBDT05GSUdfR0VORVJJQ19DTU9TX1VQREFURT15Ci1DT05GSUdfWk9ORV9ETUEzMj15CitDT05GSUdfQ0xPQ0tTT1VSQ0VfV0FUQ0hET0c9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFM9eQorQ09ORklHX0dFTkVSSUNfQ0xPQ0tFVkVOVFNfQlJPQURDQVNUPXkKIENPTkZJR19MT0NLREVQX1NVUFBPUlQ9eQogQ09ORklHX1NUQUNLVFJBQ0VfU1VQUE9SVD15Ci1DT05GSUdfU0VNQVBIT1JFX1NMRUVQRVJTPXkKK0NPTkZJR19IQVZFX0xBVEVOQ1lUT1BfU1VQUE9SVD15CitDT05GSUdfRkFTVF9DTVBYQ0hHX0xPQ0FMPXkKIENPTkZJR19NTVU9eQogQ09ORklHX1pPTkVfRE1BPXkKLUNPTkZJR19RVUlDS0xJU1Q9eQotQ09ORklHX05SX1FVSUNLPTIKLUNPTkZJR19SV1NFTV9HRU5FUklDX1NQSU5MT0NLPXkKLUNPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQotQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKLUNPTkZJR19YODZfQ01QWENIRz15Ci1DT05GSUdfRUFSTFlfUFJJTlRLPXkKIENPTkZJR19HRU5FUklDX0lTQV9ETUE9eQogQ09ORklHX0dFTkVSSUNfSU9NQVA9eQotQ09ORklHX0FSQ0hfTUFZX0hBVkVfUENfRkRDPXkKLUNPTkZJR19BUkNIX1BPUFVMQVRFU19OT0RFX01BUD15Ci1DT05GSUdfRE1JPXkKLUNPTkZJR19BVURJVF9BUkNIPXkKIENPTkZJR19HRU5FUklDX0JVRz15CitDT05GSUdfR0VORVJJQ19IV0VJR0hUPXkKKyMgQ09ORklHX0dFTkVSSUNfR1BJTyBpcyBub3Qgc2V0CitDT05GSUdfQVJDSF9NQVlfSEFWRV9QQ19GREM9eQorQ09ORklHX1JXU0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQorIyBDT05GSUdfUldTRU1fWENIR0FERF9BTEdPUklUSE0gaXMgbm90IHNldAogIyBDT05GSUdfQVJDSF9IQVNfSUxPRzJfVTMyIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ0hfSEFTX0lMT0cyX1U2NCBpcyBub3Qgc2V0Ci1DT05GSUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmlnIgotCi0jCi0jIENvZGUgbWF0dXJpdHkgbGV2ZWwgb3B0aW9ucwotIwotQ09ORklHX0VYUEVSSU1FTlRBTD15Ci1DT05GSUdfTE9DS19LRVJORUw9eQotQ09ORklHX0lOSVRfRU5WX0FSR19MSU1JVD0zMgorQ09ORklHX0FSQ0hfSEFTX0NQVV9JRExFX1dBSVQ9eQorQ09ORklHX0dFTkVSSUNfQ0FMSUJSQVRFX0RFTEFZPXkKK0NPTkZJR19HRU5FUklDX1RJTUVfVlNZU0NBTEw9eQorQ09ORklHX0FSQ0hfSEFTX0NQVV9SRUxBWD15CitDT05GSUdfQVJDSF9IQVNfQ0FDSEVfTElORV9TSVpFPXkKK0NPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQT15CitDT05GSUdfSEFWRV9DUFVNQVNLX09GX0NQVV9NQVA9eQorQ09ORklHX0FSQ0hfSElCRVJOQVRJT05fUE9TU0lCTEU9eQorQ09ORklHX0FSQ0hfU1VTUEVORF9QT1NTSUJMRT15CitDT05GSUdfWk9ORV9ETUEzMj15CitDT05GSUdfQVJDSF9QT1BVTEFURVNfTk9ERV9NQVA9eQorQ09ORklHX0FVRElUX0FSQ0g9eQorQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVD15CitDT05GSUdfQVJDSF9TVVBQT1JUU19PUFRJTUlaRURfSU5MSU5JTkc9eQorQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQorQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKK0NPTkZJR19HRU5FUklDX1BFTkRJTkdfSVJRPXkKK0NPTkZJR19YODZfU01QPXkKK0NPTkZJR19YODZfNjRfU01QPXkKK0NPTkZJR19YODZfSFQ9eQorQ09ORklHX1g4Nl9CSU9TX1JFQk9PVD15CitDT05GSUdfWDg2X1RSQU1QT0xJTkU9eQorIyBDT05GSUdfS1RJTUVfU0NBTEFSIGlzIG5vdCBzZXQKIAogIwogIyBHZW5lcmFsIHNldHVwCiAjCitDT05GSUdfRVhQRVJJTUVOVEFMPXkKK0NPTkZJR19MT0NLX0tFUk5FTD15CitDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCiBDT05GSUdfTE9DQUxWRVJTSU9OPSIiCi1DT05GSUdfTE9DQUxWRVJTSU9OX0FVVE89eQorIyBDT05GSUdfTE9DQUxWRVJTSU9OX0FVVE8gaXMgbm90IHNldAogQ09ORklHX1NXQVA9eQogQ09ORklHX1NZU1ZJUEM9eQogQ09ORklHX1NZU1ZJUENfU1lTQ1RMPXkKIENPTkZJR19QT1NJWF9NUVVFVUU9eQotIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAotIyBDT05GSUdfVVNFUl9OUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BVURJVCBpcyBub3Qgc2V0Ci1DT05GSUdfSUtDT05GSUc9eQotQ09ORklHX0lLQ09ORklHX1BST0M9eQotQ09ORklHX0xPR19CVUZfU0hJRlQ9MTgKLSMgQ09ORklHX0NQVVNFVFMgaXMgbm90IHNldAotQ09ORklHX1NZU0ZTX0RFUFJFQ0FURUQ9eQorQ09ORklHX0JTRF9QUk9DRVNTX0FDQ1Q9eQorIyBDT05GSUdfQlNEX1BST0NFU1NfQUNDVF9WMyBpcyBub3Qgc2V0CitDT05GSUdfVEFTS1NUQVRTPXkKK0NPTkZJR19UQVNLX0RFTEFZX0FDQ1Q9eQorQ09ORklHX1RBU0tfWEFDQ1Q9eQorQ09ORklHX1RBU0tfSU9fQUNDT1VOVElORz15CitDT05GSUdfQVVESVQ9eQorQ09ORklHX0FVRElUU1lTQ0FMTD15CitDT05GSUdfQVVESVRfVFJFRT15CisjIENPTkZJR19JS0NPTkZJRyBpcyBub3Qgc2V0CitDT05GSUdfTE9HX0JVRl9TSElGVD0xNworQ09ORklHX0NHUk9VUFM9eQorIyBDT05GSUdfQ0dST1VQX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19DR1JPVVBfTlM9eQorIyBDT05GSUdfQ0dST1VQX0RFVklDRSBpcyBub3Qgc2V0CitDT05GSUdfQ1BVU0VUUz15CitDT05GSUdfR1JPVVBfU0NIRUQ9eQorQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQ9eQorIyBDT05GSUdfUlRfR1JPVVBfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfVVNFUl9TQ0hFRCBpcyBub3Qgc2V0CitDT05GSUdfQ0dST1VQX1NDSEVEPXkKK0NPTkZJR19DR1JPVVBfQ1BVQUNDVD15CitDT05GSUdfUkVTT1VSQ0VfQ09VTlRFUlM9eQorIyBDT05GSUdfQ0dST1VQX01FTV9SRVNfQ1RMUiBpcyBub3Qgc2V0CisjIENPTkZJR19TWVNGU19ERVBSRUNBVEVEX1YyIGlzIG5vdCBzZXQKK0NPTkZJR19QUk9DX1BJRF9DUFVTRVQ9eQogQ09ORklHX1JFTEFZPXkKK0NPTkZJR19OQU1FU1BBQ0VTPXkKK0NPTkZJR19VVFNfTlM9eQorQ09ORklHX0lQQ19OUz15CitDT05GSUdfVVNFUl9OUz15CitDT05GSUdfUElEX05TPXkKIENPTkZJR19CTEtfREVWX0lOSVRSRD15CiBDT05GSUdfSU5JVFJBTUZTX1NPVVJDRT0iIgogQ09ORklHX0NDX09QVElNSVpFX0ZPUl9TSVpFPXkKQEAgLTY2LDEzICsxMDUsMTUgQEAKICMgQ09ORklHX0VNQkVEREVEIGlzIG5vdCBzZXQKIENPTkZJR19VSUQxNj15CiBDT05GSUdfU1lTQ1RMX1NZU0NBTEw9eQorQ09ORklHX1NZU0NUTF9TWVNDQUxMX0NIRUNLPXkKIENPTkZJR19LQUxMU1lNUz15CiBDT05GSUdfS0FMTFNZTVNfQUxMPXkKLSMgQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1MgaXMgbm90IHNldAorQ09ORklHX0tBTExTWU1TX0VYVFJBX1BBU1M9eQogQ09ORklHX0hPVFBMVUc9eQogQ09ORklHX1BSSU5USz15CiBDT05GSUdfQlVHPXkKIENPTkZJR19FTEZfQ09SRT15CisjIENPTkZJR19DT01QQVRfQlJLIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX0ZVTEw9eQogQ09ORklHX0ZVVEVYPXkKIENPTkZJR19BTk9OX0lOT0RFUz15CkBAIC04Miw5ICsxMjMsMjEgQEAKIENPTkZJR19FVkVOVEZEPXkKIENPTkZJR19TSE1FTT15CiBDT05GSUdfVk1fRVZFTlRfQ09VTlRFUlM9eQotQ09ORklHX1NMQUI9eQotIyBDT05GSUdfU0xVQiBpcyBub3Qgc2V0CitDT05GSUdfU0xVQl9ERUJVRz15CisjIENPTkZJR19TTEFCIGlzIG5vdCBzZXQKK0NPTkZJR19TTFVCPXkKICMgQ09ORklHX1NMT0IgaXMgbm90IHNldAorQ09ORklHX1BST0ZJTElORz15CitDT05GSUdfTUFSS0VSUz15CisjIENPTkZJR19PUFJPRklMRSBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9PUFJPRklMRT15CitDT05GSUdfS1BST0JFUz15CitDT05GSUdfS1JFVFBST0JFUz15CitDT05GSUdfSEFWRV9LUFJPQkVTPXkKK0NPTkZJR19IQVZFX0tSRVRQUk9CRVM9eQorIyBDT05GSUdfSEFWRV9ETUFfQVRUUlMgaXMgbm90IHNldAorQ09ORklHX1BST0NfUEFHRV9NT05JVE9SPXkKK0NPTkZJR19TTEFCSU5GTz15CiBDT05GSUdfUlRfTVVURVhFUz15CiAjIENPTkZJR19USU5ZX1NITUVNIGlzIG5vdCBzZXQKIENPTkZJR19CQVNFX1NNQUxMPTAKQEAgLTk2LDE0ICsxNDksMTUgQEAKICMgQ09ORklHX0tNT0QgaXMgbm90IHNldAogQ09ORklHX1NUT1BfTUFDSElORT15CiBDT05GSUdfQkxPQ0s9eQotIyBDT05GSUdfQkxLX0RFVl9JT19UUkFDRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0JTRyBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9JT19UUkFDRT15CitDT05GSUdfQkxLX0RFVl9CU0c9eQorQ09ORklHX0JMT0NLX0NPTVBBVD15CiAKICMKICMgSU8gU2NoZWR1bGVycwogIwogQ09ORklHX0lPU0NIRURfTk9PUD15Ci0jIENPTkZJR19JT1NDSEVEX0FTIGlzIG5vdCBzZXQKK0NPTkZJR19JT1NDSEVEX0FTPXkKIENPTkZJR19JT1NDSEVEX0RFQURMSU5FPXkKIENPTkZJR19JT1NDSEVEX0NGUT15CiAjIENPTkZJR19ERUZBVUxUX0FTIGlzIG5vdCBzZXQKQEAgLTExMSwxMDcgKzE2NSwxNzcgQEAKIENPTkZJR19ERUZBVUxUX0NGUT15CiAjIENPTkZJR19ERUZBVUxUX05PT1AgaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfSU9TQ0hFRD0iY2ZxIgorQ09ORklHX0NMQVNTSUNfUkNVPXkKIAogIwogIyBQcm9jZXNzb3IgdHlwZSBhbmQgZmVhdHVyZXMKICMKLUNPTkZJR19YODZfUEM9eQotIyBDT05GSUdfWDg2X1ZTTVAgaXMgbm90IHNldAotIyBDT05GSUdfTUs4IGlzIG5vdCBzZXQKLSMgQ09ORklHX01QU0MgaXMgbm90IHNldAotIyBDT05GSUdfTUNPUkUyIGlzIG5vdCBzZXQKLUNPTkZJR19HRU5FUklDX0NQVT15Ci1DT05GSUdfWDg2X0wxX0NBQ0hFX0JZVEVTPTEyOAotQ09ORklHX1g4Nl9MMV9DQUNIRV9TSElGVD03Ci1DT05GSUdfWDg2X0lOVEVSTk9ERV9DQUNIRV9CWVRFUz0xMjgKLUNPTkZJR19YODZfVFNDPXkKLUNPTkZJR19YODZfR09PRF9BUElDPXkKLSMgQ09ORklHX01JQ1JPQ09ERSBpcyBub3Qgc2V0Ci1DT05GSUdfWDg2X01TUj15Ci1DT05GSUdfWDg2X0NQVUlEPXkKLUNPTkZJR19YODZfSFQ9eQotQ09ORklHX1g4Nl9JT19BUElDPXkKLUNPTkZJR19YODZfTE9DQUxfQVBJQz15Ci1DT05GSUdfTVRSUj15CitDT05GSUdfVElDS19PTkVTSE9UPXkKK0NPTkZJR19OT19IWj15CitDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKK0NPTkZJR19HRU5FUklDX0NMT0NLRVZFTlRTX0JVSUxEPXkKIENPTkZJR19TTVA9eQotQ09ORklHX1NDSEVEX1NNVD15CitDT05GSUdfWDg2X1BDPXkKKyMgQ09ORklHX1g4Nl9FTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9WT1lBR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9OVU1BUSBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfU1VNTUlUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9CSUdTTVAgaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1ZJU1dTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9HRU5FUklDQVJDSCBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfRVM3MDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9SREMzMjFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9WU01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBUkFWSVJUX0dVRVNUIGlzIG5vdCBzZXQKK0NPTkZJR19NRU1URVNUX0JPT1RQQVJBTT15CitDT05GSUdfTUVNVEVTVF9CT09UUEFSQU1fVkFMVUU9MAorIyBDT05GSUdfTTM4NiBpcyBub3Qgc2V0CisjIENPTkZJR19NNDg2IGlzIG5vdCBzZXQKKyMgQ09ORklHX001ODYgaXMgbm90IHNldAorIyBDT05GSUdfTTU4NlRTQyBpcyBub3Qgc2V0CisjIENPTkZJR19NNTg2TU1YIGlzIG5vdCBzZXQKKyMgQ09ORklHX002ODYgaXMgbm90IHNldAorIyBDT05GSUdfTVBFTlRJVU1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19NUEVOVElVTUlJSSBpcyBub3Qgc2V0CisjIENPTkZJR19NUEVOVElVTU0gaXMgbm90IHNldAorIyBDT05GSUdfTVBFTlRJVU00IGlzIG5vdCBzZXQKKyMgQ09ORklHX01LNiBpcyBub3Qgc2V0CisjIENPTkZJR19NSzcgaXMgbm90IHNldAorIyBDT05GSUdfTUs4IGlzIG5vdCBzZXQKKyMgQ09ORklHX01DUlVTT0UgaXMgbm90IHNldAorIyBDT05GSUdfTUVGRklDRU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX01XSU5DSElQQzYgaXMgbm90IHNldAorIyBDT05GSUdfTVdJTkNISVAyIGlzIG5vdCBzZXQKKyMgQ09ORklHX01XSU5DSElQM0QgaXMgbm90IHNldAorIyBDT05GSUdfTUdFT0RFR1gxIGlzIG5vdCBzZXQKKyMgQ09ORklHX01HRU9ERV9MWCBpcyBub3Qgc2V0CisjIENPTkZJR19NQ1lSSVhJSUkgaXMgbm90IHNldAorIyBDT05GSUdfTVZJQUMzXzIgaXMgbm90IHNldAorIyBDT05GSUdfTVZJQUM3IGlzIG5vdCBzZXQKKyMgQ09ORklHX01QU0MgaXMgbm90IHNldAorQ09ORklHX01DT1JFMj15CisjIENPTkZJR19HRU5FUklDX0NQVSBpcyBub3Qgc2V0CitDT05GSUdfWDg2X0NQVT15CitDT05GSUdfWDg2X0wxX0NBQ0hFX0JZVEVTPTY0CitDT05GSUdfWDg2X0lOVEVSTk9ERV9DQUNIRV9CWVRFUz02NAorQ09ORklHX1g4Nl9DTVBYQ0hHPXkKK0NPTkZJR19YODZfTDFfQ0FDSEVfU0hJRlQ9NgorQ09ORklHX1g4Nl9HT09EX0FQSUM9eQorQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWT15CitDT05GSUdfWDg2X1VTRV9QUFJPX0NIRUNLU1VNPXkKK0NPTkZJR19YODZfUDZfTk9QPXkKK0NPTkZJR19YODZfVFNDPXkKK0NPTkZJR19YODZfQ01PVj15CitDT05GSUdfWDg2X01JTklNVU1fQ1BVX0ZBTUlMWT02NAorQ09ORklHX1g4Nl9ERUJVR0NUTE1TUj15CitDT05GSUdfSFBFVF9USU1FUj15CitDT05GSUdfSFBFVF9FTVVMQVRFX1JUQz15CitDT05GSUdfRE1JPXkKK0NPTkZJR19HQVJUX0lPTU1VPXkKK0NPTkZJR19DQUxHQVJZX0lPTU1VPXkKK0NPTkZJR19DQUxHQVJZX0lPTU1VX0VOQUJMRURfQllfREVGQVVMVD15CitDT05GSUdfU1dJT1RMQj15CitDT05GSUdfSU9NTVVfSEVMUEVSPXkKK0NPTkZJR19OUl9DUFVTPTQKKyMgQ09ORklHX1NDSEVEX1NNVCBpcyBub3Qgc2V0CiBDT05GSUdfU0NIRURfTUM9eQogIyBDT05GSUdfUFJFRU1QVF9OT05FIGlzIG5vdCBzZXQKIENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWT15CiAjIENPTkZJR19QUkVFTVBUIGlzIG5vdCBzZXQKLUNPTkZJR19QUkVFTVBUX0JLTD15CitDT05GSUdfWDg2X0xPQ0FMX0FQSUM9eQorQ09ORklHX1g4Nl9JT19BUElDPXkKKyMgQ09ORklHX1g4Nl9NQ0UgaXMgbm90IHNldAorIyBDT05GSUdfSThLIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JQ1JPQ09ERSBpcyBub3Qgc2V0CitDT05GSUdfWDg2X01TUj15CitDT05GSUdfWDg2X0NQVUlEPXkKIENPTkZJR19OVU1BPXkKIENPTkZJR19LOF9OVU1BPXkKLUNPTkZJR19OT0RFU19TSElGVD02CiBDT05GSUdfWDg2XzY0X0FDUElfTlVNQT15Ci1DT05GSUdfTlVNQV9FTVU9eQorQ09ORklHX05PREVTX1NQQU5fT1RIRVJfTk9ERVM9eQorIyBDT05GSUdfTlVNQV9FTVUgaXMgbm90IHNldAorQ09ORklHX05PREVTX1NISUZUPTYKK0NPTkZJR19BUkNIX1NQQVJTRU1FTV9ERUZBVUxUPXkKK0NPTkZJR19BUkNIX1NQQVJTRU1FTV9FTkFCTEU9eQorQ09ORklHX0FSQ0hfU0VMRUNUX01FTU9SWV9NT0RFTD15CitDT05GSUdfU0VMRUNUX01FTU9SWV9NT0RFTD15CisjIENPTkZJR19GTEFUTUVNX01BTlVBTCBpcyBub3Qgc2V0CisjIENPTkZJR19ESVNDT05USUdNRU1fTUFOVUFMIGlzIG5vdCBzZXQKK0NPTkZJR19TUEFSU0VNRU1fTUFOVUFMPXkKK0NPTkZJR19TUEFSU0VNRU09eQogQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVM9eQorQ09ORklHX0hBVkVfTUVNT1JZX1BSRVNFTlQ9eQogIyBDT05GSUdfU1BBUlNFTUVNX1NUQVRJQyBpcyBub3Qgc2V0CitDT05GSUdfU1BBUlNFTUVNX0VYVFJFTUU9eQorQ09ORklHX1NQQVJTRU1FTV9WTUVNTUFQX0VOQUJMRT15CitDT05GSUdfU1BBUlNFTUVNX1ZNRU1NQVA9eQorCisjCisjIE1lbW9yeSBob3RwbHVnIGlzIGN1cnJlbnRseSBpbmNvbXBhdGlibGUgd2l0aCBTb2Z0d2FyZSBTdXNwZW5kCisjCitDT05GSUdfUEFHRUZMQUdTX0VYVEVOREVEPXkKIENPTkZJR19TUExJVF9QVExPQ0tfQ1BVUz00CiBDT05GSUdfTUlHUkFUSU9OPXkKIENPTkZJR19SRVNPVVJDRVNfNjRCSVQ9eQogQ09ORklHX1pPTkVfRE1BX0ZMQUc9MQogQ09ORklHX0JPVU5DRT15CiBDT05GSUdfVklSVF9UT19CVVM9eQotQ09ORklHX0hBVkVfQVJDSF9FQVJMWV9QRk5fVE9fTklEPXkKLUNPTkZJR19PVVRfT0ZfTElORV9QRk5fVE9fUEFHRT15Ci1DT05GSUdfTlJfQ1BVUz0zMgorQ09ORklHX01UUlI9eQorIyBDT05GSUdfWDg2X1BBVCBpcyBub3Qgc2V0CitDT05GSUdfRUZJPXkKK0NPTkZJR19TRUNDT01QPXkKKyMgQ09ORklHX0haXzEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19IWl8yNTAgaXMgbm90IHNldAorIyBDT05GSUdfSFpfMzAwIGlzIG5vdCBzZXQKK0NPTkZJR19IWl8xMDAwPXkKK0NPTkZJR19IWj0xMDAwCitDT05GSUdfU0NIRURfSFJUSUNLPXkKK0NPTkZJR19LRVhFQz15CitDT05GSUdfQ1JBU0hfRFVNUD15CitDT05GSUdfUEhZU0lDQUxfU1RBUlQ9MHgxMDAwMDAwCitDT05GSUdfUkVMT0NBVEFCTEU9eQogQ09ORklHX1BIWVNJQ0FMX0FMSUdOPTB4MjAwMDAwCiBDT05GSUdfSE9UUExVR19DUFU9eQorIyBDT05GSUdfQ09NUEFUX1ZEU08gaXMgbm90IHNldAogQ09ORklHX0FSQ0hfRU5BQkxFX01FTU9SWV9IT1RQTFVHPXkKLUNPTkZJR19IUEVUX1RJTUVSPXkKLUNPTkZJR19IUEVUX0VNVUxBVEVfUlRDPXkKLUNPTkZJR19HQVJUX0lPTU1VPXkKLSMgQ09ORklHX0NBTEdBUllfSU9NTVUgaXMgbm90IHNldAotQ09ORklHX1NXSU9UTEI9eQotQ09ORklHX1g4Nl9NQ0U9eQotQ09ORklHX1g4Nl9NQ0VfSU5URUw9eQotQ09ORklHX1g4Nl9NQ0VfQU1EPXkKLSMgQ09ORklHX0tFWEVDIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSQVNIX0RVTVAgaXMgbm90IHNldAotIyBDT05GSUdfUkVMT0NBVEFCTEUgaXMgbm90IHNldAotQ09ORklHX1BIWVNJQ0FMX1NUQVJUPTB4MjAwMDAwCi1DT05GSUdfU0VDQ09NUD15Ci0jIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19IWl8xMDAgaXMgbm90IHNldAotQ09ORklHX0haXzI1MD15Ci0jIENPTkZJR19IWl8zMDAgaXMgbm90IHNldAotIyBDT05GSUdfSFpfMTAwMCBpcyBub3Qgc2V0Ci1DT05GSUdfSFo9MjUwCi1DT05GSUdfSzhfTkI9eQotQ09ORklHX0dFTkVSSUNfSEFSRElSUVM9eQotQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKLUNPTkZJR19JU0FfRE1BX0FQST15Ci1DT05GSUdfR0VORVJJQ19QRU5ESU5HX0lSUT15CitDT05GSUdfSEFWRV9BUkNIX0VBUkxZX1BGTl9UT19OSUQ9eQogCiAjCiAjIFBvd2VyIG1hbmFnZW1lbnQgb3B0aW9ucwogIworQ09ORklHX0FSQ0hfSElCRVJOQVRJT05fSEVBREVSPXkKIENPTkZJR19QTT15Ci0jIENPTkZJR19QTV9MRUdBQ1kgaXMgbm90IHNldAotIyBDT05GSUdfUE1fREVCVUcgaXMgbm90IHNldAorQ09ORklHX1BNX0RFQlVHPXkKKyMgQ09ORklHX1BNX1ZFUkJPU0UgaXMgbm90IHNldAorQ09ORklHX0NBTl9QTV9UUkFDRT15CitDT05GSUdfUE1fVFJBQ0U9eQorQ09ORklHX1BNX1RSQUNFX1JUQz15CitDT05GSUdfUE1fU0xFRVBfU01QPXkKK0NPTkZJR19QTV9TTEVFUD15CitDT05GSUdfU1VTUEVORD15CitDT05GSUdfU1VTUEVORF9GUkVFWkVSPXkKIENPTkZJR19ISUJFUk5BVElPTj15CiBDT05GSUdfUE1fU1REX1BBUlRJVElPTj0iIgotCi0jCi0jIEFDUEkgKEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIEludGVyZmFjZSkgU3VwcG9ydAotIwogQ09ORklHX0FDUEk9eQogQ09ORklHX0FDUElfU0xFRVA9eQotQ09ORklHX0FDUElfU0xFRVBfUFJPQ19GUz15Ci1DT05GSUdfQUNQSV9TTEVFUF9QUk9DX1NMRUVQPXkKIENPTkZJR19BQ1BJX1BST0NGUz15CitDT05GSUdfQUNQSV9QUk9DRlNfUE9XRVI9eQorQ09ORklHX0FDUElfU1lTRlNfUE9XRVI9eQorQ09ORklHX0FDUElfUFJPQ19FVkVOVD15CiBDT05GSUdfQUNQSV9BQz15CiBDT05GSUdfQUNQSV9CQVRURVJZPXkKIENPTkZJR19BQ1BJX0JVVFRPTj15CiBDT05GSUdfQUNQSV9GQU49eQotIyBDT05GSUdfQUNQSV9ET0NLIGlzIG5vdCBzZXQKK0NPTkZJR19BQ1BJX0RPQ0s9eQorIyBDT05GSUdfQUNQSV9CQVkgaXMgbm90IHNldAogQ09ORklHX0FDUElfUFJPQ0VTU09SPXkKIENPTkZJR19BQ1BJX0hPVFBMVUdfQ1BVPXkKIENPTkZJR19BQ1BJX1RIRVJNQUw9eQogQ09ORklHX0FDUElfTlVNQT15CisjIENPTkZJR19BQ1BJX1dNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19BQ1BJX0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfQUNQSV9UT1NISUJBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDUElfQ1VTVE9NX0RTRFQgaXMgbm90IHNldAogQ09ORklHX0FDUElfQkxBQ0tMSVNUX1lFQVI9MAogIyBDT05GSUdfQUNQSV9ERUJVRyBpcyBub3Qgc2V0CiBDT05GSUdfQUNQSV9FQz15CkBAIC0yMjcsMjkgKzM1MSwzNCBAQAogQ09ORklHX0NQVV9GUkVRPXkKIENPTkZJR19DUFVfRlJFUV9UQUJMRT15CiBDT05GSUdfQ1BVX0ZSRVFfREVCVUc9eQotQ09ORklHX0NQVV9GUkVRX1NUQVQ9eQotIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVF9ERVRBSUxTIGlzIG5vdCBzZXQKLUNPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRT15Ci0jIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9VU0VSU1BBQ0UgaXMgbm90IHNldAorIyBDT05GSUdfQ1BVX0ZSRVFfU1RBVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QRVJGT1JNQU5DRSBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9QT1dFUlNBVkUgaXMgbm90IHNldAorQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX1VTRVJTUEFDRT15CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9PTkRFTUFORCBpcyBub3Qgc2V0CisjIENPTkZJR19DUFVfRlJFUV9ERUZBVUxUX0dPVl9DT05TRVJWQVRJVkUgaXMgbm90IHNldAogQ09ORklHX0NQVV9GUkVRX0dPVl9QRVJGT1JNQU5DRT15CiAjIENPTkZJR19DUFVfRlJFUV9HT1ZfUE9XRVJTQVZFIGlzIG5vdCBzZXQKIENPTkZJR19DUFVfRlJFUV9HT1ZfVVNFUlNQQUNFPXkKIENPTkZJR19DUFVfRlJFUV9HT1ZfT05ERU1BTkQ9eQotQ09ORklHX0NQVV9GUkVRX0dPVl9DT05TRVJWQVRJVkU9eQorIyBDT05GSUdfQ1BVX0ZSRVFfR09WX0NPTlNFUlZBVElWRSBpcyBub3Qgc2V0CiAKICMKICMgQ1BVRnJlcSBwcm9jZXNzb3IgZHJpdmVycwogIwotQ09ORklHX1g4Nl9QT1dFUk5PV19LOD15Ci1DT05GSUdfWDg2X1BPV0VSTk9XX0s4X0FDUEk9eQotIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9DRU5UUklOTyBpcyBub3Qgc2V0CiBDT05GSUdfWDg2X0FDUElfQ1BVRlJFUT15CisjIENPTkZJR19YODZfUE9XRVJOT1dfSzggaXMgbm90IHNldAorIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9DRU5UUklOTyBpcyBub3Qgc2V0CisjIENPTkZJR19YODZfUDRfQ0xPQ0tNT0QgaXMgbm90IHNldAogCiAjCiAjIHNoYXJlZCBvcHRpb25zCiAjCi1DT05GSUdfWDg2X0FDUElfQ1BVRlJFUV9QUk9DX0lOVEY9eQorIyBDT05GSUdfWDg2X0FDUElfQ1BVRlJFUV9QUk9DX0lOVEYgaXMgbm90IHNldAogIyBDT05GSUdfWDg2X1NQRUVEU1RFUF9MSUIgaXMgbm90IHNldAorQ09ORklHX0NQVV9JRExFPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTEFEREVSPXkKK0NPTkZJR19DUFVfSURMRV9HT1ZfTUVOVT15CiAKICMKICMgQnVzIG9wdGlvbnMgKFBDSSBldGMuKQpAQCAtMjU3LDI3ICszODYsNTYgQEAKIENPTkZJR19QQ0k9eQogQ09ORklHX1BDSV9ESVJFQ1Q9eQogQ09ORklHX1BDSV9NTUNPTkZJRz15CitDT05GSUdfUENJX0RPTUFJTlM9eQorQ09ORklHX0RNQVI9eQorQ09ORklHX0RNQVJfR0ZYX1dBPXkKK0NPTkZJR19ETUFSX0ZMT1BQWV9XQT15CiBDT05GSUdfUENJRVBPUlRCVVM9eQorIyBDT05GSUdfSE9UUExVR19QQ0lfUENJRSBpcyBub3Qgc2V0CiBDT05GSUdfUENJRUFFUj15CisjIENPTkZJR19QQ0lFQVNQTSBpcyBub3Qgc2V0CiBDT05GSUdfQVJDSF9TVVBQT1JUU19NU0k9eQogQ09ORklHX1BDSV9NU0k9eQorIyBDT05GSUdfUENJX0xFR0FDWSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQ0lfREVCVUcgaXMgbm90IHNldAotIyBDT05GSUdfSFRfSVJRIGlzIG5vdCBzZXQKK0NPTkZJR19IVF9JUlE9eQorQ09ORklHX0lTQV9ETUFfQVBJPXkKK0NPTkZJR19LOF9OQj15CitDT05GSUdfUENDQVJEPXkKKyMgQ09ORklHX1BDTUNJQV9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfUENNQ0lBPXkKK0NPTkZJR19QQ01DSUFfTE9BRF9DSVM9eQorQ09ORklHX1BDTUNJQV9JT0NUTD15CitDT05GSUdfQ0FSREJVUz15CiAKICMKLSMgUENDQVJEIChQQ01DSUEvQ2FyZEJ1cykgc3VwcG9ydAorIyBQQy1jYXJkIGJyaWRnZXMKICMKLSMgQ09ORklHX1BDQ0FSRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19IT1RQTFVHX1BDSSBpcyBub3Qgc2V0CitDT05GSUdfWUVOVEE9eQorQ09ORklHX1lFTlRBX08yPXkKK0NPTkZJR19ZRU5UQV9SSUNPSD15CitDT05GSUdfWUVOVEFfVEk9eQorQ09ORklHX1lFTlRBX0VORV9UVU5FPXkKK0NPTkZJR19ZRU5UQV9UT1NISUJBPXkKKyMgQ09ORklHX1BENjcyOSBpcyBub3Qgc2V0CisjIENPTkZJR19JODIwOTIgaXMgbm90IHNldAorQ09ORklHX1BDQ0FSRF9OT05TVEFUSUM9eQorQ09ORklHX0hPVFBMVUdfUENJPXkKKyMgQ09ORklHX0hPVFBMVUdfUENJX0ZBS0UgaXMgbm90IHNldAorIyBDT05GSUdfSE9UUExVR19QQ0lfQUNQSSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1RQTFVHX1BDSV9DUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hPVFBMVUdfUENJX1NIUEMgaXMgbm90IHNldAogCiAjCiAjIEV4ZWN1dGFibGUgZmlsZSBmb3JtYXRzIC8gRW11bGF0aW9ucwogIwogQ09ORklHX0JJTkZNVF9FTEY9eQotIyBDT05GSUdfQklORk1UX01JU0MgaXMgbm90IHNldAorQ09ORklHX0NPTVBBVF9CSU5GTVRfRUxGPXkKK0NPTkZJR19CSU5GTVRfTUlTQz15CiBDT05GSUdfSUEzMl9FTVVMQVRJT049eQotQ09ORklHX0lBMzJfQU9VVD15CisjIENPTkZJR19JQTMyX0FPVVQgaXMgbm90IHNldAogQ09ORklHX0NPTVBBVD15CitDT05GSUdfQ09NUEFUX0ZPUl9VNjRfQUxJR05NRU5UPXkKIENPTkZJR19TWVNWSVBDX0NPTVBBVD15CiAKICMKQEAgLTI4OSwyMiArNDQ3LDMxIEBACiAjIE5ldHdvcmtpbmcgb3B0aW9ucwogIwogQ09ORklHX1BBQ0tFVD15Ci0jIENPTkZJR19QQUNLRVRfTU1BUCBpcyBub3Qgc2V0CitDT05GSUdfUEFDS0VUX01NQVA9eQogQ09ORklHX1VOSVg9eQorQ09ORklHX1hGUk09eQorQ09ORklHX1hGUk1fVVNFUj15CisjIENPTkZJR19YRlJNX1NVQl9QT0xJQ1kgaXMgbm90IHNldAorIyBDT05GSUdfWEZSTV9NSUdSQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfS0VZIGlzIG5vdCBzZXQKIENPTkZJR19JTkVUPXkKIENPTkZJR19JUF9NVUxUSUNBU1Q9eQotIyBDT05GSUdfSVBfQURWQU5DRURfUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9BRFZBTkNFRF9ST1VURVI9eQorQ09ORklHX0FTS19JUF9GSUJfSEFTSD15CisjIENPTkZJR19JUF9GSUJfVFJJRSBpcyBub3Qgc2V0CiBDT05GSUdfSVBfRklCX0hBU0g9eQotQ09ORklHX0lQX1BOUD15Ci1DT05GSUdfSVBfUE5QX0RIQ1A9eQotIyBDT05GSUdfSVBfUE5QX0JPT1RQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX1BOUF9SQVJQIGlzIG5vdCBzZXQKK0NPTkZJR19JUF9NVUxUSVBMRV9UQUJMRVM9eQorQ09ORklHX0lQX1JPVVRFX01VTFRJUEFUSD15CitDT05GSUdfSVBfUk9VVEVfVkVSQk9TRT15CisjIENPTkZJR19JUF9QTlAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQSVAgaXMgbm90IHNldAogIyBDT05GSUdfTkVUX0lQR1JFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lQX01ST1VURSBpcyBub3Qgc2V0CitDT05GSUdfSVBfTVJPVVRFPXkKK0NPTkZJR19JUF9QSU1TTV9WMT15CitDT05GSUdfSVBfUElNU01fVjI9eQogIyBDT05GSUdfQVJQRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TWU5fQ09PS0lFUyBpcyBub3Qgc2V0CitDT05GSUdfU1lOX0NPT0tJRVM9eQogIyBDT05GSUdfSU5FVF9BSCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0VTUCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX0lQQ09NUCBpcyBub3Qgc2V0CkBAIC0zMTMsMzEgKzQ4MCwxMDkgQEAKICMgQ09ORklHX0lORVRfWEZSTV9NT0RFX1RSQU5TUE9SVCBpcyBub3Qgc2V0CiAjIENPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSU5FVF9YRlJNX01PREVfQkVFVCBpcyBub3Qgc2V0Ci1DT05GSUdfSU5FVF9ESUFHPXkKLUNPTkZJR19JTkVUX1RDUF9ESUFHPXkKLSMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19JTkVUX0xSTz15CisjIENPTkZJR19JTkVUX0RJQUcgaXMgbm90IHNldAorQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEPXkKKyMgQ09ORklHX1RDUF9DT05HX0JJQyBpcyBub3Qgc2V0CiBDT05GSUdfVENQX0NPTkdfQ1VCSUM9eQorIyBDT05GSUdfVENQX0NPTkdfV0VTVFdPT0QgaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSFRDUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IU1RDUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19IWUJMQSBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19WRUdBUyBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19TQ0FMQUJMRSBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19MUCBpcyBub3Qgc2V0CisjIENPTkZJR19UQ1BfQ09OR19WRU5PIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RDUF9DT05HX1lFQUggaXMgbm90IHNldAorIyBDT05GSUdfVENQX0NPTkdfSUxMSU5PSVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9CSUMgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfQ1VCSUM9eQorIyBDT05GSUdfREVGQVVMVF9IVENQIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFRkFVTFRfVkVHQVMgaXMgbm90IHNldAorIyBDT05GSUdfREVGQVVMVF9XRVNUV09PRCBpcyBub3Qgc2V0CisjIENPTkZJR19ERUZBVUxUX1JFTk8gaXMgbm90IHNldAogQ09ORklHX0RFRkFVTFRfVENQX0NPTkc9ImN1YmljIgotIyBDT05GSUdfVENQX01ENVNJRyBpcyBub3Qgc2V0CitDT05GSUdfVENQX01ENVNJRz15CisjIENPTkZJR19JUF9WUyBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNj15CiAjIENPTkZJR19JUFY2X1BSSVZBQ1kgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9ST1VURVJfUFJFRiBpcyBub3Qgc2V0CiAjIENPTkZJR19JUFY2X09QVElNSVNUSUNfREFEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X0FIIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X0VTUCBpcyBub3Qgc2V0CitDT05GSUdfSU5FVDZfQUg9eQorQ09ORklHX0lORVQ2X0VTUD15CiAjIENPTkZJR19JTkVUNl9JUENPTVAgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NSVA2IGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVQ2X1hGUk1fVFVOTkVMIGlzIG5vdCBzZXQKICMgQ09ORklHX0lORVQ2X1RVTk5FTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTkVUNl9YRlJNX01PREVfVFJBTlNQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUwgaXMgbm90IHNldAotIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX0JFRVQgaXMgbm90IHNldAorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UUkFOU1BPUlQ9eQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9UVU5ORUw9eQorQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9CRUVUPXkKICMgQ09ORklHX0lORVQ2X1hGUk1fTU9ERV9ST1VURU9QVElNSVpBVElPTiBpcyBub3Qgc2V0CiBDT05GSUdfSVBWNl9TSVQ9eQorQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQogIyBDT05GSUdfSVBWNl9UVU5ORUwgaXMgbm90IHNldAogIyBDT05GSUdfSVBWNl9NVUxUSVBMRV9UQUJMRVMgaXMgbm90IHNldAotIyBDT05GSUdfTkVUV09SS19TRUNNQVJLIGlzIG5vdCBzZXQKLSMgQ09ORklHX05FVEZJTFRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19JUFY2X01ST1VURSBpcyBub3Qgc2V0CitDT05GSUdfTkVUTEFCRUw9eQorQ09ORklHX05FVFdPUktfU0VDTUFSSz15CitDT05GSUdfTkVURklMVEVSPXkKKyMgQ09ORklHX05FVEZJTFRFUl9ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRGSUxURVJfQURWQU5DRUQgaXMgbm90IHNldAorCisjCisjIENvcmUgTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORVRGSUxURVJfTkVUTElOSz15CitDT05GSUdfTkVURklMVEVSX05FVExJTktfTE9HPXkKK0NPTkZJR19ORl9DT05OVFJBQ0s9eQorQ09ORklHX05GX0NPTk5UUkFDS19TRUNNQVJLPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfRlRQPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVJDPXkKK0NPTkZJR19ORl9DT05OVFJBQ0tfU0lQPXkKK0NPTkZJR19ORl9DVF9ORVRMSU5LPXkKK0NPTkZJR19ORVRGSUxURVJfWFRBQkxFUz15CitDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9NQVJLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX05GTE9HPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1NFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfQ09OTlNFQ01BUks9eQorQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfVENQTVNTPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfQ09OTlRSQUNLPXkKK0NPTkZJR19ORVRGSUxURVJfWFRfTUFUQ0hfTUFSSz15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1BPTElDWT15CitDT05GSUdfTkVURklMVEVSX1hUX01BVENIX1NUQVRFPXkKKworIworIyBJUDogTmV0ZmlsdGVyIENvbmZpZ3VyYXRpb24KKyMKK0NPTkZJR19ORl9DT05OVFJBQ0tfSVBWND15CitDT05GSUdfTkZfQ09OTlRSQUNLX1BST0NfQ09NUEFUPXkKK0NPTkZJR19JUF9ORl9JUFRBQkxFUz15CitDT05GSUdfSVBfTkZfRklMVEVSPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfUkVKRUNUPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfTE9HPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfVUxPRz15CitDT05GSUdfTkZfTkFUPXkKK0NPTkZJR19ORl9OQVRfTkVFREVEPXkKK0NPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVFUkFERT15CitDT05GSUdfTkZfTkFUX0ZUUD15CitDT05GSUdfTkZfTkFUX0lSQz15CisjIENPTkZJR19ORl9OQVRfVEZUUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORl9OQVRfQU1BTkRBIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9QUFRQIGlzIG5vdCBzZXQKKyMgQ09ORklHX05GX05BVF9IMzIzIGlzIG5vdCBzZXQKK0NPTkZJR19ORl9OQVRfU0lQPXkKK0NPTkZJR19JUF9ORl9NQU5HTEU9eQorCisjCisjIElQdjY6IE5ldGZpbHRlciBDb25maWd1cmF0aW9uCisjCitDT05GSUdfTkZfQ09OTlRSQUNLX0lQVjY9eQorQ09ORklHX0lQNl9ORl9JUFRBQkxFUz15CitDT05GSUdfSVA2X05GX01BVENIX0lQVjZIRUFERVI9eQorQ09ORklHX0lQNl9ORl9GSUxURVI9eQorQ09ORklHX0lQNl9ORl9UQVJHRVRfTE9HPXkKK0NPTkZJR19JUDZfTkZfVEFSR0VUX1JFSkVDVD15CitDT05GSUdfSVA2X05GX01BTkdMRT15CiAjIENPTkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQX1NDVFAgaXMgbm90IHNldAogIyBDT05GSUdfVElQQyBpcyBub3Qgc2V0CkBAIC0zNDUsNiArNTkwLDcgQEAKICMgQ09ORklHX0JSSURHRSBpcyBub3Qgc2V0CiAjIENPTkZJR19WTEFOXzgwMjFRIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQ05FVCBpcyBub3Qgc2V0CitDT05GSUdfTExDPXkKICMgQ09ORklHX0xMQzIgaXMgbm90IHNldAogIyBDT05GSUdfSVBYIGlzIG5vdCBzZXQKICMgQ09ORklHX0FUQUxLIGlzIG5vdCBzZXQKQEAgLTM1MiwyOCArNTk4LDk5IEBACiAjIENPTkZJR19MQVBCIGlzIG5vdCBzZXQKICMgQ09ORklHX0VDT05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfU0NIRUQ9eQogCiAjCi0jIFFvUyBhbmQvb3IgZmFpciBxdWV1ZWluZworIyBRdWV1ZWluZy9TY2hlZHVsaW5nCiAjCi0jIENPTkZJR19ORVRfU0NIRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9DQlEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9IVEIgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9IRlNDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUFJJTyBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1JSIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfUkVEIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfU0ZRIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9TQ0hfVEVRTCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX1RCRiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0dSRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9EU01BUksgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX1NDSF9ORVRFTSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfU0NIX0lOR1JFU1MgaXMgbm90IHNldAorCisjCisjIENsYXNzaWZpY2F0aW9uCisjCitDT05GSUdfTkVUX0NMUz15CisjIENPTkZJR19ORVRfQ0xTX0JBU0lDIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfVENJTkRFWCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JPVVRFNCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX0ZXIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfVTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfUlNWUCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQ0xTX1JTVlA2IGlzIG5vdCBzZXQKKyMgQ09ORklHX05FVF9DTFNfRkxPVyBpcyBub3Qgc2V0CitDT05GSUdfTkVUX0VNQVRDSD15CitDT05GSUdfTkVUX0VNQVRDSF9TVEFDSz0zMgorIyBDT05GSUdfTkVUX0VNQVRDSF9DTVAgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9OQllURSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX1UzMiBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfRU1BVENIX01FVEEgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0VNQVRDSF9URVhUIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRfQ0xTX0FDVD15CisjIENPTkZJR19ORVRfQUNUX1BPTElDRSBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX0dBQ1QgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9NSVJSRUQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9JUFQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9OQVQgaXMgbm90IHNldAorIyBDT05GSUdfTkVUX0FDVF9QRURJVCBpcyBub3Qgc2V0CisjIENPTkZJR19ORVRfQUNUX1NJTVAgaXMgbm90IHNldAorQ09ORklHX05FVF9TQ0hfRklGTz15CiAKICMKICMgTmV0d29yayB0ZXN0aW5nCiAjCiAjIENPTkZJR19ORVRfUEtUR0VOIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVF9UQ1BQUk9CRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19IQU1SQURJTyBpcyBub3Qgc2V0CitDT05GSUdfSEFNUkFESU89eQorCisjCisjIFBhY2tldCBSYWRpbyBwcm90b2NvbHMKKyMKKyMgQ09ORklHX0FYMjUgaXMgbm90IHNldAorIyBDT05GSUdfQ0FOIGlzIG5vdCBzZXQKICMgQ09ORklHX0lSREEgaXMgbm90IHNldAogIyBDT05GSUdfQlQgaXMgbm90IHNldAogIyBDT05GSUdfQUZfUlhSUEMgaXMgbm90IHNldAorQ09ORklHX0ZJQl9SVUxFUz15CiAKICMKICMgV2lyZWxlc3MKICMKLSMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dJUkVMRVNTX0VYVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19NQUM4MDIxMSBpcyBub3Qgc2V0CitDT05GSUdfQ0ZHODAyMTE9eQorQ09ORklHX05MODAyMTE9eQorQ09ORklHX1dJUkVMRVNTX0VYVD15CitDT05GSUdfTUFDODAyMTE9eQorCisjCisjIFJhdGUgY29udHJvbCBhbGdvcml0aG0gc2VsZWN0aW9uCisjCitDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9QSUQ9eQorIyBDT05GSUdfTUFDODAyMTFfUkNfREVGQVVMVF9OT05FIGlzIG5vdCBzZXQKKworIworIyBTZWxlY3RpbmcgJ3knIGZvciBhbiBhbGdvcml0aG0gd2lsbAorIworCisjCisjIGJ1aWxkIHRoZSBhbGdvcml0aG0gaW50byBtYWM4MDIxMS4KKyMKK0NPTkZJR19NQUM4MDIxMV9SQ19ERUZBVUxUPSJwaWQiCitDT05GSUdfTUFDODAyMTFfUkNfUElEPXkKKyMgQ09ORklHX01BQzgwMjExX01FU0ggaXMgbm90IHNldAorQ09ORklHX01BQzgwMjExX0xFRFM9eQorIyBDT05GSUdfTUFDODAyMTFfREVCVUdGUyBpcyBub3Qgc2V0CisjIENPTkZJR19NQUM4MDIxMV9ERUJVR19QQUNLRVRfQUxJR05NRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX01BQzgwMjExX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0lFRUU4MDIxMSBpcyBub3Qgc2V0CiAjIENPTkZJR19SRktJTEwgaXMgbm90IHNldAogIyBDT05GSUdfTkVUXzlQIGlzIG5vdCBzZXQKQEAgLTM4NSwxMyArNzAyLDE1IEBACiAjCiAjIEdlbmVyaWMgRHJpdmVyIE9wdGlvbnMKICMKK0NPTkZJR19VRVZFTlRfSEVMUEVSX1BBVEg9Ii9zYmluL2hvdHBsdWciCiBDT05GSUdfU1RBTkRBTE9ORT15CiBDT05GSUdfUFJFVkVOVF9GSVJNV0FSRV9CVUlMRD15CiBDT05GSUdfRldfTE9BREVSPXkKICMgQ09ORklHX0RFQlVHX0RSSVZFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ERUJVR19ERVZSRVMgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX0RFVlJFUz15CiAjIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19DT05ORUNUT1IgaXMgbm90IHNldAorQ09ORklHX0NPTk5FQ1RPUj15CitDT05GSUdfUFJPQ19FVkVOVFM9eQogIyBDT05GSUdfTVREIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBUlBPUlQgaXMgbm90IHNldAogQ09ORklHX1BOUD15CkBAIC00MDIsNyArNzIxLDcgQEAKICMKIENPTkZJR19QTlBBQ1BJPXkKIENPTkZJR19CTEtfREVWPXkKLUNPTkZJR19CTEtfREVWX0ZEPXkKKyMgQ09ORklHX0JMS19ERVZfRkQgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0NQUV9EQSBpcyBub3Qgc2V0CiAjIENPTkZJR19CTEtfQ1BRX0NJU1NfREEgaXMgbm90IHNldAogIyBDT05GSUdfQkxLX0RFVl9EQUM5NjAgaXMgbm90IHNldApAQCAtNDE1LDggKzczNCw4IEBACiAjIENPTkZJR19CTEtfREVWX1VCIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX1JBTT15CiBDT05GSUdfQkxLX0RFVl9SQU1fQ09VTlQ9MTYKLUNPTkZJR19CTEtfREVWX1JBTV9TSVpFPTQwOTYKLUNPTkZJR19CTEtfREVWX1JBTV9CTE9DS1NJWkU9MTAyNAorQ09ORklHX0JMS19ERVZfUkFNX1NJWkU9MTYzODQKKyMgQ09ORklHX0JMS19ERVZfWElQIGlzIG5vdCBzZXQKICMgQ09ORklHX0NEUk9NX1BLVENEVkQgaXMgbm90IHNldAogIyBDT05GSUdfQVRBX09WRVJfRVRIIGlzIG5vdCBzZXQKIENPTkZJR19NSVNDX0RFVklDRVM9eQpAQCAtNDI1LDcyICs3NDQsMTYgQEAKICMgQ09ORklHX0VFUFJPTV85M0NYNiBpcyBub3Qgc2V0CiAjIENPTkZJR19TR0lfSU9DNCBpcyBub3Qgc2V0CiAjIENPTkZJR19USUZNX0NPUkUgaXMgbm90IHNldAorIyBDT05GSUdfQUNFUl9XTUkgaXMgbm90IHNldAorIyBDT05GSUdfQVNVU19MQVBUT1AgaXMgbm90IHNldAorIyBDT05GSUdfRlVKSVRTVV9MQVBUT1AgaXMgbm90IHNldAorIyBDT05GSUdfTVNJX0xBUFRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TT05ZX0xBUFRPUCBpcyBub3Qgc2V0CiAjIENPTkZJR19USElOS1BBRF9BQ1BJIGlzIG5vdCBzZXQKLUNPTkZJR19JREU9eQotQ09ORklHX0JMS19ERVZfSURFPXkKLQotIwotIyBQbGVhc2Ugc2VlIERvY3VtZW50YXRpb24vaWRlLnR4dCBmb3IgaGVscC9pbmZvIG9uIElERSBkcml2ZXMKLSMKLSMgQ09ORklHX0JMS19ERVZfSURFX1NBVEEgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IRF9JREUgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRElTSz15Ci1DT05GSUdfSURFRElTS19NVUxUSV9NT0RFPXkKLUNPTkZJR19CTEtfREVWX0lERUNEPXkKLSMgQ09ORklHX0JMS19ERVZfSURFVEFQRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERUZMT1BQWSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERVNDU0kgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFQUNQST15Ci0jIENPTkZJR19JREVfVEFTS19JT0NUTCBpcyBub3Qgc2V0Ci1DT05GSUdfSURFX1BST0NfRlM9eQotCi0jCi0jIElERSBjaGlwc2V0IHN1cHBvcnQvYnVnZml4ZXMKLSMKLUNPTkZJR19JREVfR0VORVJJQz15Ci0jIENPTkZJR19CTEtfREVWX0NNRDY0MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0lERVBOUCBpcyBub3Qgc2V0Ci1DT05GSUdfQkxLX0RFVl9JREVQQ0k9eQotIyBDT05GSUdfSURFUENJX1NIQVJFX0lSUSBpcyBub3Qgc2V0Ci1DT05GSUdfSURFUENJX1BDSUJVU19PUkRFUj15Ci0jIENPTkZJR19CTEtfREVWX09GRkJPQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfR0VORVJJQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX09QVEk2MjEgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9SWjEwMDAgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRE1BX1BDST15Ci0jIENPTkZJR19CTEtfREVWX0lERURNQV9GT1JDRUQgaXMgbm90IHNldAotIyBDT05GSUdfSURFRE1BX09OTFlESVNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQUVDNjJYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX0FMSTE1WDMgaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfQU1ENzRYWD15Ci1DT05GSUdfQkxLX0RFVl9BVElJWFA9eQotIyBDT05GSUdfQkxLX0RFVl9DTUQ2NFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9UUklGTEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfQ1k4MkM2OTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DUzU1MjAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9DUzU1MzAgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IUFQzNFggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IUFQzNjYgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9KTUlDUk9OIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0MxMjAwIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1BJSVg9eQotIyBDT05GSUdfQkxLX0RFVl9JVDgyMTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9JVDgyMVggaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9OUzg3NDE1IGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfUERDMjAyWFhfT0xEIGlzIG5vdCBzZXQKLUNPTkZJR19CTEtfREVWX1BEQzIwMlhYX05FVz15Ci0jIENPTkZJR19CTEtfREVWX1NWV0tTIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfU0lJTUFHRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1NJUzU1MTMgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9TTEM5MEU2NiBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RSTTI5MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1ZJQTgyQ1hYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19CTEtfREVWX1RDODZDMDAxIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lERV9BUk0gaXMgbm90IHNldAotQ09ORklHX0JMS19ERVZfSURFRE1BPXkKLSMgQ09ORklHX0lERURNQV9JVkIgaXMgbm90IHNldAotIyBDT05GSUdfQkxLX0RFVl9IRCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlRFTF9NRU5MT1cgaXMgbm90IHNldAorIyBDT05GSUdfRU5DTE9TVVJFX1NFUlZJQ0VTIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0lERT15CisjIENPTkZJR19JREUgaXMgbm90IHNldAogCiAjCiAjIFNDU0kgZGV2aWNlIHN1cHBvcnQKQEAgLTQ5OSw4ICs3NjIsOCBAQAogQ09ORklHX1NDU0k9eQogQ09ORklHX1NDU0lfRE1BPXkKICMgQ09ORklHX1NDU0lfVEdUIGlzIG5vdCBzZXQKLUNPTkZJR19TQ1NJX05FVExJTks9eQotIyBDT05GSUdfU0NTSV9QUk9DX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CitDT05GSUdfU0NTSV9QUk9DX0ZTPXkKIAogIwogIyBTQ1NJIHN1cHBvcnQgdHlwZSAoZGlzaywgdGFwZSwgQ0QtUk9NKQpAQCAtNTA5LDcgKzc3Miw3IEBACiAjIENPTkZJR19DSFJfREVWX1NUIGlzIG5vdCBzZXQKICMgQ09ORklHX0NIUl9ERVZfT1NTVCBpcyBub3Qgc2V0CiBDT05GSUdfQkxLX0RFVl9TUj15Ci0jIENPTkZJR19CTEtfREVWX1NSX1ZFTkRPUiBpcyBub3Qgc2V0CitDT05GSUdfQkxLX0RFVl9TUl9WRU5ET1I9eQogQ09ORklHX0NIUl9ERVZfU0c9eQogIyBDT05GSUdfQ0hSX0RFVl9TQ0ggaXMgbm90IHNldAogCkBAIC01MjYsNzMgKzc4OSwzNyBAQAogIyBTQ1NJIFRyYW5zcG9ydHMKICMKIENPTkZJR19TQ1NJX1NQSV9BVFRSUz15Ci1DT05GSUdfU0NTSV9GQ19BVFRSUz15CisjIENPTkZJR19TQ1NJX0ZDX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfSVNDU0lfQVRUUlMgaXMgbm90IHNldAotQ09ORklHX1NDU0lfU0FTX0FUVFJTPXkKKyMgQ09ORklHX1NDU0lfU0FTX0FUVFJTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NDU0lfU0FTX0xJQlNBUyBpcyBub3Qgc2V0Ci0KLSMKLSMgU0NTSSBsb3ctbGV2ZWwgZHJpdmVycwotIwotIyBDT05GSUdfSVNDU0lfVENQIGlzIG5vdCBzZXQKLSMgQ09ORklHX0JMS19ERVZfM1dfWFhYWF9SQUlEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfM1dfOVhYWCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FDQVJEIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQUFDUkFJRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0FJQzdYWFggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM3WFhYX09MRCBpcyBub3Qgc2V0Ci1DT05GSUdfU0NTSV9BSUM3OVhYPXkKLUNPTkZJR19BSUM3OVhYX0NNRFNfUEVSX0RFVklDRT0zMgotQ09ORklHX0FJQzc5WFhfUkVTRVRfREVMQVlfTVM9NDAwMAotIyBDT05GSUdfQUlDNzlYWF9ERUJVR19FTkFCTEUgaXMgbm90IHNldAotQ09ORklHX0FJQzc5WFhfREVCVUdfTUFTSz0wCi0jIENPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9BSUM5NFhYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQVJDTVNSIGlzIG5vdCBzZXQKLSMgQ09ORklHX01FR0FSQUlEX05FV0dFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90IHNldAotIyBDT05GSUdfTUVHQVJBSURfU0FTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfSFBUSU9QIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfQlVTTE9HSUMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ETVgzMTkxRCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0VBVEEgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9GVVRVUkVfRE9NQUlOIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfR0RUSCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lQUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSVRJTyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0lOSUExMDAgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9TVEVYIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NDU0lfU1lNNTNDOFhYXzIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9JUFIgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9RTE9HSUNfMTI4MCBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1FMQV9JU0NTSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX0xQRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5NXggaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9EQzM5MFQgaXMgbm90IHNldAotIyBDT05GSUdfU0NTSV9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ1NJX1NSUCBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX1NSUF9BVFRSUyBpcyBub3Qgc2V0CisjIENPTkZJR19TQ1NJX0xPV0xFVkVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NDU0lfTE9XTEVWRUxfUENNQ0lBIGlzIG5vdCBzZXQKIENPTkZJR19BVEE9eQogIyBDT05GSUdfQVRBX05PTlNUQU5EQVJEIGlzIG5vdCBzZXQKIENPTkZJR19BVEFfQUNQST15CitDT05GSUdfU0FUQV9QTVA9eQogQ09ORklHX1NBVEFfQUhDST15Ci1DT05GSUdfU0FUQV9TVlc9eQorIyBDT05GSUdfU0FUQV9TSUwyNCBpcyBub3Qgc2V0CitDT05GSUdfQVRBX1NGRj15CisjIENPTkZJR19TQVRBX1NWVyBpcyBub3Qgc2V0CiBDT05GSUdfQVRBX1BJSVg9eQogIyBDT05GSUdfU0FUQV9NViBpcyBub3Qgc2V0Ci1DT05GSUdfU0FUQV9OVj15CisjIENPTkZJR19TQVRBX05WIGlzIG5vdCBzZXQKICMgQ09ORklHX1BEQ19BRE1BIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfUVNUT1IgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9QUk9NSVNFIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU1g0IGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX1NJTD15Ci0jIENPTkZJR19TQVRBX1NJTDI0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NBVEFfU0lMIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfU0lTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NBVEFfVUxJIGlzIG5vdCBzZXQKLUNPTkZJR19TQVRBX1ZJQT15CisjIENPTkZJR19TQVRBX1ZJQSBpcyBub3Qgc2V0CiAjIENPTkZJR19TQVRBX1ZJVEVTU0UgaXMgbm90IHNldAogIyBDT05GSUdfU0FUQV9JTklDMTYyWCBpcyBub3Qgc2V0CisjIENPTkZJR19QQVRBX0FDUEkgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BTEkgaXMgbm90IHNldAotIyBDT05GSUdfUEFUQV9BTUQgaXMgbm90IHNldAorQ09ORklHX1BBVEFfQU1EPXkKICMgQ09ORklHX1BBVEFfQVJUT1AgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9BVElJWFAgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9DTUQ2NDBfUENJIGlzIG5vdCBzZXQKQEAgLTYxMiwxMSArODM5LDE0IEBACiAjIENPTkZJR19QQVRBX1RSSUZMRVggaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9NQVJWRUxMIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfTVBJSVggaXMgbm90IHNldAotIyBDT05GSUdfUEFUQV9PTERQSUlYIGlzIG5vdCBzZXQKK0NPTkZJR19QQVRBX09MRFBJSVg9eQogIyBDT05GSUdfUEFUQV9ORVRDRUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BBVEFfTklOSkEzMiBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX05TODc0MTAgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9OUzg3NDE1IGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfT1BUSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX09QVElETUEgaXMgbm90IHNldAorIyBDT05GSUdfUEFUQV9QQ01DSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9QRENfT0xEIGlzIG5vdCBzZXQKICMgQ09ORklHX1BBVEFfUkFESVNZUyBpcyBub3Qgc2V0CiAjIENPTkZJR19QQVRBX1JaMTAwMCBpcyBub3Qgc2V0CkBAIC02MjgsNjUgKzg1OCw0MiBAQAogIyBDT05GSUdfUEFUQV9WSUEgaXMgbm90IHNldAogIyBDT05GSUdfUEFUQV9XSU5CT05EIGlzIG5vdCBzZXQKIENPTkZJR19NRD15Ci0jIENPTkZJR19CTEtfREVWX01EIGlzIG5vdCBzZXQKK0NPTkZJR19CTEtfREVWX01EPXkKKyMgQ09ORklHX01EX0xJTkVBUiBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMCBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMSBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9SQUlEMTAgaXMgbm90IHNldAorIyBDT05GSUdfTURfUkFJRDQ1NiBpcyBub3Qgc2V0CisjIENPTkZJR19NRF9NVUxUSVBBVEggaXMgbm90IHNldAorIyBDT05GSUdfTURfRkFVTFRZIGlzIG5vdCBzZXQKIENPTkZJR19CTEtfREVWX0RNPXkKICMgQ09ORklHX0RNX0RFQlVHIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX0NSWVBUIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX1NOQVBTSE9UIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RNX01JUlJPUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19ETV9aRVJPIGlzIG5vdCBzZXQKK0NPTkZJR19ETV9NSVJST1I9eQorQ09ORklHX0RNX1pFUk89eQogIyBDT05GSUdfRE1fTVVMVElQQVRIIGlzIG5vdCBzZXQKICMgQ09ORklHX0RNX0RFTEFZIGlzIG5vdCBzZXQKLQotIwotIyBGdXNpb24gTVBUIGRldmljZSBzdXBwb3J0Ci0jCi1DT05GSUdfRlVTSU9OPXkKLUNPTkZJR19GVVNJT05fU1BJPXkKLSMgQ09ORklHX0ZVU0lPTl9GQyBpcyBub3Qgc2V0Ci0jIENPTkZJR19GVVNJT05fU0FTIGlzIG5vdCBzZXQKLUNPTkZJR19GVVNJT05fTUFYX1NHRT0xMjgKLSMgQ09ORklHX0ZVU0lPTl9DVEwgaXMgbm90IHNldAorIyBDT05GSUdfRE1fVUVWRU5UIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZVU0lPTiBpcyBub3Qgc2V0CiAKICMKICMgSUVFRSAxMzk0IChGaXJlV2lyZSkgc3VwcG9ydAogIwogIyBDT05GSUdfRklSRVdJUkUgaXMgbm90IHNldAotQ09ORklHX0lFRUUxMzk0PXkKLQotIwotIyBTdWJzeXN0ZW0gT3B0aW9ucwotIwotIyBDT05GSUdfSUVFRTEzOTRfVkVSQk9TRURFQlVHIGlzIG5vdCBzZXQKLQotIwotIyBDb250cm9sbGVycwotIwotCi0jCi0jIFRleGFzIEluc3RydW1lbnRzIFBDSUx5bnggcmVxdWlyZXMgSTJDCi0jCi1DT05GSUdfSUVFRTEzOTRfT0hDSTEzOTQ9eQotCi0jCi0jIFByb3RvY29scwotIwotIyBDT05GSUdfSUVFRTEzOTRfVklERU8xMzk0IGlzIG5vdCBzZXQKLSMgQ09ORklHX0lFRUUxMzk0X1NCUDIgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRVRIMTM5NF9ST01fRU5UUlkgaXMgbm90IHNldAotIyBDT05GSUdfSUVFRTEzOTRfRVRIMTM5NCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JRUVFMTM5NF9EVjEzOTQgaXMgbm90IHNldAotQ09ORklHX0lFRUUxMzk0X1JBV0lPPXkKKyMgQ09ORklHX0lFRUUxMzk0IGlzIG5vdCBzZXQKICMgQ09ORklHX0kyTyBpcyBub3Qgc2V0CiBDT05GSUdfTUFDSU5UT1NIX0RSSVZFUlM9eQotIyBDT05GSUdfTUFDX0VNVU1PVVNFQlROIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNfRU1VTU9VU0VCVE49eQogQ09ORklHX05FVERFVklDRVM9eQotQ09ORklHX05FVERFVklDRVNfTVVMVElRVUVVRT15CisjIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUgaXMgbm90IHNldAorIyBDT05GSUdfSUZCIGlzIG5vdCBzZXQKICMgQ09ORklHX0RVTU1ZIGlzIG5vdCBzZXQKICMgQ09ORklHX0JPTkRJTkcgaXMgbm90IHNldAogIyBDT05GSUdfTUFDVkxBTiBpcyBub3Qgc2V0CiAjIENPTkZJR19FUVVBTElaRVIgaXMgbm90IHNldAotQ09ORklHX1RVTj15CisjIENPTkZJR19UVU4gaXMgbm90IHNldAorIyBDT05GSUdfVkVUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfU0IxMDAwIGlzIG5vdCBzZXQKICMgQ09ORklHX0FSQ05FVCBpcyBub3Qgc2V0CiAjIENPTkZJR19QSFlMSUIgaXMgbm90IHNldApAQCAtNjk2LDM5ICs5MDMsNDAgQEAKICMgQ09ORklHX1NVTkdFTSBpcyBub3Qgc2V0CiAjIENPTkZJR19DQVNTSU5JIGlzIG5vdCBzZXQKIENPTkZJR19ORVRfVkVORE9SXzNDT009eQotQ09ORklHX1ZPUlRFWD15CisjIENPTkZJR19WT1JURVggaXMgbm90IHNldAogIyBDT05GSUdfVFlQSE9PTiBpcyBub3Qgc2V0CiBDT05GSUdfTkVUX1RVTElQPXkKICMgQ09ORklHX0RFMjEwNFggaXMgbm90IHNldAotQ09ORklHX1RVTElQPXkKLSMgQ09ORklHX1RVTElQX01XSSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UVUxJUF9NTUlPIGlzIG5vdCBzZXQKLSMgQ09ORklHX1RVTElQX05BUEkgaXMgbm90IHNldAorIyBDT05GSUdfVFVMSVAgaXMgbm90IHNldAogIyBDT05GSUdfREU0WDUgaXMgbm90IHNldAogIyBDT05GSUdfV0lOQk9ORF84NDAgaXMgbm90IHNldAogIyBDT05GSUdfRE05MTAyIGlzIG5vdCBzZXQKICMgQ09ORklHX1VMSTUyNlggaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBX1hJUkNPTSBpcyBub3Qgc2V0CiAjIENPTkZJR19IUDEwMCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfWk1JSSBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfUkdNSUkgaXMgbm90IHNldAorIyBDT05GSUdfSUJNX05FV19FTUFDX1RBSCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1fTkVXX0VNQUNfRU1BQzQgaXMgbm90IHNldAogQ09ORklHX05FVF9QQ0k9eQogIyBDT05GSUdfUENORVQzMiBpcyBub3Qgc2V0Ci1DT05GSUdfQU1EODExMV9FVEg9eQotIyBDT05GSUdfQU1EODExMUVfTkFQSSBpcyBub3Qgc2V0CisjIENPTkZJR19BTUQ4MTExX0VUSCBpcyBub3Qgc2V0CiAjIENPTkZJR19BREFQVEVDX1NUQVJGSVJFIGlzIG5vdCBzZXQKLUNPTkZJR19CNDQ9eQorIyBDT05GSUdfQjQ0IGlzIG5vdCBzZXQKIENPTkZJR19GT1JDRURFVEg9eQogIyBDT05GSUdfRk9SQ0VERVRIX05BUEkgaXMgbm90IHNldAotIyBDT05GSUdfREdSUyBpcyBub3Qgc2V0CiAjIENPTkZJR19FRVBSTzEwMCBpcyBub3Qgc2V0CiBDT05GSUdfRTEwMD15CiAjIENPTkZJR19GRUFMTlggaXMgbm90IHNldAogIyBDT05GSUdfTkFUU0VNSSBpcyBub3Qgc2V0CiAjIENPTkZJR19ORTJLX1BDSSBpcyBub3Qgc2V0Ci1DT05GSUdfODEzOUNQPXkKKyMgQ09ORklHXzgxMzlDUCBpcyBub3Qgc2V0CiBDT05GSUdfODEzOVRPTz15Ci0jIENPTkZJR184MTM5VE9PX1BJTyBpcyBub3Qgc2V0CitDT05GSUdfODEzOVRPT19QSU89eQogIyBDT05GSUdfODEzOVRPT19UVU5FX1RXSVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfODEzOVRPT184MTI5IGlzIG5vdCBzZXQKICMgQ09ORklHXzgxMzlfT0xEX1JYX1JFU0VUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1I2MDQwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzkwMCBpcyBub3Qgc2V0CiAjIENPTkZJR19FUElDMTAwIGlzIG5vdCBzZXQKICMgQ09ORklHX1NVTkRBTkNFIGlzIG5vdCBzZXQKQEAgLTc0MCwzNCArOTQ4LDc0IEBACiBDT05GSUdfRTEwMDA9eQogIyBDT05GSUdfRTEwMDBfTkFQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19FMTAwMF9ESVNBQkxFX1BBQ0tFVF9TUExJVCBpcyBub3Qgc2V0CisjIENPTkZJR19FMTAwMEUgaXMgbm90IHNldAorIyBDT05GSUdfRTEwMDBFX0VOQUJMRUQgaXMgbm90IHNldAorIyBDT05GSUdfSVAxMDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lHQiBpcyBub3Qgc2V0CiAjIENPTkZJR19OUzgzODIwIGlzIG5vdCBzZXQKICMgQ09ORklHX0hBTUFDSEkgaXMgbm90IHNldAogIyBDT05GSUdfWUVMTE9XRklOIGlzIG5vdCBzZXQKICMgQ09ORklHX1I4MTY5IGlzIG5vdCBzZXQKICMgQ09ORklHX1NJUzE5MCBpcyBub3Qgc2V0CiAjIENPTkZJR19TS0dFIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NLWTIgaXMgbm90IHNldAorQ09ORklHX1NLWTI9eQorIyBDT05GSUdfU0tZMl9ERUJVRyBpcyBub3Qgc2V0CiAjIENPTkZJR19WSUFfVkVMT0NJVFkgaXMgbm90IHNldAogQ09ORklHX1RJR09OMz15Ci1DT05GSUdfQk5YMj15CisjIENPTkZJR19CTlgyIGlzIG5vdCBzZXQKICMgQ09ORklHX1FMQTNYWFggaXMgbm90IHNldAogIyBDT05GSUdfQVRMMSBpcyBub3Qgc2V0CiBDT05GSUdfTkVUREVWXzEwMDAwPXkKICMgQ09ORklHX0NIRUxTSU9fVDEgaXMgbm90IHNldAogIyBDT05GSUdfQ0hFTFNJT19UMyBpcyBub3Qgc2V0CisjIENPTkZJR19JWEdCRSBpcyBub3Qgc2V0CiAjIENPTkZJR19JWEdCIGlzIG5vdCBzZXQKLUNPTkZJR19TMklPPW0KLSMgQ09ORklHX1MySU9fTkFQSSBpcyBub3Qgc2V0CisjIENPTkZJR19TMklPIGlzIG5vdCBzZXQKICMgQ09ORklHX01ZUkkxMEdFIGlzIG5vdCBzZXQKICMgQ09ORklHX05FVFhFTl9OSUMgaXMgbm90IHNldAorIyBDT05GSUdfTklVIGlzIG5vdCBzZXQKICMgQ09ORklHX01MWDRfQ09SRSBpcyBub3Qgc2V0Ci0jIENPTkZJR19UUiBpcyBub3Qgc2V0CisjIENPTkZJR19URUhVVEkgaXMgbm90IHNldAorIyBDT05GSUdfQk5YMlggaXMgbm90IHNldAorIyBDT05GSUdfU0ZDIGlzIG5vdCBzZXQKK0NPTkZJR19UUj15CisjIENPTkZJR19JQk1PTCBpcyBub3Qgc2V0CisjIENPTkZJR18zQzM1OSBpcyBub3Qgc2V0CisjIENPTkZJR19UTVMzODBUUiBpcyBub3Qgc2V0CiAKICMKICMgV2lyZWxlc3MgTEFOCiAjCiAjIENPTkZJR19XTEFOX1BSRTgwMjExIGlzIG5vdCBzZXQKLSMgQ09ORklHX1dMQU5fODAyMTEgaXMgbm90IHNldAorQ09ORklHX1dMQU5fODAyMTE9eQorIyBDT05GSUdfUENNQ0lBX1JBWUNTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQVzIxMDAgaXMgbm90IHNldAorIyBDT05GSUdfSVBXMjIwMCBpcyBub3Qgc2V0CisjIENPTkZJR19MSUJFUlRBUyBpcyBub3Qgc2V0CisjIENPTkZJR19BSVJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hFUk1FUyBpcyBub3Qgc2V0CisjIENPTkZJR19BVE1FTCBpcyBub3Qgc2V0CisjIENPTkZJR19BSVJPX0NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9XTDM1MDEgaXMgbm90IHNldAorIyBDT05GSUdfUFJJU001NCBpcyBub3Qgc2V0CisjIENPTkZJR19VU0JfWkQxMjAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9ORVRfUk5ESVNfV0xBTiBpcyBub3Qgc2V0CisjIENPTkZJR19SVEw4MTgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUTDgxODcgaXMgbm90IHNldAorIyBDT05GSUdfQURNODIxMSBpcyBub3Qgc2V0CisjIENPTkZJR19QNTRfQ09NTU9OIGlzIG5vdCBzZXQKK0NPTkZJR19BVEg1Sz15CisjIENPTkZJR19BVEg1S19ERUJVRyBpcyBub3Qgc2V0CisjIENPTkZJR19JV0xXSUZJIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTENPUkUgaXMgbm90IHNldAorIyBDT05GSUdfSVdMV0lGSV9MRURTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lXTDQ5NjUgaXMgbm90IHNldAorIyBDT05GSUdfSVdMMzk0NSBpcyBub3Qgc2V0CisjIENPTkZJR19IT1NUQVAgaXMgbm90IHNldAorIyBDT05GSUdfQjQzIGlzIG5vdCBzZXQKKyMgQ09ORklHX0I0M0xFR0FDWSBpcyBub3Qgc2V0CisjIENPTkZJR19aRDEyMTFSVyBpcyBub3Qgc2V0CisjIENPTkZJR19SVDJYMDAgaXMgbm90IHNldAogCiAjCiAjIFVTQiBOZXR3b3JrIEFkYXB0ZXJzCkBAIC03NzYsMTYgKzEwMjQsMjYgQEAKICMgQ09ORklHX1VTQl9LQVdFVEggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1BFR0FTVVMgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1JUTDgxNTAgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX1VTQk5FVF9NSUkgaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1VTQk5FVCBpcyBub3Qgc2V0CitDT05GSUdfTkVUX1BDTUNJQT15CisjIENPTkZJR19QQ01DSUFfM0M1ODkgaXMgbm90IHNldAorIyBDT05GSUdfUENNQ0lBXzNDNTc0IGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9GTVZKMThYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9QQ05FVCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfTk1DTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDTUNJQV9TTUM5MUM5MiBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfWElSQzJQUyBpcyBub3Qgc2V0CisjIENPTkZJR19QQ01DSUFfQVhORVQgaXMgbm90IHNldAogIyBDT05GSUdfV0FOIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZEREkgaXMgbm90IHNldAorQ09ORklHX0ZEREk9eQorIyBDT05GSUdfREVGWFggaXMgbm90IHNldAorIyBDT05GSUdfU0tGUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ISVBQSSBpcyBub3Qgc2V0CiAjIENPTkZJR19QUFAgaXMgbm90IHNldAogIyBDT05GSUdfU0xJUCBpcyBub3Qgc2V0CiAjIENPTkZJR19ORVRfRkMgaXMgbm90IHNldAotIyBDT05GSUdfU0hBUEVSIGlzIG5vdCBzZXQKIENPTkZJR19ORVRDT05TT0xFPXkKKyMgQ09ORklHX05FVENPTlNPTEVfRFlOQU1JQyBpcyBub3Qgc2V0CiBDT05GSUdfTkVUUE9MTD15CiAjIENPTkZJR19ORVRQT0xMX1RSQVAgaXMgbm90IHNldAogQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVI9eQpAQCAtNzk2LDE4ICsxMDU0LDE3IEBACiAjIElucHV0IGRldmljZSBzdXBwb3J0CiAjCiBDT05GSUdfSU5QVVQ9eQotIyBDT05GSUdfSU5QVVRfRkZfTUVNTEVTUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9QT0xMREVWIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9GRl9NRU1MRVNTPXkKK0NPTkZJR19JTlBVVF9QT0xMREVWPXkKIAogIwogIyBVc2VybGFuZCBpbnRlcmZhY2VzCiAjCiBDT05GSUdfSU5QVVRfTU9VU0VERVY9eQotQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYPXkKKyMgQ09ORklHX0lOUFVUX01PVVNFREVWX1BTQVVYIGlzIG5vdCBzZXQKIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWD0xMDI0CiBDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiAjIENPTkZJR19JTlBVVF9KT1lERVYgaXMgbm90IHNldAotIyBDT05GSUdfSU5QVVRfVFNERVYgaXMgbm90IHNldAogQ09ORklHX0lOUFVUX0VWREVWPXkKICMgQ09ORklHX0lOUFVUX0VWQlVHIGlzIG5vdCBzZXQKIApAQCAtODMyLDE3ICsxMDg5LDYyIEBACiAjIENPTkZJR19NT1VTRV9TRVJJQUwgaXMgbm90IHNldAogIyBDT05GSUdfTU9VU0VfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CiAjIENPTkZJR19NT1VTRV9WU1hYWEFBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX0pPWVNUSUNLIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lOUFVUX1RBQkxFVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9UT1VDSFNDUkVFTiBpcyBub3Qgc2V0Ci0jIENPTkZJR19JTlBVVF9NSVNDIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9KT1lTVElDSz15CisjIENPTkZJR19KT1lTVElDS19BTkFMT0cgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfQTNEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0FESSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19DT0JSQSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HRjJLIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0dSSVAgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfR1JJUF9NUCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19HVUlMTEVNT1QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfSU5URVJBQ1QgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfU0lERVdJTkRFUiBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19UTURDIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX0lGT1JDRSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19XQVJSSU9SIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX01BR0VMTEFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NQQUNFT1JCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1NQQUNFQkFMTCBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19TVElOR0VSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1RXSURKT1kgaXMgbm90IHNldAorIyBDT05GSUdfSk9ZU1RJQ0tfWkhFTkhVQSBpcyBub3Qgc2V0CisjIENPTkZJR19KT1lTVElDS19KT1lEVU1QIGlzIG5vdCBzZXQKKyMgQ09ORklHX0pPWVNUSUNLX1hQQUQgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX1RBQkxFVD15CisjIENPTkZJR19UQUJMRVRfVVNCX0FDRUNBRCBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0FJUFRFSyBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX0dUQ08gaXMgbm90IHNldAorIyBDT05GSUdfVEFCTEVUX1VTQl9LQlRBQiBpcyBub3Qgc2V0CisjIENPTkZJR19UQUJMRVRfVVNCX1dBQ09NIGlzIG5vdCBzZXQKK0NPTkZJR19JTlBVVF9UT1VDSFNDUkVFTj15CisjIENPTkZJR19UT1VDSFNDUkVFTl9GVUpJVFNVIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0dVTlpFIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX0VMTyBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9NVE9VQ0ggaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fTUs3MTIgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fUEVOTU9VTlQgaXMgbm90IHNldAorIyBDT05GSUdfVE9VQ0hTQ1JFRU5fVE9VQ0hSSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9UT1VDSFdJTiBpcyBub3Qgc2V0CisjIENPTkZJR19UT1VDSFNDUkVFTl9VQ0IxNDAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1RPVUNIU0NSRUVOX1VTQl9DT01QT1NJVEUgaXMgbm90IHNldAorQ09ORklHX0lOUFVUX01JU0M9eQorIyBDT05GSUdfSU5QVVRfUENTUEtSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FQQU5FTCBpcyBub3Qgc2V0CisjIENPTkZJR19JTlBVVF9BVExBU19CVE5TIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX0FUSV9SRU1PVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfQVRJX1JFTU9URTIgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfS0VZU1BBTl9SRU1PVEUgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfUE9XRVJNQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lOUFVUX1lFQUxJTksgaXMgbm90IHNldAorIyBDT05GSUdfSU5QVVRfVUlOUFVUIGlzIG5vdCBzZXQKIAogIwogIyBIYXJkd2FyZSBJL08gcG9ydHMKICMKIENPTkZJR19TRVJJTz15CiBDT05GSUdfU0VSSU9fSTgwNDI9eQotIyBDT05GSUdfU0VSSU9fU0VSUE9SVCBpcyBub3Qgc2V0CitDT05GSUdfU0VSSU9fU0VSUE9SVD15CiAjIENPTkZJR19TRVJJT19DVDgyQzcxMCBpcyBub3Qgc2V0CiAjIENPTkZJR19TRVJJT19QQ0lQUzIgaXMgbm90IHNldAogQ09ORklHX1NFUklPX0xJQlBTMj15CkBAIC04NTUsOCArMTE1NywyNiBAQAogQ09ORklHX1ZUPXkKIENPTkZJR19WVF9DT05TT0xFPXkKIENPTkZJR19IV19DT05TT0xFPXkKLSMgQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TRVJJQUxfTk9OU1RBTkRBUkQgaXMgbm90IHNldAorQ09ORklHX1ZUX0hXX0NPTlNPTEVfQklORElORz15CitDT05GSUdfREVWS01FTT15CitDT05GSUdfU0VSSUFMX05PTlNUQU5EQVJEPXkKKyMgQ09ORklHX0NPTVBVVE9ORSBpcyBub3Qgc2V0CisjIENPTkZJR19ST0NLRVRQT1JUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NZQ0xBREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RJR0lFUENBIGlzIG5vdCBzZXQKKyMgQ09ORklHX01PWEFfSU5URUxMSU8gaXMgbm90IHNldAorIyBDT05GSUdfTU9YQV9TTUFSVElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lTSSBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOSyBpcyBub3Qgc2V0CisjIENPTkZJR19TWU5DTElOS01QIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NZTkNMSU5LX0dUIGlzIG5vdCBzZXQKKyMgQ09ORklHX05fSERMQyBpcyBub3Qgc2V0CisjIENPTkZJR19SSVNDT004IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NQRUNJQUxJWCBpcyBub3Qgc2V0CisjIENPTkZJR19TWCBpcyBub3Qgc2V0CisjIENPTkZJR19SSU8gaXMgbm90IHNldAorIyBDT05GSUdfU1RBTERSViBpcyBub3Qgc2V0CisjIENPTkZJR19OT1pPTUkgaXMgbm90IHNldAogCiAjCiAjIFNlcmlhbCBkcml2ZXJzCkBAIC04NjYsOSArMTE4NiwxNCBAQAogQ09ORklHX0ZJWF9FQVJMWUNPTl9NRU09eQogQ09ORklHX1NFUklBTF84MjUwX1BDST15CiBDT05GSUdfU0VSSUFMXzgyNTBfUE5QPXkKLUNPTkZJR19TRVJJQUxfODI1MF9OUl9VQVJUUz00CisjIENPTkZJR19TRVJJQUxfODI1MF9DUyBpcyBub3Qgc2V0CitDT05GSUdfU0VSSUFMXzgyNTBfTlJfVUFSVFM9MzIKIENPTkZJR19TRVJJQUxfODI1MF9SVU5USU1FX1VBUlRTPTQKLSMgQ09ORklHX1NFUklBTF84MjUwX0VYVEVOREVEIGlzIG5vdCBzZXQKK0NPTkZJR19TRVJJQUxfODI1MF9FWFRFTkRFRD15CitDT05GSUdfU0VSSUFMXzgyNTBfTUFOWV9QT1JUUz15CitDT05GSUdfU0VSSUFMXzgyNTBfU0hBUkVfSVJRPXkKK0NPTkZJR19TRVJJQUxfODI1MF9ERVRFQ1RfSVJRPXkKK0NPTkZJR19TRVJJQUxfODI1MF9SU0E9eQogCiAjCiAjIE5vbi04MjUwIHNlcmlhbCBwb3J0IHN1cHBvcnQKQEAgLTg3Nyw3OCArMTIwMiwyNjAgQEAKIENPTkZJR19TRVJJQUxfQ09SRV9DT05TT0xFPXkKICMgQ09ORklHX1NFUklBTF9KU00gaXMgbm90IHNldAogQ09ORklHX1VOSVg5OF9QVFlTPXkKLUNPTkZJR19MRUdBQ1lfUFRZUz15Ci1DT05GSUdfTEVHQUNZX1BUWV9DT1VOVD0yNTYKKyMgQ09ORklHX0xFR0FDWV9QVFlTIGlzIG5vdCBzZXQKICMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0Ci0jIENPTkZJR19XQVRDSERPRyBpcyBub3Qgc2V0CiBDT05GSUdfSFdfUkFORE9NPXkKLUNPTkZJR19IV19SQU5ET01fSU5URUw9eQotQ09ORklHX0hXX1JBTkRPTV9BTUQ9eQotIyBDT05GSUdfTlZSQU0gaXMgbm90IHNldAotQ09ORklHX1JUQz15CisjIENPTkZJR19IV19SQU5ET01fSU5URUwgaXMgbm90IHNldAorIyBDT05GSUdfSFdfUkFORE9NX0FNRCBpcyBub3Qgc2V0CitDT05GSUdfTlZSQU09eQogIyBDT05GSUdfUjM5NjQgaXMgbm90IHNldAogIyBDT05GSUdfQVBQTElDT00gaXMgbm90IHNldAotQ09ORklHX0FHUD15Ci1DT05GSUdfQUdQX0FNRDY0PXkKLUNPTkZJR19BR1BfSU5URUw9eQotIyBDT05GSUdfQUdQX1NJUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19BR1BfVklBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CisKKyMKKyMgUENNQ0lBIGNoYXJhY3RlciBkZXZpY2VzCisjCisjIENPTkZJR19TWU5DTElOS19DUyBpcyBub3Qgc2V0CisjIENPTkZJR19DQVJETUFOXzQwMDAgaXMgbm90IHNldAorIyBDT05GSUdfQ0FSRE1BTl80MDQwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lQV0lSRUxFU1MgaXMgbm90IHNldAogIyBDT05GSUdfTVdBVkUgaXMgbm90IHNldAogIyBDT05GSUdfUEM4NzM2eF9HUElPIGlzIG5vdCBzZXQKLUNPTkZJR19SQVdfRFJJVkVSPXkKLUNPTkZJR19NQVhfUkFXX0RFVlM9MjU2CisjIENPTkZJR19SQVdfRFJJVkVSIGlzIG5vdCBzZXQKIENPTkZJR19IUEVUPXkKICMgQ09ORklHX0hQRVRfUlRDX0lSUSBpcyBub3Qgc2V0Ci1DT05GSUdfSFBFVF9NTUFQPXkKKyMgQ09ORklHX0hQRVRfTU1BUCBpcyBub3Qgc2V0CiAjIENPTkZJR19IQU5HQ0hFQ0tfVElNRVIgaXMgbm90IHNldAogIyBDT05GSUdfVENHX1RQTSBpcyBub3Qgc2V0CiAjIENPTkZJR19URUxDTE9DSyBpcyBub3Qgc2V0CiBDT05GSUdfREVWUE9SVD15Ci0jIENPTkZJR19JMkMgaXMgbm90IHNldAorQ09ORklHX0kyQz15CitDT05GSUdfSTJDX0JPQVJESU5GTz15CisjIENPTkZJR19JMkNfQ0hBUkRFViBpcyBub3Qgc2V0CiAKICMKLSMgU1BJIHN1cHBvcnQKKyMgSTJDIEhhcmR3YXJlIEJ1cyBzdXBwb3J0CiAjCisjIENPTkZJR19JMkNfQUxJMTUzNSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTU2MyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQUxJMTVYMyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfQU1ENzU2IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19BTUQ4MTExIGlzIG5vdCBzZXQKK0NPTkZJR19JMkNfSTgwMT15CisjIENPTkZJR19JMkNfSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUElJWDQgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX05GT1JDRTIgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX09DT1JFUyBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUEFSUE9SVF9MSUdIVCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfUFJPU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TQVZBR0U0IGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19TSU1URUMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzU1OTUgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1NJUzYzMCBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU0lTOTZYIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19UQU9TX0VWTSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfU1RVQiBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVElOWV9VU0IgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX1ZJQSBpcyBub3Qgc2V0CisjIENPTkZJR19JMkNfVklBUFJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19WT09ET08zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19QQ0FfUExBVEZPUk0gaXMgbm90IHNldAorCisjCisjIE1pc2NlbGxhbmVvdXMgSTJDIENoaXAgc3VwcG9ydAorIworIyBDT05GSUdfRFMxNjgyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfRUVQUk9NIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU3NCBpcyBub3Qgc2V0CisjIENPTkZJR19QQ0Y4NTc1IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFTlNPUlNfUENGODU5MSBpcyBub3Qgc2V0CisjIENPTkZJR19TRU5TT1JTX01BWDY4NzUgaXMgbm90IHNldAorIyBDT05GSUdfU0VOU09SU19UU0wyNTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19DT1JFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19BTEdPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0kyQ19ERUJVR19CVVMgaXMgbm90IHNldAorIyBDT05GSUdfSTJDX0RFQlVHX0NISVAgaXMgbm90IHNldAogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NQSV9NQVNURVIgaXMgbm90IHNldAogIyBDT05GSUdfVzEgaXMgbm90IHNldAotIyBDT05GSUdfUE9XRVJfU1VQUExZIGlzIG5vdCBzZXQKK0NPTkZJR19QT1dFUl9TVVBQTFk9eQorIyBDT05GSUdfUE9XRVJfU1VQUExZX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BEQV9QT1dFUiBpcyBub3Qgc2V0CisjIENPTkZJR19CQVRURVJZX0RTMjc2MCBpcyBub3Qgc2V0CiAjIENPTkZJR19IV01PTiBpcyBub3Qgc2V0CitDT05GSUdfVEhFUk1BTD15CitDT05GSUdfV0FUQ0hET0c9eQorIyBDT05GSUdfV0FUQ0hET0dfTk9XQVlPVVQgaXMgbm90IHNldAorCisjCisjIFdhdGNoZG9nIERldmljZSBEcml2ZXJzCisjCisjIENPTkZJR19TT0ZUX1dBVENIRE9HIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDUVVJUkVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FEVkFOVEVDSF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfQUxJTTE1MzVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FMSU03MTAxX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19TQzUyMF9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfRVVST1RFQ0hfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lCNzAwX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JQk1BU1IgaXMgbm90IHNldAorIyBDT05GSUdfV0FGRVJfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0k2MzAwRVNCX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JVENPX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19JVDg3MTJGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19IUF9XQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19TQzEyMDBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1BDODc0MTNfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHXzYwWFhfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NCQzgzNjBfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NQVTVfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NNU0MzN0I3ODdfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1c4MzYyN0hGX1dEVCBpcyBub3Qgc2V0CisjIENPTkZJR19XODM2OTdIRl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzODc3Rl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfVzgzOTc3Rl9XRFQgaXMgbm90IHNldAorIyBDT05GSUdfTUFDSFpfV0RUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NCQ19FUFhfQzNfV0FUQ0hET0cgaXMgbm90IHNldAorCisjCisjIFBDSS1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfUENJUENXQVRDSERPRyBpcyBub3Qgc2V0CisjIENPTkZJR19XRFRQQ0kgaXMgbm90IHNldAorCisjCisjIFVTQi1iYXNlZCBXYXRjaGRvZyBDYXJkcworIworIyBDT05GSUdfVVNCUENXQVRDSERPRyBpcyBub3Qgc2V0CisKKyMKKyMgU29uaWNzIFNpbGljb24gQmFja3BsYW5lCisjCitDT05GSUdfU1NCX1BPU1NJQkxFPXkKKyMgQ09ORklHX1NTQiBpcyBub3Qgc2V0CiAKICMKICMgTXVsdGlmdW5jdGlvbiBkZXZpY2UgZHJpdmVycwogIwogIyBDT05GSUdfTUZEX1NNNTAxIGlzIG5vdCBzZXQKKyMgQ09ORklHX0hUQ19QQVNJQzMgaXMgbm90IHNldAogCiAjCiAjIE11bHRpbWVkaWEgZGV2aWNlcwogIworCisjCisjIE11bHRpbWVkaWEgY29yZSBzdXBwb3J0CisjCiAjIENPTkZJR19WSURFT19ERVYgaXMgbm90IHNldAogIyBDT05GSUdfRFZCX0NPUkUgaXMgbm90IHNldAorCisjCisjIE11bHRpbWVkaWEgZHJpdmVycworIwogQ09ORklHX0RBQj15CiAjIENPTkZJR19VU0JfREFCVVNCIGlzIG5vdCBzZXQKIAogIwogIyBHcmFwaGljcyBzdXBwb3J0CiAjCi0jIENPTkZJR19CQUNLTElHSFRfTENEX1NVUFBPUlQgaXMgbm90IHNldAorQ09ORklHX0FHUD15CitDT05GSUdfQUdQX0FNRDY0PXkKK0NPTkZJR19BR1BfSU5URUw9eQorIyBDT05GSUdfQUdQX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19BR1BfVklBIGlzIG5vdCBzZXQKK0NPTkZJR19EUk09eQorIyBDT05GSUdfRFJNX1RERlggaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1IxMjggaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1JBREVPTiBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fSTgxMCBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fSTgzMCBpcyBub3Qgc2V0CitDT05GSUdfRFJNX0k5MTU9eQorIyBDT05GSUdfRFJNX01HQSBpcyBub3Qgc2V0CisjIENPTkZJR19EUk1fU0lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RSTV9WSUEgaXMgbm90IHNldAorIyBDT05GSUdfRFJNX1NBVkFHRSBpcyBub3Qgc2V0CisjIENPTkZJR19WR0FTVEFURSBpcyBub3Qgc2V0CisjIENPTkZJR19WSURFT19PVVRQVVRfQ09OVFJPTCBpcyBub3Qgc2V0CitDT05GSUdfRkI9eQorIyBDT05GSUdfRklSTVdBUkVfRURJRCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9EREMgaXMgbm90IHNldAorQ09ORklHX0ZCX0NGQl9GSUxMUkVDVD15CitDT05GSUdfRkJfQ0ZCX0NPUFlBUkVBPXkKK0NPTkZJR19GQl9DRkJfSU1BR0VCTElUPXkKKyMgQ09ORklHX0ZCX0NGQl9SRVZfUElYRUxTX0lOX0JZVEUgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU1lTX0ZJTExSRUNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19DT1BZQVJFQSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9TWVNfSU1BR0VCTElUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0ZPUkVJR05fRU5ESUFOIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NZU19GT1BTIGlzIG5vdCBzZXQKK0NPTkZJR19GQl9ERUZFUlJFRF9JTz15CisjIENPTkZJR19GQl9TVkdBTElCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX01BQ01PREVTIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0JBQ0tMSUdIVCBpcyBub3Qgc2V0CitDT05GSUdfRkJfTU9ERV9IRUxQRVJTPXkKK0NPTkZJR19GQl9USUxFQkxJVFRJTkc9eQorCisjCisjIEZyYW1lIGJ1ZmZlciBoYXJkd2FyZSBkcml2ZXJzCisjCisjIENPTkZJR19GQl9DSVJSVVMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0yIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0NZQkVSMjAwMCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUkMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfQVNJTElBTlQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfSU1TVFQgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVkdBMTYgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVVZFU0EgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVkVTQSBpcyBub3Qgc2V0CitDT05GSUdfRkJfRUZJPXkKKyMgQ09ORklHX0ZCX0lNQUMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTjQxMSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9IR0EgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzFEMTNYWFggaXMgbm90IHNldAorIyBDT05GSUdfRkJfTlZJRElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1JJVkEgaXMgbm90IHNldAorIyBDT05GSUdfRkJfTEU4MDU3OCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9JTlRFTCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9NQVRST1ggaXMgbm90IHNldAorIyBDT05GSUdfRkJfUkFERU9OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0FUWTEyOCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BVFkgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUzMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfU0FWQUdFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1NJUyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9ORU9NQUdJQyBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9LWVJPIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCXzNERlggaXMgbm90IHNldAorIyBDT05GSUdfRkJfVk9PRE9PMSBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9WVDg2MjMgaXMgbm90IHNldAorIyBDT05GSUdfRkJfVFJJREVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19GQl9BUksgaXMgbm90IHNldAorIyBDT05GSUdfRkJfUE0zIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX0dFT0RFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0ZCX1ZJUlRVQUwgaXMgbm90IHNldAorQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVD15CisjIENPTkZJR19MQ0RfQ0xBU1NfREVWSUNFIGlzIG5vdCBzZXQKK0NPTkZJR19CQUNLTElHSFRfQ0xBU1NfREVWSUNFPXkKKyMgQ09ORklHX0JBQ0tMSUdIVF9DT1JHSSBpcyBub3Qgc2V0CisjIENPTkZJR19CQUNLTElHSFRfUFJPR0VBUiBpcyBub3Qgc2V0CiAKICMKICMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAogIwogIyBDT05GSUdfRElTUExBWV9TVVBQT1JUIGlzIG5vdCBzZXQKLSMgQ09ORklHX1ZHQVNUQVRFIGlzIG5vdCBzZXQKLSMgQ09ORklHX0ZCIGlzIG5vdCBzZXQKIAogIwogIyBDb25zb2xlIGRpc3BsYXkgZHJpdmVyIHN1cHBvcnQKICMKIENPTkZJR19WR0FfQ09OU09MRT15CiBDT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDSz15Ci1DT05GSUdfVkdBQ09OX1NPRlRfU0NST0xMQkFDS19TSVpFPTI1NgorQ09ORklHX1ZHQUNPTl9TT0ZUX1NDUk9MTEJBQ0tfU0laRT02NAogQ09ORklHX1ZJREVPX1NFTEVDVD15CiBDT05GSUdfRFVNTVlfQ09OU09MRT15CisjIENPTkZJR19GUkFNRUJVRkZFUl9DT05TT0xFIGlzIG5vdCBzZXQKK0NPTkZJR19MT0dPPXkKKyMgQ09ORklHX0xPR09fTElOVVhfTU9OTyBpcyBub3Qgc2V0CisjIENPTkZJR19MT0dPX0xJTlVYX1ZHQTE2IGlzIG5vdCBzZXQKK0NPTkZJR19MT0dPX0xJTlVYX0NMVVQyMjQ9eQogCiAjCiAjIFNvdW5kCkBAIC05NTgsMzMgKzE0NjUsMTY1IEBACiAjCiAjIEFkdmFuY2VkIExpbnV4IFNvdW5kIEFyY2hpdGVjdHVyZQogIwotIyBDT05GSUdfU05EIGlzIG5vdCBzZXQKK0NPTkZJR19TTkQ9eQorQ09ORklHX1NORF9USU1FUj15CitDT05GSUdfU05EX1BDTT15CitDT05GSUdfU05EX0hXREVQPXkKK0NPTkZJR19TTkRfU0VRVUVOQ0VSPXkKK0NPTkZJR19TTkRfU0VRX0RVTU1ZPXkKK0NPTkZJR19TTkRfT1NTRU1VTD15CitDT05GSUdfU05EX01JWEVSX09TUz15CitDT05GSUdfU05EX1BDTV9PU1M9eQorQ09ORklHX1NORF9QQ01fT1NTX1BMVUdJTlM9eQorQ09ORklHX1NORF9TRVFVRU5DRVJfT1NTPXkKK0NPTkZJR19TTkRfRFlOQU1JQ19NSU5PUlM9eQorQ09ORklHX1NORF9TVVBQT1JUX09MRF9BUEk9eQorQ09ORklHX1NORF9WRVJCT1NFX1BST0NGUz15CisjIENPTkZJR19TTkRfVkVSQk9TRV9QUklOVEsgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RFQlVHIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfVk1BU1RFUj15CisKKyMKKyMgR2VuZXJpYyBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfUENTUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRFVNTVkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZJUk1JREkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX01UUEFWIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9TRVJJQUxfVTE2NTUwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NUFU0MDEgaXMgbm90IHNldAorCisjCisjIFBDSSBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfQUQxODg5IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BTFMzMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMUzQwMDAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FMSTU0NTEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FUSUlYUCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVRJSVhQX01PREVNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVTg4MTAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FVODgyMCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQVU4ODMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9BVzIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0FaVDMzMjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0JUODdYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DQTAxMDYgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NNSVBDSSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfT1hZR0VOIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9DUzQyODEgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0NTNDZYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfQ1M1NTMwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9EQVJMQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9HSU5BMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0xBWUxBMjAgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0RBUkxBMjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0dJTkEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTEFZTEEyNCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTU9OQSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUlBIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FQ0hPM0cgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHTyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfSU5ESUdPSU8gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lORElHT0RKIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTVUxMEsxIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FTVUxMEsxWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU5TMTM3MCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRU5TMTM3MSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfRVMxOTM4IGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9FUzE5NjggaXMgbm90IHNldAorIyBDT05GSUdfU05EX0ZNODAxIGlzIG5vdCBzZXQKK0NPTkZJR19TTkRfSERBX0lOVEVMPXkKK0NPTkZJR19TTkRfSERBX0hXREVQPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1JFQUxURUs9eQorQ09ORklHX1NORF9IREFfQ09ERUNfQU5BTE9HPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1NJR01BVEVMPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX1ZJQT15CitDT05GSUdfU05EX0hEQV9DT0RFQ19BVElIRE1JPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NPTkVYQU5UPXkKK0NPTkZJR19TTkRfSERBX0NPREVDX0NNRURJQT15CitDT05GSUdfU05EX0hEQV9DT0RFQ19TSTMwNTQ9eQorQ09ORklHX1NORF9IREFfR0VORVJJQz15CisjIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hEU1AgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0hEU1BNIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ISUZJRVIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lDRTE3MTIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lDRTE3MjQgaXMgbm90IHNldAorIyBDT05GSUdfU05EX0lOVEVMOFgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9JTlRFTDhYME0gaXMgbm90IHNldAorIyBDT05GSUdfU05EX0tPUkcxMjEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9NQUVTVFJPMyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfTUlYQVJUIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9OTTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUENYSFIgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JJUFRJREUgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1JNRTMyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9STUU5NiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUk1FOTY1MiBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfU09OSUNWSUJFUyBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVFJJREVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklBODJYWCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklBODJYWF9NT0RFTSBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfVklSVFVPU08gaXMgbm90IHNldAorIyBDT05GSUdfU05EX1ZYMjIyIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9ZTUZQQ0kgaXMgbm90IHNldAorCisjCisjIFVTQiBkZXZpY2VzCisjCisjIENPTkZJR19TTkRfVVNCX0FVRElPIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NORF9VU0JfVVNYMlkgaXMgbm90IHNldAorIyBDT05GSUdfU05EX1VTQl9DQUlBUSBpcyBub3Qgc2V0CisKKyMKKyMgUENNQ0lBIGRldmljZXMKKyMKKyMgQ09ORklHX1NORF9WWFBPQ0tFVCBpcyBub3Qgc2V0CisjIENPTkZJR19TTkRfUERBVURJT0NGIGlzIG5vdCBzZXQKKworIworIyBTeXN0ZW0gb24gQ2hpcCBhdWRpbyBzdXBwb3J0CisjCisjIENPTkZJR19TTkRfU09DIGlzIG5vdCBzZXQKKworIworIyBBTFNBIFNvQyBhdWRpbyBmb3IgRnJlZXNjYWxlIFNPQ3MKKyMKKworIworIyBTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQCisjCiAKICMKICMgT3BlbiBTb3VuZCBTeXN0ZW0KICMKLUNPTkZJR19TT1VORF9QUklNRT15Ci0jIENPTkZJR19TT1VORF9UUklERU5UIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX01TTkRDTEFTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NPVU5EX01TTkRQSU4gaXMgbm90IHNldAotIyBDT05GSUdfU09VTkRfT1NTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NPVU5EX1BSSU1FIGlzIG5vdCBzZXQKIENPTkZJR19ISURfU1VQUE9SVD15CiBDT05GSUdfSElEPXkKLSMgQ09ORklHX0hJRF9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfSElEX0RFQlVHPXkKK0NPTkZJR19ISURSQVc9eQogCiAjCiAjIFVTQiBJbnB1dCBEZXZpY2VzCiAjCiBDT05GSUdfVVNCX0hJRD15Ci0jIENPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LIGlzIG5vdCBzZXQKLSMgQ09ORklHX0hJRF9GRiBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfSElEREVWIGlzIG5vdCBzZXQKK0NPTkZJR19VU0JfSElESU5QVVRfUE9XRVJCT09LPXkKK0NPTkZJR19ISURfRkY9eQorQ09ORklHX0hJRF9QSUQ9eQorQ09ORklHX0xPR0lURUNIX0ZGPXkKKyMgQ09ORklHX0xPR0lSVU1CTEVQQUQyX0ZGIGlzIG5vdCBzZXQKK0NPTkZJR19QQU5USEVSTE9SRF9GRj15CitDT05GSUdfVEhSVVNUTUFTVEVSX0ZGPXkKK0NPTkZJR19aRVJPUExVU19GRj15CitDT05GSUdfVVNCX0hJRERFVj15CiBDT05GSUdfVVNCX1NVUFBPUlQ9eQogQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQogQ09ORklHX1VTQl9BUkNIX0hBU19PSENJPXkKIENPTkZJR19VU0JfQVJDSF9IQVNfRUhDST15CiBDT05GSUdfVVNCPXkKLSMgQ09ORklHX1VTQl9ERUJVRyBpcyBub3Qgc2V0CitDT05GSUdfVVNCX0RFQlVHPXkKK0NPTkZJR19VU0JfQU5OT1VOQ0VfTkVXX0RFVklDRVM9eQogCiAjCiAjIE1pc2NlbGxhbmVvdXMgVVNCIG9wdGlvbnMKQEAgLTk5MiwxOCArMTYzMSwxOCBAQAogQ09ORklHX1VTQl9ERVZJQ0VGUz15CiAjIENPTkZJR19VU0JfREVWSUNFX0NMQVNTIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9EWU5BTUlDX01JTk9SUyBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfU1VTUEVORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19VU0JfUEVSU0lTVCBpcyBub3Qgc2V0CitDT05GSUdfVVNCX1NVU1BFTkQ9eQogIyBDT05GSUdfVVNCX09URyBpcyBub3Qgc2V0CiAKICMKICMgVVNCIEhvc3QgQ29udHJvbGxlciBEcml2ZXJzCiAjCisjIENPTkZJR19VU0JfQzY3WDAwX0hDRCBpcyBub3Qgc2V0CiBDT05GSUdfVVNCX0VIQ0lfSENEPXkKLSMgQ09ORklHX1VTQl9FSENJX1NQTElUX0lTTyBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9ST09UX0hVQl9UVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfRUhDSV9UVF9ORVdTQ0hFRCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSVNQMTE2WF9IQ0QgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX0lTUDE3NjBfSENEIGlzIG5vdCBzZXQKIENPTkZJR19VU0JfT0hDSV9IQ0Q9eQogIyBDT05GSUdfVVNCX09IQ0lfQklHX0VORElBTl9ERVNDIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9PSENJX0JJR19FTkRJQU5fTU1JTyBpcyBub3Qgc2V0CkBAIC0xMDM2LDggKzE2NzUsMTAgQEAKICMgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NSBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVCBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEgaXMgbm90IHNldAorIyBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0ggaXMgbm90IHNldAogIyBDT05GSUdfVVNCX1NUT1JBR0VfS0FSTUEgaXMgbm90IHNldAotIyBDT05GSUdfVVNCX0xJQlVTVUFMIGlzIG5vdCBzZXQKKyMgQ09ORklHX1VTQl9TVE9SQUdFX0NZUFJFU1NfQVRBQ0IgaXMgbm90IHNldAorQ09ORklHX1VTQl9MSUJVU1VBTD15CiAKICMKICMgVVNCIEltYWdpbmcgZGV2aWNlcwpAQCAtMTA0OSwxMCArMTY5MCw2IEBACiAjCiAjIFVTQiBwb3J0IGRyaXZlcnMKICMKLQotIwotIyBVU0IgU2VyaWFsIENvbnZlcnRlciBzdXBwb3J0Ci0jCiAjIENPTkZJR19VU0JfU0VSSUFMIGlzIG5vdCBzZXQKIAogIwpAQCAtMTA3OCw5OCArMTcxNSwxMjYgQEAKICMgQ09ORklHX1VTQl9UUkFOQ0VWSUJSQVRPUiBpcyBub3Qgc2V0CiAjIENPTkZJR19VU0JfSU9XQVJSSU9SIGlzIG5vdCBzZXQKICMgQ09ORklHX1VTQl9URVNUIGlzIG5vdCBzZXQKLQotIwotIyBVU0IgRFNMIG1vZGVtIHN1cHBvcnQKLSMKLQotIwotIyBVU0IgR2FkZ2V0IFN1cHBvcnQKLSMKICMgQ09ORklHX1VTQl9HQURHRVQgaXMgbm90IHNldAogIyBDT05GSUdfTU1DIGlzIG5vdCBzZXQKLQotIwotIyBMRUQgZGV2aWNlcwotIwotIyBDT05GSUdfTkVXX0xFRFMgaXMgbm90IHNldAorIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAorQ09ORklHX05FV19MRURTPXkKK0NPTkZJR19MRURTX0NMQVNTPXkKIAogIwogIyBMRUQgZHJpdmVycwogIworIyBDT05GSUdfTEVEU19DTEVWT19NQUlMIGlzIG5vdCBzZXQKIAogIwogIyBMRUQgVHJpZ2dlcnMKICMKK0NPTkZJR19MRURTX1RSSUdHRVJTPXkKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9USU1FUiBpcyBub3Qgc2V0CisjIENPTkZJR19MRURTX1RSSUdHRVJfSEVBUlRCRUFUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xFRFNfVFJJR0dFUl9ERUZBVUxUX09OIGlzIG5vdCBzZXQKKyMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNldAogIyBDT05GSUdfSU5GSU5JQkFORCBpcyBub3Qgc2V0Ci0jIENPTkZJR19FREFDIGlzIG5vdCBzZXQKK0NPTkZJR19FREFDPXkKIAogIwotIyBSZWFsIFRpbWUgQ2xvY2sKKyMgUmVwb3J0aW5nIHN1YnN5c3RlbXMKICMKLSMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CisjIENPTkZJR19FREFDX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VEQUNfTU1fRURBQyBpcyBub3Qgc2V0CitDT05GSUdfUlRDX0xJQj15CitDT05GSUdfUlRDX0NMQVNTPXkKKyMgQ09ORklHX1JUQ19IQ1RPU1lTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19ERUJVRyBpcyBub3Qgc2V0CiAKICMKLSMgRE1BIEVuZ2luZSBzdXBwb3J0CisjIFJUQyBpbnRlcmZhY2VzCiAjCi0jIENPTkZJR19ETUFfRU5HSU5FIGlzIG5vdCBzZXQKK0NPTkZJR19SVENfSU5URl9TWVNGUz15CitDT05GSUdfUlRDX0lOVEZfUFJPQz15CitDT05GSUdfUlRDX0lOVEZfREVWPXkKKyMgQ09ORklHX1JUQ19JTlRGX0RFVl9VSUVfRU1VTCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1RFU1QgaXMgbm90IHNldAogCiAjCi0jIERNQSBDbGllbnRzCisjIEkyQyBSVEMgZHJpdmVycwogIworIyBDT05GSUdfUlRDX0RSVl9EUzEzMDcgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzEzNzQgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE2NzIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9NQVg2OTAwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUlM1QzM3MiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX0lTTDEyMDggaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9YMTIwNSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1BDRjg1NjMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfTTQxVDgwIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JUQ19EUlZfUzM1MzkwQSBpcyBub3Qgc2V0CisKKyMKKyMgU1BJIFJUQyBkcml2ZXJzCisjCisKKyMKKyMgUGxhdGZvcm0gUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19SVENfRFJWX0NNT1M9eQorIyBDT05GSUdfUlRDX0RSVl9EUzE1MTEgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE1NTMgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9EUzE3NDIgaXMgbm90IHNldAorIyBDT05GSUdfUlRDX0RSVl9TVEsxN1RBOCBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ4NiBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX000OFQ1OSBpcyBub3Qgc2V0CisjIENPTkZJR19SVENfRFJWX1YzMDIwIGlzIG5vdCBzZXQKKworIworIyBvbi1DUFUgUlRDIGRyaXZlcnMKKyMKK0NPTkZJR19ETUFERVZJQ0VTPXkKIAogIwogIyBETUEgRGV2aWNlcwogIwotQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKLSMgQ09ORklHX0tWTSBpcyBub3Qgc2V0Ci0KLSMKLSMgVXNlcnNwYWNlIEkvTwotIworIyBDT05GSUdfSU5URUxfSU9BVERNQSBpcyBub3Qgc2V0CiAjIENPTkZJR19VSU8gaXMgbm90IHNldAogCiAjCiAjIEZpcm13YXJlIERyaXZlcnMKICMKICMgQ09ORklHX0VERCBpcyBub3Qgc2V0CitDT05GSUdfRUZJX1ZBUlM9eQogIyBDT05GSUdfREVMTF9SQlUgaXMgbm90IHNldAogIyBDT05GSUdfRENEQkFTIGlzIG5vdCBzZXQKIENPTkZJR19ETUlJRD15CisjIENPTkZJR19JU0NTSV9JQkZUX0ZJTkQgaXMgbm90IHNldAogCiAjCiAjIEZpbGUgc3lzdGVtcwogIwotQ09ORklHX0VYVDJfRlM9eQotQ09ORklHX0VYVDJfRlNfWEFUVFI9eQotQ09ORklHX0VYVDJfRlNfUE9TSVhfQUNMPXkKLSMgQ09ORklHX0VYVDJfRlNfU0VDVVJJVFkgaXMgbm90IHNldAotIyBDT05GSUdfRVhUMl9GU19YSVAgaXMgbm90IHNldAorIyBDT05GSUdfRVhUMl9GUyBpcyBub3Qgc2V0CiBDT05GSUdfRVhUM19GUz15CiBDT05GSUdfRVhUM19GU19YQVRUUj15CiBDT05GSUdfRVhUM19GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CitDT05GSUdfRVhUM19GU19TRUNVUklUWT15CiAjIENPTkZJR19FWFQ0REVWX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19KQkQ9eQogIyBDT05GSUdfSkJEX0RFQlVHIGlzIG5vdCBzZXQKIENPTkZJR19GU19NQkNBQ0hFPXkKLUNPTkZJR19SRUlTRVJGU19GUz15Ci0jIENPTkZJR19SRUlTRVJGU19DSEVDSyBpcyBub3Qgc2V0Ci0jIENPTkZJR19SRUlTRVJGU19QUk9DX0lORk8gaXMgbm90IHNldAotQ09ORklHX1JFSVNFUkZTX0ZTX1hBVFRSPXkKLUNPTkZJR19SRUlTRVJGU19GU19QT1NJWF9BQ0w9eQotIyBDT05GSUdfUkVJU0VSRlNfRlNfU0VDVVJJVFkgaXMgbm90IHNldAorIyBDT05GSUdfUkVJU0VSRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19GU19QT1NJWF9BQ0w9eQogIyBDT05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0dGUzJfRlMgaXMgbm90IHNldAogIyBDT05GSUdfT0NGUzJfRlMgaXMgbm90IHNldAotIyBDT05GSUdfTUlOSVhfRlMgaXMgbm90IHNldAotIyBDT05GSUdfUk9NRlNfRlMgaXMgbm90IHNldAorQ09ORklHX0ROT1RJRlk9eQogQ09ORklHX0lOT1RJRlk9eQogQ09ORklHX0lOT1RJRllfVVNFUj15Ci0jIENPTkZJR19RVU9UQSBpcyBub3Qgc2V0Ci1DT05GSUdfRE5PVElGWT15CitDT05GSUdfUVVPVEE9eQorQ09ORklHX1FVT1RBX05FVExJTktfSU5URVJGQUNFPXkKKyMgQ09ORklHX1BSSU5UX1FVT1RBX1dBUk5JTkcgaXMgbm90IHNldAorIyBDT05GSUdfUUZNVF9WMSBpcyBub3Qgc2V0CitDT05GSUdfUUZNVF9WMj15CitDT05GSUdfUVVPVEFDVEw9eQogIyBDT05GSUdfQVVUT0ZTX0ZTIGlzIG5vdCBzZXQKIENPTkZJR19BVVRPRlM0X0ZTPXkKICMgQ09ORklHX0ZVU0VfRlMgaXMgbm90IHNldApAQCAtMTE4MCw3ICsxODQ1LDcgQEAKICMKIENPTkZJR19JU085NjYwX0ZTPXkKIENPTkZJR19KT0xJRVQ9eQotIyBDT05GSUdfWklTT0ZTIGlzIG5vdCBzZXQKK0NPTkZJR19aSVNPRlM9eQogIyBDT05GSUdfVURGX0ZTIGlzIG5vdCBzZXQKIAogIwpAQCAtMTE5OCwxMyArMTg2MywxMyBAQAogIwogQ09ORklHX1BST0NfRlM9eQogQ09ORklHX1BST0NfS0NPUkU9eQorQ09ORklHX1BST0NfVk1DT1JFPXkKIENPTkZJR19QUk9DX1NZU0NUTD15CiBDT05GSUdfU1lTRlM9eQogQ09ORklHX1RNUEZTPXkKIENPTkZJR19UTVBGU19QT1NJWF9BQ0w9eQogQ09ORklHX0hVR0VUTEJGUz15CiBDT05GSUdfSFVHRVRMQl9QQUdFPXkKLUNPTkZJR19SQU1GUz15CiAjIENPTkZJR19DT05GSUdGU19GUyBpcyBub3Qgc2V0CiAKICMKQEAgLTEyMTIsNiArMTg3Nyw3IEBACiAjCiAjIENPTkZJR19BREZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0FGRlNfRlMgaXMgbm90IHNldAorIyBDT05GSUdfRUNSWVBUX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hGU19GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19IRlNQTFVTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldApAQCAtMTIxOSwzMyArMTg4NSwxNSBAQAogIyBDT05GSUdfRUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0NSQU1GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX01JTklYX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0hQRlNfRlMgaXMgbm90IHNldAogIyBDT05GSUdfUU5YNEZTX0ZTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKICMgQ09ORklHX1NZU1ZfRlMgaXMgbm90IHNldAogIyBDT05GSUdfVUZTX0ZTIGlzIG5vdCBzZXQKLQotIwotIyBOZXR3b3JrIEZpbGUgU3lzdGVtcwotIwotQ09ORklHX05GU19GUz15Ci1DT05GSUdfTkZTX1YzPXkKLSMgQ09ORklHX05GU19WM19BQ0wgaXMgbm90IHNldAotIyBDT05GSUdfTkZTX1Y0IGlzIG5vdCBzZXQKLSMgQ09ORklHX05GU19ESVJFQ1RJTyBpcyBub3Qgc2V0Ci1DT05GSUdfTkZTRD15Ci1DT05GSUdfTkZTRF9WMz15Ci0jIENPTkZJR19ORlNEX1YzX0FDTCBpcyBub3Qgc2V0Ci0jIENPTkZJR19ORlNEX1Y0IGlzIG5vdCBzZXQKLUNPTkZJR19ORlNEX1RDUD15Ci1DT05GSUdfUk9PVF9ORlM9eQotQ09ORklHX0xPQ0tEPXkKLUNPTkZJR19MT0NLRF9WND15Ci1DT05GSUdfRVhQT1JURlM9eQotQ09ORklHX05GU19DT01NT049eQotQ09ORklHX1NVTlJQQz15Ci0jIENPTkZJR19TVU5SUENfQklORDM0IGlzIG5vdCBzZXQKLSMgQ09ORklHX1JQQ1NFQ19HU1NfS1JCNSBpcyBub3Qgc2V0Ci0jIENPTkZJR19SUENTRUNfR1NTX1NQS00zIGlzIG5vdCBzZXQKK0NPTkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKKyMgQ09ORklHX05GU19GUyBpcyBub3Qgc2V0CisjIENPTkZJR19ORlNEIGlzIG5vdCBzZXQKICMgQ09ORklHX1NNQl9GUyBpcyBub3Qgc2V0CiAjIENPTkZJR19DSUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX05DUF9GUyBpcyBub3Qgc2V0CkBAIC0xMjU1LDE0ICsxOTAzLDI2IEBACiAjCiAjIFBhcnRpdGlvbiBUeXBlcwogIwotIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5vdCBzZXQKK0NPTkZJR19QQVJUSVRJT05fQURWQU5DRUQ9eQorIyBDT05GSUdfQUNPUk5fUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19PU0ZfUEFSVElUSU9OPXkKK0NPTkZJR19BTUlHQV9QQVJUSVRJT049eQorIyBDT05GSUdfQVRBUklfUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19NQUNfUEFSVElUSU9OPXkKIENPTkZJR19NU0RPU19QQVJUSVRJT049eQotCi0jCi0jIE5hdGl2ZSBMYW5ndWFnZSBTdXBwb3J0Ci0jCitDT05GSUdfQlNEX0RJU0tMQUJFTD15CitDT05GSUdfTUlOSVhfU1VCUEFSVElUSU9OPXkKK0NPTkZJR19TT0xBUklTX1g4Nl9QQVJUSVRJT049eQorQ09ORklHX1VOSVhXQVJFX0RJU0tMQUJFTD15CisjIENPTkZJR19MRE1fUEFSVElUSU9OIGlzIG5vdCBzZXQKK0NPTkZJR19TR0lfUEFSVElUSU9OPXkKKyMgQ09ORklHX1VMVFJJWF9QQVJUSVRJT04gaXMgbm90IHNldAorQ09ORklHX1NVTl9QQVJUSVRJT049eQorQ09ORklHX0tBUk1BX1BBUlRJVElPTj15CitDT05GSUdfRUZJX1BBUlRJVElPTj15CisjIENPTkZJR19TWVNWNjhfUEFSVElUSU9OIGlzIG5vdCBzZXQKIENPTkZJR19OTFM9eQotQ09ORklHX05MU19ERUZBVUxUPSJpc284ODU5LTEiCitDT05GSUdfTkxTX0RFRkFVTFQ9InV0ZjgiCiBDT05GSUdfTkxTX0NPREVQQUdFXzQzNz15CiAjIENPTkZJR19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKICMgQ09ORklHX05MU19DT0RFUEFHRV83NzUgaXMgbm90IHNldApAQCAtMTI5Nyw0MCArMTk1NywzMyBAQAogIyBDT05GSUdfTkxTX0lTTzg4NTlfOSBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfSVNPODg1OV8xMyBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfSVNPODg1OV8xNCBpcyBub3Qgc2V0Ci1DT05GSUdfTkxTX0lTTzg4NTlfMTU9eQorIyBDT05GSUdfTkxTX0lTTzg4NTlfMTUgaXMgbm90IHNldAogIyBDT05GSUdfTkxTX0tPSThfUiBpcyBub3Qgc2V0CiAjIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQKIENPTkZJR19OTFNfVVRGOD15Ci0KLSMKLSMgRGlzdHJpYnV0ZWQgTG9jayBNYW5hZ2VyCi0jCiAjIENPTkZJR19ETE0gaXMgbm90IHNldAogCiAjCi0jIEluc3RydW1lbnRhdGlvbiBTdXBwb3J0Ci0jCi1DT05GSUdfUFJPRklMSU5HPXkKLUNPTkZJR19PUFJPRklMRT15Ci1DT05GSUdfS1BST0JFUz15Ci0KLSMKICMgS2VybmVsIGhhY2tpbmcKICMKIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUPXkKICMgQ09ORklHX1BSSU5US19USU1FIGlzIG5vdCBzZXQKKyMgQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQgaXMgbm90IHNldAogIyBDT05GSUdfRU5BQkxFX01VU1RfQ0hFQ0sgaXMgbm90IHNldAorQ09ORklHX0ZSQU1FX1dBUk49MjA0OAogQ09ORklHX01BR0lDX1NZU1JRPXkKLUNPTkZJR19VTlVTRURfU1lNQk9MUz15CisjIENPTkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfRlM9eQogIyBDT05GSUdfSEVBREVSU19DSEVDSyBpcyBub3Qgc2V0CiBDT05GSUdfREVCVUdfS0VSTkVMPXkKICMgQ09ORklHX0RFQlVHX1NISVJRIGlzIG5vdCBzZXQKLUNPTkZJR19ERVRFQ1RfU09GVExPQ0tVUD15CisjIENPTkZJR19ERVRFQ1RfU09GVExPQ0tVUCBpcyBub3Qgc2V0CiAjIENPTkZJR19TQ0hFRF9ERUJVRyBpcyBub3Qgc2V0Ci0jIENPTkZJR19TQ0hFRFNUQVRTIGlzIG5vdCBzZXQKK0NPTkZJR19TQ0hFRFNUQVRTPXkKIENPTkZJR19USU1FUl9TVEFUUz15Ci0jIENPTkZJR19ERUJVR19TTEFCIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX09CSkVDVFMgaXMgbm90IHNldAorIyBDT05GSUdfU0xVQl9ERUJVR19PTiBpcyBub3Qgc2V0CisjIENPTkZJR19TTFVCX1NUQVRTIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1JUX01VVEVYRVMgaXMgbm90IHNldAogIyBDT05GSUdfUlRfTVVURVhfVEVTVEVSIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBzZXQKQEAgLTEzNDQsMjggKzE5OTcsMTYyIEBACiBDT05GSUdfREVCVUdfQlVHVkVSQk9TRT15CiAjIENPTkZJR19ERUJVR19JTkZPIGlzIG5vdCBzZXQKICMgQ09ORklHX0RFQlVHX1ZNIGlzIG5vdCBzZXQKKyMgQ09ORklHX0RFQlVHX1dSSVRFQ09VTlQgaXMgbm90IHNldAogIyBDT05GSUdfREVCVUdfTElTVCBpcyBub3Qgc2V0Ci0jIENPTkZJR19GUkFNRV9QT0lOVEVSIGlzIG5vdCBzZXQKLUNPTkZJR19PUFRJTUlaRV9JTkxJTklORz15CisjIENPTkZJR19ERUJVR19TRyBpcyBub3Qgc2V0CitDT05GSUdfRlJBTUVfUE9JTlRFUj15CisjIENPTkZJR19CT09UX1BSSU5US19ERUxBWSBpcyBub3Qgc2V0CiAjIENPTkZJR19SQ1VfVE9SVFVSRV9URVNUIGlzIG5vdCBzZXQKKyMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNldAorIyBDT05GSUdfQkFDS1RSQUNFX1NFTEZfVEVTVCBpcyBub3Qgc2V0CiAjIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CiAjIENPTkZJR19GQVVMVF9JTkpFQ1RJT04gaXMgbm90IHNldAotIyBDT05GSUdfREVCVUdfUk9EQVRBIGlzIG5vdCBzZXQKLSMgQ09ORklHX0lPTU1VX0RFQlVHIGlzIG5vdCBzZXQKKyMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90IHNldAorQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQ9eQorIyBDT05GSUdfU0FNUExFUyBpcyBub3Qgc2V0CisjIENPTkZJR19LR0RCIGlzIG5vdCBzZXQKK0NPTkZJR19IQVZFX0FSQ0hfS0dEQj15CisjIENPTkZJR19OT05QUk9NSVNDX0RFVk1FTSBpcyBub3Qgc2V0CitDT05GSUdfRUFSTFlfUFJJTlRLPXkKIENPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XPXkKLSMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQKK0NPTkZJR19ERUJVR19TVEFDS19VU0FHRT15CisjIENPTkZJR19ERUJVR19QQUdFQUxMT0MgaXMgbm90IHNldAorIyBDT05GSUdfREVCVUdfUEVSX0NQVV9NQVBTIGlzIG5vdCBzZXQKKyMgQ09ORklHX1g4Nl9QVERVTVAgaXMgbm90IHNldAorQ09ORklHX0RFQlVHX1JPREFUQT15CisjIENPTkZJR19ESVJFQ1RfR0JQQUdFUyBpcyBub3Qgc2V0CisjIENPTkZJR19ERUJVR19ST0RBVEFfVEVTVCBpcyBub3Qgc2V0CitDT05GSUdfREVCVUdfTlhfVEVTVD1tCitDT05GSUdfWDg2X01QUEFSU0U9eQorIyBDT05GSUdfSU9NTVVfREVCVUcgaXMgbm90IHNldAorQ09ORklHX0lPX0RFTEFZX1RZUEVfMFg4MD0wCitDT05GSUdfSU9fREVMQVlfVFlQRV8wWEVEPTEKK0NPTkZJR19JT19ERUxBWV9UWVBFX1VERUxBWT0yCitDT05GSUdfSU9fREVMQVlfVFlQRV9OT05FPTMKK0NPTkZJR19JT19ERUxBWV8wWDgwPXkKKyMgQ09ORklHX0lPX0RFTEFZXzBYRUQgaXMgbm90IHNldAorIyBDT05GSUdfSU9fREVMQVlfVURFTEFZIGlzIG5vdCBzZXQKKyMgQ09ORklHX0lPX0RFTEFZX05PTkUgaXMgbm90IHNldAorQ09ORklHX0RFRkFVTFRfSU9fREVMQVlfVFlQRT0wCitDT05GSUdfREVCVUdfQk9PVF9QQVJBTVM9eQorIyBDT05GSUdfQ1BBX0RFQlVHIGlzIG5vdCBzZXQKIAogIwogIyBTZWN1cml0eSBvcHRpb25zCiAjCi0jIENPTkZJR19LRVlTIGlzIG5vdCBzZXQKLSMgQ09ORklHX1NFQ1VSSVRZIGlzIG5vdCBzZXQKLSMgQ09ORklHX0NSWVBUTyBpcyBub3Qgc2V0CitDT05GSUdfS0VZUz15CitDT05GSUdfS0VZU19ERUJVR19QUk9DX0tFWVM9eQorQ09ORklHX1NFQ1VSSVRZPXkKK0NPTkZJR19TRUNVUklUWV9ORVRXT1JLPXkKKyMgQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTSBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfQ0FQQUJJTElUSUVTPXkKK0NPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUz15CisjIENPTkZJR19TRUNVUklUWV9ST09UUExVRyBpcyBub3Qgc2V0CitDT05GSUdfU0VDVVJJVFlfREVGQVVMVF9NTUFQX01JTl9BRERSPTY1NTM2CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWD15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9CT09UUEFSQU09eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQk9PVFBBUkFNX1ZBTFVFPTEKK0NPTkZJR19TRUNVUklUWV9TRUxJTlVYX0RJU0FCTEU9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfREVWRUxPUD15CitDT05GSUdfU0VDVVJJVFlfU0VMSU5VWF9BVkNfU1RBVFM9eQorQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfQ0hFQ0tSRVFQUk9UX1ZBTFVFPTEKKyMgQ09ORklHX1NFQ1VSSVRZX1NFTElOVVhfRU5BQkxFX1NFQ01BUktfREVGQVVMVCBpcyBub3Qgc2V0CisjIENPTkZJR19TRUNVUklUWV9TRUxJTlVYX1BPTElDWURCX1ZFUlNJT05fTUFYIGlzIG5vdCBzZXQKKyMgQ09ORklHX1NFQ1VSSVRZX1NNQUNLIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE89eQorCisjCisjIENyeXB0byBjb3JlIG9yIGhlbHBlcgorIworQ09ORklHX0NSWVBUT19BTEdBUEk9eQorQ09ORklHX0NSWVBUT19BRUFEPXkKK0NPTkZJR19DUllQVE9fQkxLQ0lQSEVSPXkKK0NPTkZJR19DUllQVE9fSEFTSD15CitDT05GSUdfQ1JZUFRPX01BTkFHRVI9eQorIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19OVUxMIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DUllQVEQgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19BVVRIRU5DPXkKKyMgQ09ORklHX0NSWVBUT19URVNUIGlzIG5vdCBzZXQKKworIworIyBBdXRoZW50aWNhdGVkIEVuY3J5cHRpb24gd2l0aCBBc3NvY2lhdGVkIERhdGEKKyMKKyMgQ09ORklHX0NSWVBUT19DQ00gaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0dDTSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAorCisjCisjIEJsb2NrIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0NCQz15CisjIENPTkZJR19DUllQVE9fQ1RSIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DVFMgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19FQ0I9eQorIyBDT05GSUdfQ1JZUFRPX0xSVyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fWFRTIGlzIG5vdCBzZXQKKworIworIyBIYXNoIG1vZGVzCisjCitDT05GSUdfQ1JZUFRPX0hNQUM9eQorIyBDT05GSUdfQ1JZUFRPX1hDQkMgaXMgbm90IHNldAorCisjCisjIERpZ2VzdAorIworIyBDT05GSUdfQ1JZUFRPX0NSQzMyQyBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fTUQ1PXkKKyMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CitDT05GSUdfQ1JZUFRPX1NIQTE9eQorIyBDT05GSUdfQ1JZUFRPX1NIQTI1NiBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0hBNTEyIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UR1IxOTIgaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX1dQNTEyIGlzIG5vdCBzZXQKKworIworIyBDaXBoZXJzCisjCitDT05GSUdfQ1JZUFRPX0FFUz15CisjIENPTkZJR19DUllQVE9fQUVTX1g4Nl82NCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQU5VQklTIGlzIG5vdCBzZXQKK0NPTkZJR19DUllQVE9fQVJDND15CisjIENPTkZJR19DUllQVE9fQkxPV0ZJU0ggaXMgbm90IHNldAorIyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19DQVNUNSBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fQ0FTVDYgaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19ERVM9eQorIyBDT05GSUdfQ1JZUFRPX0ZDUllQVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19TQUxTQTIwX1g4Nl82NCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fU0VSUEVOVCBpcyBub3Qgc2V0CisjIENPTkZJR19DUllQVE9fVEVBIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19UV09GSVNIX1g4Nl82NCBpcyBub3Qgc2V0CisKKyMKKyMgQ29tcHJlc3Npb24KKyMKKyMgQ09ORklHX0NSWVBUT19ERUZMQVRFIGlzIG5vdCBzZXQKKyMgQ09ORklHX0NSWVBUT19MWk8gaXMgbm90IHNldAorQ09ORklHX0NSWVBUT19IVz15CisjIENPTkZJR19DUllQVE9fREVWX0hJRk5fNzk1WCBpcyBub3Qgc2V0CitDT05GSUdfSEFWRV9LVk09eQorQ09ORklHX1ZJUlRVQUxJWkFUSU9OPXkKKyMgQ09ORklHX0tWTSBpcyBub3Qgc2V0CisjIENPTkZJR19WSVJUSU9fUENJIGlzIG5vdCBzZXQKKyMgQ09ORklHX1ZJUlRJT19CQUxMT09OIGlzIG5vdCBzZXQKIAogIwogIyBMaWJyYXJ5IHJvdXRpbmVzCiAjCiBDT05GSUdfQklUUkVWRVJTRT15CitDT05GSUdfR0VORVJJQ19GSU5EX0ZJUlNUX0JJVD15CitDT05GSUdfR0VORVJJQ19GSU5EX05FWFRfQklUPXkKICMgQ09ORklHX0NSQ19DQ0lUVCBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkMxNiBpcyBub3Qgc2V0CiAjIENPTkZJR19DUkNfSVRVX1QgaXMgbm90IHNldApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaWEzMi9pYTMyZW50cnkuUyBiL2FyY2gveDg2L2lhMzIvaWEzMmVudHJ5LlMKaW5kZXggYjVlMzI5ZC4uMjAzNzFkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaWEzMi9pYTMyZW50cnkuUworKysgYi9hcmNoL3g4Ni9pYTMyL2lhMzJlbnRyeS5TCkBAIC02MSw2ICs2MSwxOSBAQAogCUNGSV9VTkRFRklORUQJcjE1CiAJLmVuZG0KIAorI2lmZGVmIENPTkZJR19QQVJBVklSVAorRU5UUlkobmF0aXZlX3VzZXJnc19zeXNyZXQzMikKKwlzd2FwZ3MKKwlzeXNyZXRsCitFTkRQUk9DKG5hdGl2ZV91c2VyZ3Nfc3lzcmV0MzIpCisKK0VOVFJZKG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2V4aXQpCisJc3dhcGdzCisJc3RpCisJc3lzZXhpdAorRU5EUFJPQyhuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KQorI2VuZGlmCisKIC8qCiAgKiAzMmJpdCBTWVNFTlRFUiBpbnN0cnVjdGlvbiBlbnRyeS4KICAqCkBAIC04NSwxNCArOTgsMTQgQEAKIAlDRklfU0lHTkFMX0ZSQU1FCiAJQ0ZJX0RFRl9DRkEJcnNwLDAKIAlDRklfUkVHSVNURVIJcnNwLHJicAotCXN3YXBncworCVNXQVBHU19VTlNBRkVfU1RBQ0sKIAltb3ZxCSVnczpwZGFfa2VybmVsc3RhY2ssICVyc3AKIAlhZGRxCSQoUERBX1NUQUNLT0ZGU0VUKSwlcnNwCQogCS8qCiAJICogTm8gbmVlZCB0byBmb2xsb3cgdGhpcyBpcnFzIG9uL29mZiBzZWN0aW9uOiB0aGUgc3lzY2FsbAogCSAqIGRpc2FibGVkIGlycXMsIGhlcmUgd2UgZW5hYmxlIGl0IHN0cmFpZ2h0IGFmdGVyIGVudHJ5OgogCSAqLwotCXN0aQkKKwlFTkFCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAgCW1vdmwJJWVicCwlZWJwCQkvKiB6ZXJvIGV4dGVuc2lvbiAqLwogCXB1c2hxCSRfX1VTRVIzMl9EUwogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CkBAIC0xMDMsNyArMTE2LDcgQEAKIAlwdXNoZnEKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAogCS8qQ0ZJX1JFTF9PRkZTRVQgcmZsYWdzLDAqLwotCW1vdmwJOCozLVRIUkVBRF9TSVpFK3RocmVhZGluZm9fc3lzZW50ZXJfcmV0dXJuKCVyc3ApLCAlcjEwZAorCW1vdmwJOCozLVRIUkVBRF9TSVpFK1RJX3N5c2VudGVyX3JldHVybiglcnNwKSwgJXIxMGQKIAlDRklfUkVHSVNURVIgcmlwLHIxMAogCXB1c2hxCSRfX1VTRVIzMl9DUwogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CkBAIC0xMjMsOCArMTM2LDkgQEAKICAJLnF1YWQgMWIsaWEzMl9iYWRhcmcKICAJLnByZXZpb3VzCQogCUdFVF9USFJFQURfSU5GTyglcjEwKQotCW9ybCAgICAkVFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyMTApCi0JdGVzdGwgICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLHRocmVhZGluZm9fZmxhZ3MoJXIxMCkKKwlvcmwgICAgJFRTX0NPTVBBVCxUSV9zdGF0dXMoJXIxMCkKKwl0ZXN0bCAgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksIFwKKwkJIFRJX2ZsYWdzKCVyMTApCiAJQ0ZJX1JFTUVNQkVSX1NUQVRFCiAJam56ICBzeXNlbnRlcl90cmFjZXN5cwogc3lzZW50ZXJfZG9fY2FsbDoJCkBAIC0xMzQsMTEgKzE0OCwxMSBAQAogCWNhbGwJKmlhMzJfc3lzX2NhbGxfdGFibGUoLCVyYXgsOCkKIAltb3ZxCSVyYXgsUkFYLUFSR09GRlNFVCglcnNwKQogCUdFVF9USFJFQURfSU5GTyglcjEwKQotCWNsaQorCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJVFJBQ0VfSVJRU19PRkYKLQl0ZXN0bAkkX1RJRl9BTExXT1JLX01BU0ssdGhyZWFkaW5mb19mbGFncyglcjEwKQorCXRlc3RsCSRfVElGX0FMTFdPUktfTUFTSyxUSV9mbGFncyglcjEwKQogCWpueglpbnRfcmV0X2Zyb21fc3lzX2NhbGwKLQlhbmRsICAgICR+VFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyMTApCisJYW5kbCAgICAkflRTX0NPTVBBVCxUSV9zdGF0dXMoJXIxMCkKIAkvKiBjbGVhciBJRiwgdGhhdCBwb3BmcSBkb2Vzbid0IGVuYWJsZSBpbnRlcnJ1cHRzIGVhcmx5ICovCiAJYW5kbCAgJH4weDIwMCxFRkxBR1MtUjExKCVyc3ApIAogCW1vdmwJUklQLVIxMSglcnNwKSwlZWR4CQkvKiBVc2VyICVlaXAgKi8KQEAgLTE1MSwxMCArMTY1LDcgQEAKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTgKIAlDRklfUkVHSVNURVIgcnNwLHJjeAogCVRSQUNFX0lSUVNfT04KLQlzd2FwZ3MKLQlzdGkJCS8qIHN0aSBvbmx5IHRha2VzIGVmZmVjdCBhZnRlciB0aGUgbmV4dCBpbnN0cnVjdGlvbiAqLwotCS8qIHN5c2V4aXQgKi8KLQkuYnl0ZQkweGYsIDB4MzUKKwlFTkFCTEVfSU5URVJSVVBUU19TWVNFWElUMzIKIAogc3lzZW50ZXJfdHJhY2VzeXM6CiAJQ0ZJX1JFU1RPUkVfU1RBVEUKQEAgLTIwMCw3ICsyMTEsNyBAQAogCUNGSV9ERUZfQ0ZBCXJzcCxQREFfU1RBQ0tPRkZTRVQKIAlDRklfUkVHSVNURVIJcmlwLHJjeAogCS8qQ0ZJX1JFR0lTVEVSCXJmbGFncyxyMTEqLwotCXN3YXBncworCVNXQVBHU19VTlNBRkVfU1RBQ0sKIAltb3ZsCSVlc3AsJXI4ZAogCUNGSV9SRUdJU1RFUglyc3AscjgKIAltb3ZxCSVnczpwZGFfa2VybmVsc3RhY2ssJXJzcApAQCAtMjA4LDcgKzIxOSw3IEBACiAJICogTm8gbmVlZCB0byBmb2xsb3cgdGhpcyBpcnFzIG9uL29mZiBzZWN0aW9uOiB0aGUgc3lzY2FsbAogCSAqIGRpc2FibGVkIGlycXMgYW5kIGhlcmUgd2UgZW5hYmxlIGl0IHN0cmFpZ2h0IGFmdGVyIGVudHJ5OgogCSAqLwotCXN0aQorCUVOQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlTQVZFX0FSR1MgOCwxLDEKIAltb3ZsIAklZWF4LCVlYXgJLyogemVybyBleHRlbnNpb24gKi8KIAltb3ZxCSVyYXgsT1JJR19SQVgtQVJHT0ZGU0VUKCVyc3ApCkBAIC0yMzAsOCArMjQxLDkgQEAKIAkucXVhZCAxYixpYTMyX2JhZGFyZwogCS5wcmV2aW91cwkKIAlHRVRfVEhSRUFEX0lORk8oJXIxMCkKLQlvcmwgICAkVFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyMTApCi0JdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksdGhyZWFkaW5mb19mbGFncyglcjEwKQorCW9ybCAgICRUU19DT01QQVQsVElfc3RhdHVzKCVyMTApCisJdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksIFwKKwkJVElfZmxhZ3MoJXIxMCkKIAlDRklfUkVNRU1CRVJfU1RBVEUKIAlqbnogICBjc3Rhcl90cmFjZXN5cwogY3N0YXJfZG9fY2FsbDoJCkBAIC0yNDEsMTEgKzI1MywxMSBAQAogCWNhbGwgKmlhMzJfc3lzX2NhbGxfdGFibGUoLCVyYXgsOCkKIAltb3ZxICVyYXgsUkFYLUFSR09GRlNFVCglcnNwKQogCUdFVF9USFJFQURfSU5GTyglcjEwKQotCWNsaQorCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJVFJBQ0VfSVJRU19PRkYKLQl0ZXN0bCAkX1RJRl9BTExXT1JLX01BU0ssdGhyZWFkaW5mb19mbGFncyglcjEwKQorCXRlc3RsICRfVElGX0FMTFdPUktfTUFTSyxUSV9mbGFncyglcjEwKQogCWpueiAgaW50X3JldF9mcm9tX3N5c19jYWxsCi0JYW5kbCAkflRTX0NPTVBBVCx0aHJlYWRpbmZvX3N0YXR1cyglcjEwKQorCWFuZGwgJH5UU19DT01QQVQsVElfc3RhdHVzKCVyMTApCiAJUkVTVE9SRV9BUkdTIDEsLUFSR19TS0lQLDEsMSwxCiAJbW92bCBSSVAtQVJHT0ZGU0VUKCVyc3ApLCVlY3gKIAlDRklfUkVHSVNURVIgcmlwLHJjeApAQCAtMjU0LDggKzI2Niw3IEBACiAJVFJBQ0VfSVJRU19PTgogCW1vdmwgUlNQLUFSR09GRlNFVCglcnNwKSwlZXNwCiAJQ0ZJX1JFU1RPUkUgcnNwCi0Jc3dhcGdzCi0Jc3lzcmV0bAorCVVTRVJHU19TWVNSRVQzMgogCQogY3N0YXJfdHJhY2VzeXM6CQogCUNGSV9SRVNUT1JFX1NUQVRFCkBAIC0zMTAsMTIgKzMyMSwxMiBAQAogCS8qQ0ZJX1JFTF9PRkZTRVQJcmZsYWdzLEVGTEFHUy1SSVAqLwogCS8qQ0ZJX1JFTF9PRkZTRVQJY3MsQ1MtUklQKi8KIAlDRklfUkVMX09GRlNFVAlyaXAsUklQLVJJUAotCXN3YXBncworCVNXQVBHUwogCS8qCiAJICogTm8gbmVlZCB0byBmb2xsb3cgdGhpcyBpcnFzIG9uL29mZiBzZWN0aW9uOiB0aGUgc3lzY2FsbAogCSAqIGRpc2FibGVkIGlycXMgYW5kIGhlcmUgd2UgZW5hYmxlIGl0IHN0cmFpZ2h0IGFmdGVyIGVudHJ5OgogCSAqLwotCXN0aQorCUVOQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAltb3ZsICVlYXgsJWVheAogCXB1c2hxICVyYXgKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOApAQCAtMzI0LDggKzMzNSw5IEBACiAJICAgdGhpcyBjb3VsZCBiZSBhIHByb2JsZW0uICovCiAJU0FWRV9BUkdTIDAsMCwxCiAJR0VUX1RIUkVBRF9JTkZPKCVyMTApCi0Jb3JsICAgJFRTX0NPTVBBVCx0aHJlYWRpbmZvX3N0YXR1cyglcjEwKQotCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLHRocmVhZGluZm9fZmxhZ3MoJXIxMCkKKwlvcmwgICAkVFNfQ09NUEFULFRJX3N0YXR1cyglcjEwKQorCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NFQ0NPTVApLCBcCisJCVRJX2ZsYWdzKCVyMTApCiAJam56IGlhMzJfdHJhY2VzeXMKIGlhMzJfZG9fc3lzY2FsbDoJCiAJY21wbCAkKElBMzJfTlJfc3lzY2FsbHMtMSksJWVheApAQCAtMzcwLDEzICszODIsMTEgQEAKIAlQVFJFR1NDQUxMIHN0dWIzMl9ydF9zaWdyZXR1cm4sIHN5czMyX3J0X3NpZ3JldHVybiwgJXJkaQogCVBUUkVHU0NBTEwgc3R1YjMyX3NpZ3JldHVybiwgc3lzMzJfc2lncmV0dXJuLCAlcmRpCiAJUFRSRUdTQ0FMTCBzdHViMzJfc2lnYWx0c3RhY2ssIHN5czMyX3NpZ2FsdHN0YWNrLCAlcmR4Ci0JUFRSRUdTQ0FMTCBzdHViMzJfc2lnc3VzcGVuZCwgc3lzMzJfc2lnc3VzcGVuZCwgJXJjeAogCVBUUkVHU0NBTEwgc3R1YjMyX2V4ZWN2ZSwgc3lzMzJfZXhlY3ZlLCAlcmN4CiAJUFRSRUdTQ0FMTCBzdHViMzJfZm9yaywgc3lzX2ZvcmssICVyZGkKIAlQVFJFR1NDQUxMIHN0dWIzMl9jbG9uZSwgc3lzMzJfY2xvbmUsICVyZHgKIAlQVFJFR1NDQUxMIHN0dWIzMl92Zm9yaywgc3lzX3Zmb3JrLCAlcmRpCiAJUFRSRUdTQ0FMTCBzdHViMzJfaW9wbCwgc3lzX2lvcGwsICVyc2kKLQlQVFJFR1NDQUxMIHN0dWIzMl9ydF9zaWdzdXNwZW5kLCBzeXNfcnRfc2lnc3VzcGVuZCwgJXJkeAogCiBFTlRSWShpYTMyX3B0cmVnc19jb21tb24pCiAJcG9wcSAlcjExCkBAIC00NzYsNyArNDg2LDcgQEAKIAkucXVhZCBzeXNfc3NldG1hc2sKIAkucXVhZCBzeXNfc2V0cmV1aWQxNgkvKiA3MCAqLwogCS5xdWFkIHN5c19zZXRyZWdpZDE2Ci0JLnF1YWQgc3R1YjMyX3NpZ3N1c3BlbmQKKwkucXVhZCBzeXMzMl9zaWdzdXNwZW5kCiAJLnF1YWQgY29tcGF0X3N5c19zaWdwZW5kaW5nCiAJLnF1YWQgc3lzX3NldGhvc3RuYW1lCiAJLnF1YWQgY29tcGF0X3N5c19zZXRybGltaXQJLyogNzUgKi8KQEAgLTU4Myw3ICs1OTMsNyBAQAogCS5xdWFkIHN5czMyX3J0X3NpZ3BlbmRpbmcKIAkucXVhZCBjb21wYXRfc3lzX3J0X3NpZ3RpbWVkd2FpdAogCS5xdWFkIHN5czMyX3J0X3NpZ3F1ZXVlaW5mbwotCS5xdWFkIHN0dWIzMl9ydF9zaWdzdXNwZW5kCisJLnF1YWQgc3lzX3J0X3NpZ3N1c3BlbmQKIAkucXVhZCBzeXMzMl9wcmVhZAkJLyogMTgwICovCiAJLnF1YWQgc3lzMzJfcHdyaXRlCiAJLnF1YWQgc3lzX2Nob3duMTYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC8uZ2l0aWdub3JlIGIvYXJjaC94ODYva2VybmVsLy5naXRpZ25vcmUKaW5kZXggNGVhMzhhMy4uMDhmNGZkNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsLy5naXRpZ25vcmUKKysrIGIvYXJjaC94ODYva2VybmVsLy5naXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACiB2c3lzY2FsbC5sZHMKIHZzeXNjYWxsXzMyLmxkcwordm1saW51eC5sZHMKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZSBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQppbmRleCA1ZTYxOGMzLi41MTEyYzg0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYva2VybmVsL01ha2VmaWxlCkBAIC0yLDEwICsyLDE3IEBACiAjIE1ha2VmaWxlIGZvciB0aGUgbGludXgga2VybmVsLgogIwogCi1leHRyYS15ICAgICAgICAgICAgICAgIDo9IGhlYWRfJChCSVRTKS5vIGhlYWQkKEJJVFMpLm8gaW5pdF90YXNrLm8gdm1saW51eC5sZHMKK2V4dHJhLXkgICAgICAgICAgICAgICAgOj0gaGVhZF8kKEJJVFMpLm8gaGVhZCQoQklUUykubyBoZWFkLm8gaW5pdF90YXNrLm8gdm1saW51eC5sZHMKIAogQ1BQRkxBR1Nfdm1saW51eC5sZHMgKz0gLVUkKFVUU19NQUNISU5FKQogCitpZmRlZiBDT05GSUdfRlRSQUNFCisjIERvIG5vdCBwcm9maWxlIGRlYnVnIHV0aWxpdGllcworQ0ZMQUdTX1JFTU9WRV90c2NfNjQubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV90c2NfMzIubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9ydGMubyA9IC1wZworZW5kaWYKKwogIwogIyB2c3lzY2FsbHMgKHdoaWNoIHdvcmsgb24gdGhlIHVzZXIgc3RhY2spIHNob3VsZCBoYXZlCiAjIG5vIHN0YWNrLXByb3RlY3RvciBjaGVja3M6CkBAIC0xMywyMCArMjAsMjEgQEAKIG5vc3RhY2twIDo9ICQoY2FsbCBjYy1vcHRpb24sIC1mbm8tc3RhY2stcHJvdGVjdG9yKQogQ0ZMQUdTX3ZzeXNjYWxsXzY0Lm8JOj0gJChQUk9GSUxJTkcpIC1nMCAkKG5vc3RhY2twKQogQ0ZMQUdTX2hwZXQubwkJOj0gJChub3N0YWNrcCkKLUNGTEFHU190c2NfNjQubwkJOj0gJChub3N0YWNrcCkKK0NGTEFHU190c2MubwkJOj0gJChub3N0YWNrcCkKIAogb2JqLXkJCQk6PSBwcm9jZXNzXyQoQklUUykubyBzaWduYWxfJChCSVRTKS5vIGVudHJ5XyQoQklUUykubwogb2JqLXkJCQkrPSB0cmFwc18kKEJJVFMpLm8gaXJxXyQoQklUUykubwogb2JqLXkJCQkrPSB0aW1lXyQoQklUUykubyBpb3BvcnQubyBsZHQubwotb2JqLXkJCQkrPSBzZXR1cF8kKEJJVFMpLm8gaTgyNTlfJChCSVRTKS5vIHNldHVwLm8KK29iai15CQkJKz0gc2V0dXAubyBpODI1OS5vIGlycWluaXRfJChCSVRTKS5vIHNldHVwX3BlcmNwdS5vCitvYmotJChDT05GSUdfWDg2X1ZJU1dTKQkrPSB2aXN3c19xdWlya3Mubworb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gcHJvYmVfcm9tc18zMi5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBzeXNfaTM4Nl8zMi5vIGkzODZfa3N5bXNfMzIubwogb2JqLSQoQ09ORklHX1g4Nl82NCkJKz0gc3lzX3g4Nl82NC5vIHg4NjY0X2tzeW1zXzY0Lm8KLW9iai0kKENPTkZJR19YODZfNjQpCSs9IHN5c2NhbGxfNjQubyB2c3lzY2FsbF82NC5vIHNldHVwNjQubwotb2JqLXkJCQkrPSBib290ZmxhZy5vIGU4MjBfJChCSVRTKS5vCitvYmotJChDT05GSUdfWDg2XzY0KQkrPSBzeXNjYWxsXzY0Lm8gdnN5c2NhbGxfNjQubworb2JqLXkJCQkrPSBib290ZmxhZy5vIGU4MjAubwogb2JqLXkJCQkrPSBwY2ktZG1hLm8gcXVpcmtzLm8gaTgyMzcubyB0b3BvbG9neS5vIGtkZWJ1Z2ZzLm8KIG9iai15CQkJKz0gYWx0ZXJuYXRpdmUubyBpODI1My5vIHBjaS1ub21tdS5vCi1vYmotJChDT05GSUdfWDg2XzY0KQkrPSBidWdzXzY0Lm8KLW9iai15CQkJKz0gdHNjXyQoQklUUykubyBpb19kZWxheS5vIHJ0Yy5vCitvYmoteQkJCSs9IHRzYy5vIGlvX2RlbGF5Lm8gcnRjLm8KIAogb2JqLSQoQ09ORklHX1g4Nl9UUkFNUE9MSU5FKQkrPSB0cmFtcG9saW5lLm8KIG9iai15CQkJCSs9IHByb2Nlc3MubwpAQCAtNTMsOSArNjEsMTAgQEAKIG9iai0kKENPTkZJR19YODZfNjRfU01QKQkrPSB0c2Nfc3luYy5vIHNtcGNvbW1vbi5vCiBvYmotJChDT05GSUdfWDg2X1RSQU1QT0xJTkUpCSs9IHRyYW1wb2xpbmVfJChCSVRTKS5vCiBvYmotJChDT05GSUdfWDg2X01QUEFSU0UpCSs9IG1wcGFyc2Uubwotb2JqLSQoQ09ORklHX1g4Nl9MT0NBTF9BUElDKQkrPSBhcGljXyQoQklUUykubyBubWlfJChCSVRTKS5vCitvYmotJChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpCSs9IGFwaWNfJChCSVRTKS5vIG5taS5vCiBvYmotJChDT05GSUdfWDg2X0lPX0FQSUMpCSs9IGlvX2FwaWNfJChCSVRTKS5vCiBvYmotJChDT05GSUdfWDg2X1JFQk9PVEZJWFVQUykJKz0gcmVib290X2ZpeHVwc18zMi5vCitvYmotJChDT05GSUdfRFlOQU1JQ19GVFJBQ0UpCSs9IGZ0cmFjZS5vCiBvYmotJChDT05GSUdfS0VYRUMpCQkrPSBtYWNoaW5lX2tleGVjXyQoQklUUykubwogb2JqLSQoQ09ORklHX0tFWEVDKQkJKz0gcmVsb2NhdGVfa2VybmVsXyQoQklUUykubyBjcmFzaC5vCiBvYmotJChDT05GSUdfQ1JBU0hfRFVNUCkJKz0gY3Jhc2hfZHVtcF8kKEJJVFMpLm8KQEAgLTY0LDcgKzczLDYgQEAKIG9iai15CQkJCSs9IHZzbXBfNjQubwogb2JqLSQoQ09ORklHX0tQUk9CRVMpCQkrPSBrcHJvYmVzLm8KIG9iai0kKENPTkZJR19NT0RVTEVTKQkJKz0gbW9kdWxlXyQoQklUUykubwotb2JqLSQoQ09ORklHX0FDUElfU1JBVCkgCSs9IHNyYXRfMzIubwogb2JqLSQoQ09ORklHX0VGSSkgCQkrPSBlZmkubyBlZmlfJChCSVRTKS5vIGVmaV9zdHViXyQoQklUUykubwogb2JqLSQoQ09ORklHX0RPVUJMRUZBVUxUKSAJKz0gZG91YmxlZmF1bHRfMzIubwogb2JqLSQoQ09ORklHX0tHREIpCQkrPSBrZ2RiLm8KQEAgLTgyLDYgKzkwLDcgQEAKIG9iai0kKENPTkZJR19LVk1fR1VFU1QpCQkrPSBrdm0ubwogb2JqLSQoQ09ORklHX0tWTV9DTE9DSykJCSs9IGt2bWNsb2NrLm8KIG9iai0kKENPTkZJR19QQVJBVklSVCkJCSs9IHBhcmF2aXJ0Lm8gcGFyYXZpcnRfcGF0Y2hfJChCSVRTKS5vCitvYmotJChDT05GSUdfUEFSQVZJUlRfQ0xPQ0spCSs9IHB2Y2xvY2subwogCiBvYmotJChDT05GSUdfUENTUEtSX1BMQVRGT1JNKQkrPSBwY3NwZWFrZXIubwogCkBAIC05MywxMiArMTAyLDEzIEBACiAjIyMKICMgNjQgYml0IHNwZWNpZmljIGZpbGVzCiBpZmVxICgkKENPTkZJR19YODZfNjQpLHkpCi0gICAgICAgIG9iai15CQkJCSs9IGdlbmFwaWNfNjQubyBnZW5hcGljX2ZsYXRfNjQubyBnZW54MmFwaWNfdXZfeC5vCisgICAgICAgIG9iai15CQkJCSs9IGdlbmFwaWNfNjQubyBnZW5hcGljX2ZsYXRfNjQubyBnZW54MmFwaWNfdXZfeC5vIHRsYl91di5vCiAgICAgICAgIG9iai0kKENPTkZJR19YODZfUE1fVElNRVIpCSs9IHBtdGltZXJfNjQubwogICAgICAgICBvYmotJChDT05GSUdfQVVESVQpCQkrPSBhdWRpdF82NC5vCiAKICAgICAgICAgb2JqLSQoQ09ORklHX0dBUlRfSU9NTVUpCSs9IHBjaS1nYXJ0XzY0Lm8gYXBlcnR1cmVfNjQubwogICAgICAgICBvYmotJChDT05GSUdfQ0FMR0FSWV9JT01NVSkJKz0gcGNpLWNhbGdhcnlfNjQubyB0Y2VfNjQubworICAgICAgICBvYmotJChDT05GSUdfQU1EX0lPTU1VKQkJKz0gYW1kX2lvbW11X2luaXQubyBhbWRfaW9tbXUubwogICAgICAgICBvYmotJChDT05GSUdfU1dJT1RMQikJCSs9IHBjaS1zd2lvdGxiXzY0Lm8KIAogICAgICAgICBvYmotJChDT05GSUdfUENJX01NQ09ORklHKQkrPSBtbWNvbmYtZmFtMTBoXzY0Lm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL2Jvb3QuYyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL2Jvb3QuYwppbmRleCBjNDllYmNjLi5mNDg5ZDdhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvYm9vdC5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CiAjaW5jbHVkZSA8YXNtL3NtcC5oPgpAQCAtMTA2LDIxICsxMDcsNiBAQAogICovCiBlbnVtIGFjcGlfaXJxX21vZGVsX2lkIGFjcGlfaXJxX21vZGVsID0gQUNQSV9JUlFfTU9ERUxfUElDOwogCi0jaWZkZWYJQ09ORklHX1g4Nl82NAotCi0vKiByZWx5IG9uIGFsbCBBQ1BJIHRhYmxlcyBiZWluZyBpbiB0aGUgZGlyZWN0IG1hcHBpbmcgKi8KLWNoYXIgKl9faW5pdCBfX2FjcGlfbWFwX3RhYmxlKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCi17Ci0JaWYgKCFwaHlzX2FkZHIgfHwgIXNpemUpCi0JCXJldHVybiBOVUxMOwotCi0JaWYgKHBoeXNfYWRkcitzaXplIDw9IChtYXhfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSArIFBBR0VfU0laRSkKLQkJcmV0dXJuIF9fdmEocGh5c19hZGRyKTsKLQotCXJldHVybiBOVUxMOwotfQotCi0jZWxzZQogCiAvKgogICogVGVtcG9yYXJpbHkgdXNlIHRoZSB2aXJ0dWFsIGFyZWEgc3RhcnRpbmcgZnJvbSBGSVhfSU9fQVBJQ19CQVNFX0VORCwKQEAgLTEzOSwxMSArMTI1LDE1IEBACiAJdW5zaWduZWQgbG9uZyBiYXNlLCBvZmZzZXQsIG1hcHBlZF9zaXplOwogCWludCBpZHg7CiAKLQlpZiAocGh5cyArIHNpemUgPCA4ICogMTAyNCAqIDEwMjQpCisJaWYgKCFwaHlzIHx8ICFzaXplKQorCQlyZXR1cm4gTlVMTDsKKworCWlmIChwaHlzK3NpemUgPD0gKG1heF9sb3dfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSkKIAkJcmV0dXJuIF9fdmEocGh5cyk7CiAKIAlvZmZzZXQgPSBwaHlzICYgKFBBR0VfU0laRSAtIDEpOwogCW1hcHBlZF9zaXplID0gUEFHRV9TSVpFIC0gb2Zmc2V0OworCWNsZWFyX2ZpeG1hcChGSVhfQUNQSV9FTkQpOwogCXNldF9maXhtYXAoRklYX0FDUElfRU5ELCBwaHlzKTsKIAliYXNlID0gZml4X3RvX3ZpcnQoRklYX0FDUElfRU5EKTsKIApAQCAtMTU1LDEzICsxNDUsMTMgQEAKIAkJaWYgKC0taWR4IDwgRklYX0FDUElfQkVHSU4pCiAJCQlyZXR1cm4gTlVMTDsJLyogY2Fubm90IGhhbmRsZSB0aGlzICovCiAJCXBoeXMgKz0gUEFHRV9TSVpFOworCQljbGVhcl9maXhtYXAoaWR4KTsKIAkJc2V0X2ZpeG1hcChpZHgsIHBoeXMpOwogCQltYXBwZWRfc2l6ZSArPSBQQUdFX1NJWkU7CiAJfQogCiAJcmV0dXJuICgodW5zaWduZWQgY2hhciAqKWJhc2UgKyBvZmZzZXQpOwogfQotI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCiAvKiBUaGUgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgTU1DT05GSUcgYXBlcnR1cmUuICBTZXQgZnJvbSBBQ1BJIHRhYmxlcy4gKi8KQEAgLTI0MiwxMiArMjMyLDE5IEBACiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBhY3BpX3JlZ2lzdGVyX2xhcGljKGludCBpZCwgdTggZW5hYmxlZCkKIHsKKwl1bnNpZ25lZCBpbnQgdmVyID0gMDsKKwogCWlmICghZW5hYmxlZCkgewogCQkrK2Rpc2FibGVkX2NwdXM7CiAJCXJldHVybjsKIAl9CiAKLQlnZW5lcmljX3Byb2Nlc3Nvcl9pbmZvKGlkLCAwKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJaWYgKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCAhPSAtMVUpCisJCXZlciA9IGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdOworI2VuZGlmCisKKwlnZW5lcmljX3Byb2Nlc3Nvcl9pbmZvKGlkLCB2ZXIpOwogfQogCiBzdGF0aWMgaW50IF9faW5pdApAQCAtMzMxLDggKzMyOCw2IEBACiAKICNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAotc3RydWN0IG1wX2lvYXBpY19yb3V0aW5nIG1wX2lvYXBpY19yb3V0aW5nW01BWF9JT19BUElDU107Ci0KIHN0YXRpYyBpbnQgX19pbml0CiBhY3BpX3BhcnNlX2lvYXBpYyhzdHJ1Y3QgYWNwaV9zdWJ0YWJsZV9oZWFkZXIgKiBoZWFkZXIsIGNvbnN0IHVuc2lnbmVkIGxvbmcgZW5kKQogewpAQCAtNTA3LDggKzUwMiw2IEBACiAJICogTWFrZSBzdXJlIGFsbCAobGVnYWN5KSBQQ0kgSVJRcyBhcmUgc2V0IGFzIGxldmVsLXRyaWdnZXJlZC4KIAkgKi8KIAlpZiAoYWNwaV9pcnFfbW9kZWwgPT0gQUNQSV9JUlFfTU9ERUxfUElDKSB7Ci0JCWV4dGVybiB2b2lkIGVpc2Ffc2V0X2xldmVsX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLQogCQlpZiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkKIAkJCWVpc2Ffc2V0X2xldmVsX2lycShnc2kpOwogCX0KQEAgLTc2Nyw4ICs3NjAsMTMgQEAKIAltcF9sYXBpY19hZGRyID0gYWRkcmVzczsKIAogCXNldF9maXhtYXBfbm9jYWNoZShGSVhfQVBJQ19CQVNFLCBhZGRyZXNzKTsKLQlpZiAoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID09IC0xVSkKKwlpZiAoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID09IC0xVSkgewogCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgID0gR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpOworI2lmZGVmIENPTkZJR19YODZfMzIKKwkJYXBpY192ZXJzaW9uW2Jvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZF0gPQorCQkJIEdFVF9BUElDX1ZFUlNJT04oYXBpY19yZWFkKEFQSUNfTFZSKSk7CisjZW5kaWYKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X2FjcGlfcGFyc2VfbWFkdF9sYXBpY19hZGRyX292cih2b2lkKQpAQCAtODQ4LDYgKzg0NiwzNjQgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmCUNPTkZJR19YODZfSU9fQVBJQworI2RlZmluZSBNUF9JU0FfQlVTCQkwCisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorZXh0ZXJuIGludCBlczcwMDBfcGxhdDsKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IHsKKwlpbnQgYXBpY19pZDsKKwlpbnQgZ3NpX2Jhc2U7CisJaW50IGdzaV9lbmQ7CisJREVDTEFSRV9CSVRNQVAocGluX3Byb2dyYW1tZWQsIE1QX01BWF9JT0FQSUNfUElOICsgMSk7Cit9IG1wX2lvYXBpY19yb3V0aW5nW01BWF9JT19BUElDU107CisKK3N0YXRpYyBpbnQgbXBfZmluZF9pb2FwaWMoaW50IGdzaSkKK3sKKwlpbnQgaSA9IDA7CisKKwkvKiBGaW5kIHRoZSBJT0FQSUMgdGhhdCBtYW5hZ2VzIHRoaXMgR1NJLiAqLworCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspIHsKKwkJaWYgKChnc2kgPj0gbXBfaW9hcGljX3JvdXRpbmdbaV0uZ3NpX2Jhc2UpCisJCSAgICAmJiAoZ3NpIDw9IG1wX2lvYXBpY19yb3V0aW5nW2ldLmdzaV9lbmQpKQorCQkJcmV0dXJuIGk7CisJfQorCisJcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogVW5hYmxlIHRvIGxvY2F0ZSBJT0FQSUMgZm9yIEdTSSAlZFxuIiwgZ3NpKTsKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB1OCBfX2luaXQgdW5pcV9pb2FwaWNfaWQodTggaWQpCit7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmICgoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwpICYmCisJICAgICFBUElDX1hBUElDKGFwaWNfdmVyc2lvbltib290X2NwdV9waHlzaWNhbF9hcGljaWRdKSkKKwkJcmV0dXJuIGlvX2FwaWNfZ2V0X3VuaXF1ZV9pZChucl9pb2FwaWNzLCBpZCk7CisJZWxzZQorCQlyZXR1cm4gaWQ7CisjZWxzZQorCWludCBpOworCURFQ0xBUkVfQklUTUFQKHVzZWQsIDI1Nik7CisJYml0bWFwX3plcm8odXNlZCwgMjU2KTsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCXN0cnVjdCBtcF9jb25maWdfaW9hcGljICppYSA9ICZtcF9pb2FwaWNzW2ldOworCQlfX3NldF9iaXQoaWEtPm1wX2FwaWNpZCwgdXNlZCk7CisJfQorCWlmICghdGVzdF9iaXQoaWQsIHVzZWQpKQorCQlyZXR1cm4gaWQ7CisJcmV0dXJuIGZpbmRfZmlyc3RfemVyb19iaXQodXNlZCwgMjU2KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50IGJhZF9pb2FwaWModW5zaWduZWQgbG9uZyBhZGRyZXNzKQoreworCWlmIChucl9pb2FwaWNzID49IE1BWF9JT19BUElDUykgeworCQlwcmludGsoS0VSTl9FUlIgIkVSUk9SOiBNYXggIyBvZiBJL08gQVBJQ3MgKCVkKSBleGNlZWRlZCAiCisJCSAgICAgICAiKGZvdW5kICVkKVxuIiwgTUFYX0lPX0FQSUNTLCBucl9pb2FwaWNzKTsKKwkJcGFuaWMoIlJlY29tcGlsZSBrZXJuZWwgd2l0aCBiaWdnZXIgTUFYX0lPX0FQSUNTIVxuIik7CisJfQorCWlmICghYWRkcmVzcykgeworCQlwcmludGsoS0VSTl9FUlIgIldBUk5JTkc6IEJvZ3VzICh6ZXJvKSBJL08gQVBJQyBhZGRyZXNzIgorCQkgICAgICAgIiBmb3VuZCBpbiB0YWJsZSwgc2tpcHBpbmchXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCit2b2lkIF9faW5pdCBtcF9yZWdpc3Rlcl9pb2FwaWMoaW50IGlkLCB1MzIgYWRkcmVzcywgdTMyIGdzaV9iYXNlKQoreworCWludCBpZHggPSAwOworCisJaWYgKGJhZF9pb2FwaWMoYWRkcmVzcykpCisJCXJldHVybjsKKworCWlkeCA9IG5yX2lvYXBpY3M7CisKKwltcF9pb2FwaWNzW2lkeF0ubXBfdHlwZSA9IE1QX0lPQVBJQzsKKwltcF9pb2FwaWNzW2lkeF0ubXBfZmxhZ3MgPSBNUENfQVBJQ19VU0FCTEU7CisJbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyID0gYWRkcmVzczsKKworCXNldF9maXhtYXBfbm9jYWNoZShGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgsIGFkZHJlc3MpOworCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljaWQgPSB1bmlxX2lvYXBpY19pZChpZCk7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCW1wX2lvYXBpY3NbaWR4XS5tcF9hcGljdmVyID0gaW9fYXBpY19nZXRfdmVyc2lvbihpZHgpOworI2Vsc2UKKwltcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciA9IDA7CisjZW5kaWYKKwkvKgorCSAqIEJ1aWxkIGJhc2ljIEdTSSBsb29rdXAgdGFibGUgdG8gZmFjaWxpdGF0ZSBnc2ktPmlvX2FwaWMgbG9va3VwcworCSAqIGFuZCB0byBwcmV2ZW50IHJlcHJvZ3JhbW1pbmcgb2YgSU9BUElDIHBpbnMgKFBDSSBHU0lzKS4KKwkgKi8KKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmFwaWNfaWQgPSBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkOworCW1wX2lvYXBpY19yb3V0aW5nW2lkeF0uZ3NpX2Jhc2UgPSBnc2lfYmFzZTsKKwltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQgPSBnc2lfYmFzZSArCisJICAgIGlvX2FwaWNfZ2V0X3JlZGlyX2VudHJpZXMoaWR4KTsKKworCXByaW50ayhLRVJOX0lORk8gIklPQVBJQ1slZF06IGFwaWNfaWQgJWQsIHZlcnNpb24gJWQsIGFkZHJlc3MgMHglbHgsICIKKwkgICAgICAgIkdTSSAlZC0lZFxuIiwgaWR4LCBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2lkLAorCSAgICAgICBtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY3ZlciwgbXBfaW9hcGljc1tpZHhdLm1wX2FwaWNhZGRyLAorCSAgICAgICBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9iYXNlLCBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQpOworCisJbnJfaW9hcGljcysrOworfQorCitzdGF0aWMgdm9pZCBhc3NpZ25fdG9fbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptLAorCQkJCSAgICBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCW1lbWNweShtcF9pcnEsIG0sIHNpemVvZihzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYykpOworfQorCitzdGF0aWMgaW50IG1wX2lycV9jbXAoc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSwKKwkJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbSkKK3sKKwlyZXR1cm4gbWVtY21wKG1wX2lycSwgbSwgc2l6ZW9mKHN0cnVjdCBtcF9jb25maWdfaW50c3JjKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNhdmVfbXBfaXJxKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspIHsKKwkJaWYgKCFtcF9pcnFfY21wKCZtcF9pcnFzW2ldLCBtKSkKKwkJCXJldHVybjsKKwl9CisKKwlhc3NpZ25fdG9fbXBfaXJxKG0sICZtcF9pcnFzW21wX2lycV9lbnRyaWVzXSk7CisJaWYgKCsrbXBfaXJxX2VudHJpZXMgPT0gTUFYX0lSUV9TT1VSQ0VTKQorCQlwYW5pYygiTWF4ICMgb2YgaXJxIHNvdXJjZXMgZXhjZWVkZWQhIVxuIik7Cit9CisKK3ZvaWQgX19pbml0IG1wX292ZXJyaWRlX2xlZ2FjeV9pcnEodTggYnVzX2lycSwgdTggcG9sYXJpdHksIHU4IHRyaWdnZXIsIHUzMiBnc2kpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgcGluOworCXN0cnVjdCBtcF9jb25maWdfaW50c3JjIG1wX2lycTsKKworCS8qCisJICogQ29udmVydCAnZ3NpJyB0byAnaW9hcGljLnBpbicuCisJICovCisJaW9hcGljID0gbXBfZmluZF9pb2FwaWMoZ3NpKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCXBpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7CisKKwkvKgorCSAqIFRCRDogVGhpcyBjaGVjayBpcyBmb3IgZmF1bHR5IHRpbWVyIGVudHJpZXMsIHdoZXJlIHRoZSBvdmVycmlkZQorCSAqICAgICAgZXJyb25lb3VzbHkgc2V0cyB0aGUgdHJpZ2dlciB0byBsZXZlbCwgcmVzdWx0aW5nIGluIGEgSFVHRQorCSAqICAgICAgaW5jcmVhc2Ugb2YgdGltZXIgaW50ZXJydXB0cyEKKwkgKi8KKwlpZiAoKGJ1c19pcnEgPT0gMCkgJiYgKHRyaWdnZXIgPT0gMykpCisJCXRyaWdnZXIgPSAxOworCisJbXBfaXJxLm1wX3R5cGUgPSBNUF9JTlRTUkM7CisJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJbXBfaXJxLm1wX2lycWZsYWcgPSAodHJpZ2dlciA8PCAyKSB8IHBvbGFyaXR5OworCW1wX2lycS5tcF9zcmNidXMgPSBNUF9JU0FfQlVTOworCW1wX2lycS5tcF9zcmNidXNpcnEgPSBidXNfaXJxOwkvKiBJUlEgKi8KKwltcF9pcnEubXBfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcF9hcGljaWQ7IC8qIEFQSUMgSUQgKi8KKwltcF9pcnEubXBfZHN0aXJxID0gcGluOwkvKiBJTlRJTiMgKi8KKworCXNhdmVfbXBfaXJxKCZtcF9pcnEpOworfQorCit2b2lkIF9faW5pdCBtcF9jb25maWdfYWNwaV9sZWdhY3lfaXJxcyh2b2lkKQoreworCWludCBpOworCWludCBpb2FwaWM7CisJdW5zaWduZWQgaW50IGRzdGFwaWM7CisJc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgbXBfaXJxOworCisjaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCisJLyoKKwkgKiBGYWJyaWNhdGUgdGhlIGxlZ2FjeSBJU0EgYnVzIChidXMgIzMxKS4KKwkgKi8KKwltcF9idXNfaWRfdG9fdHlwZVtNUF9JU0FfQlVTXSA9IE1QX0JVU19JU0E7CisjZW5kaWYKKwlzZXRfYml0KE1QX0lTQV9CVVMsIG1wX2J1c19ub3RfcGNpKTsKKwlEcHJpbnRrKCJCdXMgIyVkIGlzIElTQVxuIiwgTVBfSVNBX0JVUyk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAorCS8qCisJICogT2xkZXIgZ2VuZXJhdGlvbnMgb2YgRVM3MDAwIGhhdmUgbm8gbGVnYWN5IGlkZW50aXR5IG1hcHBpbmdzCisJICovCisJaWYgKGVzNzAwMF9wbGF0ID09IDEpCisJCXJldHVybjsKKyNlbmRpZgorCisJLyoKKwkgKiBMb2NhdGUgdGhlIElPQVBJQyB0aGF0IG1hbmFnZXMgdGhlIElTQSBJUlFzICgwLTE1KS4KKwkgKi8KKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYygwKTsKKwlpZiAoaW9hcGljIDwgMCkKKwkJcmV0dXJuOworCWRzdGFwaWMgPSBtcF9pb2FwaWNzW2lvYXBpY10ubXBfYXBpY2lkOworCisJLyoKKwkgKiBVc2UgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGhlIElSUXMgMC0xNS4gIFVubGVzcworCSAqIG92ZXJyaWRkZW4gYnkgKE1BRFQpIGludGVycnVwdCBzb3VyY2Ugb3ZlcnJpZGUgZW50cmllcy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlpbnQgaWR4OworCisJCWZvciAoaWR4ID0gMDsgaWR4IDwgbXBfaXJxX2VudHJpZXM7IGlkeCsrKSB7CisJCQlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqaXJxID0gbXBfaXJxcyArIGlkeDsKKworCQkJLyogRG8gd2UgYWxyZWFkeSBoYXZlIGEgbWFwcGluZyBmb3IgdGhpcyBJU0EgSVJRPyAqLworCQkJaWYgKGlycS0+bXBfc3JjYnVzID09IE1QX0lTQV9CVVMKKwkJCSAgICAmJiBpcnEtPm1wX3NyY2J1c2lycSA9PSBpKQorCQkJCWJyZWFrOworCisJCQkvKiBEbyB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZvciB0aGlzIElPQVBJQyBwaW4gKi8KKwkJCWlmIChpcnEtPm1wX2RzdGFwaWMgPT0gZHN0YXBpYyAmJgorCQkJICAgIGlycS0+bXBfZHN0aXJxID09IGkpCisJCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaWR4ICE9IG1wX2lycV9lbnRyaWVzKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRyAiQUNQSTogSVJRJWQgdXNlZCBieSBvdmVycmlkZS5cbiIsIGkpOworCQkJY29udGludWU7CS8qIElSUSBhbHJlYWR5IHVzZWQgKi8KKwkJfQorCisJCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCQltcF9pcnEubXBfaXJxZmxhZyA9IDA7CS8qIENvbmZvcm1pbmcgKi8KKwkJbXBfaXJxLm1wX3NyY2J1cyA9IE1QX0lTQV9CVVM7CisJCW1wX2lycS5tcF9kc3RhcGljID0gZHN0YXBpYzsKKwkJbXBfaXJxLm1wX2lycXR5cGUgPSBtcF9JTlQ7CisJCW1wX2lycS5tcF9zcmNidXNpcnEgPSBpOyAvKiBJZGVudGl0eSBtYXBwZWQgKi8KKwkJbXBfaXJxLm1wX2RzdGlycSA9IGk7CisKKwkJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisJfQorfQorCitpbnQgbXBfcmVnaXN0ZXJfZ3NpKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJaW50IGlvYXBpYzsKKwlpbnQgaW9hcGljX3BpbjsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIE1BWF9HU0lfTlVNCTQwOTYKKyNkZWZpbmUgSVJRX0NPTVBSRVNTSU9OX1NUQVJUCTY0CisKKwlzdGF0aWMgaW50IHBjaV9pcnEgPSBJUlFfQ09NUFJFU1NJT05fU1RBUlQ7CisJLyoKKwkgKiBNYXBwaW5nIGJldHdlZW4gR2xvYmFsIFN5c3RlbSBJbnRlcnJ1cHRzLCB3aGljaAorCSAqIHJlcHJlc2VudCBhbGwgcG9zc2libGUgaW50ZXJydXB0cywgYW5kIElSUXMKKwkgKiBhc3NpZ25lZCB0byBhY3R1YWwgZGV2aWNlcy4KKwkgKi8KKwlzdGF0aWMgaW50IGdzaV90b19pcnFbTUFYX0dTSV9OVU1dOworI2Vsc2UKKworCWlmIChhY3BpX2lycV9tb2RlbCAhPSBBQ1BJX0lSUV9NT0RFTF9JT0FQSUMpCisJCXJldHVybiBnc2k7CisjZW5kaWYKKworCS8qIERvbid0IHNldCB1cCB0aGUgQUNQSSBTQ0kgYmVjYXVzZSBpdCdzIGFscmVhZHkgc2V0IHVwICovCisJaWYgKGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCA9PSBnc2kpCisJCXJldHVybiBnc2k7CisKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCWlmIChpb2FwaWMgPCAwKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIk5vIElPQVBJQyBmb3IgR1NJICV1XG4iLCBnc2kpOworCQlyZXR1cm4gZ3NpOworCX0KKworCWlvYXBpY19waW4gPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmIChpb2FwaWNfcmVudW1iZXJfaXJxKQorCQlnc2kgPSBpb2FwaWNfcmVudW1iZXJfaXJxKGlvYXBpYywgZ3NpKTsKKyNlbmRpZgorCisJLyoKKwkgKiBBdm9pZCBwaW4gcmVwcm9ncmFtbWluZy4gIFBSVHMgdHlwaWNhbGx5IGluY2x1ZGUgZW50cmllcworCSAqIHdpdGggcmVkdW5kYW50IHBpbi0+Z3NpIG1hcHBpbmdzIChidXQgdW5pcXVlIFBDSSBkZXZpY2VzKTsKKwkgKiB3ZSBvbmx5IHByb2dyYW0gdGhlIElPQVBJQyBvbiB0aGUgZmlyc3QuCisJICovCisJaWYgKGlvYXBpY19waW4gPiBNUF9NQVhfSU9BUElDX1BJTikgeworCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgcmVmZXJlbmNlIHRvIElPQVBJQyBwaW4gIgorCQkgICAgICAgIiVkLSVkXG4iLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmFwaWNfaWQsCisJCSAgICAgICBpb2FwaWNfcGluKTsKKwkJcmV0dXJuIGdzaTsKKwl9CisJaWYgKHRlc3RfYml0KGlvYXBpY19waW4sIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10ucGluX3Byb2dyYW1tZWQpKSB7CisJCURwcmludGsoS0VSTl9ERUJVRyAiUGluICVkLSVkIGFscmVhZHkgcHJvZ3JhbW1lZFxuIiwKKwkJCW1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwgaW9hcGljX3Bpbik7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCQlyZXR1cm4gKGdzaSA8IElSUV9DT01QUkVTU0lPTl9TVEFSVCA/IGdzaSA6IGdzaV90b19pcnFbZ3NpXSk7CisjZWxzZQorCQlyZXR1cm4gZ3NpOworI2VuZGlmCisJfQorCisJc2V0X2JpdChpb2FwaWNfcGluLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLnBpbl9wcm9ncmFtbWVkKTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJLyoKKwkgKiBGb3IgR1NJID49IDY0LCB1c2UgSVJRIGNvbXByZXNzaW9uCisJICovCisJaWYgKChnc2kgPj0gSVJRX0NPTVBSRVNTSU9OX1NUQVJUKQorCSAgICAmJiAodHJpZ2dlcmluZyA9PSBBQ1BJX0xFVkVMX1NFTlNJVElWRSkpIHsKKwkJLyoKKwkJICogRm9yIFBDSSBkZXZpY2VzIGFzc2lnbiBJUlFzIGluIG9yZGVyLCBhdm9pZGluZyBnYXBzCisJCSAqIGR1ZSB0byB1bnVzZWQgSS9PIEFQSUMgcGlucy4KKwkJICovCisJCWludCBpcnEgPSBnc2k7CisJCWlmIChnc2kgPCBNQVhfR1NJX05VTSkgeworCQkJLyoKKwkJCSAqIFJldGFpbiB0aGUgVklBIGNoaXBzZXQgd29yay1hcm91bmQgKGdzaSA+IDE1KSwgYnV0CisJCQkgKiBhdm9pZCBhIHByb2JsZW0gd2hlcmUgdGhlIDgyNTQgdGltZXIgKElSUTApIGlzIHNldHVwCisJCQkgKiB2aWEgYW4gb3ZlcnJpZGUgKHNvIGl0J3Mgbm90IG9uIHBpbiAwIG9mIHRoZSBpb2FwaWMpLAorCQkJICogYW5kIGF0IHRoZSBzYW1lIHRpbWUsIHRoZSBwaW4gMCBpbnRlcnJ1cHQgaXMgYSBQQ0kKKwkJCSAqIHR5cGUuICBUaGUgZ3NpID4gMTUgdGVzdCBjb3VsZCBjYXVzZSB0aGVzZSB0d28gcGlucworCQkJICogdG8gYmUgc2hhcmVkIGFzIElSUTAsIGFuZCB0aGV5IGFyZSBub3Qgc2hhcmVhYmxlLgorCQkJICogU28gdGVzdCBmb3IgdGhpcyBjb25kaXRpb24sIGFuZCBpZiBuZWNlc3NhcnksIGF2b2lkCisJCQkgKiB0aGUgcGluIGNvbGxpc2lvbi4KKwkJCSAqLworCQkJZ3NpID0gcGNpX2lycSsrOworCQkJLyoKKwkJCSAqIERvbid0IGFzc2lnbiBJUlEgdXNlZCBieSBBQ1BJIFNDSQorCQkJICovCisJCQlpZiAoZ3NpID09IGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCkKKwkJCQlnc2kgPSBwY2lfaXJxKys7CisJCQlnc2lfdG9faXJxW2lycV0gPSBnc2k7CisJCX0gZWxzZSB7CisJCQlwcmludGsoS0VSTl9FUlIgIkdTSSAldSBpcyB0b28gaGlnaFxuIiwgZ3NpKTsKKwkJCXJldHVybiBnc2k7CisJCX0KKwl9CisjZW5kaWYKKwlpb19hcGljX3NldF9wY2lfcm91dGluZyhpb2FwaWMsIGlvYXBpY19waW4sIGdzaSwKKwkJCQl0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSwKKwkJCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9ISUdIID8gMCA6IDEpOworCXJldHVybiBnc2k7Cit9CisKK2ludCBtcF9jb25maWdfYWNwaV9nc2kodW5zaWduZWQgY2hhciBudW1iZXIsIHVuc2lnbmVkIGludCBkZXZmbiwgdTggcGluLAorCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSkKK3sKKyNpZmRlZiBDT05GSUdfWDg2X01QUEFSU0UKKwlzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnE7CisJaW50IGlvYXBpYzsKKworCWlmICghYWNwaV9pb2FwaWMpCisJCXJldHVybiAwOworCisJLyogcHJpbnQgdGhlIGVudHJ5IHNob3VsZCBoYXBwZW4gb24gbXB0YWJsZSBpZGVudGljYWxseSAqLworCW1wX2lycS5tcF90eXBlID0gTVBfSU5UU1JDOworCW1wX2lycS5tcF9pcnF0eXBlID0gbXBfSU5UOworCW1wX2lycS5tcF9pcnFmbGFnID0gKHRyaWdnZXJpbmcgPT0gQUNQSV9FREdFX1NFTlNJVElWRSA/IDQgOiAweDBjKSB8CisJCQkJKHBvbGFyaXR5ID09IEFDUElfQUNUSVZFX0hJR0ggPyAxIDogMyk7CisJbXBfaXJxLm1wX3NyY2J1cyA9IG51bWJlcjsKKwltcF9pcnEubXBfc3JjYnVzaXJxID0gKCgoZGV2Zm4gPj4gMykgJiAweDFmKSA8PCAyKSB8ICgocGluIC0gMSkgJiAzKTsKKwlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOworCW1wX2lycS5tcF9kc3RhcGljID0gbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5hcGljX2lkOworCW1wX2lycS5tcF9kc3RpcnEgPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworCisJc2F2ZV9tcF9pcnEoJm1wX2lycSk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIFBhcnNlIElPQVBJQyByZWxhdGVkIGVudHJpZXMgaW4gTUFEVAogICogcmV0dXJucyAwIG9uIHN1Y2Nlc3MsIDwgMCBvbiBlcnJvcgpAQCAtOTk3LDggKzEzNTMsNiBAQAogCXJldHVybjsKIH0KIAotI2lmZGVmIF9faTM4Nl9fCi0KIHN0YXRpYyBpbnQgX19pbml0IGRpc2FibGVfYWNwaV9pcnEoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCiB7CiAJaWYgKCFhY3BpX2ZvcmNlKSB7CkBAIC0xMDQ5LDYgKzE0MDMsMTYgQEAKIH0KIAogLyoKKyAqIEZvcmNlIGlnbm9yaW5nIEJJT1MgSVJRMCBwaW4yIG92ZXJyaWRlCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGRtaV9pZ25vcmVfaXJxMF90aW1lcl9vdmVycmlkZShjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqZCkKK3sKKwlwcl9ub3RpY2UoIiVzIGRldGVjdGVkOiBJZ25vcmluZyBCSU9TIElSUTAgcGluMiBvdmVycmlkZVxuIiwgZC0+aWRlbnQpOworCWFjcGlfc2tpcF90aW1lcl9vdmVycmlkZSA9IDE7CisJcmV0dXJuIDA7Cit9CisKKy8qCiAgKiBJZiB5b3VyIHN5c3RlbSBpcyBibGFja2xpc3RlZCBoZXJlLCBidXQgeW91IGZpbmQgdGhhdCBhY3BpPWZvcmNlCiAgKiB3b3JrcyBmb3IgeW91LCBwbGVhc2UgY29udGFjdCBhY3BpLWRldmVsQHNvdXJjZWZvcmdlLm5ldAogICovCkBAIC0xMjE1LDExICsxNTc5LDM1IEBACiAJCSAgICAgRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJUcmF2ZWxNYXRlIDM2MCIpLAogCQkgICAgIH0sCiAJIH0sCisJLyoKKwkgKiBIUCBsYXB0b3BzIHdoaWNoIHVzZSBhIERTRFQgcmVwb3J0aW5nIGFzIEhQL1NCNDAwLzEwMDAwLAorCSAqIHdoaWNoIGluY2x1ZGVzIHNvbWUgY29kZSB3aGljaCBvdmVycmlkZXMgYWxsIHRlbXBlcmF0dXJlCisJICogdHJpcCBwb2ludHMgdG8gMTZDIGlmIHRoZSBJTlRJTjIgaW5wdXQgb2YgdGhlIEkvTyBBUElDCisJICogaXMgZW5hYmxlZC4gIFRoaXMgaW5wdXQgaXMgaW5jb3JyZWN0bHkgZGVzaWduYXRlZCB0aGUKKwkgKiBJU0EgSVJRIDAgdmlhIGFuIGludGVycnVwdCBzb3VyY2Ugb3ZlcnJpZGUgZXZlbiB0aG91Z2gKKwkgKiBpdCBpcyB3aXJlZCB0byB0aGUgb3V0cHV0IG9mIHRoZSBtYXN0ZXIgODI1OUEgYW5kIElOVElOMAorCSAqIGlzIG5vdCBjb25uZWN0ZWQgYXQgYWxsLiAgRm9yY2UgaWdub3JpbmcgQklPUyBJUlEwIHBpbjIKKwkgKiBvdmVycmlkZSBpbiB0aGF0IGNhc2VzLgorCSAqLworCXsKKwkgLmNhbGxiYWNrID0gZG1pX2lnbm9yZV9pcnEwX3RpbWVyX292ZXJyaWRlLAorCSAuaWRlbnQgPSAiSFAgTlg2MTI1IGxhcHRvcCIsCisJIC5tYXRjaGVzID0geworCQkgICAgIERNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkhld2xldHQtUGFja2FyZCIpLAorCQkgICAgIERNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSFAgQ29tcGFxIG54NjEyNSIpLAorCQkgICAgIH0sCisJIH0sCisJeworCSAuY2FsbGJhY2sgPSBkbWlfaWdub3JlX2lycTBfdGltZXJfb3ZlcnJpZGUsCisJIC5pZGVudCA9ICJIUCBOWDYzMjUgbGFwdG9wIiwKKwkgLm1hdGNoZXMgPSB7CisJCSAgICAgRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiSGV3bGV0dC1QYWNrYXJkIiksCisJCSAgICAgRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJIUCBDb21wYXEgbng2MzI1IiksCisJCSAgICAgfSwKKwkgfSwKIAl7fQogfTsKIAotI2VuZGlmCQkJCS8qIF9faTM4Nl9fICovCi0KIC8qCiAgKiBhY3BpX2Jvb3RfdGFibGVfaW5pdCgpIGFuZCBhY3BpX2Jvb3RfaW5pdCgpCiAgKiAgY2FsbGVkIGZyb20gc2V0dXBfYXJjaCgpLCBhbHdheXMuCkBAIC0xMjQ3LDkgKzE2MzUsNyBAQAogewogCWludCBlcnJvcjsKIAotI2lmZGVmIF9faTM4Nl9fCiAJZG1pX2NoZWNrX3N5c3RlbShhY3BpX2RtaV90YWJsZSk7Ci0jZW5kaWYKIAogCS8qCiAJICogSWYgYWNwaV9kaXNhYmxlZCwgYmFpbCBvdXQKQEAgLTEzNzQsNiArMTc2MCwyMCBAQAogfQogZWFybHlfcGFyYW0oInBjaSIsIHBhcnNlX3BjaSk7CiAKK2ludCBfX2luaXQgYWNwaV9tcHNfY2hlY2sodm9pZCkKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfTE9DQUxfQVBJQykgJiYgIWRlZmluZWQoQ09ORklHX1g4Nl9NUFBBUlNFKQorLyogbXB0YWJsZSBjb2RlIGlzIG5vdCBidWlsdC1pbiovCisJaWYgKGFjcGlfZGlzYWJsZWQgfHwgYWNwaV9ub2lycSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJNUFMgc3VwcG9ydCBjb2RlIGlzIG5vdCBidWlsdC1pbi5cbiIKKwkJICAgICAgICJVc2luZyBhY3BpPW9mZiBvciBhY3BpPW5vaXJxIG9yIHBjaT1ub2FjcGkgIgorCQkgICAgICAgIm1heSBoYXZlIHByb2JsZW1cbiIpOworCQlyZXR1cm4gMTsKKwl9CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogc3RhdGljIGludCBfX2luaXQgcGFyc2VfYWNwaV9za2lwX3RpbWVyX292ZXJyaWRlKGNoYXIgKmFyZykKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3JlYWxtb2RlL3dha2V1cC5TIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLlMKaW5kZXggZjliNzdmYi4uMzM1NTk3MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLlMKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLlMKQEAgLTUsNiArNSw3IEBACiAjaW5jbHVkZSA8YXNtL21zci1pbmRleC5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLWZsYWdzLmg+CiAKIAkuY29kZTE2CiAJLnNlY3Rpb24gIi5oZWFkZXIiLCAiYSIKQEAgLTI0LDYgKzI1LDExIEBACiByZWFsbW9kZV9mbGFnczoJLmxvbmcJMAogcmVhbF9tYWdpYzoJLmxvbmcJMAogdHJhbXBvbGluZV9zZWdtZW50Ogkud29yZCAwCitfcGFkMToJCS5ieXRlCTAKK3dha2V1cF9qbXA6CS5ieXRlCTB4ZWEJLyogbGptcHcgKi8KK3dha2V1cF9qbXBfb2ZmOgkud29yZAkzZgord2FrZXVwX2ptcF9zZWc6CS53b3JkCTAKK3dha2V1cF9nZHQ6CS5xdWFkCTAsIDAsIDAKIHNpZ25hdHVyZToJLmxvbmcJMHg1MWVlMTExMQogCiAJLnRleHQKQEAgLTM0LDExICs0MCwzNCBAQAogCWNsaQogCWNsZAogCisJLyogQXBwYXJlbnRseSBzb21lIGRpbXdpdCBCSU9TIHByb2dyYW1tZXJzIGRvbid0IGtub3cgaG93IHRvCisJICAgcHJvZ3JhbSBhIFBNIHRvIFJNIHRyYW5zaXRpb24sIGFuZCB3ZSBtaWdodCBlbmQgdXAgaGVyZSB3aXRoCisJICAganVuayBpbiB0aGUgZGF0YSBzZWdtZW50IGRlc2NyaXB0b3IgcmVnaXN0ZXJzLiAgVGhlIG9ubHkgd2F5CisJICAgdG8gcmVwYWlyIHRoYXQgaXMgdG8gZ28gaW50byBQTSBhbmQgZml4IGl0IG91cnNlbHZlcy4uLiAqLworCW1vdncJJDE2LCAlY3gKKwlsZ2R0bAklY3M6d2FrZXVwX2dkdAorCW1vdmwJJWNyMCwgJWVheAorCW9yYgkkWDg2X0NSMF9QRSwgJWFsCisJbW92bAklZWF4LCAlY3IwCisJam1wCTFmCisxOglsam1wdwkkOCwgJDJmCisyOgorCW1vdncJJWN4LCAlZHMKKwltb3Z3CSVjeCwgJWVzCisJbW92dwklY3gsICVzcworCW1vdncJJWN4LCAlZnMKKwltb3Z3CSVjeCwgJWdzCisKKwlhbmRiCSR+WDg2X0NSMF9QRSwgJWFsCisJbW92bAklZWF4LCAlY3IwCisJam1wCXdha2V1cF9qbXAKKzM6CiAJLyogU2V0IHVwIHNlZ21lbnRzICovCiAJbW92dwklY3MsICVheAogCW1vdncJJWF4LCAlZHMKIAltb3Z3CSVheCwgJWVzCiAJbW92dwklYXgsICVzcworCWxpZHRsCXdha2V1cF9pZHQKIAogCW1vdmwJJHdha2V1cF9zdGFja19lbmQsICVlc3AKIApAQCAtOTgsNyArMTI3LDE0IEBACiAJam1wCTFiCiAKIAkuZGF0YQotCS5iYWxpZ24JNAorCS5iYWxpZ24JOAorCisJLyogVGhpcyBpcyB0aGUgc3RhbmRhcmQgcmVhbC1tb2RlIElEVCAqLword2FrZXVwX2lkdDoKKwkud29yZAkweGZmZmYJCS8qIGxpbWl0ICovCisJLmxvbmcJMAkJLyogYWRkcmVzcyAqLworCS53b3JkCTAKKwogCS5nbG9ibAlIRUFQLCBoZWFwX2VuZAogSEVBUDoKIAkubG9uZwl3YWtldXBfaGVhcApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvcmVhbG1vZGUvd2FrZXVwLmggYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuaAppbmRleCBlZjgxNjZmLi42OWQzOGQwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuaAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9yZWFsbW9kZS93YWtldXAuaApAQCAtMjQsNiArMjQsMTEgQEAKIAl1MzIgcmVhbG1vZGVfZmxhZ3M7CiAJdTMyIHJlYWxfbWFnaWM7CiAJdTE2IHRyYW1wb2xpbmVfc2VnbWVudDsJLyogc2VnbWVudCB3aXRoIHRyYW1wb2xpbmUgY29kZSwgNjQtYml0IG9ubHkgKi8KKwl1OCAgX3BhZDE7CisJdTggIHdha2V1cF9qbXA7CisJdTE2IHdha2V1cF9qbXBfb2ZmOworCXUxNiB3YWtldXBfam1wX3NlZzsKKwl1NjQgd2FrZXVwX2dkdFszXTsKIAl1MzIgc2lnbmF0dXJlOwkJLyogVG8gY2hlY2sgd2UgaGF2ZSBjb3JyZWN0IHN0cnVjdHVyZSAqLwogfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jCmluZGV4IGFmYzI1ZWUuLjc5M2FkMjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FjcGkvc2xlZXAuYwpAQCAtMjMsNiArMjMsMTUgQEAKIHN0YXRpYyBjaGFyIHRlbXBfc3RhY2tbMTAyNDBdOwogI2VuZGlmCiAKKy8qIFhYWDogdGhpcyBtYWNybyBzaG91bGQgbW92ZSB0byBhc20teDg2L3NlZ21lbnQuaCBhbmQgYmUgc2hhcmVkIHdpdGggdGhlCisgICBib290IGNvZGUuLi4gKi8KKyNkZWZpbmUgR0RUX0VOVFJZKGZsYWdzLCBiYXNlLCBsaW1pdCkJCVwKKwkoKCh1NjQpKGJhc2UgJiAweGZmMDAwMDAwKSA8PCAzMikgfAlcCisJICgodTY0KWZsYWdzIDw8IDQwKSB8CQkJXAorCSAoKHU2NCkobGltaXQgJiAweDAwZmYwMDAwKSA8PCAzMikgfAlcCisJICgodTY0KShiYXNlICYgMHgwMGZmZmZmZikgPDwgMTYpIHwJXAorCSAoKHU2NCkobGltaXQgJiAweDAwMDBmZmZmKSkpCisKIC8qKgogICogYWNwaV9zYXZlX3N0YXRlX21lbSAtIHNhdmUga2VybmVsIHN0YXRlCiAgKgpAQCAtNTAsNiArNTksMjkgQEAKIAogCWhlYWRlci0+dmlkZW9fbW9kZSA9IHNhdmVkX3ZpZGVvX21vZGU7CiAKKwloZWFkZXItPndha2V1cF9qbXBfc2VnID0gYWNwaV93YWtldXBfYWRkcmVzcyA+PiA0OworCisJLyoKKwkgKiBTZXQgdXAgdGhlIHdha2V1cCBHRFQuICBXZSBzZXQgdGhlc2UgdXAgYXMgQmlnIFJlYWwgTW9kZSwKKwkgKiB0aGF0IGlzLCB3aXRoIGxpbWl0cyBzZXQgdG8gNCBHQi4gIEF0IGxlYXN0IHRoZSBMZW5vdm8KKwkgKiBUaGlua3BhZCBYNjEgaXMga25vd24gdG8gbmVlZCB0aGlzIGZvciB0aGUgdmlkZW8gQklPUworCSAqIGluaXRpYWxpemF0aW9uIHF1aXJrIHRvIHdvcms7IHRoaXMgaXMgbGlrZWx5IHRvIGFsc28KKwkgKiBiZSB0aGUgY2FzZSBmb3Igb3RoZXIgbGFwdG9wcyBvciBpbnRlZ3JhdGVkIHZpZGVvIGRldmljZXMuCisJICovCisKKwkvKiBHRFRbMF06IEdEVCBzZWxmLXBvaW50ZXIgKi8KKwloZWFkZXItPndha2V1cF9nZHRbMF0gPQorCQkodTY0KShzaXplb2YoaGVhZGVyLT53YWtldXBfZ2R0KSAtIDEpICsKKwkJKCh1NjQpKGFjcGlfd2FrZXVwX2FkZHJlc3MgKworCQkJKChjaGFyICopJmhlYWRlci0+d2FrZXVwX2dkdCAtIChjaGFyICopYWNwaV9yZWFsbW9kZSkpCisJCQkJPDwgMTYpOworCS8qIEdEVFsxXTogYmlnIHJlYWwgbW9kZS1saWtlIGNvZGUgc2VnbWVudCAqLworCWhlYWRlci0+d2FrZXVwX2dkdFsxXSA9CisJCUdEVF9FTlRSWSgweDgwOWIsIGFjcGlfd2FrZXVwX2FkZHJlc3MsIDB4ZmZmZmYpOworCS8qIEdEVFsyXTogYmlnIHJlYWwgbW9kZS1saWtlIGRhdGEgc2VnbWVudCAqLworCWhlYWRlci0+d2FrZXVwX2dkdFsyXSA9CisJCUdEVF9FTlRSWSgweDgwOTMsIGFjcGlfd2FrZXVwX2FkZHJlc3MsIDB4ZmZmZmYpOworCiAjaWZuZGVmIENPTkZJR182NEJJVAogCXN0b3JlX2dkdCgoc3RydWN0IGRlc2NfcHRyICopJmhlYWRlci0+cG1vZGVfZ2R0KTsKIApAQCAtNzIsNyArMTA0LDkgQEAKIAlzYXZlZF9tYWdpYyA9IDB4MTIzNDU2Nzg7CiAjZWxzZSAvKiBDT05GSUdfNjRCSVQgKi8KIAloZWFkZXItPnRyYW1wb2xpbmVfc2VnbWVudCA9IHNldHVwX3RyYW1wb2xpbmUoKSA+PiA0OwotCWluaXRfcnNwID0gKHVuc2lnbmVkIGxvbmcpdGVtcF9zdGFjayArIDQwOTY7CisjaWZkZWYgQ09ORklHX1NNUAorCXN0YWNrX3N0YXJ0LnNwID0gdGVtcF9zdGFjayArIDQwOTY7CisjZW5kaWYKIAlpbml0aWFsX2NvZGUgPSAodW5zaWduZWQgbG9uZyl3YWtldXBfbG9uZzY0OwogCXNhdmVkX21hZ2ljID0gMHgxMjM0NTY3ODlhYmNkZWYwOwogI2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwpAQCAtMTExLDcgKzE0NSw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlhY3BpX3dha2V1cF9hZGRyZXNzID0gYWNwaV9yZWFsbW9kZTsKKwlhY3BpX3dha2V1cF9hZGRyZXNzID0gdmlydF90b19waHlzKCh2b2lkICopYWNwaV9yZWFsbW9kZSk7CiB9CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FsdGVybmF0aXZlLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYwppbmRleCA2NWM3ODU3Li4yNzYzY2IzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWx0ZXJuYXRpdmUuYwpAQCAtMSw2ICsxLDYgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CiAjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CkBAIC0xNDMsNyArMTQzLDcgQEAKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAKIGV4dGVybiBjaGFyIF9fdnN5c2NhbGxfMDsKLXN0YXRpYyBpbmxpbmUgY29uc3QgdW5zaWduZWQgY2hhcipjb25zdCAqIGZpbmRfbm9wX3RhYmxlKHZvaWQpCitjb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqZmluZF9ub3BfdGFibGUodm9pZCkKIHsKIAlyZXR1cm4gYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfSU5URUwgfHwKIAkgICAgICAgYm9vdF9jcHVfZGF0YS54ODYgPCA2ID8gazhfbm9wcyA6IHA2X25vcHM7CkBAIC0xNjIsNyArMTYyLDcgQEAKIAl7IC0xLCBOVUxMIH0KIH07CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyKmNvbnN0ICogZmluZF9ub3BfdGFibGUodm9pZCkKK2NvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0ICpmaW5kX25vcF90YWJsZSh2b2lkKQogewogCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0ICpub3B0YWJsZSA9IGludGVsX25vcHM7CiAJaW50IGk7CkBAIC0yNzksNyArMjc5LDcgQEAKIAlzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7CiB9Owogc3RhdGljIExJU1RfSEVBRChzbXBfYWx0X21vZHVsZXMpOwotc3RhdGljIERFRklORV9TUElOTE9DSyhzbXBfYWx0KTsKK3N0YXRpYyBERUZJTkVfTVVURVgoc21wX2FsdCk7CiBzdGF0aWMgaW50IHNtcF9tb2RlID0gMTsJLyogcHJvdGVjdGVkIGJ5IHNtcF9hbHQgKi8KIAogdm9pZCBhbHRlcm5hdGl2ZXNfc21wX21vZHVsZV9hZGQoc3RydWN0IG1vZHVsZSAqbW9kLCBjaGFyICpuYW1lLApAQCAtMzEyLDEyICszMTIsMTIgQEAKIAkJX19mdW5jX18sIHNtcC0+bG9ja3MsIHNtcC0+bG9ja3NfZW5kLAogCQlzbXAtPnRleHQsIHNtcC0+dGV4dF9lbmQsIHNtcC0+bmFtZSk7CiAKLQlzcGluX2xvY2soJnNtcF9hbHQpOworCW11dGV4X2xvY2soJnNtcF9hbHQpOwogCWxpc3RfYWRkX3RhaWwoJnNtcC0+bmV4dCwgJnNtcF9hbHRfbW9kdWxlcyk7CiAJaWYgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9VUCkpCiAJCWFsdGVybmF0aXZlc19zbXBfdW5sb2NrKHNtcC0+bG9ja3MsIHNtcC0+bG9ja3NfZW5kLAogCQkJCQlzbXAtPnRleHQsIHNtcC0+dGV4dF9lbmQpOwotCXNwaW5fdW5sb2NrKCZzbXBfYWx0KTsKKwltdXRleF91bmxvY2soJnNtcF9hbHQpOwogfQogCiB2b2lkIGFsdGVybmF0aXZlc19zbXBfbW9kdWxlX2RlbChzdHJ1Y3QgbW9kdWxlICptb2QpCkBAIC0zMjcsMTcgKzMyNywxNyBAQAogCWlmIChzbXBfYWx0X29uY2UgfHwgbm9yZXBsYWNlX3NtcCkKIAkJcmV0dXJuOwogCi0Jc3Bpbl9sb2NrKCZzbXBfYWx0KTsKKwltdXRleF9sb2NrKCZzbXBfYWx0KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGl0ZW0sICZzbXBfYWx0X21vZHVsZXMsIG5leHQpIHsKIAkJaWYgKG1vZCAhPSBpdGVtLT5tb2QpCiAJCQljb250aW51ZTsKIAkJbGlzdF9kZWwoJml0ZW0tPm5leHQpOwotCQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJCW11dGV4X3VubG9jaygmc21wX2FsdCk7CiAJCURQUklOVEsoIiVzOiAlc1xuIiwgX19mdW5jX18sIGl0ZW0tPm5hbWUpOwogCQlrZnJlZShpdGVtKTsKIAkJcmV0dXJuOwogCX0KLQlzcGluX3VubG9jaygmc21wX2FsdCk7CisJbXV0ZXhfdW5sb2NrKCZzbXBfYWx0KTsKIH0KIAogdm9pZCBhbHRlcm5hdGl2ZXNfc21wX3N3aXRjaChpbnQgc21wKQpAQCAtMzU5LDcgKzM1OSw3IEBACiAJCXJldHVybjsKIAlCVUdfT04oIXNtcCAmJiAobnVtX29ubGluZV9jcHVzKCkgPiAxKSk7CiAKLQlzcGluX2xvY2soJnNtcF9hbHQpOworCW11dGV4X2xvY2soJnNtcF9hbHQpOwogCiAJLyoKIAkgKiBBdm9pZCB1bm5lY2Vzc2FyeSBzd2l0Y2hlcyBiZWNhdXNlIGl0IGZvcmNlcyBKSVQgYmFzZWQgVk1zIHRvCkBAIC0zODMsNyArMzgzLDcgQEAKIAkJCQkJCW1vZC0+dGV4dCwgbW9kLT50ZXh0X2VuZCk7CiAJfQogCXNtcF9tb2RlID0gc21wOwotCXNwaW5fdW5sb2NrKCZzbXBfYWx0KTsKKwltdXRleF91bmxvY2soJnNtcF9hbHQpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hbWRfaW9tbXUuYyBiL2FyY2gveDg2L2tlcm5lbC9hbWRfaW9tbXUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjc2NmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2FtZF9pb21tdS5jCkBAIC0wLDAgKzEsOTYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICogQXV0aG9yOiBKb2VyZyBSb2VkZWwgPGpvZXJnLnJvZWRlbEBhbWQuY29tPgorICogICAgICAgICBMZW8gRHVyYW4gPGxlby5kdXJhbkBhbWQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICovCisKKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvbW11LWhlbHBlci5oPgorI2luY2x1ZGUgPGFzbS9wcm90by5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2FtZF9pb21tdV90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9hbWRfaW9tbXUuaD4KKworI2RlZmluZSBDTURfU0VUX1RZUEUoY21kLCB0KSAoKGNtZCktPmRhdGFbMV0gfD0gKCh0KSA8PCAyOCkpCisKKyNkZWZpbmUgdG9fcGFnZXMoYWRkciwgc2l6ZSkgXAorCSAocm91bmRfdXAoKChhZGRyKSAmIH5QQUdFX01BU0spICsgKHNpemUpLCBQQUdFX1NJWkUpID4+IFBBR0VfU0hJRlQpCisKK3N0YXRpYyBERUZJTkVfUldMT0NLKGFtZF9pb21tdV9kZXZ0YWJsZV9sb2NrKTsKKworc3RydWN0IGNvbW1hbmQgeworCXUzMiBkYXRhWzRdOworfTsKKworc3RhdGljIGludCBkbWFfb3BzX3VuaXR5X21hcChzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkgICAgIHN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmUpOworCitzdGF0aWMgaW50IGlvbW11X2hhc19ucGNhY2hlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXJldHVybiBpb21tdS0+Y2FwICYgSU9NTVVfQ0FQX05QQ0FDSEU7Cit9CisKK3N0YXRpYyBpbnQgX19pb21tdV9xdWV1ZV9jb21tYW5kKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBzdHJ1Y3QgY29tbWFuZCAqY21kKQoreworCXUzMiB0YWlsLCBoZWFkOworCXU4ICp0YXJnZXQ7CisKKwl0YWlsID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fQ01EX1RBSUxfT0ZGU0VUKTsKKwl0YXJnZXQgPSAoaW9tbXUtPmNtZF9idWYgKyB0YWlsKTsKKwltZW1jcHlfdG9pbyh0YXJnZXQsIGNtZCwgc2l6ZW9mKCpjbWQpKTsKKwl0YWlsID0gKHRhaWwgKyBzaXplb2YoKmNtZCkpICUgaW9tbXUtPmNtZF9idWZfc2l6ZTsKKwloZWFkID0gcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fQ01EX0hFQURfT0ZGU0VUKTsKKwlpZiAodGFpbCA9PSBoZWFkKQorCQlyZXR1cm4gLUVOT01FTTsKKwl3cml0ZWwodGFpbCwgaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fQ01EX1RBSUxfT0ZGU0VUKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlvbW11X3F1ZXVlX2NvbW1hbmQoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHN0cnVjdCBjb21tYW5kICpjbWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CisJcmV0ID0gX19pb21tdV9xdWV1ZV9jb21tYW5kKGlvbW11LCBjbWQpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGlvbW11X2NvbXBsZXRpb25fd2FpdChzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlpbnQgcmV0OworCXN0cnVjdCBjb21tYW5kIGNtZDsKKwl2b2xhdGlsZSB1NjQgcmVhZHkgPSAwOworCXVuc2lnbmVkIGxvbmcgcmVhZHlfcGh5cyA9IHZpcnRfdG9fcGh5cygmcmVhZHkpOworCisJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihjbWQpKTsKKwljbWQuZGF0YVswXSA9IExPV19VMzIocmVhZHlfcGh5cykgfCBDTURfQ09NUExfV0FJVF9TVE9SRV9NQVNLOworCWNtZC5kYXRhWzFdID0gSElHSF9VMzIocmVhZHlfcGh5cyk7CisJY21kLmRhdGFbMl0gPSAxOyAvKiB2YWx1ZSB3cml0dGVuIHRvICdyZWFkeScgKi8KKwlDTURfU0VUX1RZUEUoJmNtZCwgQ01EX0NPTVBMX1dBSVQpOworCisJaW9tbXUtPm5lZWRfc3luYyA9IDA7CisKKwlyZXQgPSBpb21tdV9xdWV1ZV9jb21tYW5kKGlvbW11LCAmY21kKTsKKworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwl3aGlsZSAoIXJlYWR5KQorCQljcHVfcmVsYXgoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlvbW11X3F1ZXVlX2ludl9kZXZfZW50cnkoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHUxNiBkZXZpZCkKK3sKKwlzdHJ1Y3QgY29tbWFuZCBjbWQ7CisKKwlCVUdfT04oaW9tbXUgPT0gTlVMTCk7CisKKwltZW1zZXQoJmNtZCwgMCwgc2l6ZW9mKGNtZCkpOworCUNNRF9TRVRfVFlQRSgmY21kLCBDTURfSU5WX0RFVl9FTlRSWSk7CisJY21kLmRhdGFbMF0gPSBkZXZpZDsKKworCWlvbW11LT5uZWVkX3N5bmMgPSAxOworCisJcmV0dXJuIGlvbW11X3F1ZXVlX2NvbW1hbmQoaW9tbXUsICZjbWQpOworfQorCitzdGF0aWMgaW50IGlvbW11X3F1ZXVlX2ludl9pb21tdV9wYWdlcyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJdTY0IGFkZHJlc3MsIHUxNiBkb21pZCwgaW50IHBkZSwgaW50IHMpCit7CisJc3RydWN0IGNvbW1hbmQgY21kOworCisJbWVtc2V0KCZjbWQsIDAsIHNpemVvZihjbWQpKTsKKwlhZGRyZXNzICY9IFBBR0VfTUFTSzsKKwlDTURfU0VUX1RZUEUoJmNtZCwgQ01EX0lOVl9JT01NVV9QQUdFUyk7CisJY21kLmRhdGFbMV0gfD0gZG9taWQ7CisJY21kLmRhdGFbMl0gPSBMT1dfVTMyKGFkZHJlc3MpOworCWNtZC5kYXRhWzNdID0gSElHSF9VMzIoYWRkcmVzcyk7CisJaWYgKHMpCisJCWNtZC5kYXRhWzJdIHw9IENNRF9JTlZfSU9NTVVfUEFHRVNfU0laRV9NQVNLOworCWlmIChwZGUpCisJCWNtZC5kYXRhWzJdIHw9IENNRF9JTlZfSU9NTVVfUEFHRVNfUERFX01BU0s7CisKKwlpb21tdS0+bmVlZF9zeW5jID0gMTsKKworCXJldHVybiBpb21tdV9xdWV1ZV9jb21tYW5kKGlvbW11LCAmY21kKTsKK30KKworc3RhdGljIGludCBpb21tdV9mbHVzaF9wYWdlcyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTE2IGRvbWlkLAorCQl1NjQgYWRkcmVzcywgc2l6ZV90IHNpemUpCit7CisJaW50IHMgPSAwOworCXVuc2lnbmVkIHBhZ2VzID0gdG9fcGFnZXMoYWRkcmVzcywgc2l6ZSk7CisKKwlhZGRyZXNzICY9IFBBR0VfTUFTSzsKKworCWlmIChwYWdlcyA+IDEpIHsKKwkJLyoKKwkJICogSWYgd2UgaGF2ZSB0byBmbHVzaCBtb3JlIHRoYW4gb25lIHBhZ2UsIGZsdXNoIGFsbAorCQkgKiBUTEIgZW50cmllcyBmb3IgdGhpcyBkb21haW4KKwkJICovCisJCWFkZHJlc3MgPSBDTURfSU5WX0lPTU1VX0FMTF9QQUdFU19BRERSRVNTOworCQlzID0gMTsKKwl9CisKKwlpb21tdV9xdWV1ZV9pbnZfaW9tbXVfcGFnZXMoaW9tbXUsIGFkZHJlc3MsIGRvbWlkLCAwLCBzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlvbW11X21hcChzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbSwKKwkJICAgICB1bnNpZ25lZCBsb25nIGJ1c19hZGRyLAorCQkgICAgIHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLAorCQkgICAgIGludCBwcm90KQoreworCXU2NCBfX3B0ZSwgKnB0ZSwgKnBhZ2U7CisKKwlidXNfYWRkciAgPSBQQUdFX0FMSUdOKGJ1c19hZGRyKTsKKwlwaHlzX2FkZHIgPSBQQUdFX0FMSUdOKGJ1c19hZGRyKTsKKworCS8qIG9ubHkgc3VwcG9ydCA1MTJHQiBhZGRyZXNzIHNwYWNlcyBmb3Igbm93ICovCisJaWYgKGJ1c19hZGRyID4gSU9NTVVfTUFQX1NJWkVfTDMgfHwgIShwcm90ICYgSU9NTVVfUFJPVF9NQVNLKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwdGUgPSAmZG9tLT5wdF9yb290W0lPTU1VX1BURV9MMl9JTkRFWChidXNfYWRkcildOworCisJaWYgKCFJT01NVV9QVEVfUFJFU0VOVCgqcHRlKSkgeworCQlwYWdlID0gKHU2NCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKCFwYWdlKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCSpwdGUgPSBJT01NVV9MMl9QREUodmlydF90b19waHlzKHBhZ2UpKTsKKwl9CisKKwlwdGUgPSBJT01NVV9QVEVfUEFHRSgqcHRlKTsKKwlwdGUgPSAmcHRlW0lPTU1VX1BURV9MMV9JTkRFWChidXNfYWRkcildOworCisJaWYgKCFJT01NVV9QVEVfUFJFU0VOVCgqcHRlKSkgeworCQlwYWdlID0gKHU2NCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKCFwYWdlKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCSpwdGUgPSBJT01NVV9MMV9QREUodmlydF90b19waHlzKHBhZ2UpKTsKKwl9CisKKwlwdGUgPSBJT01NVV9QVEVfUEFHRSgqcHRlKTsKKwlwdGUgPSAmcHRlW0lPTU1VX1BURV9MMF9JTkRFWChidXNfYWRkcildOworCisJaWYgKElPTU1VX1BURV9QUkVTRU5UKCpwdGUpKQorCQlyZXR1cm4gLUVCVVNZOworCisJX19wdGUgPSBwaHlzX2FkZHIgfCBJT01NVV9QVEVfUDsKKwlpZiAocHJvdCAmIElPTU1VX1BST1RfSVIpCisJCV9fcHRlIHw9IElPTU1VX1BURV9JUjsKKwlpZiAocHJvdCAmIElPTU1VX1BST1RfSVcpCisJCV9fcHRlIHw9IElPTU1VX1BURV9JVzsKKworCSpwdGUgPSBfX3B0ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlvbW11X2Zvcl91bml0eV9tYXAoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkgICAgICAgc3RydWN0IHVuaXR5X21hcF9lbnRyeSAqZW50cnkpCit7CisJdTE2IGJkZiwgaTsKKworCWZvciAoaSA9IGVudHJ5LT5kZXZpZF9zdGFydDsgaSA8PSBlbnRyeS0+ZGV2aWRfZW5kOyArK2kpIHsKKwkJYmRmID0gYW1kX2lvbW11X2FsaWFzX3RhYmxlW2ldOworCQlpZiAoYW1kX2lvbW11X3Jsb29rdXBfdGFibGVbYmRmXSA9PSBpb21tdSkKKwkJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGlvbW11X2luaXRfdW5pdHlfbWFwcGluZ3Moc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJc3RydWN0IHVuaXR5X21hcF9lbnRyeSAqZW50cnk7CisJaW50IHJldDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZhbWRfaW9tbXVfdW5pdHlfbWFwLCBsaXN0KSB7CisJCWlmICghaW9tbXVfZm9yX3VuaXR5X21hcChpb21tdSwgZW50cnkpKQorCQkJY29udGludWU7CisJCXJldCA9IGRtYV9vcHNfdW5pdHlfbWFwKGlvbW11LT5kZWZhdWx0X2RvbSwgZW50cnkpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkbWFfb3BzX3VuaXR5X21hcChzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkgICAgIHN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmUpCit7CisJdTY0IGFkZHI7CisJaW50IHJldDsKKworCWZvciAoYWRkciA9IGUtPmFkZHJlc3Nfc3RhcnQ7IGFkZHIgPCBlLT5hZGRyZXNzX2VuZDsKKwkgICAgIGFkZHIgKz0gUEFHRV9TSVpFKSB7CisJCXJldCA9IGlvbW11X21hcCgmZG1hX2RvbS0+ZG9tYWluLCBhZGRyLCBhZGRyLCBlLT5wcm90KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJCS8qCisJCSAqIGlmIHVuaXR5IG1hcHBpbmcgaXMgaW4gYXBlcnR1cmUgcmFuZ2UgbWFyayB0aGUgcGFnZQorCQkgKiBhcyBhbGxvY2F0ZWQgaW4gdGhlIGFwZXJ0dXJlCisJCSAqLworCQlpZiAoYWRkciA8IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUpCisJCQlfX3NldF9iaXQoYWRkciA+PiBQQUdFX1NISUZULCBkbWFfZG9tLT5iaXRtYXApOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGluaXRfdW5pdHlfbWFwcGluZ3NfZm9yX2RldmljZShzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkJCSAgdTE2IGRldmlkKQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmU7CisJaW50IHJldDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZSwgJmFtZF9pb21tdV91bml0eV9tYXAsIGxpc3QpIHsKKwkJaWYgKCEoZGV2aWQgPj0gZS0+ZGV2aWRfc3RhcnQgJiYgZGV2aWQgPD0gZS0+ZGV2aWRfZW5kKSkKKwkJCWNvbnRpbnVlOworCQlyZXQgPSBkbWFfb3BzX3VuaXR5X21hcChkbWFfZG9tLCBlKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGRtYV9tYXNrX3RvX3BhZ2VzKHVuc2lnbmVkIGxvbmcgbWFzaykKK3sKKwlyZXR1cm4gKG1hc2sgPj4gUEFHRV9TSElGVCkgKworCQkoUEFHRV9BTElHTihtYXNrICYgflBBR0VfTUFTSykgPj4gUEFHRV9TSElGVCk7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGRtYV9vcHNfYWxsb2NfYWRkcmVzc2VzKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJICAgICBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRvbSwKKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgcGFnZXMpCit7CisJdW5zaWduZWQgbG9uZyBsaW1pdCA9IGRtYV9tYXNrX3RvX3BhZ2VzKCpkZXYtPmRtYV9tYXNrKTsKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CisJdW5zaWduZWQgbG9uZyBzaXplID0gZG9tLT5hcGVydHVyZV9zaXplID4+IFBBR0VfU0hJRlQ7CisJdW5zaWduZWQgbG9uZyBib3VuZGFyeV9zaXplOworCisJYm91bmRhcnlfc2l6ZSA9IEFMSUdOKGRtYV9nZXRfc2VnX2JvdW5kYXJ5KGRldikgKyAxLAorCQkJUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUOworCWxpbWl0ID0gbGltaXQgPCBzaXplID8gbGltaXQgOiBzaXplOworCisJaWYgKGRvbS0+bmV4dF9iaXQgPj0gbGltaXQpCisJCWRvbS0+bmV4dF9iaXQgPSAwOworCisJYWRkcmVzcyA9IGlvbW11X2FyZWFfYWxsb2MoZG9tLT5iaXRtYXAsIGxpbWl0LCBkb20tPm5leHRfYml0LCBwYWdlcywKKwkJCTAgLCBib3VuZGFyeV9zaXplLCAwKTsKKwlpZiAoYWRkcmVzcyA9PSAtMSkKKwkJYWRkcmVzcyA9IGlvbW11X2FyZWFfYWxsb2MoZG9tLT5iaXRtYXAsIGxpbWl0LCAwLCBwYWdlcywKKwkJCQkwLCBib3VuZGFyeV9zaXplLCAwKTsKKworCWlmIChsaWtlbHkoYWRkcmVzcyAhPSAtMSkpIHsKKwkJZG9tLT5uZXh0X2JpdCA9IGFkZHJlc3MgKyBwYWdlczsKKwkJYWRkcmVzcyA8PD0gUEFHRV9TSElGVDsKKwl9IGVsc2UKKwkJYWRkcmVzcyA9IGJhZF9kbWFfYWRkcmVzczsKKworCVdBUk5fT04oKGFkZHJlc3MgKyAoUEFHRV9TSVpFKnBhZ2VzKSkgPiBkb20tPmFwZXJ0dXJlX3NpemUpOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisKK3N0YXRpYyB2b2lkIGRtYV9vcHNfZnJlZV9hZGRyZXNzZXMoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzLAorCQkJCSAgIHVuc2lnbmVkIGludCBwYWdlcykKK3sKKwlhZGRyZXNzID4+PSBQQUdFX1NISUZUOworCWlvbW11X2FyZWFfZnJlZShkb20tPmJpdG1hcCwgYWRkcmVzcywgcGFnZXMpOworfQorCitzdGF0aWMgdTE2IGRvbWFpbl9pZF9hbGxvYyh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IGlkOworCisJd3JpdGVfbG9ja19pcnFzYXZlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCWlkID0gZmluZF9maXJzdF96ZXJvX2JpdChhbWRfaW9tbXVfcGRfYWxsb2NfYml0bWFwLCBNQVhfRE9NQUlOX0lEKTsKKwlCVUdfT04oaWQgPT0gMCk7CisJaWYgKGlkID4gMCAmJiBpZCA8IE1BWF9ET01BSU5fSUQpCisJCV9fc2V0X2JpdChpZCwgYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCk7CisJZWxzZQorCQlpZCA9IDA7CisJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJmFtZF9pb21tdV9kZXZ0YWJsZV9sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gaWQ7Cit9CisKK3N0YXRpYyB2b2lkIGRtYV9vcHNfcmVzZXJ2ZV9hZGRyZXNzZXMoc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF9wYWdlLAorCQkJCSAgICAgIHVuc2lnbmVkIGludCBwYWdlcykKK3sKKwl1bnNpZ25lZCBpbnQgbGFzdF9wYWdlID0gZG9tLT5hcGVydHVyZV9zaXplID4+IFBBR0VfU0hJRlQ7CisKKwlpZiAoc3RhcnRfcGFnZSArIHBhZ2VzID4gbGFzdF9wYWdlKQorCQlwYWdlcyA9IGxhc3RfcGFnZSAtIHN0YXJ0X3BhZ2U7CisKKwlzZXRfYml0X3N0cmluZyhkb20tPmJpdG1hcCwgc3RhcnRfcGFnZSwgcGFnZXMpOworfQorCitzdGF0aWMgdm9pZCBkbWFfb3BzX2ZyZWVfcGFnZXRhYmxlKHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG1hX2RvbSkKK3sKKwlpbnQgaSwgajsKKwl1NjQgKnAxLCAqcDIsICpwMzsKKworCXAxID0gZG1hX2RvbS0+ZG9tYWluLnB0X3Jvb3Q7CisKKwlpZiAoIXAxKQorCQlyZXR1cm47CisKKwlmb3IgKGkgPSAwOyBpIDwgNTEyOyArK2kpIHsKKwkJaWYgKCFJT01NVV9QVEVfUFJFU0VOVChwMVtpXSkpCisJCQljb250aW51ZTsKKworCQlwMiA9IElPTU1VX1BURV9QQUdFKHAxW2ldKTsKKwkJZm9yIChqID0gMDsgaiA8IDUxMjsgKytpKSB7CisJCQlpZiAoIUlPTU1VX1BURV9QUkVTRU5UKHAyW2pdKSkKKwkJCQljb250aW51ZTsKKwkJCXAzID0gSU9NTVVfUFRFX1BBR0UocDJbal0pOworCQkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXAzKTsKKwkJfQorCisJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwMik7CisJfQorCisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXAxKTsKK30KKworc3RhdGljIHZvaWQgZG1hX29wc19kb21haW5fZnJlZShzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRvbSkKK3sKKwlpZiAoIWRvbSkKKwkJcmV0dXJuOworCisJZG1hX29wc19mcmVlX3BhZ2V0YWJsZShkb20pOworCisJa2ZyZWUoZG9tLT5wdGVfcGFnZXMpOworCisJa2ZyZWUoZG9tLT5iaXRtYXApOworCisJa2ZyZWUoZG9tKTsKK30KKworc3RhdGljIHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG1hX29wc19kb21haW5fYWxsb2Moc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkJCQkgICB1bnNpZ25lZCBvcmRlcikKK3sKKwlzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb207CisJdW5zaWduZWQgaSwgbnVtX3B0ZV9wYWdlczsKKwl1NjQgKmwyX3BkZTsKKwl1NjQgYWRkcmVzczsKKworCS8qCisJICogQ3VycmVudGx5IHRoZSBETUEgYXBlcnR1cmUgbXVzdCBiZSBiZXR3ZWVuIDMyIE1CIGFuZCAxR0IgaW4gc2l6ZQorCSAqLworCWlmICgob3JkZXIgPCAyNSkgfHwgKG9yZGVyID4gMzApKQorCQlyZXR1cm4gTlVMTDsKKworCWRtYV9kb20gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZG1hX29wc19kb21haW4pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRtYV9kb20pCisJCXJldHVybiBOVUxMOworCisJc3Bpbl9sb2NrX2luaXQoJmRtYV9kb20tPmRvbWFpbi5sb2NrKTsKKworCWRtYV9kb20tPmRvbWFpbi5pZCA9IGRvbWFpbl9pZF9hbGxvYygpOworCWlmIChkbWFfZG9tLT5kb21haW4uaWQgPT0gMCkKKwkJZ290byBmcmVlX2RtYV9kb207CisJZG1hX2RvbS0+ZG9tYWluLm1vZGUgPSBQQUdFX01PREVfM19MRVZFTDsKKwlkbWFfZG9tLT5kb21haW4ucHRfcm9vdCA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCWRtYV9kb20tPmRvbWFpbi5wcml2ID0gZG1hX2RvbTsKKwlpZiAoIWRtYV9kb20tPmRvbWFpbi5wdF9yb290KQorCQlnb3RvIGZyZWVfZG1hX2RvbTsKKwlkbWFfZG9tLT5hcGVydHVyZV9zaXplID0gKDFVTEwgPDwgb3JkZXIpOworCWRtYV9kb20tPmJpdG1hcCA9IGt6YWxsb2MoZG1hX2RvbS0+YXBlcnR1cmVfc2l6ZSAvIChQQUdFX1NJWkUgKiA4KSwKKwkJCQkgIEdGUF9LRVJORUwpOworCWlmICghZG1hX2RvbS0+Yml0bWFwKQorCQlnb3RvIGZyZWVfZG1hX2RvbTsKKwkvKgorCSAqIG1hcmsgdGhlIGZpcnN0IHBhZ2UgYXMgYWxsb2NhdGVkIHNvIHdlIG5ldmVyIHJldHVybiAwIGFzCisJICogYSB2YWxpZCBkbWEtYWRkcmVzcy4gU28gd2UgY2FuIHVzZSAwIGFzIGVycm9yIHZhbHVlCisJICovCisJZG1hX2RvbS0+Yml0bWFwWzBdID0gMTsKKwlkbWFfZG9tLT5uZXh0X2JpdCA9IDA7CisKKwlpZiAoaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCAmJgorCSAgICBpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0IDwgZG1hX2RvbS0+YXBlcnR1cmVfc2l6ZSkgeworCQl1bnNpZ25lZCBsb25nIHN0YXJ0cGFnZSA9IGlvbW11LT5leGNsdXNpb25fc3RhcnQgPj4gUEFHRV9TSElGVDsKKwkJaW50IHBhZ2VzID0gdG9fcGFnZXMoaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCwKKwkJCQlpb21tdS0+ZXhjbHVzaW9uX2xlbmd0aCk7CisJCWRtYV9vcHNfcmVzZXJ2ZV9hZGRyZXNzZXMoZG1hX2RvbSwgc3RhcnRwYWdlLCBwYWdlcyk7CisJfQorCisJbnVtX3B0ZV9wYWdlcyA9IGRtYV9kb20tPmFwZXJ0dXJlX3NpemUgLyAoUEFHRV9TSVpFICogNTEyKTsKKwlkbWFfZG9tLT5wdGVfcGFnZXMgPSBremFsbG9jKG51bV9wdGVfcGFnZXMgKiBzaXplb2Yodm9pZCAqKSwKKwkJCUdGUF9LRVJORUwpOworCWlmICghZG1hX2RvbS0+cHRlX3BhZ2VzKQorCQlnb3RvIGZyZWVfZG1hX2RvbTsKKworCWwyX3BkZSA9ICh1NjQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJaWYgKGwyX3BkZSA9PSBOVUxMKQorCQlnb3RvIGZyZWVfZG1hX2RvbTsKKworCWRtYV9kb20tPmRvbWFpbi5wdF9yb290WzBdID0gSU9NTVVfTDJfUERFKHZpcnRfdG9fcGh5cyhsMl9wZGUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBudW1fcHRlX3BhZ2VzOyArK2kpIHsKKwkJZG1hX2RvbS0+cHRlX3BhZ2VzW2ldID0gKHU2NCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKCFkbWFfZG9tLT5wdGVfcGFnZXNbaV0pCisJCQlnb3RvIGZyZWVfZG1hX2RvbTsKKwkJYWRkcmVzcyA9IHZpcnRfdG9fcGh5cyhkbWFfZG9tLT5wdGVfcGFnZXNbaV0pOworCQlsMl9wZGVbaV0gPSBJT01NVV9MMV9QREUoYWRkcmVzcyk7CisJfQorCisJcmV0dXJuIGRtYV9kb207CisKK2ZyZWVfZG1hX2RvbToKKwlkbWFfb3BzX2RvbWFpbl9mcmVlKGRtYV9kb20pOworCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbl9mb3JfZGV2aWNlKHUxNiBkZXZpZCkKK3sKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJcmVhZF9sb2NrX2lycXNhdmUoJmFtZF9pb21tdV9kZXZ0YWJsZV9sb2NrLCBmbGFncyk7CisJZG9tID0gYW1kX2lvbW11X3BkX3RhYmxlW2RldmlkXTsKKwlyZWFkX3VubG9ja19pcnFyZXN0b3JlKCZhbWRfaW9tbXVfZGV2dGFibGVfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIGRvbTsKK30KKworc3RhdGljIHZvaWQgc2V0X2RldmljZV9kb21haW4oc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkgICAgICBzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbiwKKwkJCSAgICAgIHUxNiBkZXZpZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJdTY0IHB0ZV9yb290ID0gdmlydF90b19waHlzKGRvbWFpbi0+cHRfcm9vdCk7CisKKwlwdGVfcm9vdCB8PSAoZG9tYWluLT5tb2RlICYgMHgwNykgPDwgOTsKKwlwdGVfcm9vdCB8PSBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVcgfCBJT01NVV9QVEVfUCB8IDI7CisKKwl3cml0ZV9sb2NrX2lycXNhdmUoJmFtZF9pb21tdV9kZXZ0YWJsZV9sb2NrLCBmbGFncyk7CisJYW1kX2lvbW11X2Rldl90YWJsZVtkZXZpZF0uZGF0YVswXSA9IHB0ZV9yb290OworCWFtZF9pb21tdV9kZXZfdGFibGVbZGV2aWRdLmRhdGFbMV0gPSBwdGVfcm9vdCA+PiAzMjsKKwlhbWRfaW9tbXVfZGV2X3RhYmxlW2RldmlkXS5kYXRhWzJdID0gZG9tYWluLT5pZDsKKworCWFtZF9pb21tdV9wZF90YWJsZVtkZXZpZF0gPSBkb21haW47CisJd3JpdGVfdW5sb2NrX2lycXJlc3RvcmUoJmFtZF9pb21tdV9kZXZ0YWJsZV9sb2NrLCBmbGFncyk7CisKKwlpb21tdV9xdWV1ZV9pbnZfZGV2X2VudHJ5KGlvbW11LCBkZXZpZCk7CisKKwlpb21tdS0+bmVlZF9zeW5jID0gMTsKK30KKworc3RhdGljIGludCBnZXRfZGV2aWNlX3Jlc291cmNlcyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IGFtZF9pb21tdSAqKmlvbW11LAorCQkJCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqKmRvbWFpbiwKKwkJCQl1MTYgKmJkZikKK3sKKwlzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb207CisJc3RydWN0IHBjaV9kZXYgKnBjaWRldjsKKwl1MTYgX2JkZjsKKworCUJVR19PTighZGV2IHx8IGRldi0+YnVzICE9ICZwY2lfYnVzX3R5cGUgfHwgIWRldi0+ZG1hX21hc2spOworCisJcGNpZGV2ID0gdG9fcGNpX2RldihkZXYpOworCV9iZGYgPSAocGNpZGV2LT5idXMtPm51bWJlciA8PCA4KSB8IHBjaWRldi0+ZGV2Zm47CisKKwlpZiAoX2JkZiA+PSBhbWRfaW9tbXVfbGFzdF9iZGYpIHsKKwkJKmlvbW11ID0gTlVMTDsKKwkJKmRvbWFpbiA9IE5VTEw7CisJCSpiZGYgPSAweGZmZmY7CisJCXJldHVybiAwOworCX0KKworCSpiZGYgPSBhbWRfaW9tbXVfYWxpYXNfdGFibGVbX2JkZl07CisKKwkqaW9tbXUgPSBhbWRfaW9tbXVfcmxvb2t1cF90YWJsZVsqYmRmXTsKKwlpZiAoKmlvbW11ID09IE5VTEwpCisJCXJldHVybiAwOworCWRtYV9kb20gPSAoKmlvbW11KS0+ZGVmYXVsdF9kb207CisJKmRvbWFpbiA9IGRvbWFpbl9mb3JfZGV2aWNlKCpiZGYpOworCWlmICgqZG9tYWluID09IE5VTEwpIHsKKwkJKmRvbWFpbiA9ICZkbWFfZG9tLT5kb21haW47CisJCXNldF9kZXZpY2VfZG9tYWluKCppb21tdSwgKmRvbWFpbiwgKmJkZik7CisJCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogVXNpbmcgcHJvdGVjdGlvbiBkb21haW4gJWQgZm9yICIKKwkJCQkiZGV2aWNlICIsICgqZG9tYWluKS0+aWQpOworCQlwcmludF9kZXZpZChfYmRmLCAxKTsKKwl9CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGRtYV9hZGRyX3QgZG1hX29wc19kb21haW5fbWFwKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJCSAgICAgc3RydWN0IGRtYV9vcHNfZG9tYWluICpkb20sCisJCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCisJCQkJICAgICBwaHlzX2FkZHJfdCBwYWRkciwKKwkJCQkgICAgIGludCBkaXJlY3Rpb24pCit7CisJdTY0ICpwdGUsIF9fcHRlOworCisJV0FSTl9PTihhZGRyZXNzID4gZG9tLT5hcGVydHVyZV9zaXplKTsKKworCXBhZGRyICY9IFBBR0VfTUFTSzsKKworCXB0ZSAgPSBkb20tPnB0ZV9wYWdlc1tJT01NVV9QVEVfTDFfSU5ERVgoYWRkcmVzcyldOworCXB0ZSArPSBJT01NVV9QVEVfTDBfSU5ERVgoYWRkcmVzcyk7CisKKwlfX3B0ZSA9IHBhZGRyIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfRkM7CisKKwlpZiAoZGlyZWN0aW9uID09IERNQV9UT19ERVZJQ0UpCisJCV9fcHRlIHw9IElPTU1VX1BURV9JUjsKKwllbHNlIGlmIChkaXJlY3Rpb24gPT0gRE1BX0ZST01fREVWSUNFKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVc7CisJZWxzZSBpZiAoZGlyZWN0aW9uID09IERNQV9CSURJUkVDVElPTkFMKQorCQlfX3B0ZSB8PSBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVc7CisKKwlXQVJOX09OKCpwdGUpOworCisJKnB0ZSA9IF9fcHRlOworCisJcmV0dXJuIChkbWFfYWRkcl90KWFkZHJlc3M7Cit9CisKK3N0YXRpYyB2b2lkIGRtYV9vcHNfZG9tYWluX3VubWFwKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJCSBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRvbSwKKwkJCQkgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQoreworCXU2NCAqcHRlOworCisJaWYgKGFkZHJlc3MgPj0gZG9tLT5hcGVydHVyZV9zaXplKQorCQlyZXR1cm47CisKKwlXQVJOX09OKGFkZHJlc3MgJiAweGZmZlVMTCB8fCBhZGRyZXNzID4gZG9tLT5hcGVydHVyZV9zaXplKTsKKworCXB0ZSAgPSBkb20tPnB0ZV9wYWdlc1tJT01NVV9QVEVfTDFfSU5ERVgoYWRkcmVzcyldOworCXB0ZSArPSBJT01NVV9QVEVfTDBfSU5ERVgoYWRkcmVzcyk7CisKKwlXQVJOX09OKCEqcHRlKTsKKworCSpwdGUgPSAwVUxMOworfQorCitzdGF0aWMgZG1hX2FkZHJfdCBfX21hcF9zaW5nbGUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAorCQkJICAgICAgIHN0cnVjdCBkbWFfb3BzX2RvbWFpbiAqZG1hX2RvbSwKKwkJCSAgICAgICBwaHlzX2FkZHJfdCBwYWRkciwKKwkJCSAgICAgICBzaXplX3Qgc2l6ZSwKKwkJCSAgICAgICBpbnQgZGlyKQoreworCWRtYV9hZGRyX3Qgb2Zmc2V0ID0gcGFkZHIgJiB+UEFHRV9NQVNLOworCWRtYV9hZGRyX3QgYWRkcmVzcywgc3RhcnQ7CisJdW5zaWduZWQgaW50IHBhZ2VzOworCWludCBpOworCisJcGFnZXMgPSB0b19wYWdlcyhwYWRkciwgc2l6ZSk7CisJcGFkZHIgJj0gUEFHRV9NQVNLOworCisJYWRkcmVzcyA9IGRtYV9vcHNfYWxsb2NfYWRkcmVzc2VzKGRldiwgZG1hX2RvbSwgcGFnZXMpOworCWlmICh1bmxpa2VseShhZGRyZXNzID09IGJhZF9kbWFfYWRkcmVzcykpCisJCWdvdG8gb3V0OworCisJc3RhcnQgPSBhZGRyZXNzOworCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgKytpKSB7CisJCWRtYV9vcHNfZG9tYWluX21hcChpb21tdSwgZG1hX2RvbSwgc3RhcnQsIHBhZGRyLCBkaXIpOworCQlwYWRkciArPSBQQUdFX1NJWkU7CisJCXN0YXJ0ICs9IFBBR0VfU0laRTsKKwl9CisJYWRkcmVzcyArPSBvZmZzZXQ7CisKK291dDoKKwlyZXR1cm4gYWRkcmVzczsKK30KKworc3RhdGljIHZvaWQgX191bm1hcF9zaW5nbGUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCisJCQkgICBzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRtYV9kb20sCisJCQkgICBkbWFfYWRkcl90IGRtYV9hZGRyLAorCQkJICAgc2l6ZV90IHNpemUsCisJCQkgICBpbnQgZGlyKQoreworCWRtYV9hZGRyX3QgaSwgc3RhcnQ7CisJdW5zaWduZWQgaW50IHBhZ2VzOworCisJaWYgKChkbWFfYWRkciA9PSAwKSB8fCAoZG1hX2FkZHIgKyBzaXplID4gZG1hX2RvbS0+YXBlcnR1cmVfc2l6ZSkpCisJCXJldHVybjsKKworCXBhZ2VzID0gdG9fcGFnZXMoZG1hX2FkZHIsIHNpemUpOworCWRtYV9hZGRyICY9IFBBR0VfTUFTSzsKKwlzdGFydCA9IGRtYV9hZGRyOworCisJZm9yIChpID0gMDsgaSA8IHBhZ2VzOyArK2kpIHsKKwkJZG1hX29wc19kb21haW5fdW5tYXAoaW9tbXUsIGRtYV9kb20sIHN0YXJ0KTsKKwkJc3RhcnQgKz0gUEFHRV9TSVpFOworCX0KKworCWRtYV9vcHNfZnJlZV9hZGRyZXNzZXMoZG1hX2RvbSwgZG1hX2FkZHIsIHBhZ2VzKTsKK30KKworc3RhdGljIGRtYV9hZGRyX3QgbWFwX3NpbmdsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHBoeXNfYWRkcl90IHBhZGRyLAorCQkJICAgICBzaXplX3Qgc2l6ZSwgaW50IGRpcikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluOworCXUxNiBkZXZpZDsKKwlkbWFfYWRkcl90IGFkZHI7CisKKwlnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKTsKKworCWlmIChpb21tdSA9PSBOVUxMIHx8IGRvbWFpbiA9PSBOVUxMKQorCQlyZXR1cm4gKGRtYV9hZGRyX3QpcGFkZHI7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisJYWRkciA9IF9fbWFwX3NpbmdsZShkZXYsIGlvbW11LCBkb21haW4tPnByaXYsIHBhZGRyLCBzaXplLCBkaXIpOworCWlmIChhZGRyID09IGJhZF9kbWFfYWRkcmVzcykKKwkJZ290byBvdXQ7CisKKwlpZiAoaW9tbXVfaGFzX25wY2FjaGUoaW9tbXUpKQorCQlpb21tdV9mbHVzaF9wYWdlcyhpb21tdSwgZG9tYWluLT5pZCwgYWRkciwgc2l6ZSk7CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIGFkZHI7Cit9CisKK3N0YXRpYyB2b2lkIHVubWFwX3NpbmdsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGRtYV9hZGRyX3QgZG1hX2FkZHIsCisJCQkgc2l6ZV90IHNpemUsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisKKwlpZiAoIWdldF9kZXZpY2VfcmVzb3VyY2VzKGRldiwgJmlvbW11LCAmZG9tYWluLCAmZGV2aWQpKQorCQlyZXR1cm47CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwlfX3VubWFwX3NpbmdsZShpb21tdSwgZG9tYWluLT5wcml2LCBkbWFfYWRkciwgc2l6ZSwgZGlyKTsKKworCWlvbW11X2ZsdXNoX3BhZ2VzKGlvbW11LCBkb21haW4tPmlkLCBkbWFfYWRkciwgc2l6ZSk7CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgaW50IG1hcF9zZ19ub19pb21tdShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsaXN0LAorCQkJICAgaW50IG5lbGVtcywgaW50IGRpcikKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CisJaW50IGk7CisKKwlmb3JfZWFjaF9zZyhzZ2xpc3QsIHMsIG5lbGVtcywgaSkgeworCQlzLT5kbWFfYWRkcmVzcyA9IChkbWFfYWRkcl90KXNnX3BoeXMocyk7CisJCXMtPmRtYV9sZW5ndGggID0gcy0+bGVuZ3RoOworCX0KKworCXJldHVybiBuZWxlbXM7Cit9CisKK3N0YXRpYyBpbnQgbWFwX3NnKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHNjYXR0ZXJsaXN0ICpzZ2xpc3QsCisJCSAgaW50IG5lbGVtcywgaW50IGRpcikKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqZG9tYWluOworCXUxNiBkZXZpZDsKKwlpbnQgaTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CisJcGh5c19hZGRyX3QgcGFkZHI7CisJaW50IG1hcHBlZF9lbGVtcyA9IDA7CisKKwlnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKTsKKworCWlmICghaW9tbXUgfHwgIWRvbWFpbikKKwkJcmV0dXJuIG1hcF9zZ19ub19pb21tdShkZXYsIHNnbGlzdCwgbmVsZW1zLCBkaXIpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJZm9yX2VhY2hfc2coc2dsaXN0LCBzLCBuZWxlbXMsIGkpIHsKKwkJcGFkZHIgPSBzZ19waHlzKHMpOworCisJCXMtPmRtYV9hZGRyZXNzID0gX19tYXBfc2luZ2xlKGRldiwgaW9tbXUsIGRvbWFpbi0+cHJpdiwKKwkJCQkJICAgICAgcGFkZHIsIHMtPmxlbmd0aCwgZGlyKTsKKworCQlpZiAocy0+ZG1hX2FkZHJlc3MpIHsKKwkJCXMtPmRtYV9sZW5ndGggPSBzLT5sZW5ndGg7CisJCQltYXBwZWRfZWxlbXMrKzsKKwkJfSBlbHNlCisJCQlnb3RvIHVubWFwOworCQlpZiAoaW9tbXVfaGFzX25wY2FjaGUoaW9tbXUpKQorCQkJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsIHMtPmRtYV9hZGRyZXNzLAorCQkJCQkgIHMtPmRtYV9sZW5ndGgpOworCX0KKworCWlmIChpb21tdS0+bmVlZF9zeW5jKQorCQlpb21tdV9jb21wbGV0aW9uX3dhaXQoaW9tbXUpOworCitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gbWFwcGVkX2VsZW1zOwordW5tYXA6CisJZm9yX2VhY2hfc2coc2dsaXN0LCBzLCBtYXBwZWRfZWxlbXMsIGkpIHsKKwkJaWYgKHMtPmRtYV9hZGRyZXNzKQorCQkJX191bm1hcF9zaW5nbGUoaW9tbXUsIGRvbWFpbi0+cHJpdiwgcy0+ZG1hX2FkZHJlc3MsCisJCQkJICAgICAgIHMtPmRtYV9sZW5ndGgsIGRpcik7CisJCXMtPmRtYV9hZGRyZXNzID0gcy0+ZG1hX2xlbmd0aCA9IDA7CisJfQorCisJbWFwcGVkX2VsZW1zID0gMDsKKworCWdvdG8gb3V0OworfQorCitzdGF0aWMgdm9pZCB1bm1hcF9zZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dsaXN0LAorCQkgICAgIGludCBuZWxlbXMsIGludCBkaXIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnM7CisJdTE2IGRldmlkOworCWludCBpOworCisJaWYgKCFnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKSkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJZm9yX2VhY2hfc2coc2dsaXN0LCBzLCBuZWxlbXMsIGkpIHsKKwkJX191bm1hcF9zaW5nbGUoaW9tbXUsIGRvbWFpbi0+cHJpdiwgcy0+ZG1hX2FkZHJlc3MsCisJCQkgICAgICAgcy0+ZG1hX2xlbmd0aCwgZGlyKTsKKwkJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsIHMtPmRtYV9hZGRyZXNzLAorCQkJCSAgcy0+ZG1hX2xlbmd0aCk7CisJCXMtPmRtYV9hZGRyZXNzID0gcy0+ZG1hX2xlbmd0aCA9IDA7CisJfQorCisJaWYgKGlvbW11LT5uZWVkX3N5bmMpCisJCWlvbW11X2NvbXBsZXRpb25fd2FpdChpb21tdSk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgKmFsbG9jX2NvaGVyZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCisJCQkgICAgZG1hX2FkZHJfdCAqZG1hX2FkZHIsIGdmcF90IGZsYWcpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl2b2lkICp2aXJ0X2FkZHI7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICpkb21haW47CisJdTE2IGRldmlkOworCXBoeXNfYWRkcl90IHBhZGRyOworCisJdmlydF9hZGRyID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2VzKGZsYWcsIGdldF9vcmRlcihzaXplKSk7CisJaWYgKCF2aXJ0X2FkZHIpCisJCXJldHVybiAwOworCisJbWVtc2V0KHZpcnRfYWRkciwgMCwgc2l6ZSk7CisJcGFkZHIgPSB2aXJ0X3RvX3BoeXModmlydF9hZGRyKTsKKworCWdldF9kZXZpY2VfcmVzb3VyY2VzKGRldiwgJmlvbW11LCAmZG9tYWluLCAmZGV2aWQpOworCisJaWYgKCFpb21tdSB8fCAhZG9tYWluKSB7CisJCSpkbWFfYWRkciA9IChkbWFfYWRkcl90KXBhZGRyOworCQlyZXR1cm4gdmlydF9hZGRyOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCSpkbWFfYWRkciA9IF9fbWFwX3NpbmdsZShkZXYsIGlvbW11LCBkb21haW4tPnByaXYsIHBhZGRyLAorCQkJCSBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7CisKKwlpZiAoKmRtYV9hZGRyID09IGJhZF9kbWFfYWRkcmVzcykgeworCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKXZpcnRfYWRkciwgZ2V0X29yZGVyKHNpemUpKTsKKwkJdmlydF9hZGRyID0gTlVMTDsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKGlvbW11X2hhc19ucGNhY2hlKGlvbW11KSkKKwkJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsICpkbWFfYWRkciwgc2l6ZSk7CisKKwlpZiAoaW9tbXUtPm5lZWRfc3luYykKKwkJaW9tbXVfY29tcGxldGlvbl93YWl0KGlvbW11KTsKKworb3V0OgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRvbWFpbi0+bG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHZpcnRfYWRkcjsKK30KKworc3RhdGljIHZvaWQgZnJlZV9jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJICB2b2lkICp2aXJ0X2FkZHIsIGRtYV9hZGRyX3QgZG1hX2FkZHIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKwlzdHJ1Y3QgcHJvdGVjdGlvbl9kb21haW4gKmRvbWFpbjsKKwl1MTYgZGV2aWQ7CisKKwlnZXRfZGV2aWNlX3Jlc291cmNlcyhkZXYsICZpb21tdSwgJmRvbWFpbiwgJmRldmlkKTsKKworCWlmICghaW9tbXUgfHwgIWRvbWFpbikKKwkJZ290byBmcmVlX21lbTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZkb21haW4tPmxvY2ssIGZsYWdzKTsKKworCV9fdW5tYXBfc2luZ2xlKGlvbW11LCBkb21haW4tPnByaXYsIGRtYV9hZGRyLCBzaXplLCBETUFfQklESVJFQ1RJT05BTCk7CisJaW9tbXVfZmx1c2hfcGFnZXMoaW9tbXUsIGRvbWFpbi0+aWQsIGRtYV9hZGRyLCBzaXplKTsKKworCWlmIChpb21tdS0+bmVlZF9zeW5jKQorCQlpb21tdV9jb21wbGV0aW9uX3dhaXQoaW9tbXUpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZG9tYWluLT5sb2NrLCBmbGFncyk7CisKK2ZyZWVfbWVtOgorCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpdmlydF9hZGRyLCBnZXRfb3JkZXIoc2l6ZSkpOworfQorCisvKgorICogSWYgdGhlIGRyaXZlciBjb3JlIGluZm9ybXMgdGhlIERNQSBsYXllciBpZiBhIGRyaXZlciBncmFicyBhIGRldmljZQorICogd2UgZG9uJ3QgbmVlZCB0byBwcmVhbGxvY2F0ZSB0aGUgcHJvdGVjdGlvbiBkb21haW5zIGFueW1vcmUuCisgKiBGb3Igbm93IHdlIGhhdmUgdG8uCisgKi8KK3ZvaWQgcHJlYWxsb2NfcHJvdGVjdGlvbl9kb21haW5zKHZvaWQpCit7CisJc3RydWN0IHBjaV9kZXYgKmRldiA9IE5VTEw7CisJc3RydWN0IGRtYV9vcHNfZG9tYWluICpkbWFfZG9tOworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCWludCBvcmRlciA9IGFtZF9pb21tdV9hcGVydHVyZV9vcmRlcjsKKwl1MTYgZGV2aWQ7CisKKwl3aGlsZSAoKGRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIGRldikpICE9IE5VTEwpIHsKKwkJZGV2aWQgPSAoZGV2LT5idXMtPm51bWJlciA8PCA4KSB8IGRldi0+ZGV2Zm47CisJCWlmIChkZXZpZCA+PSBhbWRfaW9tbXVfbGFzdF9iZGYpCisJCQljb250aW51ZTsKKwkJZGV2aWQgPSBhbWRfaW9tbXVfYWxpYXNfdGFibGVbZGV2aWRdOworCQlpZiAoZG9tYWluX2Zvcl9kZXZpY2UoZGV2aWQpKQorCQkJY29udGludWU7CisJCWlvbW11ID0gYW1kX2lvbW11X3Jsb29rdXBfdGFibGVbZGV2aWRdOworCQlpZiAoIWlvbW11KQorCQkJY29udGludWU7CisJCWRtYV9kb20gPSBkbWFfb3BzX2RvbWFpbl9hbGxvYyhpb21tdSwgb3JkZXIpOworCQlpZiAoIWRtYV9kb20pCisJCQljb250aW51ZTsKKwkJaW5pdF91bml0eV9tYXBwaW5nc19mb3JfZGV2aWNlKGRtYV9kb20sIGRldmlkKTsKKwkJc2V0X2RldmljZV9kb21haW4oaW9tbXUsICZkbWFfZG9tLT5kb21haW4sIGRldmlkKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VOiBBbGxvY2F0ZWQgZG9tYWluICVkIGZvciBkZXZpY2UgIiwKKwkJICAgICAgIGRtYV9kb20tPmRvbWFpbi5pZCk7CisJCXByaW50X2RldmlkKGRldmlkLCAxKTsKKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZG1hX21hcHBpbmdfb3BzIGFtZF9pb21tdV9kbWFfb3BzID0geworCS5hbGxvY19jb2hlcmVudCA9IGFsbG9jX2NvaGVyZW50LAorCS5mcmVlX2NvaGVyZW50ID0gZnJlZV9jb2hlcmVudCwKKwkubWFwX3NpbmdsZSA9IG1hcF9zaW5nbGUsCisJLnVubWFwX3NpbmdsZSA9IHVubWFwX3NpbmdsZSwKKwkubWFwX3NnID0gbWFwX3NnLAorCS51bm1hcF9zZyA9IHVubWFwX3NnLAorfTsKKworaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdF9kbWFfb3BzKHZvaWQpCit7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJaW50IG9yZGVyID0gYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyOworCWludCByZXQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGlvbW11LCAmYW1kX2lvbW11X2xpc3QsIGxpc3QpIHsKKwkJaW9tbXUtPmRlZmF1bHRfZG9tID0gZG1hX29wc19kb21haW5fYWxsb2MoaW9tbXUsIG9yZGVyKTsKKwkJaWYgKGlvbW11LT5kZWZhdWx0X2RvbSA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IGlvbW11X2luaXRfdW5pdHlfbWFwcGluZ3MoaW9tbXUpOworCQlpZiAocmV0KQorCQkJZ290byBmcmVlX2RvbWFpbnM7CisJfQorCisJaWYgKGFtZF9pb21tdV9pc29sYXRlKQorCQlwcmVhbGxvY19wcm90ZWN0aW9uX2RvbWFpbnMoKTsKKworCWlvbW11X2RldGVjdGVkID0gMTsKKwlmb3JjZV9pb21tdSA9IDE7CisJYmFkX2RtYV9hZGRyZXNzID0gMDsKKyNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQorCWdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQgPSAxOworCWdhcnRfaW9tbXVfYXBlcnR1cmUgPSAwOworI2VuZGlmCisKKwlkbWFfb3BzID0gJmFtZF9pb21tdV9kbWFfb3BzOworCisJcmV0dXJuIDA7CisKK2ZyZWVfZG9tYWluczoKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW9tbXUsICZhbWRfaW9tbXVfbGlzdCwgbGlzdCkgeworCQlpZiAoaW9tbXUtPmRlZmF1bHRfZG9tKQorCQkJZG1hX29wc19kb21haW5fZnJlZShpb21tdS0+ZGVmYXVsdF9kb20pOworCX0KKworCXJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11X2luaXQuYyBiL2FyY2gveDg2L2tlcm5lbC9hbWRfaW9tbXVfaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMTNlNDMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvYW1kX2lvbW11X2luaXQuYwpAQCAtMCwwICsxLDg3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvYWNwaS5oPgorI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KKyNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgorI2luY2x1ZGUgPGFzbS9hbWRfaW9tbXVfdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYW1kX2lvbW11Lmg+CisjaW5jbHVkZSA8YXNtL2dhcnQuaD4KKworLyoKKyAqIGRlZmluaXRpb25zIGZvciB0aGUgQUNQSSBzY2FubmluZyBjb2RlCisgKi8KKyNkZWZpbmUgVVBEQVRFX0xBU1RfQkRGKHgpIGRvIHtcCisJaWYgKCh4KSA+IGFtZF9pb21tdV9sYXN0X2JkZikgXAorCQlhbWRfaW9tbXVfbGFzdF9iZGYgPSAoeCk7IFwKKwl9IHdoaWxlICgwKTsKKworI2RlZmluZSBERVZJRChidXMsIGRldmZuKSAoKChidXMpIDw8IDgpIHwgKGRldmZuKSkKKyNkZWZpbmUgUENJX0JVUyh4KSAoKCh4KSA+PiA4KSAmIDB4ZmYpCisjZGVmaW5lIElWUlNfSEVBREVSX0xFTkdUSCA0OAorI2RlZmluZSBUQkxfU0laRSh4KSAoMSA8PCAoUEFHRV9TSElGVCArIGdldF9vcmRlcihhbWRfaW9tbXVfbGFzdF9iZGYgKiAoeCkpKSkKKworI2RlZmluZSBBQ1BJX0lWSERfVFlQRSAgICAgICAgICAgICAgICAgIDB4MTAKKyNkZWZpbmUgQUNQSV9JVk1EX1RZUEVfQUxMICAgICAgICAgICAgICAweDIwCisjZGVmaW5lIEFDUElfSVZNRF9UWVBFICAgICAgICAgICAgICAgICAgMHgyMQorI2RlZmluZSBBQ1BJX0lWTURfVFlQRV9SQU5HRSAgICAgICAgICAgIDB4MjIKKworI2RlZmluZSBJVkhEX0RFVl9BTEwgICAgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgSVZIRF9ERVZfU0VMRUNUICAgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIElWSERfREVWX1NFTEVDVF9SQU5HRV9TVEFSVCAgICAgMHgwMworI2RlZmluZSBJVkhEX0RFVl9SQU5HRV9FTkQgICAgICAgICAgICAgIDB4MDQKKyNkZWZpbmUgSVZIRF9ERVZfQUxJQVMgICAgICAgICAgICAgICAgICAweDQyCisjZGVmaW5lIElWSERfREVWX0FMSUFTX1JBTkdFICAgICAgICAgICAgMHg0MworI2RlZmluZSBJVkhEX0RFVl9FWFRfU0VMRUNUICAgICAgICAgICAgIDB4NDYKKyNkZWZpbmUgSVZIRF9ERVZfRVhUX1NFTEVDVF9SQU5HRSAgICAgICAweDQ3CisKKyNkZWZpbmUgSVZIRF9GTEFHX0hUX1RVTl9FTiAgICAgICAgICAgICAweDAwCisjZGVmaW5lIElWSERfRkxBR19QQVNTUFdfRU4gICAgICAgICAgICAgMHgwMQorI2RlZmluZSBJVkhEX0ZMQUdfUkVTUEFTU1BXX0VOICAgICAgICAgIDB4MDIKKyNkZWZpbmUgSVZIRF9GTEFHX0lTT0NfRU4gICAgICAgICAgICAgICAweDAzCisKKyNkZWZpbmUgSVZNRF9GTEFHX0VYQ0xfUkFOR0UgICAgICAgICAgICAweDA4CisjZGVmaW5lIElWTURfRkxBR19VTklUWV9NQVAgICAgICAgICAgICAgMHgwMQorCisjZGVmaW5lIEFDUElfREVWRkxBR19JTklUUEFTUyAgICAgICAgICAgMHgwMQorI2RlZmluZSBBQ1BJX0RFVkZMQUdfRVhUSU5UICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX05NSSAgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIEFDUElfREVWRkxBR19TWVNNR1QxICAgICAgICAgICAgMHgxMAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfU1lTTUdUMiAgICAgICAgICAgIDB4MjAKKyNkZWZpbmUgQUNQSV9ERVZGTEFHX0xJTlQwICAgICAgICAgICAgICAweDQwCisjZGVmaW5lIEFDUElfREVWRkxBR19MSU5UMSAgICAgICAgICAgICAgMHg4MAorI2RlZmluZSBBQ1BJX0RFVkZMQUdfQVRTRElTICAgICAgICAgICAgIDB4MTAwMDAwMDAKKworc3RydWN0IGl2aGRfaGVhZGVyIHsKKwl1OCB0eXBlOworCXU4IGZsYWdzOworCXUxNiBsZW5ndGg7CisJdTE2IGRldmlkOworCXUxNiBjYXBfcHRyOworCXU2NCBtbWlvX3BoeXM7CisJdTE2IHBjaV9zZWc7CisJdTE2IGluZm87CisJdTMyIHJlc2VydmVkOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKworc3RydWN0IGl2aGRfZW50cnkgeworCXU4IHR5cGU7CisJdTE2IGRldmlkOworCXU4IGZsYWdzOworCXUzMiBleHQ7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOworCitzdHJ1Y3QgaXZtZF9oZWFkZXIgeworCXU4IHR5cGU7CisJdTggZmxhZ3M7CisJdTE2IGxlbmd0aDsKKwl1MTYgZGV2aWQ7CisJdTE2IGF1eDsKKwl1NjQgcmVzdjsKKwl1NjQgcmFuZ2Vfc3RhcnQ7CisJdTY0IHJhbmdlX2xlbmd0aDsKK30gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CisKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBhbWRfaW9tbXVfZGV0ZWN0ZWQ7CisKK3UxNiBhbWRfaW9tbXVfbGFzdF9iZGY7CitzdHJ1Y3QgbGlzdF9oZWFkIGFtZF9pb21tdV91bml0eV9tYXA7Cit1bnNpZ25lZCBhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNjsKK2ludCBhbWRfaW9tbXVfaXNvbGF0ZTsKKworc3RydWN0IGxpc3RfaGVhZCBhbWRfaW9tbXVfbGlzdDsKK3N0cnVjdCBkZXZfdGFibGVfZW50cnkgKmFtZF9pb21tdV9kZXZfdGFibGU7Cit1MTYgKmFtZF9pb21tdV9hbGlhc190YWJsZTsKK3N0cnVjdCBhbWRfaW9tbXUgKiphbWRfaW9tbXVfcmxvb2t1cF90YWJsZTsKK3N0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiAqKmFtZF9pb21tdV9wZF90YWJsZTsKK3Vuc2lnbmVkIGxvbmcgKmFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXA7CisKK3N0YXRpYyB1MzIgZGV2X3RhYmxlX3NpemU7CitzdGF0aWMgdTMyIGFsaWFzX3RhYmxlX3NpemU7CitzdGF0aWMgdTMyIHJsb29rdXBfdGFibGVfc2l6ZTsKKworc3RhdGljIHZvaWQgX19pbml0IGlvbW11X3NldF9leGNsdXNpb25fcmFuZ2Uoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJdTY0IHN0YXJ0ID0gaW9tbXUtPmV4Y2x1c2lvbl9zdGFydCAmIFBBR0VfTUFTSzsKKwl1NjQgbGltaXQgPSAoc3RhcnQgKyBpb21tdS0+ZXhjbHVzaW9uX2xlbmd0aCkgJiBQQUdFX01BU0s7CisJdTY0IGVudHJ5OworCisJaWYgKCFpb21tdS0+ZXhjbHVzaW9uX3N0YXJ0KQorCQlyZXR1cm47CisKKwllbnRyeSA9IHN0YXJ0IHwgTU1JT19FWENMX0VOQUJMRV9NQVNLOworCW1lbWNweV90b2lvKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0VYQ0xfQkFTRV9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworCisJZW50cnkgPSBsaW1pdDsKKwltZW1jcHlfdG9pbyhpb21tdS0+bW1pb19iYXNlICsgTU1JT19FWENMX0xJTUlUX09GRlNFVCwKKwkJCSZlbnRyeSwgc2l6ZW9mKGVudHJ5KSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9zZXRfZGV2aWNlX3RhYmxlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXUzMiBlbnRyeTsKKworCUJVR19PTihpb21tdS0+bW1pb19iYXNlID09IE5VTEwpOworCisJZW50cnkgPSB2aXJ0X3RvX3BoeXMoYW1kX2lvbW11X2Rldl90YWJsZSk7CisJZW50cnkgfD0gKGRldl90YWJsZV9zaXplID4+IDEyKSAtIDE7CisJbWVtY3B5X3RvaW8oaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fREVWX1RBQkxFX09GRlNFVCwKKwkJCSZlbnRyeSwgc2l6ZW9mKGVudHJ5KSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9mZWF0dXJlX2VuYWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTggYml0KQoreworCXUzMiBjdHJsOworCisJY3RybCA9IHJlYWRsKGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NPTlRST0xfT0ZGU0VUKTsKKwljdHJsIHw9ICgxIDw8IGJpdCk7CisJd3JpdGVsKGN0cmwsIGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NPTlRST0xfT0ZGU0VUKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGlvbW11X2ZlYXR1cmVfZGlzYWJsZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTggYml0KQoreworCXUzMiBjdHJsOworCisJY3RybCA9ICh1NjQpcmVhZGwoaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fQ09OVFJPTF9PRkZTRVQpOworCWN0cmwgJj0gfigxIDw8IGJpdCk7CisJd3JpdGVsKGN0cmwsIGlvbW11LT5tbWlvX2Jhc2UgKyBNTUlPX0NPTlRST0xfT0ZGU0VUKTsKK30KKwordm9pZCBfX2luaXQgaW9tbXVfZW5hYmxlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXByaW50ayhLRVJOX0lORk8gIkFNRCBJT01NVTogRW5hYmxpbmcgSU9NTVUgYXQgIik7CisJcHJpbnRfZGV2aWQoaW9tbXUtPmRldmlkLCAwKTsKKwlwcmludGsoIiBjYXAgMHglaHhcbiIsIGlvbW11LT5jYXBfcHRyKTsKKworCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0lPTU1VX0VOKTsKK30KKworc3RhdGljIHU4ICogX19pbml0IGlvbW11X21hcF9tbWlvX3NwYWNlKHU2NCBhZGRyZXNzKQoreworCXU4ICpyZXQ7CisKKwlpZiAoIXJlcXVlc3RfbWVtX3JlZ2lvbihhZGRyZXNzLCBNTUlPX1JFR0lPTl9MRU5HVEgsICJhbWRfaW9tbXUiKSkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXQgPSBpb3JlbWFwX25vY2FjaGUoYWRkcmVzcywgTU1JT19SRUdJT05fTEVOR1RIKTsKKwlpZiAocmV0ICE9IE5VTEwpCisJCXJldHVybiByZXQ7CisKKwlyZWxlYXNlX21lbV9yZWdpb24oYWRkcmVzcywgTU1JT19SRUdJT05fTEVOR1RIKTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW9tbXVfdW5tYXBfbW1pb19zcGFjZShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlpZiAoaW9tbXUtPm1taW9fYmFzZSkKKwkJaW91bm1hcChpb21tdS0+bW1pb19iYXNlKTsKKwlyZWxlYXNlX21lbV9yZWdpb24oaW9tbXUtPm1taW9fcGh5cywgTU1JT19SRUdJT05fTEVOR1RIKTsKK30KKworc3RhdGljIGludCBfX2luaXQgZmluZF9sYXN0X2RldmlkX29uX3BjaShpbnQgYnVzLCBpbnQgZGV2LCBpbnQgZm4sIGludCBjYXBfcHRyKQoreworCXUzMiBjYXA7CisKKwljYXAgPSByZWFkX3BjaV9jb25maWcoYnVzLCBkZXYsIGZuLCBjYXBfcHRyK01NSU9fUkFOR0VfT0ZGU0VUKTsKKwlVUERBVEVfTEFTVF9CREYoREVWSUQoTU1JT19HRVRfQlVTKGNhcCksIE1NSU9fR0VUX0xEKGNhcCkpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBmaW5kX2xhc3RfZGV2aWRfZnJvbV9pdmhkKHN0cnVjdCBpdmhkX2hlYWRlciAqaCkKK3sKKwl1OCAqcCA9ICh2b2lkICopaCwgKmVuZCA9ICh2b2lkICopaDsKKwlzdHJ1Y3QgaXZoZF9lbnRyeSAqZGV2OworCisJcCArPSBzaXplb2YoKmgpOworCWVuZCArPSBoLT5sZW5ndGg7CisKKwlmaW5kX2xhc3RfZGV2aWRfb25fcGNpKFBDSV9CVVMoaC0+ZGV2aWQpLAorCQkJUENJX1NMT1QoaC0+ZGV2aWQpLAorCQkJUENJX0ZVTkMoaC0+ZGV2aWQpLAorCQkJaC0+Y2FwX3B0cik7CisKKwl3aGlsZSAocCA8IGVuZCkgeworCQlkZXYgPSAoc3RydWN0IGl2aGRfZW50cnkgKilwOworCQlzd2l0Y2ggKGRldi0+dHlwZSkgeworCQljYXNlIElWSERfREVWX1NFTEVDVDoKKwkJY2FzZSBJVkhEX0RFVl9SQU5HRV9FTkQ6CisJCWNhc2UgSVZIRF9ERVZfQUxJQVM6CisJCWNhc2UgSVZIRF9ERVZfRVhUX1NFTEVDVDoKKwkJCVVQREFURV9MQVNUX0JERihkZXYtPmRldmlkKTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJcCArPSAweDA0IDw8ICgqcCA+PiA2KTsKKwl9CisKKwlXQVJOX09OKHAgIT0gZW5kKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBmaW5kX2xhc3RfZGV2aWRfYWNwaShzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCWludCBpOworCXU4IGNoZWNrc3VtID0gMCwgKnAgPSAodTggKil0YWJsZSwgKmVuZCA9ICh1OCAqKXRhYmxlOworCXN0cnVjdCBpdmhkX2hlYWRlciAqaDsKKworCS8qCisJICogVmFsaWRhdGUgY2hlY2tzdW0gaGVyZSBzbyB3ZSBkb24ndCBuZWVkIHRvIGRvIGl0IHdoZW4KKwkgKiB3ZSBhY3R1YWxseSBwYXJzZSB0aGUgdGFibGUKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgdGFibGUtPmxlbmd0aDsgKytpKQorCQljaGVja3N1bSArPSBwW2ldOworCWlmIChjaGVja3N1bSAhPSAwKQorCQkvKiBBQ1BJIHRhYmxlIGNvcnJ1cHQgKi8KKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlwICs9IElWUlNfSEVBREVSX0xFTkdUSDsKKworCWVuZCArPSB0YWJsZS0+bGVuZ3RoOworCXdoaWxlIChwIDwgZW5kKSB7CisJCWggPSAoc3RydWN0IGl2aGRfaGVhZGVyICopcDsKKwkJc3dpdGNoIChoLT50eXBlKSB7CisJCWNhc2UgQUNQSV9JVkhEX1RZUEU6CisJCQlmaW5kX2xhc3RfZGV2aWRfZnJvbV9pdmhkKGgpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCQlwICs9IGgtPmxlbmd0aDsKKwl9CisJV0FSTl9PTihwICE9IGVuZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHU4ICogX19pbml0IGFsbG9jX2NvbW1hbmRfYnVmZmVyKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworCXU4ICpjbWRfYnVmID0gKHU4ICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJZ2V0X29yZGVyKENNRF9CVUZGRVJfU0laRSkpOworCXU2NCBlbnRyeSA9IDA7CisKKwlpZiAoY21kX2J1ZiA9PSBOVUxMKQorCQlyZXR1cm4gTlVMTDsKKworCWlvbW11LT5jbWRfYnVmX3NpemUgPSBDTURfQlVGRkVSX1NJWkU7CisKKwltZW1zZXQoY21kX2J1ZiwgMCwgQ01EX0JVRkZFUl9TSVpFKTsKKworCWVudHJ5ID0gKHU2NCl2aXJ0X3RvX3BoeXMoY21kX2J1Zik7CisJZW50cnkgfD0gTU1JT19DTURfU0laRV81MTI7CisJbWVtY3B5X3RvaW8oaW9tbXUtPm1taW9fYmFzZSArIE1NSU9fQ01EX0JVRl9PRkZTRVQsCisJCQkmZW50cnksIHNpemVvZihlbnRyeSkpOworCisJaW9tbXVfZmVhdHVyZV9lbmFibGUoaW9tbXUsIENPTlRST0xfQ01EQlVGX0VOKTsKKworCXJldHVybiBjbWRfYnVmOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnJlZV9jb21tYW5kX2J1ZmZlcihzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlpZiAoaW9tbXUtPmNtZF9idWYpCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpaW9tbXUtPmNtZF9idWYsCisJCQkJZ2V0X29yZGVyKENNRF9CVUZGRVJfU0laRSkpOworfQorCitzdGF0aWMgdm9pZCBzZXRfZGV2X2VudHJ5X2JpdCh1MTYgZGV2aWQsIHU4IGJpdCkKK3sKKwlpbnQgaSA9IChiaXQgPj4gNSkgJiAweDA3OworCWludCBfYml0ID0gYml0ICYgMHgxZjsKKworCWFtZF9pb21tdV9kZXZfdGFibGVbZGV2aWRdLmRhdGFbaV0gfD0gKDEgPDwgX2JpdCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaSh1MTYgZGV2aWQsIHUzMiBmbGFncywgdTMyIGV4dF9mbGFncykKK3sKKwlpZiAoZmxhZ3MgJiBBQ1BJX0RFVkZMQUdfSU5JVFBBU1MpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfSU5JVF9QQVNTKTsKKwlpZiAoZmxhZ3MgJiBBQ1BJX0RFVkZMQUdfRVhUSU5UKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX0VJTlRfUEFTUyk7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX05NSSkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9OTUlfUEFTUyk7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX1NZU01HVDEpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfU1lTTUdUMSk7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX1NZU01HVDIpCisJCXNldF9kZXZfZW50cnlfYml0KGRldmlkLCBERVZfRU5UUllfU1lTTUdUMik7CisJaWYgKGZsYWdzICYgQUNQSV9ERVZGTEFHX0xJTlQwKQorCQlzZXRfZGV2X2VudHJ5X2JpdChkZXZpZCwgREVWX0VOVFJZX0xJTlQwX1BBU1MpOworCWlmIChmbGFncyAmIEFDUElfREVWRkxBR19MSU5UMSkKKwkJc2V0X2Rldl9lbnRyeV9iaXQoZGV2aWQsIERFVl9FTlRSWV9MSU5UMV9QQVNTKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IHNldF9pb21tdV9mb3JfZGV2aWNlKHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCB1MTYgZGV2aWQpCit7CisJYW1kX2lvbW11X3Jsb29rdXBfdGFibGVbZGV2aWRdID0gaW9tbXU7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXRfZGV2aWNlX2V4Y2x1c2lvbl9yYW5nZSh1MTYgZGV2aWQsIHN0cnVjdCBpdm1kX2hlYWRlciAqbSkKK3sKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSA9IGFtZF9pb21tdV9ybG9va3VwX3RhYmxlW2RldmlkXTsKKworCWlmICghKG0tPmZsYWdzICYgSVZNRF9GTEFHX0VYQ0xfUkFOR0UpKQorCQlyZXR1cm47CisKKwlpZiAoaW9tbXUpIHsKKwkJc2V0X2Rldl9lbnRyeV9iaXQobS0+ZGV2aWQsIERFVl9FTlRSWV9FWCk7CisJCWlvbW11LT5leGNsdXNpb25fc3RhcnQgPSBtLT5yYW5nZV9zdGFydDsKKwkJaW9tbXUtPmV4Y2x1c2lvbl9sZW5ndGggPSBtLT5yYW5nZV9sZW5ndGg7CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9pb21tdV9mcm9tX3BjaShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwlpbnQgYnVzID0gUENJX0JVUyhpb21tdS0+ZGV2aWQpOworCWludCBkZXYgPSBQQ0lfU0xPVChpb21tdS0+ZGV2aWQpOworCWludCBmbiAgPSBQQ0lfRlVOQyhpb21tdS0+ZGV2aWQpOworCWludCBjYXBfcHRyID0gaW9tbXUtPmNhcF9wdHI7CisJdTMyIHJhbmdlOworCisJaW9tbXUtPmNhcCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIGRldiwgZm4sIGNhcF9wdHIrTU1JT19DQVBfSERSX09GRlNFVCk7CisKKwlyYW5nZSA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIGRldiwgZm4sIGNhcF9wdHIrTU1JT19SQU5HRV9PRkZTRVQpOworCWlvbW11LT5maXJzdF9kZXZpY2UgPSBERVZJRChNTUlPX0dFVF9CVVMocmFuZ2UpLCBNTUlPX0dFVF9GRChyYW5nZSkpOworCWlvbW11LT5sYXN0X2RldmljZSA9IERFVklEKE1NSU9fR0VUX0JVUyhyYW5nZSksIE1NSU9fR0VUX0xEKHJhbmdlKSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X2lvbW11X2Zyb21fYWNwaShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKKwkJCQkJc3RydWN0IGl2aGRfaGVhZGVyICpoKQoreworCXU4ICpwID0gKHU4ICopaDsKKwl1OCAqZW5kID0gcCwgZmxhZ3MgPSAwOworCXUxNiBkZXZfaSwgZGV2aWQgPSAwLCBkZXZpZF9zdGFydCA9IDAsIGRldmlkX3RvID0gMDsKKwl1MzIgZXh0X2ZsYWdzID0gMDsKKwlib29sIGFsaWFzID0gMDsKKwlzdHJ1Y3QgaXZoZF9lbnRyeSAqZTsKKworCS8qCisJICogRmlyc3Qgc2V0IHRoZSByZWNvbW1lbmRlZCBmZWF0dXJlIGVuYWJsZSBiaXRzIGZyb20gQUNQSQorCSAqIGludG8gdGhlIElPTU1VIGNvbnRyb2wgcmVnaXN0ZXJzCisJICovCisJaC0+ZmxhZ3MgJiBJVkhEX0ZMQUdfSFRfVFVOX0VOID8KKwkJaW9tbXVfZmVhdHVyZV9lbmFibGUoaW9tbXUsIENPTlRST0xfSFRfVFVOX0VOKSA6CisJCWlvbW11X2ZlYXR1cmVfZGlzYWJsZShpb21tdSwgQ09OVFJPTF9IVF9UVU5fRU4pOworCisJaC0+ZmxhZ3MgJiBJVkhEX0ZMQUdfUEFTU1BXX0VOID8KKwkJaW9tbXVfZmVhdHVyZV9lbmFibGUoaW9tbXUsIENPTlRST0xfUEFTU1BXX0VOKSA6CisJCWlvbW11X2ZlYXR1cmVfZGlzYWJsZShpb21tdSwgQ09OVFJPTF9QQVNTUFdfRU4pOworCisJaC0+ZmxhZ3MgJiBJVkhEX0ZMQUdfUkVTUEFTU1BXX0VOID8KKwkJaW9tbXVfZmVhdHVyZV9lbmFibGUoaW9tbXUsIENPTlRST0xfUkVTUEFTU1BXX0VOKSA6CisJCWlvbW11X2ZlYXR1cmVfZGlzYWJsZShpb21tdSwgQ09OVFJPTF9SRVNQQVNTUFdfRU4pOworCisJaC0+ZmxhZ3MgJiBJVkhEX0ZMQUdfSVNPQ19FTiA/CisJCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0lTT0NfRU4pIDoKKwkJaW9tbXVfZmVhdHVyZV9kaXNhYmxlKGlvbW11LCBDT05UUk9MX0lTT0NfRU4pOworCisJLyoKKwkgKiBtYWtlIElPTU1VIG1lbW9yeSBhY2Nlc3NlcyBjYWNoZSBjb2hlcmVudAorCSAqLworCWlvbW11X2ZlYXR1cmVfZW5hYmxlKGlvbW11LCBDT05UUk9MX0NPSEVSRU5UX0VOKTsKKworCS8qCisJICogRG9uZS4gTm93IHBhcnNlIHRoZSBkZXZpY2UgZW50cmllcworCSAqLworCXAgKz0gc2l6ZW9mKHN0cnVjdCBpdmhkX2hlYWRlcik7CisJZW5kICs9IGgtPmxlbmd0aDsKKworCXdoaWxlIChwIDwgZW5kKSB7CisJCWUgPSAoc3RydWN0IGl2aGRfZW50cnkgKilwOworCQlzd2l0Y2ggKGUtPnR5cGUpIHsKKwkJY2FzZSBJVkhEX0RFVl9BTEw6CisJCQlmb3IgKGRldl9pID0gaW9tbXUtPmZpcnN0X2RldmljZTsKKwkJCQkJZGV2X2kgPD0gaW9tbXUtPmxhc3RfZGV2aWNlOyArK2Rldl9pKQorCQkJCXNldF9kZXZfZW50cnlfZnJvbV9hY3BpKGRldl9pLCBlLT5mbGFncywgMCk7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9TRUxFQ1Q6CisJCQlkZXZpZCA9IGUtPmRldmlkOworCQkJc2V0X2Rldl9lbnRyeV9mcm9tX2FjcGkoZGV2aWQsIGUtPmZsYWdzLCAwKTsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX1NFTEVDVF9SQU5HRV9TVEFSVDoKKwkJCWRldmlkX3N0YXJ0ID0gZS0+ZGV2aWQ7CisJCQlmbGFncyA9IGUtPmZsYWdzOworCQkJZXh0X2ZsYWdzID0gMDsKKwkJCWFsaWFzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElWSERfREVWX0FMSUFTOgorCQkJZGV2aWQgPSBlLT5kZXZpZDsKKwkJCWRldmlkX3RvID0gZS0+ZXh0ID4+IDg7CisJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaShkZXZpZCwgZS0+ZmxhZ3MsIDApOworCQkJYW1kX2lvbW11X2FsaWFzX3RhYmxlW2RldmlkXSA9IGRldmlkX3RvOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfQUxJQVNfUkFOR0U6CisJCQlkZXZpZF9zdGFydCA9IGUtPmRldmlkOworCQkJZmxhZ3MgPSBlLT5mbGFnczsKKwkJCWRldmlkX3RvID0gZS0+ZXh0ID4+IDg7CisJCQlleHRfZmxhZ3MgPSAwOworCQkJYWxpYXMgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgSVZIRF9ERVZfRVhUX1NFTEVDVDoKKwkJCWRldmlkID0gZS0+ZGV2aWQ7CisJCQlzZXRfZGV2X2VudHJ5X2Zyb21fYWNwaShkZXZpZCwgZS0+ZmxhZ3MsIGUtPmV4dCk7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9FWFRfU0VMRUNUX1JBTkdFOgorCQkJZGV2aWRfc3RhcnQgPSBlLT5kZXZpZDsKKwkJCWZsYWdzID0gZS0+ZmxhZ3M7CisJCQlleHRfZmxhZ3MgPSBlLT5leHQ7CisJCQlhbGlhcyA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBJVkhEX0RFVl9SQU5HRV9FTkQ6CisJCQlkZXZpZCA9IGUtPmRldmlkOworCQkJZm9yIChkZXZfaSA9IGRldmlkX3N0YXJ0OyBkZXZfaSA8PSBkZXZpZDsgKytkZXZfaSkgeworCQkJCWlmIChhbGlhcykKKwkJCQkJYW1kX2lvbW11X2FsaWFzX3RhYmxlW2Rldl9pXSA9IGRldmlkX3RvOworCQkJCXNldF9kZXZfZW50cnlfZnJvbV9hY3BpKAorCQkJCQkJYW1kX2lvbW11X2FsaWFzX3RhYmxlW2Rldl9pXSwKKwkJCQkJCWZsYWdzLCBleHRfZmxhZ3MpOworCQkJfQorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCisJCXAgKz0gMHgwNCA8PCAoZS0+dHlwZSA+PiA2KTsKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfaW9tbXVfZGV2aWNlcyhzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSkKK3sKKwl1MTYgaTsKKworCWZvciAoaSA9IGlvbW11LT5maXJzdF9kZXZpY2U7IGkgPD0gaW9tbXUtPmxhc3RfZGV2aWNlOyArK2kpCisJCXNldF9pb21tdV9mb3JfZGV2aWNlKGlvbW11LCBpKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZnJlZV9pb21tdV9vbmUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpCit7CisJZnJlZV9jb21tYW5kX2J1ZmZlcihpb21tdSk7CisJaW9tbXVfdW5tYXBfbW1pb19zcGFjZShpb21tdSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBmcmVlX2lvbW11X2FsbCh2b2lkKQoreworCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCAqbmV4dDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShpb21tdSwgbmV4dCwgJmFtZF9pb21tdV9saXN0LCBsaXN0KSB7CisJCWxpc3RfZGVsKCZpb21tdS0+bGlzdCk7CisJCWZyZWVfaW9tbXVfb25lKGlvbW11KTsKKwkJa2ZyZWUoaW9tbXUpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF9pb21tdV9vbmUoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUsIHN0cnVjdCBpdmhkX2hlYWRlciAqaCkKK3sKKwlzcGluX2xvY2tfaW5pdCgmaW9tbXUtPmxvY2spOworCWxpc3RfYWRkX3RhaWwoJmlvbW11LT5saXN0LCAmYW1kX2lvbW11X2xpc3QpOworCisJLyoKKwkgKiBDb3B5IGRhdGEgZnJvbSBBQ1BJIHRhYmxlIGVudHJ5IHRvIHRoZSBpb21tdSBzdHJ1Y3QKKwkgKi8KKwlpb21tdS0+ZGV2aWQgPSBoLT5kZXZpZDsKKwlpb21tdS0+Y2FwX3B0ciA9IGgtPmNhcF9wdHI7CisJaW9tbXUtPm1taW9fcGh5cyA9IGgtPm1taW9fcGh5czsKKwlpb21tdS0+bW1pb19iYXNlID0gaW9tbXVfbWFwX21taW9fc3BhY2UoaC0+bW1pb19waHlzKTsKKwlpZiAoIWlvbW11LT5tbWlvX2Jhc2UpCisJCXJldHVybiAtRU5PTUVNOworCisJaW9tbXVfc2V0X2RldmljZV90YWJsZShpb21tdSk7CisJaW9tbXUtPmNtZF9idWYgPSBhbGxvY19jb21tYW5kX2J1ZmZlcihpb21tdSk7CisJaWYgKCFpb21tdS0+Y21kX2J1ZikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpbml0X2lvbW11X2Zyb21fcGNpKGlvbW11KTsKKwlpbml0X2lvbW11X2Zyb21fYWNwaShpb21tdSwgaCk7CisJaW5pdF9pb21tdV9kZXZpY2VzKGlvbW11KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X2lvbW11X2FsbChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQoreworCXU4ICpwID0gKHU4ICopdGFibGUsICplbmQgPSAodTggKil0YWJsZTsKKwlzdHJ1Y3QgaXZoZF9oZWFkZXIgKmg7CisJc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisJaW50IHJldDsKKworCUlOSVRfTElTVF9IRUFEKCZhbWRfaW9tbXVfbGlzdCk7CisKKwllbmQgKz0gdGFibGUtPmxlbmd0aDsKKwlwICs9IElWUlNfSEVBREVSX0xFTkdUSDsKKworCXdoaWxlIChwIDwgZW5kKSB7CisJCWggPSAoc3RydWN0IGl2aGRfaGVhZGVyICopcDsKKwkJc3dpdGNoICgqcCkgeworCQljYXNlIEFDUElfSVZIRF9UWVBFOgorCQkJaW9tbXUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYW1kX2lvbW11KSwgR0ZQX0tFUk5FTCk7CisJCQlpZiAoaW9tbXUgPT0gTlVMTCkKKwkJCQlyZXR1cm4gLUVOT01FTTsKKwkJCXJldCA9IGluaXRfaW9tbXVfb25lKGlvbW11LCBoKTsKKwkJCWlmIChyZXQpCisJCQkJcmV0dXJuIHJldDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJCX0KKwkJcCArPSBoLT5sZW5ndGg7CisKKwl9CisJV0FSTl9PTihwICE9IGVuZCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGZyZWVfdW5pdHlfbWFwcyh2b2lkKQoreworCXN0cnVjdCB1bml0eV9tYXBfZW50cnkgKmVudHJ5LCAqbmV4dDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgbmV4dCwgJmFtZF9pb21tdV91bml0eV9tYXAsIGxpc3QpIHsKKwkJbGlzdF9kZWwoJmVudHJ5LT5saXN0KTsKKwkJa2ZyZWUoZW50cnkpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgaW5pdF9leGNsdXNpb25fcmFuZ2Uoc3RydWN0IGl2bWRfaGVhZGVyICptKQoreworCWludCBpOworCisJc3dpdGNoIChtLT50eXBlKSB7CisJY2FzZSBBQ1BJX0lWTURfVFlQRToKKwkJc2V0X2RldmljZV9leGNsdXNpb25fcmFuZ2UobS0+ZGV2aWQsIG0pOworCQlicmVhazsKKwljYXNlIEFDUElfSVZNRF9UWVBFX0FMTDoKKwkJZm9yIChpID0gMDsgaSA8IGFtZF9pb21tdV9sYXN0X2JkZjsgKytpKQorCQkJc2V0X2RldmljZV9leGNsdXNpb25fcmFuZ2UoaSwgbSk7CisJCWJyZWFrOworCWNhc2UgQUNQSV9JVk1EX1RZUEVfUkFOR0U6CisJCWZvciAoaSA9IG0tPmRldmlkOyBpIDw9IG0tPmF1eDsgKytpKQorCQkJc2V0X2RldmljZV9leGNsdXNpb25fcmFuZ2UoaSwgbSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBpbml0X3VuaXR5X21hcF9yYW5nZShzdHJ1Y3QgaXZtZF9oZWFkZXIgKm0pCit7CisJc3RydWN0IHVuaXR5X21hcF9lbnRyeSAqZSA9IDA7CisKKwllID0ga3phbGxvYyhzaXplb2YoKmUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXN3aXRjaCAobS0+dHlwZSkgeworCWRlZmF1bHQ6CisJY2FzZSBBQ1BJX0lWTURfVFlQRToKKwkJZS0+ZGV2aWRfc3RhcnQgPSBlLT5kZXZpZF9lbmQgPSBtLT5kZXZpZDsKKwkJYnJlYWs7CisJY2FzZSBBQ1BJX0lWTURfVFlQRV9BTEw6CisJCWUtPmRldmlkX3N0YXJ0ID0gMDsKKwkJZS0+ZGV2aWRfZW5kID0gYW1kX2lvbW11X2xhc3RfYmRmOworCQlicmVhazsKKwljYXNlIEFDUElfSVZNRF9UWVBFX1JBTkdFOgorCQllLT5kZXZpZF9zdGFydCA9IG0tPmRldmlkOworCQllLT5kZXZpZF9lbmQgPSBtLT5hdXg7CisJCWJyZWFrOworCX0KKwllLT5hZGRyZXNzX3N0YXJ0ID0gUEFHRV9BTElHTihtLT5yYW5nZV9zdGFydCk7CisJZS0+YWRkcmVzc19lbmQgPSBlLT5hZGRyZXNzX3N0YXJ0ICsgUEFHRV9BTElHTihtLT5yYW5nZV9sZW5ndGgpOworCWUtPnByb3QgPSBtLT5mbGFncyA+PiAxOworCisJbGlzdF9hZGRfdGFpbCgmZS0+bGlzdCwgJmFtZF9pb21tdV91bml0eV9tYXApOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXRfbWVtb3J5X2RlZmluaXRpb25zKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqdGFibGUpCit7CisJdTggKnAgPSAodTggKil0YWJsZSwgKmVuZCA9ICh1OCAqKXRhYmxlOworCXN0cnVjdCBpdm1kX2hlYWRlciAqbTsKKworCUlOSVRfTElTVF9IRUFEKCZhbWRfaW9tbXVfdW5pdHlfbWFwKTsKKworCWVuZCArPSB0YWJsZS0+bGVuZ3RoOworCXAgKz0gSVZSU19IRUFERVJfTEVOR1RIOworCisJd2hpbGUgKHAgPCBlbmQpIHsKKwkJbSA9IChzdHJ1Y3QgaXZtZF9oZWFkZXIgKilwOworCQlpZiAobS0+ZmxhZ3MgJiBJVk1EX0ZMQUdfRVhDTF9SQU5HRSkKKwkJCWluaXRfZXhjbHVzaW9uX3JhbmdlKG0pOworCQllbHNlIGlmIChtLT5mbGFncyAmIElWTURfRkxBR19VTklUWV9NQVApCisJCQlpbml0X3VuaXR5X21hcF9yYW5nZShtKTsKKworCQlwICs9IG0tPmxlbmd0aDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGVuYWJsZV9pb21tdXModm9pZCkKK3sKKwlzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW9tbXUsICZhbWRfaW9tbXVfbGlzdCwgbGlzdCkgeworCQlpb21tdV9zZXRfZXhjbHVzaW9uX3JhbmdlKGlvbW11KTsKKwkJaW9tbXVfZW5hYmxlKGlvbW11KTsKKwl9Cit9CisKKy8qCisgKiBTdXNwZW5kL1Jlc3VtZSBzdXBwb3J0CisgKiBkaXNhYmxlIHN1c3BlbmQgdW50aWwgcmVhbCByZXN1bWUgaW1wbGVtZW50ZWQKKyAqLworCitzdGF0aWMgaW50IGFtZF9pb21tdV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhbWRfaW9tbXVfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGFtZF9pb21tdV9zeXNkZXZfY2xhc3MgPSB7CisJLm5hbWUgPSAiYW1kX2lvbW11IiwKKwkuc3VzcGVuZCA9IGFtZF9pb21tdV9zdXNwZW5kLAorCS5yZXN1bWUgPSBhbWRfaW9tbXVfcmVzdW1lLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9hbWRfaW9tbXUgPSB7CisJLmlkID0gMCwKKwkuY2xzID0gJmFtZF9pb21tdV9zeXNkZXZfY2xhc3MsCit9OworCitpbnQgX19pbml0IGFtZF9pb21tdV9pbml0KHZvaWQpCit7CisJaW50IGksIHJldCA9IDA7CisKKworCWlmIChub19pb21tdSkgeworCQlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVUgZGlzYWJsZWQgYnkga2VybmVsIGNvbW1hbmQgbGluZVxuIik7CisJCXJldHVybiAwOworCX0KKworCWlmICghYW1kX2lvbW11X2RldGVjdGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qCisJICogRmlyc3QgcGFyc2UgQUNQSSB0YWJsZXMgdG8gZmluZCB0aGUgbGFyZ2VzdCBCdXMvRGV2L0Z1bmMKKwkgKiB3ZSBuZWVkIHRvIGhhbmRsZS4gVXBvbiB0aGlzIGluZm9ybWF0aW9uIHRoZSBzaGFyZWQgZGF0YQorCSAqIHN0cnVjdHVyZXMgZm9yIHRoZSBJT01NVXMgaW4gdGhlIHN5c3RlbSB3aWxsIGJlIGFsbG9jYXRlZAorCSAqLworCWlmIChhY3BpX3RhYmxlX3BhcnNlKCJJVlJTIiwgZmluZF9sYXN0X2RldmlkX2FjcGkpICE9IDApCisJCXJldHVybiAtRU5PREVWOworCisJZGV2X3RhYmxlX3NpemUgICAgID0gVEJMX1NJWkUoREVWX1RBQkxFX0VOVFJZX1NJWkUpOworCWFsaWFzX3RhYmxlX3NpemUgICA9IFRCTF9TSVpFKEFMSUFTX1RBQkxFX0VOVFJZX1NJWkUpOworCXJsb29rdXBfdGFibGVfc2l6ZSA9IFRCTF9TSVpFKFJMT09LVVBfVEFCTEVfRU5UUllfU0laRSk7CisKKwlyZXQgPSAtRU5PTUVNOworCisJLyogRGV2aWNlIHRhYmxlIC0gZGlyZWN0bHkgdXNlZCBieSBhbGwgSU9NTVVzICovCisJYW1kX2lvbW11X2Rldl90YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJCSAgICAgIGdldF9vcmRlcihkZXZfdGFibGVfc2l6ZSkpOworCWlmIChhbWRfaW9tbXVfZGV2X3RhYmxlID09IE5VTEwpCisJCWdvdG8gb3V0OworCisJLyoKKwkgKiBBbGlhcyB0YWJsZSAtIG1hcCBQQ0kgQnVzL0Rldi9GdW5jIHRvIEJ1cy9EZXYvRnVuYyB0aGUKKwkgKiBJT01NVSBzZWUgZm9yIHRoYXQgZGV2aWNlCisJICovCisJYW1kX2lvbW11X2FsaWFzX3RhYmxlID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsCisJCQlnZXRfb3JkZXIoYWxpYXNfdGFibGVfc2l6ZSkpOworCWlmIChhbWRfaW9tbXVfYWxpYXNfdGFibGUgPT0gTlVMTCkKKwkJZ290byBmcmVlOworCisJLyogSU9NTVUgcmxvb2t1cCB0YWJsZSAtIGZpbmQgdGhlIElPTU1VIGZvciBhIHNwZWNpZmljIGRldmljZSAqLworCWFtZF9pb21tdV9ybG9va3VwX3RhYmxlID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsCisJCQlnZXRfb3JkZXIocmxvb2t1cF90YWJsZV9zaXplKSk7CisJaWYgKGFtZF9pb21tdV9ybG9va3VwX3RhYmxlID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCS8qCisJICogUHJvdGVjdGlvbiBEb21haW4gdGFibGUgLSBtYXBzIGRldmljZXMgdG8gcHJvdGVjdGlvbiBkb21haW5zCisJICogVGhpcyB0YWJsZSBoYXMgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgcmxvb2t1cF90YWJsZQorCSAqLworCWFtZF9pb21tdV9wZF90YWJsZSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJCSAgICAgZ2V0X29yZGVyKHJsb29rdXBfdGFibGVfc2l6ZSkpOworCWlmIChhbWRfaW9tbXVfcGRfdGFibGUgPT0gTlVMTCkKKwkJZ290byBmcmVlOworCisJYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlcyhHRlBfS0VSTkVMLAorCQkJCQkgICAgZ2V0X29yZGVyKE1BWF9ET01BSU5fSUQvOCkpOworCWlmIChhbWRfaW9tbXVfcGRfYWxsb2NfYml0bWFwID09IE5VTEwpCisJCWdvdG8gZnJlZTsKKworCS8qCisJICogbWVtb3J5IGlzIGFsbG9jYXRlZCBub3c7IGluaXRpYWxpemUgdGhlIGRldmljZSB0YWJsZSB3aXRoIGFsbCB6ZXJvZXMKKwkgKiBhbmQgbGV0IGFsbCBhbGlhcyBlbnRyaWVzIHBvaW50IHRvIGl0c2VsZgorCSAqLworCW1lbXNldChhbWRfaW9tbXVfZGV2X3RhYmxlLCAwLCBkZXZfdGFibGVfc2l6ZSk7CisJZm9yIChpID0gMDsgaSA8IGFtZF9pb21tdV9sYXN0X2JkZjsgKytpKQorCQlhbWRfaW9tbXVfYWxpYXNfdGFibGVbaV0gPSBpOworCisJbWVtc2V0KGFtZF9pb21tdV9wZF90YWJsZSwgMCwgcmxvb2t1cF90YWJsZV9zaXplKTsKKwltZW1zZXQoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCwgMCwgTUFYX0RPTUFJTl9JRCAvIDgpOworCisJLyoKKwkgKiBuZXZlciBhbGxvY2F0ZSBkb21haW4gMCBiZWNhdXNlIGl0cyB1c2VkIGFzIHRoZSBub24tYWxsb2NhdGVkIGFuZAorCSAqIGVycm9yIHZhbHVlIHBsYWNlaG9sZGVyCisJICovCisJYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcFswXSA9IDE7CisKKwkvKgorCSAqIG5vdyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBhbGxvY2F0ZWQgYW5kIGJhc2ljYWxseSBpbml0aWFsaXplZAorCSAqIHN0YXJ0IHRoZSByZWFsIGFjcGkgdGFibGUgc2NhbgorCSAqLworCXJldCA9IC1FTk9ERVY7CisJaWYgKGFjcGlfdGFibGVfcGFyc2UoIklWUlMiLCBpbml0X2lvbW11X2FsbCkgIT0gMCkKKwkJZ290byBmcmVlOworCisJaWYgKGFjcGlfdGFibGVfcGFyc2UoIklWUlMiLCBpbml0X21lbW9yeV9kZWZpbml0aW9ucykgIT0gMCkKKwkJZ290byBmcmVlOworCisJcmV0ID0gYW1kX2lvbW11X2luaXRfZG1hX29wcygpOworCWlmIChyZXQpCisJCWdvdG8gZnJlZTsKKworCXJldCA9IHN5c2Rldl9jbGFzc19yZWdpc3RlcigmYW1kX2lvbW11X3N5c2Rldl9jbGFzcyk7CisJaWYgKHJldCkKKwkJZ290byBmcmVlOworCisJcmV0ID0gc3lzZGV2X3JlZ2lzdGVyKCZkZXZpY2VfYW1kX2lvbW11KTsKKwlpZiAocmV0KQorCQlnb3RvIGZyZWU7CisKKwllbmFibGVfaW9tbXVzKCk7CisKKwlwcmludGsoS0VSTl9JTkZPICJBTUQgSU9NTVU6IGFwZXJ0dXJlIHNpemUgaXMgJWQgTUJcbiIsCisJCQkoMSA8PCAoYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyLTIwKSkpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIElPTU1VOiBkZXZpY2UgaXNvbGF0aW9uICIpOworCWlmIChhbWRfaW9tbXVfaXNvbGF0ZSkKKwkJcHJpbnRrKCJlbmFibGVkXG4iKTsKKwllbHNlCisJCXByaW50aygiZGlzYWJsZWRcbiIpOworCitvdXQ6CisJcmV0dXJuIHJldDsKKworZnJlZToKKwlpZiAoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1hcCkKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZylhbWRfaW9tbXVfcGRfYWxsb2NfYml0bWFwLCAxKTsKKworCWlmIChhbWRfaW9tbXVfcGRfdGFibGUpCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X3BkX3RhYmxlLAorCQkJCWdldF9vcmRlcihybG9va3VwX3RhYmxlX3NpemUpKTsKKworCWlmIChhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSkKKwkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZylhbWRfaW9tbXVfcmxvb2t1cF90YWJsZSwKKwkJCQlnZXRfb3JkZXIocmxvb2t1cF90YWJsZV9zaXplKSk7CisKKwlpZiAoYW1kX2lvbW11X2FsaWFzX3RhYmxlKQorCQlmcmVlX3BhZ2VzKCh1bnNpZ25lZCBsb25nKWFtZF9pb21tdV9hbGlhc190YWJsZSwKKwkJCQlnZXRfb3JkZXIoYWxpYXNfdGFibGVfc2l6ZSkpOworCisJaWYgKGFtZF9pb21tdV9kZXZfdGFibGUpCisJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpYW1kX2lvbW11X2Rldl90YWJsZSwKKwkJCQlnZXRfb3JkZXIoZGV2X3RhYmxlX3NpemUpKTsKKworCWZyZWVfaW9tbXVfYWxsKCk7CisKKwlmcmVlX3VuaXR5X21hcHMoKTsKKworCWdvdG8gb3V0OworfQorCitzdGF0aWMgaW50IF9faW5pdCBlYXJseV9hbWRfaW9tbXVfZGV0ZWN0KHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqdGFibGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgX19pbml0IGFtZF9pb21tdV9kZXRlY3Qodm9pZCkKK3sKKwlpZiAoc3dpb3RsYiB8fCBub19pb21tdSB8fCBpb21tdV9kZXRlY3RlZCkKKwkJcmV0dXJuOworCisJaWYgKGFjcGlfdGFibGVfcGFyc2UoIklWUlMiLCBlYXJseV9hbWRfaW9tbXVfZGV0ZWN0KSA9PSAwKSB7CisJCWlvbW11X2RldGVjdGVkID0gMTsKKwkJYW1kX2lvbW11X2RldGVjdGVkID0gMTsKKyNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQorCQlnYXJ0X2lvbW11X2FwZXJ0dXJlX2Rpc2FibGVkID0gMTsKKwkJZ2FydF9pb21tdV9hcGVydHVyZSA9IDA7CisjZW5kaWYKKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHBhcnNlX2FtZF9pb21tdV9vcHRpb25zKGNoYXIgKnN0cikKK3sKKwlmb3IgKDsgKnN0cjsgKytzdHIpIHsKKwkJaWYgKHN0cmNtcChzdHIsICJpc29sYXRlIikgPT0gMCkKKwkJCWFtZF9pb21tdV9pc29sYXRlID0gMTsKKwl9CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBfX2luaXQgcGFyc2VfYW1kX2lvbW11X3NpemVfb3B0aW9ucyhjaGFyICpzdHIpCit7CisJZm9yICg7ICpzdHI7ICsrc3RyKSB7CisJCWlmIChzdHJjbXAoc3RyLCAiMzJNIikgPT0gMCkKKwkJCWFtZF9pb21tdV9hcGVydHVyZV9vcmRlciA9IDI1OworCQlpZiAoc3RyY21wKHN0ciwgIjY0TSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyNjsKKwkJaWYgKHN0cmNtcChzdHIsICIxMjhNIikgPT0gMCkKKwkJCWFtZF9pb21tdV9hcGVydHVyZV9vcmRlciA9IDI3OworCQlpZiAoc3RyY21wKHN0ciwgIjI1Nk0iKSA9PSAwKQorCQkJYW1kX2lvbW11X2FwZXJ0dXJlX29yZGVyID0gMjg7CisJCWlmIChzdHJjbXAoc3RyLCAiNTEyTSIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAyOTsKKwkJaWYgKHN0cmNtcChzdHIsICIxRyIpID09IDApCisJCQlhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXIgPSAzMDsKKwl9CisKKwlyZXR1cm4gMTsKK30KKworX19zZXR1cCgiYW1kX2lvbW11PSIsIHBhcnNlX2FtZF9pb21tdV9vcHRpb25zKTsKK19fc2V0dXAoImFtZF9pb21tdV9zaXplPSIsIHBhcnNlX2FtZF9pb21tdV9zaXplX29wdGlvbnMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FwZXJ0dXJlXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXBlcnR1cmVfNjQuYwppbmRleCA0Nzk5MjZkLi45ZjkwNzgwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBlcnR1cmVfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXBlcnR1cmVfNjQuYwpAQCAtMzUsNiArMzUsMTggQEAKIAogaW50IGZpeF9hcGVydHVyZSBfX2luaXRkYXRhID0gMTsKIAorc3RydWN0IGJ1c19kZXZfcmFuZ2UgeworCWludCBidXM7CisJaW50IGRldl9iYXNlOworCWludCBkZXZfbGltaXQ7Cit9OworCitzdGF0aWMgc3RydWN0IGJ1c19kZXZfcmFuZ2UgYnVzX2Rldl9yYW5nZXNbXSBfX2luaXRkYXRhID0geworCXsgMHgwMCwgMHgxOCwgMHgyMH0sCisJeyAweGZmLCAweDAwLCAweDIwfSwKKwl7IDB4ZmUsIDB4MDAsIDB4MjB9Cit9OworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGdhcnRfcmVzb3VyY2UgPSB7CiAJLm5hbWUJPSAiR0FSVCIsCiAJLmZsYWdzCT0gSU9SRVNPVVJDRV9NRU0sCkBAIC01NSw4ICs2Nyw5IEBACiAJdTMyIGFwZXJfc2l6ZTsKIAl2b2lkICpwOwogCi0JaWYgKGZhbGxiYWNrX2FwZXJfb3JkZXIgPiA3KQotCQlmYWxsYmFja19hcGVyX29yZGVyID0gNzsKKwkvKiBhcGVyX3NpemUgc2hvdWxkIDw9IDFHICovCisJaWYgKGZhbGxiYWNrX2FwZXJfb3JkZXIgPiA1KQorCQlmYWxsYmFja19hcGVyX29yZGVyID0gNTsKIAlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgZmFsbGJhY2tfYXBlcl9vcmRlcjsKIAogCS8qCkBAIC02NSw3ICs3OCwyMCBAQAogCSAqIG1lbW9yeS4gVW5mb3J0dW5hdGVseSB3ZSBjYW5ub3QgbW92ZSBpdCB1cCBiZWNhdXNlIHRoYXQgd291bGQKIAkgKiBtYWtlIHRoZSBJT01NVSB1c2VsZXNzLgogCSAqLwotCXAgPSBfX2FsbG9jX2Jvb3RtZW1fbm9wYW5pYyhhcGVyX3NpemUsIGFwZXJfc2l6ZSwgMCk7CisJLyoKKwkgKiB1c2luZyA1MTJNIGFzIGdvYWwsIGluIGNhc2Uga2V4ZWMgd2lsbCBsb2FkIGtlcm5lbF9iaWcKKwkgKiB0aGF0IHdpbGwgZG8gdGhlIG9uIHBvc2l0aW9uIGRlY29tcHJlc3MsIGFuZCAgY291bGQgb3ZlcmxhcCB3aXRoCisJICogdGhhdCBwb3NpdG9uIHdpdGggZ2FydCB0aGF0IGlzIHVzZWQuCisJICogc2VxdWVuZGU6CisJICoga2VybmVsX3NtYWxsCisJICogPT0+IGtleGVjICh3aXRoIGtkdW1wIHRyaWdnZXIgcGF0aCBvciBwcmV2aW91cyBkb2Vzbid0IHNodXRkb3duIGdhcnQpCisJICogPT0+IGtlcm5lbF9zbWFsbChnYXJ0IGFyZWEgYmVjb21lIGU4MjBfcmVzZXJ2ZWQpCisJICogPT0+IGtleGVjICh3aXRoIGtkdW1wIHRyaWdnZXIgcGF0aCBvciBwcmV2aW91cyBkb2Vzbid0IHNodXRkb3duIGdhcnQpCisJICogPT0+IGtlcm5lX2JpZyAodW5jb21wcmVzc2VkIHNpemUgd2lsbCBiZSBiaWcgdGhhbiA2NE0gb3IgMTI4TSkKKwkgKiBzbyBkb24ndCB1c2UgNTEyTSBiZWxvdyBhcyBnYXJ0IGlvbW11LCBsZWF2ZSB0aGUgc3BhY2UgZm9yIGtlcm5lbAorCSAqIGNvZGUgZm9yIHNhZmUKKwkgKi8KKwlwID0gX19hbGxvY19ib290bWVtX25vcGFuaWMoYXBlcl9zaXplLCBhcGVyX3NpemUsIDUxMlVMTDw8MjApOwogCWlmICghcCB8fCBfX3BhKHApK2FwZXJfc2l6ZSA+IDB4ZmZmZmZmZmYpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCiAJCQkiQ2Fubm90IGFsbG9jYXRlIGFwZXJ0dXJlIG1lbW9yeSBob2xlICglcCwldUspXG4iLApAQCAtODMsNjkgKzEwOSw1MyBAQAogCXJldHVybiAodTMyKV9fcGEocCk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IGFwZXJ0dXJlX3ZhbGlkKHU2NCBhcGVyX2Jhc2UsIHUzMiBhcGVyX3NpemUpCi17Ci0JaWYgKCFhcGVyX2Jhc2UpCi0JCXJldHVybiAwOwotCi0JaWYgKGFwZXJfYmFzZSArIGFwZXJfc2l6ZSA+IDB4MTAwMDAwMDAwVUwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJBcGVydHVyZSBiZXlvbmQgNEdCLiBJZ25vcmluZy5cbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKGU4MjBfYW55X21hcHBlZChhcGVyX2Jhc2UsIGFwZXJfYmFzZSArIGFwZXJfc2l6ZSwgRTgyMF9SQU0pKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgcG9pbnRpbmcgdG8gZTgyMCBSQU0uIElnbm9yaW5nLlxuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoYXBlcl9zaXplIDwgNjQqMTAyNCoxMDI0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiQXBlcnR1cmUgdG9vIHNtYWxsICglZCBNQilcbiIsIGFwZXJfc2l6ZT4+MjApOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlyZXR1cm4gMTsKLX0KIAogLyogRmluZCBhIFBDSSBjYXBhYmlsaXR5ICovCi1zdGF0aWMgX191MzIgX19pbml0IGZpbmRfY2FwKGludCBudW0sIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCkKK3N0YXRpYyB1MzIgX19pbml0IGZpbmRfY2FwKGludCBidXMsIGludCBzbG90LCBpbnQgZnVuYywgaW50IGNhcCkKIHsKIAlpbnQgYnl0ZXM7CiAJdTggcG9zOwogCi0JaWYgKCEocmVhZF9wY2lfY29uZmlnXzE2KG51bSwgc2xvdCwgZnVuYywgUENJX1NUQVRVUykgJgorCWlmICghKHJlYWRfcGNpX2NvbmZpZ18xNihidXMsIHNsb3QsIGZ1bmMsIFBDSV9TVEFUVVMpICYKIAkJCQkJCVBDSV9TVEFUVVNfQ0FQX0xJU1QpKQogCQlyZXR1cm4gMDsKIAotCXBvcyA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKG51bSwgc2xvdCwgZnVuYywgUENJX0NBUEFCSUxJVFlfTElTVCk7CisJcG9zID0gcmVhZF9wY2lfY29uZmlnX2J5dGUoYnVzLCBzbG90LCBmdW5jLCBQQ0lfQ0FQQUJJTElUWV9MSVNUKTsKIAlmb3IgKGJ5dGVzID0gMDsgYnl0ZXMgPCA0OCAmJiBwb3MgPj0gMHg0MDsgYnl0ZXMrKykgewogCQl1OCBpZDsKIAogCQlwb3MgJj0gfjM7Ci0JCWlkID0gcmVhZF9wY2lfY29uZmlnX2J5dGUobnVtLCBzbG90LCBmdW5jLCBwb3MrUENJX0NBUF9MSVNUX0lEKTsKKwkJaWQgPSByZWFkX3BjaV9jb25maWdfYnl0ZShidXMsIHNsb3QsIGZ1bmMsIHBvcytQQ0lfQ0FQX0xJU1RfSUQpOwogCQlpZiAoaWQgPT0gMHhmZikKIAkJCWJyZWFrOwogCQlpZiAoaWQgPT0gY2FwKQogCQkJcmV0dXJuIHBvczsKLQkJcG9zID0gcmVhZF9wY2lfY29uZmlnX2J5dGUobnVtLCBzbG90LCBmdW5jLAorCQlwb3MgPSByZWFkX3BjaV9jb25maWdfYnl0ZShidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQlwb3MrUENJX0NBUF9MSVNUX05FWFQpOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogLyogUmVhZCBhIHN0YW5kYXJkIEFHUHYzIGJyaWRnZSBoZWFkZXIgKi8KLXN0YXRpYyBfX3UzMiBfX2luaXQgcmVhZF9hZ3AoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jLCBpbnQgY2FwLCB1MzIgKm9yZGVyKQorc3RhdGljIHUzMiBfX2luaXQgcmVhZF9hZ3AoaW50IGJ1cywgaW50IHNsb3QsIGludCBmdW5jLCBpbnQgY2FwLCB1MzIgKm9yZGVyKQogewogCXUzMiBhcHNpemU7CiAJdTMyIGFwc2l6ZXJlZzsKIAlpbnQgbmJpdHM7CiAJdTMyIGFwZXJfbG93LCBhcGVyX2hpOwogCXU2NCBhcGVyOworCXUzMiBvbGRfb3JkZXI7CiAKLQlwcmludGsoS0VSTl9JTkZPICJBR1AgYnJpZGdlIGF0ICUwMng6JTAyeDolMDJ4XG4iLCBudW0sIHNsb3QsIGZ1bmMpOwotCWFwc2l6ZXJlZyA9IHJlYWRfcGNpX2NvbmZpZ18xNihudW0sIHNsb3QsIGZ1bmMsIGNhcCArIDB4MTQpOworCXByaW50ayhLRVJOX0lORk8gIkFHUCBicmlkZ2UgYXQgJTAyeDolMDJ4OiUwMnhcbiIsIGJ1cywgc2xvdCwgZnVuYyk7CisJYXBzaXplcmVnID0gcmVhZF9wY2lfY29uZmlnXzE2KGJ1cywgc2xvdCwgZnVuYywgY2FwICsgMHgxNCk7CiAJaWYgKGFwc2l6ZXJlZyA9PSAweGZmZmZmZmZmKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiQVBTSVpFIGluIEFHUCBicmlkZ2UgdW5yZWFkYWJsZVxuIik7CiAJCXJldHVybiAwOwogCX0KIAorCS8qIG9sZF9vcmRlciBjb3VsZCBiZSB0aGUgdmFsdWUgZnJvbSBOQiBnYXJ0IHNldHRpbmcgKi8KKwlvbGRfb3JkZXIgPSAqb3JkZXI7CisKIAlhcHNpemUgPSBhcHNpemVyZWcgJiAweGZmZjsKIAkvKiBTb21lIEJJT1MgdXNlIHdlaXJkIGVuY29kaW5ncyBub3QgaW4gdGhlIEFHUHYzIHRhYmxlLiAqLwogCWlmIChhcHNpemUgJiAweGZmKQpAQCAtMTU1LDE0ICsxNjUsMjYgQEAKIAlpZiAoKGludCkqb3JkZXIgPCAwKSAvKiA8IDMyTUIgKi8KIAkJKm9yZGVyID0gMDsKIAotCWFwZXJfbG93ID0gcmVhZF9wY2lfY29uZmlnKG51bSwgc2xvdCwgZnVuYywgMHgxMCk7Ci0JYXBlcl9oaSA9IHJlYWRfcGNpX2NvbmZpZyhudW0sIHNsb3QsIGZ1bmMsIDB4MTQpOworCWFwZXJfbG93ID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgZnVuYywgMHgxMCk7CisJYXBlcl9oaSA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIGZ1bmMsIDB4MTQpOwogCWFwZXIgPSAoYXBlcl9sb3cgJiB+KCgxPDwyMiktMSkpIHwgKCh1NjQpYXBlcl9oaSA8PCAzMik7CiAKKwkvKgorCSAqIE9uIHNvbWUgc2ljayBjaGlwcywgQVBTSVpFIGlzIDAuIEl0IG1lYW5zIGl0IHdhbnRzIDRHCisJICogc28gbGV0IGRvdWJsZSBjaGVjayB0aGF0IG9yZGVyLCBhbmQgbGV0cyB0cnVzdCBBTUQgTkIgc2V0dGluZ3M6CisJICovCisJcHJpbnRrKEtFUk5fSU5GTyAiQXBlcnR1cmUgZnJvbSBBR1AgQCAlTHggb2xkIHNpemUgJXUgTUJcbiIsCisJCQlhcGVyLCAzMiA8PCBvbGRfb3JkZXIpOworCWlmIChhcGVyICsgKDMyVUxMPDwoMjAgKyAqb3JkZXIpKSA+IDB4MTAwMDAwMDAwVUxMKSB7CisJCXByaW50ayhLRVJOX0lORk8gIkFwZXJ0dXJlIHNpemUgJXUgTUIgKEFQU0laRSAleCkgaXMgbm90IHJpZ2h0LCB1c2luZyBzZXR0aW5ncyBmcm9tIE5CXG4iLAorCQkJCTMyIDw8ICpvcmRlciwgYXBzaXplcmVnKTsKKwkJKm9yZGVyID0gb2xkX29yZGVyOworCX0KKwogCXByaW50ayhLRVJOX0lORk8gIkFwZXJ0dXJlIGZyb20gQUdQIEAgJUx4IHNpemUgJXUgTUIgKEFQU0laRSAleClcbiIsCiAJCQlhcGVyLCAzMiA8PCAqb3JkZXIsIGFwc2l6ZXJlZyk7CiAKLQlpZiAoIWFwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpIDw8ICpvcmRlcikpCisJaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCAoMzIqMTAyNCoxMDI0KSA8PCAqb3JkZXIsIDMyPDwyMCkpCiAJCXJldHVybiAwOwogCXJldHVybiAodTMyKWFwZXI7CiB9CkBAIC0xODAsMTcgKzIwMiwxNyBAQAogICogdGhlIEFHUCBicmlkZ2VzIHNob3VsZCBiZSBhbHdheXMgYW4gb3duIGJ1cyBvbiB0aGUgSFQgaGllcmFyY2h5LAogICogYnV0IGRvIGl0IGhlcmUgZm9yIGZ1dHVyZSBzYWZldHkuCiAgKi8KLXN0YXRpYyBfX3UzMiBfX2luaXQgc2VhcmNoX2FncF9icmlkZ2UodTMyICpvcmRlciwgaW50ICp2YWxpZF9hZ3ApCitzdGF0aWMgdTMyIF9faW5pdCBzZWFyY2hfYWdwX2JyaWRnZSh1MzIgKm9yZGVyLCBpbnQgKnZhbGlkX2FncCkKIHsKLQlpbnQgbnVtLCBzbG90LCBmdW5jOworCWludCBidXMsIHNsb3QsIGZ1bmM7CiAKIAkvKiBQb29yIG1hbidzIFBDSSBkaXNjb3ZlcnkgKi8KLQlmb3IgKG51bSA9IDA7IG51bSA8IDI1NjsgbnVtKyspIHsKKwlmb3IgKGJ1cyA9IDA7IGJ1cyA8IDI1NjsgYnVzKyspIHsKIAkJZm9yIChzbG90ID0gMDsgc2xvdCA8IDMyOyBzbG90KyspIHsKIAkJCWZvciAoZnVuYyA9IDA7IGZ1bmMgPCA4OyBmdW5jKyspIHsKIAkJCQl1MzIgY2xhc3MsIGNhcDsKIAkJCQl1OCB0eXBlOwotCQkJCWNsYXNzID0gcmVhZF9wY2lfY29uZmlnKG51bSwgc2xvdCwgZnVuYywKKwkJCQljbGFzcyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIGZ1bmMsCiAJCQkJCQkJUENJX0NMQVNTX1JFVklTSU9OKTsKIAkJCQlpZiAoY2xhc3MgPT0gMHhmZmZmZmZmZikKIAkJCQkJYnJlYWs7CkBAIC0xOTksMTcgKzIyMSwxNyBAQAogCQkJCWNhc2UgUENJX0NMQVNTX0JSSURHRV9IT1NUOgogCQkJCWNhc2UgUENJX0NMQVNTX0JSSURHRV9PVEhFUjogLyogbmVlZGVkPyAqLwogCQkJCQkvKiBBR1AgYnJpZGdlPyAqLwotCQkJCQljYXAgPSBmaW5kX2NhcChudW0sIHNsb3QsIGZ1bmMsCisJCQkJCWNhcCA9IGZpbmRfY2FwKGJ1cywgc2xvdCwgZnVuYywKIAkJCQkJCQlQQ0lfQ0FQX0lEX0FHUCk7CiAJCQkJCWlmICghY2FwKQogCQkJCQkJYnJlYWs7CiAJCQkJCSp2YWxpZF9hZ3AgPSAxOwotCQkJCQlyZXR1cm4gcmVhZF9hZ3AobnVtLCBzbG90LCBmdW5jLCBjYXAsCisJCQkJCXJldHVybiByZWFkX2FncChidXMsIHNsb3QsIGZ1bmMsIGNhcCwKIAkJCQkJCQlvcmRlcik7CiAJCQkJfQogCiAJCQkJLyogTm8gbXVsdGktZnVuY3Rpb24gZGV2aWNlPyAqLwotCQkJCXR5cGUgPSByZWFkX3BjaV9jb25maWdfYnl0ZShudW0sIHNsb3QsIGZ1bmMsCisJCQkJdHlwZSA9IHJlYWRfcGNpX2NvbmZpZ19ieXRlKGJ1cywgc2xvdCwgZnVuYywKIAkJCQkJCQkgICAgICAgUENJX0hFQURFUl9UWVBFKTsKIAkJCQlpZiAoISh0eXBlICYgMHg4MCkpCiAJCQkJCWJyZWFrOwpAQCAtMjQ5LDM2ICsyNzEsNTAgQEAKIAkgKiBvciBCSU9TIGZvcmdldCB0byBwdXQgdGhhdCBpbiByZXNlcnZlZC4KIAkgKiB0cnkgdG8gdXBkYXRlIGU4MjAgdG8gbWFrZSB0aGF0IHJlZ2lvbiBhcyByZXNlcnZlZC4KIAkgKi8KLQlpbnQgZml4LCBudW07CisJaW50IGksIGZpeCwgc2xvdDsKIAl1MzIgY3RsOwogCXUzMiBhcGVyX3NpemUgPSAwLCBhcGVyX29yZGVyID0gMCwgbGFzdF9hcGVyX29yZGVyID0gMDsKIAl1NjQgYXBlcl9iYXNlID0gMCwgbGFzdF9hcGVyX2Jhc2UgPSAwOwotCWludCBhcGVyX2VuYWJsZWQgPSAwLCBsYXN0X2FwZXJfZW5hYmxlZCA9IDA7CisJaW50IGFwZXJfZW5hYmxlZCA9IDAsIGxhc3RfYXBlcl9lbmFibGVkID0gMCwgbGFzdF92YWxpZCA9IDA7CiAKIAlpZiAoIWVhcmx5X3BjaV9hbGxvd2VkKCkpCiAJCXJldHVybjsKIAorCS8qIFRoaXMgaXMgbW9zdGx5IGR1cGxpY2F0ZSBvZiBpb21tdV9ob2xlX2luaXQgKi8KIAlmaXggPSAwOwotCWZvciAobnVtID0gMjQ7IG51bSA8IDMyOyBudW0rKykgewotCQlpZiAoIWVhcmx5X2lzX2s4X25iKHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4MDApKSkKLQkJCWNvbnRpbnVlOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c19kZXZfcmFuZ2VzKTsgaSsrKSB7CisJCWludCBidXM7CisJCWludCBkZXZfYmFzZSwgZGV2X2xpbWl0OwogCi0JCWN0bCA9IHJlYWRfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4OTApOwotCQlhcGVyX2VuYWJsZWQgPSBjdGwgJiAxOwotCQlhcGVyX29yZGVyID0gKGN0bCA+PiAxKSAmIDc7Ci0JCWFwZXJfc2l6ZSA9ICgzMiAqIDEwMjQgKiAxMDI0KSA8PCBhcGVyX29yZGVyOwotCQlhcGVyX2Jhc2UgPSByZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDk0KSAmIDB4N2ZmZjsKLQkJYXBlcl9iYXNlIDw8PSAyNTsKKwkJYnVzID0gYnVzX2Rldl9yYW5nZXNbaV0uYnVzOworCQlkZXZfYmFzZSA9IGJ1c19kZXZfcmFuZ2VzW2ldLmRldl9iYXNlOworCQlkZXZfbGltaXQgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfbGltaXQ7CiAKLQkJaWYgKChsYXN0X2FwZXJfb3JkZXIgJiYgYXBlcl9vcmRlciAhPSBsYXN0X2FwZXJfb3JkZXIpIHx8Ci0JCSAgICAobGFzdF9hcGVyX2Jhc2UgJiYgYXBlcl9iYXNlICE9IGxhc3RfYXBlcl9iYXNlKSB8fAotCQkgICAgKGxhc3RfYXBlcl9lbmFibGVkICYmIGFwZXJfZW5hYmxlZCAhPSBsYXN0X2FwZXJfZW5hYmxlZCkpIHsKLQkJCWZpeCA9IDE7Ci0JCQlicmVhazsKKwkJZm9yIChzbG90ID0gZGV2X2Jhc2U7IHNsb3QgPCBkZXZfbGltaXQ7IHNsb3QrKykgeworCQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCAweDAwKSkpCisJCQkJY29udGludWU7CisKKwkJCWN0bCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCk7CisJCQlhcGVyX2VuYWJsZWQgPSBjdGwgJiBBTUQ2NF9HQVJURU47CisJCQlhcGVyX29yZGVyID0gKGN0bCA+PiAxKSAmIDc7CisJCQlhcGVyX3NpemUgPSAoMzIgKiAxMDI0ICogMTAyNCkgPDwgYXBlcl9vcmRlcjsKKwkJCWFwZXJfYmFzZSA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIEFNRDY0X0dBUlRBUEVSVFVSRUJBU0UpICYgMHg3ZmZmOworCQkJYXBlcl9iYXNlIDw8PSAyNTsKKworCQkJaWYgKGxhc3RfdmFsaWQpIHsKKwkJCQlpZiAoKGFwZXJfb3JkZXIgIT0gbGFzdF9hcGVyX29yZGVyKSB8fAorCQkJCSAgICAoYXBlcl9iYXNlICE9IGxhc3RfYXBlcl9iYXNlKSB8fAorCQkJCSAgICAoYXBlcl9lbmFibGVkICE9IGxhc3RfYXBlcl9lbmFibGVkKSkgeworCQkJCQlmaXggPSAxOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisKKwkJCWxhc3RfYXBlcl9vcmRlciA9IGFwZXJfb3JkZXI7CisJCQlsYXN0X2FwZXJfYmFzZSA9IGFwZXJfYmFzZTsKKwkJCWxhc3RfYXBlcl9lbmFibGVkID0gYXBlcl9lbmFibGVkOworCQkJbGFzdF92YWxpZCA9IDE7CiAJCX0KLQkJbGFzdF9hcGVyX29yZGVyID0gYXBlcl9vcmRlcjsKLQkJbGFzdF9hcGVyX2Jhc2UgPSBhcGVyX2Jhc2U7Ci0JCWxhc3RfYXBlcl9lbmFibGVkID0gYXBlcl9lbmFibGVkOwogCX0KIAogCWlmICghZml4ICYmICFhcGVyX2VuYWJsZWQpCkBAIC0yOTAsMzIgKzMyNiw0NiBAQAogCWlmIChnYXJ0X2ZpeF9lODIwICYmICFmaXggJiYgYXBlcl9lbmFibGVkKSB7CiAJCWlmIChlODIwX2FueV9tYXBwZWQoYXBlcl9iYXNlLCBhcGVyX2Jhc2UgKyBhcGVyX3NpemUsCiAJCQkJICAgIEU4MjBfUkFNKSkgewotCQkJLyogcmVzZXJ2ZWQgaXQsIHNvIHdlIGNhbiByZXN1c2UgaXQgaW4gc2Vjb25kIGtlcm5lbCAqLworCQkJLyogcmVzZXJ2ZSBpdCwgc28gd2UgY2FuIHJldXNlIGl0IGluIHNlY29uZCBrZXJuZWwgKi8KIAkJCXByaW50ayhLRVJOX0lORk8gInVwZGF0ZSBlODIwIGZvciBHQVJUXG4iKTsKLQkJCWFkZF9tZW1vcnlfcmVnaW9uKGFwZXJfYmFzZSwgYXBlcl9zaXplLCBFODIwX1JFU0VSVkVEKTsKKwkJCWU4MjBfYWRkX3JlZ2lvbihhcGVyX2Jhc2UsIGFwZXJfc2l6ZSwgRTgyMF9SRVNFUlZFRCk7CiAJCQl1cGRhdGVfZTgyMCgpOwogCQl9Ci0JCXJldHVybjsKIAl9CiAKLQkvKiBkaWZmZXJlbnQgbm9kZXMgaGF2ZSBkaWZmZXJlbnQgc2V0dGluZywgZGlzYWJsZSB0aGVtIGFsbCBhdCBmaXJzdCovCi0JZm9yIChudW0gPSAyNDsgbnVtIDwgMzI7IG51bSsrKSB7Ci0JCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHgwMCkpKQotCQkJY29udGludWU7CisJaWYgKCFmaXgpCisJCXJldHVybjsKIAotCQljdGwgPSByZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDkwKTsKLQkJY3RsICY9IH4xOwotCQl3cml0ZV9wY2lfY29uZmlnKDAsIG51bSwgMywgMHg5MCwgY3RsKTsKKwkvKiBkaWZmZXJlbnQgbm9kZXMgaGF2ZSBkaWZmZXJlbnQgc2V0dGluZywgZGlzYWJsZSB0aGVtIGFsbCBhdCBmaXJzdCovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYnVzX2Rldl9yYW5nZXMpOyBpKyspIHsKKwkJaW50IGJ1czsKKwkJaW50IGRldl9iYXNlLCBkZXZfbGltaXQ7CisKKwkJYnVzID0gYnVzX2Rldl9yYW5nZXNbaV0uYnVzOworCQlkZXZfYmFzZSA9IGJ1c19kZXZfcmFuZ2VzW2ldLmRldl9iYXNlOworCQlkZXZfbGltaXQgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfbGltaXQ7CisKKwkJZm9yIChzbG90ID0gZGV2X2Jhc2U7IHNsb3QgPCBkZXZfbGltaXQ7IHNsb3QrKykgeworCQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCAweDAwKSkpCisJCQkJY29udGludWU7CisKKwkJCWN0bCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCk7CisJCQljdGwgJj0gfkFNRDY0X0dBUlRFTjsKKwkJCXdyaXRlX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIGN0bCk7CisJCX0KIAl9CiAKIH0KIAorc3RhdGljIGludCBfX2luaXRkYXRhIHByaW50ZWRfZ2FydF9zaXplX21zZzsKKwogdm9pZCBfX2luaXQgZ2FydF9pb21tdV9ob2xlX2luaXQodm9pZCkKIHsKKwl1MzIgYWdwX2FwZXJfYmFzZSA9IDAsIGFncF9hcGVyX29yZGVyID0gMDsKIAl1MzIgYXBlcl9zaXplLCBhcGVyX2FsbG9jID0gMCwgYXBlcl9vcmRlciA9IDAsIGxhc3RfYXBlcl9vcmRlciA9IDA7CiAJdTY0IGFwZXJfYmFzZSwgbGFzdF9hcGVyX2Jhc2UgPSAwOwotCWludCBmaXgsIG51bSwgdmFsaWRfYWdwID0gMDsKLQlpbnQgbm9kZTsKKwlpbnQgZml4LCBzbG90LCB2YWxpZF9hZ3AgPSAwOworCWludCBpLCBub2RlOwogCiAJaWYgKGdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQgfHwgIWZpeF9hcGVydHVyZSB8fAogCSAgICAhZWFybHlfcGNpX2FsbG93ZWQoKSkKQEAgLTMyMywzOCArMzczLDY1IEBACiAKIAlwcmludGsoS0VSTl9JTkZPICAiQ2hlY2tpbmcgYXBlcnR1cmUuLi5cbiIpOwogCisJaWYgKCFmYWxsYmFja19hcGVyX2ZvcmNlKQorCQlhZ3BfYXBlcl9iYXNlID0gc2VhcmNoX2FncF9icmlkZ2UoJmFncF9hcGVyX29yZGVyLCAmdmFsaWRfYWdwKTsKKwogCWZpeCA9IDA7CiAJbm9kZSA9IDA7Ci0JZm9yIChudW0gPSAyNDsgbnVtIDwgMzI7IG51bSsrKSB7Ci0JCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKDAsIG51bSwgMywgMHgwMCkpKQotCQkJY29udGludWU7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYnVzX2Rldl9yYW5nZXMpOyBpKyspIHsKKwkJaW50IGJ1czsKKwkJaW50IGRldl9iYXNlLCBkZXZfbGltaXQ7CiAKLQkJaW9tbXVfZGV0ZWN0ZWQgPSAxOwotCQlnYXJ0X2lvbW11X2FwZXJ0dXJlID0gMTsKKwkJYnVzID0gYnVzX2Rldl9yYW5nZXNbaV0uYnVzOworCQlkZXZfYmFzZSA9IGJ1c19kZXZfcmFuZ2VzW2ldLmRldl9iYXNlOworCQlkZXZfbGltaXQgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfbGltaXQ7CiAKLQkJYXBlcl9vcmRlciA9IChyZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDkwKSA+PiAxKSAmIDc7Ci0JCWFwZXJfc2l6ZSA9ICgzMiAqIDEwMjQgKiAxMDI0KSA8PCBhcGVyX29yZGVyOwotCQlhcGVyX2Jhc2UgPSByZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDk0KSAmIDB4N2ZmZjsKLQkJYXBlcl9iYXNlIDw8PSAyNTsKKwkJZm9yIChzbG90ID0gZGV2X2Jhc2U7IHNsb3QgPCBkZXZfbGltaXQ7IHNsb3QrKykgeworCQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCAweDAwKSkpCisJCQkJY29udGludWU7CiAKLQkJcHJpbnRrKEtFUk5fSU5GTyAiTm9kZSAlZDogYXBlcnR1cmUgQCAlTHggc2l6ZSAldSBNQlxuIiwKLQkJCQlub2RlLCBhcGVyX2Jhc2UsIGFwZXJfc2l6ZSA+PiAyMCk7Ci0JCW5vZGUrKzsKKwkJCWlvbW11X2RldGVjdGVkID0gMTsKKwkJCWdhcnRfaW9tbXVfYXBlcnR1cmUgPSAxOwogCi0JCWlmICghYXBlcnR1cmVfdmFsaWQoYXBlcl9iYXNlLCBhcGVyX3NpemUpKSB7Ci0JCQlmaXggPSAxOwotCQkJYnJlYWs7CisJCQlhcGVyX29yZGVyID0gKHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCkgPj4gMSkgJiA3OworCQkJYXBlcl9zaXplID0gKDMyICogMTAyNCAqIDEwMjQpIDw8IGFwZXJfb3JkZXI7CisJCQlhcGVyX2Jhc2UgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFKSAmIDB4N2ZmZjsKKwkJCWFwZXJfYmFzZSA8PD0gMjU7CisKKwkJCXByaW50ayhLRVJOX0lORk8gIk5vZGUgJWQ6IGFwZXJ0dXJlIEAgJUx4IHNpemUgJXUgTUJcbiIsCisJCQkJCW5vZGUsIGFwZXJfYmFzZSwgYXBlcl9zaXplID4+IDIwKTsKKwkJCW5vZGUrKzsKKworCQkJaWYgKCFhcGVydHVyZV92YWxpZChhcGVyX2Jhc2UsIGFwZXJfc2l6ZSwgNjQ8PDIwKSkgeworCQkJCWlmICh2YWxpZF9hZ3AgJiYgYWdwX2FwZXJfYmFzZSAmJgorCQkJCSAgICBhZ3BfYXBlcl9iYXNlID09IGFwZXJfYmFzZSAmJgorCQkJCSAgICBhZ3BfYXBlcl9vcmRlciA9PSBhcGVyX29yZGVyKSB7CisJCQkJCS8qIHRoZSBzYW1lIGJldHdlZW4gdHdvIHNldHRpbmcgZnJvbSBOQiBhbmQgYWdwICovCisJCQkJCWlmICghbm9faW9tbXUgJiYKKwkJCQkJICAgIG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOICYmCisJCQkJCSAgICAhcHJpbnRlZF9nYXJ0X3NpemVfbXNnKSB7CisJCQkJCQlwcmludGsoS0VSTl9FUlIgInlvdSBhcmUgdXNpbmcgaW9tbXUgd2l0aCBhZ3AsIGJ1dCBHQVJUIHNpemUgaXMgbGVzcyB0aGFuIDY0TVxuIik7CisJCQkJCQlwcmludGsoS0VSTl9FUlIgInBsZWFzZSBpbmNyZWFzZSBHQVJUIHNpemUgaW4geW91ciBCSU9TIHNldHVwXG4iKTsKKwkJCQkJCXByaW50ayhLRVJOX0VSUiAiaWYgQklPUyBkb2Vzbid0IGhhdmUgdGhhdCBvcHRpb24sIGNvbnRhY3QgeW91ciBIVyB2ZW5kb3IhXG4iKTsKKwkJCQkJCXByaW50ZWRfZ2FydF9zaXplX21zZyA9IDE7CisJCQkJCX0KKwkJCQl9IGVsc2UgeworCQkJCQlmaXggPSAxOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQl9CisKKwkJCWlmICgobGFzdF9hcGVyX29yZGVyICYmIGFwZXJfb3JkZXIgIT0gbGFzdF9hcGVyX29yZGVyKSB8fAorCQkJICAgIChsYXN0X2FwZXJfYmFzZSAmJiBhcGVyX2Jhc2UgIT0gbGFzdF9hcGVyX2Jhc2UpKSB7CisJCQkJZml4ID0gMTsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKwkJCWxhc3RfYXBlcl9vcmRlciA9IGFwZXJfb3JkZXI7CisJCQlsYXN0X2FwZXJfYmFzZSA9IGFwZXJfYmFzZTsKIAkJfQotCi0JCWlmICgobGFzdF9hcGVyX29yZGVyICYmIGFwZXJfb3JkZXIgIT0gbGFzdF9hcGVyX29yZGVyKSB8fAotCQkgICAgKGxhc3RfYXBlcl9iYXNlICYmIGFwZXJfYmFzZSAhPSBsYXN0X2FwZXJfYmFzZSkpIHsKLQkJCWZpeCA9IDE7Ci0JCQlicmVhazsKLQkJfQotCQlsYXN0X2FwZXJfb3JkZXIgPSBhcGVyX29yZGVyOwotCQlsYXN0X2FwZXJfYmFzZSA9IGFwZXJfYmFzZTsKIAl9CiAKK291dDoKIAlpZiAoIWZpeCAmJiAhZmFsbGJhY2tfYXBlcl9mb3JjZSkgewogCQlpZiAobGFzdF9hcGVyX2Jhc2UpIHsKIAkJCXVuc2lnbmVkIGxvbmcgbiA9ICgzMiAqIDEwMjQgKiAxMDI0KSA8PCBsYXN0X2FwZXJfb3JkZXI7CkBAIC0zNjQsMTQgKzQ0MSwxNiBAQAogCQlyZXR1cm47CiAJfQogCi0JaWYgKCFmYWxsYmFja19hcGVyX2ZvcmNlKQotCQlhcGVyX2FsbG9jID0gc2VhcmNoX2FncF9icmlkZ2UoJmFwZXJfb3JkZXIsICZ2YWxpZF9hZ3ApOworCWlmICghZmFsbGJhY2tfYXBlcl9mb3JjZSkgeworCQlhcGVyX2FsbG9jID0gYWdwX2FwZXJfYmFzZTsKKwkJYXBlcl9vcmRlciA9IGFncF9hcGVyX29yZGVyOworCX0KIAogCWlmIChhcGVyX2FsbG9jKSB7CiAJCS8qIEdvdCB0aGUgYXBlcnR1cmUgZnJvbSB0aGUgQUdQIGJyaWRnZSAqLwogCX0gZWxzZSBpZiAoc3dpb3RsYiAmJiAhdmFsaWRfYWdwKSB7CiAJCS8qIERvIG5vdGhpbmcgKi8KLQl9IGVsc2UgaWYgKCghbm9faW9tbXUgJiYgZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4pIHx8CisJfSBlbHNlIGlmICgoIW5vX2lvbW11ICYmIG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOKSB8fAogCQkgICBmb3JjZV9pb21tdSB8fAogCQkgICB2YWxpZF9hZ3AgfHwKIAkJICAgZmFsbGJhY2tfYXBlcl9mb3JjZSkgewpAQCAtNDAxLDE2ICs0ODAsMjQgQEAKIAl9CiAKIAkvKiBGaXggdXAgdGhlIG5vcnRoIGJyaWRnZXMgKi8KLQlmb3IgKG51bSA9IDI0OyBudW0gPCAzMjsgbnVtKyspIHsKLQkJaWYgKCFlYXJseV9pc19rOF9uYihyZWFkX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDAwKSkpCi0JCQljb250aW51ZTsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShidXNfZGV2X3Jhbmdlcyk7IGkrKykgeworCQlpbnQgYnVzOworCQlpbnQgZGV2X2Jhc2UsIGRldl9saW1pdDsKIAotCQkvKgotCQkgKiBEb24ndCBlbmFibGUgdHJhbnNsYXRpb24geWV0LiBUaGF0IGlzIGRvbmUgbGF0ZXIuCi0JCSAqIEFzc3VtZSB0aGlzIEJJT1MgZGlkbid0IGluaXRpYWxpc2UgdGhlIEdBUlQgc28KLQkJICoganVzdCBvdmVyd3JpdGUgYWxsIHByZXZpb3VzIGJpdHMKLQkJICovCi0JCXdyaXRlX3BjaV9jb25maWcoMCwgbnVtLCAzLCAweDkwLCBhcGVyX29yZGVyPDwxKTsKLQkJd3JpdGVfcGNpX2NvbmZpZygwLCBudW0sIDMsIDB4OTQsIGFwZXJfYWxsb2M+PjI1KTsKKwkJYnVzID0gYnVzX2Rldl9yYW5nZXNbaV0uYnVzOworCQlkZXZfYmFzZSA9IGJ1c19kZXZfcmFuZ2VzW2ldLmRldl9iYXNlOworCQlkZXZfbGltaXQgPSBidXNfZGV2X3Jhbmdlc1tpXS5kZXZfbGltaXQ7CisJCWZvciAoc2xvdCA9IGRldl9iYXNlOyBzbG90IDwgZGV2X2xpbWl0OyBzbG90KyspIHsKKwkJCWlmICghZWFybHlfaXNfazhfbmIocmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMywgMHgwMCkpKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBEb24ndCBlbmFibGUgdHJhbnNsYXRpb24geWV0LiBUaGF0IGlzIGRvbmUgbGF0ZXIuCisJCQkgICBBc3N1bWUgdGhpcyBCSU9TIGRpZG4ndCBpbml0aWFsaXNlIHRoZSBHQVJUIHNvCisJCQkgICBqdXN0IG92ZXJ3cml0ZSBhbGwgcHJldmlvdXMgYml0cyAqLworCQkJd3JpdGVfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDMsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgYXBlcl9vcmRlciA8PCAxKTsKKwkJCXdyaXRlX3BjaV9jb25maWcoYnVzLCBzbG90LCAzLCBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFLCBhcGVyX2FsbG9jID4+IDI1KTsKKwkJfQogCX0KKworCXNldF91cF9nYXJ0X3Jlc3VtZShhcGVyX29yZGVyLCBhcGVyX2FsbG9jKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcGljXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXBpY18zMi5jCmluZGV4IDRiOTliMWIuLjNlNThiNjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FwaWNfMzIuYwpAQCAtNTIsMzAgKzUyLDQxIEBACiAKIHVuc2lnbmVkIGxvbmcgbXBfbGFwaWNfYWRkcjsKIAotREVGSU5FX1BFUl9DUFUodTE2LCB4ODZfYmlvc19jcHVfYXBpY2lkKSA9IEJBRF9BUElDSUQ7Ci1FWFBPUlRfUEVSX0NQVV9TWU1CT0woeDg2X2Jpb3NfY3B1X2FwaWNpZCk7Ci0KIC8qCiAgKiBLbm9iIHRvIGNvbnRyb2wgb3VyIHdpbGxpbmduZXNzIHRvIGVuYWJsZSB0aGUgbG9jYWwgQVBJQy4KICAqCi0gKiAtMT1mb3JjZS1kaXNhYmxlLCArMT1mb3JjZS1lbmFibGUKKyAqICsxPWZvcmNlLWVuYWJsZQogICovCi1zdGF0aWMgaW50IGVuYWJsZV9sb2NhbF9hcGljIF9faW5pdGRhdGE7CitzdGF0aWMgaW50IGZvcmNlX2VuYWJsZV9sb2NhbF9hcGljOworaW50IGRpc2FibGVfYXBpYzsKIAogLyogTG9jYWwgQVBJQyB0aW1lciB2ZXJpZmljYXRpb24gb2sgKi8KIHN0YXRpYyBpbnQgbG9jYWxfYXBpY190aW1lcl92ZXJpZnlfb2s7Ci0vKiBEaXNhYmxlIGxvY2FsIEFQSUMgdGltZXIgZnJvbSB0aGUga2VybmVsIGNvbW1hbmRsaW5lIG9yIHZpYSBkbWkgcXVpcmsKLSAgIG9yIHVzaW5nIENQVSBNU1IgY2hlY2sgKi8KLWludCBsb2NhbF9hcGljX3RpbWVyX2Rpc2FibGVkOworLyogRGlzYWJsZSBsb2NhbCBBUElDIHRpbWVyIGZyb20gdGhlIGtlcm5lbCBjb21tYW5kbGluZSBvciB2aWEgZG1pIHF1aXJrICovCitzdGF0aWMgaW50IGxvY2FsX2FwaWNfdGltZXJfZGlzYWJsZWQ7CiAvKiBMb2NhbCBBUElDIHRpbWVyIHdvcmtzIGluIEMyICovCiBpbnQgbG9jYWxfYXBpY190aW1lcl9jMl9vazsKIEVYUE9SVF9TWU1CT0xfR1BMKGxvY2FsX2FwaWNfdGltZXJfYzJfb2spOwogCitpbnQgZmlyc3Rfc3lzdGVtX3ZlY3RvciA9IDB4ZmU7CisKK2NoYXIgc3lzdGVtX3ZlY3RvcnNbTlJfVkVDVE9SU10gPSB7IFswIC4uLiBOUl9WRUNUT1JTLTFdID0gU1lTX1ZFQ1RPUl9GUkVFfTsKKwogLyoKICAqIERlYnVnIGxldmVsLCBleHBvcnRlZCBmb3IgaW9fYXBpYy5jCiAgKi8KIGludCBhcGljX3ZlcmJvc2l0eTsKIAoraW50IHBpY19tb2RlOworCisvKiBIYXZlIHdlIGZvdW5kIGFuIE1QIHRhYmxlICovCitpbnQgc21wX2ZvdW5kX2NvbmZpZzsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBsYXBpY19yZXNvdXJjZSA9IHsKKwkubmFtZSA9ICJMb2NhbCBBUElDIiwKKwkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVTT1VSQ0VfQlVTWSwKK307CisKIHN0YXRpYyB1bnNpZ25lZCBpbnQgY2FsaWJyYXRpb25fcmVzdWx0OwogCiBzdGF0aWMgaW50IGxhcGljX25leHRfZXZlbnQodW5zaWduZWQgbG9uZyBkZWx0YSwKQEAgLTU0NSw3ICs1NTYsNyBAQAogCQkJbGFwaWNfY2xvY2tldmVudC5mZWF0dXJlcyAmPSB+Q0xPQ0tfRVZUX0ZFQVRfRFVNTVk7CiAJCWVsc2UKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkFQSUMgdGltZXIgcmVnaXN0ZXJlZCBhcyBkdW1teSwiCi0JCQkgICAgICAgIiBkdWUgdG8gbm1pX3dhdGNoZG9nPTEhXG4iKTsKKwkJCQkiIGR1ZSB0byBubWlfd2F0Y2hkb2c9JWQhXG4iLCBubWlfd2F0Y2hkb2cpOwogCX0KIAogCS8qIFNldHVwIHRoZSBsYXBpYyBvciByZXF1ZXN0IHRoZSBicm9hZGNhc3QgKi8KQEAgLTk2Myw3ICs5NzQsNyBAQAogCSAqIERvdWJsZS1jaGVjayB3aGV0aGVyIHRoaXMgQVBJQyBpcyByZWFsbHkgcmVnaXN0ZXJlZC4KIAkgKi8KIAlpZiAoIWFwaWNfaWRfcmVnaXN0ZXJlZCgpKQotCQlCVUcoKTsKKwkJV0FSTl9PTl9PTkNFKDEpOwogCiAJLyoKIAkgKiBJbnRlbCByZWNvbW1lbmRzIHRvIHNldCBERlIsIExEUiBhbmQgVFBSIGJlZm9yZSBlbmFibGluZwpAQCAtMTA5NCw3ICsxMTA1LDcgQEAKIAl1MzIgaCwgbCwgZmVhdHVyZXM7CiAKIAkvKiBEaXNhYmxlZCBieSBrZXJuZWwgb3B0aW9uPyAqLwotCWlmIChlbmFibGVfbG9jYWxfYXBpYyA8IDApCisJaWYgKGRpc2FibGVfYXBpYykKIAkJcmV0dXJuIC0xOwogCiAJc3dpdGNoIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IpIHsKQEAgLTExMTcsNyArMTEyOCw3IEBACiAJCSAqIE92ZXItcmlkZSBCSU9TIGFuZCB0cnkgdG8gZW5hYmxlIHRoZSBsb2NhbCBBUElDIG9ubHkgaWYKIAkJICogImxhcGljIiBzcGVjaWZpZWQuCiAJCSAqLwotCQlpZiAoZW5hYmxlX2xvY2FsX2FwaWMgPD0gMCkgeworCQlpZiAoIWZvcmNlX2VuYWJsZV9sb2NhbF9hcGljKSB7CiAJCQlwcmludGsoS0VSTl9JTkZPICJMb2NhbCBBUElDIGRpc2FibGVkIGJ5IEJJT1MgLS0gIgogCQkJICAgICAgICJ5b3UgY2FuIGVuYWJsZSBpdCB3aXRoIFwibGFwaWNcIlxuIik7CiAJCQlyZXR1cm4gLTE7CkBAIC0xMTU0LDkgKzExNjUsNiBAQAogCWlmIChsICYgTVNSX0lBMzJfQVBJQ0JBU0VfRU5BQkxFKQogCQltcF9sYXBpY19hZGRyID0gbCAmIE1TUl9JQTMyX0FQSUNCQVNFX0JBU0U7CiAKLQlpZiAobm1pX3dhdGNoZG9nICE9IE5NSV9OT05FICYmIG5taV93YXRjaGRvZyAhPSBOTUlfRElTQUJMRUQpCi0JCW5taV93YXRjaGRvZyA9IE5NSV9MT0NBTF9BUElDOwotCiAJcHJpbnRrKEtFUk5fSU5GTyAiRm91bmQgYW5kIGVuYWJsZWQgbG9jYWwgQVBJQyFcbiIpOwogCiAJYXBpY19wbV9hY3RpdmF0ZSgpOwpAQCAtMTE5NSwzNiArMTIwMyw2IEBACiAJaWYgKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCA9PSAtMVUpCiAJCWJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCA9IEdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKTsKIAotI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwotCXsKLQkJdW5zaWduZWQgbG9uZyBpb2FwaWNfcGh5cywgaWR4ID0gRklYX0lPX0FQSUNfQkFTRV8wOwotCQlpbnQgaTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7Ci0JCQlpZiAoc21wX2ZvdW5kX2NvbmZpZykgewotCQkJCWlvYXBpY19waHlzID0gbXBfaW9hcGljc1tpXS5tcGNfYXBpY2FkZHI7Ci0JCQkJaWYgKCFpb2FwaWNfcGh5cykgewotCQkJCQlwcmludGsoS0VSTl9FUlIKLQkJCQkJICAgICAgICJXQVJOSU5HOiBib2d1cyB6ZXJvIElPLUFQSUMgIgotCQkJCQkgICAgICAgImFkZHJlc3MgZm91bmQgaW4gTVBUQUJMRSwgIgotCQkJCQkgICAgICAgImRpc2FibGluZyBJTy9BUElDIHN1cHBvcnQhXG4iKTsKLQkJCQkJc21wX2ZvdW5kX2NvbmZpZyA9IDA7Ci0JCQkJCXNraXBfaW9hcGljX3NldHVwID0gMTsKLQkJCQkJZ290byBmYWtlX2lvYXBpY19wYWdlOwotCQkJCX0KLQkJCX0gZWxzZSB7Ci1mYWtlX2lvYXBpY19wYWdlOgotCQkJCWlvYXBpY19waHlzID0gKHVuc2lnbmVkIGxvbmcpCi0JCQkJCSAgICAgIGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKLQkJCQlpb2FwaWNfcGh5cyA9IF9fcGEoaW9hcGljX3BoeXMpOwotCQkJfQotCQkJc2V0X2ZpeG1hcF9ub2NhY2hlKGlkeCwgaW9hcGljX3BoeXMpOwotCQkJcHJpbnRrKEtFUk5fREVCVUcgIm1hcHBlZCBJT0FQSUMgdG8gJTA4bHggKCUwOGx4KVxuIiwKLQkJCSAgICAgICBfX2ZpeF90b192aXJ0KGlkeCksIGlvYXBpY19waHlzKTsKLQkJCWlkeCsrOwotCQl9Ci0JfQotI2VuZGlmCiB9CiAKIC8qCkBAIC0xMjM2LDcgKzEyMTQsNyBAQAogCiBpbnQgX19pbml0IEFQSUNfaW5pdF91bmlwcm9jZXNzb3Iodm9pZCkKIHsKLQlpZiAoZW5hYmxlX2xvY2FsX2FwaWMgPCAwKQorCWlmIChkaXNhYmxlX2FwaWMpCiAJCWNsZWFyX2NwdV9jYXAoJmJvb3RfY3B1X2RhdGEsIFg4Nl9GRUFUVVJFX0FQSUMpOwogCiAJaWYgKCFzbXBfZm91bmRfY29uZmlnICYmICFjcHVfaGFzX2FwaWMpCkBAIC0xMjY1LDEwICsxMjQzLDE0IEBACiAjaWZkZWYgQ09ORklHX0NSQVNIX0RVTVAKIAlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBHRVRfQVBJQ19JRChyZWFkX2FwaWNfaWQoKSk7CiAjZW5kaWYKLQlwaHlzX2NwdV9wcmVzZW50X21hcCA9IHBoeXNpZF9tYXNrX29mX3BoeXNpZChib290X2NwdV9waHlzaWNhbF9hcGljaWQpOworCXBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkLCAmcGh5c19jcHVfcHJlc2VudF9tYXApOwogCiAJc2V0dXBfbG9jYWxfQVBJQygpOwogCisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJaWYgKCFzbXBfZm91bmRfY29uZmlnIHx8IHNraXBfaW9hcGljX3NldHVwIHx8ICFucl9pb2FwaWNzKQorI2VuZGlmCisJCWxvY2FsaXNlX25taV93YXRjaGRvZygpOwogCWVuZF9sb2NhbF9BUElDX3NldHVwKCk7CiAjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJaWYgKHNtcF9mb3VuZF9jb25maWcpCkBAIC0xMzUxLDEzICsxMzMzLDEzIEBACiAJICogVGhlIHJlc2NoZWR1bGUgaW50ZXJydXB0IGlzIGEgQ1BVLXRvLUNQVSByZXNjaGVkdWxlLWhlbHBlcgogCSAqIElQSSwgZHJpdmVuIGJ5IHdha2V1cC4KIAkgKi8KLQlzZXRfaW50cl9nYXRlKFJFU0NIRURVTEVfVkVDVE9SLCByZXNjaGVkdWxlX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKFJFU0NIRURVTEVfVkVDVE9SLCByZXNjaGVkdWxlX2ludGVycnVwdCk7CiAKIAkvKiBJUEkgZm9yIGludmFsaWRhdGlvbiAqLwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SLCBpbnZhbGlkYXRlX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIGZvciBnZW5lcmljIGZ1bmN0aW9uIGNhbGwgKi8KLQlzZXRfaW50cl9nYXRlKENBTExfRlVOQ1RJT05fVkVDVE9SLCBjYWxsX2Z1bmN0aW9uX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKENBTExfRlVOQ1RJT05fVkVDVE9SLCBjYWxsX2Z1bmN0aW9uX2ludGVycnVwdCk7CiB9CiAjZW5kaWYKIApAQCAtMTM3MCwxNSArMTM1MiwxNSBAQAogCXNtcF9pbnRyX2luaXQoKTsKICNlbmRpZgogCS8qIHNlbGYgZ2VuZXJhdGVkIElQSSBmb3IgbG9jYWwgQVBJQyB0aW1lciAqLwotCXNldF9pbnRyX2dhdGUoTE9DQUxfVElNRVJfVkVDVE9SLCBhcGljX3RpbWVyX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOwogCiAJLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KLQlzZXRfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOwotCXNldF9pbnRyX2dhdGUoRVJST1JfQVBJQ19WRUNUT1IsIGVycm9yX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShFUlJPUl9BUElDX1ZFQ1RPUiwgZXJyb3JfaW50ZXJydXB0KTsKIAogCS8qIHRoZXJtYWwgbW9uaXRvciBMVlQgaW50ZXJydXB0ICovCiAjaWZkZWYgQ09ORklHX1g4Nl9NQ0VfUDRUSEVSTUFMCi0Jc2V0X2ludHJfZ2F0ZShUSEVSTUFMX0FQSUNfVkVDVE9SLCB0aGVybWFsX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKFRIRVJNQUxfQVBJQ19WRUNUT1IsIHRoZXJtYWxfaW50ZXJydXB0KTsKICNlbmRpZgogfQogCkBAIC0xNTEzLDYgKzE0OTUsOSBAQAogCQkgKi8KIAkJY3B1ID0gMDsKIAorCWlmIChhcGljaWQgPiBtYXhfcGh5c2ljYWxfYXBpY2lkKQorCQltYXhfcGh5c2ljYWxfYXBpY2lkID0gYXBpY2lkOworCiAJLyoKIAkgKiBXb3VsZCBiZSBwcmVmZXJhYmxlIHRvIHN3aXRjaCB0byBiaWdzbXAgd2hlbiBDT05GSUdfSE9UUExVR19DUFU9eQogCSAqIGJ1dCB3ZSBuZWVkIHRvIHdvcmsgb3RoZXIgZGVwZW5kZW5jaWVzIGxpa2UgU01QX1NVU1BFTkQgZXRjCkBAIC0xNTIwLDcgKzE1MDUsNyBAQAogCSAqIGlmIChDUFVfSE9UUExVR19FTkFCTEVEIHx8IG51bV9wcm9jZXNzb3JzID4gOCkKIAkgKiAgICAgICAtIEFzaG9rIFJhaiA8YXNob2sucmFqQGludGVsLmNvbT4KIAkgKi8KLQlpZiAobnVtX3Byb2Nlc3NvcnMgPiA4KSB7CisJaWYgKG1heF9waHlzaWNhbF9hcGljaWQgPj0gOCkgewogCQlzd2l0Y2ggKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvcikgewogCQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAJCQlpZiAoIUFQSUNfWEFQSUModmVyc2lvbikpIHsKQEAgLTE1MzQsOSArMTUxOSw5IEBACiAJfQogI2lmZGVmIENPTkZJR19TTVAKIAkvKiBhcmUgd2UgYmVpbmcgY2FsbGVkIGVhcmx5IGluIGtlcm5lbCBzdGFydHVwPyAqLwotCWlmICh4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIpIHsKLQkJdTE2ICpjcHVfdG9fYXBpY2lkID0geDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyOwotCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IHg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyOworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCkpIHsKKwkJdTE2ICpjcHVfdG9fYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpOworCQl1MTYgKmJpb3NfY3B1X2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwogCiAJCWNwdV90b19hcGljaWRbY3B1XSA9IGFwaWNpZDsKIAkJYmlvc19jcHVfYXBpY2lkW2NwdV0gPSBhcGljaWQ7CkBAIC0xNzAzLDE0ICsxNjg4LDE0IEBACiAgKi8KIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2xhcGljKGNoYXIgKmFyZykKIHsKLQllbmFibGVfbG9jYWxfYXBpYyA9IDE7CisJZm9yY2VfZW5hYmxlX2xvY2FsX2FwaWMgPSAxOwogCXJldHVybiAwOwogfQogZWFybHlfcGFyYW0oImxhcGljIiwgcGFyc2VfbGFwaWMpOwogCiBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9ub2xhcGljKGNoYXIgKmFyZykKIHsKLQllbmFibGVfbG9jYWxfYXBpYyA9IC0xOworCWRpc2FibGVfYXBpYyA9IDE7CiAJY2xlYXJfY3B1X2NhcCgmYm9vdF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfQVBJQyk7CiAJcmV0dXJuIDA7CiB9CkBAIC0xNzQwLDMgKzE3MjUsMjEgQEAKIH0KIF9fc2V0dXAoImFwaWM9IiwgYXBpY19zZXRfdmVyYm9zaXR5KTsKIAorc3RhdGljIGludCBfX2luaXQgbGFwaWNfaW5zZXJ0X3Jlc291cmNlKHZvaWQpCit7CisJaWYgKCFhcGljX3BoeXMpCisJCXJldHVybiAtMTsKKworCS8qIFB1dCBsb2NhbCBBUElDIGludG8gdGhlIHJlc291cmNlIG1hcC4gKi8KKwlsYXBpY19yZXNvdXJjZS5zdGFydCA9IGFwaWNfcGh5czsKKwlsYXBpY19yZXNvdXJjZS5lbmQgPSBsYXBpY19yZXNvdXJjZS5zdGFydCArIFBBR0VfU0laRSAtIDE7CisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmxhcGljX3Jlc291cmNlKTsKKworCXJldHVybiAwOworfQorCisvKgorICogbmVlZCBjYWxsIGluc2VydCBhZnRlciBlODIwX3Jlc2VydmVfcmVzb3VyY2VzKCkKKyAqIHRoYXQgaXMgdXNpbmcgcmVxdWVzdF9yZXNvdXJjZQorICovCitsYXRlX2luaXRjYWxsKGxhcGljX2luc2VydF9yZXNvdXJjZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY182NC5jIGIvYXJjaC94ODYva2VybmVsL2FwaWNfNjQuYwppbmRleCA1OTEwMDIwLi4xZTNkMzJlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBpY182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hcGljXzY0LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlIDxtYWNoX2lwaS5oPgogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgogCi1pbnQgZGlzYWJsZV9hcGljX3RpbWVyIF9fY3B1aW5pdGRhdGE7CitzdGF0aWMgaW50IGRpc2FibGVfYXBpY190aW1lciBfX2NwdWluaXRkYXRhOwogc3RhdGljIGludCBhcGljX2NhbGlicmF0ZV9wbXRtciBfX2luaXRkYXRhOwogaW50IGRpc2FibGVfYXBpYzsKIApAQCAtNTYsNiArNTYsOSBAQAogICovCiBpbnQgYXBpY192ZXJib3NpdHk7CiAKKy8qIEhhdmUgd2UgZm91bmQgYW4gTVAgdGFibGUgKi8KK2ludCBzbXBfZm91bmRfY29uZmlnOworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIGxhcGljX3Jlc291cmNlID0gewogCS5uYW1lID0gIkxvY2FsIEFQSUMiLAogCS5mbGFncyA9IElPUkVTT1VSQ0VfTUVNIHwgSU9SRVNPVVJDRV9CVVNZLApAQCAtODcsOSArOTAsNiBAQAogCiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKLURFRklORV9QRVJfQ1BVKHUxNiwgeDg2X2Jpb3NfY3B1X2FwaWNpZCkgPSBCQURfQVBJQ0lEOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwotCiB1bnNpZ25lZCBpbnQgX19jcHVpbml0ZGF0YSBtYXhjcHVzID0gTlJfQ1BVUzsKIC8qCiAgKiBHZXQgdGhlIExBUElDIHZlcnNpb24KQEAgLTQxNywzNyArNDE3LDEzIEBACiAJCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgJj0gfkNMT0NLX0VWVF9GRUFUX0RVTU1ZOwogCWVsc2UKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiQVBJQyB0aW1lciByZWdpc3RlcmVkIGFzIGR1bW15LCIKLQkJICAgICAgICIgZHVlIHRvIG5taV93YXRjaGRvZz0xIVxuIik7CisJCQkiIGR1ZSB0byBubWlfd2F0Y2hkb2c9JWQhXG4iLCBubWlfd2F0Y2hkb2cpOwogCiAJc2V0dXBfQVBJQ190aW1lcigpOwogfQogCi0vKgotICogQU1EIEMxRSBlbmFibGVkIENQVXMgaGF2ZSBhIHJlYWwgbmFzdHkgcHJvYmxlbTogU29tZSBCSU9TZXMgc2V0IHRoZQotICogQzFFIGZsYWcgb25seSBpbiB0aGUgc2Vjb25kYXJ5IENQVSwgc28gd2hlbiB3ZSBkZXRlY3QgdGhlIHdyZWNrYWdlCi0gKiB3ZSBhbHJlYWR5IGhhdmUgZW5hYmxlZCB0aGUgYm9vdCBDUFUgbG9jYWwgYXBpYyB0aW1lci4gQ2hlY2ssIGlmCi0gKiBkaXNhYmxlX2FwaWNfdGltZXIgaXMgc2V0IGFuZCB0aGUgRFVNTVkgZmxhZyBpcyBjbGVhcmVkLiBJZiB5ZXMsCi0gKiBzZXQgdGhlIERVTU1ZIGZsYWcgYWdhaW4gYW5kIGZvcmNlIHRoZSBicm9hZGNhc3QgbW9kZSBpbiB0aGUKLSAqIGNsb2NrZXZlbnRzIGxheWVyLgotICovCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgY2hlY2tfYm9vdF9hcGljX3RpbWVyX2Jyb2FkY2FzdCh2b2lkKQotewotCWlmICghZGlzYWJsZV9hcGljX3RpbWVyIHx8Ci0JICAgIChsYXBpY19jbG9ja2V2ZW50LmZlYXR1cmVzICYgQ0xPQ0tfRVZUX0ZFQVRfRFVNTVkpKQotCQlyZXR1cm47Ci0KLQlwcmludGsoS0VSTl9JTkZPICJBTUQgQzFFIGRldGVjdGVkIGxhdGUuIEZvcmNlIHRpbWVyIGJyb2FkY2FzdC5cbiIpOwotCWxhcGljX2Nsb2NrZXZlbnQuZmVhdHVyZXMgfD0gQ0xPQ0tfRVZUX0ZFQVRfRFVNTVk7Ci0KLQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JY2xvY2tldmVudHNfbm90aWZ5KENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0ZPUkNFLAotCQkJICAgJmJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7Ci0JbG9jYWxfaXJxX2Rpc2FibGUoKTsKLX0KLQogdm9pZCBfX2NwdWluaXQgc2V0dXBfc2Vjb25kYXJ5X0FQSUNfY2xvY2sodm9pZCkKIHsKLQljaGVja19ib290X2FwaWNfdGltZXJfYnJvYWRjYXN0KCk7CiAJc2V0dXBfQVBJQ190aW1lcigpOwogfQogCkBAIC01MzQsNyArNTEwLDcgQEAKICAqLwogdm9pZCBjbGVhcl9sb2NhbF9BUElDKHZvaWQpCiB7Ci0JaW50IG1heGx2dCA9IGxhcGljX2dldF9tYXhsdnQoKTsKKwlpbnQgbWF4bHZ0OwogCXUzMiB2OwogCiAJLyogQVBJQyBoYXNuJ3QgYmVlbiBtYXBwZWQgeWV0ICovCkBAIC04NTAsNyArODI2LDYgQEAKIHZvaWQgX19jcHVpbml0IGVuZF9sb2NhbF9BUElDX3NldHVwKHZvaWQpCiB7CiAJbGFwaWNfc2V0dXBfZXNyKCk7Ci0Jbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKIAlzZXR1cF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKIAlhcGljX3BtX2FjdGl2YXRlKCk7CiB9CkBAIC04NzUsNyArODUwLDcgQEAKIAogdm9pZCBfX2luaXQgZWFybHlfaW5pdF9sYXBpY19tYXBwaW5nKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBhcGljX3BoeXM7CisJdW5zaWduZWQgbG9uZyBwaHlzX2FkZHI7CiAKIAkvKgogCSAqIElmIG5vIGxvY2FsIEFQSUMgY2FuIGJlIGZvdW5kIHRoZW4gZ28gb3V0CkBAIC04ODQsMTEgKzg1OSwxMSBAQAogCWlmICghc21wX2ZvdW5kX2NvbmZpZykKIAkJcmV0dXJuOwogCi0JYXBpY19waHlzID0gbXBfbGFwaWNfYWRkcjsKKwlwaHlzX2FkZHIgPSBtcF9sYXBpY19hZGRyOwogCi0Jc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9BUElDX0JBU0UsIGFwaWNfcGh5cyk7CisJc2V0X2ZpeG1hcF9ub2NhY2hlKEZJWF9BUElDX0JBU0UsIHBoeXNfYWRkcik7CiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAibWFwcGVkIEFQSUMgdG8gJTE2bHggKCUxNmx4KVxuIiwKLQkJCQkgQVBJQ19CQVNFLCBhcGljX3BoeXMpOworCQkgICAgQVBJQ19CQVNFLCBwaHlzX2FkZHIpOwogCiAJLyoKIAkgKiBGZXRjaCB0aGUgQVBJQyBJRCBvZiB0aGUgQlNQIGluIGNhc2Ugd2UgaGF2ZSBhCkBAIC05NDIsNyArOTE3LDkgQEAKIAogCXZlcmlmeV9sb2NhbF9BUElDKCk7CiAKLQlwaHlzX2NwdV9wcmVzZW50X21hcCA9IHBoeXNpZF9tYXNrX29mX3BoeXNpZChib290X2NwdV9waHlzaWNhbF9hcGljaWQpOworCWNvbm5lY3RfYnNwX0FQSUMoKTsKKworCXBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkLCAmcGh5c19jcHVfcHJlc2VudF9tYXApOwogCWFwaWNfd3JpdGUoQVBJQ19JRCwgU0VUX0FQSUNfSUQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKSk7CiAKIAlzZXR1cF9sb2NhbF9BUElDKCk7CkBAIC05NTQsNiArOTMxLDggQEAKIAlpZiAoIXNraXBfaW9hcGljX3NldHVwICYmIG5yX2lvYXBpY3MpCiAJCWVuYWJsZV9JT19BUElDKCk7CiAKKwlpZiAoIXNtcF9mb3VuZF9jb25maWcgfHwgc2tpcF9pb2FwaWNfc2V0dXAgfHwgIW5yX2lvYXBpY3MpCisJCWxvY2FsaXNlX25taV93YXRjaGRvZygpOwogCWVuZF9sb2NhbF9BUElDX3NldHVwKCk7CiAKIAlpZiAoc21wX2ZvdW5kX2NvbmZpZyAmJiAhc2tpcF9pb2FwaWNfc2V0dXAgJiYgbnJfaW9hcGljcykKQEAgLTEwMjEsNiArMTAwMCwxNCBAQAogCWlycV9leGl0KCk7CiB9CiAKKy8qKgorICogICogY29ubmVjdF9ic3BfQVBJQyAtIGF0dGFjaCB0aGUgQVBJQyB0byB0aGUgaW50ZXJydXB0IHN5c3RlbQorICogICAqLwordm9pZCBfX2luaXQgY29ubmVjdF9ic3BfQVBJQyh2b2lkKQoreworCWVuYWJsZV9hcGljX21vZGUoKTsKK30KKwogdm9pZCBkaXNjb25uZWN0X2JzcF9BUElDKGludCB2aXJ0X3dpcmVfc2V0dXApCiB7CiAJLyogR28gYmFjayB0byBWaXJ0dWFsIFdpcmUgY29tcGF0aWJpbGl0eSBtb2RlICovCkBAIC0xMDkwLDEwICsxMDc3LDEzIEBACiAJCSAqLwogCQljcHUgPSAwOwogCX0KKwlpZiAoYXBpY2lkID4gbWF4X3BoeXNpY2FsX2FwaWNpZCkKKwkJbWF4X3BoeXNpY2FsX2FwaWNpZCA9IGFwaWNpZDsKKwogCS8qIGFyZSB3ZSBiZWluZyBjYWxsZWQgZWFybHkgaW4ga2VybmVsIHN0YXJ0dXA/ICovCi0JaWYgKHg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0cikgewotCQl1MTYgKmNwdV90b19hcGljaWQgPSB4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHI7Ci0JCXUxNiAqYmlvc19jcHVfYXBpY2lkID0geDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7CisJaWYgKGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fYXBpY2lkKSkgeworCQl1MTYgKmNwdV90b19hcGljaWQgPSBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCk7CisJCXUxNiAqYmlvc19jcHVfYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2Jpb3NfY3B1X2FwaWNpZCk7CiAKIAkJY3B1X3RvX2FwaWNpZFtjcHVdID0gYXBpY2lkOwogCQliaW9zX2NwdV9hcGljaWRbY3B1XSA9IGFwaWNpZDsKQEAgLTEyNjksNyArMTI1OSw3IEBACiAJaWYgKChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQpICYmICFpc192c21wX2JveCgpKQogCQlyZXR1cm4gMDsKIAotCWJpb3NfY3B1X2FwaWNpZCA9IHg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyOworCWJpb3NfY3B1X2FwaWNpZCA9IGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpOwogCWJpdG1hcF96ZXJvKGNsdXN0ZXJtYXAsIE5VTV9BUElDX0NMVVNURVJTKTsKIAogCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9hcG1fMzIuYwppbmRleCBiZjkyOTBlLi43NWNiNWRhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FwbV8zMi5jCkBAIC0yMDQsNiArMjA0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KQEAgLTIyOCw2ICsyMjksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTExNDksNyArMTE1MSw3IEBACiAJCQkJYXMtPmV2ZW50X3RhaWwgPSAwOwogCQl9CiAJCWFzLT5ldmVudHNbYXMtPmV2ZW50X2hlYWRdID0gZXZlbnQ7Ci0JCWlmICgoIWFzLT5zdXNlcikgfHwgKCFhcy0+d3JpdGVyKSkKKwkJaWYgKCFhcy0+c3VzZXIgfHwgIWFzLT53cml0ZXIpCiAJCQljb250aW51ZTsKIAkJc3dpdGNoIChldmVudCkgewogCQljYXNlIEFQTV9TWVNfU1VTUEVORDoKQEAgLTEzOTYsNyArMTM5OCw3IEBACiAKIHN0YXRpYyBpbnQgY2hlY2tfYXBtX3VzZXIoc3RydWN0IGFwbV91c2VyICphcywgY29uc3QgY2hhciAqZnVuYykKIHsKLQlpZiAoKGFzID09IE5VTEwpIHx8IChhcy0+bWFnaWMgIT0gQVBNX0JJT1NfTUFHSUMpKSB7CisJaWYgKGFzID09IE5VTEwgfHwgYXMtPm1hZ2ljICE9IEFQTV9CSU9TX01BR0lDKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiYXBtOiAlcyBwYXNzZWQgYmFkIGZpbHBcbiIsIGZ1bmMpOwogCQlyZXR1cm4gMTsKIAl9CkBAIC0xNDU5LDE4ICsxNDYxLDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZG9faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCi0JCSAgICB1X2ludCBjbWQsIHVfbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBkb19pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQogewogCXN0cnVjdCBhcG1fdXNlciAqYXM7CisJaW50IHJldDsKIAogCWFzID0gZmlscC0+cHJpdmF0ZV9kYXRhOwogCWlmIChjaGVja19hcG1fdXNlcihhcywgImlvY3RsIikpCiAJCXJldHVybiAtRUlPOwotCWlmICgoIWFzLT5zdXNlcikgfHwgKCFhcy0+d3JpdGVyKSkKKwlpZiAoIWFzLT5zdXNlciB8fCAhYXMtPndyaXRlcikKIAkJcmV0dXJuIC1FUEVSTTsKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgQVBNX0lPQ19TVEFOREJZOgorCQlsb2NrX2tlcm5lbCgpOwogCQlpZiAoYXMtPnN0YW5kYnlzX3JlYWQgPiAwKSB7CiAJCQlhcy0+c3RhbmRieXNfcmVhZC0tOwogCQkJYXMtPnN0YW5kYnlzX3BlbmRpbmctLTsKQEAgLTE0NzksOCArMTQ4MiwxMCBAQAogCQkJcXVldWVfZXZlbnQoQVBNX1VTRVJfU1RBTkRCWSwgYXMpOwogCQlpZiAoc3RhbmRieXNfcGVuZGluZyA8PSAwKQogCQkJc3RhbmRieSgpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCWJyZWFrOwogCWNhc2UgQVBNX0lPQ19TVVNQRU5EOgorCQlsb2NrX2tlcm5lbCgpOwogCQlpZiAoYXMtPnN1c3BlbmRzX3JlYWQgPiAwKSB7CiAJCQlhcy0+c3VzcGVuZHNfcmVhZC0tOwogCQkJYXMtPnN1c3BlbmRzX3BlbmRpbmctLTsKQEAgLTE0ODgsMTYgKzE0OTMsMTcgQEAKIAkJfSBlbHNlCiAJCQlxdWV1ZV9ldmVudChBUE1fVVNFUl9TVVNQRU5ELCBhcyk7CiAJCWlmIChzdXNwZW5kc19wZW5kaW5nIDw9IDApIHsKLQkJCXJldHVybiBzdXNwZW5kKDEpOworCQkJcmV0ID0gc3VzcGVuZCgxKTsKIAkJfSBlbHNlIHsKIAkJCWFzLT5zdXNwZW5kX3dhaXQgPSAxOwogCQkJd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKGFwbV9zdXNwZW5kX3dhaXRxdWV1ZSwKIAkJCQkJYXMtPnN1c3BlbmRfd2FpdCA9PSAwKTsKLQkJCXJldHVybiBhcy0+c3VzcGVuZF9yZXN1bHQ7CisJCQlyZXQgPSBhcy0+c3VzcGVuZF9yZXN1bHQ7CiAJCX0KLQkJYnJlYWs7CisJCXVubG9ja19rZXJuZWwoKTsKKwkJcmV0dXJuIHJldDsKIAlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmV0dXJuIC1FTk9UVFk7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMTU0NCwxMCArMTU1MCwxMiBAQAogewogCXN0cnVjdCBhcG1fdXNlciAqYXM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWFzID0ga21hbGxvYyhzaXplb2YoKmFzKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGFzID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJhcG06IGNhbm5vdCBhbGxvY2F0ZSBzdHJ1Y3Qgb2Ygc2l6ZSAlZCBieXRlc1xuIiwKIAkJICAgICAgIHNpemVvZigqYXMpKTsKKwkJICAgICAgIHVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCWFzLT5tYWdpYyA9IEFQTV9CSU9TX01BR0lDOwpAQCAtMTU2OSw2ICsxNTc3LDcgQEAKIAl1c2VyX2xpc3QgPSBhczsKIAlzcGluX3VubG9jaygmdXNlcl9saXN0X2xvY2spOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGFzOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTg2MCw3ICsxODY5LDcgQEAKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCiAJLnJlYWQJCT0gZG9fcmVhZCwKIAkucG9sbAkJPSBkb19wb2xsLAotCS5pb2N0bAkJPSBkb19pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJPSBkb19pb2N0bCwKIAkub3BlbgkJPSBkb19vcGVuLAogCS5yZWxlYXNlCT0gZG9fcmVsZWFzZSwKIH07CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvYXNtLW9mZnNldHNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCmluZGV4IDkyNTg4MDguLjY2NDlkMDkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c18zMi5jCkBAIC0xMTEsNyArMTExLDcgQEAKIAlPRkZTRVQoUFZfSVJRX2lycV9kaXNhYmxlLCBwdl9pcnFfb3BzLCBpcnFfZGlzYWJsZSk7CiAJT0ZGU0VUKFBWX0lSUV9pcnFfZW5hYmxlLCBwdl9pcnFfb3BzLCBpcnFfZW5hYmxlKTsKIAlPRkZTRVQoUFZfQ1BVX2lyZXQsIHB2X2NwdV9vcHMsIGlyZXQpOwotCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwgcHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJT0ZGU0VUKFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCk7CiAJT0ZGU0VUKFBWX0NQVV9yZWFkX2NyMCwgcHZfY3B1X29wcywgcmVhZF9jcjApOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9hc20tb2Zmc2V0c182NC5jIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKaW5kZXggZjEyNmMwNS4uYmFjZjVkZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2FzbS1vZmZzZXRzXzY0LmMKQEAgLTM0LDcgKzM0LDcgQEAKIAlFTlRSWShwaWQpOwogCUJMQU5LKCk7CiAjdW5kZWYgRU5UUlkKLSNkZWZpbmUgRU5UUlkoZW50cnkpIERFRklORSh0aHJlYWRpbmZvXyAjIyBlbnRyeSwgb2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBlbnRyeSkpCisjZGVmaW5lIEVOVFJZKGVudHJ5KSBERUZJTkUoVElfICMjIGVudHJ5LCBvZmZzZXRvZihzdHJ1Y3QgdGhyZWFkX2luZm8sIGVudHJ5KSkKIAlFTlRSWShmbGFncyk7CiAJRU5UUlkoYWRkcl9saW1pdCk7CiAJRU5UUlkocHJlZW1wdF9jb3VudCk7CkBAIC02MSw4ICs2MSwxMSBAQAogCU9GRlNFVChQQVJBVklSVF9QQVRDSF9wdl9pcnFfb3BzLCBwYXJhdmlydF9wYXRjaF90ZW1wbGF0ZSwgcHZfaXJxX29wcyk7CiAJT0ZGU0VUKFBWX0lSUV9pcnFfZGlzYWJsZSwgcHZfaXJxX29wcywgaXJxX2Rpc2FibGUpOwogCU9GRlNFVChQVl9JUlFfaXJxX2VuYWJsZSwgcHZfaXJxX29wcywgaXJxX2VuYWJsZSk7CisJT0ZGU0VUKFBWX0lSUV9hZGp1c3RfZXhjZXB0aW9uX2ZyYW1lLCBwdl9pcnFfb3BzLCBhZGp1c3RfZXhjZXB0aW9uX2ZyYW1lKTsKIAlPRkZTRVQoUFZfQ1BVX2lyZXQsIHB2X2NwdV9vcHMsIGlyZXQpOwotCU9GRlNFVChQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCwgcHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJT0ZGU0VUKFBWX0NQVV91c2VyZ3Nfc3lzcmV0MzIsIHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMik7CisJT0ZGU0VUKFBWX0NQVV91c2VyZ3Nfc3lzcmV0NjQsIHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQ2NCk7CisJT0ZGU0VUKFBWX0NQVV9pcnFfZW5hYmxlX3N5c2V4aXQsIHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCk7CiAJT0ZGU0VUKFBWX0NQVV9zd2FwZ3MsIHB2X2NwdV9vcHMsIHN3YXBncyk7CiAJT0ZGU0VUKFBWX01NVV9yZWFkX2NyMiwgcHZfbW11X29wcywgcmVhZF9jcjIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L01ha2VmaWxlIGIvYXJjaC94ODYva2VybmVsL2NwdS9NYWtlZmlsZQppbmRleCBhMGM2ZjgxLi5lZTc2ZWFhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L01ha2VmaWxlCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvTWFrZWZpbGUKQEAgLTYsMTEgKzYsMTUgQEAKIG9iai15CQkJKz0gcHJvYy5vIGZlYXR1cmVfbmFtZXMubwogCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjb21tb24ubyBidWdzLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGNvbW1vbl82NC5vIGJ1Z3NfNjQubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gYW1kLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGFtZF82NC5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjeXJpeC5vCiBvYmotJChDT05GSUdfWDg2XzMyKQkrPSBjZW50YXVyLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGNlbnRhdXJfNjQubwogb2JqLSQoQ09ORklHX1g4Nl8zMikJKz0gdHJhbnNtZXRhLm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IGludGVsLm8KK29iai0kKENPTkZJR19YODZfNjQpCSs9IGludGVsXzY0Lm8KIG9iai0kKENPTkZJR19YODZfMzIpCSs9IHVtYy5vCiAKIG9iai0kKENPTkZJR19YODZfTUNFKQkrPSBtY2hlY2svCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FkZG9uX2NwdWlkX2ZlYXR1cmVzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FkZG9uX2NwdWlkX2ZlYXR1cmVzLmMKaW5kZXggYzJlMWNlMy4uODRhODIyMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9hZGRvbl9jcHVpZF9mZWF0dXJlcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYWRkb25fY3B1aWRfZmVhdHVyZXMuYwpAQCAtMSw5ICsxLDcgQEAKLQogLyoKICAqCVJvdXRpbmVzIHRvIGluZGVudGlmeSBhZGRpdGlvbmFsIGNwdSBmZWF0dXJlcyB0aGF0IGFyZSBzY2F0dGVyZWQgaW4KICAqCWNwdWlkIHNwYWNlLgogICovCi0KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KIAogI2luY2x1ZGUgPGFzbS9wYXQuaD4KQEAgLTUzLDE5ICs1MSwyMCBAQAogI2lmZGVmIENPTkZJR19YODZfUEFUCiB2b2lkIF9fY3B1aW5pdCB2YWxpZGF0ZV9wYXRfc3VwcG9ydChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CisJaWYgKCFjcHVfaGFzX3BhdCkKKwkJcGF0X2Rpc2FibGUoIlBBVCBub3Qgc3VwcG9ydGVkIGJ5IENQVS4iKTsKKwogCXN3aXRjaCAoYy0+eDg2X3ZlbmRvcikgewotCWNhc2UgWDg2X1ZFTkRPUl9BTUQ6Ci0JCWlmIChjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKQotCQkJcmV0dXJuOwotCQlicmVhazsKIAljYXNlIFg4Nl9WRU5ET1JfSU5URUw6CiAJCWlmIChjLT54ODYgPT0gMHhGIHx8IChjLT54ODYgPT0gNiAmJiBjLT54ODZfbW9kZWwgPj0gMTUpKQogCQkJcmV0dXJuOwogCQlicmVhazsKKwljYXNlIFg4Nl9WRU5ET1JfQU1EOgorCWNhc2UgWDg2X1ZFTkRPUl9DRU5UQVVSOgorCWNhc2UgWDg2X1ZFTkRPUl9UUkFOU01FVEE6CisJCXJldHVybjsKIAl9CiAKLQlwYXRfZGlzYWJsZShjcHVfaGFzX3BhdCA/Ci0JCSAgICAiUEFUIGRpc2FibGVkLiBOb3QgeWV0IHZlcmlmaWVkIG9uIHRoaXMgQ1BVIHR5cGUuIiA6Ci0JCSAgICAiUEFUIG5vdCBzdXBwb3J0ZWQgYnkgQ1BVLiIpOworCXBhdF9kaXNhYmxlKCJQQVQgZGlzYWJsZWQuIE5vdCB5ZXQgdmVyaWZpZWQgb24gdGhpcyBDUFUgdHlwZS4iKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMKaW5kZXggMjQ1ODY2OC4uODFhMDdjYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jCkBAIC0yNCw0MyArMjQsNiBAQAogZXh0ZXJuIHZvaWQgdmlkZSh2b2lkKTsKIF9fYXNtX18oIi5hbGlnbiA0XG52aWRlOiByZXQiKTsKIAotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotI2RlZmluZSBFTkFCTEVfQzFFX01BU0sgICAgICAgICAweDE4MDAwMDAwCi0jZGVmaW5lIENQVUlEX1BST0NFU1NPUl9TSUdOQVRVUkUgICAgICAgMQotI2RlZmluZSBDUFVJRF9YRkFNICAgICAgICAgICAgICAweDBmZjAwMDAwCi0jZGVmaW5lIENQVUlEX1hGQU1fSzggICAgICAgICAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV8xMEggICAgICAgICAgMHgwMDEwMDAwMAotI2RlZmluZSBDUFVJRF9YRkFNXzExSCAgICAgICAgICAweDAwMjAwMDAwCi0jZGVmaW5lIENQVUlEX1hNT0QgICAgICAgICAgICAgIDB4MDAwZjAwMDAKLSNkZWZpbmUgQ1BVSURfWE1PRF9SRVZfRiAgICAgICAgMHgwMDA0MDAwMAotCi0vKiBBTUQgc3lzdGVtcyB3aXRoIEMxRSBkb24ndCBoYXZlIGEgd29ya2luZyBsQVBJQyB0aW1lci4gQ2hlY2sgZm9yIHRoYXQuICovCi1zdGF0aWMgX19jcHVpbml0IGludCBhbWRfYXBpY190aW1lcl9icm9rZW4odm9pZCkKLXsKLQl1MzIgbG8sIGhpOwotCXUzMiBlYXggPSBjcHVpZF9lYXgoQ1BVSURfUFJPQ0VTU09SX1NJR05BVFVSRSk7Ci0Jc3dpdGNoIChlYXggJiBDUFVJRF9YRkFNKSB7Ci0JY2FzZSBDUFVJRF9YRkFNX0s4OgotCQlpZiAoKGVheCAmIENQVUlEX1hNT0QpIDwgQ1BVSURfWE1PRF9SRVZfRikKLQkJCWJyZWFrOwotCWNhc2UgQ1BVSURfWEZBTV8xMEg6Ci0JY2FzZSBDUFVJRF9YRkFNXzExSDoKLQkJcmRtc3IoTVNSX0s4X0VOQUJMRV9DMUUsIGxvLCBoaSk7Ci0JCWlmIChsbyAmIEVOQUJMRV9DMUVfTUFTSykgewotCQkJaWYgKHNtcF9wcm9jZXNzb3JfaWQoKSAhPSBib290X2NwdV9waHlzaWNhbF9hcGljaWQpCi0JCQkJcHJpbnRrKEtFUk5fSU5GTyAiQU1EIEMxRSBkZXRlY3RlZCBsYXRlLiAiCi0JCQkJICAgICAgICIJRm9yY2UgdGltZXIgYnJvYWRjYXN0LlxuIik7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCQlicmVhazsKLQlkZWZhdWx0OgotCQkvKiBlcnIgb24gdGhlIHNpZGUgb2YgY2F1dGlvbiAqLwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQogaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7CiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCkBAIC0yOTcsMTEgKzI2MCw2IEBACiAJCQludW1fY2FjaGVfbGVhdmVzID0gMzsKIAl9CiAKLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlpZiAoYW1kX2FwaWNfdGltZXJfYnJva2VuKCkpCi0JCWxvY2FsX2FwaWNfdGltZXJfZGlzYWJsZWQgPSAxOwotI2VuZGlmCi0KIAkvKiBLNnMgcmVwb3J0cyBNQ0VzIGJ1dCBkb24ndCBhY3R1YWxseSBoYXZlIGFsbCB0aGUgTVNScyAqLwogCWlmIChjLT54ODYgPCA2KQogCQljbGVhcl9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX01DRSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZF82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWRfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YzM2ZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWRfNjQuYwpAQCAtMCwwICsxLDIyMiBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCisjaW5jbHVkZSA8YXNtL251bWFfNjQuaD4KKyNpbmNsdWRlIDxhc20vbW1jb25maWcuaD4KKyNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgorCisjaW5jbHVkZSA8bWFjaF9hcGljLmg+CisKKyNpbmNsdWRlICJjcHUuaCIKKworaW50IGZvcmNlX213YWl0IF9fY3B1aW5pdGRhdGE7CisKKyNpZmRlZiBDT05GSUdfTlVNQQorc3RhdGljIGludCBfX2NwdWluaXQgbmVhcmJ5X25vZGUoaW50IGFwaWNpZCkKK3sKKwlpbnQgaSwgbm9kZTsKKworCWZvciAoaSA9IGFwaWNpZCAtIDE7IGkgPj0gMDsgaS0tKSB7CisJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKKwkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCWZvciAoaSA9IGFwaWNpZCArIDE7IGkgPCBNQVhfTE9DQUxfQVBJQzsgaSsrKSB7CisJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtpXTsKKwkJaWYgKG5vZGUgIT0gTlVNQV9OT19OT0RFICYmIG5vZGVfb25saW5lKG5vZGUpKQorCQkJcmV0dXJuIG5vZGU7CisJfQorCXJldHVybiBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7IC8qIFNob3VsZG4ndCBoYXBwZW4gKi8KK30KKyNlbmRpZgorCisvKgorICogT24gYSBBTUQgZHVhbCBjb3JlIHNldHVwIHRoZSBsb3dlciBiaXRzIG9mIHRoZSBBUElDIGlkIGRpc3Rpbmd1c2ggdGhlIGNvcmVzLgorICogQXNzdW1lcyBudW1iZXIgb2YgY29yZXMgaXMgYSBwb3dlciBvZiB0d28uCisgKi8KK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBhbWRfZGV0ZWN0X2NtcChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisjaWZkZWYgQ09ORklHX1NNUAorCXVuc2lnbmVkIGJpdHM7CisjaWZkZWYgQ09ORklHX05VTUEKKwlpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCWludCBub2RlID0gMDsKKwl1bnNpZ25lZCBhcGljaWQgPSBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKTsKKyNlbmRpZgorCWJpdHMgPSBjLT54ODZfY29yZWlkX2JpdHM7CisKKwkvKiBMb3cgb3JkZXIgYml0cyBkZWZpbmUgdGhlIGNvcmUgaWQgKGluZGV4IG9mIGNvcmUgaW4gc29ja2V0KSAqLworCWMtPmNwdV9jb3JlX2lkID0gYy0+aW5pdGlhbF9hcGljaWQgJiAoKDEgPDwgYml0cyktMSk7CisJLyogQ29udmVydCB0aGUgaW5pdGlhbCBBUElDIElEIGludG8gdGhlIHNvY2tldCBJRCAqLworCWMtPnBoeXNfcHJvY19pZCA9IGMtPmluaXRpYWxfYXBpY2lkID4+IGJpdHM7CisKKyNpZmRlZiBDT05GSUdfTlVNQQorCW5vZGUgPSBjLT5waHlzX3Byb2NfaWQ7CisJaWYgKGFwaWNpZF90b19ub2RlW2FwaWNpZF0gIT0gTlVNQV9OT19OT0RFKQorCQlub2RlID0gYXBpY2lkX3RvX25vZGVbYXBpY2lkXTsKKwlpZiAoIW5vZGVfb25saW5lKG5vZGUpKSB7CisJCS8qIFR3byBwb3NzaWJpbGl0aWVzIGhlcmU6CisJCSAgIC0gVGhlIENQVSBpcyBtaXNzaW5nIG1lbW9yeSBhbmQgbm8gbm9kZSB3YXMgY3JlYXRlZC4KKwkJICAgSW4gdGhhdCBjYXNlIHRyeSBwaWNraW5nIG9uZSBmcm9tIGEgbmVhcmJ5IENQVQorCQkgICAtIFRoZSBBUElDIElEcyBkaWZmZXIgZnJvbSB0aGUgSHlwZXJUcmFuc3BvcnQgbm9kZSBJRHMKKwkJICAgd2hpY2ggdGhlIEs4IG5vcnRoYnJpZGdlIHBhcnNpbmcgZmlsbHMgaW4uCisJCSAgIEFzc3VtZSB0aGV5IGFyZSBhbGwgaW5jcmVhc2VkIGJ5IGEgY29uc3RhbnQgb2Zmc2V0LAorCQkgICBidXQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIEhUIG5vZGVpZHMuCisJCSAgIElmIHRoYXQgZG9lc24ndCByZXN1bHQgaW4gYSB1c2FibGUgbm9kZSBmYWxsIGJhY2sgdG8gdGhlCisJCSAgIHBhdGggZm9yIHRoZSBwcmV2aW91cyBjYXNlLiAgKi8KKworCQlpbnQgaHRfbm9kZWlkID0gYy0+aW5pdGlhbF9hcGljaWQ7CisKKwkJaWYgKGh0X25vZGVpZCA+PSAwICYmCisJCSAgICBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdICE9IE5VTUFfTk9fTk9ERSkKKwkJCW5vZGUgPSBhcGljaWRfdG9fbm9kZVtodF9ub2RlaWRdOworCQkvKiBQaWNrIGEgbmVhcmJ5IG5vZGUgKi8KKwkJaWYgKCFub2RlX29ubGluZShub2RlKSkKKwkJCW5vZGUgPSBuZWFyYnlfbm9kZShhcGljaWQpOworCX0KKwludW1hX3NldF9ub2RlKGNwdSwgbm9kZSk7CisKKwlwcmludGsoS0VSTl9JTkZPICJDUFUgJWQvJXggLT4gTm9kZSAlZFxuIiwgY3B1LCBhcGljaWQsIG5vZGUpOworI2VuZGlmCisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfYW1kX21jKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKyNpZmRlZiBDT05GSUdfU01QCisJdW5zaWduZWQgYml0cywgZWN4OworCisJLyogTXVsdGkgY29yZSBDUFU/ICovCisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsIDwgMHg4MDAwMDAwOCkKKwkJcmV0dXJuOworCisJZWN4ID0gY3B1aWRfZWN4KDB4ODAwMDAwMDgpOworCisJYy0+eDg2X21heF9jb3JlcyA9IChlY3ggJiAweGZmKSArIDE7CisKKwkvKiBDUFUgdGVsbGluZyB1cyB0aGUgY29yZSBpZCBiaXRzIHNoaWZ0PyAqLworCWJpdHMgPSAoZWN4ID4+IDEyKSAmIDB4RjsKKworCS8qIE90aGVyd2lzZSByZWNvbXB1dGUgKi8KKwlpZiAoYml0cyA9PSAwKSB7CisJCXdoaWxlICgoMSA8PCBiaXRzKSA8IGMtPng4Nl9tYXhfY29yZXMpCisJCQliaXRzKys7CisJfQorCisJYy0+eDg2X2NvcmVpZF9iaXRzID0gYml0czsKKworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJZWFybHlfaW5pdF9hbWRfbWMoYyk7CisKKwkvKiBjLT54ODZfcG93ZXIgaXMgODAwMF8wMDA3IGVkeC4gQml0IDggaXMgY29uc3RhbnQgVFNDICovCisJaWYgKGMtPng4Nl9wb3dlciAmICgxPDw4KSkKKwkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwl1bnNpZ25lZCBsZXZlbDsKKworI2lmZGVmIENPTkZJR19TTVAKKwl1bnNpZ25lZCBsb25nIHZhbHVlOworCisJLyoKKwkgKiBEaXNhYmxlIFRMQiBmbHVzaCBmaWx0ZXIgYnkgc2V0dGluZyBIV0NSLkZGRElTIG9uIEs4CisJICogYml0IDYgb2YgbXNyIEMwMDFfMDAxNQorCSAqCisJICogRXJyYXRhIDYzIGZvciBTSC1CMyBzdGVwcGluZ3MKKwkgKiBFcnJhdGEgMTIyIGZvciBhbGwgc3RlcHBpbmdzIChGKyBoYXZlIGl0IGRpc2FibGVkIGJ5IGRlZmF1bHQpCisJICovCisJaWYgKGMtPng4NiA9PSAweGYpIHsKKwkJcmRtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7CisJCXZhbHVlIHw9IDEgPDwgNjsKKwkJd3Jtc3JsKE1TUl9LOF9IV0NSLCB2YWx1ZSk7CisJfQorI2VuZGlmCisKKwkvKiBCaXQgMzEgaW4gbm9ybWFsIENQVUlEIHVzZWQgZm9yIG5vbnN0YW5kYXJkIDNETm93IElEOworCSAgIDNETm93IGlzIElEZCBieSBiaXQgMzEgaW4gZXh0ZW5kZWQgQ1BVSUQgKDEqMzIrMzEpIGFueXdheSAqLworCWNsZWFyX2NwdV9jYXAoYywgMCozMiszMSk7CisKKwkvKiBPbiBDKyBzdGVwcGluZyBLOCByZXAgbWljcm9jb2RlIHdvcmtzIHdlbGwgZm9yIGNvcHkvbWVtc2V0ICovCisJaWYgKGMtPng4NiA9PSAweGYpIHsKKwkJbGV2ZWwgPSBjcHVpZF9lYXgoMSk7CisJCWlmKChsZXZlbCA+PSAweDBmNDggJiYgbGV2ZWwgPCAweDBmNTApIHx8IGxldmVsID49IDB4MGY1OCkKKwkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1JFUF9HT09EKTsKKwl9CisJaWYgKGMtPng4NiA9PSAweDEwIHx8IGMtPng4NiA9PSAweDExKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7CisKKwkvKiBFbmFibGUgd29ya2Fyb3VuZCBmb3IgRlhTQVZFIGxlYWsgKi8KKwlpZiAoYy0+eDg2ID49IDYpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0ZYU0FWRV9MRUFLKTsKKworCWxldmVsID0gZ2V0X21vZGVsX25hbWUoYyk7CisJaWYgKCFsZXZlbCkgeworCQlzd2l0Y2ggKGMtPng4NikgeworCQljYXNlIDB4ZjoKKwkJCS8qIFNob3VsZCBkaXN0aW5ndWlzaCBNb2RlbHMgaGVyZSwgYnV0IHRoaXMgaXMgb25seQorCQkJICAgYSBmYWxsYmFjayBhbnl3YXlzLiAqLworCQkJc3RyY3B5KGMtPng4Nl9tb2RlbF9pZCwgIkhhbW1lciIpOworCQkJYnJlYWs7CisJCX0KKwl9CisJZGlzcGxheV9jYWNoZWluZm8oYyk7CisKKwkvKiBNdWx0aSBjb3JlIENQVT8gKi8KKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwOCkKKwkJYW1kX2RldGVjdF9jbXAoYyk7CisKKwlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwNiAmJgorCQkoY3B1aWRfZWR4KDB4ODAwMDAwMDYpICYgMHhmMDAwKSkKKwkJbnVtX2NhY2hlX2xlYXZlcyA9IDQ7CisJZWxzZQorCQludW1fY2FjaGVfbGVhdmVzID0gMzsKKworCWlmIChjLT54ODYgPj0gMHhmICYmIGMtPng4NiA8PSAweDExKQorCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9LOCk7CisKKwkvKiBNRkVOQ0Ugc3RvcHMgUkRUU0Mgc3BlY3VsYXRpb24gKi8KKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MpOworCisJaWYgKGMtPng4NiA9PSAweDEwKSB7CisJCS8qIGRvIHRoaXMgZm9yIGJvb3QgY3B1ICovCisJCWlmIChjID09ICZib290X2NwdV9kYXRhKQorCQkJY2hlY2tfZW5hYmxlX2FtZF9tbWNvbmZfZG1pKCk7CisKKwkJZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZygpOworCX0KKworCWlmIChjID09ICZib290X2NwdV9kYXRhICYmIGMtPng4NiA+PSAweGYgJiYgYy0+eDg2IDw9IDB4MTEpIHsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHRzZWc7CisKKwkJLyoKKwkJICogU3BsaXQgdXAgZGlyZWN0IG1hcHBpbmcgYXJvdW5kIHRoZSBUU0VHIFNNTSBhcmVhLgorCQkgKiBEb24ndCBkbyBpdCBmb3IgZ2JwYWdlcyBiZWNhdXNlIHRoZXJlIHNlZW1zIHZlcnkgbGl0dGxlCisJCSAqIGJlbmVmaXQgaW4gZG9pbmcgc28uCisJCSAqLworCQlpZiAoIXJkbXNybF9zYWZlKE1TUl9LOF9UU0VHX0FERFIsICZ0c2VnKSkgeworCQkgICAgcHJpbnRrKEtFUk5fREVCVUcgInRzZWc6ICUwMTBsbHhcbiIsIHRzZWcpOworCQkgICAgaWYgKCh0c2VnPj5QTURfU0hJRlQpIDwKKwkJCQkobWF4X2xvd19wZm5fbWFwcGVkPj4oUE1EX1NISUZULVBBR0VfU0hJRlQpKSB8fAorCQkJKCh0c2VnPj5QTURfU0hJRlQpIDwKKwkJCQkobWF4X3Bmbl9tYXBwZWQ+PihQTURfU0hJRlQtUEFHRV9TSElGVCkpICYmCisJCQkgKHRzZWc+PlBNRF9TSElGVCkgPj0gKDFVTEw8PCgzMiAtIFBNRF9TSElGVCkpKSkKKwkJCXNldF9tZW1vcnlfNGsoKHVuc2lnbmVkIGxvbmcpX192YSh0c2VnKSwgMSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3B1X2RldiBhbWRfY3B1X2RldiBfX2NwdWluaXRkYXRhID0geworCS5jX3ZlbmRvcgk9ICJBTUQiLAorCS5jX2lkZW50CT0geyAiQXV0aGVudGljQU1EIiB9LAorCS5jX2Vhcmx5X2luaXQgICA9IGVhcmx5X2luaXRfYW1kLAorCS5jX2luaXQJCT0gaW5pdF9hbWQsCit9OworCitjcHVfdmVuZG9yX2Rldl9yZWdpc3RlcihYODZfVkVORE9SX0FNRCwgJmFtZF9jcHVfZGV2KTsKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9idWdzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYwppbmRleCAxNzBkMmY1Li4xYjFjNTZiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3MuYwpAQCAtNTksOCArNTksMTIgQEAKIAkJcmV0dXJuOwogCX0KIAotLyogdHJhcF9pbml0KCkgZW5hYmxlZCBGWFNSIGFuZCBjb21wYW55IF9iZWZvcmVfIHRlc3RpbmcgZm9yIEZQIHByb2JsZW1zIGhlcmUuICovCi0JLyogVGVzdCBmb3IgdGhlIGRpdmwgYnVnLi4gKi8KKwkvKgorCSAqIHRyYXBfaW5pdCgpIGVuYWJsZWQgRlhTUiBhbmQgY29tcGFueSBfYmVmb3JlXyB0ZXN0aW5nIGZvciBGUAorCSAqIHByb2JsZW1zIGhlcmUuCisJICoKKwkgKiBUZXN0IGZvciB0aGUgZGl2bCBidWcuLgorCSAqLwogCV9fYXNtX18oImZuaW5pdFxuXHQiCiAJCSJmbGRsICUxXG5cdCIKIAkJImZkaXZsICUyXG5cdCIKQEAgLTEwOCwxMCArMTEyLDE1IEBACiAJICAibW92bCAkMTIzNDU2NzgsJSVlYXg7IG1vdmwgJDAsJSVlZGk7IHB1c2hhOyBwb3BhOyBtb3ZsICglJWVkeCwlJWVkaSksJSVlY3ggIgogCSAgOiAiPSZhIiAocmVzKQogCSAgOiAiZCIgKGlucCkKLQkgIDogImVjeCIsICJlZGkiICk7Ci0JLyogSWYgdGhpcyBmYWlscywgaXQgbWVhbnMgdGhhdCBhbnkgdXNlciBwcm9ncmFtIG1heSBsb2NrIHRoZSBDUFUgaGFyZC4gVG9vIGJhZC4gKi8KLQlpZiAocmVzICE9IDEyMzQ1Njc4KSBwcmludGsoICJCdWdneS5cbiIgKTsKLQkJICAgICAgICBlbHNlIHByaW50ayggIk9LLlxuIiApOworCSAgOiAiZWN4IiwgImVkaSIpOworCS8qCisJICogSWYgdGhpcyBmYWlscywgaXQgbWVhbnMgdGhhdCBhbnkgdXNlciBwcm9ncmFtIG1heSBsb2NrIHRoZQorCSAqIENQVSBoYXJkLiBUb28gYmFkLgorCSAqLworCWlmIChyZXMgIT0gMTIzNDU2NzgpCisJCXByaW50aygiQnVnZ3kuXG4iKTsKKwllbHNlCisJCXByaW50aygiT0suXG4iKTsKICNlbmRpZgogfQogCkBAIC0xMzcsNyArMTQ2LDggQEAKICAqIGk0ODYrIG9ubHkgZmVhdHVyZXMhIChXUCB3b3JrcyBpbiBzdXBlcnZpc29yIG1vZGUgYW5kIHRoZQogICogbmV3ICJpbnZscGciIGFuZCAiYnN3YXAiIGluc3RydWN0aW9ucykKICAqLwotI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9XUF9XT1JLU19PSykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0lOVkxQRykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0JTV0FQKQorI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9XUF9XT1JLU19PSykgfHwgZGVmaW5lZChDT05GSUdfWDg2X0lOVkxQRykgfHwgXAorCWRlZmluZWQoQ09ORklHX1g4Nl9CU1dBUCkKIAlpZiAoYm9vdF9jcHVfZGF0YS54ODYgPT0gMykKIAkJcGFuaWMoIktlcm5lbCByZXF1aXJlcyBpNDg2KyBmb3IgJ2ludmxwZycgYW5kIG90aGVyIGZlYXR1cmVzIik7CiAjZW5kaWYKQEAgLTE3MCw2ICsxODAsNyBAQAogCWNoZWNrX2ZwdSgpOwogCWNoZWNrX2hsdCgpOwogCWNoZWNrX3BvcGFkKCk7Ci0JaW5pdF91dHNuYW1lKCktPm1hY2hpbmVbMV0gPSAnMCcgKyAoYm9vdF9jcHVfZGF0YS54ODYgPiA2ID8gNiA6IGJvb3RfY3B1X2RhdGEueDg2KTsKKwlpbml0X3V0c25hbWUoKS0+bWFjaGluZVsxXSA9CisJCScwJyArIChib290X2NwdV9kYXRhLng4NiA+IDYgPyA2IDogYm9vdF9jcHVfZGF0YS54ODYpOwogCWFsdGVybmF0aXZlX2luc3RydWN0aW9ucygpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2J1Z3NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvYnVnc182NC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBhcmNoL3g4Ni9rZXJuZWwvYnVnc182NC5jCnJlbmFtZSB0byBhcmNoL3g4Ni9rZXJuZWwvY3B1L2J1Z3NfNjQuYwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jZW50YXVyXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NlbnRhdXJfNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDE4MWM0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jZW50YXVyXzY0LmMKQEAgLTAsMCArMSwzNSBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXAuaD4KKworI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBlYXJseV9pbml0X2NlbnRhdXIoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7CisKKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9TWVNFTlRFUjMyKTsKK30KKworc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfY2VudGF1cihzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4ZikgeworCQljLT54ODZfY2FjaGVfYWxpZ25tZW50ID0gYy0+eDg2X2NsZmx1c2hfc2l6ZSAqIDI7CisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7CisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1JFUF9HT09EKTsKKwl9CisJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfTEZFTkNFX1JEVFNDKTsKK30KKworc3RhdGljIHN0cnVjdCBjcHVfZGV2IGNlbnRhdXJfY3B1X2RldiBfX2NwdWluaXRkYXRhID0geworCS5jX3ZlbmRvcgk9ICJDZW50YXVyIiwKKwkuY19pZGVudAk9IHsgIkNlbnRhdXJIYXVscyIgfSwKKwkuY19lYXJseV9pbml0CT0gZWFybHlfaW5pdF9jZW50YXVyLAorCS5jX2luaXQJCT0gaW5pdF9jZW50YXVyLAorfTsKKworY3B1X3ZlbmRvcl9kZXZfcmVnaXN0ZXIoWDg2X1ZFTkRPUl9DRU5UQVVSLCAmY2VudGF1cl9jcHVfZGV2KTsKKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMKaW5kZXggZDA0NjNhOS4uODBhYjIwZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC00MjcsNyArNDI3LDcgQEAKIC8qCiAgKiBUaGlzIGRvZXMgdGhlIGhhcmQgd29yayBvZiBhY3R1YWxseSBwaWNraW5nIGFwYXJ0IHRoZSBDUFUgc3R1ZmYuLi4KICAqLwotdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICpjKQogewogCWludCBpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbl82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb25fNjQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjhjYzcyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb25fNjQuYwpAQCAtMCwwICsxLDY4MSBAQAorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZ2RiLmg+CisjaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vaTM4Ny5oPgorI2luY2x1ZGUgPGFzbS9tc3IuaD4KKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KKyNpbmNsdWRlIDxhc20vbXRyci5oPgorI2luY2x1ZGUgPGFzbS9tY2UuaD4KKyNpbmNsdWRlIDxhc20vcGF0Lmg+CisjaW5jbHVkZSA8YXNtL251bWEuaD4KKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGFzbS9wZGEuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vZGVzYy5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vcHJvdG8uaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vZ2VuYXBpYy5oPgorCisjaW5jbHVkZSAiY3B1LmgiCisKKy8qIFdlIG5lZWQgdmFsaWQga2VybmVsIHNlZ21lbnRzIGZvciBkYXRhIGFuZCBjb2RlIGluIGxvbmcgbW9kZSB0b28KKyAqIElSRVQgd2lsbCBjaGVjayB0aGUgc2VnbWVudCB0eXBlcyAga2tlaWwgMjAwMC8xMC8yOAorICogQWxzbyBzeXNyZXQgbWFuZGF0ZXMgYSBzcGVjaWFsIEdEVCBsYXlvdXQKKyAqLworLyogVGhlIFRMUyBkZXNjcmlwdG9ycyBhcmUgY3VycmVudGx5IGF0IGEgZGlmZmVyZW50IHBsYWNlIGNvbXBhcmVkIHRvIGkzODYuCisgICBIb3BlZnVsbHkgbm9ib2R5IGV4cGVjdHMgdGhlbSBhdCBhIGZpeGVkIHBsYWNlIChXaW5lPykgKi8KK0RFRklORV9QRVJfQ1BVKHN0cnVjdCBnZHRfcGFnZSwgZ2R0X3BhZ2UpID0geyAuZ2R0ID0geworCVtHRFRfRU5UUllfS0VSTkVMMzJfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGNmOWIwMCB9IH0gfSwKKwlbR0RUX0VOVFJZX0tFUk5FTF9DU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwYWY5YjAwIH0gfSB9LAorCVtHRFRfRU5UUllfS0VSTkVMX0RTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBjZjkzMDAgfSB9IH0sCisJW0dEVF9FTlRSWV9ERUZBVUxUX1VTRVIzMl9DU10gPSB7IHsgeyAweDAwMDBmZmZmLCAweDAwY2ZmYjAwIH0gfSB9LAorCVtHRFRfRU5UUllfREVGQVVMVF9VU0VSX0RTXSA9IHsgeyB7IDB4MDAwMGZmZmYsIDB4MDBjZmYzMDAgfSB9IH0sCisJW0dEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1NdID0geyB7IHsgMHgwMDAwZmZmZiwgMHgwMGFmZmIwMCB9IH0gfSwKK30gfTsKK0VYUE9SVF9QRVJfQ1BVX1NZTUJPTF9HUEwoZ2R0X3BhZ2UpOworCitfX3UzMiBjbGVhcmVkX2NwdV9jYXBzW05DQVBJTlRTXSBfX2NwdWluaXRkYXRhOworCisvKiBDdXJyZW50IGdkdCBwb2ludHMgJWZzIGF0IHRoZSAibWFzdGVyIiBwZXItY3B1IGFyZWE6IGFmdGVyIHRoaXMsCisgKiBpdCdzIG9uIHRoZSByZWFsIG9uZS4gKi8KK3ZvaWQgc3dpdGNoX3RvX25ld19nZHQodm9pZCkKK3sKKwlzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2NyOworCisJZ2R0X2Rlc2NyLmFkZHJlc3MgPSAobG9uZylnZXRfY3B1X2dkdF90YWJsZShzbXBfcHJvY2Vzc29yX2lkKCkpOworCWdkdF9kZXNjci5zaXplID0gR0RUX1NJWkUgLSAxOworCWxvYWRfZ2R0KCZnZHRfZGVzY3IpOworfQorCitzdHJ1Y3QgY3B1X2RldiAqY3B1X2RldnNbWDg2X1ZFTkRPUl9OVU1dID0ge307CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBkZWZhdWx0X2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWRpc3BsYXlfY2FjaGVpbmZvKGMpOworfQorCitzdGF0aWMgc3RydWN0IGNwdV9kZXYgX19jcHVpbml0ZGF0YSBkZWZhdWx0X2NwdSA9IHsKKwkuY19pbml0CT0gZGVmYXVsdF9pbml0LAorCS5jX3ZlbmRvciA9ICJVbmtub3duIiwKK307CitzdGF0aWMgc3RydWN0IGNwdV9kZXYgKnRoaXNfY3B1IF9fY3B1aW5pdGRhdGEgPSAmZGVmYXVsdF9jcHU7CisKK2ludCBfX2NwdWluaXQgZ2V0X21vZGVsX25hbWUoc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXVuc2lnbmVkIGludCAqdjsKKworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA8IDB4ODAwMDAwMDQpCisJCXJldHVybiAwOworCisJdiA9ICh1bnNpZ25lZCBpbnQgKikgYy0+eDg2X21vZGVsX2lkOworCWNwdWlkKDB4ODAwMDAwMDIsICZ2WzBdLCAmdlsxXSwgJnZbMl0sICZ2WzNdKTsKKwljcHVpZCgweDgwMDAwMDAzLCAmdls0XSwgJnZbNV0sICZ2WzZdLCAmdls3XSk7CisJY3B1aWQoMHg4MDAwMDAwNCwgJnZbOF0sICZ2WzldLCAmdlsxMF0sICZ2WzExXSk7CisJYy0+eDg2X21vZGVsX2lkWzQ4XSA9IDA7CisJcmV0dXJuIDE7Cit9CisKKwordm9pZCBfX2NwdWluaXQgZGlzcGxheV9jYWNoZWluZm8oc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCXVuc2lnbmVkIGludCBuLCBkdW1teSwgZWJ4LCBlY3gsIGVkeDsKKworCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKKworCWlmIChuID49IDB4ODAwMDAwMDUpIHsKKwkJY3B1aWQoMHg4MDAwMDAwNSwgJmR1bW15LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMSBJIENhY2hlOiAlZEsgKCVkIGJ5dGVzL2xpbmUpLCAiCisJCSAgICAgICAiRCBjYWNoZSAlZEsgKCVkIGJ5dGVzL2xpbmUpXG4iLAorCQkgICAgICAgZWR4Pj4yNCwgZWR4JjB4RkYsIGVjeD4+MjQsIGVjeCYweEZGKTsKKwkJYy0+eDg2X2NhY2hlX3NpemUgPSAoZWN4Pj4yNCkgKyAoZWR4Pj4yNCk7CisJCS8qIE9uIEs4IEwxIFRMQiBpcyBpbmNsdXNpdmUsIHNvIGRvbid0IGNvdW50IGl0ICovCisJCWMtPng4Nl90bGJzaXplID0gMDsKKwl9CisKKwlpZiAobiA+PSAweDgwMDAwMDA2KSB7CisJCWNwdWlkKDB4ODAwMDAwMDYsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7CisJCWVjeCA9IGNwdWlkX2VjeCgweDgwMDAwMDA2KTsKKwkJYy0+eDg2X2NhY2hlX3NpemUgPSBlY3ggPj4gMTY7CisJCWMtPng4Nl90bGJzaXplICs9ICgoZWJ4ID4+IDE2KSAmIDB4ZmZmKSArIChlYnggJiAweGZmZik7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMiBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKVxuIiwKKwkJYy0+eDg2X2NhY2hlX3NpemUsIGVjeCAmIDB4RkYpOworCX0KK30KKwordm9pZCBfX2NwdWluaXQgZGV0ZWN0X2h0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKyNpZmRlZiBDT05GSUdfU01QCisJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKKwlpbnQgaW5kZXhfbXNiLCBjb3JlX2JpdHM7CisKKwljcHVpZCgxLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKworCisJaWYgKCFjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0hUKSkKKwkJcmV0dXJuOworCWlmIChjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1kpKQorCQlnb3RvIG91dDsKKworCXNtcF9udW1fc2libGluZ3MgPSAoZWJ4ICYgMHhmZjAwMDApID4+IDE2OworCisJaWYgKHNtcF9udW1fc2libGluZ3MgPT0gMSkgeworCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBIeXBlci1UaHJlYWRpbmcgaXMgZGlzYWJsZWRcbiIpOworCX0gZWxzZSBpZiAoc21wX251bV9zaWJsaW5ncyA+IDEpIHsKKworCQlpZiAoc21wX251bV9zaWJsaW5ncyA+IE5SX0NQVVMpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIkNQVTogVW5zdXBwb3J0ZWQgbnVtYmVyIG9mICIKKwkJCSAgICAgICAic2libGluZ3MgJWQiLCBzbXBfbnVtX3NpYmxpbmdzKTsKKwkJCXNtcF9udW1fc2libGluZ3MgPSAxOworCQkJcmV0dXJuOworCQl9CisKKwkJaW5kZXhfbXNiID0gZ2V0X2NvdW50X29yZGVyKHNtcF9udW1fc2libGluZ3MpOworCQljLT5waHlzX3Byb2NfaWQgPSBwaHlzX3BrZ19pZChpbmRleF9tc2IpOworCisJCXNtcF9udW1fc2libGluZ3MgPSBzbXBfbnVtX3NpYmxpbmdzIC8gYy0+eDg2X21heF9jb3JlczsKKworCQlpbmRleF9tc2IgPSBnZXRfY291bnRfb3JkZXIoc21wX251bV9zaWJsaW5ncyk7CisKKwkJY29yZV9iaXRzID0gZ2V0X2NvdW50X29yZGVyKGMtPng4Nl9tYXhfY29yZXMpOworCisJCWMtPmNwdV9jb3JlX2lkID0gcGh5c19wa2dfaWQoaW5kZXhfbXNiKSAmCisJCQkJCSAgICAgICAoKDEgPDwgY29yZV9iaXRzKSAtIDEpOworCX0KK291dDoKKwlpZiAoKGMtPng4Nl9tYXhfY29yZXMgKiBzbXBfbnVtX3NpYmxpbmdzKSA+IDEpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogUGh5c2ljYWwgUHJvY2Vzc29yIElEOiAlZFxuIiwKKwkJICAgICAgIGMtPnBoeXNfcHJvY19pZCk7CisJCXByaW50ayhLRVJOX0lORk8gICJDUFU6IFByb2Nlc3NvciBDb3JlIElEOiAlZFxuIiwKKwkJICAgICAgIGMtPmNwdV9jb3JlX2lkKTsKKwl9CisKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZ2V0X2NwdV92ZW5kb3Ioc3RydWN0IGNwdWluZm9feDg2ICpjKQoreworCWNoYXIgKnYgPSBjLT54ODZfdmVuZG9yX2lkOworCWludCBpOworCXN0YXRpYyBpbnQgcHJpbnRlZDsKKworCWZvciAoaSA9IDA7IGkgPCBYODZfVkVORE9SX05VTTsgaSsrKSB7CisJCWlmIChjcHVfZGV2c1tpXSkgeworCQkJaWYgKCFzdHJjbXAodiwgY3B1X2RldnNbaV0tPmNfaWRlbnRbMF0pIHx8CisJCQkgICAgKGNwdV9kZXZzW2ldLT5jX2lkZW50WzFdICYmCisJCQkgICAgIXN0cmNtcCh2LCBjcHVfZGV2c1tpXS0+Y19pZGVudFsxXSkpKSB7CisJCQkJYy0+eDg2X3ZlbmRvciA9IGk7CisJCQkJdGhpc19jcHUgPSBjcHVfZGV2c1tpXTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0KKwl9CisJaWYgKCFwcmludGVkKSB7CisJCXByaW50ZWQrKzsKKwkJcHJpbnRrKEtFUk5fRVJSICJDUFU6IFZlbmRvciB1bmtub3duLCB1c2luZyBnZW5lcmljIGluaXQuXG4iKTsKKwkJcHJpbnRrKEtFUk5fRVJSICJDUFU6IFlvdXIgc3lzdGVtIG1heSBiZSB1bnN0YWJsZS5cbiIpOworCX0KKwljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfY3B1X3N1cHBvcnRfcHJpbnQodm9pZCkKK3sKKwlpbnQgaSxqOworCXN0cnVjdCBjcHVfZGV2ICpjcHVfZGV2eDsKKworCXByaW50aygiS0VSTkVMIHN1cHBvcnRlZCBjcHVzOlxuIik7CisJZm9yIChpID0gMDsgaSA8IFg4Nl9WRU5ET1JfTlVNOyBpKyspIHsKKwkJY3B1X2RldnggPSBjcHVfZGV2c1tpXTsKKwkJaWYgKCFjcHVfZGV2eCkKKwkJCWNvbnRpbnVlOworCQlmb3IgKGogPSAwOyBqIDwgMjsgaisrKSB7CisJCQlpZiAoIWNwdV9kZXZ4LT5jX2lkZW50W2pdKQorCQkJCWNvbnRpbnVlOworCQkJcHJpbnRrKCIgICVzICVzXG4iLCBjcHVfZGV2eC0+Y192ZW5kb3IsCisJCQkJY3B1X2RldngtPmNfaWRlbnRbal0pOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaWRlbnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CisKK3ZvaWQgX19pbml0IGVhcmx5X2NwdV9pbml0KHZvaWQpCit7CisgICAgICAgIHN0cnVjdCBjcHVfdmVuZG9yX2RldiAqY3ZkZXY7CisKKyAgICAgICAgZm9yIChjdmRldiA9IF9feDg2Y3B1dmVuZG9yX3N0YXJ0IDsKKyAgICAgICAgICAgICBjdmRldiA8IF9feDg2Y3B1dmVuZG9yX2VuZCAgIDsKKyAgICAgICAgICAgICBjdmRldisrKQorICAgICAgICAgICAgICAgIGNwdV9kZXZzW2N2ZGV2LT52ZW5kb3JdID0gY3ZkZXYtPmNwdV9kZXY7CisJZWFybHlfY3B1X3N1cHBvcnRfcHJpbnQoKTsKKwllYXJseV9pZGVudGlmeV9jcHUoJmJvb3RfY3B1X2RhdGEpOworfQorCisvKiBEbyBzb21lIGVhcmx5IGNwdWlkIG9uIHRoZSBib290IENQVSB0byBnZXQgc29tZSBwYXJhbWV0ZXIgdGhhdCBhcmUKKyAgIG5lZWRlZCBiZWZvcmUgY2hlY2tfYnVncy4gRXZlcnl0aGluZyBhZHZhbmNlZCBpcyBpbiBpZGVudGlmeV9jcHUKKyAgIGJlbG93LiAqLworc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2lkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJdTMyIHRmbXMsIHhsdmw7CisKKwljLT5sb29wc19wZXJfamlmZnkgPSBsb29wc19wZXJfamlmZnk7CisJYy0+eDg2X2NhY2hlX3NpemUgPSAtMTsKKwljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOworCWMtPng4Nl9tb2RlbCA9IGMtPng4Nl9tYXNrID0gMDsJLyogU28gZmFyIHVua25vd24uLi4gKi8KKwljLT54ODZfdmVuZG9yX2lkWzBdID0gJ1wwJzsgLyogVW5zZXQgKi8KKwljLT54ODZfbW9kZWxfaWRbMF0gPSAnXDAnOyAgLyogVW5zZXQgKi8KKwljLT54ODZfY2xmbHVzaF9zaXplID0gNjQ7CisJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemU7CisJYy0+eDg2X21heF9jb3JlcyA9IDE7CisJYy0+eDg2X2NvcmVpZF9iaXRzID0gMDsKKwljLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA9IDA7CisJbWVtc2V0KCZjLT54ODZfY2FwYWJpbGl0eSwgMCwgc2l6ZW9mIGMtPng4Nl9jYXBhYmlsaXR5KTsKKworCS8qIEdldCB2ZW5kb3IgbmFtZSAqLworCWNwdWlkKDB4MDAwMDAwMDAsICh1bnNpZ25lZCBpbnQgKikmYy0+Y3B1aWRfbGV2ZWwsCisJICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzBdLAorCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFs4XSwKKwkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbNF0pOworCisJZ2V0X2NwdV92ZW5kb3IoYyk7CisKKwkvKiBJbml0aWFsaXplIHRoZSBzdGFuZGFyZCBzZXQgb2YgY2FwYWJpbGl0aWVzICovCisJLyogTm90ZSB0aGF0IHRoZSB2ZW5kb3Itc3BlY2lmaWMgY29kZSBiZWxvdyBtaWdodCBvdmVycmlkZSAqLworCisJLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHgwMDAwMDAwMSAqLworCWlmIChjLT5jcHVpZF9sZXZlbCA+PSAweDAwMDAwMDAxKSB7CisJCV9fdTMyIG1pc2M7CisJCWNwdWlkKDB4MDAwMDAwMDEsICZ0Zm1zLCAmbWlzYywgJmMtPng4Nl9jYXBhYmlsaXR5WzRdLAorCQkgICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbMF0pOworCQljLT54ODYgPSAodGZtcyA+PiA4KSAmIDB4ZjsKKwkJYy0+eDg2X21vZGVsID0gKHRmbXMgPj4gNCkgJiAweGY7CisJCWMtPng4Nl9tYXNrID0gdGZtcyAmIDB4ZjsKKwkJaWYgKGMtPng4NiA9PSAweGYpCisJCQljLT54ODYgKz0gKHRmbXMgPj4gMjApICYgMHhmZjsKKwkJaWYgKGMtPng4NiA+PSAweDYpCisJCQljLT54ODZfbW9kZWwgKz0gKCh0Zm1zID4+IDE2KSAmIDB4RikgPDwgNDsKKwkJaWYgKHRlc3RfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DTEZMU0gpKQorCQkJYy0+eDg2X2NsZmx1c2hfc2l6ZSA9ICgobWlzYyA+PiA4KSAmIDB4ZmYpICogODsKKwl9IGVsc2UgeworCQkvKiBIYXZlIENQVUlEIGxldmVsIDAgb25seSAtIHVuaGVhcmQgb2YgKi8KKwkJYy0+eDg2ID0gNDsKKwl9CisKKwljLT5pbml0aWFsX2FwaWNpZCA9IChjcHVpZF9lYngoMSkgPj4gMjQpICYgMHhmZjsKKyNpZmRlZiBDT05GSUdfU01QCisJYy0+cGh5c19wcm9jX2lkID0gYy0+aW5pdGlhbF9hcGljaWQ7CisjZW5kaWYKKwkvKiBBTUQtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDAwMDAwMSAqLworCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7CisJYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSB4bHZsOworCWlmICgoeGx2bCAmIDB4ZmZmZjAwMDApID09IDB4ODAwMDAwMDApIHsKKwkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwMSkgeworCQkJYy0+eDg2X2NhcGFiaWxpdHlbMV0gPSBjcHVpZF9lZHgoMHg4MDAwMDAwMSk7CisJCQljLT54ODZfY2FwYWJpbGl0eVs2XSA9IGNwdWlkX2VjeCgweDgwMDAwMDAxKTsKKwkJfQorCQlpZiAoeGx2bCA+PSAweDgwMDAwMDA0KQorCQkJZ2V0X21vZGVsX25hbWUoYyk7IC8qIERlZmF1bHQgbmFtZSAqLworCX0KKworCS8qIFRyYW5zbWV0YS1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDgwODYwMDAxICovCisJeGx2bCA9IGNwdWlkX2VheCgweDgwODYwMDAwKTsKKwlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwODYwMDAwKSB7CisJCS8qIERvbid0IHNldCB4ODZfY3B1aWRfbGV2ZWwgaGVyZSBmb3Igbm93IHRvIG5vdCBjb25mdXNlLiAqLworCQlpZiAoeGx2bCA+PSAweDgwODYwMDAxKQorCQkJYy0+eDg2X2NhcGFiaWxpdHlbMl0gPSBjcHVpZF9lZHgoMHg4MDg2MDAwMSk7CisJfQorCisJYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7CisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDcpCisJCWMtPng4Nl9wb3dlciA9IGNwdWlkX2VkeCgweDgwMDAwMDA3KTsKKworCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA4KSB7CisJCXUzMiBlYXggPSBjcHVpZF9lYXgoMHg4MDAwMDAwOCk7CisKKwkJYy0+eDg2X3ZpcnRfYml0cyA9IChlYXggPj4gOCkgJiAweGZmOworCQljLT54ODZfcGh5c19iaXRzID0gZWF4ICYgMHhmZjsKKwl9CisKKwkvKiBBc3N1bWUgYWxsIDY0LWJpdCBDUFVzIHN1cHBvcnQgMzItYml0IHN5c2NhbGwgKi8KKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9TWVNDQUxMMzIpOworCisJaWYgKGMtPng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9VTktOT1dOICYmCisJICAgIGNwdV9kZXZzW2MtPng4Nl92ZW5kb3JdLT5jX2Vhcmx5X2luaXQpCisJCWNwdV9kZXZzW2MtPng4Nl92ZW5kb3JdLT5jX2Vhcmx5X2luaXQoYyk7CisKKwl2YWxpZGF0ZV9wYXRfc3VwcG9ydChjKTsKKworCS8qIGVhcmx5X3BhcmFtIGNvdWxkIGNsZWFyIHRoYXQsIGJ1dCByZWNhbGwgZ2V0IGl0IHNldCBhZ2FpbiAqLworCWlmIChkaXNhYmxlX2FwaWMpCisJCWNsZWFyX2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQVBJQyk7Cit9CisKKy8qCisgKiBUaGlzIGRvZXMgdGhlIGhhcmQgd29yayBvZiBhY3R1YWxseSBwaWNraW5nIGFwYXJ0IHRoZSBDUFUgc3R1ZmYuLi4KKyAqLworc3RhdGljIHZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaW50IGk7CisKKwllYXJseV9pZGVudGlmeV9jcHUoYyk7CisKKwlpbml0X3NjYXR0ZXJlZF9jcHVpZF9mZWF0dXJlcyhjKTsKKworCWMtPmFwaWNpZCA9IHBoeXNfcGtnX2lkKDApOworCisJLyoKKwkgKiBWZW5kb3Itc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24uICBJbiB0aGlzIHNlY3Rpb24gd2UKKwkgKiBjYW5vbmljYWxpemUgdGhlIGZlYXR1cmUgZmxhZ3MsIG1lYW5pbmcgaWYgdGhlcmUgYXJlCisJICogZmVhdHVyZXMgYSBjZXJ0YWluIENQVSBzdXBwb3J0cyB3aGljaCBDUFVJRCBkb2Vzbid0CisJICogdGVsbCB1cywgQ1BVSUQgY2xhaW1pbmcgaW5jb3JyZWN0IGZsYWdzLCBvciBvdGhlciBidWdzLAorCSAqIHdlIGhhbmRsZSB0aGVtIGhlcmUuCisJICoKKwkgKiBBdCB0aGUgZW5kIG9mIHRoaXMgc2VjdGlvbiwgYy0+eDg2X2NhcGFiaWxpdHkgYmV0dGVyCisJICogaW5kaWNhdGUgdGhlIGZlYXR1cmVzIHRoaXMgQ1BVIGdlbnVpbmVseSBzdXBwb3J0cyEKKwkgKi8KKwlpZiAodGhpc19jcHUtPmNfaW5pdCkKKwkJdGhpc19jcHUtPmNfaW5pdChjKTsKKworCWRldGVjdF9odChjKTsKKworCS8qCisJICogT24gU01QLCBib290X2NwdV9kYXRhIGhvbGRzIHRoZSBjb21tb24gZmVhdHVyZSBzZXQgYmV0d2VlbgorCSAqIGFsbCBDUFVzOyBzbyBtYWtlIHN1cmUgdGhhdCB3ZSBpbmRpY2F0ZSB3aGljaCBmZWF0dXJlcyBhcmUKKwkgKiBjb21tb24gYmV0d2VlbiB0aGUgQ1BVcy4gIFRoZSBmaXJzdCB0aW1lIHRoaXMgcm91dGluZSBnZXRzCisJICogZXhlY3V0ZWQsIGMgPT0gJmJvb3RfY3B1X2RhdGEuCisJICovCisJaWYgKGMgIT0gJmJvb3RfY3B1X2RhdGEpIHsKKwkJLyogQU5EIHRoZSBhbHJlYWR5IGFjY3VtdWxhdGVkIGZsYWdzIHdpdGggdGhlc2UgKi8KKwkJZm9yIChpID0gMDsgaSA8IE5DQVBJTlRTOyBpKyspCisJCQlib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5W2ldICY9IGMtPng4Nl9jYXBhYmlsaXR5W2ldOworCX0KKworCS8qIENsZWFyIGFsbCBmbGFncyBvdmVycmlkZW4gYnkgb3B0aW9ucyAqLworCWZvciAoaSA9IDA7IGkgPCBOQ0FQSU5UUzsgaSsrKQorCQljLT54ODZfY2FwYWJpbGl0eVtpXSAmPSB+Y2xlYXJlZF9jcHVfY2Fwc1tpXTsKKworI2lmZGVmIENPTkZJR19YODZfTUNFCisJbWNoZWNrX2luaXQoYyk7CisjZW5kaWYKKwlzZWxlY3RfaWRsZV9yb3V0aW5lKGMpOworCisjaWZkZWYgQ09ORklHX05VTUEKKwludW1hX2FkZF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKyNlbmRpZgorCit9CisKK3ZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2Jvb3RfY3B1KHZvaWQpCit7CisJaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKK30KKwordm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfc2Vjb25kYXJ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJQlVHX09OKGMgPT0gJmJvb3RfY3B1X2RhdGEpOworCWlkZW50aWZ5X2NwdShjKTsKKwltdHJyX2FwX2luaXQoKTsKK30KKworc3RhdGljIF9faW5pdCBpbnQgc2V0dXBfbm9jbGZsdXNoKGNoYXIgKmFyZykKK3sKKwlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX0NMRkxTSCk7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJub2NsZmx1c2giLCBzZXR1cF9ub2NsZmx1c2gpOworCit2b2lkIF9fY3B1aW5pdCBwcmludF9jcHVfaW5mbyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKGMtPng4Nl9tb2RlbF9pZFswXSkKKwkJcHJpbnRrKEtFUk5fQ09OVCAiJXMiLCBjLT54ODZfbW9kZWxfaWQpOworCisJaWYgKGMtPng4Nl9tYXNrIHx8IGMtPmNwdWlkX2xldmVsID49IDApCisJCXByaW50ayhLRVJOX0NPTlQgIiBzdGVwcGluZyAlMDJ4XG4iLCBjLT54ODZfbWFzayk7CisJZWxzZQorCQlwcmludGsoS0VSTl9DT05UICJcbiIpOworfQorCitzdGF0aWMgX19pbml0IGludCBzZXR1cF9kaXNhYmxlY3B1aWQoY2hhciAqYXJnKQoreworCWludCBiaXQ7CisJaWYgKGdldF9vcHRpb24oJmFyZywgJmJpdCkgJiYgYml0IDwgTkNBUElOVFMqMzIpCisJCXNldHVwX2NsZWFyX2NwdV9jYXAoYml0KTsKKwllbHNlCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorX19zZXR1cCgiY2xlYXJjcHVpZD0iLCBzZXR1cF9kaXNhYmxlY3B1aWQpOworCitjcHVtYXNrX3QgY3B1X2luaXRpYWxpemVkIF9fY3B1aW5pdGRhdGEgPSBDUFVfTUFTS19OT05FOworCitzdHJ1Y3QgeDg2NjRfcGRhICoqX2NwdV9wZGEgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woX2NwdV9wZGEpOworCitzdHJ1Y3QgZGVzY19wdHIgaWR0X2Rlc2NyID0geyAyNTYgKiAxNiAtIDEsICh1bnNpZ25lZCBsb25nKSBpZHRfdGFibGUgfTsKKworY2hhciBib290X2NwdV9zdGFja1tJUlFTVEFDS1NJWkVdIF9fcGFnZV9hbGlnbmVkX2JzczsKKwordW5zaWduZWQgbG9uZyBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfjBVTDsKK0VYUE9SVF9TWU1CT0xfR1BMKF9fc3VwcG9ydGVkX3B0ZV9tYXNrKTsKKworc3RhdGljIGludCBkb19ub3RfbnggX19jcHVpbml0ZGF0YTsKKworLyogbm9leGVjPW9ufG9mZgorQ29udHJvbCBub24gZXhlY3V0YWJsZSBtYXBwaW5ncyBmb3IgNjRiaXQgcHJvY2Vzc2VzLgorCitvbglFbmFibGUoZGVmYXVsdCkKK29mZglEaXNhYmxlCisqLworc3RhdGljIGludCBfX2luaXQgbm9ueF9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKCFzdHIpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghc3RybmNtcChzdHIsICJvbiIsIDIpKSB7CisJCV9fc3VwcG9ydGVkX3B0ZV9tYXNrIHw9IF9QQUdFX05YOworCQlkb19ub3RfbnggPSAwOworCX0gZWxzZSBpZiAoIXN0cm5jbXAoc3RyLCAib2ZmIiwgMykpIHsKKwkJZG9fbm90X254ID0gMTsKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOworCX0KKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJub2V4ZWMiLCBub254X3NldHVwKTsKKworaW50IGZvcmNlX3BlcnNvbmFsaXR5MzI7CisKKy8qIG5vZXhlYzMyPW9ufG9mZgorQ29udHJvbCBub24gZXhlY3V0YWJsZSBoZWFwIGZvciAzMmJpdCBwcm9jZXNzZXMuCitUbyBjb250cm9sIHRoZSBzdGFjayB0b28gdXNlIG5vZXhlYz1vZmYKKworb24JUFJPVF9SRUFEIGRvZXMgbm90IGltcGx5IFBST1RfRVhFQyBmb3IgMzJiaXQgcHJvY2Vzc2VzIChkZWZhdWx0KQorb2ZmCVBST1RfUkVBRCBpbXBsaWVzIFBST1RfRVhFQworKi8KK3N0YXRpYyBpbnQgX19pbml0IG5vbngzMl9zZXR1cChjaGFyICpzdHIpCit7CisJaWYgKCFzdHJjbXAoc3RyLCAib24iKSkKKwkJZm9yY2VfcGVyc29uYWxpdHkzMiAmPSB+UkVBRF9JTVBMSUVTX0VYRUM7CisJZWxzZSBpZiAoIXN0cmNtcChzdHIsICJvZmYiKSkKKwkJZm9yY2VfcGVyc29uYWxpdHkzMiB8PSBSRUFEX0lNUExJRVNfRVhFQzsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoIm5vZXhlYzMyPSIsIG5vbngzMl9zZXR1cCk7CisKK3ZvaWQgcGRhX2luaXQoaW50IGNwdSkKK3sKKwlzdHJ1Y3QgeDg2NjRfcGRhICpwZGEgPSBjcHVfcGRhKGNwdSk7CisKKwkvKiBTZXR1cCB1cCBkYXRhIHRoYXQgbWF5IGJlIG5lZWRlZCBpbiBfX2dldF9mcmVlX3BhZ2VzIGVhcmx5ICovCisJbG9hZHNlZ21lbnQoZnMsIDApOworCWxvYWRzZWdtZW50KGdzLCAwKTsKKwkvKiBNZW1vcnkgY2xvYmJlcnMgdXNlZCB0byBvcmRlciBQREEgYWNjZXNzZWQgKi8KKwltYigpOworCXdybXNybChNU1JfR1NfQkFTRSwgcGRhKTsKKwltYigpOworCisJcGRhLT5jcHVudW1iZXIgPSBjcHU7CisJcGRhLT5pcnFjb3VudCA9IC0xOworCXBkYS0+a2VybmVsc3RhY2sgPSAodW5zaWduZWQgbG9uZylzdGFja190aHJlYWRfaW5mbygpIC0KKwkJCQkgUERBX1NUQUNLT0ZGU0VUICsgVEhSRUFEX1NJWkU7CisJcGRhLT5hY3RpdmVfbW0gPSAmaW5pdF9tbTsKKwlwZGEtPm1tdV9zdGF0ZSA9IDA7CisKKwlpZiAoY3B1ID09IDApIHsKKwkJLyogb3RoZXJzIGFyZSBpbml0aWFsaXplZCBpbiBzbXBib290LmMgKi8KKwkJcGRhLT5wY3VycmVudCA9ICZpbml0X3Rhc2s7CisJCXBkYS0+aXJxc3RhY2twdHIgPSBib290X2NwdV9zdGFjazsKKwl9IGVsc2UgeworCQlwZGEtPmlycXN0YWNrcHRyID0gKGNoYXIgKikKKwkJCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0FUT01JQywgSVJRU1RBQ0tfT1JERVIpOworCQlpZiAoIXBkYS0+aXJxc3RhY2twdHIpCisJCQlwYW5pYygiY2Fubm90IGFsbG9jYXRlIGlycXN0YWNrIGZvciBjcHUgJWQiLCBjcHUpOworCisJCWlmIChwZGEtPm5vZGVudW1iZXIgPT0gMCAmJiBjcHVfdG9fbm9kZShjcHUpICE9IE5VTUFfTk9fTk9ERSkKKwkJCXBkYS0+bm9kZW51bWJlciA9IGNwdV90b19ub2RlKGNwdSk7CisJfQorCisJcGRhLT5pcnFzdGFja3B0ciArPSBJUlFTVEFDS1NJWkUtNjQ7Cit9CisKK2NoYXIgYm9vdF9leGNlcHRpb25fc3RhY2tzWyhOX0VYQ0VQVElPTl9TVEFDS1MgLSAxKSAqIEVYQ0VQVElPTl9TVEtTWiArCisJCQkgICBERUJVR19TVEtTWl0KK19fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKKworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBpZ25vcmVfc3lzcmV0KHZvaWQpOworCisvKiBNYXkgbm90IGJlIG1hcmtlZCBfX2luaXQ6IHVzZWQgYnkgc29mdHdhcmUgc3VzcGVuZCAqLwordm9pZCBzeXNjYWxsX2luaXQodm9pZCkKK3sKKwkvKgorCSAqIExTVEFSIGFuZCBTVEFSIGxpdmUgaW4gYSBiaXQgc3RyYW5nZSBzeW1iaW9zaXMuCisJICogVGhleSBib3RoIHdyaXRlIHRvIHRoZSBzYW1lIGludGVybmFsIHJlZ2lzdGVyLiBTVEFSIGFsbG93cyB0bworCSAqIHNldCBDUy9EUyBidXQgb25seSBhIDMyYml0IHRhcmdldC4gTFNUQVIgc2V0cyB0aGUgNjRiaXQgcmlwLgorCSAqLworCXdybXNybChNU1JfU1RBUiwgICgodTY0KV9fVVNFUjMyX0NTKTw8NDggIHwgKCh1NjQpX19LRVJORUxfQ1MpPDwzMik7CisJd3Jtc3JsKE1TUl9MU1RBUiwgc3lzdGVtX2NhbGwpOworCXdybXNybChNU1JfQ1NUQVIsIGlnbm9yZV9zeXNyZXQpOworCisjaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OCisJc3lzY2FsbDMyX2NwdV9pbml0KCk7CisjZW5kaWYKKworCS8qIEZsYWdzIHRvIGNsZWFyIG9uIHN5c2NhbGwgKi8KKwl3cm1zcmwoTVNSX1NZU0NBTExfTUFTSywKKwkgICAgICAgWDg2X0VGTEFHU19URnxYODZfRUZMQUdTX0RGfFg4Nl9FRkxBR1NfSUZ8WDg2X0VGTEFHU19JT1BMKTsKK30KKwordm9pZCBfX2NwdWluaXQgY2hlY2tfZWZlcih2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZWZlcjsKKworCXJkbXNybChNU1JfRUZFUiwgZWZlcik7CisJaWYgKCEoZWZlciAmIEVGRVJfTlgpIHx8IGRvX25vdF9ueCkKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfl9QQUdFX05YOworfQorCit1bnNpZ25lZCBsb25nIGtlcm5lbF9lZmxhZ3M7CisKKy8qCisgKiBDb3BpZXMgb2YgdGhlIG9yaWdpbmFsIGlzdCB2YWx1ZXMgZnJvbSB0aGUgdHNzIGFyZSBvbmx5IGFjY2Vzc2VkIGR1cmluZworICogZGVidWdnaW5nLCBubyBzcGVjaWFsIGFsaWdubWVudCByZXF1aXJlZC4KKyAqLworREVGSU5FX1BFUl9DUFUoc3RydWN0IG9yaWdfaXN0LCBvcmlnX2lzdCk7CisKKy8qCisgKiBjcHVfaW5pdCgpIGluaXRpYWxpemVzIHN0YXRlIHRoYXQgaXMgcGVyLUNQVS4gU29tZSBkYXRhIGlzIGFscmVhZHkKKyAqIGluaXRpYWxpemVkIChuYXR1cmFsbHkpIGluIHRoZSBib290c3RyYXAgcHJvY2Vzcywgc3VjaCBhcyB0aGUgR0RUCisgKiBhbmQgSURULiBXZSByZWxvYWQgdGhlbSBuZXZlcnRoZWxlc3MsIHRoaXMgZnVuY3Rpb24gYWN0cyBhcyBhCisgKiAnQ1BVIHN0YXRlIGJhcnJpZXInLCBub3RoaW5nIHNob3VsZCBnZXQgYWNyb3NzLgorICogQSBsb3Qgb2Ygc3RhdGUgaXMgYWxyZWFkeSBzZXQgdXAgaW4gUERBIGluaXQuCisgKi8KK3ZvaWQgX19jcHVpbml0IGNwdV9pbml0KHZvaWQpCit7CisJaW50IGNwdSA9IHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKTsKKwlzdHJ1Y3QgdHNzX3N0cnVjdCAqdCA9ICZwZXJfY3B1KGluaXRfdHNzLCBjcHUpOworCXN0cnVjdCBvcmlnX2lzdCAqb3JpZ19pc3QgPSAmcGVyX2NwdShvcmlnX2lzdCwgY3B1KTsKKwl1bnNpZ25lZCBsb25nIHY7CisJY2hhciAqZXN0YWNrcyA9IE5VTEw7CisJc3RydWN0IHRhc2tfc3RydWN0ICptZTsKKwlpbnQgaTsKKworCS8qIENQVSAwIGlzIGluaXRpYWxpc2VkIGluIGhlYWQ2NC5jICovCisJaWYgKGNwdSAhPSAwKQorCQlwZGFfaW5pdChjcHUpOworCWVsc2UKKwkJZXN0YWNrcyA9IGJvb3RfZXhjZXB0aW9uX3N0YWNrczsKKworCW1lID0gY3VycmVudDsKKworCWlmIChjcHVfdGVzdF9hbmRfc2V0KGNwdSwgY3B1X2luaXRpYWxpemVkKSkKKwkJcGFuaWMoIkNQVSMlZCBhbHJlYWR5IGluaXRpYWxpemVkIVxuIiwgY3B1KTsKKworCXByaW50ayhLRVJOX0lORk8gIkluaXRpYWxpemluZyBDUFUjJWRcbiIsIGNwdSk7CisKKwljbGVhcl9pbl9jcjQoWDg2X0NSNF9WTUV8WDg2X0NSNF9QVkl8WDg2X0NSNF9UU0R8WDg2X0NSNF9ERSk7CisKKwkvKgorCSAqIEluaXRpYWxpemUgdGhlIHBlci1DUFUgR0RUIHdpdGggdGhlIGJvb3QgR0RULAorCSAqIGFuZCBzZXQgdXAgdGhlIEdEVCBkZXNjcmlwdG9yOgorCSAqLworCisJc3dpdGNoX3RvX25ld19nZHQoKTsKKwlsb2FkX2lkdCgoY29uc3Qgc3RydWN0IGRlc2NfcHRyICopJmlkdF9kZXNjcik7CisKKwltZW1zZXQobWUtPnRocmVhZC50bHNfYXJyYXksIDAsIEdEVF9FTlRSWV9UTFNfRU5UUklFUyAqIDgpOworCXN5c2NhbGxfaW5pdCgpOworCisJd3Jtc3JsKE1TUl9GU19CQVNFLCAwKTsKKwl3cm1zcmwoTVNSX0tFUk5FTF9HU19CQVNFLCAwKTsKKwliYXJyaWVyKCk7CisKKwljaGVja19lZmVyKCk7CisKKwkvKgorCSAqIHNldCB1cCBhbmQgbG9hZCB0aGUgcGVyLUNQVSBUU1MKKwkgKi8KKwlmb3IgKHYgPSAwOyB2IDwgTl9FWENFUFRJT05fU1RBQ0tTOyB2KyspIHsKKwkJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBvcmRlcltOX0VYQ0VQVElPTl9TVEFDS1NdID0geworCQkJWzAgLi4uIE5fRVhDRVBUSU9OX1NUQUNLUyAtIDFdID0gRVhDRVBUSU9OX1NUQUNLX09SREVSLAorCQkJW0RFQlVHX1NUQUNLIC0gMV0gPSBERUJVR19TVEFDS19PUkRFUgorCQl9OworCQlpZiAoY3B1KSB7CisJCQllc3RhY2tzID0gKGNoYXIgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMsIG9yZGVyW3ZdKTsKKwkJCWlmICghZXN0YWNrcykKKwkJCQlwYW5pYygiQ2Fubm90IGFsbG9jYXRlIGV4Y2VwdGlvbiBzdGFjayAlbGQgJWRcbiIsCisJCQkJICAgICAgdiwgY3B1KTsKKwkJfQorCQllc3RhY2tzICs9IFBBR0VfU0laRSA8PCBvcmRlclt2XTsKKwkJb3JpZ19pc3QtPmlzdFt2XSA9IHQtPng4Nl90c3MuaXN0W3ZdID0gKHVuc2lnbmVkIGxvbmcpZXN0YWNrczsKKwl9CisKKwl0LT54ODZfdHNzLmlvX2JpdG1hcF9iYXNlID0gb2Zmc2V0b2Yoc3RydWN0IHRzc19zdHJ1Y3QsIGlvX2JpdG1hcCk7CisJLyoKKwkgKiA8PSBpcyByZXF1aXJlZCBiZWNhdXNlIHRoZSBDUFUgd2lsbCBhY2Nlc3MgdXAgdG8KKwkgKiA4IGJpdHMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIElPIHBlcm1pc3Npb24gYml0bWFwLgorCSAqLworCWZvciAoaSA9IDA7IGkgPD0gSU9fQklUTUFQX0xPTkdTOyBpKyspCisJCXQtPmlvX2JpdG1hcFtpXSA9IH4wVUw7CisKKwlhdG9taWNfaW5jKCZpbml0X21tLm1tX2NvdW50KTsKKwltZS0+YWN0aXZlX21tID0gJmluaXRfbW07CisJaWYgKG1lLT5tbSkKKwkJQlVHKCk7CisJZW50ZXJfbGF6eV90bGIoJmluaXRfbW0sIG1lKTsKKworCWxvYWRfc3AwKHQsICZjdXJyZW50LT50aHJlYWQpOworCXNldF90c3NfZGVzYyhjcHUsIHQpOworCWxvYWRfVFJfZGVzYygpOworCWxvYWRfTERUKCZpbml0X21tLmNvbnRleHQpOworCisjaWZkZWYgQ09ORklHX0tHREIKKwkvKgorCSAqIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAgVGhpcworCSAqIGlzIG9ubHkgYXBwbGljYWJsZSB3aGVuIEtHREIgYW5kIGEgS0dEQiBJL08gbW9kdWxlIGFyZSBidWlsdAorCSAqIGludG8gdGhlIGtlcm5lbCBhbmQgeW91IGFyZSB1c2luZyBlYXJseSBkZWJ1Z2dpbmcgd2l0aAorCSAqIGtnZGJ3YWl0LiBLR0RCIHdpbGwgY29udHJvbCB0aGUga2VybmVsIEhXIGJyZWFrcG9pbnQgcmVnaXN0ZXJzLgorCSAqLworCWlmIChrZ2RiX2Nvbm5lY3RlZCAmJiBhcmNoX2tnZGJfb3BzLmNvcnJlY3RfaHdfYnJlYWspCisJCWFyY2hfa2dkYl9vcHMuY29ycmVjdF9od19icmVhaygpOworCWVsc2UgeworI2VuZGlmCisJLyoKKwkgKiBDbGVhciBhbGwgNiBkZWJ1ZyByZWdpc3RlcnM6CisJICovCisKKwlzZXRfZGVidWdyZWcoMFVMLCAwKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAxKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAyKTsKKwlzZXRfZGVidWdyZWcoMFVMLCAzKTsKKwlzZXRfZGVidWdyZWcoMFVMLCA2KTsKKwlzZXRfZGVidWdyZWcoMFVMLCA3KTsKKyNpZmRlZiBDT05GSUdfS0dEQgorCS8qIElmIHRoZSBrZ2RiIGlzIGNvbm5lY3RlZCBubyBkZWJ1ZyByZWdzIHNob3VsZCBiZSBhbHRlcmVkLiAqLworCX0KKyNlbmRpZgorCisJZnB1X2luaXQoKTsKKworCXJhd19sb2NhbF9zYXZlX2ZsYWdzKGtlcm5lbF9lZmxhZ3MpOworCisJaWYgKGlzX3V2X3N5c3RlbSgpKQorCQl1dl9jcHVfaW5pdCgpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaCBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1LmgKaW5kZXggNzgzNjkxYi4uNGQ4OTRlOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHUuaAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdS5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBUkNIX1g4Nl9DUFVfSAorCisjZGVmaW5lIEFSQ0hfWDg2X0NQVV9ICiAKIHN0cnVjdCBjcHVfbW9kZWxfaW5mbyB7CiAJaW50IHZlbmRvcjsKQEAgLTM2LDMgKzM5LDUgQEAKIAogZXh0ZXJuIGludCBnZXRfbW9kZWxfbmFtZShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwogZXh0ZXJuIHZvaWQgZGlzcGxheV9jYWNoZWluZm8oc3RydWN0IGNwdWluZm9feDg2ICpjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMKaW5kZXggZjAzZTkxNTMuLjk2NWVhNTIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1ZnJlcS9jcHVmcmVxLW5mb3JjZTIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvY3B1ZnJlcS1uZm9yY2UyLmMKQEAgLTI2LDkgKzI2LDEwIEBACiAjZGVmaW5lIE5GT1JDRTJfU0FGRV9ESVNUQU5DRSA1MAogCiAvKiBEZWxheSBpbiBtcyBiZXR3ZWVuIEZTQiBjaGFuZ2VzICovCi0vLyNkZWZpbmUgTkZPUkNFMl9ERUxBWSAxMAorLyogI2RlZmluZSBORk9SQ0UyX0RFTEFZIDEwICovCiAKLS8qIG5mb3JjZTJfY2hpcHNldDoKKy8qCisgKiBuZm9yY2UyX2NoaXBzZXQ6CiAgKiBGU0IgaXMgY2hhbmdlZCB1c2luZyB0aGUgY2hpcHNldAogICovCiBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKm5mb3JjZTJfY2hpcHNldF9kZXY7CkBAIC0zNiwxMyArMzcsMTMgQEAKIC8qIGZpZDoKICAqIG11bHRpcGxpZXIgKiAxMAogICovCi1zdGF0aWMgaW50IGZpZCA9IDA7CitzdGF0aWMgaW50IGZpZDsKIAogLyogbWluX2ZzYiwgbWF4X2ZzYjoKICAqIG1pbmltdW0gYW5kIG1heGltdW0gRlNCICg9IEZTQiBhdCBib290IHRpbWUpCiAgKi8KLXN0YXRpYyBpbnQgbWluX2ZzYiA9IDA7Ci1zdGF0aWMgaW50IG1heF9mc2IgPSAwOworc3RhdGljIGludCBtaW5fZnNiOworc3RhdGljIGludCBtYXhfZnNiOwogCiBNT0RVTEVfQVVUSE9SKCJTZWJhc3RpYW4gV2l0dCA8c2Uud2l0dEBnbXgubmV0PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJuRm9yY2UyIEZTQiBjaGFuZ2luZyBjcHVmcmVxIGRyaXZlciIpOwpAQCAtNTMsNyArNTQsNyBAQAogCiBNT0RVTEVfUEFSTV9ERVNDKGZpZCwgIkNQVSBtdWx0aXBsaWVyIHRvIHVzZSAoMTEuNSA9IDExNSkiKTsKIE1PRFVMRV9QQVJNX0RFU0MobWluX2ZzYiwKLSAgICAgICAgICAgICAgICAgIk1pbmltdW0gRlNCIHRvIHVzZSwgaWYgbm90IGRlZmluZWQ6IGN1cnJlbnQgRlNCIC0gNTAiKTsKKwkJIk1pbmltdW0gRlNCIHRvIHVzZSwgaWYgbm90IGRlZmluZWQ6IGN1cnJlbnQgRlNCIC0gNTAiKTsKIAogI2RlZmluZSBkcHJpbnRrKG1zZy4uLikgY3B1ZnJlcV9kZWJ1Z19wcmludGsoQ1BVRlJFUV9ERUJVR19EUklWRVIsICJjcHVmcmVxLW5mb3JjZTIiLCBtc2cpCiAKQEAgLTEzOSw3ICsxNDAsNyBAQAogCiAJLyogR2V0IGNoaXBzZXQgYm9vdCBGU0IgZnJvbSBzdWJkZXZpY2UgNSAoRlNCIGF0IGJvb3QtdGltZSkgKi8KIAluZm9yY2UyX3N1YjUgPSBwY2lfZ2V0X3N1YnN5cyhQQ0lfVkVORE9SX0lEX05WSURJQSwKLQkJCQkJCTB4MDFFRixQQ0lfQU5ZX0lELFBDSV9BTllfSUQsTlVMTCk7CisJCQkJCQkweDAxRUYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIE5VTEwpOwogCWlmICghbmZvcmNlMl9zdWI1KQogCQlyZXR1cm4gMDsKIApAQCAtMTQ3LDEzICsxNDgsMTMgQEAKIAlmc2IgLz0gMTAwMDAwMDsKIAogCS8qIENoZWNrIGlmIFBMTCByZWdpc3RlciBpcyBhbHJlYWR5IHNldCAqLwotCXBjaV9yZWFkX2NvbmZpZ19ieXRlKG5mb3JjZTJfY2hpcHNldF9kZXYsTkZPUkNFMl9QTExFTkFCTEUsICh1OCAqKSZ0ZW1wKTsKKwlwY2lfcmVhZF9jb25maWdfYnl0ZShuZm9yY2UyX2NoaXBzZXRfZGV2LCBORk9SQ0UyX1BMTEVOQUJMRSwgKHU4ICopJnRlbXApOwogCi0JaWYoYm9vdGZzYiB8fCAhdGVtcCkKKwlpZiAoYm9vdGZzYiB8fCAhdGVtcCkKIAkJcmV0dXJuIGZzYjsKLQkJCisKIAkvKiBVc2UgUExMIHJlZ2lzdGVyIEZTQiB2YWx1ZSAqLwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuZm9yY2UyX2NoaXBzZXRfZGV2LE5GT1JDRTJfUExMUkVHLCAmdGVtcCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKG5mb3JjZTJfY2hpcHNldF9kZXYsIE5GT1JDRTJfUExMUkVHLCAmdGVtcCk7CiAJZnNiID0gbmZvcmNlMl9jYWxjX2ZzYih0ZW1wKTsKIAogCXJldHVybiBmc2I7CkBAIC0xODQsNyArMTg1LDcgQEAKIAl9CiAKIAkvKiBGaXJzdCB3cml0ZT8gVGhlbiBzZXQgYWN0dWFsIHZhbHVlICovCi0JcGNpX3JlYWRfY29uZmlnX2J5dGUobmZvcmNlMl9jaGlwc2V0X2RldixORk9SQ0UyX1BMTEVOQUJMRSwgKHU4ICopJnRlbXApOworCXBjaV9yZWFkX2NvbmZpZ19ieXRlKG5mb3JjZTJfY2hpcHNldF9kZXYsIE5GT1JDRTJfUExMRU5BQkxFLCAodTggKikmdGVtcCk7CiAJaWYgKCF0ZW1wKSB7CiAJCXBsbCA9IG5mb3JjZTJfY2FsY19wbGwodGZzYik7CiAKQEAgLTIxMCw3ICsyMTEsOCBAQAogCQkJdGZzYi0tOwogCiAJCS8qIENhbGN1bGF0ZSB0aGUgUExMIHJlZy4gdmFsdWUgKi8KLQkJaWYgKChwbGwgPSBuZm9yY2UyX2NhbGNfcGxsKHRmc2IpKSA9PSAtMSkKKwkJcGxsID0gbmZvcmNlMl9jYWxjX3BsbCh0ZnNiKTsKKwkJaWYgKHBsbCA9PSAtMSkKIAkJCXJldHVybiAtRUlOVkFMOwogCiAJCW5mb3JjZTJfd3JpdGVfcGxsKHBsbCk7CkBAIC0yNDksNyArMjUxLDcgQEAKIHN0YXRpYyBpbnQgbmZvcmNlMl90YXJnZXQoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksCiAJCQkgIHVuc2lnbmVkIGludCB0YXJnZXRfZnJlcSwgdW5zaWduZWQgaW50IHJlbGF0aW9uKQogewotLy8gICAgICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICBmbGFnczsKKy8qICAgICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgZmxhZ3M7ICovCiAJc3RydWN0IGNwdWZyZXFfZnJlcXMgZnJlcXM7CiAJdW5zaWduZWQgaW50IHRhcmdldF9mc2I7CiAKQEAgLTI3MSwxNyArMjczLDE3IEBACiAJY3B1ZnJlcV9ub3RpZnlfdHJhbnNpdGlvbigmZnJlcXMsIENQVUZSRVFfUFJFQ0hBTkdFKTsKIAogCS8qIERpc2FibGUgSVJRcyAqLwotCS8vbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCS8qIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsgKi8KIAogCWlmIChuZm9yY2UyX3NldF9mc2IodGFyZ2V0X2ZzYikgPCAwKQogCQlwcmludGsoS0VSTl9FUlIgImNwdWZyZXE6IENoYW5naW5nIEZTQiB0byAlZCBmYWlsZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mc2IpOworCQkJdGFyZ2V0X2ZzYik7CiAJZWxzZQogCQlkcHJpbnRrKCJDaGFuZ2VkIEZTQiBzdWNjZXNzZnVsbHkgdG8gJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9mc2IpOworCQkJdGFyZ2V0X2ZzYik7CiAKIAkvKiBFbmFibGUgSVJRcyAqLwotCS8vbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCS8qIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsgKi8KIAogCWNwdWZyZXFfbm90aWZ5X3RyYW5zaXRpb24oJmZyZXFzLCBDUFVGUkVRX1BPU1RDSEFOR0UpOwogCkBAIC0zMDIsOCArMzA0LDggQEAKIAkJcG9saWN5LT5tYXggPSAoZnNiX3BvbF9tYXggKyAxKSAqIGZpZCAqIDEwMDsKIAogCWNwdWZyZXFfdmVyaWZ5X3dpdGhpbl9saW1pdHMocG9saWN5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeS0+Y3B1aW5mby5taW5fZnJlcSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3ktPmNwdWluZm8ubWF4X2ZyZXEpOworCQkJCSAgICAgcG9saWN5LT5jcHVpbmZvLm1pbl9mcmVxLAorCQkJCSAgICAgcG9saWN5LT5jcHVpbmZvLm1heF9mcmVxKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzQ3LDcgKzM0OSw3IEBACiAJLyogU2V0IG1heGltdW0gRlNCIHRvIEZTQiBhdCBib290IHRpbWUgKi8KIAltYXhfZnNiID0gbmZvcmNlMl9mc2JfcmVhZCgxKTsKIAotCWlmKCFtYXhfZnNiKQorCWlmICghbWF4X2ZzYikKIAkJcmV0dXJuIC1FSU87CiAKIAlpZiAoIW1pbl9mc2IpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvbG9uZ3J1bi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL2xvbmdydW4uYwppbmRleCBhZjRhODY3Li43NzdhN2ZmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvbG9uZ3J1bi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvY3B1ZnJlcS9sb25ncnVuLmMKQEAgLTI0NSw3ICsyNDUsNyBAQAogCWlmICgoZWN4ID4gOTUpIHx8IChlY3ggPT0gMCkgfHwgKGVheCA8IGVieCkpCiAJCXJldHVybiAtRUlPOwogCi0JZWR4ID0gKGVheCAtIGVieCkgLyAoMTAwIC0gZWN4KTsKKwllZHggPSAoKGVheCAtIGVieCkgKiAxMDApIC8gKDEwMCAtIGVjeCk7CiAJKmxvd19mcmVxID0gZWR4ICogMTAwMDsgLyogYmFjayB0byBrSHogKi8KIAogCWRwcmludGsoImxvdyBmcmVxdWVuY3kgaXMgJXUga0h6XG4iLCAqbG93X2ZyZXEpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9jcHVmcmVxL3Bvd2Vybm93LWs4LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvcG93ZXJub3ctazguYwppbmRleCA0NmQ0MDM0Li4yMDY3OTFlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvcG93ZXJub3ctazguYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NwdWZyZXEvcG93ZXJub3ctazguYwpAQCAtMTEyNywxMiArMTEyNywyMyBAQAogCQkgKiBhbiBVUCB2ZXJzaW9uLCBhbmQgaXMgZGVwcmVjYXRlZCBieSBBTUQuCiAJCSAqLwogCQlpZiAobnVtX29ubGluZV9jcHVzKCkgIT0gMSkgewotCQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiTVAgc3lzdGVtcyBub3Qgc3VwcG9ydGVkIGJ5IFBTQiBCSU9TIHN0cnVjdHVyZVxuIik7CisjaWZuZGVmIENPTkZJR19BQ1BJX1BST0NFU1NPUgorCQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQUNQSSBQcm9jZXNzb3Igc3VwcG9ydCBpcyByZXF1aXJlZCAiCisJCQkgICAgICAgImZvciBTTVAgc3lzdGVtcyBidXQgaXMgYWJzZW50LiBQbGVhc2UgbG9hZCB0aGUgIgorCQkJICAgICAgICJBQ1BJIFByb2Nlc3NvciBtb2R1bGUgYmVmb3JlIHN0YXJ0aW5nIHRoaXMgIgorCQkJICAgICAgICJkcml2ZXIuXG4iKTsKKyNlbHNlCisJCQlwcmludGsoS0VSTl9FUlIgUEZYICJZb3VyIEJJT1MgZG9lcyBub3QgcHJvdmlkZSBBQ1BJICIKKwkJCSAgICAgICAiX1BTUyBvYmplY3RzIGluIGEgd2F5IHRoYXQgTGludXggdW5kZXJzdGFuZHMuICIKKwkJCSAgICAgICAiUGxlYXNlIHJlcG9ydCB0aGlzIHRvIHRoZSBMaW51eCBBQ1BJIG1haW50YWluZXJzIgorCQkJICAgICAgICIgYW5kIGNvbXBsYWluIHRvIHlvdXIgQklPUyB2ZW5kb3IuXG4iKTsKKyNlbmRpZgogCQkJa2ZyZWUoZGF0YSk7CiAJCQlyZXR1cm4gLUVOT0RFVjsKIAkJfQogCQlpZiAocG9sLT5jcHUgIT0gMCkgewotCQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiTm8gX1BTUyBvYmplY3RzIGZvciBDUFUgb3RoZXIgdGhhbiBDUFUwXG4iKTsKKwkJCXByaW50ayhLRVJOX0VSUiBQRlggIk5vIEFDUEkgX1BTUyBvYmplY3RzIGZvciBDUFUgb3RoZXIgdGhhbiAiCisJCQkgICAgICAgIkNQVTAuIENvbXBsYWluIHRvIHlvdXIgQklPUyB2ZW5kb3IuXG4iKTsKIAkJCWtmcmVlKGRhdGEpOwogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWwuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWwuYwppbmRleCBmZTkyMjRjLi43MDYwOWVmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbC5jCkBAIC0yMjYsNiArMjI2LDEwIEBACiAKIAlpZiAoY3B1X2hhc19idHMpCiAJCWRzX2luaXRfaW50ZWwoYyk7CisKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCisJbnVtYXFfdHNjX2Rpc2FibGUoKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdW5zaWduZWQgaW50IF9fY3B1aW5pdCBpbnRlbF9zaXplX2NhY2hlKHN0cnVjdCBjcHVpbmZvX3g4NiAqYywgdW5zaWduZWQgaW50IHNpemUpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsXzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxOWM1OAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfNjQuYwpAQCAtMCwwICsxLDk1IEBACisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisjaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+CisjaW5jbHVkZSA8YXNtL251bWFfNjQuaD4KKworI2luY2x1ZGUgImNwdS5oIgorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9pbnRlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKChjLT54ODYgPT0gMHhmICYmIGMtPng4Nl9tb2RlbCA+PSAweDAzKSB8fAorCSAgICAoYy0+eDg2ID09IDB4NiAmJiBjLT54ODZfbW9kZWwgPj0gMHgwZSkpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7CisKKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9TWVNFTlRFUjMyKTsKK30KKworLyoKKyAqIGZpbmQgb3V0IHRoZSBudW1iZXIgb2YgcHJvY2Vzc29yIGNvcmVzIG9uIHRoZSBkaWUKKyAqLworc3RhdGljIGludCBfX2NwdWluaXQgaW50ZWxfbnVtX2NwdV9jb3JlcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJdW5zaWduZWQgaW50IGVheCwgdDsKKworCWlmIChjLT5jcHVpZF9sZXZlbCA8IDQpCisJCXJldHVybiAxOworCisJY3B1aWRfY291bnQoNCwgMCwgJmVheCwgJnQsICZ0LCAmdCk7CisKKwlpZiAoZWF4ICYgMHgxZikKKwkJcmV0dXJuICgoZWF4ID4+IDI2KSArIDEpOworCWVsc2UKKwkJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkIF9fY3B1aW5pdCBzcmF0X2RldGVjdF9ub2RlKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX05VTUEKKwl1bnNpZ25lZCBub2RlOworCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJaW50IGFwaWNpZCA9IGhhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJLyogRG9uJ3QgZG8gdGhlIGZ1bmt5IGZhbGxiYWNrIGhldXJpc3RpY3MgdGhlIEFNRCB2ZXJzaW9uIGVtcGxveXMKKwkgICBmb3Igbm93LiAqLworCW5vZGUgPSBhcGljaWRfdG9fbm9kZVthcGljaWRdOworCWlmIChub2RlID09IE5VTUFfTk9fTk9ERSB8fCAhbm9kZV9vbmxpbmUobm9kZSkpCisJCW5vZGUgPSBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7CisJbnVtYV9zZXRfbm9kZShjcHUsIG5vZGUpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVICVkLyV4IC0+IE5vZGUgJWRcbiIsIGNwdSwgYXBpY2lkLCBub2RlKTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCBfX2NwdWluaXQgaW5pdF9pbnRlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaW5pdF9pbnRlbF9jYWNoZWluZm8oYyk7CisJaWYgKGMtPmNwdWlkX2xldmVsID4gOSkgeworCQl1bnNpZ25lZCBlYXggPSBjcHVpZF9lYXgoMTApOworCQkvKiBDaGVjayBmb3IgdmVyc2lvbiBhbmQgdGhlIG51bWJlciBvZiBjb3VudGVycyAqLworCQlpZiAoKGVheCAmIDB4ZmYpICYmICgoKGVheD4+OCkgJiAweGZmKSA+IDEpKQorCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQVJDSF9QRVJGTU9OKTsKKwl9CisKKwlpZiAoY3B1X2hhc19kcykgeworCQl1bnNpZ25lZCBpbnQgbDEsIGwyOworCQlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbDEsIGwyKTsKKwkJaWYgKCEobDEgJiAoMTw8MTEpKSkKKwkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0JUUyk7CisJCWlmICghKGwxICYgKDE8PDEyKSkpCisJCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9QRUJTKTsKKwl9CisKKworCWlmIChjcHVfaGFzX2J0cykKKwkJZHNfaW5pdF9pbnRlbChjKTsKKworCWlmIChjLT54ODYgPT0gMTUpCisJCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSBjLT54ODZfY2xmbHVzaF9zaXplICogMjsKKwlpZiAoYy0+eDg2ID09IDYpCisJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1JFUF9HT09EKTsKKwlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9MRkVOQ0VfUkRUU0MpOworCWMtPng4Nl9tYXhfY29yZXMgPSBpbnRlbF9udW1fY3B1X2NvcmVzKGMpOworCisJc3JhdF9kZXRlY3Rfbm9kZSgpOworfQorCitzdGF0aWMgc3RydWN0IGNwdV9kZXYgaW50ZWxfY3B1X2RldiBfX2NwdWluaXRkYXRhID0geworCS5jX3ZlbmRvcgk9ICJJbnRlbCIsCisJLmNfaWRlbnQJPSB7ICJHZW51aW5lSW50ZWwiIH0sCisJLmNfZWFybHlfaW5pdCAgID0gZWFybHlfaW5pdF9pbnRlbCwKKwkuY19pbml0CQk9IGluaXRfaW50ZWwsCit9OworY3B1X3ZlbmRvcl9kZXZfcmVnaXN0ZXIoWDg2X1ZFTkRPUl9JTlRFTCwgJmludGVsX2NwdV9kZXYpOworCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX2NhY2hlaW5mby5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF9jYWNoZWluZm8uYwppbmRleCAyNmQ2MTVkLi4yYzhhZmFmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX2NhY2hlaW5mby5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvaW50ZWxfY2FjaGVpbmZvLmMKQEAgLTYyLDYgKzYyLDcgQEAKIAl7IDB4NGIsIExWTF8zLCAgICAgIDgxOTIgfSwJLyogMTYtd2F5IHNldCBhc3NvYywgNjQgYnl0ZSBsaW5lIHNpemUgKi8KIAl7IDB4NGMsIExWTF8zLCAgICAgMTIyODggfSwJLyogMTItd2F5IHNldCBhc3NvYywgNjQgYnl0ZSBsaW5lIHNpemUgKi8KIAl7IDB4NGQsIExWTF8zLCAgICAgMTYzODQgfSwJLyogMTYtd2F5IHNldCBhc3NvYywgNjQgYnl0ZSBsaW5lIHNpemUgKi8KKwl7IDB4NGUsIExWTF8yLCAgICAgIDYxNDQgfSwJLyogMjQtd2F5IHNldCBhc3NvYywgNjQgYnl0ZSBsaW5lIHNpemUgKi8KIAl7IDB4NjAsIExWTF8xX0RBVEEsIDE2IH0sCS8qIDgtd2F5IHNldCBhc3NvYywgc2VjdG9yZWQgY2FjaGUsIDY0IGJ5dGUgbGluZSBzaXplICovCiAJeyAweDY2LCBMVkxfMV9EQVRBLCA4IH0sCS8qIDQtd2F5IHNldCBhc3NvYywgc2VjdG9yZWQgY2FjaGUsIDY0IGJ5dGUgbGluZSBzaXplICovCiAJeyAweDY3LCBMVkxfMV9EQVRBLCAxNiB9LAkvKiA0LXdheSBzZXQgYXNzb2MsIHNlY3RvcmVkIGNhY2hlLCA2NCBieXRlIGxpbmUgc2l6ZSAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svazcuYyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL2s3LmMKaW5kZXggZTYzM2M5Yy4uZjM5MGM5ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svazcuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9rNy5jCkBAIC05LDIzICs5LDIzIEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+CiAKLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+IAorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgogCiAjaW5jbHVkZSAibWNlLmgiCiAKIC8qIE1hY2hpbmUgQ2hlY2sgSGFuZGxlciBGb3IgQU1EIEF0aGxvbi9EdXJvbiAqLwotc3RhdGljIHZvaWQgazdfbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKK3N0YXRpYyB2b2lkIGs3X21hY2hpbmVfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKLQlpbnQgcmVjb3Zlcj0xOworCWludCByZWNvdmVyID0gMTsKIAl1MzIgYWxvdywgYWhpZ2gsIGhpZ2gsIGxvdzsKIAl1MzIgbWNnc3RsLCBtY2dzdGg7CiAJaW50IGk7CiAKLQlyZG1zciAoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKIAlpZiAobWNnc3RsICYgKDE8PDApKQkvKiBSZWNvdmVyYWJsZSA/ICovCi0JCXJlY292ZXI9MDsKKwkJcmVjb3ZlciA9IDA7CiAKIAlwcmludGsoS0VSTl9FTUVSRyAiQ1BVICVkOiBNYWNoaW5lIENoZWNrIEV4Y2VwdGlvbjogJTA4eCUwOHhcbiIsCiAJCXNtcF9wcm9jZXNzb3JfaWQoKSwgbWNnc3RoLCBtY2dzdGwpOwpAQCAtNjAsMTIgKzYwLDEyIEBACiAJfQogCiAJaWYgKHJlY292ZXImMikKLQkJcGFuaWMgKCJDUFUgY29udGV4dCBjb3JydXB0Iik7CisJCXBhbmljKCJDUFUgY29udGV4dCBjb3JydXB0Iik7CiAJaWYgKHJlY292ZXImMSkKLQkJcGFuaWMgKCJVbmFibGUgdG8gY29udGludWUiKTsKLQlwcmludGsgKEtFUk5fRU1FUkcgIkF0dGVtcHRpbmcgdG8gY29udGludWUuXG4iKTsKKwkJcGFuaWMoIlVuYWJsZSB0byBjb250aW51ZSIpOworCXByaW50ayhLRVJOX0VNRVJHICJBdHRlbXB0aW5nIHRvIGNvbnRpbnVlLlxuIik7CiAJbWNnc3RsICY9IH4oMTw8Mik7Ci0Jd3Jtc3IgKE1TUl9JQTMyX01DR19TVEFUVVMsbWNnc3RsLCBtY2dzdGgpOworCXdybXNyKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKIH0KIAogCkBAIC04MSwyNSArODEsMjUgQEAKIAltYWNoaW5lX2NoZWNrX3ZlY3RvciA9IGs3X21hY2hpbmVfY2hlY2s7CiAJd21iKCk7CiAKLQlwcmludGsgKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayBhcmNoaXRlY3R1cmUgc3VwcG9ydGVkLlxuIik7Ci0JcmRtc3IgKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOworCXByaW50ayhLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC5cbiIpOworCXJkbXNyKE1TUl9JQTMyX01DR19DQVAsIGwsIGgpOwogCWlmIChsICYgKDE8PDgpKQkvKiBDb250cm9sIHJlZ2lzdGVyIHByZXNlbnQgPyAqLwotCQl3cm1zciAoTVNSX0lBMzJfTUNHX0NUTCwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CisJCXdybXNyKE1TUl9JQTMyX01DR19DVEwsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwogCW5yX21jZV9iYW5rcyA9IGwgJiAweGZmOwogCiAJLyogQ2xlYXIgc3RhdHVzIGZvciBNQyBpbmRleCAwIHNlcGFyYXRlbHksIHdlIGRvbid0IHRvdWNoIENUTCwKIAkgKiBhcyBzb21lIEs3IEF0aGxvbnMgY2F1c2Ugc3B1cmlvdXMgTUNFcyB3aGVuIGl0cyBlbmFibGVkLiAqLwogCWlmIChib290X2NwdV9kYXRhLng4NiA9PSA2KSB7Ci0JCXdybXNyIChNU1JfSUEzMl9NQzBfU1RBVFVTLCAweDAsIDB4MCk7CisJCXdybXNyKE1TUl9JQTMyX01DMF9TVEFUVVMsIDB4MCwgMHgwKTsKIAkJaSA9IDE7CiAJfSBlbHNlCiAJCWkgPSAwOwotCWZvciAoOyBpPG5yX21jZV9iYW5rczsgaSsrKSB7Ci0JCXdybXNyIChNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7Ci0JCXdybXNyIChNU1JfSUEzMl9NQzBfU1RBVFVTKzQqaSwgMHgwLCAweDApOworCWZvciAoOyBpIDwgbnJfbWNlX2JhbmtzOyBpKyspIHsKKwkJd3Jtc3IoTVNSX0lBMzJfTUMwX0NUTCs0KmksIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOworCQl3cm1zcihNU1JfSUEzMl9NQzBfU1RBVFVTKzQqaSwgMHgwLCAweDApOwogCX0KIAotCXNldF9pbl9jcjQgKFg4Nl9DUjRfTUNFKTsKLQlwcmludGsgKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjJWQuXG4iLAorCXNldF9pbl9jcjQoWDg2X0NSNF9NQ0UpOworCXByaW50ayhLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQgb24gQ1BVIyVkLlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZV82NC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlXzY0LmMKaW5kZXggZTA3ZThjMC4uOTg3NDEwNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlXzY0LmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KICNpbmNsdWRlIDxsaW51eC9rYWxsc3ltcy5oPgpAQCAtMzEsNyArMzIsNyBAQAogI2luY2x1ZGUgPGFzbS9pZGxlLmg+CiAKICNkZWZpbmUgTUlTQ19NQ0VMT0dfTUlOT1IgMjI3Ci0jZGVmaW5lIE5SX0JBTktTIDYKKyNkZWZpbmUgTlJfU1lTRlNfQkFOS1MgNgogCiBhdG9taWNfdCBtY2VfZW50cnk7CiAKQEAgLTQ2LDcgKzQ3LDcgQEAKICAqLwogc3RhdGljIGludCB0b2xlcmFudCA9IDE7CiBzdGF0aWMgaW50IGJhbmtzOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgYmFua1tOUl9CQU5LU10gPSB7IFswIC4uLiBOUl9CQU5LUy0xXSA9IH4wVUwgfTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGJhbmtbTlJfU1lTRlNfQkFOS1NdID0geyBbMCAuLi4gTlJfU1lTRlNfQkFOS1MtMV0gPSB+MFVMIH07CiBzdGF0aWMgdW5zaWduZWQgbG9uZyBub3RpZnlfdXNlcjsKIHN0YXRpYyBpbnQgcmlwX21zcjsKIHN0YXRpYyBpbnQgbWNlX2Jvb3Rsb2cgPSAtMTsKQEAgLTIwOSw3ICsyMTAsNyBAQAogCWJhcnJpZXIoKTsKIAogCWZvciAoaSA9IDA7IGkgPCBiYW5rczsgaSsrKSB7Ci0JCWlmICghYmFua1tpXSkKKwkJaWYgKGkgPCBOUl9TWVNGU19CQU5LUyAmJiAhYmFua1tpXSkKIAkJCWNvbnRpbnVlOwogCiAJCW0ubWlzYyA9IDA7CkBAIC00NDQsOSArNDQ1LDEwIEBACiAKIAlyZG1zcmwoTVNSX0lBMzJfTUNHX0NBUCwgY2FwKTsKIAliYW5rcyA9IGNhcCAmIDB4ZmY7Ci0JaWYgKGJhbmtzID4gTlJfQkFOS1MpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiTUNFOiB3YXJuaW5nOiB1c2luZyBvbmx5ICVkIGJhbmtzXG4iLCBiYW5rcyk7Ci0JCWJhbmtzID0gTlJfQkFOS1M7CisJaWYgKGJhbmtzID4gTUNFX0VYVEVOREVEX0JBTkspIHsKKwkJYmFua3MgPSBNQ0VfRVhURU5ERURfQkFOSzsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiTUNFOiB3YXJuaW5nOiB1c2luZyBvbmx5ICVkIGJhbmtzXG4iLAorCQkgICAgICAgTUNFX0VYVEVOREVEX0JBTkspOwogCX0KIAkvKiBVc2UgYWNjdXJhdGUgUklQIHJlcG9ydGluZyBpZiBhdmFpbGFibGUuICovCiAJaWYgKChjYXAgJiAoMTw8OSkpICYmICgoY2FwID4+IDE2KSAmIDB4ZmYpID49IDkpCkBAIC00NjIsNyArNDY0LDExIEBACiAJCXdybXNyKE1TUl9JQTMyX01DR19DVEwsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwogCiAJZm9yIChpID0gMDsgaSA8IGJhbmtzOyBpKyspIHsKLQkJd3Jtc3JsKE1TUl9JQTMyX01DMF9DVEwrNCppLCBiYW5rW2ldKTsKKwkJaWYgKGkgPCBOUl9TWVNGU19CQU5LUykKKwkJCXdybXNybChNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgYmFua1tpXSk7CisJCWVsc2UKKwkJCXdybXNybChNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgfjBVTCk7CisKIAkJd3Jtc3JsKE1TUl9JQTMyX01DMF9TVEFUVVMrNCppLCAwKTsKIAl9CiB9CkBAIC01MjcsMTAgKzUzMywxMiBAQAogCiBzdGF0aWMgaW50IG1jZV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZtY2Vfc3RhdGVfbG9jayk7CiAKIAlpZiAob3Blbl9leGNsdSB8fCAob3Blbl9jb3VudCAmJiAoZmlsZS0+Zl9mbGFncyAmIE9fRVhDTCkpKSB7CiAJCXNwaW5fdW5sb2NrKCZtY2Vfc3RhdGVfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAKQEAgLTUzOSw2ICs1NDcsNyBAQAogCW9wZW5fY291bnQrKzsKIAogCXNwaW5fdW5sb2NrKCZtY2Vfc3RhdGVfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogfQpAQCAtNzY2LDcgKzc3NSwxMCBAQAogCX0JCQkJCQkJCVwKIAlzdGF0aWMgU1lTREVWX0FUVFIobmFtZSwgMDY0NCwgc2hvd18gIyMgbmFtZSwgc2V0XyAjIyBuYW1lKTsKIAotLyogVEJEIHNob3VsZCBnZW5lcmF0ZSB0aGVzZSBkeW5hbWljYWxseSBiYXNlZCBvbiBudW1iZXIgb2YgYXZhaWxhYmxlIGJhbmtzICovCisvKgorICogVEJEIHNob3VsZCBnZW5lcmF0ZSB0aGVzZSBkeW5hbWljYWxseSBiYXNlZCBvbiBudW1iZXIgb2YgYXZhaWxhYmxlIGJhbmtzLgorICogSGF2ZSBvbmx5IDYgY29udG9sIGJhbmtzIGluIC9zeXNmcyB1bnRpbCB0aGVuLgorICovCiBBQ0NFU1NPUihiYW5rMGN0bCxiYW5rWzBdLG1jZV9yZXN0YXJ0KCkpCiBBQ0NFU1NPUihiYW5rMWN0bCxiYW5rWzFdLG1jZV9yZXN0YXJ0KCkpCiBBQ0NFU1NPUihiYW5rMmN0bCxiYW5rWzJdLG1jZV9yZXN0YXJ0KCkpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9wNC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svcDQuYwppbmRleCBjYjAzMzQ1Li5lZWYwMDFhIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21jaGVjay9wNC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL3A0LmMKQEAgLTgsNyArOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+CiAKLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+IAorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CkBAIC0zMiwxMiArMzIsMTIgQEAKIAkvKiB1MzIgKnJlc2VydmVkW107ICovCiB9OwogCi1zdGF0aWMgaW50IG1jZV9udW1fZXh0ZW5kZWRfbXNycyA9IDA7CitzdGF0aWMgaW50IG1jZV9udW1fZXh0ZW5kZWRfbXNyczsKIAogCiAjaWZkZWYgQ09ORklHX1g4Nl9NQ0VfUDRUSEVSTUFMCiBzdGF0aWMgdm9pZCB1bmV4cGVjdGVkX3RoZXJtYWxfaW50ZXJydXB0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQotewkKK3sKIAlwcmludGsoS0VSTl9FUlIgIkNQVSVkOiBVbmV4cGVjdGVkIExWVCBUTVIgaW50ZXJydXB0IVxuIiwKIAkJCXNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJYWRkX3RhaW50KFRBSU5UX01BQ0hJTkVfQ0hFQ0spOwpAQCAtODMsNyArODMsNyBAQAogCSAqIGJlIHNvbWUgU01NIGdvbyB3aGljaCBoYW5kbGVzIGl0LCBzbyB3ZSBjYW4ndCBldmVuIHB1dCBhIGhhbmRsZXIKIAkgKiBzaW5jZSBpdCBtaWdodCBiZSBkZWxpdmVyZWQgdmlhIFNNSSBhbHJlYWR5IC16d2FuZW0uCiAJICovCi0JcmRtc3IgKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCwgaCk7CiAJaCA9IGFwaWNfcmVhZChBUElDX0xWVFRITVIpOwogCWlmICgobCAmICgxPDwzKSkgJiYgKGggJiBBUElDX0RNX1NNSSkpIHsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIkNQVSVkOiBUaGVybWFsIG1vbml0b3JpbmcgaGFuZGxlZCBieSBTTUlcbiIsCkBAIC05MSw3ICs5MSw3IEBACiAJCXJldHVybjsgLyogLUVCVVNZICovCiAJfQogCi0JLyogY2hlY2sgd2hldGhlciBhIHZlY3RvciBhbHJlYWR5IGV4aXN0cywgdGVtcG9yYXJpbHkgbWFza2VkPyAqLwkKKwkvKiBjaGVjayB3aGV0aGVyIGEgdmVjdG9yIGFscmVhZHkgZXhpc3RzLCB0ZW1wb3JhcmlseSBtYXNrZWQ/ICovCiAJaWYgKGggJiBBUElDX1ZFQ1RPUl9NQVNLKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICJDUFUlZDogVGhlcm1hbCBMVlQgdmVjdG9yICglI3gpIGFscmVhZHkgIgogCQkJCSJpbnN0YWxsZWRcbiIsCkBAIC0xMDQsMTggKzEwNCwxOCBAQAogCWggfD0gKEFQSUNfRE1fRklYRUQgfCBBUElDX0xWVF9NQVNLRUQpOwkvKiB3ZSdsbCBtYXNrIHRpbGwgd2UncmUgcmVhZHkgKi8KIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVFRITVIsIGgpOwogCi0JcmRtc3IgKE1TUl9JQTMyX1RIRVJNX0lOVEVSUlVQVCwgbCwgaCk7Ci0Jd3Jtc3IgKE1TUl9JQTMyX1RIRVJNX0lOVEVSUlVQVCwgbCB8IDB4MDMgLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9USEVSTV9JTlRFUlJVUFQsIGwsIGgpOworCXdybXNyKE1TUl9JQTMyX1RIRVJNX0lOVEVSUlVQVCwgbCB8IDB4MDMgLCBoKTsKIAogCS8qIG9rIHdlJ3JlIGdvb2QgdG8gZ28uLi4gKi8KIAl2ZW5kb3JfdGhlcm1hbF9pbnRlcnJ1cHQgPSBpbnRlbF90aGVybWFsX2ludGVycnVwdDsKLQkKLQlyZG1zciAoTVNSX0lBMzJfTUlTQ19FTkFCTEUsIGwsIGgpOwotCXdybXNyIChNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCB8ICgxPDwzKSwgaCk7CiAKLQlsID0gYXBpY19yZWFkIChBUElDX0xWVFRITVIpOwotCWFwaWNfd3JpdGVfYXJvdW5kIChBUElDX0xWVFRITVIsIGwgJiB+QVBJQ19MVlRfTUFTS0VEKTsKLQlwcmludGsgKEtFUk5fSU5GTyAiQ1BVJWQ6IFRoZXJtYWwgbW9uaXRvcmluZyBlbmFibGVkXG4iLCBjcHUpOworCXJkbXNyKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsLCBoKTsKKwl3cm1zcihNU1JfSUEzMl9NSVNDX0VOQUJMRSwgbCB8ICgxPDwzKSwgaCk7CisKKwlsID0gYXBpY19yZWFkKEFQSUNfTFZUVEhNUik7CisJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlRUSE1SLCBsICYgfkFQSUNfTFZUX01BU0tFRCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVJWQ6IFRoZXJtYWwgbW9uaXRvcmluZyBlbmFibGVkXG4iLCBjcHUpOwogCiAJLyogZW5hYmxlIHRoZXJtYWwgdGhyb3R0bGUgcHJvY2Vzc2luZyAqLwogCWF0b21pY19zZXQoJnRoZXJtX3Rocm90X2VuLCAxKTsKQEAgLTEyOSwyOCArMTI5LDI4IEBACiB7CiAJdTMyIGg7CiAKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VBWCwgci0+ZWF4LCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VCWCwgci0+ZWJ4LCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VDWCwgci0+ZWN4LCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VEWCwgci0+ZWR4LCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VTSSwgci0+ZXNpLCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VESSwgci0+ZWRpLCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VCUCwgci0+ZWJwLCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VTUCwgci0+ZXNwLCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VGTEFHUywgci0+ZWZsYWdzLCBoKTsKLQlyZG1zciAoTVNSX0lBMzJfTUNHX0VJUCwgci0+ZWlwLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUFYLCByLT5lYXgsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FQlgsIHItPmVieCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VDWCwgci0+ZWN4LCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRURYLCByLT5lZHgsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FU0ksIHItPmVzaSwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VESSwgci0+ZWRpLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUJQLCByLT5lYnAsIGgpOworCXJkbXNyKE1TUl9JQTMyX01DR19FU1AsIHItPmVzcCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0VGTEFHUywgci0+ZWZsYWdzLCBoKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfRUlQLCByLT5laXAsIGgpOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9tYWNoaW5lX2NoZWNrKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQorc3RhdGljIHZvaWQgaW50ZWxfbWFjaGluZV9jaGVjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogewotCWludCByZWNvdmVyPTE7CisJaW50IHJlY292ZXIgPSAxOwogCXUzMiBhbG93LCBhaGlnaCwgaGlnaCwgbG93OwogCXUzMiBtY2dzdGwsIG1jZ3N0aDsKIAlpbnQgaTsKIAotCXJkbXNyIChNU1JfSUEzMl9NQ0dfU1RBVFVTLCBtY2dzdGwsIG1jZ3N0aCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX1NUQVRVUywgbWNnc3RsLCBtY2dzdGgpOwogCWlmIChtY2dzdGwgJiAoMTw8MCkpCS8qIFJlY292ZXJhYmxlID8gKi8KLQkJcmVjb3Zlcj0wOworCQlyZWNvdmVyID0gMDsKIAogCXByaW50ayhLRVJOX0VNRVJHICJDUFUgJWQ6IE1hY2hpbmUgQ2hlY2sgRXhjZXB0aW9uOiAlMDh4JTA4eFxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBtY2dzdGgsIG1jZ3N0bCk7CkBAIC0xOTEsMjAgKzE5MSwyMCBAQAogCX0KIAogCWlmIChyZWNvdmVyICYgMikKLQkJcGFuaWMgKCJDUFUgY29udGV4dCBjb3JydXB0Iik7CisJCXBhbmljKCJDUFUgY29udGV4dCBjb3JydXB0Iik7CiAJaWYgKHJlY292ZXIgJiAxKQotCQlwYW5pYyAoIlVuYWJsZSB0byBjb250aW51ZSIpOworCQlwYW5pYygiVW5hYmxlIHRvIGNvbnRpbnVlIik7CiAKIAlwcmludGsoS0VSTl9FTUVSRyAiQXR0ZW1wdGluZyB0byBjb250aW51ZS5cbiIpOwotCS8qIAotCSAqIERvIG5vdCBjbGVhciB0aGUgTVNSX0lBMzJfTUNpX1NUQVRVUyBpZiB0aGUgZXJyb3IgaXMgbm90IAorCS8qCisJICogRG8gbm90IGNsZWFyIHRoZSBNU1JfSUEzMl9NQ2lfU1RBVFVTIGlmIHRoZSBlcnJvciBpcyBub3QKIAkgKiByZWNvdmVyYWJsZS9jb250aW51YWJsZS5UaGlzIHdpbGwgYWxsb3cgQklPUyB0byBsb29rIGF0IHRoZSBNU1JzCiAJICogZm9yIGVycm9ycyBpZiB0aGUgT1MgY291bGQgbm90IGxvZyB0aGUgZXJyb3IuCiAJICovCi0JZm9yIChpPTA7IGk8bnJfbWNlX2JhbmtzOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfbWNlX2JhbmtzOyBpKyspIHsKIAkJdTMyIG1zcjsKIAkJbXNyID0gTVNSX0lBMzJfTUMwX1NUQVRVUytpKjQ7Ci0JCXJkbXNyIChtc3IsIGxvdywgaGlnaCk7CisJCXJkbXNyKG1zciwgbG93LCBoaWdoKTsKIAkJaWYgKGhpZ2gmKDE8PDMxKSkgewogCQkJLyogQ2xlYXIgaXQgKi8KIAkJCXdybXNyKG1zciwgMFVMLCAwVUwpOwpAQCAtMjE0LDcgKzIxNCw3IEBACiAJCX0KIAl9CiAJbWNnc3RsICY9IH4oMTw8Mik7Ci0Jd3Jtc3IgKE1TUl9JQTMyX01DR19TVEFUVVMsbWNnc3RsLCBtY2dzdGgpOworCXdybXNyKE1TUl9JQTMyX01DR19TVEFUVVMsIG1jZ3N0bCwgbWNnc3RoKTsKIH0KIAogCkBAIC0yMjIsMzAgKzIyMiwzMCBAQAogewogCXUzMiBsLCBoOwogCWludCBpOwotCQorCiAJbWFjaGluZV9jaGVja192ZWN0b3IgPSBpbnRlbF9tYWNoaW5lX2NoZWNrOwogCXdtYigpOwogCi0JcHJpbnRrIChLRVJOX0lORk8gIkludGVsIG1hY2hpbmUgY2hlY2sgYXJjaGl0ZWN0dXJlIHN1cHBvcnRlZC5cbiIpOwotCXJkbXNyIChNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKKwlwcmludGsoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIGFyY2hpdGVjdHVyZSBzdXBwb3J0ZWQuXG4iKTsKKwlyZG1zcihNU1JfSUEzMl9NQ0dfQ0FQLCBsLCBoKTsKIAlpZiAobCAmICgxPDw4KSkJLyogQ29udHJvbCByZWdpc3RlciBwcmVzZW50ID8gKi8KLQkJd3Jtc3IgKE1TUl9JQTMyX01DR19DVEwsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOworCQl3cm1zcihNU1JfSUEzMl9NQ0dfQ1RMLCAweGZmZmZmZmZmLCAweGZmZmZmZmZmKTsKIAlucl9tY2VfYmFua3MgPSBsICYgMHhmZjsKIAotCWZvciAoaT0wOyBpPG5yX21jZV9iYW5rczsgaSsrKSB7Ci0JCXdybXNyIChNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7Ci0JCXdybXNyIChNU1JfSUEzMl9NQzBfU1RBVFVTKzQqaSwgMHgwLCAweDApOworCWZvciAoaSA9IDA7IGkgPCBucl9tY2VfYmFua3M7IGkrKykgeworCQl3cm1zcihNU1JfSUEzMl9NQzBfQ1RMKzQqaSwgMHhmZmZmZmZmZiwgMHhmZmZmZmZmZik7CisJCXdybXNyKE1TUl9JQTMyX01DMF9TVEFUVVMrNCppLCAweDAsIDB4MCk7CiAJfQogCi0Jc2V0X2luX2NyNCAoWDg2X0NSNF9NQ0UpOwotCXByaW50ayAoS0VSTl9JTkZPICJJbnRlbCBtYWNoaW5lIGNoZWNrIHJlcG9ydGluZyBlbmFibGVkIG9uIENQVSMlZC5cbiIsCisJc2V0X2luX2NyNChYODZfQ1I0X01DRSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSW50ZWwgbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZCBvbiBDUFUjJWQuXG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCkpOwogCiAJLyogQ2hlY2sgZm9yIFA0L1hlb24gZXh0ZW5kZWQgTUNFIE1TUnMgKi8KLQlyZG1zciAoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CisJcmRtc3IoTVNSX0lBMzJfTUNHX0NBUCwgbCwgaCk7CiAJaWYgKGwgJiAoMTw8OSkpCXsvKiBNQ0dfRVhUX1AgKi8KIAkJbWNlX251bV9leHRlbmRlZF9tc3JzID0gKGwgPj4gMTYpICYgMHhmZjsKLQkJcHJpbnRrIChLRVJOX0lORk8gIkNQVSVkOiBJbnRlbCBQNC9YZW9uIEV4dGVuZGVkIE1DRSBNU1JzICglZCkiCisJCXByaW50ayhLRVJOX0lORk8gIkNQVSVkOiBJbnRlbCBQNC9YZW9uIEV4dGVuZGVkIE1DRSBNU1JzICglZCkiCiAJCQkJIiBhdmFpbGFibGVcbiIsCiAJCQlzbXBfcHJvY2Vzc29yX2lkKCksIG1jZV9udW1fZXh0ZW5kZWRfbXNycyk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9nZW5lcmljLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvZ2VuZXJpYy5jCmluZGV4IDVkMjQxY2UuLjUwOWJkM2QgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9nZW5lcmljLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL2dlbmVyaWMuYwpAQCAtMzcsNyArMzcsNyBAQAogc3RhdGljIHVuc2lnbmVkIGxvbmcgc21wX2NoYW5nZXNfbWFzazsKIHN0YXRpYyBzdHJ1Y3QgbXRycl9zdGF0ZSBtdHJyX3N0YXRlID0ge307CiBzdGF0aWMgaW50IG10cnJfc3RhdGVfc2V0Owotc3RhdGljIHU2NCB0b20yOwordTY0IG10cnJfdG9tMjsKIAogI3VuZGVmIE1PRFVMRV9QQVJBTV9QUkVGSVgKICNkZWZpbmUgTU9EVUxFX1BBUkFNX1BSRUZJWCAibXRyci4iCkBAIC0xMzksOCArMTM5LDggQEAKIAkJfQogCX0KIAotCWlmICh0b20yKSB7Ci0JCWlmIChzdGFydCA+PSAoMVVMTDw8MzIpICYmIChlbmQgPCB0b20yKSkKKwlpZiAobXRycl90b20yKSB7CisJCWlmIChzdGFydCA+PSAoMVVMTDw8MzIpICYmIChlbmQgPCBtdHJyX3RvbTIpKQogCQkJcmV0dXJuIE1UUlJfVFlQRV9XUkJBQ0s7CiAJfQogCkBAIC0xNTgsNiArMTU4LDIwIEBACiAJcmRtc3IoTVRSUnBoeXNNYXNrX01TUihpbmRleCksIHZyLT5tYXNrX2xvLCB2ci0+bWFza19oaSk7CiB9CiAKKy8qICBmaWxsIHRoZSBNU1IgcGFpciByZWxhdGluZyB0byBhIHZhciByYW5nZSAgKi8KK3ZvaWQgZmlsbF9tdHJyX3Zhcl9yYW5nZSh1bnNpZ25lZCBpbnQgaW5kZXgsCisJCXUzMiBiYXNlX2xvLCB1MzIgYmFzZV9oaSwgdTMyIG1hc2tfbG8sIHUzMiBtYXNrX2hpKQoreworCXN0cnVjdCBtdHJyX3Zhcl9yYW5nZSAqdnI7CisKKwl2ciA9IG10cnJfc3RhdGUudmFyX3JhbmdlczsKKworCXZyW2luZGV4XS5iYXNlX2xvID0gYmFzZV9sbzsKKwl2cltpbmRleF0uYmFzZV9oaSA9IGJhc2VfaGk7CisJdnJbaW5kZXhdLm1hc2tfbG8gPSBtYXNrX2xvOworCXZyW2luZGV4XS5tYXNrX2hpID0gbWFza19oaTsKK30KKwogc3RhdGljIHZvaWQKIGdldF9maXhlZF9yYW5nZXMobXRycl90eXBlICogZnJzKQogewpAQCAtMjEzLDEzICsyMjcsMTMgQEAKIAltdHJyX3N0YXRlLmVuYWJsZWQgPSAobG8gJiAweGMwMCkgPj4gMTA7CiAKIAlpZiAoYW1kX3NwZWNpYWxfZGVmYXVsdF9tdHJyKCkpIHsKLQkJdW5zaWduZWQgbG8sIGhpOworCQl1bnNpZ25lZCBsb3csIGhpZ2g7CiAJCS8qIFRPUF9NRU0yICovCi0JCXJkbXNyKE1TUl9LOF9UT1BfTUVNMiwgbG8sIGhpKTsKLQkJdG9tMiA9IGhpOwotCQl0b20yIDw8PSAzMjsKLQkJdG9tMiB8PSBsbzsKLQkJdG9tMiAmPSAweGZmZmZmZjgwMDAwMDBVTEw7CisJCXJkbXNyKE1TUl9LOF9UT1BfTUVNMiwgbG93LCBoaWdoKTsKKwkJbXRycl90b20yID0gaGlnaDsKKwkJbXRycl90b20yIDw8PSAzMjsKKwkJbXRycl90b20yIHw9IGxvdzsKKwkJbXRycl90b20yICY9IDB4ZmZmZmZmODAwMDAwVUxMOwogCX0KIAlpZiAobXRycl9zaG93KSB7CiAJCWludCBoaWdoX3dpZHRoOwpAQCAtMjUxLDkgKzI2NSw5IEBACiAJCQllbHNlCiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiTVRSUiAldSBkaXNhYmxlZFxuIiwgaSk7CiAJCX0KLQkJaWYgKHRvbTIpIHsKKwkJaWYgKG10cnJfdG9tMikgewogCQkJcHJpbnRrKEtFUk5fSU5GTyAiVE9NMjogJTAxNmxseCBha2EgJWxsZE1cbiIsCi0JCQkJCSAgdG9tMiwgdG9tMj4+MjApOworCQkJCQkgIG10cnJfdG9tMiwgbXRycl90b20yPj4yMCk7CiAJCX0KIAl9CiAJbXRycl9zdGF0ZV9zZXQgPSAxOwpAQCAtMzI4LDcgKzM0Miw3IEBACiAKIAlpZiAobG8gIT0gbXNyd29yZHNbMF0gfHwgaGkgIT0gbXNyd29yZHNbMV0pIHsKIAkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCAmJgotCQkgICAgYm9vdF9jcHVfZGF0YS54ODYgPT0gMTUgJiYKKwkJICAgIChib290X2NwdV9kYXRhLng4NiA+PSAweDBmICYmIGJvb3RfY3B1X2RhdGEueDg2IDw9IDB4MTEpICYmCiAJCSAgICAoKG1zcndvcmRzWzBdIHwgbXNyd29yZHNbMV0pICYgSzhfTVRSUl9SRE1FTV9XUk1FTV9NQVNLKSkKIAkJCWs4X2VuYWJsZV9maXhlZF9pb3JycygpOwogCQltdHJyX3dybXNyKG1zciwgbXNyd29yZHNbMF0sIG1zcndvcmRzWzFdKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tYWluLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbWFpbi5jCmluZGV4IDZhMWUyNzguLjEwNWFmZTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tYWluLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL21haW4uYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc29ydC5oPgogCiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vbXRyci5oPgpAQCAtNjA5LDYgKzYxMCw3ODcgQEAKIAkucmVzdW1lCQk9IG10cnJfcmVzdG9yZSwKIH07CiAKKy8qIHNob3VsZCBiZSByZWxhdGVkIHRvIE1UUlJfVkFSX1JBTkdFUyBudW1zICovCisjZGVmaW5lIFJBTkdFX05VTSAyNTYKKworc3RydWN0IHJlc19yYW5nZSB7CisJdW5zaWduZWQgbG9uZyBzdGFydDsKKwl1bnNpZ25lZCBsb25nIGVuZDsKK307CisKK3N0YXRpYyBpbnQgX19pbml0CithZGRfcmFuZ2Uoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIGludCBucl9yYW5nZSwgdW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCS8qIG91dCBvZiBzbG90cyAqLworCWlmIChucl9yYW5nZSA+PSBSQU5HRV9OVU0pCisJCXJldHVybiBucl9yYW5nZTsKKworCXJhbmdlW25yX3JhbmdlXS5zdGFydCA9IHN0YXJ0OworCXJhbmdlW25yX3JhbmdlXS5lbmQgPSBlbmQ7CisKKwlucl9yYW5nZSsrOworCisJcmV0dXJuIG5yX3JhbmdlOworfQorCitzdGF0aWMgaW50IF9faW5pdAorYWRkX3JhbmdlX3dpdGhfbWVyZ2Uoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIGludCBucl9yYW5nZSwgdW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCSAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWludCBpOworCisJLyogdHJ5IHRvIG1lcmdlIGl0IHdpdGggb2xkIG9uZSAqLworCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKSB7CisJCXVuc2lnbmVkIGxvbmcgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKwkJdW5zaWduZWQgbG9uZyBjb21tb25fc3RhcnQsIGNvbW1vbl9lbmQ7CisKKwkJaWYgKCFyYW5nZVtpXS5lbmQpCisJCQljb250aW51ZTsKKworCQljb21tb25fc3RhcnQgPSBtYXgocmFuZ2VbaV0uc3RhcnQsIHN0YXJ0KTsKKwkJY29tbW9uX2VuZCA9IG1pbihyYW5nZVtpXS5lbmQsIGVuZCk7CisJCWlmIChjb21tb25fc3RhcnQgPiBjb21tb25fZW5kICsgMSkKKwkJCWNvbnRpbnVlOworCisJCWZpbmFsX3N0YXJ0ID0gbWluKHJhbmdlW2ldLnN0YXJ0LCBzdGFydCk7CisJCWZpbmFsX2VuZCA9IG1heChyYW5nZVtpXS5lbmQsIGVuZCk7CisKKwkJcmFuZ2VbaV0uc3RhcnQgPSBmaW5hbF9zdGFydDsKKwkJcmFuZ2VbaV0uZW5kID0gIGZpbmFsX2VuZDsKKwkJcmV0dXJuIG5yX3JhbmdlOworCX0KKworCS8qIG5lZWQgdG8gYWRkIHRoYXQgKi8KKwlyZXR1cm4gYWRkX3JhbmdlKHJhbmdlLCBucl9yYW5nZSwgc3RhcnQsIGVuZCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAorc3VidHJhY3RfcmFuZ2Uoc3RydWN0IHJlc19yYW5nZSAqcmFuZ2UsIHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQoreworCWludCBpLCBqOworCisJZm9yIChqID0gMDsgaiA8IFJBTkdFX05VTTsgaisrKSB7CisJCWlmICghcmFuZ2Vbal0uZW5kKQorCQkJY29udGludWU7CisKKwkJaWYgKHN0YXJ0IDw9IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQpIHsKKwkJCXJhbmdlW2pdLnN0YXJ0ID0gMDsKKwkJCXJhbmdlW2pdLmVuZCA9IDA7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPCByYW5nZVtqXS5lbmQgJiYKKwkJICAgIHJhbmdlW2pdLnN0YXJ0IDwgZW5kICsgMSkgeworCQkJcmFuZ2Vbal0uc3RhcnQgPSBlbmQgKyAxOworCQkJY29udGludWU7CisJCX0KKworCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQgJiYKKwkJICAgIHJhbmdlW2pdLmVuZCA+IHN0YXJ0IC0gMSkgeworCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPCByYW5nZVtqXS5lbmQpIHsKKwkJCS8qIGZpbmQgdGhlIG5ldyBzcGFyZSAqLworCQkJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7CisJCQkJaWYgKHJhbmdlW2ldLmVuZCA9PSAwKQorCQkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChpIDwgUkFOR0VfTlVNKSB7CisJCQkJcmFuZ2VbaV0uZW5kID0gcmFuZ2Vbal0uZW5kOworCQkJCXJhbmdlW2ldLnN0YXJ0ID0gZW5kICsgMTsKKwkJCX0gZWxzZSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSICJydW4gb2Ygc2xvdCBpbiByYW5nZXNcbiIpOworCQkJfQorCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOworCQkJY29udGludWU7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNtcF9yYW5nZShjb25zdCB2b2lkICp4MSwgY29uc3Qgdm9pZCAqeDIpCit7CisJY29uc3Qgc3RydWN0IHJlc19yYW5nZSAqcjEgPSB4MTsKKwljb25zdCBzdHJ1Y3QgcmVzX3JhbmdlICpyMiA9IHgyOworCWxvbmcgc3RhcnQxLCBzdGFydDI7CisKKwlzdGFydDEgPSByMS0+c3RhcnQ7CisJc3RhcnQyID0gcjItPnN0YXJ0OworCisJcmV0dXJuIHN0YXJ0MSAtIHN0YXJ0MjsKK30KKworc3RydWN0IHZhcl9tdHJyX3JhbmdlX3N0YXRlIHsKKwl1bnNpZ25lZCBsb25nIGJhc2VfcGZuOworCXVuc2lnbmVkIGxvbmcgc2l6ZV9wZm47CisJbXRycl90eXBlIHR5cGU7Cit9OworCitzdHJ1Y3QgdmFyX210cnJfcmFuZ2Vfc3RhdGUgX19pbml0ZGF0YSByYW5nZV9zdGF0ZVtSQU5HRV9OVU1dOworc3RhdGljIGludCBfX2luaXRkYXRhIGRlYnVnX3ByaW50OworCitzdGF0aWMgaW50IF9faW5pdAoreDg2X2dldF9tdHJyX21lbV9yYW5nZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgaW50IG5yX3JhbmdlLAorCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHRyYV9yZW1vdmVfYmFzZSwKKwkJICAgICAgIHVuc2lnbmVkIGxvbmcgZXh0cmFfcmVtb3ZlX3NpemUpCit7CisJdW5zaWduZWQgbG9uZyBpLCBiYXNlLCBzaXplOworCW10cnJfdHlwZSB0eXBlOworCisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW2ldLnR5cGU7CisJCWlmICh0eXBlICE9IE1UUlJfVFlQRV9XUkJBQ0spCisJCQljb250aW51ZTsKKwkJYmFzZSA9IHJhbmdlX3N0YXRlW2ldLmJhc2VfcGZuOworCQlzaXplID0gcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm47CisJCW5yX3JhbmdlID0gYWRkX3JhbmdlX3dpdGhfbWVyZ2UocmFuZ2UsIG5yX3JhbmdlLCBiYXNlLAorCQkJCQkJYmFzZSArIHNpemUgLSAxKTsKKwl9CisJaWYgKGRlYnVnX3ByaW50KSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJBZnRlciBXQiBjaGVja2luZ1xuIik7CisJCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQkJcHJpbnRrKEtFUk5fREVCVUcgIk1UUlIgTUFQIFBGTjogJTAxNmx4IC0gJTAxNmx4XG4iLAorCQkJCSByYW5nZVtpXS5zdGFydCwgcmFuZ2VbaV0uZW5kICsgMSk7CisJfQorCisJLyogdGFrZSBvdXQgVUMgcmFuZ2VzICovCisJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKKwkJdHlwZSA9IHJhbmdlX3N0YXRlW2ldLnR5cGU7CisJCWlmICh0eXBlICE9IE1UUlJfVFlQRV9VTkNBQ0hBQkxFKQorCQkJY29udGludWU7CisJCXNpemUgPSByYW5nZV9zdGF0ZVtpXS5zaXplX3BmbjsKKwkJaWYgKCFzaXplKQorCQkJY29udGludWU7CisJCWJhc2UgPSByYW5nZV9zdGF0ZVtpXS5iYXNlX3BmbjsKKwkJc3VidHJhY3RfcmFuZ2UocmFuZ2UsIGJhc2UsIGJhc2UgKyBzaXplIC0gMSk7CisJfQorCWlmIChleHRyYV9yZW1vdmVfc2l6ZSkKKwkJc3VidHJhY3RfcmFuZ2UocmFuZ2UsIGV4dHJhX3JlbW92ZV9iYXNlLAorCQkJCSBleHRyYV9yZW1vdmVfYmFzZSArIGV4dHJhX3JlbW92ZV9zaXplICAtIDEpOworCisJLyogZ2V0IG5ldyByYW5nZSBudW0gKi8KKwlucl9yYW5nZSA9IDA7CisJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7CisJCWlmICghcmFuZ2VbaV0uZW5kKQorCQkJY29udGludWU7CisJCW5yX3JhbmdlKys7CisJfQorCWlmICAoZGVidWdfcHJpbnQpIHsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIkFmdGVyIFVDIGNoZWNraW5nXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCQlwcmludGsoS0VSTl9ERUJVRyAiTVRSUiBNQVAgUEZOOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQgKyAxKTsKKwl9CisKKwkvKiBzb3J0IHRoZSByYW5nZXMgKi8KKwlzb3J0KHJhbmdlLCBucl9yYW5nZSwgc2l6ZW9mKHN0cnVjdCByZXNfcmFuZ2UpLCBjbXBfcmFuZ2UsIE5VTEwpOworCWlmICAoZGVidWdfcHJpbnQpIHsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIkFmdGVyIHNvcnRpbmdcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJCXByaW50ayhLRVJOX0RFQlVHICJNVFJSIE1BUCBQRk46ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQkgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCArIDEpOworCX0KKworCS8qIGNsZWFyIHRob3NlIGlzIG5vdCB1c2VkICovCisJZm9yIChpID0gbnJfcmFuZ2U7IGkgPCBSQU5HRV9OVU07IGkrKykKKwkJbWVtc2V0KCZyYW5nZVtpXSwgMCwgc2l6ZW9mKHJhbmdlW2ldKSk7CisKKwlyZXR1cm4gbnJfcmFuZ2U7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcmVzX3JhbmdlIF9faW5pdGRhdGEgcmFuZ2VbUkFOR0VfTlVNXTsKKworI2lmZGVmIENPTkZJR19NVFJSX1NBTklUSVpFUgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgc3VtX3JhbmdlcyhzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgaW50IG5yX3JhbmdlKQoreworCXVuc2lnbmVkIGxvbmcgc3VtOworCWludCBpOworCisJc3VtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2U7IGkrKykKKwkJc3VtICs9IHJhbmdlW2ldLmVuZCArIDEgLSByYW5nZVtpXS5zdGFydDsKKworCXJldHVybiBzdW07Cit9CisKK3N0YXRpYyBpbnQgZW5hYmxlX210cnJfY2xlYW51cCBfX2luaXRkYXRhID0KKwlDT05GSUdfTVRSUl9TQU5JVElaRVJfRU5BQkxFX0RFRkFVTFQ7CisKK3N0YXRpYyBpbnQgX19pbml0IGRpc2FibGVfbXRycl9jbGVhbnVwX3NldHVwKGNoYXIgKnN0cikKK3sKKwlpZiAoZW5hYmxlX210cnJfY2xlYW51cCAhPSAtMSkKKwkJZW5hYmxlX210cnJfY2xlYW51cCA9IDA7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiZGlzYWJsZV9tdHJyX2NsZWFudXAiLCBkaXNhYmxlX210cnJfY2xlYW51cF9zZXR1cCk7CisKK3N0YXRpYyBpbnQgX19pbml0IGVuYWJsZV9tdHJyX2NsZWFudXBfc2V0dXAoY2hhciAqc3RyKQoreworCWlmIChlbmFibGVfbXRycl9jbGVhbnVwICE9IC0xKQorCQllbmFibGVfbXRycl9jbGVhbnVwID0gMTsKKwlyZXR1cm4gMDsKK30KK2Vhcmx5X3BhcmFtKCJlbmJsZV9tdHJyX2NsZWFudXAiLCBlbmFibGVfbXRycl9jbGVhbnVwX3NldHVwKTsKKworc3RydWN0IHZhcl9tdHJyX3N0YXRlIHsKKwl1bnNpZ25lZCBsb25nCXJhbmdlX3N0YXJ0azsKKwl1bnNpZ25lZCBsb25nCXJhbmdlX3NpemVrOworCXVuc2lnbmVkIGxvbmcJY2h1bmtfc2l6ZWs7CisJdW5zaWduZWQgbG9uZwlncmFuX3NpemVrOworCXVuc2lnbmVkIGludAlyZWc7Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQKK3NldF92YXJfbXRycih1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBsb25nIGJhc2VrLCB1bnNpZ25lZCBsb25nIHNpemVrLAorCQl1bnNpZ25lZCBjaGFyIHR5cGUsIHVuc2lnbmVkIGludCBhZGRyZXNzX2JpdHMpCit7CisJdTMyIGJhc2VfbG8sIGJhc2VfaGksIG1hc2tfbG8sIG1hc2tfaGk7CisJdTY0IGJhc2UsIG1hc2s7CisKKwlpZiAoIXNpemVrKSB7CisJCWZpbGxfbXRycl92YXJfcmFuZ2UocmVnLCAwLCAwLCAwLCAwKTsKKwkJcmV0dXJuOworCX0KKworCW1hc2sgPSAoMVVMTCA8PCBhZGRyZXNzX2JpdHMpIC0gMTsKKwltYXNrICY9IH4oKCgodTY0KXNpemVrKSA8PCAxMCkgLSAxKTsKKworCWJhc2UgID0gKCh1NjQpYmFzZWspIDw8IDEwOworCisJYmFzZSB8PSB0eXBlOworCW1hc2sgfD0gMHg4MDA7CisKKwliYXNlX2xvID0gYmFzZSAmICgoMVVMTDw8MzIpIC0gMSk7CisJYmFzZV9oaSA9IGJhc2UgPj4gMzI7CisKKwltYXNrX2xvID0gbWFzayAmICgoMVVMTDw8MzIpIC0gMSk7CisJbWFza19oaSA9IG1hc2sgPj4gMzI7CisKKwlmaWxsX210cnJfdmFyX3JhbmdlKHJlZywgYmFzZV9sbywgYmFzZV9oaSwgbWFza19sbywgbWFza19oaSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdAorc2F2ZV92YXJfbXRycih1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBsb25nIGJhc2VrLCB1bnNpZ25lZCBsb25nIHNpemVrLAorCQl1bnNpZ25lZCBjaGFyIHR5cGUpCit7CisJcmFuZ2Vfc3RhdGVbcmVnXS5iYXNlX3BmbiA9IGJhc2VrID4+IChQQUdFX1NISUZUIC0gMTApOworCXJhbmdlX3N0YXRlW3JlZ10uc2l6ZV9wZm4gPSBzaXplayA+PiAoUEFHRV9TSElGVCAtIDEwKTsKKwlyYW5nZV9zdGF0ZVtyZWddLnR5cGUgPSB0eXBlOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQKK3NldF92YXJfbXRycl9hbGwodW5zaWduZWQgaW50IGFkZHJlc3NfYml0cykKK3sKKwl1bnNpZ25lZCBsb25nIGJhc2VrLCBzaXplazsKKwl1bnNpZ25lZCBjaGFyIHR5cGU7CisJdW5zaWduZWQgaW50IHJlZzsKKworCWZvciAocmVnID0gMDsgcmVnIDwgbnVtX3Zhcl9yYW5nZXM7IHJlZysrKSB7CisJCWJhc2VrID0gcmFuZ2Vfc3RhdGVbcmVnXS5iYXNlX3BmbiA8PCAoUEFHRV9TSElGVCAtIDEwKTsKKwkJc2l6ZWsgPSByYW5nZV9zdGF0ZVtyZWddLnNpemVfcGZuIDw8IChQQUdFX1NISUZUIC0gMTApOworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbcmVnXS50eXBlOworCisJCXNldF92YXJfbXRycihyZWcsIGJhc2VrLCBzaXplaywgdHlwZSwgYWRkcmVzc19iaXRzKTsKKwl9Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgX19pbml0CityYW5nZV90b19tdHJyKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgcmFuZ2Vfc3RhcnRrLAorCSAgICAgIHVuc2lnbmVkIGxvbmcgcmFuZ2Vfc2l6ZWssIHVuc2lnbmVkIGNoYXIgdHlwZSkKK3sKKwlpZiAoIXJhbmdlX3NpemVrIHx8IChyZWcgPj0gbnVtX3Zhcl9yYW5nZXMpKQorCQlyZXR1cm4gcmVnOworCisJd2hpbGUgKHJhbmdlX3NpemVrKSB7CisJCXVuc2lnbmVkIGxvbmcgbWF4X2FsaWduLCBhbGlnbjsKKwkJdW5zaWduZWQgbG9uZyBzaXplazsKKworCQkvKiBDb21wdXRlIHRoZSBtYXhpbXVtIHNpemUgSSBjYW4gbWFrZSBhIHJhbmdlICovCisJCWlmIChyYW5nZV9zdGFydGspCisJCQltYXhfYWxpZ24gPSBmZnMocmFuZ2Vfc3RhcnRrKSAtIDE7CisJCWVsc2UKKwkJCW1heF9hbGlnbiA9IDMyOworCQlhbGlnbiA9IGZscyhyYW5nZV9zaXplaykgLSAxOworCQlpZiAoYWxpZ24gPiBtYXhfYWxpZ24pCisJCQlhbGlnbiA9IG1heF9hbGlnbjsKKworCQlzaXplayA9IDEgPDwgYWxpZ247CisJCWlmIChkZWJ1Z19wcmludCkKKwkJCXByaW50ayhLRVJOX0RFQlVHICJTZXR0aW5nIHZhcmlhYmxlIE1UUlIgJWQsICIKKwkJCQkiYmFzZTogJWxkTUIsIHJhbmdlOiAlbGRNQiwgdHlwZSAlc1xuIiwKKwkJCQlyZWcsIHJhbmdlX3N0YXJ0ayA+PiAxMCwgc2l6ZWsgPj4gMTAsCisJCQkJKHR5cGUgPT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUpPyJVQyI6CisJCQkJICAgICgodHlwZSA9PSBNVFJSX1RZUEVfV1JCQUNLKT8iV0IiOiJPdGhlciIpCisJCQkJKTsKKwkJc2F2ZV92YXJfbXRycihyZWcrKywgcmFuZ2Vfc3RhcnRrLCBzaXplaywgdHlwZSk7CisJCXJhbmdlX3N0YXJ0ayArPSBzaXplazsKKwkJcmFuZ2Vfc2l6ZWsgLT0gc2l6ZWs7CisJCWlmIChyZWcgPj0gbnVtX3Zhcl9yYW5nZXMpCisJCQlicmVhazsKKwl9CisJcmV0dXJuIHJlZzsKK30KKworc3RhdGljIHVuc2lnbmVkIF9faW5pdAorcmFuZ2VfdG9fbXRycl93aXRoX2hvbGUoc3RydWN0IHZhcl9tdHJyX3N0YXRlICpzdGF0ZSwgdW5zaWduZWQgbG9uZyBiYXNlaywKKwkJCXVuc2lnbmVkIGxvbmcgc2l6ZWspCit7CisJdW5zaWduZWQgbG9uZyBob2xlX2Jhc2VrLCBob2xlX3NpemVrOworCXVuc2lnbmVkIGxvbmcgc2Vjb25kX2Jhc2VrLCBzZWNvbmRfc2l6ZWs7CisJdW5zaWduZWQgbG9uZyByYW5nZTBfYmFzZWssIHJhbmdlMF9zaXplazsKKwl1bnNpZ25lZCBsb25nIHJhbmdlX2Jhc2VrLCByYW5nZV9zaXplazsKKwl1bnNpZ25lZCBsb25nIGNodW5rX3NpemVrOworCXVuc2lnbmVkIGxvbmcgZ3Jhbl9zaXplazsKKworCWhvbGVfYmFzZWsgPSAwOworCWhvbGVfc2l6ZWsgPSAwOworCXNlY29uZF9iYXNlayA9IDA7CisJc2Vjb25kX3NpemVrID0gMDsKKwljaHVua19zaXplayA9IHN0YXRlLT5jaHVua19zaXplazsKKwlncmFuX3NpemVrID0gc3RhdGUtPmdyYW5fc2l6ZWs7CisKKwkvKiBhbGlnbiB3aXRoIGdyYW4gc2l6ZSwgcHJldmVudCBzbWFsbCBibG9jayB1c2VkIHVwIE1UUlJzICovCisJcmFuZ2VfYmFzZWsgPSBBTElHTihzdGF0ZS0+cmFuZ2Vfc3RhcnRrLCBncmFuX3NpemVrKTsKKwlpZiAoKHJhbmdlX2Jhc2VrID4gYmFzZWspICYmIGJhc2VrKQorCQlyZXR1cm4gc2Vjb25kX3NpemVrOworCXN0YXRlLT5yYW5nZV9zaXplayAtPSAocmFuZ2VfYmFzZWsgLSBzdGF0ZS0+cmFuZ2Vfc3RhcnRrKTsKKwlyYW5nZV9zaXplayA9IEFMSUdOKHN0YXRlLT5yYW5nZV9zaXplaywgZ3Jhbl9zaXplayk7CisKKwl3aGlsZSAocmFuZ2Vfc2l6ZWsgPiBzdGF0ZS0+cmFuZ2Vfc2l6ZWspIHsKKwkJcmFuZ2Vfc2l6ZWsgLT0gZ3Jhbl9zaXplazsKKwkJaWYgKCFyYW5nZV9zaXplaykKKwkJCXJldHVybiAwOworCX0KKwlzdGF0ZS0+cmFuZ2Vfc2l6ZWsgPSByYW5nZV9zaXplazsKKworCS8qIHRyeSB0byBhcHBlbmQgc29tZSBzbWFsbCBob2xlICovCisJcmFuZ2UwX2Jhc2VrID0gc3RhdGUtPnJhbmdlX3N0YXJ0azsKKwlyYW5nZTBfc2l6ZWsgPSBBTElHTihzdGF0ZS0+cmFuZ2Vfc2l6ZWssIGNodW5rX3NpemVrKTsKKwlpZiAocmFuZ2UwX3NpemVrID09IHN0YXRlLT5yYW5nZV9zaXplaykgeworCQlpZiAoZGVidWdfcHJpbnQpCisJCQlwcmludGsoS0VSTl9ERUJVRyAicmFuZ2VYOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJcmFuZ2UwX2Jhc2VrPDwxMCwKKwkJCQkocmFuZ2UwX2Jhc2VrICsgc3RhdGUtPnJhbmdlX3NpemVrKTw8MTApOworCQlzdGF0ZS0+cmVnID0gcmFuZ2VfdG9fbXRycihzdGF0ZS0+cmVnLCByYW5nZTBfYmFzZWssCisJCQkJc3RhdGUtPnJhbmdlX3NpemVrLCBNVFJSX1RZUEVfV1JCQUNLKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmFuZ2UwX3NpemVrIC09IGNodW5rX3NpemVrOworCWlmIChyYW5nZTBfc2l6ZWsgJiYgc2l6ZWspIHsKKwkgICAgd2hpbGUgKHJhbmdlMF9iYXNlayArIHJhbmdlMF9zaXplayA+IChiYXNlayArIHNpemVrKSkgeworCQlyYW5nZTBfc2l6ZWsgLT0gY2h1bmtfc2l6ZWs7CisJCWlmICghcmFuZ2UwX3NpemVrKQorCQkJYnJlYWs7CisJICAgIH0KKwl9CisKKwlpZiAocmFuZ2UwX3NpemVrKSB7CisJCWlmIChkZWJ1Z19wcmludCkKKwkJCXByaW50ayhLRVJOX0RFQlVHICJyYW5nZTA6ICUwMTZseCAtICUwMTZseFxuIiwKKwkJCQlyYW5nZTBfYmFzZWs8PDEwLAorCQkJCShyYW5nZTBfYmFzZWsgKyByYW5nZTBfc2l6ZWspPDwxMCk7CisJCXN0YXRlLT5yZWcgPSByYW5nZV90b19tdHJyKHN0YXRlLT5yZWcsIHJhbmdlMF9iYXNlaywKKwkJCQlyYW5nZTBfc2l6ZWssIE1UUlJfVFlQRV9XUkJBQ0spOworCisJfQorCisJcmFuZ2VfYmFzZWsgPSByYW5nZTBfYmFzZWsgKyByYW5nZTBfc2l6ZWs7CisJcmFuZ2Vfc2l6ZWsgPSBjaHVua19zaXplazsKKworCWlmIChyYW5nZV9iYXNlayArIHJhbmdlX3NpemVrID4gYmFzZWsgJiYKKwkgICAgcmFuZ2VfYmFzZWsgKyByYW5nZV9zaXplayA8PSAoYmFzZWsgKyBzaXplaykpIHsKKwkJLyogb25lIGhvbGUgKi8KKwkJc2Vjb25kX2Jhc2VrID0gYmFzZWs7CisJCXNlY29uZF9zaXplayA9IHJhbmdlX2Jhc2VrICsgcmFuZ2Vfc2l6ZWsgLSBiYXNlazsKKwl9CisKKwkvKiBpZiBsYXN0IHBpZWNlLCBvbmx5IGNvdWxkIG9uZSBob2xlIG5lYXIgZW5kICovCisJaWYgKChzZWNvbmRfYmFzZWsgfHwgIWJhc2VrKSAmJgorCSAgICByYW5nZV9zaXplayAtIChzdGF0ZS0+cmFuZ2Vfc2l6ZWsgLSByYW5nZTBfc2l6ZWspIC0gc2Vjb25kX3NpemVrIDwKKwkgICAgKGNodW5rX3NpemVrID4+IDEpKSB7CisJCS8qCisJCSAqIG9uZSBob2xlIGluIG1pZGRsZSAoc2Vjb25kX3NpemVrIGlzIDApIG9yIGF0IGVuZAorCQkgKiAoc2Vjb25kX3NpemVrIGlzIDAgKQorCQkgKi8KKwkJaG9sZV9zaXplayA9IHJhbmdlX3NpemVrIC0gKHN0YXRlLT5yYW5nZV9zaXplayAtIHJhbmdlMF9zaXplaykKKwkJCQkgLSBzZWNvbmRfc2l6ZWs7CisJCWhvbGVfYmFzZWsgPSByYW5nZV9iYXNlayArIHJhbmdlX3NpemVrIC0gaG9sZV9zaXplaworCQkJCSAtIHNlY29uZF9zaXplazsKKwl9IGVsc2UgeworCQkvKiBmYWxsYmFjayBmb3IgYmlnIGhvbGUsIG9yIHNldmVyYWwgaG9sZXMgKi8KKwkJcmFuZ2Vfc2l6ZWsgPSBzdGF0ZS0+cmFuZ2Vfc2l6ZWsgLSByYW5nZTBfc2l6ZWs7CisJCXNlY29uZF9iYXNlayA9IDA7CisJCXNlY29uZF9zaXplayA9IDA7CisJfQorCisJaWYgKGRlYnVnX3ByaW50KQorCQlwcmludGsoS0VSTl9ERUJVRyAicmFuZ2U6ICUwMTZseCAtICUwMTZseFxuIiwgcmFuZ2VfYmFzZWs8PDEwLAorCQkJIChyYW5nZV9iYXNlayArIHJhbmdlX3NpemVrKTw8MTApOworCXN0YXRlLT5yZWcgPSByYW5nZV90b19tdHJyKHN0YXRlLT5yZWcsIHJhbmdlX2Jhc2VrLCByYW5nZV9zaXplaywKKwkJCQkJIE1UUlJfVFlQRV9XUkJBQ0spOworCWlmIChob2xlX3NpemVrKSB7CisJCWlmIChkZWJ1Z19wcmludCkKKwkJCXByaW50ayhLRVJOX0RFQlVHICJob2xlOiAlMDE2bHggLSAlMDE2bHhcbiIsCisJCQkJIGhvbGVfYmFzZWs8PDEwLCAoaG9sZV9iYXNlayArIGhvbGVfc2l6ZWspPDwxMCk7CisJCXN0YXRlLT5yZWcgPSByYW5nZV90b19tdHJyKHN0YXRlLT5yZWcsIGhvbGVfYmFzZWssIGhvbGVfc2l6ZWssCisJCQkJCQkgTVRSUl9UWVBFX1VOQ0FDSEFCTEUpOworCisJfQorCisJcmV0dXJuIHNlY29uZF9zaXplazsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzZXRfdmFyX210cnJfcmFuZ2Uoc3RydWN0IHZhcl9tdHJyX3N0YXRlICpzdGF0ZSwgdW5zaWduZWQgbG9uZyBiYXNlX3BmbiwKKwkJICAgdW5zaWduZWQgbG9uZyBzaXplX3BmbikKK3sKKwl1bnNpZ25lZCBsb25nIGJhc2VrLCBzaXplazsKKwl1bnNpZ25lZCBsb25nIHNlY29uZF9zaXplayA9IDA7CisKKwlpZiAoc3RhdGUtPnJlZyA+PSBudW1fdmFyX3JhbmdlcykKKwkJcmV0dXJuOworCisJYmFzZWsgPSBiYXNlX3BmbiA8PCAoUEFHRV9TSElGVCAtIDEwKTsKKwlzaXplayA9IHNpemVfcGZuIDw8IChQQUdFX1NISUZUIC0gMTApOworCisJLyogU2VlIGlmIEkgY2FuIG1lcmdlIHdpdGggdGhlIGxhc3QgcmFuZ2UgKi8KKwlpZiAoKGJhc2VrIDw9IDEwMjQpIHx8CisJICAgIChzdGF0ZS0+cmFuZ2Vfc3RhcnRrICsgc3RhdGUtPnJhbmdlX3NpemVrID09IGJhc2VrKSkgeworCQl1bnNpZ25lZCBsb25nIGVuZGsgPSBiYXNlayArIHNpemVrOworCQlzdGF0ZS0+cmFuZ2Vfc2l6ZWsgPSBlbmRrIC0gc3RhdGUtPnJhbmdlX3N0YXJ0azsKKwkJcmV0dXJuOworCX0KKwkvKiBXcml0ZSB0aGUgcmFuZ2UgbXRycnMgKi8KKwlpZiAoc3RhdGUtPnJhbmdlX3NpemVrICE9IDApCisJCXNlY29uZF9zaXplayA9IHJhbmdlX3RvX210cnJfd2l0aF9ob2xlKHN0YXRlLCBiYXNlaywgc2l6ZWspOworCisJLyogQWxsb2NhdGUgYW4gbXNyICovCisJc3RhdGUtPnJhbmdlX3N0YXJ0ayA9IGJhc2VrICsgc2Vjb25kX3NpemVrOworCXN0YXRlLT5yYW5nZV9zaXplayAgPSBzaXplayAtIHNlY29uZF9zaXplazsKK30KKworLyogbWluaW51bSBzaXplIG9mIG10cnIgYmxvY2sgdGhhdCBjYW4gdGFrZSBob2xlICovCitzdGF0aWMgdTY0IG10cnJfY2h1bmtfc2l6ZSBfX2luaXRkYXRhID0gKDI1NlVMTDw8MjApOworCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tdHJyX2NodW5rX3NpemVfb3B0KGNoYXIgKnApCit7CisJaWYgKCFwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwltdHJyX2NodW5rX3NpemUgPSBtZW1wYXJzZShwLCAmcCk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgibXRycl9jaHVua19zaXplIiwgcGFyc2VfbXRycl9jaHVua19zaXplX29wdCk7CisKKy8qIGdyYW5pdHkgb2YgbXRyciBvZiBibG9jayAqLworc3RhdGljIHU2NCBtdHJyX2dyYW5fc2l6ZSBfX2luaXRkYXRhOworCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tdHJyX2dyYW5fc2l6ZV9vcHQoY2hhciAqcCkKK3sKKwlpZiAoIXApCisJCXJldHVybiAtRUlOVkFMOworCW10cnJfZ3Jhbl9zaXplID0gbWVtcGFyc2UocCwgJnApOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oIm10cnJfZ3Jhbl9zaXplIiwgcGFyc2VfbXRycl9ncmFuX3NpemVfb3B0KTsKKworc3RhdGljIGludCBucl9tdHJyX3NwYXJlX3JlZyBfX2luaXRkYXRhID0KKwkJCQkgQ09ORklHX01UUlJfU0FOSVRJWkVSX1NQQVJFX1JFR19OUl9ERUZBVUxUOworCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tdHJyX3NwYXJlX3JlZyhjaGFyICphcmcpCit7CisJaWYgKGFyZykKKwkJbnJfbXRycl9zcGFyZV9yZWcgPSBzaW1wbGVfc3RydG91bChhcmcsIE5VTEwsIDApOworCXJldHVybiAwOworfQorCitlYXJseV9wYXJhbSgibXRycl9zcGFyZV9yZWdfbnIiLCBwYXJzZV9tdHJyX3NwYXJlX3JlZyk7CisKK3N0YXRpYyBpbnQgX19pbml0Cit4ODZfc2V0dXBfdmFyX210cnJzKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBpbnQgbnJfcmFuZ2UsCisJCSAgICB1NjQgY2h1bmtfc2l6ZSwgdTY0IGdyYW5fc2l6ZSkKK3sKKwlzdHJ1Y3QgdmFyX210cnJfc3RhdGUgdmFyX3N0YXRlOworCWludCBpOworCWludCBudW1fcmVnOworCisJdmFyX3N0YXRlLnJhbmdlX3N0YXJ0awk9IDA7CisJdmFyX3N0YXRlLnJhbmdlX3NpemVrCT0gMDsKKwl2YXJfc3RhdGUucmVnCQk9IDA7CisJdmFyX3N0YXRlLmNodW5rX3NpemVrCT0gY2h1bmtfc2l6ZSA+PiAxMDsKKwl2YXJfc3RhdGUuZ3Jhbl9zaXplawk9IGdyYW5fc2l6ZSA+PiAxMDsKKworCW1lbXNldChyYW5nZV9zdGF0ZSwgMCwgc2l6ZW9mKHJhbmdlX3N0YXRlKSk7CisKKwkvKiBXcml0ZSB0aGUgcmFuZ2UgZXRjICovCisJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCXNldF92YXJfbXRycl9yYW5nZSgmdmFyX3N0YXRlLCByYW5nZVtpXS5zdGFydCwKKwkJCQkgICByYW5nZVtpXS5lbmQgLSByYW5nZVtpXS5zdGFydCArIDEpOworCisJLyogV3JpdGUgdGhlIGxhc3QgcmFuZ2UgKi8KKwlpZiAodmFyX3N0YXRlLnJhbmdlX3NpemVrICE9IDApCisJCXJhbmdlX3RvX210cnJfd2l0aF9ob2xlKCZ2YXJfc3RhdGUsIDAsIDApOworCisJbnVtX3JlZyA9IHZhcl9zdGF0ZS5yZWc7CisJLyogQ2xlYXIgb3V0IHRoZSBleHRyYSBNVFJSJ3MgKi8KKwl3aGlsZSAodmFyX3N0YXRlLnJlZyA8IG51bV92YXJfcmFuZ2VzKSB7CisJCXNhdmVfdmFyX210cnIodmFyX3N0YXRlLnJlZywgMCwgMCwgMCk7CisJCXZhcl9zdGF0ZS5yZWcrKzsKKwl9CisKKwlyZXR1cm4gbnVtX3JlZzsKK30KKworc3RydWN0IG10cnJfY2xlYW51cF9yZXN1bHQgeworCXVuc2lnbmVkIGxvbmcgZ3Jhbl9zaXplazsKKwl1bnNpZ25lZCBsb25nIGNodW5rX3NpemVrOworCXVuc2lnbmVkIGxvbmcgbG9zZV9jb3Zlcl9zaXplazsKKwl1bnNpZ25lZCBpbnQgbnVtX3JlZzsKKwlpbnQgYmFkOworfTsKKworLyoKKyAqIGdyYW5fc2l6ZTogMU0sIDJNLCAuLi4sIDJHCisgKiBjaHVuayBzaXplOiBncmFuX3NpemUsIC4uLiwgNEcKKyAqIHNvIHdlIG5lZWQgKDIrMTMpKjYKKyAqLworI2RlZmluZSBOVU1fUkVTVUxUCTkwCisjZGVmaW5lIFBTSElGVAkJKFBBR0VfU0hJRlQgLSAxMCkKKworc3RhdGljIHN0cnVjdCBtdHJyX2NsZWFudXBfcmVzdWx0IF9faW5pdGRhdGEgcmVzdWx0W05VTV9SRVNVTFRdOworc3RhdGljIHN0cnVjdCByZXNfcmFuZ2UgX19pbml0ZGF0YSByYW5nZV9uZXdbUkFOR0VfTlVNXTsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbWluX2xvc3NfcGZuW1JBTkdFX05VTV07CisKK3N0YXRpYyBpbnQgX19pbml0IG10cnJfY2xlYW51cCh1bnNpZ25lZCBhZGRyZXNzX2JpdHMpCit7CisJdW5zaWduZWQgbG9uZyBleHRyYV9yZW1vdmVfYmFzZSwgZXh0cmFfcmVtb3ZlX3NpemU7CisJdW5zaWduZWQgbG9uZyBpLCBiYXNlLCBzaXplLCBkZWYsIGR1bW15OworCW10cnJfdHlwZSB0eXBlOworCWludCBucl9yYW5nZSwgbnJfcmFuZ2VfbmV3OworCXU2NCBjaHVua19zaXplLCBncmFuX3NpemU7CisJdW5zaWduZWQgbG9uZyByYW5nZV9zdW1zLCByYW5nZV9zdW1zX25ldzsKKwlpbnQgaW5kZXhfZ29vZDsKKwlpbnQgbnVtX3JlZ19nb29kOworCisJLyogZXh0cmEgb25lIGZvciBhbGwgMCAqLworCWludCBudW1bTVRSUl9OVU1fVFlQRVMgKyAxXTsKKworCWlmICghaXNfY3B1KElOVEVMKSB8fCBlbmFibGVfbXRycl9jbGVhbnVwIDwgMSkKKwkJcmV0dXJuIDA7CisJcmRtc3IoTVRSUmRlZlR5cGVfTVNSLCBkZWYsIGR1bW15KTsKKwlkZWYgJj0gMHhmZjsKKwlpZiAoZGVmICE9IE1UUlJfVFlQRV9VTkNBQ0hBQkxFKQorCQlyZXR1cm4gMDsKKworCS8qIGdldCBpdCBhbmQgc3RvcmUgaXQgYXNpZGUgKi8KKwltZW1zZXQocmFuZ2Vfc3RhdGUsIDAsIHNpemVvZihyYW5nZV9zdGF0ZSkpOworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCW10cnJfaWYtPmdldChpLCAmYmFzZSwgJnNpemUsICZ0eXBlKTsKKwkJcmFuZ2Vfc3RhdGVbaV0uYmFzZV9wZm4gPSBiYXNlOworCQlyYW5nZV9zdGF0ZVtpXS5zaXplX3BmbiA9IHNpemU7CisJCXJhbmdlX3N0YXRlW2ldLnR5cGUgPSB0eXBlOworCX0KKworCS8qIGNoZWNrIGVudHJpZXMgbnVtYmVyICovCisJbWVtc2V0KG51bSwgMCwgc2l6ZW9mKG51bSkpOworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtpXS50eXBlOworCQlzaXplID0gcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm47CisJCWlmICh0eXBlID49IE1UUlJfTlVNX1RZUEVTKQorCQkJY29udGludWU7CisJCWlmICghc2l6ZSkKKwkJCXR5cGUgPSBNVFJSX05VTV9UWVBFUzsKKwkJbnVtW3R5cGVdKys7CisJfQorCisJLyogY2hlY2sgaWYgd2UgZ290IFVDIGVudHJpZXMgKi8KKwlpZiAoIW51bVtNVFJSX1RZUEVfVU5DQUNIQUJMRV0pCisJCXJldHVybiAwOworCisJLyogY2hlY2sgaWYgd2Ugb25seSBoYWQgV0IgYW5kIFVDICovCisJaWYgKG51bVtNVFJSX1RZUEVfV1JCQUNLXSArIG51bVtNVFJSX1RZUEVfVU5DQUNIQUJMRV0gIT0KKwkJbnVtX3Zhcl9yYW5nZXMgLSBudW1bTVRSUl9OVU1fVFlQRVNdKQorCQlyZXR1cm4gMDsKKworCW1lbXNldChyYW5nZSwgMCwgc2l6ZW9mKHJhbmdlKSk7CisJZXh0cmFfcmVtb3ZlX3NpemUgPSAwOworCWlmIChtdHJyX3RvbTIpIHsKKwkJZXh0cmFfcmVtb3ZlX2Jhc2UgPSAxIDw8ICgzMiAtIFBBR0VfU0hJRlQpOworCQlleHRyYV9yZW1vdmVfc2l6ZSA9CisJCQkobXRycl90b20yID4+IFBBR0VfU0hJRlQpIC0gZXh0cmFfcmVtb3ZlX2Jhc2U7CisJfQorCW5yX3JhbmdlID0geDg2X2dldF9tdHJyX21lbV9yYW5nZShyYW5nZSwgMCwgZXh0cmFfcmVtb3ZlX2Jhc2UsCisJCQkJCSAgZXh0cmFfcmVtb3ZlX3NpemUpOworCXJhbmdlX3N1bXMgPSBzdW1fcmFuZ2VzKHJhbmdlLCBucl9yYW5nZSk7CisJcHJpbnRrKEtFUk5fSU5GTyAidG90YWwgUkFNIGNvdmVycmVkOiAlbGRNXG4iLAorCSAgICAgICByYW5nZV9zdW1zID4+ICgyMCAtIFBBR0VfU0hJRlQpKTsKKworCWlmIChtdHJyX2NodW5rX3NpemUgJiYgbXRycl9ncmFuX3NpemUpIHsKKwkJaW50IG51bV9yZWc7CisKKwkJZGVidWdfcHJpbnQgPSAxOworCQkvKiBjb252ZXJ0IHJhbmdlcyB0byB2YXIgcmFuZ2VzIHN0YXRlICovCisJCW51bV9yZWcgPSB4ODZfc2V0dXBfdmFyX210cnJzKHJhbmdlLCBucl9yYW5nZSwgbXRycl9jaHVua19zaXplLAorCQkJCQkgICAgICBtdHJyX2dyYW5fc2l6ZSk7CisKKwkJLyogd2UgZ290IG5ldyBzZXR0aW5nIGluIHJhbmdlX3N0YXRlLCBjaGVjayBpdCAqLworCQltZW1zZXQocmFuZ2VfbmV3LCAwLCBzaXplb2YocmFuZ2VfbmV3KSk7CisJCW5yX3JhbmdlX25ldyA9IHg4Nl9nZXRfbXRycl9tZW1fcmFuZ2UocmFuZ2VfbmV3LCAwLAorCQkJCQkJICAgICAgZXh0cmFfcmVtb3ZlX2Jhc2UsCisJCQkJCQkgICAgICBleHRyYV9yZW1vdmVfc2l6ZSk7CisJCXJhbmdlX3N1bXNfbmV3ID0gc3VtX3JhbmdlcyhyYW5nZV9uZXcsIG5yX3JhbmdlX25ldyk7CisKKwkJaSA9IDA7CisJCXJlc3VsdFtpXS5jaHVua19zaXplayA9IG10cnJfY2h1bmtfc2l6ZSA+PiAxMDsKKwkJcmVzdWx0W2ldLmdyYW5fc2l6ZWsgPSBtdHJyX2dyYW5fc2l6ZSA+PiAxMDsKKwkJcmVzdWx0W2ldLm51bV9yZWcgPSBudW1fcmVnOworCQlpZiAocmFuZ2Vfc3VtcyA8IHJhbmdlX3N1bXNfbmV3KSB7CisJCQlyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA9CisJCQkJKHJhbmdlX3N1bXNfbmV3IC0gcmFuZ2Vfc3VtcykgPDwgUFNISUZUOworCQkJcmVzdWx0W2ldLmJhZCA9IDE7CisJCX0gZWxzZQorCQkJcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWsgPQorCQkJCShyYW5nZV9zdW1zIC0gcmFuZ2Vfc3Vtc19uZXcpIDw8IFBTSElGVDsKKworCQlwcmludGsoS0VSTl9JTkZPICIlc2dyYW5fc2l6ZTogJWxkTSBcdGNodW5rX3NpemU6ICVsZE0gXHQiLAorCQkJIHJlc3VsdFtpXS5iYWQ/IipCQUQqIjoiICIsIHJlc3VsdFtpXS5ncmFuX3NpemVrID4+IDEwLAorCQkJIHJlc3VsdFtpXS5jaHVua19zaXplayA+PiAxMCk7CisJCXByaW50ayhLRVJOX0NPTlQgIm51bV9yZWc6ICVkICBcdGxvc2UgY292ZXIgUkFNOiAlcyVsZE0gXG4iLAorCQkJIHJlc3VsdFtpXS5udW1fcmVnLCByZXN1bHRbaV0uYmFkPyItIjoiIiwKKwkJCSByZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA+PiAxMCk7CisJCWlmICghcmVzdWx0W2ldLmJhZCkgeworCQkJc2V0X3Zhcl9tdHJyX2FsbChhZGRyZXNzX2JpdHMpOworCQkJcmV0dXJuIDE7CisJCX0KKwkJcHJpbnRrKEtFUk5fSU5GTyAiaW52YWxpZCBtdHJyX2dyYW5fc2l6ZSBvciBtdHJyX2NodW5rX3NpemUsICIKKwkJICAgICAgICJ3aWxsIGZpbmQgb3B0aW1hbCBvbmVcbiIpOworCQlkZWJ1Z19wcmludCA9IDA7CisJCW1lbXNldChyZXN1bHQsIDAsIHNpemVvZihyZXN1bHRbMF0pKTsKKwl9CisKKwlpID0gMDsKKwltZW1zZXQobWluX2xvc3NfcGZuLCAweGZmLCBzaXplb2YobWluX2xvc3NfcGZuKSk7CisJbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOworCWZvciAoZ3Jhbl9zaXplID0gKDFVTEw8PDIwKTsgZ3Jhbl9zaXplIDwgKDFVTEw8PDMyKTsgZ3Jhbl9zaXplIDw8PSAxKSB7CisJCWZvciAoY2h1bmtfc2l6ZSA9IGdyYW5fc2l6ZTsgY2h1bmtfc2l6ZSA8ICgxVUxMPDwzMyk7CisJCSAgICAgY2h1bmtfc2l6ZSA8PD0gMSkgeworCQkJaW50IG51bV9yZWc7CisKKwkJCWlmIChkZWJ1Z19wcmludCkKKwkJCQlwcmludGsoS0VSTl9JTkZPCisJCQkgICAgICAgIlxuZ3Jhbl9zaXplOiAlbGxkTSAgIGNodW5rX3NpemVfc2l6ZTogJWxsZE1cbiIsCisJCQkJICAgICAgIGdyYW5fc2l6ZSA+PiAyMCwgY2h1bmtfc2l6ZSA+PiAyMCk7CisJCQlpZiAoaSA+PSBOVU1fUkVTVUxUKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBjb252ZXJ0IHJhbmdlcyB0byB2YXIgcmFuZ2VzIHN0YXRlICovCisJCQludW1fcmVnID0geDg2X3NldHVwX3Zhcl9tdHJycyhyYW5nZSwgbnJfcmFuZ2UsCisJCQkJCQkJIGNodW5rX3NpemUsIGdyYW5fc2l6ZSk7CisKKwkJCS8qIHdlIGdvdCBuZXcgc2V0dGluZyBpbiByYW5nZV9zdGF0ZSwgY2hlY2sgaXQgKi8KKwkJCW1lbXNldChyYW5nZV9uZXcsIDAsIHNpemVvZihyYW5nZV9uZXcpKTsKKwkJCW5yX3JhbmdlX25ldyA9IHg4Nl9nZXRfbXRycl9tZW1fcmFuZ2UocmFuZ2VfbmV3LCAwLAorCQkJCQkgZXh0cmFfcmVtb3ZlX2Jhc2UsIGV4dHJhX3JlbW92ZV9zaXplKTsKKwkJCXJhbmdlX3N1bXNfbmV3ID0gc3VtX3JhbmdlcyhyYW5nZV9uZXcsIG5yX3JhbmdlX25ldyk7CisKKwkJCXJlc3VsdFtpXS5jaHVua19zaXplayA9IGNodW5rX3NpemUgPj4gMTA7CisJCQlyZXN1bHRbaV0uZ3Jhbl9zaXplayA9IGdyYW5fc2l6ZSA+PiAxMDsKKwkJCXJlc3VsdFtpXS5udW1fcmVnID0gbnVtX3JlZzsKKwkJCWlmIChyYW5nZV9zdW1zIDwgcmFuZ2Vfc3Vtc19uZXcpIHsKKwkJCQlyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA9CisJCQkJCShyYW5nZV9zdW1zX25ldyAtIHJhbmdlX3N1bXMpIDw8IFBTSElGVDsKKwkJCQlyZXN1bHRbaV0uYmFkID0gMTsKKwkJCX0gZWxzZQorCQkJCXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID0KKwkJCQkJKHJhbmdlX3N1bXMgLSByYW5nZV9zdW1zX25ldykgPDwgUFNISUZUOworCisJCQkvKiBkb3VibGUgY2hlY2sgaXQgKi8KKwkJCWlmICghcmVzdWx0W2ldLmJhZCAmJiAhcmVzdWx0W2ldLmxvc2VfY292ZXJfc2l6ZWspIHsKKwkJCQlpZiAobnJfcmFuZ2VfbmV3ICE9IG5yX3JhbmdlIHx8CisJCQkJCW1lbWNtcChyYW5nZSwgcmFuZ2VfbmV3LCBzaXplb2YocmFuZ2UpKSkKKwkJCQkJCXJlc3VsdFtpXS5iYWQgPSAxOworCQkJfQorCisJCQlpZiAoIXJlc3VsdFtpXS5iYWQgJiYgKHJhbmdlX3N1bXMgLSByYW5nZV9zdW1zX25ldyA8CisJCQkJCSAgICAgICBtaW5fbG9zc19wZm5bbnVtX3JlZ10pKSB7CisJCQkJbWluX2xvc3NfcGZuW251bV9yZWddID0KKwkJCQkJcmFuZ2Vfc3VtcyAtIHJhbmdlX3N1bXNfbmV3OworCQkJfQorCQkJaSsrOworCQl9CisJfQorCisJLyogcHJpbnQgb3V0IGFsbCAqLworCWZvciAoaSA9IDA7IGkgPCBOVU1fUkVTVUxUOyBpKyspIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXNncmFuX3NpemU6ICVsZE0gXHRjaHVua19zaXplOiAlbGRNIFx0IiwKKwkJICAgICAgIHJlc3VsdFtpXS5iYWQ/IipCQUQqICI6IiAiLCByZXN1bHRbaV0uZ3Jhbl9zaXplayA+PiAxMCwKKwkJICAgICAgIHJlc3VsdFtpXS5jaHVua19zaXplayA+PiAxMCk7CisJCXByaW50ayhLRVJOX0NPTlQgIm51bV9yZWc6ICVkIFx0bG9zZSBSQU06ICVzJWxkTVxuIiwKKwkJICAgICAgIHJlc3VsdFtpXS5udW1fcmVnLCByZXN1bHRbaV0uYmFkPyItIjoiIiwKKwkJICAgICAgIHJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrID4+IDEwKTsKKwl9CisKKwkvKiB0cnkgdG8gZmluZCB0aGUgb3B0aW1hbCBpbmRleCAqLworCWlmIChucl9tdHJyX3NwYXJlX3JlZyA+PSBudW1fdmFyX3JhbmdlcykKKwkJbnJfbXRycl9zcGFyZV9yZWcgPSBudW1fdmFyX3JhbmdlcyAtIDE7CisJbnVtX3JlZ19nb29kID0gLTE7CisJZm9yIChpID0gbnVtX3Zhcl9yYW5nZXMgLSBucl9tdHJyX3NwYXJlX3JlZzsgaSA+IDA7IGktLSkgeworCQlpZiAoIW1pbl9sb3NzX3BmbltpXSkgeworCQkJbnVtX3JlZ19nb29kID0gaTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaW5kZXhfZ29vZCA9IC0xOworCWlmIChudW1fcmVnX2dvb2QgIT0gLTEpIHsKKwkJZm9yIChpID0gMDsgaSA8IE5VTV9SRVNVTFQ7IGkrKykgeworCQkJaWYgKCFyZXN1bHRbaV0uYmFkICYmCisJCQkgICAgcmVzdWx0W2ldLm51bV9yZWcgPT0gbnVtX3JlZ19nb29kICYmCisJCQkgICAgIXJlc3VsdFtpXS5sb3NlX2NvdmVyX3NpemVrKSB7CisJCQkJaW5kZXhfZ29vZCA9IGk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlpZiAoaW5kZXhfZ29vZCAhPSAtMSkgeworCQlwcmludGsoS0VSTl9JTkZPICJGb3VuZCBvcHRpbWFsIHNldHRpbmcgZm9yIG10cnIgY2xlYW4gdXBcbiIpOworCQlpID0gaW5kZXhfZ29vZDsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiZ3Jhbl9zaXplOiAlbGRNIFx0Y2h1bmtfc2l6ZTogJWxkTSBcdCIsCisJCQkJcmVzdWx0W2ldLmdyYW5fc2l6ZWsgPj4gMTAsCisJCQkJcmVzdWx0W2ldLmNodW5rX3NpemVrID4+IDEwKTsKKwkJcHJpbnRrKEtFUk5fQ09OVCAibnVtX3JlZzogJWQgXHRsb3NlIFJBTTogJWxkTVxuIiwKKwkJCQlyZXN1bHRbaV0ubnVtX3JlZywKKwkJCQlyZXN1bHRbaV0ubG9zZV9jb3Zlcl9zaXplayA+PiAxMCk7CisJCS8qIGNvbnZlcnQgcmFuZ2VzIHRvIHZhciByYW5nZXMgc3RhdGUgKi8KKwkJY2h1bmtfc2l6ZSA9IHJlc3VsdFtpXS5jaHVua19zaXplazsKKwkJY2h1bmtfc2l6ZSA8PD0gMTA7CisJCWdyYW5fc2l6ZSA9IHJlc3VsdFtpXS5ncmFuX3NpemVrOworCQlncmFuX3NpemUgPDw9IDEwOworCQlkZWJ1Z19wcmludCA9IDE7CisJCXg4Nl9zZXR1cF92YXJfbXRycnMocmFuZ2UsIG5yX3JhbmdlLCBjaHVua19zaXplLCBncmFuX3NpemUpOworCQlzZXRfdmFyX210cnJfYWxsKGFkZHJlc3NfYml0cyk7CisJCXJldHVybiAxOworCX0KKworCXByaW50ayhLRVJOX0lORk8gIm10cnJfY2xlYW51cDogY2FuIG5vdCBmaW5kIG9wdGltYWwgdmFsdWVcbiIpOworCXByaW50ayhLRVJOX0lORk8gInBsZWFzZSBzcGVjaWZ5IG10cnJfZ3Jhbl9zaXplL210cnJfY2h1bmtfc2l6ZVxuIik7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlCitzdGF0aWMgaW50IF9faW5pdCBtdHJyX2NsZWFudXAodW5zaWduZWQgYWRkcmVzc19iaXRzKQoreworCXJldHVybiAwOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBjaGFuZ2VkX2J5X210cnJfY2xlYW51cDsKKwogc3RhdGljIGludCBkaXNhYmxlX210cnJfdHJpbTsKIAogc3RhdGljIGludCBfX2luaXQgZGlzYWJsZV9tdHJyX3RyaW1fc2V0dXAoY2hhciAqc3RyKQpAQCAtNjQ4LDYgKzE0MzAsMTkgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHU2NCBfX2luaXQgcmVhbF90cmltX21lbW9yeSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkgICB1bnNpZ25lZCBsb25nIGxpbWl0X3BmbikKK3sKKwl1NjQgdHJpbV9zdGFydCwgdHJpbV9zaXplOworCXRyaW1fc3RhcnQgPSBzdGFydF9wZm47CisJdHJpbV9zdGFydCA8PD0gUEFHRV9TSElGVDsKKwl0cmltX3NpemUgPSBsaW1pdF9wZm47CisJdHJpbV9zaXplIDw8PSBQQUdFX1NISUZUOworCXRyaW1fc2l6ZSAtPSB0cmltX3N0YXJ0OworCisJcmV0dXJuIGU4MjBfdXBkYXRlX3JhbmdlKHRyaW1fc3RhcnQsIHRyaW1fc2l6ZSwgRTgyMF9SQU0sCisJCQkJRTgyMF9SRVNFUlZFRCk7Cit9CiAvKioKICAqIG10cnJfdHJpbV91bmNhY2hlZF9tZW1vcnkgLSB0cmltIFJBTSBub3QgY292ZXJlZCBieSBNVFJScwogICogQGVuZF9wZm46IGVuZGluZyBwYWdlIGZyYW1lIG51bWJlcgpAQCAtNjYzLDggKzE0NTgsMTEgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGksIGJhc2UsIHNpemUsIGhpZ2hlc3RfcGZuID0gMCwgZGVmLCBkdW1teTsKIAltdHJyX3R5cGUgdHlwZTsKLQl1NjQgdHJpbV9zdGFydCwgdHJpbV9zaXplOworCWludCBucl9yYW5nZTsKKwl1NjQgdG90YWxfdHJpbV9zaXplOwogCisJLyogZXh0cmEgb25lIGZvciBhbGwgMCAqLworCWludCBudW1bTVRSUl9OVU1fVFlQRVMgKyAxXTsKIAkvKgogCSAqIE1ha2Ugc3VyZSB3ZSBvbmx5IHRyaW0gdW5jYWNoYWJsZSBtZW1vcnkgb24gbWFjaGluZXMgdGhhdAogCSAqIHN1cHBvcnQgdGhlIEludGVsIE1UUlIgYXJjaGl0ZWN0dXJlOgpAQCAtNjc2LDE0ICsxNDc0LDIyIEBACiAJaWYgKGRlZiAhPSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoYW1kX3NwZWNpYWxfZGVmYXVsdF9tdHJyKCkpCi0JCXJldHVybiAwOworCS8qIGdldCBpdCBhbmQgc3RvcmUgaXQgYXNpZGUgKi8KKwltZW1zZXQocmFuZ2Vfc3RhdGUsIDAsIHNpemVvZihyYW5nZV9zdGF0ZSkpOworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCW10cnJfaWYtPmdldChpLCAmYmFzZSwgJnNpemUsICZ0eXBlKTsKKwkJcmFuZ2Vfc3RhdGVbaV0uYmFzZV9wZm4gPSBiYXNlOworCQlyYW5nZV9zdGF0ZVtpXS5zaXplX3BmbiA9IHNpemU7CisJCXJhbmdlX3N0YXRlW2ldLnR5cGUgPSB0eXBlOworCX0KIAogCS8qIEZpbmQgaGlnaGVzdCBjYWNoZWQgcGZuICovCiAJZm9yIChpID0gMDsgaSA8IG51bV92YXJfcmFuZ2VzOyBpKyspIHsKLQkJbXRycl9pZi0+Z2V0KGksICZiYXNlLCAmc2l6ZSwgJnR5cGUpOworCQl0eXBlID0gcmFuZ2Vfc3RhdGVbaV0udHlwZTsKIAkJaWYgKHR5cGUgIT0gTVRSUl9UWVBFX1dSQkFDSykKIAkJCWNvbnRpbnVlOworCQliYXNlID0gcmFuZ2Vfc3RhdGVbaV0uYmFzZV9wZm47CisJCXNpemUgPSByYW5nZV9zdGF0ZVtpXS5zaXplX3BmbjsKIAkJaWYgKGhpZ2hlc3RfcGZuIDwgYmFzZSArIHNpemUpCiAJCQloaWdoZXN0X3BmbiA9IGJhc2UgKyBzaXplOwogCX0KQEAgLTY5OCwyMiArMTUwNCw2NSBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlpZiAoaGlnaGVzdF9wZm4gPCBlbmRfcGZuKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IEJJT1MgYnVnOiBDUFUgTVRSUnMgZG9uJ3QgY292ZXIiCi0JCQkiIGFsbCBvZiBtZW1vcnksIGxvc2luZyAlbHVNQiBvZiBSQU0uXG4iLAotCQkJKGVuZF9wZm4gLSBoaWdoZXN0X3BmbikgPj4gKDIwIC0gUEFHRV9TSElGVCkpOworCS8qIGNoZWNrIGVudHJpZXMgbnVtYmVyICovCisJbWVtc2V0KG51bSwgMCwgc2l6ZW9mKG51bSkpOworCWZvciAoaSA9IDA7IGkgPCBudW1fdmFyX3JhbmdlczsgaSsrKSB7CisJCXR5cGUgPSByYW5nZV9zdGF0ZVtpXS50eXBlOworCQlpZiAodHlwZSA+PSBNVFJSX05VTV9UWVBFUykKKwkJCWNvbnRpbnVlOworCQlzaXplID0gcmFuZ2Vfc3RhdGVbaV0uc2l6ZV9wZm47CisJCWlmICghc2l6ZSkKKwkJCXR5cGUgPSBNVFJSX05VTV9UWVBFUzsKKwkJbnVtW3R5cGVdKys7CisJfQogCi0JCVdBUk5fT04oMSk7CisJLyogbm8gZW50cnkgZm9yIFdCPyAqLworCWlmICghbnVtW01UUlJfVFlQRV9XUkJBQ0tdKQorCQlyZXR1cm4gMDsKKworCS8qIGNoZWNrIGlmIHdlIG9ubHkgaGFkIFdCIGFuZCBVQyAqLworCWlmIChudW1bTVRSUl9UWVBFX1dSQkFDS10gKyBudW1bTVRSUl9UWVBFX1VOQ0FDSEFCTEVdICE9CisJCW51bV92YXJfcmFuZ2VzIC0gbnVtW01UUlJfTlVNX1RZUEVTXSkKKwkJcmV0dXJuIDA7CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCW5yX3JhbmdlID0gMDsKKwlpZiAobXRycl90b20yKSB7CisJCXJhbmdlW25yX3JhbmdlXS5zdGFydCA9ICgxVUxMPDwoMzIgLSBQQUdFX1NISUZUKSk7CisJCXJhbmdlW25yX3JhbmdlXS5lbmQgPSAobXRycl90b20yID4+IFBBR0VfU0hJRlQpIC0gMTsKKwkJaWYgKGhpZ2hlc3RfcGZuIDwgcmFuZ2VbbnJfcmFuZ2VdLmVuZCArIDEpCisJCQloaWdoZXN0X3BmbiA9IHJhbmdlW25yX3JhbmdlXS5lbmQgKyAxOworCQlucl9yYW5nZSsrOworCX0KKwlucl9yYW5nZSA9IHg4Nl9nZXRfbXRycl9tZW1fcmFuZ2UocmFuZ2UsIG5yX3JhbmdlLCAwLCAwKTsKKworCXRvdGFsX3RyaW1fc2l6ZSA9IDA7CisJLyogY2hlY2sgdGhlIGhlYWQgKi8KKwlpZiAocmFuZ2VbMF0uc3RhcnQpCisJCXRvdGFsX3RyaW1fc2l6ZSArPSByZWFsX3RyaW1fbWVtb3J5KDAsIHJhbmdlWzBdLnN0YXJ0KTsKKwkvKiBjaGVjayB0aGUgaG9sZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnJfcmFuZ2UgLSAxOyBpKyspIHsKKwkJaWYgKHJhbmdlW2ldLmVuZCArIDEgPCByYW5nZVtpKzFdLnN0YXJ0KQorCQkJdG90YWxfdHJpbV9zaXplICs9IHJlYWxfdHJpbV9tZW1vcnkocmFuZ2VbaV0uZW5kICsgMSwKKwkJCQkJCQkgICAgcmFuZ2VbaSsxXS5zdGFydCk7CisJfQorCS8qIGNoZWNrIHRoZSB0b3AgKi8KKwlpID0gbnJfcmFuZ2UgLSAxOworCWlmIChyYW5nZVtpXS5lbmQgKyAxIDwgZW5kX3BmbikKKwkJdG90YWxfdHJpbV9zaXplICs9IHJlYWxfdHJpbV9tZW1vcnkocmFuZ2VbaV0uZW5kICsgMSwKKwkJCQkJCQkgZW5kX3Bmbik7CisKKwlpZiAodG90YWxfdHJpbV9zaXplKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IEJJT1MgYnVnOiBDUFUgTVRSUnMgZG9uJ3QgY292ZXIiCisJCQkiIGFsbCBvZiBtZW1vcnksIGxvc2luZyAlbGx1TUIgb2YgUkFNLlxuIiwKKwkJCXRvdGFsX3RyaW1fc2l6ZSA+PiAyMCk7CisKKwkJaWYgKCFjaGFuZ2VkX2J5X210cnJfY2xlYW51cCkKKwkJCVdBUk5fT04oMSk7CiAKIAkJcHJpbnRrKEtFUk5fSU5GTyAidXBkYXRlIGU4MjAgZm9yIG10cnJcbiIpOwotCQl0cmltX3N0YXJ0ID0gaGlnaGVzdF9wZm47Ci0JCXRyaW1fc3RhcnQgPDw9IFBBR0VfU0hJRlQ7Ci0JCXRyaW1fc2l6ZSA9IGVuZF9wZm47Ci0JCXRyaW1fc2l6ZSA8PD0gUEFHRV9TSElGVDsKLQkJdHJpbV9zaXplIC09IHRyaW1fc3RhcnQ7Ci0JCXVwZGF0ZV9tZW1vcnlfcmFuZ2UodHJpbV9zdGFydCwgdHJpbV9zaXplLCBFODIwX1JBTSwKLQkJCQkJRTgyMF9SRVNFUlZFRCk7CiAJCXVwZGF0ZV9lODIwKCk7CisKIAkJcmV0dXJuIDE7CiAJfQogCkBAIC03MjksMTggKzE1NzgsMjEgQEAKICAqLwogdm9pZCBfX2luaXQgbXRycl9icF9pbml0KHZvaWQpCiB7CisJdTMyIHBoeXNfYWRkcjsKIAlpbml0X2lmcygpOwogCisJcGh5c19hZGRyID0gMzI7CisKIAlpZiAoY3B1X2hhc19tdHJyKSB7CiAJCW10cnJfaWYgPSAmZ2VuZXJpY19tdHJyX29wczsKIAkJc2l6ZV9vcl9tYXNrID0gMHhmZjAwMDAwMDsJLyogMzYgYml0cyAqLwogCQlzaXplX2FuZF9tYXNrID0gMHgwMGYwMDAwMDsKKwkJcGh5c19hZGRyID0gMzY7CiAKIAkJLyogVGhpcyBpcyBhbiBBTUQgc3BlY2lmaWMgTVNSLCBidXQgd2UgYXNzdW1lKGhvcGU/KSB0aGF0CiAJCSAgIEludGVsIHdpbGwgaW1wbGVtZW50IGl0IHRvIHdoZW4gdGhleSBleHRlbmQgdGhlIGFkZHJlc3MKIAkJICAgYnVzIG9mIHRoZSBYZW9uLiAqLwogCQlpZiAoY3B1aWRfZWF4KDB4ODAwMDAwMDApID49IDB4ODAwMDAwMDgpIHsKLQkJCXUzMiBwaHlzX2FkZHI7CiAJCQlwaHlzX2FkZHIgPSBjcHVpZF9lYXgoMHg4MDAwMDAwOCkgJiAweGZmOwogCQkJLyogQ1BVSUQgd29ya2Fyb3VuZCBmb3IgSW50ZWwgMEYzMy8wRjM0IENQVSAqLwogCQkJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0lOVEVMICYmCkBAIC03NTgsNiArMTYxMCw3IEBACiAJCQkgICBkb24ndCBzdXBwb3J0IFBBRSAqLwogCQkJc2l6ZV9vcl9tYXNrID0gMHhmZmYwMDAwMDsJLyogMzIgYml0cyAqLwogCQkJc2l6ZV9hbmRfbWFzayA9IDA7CisJCQlwaHlzX2FkZHIgPSAzMjsKIAkJfQogCX0gZWxzZSB7CiAJCXN3aXRjaCAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yKSB7CkBAIC03OTEsOCArMTY0NCwxNSBAQAogCWlmIChtdHJyX2lmKSB7CiAJCXNldF9udW1fdmFyX3JhbmdlcygpOwogCQlpbml0X3RhYmxlKCk7Ci0JCWlmICh1c2VfaW50ZWwoKSkKKwkJaWYgKHVzZV9pbnRlbCgpKSB7CiAJCQlnZXRfbXRycl9zdGF0ZSgpOworCisJCQlpZiAobXRycl9jbGVhbnVwKHBoeXNfYWRkcikpIHsKKwkJCQljaGFuZ2VkX2J5X210cnJfY2xlYW51cCA9IDE7CisJCQkJbXRycl9pZi0+c2V0X2FsbCgpOworCQkJfQorCisJCX0KIAl9CiB9CiAKQEAgLTgyOSw5ICsxNjg5LDEwIEBACiB7CiAJaWYgKCFtdHJyX2lmKQogCQlyZXR1cm4gMDsKLQlpZiAodXNlX2ludGVsKCkpCi0JCW10cnJfc3RhdGVfd2FybigpOwotCWVsc2UgeworCWlmICh1c2VfaW50ZWwoKSkgeworCQlpZiAoIWNoYW5nZWRfYnlfbXRycl9jbGVhbnVwKQorCQkJbXRycl9zdGF0ZV93YXJuKCk7CisJfSBlbHNlIHsKIAkJLyogVGhlIENQVXMgaGF2ZW4ndCBNVFJSIGFuZCBzZWVtIHRvIG5vdCBzdXBwb3J0IFNNUC4gVGhleSBoYXZlCiAJCSAqIHNwZWNpZmljIGRyaXZlcnMsIHdlIHVzZSBhIHRyaWNreSBtZXRob2QgdG8gc3VwcG9ydAogCQkgKiBzdXNwZW5kL3Jlc3VtZSBmb3IgdGhlbS4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tdHJyLmggYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L210cnIvbXRyci5oCmluZGV4IDJjYzc3ZWIuLjJkYzRlYzYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXRyci9tdHJyLmgKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9tdHJyL210cnIuaApAQCAtODEsNiArODEsOCBAQAogdm9pZCBzZXRfbXRycl9jYWNoZV9kaXNhYmxlKHN0cnVjdCBzZXRfbXRycl9jb250ZXh0ICpjdHh0KTsKIHZvaWQgc2V0X210cnJfcHJlcGFyZV9zYXZlKHN0cnVjdCBzZXRfbXRycl9jb250ZXh0ICpjdHh0KTsKIAordm9pZCBmaWxsX210cnJfdmFyX3JhbmdlKHVuc2lnbmVkIGludCBpbmRleCwKKwkJdTMyIGJhc2VfbG8sIHUzMiBiYXNlX2hpLCB1MzIgbWFza19sbywgdTMyIG1hc2tfaGkpOwogdm9pZCBnZXRfbXRycl9zdGF0ZSh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgc2V0X210cnJfb3BzKHN0cnVjdCBtdHJyX29wcyAqIG9wcyk7CkBAIC05Miw2ICs5NCw3IEBACiAjZGVmaW5lIHVzZV9pbnRlbCgpCShtdHJyX2lmICYmIG10cnJfaWYtPnVzZV9pbnRlbF9pZiA9PSAxKQogCiBleHRlcm4gdW5zaWduZWQgaW50IG51bV92YXJfcmFuZ2VzOworZXh0ZXJuIHU2NCBtdHJyX3RvbTI7CiAKIHZvaWQgbXRycl9zdGF0ZV93YXJuKHZvaWQpOwogY29uc3QgY2hhciAqbXRycl9hdHRyaWJfdG9fc3RyKGludCB4KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvcGVyZmN0ci13YXRjaGRvZy5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmY3RyLXdhdGNoZG9nLmMKaW5kZXggZjlhZTkzYS4uMmU5YmVmNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmY3RyLXdhdGNoZG9nLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9wZXJmY3RyLXdhdGNoZG9nLmMKQEAgLTEsMTEgKzEsMTUgQEAKLS8qIGxvY2FsIGFwaWMgYmFzZWQgTk1JIHdhdGNoZG9nIGZvciB2YXJpb3VzIENQVXMuCi0gICBUaGlzIGZpbGUgYWxzbyBoYW5kbGVzIHJlc2VydmF0aW9uIG9mIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvciBjb29yZGluYXRpb24KLSAgIHdpdGggb3RoZXIgdXNlcnMgKGxpa2Ugb3Byb2ZpbGUpLgotCi0gICBOb3RlIHRoYXQgdGhlc2UgZXZlbnRzIG5vcm1hbGx5IGRvbid0IHRpY2sgd2hlbiB0aGUgQ1BVIGlkbGVzLiBUaGlzIG1lYW5zCi0gICB0aGUgZnJlcXVlbmN5IHZhcmllcyB3aXRoIENQVSBsb2FkLgotCi0gICBPcmlnaW5hbCBjb2RlIGZvciBLNy9QNiB3cml0dGVuIGJ5IEtlaXRoIE93ZW5zICovCisvKgorICogbG9jYWwgYXBpYyBiYXNlZCBOTUkgd2F0Y2hkb2cgZm9yIHZhcmlvdXMgQ1BVcy4KKyAqCisgKiBUaGlzIGZpbGUgYWxzbyBoYW5kbGVzIHJlc2VydmF0aW9uIG9mIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGZvciBjb29yZGluYXRpb24KKyAqIHdpdGggb3RoZXIgdXNlcnMgKGxpa2Ugb3Byb2ZpbGUpLgorICoKKyAqIE5vdGUgdGhhdCB0aGVzZSBldmVudHMgbm9ybWFsbHkgZG9uJ3QgdGljayB3aGVuIHRoZSBDUFUgaWRsZXMuIFRoaXMgbWVhbnMKKyAqIHRoZSBmcmVxdWVuY3kgdmFyaWVzIHdpdGggQ1BVIGxvYWQuCisgKgorICogT3JpZ2luYWwgY29kZSBmb3IgSzcvUDYgd3JpdHRlbiBieSBLZWl0aCBPd2VucworICoKKyAqLwogCiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0zNiwxMiArNDAsMTYgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCB3ZF9vcHMgKndkX29wczsKIAotLyogdGhpcyBudW1iZXIgaXMgY2FsY3VsYXRlZCBmcm9tIEludGVsJ3MgTVNSX1A0X0NSVV9FU0NSNSByZWdpc3RlciBhbmQgaXQncwotICogb2Zmc2V0IGZyb20gTVNSX1A0X0JTVV9FU0NSMC4gIEl0IHdpbGwgYmUgdGhlIG1heCBmb3IgYWxsIHBsYXRmb3JtcyAoZm9yIG5vdykKKy8qCisgKiB0aGlzIG51bWJlciBpcyBjYWxjdWxhdGVkIGZyb20gSW50ZWwncyBNU1JfUDRfQ1JVX0VTQ1I1IHJlZ2lzdGVyIGFuZCBpdCdzCisgKiBvZmZzZXQgZnJvbSBNU1JfUDRfQlNVX0VTQ1IwLgorICoKKyAqIEl0IHdpbGwgYmUgdGhlIG1heCBmb3IgYWxsIHBsYXRmb3JtcyAoZm9yIG5vdykKICAqLwogI2RlZmluZSBOTUlfTUFYX0NPVU5URVJfQklUUyA2NgogCi0vKiBwZXJmY3RyX25taV9vd25lciB0cmFja3MgdGhlIG93bmVyc2hpcCBvZiB0aGUgcGVyZmN0ciByZWdpc3RlcnM6CisvKgorICogcGVyZmN0cl9ubWlfb3duZXIgdHJhY2tzIHRoZSBvd25lcnNoaXAgb2YgdGhlIHBlcmZjdHIgcmVnaXN0ZXJzOgogICogZXZ0c2VsX25taV9vd25lciB0cmFja3MgdGhlIG93bmVyc2hpcCBvZiB0aGUgZXZlbnQgc2VsZWN0aW9uCiAgKiAtIGRpZmZlcmVudCBwZXJmb3JtYW5jZSBjb3VudGVycy8gZXZlbnQgc2VsZWN0aW9uIG1heSBiZSByZXNlcnZlZCBmb3IKICAqICAgZGlmZmVyZW50IHN1YnN5c3RlbXMgdGhpcyByZXNlcnZhdGlvbiBzeXN0ZW0ganVzdCB0cmllcyB0byBjb29yZGluYXRlCkBAIC03Myw4ICs4MSwxMCBAQAogCXJldHVybiAwOwogfQogCi0vKiBjb252ZXJ0cyBhbiBtc3IgdG8gYW4gYXBwcm9wcmlhdGUgcmVzZXJ2YXRpb24gYml0ICovCi0vKiByZXR1cm5zIHRoZSBiaXQgb2Zmc2V0IG9mIHRoZSBldmVudCBzZWxlY3Rpb24gcmVnaXN0ZXIgKi8KKy8qCisgKiBjb252ZXJ0cyBhbiBtc3IgdG8gYW4gYXBwcm9wcmlhdGUgcmVzZXJ2YXRpb24gYml0CisgKiByZXR1cm5zIHRoZSBiaXQgb2Zmc2V0IG9mIHRoZSBldmVudCBzZWxlY3Rpb24gcmVnaXN0ZXIKKyAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbm1pX2V2bnRzZWxfbXNyX3RvX2JpdCh1bnNpZ25lZCBpbnQgbXNyKQogewogCS8qIHJldHVybnMgdGhlIGJpdCBvZmZzZXQgb2YgdGhlIGV2ZW50IHNlbGVjdGlvbiByZWdpc3RlciAqLwpAQCAtMTE0LDYgKzEyNCw3IEBACiAKIAlyZXR1cm4gKCF0ZXN0X2JpdChjb3VudGVyLCBwZXJmY3RyX25taV9vd25lcikpOwogfQorRVhQT1JUX1NZTUJPTChhdmFpbF90b19yZXNydl9wZXJmY3RyX25taV9iaXQpOwogCiBpbnQgcmVzZXJ2ZV9wZXJmY3RyX25taSh1bnNpZ25lZCBpbnQgbXNyKQogewpAQCAtMTI4LDYgKzEzOSw3IEBACiAJCXJldHVybiAxOwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChyZXNlcnZlX3BlcmZjdHJfbm1pKTsKIAogdm9pZCByZWxlYXNlX3BlcmZjdHJfbm1pKHVuc2lnbmVkIGludCBtc3IpCiB7CkBAIC0xNDAsNiArMTUyLDcgQEAKIAogCWNsZWFyX2JpdChjb3VudGVyLCBwZXJmY3RyX25taV9vd25lcik7CiB9CitFWFBPUlRfU1lNQk9MKHJlbGVhc2VfcGVyZmN0cl9ubWkpOwogCiBpbnQgcmVzZXJ2ZV9ldm50c2VsX25taSh1bnNpZ25lZCBpbnQgbXNyKQogewpAQCAtMTU0LDYgKzE2Nyw3IEBACiAJCXJldHVybiAxOwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChyZXNlcnZlX2V2bnRzZWxfbm1pKTsKIAogdm9pZCByZWxlYXNlX2V2bnRzZWxfbm1pKHVuc2lnbmVkIGludCBtc3IpCiB7CkBAIC0xNjYsMTEgKzE4MCw2IEBACiAKIAljbGVhcl9iaXQoY291bnRlciwgZXZudHNlbF9ubWlfb3duZXIpOwogfQotCi1FWFBPUlRfU1lNQk9MKGF2YWlsX3RvX3Jlc3J2X3BlcmZjdHJfbm1pX2JpdCk7Ci1FWFBPUlRfU1lNQk9MKHJlc2VydmVfcGVyZmN0cl9ubWkpOwotRVhQT1JUX1NZTUJPTChyZWxlYXNlX3BlcmZjdHJfbm1pKTsKLUVYUE9SVF9TWU1CT0wocmVzZXJ2ZV9ldm50c2VsX25taSk7CiBFWFBPUlRfU1lNQk9MKHJlbGVhc2VfZXZudHNlbF9ubWkpOwogCiB2b2lkIGRpc2FibGVfbGFwaWNfbm1pX3dhdGNoZG9nKHZvaWQpCkBAIC0xODEsNyArMTkwLDkgQEAKIAkJcmV0dXJuOwogCiAJb25fZWFjaF9jcHUoc3RvcF9hcGljX25taV93YXRjaGRvZywgTlVMTCwgMCwgMSk7Ci0Jd2Rfb3BzLT51bnJlc2VydmUoKTsKKworCWlmICh3ZF9vcHMpCisJCXdkX29wcy0+dW5yZXNlcnZlKCk7CiAKIAlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOwogfQpAQCAtMjMyLDggKzI0Myw4IEBACiAJcmV0dXJuIHJldHZhbDsKIH0KIAotc3RhdGljIHZvaWQKLXdyaXRlX3dhdGNoZG9nX2NvdW50ZXIodW5zaWduZWQgaW50IHBlcmZjdHJfbXNyLCBjb25zdCBjaGFyICpkZXNjciwgdW5zaWduZWQgbm1pX2h6KQorc3RhdGljIHZvaWQgd3JpdGVfd2F0Y2hkb2dfY291bnRlcih1bnNpZ25lZCBpbnQgcGVyZmN0cl9tc3IsCisJCQkJY29uc3QgY2hhciAqZGVzY3IsIHVuc2lnbmVkIG5taV9oeikKIHsKIAl1NjQgY291bnQgPSAodTY0KWNwdV9raHogKiAxMDAwOwogCkBAIC0yNDQsNyArMjU1LDcgQEAKIH0KIAogc3RhdGljIHZvaWQgd3JpdGVfd2F0Y2hkb2dfY291bnRlcjMyKHVuc2lnbmVkIGludCBwZXJmY3RyX21zciwKLQkJY29uc3QgY2hhciAqZGVzY3IsIHVuc2lnbmVkIG5taV9oeikKKwkJCQljb25zdCBjaGFyICpkZXNjciwgdW5zaWduZWQgbm1pX2h6KQogewogCXU2NCBjb3VudCA9ICh1NjQpY3B1X2toeiAqIDEwMDA7CiAKQEAgLTI1NCw5ICsyNjUsMTAgQEAKIAl3cm1zcihwZXJmY3RyX21zciwgKHUzMikoLWNvdW50KSwgMCk7CiB9CiAKLS8qIEFNRCBLNy9LOC9GYW1pbHkxMGgvRmFtaWx5MTFoIHN1cHBvcnQuIEFNRCBrZWVwcyB0aGlzIGludGVyZmFjZQotICAgbmljZWx5IHN0YWJsZSBzbyB0aGVyZSBpcyBub3QgbXVjaCB2YXJpZXR5ICovCi0KKy8qCisgKiBBTUQgSzcvSzgvRmFtaWx5MTBoL0ZhbWlseTExaCBzdXBwb3J0LgorICogQU1EIGtlZXBzIHRoaXMgaW50ZXJmYWNlIG5pY2VseSBzdGFibGUgc28gdGhlcmUgaXMgbm90IG11Y2ggdmFyaWV0eQorICovCiAjZGVmaW5lIEs3X0VWTlRTRUxfRU5BQkxFCSgxIDw8IDIyKQogI2RlZmluZSBLN19FVk5UU0VMX0lOVAkJKDEgPDwgMjApCiAjZGVmaW5lIEs3X0VWTlRTRUxfT1MJCSgxIDw8IDE3KQpAQCAtMjg5LDcgKzMwMSw3IEBACiAKIAl3ZC0+cGVyZmN0cl9tc3IgPSBwZXJmY3RyX21zcjsKIAl3ZC0+ZXZudHNlbF9tc3IgPSBldm50c2VsX21zcjsKLQl3ZC0+Y2Njcl9tc3IgPSAwOyAgLy91bnVzZWQKKwl3ZC0+Y2Njcl9tc3IgPSAwOyAgLyogdW51c2VkICovCiAJcmV0dXJuIDE7CiB9CiAKQEAgLTMyNSwxOCArMzM3LDE5IEBACiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2Rfb3BzIGs3X3dkX29wcyA9IHsKLQkucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKLQkudW5yZXNlcnZlID0gc2luZ2xlX21zcl91bnJlc2VydmUsCi0JLnNldHVwID0gc2V0dXBfazdfd2F0Y2hkb2csCi0JLnJlYXJtID0gc2luZ2xlX21zcl9yZWFybSwKLQkuc3RvcCA9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKLQkucGVyZmN0ciA9IE1TUl9LN19QRVJGQ1RSMCwKLQkuZXZudHNlbCA9IE1TUl9LN19FVk5UU0VMMCwKLQkuY2hlY2tiaXQgPSAxVUxMPDw0NywKKwkucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKKwkudW5yZXNlcnZlCT0gc2luZ2xlX21zcl91bnJlc2VydmUsCisJLnNldHVwCQk9IHNldHVwX2s3X3dhdGNoZG9nLAorCS5yZWFybQkJPSBzaW5nbGVfbXNyX3JlYXJtLAorCS5zdG9wCQk9IHNpbmdsZV9tc3Jfc3RvcF93YXRjaGRvZywKKwkucGVyZmN0cgk9IE1TUl9LN19QRVJGQ1RSMCwKKwkuZXZudHNlbAk9IE1TUl9LN19FVk5UU0VMMCwKKwkuY2hlY2tiaXQJPSAxVUxMIDw8IDQ3LAogfTsKIAotLyogSW50ZWwgTW9kZWwgNiAoUFBybyssUDIsUDMsUC1NLENvcmUxKSAqLwotCisvKgorICogSW50ZWwgTW9kZWwgNiAoUFBybyssUDIsUDMsUC1NLENvcmUxKQorICovCiAjZGVmaW5lIFA2X0VWTlRTRUwwX0VOQUJMRQkoMSA8PCAyMikKICNkZWZpbmUgUDZfRVZOVFNFTF9JTlQJCSgxIDw8IDIwKQogI2RlZmluZSBQNl9FVk5UU0VMX09TCQkoMSA8PCAxNykKQEAgLTM3Miw1MiArMzg1LDU4IEBACiAKIAl3ZC0+cGVyZmN0cl9tc3IgPSBwZXJmY3RyX21zcjsKIAl3ZC0+ZXZudHNlbF9tc3IgPSBldm50c2VsX21zcjsKLQl3ZC0+Y2Njcl9tc3IgPSAwOyAgLy91bnVzZWQKKwl3ZC0+Y2Njcl9tc3IgPSAwOyAgLyogdW51c2VkICovCiAJcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyB2b2lkIHA2X3JlYXJtKHN0cnVjdCBubWlfd2F0Y2hkb2dfY3RsYmxrICp3ZCwgdW5zaWduZWQgbm1pX2h6KQogewotCS8qIFA2IGJhc2VkIFBlbnRpdW0gTSBuZWVkIHRvIHJlLXVubWFzaworCS8qCisJICogUDYgYmFzZWQgUGVudGl1bSBNIG5lZWQgdG8gcmUtdW5tYXNrCiAJICogdGhlIGFwaWMgdmVjdG9yIGJ1dCBpdCBkb2Vzbid0IGh1cnQKIAkgKiBvdGhlciBQNiB2YXJpYW50LgotCSAqIEFyY2hQZXJmb20vQ29yZSBEdW8gYWxzbyBuZWVkcyB0aGlzICovCisJICogQXJjaFBlcmZvbS9Db3JlIER1byBhbHNvIG5lZWRzIHRoaXMKKwkgKi8KIAlhcGljX3dyaXRlKEFQSUNfTFZUUEMsIEFQSUNfRE1fTk1JKTsKKwogCS8qIFA2L0FSQ0hfUEVSRk1PTiBoYXMgMzIgYml0IGNvdW50ZXIgd3JpdGUgKi8KIAl3cml0ZV93YXRjaGRvZ19jb3VudGVyMzIod2QtPnBlcmZjdHJfbXNyLCBOVUxMLG5taV9oeik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2Rfb3BzIHA2X3dkX29wcyA9IHsKLQkucmVzZXJ2ZSA9IHNpbmdsZV9tc3JfcmVzZXJ2ZSwKLQkudW5yZXNlcnZlID0gc2luZ2xlX21zcl91bnJlc2VydmUsCi0JLnNldHVwID0gc2V0dXBfcDZfd2F0Y2hkb2csCi0JLnJlYXJtID0gcDZfcmVhcm0sCi0JLnN0b3AgPSBzaW5nbGVfbXNyX3N0b3Bfd2F0Y2hkb2csCi0JLnBlcmZjdHIgPSBNU1JfUDZfUEVSRkNUUjAsCi0JLmV2bnRzZWwgPSBNU1JfUDZfRVZOVFNFTDAsCi0JLmNoZWNrYml0ID0gMVVMTDw8MzksCisJLnJlc2VydmUJPSBzaW5nbGVfbXNyX3Jlc2VydmUsCisJLnVucmVzZXJ2ZQk9IHNpbmdsZV9tc3JfdW5yZXNlcnZlLAorCS5zZXR1cAkJPSBzZXR1cF9wNl93YXRjaGRvZywKKwkucmVhcm0JCT0gcDZfcmVhcm0sCisJLnN0b3AJCT0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAorCS5wZXJmY3RyCT0gTVNSX1A2X1BFUkZDVFIwLAorCS5ldm50c2VsCT0gTVNSX1A2X0VWTlRTRUwwLAorCS5jaGVja2JpdAk9IDFVTEwgPDwgMzksCiB9OwogCi0vKiBJbnRlbCBQNCBwZXJmb3JtYW5jZSBjb3VudGVycy4gQnkgZmFyIHRoZSBtb3N0IGNvbXBsaWNhdGVkIG9mIGFsbC4gKi8KKy8qCisgKiBJbnRlbCBQNCBwZXJmb3JtYW5jZSBjb3VudGVycy4KKyAqIEJ5IGZhciB0aGUgbW9zdCBjb21wbGljYXRlZCBvZiBhbGwuCisgKi8KKyNkZWZpbmUgTVNSX1A0X01JU0NfRU5BQkxFX1BFUkZfQVZBSUwJKDEgPDwgNykKKyNkZWZpbmUgUDRfRVNDUl9FVkVOVF9TRUxFQ1QoTikJKChOKSA8PCAyNSkKKyNkZWZpbmUgUDRfRVNDUl9PUwkJKDEgPDwgMykKKyNkZWZpbmUgUDRfRVNDUl9VU1IJCSgxIDw8IDIpCisjZGVmaW5lIFA0X0NDQ1JfT1ZGX1BNSTAJKDEgPDwgMjYpCisjZGVmaW5lIFA0X0NDQ1JfT1ZGX1BNSTEJKDEgPDwgMjcpCisjZGVmaW5lIFA0X0NDQ1JfVEhSRVNIT0xEKE4pCSgoTikgPDwgMjApCisjZGVmaW5lIFA0X0NDQ1JfQ09NUExFTUVOVAkoMSA8PCAxOSkKKyNkZWZpbmUgUDRfQ0NDUl9DT01QQVJFCQkoMSA8PCAxOCkKKyNkZWZpbmUgUDRfQ0NDUl9SRVFVSVJFRAkoMyA8PCAxNikKKyNkZWZpbmUgUDRfQ0NDUl9FU0NSX1NFTEVDVChOKQkoKE4pIDw8IDEzKQorI2RlZmluZSBQNF9DQ0NSX0VOQUJMRQkJKDEgPDwgMTIpCisjZGVmaW5lIFA0X0NDQ1JfT1ZGIAkJKDEgPDwgMzEpCiAKLSNkZWZpbmUgTVNSX1A0X01JU0NfRU5BQkxFX1BFUkZfQVZBSUwJKDE8PDcpCi0jZGVmaW5lIFA0X0VTQ1JfRVZFTlRfU0VMRUNUKE4pCSgoTik8PDI1KQotI2RlZmluZSBQNF9FU0NSX09TCQkoMTw8MykKLSNkZWZpbmUgUDRfRVNDUl9VU1IJCSgxPDwyKQotI2RlZmluZSBQNF9DQ0NSX09WRl9QTUkwCSgxPDwyNikKLSNkZWZpbmUgUDRfQ0NDUl9PVkZfUE1JMQkoMTw8MjcpCi0jZGVmaW5lIFA0X0NDQ1JfVEhSRVNIT0xEKE4pCSgoTik8PDIwKQotI2RlZmluZSBQNF9DQ0NSX0NPTVBMRU1FTlQJKDE8PDE5KQotI2RlZmluZSBQNF9DQ0NSX0NPTVBBUkUJCSgxPDwxOCkKLSNkZWZpbmUgUDRfQ0NDUl9SRVFVSVJFRAkoMzw8MTYpCi0jZGVmaW5lIFA0X0NDQ1JfRVNDUl9TRUxFQ1QoTikJKChOKTw8MTMpCi0jZGVmaW5lIFA0X0NDQ1JfRU5BQkxFCQkoMTw8MTIpCi0jZGVmaW5lIFA0X0NDQ1JfT1ZGIAkJKDE8PDMxKQotCi0vKiBTZXQgdXAgSVFfQ09VTlRFUjAgdG8gYmVoYXZlIGxpa2UgYSBjbG9jaywgYnkgaGF2aW5nIElRX0NDQ1IwIGZpbHRlcgotICAgQ1JVX0VTQ1IwICh3aXRoIGFueSBub24tbnVsbCBldmVudCBzZWxlY3RvcikgdGhyb3VnaCBhIGNvbXBsZW1lbnRlZAotICAgbWF4IHRocmVzaG9sZC4gW0lBMzItVm9sMywgU2VjdGlvbiAxNC45LjldICovCi0KKy8qCisgKiBTZXQgdXAgSVFfQ09VTlRFUjAgdG8gYmVoYXZlIGxpa2UgYSBjbG9jaywgYnkgaGF2aW5nIElRX0NDQ1IwIGZpbHRlcgorICogQ1JVX0VTQ1IwICh3aXRoIGFueSBub24tbnVsbCBldmVudCBzZWxlY3RvcikgdGhyb3VnaCBhIGNvbXBsZW1lbnRlZAorICogbWF4IHRocmVzaG9sZC4gW0lBMzItVm9sMywgU2VjdGlvbiAxNC45LjldCisgKi8KIHN0YXRpYyBpbnQgc2V0dXBfcDRfd2F0Y2hkb2codW5zaWduZWQgbm1pX2h6KQogewogCXVuc2lnbmVkIGludCBwZXJmY3RyX21zciwgZXZudHNlbF9tc3IsIGNjY3JfbXNyOwpAQCAtNDQyLDcgKzQ2MSw4IEBACiAjZW5kaWYKIAkJaHRfbnVtID0gMDsKIAotCS8qIHBlcmZvcm1hbmNlIGNvdW50ZXJzIGFyZSBzaGFyZWQgcmVzb3VyY2VzCisJLyoKKwkgKiBwZXJmb3JtYW5jZSBjb3VudGVycyBhcmUgc2hhcmVkIHJlc291cmNlcwogCSAqIGFzc2lnbiBlYWNoIGh5cGVydGhyZWFkIGl0cyBvd24gc2V0CiAJICogKHJlLXVzZSB0aGUgRVNDUjAgcmVnaXN0ZXIsIHNlZW1zIHNhZmUKIAkgKiBhbmQga2VlcHMgdGhlIGNjY3JfdmFsIHRoZSBzYW1lKQpAQCAtNTQwLDIwICs1NjAsMjEgQEAKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCB3ZF9vcHMgcDRfd2Rfb3BzID0gewotCS5yZXNlcnZlID0gcDRfcmVzZXJ2ZSwKLQkudW5yZXNlcnZlID0gcDRfdW5yZXNlcnZlLAotCS5zZXR1cCA9IHNldHVwX3A0X3dhdGNoZG9nLAotCS5yZWFybSA9IHA0X3JlYXJtLAotCS5zdG9wID0gc3RvcF9wNF93YXRjaGRvZywKKwkucmVzZXJ2ZQk9IHA0X3Jlc2VydmUsCisJLnVucmVzZXJ2ZQk9IHA0X3VucmVzZXJ2ZSwKKwkuc2V0dXAJCT0gc2V0dXBfcDRfd2F0Y2hkb2csCisJLnJlYXJtCQk9IHA0X3JlYXJtLAorCS5zdG9wCQk9IHN0b3BfcDRfd2F0Y2hkb2csCiAJLyogUkVELVBFTiB0aGlzIGlzIHdyb25nIGZvciB0aGUgb3RoZXIgc2libGluZyAqLwotCS5wZXJmY3RyID0gTVNSX1A0X0JQVV9QRVJGQ1RSMCwKLQkuZXZudHNlbCA9IE1TUl9QNF9CU1VfRVNDUjAsCi0JLmNoZWNrYml0ID0gMVVMTDw8MzksCisJLnBlcmZjdHIJPSBNU1JfUDRfQlBVX1BFUkZDVFIwLAorCS5ldm50c2VsCT0gTVNSX1A0X0JTVV9FU0NSMCwKKwkuY2hlY2tiaXQJPSAxVUxMIDw8IDM5LAogfTsKIAotLyogV2F0Y2hkb2cgdXNpbmcgdGhlIEludGVsIGFyY2hpdGVjdGVkIFBlcmZNb24uIFVzZWQgZm9yIENvcmUyIGFuZCBob3BlZnVsbHkKLSAgIGFsbCBmdXR1cmUgSW50ZWwgQ1BVcy4gKi8KLQorLyoKKyAqIFdhdGNoZG9nIHVzaW5nIHRoZSBJbnRlbCBhcmNoaXRlY3RlZCBQZXJmTW9uLgorICogVXNlZCBmb3IgQ29yZTIgYW5kIGhvcGVmdWxseSBhbGwgZnV0dXJlIEludGVsIENQVXMuCisgKi8KICNkZWZpbmUgQVJDSF9QRVJGTU9OX05NSV9FVkVOVF9TRUwJQVJDSF9QRVJGTU9OX1VOSEFMVEVEX0NPUkVfQ1lDTEVTX1NFTAogI2RlZmluZSBBUkNIX1BFUkZNT05fTk1JX0VWRU5UX1VNQVNLCUFSQ0hfUEVSRk1PTl9VTkhBTFRFRF9DT1JFX0NZQ0xFU19VTUFTSwogCkBAIC01OTksMTkgKzYyMCwxOSBAQAogCiAJd2QtPnBlcmZjdHJfbXNyID0gcGVyZmN0cl9tc3I7CiAJd2QtPmV2bnRzZWxfbXNyID0gZXZudHNlbF9tc3I7Ci0Jd2QtPmNjY3JfbXNyID0gMDsgIC8vdW51c2VkCisJd2QtPmNjY3JfbXNyID0gMDsgIC8qIHVudXNlZCAqLwogCWludGVsX2FyY2hfd2Rfb3BzLmNoZWNrYml0ID0gMVVMTCA8PCAoZWF4LnNwbGl0LmJpdF93aWR0aCAtIDEpOwogCXJldHVybiAxOwogfQogCiBzdGF0aWMgc3RydWN0IHdkX29wcyBpbnRlbF9hcmNoX3dkX29wcyBfX3JlYWRfbW9zdGx5ID0gewotCS5yZXNlcnZlID0gc2luZ2xlX21zcl9yZXNlcnZlLAotCS51bnJlc2VydmUgPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKLQkuc2V0dXAgPSBzZXR1cF9pbnRlbF9hcmNoX3dhdGNoZG9nLAotCS5yZWFybSA9IHA2X3JlYXJtLAotCS5zdG9wID0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAotCS5wZXJmY3RyID0gTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMSwKLQkuZXZudHNlbCA9IE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwxLAorCS5yZXNlcnZlCT0gc2luZ2xlX21zcl9yZXNlcnZlLAorCS51bnJlc2VydmUJPSBzaW5nbGVfbXNyX3VucmVzZXJ2ZSwKKwkuc2V0dXAJCT0gc2V0dXBfaW50ZWxfYXJjaF93YXRjaGRvZywKKwkucmVhcm0JCT0gcDZfcmVhcm0sCisJLnN0b3AJCT0gc2luZ2xlX21zcl9zdG9wX3dhdGNoZG9nLAorCS5wZXJmY3RyCT0gTVNSX0FSQ0hfUEVSRk1PTl9QRVJGQ1RSMSwKKwkuZXZudHNlbAk9IE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwxLAogfTsKIAogc3RhdGljIHZvaWQgcHJvYmVfbm1pX3dhdGNoZG9nKHZvaWQpCkBAIC02MjQsOCArNjQ1LDEwIEBACiAJCXdkX29wcyA9ICZrN193ZF9vcHM7CiAJCWJyZWFrOwogCWNhc2UgWDg2X1ZFTkRPUl9JTlRFTDoKLQkJLyogV29yayBhcm91bmQgQ29yZSBEdW8gKFlvbmFoKSBlcnJhdGEgQUU0OSB3aGVyZSBwZXJmY3RyMQotCQkgICBkb2Vzbid0IGhhdmUgYSB3b3JraW5nIGVuYWJsZSBiaXQuICovCisJCS8qCisJCSAqIFdvcmsgYXJvdW5kIENvcmUgRHVvIChZb25haCkgZXJyYXRhIEFFNDkgd2hlcmUgcGVyZmN0cjEKKwkJICogZG9lc24ndCBoYXZlIGEgd29ya2luZyBlbmFibGUgYml0LgorCQkgKi8KIAkJaWYgKGJvb3RfY3B1X2RhdGEueDg2ID09IDYgJiYgYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPT0gMTQpIHsKIAkJCWludGVsX2FyY2hfd2Rfb3BzLnBlcmZjdHIgPSBNU1JfQVJDSF9QRVJGTU9OX1BFUkZDVFIwOwogCQkJaW50ZWxfYXJjaF93ZF9vcHMuZXZudHNlbCA9IE1TUl9BUkNIX1BFUkZNT05fRVZFTlRTRUwwOwpAQCAtNjM2LDcgKzY1OSw3IEBACiAJCX0KIAkJc3dpdGNoIChib290X2NwdV9kYXRhLng4NikgewogCQljYXNlIDY6Ci0JCQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPiAweGQpCisJCQlpZiAoYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPiAxMykKIAkJCQlyZXR1cm47CiAKIAkJCXdkX29wcyA9ICZwNl93ZF9vcHM7CkBAIC02OTcsMTAgKzcyMCwxMSBAQAogewogCXN0cnVjdCBubWlfd2F0Y2hkb2dfY3RsYmxrICp3ZCA9ICZfX2dldF9jcHVfdmFyKG5taV93YXRjaGRvZ19jdGxibGspOwogCXU2NCBjdHI7CisKIAlyZG1zcmwod2QtPnBlcmZjdHJfbXNyLCBjdHIpOwotCWlmIChjdHIgJiB3ZF9vcHMtPmNoZWNrYml0KSB7IC8qIHBlcmZjdHIgc3RpbGwgcnVubmluZz8gKi8KKwlpZiAoY3RyICYgd2Rfb3BzLT5jaGVja2JpdCkgLyogcGVyZmN0ciBzdGlsbCBydW5uaW5nPyAqLwogCQlyZXR1cm4gMDsKLQl9CisKIAl3ZF9vcHMtPnJlYXJtKHdkLCBubWlfaHopOwogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdWlkLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1aWQuYwppbmRleCBkYWZmNTJhLi43MWYxYzI2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1aWQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1aWQuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvc21wLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KQEAgLTEwNywxNSArMTA4LDIzIEBACiAKIHN0YXRpYyBpbnQgY3B1aWRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQl1bnNpZ25lZCBpbnQgY3B1ID0gaW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOwotCXN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9ICZjcHVfZGF0YShjcHUpOworCXVuc2lnbmVkIGludCBjcHU7CisJc3RydWN0IGNwdWluZm9feDg2ICpjOworCWludCByZXQgPSAwOworCQorCWxvY2tfa2VybmVsKCk7CiAKLQlpZiAoY3B1ID49IE5SX0NQVVMgfHwgIWNwdV9vbmxpbmUoY3B1KSkKLQkJcmV0dXJuIC1FTlhJTzsJLyogTm8gc3VjaCBDUFUgKi8KKwljcHUgPSBpbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7CisJaWYgKGNwdSA+PSBOUl9DUFVTIHx8ICFjcHVfb25saW5lKGNwdSkpIHsKKwkJcmV0ID0gLUVOWElPOwkvKiBObyBzdWNoIENQVSAqLworCQlnb3RvIG91dDsKKwl9CisJYyA9ICZjcHVfZGF0YShjcHUpOwogCWlmIChjLT5jcHVpZF9sZXZlbCA8IDApCi0JCXJldHVybiAtRUlPOwkvKiBDUFVJRCBub3Qgc3VwcG9ydGVkICovCi0KLQlyZXR1cm4gMDsKKwkJcmV0ID0gLUVJTzsJLyogQ1BVSUQgbm90IHN1cHBvcnRlZCAqLworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2U4MjAuYyBiL2FyY2gveDg2L2tlcm5lbC9lODIwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjhjMjkxOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lODIwLmMKQEAgLTAsMCArMSwxMzkwIEBACisvKgorICogSGFuZGxlIHRoZSBtZW1vcnkgbWFwLgorICogVGhlIGZ1bmN0aW9ucyBoZXJlIGRvIHRoZSBqb2IgdW50aWwgYm9vdG1lbSB0YWtlcyBvdmVyLgorICoKKyAqICBHZXR0aW5nIHNhbml0aXplX2U4MjBfbWFwKCkgaW4gc3luYyB3aXRoIGkzODYgdmVyc2lvbiBieSBhcHBseWluZyBjaGFuZ2U6CisgKiAgLSAgUHJvdmlzaW9ucyBmb3IgZW1wdHkgRTgyMCBtZW1vcnkgcmVnaW9ucyAocmVwb3J0ZWQgYnkgY2VydGFpbiBCSU9TZXMpLgorICogICAgIEFsZXggQWNoZW5iYWNoIDx4ZWxhQHNsaXQuZGU+LCBEZWNlbWJlciAyMDAyLgorICogIFZlbmthdGVzaCBQYWxsaXBhZGkgPHZlbmthdGVzaC5wYWxsaXBhZGlAaW50ZWwuY29tPgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXhlYy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLW1hcC5oPgorCisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3RyYW1wb2xpbmUuaD4KKworLyoKKyAqIFRoZSBlODIwIG1hcCBpcyB0aGUgbWFwIHRoYXQgZ2V0cyBtb2RpZmllZCBlLmcuIHdpdGggY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMKKyAqIGFuZCB0aGF0IGlzIGFsc28gcmVnaXN0ZXJlZCB3aXRoIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGtlcm5lbCByZXNvdXJjZSB0cmVlCisgKiB3aXRoIHRoZSBpb21lbV9yZXNvdXJjZSBhcyBwYXJlbnQuCisgKgorICogVGhlIGU4MjBfc2F2ZWQgaXMgZGlyZWN0bHkgc2F2ZWQgYWZ0ZXIgdGhlIEJJT1MtcHJvdmlkZWQgbWVtb3J5IG1hcCBpcworICogY29waWVkLiBJdCBkb2Vzbid0IGdldCBtb2RpZmllZCBhZnRlcndhcmRzLiBJdCdzIHJlZ2lzdGVyZWQgZm9yIHRoZQorICogL3N5cy9maXJtd2FyZS9tZW1tYXAgaW50ZXJmYWNlLgorICoKKyAqIFRoYXQgbWVtb3J5IG1hcCBpcyBub3QgbW9kaWZpZWQgYW5kIGlzIHVzZWQgYXMgYmFzZSBmb3Iga2V4ZWMuIFRoZSBrZXhlYydkCisgKiBrZXJuZWwgc2hvdWxkIGdldCB0aGUgc2FtZSBtZW1vcnkgbWFwIGFzIHRoZSBmaXJtd2FyZSBwcm92aWRlcy4gVGhlbiB0aGUKKyAqIHVzZXIgY2FuIGUuZy4gYm9vdCB0aGUgb3JpZ2luYWwga2VybmVsIHdpdGggbWVtPTFHIHdoaWxlIHN0aWxsIGJvb3RpbmcgdGhlCisgKiBuZXh0IGtlcm5lbCB3aXRoIGZ1bGwgbWVtb3J5LgorICovCitzdHJ1Y3QgZTgyMG1hcCBlODIwOworc3RydWN0IGU4MjBtYXAgZTgyMF9zYXZlZDsKKworLyogRm9yIFBDSSBvciBvdGhlciBtZW1vcnktbWFwcGVkIHJlc291cmNlcyAqLwordW5zaWduZWQgbG9uZyBwY2lfbWVtX3N0YXJ0ID0gMHhhZWVkYmFiZTsKKyNpZmRlZiBDT05GSUdfUENJCitFWFBPUlRfU1lNQk9MKHBjaV9tZW1fc3RhcnQpOworI2VuZGlmCisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhbnkgcGFydCBvZiB0aGUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkCisgKiB3aXRoIHR5cGUuCisgKi8KK2ludAorZTgyMF9hbnlfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCisJCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCisJCQljb250aW51ZTsKKwkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQorCQkJY29udGludWU7CisJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGU4MjBfYW55X21hcHBlZCk7CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgZW50aXJlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZCB3aXRoIHR5cGUuCisgKgorICogTm90ZTogdGhpcyBmdW5jdGlvbiBvbmx5IHdvcmtzIGNvcnJlY3QgaWYgdGhlIGU4MjAgdGFibGUgaXMgc29ydGVkIGFuZAorICogbm90LW92ZXJsYXBwaW5nLCB3aGljaCBpcyB0aGUgY2FzZQorICovCitpbnQgX19pbml0IGU4MjBfYWxsX21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKworCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQorCQkJY29udGludWU7CisJCS8qIGlzIHRoZSByZWdpb24gKHBhcnQpIGluIG92ZXJsYXAgd2l0aCB0aGUgY3VycmVudCByZWdpb24gPyovCisJCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKKwkJCWNvbnRpbnVlOworCisJCS8qIGlmIHRoZSByZWdpb24gaXMgYXQgdGhlIGJlZ2lubmluZyBvZiA8c3RhcnQsZW5kPiB3ZSBtb3ZlCisJCSAqIHN0YXJ0IHRvIHRoZSBlbmQgb2YgdGhlIHJlZ2lvbiBzaW5jZSBpdCdzIG9rIHVudGlsIHRoZXJlCisJCSAqLworCQlpZiAoZWktPmFkZHIgPD0gc3RhcnQpCisJCQlzdGFydCA9IGVpLT5hZGRyICsgZWktPnNpemU7CisJCS8qCisJCSAqIGlmIHN0YXJ0IGlzIG5vdyBhdCBvciBiZXlvbmQgZW5kLCB3ZSdyZSBkb25lLCBmdWxsCisJCSAqIGNvdmVyYWdlCisJCSAqLworCQlpZiAoc3RhcnQgPj0gZW5kKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQorCisvKgorICogQWRkIGEgbWVtb3J5IHJlZ2lvbiB0byB0aGUga2VybmVsIGU4MjAgbWFwLgorICovCit2b2lkIF9faW5pdCBlODIwX2FkZF9yZWdpb24odTY0IHN0YXJ0LCB1NjQgc2l6ZSwgaW50IHR5cGUpCit7CisJaW50IHggPSBlODIwLm5yX21hcDsKKworCWlmICh4ID09IEFSUkFZX1NJWkUoZTgyMC5tYXApKSB7CisJCXByaW50ayhLRVJOX0VSUiAiT29vcHMhIFRvbyBtYW55IGVudHJpZXMgaW4gdGhlIG1lbW9yeSBtYXAhXG4iKTsKKwkJcmV0dXJuOworCX0KKworCWU4MjAubWFwW3hdLmFkZHIgPSBzdGFydDsKKwllODIwLm1hcFt4XS5zaXplID0gc2l6ZTsKKwllODIwLm1hcFt4XS50eXBlID0gdHlwZTsKKwllODIwLm5yX21hcCsrOworfQorCit2b2lkIF9faW5pdCBlODIwX3ByaW50X21hcChjaGFyICp3aG8pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlwcmludGsoS0VSTl9JTkZPICIgJXM6ICUwMTZMeCAtICUwMTZMeCAiLCB3aG8sCisJCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKSBlODIwLm1hcFtpXS5hZGRyLAorCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykKKwkJICAgICAgIChlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSkpOworCQlzd2l0Y2ggKGU4MjAubWFwW2ldLnR5cGUpIHsKKwkJY2FzZSBFODIwX1JBTToKKwkJY2FzZSBFODIwX1JFU0VSVkVEX0tFUk46CisJCQlwcmludGsoS0VSTl9DT05UICIodXNhYmxlKVxuIik7CisJCQlicmVhazsKKwkJY2FzZSBFODIwX1JFU0VSVkVEOgorCQkJcHJpbnRrKEtFUk5fQ09OVCAiKHJlc2VydmVkKVxuIik7CisJCQlicmVhazsKKwkJY2FzZSBFODIwX0FDUEk6CisJCQlwcmludGsoS0VSTl9DT05UICIoQUNQSSBkYXRhKVxuIik7CisJCQlicmVhazsKKwkJY2FzZSBFODIwX05WUzoKKwkJCXByaW50ayhLRVJOX0NPTlQgIihBQ1BJIE5WUylcbiIpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlwcmludGsoS0VSTl9DT05UICJ0eXBlICV1XG4iLCBlODIwLm1hcFtpXS50eXBlKTsKKwkJCWJyZWFrOworCQl9CisJfQorfQorCisvKgorICogU2FuaXRpemUgdGhlIEJJT1MgZTgyMCBtYXAuCisgKgorICogU29tZSBlODIwIHJlc3BvbnNlcyBpbmNsdWRlIG92ZXJsYXBwaW5nIGVudHJpZXMuIFRoZSBmb2xsb3dpbmcKKyAqIHJlcGxhY2VzIHRoZSBvcmlnaW5hbCBlODIwIG1hcCB3aXRoIGEgbmV3IG9uZSwgcmVtb3Zpbmcgb3ZlcmxhcHMsCisgKiBhbmQgcmVzb2x2aW5nIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyBpbiBmYXZvciBvZiBoaWdoZXN0CisgKiBudW1iZXJlZCB0eXBlLgorICoKKyAqIFRoZSBpbnB1dCBwYXJhbWV0ZXIgYmlvc21hcCBwb2ludHMgdG8gYW4gYXJyYXkgb2YgJ3N0cnVjdAorICogZTgyMGVudHJ5JyB3aGljaCBvbiBlbnRyeSBoYXMgZWxlbWVudHMgaW4gdGhlIHJhbmdlIFswLCAqcG5yX21hcCkKKyAqIHZhbGlkLCBhbmQgd2hpY2ggaGFzIHNwYWNlIGZvciB1cCB0byBtYXhfbnJfbWFwIGVudHJpZXMuCisgKiBPbiByZXR1cm4sIHRoZSByZXN1bHRpbmcgc2FuaXRpemVkIGU4MjAgbWFwIGVudHJpZXMgd2lsbCBiZSBpbgorICogb3ZlcndyaXR0ZW4gaW4gdGhlIHNhbWUgbG9jYXRpb24sIHN0YXJ0aW5nIGF0IGJpb3NtYXAuCisgKgorICogVGhlIGludGVnZXIgcG9pbnRlZCB0byBieSBwbnJfbWFwIG11c3QgYmUgdmFsaWQgb24gZW50cnkgKHRoZQorICogY3VycmVudCBudW1iZXIgb2YgdmFsaWQgZW50cmllcyBsb2NhdGVkIGF0IGJpb3NtYXApIGFuZCB3aWxsCisgKiBiZSB1cGRhdGVkIG9uIHJldHVybiwgd2l0aCB0aGUgbmV3IG51bWJlciBvZiB2YWxpZCBlbnRyaWVzCisgKiAoc29tZXRoaW5nIG5vIG1vcmUgdGhhbiBtYXhfbnJfbWFwLikKKyAqCisgKiBUaGUgcmV0dXJuIHZhbHVlIGZyb20gc2FuaXRpemVfZTgyMF9tYXAoKSBpcyB6ZXJvIGlmIGl0CisgKiBzdWNjZXNzZnVsbHkgJ3Nhbml0aXplZCcgdGhlIG1hcCBlbnRyaWVzIHBhc3NlZCBpbiwgYW5kIGlzIC0xCisgKiBpZiBpdCBkaWQgbm90aGluZywgd2hpY2ggY2FuIGhhcHBlbiBpZiBlaXRoZXIgb2YgKDEpIGl0IHdhcworICogb25seSBwYXNzZWQgb25lIG1hcCBlbnRyeSwgb3IgKDIpIGFueSBvZiB0aGUgaW5wdXQgbWFwIGVudHJpZXMKKyAqIHdlcmUgaW52YWxpZCAoc3RhcnQgKyBzaXplIDwgc3RhcnQsIG1lYW5pbmcgdGhhdCB0aGUgc2l6ZSB3YXMKKyAqIHNvIGJpZyB0aGUgZGVzY3JpYmVkIG1lbW9yeSByYW5nZSB3cmFwcGVkIGFyb3VuZCB0aHJvdWdoIHplcm8uKQorICoKKyAqCVZpc3VhbGx5IHdlJ3JlIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZworICoJKDEsMiwzLDQgPSBtZW1vcnkgdHlwZXMpLi4uCisgKgorICoJU2FtcGxlIG1lbW9yeSBtYXAgKHcvb3ZlcmxhcHMpOgorICoJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KKyAqCSAgIF9fX18xMTExX19fX19fX19fX19fX19fXworICoJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCisgKgkgICAxMTExMTExMV9fX19fX19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXworICoJICAgX19fX19fX19fX180NF9fX19fX19fX19fCisgKgkgICBfX19fX19fX19fMzMzMzNfX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fMjJfX19fX19fXworICoJICAgX19fX19fX19fX19fX19fX19fXzIyMjJfCisgKgkgICBfX19fX19fX18xMTExMTExMTFfX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX19fXzExXworICoJICAgX19fX19fX19fX19fX19fX180X19fX19fCisgKgorICoJU2FuaXRpemVkIGVxdWl2YWxlbnQgKG5vIG92ZXJsYXApOgorICoJICAgMV9fX19fX19fX19fX19fX19fX19fX19fCisgKgkgICBfNDRfX19fX19fX19fX19fX19fX19fX18KKyAqCSAgIF9fXzFfX19fX19fX19fX19fX19fX19fXworICoJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCisgKgkgICBfX19fX18xMV9fX19fX19fX19fX19fX18KKyAqCSAgIF9fX19fX19fXzFfX19fX19fX19fX19fXworICoJICAgX19fX19fX19fXzNfX19fX19fX19fX19fCisgKgkgICBfX19fX19fX19fXzQ0X19fX19fX19fX18KKyAqCSAgIF9fX19fX19fX19fX18zM19fX19fX19fXworICoJICAgX19fX19fX19fX19fX19fMl9fX19fX19fCisgKgkgICBfX19fX19fX19fX19fX19fMV9fX19fX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXworICoJICAgX19fX19fX19fX19fX19fX19fXzJfX19fCisgKgkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KKyAqCSAgIF9fX19fX19fX19fX19fX19fX19fX180XworICovCisKK2ludCBfX2luaXQgc2FuaXRpemVfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG1heF9ucl9tYXAsCisJCQkJaW50ICpwbnJfbWFwKQoreworCXN0cnVjdCBjaGFuZ2VfbWVtYmVyIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqcGJpb3M7IC8qIHBvaW50ZXIgdG8gb3JpZ2luYWwgYmlvcyBlbnRyeSAqLworCQl1bnNpZ25lZCBsb25nIGxvbmcgYWRkcjsgLyogYWRkcmVzcyBmb3IgdGhpcyBjaGFuZ2UgcG9pbnQgKi8KKwl9OworCXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciBjaGFuZ2VfcG9pbnRfbGlzdFsyKkU4MjBfWF9NQVhdIF9faW5pdGRhdGE7CisJc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfcG9pbnRbMipFODIwX1hfTUFYXSBfX2luaXRkYXRhOworCXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5ICpvdmVybGFwX2xpc3RbRTgyMF9YX01BWF0gX19pbml0ZGF0YTsKKwlzdGF0aWMgc3RydWN0IGU4MjBlbnRyeSBuZXdfYmlvc1tFODIwX1hfTUFYXSBfX2luaXRkYXRhOworCXN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfdG1wOworCXVuc2lnbmVkIGxvbmcgY3VycmVudF90eXBlLCBsYXN0X3R5cGU7CisJdW5zaWduZWQgbG9uZyBsb25nIGxhc3RfYWRkcjsKKwlpbnQgY2hnaWR4LCBzdGlsbF9jaGFuZ2luZzsKKwlpbnQgb3ZlcmxhcF9lbnRyaWVzOworCWludCBuZXdfYmlvc19lbnRyeTsKKwlpbnQgb2xkX25yLCBuZXdfbnIsIGNoZ19ucjsKKwlpbnQgaTsKKworCS8qIGlmIHRoZXJlJ3Mgb25seSBvbmUgbWVtb3J5IHJlZ2lvbiwgZG9uJ3QgYm90aGVyICovCisJaWYgKCpwbnJfbWFwIDwgMikKKwkJcmV0dXJuIC0xOworCisJb2xkX25yID0gKnBucl9tYXA7CisJQlVHX09OKG9sZF9uciA+IG1heF9ucl9tYXApOworCisJLyogYmFpbCBvdXQgaWYgd2UgZmluZCBhbnkgdW5yZWFzb25hYmxlIGFkZHJlc3NlcyBpbiBiaW9zIG1hcCAqLworCWZvciAoaSA9IDA7IGkgPCBvbGRfbnI7IGkrKykKKwkJaWYgKGJpb3NtYXBbaV0uYWRkciArIGJpb3NtYXBbaV0uc2l6ZSA8IGJpb3NtYXBbaV0uYWRkcikKKwkJCXJldHVybiAtMTsKKworCS8qIGNyZWF0ZSBwb2ludGVycyBmb3IgaW5pdGlhbCBjaGFuZ2UtcG9pbnQgaW5mb3JtYXRpb24gKGZvciBzb3J0aW5nKSAqLworCWZvciAoaSA9IDA7IGkgPCAyICogb2xkX25yOyBpKyspCisJCWNoYW5nZV9wb2ludFtpXSA9ICZjaGFuZ2VfcG9pbnRfbGlzdFtpXTsKKworCS8qIHJlY29yZCBhbGwga25vd24gY2hhbmdlLXBvaW50cyAoc3RhcnRpbmcgYW5kIGVuZGluZyBhZGRyZXNzZXMpLAorCSAgIG9taXR0aW5nIHRob3NlIHRoYXQgYXJlIGZvciBlbXB0eSBtZW1vcnkgcmVnaW9ucyAqLworCWNoZ2lkeCA9IDA7CisJZm9yIChpID0gMDsgaSA8IG9sZF9ucjsgaSsrKQl7CisJCWlmIChiaW9zbWFwW2ldLnNpemUgIT0gMCkgeworCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHI7CisJCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOworCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHIgKworCQkJCWJpb3NtYXBbaV0uc2l6ZTsKKwkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07CisJCX0KKwl9CisJY2hnX25yID0gY2hnaWR4OworCisJLyogc29ydCBjaGFuZ2UtcG9pbnQgbGlzdCBieSBtZW1vcnkgYWRkcmVzc2VzIChsb3cgLT4gaGlnaCkgKi8KKwlzdGlsbF9jaGFuZ2luZyA9IDE7CisJd2hpbGUgKHN0aWxsX2NoYW5naW5nKQl7CisJCXN0aWxsX2NoYW5naW5nID0gMDsKKwkJZm9yIChpID0gMTsgaSA8IGNoZ19ucjsgaSsrKSAgeworCQkJdW5zaWduZWQgbG9uZyBsb25nIGN1cmFkZHIsIGxhc3RhZGRyOworCQkJdW5zaWduZWQgbG9uZyBsb25nIGN1cnBiYWRkciwgbGFzdHBiYWRkcjsKKworCQkJY3VyYWRkciA9IGNoYW5nZV9wb2ludFtpXS0+YWRkcjsKKwkJCWxhc3RhZGRyID0gY2hhbmdlX3BvaW50W2kgLSAxXS0+YWRkcjsKKwkJCWN1cnBiYWRkciA9IGNoYW5nZV9wb2ludFtpXS0+cGJpb3MtPmFkZHI7CisJCQlsYXN0cGJhZGRyID0gY2hhbmdlX3BvaW50W2kgLSAxXS0+cGJpb3MtPmFkZHI7CisKKwkJCS8qCisJCQkgKiBzd2FwIGVudHJpZXMsIHdoZW46CisJCQkgKgorCQkJICogY3VyYWRkciA+IGxhc3RhZGRyIG9yCisJCQkgKiBjdXJhZGRyID09IGxhc3RhZGRyIGFuZCBjdXJhZGRyID09IGN1cnBiYWRkciBhbmQKKwkJCSAqIGxhc3RhZGRyICE9IGxhc3RwYmFkZHIKKwkJCSAqLworCQkJaWYgKGN1cmFkZHIgPCBsYXN0YWRkciB8fAorCQkJICAgIChjdXJhZGRyID09IGxhc3RhZGRyICYmIGN1cmFkZHIgPT0gY3VycGJhZGRyICYmCisJCQkgICAgIGxhc3RhZGRyICE9IGxhc3RwYmFkZHIpKSB7CisJCQkJY2hhbmdlX3RtcCA9IGNoYW5nZV9wb2ludFtpXTsKKwkJCQljaGFuZ2VfcG9pbnRbaV0gPSBjaGFuZ2VfcG9pbnRbaS0xXTsKKwkJCQljaGFuZ2VfcG9pbnRbaS0xXSA9IGNoYW5nZV90bXA7CisJCQkJc3RpbGxfY2hhbmdpbmcgPSAxOworCQkJfQorCQl9CisJfQorCisJLyogY3JlYXRlIGEgbmV3IGJpb3MgbWVtb3J5IG1hcCwgcmVtb3Zpbmcgb3ZlcmxhcHMgKi8KKwlvdmVybGFwX2VudHJpZXMgPSAwOwkgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG92ZXJsYXAgdGFibGUgKi8KKwluZXdfYmlvc19lbnRyeSA9IDA7CSAvKiBpbmRleCBmb3IgY3JlYXRpbmcgbmV3IGJpb3MgbWFwIGVudHJpZXMgKi8KKwlsYXN0X3R5cGUgPSAwOwkJIC8qIHN0YXJ0IHdpdGggdW5kZWZpbmVkIG1lbW9yeSB0eXBlICovCisJbGFzdF9hZGRyID0gMDsJCSAvKiBzdGFydCB3aXRoIDAgYXMgbGFzdCBzdGFydGluZyBhZGRyZXNzICovCisKKwkvKiBsb29wIHRocm91Z2ggY2hhbmdlLXBvaW50cywgZGV0ZXJtaW5pbmcgYWZmZWN0IG9uIHRoZSBuZXcgYmlvcyBtYXAgKi8KKwlmb3IgKGNoZ2lkeCA9IDA7IGNoZ2lkeCA8IGNoZ19ucjsgY2hnaWR4KyspIHsKKwkJLyoga2VlcCB0cmFjayBvZiBhbGwgb3ZlcmxhcHBpbmcgYmlvcyBlbnRyaWVzICovCisJCWlmIChjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9PQorCQkgICAgY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zLT5hZGRyKSB7CisJCQkvKgorCQkJICogYWRkIG1hcCBlbnRyeSB0byBvdmVybGFwIGxpc3QgKD4gMSBlbnRyeQorCQkJICogaW1wbGllcyBhbiBvdmVybGFwKQorCQkJICovCisJCQlvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzKytdID0KKwkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3M7CisJCX0gZWxzZSB7CisJCQkvKgorCQkJICogcmVtb3ZlIGVudHJ5IGZyb20gbGlzdCAob3JkZXIgaW5kZXBlbmRlbnQsCisJCQkgKiBzbyBzd2FwIHdpdGggbGFzdCkKKwkJCSAqLworCQkJZm9yIChpID0gMDsgaSA8IG92ZXJsYXBfZW50cmllczsgaSsrKSB7CisJCQkJaWYgKG92ZXJsYXBfbGlzdFtpXSA9PQorCQkJCSAgICBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MpCisJCQkJCW92ZXJsYXBfbGlzdFtpXSA9CisJCQkJCQlvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzLTFdOworCQkJfQorCQkJb3ZlcmxhcF9lbnRyaWVzLS07CisJCX0KKwkJLyoKKwkJICogaWYgdGhlcmUgYXJlIG92ZXJsYXBwaW5nIGVudHJpZXMsIGRlY2lkZSB3aGljaAorCQkgKiAidHlwZSIgdG8gdXNlIChsYXJnZXIgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZSAtLQorCQkgKiAxPXVzYWJsZSwgMiwzLDQsNCs9dW51c2FibGUpCisJCSAqLworCQljdXJyZW50X3R5cGUgPSAwOworCQlmb3IgKGkgPSAwOyBpIDwgb3ZlcmxhcF9lbnRyaWVzOyBpKyspCisJCQlpZiAob3ZlcmxhcF9saXN0W2ldLT50eXBlID4gY3VycmVudF90eXBlKQorCQkJCWN1cnJlbnRfdHlwZSA9IG92ZXJsYXBfbGlzdFtpXS0+dHlwZTsKKwkJLyoKKwkJICogY29udGludWUgYnVpbGRpbmcgdXAgbmV3IGJpb3MgbWFwIGJhc2VkIG9uIHRoaXMKKwkJICogaW5mb3JtYXRpb24KKwkJICovCisJCWlmIChjdXJyZW50X3R5cGUgIT0gbGFzdF90eXBlKQl7CisJCQlpZiAobGFzdF90eXBlICE9IDApCSB7CisJCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgPQorCQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciAtIGxhc3RfYWRkcjsKKwkJCQkvKgorCQkJCSAqIG1vdmUgZm9yd2FyZCBvbmx5IGlmIHRoZSBuZXcgc2l6ZQorCQkJCSAqIHdhcyBub24temVybworCQkJCSAqLworCQkJCWlmIChuZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSAhPSAwKQorCQkJCQkvKgorCQkJCQkgKiBubyBtb3JlIHNwYWNlIGxlZnQgZm9yIG5ldworCQkJCQkgKiBiaW9zIGVudHJpZXMgPworCQkJCQkgKi8KKwkJCQkJaWYgKCsrbmV3X2Jpb3NfZW50cnkgPj0gbWF4X25yX21hcCkKKwkJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGN1cnJlbnRfdHlwZSAhPSAwKQl7CisJCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLmFkZHIgPQorCQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKKwkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0udHlwZSA9IGN1cnJlbnRfdHlwZTsKKwkJCQlsYXN0X2FkZHIgPSBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKKwkJCX0KKwkJCWxhc3RfdHlwZSA9IGN1cnJlbnRfdHlwZTsKKwkJfQorCX0KKwkvKiByZXRhaW4gY291bnQgZm9yIG5ldyBiaW9zIGVudHJpZXMgKi8KKwluZXdfbnIgPSBuZXdfYmlvc19lbnRyeTsKKworCS8qIGNvcHkgbmV3IGJpb3MgbWFwcGluZyBpbnRvIG9yaWdpbmFsIGxvY2F0aW9uICovCisJbWVtY3B5KGJpb3NtYXAsIG5ld19iaW9zLCBuZXdfbnIgKiBzaXplb2Yoc3RydWN0IGU4MjBlbnRyeSkpOworCSpwbnJfbWFwID0gbmV3X25yOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IF9fYXBwZW5kX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBucl9tYXApCit7CisJd2hpbGUgKG5yX21hcCkgeworCQl1NjQgc3RhcnQgPSBiaW9zbWFwLT5hZGRyOworCQl1NjQgc2l6ZSA9IGJpb3NtYXAtPnNpemU7CisJCXU2NCBlbmQgPSBzdGFydCArIHNpemU7CisJCXUzMiB0eXBlID0gYmlvc21hcC0+dHlwZTsKKworCQkvKiBPdmVyZmxvdyBpbiA2NCBiaXRzPyBJZ25vcmUgdGhlIG1lbW9yeSBtYXAuICovCisJCWlmIChzdGFydCA+IGVuZCkKKwkJCXJldHVybiAtMTsKKworCQllODIwX2FkZF9yZWdpb24oc3RhcnQsIHNpemUsIHR5cGUpOworCisJCWJpb3NtYXArKzsKKwkJbnJfbWFwLS07CisJfQorCXJldHVybiAwOworfQorCisvKgorICogQ29weSB0aGUgQklPUyBlODIwIG1hcCBpbnRvIGEgc2FmZSBwbGFjZS4KKyAqCisgKiBTYW5pdHktY2hlY2sgaXQgd2hpbGUgd2UncmUgYXQgaXQuLgorICoKKyAqIElmIHdlJ3JlIGx1Y2t5IGFuZCBsaXZlIG9uIGEgbW9kZXJuIHN5c3RlbSwgdGhlIHNldHVwIGNvZGUKKyAqIHdpbGwgaGF2ZSBnaXZlbiB1cyBhIG1lbW9yeSBtYXAgdGhhdCB3ZSBjYW4gdXNlIHRvIHByb3Blcmx5CisgKiBzZXQgdXAgbWVtb3J5LiAgSWYgd2UgYXJlbid0LCB3ZSdsbCBmYWtlIGEgbWVtb3J5IG1hcC4KKyAqLworc3RhdGljIGludCBfX2luaXQgYXBwZW5kX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBucl9tYXApCit7CisJLyogT25seSBvbmUgbWVtb3J5IHJlZ2lvbiAob3IgbmVnYXRpdmUpPyBJZ25vcmUgaXQgKi8KKwlpZiAobnJfbWFwIDwgMikKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIF9fYXBwZW5kX2U4MjBfbWFwKGJpb3NtYXAsIG5yX21hcCk7Cit9CisKK3N0YXRpYyB1NjQgX19pbml0IGU4MjBfdXBkYXRlX3JhbmdlX21hcChzdHJ1Y3QgZTgyMG1hcCAqZTgyMHgsIHU2NCBzdGFydCwKKwkJCQkJdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAorCQkJCQl1bnNpZ25lZCBuZXdfdHlwZSkKK3sKKwlpbnQgaTsKKwl1NjQgcmVhbF91cGRhdGVkX3NpemUgPSAwOworCisJQlVHX09OKG9sZF90eXBlID09IG5ld190eXBlKTsKKworCWlmIChzaXplID4gKFVMTE9OR19NQVggLSBzdGFydCkpCisJCXNpemUgPSBVTExPTkdfTUFYIC0gc3RhcnQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIweC0+bWFwW2ldOworCQl1NjQgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKwkJaWYgKGVpLT50eXBlICE9IG9sZF90eXBlKQorCQkJY29udGludWU7CisJCS8qIHRvdGFsbHkgY292ZXJlZD8gKi8KKwkJaWYgKGVpLT5hZGRyID49IHN0YXJ0ICYmCisJCSAgICAoZWktPmFkZHIgKyBlaS0+c2l6ZSkgPD0gKHN0YXJ0ICsgc2l6ZSkpIHsKKwkJCWVpLT50eXBlID0gbmV3X3R5cGU7CisJCQlyZWFsX3VwZGF0ZWRfc2l6ZSArPSBlaS0+c2l6ZTsKKwkJCWNvbnRpbnVlOworCQl9CisJCS8qIHBhcnRpYWxseSBjb3ZlcmVkICovCisJCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCBlaS0+YWRkcik7CisJCWZpbmFsX2VuZCA9IG1pbihzdGFydCArIHNpemUsIGVpLT5hZGRyICsgZWktPnNpemUpOworCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKQorCQkJY29udGludWU7CisJCWU4MjBfYWRkX3JlZ2lvbihmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gZmluYWxfc3RhcnQsCisJCQkJCSBuZXdfdHlwZSk7CisJCXJlYWxfdXBkYXRlZF9zaXplICs9IGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0OworCisJCWVpLT5zaXplIC09IGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0OworCQlpZiAoZWktPmFkZHIgPCBmaW5hbF9zdGFydCkKKwkJCWNvbnRpbnVlOworCQllaS0+YWRkciA9IGZpbmFsX2VuZDsKKwl9CisJcmV0dXJuIHJlYWxfdXBkYXRlZF9zaXplOworfQorCit1NjQgX19pbml0IGU4MjBfdXBkYXRlX3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAorCQkJICAgICB1bnNpZ25lZCBuZXdfdHlwZSkKK3sKKwlyZXR1cm4gZTgyMF91cGRhdGVfcmFuZ2VfbWFwKCZlODIwLCBzdGFydCwgc2l6ZSwgb2xkX3R5cGUsIG5ld190eXBlKTsKK30KKworc3RhdGljIHU2NCBfX2luaXQgZTgyMF91cGRhdGVfcmFuZ2Vfc2F2ZWQodTY0IHN0YXJ0LCB1NjQgc2l6ZSwKKwkJCQkJICB1bnNpZ25lZCBvbGRfdHlwZSwgdW5zaWduZWQgbmV3X3R5cGUpCit7CisJcmV0dXJuIGU4MjBfdXBkYXRlX3JhbmdlX21hcCgmZTgyMF9zYXZlZCwgc3RhcnQsIHNpemUsIG9sZF90eXBlLAorCQkJCSAgICAgbmV3X3R5cGUpOworfQorCisvKiBtYWtlIGU4MjAgbm90IGNvdmVyIHRoZSByYW5nZSAqLwordTY0IF9faW5pdCBlODIwX3JlbW92ZV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKKwkJCSAgICAgaW50IGNoZWNrdHlwZSkKK3sKKwlpbnQgaTsKKwl1NjQgcmVhbF9yZW1vdmVkX3NpemUgPSAwOworCisJaWYgKHNpemUgPiAoVUxMT05HX01BWCAtIHN0YXJ0KSkKKwkJc2l6ZSA9IFVMTE9OR19NQVggLSBzdGFydDsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCQl1NjQgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKworCQlpZiAoY2hlY2t0eXBlICYmIGVpLT50eXBlICE9IG9sZF90eXBlKQorCQkJY29udGludWU7CisJCS8qIHRvdGFsbHkgY292ZXJlZD8gKi8KKwkJaWYgKGVpLT5hZGRyID49IHN0YXJ0ICYmCisJCSAgICAoZWktPmFkZHIgKyBlaS0+c2l6ZSkgPD0gKHN0YXJ0ICsgc2l6ZSkpIHsKKwkJCXJlYWxfcmVtb3ZlZF9zaXplICs9IGVpLT5zaXplOworCQkJbWVtc2V0KGVpLCAwLCBzaXplb2Yoc3RydWN0IGU4MjBlbnRyeSkpOworCQkJY29udGludWU7CisJCX0KKwkJLyogcGFydGlhbGx5IGNvdmVyZWQgKi8KKwkJZmluYWxfc3RhcnQgPSBtYXgoc3RhcnQsIGVpLT5hZGRyKTsKKwkJZmluYWxfZW5kID0gbWluKHN0YXJ0ICsgc2l6ZSwgZWktPmFkZHIgKyBlaS0+c2l6ZSk7CisJCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpCisJCQljb250aW51ZTsKKwkJcmVhbF9yZW1vdmVkX3NpemUgKz0gZmluYWxfZW5kIC0gZmluYWxfc3RhcnQ7CisKKwkJZWktPnNpemUgLT0gZmluYWxfZW5kIC0gZmluYWxfc3RhcnQ7CisJCWlmIChlaS0+YWRkciA8IGZpbmFsX3N0YXJ0KQorCQkJY29udGludWU7CisJCWVpLT5hZGRyID0gZmluYWxfZW5kOworCX0KKwlyZXR1cm4gcmVhbF9yZW1vdmVkX3NpemU7Cit9CisKK3ZvaWQgX19pbml0IHVwZGF0ZV9lODIwKHZvaWQpCit7CisJaW50IG5yX21hcDsKKworCW5yX21hcCA9IGU4MjAubnJfbWFwOworCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZucl9tYXApKQorCQlyZXR1cm47CisJZTgyMC5ucl9tYXAgPSBucl9tYXA7CisJcHJpbnRrKEtFUk5fSU5GTyAibW9kaWZpZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCWU4MjBfcHJpbnRfbWFwKCJtb2RpZmllZCIpOworfQorc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9lODIwX3NhdmVkKHZvaWQpCit7CisJaW50IG5yX21hcDsKKworCW5yX21hcCA9IGU4MjBfc2F2ZWQubnJfbWFwOworCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwX3NhdmVkLm1hcCwgQVJSQVlfU0laRShlODIwX3NhdmVkLm1hcCksICZucl9tYXApKQorCQlyZXR1cm47CisJZTgyMF9zYXZlZC5ucl9tYXAgPSBucl9tYXA7Cit9CisjZGVmaW5lIE1BWF9HQVBfRU5EIDB4MTAwMDAwMDAwdWxsCisvKgorICogU2VhcmNoIGZvciBhIGdhcCBpbiB0aGUgZTgyMCBtZW1vcnkgc3BhY2UgZnJvbSBzdGFydF9hZGRyIHRvIGVuZF9hZGRyLgorICovCitfX2luaXQgaW50IGU4MjBfc2VhcmNoX2dhcCh1bnNpZ25lZCBsb25nICpnYXBzdGFydCwgdW5zaWduZWQgbG9uZyAqZ2Fwc2l6ZSwKKwkJdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyLCB1bnNpZ25lZCBsb25nIGxvbmcgZW5kX2FkZHIpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIGxhc3Q7CisJaW50IGkgPSBlODIwLm5yX21hcDsKKwlpbnQgZm91bmQgPSAwOworCisJbGFzdCA9IChlbmRfYWRkciAmJiBlbmRfYWRkciA8IE1BWF9HQVBfRU5EKSA/IGVuZF9hZGRyIDogTUFYX0dBUF9FTkQ7CisKKwl3aGlsZSAoLS1pID49IDApIHsKKwkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKKwkJdW5zaWduZWQgbG9uZyBsb25nIGVuZCA9IHN0YXJ0ICsgZTgyMC5tYXBbaV0uc2l6ZTsKKworCQlpZiAoZW5kIDwgc3RhcnRfYWRkcikKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIFNpbmNlICJsYXN0IiBpcyBhdCBtb3N0IDRHQiwgd2Uga25vdyB3ZSdsbAorCQkgKiBmaXQgaW4gMzIgYml0cyBpZiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlCisJCSAqLworCQlpZiAobGFzdCA+IGVuZCkgeworCQkJdW5zaWduZWQgbG9uZyBnYXAgPSBsYXN0IC0gZW5kOworCisJCQlpZiAoZ2FwID49ICpnYXBzaXplKSB7CisJCQkJKmdhcHNpemUgPSBnYXA7CisJCQkJKmdhcHN0YXJ0ID0gZW5kOworCQkJCWZvdW5kID0gMTsKKwkJCX0KKwkJfQorCQlpZiAoc3RhcnQgPCBsYXN0KQorCQkJbGFzdCA9IHN0YXJ0OworCX0KKwlyZXR1cm4gZm91bmQ7Cit9CisKKy8qCisgKiBTZWFyY2ggZm9yIHRoZSBiaWdnZXN0IGdhcCBpbiB0aGUgbG93IDMyIGJpdHMgb2YgdGhlIGU4MjAKKyAqIG1lbW9yeSBzcGFjZS4gIFdlIHBhc3MgdGhpcyBzcGFjZSB0byBQQ0kgdG8gYXNzaWduIE1NSU8gcmVzb3VyY2VzCisgKiBmb3IgaG90cGx1ZyBvciB1bmNvbmZpZ3VyZWQgZGV2aWNlcyBpbi4KKyAqIEhvcGVmdWxseSB0aGUgQklPUyBsZXQgZW5vdWdoIHNwYWNlIGxlZnQuCisgKi8KK19faW5pdCB2b2lkIGU4MjBfc2V0dXBfZ2FwKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBnYXBzdGFydCwgZ2Fwc2l6ZSwgcm91bmQ7CisJaW50IGZvdW5kOworCisJZ2Fwc3RhcnQgPSAweDEwMDAwMDAwOworCWdhcHNpemUgPSAweDQwMDAwMDsKKwlmb3VuZCAgPSBlODIwX3NlYXJjaF9nYXAoJmdhcHN0YXJ0LCAmZ2Fwc2l6ZSwgMCwgTUFYX0dBUF9FTkQpOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmICghZm91bmQpIHsKKwkJZ2Fwc3RhcnQgPSAobWF4X3BmbiA8PCBQQUdFX1NISUZUKSArIDEwMjQqMTAyNDsKKwkJcHJpbnRrKEtFUk5fRVJSICJQQ0k6IFdhcm5pbmc6IENhbm5vdCBmaW5kIGEgZ2FwIGluIHRoZSAzMmJpdCAiCisJCSAgICAgICAiYWRkcmVzcyByYW5nZVxuIgorCQkgICAgICAgS0VSTl9FUlIgIlBDSTogVW5hc3NpZ25lZCBkZXZpY2VzIHdpdGggMzJiaXQgcmVzb3VyY2UgIgorCQkgICAgICAgInJlZ2lzdGVycyBtYXkgYnJlYWshXG4iKTsKKwl9CisjZW5kaWYKKworCS8qCisJICogU2VlIGhvdyBtdWNoIHdlIHdhbnQgdG8gcm91bmQgdXA6IHN0YXJ0IG9mZiB3aXRoCisJICogcm91bmRpbmcgdG8gdGhlIG5leHQgMU1CIGFyZWEuCisJICovCisJcm91bmQgPSAweDEwMDAwMDsKKwl3aGlsZSAoKGdhcHNpemUgPj4gNCkgPiByb3VuZCkKKwkJcm91bmQgKz0gcm91bmQ7CisJLyogRnVuIHdpdGggdHdvJ3MgY29tcGxlbWVudCAqLworCXBjaV9tZW1fc3RhcnQgPSAoZ2Fwc3RhcnQgKyByb3VuZCkgJiAtcm91bmQ7CisKKwlwcmludGsoS0VSTl9JTkZPCisJICAgICAgICJBbGxvY2F0aW5nIFBDSSByZXNvdXJjZXMgc3RhcnRpbmcgYXQgJWx4IChnYXA6ICVseDolbHgpXG4iLAorCSAgICAgICBwY2lfbWVtX3N0YXJ0LCBnYXBzdGFydCwgZ2Fwc2l6ZSk7Cit9CisKKy8qKgorICogQmVjYXVzZSBvZiB0aGUgc2l6ZSBsaW1pdGF0aW9uIG9mIHN0cnVjdCBib290X3BhcmFtcywgb25seSBmaXJzdAorICogMTI4IEU4MjAgbWVtb3J5IGVudHJpZXMgYXJlIHBhc3NlZCB0byBrZXJuZWwgdmlhCisgKiBib290X3BhcmFtcy5lODIwX21hcCwgb3RoZXJzIGFyZSBwYXNzZWQgdmlhIFNFVFVQX0U4MjBfRVhUIG5vZGUgb2YKKyAqIGxpbmtlZCBsaXN0IG9mIHN0cnVjdCBzZXR1cF9kYXRhLCB3aGljaCBpcyBwYXJzZWQgaGVyZS4KKyAqLwordm9pZCBfX2luaXQgcGFyc2VfZTgyMF9leHQoc3RydWN0IHNldHVwX2RhdGEgKnNkYXRhLCB1bnNpZ25lZCBsb25nIHBhX2RhdGEpCit7CisJdTMyIG1hcF9sZW47CisJaW50IGVudHJpZXM7CisJc3RydWN0IGU4MjBlbnRyeSAqZXh0bWFwOworCisJZW50cmllcyA9IHNkYXRhLT5sZW4gLyBzaXplb2Yoc3RydWN0IGU4MjBlbnRyeSk7CisJbWFwX2xlbiA9IHNkYXRhLT5sZW4gKyBzaXplb2Yoc3RydWN0IHNldHVwX2RhdGEpOworCWlmIChtYXBfbGVuID4gUEFHRV9TSVpFKQorCQlzZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgbWFwX2xlbik7CisJZXh0bWFwID0gKHN0cnVjdCBlODIwZW50cnkgKikoc2RhdGEtPmRhdGEpOworCV9fYXBwZW5kX2U4MjBfbWFwKGV4dG1hcCwgZW50cmllcyk7CisJc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmZTgyMC5ucl9tYXApOworCWlmIChtYXBfbGVuID4gUEFHRV9TSVpFKQorCQllYXJseV9pb3VubWFwKHNkYXRhLCBtYXBfbGVuKTsKKwlwcmludGsoS0VSTl9JTkZPICJleHRlbmRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJZTgyMF9wcmludF9tYXAoImV4dGVuZGVkIik7Cit9CisKKyNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpIHx8IFwKKwkoZGVmaW5lZChDT05GSUdfWDg2XzMyKSAmJiBkZWZpbmVkKENPTkZJR19ISUJFUk5BVElPTikpCisvKioKKyAqIEZpbmQgdGhlIHJhbmdlcyBvZiBwaHlzaWNhbCBhZGRyZXNzZXMgdGhhdCBkbyBub3QgY29ycmVzcG9uZCB0bworICogZTgyMCBSQU0gYXJlYXMgYW5kIG1hcmsgdGhlIGNvcnJlc3BvbmRpbmcgcGFnZXMgYXMgbm9zYXZlIGZvcgorICogaGliZXJuYXRpb24gKDMyIGJpdCkgb3Igc29mdHdhcmUgc3VzcGVuZCBhbmQgc3VzcGVuZCB0byBSQU0gKDY0IGJpdCkuCisgKgorICogVGhpcyBmdW5jdGlvbiByZXF1aXJlcyB0aGUgZTgyMCBtYXAgdG8gYmUgc29ydGVkIGFuZCB3aXRob3V0IGFueQorICogb3ZlcmxhcHBpbmcgZW50cmllcyBhbmQgYXNzdW1lcyB0aGUgZmlyc3QgZTgyMCBhcmVhIHRvIGJlIFJBTS4KKyAqLwordm9pZCBfX2luaXQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbGltaXRfcGZuKQoreworCWludCBpOworCXVuc2lnbmVkIGxvbmcgcGZuOworCisJcGZuID0gUEZOX0RPV04oZTgyMC5tYXBbMF0uYWRkciArIGU4MjAubWFwWzBdLnNpemUpOworCWZvciAoaSA9IDE7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOworCisJCWlmIChwZm4gPCBQRk5fVVAoZWktPmFkZHIpKQorCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihwZm4sIFBGTl9VUChlaS0+YWRkcikpOworCisJCXBmbiA9IFBGTl9ET1dOKGVpLT5hZGRyICsgZWktPnNpemUpOworCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0gJiYgZWktPnR5cGUgIT0gRTgyMF9SRVNFUlZFRF9LRVJOKQorCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihQRk5fVVAoZWktPmFkZHIpLCBwZm4pOworCisJCWlmIChwZm4gPj0gbGltaXRfcGZuKQorCQkJYnJlYWs7CisJfQorfQorI2VuZGlmCisKKy8qCisgKiBFYXJseSByZXNlcnZlZCBtZW1vcnkgYXJlYXMuCisgKi8KKyNkZWZpbmUgTUFYX0VBUkxZX1JFUyAyMAorCitzdHJ1Y3QgZWFybHlfcmVzIHsKKwl1NjQgc3RhcnQsIGVuZDsKKwljaGFyIG5hbWVbMTZdOworCWNoYXIgb3ZlcmxhcF9vazsKK307CitzdGF0aWMgc3RydWN0IGVhcmx5X3JlcyBlYXJseV9yZXNbTUFYX0VBUkxZX1JFU10gX19pbml0ZGF0YSA9IHsKKwl7IDAsIFBBR0VfU0laRSwgIkJJT1MgZGF0YSBwYWdlIiB9LAkvKiBCSU9TIGRhdGEgcGFnZSAqLworI2lmIGRlZmluZWQoQ09ORklHX1g4Nl82NCkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1RSQU1QT0xJTkUpCisJeyBUUkFNUE9MSU5FX0JBU0UsIFRSQU1QT0xJTkVfQkFTRSArIDIgKiBQQUdFX1NJWkUsICJUUkFNUE9MSU5FIiB9LAorI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzMyKSAmJiBkZWZpbmVkKENPTkZJR19TTVApCisJLyoKKwkgKiBCdXQgZmlyc3QgcGluY2ggYSBmZXcgZm9yIHRoZSBzdGFjay90cmFtcG9saW5lIHN0dWZmCisJICogRklYTUU6IERvbid0IG5lZWQgdGhlIGV4dHJhIHBhZ2UgYXQgNEssIGJ1dCBuZWVkIHRvIGZpeAorCSAqIHRyYW1wb2xpbmUgYmVmb3JlIHJlbW92aW5nIGl0LiAoc2VlIHRoZSBHRFQgc3R1ZmYpCisJICovCisJeyBQQUdFX1NJWkUsIFBBR0VfU0laRSArIFBBR0VfU0laRSwgIkVYIFRSQU1QT0xJTkUiIH0sCisJLyoKKwkgKiBIYXMgdG8gYmUgaW4gdmVyeSBsb3cgbWVtb3J5IHNvIHdlIGNhbiBleGVjdXRlCisJICogcmVhbC1tb2RlIEFQIGNvZGUuCisJICovCisJeyBUUkFNUE9MSU5FX0JBU0UsIFRSQU1QT0xJTkVfQkFTRSArIFBBR0VfU0laRSwgIlRSQU1QT0xJTkUiIH0sCisjZW5kaWYKKwl7fQorfTsKKworc3RhdGljIGludCBfX2luaXQgZmluZF9vdmVybGFwcGVkX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZWFybHlfcmVzICpyOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7CisJCXIgPSAmZWFybHlfcmVzW2ldOworCQlpZiAoZW5kID4gci0+c3RhcnQgJiYgc3RhcnQgPCByLT5lbmQpCisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gaTsKK30KKworLyoKKyAqIERyb3AgdGhlIGktdGggcmFuZ2UgZnJvbSB0aGUgZWFybHkgcmVzZXJ2YXRpb24gbWFwLAorICogYnkgY29weWluZyBhbnkgaGlnaGVyIHJhbmdlcyBkb3duIG9uZSBvdmVyIGl0LCBhbmQKKyAqIGNsZWFyaW5nIHdoYXQgaGFkIGJlZW4gdGhlIGxhc3Qgc2xvdC4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IGRyb3BfcmFuZ2UoaW50IGkpCit7CisJaW50IGo7CisKKwlmb3IgKGogPSBpICsgMTsgaiA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2pdLmVuZDsgaisrKQorCQk7CisKKwltZW1tb3ZlKCZlYXJseV9yZXNbaV0sICZlYXJseV9yZXNbaSArIDFdLAorCSAgICAgICAoaiAtIDEgLSBpKSAqIHNpemVvZihzdHJ1Y3QgZWFybHlfcmVzKSk7CisKKwllYXJseV9yZXNbaiAtIDFdLmVuZCA9IDA7Cit9CisKKy8qCisgKiBTcGxpdCBhbnkgZXhpc3RpbmcgcmFuZ2VzIHRoYXQ6CisgKiAgMSkgYXJlIG1hcmtlZCAnb3ZlcmxhcF9vaycsIGFuZAorICogIDIpIG92ZXJsYXAgd2l0aCB0aGUgc3RhdGVkIHJhbmdlIFtzdGFydCwgZW5kKQorICogaW50byB3aGF0ZXZlciBwb3J0aW9uIChpZiBhbnkpIG9mIHRoZSBleGlzdGluZyByYW5nZSBpcyBlbnRpcmVseQorICogYmVsb3cgb3IgZW50aXJlbHkgYWJvdmUgdGhlIHN0YXRlZCByYW5nZS4gIERyb3AgdGhlIHBvcnRpb24KKyAqIG9mIHRoZSBleGlzdGluZyByYW5nZSB0aGF0IG92ZXJsYXBzIHdpdGggdGhlIHN0YXRlZCByYW5nZSwKKyAqIHdoaWNoIHdpbGwgYWxsb3cgdGhlIGNhbGxlciBvZiB0aGlzIHJvdXRpbmUgdG8gdGhlbiBhZGQgdGhhdAorICogc3RhdGVkIHJhbmdlIHdpdGhvdXQgY29uZmxpY3Rpbmcgd2l0aCBhbnkgZXhpc3RpbmcgcmFuZ2UuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBkcm9wX292ZXJsYXBzX3RoYXRfYXJlX29rKHU2NCBzdGFydCwgdTY0IGVuZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgZWFybHlfcmVzICpyOworCXU2NCBsb3dlcl9zdGFydCwgbG93ZXJfZW5kOworCXU2NCB1cHBlcl9zdGFydCwgdXBwZXJfZW5kOworCWNoYXIgbmFtZVsxNl07CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKKwkJciA9ICZlYXJseV9yZXNbaV07CisKKwkJLyogQ29udGludWUgcGFzdCBub24tb3ZlcmxhcHBpbmcgcmFuZ2VzICovCisJCWlmIChlbmQgPD0gci0+c3RhcnQgfHwgc3RhcnQgPj0gci0+ZW5kKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJICogTGVhdmUgbm9uLW9rIG92ZXJsYXBzIGFzIGlzOyBsZXQgY2FsbGVyCisJCSAqIHBhbmljICJPdmVybGFwcGluZyBlYXJseSByZXNlcnZhdGlvbnMiCisJCSAqIHdoZW4gaXQgaGl0cyB0aGlzIG92ZXJsYXAuCisJCSAqLworCQlpZiAoIXItPm92ZXJsYXBfb2spCisJCQlyZXR1cm47CisKKwkJLyoKKwkJICogV2UgaGF2ZSBhbiBvayBvdmVybGFwLiAgV2Ugd2lsbCBkcm9wIGl0IGZyb20gdGhlIGVhcmx5CisJCSAqIHJlc2VydmF0aW9uIG1hcCwgYW5kIGFkZCBiYWNrIGluIGFueSBub24tb3ZlcmxhcHBpbmcKKwkJICogcG9ydGlvbnMgKGxvd2VyIG9yIHVwcGVyKSBhcyBzZXBhcmF0ZSwgb3ZlcmxhcF9vaywKKwkJICogbm9uLW92ZXJsYXBwaW5nIHJhbmdlcy4KKwkJICovCisKKwkJLyogMS4gTm90ZSBhbnkgbm9uLW92ZXJsYXBwaW5nIChsb3dlciBvciB1cHBlcikgcmFuZ2VzLiAqLworCQlzdHJuY3B5KG5hbWUsIHItPm5hbWUsIHNpemVvZihuYW1lKSAtIDEpOworCisJCWxvd2VyX3N0YXJ0ID0gbG93ZXJfZW5kID0gMDsKKwkJdXBwZXJfc3RhcnQgPSB1cHBlcl9lbmQgPSAwOworCQlpZiAoci0+c3RhcnQgPCBzdGFydCkgeworCQkgCWxvd2VyX3N0YXJ0ID0gci0+c3RhcnQ7CisJCQlsb3dlcl9lbmQgPSBzdGFydDsKKwkJfQorCQlpZiAoci0+ZW5kID4gZW5kKSB7CisJCQl1cHBlcl9zdGFydCA9IGVuZDsKKwkJCXVwcGVyX2VuZCA9IHItPmVuZDsKKwkJfQorCisJCS8qIDIuIERyb3AgdGhlIG9yaWdpbmFsIG9rIG92ZXJsYXBwaW5nIHJhbmdlICovCisJCWRyb3BfcmFuZ2UoaSk7CisKKwkJaS0tOwkJLyogcmVzdW1lIGZvci1sb29wIG9uIGNvcGllZCBkb3duIGVudHJ5ICovCisKKwkJLyogMy4gQWRkIGJhY2sgaW4gYW55IG5vbi1vdmVybGFwcGluZyByYW5nZXMuICovCisJCWlmIChsb3dlcl9lbmQpCisJCQlyZXNlcnZlX2Vhcmx5X292ZXJsYXBfb2sobG93ZXJfc3RhcnQsIGxvd2VyX2VuZCwgbmFtZSk7CisJCWlmICh1cHBlcl9lbmQpCisJCQlyZXNlcnZlX2Vhcmx5X292ZXJsYXBfb2sodXBwZXJfc3RhcnQsIHVwcGVyX2VuZCwgbmFtZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBfX2luaXQgX19yZXNlcnZlX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCwgY2hhciAqbmFtZSwKKwkJCQkJCWludCBvdmVybGFwX29rKQoreworCWludCBpOworCXN0cnVjdCBlYXJseV9yZXMgKnI7CisKKwlpID0gZmluZF9vdmVybGFwcGVkX2Vhcmx5KHN0YXJ0LCBlbmQpOworCWlmIChpID49IE1BWF9FQVJMWV9SRVMpCisJCXBhbmljKCJUb28gbWFueSBlYXJseSByZXNlcnZhdGlvbnMiKTsKKwlyID0gJmVhcmx5X3Jlc1tpXTsKKwlpZiAoci0+ZW5kKQorCQlwYW5pYygiT3ZlcmxhcHBpbmcgZWFybHkgcmVzZXJ2YXRpb25zICIKKwkJICAgICAgIiVsbHgtJWxseCAlcyB0byAlbGx4LSVsbHggJXNcbiIsCisJCSAgICAgIHN0YXJ0LCBlbmQgLSAxLCBuYW1lP25hbWU6IiIsIHItPnN0YXJ0LAorCQkgICAgICByLT5lbmQgLSAxLCByLT5uYW1lKTsKKwlyLT5zdGFydCA9IHN0YXJ0OworCXItPmVuZCA9IGVuZDsKKwlyLT5vdmVybGFwX29rID0gb3ZlcmxhcF9vazsKKwlpZiAobmFtZSkKKwkJc3RybmNweShyLT5uYW1lLCBuYW1lLCBzaXplb2Yoci0+bmFtZSkgLSAxKTsKK30KKworLyoKKyAqIEEgZmV3IGVhcmx5IHJlc2VydnRhdGlvbnMgY29tZSBoZXJlLgorICoKKyAqIFRoZSAnb3ZlcmxhcF9vaycgaW4gdGhlIG5hbWUgb2YgdGhpcyByb3V0aW5lIGRvZXMgLW5vdC0gbWVhbiBpdAorICogaXMgb2sgZm9yIHRoZXNlIHJlc2VydmF0aW9ucyB0byBvdmVybGFwIGFuIGVhcmxpZXIgcmVzZXJ2YXRpb24uCisgKiBSYXRoZXIgaXQgbWVhbnMgdGhhdCBpdCBpcyBvayBmb3Igc3Vic2VxdWVudCByZXNlcnZhdGlvbnMgdG8KKyAqIG92ZXJsYXAgdGhpcyBvbmUuCisgKgorICogVXNlIHRoaXMgZW50cnkgcG9pbnQgdG8gcmVzZXJ2ZSBlYXJseSByYW5nZXMgd2hlbiB5b3UgYXJlIGRvaW5nCisgKiBzbyBvdXQgb2YgIlBhcmFub2lhIiwgcmVzZXJ2aW5nIHBlcmhhcHMgbW9yZSBtZW1vcnkgdGhhbiB5b3UgbmVlZCwKKyAqIGp1c3QgaW4gY2FzZSwgYW5kIGRvbid0IG1pbmQgYSBzdWJzZXF1ZW50IG92ZXJsYXBwaW5nIHJlc2VydmF0aW9uCisgKiB0aGF0IGlzIGtub3duIHRvIGJlIG5lZWRlZC4KKyAqCisgKiBUaGUgZHJvcF9vdmVybGFwc190aGF0X2FyZV9vaygpIGNhbGwgaGVyZSBpc24ndCByZWFsbHkgbmVlZGVkLgorICogSXQgd291bGQgYmUgbmVlZGVkIGlmIHdlIGhhZCB0d28gY29sbGlkaW5nICdvdmVybGFwX29rJworICogcmVzZXJ2YXRpb25zLCBzbyB0aGF0IHRoZSBzZWNvbmQgc3VjaCB3b3VsZCBub3QgcGFuaWMgb24gdGhlCisgKiBvdmVybGFwIHdpdGggdGhlIGZpcnN0LiAgV2UgZG9uJ3QgaGF2ZSBhbnkgc3VjaCBhcyBvZiB0aGlzCisgKiB3cml0aW5nLCBidXQgbWlnaHQgYXMgd2VsbCB0b2xlcmF0ZSBzdWNoIGlmIGl0IGhhcHBlbnMgaW4KKyAqIHRoZSBmdXR1cmUuCisgKi8KK3ZvaWQgX19pbml0IHJlc2VydmVfZWFybHlfb3ZlcmxhcF9vayh1NjQgc3RhcnQsIHU2NCBlbmQsIGNoYXIgKm5hbWUpCit7CisJZHJvcF9vdmVybGFwc190aGF0X2FyZV9vayhzdGFydCwgZW5kKTsKKwlfX3Jlc2VydmVfZWFybHkoc3RhcnQsIGVuZCwgbmFtZSwgMSk7Cit9CisKKy8qCisgKiBNb3N0IGVhcmx5IHJlc2VydmF0aW9ucyBjb21lIGhlcmUuCisgKgorICogV2UgZmlyc3QgaGF2ZSBkcm9wX292ZXJsYXBzX3RoYXRfYXJlX29rKCkgZHJvcCBhbnkgcHJlLWV4aXN0aW5nCisgKiAnb3ZlcmxhcF9vaycgcmFuZ2VzLCBzbyB0aGF0IHdlIGNhbiB0aGVuIHJlc2VydmUgdGhpcyBtZW1vcnkKKyAqIHJhbmdlIHdpdGhvdXQgcmlzayBvZiBwYW5pYydpbmcgb24gYW4gb3ZlcmxhcHBpbmcgb3ZlcmxhcF9vaworICogZWFybHkgcmVzZXJ2YXRpb24uCisgKi8KK3ZvaWQgX19pbml0IHJlc2VydmVfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kLCBjaGFyICpuYW1lKQoreworCWRyb3Bfb3ZlcmxhcHNfdGhhdF9hcmVfb2soc3RhcnQsIGVuZCk7CisJX19yZXNlcnZlX2Vhcmx5KHN0YXJ0LCBlbmQsIG5hbWUsIDApOworfQorCit2b2lkIF9faW5pdCBmcmVlX2Vhcmx5KHU2NCBzdGFydCwgdTY0IGVuZCkKK3sKKwlzdHJ1Y3QgZWFybHlfcmVzICpyOworCWludCBpOworCisJaSA9IGZpbmRfb3ZlcmxhcHBlZF9lYXJseShzdGFydCwgZW5kKTsKKwlyID0gJmVhcmx5X3Jlc1tpXTsKKwlpZiAoaSA+PSBNQVhfRUFSTFlfUkVTIHx8IHItPmVuZCAhPSBlbmQgfHwgci0+c3RhcnQgIT0gc3RhcnQpCisJCXBhbmljKCJmcmVlX2Vhcmx5IG9uIG5vdCByZXNlcnZlZCBhcmVhOiAlbGx4LSVsbHghIiwKKwkJCSBzdGFydCwgZW5kIC0gMSk7CisKKwlkcm9wX3JhbmdlKGkpOworfQorCit2b2lkIF9faW5pdCBlYXJseV9yZXNfdG9fYm9vdG1lbSh1NjQgc3RhcnQsIHU2NCBlbmQpCit7CisJaW50IGksIGNvdW50OworCXU2NCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOworCisJY291bnQgID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspCisJCWNvdW50Kys7CisKKwlwcmludGsoS0VSTl9JTkZPICIoJWQgZWFybHkgcmVzZXJ2YXRpb25zKSA9PT4gYm9vdG1lbVxuIiwgY291bnQpOworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCXN0cnVjdCBlYXJseV9yZXMgKnIgPSAmZWFybHlfcmVzW2ldOworCQlwcmludGsoS0VSTl9JTkZPICIgICMlZCBbJTAxMGxseCAtICUwMTBsbHhdICUxNnMiLCBpLAorCQkJci0+c3RhcnQsIHItPmVuZCwgci0+bmFtZSk7CisJCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCByLT5zdGFydCk7CisJCWZpbmFsX2VuZCA9IG1pbihlbmQsIHItPmVuZCk7CisJCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpIHsKKwkJCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJCQljb250aW51ZTsKKwkJfQorCQlwcmludGsoS0VSTl9DT05UICIgPT0+IFslMDEwbGx4IC0gJTAxMGxseF1cbiIsCisJCQlmaW5hbF9zdGFydCwgZmluYWxfZW5kKTsKKwkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMoZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0LAorCQkJCUJPT1RNRU1fREVGQVVMVCk7CisJfQorfQorCisvKiBDaGVjayBmb3IgYWxyZWFkeSByZXNlcnZlZCBhcmVhcyAqLworc3RhdGljIGlubGluZSBpbnQgX19pbml0IGJhZF9hZGRyKHU2NCAqYWRkcnAsIHU2NCBzaXplLCB1NjQgYWxpZ24pCit7CisJaW50IGk7CisJdTY0IGFkZHIgPSAqYWRkcnA7CisJaW50IGNoYW5nZWQgPSAwOworCXN0cnVjdCBlYXJseV9yZXMgKnI7CithZ2FpbjoKKwlpID0gZmluZF9vdmVybGFwcGVkX2Vhcmx5KGFkZHIsIGFkZHIgKyBzaXplKTsKKwlyID0gJmVhcmx5X3Jlc1tpXTsKKwlpZiAoaSA8IE1BWF9FQVJMWV9SRVMgJiYgci0+ZW5kKSB7CisJCSphZGRycCA9IGFkZHIgPSByb3VuZF91cChyLT5lbmQsIGFsaWduKTsKKwkJY2hhbmdlZCA9IDE7CisJCWdvdG8gYWdhaW47CisJfQorCXJldHVybiBjaGFuZ2VkOworfQorCisvKiBDaGVjayBmb3IgYWxyZWFkeSByZXNlcnZlZCBhcmVhcyAqLworc3RhdGljIGlubGluZSBpbnQgX19pbml0IGJhZF9hZGRyX3NpemUodTY0ICphZGRycCwgdTY0ICpzaXplcCwgdTY0IGFsaWduKQoreworCWludCBpOworCXU2NCBhZGRyID0gKmFkZHJwLCBsYXN0OworCXU2NCBzaXplID0gKnNpemVwOworCWludCBjaGFuZ2VkID0gMDsKK2FnYWluOgorCWxhc3QgPSBhZGRyICsgc2l6ZTsKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKKwkJc3RydWN0IGVhcmx5X3JlcyAqciA9ICZlYXJseV9yZXNbaV07CisJCWlmIChsYXN0ID4gci0+c3RhcnQgJiYgYWRkciA8IHItPnN0YXJ0KSB7CisJCQlzaXplID0gci0+c3RhcnQgLSBhZGRyOworCQkJY2hhbmdlZCA9IDE7CisJCQlnb3RvIGFnYWluOworCQl9CisJCWlmIChsYXN0ID4gci0+ZW5kICYmIGFkZHIgPCByLT5lbmQpIHsKKwkJCWFkZHIgPSByb3VuZF91cChyLT5lbmQsIGFsaWduKTsKKwkJCXNpemUgPSBsYXN0IC0gYWRkcjsKKwkJCWNoYW5nZWQgPSAxOworCQkJZ290byBhZ2FpbjsKKwkJfQorCQlpZiAobGFzdCA8PSByLT5lbmQgJiYgYWRkciA+PSByLT5zdGFydCkgeworCQkJKCpzaXplcCkrKzsKKwkJCXJldHVybiAwOworCQl9CisJfQorCWlmIChjaGFuZ2VkKSB7CisJCSphZGRycCA9IGFkZHI7CisJCSpzaXplcCA9IHNpemU7CisJfQorCXJldHVybiBjaGFuZ2VkOworfQorCisvKgorICogRmluZCBhIGZyZWUgYXJlYSB3aXRoIHNwZWNpZmllZCBhbGlnbm1lbnQgaW4gYSBzcGVjaWZpYyByYW5nZS4KKyAqLwordTY0IF9faW5pdCBmaW5kX2U4MjBfYXJlYSh1NjQgc3RhcnQsIHU2NCBlbmQsIHU2NCBzaXplLCB1NjQgYWxpZ24pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKwkJdTY0IGFkZHIsIGxhc3Q7CisJCXU2NCBlaV9sYXN0OworCisJCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKKwkJCWNvbnRpbnVlOworCQlhZGRyID0gcm91bmRfdXAoZWktPmFkZHIsIGFsaWduKTsKKwkJZWlfbGFzdCA9IGVpLT5hZGRyICsgZWktPnNpemU7CisJCWlmIChhZGRyIDwgc3RhcnQpCisJCQlhZGRyID0gcm91bmRfdXAoc3RhcnQsIGFsaWduKTsKKwkJaWYgKGFkZHIgPj0gZWlfbGFzdCkKKwkJCWNvbnRpbnVlOworCQl3aGlsZSAoYmFkX2FkZHIoJmFkZHIsIHNpemUsIGFsaWduKSAmJiBhZGRyK3NpemUgPD0gZWlfbGFzdCkKKwkJCTsKKwkJbGFzdCA9IGFkZHIgKyBzaXplOworCQlpZiAobGFzdCA+IGVpX2xhc3QpCisJCQljb250aW51ZTsKKwkJaWYgKGxhc3QgPiBlbmQpCisJCQljb250aW51ZTsKKwkJcmV0dXJuIGFkZHI7CisJfQorCXJldHVybiAtMVVMTDsKK30KKworLyoKKyAqIEZpbmQgbmV4dCBmcmVlIHJhbmdlIGFmdGVyICpzdGFydAorICovCit1NjQgX19pbml0IGZpbmRfZTgyMF9hcmVhX3NpemUodTY0IHN0YXJ0LCB1NjQgKnNpemVwLCB1NjQgYWxpZ24pCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKwkJdTY0IGFkZHIsIGxhc3Q7CisJCXU2NCBlaV9sYXN0OworCisJCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKKwkJCWNvbnRpbnVlOworCQlhZGRyID0gcm91bmRfdXAoZWktPmFkZHIsIGFsaWduKTsKKwkJZWlfbGFzdCA9IGVpLT5hZGRyICsgZWktPnNpemU7CisJCWlmIChhZGRyIDwgc3RhcnQpCisJCQlhZGRyID0gcm91bmRfdXAoc3RhcnQsIGFsaWduKTsKKwkJaWYgKGFkZHIgPj0gZWlfbGFzdCkKKwkJCWNvbnRpbnVlOworCQkqc2l6ZXAgPSBlaV9sYXN0IC0gYWRkcjsKKwkJd2hpbGUgKGJhZF9hZGRyX3NpemUoJmFkZHIsIHNpemVwLCBhbGlnbikgJiYKKwkJCWFkZHIgKyAqc2l6ZXAgPD0gZWlfbGFzdCkKKwkJCTsKKwkJbGFzdCA9IGFkZHIgKyAqc2l6ZXA7CisJCWlmIChsYXN0ID4gZWlfbGFzdCkKKwkJCWNvbnRpbnVlOworCQlyZXR1cm4gYWRkcjsKKwl9CisJcmV0dXJuIC0xVUw7CisKK30KKworLyoKKyAqIHByZSBhbGxvY2F0ZWQgNGsgYW5kIHJlc2VydmVkIGl0IGluIGU4MjAKKyAqLwordTY0IF9faW5pdCBlYXJseV9yZXNlcnZlX2U4MjAodTY0IHN0YXJ0dCwgdTY0IHNpemV0LCB1NjQgYWxpZ24pCit7CisJdTY0IHNpemUgPSAwOworCXU2NCBhZGRyOworCXU2NCBzdGFydDsKKworCXN0YXJ0ID0gc3RhcnR0OworCXdoaWxlIChzaXplIDwgc2l6ZXQpCisJCXN0YXJ0ID0gZmluZF9lODIwX2FyZWFfc2l6ZShzdGFydCwgJnNpemUsIGFsaWduKTsKKworCWlmIChzaXplIDwgc2l6ZXQpCisJCXJldHVybiAwOworCisJYWRkciA9IHJvdW5kX2Rvd24oc3RhcnQgKyBzaXplIC0gc2l6ZXQsIGFsaWduKTsKKwllODIwX3VwZGF0ZV9yYW5nZShhZGRyLCBzaXpldCwgRTgyMF9SQU0sIEU4MjBfUkVTRVJWRUQpOworCWU4MjBfdXBkYXRlX3JhbmdlX3NhdmVkKGFkZHIsIHNpemV0LCBFODIwX1JBTSwgRTgyMF9SRVNFUlZFRCk7CisJcHJpbnRrKEtFUk5fSU5GTyAidXBkYXRlIGU4MjAgZm9yIGVhcmx5X3Jlc2VydmVfZTgyMFxuIik7CisJdXBkYXRlX2U4MjAoKTsKKwl1cGRhdGVfZTgyMF9zYXZlZCgpOworCisJcmV0dXJuIGFkZHI7Cit9CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGlmZGVmIENPTkZJR19YODZfUEFFCisjICBkZWZpbmUgTUFYX0FSQ0hfUEZOCQkoMVVMTDw8KDM2LVBBR0VfU0hJRlQpKQorIyBlbHNlCisjICBkZWZpbmUgTUFYX0FSQ0hfUEZOCQkoMVVMTDw8KDMyLVBBR0VfU0hJRlQpKQorIyBlbmRpZgorI2Vsc2UgLyogQ09ORklHX1g4Nl8zMiAqLworIyBkZWZpbmUgTUFYX0FSQ0hfUEZOIE1BWE1FTT4+UEFHRV9TSElGVAorI2VuZGlmCisKKy8qCisgKiBGaW5kIHRoZSBoaWdoZXN0IHBhZ2UgZnJhbWUgbnVtYmVyIHdlIGhhdmUgYXZhaWxhYmxlCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBlODIwX2VuZF9wZm4odW5zaWduZWQgbG9uZyBsaW1pdF9wZm4sIHVuc2lnbmVkIHR5cGUpCit7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBsYXN0X3BmbiA9IDA7CisJdW5zaWduZWQgbG9uZyBtYXhfYXJjaF9wZm4gPSBNQVhfQVJDSF9QRk47CisKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKKwkJdW5zaWduZWQgbG9uZyBzdGFydF9wZm47CisJCXVuc2lnbmVkIGxvbmcgZW5kX3BmbjsKKworCQlpZiAoZWktPnR5cGUgIT0gdHlwZSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXJ0X3BmbiA9IGVpLT5hZGRyID4+IFBBR0VfU0hJRlQ7CisJCWVuZF9wZm4gPSAoZWktPmFkZHIgKyBlaS0+c2l6ZSkgPj4gUEFHRV9TSElGVDsKKworCQlpZiAoc3RhcnRfcGZuID49IGxpbWl0X3BmbikKKwkJCWNvbnRpbnVlOworCQlpZiAoZW5kX3BmbiA+IGxpbWl0X3BmbikgeworCQkJbGFzdF9wZm4gPSBsaW1pdF9wZm47CisJCQlicmVhazsKKwkJfQorCQlpZiAoZW5kX3BmbiA+IGxhc3RfcGZuKQorCQkJbGFzdF9wZm4gPSBlbmRfcGZuOworCX0KKworCWlmIChsYXN0X3BmbiA+IG1heF9hcmNoX3BmbikKKwkJbGFzdF9wZm4gPSBtYXhfYXJjaF9wZm47CisKKwlwcmludGsoS0VSTl9JTkZPICJsYXN0X3BmbiA9ICUjbHggbWF4X2FyY2hfcGZuID0gJSNseFxuIiwKKwkJCSBsYXN0X3BmbiwgbWF4X2FyY2hfcGZuKTsKKwlyZXR1cm4gbGFzdF9wZm47Cit9Cit1bnNpZ25lZCBsb25nIF9faW5pdCBlODIwX2VuZF9vZl9yYW1fcGZuKHZvaWQpCit7CisJcmV0dXJuIGU4MjBfZW5kX3BmbihNQVhfQVJDSF9QRk4sIEU4MjBfUkFNKTsKK30KKwordW5zaWduZWQgbG9uZyBfX2luaXQgZTgyMF9lbmRfb2ZfbG93X3JhbV9wZm4odm9pZCkKK3sKKwlyZXR1cm4gZTgyMF9lbmRfcGZuKDFVTDw8KDMyIC0gUEFHRV9TSElGVCksIEU4MjBfUkFNKTsKK30KKy8qCisgKiBGaW5kcyBhbiBhY3RpdmUgcmVnaW9uIGluIHRoZSBhZGRyZXNzIHJhbmdlIGZyb20gc3RhcnRfcGZuIHRvIGxhc3RfcGZuIGFuZAorICogcmV0dXJucyBpdHMgcmFuZ2UgaW4gZWlfc3RhcnRwZm4gYW5kIGVpX2VuZHBmbiBmb3IgdGhlIGU4MjAgZW50cnkuCisgKi8KK2ludCBfX2luaXQgZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oY29uc3Qgc3RydWN0IGU4MjBlbnRyeSAqZWksCisJCQkJICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4sCisJCQkJICB1bnNpZ25lZCBsb25nICplaV9zdGFydHBmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX2VuZHBmbikKK3sKKwl1NjQgYWxpZ24gPSBQQUdFX1NJWkU7CisKKwkqZWlfc3RhcnRwZm4gPSByb3VuZF91cChlaS0+YWRkciwgYWxpZ24pID4+IFBBR0VfU0hJRlQ7CisJKmVpX2VuZHBmbiA9IHJvdW5kX2Rvd24oZWktPmFkZHIgKyBlaS0+c2l6ZSwgYWxpZ24pID4+IFBBR0VfU0hJRlQ7CisKKwkvKiBTa2lwIG1hcCBlbnRyaWVzIHNtYWxsZXIgdGhhbiBhIHBhZ2UgKi8KKwlpZiAoKmVpX3N0YXJ0cGZuID49ICplaV9lbmRwZm4pCisJCXJldHVybiAwOworCisJLyogU2tpcCBpZiBtYXAgaXMgb3V0c2lkZSB0aGUgbm9kZSAqLworCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSB8fCAqZWlfZW5kcGZuIDw9IHN0YXJ0X3BmbiB8fAorCQkJCSAgICAqZWlfc3RhcnRwZm4gPj0gbGFzdF9wZm4pCisJCXJldHVybiAwOworCisJLyogQ2hlY2sgZm9yIG92ZXJsYXBzICovCisJaWYgKCplaV9zdGFydHBmbiA8IHN0YXJ0X3BmbikKKwkJKmVpX3N0YXJ0cGZuID0gc3RhcnRfcGZuOworCWlmICgqZWlfZW5kcGZuID4gbGFzdF9wZm4pCisJCSplaV9lbmRwZm4gPSBsYXN0X3BmbjsKKworCXJldHVybiAxOworfQorCisvKiBXYWxrIHRoZSBlODIwIG1hcCBhbmQgcmVnaXN0ZXIgYWN0aXZlIHJlZ2lvbnMgd2l0aGluIGEgbm9kZSAqLwordm9pZCBfX2luaXQgZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgbGFzdF9wZm4pCit7CisJdW5zaWduZWQgbG9uZyBlaV9zdGFydHBmbjsKKwl1bnNpZ25lZCBsb25nIGVpX2VuZHBmbjsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKQorCQlpZiAoZTgyMF9maW5kX2FjdGl2ZV9yZWdpb24oJmU4MjAubWFwW2ldLAorCQkJCQkgICAgc3RhcnRfcGZuLCBsYXN0X3BmbiwKKwkJCQkJICAgICZlaV9zdGFydHBmbiwgJmVpX2VuZHBmbikpCisJCQlhZGRfYWN0aXZlX3JhbmdlKG5pZCwgZWlfc3RhcnRwZm4sIGVpX2VuZHBmbik7Cit9CisKKy8qCisgKiBGaW5kIHRoZSBob2xlIHNpemUgKGluIGJ5dGVzKSBpbiB0aGUgbWVtb3J5IHJhbmdlLgorICogQHN0YXJ0OiBzdGFydGluZyBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcmFuZ2UgdG8gc2NhbgorICogQGVuZDogZW5kaW5nIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSByYW5nZSB0byBzY2FuCisgKi8KK3U2NCBfX2luaXQgZTgyMF9ob2xlX3NpemUodTY0IHN0YXJ0LCB1NjQgZW5kKQoreworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwl1bnNpZ25lZCBsb25nIGxhc3RfcGZuID0gZW5kID4+IFBBR0VfU0hJRlQ7CisJdW5zaWduZWQgbG9uZyBlaV9zdGFydHBmbiwgZWlfZW5kcGZuLCByYW0gPSAwOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKKwkJaWYgKGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKCZlODIwLm1hcFtpXSwKKwkJCQkJICAgIHN0YXJ0X3BmbiwgbGFzdF9wZm4sCisJCQkJCSAgICAmZWlfc3RhcnRwZm4sICZlaV9lbmRwZm4pKQorCQkJcmFtICs9IGVpX2VuZHBmbiAtIGVpX3N0YXJ0cGZuOworCX0KKwlyZXR1cm4gZW5kIC0gc3RhcnQgLSAoKHU2NClyYW0gPDwgUEFHRV9TSElGVCk7Cit9CisKK3N0YXRpYyB2b2lkIGVhcmx5X3BhbmljKGNoYXIgKm1zZykKK3sKKwllYXJseV9wcmludGsobXNnKTsKKwlwYW5pYyhtc2cpOworfQorCitzdGF0aWMgaW50IHVzZXJkZWYgX19pbml0ZGF0YTsKKworLyogIm1lbT1ub3BlbnRpdW0iIGRpc2FibGVzIHRoZSA0TUIgcGFnZSB0YWJsZXMuICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9tZW1vcHQoY2hhciAqcCkKK3sKKwl1NjQgbWVtX3NpemU7CisKKwlpZiAoIXApCisJCXJldHVybiAtRUlOVkFMOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWlmICghc3RyY21wKHAsICJub3BlbnRpdW0iKSkgeworCQlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1BTRSk7CisJCXJldHVybiAwOworCX0KKyNlbmRpZgorCisJdXNlcmRlZiA9IDE7CisJbWVtX3NpemUgPSBtZW1wYXJzZShwLCAmcCk7CisJZTgyMF9yZW1vdmVfcmFuZ2UobWVtX3NpemUsIFVMTE9OR19NQVggLSBtZW1fc2l6ZSwgRTgyMF9SQU0sIDEpOworCisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgibWVtIiwgcGFyc2VfbWVtb3B0KTsKKworc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtbWFwX29wdChjaGFyICpwKQoreworCWNoYXIgKm9sZHA7CisJdTY0IHN0YXJ0X2F0LCBtZW1fc2l6ZTsKKworCWlmICghcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoIXN0cmNtcChwLCAiZXhhY3RtYXAiKSkgeworI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QCisJCS8qCisJCSAqIElmIHdlIGFyZSBkb2luZyBhIGNyYXNoIGR1bXAsIHdlIHN0aWxsIG5lZWQgdG8ga25vdworCQkgKiB0aGUgcmVhbCBtZW0gc2l6ZSBiZWZvcmUgb3JpZ2luYWwgbWVtb3J5IG1hcCBpcworCQkgKiByZXNldC4KKwkJICovCisJCXNhdmVkX21heF9wZm4gPSBlODIwX2VuZF9vZl9yYW1fcGZuKCk7CisjZW5kaWYKKwkJZTgyMC5ucl9tYXAgPSAwOworCQl1c2VyZGVmID0gMTsKKwkJcmV0dXJuIDA7CisJfQorCisJb2xkcCA9IHA7CisJbWVtX3NpemUgPSBtZW1wYXJzZShwLCAmcCk7CisJaWYgKHAgPT0gb2xkcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl1c2VyZGVmID0gMTsKKwlpZiAoKnAgPT0gJ0AnKSB7CisJCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7CisJCWU4MjBfYWRkX3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkFNKTsKKwl9IGVsc2UgaWYgKCpwID09ICcjJykgeworCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOworCQllODIwX2FkZF9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX0FDUEkpOworCX0gZWxzZSBpZiAoKnAgPT0gJyQnKSB7CisJCXN0YXJ0X2F0ID0gbWVtcGFyc2UocCsxLCAmcCk7CisJCWU4MjBfYWRkX3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkVTRVJWRUQpOworCX0gZWxzZQorCQllODIwX3JlbW92ZV9yYW5nZShtZW1fc2l6ZSwgVUxMT05HX01BWCAtIG1lbV9zaXplLCBFODIwX1JBTSwgMSk7CisKKwlyZXR1cm4gKnAgPT0gJ1wwJyA/IDAgOiAtRUlOVkFMOworfQorZWFybHlfcGFyYW0oIm1lbW1hcCIsIHBhcnNlX21lbW1hcF9vcHQpOworCit2b2lkIF9faW5pdCBmaW5pc2hfZTgyMF9wYXJzaW5nKHZvaWQpCit7CisJaWYgKHVzZXJkZWYpIHsKKwkJaW50IG5yID0gZTgyMC5ucl9tYXA7CisKKwkJaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJm5yKSA8IDApCisJCQllYXJseV9wYW5pYygiSW52YWxpZCB1c2VyIHN1cHBsaWVkIG1lbW9yeSBtYXAiKTsKKwkJZTgyMC5ucl9tYXAgPSBucjsKKworCQlwcmludGsoS0VSTl9JTkZPICJ1c2VyLWRlZmluZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCQllODIwX3ByaW50X21hcCgidXNlciIpOworCX0KK30KKworc3RhdGljIGlubGluZSBjb25zdCBjaGFyICplODIwX3R5cGVfdG9fc3RyaW5nKGludCBlODIwX3R5cGUpCit7CisJc3dpdGNoIChlODIwX3R5cGUpIHsKKwljYXNlIEU4MjBfUkVTRVJWRURfS0VSTjoKKwljYXNlIEU4MjBfUkFNOglyZXR1cm4gIlN5c3RlbSBSQU0iOworCWNhc2UgRTgyMF9BQ1BJOglyZXR1cm4gIkFDUEkgVGFibGVzIjsKKwljYXNlIEU4MjBfTlZTOglyZXR1cm4gIkFDUEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UiOworCWRlZmF1bHQ6CXJldHVybiAicmVzZXJ2ZWQiOworCX0KK30KKworLyoKKyAqIE1hcmsgZTgyMCByZXNlcnZlZCBhcmVhcyBhcyBidXN5IGZvciB0aGUgcmVzb3VyY2UgbWFuYWdlci4KKyAqLwordm9pZCBfX2luaXQgZTgyMF9yZXNlcnZlX3Jlc291cmNlcyh2b2lkKQoreworCWludCBpOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCXU2NCBlbmQ7CisKKwlyZXMgPSBhbGxvY19ib290bWVtX2xvdyhzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqIGU4MjAubnJfbWFwKTsKKwlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgeworCQllbmQgPSBlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSAtIDE7CisjaWZuZGVmIENPTkZJR19SRVNPVVJDRVNfNjRCSVQKKwkJaWYgKGVuZCA+IDB4MTAwMDAwMDAwVUxMKSB7CisJCQlyZXMrKzsKKwkJCWNvbnRpbnVlOworCQl9CisjZW5kaWYKKwkJcmVzLT5uYW1lID0gZTgyMF90eXBlX3RvX3N0cmluZyhlODIwLm1hcFtpXS50eXBlKTsKKwkJcmVzLT5zdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7CisJCXJlcy0+ZW5kID0gZW5kOworCisJCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVTT1VSQ0VfQlVTWTsKKwkJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgcmVzKTsKKwkJcmVzKys7CisJfQorCisJZm9yIChpID0gMDsgaSA8IGU4MjBfc2F2ZWQubnJfbWFwOyBpKyspIHsKKwkJc3RydWN0IGU4MjBlbnRyeSAqZW50cnkgPSAmZTgyMF9zYXZlZC5tYXBbaV07CisJCWZpcm13YXJlX21hcF9hZGRfZWFybHkoZW50cnktPmFkZHIsCisJCQllbnRyeS0+YWRkciArIGVudHJ5LT5zaXplIC0gMSwKKwkJCWU4MjBfdHlwZV90b19zdHJpbmcoZW50cnktPnR5cGUpKTsKKwl9Cit9CisKKy8qCisgKiBOb24tc3RhbmRhcmQgbWVtb3J5IHNldHVwIGNhbiBiZSBzcGVjaWZpZWQgdmlhIHRoaXMgcXVpcms6CisgKi8KK2NoYXIgKiAoKmFyY2hfbWVtb3J5X3NldHVwX3F1aXJrKSh2b2lkKTsKKworY2hhciAqX19pbml0IGRlZmF1bHRfbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKK3sKKwljaGFyICp3aG8gPSAiQklPUy1lODIwIjsKKwlpbnQgbmV3X25yOworCS8qCisJICogVHJ5IHRvIGNvcHkgdGhlIEJJT1Mtc3VwcGxpZWQgRTgyMC1tYXAuCisJICoKKwkgKiBPdGhlcndpc2UgZmFrZSBhIG1lbW9yeSBtYXA7IG9uZSBzZWN0aW9uIGZyb20gMGstPjY0MGssCisJICogdGhlIG5leHQgc2VjdGlvbiBmcm9tIDFtYi0+YXBwcm9wcmlhdGVfbWVtX2sKKwkgKi8KKwluZXdfbnIgPSBib290X3BhcmFtcy5lODIwX2VudHJpZXM7CisJc2FuaXRpemVfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsCisJCQlBUlJBWV9TSVpFKGJvb3RfcGFyYW1zLmU4MjBfbWFwKSwKKwkJCSZuZXdfbnIpOworCWJvb3RfcGFyYW1zLmU4MjBfZW50cmllcyA9IG5ld19ucjsKKwlpZiAoYXBwZW5kX2U4MjBfbWFwKGJvb3RfcGFyYW1zLmU4MjBfbWFwLCBib290X3BhcmFtcy5lODIwX2VudHJpZXMpCisJICA8IDApIHsKKwkJdTY0IG1lbV9zaXplOworCisJCS8qIGNvbXBhcmUgcmVzdWx0cyBmcm9tIG90aGVyIG1ldGhvZHMgYW5kIHRha2UgdGhlIGdyZWF0ZXIgKi8KKwkJaWYgKGJvb3RfcGFyYW1zLmFsdF9tZW1faworCQkgICAgPCBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2spIHsKKwkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rOworCQkJd2hvID0gIkJJT1MtODgiOworCQl9IGVsc2UgeworCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5hbHRfbWVtX2s7CisJCQl3aG8gPSAiQklPUy1lODAxIjsKKwkJfQorCisJCWU4MjAubnJfbWFwID0gMDsKKwkJZTgyMF9hZGRfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOworCQllODIwX2FkZF9yZWdpb24oSElHSF9NRU1PUlksIG1lbV9zaXplIDw8IDEwLCBFODIwX1JBTSk7CisJfQorCisJLyogSW4gY2FzZSBzb21lb25lIGNhcmVzLi4uICovCisJcmV0dXJuIHdobzsKK30KKworY2hhciAqX19pbml0IF9fYXR0cmlidXRlX18oKHdlYWspKSBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQoreworCWlmIChhcmNoX21lbW9yeV9zZXR1cF9xdWlyaykgeworCQljaGFyICp3aG8gPSBhcmNoX21lbW9yeV9zZXR1cF9xdWlyaygpOworCisJCWlmICh3aG8pCisJCQlyZXR1cm4gd2hvOworCX0KKwlyZXR1cm4gZGVmYXVsdF9tYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCgpOworfQorCisvKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgaWYgQ09ORklHX1BBUkFWSVJUICovCitjaGFyICogX19pbml0IF9fYXR0cmlidXRlX18oKHdlYWspKSBtZW1vcnlfc2V0dXAodm9pZCkKK3sKKwlyZXR1cm4gbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKK30KKwordm9pZCBfX2luaXQgc2V0dXBfbWVtb3J5X21hcCh2b2lkKQoreworCWNoYXIgKndobzsKKworCXdobyA9IG1lbW9yeV9zZXR1cCgpOworCW1lbWNweSgmZTgyMF9zYXZlZCwgJmU4MjAsIHNpemVvZihzdHJ1Y3QgZTgyMG1hcCkpOworCXByaW50ayhLRVJOX0lORk8gIkJJT1MtcHJvdmlkZWQgcGh5c2ljYWwgUkFNIG1hcDpcbiIpOworCWU4MjBfcHJpbnRfbWFwKHdobyk7Cit9CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CitpbnQgX19pbml0IGFyY2hfZ2V0X3JhbV9yYW5nZShpbnQgc2xvdCwgdTY0ICphZGRyLCB1NjQgKnNpemUpCit7CisJaW50IGk7CisKKwlpZiAoc2xvdCA8IDAgfHwgc2xvdCA+PSBlODIwLm5yX21hcCkKKwkJcmV0dXJuIC0xOworCWZvciAoaSA9IHNsb3Q7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7CisJCWlmIChlODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQorCQkJY29udGludWU7CisJCWJyZWFrOworCX0KKwlpZiAoaSA9PSBlODIwLm5yX21hcCB8fCBlODIwLm1hcFtpXS5hZGRyID4gKG1heF9wZm4gPDwgUEFHRV9TSElGVCkpCisJCXJldHVybiAtMTsKKwkqYWRkciA9IGU4MjAubWFwW2ldLmFkZHI7CisJKnNpemUgPSBtaW5fdCh1NjQsIGU4MjAubWFwW2ldLnNpemUgKyBlODIwLm1hcFtpXS5hZGRyLAorCQltYXhfcGZuIDw8IFBBR0VfU0hJRlQpIC0gKmFkZHI7CisJcmV0dXJuIGkgKyAxOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMF8zMi5jIGIvYXJjaC94ODYva2VybmVsL2U4MjBfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ3MzNlNy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMF8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNzc1ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3Bmbi5oPgotI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+Ci0KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2U4MjAuaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLQotc3RydWN0IGU4MjBtYXAgZTgyMDsKLXN0cnVjdCBjaGFuZ2VfbWVtYmVyIHsKLQlzdHJ1Y3QgZTgyMGVudHJ5ICpwYmlvczsgLyogcG9pbnRlciB0byBvcmlnaW5hbCBiaW9zIGVudHJ5ICovCi0JdW5zaWduZWQgbG9uZyBsb25nIGFkZHI7IC8qIGFkZHJlc3MgZm9yIHRoaXMgY2hhbmdlIHBvaW50ICovCi19Owotc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyIGNoYW5nZV9wb2ludF9saXN0WzIqRTgyME1BWF0gX19pbml0ZGF0YTsKLXN0YXRpYyBzdHJ1Y3QgY2hhbmdlX21lbWJlciAqY2hhbmdlX3BvaW50WzIqRTgyME1BWF0gX19pbml0ZGF0YTsKLXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5ICpvdmVybGFwX2xpc3RbRTgyME1BWF0gX19pbml0ZGF0YTsKLXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5IG5ld19iaW9zW0U4MjBNQVhdIF9faW5pdGRhdGE7Ci0vKiBGb3IgUENJIG9yIG90aGVyIG1lbW9yeS1tYXBwZWQgcmVzb3VyY2VzICovCi11bnNpZ25lZCBsb25nIHBjaV9tZW1fc3RhcnQgPSAweDEwMDAwMDAwOwotI2lmZGVmIENPTkZJR19QQ0kKLUVYUE9SVF9TWU1CT0wocGNpX21lbV9zdGFydCk7Ci0jZW5kaWYKLWV4dGVybiBpbnQgdXNlcl9kZWZpbmVkX21lbW1hcDsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBzeXN0ZW1fcm9tX3Jlc291cmNlID0gewotCS5uYW1lCT0gIlN5c3RlbSBST00iLAotCS5zdGFydAk9IDB4ZjAwMDAsCi0JLmVuZAk9IDB4ZmZmZmYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19OwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGV4dGVuc2lvbl9yb21fcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiRXh0ZW5zaW9uIFJPTSIsCi0JLnN0YXJ0CT0gMHhlMDAwMCwKLQkuZW5kCT0gMHhlZmZmZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYWRhcHRlcl9yb21fcmVzb3VyY2VzW10gPSB7IHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDB4YzgwMDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19LCB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSwgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0sIHsKLQkubmFtZSAJPSAiQWRhcHRlciBST00iLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCi19LCB7Ci0JLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKLQkuc3RhcnQJPSAwLAotCS5lbmQJPSAwLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQotfSwgewotCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX0gfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2aWRlb19yb21fcmVzb3VyY2UgPSB7Ci0JLm5hbWUgCT0gIlZpZGVvIFJPTSIsCi0JLnN0YXJ0CT0gMHhjMDAwMCwKLQkuZW5kCT0gMHhjN2ZmZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLSNkZWZpbmUgUk9NU0lHTkFUVVJFIDB4YWE1NQotCi1zdGF0aWMgaW50IF9faW5pdCByb21zaWduYXR1cmUoY29uc3QgdW5zaWduZWQgY2hhciAqcm9tKQotewotCWNvbnN0IHVuc2lnbmVkIHNob3J0ICogY29uc3QgcHRyID0gKGNvbnN0IHVuc2lnbmVkIHNob3J0ICopcm9tOwotCXVuc2lnbmVkIHNob3J0IHNpZzsKLQotCXJldHVybiBwcm9iZV9rZXJuZWxfYWRkcmVzcyhwdHIsIHNpZykgPT0gMCAmJiBzaWcgPT0gUk9NU0lHTkFUVVJFOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCByb21jaGVja3N1bShjb25zdCB1bnNpZ25lZCBjaGFyICpyb20sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQotewotCXVuc2lnbmVkIGNoYXIgc3VtLCBjOwotCi0JZm9yIChzdW0gPSAwOyBsZW5ndGggJiYgcHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tKyssIGMpID09IDA7IGxlbmd0aC0tKQotCQlzdW0gKz0gYzsKLQlyZXR1cm4gIWxlbmd0aCAmJiAhc3VtOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgcHJvYmVfcm9tcyh2b2lkKQotewotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbTsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0LCBsZW5ndGgsIHVwcGVyOwotCXVuc2lnbmVkIGNoYXIgYzsKLQlpbnQgaTsKLQotCS8qIHZpZGVvIHJvbSAqLwotCXVwcGVyID0gYWRhcHRlcl9yb21fcmVzb3VyY2VzWzBdLnN0YXJ0OwotCWZvciAoc3RhcnQgPSB2aWRlb19yb21fcmVzb3VyY2Uuc3RhcnQ7IHN0YXJ0IDwgdXBwZXI7IHN0YXJ0ICs9IDIwNDgpIHsKLQkJcm9tID0gaXNhX2J1c190b192aXJ0KHN0YXJ0KTsKLQkJaWYgKCFyb21zaWduYXR1cmUocm9tKSkKLQkJCWNvbnRpbnVlOwotCi0JCXZpZGVvX3JvbV9yZXNvdXJjZS5zdGFydCA9IHN0YXJ0OwotCi0JCWlmIChwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20gKyAyLCBjKSAhPSAwKQotCQkJY29udGludWU7Ci0KLQkJLyogMCA8IGxlbmd0aCA8PSAweDdmICogNTEyLCBoaXN0b3JpY2FsbHkgKi8KLQkJbGVuZ3RoID0gYyAqIDUxMjsKLQotCQkvKiBpZiBjaGVja3N1bSBva2F5LCB0cnVzdCBsZW5ndGggYnl0ZSAqLwotCQlpZiAobGVuZ3RoICYmIHJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkKLQkJCXZpZGVvX3JvbV9yZXNvdXJjZS5lbmQgPSBzdGFydCArIGxlbmd0aCAtIDE7Ci0KLQkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZ2aWRlb19yb21fcmVzb3VyY2UpOwotCQlicmVhazsKLQl9Ci0KLQlzdGFydCA9ICh2aWRlb19yb21fcmVzb3VyY2UuZW5kICsgMSArIDIwNDcpICYgfjIwNDdVTDsKLQlpZiAoc3RhcnQgPCB1cHBlcikKLQkJc3RhcnQgPSB1cHBlcjsKLQotCS8qIHN5c3RlbSByb20gKi8KLQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnN5c3RlbV9yb21fcmVzb3VyY2UpOwotCXVwcGVyID0gc3lzdGVtX3JvbV9yZXNvdXJjZS5zdGFydDsKLQotCS8qIGNoZWNrIGZvciBleHRlbnNpb24gcm9tIChpZ25vcmUgbGVuZ3RoIGJ5dGUhKSAqLwotCXJvbSA9IGlzYV9idXNfdG9fdmlydChleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0KTsKLQlpZiAocm9tc2lnbmF0dXJlKHJvbSkpIHsKLQkJbGVuZ3RoID0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5lbmQgLSBleHRlbnNpb25fcm9tX3Jlc291cmNlLnN0YXJ0ICsgMTsKLQkJaWYgKHJvbWNoZWNrc3VtKHJvbSwgbGVuZ3RoKSkgewotCQkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZleHRlbnNpb25fcm9tX3Jlc291cmNlKTsKLQkJCXVwcGVyID0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydDsKLQkJfQotCX0KLQotCS8qIGNoZWNrIGZvciBhZGFwdGVyIHJvbXMgb24gMmsgYm91bmRhcmllcyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFkYXB0ZXJfcm9tX3Jlc291cmNlcykgJiYgc3RhcnQgPCB1cHBlcjsgc3RhcnQgKz0gMjA0OCkgewotCQlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoc3RhcnQpOwotCQlpZiAoIXJvbXNpZ25hdHVyZShyb20pKQotCQkJY29udGludWU7Ci0KLQkJaWYgKHByb2JlX2tlcm5lbF9hZGRyZXNzKHJvbSArIDIsIGMpICE9IDApCi0JCQljb250aW51ZTsKLQotCQkvKiAwIDwgbGVuZ3RoIDw9IDB4N2YgKiA1MTIsIGhpc3RvcmljYWxseSAqLwotCQlsZW5ndGggPSBjICogNTEyOwotCi0JCS8qIGJ1dCBhY2NlcHQgYW55IGxlbmd0aCB0aGF0IGZpdHMgaWYgY2hlY2tzdW0gb2theSAqLwotCQlpZiAoIWxlbmd0aCB8fCBzdGFydCArIGxlbmd0aCA+IHVwcGVyIHx8ICFyb21jaGVja3N1bShyb20sIGxlbmd0aCkpCi0JCQljb250aW51ZTsKLQotCQlhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0uc3RhcnQgPSBzdGFydDsKLQkJYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldLmVuZCA9IHN0YXJ0ICsgbGVuZ3RoIC0gMTsKLQkJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZhZGFwdGVyX3JvbV9yZXNvdXJjZXNbaV0pOwotCi0JCXN0YXJ0ID0gYWRhcHRlcl9yb21fcmVzb3VyY2VzW2krK10uZW5kICYgfjIwNDdVTDsKLQl9Ci19Ci0KLS8qCi0gKiBSZXF1ZXN0IGFkZHJlc3Mgc3BhY2UgZm9yIGFsbCBzdGFuZGFyZCBSQU0gYW5kIFJPTSByZXNvdXJjZXMKLSAqIGFuZCBhbHNvIGZvciByZWdpb25zIHJlcG9ydGVkIGFzIHJlc2VydmVkIGJ5IHRoZSBlODIwLgotICovCi12b2lkIF9faW5pdCBpbml0X2lvbWVtX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKmNvZGVfcmVzb3VyY2UsCi0JCXN0cnVjdCByZXNvdXJjZSAqZGF0YV9yZXNvdXJjZSwKLQkJc3RydWN0IHJlc291cmNlICpic3NfcmVzb3VyY2UpCi17Ci0JaW50IGk7Ci0KLQlwcm9iZV9yb21zKCk7Ci0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IHJlc291cmNlICpyZXM7Ci0jaWZuZGVmIENPTkZJR19SRVNPVVJDRVNfNjRCSVQKLQkJaWYgKGU4MjAubWFwW2ldLmFkZHIgKyBlODIwLm1hcFtpXS5zaXplID4gMHgxMDAwMDAwMDBVTEwpCi0JCQljb250aW51ZTsKLSNlbmRpZgotCQlyZXMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpLCBHRlBfQVRPTUlDKTsKLQkJc3dpdGNoIChlODIwLm1hcFtpXS50eXBlKSB7Ci0JCWNhc2UgRTgyMF9SQU06CXJlcy0+bmFtZSA9ICJTeXN0ZW0gUkFNIjsgYnJlYWs7Ci0JCWNhc2UgRTgyMF9BQ1BJOglyZXMtPm5hbWUgPSAiQUNQSSBUYWJsZXMiOyBicmVhazsKLQkJY2FzZSBFODIwX05WUzoJcmVzLT5uYW1lID0gIkFDUEkgTm9uLXZvbGF0aWxlIFN0b3JhZ2UiOyBicmVhazsKLQkJZGVmYXVsdDoJcmVzLT5uYW1lID0gInJlc2VydmVkIjsKLQkJfQotCQlyZXMtPnN0YXJ0ID0gZTgyMC5tYXBbaV0uYWRkcjsKLQkJcmVzLT5lbmQgPSByZXMtPnN0YXJ0ICsgZTgyMC5tYXBbaV0uc2l6ZSAtIDE7Ci0JCXJlcy0+ZmxhZ3MgPSBJT1JFU09VUkNFX01FTSB8IElPUkVTT1VSQ0VfQlVTWTsKLQkJaWYgKHJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCByZXMpKSB7Ci0JCQlrZnJlZShyZXMpOwotCQkJY29udGludWU7Ci0JCX0KLQkJaWYgKGU4MjAubWFwW2ldLnR5cGUgPT0gRTgyMF9SQU0pIHsKLQkJCS8qCi0JCQkgKiAgV2UgZG9uJ3Qga25vdyB3aGljaCBSQU0gcmVnaW9uIGNvbnRhaW5zIGtlcm5lbCBkYXRhLAotCQkJICogIHNvIHdlIHRyeSBpdCByZXBlYXRlZGx5IGFuZCBsZXQgdGhlIHJlc291cmNlIG1hbmFnZXIKLQkJCSAqICB0ZXN0IGl0LgotCQkJICovCi0JCQlyZXF1ZXN0X3Jlc291cmNlKHJlcywgY29kZV9yZXNvdXJjZSk7Ci0JCQlyZXF1ZXN0X3Jlc291cmNlKHJlcywgZGF0YV9yZXNvdXJjZSk7Ci0JCQlyZXF1ZXN0X3Jlc291cmNlKHJlcywgYnNzX3Jlc291cmNlKTsKLSNpZmRlZiBDT05GSUdfS0VYRUMKLQkJCWlmIChjcmFzaGtfcmVzLnN0YXJ0ICE9IGNyYXNoa19yZXMuZW5kKQotCQkJCXJlcXVlc3RfcmVzb3VyY2UocmVzLCAmY3Jhc2hrX3Jlcyk7Ci0jZW5kaWYKLQkJfQotCX0KLX0KLQotI2lmIGRlZmluZWQoQ09ORklHX1BNKSAmJiBkZWZpbmVkKENPTkZJR19ISUJFUk5BVElPTikKLS8qKgotICogZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zIC0gRmluZCB0aGUgcmFuZ2VzIG9mIHBoeXNpY2FsIGFkZHJlc3NlcyB0aGF0IGRvIG5vdAotICogY29ycmVzcG9uZCB0byBlODIwIFJBTSBhcmVhcyBhbmQgbWFyayB0aGUgY29ycmVzcG9uZGluZyBwYWdlcyBhcyBub3NhdmUgZm9yCi0gKiBoaWJlcm5hdGlvbi4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIHRoZSBlODIwIG1hcCB0byBiZSBzb3J0ZWQgYW5kIHdpdGhvdXQgYW55Ci0gKiBvdmVybGFwcGluZyBlbnRyaWVzIGFuZCBhc3N1bWVzIHRoZSBmaXJzdCBlODIwIGFyZWEgdG8gYmUgUkFNLgotICovCi12b2lkIF9faW5pdCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModm9pZCkKLXsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIHBmbjsKLQotCXBmbiA9IFBGTl9ET1dOKGU4MjAubWFwWzBdLmFkZHIgKyBlODIwLm1hcFswXS5zaXplKTsKLQlmb3IgKGkgPSAxOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQotCQlpZiAocGZuIDwgUEZOX1VQKGVpLT5hZGRyKSkKLQkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24ocGZuLCBQRk5fVVAoZWktPmFkZHIpKTsKLQotCQlwZm4gPSBQRk5fRE9XTihlaS0+YWRkciArIGVpLT5zaXplKTsKLQkJaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNKQotCQkJcmVnaXN0ZXJfbm9zYXZlX3JlZ2lvbihQRk5fVVAoZWktPmFkZHIpLCBwZm4pOwotCi0JCWlmIChwZm4gPj0gbWF4X2xvd19wZm4pCi0JCQlicmVhazsKLQl9Ci19Ci0jZW5kaWYKLQotdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIGludCB0eXBlKQotewotCWludCB4OwotCi0JeCA9IGU4MjAubnJfbWFwOwotCi0JaWYgKHggPT0gRTgyME1BWCkgewotCQlwcmludGsoS0VSTl9FUlIgIk9vb3BzISBUb28gbWFueSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwIVxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQllODIwLm1hcFt4XS5hZGRyID0gc3RhcnQ7Ci0JZTgyMC5tYXBbeF0uc2l6ZSA9IHNpemU7Ci0JZTgyMC5tYXBbeF0udHlwZSA9IHR5cGU7Ci0JZTgyMC5ucl9tYXArKzsKLX0gLyogYWRkX21lbW9yeV9yZWdpb24gKi8KLQotLyoKLSAqIFNhbml0aXplIHRoZSBCSU9TIGU4MjAgbWFwLgotICoKLSAqIFNvbWUgZTgyMCByZXNwb25zZXMgaW5jbHVkZSBvdmVybGFwcGluZyBlbnRyaWVzLiAgVGhlIGZvbGxvd2luZwotICogcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGU4MjAgbWFwIHdpdGggYSBuZXcgb25lLCByZW1vdmluZyBvdmVybGFwcy4KLSAqCi0gKi8KLWludCBfX2luaXQgc2FuaXRpemVfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqIGJpb3NtYXAsIGNoYXIgKiBwbnJfbWFwKQotewotCXN0cnVjdCBjaGFuZ2VfbWVtYmVyICpjaGFuZ2VfdG1wOwotCXVuc2lnbmVkIGxvbmcgY3VycmVudF90eXBlLCBsYXN0X3R5cGU7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxhc3RfYWRkcjsKLQlpbnQgY2hnaWR4LCBzdGlsbF9jaGFuZ2luZzsKLQlpbnQgb3ZlcmxhcF9lbnRyaWVzOwotCWludCBuZXdfYmlvc19lbnRyeTsKLQlpbnQgb2xkX25yLCBuZXdfbnIsIGNoZ19ucjsKLQlpbnQgaTsKLQotCS8qCi0JCVZpc3VhbGx5IHdlJ3JlIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyAoMSwyLDMsNCA9IG1lbW9yeSB0eXBlcykuLi4KLQotCQlTYW1wbGUgbWVtb3J5IG1hcCAody9vdmVybGFwcyk6Ci0JCSAgIF9fX18yMl9fX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KLQkJICAgX19fXzExMTFfX19fX19fX19fX19fX19fCi0JCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXwotCQkgICAxMTExMTExMV9fX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX18zM19fCi0JCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXwotCQkgICBfX19fX19fX19fMzMzMzNfX19fX19fX18KLQkJICAgX19fX19fX19fX19fX18yMl9fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX18yMjIyXwotCQkgICBfX19fX19fX18xMTExMTExMTFfX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX19fMTFfCi0JCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXwotCi0JCVNhbml0aXplZCBlcXVpdmFsZW50IChubyBvdmVybGFwKToKLQkJICAgMV9fX19fX19fX19fX19fX19fX19fX19fCi0JCSAgIF80NF9fX19fX19fX19fX19fX19fX19fXwotCQkgICBfX18xX19fX19fX19fX19fX19fX19fX18KLQkJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fXzExX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX18xX19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fXzNfX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fNDRfX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fMzNfX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fMl9fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX18xX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fXzRfX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fXzJfX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fMzNfXwotCQkgICBfX19fX19fX19fX19fX19fX19fX19fNF8KLQkqLwotCS8qIGlmIHRoZXJlJ3Mgb25seSBvbmUgbWVtb3J5IHJlZ2lvbiwgZG9uJ3QgYm90aGVyICovCi0JaWYgKCpwbnJfbWFwIDwgMikgewotCQlyZXR1cm4gLTE7Ci0JfQotCi0Jb2xkX25yID0gKnBucl9tYXA7Ci0KLQkvKiBiYWlsIG91dCBpZiB3ZSBmaW5kIGFueSB1bnJlYXNvbmFibGUgYWRkcmVzc2VzIGluIGJpb3MgbWFwICovCi0JZm9yIChpPTA7IGk8b2xkX25yOyBpKyspCi0JCWlmIChiaW9zbWFwW2ldLmFkZHIgKyBiaW9zbWFwW2ldLnNpemUgPCBiaW9zbWFwW2ldLmFkZHIpIHsKLQkJCXJldHVybiAtMTsKLQkJfQotCi0JLyogY3JlYXRlIHBvaW50ZXJzIGZvciBpbml0aWFsIGNoYW5nZS1wb2ludCBpbmZvcm1hdGlvbiAoZm9yIHNvcnRpbmcpICovCi0JZm9yIChpPTA7IGkgPCAyKm9sZF9ucjsgaSsrKQotCQljaGFuZ2VfcG9pbnRbaV0gPSAmY2hhbmdlX3BvaW50X2xpc3RbaV07Ci0KLQkvKiByZWNvcmQgYWxsIGtub3duIGNoYW5nZS1wb2ludHMgKHN0YXJ0aW5nIGFuZCBlbmRpbmcgYWRkcmVzc2VzKSwKLQkgICBvbWl0dGluZyB0aG9zZSB0aGF0IGFyZSBmb3IgZW1wdHkgbWVtb3J5IHJlZ2lvbnMgKi8KLQljaGdpZHggPSAwOwotCWZvciAoaT0wOyBpIDwgb2xkX25yOyBpKyspCXsKLQkJaWYgKGJpb3NtYXBbaV0uc2l6ZSAhPSAwKSB7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkcjsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9IGJpb3NtYXBbaV0uYWRkciArIGJpb3NtYXBbaV0uc2l6ZTsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07Ci0JCX0KLQl9Ci0JY2hnX25yID0gY2hnaWR4OyAgICAJLyogdHJ1ZSBudW1iZXIgb2YgY2hhbmdlLXBvaW50cyAqLwotCi0JLyogc29ydCBjaGFuZ2UtcG9pbnQgbGlzdCBieSBtZW1vcnkgYWRkcmVzc2VzIChsb3cgLT4gaGlnaCkgKi8KLQlzdGlsbF9jaGFuZ2luZyA9IDE7Ci0Jd2hpbGUgKHN0aWxsX2NoYW5naW5nKQl7Ci0JCXN0aWxsX2NoYW5naW5nID0gMDsKLQkJZm9yIChpPTE7IGkgPCBjaGdfbnI7IGkrKykgIHsKLQkJCS8qIGlmIDxjdXJyZW50X2FkZHI+ID4gPGxhc3RfYWRkcj4sIHN3YXAgKi8KLQkJCS8qIG9yLCBpZiBjdXJyZW50PTxzdGFydF9hZGRyPiAmIGxhc3Q9PGVuZF9hZGRyPiwgc3dhcCAqLwotCQkJaWYgKChjaGFuZ2VfcG9pbnRbaV0tPmFkZHIgPCBjaGFuZ2VfcG9pbnRbaS0xXS0+YWRkcikgfHwKLQkJCQkoKGNoYW5nZV9wb2ludFtpXS0+YWRkciA9PSBjaGFuZ2VfcG9pbnRbaS0xXS0+YWRkcikgJiYKLQkJCQkgKGNoYW5nZV9wb2ludFtpXS0+YWRkciA9PSBjaGFuZ2VfcG9pbnRbaV0tPnBiaW9zLT5hZGRyKSAmJgotCQkJCSAoY2hhbmdlX3BvaW50W2ktMV0tPmFkZHIgIT0gY2hhbmdlX3BvaW50W2ktMV0tPnBiaW9zLT5hZGRyKSkKLQkJCSAgICkKLQkJCXsKLQkJCQljaGFuZ2VfdG1wID0gY2hhbmdlX3BvaW50W2ldOwotCQkJCWNoYW5nZV9wb2ludFtpXSA9IGNoYW5nZV9wb2ludFtpLTFdOwotCQkJCWNoYW5nZV9wb2ludFtpLTFdID0gY2hhbmdlX3RtcDsKLQkJCQlzdGlsbF9jaGFuZ2luZz0xOwotCQkJfQotCQl9Ci0JfQotCi0JLyogY3JlYXRlIGEgbmV3IGJpb3MgbWVtb3J5IG1hcCwgcmVtb3Zpbmcgb3ZlcmxhcHMgKi8KLQlvdmVybGFwX2VudHJpZXM9MDsJIC8qIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBvdmVybGFwIHRhYmxlICovCi0JbmV3X2Jpb3NfZW50cnk9MDsJIC8qIGluZGV4IGZvciBjcmVhdGluZyBuZXcgYmlvcyBtYXAgZW50cmllcyAqLwotCWxhc3RfdHlwZSA9IDA7CQkgLyogc3RhcnQgd2l0aCB1bmRlZmluZWQgbWVtb3J5IHR5cGUgKi8KLQlsYXN0X2FkZHIgPSAwOwkJIC8qIHN0YXJ0IHdpdGggMCBhcyBsYXN0IHN0YXJ0aW5nIGFkZHJlc3MgKi8KLQkvKiBsb29wIHRocm91Z2ggY2hhbmdlLXBvaW50cywgZGV0ZXJtaW5pbmcgYWZmZWN0IG9uIHRoZSBuZXcgYmlvcyBtYXAgKi8KLQlmb3IgKGNoZ2lkeD0wOyBjaGdpZHggPCBjaGdfbnI7IGNoZ2lkeCsrKQotCXsKLQkJLyoga2VlcCB0cmFjayBvZiBhbGwgb3ZlcmxhcHBpbmcgYmlvcyBlbnRyaWVzICovCi0JCWlmIChjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9PSBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MtPmFkZHIpCi0JCXsKLQkJCS8qIGFkZCBtYXAgZW50cnkgdG8gb3ZlcmxhcCBsaXN0ICg+IDEgZW50cnkgaW1wbGllcyBhbiBvdmVybGFwKSAqLwotCQkJb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcysrXT1jaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3M7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQkvKiByZW1vdmUgZW50cnkgZnJvbSBsaXN0IChvcmRlciBpbmRlcGVuZGVudCwgc28gc3dhcCB3aXRoIGxhc3QpICovCi0JCQlmb3IgKGk9MDsgaTxvdmVybGFwX2VudHJpZXM7IGkrKykKLQkJCXsKLQkJCQlpZiAob3ZlcmxhcF9saXN0W2ldID09IGNoYW5nZV9wb2ludFtjaGdpZHhdLT5wYmlvcykKLQkJCQkJb3ZlcmxhcF9saXN0W2ldID0gb3ZlcmxhcF9saXN0W292ZXJsYXBfZW50cmllcy0xXTsKLQkJCX0KLQkJCW92ZXJsYXBfZW50cmllcy0tOwotCQl9Ci0JCS8qIGlmIHRoZXJlIGFyZSBvdmVybGFwcGluZyBlbnRyaWVzLCBkZWNpZGUgd2hpY2ggInR5cGUiIHRvIHVzZSAqLwotCQkvKiAobGFyZ2VyIHZhbHVlIHRha2VzIHByZWNlZGVuY2UgLS0gMT11c2FibGUsIDIsMyw0LDQrPXVudXNhYmxlKSAqLwotCQljdXJyZW50X3R5cGUgPSAwOwotCQlmb3IgKGk9MDsgaTxvdmVybGFwX2VudHJpZXM7IGkrKykKLQkJCWlmIChvdmVybGFwX2xpc3RbaV0tPnR5cGUgPiBjdXJyZW50X3R5cGUpCi0JCQkJY3VycmVudF90eXBlID0gb3ZlcmxhcF9saXN0W2ldLT50eXBlOwotCQkvKiBjb250aW51ZSBidWlsZGluZyB1cCBuZXcgYmlvcyBtYXAgYmFzZWQgb24gdGhpcyBpbmZvcm1hdGlvbiAqLwotCQlpZiAoY3VycmVudF90eXBlICE9IGxhc3RfdHlwZSkJewotCQkJaWYgKGxhc3RfdHlwZSAhPSAwKQkgewotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5zaXplID0KLQkJCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgLSBsYXN0X2FkZHI7Ci0JCQkJLyogbW92ZSBmb3J3YXJkIG9ubHkgaWYgdGhlIG5ldyBzaXplIHdhcyBub24temVybyAqLwotCQkJCWlmIChuZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSAhPSAwKQotCQkJCQlpZiAoKytuZXdfYmlvc19lbnRyeSA+PSBFODIwTUFYKQotCQkJCQkJYnJlYWs7IAkvKiBubyBtb3JlIHNwYWNlIGxlZnQgZm9yIG5ldyBiaW9zIGVudHJpZXMgKi8KLQkJCX0KLQkJCWlmIChjdXJyZW50X3R5cGUgIT0gMCkJewotCQkJCW5ld19iaW9zW25ld19iaW9zX2VudHJ5XS5hZGRyID0gY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHI7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnR5cGUgPSBjdXJyZW50X3R5cGU7Ci0JCQkJbGFzdF9hZGRyPWNoYW5nZV9wb2ludFtjaGdpZHhdLT5hZGRyOwotCQkJfQotCQkJbGFzdF90eXBlID0gY3VycmVudF90eXBlOwotCQl9Ci0JfQotCW5ld19uciA9IG5ld19iaW9zX2VudHJ5OyAgIC8qIHJldGFpbiBjb3VudCBmb3IgbmV3IGJpb3MgZW50cmllcyAqLwotCi0JLyogY29weSBuZXcgYmlvcyBtYXBwaW5nIGludG8gb3JpZ2luYWwgbG9jYXRpb24gKi8KLQltZW1jcHkoYmlvc21hcCwgbmV3X2Jpb3MsIG5ld19ucipzaXplb2Yoc3RydWN0IGU4MjBlbnRyeSkpOwotCSpwbnJfbWFwID0gbmV3X25yOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBDb3B5IHRoZSBCSU9TIGU4MjAgbWFwIGludG8gYSBzYWZlIHBsYWNlLgotICoKLSAqIFNhbml0eS1jaGVjayBpdCB3aGlsZSB3ZSdyZSBhdCBpdC4uCi0gKgotICogSWYgd2UncmUgbHVja3kgYW5kIGxpdmUgb24gYSBtb2Rlcm4gc3lzdGVtLCB0aGUgc2V0dXAgY29kZQotICogd2lsbCBoYXZlIGdpdmVuIHVzIGEgbWVtb3J5IG1hcCB0aGF0IHdlIGNhbiB1c2UgdG8gcHJvcGVybHkKLSAqIHNldCB1cCBtZW1vcnkuICBJZiB3ZSBhcmVuJ3QsIHdlJ2xsIGZha2UgYSBtZW1vcnkgbWFwLgotICoKLSAqIFdlIGNoZWNrIHRvIHNlZSB0aGF0IHRoZSBtZW1vcnkgbWFwIGNvbnRhaW5zIGF0IGxlYXN0IDIgZWxlbWVudHMKLSAqIGJlZm9yZSB3ZSdsbCB1c2UgaXQsIGJlY2F1c2UgdGhlIGRldGVjdGlvbiBjb2RlIGluIHNldHVwLlMgbWF5Ci0gKiBub3QgYmUgcGVyZmVjdCBhbmQgbW9zdCBldmVyeSBQQyBrbm93biB0byBtYW4gaGFzIHR3byBtZW1vcnkKLSAqIHJlZ2lvbnM6IG9uZSBmcm9tIDAgdG8gNjQwaywgYW5kIG9uZSBmcm9tIDFtYiB1cC4gIChUaGUgSUJNCi0gKiB0aGlua3BhZCA1NjB4LCBmb3IgZXhhbXBsZSwgZG9lcyBub3QgY29vcGVyYXRlIHdpdGggdGhlIG1lbW9yeQotICogZGV0ZWN0aW9uIGNvZGUuKQotICovCi1pbnQgX19pbml0IGNvcHlfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCkKLXsKLQkvKiBPbmx5IG9uZSBtZW1vcnkgcmVnaW9uIChvciBuZWdhdGl2ZSk/IElnbm9yZSBpdCAqLwotCWlmIChucl9tYXAgPCAyKQotCQlyZXR1cm4gLTE7Ci0KLQlkbyB7Ci0JCXU2NCBzdGFydCA9IGJpb3NtYXAtPmFkZHI7Ci0JCXU2NCBzaXplID0gYmlvc21hcC0+c2l6ZTsKLQkJdTY0IGVuZCA9IHN0YXJ0ICsgc2l6ZTsKLQkJdTMyIHR5cGUgPSBiaW9zbWFwLT50eXBlOwotCi0JCS8qIE92ZXJmbG93IGluIDY0IGJpdHM/IElnbm9yZSB0aGUgbWVtb3J5IG1hcC4gKi8KLQkJaWYgKHN0YXJ0ID4gZW5kKQotCQkJcmV0dXJuIC0xOwotCi0JCWFkZF9tZW1vcnlfcmVnaW9uKHN0YXJ0LCBzaXplLCB0eXBlKTsKLQl9IHdoaWxlIChiaW9zbWFwKyssIC0tbnJfbWFwKTsKLQotCXJldHVybiAwOwotfQotCi0vKgotICogRmluZCB0aGUgaGlnaGVzdCBwYWdlIGZyYW1lIG51bWJlciB3ZSBoYXZlIGF2YWlsYWJsZQotICovCi12b2lkIF9faW5pdCBwcm9wYWdhdGVfZTgyMF9tYXAodm9pZCkKLXsKLQlpbnQgaTsKLQotCW1heF9wZm4gPSAwOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCQkvKiBSQU0/ICovCi0JCWlmIChlODIwLm1hcFtpXS50eXBlICE9IEU4MjBfUkFNKQotCQkJY29udGludWU7Ci0JCXN0YXJ0ID0gUEZOX1VQKGU4MjAubWFwW2ldLmFkZHIpOwotCQllbmQgPSBQRk5fRE9XTihlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSk7Ci0JCWlmIChzdGFydCA+PSBlbmQpCi0JCQljb250aW51ZTsKLQkJaWYgKGVuZCA+IG1heF9wZm4pCi0JCQltYXhfcGZuID0gZW5kOwotCQltZW1vcnlfcHJlc2VudCgwLCBzdGFydCwgZW5kKTsKLQl9Ci19Ci0KLS8qCi0gKiBSZWdpc3RlciBmdWxseSBhdmFpbGFibGUgbG93IFJBTSBwYWdlcyB3aXRoIHRoZSBib290bWVtIGFsbG9jYXRvci4KLSAqLwotdm9pZCBfX2luaXQgcmVnaXN0ZXJfYm9vdG1lbV9sb3dfcGFnZXModW5zaWduZWQgbG9uZyBtYXhfbG93X3BmbikKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXVuc2lnbmVkIGxvbmcgY3Vycl9wZm4sIGxhc3RfcGZuLCBzaXplOwotCQkvKgotCQkgKiBSZXNlcnZlIHVzYWJsZSBsb3cgbWVtb3J5Ci0JCSAqLwotCQlpZiAoZTgyMC5tYXBbaV0udHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCQkvKgotCQkgKiBXZSBhcmUgcm91bmRpbmcgdXAgdGhlIHN0YXJ0IGFkZHJlc3Mgb2YgdXNhYmxlIG1lbW9yeToKLQkJICovCi0JCWN1cnJfcGZuID0gUEZOX1VQKGU4MjAubWFwW2ldLmFkZHIpOwotCQlpZiAoY3Vycl9wZm4gPj0gbWF4X2xvd19wZm4pCi0JCQljb250aW51ZTsKLQkJLyoKLQkJICogLi4uIGFuZCBhdCB0aGUgZW5kIG9mIHRoZSB1c2FibGUgcmFuZ2UgZG93bndhcmRzOgotCQkgKi8KLQkJbGFzdF9wZm4gPSBQRk5fRE9XTihlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSk7Ci0KLQkJaWYgKGxhc3RfcGZuID4gbWF4X2xvd19wZm4pCi0JCQlsYXN0X3BmbiA9IG1heF9sb3dfcGZuOwotCi0JCS8qCi0JCSAqIC4uIGZpbmFsbHksIGRpZCBhbGwgdGhlIHJvdW5kaW5nIGFuZCBwbGF5aW5nCi0JCSAqIGFyb3VuZCBqdXN0IG1ha2UgdGhlIGFyZWEgZ28gYXdheT8KLQkJICovCi0JCWlmIChsYXN0X3BmbiA8PSBjdXJyX3BmbikKLQkJCWNvbnRpbnVlOwotCi0JCXNpemUgPSBsYXN0X3BmbiAtIGN1cnJfcGZuOwotCQlmcmVlX2Jvb3RtZW0oUEZOX1BIWVMoY3Vycl9wZm4pLCBQRk5fUEhZUyhzaXplKSk7Ci0JfQotfQotCi12b2lkIF9faW5pdCBlODIwX3JlZ2lzdGVyX21lbW9yeSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZ2Fwc3RhcnQsIGdhcHNpemUsIHJvdW5kOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBsYXN0OwotCWludCBpOwotCi0JLyoKLQkgKiBTZWFyY2ggZm9yIHRoZSBiaWdnZXN0IGdhcCBpbiB0aGUgbG93IDMyIGJpdHMgb2YgdGhlIGU4MjAKLQkgKiBtZW1vcnkgc3BhY2UuCi0JICovCi0JbGFzdCA9IDB4MTAwMDAwMDAwdWxsOwotCWdhcHN0YXJ0ID0gMHgxMDAwMDAwMDsKLQlnYXBzaXplID0gMHg0MDAwMDA7Ci0JaSA9IGU4MjAubnJfbWFwOwotCXdoaWxlICgtLWkgPj0gMCkgewotCQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOwotCQl1bnNpZ25lZCBsb25nIGxvbmcgZW5kID0gc3RhcnQgKyBlODIwLm1hcFtpXS5zaXplOwotCi0JCS8qCi0JCSAqIFNpbmNlICJsYXN0IiBpcyBhdCBtb3N0IDRHQiwgd2Uga25vdyB3ZSdsbAotCQkgKiBmaXQgaW4gMzIgYml0cyBpZiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlCi0JCSAqLwotCQlpZiAobGFzdCA+IGVuZCkgewotCQkJdW5zaWduZWQgbG9uZyBnYXAgPSBsYXN0IC0gZW5kOwotCi0JCQlpZiAoZ2FwID4gZ2Fwc2l6ZSkgewotCQkJCWdhcHNpemUgPSBnYXA7Ci0JCQkJZ2Fwc3RhcnQgPSBlbmQ7Ci0JCQl9Ci0JCX0KLQkJaWYgKHN0YXJ0IDwgbGFzdCkKLQkJCWxhc3QgPSBzdGFydDsKLQl9Ci0KLQkvKgotCSAqIFNlZSBob3cgbXVjaCB3ZSB3YW50IHRvIHJvdW5kIHVwOiBzdGFydCBvZmYgd2l0aAotCSAqIHJvdW5kaW5nIHRvIHRoZSBuZXh0IDFNQiBhcmVhLgotCSAqLwotCXJvdW5kID0gMHgxMDAwMDA7Ci0Jd2hpbGUgKChnYXBzaXplID4+IDQpID4gcm91bmQpCi0JCXJvdW5kICs9IHJvdW5kOwotCS8qIEZ1biB3aXRoIHR3bydzIGNvbXBsZW1lbnQgKi8KLQlwY2lfbWVtX3N0YXJ0ID0gKGdhcHN0YXJ0ICsgcm91bmQpICYgLXJvdW5kOwotCi0JcHJpbnRrKCJBbGxvY2F0aW5nIFBDSSByZXNvdXJjZXMgc3RhcnRpbmcgYXQgJTA4bHggKGdhcDogJTA4bHg6JTA4bHgpXG4iLAotCQlwY2lfbWVtX3N0YXJ0LCBnYXBzdGFydCwgZ2Fwc2l6ZSk7Ci19Ci0KLXZvaWQgX19pbml0IHByaW50X21lbW9yeV9tYXAoY2hhciAqd2hvKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJcHJpbnRrKCIgJXM6ICUwMTZMeCAtICUwMTZMeCAiLCB3aG8sCi0JCQllODIwLm1hcFtpXS5hZGRyLAotCQkJZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemUpOwotCQlzd2l0Y2ggKGU4MjAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBFODIwX1JBTToJcHJpbnRrKCIodXNhYmxlKVxuIik7Ci0JCQkJYnJlYWs7Ci0JCWNhc2UgRTgyMF9SRVNFUlZFRDoKLQkJCQlwcmludGsoIihyZXNlcnZlZClcbiIpOwotCQkJCWJyZWFrOwotCQljYXNlIEU4MjBfQUNQSToKLQkJCQlwcmludGsoIihBQ1BJIGRhdGEpXG4iKTsKLQkJCQlicmVhazsKLQkJY2FzZSBFODIwX05WUzoKLQkJCQlwcmludGsoIihBQ1BJIE5WUylcbiIpOwotCQkJCWJyZWFrOwotCQlkZWZhdWx0OglwcmludGsoInR5cGUgJXVcbiIsIGU4MjAubWFwW2ldLnR5cGUpOwotCQkJCWJyZWFrOwotCQl9Ci0JfQotfQotCi12b2lkIF9faW5pdCBsaW1pdF9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyBjdXJyZW50X2FkZHI7Ci0JaW50IGk7Ci0KLQlwcmludF9tZW1vcnlfbWFwKCJsaW1pdF9yZWdpb25zIHN0YXJ0Iik7Ci0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJY3VycmVudF9hZGRyID0gZTgyMC5tYXBbaV0uYWRkciArIGU4MjAubWFwW2ldLnNpemU7Ci0JCWlmIChjdXJyZW50X2FkZHIgPCBzaXplKQotCQkJY29udGludWU7Ci0KLQkJaWYgKGU4MjAubWFwW2ldLnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQotCQlpZiAoZTgyMC5tYXBbaV0uYWRkciA+PSBzaXplKSB7Ci0JCQkvKgotCQkJICogVGhpcyByZWdpb24gc3RhcnRzIHBhc3QgdGhlIGVuZCBvZiB0aGUKLQkJCSAqIHJlcXVlc3RlZCBzaXplLCBza2lwIGl0IGNvbXBsZXRlbHkuCi0JCQkgKi8KLQkJCWU4MjAubnJfbWFwID0gaTsKLQkJfSBlbHNlIHsKLQkJCWU4MjAubnJfbWFwID0gaSArIDE7Ci0JCQllODIwLm1hcFtpXS5zaXplIC09IGN1cnJlbnRfYWRkciAtIHNpemU7Ci0JCX0KLQkJcHJpbnRfbWVtb3J5X21hcCgibGltaXRfcmVnaW9ucyBlbmRmb3IiKTsKLQkJcmV0dXJuOwotCX0KLQlwcmludF9tZW1vcnlfbWFwKCJsaW1pdF9yZWdpb25zIGVuZGZ1bmMiKTsKLX0KLQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGFueSBwYXJ0IG9mIHRoZSByYW5nZSA8c3RhcnQsZW5kPiBpcyBtYXBwZWQKLSAqIHdpdGggdHlwZS4KLSAqLwotaW50Ci1lODIwX2FueV9tYXBwZWQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1bnNpZ25lZCB0eXBlKQotewotCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCWNvbnN0IHN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQlpZiAodHlwZSAmJiBlaS0+dHlwZSAhPSB0eXBlKQotCQkJY29udGludWU7Ci0JCWlmIChlaS0+YWRkciA+PSBlbmQgfHwgZWktPmFkZHIgKyBlaS0+c2l6ZSA8PSBzdGFydCkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MX0dQTChlODIwX2FueV9tYXBwZWQpOwotCi0gLyoKLSAgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUgZW50aXJlIHJhbmdlIDxzdGFydCxlbmQ+IGlzIG1hcHBlZCB3aXRoIHR5cGUuCi0gICoKLSAgKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIG9ubHkgd29ya3MgY29ycmVjdCBpZiB0aGUgZTgyMCB0YWJsZSBpcyBzb3J0ZWQgYW5kCi0gICogbm90LW92ZXJsYXBwaW5nLCB3aGljaCBpcyB0aGUgY2FzZQotICAqLwotaW50IF9faW5pdAotZTgyMF9hbGxfbWFwcGVkKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLCB1bnNpZ25lZCB0eXBlKQotewotCXU2NCBzdGFydCA9IHM7Ci0JdTY0IGVuZCA9IGU7Ci0JaW50IGk7Ci0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCi0JCQljb250aW51ZTsKLQkJLyogaXMgdGhlIHJlZ2lvbiAocGFydCkgaW4gb3ZlcmxhcCB3aXRoIHRoZSBjdXJyZW50IHJlZ2lvbiA/Ki8KLQkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQotCQkJY29udGludWU7Ci0JCS8qIGlmIHRoZSByZWdpb24gaXMgYXQgdGhlIGJlZ2lubmluZyBvZiA8c3RhcnQsZW5kPiB3ZSBtb3ZlCi0JCSAqIHN0YXJ0IHRvIHRoZSBlbmQgb2YgdGhlIHJlZ2lvbiBzaW5jZSBpdCdzIG9rIHVudGlsIHRoZXJlCi0JCSAqLwotCQlpZiAoZWktPmFkZHIgPD0gc3RhcnQpCi0JCQlzdGFydCA9IGVpLT5hZGRyICsgZWktPnNpemU7Ci0JCS8qIGlmIHN0YXJ0IGlzIG5vdyBhdCBvciBiZXlvbmQgZW5kLCB3ZSdyZSBkb25lLCBmdWxsCi0JCSAqIGNvdmVyYWdlICovCi0JCWlmIChzdGFydCA+PSBlbmQpCi0JCQlyZXR1cm4gMTsgLyogd2UncmUgZG9uZSAqLwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtbWFwKGNoYXIgKmFyZykKLXsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAoc3RyY21wKGFyZywgImV4YWN0bWFwIikgPT0gMCkgewotI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QCi0JCS8qIElmIHdlIGFyZSBkb2luZyBhIGNyYXNoIGR1bXAsIHdlCi0JCSAqIHN0aWxsIG5lZWQgdG8ga25vdyB0aGUgcmVhbCBtZW0KLQkJICogc2l6ZSBiZWZvcmUgb3JpZ2luYWwgbWVtb3J5IG1hcCBpcwotCQkgKiByZXNldC4KLQkJICovCi0JCXByb3BhZ2F0ZV9lODIwX21hcCgpOwotCQlzYXZlZF9tYXhfcGZuID0gbWF4X3BmbjsKLSNlbmRpZgotCQllODIwLm5yX21hcCA9IDA7Ci0JCXVzZXJfZGVmaW5lZF9tZW1tYXAgPSAxOwotCX0gZWxzZSB7Ci0JCS8qIElmIHRoZSB1c2VyIHNwZWNpZmllcyBtZW1vcnkgc2l6ZSwgd2UKLQkJICogbGltaXQgdGhlIEJJT1MtcHJvdmlkZWQgbWVtb3J5IG1hcCB0bwotCQkgKiB0aGF0IHNpemUuIGV4YWN0bWFwIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkKLQkJICogdGhlIGV4YWN0IG1hcC4gbWVtPW51bWJlciBjYW4gYmUgdXNlZCB0bwotCQkgKiB0cmltIHRoZSBleGlzdGluZyBtZW1vcnkgbWFwLgotCQkgKi8KLQkJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0X2F0LCBtZW1fc2l6ZTsKLQotCQltZW1fc2l6ZSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7Ci0JCWlmICgqYXJnID09ICdAJykgewotCQkJc3RhcnRfYXQgPSBtZW1wYXJzZShhcmcrMSwgJmFyZyk7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkFNKTsKLQkJfSBlbHNlIGlmICgqYXJnID09ICcjJykgewotCQkJc3RhcnRfYXQgPSBtZW1wYXJzZShhcmcrMSwgJmFyZyk7Ci0JCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfQUNQSSk7Ci0JCX0gZWxzZSBpZiAoKmFyZyA9PSAnJCcpIHsKLQkJCXN0YXJ0X2F0ID0gbWVtcGFyc2UoYXJnKzEsICZhcmcpOwotCQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKLQkJfSBlbHNlIHsKLQkJCWxpbWl0X3JlZ2lvbnMobWVtX3NpemUpOwotCQkJdXNlcl9kZWZpbmVkX21lbW1hcCA9IDE7Ci0JCX0KLQl9Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgibWVtbWFwIiwgcGFyc2VfbWVtbWFwKTsKLXZvaWQgX19pbml0IHVwZGF0ZV9tZW1vcnlfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCi0JCQkJdW5zaWduZWQgbmV3X3R5cGUpCi17Ci0JaW50IGk7Ci0KLQlCVUdfT04ob2xkX3R5cGUgPT0gbmV3X3R5cGUpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCXU2NCBmaW5hbF9zdGFydCwgZmluYWxfZW5kOwotCQlpZiAoZWktPnR5cGUgIT0gb2xkX3R5cGUpCi0JCQljb250aW51ZTsKLQkJLyogdG90YWxseSBjb3ZlcmVkPyAqLwotCQlpZiAoZWktPmFkZHIgPj0gc3RhcnQgJiYgZWktPnNpemUgPD0gc2l6ZSkgewotCQkJZWktPnR5cGUgPSBuZXdfdHlwZTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0JCS8qIHBhcnRpYWxseSBjb3ZlcmVkICovCi0JCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCBlaS0+YWRkcik7Ci0JCWZpbmFsX2VuZCA9IG1pbihzdGFydCArIHNpemUsIGVpLT5hZGRyICsgZWktPnNpemUpOwotCQlpZiAoZmluYWxfc3RhcnQgPj0gZmluYWxfZW5kKQotCQkJY29udGludWU7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSBmaW5hbF9zdGFydCwKLQkJCQkJIG5ld190eXBlKTsKLQl9Ci19Ci12b2lkIF9faW5pdCB1cGRhdGVfZTgyMCh2b2lkKQotewotCXU4IG5yX21hcDsKLQotCW5yX21hcCA9IGU4MjAubnJfbWFwOwotCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgJm5yX21hcCkpCi0JCXJldHVybjsKLQllODIwLm5yX21hcCA9IG5yX21hcDsKLQlwcmludGsoS0VSTl9JTkZPICJtb2RpZmllZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JcHJpbnRfbWVtb3J5X21hcCgibW9kaWZpZWQiKTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lODIwXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvZTgyMF82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjQ0ODBjLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9lODIwXzY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw5NTIgKzAsMCBAQAotLyoKLSAqIEhhbmRsZSB0aGUgbWVtb3J5IG1hcC4KLSAqIFRoZSBmdW5jdGlvbnMgaGVyZSBkbyB0aGUgam9iIHVudGlsIGJvb3RtZW0gdGFrZXMgb3Zlci4KLSAqCi0gKiAgR2V0dGluZyBzYW5pdGl6ZV9lODIwX21hcCgpIGluIHN5bmMgd2l0aCBpMzg2IHZlcnNpb24gYnkgYXBwbHlpbmcgY2hhbmdlOgotICogIC0gIFByb3Zpc2lvbnMgZm9yIGVtcHR5IEU4MjAgbWVtb3J5IHJlZ2lvbnMgKHJlcG9ydGVkIGJ5IGNlcnRhaW4gQklPU2VzKS4KLSAqICAgICBBbGV4IEFjaGVuYmFjaCA8eGVsYUBzbGl0LmRlPiwgRGVjZW1iZXIgMjAwMi4KLSAqICBWZW5rYXRlc2ggUGFsbGlwYWRpIDx2ZW5rYXRlc2gucGFsbGlwYWRpQGludGVsLmNvbT4KLSAqCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQuaD4KLSNpbmNsdWRlIDxsaW51eC9wZm4uaD4KLQotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRlIDxhc20vZTgyMC5oPgotI2luY2x1ZGUgPGFzbS9wcm90by5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotI2luY2x1ZGUgPGFzbS9rZGVidWcuaD4KLSNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgotCi1zdHJ1Y3QgZTgyMG1hcCBlODIwOwotCi0vKgotICogUEZOIG9mIGxhc3QgbWVtb3J5IHBhZ2UuCi0gKi8KLXVuc2lnbmVkIGxvbmcgZW5kX3BmbjsKLQotLyoKLSAqIGVuZF9wZm4gb25seSBpbmNsdWRlcyBSQU0sIHdoaWxlIG1heF9wZm5fbWFwcGVkIGluY2x1ZGVzIGFsbCBlODIwIGVudHJpZXMuCi0gKiBUaGUgZGlyZWN0IG1hcHBpbmcgZXh0ZW5kcyB0byBtYXhfcGZuX21hcHBlZCwgc28gdGhhdCB3ZSBjYW4gZGlyZWN0bHkgYWNjZXNzCi0gKiBhcGVydHVyZXMsIEFDUEkgYW5kIG90aGVyIHRhYmxlcyB3aXRob3V0IGhhdmluZyB0byBwbGF5IHdpdGggZml4bWFwcy4KLSAqLwotdW5zaWduZWQgbG9uZyBtYXhfcGZuX21hcHBlZDsKLQotLyoKLSAqIExhc3QgcGZuIHdoaWNoIHRoZSB1c2VyIHdhbnRzIHRvIHVzZS4KLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBlbmRfdXNlcl9wZm4gPSBNQVhNRU0+PlBBR0VfU0hJRlQ7Ci0KLS8qCi0gKiBFYXJseSByZXNlcnZlZCBtZW1vcnkgYXJlYXMuCi0gKi8KLSNkZWZpbmUgTUFYX0VBUkxZX1JFUyAyMAotCi1zdHJ1Y3QgZWFybHlfcmVzIHsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7Ci0JY2hhciBuYW1lWzE2XTsKLX07Ci1zdGF0aWMgc3RydWN0IGVhcmx5X3JlcyBlYXJseV9yZXNbTUFYX0VBUkxZX1JFU10gX19pbml0ZGF0YSA9IHsKLQl7IDAsIFBBR0VfU0laRSwgIkJJT1MgZGF0YSBwYWdlIiB9LAkJCS8qIEJJT1MgZGF0YSBwYWdlICovCi0jaWZkZWYgQ09ORklHX1g4Nl9UUkFNUE9MSU5FCi0JeyBUUkFNUE9MSU5FX0JBU0UsIFRSQU1QT0xJTkVfQkFTRSArIDIgKiBQQUdFX1NJWkUsICJUUkFNUE9MSU5FIiB9LAotI2VuZGlmCi0Je30KLX07Ci0KLXZvaWQgX19pbml0IHJlc2VydmVfZWFybHkodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsIGNoYXIgKm5hbWUpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IGVhcmx5X3JlcyAqcjsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKLQkJciA9ICZlYXJseV9yZXNbaV07Ci0JCWlmIChlbmQgPiByLT5zdGFydCAmJiBzdGFydCA8IHItPmVuZCkKLQkJCXBhbmljKCJPdmVybGFwcGluZyBlYXJseSByZXNlcnZhdGlvbnMgJWx4LSVseCAlcyB0byAlbHgtJWx4ICVzXG4iLAotCQkJICAgICAgc3RhcnQsIGVuZCAtIDEsIG5hbWU/bmFtZToiIiwgci0+c3RhcnQsIHItPmVuZCAtIDEsIHItPm5hbWUpOwotCX0KLQlpZiAoaSA+PSBNQVhfRUFSTFlfUkVTKQotCQlwYW5pYygiVG9vIG1hbnkgZWFybHkgcmVzZXJ2YXRpb25zIik7Ci0JciA9ICZlYXJseV9yZXNbaV07Ci0Jci0+c3RhcnQgPSBzdGFydDsKLQlyLT5lbmQgPSBlbmQ7Ci0JaWYgKG5hbWUpCi0JCXN0cm5jcHkoci0+bmFtZSwgbmFtZSwgc2l6ZW9mKHItPm5hbWUpIC0gMSk7Ci19Ci0KLXZvaWQgX19pbml0IGZyZWVfZWFybHkodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCi17Ci0Jc3RydWN0IGVhcmx5X3JlcyAqcjsKLQlpbnQgaSwgajsKLQotCWZvciAoaSA9IDA7IGkgPCBNQVhfRUFSTFlfUkVTICYmIGVhcmx5X3Jlc1tpXS5lbmQ7IGkrKykgewotCQlyID0gJmVhcmx5X3Jlc1tpXTsKLQkJaWYgKHN0YXJ0ID09IHItPnN0YXJ0ICYmIGVuZCA9PSByLT5lbmQpCi0JCQlicmVhazsKLQl9Ci0JaWYgKGkgPj0gTUFYX0VBUkxZX1JFUyB8fCAhZWFybHlfcmVzW2ldLmVuZCkKLQkJcGFuaWMoImZyZWVfZWFybHkgb24gbm90IHJlc2VydmVkIGFyZWE6ICVseC0lbHghIiwgc3RhcnQsIGVuZCk7Ci0KLQlmb3IgKGogPSBpICsgMTsgaiA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2pdLmVuZDsgaisrKQotCQk7Ci0KLQltZW1tb3ZlKCZlYXJseV9yZXNbaV0sICZlYXJseV9yZXNbaSArIDFdLAotCSAgICAgICAoaiAtIDEgLSBpKSAqIHNpemVvZihzdHJ1Y3QgZWFybHlfcmVzKSk7Ci0KLQllYXJseV9yZXNbaiAtIDFdLmVuZCA9IDA7Ci19Ci0KLXZvaWQgX19pbml0IGVhcmx5X3Jlc190b19ib290bWVtKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQotewotCWludCBpOwotCXVuc2lnbmVkIGxvbmcgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKLQkJc3RydWN0IGVhcmx5X3JlcyAqciA9ICZlYXJseV9yZXNbaV07Ci0JCWZpbmFsX3N0YXJ0ID0gbWF4KHN0YXJ0LCByLT5zdGFydCk7Ci0JCWZpbmFsX2VuZCA9IG1pbihlbmQsIHItPmVuZCk7Ci0JCWlmIChmaW5hbF9zdGFydCA+PSBmaW5hbF9lbmQpCi0JCQljb250aW51ZTsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiICBlYXJseSByZXM6ICVkIFslbHgtJWx4XSAlc1xuIiwgaSwKLQkJCWZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQgLSAxLCByLT5uYW1lKTsKLQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMoZmluYWxfc3RhcnQsIGZpbmFsX2VuZCAtIGZpbmFsX3N0YXJ0KTsKLQl9Ci19Ci0KLS8qIENoZWNrIGZvciBhbHJlYWR5IHJlc2VydmVkIGFyZWFzICovCi1zdGF0aWMgaW5saW5lIGludCBfX2luaXQKLWJhZF9hZGRyKHVuc2lnbmVkIGxvbmcgKmFkZHJwLCB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGxvbmcgYWxpZ24pCi17Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBhZGRyID0gKmFkZHJwLCBsYXN0OwotCWludCBjaGFuZ2VkID0gMDsKLWFnYWluOgotCWxhc3QgPSBhZGRyICsgc2l6ZTsKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX0VBUkxZX1JFUyAmJiBlYXJseV9yZXNbaV0uZW5kOyBpKyspIHsKLQkJc3RydWN0IGVhcmx5X3JlcyAqciA9ICZlYXJseV9yZXNbaV07Ci0JCWlmIChsYXN0ID49IHItPnN0YXJ0ICYmIGFkZHIgPCByLT5lbmQpIHsKLQkJCSphZGRycCA9IGFkZHIgPSByb3VuZF91cChyLT5lbmQsIGFsaWduKTsKLQkJCWNoYW5nZWQgPSAxOwotCQkJZ290byBhZ2FpbjsKLQkJfQotCX0KLQlyZXR1cm4gY2hhbmdlZDsKLX0KLQotLyogQ2hlY2sgZm9yIGFscmVhZHkgcmVzZXJ2ZWQgYXJlYXMgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9faW5pdAotYmFkX2FkZHJfc2l6ZSh1bnNpZ25lZCBsb25nICphZGRycCwgdW5zaWduZWQgbG9uZyAqc2l6ZXAsIHVuc2lnbmVkIGxvbmcgYWxpZ24pCi17Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBhZGRyID0gKmFkZHJwLCBsYXN0OwotCXVuc2lnbmVkIGxvbmcgc2l6ZSA9ICpzaXplcDsKLQlpbnQgY2hhbmdlZCA9IDA7Ci1hZ2FpbjoKLQlsYXN0ID0gYWRkciArIHNpemU7Ci0JZm9yIChpID0gMDsgaSA8IE1BWF9FQVJMWV9SRVMgJiYgZWFybHlfcmVzW2ldLmVuZDsgaSsrKSB7Ci0JCXN0cnVjdCBlYXJseV9yZXMgKnIgPSAmZWFybHlfcmVzW2ldOwotCQlpZiAobGFzdCA+IHItPnN0YXJ0ICYmIGFkZHIgPCByLT5zdGFydCkgewotCQkJc2l6ZSA9IHItPnN0YXJ0IC0gYWRkcjsKLQkJCWNoYW5nZWQgPSAxOwotCQkJZ290byBhZ2FpbjsKLQkJfQotCQlpZiAobGFzdCA+IHItPmVuZCAmJiBhZGRyIDwgci0+ZW5kKSB7Ci0JCQlhZGRyID0gcm91bmRfdXAoci0+ZW5kLCBhbGlnbik7Ci0JCQlzaXplID0gbGFzdCAtIGFkZHI7Ci0JCQljaGFuZ2VkID0gMTsKLQkJCWdvdG8gYWdhaW47Ci0JCX0KLQkJaWYgKGxhc3QgPD0gci0+ZW5kICYmIGFkZHIgPj0gci0+c3RhcnQpIHsKLQkJCSgqc2l6ZXApKys7Ci0JCQlyZXR1cm4gMDsKLQkJfQotCX0KLQlpZiAoY2hhbmdlZCkgewotCQkqYWRkcnAgPSBhZGRyOwotCQkqc2l6ZXAgPSBzaXplOwotCX0KLQlyZXR1cm4gY2hhbmdlZDsKLX0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiBhbnkgcGFydCBvZiB0aGUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkCi0gKiB3aXRoIHR5cGUuCi0gKi8KLWludAotZTgyMF9hbnlfbWFwcGVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLCB1bnNpZ25lZCB0eXBlKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0KLQkJaWYgKHR5cGUgJiYgZWktPnR5cGUgIT0gdHlwZSkKLQkJCWNvbnRpbnVlOwotCQlpZiAoZWktPmFkZHIgPj0gZW5kIHx8IGVpLT5hZGRyICsgZWktPnNpemUgPD0gc3RhcnQpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoZTgyMF9hbnlfbWFwcGVkKTsKLQotLyoKLSAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRoZSBlbnRpcmUgcmFuZ2UgPHN0YXJ0LGVuZD4gaXMgbWFwcGVkIHdpdGggdHlwZS4KLSAqCi0gKiBOb3RlOiB0aGlzIGZ1bmN0aW9uIG9ubHkgd29ya3MgY29ycmVjdCBpZiB0aGUgZTgyMCB0YWJsZSBpcyBzb3J0ZWQgYW5kCi0gKiBub3Qtb3ZlcmxhcHBpbmcsIHdoaWNoIGlzIHRoZSBjYXNlCi0gKi8KLWludCBfX2luaXQgZTgyMF9hbGxfbWFwcGVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAgdW5zaWduZWQgdHlwZSkKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCi0JCWlmICh0eXBlICYmIGVpLT50eXBlICE9IHR5cGUpCi0JCQljb250aW51ZTsKLQkJLyogaXMgdGhlIHJlZ2lvbiAocGFydCkgaW4gb3ZlcmxhcCB3aXRoIHRoZSBjdXJyZW50IHJlZ2lvbiA/Ki8KLQkJaWYgKGVpLT5hZGRyID49IGVuZCB8fCBlaS0+YWRkciArIGVpLT5zaXplIDw9IHN0YXJ0KQotCQkJY29udGludWU7Ci0KLQkJLyogaWYgdGhlIHJlZ2lvbiBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mIDxzdGFydCxlbmQ+IHdlIG1vdmUKLQkJICogc3RhcnQgdG8gdGhlIGVuZCBvZiB0aGUgcmVnaW9uIHNpbmNlIGl0J3Mgb2sgdW50aWwgdGhlcmUKLQkJICovCi0JCWlmIChlaS0+YWRkciA8PSBzdGFydCkKLQkJCXN0YXJ0ID0gZWktPmFkZHIgKyBlaS0+c2l6ZTsKLQkJLyoKLQkJICogaWYgc3RhcnQgaXMgbm93IGF0IG9yIGJleW9uZCBlbmQsIHdlJ3JlIGRvbmUsIGZ1bGwKLQkJICogY292ZXJhZ2UKLQkJICovCi0JCWlmIChzdGFydCA+PSBlbmQpCi0JCQlyZXR1cm4gMTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBGaW5kIGEgZnJlZSBhcmVhIHdpdGggc3BlY2lmaWVkIGFsaWdubWVudCBpbiBhIHNwZWNpZmljIHJhbmdlLgotICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBmaW5kX2U4MjBfYXJlYSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKQotewotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJc3RydWN0IGU4MjBlbnRyeSAqZWkgPSAmZTgyMC5tYXBbaV07Ci0JCXVuc2lnbmVkIGxvbmcgYWRkciwgbGFzdDsKLQkJdW5zaWduZWQgbG9uZyBlaV9sYXN0OwotCi0JCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKLQkJCWNvbnRpbnVlOwotCQlhZGRyID0gcm91bmRfdXAoZWktPmFkZHIsIGFsaWduKTsKLQkJZWlfbGFzdCA9IGVpLT5hZGRyICsgZWktPnNpemU7Ci0JCWlmIChhZGRyIDwgc3RhcnQpCi0JCQlhZGRyID0gcm91bmRfdXAoc3RhcnQsIGFsaWduKTsKLQkJaWYgKGFkZHIgPj0gZWlfbGFzdCkKLQkJCWNvbnRpbnVlOwotCQl3aGlsZSAoYmFkX2FkZHIoJmFkZHIsIHNpemUsIGFsaWduKSAmJiBhZGRyK3NpemUgPD0gZWlfbGFzdCkKLQkJCTsKLQkJbGFzdCA9IGFkZHIgKyBzaXplOwotCQlpZiAobGFzdCA+IGVpX2xhc3QpCi0JCQljb250aW51ZTsKLQkJaWYgKGxhc3QgPiBlbmQpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIGFkZHI7Ci0JfQotCXJldHVybiAtMVVMOwotfQotCi0vKgotICogRmluZCBuZXh0IGZyZWUgcmFuZ2UgYWZ0ZXIgKnN0YXJ0Ci0gKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGZpbmRfZTgyMF9hcmVhX3NpemUodW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgKnNpemVwLAotCQkJCQkgdW5zaWduZWQgbG9uZyBhbGlnbikKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQl1bnNpZ25lZCBsb25nIGFkZHIsIGxhc3Q7Ci0JCXVuc2lnbmVkIGxvbmcgZWlfbGFzdDsKLQotCQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQkJYWRkciA9IHJvdW5kX3VwKGVpLT5hZGRyLCBhbGlnbik7Ci0JCWVpX2xhc3QgPSBlaS0+YWRkciArIGVpLT5zaXplOwotCQlpZiAoYWRkciA8IHN0YXJ0KQotCQkJYWRkciA9IHJvdW5kX3VwKHN0YXJ0LCBhbGlnbik7Ci0JCWlmIChhZGRyID49IGVpX2xhc3QpCi0JCQljb250aW51ZTsKLQkJKnNpemVwID0gZWlfbGFzdCAtIGFkZHI7Ci0JCXdoaWxlIChiYWRfYWRkcl9zaXplKCZhZGRyLCBzaXplcCwgYWxpZ24pICYmCi0JCQlhZGRyICsgKnNpemVwIDw9IGVpX2xhc3QpCi0JCQk7Ci0JCWxhc3QgPSBhZGRyICsgKnNpemVwOwotCQlpZiAobGFzdCA+IGVpX2xhc3QpCi0JCQljb250aW51ZTsKLQkJcmV0dXJuIGFkZHI7Ci0JfQotCXJldHVybiAtMVVMOwotCi19Ci0vKgotICogRmluZCB0aGUgaGlnaGVzdCBwYWdlIGZyYW1lIG51bWJlciB3ZSBoYXZlIGF2YWlsYWJsZQotICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBlODIwX2VuZF9vZl9yYW0odm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGVuZF9wZm47Ci0KLQllbmRfcGZuID0gZmluZF9tYXhfcGZuX3dpdGhfYWN0aXZlX3JlZ2lvbnMoKTsKLQotCWlmIChlbmRfcGZuID4gbWF4X3Bmbl9tYXBwZWQpCi0JCW1heF9wZm5fbWFwcGVkID0gZW5kX3BmbjsKLQlpZiAobWF4X3Bmbl9tYXBwZWQgPiBNQVhNRU0+PlBBR0VfU0hJRlQpCi0JCW1heF9wZm5fbWFwcGVkID0gTUFYTUVNPj5QQUdFX1NISUZUOwotCWlmIChlbmRfcGZuID4gZW5kX3VzZXJfcGZuKQotCQllbmRfcGZuID0gZW5kX3VzZXJfcGZuOwotCWlmIChlbmRfcGZuID4gbWF4X3Bmbl9tYXBwZWQpCi0JCWVuZF9wZm4gPSBtYXhfcGZuX21hcHBlZDsKLQotCXByaW50ayhLRVJOX0lORk8gIm1heF9wZm5fbWFwcGVkID0gJWx1XG4iLCBtYXhfcGZuX21hcHBlZCk7Ci0JcmV0dXJuIGVuZF9wZm47Ci19Ci0KLS8qCi0gKiBNYXJrIGU4MjAgcmVzZXJ2ZWQgYXJlYXMgYXMgYnVzeSBmb3IgdGhlIHJlc291cmNlIG1hbmFnZXIuCi0gKi8KLXZvaWQgX19pbml0IGU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXModm9pZCkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQotCXJlcyA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogZTgyMC5ucl9tYXApOwotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN3aXRjaCAoZTgyMC5tYXBbaV0udHlwZSkgewotCQljYXNlIEU4MjBfUkFNOglyZXMtPm5hbWUgPSAiU3lzdGVtIFJBTSI7IGJyZWFrOwotCQljYXNlIEU4MjBfQUNQSToJcmVzLT5uYW1lID0gIkFDUEkgVGFibGVzIjsgYnJlYWs7Ci0JCWNhc2UgRTgyMF9OVlM6CXJlcy0+bmFtZSA9ICJBQ1BJIE5vbi12b2xhdGlsZSBTdG9yYWdlIjsgYnJlYWs7Ci0JCWRlZmF1bHQ6CXJlcy0+bmFtZSA9ICJyZXNlcnZlZCI7Ci0JCX0KLQkJcmVzLT5zdGFydCA9IGU4MjAubWFwW2ldLmFkZHI7Ci0JCXJlcy0+ZW5kID0gcmVzLT5zdGFydCArIGU4MjAubWFwW2ldLnNpemUgLSAxOwotCQlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9NRU0gfCBJT1JFU09VUkNFX0JVU1k7Ci0JCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsIHJlcyk7Ci0JCXJlcysrOwotCX0KLX0KLQotLyoKLSAqIEZpbmQgdGhlIHJhbmdlcyBvZiBwaHlzaWNhbCBhZGRyZXNzZXMgdGhhdCBkbyBub3QgY29ycmVzcG9uZCB0bwotICogZTgyMCBSQU0gYXJlYXMgYW5kIG1hcmsgdGhlIGNvcnJlc3BvbmRpbmcgcGFnZXMgYXMgbm9zYXZlIGZvciBzb2Z0d2FyZQotICogc3VzcGVuZCBhbmQgc3VzcGVuZCB0byBSQU0uCi0gKgotICogVGhpcyBmdW5jdGlvbiByZXF1aXJlcyB0aGUgZTgyMCBtYXAgdG8gYmUgc29ydGVkIGFuZCB3aXRob3V0IGFueQotICogb3ZlcmxhcHBpbmcgZW50cmllcyBhbmQgYXNzdW1lcyB0aGUgZmlyc3QgZTgyMCBhcmVhIHRvIGJlIFJBTS4KLSAqLwotdm9pZCBfX2luaXQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHZvaWQpCi17Ci0JaW50IGk7Ci0JdW5zaWduZWQgbG9uZyBwYWRkcjsKLQotCXBhZGRyID0gcm91bmRfZG93bihlODIwLm1hcFswXS5hZGRyICsgZTgyMC5tYXBbMF0uc2l6ZSwgUEFHRV9TSVpFKTsKLQlmb3IgKGkgPSAxOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICplaSA9ICZlODIwLm1hcFtpXTsKLQotCQlpZiAocGFkZHIgPCBlaS0+YWRkcikKLQkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24oUEZOX0RPV04ocGFkZHIpLAotCQkJCQkJUEZOX1VQKGVpLT5hZGRyKSk7Ci0KLQkJcGFkZHIgPSByb3VuZF9kb3duKGVpLT5hZGRyICsgZWktPnNpemUsIFBBR0VfU0laRSk7Ci0JCWlmIChlaS0+dHlwZSAhPSBFODIwX1JBTSkKLQkJCXJlZ2lzdGVyX25vc2F2ZV9yZWdpb24oUEZOX1VQKGVpLT5hZGRyKSwKLQkJCQkJCVBGTl9ET1dOKHBhZGRyKSk7Ci0KLQkJaWYgKHBhZGRyID49IChlbmRfcGZuIDw8IFBBR0VfU0hJRlQpKQotCQkJYnJlYWs7Ci0JfQotfQotCi0vKgotICogRmluZHMgYW4gYWN0aXZlIHJlZ2lvbiBpbiB0aGUgYWRkcmVzcyByYW5nZSBmcm9tIHN0YXJ0X3BmbiB0byBlbmRfcGZuIGFuZAotICogcmV0dXJucyBpdHMgcmFuZ2UgaW4gZWlfc3RhcnRwZm4gYW5kIGVpX2VuZHBmbiBmb3IgdGhlIGU4MjAgZW50cnkuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKGNvbnN0IHN0cnVjdCBlODIwZW50cnkgKmVpLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAotCQkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kX3BmbiwKLQkJCQkJICB1bnNpZ25lZCBsb25nICplaV9zdGFydHBmbiwKLQkJCQkJICB1bnNpZ25lZCBsb25nICplaV9lbmRwZm4pCi17Ci0JKmVpX3N0YXJ0cGZuID0gcm91bmRfdXAoZWktPmFkZHIsIFBBR0VfU0laRSkgPj4gUEFHRV9TSElGVDsKLQkqZWlfZW5kcGZuID0gcm91bmRfZG93bihlaS0+YWRkciArIGVpLT5zaXplLCBQQUdFX1NJWkUpID4+IFBBR0VfU0hJRlQ7Ci0KLQkvKiBTa2lwIG1hcCBlbnRyaWVzIHNtYWxsZXIgdGhhbiBhIHBhZ2UgKi8KLQlpZiAoKmVpX3N0YXJ0cGZuID49ICplaV9lbmRwZm4pCi0JCXJldHVybiAwOwotCi0JLyogQ2hlY2sgaWYgbWF4X3Bmbl9tYXBwZWQgc2hvdWxkIGJlIHVwZGF0ZWQgKi8KLQlpZiAoZWktPnR5cGUgIT0gRTgyMF9SQU0gJiYgKmVpX2VuZHBmbiA+IG1heF9wZm5fbWFwcGVkKQotCQltYXhfcGZuX21hcHBlZCA9ICplaV9lbmRwZm47Ci0KLQkvKiBTa2lwIGlmIG1hcCBpcyBvdXRzaWRlIHRoZSBub2RlICovCi0JaWYgKGVpLT50eXBlICE9IEU4MjBfUkFNIHx8ICplaV9lbmRwZm4gPD0gc3RhcnRfcGZuIHx8Ci0JCQkJICAgICplaV9zdGFydHBmbiA+PSBlbmRfcGZuKQotCQlyZXR1cm4gMDsKLQotCS8qIENoZWNrIGZvciBvdmVybGFwcyAqLwotCWlmICgqZWlfc3RhcnRwZm4gPCBzdGFydF9wZm4pCi0JCSplaV9zdGFydHBmbiA9IHN0YXJ0X3BmbjsKLQlpZiAoKmVpX2VuZHBmbiA+IGVuZF9wZm4pCi0JCSplaV9lbmRwZm4gPSBlbmRfcGZuOwotCi0JLyogT2JleSBlbmRfdXNlcl9wZm4gdG8gc2F2ZSBvbiBtZW1tYXAgKi8KLQlpZiAoKmVpX3N0YXJ0cGZuID49IGVuZF91c2VyX3BmbikKLQkJcmV0dXJuIDA7Ci0JaWYgKCplaV9lbmRwZm4gPiBlbmRfdXNlcl9wZm4pCi0JCSplaV9lbmRwZm4gPSBlbmRfdXNlcl9wZm47Ci0KLQlyZXR1cm4gMTsKLX0KLQotLyogV2FsayB0aGUgZTgyMCBtYXAgYW5kIHJlZ2lzdGVyIGFjdGl2ZSByZWdpb25zIHdpdGhpbiBhIG5vZGUgKi8KLXZvaWQgX19pbml0Ci1lODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAotCQkJCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3BmbikKLXsKLQl1bnNpZ25lZCBsb25nIGVpX3N0YXJ0cGZuOwotCXVuc2lnbmVkIGxvbmcgZWlfZW5kcGZuOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspCi0JCWlmIChlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbigmZTgyMC5tYXBbaV0sCi0JCQkJCSAgICBzdGFydF9wZm4sIGVuZF9wZm4sCi0JCQkJCSAgICAmZWlfc3RhcnRwZm4sICZlaV9lbmRwZm4pKQotCQkJYWRkX2FjdGl2ZV9yYW5nZShuaWQsIGVpX3N0YXJ0cGZuLCBlaV9lbmRwZm4pOwotfQotCi0vKgotICogQWRkIGEgbWVtb3J5IHJlZ2lvbiB0byB0aGUga2VybmVsIGU4MjAgbWFwLgotICovCi12b2lkIF9faW5pdCBhZGRfbWVtb3J5X3JlZ2lvbih1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUsIGludCB0eXBlKQotewotCWludCB4ID0gZTgyMC5ucl9tYXA7Ci0KLQlpZiAoeCA9PSBFODIwTUFYKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiT29vcHMhIFRvbyBtYW55IGVudHJpZXMgaW4gdGhlIG1lbW9yeSBtYXAhXG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWU4MjAubWFwW3hdLmFkZHIgPSBzdGFydDsKLQllODIwLm1hcFt4XS5zaXplID0gc2l6ZTsKLQllODIwLm1hcFt4XS50eXBlID0gdHlwZTsKLQllODIwLm5yX21hcCsrOwotfQotCi0vKgotICogRmluZCB0aGUgaG9sZSBzaXplIChpbiBieXRlcykgaW4gdGhlIG1lbW9yeSByYW5nZS4KLSAqIEBzdGFydDogc3RhcnRpbmcgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IHJhbmdlIHRvIHNjYW4KLSAqIEBlbmQ6IGVuZGluZyBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcmFuZ2UgdG8gc2NhbgotICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBlODIwX2hvbGVfc2l6ZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKLXsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7Ci0JdW5zaWduZWQgbG9uZyBlbmRfcGZuID0gZW5kID4+IFBBR0VfU0hJRlQ7Ci0JdW5zaWduZWQgbG9uZyBlaV9zdGFydHBmbiwgZWlfZW5kcGZuLCByYW0gPSAwOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJaWYgKGU4MjBfZmluZF9hY3RpdmVfcmVnaW9uKCZlODIwLm1hcFtpXSwKLQkJCQkJICAgIHN0YXJ0X3BmbiwgZW5kX3BmbiwKLQkJCQkJICAgICZlaV9zdGFydHBmbiwgJmVpX2VuZHBmbikpCi0JCQlyYW0gKz0gZWlfZW5kcGZuIC0gZWlfc3RhcnRwZm47Ci0JfQotCXJldHVybiBlbmQgLSBzdGFydCAtIChyYW0gPDwgUEFHRV9TSElGVCk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCBlODIwX3ByaW50X21hcChjaGFyICp3aG8pCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZTgyMC5ucl9tYXA7IGkrKykgewotCQlwcmludGsoS0VSTl9JTkZPICIgJXM6ICUwMTZMeCAtICUwMTZMeCAiLCB3aG8sCi0JCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKSBlODIwLm1hcFtpXS5hZGRyLAotCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykKLQkJICAgICAgIChlODIwLm1hcFtpXS5hZGRyICsgZTgyMC5tYXBbaV0uc2l6ZSkpOwotCQlzd2l0Y2ggKGU4MjAubWFwW2ldLnR5cGUpIHsKLQkJY2FzZSBFODIwX1JBTToKLQkJCXByaW50ayhLRVJOX0NPTlQgIih1c2FibGUpXG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIEU4MjBfUkVTRVJWRUQ6Ci0JCQlwcmludGsoS0VSTl9DT05UICIocmVzZXJ2ZWQpXG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIEU4MjBfQUNQSToKLQkJCXByaW50ayhLRVJOX0NPTlQgIihBQ1BJIGRhdGEpXG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIEU4MjBfTlZTOgotCQkJcHJpbnRrKEtFUk5fQ09OVCAiKEFDUEkgTlZTKVxuIik7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXByaW50ayhLRVJOX0NPTlQgInR5cGUgJXVcbiIsIGU4MjAubWFwW2ldLnR5cGUpOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci19Ci0KLS8qCi0gKiBTYW5pdGl6ZSB0aGUgQklPUyBlODIwIG1hcC4KLSAqCi0gKiBTb21lIGU4MjAgcmVzcG9uc2VzIGluY2x1ZGUgb3ZlcmxhcHBpbmcgZW50cmllcy4gVGhlIGZvbGxvd2luZwotICogcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGU4MjAgbWFwIHdpdGggYSBuZXcgb25lLCByZW1vdmluZyBvdmVybGFwcy4KLSAqCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGNoYXIgKnBucl9tYXApCi17Ci0Jc3RydWN0IGNoYW5nZV9tZW1iZXIgewotCQlzdHJ1Y3QgZTgyMGVudHJ5ICpwYmlvczsgLyogcG9pbnRlciB0byBvcmlnaW5hbCBiaW9zIGVudHJ5ICovCi0JCXVuc2lnbmVkIGxvbmcgbG9uZyBhZGRyOyAvKiBhZGRyZXNzIGZvciB0aGlzIGNoYW5nZSBwb2ludCAqLwotCX07Ci0Jc3RhdGljIHN0cnVjdCBjaGFuZ2VfbWVtYmVyIGNoYW5nZV9wb2ludF9saXN0WzIqRTgyME1BWF0gX19pbml0ZGF0YTsKLQlzdGF0aWMgc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV9wb2ludFsyKkU4MjBNQVhdIF9faW5pdGRhdGE7Ci0Jc3RhdGljIHN0cnVjdCBlODIwZW50cnkgKm92ZXJsYXBfbGlzdFtFODIwTUFYXSBfX2luaXRkYXRhOwotCXN0YXRpYyBzdHJ1Y3QgZTgyMGVudHJ5IG5ld19iaW9zW0U4MjBNQVhdIF9faW5pdGRhdGE7Ci0Jc3RydWN0IGNoYW5nZV9tZW1iZXIgKmNoYW5nZV90bXA7Ci0JdW5zaWduZWQgbG9uZyBjdXJyZW50X3R5cGUsIGxhc3RfdHlwZTsKLQl1bnNpZ25lZCBsb25nIGxvbmcgbGFzdF9hZGRyOwotCWludCBjaGdpZHgsIHN0aWxsX2NoYW5naW5nOwotCWludCBvdmVybGFwX2VudHJpZXM7Ci0JaW50IG5ld19iaW9zX2VudHJ5OwotCWludCBvbGRfbnIsIG5ld19uciwgY2hnX25yOwotCWludCBpOwotCi0JLyoKLQkJVmlzdWFsbHkgd2UncmUgcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nCi0JCSgxLDIsMyw0ID0gbWVtb3J5IHR5cGVzKS4uLgotCi0JCVNhbXBsZSBtZW1vcnkgbWFwICh3L292ZXJsYXBzKToKLQkJICAgX19fXzIyX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fX180XwotCQkgICBfX19fMTExMV9fX19fX19fX19fX19fX18KLQkJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCi0JCSAgIDExMTExMTExX19fX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fXzMzX18KLQkJICAgX19fX19fX19fX180NF9fX19fX19fX19fCi0JCSAgIF9fX19fX19fX18zMzMzM19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fXzIyX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fX19fXzIyMjJfCi0JCSAgIF9fX19fX19fXzExMTExMTExMV9fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fX18xMV8KLQkJICAgX19fX19fX19fX19fX19fX180X19fX19fCi0KLQkJU2FuaXRpemVkIGVxdWl2YWxlbnQgKG5vIG92ZXJsYXApOgotCQkgICAxX19fX19fX19fX19fX19fX19fX19fX18KLQkJICAgXzQ0X19fX19fX19fX19fX19fX19fX19fCi0JCSAgIF9fXzFfX19fX19fX19fX19fX19fX19fXwotCQkgICBfX19fMjJfX19fX19fX19fX19fX19fX18KLQkJICAgX19fX19fMTFfX19fX19fX19fX19fX19fCi0JCSAgIF9fX19fX19fXzFfX19fX19fX19fX19fXwotCQkgICBfX19fX19fX19fM19fX19fX19fX19fX18KLQkJICAgX19fX19fX19fX180NF9fX19fX19fX19fCi0JCSAgIF9fX19fX19fX19fX18zM19fX19fX19fXwotCQkgICBfX19fX19fX19fX19fX18yX19fX19fX18KLQkJICAgX19fX19fX19fX19fX19fXzFfX19fX19fCi0JCSAgIF9fX19fX19fX19fX19fX19fNF9fX19fXwotCQkgICBfX19fX19fX19fX19fX19fX19fMl9fX18KLQkJICAgX19fX19fX19fX19fX19fX19fX18zM19fCi0JCSAgIF9fX19fX19fX19fX19fX19fX19fX180XwotCSovCi0KLQkvKiBpZiB0aGVyZSdzIG9ubHkgb25lIG1lbW9yeSByZWdpb24sIGRvbid0IGJvdGhlciAqLwotCWlmICgqcG5yX21hcCA8IDIpCi0JCXJldHVybiAtMTsKLQotCW9sZF9uciA9ICpwbnJfbWFwOwotCi0JLyogYmFpbCBvdXQgaWYgd2UgZmluZCBhbnkgdW5yZWFzb25hYmxlIGFkZHJlc3NlcyBpbiBiaW9zIG1hcCAqLwotCWZvciAoaSA9IDA7IGkgPCBvbGRfbnI7IGkrKykKLQkJaWYgKGJpb3NtYXBbaV0uYWRkciArIGJpb3NtYXBbaV0uc2l6ZSA8IGJpb3NtYXBbaV0uYWRkcikKLQkJCXJldHVybiAtMTsKLQotCS8qIGNyZWF0ZSBwb2ludGVycyBmb3IgaW5pdGlhbCBjaGFuZ2UtcG9pbnQgaW5mb3JtYXRpb24gKGZvciBzb3J0aW5nKSAqLwotCWZvciAoaSA9IDA7IGkgPCAyICogb2xkX25yOyBpKyspCi0JCWNoYW5nZV9wb2ludFtpXSA9ICZjaGFuZ2VfcG9pbnRfbGlzdFtpXTsKLQotCS8qIHJlY29yZCBhbGwga25vd24gY2hhbmdlLXBvaW50cyAoc3RhcnRpbmcgYW5kIGVuZGluZyBhZGRyZXNzZXMpLAotCSAgIG9taXR0aW5nIHRob3NlIHRoYXQgYXJlIGZvciBlbXB0eSBtZW1vcnkgcmVnaW9ucyAqLwotCWNoZ2lkeCA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IG9sZF9ucjsgaSsrKQl7Ci0JCWlmIChiaW9zbWFwW2ldLnNpemUgIT0gMCkgewotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHI7Ci0JCQljaGFuZ2VfcG9pbnRbY2hnaWR4KytdLT5wYmlvcyA9ICZiaW9zbWFwW2ldOwotCQkJY2hhbmdlX3BvaW50W2NoZ2lkeF0tPmFkZHIgPSBiaW9zbWFwW2ldLmFkZHIgKwotCQkJCWJpb3NtYXBbaV0uc2l6ZTsKLQkJCWNoYW5nZV9wb2ludFtjaGdpZHgrK10tPnBiaW9zID0gJmJpb3NtYXBbaV07Ci0JCX0KLQl9Ci0JY2hnX25yID0gY2hnaWR4OwotCi0JLyogc29ydCBjaGFuZ2UtcG9pbnQgbGlzdCBieSBtZW1vcnkgYWRkcmVzc2VzIChsb3cgLT4gaGlnaCkgKi8KLQlzdGlsbF9jaGFuZ2luZyA9IDE7Ci0Jd2hpbGUgKHN0aWxsX2NoYW5naW5nKQl7Ci0JCXN0aWxsX2NoYW5naW5nID0gMDsKLQkJZm9yIChpID0gMTsgaSA8IGNoZ19ucjsgaSsrKSAgewotCQkJdW5zaWduZWQgbG9uZyBsb25nIGN1cmFkZHIsIGxhc3RhZGRyOwotCQkJdW5zaWduZWQgbG9uZyBsb25nIGN1cnBiYWRkciwgbGFzdHBiYWRkcjsKLQotCQkJY3VyYWRkciA9IGNoYW5nZV9wb2ludFtpXS0+YWRkcjsKLQkJCWxhc3RhZGRyID0gY2hhbmdlX3BvaW50W2kgLSAxXS0+YWRkcjsKLQkJCWN1cnBiYWRkciA9IGNoYW5nZV9wb2ludFtpXS0+cGJpb3MtPmFkZHI7Ci0JCQlsYXN0cGJhZGRyID0gY2hhbmdlX3BvaW50W2kgLSAxXS0+cGJpb3MtPmFkZHI7Ci0KLQkJCS8qCi0JCQkgKiBzd2FwIGVudHJpZXMsIHdoZW46Ci0JCQkgKgotCQkJICogY3VyYWRkciA+IGxhc3RhZGRyIG9yCi0JCQkgKiBjdXJhZGRyID09IGxhc3RhZGRyIGFuZCBjdXJhZGRyID09IGN1cnBiYWRkciBhbmQKLQkJCSAqIGxhc3RhZGRyICE9IGxhc3RwYmFkZHIKLQkJCSAqLwotCQkJaWYgKGN1cmFkZHIgPCBsYXN0YWRkciB8fAotCQkJICAgIChjdXJhZGRyID09IGxhc3RhZGRyICYmIGN1cmFkZHIgPT0gY3VycGJhZGRyICYmCi0JCQkgICAgIGxhc3RhZGRyICE9IGxhc3RwYmFkZHIpKSB7Ci0JCQkJY2hhbmdlX3RtcCA9IGNoYW5nZV9wb2ludFtpXTsKLQkJCQljaGFuZ2VfcG9pbnRbaV0gPSBjaGFuZ2VfcG9pbnRbaS0xXTsKLQkJCQljaGFuZ2VfcG9pbnRbaS0xXSA9IGNoYW5nZV90bXA7Ci0JCQkJc3RpbGxfY2hhbmdpbmcgPSAxOwotCQkJfQotCQl9Ci0JfQotCi0JLyogY3JlYXRlIGEgbmV3IGJpb3MgbWVtb3J5IG1hcCwgcmVtb3Zpbmcgb3ZlcmxhcHMgKi8KLQlvdmVybGFwX2VudHJpZXMgPSAwOwkgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhlIG92ZXJsYXAgdGFibGUgKi8KLQluZXdfYmlvc19lbnRyeSA9IDA7CSAvKiBpbmRleCBmb3IgY3JlYXRpbmcgbmV3IGJpb3MgbWFwIGVudHJpZXMgKi8KLQlsYXN0X3R5cGUgPSAwOwkJIC8qIHN0YXJ0IHdpdGggdW5kZWZpbmVkIG1lbW9yeSB0eXBlICovCi0JbGFzdF9hZGRyID0gMDsJCSAvKiBzdGFydCB3aXRoIDAgYXMgbGFzdCBzdGFydGluZyBhZGRyZXNzICovCi0KLQkvKiBsb29wIHRocm91Z2ggY2hhbmdlLXBvaW50cywgZGV0ZXJtaW5pbmcgYWZmZWN0IG9uIHRoZSBuZXcgYmlvcyBtYXAgKi8KLQlmb3IgKGNoZ2lkeCA9IDA7IGNoZ2lkeCA8IGNoZ19ucjsgY2hnaWR4KyspIHsKLQkJLyoga2VlcCB0cmFjayBvZiBhbGwgb3ZlcmxhcHBpbmcgYmlvcyBlbnRyaWVzICovCi0JCWlmIChjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciA9PQotCQkgICAgY2hhbmdlX3BvaW50W2NoZ2lkeF0tPnBiaW9zLT5hZGRyKSB7Ci0JCQkvKgotCQkJICogYWRkIG1hcCBlbnRyeSB0byBvdmVybGFwIGxpc3QgKD4gMSBlbnRyeQotCQkJICogaW1wbGllcyBhbiBvdmVybGFwKQotCQkJICovCi0JCQlvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzKytdID0KLQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3M7Ci0JCX0gZWxzZSB7Ci0JCQkvKgotCQkJICogcmVtb3ZlIGVudHJ5IGZyb20gbGlzdCAob3JkZXIgaW5kZXBlbmRlbnQsCi0JCQkgKiBzbyBzd2FwIHdpdGggbGFzdCkKLQkJCSAqLwotCQkJZm9yIChpID0gMDsgaSA8IG92ZXJsYXBfZW50cmllczsgaSsrKSB7Ci0JCQkJaWYgKG92ZXJsYXBfbGlzdFtpXSA9PQotCQkJCSAgICBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+cGJpb3MpCi0JCQkJCW92ZXJsYXBfbGlzdFtpXSA9Ci0JCQkJCQlvdmVybGFwX2xpc3Rbb3ZlcmxhcF9lbnRyaWVzLTFdOwotCQkJfQotCQkJb3ZlcmxhcF9lbnRyaWVzLS07Ci0JCX0KLQkJLyoKLQkJICogaWYgdGhlcmUgYXJlIG92ZXJsYXBwaW5nIGVudHJpZXMsIGRlY2lkZSB3aGljaAotCQkgKiAidHlwZSIgdG8gdXNlIChsYXJnZXIgdmFsdWUgdGFrZXMgcHJlY2VkZW5jZSAtLQotCQkgKiAxPXVzYWJsZSwgMiwzLDQsNCs9dW51c2FibGUpCi0JCSAqLwotCQljdXJyZW50X3R5cGUgPSAwOwotCQlmb3IgKGkgPSAwOyBpIDwgb3ZlcmxhcF9lbnRyaWVzOyBpKyspCi0JCQlpZiAob3ZlcmxhcF9saXN0W2ldLT50eXBlID4gY3VycmVudF90eXBlKQotCQkJCWN1cnJlbnRfdHlwZSA9IG92ZXJsYXBfbGlzdFtpXS0+dHlwZTsKLQkJLyoKLQkJICogY29udGludWUgYnVpbGRpbmcgdXAgbmV3IGJpb3MgbWFwIGJhc2VkIG9uIHRoaXMKLQkJICogaW5mb3JtYXRpb24KLQkJICovCi0JCWlmIChjdXJyZW50X3R5cGUgIT0gbGFzdF90eXBlKQl7Ci0JCQlpZiAobGFzdF90eXBlICE9IDApCSB7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLnNpemUgPQotCQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkciAtIGxhc3RfYWRkcjsKLQkJCQkvKgotCQkJCSAqIG1vdmUgZm9yd2FyZCBvbmx5IGlmIHRoZSBuZXcgc2l6ZQotCQkJCSAqIHdhcyBub24temVybwotCQkJCSAqLwotCQkJCWlmIChuZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0uc2l6ZSAhPSAwKQotCQkJCQkvKgotCQkJCQkgKiBubyBtb3JlIHNwYWNlIGxlZnQgZm9yIG5ldwotCQkJCQkgKiBiaW9zIGVudHJpZXMgPwotCQkJCQkgKi8KLQkJCQkJaWYgKCsrbmV3X2Jpb3NfZW50cnkgPj0gRTgyME1BWCkKLQkJCQkJCWJyZWFrOwotCQkJfQotCQkJaWYgKGN1cnJlbnRfdHlwZSAhPSAwKQl7Ci0JCQkJbmV3X2Jpb3NbbmV3X2Jpb3NfZW50cnldLmFkZHIgPQotCQkJCQljaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKLQkJCQluZXdfYmlvc1tuZXdfYmlvc19lbnRyeV0udHlwZSA9IGN1cnJlbnRfdHlwZTsKLQkJCQlsYXN0X2FkZHIgPSBjaGFuZ2VfcG9pbnRbY2hnaWR4XS0+YWRkcjsKLQkJCX0KLQkJCWxhc3RfdHlwZSA9IGN1cnJlbnRfdHlwZTsKLQkJfQotCX0KLQkvKiByZXRhaW4gY291bnQgZm9yIG5ldyBiaW9zIGVudHJpZXMgKi8KLQluZXdfbnIgPSBuZXdfYmlvc19lbnRyeTsKLQotCS8qIGNvcHkgbmV3IGJpb3MgbWFwcGluZyBpbnRvIG9yaWdpbmFsIGxvY2F0aW9uICovCi0JbWVtY3B5KGJpb3NtYXAsIG5ld19iaW9zLCBuZXdfbnIgKiBzaXplb2Yoc3RydWN0IGU4MjBlbnRyeSkpOwotCSpwbnJfbWFwID0gbmV3X25yOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qCi0gKiBDb3B5IHRoZSBCSU9TIGU4MjAgbWFwIGludG8gYSBzYWZlIHBsYWNlLgotICoKLSAqIFNhbml0eS1jaGVjayBpdCB3aGlsZSB3ZSdyZSBhdCBpdC4uCi0gKgotICogSWYgd2UncmUgbHVja3kgYW5kIGxpdmUgb24gYSBtb2Rlcm4gc3lzdGVtLCB0aGUgc2V0dXAgY29kZQotICogd2lsbCBoYXZlIGdpdmVuIHVzIGEgbWVtb3J5IG1hcCB0aGF0IHdlIGNhbiB1c2UgdG8gcHJvcGVybHkKLSAqIHNldCB1cCBtZW1vcnkuICBJZiB3ZSBhcmVuJ3QsIHdlJ2xsIGZha2UgYSBtZW1vcnkgbWFwLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBjb3B5X2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGludCBucl9tYXApCi17Ci0JLyogT25seSBvbmUgbWVtb3J5IHJlZ2lvbiAob3IgbmVnYXRpdmUpPyBJZ25vcmUgaXQgKi8KLQlpZiAobnJfbWFwIDwgMikKLQkJcmV0dXJuIC0xOwotCi0JZG8gewotCQl1NjQgc3RhcnQgPSBiaW9zbWFwLT5hZGRyOwotCQl1NjQgc2l6ZSA9IGJpb3NtYXAtPnNpemU7Ci0JCXU2NCBlbmQgPSBzdGFydCArIHNpemU7Ci0JCXUzMiB0eXBlID0gYmlvc21hcC0+dHlwZTsKLQotCQkvKiBPdmVyZmxvdyBpbiA2NCBiaXRzPyBJZ25vcmUgdGhlIG1lbW9yeSBtYXAuICovCi0JCWlmIChzdGFydCA+IGVuZCkKLQkJCXJldHVybiAtMTsKLQotCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydCwgc2l6ZSwgdHlwZSk7Ci0JfSB3aGlsZSAoYmlvc21hcCsrLCAtLW5yX21hcCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGVhcmx5X3BhbmljKGNoYXIgKm1zZykKLXsKLQllYXJseV9wcmludGsobXNnKTsKLQlwYW5pYyhtc2cpOwotfQotCi0vKiBXZSdyZSBub3Qgdm9pZCBvbmx5IGZvciB4ODYgMzItYml0IGNvbXBhdCAqLwotY2hhciAqIF9faW5pdCBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCh2b2lkKQotewotCWNoYXIgKndobyA9ICJCSU9TLWU4MjAiOwotCS8qCi0JICogVHJ5IHRvIGNvcHkgdGhlIEJJT1Mtc3VwcGxpZWQgRTgyMC1tYXAuCi0JICoKLQkgKiBPdGhlcndpc2UgZmFrZSBhIG1lbW9yeSBtYXA7IG9uZSBzZWN0aW9uIGZyb20gMGstPjY0MGssCi0JICogdGhlIG5leHQgc2VjdGlvbiBmcm9tIDFtYi0+YXBwcm9wcmlhdGVfbWVtX2sKLQkgKi8KLQlzYW5pdGl6ZV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgJmJvb3RfcGFyYW1zLmU4MjBfZW50cmllcyk7Ci0JaWYgKGNvcHlfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsIGJvb3RfcGFyYW1zLmU4MjBfZW50cmllcykgPCAwKQotCQllYXJseV9wYW5pYygiQ2Fubm90IGZpbmQgYSB2YWxpZCBtZW1vcnkgbWFwIik7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQklPUy1wcm92aWRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JZTgyMF9wcmludF9tYXAod2hvKTsKLQotCS8qIEluIGNhc2Ugc29tZW9uZSBjYXJlcy4uLiAqLwotCXJldHVybiB3aG87Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbW9wdChjaGFyICpwKQotewotCWlmICghcCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JZW5kX3VzZXJfcGZuID0gbWVtcGFyc2UocCwgJnApOwotCWVuZF91c2VyX3BmbiA+Pj0gUEFHRV9TSElGVDsKLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJtZW0iLCBwYXJzZV9tZW1vcHQpOwotCi1zdGF0aWMgaW50IHVzZXJkZWYgX19pbml0ZGF0YTsKLQotc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtbWFwX29wdChjaGFyICpwKQotewotCWNoYXIgKm9sZHA7Ci0JdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0X2F0LCBtZW1fc2l6ZTsKLQotCWlmICghc3RyY21wKHAsICJleGFjdG1hcCIpKSB7Ci0jaWZkZWYgQ09ORklHX0NSQVNIX0RVTVAKLQkJLyoKLQkJICogSWYgd2UgYXJlIGRvaW5nIGEgY3Jhc2ggZHVtcCwgd2Ugc3RpbGwgbmVlZCB0byBrbm93Ci0JCSAqIHRoZSByZWFsIG1lbSBzaXplIGJlZm9yZSBvcmlnaW5hbCBtZW1vcnkgbWFwIGlzCi0JCSAqIHJlc2V0LgotCQkgKi8KLQkJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCAtMVVMKTsKLQkJc2F2ZWRfbWF4X3BmbiA9IGU4MjBfZW5kX29mX3JhbSgpOwotCQlyZW1vdmVfYWxsX2FjdGl2ZV9yYW5nZXMoKTsKLSNlbmRpZgotCQltYXhfcGZuX21hcHBlZCA9IDA7Ci0JCWU4MjAubnJfbWFwID0gMDsKLQkJdXNlcmRlZiA9IDE7Ci0JCXJldHVybiAwOwotCX0KLQotCW9sZHAgPSBwOwotCW1lbV9zaXplID0gbWVtcGFyc2UocCwgJnApOwotCWlmIChwID09IG9sZHApCi0JCXJldHVybiAtRUlOVkFMOwotCi0JdXNlcmRlZiA9IDE7Ci0JaWYgKCpwID09ICdAJykgewotCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfUkFNKTsKLQl9IGVsc2UgaWYgKCpwID09ICcjJykgewotCQlzdGFydF9hdCA9IG1lbXBhcnNlKHArMSwgJnApOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihzdGFydF9hdCwgbWVtX3NpemUsIEU4MjBfQUNQSSk7Ci0JfSBlbHNlIGlmICgqcCA9PSAnJCcpIHsKLQkJc3RhcnRfYXQgPSBtZW1wYXJzZShwKzEsICZwKTsKLQkJYWRkX21lbW9yeV9yZWdpb24oc3RhcnRfYXQsIG1lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKLQl9IGVsc2UgewotCQllbmRfdXNlcl9wZm4gPSAobWVtX3NpemUgPj4gUEFHRV9TSElGVCk7Ci0JfQotCXJldHVybiAqcCA9PSAnXDAnID8gMCA6IC1FSU5WQUw7Ci19Ci1lYXJseV9wYXJhbSgibWVtbWFwIiwgcGFyc2VfbWVtbWFwX29wdCk7Ci0KLXZvaWQgX19pbml0IGZpbmlzaF9lODIwX3BhcnNpbmcodm9pZCkKLXsKLQlpZiAodXNlcmRlZikgewotCQljaGFyIG5yID0gZTgyMC5ucl9tYXA7Ci0KLQkJaWYgKHNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCAmbnIpIDwgMCkKLQkJCWVhcmx5X3BhbmljKCJJbnZhbGlkIHVzZXIgc3VwcGxpZWQgbWVtb3J5IG1hcCIpOwotCQllODIwLm5yX21hcCA9IG5yOwotCi0JCXByaW50ayhLRVJOX0lORk8gInVzZXItZGVmaW5lZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JCWU4MjBfcHJpbnRfbWFwKCJ1c2VyIik7Ci0JfQotfQotCi12b2lkIF9faW5pdCB1cGRhdGVfbWVtb3J5X3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAotCQkJCXVuc2lnbmVkIG5ld190eXBlKQotewotCWludCBpOwotCi0JQlVHX09OKG9sZF90eXBlID09IG5ld190eXBlKTsKLQotCWZvciAoaSA9IDA7IGkgPCBlODIwLm5yX21hcDsgaSsrKSB7Ci0JCXN0cnVjdCBlODIwZW50cnkgKmVpID0gJmU4MjAubWFwW2ldOwotCQl1NjQgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKLQkJaWYgKGVpLT50eXBlICE9IG9sZF90eXBlKQotCQkJY29udGludWU7Ci0JCS8qIHRvdGFsbHkgY292ZXJlZD8gKi8KLQkJaWYgKGVpLT5hZGRyID49IHN0YXJ0ICYmIGVpLT5zaXplIDw9IHNpemUpIHsKLQkJCWVpLT50eXBlID0gbmV3X3R5cGU7Ci0JCQljb250aW51ZTsKLQkJfQotCQkvKiBwYXJ0aWFsbHkgY292ZXJlZCAqLwotCQlmaW5hbF9zdGFydCA9IG1heChzdGFydCwgZWktPmFkZHIpOwotCQlmaW5hbF9lbmQgPSBtaW4oc3RhcnQgKyBzaXplLCBlaS0+YWRkciArIGVpLT5zaXplKTsKLQkJaWYgKGZpbmFsX3N0YXJ0ID49IGZpbmFsX2VuZCkKLQkJCWNvbnRpbnVlOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihmaW5hbF9zdGFydCwgZmluYWxfZW5kIC0gZmluYWxfc3RhcnQsCi0JCQkJCSBuZXdfdHlwZSk7Ci0JfQotfQotCi12b2lkIF9faW5pdCB1cGRhdGVfZTgyMCh2b2lkKQotewotCXU4IG5yX21hcDsKLQotCW5yX21hcCA9IGU4MjAubnJfbWFwOwotCWlmIChzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgJm5yX21hcCkpCi0JCXJldHVybjsKLQllODIwLm5yX21hcCA9IG5yX21hcDsKLQlwcmludGsoS0VSTl9JTkZPICJtb2RpZmllZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7Ci0JZTgyMF9wcmludF9tYXAoIm1vZGlmaWVkIik7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgcGNpX21lbV9zdGFydCA9IDB4YWVlZGJhYmU7Ci1FWFBPUlRfU1lNQk9MKHBjaV9tZW1fc3RhcnQpOwotCi0vKgotICogU2VhcmNoIGZvciB0aGUgYmlnZ2VzdCBnYXAgaW4gdGhlIGxvdyAzMiBiaXRzIG9mIHRoZSBlODIwCi0gKiBtZW1vcnkgc3BhY2UuICBXZSBwYXNzIHRoaXMgc3BhY2UgdG8gUENJIHRvIGFzc2lnbiBNTUlPIHJlc291cmNlcwotICogZm9yIGhvdHBsdWcgb3IgdW5jb25maWd1cmVkIGRldmljZXMgaW4uCi0gKiBIb3BlZnVsbHkgdGhlIEJJT1MgbGV0IGVub3VnaCBzcGFjZSBsZWZ0LgotICovCi1fX2luaXQgdm9pZCBlODIwX3NldHVwX2dhcCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZ2Fwc3RhcnQsIGdhcHNpemUsIHJvdW5kOwotCXVuc2lnbmVkIGxvbmcgbGFzdDsKLQlpbnQgaTsKLQlpbnQgZm91bmQgPSAwOwotCi0JbGFzdCA9IDB4MTAwMDAwMDAwdWxsOwotCWdhcHN0YXJ0ID0gMHgxMDAwMDAwMDsKLQlnYXBzaXplID0gMHg0MDAwMDA7Ci0JaSA9IGU4MjAubnJfbWFwOwotCXdoaWxlICgtLWkgPj0gMCkgewotCQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQgPSBlODIwLm1hcFtpXS5hZGRyOwotCQl1bnNpZ25lZCBsb25nIGxvbmcgZW5kID0gc3RhcnQgKyBlODIwLm1hcFtpXS5zaXplOwotCi0JCS8qCi0JCSAqIFNpbmNlICJsYXN0IiBpcyBhdCBtb3N0IDRHQiwgd2Uga25vdyB3ZSdsbAotCQkgKiBmaXQgaW4gMzIgYml0cyBpZiB0aGlzIGNvbmRpdGlvbiBpcyB0cnVlCi0JCSAqLwotCQlpZiAobGFzdCA+IGVuZCkgewotCQkJdW5zaWduZWQgbG9uZyBnYXAgPSBsYXN0IC0gZW5kOwotCi0JCQlpZiAoZ2FwID4gZ2Fwc2l6ZSkgewotCQkJCWdhcHNpemUgPSBnYXA7Ci0JCQkJZ2Fwc3RhcnQgPSBlbmQ7Ci0JCQkJZm91bmQgPSAxOwotCQkJfQotCQl9Ci0JCWlmIChzdGFydCA8IGxhc3QpCi0JCQlsYXN0ID0gc3RhcnQ7Ci0JfQotCi0JaWYgKCFmb3VuZCkgewotCQlnYXBzdGFydCA9IChlbmRfcGZuIDw8IFBBR0VfU0hJRlQpICsgMTAyNCoxMDI0OwotCQlwcmludGsoS0VSTl9FUlIgIlBDSTogV2FybmluZzogQ2Fubm90IGZpbmQgYSBnYXAgaW4gdGhlIDMyYml0ICIKLQkJICAgICAgICJhZGRyZXNzIHJhbmdlXG4iCi0JCSAgICAgICBLRVJOX0VSUiAiUENJOiBVbmFzc2lnbmVkIGRldmljZXMgd2l0aCAzMmJpdCByZXNvdXJjZSAiCi0JCSAgICAgICAicmVnaXN0ZXJzIG1heSBicmVhayFcbiIpOwotCX0KLQotCS8qCi0JICogU2VlIGhvdyBtdWNoIHdlIHdhbnQgdG8gcm91bmQgdXA6IHN0YXJ0IG9mZiB3aXRoCi0JICogcm91bmRpbmcgdG8gdGhlIG5leHQgMU1CIGFyZWEuCi0JICovCi0Jcm91bmQgPSAweDEwMDAwMDsKLQl3aGlsZSAoKGdhcHNpemUgPj4gNCkgPiByb3VuZCkKLQkJcm91bmQgKz0gcm91bmQ7Ci0JLyogRnVuIHdpdGggdHdvJ3MgY29tcGxlbWVudCAqLwotCXBjaV9tZW1fc3RhcnQgPSAoZ2Fwc3RhcnQgKyByb3VuZCkgJiAtcm91bmQ7Ci0KLQlwcmludGsoS0VSTl9JTkZPCi0JICAgICAgICJBbGxvY2F0aW5nIFBDSSByZXNvdXJjZXMgc3RhcnRpbmcgYXQgJWx4IChnYXA6ICVseDolbHgpXG4iLAotCSAgICAgICBwY2lfbWVtX3N0YXJ0LCBnYXBzdGFydCwgZ2Fwc2l6ZSk7Ci19Ci0KLWludCBfX2luaXQgYXJjaF9nZXRfcmFtX3JhbmdlKGludCBzbG90LCB1NjQgKmFkZHIsIHU2NCAqc2l6ZSkKLXsKLQlpbnQgaTsKLQotCWlmIChzbG90IDwgMCB8fCBzbG90ID49IGU4MjAubnJfbWFwKQotCQlyZXR1cm4gLTE7Ci0JZm9yIChpID0gc2xvdDsgaSA8IGU4MjAubnJfbWFwOyBpKyspIHsKLQkJaWYgKGU4MjAubWFwW2ldLnR5cGUgIT0gRTgyMF9SQU0pCi0JCQljb250aW51ZTsKLQkJYnJlYWs7Ci0JfQotCWlmIChpID09IGU4MjAubnJfbWFwIHx8IGU4MjAubWFwW2ldLmFkZHIgPiAobWF4X3BmbiA8PCBQQUdFX1NISUZUKSkKLQkJcmV0dXJuIC0xOwotCSphZGRyID0gZTgyMC5tYXBbaV0uYWRkcjsKLQkqc2l6ZSA9IG1pbl90KHU2NCwgZTgyMC5tYXBbaV0uc2l6ZSArIGU4MjAubWFwW2ldLmFkZHIsCi0JCW1heF9wZm4gPDwgUEFHRV9TSElGVCkgLSAqYWRkcjsKLQlyZXR1cm4gaSArIDE7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWFybHktcXVpcmtzLmMKaW5kZXggOWY1MWUxZS4uYTQ2NjVmMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2Vhcmx5LXF1aXJrcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lYXJseS1xdWlya3MuYwpAQCAtNTAsNyArNTAsNyBAQAogc3RhdGljIHZvaWQgX19pbml0IHZpYV9idWdzKGludCAgbnVtLCBpbnQgc2xvdCwgaW50IGZ1bmMpCiB7CiAjaWZkZWYgQ09ORklHX0dBUlRfSU9NTVUKLQlpZiAoKGVuZF9wZm4gPiBNQVhfRE1BMzJfUEZOIHx8ICBmb3JjZV9pb21tdSkgJiYKKwlpZiAoKG1heF9wZm4gPiBNQVhfRE1BMzJfUEZOIHx8ICBmb3JjZV9pb21tdSkgJiYKIAkgICAgIWdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCkgewogCQlwcmludGsoS0VSTl9JTkZPCiAJCSAgICAgICAiTG9va3MgbGlrZSBhIFZJQSBjaGlwc2V0LiBEaXNhYmxpbmcgSU9NTVUuIgpAQCAtOTgsMTcgKzk4LDYgQEAKIAogfQogCi1zdGF0aWMgdm9pZCBfX2luaXQgYXRpX2J1Z3MoaW50IG51bSwgaW50IHNsb3QsIGludCBmdW5jKQotewotI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwotCWlmICh0aW1lcl9vdmVyXzgyNTQgPT0gMSkgewotCQl0aW1lcl9vdmVyXzgyNTQgPSAwOwotCQlwcmludGsoS0VSTl9JTkZPCi0JCSJBVEkgYm9hcmQgZGV0ZWN0ZWQuIERpc2FibGluZyB0aW1lciByb3V0aW5nIG92ZXIgODI1NC5cbiIpOwotCX0KLSNlbmRpZgotfQotCiAjZGVmaW5lIFFGTEFHX0FQUExZX09OQ0UgCTB4MQogI2RlZmluZSBRRkxBR19BUFBMSUVECQkweDIKICNkZWZpbmUgUUZMQUdfRE9ORQkJKFFGTEFHX0FQUExZX09OQ0V8UUZMQUdfQVBQTElFRCkKQEAgLTEyNiw4ICsxMTUsNiBAQAogCSAgUENJX0NMQVNTX0JSSURHRV9QQ0ksIFBDSV9BTllfSUQsIFFGTEFHX0FQUExZX09OQ0UsIG52aWRpYV9idWdzIH0sCiAJeyBQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0FOWV9JRCwKIAkgIFBDSV9DTEFTU19CUklER0VfUENJLCBQQ0lfQU5ZX0lELCBRRkxBR19BUFBMWV9PTkNFLCB2aWFfYnVncyB9LAotCXsgUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9BTllfSUQsCi0JICBQQ0lfQ0xBU1NfQlJJREdFX1BDSSwgUENJX0FOWV9JRCwgUUZMQUdfQVBQTFlfT05DRSwgYXRpX2J1Z3MgfSwKIAl7IFBDSV9WRU5ET1JfSURfQU1ELCBQQ0lfREVWSUNFX0lEX0FNRF9LOF9OQiwKIAkgIFBDSV9DTEFTU19CUklER0VfSE9TVCwgUENJX0FOWV9JRCwgMCwgZml4X2h5cGVydHJhbnNwb3J0X2NvbmZpZyB9LAogCXt9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWFybHlfcHJpbnRrLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWFybHlfcHJpbnRrLmMKaW5kZXggNjQzZmQ4Ni4uZmY5ZTczNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2Vhcmx5X3ByaW50ay5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lYXJseV9wcmludGsuYwpAQCAtMTk2LDcgKzE5Niw3IEBACiBzdGF0aWMgc3RydWN0IGNvbnNvbGUgKmVhcmx5X2NvbnNvbGUgPSAmZWFybHlfdmdhX2NvbnNvbGU7CiBzdGF0aWMgaW50IGVhcmx5X2NvbnNvbGVfaW5pdGlhbGl6ZWQ7CiAKLXZvaWQgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQorYXNtbGlua2FnZSB2b2lkIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKIAljaGFyIGJ1Zls1MTJdOwogCWludCBuOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VmaS5jIGIvYXJjaC94ODYva2VybmVsL2VmaS5jCmluZGV4IDc3ZDQyNGMuLjA2Y2M4ZDQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9lZmkuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpLmMKQEAgLTY0LDYgKzY0LDE3IEBACiB9CiBlYXJseV9wYXJhbSgibm9lZmkiLCBzZXR1cF9ub2VmaSk7CiAKK2ludCBhZGRfZWZpX21lbW1hcDsKK0VYUE9SVF9TWU1CT0woYWRkX2VmaV9tZW1tYXApOworCitzdGF0aWMgaW50IF9faW5pdCBzZXR1cF9hZGRfZWZpX21lbW1hcChjaGFyICphcmcpCit7CisJYWRkX2VmaV9tZW1tYXAgPSAxOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oImFkZF9lZmlfbWVtbWFwIiwgc2V0dXBfYWRkX2VmaV9tZW1tYXApOworCisKIHN0YXRpYyBlZmlfc3RhdHVzX3QgdmlydF9lZmlfZ2V0X3RpbWUoZWZpX3RpbWVfdCAqdG0sIGVmaV90aW1lX2NhcF90ICp0YykKIHsKIAlyZXR1cm4gZWZpX2NhbGxfdmlydDIoZ2V0X3RpbWUsIHRtLCB0Yyk7CkBAIC0yMTMsNiArMjI0LDUwIEBACiAJCSAgICAgIGVmdC5taW51dGUsIGVmdC5zZWNvbmQpOwogfQogCisvKgorICogVGVsbCB0aGUga2VybmVsIGFib3V0IHRoZSBFRkkgbWVtb3J5IG1hcC4gIFRoaXMgbWlnaHQgaW5jbHVkZQorICogbW9yZSB0aGFuIHRoZSBtYXggMTI4IGVudHJpZXMgdGhhdCBjYW4gZml0IGluIHRoZSBlODIwIGxlZ2FjeQorICogKHplcm9wYWdlKSBtZW1vcnkgbWFwLgorICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCBkb19hZGRfZWZpX21lbW1hcCh2b2lkKQoreworCXZvaWQgKnA7CisKKwlmb3IgKHAgPSBtZW1tYXAubWFwOyBwIDwgbWVtbWFwLm1hcF9lbmQ7IHAgKz0gbWVtbWFwLmRlc2Nfc2l6ZSkgeworCQllZmlfbWVtb3J5X2Rlc2NfdCAqbWQgPSBwOworCQl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQgPSBtZC0+cGh5c19hZGRyOworCQl1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSA9IG1kLT5udW1fcGFnZXMgPDwgRUZJX1BBR0VfU0hJRlQ7CisJCWludCBlODIwX3R5cGU7CisKKwkJaWYgKG1kLT5hdHRyaWJ1dGUgJiBFRklfTUVNT1JZX1dCKQorCQkJZTgyMF90eXBlID0gRTgyMF9SQU07CisJCWVsc2UKKwkJCWU4MjBfdHlwZSA9IEU4MjBfUkVTRVJWRUQ7CisJCWU4MjBfYWRkX3JlZ2lvbihzdGFydCwgc2l6ZSwgZTgyMF90eXBlKTsKKwl9CisJc2FuaXRpemVfZTgyMF9tYXAoZTgyMC5tYXAsIEFSUkFZX1NJWkUoZTgyMC5tYXApLCAmZTgyMC5ucl9tYXApOworfQorCit2b2lkIF9faW5pdCBlZmlfcmVzZXJ2ZV9lYXJseSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgcG1hcDsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwlwbWFwID0gYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcDsKKyNlbHNlCisJcG1hcCA9IChib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwIHwKKwkJKChfX3U2NClib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwX2hpPDwzMikpOworI2VuZGlmCisJbWVtbWFwLnBoeXNfbWFwID0gKHZvaWQgKilwbWFwOworCW1lbW1hcC5ucl9tYXAgPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwX3NpemUgLworCQlib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY19zaXplOworCW1lbW1hcC5kZXNjX3ZlcnNpb24gPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY192ZXJzaW9uOworCW1lbW1hcC5kZXNjX3NpemUgPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY19zaXplOworCXJlc2VydmVfZWFybHkocG1hcCwgcG1hcCArIG1lbW1hcC5ucl9tYXAgKiBtZW1tYXAuZGVzY19zaXplLAorCQkgICAgICAiRUZJIG1lbW1hcCIpOworfQorCiAjaWYgRUZJX0RFQlVHCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRfZWZpX21lbW1hcCh2b2lkKQogewpAQCAtMjQ0LDE5ICsyOTksMTEgQEAKIAogI2lmZGVmIENPTkZJR19YODZfMzIKIAllZmlfcGh5cy5zeXN0YWIgPSAoZWZpX3N5c3RlbV90YWJsZV90ICopYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX3N5c3RhYjsKLQltZW1tYXAucGh5c19tYXAgPSAodm9pZCAqKWJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9tZW1tYXA7CiAjZWxzZQogCWVmaV9waHlzLnN5c3RhYiA9IChlZmlfc3lzdGVtX3RhYmxlX3QgKikKIAkJKGJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9zeXN0YWIgfAogCQkgKChfX3U2NClib290X3BhcmFtcy5lZmlfaW5mby5lZmlfc3lzdGFiX2hpPDwzMikpOwotCW1lbW1hcC5waHlzX21hcCA9ICh2b2lkICopCi0JCShib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwIHwKLQkJICgoX191NjQpYm9vdF9wYXJhbXMuZWZpX2luZm8uZWZpX21lbW1hcF9oaTw8MzIpKTsKICNlbmRpZgotCW1lbW1hcC5ucl9tYXAgPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtbWFwX3NpemUgLwotCQlib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY19zaXplOwotCW1lbW1hcC5kZXNjX3ZlcnNpb24gPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY192ZXJzaW9uOwotCW1lbW1hcC5kZXNjX3NpemUgPSBib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbWVtZGVzY19zaXplOwogCiAJZWZpLnN5c3RhYiA9IGVhcmx5X2lvcmVtYXAoKHVuc2lnbmVkIGxvbmcpZWZpX3BoeXMuc3lzdGFiLAogCQkJCSAgIHNpemVvZihlZmlfc3lzdGVtX3RhYmxlX3QpKTsKQEAgLTM3MCw2ICs0MTcsOCBAQAogCWlmIChtZW1tYXAuZGVzY19zaXplICE9IHNpemVvZihlZmlfbWVtb3J5X2Rlc2NfdCkpCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIktlcm5lbC1kZWZpbmVkIG1lbWRlc2MiCiAJCSAgICAgICAiZG9lc24ndCBtYXRjaCB0aGUgb25lIGZyb20gRUZJIVxuIik7CisJaWYgKGFkZF9lZmlfbWVtbWFwKQorCQlkb19hZGRfZWZpX21lbW1hcCgpOwogCiAJLyogU2V0dXAgZm9yIEVGSSBydW50aW1lIHNlcnZpY2UgKi8KIAlyZWJvb3RfdHlwZSA9IEJPT1RfRUZJOwpAQCAtNDI0LDcgKzQ3Myw3IEBACiAJCXNpemUgPSBtZC0+bnVtX3BhZ2VzIDw8IEVGSV9QQUdFX1NISUZUOwogCQllbmQgPSBtZC0+cGh5c19hZGRyICsgc2l6ZTsKIAotCQlpZiAoUEZOX1VQKGVuZCkgPD0gbWF4X3Bmbl9tYXBwZWQpCisJCWlmIChQRk5fVVAoZW5kKSA8PSBtYXhfbG93X3Bmbl9tYXBwZWQpCiAJCQl2YSA9IF9fdmEobWQtPnBoeXNfYWRkcik7CiAJCWVsc2UKIAkJCXZhID0gZWZpX2lvcmVtYXAobWQtPnBoeXNfYWRkciwgc2l6ZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZWZpXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvZWZpXzMyLmMKaW5kZXggNWQyM2Q4NS4uNGI2M2M4ZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2VmaV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lZmlfMzIuYwpAQCAtNDksMTMgKzQ5LDEzIEBACiAJbG9jYWxfaXJxX3NhdmUoZWZpX3J0X2VmbGFncyk7CiAKIAkvKgotCSAqIElmIEkgZG9uJ3QgaGF2ZSBQU0UsIEkgc2hvdWxkIGp1c3QgZHVwbGljYXRlIHR3byBlbnRyaWVzIGluIHBhZ2UKLQkgKiBkaXJlY3RvcnkuIElmIEkgaGF2ZSBQU0UsIEkganVzdCBuZWVkIHRvIGR1cGxpY2F0ZSBvbmUgZW50cnkgaW4KKwkgKiBJZiBJIGRvbid0IGhhdmUgUEFFLCBJIHNob3VsZCBqdXN0IGR1cGxpY2F0ZSB0d28gZW50cmllcyBpbiBwYWdlCisJICogZGlyZWN0b3J5LiBJZiBJIGhhdmUgUEFFLCBJIGp1c3QgbmVlZCB0byBkdXBsaWNhdGUgb25lIGVudHJ5IGluCiAJICogcGFnZSBkaXJlY3RvcnkuCiAJICovCiAJY3I0ID0gcmVhZF9jcjQoKTsKIAotCWlmIChjcjQgJiBYODZfQ1I0X1BTRSkgeworCWlmIChjcjQgJiBYODZfQ1I0X1BBRSkgewogCQllZmlfYmFrX3BnX2Rpcl9wb2ludGVyWzBdLnBnZCA9CiAJCSAgICBzd2FwcGVyX3BnX2RpcltwZ2RfaW5kZXgoMCldLnBnZDsKIAkJc3dhcHBlcl9wZ19kaXJbMF0ucGdkID0KQEAgLTkzLDcgKzkzLDcgQEAKIAogCWNyNCA9IHJlYWRfY3I0KCk7CiAKLQlpZiAoY3I0ICYgWDg2X0NSNF9QU0UpIHsKKwlpZiAoY3I0ICYgWDg2X0NSNF9QQUUpIHsKIAkJc3dhcHBlcl9wZ19kaXJbcGdkX2luZGV4KDApXS5wZ2QgPQogCQkgICAgZWZpX2Jha19wZ19kaXJfcG9pbnRlclswXS5wZ2Q7CiAJfSBlbHNlIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lZmlfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9lZmlfNjQuYwppbmRleCBkMDA2MGZkLi42NTJjNTI4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZWZpXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2VmaV82NC5jCkBAIC05NywxMyArOTcsNyBAQAogCWVhcmx5X3J1bnRpbWVfY29kZV9tYXBwaW5nX3NldF9leGVjKDApOwogfQogCi12b2lkIF9faW5pdCBlZmlfcmVzZXJ2ZV9ib290bWVtKHZvaWQpCi17Ci0JcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMoKHVuc2lnbmVkIGxvbmcpbWVtbWFwLnBoeXNfbWFwLAotCQkJCW1lbW1hcC5ucl9tYXAgKiBtZW1tYXAuZGVzY19zaXplKTsKLX0KLQotdm9pZCBfX2lvbWVtICogX19pbml0IGVmaV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCit2b2lkIF9faW9tZW0gKl9faW5pdCBlZmlfaW9yZW1hcCh1bnNpZ25lZCBsb25nIHBoeXNfYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKQogewogCXN0YXRpYyB1bnNpZ25lZCBwYWdlc19tYXBwZWQgX19pbml0ZGF0YTsKIAl1bnNpZ25lZCBpLCBwYWdlczsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9lbnRyeV8zMi5TIGIvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMKaW5kZXggMmE2MDlkYy4uNmJjMDdmMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMKKysrIGIvYXJjaC94ODYva2VybmVsL2VudHJ5XzMyLlMKQEAgLTUxLDE0ICs1MSwxNSBAQAogI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KICNpbmNsdWRlIDxhc20vZHdhcmYyLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgotI2luY2x1ZGUgImlycV92ZWN0b3JzLmgiCisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgogCiAvKgogICogV2UgdXNlIG1hY3JvcyBmb3IgbG93LWxldmVsIG9wZXJhdGlvbnMgd2hpY2ggbmVlZCB0byBiZSBvdmVycmlkZGVuCiAgKiBmb3IgcGFyYXZpcnR1YWxpemF0aW9uLiAgVGhlIGZvbGxvd2luZyB3aWxsIG5ldmVyIGNsb2JiZXIgYW55IHJlZ2lzdGVyczoKICAqICAgSU5URVJSVVBUX1JFVFVSTiAoYWthLiAiaXJldCIpCiAgKiAgIEdFVF9DUjBfSU5UT19FQVggKGFrYS4gIm1vdmwgJWNyMCwgJWVheCIpCi0gKiAgIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0NBTExfUkVUIChha2EgInN0aTsgc3lzZXhpdCIpLgorICogICBFTkFCTEVfSU5URVJSVVBUU19TWVNFWElUIChha2EgInN0aTsgc3lzZXhpdCIpLgogICoKICAqIEZvciBESVNBQkxFX0lOVEVSUlVQVFMvRU5BQkxFX0lOVEVSUlVQVFMgKGFrYSAiY2xpIi8ic3RpIiksIHlvdSBtdXN0CiAgKiBzcGVjaWZ5IHdoYXQgcmVnaXN0ZXJzIGNhbiBiZSBvdmVyd3JpdHRlbiAoQ0xCUl9OT05FLCBDTEJSX0VBWC9FRFgvRUNYL0FOWSkuCkBAIC0yNDgsNiArMjQ5LDcgQEAKICAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfQU5ZKQkjIG1ha2Ugc3VyZSB3ZSBkb24ndCBtaXNzIGFuIGludGVycnVwdAogCQkJCQkjIHNldHRpbmcgbmVlZF9yZXNjaGVkIG9yIHNpZ3BlbmRpbmcKIAkJCQkJIyBiZXR3ZWVuIHNhbXBsaW5nIGFuZCB0aGUgaXJldAorCVRSQUNFX0lSUVNfT0ZGCiAJbW92bCBUSV9mbGFncyglZWJwKSwgJWVjeAogCWFuZGwgJF9USUZfV09SS19NQVNLLCAlZWN4CSMgaXMgdGhlcmUgYW55IHdvcmsgdG8gYmUgZG9uZSBvbgogCQkJCQkjIGludC9leGNlcHRpb24gcmV0dXJuPwpAQCAtMzQ4LDcgKzM1MCw3IEBACiAJeG9ybCAlZWJwLCVlYnAKIAlUUkFDRV9JUlFTX09OCiAxOgltb3YgIFBUX0ZTKCVlc3ApLCAlZnMKLQlFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVAorCUVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQKIAlDRklfRU5EUFJPQwogLnB1c2hzZWN0aW9uIC5maXh1cCwiYXgiCiAyOgltb3ZsICQwLFBUX0ZTKCVlc3ApCkBAIC04NzMsMTAgKzg3NSwxMCBAQAogLnByZXZpb3VzCiBFTkQobmF0aXZlX2lyZXQpCiAKLUVOVFJZKG5hdGl2ZV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KQorRU5UUlkobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKIAlzdGkKIAlzeXNleGl0Ci1FTkQobmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQpCitFTkQobmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCkKICNlbmRpZgogCiBLUFJPQkVfRU5UUlkoaW50MykKQEAgLTEwMjMsNiArMTAyNSw3IEBACiAJUklORzBfSU5UX0ZSQU1FCiAJYWRkbCAkNSo0LCAlZXNwCQkvKiByZW1vdmUgeGVuLXByb3ZpZGVkIGZyYW1lICovCiAJam1wIHN5c2VudGVyX3Bhc3RfZXNwCisJQ0ZJX0VORFBST0MKIAogRU5UUlkoeGVuX2h5cGVydmlzb3JfY2FsbGJhY2spCiAJQ0ZJX1NUQVJUUFJPQwpAQCAtMTEwOSw2ICsxMTEyLDc3IEBACiAKICNlbmRpZgkvKiBDT05GSUdfWEVOICovCiAKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisKK0VOVFJZKG1jb3VudCkKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwltb3ZsIDB4YyglZXNwKSwgJWVheAorCXN1YmwgJE1DT1VOVF9JTlNOX1NJWkUsICVlYXgKKworLmdsb2JsIG1jb3VudF9jYWxsCittY291bnRfY2FsbDoKKwljYWxsIGZ0cmFjZV9zdHViCisKKwlwb3BsICVlZHgKKwlwb3BsICVlY3gKKwlwb3BsICVlYXgKKworCXJldAorRU5EKG1jb3VudCkKKworRU5UUlkoZnRyYWNlX2NhbGxlcikKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwltb3ZsIDB4YyglZXNwKSwgJWVheAorCW1vdmwgMHg0KCVlYnApLCAlZWR4CisJc3VibCAkTUNPVU5UX0lOU05fU0laRSwgJWVheAorCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWNhbGwgZnRyYWNlX3N0dWIKKworCXBvcGwgJWVkeAorCXBvcGwgJWVjeAorCXBvcGwgJWVheAorCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldAorRU5EKGZ0cmFjZV9jYWxsZXIpCisKKyNlbHNlIC8qICEgQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisKK0VOVFJZKG1jb3VudCkKKwljbXBsICRmdHJhY2Vfc3R1YiwgZnRyYWNlX3RyYWNlX2Z1bmN0aW9uCisJam56IHRyYWNlCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldAorCisJLyogdGFrZW4gZnJvbSBnbGliYyAqLwordHJhY2U6CisJcHVzaGwgJWVheAorCXB1c2hsICVlY3gKKwlwdXNobCAlZWR4CisJbW92bCAweGMoJWVzcCksICVlYXgKKwltb3ZsIDB4NCglZWJwKSwgJWVkeAorCXN1YmwgJE1DT1VOVF9JTlNOX1NJWkUsICVlYXgKKworCWNhbGwgKmZ0cmFjZV90cmFjZV9mdW5jdGlvbgorCisJcG9wbCAlZWR4CisJcG9wbCAlZWN4CisJcG9wbCAlZWF4CisKKwlqbXAgZnRyYWNlX3N0dWIKK0VORChtY291bnQpCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCiAuc2VjdGlvbiAucm9kYXRhLCJhIgogI2luY2x1ZGUgInN5c2NhbGxfdGFibGVfMzIuUyIKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUwppbmRleCA1NTZhOGRmLi5iYTQxYmY0IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZW50cnlfNjQuUwpAQCAtNTEsMTYgKzUxLDEyMSBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2lycWZsYWdzLmg+CiAjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgogCiAJLmNvZGU2NAogCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorRU5UUlkobWNvdW50KQorCisJc3VicSAkMHgzOCwgJXJzcAorCW1vdnEgJXJheCwgKCVyc3ApCisJbW92cSAlcmN4LCA4KCVyc3ApCisJbW92cSAlcmR4LCAxNiglcnNwKQorCW1vdnEgJXJzaSwgMjQoJXJzcCkKKwltb3ZxICVyZGksIDMyKCVyc3ApCisJbW92cSAlcjgsIDQwKCVyc3ApCisJbW92cSAlcjksIDQ4KCVyc3ApCisKKwltb3ZxIDB4MzgoJXJzcCksICVyZGkKKwlzdWJxICRNQ09VTlRfSU5TTl9TSVpFLCAlcmRpCisKKy5nbG9ibCBtY291bnRfY2FsbAorbWNvdW50X2NhbGw6CisJY2FsbCBmdHJhY2Vfc3R1YgorCisJbW92cSA0OCglcnNwKSwgJXI5CisJbW92cSA0MCglcnNwKSwgJXI4CisJbW92cSAzMiglcnNwKSwgJXJkaQorCW1vdnEgMjQoJXJzcCksICVyc2kKKwltb3ZxIDE2KCVyc3ApLCAlcmR4CisJbW92cSA4KCVyc3ApLCAlcmN4CisJbW92cSAoJXJzcCksICVyYXgKKwlhZGRxICQweDM4LCAlcnNwCisKKwlyZXRxCitFTkQobWNvdW50KQorCitFTlRSWShmdHJhY2VfY2FsbGVyKQorCisJLyogdGFrZW4gZnJvbSBnbGliYyAqLworCXN1YnEgJDB4MzgsICVyc3AKKwltb3ZxICVyYXgsICglcnNwKQorCW1vdnEgJXJjeCwgOCglcnNwKQorCW1vdnEgJXJkeCwgMTYoJXJzcCkKKwltb3ZxICVyc2ksIDI0KCVyc3ApCisJbW92cSAlcmRpLCAzMiglcnNwKQorCW1vdnEgJXI4LCA0MCglcnNwKQorCW1vdnEgJXI5LCA0OCglcnNwKQorCisJbW92cSAweDM4KCVyc3ApLCAlcmRpCisJbW92cSA4KCVyYnApLCAlcnNpCisJc3VicSAkTUNPVU5UX0lOU05fU0laRSwgJXJkaQorCisuZ2xvYmwgZnRyYWNlX2NhbGwKK2Z0cmFjZV9jYWxsOgorCWNhbGwgZnRyYWNlX3N0dWIKKworCW1vdnEgNDgoJXJzcCksICVyOQorCW1vdnEgNDAoJXJzcCksICVyOAorCW1vdnEgMzIoJXJzcCksICVyZGkKKwltb3ZxIDI0KCVyc3ApLCAlcnNpCisJbW92cSAxNiglcnNwKSwgJXJkeAorCW1vdnEgOCglcnNwKSwgJXJjeAorCW1vdnEgKCVyc3ApLCAlcmF4CisJYWRkcSAkMHgzOCwgJXJzcAorCisuZ2xvYmwgZnRyYWNlX3N0dWIKK2Z0cmFjZV9zdHViOgorCXJldHEKK0VORChmdHJhY2VfY2FsbGVyKQorCisjZWxzZSAvKiAhIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworRU5UUlkobWNvdW50KQorCWNtcHEgJGZ0cmFjZV9zdHViLCBmdHJhY2VfdHJhY2VfZnVuY3Rpb24KKwlqbnogdHJhY2UKKy5nbG9ibCBmdHJhY2Vfc3R1YgorZnRyYWNlX3N0dWI6CisJcmV0cQorCit0cmFjZToKKwkvKiB0YWtlbiBmcm9tIGdsaWJjICovCisJc3VicSAkMHgzOCwgJXJzcAorCW1vdnEgJXJheCwgKCVyc3ApCisJbW92cSAlcmN4LCA4KCVyc3ApCisJbW92cSAlcmR4LCAxNiglcnNwKQorCW1vdnEgJXJzaSwgMjQoJXJzcCkKKwltb3ZxICVyZGksIDMyKCVyc3ApCisJbW92cSAlcjgsIDQwKCVyc3ApCisJbW92cSAlcjksIDQ4KCVyc3ApCisKKwltb3ZxIDB4MzgoJXJzcCksICVyZGkKKwltb3ZxIDgoJXJicCksICVyc2kKKwlzdWJxICRNQ09VTlRfSU5TTl9TSVpFLCAlcmRpCisKKwljYWxsICAgKmZ0cmFjZV90cmFjZV9mdW5jdGlvbgorCisJbW92cSA0OCglcnNwKSwgJXI5CisJbW92cSA0MCglcnNwKSwgJXI4CisJbW92cSAzMiglcnNwKSwgJXJkaQorCW1vdnEgMjQoJXJzcCksICVyc2kKKwltb3ZxIDE2KCVyc3ApLCAlcmR4CisJbW92cSA4KCVyc3ApLCAlcmN4CisJbW92cSAoJXJzcCksICVyYXgKKwlhZGRxICQweDM4LCAlcnNwCisKKwlqbXAgZnRyYWNlX3N0dWIKK0VORChtY291bnQpCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCiAjaWZuZGVmIENPTkZJR19QUkVFTVBUCiAjZGVmaW5lIHJldGludF9rZXJuZWwgcmV0aW50X3Jlc3RvcmVfYXJncwogI2VuZGlmCQogCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCi1FTlRSWShuYXRpdmVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCkKLQltb3ZxCSVnczpwZGFfb2xkcnNwLCVyc3AKK0VOVFJZKG5hdGl2ZV91c2VyZ3Nfc3lzcmV0NjQpCiAJc3dhcGdzCiAJc3lzcmV0cQogI2VuZGlmIC8qIENPTkZJR19QQVJBVklSVCAqLwpAQCAtMTA0LDcgKzIwOSw3IEBACiAJLm1hY3JvIEZBS0VfU1RBQ0tfRlJBTUUgY2hpbGRfcmlwCiAJLyogcHVzaCBpbiBvcmRlciBzcywgcnNwLCBlZmxhZ3MsIGNzLCByaXAgKi8KIAl4b3JsICVlYXgsICVlYXgKLQlwdXNocSAlcmF4IC8qIHNzICovCisJcHVzaHEgJF9fS0VSTkVMX0RTIC8qIHNzICovCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUCTgKIAkvKkNGSV9SRUxfT0ZGU0VUCXNzLDAqLwogCXB1c2hxICVyYXggLyogcnNwICovCkBAIC0xNjksMTMgKzI3NCwxMyBAQAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtNAogCWNhbGwgc2NoZWR1bGVfdGFpbAogCUdFVF9USFJFQURfSU5GTyglcmN4KQotCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVCksdGhyZWFkaW5mb19mbGFncyglcmN4KQorCXRlc3RsICQoX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVCksVElfZmxhZ3MoJXJjeCkKIAlqbnogcmZmX3RyYWNlCiByZmZfYWN0aW9uOgkKIAlSRVNUT1JFX1JFU1QKIAl0ZXN0bCAkMyxDUy1BUkdPRkZTRVQoJXJzcCkJIyBmcm9tIGtlcm5lbF90aHJlYWQ/CiAJamUgICBpbnRfcmV0X2Zyb21fc3lzX2NhbGwKLQl0ZXN0bCAkX1RJRl9JQTMyLHRocmVhZGluZm9fZmxhZ3MoJXJjeCkKKwl0ZXN0bCAkX1RJRl9JQTMyLFRJX2ZsYWdzKCVyY3gpCiAJam56ICBpbnRfcmV0X2Zyb21fc3lzX2NhbGwKIAlSRVNUT1JFX1RPUF9PRl9TVEFDSyAlcmRpLEFSR09GRlNFVAogCWptcCByZXRfZnJvbV9zeXNfY2FsbApAQCAtMjQ0LDcgKzM0OSw4IEBACiAJbW92cSAgJXJjeCxSSVAtQVJHT0ZGU0VUKCVyc3ApCiAJQ0ZJX1JFTF9PRkZTRVQgcmlwLFJJUC1BUkdPRkZTRVQKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQl0ZXN0bCAkKF9USUZfU1lTQ0FMTF9UUkFDRXxfVElGX1NZU0NBTExfQVVESVR8X1RJRl9TRUNDT01QKSx0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpCisJdGVzdGwgJChfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0VDQ09NUCksIFwKKwkJVElfZmxhZ3MoJXJjeCkKIAlqbnogdHJhY2VzeXMKIAljbXBxICRfX05SX3N5c2NhbGxfbWF4LCVyYXgKIAlqYSBiYWRzeXMKQEAgLTI2Myw3ICszNjksNyBAQAogCUdFVF9USFJFQURfSU5GTyglcmN4KQogCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCiAJVFJBQ0VfSVJRU19PRkYKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVkeAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVkeAogCWFuZGwgJWVkaSwlZWR4CiAJam56ICBzeXNyZXRfY2FyZWZ1bCAKIAlDRklfUkVNRU1CRVJfU1RBVEUKQEAgLTI3NSw3ICszODEsOCBAQAogCUNGSV9SRUdJU1RFUglyaXAscmN4CiAJUkVTVE9SRV9BUkdTIDAsLUFSR19TS0lQLDEKIAkvKkNGSV9SRUdJU1RFUglyZmxhZ3MscjExKi8KLQlFTkFCTEVfSU5URVJSVVBUU19TWVNDQUxMX1JFVAorCW1vdnEJJWdzOnBkYV9vbGRyc3AsICVyc3AKKwlVU0VSR1NfU1lTUkVUNjQKIAogCUNGSV9SRVNUT1JFX1NUQVRFCiAJLyogSGFuZGxlIHJlc2NoZWR1bGVzICovCkBAIC0zMDUsNyArNDEyLDcgQEAKIAlsZWFxIC1BUkdPRkZTRVQoJXJzcCksJXJkaSAjICZwdF9yZWdzIC0+IGFyZzEKIAl4b3JsICVlc2ksJWVzaSAjIG9sZHNldCAtPiBhcmcyCiAJY2FsbCBwdHJlZ3NjYWxsX2NvbW1vbgotMToJbW92bCAkX1RJRl9ORUVEX1JFU0NIRUQsJWVkaQorMToJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogCS8qIFVzZSBJUkVUIGJlY2F1c2UgdXNlciBjb3VsZCBoYXZlIGNoYW5nZWQgZnJhbWUuIFRoaXMKIAkgICB3b3JrcyBiZWNhdXNlIHB0cmVnc2NhbGxfY29tbW9uIGhhcyBjYWxsZWQgRklYVVBfVE9QX09GX1NUQUNLLiAqLwogCURJU0FCTEVfSU5URVJSVVBUUyhDTEJSX05PTkUpCkBAIC0zNDcsMTAgKzQ1NCwxMCBAQAogaW50X3dpdGhfY2hlY2s6CiAJTE9DS0RFUF9TWVNfRVhJVF9JUlEKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQltb3ZsIHRocmVhZGluZm9fZmxhZ3MoJXJjeCksJWVkeAorCW1vdmwgVElfZmxhZ3MoJXJjeCksJWVkeAogCWFuZGwgJWVkaSwlZWR4CiAJam56ICAgaW50X2NhcmVmdWwKLQlhbmRsICAgICR+VFNfQ09NUEFULHRocmVhZGluZm9fc3RhdHVzKCVyY3gpCisJYW5kbCAgICAkflRTX0NPTVBBVCxUSV9zdGF0dXMoJXJjeCkKIAlqbXAgICByZXRpbnRfc3dhcGdzCiAKIAkvKiBFaXRoZXIgcmVzY2hlZHVsZSBvciBzaWduYWwgb3Igc3lzY2FsbCBleGl0IHRyYWNraW5nIG5lZWRlZC4gKi8KQEAgLTM5Myw3ICs1MDAsNyBAQAogCW1vdnEgJXJzcCwlcmRpCQkjICZwdHJlZ3MgLT4gYXJnMQogCXhvcmwgJWVzaSwlZXNpCQkjIG9sZHNldCAtPiBhcmcyCiAJY2FsbCBkb19ub3RpZnlfcmVzdW1lCi0xOgltb3ZsICRfVElGX05FRURfUkVTQ0hFRCwlZWRpCQorMToJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogaW50X3Jlc3RvcmVfcmVzdDoKIAlSRVNUT1JFX1JFU1QKIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQpAQCAtNDIwLDcgKzUyNyw2IEBACiAJUFRSRUdTQ0FMTCBzdHViX2Nsb25lLCBzeXNfY2xvbmUsICVyOAogCVBUUkVHU0NBTEwgc3R1Yl9mb3JrLCBzeXNfZm9yaywgJXJkaQogCVBUUkVHU0NBTEwgc3R1Yl92Zm9yaywgc3lzX3Zmb3JrLCAlcmRpCi0JUFRSRUdTQ0FMTCBzdHViX3J0X3NpZ3N1c3BlbmQsIHN5c19ydF9zaWdzdXNwZW5kLCAlcmR4CiAJUFRSRUdTQ0FMTCBzdHViX3NpZ2FsdHN0YWNrLCBzeXNfc2lnYWx0c3RhY2ssICVyZHgKIAlQVFJFR1NDQUxMIHN0dWJfaW9wbCwgc3lzX2lvcGwsICVyc2kKIApAQCAtNTU5LDcgKzY2NSw3IEBACiAJbW92bCAkX1RJRl9XT1JLX01BU0ssJWVkaQogcmV0aW50X2NoZWNrOgogCUxPQ0tERVBfU1lTX0VYSVRfSVJRCi0JbW92bCB0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpLCVlZHgKKwltb3ZsIFRJX2ZsYWdzKCVyY3gpLCVlZHgKIAlhbmRsICVlZGksJWVkeAogCUNGSV9SRU1FTUJFUl9TVEFURQogCWpueiAgcmV0aW50X2NhcmVmdWwKQEAgLTY0NywxNyArNzUzLDE2IEBACiAJUkVTVE9SRV9SRVNUCiAJRElTQUJMRV9JTlRFUlJVUFRTKENMQlJfTk9ORSkKIAlUUkFDRV9JUlFTX09GRgotCW1vdmwgJF9USUZfTkVFRF9SRVNDSEVELCVlZGkKIAlHRVRfVEhSRUFEX0lORk8oJXJjeCkKLQlqbXAgcmV0aW50X2NoZWNrCisJam1wIHJldGludF93aXRoX3Jlc2NoZWR1bGUKIAogI2lmZGVmIENPTkZJR19QUkVFTVBUCiAJLyogUmV0dXJuaW5nIHRvIGtlcm5lbCBzcGFjZS4gQ2hlY2sgaWYgd2UgbmVlZCBwcmVlbXB0aW9uICovCiAJLyogcmN4OgkgdGhyZWFkaW5mby4gaW50ZXJydXB0cyBvZmYuICovCiBFTlRSWShyZXRpbnRfa2VybmVsKQotCWNtcGwgJDAsdGhyZWFkaW5mb19wcmVlbXB0X2NvdW50KCVyY3gpCisJY21wbCAkMCxUSV9wcmVlbXB0X2NvdW50KCVyY3gpCiAJam56ICByZXRpbnRfcmVzdG9yZV9hcmdzCi0JYnQgICRUSUZfTkVFRF9SRVNDSEVELHRocmVhZGluZm9fZmxhZ3MoJXJjeCkKKwlidCAgJFRJRl9ORUVEX1JFU0NIRUQsVElfZmxhZ3MoJXJjeCkKIAlqbmMgIHJldGludF9yZXN0b3JlX2FyZ3MKIAlidCAgICQ5LEVGTEFHUy1BUkdPRkZTRVQoJXJzcCkJLyogaW50ZXJydXB0cyBvZmY/ICovCiAJam5jICByZXRpbnRfcmVzdG9yZV9hcmdzCkBAIC03MjAsNiArODI1LDEwIEBACiAJYXBpY2ludGVycnVwdCBMT0NBTF9USU1FUl9WRUNUT1Isc21wX2FwaWNfdGltZXJfaW50ZXJydXB0CiBFTkQoYXBpY190aW1lcl9pbnRlcnJ1cHQpCiAKK0VOVFJZKHV2X2JhdV9tZXNzYWdlX2ludHIxKQorCWFwaWNpbnRlcnJ1cHQgMjIwLHV2X2JhdV9tZXNzYWdlX2ludGVycnVwdAorRU5EKHV2X2JhdV9tZXNzYWdlX2ludHIxKQorCiBFTlRSWShlcnJvcl9pbnRlcnJ1cHQpCiAJYXBpY2ludGVycnVwdCBFUlJPUl9BUElDX1ZFQ1RPUixzbXBfZXJyb3JfaW50ZXJydXB0CiBFTkQoZXJyb3JfaW50ZXJydXB0KQpAQCAtNzMzLDYgKzg0Miw3IEBACiAgKi8gCQkKIAkubWFjcm8gemVyb2VudHJ5IHN5bQogCUlOVFJfRlJBTUUKKwlQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCiAJcHVzaHEgJDAJLyogcHVzaCBlcnJvciBjb2RlL29sZHJheCAqLyAKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAogCXB1c2hxICVyYXgJLyogcHVzaCByZWFsIG9sZHJheCB0byB0aGUgcmRpIHNsb3QgKi8gCkBAIC03NDUsNiArODU1LDcgQEAKIAogCS5tYWNybyBlcnJvcmVudHJ5IHN5bQogCVhDUFRfRlJBTUUKKwlQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCiAJcHVzaHEgJXJheAogCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4CiAJQ0ZJX1JFTF9PRkZTRVQgcmF4LDAKQEAgLTgxNCw3ICs5MjUsNyBAQAogCWptcCBpcnFfcmV0dXJuCiBwYXJhbm9pZF91c2Vyc3BhY2VcdHJhY2U6CiAJR0VUX1RIUkVBRF9JTkZPKCVyY3gpCi0JbW92bCB0aHJlYWRpbmZvX2ZsYWdzKCVyY3gpLCVlYngKKwltb3ZsIFRJX2ZsYWdzKCVyY3gpLCVlYngKIAlhbmRsICRfVElGX1dPUktfTUFTSywlZWJ4CiAJanogcGFyYW5vaWRfc3dhcGdzXHRyYWNlCiAJbW92cSAlcnNwLCVyZGkJCQkvKiAmcHRfcmVncyAqLwpAQCAtOTEyLDcgKzEwMjMsNyBAQAogCXRlc3RsICVlYXgsJWVheAogCWpuZSAgcmV0aW50X2tlcm5lbAogCUxPQ0tERVBfU1lTX0VYSVRfSVJRCi0JbW92bCAgdGhyZWFkaW5mb19mbGFncyglcmN4KSwlZWR4CisJbW92bCAgVElfZmxhZ3MoJXJjeCksJWVkeAogCW1vdmwgICRfVElGX1dPUktfTUFTSywlZWRpCiAJYW5kbCAgJWVkaSwlZWR4CiAJam56ICByZXRpbnRfY2FyZWZ1bApAQCAtOTI2LDExICsxMDM3LDExIEBACiAJICAgaXJldCBydW4gd2l0aCBrZXJuZWwgZ3MgYWdhaW4sIHNvIGRvbid0IHNldCB0aGUgdXNlciBzcGFjZSBmbGFnLgogCSAgIEIgc3RlcHBpbmcgSzhzIHNvbWV0aW1lcyByZXBvcnQgYW4gdHJ1bmNhdGVkIFJJUCBmb3IgSVJFVCAKIAkgICBleGNlcHRpb25zIHJldHVybmluZyB0byBjb21wYXQgbW9kZS4gQ2hlY2sgZm9yIHRoZXNlIGhlcmUgdG9vLiAqLwotCWxlYXEgaXJxX3JldHVybiglcmlwKSwlcmJwCi0JY21wcSAlcmJwLFJJUCglcnNwKSAKKwlsZWFxIGlycV9yZXR1cm4oJXJpcCksJXJjeAorCWNtcHEgJXJjeCxSSVAoJXJzcCkKIAlqZSAgIGVycm9yX3N3YXBncwotCW1vdmwgJWVicCwlZWJwCS8qIHplcm8gZXh0ZW5kICovCi0JY21wcSAlcmJwLFJJUCglcnNwKSAKKwltb3ZsICVlY3gsJWVjeAkvKiB6ZXJvIGV4dGVuZCAqLworCWNtcHEgJXJjeCxSSVAoJXJzcCkKIAlqZSAgIGVycm9yX3N3YXBncwogCWNtcHEgJGdzX2NoYW5nZSxSSVAoJXJzcCkKICAgICAgICAgamUgICBlcnJvcl9zd2FwZ3MKQEAgLTkzOSw3ICsxMDUwLDcgQEAKIAkKICAgICAgICAvKiBSZWxvYWQgZ3Mgc2VsZWN0b3Igd2l0aCBleGNlcHRpb24gaGFuZGxpbmcgKi8KICAgICAgICAvKiBlZGk6ICBuZXcgc2VsZWN0b3IgKi8gCi1FTlRSWShsb2FkX2dzX2luZGV4KQorRU5UUlkobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAJQ0ZJX1NUQVJUUFJPQwogCXB1c2hmCiAJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIDgKQEAgLTk1Myw3ICsxMDY0LDcgQEAKIAlDRklfQURKVVNUX0NGQV9PRkZTRVQgLTgKICAgICAgICAgcmV0CiAJQ0ZJX0VORFBST0MKLUVORFBST0MobG9hZF9nc19pbmRleCkKK0VORFBST0MobmF0aXZlX2xvYWRfZ3NfaW5kZXgpCiAgICAgICAgCiAgICAgICAgIC5zZWN0aW9uIF9fZXhfdGFibGUsImEiCiAgICAgICAgIC5hbGlnbiA4CkBAIC0xMTIwLDEwICsxMjMxLDYgQEAKIAl6ZXJvZW50cnkgZG9fY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuCiBFTkQoY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogCi1FTlRSWShyZXNlcnZlZCkKLQl6ZXJvZW50cnkgZG9fcmVzZXJ2ZWQKLUVORChyZXNlcnZlZCkKLQogCS8qIHJ1bnMgb24gZXhjZXB0aW9uIHN0YWNrICovCiBFTlRSWShkb3VibGVfZmF1bHQpCiAJWENQVF9GUkFNRQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2Z0cmFjZS5jIGIvYXJjaC94ODYva2VybmVsL2Z0cmFjZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMTE1Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvZnRyYWNlLmMKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb2RlIGZvciByZXBsYWNpbmcgZnRyYWNlIGNhbGxzIHdpdGgganVtcHMuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKgorICogVGhhbmtzIGdvZXMgdG8gSW5nbyBNb2xuYXIsIGZvciBzdWdnZXN0aW5nIHRoZSBpZGVhLgorICogTWF0aGlldSBEZXNub3llcnMsIGZvciBzdWdnZXN0aW5nIHBvc3Rwb25pbmcgdGhlIG1vZGlmaWNhdGlvbnMuCisgKiBBcmphbiB2YW4gZGUgVmVuLCBmb3Iga2VlcGluZyBtZSBzdHJhaWdodCwgYW5kIGV4cGxhaW5pbmcgdG8gbWUKKyAqIHRoZSBkYW5nZXJzIG9mIG1vZGlmeWluZyBjb2RlIG9uIHRoZSBydW4uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisKKyNpbmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4KKyNpbmNsdWRlIDxhc20vZnRyYWNlLmg+CisKKworLyogTG9uZyBpcyBmaW5lLCBldmVuIGlmIGl0IGlzIG9ubHkgNCBieXRlcyA7LSkgKi8KK3N0YXRpYyBsb25nICpmdHJhY2Vfbm9wOworCit1bmlvbiBmdHJhY2VfY29kZV91bmlvbiB7CisJY2hhciBjb2RlW01DT1VOVF9JTlNOX1NJWkVdOworCXN0cnVjdCB7CisJCWNoYXIgZTg7CisJCWludCBvZmZzZXQ7CisJfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKK307CisKKworc3RhdGljIGludCBub3RyYWNlIGZ0cmFjZV9jYWxjX29mZnNldChsb25nIGlwLCBsb25nIGFkZHIpCit7CisJcmV0dXJuIChpbnQpKGFkZHIgLSBpcCk7Cit9CisKK25vdHJhY2UgdW5zaWduZWQgY2hhciAqZnRyYWNlX25vcF9yZXBsYWNlKHZvaWQpCit7CisJcmV0dXJuIChjaGFyICopZnRyYWNlX25vcDsKK30KKworbm90cmFjZSB1bnNpZ25lZCBjaGFyICpmdHJhY2VfY2FsbF9yZXBsYWNlKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdGF0aWMgdW5pb24gZnRyYWNlX2NvZGVfdW5pb24gY2FsYzsKKworCWNhbGMuZTgJCT0gMHhlODsKKwljYWxjLm9mZnNldAk9IGZ0cmFjZV9jYWxjX29mZnNldChpcCArIE1DT1VOVF9JTlNOX1NJWkUsIGFkZHIpOworCisJLyoKKwkgKiBObyBsb2NraW5nIG5lZWRlZCwgdGhpcyBtdXN0IGJlIGNhbGxlZCB2aWEga3N0b3BfbWFjaGluZQorCSAqIHdoaWNoIGluIGVzc2VuY2UgaXMgbGlrZSBydW5uaW5nIG9uIGEgdW5pcHJvY2Vzc29yIG1hY2hpbmUuCisJICovCisJcmV0dXJuIGNhbGMuY29kZTsKK30KKworbm90cmFjZSBpbnQKK2Z0cmFjZV9tb2RpZnlfY29kZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBjaGFyICpvbGRfY29kZSwKKwkJICAgdW5zaWduZWQgY2hhciAqbmV3X2NvZGUpCit7CisJdW5zaWduZWQgcmVwbGFjZWQ7CisJdW5zaWduZWQgb2xkID0gKih1bnNpZ25lZCAqKW9sZF9jb2RlOyAvKiA0IGJ5dGVzICovCisJdW5zaWduZWQgbmV3ID0gKih1bnNpZ25lZCAqKW5ld19jb2RlOyAvKiA0IGJ5dGVzICovCisJdW5zaWduZWQgY2hhciBuZXdjaCA9IG5ld19jb2RlWzRdOworCWludCBmYXVsdGVkID0gMDsKKworCS8qCisJICogTm90ZTogRHVlIHRvIG1vZHVsZXMgYW5kIF9faW5pdCwgY29kZSBjYW4KKwkgKiAgZGlzYXBwZWFyIGFuZCBjaGFuZ2UsIHdlIG5lZWQgdG8gcHJvdGVjdCBhZ2FpbnN0IGZhdWx0aW5nCisJICogIGFzIHdlbGwgYXMgY29kZSBjaGFuZ2luZy4KKwkgKgorCSAqIE5vIHJlYWwgbG9ja2luZyBuZWVkZWQsIHRoaXMgY29kZSBpcyBydW4gdGhyb3VnaAorCSAqIGtzdG9wX21hY2hpbmUuCisJICovCisJYXNtIHZvbGF0aWxlICgKKwkJIjE6IGxvY2tcbiIKKwkJIiAgIGNtcHhjaGcgJTMsICglMilcbiIKKwkJIiAgIGpueiAyZlxuIgorCQkiICAgbW92YiAlYjQsIDQoJTIpXG4iCisJCSIyOlxuIgorCQkiLnNlY3Rpb24gLmZpeHVwLCBcImF4XCJcbiIKKwkJIjM6CW1vdmwgJDEsICUwXG4iCisJCSIJam1wIDJiXG4iCisJCSIucHJldmlvdXNcbiIKKwkJX0FTTV9FWFRBQkxFKDFiLCAzYikKKwkJOiAiPXIiKGZhdWx0ZWQpLCAiPWEiKHJlcGxhY2VkKQorCQk6ICJyIihpcCksICJyIihuZXcpLCAiYyIobmV3Y2gpLAorCQkgICIwIihmYXVsdGVkKSwgImEiKG9sZCkKKwkJOiAibWVtb3J5Iik7CisJc3luY19jb3JlKCk7CisKKwlpZiAocmVwbGFjZWQgIT0gb2xkICYmIHJlcGxhY2VkICE9IG5ldykKKwkJZmF1bHRlZCA9IDI7CisKKwlyZXR1cm4gZmF1bHRlZDsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpCit7CisJdW5zaWduZWQgbG9uZyBpcCA9ICh1bnNpZ25lZCBsb25nKSgmZnRyYWNlX2NhbGwpOworCXVuc2lnbmVkIGNoYXIgb2xkW01DT1VOVF9JTlNOX1NJWkVdLCAqbmV3OworCWludCByZXQ7CisKKwltZW1jcHkob2xkLCAmZnRyYWNlX2NhbGwsIE1DT1VOVF9JTlNOX1NJWkUpOworCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsICh1bnNpZ25lZCBsb25nKWZ1bmMpOworCXJldCA9IGZ0cmFjZV9tb2RpZnlfY29kZShpcCwgb2xkLCBuZXcpOworCisJcmV0dXJuIHJldDsKK30KKworbm90cmFjZSBpbnQgZnRyYWNlX21jb3VudF9zZXQodW5zaWduZWQgbG9uZyAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIGlwID0gKGxvbmcpKCZtY291bnRfY2FsbCk7CisJdW5zaWduZWQgbG9uZyAqYWRkciA9IGRhdGE7CisJdW5zaWduZWQgY2hhciBvbGRbTUNPVU5UX0lOU05fU0laRV0sICpuZXc7CisKKwkvKgorCSAqIFJlcGxhY2UgdGhlIG1jb3VudCBzdHViIHdpdGggYSBwb2ludGVyIHRvIHRoZQorCSAqIGlwIHJlY29yZGVyIGZ1bmN0aW9uLgorCSAqLworCW1lbWNweShvbGQsICZtY291bnRfY2FsbCwgTUNPVU5UX0lOU05fU0laRSk7CisJbmV3ID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgKmFkZHIpOworCSphZGRyID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7CisKKwlyZXR1cm4gMDsKK30KKworaW50IF9faW5pdCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKQoreworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvbnN0ICpub3B0YWJsZSA9IGZpbmRfbm9wX3RhYmxlKCk7CisKKwkvKiBUaGlzIGlzIHJ1bm5pbmcgaW4ga3N0b3BfbWFjaGluZSAqLworCisJZnRyYWNlX21jb3VudF9zZXQoZGF0YSk7CisKKwlmdHJhY2Vfbm9wID0gKHVuc2lnbmVkIGxvbmcgKilub3B0YWJsZVtNQ09VTlRfSU5TTl9TSVpFXTsKKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2dlbmFwaWNfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9nZW5hcGljXzY0LmMKaW5kZXggY2JhYWY2OS4uMWZhOGJlNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2dlbmFwaWNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvZ2VuYXBpY182NC5jCkBAIC01MSw3ICs1MSw3IEBACiAJZWxzZQogI2VuZGlmCiAKLQlpZiAobnVtX3Bvc3NpYmxlX2NwdXMoKSA8PSA4KQorCWlmIChtYXhfcGh5c2ljYWxfYXBpY2lkIDwgOCkKIAkJZ2VuYXBpYyA9ICZhcGljX2ZsYXQ7CiAJZWxzZQogCQlnZW5hcGljID0gJmFwaWNfcGh5c2ZsYXQ7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZ2VueDJhcGljX3V2X3guYyBiL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCmluZGV4IGViZjEzOTAuLjcxMWYxMWMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9nZW54MmFwaWNfdXZfeC5jCkBAIC01LDkgKzUsMTAgQEAKICAqCiAgKiBTR0kgVVYgQVBJQyBmdW5jdGlvbnMgKG5vdGU6IG5vdCBhbiBJbnRlbCBjb21wYXRpYmxlIEFQSUMpCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqLwogCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KQEAgLTIwLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxhc20vc21wLmg+CiAjaW5jbHVkZSA8YXNtL2lwaS5oPgogI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vdXYvdXZfbW1ycy5oPgogI2luY2x1ZGUgPGFzbS91di91dl9odWIuaD4KIApAQCAtNTUsMzcgKzU3LDM3IEBACiBpbnQgdXZfd2FrZXVwX3NlY29uZGFyeShpbnQgcGh5c19hcGljaWQsIHVuc2lnbmVkIGludCBzdGFydF9yaXApCiB7CiAJdW5zaWduZWQgbG9uZyB2YWw7Ci0JaW50IG5hc2lkOworCWludCBwbm9kZTsKIAotCW5hc2lkID0gdXZfYXBpY2lkX3RvX25hc2lkKHBoeXNfYXBpY2lkKTsKKwlwbm9kZSA9IHV2X2FwaWNpZF90b19wbm9kZShwaHlzX2FwaWNpZCk7CiAJdmFsID0gKDFVTCA8PCBVVkhfSVBJX0lOVF9TRU5EX1NIRlQpIHwKIAkgICAgKHBoeXNfYXBpY2lkIDw8IFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAoKChsb25nKXN0YXJ0X3JpcCA8PCBVVkhfSVBJX0lOVF9WRUNUT1JfU0hGVCkgPj4gMTIpIHwKIAkgICAgQVBJQ19ETV9JTklUOwotCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChuYXNpZCwgVVZIX0lQSV9JTlQsIHZhbCk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfSVBJX0lOVCwgdmFsKTsKIAltZGVsYXkoMTApOwogCiAJdmFsID0gKDFVTCA8PCBVVkhfSVBJX0lOVF9TRU5EX1NIRlQpIHwKIAkgICAgKHBoeXNfYXBpY2lkIDw8IFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAoKChsb25nKXN0YXJ0X3JpcCA8PCBVVkhfSVBJX0lOVF9WRUNUT1JfU0hGVCkgPj4gMTIpIHwKIAkgICAgQVBJQ19ETV9TVEFSVFVQOwotCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChuYXNpZCwgVVZIX0lQSV9JTlQsIHZhbCk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfSVBJX0lOVCwgdmFsKTsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgdXZfc2VuZF9JUElfb25lKGludCBjcHUsIGludCB2ZWN0b3IpCiB7CiAJdW5zaWduZWQgbG9uZyB2YWwsIGFwaWNpZCwgbGFwaWNpZDsKLQlpbnQgbmFzaWQ7CisJaW50IHBub2RlOwogCiAJYXBpY2lkID0gcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KTsgLyogWlpaIC0gY2FjaGUgbm9kZS1sb2NhbCA/ICovCiAJbGFwaWNpZCA9IGFwaWNpZCAmIDB4M2Y7CQkvKiBaWlogbWFjcm8gbmVlZGVkICovCi0JbmFzaWQgPSB1dl9hcGljaWRfdG9fbmFzaWQoYXBpY2lkKTsKKwlwbm9kZSA9IHV2X2FwaWNpZF90b19wbm9kZShhcGljaWQpOwogCXZhbCA9CiAJICAgICgxVUwgPDwgVVZIX0lQSV9JTlRfU0VORF9TSEZUKSB8IChsYXBpY2lkIDw8CiAJCQkJCSAgICAgIFVWSF9JUElfSU5UX0FQSUNfSURfU0hGVCkgfAogCSAgICAodmVjdG9yIDw8IFVWSF9JUElfSU5UX1ZFQ1RPUl9TSEZUKTsKLQl1dl93cml0ZV9nbG9iYWxfbW1yNjQobmFzaWQsIFVWSF9JUElfSU5ULCB2YWwpOworCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0lQSV9JTlQsIHZhbCk7CiB9CiAKIHN0YXRpYyB2b2lkIHV2X3NlbmRfSVBJX21hc2soY3B1bWFza190IG1hc2ssIGludCB2ZWN0b3IpCkBAIC0xNTksMzkgKzE2MSwxNDYgQEAKIAkucGh5c19wa2dfaWQgPSBwaHlzX3BrZ19pZCwJLyogRml4bWUgWlpaICovCiB9OwogCi1zdGF0aWMgX19jcHVpbml0IHZvaWQgc2V0X3gyYXBpY19leHRyYV9iaXRzKGludCBuYXNpZCkKK3N0YXRpYyBfX2NwdWluaXQgdm9pZCBzZXRfeDJhcGljX2V4dHJhX2JpdHMoaW50IHBub2RlKQogewotCV9fZ2V0X2NwdV92YXIoeDJhcGljX2V4dHJhX2JpdHMpID0gKChuYXNpZCA+PiAxKSA8PCA2KTsKKwlfX2dldF9jcHVfdmFyKHgyYXBpY19leHRyYV9iaXRzKSA9IChwbm9kZSA8PCA2KTsKIH0KIAogLyoKICAqIENhbGxlZCBvbiBib290IGNwdS4KICAqLworc3RhdGljIF9faW5pdCBpbnQgYm9vdF9wbm9kZV90b19ibGFkZShpbnQgcG5vZGUpCit7CisJaW50IGJsYWRlOworCisJZm9yIChibGFkZSA9IDA7IGJsYWRlIDwgdXZfbnVtX3Bvc3NpYmxlX2JsYWRlcygpOyBibGFkZSsrKQorCQlpZiAocG5vZGUgPT0gdXZfYmxhZGVfaW5mb1tibGFkZV0ucG5vZGUpCisJCQlyZXR1cm4gYmxhZGU7CisJQlVHKCk7Cit9CisKK3N0cnVjdCByZWRpcl9hZGRyIHsKKwl1bnNpZ25lZCBsb25nIHJlZGlyZWN0OworCXVuc2lnbmVkIGxvbmcgYWxpYXM7Cit9OworCisjZGVmaW5lIERFU1RfU0hJRlQgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVJfREVTVF9CQVNFX1NIRlQKKworc3RhdGljIF9faW5pdGRhdGEgc3RydWN0IHJlZGlyX2FkZHIgcmVkaXJfYWRkcnNbXSA9IHsKKwl7VVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVIsIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUd9LAorCXtVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18xX01NUiwgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR30sCisJe1VWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SLCBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHfSwKK307CisKK3N0YXRpYyBfX2luaXQgdm9pZCBnZXRfbG93bWVtX3JlZGlyZWN0KHVuc2lnbmVkIGxvbmcgKmJhc2UsIHVuc2lnbmVkIGxvbmcgKnNpemUpCit7CisJdW5pb24gdXZoX3NpX2FsaWFzMF9vdmVybGF5X2NvbmZpZ191IGFsaWFzOworCXVuaW9uIHV2aF9yaF9nYW1fYWxpYXMyMTBfcmVkaXJlY3RfY29uZmlnXzJfbW1yX3UgcmVkaXJlY3Q7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWRpcl9hZGRycyk7IGkrKykgeworCQlhbGlhcy52ID0gdXZfcmVhZF9sb2NhbF9tbXIocmVkaXJfYWRkcnNbaV0uYWxpYXMpOworCQlpZiAoYWxpYXMucy5iYXNlID09IDApIHsKKwkJCSpzaXplID0gKDFVTCA8PCBhbGlhcy5zLm1fYWxpYXMpOworCQkJcmVkaXJlY3QudiA9IHV2X3JlYWRfbG9jYWxfbW1yKHJlZGlyX2FkZHJzW2ldLnJlZGlyZWN0KTsKKwkJCSpiYXNlID0gKHVuc2lnbmVkIGxvbmcpcmVkaXJlY3Qucy5kZXN0X2Jhc2UgPDwgREVTVF9TSElGVDsKKwkJCXJldHVybjsKKwkJfQorCX0KKwlCVUcoKTsKK30KKworc3RhdGljIF9faW5pdCB2b2lkIG1hcF9sb3dfbW1ycyh2b2lkKQoreworCWluaXRfZXh0cmFfbWFwcGluZ191YyhVVl9HTE9CQUxfTU1SMzJfQkFTRSwgVVZfR0xPQkFMX01NUjMyX1NJWkUpOworCWluaXRfZXh0cmFfbWFwcGluZ191YyhVVl9MT0NBTF9NTVJfQkFTRSwgVVZfTE9DQUxfTU1SX1NJWkUpOworfQorCitlbnVtIG1hcF90eXBlIHttYXBfd2IsIG1hcF91Y307CisKK3N0YXRpYyB2b2lkIG1hcF9oaWdoKGNoYXIgKmlkLCB1bnNpZ25lZCBsb25nIGJhc2UsIGludCBzaGlmdCwgZW51bSBtYXBfdHlwZSBtYXBfdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIGJ5dGVzLCBwYWRkcjsKKworCXBhZGRyID0gYmFzZSA8PCBzaGlmdDsKKwlieXRlcyA9ICgxVUwgPDwgc2hpZnQpOworCXByaW50ayhLRVJOX0lORk8gIlVWOiBNYXAgJXNfSEkgMHglbHggLSAweCVseFxuIiwgaWQsIHBhZGRyLAorCSAgICAgICAJCQkJCXBhZGRyICsgYnl0ZXMpOworCWlmIChtYXBfdHlwZSA9PSBtYXBfdWMpCisJCWluaXRfZXh0cmFfbWFwcGluZ191YyhwYWRkciwgYnl0ZXMpOworCWVsc2UKKwkJaW5pdF9leHRyYV9tYXBwaW5nX3diKHBhZGRyLCBieXRlcyk7CisKK30KK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfZ3J1X2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX2dydV9vdmVybGF5X2NvbmZpZ19tbXJfdSBncnU7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCWdydS52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAoZ3J1LnMuZW5hYmxlKQorCQltYXBfaGlnaCgiR1JVIiwgZ3J1LnMuYmFzZSwgc2hpZnQsIG1hcF93Yik7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfY29uZmlnX2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX2NmZ19vdmVybGF5X2NvbmZpZ19tbXJfdSBjZmc7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCWNmZy52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAoY2ZnLnMuZW5hYmxlKQorCQltYXBfaGlnaCgiQ09ORklHIiwgY2ZnLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfbW1yX2hpZ2goaW50IG1heF9wbm9kZSkKK3sKKwl1bmlvbiB1dmhfcmhfZ2FtX21tcl9vdmVybGF5X2NvbmZpZ19tbXJfdSBtbXI7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVDsKKworCW1tci52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAobW1yLnMuZW5hYmxlKQorCQltYXBfaGlnaCgiTU1SIiwgbW1yLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBtYXBfbW1pb2hfaGlnaChpbnQgbWF4X3Bub2RlKQoreworCXVuaW9uIHV2aF9yaF9nYW1fbW1pb2hfb3ZlcmxheV9jb25maWdfbW1yX3UgbW1pb2g7CisJaW50IHNoaWZ0ID0gVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUOworCisJbW1pb2gudiA9IHV2X3JlYWRfbG9jYWxfbW1yKFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SKTsKKwlpZiAobW1pb2gucy5lbmFibGUpCisJCW1hcF9oaWdoKCJNTUlPSCIsIG1taW9oLnMuYmFzZSwgc2hpZnQsIG1hcF91Yyk7Cit9CisKIHN0YXRpYyBfX2luaXQgdm9pZCB1dl9zeXN0ZW1faW5pdCh2b2lkKQogewogCXVuaW9uIHV2aF9zaV9hZGRyX21hcF9jb25maWdfdSBtX25fY29uZmlnOwotCWludCBieXRlcywgbmlkLCBjcHUsIGxjcHUsIG5hc2lkLCBsYXN0X25hc2lkLCBibGFkZTsKLQl1bnNpZ25lZCBsb25nIG1tcl9iYXNlOworCXVuaW9uIHV2aF9ub2RlX2lkX3Ugbm9kZV9pZDsKKwl1bnNpZ25lZCBsb25nIGdub2RlX3VwcGVyLCBsb3dtZW1fcmVkaXJfYmFzZSwgbG93bWVtX3JlZGlyX3NpemU7CisJaW50IGJ5dGVzLCBuaWQsIGNwdSwgbGNwdSwgcG5vZGUsIGJsYWRlLCBpLCBqLCBtX3ZhbCwgbl92YWw7CisJaW50IG1heF9wbm9kZSA9IDA7CisJdW5zaWduZWQgbG9uZyBtbXJfYmFzZSwgcHJlc2VudDsKKworCW1hcF9sb3dfbW1ycygpOwogCiAJbV9uX2NvbmZpZy52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX1NJX0FERFJfTUFQX0NPTkZJRyk7CisJbV92YWwgPSBtX25fY29uZmlnLnMubV9za3Q7CisJbl92YWwgPSBtX25fY29uZmlnLnMubl9za3Q7CiAJbW1yX2Jhc2UgPQogCSAgICB1dl9yZWFkX2xvY2FsX21tcihVVkhfUkhfR0FNX01NUl9PVkVSTEFZX0NPTkZJR19NTVIpICYKIAkgICAgflVWX01NUl9FTkFCTEU7CiAJcHJpbnRrKEtFUk5fREVCVUcgIlVWOiBnbG9iYWwgTU1SIGJhc2UgMHglbHhcbiIsIG1tcl9iYXNlKTsKIAotCWxhc3RfbmFzaWQgPSAtMTsKLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0JCW5pZCA9IGNwdV90b19ub2RlKGNwdSk7Ci0JCW5hc2lkID0gdXZfYXBpY2lkX3RvX25hc2lkKHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkpOwotCQlpZiAobmFzaWQgIT0gbGFzdF9uYXNpZCkKLQkJCXV2X3Bvc3NpYmxlX2JsYWRlcysrOwotCQlsYXN0X25hc2lkID0gbmFzaWQ7Ci0JfQorCWZvcihpID0gMDsgaSA8IFVWSF9OT0RFX1BSRVNFTlRfVEFCTEVfREVQVEg7IGkrKykKKwkJdXZfcG9zc2libGVfYmxhZGVzICs9CisJCSAgaHdlaWdodDY0KHV2X3JlYWRfbG9jYWxfbW1yKCBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFICsgaSAqIDgpKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiVVY6IEZvdW5kICVkIGJsYWRlc1xuIiwgdXZfbnVtX3Bvc3NpYmxlX2JsYWRlcygpKTsKIAogCWJ5dGVzID0gc2l6ZW9mKHN0cnVjdCB1dl9ibGFkZV9pbmZvKSAqIHV2X251bV9wb3NzaWJsZV9ibGFkZXMoKTsKIAl1dl9ibGFkZV9pbmZvID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhieXRlcyk7CiAKKwlnZXRfbG93bWVtX3JlZGlyZWN0KCZsb3dtZW1fcmVkaXJfYmFzZSwgJmxvd21lbV9yZWRpcl9zaXplKTsKKwogCWJ5dGVzID0gc2l6ZW9mKHV2X25vZGVfdG9fYmxhZGVbMF0pICogbnVtX3Bvc3NpYmxlX25vZGVzKCk7CiAJdXZfbm9kZV90b19ibGFkZSA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoYnl0ZXMpOwogCW1lbXNldCh1dl9ub2RlX3RvX2JsYWRlLCAyNTUsIGJ5dGVzKTsKQEAgLTIwMCw0MyArMzA5LDYyIEBACiAJdXZfY3B1X3RvX2JsYWRlID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhieXRlcyk7CiAJbWVtc2V0KHV2X2NwdV90b19ibGFkZSwgMjU1LCBieXRlcyk7CiAKLQlsYXN0X25hc2lkID0gLTE7Ci0JYmxhZGUgPSAtMTsKLQlsY3B1ID0gLTE7Ci0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotCQluaWQgPSBjcHVfdG9fbm9kZShjcHUpOwotCQluYXNpZCA9IHV2X2FwaWNpZF90b19uYXNpZChwZXJfY3B1KHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpKTsKLQkJaWYgKG5hc2lkICE9IGxhc3RfbmFzaWQpIHsKLQkJCWJsYWRlKys7Ci0JCQlsY3B1ID0gLTE7Ci0JCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NpYmxlX2NwdXMgPSAwOworCWJsYWRlID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgVVZIX05PREVfUFJFU0VOVF9UQUJMRV9ERVBUSDsgaSsrKSB7CisJCXByZXNlbnQgPSB1dl9yZWFkX2xvY2FsX21tcihVVkhfTk9ERV9QUkVTRU5UX1RBQkxFICsgaSAqIDgpOworCQlmb3IgKGogPSAwOyBqIDwgNjQ7IGorKykgeworCQkJaWYgKCF0ZXN0X2JpdChqLCAmcHJlc2VudCkpCisJCQkJY29udGludWU7CisJCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5wbm9kZSA9IChpICogNjQgKyBqKTsKKwkJCXV2X2JsYWRlX2luZm9bYmxhZGVdLm5yX3Bvc3NpYmxlX2NwdXMgPSAwOwogCQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubnJfb25saW5lX2NwdXMgPSAwOworCQkJYmxhZGUrKzsKIAkJfQotCQlsYXN0X25hc2lkID0gbmFzaWQ7Ci0JCWxjcHUrKzsKKwl9CiAKLQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1fdmFsID0gbV9uX2NvbmZpZy5zLm1fc2t0OwotCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bl92YWwgPSBtX25fY29uZmlnLnMubl9za3Q7CisJbm9kZV9pZC52ID0gdXZfcmVhZF9sb2NhbF9tbXIoVVZIX05PREVfSUQpOworCWdub2RlX3VwcGVyID0gKCgodW5zaWduZWQgbG9uZylub2RlX2lkLnMubm9kZV9pZCkgJgorCQkgICAgICAgfigoMSA8PCBuX3ZhbCkgLSAxKSkgPDwgbV92YWw7CisKKwlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKKwkJbmlkID0gY3B1X3RvX25vZGUoY3B1KTsKKwkJcG5vZGUgPSB1dl9hcGljaWRfdG9fcG5vZGUocGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSk7CisJCWJsYWRlID0gYm9vdF9wbm9kZV90b19ibGFkZShwbm9kZSk7CisJCWxjcHUgPSB1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NzaWJsZV9jcHVzOworCQl1dl9ibGFkZV9pbmZvW2JsYWRlXS5ucl9wb3NzaWJsZV9jcHVzKys7CisKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmxvd21lbV9yZW1hcF9iYXNlID0gbG93bWVtX3JlZGlyX2Jhc2U7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5sb3dtZW1fcmVtYXBfdG9wID0KKwkJCQkJbG93bWVtX3JlZGlyX2Jhc2UgKyBsb3dtZW1fcmVkaXJfc2l6ZTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPm1fdmFsID0gbV92YWw7CisJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5uX3ZhbCA9IG1fdmFsOwogCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+bnVtYV9ibGFkZV9pZCA9IGJsYWRlOwogCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+YmxhZGVfcHJvY2Vzc29yX2lkID0gbGNwdTsKLQkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmxvY2FsX25hc2lkID0gbmFzaWQ7Ci0JCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5nbm9kZV91cHBlciA9Ci0JCSAgICBuYXNpZCAmIH4oKDEgPDwgdXZfaHViX2luZm8tPm5fdmFsKSAtIDEpOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+cG5vZGUgPSBwbm9kZTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPnBub2RlX21hc2sgPSAoMSA8PCBuX3ZhbCkgLSAxOworCQl1dl9jcHVfaHViX2luZm8oY3B1KS0+Z3BhX21hc2sgPSAoMSA8PCAobV92YWwgKyBuX3ZhbCkpIC0gMTsKKwkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmdub2RlX3VwcGVyID0gZ25vZGVfdXBwZXI7CiAJCXV2X2NwdV9odWJfaW5mbyhjcHUpLT5nbG9iYWxfbW1yX2Jhc2UgPSBtbXJfYmFzZTsKIAkJdXZfY3B1X2h1Yl9pbmZvKGNwdSktPmNvaGVyZW5jeV9kb21haW5fbnVtYmVyID0gMDsvKiBaWlogKi8KLQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubmFzaWQgPSBuYXNpZDsKLQkJdXZfYmxhZGVfaW5mb1tibGFkZV0ubnJfcG9zaWJsZV9jcHVzKys7CiAJCXV2X25vZGVfdG9fYmxhZGVbbmlkXSA9IGJsYWRlOwogCQl1dl9jcHVfdG9fYmxhZGVbY3B1XSA9IGJsYWRlOworCQltYXhfcG5vZGUgPSBtYXgocG5vZGUsIG1heF9wbm9kZSk7CiAKLQkJcHJpbnRrKEtFUk5fREVCVUcgIlVWIGNwdSAlZCwgYXBpY2lkIDB4JXgsIG5hc2lkICVkLCBuaWQgJWRcbiIsCi0JCSAgICAgICBjcHUsIHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSksIG5hc2lkLCBuaWQpOwotCQlwcmludGsoS0VSTl9ERUJVRyAiVVYgICBsY3B1ICVkLCBibGFkZSAlZFxuIiwgbGNwdSwgYmxhZGUpOworCQlwcmludGsoS0VSTl9ERUJVRyAiVVY6IGNwdSAlZCwgYXBpY2lkIDB4JXgsIHBub2RlICVkLCBuaWQgJWQsICIKKwkJCSJsY3B1ICVkLCBibGFkZSAlZFxuIiwKKwkJCWNwdSwgcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3B1KSwgcG5vZGUsIG5pZCwKKwkJCWxjcHUsIGJsYWRlKTsKIAl9CisKKwltYXBfZ3J1X2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfbW1yX2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfY29uZmlnX2hpZ2gobWF4X3Bub2RlKTsKKwltYXBfbW1pb2hfaGlnaChtYXhfcG5vZGUpOwogfQogCiAvKgogICogQ2FsbGVkIG9uIGVhY2ggY3B1IHRvIGluaXRpYWxpemUgdGhlIHBlcl9jcHUgVVYgZGF0YSBhcmVhLgorICogCVpaWiBob3RwbHVnIG5vdCBzdXBwb3J0ZWQgeWV0CiAgKi8KIHZvaWQgX19jcHVpbml0IHV2X2NwdV9pbml0KHZvaWQpCiB7CkBAIC0yNDYsNSArMzc0LDUgQEAKIAl1dl9ibGFkZV9pbmZvW3V2X251bWFfYmxhZGVfaWQoKV0ubnJfb25saW5lX2NwdXMrKzsKIAogCWlmIChnZXRfdXZfc3lzdGVtX3R5cGUoKSA9PSBVVl9OT05fVU5JUVVFX0FQSUMpCi0JCXNldF94MmFwaWNfZXh0cmFfYml0cyh1dl9odWJfaW5mby0+bG9jYWxfbmFzaWQpOworCQlzZXRfeDJhcGljX2V4dHJhX2JpdHModXZfaHViX2luZm8tPnBub2RlKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9nZW9kZV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2dlb2RlXzMyLmMKaW5kZXggZThlZGQ2My4uOWIwOGU4NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2dlb2RlXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2dlb2RlXzMyLmMKQEAgLTE2Niw2ICsxNjYsOCBAQAogCXN0YXRpYyBpbnQgaGFzX3ZzYTIgPSAtMTsKIAogCWlmIChoYXNfdnNhMiA9PSAtMSkgeworCQl1MTYgdmFsOworCiAJCS8qCiAJCSAqIFRoZSBWU0EgaGFzIHZpcnR1YWwgcmVnaXN0ZXJzIHRoYXQgd2UgY2FuIHF1ZXJ5IGZvciBhCiAJCSAqIHNpZ25hdHVyZS4KQEAgLTE3Myw3ICsxNzUsOCBAQAogCQlvdXR3KFZTQV9WUl9VTkxPQ0ssIFZTQV9WUkNfSU5ERVgpOwogCQlvdXR3KFZTQV9WUl9TSUdOQVRVUkUsIFZTQV9WUkNfSU5ERVgpOwogCi0JCWhhc192c2EyID0gKGludyhWU0FfVlJDX0RBVEEpID09IFZTQV9TSUcpOworCQl2YWwgPSBpbncoVlNBX1ZSQ19EQVRBKTsKKwkJaGFzX3ZzYTIgPSAodmFsID09IEFNRF9WU0FfU0lHIHx8IHZhbCA9PSBHU1dfVlNBX1NJRyk7CiAJfQogCiAJcmV0dXJuIGhhc192c2EyOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWQuYyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U2NmJkMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkLmMKQEAgLTAsMCArMSw1NSBAQAorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKworI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9iaW9zX2ViZGEuaD4KKworI2RlZmluZSBCSU9TX0xPV01FTV9LSUxPQllURVMgMHg0MTMKKworLyoKKyAqIFRoZSBCSU9TIHBsYWNlcyB0aGUgRUJEQS9YQkRBIGF0IHRoZSB0b3Agb2YgY29udmVudGlvbmFsCisgKiBtZW1vcnksIGFuZCB1c3VhbGx5IGRlY3JlYXNlcyB0aGUgcmVwb3J0ZWQgYW1vdW50IG9mCisgKiBjb252ZW50aW9uYWwgbWVtb3J5IChpbnQgMHgxMikgdG9vLiBUaGlzIGFsc28gY29udGFpbnMgYQorICogd29ya2Fyb3VuZCBmb3IgRGVsbCBzeXN0ZW1zIHRoYXQgbmVnbGVjdCB0byByZXNlcnZlIEVCREEuCisgKiBUaGUgc2FtZSB3b3JrYXJvdW5kIGFsc28gYXZvaWRzIGEgcHJvYmxlbSB3aXRoIHRoZSBBTUQ3NjhNUFgKKyAqIGNoaXBzZXQ6IHJlc2VydmUgYSBwYWdlIGJlZm9yZSBWR0EgdG8gcHJldmVudCBQQ0kgcHJlZmV0Y2gKKyAqIGludG8gaXQgKGVycmF0YSAjNTYpLiBVc3VhbGx5IHRoZSBwYWdlIGlzIHJlc2VydmVkIGFueXdheXMsCisgKiB1bmxlc3MgeW91IGhhdmUgbm8gUFMvMiBtb3VzZSBwbHVnZ2VkIGluLgorICovCit2b2lkIF9faW5pdCByZXNlcnZlX2ViZGFfcmVnaW9uKHZvaWQpCit7CisJdW5zaWduZWQgaW50IGxvd21lbSwgZWJkYV9hZGRyOworCisJLyogVG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgRUJEQSBhbmQgdGhlICovCisJLyogZW5kIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIHdlIG5lZWQgdG8gbG9vayBhdCAqLworCS8qIHRoZSBCSU9TIGRhdGEgYXJlYS4gSW4gYSBwYXJhdmlydHVhbCBlbnZpcm9ubWVudCAqLworCS8qIHRoYXQgYXJlYSBpcyBhYnNlbnQuIFdlJ2xsIGp1c3QgaGF2ZSB0byBhc3N1bWUgKi8KKwkvKiB0aGF0IHRoZSBwYXJhdmlydCBjYXNlIGNhbiBoYW5kbGUgbWVtb3J5IHNldHVwICovCisJLyogY29ycmVjdGx5LCB3aXRob3V0IG91ciBoZWxwLiAqLworCWlmIChwYXJhdmlydF9lbmFibGVkKCkpCisJCXJldHVybjsKKworCS8qIGVuZCBvZiBsb3cgKGNvbnZlbnRpb25hbCkgbWVtb3J5ICovCisJbG93bWVtID0gKih1bnNpZ25lZCBzaG9ydCAqKV9fdmEoQklPU19MT1dNRU1fS0lMT0JZVEVTKTsKKwlsb3dtZW0gPDw9IDEwOworCisJLyogc3RhcnQgb2YgRUJEQSBhcmVhICovCisJZWJkYV9hZGRyID0gZ2V0X2Jpb3NfZWJkYSgpOworCisJLyogRml4dXA6IGJpb3MgcHV0cyBhbiBFQkRBIGluIHRoZSB0b3AgNjRLIHNlZ21lbnQgKi8KKwkvKiBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCBidXQgZG9lcyBub3QgYWRqdXN0IGxvd21lbS4gKi8KKwlpZiAoKGxvd21lbSAtIGViZGFfYWRkcikgPD0gMHgxMDAwMCkKKwkJbG93bWVtID0gZWJkYV9hZGRyOworCisJLyogRml4dXA6IGJpb3MgZG9lcyBub3QgcmVwb3J0IGFuIEVCREEgYXQgYWxsLiAqLworCS8qIFNvbWUgb2xkIERlbGxzIHNlZW0gdG8gbmVlZCA0ayBhbnlob3cgKGJ1Z3ppbGxhIDI5OTApICovCisJaWYgKChlYmRhX2FkZHIgPT0gMCkgJiYgKGxvd21lbSA+PSAweDlmMDAwKSkKKwkJbG93bWVtID0gMHg5ZjAwMDsKKworCS8qIFBhcmFub2lhOiBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQuLi4gKi8KKwlpZiAoKGxvd21lbSA9PSAwKSB8fCAobG93bWVtID49IDB4MTAwMDAwKSkKKwkJbG93bWVtID0gMHg5ZjAwMDsKKworCS8qIHJlc2VydmUgYWxsIG1lbW9yeSBiZXR3ZWVuIGxvd21lbSBhbmQgdGhlIDFNQiBtYXJrICovCisJcmVzZXJ2ZV9lYXJseV9vdmVybGFwX29rKGxvd21lbSwgMHgxMDAwMDAsICJCSU9TIHJlc2VydmVkIik7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDMyLmMKaW5kZXggM2RiMDU5MC4uZmExZDI1ZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWQzMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkMzIuYwpAQCAtOCw3ICs4LDM0IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YXJ0X2tlcm5lbC5oPgogCisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisKIHZvaWQgX19pbml0IGkzODZfc3RhcnRfa2VybmVsKHZvaWQpCiB7CisJcmVzZXJ2ZV9lYXJseShfX3BhX3N5bWJvbCgmX3RleHQpLCBfX3BhX3N5bWJvbCgmX2VuZCksICJURVhUIERBVEEgQlNTIik7CisKKyNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKKwkvKiBSZXNlcnZlIElOSVRSRCAqLworCWlmIChib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXIgJiYgYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2UpIHsKKwkJdTY0IHJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKKwkJdTY0IHJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOworCQl1NjQgcmFtZGlza19lbmQgICA9IHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemU7CisJCXJlc2VydmVfZWFybHkocmFtZGlza19pbWFnZSwgcmFtZGlza19lbmQsICJSQU1ESVNLIik7CisJfQorI2VuZGlmCisJcmVzZXJ2ZV9lYXJseShpbml0X3BnX3RhYmxlc19zdGFydCwgaW5pdF9wZ190YWJsZXNfZW5kLAorCQkJIklOSVRfUEdfVEFCTEUiKTsKKworCXJlc2VydmVfZWJkYV9yZWdpb24oKTsKKworCS8qCisJICogQXQgdGhpcyBwb2ludCBldmVyeXRoaW5nIHN0aWxsIG5lZWRlZCBmcm9tIHRoZSBib290IGxvYWRlcgorCSAqIG9yIEJJT1Mgb3Iga2VybmVsIHRleHQgc2hvdWxkIGJlIGVhcmx5IHJlc2VydmVkIG9yIG1hcmtlZCBub3QKKwkgKiBSQU0gaW4gZTgyMC4gQWxsIG90aGVyIG1lbW9yeSBpcyBmcmVlIGdhbWUuCisJICovCisKIAlzdGFydF9rZXJuZWwoKTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYwppbmRleCBlMjVjNTdiLi5jOTc4MTk4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jCkBAIC0yNSw2ICsyNSwyMCBAQAogI2luY2x1ZGUgPGFzbS9lODIwLmg+CiAjaW5jbHVkZSA8YXNtL2Jpb3NfZWJkYS5oPgogCisvKiBib290IGNwdSBwZGEgKi8KK3N0YXRpYyBzdHJ1Y3QgeDg2NjRfcGRhIF9ib290X2NwdV9wZGEgX19yZWFkX21vc3RseTsKKworI2lmZGVmIENPTkZJR19TTVAKKy8qCisgKiBXZSBpbnN0YWxsIGFuIGVtcHR5IGNwdV9wZGEgcG9pbnRlciB0YWJsZSB0byBpbmRpY2F0ZSB0byBlYXJseSB1c2VycworICogKG51bWFfc2V0X25vZGUpIHRoYXQgdGhlIGNwdV9wZGEgcG9pbnRlciB0YWJsZSBmb3IgY3B1cyBvdGhlciB0aGFuCisgKiB0aGUgYm9vdCBjcHUgaXMgbm90IHlldCBzZXR1cC4KKyAqLworc3RhdGljIHN0cnVjdCB4ODY2NF9wZGEgKl9fY3B1X3BkYVtOUl9DUFVTXSBfX2luaXRkYXRhOworI2Vsc2UKK3N0YXRpYyBzdHJ1Y3QgeDg2NjRfcGRhICpfX2NwdV9wZGFbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKKyNlbmRpZgorCiBzdGF0aWMgdm9pZCBfX2luaXQgemFwX2lkZW50aXR5X21hcHBpbmdzKHZvaWQpCiB7CiAJcGdkX3QgKnBnZCA9IHBnZF9vZmZzZXRfaygwVUwpOwpAQCAtNTEsNzQgKzY1LDYgQEAKIAl9CiB9CiAKLSNkZWZpbmUgQklPU19MT1dNRU1fS0lMT0JZVEVTIDB4NDEzCi0KLS8qCi0gKiBUaGUgQklPUyBwbGFjZXMgdGhlIEVCREEvWEJEQSBhdCB0aGUgdG9wIG9mIGNvbnZlbnRpb25hbAotICogbWVtb3J5LCBhbmQgdXN1YWxseSBkZWNyZWFzZXMgdGhlIHJlcG9ydGVkIGFtb3VudCBvZgotICogY29udmVudGlvbmFsIG1lbW9yeSAoaW50IDB4MTIpIHRvby4gVGhpcyBhbHNvIGNvbnRhaW5zIGEKLSAqIHdvcmthcm91bmQgZm9yIERlbGwgc3lzdGVtcyB0aGF0IG5lZ2xlY3QgdG8gcmVzZXJ2ZSBFQkRBLgotICogVGhlIHNhbWUgd29ya2Fyb3VuZCBhbHNvIGF2b2lkcyBhIHByb2JsZW0gd2l0aCB0aGUgQU1ENzY4TVBYCi0gKiBjaGlwc2V0OiByZXNlcnZlIGEgcGFnZSBiZWZvcmUgVkdBIHRvIHByZXZlbnQgUENJIHByZWZldGNoCi0gKiBpbnRvIGl0IChlcnJhdGEgIzU2KS4gVXN1YWxseSB0aGUgcGFnZSBpcyByZXNlcnZlZCBhbnl3YXlzLAotICogdW5sZXNzIHlvdSBoYXZlIG5vIFBTLzIgbW91c2UgcGx1Z2dlZCBpbi4KLSAqLwotc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfZWJkYV9yZWdpb24odm9pZCkKLXsKLQl1bnNpZ25lZCBpbnQgbG93bWVtLCBlYmRhX2FkZHI7Ci0KLQkvKiBUbyBkZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSBFQkRBIGFuZCB0aGUgKi8KLQkvKiBlbmQgb2YgY29udmVudGlvbmFsIG1lbW9yeSwgd2UgbmVlZCB0byBsb29rIGF0ICovCi0JLyogdGhlIEJJT1MgZGF0YSBhcmVhLiBJbiBhIHBhcmF2aXJ0dWFsIGVudmlyb25tZW50ICovCi0JLyogdGhhdCBhcmVhIGlzIGFic2VudC4gV2UnbGwganVzdCBoYXZlIHRvIGFzc3VtZSAqLwotCS8qIHRoYXQgdGhlIHBhcmF2aXJ0IGNhc2UgY2FuIGhhbmRsZSBtZW1vcnkgc2V0dXAgKi8KLQkvKiBjb3JyZWN0bHksIHdpdGhvdXQgb3VyIGhlbHAuICovCi0JaWYgKHBhcmF2aXJ0X2VuYWJsZWQoKSkKLQkJcmV0dXJuOwotCi0JLyogZW5kIG9mIGxvdyAoY29udmVudGlvbmFsKSBtZW1vcnkgKi8KLQlsb3dtZW0gPSAqKHVuc2lnbmVkIHNob3J0ICopX192YShCSU9TX0xPV01FTV9LSUxPQllURVMpOwotCWxvd21lbSA8PD0gMTA7Ci0KLQkvKiBzdGFydCBvZiBFQkRBIGFyZWEgKi8KLQllYmRhX2FkZHIgPSBnZXRfYmlvc19lYmRhKCk7Ci0KLQkvKiBGaXh1cDogYmlvcyBwdXRzIGFuIEVCREEgaW4gdGhlIHRvcCA2NEsgc2VnbWVudCAqLwotCS8qIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIGJ1dCBkb2VzIG5vdCBhZGp1c3QgbG93bWVtLiAqLwotCWlmICgobG93bWVtIC0gZWJkYV9hZGRyKSA8PSAweDEwMDAwKQotCQlsb3dtZW0gPSBlYmRhX2FkZHI7Ci0KLQkvKiBGaXh1cDogYmlvcyBkb2VzIG5vdCByZXBvcnQgYW4gRUJEQSBhdCBhbGwuICovCi0JLyogU29tZSBvbGQgRGVsbHMgc2VlbSB0byBuZWVkIDRrIGFueWhvdyAoYnVnemlsbGEgMjk5MCkgKi8KLQlpZiAoKGViZGFfYWRkciA9PSAwKSAmJiAobG93bWVtID49IDB4OWYwMDApKQotCQlsb3dtZW0gPSAweDlmMDAwOwotCi0JLyogUGFyYW5vaWE6IHNob3VsZCBuZXZlciBoYXBwZW4sIGJ1dC4uLiAqLwotCWlmICgobG93bWVtID09IDApIHx8IChsb3dtZW0gPj0gMHgxMDAwMDApKQotCQlsb3dtZW0gPSAweDlmMDAwOwotCi0JLyogcmVzZXJ2ZSBhbGwgbWVtb3J5IGJldHdlZW4gbG93bWVtIGFuZCB0aGUgMU1CIG1hcmsgKi8KLQlyZXNlcnZlX2Vhcmx5KGxvd21lbSwgMHgxMDAwMDAsICJCSU9TIHJlc2VydmVkIik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX3NldHVwX2RhdGEodm9pZCkKLXsKLQlzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YTsKLQl1bnNpZ25lZCBsb25nIHBhX2RhdGE7Ci0JY2hhciBidWZbMzJdOwotCi0JaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQotCQlyZXR1cm47Ci0JcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOwotCXdoaWxlIChwYV9kYXRhKSB7Ci0JCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIHNpemVvZigqZGF0YSkpOwotCQlzcHJpbnRmKGJ1ZiwgInNldHVwIGRhdGEgJXgiLCBkYXRhLT50eXBlKTsKLQkJcmVzZXJ2ZV9lYXJseShwYV9kYXRhLCBwYV9kYXRhK3NpemVvZigqZGF0YSkrZGF0YS0+bGVuLCBidWYpOwotCQlwYV9kYXRhID0gZGF0YS0+bmV4dDsKLQkJZWFybHlfaW91bm1hcChkYXRhLCBzaXplb2YoKmRhdGEpKTsKLQl9Ci19Ci0KIHZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqIHJlYWxfbW9kZV9kYXRhKQogewogCWludCBpOwpAQCAtMTU2LDEwICsxMDIsMTcgQEAKIAogCWVhcmx5X3ByaW50aygiS2VybmVsIGFsaXZlXG4iKTsKIAotIAlmb3IgKGkgPSAwOyBpIDwgTlJfQ1BVUzsgaSsrKQotIAkJY3B1X3BkYShpKSA9ICZib290X2NwdV9wZGFbaV07Ci0KKwlfY3B1X3BkYSA9IF9fY3B1X3BkYTsKKwljcHVfcGRhKDApID0gJl9ib290X2NwdV9wZGE7CiAJcGRhX2luaXQoMCk7CisKKwllYXJseV9wcmludGsoIktlcm5lbCByZWFsbHkgYWxpdmVcbiIpOworCisJeDg2XzY0X3N0YXJ0X3Jlc2VydmF0aW9ucyhyZWFsX21vZGVfZGF0YSk7Cit9CisKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9yZXNlcnZhdGlvbnMoY2hhciAqcmVhbF9tb2RlX2RhdGEpCit7CiAJY29weV9ib290ZGF0YShfX3ZhKHJlYWxfbW9kZV9kYXRhKSk7CiAKIAlyZXNlcnZlX2Vhcmx5KF9fcGFfc3ltYm9sKCZfdGV4dCksIF9fcGFfc3ltYm9sKCZfZW5kKSwgIlRFWFQgREFUQSBCU1MiKTsKQEAgLTE3NSw3ICsxMjgsNiBAQAogI2VuZGlmCiAKIAlyZXNlcnZlX2ViZGFfcmVnaW9uKCk7Ci0JcmVzZXJ2ZV9zZXR1cF9kYXRhKCk7CiAKIAkvKgogCSAqIEF0IHRoaXMgcG9pbnQgZXZlcnl0aGluZyBzdGlsbCBuZWVkZWQgZnJvbSB0aGUgYm9vdCBsb2FkZXIKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCmluZGV4IGIyY2M3MzcuLmY2N2U5MzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKKysrIGIvYXJjaC94ODYva2VybmVsL2hlYWRfMzIuUwpAQCAtMTg5LDExICsxODksMTIgQEAKIAkgKiB0aGlzIHN0YWdlLgogCSAqLwogCi0jZGVmaW5lIEtQTURTICgoMHgxMDAwMDAwMDAtX19QQUdFX09GRlNFVCkgPj4gMzApIC8qIE51bWJlciBvZiBrZXJuZWwgUE1EcyAqLworI2RlZmluZSBLUE1EUyAoKCgtX19QQUdFX09GRlNFVCkgPj4gMzApICYgMykgLyogTnVtYmVyIG9mIGtlcm5lbCBQTURzICovCiAKIAl4b3JsICVlYngsJWVieAkJCQkvKiAlZWJ4IGlzIGtlcHQgYXQgemVybyAqLwogCiAJbW92bCAkcGEocGcwKSwgJWVkaQorCW1vdmwgJWVkaSwgcGEoaW5pdF9wZ190YWJsZXNfc3RhcnQpCiAJbW92bCAkcGEoc3dhcHBlcl9wZ19wbWQpLCAlZWR4CiAJbW92bCAkUFRFX0FUVFIsICVlYXgKIDEwOgpAQCAtMjE5LDYgKzIyMCw4IEBACiAJamIgMTBiCiAxOgogCW1vdmwgJWVkaSxwYShpbml0X3BnX3RhYmxlc19lbmQpCisJc2hybCAkMTIsICVlYXgKKwltb3ZsICVlYXgsIHBhKG1heF9wZm5fbWFwcGVkKQogCiAJLyogRG8gZWFybHkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGZpeG1hcCBhcmVhICovCiAJbW92bCAkcGEoc3dhcHBlcl9wZ19maXhtYXApK1BERV9BVFRSLCVlYXgKQEAgLTIyOCw2ICsyMzEsNyBAQAogcGFnZV9wZGVfb2Zmc2V0ID0gKF9fUEFHRV9PRkZTRVQgPj4gMjApOwogCiAJbW92bCAkcGEocGcwKSwgJWVkaQorCW1vdmwgJWVkaSwgcGEoaW5pdF9wZ190YWJsZXNfc3RhcnQpCiAJbW92bCAkcGEoc3dhcHBlcl9wZ19kaXIpLCAlZWR4CiAJbW92bCAkUFRFX0FUVFIsICVlYXgKIDEwOgpAQCAtMjQ5LDYgKzI1Myw4IEBACiAJY21wbCAlZWJwLCVlYXgKIAlqYiAxMGIKIAltb3ZsICVlZGkscGEoaW5pdF9wZ190YWJsZXNfZW5kKQorCXNocmwgJDEyLCAlZWF4CisJbW92bCAlZWF4LCBwYShtYXhfcGZuX21hcHBlZCkKIAogCS8qIERvIGVhcmx5IGluaXRpYWxpemF0aW9uIG9mIHRoZSBmaXhtYXAgYXJlYSAqLwogCW1vdmwgJHBhKHN3YXBwZXJfcGdfZml4bWFwKStQREVfQVRUUiwlZWF4CkBAIC00NDYsMTAgKzQ1MiwxMyBAQAogCWplICAgMWYKIAltb3ZsICQoX19LRVJORUxfUEVSQ1BVKSwgJWVheAogCW1vdmwgJWVheCwlZnMJCSMgc2V0IHRoaXMgY3B1J3MgcGVyY3B1Ci0Jam1wIGluaXRpYWxpemVfc2Vjb25kYXJ5ICMgYWxsIG90aGVyIENQVXMgY2FsbCBpbml0aWFsaXplX3NlY29uZGFyeQorCW1vdmwgKHN0YWNrX3N0YXJ0KSwgJWVzcAogMToKICNlbmRpZiAvKiBDT05GSUdfU01QICovCi0Jam1wIGkzODZfc3RhcnRfa2VybmVsCisJam1wICooaW5pdGlhbF9jb2RlKQorLmFsaWduIDQKK0VOVFJZKGluaXRpYWxfY29kZSkKKwkubG9uZyBpMzg2X3N0YXJ0X2tlcm5lbAogCiAvKgogICogV2UgZGVwZW5kIG9uIEVUIHRvIGJlIGNvcnJlY3QuIFRoaXMgY2hlY2tzIGZvciAyODcvMzg3LgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzY0LlMKaW5kZXggMTBhMTk1NS4uYjA3YWM3YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hlYWRfNjQuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF82NC5TCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci1mbGFncy5oPgogCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CkBAIC0zMSw2ICszMiwxMyBAQAogICoKICAqLwogCisjZGVmaW5lIHB1ZF9pbmRleCh4KQkoKCh4KSA+PiBQVURfU0hJRlQpICYgKFBUUlNfUEVSX1BVRC0xKSkKKworTDRfUEFHRV9PRkZTRVQgPSBwZ2RfaW5kZXgoX19QQUdFX09GRlNFVCkKK0wzX1BBR0VfT0ZGU0VUID0gcHVkX2luZGV4KF9fUEFHRV9PRkZTRVQpCitMNF9TVEFSVF9LRVJORUwgPSBwZ2RfaW5kZXgoX19TVEFSVF9LRVJORUxfbWFwKQorTDNfU1RBUlRfS0VSTkVMID0gcHVkX2luZGV4KF9fU1RBUlRfS0VSTkVMX21hcCkKKwogCS50ZXh0CiAJLnNlY3Rpb24gLnRleHQuaGVhZAogCS5jb2RlNjQKQEAgLTc2LDggKzg0LDggQEAKIAkvKiBGaXh1cCB0aGUgcGh5c2ljYWwgYWRkcmVzc2VzIGluIHRoZSBwYWdlIHRhYmxlCiAJICovCiAJYWRkcQklcmJwLCBpbml0X2xldmVsNF9wZ3QgKyAwKCVyaXApCi0JYWRkcQklcmJwLCBpbml0X2xldmVsNF9wZ3QgKyAoMjU4KjgpKCVyaXApCi0JYWRkcQklcmJwLCBpbml0X2xldmVsNF9wZ3QgKyAoNTExKjgpKCVyaXApCisJYWRkcQklcmJwLCBpbml0X2xldmVsNF9wZ3QgKyAoTDRfUEFHRV9PRkZTRVQqOCkoJXJpcCkKKwlhZGRxCSVyYnAsIGluaXRfbGV2ZWw0X3BndCArIChMNF9TVEFSVF9LRVJORUwqOCkoJXJpcCkKIAogCWFkZHEJJXJicCwgbGV2ZWwzX2lkZW50X3BndCArIDAoJXJpcCkKIApAQCAtMTI4LDcgKzEzNiw3IEBACiAJLyogRml4dXAgcGh5c19iYXNlICovCiAJYWRkcQklcmJwLCBwaHlzX2Jhc2UoJXJpcCkKIAotI2lmZGVmIENPTkZJR19TTVAKKyNpZmRlZiBDT05GSUdfWDg2X1RSQU1QT0xJTkUKIAlhZGRxCSVyYnAsIHRyYW1wb2xpbmVfbGV2ZWw0X3BndCArIDAoJXJpcCkKIAlhZGRxCSVyYnAsIHRyYW1wb2xpbmVfbGV2ZWw0X3BndCArICg1MTEqOCkoJXJpcCkKICNlbmRpZgpAQCAtMTU0LDkgKzE2Miw3IEBACiAJICovCiAKIAkvKiBFbmFibGUgUEFFIG1vZGUgYW5kIFBHRSAqLwotCXhvcnEJJXJheCwgJXJheAotCWJ0c3EJJDUsICVyYXgKLQlidHNxCSQ3LCAlcmF4CisJbW92bAkkKFg4Nl9DUjRfUEFFIHwgWDg2X0NSNF9QR0UpLCAlZWF4CiAJbW92cQklcmF4LCAlY3I0CiAKIAkvKiBTZXR1cCBlYXJseSBib290IHN0YWdlIDQgbGV2ZWwgcGFnZXRhYmxlcy4gKi8KQEAgLTE4NCwxOSArMTkwLDE1IEBACiAxOgl3cm1zcgkJCQkvKiBNYWtlIGNoYW5nZXMgZWZmZWN0aXZlICovCiAKIAkvKiBTZXR1cCBjcjAgKi8KLSNkZWZpbmUgQ1IwX1BNCQkJCTEJCS8qIHByb3RlY3RlZCBtb2RlICovCi0jZGVmaW5lIENSMF9NUAkJCQkoMTw8MSkKLSNkZWZpbmUgQ1IwX0VUCQkJCSgxPDw0KQotI2RlZmluZSBDUjBfTkUJCQkJKDE8PDUpCi0jZGVmaW5lIENSMF9XUAkJCQkoMTw8MTYpCi0jZGVmaW5lIENSMF9BTQkJCQkoMTw8MTgpCi0jZGVmaW5lIENSMF9QQUdJTkcgCQkJKDE8PDMxKQotCW1vdmwgJENSMF9QTXxDUjBfTVB8Q1IwX0VUfENSMF9ORXxDUjBfV1B8Q1IwX0FNfENSMF9QQUdJTkcsJWVheAorI2RlZmluZSBDUjBfU1RBVEUJKFg4Nl9DUjBfUEUgfCBYODZfQ1IwX01QIHwgWDg2X0NSMF9FVCB8IFwKKwkJCSBYODZfQ1IwX05FIHwgWDg2X0NSMF9XUCB8IFg4Nl9DUjBfQU0gfCBcCisJCQkgWDg2X0NSMF9QRykKKwltb3ZsCSRDUjBfU1RBVEUsICVlYXgKIAkvKiBNYWtlIGNoYW5nZXMgZWZmZWN0aXZlICovCiAJbW92cQklcmF4LCAlY3IwCiAKIAkvKiBTZXR1cCBhIGJvb3QgdGltZSBzdGFjayAqLwotCW1vdnEgaW5pdF9yc3AoJXJpcCksJXJzcAorCW1vdnEgc3RhY2tfc3RhcnQoJXJpcCksJXJzcAogCiAJLyogemVybyBFRkxBR1MgYWZ0ZXIgc2V0dGluZyByc3AgKi8KIAlwdXNocSAkMApAQCAtMjA4LDcgKzIxMCw3IEBACiAJICogYWRkcmVzc2VzIHdoZXJlIHdlJ3JlIGN1cnJlbnRseSBydW5uaW5nIG9uLiBXZSBoYXZlIHRvIGRvIHRoYXQgaGVyZQogCSAqIGJlY2F1c2UgaW4gMzJiaXQgd2UgY291bGRuJ3QgbG9hZCBhIDY0Yml0IGxpbmVhciBhZGRyZXNzLgogCSAqLwotCWxnZHQJY3B1X2dkdF9kZXNjciglcmlwKQorCWxnZHQJZWFybHlfZ2R0X2Rlc2NyKCVyaXApCiAKIAkvKiBzZXQgdXAgZGF0YSBzZWdtZW50cy4gYWN0dWFsbHkgMCB3b3VsZCBkbyB0b28gKi8KIAltb3ZsICRfX0tFUk5FTF9EUywlZWF4CkBAIC0yNTcsOCArMjU5LDkgQEAKIAkucXVhZAl4ODZfNjRfc3RhcnRfa2VybmVsCiAJX19GSU5JVERBVEEKIAotCUVOVFJZKGluaXRfcnNwKQorCUVOVFJZKHN0YWNrX3N0YXJ0KQogCS5xdWFkICBpbml0X3RocmVhZF91bmlvbitUSFJFQURfU0laRS04CisJLndvcmQgIDAKIAogYmFkX2FkZHJlc3M6CiAJam1wIGJhZF9hZGRyZXNzCkBAIC0zMjcsMTEgKzMzMCwxMSBAQAogRU5UUlkobmFtZSkKIAogLyogQXV0b21hdGUgdGhlIGNyZWF0aW9uIG9mIDEgdG8gMSBtYXBwaW5nIHBtZCBlbnRyaWVzICovCi0jZGVmaW5lIFBNRFMoU1RBUlQsIFBFUk0sIENPVU5UKQkJXAotCWkgPSAwIDsJCQkJCVwKLQkucmVwdCAoQ09VTlQpIDsJCQkJXAotCS5xdWFkCShTVEFSVCkgKyAoaSA8PCAyMSkgKyAoUEVSTSkgOwlcCi0JaSA9IGkgKyAxIDsJCQkJXAorI2RlZmluZSBQTURTKFNUQVJULCBQRVJNLCBDT1VOVCkJCQlcCisJaSA9IDAgOwkJCQkJCVwKKwkucmVwdCAoQ09VTlQpIDsJCQkJCVwKKwkucXVhZAkoU1RBUlQpICsgKGkgPDwgUE1EX1NISUZUKSArIChQRVJNKSA7CVwKKwlpID0gaSArIDEgOwkJCQkJXAogCS5lbmRyCiAKIAkvKgpAQCAtMzQyLDkgKzM0NSw5IEBACiAJICovCiBORVhUX1BBR0UoaW5pdF9sZXZlbDRfcGd0KQogCS5xdWFkCWxldmVsM19pZGVudF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfS0VSTlBHX1RBQkxFCi0JLmZpbGwJMjU3LDgsMAorCS5vcmcJaW5pdF9sZXZlbDRfcGd0ICsgTDRfUEFHRV9PRkZTRVQqOCwgMAogCS5xdWFkCWxldmVsM19pZGVudF9wZ3QgLSBfX1NUQVJUX0tFUk5FTF9tYXAgKyBfS0VSTlBHX1RBQkxFCi0JLmZpbGwJMjUyLDgsMAorCS5vcmcJaW5pdF9sZXZlbDRfcGd0ICsgTDRfU1RBUlRfS0VSTkVMKjgsIDAKIAkvKiAoMl40OC0oMioxMDI0KjEwMjQqMTAyNCkpLygyXjM5KSA9IDUxMSAqLwogCS5xdWFkCWxldmVsM19rZXJuZWxfcGd0IC0gX19TVEFSVF9LRVJORUxfbWFwICsgX1BBR0VfVEFCTEUKIApAQCAtMzUzLDcgKzM1Niw3IEBACiAJLmZpbGwJNTExLDgsMAogCiBORVhUX1BBR0UobGV2ZWwzX2tlcm5lbF9wZ3QpCi0JLmZpbGwJNTEwLDgsMAorCS5maWxsCUwzX1NUQVJUX0tFUk5FTCw4LDAKIAkvKiAoMl40OC0oMioxMDI0KjEwMjQqMTAyNCktKCgyXjM5KSo1MTEpKS8oMl4zMCkgPSA1MTAgKi8KIAkucXVhZAlsZXZlbDJfa2VybmVsX3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9LRVJOUEdfVEFCTEUKIAkucXVhZAlsZXZlbDJfZml4bWFwX3BndCAtIF9fU1RBUlRfS0VSTkVMX21hcCArIF9QQUdFX1RBQkxFCkBAIC0zODQsNyArMzg3LDcgQEAKIAkgKiAgSWYgeW91IHdhbnQgdG8gaW5jcmVhc2UgdGhpcyB0aGVuIGluY3JlYXNlIE1PRFVMRVNfVkFERFIKIAkgKiAgdG9vLikKIAkgKi8KLQlQTURTKDAsIF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQ3xfUEFHRV9HTE9CQUwsCisJUE1EUygwLCBfX1BBR0VfS0VSTkVMX0xBUkdFX0VYRUMsCiAJCUtFUk5FTF9JTUFHRV9TSVpFL1BNRF9TSVpFKQogCiBORVhUX1BBR0UobGV2ZWwyX3NwYXJlX3BndCkKQEAgLTM5NSw1NCArMzk4LDE2IEBACiAKIAkuZGF0YQogCS5hbGlnbiAxNgotCS5nbG9ibCBjcHVfZ2R0X2Rlc2NyCi1jcHVfZ2R0X2Rlc2NyOgotCS53b3JkCWdkdF9lbmQtY3B1X2dkdF90YWJsZS0xCi1nZHQ6Ci0JLnF1YWQJY3B1X2dkdF90YWJsZQotI2lmZGVmIENPTkZJR19TTVAKLQkucmVwdAlOUl9DUFVTLTEKLQkud29yZAkwCi0JLnF1YWQJMAotCS5lbmRyCi0jZW5kaWYKKwkuZ2xvYmwgZWFybHlfZ2R0X2Rlc2NyCitlYXJseV9nZHRfZGVzY3I6CisJLndvcmQJR0RUX0VOVFJJRVMqOC0xCisJLnF1YWQgICBwZXJfY3B1X19nZHRfcGFnZQogCiBFTlRSWShwaHlzX2Jhc2UpCiAJLyogVGhpcyBtdXN0IG1hdGNoIHRoZSBmaXJzdCBlbnRyeSBpbiBsZXZlbDJfa2VybmVsX3BndCAqLwogCS5xdWFkICAgMHgwMDAwMDAwMDAwMDAwMDAwCiAKLS8qIFdlIG5lZWQgdmFsaWQga2VybmVsIHNlZ21lbnRzIGZvciBkYXRhIGFuZCBjb2RlIGluIGxvbmcgbW9kZSB0b28KLSAqIElSRVQgd2lsbCBjaGVjayB0aGUgc2VnbWVudCB0eXBlcyAga2tlaWwgMjAwMC8xMC8yOAotICogQWxzbyBzeXNyZXQgbWFuZGF0ZXMgYSBzcGVjaWFsIEdEVCBsYXlvdXQgCi0gKi8KLQkJIAkJCi0JLnNlY3Rpb24gLmRhdGEucGFnZV9hbGlnbmVkLCAiYXciCi0JLmFsaWduIFBBR0VfU0laRQotCi0vKiBUaGUgVExTIGRlc2NyaXB0b3JzIGFyZSBjdXJyZW50bHkgYXQgYSBkaWZmZXJlbnQgcGxhY2UgY29tcGFyZWQgdG8gaTM4Ni4KLSAgIEhvcGVmdWxseSBub2JvZHkgZXhwZWN0cyB0aGVtIGF0IGEgZml4ZWQgcGxhY2UgKFdpbmU/KSAqLwogCQotRU5UUlkoY3B1X2dkdF90YWJsZSkKLQkucXVhZAkweDAwMDAwMDAwMDAwMDAwMDAJLyogTlVMTCBkZXNjcmlwdG9yICovCi0JLnF1YWQJMHgwMGNmOWIwMDAwMDBmZmZmCS8qIF9fS0VSTkVMMzJfQ1MgKi8KLQkucXVhZAkweDAwYWY5YjAwMDAwMGZmZmYJLyogX19LRVJORUxfQ1MgKi8KLQkucXVhZAkweDAwY2Y5MzAwMDAwMGZmZmYJLyogX19LRVJORUxfRFMgKi8KLQkucXVhZAkweDAwY2ZmYjAwMDAwMGZmZmYJLyogX19VU0VSMzJfQ1MgKi8KLQkucXVhZAkweDAwY2ZmMzAwMDAwMGZmZmYJLyogX19VU0VSX0RTLCBfX1VTRVIzMl9EUyAgKi8KLQkucXVhZAkweDAwYWZmYjAwMDAwMGZmZmYJLyogX19VU0VSX0NTICovCi0JLnF1YWQJMHgwCQkJLyogdW51c2VkICovCi0JLnF1YWQJMCwwCQkJLyogVFNTICovCi0JLnF1YWQJMCwwCQkJLyogTERUICovCi0JLnF1YWQgICAwLDAsMAkJCS8qIHRocmVlIFRMUyBkZXNjcmlwdG9ycyAqLyAKLQkucXVhZAkweDAwMDBmNDAwMDAwMDAwMDAJLyogbm9kZS9DUFUgc3RvcmVkIGluIGxpbWl0ICovCi1nZHRfZW5kOgkKLQkvKiBhc20vc2VnbWVudC5oOkdEVF9FTlRSSUVTIG11c3QgbWF0Y2ggdGhpcyAqLwkKLQkvKiBUaGlzIHNob3VsZCBiZSBhIG11bHRpcGxlIG9mIHRoZSBjYWNoZSBsaW5lIHNpemUgKi8KLQkvKiBHRFRzIG9mIG90aGVyIENQVXMgYXJlIG5vdyBkeW5hbWljYWxseSBhbGxvY2F0ZWQgKi8KLQotCS8qIHplcm8gdGhlIHJlbWFpbmluZyBwYWdlICovCi0JLmZpbGwgUEFHRV9TSVpFIC8gOCAtIEdEVF9FTlRSSUVTLDgsMAotCiAJLnNlY3Rpb24gLmJzcywgImF3IiwgQG5vYml0cwogCS5hbGlnbiBMMV9DQUNIRV9CWVRFUwogRU5UUlkoaWR0X3RhYmxlKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2hwZXQuYyBiL2FyY2gveDg2L2tlcm5lbC9ocGV0LmMKaW5kZXggOWI1Y2ZjZC4uMGVhNmExOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2hwZXQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jCkBAIC0xNyw3ICsxNyw3IEBACiAKIC8qIEZTRUMgPSAxMF4tMTUKICAgIE5TRUMgPSAxMF4tOSAqLwotI2RlZmluZSBGU0VDX1BFUl9OU0VDCTEwMDAwMDAKKyNkZWZpbmUgRlNFQ19QRVJfTlNFQwkxMDAwMDAwTAogCiAvKgogICogSFBFVCBhZGRyZXNzIGlzIHNldCBpbiBhY3BpL2Jvb3QuYywgd2hlbiBhbiBBQ1BJIGVudHJ5IGV4aXN0cwpAQCAtMzYsMjYgKzM2LDE1IEBACiB9CiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotCi1zdGF0aWMgaW5saW5lIHZvaWQgaHBldF9zZXRfbWFwcGluZyh2b2lkKQotewotCXNldF9maXhtYXBfbm9jYWNoZShGSVhfSFBFVF9CQVNFLCBocGV0X2FkZHJlc3MpOwotCV9fc2V0X2ZpeG1hcChWU1lTQ0FMTF9IUEVULCBocGV0X2FkZHJlc3MsIFBBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpOwotCWhwZXRfdmlydF9hZGRyZXNzID0gKHZvaWQgX19pb21lbSAqKWZpeF90b192aXJ0KEZJWF9IUEVUX0JBU0UpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgaHBldF9jbGVhcl9tYXBwaW5nKHZvaWQpCi17Ci0JaHBldF92aXJ0X2FkZHJlc3MgPSBOVUxMOwotfQotCi0jZWxzZQorI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X3NldF9tYXBwaW5nKHZvaWQpCiB7CiAJaHBldF92aXJ0X2FkZHJlc3MgPSBpb3JlbWFwX25vY2FjaGUoaHBldF9hZGRyZXNzLCBIUEVUX01NQVBfU0laRSk7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCV9fc2V0X2ZpeG1hcChWU1lTQ0FMTF9IUEVULCBocGV0X2FkZHJlc3MsIFBBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBocGV0X2NsZWFyX21hcHBpbmcodm9pZCkKQEAgLTYzLDcgKzUyLDYgQEAKIAlpb3VubWFwKGhwZXRfdmlydF9hZGRyZXNzKTsKIAlocGV0X3ZpcnRfYWRkcmVzcyA9IE5VTEw7CiB9Ci0jZW5kaWYKIAogLyoKICAqIEhQRVQgY29tbWFuZCBsaW5lIGVuYWJsZSAvIGRpc2FibGUKQEAgLTIwNiwyMCArMTk0LDE5IEBACiAKIHN0YXRpYyB2b2lkIGhwZXRfbGVnYWN5X2Nsb2NrZXZlbnRfcmVnaXN0ZXIodm9pZCkKIHsKLQl1aW50NjRfdCBocGV0X2ZyZXE7Ci0KIAkvKiBTdGFydCBIUEVUIGxlZ2FjeSBpbnRlcnJ1cHRzICovCiAJaHBldF9lbmFibGVfbGVnYWN5X2ludCgpOwogCiAJLyoKLQkgKiBUaGUgcGVyaW9kIGlzIGEgZmVtdG8gc2Vjb25kcyB2YWx1ZS4gV2UgbmVlZCB0byBjYWxjdWxhdGUgdGhlCi0JICogc2NhbGVkIG1hdGggbXVsdGlwbGljYXRpb24gZmFjdG9yIGZvciBuYW5vc2Vjb25kIHRvIGhwZXQgdGljawotCSAqIGNvbnZlcnNpb24uCisJICogVGhlIG11bHQgZmFjdG9yIGlzIGRlZmluZWQgYXMgKGluY2x1ZGUvbGludXgvY2xvY2tjaGlwcy5oKQorCSAqICBtdWx0LzJec2hpZnQgPSBjeWMvbnMgKGluIGNvbnRyYXN0IHRvIG5zL2N5YyBpbiBjbG9ja3NvdXJjZS5oKQorCSAqIGhwZXRfcGVyaW9kIGlzIGluIHVuaXRzIG9mIGZlbXRvc2Vjb25kcyAocGVyIGN5Y2xlKSwgc28KKwkgKiAgbXVsdC8yXnNoaWZ0ID0gY3ljL25zID0gMTBeNi9ocGV0X3BlcmlvZAorCSAqICBtdWx0ID0gKDEwXjYgKiAyXnNoaWZ0KS9ocGV0X3BlcmlvZAorCSAqICBtdWx0ID0gKEZTRUNfUEVSX05TRUMgPDwgaHBldF9jbG9ja2V2ZW50LnNoaWZ0KS9ocGV0X3BlcmlvZAogCSAqLwotCWhwZXRfZnJlcSA9IDEwMDAwMDAwMDAwMDAwMDBVTEw7Ci0JZG9fZGl2KGhwZXRfZnJlcSwgaHBldF9wZXJpb2QpOwotCWhwZXRfY2xvY2tldmVudC5tdWx0ID0gZGl2X3NjKCh1bnNpZ25lZCBsb25nKSBocGV0X2ZyZXEsCi0JCQkJICAgICAgTlNFQ19QRVJfU0VDLCBocGV0X2Nsb2NrZXZlbnQuc2hpZnQpOworCWhwZXRfY2xvY2tldmVudC5tdWx0ID0gZGl2X3NjKCh1bnNpZ25lZCBsb25nKSBGU0VDX1BFUl9OU0VDLAorCQkJCSAgICAgIGhwZXRfcGVyaW9kLCBocGV0X2Nsb2NrZXZlbnQuc2hpZnQpOwogCS8qIENhbGN1bGF0ZSB0aGUgbWluIC8gbWF4IGRlbHRhICovCiAJaHBldF9jbG9ja2V2ZW50Lm1heF9kZWx0YV9ucyA9IGNsb2NrZXZlbnRfZGVsdGEybnMoMHg3RkZGRkZGRiwKIAkJCQkJCQkgICAmaHBldF9jbG9ja2V2ZW50KTsKQEAgLTMyNCw3ICszMTEsNyBAQAogCiBzdGF0aWMgaW50IGhwZXRfY2xvY2tzb3VyY2VfcmVnaXN0ZXIodm9pZCkKIHsKLQl1NjQgdG1wLCBzdGFydCwgbm93OworCXU2NCBzdGFydCwgbm93OwogCWN5Y2xlX3QgdDE7CiAKIAkvKiBTdGFydCB0aGUgY291bnRlciAqLwpAQCAtMzUxLDIxICszMzgsMTUgQEAKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0JLyogSW5pdGlhbGl6ZSBhbmQgcmVnaXN0ZXIgSFBFVCBjbG9ja3NvdXJjZQotCSAqCi0JICogaHBldCBwZXJpb2QgaXMgaW4gZmVtdG8gc2Vjb25kcyBwZXIgY3ljbGUKLQkgKiBzbyB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhpcyB0byBucy9jeWMgdW5pdHMKLQkgKiBhcHByb3hpbWF0ZWQgYnkgbXVsdC8yXnNoaWZ0Ci0JICoKLQkgKiAgZnNlYy9jeWMgKiAxbnNlYy8xMDAwMDAwZnNlYyA9IG5zZWMvY3ljID0gbXVsdC8yXnNoaWZ0Ci0JICogIGZzZWMvY3ljICogMW5zLzEwMDAwMDBmc2VjICogMl5zaGlmdCA9IG11bHQKLQkgKiAgZnNlYy9jeWMgKiAyXnNoaWZ0ICogMW5zZWMvMTAwMDAwMGZzZWMgPSBtdWx0Ci0JICogIChmc2VjL2N5YyA8PCBzaGlmdCkvMTAwMDAwMCA9IG11bHQKLQkgKiAgKGhwZXRfcGVyaW9kIDw8IHNoaWZ0KS9GU0VDX1BFUl9OU0VDID0gbXVsdAorCS8qCisJICogVGhlIGRlZmluaXRpb24gb2YgbXVsdCBpcyAoaW5jbHVkZS9saW51eC9jbG9ja3NvdXJjZS5oKQorCSAqIG11bHQvMl5zaGlmdCA9IG5zL2N5YyBhbmQgaHBldF9wZXJpb2QgaXMgaW4gdW5pdHMgb2YgZnNlYy9jeWMKKwkgKiBzbyB3ZSBmaXJzdCBuZWVkIHRvIGNvbnZlcnQgaHBldF9wZXJpb2QgdG8gbnMvY3ljIHVuaXRzOgorCSAqICBtdWx0LzJec2hpZnQgPSBucy9jeWMgPSBocGV0X3BlcmlvZC8xMF42CisJICogIG11bHQgPSAoaHBldF9wZXJpb2QgKiAyXnNoaWZ0KS8xMF42CisJICogIG11bHQgPSAoaHBldF9wZXJpb2QgPDwgc2hpZnQpL0ZTRUNfUEVSX05TRUMKIAkgKi8KLQl0bXAgPSAodTY0KWhwZXRfcGVyaW9kIDw8IEhQRVRfU0hJRlQ7Ci0JZG9fZGl2KHRtcCwgRlNFQ19QRVJfTlNFQyk7Ci0JY2xvY2tzb3VyY2VfaHBldC5tdWx0ID0gKHUzMil0bXA7CisJY2xvY2tzb3VyY2VfaHBldC5tdWx0ID0gZGl2X3NjKGhwZXRfcGVyaW9kLCBGU0VDX1BFUl9OU0VDLCBIUEVUX1NISUZUKTsKIAogCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV9ocGV0KTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2kzODZfa3N5bXNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9pMzg2X2tzeW1zXzMyLmMKaW5kZXggZGViNDM3OC4uZGQ3ZWJlZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2kzODZfa3N5bXNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaTM4Nl9rc3ltc18zMi5jCkBAIC0xLDcgKzEsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKwogI2luY2x1ZGUgPGFzbS9jaGVja3N1bS5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vZGVzYy5oPgorI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKy8qIG1jb3VudCBpcyBkZWZpbmVkIGluIGFzc2VtYmx5ICovCitFWFBPUlRfU1lNQk9MKG1jb3VudCk7CisjZW5kaWYKIAogLyogTmV0d29ya2luZyBoZWxwZXIgcm91dGluZXMuICovCiBFWFBPUlRfU1lNQk9MKGNzdW1fcGFydGlhbF9jb3B5X2dlbmVyaWMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2kzODcuYyBiL2FyY2gveDg2L2tlcm5lbC9pMzg3LmMKaW5kZXggZTAzY2M5NS4uZWI5ZGRkOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2kzODcuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaTM4Ny5jCkBAIC01Niw2ICs1NiwxMSBAQAogCiB2b2lkIF9faW5pdCBpbml0X3RocmVhZF94c3RhdGUodm9pZCkKIHsKKwlpZiAoIUhBVkVfSFdGUCkgeworCQl4c3RhdGVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTM4N19zb2Z0X3N0cnVjdCk7CisJCXJldHVybjsKKwl9CisKIAlpZiAoY3B1X2hhc19meHNyKQogCQl4c3RhdGVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTM4N19meHNhdmVfc3RydWN0KTsKICNpZmRlZiBDT05GSUdfWDg2XzMyCkBAIC05NCw3ICs5OSw3IEBACiBpbnQgaW5pdF9mcHUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB7CiAJaWYgKHRza191c2VkX21hdGgodHNrKSkgewotCQlpZiAodHNrID09IGN1cnJlbnQpCisJCWlmIChIQVZFX0hXRlAgJiYgdHNrID09IGN1cnJlbnQpCiAJCQl1bmxhenlfZnB1KHRzayk7CiAJCXJldHVybiAwOwogCX0KQEAgLTEwOSw2ICsxMTQsMTUgQEAKIAkJCXJldHVybiAtRU5PTUVNOwogCX0KIAorI2lmZGVmIENPTkZJR19YODZfMzIKKwlpZiAoIUhBVkVfSFdGUCkgeworCQltZW1zZXQodHNrLT50aHJlYWQueHN0YXRlLCAwLCB4c3RhdGVfc2l6ZSk7CisJCWZpbml0KCk7CisJCXNldF9zdG9wcGVkX2NoaWxkX3VzZWRfbWF0aCh0c2spOworCQlyZXR1cm4gMDsKKwl9CisjZW5kaWYKKwogCWlmIChjcHVfaGFzX2Z4c3IpIHsKIAkJc3RydWN0IGkzODdfZnhzYXZlX3N0cnVjdCAqZnggPSAmdHNrLT50aHJlYWQueHN0YXRlLT5meHNhdmU7CiAKQEAgLTMzMCwxMyArMzQ0LDEzIEBACiAJc3RydWN0IHVzZXJfaTM4N19pYTMyX3N0cnVjdCBlbnY7CiAJaW50IHJldDsKIAotCWlmICghSEFWRV9IV0ZQKQotCQlyZXR1cm4gZnByZWdzX3NvZnRfZ2V0KHRhcmdldCwgcmVnc2V0LCBwb3MsIGNvdW50LCBrYnVmLCB1YnVmKTsKLQogCXJldCA9IGluaXRfZnB1KHRhcmdldCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAorCWlmICghSEFWRV9IV0ZQKQorCQlyZXR1cm4gZnByZWdzX3NvZnRfZ2V0KHRhcmdldCwgcmVnc2V0LCBwb3MsIGNvdW50LCBrYnVmLCB1YnVmKTsKKwogCWlmICghY3B1X2hhc19meHNyKSB7CiAJCXJldHVybiB1c2VyX3JlZ3NldF9jb3B5b3V0KCZwb3MsICZjb3VudCwgJmtidWYsICZ1YnVmLAogCQkJCQkgICAmdGFyZ2V0LT50aHJlYWQueHN0YXRlLT5mc2F2ZSwgMCwKQEAgLTM2MCwxNSArMzc0LDE1IEBACiAJc3RydWN0IHVzZXJfaTM4N19pYTMyX3N0cnVjdCBlbnY7CiAJaW50IHJldDsKIAotCWlmICghSEFWRV9IV0ZQKQotCQlyZXR1cm4gZnByZWdzX3NvZnRfc2V0KHRhcmdldCwgcmVnc2V0LCBwb3MsIGNvdW50LCBrYnVmLCB1YnVmKTsKLQogCXJldCA9IGluaXRfZnB1KHRhcmdldCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCXNldF9zdG9wcGVkX2NoaWxkX3VzZWRfbWF0aCh0YXJnZXQpOwogCisJaWYgKCFIQVZFX0hXRlApCisJCXJldHVybiBmcHJlZ3Nfc29mdF9zZXQodGFyZ2V0LCByZWdzZXQsIHBvcywgY291bnQsIGtidWYsIHVidWYpOworCiAJaWYgKCFjcHVfaGFzX2Z4c3IpIHsKIAkJcmV0dXJuIHVzZXJfcmVnc2V0X2NvcHlpbigmcG9zLCAmY291bnQsICZrYnVmLCAmdWJ1ZiwKIAkJCQkJICAmdGFyZ2V0LT50aHJlYWQueHN0YXRlLT5mc2F2ZSwgMCwgLTEpOwpAQCAtNDc0LDE4ICs0ODgsMTggQEAKIGludCByZXN0b3JlX2kzODdfaWEzMihzdHJ1Y3QgX2Zwc3RhdGVfaWEzMiBfX3VzZXIgKmJ1ZikKIHsKIAlpbnQgZXJyOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrID0gY3VycmVudDsKIAotCWlmIChIQVZFX0hXRlApIHsKLQkJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OwotCisJaWYgKEhBVkVfSFdGUCkKIAkJY2xlYXJfZnB1KHRzayk7CiAKLQkJaWYgKCF1c2VkX21hdGgoKSkgewotCQkJZXJyID0gaW5pdF9mcHUodHNrKTsKLQkJCWlmIChlcnIpCi0JCQkJcmV0dXJuIGVycjsKLQkJfQorCWlmICghdXNlZF9tYXRoKCkpIHsKKwkJZXJyID0gaW5pdF9mcHUodHNrKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiBlcnI7CisJfQogCisJaWYgKEhBVkVfSFdGUCkgewogCQlpZiAoY3B1X2hhc19meHNyKQogCQkJZXJyID0gcmVzdG9yZV9pMzg3X2Z4c2F2ZShidWYpOwogCQllbHNlCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYyBiL2FyY2gveDg2L2tlcm5lbC9pODI1OS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjOTJiNDkKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTkuYwpAQCAtMCwwICsxLDMzNyBAQAorI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisKKyNpbmNsdWRlIDxhc20vYWNwaS5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisjaW5jbHVkZSA8YXNtL2h3X2lycS5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKy8qCisgKiBUaGlzIGlzIHRoZSAnbGVnYWN5JyA4MjU5QSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIsCisgKiBwcmVzZW50IGluIHRoZSBtYWpvcml0eSBvZiBQQy9BVCBib3hlcy4KKyAqIHBsdXMgc29tZSBnZW5lcmljIHg4NiBzcGVjaWZpYyB0aGluZ3MgaWYgZ2VuZXJpYyBzcGVjaWZpY3MgbWFrZXMKKyAqIGFueSBzZW5zZSBhdCBhbGwuCisgKi8KKworc3RhdGljIGludCBpODI1OUFfYXV0b19lb2k7CitERUZJTkVfU1BJTkxPQ0soaTgyNTlBX2xvY2spOworc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCk7CisKK3N0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKKwkubmFtZQkJPSAiWFQtUElDIiwKKwkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKKwkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAorCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKKwkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCit9OworCisvKgorICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6CisgKi8KKworLyoKKyAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKKyAqLwordW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKKworLyoKKyAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKKyAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKKyAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgorICoKKyAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgorICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAorICogYXQgSVJRIHNldHVwIHRpbWUuCisgKi8KK3Vuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOworCit2b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7CisJaWYgKGlycSAmIDgpCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCWVsc2UKKwkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworfQorCit2b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKKwlpZiAoaXJxICYgOCkKKwkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CisJZWxzZQorCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Cit9CisKK2ludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWludCByZXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKwlpZiAoaXJxIDwgOCkKKwkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7CisJZWxzZQorCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOworCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCisJCQkJICAgICAgIlhUIik7CisJZW5hYmxlX2lycShpcnEpOworfQorCisvKgorICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCisgKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KKyAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKKyAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQoreworCWludCB2YWx1ZTsKKwlpbnQgaXJxbWFzayA9IDE8PGlycTsKKworCWlmIChpcnEgPCA4KSB7CisJCW91dGIoMHgwQiwgUElDX01BU1RFUl9DTUQpOwkvKiBJU1IgcmVnaXN0ZXIgKi8KKwkJdmFsdWUgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgaXJxbWFzazsKKwkJb3V0YigweDBBLCBQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLworCQlyZXR1cm4gdmFsdWU7CisJfQorCW91dGIoMHgwQiwgUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLworCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7CisJb3V0YigweDBBLCBQSUNfU0xBVkVfQ01EKTsJLyogYmFjayB0byB0aGUgSVJSIHJlZ2lzdGVyICovCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogQ2FyZWZ1bCEgVGhlIDgyNTlBIGlzIGEgZnJhZ2lsZSBiZWFzdCwgaXQgcHJldHR5CisgKiBtdWNoIF9oYXNfIHRvIGJlIGRvbmUgZXhhY3RseSBsaWtlIHRoaXMgKG1hc2sgaXQKKyAqIGZpcnN0LCBfdGhlbl8gc2VuZCB0aGUgRU9JLCBhbmQgdGhlIG9yZGVyIG9mIEVPSQorICogdG8gdGhlIHR3byA4MjU5cyBpcyBpbXBvcnRhbnQhCisgKi8KK3N0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGludCBpcnFtYXNrID0gMSA8PCBpcnE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCS8qCisJICogTGlnaHR3ZWlnaHQgc3B1cmlvdXMgSVJRIGRldGVjdGlvbi4gV2UgZG8gbm90IHdhbnQKKwkgKiB0byBvdmVyZG8gc3B1cmlvdXMgSVJRIGhhbmRsaW5nIC0gaXQncyB1c3VhbGx5IGEgc2lnbgorCSAqIG9mIGhhcmR3YXJlIHByb2JsZW1zLCBzbyB3ZSBvbmx5IGRvIHRoZSBjaGVja3Mgd2UgY2FuCisJICogZG8gd2l0aG91dCBzbG93aW5nIGRvd24gZ29vZCBoYXJkd2FyZSB1bm5lY2Vzc2FyaWx5LgorCSAqCisJICogTm90ZSB0aGF0IElSUTcgYW5kIElSUTE1ICh0aGUgdHdvIHNwdXJpb3VzIElSUXMKKwkgKiB1c3VhbGx5IHJlc3VsdGluZyBmcm9tIHRoZSA4MjU5QS0xfDIgUElDcykgb2NjdXIKKwkgKiBldmVuIGlmIHRoZSBJUlEgaXMgbWFza2VkIGluIHRoZSA4MjU5QS4gVGh1cyB3ZQorCSAqIGNhbiBjaGVjayBzcHVyaW91cyA4MjU5QSBJUlFzIHdpdGhvdXQgZG9pbmcgdGhlCisJICogcXVpdGUgc2xvdyBpODI1OUFfaXJxX3JlYWwoKSBjYWxsIGZvciBldmVyeSBJUlEuCisJICogVGhpcyBkb2VzIG5vdCBjb3ZlciAxMDAlIG9mIHNwdXJpb3VzIGludGVycnVwdHMsCisJICogYnV0IHNob3VsZCBiZSBlbm91Z2ggdG8gd2FybiB0aGUgdXNlciB0aGF0IHRoZXJlCisJICogaXMgc29tZXRoaW5nIGJhZCBnb2luZyBvbiAuLi4KKwkgKi8KKwlpZiAoY2FjaGVkX2lycV9tYXNrICYgaXJxbWFzaykKKwkJZ290byBzcHVyaW91c184MjU5QV9pcnE7CisJY2FjaGVkX2lycV9tYXNrIHw9IGlycW1hc2s7CisKK2hhbmRsZV9yZWFsX2lycToKKwlpZiAoaXJxICYgOCkgeworCQlpbmIoUElDX1NMQVZFX0lNUik7CS8qIERVTU1ZIC0gKGRvIHdlIG5lZWQgdGhpcz8pICovCisJCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOworCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBzbGF2ZSAqLworCQlvdXRiKDB4NjArKGlycSY3KSwgUElDX1NMQVZFX0NNRCk7CisJCSAvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXItSVJRMiAqLworCQlvdXRiKDB4NjArUElDX0NBU0NBREVfSVIsIFBJQ19NQVNURVJfQ01EKTsKKwl9IGVsc2UgeworCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLworCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOworCQlvdXRiKDB4NjAraXJxLCBQSUNfTUFTVEVSX0NNRCk7CS8qICdTcGVjaWZpYyBFT0kgdG8gbWFzdGVyICovCisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJcmV0dXJuOworCitzcHVyaW91c184MjU5QV9pcnE6CisJLyoKKwkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KKwkgKi8KKwlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCisJCS8qCisJCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKKwkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KKwkJICovCisJCWdvdG8gaGFuZGxlX3JlYWxfaXJxOworCisJeworCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOworCQkvKgorCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCisJCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCisJCSAqLworCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7CisJCQlwcmludGsoS0VSTl9ERUJVRworCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKKwkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7CisJCX0KKwkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7CisJCS8qCisJCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAorCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKKwkJICogc2ltcGxlciBmb3IgdXMuCisJCSAqLworCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKKwl9Cit9CisKK3N0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOworLyoqCisgKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCisgKi8KK3N0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQoreworCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOworCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOworfQorCitzdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKK3sKKwkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCisJdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OworCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKK30KKworc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOworCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0CisJICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKKwkgKiBvdXQgb2YuCisJICovCisJb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KKwlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKKwkubmFtZSA9ICJpODI1OSIsCisJLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKKwkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKKwkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCit9OworCitzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKKwkuaWQJPSAwLAorCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKK3sKKwlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOworCXJldHVybiBlcnJvcjsKK30KKworZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKKwordm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKKworCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCisJb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLworCisJLyoKKwkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgorCSAqLworCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMSBJUjAtNyBtYXBwZWQgdG8gMHgzMC0weDM3IG9uIHg4Ni02NCwKKwkgICAgICAgICAgICAgICAgICAgICAgIHRvIDB4MjAtMHgyNyBvbiBpMzg2ICovCisJb3V0Yl9waWMoSVJRMF9WRUNUT1IsIFBJQ19NQVNURVJfSU1SKTsKKworCS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLworCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CisKKwlpZiAoYXV0b19lb2kpCS8qIG1hc3RlciBkb2VzIEF1dG8gRU9JICovCisJCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQgfCBQSUNfSUNXNF9BRU9JLCBQSUNfTUFTVEVSX0lNUik7CisJZWxzZQkJLyogbWFzdGVyIGV4cGVjdHMgbm9ybWFsIEVPSSAqLworCQlvdXRiX3BpYyhNQVNURVJfSUNXNF9ERUZBVUxULCBQSUNfTUFTVEVSX0lNUik7CisKKwlvdXRiX3BpYygweDExLCBQSUNfU0xBVkVfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTIgaW5pdCAqLworCisJLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gSVJROF9WRUNUT1IgKi8KKwlvdXRiX3BpYyhJUlE4X1ZFQ1RPUiwgUElDX1NMQVZFX0lNUik7CisJLyogODI1OUEtMiBpcyBhIHNsYXZlIG9uIG1hc3RlcidzIElSMiAqLworCW91dGJfcGljKFBJQ19DQVNDQURFX0lSLCBQSUNfU0xBVkVfSU1SKTsKKwkvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCisJb3V0Yl9waWMoU0xBVkVfSUNXNF9ERUZBVUxULCBQSUNfU0xBVkVfSU1SKTsKKworCWlmIChhdXRvX2VvaSkKKwkJLyoKKwkJICogSW4gQUVPSSBtb2RlIHdlIGp1c3QgaGF2ZSB0byBtYXNrIHRoZSBpbnRlcnJ1cHQKKwkJICogd2hlbiBhY2tpbmcuCisJCSAqLworCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IGRpc2FibGVfODI1OUFfaXJxOworCWVsc2UKKwkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBtYXNrX2FuZF9hY2tfODI1OUE7CisKKwl1ZGVsYXkoMTAwKTsJCS8qIHdhaXQgZm9yIDgyNTlBIHRvIGluaXRpYWxpemUgKi8KKworCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7IC8qIHJlc3RvcmUgbWFzdGVyIElSUSBtYXNrICovCisJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7CSAgLyogcmVzdG9yZSBzbGF2ZSBJUlEgbWFzayAqLworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2k4MjU5XzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlNjMxOTY3Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9pODI1OV8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNDA5ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotCi0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vdGltZXIuaD4KLSNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9pODI1OS5oPgotCi0vKgotICogVGhpcyBpcyB0aGUgJ2xlZ2FjeScgODI1OUEgUHJvZ3JhbW1hYmxlIEludGVycnVwdCBDb250cm9sbGVyLAotICogcHJlc2VudCBpbiB0aGUgbWFqb3JpdHkgb2YgUEMvQVQgYm94ZXMuCi0gKiBwbHVzIHNvbWUgZ2VuZXJpYyB4ODYgc3BlY2lmaWMgdGhpbmdzIGlmIGdlbmVyaWMgc3BlY2lmaWNzIG1ha2VzCi0gKiBhbnkgc2Vuc2UgYXQgYWxsLgotICovCi0KLXN0YXRpYyBpbnQgaTgyNTlBX2F1dG9fZW9pOwotREVGSU5FX1NQSU5MT0NLKGk4MjU5QV9sb2NrKTsKLXN0YXRpYyB2b2lkIG1hc2tfYW5kX2Fja184MjU5QSh1bnNpZ25lZCBpbnQpOwotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIGk4MjU5QV9jaGlwID0gewotCS5uYW1lCQk9ICJYVC1QSUMiLAotCS5tYXNrCQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS5kaXNhYmxlCT0gZGlzYWJsZV84MjU5QV9pcnEsCi0JLnVubWFzawkJPSBlbmFibGVfODI1OUFfaXJxLAotCS5tYXNrX2Fjawk9IG1hc2tfYW5kX2Fja184MjU5QSwKLX07Ci0KLS8qCi0gKiA4MjU5QSBQSUMgZnVuY3Rpb25zIHRvIGhhbmRsZSBJU0EgZGV2aWNlczoKLSAqLwotCi0vKgotICogVGhpcyBjb250YWlucyB0aGUgaXJxIG1hc2sgZm9yIGJvdGggODI1OUEgaXJxIGNvbnRyb2xsZXJzLAotICovCi11bnNpZ25lZCBpbnQgY2FjaGVkX2lycV9tYXNrID0gMHhmZmZmOwotCi0vKgotICogTm90IGFsbCBJUlFzIGNhbiBiZSByb3V0ZWQgdGhyb3VnaCB0aGUgSU8tQVBJQywgZWcuIG9uIGNlcnRhaW4gKG9sZGVyKQotICogYm9hcmRzIHRoZSB0aW1lciBpbnRlcnJ1cHQgaXMgbm90IHJlYWxseSBjb25uZWN0ZWQgdG8gYW55IElPLUFQSUMgcGluLAotICogaXQncyBmZWQgdG8gdGhlIG1hc3RlciA4MjU5QSdzIElSMCBsaW5lIG9ubHkuCi0gKgotICogQW55ICcxJyBiaXQgaW4gdGhpcyBtYXNrIG1lYW5zIHRoZSBJUlEgaXMgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMuCi0gKiB0aGlzICdtaXhlZCBtb2RlJyBJUlEgaGFuZGxpbmcgY29zdHMgbm90aGluZyBiZWNhdXNlIGl0J3Mgb25seSB1c2VkCi0gKiBhdCBJUlEgc2V0dXAgdGltZS4KLSAqLwotdW5zaWduZWQgbG9uZyBpb19hcGljX2lycXM7Ci0KLXZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgfD0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLXZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gfigxIDw8IGlycSk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWNhY2hlZF9pcnFfbWFzayAmPSBtYXNrOwotCWlmIChpcnEgJiA4KQotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQllbHNlCi0JCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCBQSUNfTUFTVEVSX0lNUik7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLX0KLQotaW50IGk4MjU5QV9pcnFfcGVuZGluZyh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGludCBtYXNrID0gMTw8aXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCWlmIChpcnEgPCA4KQotCQlyZXQgPSBpbmIoUElDX01BU1RFUl9DTUQpICYgbWFzazsKLQllbHNlCi0JCXJldCA9IGluYihQSUNfU0xBVkVfQ01EKSAmIChtYXNrID4+IDgpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi12b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JZGlzYWJsZV9pcnFfbm9zeW5jKGlycSk7Ci0JaW9fYXBpY19pcnFzICY9IH4oMTw8aXJxKTsKLQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZpODI1OUFfY2hpcCwgaGFuZGxlX2xldmVsX2lycSwKLQkJCQkgICAgICAiWFQiKTsKLQllbmFibGVfaXJxKGlycSk7Ci19Ci0KLS8qCi0gKiBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdG8gYmUgY2FsbGVkIHJhcmVseS4gU3dpdGNoaW5nIGJldHdlZW4KLSAqIDgyNTlBIHJlZ2lzdGVycyBpcyBzbG93LgotICogVGhpcyBoYXMgdG8gYmUgcHJvdGVjdGVkIGJ5IHRoZSBpcnEgY29udHJvbGxlciBzcGlubG9jawotICogYmVmb3JlIGJlaW5nIGNhbGxlZC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgaTgyNTlBX2lycV9yZWFsKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaW50IHZhbHVlOwotCWludCBpcnFtYXNrID0gMTw8aXJxOwotCi0JaWYgKGlycSA8IDgpIHsKLQkJb3V0YigweDBCLFBJQ19NQVNURVJfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JCXZhbHVlID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIGlycW1hc2s7Ci0JCW91dGIoMHgwQSxQSUNfTUFTVEVSX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCQlyZXR1cm4gdmFsdWU7Ci0JfQotCW91dGIoMHgwQixQSUNfU0xBVkVfQ01EKTsJLyogSVNSIHJlZ2lzdGVyICovCi0JdmFsdWUgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAoaXJxbWFzayA+PiA4KTsKLQlvdXRiKDB4MEEsUElDX1NMQVZFX0NNRCk7CS8qIGJhY2sgdG8gdGhlIElSUiByZWdpc3RlciAqLwotCXJldHVybiB2YWx1ZTsKLX0KLQotLyoKLSAqIENhcmVmdWwhIFRoZSA4MjU5QSBpcyBhIGZyYWdpbGUgYmVhc3QsIGl0IHByZXR0eQotICogbXVjaCBfaGFzXyB0byBiZSBkb25lIGV4YWN0bHkgbGlrZSB0aGlzIChtYXNrIGl0Ci0gKiBmaXJzdCwgX3RoZW5fIHNlbmQgdGhlIEVPSSwgYW5kIHRoZSBvcmRlciBvZiBFT0kKLSAqIHRvIHRoZSB0d28gODI1OXMgaXMgaW1wb3J0YW50IQotICovCi1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgaXJxbWFzayA9IDEgPDwgaXJxOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQkvKgotCSAqIExpZ2h0d2VpZ2h0IHNwdXJpb3VzIElSUSBkZXRlY3Rpb24uIFdlIGRvIG5vdCB3YW50Ci0JICogdG8gb3ZlcmRvIHNwdXJpb3VzIElSUSBoYW5kbGluZyAtIGl0J3MgdXN1YWxseSBhIHNpZ24KLQkgKiBvZiBoYXJkd2FyZSBwcm9ibGVtcywgc28gd2Ugb25seSBkbyB0aGUgY2hlY2tzIHdlIGNhbgotCSAqIGRvIHdpdGhvdXQgc2xvd2luZyBkb3duIGdvb2QgaGFyZHdhcmUgdW5uZWNlc3NhcmlseS4KLQkgKgotCSAqIE5vdGUgdGhhdCBJUlE3IGFuZCBJUlExNSAodGhlIHR3byBzcHVyaW91cyBJUlFzCi0JICogdXN1YWxseSByZXN1bHRpbmcgZnJvbSB0aGUgODI1OUEtMXwyIFBJQ3MpIG9jY3VyCi0JICogZXZlbiBpZiB0aGUgSVJRIGlzIG1hc2tlZCBpbiB0aGUgODI1OUEuIFRodXMgd2UKLQkgKiBjYW4gY2hlY2sgc3B1cmlvdXMgODI1OUEgSVJRcyB3aXRob3V0IGRvaW5nIHRoZQotCSAqIHF1aXRlIHNsb3cgaTgyNTlBX2lycV9yZWFsKCkgY2FsbCBmb3IgZXZlcnkgSVJRLgotCSAqIFRoaXMgZG9lcyBub3QgY292ZXIgMTAwJSBvZiBzcHVyaW91cyBpbnRlcnJ1cHRzLAotCSAqIGJ1dCBzaG91bGQgYmUgZW5vdWdoIHRvIHdhcm4gdGhlIHVzZXIgdGhhdCB0aGVyZQotCSAqIGlzIHNvbWV0aGluZyBiYWQgZ29pbmcgb24gLi4uCi0JICovCi0JaWYgKGNhY2hlZF9pcnFfbWFzayAmIGlycW1hc2spCi0JCWdvdG8gc3B1cmlvdXNfODI1OUFfaXJxOwotCWNhY2hlZF9pcnFfbWFzayB8PSBpcnFtYXNrOwotCi1oYW5kbGVfcmVhbF9pcnE6Ci0JaWYgKGlycSAmIDgpIHsKLQkJaW5iKFBJQ19TTEFWRV9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsKLQkJb3V0YigweDYwKyhpcnEmNyksUElDX1NMQVZFX0NNRCk7LyogJ1NwZWNpZmljIEVPSScgdG8gc2xhdmUgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQlvdXRiKDB4NjAraXJxLFBJQ19NQVNURVJfQ01EKTsJLyogJ1NwZWNpZmljIEVPSSB0byBtYXN0ZXIgKi8KLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlyZXR1cm47Ci0KLXNwdXJpb3VzXzgyNTlBX2lycToKLQkvKgotCSAqIHRoaXMgaXMgdGhlIHNsb3cgcGF0aCAtIHNob3VsZCBoYXBwZW4gcmFyZWx5LgotCSAqLwotCWlmIChpODI1OUFfaXJxX3JlYWwoaXJxKSkKLQkJLyoKLQkJICogb29wcywgdGhlIElSUSBfaXNfIGluIHNlcnZpY2UgYWNjb3JkaW5nIHRvIHRoZQotCQkgKiA4MjU5QSAtIG5vdCBzcHVyaW91cywgZ28gaGFuZGxlIGl0LgotCQkgKi8KLQkJZ290byBoYW5kbGVfcmVhbF9pcnE7Ci0KLQl7Ci0JCXN0YXRpYyBpbnQgc3B1cmlvdXNfaXJxX21hc2s7Ci0JCS8qCi0JCSAqIEF0IHRoaXMgcG9pbnQgd2UgY2FuIGJlIHN1cmUgdGhlIElSUSBpcyBzcHVyaW91cywKLQkJICogbGV0cyBBQ0sgYW5kIHJlcG9ydCBpdC4gW29uY2UgcGVyIElSUV0KLQkJICovCi0JCWlmICghKHNwdXJpb3VzX2lycV9tYXNrICYgaXJxbWFzaykpIHsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCW91dGJfcGljKDB4MjAgKyAwLCBQSUNfTUFTVEVSX0lNUik7CS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MjAtMHgyNyAqLwotCW91dGJfcGljKDFVIDw8IFBJQ19DQVNDQURFX0lSLCBQSUNfTUFTVEVSX0lNUik7CS8qIDgyNTlBLTEgKHRoZSBtYXN0ZXIpIGhhcyBhIHNsYXZlIG9uIElSMiAqLwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0Jb3V0Yl9waWMoMHgyMCArIDgsIFBJQ19TTEFWRV9JTVIpOwkvKiBJQ1cyOiA4MjU5QS0yIElSMC03IG1hcHBlZCB0byAweDI4LTB4MmYgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7CS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhTTEFWRV9JQ1c0X0RFRkFVTFQsIFBJQ19TTEFWRV9JTVIpOyAvKiAoc2xhdmUncyBzdXBwb3J0IGZvciBBRU9JIGluIGZsYXQgbW9kZSBpcyB0byBiZSBpbnZlc3RpZ2F0ZWQpICovCi0JaWYgKGF1dG9fZW9pKQotCQkvKgotCQkgKiBJbiBBRU9JIG1vZGUgd2UganVzdCBoYXZlIHRvIG1hc2sgdGhlIGludGVycnVwdAotCQkgKiB3aGVuIGFja2luZy4KLQkJICovCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gZGlzYWJsZV84MjU5QV9pcnE7Ci0JZWxzZQotCQlpODI1OUFfY2hpcC5tYXNrX2FjayA9IG1hc2tfYW5kX2Fja184MjU5QTsKLQotCXVkZWxheSgxMDApOwkJLyogd2FpdCBmb3IgODI1OUEgdG8gaW5pdGlhbGl6ZSAqLwotCi0Jb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsgLyogcmVzdG9yZSBtYXN0ZXIgSVJRIG1hc2sgKi8KLQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCBQSUNfU0xBVkVfSU1SKTsJICAvKiByZXN0b3JlIHNsYXZlIElSUSBtYXNrICovCi0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi0vKgotICogTm90ZSB0aGF0IG9uIGEgNDg2LCB3ZSBkb24ndCB3YW50IHRvIGRvIGEgU0lHRlBFIG9uIGFuIGlycTEzCi0gKiBhcyB0aGUgaXJxIGlzIHVucmVsaWFibGUsIGFuZCBleGNlcHRpb24gMTYgd29ya3MgY29ycmVjdGx5Ci0gKiAoaWUgYXMgZXhwbGFpbmVkIGluIHRoZSBpbnRlbCBsaXRlcmF0dXJlKS4gT24gYSAzODYsIHlvdQotICogY2FuJ3QgdXNlIGV4Y2VwdGlvbiAxNiBkdWUgdG8gYmFkIElCTSBkZXNpZ24sIHNvIHdlIGhhdmUgdG8KLSAqIHJlbHkgb24gdGhlIGxlc3MgZXhhY3QgaXJxMTMuCi0gKgotICogQ2FyZWZ1bC4uIE5vdCBvbmx5IGlzIElSUTEzIHVucmVsaWFibGUsIGJ1dCBpdCBpcyBhbHNvCi0gKiBsZWFkcyB0byByYWNlcy4gSUJNIGRlc2lnbmVycyB3aG8gY2FtZSB1cCB3aXRoIGl0IHNob3VsZAotICogYmUgc2hvdC4KLSAqLwotIAotCi1zdGF0aWMgaXJxcmV0dXJuX3QgbWF0aF9lcnJvcl9pcnEoaW50IGNwbCwgdm9pZCAqZGV2X2lkKQotewotCWV4dGVybiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKik7Ci0Jb3V0YigwLDB4RjApOwotCWlmIChpZ25vcmVfZnB1X2lycSB8fCAhYm9vdF9jcHVfZGF0YS5oYXJkX21hdGgpCi0JCXJldHVybiBJUlFfTk9ORTsKLQltYXRoX2Vycm9yKCh2b2lkIF9fdXNlciAqKWdldF9pcnFfcmVncygpLT5pcCk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKgotICogTmV3IG1vdGhlcmJvYXJkcyBzb21ldGltZXMgbWFrZSBJUlEgMTMgYmUgYSBQQ0kgaW50ZXJydXB0LAotICogc28gYWxsb3cgaW50ZXJydXB0IHNoYXJpbmcuCi0gKi8KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGZwdV9pcnEgPSB7Ci0JLmhhbmRsZXIgPSBtYXRoX2Vycm9yX2lycSwKLQkubWFzayA9IENQVV9NQVNLX05PTkUsCi0JLm5hbWUgPSAiZnB1IiwKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLQlpbml0X2JzcF9BUElDKCk7Ci0jZW5kaWYKLQlpbml0XzgyNTlBKDApOwotCi0JLyoKLQkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7Ci0JfQotfQotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgKi8KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JLyogYWxsIHRoZSBzZXQgdXAgYmVmb3JlIHRoZSBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAqLwotCXByZV9pbnRyX2luaXRfaG9vaygpOwotCi0JLyoKLQkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQotCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQotCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKLQkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7Ci0JCWlmIChpID49IE5SX0lSUVMpCi0JCQlicmVhazsKLQkJLyogU1lTQ0FMTF9WRUNUT1Igd2FzIHJlc2VydmVkIGluIHRyYXBfaW5pdC4gKi8KLQkJaWYgKCF0ZXN0X2JpdCh2ZWN0b3IsIHVzZWRfdmVjdG9ycykpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLQkvKiBzZXR1cCBhZnRlciBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAodXN1YWxseSBhZGQgaW4KLQkgKiB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGdhdGVzKQotCSAqLwotCWludHJfaW5pdF9ob29rKCk7Ci0KLQkvKgotCSAqIEV4dGVybmFsIEZQVT8gU2V0IHVwIGlycTEzIGlmIHNvLCBmb3IKLQkgKiBvcmlnaW5hbCBicmFpbmRhbWFnZWQgSUJNIEZFUlIgY291cGxpbmcuCi0JICovCi0JaWYgKGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICYmICFjcHVfaGFzX2ZwdSkKLQkJc2V0dXBfaXJxKEZQVV9JUlEsICZmcHVfaXJxKTsKLQotCWlycV9jdHhfaW5pdChzbXBfcHJvY2Vzc29yX2lkKCkpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2k4MjU5XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmE1N2ExNS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaTgyNTlfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDUxMiArMCwwIEBACi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLSNpbmNsdWRlIDxsaW51eC9yYW5kb20uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KLSNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KLQotI2luY2x1ZGUgPGFzbS9hY3BpLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vaHdfaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vZGVzYy5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2k4MjU5Lmg+Ci0KLS8qCi0gKiBDb21tb24gcGxhY2UgdG8gZGVmaW5lIGFsbCB4ODYgSVJRIHZlY3RvcnMKLSAqCi0gKiBUaGlzIGJ1aWxkcyB1cCB0aGUgSVJRIGhhbmRsZXIgc3R1YnMgdXNpbmcgc29tZSB1Z2x5IG1hY3JvcyBpbiBpcnEuaAotICoKLSAqIFRoZXNlIG1hY3JvcyBjcmVhdGUgdGhlIGxvdy1sZXZlbCBhc3NlbWJseSBJUlEgcm91dGluZXMgdGhhdCBzYXZlCi0gKiByZWdpc3RlciBjb250ZXh0IGFuZCBjYWxsIGRvX0lSUSgpLiBkb19JUlEoKSB0aGVuIGRvZXMgYWxsIHRoZQotICogb3BlcmF0aW9ucyB0aGF0IGFyZSBuZWVkZWQgdG8ga2VlcCB0aGUgQVQgKG9yIFNNUCBJT0FQSUMpCi0gKiBpbnRlcnJ1cHQtY29udHJvbGxlciBoYXBweS4KLSAqLwotCi0jZGVmaW5lIEJJKHgseSkgXAotCUJVSUxEX0lSUSh4IyN5KQotCi0jZGVmaW5lIEJVSUxEXzE2X0lSUVMoeCkgXAotCUJJKHgsMCkgQkkoeCwxKSBCSSh4LDIpIEJJKHgsMykgXAotCUJJKHgsNCkgQkkoeCw1KSBCSSh4LDYpIEJJKHgsNykgXAotCUJJKHgsOCkgQkkoeCw5KSBCSSh4LGEpIEJJKHgsYikgXAotCUJJKHgsYykgQkkoeCxkKSBCSSh4LGUpIEJJKHgsZikKLQotLyoKLSAqIElTQSBQSUMgb3IgbG93IElPLUFQSUMgdHJpZ2dlcmVkIChJTlRBLWN5Y2xlIG9yIEFQSUMpIGludGVycnVwdHM6Ci0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIHRvIHZlY3RvcnMgMHgzMC0weDNmKQotICovCi0KLS8qCi0gKiBUaGUgSU8tQVBJQyBnaXZlcyB1cyBtYW55IG1vcmUgaW50ZXJydXB0IHNvdXJjZXMuIE1vc3Qgb2YgdGhlc2UKLSAqIGFyZSB1bnVzZWQgYnV0IGFuIFNNUCBzeXN0ZW0gaXMgc3VwcG9zZWQgdG8gaGF2ZSBlbm91Z2ggbWVtb3J5IC4uLgotICogc29tZXRpbWVzIChtb3N0bHkgd3J0LiBodyBidWdzKSB3ZSBnZXQgY29ycnVwdGVkIHZlY3RvcnMgYWxsCi0gKiBhY3Jvc3MgdGhlIHNwZWN0cnVtLCBzbyB3ZSByZWFsbHkgd2FudCB0byBiZSBwcmVwYXJlZCB0byBnZXQgYWxsCi0gKiBvZiB0aGVzZS4gUGx1cywgbW9yZSBwb3dlcmZ1bCBzeXN0ZW1zIG1pZ2h0IGhhdmUgbW9yZSB0aGFuIDY0Ci0gKiBJTy1BUElDIHJlZ2lzdGVycy4KLSAqCi0gKiAodGhlc2UgYXJlIHVzdWFsbHkgbWFwcGVkIGludG8gdGhlIDB4MzAtMHhmZiB2ZWN0b3IgcmFuZ2UpCi0gKi8KLQkJCQkgICAgICBCVUlMRF8xNl9JUlFTKDB4MikgQlVJTERfMTZfSVJRUygweDMpCi1CVUlMRF8xNl9JUlFTKDB4NCkgQlVJTERfMTZfSVJRUygweDUpIEJVSUxEXzE2X0lSUVMoMHg2KSBCVUlMRF8xNl9JUlFTKDB4NykKLUJVSUxEXzE2X0lSUVMoMHg4KSBCVUlMRF8xNl9JUlFTKDB4OSkgQlVJTERfMTZfSVJRUygweGEpIEJVSUxEXzE2X0lSUVMoMHhiKQotQlVJTERfMTZfSVJRUygweGMpIEJVSUxEXzE2X0lSUVMoMHhkKSBCVUlMRF8xNl9JUlFTKDB4ZSkgQlVJTERfMTZfSVJRUygweGYpCi0KLSN1bmRlZiBCVUlMRF8xNl9JUlFTCi0jdW5kZWYgQkkKLQotCi0jZGVmaW5lIElSUSh4LHkpIFwKLQlJUlEjI3gjI3kjI19pbnRlcnJ1cHQKLQotI2RlZmluZSBJUlFMSVNUXzE2KHgpIFwKLQlJUlEoeCwwKSwgSVJRKHgsMSksIElSUSh4LDIpLCBJUlEoeCwzKSwgXAotCUlSUSh4LDQpLCBJUlEoeCw1KSwgSVJRKHgsNiksIElSUSh4LDcpLCBcCi0JSVJRKHgsOCksIElSUSh4LDkpLCBJUlEoeCxhKSwgSVJRKHgsYiksIFwKLQlJUlEoeCxjKSwgSVJRKHgsZCksIElSUSh4LGUpLCBJUlEoeCxmKQotCi0vKiBmb3IgdGhlIGlycSB2ZWN0b3JzICovCi1zdGF0aWMgdm9pZCAoKl9faW5pdGRhdGEgaW50ZXJydXB0W05SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1JdKSh2b2lkKSA9IHsKLQkJCQkJICBJUlFMSVNUXzE2KDB4MiksIElSUUxJU1RfMTYoMHgzKSwKLQlJUlFMSVNUXzE2KDB4NCksIElSUUxJU1RfMTYoMHg1KSwgSVJRTElTVF8xNigweDYpLCBJUlFMSVNUXzE2KDB4NyksCi0JSVJRTElTVF8xNigweDgpLCBJUlFMSVNUXzE2KDB4OSksIElSUUxJU1RfMTYoMHhhKSwgSVJRTElTVF8xNigweGIpLAotCUlSUUxJU1RfMTYoMHhjKSwgSVJRTElTVF8xNigweGQpLCBJUlFMSVNUXzE2KDB4ZSksIElSUUxJU1RfMTYoMHhmKQotfTsKLQotI3VuZGVmIElSUQotI3VuZGVmIElSUUxJU1RfMTYKLQotLyoKLSAqIFRoaXMgaXMgdGhlICdsZWdhY3knIDgyNTlBIFByb2dyYW1tYWJsZSBJbnRlcnJ1cHQgQ29udHJvbGxlciwKLSAqIHByZXNlbnQgaW4gdGhlIG1ham9yaXR5IG9mIFBDL0FUIGJveGVzLgotICogcGx1cyBzb21lIGdlbmVyaWMgeDg2IHNwZWNpZmljIHRoaW5ncyBpZiBnZW5lcmljIHNwZWNpZmljcyBtYWtlcwotICogYW55IHNlbnNlIGF0IGFsbC4KLSAqIHRoaXMgZmlsZSBzaG91bGQgYmVjb21lIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmMgd2hlbiB0aGUgb2xkIGlycS5jCi0gKiBtb3ZlcyB0byBhcmNoIGluZGVwZW5kZW50IGxhbmQKLSAqLwotCi1zdGF0aWMgaW50IGk4MjU5QV9hdXRvX2VvaTsKLURFRklORV9TUElOTE9DSyhpODI1OUFfbG9jayk7Ci1zdGF0aWMgdm9pZCBtYXNrX2FuZF9hY2tfODI1OUEodW5zaWduZWQgaW50KTsKLQotc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpODI1OUFfY2hpcCA9IHsKLQkubmFtZQkJPSAiWFQtUElDIiwKLQkubWFzawkJPSBkaXNhYmxlXzgyNTlBX2lycSwKLQkuZGlzYWJsZQk9IGRpc2FibGVfODI1OUFfaXJxLAotCS51bm1hc2sJCT0gZW5hYmxlXzgyNTlBX2lycSwKLQkubWFza19hY2sJPSBtYXNrX2FuZF9hY2tfODI1OUEsCi19OwotCi0vKgotICogODI1OUEgUElDIGZ1bmN0aW9ucyB0byBoYW5kbGUgSVNBIGRldmljZXM6Ci0gKi8KLQotLyoKLSAqIFRoaXMgY29udGFpbnMgdGhlIGlycSBtYXNrIGZvciBib3RoIDgyNTlBIGlycSBjb250cm9sbGVycywKLSAqLwotdW5zaWduZWQgaW50IGNhY2hlZF9pcnFfbWFzayA9IDB4ZmZmZjsKLQotLyoKLSAqIE5vdCBhbGwgSVJRcyBjYW4gYmUgcm91dGVkIHRocm91Z2ggdGhlIElPLUFQSUMsIGVnLiBvbiBjZXJ0YWluIChvbGRlcikKLSAqIGJvYXJkcyB0aGUgdGltZXIgaW50ZXJydXB0IGlzIG5vdCByZWFsbHkgY29ubmVjdGVkIHRvIGFueSBJTy1BUElDIHBpbiwKLSAqIGl0J3MgZmVkIHRvIHRoZSBtYXN0ZXIgODI1OUEncyBJUjAgbGluZSBvbmx5LgotICoKLSAqIEFueSAnMScgYml0IGluIHRoaXMgbWFzayBtZWFucyB0aGUgSVJRIGlzIHJvdXRlZCB0aHJvdWdoIHRoZSBJTy1BUElDLgotICogdGhpcyAnbWl4ZWQgbW9kZScgSVJRIGhhbmRsaW5nIGNvc3RzIG5vdGhpbmcgYmVjYXVzZSBpdCdzIG9ubHkgdXNlZAotICogYXQgSVJRIHNldHVwIHRpbWUuCi0gKi8KLXVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi12b2lkIGRpc2FibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IG1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JY2FjaGVkX2lycV9tYXNrIHw9IG1hc2s7Ci0JaWYgKGlycSAmIDgpCi0JCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwotCWVsc2UKLQkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIFBJQ19NQVNURVJfSU1SKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotfQotCi12b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IH4oMSA8PCBpcnEpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQljYWNoZWRfaXJxX21hc2sgJj0gbWFzazsKLQlpZiAoaXJxICYgOCkKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JZWxzZQotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLWludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBpbnQgbWFzayA9IDE8PGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXQ7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQlpZiAoaXJxIDwgOCkKLQkJcmV0ID0gaW5iKFBJQ19NQVNURVJfQ01EKSAmIG1hc2s7Ci0JZWxzZQotCQlyZXQgPSBpbmIoUElDX1NMQVZFX0NNRCkgJiAobWFzayA+PiA4KTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWRpc2FibGVfaXJxX25vc3luYyhpcnEpOwotCWlvX2FwaWNfaXJxcyAmPSB+KDE8PGlycSk7Ci0Jc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmaTgyNTlBX2NoaXAsIGhhbmRsZV9sZXZlbF9pcnEsCi0JCQkJICAgICAgIlhUIik7Ci0JZW5hYmxlX2lycShpcnEpOwotfQotCi0vKgotICogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRvIGJlIGNhbGxlZCByYXJlbHkuIFN3aXRjaGluZyBiZXR3ZWVuCi0gKiA4MjU5QSByZWdpc3RlcnMgaXMgc2xvdy4KLSAqIFRoaXMgaGFzIHRvIGJlIHByb3RlY3RlZCBieSB0aGUgaXJxIGNvbnRyb2xsZXIgc3BpbmxvY2sKLSAqIGJlZm9yZSBiZWluZyBjYWxsZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGk4MjU5QV9pcnFfcmVhbCh1bnNpZ25lZCBpbnQgaXJxKQotewotCWludCB2YWx1ZTsKLQlpbnQgaXJxbWFzayA9IDE8PGlycTsKLQotCWlmIChpcnEgPCA4KSB7Ci0JCW91dGIoMHgwQixQSUNfTUFTVEVSX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCQl2YWx1ZSA9IGluYihQSUNfTUFTVEVSX0NNRCkgJiBpcnFtYXNrOwotCQlvdXRiKDB4MEEsUElDX01BU1RFUl9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQkJcmV0dXJuIHZhbHVlOwotCX0KLQlvdXRiKDB4MEIsUElDX1NMQVZFX0NNRCk7CS8qIElTUiByZWdpc3RlciAqLwotCXZhbHVlID0gaW5iKFBJQ19TTEFWRV9DTUQpICYgKGlycW1hc2sgPj4gOCk7Ci0Jb3V0YigweDBBLFBJQ19TTEFWRV9DTUQpOwkvKiBiYWNrIHRvIHRoZSBJUlIgcmVnaXN0ZXIgKi8KLQlyZXR1cm4gdmFsdWU7Ci19Ci0KLS8qCi0gKiBDYXJlZnVsISBUaGUgODI1OUEgaXMgYSBmcmFnaWxlIGJlYXN0LCBpdCBwcmV0dHkKLSAqIG11Y2ggX2hhc18gdG8gYmUgZG9uZSBleGFjdGx5IGxpa2UgdGhpcyAobWFzayBpdAotICogZmlyc3QsIF90aGVuXyBzZW5kIHRoZSBFT0ksIGFuZCB0aGUgb3JkZXIgb2YgRU9JCi0gKiB0byB0aGUgdHdvIDgyNTlzIGlzIGltcG9ydGFudCEKLSAqLwotc3RhdGljIHZvaWQgbWFza19hbmRfYWNrXzgyNTlBKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgaW50IGlycW1hc2sgPSAxIDw8IGlycTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JLyoKLQkgKiBMaWdodHdlaWdodCBzcHVyaW91cyBJUlEgZGV0ZWN0aW9uLiBXZSBkbyBub3Qgd2FudAotCSAqIHRvIG92ZXJkbyBzcHVyaW91cyBJUlEgaGFuZGxpbmcgLSBpdCdzIHVzdWFsbHkgYSBzaWduCi0JICogb2YgaGFyZHdhcmUgcHJvYmxlbXMsIHNvIHdlIG9ubHkgZG8gdGhlIGNoZWNrcyB3ZSBjYW4KLQkgKiBkbyB3aXRob3V0IHNsb3dpbmcgZG93biBnb29kIGhhcmR3YXJlIHVubmVjZXNzYXJpbHkuCi0JICoKLQkgKiBOb3RlIHRoYXQgSVJRNyBhbmQgSVJRMTUgKHRoZSB0d28gc3B1cmlvdXMgSVJRcwotCSAqIHVzdWFsbHkgcmVzdWx0aW5nIGZyb20gdGhlIDgyNTlBLTF8MiBQSUNzKSBvY2N1cgotCSAqIGV2ZW4gaWYgdGhlIElSUSBpcyBtYXNrZWQgaW4gdGhlIDgyNTlBLiBUaHVzIHdlCi0JICogY2FuIGNoZWNrIHNwdXJpb3VzIDgyNTlBIElSUXMgd2l0aG91dCBkb2luZyB0aGUKLQkgKiBxdWl0ZSBzbG93IGk4MjU5QV9pcnFfcmVhbCgpIGNhbGwgZm9yIGV2ZXJ5IElSUS4KLQkgKiBUaGlzIGRvZXMgbm90IGNvdmVyIDEwMCUgb2Ygc3B1cmlvdXMgaW50ZXJydXB0cywKLQkgKiBidXQgc2hvdWxkIGJlIGVub3VnaCB0byB3YXJuIHRoZSB1c2VyIHRoYXQgdGhlcmUKLQkgKiBpcyBzb21ldGhpbmcgYmFkIGdvaW5nIG9uIC4uLgotCSAqLwotCWlmIChjYWNoZWRfaXJxX21hc2sgJiBpcnFtYXNrKQotCQlnb3RvIHNwdXJpb3VzXzgyNTlBX2lycTsKLQljYWNoZWRfaXJxX21hc2sgfD0gaXJxbWFzazsKLQotaGFuZGxlX3JlYWxfaXJxOgotCWlmIChpcnEgJiA4KSB7Ci0JCWluYihQSUNfU0xBVkVfSU1SKTsJLyogRFVNTVkgLSAoZG8gd2UgbmVlZCB0aGlzPykgKi8KLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgUElDX1NMQVZFX0lNUik7Ci0JCS8qICdTcGVjaWZpYyBFT0knIHRvIHNsYXZlICovCi0JCW91dGIoMHg2MCsoaXJxJjcpLFBJQ19TTEFWRV9DTUQpOwotCQkgLyogJ1NwZWNpZmljIEVPSScgdG8gbWFzdGVyLUlSUTIgKi8KLQkJb3V0YigweDYwK1BJQ19DQVNDQURFX0lSLFBJQ19NQVNURVJfQ01EKTsKLQl9IGVsc2UgewotCQlpbmIoUElDX01BU1RFUl9JTVIpOwkvKiBEVU1NWSAtIChkbyB3ZSBuZWVkIHRoaXM/KSAqLwotCQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOwotCQkvKiAnU3BlY2lmaWMgRU9JJyB0byBtYXN0ZXIgKi8KLQkJb3V0YigweDYwK2lycSxQSUNfTUFTVEVSX0NNRCk7Ci0JfQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci0JcmV0dXJuOwotCi1zcHVyaW91c184MjU5QV9pcnE6Ci0JLyoKLQkgKiB0aGlzIGlzIHRoZSBzbG93IHBhdGggLSBzaG91bGQgaGFwcGVuIHJhcmVseS4KLQkgKi8KLQlpZiAoaTgyNTlBX2lycV9yZWFsKGlycSkpCi0JCS8qCi0JCSAqIG9vcHMsIHRoZSBJUlEgX2lzXyBpbiBzZXJ2aWNlIGFjY29yZGluZyB0byB0aGUKLQkJICogODI1OUEgLSBub3Qgc3B1cmlvdXMsIGdvIGhhbmRsZSBpdC4KLQkJICovCi0JCWdvdG8gaGFuZGxlX3JlYWxfaXJxOwotCi0JewotCQlzdGF0aWMgaW50IHNwdXJpb3VzX2lycV9tYXNrOwotCQkvKgotCQkgKiBBdCB0aGlzIHBvaW50IHdlIGNhbiBiZSBzdXJlIHRoZSBJUlEgaXMgc3B1cmlvdXMsCi0JCSAqIGxldHMgQUNLIGFuZCByZXBvcnQgaXQuIFtvbmNlIHBlciBJUlFdCi0JCSAqLwotCQlpZiAoIShzcHVyaW91c19pcnFfbWFzayAmIGlycW1hc2spKSB7Ci0JCQlwcmludGsoS0VSTl9ERUJVRwotCQkJICAgICAgICJzcHVyaW91cyA4MjU5QSBpbnRlcnJ1cHQ6IElSUSVkLlxuIiwgaXJxKTsKLQkJCXNwdXJpb3VzX2lycV9tYXNrIHw9IGlycW1hc2s7Ci0JCX0KLQkJYXRvbWljX2luYygmaXJxX2Vycl9jb3VudCk7Ci0JCS8qCi0JCSAqIFRoZW9yZXRpY2FsbHkgd2UgZG8gbm90IGhhdmUgdG8gaGFuZGxlIHRoaXMgSVJRLAotCQkgKiBidXQgaW4gTGludXggdGhpcyBkb2VzIG5vdCBjYXVzZSBwcm9ibGVtcyBhbmQgaXMKLQkJICogc2ltcGxlciBmb3IgdXMuCi0JCSAqLwotCQlnb3RvIGhhbmRsZV9yZWFsX2lycTsKLQl9Ci19Ci0KLXN0YXRpYyBjaGFyIGlycV90cmlnZ2VyWzJdOwotLyoqCi0gKiBFTENSIHJlZ2lzdGVycyAoMHg0ZDAsIDB4NGQxKSBjb250cm9sIGVkZ2UvbGV2ZWwgb2YgSVJRCi0gKi8KLXN0YXRpYyB2b2lkIHJlc3RvcmVfRUxDUihjaGFyICp0cmlnZ2VyKQotewotCW91dGIodHJpZ2dlclswXSwgMHg0ZDApOwotCW91dGIodHJpZ2dlclsxXSwgMHg0ZDEpOwotfQotCi1zdGF0aWMgdm9pZCBzYXZlX0VMQ1IoY2hhciAqdHJpZ2dlcikKLXsKLQkvKiBJUlEgMCwxLDIsOCwxMyBhcmUgbWFya2VkIGFzIHJlc2VydmVkICovCi0JdHJpZ2dlclswXSA9IGluYigweDRkMCkgJiAweEY4OwotCXRyaWdnZXJbMV0gPSBpbmIoMHg0ZDEpICYgMHhERTsKLX0KLQotc3RhdGljIGludCBpODI1OUFfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JaW5pdF84MjU5QShpODI1OUFfYXV0b19lb2kpOwotCXJlc3RvcmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3N1c3BlbmQoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQotewotCXNhdmVfRUxDUihpcnFfdHJpZ2dlcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgaTgyNTlBX3NodXRkb3duKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCi17Ci0JLyogUHV0IHRoZSBpODI1OUEgaW50byBhIHF1aWVzY2VudCBzdGF0ZSB0aGF0Ci0JICogdGhlIGtlcm5lbCBpbml0aWFsaXphdGlvbiBjb2RlIGNhbiBnZXQgaXQKLQkgKiBvdXQgb2YuCi0JICovCi0Jb3V0YigweGZmLCBQSUNfTUFTVEVSX0lNUik7CS8qIG1hc2sgYWxsIG9mIDgyNTlBLTEgKi8KLQlvdXRiKDB4ZmYsIFBJQ19TTEFWRV9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIGk4MjU5X3N5c2Rldl9jbGFzcyA9IHsKLQkubmFtZSA9ICJpODI1OSIsCi0JLnN1c3BlbmQgPSBpODI1OUFfc3VzcGVuZCwKLQkucmVzdW1lID0gaTgyNTlBX3Jlc3VtZSwKLQkuc2h1dGRvd24gPSBpODI1OUFfc2h1dGRvd24sCi19OwotCi1zdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2k4MjU5QSA9IHsKLQkuaWQJPSAwLAotCS5jbHMJPSAmaTgyNTlfc3lzZGV2X2NsYXNzLAotfTsKLQotc3RhdGljIGludCBfX2luaXQgaTgyNTlBX2luaXRfc3lzZnModm9pZCkKLXsKLQlpbnQgZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmk4MjU5X3N5c2Rldl9jbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9pODI1OUEpOwotCXJldHVybiBlcnJvcjsKLX0KLQotZGV2aWNlX2luaXRjYWxsKGk4MjU5QV9pbml0X3N5c2ZzKTsKLQotdm9pZCBpbml0XzgyNTlBKGludCBhdXRvX2VvaSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaTgyNTlBX2F1dG9fZW9pID0gYXV0b19lb2k7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCW91dGIoMHhmZiwgUElDX01BU1RFUl9JTVIpOwkvKiBtYXNrIGFsbCBvZiA4MjU5QS0xICovCi0Jb3V0YigweGZmLCBQSUNfU0xBVkVfSU1SKTsJLyogbWFzayBhbGwgb2YgODI1OUEtMiAqLwotCi0JLyoKLQkgKiBvdXRiX3BpYyAtIHRoaXMgaGFzIHRvIHdvcmsgb24gYSB3aWRlIHJhbmdlIG9mIFBDIGhhcmR3YXJlLgotCSAqLwotCW91dGJfcGljKDB4MTEsIFBJQ19NQVNURVJfQ01EKTsJLyogSUNXMTogc2VsZWN0IDgyNTlBLTEgaW5pdCAqLwotCS8qIElDVzI6IDgyNTlBLTEgSVIwLTcgbWFwcGVkIHRvIDB4MzAtMHgzNyAqLwotCW91dGJfcGljKElSUTBfVkVDVE9SLCBQSUNfTUFTVEVSX0lNUik7Ci0JLyogODI1OUEtMSAodGhlIG1hc3RlcikgaGFzIGEgc2xhdmUgb24gSVIyICovCi0Jb3V0Yl9waWMoMHgwNCwgUElDX01BU1RFUl9JTVIpOwotCWlmIChhdXRvX2VvaSkJLyogbWFzdGVyIGRvZXMgQXV0byBFT0kgKi8KLQkJb3V0Yl9waWMoTUFTVEVSX0lDVzRfREVGQVVMVCB8IFBJQ19JQ1c0X0FFT0ksIFBJQ19NQVNURVJfSU1SKTsKLQllbHNlCQkvKiBtYXN0ZXIgZXhwZWN0cyBub3JtYWwgRU9JICovCi0JCW91dGJfcGljKE1BU1RFUl9JQ1c0X0RFRkFVTFQsIFBJQ19NQVNURVJfSU1SKTsKLQotCW91dGJfcGljKDB4MTEsIFBJQ19TTEFWRV9DTUQpOwkvKiBJQ1cxOiBzZWxlY3QgODI1OUEtMiBpbml0ICovCi0JLyogSUNXMjogODI1OUEtMiBJUjAtNyBtYXBwZWQgdG8gMHgzOC0weDNmICovCi0Jb3V0Yl9waWMoSVJROF9WRUNUT1IsIFBJQ19TTEFWRV9JTVIpOwotCS8qIDgyNTlBLTIgaXMgYSBzbGF2ZSBvbiBtYXN0ZXIncyBJUjIgKi8KLQlvdXRiX3BpYyhQSUNfQ0FTQ0FERV9JUiwgUElDX1NMQVZFX0lNUik7Ci0JLyogKHNsYXZlJ3Mgc3VwcG9ydCBmb3IgQUVPSSBpbiBmbGF0IG1vZGUgaXMgdG8gYmUgaW52ZXN0aWdhdGVkKSAqLwotCW91dGJfcGljKFNMQVZFX0lDVzRfREVGQVVMVCwgUElDX1NMQVZFX0lNUik7Ci0KLQlpZiAoYXV0b19lb2kpCi0JCS8qCi0JCSAqIEluIEFFT0kgbW9kZSB3ZSBqdXN0IGhhdmUgdG8gbWFzayB0aGUgaW50ZXJydXB0Ci0JCSAqIHdoZW4gYWNraW5nLgotCQkgKi8KLQkJaTgyNTlBX2NoaXAubWFza19hY2sgPSBkaXNhYmxlXzgyNTlBX2lycTsKLQllbHNlCi0JCWk4MjU5QV9jaGlwLm1hc2tfYWNrID0gbWFza19hbmRfYWNrXzgyNTlBOwotCi0JdWRlbGF5KDEwMCk7CQkvKiB3YWl0IGZvciA4MjU5QSB0byBpbml0aWFsaXplICovCi0KLQlvdXRiKGNhY2hlZF9tYXN0ZXJfbWFzaywgUElDX01BU1RFUl9JTVIpOyAvKiByZXN0b3JlIG1hc3RlciBJUlEgbWFzayAqLwotCW91dGIoY2FjaGVkX3NsYXZlX21hc2ssIFBJQ19TTEFWRV9JTVIpOwkgIC8qIHJlc3RvcmUgc2xhdmUgSVJRIG1hc2sgKi8KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7Ci19Ci0KLQotCi0KLS8qCi0gKiBJUlEyIGlzIGNhc2NhZGUgaW50ZXJydXB0IHRvIHNlY29uZCBpbnRlcnJ1cHQgY29udHJvbGxlcgotICovCi0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTIgPSB7Ci0JLmhhbmRsZXIgPSBub19hY3Rpb24sCi0JLm1hc2sgPSBDUFVfTUFTS19OT05FLAotCS5uYW1lID0gImNhc2NhZGUiLAotfTsKLURFRklORV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSkgPSB7Ci0JWzAgLi4uIElSUTBfVkVDVE9SIC0gMV0gPSAtMSwKLQlbSVJRMF9WRUNUT1JdID0gMCwKLQlbSVJRMV9WRUNUT1JdID0gMSwKLQlbSVJRMl9WRUNUT1JdID0gMiwKLQlbSVJRM19WRUNUT1JdID0gMywKLQlbSVJRNF9WRUNUT1JdID0gNCwKLQlbSVJRNV9WRUNUT1JdID0gNSwKLQlbSVJRNl9WRUNUT1JdID0gNiwKLQlbSVJRN19WRUNUT1JdID0gNywKLQlbSVJROF9WRUNUT1JdID0gOCwKLQlbSVJROV9WRUNUT1JdID0gOSwKLQlbSVJRMTBfVkVDVE9SXSA9IDEwLAotCVtJUlExMV9WRUNUT1JdID0gMTEsCi0JW0lSUTEyX1ZFQ1RPUl0gPSAxMiwKLQlbSVJRMTNfVkVDVE9SXSA9IDEzLAotCVtJUlExNF9WRUNUT1JdID0gMTQsCi0JW0lSUTE1X1ZFQ1RPUl0gPSAxNSwKLQlbSVJRMTVfVkVDVE9SICsgMSAuLi4gTlJfVkVDVE9SUyAtIDFdID0gLTEKLX07Ci0KLXZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlpbml0X2JzcF9BUElDKCk7Ci0JaW5pdF84MjU5QSgwKTsKLQotCWZvciAoaSA9IDA7IGkgPCBOUl9JUlFTOyBpKyspIHsKLQkJaXJxX2Rlc2NbaV0uc3RhdHVzID0gSVJRX0RJU0FCTEVEOwotCQlpcnFfZGVzY1tpXS5hY3Rpb24gPSBOVUxMOwotCQlpcnFfZGVzY1tpXS5kZXB0aCA9IDE7Ci0KLQkJaWYgKGkgPCAxNikgewotCQkJLyoKLQkJCSAqIDE2IG9sZC1zdHlsZSBJTlRBLWN5Y2xlIGludGVycnVwdHM6Ci0JCQkgKi8KLQkJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKLQkJCQkJCSAgICAgIGhhbmRsZV9sZXZlbF9pcnEsICJYVCIpOwotCQl9IGVsc2UgewotCQkJLyoKLQkJCSAqICdoaWdoJyBQQ0kgSVJRcyBmaWxsZWQgaW4gb24gZGVtYW5kCi0JCQkgKi8KLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmbm9faXJxX2NoaXA7Ci0JCX0KLQl9Ci19Ci0KLXZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7Ci0KLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQotewotCWludCBpOwotCi0JaW5pdF9JU0FfaXJxcygpOwotCS8qCi0JICogQ292ZXIgdGhlIHdob2xlIHZlY3RvciBzcGFjZSwgbm8gdmVjdG9yIGNhbiBlc2NhcGUKLQkgKiB1cy4gKHNvbWUgb2YgdGhlc2Ugd2lsbCBiZSBvdmVycmlkZGVuIGFuZCBiZWNvbWUKLQkgKiAnc3BlY2lhbCcgU01QIGludGVycnVwdHMpCi0JICovCi0JZm9yIChpID0gMDsgaSA8IChOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SKTsgaSsrKSB7Ci0JCWludCB2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyBpOwotCQlpZiAodmVjdG9yICE9IElBMzJfU1lTQ0FMTF9WRUNUT1IpCi0JCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQl9Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JLyoKLQkgKiBUaGUgcmVzY2hlZHVsZSBpbnRlcnJ1cHQgaXMgYSBDUFUtdG8tQ1BVIHJlc2NoZWR1bGUtaGVscGVyCi0JICogSVBJLCBkcml2ZW4gYnkgd2FrZXVwLgotCSAqLwotCXNldF9pbnRyX2dhdGUoUkVTQ0hFRFVMRV9WRUNUT1IsIHJlc2NoZWR1bGVfaW50ZXJydXB0KTsKLQotCS8qIElQSXMgZm9yIGludmFsaWRhdGlvbiAqLwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzAsIGludmFsaWRhdGVfaW50ZXJydXB0MCk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMSwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQxKTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsyLCBpbnZhbGlkYXRlX2ludGVycnVwdDIpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzMsIGludmFsaWRhdGVfaW50ZXJydXB0Myk7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNCwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ0KTsKLQlzZXRfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs1LCBpbnZhbGlkYXRlX2ludGVycnVwdDUpOwotCXNldF9pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzYsIGludmFsaWRhdGVfaW50ZXJydXB0Nik7Ci0Jc2V0X2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNywgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ3KTsKLQotCS8qIElQSSBmb3IgZ2VuZXJpYyBmdW5jdGlvbiBjYWxsICovCi0Jc2V0X2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOwotCi0JLyogTG93IHByaW9yaXR5IElQSSB0byBjbGVhbnVwIGFmdGVyIG1vdmluZyBhbiBpcnEgKi8KLQlzZXRfaW50cl9nYXRlKElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SLCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCk7Ci0jZW5kaWYKLQlzZXRfaW50cl9nYXRlKFRIRVJNQUxfQVBJQ19WRUNUT1IsIHRoZXJtYWxfaW50ZXJydXB0KTsKLQlzZXRfaW50cl9nYXRlKFRIUkVTSE9MRF9BUElDX1ZFQ1RPUiwgdGhyZXNob2xkX2ludGVycnVwdCk7Ci0KLQkvKiBzZWxmIGdlbmVyYXRlZCBJUEkgZm9yIGxvY2FsIEFQSUMgdGltZXIgKi8KLQlzZXRfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOwotCi0JLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KLQlzZXRfaW50cl9nYXRlKFNQVVJJT1VTX0FQSUNfVkVDVE9SLCBzcHVyaW91c19pbnRlcnJ1cHQpOwotCXNldF9pbnRyX2dhdGUoRVJST1JfQVBJQ19WRUNUT1IsIGVycm9yX2ludGVycnVwdCk7Ci0KLQlpZiAoIWFjcGlfaW9hcGljKQotCQlzZXR1cF9pcnEoMiwgJmlycTIpOwotfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzMyLmMKaW5kZXggYTQwZDU0Zi4uNjAzMjYxYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY18zMi5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KQEAgLTU4LDcgKzU5LDcgQEAKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soaW9hcGljX2xvY2spOwogc3RhdGljIERFRklORV9TUElOTE9DSyh2ZWN0b3JfbG9jayk7CiAKLWludCB0aW1lcl9vdmVyXzgyNTQgX19pbml0ZGF0YSA9IDE7CitpbnQgdGltZXJfdGhyb3VnaF84MjU5IF9faW5pdGRhdGE7CiAKIC8qCiAgKglJcyB0aGUgU2lTIEFQSUMgcm13IGJ1ZyBwcmVzZW50ID8KQEAgLTcyLDE1ICs3MywyMSBAQAogaW50IG5yX2lvYXBpY19yZWdpc3RlcnNbTUFYX0lPX0FQSUNTXTsKIAogLyogSS9PIEFQSUMgZW50cmllcyAqLwotc3RydWN0IG1wY19jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKK3N0cnVjdCBtcF9jb25maWdfaW9hcGljIG1wX2lvYXBpY3NbTUFYX0lPX0FQSUNTXTsKIGludCBucl9pb2FwaWNzOwogCiAvKiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KLXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CitzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CiAKIC8qICMgb2YgTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCiBpbnQgbXBfaXJxX2VudHJpZXM7CiAKKyNpZiBkZWZpbmVkIChDT05GSUdfTUNBKSB8fCBkZWZpbmVkIChDT05GSUdfRUlTQSkKK2ludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKKyNlbmRpZgorCitERUNMQVJFX0JJVE1BUChtcF9idXNfbm90X3BjaSwgTUFYX01QX0JVU1NFUyk7CisKIHN0YXRpYyBpbnQgZGlzYWJsZV90aW1lcl9waW5fMSBfX2luaXRkYXRhOwogCiAvKgpAQCAtMTEwLDcgKzExNyw3IEBACiBzdGF0aWMgX19hdHRyaWJ1dGVfY29uc3RfXyBzdHJ1Y3QgaW9fYXBpYyBfX2lvbWVtICppb19hcGljX2Jhc2UoaW50IGlkeCkKIHsKIAlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSBfX2ZpeF90b192aXJ0KEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCkKLQkJKyAobXBfaW9hcGljc1tpZHhdLm1wY19hcGljYWRkciAmIH5QQUdFX01BU0spOworCQkrIChtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW9fYXBpY19yZWFkKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKQpAQCAtMjM5LDcgKzI0Niw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBfX21vZGlmeV9JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSwgdW5zaWduZWQgbG9uZyBlbmFibGUsIHVuc2lnbmVkIGxvbmcgZGlzYWJsZSkKK3N0YXRpYyB2b2lkIF9fbW9kaWZ5X0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEsIHVuc2lnbmVkIGxvbmcgZW5hYmxlLCB1bnNpZ25lZCBsb25nIGRpc2FibGUpCiB7CiAJc3RydWN0IGlycV9waW5fbGlzdCAqZW50cnkgPSBpcnFfMl9waW4gKyBpcnE7CiAJdW5zaWduZWQgaW50IHBpbiwgcmVnOwpAQCAtMjU5LDMwICsyNjYsMzIgQEAKIH0KIAogLyogbWFzayA9IDEgKi8KLXN0YXRpYyB2b2lkIF9fbWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIF9fbWFza19JT19BUElDX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewotCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgMHgwMDAxMDAwMCwgMCk7CisJX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCBJT19BUElDX1JFRElSX01BU0tFRCwgMCk7CiB9CiAKIC8qIG1hc2sgPSAwICovCi1zdGF0aWMgdm9pZCBfX3VubWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIF9fdW5tYXNrX0lPX0FQSUNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7Ci0JX19tb2RpZnlfSU9fQVBJQ19pcnEoaXJxLCAwLCAweDAwMDEwMDAwKTsKKwlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDAsIElPX0FQSUNfUkVESVJfTUFTS0VEKTsKIH0KIAogLyogbWFzayA9IDEsIHRyaWdnZXIgPSAwICovCi1zdGF0aWMgdm9pZCBfX21hc2tfYW5kX2VkZ2VfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX21hc2tfYW5kX2VkZ2VfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDB4MDAwMTAwMDAsIDB4MDAwMDgwMDApOworCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgSU9fQVBJQ19SRURJUl9NQVNLRUQsCisJCQkJSU9fQVBJQ19SRURJUl9MRVZFTF9UUklHR0VSKTsKIH0KIAogLyogbWFzayA9IDAsIHRyaWdnZXIgPSAxICovCi1zdGF0aWMgdm9pZCBfX3VubWFza19hbmRfbGV2ZWxfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBfX3VubWFza19hbmRfbGV2ZWxfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKLQlfX21vZGlmeV9JT19BUElDX2lycShpcnEsIDB4MDAwMDgwMDAsIDB4MDAwMTAwMDApOworCV9fbW9kaWZ5X0lPX0FQSUNfaXJxKGlycSwgSU9fQVBJQ19SRURJUl9MRVZFTF9UUklHR0VSLAorCQkJCUlPX0FQSUNfUkVESVJfTUFTS0VEKTsKIH0KIAotc3RhdGljIHZvaWQgbWFza19JT19BUElDX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIG1hc2tfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0yOTEsNyArMzAwLDcgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCB1bm1hc2tfSU9fQVBJQ19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC0zMDMsNyArMzEyLDcgQEAKIHN0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUNfcGluKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcGluKQogewogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5OwotCQorCiAJLyogQ2hlY2sgZGVsaXZlcnlfbW9kZSB0byBiZSBzdXJlIHdlJ3JlIG5vdCBjbGVhcmluZyBhbiBTTUkgcGluICovCiAJZW50cnkgPSBpb2FwaWNfcmVhZF9lbnRyeShhcGljLCBwaW4pOwogCWlmIChlbnRyeS5kZWxpdmVyeV9tb2RlID09IGRlc3RfU01JKQpAQCAtMzE1LDcgKzMyNCw3IEBACiAJaW9hcGljX21hc2tfZW50cnkoYXBpYywgcGluKTsKIH0KIAotc3RhdGljIHZvaWQgY2xlYXJfSU9fQVBJQyAodm9pZCkKK3N0YXRpYyB2b2lkIGNsZWFyX0lPX0FQSUModm9pZCkKIHsKIAlpbnQgYXBpYywgcGluOwogCkBAIC0zMzIsNyArMzQxLDcgQEAKIAlzdHJ1Y3QgaXJxX3Bpbl9saXN0ICplbnRyeSA9IGlycV8yX3BpbiArIGlycTsKIAl1bnNpZ25lZCBpbnQgYXBpY2lkX3ZhbHVlOwogCWNwdW1hc2tfdCB0bXA7Ci0JCisKIAljcHVzX2FuZCh0bXAsIGNwdW1hc2ssIGNwdV9vbmxpbmVfbWFwKTsKIAlpZiAoY3B1c19lbXB0eSh0bXApKQogCQl0bXAgPSBUQVJHRVRfQ1BVUzsKQEAgLTM2MSw3ICszNzAsNyBAQAogIyBpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgkvKiBrc3RhdCAqLwogIyBpbmNsdWRlIDxsaW51eC9zbGFiLmg+CQkvKiBrbWFsbG9jKCkgKi8KICMgaW5jbHVkZSA8bGludXgvdGltZXIuaD4KLSAKKwogI2RlZmluZSBJUlFCQUxBTkNFX0NIRUNLX0FSQ0ggLTk5OQogI2RlZmluZSBNQVhfQkFMQU5DRURfSVJRX0lOVEVSVkFMCSg1KkhaKQogI2RlZmluZSBNSU5fQkFMQU5DRURfSVJRX0lOVEVSVkFMCShIWi8yKQpAQCAtMzczLDE0ICszODIsMTQgQEAKIHN0YXRpYyBsb25nIGJhbGFuY2VkX2lycV9pbnRlcnZhbCBfX3JlYWRfbW9zdGx5ID0gTUFYX0JBTEFOQ0VEX0lSUV9JTlRFUlZBTDsKIAogc3RhdGljIHN0cnVjdCBpcnFfY3B1X2luZm8gewotCXVuc2lnbmVkIGxvbmcgKiBsYXN0X2lycTsKLQl1bnNpZ25lZCBsb25nICogaXJxX2RlbHRhOworCXVuc2lnbmVkIGxvbmcgKmxhc3RfaXJxOworCXVuc2lnbmVkIGxvbmcgKmlycV9kZWx0YTsKIAl1bnNpZ25lZCBsb25nIGlycTsKIH0gaXJxX2NwdV9kYXRhW05SX0NQVVNdOwogCiAjZGVmaW5lIENQVV9JUlEoY3B1KQkJKGlycV9jcHVfZGF0YVtjcHVdLmlycSkKLSNkZWZpbmUgTEFTVF9DUFVfSVJRKGNwdSxpcnEpICAgKGlycV9jcHVfZGF0YVtjcHVdLmxhc3RfaXJxW2lycV0pCi0jZGVmaW5lIElSUV9ERUxUQShjcHUsaXJxKSAJKGlycV9jcHVfZGF0YVtjcHVdLmlycV9kZWx0YVtpcnFdKQorI2RlZmluZSBMQVNUX0NQVV9JUlEoY3B1LCBpcnEpICAgKGlycV9jcHVfZGF0YVtjcHVdLmxhc3RfaXJxW2lycV0pCisjZGVmaW5lIElSUV9ERUxUQShjcHUsIGlycSkgCShpcnFfY3B1X2RhdGFbY3B1XS5pcnFfZGVsdGFbaXJxXSkKIAogI2RlZmluZSBJRExFX0VOT1VHSChjcHUsbm93KSBcCiAJKGlkbGVfY3B1KGNwdSkgJiYgKChub3cpIC0gcGVyX2NwdShpcnFfc3RhdCwgKGNwdSkpLmlkbGVfdGltZXN0YW1wID4gMSkpCkBAIC00MTksOCArNDI4LDggQEAKIAkJCWlmIChjcHUgPT0gLTEpCiAJCQkJY3B1ID0gTlJfQ1BVUy0xOwogCQl9Ci0JfSB3aGlsZSAoIWNwdV9vbmxpbmUoY3B1KSB8fCAhSVJRX0FMTE9XRUQoY3B1LGFsbG93ZWRfbWFzaykgfHwKLQkJCShzZWFyY2hfaWRsZSAmJiAhSURMRV9FTk9VR0goY3B1LG5vdykpKTsKKwl9IHdoaWxlICghY3B1X29ubGluZShjcHUpIHx8ICFJUlFfQUxMT1dFRChjcHUsIGFsbG93ZWRfbWFzaykgfHwKKwkJCShzZWFyY2hfaWRsZSAmJiAhSURMRV9FTk9VR0goY3B1LCBub3cpKSk7CiAKIAlyZXR1cm4gY3B1OwogfQpAQCAtNDMwLDE1ICs0MzksMTQgQEAKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7CiAJY3B1bWFza190IGFsbG93ZWRfbWFzazsKIAl1bnNpZ25lZCBpbnQgbmV3X2NwdTsKLQkJCisKIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCkKLQkJcmV0dXJuOyAKKwkJcmV0dXJuOwogCiAJY3B1c19hbmQoYWxsb3dlZF9tYXNrLCBjcHVfb25saW5lX21hcCwgYmFsYW5jZV9pcnFfYWZmaW5pdHlbaXJxXSk7CiAJbmV3X2NwdSA9IG1vdmUoY3B1LCBhbGxvd2VkX21hc2ssIG5vdywgMSk7Ci0JaWYgKGNwdSAhPSBuZXdfY3B1KSB7CisJaWYgKGNwdSAhPSBuZXdfY3B1KQogCQlzZXRfcGVuZGluZ19pcnEoaXJxLCBjcHVtYXNrX29mX2NwdShuZXdfY3B1KSk7Ci0JfQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcm90YXRlX2lycXNfYW1vbmdfY3B1cyh1bnNpZ25lZCBsb25nIHVzZWZ1bF9sb2FkX3RocmVzaG9sZCkKQEAgLTQ1MCwxNCArNDU4LDE0IEBACiAJCQlpZiAoIWlycV9kZXNjW2pdLmFjdGlvbikKIAkJCQljb250aW51ZTsKIAkJCS8qIElzIGl0IGEgc2lnbmlmaWNhbnQgbG9hZCA/ICAqLwotCQkJaWYgKElSUV9ERUxUQShDUFVfVE9fUEFDS0FHRUlOREVYKGkpLGopIDwKKwkJCWlmIChJUlFfREVMVEEoQ1BVX1RPX1BBQ0tBR0VJTkRFWChpKSwgaikgPAogCQkJCQkJdXNlZnVsX2xvYWRfdGhyZXNob2xkKQogCQkJCWNvbnRpbnVlOwogCQkJYmFsYW5jZV9pcnEoaSwgaik7CiAJCX0KIAl9CiAJYmFsYW5jZWRfaXJxX2ludGVydmFsID0gbWF4KChsb25nKU1JTl9CQUxBTkNFRF9JUlFfSU5URVJWQUwsCi0JCWJhbGFuY2VkX2lycV9pbnRlcnZhbCAtIEJBTEFOQ0VEX0lSUV9MRVNTX0RFTFRBKTsJCisJCWJhbGFuY2VkX2lycV9pbnRlcnZhbCAtIEJBTEFOQ0VEX0lSUV9MRVNTX0RFTFRBKTsKIAlyZXR1cm47CiB9CiAKQEAgLTQ4NiwyMiArNDk0LDIyIEBACiAJCQkvKiBJcyB0aGlzIGFuIGFjdGl2ZSBJUlEgb3IgYmFsYW5jaW5nIGRpc2FibGVkID8gKi8KIAkJCWlmICghaXJxX2Rlc2Nbal0uYWN0aW9uIHx8IGlycV9iYWxhbmNpbmdfZGlzYWJsZWQoaikpCiAJCQkJY29udGludWU7Ci0JCQlpZiAoIHBhY2thZ2VfaW5kZXggPT0gaSApCi0JCQkJSVJRX0RFTFRBKHBhY2thZ2VfaW5kZXgsaikgPSAwOworCQkJaWYgKHBhY2thZ2VfaW5kZXggPT0gaSkKKwkJCQlJUlFfREVMVEEocGFja2FnZV9pbmRleCwgaikgPSAwOwogCQkJLyogRGV0ZXJtaW5lIHRoZSB0b3RhbCBjb3VudCBwZXIgcHJvY2Vzc29yIHBlciBJUlEgKi8KIAkJCXZhbHVlX25vdyA9ICh1bnNpZ25lZCBsb25nKSBrc3RhdF9jcHUoaSkuaXJxc1tqXTsKIAogCQkJLyogRGV0ZXJtaW5lIHRoZSBhY3Rpdml0eSBwZXIgcHJvY2Vzc29yIHBlciBJUlEgKi8KLQkJCWRlbHRhID0gdmFsdWVfbm93IC0gTEFTVF9DUFVfSVJRKGksaik7CisJCQlkZWx0YSA9IHZhbHVlX25vdyAtIExBU1RfQ1BVX0lSUShpLCBqKTsKIAogCQkJLyogVXBkYXRlIGxhc3RfY3B1X2lycVtdW10gZm9yIHRoZSBuZXh0IHRpbWUgKi8KLQkJCUxBU1RfQ1BVX0lSUShpLGopID0gdmFsdWVfbm93OworCQkJTEFTVF9DUFVfSVJRKGksIGopID0gdmFsdWVfbm93OwogCiAJCQkvKiBJZ25vcmUgSVJRcyB3aG9zZSByYXRlIGlzIGxlc3MgdGhhbiB0aGUgY2xvY2sgKi8KIAkJCWlmIChkZWx0YSA8IHVzZWZ1bF9sb2FkX3RocmVzaG9sZCkKIAkJCQljb250aW51ZTsKIAkJCS8qIHVwZGF0ZSB0aGUgbG9hZCBmb3IgdGhlIHByb2Nlc3NvciBvciBwYWNrYWdlIHRvdGFsICovCi0JCQlJUlFfREVMVEEocGFja2FnZV9pbmRleCxqKSArPSBkZWx0YTsKKwkJCUlSUV9ERUxUQShwYWNrYWdlX2luZGV4LCBqKSArPSBkZWx0YTsKIAogCQkJLyogS2VlcCB0cmFjayBvZiB0aGUgaGlnaGVyIG51bWJlcmVkIHNpYmxpbmcgYXMgd2VsbCAqLwogCQkJaWYgKGkgIT0gcGFja2FnZV9pbmRleCkKQEAgLTUyNyw3ICs1MzUsOCBAQAogCW1heF9jcHVfaXJxID0gVUxPTkdfTUFYOwogCiB0cnlhbm90aGVyY3B1OgotCS8qIExvb2sgZm9yIGhlYXZpZXN0IGxvYWRlZCBwcm9jZXNzb3IuCisJLyoKKwkgKiBMb29rIGZvciBoZWF2aWVzdCBsb2FkZWQgcHJvY2Vzc29yLgogCSAqIFdlIG1heSBjb21lIGJhY2sgdG8gZ2V0IHRoZSBuZXh0IGhlYXZpZXN0IGxvYWRlZCBwcm9jZXNzb3IuCiAJICogU2tpcCBwcm9jZXNzb3JzIHdpdGggdHJpdmlhbCBsb2Fkcy4KIAkgKi8KQEAgLTUzNiw3ICs1NDUsNyBAQAogCWZvcl9lYWNoX29ubGluZV9jcHUoaSkgewogCQlpZiAoaSAhPSBDUFVfVE9fUEFDS0FHRUlOREVYKGkpKQogCQkJY29udGludWU7Ci0JCWlmIChtYXhfY3B1X2lycSA8PSBDUFVfSVJRKGkpKSAKKwkJaWYgKG1heF9jcHVfaXJxIDw9IENQVV9JUlEoaSkpCiAJCQljb250aW51ZTsKIAkJaWYgKHRtcF9jcHVfaXJxIDwgQ1BVX0lSUShpKSkgewogCQkJdG1wX2NwdV9pcnEgPSBDUFVfSVJRKGkpOwpAQCAtNTQ1LDggKzU1NCw5IEBACiAJfQogCiAJaWYgKHRtcF9sb2FkZWQgPT0gLTEpIHsKLSAJIC8qIEluIHRoZSBjYXNlIG9mIHNtYWxsIG51bWJlciBvZiBoZWF2eSBpbnRlcnJ1cHQgc291cmNlcywgCi0JICAqIGxvYWRpbmcgc29tZSBvZiB0aGUgY3B1cyB0b28gbXVjaC4gV2UgdXNlIEluZ28ncyBvcmlnaW5hbCAKKwkgLyoKKwkgICogSW4gdGhlIGNhc2Ugb2Ygc21hbGwgbnVtYmVyIG9mIGhlYXZ5IGludGVycnVwdCBzb3VyY2VzLAorCSAgKiBsb2FkaW5nIHNvbWUgb2YgdGhlIGNwdXMgdG9vIG11Y2guIFdlIHVzZSBJbmdvJ3Mgb3JpZ2luYWwKIAkgICogYXBwcm9hY2ggdG8gcm90YXRlIHRoZW0gYXJvdW5kLgogCSAgKi8KIAkJaWYgKCFmaXJzdF9hdHRlbXB0ICYmIGltYmFsYW5jZSA+PSB1c2VmdWxfbG9hZF90aHJlc2hvbGQpIHsKQEAgLTU1NSwxMyArNTY1LDE0IEBACiAJCX0KIAkJZ290byBub3Rfd29ydGhfdGhlX2VmZm9ydDsKIAl9Ci0JCisKIAlmaXJzdF9hdHRlbXB0ID0gMDsJCS8qIGhlYXZpZXN0IHNlYXJjaCAqLwogCW1heF9jcHVfaXJxID0gdG1wX2NwdV9pcnE7CS8qIGxvYWQgKi8KIAltYXhfbG9hZGVkID0gdG1wX2xvYWRlZDsJLyogcHJvY2Vzc29yICovCiAJaW1iYWxhbmNlID0gKG1heF9jcHVfaXJxIC0gbWluX2NwdV9pcnEpIC8gMjsKLQkKLQkvKiBpZiBpbWJhbGFuY2UgaXMgbGVzcyB0aGFuIGFwcHJveCAxMCUgb2YgbWF4IGxvYWQsIHRoZW4KKworCS8qCisJICogaWYgaW1iYWxhbmNlIGlzIGxlc3MgdGhhbiBhcHByb3ggMTAlIG9mIG1heCBsb2FkLCB0aGVuCiAJICogb2JzZXJ2ZSBkaW1pbmlzaGluZyByZXR1cm5zIGFjdGlvbi4gLSBxdWl0CiAJICovCiAJaWYgKGltYmFsYW5jZSA8IChtYXhfY3B1X2lycSA+PiAzKSkKQEAgLTU3NywyNiArNTg4LDI1IEBACiAJCS8qIElzIHRoaXMgYW4gYWN0aXZlIElSUT8gKi8KIAkJaWYgKCFpcnFfZGVzY1tqXS5hY3Rpb24pCiAJCQljb250aW51ZTsKLQkJaWYgKGltYmFsYW5jZSA8PSBJUlFfREVMVEEobWF4X2xvYWRlZCxqKSkKKwkJaWYgKGltYmFsYW5jZSA8PSBJUlFfREVMVEEobWF4X2xvYWRlZCwgaikpCiAJCQljb250aW51ZTsKIAkJLyogVHJ5IHRvIGZpbmQgdGhlIElSUSB0aGF0IGlzIGNsb3Nlc3QgdG8gdGhlIGltYmFsYW5jZQogCQkgKiB3aXRob3V0IGdvaW5nIG92ZXIuCiAJCSAqLwotCQlpZiAobW92ZV90aGlzX2xvYWQgPCBJUlFfREVMVEEobWF4X2xvYWRlZCxqKSkgewotCQkJbW92ZV90aGlzX2xvYWQgPSBJUlFfREVMVEEobWF4X2xvYWRlZCxqKTsKKwkJaWYgKG1vdmVfdGhpc19sb2FkIDwgSVJRX0RFTFRBKG1heF9sb2FkZWQsIGopKSB7CisJCQltb3ZlX3RoaXNfbG9hZCA9IElSUV9ERUxUQShtYXhfbG9hZGVkLCBqKTsKIAkJCXNlbGVjdGVkX2lycSA9IGo7CiAJCX0KIAl9Ci0JaWYgKHNlbGVjdGVkX2lycSA9PSAtMSkgeworCWlmIChzZWxlY3RlZF9pcnEgPT0gLTEpCiAJCWdvdG8gdHJ5YW5vdGhlcmNwdTsKLQl9CiAKIAlpbWJhbGFuY2UgPSBtb3ZlX3RoaXNfbG9hZDsKLQkKKwogCS8qIEZvciBwaHlzaWNhbF9iYWxhbmNlIGNhc2UsIHdlIGFjY3VtdWxhdGVkIGJvdGggbG9hZAogCSAqIHZhbHVlcyBpbiB0aGUgb25lIG9mIHRoZSBzaWJsaW5ncyBjcHVfaXJxW10sCiAJICogdG8gdXNlIHRoZSBzYW1lIGNvZGUgZm9yIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHByb2Nlc3NvcnMKLQkgKiBhcyBtdWNoIGFzIHBvc3NpYmxlLiAKKwkgKiBhcyBtdWNoIGFzIHBvc3NpYmxlLgogCSAqCiAJICogTk9URTogdGhlIGNwdV9pcnFbXSBhcnJheSBob2xkcyB0aGUgc3VtIG9mIHRoZSBsb2FkIGZvcgogCSAqIHNpYmxpbmcgQSBhbmQgc2libGluZyBCIGluIHRoZSBzbG90IGZvciB0aGUgbG93ZXN0IG51bWJlcmVkCkBAIC02MjUsMTEgKzYzNSwxMSBAQAogCQkvKiBtYXJrIGZvciBjaGFuZ2UgZGVzdGluYXRpb24gKi8KIAkJc2V0X3BlbmRpbmdfaXJxKHNlbGVjdGVkX2lycSwgY3B1bWFza19vZl9jcHUobWluX2xvYWRlZCkpOwogCi0JCS8qIFNpbmNlIHdlIG1hZGUgYSBjaGFuZ2UsIGNvbWUgYmFjayBzb29uZXIgdG8gCisJCS8qIFNpbmNlIHdlIG1hZGUgYSBjaGFuZ2UsIGNvbWUgYmFjayBzb29uZXIgdG8KIAkJICogY2hlY2sgZm9yIG1vcmUgdmFyaWF0aW9uLgogCQkgKi8KIAkJYmFsYW5jZWRfaXJxX2ludGVydmFsID0gbWF4KChsb25nKU1JTl9CQUxBTkNFRF9JUlFfSU5URVJWQUwsCi0JCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgLSBCQUxBTkNFRF9JUlFfTEVTU19ERUxUQSk7CQorCQkJYmFsYW5jZWRfaXJxX2ludGVydmFsIC0gQkFMQU5DRURfSVJRX0xFU1NfREVMVEEpOwogCQlyZXR1cm47CiAJfQogCWdvdG8gdHJ5YW5vdGhlcmlycTsKQEAgLTY0MCw3ICs2NTAsNyBAQAogCSAqIHVwd2FyZAogCSAqLwogCWJhbGFuY2VkX2lycV9pbnRlcnZhbCA9IG1pbigobG9uZylNQVhfQkFMQU5DRURfSVJRX0lOVEVSVkFMLAotCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgKyBCQUxBTkNFRF9JUlFfTU9SRV9ERUxUQSk7CQorCQliYWxhbmNlZF9pcnFfaW50ZXJ2YWwgKyBCQUxBTkNFRF9JUlFfTU9SRV9ERUxUQSk7CiAJcmV0dXJuOwogfQogCkBAIC02NzksMTMgKzY4OSwxMyBAQAogCWNwdW1hc2tfdCB0bXA7CiAKIAljcHVzX3NoaWZ0X3JpZ2h0KHRtcCwgY3B1X29ubGluZV9tYXAsIDIpOwotICAgICAgICBjID0gJmJvb3RfY3B1X2RhdGE7CisJYyA9ICZib290X2NwdV9kYXRhOwogCS8qIFdoZW4gbm90IG92ZXJ3cml0dGVuIGJ5IHRoZSBjb21tYW5kIGxpbmUgYXNrIHN1YmFyY2hpdGVjdHVyZS4gKi8KIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCA9PSBJUlFCQUxBTkNFX0NIRUNLX0FSQ0gpCiAJCWlycWJhbGFuY2VfZGlzYWJsZWQgPSBOT19CQUxBTkNFX0lSUTsKIAlpZiAoaXJxYmFsYW5jZV9kaXNhYmxlZCkKIAkJcmV0dXJuIDA7Ci0JCisKIAkgLyogZGlzYWJsZSBpcnFiYWxhbmNlIGNvbXBsZXRlbHkgaWYgdGhlcmUgaXMgb25seSBvbmUgcHJvY2Vzc29yIG9ubGluZSAqLwogCWlmIChudW1fb25saW5lX2NwdXMoKSA8IDIpIHsKIAkJaXJxYmFsYW5jZV9kaXNhYmxlZCA9IDE7CkBAIC02OTksMTYgKzcwOSwxNCBAQAogCQlwaHlzaWNhbF9iYWxhbmNlID0gMTsKIAogCWZvcl9lYWNoX29ubGluZV9jcHUoaSkgewotCQlpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhID0ga21hbGxvYyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTLCBHRlBfS0VSTkVMKTsKLQkJaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxID0ga21hbGxvYyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTLCBHRlBfS0VSTkVMKTsKKwkJaXJxX2NwdV9kYXRhW2ldLmlycV9kZWx0YSA9IGt6YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7CisJCWlycV9jcHVfZGF0YVtpXS5sYXN0X2lycSA9IGt6YWxsb2Moc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUywgR0ZQX0tFUk5FTCk7CiAJCWlmIChpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhID09IE5VTEwgfHwgaXJxX2NwdV9kYXRhW2ldLmxhc3RfaXJxID09IE5VTEwpIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiYmFsYW5jZWRfaXJxX2luaXQ6IG91dCBvZiBtZW1vcnkiKTsKIAkJCWdvdG8gZmFpbGVkOwogCQl9Ci0JCW1lbXNldChpcnFfY3B1X2RhdGFbaV0uaXJxX2RlbHRhLDAsc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogTlJfSVJRUyk7Ci0JCW1lbXNldChpcnFfY3B1X2RhdGFbaV0ubGFzdF9pcnEsMCxzaXplb2YodW5zaWduZWQgbG9uZykgKiBOUl9JUlFTKTsKIAl9Ci0JCisKIAlwcmludGsoS0VSTl9JTkZPICJTdGFydGluZyBiYWxhbmNlZF9pcnFcbiIpOwogCWlmICghSVNfRVJSKGt0aHJlYWRfcnVuKGJhbGFuY2VkX2lycSwgTlVMTCwgImtpcnFkIikpKQogCQlyZXR1cm4gMDsKQEAgLTgwMSwxMCArODA5LDEwIEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykKLQkJaWYgKG1wX2lycXNbaV0ubXBjX2lycXR5cGUgPT0gdHlwZSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkIHx8Ci0JCSAgICAgbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkgJiYKLQkJICAgIG1wX2lycXNbaV0ubXBjX2RzdGlycSA9PSBwaW4pCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gdHlwZSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCB8fAorCQkgICAgIG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkgJiYKKwkJICAgIG1wX2lycXNbaV0ubXBfZHN0aXJxID09IHBpbikKIAkJCXJldHVybiBpOwogCiAJcmV0dXJuIC0xOwpAQCAtODE4LDEzICs4MjYsMTMgQEAKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWlmICh0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGlycSkpCisJCSAgICAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUpICYmCisJCSAgICAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gaXJxKSkKIAotCQkJcmV0dXJuIG1wX2lycXNbaV0ubXBjX2RzdGlycTsKKwkJCXJldHVybiBtcF9pcnFzW2ldLm1wX2RzdGlycTsKIAl9CiAJcmV0dXJuIC0xOwogfQpAQCAtODM0LDE3ICs4NDIsMTcgQEAKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWlmICh0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGlycSkpCisJCSAgICAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUpICYmCisJCSAgICAobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gaXJxKSkKIAkJCWJyZWFrOwogCX0KIAlpZiAoaSA8IG1wX2lycV9lbnRyaWVzKSB7CiAJCWludCBhcGljOwotCQlmb3IoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKLQkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQgPT0gbXBfaXJxc1tpXS5tcGNfZHN0YXBpYykKKwkJZm9yIChhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykgeworCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID09IG1wX2lycXNbaV0ubXBfZHN0YXBpYykKIAkJCQlyZXR1cm4gYXBpYzsKIAkJfQogCX0KQEAgLTg2NCwyOCArODcyLDI4IEBACiAKIAlhcGljX3ByaW50ayhBUElDX0RFQlVHLCAicXVlcnlpbmcgUENJIC0+IElSUSBtYXBwaW5nIGJ1czolZCwgIgogCQkic2xvdDolZCwgcGluOiVkLlxuIiwgYnVzLCBzbG90LCBwaW4pOwotCWlmIChtcF9idXNfaWRfdG9fcGNpX2J1c1tidXNdID09IC0xKSB7CisJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlBDSSBCSU9TIHBhc3NlZCBub25leGlzdGVudCBQQ0kgYnVzICVkIVxuIiwgYnVzKTsKIAkJcmV0dXJuIC0xOwogCX0KIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlmb3IgKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKQotCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wY19kc3RhcGljIHx8Ci0JCQkgICAgbXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkKKwkJCWlmIChtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9PSBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgfHwKKwkJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpCiAJCQkJYnJlYWs7CiAKIAkJaWYgKCF0ZXN0X2JpdChsYnVzLCBtcF9idXNfbm90X3BjaSkgJiYKLQkJICAgICFtcF9pcnFzW2ldLm1wY19pcnF0eXBlICYmCisJCSAgICAhbXBfaXJxc1tpXS5tcF9pcnF0eXBlICYmCiAJCSAgICAoYnVzID09IGxidXMpICYmCi0JCSAgICAoc2xvdCA9PSAoKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA+PiAyKSAmIDB4MWYpKSkgewotCQkJaW50IGlycSA9IHBpbl8yX2lycShpLGFwaWMsbXBfaXJxc1tpXS5tcGNfZHN0aXJxKTsKKwkJICAgIChzbG90ID09ICgobXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPj4gMikgJiAweDFmKSkpIHsKKwkJCWludCBpcnEgPSBwaW5fMl9pcnEoaSwgYXBpYywgbXBfaXJxc1tpXS5tcF9kc3RpcnEpOwogCiAJCQlpZiAoIShhcGljIHx8IElPX0FQSUNfSVJRKGlycSkpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgJiAzKSkKKwkJCWlmIChwaW4gPT0gKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxICYgMykpCiAJCQkJcmV0dXJuIGlycTsKIAkJCS8qCiAJCQkgKiBVc2UgdGhlIGZpcnN0IGFsbC1idXQtcGluIG1hdGNoaW5nIGVudHJ5IGFzIGEKQEAgLTkwMCw3ICs5MDgsNyBAQAogRVhQT1JUX1NZTUJPTChJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3Rvcik7CiAKIC8qCi0gKiBUaGlzIGZ1bmN0aW9uIGN1cnJlbnRseSBpcyBvbmx5IGEgaGVscGVyIGZvciB0aGUgaTM4NiBzbXAgYm9vdCBwcm9jZXNzIHdoZXJlIAorICogVGhpcyBmdW5jdGlvbiBjdXJyZW50bHkgaXMgb25seSBhIGhlbHBlciBmb3IgdGhlIGkzODYgc21wIGJvb3QgcHJvY2VzcyB3aGVyZQogICogd2UgbmVlZCB0byByZXByb2dyYW0gdGhlIGlvcmVkdGJscyB0byBjYXRlciBmb3IgdGhlIGNwdXMgd2hpY2ggaGF2ZSBjb21lIG9ubGluZQogICogc28gbWFzayBpbiBhbGwgY2FzZXMgc2hvdWxkIHNpbXBseSBiZSBUQVJHRVRfQ1BVUwogICovCkBAIC05NTIsNyArOTYwLDcgQEAKICAqIEVJU0EgY29uZm9ybWluZyBpbiB0aGUgTVAgdGFibGUsIHRoYXQgbWVhbnMgaXRzIHRyaWdnZXIgdHlwZSBtdXN0CiAgKiBiZSByZWFkIGluIGZyb20gdGhlIEVMQ1IgKi8KIAotI2RlZmluZSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpCShFSVNBX0VMQ1IobXBfaXJxc1tpZHhdLm1wY19zcmNidXNpcnEpKQorI2RlZmluZSBkZWZhdWx0X0VJU0FfdHJpZ2dlcihpZHgpCShFSVNBX0VMQ1IobXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycSkpCiAjZGVmaW5lIGRlZmF1bHRfRUlTQV9wb2xhcml0eShpZHgpCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCkKIAogLyogUENJIGludGVycnVwdHMgYXJlIGFsd2F5cyBwb2xhcml0eSBvbmUgbGV2ZWwgdHJpZ2dlcmVkLApAQCAtOTY5LDExNyArOTc3LDExNCBAQAogCiBzdGF0aWMgaW50IE1QQklPU19wb2xhcml0eShpbnQgaWR4KQogewotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAlpbnQgcG9sYXJpdHk7CiAKIAkvKgogCSAqIERldGVybWluZSBJUlEgbGluZSBwb2xhcml0eSAoaGlnaCBhY3RpdmUgb3IgbG93IGFjdGl2ZSk6CiAJICovCi0Jc3dpdGNoIChtcF9pcnFzW2lkeF0ubXBjX2lycWZsYWcgJiAzKQorCXN3aXRjaCAobXBfaXJxc1tpZHhdLm1wX2lycWZsYWcgJiAzKSB7CisJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCBwb2xhcml0eSAqLwogCXsKLQkJY2FzZSAwOiAvKiBjb25mb3JtcywgaWUuIGJ1cy10eXBlIGRlcGVuZGVudCBwb2xhcml0eSAqLwotCQl7Ci0JCQlwb2xhcml0eSA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPwotCQkJCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCk6Ci0JCQkJZGVmYXVsdF9QQ0lfcG9sYXJpdHkoaWR4KTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMTogLyogaGlnaCBhY3RpdmUgKi8KLQkJewotCQkJcG9sYXJpdHkgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAyOiAvKiByZXNlcnZlZCAqLwotCQl7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCXBvbGFyaXR5ID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWNhc2UgMzogLyogbG93IGFjdGl2ZSAqLwotCQl7Ci0JCQlwb2xhcml0eSA9IDE7Ci0JCQlicmVhazsKLQkJfQotCQlkZWZhdWx0OiAvKiBpbnZhbGlkICovCi0JCXsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOwotCQkJcG9sYXJpdHkgPSAxOwotCQkJYnJlYWs7Ci0JCX0KKwkJcG9sYXJpdHkgPSB0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKT8KKwkJCWRlZmF1bHRfSVNBX3BvbGFyaXR5KGlkeCk6CisJCQlkZWZhdWx0X1BDSV9wb2xhcml0eShpZHgpOworCQlicmVhazsKKwl9CisJY2FzZSAxOiAvKiBoaWdoIGFjdGl2ZSAqLworCXsKKwkJcG9sYXJpdHkgPSAwOworCQlicmVhazsKKwl9CisJY2FzZSAyOiAvKiByZXNlcnZlZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXBvbGFyaXR5ID0gMTsKKwkJYnJlYWs7CisJfQorCWNhc2UgMzogLyogbG93IGFjdGl2ZSAqLworCXsKKwkJcG9sYXJpdHkgPSAxOworCQlicmVhazsKKwl9CisJZGVmYXVsdDogLyogaW52YWxpZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXBvbGFyaXR5ID0gMTsKKwkJYnJlYWs7CisJfQogCX0KIAlyZXR1cm4gcG9sYXJpdHk7CiB9CiAKIHN0YXRpYyBpbnQgTVBCSU9TX3RyaWdnZXIoaW50IGlkeCkKIHsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAJaW50IHRyaWdnZXI7CiAKIAkvKgogCSAqIERldGVybWluZSBJUlEgdHJpZ2dlciBtb2RlIChlZGdlIG9yIGxldmVsIHNlbnNpdGl2ZSk6CiAJICovCi0Jc3dpdGNoICgobXBfaXJxc1tpZHhdLm1wY19pcnFmbGFnPj4yKSAmIDMpCisJc3dpdGNoICgobXBfaXJxc1tpZHhdLm1wX2lycWZsYWc+PjIpICYgMykgeworCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgKi8KIAl7Ci0JCWNhc2UgMDogLyogY29uZm9ybXMsIGllLiBidXMtdHlwZSBkZXBlbmRlbnQgKi8KLQkJewotCQkJdHJpZ2dlciA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPwotCQkJCQlkZWZhdWx0X0lTQV90cmlnZ2VyKGlkeCk6Ci0JCQkJCWRlZmF1bHRfUENJX3RyaWdnZXIoaWR4KTsKKwkJdHJpZ2dlciA9IHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpPworCQkJCWRlZmF1bHRfSVNBX3RyaWdnZXIoaWR4KToKKwkJCQlkZWZhdWx0X1BDSV90cmlnZ2VyKGlkeCk7CiAjaWYgZGVmaW5lZChDT05GSUdfRUlTQSkgfHwgZGVmaW5lZChDT05GSUdfTUNBKQotCQkJc3dpdGNoIChtcF9idXNfaWRfdG9fdHlwZVtidXNdKQotCQkJewotCQkJCWNhc2UgTVBfQlVTX0lTQTogLyogSVNBIHBpbiAqLwotCQkJCXsKLQkJCQkJLyogc2V0IGJlZm9yZSB0aGUgc3dpdGNoICovCi0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljYXNlIE1QX0JVU19FSVNBOiAvKiBFSVNBIHBpbiAqLwotCQkJCXsKLQkJCQkJdHJpZ2dlciA9IGRlZmF1bHRfRUlTQV90cmlnZ2VyKGlkeCk7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljYXNlIE1QX0JVU19QQ0k6IC8qIFBDSSBwaW4gKi8KLQkJCQl7Ci0JCQkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJY2FzZSBNUF9CVVNfTUNBOiAvKiBNQ0EgcGluICovCi0JCQkJewotCQkJCQl0cmlnZ2VyID0gZGVmYXVsdF9NQ0FfdHJpZ2dlcihpZHgpOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQkJZGVmYXVsdDoKLQkJCQl7Ci0JCQkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOwotCQkJCQl0cmlnZ2VyID0gMTsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCQkJfQorCQlzd2l0Y2ggKG1wX2J1c19pZF90b190eXBlW2J1c10pIHsKKwkJY2FzZSBNUF9CVVNfSVNBOiAvKiBJU0EgcGluICovCisJCXsKKwkJCS8qIHNldCBiZWZvcmUgdGhlIHN3aXRjaCAqLworCQkJYnJlYWs7CisJCX0KKwkJY2FzZSBNUF9CVVNfRUlTQTogLyogRUlTQSBwaW4gKi8KKwkJeworCQkJdHJpZ2dlciA9IGRlZmF1bHRfRUlTQV90cmlnZ2VyKGlkeCk7CisJCQlicmVhazsKKwkJfQorCQljYXNlIE1QX0JVU19QQ0k6IC8qIFBDSSBwaW4gKi8KKwkJeworCQkJLyogc2V0IGJlZm9yZSB0aGUgc3dpdGNoICovCisJCQlicmVhazsKKwkJfQorCQljYXNlIE1QX0JVU19NQ0E6IC8qIE1DQSBwaW4gKi8KKwkJeworCQkJdHJpZ2dlciA9IGRlZmF1bHRfTUNBX3RyaWdnZXIoaWR4KTsKKwkJCWJyZWFrOworCQl9CisJCWRlZmF1bHQ6CisJCXsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgImJyb2tlbiBCSU9TISFcbiIpOworCQkJdHJpZ2dlciA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KICNlbmRpZgotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAxOiAvKiBlZGdlICovCi0JCXsKLQkJCXRyaWdnZXIgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAyOiAvKiByZXNlcnZlZCAqLwotCQl7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKLQkJCXRyaWdnZXIgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQkJY2FzZSAzOiAvKiBsZXZlbCAqLwotCQl7Ci0JCQl0cmlnZ2VyID0gMTsKLQkJCWJyZWFrOwotCQl9Ci0JCWRlZmF1bHQ6IC8qIGludmFsaWQgKi8KLQkJewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7Ci0JCQl0cmlnZ2VyID0gMDsKLQkJCWJyZWFrOwotCQl9CisJCWJyZWFrOworCX0KKwljYXNlIDE6IC8qIGVkZ2UgKi8KKwl7CisJCXRyaWdnZXIgPSAwOworCQlicmVhazsKKwl9CisJY2FzZSAyOiAvKiByZXNlcnZlZCAqLworCXsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiYnJva2VuIEJJT1MhIVxuIik7CisJCXRyaWdnZXIgPSAxOworCQlicmVhazsKKwl9CisJY2FzZSAzOiAvKiBsZXZlbCAqLworCXsKKwkJdHJpZ2dlciA9IDE7CisJCWJyZWFrOworCX0KKwlkZWZhdWx0OiAvKiBpbnZhbGlkICovCisJeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJicm9rZW4gQklPUyEhXG4iKTsKKwkJdHJpZ2dlciA9IDA7CisJCWJyZWFrOworCX0KIAl9CiAJcmV0dXJuIHRyaWdnZXI7CiB9CkBAIC0xMDk3LDE2ICsxMTAyLDE2IEBACiBzdGF0aWMgaW50IHBpbl8yX2lycShpbnQgaWR4LCBpbnQgYXBpYywgaW50IHBpbikKIHsKIAlpbnQgaXJxLCBpOwotCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1czsKKwlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1czsKIAogCS8qCiAJICogRGVidWdnaW5nIGNoZWNrLCB3ZSBhcmUgaW4gYmlnIHRyb3VibGUgaWYgdGhpcyBtZXNzYWdlIHBvcHMgdXAhCiAJICovCi0JaWYgKG1wX2lycXNbaWR4XS5tcGNfZHN0aXJxICE9IHBpbikKKwlpZiAobXBfaXJxc1tpZHhdLm1wX2RzdGlycSAhPSBwaW4pCiAJCXByaW50ayhLRVJOX0VSUiAiYnJva2VuIEJJT1Mgb3IgTVBUQUJMRSBwYXJzZXIsIGF5aWVlISFcbiIpOwogCiAJaWYgKHRlc3RfYml0KGJ1cywgbXBfYnVzX25vdF9wY2kpKQotCQlpcnEgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1c2lycTsKKwkJaXJxID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycTsKIAllbHNlIHsKIAkJLyoKIAkJICogUENJIElSUXMgYXJlIG1hcHBlZCBpbiBvcmRlcgpAQCAtMTE0OCw4ICsxMTUzLDggQEAKIAogCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKIAkJZm9yIChwaW4gPSAwOyBwaW4gPCBucl9pb2FwaWNfcmVnaXN0ZXJzW2FwaWNdOyBwaW4rKykgewotCQkJaWR4ID0gZmluZF9pcnFfZW50cnkoYXBpYyxwaW4sbXBfSU5UKTsKLQkJCWlmICgoaWR4ICE9IC0xKSAmJiAoaXJxID09IHBpbl8yX2lycShpZHgsYXBpYyxwaW4pKSkKKwkJCWlkeCA9IGZpbmRfaXJxX2VudHJ5KGFwaWMsIHBpbiwgbXBfSU5UKTsKKwkJCWlmICgoaWR4ICE9IC0xKSAmJiAoaXJxID09IHBpbl8yX2lycShpZHgsIGFwaWMsIHBpbikpKQogCQkJCXJldHVybiBpcnFfdHJpZ2dlcihpZHgpOwogCQl9CiAJfQpAQCAtMTE2NCw3ICsxMTY5LDcgQEAKIAogc3RhdGljIGludCBfX2Fzc2lnbl9pcnFfdmVjdG9yKGludCBpcnEpCiB7Ci0Jc3RhdGljIGludCBjdXJyZW50X3ZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IsIGN1cnJlbnRfb2Zmc2V0ID0gMDsKKwlzdGF0aWMgaW50IGN1cnJlbnRfdmVjdG9yID0gRklSU1RfREVWSUNFX1ZFQ1RPUiwgY3VycmVudF9vZmZzZXQ7CiAJaW50IHZlY3Rvciwgb2Zmc2V0OwogCiAJQlVHX09OKCh1bnNpZ25lZClpcnEgPj0gTlJfSVJRX1ZFQ1RPUlMpOwpAQCAtMTE3Niw3ICsxMTgxLDcgQEAKIAlvZmZzZXQgPSBjdXJyZW50X29mZnNldDsKIG5leHQ6CiAJdmVjdG9yICs9IDg7Ci0JaWYgKHZlY3RvciA+PSBGSVJTVF9TWVNURU1fVkVDVE9SKSB7CisJaWYgKHZlY3RvciA+PSBmaXJzdF9zeXN0ZW1fdmVjdG9yKSB7CiAJCW9mZnNldCA9IChvZmZzZXQgKyAxKSAlIDg7CiAJCXZlY3RvciA9IEZJUlNUX0RFVklDRV9WRUNUT1IgKyBvZmZzZXQ7CiAJfQpAQCAtMTIwMyw2ICsxMjA4LDExIEBACiAKIAlyZXR1cm4gdmVjdG9yOwogfQorCit2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSkKK3sKK30KKwogc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBpb2FwaWNfY2hpcDsKIAogI2RlZmluZSBJT0FQSUNfQVVUTwktMQpAQCAtMTIzNywyNSArMTI0NywyNSBAQAogCQkvKgogCQkgKiBhZGQgaXQgdG8gdGhlIElPLUFQSUMgaXJxLXJvdXRpbmcgdGFibGU6CiAJCSAqLwotCQltZW1zZXQoJmVudHJ5LDAsc2l6ZW9mKGVudHJ5KSk7CisJCW1lbXNldCgmZW50cnksIDAsIHNpemVvZihlbnRyeSkpOwogCiAJCWVudHJ5LmRlbGl2ZXJ5X21vZGUgPSBJTlRfREVMSVZFUllfTU9ERTsKIAkJZW50cnkuZGVzdF9tb2RlID0gSU5UX0RFU1RfTU9ERTsKIAkJZW50cnkubWFzayA9IDA7CQkJCS8qIGVuYWJsZSBJUlEgKi8KLQkJZW50cnkuZGVzdC5sb2dpY2FsLmxvZ2ljYWxfZGVzdCA9IAorCQllbnRyeS5kZXN0LmxvZ2ljYWwubG9naWNhbF9kZXN0ID0KIAkJCQkJY3B1X21hc2tfdG9fYXBpY2lkKFRBUkdFVF9DUFVTKTsKIAotCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLHBpbixtcF9JTlQpOworCQlpZHggPSBmaW5kX2lycV9lbnRyeShhcGljLCBwaW4sIG1wX0lOVCk7CiAJCWlmIChpZHggPT0gLTEpIHsKIAkJCWlmIChmaXJzdF9ub3Rjb24pIHsKIAkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcKIAkJCQkJCSIgSU8tQVBJQyAoYXBpY2lkLXBpbikgJWQtJWQiLAotCQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLAorCQkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQsCiAJCQkJCQlwaW4pOwogCQkJCWZpcnN0X25vdGNvbiA9IDA7CiAJCQl9IGVsc2UKIAkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIsICVkLSVkIiwKLQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLCBwaW4pOworCQkJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTEyODksNyArMTI5OSw3IEBACiAJCQl2ZWN0b3IgPSBhc3NpZ25faXJxX3ZlY3RvcihpcnEpOwogCQkJZW50cnkudmVjdG9yID0gdmVjdG9yOwogCQkJaW9hcGljX3JlZ2lzdGVyX2ludHIoaXJxLCB2ZWN0b3IsIElPQVBJQ19BVVRPKTsKLQkJCisKIAkJCWlmICghYXBpYyAmJiAoaXJxIDwgMTYpKQogCQkJCWRpc2FibGVfODI1OUFfaXJxKGlycSk7CiAJCX0KQEAgLTEzMDIsMjUgKzEzMTIsMjEgQEAKIH0KIAogLyoKLSAqIFNldCB1cCB0aGUgODI1OUEtbWFzdGVyIG91dHB1dCBwaW46CisgKiBTZXQgdXAgdGhlIHRpbWVyIHBpbiwgcG9zc2libHkgd2l0aCB0aGUgODI1OUEtbWFzdGVyIGJlaGluZC4KICAqLwotc3RhdGljIHZvaWQgX19pbml0IHNldHVwX0V4dElOVF9JUlEwX3Bpbih1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHBpbiwgaW50IHZlY3RvcikKK3N0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF90aW1lcl9JUlEwX3Bpbih1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHBpbiwKKwkJCQkJaW50IHZlY3RvcikKIHsKIAlzdHJ1Y3QgSU9fQVBJQ19yb3V0ZV9lbnRyeSBlbnRyeTsKIAotCW1lbXNldCgmZW50cnksMCxzaXplb2YoZW50cnkpKTsKLQotCWRpc2FibGVfODI1OUFfaXJxKDApOwotCi0JLyogbWFzayBMVlQwICovCi0JYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7CisJbWVtc2V0KCZlbnRyeSwgMCwgc2l6ZW9mKGVudHJ5KSk7CiAKIAkvKgogCSAqIFdlIHVzZSBsb2dpY2FsIGRlbGl2ZXJ5IHRvIGdldCB0aGUgdGltZXIgSVJRCiAJICogdG8gdGhlIGZpcnN0IENQVS4KIAkgKi8KIAllbnRyeS5kZXN0X21vZGUgPSBJTlRfREVTVF9NT0RFOwotCWVudHJ5Lm1hc2sgPSAwOwkJCQkJLyogdW5tYXNrIElSUSBub3cgKi8KKwllbnRyeS5tYXNrID0gMTsJCQkJCS8qIG1hc2sgSVJRIG5vdyAqLwogCWVudHJ5LmRlc3QubG9naWNhbC5sb2dpY2FsX2Rlc3QgPSBjcHVfbWFza190b19hcGljaWQoVEFSR0VUX0NQVVMpOwogCWVudHJ5LmRlbGl2ZXJ5X21vZGUgPSBJTlRfREVMSVZFUllfTU9ERTsKIAllbnRyeS5wb2xhcml0eSA9IDA7CkBAIC0xMzI5LDE3ICsxMzM1LDE0IEBACiAKIAkvKgogCSAqIFRoZSB0aW1lciBJUlEgZG9lc24ndCBoYXZlIHRvIGtub3cgdGhhdCBiZWhpbmQgdGhlCi0JICogc2NlbmUgd2UgaGF2ZSBhIDgyNTlBLW1hc3RlciBpbiBBRU9JIG1vZGUgLi4uCisJICogc2NlbmUgd2UgbWF5IGhhdmUgYSA4MjU5QS1tYXN0ZXIgaW4gQUVPSSBtb2RlIC4uLgogCSAqLwotCWlycV9kZXNjWzBdLmNoaXAgPSAmaW9hcGljX2NoaXA7Ci0Jc2V0X2lycV9oYW5kbGVyKDAsIGhhbmRsZV9lZGdlX2lycSk7CisJaW9hcGljX3JlZ2lzdGVyX2ludHIoMCwgdmVjdG9yLCBJT0FQSUNfRURHRSk7CiAKIAkvKgogCSAqIEFkZCBpdCB0byB0aGUgSU8tQVBJQyBpcnEtcm91dGluZyB0YWJsZToKIAkgKi8KIAlpb2FwaWNfd3JpdGVfZW50cnkoYXBpYywgcGluLCBlbnRyeSk7Ci0KLQllbmFibGVfODI1OUFfaXJxKDApOwogfQogCiB2b2lkIF9faW5pdCBwcmludF9JT19BUElDKHZvaWQpCkBAIC0xMzU0LDEwICsxMzU3LDEwIEBACiAJaWYgKGFwaWNfdmVyYm9zaXR5ID09IEFQSUNfUVVJRVQpCiAJCXJldHVybjsKIAotIAlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIE1QIElSUSBzb3VyY2VzOiAlZC5cbiIsIG1wX2lycV9lbnRyaWVzKTsKKwlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIE1QIElSUSBzb3VyY2VzOiAlZC5cbiIsIG1wX2lycV9lbnRyaWVzKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKQogCQlwcmludGsoS0VSTl9ERUJVRyAibnVtYmVyIG9mIElPLUFQSUMgIyVkIHJlZ2lzdGVyczogJWQuXG4iLAotCQkgICAgICAgbXBfaW9hcGljc1tpXS5tcGNfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKKwkJICAgICAgIG1wX2lvYXBpY3NbaV0ubXBfYXBpY2lkLCBucl9pb2FwaWNfcmVnaXN0ZXJzW2ldKTsKIAogCS8qCiAJICogV2UgYXJlIGEgYml0IGNvbnNlcnZhdGl2ZSBhYm91dCB3aGF0IHdlIGV4cGVjdC4gIFdlIGhhdmUgdG8KQEAgLTEzNzYsNyArMTM3OSw3IEBACiAJCXJlZ18wMy5yYXcgPSBpb19hcGljX3JlYWQoYXBpYywgMyk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAotCXByaW50ayhLRVJOX0RFQlVHICJJTyBBUElDICMlZC4uLi4uLlxuIiwgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiSU8gQVBJQyAjJWQuLi4uLi5cbiIsIG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLiByZWdpc3RlciAjMDA6ICUwOFhcbiIsIHJlZ18wMC5yYXcpOwogCXByaW50ayhLRVJOX0RFQlVHICIuLi4uLi4uICAgIDogcGh5c2ljYWwgQVBJQyBpZDogJTAyWFxuIiwgcmVnXzAwLmJpdHMuSUQpOwogCXByaW50ayhLRVJOX0RFQlVHICIuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogJVhcbiIsIHJlZ18wMC5iaXRzLmRlbGl2ZXJ5X3R5cGUpOwpAQCAtMTQ1OSw3ICsxNDYyLDcgQEAKIAogI2lmIDAKIAotc3RhdGljIHZvaWQgcHJpbnRfQVBJQ19iaXRmaWVsZCAoaW50IGJhc2UpCitzdGF0aWMgdm9pZCBwcmludF9BUElDX2JpdGZpZWxkKGludCBiYXNlKQogewogCXVuc2lnbmVkIGludCB2OwogCWludCBpLCBqOwpAQCAtMTQ4MCw3ICsxNDgzLDcgQEAKIAl9CiB9CiAKLXZvaWQgLypfX2luaXQqLyBwcmludF9sb2NhbF9BUElDKHZvaWQgKiBkdW1teSkKK3ZvaWQgLypfX2luaXQqLyBwcmludF9sb2NhbF9BUElDKHZvaWQgKmR1bW15KQogewogCXVuc2lnbmVkIGludCB2LCB2ZXIsIG1heGx2dDsKIApAQCAtMTQ4OSw2ICsxNDkyLDcgQEAKIAogCXByaW50aygiXG4iIEtFUk5fREVCVUcgInByaW50aW5nIGxvY2FsIEFQSUMgY29udGVudHMgb24gQ1BVIyVkLyVkOlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJdiA9IGFwaWNfcmVhZChBUElDX0lEKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBJRDogICAgICAlMDh4ICglMDF4KVxuIiwgdiwKIAkJCUdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKSk7CiAJdiA9IGFwaWNfcmVhZChBUElDX0xWUik7CkBAIC0xNTYzLDcgKzE1NjcsNyBAQAogCXByaW50aygiXG4iKTsKIH0KIAotdm9pZCBwcmludF9hbGxfbG9jYWxfQVBJQ3MgKHZvaWQpCit2b2lkIHByaW50X2FsbF9sb2NhbF9BUElDcyh2b2lkKQogewogCW9uX2VhY2hfY3B1KHByaW50X2xvY2FsX0FQSUMsIE5VTEwsIDEsIDEpOwogfQpAQCAtMTU4NiwxMSArMTU5MCwxMSBAQAogCXYgPSBpbmIoMHhhMCkgPDwgOCB8IGluYigweDIwKTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uIFBJQyAgSVJSOiAlMDR4XG4iLCB2KTsKIAotCW91dGIoMHgwYiwweGEwKTsKLQlvdXRiKDB4MGIsMHgyMCk7CisJb3V0YigweDBiLCAweGEwKTsKKwlvdXRiKDB4MGIsIDB4MjApOwogCXYgPSBpbmIoMHhhMCkgPDwgOCB8IGluYigweDIwKTsKLQlvdXRiKDB4MGEsMHhhMCk7Ci0Jb3V0YigweDBhLDB4MjApOworCW91dGIoMHgwYSwgMHhhMCk7CisJb3V0YigweDBhLCAweDIwKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CiAKQEAgLTE2MjYsNyArMTYzMCw3IEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCW5yX2lvYXBpY19yZWdpc3RlcnNbYXBpY10gPSByZWdfMDEuYml0cy5lbnRyaWVzKzE7CiAJfQotCWZvcihhcGljID0gMDsgYXBpYyA8IG5yX2lvYXBpY3M7IGFwaWMrKykgeworCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspIHsKIAkJaW50IHBpbjsKIAkJLyogU2VlIGlmIGFueSBvZiB0aGUgcGlucyBpcyBpbiBFeHRJTlQgbW9kZSAqLwogCQlmb3IgKHBpbiA9IDA7IHBpbiA8IG5yX2lvYXBpY19yZWdpc3RlcnNbYXBpY107IHBpbisrKSB7CkBAIC0xNzE2LDcgKzE3MjAsNiBAQAogICogYnkgTWF0dCBEb21zY2ggPE1hdHRfRG9tc2NoQGRlbGwuY29tPiAgVHVlIERlYyAyMSAxMjoyNTowNSBDU1QgMTk5OQogICovCiAKLSNpZm5kZWYgQ09ORklHX1g4Nl9OVU1BUQogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX2lvYXBpY19pZHNfZnJvbV9tcGModm9pZCkKIHsKIAl1bmlvbiBJT19BUElDX3JlZ18wMCByZWdfMDA7CkBAIC0xNzI2LDYgKzE3MjksMTEgQEAKIAl1bnNpZ25lZCBjaGFyIG9sZF9pZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCisjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQorCWlmIChmb3VuZF9udW1hcSkKKwkJcmV0dXJuOworI2VuZGlmCisKIAkvKgogCSAqIERvbid0IGNoZWNrIEkvTyBBUElDIElEcyBmb3IgeEFQSUMgc3lzdGVtcy4gIFRoZXkgaGF2ZQogCSAqIG5vIG1lYW5pbmcgd2l0aG91dCB0aGUgc2VyaWFsIEFQSUMgYnVzLgpAQCAtMTc0OCwxNSArMTc1NiwxNSBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAkJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChhcGljLCAwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKLQkJCi0JCW9sZF9pZCA9IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZDsKIAotCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID49IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkgeworCQlvbGRfaWQgPSBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZDsKKworCQlpZiAobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPj0gZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCgpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBJTy1BUElDIyVkIElEIGlzICVkIGluIHRoZSBNUEMgdGFibGUhLi4uXG4iLAotCQkJCWFwaWMsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQkJYXBpYywgbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZml4aW5nIHVwIHRvICVkLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCiAJCQkJcmVnXzAwLmJpdHMuSUQpOwotCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID0gcmVnXzAwLmJpdHMuSUQ7CisJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCA9IHJlZ18wMC5iaXRzLklEOwogCQl9CiAKIAkJLyoKQEAgLTE3NjUsOSArMTc3Myw5IEBACiAJCSAqICdzdHVjayBvbiBzbXBfaW52YWxpZGF0ZV9uZWVkZWQgSVBJIHdhaXQnIG1lc3NhZ2VzLgogCQkgKi8KIAkJaWYgKGNoZWNrX2FwaWNpZF91c2VkKHBoeXNfaWRfcHJlc2VudF9tYXAsCi0JCQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCkpIHsKKwkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBJTy1BUElDIyVkIElEICVkIGlzIGFscmVhZHkgdXNlZCEuLi5cbiIsCi0JCQkJYXBpYywgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwkJCQlhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAJCQlmb3IgKGkgPSAwOyBpIDwgZ2V0X3BoeXNpY2FsX2Jyb2FkY2FzdCgpOyBpKyspCiAJCQkJaWYgKCFwaHlzaWRfaXNzZXQoaSwgcGh5c19pZF9wcmVzZW50X21hcCkpCiAJCQkJCWJyZWFrOwpAQCAtMTc3NiwxMyArMTc4NCwxMyBAQAogCQkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZml4aW5nIHVwIHRvICVkLiAodGVsbCB5b3VyIGh3IHZlbmRvcilcbiIsCiAJCQkJaSk7CiAJCQlwaHlzaWRfc2V0KGksIHBoeXNfaWRfcHJlc2VudF9tYXApOwotCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID0gaTsKKwkJCW1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID0gaTsKIAkJfSBlbHNlIHsKIAkJCXBoeXNpZF9tYXNrX3QgdG1wOwotCQkJdG1wID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQl0bXAgPSBhcGljaWRfdG9fY3B1X3ByZXNlbnQobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiU2V0dGluZyAlZCBpbiB0aGUgIgogCQkJCQkicGh5c19pZF9wcmVzZW50X21hcFxuIiwKLQkJCQkJbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkKTsKKwkJCQkJbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpOwogCQkJcGh5c2lkc19vcihwaHlzX2lkX3ByZXNlbnRfbWFwLCBwaHlzX2lkX3ByZXNlbnRfbWFwLCB0bXApOwogCQl9CiAKQEAgLTE3OTEsMjEgKzE3OTksMjEgQEAKIAkJICogV2UgbmVlZCB0byBhZGp1c3QgdGhlIElSUSByb3V0aW5nIHRhYmxlCiAJCSAqIGlmIHRoZSBJRCBjaGFuZ2VkLgogCQkgKi8KLQkJaWYgKG9sZF9pZCAhPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQpCisJCWlmIChvbGRfaWQgIT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQpCiAJCQlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykKLQkJCQlpZiAobXBfaXJxc1tpXS5tcGNfZHN0YXBpYyA9PSBvbGRfaWQpCi0JCQkJCW1wX2lycXNbaV0ubXBjX2RzdGFwaWMKLQkJCQkJCT0gbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkOworCQkJCWlmIChtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gb2xkX2lkKQorCQkJCQltcF9pcnFzW2ldLm1wX2RzdGFwaWMKKwkJCQkJCT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQ7CiAKIAkJLyoKIAkJICogUmVhZCB0aGUgcmlnaHQgdmFsdWUgZnJvbSB0aGUgTVBDIHRhYmxlIGFuZAogCQkgKiB3cml0ZSBpdCBpbnRvIHRoZSBJRCByZWdpc3Rlci4KLQkgCSAqLworCQkgKi8KIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0lORk8KIAkJCSIuLi5jaGFuZ2luZyBJTy1BUElDIHBoeXNpY2FsIEFQSUMgSUQgdG8gJWQgLi4uIiwKLQkJCW1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJCQltcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAKLQkJcmVnXzAwLmJpdHMuSUQgPSBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQ7CisJCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQ7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwogCQlpb19hcGljX3dyaXRlKGFwaWMsIDAsIHJlZ18wMC5yYXcpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwpAQCAtMTgxNiwxNSArMTgyNCwxMiBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAkJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChhcGljLCAwKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKLQkJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCkKKwkJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkKQogCQkJcHJpbnRrKCJjb3VsZCBub3Qgc2V0IElEIVxuIik7CiAJCWVsc2UKIAkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIiBvay5cbiIpOwogCX0KIH0KLSNlbHNlCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfaW9hcGljX2lkc19mcm9tX21wYyh2b2lkKSB7IH0KLSNlbmRpZgogCiBpbnQgbm9fdGltZXJfY2hlY2sgX19pbml0ZGF0YTsKIApAQCAtMjAxNSwxMiArMjAyMCwxMiBAQAogICogVGhlIGxvY2FsIEFQSUMgaXJxLWNoaXAgaW1wbGVtZW50YXRpb246CiAgKi8KIAotc3RhdGljIHZvaWQgYWNrX2FwaWModW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIGFja19sYXBpY19pcnEodW5zaWduZWQgaW50IGlycSkKIHsKIAlhY2tfQVBJQ19pcnEoKTsKIH0KIAotc3RhdGljIHZvaWQgbWFza19sYXBpY19pcnEgKHVuc2lnbmVkIGludCBpcnEpCitzdGF0aWMgdm9pZCBtYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMjAyOCw3ICsyMDMzLDcgQEAKIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIHYgfCBBUElDX0xWVF9NQVNLRUQpOwogfQogCi1zdGF0aWMgdm9pZCB1bm1hc2tfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgdW5tYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMjAzNywyMyArMjA0MiwzMSBAQAogfQogCiBzdGF0aWMgc3RydWN0IGlycV9jaGlwIGxhcGljX2NoaXAgX19yZWFkX21vc3RseSA9IHsKLQkubmFtZQkJPSAibG9jYWwtQVBJQy1lZGdlIiwKKwkubmFtZQkJPSAibG9jYWwtQVBJQyIsCiAJLm1hc2sJCT0gbWFza19sYXBpY19pcnEsCiAJLnVubWFzawkJPSB1bm1hc2tfbGFwaWNfaXJxLAotCS5lb2kJCT0gYWNrX2FwaWMsCisJLmFjawkJPSBhY2tfbGFwaWNfaXJxLAogfTsKIAorc3RhdGljIHZvaWQgbGFwaWNfcmVnaXN0ZXJfaW50cihpbnQgaXJxLCBpbnQgdmVjdG9yKQoreworCWlycV9kZXNjW2lycV0uc3RhdHVzICY9IH5JUlFfTEVWRUw7CisJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaXJxLCAmbGFwaWNfY2hpcCwgaGFuZGxlX2VkZ2VfaXJxLAorCQkJCSAgICAgICJlZGdlIik7CisJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFtpcnFdKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25taSh2b2lkKQogewogCS8qCi0gCSAqIERpcnR5IHRyaWNrIHRvIGVuYWJsZSB0aGUgTk1JIHdhdGNoZG9nIC4uLgorCSAqIERpcnR5IHRyaWNrIHRvIGVuYWJsZSB0aGUgTk1JIHdhdGNoZG9nIC4uLgogCSAqIFdlIHB1dCB0aGUgODI1OUEgbWFzdGVyIGludG8gQUVPSSBtb2RlIGFuZAogCSAqIHVubWFzayBvbiBhbGwgbG9jYWwgQVBJQ3MgTFZUMCBhcyBOTUkuCiAJICoKIAkgKiBUaGUgaWRlYSB0byB1c2UgdGhlIDgyNTlBIGluIEFFT0kgbW9kZSAoJzgyNTlBIFZpcnR1YWwgV2lyZScpCiAJICogaXMgZnJvbSBNYWNpZWogVy4gUm96eWNraSAtIHNvIHdlIGRvIG5vdCBoYXZlIHRvIEVPSSBmcm9tCiAJICogdGhlIE5NSSBoYW5kbGVyIG9yIHRoZSB0aW1lciBpbnRlcnJ1cHQuCi0JICovIAorCSAqLwogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgS0VSTl9JTkZPICJhY3RpdmF0aW5nIE5NSSBXYXRjaGRvZyAuLi4iKTsKIAogCWVuYWJsZV9OTUlfdGhyb3VnaF9MVlQwKCk7CkBAIC0yMTI5LDYgKzIxNDIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBjaGVja190aW1lcih2b2lkKQogewogCWludCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjI7CisJaW50IG5vX3BpbjEgPSAwOwogCWludCB2ZWN0b3I7CiAJdW5zaWduZWQgaW50IHZlcjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjE0NiwyMSArMjE2MCwxNyBAQAogCXNldF9pbnRyX2dhdGUodmVjdG9yLCBpbnRlcnJ1cHRbMF0pOwogCiAJLyoKLQkgKiBTdWJ0bGUsIGNvZGUgaW4gZG9fdGltZXJfaW50ZXJydXB0KCkgZXhwZWN0cyBhbiBBRU9JCi0JICogbW9kZSBmb3IgdGhlIDgyNTlBIHdoZW5ldmVyIGludGVycnVwdHMgYXJlIHJvdXRlZAotCSAqIHRocm91Z2ggSS9PIEFQSUNzLiAgQWxzbyBJUlEwIGhhcyB0byBiZSBlbmFibGVkIGluCi0JICogdGhlIDgyNTlBIHdoaWNoIGltcGxpZXMgdGhlIHZpcnR1YWwgd2lyZSBoYXMgdG8gYmUKLQkgKiBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4gIEZpbmFsbHkgdGltZXIgaW50ZXJydXB0cwotCSAqIG5lZWQgdG8gYmUgYWNrbm93bGVkZ2VkIG1hbnVhbGx5IGluIHRoZSA4MjU5QSBmb3IKLQkgKiB0aW1lcl9pbnRlcnJ1cHQoKSBhbmQgZm9yIHRoZSBpODI0ODlEWCB3aGVuIHVzaW5nCi0JICogdGhlIE5NSSB3YXRjaGRvZy4KKwkgKiBBcyBJUlEwIGlzIHRvIGJlIGVuYWJsZWQgaW4gdGhlIDgyNTlBLCB0aGUgdmlydHVhbAorCSAqIHdpcmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIHRoZSBsb2NhbCBBUElDLiAgQWxzbworCSAqIHRpbWVyIGludGVycnVwdHMgbmVlZCB0byBiZSBhY2tub3dsZWRnZWQgbWFudWFsbHkgaW4KKwkgKiB0aGUgODI1OUEgZm9yIHRoZSBpODI0ODlEWCB3aGVuIHVzaW5nIHRoZSBOTUkKKwkgKiB3YXRjaGRvZyBhcyB0aGF0IEFQSUMgdHJlYXRzIE5NSXMgYXMgbGV2ZWwtdHJpZ2dlcmVkLgorCSAqIFRoZSBBRU9JIG1vZGUgd2lsbCBmaW5pc2ggdGhlbSBpbiB0aGUgODI1OUEKKwkgKiBhdXRvbWF0aWNhbGx5LgogCSAqLwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19MVlRfTUFTS0VEIHwgQVBJQ19ETV9FWFRJTlQpOwogCWluaXRfODI1OUEoMSk7Ci0JdGltZXJfYWNrID0gIWNwdV9oYXNfdHNjOwotCXRpbWVyX2FjayB8PSAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDICYmICFBUElDX0lOVEVHUkFURUQodmVyKSk7Ci0JaWYgKHRpbWVyX292ZXJfODI1NCA+IDApCi0JCWVuYWJsZV84MjU5QV9pcnEoMCk7CisJdGltZXJfYWNrID0gKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQyAmJiAhQVBJQ19JTlRFR1JBVEVEKHZlcikpOwogCiAJcGluMSAgPSBmaW5kX2lzYV9pcnFfcGluKDAsIG1wX0lOVCk7CiAJYXBpYzEgPSBmaW5kX2lzYV9pcnFfYXBpYygwLCBtcF9JTlQpOwpAQCAtMjE3MCwxNCArMjE4MCwzMyBAQAogCXByaW50ayhLRVJOX0lORk8gIi4uVElNRVI6IHZlY3Rvcj0weCUwMlggYXBpYzE9JWQgcGluMT0lZCBhcGljMj0lZCBwaW4yPSVkXG4iLAogCQl2ZWN0b3IsIGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMik7CiAKKwkvKgorCSAqIFNvbWUgQklPUyB3cml0ZXJzIGFyZSBjbHVlbGVzcyBhbmQgcmVwb3J0IHRoZSBFeHRJTlRBCisJICogSS9PIEFQSUMgaW5wdXQgZnJvbSB0aGUgY2FzY2FkZWQgODI1OUEgYXMgdGhlIHRpbWVyCisJICogaW50ZXJydXB0IGlucHV0LiAgU28ganVzdCBpbiBjYXNlLCBpZiBvbmx5IG9uZSBwaW4KKwkgKiB3YXMgZm91bmQgYWJvdmUsIHRyeSBpdCBib3RoIGRpcmVjdGx5IGFuZCB0aHJvdWdoIHRoZQorCSAqIDgyNTlBLgorCSAqLworCWlmIChwaW4xID09IC0xKSB7CisJCXBpbjEgPSBwaW4yOworCQlhcGljMSA9IGFwaWMyOworCQlub19waW4xID0gMTsKKwl9IGVsc2UgaWYgKHBpbjIgPT0gLTEpIHsKKwkJcGluMiA9IHBpbjE7CisJCWFwaWMyID0gYXBpYzE7CisJfQorCiAJaWYgKHBpbjEgIT0gLTEpIHsKIAkJLyoKIAkJICogT2ssIGRvZXMgSVJRMCB0aHJvdWdoIHRoZSBJT0FQSUMgd29yaz8KIAkJICovCisJCWlmIChub19waW4xKSB7CisJCQlhZGRfcGluX3RvX2lycSgwLCBhcGljMSwgcGluMSk7CisJCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMSwgcGluMSwgdmVjdG9yKTsKKwkJfQogCQl1bm1hc2tfSU9fQVBJQ19pcnEoMCk7CiAJCWlmICh0aW1lcl9pcnFfd29ya3MoKSkgewogCQkJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykgewotCQkJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQkJCXNldHVwX25taSgpOwogCQkJCWVuYWJsZV84MjU5QV9pcnEoMCk7CiAJCQl9CkBAIC0yMTg2LDQ1ICsyMjE1LDQ3IEBACiAJCQlnb3RvIG91dDsKIAkJfQogCQljbGVhcl9JT19BUElDX3BpbihhcGljMSwgcGluMSk7Ci0JCXByaW50ayhLRVJOX0VSUiAiLi5NUC1CSU9TIGJ1ZzogODI1NCB0aW1lciBub3QgY29ubmVjdGVkIHRvICIKLQkJCQkiSU8tQVBJQ1xuIik7Ci0JfQorCQlpZiAoIW5vX3BpbjEpCisJCQlwcmludGsoS0VSTl9FUlIgIi4uTVAtQklPUyBidWc6ICIKKwkJCSAgICAgICAiODI1NCB0aW1lciBub3QgY29ubmVjdGVkIHRvIElPLUFQSUNcbiIpOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciAoSVJRMCkgdGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwotCWlmIChwaW4yICE9IC0xKSB7CisJCXByaW50ayhLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgKElSUTApICIKKwkJICAgICAgICJ0aHJvdWdoIHRoZSA4MjU5QSAuLi4gIik7CiAJCXByaW50aygiXG4uLi4uLiAoZm91bmQgcGluICVkKSAuLi4iLCBwaW4yKTsKIAkJLyoKIAkJICogbGVnYWN5IGRldmljZXMgc2hvdWxkIGJlIGNvbm5lY3RlZCB0byBJTyBBUElDICMwCiAJCSAqLwotCQlzZXR1cF9FeHRJTlRfSVJRMF9waW4oYXBpYzIsIHBpbjIsIHZlY3Rvcik7CisJCXJlcGxhY2VfcGluX2F0X2lycSgwLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOworCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMiwgcGluMiwgdmVjdG9yKTsKKwkJdW5tYXNrX0lPX0FQSUNfaXJxKDApOworCQllbmFibGVfODI1OUFfaXJxKDApOwogCQlpZiAodGltZXJfaXJxX3dvcmtzKCkpIHsKIAkJCXByaW50aygid29ya3MuXG4iKTsKLQkJCWlmIChwaW4xICE9IC0xKQotCQkJCXJlcGxhY2VfcGluX2F0X2lycSgwLCBhcGljMSwgcGluMSwgYXBpYzIsIHBpbjIpOwotCQkJZWxzZQotCQkJCWFkZF9waW5fdG9faXJxKDAsIGFwaWMyLCBwaW4yKTsKKwkJCXRpbWVyX3Rocm91Z2hfODI1OSA9IDE7CiAJCQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKSB7CisJCQkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCQkJc2V0dXBfbm1pKCk7CisJCQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAkJCX0KIAkJCWdvdG8gb3V0OwogCQl9CiAJCS8qCiAJCSAqIENsZWFudXAsIGp1c3QgaW4gY2FzZSAuLi4KIAkJICovCisJCWRpc2FibGVfODI1OUFfaXJxKDApOwogCQljbGVhcl9JT19BUElDX3BpbihhcGljMiwgcGluMik7CisJCXByaW50aygiIGZhaWxlZC5cbiIpOwogCX0KLQlwcmludGsoIiBmYWlsZWQuXG4iKTsKIAogCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAidGltZXIgZG9lc24ndCB3b3JrIHRocm91Z2ggdGhlIElPLUFQSUMgLSBkaXNhYmxpbmcgTk1JIFdhdGNoZG9nIVxuIik7Ci0JCW5taV93YXRjaGRvZyA9IDA7CisJCW5taV93YXRjaGRvZyA9IE5NSV9OT05FOwogCX0KKwl0aW1lcl9hY2sgPSAwOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciBhcyBWaXJ0dWFsIFdpcmUgSVJRLi4uIik7CiAKLQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKLQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZSgwLCAmbGFwaWNfY2hpcCwgaGFuZGxlX2Zhc3Rlb2lfaXJxLAotCQkJCSAgICAgICJmYXN0ZW9pIik7CisJbGFwaWNfcmVnaXN0ZXJfaW50cigwLCB2ZWN0b3IpOwogCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9GSVhFRCB8IHZlY3Rvcik7CS8qIEZpeGVkIG1vZGUgKi8KIAllbmFibGVfODI1OUFfaXJxKDApOwogCkBAIC0yMjMyLDEyICsyMjYzLDEyIEBACiAJCXByaW50aygiIHdvcmtzLlxuIik7CiAJCWdvdG8gb3V0OwogCX0KKwlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCB8IEFQSUNfRE1fRklYRUQgfCB2ZWN0b3IpOwogCXByaW50aygiIGZhaWxlZC5cbiIpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiLi4udHJ5aW5nIHRvIHNldCB1cCB0aW1lciBhcyBFeHRJTlQgSVJRLi4uIik7CiAKLQl0aW1lcl9hY2sgPSAwOwogCWluaXRfODI1OUEoMCk7CiAJbWFrZV84MjU5QV9pcnEoMCk7CiAJYXBpY193cml0ZV9hcm91bmQoQVBJQ19MVlQwLCBBUElDX0RNX0VYVElOVCk7CkBAIC0yMjU2LDExICsyMjg3LDIxIEBACiB9CiAKIC8qCi0gKgotICogSVJRJ3MgdGhhdCBhcmUgaGFuZGxlZCBieSB0aGUgUElDIGluIHRoZSBNUFMgSU9BUElDIGNhc2UuCi0gKiAtIElSUTIgaXMgdGhlIGNhc2NhZGUgSVJRLCBhbmQgY2Fubm90IGJlIGEgaW8tYXBpYyBJUlEuCi0gKiAgIExpbnV4IGRvZXNuJ3QgcmVhbGx5IGNhcmUsIGFzIGl0J3Mgbm90IGFjdHVhbGx5IHVzZWQKLSAqICAgZm9yIGFueSBpbnRlcnJ1cHQgaGFuZGxpbmcgYW55d2F5LgorICogVHJhZGl0aW9uYWxseSBJU0EgSVJRMiBpcyB0aGUgY2FzY2FkZSBJUlEsIGFuZCBpcyBub3QgYXZhaWxhYmxlCisgKiB0byBkZXZpY2VzLiAgSG93ZXZlciB0aGVyZSBtYXkgYmUgYW4gSS9PIEFQSUMgcGluIGF2YWlsYWJsZSBmb3IKKyAqIHRoaXMgaW50ZXJydXB0IHJlZ2FyZGxlc3MuICBUaGUgcGluIG1heSBiZSBsZWZ0IHVuY29ubmVjdGVkLCBidXQKKyAqIHR5cGljYWxseSBpdCB3aWxsIGJlIHJldXNlZCBhcyBhbiBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgZm9yCisgKiB0aGUgbWFzdGVyIDgyNTlBLiAgSW4gdGhlIE1QUyBjYXNlIHN1Y2ggYSBwaW4gd2lsbCBub3JtYWxseSBiZQorICogcmVwb3J0ZWQgYXMgYW4gRXh0SU5UIGludGVycnVwdCBpbiB0aGUgTVAgdGFibGUuICBXaXRoIEFDUEkKKyAqIHRoZXJlIGlzIG5vIHByb3Zpc2lvbiBmb3IgRXh0SU5UIGludGVycnVwdHMsIGFuZCBpbiB0aGUgYWJzZW5jZQorICogb2YgYW4gb3ZlcnJpZGUgaXQgd291bGQgYmUgdHJlYXRlZCBhcyBhbiBvcmRpbmFyeSBJU0EgSS9PIEFQSUMKKyAqIGludGVycnVwdCwgdGhhdCBpcyBlZGdlLXRyaWdnZXJlZCBhbmQgdW5tYXNrZWQgYnkgZGVmYXVsdC4gIFdlCisgKiB1c2VkIHRvIGRvIHRoaXMsIGJ1dCBpdCBjYXVzZWQgcHJvYmxlbXMgb24gc29tZSBzeXN0ZW1zIGJlY2F1c2UKKyAqIG9mIHRoZSBOTUkgd2F0Y2hkb2cgYW5kIHNvbWV0aW1lcyBJUlEwIG9mIHRoZSA4MjU0IHRpbWVyIHVzaW5nCisgKiB0aGUgc2FtZSBFeHRJTlQgY2FzY2FkZSBpbnRlcnJ1cHQgdG8gZHJpdmUgdGhlIGxvY2FsIEFQSUMgb2YgdGhlCisgKiBib290c3RyYXAgcHJvY2Vzc29yLiAgVGhlcmVmb3JlIHdlIHJlZnJhaW4gZnJvbSByb3V0aW5nIElSUTIgdG8KKyAqIHRoZSBJL08gQVBJQyBpbiBhbGwgY2FzZXMgbm93LiAgTm8gYWN0dWFsIGRldmljZSBzaG91bGQgcmVxdWVzdAorICogaXQgYW55d2F5LiAgLS1tYWNybwogICovCiAjZGVmaW5lIFBJQ19JUlFTCSgxIDw8IFBJQ19DQVNDQURFX0lSKQogCkBAIC0yMjY5LDE1ICsyMzEwLDEyIEBACiAJaW50IGk7CiAKIAkvKiBSZXNlcnZlIGFsbCB0aGUgc3lzdGVtIHZlY3RvcnMuICovCi0JZm9yIChpID0gRklSU1RfU1lTVEVNX1ZFQ1RPUjsgaSA8IE5SX1ZFQ1RPUlM7IGkrKykKKwlmb3IgKGkgPSBmaXJzdF9zeXN0ZW1fdmVjdG9yOyBpIDwgTlJfVkVDVE9SUzsgaSsrKQogCQlzZXRfYml0KGksIHVzZWRfdmVjdG9ycyk7CiAKIAllbmFibGVfSU9fQVBJQygpOwogCi0JaWYgKGFjcGlfaW9hcGljKQotCQlpb19hcGljX2lycXMgPSB+MDsJLyogYWxsIElSUXMgZ28gdGhyb3VnaCBJT0FQSUMgKi8KLQllbHNlCi0JCWlvX2FwaWNfaXJxcyA9IH5QSUNfSVJRUzsKKwlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CiAKIAlwcmludGsoIkVOQUJMSU5HIElPLUFQSUMgSVJRc1xuIik7CiAKQEAgLTIyOTQsMjggKzIzMzIsMTQgQEAKIAkJcHJpbnRfSU9fQVBJQygpOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9kaXNhYmxlXzgyNTRfdGltZXIoY2hhciAqcykKLXsKLQl0aW1lcl9vdmVyXzgyNTQgPSAtMTsKLQlyZXR1cm4gMTsKLX0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gMjsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZGlzYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKTsKLV9fc2V0dXAoImVuYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZW5hYmxlXzgyNTRfdGltZXIpOwotCiAvKgogICoJQ2FsbGVkIGFmdGVyIGFsbCB0aGUgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4gSWYgd2UgZGlkbnQgZmluZCBhbnkKICAqCUFQSUMgYnVncyB0aGVuIHdlIGNhbiBhbGxvdyB0aGUgbW9kaWZ5IGZhc3QgcGF0aAogICovCi0gCisKIHN0YXRpYyBpbnQgX19pbml0IGlvX2FwaWNfYnVnX2ZpbmFsaXplKHZvaWQpCiB7Ci0JaWYoc2lzX2FwaWNfYnVnID09IC0xKQorCWlmIChzaXNfYXBpY19idWcgPT0gLTEpCiAJCXNpc19hcGljX2J1ZyA9IDA7CiAJcmV0dXJuIDA7CiB9CkBAIC0yMzI2LDE3ICsyMzUwLDE3IEBACiAJc3RydWN0IHN5c19kZXZpY2UgZGV2OwogCXN0cnVjdCBJT19BUElDX3JvdXRlX2VudHJ5IGVudHJ5WzBdOwogfTsKLXN0YXRpYyBzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEgKiBtcF9pb2FwaWNfZGF0YVtNQVhfSU9fQVBJQ1NdOworc3RhdGljIHN0cnVjdCBzeXNmc19pb2FwaWNfZGF0YSAqbXBfaW9hcGljX2RhdGFbTUFYX0lPX0FQSUNTXTsKIAogc3RhdGljIGludCBpb2FwaWNfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgKmVudHJ5OwogCXN0cnVjdCBzeXNmc19pb2FwaWNfZGF0YSAqZGF0YTsKIAlpbnQgaTsKLQkKKwogCWRhdGEgPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3Qgc3lzZnNfaW9hcGljX2RhdGEsIGRldik7CiAJZW50cnkgPSBkYXRhLT5lbnRyeTsKLQlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljX3JlZ2lzdGVyc1tkZXYtPmlkXTsgaSArKykKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljX3JlZ2lzdGVyc1tkZXYtPmlkXTsgaSsrKQogCQllbnRyeVtpXSA9IGlvYXBpY19yZWFkX2VudHJ5KGRldi0+aWQsIGkpOwogCiAJcmV0dXJuIDA7CkBAIC0yMzQ5LDE4ICsyMzczLDE4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bmlvbiBJT19BUElDX3JlZ18wMCByZWdfMDA7CiAJaW50IGk7Ci0JCisKIAlkYXRhID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHN5c2ZzX2lvYXBpY19kYXRhLCBkZXYpOwogCWVudHJ5ID0gZGF0YS0+ZW50cnk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAlyZWdfMDAucmF3ID0gaW9fYXBpY19yZWFkKGRldi0+aWQsIDApOwotCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wY19hcGljaWQpIHsKLQkJcmVnXzAwLmJpdHMuSUQgPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wY19hcGljaWQ7CisJaWYgKHJlZ18wMC5iaXRzLklEICE9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBfYXBpY2lkKSB7CisJCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcF9hcGljaWQ7CiAJCWlvX2FwaWNfd3JpdGUoZGV2LT5pZCwgMCwgcmVnXzAwLnJhdyk7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7Ci0JZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkgKyspCisJZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY19yZWdpc3RlcnNbZGV2LT5pZF07IGkrKykKIAkJaW9hcGljX3dyaXRlX2VudHJ5KGRldi0+aWQsIGksIGVudHJ5W2ldKTsKIAogCXJldHVybiAwOwpAQCAtMjM3NCwyNCArMjM5OCwyMyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBpb2FwaWNfaW5pdF9zeXNmcyh2b2lkKQogewotCXN0cnVjdCBzeXNfZGV2aWNlICogZGV2OworCXN0cnVjdCBzeXNfZGV2aWNlICpkZXY7CiAJaW50IGksIHNpemUsIGVycm9yID0gMDsKIAogCWVycm9yID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZpb2FwaWNfc3lzZGV2X2NsYXNzKTsKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAotCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKysgKSB7Ci0JCXNpemUgPSBzaXplb2Yoc3RydWN0IHN5c19kZXZpY2UpICsgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXSAKKwlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CisJCXNpemUgPSBzaXplb2Yoc3RydWN0IHN5c19kZXZpY2UpICsgbnJfaW9hcGljX3JlZ2lzdGVyc1tpXQogCQkJKiBzaXplb2Yoc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkpOwotCQltcF9pb2FwaWNfZGF0YVtpXSA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisJCW1wX2lvYXBpY19kYXRhW2ldID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsKIAkJaWYgKCFtcF9pb2FwaWNfZGF0YVtpXSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDYW4ndCBzdXNwZW5kL3Jlc3VtZSBJT0FQSUMgJWRcbiIsIGkpOwogCQkJY29udGludWU7CiAJCX0KLQkJbWVtc2V0KG1wX2lvYXBpY19kYXRhW2ldLCAwLCBzaXplKTsKIAkJZGV2ID0gJm1wX2lvYXBpY19kYXRhW2ldLT5kZXY7Ci0JCWRldi0+aWQgPSBpOyAKKwkJZGV2LT5pZCA9IGk7CiAJCWRldi0+Y2xzID0gJmlvYXBpY19zeXNkZXZfY2xhc3M7CiAJCWVycm9yID0gc3lzZGV2X3JlZ2lzdGVyKGRldik7CiAJCWlmIChlcnJvcikgewpAQCAtMjQ2Niw3ICsyNDg5LDcgQEAKIAkJbXNnLT5hZGRyZXNzX2xvID0KIAkJCU1TSV9BRERSX0JBU0VfTE8gfAogCQkJKChJTlRfREVTVF9NT0RFID09IDApID8KLQkJCQlNU0lfQUREUl9ERVNUX01PREVfUEhZU0lDQUw6CitNU0lfQUREUl9ERVNUX01PREVfUEhZU0lDQUw6CiAJCQkJTVNJX0FERFJfREVTVF9NT0RFX0xPR0lDQUwpIHwKIAkJCSgoSU5UX0RFTElWRVJZX01PREUgIT0gZGVzdF9Mb3dlc3RQcmlvKSA/CiAJCQkJTVNJX0FERFJfUkVESVJFQ1RJT05fQ1BVOgpAQCAtMjQ3Nyw3ICsyNTAwLDcgQEAKIAkJCU1TSV9EQVRBX1RSSUdHRVJfRURHRSB8CiAJCQlNU0lfREFUQV9MRVZFTF9BU1NFUlQgfAogCQkJKChJTlRfREVMSVZFUllfTU9ERSAhPSBkZXN0X0xvd2VzdFByaW8pID8KLQkJCQlNU0lfREFUQV9ERUxJVkVSWV9GSVhFRDoKK01TSV9EQVRBX0RFTElWRVJZX0ZJWEVEOgogCQkJCU1TSV9EQVRBX0RFTElWRVJZX0xPV1BSSSkgfAogCQkJTVNJX0RBVEFfVkVDVE9SKHZlY3Rvcik7CiAJfQpAQCAtMjY0OCwxMiArMjY3MSwxMiBAQAogI2VuZGlmIC8qIENPTkZJR19IVF9JUlEgKi8KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSS1iYXNlZCBJT0FQSUMgQ29uZmlndXJhdGlvbgorCQkJQUNQSS1iYXNlZCBJT0FQSUMgQ29uZmlndXJhdGlvbgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmZGVmIENPTkZJR19BQ1BJCiAKLWludCBfX2luaXQgaW9fYXBpY19nZXRfdW5pcXVlX2lkIChpbnQgaW9hcGljLCBpbnQgYXBpY19pZCkKK2ludCBfX2luaXQgaW9fYXBpY19nZXRfdW5pcXVlX2lkKGludCBpb2FwaWMsIGludCBhcGljX2lkKQogewogCXVuaW9uIElPX0FQSUNfcmVnXzAwIHJlZ18wMDsKIAlzdGF0aWMgcGh5c2lkX21hc2tfdCBhcGljX2lkX21hcCA9IFBIWVNJRF9NQVNLX05PTkU7CkBAIC0yNjYyLDEwICsyNjg1LDEwIEBACiAJaW50IGkgPSAwOwogCiAJLyoKLQkgKiBUaGUgUDQgcGxhdGZvcm0gc3VwcG9ydHMgdXAgdG8gMjU2IEFQSUMgSURzIG9uIHR3byBzZXBhcmF0ZSBBUElDIAotCSAqIGJ1c2VzIChvbmUgZm9yIExBUElDcywgb25lIGZvciBJT0FQSUNzKSwgd2hlcmUgcHJlZGVjZXNzb3JzIG9ubHkgCisJICogVGhlIFA0IHBsYXRmb3JtIHN1cHBvcnRzIHVwIHRvIDI1NiBBUElDIElEcyBvbiB0d28gc2VwYXJhdGUgQVBJQworCSAqIGJ1c2VzIChvbmUgZm9yIExBUElDcywgb25lIGZvciBJT0FQSUNzKSwgd2hlcmUgcHJlZGVjZXNzb3JzIG9ubHkKIAkgKiBzdXBwb3J0cyB1cCB0byAxNiBvbiBvbmUgc2hhcmVkIEFQSUMgYnVzLgotCSAqIAorCSAqCiAJICogVEJEOiBFeHBhbmQgTEFQSUMvSU9BUElDIHN1cHBvcnQgb24gUDQtY2xhc3Mgc3lzdGVtcyB0byB0YWtlIGZ1bGwKIAkgKiAgICAgIGFkdmFudGFnZSBvZiBuZXcgQVBJQyBidXMgYXJjaGl0ZWN0dXJlLgogCSAqLwpAQCAtMjY4NCw3ICsyNzA3LDcgQEAKIAl9CiAKIAkvKgotCSAqIEV2ZXJ5IEFQSUMgaW4gYSBzeXN0ZW0gbXVzdCBoYXZlIGEgdW5pcXVlIElEIG9yIHdlIGdldCBsb3RzIG9mIG5pY2UgCisJICogRXZlcnkgQVBJQyBpbiBhIHN5c3RlbSBtdXN0IGhhdmUgYSB1bmlxdWUgSUQgb3Igd2UgZ2V0IGxvdHMgb2YgbmljZQogCSAqICdzdHVjayBvbiBzbXBfaW52YWxpZGF0ZV9uZWVkZWQgSVBJIHdhaXQnIG1lc3NhZ2VzLgogCSAqLwogCWlmIChjaGVja19hcGljaWRfdXNlZChhcGljX2lkX21hcCwgYXBpY19pZCkpIHsKQEAgLTI3MDEsNyArMjcyNCw3IEBACiAJCQkidHJ5aW5nICVkXG4iLCBpb2FwaWMsIGFwaWNfaWQsIGkpOwogCiAJCWFwaWNfaWQgPSBpOwotCX0gCisJfQogCiAJdG1wID0gYXBpY2lkX3RvX2NwdV9wcmVzZW50KGFwaWNfaWQpOwogCXBoeXNpZHNfb3IoYXBpY19pZF9tYXAsIGFwaWNfaWRfbWFwLCB0bXApOwpAQCAtMjcyOCw3ICsyNzUxLDcgQEAKIH0KIAogCi1pbnQgX19pbml0IGlvX2FwaWNfZ2V0X3ZlcnNpb24gKGludCBpb2FwaWMpCitpbnQgX19pbml0IGlvX2FwaWNfZ2V0X3ZlcnNpb24oaW50IGlvYXBpYykKIHsKIAl1bmlvbiBJT19BUElDX3JlZ18wMQlyZWdfMDE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTI3NDEsNyArMjc2NCw3IEBACiB9CiAKIAotaW50IF9faW5pdCBpb19hcGljX2dldF9yZWRpcl9lbnRyaWVzIChpbnQgaW9hcGljKQoraW50IF9faW5pdCBpb19hcGljX2dldF9yZWRpcl9lbnRyaWVzKGludCBpb2FwaWMpCiB7CiAJdW5pb24gSU9fQVBJQ19yZWdfMDEJcmVnXzAxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC0yNzU0LDcgKzI3NzcsNyBAQAogfQogCiAKLWludCBpb19hcGljX3NldF9wY2lfcm91dGluZyAoaW50IGlvYXBpYywgaW50IHBpbiwgaW50IGlycSwgaW50IGVkZ2VfbGV2ZWwsIGludCBhY3RpdmVfaGlnaF9sb3cpCitpbnQgaW9fYXBpY19zZXRfcGNpX3JvdXRpbmcoaW50IGlvYXBpYywgaW50IHBpbiwgaW50IGlycSwgaW50IGVkZ2VfbGV2ZWwsIGludCBhY3RpdmVfaGlnaF9sb3cpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgZW50cnk7CiAKQEAgLTI3NzAsNyArMjc5Myw3IEBACiAJICogY29ycmVzcG9uZGluZyBkZXZpY2UgZHJpdmVyIHJlZ2lzdGVycyBmb3IgdGhpcyBJUlEuCiAJICovCiAKLQltZW1zZXQoJmVudHJ5LDAsc2l6ZW9mKGVudHJ5KSk7CisJbWVtc2V0KCZlbnRyeSwgMCwgc2l6ZW9mKGVudHJ5KSk7CiAKIAllbnRyeS5kZWxpdmVyeV9tb2RlID0gSU5UX0RFTElWRVJZX01PREU7CiAJZW50cnkuZGVzdF9tb2RlID0gSU5UX0RFU1RfTU9ERTsKQEAgLTI3ODksNyArMjgxMiw3IEBACiAKIAlhcGljX3ByaW50ayhBUElDX0RFQlVHLCBLRVJOX0RFQlVHICJJT0FQSUNbJWRdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgIgogCQkiKCVkLSVkIC0+IDB4JXggLT4gSVJRICVkIE1vZGU6JWkgQWN0aXZlOiVpKVxuIiwgaW9hcGljLAotCQltcF9pb2FwaWNzW2lvYXBpY10ubXBjX2FwaWNpZCwgcGluLCBlbnRyeS52ZWN0b3IsIGlycSwKKwkJbXBfaW9hcGljc1tpb2FwaWNdLm1wX2FwaWNpZCwgcGluLCBlbnRyeS52ZWN0b3IsIGlycSwKIAkJZWRnZV9sZXZlbCwgYWN0aXZlX2hpZ2hfbG93KTsKIAogCWlvYXBpY19yZWdpc3Rlcl9pbnRyKGlycSwgZW50cnkudmVjdG9yLCBlZGdlX2xldmVsKTsKQEAgLTI4MTAsOCArMjgzMyw4IEBACiAJCXJldHVybiAtMTsKIAogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKQotCQlpZiAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSBtcF9JTlQgJiYKLQkJICAgIG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBidXNfaXJxKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IG1wX0lOVCAmJgorCQkgICAgbXBfaXJxc1tpXS5tcF9zcmNidXNpcnEgPT0gYnVzX2lycSkKIAkJCWJyZWFrOwogCWlmIChpID49IG1wX2lycV9lbnRyaWVzKQogCQlyZXR1cm4gLTE7CkBAIC0yODQ0LDMgKzI4NjcsMzQgQEAKIAlyZXR1cm4gMDsKIH0KIGVhcmx5X3BhcmFtKCJub2FwaWMiLCBwYXJzZV9ub2FwaWMpOworCit2b2lkIF9faW5pdCBpb2FwaWNfaW5pdF9tYXBwaW5ncyh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgaW9hcGljX3BoeXMsIGlkeCA9IEZJWF9JT19BUElDX0JBU0VfMDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspIHsKKwkJaWYgKHNtcF9mb3VuZF9jb25maWcpIHsKKwkJCWlvYXBpY19waHlzID0gbXBfaW9hcGljc1tpXS5tcF9hcGljYWRkcjsKKwkJCWlmICghaW9hcGljX3BoeXMpIHsKKwkJCQlwcmludGsoS0VSTl9FUlIKKwkJCQkgICAgICAgIldBUk5JTkc6IGJvZ3VzIHplcm8gSU8tQVBJQyAiCisJCQkJICAgICAgICJhZGRyZXNzIGZvdW5kIGluIE1QVEFCTEUsICIKKwkJCQkgICAgICAgImRpc2FibGluZyBJTy9BUElDIHN1cHBvcnQhXG4iKTsKKwkJCQlzbXBfZm91bmRfY29uZmlnID0gMDsKKwkJCQlza2lwX2lvYXBpY19zZXR1cCA9IDE7CisJCQkJZ290byBmYWtlX2lvYXBpY19wYWdlOworCQkJfQorCQl9IGVsc2UgeworZmFrZV9pb2FwaWNfcGFnZToKKwkJCWlvYXBpY19waHlzID0gKHVuc2lnbmVkIGxvbmcpCisJCQkJICAgICAgYWxsb2NfYm9vdG1lbV9wYWdlcyhQQUdFX1NJWkUpOworCQkJaW9hcGljX3BoeXMgPSBfX3BhKGlvYXBpY19waHlzKTsKKwkJfQorCQlzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBpb2FwaWNfcGh5cyk7CisJCXByaW50ayhLRVJOX0RFQlVHICJtYXBwZWQgSU9BUElDIHRvICUwOGx4ICglMDhseClcbiIsCisJCSAgICAgICBfX2ZpeF90b192aXJ0KGlkeCksIGlvYXBpY19waHlzKTsKKwkJaWR4Kys7CisJfQorfQorCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY182NC5jIGIvYXJjaC94ODYva2VybmVsL2lvX2FwaWNfNjQuYwppbmRleCBlZjFhOGRmLi5iMTZlZjAyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaW9fYXBpY182NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pb19hcGljXzY0LmMKQEAgLTYxLDcgKzYxLDcgQEAKIH07CiAKIC8qIGlycV9jZmcgaXMgaW5kZXhlZCBieSB0aGUgc3VtIG9mIGFsbCBSVEVzIGluIGFsbCBJL08gQVBJQ3MuICovCi1zdHJ1Y3QgaXJxX2NmZyBpcnFfY2ZnW05SX0lSUVNdIF9fcmVhZF9tb3N0bHkgPSB7CitzdGF0aWMgc3RydWN0IGlycV9jZmcgaXJxX2NmZ1tOUl9JUlFTXSBfX3JlYWRfbW9zdGx5ID0gewogCVswXSAgPSB7IC5kb21haW4gPSBDUFVfTUFTS19BTEwsIC52ZWN0b3IgPSBJUlEwX1ZFQ1RPUiwgIH0sCiAJWzFdICA9IHsgLmRvbWFpbiA9IENQVV9NQVNLX0FMTCwgLnZlY3RvciA9IElSUTFfVkVDVE9SLCAgfSwKIAlbMl0gID0geyAuZG9tYWluID0gQ1BVX01BU0tfQUxMLCAudmVjdG9yID0gSVJRMl9WRUNUT1IsICB9LApAQCAtODIsNiArODIsMTAgQEAKIAogc3RhdGljIGludCBhc3NpZ25faXJxX3ZlY3RvcihpbnQgaXJxLCBjcHVtYXNrX3QgbWFzayk7CiAKK2ludCBmaXJzdF9zeXN0ZW1fdmVjdG9yID0gMHhmZTsKKworY2hhciBzeXN0ZW1fdmVjdG9yc1tOUl9WRUNUT1JTXSA9IHsgWzAgLi4uIE5SX1ZFQ1RPUlMtMV0gPSBTWVNfVkVDVE9SX0ZSRUV9OworCiAjZGVmaW5lIF9fYXBpY2RlYnVnaW5pdCAgX19pbml0CiAKIGludCBzaXNfYXBpY19idWc7IC8qIG5vdCBhY3R1YWxseSBzdXBwb3J0ZWQsIGR1bW15IGZvciBjb21waWxlICovCkBAIC05MCw3ICs5NCw3IEBACiAKIHN0YXRpYyBpbnQgZGlzYWJsZV90aW1lcl9waW5fMSBfX2luaXRkYXRhOwogCi1pbnQgdGltZXJfb3Zlcl84MjU0IF9faW5pdGRhdGEgPSAxOworaW50IHRpbWVyX3Rocm91Z2hfODI1OSBfX2luaXRkYXRhOwogCiAvKiBXaGVyZSBpZiBhbnl3aGVyZSBpcyB0aGUgaTgyNTkgY29ubmVjdCBpbiBleHRlcm5hbCBpbnQgbW9kZSAqLwogc3RhdGljIHN0cnVjdCB7IGludCBwaW4sIGFwaWM7IH0gaW9hcGljX2k4MjU5ID0geyAtMSwgLTEgfTsKQEAgLTEwNCwxNSArMTA4LDE3IEBACiBpbnQgbnJfaW9hcGljX3JlZ2lzdGVyc1tNQVhfSU9fQVBJQ1NdOwogCiAvKiBJL08gQVBJQyBlbnRyaWVzICovCi1zdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOworc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOwogaW50IG5yX2lvYXBpY3M7CiAKIC8qIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwotc3RydWN0IG1wY19jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKK3N0cnVjdCBtcF9jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKIAogLyogIyBvZiBNUCBJUlEgc291cmNlIGVudHJpZXMgKi8KIGludCBtcF9pcnFfZW50cmllczsKIAorREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOworCiAvKgogICogUm91Z2ggZXN0aW1hdGlvbiBvZiBob3cgbWFueSBzaGFyZWQgSVJRcyB0aGVyZSBhcmUsIGNhbgogICogYmUgY2hhbmdlZCBhbnl0aW1lLgpAQCAtMTQwLDcgKzE0Niw3IEBACiBzdGF0aWMgX19hdHRyaWJ1dGVfY29uc3RfXyBzdHJ1Y3QgaW9fYXBpYyBfX2lvbWVtICppb19hcGljX2Jhc2UoaW50IGlkeCkKIHsKIAlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSBfX2ZpeF90b192aXJ0KEZJWF9JT19BUElDX0JBU0VfMCArIGlkeCkKLQkJKyAobXBfaW9hcGljc1tpZHhdLm1wY19hcGljYWRkciAmIH5QQUdFX01BU0spOworCQkrIChtcF9pb2FwaWNzW2lkeF0ubXBfYXBpY2FkZHIgJiB+UEFHRV9NQVNLKTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW9fYXBpY19yZWFkKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnKQpAQCAtMTgzLDcgKzE4OSw3IEBACiAJCQlicmVhazsKIAkJcmVnID0gaW9fYXBpY19yZWFkKGVudHJ5LT5hcGljLCAweDEwICsgcGluKjIpOwogCQkvKiBJcyB0aGUgcmVtb3RlIElSUiBiaXQgc2V0PyAqLwotCQlpZiAoKHJlZyA+PiAxNCkgJiAxKSB7CisJCWlmIChyZWcgJiBJT19BUElDX1JFRElSX1JFTU9URV9JUlIpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gdHJ1ZTsKIAkJfQpAQCAtMjk4LDcgKzMwNCw3IEBACiAJCQlicmVhazsKIAkJaW9fYXBpY193cml0ZShhcGljLCAweDExICsgcGluKjIsIGRlc3QpOwogCQlyZWcgPSBpb19hcGljX3JlYWQoYXBpYywgMHgxMCArIHBpbioyKTsKLQkJcmVnICY9IH4weDAwMDAwMGZmOworCQlyZWcgJj0gfklPX0FQSUNfUkVESVJfVkVDVE9SX01BU0s7CiAJCXJlZyB8PSB2ZWN0b3I7CiAJCWlvX2FwaWNfbW9kaWZ5KGFwaWMsIHJlZyk7CiAJCWlmICghZW50cnktPm5leHQpCkBAIC0zNjAsMTYgKzM2NiwzNyBAQAogCWVudHJ5LT5waW4gPSBwaW47CiB9CiAKKy8qCisgKiBSZXJvdXRlIGFuIElSUSB0byBhIGRpZmZlcmVudCBwaW4uCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCByZXBsYWNlX3Bpbl9hdF9pcnEodW5zaWduZWQgaW50IGlycSwKKwkJCQkgICAgICBpbnQgb2xkYXBpYywgaW50IG9sZHBpbiwKKwkJCQkgICAgICBpbnQgbmV3YXBpYywgaW50IG5ld3BpbikKK3sKKwlzdHJ1Y3QgaXJxX3Bpbl9saXN0ICplbnRyeSA9IGlycV8yX3BpbiArIGlycTsKKworCXdoaWxlICgxKSB7CisJCWlmIChlbnRyeS0+YXBpYyA9PSBvbGRhcGljICYmIGVudHJ5LT5waW4gPT0gb2xkcGluKSB7CisJCQllbnRyeS0+YXBpYyA9IG5ld2FwaWM7CisJCQllbnRyeS0+cGluID0gbmV3cGluOworCQl9CisJCWlmICghZW50cnktPm5leHQpCisJCQlicmVhazsKKwkJZW50cnkgPSBpcnFfMl9waW4gKyBlbnRyeS0+bmV4dDsKKwl9Cit9CisKIAogI2RlZmluZSBET19BQ1RJT04obmFtZSxSLEFDVElPTiwgRklOQUwpCQkJCQlcCiAJCQkJCQkJCQlcCiAJc3RhdGljIHZvaWQgbmFtZSMjX0lPX0FQSUNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQkJXAogCV9fRE9fQUNUSU9OKFIsIEFDVElPTiwgRklOQUwpCiAKLURPX0FDVElPTiggX19tYXNrLCAgICAgICAgICAgICAwLCB8PSAweDAwMDEwMDAwLCBpb19hcGljX3N5bmMoZW50cnktPmFwaWMpICkKLQkJCQkJCS8qIG1hc2sgPSAxICovCi1ET19BQ1RJT04oIF9fdW5tYXNrLCAgICAgICAgICAgMCwgJj0gMHhmZmZlZmZmZiwgKQotCQkJCQkJLyogbWFzayA9IDAgKi8KKy8qIG1hc2sgPSAxICovCitET19BQ1RJT04oX19tYXNrLAkwLCB8PSBJT19BUElDX1JFRElSX01BU0tFRCwgaW9fYXBpY19zeW5jKGVudHJ5LT5hcGljKSkKKworLyogbWFzayA9IDAgKi8KK0RPX0FDVElPTihfX3VubWFzaywJMCwgJj0gfklPX0FQSUNfUkVESVJfTUFTS0VELCApCiAKIHN0YXRpYyB2b2lkIG1hc2tfSU9fQVBJQ19pcnEgKHVuc2lnbmVkIGludCBpcnEpCiB7CkBAIC00MzAsMjAgKzQ1Nyw2IEBACiB9CiBfX3NldHVwKCJkaXNhYmxlX3RpbWVyX3Bpbl8xIiwgZGlzYWJsZV90aW1lcl9waW5fc2V0dXApOwogCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9kaXNhYmxlXzgyNTRfdGltZXIoY2hhciAqcykKLXsKLQl0aW1lcl9vdmVyXzgyNTQgPSAtMTsKLQlyZXR1cm4gMTsKLX0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX2VuYWJsZV84MjU0X3RpbWVyKGNoYXIgKnMpCi17Ci0JdGltZXJfb3Zlcl84MjU0ID0gMjsKLQlyZXR1cm4gMTsKLX0KLQotX19zZXR1cCgiZGlzYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZGlzYWJsZV84MjU0X3RpbWVyKTsKLV9fc2V0dXAoImVuYWJsZV84MjU0X3RpbWVyIiwgc2V0dXBfZW5hYmxlXzgyNTRfdGltZXIpOwotCiAKIC8qCiAgKiBGaW5kIHRoZSBJUlEgZW50cnkgbnVtYmVyIG9mIGEgY2VydGFpbiBwaW4uCkBAIC00NTMsMTAgKzQ2NiwxMCBAQAogCWludCBpOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCWlmIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IHR5cGUgJiYKLQkJICAgIChtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCB8fAotCQkgICAgIG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCi0JCSAgICBtcF9pcnFzW2ldLm1wY19kc3RpcnEgPT0gcGluKQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlID09IHR5cGUgJiYKKwkJICAgIChtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gbXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgfHwKKwkJICAgICBtcF9pcnFzW2ldLm1wX2RzdGFwaWMgPT0gTVBfQVBJQ19BTEwpICYmCisJCSAgICBtcF9pcnFzW2ldLm1wX2RzdGlycSA9PSBwaW4pCiAJCQlyZXR1cm4gaTsKIAogCXJldHVybiAtMTsKQEAgLTQ3MCwxMyArNDgzLDEzIEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAKLQkJCXJldHVybiBtcF9pcnFzW2ldLm1wY19kc3RpcnE7CisJCQlyZXR1cm4gbXBfaXJxc1tpXS5tcF9kc3RpcnE7CiAJfQogCXJldHVybiAtMTsKIH0KQEAgLTQ4NiwxNyArNDk5LDE3IEBACiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgewotCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBjX3NyY2J1czsKKwkJaW50IGxidXMgPSBtcF9pcnFzW2ldLm1wX3NyY2J1czsKIAogCQlpZiAodGVzdF9iaXQobGJ1cywgbXBfYnVzX25vdF9wY2kpICYmCi0JCSAgICAobXBfaXJxc1tpXS5tcGNfaXJxdHlwZSA9PSB0eXBlKSAmJgotCQkgICAgKG1wX2lycXNbaV0ubXBjX3NyY2J1c2lycSA9PSBpcnEpKQorCQkgICAgKG1wX2lycXNbaV0ubXBfaXJxdHlwZSA9PSB0eXBlKSAmJgorCQkgICAgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxID09IGlycSkpCiAJCQlicmVhazsKIAl9CiAJaWYgKGkgPCBtcF9pcnFfZW50cmllcykgewogCQlpbnQgYXBpYzsKIAkJZm9yKGFwaWMgPSAwOyBhcGljIDwgbnJfaW9hcGljczsgYXBpYysrKSB7Ci0JCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID09IG1wX2lycXNbaV0ubXBjX2RzdGFwaWMpCisJCQlpZiAobXBfaW9hcGljc1thcGljXS5tcF9hcGljaWQgPT0gbXBfaXJxc1tpXS5tcF9kc3RhcGljKQogCQkJCXJldHVybiBhcGljOwogCQl9CiAJfQpAQCAtNTE2LDI4ICs1MjksMjggQEAKIAogCWFwaWNfcHJpbnRrKEFQSUNfREVCVUcsICJxdWVyeWluZyBQQ0kgLT4gSVJRIG1hcHBpbmcgYnVzOiVkLCBzbG90OiVkLCBwaW46JWQuXG4iLAogCQlidXMsIHNsb3QsIHBpbik7Ci0JaWYgKG1wX2J1c19pZF90b19wY2lfYnVzW2J1c10gPT0gLTEpIHsKKwlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpIHsKIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCAiUENJIEJJT1MgcGFzc2VkIG5vbmV4aXN0ZW50IFBDSSBidXMgJWQhXG4iLCBidXMpOwogCQlyZXR1cm4gLTE7CiAJfQogCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7Ci0JCWludCBsYnVzID0gbXBfaXJxc1tpXS5tcGNfc3JjYnVzOworCQlpbnQgbGJ1cyA9IG1wX2lycXNbaV0ubXBfc3JjYnVzOwogCiAJCWZvciAoYXBpYyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKyspCi0JCQlpZiAobXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkID09IG1wX2lycXNbaV0ubXBjX2RzdGFwaWMgfHwKLQkJCSAgICBtcF9pcnFzW2ldLm1wY19kc3RhcGljID09IE1QX0FQSUNfQUxMKQorCQkJaWYgKG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkID09IG1wX2lycXNbaV0ubXBfZHN0YXBpYyB8fAorCQkJICAgIG1wX2lycXNbaV0ubXBfZHN0YXBpYyA9PSBNUF9BUElDX0FMTCkKIAkJCQlicmVhazsKIAogCQlpZiAoIXRlc3RfYml0KGxidXMsIG1wX2J1c19ub3RfcGNpKSAmJgotCQkgICAgIW1wX2lycXNbaV0ubXBjX2lycXR5cGUgJiYKKwkJICAgICFtcF9pcnFzW2ldLm1wX2lycXR5cGUgJiYKIAkJICAgIChidXMgPT0gbGJ1cykgJiYKLQkJICAgIChzbG90ID09ICgobXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID4+IDIpICYgMHgxZikpKSB7Ci0JCQlpbnQgaXJxID0gcGluXzJfaXJxKGksYXBpYyxtcF9pcnFzW2ldLm1wY19kc3RpcnEpOworCQkgICAgKHNsb3QgPT0gKChtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA+PiAyKSAmIDB4MWYpKSkgeworCQkJaW50IGlycSA9IHBpbl8yX2lycShpLGFwaWMsbXBfaXJxc1tpXS5tcF9kc3RpcnEpOwogCiAJCQlpZiAoIShhcGljIHx8IElPX0FQSUNfSVJRKGlycSkpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAocGluID09IChtcF9pcnFzW2ldLm1wY19zcmNidXNpcnEgJiAzKSkKKwkJCWlmIChwaW4gPT0gKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxICYgMykpCiAJCQkJcmV0dXJuIGlycTsKIAkJCS8qCiAJCQkgKiBVc2UgdGhlIGZpcnN0IGFsbC1idXQtcGluIG1hdGNoaW5nIGVudHJ5IGFzIGEKQEAgLTU2NSwxMyArNTc4LDEzIEBACiAKIHN0YXRpYyBpbnQgTVBCSU9TX3BvbGFyaXR5KGludCBpZHgpCiB7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCWludCBwb2xhcml0eTsKIAogCS8qCiAJICogRGV0ZXJtaW5lIElSUSBsaW5lIHBvbGFyaXR5IChoaWdoIGFjdGl2ZSBvciBsb3cgYWN0aXZlKToKIAkgKi8KLQlzd2l0Y2ggKG1wX2lycXNbaWR4XS5tcGNfaXJxZmxhZyAmIDMpCisJc3dpdGNoIChtcF9pcnFzW2lkeF0ubXBfaXJxZmxhZyAmIDMpCiAJewogCQljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50IHBvbGFyaXR5ICovCiAJCQlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpCkBAIC02MDcsMTMgKzYyMCwxMyBAQAogCiBzdGF0aWMgaW50IE1QQklPU190cmlnZ2VyKGludCBpZHgpCiB7Ci0JaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcGNfc3JjYnVzOworCWludCBidXMgPSBtcF9pcnFzW2lkeF0ubXBfc3JjYnVzOwogCWludCB0cmlnZ2VyOwogCiAJLyoKIAkgKiBEZXRlcm1pbmUgSVJRIHRyaWdnZXIgbW9kZSAoZWRnZSBvciBsZXZlbCBzZW5zaXRpdmUpOgogCSAqLwotCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcGNfaXJxZmxhZz4+MikgJiAzKQorCXN3aXRjaCAoKG1wX2lycXNbaWR4XS5tcF9pcnFmbGFnPj4yKSAmIDMpCiAJewogCQljYXNlIDA6IC8qIGNvbmZvcm1zLCBpZS4gYnVzLXR5cGUgZGVwZW5kZW50ICovCiAJCQlpZiAodGVzdF9iaXQoYnVzLCBtcF9idXNfbm90X3BjaSkpCkBAIC02NjAsMTYgKzY3MywxNiBAQAogc3RhdGljIGludCBwaW5fMl9pcnEoaW50IGlkeCwgaW50IGFwaWMsIGludCBwaW4pCiB7CiAJaW50IGlycSwgaTsKLQlpbnQgYnVzID0gbXBfaXJxc1tpZHhdLm1wY19zcmNidXM7CisJaW50IGJ1cyA9IG1wX2lycXNbaWR4XS5tcF9zcmNidXM7CiAKIAkvKgogCSAqIERlYnVnZ2luZyBjaGVjaywgd2UgYXJlIGluIGJpZyB0cm91YmxlIGlmIHRoaXMgbWVzc2FnZSBwb3BzIHVwIQogCSAqLwotCWlmIChtcF9pcnFzW2lkeF0ubXBjX2RzdGlycSAhPSBwaW4pCisJaWYgKG1wX2lycXNbaWR4XS5tcF9kc3RpcnEgIT0gcGluKQogCQlwcmludGsoS0VSTl9FUlIgImJyb2tlbiBCSU9TIG9yIE1QVEFCTEUgcGFyc2VyLCBheWllZSEhXG4iKTsKIAogCWlmICh0ZXN0X2JpdChidXMsIG1wX2J1c19ub3RfcGNpKSkgewotCQlpcnEgPSBtcF9pcnFzW2lkeF0ubXBjX3NyY2J1c2lycTsKKwkJaXJxID0gbXBfaXJxc1tpZHhdLm1wX3NyY2J1c2lycTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBQQ0kgSVJRcyBhcmUgbWFwcGVkIGluIG9yZGVyCkBAIC03MzAsNyArNzQzLDcgQEAKIAkJb2Zmc2V0ID0gY3VycmVudF9vZmZzZXQ7CiBuZXh0OgogCQl2ZWN0b3IgKz0gODsKLQkJaWYgKHZlY3RvciA+PSBGSVJTVF9TWVNURU1fVkVDVE9SKSB7CisJCWlmICh2ZWN0b3IgPj0gZmlyc3Rfc3lzdGVtX3ZlY3RvcikgewogCQkJLyogSWYgd2UgcnVuIG91dCBvZiB2ZWN0b3JzIG9uIGxhcmdlIGJveGVuLCBtdXN0IHNoYXJlIHRoZW0uICovCiAJCQlvZmZzZXQgPSAob2Zmc2V0ICsgMSkgJSA4OwogCQkJdmVjdG9yID0gRklSU1RfREVWSUNFX1ZFQ1RPUiArIG9mZnNldDsKQEAgLTc4OCw3ICs4MDEsNyBAQAogCWNwdXNfY2xlYXIoY2ZnLT5kb21haW4pOwogfQogCi12b2lkIF9fc2V0dXBfdmVjdG9yX2lycShpbnQgY3B1KQorc3RhdGljIHZvaWQgX19zZXR1cF92ZWN0b3JfaXJxKGludCBjcHUpCiB7CiAJLyogSW5pdGlhbGl6ZSB2ZWN0b3JfaXJxIG9uIGEgbmV3IGNwdSAqLwogCS8qIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgd2l0aCB2ZWN0b3JfbG9jayBoZWxkICovCkBAIC04MTEsNiArODI0LDEzIEBACiAJfQogfQogCit2b2lkIHNldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSkKK3sKKwlzcGluX2xvY2soJnZlY3Rvcl9sb2NrKTsKKwlfX3NldHVwX3ZlY3Rvcl9pcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwlzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworfQorCiAKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgaW9hcGljX2NoaXA7CiAKQEAgLTg0Niw3ICs4NjYsNyBAQAogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0RFQlVHCiAJCSAgICAiSU9BUElDWyVkXTogU2V0IHJvdXRpbmcgZW50cnkgKCVkLSVkIC0+IDB4JXggLT4gIgogCQkgICAgIklSUSAlZCBNb2RlOiVpIEFjdGl2ZTolaSlcbiIsCi0JCSAgICBhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wY19hcGljaWQsIHBpbiwgY2ZnLT52ZWN0b3IsCisJCSAgICBhcGljLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluLCBjZmctPnZlY3RvciwKIAkJICAgIGlycSwgdHJpZ2dlciwgcG9sYXJpdHkpOwogCiAJLyoKQEAgLTg4NywxMCArOTA3LDEwIEBACiAJCWlkeCA9IGZpbmRfaXJxX2VudHJ5KGFwaWMscGluLG1wX0lOVCk7CiAJCWlmIChpZHggPT0gLTEpIHsKIAkJCWlmIChmaXJzdF9ub3Rjb24pIHsKLQkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcgIiBJTy1BUElDIChhcGljaWQtcGluKSAlZC0lZCIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCwgcGluKTsKKwkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIEtFUk5fREVCVUcgIiBJTy1BUElDIChhcGljaWQtcGluKSAlZC0lZCIsIG1wX2lvYXBpY3NbYXBpY10ubXBfYXBpY2lkLCBwaW4pOwogCQkJCWZpcnN0X25vdGNvbiA9IDA7CiAJCQl9IGVsc2UKLQkJCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICIsICVkLSVkIiwgbXBfaW9hcGljc1thcGljXS5tcGNfYXBpY2lkLCBwaW4pOworCQkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwgIiwgJWQtJWQiLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCwgcGluKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmICghZmlyc3Rfbm90Y29uKSB7CkBAIC05MTEsMjYgKzkzMSwyMSBAQAogfQogCiAvKgotICogU2V0IHVwIHRoZSA4MjU5QS1tYXN0ZXIgb3V0cHV0IHBpbiBhcyBicm9hZGNhc3QgdG8gYWxsCi0gKiBDUFVzLgorICogU2V0IHVwIHRoZSB0aW1lciBwaW4sIHBvc3NpYmx5IHdpdGggdGhlIDgyNTlBLW1hc3RlciBiZWhpbmQuCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9FeHRJTlRfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sIGludCB2ZWN0b3IpCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfdGltZXJfSVJRMF9waW4odW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCBwaW4sCisJCQkJCWludCB2ZWN0b3IpCiB7CiAJc3RydWN0IElPX0FQSUNfcm91dGVfZW50cnkgZW50cnk7CiAKIAltZW1zZXQoJmVudHJ5LCAwLCBzaXplb2YoZW50cnkpKTsKIAotCWRpc2FibGVfODI1OUFfaXJxKDApOwotCi0JLyogbWFzayBMVlQwICovCi0JYXBpY193cml0ZShBUElDX0xWVDAsIEFQSUNfTFZUX01BU0tFRCB8IEFQSUNfRE1fRVhUSU5UKTsKLQogCS8qCiAJICogV2UgdXNlIGxvZ2ljYWwgZGVsaXZlcnkgdG8gZ2V0IHRoZSB0aW1lciBJUlEKIAkgKiB0byB0aGUgZmlyc3QgQ1BVLgogCSAqLwogCWVudHJ5LmRlc3RfbW9kZSA9IElOVF9ERVNUX01PREU7Ci0JZW50cnkubWFzayA9IDA7CQkJCQkvKiB1bm1hc2sgSVJRIG5vdyAqLworCWVudHJ5Lm1hc2sgPSAxOwkJCQkJLyogbWFzayBJUlEgbm93ICovCiAJZW50cnkuZGVzdCA9IGNwdV9tYXNrX3RvX2FwaWNpZChUQVJHRVRfQ1BVUyk7CiAJZW50cnkuZGVsaXZlcnlfbW9kZSA9IElOVF9ERUxJVkVSWV9NT0RFOwogCWVudHJ5LnBvbGFyaXR5ID0gMDsKQEAgLTkzOSw3ICs5NTQsNyBAQAogCiAJLyoKIAkgKiBUaGUgdGltZXIgSVJRIGRvZXNuJ3QgaGF2ZSB0byBrbm93IHRoYXQgYmVoaW5kIHRoZQotCSAqIHNjZW5lIHdlIGhhdmUgYSA4MjU5QS1tYXN0ZXIgaW4gQUVPSSBtb2RlIC4uLgorCSAqIHNjZW5lIHdlIG1heSBoYXZlIGEgODI1OUEtbWFzdGVyIGluIEFFT0kgbW9kZSAuLi4KIAkgKi8KIAlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZSgwLCAmaW9hcGljX2NoaXAsIGhhbmRsZV9lZGdlX2lycSwgImVkZ2UiKTsKIApAQCAtOTQ3LDggKzk2Miw2IEBACiAJICogQWRkIGl0IHRvIHRoZSBJTy1BUElDIGlycS1yb3V0aW5nIHRhYmxlOgogCSAqLwogCWlvYXBpY193cml0ZV9lbnRyeShhcGljLCBwaW4sIGVudHJ5KTsKLQotCWVuYWJsZV84MjU5QV9pcnEoMCk7CiB9CiAKIHZvaWQgX19hcGljZGVidWdpbml0IHByaW50X0lPX0FQSUModm9pZCkKQEAgLTk2NSw3ICs5NzgsNyBAQAogCXByaW50ayhLRVJOX0RFQlVHICJudW1iZXIgb2YgTVAgSVJRIHNvdXJjZXM6ICVkLlxuIiwgbXBfaXJxX2VudHJpZXMpOwogCWZvciAoaSA9IDA7IGkgPCBucl9pb2FwaWNzOyBpKyspCiAJCXByaW50ayhLRVJOX0RFQlVHICJudW1iZXIgb2YgSU8tQVBJQyAjJWQgcmVnaXN0ZXJzOiAlZC5cbiIsCi0JCSAgICAgICBtcF9pb2FwaWNzW2ldLm1wY19hcGljaWQsIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0pOworCQkgICAgICAgbXBfaW9hcGljc1tpXS5tcF9hcGljaWQsIG5yX2lvYXBpY19yZWdpc3RlcnNbaV0pOwogCiAJLyoKIAkgKiBXZSBhcmUgYSBiaXQgY29uc2VydmF0aXZlIGFib3V0IHdoYXQgd2UgZXhwZWN0LiAgV2UgaGF2ZSB0bwpAQCAtOTgzLDcgKzk5Niw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9hcGljX2xvY2ssIGZsYWdzKTsKIAogCXByaW50aygiXG4iKTsKLQlwcmludGsoS0VSTl9ERUJVRyAiSU8gQVBJQyAjJWQuLi4uLi5cbiIsIG1wX2lvYXBpY3NbYXBpY10ubXBjX2FwaWNpZCk7CisJcHJpbnRrKEtFUk5fREVCVUcgIklPIEFQSUMgIyVkLi4uLi4uXG4iLCBtcF9pb2FwaWNzW2FwaWNdLm1wX2FwaWNpZCk7CiAJcHJpbnRrKEtFUk5fREVCVUcgIi4uLi4gcmVnaXN0ZXIgIzAwOiAlMDhYXG4iLCByZWdfMDAucmF3KTsKIAlwcmludGsoS0VSTl9ERUJVRyAiLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6ICUwMlhcbiIsIHJlZ18wMC5iaXRzLklEKTsKIApAQCAtMTA3Nyw2ICsxMDkwLDcgQEAKIAogCXByaW50aygiXG4iIEtFUk5fREVCVUcgInByaW50aW5nIGxvY2FsIEFQSUMgY29udGVudHMgb24gQ1BVIyVkLyVkOlxuIiwKIAkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJdiA9IGFwaWNfcmVhZChBUElDX0lEKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBJRDogICAgICAlMDh4ICglMDF4KVxuIiwgdiwgR0VUX0FQSUNfSUQocmVhZF9hcGljX2lkKCkpKTsKIAl2ID0gYXBpY19yZWFkKEFQSUNfTFZSKTsKIAlwcmludGsoS0VSTl9JTkZPICIuLi4gQVBJQyBWRVJTSU9OOiAlMDh4XG4iLCB2KTsKQEAgLTE1NDAsNyArMTU1NCw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBlbmFibGVfbGFwaWNfaXJxICh1bnNpZ25lZCBpbnQgaXJxKQorc3RhdGljIHZvaWQgdW5tYXNrX2xhcGljX2lycSh1bnNpZ25lZCBpbnQgaXJxKQogewogCXVuc2lnbmVkIGxvbmcgdjsKIApAQCAtMTU0OCw3ICsxNTYyLDcgQEAKIAlhcGljX3dyaXRlKEFQSUNfTFZUMCwgdiAmIH5BUElDX0xWVF9NQVNLRUQpOwogfQogCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2xhcGljX2lycSAodW5zaWduZWQgaW50IGlycSkKK3N0YXRpYyB2b2lkIG1hc2tfbGFwaWNfaXJxKHVuc2lnbmVkIGludCBpcnEpCiB7CiAJdW5zaWduZWQgbG9uZyB2OwogCkBAIC0xNTYxLDE5ICsxNTc1LDIwIEBACiAJYWNrX0FQSUNfaXJxKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuZF9sYXBpY19pcnEgKHVuc2lnbmVkIGludCBpKSB7IC8qIG5vdGhpbmcgKi8gfQotCi1zdGF0aWMgc3RydWN0IGh3X2ludGVycnVwdF90eXBlIGxhcGljX2lycV90eXBlIF9fcmVhZF9tb3N0bHkgPSB7Ci0JLm5hbWUgPSAibG9jYWwtQVBJQyIsCi0JLnR5cGVuYW1lID0gImxvY2FsLUFQSUMtZWRnZSIsCi0JLnN0YXJ0dXAgPSBOVUxMLCAvKiBzdGFydHVwX2lycSgpIG5vdCB1c2VkIGZvciBJUlEwICovCi0JLnNodXRkb3duID0gTlVMTCwgLyogc2h1dGRvd25faXJxKCkgbm90IHVzZWQgZm9yIElSUTAgKi8KLQkuZW5hYmxlID0gZW5hYmxlX2xhcGljX2lycSwKLQkuZGlzYWJsZSA9IGRpc2FibGVfbGFwaWNfaXJxLAotCS5hY2sgPSBhY2tfbGFwaWNfaXJxLAotCS5lbmQgPSBlbmRfbGFwaWNfaXJxLAorc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBsYXBpY19jaGlwIF9fcmVhZF9tb3N0bHkgPSB7CisJLm5hbWUJCT0gImxvY2FsLUFQSUMiLAorCS5tYXNrCQk9IG1hc2tfbGFwaWNfaXJxLAorCS51bm1hc2sJCT0gdW5tYXNrX2xhcGljX2lycSwKKwkuYWNrCQk9IGFja19sYXBpY19pcnEsCiB9OwogCitzdGF0aWMgdm9pZCBsYXBpY19yZWdpc3Rlcl9pbnRyKGludCBpcnEpCit7CisJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJj0gfklSUV9MRVZFTDsKKwlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpcnEsICZsYXBpY19jaGlwLCBoYW5kbGVfZWRnZV9pcnEsCisJCQkJICAgICAgImVkZ2UiKTsKK30KKwogc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25taSh2b2lkKQogewogCS8qCkBAIC0xNjU5LDYgKzE2NzQsNyBAQAogCXN0cnVjdCBpcnFfY2ZnICpjZmcgPSBpcnFfY2ZnICsgMDsKIAlpbnQgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IG5vX3BpbjEgPSAwOwogCiAJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCkBAIC0xNjY5LDE2ICsxNjg1LDExIEBACiAJYXNzaWduX2lycV92ZWN0b3IoMCwgVEFSR0VUX0NQVVMpOwogCiAJLyoKLQkgKiBTdWJ0bGUsIGNvZGUgaW4gZG9fdGltZXJfaW50ZXJydXB0KCkgZXhwZWN0cyBhbiBBRU9JCi0JICogbW9kZSBmb3IgdGhlIDgyNTlBIHdoZW5ldmVyIGludGVycnVwdHMgYXJlIHJvdXRlZAotCSAqIHRocm91Z2ggSS9PIEFQSUNzLiAgQWxzbyBJUlEwIGhhcyB0byBiZSBlbmFibGVkIGluCi0JICogdGhlIDgyNTlBIHdoaWNoIGltcGxpZXMgdGhlIHZpcnR1YWwgd2lyZSBoYXMgdG8gYmUKLQkgKiBkaXNhYmxlZCBpbiB0aGUgbG9jYWwgQVBJQy4KKwkgKiBBcyBJUlEwIGlzIHRvIGJlIGVuYWJsZWQgaW4gdGhlIDgyNTlBLCB0aGUgdmlydHVhbAorCSAqIHdpcmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIHRoZSBsb2NhbCBBUElDLgogCSAqLwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0VYVElOVCk7CiAJaW5pdF84MjU5QSgxKTsKLQlpZiAodGltZXJfb3Zlcl84MjU0ID4gMCkKLQkJZW5hYmxlXzgyNTlBX2lycSgwKTsKIAogCXBpbjEgID0gZmluZF9pc2FfaXJxX3BpbigwLCBtcF9JTlQpOwogCWFwaWMxID0gZmluZF9pc2FfaXJxX2FwaWMoMCwgbXBfSU5UKTsKQEAgLTE2ODgsMTUgKzE2OTksMzMgQEAKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsS0VSTl9JTkZPICIuLlRJTUVSOiB2ZWN0b3I9MHglMDJYIGFwaWMxPSVkIHBpbjE9JWQgYXBpYzI9JWQgcGluMj0lZFxuIiwKIAkJY2ZnLT52ZWN0b3IsIGFwaWMxLCBwaW4xLCBhcGljMiwgcGluMik7CiAKKwkvKgorCSAqIFNvbWUgQklPUyB3cml0ZXJzIGFyZSBjbHVlbGVzcyBhbmQgcmVwb3J0IHRoZSBFeHRJTlRBCisJICogSS9PIEFQSUMgaW5wdXQgZnJvbSB0aGUgY2FzY2FkZWQgODI1OUEgYXMgdGhlIHRpbWVyCisJICogaW50ZXJydXB0IGlucHV0LiAgU28ganVzdCBpbiBjYXNlLCBpZiBvbmx5IG9uZSBwaW4KKwkgKiB3YXMgZm91bmQgYWJvdmUsIHRyeSBpdCBib3RoIGRpcmVjdGx5IGFuZCB0aHJvdWdoIHRoZQorCSAqIDgyNTlBLgorCSAqLworCWlmIChwaW4xID09IC0xKSB7CisJCXBpbjEgPSBwaW4yOworCQlhcGljMSA9IGFwaWMyOworCQlub19waW4xID0gMTsKKwl9IGVsc2UgaWYgKHBpbjIgPT0gLTEpIHsKKwkJcGluMiA9IHBpbjE7CisJCWFwaWMyID0gYXBpYzE7CisJfQorCiAJaWYgKHBpbjEgIT0gLTEpIHsKIAkJLyoKIAkJICogT2ssIGRvZXMgSVJRMCB0aHJvdWdoIHRoZSBJT0FQSUMgd29yaz8KIAkJICovCisJCWlmIChub19waW4xKSB7CisJCQlhZGRfcGluX3RvX2lycSgwLCBhcGljMSwgcGluMSk7CisJCQlzZXR1cF90aW1lcl9JUlEwX3BpbihhcGljMSwgcGluMSwgY2ZnLT52ZWN0b3IpOworCQl9CiAJCXVubWFza19JT19BUElDX2lycSgwKTsKIAkJaWYgKCFub190aW1lcl9jaGVjayAmJiB0aW1lcl9pcnFfd29ya3MoKSkgewotCQkJbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKIAkJCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKLQkJCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJCQlzZXR1cF9ubWkoKTsKIAkJCQllbmFibGVfODI1OUFfaXJxKDApOwogCQkJfQpAQCAtMTcwNSw0MyArMTczNCw0OCBAQAogCQkJZ290byBvdXQ7CiAJCX0KIAkJY2xlYXJfSU9fQVBJQ19waW4oYXBpYzEsIHBpbjEpOwotCQlhcGljX3ByaW50ayhBUElDX1FVSUVULEtFUk5fRVJSICIuLk1QLUJJT1MgYnVnOiA4MjU0IHRpbWVyIG5vdCAiCi0JCQkJImNvbm5lY3RlZCB0byBJTy1BUElDXG4iKTsKLQl9CisJCWlmICghbm9fcGluMSkKKwkJCWFwaWNfcHJpbnRrKEFQSUNfUVVJRVQsS0VSTl9FUlIgIi4uTVAtQklPUyBidWc6ICIKKwkJCQkgICAgIjgyNTQgdGltZXIgbm90IGNvbm5lY3RlZCB0byBJTy1BUElDXG4iKTsKIAotCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgKElSUTApICIKLQkJCQkidGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwotCWlmIChwaW4yICE9IC0xKSB7CisJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSxLRVJOX0lORk8KKwkJCSIuLi50cnlpbmcgdG8gc2V0IHVwIHRpbWVyIChJUlEwKSAiCisJCQkidGhyb3VnaCB0aGUgODI1OUEgLi4uICIpOwogCQlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsIlxuLi4uLi4gKGZvdW5kIGFwaWMgJWQgcGluICVkKSAuLi4iLAogCQkJYXBpYzIsIHBpbjIpOwogCQkvKgogCQkgKiBsZWdhY3kgZGV2aWNlcyBzaG91bGQgYmUgY29ubmVjdGVkIHRvIElPIEFQSUMgIzAKIAkJICovCi0JCXNldHVwX0V4dElOVF9JUlEwX3BpbihhcGljMiwgcGluMiwgY2ZnLT52ZWN0b3IpOworCQlyZXBsYWNlX3Bpbl9hdF9pcnEoMCwgYXBpYzEsIHBpbjEsIGFwaWMyLCBwaW4yKTsKKwkJc2V0dXBfdGltZXJfSVJRMF9waW4oYXBpYzIsIHBpbjIsIGNmZy0+dmVjdG9yKTsKKwkJdW5tYXNrX0lPX0FQSUNfaXJxKDApOworCQllbmFibGVfODI1OUFfaXJxKDApOwogCQlpZiAodGltZXJfaXJxX3dvcmtzKCkpIHsKIAkJCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIHdvcmtzLlxuIik7Ci0JCQlubWlfd2F0Y2hkb2dfZGVmYXVsdCgpOworCQkJdGltZXJfdGhyb3VnaF84MjU5ID0gMTsKIAkJCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpIHsKKwkJCQlkaXNhYmxlXzgyNTlBX2lycSgwKTsKIAkJCQlzZXR1cF9ubWkoKTsKKwkJCQllbmFibGVfODI1OUFfaXJxKDApOwogCQkJfQogCQkJZ290byBvdXQ7CiAJCX0KIAkJLyoKIAkJICogQ2xlYW51cCwganVzdCBpbiBjYXNlIC4uLgogCQkgKi8KKwkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CiAJCWNsZWFyX0lPX0FQSUNfcGluKGFwaWMyLCBwaW4yKTsKKwkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCIgZmFpbGVkLlxuIik7CiAJfQotCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIGZhaWxlZC5cbiIpOwogCiAJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJ0aW1lciBkb2Vzbid0IHdvcmsgdGhyb3VnaCB0aGUgSU8tQVBJQyAtIGRpc2FibGluZyBOTUkgV2F0Y2hkb2chXG4iKTsKLQkJbm1pX3dhdGNoZG9nID0gMDsKKwkJbm1pX3dhdGNoZG9nID0gTk1JX05PTkU7CiAJfQogCiAJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCBLRVJOX0lORk8gIi4uLnRyeWluZyB0byBzZXQgdXAgdGltZXIgYXMgVmlydHVhbCBXaXJlIElSUS4uLiIpOwogCi0JZGlzYWJsZV84MjU5QV9pcnEoMCk7Ci0JaXJxX2Rlc2NbMF0uY2hpcCA9ICZsYXBpY19pcnFfdHlwZTsKKwlsYXBpY19yZWdpc3Rlcl9pbnRyKDApOwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0RNX0ZJWEVEIHwgY2ZnLT52ZWN0b3IpOwkvKiBGaXhlZCBtb2RlICovCiAJZW5hYmxlXzgyNTlBX2lycSgwKTsKIApAQCAtMTc0OSw2ICsxNzgzLDcgQEAKIAkJYXBpY19wcmludGsoQVBJQ19WRVJCT1NFLCIgd29ya3MuXG4iKTsKIAkJZ290byBvdXQ7CiAJfQorCWRpc2FibGVfODI1OUFfaXJxKDApOwogCWFwaWNfd3JpdGUoQVBJQ19MVlQwLCBBUElDX0xWVF9NQVNLRUQgfCBBUElDX0RNX0ZJWEVEIHwgY2ZnLT52ZWN0b3IpOwogCWFwaWNfcHJpbnRrKEFQSUNfVkVSQk9TRSwiIGZhaWxlZC5cbiIpOwogCkBAIC0xNzc4LDExICsxODEzLDIxIEBACiBfX3NldHVwKCJub190aW1lcl9jaGVjayIsIG5vdGltZXJjaGVjayk7CiAKIC8qCi0gKgotICogSVJRcyB0aGF0IGFyZSBoYW5kbGVkIGJ5IHRoZSBQSUMgaW4gdGhlIE1QUyBJT0FQSUMgY2FzZS4KLSAqIC0gSVJRMiBpcyB0aGUgY2FzY2FkZSBJUlEsIGFuZCBjYW5ub3QgYmUgYSBpby1hcGljIElSUS4KLSAqICAgTGludXggZG9lc24ndCByZWFsbHkgY2FyZSwgYXMgaXQncyBub3QgYWN0dWFsbHkgdXNlZAotICogICBmb3IgYW55IGludGVycnVwdCBoYW5kbGluZyBhbnl3YXkuCisgKiBUcmFkaXRpb25hbGx5IElTQSBJUlEyIGlzIHRoZSBjYXNjYWRlIElSUSwgYW5kIGlzIG5vdCBhdmFpbGFibGUKKyAqIHRvIGRldmljZXMuICBIb3dldmVyIHRoZXJlIG1heSBiZSBhbiBJL08gQVBJQyBwaW4gYXZhaWxhYmxlIGZvcgorICogdGhpcyBpbnRlcnJ1cHQgcmVnYXJkbGVzcy4gIFRoZSBwaW4gbWF5IGJlIGxlZnQgdW5jb25uZWN0ZWQsIGJ1dAorICogdHlwaWNhbGx5IGl0IHdpbGwgYmUgcmV1c2VkIGFzIGFuIEV4dElOVCBjYXNjYWRlIGludGVycnVwdCBmb3IKKyAqIHRoZSBtYXN0ZXIgODI1OUEuICBJbiB0aGUgTVBTIGNhc2Ugc3VjaCBhIHBpbiB3aWxsIG5vcm1hbGx5IGJlCisgKiByZXBvcnRlZCBhcyBhbiBFeHRJTlQgaW50ZXJydXB0IGluIHRoZSBNUCB0YWJsZS4gIFdpdGggQUNQSQorICogdGhlcmUgaXMgbm8gcHJvdmlzaW9uIGZvciBFeHRJTlQgaW50ZXJydXB0cywgYW5kIGluIHRoZSBhYnNlbmNlCisgKiBvZiBhbiBvdmVycmlkZSBpdCB3b3VsZCBiZSB0cmVhdGVkIGFzIGFuIG9yZGluYXJ5IElTQSBJL08gQVBJQworICogaW50ZXJydXB0LCB0aGF0IGlzIGVkZ2UtdHJpZ2dlcmVkIGFuZCB1bm1hc2tlZCBieSBkZWZhdWx0LiAgV2UKKyAqIHVzZWQgdG8gZG8gdGhpcywgYnV0IGl0IGNhdXNlZCBwcm9ibGVtcyBvbiBzb21lIHN5c3RlbXMgYmVjYXVzZQorICogb2YgdGhlIE5NSSB3YXRjaGRvZyBhbmQgc29tZXRpbWVzIElSUTAgb2YgdGhlIDgyNTQgdGltZXIgdXNpbmcKKyAqIHRoZSBzYW1lIEV4dElOVCBjYXNjYWRlIGludGVycnVwdCB0byBkcml2ZSB0aGUgbG9jYWwgQVBJQyBvZiB0aGUKKyAqIGJvb3RzdHJhcCBwcm9jZXNzb3IuICBUaGVyZWZvcmUgd2UgcmVmcmFpbiBmcm9tIHJvdXRpbmcgSVJRMiB0bworICogdGhlIEkvTyBBUElDIGluIGFsbCBjYXNlcyBub3cuICBObyBhY3R1YWwgZGV2aWNlIHNob3VsZCByZXF1ZXN0CisgKiBpdCBhbnl3YXkuICAtLW1hY3JvCiAgKi8KICNkZWZpbmUgUElDX0lSUVMJKDE8PDIpCiAKQEAgLTE3OTMsMTAgKzE4MzgsNyBAQAogCSAqIGNhbGxpbmcgZW5hYmxlX0lPX0FQSUMoKSBpcyBtb3ZlZCB0byBzZXR1cF9sb2NhbF9BUElDIGZvciBCUAogCSAqLwogCi0JaWYgKGFjcGlfaW9hcGljKQotCQlpb19hcGljX2lycXMgPSB+MDsJLyogYWxsIElSUXMgZ28gdGhyb3VnaCBJT0FQSUMgKi8KLQllbHNlCi0JCWlvX2FwaWNfaXJxcyA9IH5QSUNfSVJRUzsKKwlpb19hcGljX2lycXMgPSB+UElDX0lSUVM7CiAKIAlhcGljX3ByaW50ayhBUElDX1ZFUkJPU0UsICJFTkFCTElORyBJTy1BUElDIElSUXNcbiIpOwogCkBAIC0xODQxLDggKzE4ODMsOCBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvYXBpY19sb2NrLCBmbGFncyk7CiAJcmVnXzAwLnJhdyA9IGlvX2FwaWNfcmVhZChkZXYtPmlkLCAwKTsKLQlpZiAocmVnXzAwLmJpdHMuSUQgIT0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkKSB7Ci0JCXJlZ18wMC5iaXRzLklEID0gbXBfaW9hcGljc1tkZXYtPmlkXS5tcGNfYXBpY2lkOworCWlmIChyZWdfMDAuYml0cy5JRCAhPSBtcF9pb2FwaWNzW2Rldi0+aWRdLm1wX2FwaWNpZCkgeworCQlyZWdfMDAuYml0cy5JRCA9IG1wX2lvYXBpY3NbZGV2LT5pZF0ubXBfYXBpY2lkOwogCQlpb19hcGljX3dyaXRlKGRldi0+aWQsIDAsIHJlZ18wMC5yYXcpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb2FwaWNfbG9jaywgZmxhZ3MpOwpAQCAtMjI0Miw4ICsyMjg0LDggQEAKIAkJcmV0dXJuIC0xOwogCiAJZm9yIChpID0gMDsgaSA8IG1wX2lycV9lbnRyaWVzOyBpKyspCi0JCWlmIChtcF9pcnFzW2ldLm1wY19pcnF0eXBlID09IG1wX0lOVCAmJgotCQkgICAgbXBfaXJxc1tpXS5tcGNfc3JjYnVzaXJxID09IGJ1c19pcnEpCisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgPT0gbXBfSU5UICYmCisJCSAgICBtcF9pcnFzW2ldLm1wX3NyY2J1c2lycSA9PSBidXNfaXJxKQogCQkJYnJlYWs7CiAJaWYgKGkgPj0gbXBfaXJxX2VudHJpZXMpCiAJCXJldHVybiAtMTsKQEAgLTIzMzYsNyArMjM3OCw3IEBACiAJaW9hcGljX3JlcyA9IGlvYXBpY19zZXR1cF9yZXNvdXJjZXMoKTsKIAlmb3IgKGkgPSAwOyBpIDwgbnJfaW9hcGljczsgaSsrKSB7CiAJCWlmIChzbXBfZm91bmRfY29uZmlnKSB7Ci0JCQlpb2FwaWNfcGh5cyA9IG1wX2lvYXBpY3NbaV0ubXBjX2FwaWNhZGRyOworCQkJaW9hcGljX3BoeXMgPSBtcF9pb2FwaWNzW2ldLm1wX2FwaWNhZGRyOwogCQl9IGVsc2UgewogCQkJaW9hcGljX3BoeXMgPSAodW5zaWduZWQgbG9uZykKIAkJCQlhbGxvY19ib290bWVtX3BhZ2VzKFBBR0VfU0laRSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXBpLmMgYi9hcmNoL3g4Ni9rZXJuZWwvaXBpLmMKaW5kZXggYzBkZjdiOC4uOWQ5OGNkYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lwaS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcGkuYwpAQCAtOCw3ICs4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CiAjaW5jbHVkZSA8bGludXgvY2FjaGUuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCmluZGV4IDE0NzM1MmQuLjQ3YTZmNmYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9pcnFfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxXzMyLmMKQEAgLTQ4LDYgKzQ4LDI5IEBACiAjZW5kaWYKIH0KIAorI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS09WRVJGTE9XCisvKiBEZWJ1Z2dpbmcgY2hlY2sgZm9yIHN0YWNrIG92ZXJmbG93OiBpcyB0aGVyZSBsZXNzIHRoYW4gMUtCIGZyZWU/ICovCitzdGF0aWMgaW50IGNoZWNrX3N0YWNrX292ZXJmbG93KHZvaWQpCit7CisJbG9uZyBzcDsKKworCV9fYXNtX18gX192b2xhdGlsZV9fKCJhbmRsICUlZXNwLCUwIiA6CisJCQkgICAgICI9ciIgKHNwKSA6ICIwIiAoVEhSRUFEX1NJWkUgLSAxKSk7CisKKwlyZXR1cm4gc3AgPCAoc2l6ZW9mKHN0cnVjdCB0aHJlYWRfaW5mbykgKyBTVEFDS19XQVJOKTsKK30KKworc3RhdGljIHZvaWQgcHJpbnRfc3RhY2tfb3ZlcmZsb3codm9pZCkKK3sKKwlwcmludGsoS0VSTl9XQVJOSU5HICJsb3cgc3RhY2sgZGV0ZWN0ZWQgYnkgaXJxIGhhbmRsZXJcbiIpOworCWR1bXBfc3RhY2soKTsKK30KKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50IGNoZWNrX3N0YWNrX292ZXJmbG93KHZvaWQpIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9zdGFja19vdmVyZmxvdyh2b2lkKSB7IH0KKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHXzRLU1RBQ0tTCiAvKgogICogcGVyLUNQVSBJUlEgaGFuZGxpbmcgY29udGV4dHMgKHRocmVhZCBpbmZvcm1hdGlvbiBhbmQgc3RhY2spCkBAIC01OSw0OCArODIsMjkgQEAKIAogc3RhdGljIHVuaW9uIGlycV9jdHggKmhhcmRpcnFfY3R4W05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7CiBzdGF0aWMgdW5pb24gaXJxX2N0eCAqc29mdGlycV9jdHhbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKLSNlbmRpZgogCi0vKgotICogZG9fSVJRIGhhbmRsZXMgYWxsIG5vcm1hbCBkZXZpY2UgSVJRJ3MgKHRoZSBzcGVjaWFsCi0gKiBTTVAgY3Jvc3MtQ1BVIGludGVycnVwdHMgaGF2ZSB0aGVpciBvd24gc3BlY2lmaWMKLSAqIGhhbmRsZXJzKS4KLSAqLwotdW5zaWduZWQgaW50IGRvX0lSUShzdHJ1Y3QgcHRfcmVncyAqcmVncykKLXsJCi0Jc3RydWN0IHB0X3JlZ3MgKm9sZF9yZWdzOwotCS8qIGhpZ2ggYml0IHVzZWQgaW4gcmV0X2Zyb21fIGNvZGUgKi8KLQlpbnQgaXJxID0gfnJlZ3MtPm9yaWdfYXg7Ci0Jc3RydWN0IGlycV9kZXNjICpkZXNjID0gaXJxX2Rlc2MgKyBpcnE7Ci0jaWZkZWYgQ09ORklHXzRLU1RBQ0tTCitzdGF0aWMgY2hhciBzb2Z0aXJxX3N0YWNrW05SX0NQVVMgKiBUSFJFQURfU0laRV0KKwkJX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKKworc3RhdGljIGNoYXIgaGFyZGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCisJCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyB2b2lkIGNhbGxfb25fc3RhY2sodm9pZCAqZnVuYywgdm9pZCAqc3RhY2spCit7CisJYXNtIHZvbGF0aWxlKCJ4Y2hnbAklJWVieCwlJWVzcAlcbiIKKwkJICAgICAiY2FsbAkqJSVlZGkJCVxuIgorCQkgICAgICJtb3ZsCSUlZWJ4LCUlZXNwCVxuIgorCQkgICAgIDogIj1iIiAoc3RhY2spCisJCSAgICAgOiAiMCIgKHN0YWNrKSwKKwkJICAgICAgICJEIihmdW5jKQorCQkgICAgIDogIm1lbW9yeSIsICJjYyIsICJlZHgiLCAiZWN4IiwgImVheCIpOworfQorCitzdGF0aWMgaW5saW5lIGludAorZXhlY3V0ZV9vbl9pcnFfc3RhY2soaW50IG92ZXJmbG93LCBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIGludCBpcnEpCit7CiAJdW5pb24gaXJxX2N0eCAqY3VyY3R4LCAqaXJxY3R4OwotCXUzMiAqaXNwOwotI2VuZGlmCi0KLQlpZiAodW5saWtlbHkoKHVuc2lnbmVkKWlycSA+PSBOUl9JUlFTKSkgewotCQlwcmludGsoS0VSTl9FTUVSRyAiJXM6IGNhbm5vdCBoYW5kbGUgSVJRICVkXG4iLAotCQkJCQlfX2Z1bmNfXywgaXJxKTsKLQkJQlVHKCk7Ci0JfQotCi0Jb2xkX3JlZ3MgPSBzZXRfaXJxX3JlZ3MocmVncyk7Ci0JaXJxX2VudGVyKCk7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX1NUQUNLT1ZFUkZMT1cKLQkvKiBEZWJ1Z2dpbmcgY2hlY2sgZm9yIHN0YWNrIG92ZXJmbG93OiBpcyB0aGVyZSBsZXNzIHRoYW4gMUtCIGZyZWU/ICovCi0JewotCQlsb25nIHNwOwotCi0JCV9fYXNtX18gX192b2xhdGlsZV9fKCJhbmRsICUlZXNwLCUwIiA6Ci0JCQkJCSI9ciIgKHNwKSA6ICIwIiAoVEhSRUFEX1NJWkUgLSAxKSk7Ci0JCWlmICh1bmxpa2VseShzcCA8IChzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArIFNUQUNLX1dBUk4pKSkgewotCQkJcHJpbnRrKCJkb19JUlE6IHN0YWNrIG92ZXJmbG93OiAlbGRcbiIsCi0JCQkJc3AgLSBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSk7Ci0JCQlkdW1wX3N0YWNrKCk7Ci0JCX0KLQl9Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR180S1NUQUNLUworCXUzMiAqaXNwLCBhcmcxLCBhcmcyOwogCiAJY3VyY3R4ID0gKHVuaW9uIGlycV9jdHggKikgY3VycmVudF90aHJlYWRfaW5mbygpOwogCWlycWN0eCA9IGhhcmRpcnFfY3R4W3NtcF9wcm9jZXNzb3JfaWQoKV07CkBAIC0xMTEsNTIgKzExNSwzOSBAQAogCSAqIGhhbmRsZXIpIHdlIGNhbid0IGRvIHRoYXQgYW5kIGp1c3QgaGF2ZSB0byBrZWVwIHVzaW5nIHRoZQogCSAqIGN1cnJlbnQgc3RhY2sgKHdoaWNoIGlzIHRoZSBpcnEgc3RhY2sgYWxyZWFkeSBhZnRlciBhbGwpCiAJICovCi0JaWYgKGN1cmN0eCAhPSBpcnFjdHgpIHsKLQkJaW50IGFyZzEsIGFyZzIsIGJ4OworCWlmICh1bmxpa2VseShjdXJjdHggPT0gaXJxY3R4KSkKKwkJcmV0dXJuIDA7CiAKLQkJLyogYnVpbGQgdGhlIHN0YWNrIGZyYW1lIG9uIHRoZSBJUlEgc3RhY2sgKi8KLQkJaXNwID0gKHUzMiopICgoY2hhciopaXJxY3R4ICsgc2l6ZW9mKCppcnFjdHgpKTsKLQkJaXJxY3R4LT50aW5mby50YXNrID0gY3VyY3R4LT50aW5mby50YXNrOwotCQlpcnFjdHgtPnRpbmZvLnByZXZpb3VzX2VzcCA9IGN1cnJlbnRfc3RhY2tfcG9pbnRlcjsKKwkvKiBidWlsZCB0aGUgc3RhY2sgZnJhbWUgb24gdGhlIElSUSBzdGFjayAqLworCWlzcCA9ICh1MzIgKikgKChjaGFyKilpcnFjdHggKyBzaXplb2YoKmlycWN0eCkpOworCWlycWN0eC0+dGluZm8udGFzayA9IGN1cmN0eC0+dGluZm8udGFzazsKKwlpcnFjdHgtPnRpbmZvLnByZXZpb3VzX2VzcCA9IGN1cnJlbnRfc3RhY2tfcG9pbnRlcjsKIAotCQkvKgotCQkgKiBDb3B5IHRoZSBzb2Z0aXJxIGJpdHMgaW4gcHJlZW1wdF9jb3VudCBzbyB0aGF0IHRoZQotCQkgKiBzb2Z0aXJxIGNoZWNrcyB3b3JrIGluIHRoZSBoYXJkaXJxIGNvbnRleHQuCi0JCSAqLwotCQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgPQotCQkJKGlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIH5TT0ZUSVJRX01BU0spIHwKLQkJCShjdXJjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgJiBTT0ZUSVJRX01BU0spOworCS8qCisJICogQ29weSB0aGUgc29mdGlycSBiaXRzIGluIHByZWVtcHRfY291bnQgc28gdGhhdCB0aGUKKwkgKiBzb2Z0aXJxIGNoZWNrcyB3b3JrIGluIHRoZSBoYXJkaXJxIGNvbnRleHQuCisJICovCisJaXJxY3R4LT50aW5mby5wcmVlbXB0X2NvdW50ID0KKwkJKGlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIH5TT0ZUSVJRX01BU0spIHwKKwkJKGN1cmN0eC0+dGluZm8ucHJlZW1wdF9jb3VudCAmIFNPRlRJUlFfTUFTSyk7CiAKLQkJYXNtIHZvbGF0aWxlKAotCQkJIiAgICAgICB4Y2hnbCAgJSVlYngsJSVlc3AgICAgXG4iCi0JCQkiICAgICAgIGNhbGwgICAqJSVlZGkgICAgICAgICBcbiIKLQkJCSIgICAgICAgbW92bCAgICUlZWJ4LCUlZXNwICAgIFxuIgotCQkJOiAiPWEiIChhcmcxKSwgIj1kIiAoYXJnMiksICI9YiIgKGJ4KQotCQkJOiAgIjAiIChpcnEpLCAgICIxIiAoZGVzYyksICAiMiIgKGlzcCksCi0JCQkgICAiRCIgKGRlc2MtPmhhbmRsZV9pcnEpCi0JCQk6ICJtZW1vcnkiLCAiY2MiLCAiZWN4IgotCQkpOwotCX0gZWxzZQotI2VuZGlmCi0JCWRlc2MtPmhhbmRsZV9pcnEoaXJxLCBkZXNjKTsKKwlpZiAodW5saWtlbHkob3ZlcmZsb3cpKQorCQljYWxsX29uX3N0YWNrKHByaW50X3N0YWNrX292ZXJmbG93LCBpc3ApOwogCi0JaXJxX2V4aXQoKTsKLQlzZXRfaXJxX3JlZ3Mob2xkX3JlZ3MpOworCWFzbSB2b2xhdGlsZSgieGNoZ2wJJSVlYngsJSVlc3AJXG4iCisJCSAgICAgImNhbGwJKiUlZWRpCQlcbiIKKwkJICAgICAibW92bAklJWVieCwlJWVzcAlcbiIKKwkJICAgICA6ICI9YSIgKGFyZzEpLCAiPWQiIChhcmcyKSwgIj1iIiAoaXNwKQorCQkgICAgIDogICIwIiAoaXJxKSwgICAiMSIgKGRlc2MpLCAgIjIiIChpc3ApLAorCQkJIkQiIChkZXNjLT5oYW5kbGVfaXJxKQorCQkgICAgIDogIm1lbW9yeSIsICJjYyIsICJlY3giKTsKIAlyZXR1cm4gMTsKIH0KIAotI2lmZGVmIENPTkZJR180S1NUQUNLUwotCi1zdGF0aWMgY2hhciBzb2Z0aXJxX3N0YWNrW05SX0NQVVMgKiBUSFJFQURfU0laRV0KLQkJX19hdHRyaWJ1dGVfXygoX19zZWN0aW9uX18oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKLQotc3RhdGljIGNoYXIgaGFyZGlycV9zdGFja1tOUl9DUFVTICogVEhSRUFEX1NJWkVdCi0JCV9fYXR0cmlidXRlX18oKF9fc2VjdGlvbl9fKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7Ci0KIC8qCiAgKiBhbGxvY2F0ZSBwZXItY3B1IHN0YWNrcyBmb3IgaGFyZGlycSBhbmQgZm9yIHNvZnRpcnEgcHJvY2Vzc2luZwogICovCi12b2lkIGlycV9jdHhfaW5pdChpbnQgY3B1KQordm9pZCBfX2NwdWluaXQgaXJxX2N0eF9pbml0KGludCBjcHUpCiB7CiAJdW5pb24gaXJxX2N0eCAqaXJxY3R4OwogCkBAIC0xNjQsMjUgKzE1NSwyNSBAQAogCQlyZXR1cm47CiAKIAlpcnFjdHggPSAodW5pb24gaXJxX2N0eCopICZoYXJkaXJxX3N0YWNrW2NwdSpUSFJFQURfU0laRV07Ci0JaXJxY3R4LT50aW5mby50YXNrICAgICAgICAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbiAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5jcHUgICAgICAgICAgICAgICA9IGNwdTsKLQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgICAgID0gSEFSRElSUV9PRkZTRVQ7Ci0JaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0ICAgICAgICA9IE1BS0VfTU1fU0VHKDApOworCWlycWN0eC0+dGluZm8udGFzawkJPSBOVUxMOworCWlycWN0eC0+dGluZm8uZXhlY19kb21haW4JPSBOVUxMOworCWlycWN0eC0+dGluZm8uY3B1CQk9IGNwdTsKKwlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQJPSBIQVJESVJRX09GRlNFVDsKKwlpcnFjdHgtPnRpbmZvLmFkZHJfbGltaXQJPSBNQUtFX01NX1NFRygwKTsKIAogCWhhcmRpcnFfY3R4W2NwdV0gPSBpcnFjdHg7CiAKIAlpcnFjdHggPSAodW5pb24gaXJxX2N0eCopICZzb2Z0aXJxX3N0YWNrW2NwdSpUSFJFQURfU0laRV07Ci0JaXJxY3R4LT50aW5mby50YXNrICAgICAgICAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbiAgICAgICA9IE5VTEw7Ci0JaXJxY3R4LT50aW5mby5jcHUgICAgICAgICAgICAgICA9IGNwdTsKLQlpcnFjdHgtPnRpbmZvLnByZWVtcHRfY291bnQgICAgID0gMDsKLQlpcnFjdHgtPnRpbmZvLmFkZHJfbGltaXQgICAgICAgID0gTUFLRV9NTV9TRUcoMCk7CisJaXJxY3R4LT50aW5mby50YXNrCQk9IE5VTEw7CisJaXJxY3R4LT50aW5mby5leGVjX2RvbWFpbgk9IE5VTEw7CisJaXJxY3R4LT50aW5mby5jcHUJCT0gY3B1OworCWlycWN0eC0+dGluZm8ucHJlZW1wdF9jb3VudAk9IDA7CisJaXJxY3R4LT50aW5mby5hZGRyX2xpbWl0CT0gTUFLRV9NTV9TRUcoMCk7CiAKIAlzb2Z0aXJxX2N0eFtjcHVdID0gaXJxY3R4OwogCi0JcHJpbnRrKCJDUFUgJXUgaXJxc3RhY2tzLCBoYXJkPSVwIHNvZnQ9JXBcbiIsCi0JCWNwdSxoYXJkaXJxX2N0eFtjcHVdLHNvZnRpcnFfY3R4W2NwdV0pOworCXByaW50ayhLRVJOX0RFQlVHICJDUFUgJXUgaXJxc3RhY2tzLCBoYXJkPSVwIHNvZnQ9JXBcbiIsCisJICAgICAgIGNwdSxoYXJkaXJxX2N0eFtjcHVdLHNvZnRpcnFfY3R4W2NwdV0pOwogfQogCiB2b2lkIGlycV9jdHhfZXhpdChpbnQgY3B1KQpAQCAtMjExLDI1ICsyMDIsNTYgQEAKIAkJLyogYnVpbGQgdGhlIHN0YWNrIGZyYW1lIG9uIHRoZSBzb2Z0aXJxIHN0YWNrICovCiAJCWlzcCA9ICh1MzIqKSAoKGNoYXIqKWlycWN0eCArIHNpemVvZigqaXJxY3R4KSk7CiAKLQkJYXNtIHZvbGF0aWxlKAotCQkJIiAgICAgICB4Y2hnbCAgICUlZWJ4LCUlZXNwICAgICBcbiIKLQkJCSIgICAgICAgY2FsbCAgICBfX2RvX3NvZnRpcnEgICAgXG4iCi0JCQkiICAgICAgIG1vdmwgICAgJSVlYngsJSVlc3AgICAgIFxuIgotCQkJOiAiPWIiKGlzcCkKLQkJCTogIjAiKGlzcCkKLQkJCTogIm1lbW9yeSIsICJjYyIsICJlZHgiLCAiZWN4IiwgImVheCIKLQkJKTsKKwkJY2FsbF9vbl9zdGFjayhfX2RvX3NvZnRpcnEsIGlzcCk7CiAJCS8qCiAJCSAqIFNob3VsZG50IGhhcHBlbiwgd2UgcmV0dXJuZWQgYWJvdmUgaWYgaW5faW50ZXJydXB0KCk6Ci0JIAkgKi8KKwkJICovCiAJCVdBUk5fT05fT05DRShzb2Z0aXJxX2NvdW50KCkpOwogCX0KIAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50CitleGVjdXRlX29uX2lycV9zdGFjayhpbnQgb3ZlcmZsb3csIHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgaW50IGlycSkgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAKIC8qCisgKiBkb19JUlEgaGFuZGxlcyBhbGwgbm9ybWFsIGRldmljZSBJUlEncyAodGhlIHNwZWNpYWwKKyAqIFNNUCBjcm9zcy1DUFUgaW50ZXJydXB0cyBoYXZlIHRoZWlyIG93biBzcGVjaWZpYworICogaGFuZGxlcnMpLgorICovCit1bnNpZ25lZCBpbnQgZG9fSVJRKHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXN0cnVjdCBwdF9yZWdzICpvbGRfcmVnczsKKwkvKiBoaWdoIGJpdCB1c2VkIGluIHJldF9mcm9tXyBjb2RlICovCisJaW50IG92ZXJmbG93LCBpcnEgPSB+cmVncy0+b3JpZ19heDsKKwlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfZGVzYyArIGlycTsKKworCWlmICh1bmxpa2VseSgodW5zaWduZWQpaXJxID49IE5SX0lSUVMpKSB7CisJCXByaW50ayhLRVJOX0VNRVJHICIlczogY2Fubm90IGhhbmRsZSBJUlEgJWRcbiIsCisJCQkJCV9fZnVuY19fLCBpcnEpOworCQlCVUcoKTsKKwl9CisKKwlvbGRfcmVncyA9IHNldF9pcnFfcmVncyhyZWdzKTsKKwlpcnFfZW50ZXIoKTsKKworCW92ZXJmbG93ID0gY2hlY2tfc3RhY2tfb3ZlcmZsb3coKTsKKworCWlmICghZXhlY3V0ZV9vbl9pcnFfc3RhY2sob3ZlcmZsb3csIGRlc2MsIGlycSkpIHsKKwkJaWYgKHVubGlrZWx5KG92ZXJmbG93KSkKKwkJCXByaW50X3N0YWNrX292ZXJmbG93KCk7CisJCWRlc2MtPmhhbmRsZV9pcnEoaXJxLCBkZXNjKTsKKwl9CisKKwlpcnFfZXhpdCgpOworCXNldF9pcnFfcmVncyhvbGRfcmVncyk7CisJcmV0dXJuIDE7Cit9CisKKy8qCiAgKiBJbnRlcnJ1cHQgc3RhdGlzdGljczoKICAqLwogCkBAIC0zMTMsMTYgKzMzNSwyMCBAQAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3RsYl9jb3VudCk7CiAJCXNlcV9wcmludGYocCwgIiAgVExCIHNob290ZG93bnNcbiIpOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9NQ0UKIAkJc2VxX3ByaW50ZihwLCAiVFJNOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3RoZXJtYWxfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRoZXJtYWwgZXZlbnQgaW50ZXJydXB0c1xuIik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAkJc2VxX3ByaW50ZihwLCAiU1BVOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLAogCQkJCXBlcl9jcHUoaXJxX3N0YXQsaikuaXJxX3NwdXJpb3VzX2NvdW50KTsKIAkJc2VxX3ByaW50ZihwLCAiICBTcHVyaW91cyBpbnRlcnJ1cHRzXG4iKTsKKyNlbmRpZgogCQlzZXFfcHJpbnRmKHAsICJFUlI6ICUxMHVcbiIsIGF0b21pY19yZWFkKCZpcnFfZXJyX2NvdW50KSk7CiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X0lPX0FQSUMpCiAJCXNlcV9wcmludGYocCwgIk1JUzogJTEwdVxuIiwgYXRvbWljX3JlYWQoJmlycV9taXNfY291bnQpKTsKQEAgLTMzMSw2ICszNTcsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIC9wcm9jL3N0YXQgaGVscGVycworICovCit1NjQgYXJjaF9pcnFfc3RhdF9jcHUodW5zaWduZWQgaW50IGNwdSkKK3sKKwl1NjQgc3VtID0gbm1pX2NvdW50KGNwdSk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzdW0gKz0gcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5hcGljX3RpbWVyX2lycXM7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU01QCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3Jlc2NoZWRfY291bnQ7CisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX2NhbGxfY291bnQ7CisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3RsYl9jb3VudDsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCisJc3VtICs9IHBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxX3RoZXJtYWxfY291bnQ7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzdW0gKz0gcGVyX2NwdShpcnFfc3RhdCwgY3B1KS5pcnFfc3B1cmlvdXNfY291bnQ7CisjZW5kaWYKKwlyZXR1cm4gc3VtOworfQorCit1NjQgYXJjaF9pcnFfc3RhdCh2b2lkKQoreworCXU2NCBzdW0gPSBhdG9taWNfcmVhZCgmaXJxX2Vycl9jb3VudCk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKKwlzdW0gKz0gYXRvbWljX3JlYWQoJmlycV9taXNfY291bnQpOworI2VuZGlmCisJcmV0dXJuIHN1bTsKK30KKwogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXJxXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaXJxXzY0LmMKaW5kZXggM2FhYzE1NC4uMWY3OGIyMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lycV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtMTM1LDYgKzEzNSw3IEBACiAJCQlzZXFfcHJpbnRmKHAsICIlMTB1ICIsIGNwdV9wZGEoaiktPmlycV90bGJfY291bnQpOwogCQlzZXFfcHJpbnRmKHAsICIgIFRMQiBzaG9vdGRvd25zXG4iKTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTUNFCiAJCXNlcV9wcmludGYocCwgIlRSTTogIik7CiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgY3B1X3BkYShqKS0+aXJxX3RoZXJtYWxfY291bnQpOwpAQCAtMTQzLDYgKzE0NCw3IEBACiAJCWZvcl9lYWNoX29ubGluZV9jcHUoaikKIAkJCXNlcV9wcmludGYocCwgIiUxMHUgIiwgY3B1X3BkYShqKS0+aXJxX3RocmVzaG9sZF9jb3VudCk7CiAJCXNlcV9wcmludGYocCwgIiAgVGhyZXNob2xkIEFQSUMgaW50ZXJydXB0c1xuIik7CisjZW5kaWYKIAkJc2VxX3ByaW50ZihwLCAiU1BVOiAiKTsKIAkJZm9yX2VhY2hfb25saW5lX2NwdShqKQogCQkJc2VxX3ByaW50ZihwLCAiJTEwdSAiLCBjcHVfcGRhKGopLT5pcnFfc3B1cmlvdXNfY291bnQpOwpAQCAtMTUzLDYgKzE1NSwzMiBAQAogfQogCiAvKgorICogL3Byb2Mvc3RhdCBoZWxwZXJzCisgKi8KK3U2NCBhcmNoX2lycV9zdGF0X2NwdSh1bnNpZ25lZCBpbnQgY3B1KQoreworCXU2NCBzdW0gPSBjcHVfcGRhKGNwdSktPl9fbm1pX2NvdW50OworCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+YXBpY190aW1lcl9pcnFzOworI2lmZGVmIENPTkZJR19TTVAKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfcmVzY2hlZF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfY2FsbF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGxiX2NvdW50OworI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9NQ0UKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGhlcm1hbF9jb3VudDsKKwlzdW0gKz0gY3B1X3BkYShjcHUpLT5pcnFfdGhyZXNob2xkX2NvdW50OworI2VuZGlmCisJc3VtICs9IGNwdV9wZGEoY3B1KS0+aXJxX3NwdXJpb3VzX2NvdW50OworCXJldHVybiBzdW07Cit9CisKK3U2NCBhcmNoX2lycV9zdGF0KHZvaWQpCit7CisJcmV0dXJuIGF0b21pY19yZWFkKCZpcnFfZXJyX2NvdW50KTsKK30KKworLyoKICAqIGRvX0lSUSBoYW5kbGVzIGFsbCBub3JtYWwgZGV2aWNlIElSUSdzICh0aGUgc3BlY2lhbAogICogU01QIGNyb3NzLUNQVSBpbnRlcnJ1cHRzIGhhdmUgdGhlaXIgb3duIHNwZWNpZmljCiAgKiBoYW5kbGVycykuCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvaXJxaW5pdF8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycWluaXRfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjY5MTQyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL2lycWluaXRfMzIuYwpAQCAtMCwwICsxLDExNCBAQAorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisKKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS90aW1lci5oPgorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisKKworCisvKgorICogTm90ZSB0aGF0IG9uIGEgNDg2LCB3ZSBkb24ndCB3YW50IHRvIGRvIGEgU0lHRlBFIG9uIGFuIGlycTEzCisgKiBhcyB0aGUgaXJxIGlzIHVucmVsaWFibGUsIGFuZCBleGNlcHRpb24gMTYgd29ya3MgY29ycmVjdGx5CisgKiAoaWUgYXMgZXhwbGFpbmVkIGluIHRoZSBpbnRlbCBsaXRlcmF0dXJlKS4gT24gYSAzODYsIHlvdQorICogY2FuJ3QgdXNlIGV4Y2VwdGlvbiAxNiBkdWUgdG8gYmFkIElCTSBkZXNpZ24sIHNvIHdlIGhhdmUgdG8KKyAqIHJlbHkgb24gdGhlIGxlc3MgZXhhY3QgaXJxMTMuCisgKgorICogQ2FyZWZ1bC4uIE5vdCBvbmx5IGlzIElSUTEzIHVucmVsaWFibGUsIGJ1dCBpdCBpcyBhbHNvCisgKiBsZWFkcyB0byByYWNlcy4gSUJNIGRlc2lnbmVycyB3aG8gY2FtZSB1cCB3aXRoIGl0IHNob3VsZAorICogYmUgc2hvdC4KKyAqLworIAorCitzdGF0aWMgaXJxcmV0dXJuX3QgbWF0aF9lcnJvcl9pcnEoaW50IGNwbCwgdm9pZCAqZGV2X2lkKQoreworCWV4dGVybiB2b2lkIG1hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKik7CisJb3V0YigwLDB4RjApOworCWlmIChpZ25vcmVfZnB1X2lycSB8fCAhYm9vdF9jcHVfZGF0YS5oYXJkX21hdGgpCisJCXJldHVybiBJUlFfTk9ORTsKKwltYXRoX2Vycm9yKCh2b2lkIF9fdXNlciAqKWdldF9pcnFfcmVncygpLT5pcCk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisvKgorICogTmV3IG1vdGhlcmJvYXJkcyBzb21ldGltZXMgbWFrZSBJUlEgMTMgYmUgYSBQQ0kgaW50ZXJydXB0LAorICogc28gYWxsb3cgaW50ZXJydXB0IHNoYXJpbmcuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGZwdV9pcnEgPSB7CisJLmhhbmRsZXIgPSBtYXRoX2Vycm9yX2lycSwKKwkubWFzayA9IENQVV9NQVNLX05PTkUsCisJLm5hbWUgPSAiZnB1IiwKK307CisKK3ZvaWQgX19pbml0IGluaXRfSVNBX2lycXMgKHZvaWQpCit7CisJaW50IGk7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlpbml0X2JzcF9BUElDKCk7CisjZW5kaWYKKwlpbml0XzgyNTlBKDApOworCisJLyoKKwkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgorCSAqLworCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcl9uYW1lKGksICZpODI1OUFfY2hpcCwKKwkJCQkJICAgICAgaGFuZGxlX2xldmVsX2lycSwgIlhUIik7CisJfQorfQorCisvKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgKi8KK3ZvaWQgaW5pdF9JUlEodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIm5hdGl2ZV9pbml0X0lSUSIpKSk7CisKK3ZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKQoreworCWludCBpOworCisJLyogYWxsIHRoZSBzZXQgdXAgYmVmb3JlIHRoZSBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAqLworCXByZV9pbnRyX2luaXRfaG9vaygpOworCisJLyoKKwkgKiBDb3ZlciB0aGUgd2hvbGUgdmVjdG9yIHNwYWNlLCBubyB2ZWN0b3IgY2FuIGVzY2FwZQorCSAqIHVzLiAoc29tZSBvZiB0aGVzZSB3aWxsIGJlIG92ZXJyaWRkZW4gYW5kIGJlY29tZQorCSAqICdzcGVjaWFsJyBTTVAgaW50ZXJydXB0cykKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgKE5SX1ZFQ1RPUlMgLSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpOyBpKyspIHsKKwkJaW50IHZlY3RvciA9IEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUiArIGk7CisJCWlmIChpID49IE5SX0lSUVMpCisJCQlicmVhazsKKwkJLyogU1lTQ0FMTF9WRUNUT1Igd2FzIHJlc2VydmVkIGluIHRyYXBfaW5pdC4gKi8KKwkJaWYgKCF0ZXN0X2JpdCh2ZWN0b3IsIHVzZWRfdmVjdG9ycykpCisJCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKKwl9CisKKwkvKiBzZXR1cCBhZnRlciBjYWxsIGdhdGVzIGFyZSBpbml0aWFsaXNlZCAodXN1YWxseSBhZGQgaW4KKwkgKiB0aGUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGdhdGVzKQorCSAqLworCWludHJfaW5pdF9ob29rKCk7CisKKwkvKgorCSAqIEV4dGVybmFsIEZQVT8gU2V0IHVwIGlycTEzIGlmIHNvLCBmb3IKKwkgKiBvcmlnaW5hbCBicmFpbmRhbWFnZWQgSUJNIEZFUlIgY291cGxpbmcuCisJICovCisJaWYgKGJvb3RfY3B1X2RhdGEuaGFyZF9tYXRoICYmICFjcHVfaGFzX2ZwdSkKKwkJc2V0dXBfaXJxKEZQVV9JUlEsICZmcHVfaXJxKTsKKworCWlycV9jdHhfaW5pdChzbXBfcHJvY2Vzc29yX2lkKCkpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2lycWluaXRfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzY0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFmNDllOAotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFpbml0XzY0LmMKQEAgLTAsMCArMSwyMTcgQEAKKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWV4Lmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorCisjaW5jbHVkZSA8YXNtL2FjcGkuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9od19pcnEuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9kZWxheS5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vaTgyNTkuaD4KKworLyoKKyAqIENvbW1vbiBwbGFjZSB0byBkZWZpbmUgYWxsIHg4NiBJUlEgdmVjdG9ycworICoKKyAqIFRoaXMgYnVpbGRzIHVwIHRoZSBJUlEgaGFuZGxlciBzdHVicyB1c2luZyBzb21lIHVnbHkgbWFjcm9zIGluIGlycS5oCisgKgorICogVGhlc2UgbWFjcm9zIGNyZWF0ZSB0aGUgbG93LWxldmVsIGFzc2VtYmx5IElSUSByb3V0aW5lcyB0aGF0IHNhdmUKKyAqIHJlZ2lzdGVyIGNvbnRleHQgYW5kIGNhbGwgZG9fSVJRKCkuIGRvX0lSUSgpIHRoZW4gZG9lcyBhbGwgdGhlCisgKiBvcGVyYXRpb25zIHRoYXQgYXJlIG5lZWRlZCB0byBrZWVwIHRoZSBBVCAob3IgU01QIElPQVBJQykKKyAqIGludGVycnVwdC1jb250cm9sbGVyIGhhcHB5LgorICovCisKKyNkZWZpbmUgSVJRX05BTUUyKG5yKSBuciMjX2ludGVycnVwdCh2b2lkKQorI2RlZmluZSBJUlFfTkFNRShucikgSVJRX05BTUUyKElSUSMjbnIpCisKKy8qCisgKglTTVAgaGFzIGEgZmV3IHNwZWNpYWwgaW50ZXJydXB0cyBmb3IgSVBJIG1lc3NhZ2VzCisgKi8KKworI2RlZmluZSBCVUlMRF9JUlEobnIpCQkJCVwKKwlhc21saW5rYWdlIHZvaWQgSVJRX05BTUUobnIpOwkJXAorCWFzbSgiXG4ucDJhbGlnblxuIgkJCVwKKwkgICAgIklSUSIgI25yICJfaW50ZXJydXB0OlxuXHQiCQlcCisJICAgICJwdXNoICR+KCIgI25yICIpIDsgIgkJXAorCSAgICAiam1wIGNvbW1vbl9pbnRlcnJ1cHQiKTsKKworI2RlZmluZSBCSSh4LHkpIFwKKwlCVUlMRF9JUlEoeCMjeSkKKworI2RlZmluZSBCVUlMRF8xNl9JUlFTKHgpIFwKKwlCSSh4LDApIEJJKHgsMSkgQkkoeCwyKSBCSSh4LDMpIFwKKwlCSSh4LDQpIEJJKHgsNSkgQkkoeCw2KSBCSSh4LDcpIFwKKwlCSSh4LDgpIEJJKHgsOSkgQkkoeCxhKSBCSSh4LGIpIFwKKwlCSSh4LGMpIEJJKHgsZCkgQkkoeCxlKSBCSSh4LGYpCisKKy8qCisgKiBJU0EgUElDIG9yIGxvdyBJTy1BUElDIHRyaWdnZXJlZCAoSU5UQS1jeWNsZSBvciBBUElDKSBpbnRlcnJ1cHRzOgorICogKHRoZXNlIGFyZSB1c3VhbGx5IG1hcHBlZCB0byB2ZWN0b3JzIDB4MzAtMHgzZikKKyAqLworCisvKgorICogVGhlIElPLUFQSUMgZ2l2ZXMgdXMgbWFueSBtb3JlIGludGVycnVwdCBzb3VyY2VzLiBNb3N0IG9mIHRoZXNlCisgKiBhcmUgdW51c2VkIGJ1dCBhbiBTTVAgc3lzdGVtIGlzIHN1cHBvc2VkIHRvIGhhdmUgZW5vdWdoIG1lbW9yeSAuLi4KKyAqIHNvbWV0aW1lcyAobW9zdGx5IHdydC4gaHcgYnVncykgd2UgZ2V0IGNvcnJ1cHRlZCB2ZWN0b3JzIGFsbAorICogYWNyb3NzIHRoZSBzcGVjdHJ1bSwgc28gd2UgcmVhbGx5IHdhbnQgdG8gYmUgcHJlcGFyZWQgdG8gZ2V0IGFsbAorICogb2YgdGhlc2UuIFBsdXMsIG1vcmUgcG93ZXJmdWwgc3lzdGVtcyBtaWdodCBoYXZlIG1vcmUgdGhhbiA2NAorICogSU8tQVBJQyByZWdpc3RlcnMuCisgKgorICogKHRoZXNlIGFyZSB1c3VhbGx5IG1hcHBlZCBpbnRvIHRoZSAweDMwLTB4ZmYgdmVjdG9yIHJhbmdlKQorICovCisJCQkJICAgICAgQlVJTERfMTZfSVJRUygweDIpIEJVSUxEXzE2X0lSUVMoMHgzKQorQlVJTERfMTZfSVJRUygweDQpIEJVSUxEXzE2X0lSUVMoMHg1KSBCVUlMRF8xNl9JUlFTKDB4NikgQlVJTERfMTZfSVJRUygweDcpCitCVUlMRF8xNl9JUlFTKDB4OCkgQlVJTERfMTZfSVJRUygweDkpIEJVSUxEXzE2X0lSUVMoMHhhKSBCVUlMRF8xNl9JUlFTKDB4YikKK0JVSUxEXzE2X0lSUVMoMHhjKSBCVUlMRF8xNl9JUlFTKDB4ZCkgQlVJTERfMTZfSVJRUygweGUpIEJVSUxEXzE2X0lSUVMoMHhmKQorCisjdW5kZWYgQlVJTERfMTZfSVJRUworI3VuZGVmIEJJCisKKworI2RlZmluZSBJUlEoeCx5KSBcCisJSVJRIyN4IyN5IyNfaW50ZXJydXB0CisKKyNkZWZpbmUgSVJRTElTVF8xNih4KSBcCisJSVJRKHgsMCksIElSUSh4LDEpLCBJUlEoeCwyKSwgSVJRKHgsMyksIFwKKwlJUlEoeCw0KSwgSVJRKHgsNSksIElSUSh4LDYpLCBJUlEoeCw3KSwgXAorCUlSUSh4LDgpLCBJUlEoeCw5KSwgSVJRKHgsYSksIElSUSh4LGIpLCBcCisJSVJRKHgsYyksIElSUSh4LGQpLCBJUlEoeCxlKSwgSVJRKHgsZikKKworLyogZm9yIHRoZSBpcnEgdmVjdG9ycyAqLworc3RhdGljIHZvaWQgKCpfX2luaXRkYXRhIGludGVycnVwdFtOUl9WRUNUT1JTIC0gRklSU1RfRVhURVJOQUxfVkVDVE9SXSkodm9pZCkgPSB7CisJCQkJCSAgSVJRTElTVF8xNigweDIpLCBJUlFMSVNUXzE2KDB4MyksCisJSVJRTElTVF8xNigweDQpLCBJUlFMSVNUXzE2KDB4NSksIElSUUxJU1RfMTYoMHg2KSwgSVJRTElTVF8xNigweDcpLAorCUlSUUxJU1RfMTYoMHg4KSwgSVJRTElTVF8xNigweDkpLCBJUlFMSVNUXzE2KDB4YSksIElSUUxJU1RfMTYoMHhiKSwKKwlJUlFMSVNUXzE2KDB4YyksIElSUUxJU1RfMTYoMHhkKSwgSVJRTElTVF8xNigweGUpLCBJUlFMSVNUXzE2KDB4ZikKK307CisKKyN1bmRlZiBJUlEKKyN1bmRlZiBJUlFMSVNUXzE2CisKKworCisKKy8qCisgKiBJUlEyIGlzIGNhc2NhZGUgaW50ZXJydXB0IHRvIHNlY29uZCBpbnRlcnJ1cHQgY29udHJvbGxlcgorICovCisKK3N0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTIgPSB7CisJLmhhbmRsZXIgPSBub19hY3Rpb24sCisJLm1hc2sgPSBDUFVfTUFTS19OT05FLAorCS5uYW1lID0gImNhc2NhZGUiLAorfTsKK0RFRklORV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSkgPSB7CisJWzAgLi4uIElSUTBfVkVDVE9SIC0gMV0gPSAtMSwKKwlbSVJRMF9WRUNUT1JdID0gMCwKKwlbSVJRMV9WRUNUT1JdID0gMSwKKwlbSVJRMl9WRUNUT1JdID0gMiwKKwlbSVJRM19WRUNUT1JdID0gMywKKwlbSVJRNF9WRUNUT1JdID0gNCwKKwlbSVJRNV9WRUNUT1JdID0gNSwKKwlbSVJRNl9WRUNUT1JdID0gNiwKKwlbSVJRN19WRUNUT1JdID0gNywKKwlbSVJROF9WRUNUT1JdID0gOCwKKwlbSVJROV9WRUNUT1JdID0gOSwKKwlbSVJRMTBfVkVDVE9SXSA9IDEwLAorCVtJUlExMV9WRUNUT1JdID0gMTEsCisJW0lSUTEyX1ZFQ1RPUl0gPSAxMiwKKwlbSVJRMTNfVkVDVE9SXSA9IDEzLAorCVtJUlExNF9WRUNUT1JdID0gMTQsCisJW0lSUTE1X1ZFQ1RPUl0gPSAxNSwKKwlbSVJRMTVfVkVDVE9SICsgMSAuLi4gTlJfVkVDVE9SUyAtIDFdID0gLTEKK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbml0X0lTQV9pcnFzICh2b2lkKQoreworCWludCBpOworCisJaW5pdF9ic3BfQVBJQygpOworCWluaXRfODI1OUEoMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlJfSVJRUzsgaSsrKSB7CisJCWlycV9kZXNjW2ldLnN0YXR1cyA9IElSUV9ESVNBQkxFRDsKKwkJaXJxX2Rlc2NbaV0uYWN0aW9uID0gTlVMTDsKKwkJaXJxX2Rlc2NbaV0uZGVwdGggPSAxOworCisJCWlmIChpIDwgMTYpIHsKKwkJCS8qCisJCQkgKiAxNiBvbGQtc3R5bGUgSU5UQS1jeWNsZSBpbnRlcnJ1cHRzOgorCQkJICovCisJCQlzZXRfaXJxX2NoaXBfYW5kX2hhbmRsZXJfbmFtZShpLCAmaTgyNTlBX2NoaXAsCisJCQkJCQkgICAgICBoYW5kbGVfbGV2ZWxfaXJxLCAiWFQiKTsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiAnaGlnaCcgUENJIElSUXMgZmlsbGVkIGluIG9uIGRlbWFuZAorCQkJICovCisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJm5vX2lycV9jaGlwOworCQl9CisJfQorfQorCit2b2lkIGluaXRfSVJRKHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJuYXRpdmVfaW5pdF9JUlEiKSkpOworCit2b2lkIF9faW5pdCBuYXRpdmVfaW5pdF9JUlEodm9pZCkKK3sKKwlpbnQgaTsKKworCWluaXRfSVNBX2lycXMoKTsKKwkvKgorCSAqIENvdmVyIHRoZSB3aG9sZSB2ZWN0b3Igc3BhY2UsIG5vIHZlY3RvciBjYW4gZXNjYXBlCisJICogdXMuIChzb21lIG9mIHRoZXNlIHdpbGwgYmUgb3ZlcnJpZGRlbiBhbmQgYmVjb21lCisJICogJ3NwZWNpYWwnIFNNUCBpbnRlcnJ1cHRzKQorCSAqLworCWZvciAoaSA9IDA7IGkgPCAoTlJfVkVDVE9SUyAtIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUik7IGkrKykgeworCQlpbnQgdmVjdG9yID0gRklSU1RfRVhURVJOQUxfVkVDVE9SICsgaTsKKwkJaWYgKHZlY3RvciAhPSBJQTMyX1NZU0NBTExfVkVDVE9SKQorCQkJc2V0X2ludHJfZ2F0ZSh2ZWN0b3IsIGludGVycnVwdFtpXSk7CisJfQorCisjaWZkZWYgQ09ORklHX1NNUAorCS8qCisJICogVGhlIHJlc2NoZWR1bGUgaW50ZXJydXB0IGlzIGEgQ1BVLXRvLUNQVSByZXNjaGVkdWxlLWhlbHBlcgorCSAqIElQSSwgZHJpdmVuIGJ5IHdha2V1cC4KKwkgKi8KKwlhbGxvY19pbnRyX2dhdGUoUkVTQ0hFRFVMRV9WRUNUT1IsIHJlc2NoZWR1bGVfaW50ZXJydXB0KTsKKworCS8qIElQSXMgZm9yIGludmFsaWRhdGlvbiAqLworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMCwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQwKTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzEsIGludmFsaWRhdGVfaW50ZXJydXB0MSk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCsyLCBpbnZhbGlkYXRlX2ludGVycnVwdDIpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrMywgaW52YWxpZGF0ZV9pbnRlcnJ1cHQzKTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzQsIGludmFsaWRhdGVfaW50ZXJydXB0NCk7CisJYWxsb2NfaW50cl9nYXRlKElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVCs1LCBpbnZhbGlkYXRlX2ludGVycnVwdDUpOworCWFsbG9jX2ludHJfZ2F0ZShJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQrNiwgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ2KTsKKwlhbGxvY19pbnRyX2dhdGUoSU5WQUxJREFURV9UTEJfVkVDVE9SX1NUQVJUKzcsIGludmFsaWRhdGVfaW50ZXJydXB0Nyk7CisKKwkvKiBJUEkgZm9yIGdlbmVyaWMgZnVuY3Rpb24gY2FsbCAqLworCWFsbG9jX2ludHJfZ2F0ZShDQUxMX0ZVTkNUSU9OX1ZFQ1RPUiwgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQpOworCisJLyogTG93IHByaW9yaXR5IElQSSB0byBjbGVhbnVwIGFmdGVyIG1vdmluZyBhbiBpcnEgKi8KKwlzZXRfaW50cl9nYXRlKElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SLCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCk7CisjZW5kaWYKKwlhbGxvY19pbnRyX2dhdGUoVEhFUk1BTF9BUElDX1ZFQ1RPUiwgdGhlcm1hbF9pbnRlcnJ1cHQpOworCWFsbG9jX2ludHJfZ2F0ZShUSFJFU0hPTERfQVBJQ19WRUNUT1IsIHRocmVzaG9sZF9pbnRlcnJ1cHQpOworCisJLyogc2VsZiBnZW5lcmF0ZWQgSVBJIGZvciBsb2NhbCBBUElDIHRpbWVyICovCisJYWxsb2NfaW50cl9nYXRlKExPQ0FMX1RJTUVSX1ZFQ1RPUiwgYXBpY190aW1lcl9pbnRlcnJ1cHQpOworCisJLyogSVBJIHZlY3RvcnMgZm9yIEFQSUMgc3B1cmlvdXMgYW5kIGVycm9yIGludGVycnVwdHMgKi8KKwlhbGxvY19pbnRyX2dhdGUoU1BVUklPVVNfQVBJQ19WRUNUT1IsIHNwdXJpb3VzX2ludGVycnVwdCk7CisJYWxsb2NfaW50cl9nYXRlKEVSUk9SX0FQSUNfVkVDVE9SLCBlcnJvcl9pbnRlcnJ1cHQpOworCisJaWYgKCFhY3BpX2lvYXBpYykKKwkJc2V0dXBfaXJxKDIsICZpcnEyKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9rdm1jbG9jay5jIGIvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKaW5kZXggNGJjMWJlNS4uODdlZGYxYyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2t2bWNsb2NrLmMKQEAgLTE4LDYgKzE4LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KKyNpbmNsdWRlIDxhc20vcHZjbG9jay5oPgogI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+CiAjaW5jbHVkZSA8YXNtL21zci5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CkBAIC0zNiw4MyArMzcsNDcgQEAKIGVhcmx5X3BhcmFtKCJuby1rdm1jbG9jayIsIHBhcnNlX25vX2t2bWNsb2NrKTsKIAogLyogVGhlIGh5cGVydmlzb3Igd2lsbCBwdXQgaW5mb3JtYXRpb24gYWJvdXQgdGltZSBwZXJpb2RpY2FsbHkgaGVyZSAqLwotc3RhdGljIERFRklORV9QRVJfQ1BVX1NIQVJFRF9BTElHTkVEKHN0cnVjdCBrdm1fdmNwdV90aW1lX2luZm8sIGh2X2Nsb2NrKTsKLSNkZWZpbmUgZ2V0X2Nsb2NrKGNwdSwgZmllbGQpIHBlcl9jcHUoaHZfY2xvY2ssIGNwdSkuZmllbGQKK3N0YXRpYyBERUZJTkVfUEVSX0NQVV9TSEFSRURfQUxJR05FRChzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbywgaHZfY2xvY2spOworc3RhdGljIHN0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgd2FsbF9jbG9jazsKIAotc3RhdGljIGlubGluZSB1NjQga3ZtX2dldF9kZWx0YSh1NjQgbGFzdF90c2MpCi17Ci0JaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQl1NjQgZGVsdGEgPSBuYXRpdmVfcmVhZF90c2MoKSAtIGxhc3RfdHNjOwotCXJldHVybiAoZGVsdGEgKiBnZXRfY2xvY2soY3B1LCB0c2NfdG9fc3lzdGVtX211bCkpID4+IEtWTV9TQ0FMRTsKLX0KLQotc3RhdGljIHN0cnVjdCBrdm1fd2FsbF9jbG9jayB3YWxsX2Nsb2NrOwotc3RhdGljIGN5Y2xlX3Qga3ZtX2Nsb2NrX3JlYWQodm9pZCk7CiAvKgogICogVGhlIHdhbGxjbG9jayBpcyB0aGUgdGltZSBvZiBkYXkgd2hlbiB3ZSBib290ZWQuIFNpbmNlIHRoZW4sIHNvbWUgdGltZSBtYXkKICAqIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgaHlwZXJ2aXNvciB3cm90ZSB0aGUgZGF0YS4gU28gd2UgdHJ5IHRvIGFjY291bnQgZm9yCiAgKiB0aGF0IHdpdGggc3lzdGVtIHRpbWUKICAqLwotdW5zaWduZWQgbG9uZyBrdm1fZ2V0X3dhbGxjbG9jayh2b2lkKQorc3RhdGljIHVuc2lnbmVkIGxvbmcga3ZtX2dldF93YWxsY2xvY2sodm9pZCkKIHsKLQl1MzIgd2Nfc2VjLCB3Y19uc2VjOwotCXU2NCBkZWx0YTsKKwlzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqdmNwdV90aW1lOwogCXN0cnVjdCB0aW1lc3BlYyB0czsKLQlpbnQgdmVyc2lvbiwgbnNlYzsKIAlpbnQgbG93LCBoaWdoOwogCiAJbG93ID0gKGludClfX3BhKCZ3YWxsX2Nsb2NrKTsKIAloaWdoID0gKCh1NjQpX19wYSgmd2FsbF9jbG9jaykgPj4gMzIpOwotCi0JZGVsdGEgPSBrdm1fY2xvY2tfcmVhZCgpOwotCiAJbmF0aXZlX3dyaXRlX21zcihNU1JfS1ZNX1dBTExfQ0xPQ0ssIGxvdywgaGlnaCk7Ci0JZG8gewotCQl2ZXJzaW9uID0gd2FsbF9jbG9jay53Y192ZXJzaW9uOwotCQlybWIoKTsKLQkJd2Nfc2VjID0gd2FsbF9jbG9jay53Y19zZWM7Ci0JCXdjX25zZWMgPSB3YWxsX2Nsb2NrLndjX25zZWM7Ci0JCXJtYigpOwotCX0gd2hpbGUgKCh3YWxsX2Nsb2NrLndjX3ZlcnNpb24gIT0gdmVyc2lvbikgfHwgKHZlcnNpb24gJiAxKSk7CiAKLQlkZWx0YSA9IGt2bV9jbG9ja19yZWFkKCkgLSBkZWx0YTsKLQlkZWx0YSArPSB3Y19uc2VjOwotCW5zZWMgPSBkb19kaXYoZGVsdGEsIE5TRUNfUEVSX1NFQyk7Ci0Jc2V0X25vcm1hbGl6ZWRfdGltZXNwZWMoJnRzLCB3Y19zZWMgKyBkZWx0YSwgbnNlYyk7Ci0JLyoKLQkgKiBPZiBhbGwgbWVjaGFuaXNtcyBvZiB0aW1lIGFkanVzdG1lbnQgSSd2ZSB0ZXN0ZWQsIHRoaXMgb25lCi0JICogd2FzIHRoZSBjaGFtcGlvbiEKLQkgKi8KLQlyZXR1cm4gdHMudHZfc2VjICsgMTsKKwl2Y3B1X3RpbWUgPSAmZ2V0X2NwdV92YXIoaHZfY2xvY2spOworCXB2Y2xvY2tfcmVhZF93YWxsY2xvY2soJndhbGxfY2xvY2ssIHZjcHVfdGltZSwgJnRzKTsKKwlwdXRfY3B1X3Zhcihodl9jbG9jayk7CisKKwlyZXR1cm4gdHMudHZfc2VjOwogfQogCi1pbnQga3ZtX3NldF93YWxsY2xvY2sodW5zaWduZWQgbG9uZyBub3cpCitzdGF0aWMgaW50IGt2bV9zZXRfd2FsbGNsb2NrKHVuc2lnbmVkIGxvbmcgbm93KQogewotCXJldHVybiAwOworCXJldHVybiAtMTsKIH0KIAotLyoKLSAqIFRoaXMgaXMgb3VyIHJlYWRfY2xvY2sgZnVuY3Rpb24uIFRoZSBob3N0IHB1dHMgYW4gdHNjIHRpbWVzdGFtcCBlYWNoIHRpbWUKLSAqIGl0IHVwZGF0ZXMgYSBuZXcgdGltZS4gV2l0aG91dCB0aGUgdHNjIGFkanVzdG1lbnQsIHdlIGNhbiBoYXZlIGEgc2l0dWF0aW9uCi0gKiBpbiB3aGljaCBhIHZjcHUgc3RhcnRzIHRvIHJ1biBlYXJsaWVyIChzbWFsbGVyIHN5c3RlbV90aW1lKSwgYnV0IHByb2JlcwotICogdGltZSBsYXRlciAoY29tcGFyZWQgdG8gYW5vdGhlciB2Y3B1KSwgbGVhZGluZyB0byBiYWNrd2FyZHMgdGltZQotICovCiBzdGF0aWMgY3ljbGVfdCBrdm1fY2xvY2tfcmVhZCh2b2lkKQogewotCXU2NCBsYXN0X3RzYywgbm93OwotCWludCBjcHU7CisJc3RydWN0IHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gKnNyYzsKKwljeWNsZV90IHJldDsKIAotCXByZWVtcHRfZGlzYWJsZSgpOwotCWNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQotCWxhc3RfdHNjID0gZ2V0X2Nsb2NrKGNwdSwgdHNjX3RpbWVzdGFtcCk7Ci0Jbm93ID0gZ2V0X2Nsb2NrKGNwdSwgc3lzdGVtX3RpbWUpOwotCi0Jbm93ICs9IGt2bV9nZXRfZGVsdGEobGFzdF90c2MpOwotCXByZWVtcHRfZW5hYmxlKCk7Ci0KLQlyZXR1cm4gbm93OworCXNyYyA9ICZnZXRfY3B1X3Zhcihodl9jbG9jayk7CisJcmV0ID0gcHZjbG9ja19jbG9ja3NvdXJjZV9yZWFkKHNyYyk7CisJcHV0X2NwdV92YXIoaHZfY2xvY2spOworCXJldHVybiByZXQ7CiB9CisKIHN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2Uga3ZtX2Nsb2NrID0gewogCS5uYW1lID0gImt2bS1jbG9jayIsCiAJLnJlYWQgPSBrdm1fY2xvY2tfcmVhZCwKQEAgLTEyMywxMyArODgsMTQgQEAKIAkuZmxhZ3MgPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUywKIH07CiAKLXN0YXRpYyBpbnQga3ZtX3JlZ2lzdGVyX2Nsb2NrKHZvaWQpCitzdGF0aWMgaW50IGt2bV9yZWdpc3Rlcl9jbG9jayhjaGFyICp0eHQpCiB7CiAJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAlpbnQgbG93LCBoaWdoOwogCWxvdyA9IChpbnQpX19wYSgmcGVyX2NwdShodl9jbG9jaywgY3B1KSkgfCAxOwogCWhpZ2ggPSAoKHU2NClfX3BhKCZwZXJfY3B1KGh2X2Nsb2NrLCBjcHUpKSA+PiAzMik7Ci0KKwlwcmludGsoS0VSTl9JTkZPICJrdm0tY2xvY2s6IGNwdSAlZCwgbXNyICV4OiV4LCAlc1xuIiwKKwkgICAgICAgY3B1LCBoaWdoLCBsb3csIHR4dCk7CiAJcmV0dXJuIG5hdGl2ZV93cml0ZV9tc3Jfc2FmZShNU1JfS1ZNX1NZU1RFTV9USU1FLCBsb3csIGhpZ2gpOwogfQogCkBAIC0xNDAsMTIgKzEwNiwyMCBAQAogCSAqIE5vdyB0aGF0IHRoZSBmaXJzdCBjcHUgYWxyZWFkeSBoYWQgdGhpcyBjbG9ja3NvdXJjZSBpbml0aWFsaXplZCwKIAkgKiB3ZSBzaG91bGRuJ3QgZmFpbC4KIAkgKi8KLQlXQVJOX09OKGt2bV9yZWdpc3Rlcl9jbG9jaygpKTsKKwlXQVJOX09OKGt2bV9yZWdpc3Rlcl9jbG9jaygic2Vjb25kYXJ5IGNwdSBjbG9jayIpKTsKIAkvKiBvaywgZG9uZSB3aXRoIG91ciB0cmlja2VyeSwgY2FsbCBuYXRpdmUgKi8KIAlzZXR1cF9zZWNvbmRhcnlfQVBJQ19jbG9jaygpOwogfQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfU01QCit2b2lkIF9faW5pdCBrdm1fc21wX3ByZXBhcmVfYm9vdF9jcHUodm9pZCkKK3sKKwlXQVJOX09OKGt2bV9yZWdpc3Rlcl9jbG9jaygicHJpbWFyeSBjcHUgY2xvY2siKSk7CisJbmF0aXZlX3NtcF9wcmVwYXJlX2Jvb3RfY3B1KCk7Cit9CisjZW5kaWYKKwogLyoKICAqIEFmdGVyIHRoZSBjbG9jayBpcyByZWdpc3RlcmVkLCB0aGUgaG9zdCB3aWxsIGtlZXAgd3JpdGluZyB0byB0aGUKICAqIHJlZ2lzdGVyZWQgbWVtb3J5IGxvY2F0aW9uLiBJZiB0aGUgZ3Vlc3QgaGFwcGVucyB0byBzaHV0ZG93biwgdGhpcyBtZW1vcnkKQEAgLTE3NCw3ICsxNDgsNyBAQAogCQlyZXR1cm47CiAKIAlpZiAoa3ZtY2xvY2sgJiYga3ZtX3BhcmFfaGFzX2ZlYXR1cmUoS1ZNX0ZFQVRVUkVfQ0xPQ0tTT1VSQ0UpKSB7Ci0JCWlmIChrdm1fcmVnaXN0ZXJfY2xvY2soKSkKKwkJaWYgKGt2bV9yZWdpc3Rlcl9jbG9jaygiYm9vdCBjbG9jayIpKQogCQkJcmV0dXJuOwogCQlwdl90aW1lX29wcy5nZXRfd2FsbGNsb2NrID0ga3ZtX2dldF93YWxsY2xvY2s7CiAJCXB2X3RpbWVfb3BzLnNldF93YWxsY2xvY2sgPSBrdm1fc2V0X3dhbGxjbG9jazsKQEAgLTE4Miw2ICsxNTYsOSBAQAogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCQlwdl9hcGljX29wcy5zZXR1cF9zZWNvbmRhcnlfY2xvY2sgPSBrdm1fc2V0dXBfc2Vjb25kYXJ5X2Nsb2NrOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX1NNUAorCQlzbXBfb3BzLnNtcF9wcmVwYXJlX2Jvb3RfY3B1ID0ga3ZtX3NtcF9wcmVwYXJlX2Jvb3RfY3B1OworI2VuZGlmCiAJCW1hY2hpbmVfb3BzLnNodXRkb3duICA9IGt2bV9zaHV0ZG93bjsKICNpZmRlZiBDT05GSUdfS0VYRUMKIAkJbWFjaGluZV9vcHMuY3Jhc2hfc2h1dGRvd24gID0ga3ZtX2NyYXNoX3NodXRkb3duOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2xkdC5jIGIvYXJjaC94ODYva2VybmVsL2xkdC5jCmluZGV4IDAyMjRjMzYuLjIxZjJiYWUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9sZHQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMKQEAgLTIwLDkgKzIwLDkgQEAKICNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KIAogI2lmZGVmIENPTkZJR19TTVAKLXN0YXRpYyB2b2lkIGZsdXNoX2xkdCh2b2lkICpudWxsKQorc3RhdGljIHZvaWQgZmx1c2hfbGR0KHZvaWQgKmN1cnJlbnRfbW0pCiB7Ci0JaWYgKGN1cnJlbnQtPmFjdGl2ZV9tbSkKKwlpZiAoY3VycmVudC0+YWN0aXZlX21tID09IGN1cnJlbnRfbW0pCiAJCWxvYWRfTERUKCZjdXJyZW50LT5hY3RpdmVfbW0tPmNvbnRleHQpOwogfQogI2VuZGlmCkBAIC02OCw3ICs2OCw3IEBACiAJCWxvYWRfTERUKHBjKTsKIAkJbWFzayA9IGNwdW1hc2tfb2ZfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSk7CiAJCWlmICghY3B1c19lcXVhbChjdXJyZW50LT5tbS0+Y3B1X3ZtX21hc2ssIG1hc2spKQotCQkJc21wX2NhbGxfZnVuY3Rpb24oZmx1c2hfbGR0LCBOVUxMLCAxLCAxKTsKKwkJCXNtcF9jYWxsX2Z1bmN0aW9uKGZsdXNoX2xkdCwgY3VycmVudC0+bW0sIDEsIDEpOwogCQlwcmVlbXB0X2VuYWJsZSgpOwogI2Vsc2UKIAkJbG9hZF9MRFQocGMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzMyLmMKaW5kZXggZDBiMjM0Yy4uODg2NDIzMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY18zMi5jCkBAIC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbnVtYS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgpAQCAtMzksNyArNDEsNyBAQAogCWN1cmlkdC5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpbmV3aWR0OwogCiAJbG9hZF9pZHQoJmN1cmlkdCk7Ci19OworfQogCiAKIHN0YXRpYyB2b2lkIHNldF9nZHQodm9pZCAqbmV3Z2R0LCBfX3UxNiBsaW1pdCkKQEAgLTUxLDcgKzUzLDcgQEAKIAljdXJnZHQuYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKW5ld2dkdDsKIAogCWxvYWRfZ2R0KCZjdXJnZHQpOwotfTsKK30KIAogc3RhdGljIHZvaWQgbG9hZF9zZWdtZW50cyh2b2lkKQogewpAQCAtMTA3LDYgKzEwOSw4IEBACiAJdW5zaWduZWQgbG9uZyBwYWdlX2xpc3RbUEFHRVNfTlJdOwogCXZvaWQgKmNvbnRyb2xfcGFnZTsKIAorCXRyYWNlcl9kaXNhYmxlKCk7CisKIAkvKiBJbnRlcnJ1cHRzIGFyZW4ndCBhY2NlcHRhYmxlIHdoaWxlIHdlIHJlYm9vdCAqLwogCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbWFjaGluZV9rZXhlY182NC5jCmluZGV4IDU3NmEwM2QuLjlkZDkyNjIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9tYWNoaW5lX2tleGVjXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL21hY2hpbmVfa2V4ZWNfNjQuYwpAQCAtMTEsNiArMTEsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgogI2luY2x1ZGUgPGxpbnV4L251bWEuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKwogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC0xMTAsNyArMTEyLDcgQEAKIHsKIAlwZ2RfdCAqbGV2ZWw0cDsKIAlsZXZlbDRwID0gKHBnZF90ICopX192YShzdGFydF9wZ3RhYmxlKTsKLSAJcmV0dXJuIGluaXRfbGV2ZWw0X3BhZ2UoaW1hZ2UsIGxldmVsNHAsIDAsIGVuZF9wZm4gPDwgUEFHRV9TSElGVCk7CisJcmV0dXJuIGluaXRfbGV2ZWw0X3BhZ2UoaW1hZ2UsIGxldmVsNHAsIDAsIG1heF9wZm4gPDwgUEFHRV9TSElGVCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldF9pZHQodm9pZCAqbmV3aWR0LCB1MTYgbGltaXQpCkBAIC0xODQsNiArMTg2LDggQEAKIAl1bnNpZ25lZCBsb25nIHBhZ2VfbGlzdFtQQUdFU19OUl07CiAJdm9pZCAqY29udHJvbF9wYWdlOwogCisJdHJhY2VyX2Rpc2FibGUoKTsKKwogCS8qIEludGVycnVwdHMgYXJlbid0IGFjY2VwdGFibGUgd2hpbGUgd2UgcmVib290ICovCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21mZ3B0XzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbWZncHRfMzIuYwppbmRleCAzY2FkMTdmLi4wN2MwZjgyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbWZncHRfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbWZncHRfMzIuYwpAQCAtMTU1LDYgKzE1NSw3IEBACiAJd3Jtc3IobXNyLCB2YWx1ZSwgZHVtbXkpOwogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTF9HUEwoZ2VvZGVfbWZncHRfdG9nZ2xlX2V2ZW50KTsKIAogaW50IGdlb2RlX21mZ3B0X3NldF9pcnEoaW50IHRpbWVyLCBpbnQgY21wLCBpbnQgaXJxLCBpbnQgZW5hYmxlKQogewpAQCAtMjIyLDYgKzIyMyw3IEBACiAJLyogTm8gdGltZXJzIGF2YWlsYWJsZSAtIHRvbyBiYWQgKi8KIAlyZXR1cm4gLTE7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChnZW9kZV9tZmdwdF9hbGxvY190aW1lcik7CiAKIAogI2lmZGVmIENPTkZJR19HRU9ERV9NRkdQVF9USU1FUgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21pY3JvY29kZS5jIGIvYXJjaC94ODYva2VybmVsL21pY3JvY29kZS5jCmluZGV4IDY5NzI5ZTMuLjU2YjkzMzEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9taWNyb2NvZGUuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbWljcm9jb2RlLmMKQEAgLTUsMTMgKzUsMTQgQEAKICAqCQkgICAgICAyMDA2CVNoYW9odWEgTGkgPHNoYW9odWEubGlAaW50ZWwuY29tPgogICoKICAqCVRoaXMgZHJpdmVyIGFsbG93cyB0byB1cGdyYWRlIG1pY3JvY29kZSBvbiBJbnRlbCBwcm9jZXNzb3JzCi0gKgliZWxvbmdpbmcgdG8gSUEtMzIgZmFtaWx5IC0gUGVudGl1bVBybywgUGVudGl1bSBJSSwgCisgKgliZWxvbmdpbmcgdG8gSUEtMzIgZmFtaWx5IC0gUGVudGl1bVBybywgUGVudGl1bSBJSSwKICAqCVBlbnRpdW0gSUlJLCBYZW9uLCBQZW50aXVtIDQsIGV0Yy4KICAqCi0gKglSZWZlcmVuY2U6IFNlY3Rpb24gOC4xMCBvZiBWb2x1bWUgSUlJLCBJbnRlbCBQZW50aXVtIDQgTWFudWFsLCAKLSAqCU9yZGVyIE51bWJlciAyNDU0NzIgb3IgZnJlZSBkb3dubG9hZCBmcm9tOgotICoJCQotICoJaHR0cDovL2RldmVsb3Blci5pbnRlbC5jb20vZGVzaWduL3BlbnRpdW00L21hbnVhbHMvMjQ1NDcyLmh0bQorICoJUmVmZXJlbmNlOiBTZWN0aW9uIDguMTEgb2YgVm9sdW1lIDNhLCBJQS0zMiBJbnRlbD8gQXJjaGl0ZWN0dXJlCisgKglTb2Z0d2FyZSBEZXZlbG9wZXIncyBNYW51YWwKKyAqCU9yZGVyIE51bWJlciAyNTM2Njggb3IgZnJlZSBkb3dubG9hZCBmcm9tOgorICoKKyAqCWh0dHA6Ly9kZXZlbG9wZXIuaW50ZWwuY29tL2Rlc2lnbi9wZW50aXVtNC9tYW51YWxzLzI1MzY2OC5odG0KICAqCiAgKglGb3IgbW9yZSBpbmZvcm1hdGlvbiwgZ28gdG8gaHR0cDovL3d3dy51cmJhbm15dGgub3JnL21pY3JvY29kZQogICoKQEAgLTU4LDEyICs1OSwxMiBAQAogICoJCW5hdHVyZSBvZiBpbXBsZW1lbnRhdGlvbi4KICAqCTEuMTEJMjIgTWFyIDIwMDIgVGlncmFuIEFpdmF6aWFuIDx0aWdyYW5AdmVyaXRhcy5jb20+CiAgKgkJRml4IHRoZSBwYW5pYyB3aGVuIHdyaXRpbmcgemVyby1sZW5ndGggbWljcm9jb2RlIGNodW5rLgotICoJMS4xMgkyOSBTZXAgMjAwMyBOaXRpbiBLYW1ibGUgPG5pdGluLmEua2FtYmxlQGludGVsLmNvbT4sIAorICoJMS4xMgkyOSBTZXAgMjAwMyBOaXRpbiBLYW1ibGUgPG5pdGluLmEua2FtYmxlQGludGVsLmNvbT4sCiAgKgkJSnVuIE5ha2FqaW1hIDxqdW4ubmFrYWppbWFAaW50ZWwuY29tPgogICoJCVN1cHBvcnQgZm9yIHRoZSBtaWNyb2NvZGUgdXBkYXRlcyBpbiB0aGUgbmV3IGZvcm1hdC4KICAqCTEuMTMJMTAgT2N0IDIwMDMgVGlncmFuIEFpdmF6aWFuIDx0aWdyYW5AdmVyaXRhcy5jb20+CiAgKgkJUmVtb3ZlZCAtPnJlYWQoKSBtZXRob2QgYW5kIG9ic29sZXRlZCBNSUNST0NPREVfSU9DRlJFRSBpb2N0bAotICoJCWJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIGhvbGQgYSBjb3B5IG9mIGFwcGxpZWQgbWljcm9jb2RlIAorICoJCWJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIGhvbGQgYSBjb3B5IG9mIGFwcGxpZWQgbWljcm9jb2RlCiAgKgkJaW4ga2VybmVsIG1lbW9yeS4KICAqCTEuMTQJMjUgSnVuIDIwMDQgVGlncmFuIEFpdmF6aWFuIDx0aWdyYW5AdmVyaXRhcy5jb20+CiAgKgkJRml4IHNpZ21hdGNoKCkgbWFjcm8gdG8gaGFuZGxlIG9sZCBDUFVzIHdpdGggcGYgPT0gMC4KQEAgLTc1LDYgKzc2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC0zMjAsMTEgKzMyMiwxMSBAQAogCQlyZXR1cm47CiAKIAkvKiBzZXJpYWxpemUgYWNjZXNzIHRvIHRoZSBwaHlzaWNhbCB3cml0ZSB0byBNU1IgMHg3OSAqLwotCXNwaW5fbG9ja19pcnFzYXZlKCZtaWNyb2NvZGVfdXBkYXRlX2xvY2ssIGZsYWdzKTsgICAgICAgICAgCisJc3Bpbl9sb2NrX2lycXNhdmUoJm1pY3JvY29kZV91cGRhdGVfbG9jaywgZmxhZ3MpOwogCiAJLyogd3JpdGUgbWljcm9jb2RlIHZpYSBNU1IgMHg3OSAqLwogCXdybXNyKE1TUl9JQTMyX1VDT0RFX1dSSVRFLAotCQkodW5zaWduZWQgbG9uZykgdWNpLT5tYy0+Yml0cywgCisJCSh1bnNpZ25lZCBsb25nKSB1Y2ktPm1jLT5iaXRzLAogCQkodW5zaWduZWQgbG9uZykgdWNpLT5tYy0+Yml0cyA+PiAxNiA+PiAxNik7CiAJd3Jtc3IoTVNSX0lBMzJfVUNPREVfUkVWLCAwLCAwKTsKIApAQCAtMzQxLDcgKzM0Myw3IEBACiAJCXJldHVybjsKIAl9CiAJcHJpbnRrKEtFUk5fSU5GTyAibWljcm9jb2RlOiBDUFUlZCB1cGRhdGVkIGZyb20gcmV2aXNpb24gIgotCSAgICAgICAiMHgleCB0byAweCV4LCBkYXRlID0gJTA4eCBcbiIsIAorCSAgICAgICAiMHgleCB0byAweCV4LCBkYXRlID0gJTA4eCBcbiIsCiAJICAgICAgIGNwdV9udW0sIHVjaS0+cmV2LCB2YWxbMV0sIHVjaS0+bWMtPmhkci5kYXRlKTsKIAl1Y2ktPnJldiA9IHZhbFsxXTsKIH0KQEAgLTQyMiw2ICs0MjQsNyBAQAogCiBzdGF0aWMgaW50IG1pY3JvY29kZV9vcGVuIChzdHJ1Y3QgaW5vZGUgKnVudXNlZDEsIHN0cnVjdCBmaWxlICp1bnVzZWQyKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIGNhcGFibGUoQ0FQX1NZU19SQVdJTykgPyAwIDogLUVQRVJNOwogfQogCkBAIC00ODgsNyArNDkxLDcgQEAKICNkZWZpbmUgbWljcm9jb2RlX2Rldl9leGl0KCkgZG8geyB9IHdoaWxlKDApCiAjZW5kaWYKIAotc3RhdGljIGxvbmcgZ2V0X25leHRfdWNvZGVfZnJvbV9idWZmZXIodm9pZCAqKm1jLCB2b2lkICpidWYsCitzdGF0aWMgbG9uZyBnZXRfbmV4dF91Y29kZV9mcm9tX2J1ZmZlcih2b2lkICoqbWMsIGNvbnN0IHU4ICpidWYsCiAJdW5zaWduZWQgbG9uZyBzaXplLCBsb25nIG9mZnNldCkKIHsKIAltaWNyb2NvZGVfaGVhZGVyX3QgKm1jX2hlYWRlcjsKQEAgLTUyMiw3ICs1MjUsNyBAQAogCWNoYXIgbmFtZVszMF07CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmNwdV9kYXRhKGNwdSk7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZTsKLQl2b2lkICpidWY7CisJY29uc3QgdTggKmJ1ZjsKIAl1bnNpZ25lZCBsb25nIHNpemU7CiAJbG9uZyBvZmZzZXQgPSAwOwogCWludCBlcnJvcjsKQEAgLTUzNCw3ICs1MzcsNyBAQAogCQljLT54ODYsIGMtPng4Nl9tb2RlbCwgYy0+eDg2X21hc2spOwogCWVycm9yID0gcmVxdWVzdF9maXJtd2FyZSgmZmlybXdhcmUsIG5hbWUsICZtaWNyb2NvZGVfcGRldi0+ZGV2KTsKIAlpZiAoZXJyb3IpIHsKLQkJcHJfZGVidWcoIm1pY3JvY29kZTogdWNvZGUgZGF0YSBmaWxlICVzIGxvYWQgZmFpbGVkXG4iLCBuYW1lKTsKKwkJcHJfZGVidWcoIm1pY3JvY29kZTogZGF0YSBmaWxlICVzIGxvYWQgZmFpbGVkXG4iLCBuYW1lKTsKIAkJcmV0dXJuIGVycm9yOwogCX0KIAlidWYgPSBmaXJtd2FyZS0+ZGF0YTsKQEAgLTgwNSw2ICs4MDgsOSBAQAogewogCWludCBlcnJvcjsKIAorCXByaW50ayhLRVJOX0lORk8KKwkJIklBLTMyIE1pY3JvY29kZSBVcGRhdGUgRHJpdmVyOiB2IiBNSUNST0NPREVfVkVSU0lPTiAiIDx0aWdyYW5AYWl2YXppYW4uZnNuZXQuY28udWs+XG4iKTsKKwogCWVycm9yID0gbWljcm9jb2RlX2Rldl9pbml0KCk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CkBAIC04MjUsOSArODMxLDYgQEAKIAl9CiAKIAlyZWdpc3Rlcl9ob3RjcHVfbm90aWZpZXIoJm1jX2NwdV9ub3RpZmllcik7Ci0KLQlwcmludGsoS0VSTl9JTkZPIAotCQkiSUEtMzIgTWljcm9jb2RlIFVwZGF0ZSBEcml2ZXI6IHYiIE1JQ1JPQ09ERV9WRVJTSU9OICIgPHRpZ3JhbkBhaXZhemlhbi5mc25ldC5jby51az5cbiIpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbW1jb25mLWZhbTEwaF82NC5jIGIvYXJjaC94ODYva2VybmVsL21tY29uZi1mYW0xMGhfNjQuYwppbmRleCBlZGM1ZmJmLi5mZGZkYzU1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbW1jb25mLWZhbTEwaF82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tbWNvbmYtZmFtMTBoXzY0LmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CiAjaW5jbHVkZSA8YXNtL2FjcGkuaD4KKyNpbmNsdWRlIDxhc20vbW1jb25maWcuaD4KIAogI2luY2x1ZGUgIi4uL3BjaS9wY2kuaCIKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL21wcGFyc2UuYyBiL2FyY2gveDg2L2tlcm5lbC9tcHBhcnNlLmMKaW5kZXggNDA0NjgzYi4uM2IyNWU0OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21wcGFyc2UuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbXBwYXJzZS5jCkBAIC0yNSw2ICsyNSw4IEBACiAjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAjaW5jbHVkZSA8YXNtL2FjcGkuaD4KICNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgogCiAjaW5jbHVkZSA8bWFjaF9hcGljLmg+CiAjaWZkZWYgQ09ORklHX1g4Nl8zMgpAQCAtMzIsMjggKzM0LDYgQEAKICNpbmNsdWRlIDxtYWNoX21wcGFyc2UuaD4KICNlbmRpZgogCi0vKiBIYXZlIHdlIGZvdW5kIGFuIE1QIHRhYmxlICovCi1pbnQgc21wX2ZvdW5kX2NvbmZpZzsKLQotLyoKLSAqIFZhcmlvdXMgTGludXgtaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzIGNyZWF0ZWQgZnJvbSB0aGUKLSAqIE1QLXRhYmxlLgotICovCi0jaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCi1pbnQgbXBfYnVzX2lkX3RvX3R5cGVbTUFYX01QX0JVU1NFU107Ci0jZW5kaWYKLQotREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOwotaW50IG1wX2J1c19pZF90b19wY2lfYnVzW01BWF9NUF9CVVNTRVNdID0ge1swIC4uLiBNQVhfTVBfQlVTU0VTIC0gMV0gPSAtMSB9OwotCi1zdGF0aWMgaW50IG1wX2N1cnJlbnRfcGNpX2lkOwotCi1pbnQgcGljX21vZGU7Ci0KLS8qCi0gKiBJbnRlbCBNUCBCSU9TIHRhYmxlIHBhcnNpbmcgcm91dGluZXM6Ci0gKi8KLQogLyoKICAqIENoZWNrc3VtIGFuIE1QIGNvbmZpZ3VyYXRpb24gYmxvY2suCiAgKi8KQEAgLTY5LDE1ICs0OSw3MyBAQAogfQogCiAjaWZkZWYgQ09ORklHX1g4Nl9OVU1BUQoraW50IGZvdW5kX251bWFxOwogLyoKICAqIEhhdmUgdG8gbWF0Y2ggdHJhbnNsYXRpb24gdGFibGUgZW50cmllcyB0byBtYWluIHRhYmxlIGVudHJpZXMgYnkgY291bnRlcgogICogaGVuY2UgdGhlIG1wY19yZWNvcmQgdmFyaWFibGUgLi4uLiBjYW4ndCBzZWUgYSBsZXNzIGRpc2d1c3Rpbmcgd2F5IG9mCiAgKiBkb2luZyB0aGlzIC4uLi4KICAqLworc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24geworCXVuc2lnbmVkIGNoYXIgbXBjX3R5cGU7CisJdW5zaWduZWQgY2hhciB0cmFuc19sZW47CisJdW5zaWduZWQgY2hhciB0cmFuc190eXBlOworCXVuc2lnbmVkIGNoYXIgdHJhbnNfcXVhZDsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX2dsb2JhbDsKKwl1bnNpZ25lZCBjaGFyIHRyYW5zX2xvY2FsOworCXVuc2lnbmVkIHNob3J0IHRyYW5zX3Jlc2VydmVkOworfTsKKwogCiBzdGF0aWMgaW50IG1wY19yZWNvcmQ7CiBzdGF0aWMgc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uX3RhYmxlW01BWF9NUENfRU5UUlldCiAgICAgX19jcHVpbml0ZGF0YTsKKworc3RhdGljIGlubGluZSBpbnQgZ2VuZXJhdGVfbG9naWNhbF9hcGljaWQoaW50IHF1YWQsIGludCBwaHlzX2FwaWNpZCkKK3sKKwlyZXR1cm4gKHF1YWQgPDwgNCkgKyAocGh5c19hcGljaWQgPyBwaHlzX2FwaWNpZCA8PCAxIDogMSk7Cit9CisKKworc3RhdGljIGlubGluZSBpbnQgbXBjX2FwaWNfaWQoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptLAorCQkJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uX3JlY29yZCkKK3sKKwlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uX3JlY29yZC0+dHJhbnNfcXVhZDsKKwlpbnQgbG9naWNhbF9hcGljaWQgPSBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChxdWFkLCBtLT5tcGNfYXBpY2lkKTsKKworCXByaW50ayhLRVJOX0RFQlVHICJQcm9jZXNzb3IgIyVkICV1OiV1IEFQSUMgdmVyc2lvbiAlZCAocXVhZCAlZCwgYXBpYyAlZClcbiIsCisJICAgICAgIG0tPm1wY19hcGljaWQsCisJICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9GQU1JTFlfTUFTSykgPj4gOCwKKwkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX01PREVMX01BU0spID4+IDQsCisJICAgICAgIG0tPm1wY19hcGljdmVyLCBxdWFkLCBsb2dpY2FsX2FwaWNpZCk7CisJcmV0dXJuIGxvZ2ljYWxfYXBpY2lkOworfQorCitpbnQgbXBfYnVzX2lkX3RvX25vZGVbTUFYX01QX0JVU1NFU107CisKK2ludCBtcF9idXNfaWRfdG9fbG9jYWxbTUFYX01QX0JVU1NFU107CisKK3N0YXRpYyB2b2lkIG1wY19vZW1fYnVzX2luZm8oc3RydWN0IG1wY19jb25maWdfYnVzICptLCBjaGFyICpuYW1lLAorCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbikKK3sKKwlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uLT50cmFuc19xdWFkOworCWludCBsb2NhbCA9IHRyYW5zbGF0aW9uLT50cmFuc19sb2NhbDsKKworCW1wX2J1c19pZF90b19ub2RlW20tPm1wY19idXNpZF0gPSBxdWFkOworCW1wX2J1c19pZF90b19sb2NhbFttLT5tcGNfYnVzaWRdID0gbG9jYWw7CisJcHJpbnRrKEtFUk5fSU5GTyAiQnVzICMlZCBpcyAlcyAobm9kZSAlZClcbiIsCisJICAgICAgIG0tPm1wY19idXNpZCwgbmFtZSwgcXVhZCk7Cit9CisKK2ludCBxdWFkX2xvY2FsX3RvX21wX2J1c19pZCBbTlJfQ1BVUy80XVs0XTsKK3N0YXRpYyB2b2lkIG1wY19vZW1fcGNpX2J1cyhzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0sCisJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uKQoreworCWludCBxdWFkID0gdHJhbnNsYXRpb24tPnRyYW5zX3F1YWQ7CisJaW50IGxvY2FsID0gdHJhbnNsYXRpb24tPnRyYW5zX2xvY2FsOworCisJcXVhZF9sb2NhbF90b19tcF9idXNfaWRbcXVhZF1bbG9jYWxdID0gbS0+bXBjX2J1c2lkOworfQorCiAjZW5kaWYKIAogc3RhdGljIHZvaWQgX19jcHVpbml0IE1QX3Byb2Nlc3Nvcl9pbmZvKHN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbSkKQEAgLTkwLDcgKzEyOCwxMCBAQAogCQlyZXR1cm47CiAJfQogI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQlhcGljaWQgPSBtcGNfYXBpY19pZChtLCB0cmFuc2xhdGlvbl90YWJsZVttcGNfcmVjb3JkXSk7CisJaWYgKGZvdW5kX251bWFxKQorCQlhcGljaWQgPSBtcGNfYXBpY19pZChtLCB0cmFuc2xhdGlvbl90YWJsZVttcGNfcmVjb3JkXSk7CisJZWxzZQorCQlhcGljaWQgPSBtLT5tcGNfYXBpY2lkOwogI2Vsc2UKIAlhcGljaWQgPSBtLT5tcGNfYXBpY2lkOwogI2VuZGlmCkBAIC0xMDMsMTcgKzE0NCwxOCBAQAogCWdlbmVyaWNfcHJvY2Vzc29yX2luZm8oYXBpY2lkLCBtLT5tcGNfYXBpY3Zlcik7CiB9CiAKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIHN0YXRpYyB2b2lkIF9faW5pdCBNUF9idXNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0pCiB7CiAJY2hhciBzdHJbN107Ci0KIAltZW1jcHkoc3RyLCBtLT5tcGNfYnVzdHlwZSwgNik7CiAJc3RyWzZdID0gMDsKIAogI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQltcGNfb2VtX2J1c19pbmZvKG0sIHN0ciwgdHJhbnNsYXRpb25fdGFibGVbbXBjX3JlY29yZF0pOworCWlmIChmb3VuZF9udW1hcSkKKwkJbXBjX29lbV9idXNfaW5mbyhtLCBzdHIsIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKICNlbHNlCi0JRHByaW50aygiQnVzICMlZCBpcyAlc1xuIiwgbS0+bXBjX2J1c2lkLCBzdHIpOworCXByaW50ayhLRVJOX0lORk8gIkJ1cyAjJWQgaXMgJXNcbiIsIG0tPm1wY19idXNpZCwgc3RyKTsKICNlbmRpZgogCiAjaWYgTUFYX01QX0JVU1NFUyA8IDI1NgpAQCAtMTMyLDExICsxNzQsMTAgQEAKICNlbmRpZgogCX0gZWxzZSBpZiAoc3RybmNtcChzdHIsIEJVU1RZUEVfUENJLCBzaXplb2YoQlVTVFlQRV9QQ0kpIC0gMSkgPT0gMCkgewogI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQkJbXBjX29lbV9wY2lfYnVzKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKKwkJaWYgKGZvdW5kX251bWFxKQorCQkJbXBjX29lbV9wY2lfYnVzKG0sIHRyYW5zbGF0aW9uX3RhYmxlW21wY19yZWNvcmRdKTsKICNlbmRpZgogCQljbGVhcl9iaXQobS0+bXBjX2J1c2lkLCBtcF9idXNfbm90X3BjaSk7Ci0JCW1wX2J1c19pZF90b19wY2lfYnVzW20tPm1wY19idXNpZF0gPSBtcF9jdXJyZW50X3BjaV9pZDsKLQkJbXBfY3VycmVudF9wY2lfaWQrKzsKICNpZiBkZWZpbmVkKENPTkZJR19FSVNBKSB8fCBkZWZpbmVkIChDT05GSUdfTUNBKQogCQltcF9idXNfaWRfdG9fdHlwZVttLT5tcGNfYnVzaWRdID0gTVBfQlVTX1BDSTsKIAl9IGVsc2UgaWYgKHN0cm5jbXAoc3RyLCBCVVNUWVBFX0VJU0EsIHNpemVvZihCVVNUWVBFX0VJU0EpIC0gMSkgPT0gMCkgewpAQCAtMTQ3LDYgKzE4OCw3IEBACiAJfSBlbHNlCiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVua25vd24gYnVzdHlwZSAlcyAtIGlnbm9yaW5nXG4iLCBzdHIpOwogfQorI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIApAQCAtMTc2LDE4ICsyMTgsODkgQEAKIAlpZiAoYmFkX2lvYXBpYyhtLT5tcGNfYXBpY2FkZHIpKQogCQlyZXR1cm47CiAKLQltcF9pb2FwaWNzW25yX2lvYXBpY3NdID0gKm07CisJbXBfaW9hcGljc1tucl9pb2FwaWNzXS5tcF9hcGljYWRkciA9IG0tPm1wY19hcGljYWRkcjsKKwltcF9pb2FwaWNzW25yX2lvYXBpY3NdLm1wX2FwaWNpZCA9IG0tPm1wY19hcGljaWQ7CisJbXBfaW9hcGljc1tucl9pb2FwaWNzXS5tcF90eXBlID0gbS0+bXBjX3R5cGU7CisJbXBfaW9hcGljc1tucl9pb2FwaWNzXS5tcF9hcGljdmVyID0gbS0+bXBjX2FwaWN2ZXI7CisJbXBfaW9hcGljc1tucl9pb2FwaWNzXS5tcF9mbGFncyA9IG0tPm1wY19mbGFnczsKIAlucl9pb2FwaWNzKys7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW5pdCBNUF9pbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCitzdGF0aWMgdm9pZCBwcmludF9NUF9pbnRzcmNfaW5mbyhzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0pCiB7Ci0JbXBfaXJxc1ttcF9pcnFfZW50cmllc10gPSAqbTsKLQlEcHJpbnRrKCJJbnQ6IHR5cGUgJWQsIHBvbCAlZCwgdHJpZyAlZCwgYnVzICVkLCIKKwlwcmludGsoS0VSTl9DT05UICJJbnQ6IHR5cGUgJWQsIHBvbCAlZCwgdHJpZyAlZCwgYnVzICUwMngsIgogCQkiIElSUSAlMDJ4LCBBUElDIElEICV4LCBBUElDIElOVCAlMDJ4XG4iLAogCQltLT5tcGNfaXJxdHlwZSwgbS0+bXBjX2lycWZsYWcgJiAzLAogCQkobS0+bXBjX2lycWZsYWcgPj4gMikgJiAzLCBtLT5tcGNfc3JjYnVzLAogCQltLT5tcGNfc3JjYnVzaXJxLCBtLT5tcGNfZHN0YXBpYywgbS0+bXBjX2RzdGlycSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBwcmludF9tcF9pcnFfaW5mbyhzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyAqbXBfaXJxKQoreworCXByaW50ayhLRVJOX0NPTlQgIkludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJTAyeCwiCisJCSIgSVJRICUwMngsIEFQSUMgSUQgJXgsIEFQSUMgSU5UICUwMnhcbiIsCisJCW1wX2lycS0+bXBfaXJxdHlwZSwgbXBfaXJxLT5tcF9pcnFmbGFnICYgMywKKwkJKG1wX2lycS0+bXBfaXJxZmxhZyA+PiAyKSAmIDMsIG1wX2lycS0+bXBfc3JjYnVzLAorCQltcF9pcnEtPm1wX3NyY2J1c2lycSwgbXBfaXJxLT5tcF9kc3RhcGljLCBtcF9pcnEtPm1wX2RzdGlycSk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBhc3NpZ25fdG9fbXBfaXJxKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSwKKwkJCQkgICAgc3RydWN0IG1wX2NvbmZpZ19pbnRzcmMgKm1wX2lycSkKK3sKKwltcF9pcnEtPm1wX2RzdGFwaWMgPSBtLT5tcGNfZHN0YXBpYzsKKwltcF9pcnEtPm1wX3R5cGUgPSBtLT5tcGNfdHlwZTsKKwltcF9pcnEtPm1wX2lycXR5cGUgPSBtLT5tcGNfaXJxdHlwZTsKKwltcF9pcnEtPm1wX2lycWZsYWcgPSBtLT5tcGNfaXJxZmxhZzsKKwltcF9pcnEtPm1wX3NyY2J1cyA9IG0tPm1wY19zcmNidXM7CisJbXBfaXJxLT5tcF9zcmNidXNpcnEgPSBtLT5tcGNfc3JjYnVzaXJxOworCW1wX2lycS0+bXBfZHN0aXJxID0gbS0+bXBjX2RzdGlycTsKK30KKworc3RhdGljIHZvaWQgX19pbml0IGFzc2lnbl90b19tcGNfaW50c3JjKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptcF9pcnEsCisJCQkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKK3sKKwltLT5tcGNfZHN0YXBpYyA9IG1wX2lycS0+bXBfZHN0YXBpYzsKKwltLT5tcGNfdHlwZSA9IG1wX2lycS0+bXBfdHlwZTsKKwltLT5tcGNfaXJxdHlwZSA9IG1wX2lycS0+bXBfaXJxdHlwZTsKKwltLT5tcGNfaXJxZmxhZyA9IG1wX2lycS0+bXBfaXJxZmxhZzsKKwltLT5tcGNfc3JjYnVzID0gbXBfaXJxLT5tcF9zcmNidXM7CisJbS0+bXBjX3NyY2J1c2lycSA9IG1wX2lycS0+bXBfc3JjYnVzaXJxOworCW0tPm1wY19kc3RpcnEgPSBtcF9pcnEtPm1wX2RzdGlycTsKK30KKworc3RhdGljIGludCBfX2luaXQgbXBfaXJxX21wY19pbnRzcmNfY21wKHN0cnVjdCBtcF9jb25maWdfaW50c3JjICptcF9pcnEsCisJCQkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSkKK3sKKwlpZiAobXBfaXJxLT5tcF9kc3RhcGljICE9IG0tPm1wY19kc3RhcGljKQorCQlyZXR1cm4gMTsKKwlpZiAobXBfaXJxLT5tcF90eXBlICE9IG0tPm1wY190eXBlKQorCQlyZXR1cm4gMjsKKwlpZiAobXBfaXJxLT5tcF9pcnF0eXBlICE9IG0tPm1wY19pcnF0eXBlKQorCQlyZXR1cm4gMzsKKwlpZiAobXBfaXJxLT5tcF9pcnFmbGFnICE9IG0tPm1wY19pcnFmbGFnKQorCQlyZXR1cm4gNDsKKwlpZiAobXBfaXJxLT5tcF9zcmNidXMgIT0gbS0+bXBjX3NyY2J1cykKKwkJcmV0dXJuIDU7CisJaWYgKG1wX2lycS0+bXBfc3JjYnVzaXJxICE9IG0tPm1wY19zcmNidXNpcnEpCisJCXJldHVybiA2OworCWlmIChtcF9pcnEtPm1wX2RzdGlycSAhPSBtLT5tcGNfZHN0aXJxKQorCQlyZXR1cm4gNzsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgTVBfaW50c3JjX2luZm8oc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQoreworCWludCBpOworCisJcHJpbnRfTVBfaW50c3JjX2luZm8obSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbXBfaXJxX2VudHJpZXM7IGkrKykgeworCQlpZiAoIW1wX2lycV9tcGNfaW50c3JjX2NtcCgmbXBfaXJxc1tpXSwgbSkpCisJCQlyZXR1cm47CisJfQorCisJYXNzaWduX3RvX21wX2lycShtLCAmbXBfaXJxc1ttcF9pcnFfZW50cmllc10pOwogCWlmICgrK21wX2lycV9lbnRyaWVzID09IE1BWF9JUlFfU09VUkNFUykKIAkJcGFuaWMoIk1heCAjIG9mIGlycSBzb3VyY2VzIGV4Y2VlZGVkISFcbiIpOwogfQpAQCAtMTk2LDcgKzMwOSw3IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBNUF9saW50c3JjX2luZm8oc3RydWN0IG1wY19jb25maWdfbGludHNyYyAqbSkKIHsKLQlEcHJpbnRrKCJMaW50OiB0eXBlICVkLCBwb2wgJWQsIHRyaWcgJWQsIGJ1cyAlZCwiCisJcHJpbnRrKEtFUk5fSU5GTyAiTGludDogdHlwZSAlZCwgcG9sICVkLCB0cmlnICVkLCBidXMgJTAyeCwiCiAJCSIgSVJRICUwMngsIEFQSUMgSUQgJXgsIEFQSUMgTElOVCAlMDJ4XG4iLAogCQltLT5tcGNfaXJxdHlwZSwgbS0+bXBjX2lycWZsYWcgJiAzLAogCQkobS0+bXBjX2lycWZsYWcgPj4gMikgJiAzLCBtLT5tcGNfc3JjYnVzaWQsCkBAIC0yNjYsMTEgKzM3OSwxNCBAQAogCX0KIH0KIAotc3RhdGljIGlubGluZSB2b2lkIG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCit2b2lkIG51bWFxX21wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCiAJCQkJIGNoYXIgKnByb2R1Y3RpZCkKIHsKIAlpZiAoc3RybmNtcChvZW0sICJJQk0gTlVNQSIsIDgpKQotCQlwcmludGsoIldhcm5pbmchICBNYXkgbm90IGJlIGEgTlVNQS1RIHN5c3RlbSFcbiIpOworCQlwcmludGsoIldhcm5pbmchICBOb3QgYSBOVU1BLVEgc3lzdGVtIVxuIik7CisJZWxzZQorCQlmb3VuZF9udW1hcSA9IDE7CisKIAlpZiAobXBjLT5tcGNfb2VtcHRyKQogCQlzbXBfcmVhZF9tcGNfb2VtKChzdHJ1Y3QgbXBfY29uZmlnX29lbXRhYmxlICopbXBjLT5tcGNfb2VtcHRyLAogCQkJCSBtcGMtPm1wY19vZW1zaXplKTsKQEAgLTI4MSwxMiArMzk3LDkgQEAKICAqIFJlYWQvcGFyc2UgdGhlIE1QQwogICovCiAKLXN0YXRpYyBpbnQgX19pbml0IHNtcF9yZWFkX21wYyhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIHVuc2lnbmVkIGVhcmx5KQorc3RhdGljIGludCBfX2luaXQgc21wX2NoZWNrX21wYyhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKKwkJCQljaGFyICpzdHIpCiB7Ci0JY2hhciBzdHJbMTZdOwotCWNoYXIgb2VtWzEwXTsKLQlpbnQgY291bnQgPSBzaXplb2YoKm1wYyk7Ci0JdW5zaWduZWQgY2hhciAqbXB0ID0gKCh1bnNpZ25lZCBjaGFyICopbXBjKSArIGNvdW50OwogCiAJaWYgKG1lbWNtcChtcGMtPm1wY19zaWduYXR1cmUsIE1QQ19TSUdOQVRVUkUsIDQpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiTVBUQUJMRTogYmFkIHNpZ25hdHVyZSBbJWMlYyVjJWNdIVxuIiwKQEAgLTMwOSwxOSArNDIyLDQyIEBACiAJfQogCW1lbWNweShvZW0sIG1wYy0+bXBjX29lbSwgOCk7CiAJb2VtWzhdID0gMDsKLQlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBPRU0gSUQ6ICVzICIsIG9lbSk7CisJcHJpbnRrKEtFUk5fSU5GTyAiTVBUQUJMRTogT0VNIElEOiAlc1xuIiwgb2VtKTsKIAogCW1lbWNweShzdHIsIG1wYy0+bXBjX3Byb2R1Y3RpZCwgMTIpOwogCXN0clsxMl0gPSAwOwotCXByaW50aygiUHJvZHVjdCBJRDogJXMgIiwgc3RyKTsKIAotI2lmZGVmIENPTkZJR19YODZfMzIKLQltcHNfb2VtX2NoZWNrKG1wYywgb2VtLCBzdHIpOwotI2VuZGlmCi0JcHJpbnRrKEtFUk5fSU5GTyAiTVBUQUJMRTogUHJvZHVjdCBJRDogJXMgIiwgc3RyKTsKKwlwcmludGsoS0VSTl9JTkZPICJNUFRBQkxFOiBQcm9kdWN0IElEOiAlc1xuIiwgc3RyKTsKIAogCXByaW50ayhLRVJOX0lORk8gIk1QVEFCTEU6IEFQSUMgYXQ6IDB4JVhcbiIsIG1wYy0+bXBjX2xhcGljKTsKIAorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IF9faW5pdCBzbXBfcmVhZF9tcGMoc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCB1bnNpZ25lZCBlYXJseSkKK3sKKwljaGFyIHN0clsxNl07CisJY2hhciBvZW1bMTBdOworCisJaW50IGNvdW50ID0gc2l6ZW9mKCptcGMpOworCXVuc2lnbmVkIGNoYXIgKm1wdCA9ICgodW5zaWduZWQgY2hhciAqKW1wYykgKyBjb3VudDsKKworCWlmICghc21wX2NoZWNrX21wYyhtcGMsIG9lbSwgc3RyKSkKKwkJcmV0dXJuIDA7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJLyoKKwkgKiBuZWVkIHRvIG1ha2Ugc3VyZSBzdW1taXQgYW5kIGVzNzAwMCdzIG1wc19vZW1fY2hlY2sgaXMgc2FmZSB0byBiZQorCSAqIGNhbGxlZCBlYXJseSB2aWEgZ2VuZXJpY2FyY2ggJ3MgbXBzX29lbV9jaGVjaworCSAqLworCWlmIChlYXJseSkgeworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwkJbnVtYXFfbXBzX29lbV9jaGVjayhtcGMsIG9lbSwgc3RyKTsKKyNlbmRpZgorCX0gZWxzZQorCQltcHNfb2VtX2NoZWNrKG1wYywgb2VtLCBzdHIpOworI2VuZGlmCisKIAkvKiBzYXZlIHRoZSBsb2NhbCBBUElDIGFkZHJlc3MsIGl0IG1pZ2h0IGJlIG5vbi1kZWZhdWx0ICovCiAJaWYgKCFhY3BpX2xhcGljKQogCQltcF9sYXBpY19hZGRyID0gbXBjLT5tcGNfbGFwaWM7CkBAIC0zNTIsNyArNDg4LDkgQEAKIAkJCXsKIAkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19idXMgKm0gPQogCQkJCSAgICAoc3RydWN0IG1wY19jb25maWdfYnVzICopbXB0OworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQwogCQkJCU1QX2J1c19pbmZvKG0pOworI2VuZGlmCiAJCQkJbXB0ICs9IHNpemVvZigqbSk7CiAJCQkJY291bnQgKz0gc2l6ZW9mKCptKTsKIAkJCQlicmVhazsKQEAgLTQwMiw2ICs1NDAsMTEgQEAKIAkJKyttcGNfcmVjb3JkOwogI2VuZGlmCiAJfQorCisjaWZkZWYgQ09ORklHX1g4Nl9HRU5FUklDQVJDSAorICAgICAgIGdlbmVyaWNfYmlnc21wX3Byb2JlKCk7CisjZW5kaWYKKwogCXNldHVwX2FwaWNfcm91dGluZygpOwogCWlmICghbnVtX3Byb2Nlc3NvcnMpCiAJCXByaW50ayhLRVJOX0VSUiAiTVBUQUJMRTogbm8gcHJvY2Vzc29ycyByZWdpc3RlcmVkIVxuIik7CkBAIC00MjcsNyArNTcwLDcgQEAKIAlpbnRzcmMubXBjX3R5cGUgPSBNUF9JTlRTUkM7CiAJaW50c3JjLm1wY19pcnFmbGFnID0gMDsJLyogY29uZm9ybWluZyAqLwogCWludHNyYy5tcGNfc3JjYnVzID0gMDsKLQlpbnRzcmMubXBjX2RzdGFwaWMgPSBtcF9pb2FwaWNzWzBdLm1wY19hcGljaWQ7CisJaW50c3JjLm1wY19kc3RhcGljID0gbXBfaW9hcGljc1swXS5tcF9hcGljaWQ7CiAKIAlpbnRzcmMubXBjX2lycXR5cGUgPSBtcF9JTlQ7CiAKQEAgLTQ4OCw0MCArNjMxLDExIEBACiAJTVBfaW50c3JjX2luZm8oJmludHNyYyk7CiB9CiAKLSNlbmRpZgogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IGNvbnN0cnVjdF9kZWZhdWx0X0lTQV9tcHRhYmxlKGludCBtcGNfZGVmYXVsdF90eXBlKQorc3RhdGljIHZvaWQgY29uc3RydWN0X2lvYXBpY190YWJsZShpbnQgbXBjX2RlZmF1bHRfdHlwZSkKIHsKLQlzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgcHJvY2Vzc29yOwotCXN0cnVjdCBtcGNfY29uZmlnX2J1cyBidXM7Ci0jaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJc3RydWN0IG1wY19jb25maWdfaW9hcGljIGlvYXBpYzsKLSNlbmRpZgotCXN0cnVjdCBtcGNfY29uZmlnX2xpbnRzcmMgbGludHNyYzsKLQlpbnQgbGludHR5cGVzWzJdID0geyBtcF9FeHRJTlQsIG1wX05NSSB9OwotCWludCBpOwotCi0JLyoKLQkgKiBsb2NhbCBBUElDIGhhcyBkZWZhdWx0IGFkZHJlc3MKLQkgKi8KLQltcF9sYXBpY19hZGRyID0gQVBJQ19ERUZBVUxUX1BIWVNfQkFTRTsKLQotCS8qCi0JICogMiBDUFVzLCBudW1iZXJlZCAwICYgMS4KLQkgKi8KLQlwcm9jZXNzb3IubXBjX3R5cGUgPSBNUF9QUk9DRVNTT1I7Ci0JLyogRWl0aGVyIGFuIGludGVncmF0ZWQgQVBJQyBvciBhIGRpc2NyZXRlIDgyNDg5RFguICovCi0JcHJvY2Vzc29yLm1wY19hcGljdmVyID0gbXBjX2RlZmF1bHRfdHlwZSA+IDQgPyAweDEwIDogMHgwMTsKLQlwcm9jZXNzb3IubXBjX2NwdWZsYWcgPSBDUFVfRU5BQkxFRDsKLQlwcm9jZXNzb3IubXBjX2NwdWZlYXR1cmUgPSAoYm9vdF9jcHVfZGF0YS54ODYgPDwgOCkgfAotCSAgICAoYm9vdF9jcHVfZGF0YS54ODZfbW9kZWwgPDwgNCkgfCBib290X2NwdV9kYXRhLng4Nl9tYXNrOwotCXByb2Nlc3Nvci5tcGNfZmVhdHVyZWZsYWcgPSBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5WzBdOwotCXByb2Nlc3Nvci5tcGNfcmVzZXJ2ZWRbMF0gPSAwOwotCXByb2Nlc3Nvci5tcGNfcmVzZXJ2ZWRbMV0gPSAwOwotCWZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKLQkJcHJvY2Vzc29yLm1wY19hcGljaWQgPSBpOwotCQlNUF9wcm9jZXNzb3JfaW5mbygmcHJvY2Vzc29yKTsKLQl9CisJc3RydWN0IG1wY19jb25maWdfYnVzIGJ1czsKIAogCWJ1cy5tcGNfdHlwZSA9IE1QX0JVUzsKIAlidXMubXBjX2J1c2lkID0gMDsKQEAgLTU1MCw3ICs2NjQsNiBAQAogCQlNUF9idXNfaW5mbygmYnVzKTsKIAl9CiAKLSNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlpb2FwaWMubXBjX3R5cGUgPSBNUF9JT0FQSUM7CiAJaW9hcGljLm1wY19hcGljaWQgPSAyOwogCWlvYXBpYy5tcGNfYXBpY3ZlciA9IG1wY19kZWZhdWx0X3R5cGUgPiA0ID8gMHgxMCA6IDB4MDE7CkBAIC01NjIsNyArNjc1LDQyIEBACiAJICogV2Ugc2V0IHVwIG1vc3Qgb2YgdGhlIGxvdyAxNiBJTy1BUElDIHBpbnMgYWNjb3JkaW5nIHRvIE1QUyBydWxlcy4KIAkgKi8KIAljb25zdHJ1Y3RfZGVmYXVsdF9pb2lycV9tcHRhYmxlKG1wY19kZWZhdWx0X3R5cGUpOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb25zdHJ1Y3RfaW9hcGljX3RhYmxlKGludCBtcGNfZGVmYXVsdF90eXBlKSB7IH0KICNlbmRpZgorCitzdGF0aWMgaW5saW5lIHZvaWQgX19pbml0IGNvbnN0cnVjdF9kZWZhdWx0X0lTQV9tcHRhYmxlKGludCBtcGNfZGVmYXVsdF90eXBlKQoreworCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciBwcm9jZXNzb3I7CisJc3RydWN0IG1wY19jb25maWdfbGludHNyYyBsaW50c3JjOworCWludCBsaW50dHlwZXNbMl0gPSB7IG1wX0V4dElOVCwgbXBfTk1JIH07CisJaW50IGk7CisKKwkvKgorCSAqIGxvY2FsIEFQSUMgaGFzIGRlZmF1bHQgYWRkcmVzcworCSAqLworCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOworCisJLyoKKwkgKiAyIENQVXMsIG51bWJlcmVkIDAgJiAxLgorCSAqLworCXByb2Nlc3Nvci5tcGNfdHlwZSA9IE1QX1BST0NFU1NPUjsKKwkvKiBFaXRoZXIgYW4gaW50ZWdyYXRlZCBBUElDIG9yIGEgZGlzY3JldGUgODI0ODlEWC4gKi8KKwlwcm9jZXNzb3IubXBjX2FwaWN2ZXIgPSBtcGNfZGVmYXVsdF90eXBlID4gNCA/IDB4MTAgOiAweDAxOworCXByb2Nlc3Nvci5tcGNfY3B1ZmxhZyA9IENQVV9FTkFCTEVEOworCXByb2Nlc3Nvci5tcGNfY3B1ZmVhdHVyZSA9IChib290X2NwdV9kYXRhLng4NiA8PCA4KSB8CisJICAgIChib290X2NwdV9kYXRhLng4Nl9tb2RlbCA8PCA0KSB8IGJvb3RfY3B1X2RhdGEueDg2X21hc2s7CisJcHJvY2Vzc29yLm1wY19mZWF0dXJlZmxhZyA9IGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHlbMF07CisJcHJvY2Vzc29yLm1wY19yZXNlcnZlZFswXSA9IDA7CisJcHJvY2Vzc29yLm1wY19yZXNlcnZlZFsxXSA9IDA7CisJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworCQlwcm9jZXNzb3IubXBjX2FwaWNpZCA9IGk7CisJCU1QX3Byb2Nlc3Nvcl9pbmZvKCZwcm9jZXNzb3IpOworCX0KKworCWNvbnN0cnVjdF9pb2FwaWNfdGFibGUobXBjX2RlZmF1bHRfdHlwZSk7CisKIAlsaW50c3JjLm1wY190eXBlID0gTVBfTElOVFNSQzsKIAlsaW50c3JjLm1wY19pcnFmbGFnID0gMDsJLyogY29uZm9ybWluZyAqLwogCWxpbnRzcmMubXBjX3NyY2J1c2lkID0gMDsKQEAgLTU3OCwxMiArNzI2LDIyIEBACiBzdGF0aWMgc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGZfZm91bmQ7CiAKIC8qCisgKiBNYWNoaW5lIHNwZWNpZmljIHF1aXJrIGZvciBmaW5kaW5nIHRoZSBTTVAgY29uZmlnIGJlZm9yZSBvdGhlciBzZXR1cAorICogYWN0aXZpdGllcyBkZXN0cm95IHRoZSB0YWJsZToKKyAqLworaW50ICgqbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IGVhcmx5KTsKKworLyoKICAqIFNjYW4gdGhlIG1lbW9yeSBibG9ja3MgZm9yIGFuIFNNUCBjb25maWd1cmF0aW9uIGJsb2NrLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgX19nZXRfc21wX2NvbmZpZyh1bnNpZ25lZCBlYXJseSkKK3N0YXRpYyB2b2lkIF9faW5pdCBfX2dldF9zbXBfY29uZmlnKHVuc2lnbmVkIGludCBlYXJseSkKIHsKIAlzdHJ1Y3QgaW50ZWxfbXBfZmxvYXRpbmcgKm1wZiA9IG1wZl9mb3VuZDsKIAorCWlmIChtYWNoX2dldF9zbXBfY29uZmlnX3F1aXJrKSB7CisJCWlmIChtYWNoX2dldF9zbXBfY29uZmlnX3F1aXJrKGVhcmx5KSkKKwkJCXJldHVybjsKKwl9CiAJaWYgKGFjcGlfbGFwaWMgJiYgZWFybHkpCiAJCXJldHVybjsKIAkvKgpAQCAtNjAwLDcgKzc1OCw3IEBACiAKIAlwcmludGsoS0VSTl9JTkZPICJJbnRlbCBNdWx0aVByb2Nlc3NvciBTcGVjaWZpY2F0aW9uIHYxLiVkXG4iLAogCSAgICAgICBtcGYtPm1wZl9zcGVjaWZpY2F0aW9uKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCisjaWYgZGVmaW5lZChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpICYmIGRlZmluZWQoQ09ORklHX1g4Nl8zMikKIAlpZiAobXBmLT5tcGZfZmVhdHVyZTIgJiAoMSA8PCA3KSkgewogCQlwcmludGsoS0VSTl9JTkZPICIgICAgSU1DUiBhbmQgUElDIGNvbXBhdGliaWxpdHkgbW9kZS5cbiIpOwogCQlwaWNfbW9kZSA9IDE7CkBAIC02MzIsNyArNzkwLDkgQEAKIAkJICogb3ZlcnJpZGUgdGhlIGRlZmF1bHRzLgogCQkgKi8KIAkJaWYgKCFzbXBfcmVhZF9tcGMocGh5c190b192aXJ0KG1wZi0+bXBmX3BoeXNwdHIpLCBlYXJseSkpIHsKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAkJCXNtcF9mb3VuZF9jb25maWcgPSAwOworI2VuZGlmCiAJCQlwcmludGsoS0VSTl9FUlIKIAkJCSAgICAgICAiQklPUyBidWcsIE1QIHRhYmxlIGVycm9ycyBkZXRlY3RlZCEuLi5cbiIpOwogCQkJcHJpbnRrKEtFUk5fRVJSICIuLi4gZGlzYWJsaW5nIFNNUCBzdXBwb3J0LiAiCkBAIC02ODksNyArODQ5LDcgQEAKIAl1bnNpZ25lZCBpbnQgKmJwID0gcGh5c190b192aXJ0KGJhc2UpOwogCXN0cnVjdCBpbnRlbF9tcF9mbG9hdGluZyAqbXBmOwogCi0JRHByaW50aygiU2NhbiBTTVAgZnJvbSAlcCBmb3IgJWxkIGJ5dGVzLlxuIiwgYnAsIGxlbmd0aCk7CisJcHJpbnRrKEtFUk5fREVCVUcgIlNjYW4gU01QIGZyb20gJXAgZm9yICVsZCBieXRlcy5cbiIsIGJwLCBsZW5ndGgpOwogCUJVSUxEX0JVR19PTihzaXplb2YoKm1wZikgIT0gMTYpOwogCiAJd2hpbGUgKGxlbmd0aCA+IDApIHsKQEAgLTY5OSwxNSArODU5LDIxIEBACiAJCSAgICAhbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopYnAsIDE2KSAmJgogCQkgICAgKChtcGYtPm1wZl9zcGVjaWZpY2F0aW9uID09IDEpCiAJCSAgICAgfHwgKG1wZi0+bXBmX3NwZWNpZmljYXRpb24gPT0gNCkpKSB7Ci0KKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKIAkJCXNtcF9mb3VuZF9jb25maWcgPSAxOworI2VuZGlmCiAJCQltcGZfZm91bmQgPSBtcGY7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgorCiAJCQlwcmludGsoS0VSTl9JTkZPICJmb3VuZCBTTVAgTVAtdGFibGUgYXQgWyVwXSAlMDhseFxuIiwKIAkJCSAgICAgICBtcGYsIHZpcnRfdG9fcGh5cyhtcGYpKTsKLQkJCXJlc2VydmVfYm9vdG1lbSh2aXJ0X3RvX3BoeXMobXBmKSwgUEFHRV9TSVpFLAorCisJCQlpZiAoIXJlc2VydmUpCisJCQkJcmV0dXJuIDE7CisJCQlyZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyh2aXJ0X3RvX3BoeXMobXBmKSwgUEFHRV9TSVpFLAogCQkJCQlCT09UTUVNX0RFRkFVTFQpOwogCQkJaWYgKG1wZi0+bXBmX3BoeXNwdHIpIHsKKwkJCQl1bnNpZ25lZCBsb25nIHNpemUgPSBQQUdFX1NJWkU7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgogCQkJCS8qCiAJCQkJICogV2UgY2Fubm90IGFjY2VzcyB0byBNUEMgdGFibGUgdG8gY29tcHV0ZQogCQkJCSAqIHRhYmxlIHNpemUgeWV0LCBhcyBvbmx5IGZldyBtZWdhYnl0ZXMgZnJvbQpAQCAtNzE3LDI0ICs4ODMsMTUgQEAKIAkJCQkgKiBQQUdFX1NJWkUgZnJvbSBtcGctPm1wZl9waHlzcHRyIHlpZWxkcyBCVUcoKQogCQkJCSAqIGluIHJlc2VydmVfYm9vdG1lbS4KIAkJCQkgKi8KLQkJCQl1bnNpZ25lZCBsb25nIHNpemUgPSBQQUdFX1NJWkU7CiAJCQkJdW5zaWduZWQgbG9uZyBlbmQgPSBtYXhfbG93X3BmbiAqIFBBR0VfU0laRTsKIAkJCQlpZiAobXBmLT5tcGZfcGh5c3B0ciArIHNpemUgPiBlbmQpCiAJCQkJCXNpemUgPSBlbmQgLSBtcGYtPm1wZl9waHlzcHRyOwotCQkJCXJlc2VydmVfYm9vdG1lbShtcGYtPm1wZl9waHlzcHRyLCBzaXplLAorI2VuZGlmCisJCQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMobXBmLT5tcGZfcGh5c3B0ciwgc2l6ZSwKIAkJCQkJCUJPT1RNRU1fREVGQVVMVCk7CiAJCQl9CiAKLSNlbHNlCi0JCQlpZiAoIXJlc2VydmUpCi0JCQkJcmV0dXJuIDE7Ci0KLQkJCXJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHZpcnRfdG9fcGh5cyhtcGYpLCBQQUdFX1NJWkUpOwotCQkJaWYgKG1wZi0+bXBmX3BoeXNwdHIpCi0JCQkJcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWMobXBmLT5tcGZfcGh5c3B0ciwKLQkJCQkJCQlQQUdFX1NJWkUpOwotI2VuZGlmCi0JCXJldHVybiAxOworCQkJcmV0dXJuIDE7CiAJCX0KIAkJYnAgKz0gNDsKIAkJbGVuZ3RoIC09IDE2OwpAQCAtNzQyLDEwICs4OTksMTYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IF9fZmluZF9zbXBfY29uZmlnKHVuc2lnbmVkIHJlc2VydmUpCitpbnQgKCptYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IHJlc2VydmUpOworCitzdGF0aWMgdm9pZCBfX2luaXQgX19maW5kX3NtcF9jb25maWcodW5zaWduZWQgaW50IHJlc2VydmUpCiB7CiAJdW5zaWduZWQgaW50IGFkZHJlc3M7CiAKKwlpZiAobWFjaF9maW5kX3NtcF9jb25maWdfcXVpcmspIHsKKwkJaWYgKG1hY2hfZmluZF9zbXBfY29uZmlnX3F1aXJrKHJlc2VydmUpKQorCQkJcmV0dXJuOworCX0KIAkvKgogCSAqIEZJWE1FOiBMaW51eCBhc3N1bWVzIHlvdSBoYXZlIDY0MEsgb2YgYmFzZSByYW0uLgogCSAqIHRoaXMgY29udGludWVzIHRoZSBlcnJvci4uLgpAQCAtNzkwLDI5OCArOTUzLDI5NCBAQAogCV9fZmluZF9zbXBfY29uZmlnKDEpOwogfQogCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFDUEktYmFzZWQgTVAgQ29uZmlndXJhdGlvbgotICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKK3N0YXRpYyB1OCBfX2luaXRkYXRhIGlycV91c2VkW01BWF9JUlFfU09VUkNFU107CiAKLS8qCi0gKiBLZWVwIHRoaXMgb3V0c2lkZSBhbmQgaW5pdGlhbGl6ZWQgdG8gMCwgZm9yICFDT05GSUdfQUNQSSBidWlsZHM6Ci0gKi8KLWludCBlczcwMDBfcGxhdDsKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0KLSNpZmRlZglDT05GSUdfWDg2X0lPX0FQSUMKLQotI2RlZmluZSBNUF9JU0FfQlVTCQkwCi0KLWV4dGVybiBzdHJ1Y3QgbXBfaW9hcGljX3JvdXRpbmcgbXBfaW9hcGljX3JvdXRpbmdbTUFYX0lPX0FQSUNTXTsKLQotc3RhdGljIGludCBtcF9maW5kX2lvYXBpYyhpbnQgZ3NpKQorc3RhdGljIGludCAgX19pbml0IGdldF9NUF9pbnRzcmNfaW5kZXgoc3RydWN0IG1wY19jb25maWdfaW50c3JjICptKQogewotCWludCBpID0gMDsKKwlpbnQgaTsKIAotCS8qIEZpbmQgdGhlIElPQVBJQyB0aGF0IG1hbmFnZXMgdGhpcyBHU0kuICovCi0JZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgewotCQlpZiAoKGdzaSA+PSBtcF9pb2FwaWNfcm91dGluZ1tpXS5nc2lfYmFzZSkKLQkJICAgICYmIChnc2kgPD0gbXBfaW9hcGljX3JvdXRpbmdbaV0uZ3NpX2VuZCkpCi0JCQlyZXR1cm4gaTsKKwlpZiAobS0+bXBjX2lycXR5cGUgIT0gbXBfSU5UKQorCQlyZXR1cm4gMDsKKworCWlmIChtLT5tcGNfaXJxZmxhZyAhPSAweDBmKQorCQlyZXR1cm4gMDsKKworCS8qIG5vdCBsZWdhY3kgKi8KKworCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7CisJCWlmIChtcF9pcnFzW2ldLm1wX2lycXR5cGUgIT0gbXBfSU5UKQorCQkJY29udGludWU7CisKKwkJaWYgKG1wX2lycXNbaV0ubXBfaXJxZmxhZyAhPSAweDBmKQorCQkJY29udGludWU7CisKKwkJaWYgKG1wX2lycXNbaV0ubXBfc3JjYnVzICE9IG0tPm1wY19zcmNidXMpCisJCQljb250aW51ZTsKKwkJaWYgKG1wX2lycXNbaV0ubXBfc3JjYnVzaXJxICE9IG0tPm1wY19zcmNidXNpcnEpCisJCQljb250aW51ZTsKKwkJaWYgKGlycV91c2VkW2ldKSB7CisJCQkvKiBhbHJlYWR5IGNsYWltZWQgKi8KKwkJCXJldHVybiAtMjsKKwkJfQorCQlpcnFfdXNlZFtpXSA9IDE7CisJCXJldHVybiBpOwogCX0KIAotCXByaW50ayhLRVJOX0VSUiAiRVJST1I6IFVuYWJsZSB0byBsb2NhdGUgSU9BUElDIGZvciBHU0kgJWRcbiIsIGdzaSk7CisJLyogbm90IGZvdW5kICovCiAJcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgdTggX19pbml0IHVuaXFfaW9hcGljX2lkKHU4IGlkKQotewotI2lmZGVmIENPTkZJR19YODZfMzIKLQlpZiAoKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0lOVEVMKSAmJgotCSAgICAhQVBJQ19YQVBJQyhhcGljX3ZlcnNpb25bYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkXSkpCi0JCXJldHVybiBpb19hcGljX2dldF91bmlxdWVfaWQobnJfaW9hcGljcywgaWQpOwotCWVsc2UKLQkJcmV0dXJuIGlkOwotI2Vsc2UKLQlpbnQgaTsKLQlERUNMQVJFX0JJVE1BUCh1c2VkLCAyNTYpOwotCWJpdG1hcF96ZXJvKHVzZWQsIDI1Nik7Ci0JZm9yIChpID0gMDsgaSA8IG5yX2lvYXBpY3M7IGkrKykgewotCQlzdHJ1Y3QgbXBjX2NvbmZpZ19pb2FwaWMgKmlhID0gJm1wX2lvYXBpY3NbaV07Ci0JCV9fc2V0X2JpdChpYS0+bXBjX2FwaWNpZCwgdXNlZCk7Ci0JfQotCWlmICghdGVzdF9iaXQoaWQsIHVzZWQpKQotCQlyZXR1cm4gaWQ7Ci0JcmV0dXJuIGZpbmRfZmlyc3RfemVyb19iaXQodXNlZCwgMjU2KTsKKyNkZWZpbmUgU1BBUkVfU0xPVF9OVU0gMjAKKworc3RhdGljIHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBfX2luaXRkYXRhICptX3NwYXJlW1NQQVJFX1NMT1RfTlVNXTsKICNlbmRpZgotfQogCi12b2lkIF9faW5pdCBtcF9yZWdpc3Rlcl9pb2FwaWMoaW50IGlkLCB1MzIgYWRkcmVzcywgdTMyIGdzaV9iYXNlKQorc3RhdGljIGludCAgX19pbml0IHJlcGxhY2VfaW50c3JjX2FsbChzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsCisJCQkJCXVuc2lnbmVkIGxvbmcgbXBjX25ld19waHlzLAorCQkJCQl1bnNpZ25lZCBsb25nIG1wY19uZXdfbGVuZ3RoKQogewotCWludCBpZHggPSAwOwotCi0JaWYgKGJhZF9pb2FwaWMoYWRkcmVzcykpCi0JCXJldHVybjsKLQotCWlkeCA9IG5yX2lvYXBpY3M7Ci0KLQltcF9pb2FwaWNzW2lkeF0ubXBjX3R5cGUgPSBNUF9JT0FQSUM7Ci0JbXBfaW9hcGljc1tpZHhdLm1wY19mbGFncyA9IE1QQ19BUElDX1VTQUJMRTsKLQltcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWNhZGRyID0gYWRkcmVzczsKLQotCXNldF9maXhtYXBfbm9jYWNoZShGSVhfSU9fQVBJQ19CQVNFXzAgKyBpZHgsIGFkZHJlc3MpOwotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY2lkID0gdW5pcV9pb2FwaWNfaWQoaWQpOwotI2lmZGVmIENPTkZJR19YODZfMzIKLQltcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWN2ZXIgPSBpb19hcGljX2dldF92ZXJzaW9uKGlkeCk7Ci0jZWxzZQotCW1wX2lvYXBpY3NbaWR4XS5tcGNfYXBpY3ZlciA9IDA7Ci0jZW5kaWYKLQkvKgotCSAqIEJ1aWxkIGJhc2ljIEdTSSBsb29rdXAgdGFibGUgdG8gZmFjaWxpdGF0ZSBnc2ktPmlvX2FwaWMgbG9va3VwcwotCSAqIGFuZCB0byBwcmV2ZW50IHJlcHJvZ3JhbW1pbmcgb2YgSU9BUElDIHBpbnMgKFBDSSBHU0lzKS4KLQkgKi8KLQltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmFwaWNfaWQgPSBtcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWNpZDsKLQltcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9iYXNlID0gZ3NpX2Jhc2U7Ci0JbXBfaW9hcGljX3JvdXRpbmdbaWR4XS5nc2lfZW5kID0gZ3NpX2Jhc2UgKwotCSAgICBpb19hcGljX2dldF9yZWRpcl9lbnRyaWVzKGlkeCk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJJT0FQSUNbJWRdOiBhcGljX2lkICVkLCB2ZXJzaW9uICVkLCBhZGRyZXNzIDB4JXgsICIKLQkgICAgICAgIkdTSSAlZC0lZFxuIiwgaWR4LCBtcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWNpZCwKLQkgICAgICAgbXBfaW9hcGljc1tpZHhdLm1wY19hcGljdmVyLCBtcF9pb2FwaWNzW2lkeF0ubXBjX2FwaWNhZGRyLAotCSAgICAgICBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9iYXNlLCBtcF9pb2FwaWNfcm91dGluZ1tpZHhdLmdzaV9lbmQpOwotCi0JbnJfaW9hcGljcysrOwotfQotCi12b2lkIF9faW5pdCBtcF9vdmVycmlkZV9sZWdhY3lfaXJxKHU4IGJ1c19pcnEsIHU4IHBvbGFyaXR5LCB1OCB0cmlnZ2VyLCB1MzIgZ3NpKQotewotCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyBpbnRzcmM7Ci0JaW50IGlvYXBpYyA9IC0xOwotCWludCBwaW4gPSAtMTsKLQotCS8qCi0JICogQ29udmVydCAnZ3NpJyB0byAnaW9hcGljLnBpbicuCi0JICovCi0JaW9hcGljID0gbXBfZmluZF9pb2FwaWMoZ3NpKTsKLQlpZiAoaW9hcGljIDwgMCkKLQkJcmV0dXJuOwotCXBpbiA9IGdzaSAtIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uZ3NpX2Jhc2U7Ci0KLQkvKgotCSAqIFRCRDogVGhpcyBjaGVjayBpcyBmb3IgZmF1bHR5IHRpbWVyIGVudHJpZXMsIHdoZXJlIHRoZSBvdmVycmlkZQotCSAqICAgICAgZXJyb25lb3VzbHkgc2V0cyB0aGUgdHJpZ2dlciB0byBsZXZlbCwgcmVzdWx0aW5nIGluIGEgSFVHRQotCSAqICAgICAgaW5jcmVhc2Ugb2YgdGltZXIgaW50ZXJydXB0cyEKLQkgKi8KLQlpZiAoKGJ1c19pcnEgPT0gMCkgJiYgKHRyaWdnZXIgPT0gMykpCi0JCXRyaWdnZXIgPSAxOwotCi0JaW50c3JjLm1wY190eXBlID0gTVBfSU5UU1JDOwotCWludHNyYy5tcGNfaXJxdHlwZSA9IG1wX0lOVDsKLQlpbnRzcmMubXBjX2lycWZsYWcgPSAodHJpZ2dlciA8PCAyKSB8IHBvbGFyaXR5OwotCWludHNyYy5tcGNfc3JjYnVzID0gTVBfSVNBX0JVUzsKLQlpbnRzcmMubXBjX3NyY2J1c2lycSA9IGJ1c19pcnE7CS8qIElSUSAqLwotCWludHNyYy5tcGNfZHN0YXBpYyA9IG1wX2lvYXBpY3NbaW9hcGljXS5tcGNfYXBpY2lkOwkvKiBBUElDIElEICovCi0JaW50c3JjLm1wY19kc3RpcnEgPSBwaW47CS8qIElOVElOIyAqLwotCi0JTVBfaW50c3JjX2luZm8oJmludHNyYyk7Ci19Ci0KLXZvaWQgX19pbml0IG1wX2NvbmZpZ19hY3BpX2xlZ2FjeV9pcnFzKHZvaWQpCi17Ci0Jc3RydWN0IG1wY19jb25maWdfaW50c3JjIGludHNyYzsKLQlpbnQgaSA9IDA7Ci0JaW50IGlvYXBpYyA9IC0xOwotCi0jaWYgZGVmaW5lZCAoQ09ORklHX01DQSkgfHwgZGVmaW5lZCAoQ09ORklHX0VJU0EpCi0JLyoKLQkgKiBGYWJyaWNhdGUgdGhlIGxlZ2FjeSBJU0EgYnVzIChidXMgIzMxKS4KLQkgKi8KLQltcF9idXNfaWRfdG9fdHlwZVtNUF9JU0FfQlVTXSA9IE1QX0JVU19JU0E7Ci0jZW5kaWYKLQlzZXRfYml0KE1QX0lTQV9CVVMsIG1wX2J1c19ub3RfcGNpKTsKLQlEcHJpbnRrKCJCdXMgIyVkIGlzIElTQVxuIiwgTVBfSVNBX0JVUyk7Ci0KLQkvKgotCSAqIE9sZGVyIGdlbmVyYXRpb25zIG9mIEVTNzAwMCBoYXZlIG5vIGxlZ2FjeSBpZGVudGl0eSBtYXBwaW5ncwotCSAqLwotCWlmIChlczcwMDBfcGxhdCA9PSAxKQotCQlyZXR1cm47Ci0KLQkvKgotCSAqIExvY2F0ZSB0aGUgSU9BUElDIHRoYXQgbWFuYWdlcyB0aGUgSVNBIElSUXMgKDAtMTUpLgotCSAqLwotCWlvYXBpYyA9IG1wX2ZpbmRfaW9hcGljKDApOwotCWlmIChpb2FwaWMgPCAwKQotCQlyZXR1cm47Ci0KLQlpbnRzcmMubXBjX3R5cGUgPSBNUF9JTlRTUkM7Ci0JaW50c3JjLm1wY19pcnFmbGFnID0gMDsJLyogQ29uZm9ybWluZyAqLwotCWludHNyYy5tcGNfc3JjYnVzID0gTVBfSVNBX0JVUzsKICNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKLQlpbnRzcmMubXBjX2RzdGFwaWMgPSBtcF9pb2FwaWNzW2lvYXBpY10ubXBjX2FwaWNpZDsKKwlpbnQgaTsKKwlpbnQgbnJfbV9zcGFyZSA9IDA7CiAjZW5kaWYKLQkvKgotCSAqIFVzZSB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciB0aGUgSVJRcyAwLTE1LiAgVW5sZXNzCi0JICogb3ZlcnJpZGRlbiBieSAoTUFEVCkgaW50ZXJydXB0IHNvdXJjZSBvdmVycmlkZSBlbnRyaWVzLgotCSAqLwotCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCWludCBpZHg7CiAKLQkJZm9yIChpZHggPSAwOyBpZHggPCBtcF9pcnFfZW50cmllczsgaWR4KyspIHsKLQkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqaXJxID0gbXBfaXJxcyArIGlkeDsKKwlpbnQgY291bnQgPSBzaXplb2YoKm1wYyk7CisJdW5zaWduZWQgY2hhciAqbXB0ID0gKCh1bnNpZ25lZCBjaGFyICopbXBjKSArIGNvdW50OwogCi0JCQkvKiBEbyB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZvciB0aGlzIElTQSBJUlE/ICovCi0JCQlpZiAoaXJxLT5tcGNfc3JjYnVzID09IE1QX0lTQV9CVVMKLQkJCSAgICAmJiBpcnEtPm1wY19zcmNidXNpcnEgPT0gaSkKKwlwcmludGsoS0VSTl9JTkZPICJtcGNfbGVuZ3RoICV4XG4iLCBtcGMtPm1wY19sZW5ndGgpOworCXdoaWxlIChjb3VudCA8IG1wYy0+bXBjX2xlbmd0aCkgeworCQlzd2l0Y2ggKCptcHQpIHsKKwkJY2FzZSBNUF9QUk9DRVNTT1I6CisJCQl7CisJCQkJc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptID0KKwkJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqKW1wdDsKKwkJCQltcHQgKz0gc2l6ZW9mKCptKTsKKwkJCQljb3VudCArPSBzaXplb2YoKm0pOwogCQkJCWJyZWFrOwotCi0JCQkvKiBEbyB3ZSBhbHJlYWR5IGhhdmUgYSBtYXBwaW5nIGZvciB0aGlzIElPQVBJQyBwaW4gKi8KLQkJCWlmICgoaXJxLT5tcGNfZHN0YXBpYyA9PSBpbnRzcmMubXBjX2RzdGFwaWMpICYmCi0JCQkgICAgKGlycS0+bXBjX2RzdGlycSA9PSBpKSkKKwkJCX0KKwkJY2FzZSBNUF9CVVM6CisJCQl7CisJCQkJc3RydWN0IG1wY19jb25maWdfYnVzICptID0KKwkJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqKW1wdDsKKwkJCQltcHQgKz0gc2l6ZW9mKCptKTsKKwkJCQljb3VudCArPSBzaXplb2YoKm0pOwogCQkJCWJyZWFrOworCQkJfQorCQljYXNlIE1QX0lPQVBJQzoKKwkJCXsKKwkJCQltcHQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyk7CisJCQkJY291bnQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyk7CisJCQkJYnJlYWs7CisJCQl9CisJCWNhc2UgTVBfSU5UU1JDOgorCQkJeworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCQkJCXN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyAqbSA9CisJCQkJICAgIChzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKiltcHQ7CisKKwkJCQlwcmludGsoS0VSTl9JTkZPICJPTEQgIik7CisJCQkJcHJpbnRfTVBfaW50c3JjX2luZm8obSk7CisJCQkJaSA9IGdldF9NUF9pbnRzcmNfaW5kZXgobSk7CisJCQkJaWYgKGkgPiAwKSB7CisJCQkJCWFzc2lnbl90b19tcGNfaW50c3JjKCZtcF9pcnFzW2ldLCBtKTsKKwkJCQkJcHJpbnRrKEtFUk5fSU5GTyAiTkVXICIpOworCQkJCQlwcmludF9tcF9pcnFfaW5mbygmbXBfaXJxc1tpXSk7CisJCQkJfSBlbHNlIGlmICghaSkgeworCQkJCQkvKiBsZWdhY3ksIGRvIG5vdGhpbmcgKi8KKwkJCQl9IGVsc2UgaWYgKG5yX21fc3BhcmUgPCBTUEFSRV9TTE9UX05VTSkgeworCQkJCQkvKgorCQkJCQkgKiBub3QgZm91bmQgKC0xKSwgb3IgZHVwbGljYXRlZCAoLTIpCisJCQkJCSAqIGFyZSBpbnZhbGlkIGVudHJpZXMsCisJCQkJCSAqIHdlIG5lZWQgdG8gdXNlIHRoZSBzbG90ICBsYXRlcgorCQkJCQkgKi8KKwkJCQkJbV9zcGFyZVtucl9tX3NwYXJlXSA9IG07CisJCQkJCW5yX21fc3BhcmUrKzsKKwkJCQl9CisjZW5kaWYKKwkJCQltcHQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyk7CisJCQkJY291bnQgKz0gc2l6ZW9mKHN0cnVjdCBtcGNfY29uZmlnX2ludHNyYyk7CisJCQkJYnJlYWs7CisJCQl9CisJCWNhc2UgTVBfTElOVFNSQzoKKwkJCXsKKwkJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19saW50c3JjICptID0KKwkJCQkgICAgKHN0cnVjdCBtcGNfY29uZmlnX2xpbnRzcmMgKiltcHQ7CisJCQkJbXB0ICs9IHNpemVvZigqbSk7CisJCQkJY291bnQgKz0gc2l6ZW9mKCptKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJZGVmYXVsdDoKKwkJCS8qIHdyb25nIG1wdGFibGUgKi8KKwkJCXByaW50ayhLRVJOX0VSUiAiWW91ciBtcHRhYmxlIGlzIHdyb25nLCBjb250YWN0IHlvdXIgSFcgdmVuZG9yIVxuIik7CisJCQlwcmludGsoS0VSTl9FUlIgInR5cGUgJXhcbiIsICptcHQpOworCQkJcHJpbnRfaGV4X2R1bXAoS0VSTl9FUlIsICIgICIsIERVTVBfUFJFRklYX0FERFJFU1MsIDE2LAorCQkJCQkxLCBtcGMsIG1wYy0+bXBjX2xlbmd0aCwgMSk7CisJCQlnb3RvIG91dDsKIAkJfQotCi0JCWlmIChpZHggIT0gbXBfaXJxX2VudHJpZXMpIHsKLQkJCXByaW50ayhLRVJOX0RFQlVHICJBQ1BJOiBJUlElZCB1c2VkIGJ5IG92ZXJyaWRlLlxuIiwgaSk7Ci0JCQljb250aW51ZTsJLyogSVJRIGFscmVhZHkgdXNlZCAqLwotCQl9Ci0KLQkJaW50c3JjLm1wY19pcnF0eXBlID0gbXBfSU5UOwotCQlpbnRzcmMubXBjX3NyY2J1c2lycSA9IGk7CS8qIElkZW50aXR5IG1hcHBlZCAqLwotCQlpbnRzcmMubXBjX2RzdGlycSA9IGk7Ci0KLQkJTVBfaW50c3JjX2luZm8oJmludHNyYyk7Ci0JfQotfQotCi1pbnQgbXBfcmVnaXN0ZXJfZ3NpKHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCi17Ci0JaW50IGlvYXBpYzsKLQlpbnQgaW9hcGljX3BpbjsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jZGVmaW5lIE1BWF9HU0lfTlVNCTQwOTYKLSNkZWZpbmUgSVJRX0NPTVBSRVNTSU9OX1NUQVJUCTY0Ci0KLQlzdGF0aWMgaW50IHBjaV9pcnEgPSBJUlFfQ09NUFJFU1NJT05fU1RBUlQ7Ci0JLyoKLQkgKiBNYXBwaW5nIGJldHdlZW4gR2xvYmFsIFN5c3RlbSBJbnRlcnJ1cHRzLCB3aGljaAotCSAqIHJlcHJlc2VudCBhbGwgcG9zc2libGUgaW50ZXJydXB0cywgYW5kIElSUXMKLQkgKiBhc3NpZ25lZCB0byBhY3R1YWwgZGV2aWNlcy4KLQkgKi8KLQlzdGF0aWMgaW50IGdzaV90b19pcnFbTUFYX0dTSV9OVU1dOwotI2Vsc2UKLQotCWlmIChhY3BpX2lycV9tb2RlbCAhPSBBQ1BJX0lSUV9NT0RFTF9JT0FQSUMpCi0JCXJldHVybiBnc2k7Ci0jZW5kaWYKLQotCS8qIERvbid0IHNldCB1cCB0aGUgQUNQSSBTQ0kgYmVjYXVzZSBpdCdzIGFscmVhZHkgc2V0IHVwICovCi0JaWYgKGFjcGlfZ2JsX0ZBRFQuc2NpX2ludGVycnVwdCA9PSBnc2kpCi0JCXJldHVybiBnc2k7Ci0KLQlpb2FwaWMgPSBtcF9maW5kX2lvYXBpYyhnc2kpOwotCWlmIChpb2FwaWMgPCAwKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIk5vIElPQVBJQyBmb3IgR1NJICV1XG4iLCBnc2kpOwotCQlyZXR1cm4gZ3NpOwogCX0KIAotCWlvYXBpY19waW4gPSBnc2kgLSBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmdzaV9iYXNlOworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCWZvciAoaSA9IDA7IGkgPCBtcF9pcnFfZW50cmllczsgaSsrKSB7CisJCWlmIChpcnFfdXNlZFtpXSkKKwkJCWNvbnRpbnVlOwogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCWlmIChpb2FwaWNfcmVudW1iZXJfaXJxKQotCQlnc2kgPSBpb2FwaWNfcmVudW1iZXJfaXJxKGlvYXBpYywgZ3NpKTsKLSNlbmRpZgorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnF0eXBlICE9IG1wX0lOVCkKKwkJCWNvbnRpbnVlOwogCi0JLyoKLQkgKiBBdm9pZCBwaW4gcmVwcm9ncmFtbWluZy4gIFBSVHMgdHlwaWNhbGx5IGluY2x1ZGUgZW50cmllcwotCSAqIHdpdGggcmVkdW5kYW50IHBpbi0+Z3NpIG1hcHBpbmdzIChidXQgdW5pcXVlIFBDSSBkZXZpY2VzKTsKLQkgKiB3ZSBvbmx5IHByb2dyYW0gdGhlIElPQVBJQyBvbiB0aGUgZmlyc3QuCi0JICovCi0JaWYgKGlvYXBpY19waW4gPiBNUF9NQVhfSU9BUElDX1BJTikgewotCQlwcmludGsoS0VSTl9FUlIgIkludmFsaWQgcmVmZXJlbmNlIHRvIElPQVBJQyBwaW4gIgotCQkgICAgICAgIiVkLSVkXG4iLCBtcF9pb2FwaWNfcm91dGluZ1tpb2FwaWNdLmFwaWNfaWQsCi0JCSAgICAgICBpb2FwaWNfcGluKTsKLQkJcmV0dXJuIGdzaTsKLQl9Ci0JaWYgKHRlc3RfYml0KGlvYXBpY19waW4sIG1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10ucGluX3Byb2dyYW1tZWQpKSB7Ci0JCURwcmludGsoS0VSTl9ERUJVRyAiUGluICVkLSVkIGFscmVhZHkgcHJvZ3JhbW1lZFxuIiwKLQkJCW1wX2lvYXBpY19yb3V0aW5nW2lvYXBpY10uYXBpY19pZCwgaW9hcGljX3Bpbik7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCQlyZXR1cm4gKGdzaSA8IElSUV9DT01QUkVTU0lPTl9TVEFSVCA/IGdzaSA6IGdzaV90b19pcnFbZ3NpXSk7Ci0jZWxzZQotCQlyZXR1cm4gZ3NpOwotI2VuZGlmCi0JfQorCQlpZiAobXBfaXJxc1tpXS5tcF9pcnFmbGFnICE9IDB4MGYpCisJCQljb250aW51ZTsKIAotCXNldF9iaXQoaW9hcGljX3BpbiwgbXBfaW9hcGljX3JvdXRpbmdbaW9hcGljXS5waW5fcHJvZ3JhbW1lZCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgotCS8qCi0JICogRm9yIEdTSSA+PSA2NCwgdXNlIElSUSBjb21wcmVzc2lvbgotCSAqLwotCWlmICgoZ3NpID49IElSUV9DT01QUkVTU0lPTl9TVEFSVCkKLQkgICAgJiYgKHRyaWdnZXJpbmcgPT0gQUNQSV9MRVZFTF9TRU5TSVRJVkUpKSB7Ci0JCS8qCi0JCSAqIEZvciBQQ0kgZGV2aWNlcyBhc3NpZ24gSVJRcyBpbiBvcmRlciwgYXZvaWRpbmcgZ2FwcwotCQkgKiBkdWUgdG8gdW51c2VkIEkvTyBBUElDIHBpbnMuCi0JCSAqLwotCQlpbnQgaXJxID0gZ3NpOwotCQlpZiAoZ3NpIDwgTUFYX0dTSV9OVU0pIHsKLQkJCS8qCi0JCQkgKiBSZXRhaW4gdGhlIFZJQSBjaGlwc2V0IHdvcmstYXJvdW5kIChnc2kgPiAxNSksIGJ1dAotCQkJICogYXZvaWQgYSBwcm9ibGVtIHdoZXJlIHRoZSA4MjU0IHRpbWVyIChJUlEwKSBpcyBzZXR1cAotCQkJICogdmlhIGFuIG92ZXJyaWRlIChzbyBpdCdzIG5vdCBvbiBwaW4gMCBvZiB0aGUgaW9hcGljKSwKLQkJCSAqIGFuZCBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgcGluIDAgaW50ZXJydXB0IGlzIGEgUENJCi0JCQkgKiB0eXBlLiAgVGhlIGdzaSA+IDE1IHRlc3QgY291bGQgY2F1c2UgdGhlc2UgdHdvIHBpbnMKLQkJCSAqIHRvIGJlIHNoYXJlZCBhcyBJUlEwLCBhbmQgdGhleSBhcmUgbm90IHNoYXJlYWJsZS4KLQkJCSAqIFNvIHRlc3QgZm9yIHRoaXMgY29uZGl0aW9uLCBhbmQgaWYgbmVjZXNzYXJ5LCBhdm9pZAotCQkJICogdGhlIHBpbiBjb2xsaXNpb24uCi0JCQkgKi8KLQkJCWdzaSA9IHBjaV9pcnErKzsKLQkJCS8qCi0JCQkgKiBEb24ndCBhc3NpZ24gSVJRIHVzZWQgYnkgQUNQSSBTQ0kKLQkJCSAqLwotCQkJaWYgKGdzaSA9PSBhY3BpX2dibF9GQURULnNjaV9pbnRlcnJ1cHQpCi0JCQkJZ3NpID0gcGNpX2lycSsrOwotCQkJZ3NpX3RvX2lycVtpcnFdID0gZ3NpOworCQlpZiAobnJfbV9zcGFyZSA+IDApIHsKKwkJCXByaW50ayhLRVJOX0lORk8gIipORVcqIGZvdW5kICIpOworCQkJbnJfbV9zcGFyZS0tOworCQkJYXNzaWduX3RvX21wY19pbnRzcmMoJm1wX2lycXNbaV0sIG1fc3BhcmVbbnJfbV9zcGFyZV0pOworCQkJbV9zcGFyZVtucl9tX3NwYXJlXSA9IE5VTEw7CiAJCX0gZWxzZSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgIkdTSSAldSBpcyB0b28gaGlnaFxuIiwgZ3NpKTsKLQkJCXJldHVybiBnc2k7CisJCQlzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKm0gPQorCQkJICAgIChzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMgKiltcHQ7CisJCQljb3VudCArPSBzaXplb2Yoc3RydWN0IG1wY19jb25maWdfaW50c3JjKTsKKwkJCWlmICghbXBjX25ld19waHlzKSB7CisJCQkJcHJpbnRrKEtFUk5fSU5GTyAiTm8gc3BhcmUgc2xvdHMsIHRyeSB0byBhcHBlbmQuLi50YWtlIHlvdXIgcmlzaywgbmV3IG1wY19sZW5ndGggJXhcbiIsIGNvdW50KTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKGNvdW50IDw9IG1wY19uZXdfbGVuZ3RoKQorCQkJCQlwcmludGsoS0VSTl9JTkZPICJObyBzcGFyZSBzbG90cywgdHJ5IHRvIGFwcGVuZC4uLiwgbmV3IG1wY19sZW5ndGggJXhcbiIsIGNvdW50KTsKKwkJCQllbHNlIHsKKwkJCQkJcHJpbnRrKEtFUk5fRVJSICJtcGNfbmV3X2xlbmd0aCAlbHggaXMgdG9vIHNtYWxsXG4iLCBtcGNfbmV3X2xlbmd0aCk7CisJCQkJCWdvdG8gb3V0OworCQkJCX0KKwkJCX0KKwkJCWFzc2lnbl90b19tcGNfaW50c3JjKCZtcF9pcnFzW2ldLCBtKTsKKwkJCW1wYy0+bXBjX2xlbmd0aCA9IGNvdW50OworCQkJbXB0ICs9IHNpemVvZihzdHJ1Y3QgbXBjX2NvbmZpZ19pbnRzcmMpOwogCQl9CisJCXByaW50X21wX2lycV9pbmZvKCZtcF9pcnFzW2ldKTsKIAl9CiAjZW5kaWYKLQlpb19hcGljX3NldF9wY2lfcm91dGluZyhpb2FwaWMsIGlvYXBpY19waW4sIGdzaSwKLQkJCQl0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUgPyAwIDogMSwKLQkJCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9ISUdIID8gMCA6IDEpOwotCXJldHVybiBnc2k7CitvdXQ6CisJLyogdXBkYXRlIGNoZWNrc3VtICovCisJbXBjLT5tcGNfY2hlY2tzdW0gPSAwOworCW1wYy0+bXBjX2NoZWNrc3VtIC09IG1wZl9jaGVja3N1bSgodW5zaWduZWQgY2hhciAqKW1wYywKKwkJCQkJICAgbXBjLT5tcGNfbGVuZ3RoKTsKKworCXJldHVybiAwOwogfQogCi0jZW5kaWYgLyogQ09ORklHX1g4Nl9JT19BUElDICovCi0jZW5kaWYgLyogQ09ORklHX0FDUEkgKi8KK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBlbmFibGVfdXBkYXRlX21wdGFibGU7CisKK3N0YXRpYyBpbnQgX19pbml0IHVwZGF0ZV9tcHRhYmxlX3NldHVwKGNoYXIgKnN0cikKK3sKKwllbmFibGVfdXBkYXRlX21wdGFibGUgPSAxOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oInVwZGF0ZV9tcHRhYmxlIiwgdXBkYXRlX21wdGFibGVfc2V0dXApOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIG1wY19uZXdfcGh5czsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIG1wY19uZXdfbGVuZ3RoIF9faW5pdGRhdGEgPSA0MDk2OworCisvKiBhbGxvY19tcHRhYmxlIG9yIGFsbG9jX21wdGFibGU9NGsgKi8KK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBhbGxvY19tcHRhYmxlOworc3RhdGljIGludCBfX2luaXQgcGFyc2VfYWxsb2NfbXB0YWJsZV9vcHQoY2hhciAqcCkKK3sKKwllbmFibGVfdXBkYXRlX21wdGFibGUgPSAxOworCWFsbG9jX21wdGFibGUgPSAxOworCWlmICghcCkKKwkJcmV0dXJuIDA7CisJbXBjX25ld19sZW5ndGggPSBtZW1wYXJzZShwLCAmcCk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgiYWxsb2NfbXB0YWJsZSIsIHBhcnNlX2FsbG9jX21wdGFibGVfb3B0KTsKKwordm9pZCBfX2luaXQgZWFybHlfcmVzZXJ2ZV9lODIwX21wY19uZXcodm9pZCkKK3sKKwlpZiAoZW5hYmxlX3VwZGF0ZV9tcHRhYmxlICYmIGFsbG9jX21wdGFibGUpIHsKKwkJdTY0IHN0YXJ0dCA9IDA7CisjaWZkZWYgQ09ORklHX1g4Nl9UUkFNUE9MSU5FCisJCXN0YXJ0dCA9IFRSQU1QT0xJTkVfQkFTRTsKKyNlbmRpZgorCQltcGNfbmV3X3BoeXMgPSBlYXJseV9yZXNlcnZlX2U4MjAoc3RhcnR0LCBtcGNfbmV3X2xlbmd0aCwgNCk7CisJfQorfQorCitzdGF0aWMgaW50IF9faW5pdCB1cGRhdGVfbXBfdGFibGUodm9pZCkKK3sKKwljaGFyIHN0clsxNl07CisJY2hhciBvZW1bMTBdOworCXN0cnVjdCBpbnRlbF9tcF9mbG9hdGluZyAqbXBmOworCXN0cnVjdCBtcF9jb25maWdfdGFibGUgKm1wYzsKKwlzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGNfbmV3OworCisJaWYgKCFlbmFibGVfdXBkYXRlX21wdGFibGUpCisJCXJldHVybiAwOworCisJbXBmID0gbXBmX2ZvdW5kOworCWlmICghbXBmKQorCQlyZXR1cm4gMDsKKworCS8qCisJICogTm93IHNlZSBpZiB3ZSBuZWVkIHRvIGdvIGZ1cnRoZXIuCisJICovCisJaWYgKG1wZi0+bXBmX2ZlYXR1cmUxICE9IDApCisJCXJldHVybiAwOworCisJaWYgKCFtcGYtPm1wZl9waHlzcHRyKQorCQlyZXR1cm4gMDsKKworCW1wYyA9IHBoeXNfdG9fdmlydChtcGYtPm1wZl9waHlzcHRyKTsKKworCWlmICghc21wX2NoZWNrX21wYyhtcGMsIG9lbSwgc3RyKSkKKwkJcmV0dXJuIDA7CisKKwlwcmludGsoS0VSTl9JTkZPICJtcGY6ICVseFxuIiwgdmlydF90b19waHlzKG1wZikpOworCXByaW50ayhLRVJOX0lORk8gIm1wZl9waHlzcHRyOiAleFxuIiwgbXBmLT5tcGZfcGh5c3B0cik7CisKKwlpZiAobXBjX25ld19waHlzICYmIG1wYy0+bXBjX2xlbmd0aCA+IG1wY19uZXdfbGVuZ3RoKSB7CisJCW1wY19uZXdfcGh5cyA9IDA7CisJCXByaW50ayhLRVJOX0lORk8gIm1wY19uZXdfbGVuZ3RoIGlzICVsZCwgcGxlYXNlIHVzZSBhbGxvY19tcHRhYmxlPThrXG4iLAorCQkJIG1wY19uZXdfbGVuZ3RoKTsKKwl9CisKKwlpZiAoIW1wY19uZXdfcGh5cykgeworCQl1bnNpZ25lZCBjaGFyIG9sZCwgbmV3OworCQkvKiBjaGVjayBpZiB3ZSBjYW4gY2hhbmdlIHRoZSBwb3N0aW9uICovCisJCW1wYy0+bXBjX2NoZWNrc3VtID0gMDsKKwkJb2xkID0gbXBmX2NoZWNrc3VtKCh1bnNpZ25lZCBjaGFyICopbXBjLCBtcGMtPm1wY19sZW5ndGgpOworCQltcGMtPm1wY19jaGVja3N1bSA9IDB4ZmY7CisJCW5ldyA9IG1wZl9jaGVja3N1bSgodW5zaWduZWQgY2hhciAqKW1wYywgbXBjLT5tcGNfbGVuZ3RoKTsKKwkJaWYgKG9sZCA9PSBuZXcpIHsKKwkJCXByaW50ayhLRVJOX0lORk8gIm1wYyBpcyByZWFkb25seSwgcGxlYXNlIHRyeSBhbGxvY19tcHRhYmxlIGluc3RlYWRcbiIpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJcHJpbnRrKEtFUk5fSU5GTyAidXNlIGluLXBvc2l0b24gcmVwbGFjaW5nXG4iKTsKKwl9IGVsc2UgeworCQltcGYtPm1wZl9waHlzcHRyID0gbXBjX25ld19waHlzOworCQltcGNfbmV3ID0gcGh5c190b192aXJ0KG1wY19uZXdfcGh5cyk7CisJCW1lbWNweShtcGNfbmV3LCBtcGMsIG1wYy0+bXBjX2xlbmd0aCk7CisJCW1wYyA9IG1wY19uZXc7CisJCS8qIGNoZWNrIGlmIHdlIGNhbiBtb2RpZnkgdGhhdCAqLworCQlpZiAobXBjX25ld19waHlzIC0gbXBmLT5tcGZfcGh5c3B0cikgeworCQkJc3RydWN0IGludGVsX21wX2Zsb2F0aW5nICptcGZfbmV3OworCQkJLyogc3RlYWwgMTYgYnl0ZXMgZnJvbSBbMCwgMWspICovCisJCQlwcmludGsoS0VSTl9JTkZPICJtcGYgbmV3OiAleFxuIiwgMHg0MDAgLSAxNik7CisJCQltcGZfbmV3ID0gcGh5c190b192aXJ0KDB4NDAwIC0gMTYpOworCQkJbWVtY3B5KG1wZl9uZXcsIG1wZiwgMTYpOworCQkJbXBmID0gbXBmX25ldzsKKwkJCW1wZi0+bXBmX3BoeXNwdHIgPSBtcGNfbmV3X3BoeXM7CisJCX0KKwkJbXBmLT5tcGZfY2hlY2tzdW0gPSAwOworCQltcGYtPm1wZl9jaGVja3N1bSAtPSBtcGZfY2hlY2tzdW0oKHVuc2lnbmVkIGNoYXIgKiltcGYsIDE2KTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAibXBmX3BoeXNwdHIgbmV3OiAleFxuIiwgbXBmLT5tcGZfcGh5c3B0cik7CisJfQorCisJLyoKKwkgKiBvbmx5IHJlcGxhY2UgdGhlIG9uZSB3aXRoIG1wX0lOVCBhbmQKKwkgKgkgTVBfSVJRX1RSSUdHRVJfTEVWRUx8TVBfSVJRX1BPTEFSSVRZX0xPVywKKwkgKiBhbHJlYWR5IGluIG1wX2lycXMgLCBzdG9yZWQgYnkgLi4uIGFuZCBtcF9jb25maWdfYWNwaV9nc2ksCisJICogbWF5IG5lZWQgcGNpPXJvdXRlaXJxIGZvciBhbGwgY292ZXJhZ2UKKwkgKi8KKwlyZXBsYWNlX2ludHNyY19hbGwobXBjLCBtcGNfbmV3X3BoeXMsIG1wY19uZXdfbGVuZ3RoKTsKKworCXJldHVybiAwOworfQorCitsYXRlX2luaXRjYWxsKHVwZGF0ZV9tcF90YWJsZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbXNyLmMKaW5kZXggMWYzYWJlMC4uYTE1M2IzOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL21zci5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9tc3IuYwpAQCAtMTE3LDEyICsxMTcsMjAgQEAKIHsKIAl1bnNpZ25lZCBpbnQgY3B1ID0gaW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOwogCXN0cnVjdCBjcHVpbmZvX3g4NiAqYyA9ICZjcHVfZGF0YShjcHUpOworCWludCByZXQgPSAwOwogCi0JaWYgKGNwdSA+PSBOUl9DUFVTIHx8ICFjcHVfb25saW5lKGNwdSkpCi0JCXJldHVybiAtRU5YSU87CS8qIE5vIHN1Y2ggQ1BVICovCisJbG9ja19rZXJuZWwoKTsKKwljcHUgPSBpbWlub3IoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7CisKKwlpZiAoY3B1ID49IE5SX0NQVVMgfHwgIWNwdV9vbmxpbmUoY3B1KSkgeworCQlyZXQgPSAtRU5YSU87CS8qIE5vIHN1Y2ggQ1BVICovCisJCWdvdG8gb3V0OworCX0KKwljID0gJmNwdV9kYXRhKGNwdSk7CiAJaWYgKCFjcHVfaGFzKGMsIFg4Nl9GRUFUVVJFX01TUikpCi0JCXJldHVybiAtRUlPOwkvKiBNU1Igbm90IHN1cHBvcnRlZCAqLwotCisJCXJldCA9IC1FSU87CS8qIE1TUiBub3Qgc3VwcG9ydGVkICovCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbm1pLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbm1pLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE2Yjg5MgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9ubWkuYwpAQCAtMCwwICsxLDUxNiBAQAorLyoKKyAqICBOTUkgd2F0Y2hkb2cgc3VwcG9ydCBvbiBBUElDIHN5c3RlbXMKKyAqCisgKiAgU3RhcnRlZCBieSBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqCisgKiAgRml4ZXM6CisgKiAgTWlrYWVsIFBldHRlcnNzb24JOiBBTUQgSzcgc3VwcG9ydCBmb3IgbG9jYWwgQVBJQyBOTUkgd2F0Y2hkb2cuCisgKiAgTWlrYWVsIFBldHRlcnNzb24JOiBQb3dlciBNYW5hZ2VtZW50IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KKyAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBlbnRpdW0gNCBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KKyAqICBQYXZlbCBNYWNoZWsgYW5kCisgKiAgTWlrYWVsIFBldHRlcnNzb24JOiBQTSBjb252ZXJ0ZWQgdG8gZHJpdmVyIG1vZGVsLiBEaXNhYmxlL2VuYWJsZSBBUEkuCisgKi8KKworI2luY2x1ZGUgPGFzbS9hcGljLmg+CisKKyNpbmNsdWRlIDxsaW51eC9ubWkuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tkZWJ1Zy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8YXNtL2k4MjU5Lmg+CisjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CisjaW5jbHVkZSA8YXNtL25taS5oPgorI2luY2x1ZGUgPGFzbS9wcm90by5oPgorI2luY2x1ZGUgPGFzbS90aW1lci5oPgorCisjaW5jbHVkZSA8YXNtL21jZS5oPgorCisjaW5jbHVkZSA8bWFjaF90cmFwcy5oPgorCitpbnQgdW5rbm93bl9ubWlfcGFuaWM7CitpbnQgbm1pX3dhdGNoZG9nX2VuYWJsZWQ7CisKK3N0YXRpYyBjcHVtYXNrX3QgYmFja3RyYWNlX21hc2sgPSBDUFVfTUFTS19OT05FOworCisvKiBubWlfYWN0aXZlOgorICogPjA6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaXMgYWN0aXZlLCBidXQgY2FuIGJlIGRpc2FibGVkCisgKiA8MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBoYXMgbm90IGJlZW4gc2V0IHVwLCBhbmQgY2Fubm90CisgKiAgICAgYmUgZW5hYmxlZAorICogIDA6IHRoZSBsYXBpYyBOTUkgd2F0Y2hkb2cgaXMgZGlzYWJsZWQsIGJ1dCBjYW4gYmUgZW5hYmxlZAorICovCithdG9taWNfdCBubWlfYWN0aXZlID0gQVRPTUlDX0lOSVQoMCk7CQkvKiBvcHJvZmlsZSB1c2VzIHRoaXMgKi8KK0VYUE9SVF9TWU1CT0wobm1pX2FjdGl2ZSk7CisKK3Vuc2lnbmVkIGludCBubWlfd2F0Y2hkb2cgPSBOTUlfTk9ORTsKK0VYUE9SVF9TWU1CT0wobm1pX3dhdGNoZG9nKTsKKworc3RhdGljIGludCBwYW5pY19vbl90aW1lb3V0OworCitzdGF0aWMgdW5zaWduZWQgaW50IG5taV9oeiA9IEhaOworc3RhdGljIERFRklORV9QRVJfQ1BVKHNob3J0LCB3ZF9lbmFibGVkKTsKK3N0YXRpYyBpbnQgZW5kZmxhZyBfX2luaXRkYXRhOworCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZXRfbm1pX2NvdW50KGludCBjcHUpCit7CisjaWZkZWYgQ09ORklHX1g4Nl82NAorCXJldHVybiBjcHVfcGRhKGNwdSktPl9fbm1pX2NvdW50OworI2Vsc2UKKwlyZXR1cm4gbm1pX2NvdW50KGNwdSk7CisjZW5kaWYKK30KKworc3RhdGljIGlubGluZSBpbnQgbWNlX2luX3Byb2dyZXNzKHZvaWQpCit7CisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSAmJiBkZWZpbmVkKENPTkZJR19YODZfTUNFKQorCXJldHVybiBhdG9taWNfcmVhZCgmbWNlX2VudHJ5KSA+IDA7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFRha2UgdGhlIGxvY2FsIGFwaWMgdGltZXIgYW5kIFBJVC9IUEVUIGludG8gYWNjb3VudC4gV2UgZG9uJ3QKKyAqIGtub3cgd2hpY2ggb25lIGlzIGFjdGl2ZSwgd2hlbiB3ZSBoYXZlIGhpZ2hyZXMvZHludGljayBvbgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBnZXRfdGltZXJfaXJxcyhpbnQgY3B1KQoreworI2lmZGVmIENPTkZJR19YODZfNjQKKwlyZXR1cm4gcmVhZF9wZGEoYXBpY190aW1lcl9pcnFzKSArIHJlYWRfcGRhKGlycTBfaXJxcyk7CisjZWxzZQorCXJldHVybiBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmFwaWNfdGltZXJfaXJxcyArCisJCXBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxMF9pcnFzOworI2VuZGlmCit9CisKKyNpZmRlZiBDT05GSUdfU01QCisvKgorICogVGhlIHBlcmZvcm1hbmNlIGNvdW50ZXJzIHVzZWQgYnkgTk1JX0xPQ0FMX0FQSUMgZG9uJ3QgdHJpZ2dlciB3aGVuCisgKiB0aGUgQ1BVIGlzIGlkbGUuIFRvIG1ha2Ugc3VyZSB0aGUgTk1JIHdhdGNoZG9nIHJlYWxseSB0aWNrcyBvbiBhbGwKKyAqIENQVXMgZHVyaW5nIHRoZSB0ZXN0IG1ha2UgdGhlbSBidXN5LgorICovCitzdGF0aWMgX19pbml0IHZvaWQgbm1pX2NwdV9idXN5KHZvaWQgKmRhdGEpCit7CisJbG9jYWxfaXJxX2VuYWJsZV9pbl9oYXJkaXJxKCk7CisJLyoKKwkgKiBJbnRlbnRpb25hbGx5IGRvbid0IHVzZSBjcHVfcmVsYXggaGVyZS4gVGhpcyBpcworCSAqIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIHJlYWxseSB0aWNrcywKKwkgKiBldmVuIGlmIHRoZXJlIGlzIGEgc2ltdWxhdG9yIG9yIHNpbWlsYXIgdGhhdCBjYXRjaGVzIHRoZQorCSAqIHBhdXNlIGluc3RydWN0aW9uLiBPbiBhIHJlYWwgSFQgbWFjaGluZSB0aGlzIGlzIGZpbmUgYmVjYXVzZQorCSAqIGFsbCBvdGhlciBDUFVzIGFyZSBidXN5IHdpdGggInVzZWxlc3MiIGRlbGF5IGxvb3BzIGFuZCBkb24ndAorCSAqIGNhcmUgaWYgdGhleSBnZXQgc29tZXdoYXQgbGVzcyBjeWNsZXMuCisJICovCisJd2hpbGUgKGVuZGZsYWcgPT0gMCkKKwkJbWIoKTsKK30KKyNlbmRpZgorCitpbnQgX19pbml0IGNoZWNrX25taV93YXRjaGRvZyh2b2lkKQoreworCXVuc2lnbmVkIGludCAqcHJldl9ubWlfY291bnQ7CisJaW50IGNwdTsKKworCWlmICghbm1pX3dhdGNoZG9nX2FjdGl2ZSgpIHx8ICFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpCisJCXJldHVybiAwOworCisJcHJldl9ubWlfY291bnQgPSBrbWFsbG9jKG5yX2NwdV9pZHMgKiBzaXplb2YoaW50KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcmV2X25taV9jb3VudCkKKwkJZ290byBlcnJvcjsKKworCXByaW50ayhLRVJOX0lORk8gIlRlc3RpbmcgTk1JIHdhdGNoZG9nIC4uLiAiKTsKKworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQorCQlzbXBfY2FsbF9mdW5jdGlvbihubWlfY3B1X2J1c3ksICh2b2lkICopJmVuZGZsYWcsIDAsIDApOworI2VuZGlmCisKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQorCQlwcmV2X25taV9jb3VudFtjcHVdID0gZ2V0X25taV9jb3VudChjcHUpOworCWxvY2FsX2lycV9lbmFibGUoKTsKKwltZGVsYXkoKDIwICogMTAwMCkgLyBubWlfaHopOyAvKiB3YWl0IDIwIHRpY2tzICovCisKKwlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkgeworCQlpZiAoIXBlcl9jcHUod2RfZW5hYmxlZCwgY3B1KSkKKwkJCWNvbnRpbnVlOworCQlpZiAoZ2V0X25taV9jb3VudChjcHUpIC0gcHJldl9ubWlfY291bnRbY3B1XSA8PSA1KSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBDUFUjJWQ6IE5NSSAiCisJCQkJImFwcGVhcnMgdG8gYmUgc3R1Y2sgKCVkLT4lZCkhXG4iLAorCQkJCWNwdSwKKwkJCQlwcmV2X25taV9jb3VudFtjcHVdLAorCQkJCWdldF9ubWlfY291bnQoY3B1KSk7CisJCQlwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkgPSAwOworCQkJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7CisJCX0KKwl9CisJZW5kZmxhZyA9IDE7CisJaWYgKCFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpIHsKKwkJa2ZyZWUocHJldl9ubWlfY291bnQpOworCQlhdG9taWNfc2V0KCZubWlfYWN0aXZlLCAtMSk7CisJCWdvdG8gZXJyb3I7CisJfQorCXByaW50aygiT0suXG4iKTsKKworCS8qCisJICogbm93IHRoYXQgd2Uga25vdyBpdCB3b3JrcyB3ZSBjYW4gcmVkdWNlIE5NSSBmcmVxdWVuY3kgdG8KKwkgKiBzb21ldGhpbmcgbW9yZSByZWFzb25hYmxlOyBtYWtlcyBhIGRpZmZlcmVuY2UgaW4gc29tZSBjb25maWdzCisJICovCisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKKwkJbm1pX2h6ID0gbGFwaWNfYWRqdXN0X25taV9oeigxKTsKKworCWtmcmVlKHByZXZfbm1pX2NvdW50KTsKKwlyZXR1cm4gMDsKK2Vycm9yOgorCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMgJiYgIXRpbWVyX3Rocm91Z2hfODI1OSkKKwkJZGlzYWJsZV84MjU5QV9pcnEoMCk7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCXRpbWVyX2FjayA9IDA7CisjZW5kaWYKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHNldHVwX25taV93YXRjaGRvZyhjaGFyICpzdHIpCit7CisJdW5zaWduZWQgaW50IG5taTsKKworCWlmICghc3RybmNtcChzdHIsICJwYW5pYyIsIDUpKSB7CisJCXBhbmljX29uX3RpbWVvdXQgPSAxOworCQlzdHIgPSBzdHJjaHIoc3RyLCAnLCcpOworCQlpZiAoIXN0cikKKwkJCXJldHVybiAxOworCQkrK3N0cjsKKwl9CisKKwlnZXRfb3B0aW9uKCZzdHIsICZubWkpOworCisJaWYgKG5taSA+PSBOTUlfSU5WQUxJRCkKKwkJcmV0dXJuIDA7CisKKwlubWlfd2F0Y2hkb2cgPSBubWk7CisJcmV0dXJuIDE7Cit9CitfX3NldHVwKCJubWlfd2F0Y2hkb2c9Iiwgc2V0dXBfbm1pX3dhdGNoZG9nKTsKKworLyoKKyAqIFN1c3BlbmQvcmVzdW1lIHN1cHBvcnQKKyAqLworI2lmZGVmIENPTkZJR19QTQorCitzdGF0aWMgaW50IG5taV9wbV9hY3RpdmU7IC8qIG5taV9hY3RpdmUgYmVmb3JlIHN1c3BlbmQgKi8KKworc3RhdGljIGludCBsYXBpY19ubWlfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJLyogb25seSBDUFUwIGdvZXMgaGVyZSwgb3RoZXIgQ1BVcyBzaG91bGQgYmUgb2ZmbGluZSAqLworCW5taV9wbV9hY3RpdmUgPSBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSk7CisJc3RvcF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKKwlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGxhcGljX25taV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKK3sKKwkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCisJaWYgKG5taV9wbV9hY3RpdmUgPiAwKSB7CisJCXNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOworCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIG5taV9zeXNjbGFzcyA9IHsKKwkubmFtZQkJPSAibGFwaWNfbm1pIiwKKwkucmVzdW1lCQk9IGxhcGljX25taV9yZXN1bWUsCisJLnN1c3BlbmQJPSBsYXBpY19ubWlfc3VzcGVuZCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBkZXZpY2VfbGFwaWNfbm1pID0geworCS5pZAk9IDAsCisJLmNscwk9ICZubWlfc3lzY2xhc3MsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpbml0X2xhcGljX25taV9zeXNmcyh2b2lkKQoreworCWludCBlcnJvcjsKKworCS8qCisJICogc2hvdWxkIHJlYWxseSBiZSBhIEJVR19PTiBidXQgYi9jIHRoaXMgaXMgYW4KKwkgKiBpbml0IGNhbGwsIGl0IGp1c3QgZG9lc24ndCB3b3JrLiAgLWRjegorCSAqLworCWlmIChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpCisJCXJldHVybiAwOworCisJaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDApCisJCXJldHVybiAwOworCisJZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJm5taV9zeXNjbGFzcyk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9sYXBpY19ubWkpOworCXJldHVybiBlcnJvcjsKK30KKworLyogbXVzdCBjb21lIGFmdGVyIHRoZSBsb2NhbCBBUElDJ3MgZGV2aWNlX2luaXRjYWxsKCkgKi8KK2xhdGVfaW5pdGNhbGwoaW5pdF9sYXBpY19ubWlfc3lzZnMpOworCisjZW5kaWYJLyogQ09ORklHX1BNICovCisKK3N0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZW5hYmxlKHZvaWQgKl9fdW51c2VkKQoreworCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkpOworfQorCisvKgorICogRW5hYmxlIHRpbWVyIGJhc2VkIE5NSXMgb24gYWxsIENQVXM6CisgKi8KK3ZvaWQgYWNwaV9ubWlfZW5hYmxlKHZvaWQpCit7CisJaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSAmJiBubWlfd2F0Y2hkb2cgPT0gTk1JX0lPX0FQSUMpCisJCW9uX2VhY2hfY3B1KF9fYWNwaV9ubWlfZW5hYmxlLCBOVUxMLCAwLCAxKTsKK30KKworc3RhdGljIHZvaWQgX19hY3BpX25taV9kaXNhYmxlKHZvaWQgKl9fdW51c2VkKQoreworCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkgfCBBUElDX0xWVF9NQVNLRUQpOworfQorCisvKgorICogRGlzYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgorICovCit2b2lkIGFjcGlfbm1pX2Rpc2FibGUodm9pZCkKK3sKKwlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKKwkJb25fZWFjaF9jcHUoX19hY3BpX25taV9kaXNhYmxlLCBOVUxMLCAwLCAxKTsKK30KKwordm9pZCBzZXR1cF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCit7CisJaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCisJCXJldHVybjsKKworCS8qIGNoZWFwIGhhY2sgdG8gc3VwcG9ydCBzdXNwZW5kL3Jlc3VtZSAqLworCS8qIGlmIGNwdTAgaXMgbm90IGFjdGl2ZSBuZWl0aGVyIHNob3VsZCB0aGUgb3RoZXIgY3B1cyAqLworCWlmIChzbXBfcHJvY2Vzc29yX2lkKCkgIT0gMCAmJiBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPD0gMCkKKwkJcmV0dXJuOworCisJc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKKwljYXNlIE5NSV9MT0NBTF9BUElDOgorCQkgLyogZW5hYmxlIGl0IGJlZm9yZSB0byBhdm9pZCByYWNlIHdpdGggaGFuZGxlciAqLworCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMTsKKwkJaWYgKGxhcGljX3dhdGNoZG9nX2luaXQobm1pX2h6KSA8IDApIHsKKwkJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOworCQkJcmV0dXJuOworCQl9CisJCS8qIEZBTEwgVEhST1VHSCAqLworCWNhc2UgTk1JX0lPX0FQSUM6CisJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOworCQlhdG9taWNfaW5jKCZubWlfYWN0aXZlKTsKKwl9Cit9CisKK3ZvaWQgc3RvcF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCit7CisJLyogb25seSBzdXBwb3J0IExPQ0FMIGFuZCBJTyBBUElDcyBmb3Igbm93ICovCisJaWYgKCFubWlfd2F0Y2hkb2dfYWN0aXZlKCkpCisJCXJldHVybjsKKwlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9PSAwKQorCQlyZXR1cm47CisJaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKKwkJbGFwaWNfd2F0Y2hkb2dfc3RvcCgpOworCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOworCWF0b21pY19kZWMoJm5taV9hY3RpdmUpOworfQorCisvKgorICogdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCB3aGV0aGVyIGEgQ1BVIGhhcyBhICdoYXJkIGxvY2t1cCcgcHJvYmxlbQorICogaXMgdG8gY2hlY2sgaXQncyBsb2NhbCBBUElDIHRpbWVyIElSUSBjb3VudHMuIElmIHRoZXkgYXJlIG5vdAorICogY2hhbmdpbmcgdGhlbiB0aGF0IENQVSBoYXMgc29tZSBwcm9ibGVtLgorICoKKyAqIGFzIHRoZXNlIHdhdGNoZG9nIE5NSSBJUlFzIGFyZSBnZW5lcmF0ZWQgb24gZXZlcnkgQ1BVLCB3ZSBvbmx5CisgKiBoYXZlIHRvIGNoZWNrIHRoZSBjdXJyZW50IHByb2Nlc3Nvci4KKyAqCisgKiBzaW5jZSBOTUlzIGRvbid0IGxpc3RlbiB0byBfYW55XyBsb2Nrcywgd2UgaGF2ZSB0byBiZSBleHRyZW1lbHkKKyAqIGNhcmVmdWwgbm90IHRvIHJlbHkgb24gdW5zYWZlIHZhcmlhYmxlcy4gVGhlIHByaW50ayBtaWdodCBsb2NrCisgKiB1cCB0aG91Z2gsIHNvIHdlIGhhdmUgdG8gYnJlYWsgdXAgYW55IGNvbnNvbGUgbG9ja3MgZmlyc3QgLi4uCisgKiBbd2hlbiB0aGVyZSB3aWxsIGJlIG1vcmUgdHR5LXJlbGF0ZWQgbG9ja3MsIGJyZWFrIHRoZW0gdXAgaGVyZSB0b28hXQorICovCisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVSh1bnNpZ25lZCwgbGFzdF9pcnFfc3VtKTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShsb2NhbF90LCBhbGVydF9jb3VudGVyKTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIG5taV90b3VjaCk7CisKK3ZvaWQgdG91Y2hfbm1pX3dhdGNoZG9nKHZvaWQpCit7CisJaWYgKG5taV93YXRjaGRvZ19hY3RpdmUoKSkgeworCQl1bnNpZ25lZCBjcHU7CisKKwkJLyoKKwkJICogVGVsbCBvdGhlciBDUFVzIHRvIHJlc2V0IHRoZWlyIGFsZXJ0IGNvdW50ZXJzLiBXZSBjYW5ub3QKKwkJICogZG8gaXQgb3Vyc2VsdmVzIGJlY2F1c2UgdGhlIGFsZXJ0IGNvdW50IGluY3JlYXNlIGlzIG5vdAorCQkgKiBhdG9taWMuCisJCSAqLworCQlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKKwkJCWlmIChwZXJfY3B1KG5taV90b3VjaCwgY3B1KSAhPSAxKQorCQkJCXBlcl9jcHUobm1pX3RvdWNoLCBjcHUpID0gMTsKKwkJfQorCX0KKworCS8qCisJICogVGlja2xlIHRoZSBzb2Z0bG9ja3VwIGRldGVjdG9yIHRvbzoKKwkgKi8KKwl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7Cit9CitFWFBPUlRfU1lNQk9MKHRvdWNoX25taV93YXRjaGRvZyk7CisKK25vdHJhY2UgX19rcHJvYmVzIGludAorbm1pX3dhdGNoZG9nX3RpY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIHJlYXNvbikKK3sKKwkvKgorCSAqIFNpbmNlIGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+IGlzIGFsd2F5cyBvbiB0aGUgc3RhY2ssIGFuZCB3ZQorCSAqIGFsd2F5cyBzd2l0Y2ggdGhlIHN0YWNrIE5NSS1hdG9taWNhbGx5LCBpdCdzIHNhZmUgdG8gdXNlCisJICogc21wX3Byb2Nlc3Nvcl9pZCgpLgorCSAqLworCXVuc2lnbmVkIGludCBzdW07CisJaW50IHRvdWNoZWQgPSAwOworCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJaW50IHJjID0gMDsKKworCS8qIGNoZWNrIGZvciBvdGhlciB1c2VycyBmaXJzdCAqLworCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKKwkJCT09IE5PVElGWV9TVE9QKSB7CisJCXJjID0gMTsKKwkJdG91Y2hlZCA9IDE7CisJfQorCisJc3VtID0gZ2V0X3RpbWVyX2lycXMoY3B1KTsKKworCWlmIChfX2dldF9jcHVfdmFyKG5taV90b3VjaCkpIHsKKwkJX19nZXRfY3B1X3ZhcihubWlfdG91Y2gpID0gMDsKKwkJdG91Y2hlZCA9IDE7CisJfQorCisJaWYgKGNwdV9pc3NldChjcHUsIGJhY2t0cmFjZV9tYXNrKSkgeworCQlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwkvKiBTZXJpYWxpc2UgdGhlIHByaW50a3MgKi8KKworCQlzcGluX2xvY2soJmxvY2spOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJOTUkgYmFja3RyYWNlIGZvciBjcHUgJWRcbiIsIGNwdSk7CisJCWR1bXBfc3RhY2soKTsKKwkJc3Bpbl91bmxvY2soJmxvY2spOworCQljcHVfY2xlYXIoY3B1LCBiYWNrdHJhY2VfbWFzayk7CisJfQorCisJLyogQ291bGQgY2hlY2sgb29wc19pbl9wcm9ncmVzcyBoZXJlIHRvbywgYnV0IGl0J3Mgc2FmZXIgbm90IHRvICovCisJaWYgKG1jZV9pbl9wcm9ncmVzcygpKQorCQl0b3VjaGVkID0gMTsKKworCS8qIGlmIHRoZSBub25lIG9mIHRoZSB0aW1lcnMgaXNuJ3QgZmlyaW5nLCB0aGlzIGNwdSBpc24ndCBkb2luZyBtdWNoICovCisJaWYgKCF0b3VjaGVkICYmIF9fZ2V0X2NwdV92YXIobGFzdF9pcnFfc3VtKSA9PSBzdW0pIHsKKwkJLyoKKwkJICogQXlpZWUsIGxvb2tzIGxpa2UgdGhpcyBDUFUgaXMgc3R1Y2sgLi4uCisJCSAqIHdhaXQgYSBmZXcgSVJRcyAoNSBzZWNvbmRzKSBiZWZvcmUgZG9pbmcgdGhlIG9vcHMgLi4uCisJCSAqLworCQlsb2NhbF9pbmMoJl9fZ2V0X2NwdV92YXIoYWxlcnRfY291bnRlcikpOworCQlpZiAobG9jYWxfcmVhZCgmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSkgPT0gNSAqIG5taV9oeikKKwkJCS8qCisJCQkgKiBkaWVfbm1pIHdpbGwgcmV0dXJuIE9OTFkgaWYgTk9USUZZX1NUT1AgaGFwcGVucy4uCisJCQkgKi8KKwkJCWRpZV9ubWkoIkJVRzogTk1JIFdhdGNoZG9nIGRldGVjdGVkIExPQ0tVUCIsCisJCQkJcmVncywgcGFuaWNfb25fdGltZW91dCk7CisJfSBlbHNlIHsKKwkJX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID0gc3VtOworCQlsb2NhbF9zZXQoJl9fZ2V0X2NwdV92YXIoYWxlcnRfY291bnRlciksIDApOworCX0KKworCS8qIHNlZSBpZiB0aGUgbm1pIHdhdGNoZG9nIHdlbnQgb2ZmICovCisJaWYgKCFfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpKQorCQlyZXR1cm4gcmM7CisJc3dpdGNoIChubWlfd2F0Y2hkb2cpIHsKKwljYXNlIE5NSV9MT0NBTF9BUElDOgorCQlyYyB8PSBsYXBpY193ZF9ldmVudChubWlfaHopOworCQlicmVhazsKKwljYXNlIE5NSV9JT19BUElDOgorCQkvKgorCQkgKiBkb24ndCBrbm93IGhvdyB0byBhY2N1cmF0ZWx5IGNoZWNrIGZvciB0aGlzLgorCQkgKiBqdXN0IGFzc3VtZSBpdCB3YXMgYSB3YXRjaGRvZyB0aW1lciBpbnRlcnJ1cHQKKwkJICogVGhpcyBtYXRjaGVzIHRoZSBvbGQgYmVoYXZpb3VyLgorCQkgKi8KKwkJcmMgPSAxOworCQlicmVhazsKKwl9CisJcmV0dXJuIHJjOworfQorCisjaWZkZWYgQ09ORklHX1NZU0NUTAorCitzdGF0aWMgaW50IHVua25vd25fbm1pX3BhbmljX2NhbGxiYWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQoreworCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKKwljaGFyIGJ1Zls2NF07CisKKwlzcHJpbnRmKGJ1ZiwgIk5NSSByZWNlaXZlZCBmb3IgdW5rbm93biByZWFzb24gJTAyeFxuIiwgcmVhc29uKTsKKwlkaWVfbm1pKGJ1ZiwgcmVncywgMSk7IC8qIEFsd2F5cyBwYW5pYyBoZXJlICovCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBwcm9jIGhhbmRsZXIgZm9yIC9wcm9jL3N5cy9rZXJuZWwvbm1pCisgKi8KK2ludCBwcm9jX25taV9lbmFibGVkKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkJdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5ndGgsIGxvZmZfdCAqcHBvcykKK3sKKwlpbnQgb2xkX3N0YXRlOworCisJbm1pX3dhdGNoZG9nX2VuYWJsZWQgPSAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpID4gMCkgPyAxIDogMDsKKwlvbGRfc3RhdGUgPSBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKKwlwcm9jX2RvaW50dmVjKHRhYmxlLCB3cml0ZSwgZmlsZSwgYnVmZmVyLCBsZW5ndGgsIHBwb3MpOworCWlmICghIW9sZF9zdGF0ZSA9PSAhIW5taV93YXRjaGRvZ19lbmFibGVkKQorCQlyZXR1cm4gMDsKKworCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPCAwIHx8ICFubWlfd2F0Y2hkb2dfYWN0aXZlKCkpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIk5NSSB3YXRjaGRvZyBpcyBwZXJtYW5lbnRseSBkaXNhYmxlZFxuIik7CisJCXJldHVybiAtRUlPOworCX0KKworCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpIHsKKwkJaWYgKG5taV93YXRjaGRvZ19lbmFibGVkKQorCQkJZW5hYmxlX2xhcGljX25taV93YXRjaGRvZygpOworCQllbHNlCisJCQlkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZygpOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJOTUkgd2F0Y2hkb2cgZG9lc24ndCBrbm93IHdoYXQgaGFyZHdhcmUgdG8gdG91Y2hcbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfU1lTQ1RMICovCisKK2ludCBkb19ubWlfY2FsbGJhY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBjcHUpCit7CisjaWZkZWYgQ09ORklHX1NZU0NUTAorCWlmICh1bmtub3duX25taV9wYW5pYykKKwkJcmV0dXJuIHVua25vd25fbm1pX3BhbmljX2NhbGxiYWNrKHJlZ3MsIGNwdSk7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwordm9pZCBfX3RyaWdnZXJfYWxsX2NwdV9iYWNrdHJhY2Uodm9pZCkKK3sKKwlpbnQgaTsKKworCWJhY2t0cmFjZV9tYXNrID0gY3B1X29ubGluZV9tYXA7CisJLyogV2FpdCBmb3IgdXAgdG8gMTAgc2Vjb25kcyBmb3IgYWxsIENQVXMgdG8gZG8gdGhlIGJhY2t0cmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCAxMCAqIDEwMDA7IGkrKykgeworCQlpZiAoY3B1c19lbXB0eShiYWNrdHJhY2VfbWFzaykpCisJCQlicmVhazsKKwkJbWRlbGF5KDEpOworCX0KK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9ubWlfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9ubWlfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTFiMTRiYi4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbm1pXzMyLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NzIgKzAsMCBAQAotLyoKLSAqICBOTUkgd2F0Y2hkb2cgc3VwcG9ydCBvbiBBUElDIHN5c3RlbXMKLSAqCi0gKiAgU3RhcnRlZCBieSBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KLSAqCi0gKiAgRml4ZXM6Ci0gKiAgTWlrYWVsIFBldHRlcnNzb24JOiBBTUQgSzcgc3VwcG9ydCBmb3IgbG9jYWwgQVBJQyBOTUkgd2F0Y2hkb2cuCi0gKiAgTWlrYWVsIFBldHRlcnNzb24JOiBQb3dlciBNYW5hZ2VtZW50IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBlbnRpdW0gNCBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBQYXZlbCBNYWNoZWsgYW5kCi0gKiAgTWlrYWVsIFBldHRlcnNzb24JOiBQTSBjb252ZXJ0ZWQgdG8gZHJpdmVyIG1vZGVsLiBEaXNhYmxlL2VuYWJsZSBBUEkuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbm1pLmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Ci0jaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L2tkZWJ1Zy5oPgotI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KLQotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vbm1pLmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0KLSNpbmNsdWRlICJtYWNoX3RyYXBzLmgiCi0KLWludCB1bmtub3duX25taV9wYW5pYzsKLWludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLQotc3RhdGljIGNwdW1hc2tfdCBiYWNrdHJhY2VfbWFzayA9IENQVV9NQVNLX05PTkU7Ci0KLS8qIG5taV9hY3RpdmU6Ci0gKiA+MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBhY3RpdmUsIGJ1dCBjYW4gYmUgZGlzYWJsZWQKLSAqIDwwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGhhcyBub3QgYmVlbiBzZXQgdXAsIGFuZCBjYW5ub3QKLSAqICAgICBiZSBlbmFibGVkCi0gKiAgMDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBkaXNhYmxlZCwgYnV0IGNhbiBiZSBlbmFibGVkCi0gKi8KLWF0b21pY190IG5taV9hY3RpdmUgPSBBVE9NSUNfSU5JVCgwKTsJCS8qIG9wcm9maWxlIHVzZXMgdGhpcyAqLwotCi11bnNpZ25lZCBpbnQgbm1pX3dhdGNoZG9nID0gTk1JX0RFRkFVTFQ7Ci1zdGF0aWMgdW5zaWduZWQgaW50IG5taV9oeiA9IEhaOwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc2hvcnQsIHdkX2VuYWJsZWQpOwotCi1zdGF0aWMgaW50IGVuZGZsYWcgX19pbml0ZGF0YSA9IDA7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0vKiBUaGUgcGVyZm9ybWFuY2UgY291bnRlcnMgdXNlZCBieSBOTUlfTE9DQUxfQVBJQyBkb24ndCB0cmlnZ2VyIHdoZW4KLSAqIHRoZSBDUFUgaXMgaWRsZS4gVG8gbWFrZSBzdXJlIHRoZSBOTUkgd2F0Y2hkb2cgcmVhbGx5IHRpY2tzIG9uIGFsbAotICogQ1BVcyBkdXJpbmcgdGhlIHRlc3QgbWFrZSB0aGVtIGJ1c3kuCi0gKi8KLXN0YXRpYyBfX2luaXQgdm9pZCBubWlfY3B1X2J1c3kodm9pZCAqZGF0YSkKLXsKLQlsb2NhbF9pcnFfZW5hYmxlX2luX2hhcmRpcnEoKTsKLQkvKiBJbnRlbnRpb25hbGx5IGRvbid0IHVzZSBjcHVfcmVsYXggaGVyZS4gVGhpcyBpcwotCSAgIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBwZXJmb3JtYW5jZSBjb3VudGVyIHJlYWxseSB0aWNrcywKLQkgICBldmVuIGlmIHRoZXJlIGlzIGEgc2ltdWxhdG9yIG9yIHNpbWlsYXIgdGhhdCBjYXRjaGVzIHRoZQotCSAgIHBhdXNlIGluc3RydWN0aW9uLiBPbiBhIHJlYWwgSFQgbWFjaGluZSB0aGlzIGlzIGZpbmUgYmVjYXVzZQotCSAgIGFsbCBvdGhlciBDUFVzIGFyZSBidXN5IHdpdGggInVzZWxlc3MiIGRlbGF5IGxvb3BzIGFuZCBkb24ndAotCSAgIGNhcmUgaWYgdGhleSBnZXQgc29tZXdoYXQgbGVzcyBjeWNsZXMuICovCi0Jd2hpbGUgKGVuZGZsYWcgPT0gMCkKLQkJbWIoKTsKLX0KLSNlbmRpZgotCi1pbnQgX19pbml0IGNoZWNrX25taV93YXRjaGRvZyh2b2lkKQotewotCXVuc2lnbmVkIGludCAqcHJldl9ubWlfY291bnQ7Ci0JaW50IGNwdTsKLQotCWlmICgobm1pX3dhdGNoZG9nID09IE5NSV9OT05FKSB8fCAobm1pX3dhdGNoZG9nID09IE5NSV9ESVNBQkxFRCkpCi0JCXJldHVybiAwOwotCi0JaWYgKCFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpCi0JCXJldHVybiAwOwotCi0JcHJldl9ubWlfY291bnQgPSBrbWFsbG9jKE5SX0NQVVMgKiBzaXplb2YoaW50KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFwcmV2X25taV9jb3VudCkKLQkJZ290byBlcnJvcjsKLQotCXByaW50ayhLRVJOX0lORk8gIlRlc3RpbmcgTk1JIHdhdGNoZG9nIC4uLiAiKTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlzbXBfY2FsbF9mdW5jdGlvbihubWlfY3B1X2J1c3ksICh2b2lkICopJmVuZGZsYWcsIDAsIDApOwotI2VuZGlmCi0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlwcmV2X25taV9jb3VudFtjcHVdID0gbm1pX2NvdW50KGNwdSk7Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotCW1kZWxheSgoMjAqMTAwMCkvbm1pX2h6KTsgLy8gd2FpdCAyMCB0aWNrcwotCi0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewotI2lmZGVmIENPTkZJR19TTVAKLQkJLyogQ2hlY2sgY3B1X2NhbGxpbl9tYXAgaGVyZSBiZWNhdXNlIHRoYXQgaXMgc2V0Ci0JCSAgIGFmdGVyIHRoZSB0aW1lciBpcyBzdGFydGVkLiAqLwotCQlpZiAoIWNwdV9pc3NldChjcHUsIGNwdV9jYWxsaW5fbWFwKSkKLQkJCWNvbnRpbnVlOwotI2VuZGlmCi0JCWlmICghcGVyX2NwdSh3ZF9lbmFibGVkLCBjcHUpKQotCQkJY29udGludWU7Ci0JCWlmIChubWlfY291bnQoY3B1KSAtIHByZXZfbm1pX2NvdW50W2NwdV0gPD0gNSkgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiV0FSTklORzogQ1BVIyVkOiBOTUkgIgotCQkJCSJhcHBlYXJzIHRvIGJlIHN0dWNrICglZC0+JWQpIVxuIiwKLQkJCQljcHUsCi0JCQkJcHJldl9ubWlfY291bnRbY3B1XSwKLQkJCQlubWlfY291bnQoY3B1KSk7Ci0JCQlwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkgPSAwOwotCQkJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci0JCX0KLQl9Ci0JZW5kZmxhZyA9IDE7Ci0JaWYgKCFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpIHsKLQkJa2ZyZWUocHJldl9ubWlfY291bnQpOwotCQlhdG9taWNfc2V0KCZubWlfYWN0aXZlLCAtMSk7Ci0JCWdvdG8gZXJyb3I7Ci0JfQotCXByaW50aygiT0suXG4iKTsKLQotCS8qIG5vdyB0aGF0IHdlIGtub3cgaXQgd29ya3Mgd2UgY2FuIHJlZHVjZSBOTUkgZnJlcXVlbmN5IHRvCi0JICAgc29tZXRoaW5nIG1vcmUgcmVhc29uYWJsZTsgbWFrZXMgYSBkaWZmZXJlbmNlIGluIHNvbWUgY29uZmlncyAqLwotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpCi0JCW5taV9oeiA9IGxhcGljX2FkanVzdF9ubWlfaHooMSk7Ci0KLQlrZnJlZShwcmV2X25taV9jb3VudCk7Ci0JcmV0dXJuIDA7Ci1lcnJvcjoKLQl0aW1lcl9hY2sgPSAhY3B1X2hhc190c2M7Ci0KLQlyZXR1cm4gLTE7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX25taV93YXRjaGRvZyhjaGFyICpzdHIpCi17Ci0JaW50IG5taTsKLQotCWdldF9vcHRpb24oJnN0ciwgJm5taSk7Ci0KLQlpZiAoKG5taSA+PSBOTUlfSU5WQUxJRCkgfHwgKG5taSA8IE5NSV9OT05FKSkKLQkJcmV0dXJuIDA7Ci0KLQlubWlfd2F0Y2hkb2cgPSBubWk7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoIm5taV93YXRjaGRvZz0iLCBzZXR1cF9ubWlfd2F0Y2hkb2cpOwotCi0KLS8qIFN1c3BlbmQvcmVzdW1lIHN1cHBvcnQgKi8KLQotI2lmZGVmIENPTkZJR19QTQotCi1zdGF0aWMgaW50IG5taV9wbV9hY3RpdmU7IC8qIG5taV9hY3RpdmUgYmVmb3JlIHN1c3BlbmQgKi8KLQotc3RhdGljIGludCBsYXBpY19ubWlfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0JLyogb25seSBDUFUwIGdvZXMgaGVyZSwgb3RoZXIgQ1BVcyBzaG91bGQgYmUgb2ZmbGluZSAqLwotCW5taV9wbV9hY3RpdmUgPSBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSk7Ci0Jc3RvcF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKLQlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGxhcGljX25taV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0JaWYgKG5taV9wbV9hY3RpdmUgPiAwKSB7Ci0JCXNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3Mgbm1pX3N5c2NsYXNzID0gewotCS5uYW1lCQk9ICJsYXBpY19ubWkiLAotCS5yZXN1bWUJCT0gbGFwaWNfbm1pX3Jlc3VtZSwKLQkuc3VzcGVuZAk9IGxhcGljX25taV9zdXNwZW5kLAotfTsKLQotc3RhdGljIHN0cnVjdCBzeXNfZGV2aWNlIGRldmljZV9sYXBpY19ubWkgPSB7Ci0JLmlkCT0gMCwKLQkuY2xzCT0gJm5taV9zeXNjbGFzcywKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGluaXRfbGFwaWNfbm1pX3N5c2ZzKHZvaWQpCi17Ci0JaW50IGVycm9yOwotCi0JLyogc2hvdWxkIHJlYWxseSBiZSBhIEJVR19PTiBidXQgYi9jIHRoaXMgaXMgYW4KLQkgKiBpbml0IGNhbGwsIGl0IGp1c3QgZG9lc24ndCB3b3JrLiAgLWRjegotCSAqLwotCWlmIChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpCi0JCXJldHVybiAwOwotCi0JaWYgKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA8IDApCi0JCXJldHVybiAwOwotCi0JZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJm5taV9zeXNjbGFzcyk7Ci0JaWYgKCFlcnJvcikKLQkJZXJyb3IgPSBzeXNkZXZfcmVnaXN0ZXIoJmRldmljZV9sYXBpY19ubWkpOwotCXJldHVybiBlcnJvcjsKLX0KLS8qIG11c3QgY29tZSBhZnRlciB0aGUgbG9jYWwgQVBJQydzIGRldmljZV9pbml0Y2FsbCgpICovCi1sYXRlX2luaXRjYWxsKGluaXRfbGFwaWNfbm1pX3N5c2ZzKTsKLQotI2VuZGlmCS8qIENPTkZJR19QTSAqLwotCi1zdGF0aWMgdm9pZCBfX2FjcGlfbm1pX2VuYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlX2Fyb3VuZChBUElDX0xWVDAsIEFQSUNfRE1fTk1JKTsKLX0KLQotLyoKLSAqIEVuYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2VuYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2VuYWJsZSwgTlVMTCwgMCwgMSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZGlzYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkgfCBBUElDX0xWVF9NQVNLRUQpOwotfQotCi0vKgotICogRGlzYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2Rpc2FibGUodm9pZCkKLXsKLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKLQkJb25fZWFjaF9jcHUoX19hY3BpX25taV9kaXNhYmxlLCBOVUxMLCAwLCAxKTsKLX0KLQotdm9pZCBzZXR1cF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCi0JCXJldHVybjsKLQotCS8qIGNoZWFwIGhhY2sgdG8gc3VwcG9ydCBzdXNwZW5kL3Jlc3VtZSAqLwotCS8qIGlmIGNwdTAgaXMgbm90IGFjdGl2ZSBuZWl0aGVyIHNob3VsZCB0aGUgb3RoZXIgY3B1cyAqLwotCWlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpICE9IDApICYmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPD0gMCkpCi0JCXJldHVybjsKLQotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7IC8qIGVuYWJsZSBpdCBiZWZvcmUgdG8gYXZvaWQgcmFjZSB3aXRoIGhhbmRsZXIgKi8KLQkJaWYgKGxhcGljX3dhdGNoZG9nX2luaXQobm1pX2h6KSA8IDApIHsKLQkJCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOwotCQkJcmV0dXJuOwotCQl9Ci0JCS8qIEZBTEwgVEhST1VHSCAqLwotCWNhc2UgTk1JX0lPX0FQSUM6Ci0JCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAxOwotCQlhdG9taWNfaW5jKCZubWlfYWN0aXZlKTsKLQl9Ci19Ci0KLXZvaWQgc3RvcF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JLyogb25seSBzdXBwb3J0IExPQ0FMIGFuZCBJTyBBUElDcyBmb3Igbm93ICovCi0JaWYgKChubWlfd2F0Y2hkb2cgIT0gTk1JX0xPQ0FMX0FQSUMpICYmCi0JICAgIChubWlfd2F0Y2hkb2cgIT0gTk1JX0lPX0FQSUMpKQotCSAgICAJcmV0dXJuOwotCWlmIChfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID09IDApCi0JCXJldHVybjsKLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9MT0NBTF9BUElDKQotCQlsYXBpY193YXRjaGRvZ19zdG9wKCk7Ci0JX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDA7Ci0JYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci19Ci0KLS8qCi0gKiB0aGUgYmVzdCB3YXkgdG8gZGV0ZWN0IHdoZXRoZXIgYSBDUFUgaGFzIGEgJ2hhcmQgbG9ja3VwJyBwcm9ibGVtCi0gKiBpcyB0byBjaGVjayBpdCdzIGxvY2FsIEFQSUMgdGltZXIgSVJRIGNvdW50cy4gSWYgdGhleSBhcmUgbm90Ci0gKiBjaGFuZ2luZyB0aGVuIHRoYXQgQ1BVIGhhcyBzb21lIHByb2JsZW0uCi0gKgotICogYXMgdGhlc2Ugd2F0Y2hkb2cgTk1JIElSUXMgYXJlIGdlbmVyYXRlZCBvbiBldmVyeSBDUFUsIHdlIG9ubHkKLSAqIGhhdmUgdG8gY2hlY2sgdGhlIGN1cnJlbnQgcHJvY2Vzc29yLgotICoKLSAqIHNpbmNlIE5NSXMgZG9uJ3QgbGlzdGVuIHRvIF9hbnlfIGxvY2tzLCB3ZSBoYXZlIHRvIGJlIGV4dHJlbWVseQotICogY2FyZWZ1bCBub3QgdG8gcmVseSBvbiB1bnNhZmUgdmFyaWFibGVzLiBUaGUgcHJpbnRrIG1pZ2h0IGxvY2sKLSAqIHVwIHRob3VnaCwgc28gd2UgaGF2ZSB0byBicmVhayB1cCBhbnkgY29uc29sZSBsb2NrcyBmaXJzdCAuLi4KLSAqIFt3aGVuIHRoZXJlIHdpbGwgYmUgbW9yZSB0dHktcmVsYXRlZCBsb2NrcywgYnJlYWsgdGhlbSB1cAotICogIGhlcmUgdG9vIV0KLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgaW50Ci0JbGFzdF9pcnFfc3VtcyBbTlJfQ1BVU10sCi0JYWxlcnRfY291bnRlciBbTlJfQ1BVU107Ci0KLXZvaWQgdG91Y2hfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JaWYgKG5taV93YXRjaGRvZyA+IDApIHsKLQkJdW5zaWduZWQgY3B1OwotCi0JCS8qCi0JCSAqIEp1c3QgcmVzZXQgdGhlIGFsZXJ0IGNvdW50ZXJzLCAob3RoZXIgQ1BVcyBtaWdodCBiZQotCQkgKiBzcGlubmluZyBvbiBsb2NrcyB3ZSBob2xkKToKLQkJICovCi0JCWZvcl9lYWNoX3ByZXNlbnRfY3B1KGNwdSkgewotCQkJaWYgKGFsZXJ0X2NvdW50ZXJbY3B1XSkKLQkJCQlhbGVydF9jb3VudGVyW2NwdV0gPSAwOwotCQl9Ci0JfQotCi0JLyoKLQkgKiBUaWNrbGUgdGhlIHNvZnRsb2NrdXAgZGV0ZWN0b3IgdG9vOgotCSAqLwotCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKLX0KLUVYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKLQotZXh0ZXJuIHZvaWQgZGllX25taShzdHJ1Y3QgcHRfcmVncyAqLCBjb25zdCBjaGFyICptc2cpOwotCi1ub3RyYWNlIF9fa3Byb2JlcyBpbnQKLW5taV93YXRjaGRvZ190aWNrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCByZWFzb24pCi17Ci0KLQkvKgotCSAqIFNpbmNlIGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+IGlzIGFsd2F5cyBvbiB0aGUgc3RhY2ssIGFuZCB3ZQotCSAqIGFsd2F5cyBzd2l0Y2ggdGhlIHN0YWNrIE5NSS1hdG9taWNhbGx5LCBpdCdzIHNhZmUgdG8gdXNlCi0JICogc21wX3Byb2Nlc3Nvcl9pZCgpLgotCSAqLwotCXVuc2lnbmVkIGludCBzdW07Ci0JaW50IHRvdWNoZWQgPSAwOwotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IHJjID0gMDsKLQotCS8qIGNoZWNrIGZvciBvdGhlciB1c2VycyBmaXJzdCAqLwotCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCT09IE5PVElGWV9TVE9QKSB7Ci0JCXJjID0gMTsKLQkJdG91Y2hlZCA9IDE7Ci0JfQotCi0JaWYgKGNwdV9pc3NldChjcHUsIGJhY2t0cmFjZV9tYXNrKSkgewotCQlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwkvKiBTZXJpYWxpc2UgdGhlIHByaW50a3MgKi8KLQotCQlzcGluX2xvY2soJmxvY2spOwotCQlwcmludGsoIk5NSSBiYWNrdHJhY2UgZm9yIGNwdSAlZFxuIiwgY3B1KTsKLQkJZHVtcF9zdGFjaygpOwotCQlzcGluX3VubG9jaygmbG9jayk7Ci0JCWNwdV9jbGVhcihjcHUsIGJhY2t0cmFjZV9tYXNrKTsKLQl9Ci0KLQkvKgotCSAqIFRha2UgdGhlIGxvY2FsIGFwaWMgdGltZXIgYW5kIFBJVC9IUEVUIGludG8gYWNjb3VudC4gV2UgZG9uJ3QKLQkgKiBrbm93IHdoaWNoIG9uZSBpcyBhY3RpdmUsIHdoZW4gd2UgaGF2ZSBoaWdocmVzL2R5bnRpY2sgb24KLQkgKi8KLQlzdW0gPSBwZXJfY3B1KGlycV9zdGF0LCBjcHUpLmFwaWNfdGltZXJfaXJxcyArCi0JCXBlcl9jcHUoaXJxX3N0YXQsIGNwdSkuaXJxMF9pcnFzOwotCi0JLyogaWYgdGhlIG5vbmUgb2YgdGhlIHRpbWVycyBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KLQlpZiAoIXRvdWNoZWQgJiYgbGFzdF9pcnFfc3Vtc1tjcHVdID09IHN1bSkgewotCQkvKgotCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KLQkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KLQkJICovCi0JCWFsZXJ0X2NvdW50ZXJbY3B1XSsrOwotCQlpZiAoYWxlcnRfY291bnRlcltjcHVdID09IDUqbm1pX2h6KQotCQkJLyoKLQkJCSAqIGRpZV9ubWkgd2lsbCByZXR1cm4gT05MWSBpZiBOT1RJRllfU1RPUCBoYXBwZW5zLi4KLQkJCSAqLwotCQkJZGllX25taShyZWdzLCAiQlVHOiBOTUkgV2F0Y2hkb2cgZGV0ZWN0ZWQgTE9DS1VQIik7Ci0JfSBlbHNlIHsKLQkJbGFzdF9pcnFfc3Vtc1tjcHVdID0gc3VtOwotCQlhbGVydF9jb3VudGVyW2NwdV0gPSAwOwotCX0KLQkvKiBzZWUgaWYgdGhlIG5taSB3YXRjaGRvZyB3ZW50IG9mZiAqLwotCWlmICghX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuIHJjOwotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJcmMgfD0gbGFwaWNfd2RfZXZlbnQobm1pX2h6KTsKLQkJYnJlYWs7Ci0JY2FzZSBOTUlfSU9fQVBJQzoKLQkJLyogZG9uJ3Qga25vdyBob3cgdG8gYWNjdXJhdGVseSBjaGVjayBmb3IgdGhpcy4KLQkJICoganVzdCBhc3N1bWUgaXQgd2FzIGEgd2F0Y2hkb2cgdGltZXIgaW50ZXJydXB0Ci0JCSAqIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW91ci4KLQkJICovCi0JCXJjID0gMTsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiByYzsKLX0KLQotI2lmZGVmIENPTkZJR19TWVNDVEwKLQotc3RhdGljIGludCB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7Ci0JY2hhciBidWZbNjRdOwotCi0Jc3ByaW50ZihidWYsICJOTUkgcmVjZWl2ZWQgZm9yIHVua25vd24gcmVhc29uICUwMnhcbiIsIHJlYXNvbik7Ci0JZGllX25taShyZWdzLCBidWYpOwotCXJldHVybiAwOwotfQotCi0vKgotICogcHJvYyBoYW5kbGVyIGZvciAvcHJvYy9zeXMva2VybmVsL25taQotICovCi1pbnQgcHJvY19ubWlfZW5hYmxlZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJCXZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCi17Ci0JaW50IG9sZF9zdGF0ZTsKLQotCW5taV93YXRjaGRvZ19lbmFibGVkID0gKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA+IDApID8gMSA6IDA7Ci0Jb2xkX3N0YXRlID0gbm1pX3dhdGNoZG9nX2VuYWJsZWQ7Ci0JcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbGUsIGJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKLQlpZiAoISFvbGRfc3RhdGUgPT0gISFubWlfd2F0Y2hkb2dfZW5hYmxlZCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCB8fCBubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HICJOTUkgd2F0Y2hkb2cgaXMgcGVybWFuZW50bHkgZGlzYWJsZWRcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9ERUZBVUxUKSB7Ci0JCWlmIChsYXBpY193YXRjaGRvZ19vaygpKQotCQkJbm1pX3dhdGNoZG9nID0gTk1JX0xPQ0FMX0FQSUM7Ci0JCWVsc2UKLQkJCW5taV93YXRjaGRvZyA9IE5NSV9JT19BUElDOwotCX0KLQotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpIHsKLQkJaWYgKG5taV93YXRjaGRvZ19lbmFibGVkKQotCQkJZW5hYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCQllbHNlCi0JCQlkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCX0gZWxzZSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HCi0JCQkiTk1JIHdhdGNoZG9nIGRvZXNuJ3Qga25vdyB3aGF0IGhhcmR3YXJlIHRvIHRvdWNoXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLSNpZmRlZiBDT05GSUdfU1lTQ1RMCi0JaWYgKHVua25vd25fbm1pX3BhbmljKQotCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKLSNlbmRpZgotCXJldHVybiAwOwotfQotCi12b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQotewotCWludCBpOwotCi0JYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKLQkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7Ci0JCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKLQkJCWJyZWFrOwotCQltZGVsYXkoMSk7Ci0JfQotfQotCi1FWFBPUlRfU1lNQk9MKG5taV9hY3RpdmUpOwotRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL25taV82NC5jIGIvYXJjaC94ODYva2VybmVsL25taV82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTI5ZGVkLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9ubWlfNjQuYworKysgL2Rldi9udWxsCkBAIC0xLDQ4MiArMCwwIEBACi0vKgotICogIE5NSSB3YXRjaGRvZyBzdXBwb3J0IG9uIEFQSUMgc3lzdGVtcwotICoKLSAqICBTdGFydGVkIGJ5IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgotICoKLSAqICBGaXhlczoKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IEFNRCBLNyBzdXBwb3J0IGZvciBsb2NhbCBBUElDIE5NSSB3YXRjaGRvZy4KLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBvd2VyIE1hbmFnZW1lbnQgZm9yIGxvY2FsIEFQSUMgTk1JIHdhdGNoZG9nLgotICogIFBhdmVsIE1hY2hlayBhbmQKLSAqICBNaWthZWwgUGV0dGVyc3Nvbgk6IFBNIGNvbnZlcnRlZCB0byBkcml2ZXIgbW9kZWwuIERpc2FibGUvZW5hYmxlIEFQSS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbm1pLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgotI2luY2x1ZGUgPGxpbnV4L2twcm9iZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci0jaW5jbHVkZSA8bGludXgva2RlYnVnLmg+Ci0KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL25taS5oPgotI2luY2x1ZGUgPGFzbS9wcm90by5oPgotI2luY2x1ZGUgPGFzbS9tY2UuaD4KLQotI2luY2x1ZGUgPG1hY2hfdHJhcHMuaD4KLQotaW50IHVua25vd25fbm1pX3BhbmljOwotaW50IG5taV93YXRjaGRvZ19lbmFibGVkOwotaW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKLQotc3RhdGljIGNwdW1hc2tfdCBiYWNrdHJhY2VfbWFzayA9IENQVV9NQVNLX05PTkU7Ci0KLS8qIG5taV9hY3RpdmU6Ci0gKiA+MDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBhY3RpdmUsIGJ1dCBjYW4gYmUgZGlzYWJsZWQKLSAqIDwwOiB0aGUgbGFwaWMgTk1JIHdhdGNoZG9nIGhhcyBub3QgYmVlbiBzZXQgdXAsIGFuZCBjYW5ub3QKLSAqICAgICBiZSBlbmFibGVkCi0gKiAgMDogdGhlIGxhcGljIE5NSSB3YXRjaGRvZyBpcyBkaXNhYmxlZCwgYnV0IGNhbiBiZSBlbmFibGVkCi0gKi8KLWF0b21pY190IG5taV9hY3RpdmUgPSBBVE9NSUNfSU5JVCgwKTsJCS8qIG9wcm9maWxlIHVzZXMgdGhpcyAqLwotc3RhdGljIGludCBwYW5pY19vbl90aW1lb3V0OwotCi11bnNpZ25lZCBpbnQgbm1pX3dhdGNoZG9nID0gTk1JX0RFRkFVTFQ7Ci1zdGF0aWMgdW5zaWduZWQgaW50IG5taV9oeiA9IEhaOwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc2hvcnQsIHdkX2VuYWJsZWQpOwotCi0vKiBSdW4gYWZ0ZXIgY29tbWFuZCBsaW5lIGFuZCBjcHVfaW5pdCBpbml0LCBidXQgYmVmb3JlIGFsbCBvdGhlciBjaGVja3MgKi8KLXZvaWQgbm1pX3dhdGNoZG9nX2RlZmF1bHQodm9pZCkKLXsKLQlpZiAobm1pX3dhdGNoZG9nICE9IE5NSV9ERUZBVUxUKQotCQlyZXR1cm47Ci0Jbm1pX3dhdGNoZG9nID0gTk1JX05PTkU7Ci19Ci0KLXN0YXRpYyBpbnQgZW5kZmxhZyBfX2luaXRkYXRhID0gMDsKLQotI2lmZGVmIENPTkZJR19TTVAKLS8qIFRoZSBwZXJmb3JtYW5jZSBjb3VudGVycyB1c2VkIGJ5IE5NSV9MT0NBTF9BUElDIGRvbid0IHRyaWdnZXIgd2hlbgotICogdGhlIENQVSBpcyBpZGxlLiBUbyBtYWtlIHN1cmUgdGhlIE5NSSB3YXRjaGRvZyByZWFsbHkgdGlja3Mgb24gYWxsCi0gKiBDUFVzIGR1cmluZyB0aGUgdGVzdCBtYWtlIHRoZW0gYnVzeS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5taV9jcHVfYnVzeSh2b2lkICpkYXRhKQotewotCWxvY2FsX2lycV9lbmFibGVfaW5faGFyZGlycSgpOwotCS8qIEludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGNwdV9yZWxheCBoZXJlLiBUaGlzIGlzCi0JICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgcmVhbGx5IHRpY2tzLAotCSAgIGV2ZW4gaWYgdGhlcmUgaXMgYSBzaW11bGF0b3Igb3Igc2ltaWxhciB0aGF0IGNhdGNoZXMgdGhlCi0JICAgcGF1c2UgaW5zdHJ1Y3Rpb24uIE9uIGEgcmVhbCBIVCBtYWNoaW5lIHRoaXMgaXMgZmluZSBiZWNhdXNlCi0JICAgYWxsIG90aGVyIENQVXMgYXJlIGJ1c3kgd2l0aCAidXNlbGVzcyIgZGVsYXkgbG9vcHMgYW5kIGRvbid0Ci0JICAgY2FyZSBpZiB0aGV5IGdldCBzb21ld2hhdCBsZXNzIGN5Y2xlcy4gKi8KLQl3aGlsZSAoZW5kZmxhZyA9PSAwKQotCQltYigpOwotfQotI2VuZGlmCi0KLWludCBfX2luaXQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpCi17Ci0JaW50ICpwcmV2X25taV9jb3VudDsKLQlpbnQgY3B1OwotCi0JaWYgKChubWlfd2F0Y2hkb2cgPT0gTk1JX05PTkUpIHx8IChubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIWF0b21pY19yZWFkKCZubWlfYWN0aXZlKSkKLQkJcmV0dXJuIDA7Ci0KLQlwcmV2X25taV9jb3VudCA9IGttYWxsb2MoTlJfQ1BVUyAqIHNpemVvZihpbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIXByZXZfbm1pX2NvdW50KQotCQlyZXR1cm4gLTE7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJUZXN0aW5nIE5NSSB3YXRjaGRvZyAuLi4gIik7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJc21wX2NhbGxfZnVuY3Rpb24obm1pX2NwdV9idXN5LCAodm9pZCAqKSZlbmRmbGFnLCAwLCAwKTsKLSNlbmRpZgotCi0JZm9yIChjcHUgPSAwOyBjcHUgPCBOUl9DUFVTOyBjcHUrKykKLQkJcHJldl9ubWlfY291bnRbY3B1XSA9IGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQ7Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotCW1kZWxheSgoMjAqMTAwMCkvbm1pX2h6KTsgLy8gd2FpdCAyMCB0aWNrcwotCi0JZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKLQkJaWYgKCFwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkpCi0JCQljb250aW51ZTsKLQkJaWYgKGNwdV9wZGEoY3B1KS0+X19ubWlfY291bnQgLSBwcmV2X25taV9jb3VudFtjcHVdIDw9IDUpIHsKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIldBUk5JTkc6IENQVSMlZDogTk1JICIKLQkJCSAgICAgICAiYXBwZWFycyB0byBiZSBzdHVjayAoJWQtPiVkKSFcbiIsCi0JCQkJY3B1LAotCQkJCXByZXZfbm1pX2NvdW50W2NwdV0sCi0JCQkJY3B1X3BkYShjcHUpLT5fX25taV9jb3VudCk7Ci0JCQlwZXJfY3B1KHdkX2VuYWJsZWQsIGNwdSkgPSAwOwotCQkJYXRvbWljX2RlYygmbm1pX2FjdGl2ZSk7Ci0JCX0KLQl9Ci0JZW5kZmxhZyA9IDE7Ci0JaWYgKCFhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkpIHsKLQkJa2ZyZWUocHJldl9ubWlfY291bnQpOwotCQlhdG9taWNfc2V0KCZubWlfYWN0aXZlLCAtMSk7Ci0JCXJldHVybiAtMTsKLQl9Ci0JcHJpbnRrKCJPSy5cbiIpOwotCi0JLyogbm93IHRoYXQgd2Uga25vdyBpdCB3b3JrcyB3ZSBjYW4gcmVkdWNlIE5NSSBmcmVxdWVuY3kgdG8KLQkgICBzb21ldGhpbmcgbW9yZSByZWFzb25hYmxlOyBtYWtlcyBhIGRpZmZlcmVuY2UgaW4gc29tZSBjb25maWdzICovCi0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJbm1pX2h6ID0gbGFwaWNfYWRqdXN0X25taV9oeigxKTsKLQotCWtmcmVlKHByZXZfbm1pX2NvdW50KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBfX2luaXQgc2V0dXBfbm1pX3dhdGNoZG9nKGNoYXIgKnN0cikKLXsKLQlpbnQgbm1pOwotCi0JaWYgKCFzdHJuY21wKHN0ciwicGFuaWMiLDUpKSB7Ci0JCXBhbmljX29uX3RpbWVvdXQgPSAxOwotCQlzdHIgPSBzdHJjaHIoc3RyLCAnLCcpOwotCQlpZiAoIXN0cikKLQkJCXJldHVybiAxOwotCQkrK3N0cjsKLQl9Ci0KLQlnZXRfb3B0aW9uKCZzdHIsICZubWkpOwotCi0JaWYgKChubWkgPj0gTk1JX0lOVkFMSUQpIHx8IChubWkgPCBOTUlfTk9ORSkpCi0JCXJldHVybiAwOwotCi0Jbm1pX3dhdGNoZG9nID0gbm1pOwotCXJldHVybiAxOwotfQotCi1fX3NldHVwKCJubWlfd2F0Y2hkb2c9Iiwgc2V0dXBfbm1pX3dhdGNoZG9nKTsKLQotI2lmZGVmIENPTkZJR19QTQotCi1zdGF0aWMgaW50IG5taV9wbV9hY3RpdmU7IC8qIG5taV9hY3RpdmUgYmVmb3JlIHN1c3BlbmQgKi8KLQotc3RhdGljIGludCBsYXBpY19ubWlfc3VzcGVuZChzdHJ1Y3Qgc3lzX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0JLyogb25seSBDUFUwIGdvZXMgaGVyZSwgb3RoZXIgQ1BVcyBzaG91bGQgYmUgb2ZmbGluZSAqLwotCW5taV9wbV9hY3RpdmUgPSBhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSk7Ci0Jc3RvcF9hcGljX25taV93YXRjaGRvZyhOVUxMKTsKLQlCVUdfT04oYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICE9IDApOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGxhcGljX25taV9yZXN1bWUoc3RydWN0IHN5c19kZXZpY2UgKmRldikKLXsKLQkvKiBvbmx5IENQVTAgZ29lcyBoZXJlLCBvdGhlciBDUFVzIHNob3VsZCBiZSBvZmZsaW5lICovCi0JaWYgKG5taV9wbV9hY3RpdmUgPiAwKSB7Ci0JCXNldHVwX2FwaWNfbm1pX3dhdGNoZG9nKE5VTEwpOwotCQl0b3VjaF9ubWlfd2F0Y2hkb2coKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzZGV2X2NsYXNzIG5taV9zeXNjbGFzcyA9IHsKLQkubmFtZQkJPSAibGFwaWNfbm1pIiwKLQkucmVzdW1lCQk9IGxhcGljX25taV9yZXN1bWUsCi0JLnN1c3BlbmQJPSBsYXBpY19ubWlfc3VzcGVuZCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc3lzX2RldmljZSBkZXZpY2VfbGFwaWNfbm1pID0gewotCS5pZAk9IDAsCi0JLmNscwk9ICZubWlfc3lzY2xhc3MsCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCBpbml0X2xhcGljX25taV9zeXNmcyh2b2lkKQotewotCWludCBlcnJvcjsKLQotCS8qIHNob3VsZCByZWFsbHkgYmUgYSBCVUdfT04gYnV0IGIvYyB0aGlzIGlzIGFuCi0JICogaW5pdCBjYWxsLCBpdCBqdXN0IGRvZXNuJ3Qgd29yay4gIC1kY3oKLQkgKi8KLQlpZiAobm1pX3dhdGNoZG9nICE9IE5NSV9MT0NBTF9BUElDKQotCQlyZXR1cm4gMDsKLQotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPCAwKQotCQlyZXR1cm4gMDsKLQotCWVycm9yID0gc3lzZGV2X2NsYXNzX3JlZ2lzdGVyKCZubWlfc3lzY2xhc3MpOwotCWlmICghZXJyb3IpCi0JCWVycm9yID0gc3lzZGV2X3JlZ2lzdGVyKCZkZXZpY2VfbGFwaWNfbm1pKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0vKiBtdXN0IGNvbWUgYWZ0ZXIgdGhlIGxvY2FsIEFQSUMncyBkZXZpY2VfaW5pdGNhbGwoKSAqLwotbGF0ZV9pbml0Y2FsbChpbml0X2xhcGljX25taV9zeXNmcyk7Ci0KLSNlbmRpZgkvKiBDT05GSUdfUE0gKi8KLQotc3RhdGljIHZvaWQgX19hY3BpX25taV9lbmFibGUodm9pZCAqX191bnVzZWQpCi17Ci0JYXBpY193cml0ZShBUElDX0xWVDAsIEFQSUNfRE1fTk1JKTsKLX0KLQotLyoKLSAqIEVuYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2VuYWJsZSh2b2lkKQotewotCWlmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgJiYgbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQotCQlvbl9lYWNoX2NwdShfX2FjcGlfbm1pX2VuYWJsZSwgTlVMTCwgMCwgMSk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fYWNwaV9ubWlfZGlzYWJsZSh2b2lkICpfX3VudXNlZCkKLXsKLQlhcGljX3dyaXRlKEFQSUNfTFZUMCwgQVBJQ19ETV9OTUkgfCBBUElDX0xWVF9NQVNLRUQpOwotfQotCi0vKgotICogRGlzYWJsZSB0aW1lciBiYXNlZCBOTUlzIG9uIGFsbCBDUFVzOgotICovCi12b2lkIGFjcGlfbm1pX2Rpc2FibGUodm9pZCkKLXsKLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpICYmIG5taV93YXRjaGRvZyA9PSBOTUlfSU9fQVBJQykKLQkJb25fZWFjaF9jcHUoX19hY3BpX25taV9kaXNhYmxlLCBOVUxMLCAwLCAxKTsKLX0KLQotdm9pZCBzZXR1cF9hcGljX25taV93YXRjaGRvZyh2b2lkICp1bnVzZWQpCi17Ci0JaWYgKF9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkpCi0JCXJldHVybjsKLQotCS8qIGNoZWFwIGhhY2sgdG8gc3VwcG9ydCBzdXNwZW5kL3Jlc3VtZSAqLwotCS8qIGlmIGNwdTAgaXMgbm90IGFjdGl2ZSBuZWl0aGVyIHNob3VsZCB0aGUgb3RoZXIgY3B1cyAqLwotCWlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpICE9IDApICYmIChhdG9taWNfcmVhZCgmbm1pX2FjdGl2ZSkgPD0gMCkpCi0JCXJldHVybjsKLQotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9IDE7Ci0JCWlmIChsYXBpY193YXRjaGRvZ19pbml0KG5taV9oeikgPCAwKSB7Ci0JCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMDsKLQkJCXJldHVybjsKLQkJfQotCQkvKiBGQUxMIFRIUk9VR0ggKi8KLQljYXNlIE5NSV9JT19BUElDOgotCQlfX2dldF9jcHVfdmFyKHdkX2VuYWJsZWQpID0gMTsKLQkJYXRvbWljX2luYygmbm1pX2FjdGl2ZSk7Ci0JfQotfQotCi12b2lkIHN0b3BfYXBpY19ubWlfd2F0Y2hkb2codm9pZCAqdW51c2VkKQotewotCS8qIG9ubHkgc3VwcG9ydCBMT0NBTCBhbmQgSU8gQVBJQ3MgZm9yIG5vdyAqLwotCWlmICgobm1pX3dhdGNoZG9nICE9IE5NSV9MT0NBTF9BUElDKSAmJgotCSAgICAobm1pX3dhdGNoZG9nICE9IE5NSV9JT19BUElDKSkKLQkgICAgCXJldHVybjsKLQlpZiAoX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSA9PSAwKQotCQlyZXR1cm47Ci0JaWYgKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQykKLQkJbGFwaWNfd2F0Y2hkb2dfc3RvcCgpOwotCV9fZ2V0X2NwdV92YXIod2RfZW5hYmxlZCkgPSAwOwotCWF0b21pY19kZWMoJm5taV9hY3RpdmUpOwotfQotCi0vKgotICogdGhlIGJlc3Qgd2F5IHRvIGRldGVjdCB3aGV0aGVyIGEgQ1BVIGhhcyBhICdoYXJkIGxvY2t1cCcgcHJvYmxlbQotICogaXMgdG8gY2hlY2sgaXQncyBsb2NhbCBBUElDIHRpbWVyIElSUSBjb3VudHMuIElmIHRoZXkgYXJlIG5vdAotICogY2hhbmdpbmcgdGhlbiB0aGF0IENQVSBoYXMgc29tZSBwcm9ibGVtLgotICoKLSAqIGFzIHRoZXNlIHdhdGNoZG9nIE5NSSBJUlFzIGFyZSBnZW5lcmF0ZWQgb24gZXZlcnkgQ1BVLCB3ZSBvbmx5Ci0gKiBoYXZlIHRvIGNoZWNrIHRoZSBjdXJyZW50IHByb2Nlc3Nvci4KLSAqLwotCi1zdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQsIGxhc3RfaXJxX3N1bSk7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUobG9jYWxfdCwgYWxlcnRfY291bnRlcik7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUoaW50LCBubWlfdG91Y2gpOwotCi12b2lkIHRvdWNoX25taV93YXRjaGRvZyh2b2lkKQotewotCWlmIChubWlfd2F0Y2hkb2cgPiAwKSB7Ci0JCXVuc2lnbmVkIGNwdTsKLQotCQkvKgotIAkJICogVGVsbCBvdGhlciBDUFVzIHRvIHJlc2V0IHRoZWlyIGFsZXJ0IGNvdW50ZXJzLiBXZSBjYW5ub3QKLQkJICogZG8gaXQgb3Vyc2VsdmVzIGJlY2F1c2UgdGhlIGFsZXJ0IGNvdW50IGluY3JlYXNlIGlzIG5vdAotCQkgKiBhdG9taWMuCi0JCSAqLwotCQlmb3JfZWFjaF9wcmVzZW50X2NwdShjcHUpIHsKLQkJCWlmIChwZXJfY3B1KG5taV90b3VjaCwgY3B1KSAhPSAxKQotCQkJCXBlcl9jcHUobm1pX3RvdWNoLCBjcHUpID0gMTsKLQkJfQotCX0KLQotCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKLX0KLUVYUE9SVF9TWU1CT0wodG91Y2hfbm1pX3dhdGNoZG9nKTsKLQotbm90cmFjZSBfX2twcm9iZXMgaW50Ci1ubWlfd2F0Y2hkb2dfdGljayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgcmVhc29uKQotewotCWludCBzdW07Ci0JaW50IHRvdWNoZWQgPSAwOwotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IHJjID0gMDsKLQotCS8qIGNoZWNrIGZvciBvdGhlciB1c2VycyBmaXJzdCAqLwotCWlmIChub3RpZnlfZGllKERJRV9OTUksICJubWkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCT09IE5PVElGWV9TVE9QKSB7Ci0JCXJjID0gMTsKLQkJdG91Y2hlZCA9IDE7Ci0JfQotCi0Jc3VtID0gcmVhZF9wZGEoYXBpY190aW1lcl9pcnFzKSArIHJlYWRfcGRhKGlycTBfaXJxcyk7Ci0JaWYgKF9fZ2V0X2NwdV92YXIobm1pX3RvdWNoKSkgewotCQlfX2dldF9jcHVfdmFyKG5taV90b3VjaCkgPSAwOwotCQl0b3VjaGVkID0gMTsKLQl9Ci0KLQlpZiAoY3B1X2lzc2V0KGNwdSwgYmFja3RyYWNlX21hc2spKSB7Ci0JCXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jayk7CS8qIFNlcmlhbGlzZSB0aGUgcHJpbnRrcyAqLwotCi0JCXNwaW5fbG9jaygmbG9jayk7Ci0JCXByaW50aygiTk1JIGJhY2t0cmFjZSBmb3IgY3B1ICVkXG4iLCBjcHUpOwotCQlkdW1wX3N0YWNrKCk7Ci0JCXNwaW5fdW5sb2NrKCZsb2NrKTsKLQkJY3B1X2NsZWFyKGNwdSwgYmFja3RyYWNlX21hc2spOwotCX0KLQotI2lmZGVmIENPTkZJR19YODZfTUNFCi0JLyogQ291bGQgY2hlY2sgb29wc19pbl9wcm9ncmVzcyBoZXJlIHRvbywgYnV0IGl0J3Mgc2FmZXIKLQkgICBub3QgdG9vICovCi0JaWYgKGF0b21pY19yZWFkKCZtY2VfZW50cnkpID4gMCkKLQkJdG91Y2hlZCA9IDE7Ci0jZW5kaWYKLQkvKiBpZiB0aGUgYXBpYyB0aW1lciBpc24ndCBmaXJpbmcsIHRoaXMgY3B1IGlzbid0IGRvaW5nIG11Y2ggKi8KLQlpZiAoIXRvdWNoZWQgJiYgX19nZXRfY3B1X3ZhcihsYXN0X2lycV9zdW0pID09IHN1bSkgewotCQkvKgotCQkgKiBBeWllZSwgbG9va3MgbGlrZSB0aGlzIENQVSBpcyBzdHVjayAuLi4KLQkJICogd2FpdCBhIGZldyBJUlFzICg1IHNlY29uZHMpIGJlZm9yZSBkb2luZyB0aGUgb29wcyAuLi4KLQkJICovCi0JCWxvY2FsX2luYygmX19nZXRfY3B1X3ZhcihhbGVydF9jb3VudGVyKSk7Ci0JCWlmIChsb2NhbF9yZWFkKCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpKSA9PSA1Km5taV9oeikKLQkJCWRpZV9ubWkoIk5NSSBXYXRjaGRvZyBkZXRlY3RlZCBMT0NLVVAgb24gQ1BVICVkXG4iLCByZWdzLAotCQkJCXBhbmljX29uX3RpbWVvdXQpOwotCX0gZWxzZSB7Ci0JCV9fZ2V0X2NwdV92YXIobGFzdF9pcnFfc3VtKSA9IHN1bTsKLQkJbG9jYWxfc2V0KCZfX2dldF9jcHVfdmFyKGFsZXJ0X2NvdW50ZXIpLCAwKTsKLQl9Ci0KLQkvKiBzZWUgaWYgdGhlIG5taSB3YXRjaGRvZyB3ZW50IG9mZiAqLwotCWlmICghX19nZXRfY3B1X3Zhcih3ZF9lbmFibGVkKSkKLQkJcmV0dXJuIHJjOwotCXN3aXRjaCAobm1pX3dhdGNoZG9nKSB7Ci0JY2FzZSBOTUlfTE9DQUxfQVBJQzoKLQkJcmMgfD0gbGFwaWNfd2RfZXZlbnQobm1pX2h6KTsKLQkJYnJlYWs7Ci0JY2FzZSBOTUlfSU9fQVBJQzoKLQkJLyogZG9uJ3Qga25vdyBob3cgdG8gYWNjdXJhdGVseSBjaGVjayBmb3IgdGhpcy4KLQkJICoganVzdCBhc3N1bWUgaXQgd2FzIGEgd2F0Y2hkb2cgdGltZXIgaW50ZXJydXB0Ci0JCSAqIFRoaXMgbWF0Y2hlcyB0aGUgb2xkIGJlaGF2aW91ci4KLQkJICovCi0JCXJjID0gMTsKLQkJYnJlYWs7Ci0JfQotCXJldHVybiByYzsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGlnbm9yZV9ubWlzOwotCi1hc21saW5rYWdlIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKLWRvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQotewotCW5taV9lbnRlcigpOwotCWFkZF9wZGEoX19ubWlfY291bnQsMSk7Ci0JaWYgKCFpZ25vcmVfbm1pcykKLQkJZGVmYXVsdF9kb19ubWkocmVncyk7Ci0Jbm1pX2V4aXQoKTsKLX0KLQotdm9pZCBzdG9wX25taSh2b2lkKQotewotCWFjcGlfbm1pX2Rpc2FibGUoKTsKLQlpZ25vcmVfbm1pcysrOwotfQotCi12b2lkIHJlc3RhcnRfbm1pKHZvaWQpCi17Ci0JaWdub3JlX25taXMtLTsKLQlhY3BpX25taV9lbmFibGUoKTsKLX0KLQotI2lmZGVmIENPTkZJR19TWVNDVEwKLQotc3RhdGljIGludCB1bmtub3duX25taV9wYW5pY19jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7Ci0JY2hhciBidWZbNjRdOwotCi0Jc3ByaW50ZihidWYsICJOTUkgcmVjZWl2ZWQgZm9yIHVua25vd24gcmVhc29uICUwMnhcbiIsIHJlYXNvbik7Ci0JZGllX25taShidWYsIHJlZ3MsIDEpOwkvKiBBbHdheXMgcGFuaWMgaGVyZSAqLwotCXJldHVybiAwOwotfQotCi0vKgotICogcHJvYyBoYW5kbGVyIGZvciAvcHJvYy9zeXMva2VybmVsL25taQotICovCi1pbnQgcHJvY19ubWlfZW5hYmxlZChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkJCXZvaWQgX191c2VyICpidWZmZXIsIHNpemVfdCAqbGVuZ3RoLCBsb2ZmX3QgKnBwb3MpCi17Ci0JaW50IG9sZF9zdGF0ZTsKLQotCW5taV93YXRjaGRvZ19lbmFibGVkID0gKGF0b21pY19yZWFkKCZubWlfYWN0aXZlKSA+IDApID8gMSA6IDA7Ci0Jb2xkX3N0YXRlID0gbm1pX3dhdGNoZG9nX2VuYWJsZWQ7Ci0JcHJvY19kb2ludHZlYyh0YWJsZSwgd3JpdGUsIGZpbGUsIGJ1ZmZlciwgbGVuZ3RoLCBwcG9zKTsKLQlpZiAoISFvbGRfc3RhdGUgPT0gISFubWlfd2F0Y2hkb2dfZW5hYmxlZCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoYXRvbWljX3JlYWQoJm5taV9hY3RpdmUpIDwgMCB8fCBubWlfd2F0Y2hkb2cgPT0gTk1JX0RJU0FCTEVEKSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HICJOTUkgd2F0Y2hkb2cgaXMgcGVybWFuZW50bHkgZGlzYWJsZWRcbiIpOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQkvKiBpZiBubWlfd2F0Y2hkb2cgaXMgbm90IHNldCB5ZXQsIHRoZW4gc2V0IGl0ICovCi0Jbm1pX3dhdGNoZG9nX2RlZmF1bHQoKTsKLQotCWlmIChubWlfd2F0Y2hkb2cgPT0gTk1JX0xPQ0FMX0FQSUMpIHsKLQkJaWYgKG5taV93YXRjaGRvZ19lbmFibGVkKQotCQkJZW5hYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCQllbHNlCi0JCQlkaXNhYmxlX2xhcGljX25taV93YXRjaGRvZygpOwotCX0gZWxzZSB7Ci0JCXByaW50ayggS0VSTl9XQVJOSU5HCi0JCQkiTk1JIHdhdGNoZG9nIGRvZXNuJ3Qga25vdyB3aGF0IGhhcmR3YXJlIHRvIHRvdWNoXG4iKTsKLQkJcmV0dXJuIC1FSU87Ci0JfQotCXJldHVybiAwOwotfQotCi0jZW5kaWYKLQotaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSkKLXsKLSNpZmRlZiBDT05GSUdfU1lTQ1RMCi0JaWYgKHVua25vd25fbm1pX3BhbmljKQotCQlyZXR1cm4gdW5rbm93bl9ubWlfcGFuaWNfY2FsbGJhY2socmVncywgY3B1KTsKLSNlbmRpZgotCXJldHVybiAwOwotfQotCi12b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKQotewotCWludCBpOwotCi0JYmFja3RyYWNlX21hc2sgPSBjcHVfb25saW5lX21hcDsKLQkvKiBXYWl0IGZvciB1cCB0byAxMCBzZWNvbmRzIGZvciBhbGwgQ1BVcyB0byBkbyB0aGUgYmFja3RyYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDEwICogMTAwMDsgaSsrKSB7Ci0JCWlmIChjcHVzX2VtcHR5KGJhY2t0cmFjZV9tYXNrKSkKLQkJCWJyZWFrOwotCQltZGVsYXkoMSk7Ci0JfQotfQotCi1FWFBPUlRfU1lNQk9MKG5taV9hY3RpdmUpOwotRVhQT1JUX1NZTUJPTChubWlfd2F0Y2hkb2cpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL251bWFxXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYwppbmRleCBlNjUyODFiLi41YjIwYTVlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvbnVtYXFfMzIuYwpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgPGFzbS9udW1hcS5oPgogI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KIAogI2RlZmluZQlNQl9UT19QQUdFUyhhZGRyKSAoKGFkZHIpIDw8ICgyMCAtIFBBR0VfU0hJRlQpKQogCkBAIC01OCw2ICs2MCw4IEBACiAJCQlub2RlX2VuZF9wZm5bbm9kZV0gPSBNQl9UT19QQUdFUygKIAkJCQllcS0+aGlfc2hyZF9tZW1fc3RhcnQgKyBlcS0+aGlfc2hyZF9tZW1fc2l6ZSk7CiAKKwkJCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMobm9kZSwgbm9kZV9zdGFydF9wZm5bbm9kZV0sCisJCQkJCQkJbm9kZV9lbmRfcGZuW25vZGVdKTsKIAkJCW1lbW9yeV9wcmVzZW50KG5vZGUsCiAJCQkJbm9kZV9zdGFydF9wZm5bbm9kZV0sIG5vZGVfZW5kX3Bmbltub2RlXSk7CiAJCQlub2RlX3JlbWFwX3NpemVbbm9kZV0gPSBub2RlX21lbW1hcF9zaXplX2J5dGVzKG5vZGUsCkBAIC02NywyMyArNzEsMzUgQEAKIAl9CiB9CiAKLS8qCi0gKiBVbmxpa2UgU3VtbWl0LCB3ZSBkb24ndCByZWFsbHkgY2FyZSB0byBsZXQgdGhlIE5VTUEtUQotICogZmFsbCBiYWNrIHRvIGZsYXQgbW9kZS4gIERvbid0IGNvbXBpbGUgZm9yIE5VTUEtUQotICogdW5sZXNzIHlvdSByZWFsbHkgbmVlZCBpdCEKLSAqLworc3RhdGljIF9faW5pdCB2b2lkIGVhcmx5X2NoZWNrX251bWFxKHZvaWQpCit7CisJLyoKKwkgKiBGaW5kIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKKwkgKi8KKwllYXJseV9maW5kX3NtcF9jb25maWcoKTsKKwkvKgorCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CisJICovCisJaWYgKHNtcF9mb3VuZF9jb25maWcpCisJCWVhcmx5X2dldF9zbXBfY29uZmlnKCk7Cit9CisKIGludCBfX2luaXQgZ2V0X21lbWNmZ19udW1hcSh2b2lkKQogeworCWVhcmx5X2NoZWNrX251bWFxKCk7CisJaWYgKCFmb3VuZF9udW1hcSkKKwkJcmV0dXJuIDA7CiAJc21wX2R1bXBfcWN0KCk7CiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IG51bWFxX3RzY19kaXNhYmxlKHZvaWQpCit2b2lkIF9faW5pdCBudW1hcV90c2NfZGlzYWJsZSh2b2lkKQogeworCWlmICghZm91bmRfbnVtYXEpCisJCXJldHVybiAtMTsKKwogCWlmIChudW1fb25saW5lX25vZGVzKCkgPiAxKSB7CiAJCXByaW50ayhLRVJOX0RFQlVHICJOVU1BUTogZGlzYWJsaW5nIFRTQ1xuIik7CiAJCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDKTsKIAl9Ci0JcmV0dXJuIDA7CiB9Ci1hcmNoX2luaXRjYWxsKG51bWFxX3RzY19kaXNhYmxlKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydC5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKaW5kZXggNzRmMGM1ZS4uZTBmNTcxZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KICNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgogI2luY2x1ZGUgPGFzbS90aW1lLmg+CisjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CiAjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgpAQCAtMTM5LDcgKzE0MCw5IEBACiAJCS8qIElmIHRoZSBvcGVyYXRpb24gaXMgYSBub3AsIHRoZW4gbm9wIHRoZSBjYWxsc2l0ZSAqLwogCQlyZXQgPSBwYXJhdmlydF9wYXRjaF9ub3AoKTsKIAllbHNlIGlmICh0eXBlID09IFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMuaXJldCkgfHwKLQkJIHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KSkKKwkJIHR5cGUgPT0gUEFSQVZJUlRfUEFUQ0gocHZfY3B1X29wcy5pcnFfZW5hYmxlX3N5c2V4aXQpIHx8CisJCSB0eXBlID09IFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMudXNlcmdzX3N5c3JldDMyKSB8fAorCQkgdHlwZSA9PSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLnVzZXJnc19zeXNyZXQ2NCkpCiAJCS8qIElmIG9wZXJhdGlvbiByZXF1aXJlcyBhIGptcCwgdGhlbiBqbXAgKi8KIAkJcmV0ID0gcGFyYXZpcnRfcGF0Y2hfam1wKGluc25idWYsIG9wZnVuYywgYWRkciwgbGVuKTsKIAllbHNlCkBAIC0xOTAsNyArMTkzLDkgQEAKIAogLyogVGhlc2UgYXJlIGluIGVudHJ5LlMgKi8KIGV4dGVybiB2b2lkIG5hdGl2ZV9pcmV0KHZvaWQpOwotZXh0ZXJuIHZvaWQgbmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQodm9pZCk7CitleHRlcm4gdm9pZCBuYXRpdmVfaXJxX2VuYWJsZV9zeXNleGl0KHZvaWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX3VzZXJnc19zeXNyZXQzMih2b2lkKTsKK2V4dGVybiB2b2lkIG5hdGl2ZV91c2VyZ3Nfc3lzcmV0NjQodm9pZCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IHByaW50X2Jhbm5lcih2b2lkKQogewpAQCAtMjgwLDcgKzI4NSw3IEBACiAJLmdldF93YWxsY2xvY2sgPSBuYXRpdmVfZ2V0X3dhbGxjbG9jaywKIAkuc2V0X3dhbGxjbG9jayA9IG5hdGl2ZV9zZXRfd2FsbGNsb2NrLAogCS5zY2hlZF9jbG9jayA9IG5hdGl2ZV9zY2hlZF9jbG9jaywKLQkuZ2V0X2NwdV9raHogPSBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHosCisJLmdldF90c2Nfa2h6ID0gbmF0aXZlX2NhbGlicmF0ZV90c2MsCiB9OwogCiBzdHJ1Y3QgcHZfaXJxX29wcyBwdl9pcnFfb3BzID0gewpAQCAtMjkxLDYgKzI5Niw5IEBACiAJLmlycV9lbmFibGUgPSBuYXRpdmVfaXJxX2VuYWJsZSwKIAkuc2FmZV9oYWx0ID0gbmF0aXZlX3NhZmVfaGFsdCwKIAkuaGFsdCA9IG5hdGl2ZV9oYWx0LAorI2lmZGVmIENPTkZJR19YODZfNjQKKwkuYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSA9IHBhcmF2aXJ0X25vcCwKKyNlbmRpZgogfTsKIAogc3RydWN0IHB2X2NwdV9vcHMgcHZfY3B1X29wcyA9IHsKQEAgLTMyMSwxMiArMzI5LDIzIEBACiAJLnN0b3JlX2lkdCA9IG5hdGl2ZV9zdG9yZV9pZHQsCiAJLnN0b3JlX3RyID0gbmF0aXZlX3N0b3JlX3RyLAogCS5sb2FkX3RscyA9IG5hdGl2ZV9sb2FkX3RscywKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJLmxvYWRfZ3NfaW5kZXggPSBuYXRpdmVfbG9hZF9nc19pbmRleCwKKyNlbmRpZgogCS53cml0ZV9sZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfbGR0X2VudHJ5LAogCS53cml0ZV9nZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfZ2R0X2VudHJ5LAogCS53cml0ZV9pZHRfZW50cnkgPSBuYXRpdmVfd3JpdGVfaWR0X2VudHJ5LAogCS5sb2FkX3NwMCA9IG5hdGl2ZV9sb2FkX3NwMCwKIAotCS5pcnFfZW5hYmxlX3N5c2NhbGxfcmV0ID0gbmF0aXZlX2lycV9lbmFibGVfc3lzY2FsbF9yZXQsCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzMyKSB8fCBkZWZpbmVkKENPTkZJR19JQTMyX0VNVUxBVElPTikKKwkuaXJxX2VuYWJsZV9zeXNleGl0ID0gbmF0aXZlX2lycV9lbmFibGVfc3lzZXhpdCwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfNjQKKyNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KKwkudXNlcmdzX3N5c3JldDMyID0gbmF0aXZlX3VzZXJnc19zeXNyZXQzMiwKKyNlbmRpZgorCS51c2VyZ3Nfc3lzcmV0NjQgPSBuYXRpdmVfdXNlcmdzX3N5c3JldDY0LAorI2VuZGlmCiAJLmlyZXQgPSBuYXRpdmVfaXJldCwKIAkuc3dhcGdzID0gbmF0aXZlX3N3YXBncywKIApAQCAtMzY2LDYgKzM4NSw5IEBACiAJLmZsdXNoX3RsYl9zaW5nbGUgPSBuYXRpdmVfZmx1c2hfdGxiX3NpbmdsZSwKIAkuZmx1c2hfdGxiX290aGVycyA9IG5hdGl2ZV9mbHVzaF90bGJfb3RoZXJzLAogCisJLnBnZF9hbGxvYyA9IF9fcGFyYXZpcnRfcGdkX2FsbG9jLAorCS5wZ2RfZnJlZSA9IHBhcmF2aXJ0X25vcCwKKwogCS5hbGxvY19wdGUgPSBwYXJhdmlydF9ub3AsCiAJLmFsbG9jX3BtZCA9IHBhcmF2aXJ0X25vcCwKIAkuYWxsb2NfcG1kX2Nsb25lID0gcGFyYXZpcnRfbm9wLApAQCAtMzgwLDYgKzQwMiw5IEBACiAJLnB0ZV91cGRhdGUgPSBwYXJhdmlydF9ub3AsCiAJLnB0ZV91cGRhdGVfZGVmZXIgPSBwYXJhdmlydF9ub3AsCiAKKwkucHRlcF9tb2RpZnlfcHJvdF9zdGFydCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkucHRlcF9tb2RpZnlfcHJvdF9jb21taXQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAorCiAjaWZkZWYgQ09ORklHX0hJR0hQVEUKIAkua21hcF9hdG9taWNfcHRlID0ga21hcF9hdG9taWMsCiAjZW5kaWYKQEAgLTQwMyw2ICs0MjgsNyBAQAogI2VuZGlmIC8qIFBBR0VUQUJMRV9MRVZFTFMgPj0gMyAqLwogCiAJLnB0ZV92YWwgPSBuYXRpdmVfcHRlX3ZhbCwKKwkucHRlX2ZsYWdzID0gbmF0aXZlX3B0ZV92YWwsCiAJLnBnZF92YWwgPSBuYXRpdmVfcGdkX3ZhbCwKIAogCS5tYWtlX3B0ZSA9IG5hdGl2ZV9tYWtlX3B0ZSwKQEAgLTQxNiw2ICs0NDIsOCBAQAogCQkuZW50ZXIgPSBwYXJhdmlydF9ub3AsCiAJCS5sZWF2ZSA9IHBhcmF2aXJ0X25vcCwKIAl9LAorCisJLnNldF9maXhtYXAgPSBuYXRpdmVfc2V0X2ZpeG1hcCwKIH07CiAKIEVYUE9SVF9TWU1CT0xfR1BMKHB2X3RpbWVfb3BzKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydF9wYXRjaF8zMi5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKaW5kZXggODJmYzVmYy4uNTgyNjIyMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzMyLmMKQEAgLTUsNyArNSw3IEBACiBERUZfTkFUSVZFKHB2X2lycV9vcHMsIHJlc3RvcmVfZmwsICJwdXNoICVlYXg7IHBvcGYiKTsKIERFRl9OQVRJVkUocHZfaXJxX29wcywgc2F2ZV9mbCwgInB1c2hmOyBwb3AgJWVheCIpOwogREVGX05BVElWRShwdl9jcHVfb3BzLCBpcmV0LCAiaXJldCIpOwotREVGX05BVElWRShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2NhbGxfcmV0LCAic3RpOyBzeXNleGl0Iik7CitERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzZXhpdCwgInN0aTsgc3lzZXhpdCIpOwogREVGX05BVElWRShwdl9tbXVfb3BzLCByZWFkX2NyMiwgIm1vdiAlY3IyLCAlZWF4Iik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHdyaXRlX2NyMywgIm1vdiAlZWF4LCAlY3IzIik7CiBERUZfTkFUSVZFKHB2X21tdV9vcHMsIHJlYWRfY3IzLCAibW92ICVjcjMsICVlYXgiKTsKQEAgLTI5LDcgKzI5LDcgQEAKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCByZXN0b3JlX2ZsKTsKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBzYXZlX2ZsKTsKIAkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcmV0KTsKLQkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2NhbGxfcmV0KTsKKwkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCBpcnFfZW5hYmxlX3N5c2V4aXQpOwogCQlQQVRDSF9TSVRFKHB2X21tdV9vcHMsIHJlYWRfY3IyKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCByZWFkX2NyMyk7CiAJCVBBVENIX1NJVEUocHZfbW11X29wcywgd3JpdGVfY3IzKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wYXJhdmlydF9wYXRjaF82NC5jIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKaW5kZXggN2Q5MDRlMS4uMDYxZDAxZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0X3BhdGNoXzY0LmMKQEAgLTE0LDggKzE0LDkgQEAKIERFRl9OQVRJVkUocHZfY3B1X29wcywgY2x0cywgImNsdHMiKTsKIERFRl9OQVRJVkUocHZfY3B1X29wcywgd2JpbnZkLCAid2JpbnZkIik7CiAKLS8qIHRoZSB0aHJlZSBjb21tYW5kcyBnaXZlIHVzIG1vcmUgY29udHJvbCB0byBob3cgdG8gcmV0dXJuIGZyb20gYSBzeXNjYWxsICovCi1ERUZfTkFUSVZFKHB2X2NwdV9vcHMsIGlycV9lbmFibGVfc3lzY2FsbF9yZXQsICJtb3ZxICVnczoiIF9fc3RyaW5naWZ5KHBkYV9vbGRyc3ApICIsICVyc3A7IHN3YXBnczsgc3lzcmV0cTsiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNleGl0LCAic3dhcGdzOyBzdGk7IHN5c2V4aXQiKTsKK0RFRl9OQVRJVkUocHZfY3B1X29wcywgdXNlcmdzX3N5c3JldDY0LCAic3dhcGdzOyBzeXNyZXRxIik7CitERUZfTkFUSVZFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQzMiwgInN3YXBnczsgc3lzcmV0bCIpOwogREVGX05BVElWRShwdl9jcHVfb3BzLCBzd2FwZ3MsICJzd2FwZ3MiKTsKIAogdW5zaWduZWQgbmF0aXZlX3BhdGNoKHU4IHR5cGUsIHUxNiBjbG9iYmVycywgdm9pZCAqaWJ1ZiwKQEAgLTM1LDcgKzM2LDkgQEAKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBpcnFfZW5hYmxlKTsKIAkJUEFUQ0hfU0lURShwdl9pcnFfb3BzLCBpcnFfZGlzYWJsZSk7CiAJCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJldCk7Ci0JCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNjYWxsX3JldCk7CisJCVBBVENIX1NJVEUocHZfY3B1X29wcywgaXJxX2VuYWJsZV9zeXNleGl0KTsKKwkJUEFUQ0hfU0lURShwdl9jcHVfb3BzLCB1c2VyZ3Nfc3lzcmV0MzIpOworCQlQQVRDSF9TSVRFKHB2X2NwdV9vcHMsIHVzZXJnc19zeXNyZXQ2NCk7CiAJCVBBVENIX1NJVEUocHZfY3B1X29wcywgc3dhcGdzKTsKIAkJUEFUQ0hfU0lURShwdl9tbXVfb3BzLCByZWFkX2NyMik7CiAJCVBBVENIX1NJVEUocHZfbW11X29wcywgcmVhZF9jcjMpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1jYWxnYXJ5XzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYwppbmRleCBlMjhlYzQ5Li42OTU5YjVjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWNhbGdhcnlfNjQuYwpAQCAtMTM5NCw3ICsxMzk0LDcgQEAKIAkJcmV0dXJuOwogCX0KIAotCXNwZWNpZmllZF90YWJsZV9zaXplID0gZGV0ZXJtaW5lX3RjZV90YWJsZV9zaXplKGVuZF9wZm4gKiBQQUdFX1NJWkUpOworCXNwZWNpZmllZF90YWJsZV9zaXplID0gZGV0ZXJtaW5lX3RjZV90YWJsZV9zaXplKG1heF9wZm4gKiBQQUdFX1NJWkUpOwogCiAJZm9yIChidXMgPSAwOyBidXMgPCBNQVhfUEhCX0JVU19OVU07IGJ1cysrKSB7CiAJCXN0cnVjdCBjYWxnYXJ5X2J1c19pbmZvICppbmZvID0gJmJ1c19pbmZvW2J1c107CkBAIC0xNDU5LDcgKzE0NTksNyBAQAogCWlmIChyZXQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJQQ0ktRE1BOiBDYWxnYXJ5IGluaXQgZmFpbGVkICVkLCAiCiAJCSAgICAgICAiZmFsbGluZyBiYWNrIHRvIG5vX2lvbW11XG4iLCByZXQpOwotCQlpZiAoZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4pCisJCWlmIChtYXhfcGZuID4gTUFYX0RNQTMyX1BGTikKIAkJCXByaW50ayhLRVJOX0VSUiAiV0FSTklORyBtb3JlIHRoYW4gNEdCIG9mIG1lbW9yeSwgIgogCQkJCQkiMzJiaXQgUENJIG1heSBtYWxmdW5jdGlvbi5cbiIpOwogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1kbWEuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZG1hLmMKaW5kZXggYzVlZjFhZi4uODQ2N2VjMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3BjaS1kbWEuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLWRtYS5jCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPGFzbS9kbWEuaD4KICNpbmNsdWRlIDxhc20vZ2FydC5oPgogI2luY2x1ZGUgPGFzbS9jYWxnYXJ5Lmg+CisjaW5jbHVkZSA8YXNtL2FtZF9pb21tdS5oPgogCiBpbnQgZm9yYmlkX2RhYyBfX3JlYWRfbW9zdGx5OwogRVhQT1JUX1NZTUJPTChmb3JiaWRfZGFjKTsKQEAgLTc0LDEzICs3NSwxNyBAQAogdm9pZCBfX2luaXQgZG1hMzJfcmVzZXJ2ZV9ib290bWVtKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBzaXplLCBhbGlnbjsKLQlpZiAoZW5kX3BmbiA8PSBNQVhfRE1BMzJfUEZOKQorCWlmIChtYXhfcGZuIDw9IE1BWF9ETUEzMl9QRk4pCiAJCXJldHVybjsKIAorCS8qCisJICogY2hlY2sgYXBlcnR1cmVfNjQuYyBhbGxvY2F0ZV9hcGVydHVyZSgpIGZvciByZWFzb24gYWJvdXQKKwkgKiB1c2luZyA1MTJNIGFzIGdvYWwKKwkgKi8KIAlhbGlnbiA9IDY0VUxMPDwyMDsKIAlzaXplID0gcm91bmRfdXAoZG1hMzJfYm9vdG1lbV9zaXplLCBhbGlnbik7CiAJZG1hMzJfYm9vdG1lbV9wdHIgPSBfX2FsbG9jX2Jvb3RtZW1fbm9wYW5pYyhzaXplLCBhbGlnbiwKLQkJCQkgX19wYShNQVhfRE1BX0FERFJFU1MpKTsKKwkJCQkgNTEyVUxMPDwyMCk7CiAJaWYgKGRtYTMyX2Jvb3RtZW1fcHRyKQogCQlkbWEzMl9ib290bWVtX3NpemUgPSBzaXplOwogCWVsc2UKQEAgLTg4LDE3ICs5MywxNCBAQAogfQogc3RhdGljIHZvaWQgX19pbml0IGRtYTMyX2ZyZWVfYm9vdG1lbSh2b2lkKQogewotCWludCBub2RlOwogCi0JaWYgKGVuZF9wZm4gPD0gTUFYX0RNQTMyX1BGTikKKwlpZiAobWF4X3BmbiA8PSBNQVhfRE1BMzJfUEZOKQogCQlyZXR1cm47CiAKIAlpZiAoIWRtYTMyX2Jvb3RtZW1fcHRyKQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9vbmxpbmVfbm9kZShub2RlKQotCQlmcmVlX2Jvb3RtZW1fbm9kZShOT0RFX0RBVEEobm9kZSksIF9fcGEoZG1hMzJfYm9vdG1lbV9wdHIpLAotCQkJCSAgZG1hMzJfYm9vdG1lbV9zaXplKTsKKwlmcmVlX2Jvb3RtZW0oX19wYShkbWEzMl9ib290bWVtX3B0ciksIGRtYTMyX2Jvb3RtZW1fc2l6ZSk7CiAKIAlkbWEzMl9ib290bWVtX3B0ciA9IE5VTEw7CiAJZG1hMzJfYm9vdG1lbV9zaXplID0gMDsKQEAgLTEyMiw2ICsxMjQsOCBAQAogCiAJZGV0ZWN0X2ludGVsX2lvbW11KCk7CiAKKwlhbWRfaW9tbXVfZGV0ZWN0KCk7CisKICNpZmRlZiBDT05GSUdfU1dJT1RMQgogCXBjaV9zd2lvdGxiX2luaXQoKTsKICNlbmRpZgpAQCAtMzU3LDcgKzM2MSw3IEBACiBFWFBPUlRfU1lNQk9MKGRtYV9zdXBwb3J0ZWQpOwogCiAvKiBBbGxvY2F0ZSBETUEgbWVtb3J5IG9uIG5vZGUgbmVhciBkZXZpY2UgKi8KLW5vaW5saW5lIHN0cnVjdCBwYWdlICoKK3N0YXRpYyBub2lubGluZSBzdHJ1Y3QgcGFnZSAqCiBkbWFfYWxsb2NfcGFnZXMoc3RydWN0IGRldmljZSAqZGV2LCBnZnBfdCBnZnAsIHVuc2lnbmVkIG9yZGVyKQogewogCWludCBub2RlOwpAQCAtMzc4LDYgKzM4Miw3IEBACiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdW5zaWduZWQgbG9uZyBkbWFfbWFzayA9IDA7CiAJZG1hX2FkZHJfdCBidXM7CisJaW50IG5vcmV0cnkgPSAwOwogCiAJLyogaWdub3JlIHJlZ2lvbiBzcGVjaWZpZXJzICovCiAJZ2ZwICY9IH4oX19HRlBfRE1BIHwgX19HRlBfSElHSE1FTSB8IF9fR0ZQX0RNQTMyKTsKQEAgLTM5NywyMCArNDAyLDI1IEBACiAJaWYgKGRldi0+ZG1hX21hc2sgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKLQkvKiBEb24ndCBpbnZva2UgT09NIGtpbGxlciAqLwotCWdmcCB8PSBfX0dGUF9OT1JFVFJZOworCS8qIERvbid0IGludm9rZSBPT00ga2lsbGVyIG9yIHJldHJ5IGluIGxvd2VyIDE2TUIgRE1BIHpvbmUgKi8KKwlpZiAoZ2ZwICYgX19HRlBfRE1BKQorCQlub3JldHJ5ID0gMTsKIAogI2lmZGVmIENPTkZJR19YODZfNjQKIAkvKiBXaHkgPD0/IEV2ZW4gd2hlbiB0aGUgbWFzayBpcyBzbWFsbGVyIHRoYW4gNEdCIGl0IGlzIG9mdGVuCiAJICAgbGFyZ2VyIHRoYW4gMTZNQiBhbmQgaW4gdGhpcyBjYXNlIHdlIGhhdmUgYSBjaGFuY2Ugb2YKIAkgICBmaW5kaW5nIGZpdHRpbmcgbWVtb3J5IGluIHRoZSBuZXh0IGhpZ2hlciB6b25lIGZpcnN0LiBJZgogCSAgIG5vdCByZXRyeSB3aXRoIHRydWUgR0ZQX0RNQS4gLUFLICovCi0JaWYgKGRtYV9tYXNrIDw9IERNQV8zMkJJVF9NQVNLICYmICEoZ2ZwICYgR0ZQX0RNQSkpCisJaWYgKGRtYV9tYXNrIDw9IERNQV8zMkJJVF9NQVNLICYmICEoZ2ZwICYgR0ZQX0RNQSkpIHsKIAkJZ2ZwIHw9IEdGUF9ETUEzMjsKKwkJaWYgKGRtYV9tYXNrIDwgRE1BXzMyQklUX01BU0spCisJCQlub3JldHJ5ID0gMTsKKwl9CiAjZW5kaWYKIAogIGFnYWluOgotCXBhZ2UgPSBkbWFfYWxsb2NfcGFnZXMoZGV2LCBnZnAsIGdldF9vcmRlcihzaXplKSk7CisJcGFnZSA9IGRtYV9hbGxvY19wYWdlcyhkZXYsCisJCW5vcmV0cnkgPyBnZnAgfCBfX0dGUF9OT1JFVFJZIDogZ2ZwLCBnZXRfb3JkZXIoc2l6ZSkpOwogCWlmIChwYWdlID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwogCkBAIC00OTYsNiArNTA2LDggQEAKIAogCWludGVsX2lvbW11X2luaXQoKTsKIAorCWFtZF9pb21tdV9pbml0KCk7CisKICNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQogCWdhcnRfaW9tbXVfaW5pdCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLWdhcnRfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZ2FydF82NC5jCmluZGV4IGMwNzQ1NWQuLmMzZmU3ODQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wY2ktZ2FydF82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wY2ktZ2FydF82NC5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgva2RlYnVnLmg+CiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9pb21tdS1oZWxwZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNkZXYuaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL210cnIuaD4KQEAgLTEwMyw3ICsxMDQsNiBAQAogCQkJCQkgIHNpemUsIGJhc2VfaW5kZXgsIGJvdW5kYXJ5X3NpemUsIDApOwogCX0KIAlpZiAob2Zmc2V0ICE9IC0xKSB7Ci0JCXNldF9iaXRfc3RyaW5nKGlvbW11X2dhcnRfYml0bWFwLCBvZmZzZXQsIHNpemUpOwogCQluZXh0X2JpdCA9IG9mZnNldCtzaXplOwogCQlpZiAobmV4dF9iaXQgPj0gaW9tbXVfcGFnZXMpIHsKIAkJCW5leHRfYml0ID0gMDsKQEAgLTUzMyw4ICs1MzMsOCBAQAogCXVuc2lnbmVkIGFwZXJfc2l6ZSA9IDAsIGFwZXJfYmFzZV8zMiwgYXBlcl9vcmRlcjsKIAl1NjQgYXBlcl9iYXNlOwogCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5NCwgJmFwZXJfYmFzZV8zMik7Ci0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgJmFwZXJfb3JkZXIpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUJBU0UsICZhcGVyX2Jhc2VfMzIpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJmFwZXJfb3JkZXIpOwogCWFwZXJfb3JkZXIgPSAoYXBlcl9vcmRlciA+PiAxKSAmIDc7CiAKIAlhcGVyX2Jhc2UgPSBhcGVyX2Jhc2VfMzIgJiAweDdmZmY7CkBAIC01NDgsNiArNTQ4LDc3IEBACiAJcmV0dXJuIGFwZXJfYmFzZTsKIH0KIAorc3RhdGljIHZvaWQgZW5hYmxlX2dhcnRfdHJhbnNsYXRpb25zKHZvaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtX2s4X25vcnRoYnJpZGdlczsgaSsrKSB7CisJCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07CisKKwkJZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oZGV2LCBfX3BhKGFncF9nYXR0X3RhYmxlKSk7CisJfQorfQorCisvKgorICogSWYgZml4X3VwX25vcnRoX2JyaWRnZXMgaXMgc2V0LCB0aGUgbm9ydGggYnJpZGdlcyBoYXZlIHRvIGJlIGZpeGVkIHVwIG9uCisgKiByZXN1bWUgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZXkgYXJlIGhhbmRsZWQgaW4gZ2FydF9pb21tdV9ob2xlX2luaXQoKS4KKyAqLworc3RhdGljIGJvb2wgZml4X3VwX25vcnRoX2JyaWRnZXM7CitzdGF0aWMgdTMyIGFwZXJ0dXJlX29yZGVyOworc3RhdGljIHUzMiBhcGVydHVyZV9hbGxvYzsKKwordm9pZCBzZXRfdXBfZ2FydF9yZXN1bWUodTMyIGFwZXJfb3JkZXIsIHUzMiBhcGVyX2FsbG9jKQoreworCWZpeF91cF9ub3J0aF9icmlkZ2VzID0gdHJ1ZTsKKwlhcGVydHVyZV9vcmRlciA9IGFwZXJfb3JkZXI7CisJYXBlcnR1cmVfYWxsb2MgPSBhcGVyX2FsbG9jOworfQorCitzdGF0aWMgaW50IGdhcnRfcmVzdW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogUmVzdW1pbmcgR0FSVCBJT01NVVxuIik7CisKKwlpZiAoZml4X3VwX25vcnRoX2JyaWRnZXMpIHsKKwkJaW50IGk7CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogUmVzdG9yaW5nIEdBUlQgYXBlcnR1cmUgc2V0dGluZ3NcbiIpOworCisJCWZvciAoaSA9IDA7IGkgPCBudW1fazhfbm9ydGhicmlkZ2VzOyBpKyspIHsKKwkJCXN0cnVjdCBwY2lfZGV2ICpkZXYgPSBrOF9ub3J0aGJyaWRnZXNbaV07CisKKwkJCS8qCisJCQkgKiBEb24ndCBlbmFibGUgdHJhbnNsYXRpb25zIGp1c3QgeWV0LiAgVGhhdCBpcyB0aGUgbmV4dAorCQkJICogc3RlcC4gIFJlc3RvcmUgdGhlIHByZS1zdXNwZW5kIGFwZXJ0dXJlIHNldHRpbmdzLgorCQkJICovCisJCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLAorCQkJCQkJYXBlcnR1cmVfb3JkZXIgPDwgMSk7CisJCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwKKwkJCQkJCWFwZXJ0dXJlX2FsbG9jID4+IDI1KTsKKwkJfQorCX0KKworCWVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9ucygpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZ2FydF9zdXNwZW5kKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzeXNkZXZfY2xhc3MgZ2FydF9zeXNkZXZfY2xhc3MgPSB7CisJLm5hbWUgPSAiZ2FydCIsCisJLnN1c3BlbmQgPSBnYXJ0X3N1c3BlbmQsCisJLnJlc3VtZSA9IGdhcnRfcmVzdW1lLAorCit9OworCitzdGF0aWMgc3RydWN0IHN5c19kZXZpY2UgZGV2aWNlX2dhcnQgPSB7CisJLmlkCT0gMCwKKwkuY2xzCT0gJmdhcnRfc3lzZGV2X2NsYXNzLAorfTsKKwogLyoKICAqIFByaXZhdGUgTm9ydGhicmlkZ2UgR0FUVCBpbml0aWFsaXphdGlvbiBpbiBjYXNlIHdlIGNhbm5vdCB1c2UgdGhlCiAgKiBBR1AgZHJpdmVyIGZvciBzb21lIHJlYXNvbi4KQEAgLTU1OCw3ICs2MjksOCBAQAogCXVuc2lnbmVkIGFwZXJfYmFzZSwgbmV3X2FwZXJfYmFzZTsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2OwogCXZvaWQgKmdhdHQ7Ci0JaW50IGk7CisJaW50IGksIGVycm9yOworCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiUENJLURNQTogRGlzYWJsaW5nIEFHUC5cbiIpOwogCWFwZXJfc2l6ZSA9IGFwZXJfYmFzZSA9IGluZm8tPmFwZXJfc2l6ZSA9IDA7CkBAIC01OTEsMjUgKzY2MywyNSBAQAogCW1lbXNldChnYXR0LCAwLCBnYXR0X3NpemUpOwogCWFncF9nYXR0X3RhYmxlID0gZ2F0dDsKIAotCWZvciAoaSA9IDA7IGkgPCBudW1fazhfbm9ydGhicmlkZ2VzOyBpKyspIHsKLQkJdTMyIGdhdHRfcmVnOwotCQl1MzIgY3RsOworCWVuYWJsZV9nYXJ0X3RyYW5zbGF0aW9ucygpOwogCi0JCWRldiA9IGs4X25vcnRoYnJpZGdlc1tpXTsKLQkJZ2F0dF9yZWcgPSBfX3BhKGdhdHQpID4+IDEyOwotCQlnYXR0X3JlZyA8PD0gNDsKLQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4OTgsIGdhdHRfcmVnKTsKLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgJmN0bCk7CisJZXJyb3IgPSBzeXNkZXZfY2xhc3NfcmVnaXN0ZXIoJmdhcnRfc3lzZGV2X2NsYXNzKTsKKwlpZiAoIWVycm9yKQorCQllcnJvciA9IHN5c2Rldl9yZWdpc3RlcigmZGV2aWNlX2dhcnQpOworCWlmIChlcnJvcikKKwkJcGFuaWMoIkNvdWxkIG5vdCByZWdpc3RlciBnYXJ0X3N5c2RldiAtLSB3b3VsZCBjb3JydXB0IGRhdGEgb24gbmV4dCBzdXNwZW5kIik7CiAKLQkJY3RsIHw9IDE7Ci0JCWN0bCAmPSB+KCgxPDw0KSB8ICgxPDw1KSk7Ci0KLQkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIDB4OTAsIGN0bCk7Ci0JfQogCWZsdXNoX2dhcnQoKTsKIAogCXByaW50ayhLRVJOX0lORk8gIlBDSS1ETUE6IGFwZXJ0dXJlIGJhc2UgQCAleCBzaXplICV1IEtCXG4iLAogCSAgICAgICBhcGVyX2Jhc2UsIGFwZXJfc2l6ZT4+MTApOworCisJLyogbmVlZCB0byBtYXAgdGhhdCByYW5nZSAqLworCWVuZF9wZm4gPSAoYXBlcl9iYXNlPj5QQUdFX1NISUZUKSArIChhcGVyX3NpemU+PlBBR0VfU0hJRlQpOworCWlmIChlbmRfcGZuID4gbWF4X2xvd19wZm5fbWFwcGVkKSB7CisJCXN0YXJ0X3BmbiA9IChhcGVyX2Jhc2U+PlBBR0VfU0hJRlQpOworCQlpbml0X21lbW9yeV9tYXBwaW5nKHN0YXJ0X3Bmbjw8UEFHRV9TSElGVCwgZW5kX3Bmbjw8UEFHRV9TSElGVCk7CisJfQogCXJldHVybiAwOwogCiAgbm9tbXU6CkBAIC02NDgsMTEgKzcyMCwxMSBAQAogCQl1MzIgY3RsOwogCiAJCWRldiA9IGs4X25vcnRoYnJpZGdlc1tpXTsKLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgJmN0bCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJmN0bCk7CiAKLQkJY3RsICY9IH4xOworCQljdGwgJj0gfkdBUlRFTjsKIAotCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHg5MCwgY3RsKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgY3RsKTsKIAl9CiB9CiAKQEAgLTY4NywxMCArNzU5LDEwIEBACiAJCXJldHVybjsKIAogCWlmIChub19pb21tdSB8fAotCSAgICAoIWZvcmNlX2lvbW11ICYmIGVuZF9wZm4gPD0gTUFYX0RNQTMyX1BGTikgfHwKKwkgICAgKCFmb3JjZV9pb21tdSAmJiBtYXhfcGZuIDw9IE1BWF9ETUEzMl9QRk4pIHx8CiAJICAgICFnYXJ0X2lvbW11X2FwZXJ0dXJlIHx8CiAJICAgIChub19hZ3AgJiYgaW5pdF9rOF9nYXR0KCZpbmZvKSA8IDApKSB7Ci0JCWlmIChlbmRfcGZuID4gTUFYX0RNQTMyX1BGTikgeworCQlpZiAobWF4X3BmbiA+IE1BWF9ETUEzMl9QRk4pIHsKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcgIk1vcmUgdGhhbiA0R0Igb2YgbWVtb3J5ICIKIAkJCSAgICAgICAJICAgICAgICAgICJidXQgR0FSVCBJT01NVSBub3QgYXZhaWxhYmxlLlxuIgogCQkJICAgICAgIEtFUk5fV0FSTklORyAiZmFsbGluZyBiYWNrIHRvIGlvbW11PXNvZnQuXG4iKTsKQEAgLTc1OSwxMCArODMxLDEwIEBACiAJd2JpbnZkKCk7CiAKIAkvKgotCSAqIFRyeSB0byB3b3JrYXJvdW5kIGEgYnVnICh0aGFua3MgdG8gQmVuSCkKKwkgKiBUcnkgdG8gd29ya2Fyb3VuZCBhIGJ1ZyAodGhhbmtzIHRvIEJlbkgpOgogCSAqIFNldCB1bm1hcHBlZCBlbnRyaWVzIHRvIGEgc2NyYXRjaCBwYWdlIGluc3RlYWQgb2YgMC4KIAkgKiBBbnkgcHJlZmV0Y2hlcyB0aGF0IGhpdCB1bm1hcHBlZCBlbnRyaWVzIHdvbid0IGdldCBhbiBidXMgYWJvcnQKLQkgKiB0aGVuLgorCSAqIHRoZW4uIChQMlAgYnJpZGdlIG1heSBiZSBwcmVmZXRjaGluZyBvbiBETUEgcmVhZHMpLgogCSAqLwogCXNjcmF0Y2ggPSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CiAJaWYgKCFzY3JhdGNoKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3BjaS1zd2lvdGxiXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLXN3aW90bGJfNjQuYwppbmRleCA0OTBkYTdmLi44MjI5OWNkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcGNpLXN3aW90bGJfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGNpLXN3aW90bGJfNjQuYwpAQCAtMzgsNyArMzgsNyBAQAogdm9pZCBfX2luaXQgcGNpX3N3aW90bGJfaW5pdCh2b2lkKQogewogCS8qIGRvbid0IGluaXRpYWxpemUgc3dpb3RsYiBpZiBpb21tdT1vZmYgKG5vX2lvbW11PTEpICovCi0JaWYgKCFpb21tdV9kZXRlY3RlZCAmJiAhbm9faW9tbXUgJiYgZW5kX3BmbiA+IE1BWF9ETUEzMl9QRk4pCisJaWYgKCFpb21tdV9kZXRlY3RlZCAmJiAhbm9faW9tbXUgJiYgbWF4X3BmbiA+IE1BWF9ETUEzMl9QRk4pCiAJICAgICAgIHN3aW90bGIgPSAxOwogCWlmIChzd2lvdGxiX2ZvcmNlKQogCQlzd2lvdGxiID0gMTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9iZV9yb21zXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvYmVfcm9tc18zMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3NWE0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvYmVfcm9tc18zMi5jCkBAIC0wLDAgKzEsMTY2IEBACisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZWRkLmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CisjaW5jbHVkZSA8bGludXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKworCisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vbW16b25lLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL2lvLmg+CisjaW5jbHVkZSA8c2V0dXBfYXJjaC5oPgorCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHN5c3RlbV9yb21fcmVzb3VyY2UgPSB7CisJLm5hbWUJPSAiU3lzdGVtIFJPTSIsCisJLnN0YXJ0CT0gMHhmMDAwMCwKKwkuZW5kCT0gMHhmZmZmZiwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJFeHRlbnNpb24gUk9NIiwKKwkuc3RhcnQJPSAweGUwMDAwLAorCS5lbmQJPSAweGVmZmZmLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBhZGFwdGVyX3JvbV9yZXNvdXJjZXNbXSA9IHsgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMHhjODAwMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30sIHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9LCB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSwgeworCS5uYW1lIAk9ICJBZGFwdGVyIFJPTSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX1JFQURPTkxZIHwgSU9SRVNPVVJDRV9NRU0KK30sIHsKKwkubmFtZSAJPSAiQWRhcHRlciBST00iLAorCS5zdGFydAk9IDAsCisJLmVuZAk9IDAsCisJLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9SRUFET05MWSB8IElPUkVTT1VSQ0VfTUVNCit9LCB7CisJLm5hbWUgCT0gIkFkYXB0ZXIgUk9NIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfSB9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIHZpZGVvX3JvbV9yZXNvdXJjZSA9IHsKKwkubmFtZSAJPSAiVmlkZW8gUk9NIiwKKwkuc3RhcnQJPSAweGMwMDAwLAorCS5lbmQJPSAweGM3ZmZmLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfUkVBRE9OTFkgfCBJT1JFU09VUkNFX01FTQorfTsKKworI2RlZmluZSBST01TSUdOQVRVUkUgMHhhYTU1CisKK3N0YXRpYyBpbnQgX19pbml0IHJvbXNpZ25hdHVyZShjb25zdCB1bnNpZ25lZCBjaGFyICpyb20pCit7CisJY29uc3QgdW5zaWduZWQgc2hvcnQgKiBjb25zdCBwdHIgPSAoY29uc3QgdW5zaWduZWQgc2hvcnQgKilyb207CisJdW5zaWduZWQgc2hvcnQgc2lnOworCisJcmV0dXJuIHByb2JlX2tlcm5lbF9hZGRyZXNzKHB0ciwgc2lnKSA9PSAwICYmIHNpZyA9PSBST01TSUdOQVRVUkU7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHJvbWNoZWNrc3VtKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnJvbSwgdW5zaWduZWQgbG9uZyBsZW5ndGgpCit7CisJdW5zaWduZWQgY2hhciBzdW0sIGM7CisKKwlmb3IgKHN1bSA9IDA7IGxlbmd0aCAmJiBwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20rKywgYykgPT0gMDsgbGVuZ3RoLS0pCisJCXN1bSArPSBjOworCXJldHVybiAhbGVuZ3RoICYmICFzdW07Cit9CisKK3ZvaWQgX19pbml0IHByb2JlX3JvbXModm9pZCkKK3sKKwljb25zdCB1bnNpZ25lZCBjaGFyICpyb207CisJdW5zaWduZWQgbG9uZyBzdGFydCwgbGVuZ3RoLCB1cHBlcjsKKwl1bnNpZ25lZCBjaGFyIGM7CisJaW50IGk7CisKKwkvKiB2aWRlbyByb20gKi8KKwl1cHBlciA9IGFkYXB0ZXJfcm9tX3Jlc291cmNlc1swXS5zdGFydDsKKwlmb3IgKHN0YXJ0ID0gdmlkZW9fcm9tX3Jlc291cmNlLnN0YXJ0OyBzdGFydCA8IHVwcGVyOyBzdGFydCArPSAyMDQ4KSB7CisJCXJvbSA9IGlzYV9idXNfdG9fdmlydChzdGFydCk7CisJCWlmICghcm9tc2lnbmF0dXJlKHJvbSkpCisJCQljb250aW51ZTsKKworCQl2aWRlb19yb21fcmVzb3VyY2Uuc3RhcnQgPSBzdGFydDsKKworCQlpZiAocHJvYmVfa2VybmVsX2FkZHJlc3Mocm9tICsgMiwgYykgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8qIDAgPCBsZW5ndGggPD0gMHg3ZiAqIDUxMiwgaGlzdG9yaWNhbGx5ICovCisJCWxlbmd0aCA9IGMgKiA1MTI7CisKKwkJLyogaWYgY2hlY2tzdW0gb2theSwgdHJ1c3QgbGVuZ3RoIGJ5dGUgKi8KKwkJaWYgKGxlbmd0aCAmJiByb21jaGVja3N1bShyb20sIGxlbmd0aCkpCisJCQl2aWRlb19yb21fcmVzb3VyY2UuZW5kID0gc3RhcnQgKyBsZW5ndGggLSAxOworCisJCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmdmlkZW9fcm9tX3Jlc291cmNlKTsKKwkJYnJlYWs7CisJfQorCisJc3RhcnQgPSAodmlkZW9fcm9tX3Jlc291cmNlLmVuZCArIDEgKyAyMDQ3KSAmIH4yMDQ3VUw7CisJaWYgKHN0YXJ0IDwgdXBwZXIpCisJCXN0YXJ0ID0gdXBwZXI7CisKKwkvKiBzeXN0ZW0gcm9tICovCisJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZzeXN0ZW1fcm9tX3Jlc291cmNlKTsKKwl1cHBlciA9IHN5c3RlbV9yb21fcmVzb3VyY2Uuc3RhcnQ7CisKKwkvKiBjaGVjayBmb3IgZXh0ZW5zaW9uIHJvbSAoaWdub3JlIGxlbmd0aCBieXRlISkgKi8KKwlyb20gPSBpc2FfYnVzX3RvX3ZpcnQoZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydCk7CisJaWYgKHJvbXNpZ25hdHVyZShyb20pKSB7CisJCWxlbmd0aCA9IGV4dGVuc2lvbl9yb21fcmVzb3VyY2UuZW5kIC0gZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZS5zdGFydCArIDE7CisJCWlmIChyb21jaGVja3N1bShyb20sIGxlbmd0aCkpIHsKKwkJCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmZXh0ZW5zaW9uX3JvbV9yZXNvdXJjZSk7CisJCQl1cHBlciA9IGV4dGVuc2lvbl9yb21fcmVzb3VyY2Uuc3RhcnQ7CisJCX0KKwl9CisKKwkvKiBjaGVjayBmb3IgYWRhcHRlciByb21zIG9uIDJrIGJvdW5kYXJpZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhZGFwdGVyX3JvbV9yZXNvdXJjZXMpICYmIHN0YXJ0IDwgdXBwZXI7IHN0YXJ0ICs9IDIwNDgpIHsKKwkJcm9tID0gaXNhX2J1c190b192aXJ0KHN0YXJ0KTsKKwkJaWYgKCFyb21zaWduYXR1cmUocm9tKSkKKwkJCWNvbnRpbnVlOworCisJCWlmIChwcm9iZV9rZXJuZWxfYWRkcmVzcyhyb20gKyAyLCBjKSAhPSAwKQorCQkJY29udGludWU7CisKKwkJLyogMCA8IGxlbmd0aCA8PSAweDdmICogNTEyLCBoaXN0b3JpY2FsbHkgKi8KKwkJbGVuZ3RoID0gYyAqIDUxMjsKKworCQkvKiBidXQgYWNjZXB0IGFueSBsZW5ndGggdGhhdCBmaXRzIGlmIGNoZWNrc3VtIG9rYXkgKi8KKwkJaWYgKCFsZW5ndGggfHwgc3RhcnQgKyBsZW5ndGggPiB1cHBlciB8fCAhcm9tY2hlY2tzdW0ocm9tLCBsZW5ndGgpKQorCQkJY29udGludWU7CisKKwkJYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldLnN0YXJ0ID0gc3RhcnQ7CisJCWFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpXS5lbmQgPSBzdGFydCArIGxlbmd0aCAtIDE7CisJCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYWRhcHRlcl9yb21fcmVzb3VyY2VzW2ldKTsKKworCQlzdGFydCA9IGFkYXB0ZXJfcm9tX3Jlc291cmNlc1tpKytdLmVuZCAmIH4yMDQ3VUw7CisJfQorfQorCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jIGIvYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYwppbmRleCBiYTM3MGRjLi40MDYxZDYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9wbS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsb2NrY2hpcHMuaD4KIAogc3RydWN0IGttZW1fY2FjaGUgKnRhc2tfeHN0YXRlX2NhY2hlcDsKIApAQCAtNDUsNiArNDYsNzYgQEAKIAkJCQkgIFNMQUJfUEFOSUMsIE5VTEwpOwogfQogCisvKgorICogSWRsZSByZWxhdGVkIHZhcmlhYmxlcyBhbmQgZnVuY3Rpb25zCisgKi8KK3Vuc2lnbmVkIGxvbmcgYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSA9IDA7CitFWFBPUlRfU1lNQk9MKGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGUpOworCisvKgorICogUG93ZXJtYW5hZ2VtZW50IGlkbGUgZnVuY3Rpb24sIGlmIGFueS4uCisgKi8KK3ZvaWQgKCpwbV9pZGxlKSh2b2lkKTsKK0VYUE9SVF9TWU1CT0wocG1faWRsZSk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisvKgorICogVGhpcyBoYWx0IG1hZ2ljIHdhcyBhIHdvcmthcm91bmQgZm9yIGFuY2llbnQgZmxvcHB5IERNQQorICogd3JlY2thZ2UuIEl0IHNob3VsZCBiZSBzYWZlIHRvIHJlbW92ZS4KKyAqLworc3RhdGljIGludCBobHRfY291bnRlcjsKK3ZvaWQgZGlzYWJsZV9obHQodm9pZCkKK3sKKwlobHRfY291bnRlcisrOworfQorRVhQT1JUX1NZTUJPTChkaXNhYmxlX2hsdCk7CisKK3ZvaWQgZW5hYmxlX2hsdCh2b2lkKQoreworCWhsdF9jb3VudGVyLS07Cit9CitFWFBPUlRfU1lNQk9MKGVuYWJsZV9obHQpOworCitzdGF0aWMgaW5saW5lIGludCBobHRfdXNlX2hhbHQodm9pZCkKK3sKKwlyZXR1cm4gKCFobHRfY291bnRlciAmJiBib290X2NwdV9kYXRhLmhsdF93b3Jrc19vayk7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgaGx0X3VzZV9oYWx0KHZvaWQpCit7CisJcmV0dXJuIDE7Cit9CisjZW5kaWYKKworLyoKKyAqIFdlIHVzZSB0aGlzIGlmIHdlIGRvbid0IGhhdmUgYW55IGJldHRlcgorICogaWRsZSByb3V0aW5lLi4KKyAqLwordm9pZCBkZWZhdWx0X2lkbGUodm9pZCkKK3sKKwlpZiAoaGx0X3VzZV9oYWx0KCkpIHsKKwkJY3VycmVudF90aHJlYWRfaW5mbygpLT5zdGF0dXMgJj0gflRTX1BPTExJTkc7CisJCS8qCisJCSAqIFRTX1BPTExJTkctY2xlYXJlZCBzdGF0ZSBtdXN0IGJlIHZpc2libGUgYmVmb3JlIHdlCisJCSAqIHRlc3QgTkVFRF9SRVNDSEVEOgorCQkgKi8KKwkJc21wX21iKCk7CisKKwkJaWYgKCFuZWVkX3Jlc2NoZWQoKSkKKwkJCXNhZmVfaGFsdCgpOwkvKiBlbmFibGVzIGludGVycnVwdHMgcmFjZWxlc3NseSAqLworCQllbHNlCisJCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisJCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzIHw9IFRTX1BPTExJTkc7CisJfSBlbHNlIHsKKwkJbG9jYWxfaXJxX2VuYWJsZSgpOworCQkvKiBsb29wIGlzIGRvbmUgYnkgdGhlIGNhbGxlciAqLworCQljcHVfcmVsYXgoKTsKKwl9Cit9CisjaWZkZWYgQ09ORklHX0FQTV9NT0RVTEUKK0VYUE9SVF9TWU1CT0woZGVmYXVsdF9pZGxlKTsKKyNlbmRpZgorCiBzdGF0aWMgdm9pZCBkb19ub3RoaW5nKHZvaWQgKnVudXNlZCkKIHsKIH0KQEAgLTEyMiw0NCArMTkzLDEyOSBAQAogICoKICAqIGlkbGU9bXdhaXQgb3ZlcnJpZGVzIHRoaXMgZGVjaXNpb24gYW5kIGZvcmNlcyB0aGUgdXNhZ2Ugb2YgbXdhaXQuCiAgKi8KKworI2RlZmluZSBNV0FJVF9JTkZPCQkJMHgwNQorI2RlZmluZSBNV0FJVF9FQ1hfRVhURU5ERURfSU5GTwkJMHgwMQorI2RlZmluZSBNV0FJVF9FRFhfQzEJCQkweGYwCisKIHN0YXRpYyBpbnQgX19jcHVpbml0IG13YWl0X3VzYWJsZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiB7CisJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKKwogCWlmIChmb3JjZV9td2FpdCkKIAkJcmV0dXJuIDE7CiAKLQlpZiAoYy0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCkgewotCQlzd2l0Y2goYy0+eDg2KSB7Ci0JCWNhc2UgMHgxMDoKLQkJY2FzZSAweDExOgotCQkJcmV0dXJuIDA7CisJaWYgKGMtPmNwdWlkX2xldmVsIDwgTVdBSVRfSU5GTykKKwkJcmV0dXJuIDA7CisKKwljcHVpZChNV0FJVF9JTkZPLCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwkvKiBDaGVjaywgd2hldGhlciBFRFggaGFzIGV4dGVuZGVkIGluZm8gYWJvdXQgTVdBSVQgKi8KKwlpZiAoIShlY3ggJiBNV0FJVF9FQ1hfRVhURU5ERURfSU5GTykpCisJCXJldHVybiAxOworCisJLyoKKwkgKiBlZHggZW51bWVyYXRpb3MgTU9OSVRPUi9NV0FJVCBleHRlbnNpb25zLiBDaGVjaywgd2hldGhlcgorCSAqIEMxICBzdXBwb3J0cyBNV0FJVAorCSAqLworCXJldHVybiAoZWR4ICYgTVdBSVRfRURYX0MxKTsKK30KKworLyoKKyAqIENoZWNrIGZvciBBTUQgQ1BVcywgd2hpY2ggaGF2ZSBwb3RlbnRpYWxseSBDMUUgc3VwcG9ydAorICovCitzdGF0aWMgaW50IF9fY3B1aW5pdCBjaGVja19jMWVfaWRsZShjb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCit7CisJaWYgKGMtPng4Nl92ZW5kb3IgIT0gWDg2X1ZFTkRPUl9BTUQpCisJCXJldHVybiAwOworCisJaWYgKGMtPng4NiA8IDB4MEYpCisJCXJldHVybiAwOworCisJLyogRmFtaWx5IDB4MGYgbW9kZWxzIDwgcmV2IEYgZG8gbm90IGhhdmUgQzFFICovCisJaWYgKGMtPng4NiA9PSAweDBmICYmIGMtPng4Nl9tb2RlbCA8IDB4NDApCisJCXJldHVybiAwOworCisJcmV0dXJuIDE7Cit9CisKKy8qCisgKiBDMUUgYXdhcmUgaWRsZSByb3V0aW5lLiBXZSBjaGVjayBmb3IgQzFFIGFjdGl2ZSBpbiB0aGUgaW50ZXJydXB0CisgKiBwZW5kaW5nIG1lc3NhZ2UgTVNSLiBJZiB3ZSBkZXRlY3QgQzFFLCB0aGVuIHdlIGhhbmRsZSBpdCB0aGUgc2FtZQorICogd2F5IGFzIEMzIHBvd2VyIHN0YXRlcyAobG9jYWwgYXBpYyB0aW1lciBhbmQgVFNDIHN0b3ApCisgKi8KK3N0YXRpYyB2b2lkIGMxZV9pZGxlKHZvaWQpCit7CisJc3RhdGljIGNwdW1hc2tfdCBjMWVfbWFzayA9IENQVV9NQVNLX05PTkU7CisJc3RhdGljIGludCBjMWVfZGV0ZWN0ZWQ7CisKKwlpZiAobmVlZF9yZXNjaGVkKCkpCisJCXJldHVybjsKKworCWlmICghYzFlX2RldGVjdGVkKSB7CisJCXUzMiBsbywgaGk7CisKKwkJcmRtc3IoTVNSX0s4X0lOVF9QRU5ESU5HX01TRywgbG8sIGhpKTsKKwkJaWYgKGxvICYgSzhfSU5UUF9DMUVfQUNUSVZFX01BU0spIHsKKwkJCWMxZV9kZXRlY3RlZCA9IDE7CisJCQltYXJrX3RzY191bnN0YWJsZSgiVFNDIGhhbHQgaW4gQzFFIik7CisJCQlwcmludGsoS0VSTl9JTkZPICJTeXN0ZW0gaGFzIEMxRSBlbmFibGVkXG4iKTsKIAkJfQogCX0KLQlyZXR1cm4gMTsKKworCWlmIChjMWVfZGV0ZWN0ZWQpIHsKKwkJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKworCQlpZiAoIWNwdV9pc3NldChjcHUsIGMxZV9tYXNrKSkgeworCQkJY3B1X3NldChjcHUsIGMxZV9tYXNrKTsKKwkJCS8qCisJCQkgKiBGb3JjZSBicm9hZGNhc3Qgc28gQUNQSSBjYW4gbm90IGludGVyZmVyZS4gTmVlZHMKKwkJCSAqIHRvIHJ1biB3aXRoIGludGVycnVwdHMgZW5hYmxlZCBhcyBpdCB1c2VzCisJCQkgKiBzbXBfZnVuY3Rpb25fY2FsbC4KKwkJCSAqLworCQkJbG9jYWxfaXJxX2VuYWJsZSgpOworCQkJY2xvY2tldmVudHNfbm90aWZ5KENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX0ZPUkNFLAorCQkJCQkgICAmY3B1KTsKKwkJCXByaW50ayhLRVJOX0lORk8gIlN3aXRjaCB0byBicm9hZGNhc3QgbW9kZSBvbiBDUFUlZFxuIiwKKwkJCSAgICAgICBjcHUpOworCQkJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwkJfQorCQljbG9ja2V2ZW50c19ub3RpZnkoQ0xPQ0tfRVZUX05PVElGWV9CUk9BRENBU1RfRU5URVIsICZjcHUpOworCisJCWRlZmF1bHRfaWRsZSgpOworCisJCS8qCisJCSAqIFRoZSBzd2l0Y2ggYmFjayBmcm9tIGJyb2FkY2FzdCBtb2RlIG5lZWRzIHRvIGJlCisJCSAqIGNhbGxlZCB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQuCisJCSAqLworCQkgbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwkJIGNsb2NrZXZlbnRzX25vdGlmeShDTE9DS19FVlRfTk9USUZZX0JST0FEQ0FTVF9FWElULCAmY3B1KTsKKwkJIGxvY2FsX2lycV9lbmFibGUoKTsKKwl9IGVsc2UKKwkJZGVmYXVsdF9pZGxlKCk7CiB9CiAKIHZvaWQgX19jcHVpbml0IHNlbGVjdF9pZGxlX3JvdXRpbmUoY29uc3Qgc3RydWN0IGNwdWluZm9feDg2ICpjKQogewotCXN0YXRpYyBpbnQgc2VsZWN0ZWQ7Ci0KLQlpZiAoc2VsZWN0ZWQpCi0JCXJldHVybjsKICNpZmRlZiBDT05GSUdfWDg2X1NNUAogCWlmIChwbV9pZGxlID09IHBvbGxfaWRsZSAmJiBzbXBfbnVtX3NpYmxpbmdzID4gMSkgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBwb2xsaW5nIGlkbGUgYW5kIEhUIGVuYWJsZWQsIgogCQkJIiBwZXJmb3JtYW5jZSBtYXkgZGVncmFkZS5cbiIpOwogCX0KICNlbmRpZgorCWlmIChwbV9pZGxlKQorCQlyZXR1cm47CisKIAlpZiAoY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9NV0FJVCkgJiYgbXdhaXRfdXNhYmxlKGMpKSB7CiAJCS8qCi0JCSAqIFNraXAsIGlmIHNldHVwIGhhcyBvdmVycmlkZGVuIGlkbGUuCiAJCSAqIE9uZSBDUFUgc3VwcG9ydHMgbXdhaXQgPT4gQWxsIENQVXMgc3VwcG9ydHMgbXdhaXQKIAkJICovCi0JCWlmICghcG1faWRsZSkgewotCQkJcHJpbnRrKEtFUk5fSU5GTyAidXNpbmcgbXdhaXQgaW4gaWRsZSB0aHJlYWRzLlxuIik7Ci0JCQlwbV9pZGxlID0gbXdhaXRfaWRsZTsKLQkJfQotCX0KLQlzZWxlY3RlZCA9IDE7CisJCXByaW50ayhLRVJOX0lORk8gInVzaW5nIG13YWl0IGluIGlkbGUgdGhyZWFkcy5cbiIpOworCQlwbV9pZGxlID0gbXdhaXRfaWRsZTsKKwl9IGVsc2UgaWYgKGNoZWNrX2MxZV9pZGxlKGMpKSB7CisJCXByaW50ayhLRVJOX0lORk8gInVzaW5nIEMxRSBhd2FyZSBpZGxlIHJvdXRpbmVcbiIpOworCQlwbV9pZGxlID0gYzFlX2lkbGU7CisJfSBlbHNlCisJCXBtX2lkbGUgPSBkZWZhdWx0X2lkbGU7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IGlkbGVfc2V0dXAoY2hhciAqc3RyKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzMyLmMKaW5kZXggZjg0NzZkZi4uMGMzOTI3YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc18zMi5jCkBAIC01OCwxMSArNTgsNiBAQAogCiBhc21saW5rYWdlIHZvaWQgcmV0X2Zyb21fZm9yayh2b2lkKSBfX2FzbV9fKCJyZXRfZnJvbV9mb3JrIik7CiAKLXN0YXRpYyBpbnQgaGx0X2NvdW50ZXI7Ci0KLXVuc2lnbmVkIGxvbmcgYm9vdF9vcHRpb25faWRsZV9vdmVycmlkZSA9IDA7Ci1FWFBPUlRfU1lNQk9MKGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGUpOwotCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgY3VycmVudF90YXNrKSA9ICZpbml0X3Rhc2s7CiBFWFBPUlRfUEVSX0NQVV9TWU1CT0woY3VycmVudF90YXNrKTsKIApAQCAtNzcsNTcgKzcyLDI0IEBACiAJcmV0dXJuICgodW5zaWduZWQgbG9uZyAqKXRzay0+dGhyZWFkLnNwKVszXTsKIH0KIAotLyoKLSAqIFBvd2VybWFuYWdlbWVudCBpZGxlIGZ1bmN0aW9uLCBpZiBhbnkuLgotICovCi12b2lkICgqcG1faWRsZSkodm9pZCk7Ci1FWFBPUlRfU1lNQk9MKHBtX2lkbGUpOwotCi12b2lkIGRpc2FibGVfaGx0KHZvaWQpCi17Ci0JaGx0X2NvdW50ZXIrKzsKLX0KLQotRVhQT1JUX1NZTUJPTChkaXNhYmxlX2hsdCk7Ci0KLXZvaWQgZW5hYmxlX2hsdCh2b2lkKQotewotCWhsdF9jb3VudGVyLS07Ci19Ci0KLUVYUE9SVF9TWU1CT0woZW5hYmxlX2hsdCk7Ci0KLS8qCi0gKiBXZSB1c2UgdGhpcyBpZiB3ZSBkb24ndCBoYXZlIGFueSBiZXR0ZXIKLSAqIGlkbGUgcm91dGluZS4uCi0gKi8KLXZvaWQgZGVmYXVsdF9pZGxlKHZvaWQpCi17Ci0JaWYgKCFobHRfY291bnRlciAmJiBib290X2NwdV9kYXRhLmhsdF93b3Jrc19vaykgewotCQljdXJyZW50X3RocmVhZF9pbmZvKCktPnN0YXR1cyAmPSB+VFNfUE9MTElORzsKLQkJLyoKLQkJICogVFNfUE9MTElORy1jbGVhcmVkIHN0YXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgd2UKLQkJICogdGVzdCBORUVEX1JFU0NIRUQ6Ci0JCSAqLwotCQlzbXBfbWIoKTsKLQotCQlpZiAoIW5lZWRfcmVzY2hlZCgpKQotCQkJc2FmZV9oYWx0KCk7CS8qIGVuYWJsZXMgaW50ZXJydXB0cyByYWNlbGVzc2x5ICovCi0JCWVsc2UKLQkJCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJY3VycmVudF90aHJlYWRfaW5mbygpLT5zdGF0dXMgfD0gVFNfUE9MTElORzsKLQl9IGVsc2UgewotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JCS8qIGxvb3AgaXMgZG9uZSBieSB0aGUgY2FsbGVyICovCi0JCWNwdV9yZWxheCgpOwotCX0KLX0KLSNpZmRlZiBDT05GSUdfQVBNX01PRFVMRQotRVhQT1JUX1NZTUJPTChkZWZhdWx0X2lkbGUpOwotI2VuZGlmCi0KICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKICNpbmNsdWRlIDxhc20vbm1pLmg+CisKK3N0YXRpYyB2b2lkIGNwdV9leGl0X2NsZWFyKHZvaWQpCit7CisJaW50IGNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisKKwlpZGxlX3Rhc2tfZXhpdCgpOworCisJY3B1X3VuaW5pdCgpOworCWlycV9jdHhfZXhpdChjcHUpOworCisJY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxvdXRfbWFwKTsKKwljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbGluX21hcCk7CisKKwludW1hX3JlbW92ZV9jcHUoY3B1KTsKK30KKwogLyogV2UgZG9uJ3QgYWN0dWFsbHkgdGFrZSBDUFUgZG93biwganVzdCBzcGluIHdpdGhvdXQgaW50ZXJydXB0cy4gKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBwbGF5X2RlYWQodm9pZCkKIHsKQEAgLTE2OCwyNCArMTMwLDIyIEBACiAJd2hpbGUgKDEpIHsKIAkJdGlja19ub2h6X3N0b3Bfc2NoZWRfdGljaygpOwogCQl3aGlsZSAoIW5lZWRfcmVzY2hlZCgpKSB7Ci0JCQl2b2lkICgqaWRsZSkodm9pZCk7CiAKIAkJCWNoZWNrX3BndF9jYWNoZSgpOwogCQkJcm1iKCk7Ci0JCQlpZGxlID0gcG1faWRsZTsKIAogCQkJaWYgKHJjdV9wZW5kaW5nKGNwdSkpCiAJCQkJcmN1X2NoZWNrX2NhbGxiYWNrcyhjcHUsIDApOwogCi0JCQlpZiAoIWlkbGUpCi0JCQkJaWRsZSA9IGRlZmF1bHRfaWRsZTsKLQogCQkJaWYgKGNwdV9pc19vZmZsaW5lKGNwdSkpCiAJCQkJcGxheV9kZWFkKCk7CiAKIAkJCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAJCQlfX2dldF9jcHVfdmFyKGlycV9zdGF0KS5pZGxlX3RpbWVzdGFtcCA9IGppZmZpZXM7Ci0JCQlpZGxlKCk7CisJCQkvKiBEb24ndCB0cmFjZSBpcnFzIG9mZiBmb3IgaWRsZSAqLworCQkJc3RvcF9jcml0aWNhbF90aW1pbmdzKCk7CisJCQlwbV9pZGxlKCk7CisJCQlzdGFydF9jcml0aWNhbF90aW1pbmdzKCk7CiAJCX0KIAkJdGlja19ub2h6X3Jlc3RhcnRfc2NoZWRfdGljaygpOwogCQlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkKCk7CkBAIC0zMzMsNiArMjkzLDcgQEAKIAkvKgogCSAqIEZvcmdldCBjb3Byb2Nlc3NvciBzdGF0ZS4uCiAJICovCisJdHNrLT5mcHVfY291bnRlciA9IDA7CiAJY2xlYXJfZnB1KHRzayk7CiAJY2xlYXJfdXNlZF9tYXRoKCk7CiB9CkBAIC02NDksOCArNjEwLDExIEBACiAJLyogSWYgdGhlIHRhc2sgaGFzIHVzZWQgZnB1IHRoZSBsYXN0IDUgdGltZXNsaWNlcywganVzdCBkbyBhIGZ1bGwKIAkgKiByZXN0b3JlIG9mIHRoZSBtYXRoIHN0YXRlIGltbWVkaWF0ZWx5IHRvIGF2b2lkIHRoZSB0cmFwOyB0aGUKIAkgKiBjaGFuY2VzIG9mIG5lZWRpbmcgRlBVIHNvb24gYXJlIG9idmlvdXNseSBoaWdoIG5vdworCSAqCisJICogdHNrX3VzZWRfbWF0aCgpIGNoZWNrcyBwcmV2ZW50IGNhbGxpbmcgbWF0aF9zdGF0ZV9yZXN0b3JlKCksCisJICogd2hpY2ggY2FuIHNsZWVwIGluIHRoZSBjYXNlIG9mICF0c2tfdXNlZF9tYXRoKCkKIAkgKi8KLQlpZiAobmV4dF9wLT5mcHVfY291bnRlciA+IDUpCisJaWYgKHRza191c2VkX21hdGgobmV4dF9wKSAmJiBuZXh0X3AtPmZwdV9jb3VudGVyID4gNSkKIAkJbWF0aF9zdGF0ZV9yZXN0b3JlKCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKaW5kZXggZTIzMTlmMy4uYThlNTM2MiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzc182NC5jCkBAIC01NiwxNSArNTYsNiBAQAogCiB1bnNpZ25lZCBsb25nIGtlcm5lbF90aHJlYWRfZmxhZ3MgPSBDTE9ORV9WTSB8IENMT05FX1VOVFJBQ0VEOwogCi11bnNpZ25lZCBsb25nIGJvb3Rfb3B0aW9uX2lkbGVfb3ZlcnJpZGUgPSAwOwotRVhQT1JUX1NZTUJPTChib290X29wdGlvbl9pZGxlX292ZXJyaWRlKTsKLQotLyoKLSAqIFBvd2VybWFuYWdlbWVudCBpZGxlIGZ1bmN0aW9uLCBpZiBhbnkuLgotICovCi12b2lkICgqcG1faWRsZSkodm9pZCk7Ci1FWFBPUlRfU1lNQk9MKHBtX2lkbGUpOwotCiBzdGF0aWMgQVRPTUlDX05PVElGSUVSX0hFQUQoaWRsZV9ub3RpZmllcik7CiAKIHZvaWQgaWRsZV9ub3RpZmllcl9yZWdpc3RlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm4pCkBAIC05NCwyNSArODUsNiBAQAogCV9fZXhpdF9pZGxlKCk7CiB9CiAKLS8qCi0gKiBXZSB1c2UgdGhpcyBpZiB3ZSBkb24ndCBoYXZlIGFueSBiZXR0ZXIKLSAqIGlkbGUgcm91dGluZS4uCi0gKi8KLXZvaWQgZGVmYXVsdF9pZGxlKHZvaWQpCi17Ci0JY3VycmVudF90aHJlYWRfaW5mbygpLT5zdGF0dXMgJj0gflRTX1BPTExJTkc7Ci0JLyoKLQkgKiBUU19QT0xMSU5HLWNsZWFyZWQgc3RhdGUgbXVzdCBiZSB2aXNpYmxlIGJlZm9yZSB3ZQotCSAqIHRlc3QgTkVFRF9SRVNDSEVEOgotCSAqLwotCXNtcF9tYigpOwotCWlmICghbmVlZF9yZXNjaGVkKCkpCi0JCXNhZmVfaGFsdCgpOwkvKiBlbmFibGVzIGludGVycnVwdHMgcmFjZWxlc3NseSAqLwotCWVsc2UKLQkJbG9jYWxfaXJxX2VuYWJsZSgpOwotCWN1cnJlbnRfdGhyZWFkX2luZm8oKS0+c3RhdHVzIHw9IFRTX1BPTExJTkc7Ci19Ci0KICNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKIERFQ0xBUkVfUEVSX0NQVShpbnQsIGNwdV9zdGF0ZSk7CiAKQEAgLTE1MCwxMiArMTIyLDkgQEAKIAl3aGlsZSAoMSkgewogCQl0aWNrX25vaHpfc3RvcF9zY2hlZF90aWNrKCk7CiAJCXdoaWxlICghbmVlZF9yZXNjaGVkKCkpIHsKLQkJCXZvaWQgKCppZGxlKSh2b2lkKTsKIAogCQkJcm1iKCk7Ci0JCQlpZGxlID0gcG1faWRsZTsKLQkJCWlmICghaWRsZSkKLQkJCQlpZGxlID0gZGVmYXVsdF9pZGxlOworCiAJCQlpZiAoY3B1X2lzX29mZmxpbmUoc21wX3Byb2Nlc3Nvcl9pZCgpKSkKIAkJCQlwbGF5X2RlYWQoKTsKIAkJCS8qCkBAIC0xNjUsNyArMTM0LDEwIEBACiAJCQkgKi8KIAkJCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAJCQllbnRlcl9pZGxlKCk7Ci0JCQlpZGxlKCk7CisJCQkvKiBEb24ndCB0cmFjZSBpcnFzIG9mZiBmb3IgaWRsZSAqLworCQkJc3RvcF9jcml0aWNhbF90aW1pbmdzKCk7CisJCQlwbV9pZGxlKCk7CisJCQlzdGFydF9jcml0aWNhbF90aW1pbmdzKCk7CiAJCQkvKiBJbiBtYW55IGNhc2VzIHRoZSBpbnRlcnJ1cHQgdGhhdCBlbmRlZCBpZGxlCiAJCQkgICBoYXMgYWxyZWFkeSBjYWxsZWQgZXhpdF9pZGxlLiBCdXQgc29tZSBpZGxlCiAJCQkgICBsb29wcyBjYW4gYmUgd29rZW4gdXAgd2l0aG91dCBpbnRlcnJ1cHQuICovCkBAIC0yOTQsNiArMjY2LDcgQEAKIAkvKgogCSAqIEZvcmdldCBjb3Byb2Nlc3NvciBzdGF0ZS4uCiAJICovCisJdHNrLT5mcHVfY291bnRlciA9IDA7CiAJY2xlYXJfZnB1KHRzayk7CiAJY2xlYXJfdXNlZF9tYXRoKCk7CiB9CkBAIC0zNjUsMTAgKzMzOCwxMCBAQAogCXAtPnRocmVhZC5mcyA9IG1lLT50aHJlYWQuZnM7CiAJcC0+dGhyZWFkLmdzID0gbWUtPnRocmVhZC5nczsKIAotCWFzbSgibW92ICUlZ3MsJTAiIDogIj1tIiAocC0+dGhyZWFkLmdzaW5kZXgpKTsKLQlhc20oIm1vdiAlJWZzLCUwIiA6ICI9bSIgKHAtPnRocmVhZC5mc2luZGV4KSk7Ci0JYXNtKCJtb3YgJSVlcywlMCIgOiAiPW0iIChwLT50aHJlYWQuZXMpKTsKLQlhc20oIm1vdiAlJWRzLCUwIiA6ICI9bSIgKHAtPnRocmVhZC5kcykpOworCXNhdmVzZWdtZW50KGdzLCBwLT50aHJlYWQuZ3NpbmRleCk7CisJc2F2ZXNlZ21lbnQoZnMsIHAtPnRocmVhZC5mc2luZGV4KTsKKwlzYXZlc2VnbWVudChlcywgcC0+dGhyZWFkLmVzKTsKKwlzYXZlc2VnbWVudChkcywgcC0+dGhyZWFkLmRzKTsKIAogCWlmICh1bmxpa2VseSh0ZXN0X3Rza190aHJlYWRfZmxhZyhtZSwgVElGX0lPX0JJVE1BUCkpKSB7CiAJCXAtPnRocmVhZC5pb19iaXRtYXBfcHRyID0ga21hbGxvYyhJT19CSVRNQVBfQllURVMsIEdGUF9LRVJORUwpOwpAQCAtNDA3LDcgKzM4MCw5IEBACiB2b2lkCiBzdGFydF90aHJlYWQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgbmV3X2lwLCB1bnNpZ25lZCBsb25nIG5ld19zcCkKIHsKLQlhc20gdm9sYXRpbGUoIm1vdmwgJTAsICUlZnM7IG1vdmwgJTAsICUlZXM7IG1vdmwgJTAsICUlZHMiIDo6ICJyIigwKSk7CisJbG9hZHNlZ21lbnQoZnMsIDApOworCWxvYWRzZWdtZW50KGVzLCAwKTsKKwlsb2Fkc2VnbWVudChkcywgMCk7CiAJbG9hZF9nc19pbmRleCgwKTsKIAlyZWdzLT5pcAkJPSBuZXdfaXA7CiAJcmVncy0+c3AJCT0gbmV3X3NwOwpAQCAtNTY2LDYgKzU0MSw3IEBACiAJCQkJICpuZXh0ID0gJm5leHRfcC0+dGhyZWFkOwogCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJc3RydWN0IHRzc19zdHJ1Y3QgKnRzcyA9ICZwZXJfY3B1KGluaXRfdHNzLCBjcHUpOworCXVuc2lnbmVkIGZzaW5kZXgsIGdzaW5kZXg7CiAKIAkvKiB3ZSdyZSBnb2luZyB0byB1c2UgdGhpcyBzb29uLCBhZnRlciBhIGZldyBleHBlbnNpdmUgdGhpbmdzICovCiAJaWYgKG5leHRfcC0+ZnB1X2NvdW50ZXI+NSkKQEAgLTU4MCwyMiArNTU2LDM4IEBACiAJICogU3dpdGNoIERTIGFuZCBFUy4KIAkgKiBUaGlzIHdvbid0IHBpY2sgdXAgdGhyZWFkIHNlbGVjdG9yIGNoYW5nZXMsIGJ1dCBJIGd1ZXNzIHRoYXQgaXMgb2suCiAJICovCi0JYXNtIHZvbGF0aWxlKCJtb3YgJSVlcywlMCIgOiAiPW0iIChwcmV2LT5lcykpOworCXNhdmVzZWdtZW50KGVzLCBwcmV2LT5lcyk7CiAJaWYgKHVubGlrZWx5KG5leHQtPmVzIHwgcHJldi0+ZXMpKQogCQlsb2Fkc2VnbWVudChlcywgbmV4dC0+ZXMpOyAKLQkKLQlhc20gdm9sYXRpbGUgKCJtb3YgJSVkcywlMCIgOiAiPW0iIChwcmV2LT5kcykpOworCisJc2F2ZXNlZ21lbnQoZHMsIHByZXYtPmRzKTsKIAlpZiAodW5saWtlbHkobmV4dC0+ZHMgfCBwcmV2LT5kcykpCiAJCWxvYWRzZWdtZW50KGRzLCBuZXh0LT5kcyk7CiAKKworCS8qIFdlIG11c3Qgc2F2ZSAlZnMgYW5kICVncyBiZWZvcmUgbG9hZF9UTFMoKSBiZWNhdXNlCisJICogJWZzIGFuZCAlZ3MgbWF5IGJlIGNsZWFyZWQgYnkgbG9hZF9UTFMoKS4KKwkgKgorCSAqIChlLmcuIHhlbl9sb2FkX3RscygpKQorCSAqLworCXNhdmVzZWdtZW50KGZzLCBmc2luZGV4KTsKKwlzYXZlc2VnbWVudChncywgZ3NpbmRleCk7CisKIAlsb2FkX1RMUyhuZXh0LCBjcHUpOwogCisJLyoKKwkgKiBMZWF2ZSBsYXp5IG1vZGUsIGZsdXNoaW5nIGFueSBoeXBlcmNhbGxzIG1hZGUgaGVyZS4KKwkgKiBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgcmVzdG9yaW5nIFRMUyBzZWdtZW50cyBzbworCSAqIHRoZSBHRFQgYW5kIExEVCBhcmUgcHJvcGVybHkgdXBkYXRlZCwgYW5kIG11c3QgYmUKKwkgKiBkb25lIGJlZm9yZSBtYXRoX3N0YXRlX3Jlc3RvcmUsIHNvIHRoZSBUUyBiaXQgaXMgdXAKKwkgKiB0byBkYXRlLgorCSAqLworCWFyY2hfbGVhdmVfbGF6eV9jcHVfbW9kZSgpOworCiAJLyogCiAJICogU3dpdGNoIEZTIGFuZCBHUy4KIAkgKi8KIAl7IAotCQl1bnNpZ25lZCBmc2luZGV4OwotCQlhc20gdm9sYXRpbGUoIm1vdmwgJSVmcywlMCIgOiAiPXIiIChmc2luZGV4KSk7IAogCQkvKiBzZWdtZW50IHJlZ2lzdGVyICE9IDAgYWx3YXlzIHJlcXVpcmVzIGEgcmVsb2FkLiAKIAkJICAgYWxzbyByZWxvYWQgd2hlbiBpdCBoYXMgY2hhbmdlZC4gCiAJCSAgIHdoZW4gcHJldiBwcm9jZXNzIHVzZWQgNjRiaXQgYmFzZSBhbHdheXMgcmVsb2FkCkBAIC02MTMsMTAgKzYwNSw3IEBACiAJCWlmIChuZXh0LT5mcykgCiAJCQl3cm1zcmwoTVNSX0ZTX0JBU0UsIG5leHQtPmZzKTsgCiAJCXByZXYtPmZzaW5kZXggPSBmc2luZGV4OwotCX0KLQl7IAotCQl1bnNpZ25lZCBnc2luZGV4OwotCQlhc20gdm9sYXRpbGUoIm1vdmwgJSVncywlMCIgOiAiPXIiIChnc2luZGV4KSk7IAorCiAJCWlmICh1bmxpa2VseShnc2luZGV4IHwgbmV4dC0+Z3NpbmRleCB8IHByZXYtPmdzKSkgewogCQkJbG9hZF9nc19pbmRleChuZXh0LT5nc2luZGV4KTsKIAkJCWlmIChnc2luZGV4KQpAQCAtNjU4LDggKzY0NywxMSBAQAogCS8qIElmIHRoZSB0YXNrIGhhcyB1c2VkIGZwdSB0aGUgbGFzdCA1IHRpbWVzbGljZXMsIGp1c3QgZG8gYSBmdWxsCiAJICogcmVzdG9yZSBvZiB0aGUgbWF0aCBzdGF0ZSBpbW1lZGlhdGVseSB0byBhdm9pZCB0aGUgdHJhcDsgdGhlCiAJICogY2hhbmNlcyBvZiBuZWVkaW5nIEZQVSBzb29uIGFyZSBvYnZpb3VzbHkgaGlnaCBub3cKKwkgKgorCSAqIHRza191c2VkX21hdGgoKSBjaGVja3MgcHJldmVudCBjYWxsaW5nIG1hdGhfc3RhdGVfcmVzdG9yZSgpLAorCSAqIHdoaWNoIGNhbiBzbGVlcCBpbiB0aGUgY2FzZSBvZiAhdHNrX3VzZWRfbWF0aCgpCiAJICovCi0JaWYgKG5leHRfcC0+ZnB1X2NvdW50ZXI+NSkKKwlpZiAodHNrX3VzZWRfbWF0aChuZXh0X3ApICYmIG5leHRfcC0+ZnB1X2NvdW50ZXIgPiA1KQogCQltYXRoX3N0YXRlX3Jlc3RvcmUoKTsKIAlyZXR1cm4gcHJldl9wOwogfQpAQCAtNzk0LDcgKzc4Niw3IEBACiAJCQlzZXRfMzJiaXRfdGxzKHRhc2ssIEZTX1RMUywgYWRkcik7CiAJCQlpZiAoZG9pdCkgewogCQkJCWxvYWRfVExTKCZ0YXNrLT50aHJlYWQsIGNwdSk7Ci0JCQkJYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCUlZnMiIDo6ICJyIihGU19UTFNfU0VMKSk7CisJCQkJbG9hZHNlZ21lbnQoZnMsIEZTX1RMU19TRUwpOwogCQkJfQogCQkJdGFzay0+dGhyZWFkLmZzaW5kZXggPSBGU19UTFNfU0VMOwogCQkJdGFzay0+dGhyZWFkLmZzID0gMDsKQEAgLTgwNCw3ICs3OTYsNyBAQAogCQkJaWYgKGRvaXQpIHsKIAkJCQkvKiBzZXQgdGhlIHNlbGVjdG9yIHRvIDAgdG8gbm90IGNvbmZ1c2UKIAkJCQkgICBfX3N3aXRjaF90byAqLwotCQkJCWFzbSB2b2xhdGlsZSgibW92bCAlMCwlJWZzIiA6OiAiciIgKDApKTsKKwkJCQlsb2Fkc2VnbWVudChmcywgMCk7CiAJCQkJcmV0ID0gY2hlY2tpbmdfd3Jtc3JsKE1TUl9GU19CQVNFLCBhZGRyKTsKIAkJCX0KIAkJfQpAQCAtODI3LDcgKzgxOSw3IEBACiAJCWlmICh0YXNrLT50aHJlYWQuZ3NpbmRleCA9PSBHU19UTFNfU0VMKQogCQkJYmFzZSA9IHJlYWRfMzJiaXRfdGxzKHRhc2ssIEdTX1RMUyk7CiAJCWVsc2UgaWYgKGRvaXQpIHsKLQkJCWFzbSgibW92bCAlJWdzLCUwIiA6ICI9ciIgKGdzaW5kZXgpKTsKKwkJCXNhdmVzZWdtZW50KGdzLCBnc2luZGV4KTsKIAkJCWlmIChnc2luZGV4KQogCQkJCXJkbXNybChNU1JfS0VSTkVMX0dTX0JBU0UsIGJhc2UpOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3B0cmFjZS5jIGIvYXJjaC94ODYva2VybmVsL3B0cmFjZS5jCmluZGV4IGE3ODM1ZjIuLjc3MDQwYjYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9wdHJhY2UuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHRyYWNlLmMKQEAgLTk0MywxMyArOTQzLDEzIEBACiAJCXJldHVybiBjb3B5X3JlZ3NldF90b191c2VyKGNoaWxkLCAmdXNlcl94ODZfMzJfdmlldywKIAkJCQkJICAgUkVHU0VUX1hGUCwKIAkJCQkJICAgMCwgc2l6ZW9mKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0KSwKLQkJCQkJICAgZGF0YXApOworCQkJCQkgICBkYXRhcCkgPyAtRUlPIDogMDsKIAogCWNhc2UgUFRSQUNFX1NFVEZQWFJFR1M6CS8qIFNldCB0aGUgY2hpbGQgZXh0ZW5kZWQgRlBVIHN0YXRlLiAqLwogCQlyZXR1cm4gY29weV9yZWdzZXRfZnJvbV91c2VyKGNoaWxkLCAmdXNlcl94ODZfMzJfdmlldywKIAkJCQkJICAgICBSRUdTRVRfWEZQLAogCQkJCQkgICAgIDAsIHNpemVvZihzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCksCi0JCQkJCSAgICAgZGF0YXApOworCQkJCQkgICAgIGRhdGFwKSA/IC1FSU8gOiAwOwogI2VuZGlmCiAKICNpZiBkZWZpbmVkIENPTkZJR19YODZfMzIgfHwgZGVmaW5lZCBDT05GSUdfSUEzMl9FTVVMQVRJT04KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wdmNsb2NrLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHZjbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1ZmJlOWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvcHZjbG9jay5jCkBAIC0wLDAgKzEsMTQxIEBACisvKiAgcGFyYXZpcnR1YWwgY2xvY2sgLS0gY29tbW9uIGNvZGUgdXNlZCBieSBrdm0veGVuCisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorKi8KKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgorI2luY2x1ZGUgPGFzbS9wdmNsb2NrLmg+CisKKy8qCisgKiBUaGVzZSBhcmUgcGVyb2RpY2FsbHkgdXBkYXRlZAorICogICAgeGVuOiBtYWdpYyBzaGFyZWRfaW5mbyBwYWdlCisgKiAgICBrdm06IGdwYSByZWdpc3RlcmVkIHZpYSBtc3IKKyAqIGFuZCB0aGVuIGNvcGllZCBoZXJlLgorICovCitzdHJ1Y3QgcHZjbG9ja19zaGFkb3dfdGltZSB7CisJdTY0IHRzY190aW1lc3RhbXA7ICAgICAvKiBUU0MgYXQgbGFzdCB1cGRhdGUgb2YgdGltZSB2YWxzLiAgKi8KKwl1NjQgc3lzdGVtX3RpbWVzdGFtcDsgIC8qIFRpbWUsIGluIG5hbm9zZWNzLCBzaW5jZSBib290LiAgICAqLworCXUzMiB0c2NfdG9fbnNlY19tdWw7CisJaW50IHRzY19zaGlmdDsKKwl1MzIgdmVyc2lvbjsKK307CisKKy8qCisgKiBTY2FsZSBhIDY0LWJpdCBkZWx0YSBieSBzY2FsaW5nIGFuZCBtdWx0aXBseWluZyBieSBhIDMyLWJpdCBmcmFjdGlvbiwKKyAqIHlpZWxkaW5nIGEgNjQtYml0IHJlc3VsdC4KKyAqLworc3RhdGljIGlubGluZSB1NjQgc2NhbGVfZGVsdGEodTY0IGRlbHRhLCB1MzIgbXVsX2ZyYWMsIGludCBzaGlmdCkKK3sKKwl1NjQgcHJvZHVjdDsKKyNpZmRlZiBfX2kzODZfXworCXUzMiB0bXAxLCB0bXAyOworI2VuZGlmCisKKwlpZiAoc2hpZnQgPCAwKQorCQlkZWx0YSA+Pj0gLXNoaWZ0OworCWVsc2UKKwkJZGVsdGEgPDw9IHNoaWZ0OworCisjaWZkZWYgX19pMzg2X18KKwlfX2FzbV9fICgKKwkJIm11bCAgJTUgICAgICAgOyAiCisJCSJtb3YgICU0LCUlZWF4IDsgIgorCQkibW92ICAlJWVkeCwlNCA7ICIKKwkJIm11bCAgJTUgICAgICAgOyAiCisJCSJ4b3IgICU1LCU1ICAgIDsgIgorCQkiYWRkICAlNCwlJWVheCA7ICIKKwkJImFkYyAgJTUsJSVlZHggOyAiCisJCTogIj1BIiAocHJvZHVjdCksICI9ciIgKHRtcDEpLCAiPXIiICh0bXAyKQorCQk6ICJhIiAoKHUzMilkZWx0YSksICIxIiAoKHUzMikoZGVsdGEgPj4gMzIpKSwgIjIiIChtdWxfZnJhYykgKTsKKyNlbGlmIF9feDg2XzY0X18KKwlfX2FzbV9fICgKKwkJIm11bCAlJXJkeCA7IHNocmQgJDMyLCUlcmR4LCUlcmF4IgorCQk6ICI9YSIgKHByb2R1Y3QpIDogIjAiIChkZWx0YSksICJkIiAoKHU2NCltdWxfZnJhYykgKTsKKyNlbHNlCisjZXJyb3IgaW1wbGVtZW50IG1lIQorI2VuZGlmCisKKwlyZXR1cm4gcHJvZHVjdDsKK30KKworc3RhdGljIHU2NCBwdmNsb2NrX2dldF9uc2VjX29mZnNldChzdHJ1Y3QgcHZjbG9ja19zaGFkb3dfdGltZSAqc2hhZG93KQoreworCXU2NCBkZWx0YSA9IG5hdGl2ZV9yZWFkX3RzYygpIC0gc2hhZG93LT50c2NfdGltZXN0YW1wOworCXJldHVybiBzY2FsZV9kZWx0YShkZWx0YSwgc2hhZG93LT50c2NfdG9fbnNlY19tdWwsIHNoYWRvdy0+dHNjX3NoaWZ0KTsKK30KKworLyoKKyAqIFJlYWRzIGEgY29uc2lzdGVudCBzZXQgb2YgdGltZS1iYXNlIHZhbHVlcyBmcm9tIGh5cGVydmlzb3IsCisgKiBpbnRvIGEgc2hhZG93IGRhdGEgYXJlYS4KKyAqLworc3RhdGljIHVuc2lnbmVkIHB2Y2xvY2tfZ2V0X3RpbWVfdmFsdWVzKHN0cnVjdCBwdmNsb2NrX3NoYWRvd190aW1lICpkc3QsCisJCQkJCXN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICpzcmMpCit7CisJZG8geworCQlkc3QtPnZlcnNpb24gPSBzcmMtPnZlcnNpb247CisJCXJtYigpOwkJLyogZmV0Y2ggdmVyc2lvbiBiZWZvcmUgZGF0YSAqLworCQlkc3QtPnRzY190aW1lc3RhbXAgICAgID0gc3JjLT50c2NfdGltZXN0YW1wOworCQlkc3QtPnN5c3RlbV90aW1lc3RhbXAgID0gc3JjLT5zeXN0ZW1fdGltZTsKKwkJZHN0LT50c2NfdG9fbnNlY19tdWwgICA9IHNyYy0+dHNjX3RvX3N5c3RlbV9tdWw7CisJCWRzdC0+dHNjX3NoaWZ0ICAgICAgICAgPSBzcmMtPnRzY19zaGlmdDsKKwkJcm1iKCk7CQkvKiB0ZXN0IHZlcnNpb24gYWZ0ZXIgZmV0Y2hpbmcgZGF0YSAqLworCX0gd2hpbGUgKChzcmMtPnZlcnNpb24gJiAxKSB8fCAoZHN0LT52ZXJzaW9uICE9IHNyYy0+dmVyc2lvbikpOworCisJcmV0dXJuIGRzdC0+dmVyc2lvbjsKK30KKworY3ljbGVfdCBwdmNsb2NrX2Nsb2Nrc291cmNlX3JlYWQoc3RydWN0IHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gKnNyYykKK3sKKwlzdHJ1Y3QgcHZjbG9ja19zaGFkb3dfdGltZSBzaGFkb3c7CisJdW5zaWduZWQgdmVyc2lvbjsKKwljeWNsZV90IHJldCwgb2Zmc2V0OworCisJZG8geworCQl2ZXJzaW9uID0gcHZjbG9ja19nZXRfdGltZV92YWx1ZXMoJnNoYWRvdywgc3JjKTsKKwkJYmFycmllcigpOworCQlvZmZzZXQgPSBwdmNsb2NrX2dldF9uc2VjX29mZnNldCgmc2hhZG93KTsKKwkJcmV0ID0gc2hhZG93LnN5c3RlbV90aW1lc3RhbXAgKyBvZmZzZXQ7CisJCWJhcnJpZXIoKTsKKwl9IHdoaWxlICh2ZXJzaW9uICE9IHNyYy0+dmVyc2lvbik7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIHB2Y2xvY2tfcmVhZF93YWxsY2xvY2soc3RydWN0IHB2Y2xvY2tfd2FsbF9jbG9jayAqd2FsbF9jbG9jaywKKwkJCSAgICBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqdmNwdV90aW1lLAorCQkJICAgIHN0cnVjdCB0aW1lc3BlYyAqdHMpCit7CisJdTMyIHZlcnNpb247CisJdTY0IGRlbHRhOworCXN0cnVjdCB0aW1lc3BlYyBub3c7CisKKwkvKiBnZXQgd2FsbGNsb2NrIGF0IHN5c3RlbSBib290ICovCisJZG8geworCQl2ZXJzaW9uID0gd2FsbF9jbG9jay0+dmVyc2lvbjsKKwkJcm1iKCk7CQkvKiBmZXRjaCB2ZXJzaW9uIGJlZm9yZSB0aW1lICovCisJCW5vdy50dl9zZWMgID0gd2FsbF9jbG9jay0+c2VjOworCQlub3cudHZfbnNlYyA9IHdhbGxfY2xvY2stPm5zZWM7CisJCXJtYigpOwkJLyogZmV0Y2ggdGltZSBiZWZvcmUgY2hlY2tpbmcgdmVyc2lvbiAqLworCX0gd2hpbGUgKCh3YWxsX2Nsb2NrLT52ZXJzaW9uICYgMSkgfHwgKHZlcnNpb24gIT0gd2FsbF9jbG9jay0+dmVyc2lvbikpOworCisJZGVsdGEgPSBwdmNsb2NrX2Nsb2Nrc291cmNlX3JlYWQodmNwdV90aW1lKTsJLyogdGltZSBzaW5jZSBzeXN0ZW0gYm9vdCAqLworCWRlbHRhICs9IG5vdy50dl9zZWMgKiAodTY0KU5TRUNfUEVSX1NFQyArIG5vdy50dl9uc2VjOworCisJbm93LnR2X25zZWMgPSBkb19kaXYoZGVsdGEsIE5TRUNfUEVSX1NFQyk7CisJbm93LnR2X3NlYyA9IGRlbHRhOworCisJc2V0X25vcm1hbGl6ZWRfdGltZXNwZWModHMsIG5vdy50dl9zZWMsIG5vdy50dl9uc2VjKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9xdWlya3MuYyBiL2FyY2gveDg2L2tlcm5lbC9xdWlya3MuYwppbmRleCBkODlhNjQ4Li43OWJkY2QxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcXVpcmtzLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3F1aXJrcy5jCkBAIC02NSw2ICs2NSw3IEBACiAJSUNIX0ZPUkNFX0hQRVRfUkVTVU1FLAogCVZUODIzN19GT1JDRV9IUEVUX1JFU1VNRSwKIAlOVklESUFfRk9SQ0VfSFBFVF9SRVNVTUUsCisJQVRJX0ZPUkNFX0hQRVRfUkVTVU1FLAogfSBmb3JjZV9ocGV0X3Jlc3VtZV90eXBlOwogCiBzdGF0aWMgdm9pZCBfX2lvbWVtICpyY2JhX2Jhc2U7CkBAIC0xNTgsNiArMTU5LDggQEAKIAogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfRVNCMl8wLAogCQkJIGljaF9mb3JjZV9lbmFibGVfaHBldCk7CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9JTlRFTCwgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzAsCisJCQkgaWNoX2ZvcmNlX2VuYWJsZV9ocGV0KTsKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDZfMSwKIAkJCSBpY2hfZm9yY2VfZW5hYmxlX2hwZXQpOwogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18wLApAQCAtMTc0LDYgKzE3NywxMiBAQAogCiBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKmNhY2hlZF9kZXY7CiAKK3N0YXRpYyB2b2lkIGhwZXRfcHJpbnRfZm9yY2VfaW5mbyh2b2lkKQoreworCXByaW50ayhLRVJOX0lORk8gIkhQRVQgbm90IGVuYWJsZWQgaW4gQklPUy4gIgorCSAgICAgICAiWW91IG1pZ2h0IHRyeSBocGV0PWZvcmNlIGJvb3Qgb3B0aW9uXG4iKTsKK30KKwogc3RhdGljIHZvaWQgb2xkX2ljaF9mb3JjZV9ocGV0X3Jlc3VtZSh2b2lkKQogewogCXUzMiB2YWw7CkBAIC0yNTMsNiArMjYyLDggQEAKIHsKIAlpZiAoaHBldF9mb3JjZV91c2VyKQogCQlvbGRfaWNoX2ZvcmNlX2VuYWJsZV9ocGV0KGRldik7CisJZWxzZQorCQlocGV0X3ByaW50X2ZvcmNlX2luZm8oKTsKIH0KIAogREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfSU5URUwsIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8wLApAQCAtMjkwLDkgKzMwMSwxNCBAQAogewogCXUzMiB1bmluaXRpYWxpemVkX3Zhcih2YWwpOwogCi0JaWYgKCFocGV0X2ZvcmNlX3VzZXIgfHwgaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKIAkJcmV0dXJuOwogCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCAweDY4LCAmdmFsKTsKIAkvKgogCSAqIEJpdCA3IGlzIEhQRVQgZW5hYmxlIGJpdC4KQEAgLTMzMCw2ICszNDYsMzYgQEAKIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0RFVklDRV9JRF9WSUFfODIzNywKIAkJCSB2dDgyMzdfZm9yY2VfZW5hYmxlX2hwZXQpOwogCitzdGF0aWMgdm9pZCBhdGlfZm9yY2VfaHBldF9yZXN1bWUodm9pZCkKK3sKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGNhY2hlZF9kZXYsIDB4MTQsIDB4ZmVkMDAwMDApOworCXByaW50ayhLRVJOX0RFQlVHICJGb3JjZSBlbmFibGVkIEhQRVQgYXQgcmVzdW1lXG4iKTsKK30KKworc3RhdGljIHZvaWQgYXRpX2ZvcmNlX2VuYWJsZV9ocGV0KHN0cnVjdCBwY2lfZGV2ICpkZXYpCit7CisJdTMyIHVuaW5pdGlhbGl6ZWRfdmFyKHZhbCk7CisKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwkJcmV0dXJuOworCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKKwlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHgxNCwgMHhmZWQwMDAwMCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHgxNCwgJnZhbCk7CisJZm9yY2VfaHBldF9hZGRyZXNzID0gdmFsOworCWZvcmNlX2hwZXRfcmVzdW1lX3R5cGUgPSBBVElfRk9SQ0VfSFBFVF9SRVNVTUU7CisJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCAmZGV2LT5kZXYsICJGb3JjZSBlbmFibGVkIEhQRVQgYXQgMHglbHhcbiIsCisJCSAgIGZvcmNlX2hwZXRfYWRkcmVzcyk7CisJY2FjaGVkX2RldiA9IGRldjsKKwlyZXR1cm47Cit9CitERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRPUl9JRF9BVEksIFBDSV9ERVZJQ0VfSURfQVRJX0lYUDQwMF9TTUJVUywKKwkJCSBhdGlfZm9yY2VfZW5hYmxlX2hwZXQpOworCiAvKgogICogVW5kb2N1bWVudGVkIGNoaXBzZXQgZmVhdHVyZSB0YWtlbiBmcm9tIExpbnV4QklPUy4KICAqLwpAQCAtMzQzLDkgKzM4OSwxNCBAQAogewogCXUzMiB1bmluaXRpYWxpemVkX3Zhcih2YWwpOwogCi0JaWYgKCFocGV0X2ZvcmNlX3VzZXIgfHwgaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKKwlpZiAoaHBldF9hZGRyZXNzIHx8IGZvcmNlX2hwZXRfYWRkcmVzcykKIAkJcmV0dXJuOwogCisJaWYgKCFocGV0X2ZvcmNlX3VzZXIpIHsKKwkJaHBldF9wcmludF9mb3JjZV9pbmZvKCk7CisJCXJldHVybjsKKwl9CisKIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHg0NCwgMHhmZWQwMDAwMSk7CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgMHg0NCwgJnZhbCk7CiAJZm9yY2VfaHBldF9hZGRyZXNzID0gdmFsICYgMHhmZmZmZmZmZTsKQEAgLTM5Nyw2ICs0NDgsOSBAQAogCWNhc2UgTlZJRElBX0ZPUkNFX0hQRVRfUkVTVU1FOgogCQludmlkaWFfZm9yY2VfaHBldF9yZXN1bWUoKTsKIAkJcmV0dXJuOworCWNhc2UgQVRJX0ZPUkNFX0hQRVRfUkVTVU1FOgorCQlhdGlfZm9yY2VfaHBldF9yZXN1bWUoKTsKKwkJcmV0dXJuOwogCWRlZmF1bHQ6CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYyBiL2FyY2gveDg2L2tlcm5lbC9yZWJvb3QuYwppbmRleCBmNmJlN2Q1Li5mOGE2MjE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvcmVib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdC5jCkBAIC0yNyw3ICsyNyw3IEBACiB2b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKIEVYUE9SVF9TWU1CT0wocG1fcG93ZXJfb2ZmKTsKIAotc3RhdGljIGxvbmcgbm9faWR0WzNdOworc3RhdGljIGNvbnN0IHN0cnVjdCBkZXNjX3B0ciBub19pZHQgPSB7fTsKIHN0YXRpYyBpbnQgcmVib290X21vZGU7CiBlbnVtIHJlYm9vdF90eXBlIHJlYm9vdF90eXBlID0gQk9PVF9LQkQ7CiBpbnQgcmVib290X2ZvcmNlOwpAQCAtMjAxLDE1ICsyMDEsMTUgQEAKICAgIGNvbnRyb2xsZXIgdG8gcHVsc2UgdGhlIENQVSByZXNldCBsaW5lLCB3aGljaCBpcyBtb3JlIHRob3JvdWdoLCBidXQKICAgIGRvZXNuJ3Qgd29yayB3aXRoIGF0IGxlYXN0IG9uZSB0eXBlIG9mIDQ4NiBtb3RoZXJib2FyZC4gIEl0IGlzIGVhc3kKICAgIHRvIHN0b3AgdGhpcyBjb2RlIHdvcmtpbmc7IGhlbmNlIHRoZSBjb3Bpb3VzIGNvbW1lbnRzLiAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZwogcmVhbF9tb2RlX2dkdF9lbnRyaWVzIFszXSA9CiB7CiAJMHgwMDAwMDAwMDAwMDAwMDAwVUxMLAkvKiBOdWxsIGRlc2NyaXB0b3IgKi8KLQkweDAwMDA5YTAwMDAwMGZmZmZVTEwsCS8qIDE2LWJpdCByZWFsLW1vZGUgNjRrIGNvZGUgYXQgMHgwMDAwMDAwMCAqLwotCTB4MDAwMDkyMDAwMTAwZmZmZlVMTAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBkYXRhIGF0IDB4MDAwMDAxMDAgKi8KKwkweDAwMDA5YjAwMDAwMGZmZmZVTEwsCS8qIDE2LWJpdCByZWFsLW1vZGUgNjRrIGNvZGUgYXQgMHgwMDAwMDAwMCAqLworCTB4MDAwMDkzMDAwMTAwZmZmZlVMTAkvKiAxNi1iaXQgcmVhbC1tb2RlIDY0ayBkYXRhIGF0IDB4MDAwMDAxMDAgKi8KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgZGVzY19wdHIKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGVzY19wdHIKIHJlYWxfbW9kZV9nZHQgPSB7IHNpemVvZiAocmVhbF9tb2RlX2dkdF9lbnRyaWVzKSAtIDEsIChsb25nKXJlYWxfbW9kZV9nZHRfZW50cmllcyB9LAogcmVhbF9tb2RlX2lkdCA9IHsgMHgzZmYsIDAgfTsKIApAQCAtMjMxLDcgKzIzMSw3IEBACiAKICAgIE1vcmUgY291bGQgYmUgZG9uZSBoZXJlIHRvIHNldCB1cCB0aGUgcmVnaXN0ZXJzIGFzIGlmIGEgQ1BVIHJlc2V0IGhhZAogICAgb2NjdXJyZWQ7IGhvcGVmdWxseSByZWFsIEJJT1NzIGRvbid0IGFzc3VtZSBtdWNoLiAqLwotc3RhdGljIHVuc2lnbmVkIGNoYXIgcmVhbF9tb2RlX3N3aXRjaCBbXSA9CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciByZWFsX21vZGVfc3dpdGNoIFtdID0KIHsKIAkweDY2LCAweDBmLCAweDIwLCAweGMwLAkJCS8qICAgIG1vdmwgICVjcjAsJWVheCAgICAgICAgKi8KIAkweDY2LCAweDgzLCAweGUwLCAweDExLAkJCS8qICAgIGFuZGwgICQweDAwMDAwMDExLCVlYXggKi8KQEAgLTI0NSw3ICsyNDUsNyBAQAogCTB4MjQsIDB4MTAsCQkJCS8qIGY6IGFuZGIgICQweDEwLGFsICAgICAgICAgKi8KIAkweDY2LCAweDBmLCAweDIyLCAweGMwCQkJLyogICAgbW92bCAgJWVheCwlY3IwICAgICAgICAqLwogfTsKLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGp1bXBfdG9fYmlvcyBbXSA9CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBqdW1wX3RvX2Jpb3MgW10gPQogewogCTB4ZWEsIDB4MDAsIDB4MDAsIDB4ZmYsIDB4ZmYJCS8qICAgIGxqbXAgICQweGZmZmYsJDB4MDAwMCAgKi8KIH07CkBAIC0yNTUsNyArMjU1LDcgQEAKICAqIHNwZWNpZmllZCBieSB0aGUgY29kZSBhbmQgbGVuZ3RoIHBhcmFtZXRlcnMuCiAgKiBXZSBhc3N1bWUgdGhhdCBsZW5ndGggd2lsbCBhd2F5cyBiZSBsZXNzIHRoYXQgMTAwIQogICovCi12b2lkIG1hY2hpbmVfcmVhbF9yZXN0YXJ0KHVuc2lnbmVkIGNoYXIgKmNvZGUsIGludCBsZW5ndGgpCit2b2lkIG1hY2hpbmVfcmVhbF9yZXN0YXJ0KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNvZGUsIGludCBsZW5ndGgpCiB7CiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIApAQCAtMzY4LDcgKzM2OCw3IEBACiAJCQl9CiAKIAkJY2FzZSBCT09UX1RSSVBMRToKLQkJCWxvYWRfaWR0KChjb25zdCBzdHJ1Y3QgZGVzY19wdHIgKikmbm9faWR0KTsKKwkJCWxvYWRfaWR0KCZub19pZHQpOwogCQkJX19hc21fXyBfX3ZvbGF0aWxlX18oImludDMiKTsKIAogCQkJcmVib290X3R5cGUgPSBCT09UX0tCRDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3RfZml4dXBzXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcmVib290X2ZpeHVwc18zMi5jCmluZGV4IGRlYzBiNWUuLjYxYTgzNzcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9yZWJvb3RfZml4dXBzXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3JlYm9vdF9maXh1cHNfMzIuYwpAQCAtNDksNyArNDksNyBAQAogCXZvaWQgKCpyZWJvb3RfZml4dXApKHN0cnVjdCBwY2lfZGV2ICopOwogfTsKIAotc3RhdGljIHN0cnVjdCBkZXZpY2VfZml4dXAgZml4dXBzX3RhYmxlW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV9maXh1cCBmaXh1cHNfdGFibGVbXSA9IHsKIHsgUENJX1ZFTkRPUl9JRF9DWVJJWCwgUENJX0RFVklDRV9JRF9DWVJJWF81NTMwX0xFR0FDWSwgY3M1NTMwYV93YXJtX3Jlc2V0IH0sCiB7IFBDSV9WRU5ET1JfSURfQU1ELCBQQ0lfREVWSUNFX0lEX0FNRF9DUzU1MzZfSVNBLCBjczU1MzZfd2FybV9yZXNldCB9LAogeyBQQ0lfVkVORE9SX0lEX05TLCBQQ0lfREVWSUNFX0lEX05TX1NDMTEwMF9CUklER0UsIGNzNTUzMGFfd2FybV9yZXNldCB9LApAQCAtNjQsNyArNjQsNyBAQAogICovCiB2b2lkIG1hY2hfcmVib290X2ZpeHVwcyh2b2lkKQogewotCXN0cnVjdCBkZXZpY2VfZml4dXAgKmN1cjsKKwljb25zdCBzdHJ1Y3QgZGV2aWNlX2ZpeHVwICpjdXI7CiAJc3RydWN0IHBjaV9kZXYgKmRldjsKIAlpbnQgaTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3J0Yy5jIGIvYXJjaC94ODYva2VybmVsL3J0Yy5jCmluZGV4IDk2MTVlZWUuLjA1MTkxYmIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9ydGMuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcnRjLmMKQEAgLTQsNiArNCw4IEBACiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgogI2luY2x1ZGUgPGxpbnV4L2JjZC5oPgogI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcG5wLmg+CiAKICNpbmNsdWRlIDxhc20vdGltZS5oPgogI2luY2x1ZGUgPGFzbS92c3lzY2FsbC5oPgpAQCAtMTk3LDMgKzE5OSwzNSBAQAogfQogRVhQT1JUX1NZTUJPTChuYXRpdmVfcmVhZF90c2MpOwogCisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcnRjX3Jlc291cmNlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gUlRDX1BPUlQoMCksCisJCS5lbmQJPSBSVENfUE9SVCgxKSwKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JTywKKwl9LAorCVsxXSA9IHsKKwkJLnN0YXJ0CT0gUlRDX0lSUSwKKwkJLmVuZAk9IFJUQ19JUlEsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfSVJRLAorCX0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHJ0Y19kZXZpY2UgPSB7CisJLm5hbWUJCT0gInJ0Y19jbW9zIiwKKwkuaWQJCT0gLTEsCisJLnJlc291cmNlCT0gcnRjX3Jlc291cmNlcywKKwkubnVtX3Jlc291cmNlcwk9IEFSUkFZX1NJWkUocnRjX3Jlc291cmNlcyksCit9OworCitzdGF0aWMgX19pbml0IGludCBhZGRfcnRjX2Ntb3Modm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfUE5QCisJaWYgKCFwbnBfcGxhdGZvcm1fZGV2aWNlcykKKwkJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZydGNfZGV2aWNlKTsKKyNlbHNlCisJcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZydGNfZGV2aWNlKTsKKyNlbmRpZiAvKiBDT05GSUdfUE5QICovCisJcmV0dXJuIDA7Cit9CitkZXZpY2VfaW5pdGNhbGwoYWRkX3J0Y19jbW9zKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cC5jIGIvYXJjaC94ODYva2VybmVsL3NldHVwLmMKaW5kZXggNmY4MGI4NS4uMzZjNTQwZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NldHVwLmMKQEAgLTEsMTM5ICsxLDg4OSBAQAotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKy8qCisgKiAgQ29weXJpZ2h0IChDKSAxOTk1ICBMaW51cyBUb3J2YWxkcworICoKKyAqICBTdXBwb3J0IG9mIEJJR01FTSBhZGRlZCBieSBHZXJoYXJkIFdpY2hlcnQsIFNpZW1lbnMgQUcsIEp1bHkgMTk5OQorICoKKyAqICBNZW1vcnkgcmVnaW9uIHN1cHBvcnQKKyAqCURhdmlkIFBhcnNvbnMgPG9yY0BwZWxsLmNoaS5pbC51cz4sIEp1bHktQXVndXN0IDE5OTkKKyAqCisgKiAgQWRkZWQgRTgyMCBzYW5pdGl6YXRpb24gcm91dGluZSAocmVtb3ZlcyBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyk7CisgKiAgQnJpYW4gTW95bGUgPGJtb3lsZUBtdmlzdGEuY29tPiwgRmVicnVhcnkgMjAwMQorICoKKyAqIE1vdmVkIENQVSBkZXRlY3Rpb24gY29kZSB0byBjcHUvJHtjcHV9LmMKKyAqICAgIFBhdHJpY2sgTW9jaGVsIDxtb2NoZWxAb3NkbC5vcmc+LCBNYXJjaCAyMDAyCisgKgorICogIFByb3Zpc2lvbnMgZm9yIGVtcHR5IEU4MjAgbWVtb3J5IHJlZ2lvbnMgKHJlcG9ydGVkIGJ5IGNlcnRhaW4gQklPU2VzKS4KKyAqICBBbGV4IEFjaGVuYmFjaCA8eGVsYUBzbGl0LmRlPiwgRGVjZW1iZXIgMjAwMi4KKyAqCisgKi8KKworLyoKKyAqIFRoaXMgZmlsZSBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IHBhcnRzIG9mIGluaXRpYWxpemF0aW9uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9zY3JlZW5faW5mby5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9hcG1fYmlvcy5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXRyZC5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tY2EuaD4KKyNpbmNsdWRlIDxsaW51eC9yb290X2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9lZmkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZWRkLmg+CisjaW5jbHVkZSA8bGludXgvaXNjc2lfaWJmdC5oPgorI2luY2x1ZGUgPGxpbnV4L25vZGVtYXNrLmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9wZm4uaD4KKyNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXRfb2hjaTEzOTRfZG1hLmg+CisjaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KKworI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+CisjaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+CisjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3VzZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKworI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvZWRkLmg+CisjaW5jbHVkZSA8bGludXgvaXNjc2lfaWJmdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisKICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CisKKyNpbmNsdWRlIDx2aWRlby9lZGlkLmg+CisKKyNpbmNsdWRlIDxhc20vbXRyci5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2U4MjAuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KKyNpbmNsdWRlIDxhc20vZWZpLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+CisjaW5jbHVkZSA8YXNtL2RtaS5oPgorI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+CisjaW5jbHVkZSA8YXNtL2lzdC5oPgorI2luY2x1ZGUgPGFzbS92bWkuaD4KKyNpbmNsdWRlIDxzZXR1cF9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL2Jpb3NfZWJkYS5oPgorI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgorI2luY2x1ZGUgPGFzbS9idWdzLmg+CisKKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CisjaW5jbHVkZSA8YXNtL3ZzeXNjYWxsLmg+CiAjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2RtYS5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CisjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisKKyNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KKwogI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+Ci0jaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLXVuc2lnbmVkIGludCBudW1fcHJvY2Vzc29yczsKLXVuc2lnbmVkIGRpc2FibGVkX2NwdXMgX19jcHVpbml0ZGF0YTsKLS8qIFByb2Nlc3NvciB0aGF0IGlzIGRvaW5nIHRoZSBib290IHVwICovCi11bnNpZ25lZCBpbnQgYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkID0gLTFVOwotRVhQT1JUX1NZTUJPTChib290X2NwdV9waHlzaWNhbF9hcGljaWQpOwotCi1ERUZJTkVfUEVSX0NQVSh1MTYsIHg4Nl9jcHVfdG9fYXBpY2lkKSA9IEJBRF9BUElDSUQ7Ci1FWFBPUlRfUEVSX0NQVV9TWU1CT0woeDg2X2NwdV90b19hcGljaWQpOwotCi0vKiBCaXRtYXNrIG9mIHBoeXNpY2FsbHkgZXhpc3RpbmcgQ1BVcyAqLwotcGh5c2lkX21hc2tfdCBwaHlzX2NwdV9wcmVzZW50X21hcDsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisjaW5jbHVkZSA8YXNtL251bWFfNjQuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfSEFWRV9TRVRVUF9QRVJfQ1BVX0FSRUEpICYmIGRlZmluZWQoQ09ORklHX1g4Nl9TTVApCisjaWZuZGVmIEFSQ0hfU0VUVVAKKyNkZWZpbmUgQVJDSF9TRVRVUAorI2VuZGlmCisKKyNpZm5kZWYgQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TCitzdHJ1Y3QgYm9vdF9wYXJhbXMgX19pbml0ZGF0YSBib290X3BhcmFtczsKKyNlbHNlCitzdHJ1Y3QgYm9vdF9wYXJhbXMgYm9vdF9wYXJhbXM7CisjZW5kaWYKKwogLyoKLSAqIENvcHkgZGF0YSB1c2VkIGluIGVhcmx5IGluaXQgcm91dGluZXMgZnJvbSB0aGUgaW5pdGlhbCBhcnJheXMgdG8gdGhlCi0gKiBwZXIgY3B1IGRhdGEgYXJlYXMuICBUaGVzZSBhcnJheXMgdGhlbiBiZWNvbWUgZXhwZW5kYWJsZSBhbmQgdGhlCi0gKiAqX2Vhcmx5X3B0cidzIGFyZSB6ZXJvZWQgaW5kaWNhdGluZyB0aGF0IHRoZSBzdGF0aWMgYXJyYXlzIGFyZSBnb25lLgorICogTWFjaGluZSBzZXR1cC4uCiAgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9wZXJfY3B1X21hcHModm9pZCkKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgZGF0YV9yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJLZXJuZWwgZGF0YSIsCisJLnN0YXJ0CT0gMCwKKwkuZW5kCT0gMCwKKwkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQorfTsKKworc3RhdGljIHN0cnVjdCByZXNvdXJjZSBjb2RlX3Jlc291cmNlID0geworCS5uYW1lCT0gIktlcm5lbCBjb2RlIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCitzdGF0aWMgc3RydWN0IHJlc291cmNlIGJzc19yZXNvdXJjZSA9IHsKKwkubmFtZQk9ICJLZXJuZWwgYnNzIiwKKwkuc3RhcnQJPSAwLAorCS5lbmQJPSAwLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisvKiBUaGlzIHZhbHVlIGlzIHNldCB1cCBieSB0aGUgZWFybHkgYm9vdCBjb2RlIHRvIHBvaW50IHRvIHRoZSB2YWx1ZQorICAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGJvb3QgdGltZSBwYWdlIHRhYmxlcy4gIEl0IGNvbnRhaW5zIGEgKnBoeXNpY2FsKgorICAgYWRkcmVzcywgYW5kIG11c3Qgbm90IGJlIGluIHRoZSAuYnNzIHNlZ21lbnQhICovCit1bnNpZ25lZCBsb25nIGluaXRfcGdfdGFibGVzX3N0YXJ0IF9faW5pdGRhdGEgPSB+MFVMOwordW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19lbmQgX19pbml0ZGF0YSA9IH4wVUw7CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgdmlkZW9fcmFtX3Jlc291cmNlID0geworCS5uYW1lCT0gIlZpZGVvIFJBTSBhcmVhIiwKKwkuc3RhcnQJPSAweGEwMDAwLAorCS5lbmQJPSAweGJmZmZmLAorCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfTUVNCit9OworCisvKiBjcHUgZGF0YSBhcyBkZXRlY3RlZCBieSB0aGUgYXNzZW1ibHkgY29kZSBpbiBoZWFkLlMgKi8KK3N0cnVjdCBjcHVpbmZvX3g4NiBuZXdfY3B1X2RhdGEgX19jcHVpbml0ZGF0YSA9IHswLCAwLCAwLCAwLCAtMSwgMSwgMCwgMCwgLTF9OworLyogY29tbW9uIGNwdSBkYXRhIGZvciBhbGwgY3B1cyAqLworc3RydWN0IGNwdWluZm9feDg2IGJvb3RfY3B1X2RhdGEgX19yZWFkX21vc3RseSA9IHswLCAwLCAwLCAwLCAtMSwgMSwgMCwgMCwgLTF9OworRVhQT1JUX1NZTUJPTChib290X2NwdV9kYXRhKTsKK3N0YXRpYyB2b2lkIHNldF9tY2FfYnVzKGludCB4KQogewotCWludCBjcHU7Ci0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7Ci0JCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkgPSB4ODZfY3B1X3RvX2FwaWNpZF9pbml0W2NwdV07Ci0JCXBlcl9jcHUoeDg2X2Jpb3NfY3B1X2FwaWNpZCwgY3B1KSA9Ci0JCQkJCQl4ODZfYmlvc19jcHVfYXBpY2lkX2luaXRbY3B1XTsKLSNpZmRlZiBDT05GSUdfTlVNQQotCQlwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSkgPQotCQkJCQkJeDg2X2NwdV90b19ub2RlX21hcF9pbml0W2NwdV07Ci0jZW5kaWYKLQl9Ci0KLQkvKiBpbmRpY2F0ZSB0aGUgZWFybHkgc3RhdGljIGFycmF5cyB3aWxsIHNvb24gYmUgZ29uZSAqLwotCXg4Nl9jcHVfdG9fYXBpY2lkX2Vhcmx5X3B0ciA9IE5VTEw7Ci0JeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHIgPSBOVUxMOwotI2lmZGVmIENPTkZJR19OVU1BCi0JeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIgPSBOVUxMOworI2lmZGVmIENPTkZJR19NQ0EKKwlNQ0FfYnVzID0geDsKICNlbmRpZgogfQogCi0jaWZkZWYgQ09ORklHX0hBVkVfQ1BVTUFTS19PRl9DUFVfTUFQCi1jcHVtYXNrX3QgKmNwdW1hc2tfb2ZfY3B1X21hcCBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChjcHVtYXNrX29mX2NwdV9tYXApOwordW5zaWduZWQgaW50IGRlZl90b19iaWdzbXA7CiAKLS8qIHJlcXVpcmVzIG5yX2NwdV9pZHMgdG8gYmUgaW5pdGlhbGl6ZWQgKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9jcHVtYXNrX29mX2NwdSh2b2lkKQorLyogZm9yIE1DQSwgYnV0IGFueW9uZSBlbHNlIGNhbiB1c2UgaXQgaWYgdGhleSB3YW50ICovCit1bnNpZ25lZCBpbnQgbWFjaGluZV9pZDsKK3Vuc2lnbmVkIGludCBtYWNoaW5lX3N1Ym1vZGVsX2lkOwordW5zaWduZWQgaW50IEJJT1NfcmV2aXNpb247CisKK3N0cnVjdCBhcG1faW5mbyBhcG1faW5mbzsKK0VYUE9SVF9TWU1CT0woYXBtX2luZm8pOworCisjaWYgZGVmaW5lZChDT05GSUdfWDg2X1NQRUVEU1RFUF9TTUkpIHx8IFwKKwlkZWZpbmVkKENPTkZJR19YODZfU1BFRURTVEVQX1NNSV9NT0RVTEUpCitzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87CitFWFBPUlRfU1lNQk9MKGlzdF9pbmZvKTsKKyNlbHNlCitzdHJ1Y3QgaXN0X2luZm8gaXN0X2luZm87CisjZW5kaWYKKworI2Vsc2UKK3N0cnVjdCBjcHVpbmZvX3g4NiBib290X2NwdV9kYXRhIF9fcmVhZF9tb3N0bHk7CitFWFBPUlRfU1lNQk9MKGJvb3RfY3B1X2RhdGEpOworI2VuZGlmCisKKworI2lmICFkZWZpbmVkKENPTkZJR19YODZfUEFFKSB8fCBkZWZpbmVkKENPTkZJR19YODZfNjQpCit1bnNpZ25lZCBsb25nIG1tdV9jcjRfZmVhdHVyZXM7CisjZWxzZQordW5zaWduZWQgbG9uZyBtbXVfY3I0X2ZlYXR1cmVzID0gWDg2X0NSNF9QQUU7CisjZW5kaWYKKworLyogQm9vdCBsb2FkZXIgSUQgYXMgYW4gaW50ZWdlciwgZm9yIHRoZSBiZW5lZml0IG9mIHByb2NfZG9pbnR2ZWMgKi8KK2ludCBib290bG9hZGVyX3R5cGU7CisKKy8qCisgKiBFYXJseSBETUkgbWVtb3J5CisgKi8KK2ludCBkbWlfYWxsb2NfaW5kZXg7CitjaGFyIGRtaV9hbGxvY19kYXRhW0RNSV9NQVhfREFUQV07CisKKy8qCisgKiBTZXR1cCBvcHRpb25zCisgKi8KK3N0cnVjdCBzY3JlZW5faW5mbyBzY3JlZW5faW5mbzsKK0VYUE9SVF9TWU1CT0woc2NyZWVuX2luZm8pOworc3RydWN0IGVkaWRfaW5mbyBlZGlkX2luZm87CitFWFBPUlRfU1lNQk9MX0dQTChlZGlkX2luZm8pOworCitleHRlcm4gaW50IHJvb3RfbW91bnRmbGFnczsKKwordW5zaWduZWQgbG9uZyBzYXZlZF92aWRlb19tb2RlOworCisjZGVmaW5lIFJBTURJU0tfSU1BR0VfU1RBUlRfTUFTSwkweDA3RkYKKyNkZWZpbmUgUkFNRElTS19QUk9NUFRfRkxBRwkJMHg4MDAwCisjZGVmaW5lIFJBTURJU0tfTE9BRF9GTEFHCQkweDQwMDAKKworc3RhdGljIGNoYXIgX19pbml0ZGF0YSBjb21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOworCisjaWYgZGVmaW5lZChDT05GSUdfRUREKSB8fCBkZWZpbmVkKENPTkZJR19FRERfTU9EVUxFKQorc3RydWN0IGVkZCBlZGQ7CisjaWZkZWYgQ09ORklHX0VERF9NT0RVTEUKK0VYUE9SVF9TWU1CT0woZWRkKTsKKyNlbmRpZgorLyoqCisgKiBjb3B5X2VkZCgpIC0gQ29weSB0aGUgQklPUyBFREQgaW5mb3JtYXRpb24KKyAqICAgICAgICAgICAgICBmcm9tIGJvb3RfcGFyYW1zIGludG8gYSBzYWZlIHBsYWNlLgorICoKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCit7CisgICAgIG1lbWNweShlZGQubWJyX3NpZ25hdHVyZSwgYm9vdF9wYXJhbXMuZWRkX21icl9zaWdfYnVmZmVyLAorCSAgICBzaXplb2YoZWRkLm1icl9zaWduYXR1cmUpKTsKKyAgICAgbWVtY3B5KGVkZC5lZGRfaW5mbywgYm9vdF9wYXJhbXMuZWRkYnVmLCBzaXplb2YoZWRkLmVkZF9pbmZvKSk7CisgICAgIGVkZC5tYnJfc2lnbmF0dXJlX25yID0gYm9vdF9wYXJhbXMuZWRkX21icl9zaWdfYnVmX2VudHJpZXM7CisgICAgIGVkZC5lZGRfaW5mb19uciA9IGJvb3RfcGFyYW1zLmVkZGJ1Zl9lbnRyaWVzOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2VkZCh2b2lkKQoreworfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKKworI2lmZGVmIENPTkZJR19YODZfMzIKKworI2RlZmluZSBNQVhfTUFQX0NIVU5LCShOUl9GSVhfQlRNQVBTIDw8IFBBR0VfU0hJRlQpCitzdGF0aWMgdm9pZCBfX2luaXQgcmVsb2NhdGVfaW5pdHJkKHZvaWQpCit7CisKKwl1NjQgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOworCXU2NCByYW1kaXNrX3NpemUgID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZTsKKwl1NjQgZW5kX29mX2xvd21lbSA9IG1heF9sb3dfcGZuIDw8IFBBR0VfU0hJRlQ7CisJdTY0IHJhbWRpc2tfaGVyZTsKKwl1bnNpZ25lZCBsb25nIHNsb3AsIGNsZW4sIG1hcGFkZHI7CisJY2hhciAqcCwgKnE7CisKKwkvKiBXZSBuZWVkIHRvIG1vdmUgdGhlIGluaXRyZCBkb3duIGludG8gbG93bWVtICovCisJcmFtZGlza19oZXJlID0gZmluZF9lODIwX2FyZWEoMCwgZW5kX29mX2xvd21lbSwgcmFtZGlza19zaXplLAorCQkJCQkgUEFHRV9TSVpFKTsKKworCWlmIChyYW1kaXNrX2hlcmUgPT0gLTFVTEwpCisJCXBhbmljKCJDYW5ub3QgZmluZCBwbGFjZSBmb3IgbmV3IFJBTURJU0sgb2Ygc2l6ZSAlbGxkXG4iLAorCQkJIHJhbWRpc2tfc2l6ZSk7CisKKwkvKiBOb3RlOiB0aGlzIGluY2x1ZGVzIGFsbCB0aGUgbG93bWVtIGN1cnJlbnRseSBvY2N1cGllZCBieQorCSAgIHRoZSBpbml0cmQsIHdlIHJlbHkgb24gdGhhdCBmYWN0IHRvIGtlZXAgdGhlIGRhdGEgaW50YWN0LiAqLworCXJlc2VydmVfZWFybHkocmFtZGlza19oZXJlLCByYW1kaXNrX2hlcmUgKyByYW1kaXNrX3NpemUsCisJCQkgIk5FVyBSQU1ESVNLIik7CisJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19oZXJlICsgUEFHRV9PRkZTRVQ7CisJaW5pdHJkX2VuZCAgID0gaW5pdHJkX3N0YXJ0ICsgcmFtZGlza19zaXplOworCXByaW50ayhLRVJOX0lORk8gIkFsbG9jYXRlZCBuZXcgUkFNRElTSzogJTA4bGx4IC0gJTA4bGx4XG4iLAorCQkJIHJhbWRpc2tfaGVyZSwgcmFtZGlza19oZXJlICsgcmFtZGlza19zaXplKTsKKworCXEgPSAoY2hhciAqKWluaXRyZF9zdGFydDsKKworCS8qIENvcHkgYW55IGxvd21lbSBwb3J0aW9uIG9mIHRoZSBpbml0cmQgKi8KKwlpZiAocmFtZGlza19pbWFnZSA8IGVuZF9vZl9sb3dtZW0pIHsKKwkJY2xlbiA9IGVuZF9vZl9sb3dtZW0gLSByYW1kaXNrX2ltYWdlOworCQlwID0gKGNoYXIgKilfX3ZhKHJhbWRpc2tfaW1hZ2UpOworCQltZW1jcHkocSwgcCwgY2xlbik7CisJCXEgKz0gY2xlbjsKKwkJcmFtZGlza19pbWFnZSArPSBjbGVuOworCQlyYW1kaXNrX3NpemUgIC09IGNsZW47CisJfQorCisJLyogQ29weSB0aGUgaGlnaG1lbSBwb3J0aW9uIG9mIHRoZSBpbml0cmQgKi8KKwl3aGlsZSAocmFtZGlza19zaXplKSB7CisJCXNsb3AgPSByYW1kaXNrX2ltYWdlICYgflBBR0VfTUFTSzsKKwkJY2xlbiA9IHJhbWRpc2tfc2l6ZTsKKwkJaWYgKGNsZW4gPiBNQVhfTUFQX0NIVU5LLXNsb3ApCisJCQljbGVuID0gTUFYX01BUF9DSFVOSy1zbG9wOworCQltYXBhZGRyID0gcmFtZGlza19pbWFnZSAmIFBBR0VfTUFTSzsKKwkJcCA9IGVhcmx5X2lvcmVtYXAobWFwYWRkciwgY2xlbitzbG9wKTsKKwkJbWVtY3B5KHEsIHArc2xvcCwgY2xlbik7CisJCWVhcmx5X2lvdW5tYXAocCwgY2xlbitzbG9wKTsKKwkJcSArPSBjbGVuOworCQlyYW1kaXNrX2ltYWdlICs9IGNsZW47CisJCXJhbWRpc2tfc2l6ZSAgLT0gY2xlbjsKKwl9CisJLyogaGlnaCBwYWdlcyBpcyBub3QgY29udmVydGVkIGJ5IGVhcmx5X3Jlc190b19ib290bWVtICovCisJcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOworCXJhbWRpc2tfc2l6ZSAgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplOworCXByaW50ayhLRVJOX0lORk8gIk1vdmUgUkFNRElTSyBmcm9tICUwMTZsbHggLSAlMDE2bGx4IHRvIgorCQkiICUwOGxseCAtICUwOGxseFxuIiwKKwkJcmFtZGlza19pbWFnZSwgcmFtZGlza19pbWFnZSArIHJhbWRpc2tfc2l6ZSAtIDEsCisJCXJhbWRpc2tfaGVyZSwgcmFtZGlza19oZXJlICsgcmFtZGlza19zaXplIC0gMSk7Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgX19pbml0IHJlc2VydmVfaW5pdHJkKHZvaWQpCit7CisJdTY0IHJhbWRpc2tfaW1hZ2UgPSBib290X3BhcmFtcy5oZHIucmFtZGlza19pbWFnZTsKKwl1NjQgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7CisJdTY0IHJhbWRpc2tfZW5kICAgPSByYW1kaXNrX2ltYWdlICsgcmFtZGlza19zaXplOworCXU2NCBlbmRfb2ZfbG93bWVtID0gbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVDsKKworCWlmICghYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyIHx8CisJICAgICFyYW1kaXNrX2ltYWdlIHx8ICFyYW1kaXNrX3NpemUpCisJCXJldHVybjsJCS8qIE5vIGluaXRyZCBwcm92aWRlZCBieSBib290bG9hZGVyICovCisKKwlpbml0cmRfc3RhcnQgPSAwOworCisJaWYgKHJhbWRpc2tfc2l6ZSA+PSAoZW5kX29mX2xvd21lbT4+MSkpIHsKKwkJZnJlZV9lYXJseShyYW1kaXNrX2ltYWdlLCByYW1kaXNrX2VuZCk7CisJCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIHRvbyBsYXJnZSB0byBoYW5kbGUsICIKKwkJICAgICAgICJkaXNhYmxpbmcgaW5pdHJkXG4iKTsKKwkJcmV0dXJuOworCX0KKworCXByaW50ayhLRVJOX0lORk8gIlJBTURJU0s6ICUwOGxseCAtICUwOGxseFxuIiwgcmFtZGlza19pbWFnZSwKKwkJCXJhbWRpc2tfZW5kKTsKKworCisJaWYgKHJhbWRpc2tfZW5kIDw9IGVuZF9vZl9sb3dtZW0pIHsKKwkJLyogQWxsIGluIGxvd21lbSwgZWFzeSBjYXNlICovCisJCS8qCisJCSAqIGRvbid0IG5lZWQgdG8gcmVzZXJ2ZSBhZ2FpbiwgYWxyZWFkeSByZXNlcnZlZCBlYXJseQorCQkgKiBpbiBpMzg2X3N0YXJ0X2tlcm5lbAorCQkgKi8KKwkJaW5pdHJkX3N0YXJ0ID0gcmFtZGlza19pbWFnZSArIFBBR0VfT0ZGU0VUOworCQlpbml0cmRfZW5kID0gaW5pdHJkX3N0YXJ0ICsgcmFtZGlza19zaXplOworCQlyZXR1cm47CisJfQorCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCXJlbG9jYXRlX2luaXRyZCgpOworI2Vsc2UKKwlwcmludGsoS0VSTl9FUlIgImluaXRyZCBleHRlbmRzIGJleW9uZCBlbmQgb2YgbWVtb3J5ICIKKwkgICAgICAgIigweCUwOGxseCA+IDB4JTA4bGx4KVxuZGlzYWJsaW5nIGluaXRyZFxuIiwKKwkgICAgICAgcmFtZGlza19lbmQsIGVuZF9vZl9sb3dtZW0pOworCWluaXRyZF9zdGFydCA9IDA7CisjZW5kaWYKKwlmcmVlX2Vhcmx5KHJhbWRpc2tfaW1hZ2UsIHJhbWRpc2tfZW5kKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9pbml0cmQodm9pZCkKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JTklUUkQgKi8KKworc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3NldHVwX2RhdGEodm9pZCkKK3sKKwlzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YTsKKwl1NjQgcGFfZGF0YTsKKworCWlmIChib290X3BhcmFtcy5oZHIudmVyc2lvbiA8IDB4MDIwOSkKKwkJcmV0dXJuOworCXBhX2RhdGEgPSBib290X3BhcmFtcy5oZHIuc2V0dXBfZGF0YTsKKwl3aGlsZSAocGFfZGF0YSkgeworCQlkYXRhID0gZWFybHlfaW9yZW1hcChwYV9kYXRhLCBQQUdFX1NJWkUpOworCQlzd2l0Y2ggKGRhdGEtPnR5cGUpIHsKKwkJY2FzZSBTRVRVUF9FODIwX0VYVDoKKwkJCXBhcnNlX2U4MjBfZXh0KGRhdGEsIHBhX2RhdGEpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlicmVhazsKKwkJfQorCQlwYV9kYXRhID0gZGF0YS0+bmV4dDsKKwkJZWFybHlfaW91bm1hcChkYXRhLCBQQUdFX1NJWkUpOworCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IGU4MjBfcmVzZXJ2ZV9zZXR1cF9kYXRhKHZvaWQpCit7CisJc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7CisJdTY0IHBhX2RhdGE7CisJaW50IGZvdW5kID0gMDsKKworCWlmIChib290X3BhcmFtcy5oZHIudmVyc2lvbiA8IDB4MDIwOSkKKwkJcmV0dXJuOworCXBhX2RhdGEgPSBib290X3BhcmFtcy5oZHIuc2V0dXBfZGF0YTsKKwl3aGlsZSAocGFfZGF0YSkgeworCQlkYXRhID0gZWFybHlfaW9yZW1hcChwYV9kYXRhLCBzaXplb2YoKmRhdGEpKTsKKwkJZTgyMF91cGRhdGVfcmFuZ2UocGFfZGF0YSwgc2l6ZW9mKCpkYXRhKStkYXRhLT5sZW4sCisJCQkgRTgyMF9SQU0sIEU4MjBfUkVTRVJWRURfS0VSTik7CisJCWZvdW5kID0gMTsKKwkJcGFfZGF0YSA9IGRhdGEtPm5leHQ7CisJCWVhcmx5X2lvdW5tYXAoZGF0YSwgc2l6ZW9mKCpkYXRhKSk7CisJfQorCWlmICghZm91bmQpCisJCXJldHVybjsKKworCXNhbml0aXplX2U4MjBfbWFwKGU4MjAubWFwLCBBUlJBWV9TSVpFKGU4MjAubWFwKSwgJmU4MjAubnJfbWFwKTsKKwltZW1jcHkoJmU4MjBfc2F2ZWQsICZlODIwLCBzaXplb2Yoc3RydWN0IGU4MjBtYXApKTsKKwlwcmludGsoS0VSTl9JTkZPICJleHRlbmRlZCBwaHlzaWNhbCBSQU0gbWFwOlxuIik7CisJZTgyMF9wcmludF9tYXAoInJlc2VydmUgc2V0dXBfZGF0YSIpOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9lYXJseV9zZXR1cF9kYXRhKHZvaWQpCit7CisJc3RydWN0IHNldHVwX2RhdGEgKmRhdGE7CisJdTY0IHBhX2RhdGE7CisJY2hhciBidWZbMzJdOworCisJaWYgKGJvb3RfcGFyYW1zLmhkci52ZXJzaW9uIDwgMHgwMjA5KQorCQlyZXR1cm47CisJcGFfZGF0YSA9IGJvb3RfcGFyYW1zLmhkci5zZXR1cF9kYXRhOworCXdoaWxlIChwYV9kYXRhKSB7CisJCWRhdGEgPSBlYXJseV9pb3JlbWFwKHBhX2RhdGEsIHNpemVvZigqZGF0YSkpOworCQlzcHJpbnRmKGJ1ZiwgInNldHVwIGRhdGEgJXgiLCBkYXRhLT50eXBlKTsKKwkJcmVzZXJ2ZV9lYXJseShwYV9kYXRhLCBwYV9kYXRhK3NpemVvZigqZGF0YSkrZGF0YS0+bGVuLCBidWYpOworCQlwYV9kYXRhID0gZGF0YS0+bmV4dDsKKwkJZWFybHlfaW91bm1hcChkYXRhLCBzaXplb2YoKmRhdGEpKTsKKwl9Cit9CisKKy8qCisgKiAtLS0tLS0tLS0gQ3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmZGVmIENPTkZJR19LRVhFQworCisvKioKKyAqIFJlc2VydmUgQHNpemUgYnl0ZXMgb2YgY3Jhc2hrZXJuZWwgbWVtb3J5IGF0IGFueSBzdWl0YWJsZSBvZmZzZXQuCisgKgorICogQHNpemU6IFNpemUgb2YgdGhlIGNyYXNoa2VybmVsIG1lbW9yeSB0byByZXNlcnZlLgorICogUmV0dXJucyB0aGUgYmFzZSBhZGRyZXNzIG9uIHN1Y2Nlc3MsIGFuZCAtMVVMTCBvbiBmYWlsdXJlLgorICovCit1bnNpZ25lZCBsb25nIGxvbmcgZmluZF9hbmRfcmVzZXJ2ZV9jcmFzaGtlcm5lbCh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKK3sKKwljb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgYWxpZ25tZW50ID0gMTY8PDIwOyAJLyogMTZNICovCisJdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0ID0gMExMOworCisJd2hpbGUgKDEpIHsKKwkJaW50IHJldDsKKworCQlzdGFydCA9IGZpbmRfZTgyMF9hcmVhKHN0YXJ0LCBVTE9OR19NQVgsIHNpemUsIGFsaWdubWVudCk7CisJCWlmIChzdGFydCA9PSAtMVVMTCkKKwkJCXJldHVybiBzdGFydDsKKworCQkvKiB0cnkgdG8gcmVzZXJ2ZSBpdCAqLworCQlyZXQgPSByZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhzdGFydCwgc2l6ZSwgQk9PVE1FTV9FWENMVVNJVkUpOworCQlpZiAocmV0ID49IDApCisJCQlyZXR1cm4gc3RhcnQ7CisKKwkJc3RhcnQgKz0gYWxpZ25tZW50OworCX0KK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvbmcgZ2V0X3RvdGFsX21lbSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbDsKKworCXRvdGFsID0gbWF4X2xvd19wZm4gLSBtaW5fbG93X3BmbjsKKyNpZmRlZiBDT05GSUdfSElHSE1FTQorCXRvdGFsICs9IGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbjsKKyNlbmRpZgorCisJcmV0dXJuIHRvdGFsIDw8IFBBR0VfU0hJRlQ7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2NyYXNoa2VybmVsKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsX21lbTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgY3Jhc2hfc2l6ZSwgY3Jhc2hfYmFzZTsKKwlpbnQgcmV0OworCisJdG90YWxfbWVtID0gZ2V0X3RvdGFsX21lbSgpOworCisJcmV0ID0gcGFyc2VfY3Jhc2hrZXJuZWwoYm9vdF9jb21tYW5kX2xpbmUsIHRvdGFsX21lbSwKKwkJCSZjcmFzaF9zaXplLCAmY3Jhc2hfYmFzZSk7CisJaWYgKHJldCAhPSAwIHx8IGNyYXNoX3NpemUgPD0gMCkKKwkJcmV0dXJuOworCisJLyogMCBtZWFuczogZmluZCB0aGUgYWRkcmVzcyBhdXRvbWF0aWNhbGx5ICovCisJaWYgKGNyYXNoX2Jhc2UgPD0gMCkgeworCQljcmFzaF9iYXNlID0gZmluZF9hbmRfcmVzZXJ2ZV9jcmFzaGtlcm5lbChjcmFzaF9zaXplKTsKKwkJaWYgKGNyYXNoX2Jhc2UgPT0gLTFVTEwpIHsKKwkJCXByX2luZm8oImNyYXNoa2VybmVsIHJlc2VydmF0aW9uIGZhaWxlZC4gIgorCQkJCSJObyBzdWl0YWJsZSBhcmVhIGZvdW5kLlxuIik7CisJCQlyZXR1cm47CisJCX0KKwl9IGVsc2UgeworCQlyZXQgPSByZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyhjcmFzaF9iYXNlLCBjcmFzaF9zaXplLAorCQkJCQlCT09UTUVNX0VYQ0xVU0lWRSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlwcl9pbmZvKCJjcmFzaGtlcm5lbCByZXNlcnZhdGlvbiBmYWlsZWQgLSAiCisJCQkJIm1lbW9yeSBpcyBpbiB1c2VcbiIpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJcHJpbnRrKEtFUk5fSU5GTyAiUmVzZXJ2aW5nICVsZE1CIG9mIG1lbW9yeSBhdCAlbGRNQiAiCisJCQkiZm9yIGNyYXNoa2VybmVsIChTeXN0ZW0gUkFNOiAlbGRNQilcbiIsCisJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfc2l6ZSA+PiAyMCksCisJCQkodW5zaWduZWQgbG9uZykoY3Jhc2hfYmFzZSA+PiAyMCksCisJCQkodW5zaWduZWQgbG9uZykodG90YWxfbWVtID4+IDIwKSk7CisKKwljcmFzaGtfcmVzLnN0YXJ0ID0gY3Jhc2hfYmFzZTsKKwljcmFzaGtfcmVzLmVuZCAgID0gY3Jhc2hfYmFzZSArIGNyYXNoX3NpemUgLSAxOworCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZjcmFzaGtfcmVzKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQoreworfQorI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc3RhbmRhcmRfaW9fcmVzb3VyY2VzW10gPSB7CisJeyAubmFtZSA9ICJkbWExIiwgLnN0YXJ0ID0gMHgwMCwgLmVuZCA9IDB4MWYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gInBpYzEiLCAuc3RhcnQgPSAweDIwLCAuZW5kID0gMHgyMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAidGltZXIwIiwgLnN0YXJ0ID0gMHg0MCwgLmVuZCA9IDB4NDMsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gInRpbWVyMSIsIC5zdGFydCA9IDB4NTAsIC5lbmQgPSAweDUzLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJrZXlib2FyZCIsIC5zdGFydCA9IDB4NjAsIC5lbmQgPSAweDYwLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJrZXlib2FyZCIsIC5zdGFydCA9IDB4NjQsIC5lbmQgPSAweDY0LAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJkbWEgcGFnZSByZWciLCAuc3RhcnQgPSAweDgwLCAuZW5kID0gMHg4ZiwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAorCXsgLm5hbWUgPSAicGljMiIsIC5zdGFydCA9IDB4YTAsIC5lbmQgPSAweGExLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCisJeyAubmFtZSA9ICJkbWEyIiwgLnN0YXJ0ID0gMHhjMCwgLmVuZCA9IDB4ZGYsCisJCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKKwl7IC5uYW1lID0gImZwdSIsIC5zdGFydCA9IDB4ZjAsIC5lbmQgPSAweGZmLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0KK307CisKK3N0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX3N0YW5kYXJkX2lvX3Jlc291cmNlcyh2b2lkKQogewogCWludCBpOwogCi0JLyogYWxsb2NfYm9vdG1lbSB6ZXJvZXMgbWVtb3J5ICovCi0JY3B1bWFza19vZl9jcHVfbWFwID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKGNwdW1hc2tfdCkgKiBucl9jcHVfaWRzKTsKLQlmb3IgKGkgPSAwOyBpIDwgbnJfY3B1X2lkczsgaSsrKQotCQljcHVfc2V0KGksIGNwdW1hc2tfb2ZfY3B1X21hcFtpXSk7CisJLyogcmVxdWVzdCBJL08gc3BhY2UgZm9yIGRldmljZXMgdXNlZCBvbiBhbGwgaVszNDVdODYgUENzICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3RhbmRhcmRfaW9fcmVzb3VyY2VzKTsgaSsrKQorCQlyZXF1ZXN0X3Jlc291cmNlKCZpb3BvcnRfcmVzb3VyY2UsICZzdGFuZGFyZF9pb19yZXNvdXJjZXNbaV0pOworCiB9Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHNldHVwX2NwdW1hc2tfb2ZfY3B1KHZvaWQpIHsgfQotI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0vKgotICogR3JlYXQgZnV0dXJlIG5vdC1zby1mdXR1cmlzdGljIHBsYW46IG1ha2UgaTM4NiBhbmQgeDg2XzY0IGRvIGl0Ci0gKiB0aGUgc2FtZSB3YXkKKyNpZmRlZiBDT05GSUdfUFJPQ19WTUNPUkUKKy8qIGVsZmNvcmVoZHI9IHNwZWNpZmllcyB0aGUgbG9jYXRpb24gb2YgZWxmIGNvcmUgaGVhZGVyCisgKiBzdG9yZWQgYnkgdGhlIGNyYXNoZWQga2VybmVsLiBUaGlzIG9wdGlvbiB3aWxsIGJlIHBhc3NlZAorICogYnkga2V4ZWMgbG9hZGVyIHRvIHRoZSBjYXB0dXJlIGtlcm5lbC4KICAqLwotdW5zaWduZWQgbG9uZyBfX3Blcl9jcHVfb2Zmc2V0W05SX0NQVVNdIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKF9fcGVyX2NwdV9vZmZzZXQpOwotI2VuZGlmCi0KLS8qCi0gKiBHcmVhdCBmdXR1cmUgcGxhbjoKLSAqIERlY2xhcmUgUERBIGl0c2VsZiBhbmQgc3VwcG9ydCAoaXJxc3RhY2ssdHNzLHBnZCkgYXMgcGVyIGNwdSBkYXRhLgotICogQWx3YXlzIHBvaW50ICVncyB0byBpdHMgYmVnaW5uaW5nCi0gKi8KLXZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfYXJlYXModm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IHNldHVwX2VsZmNvcmVoZHIoY2hhciAqYXJnKQogewotCWludCBpLCBoaWdoZXN0X2NwdSA9IDA7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCi0jaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCi0JcHJlZmlsbF9wb3NzaWJsZV9tYXAoKTsKKwljaGFyICplbmQ7CisJaWYgKCFhcmcpCisJCXJldHVybiAtRUlOVkFMOworCWVsZmNvcmVoZHJfYWRkciA9IG1lbXBhcnNlKGFyZywgJmVuZCk7CisJcmV0dXJuIGVuZCA+IGFyZyA/IDAgOiAtRUlOVkFMOworfQorZWFybHlfcGFyYW0oImVsZmNvcmVoZHIiLCBzZXR1cF9lbGZjb3JlaGRyKTsKICNlbmRpZgogCi0JLyogQ29weSBzZWN0aW9uIGZvciBlYWNoIENQVSAod2UgZGlzY2FyZCB0aGUgb3JpZ2luYWwpICovCi0Jc2l6ZSA9IFBFUkNQVV9FTk9VR0hfUk9PTTsKLQlwcmludGsoS0VSTl9JTkZPICJQRVJDUFU6IEFsbG9jYXRpbmcgJWx1IGJ5dGVzIG9mIHBlciBjcHUgZGF0YVxuIiwKLQkJCSAgc2l6ZSk7CisvKgorICogRGV0ZXJtaW5lIGlmIHdlIHdlcmUgbG9hZGVkIGJ5IGFuIEVGSSBsb2FkZXIuICBJZiBzbywgdGhlbiB3ZSBoYXZlIGFsc28gYmVlbgorICogcGFzc2VkIHRoZSBlZmkgbWVtbWFwLCBzeXN0YWIsIGV0Yy4sIHNvIHdlIHNob3VsZCB1c2UgdGhlc2UgZGF0YSBzdHJ1Y3R1cmVzCisgKiBmb3IgaW5pdGlhbGl6YXRpb24uICBOb3RlLCB0aGUgZWZpIGluaXQgY29kZSBwYXRoIGlzIGRldGVybWluZWQgYnkgdGhlCisgKiBnbG9iYWwgZWZpX2VuYWJsZWQuIFRoaXMgYWxsb3dzIHRoZSBzYW1lIGtlcm5lbCBpbWFnZSB0byBiZSB1c2VkIG9uIGV4aXN0aW5nCisgKiBzeXN0ZW1zICh3aXRoIGEgdHJhZGl0aW9uYWwgQklPUykgYXMgd2VsbCBhcyBvbiBFRkkgc3lzdGVtcy4KKyAqLworLyoKKyAqIHNldHVwX2FyY2ggLSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgYm9vdC10aW1lIGluaXRpYWxpemF0aW9ucworICoKKyAqIE5vdGU6IE9uIHg4Nl82NCwgZml4bWFwcyBhcmUgcmVhZHkgZm9yIHVzZSBldmVuIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC4KKyAqLwogCi0JZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpIHsKLQkJY2hhciAqcHRyOwotI2lmbmRlZiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUwotCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzKHNpemUpOwordm9pZCBfX2luaXQgc2V0dXBfYXJjaChjaGFyICoqY21kbGluZV9wKQoreworI2lmZGVmIENPTkZJR19YODZfMzIKKwltZW1jcHkoJmJvb3RfY3B1X2RhdGEsICZuZXdfY3B1X2RhdGEsIHNpemVvZihuZXdfY3B1X2RhdGEpKTsKKwl2aXN3c19lYXJseV9kZXRlY3QoKTsKKwlwcmVfc2V0dXBfYXJjaF9ob29rKCk7CisJZWFybHlfY3B1X2luaXQoKTsKICNlbHNlCi0JCWludCBub2RlID0gZWFybHlfY3B1X3RvX25vZGUoaSk7Ci0JCWlmICghbm9kZV9vbmxpbmUobm9kZSkgfHwgIU5PREVfREFUQShub2RlKSkgewotCQkJcHRyID0gYWxsb2NfYm9vdG1lbV9wYWdlcyhzaXplKTsKLQkJCXByaW50ayhLRVJOX0lORk8KLQkJCSAgICAgICAiY3B1ICVkIGhhcyBubyBub2RlIG9yIG5vZGUtbG9jYWwgbWVtb3J5XG4iLCBpKTsKLQkJfQotCQllbHNlCi0JCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzX25vZGUoTk9ERV9EQVRBKG5vZGUpLCBzaXplKTsKKwlwcmludGsoS0VSTl9JTkZPICJDb21tYW5kIGxpbmU6ICVzXG4iLCBib290X2NvbW1hbmRfbGluZSk7CiAjZW5kaWYKLQkJaWYgKCFwdHIpCi0JCQlwYW5pYygiQ2Fubm90IGFsbG9jYXRlIGNwdSBkYXRhIGZvciBDUFUgJWRcbiIsIGkpOworCisJZWFybHlfaW9yZW1hcF9pbml0KCk7CisKKwlST09UX0RFViA9IG9sZF9kZWNvZGVfZGV2KGJvb3RfcGFyYW1zLmhkci5yb290X2Rldik7CisJc2NyZWVuX2luZm8gPSBib290X3BhcmFtcy5zY3JlZW5faW5mbzsKKwllZGlkX2luZm8gPSBib290X3BhcmFtcy5lZGlkX2luZm87CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCWFwbV9pbmZvLmJpb3MgPSBib290X3BhcmFtcy5hcG1fYmlvc19pbmZvOworCWlzdF9pbmZvID0gYm9vdF9wYXJhbXMuaXN0X2luZm87CisJaWYgKGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLmxlbmd0aCAhPSAwKSB7CisJCXNldF9tY2FfYnVzKGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzNdICYgMHgyKTsKKwkJbWFjaGluZV9pZCA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzBdOworCQltYWNoaW5lX3N1Ym1vZGVsX2lkID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMV07CisJCUJJT1NfcmV2aXNpb24gPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVsyXTsKKwl9CisjZW5kaWYKKwlzYXZlZF92aWRlb19tb2RlID0gYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlOworCWJvb3Rsb2FkZXJfdHlwZSA9IGJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlcjsKKworI2lmZGVmIENPTkZJR19CTEtfREVWX1JBTQorCXJkX2ltYWdlX3N0YXJ0ID0gYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19JTUFHRV9TVEFSVF9NQVNLOworCXJkX3Byb21wdCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19QUk9NUFRfRkxBRykgIT0gMCk7CisJcmRfZG9sb2FkID0gKChib290X3BhcmFtcy5oZHIucmFtX3NpemUgJiBSQU1ESVNLX0xPQURfRkxBRykgIT0gMCk7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfRUZJCisJaWYgKCFzdHJuY21wKChjaGFyICopJmJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9sb2FkZXJfc2lnbmF0dXJlLAorI2lmZGVmIENPTkZJR19YODZfMzIKKwkJICAgICAiRUwzMiIsCisjZWxzZQorCQkgICAgICJFTDY0IiwKKyNlbmRpZgorCSA0KSkgeworCQllZmlfZW5hYmxlZCA9IDE7CisJCWVmaV9yZXNlcnZlX2Vhcmx5KCk7CisJfQorI2VuZGlmCisKKwlBUkNIX1NFVFVQCisKKwlzZXR1cF9tZW1vcnlfbWFwKCk7CisJcGFyc2Vfc2V0dXBfZGF0YSgpOworCS8qIHVwZGF0ZSB0aGUgZTgyMF9zYXZlZCB0b28gKi8KKwllODIwX3Jlc2VydmVfc2V0dXBfZGF0YSgpOworCisJY29weV9lZGQoKTsKKworCWlmICghYm9vdF9wYXJhbXMuaGRyLnJvb3RfZmxhZ3MpCisJCXJvb3RfbW91bnRmbGFncyAmPSB+TVNfUkRPTkxZOworCWluaXRfbW0uc3RhcnRfY29kZSA9ICh1bnNpZ25lZCBsb25nKSBfdGV4dDsKKwlpbml0X21tLmVuZF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpIF9ldGV4dDsKKwlpbml0X21tLmVuZF9kYXRhID0gKHVuc2lnbmVkIGxvbmcpIF9lZGF0YTsKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJaW5pdF9tbS5icmsgPSBpbml0X3BnX3RhYmxlc19lbmQgKyBQQUdFX09GRlNFVDsKKyNlbHNlCisJaW5pdF9tbS5icmsgPSAodW5zaWduZWQgbG9uZykgJl9lbmQ7CisjZW5kaWYKKworCWNvZGVfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoX3RleHQpOworCWNvZGVfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKF9ldGV4dCktMTsKKwlkYXRhX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKF9ldGV4dCk7CisJZGF0YV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoX2VkYXRhKS0xOworCWJzc19yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cygmX19ic3Nfc3RhcnQpOworCWJzc19yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0b3ApLTE7CisKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0JCWNwdV9wZGEoaSktPmRhdGFfb2Zmc2V0ID0gcHRyIC0gX19wZXJfY3B1X3N0YXJ0OwotI2Vsc2UKLQkJX19wZXJfY3B1X29mZnNldFtpXSA9IHB0ciAtIF9fcGVyX2NwdV9zdGFydDsKKwllYXJseV9jcHVfaW5pdCgpOwogI2VuZGlmCi0JCW1lbWNweShwdHIsIF9fcGVyX2NwdV9zdGFydCwgX19wZXJfY3B1X2VuZCAtIF9fcGVyX2NwdV9zdGFydCk7CisJc3RybGNweShjb21tYW5kX2xpbmUsIGJvb3RfY29tbWFuZF9saW5lLCBDT01NQU5EX0xJTkVfU0laRSk7CisJKmNtZGxpbmVfcCA9IGNvbW1hbmRfbGluZTsKIAotCQloaWdoZXN0X2NwdSA9IGk7CisJcGFyc2VfZWFybHlfcGFyYW0oKTsKKworCS8qIGFmdGVyIGVhcmx5IHBhcmFtLCBzbyBjb3VsZCBnZXQgcGFuaWMgZnJvbSBzZXJpYWwgKi8KKwlyZXNlcnZlX2Vhcmx5X3NldHVwX2RhdGEoKTsKKworCWlmIChhY3BpX21wc19jaGVjaygpKSB7CisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJCWRpc2FibGVfYXBpYyA9IDE7CisjZW5kaWYKKwkJY2xlYXJfY3B1X2NhcCgmYm9vdF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfQVBJQyk7CiAJfQogCi0JbnJfY3B1X2lkcyA9IGhpZ2hlc3RfY3B1ICsgMTsKLQlwcmludGsoS0VSTl9ERUJVRyAiTlJfQ1BVUzogJWQsIG5yX2NwdV9pZHM6ICVkXG4iLCBOUl9DUFVTLCBucl9jcHVfaWRzKTsKKwlmaW5pc2hfZTgyMF9wYXJzaW5nKCk7CiAKLQkvKiBTZXR1cCBwZXJjcHUgZGF0YSBtYXBzICovCi0Jc2V0dXBfcGVyX2NwdV9tYXBzKCk7Ci0KLQkvKiBTZXR1cCBjcHVtYXNrX29mX2NwdSBtYXAgKi8KLQlzZXR1cF9jcHVtYXNrX29mX2NwdSgpOwotfQotCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCXByb2JlX3JvbXMoKTsKICNlbmRpZgorCisJLyogYWZ0ZXIgcGFyc2VfZWFybHlfcGFyYW0sIHNvIGNvdWxkIGRlYnVnIGl0ICovCisJaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmNvZGVfcmVzb3VyY2UpOworCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZkYXRhX3Jlc291cmNlKTsKKwlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmYnNzX3Jlc291cmNlKTsKKworCWlmIChlZmlfZW5hYmxlZCkKKwkJZWZpX2luaXQoKTsKKworI2lmZGVmIENPTkZJR19YODZfMzIKKwlpZiAocHByb193aXRoX3JhbV9idWcoKSkgeworCQllODIwX3VwZGF0ZV9yYW5nZSgweDcwMDAwMDAwVUxMLCAweDQwMDAwVUxMLCBFODIwX1JBTSwKKwkJCQkgIEU4MjBfUkVTRVJWRUQpOworCQlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7CisJCXByaW50ayhLRVJOX0lORk8gImZpeGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKKwkJZTgyMF9wcmludF9tYXAoImJhZF9wcHJvIik7CisJfQorI2Vsc2UKKwllYXJseV9nYXJ0X2lvbW11X2NoZWNrKCk7CisjZW5kaWYKKworCS8qCisJICogcGFydGlhbGx5IHVzZWQgcGFnZXMgYXJlIG5vdCB1c2FibGUgLSB0aHVzCisJICogd2UgYXJlIHJvdW5kaW5nIHVwd2FyZHM6CisJICovCisJbWF4X3BmbiA9IGU4MjBfZW5kX29mX3JhbV9wZm4oKTsKKworCS8qIHByZWFsbG9jYXRlIDRrIGZvciBtcHRhYmxlIG1wYyAqLworCWVhcmx5X3Jlc2VydmVfZTgyMF9tcGNfbmV3KCk7CisJLyogdXBkYXRlIGU4MjAgZm9yIG1lbW9yeSBub3QgY292ZXJlZCBieSBXQiBNVFJScyAqLworCW10cnJfYnBfaW5pdCgpOworCWlmIChtdHJyX3RyaW1fdW5jYWNoZWRfbWVtb3J5KG1heF9wZm4pKQorCQltYXhfcGZuID0gZTgyMF9lbmRfb2ZfcmFtX3BmbigpOworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCS8qIG1heF9sb3dfcGZuIGdldCB1cGRhdGVkIGhlcmUgKi8KKwlmaW5kX2xvd19wZm5fcmFuZ2UoKTsKKyNlbHNlCisJbnVtX3BoeXNwYWdlcyA9IG1heF9wZm47CisKKwljaGVja19lZmVyKCk7CisKKwkvKiBIb3cgbWFueSBlbmQtb2YtbWVtb3J5IHZhcmlhYmxlcyB5b3UgaGF2ZSwgZ3JhbmRtYSEgKi8KKwkvKiBuZWVkIHRoaXMgYmVmb3JlIGNhbGxpbmcgcmVzZXJ2ZV9pbml0cmQgKi8KKwlpZiAobWF4X3BmbiA+ICgxVUw8PCgzMiAtIFBBR0VfU0hJRlQpKSkKKwkJbWF4X2xvd19wZm4gPSBlODIwX2VuZF9vZl9sb3dfcmFtX3BmbigpOworCWVsc2UKKwkJbWF4X2xvd19wZm4gPSBtYXhfcGZuOworCisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKV9fdmEobWF4X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKKyNlbmRpZgorCisJLyogbWF4X3Bmbl9tYXBwZWQgaXMgdXBkYXRlZCBoZXJlICovCisJbWF4X2xvd19wZm5fbWFwcGVkID0gaW5pdF9tZW1vcnlfbWFwcGluZygwLCBtYXhfbG93X3Bmbjw8UEFHRV9TSElGVCk7CisJbWF4X3Bmbl9tYXBwZWQgPSBtYXhfbG93X3Bmbl9tYXBwZWQ7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaWYgKG1heF9wZm4gPiBtYXhfbG93X3BmbikgeworCQltYXhfcGZuX21hcHBlZCA9IGluaXRfbWVtb3J5X21hcHBpbmcoMVVMPDwzMiwKKwkJCQkJCSAgICAgbWF4X3Bmbjw8UEFHRV9TSElGVCk7CisJCS8qIGNhbiB3ZSBwcmVzZXZlIG1heF9sb3dfcGZuID8qLworCQltYXhfbG93X3BmbiA9IG1heF9wZm47CisJfQorI2VuZGlmCisKKwkvKgorCSAqIE5PVEU6IE9uIHg4Ni0zMiwgb25seSBmcm9tIHRoaXMgcG9pbnQgb24sIGZpeG1hcHMgYXJlIHJlYWR5IGZvciB1c2UuCisJICovCisKKyNpZmRlZiBDT05GSUdfUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVAorCWlmIChpbml0X29oY2kxMzk0X2RtYV9lYXJseSkKKwkJaW5pdF9vaGNpMTM5NF9kbWFfb25fYWxsX2NvbnRyb2xsZXJzKCk7CisjZW5kaWYKKworCXJlc2VydmVfaW5pdHJkKCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJdnNtcF9pbml0KCk7CisjZW5kaWYKKworCWRtaV9zY2FuX21hY2hpbmUoKTsKKworCWlvX2RlbGF5X2luaXQoKTsKKworCS8qCisJICogUGFyc2UgdGhlIEFDUEkgdGFibGVzIGZvciBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb24uCisJICovCisJYWNwaV9ib290X3RhYmxlX2luaXQoKTsKKworI2lmZGVmIENPTkZJR19BQ1BJX05VTUEKKwkvKgorCSAqIFBhcnNlIFNSQVQgdG8gZGlzY292ZXIgbm9kZXMuCisJICovCisJYWNwaV9udW1hX2luaXQoKTsKKyNlbmRpZgorCisJaW5pdG1lbV9pbml0KDAsIG1heF9wZm4pOworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWRtYTMyX3Jlc2VydmVfYm9vdG1lbSgpOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQUNQSV9TTEVFUAorCS8qCisJICogUmVzZXJ2ZSBsb3cgbWVtb3J5IHJlZ2lvbiBmb3Igc2xlZXAgc3VwcG9ydC4KKwkgKi8KKwlhY3BpX3Jlc2VydmVfYm9vdG1lbSgpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9GSU5EX1NNUF9DT05GSUcKKwkvKgorCSAqIEZpbmQgYW5kIHJlc2VydmUgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgorCSAqLworCWZpbmRfc21wX2NvbmZpZygpOworI2VuZGlmCisJcmVzZXJ2ZV9jcmFzaGtlcm5lbCgpOworCisJcmVzZXJ2ZV9pYmZ0X3JlZ2lvbigpOworCisjaWZkZWYgQ09ORklHX0tWTV9DTE9DSworCWt2bWNsb2NrX2luaXQoKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfVk1JKSAmJiBkZWZpbmVkKENPTkZJR19YODZfMzIpCisJLyoKKwkgKiBNdXN0IGJlIGFmdGVyIG1heF9sb3dfcGZuIGlzIGRldGVybWluZWQsIGFuZCBiZWZvcmUga2VybmVsCisJICogcGFnZXRhYmxlcyBhcmUgc2V0dXAuCisJICovCisJdm1pX2luaXQoKTsKKyNlbmRpZgorCisJcGFnaW5nX2luaXQoKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwltYXBfdnN5c2NhbGwoKTsKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1g4Nl9HRU5FUklDQVJDSAorCWdlbmVyaWNfYXBpY19wcm9iZSgpOworI2VuZGlmCisKKwllYXJseV9xdWlya3MoKTsKKworCS8qCisJICogUmVhZCBBUElDIGFuZCBzb21lIG90aGVyIGVhcmx5IGluZm9ybWF0aW9uIGZyb20gQUNQSSB0YWJsZXMuCisJICovCisJYWNwaV9ib290X2luaXQoKTsKKworI2lmIGRlZmluZWQoQ09ORklHX1g4Nl9NUFBBUlNFKSB8fCBkZWZpbmVkKENPTkZJR19YODZfVklTV1MpCisJLyoKKwkgKiBnZXQgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uOgorCSAqLworCWlmIChzbXBfZm91bmRfY29uZmlnKQorCQlnZXRfc21wX2NvbmZpZygpOworI2VuZGlmCisKKwlwcmVmaWxsX3Bvc3NpYmxlX21hcCgpOworI2lmZGVmIENPTkZJR19YODZfNjQKKwlpbml0X2NwdV90b19ub2RlKCk7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwkvKgorCSAqIG5lZWQgdG8gY2hlY2sgb25saW5lIG5vZGVzIG51bSwgY2FsbCBpdAorCSAqIGhlcmUgYmVmb3JlIHRpbWVfaW5pdC90c2NfaW5pdAorCSAqLworCW51bWFxX3RzY19kaXNhYmxlKCk7CisjZW5kaWYKKworCWluaXRfYXBpY19tYXBwaW5ncygpOworCWlvYXBpY19pbml0X21hcHBpbmdzKCk7CisKKyNpZiBkZWZpbmVkKENPTkZJR19TTVApICYmIGRlZmluZWQoQ09ORklHX1g4Nl9QQykgJiYgZGVmaW5lZChDT05GSUdfWDg2XzMyKQorCWlmIChkZWZfdG9fYmlnc21wKQorCQlwcmludGsoS0VSTl9XQVJOSU5HICJNb3JlIHRoYW4gOCBDUFVzIGRldGVjdGVkIGFuZCAiCisJCQkiQ09ORklHX1g4Nl9QQyBjYW5ub3QgaGFuZGxlIGl0LlxuVXNlICIKKwkJCSJDT05GSUdfWDg2X0dFTkVSSUNBUkNIIG9yIENPTkZJR19YODZfQklHU01QLlxuIik7CisjZW5kaWYKKwlrdm1fZ3Vlc3RfaW5pdCgpOworCisJZTgyMF9yZXNlcnZlX3Jlc291cmNlcygpOworCWU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyhtYXhfbG93X3Bmbik7CisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJcmVxdWVzdF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZ2aWRlb19yYW1fcmVzb3VyY2UpOworI2VuZGlmCisJcmVzZXJ2ZV9zdGFuZGFyZF9pb19yZXNvdXJjZXMoKTsKKworCWU4MjBfc2V0dXBfZ2FwKCk7CisKKyNpZmRlZiBDT05GSUdfVlQKKyNpZiBkZWZpbmVkKENPTkZJR19WR0FfQ09OU09MRSkKKwlpZiAoIWVmaV9lbmFibGVkIHx8IChlZmlfbWVtX3R5cGUoMHhhMDAwMCkgIT0gRUZJX0NPTlZFTlRJT05BTF9NRU1PUlkpKQorCQljb25zd2l0Y2hwID0gJnZnYV9jb247CisjZWxpZiBkZWZpbmVkKENPTkZJR19EVU1NWV9DT05TT0xFKQorCWNvbnN3aXRjaHAgPSAmZHVtbXlfY29uOworI2VuZGlmCisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cDY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXA2NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWUwZTgyLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cDY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSwyODcgKzAsMCBAQAotLyogCi0gKiBYODYtNjQgc3BlY2lmaWMgQ1BVIHNldHVwLgotICogQ29weXJpZ2h0IChDKSAxOTk1ICBMaW51cyBUb3J2YWxkcwotICogQ29weXJpZ2h0IDIwMDEsIDIwMDIsIDIwMDMgU3VTRSBMYWJzIC8gQW5kaSBLbGVlbi4KLSAqIFNlZSBzZXR1cC5jIGZvciBvbGRlciBjaGFuZ2Vsb2cuCi0gKi8gCi0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2tnZGIuaD4KLSNpbmNsdWRlIDxhc20vcGRhLmg+Ci0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotI2luY2x1ZGUgPGFzbS9pMzg3Lmg+Ci0jaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgotI2luY2x1ZGUgPGFzbS9wcm90by5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgotI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+Ci0KLSNpZm5kZWYgQ09ORklHX0RFQlVHX0JPT1RfUEFSQU1TCi1zdHJ1Y3QgYm9vdF9wYXJhbXMgX19pbml0ZGF0YSBib290X3BhcmFtczsKLSNlbHNlCi1zdHJ1Y3QgYm9vdF9wYXJhbXMgYm9vdF9wYXJhbXM7Ci0jZW5kaWYKLQotY3B1bWFza190IGNwdV9pbml0aWFsaXplZCBfX2NwdWluaXRkYXRhID0gQ1BVX01BU0tfTk9ORTsKLQotc3RydWN0IHg4NjY0X3BkYSAqX2NwdV9wZGFbTlJfQ1BVU10gX19yZWFkX21vc3RseTsKLUVYUE9SVF9TWU1CT0woX2NwdV9wZGEpOwotc3RydWN0IHg4NjY0X3BkYSBib290X2NwdV9wZGFbTlJfQ1BVU10gX19jYWNoZWxpbmVfYWxpZ25lZDsKLQotc3RydWN0IGRlc2NfcHRyIGlkdF9kZXNjciA9IHsgMjU2ICogMTYgLSAxLCAodW5zaWduZWQgbG9uZykgaWR0X3RhYmxlIH07Ci0KLWNoYXIgYm9vdF9jcHVfc3RhY2tbSVJRU1RBQ0tTSVpFXSBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7Ci0KLXVuc2lnbmVkIGxvbmcgX19zdXBwb3J0ZWRfcHRlX21hc2sgX19yZWFkX21vc3RseSA9IH4wVUw7Ci1FWFBPUlRfU1lNQk9MX0dQTChfX3N1cHBvcnRlZF9wdGVfbWFzayk7Ci0KLXN0YXRpYyBpbnQgZG9fbm90X254IF9fY3B1aW5pdGRhdGEgPSAwOwotCi0vKiBub2V4ZWM9b258b2ZmCi1Db250cm9sIG5vbiBleGVjdXRhYmxlIG1hcHBpbmdzIGZvciA2NGJpdCBwcm9jZXNzZXMuCi0KLW9uCUVuYWJsZShkZWZhdWx0KQotb2ZmCURpc2FibGUKLSovIAotc3RhdGljIGludCBfX2luaXQgbm9ueF9zZXR1cChjaGFyICpzdHIpCi17Ci0JaWYgKCFzdHIpCi0JCXJldHVybiAtRUlOVkFMOwotCWlmICghc3RybmNtcChzdHIsICJvbiIsIDIpKSB7Ci0gICAgICAgICAgICAgICAgX19zdXBwb3J0ZWRfcHRlX21hc2sgfD0gX1BBR0VfTlg7IAotIAkJZG9fbm90X254ID0gMDsgCi0JfSBlbHNlIGlmICghc3RybmNtcChzdHIsICJvZmYiLCAzKSkgewotCQlkb19ub3RfbnggPSAxOwotCQlfX3N1cHBvcnRlZF9wdGVfbWFzayAmPSB+X1BBR0VfTlg7Ci0gICAgICAgIH0KLQlyZXR1cm4gMDsKLX0gCi1lYXJseV9wYXJhbSgibm9leGVjIiwgbm9ueF9zZXR1cCk7Ci0KLWludCBmb3JjZV9wZXJzb25hbGl0eTMyID0gMDsgCi0KLS8qIG5vZXhlYzMyPW9ufG9mZgotQ29udHJvbCBub24gZXhlY3V0YWJsZSBoZWFwIGZvciAzMmJpdCBwcm9jZXNzZXMuCi1UbyBjb250cm9sIHRoZSBzdGFjayB0b28gdXNlIG5vZXhlYz1vZmYKLQotb24JUFJPVF9SRUFEIGRvZXMgbm90IGltcGx5IFBST1RfRVhFQyBmb3IgMzJiaXQgcHJvY2Vzc2VzIChkZWZhdWx0KQotb2ZmCVBST1RfUkVBRCBpbXBsaWVzIFBST1RfRVhFQwotKi8KLXN0YXRpYyBpbnQgX19pbml0IG5vbngzMl9zZXR1cChjaGFyICpzdHIpCi17Ci0JaWYgKCFzdHJjbXAoc3RyLCAib24iKSkKLQkJZm9yY2VfcGVyc29uYWxpdHkzMiAmPSB+UkVBRF9JTVBMSUVTX0VYRUM7Ci0JZWxzZSBpZiAoIXN0cmNtcChzdHIsICJvZmYiKSkKLQkJZm9yY2VfcGVyc29uYWxpdHkzMiB8PSBSRUFEX0lNUExJRVNfRVhFQzsKLQlyZXR1cm4gMTsKLX0KLV9fc2V0dXAoIm5vZXhlYzMyPSIsIG5vbngzMl9zZXR1cCk7Ci0KLXZvaWQgcGRhX2luaXQoaW50IGNwdSkKLXsgCi0Jc3RydWN0IHg4NjY0X3BkYSAqcGRhID0gY3B1X3BkYShjcHUpOwotCi0JLyogU2V0dXAgdXAgZGF0YSB0aGF0IG1heSBiZSBuZWVkZWQgaW4gX19nZXRfZnJlZV9wYWdlcyBlYXJseSAqLwotCWFzbSB2b2xhdGlsZSgibW92bCAlMCwlJWZzIDsgbW92bCAlMCwlJWdzIiA6OiAiciIgKDApKTsgCi0JLyogTWVtb3J5IGNsb2JiZXJzIHVzZWQgdG8gb3JkZXIgUERBIGFjY2Vzc2VkICovCi0JbWIoKTsKLQl3cm1zcmwoTVNSX0dTX0JBU0UsIHBkYSk7Ci0JbWIoKTsKLQotCXBkYS0+Y3B1bnVtYmVyID0gY3B1OyAKLQlwZGEtPmlycWNvdW50ID0gLTE7Ci0JcGRhLT5rZXJuZWxzdGFjayA9IAotCQkodW5zaWduZWQgbG9uZylzdGFja190aHJlYWRfaW5mbygpIC0gUERBX1NUQUNLT0ZGU0VUICsgVEhSRUFEX1NJWkU7IAotCXBkYS0+YWN0aXZlX21tID0gJmluaXRfbW07Ci0JcGRhLT5tbXVfc3RhdGUgPSAwOwotCi0JaWYgKGNwdSA9PSAwKSB7Ci0JCS8qIG90aGVycyBhcmUgaW5pdGlhbGl6ZWQgaW4gc21wYm9vdC5jICovCi0JCXBkYS0+cGN1cnJlbnQgPSAmaW5pdF90YXNrOwotCQlwZGEtPmlycXN0YWNrcHRyID0gYm9vdF9jcHVfc3RhY2s7IAotCX0gZWxzZSB7Ci0JCXBkYS0+aXJxc3RhY2twdHIgPSAoY2hhciAqKQotCQkJX19nZXRfZnJlZV9wYWdlcyhHRlBfQVRPTUlDLCBJUlFTVEFDS19PUkRFUik7Ci0JCWlmICghcGRhLT5pcnFzdGFja3B0cikKLQkJCXBhbmljKCJjYW5ub3QgYWxsb2NhdGUgaXJxc3RhY2sgZm9yIGNwdSAlZCIsIGNwdSk7IAotCX0KLQotCi0JcGRhLT5pcnFzdGFja3B0ciArPSBJUlFTVEFDS1NJWkUtNjQ7Ci19IAotCi1jaGFyIGJvb3RfZXhjZXB0aW9uX3N0YWNrc1soTl9FWENFUFRJT05fU1RBQ0tTIC0gMSkgKiBFWENFUFRJT05fU1RLU1ogKyBERUJVR19TVEtTWl0KLV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5ic3MucGFnZV9hbGlnbmVkIikpKTsKLQotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBpZ25vcmVfc3lzcmV0KHZvaWQpOwotCi0vKiBNYXkgbm90IGJlIG1hcmtlZCBfX2luaXQ6IHVzZWQgYnkgc29mdHdhcmUgc3VzcGVuZCAqLwotdm9pZCBzeXNjYWxsX2luaXQodm9pZCkKLXsKLQkvKiAKLQkgKiBMU1RBUiBhbmQgU1RBUiBsaXZlIGluIGEgYml0IHN0cmFuZ2Ugc3ltYmlvc2lzLgotCSAqIFRoZXkgYm90aCB3cml0ZSB0byB0aGUgc2FtZSBpbnRlcm5hbCByZWdpc3Rlci4gU1RBUiBhbGxvd3MgdG8gc2V0IENTL0RTCi0JICogYnV0IG9ubHkgYSAzMmJpdCB0YXJnZXQuIExTVEFSIHNldHMgdGhlIDY0Yml0IHJpcC4gCSAKLQkgKi8gCi0Jd3Jtc3JsKE1TUl9TVEFSLCAgKCh1NjQpX19VU0VSMzJfQ1MpPDw0OCAgfCAoKHU2NClfX0tFUk5FTF9DUyk8PDMyKTsgCi0Jd3Jtc3JsKE1TUl9MU1RBUiwgc3lzdGVtX2NhbGwpOyAKLQl3cm1zcmwoTVNSX0NTVEFSLCBpZ25vcmVfc3lzcmV0KTsKLQotI2lmZGVmIENPTkZJR19JQTMyX0VNVUxBVElPTiAgIAkJCi0Jc3lzY2FsbDMyX2NwdV9pbml0ICgpOwotI2VuZGlmCi0KLQkvKiBGbGFncyB0byBjbGVhciBvbiBzeXNjYWxsICovCi0Jd3Jtc3JsKE1TUl9TWVNDQUxMX01BU0ssCi0JICAgICAgIFg4Nl9FRkxBR1NfVEZ8WDg2X0VGTEFHU19ERnxYODZfRUZMQUdTX0lGfFg4Nl9FRkxBR1NfSU9QTCk7Ci19Ci0KLXZvaWQgX19jcHVpbml0IGNoZWNrX2VmZXIodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGVmZXI7Ci0KLQlyZG1zcmwoTVNSX0VGRVIsIGVmZXIpOyAKLSAgICAgICAgaWYgKCEoZWZlciAmIEVGRVJfTlgpIHx8IGRvX25vdF9ueCkgeyAKLSAgICAgICAgICAgICAgICBfX3N1cHBvcnRlZF9wdGVfbWFzayAmPSB+X1BBR0VfTlg7IAotICAgICAgICB9ICAgICAgIAotfQotCi11bnNpZ25lZCBsb25nIGtlcm5lbF9lZmxhZ3M7Ci0KLS8qCi0gKiBDb3BpZXMgb2YgdGhlIG9yaWdpbmFsIGlzdCB2YWx1ZXMgZnJvbSB0aGUgdHNzIGFyZSBvbmx5IGFjY2Vzc2VkIGR1cmluZwotICogZGVidWdnaW5nLCBubyBzcGVjaWFsIGFsaWdubWVudCByZXF1aXJlZC4KLSAqLwotREVGSU5FX1BFUl9DUFUoc3RydWN0IG9yaWdfaXN0LCBvcmlnX2lzdCk7Ci0KLS8qCi0gKiBjcHVfaW5pdCgpIGluaXRpYWxpemVzIHN0YXRlIHRoYXQgaXMgcGVyLUNQVS4gU29tZSBkYXRhIGlzIGFscmVhZHkKLSAqIGluaXRpYWxpemVkIChuYXR1cmFsbHkpIGluIHRoZSBib290c3RyYXAgcHJvY2Vzcywgc3VjaCBhcyB0aGUgR0RUCi0gKiBhbmQgSURULiBXZSByZWxvYWQgdGhlbSBuZXZlcnRoZWxlc3MsIHRoaXMgZnVuY3Rpb24gYWN0cyBhcyBhCi0gKiAnQ1BVIHN0YXRlIGJhcnJpZXInLCBub3RoaW5nIHNob3VsZCBnZXQgYWNyb3NzLgotICogQSBsb3Qgb2Ygc3RhdGUgaXMgYWxyZWFkeSBzZXQgdXAgaW4gUERBIGluaXQuCi0gKi8KLXZvaWQgX19jcHVpbml0IGNwdV9pbml0ICh2b2lkKQotewotCWludCBjcHUgPSBzdGFja19zbXBfcHJvY2Vzc29yX2lkKCk7Ci0Jc3RydWN0IHRzc19zdHJ1Y3QgKnQgPSAmcGVyX2NwdShpbml0X3RzcywgY3B1KTsKLQlzdHJ1Y3Qgb3JpZ19pc3QgKm9yaWdfaXN0ID0gJnBlcl9jcHUob3JpZ19pc3QsIGNwdSk7Ci0JdW5zaWduZWQgbG9uZyB2OyAKLQljaGFyICplc3RhY2tzID0gTlVMTDsgCi0Jc3RydWN0IHRhc2tfc3RydWN0ICptZTsKLQlpbnQgaTsKLQotCS8qIENQVSAwIGlzIGluaXRpYWxpc2VkIGluIGhlYWQ2NC5jICovCi0JaWYgKGNwdSAhPSAwKSB7Ci0JCXBkYV9pbml0KGNwdSk7Ci0JfSBlbHNlIAotCQllc3RhY2tzID0gYm9vdF9leGNlcHRpb25fc3RhY2tzOyAKLQotCW1lID0gY3VycmVudDsKLQotCWlmIChjcHVfdGVzdF9hbmRfc2V0KGNwdSwgY3B1X2luaXRpYWxpemVkKSkKLQkJcGFuaWMoIkNQVSMlZCBhbHJlYWR5IGluaXRpYWxpemVkIVxuIiwgY3B1KTsKLQotCXByaW50aygiSW5pdGlhbGl6aW5nIENQVSMlZFxuIiwgY3B1KTsKLQotCWNsZWFyX2luX2NyNChYODZfQ1I0X1ZNRXxYODZfQ1I0X1BWSXxYODZfQ1I0X1RTRHxYODZfQ1I0X0RFKTsKLQotCS8qCi0JICogSW5pdGlhbGl6ZSB0aGUgcGVyLUNQVSBHRFQgd2l0aCB0aGUgYm9vdCBHRFQsCi0JICogYW5kIHNldCB1cCB0aGUgR0RUIGRlc2NyaXB0b3I6Ci0JICovCi0JaWYgKGNwdSkKLQkJbWVtY3B5KGdldF9jcHVfZ2R0X3RhYmxlKGNwdSksIGNwdV9nZHRfdGFibGUsIEdEVF9TSVpFKTsKLQotCWNwdV9nZHRfZGVzY3JbY3B1XS5zaXplID0gR0RUX1NJWkU7Ci0JbG9hZF9nZHQoKGNvbnN0IHN0cnVjdCBkZXNjX3B0ciAqKSZjcHVfZ2R0X2Rlc2NyW2NwdV0pOwotCWxvYWRfaWR0KChjb25zdCBzdHJ1Y3QgZGVzY19wdHIgKikmaWR0X2Rlc2NyKTsKLQotCW1lbXNldChtZS0+dGhyZWFkLnRsc19hcnJheSwgMCwgR0RUX0VOVFJZX1RMU19FTlRSSUVTICogOCk7Ci0Jc3lzY2FsbF9pbml0KCk7Ci0KLQl3cm1zcmwoTVNSX0ZTX0JBU0UsIDApOwotCXdybXNybChNU1JfS0VSTkVMX0dTX0JBU0UsIDApOwotCWJhcnJpZXIoKTsgCi0KLQljaGVja19lZmVyKCk7Ci0KLQkvKgotCSAqIHNldCB1cCBhbmQgbG9hZCB0aGUgcGVyLUNQVSBUU1MKLQkgKi8KLQlmb3IgKHYgPSAwOyB2IDwgTl9FWENFUFRJT05fU1RBQ0tTOyB2KyspIHsKLQkJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBvcmRlcltOX0VYQ0VQVElPTl9TVEFDS1NdID0gewotCQkJWzAgLi4uIE5fRVhDRVBUSU9OX1NUQUNLUyAtIDFdID0gRVhDRVBUSU9OX1NUQUNLX09SREVSLAotCQkJW0RFQlVHX1NUQUNLIC0gMV0gPSBERUJVR19TVEFDS19PUkRFUgotCQl9OwotCQlpZiAoY3B1KSB7Ci0JCQllc3RhY2tzID0gKGNoYXIgKilfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMsIG9yZGVyW3ZdKTsKLQkJCWlmICghZXN0YWNrcykKLQkJCQlwYW5pYygiQ2Fubm90IGFsbG9jYXRlIGV4Y2VwdGlvbiBzdGFjayAlbGQgJWRcbiIsCi0JCQkJICAgICAgdiwgY3B1KTsgCi0JCX0KLQkJZXN0YWNrcyArPSBQQUdFX1NJWkUgPDwgb3JkZXJbdl07Ci0JCW9yaWdfaXN0LT5pc3Rbdl0gPSB0LT54ODZfdHNzLmlzdFt2XSA9ICh1bnNpZ25lZCBsb25nKWVzdGFja3M7Ci0JfQotCi0JdC0+eDg2X3Rzcy5pb19iaXRtYXBfYmFzZSA9IG9mZnNldG9mKHN0cnVjdCB0c3Nfc3RydWN0LCBpb19iaXRtYXApOwotCS8qCi0JICogPD0gaXMgcmVxdWlyZWQgYmVjYXVzZSB0aGUgQ1BVIHdpbGwgYWNjZXNzIHVwIHRvCi0JICogOCBiaXRzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBJTyBwZXJtaXNzaW9uIGJpdG1hcC4KLQkgKi8KLQlmb3IgKGkgPSAwOyBpIDw9IElPX0JJVE1BUF9MT05HUzsgaSsrKQotCQl0LT5pb19iaXRtYXBbaV0gPSB+MFVMOwotCi0JYXRvbWljX2luYygmaW5pdF9tbS5tbV9jb3VudCk7Ci0JbWUtPmFjdGl2ZV9tbSA9ICZpbml0X21tOwotCWlmIChtZS0+bW0pCi0JCUJVRygpOwotCWVudGVyX2xhenlfdGxiKCZpbml0X21tLCBtZSk7Ci0KLQlzZXRfdHNzX2Rlc2MoY3B1LCB0KTsKLQlsb2FkX1RSX2Rlc2MoKTsKLQlsb2FkX0xEVCgmaW5pdF9tbS5jb250ZXh0KTsKLQotI2lmZGVmIENPTkZJR19LR0RCCi0JLyoKLQkgKiBJZiB0aGUga2dkYiBpcyBjb25uZWN0ZWQgbm8gZGVidWcgcmVncyBzaG91bGQgYmUgYWx0ZXJlZC4gIFRoaXMKLQkgKiBpcyBvbmx5IGFwcGxpY2FibGUgd2hlbiBLR0RCIGFuZCBhIEtHREIgSS9PIG1vZHVsZSBhcmUgYnVpbHQKLQkgKiBpbnRvIHRoZSBrZXJuZWwgYW5kIHlvdSBhcmUgdXNpbmcgZWFybHkgZGVidWdnaW5nIHdpdGgKLQkgKiBrZ2Rid2FpdC4gS0dEQiB3aWxsIGNvbnRyb2wgdGhlIGtlcm5lbCBIVyBicmVha3BvaW50IHJlZ2lzdGVycy4KLQkgKi8KLQlpZiAoa2dkYl9jb25uZWN0ZWQgJiYgYXJjaF9rZ2RiX29wcy5jb3JyZWN0X2h3X2JyZWFrKQotCQlhcmNoX2tnZGJfb3BzLmNvcnJlY3RfaHdfYnJlYWsoKTsKLQllbHNlIHsKLSNlbmRpZgotCS8qCi0JICogQ2xlYXIgYWxsIDYgZGVidWcgcmVnaXN0ZXJzOgotCSAqLwotCi0Jc2V0X2RlYnVncmVnKDBVTCwgMCk7Ci0Jc2V0X2RlYnVncmVnKDBVTCwgMSk7Ci0Jc2V0X2RlYnVncmVnKDBVTCwgMik7Ci0Jc2V0X2RlYnVncmVnKDBVTCwgMyk7Ci0Jc2V0X2RlYnVncmVnKDBVTCwgNik7Ci0Jc2V0X2RlYnVncmVnKDBVTCwgNyk7Ci0jaWZkZWYgQ09ORklHX0tHREIKLQkvKiBJZiB0aGUga2dkYiBpcyBjb25uZWN0ZWQgbm8gZGVidWcgcmVncyBzaG91bGQgYmUgYWx0ZXJlZC4gKi8KLQl9Ci0jZW5kaWYKLQotCWZwdV9pbml0KCk7IAotCi0JcmF3X2xvY2FsX3NhdmVfZmxhZ3Moa2VybmVsX2VmbGFncyk7Ci0KLQlpZiAoaXNfdXZfc3lzdGVtKCkpCi0JCXV2X2NwdV9pbml0KCk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF8zMi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzVmOGIyLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cF8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsOTU4ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAxOTk1ICBMaW51cyBUb3J2YWxkcwotICoKLSAqICBTdXBwb3J0IG9mIEJJR01FTSBhZGRlZCBieSBHZXJoYXJkIFdpY2hlcnQsIFNpZW1lbnMgQUcsIEp1bHkgMTk5OQotICoKLSAqICBNZW1vcnkgcmVnaW9uIHN1cHBvcnQKLSAqCURhdmlkIFBhcnNvbnMgPG9yY0BwZWxsLmNoaS5pbC51cz4sIEp1bHktQXVndXN0IDE5OTkKLSAqCi0gKiAgQWRkZWQgRTgyMCBzYW5pdGl6YXRpb24gcm91dGluZSAocmVtb3ZlcyBvdmVybGFwcGluZyBtZW1vcnkgcmVnaW9ucyk7Ci0gKiAgQnJpYW4gTW95bGUgPGJtb3lsZUBtdmlzdGEuY29tPiwgRmVicnVhcnkgMjAwMQotICoKLSAqIE1vdmVkIENQVSBkZXRlY3Rpb24gY29kZSB0byBjcHUvJHtjcHV9LmMKLSAqICAgIFBhdHJpY2sgTW9jaGVsIDxtb2NoZWxAb3NkbC5vcmc+LCBNYXJjaCAyMDAyCi0gKgotICogIFByb3Zpc2lvbnMgZm9yIGVtcHR5IEU4MjAgbWVtb3J5IHJlZ2lvbnMgKHJlcG9ydGVkIGJ5IGNlcnRhaW4gQklPU2VzKS4KLSAqICBBbGV4IEFjaGVuYmFjaCA8eGVsYUBzbGl0LmRlPiwgRGVjZW1iZXIgMjAwMi4KLSAqCi0gKi8KLQotLyoKLSAqIFRoaXMgZmlsZSBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IHBhcnRzIG9mIGluaXRpYWxpemF0aW9uCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KLSNpbmNsdWRlIDxsaW51eC9zY3JlZW5faW5mby5oPgotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9hcG1fYmlvcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXRyZC5oPgotI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tY2EuaD4KLSNpbmNsdWRlIDxsaW51eC9yb290X2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9lZmkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZWRkLmg+Ci0jaW5jbHVkZSA8bGludXgvaXNjc2lfaWJmdC5oPgotI2luY2x1ZGUgPGxpbnV4L25vZGVtYXNrLmg+Ci0jaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1pLmg+Ci0jaW5jbHVkZSA8bGludXgvcGZuLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdF9vaGNpMTM5NF9kbWEuaD4KLSNpbmNsdWRlIDxsaW51eC9rdm1fcGFyYS5oPgotCi0jaW5jbHVkZSA8dmlkZW8vZWRpZC5oPgotCi0jaW5jbHVkZSA8YXNtL210cnIuaD4KLSNpbmNsdWRlIDxhc20vYXBpYy5oPgotI2luY2x1ZGUgPGFzbS9lODIwLmg+Ci0jaW5jbHVkZSA8YXNtL21wc3BlYy5oPgotI2luY2x1ZGUgPGFzbS9tbXpvbmUuaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2lzdC5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS92bWkuaD4KLSNpbmNsdWRlIDxzZXR1cF9hcmNoLmg+Ci0jaW5jbHVkZSA8YXNtL2Jpb3NfZWJkYS5oPgotI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotCi0vKiBUaGlzIHZhbHVlIGlzIHNldCB1cCBieSB0aGUgZWFybHkgYm9vdCBjb2RlIHRvIHBvaW50IHRvIHRoZSB2YWx1ZQotICAgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGJvb3QgdGltZSBwYWdlIHRhYmxlcy4gIEl0IGNvbnRhaW5zIGEgKnBoeXNpY2FsKgotICAgYWRkcmVzcywgYW5kIG11c3Qgbm90IGJlIGluIHRoZSAuYnNzIHNlZ21lbnQhICovCi11bnNpZ25lZCBsb25nIGluaXRfcGdfdGFibGVzX2VuZCBfX2luaXRkYXRhID0gfjBVTDsKLQotLyoKLSAqIE1hY2hpbmUgc2V0dXAuLgotICovCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIGRhdGFfcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiS2VybmVsIGRhdGEiLAotCS5zdGFydAk9IDAsCi0JLmVuZAk9IDAsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgY29kZV9yZXNvdXJjZSA9IHsKLQkubmFtZQk9ICJLZXJuZWwgY29kZSIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBic3NfcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiS2VybmVsIGJzcyIsCi0JLnN0YXJ0CT0gMCwKLQkuZW5kCT0gMCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTQotfTsKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSB2aWRlb19yYW1fcmVzb3VyY2UgPSB7Ci0JLm5hbWUJPSAiVmlkZW8gUkFNIGFyZWEiLAotCS5zdGFydAk9IDB4YTAwMDAsCi0JLmVuZAk9IDB4YmZmZmYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9NRU0KLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2Ugc3RhbmRhcmRfaW9fcmVzb3VyY2VzW10gPSB7IHsKLQkubmFtZQk9ICJkbWExIiwKLQkuc3RhcnQJPSAweDAwMDAsCi0JLmVuZAk9IDB4MDAxZiwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAicGljMSIsCi0JLnN0YXJ0CT0gMHgwMDIwLAotCS5lbmQJPSAweDAwMjEsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lICAgPSAidGltZXIwIiwKLQkuc3RhcnQJPSAweDAwNDAsCi0JLmVuZCAgICA9IDB4MDA0MywKLQkuZmxhZ3MgID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lICAgPSAidGltZXIxIiwKLQkuc3RhcnQgID0gMHgwMDUwLAotCS5lbmQgICAgPSAweDAwNTMsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gImtleWJvYXJkIiwKLQkuc3RhcnQJPSAweDAwNjAsCi0JLmVuZAk9IDB4MDA2MCwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAia2V5Ym9hcmQiLAotCS5zdGFydAk9IDB4MDA2NCwKLQkuZW5kCT0gMHgwMDY0LAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJkbWEgcGFnZSByZWciLAotCS5zdGFydAk9IDB4MDA4MCwKLQkuZW5kCT0gMHgwMDhmLAotCS5mbGFncwk9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8KLX0sIHsKLQkubmFtZQk9ICJwaWMyIiwKLQkuc3RhcnQJPSAweDAwYTAsCi0JLmVuZAk9IDB4MDBhMSwKLQkuZmxhZ3MJPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPCi19LCB7Ci0JLm5hbWUJPSAiZG1hMiIsCi0JLnN0YXJ0CT0gMHgwMGMwLAotCS5lbmQJPSAweDAwZGYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSwgewotCS5uYW1lCT0gImZwdSIsCi0JLnN0YXJ0CT0gMHgwMGYwLAotCS5lbmQJPSAweDAwZmYsCi0JLmZsYWdzCT0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTwotfSB9OwotCi0vKiBjcHUgZGF0YSBhcyBkZXRlY3RlZCBieSB0aGUgYXNzZW1ibHkgY29kZSBpbiBoZWFkLlMgKi8KLXN0cnVjdCBjcHVpbmZvX3g4NiBuZXdfY3B1X2RhdGEgX19jcHVpbml0ZGF0YSA9IHsgMCwgMCwgMCwgMCwgLTEsIDEsIDAsIDAsIC0xIH07Ci0vKiBjb21tb24gY3B1IGRhdGEgZm9yIGFsbCBjcHVzICovCi1zdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVfZGF0YSBfX3JlYWRfbW9zdGx5ID0geyAwLCAwLCAwLCAwLCAtMSwgMSwgMCwgMCwgLTEgfTsKLUVYUE9SVF9TWU1CT0woYm9vdF9jcHVfZGF0YSk7Ci0KLXVuc2lnbmVkIGludCBkZWZfdG9fYmlnc21wOwotCi0jaWZuZGVmIENPTkZJR19YODZfUEFFCi11bnNpZ25lZCBsb25nIG1tdV9jcjRfZmVhdHVyZXM7Ci0jZWxzZQotdW5zaWduZWQgbG9uZyBtbXVfY3I0X2ZlYXR1cmVzID0gWDg2X0NSNF9QQUU7Ci0jZW5kaWYKLQotLyogZm9yIE1DQSwgYnV0IGFueW9uZSBlbHNlIGNhbiB1c2UgaXQgaWYgdGhleSB3YW50ICovCi11bnNpZ25lZCBpbnQgbWFjaGluZV9pZDsKLXVuc2lnbmVkIGludCBtYWNoaW5lX3N1Ym1vZGVsX2lkOwotdW5zaWduZWQgaW50IEJJT1NfcmV2aXNpb247Ci0KLS8qIEJvb3QgbG9hZGVyIElEIGFzIGFuIGludGVnZXIsIGZvciB0aGUgYmVuZWZpdCBvZiBwcm9jX2RvaW50dmVjICovCi1pbnQgYm9vdGxvYWRlcl90eXBlOwotCi0vKiB1c2VyLWRlZmluZWQgaGlnaG1lbSBzaXplICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGhpZ2htZW1fcGFnZXMgPSAtMTsKLQotLyoKLSAqIFNldHVwIG9wdGlvbnMKLSAqLwotc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwotRVhQT1JUX1NZTUJPTChzY3JlZW5faW5mbyk7Ci1zdHJ1Y3QgYXBtX2luZm8gYXBtX2luZm87Ci1FWFBPUlRfU1lNQk9MKGFwbV9pbmZvKTsKLXN0cnVjdCBlZGlkX2luZm8gZWRpZF9pbmZvOwotRVhQT1JUX1NZTUJPTF9HUEwoZWRpZF9pbmZvKTsKLXN0cnVjdCBpc3RfaW5mbyBpc3RfaW5mbzsKLSNpZiBkZWZpbmVkKENPTkZJR19YODZfU1BFRURTVEVQX1NNSSkgfHwgXAotCWRlZmluZWQoQ09ORklHX1g4Nl9TUEVFRFNURVBfU01JX01PRFVMRSkKLUVYUE9SVF9TWU1CT0woaXN0X2luZm8pOwotI2VuZGlmCi0KLWV4dGVybiB2b2lkIGVhcmx5X2NwdV9pbml0KHZvaWQpOwotZXh0ZXJuIGludCByb290X21vdW50ZmxhZ3M7Ci0KLXVuc2lnbmVkIGxvbmcgc2F2ZWRfdmlkZW9fbW9kZTsKLQotI2RlZmluZSBSQU1ESVNLX0lNQUdFX1NUQVJUX01BU0sJMHgwN0ZGCi0jZGVmaW5lIFJBTURJU0tfUFJPTVBUX0ZMQUcJCTB4ODAwMAotI2RlZmluZSBSQU1ESVNLX0xPQURfRkxBRwkJMHg0MDAwCi0KLXN0YXRpYyBjaGFyIF9faW5pdGRhdGEgY29tbWFuZF9saW5lW0NPTU1BTkRfTElORV9TSVpFXTsKLQotI2lmbmRlZiBDT05GSUdfREVCVUdfQk9PVF9QQVJBTVMKLXN0cnVjdCBib290X3BhcmFtcyBfX2luaXRkYXRhIGJvb3RfcGFyYW1zOwotI2Vsc2UKLXN0cnVjdCBib290X3BhcmFtcyBib290X3BhcmFtczsKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChDT05GSUdfRUREKSB8fCBkZWZpbmVkKENPTkZJR19FRERfTU9EVUxFKQotc3RydWN0IGVkZCBlZGQ7Ci0jaWZkZWYgQ09ORklHX0VERF9NT0RVTEUKLUVYUE9SVF9TWU1CT0woZWRkKTsKLSNlbmRpZgotLyoqCi0gKiBjb3B5X2VkZCgpIC0gQ29weSB0aGUgQklPUyBFREQgaW5mb3JtYXRpb24KLSAqICAgICAgICAgICAgICBmcm9tIGJvb3RfcGFyYW1zIGludG8gYSBzYWZlIHBsYWNlLgotICoKLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGNvcHlfZWRkKHZvaWQpCi17Ci0gICAgIG1lbWNweShlZGQubWJyX3NpZ25hdHVyZSwgYm9vdF9wYXJhbXMuZWRkX21icl9zaWdfYnVmZmVyLAotCSAgICBzaXplb2YoZWRkLm1icl9zaWduYXR1cmUpKTsKLSAgICAgbWVtY3B5KGVkZC5lZGRfaW5mbywgYm9vdF9wYXJhbXMuZWRkYnVmLCBzaXplb2YoZWRkLmVkZF9pbmZvKSk7Ci0gICAgIGVkZC5tYnJfc2lnbmF0dXJlX25yID0gYm9vdF9wYXJhbXMuZWRkX21icl9zaWdfYnVmX2VudHJpZXM7Ci0gICAgIGVkZC5lZGRfaW5mb19uciA9IGJvb3RfcGFyYW1zLmVkZGJ1Zl9lbnRyaWVzOwotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2VkZCh2b2lkKQotewotfQotI2VuZGlmCi0KLWludCBfX2luaXRkYXRhIHVzZXJfZGVmaW5lZF9tZW1tYXA7Ci0KLS8qCi0gKiAibWVtPW5vcGVudGl1bSIgZGlzYWJsZXMgdGhlIDRNQiBwYWdlIHRhYmxlcy4KLSAqICJtZW09WFhYW2tLbU1dIiBkZWZpbmVzIGEgbWVtb3J5IHJlZ2lvbiBmcm9tIEhJR0hfTUVNCi0gKiB0byA8bWVtPiwgb3ZlcnJpZGluZyB0aGUgYmlvcyBzaXplLgotICogIm1lbW1hcD1YWFhbS2ttTV1AWFhYW0trbU1dIiBkZWZpbmVzIGEgbWVtb3J5IHJlZ2lvbiBmcm9tCi0gKiA8c3RhcnQ+IHRvIDxzdGFydD4rPG1lbT4sIG92ZXJyaWRpbmcgdGhlIGJpb3Mgc2l6ZS4KLSAqCi0gKiBIUEEgdGVsbHMgbWUgYm9vdGxvYWRlcnMgbmVlZCB0byBwYXJzZSBtZW09LCBzbyBubyBuZXcKLSAqIG9wdGlvbiBzaG91bGQgYmUgbWVtPSAgW2Fsc28gc2VlIERvY3VtZW50YXRpb24vaTM4Ni9ib290LnR4dF0KLSAqLwotc3RhdGljIGludCBfX2luaXQgcGFyc2VfbWVtKGNoYXIgKmFyZykKLXsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAoc3RyY21wKGFyZywgIm5vcGVudGl1bSIpID09IDApIHsKLQkJc2V0dXBfY2xlYXJfY3B1X2NhcChYODZfRkVBVFVSRV9QU0UpOwotCX0gZWxzZSB7Ci0JCS8qIElmIHRoZSB1c2VyIHNwZWNpZmllcyBtZW1vcnkgc2l6ZSwgd2UKLQkJICogbGltaXQgdGhlIEJJT1MtcHJvdmlkZWQgbWVtb3J5IG1hcCB0bwotCQkgKiB0aGF0IHNpemUuIGV4YWN0bWFwIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkKLQkJICogdGhlIGV4YWN0IG1hcC4gbWVtPW51bWJlciBjYW4gYmUgdXNlZCB0bwotCQkgKiB0cmltIHRoZSBleGlzdGluZyBtZW1vcnkgbWFwLgotCQkgKi8KLQkJdW5zaWduZWQgbG9uZyBsb25nIG1lbV9zaXplOwotCi0JCW1lbV9zaXplID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKLQkJbGltaXRfcmVnaW9ucyhtZW1fc2l6ZSk7Ci0JCXVzZXJfZGVmaW5lZF9tZW1tYXAgPSAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJtZW0iLCBwYXJzZV9tZW0pOwotCi0jaWZkZWYgQ09ORklHX1BST0NfVk1DT1JFCi0vKiBlbGZjb3JlaGRyPSBzcGVjaWZpZXMgdGhlIGxvY2F0aW9uIG9mIGVsZiBjb3JlIGhlYWRlcgotICogc3RvcmVkIGJ5IHRoZSBjcmFzaGVkIGtlcm5lbC4KLSAqLwotc3RhdGljIGludCBfX2luaXQgcGFyc2VfZWxmY29yZWhkcihjaGFyICphcmcpCi17Ci0JaWYgKCFhcmcpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JZWxmY29yZWhkcl9hZGRyID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJlbGZjb3JlaGRyIiwgcGFyc2VfZWxmY29yZWhkcik7Ci0jZW5kaWYgLyogQ09ORklHX1BST0NfVk1DT1JFICovCi0KLS8qCi0gKiBoaWdobWVtPXNpemUgZm9yY2VzIGhpZ2htZW0gdG8gYmUgZXhhY3RseSAnc2l6ZScgYnl0ZXMuCi0gKiBUaGlzIHdvcmtzIGV2ZW4gb24gYm94ZXMgdGhhdCBoYXZlIG5vIGhpZ2htZW0gb3RoZXJ3aXNlLgotICogVGhpcyBhbHNvIHdvcmtzIHRvIHJlZHVjZSBoaWdobWVtIHNpemUgb24gYmlnZ2VyIGJveGVzLgotICovCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9oaWdobWVtKGNoYXIgKmFyZykKLXsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQloaWdobWVtX3BhZ2VzID0gbWVtcGFyc2UoYXJnLCAmYXJnKSA+PiBQQUdFX1NISUZUOwotCXJldHVybiAwOwotfQotZWFybHlfcGFyYW0oImhpZ2htZW0iLCBwYXJzZV9oaWdobWVtKTsKLQotLyoKLSAqIHZtYWxsb2M9c2l6ZSBmb3JjZXMgdGhlIHZtYWxsb2MgYXJlYSB0byBiZSBleGFjdGx5ICdzaXplJwotICogYnl0ZXMuIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5jcmVhc2UgKG9yIGRlY3JlYXNlKSB0aGUKLSAqIHZtYWxsb2MgYXJlYSAtIHRoZSBkZWZhdWx0IGlzIDEyOG0uCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX3ZtYWxsb2MoY2hhciAqYXJnKQotewotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCV9fVk1BTExPQ19SRVNFUlZFID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKLQlyZXR1cm4gMDsKLX0KLWVhcmx5X3BhcmFtKCJ2bWFsbG9jIiwgcGFyc2Vfdm1hbGxvYyk7Ci0KLS8qCi0gKiByZXNlcnZldG9wPXNpemUgcmVzZXJ2ZXMgYSBob2xlIGF0IHRoZSB0b3Agb2YgdGhlIGtlcm5lbCBhZGRyZXNzIHNwYWNlIHdoaWNoCi0gKiBhIGh5cGVydmlzb3IgY2FuIGxvYWQgaW50byBsYXRlci4gIE5lZWRlZCBmb3IgZHluYW1pY2FsbHkgbG9hZGVkIGh5cGVydmlzb3JzLAotICogc28gcmVsb2NhdGluZyB0aGUgZml4bWFwIGNhbiBiZSBkb25lIGJlZm9yZSBwYWdpbmcgaW5pdGlhbGl6YXRpb24uCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHBhcnNlX3Jlc2VydmV0b3AoY2hhciAqYXJnKQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKLQotCWlmICghYXJnKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWFkZHJlc3MgPSBtZW1wYXJzZShhcmcsICZhcmcpOwotCXJlc2VydmVfdG9wX2FkZHJlc3MoYWRkcmVzcyk7Ci0JcmV0dXJuIDA7Ci19Ci1lYXJseV9wYXJhbSgicmVzZXJ2ZXRvcCIsIHBhcnNlX3Jlc2VydmV0b3ApOwotCi0vKgotICogRGV0ZXJtaW5lIGxvdyBhbmQgaGlnaCBtZW1vcnkgcmFuZ2VzOgotICovCi11bnNpZ25lZCBsb25nIF9faW5pdCBmaW5kX21heF9sb3dfcGZuKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBtYXhfbG93X3BmbjsKLQotCW1heF9sb3dfcGZuID0gbWF4X3BmbjsKLQlpZiAobWF4X2xvd19wZm4gPiBNQVhNRU1fUEZOKSB7Ci0JCWlmIChoaWdobWVtX3BhZ2VzID09IC0xKQotCQkJaGlnaG1lbV9wYWdlcyA9IG1heF9wZm4gLSBNQVhNRU1fUEZOOwotCQlpZiAoaGlnaG1lbV9wYWdlcyArIE1BWE1FTV9QRk4gPCBtYXhfcGZuKQotCQkJbWF4X3BmbiA9IE1BWE1FTV9QRk4gKyBoaWdobWVtX3BhZ2VzOwotCQlpZiAoaGlnaG1lbV9wYWdlcyArIE1BWE1FTV9QRk4gPiBtYXhfcGZuKSB7Ci0JCQlwcmludGsoIm9ubHkgJWx1TUIgaGlnaG1lbSBwYWdlcyBhdmFpbGFibGUsIGlnbm9yaW5nIGhpZ2htZW0gc2l6ZSBvZiAldU1CLlxuIiwgcGFnZXNfdG9fbWIobWF4X3BmbiAtIE1BWE1FTV9QRk4pLCBwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSk7Ci0JCQloaWdobWVtX3BhZ2VzID0gMDsKLQkJfQotCQltYXhfbG93X3BmbiA9IE1BWE1FTV9QRk47Ci0jaWZuZGVmIENPTkZJR19ISUdITUVNCi0JCS8qIE1heGltdW0gbWVtb3J5IHVzYWJsZSBpcyB3aGF0IGlzIGRpcmVjdGx5IGFkZHJlc3NhYmxlICovCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgIldhcm5pbmcgb25seSAlbGRNQiB3aWxsIGJlIHVzZWQuXG4iLAotCQkJCQlNQVhNRU0+PjIwKTsKLQkJaWYgKG1heF9wZm4gPiBNQVhfTk9OUEFFX1BGTikKLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIlVzZSBhIEhJR0hNRU02NEcgZW5hYmxlZCBrZXJuZWwuXG4iKTsKLQkJZWxzZQotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiVXNlIGEgSElHSE1FTSBlbmFibGVkIGtlcm5lbC5cbiIpOwotCQltYXhfcGZuID0gTUFYTUVNX1BGTjsKLSNlbHNlIC8qICFDT05GSUdfSElHSE1FTSAqLwotI2lmbmRlZiBDT05GSUdfSElHSE1FTTY0RwotCQlpZiAobWF4X3BmbiA+IE1BWF9OT05QQUVfUEZOKSB7Ci0JCQltYXhfcGZuID0gTUFYX05PTlBBRV9QRk47Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJXYXJuaW5nIG9ubHkgNEdCIHdpbGwgYmUgdXNlZC5cbiIpOwotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiVXNlIGEgSElHSE1FTTY0RyBlbmFibGVkIGtlcm5lbC5cbiIpOwotCQl9Ci0jZW5kaWYgLyogIUNPTkZJR19ISUdITUVNNjRHICovCi0jZW5kaWYgLyogIUNPTkZJR19ISUdITUVNICovCi0JfSBlbHNlIHsKLQkJaWYgKGhpZ2htZW1fcGFnZXMgPT0gLTEpCi0JCQloaWdobWVtX3BhZ2VzID0gMDsKLSNpZmRlZiBDT05GSUdfSElHSE1FTQotCQlpZiAoaGlnaG1lbV9wYWdlcyA+PSBtYXhfcGZuKSB7Ci0JCQlwcmludGsoS0VSTl9FUlIgImhpZ2htZW0gc2l6ZSBzcGVjaWZpZWQgKCV1TUIpIGlzIGJpZ2dlciB0aGFuIHBhZ2VzIGF2YWlsYWJsZSAoJWx1TUIpIS5cbiIsIHBhZ2VzX3RvX21iKGhpZ2htZW1fcGFnZXMpLCBwYWdlc190b19tYihtYXhfcGZuKSk7Ci0JCQloaWdobWVtX3BhZ2VzID0gMDsKLQkJfQotCQlpZiAoaGlnaG1lbV9wYWdlcykgewotCQkJaWYgKG1heF9sb3dfcGZuLWhpZ2htZW1fcGFnZXMgPCA2NCoxMDI0KjEwMjQvUEFHRV9TSVpFKXsKLQkJCQlwcmludGsoS0VSTl9FUlIgImhpZ2htZW0gc2l6ZSAldU1CIHJlc3VsdHMgaW4gc21hbGxlciB0aGFuIDY0TUIgbG93bWVtLCBpZ25vcmluZyBpdC5cbiIsIHBhZ2VzX3RvX21iKGhpZ2htZW1fcGFnZXMpKTsKLQkJCQloaWdobWVtX3BhZ2VzID0gMDsKLQkJCX0KLQkJCW1heF9sb3dfcGZuIC09IGhpZ2htZW1fcGFnZXM7Ci0JCX0KLSNlbHNlCi0JCWlmIChoaWdobWVtX3BhZ2VzKQotCQkJcHJpbnRrKEtFUk5fRVJSICJpZ25vcmluZyBoaWdobWVtIHNpemUgb24gbm9uLWhpZ2htZW0ga2VybmVsIVxuIik7Ci0jZW5kaWYKLQl9Ci0JcmV0dXJuIG1heF9sb3dfcGZuOwotfQotCi0jZGVmaW5lIEJJT1NfTE9XTUVNX0tJTE9CWVRFUyAweDQxMwotCi0vKgotICogVGhlIEJJT1MgcGxhY2VzIHRoZSBFQkRBL1hCREEgYXQgdGhlIHRvcCBvZiBjb252ZW50aW9uYWwKLSAqIG1lbW9yeSwgYW5kIHVzdWFsbHkgZGVjcmVhc2VzIHRoZSByZXBvcnRlZCBhbW91bnQgb2YKLSAqIGNvbnZlbnRpb25hbCBtZW1vcnkgKGludCAweDEyKSB0b28uIFRoaXMgYWxzbyBjb250YWlucyBhCi0gKiB3b3JrYXJvdW5kIGZvciBEZWxsIHN5c3RlbXMgdGhhdCBuZWdsZWN0IHRvIHJlc2VydmUgRUJEQS4KLSAqIFRoZSBzYW1lIHdvcmthcm91bmQgYWxzbyBhdm9pZHMgYSBwcm9ibGVtIHdpdGggdGhlIEFNRDc2OE1QWAotICogY2hpcHNldDogcmVzZXJ2ZSBhIHBhZ2UgYmVmb3JlIFZHQSB0byBwcmV2ZW50IFBDSSBwcmVmZXRjaAotICogaW50byBpdCAoZXJyYXRhICM1NikuIFVzdWFsbHkgdGhlIHBhZ2UgaXMgcmVzZXJ2ZWQgYW55d2F5cywKLSAqIHVubGVzcyB5b3UgaGF2ZSBubyBQUy8yIG1vdXNlIHBsdWdnZWQgaW4uCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2ViZGFfcmVnaW9uKHZvaWQpCi17Ci0JdW5zaWduZWQgaW50IGxvd21lbSwgZWJkYV9hZGRyOwotCi0JLyogVG8gZGV0ZXJtaW5lIHRoZSBwb3NpdGlvbiBvZiB0aGUgRUJEQSBhbmQgdGhlICovCi0JLyogZW5kIG9mIGNvbnZlbnRpb25hbCBtZW1vcnksIHdlIG5lZWQgdG8gbG9vayBhdCAqLwotCS8qIHRoZSBCSU9TIGRhdGEgYXJlYS4gSW4gYSBwYXJhdmlydHVhbCBlbnZpcm9ubWVudCAqLwotCS8qIHRoYXQgYXJlYSBpcyBhYnNlbnQuIFdlJ2xsIGp1c3QgaGF2ZSB0byBhc3N1bWUgKi8KLQkvKiB0aGF0IHRoZSBwYXJhdmlydCBjYXNlIGNhbiBoYW5kbGUgbWVtb3J5IHNldHVwICovCi0JLyogY29ycmVjdGx5LCB3aXRob3V0IG91ciBoZWxwLiAqLwotCWlmIChwYXJhdmlydF9lbmFibGVkKCkpCi0JCXJldHVybjsKLQotCS8qIGVuZCBvZiBsb3cgKGNvbnZlbnRpb25hbCkgbWVtb3J5ICovCi0JbG93bWVtID0gKih1bnNpZ25lZCBzaG9ydCAqKV9fdmEoQklPU19MT1dNRU1fS0lMT0JZVEVTKTsKLQlsb3dtZW0gPDw9IDEwOwotCi0JLyogc3RhcnQgb2YgRUJEQSBhcmVhICovCi0JZWJkYV9hZGRyID0gZ2V0X2Jpb3NfZWJkYSgpOwotCi0JLyogRml4dXA6IGJpb3MgcHV0cyBhbiBFQkRBIGluIHRoZSB0b3AgNjRLIHNlZ21lbnQgKi8KLQkvKiBvZiBjb252ZW50aW9uYWwgbWVtb3J5LCBidXQgZG9lcyBub3QgYWRqdXN0IGxvd21lbS4gKi8KLQlpZiAoKGxvd21lbSAtIGViZGFfYWRkcikgPD0gMHgxMDAwMCkKLQkJbG93bWVtID0gZWJkYV9hZGRyOwotCi0JLyogRml4dXA6IGJpb3MgZG9lcyBub3QgcmVwb3J0IGFuIEVCREEgYXQgYWxsLiAqLwotCS8qIFNvbWUgb2xkIERlbGxzIHNlZW0gdG8gbmVlZCA0ayBhbnlob3cgKGJ1Z3ppbGxhIDI5OTApICovCi0JaWYgKChlYmRhX2FkZHIgPT0gMCkgJiYgKGxvd21lbSA+PSAweDlmMDAwKSkKLQkJbG93bWVtID0gMHg5ZjAwMDsKLQotCS8qIFBhcmFub2lhOiBzaG91bGQgbmV2ZXIgaGFwcGVuLCBidXQuLi4gKi8KLQlpZiAoKGxvd21lbSA9PSAwKSB8fCAobG93bWVtID49IDB4MTAwMDAwKSkKLQkJbG93bWVtID0gMHg5ZjAwMDsKLQotCS8qIHJlc2VydmUgYWxsIG1lbW9yeSBiZXR3ZWVuIGxvd21lbSBhbmQgdGhlIDFNQiBtYXJrICovCi0JcmVzZXJ2ZV9ib290bWVtKGxvd21lbSwgMHgxMDAwMDAgLSBsb3dtZW0sIEJPT1RNRU1fREVGQVVMVCk7Ci19Ci0KLSNpZm5kZWYgQ09ORklHX05FRURfTVVMVElQTEVfTk9ERVMKLXN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9ib290bWVtX2FsbG9jYXRvcih2b2lkKTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIF9faW5pdCBzZXR1cF9tZW1vcnkodm9pZCkKLXsKLQkvKgotCSAqIHBhcnRpYWxseSB1c2VkIHBhZ2VzIGFyZSBub3QgdXNhYmxlIC0gdGh1cwotCSAqIHdlIGFyZSByb3VuZGluZyB1cHdhcmRzOgotCSAqLwotCW1pbl9sb3dfcGZuID0gUEZOX1VQKGluaXRfcGdfdGFibGVzX2VuZCk7Ci0KLQltYXhfbG93X3BmbiA9IGZpbmRfbWF4X2xvd19wZm4oKTsKLQotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JaGlnaHN0YXJ0X3BmbiA9IGhpZ2hlbmRfcGZuID0gbWF4X3BmbjsKLQlpZiAobWF4X3BmbiA+IG1heF9sb3dfcGZuKSB7Ci0JCWhpZ2hzdGFydF9wZm4gPSBtYXhfbG93X3BmbjsKLQl9Ci0JcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBISUdITUVNIGF2YWlsYWJsZS5cbiIsCi0JCXBhZ2VzX3RvX21iKGhpZ2hlbmRfcGZuIC0gaGlnaHN0YXJ0X3BmbikpOwotCW51bV9waHlzcGFnZXMgPSBoaWdoZW5kX3BmbjsKLQloaWdoX21lbW9yeSA9ICh2b2lkICopIF9fdmEoaGlnaHN0YXJ0X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKLSNlbHNlCi0JbnVtX3BoeXNwYWdlcyA9IG1heF9sb3dfcGZuOwotCWhpZ2hfbWVtb3J5ID0gKHZvaWQgKikgX192YShtYXhfbG93X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKLSNlbmRpZgotI2lmZGVmIENPTkZJR19GTEFUTUVNCi0JbWF4X21hcG5yID0gbnVtX3BoeXNwYWdlczsKLSNlbmRpZgotCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgTE9XTUVNIGF2YWlsYWJsZS5cbiIsCi0JCQlwYWdlc190b19tYihtYXhfbG93X3BmbikpOwotCi0Jc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3IoKTsKLQotCXJldHVybiBtYXhfbG93X3BmbjsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHpvbmVfc2l6ZXNfaW5pdCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbWF4X3pvbmVfcGZuc1tNQVhfTlJfWk9ORVNdOwotCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwotCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0KLQkJdmlydF90b19waHlzKChjaGFyICopTUFYX0RNQV9BRERSRVNTKSA+PiBQQUdFX1NISUZUOwotCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X2xvd19wZm47Ci0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQltYXhfem9uZV9wZm5zW1pPTkVfSElHSE1FTV0gPSBoaWdoZW5kX3BmbjsKLQlhZGRfYWN0aXZlX3JhbmdlKDAsIDAsIGhpZ2hlbmRfcGZuKTsKLSNlbHNlCi0JYWRkX2FjdGl2ZV9yYW5nZSgwLCAwLCBtYXhfbG93X3Bmbik7Ci0jZW5kaWYKLQotCWZyZWVfYXJlYV9pbml0X25vZGVzKG1heF96b25lX3BmbnMpOwotfQotI2Vsc2UKLWV4dGVybiB1bnNpZ25lZCBsb25nIF9faW5pdCBzZXR1cF9tZW1vcnkodm9pZCk7Ci1leHRlcm4gdm9pZCB6b25lX3NpemVzX2luaXQodm9pZCk7Ci0jZW5kaWYgLyogIUNPTkZJR19ORUVEX01VTFRJUExFX05PREVTICovCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBsb25nIGdldF90b3RhbF9tZW0odm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgdG90YWw7Ci0KLQl0b3RhbCA9IG1heF9sb3dfcGZuIC0gbWluX2xvd19wZm47Ci0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQl0b3RhbCArPSBoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm47Ci0jZW5kaWYKLQotCXJldHVybiB0b3RhbCA8PCBQQUdFX1NISUZUOwotfQotCi0jaWZkZWYgQ09ORklHX0tFWEVDCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9tZW07Ci0JdW5zaWduZWQgbG9uZyBsb25nIGNyYXNoX3NpemUsIGNyYXNoX2Jhc2U7Ci0JaW50IHJldDsKLQotCXRvdGFsX21lbSA9IGdldF90b3RhbF9tZW0oKTsKLQotCXJldCA9IHBhcnNlX2NyYXNoa2VybmVsKGJvb3RfY29tbWFuZF9saW5lLCB0b3RhbF9tZW0sCi0JCQkmY3Jhc2hfc2l6ZSwgJmNyYXNoX2Jhc2UpOwotCWlmIChyZXQgPT0gMCAmJiBjcmFzaF9zaXplID4gMCkgewotCQlpZiAoY3Jhc2hfYmFzZSA+IDApIHsKLQkJCXByaW50ayhLRVJOX0lORk8gIlJlc2VydmluZyAlbGRNQiBvZiBtZW1vcnkgYXQgJWxkTUIgIgotCQkJCQkiZm9yIGNyYXNoa2VybmVsIChTeXN0ZW0gUkFNOiAlbGRNQilcbiIsCi0JCQkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9zaXplID4+IDIwKSwKLQkJCQkJKHVuc2lnbmVkIGxvbmcpKGNyYXNoX2Jhc2UgPj4gMjApLAotCQkJCQkodW5zaWduZWQgbG9uZykodG90YWxfbWVtID4+IDIwKSk7Ci0JCQljcmFzaGtfcmVzLnN0YXJ0ID0gY3Jhc2hfYmFzZTsKLQkJCWNyYXNoa19yZXMuZW5kICAgPSBjcmFzaF9iYXNlICsgY3Jhc2hfc2l6ZSAtIDE7Ci0JCQlyZXNlcnZlX2Jvb3RtZW0oY3Jhc2hfYmFzZSwgY3Jhc2hfc2l6ZSwKLQkJCQkJQk9PVE1FTV9ERUZBVUxUKTsKLQkJfSBlbHNlCi0JCQlwcmludGsoS0VSTl9JTkZPICJjcmFzaGtlcm5lbCByZXNlcnZhdGlvbiBmYWlsZWQgLSAiCi0JCQkJCSJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgYmFzZSBhZGRyZXNzXG4iKTsKLQl9Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCByZXNlcnZlX2NyYXNoa2VybmVsKHZvaWQpCi17fQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKLQotc3RhdGljIGJvb2wgZG9fcmVsb2NhdGVfaW5pdHJkID0gZmFsc2U7Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCByZXNlcnZlX2luaXRyZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19pbWFnZSA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX2ltYWdlOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7Ci0JdW5zaWduZWQgbG9uZyByYW1kaXNrX2VuZCAgID0gcmFtZGlza19pbWFnZSArIHJhbWRpc2tfc2l6ZTsKLQl1bnNpZ25lZCBsb25nIGVuZF9vZl9sb3dtZW0gPSBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19oZXJlOwotCi0JaW5pdHJkX3N0YXJ0ID0gMDsKLQotCWlmICghYm9vdF9wYXJhbXMuaGRyLnR5cGVfb2ZfbG9hZGVyIHx8Ci0JICAgICFyYW1kaXNrX2ltYWdlIHx8ICFyYW1kaXNrX3NpemUpCi0JCXJldHVybjsJCS8qIE5vIGluaXRyZCBwcm92aWRlZCBieSBib290bG9hZGVyICovCi0KLQlpZiAocmFtZGlza19lbmQgPCByYW1kaXNrX2ltYWdlKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiaW5pdHJkIHdyYXBzIGFyb3VuZCBlbmQgb2YgbWVtb3J5LCAiCi0JCSAgICAgICAiZGlzYWJsaW5nIGluaXRyZFxuIik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKHJhbWRpc2tfc2l6ZSA+PSBlbmRfb2ZfbG93bWVtLzIpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpbml0cmQgdG9vIGxhcmdlIHRvIGhhbmRsZSwgIgotCQkgICAgICAgImRpc2FibGluZyBpbml0cmRcbiIpOwotCQlyZXR1cm47Ci0JfQotCWlmIChyYW1kaXNrX2VuZCA8PSBlbmRfb2ZfbG93bWVtKSB7Ci0JCS8qIEFsbCBpbiBsb3dtZW0sIGVhc3kgY2FzZSAqLwotCQlyZXNlcnZlX2Jvb3RtZW0ocmFtZGlza19pbWFnZSwgcmFtZGlza19zaXplLCBCT09UTUVNX0RFRkFVTFQpOwotCQlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2ltYWdlICsgUEFHRV9PRkZTRVQ7Ci0JCWluaXRyZF9lbmQgPSBpbml0cmRfc3RhcnQrcmFtZGlza19zaXplOwotCQlyZXR1cm47Ci0JfQotCi0JLyogV2UgbmVlZCB0byBtb3ZlIHRoZSBpbml0cmQgZG93biBpbnRvIGxvd21lbSAqLwotCXJhbWRpc2tfaGVyZSA9IChlbmRfb2ZfbG93bWVtIC0gcmFtZGlza19zaXplKSAmIFBBR0VfTUFTSzsKLQotCS8qIE5vdGU6IHRoaXMgaW5jbHVkZXMgYWxsIHRoZSBsb3dtZW0gY3VycmVudGx5IG9jY3VwaWVkIGJ5Ci0JICAgdGhlIGluaXRyZCwgd2UgcmVseSBvbiB0aGF0IGZhY3QgdG8ga2VlcCB0aGUgZGF0YSBpbnRhY3QuICovCi0JcmVzZXJ2ZV9ib290bWVtKHJhbWRpc2tfaGVyZSwgcmFtZGlza19zaXplLCBCT09UTUVNX0RFRkFVTFQpOwotCWluaXRyZF9zdGFydCA9IHJhbWRpc2tfaGVyZSArIFBBR0VfT0ZGU0VUOwotCWluaXRyZF9lbmQgICA9IGluaXRyZF9zdGFydCArIHJhbWRpc2tfc2l6ZTsKLQotCWRvX3JlbG9jYXRlX2luaXRyZCA9IHRydWU7Ci19Ci0KLSNkZWZpbmUgTUFYX01BUF9DSFVOSwkoTlJfRklYX0JUTUFQUyA8PCBQQUdFX1NISUZUKQotCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVsb2NhdGVfaW5pdHJkKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyByYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7Ci0JdW5zaWduZWQgbG9uZyByYW1kaXNrX3NpemUgID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfc2l6ZTsKLQl1bnNpZ25lZCBsb25nIGVuZF9vZl9sb3dtZW0gPSBtYXhfbG93X3BmbiA8PCBQQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgcmFtZGlza19oZXJlOwotCXVuc2lnbmVkIGxvbmcgc2xvcCwgY2xlbiwgbWFwYWRkcjsKLQljaGFyICpwLCAqcTsKLQotCWlmICghZG9fcmVsb2NhdGVfaW5pdHJkKQotCQlyZXR1cm47Ci0KLQlyYW1kaXNrX2hlcmUgPSBpbml0cmRfc3RhcnQgLSBQQUdFX09GRlNFVDsKLQotCXEgPSAoY2hhciAqKWluaXRyZF9zdGFydDsKLQotCS8qIENvcHkgYW55IGxvd21lbSBwb3J0aW9uIG9mIHRoZSBpbml0cmQgKi8KLQlpZiAocmFtZGlza19pbWFnZSA8IGVuZF9vZl9sb3dtZW0pIHsKLQkJY2xlbiA9IGVuZF9vZl9sb3dtZW0gLSByYW1kaXNrX2ltYWdlOwotCQlwID0gKGNoYXIgKilfX3ZhKHJhbWRpc2tfaW1hZ2UpOwotCQltZW1jcHkocSwgcCwgY2xlbik7Ci0JCXEgKz0gY2xlbjsKLQkJcmFtZGlza19pbWFnZSArPSBjbGVuOwotCQlyYW1kaXNrX3NpemUgIC09IGNsZW47Ci0JfQotCi0JLyogQ29weSB0aGUgaGlnaG1lbSBwb3J0aW9uIG9mIHRoZSBpbml0cmQgKi8KLQl3aGlsZSAocmFtZGlza19zaXplKSB7Ci0JCXNsb3AgPSByYW1kaXNrX2ltYWdlICYgflBBR0VfTUFTSzsKLQkJY2xlbiA9IHJhbWRpc2tfc2l6ZTsKLQkJaWYgKGNsZW4gPiBNQVhfTUFQX0NIVU5LLXNsb3ApCi0JCQljbGVuID0gTUFYX01BUF9DSFVOSy1zbG9wOwotCQltYXBhZGRyID0gcmFtZGlza19pbWFnZSAmIFBBR0VfTUFTSzsKLQkJcCA9IGVhcmx5X2lvcmVtYXAobWFwYWRkciwgY2xlbitzbG9wKTsKLQkJbWVtY3B5KHEsIHArc2xvcCwgY2xlbik7Ci0JCWVhcmx5X2lvdW5tYXAocCwgY2xlbitzbG9wKTsKLQkJcSArPSBjbGVuOwotCQlyYW1kaXNrX2ltYWdlICs9IGNsZW47Ci0JCXJhbWRpc2tfc2l6ZSAgLT0gY2xlbjsKLQl9Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JTklUUkQgKi8KLQotdm9pZCBfX2luaXQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGJvb3RtYXBfc2l6ZTsKLQkvKgotCSAqIEluaXRpYWxpemUgdGhlIGJvb3QtdGltZSBhbGxvY2F0b3IgKHdpdGggbG93IG1lbW9yeSBvbmx5KToKLQkgKi8KLQlib290bWFwX3NpemUgPSBpbml0X2Jvb3RtZW0obWluX2xvd19wZm4sIG1heF9sb3dfcGZuKTsKLQotCXJlZ2lzdGVyX2Jvb3RtZW1fbG93X3BhZ2VzKG1heF9sb3dfcGZuKTsKLQotCS8qCi0JICogUmVzZXJ2ZSB0aGUgYm9vdG1lbSBiaXRtYXAgaXRzZWxmIGFzIHdlbGwuIFdlIGRvIHRoaXMgaW4gdHdvCi0JICogc3RlcHMgKGZpcnN0IHN0ZXAgd2FzIGluaXRfYm9vdG1lbSgpKSBiZWNhdXNlIHRoaXMgY2F0Y2hlcwotCSAqIHRoZSAodmVyeSB1bmxpa2VseSkgY2FzZSBvZiB1cyBhY2NpZGVudGFsbHkgaW5pdGlhbGl6aW5nIHRoZQotCSAqIGJvb3RtZW0gYWxsb2NhdG9yIHdpdGggYW4gaW52YWxpZCBSQU0gYXJlYS4KLQkgKi8KLQlyZXNlcnZlX2Jvb3RtZW0oX19wYV9zeW1ib2woX3RleHQpLCAoUEZOX1BIWVMobWluX2xvd19wZm4pICsKLQkJCSBib290bWFwX3NpemUgKyBQQUdFX1NJWkUtMSkgLSBfX3BhX3N5bWJvbChfdGV4dCksCi0JCQkgQk9PVE1FTV9ERUZBVUxUKTsKLQotCS8qCi0JICogcmVzZXJ2ZSBwaHlzaWNhbCBwYWdlIDAgLSBpdCdzIGEgc3BlY2lhbCBCSU9TIHBhZ2Ugb24gbWFueSBib3hlcywKLQkgKiBlbmFibGluZyBjbGVhbiByZWJvb3RzLCBTTVAgb3BlcmF0aW9uLCBsYXB0b3AgZnVuY3Rpb25zLgotCSAqLwotCXJlc2VydmVfYm9vdG1lbSgwLCBQQUdFX1NJWkUsIEJPT1RNRU1fREVGQVVMVCk7Ci0KLQkvKiByZXNlcnZlIEVCREEgcmVnaW9uICovCi0JcmVzZXJ2ZV9lYmRhX3JlZ2lvbigpOwotCi0jaWZkZWYgQ09ORklHX1NNUAotCS8qCi0JICogQnV0IGZpcnN0IHBpbmNoIGEgZmV3IGZvciB0aGUgc3RhY2svdHJhbXBvbGluZSBzdHVmZgotCSAqIEZJWE1FOiBEb24ndCBuZWVkIHRoZSBleHRyYSBwYWdlIGF0IDRLLCBidXQgbmVlZCB0byBmaXgKLQkgKiB0cmFtcG9saW5lIGJlZm9yZSByZW1vdmluZyBpdC4gKHNlZSB0aGUgR0RUIHN0dWZmKQotCSAqLwotCXJlc2VydmVfYm9vdG1lbShQQUdFX1NJWkUsIFBBR0VfU0laRSwgQk9PVE1FTV9ERUZBVUxUKTsKLSNlbmRpZgotI2lmZGVmIENPTkZJR19BQ1BJX1NMRUVQCi0JLyoKLQkgKiBSZXNlcnZlIGxvdyBtZW1vcnkgcmVnaW9uIGZvciBzbGVlcCBzdXBwb3J0LgotCSAqLwotCWFjcGlfcmVzZXJ2ZV9ib290bWVtKCk7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfWDg2X0ZJTkRfU01QX0NPTkZJRwotCS8qCi0JICogRmluZCBhbmQgcmVzZXJ2ZSBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246Ci0JICovCi0JZmluZF9zbXBfY29uZmlnKCk7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQKLQlyZXNlcnZlX2luaXRyZCgpOwotI2VuZGlmCi0JbnVtYV9rdmFfcmVzZXJ2ZSgpOwotCXJlc2VydmVfY3Jhc2hrZXJuZWwoKTsKLQotCXJlc2VydmVfaWJmdF9yZWdpb24oKTsKLX0KLQotLyoKLSAqIFRoZSBub2RlIDAgcGdkYXQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGFsbCBvZiB0aGVzZSBiZWNhdXNlCi0gKiBpdCdzIG5lZWRlZCBmb3IgYm9vdG1lbS4gIG5vZGU+MCBwZ2RhdHMgaGF2ZSB0aGVpciB2aXJ0dWFsCi0gKiBzcGFjZSBhbGxvY2F0ZWQgYmVmb3JlIHRoZSBwYWdldGFibGVzIGFyZSBpbiBwbGFjZSB0byBhY2Nlc3MKLSAqIHRoZW0sIHNvIHRoZXkgY2FuJ3QgYmUgY2xlYXJlZCB0aGVuLgotICoKLSAqIFRoaXMgc2hvdWxkIGFsbCBjb21waWxlIGRvd24gdG8gbm90aGluZyB3aGVuIE5VTUEgaXMgb2ZmLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVtYXBwZWRfcGdkYXRfaW5pdCh2b2lkKQotewotCWludCBuaWQ7Ci0KLQlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKLQkJaWYgKG5pZCAhPSAwKQotCQkJbWVtc2V0KE5PREVfREFUQShuaWQpLCAwLCBzaXplb2Yoc3RydWN0IHBnbGlzdF9kYXRhKSk7Ci0JfQotfQotCi0jaWZkZWYgQ09ORklHX01DQQotc3RhdGljIHZvaWQgc2V0X21jYV9idXMoaW50IHgpCi17Ci0JTUNBX2J1cyA9IHg7Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgc2V0X21jYV9idXMoaW50IHgpIHsgfQotI2VuZGlmCi0KLS8qIE92ZXJyaWRkZW4gaW4gcGFyYXZpcnQuYyBpZiBDT05GSUdfUEFSQVZJUlQgKi8KLWNoYXIgKiBfX2luaXQgX19hdHRyaWJ1dGVfXygod2VhaykpIG1lbW9yeV9zZXR1cCh2b2lkKQotewotCXJldHVybiBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCgpOwotfQotCi0jaWZkZWYgQ09ORklHX05VTUEKLS8qCi0gKiBJbiB0aGUgZ29sZGVuIGRheSwgd2hlbiBldmVyeXRoaW5nIGFtb25nIGkzODYgYW5kIHg4Nl82NCB3aWxsIGJlCi0gKiBpbnRlZ3JhdGVkLCB0aGlzIHdpbGwgbm90IGxpdmUgaGVyZQotICovCi12b2lkICp4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cjsKLWludCB4ODZfY3B1X3RvX25vZGVfbWFwX2luaXRbTlJfQ1BVU10gPSB7Ci0JWzAgLi4uIE5SX0NQVVMtMV0gPSBOVU1BX05PX05PREUKLX07Ci1ERUZJTkVfUEVSX0NQVShpbnQsIHg4Nl9jcHVfdG9fbm9kZV9tYXApID0gTlVNQV9OT19OT0RFOwotI2VuZGlmCi0KLS8qCi0gKiBEZXRlcm1pbmUgaWYgd2Ugd2VyZSBsb2FkZWQgYnkgYW4gRUZJIGxvYWRlci4gIElmIHNvLCB0aGVuIHdlIGhhdmUgYWxzbyBiZWVuCi0gKiBwYXNzZWQgdGhlIGVmaSBtZW1tYXAsIHN5c3RhYiwgZXRjLiwgc28gd2Ugc2hvdWxkIHVzZSB0aGVzZSBkYXRhIHN0cnVjdHVyZXMKLSAqIGZvciBpbml0aWFsaXphdGlvbi4gIE5vdGUsIHRoZSBlZmkgaW5pdCBjb2RlIHBhdGggaXMgZGV0ZXJtaW5lZCBieSB0aGUKLSAqIGdsb2JhbCBlZmlfZW5hYmxlZC4gVGhpcyBhbGxvd3MgdGhlIHNhbWUga2VybmVsIGltYWdlIHRvIGJlIHVzZWQgb24gZXhpc3RpbmcKLSAqIHN5c3RlbXMgKHdpdGggYSB0cmFkaXRpb25hbCBCSU9TKSBhcyB3ZWxsIGFzIG9uIEVGSSBzeXN0ZW1zLgotICovCi12b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipjbWRsaW5lX3ApCi17Ci0JdW5zaWduZWQgbG9uZyBtYXhfbG93X3BmbjsKLQotCW1lbWNweSgmYm9vdF9jcHVfZGF0YSwgJm5ld19jcHVfZGF0YSwgc2l6ZW9mKG5ld19jcHVfZGF0YSkpOwotCXByZV9zZXR1cF9hcmNoX2hvb2soKTsKLQllYXJseV9jcHVfaW5pdCgpOwotCWVhcmx5X2lvcmVtYXBfaW5pdCgpOwotCi0jaWZkZWYgQ09ORklHX0VGSQotCWlmICghc3RybmNtcCgoY2hhciAqKSZib290X3BhcmFtcy5lZmlfaW5mby5lZmlfbG9hZGVyX3NpZ25hdHVyZSwKLQkJICAgICAiRUwzMiIsIDQpKQotCQllZmlfZW5hYmxlZCA9IDE7Ci0jZW5kaWYKLQotCVJPT1RfREVWID0gb2xkX2RlY29kZV9kZXYoYm9vdF9wYXJhbXMuaGRyLnJvb3RfZGV2KTsKLQlzY3JlZW5faW5mbyA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvOwotCWVkaWRfaW5mbyA9IGJvb3RfcGFyYW1zLmVkaWRfaW5mbzsKLQlhcG1faW5mby5iaW9zID0gYm9vdF9wYXJhbXMuYXBtX2Jpb3NfaW5mbzsKLQlpc3RfaW5mbyA9IGJvb3RfcGFyYW1zLmlzdF9pbmZvOwotCXNhdmVkX3ZpZGVvX21vZGUgPSBib290X3BhcmFtcy5oZHIudmlkX21vZGU7Ci0JaWYoIGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLmxlbmd0aCAhPSAwICkgewotCQlzZXRfbWNhX2J1cyhib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVszXSAmIDB4Mik7Ci0JCW1hY2hpbmVfaWQgPSBib290X3BhcmFtcy5zeXNfZGVzY190YWJsZS50YWJsZVswXTsKLQkJbWFjaGluZV9zdWJtb2RlbF9pZCA9IGJvb3RfcGFyYW1zLnN5c19kZXNjX3RhYmxlLnRhYmxlWzFdOwotCQlCSU9TX3JldmlzaW9uID0gYm9vdF9wYXJhbXMuc3lzX2Rlc2NfdGFibGUudGFibGVbMl07Ci0JfQotCWJvb3Rsb2FkZXJfdHlwZSA9IGJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlcjsKLQotI2lmZGVmIENPTkZJR19CTEtfREVWX1JBTQotCXJkX2ltYWdlX3N0YXJ0ID0gYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19JTUFHRV9TVEFSVF9NQVNLOwotCXJkX3Byb21wdCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19QUk9NUFRfRkxBRykgIT0gMCk7Ci0JcmRfZG9sb2FkID0gKChib290X3BhcmFtcy5oZHIucmFtX3NpemUgJiBSQU1ESVNLX0xPQURfRkxBRykgIT0gMCk7Ci0jZW5kaWYKLQlBUkNIX1NFVFVQCi0KLQlwcmludGsoS0VSTl9JTkZPICJCSU9TLXByb3ZpZGVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQlwcmludF9tZW1vcnlfbWFwKG1lbW9yeV9zZXR1cCgpKTsKLQotCWNvcHlfZWRkKCk7Ci0KLQlpZiAoIWJvb3RfcGFyYW1zLmhkci5yb290X2ZsYWdzKQotCQlyb290X21vdW50ZmxhZ3MgJj0gfk1TX1JET05MWTsKLQlpbml0X21tLnN0YXJ0X2NvZGUgPSAodW5zaWduZWQgbG9uZykgX3RleHQ7Ci0JaW5pdF9tbS5lbmRfY29kZSA9ICh1bnNpZ25lZCBsb25nKSBfZXRleHQ7Ci0JaW5pdF9tbS5lbmRfZGF0YSA9ICh1bnNpZ25lZCBsb25nKSBfZWRhdGE7Ci0JaW5pdF9tbS5icmsgPSBpbml0X3BnX3RhYmxlc19lbmQgKyBQQUdFX09GRlNFVDsKLQotCWNvZGVfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoX3RleHQpOwotCWNvZGVfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKF9ldGV4dCktMTsKLQlkYXRhX3Jlc291cmNlLnN0YXJ0ID0gdmlydF90b19waHlzKF9ldGV4dCk7Ci0JZGF0YV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoX2VkYXRhKS0xOwotCWJzc19yZXNvdXJjZS5zdGFydCA9IHZpcnRfdG9fcGh5cygmX19ic3Nfc3RhcnQpOwotCWJzc19yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0b3ApLTE7Ci0KLQlwYXJzZV9lYXJseV9wYXJhbSgpOwotCi0JaWYgKHVzZXJfZGVmaW5lZF9tZW1tYXApIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAidXNlci1kZWZpbmVkIHBoeXNpY2FsIFJBTSBtYXA6XG4iKTsKLQkJcHJpbnRfbWVtb3J5X21hcCgidXNlciIpOwotCX0KLQotCXN0cmxjcHkoY29tbWFuZF9saW5lLCBib290X2NvbW1hbmRfbGluZSwgQ09NTUFORF9MSU5FX1NJWkUpOwotCSpjbWRsaW5lX3AgPSBjb21tYW5kX2xpbmU7Ci0KLQlpZiAoZWZpX2VuYWJsZWQpCi0JCWVmaV9pbml0KCk7Ci0KLQkvKiB1cGRhdGUgZTgyMCBmb3IgbWVtb3J5IG5vdCBjb3ZlcmVkIGJ5IFdCIE1UUlJzICovCi0JcHJvcGFnYXRlX2U4MjBfbWFwKCk7Ci0JbXRycl9icF9pbml0KCk7Ci0JaWYgKG10cnJfdHJpbV91bmNhY2hlZF9tZW1vcnkobWF4X3BmbikpCi0JCXByb3BhZ2F0ZV9lODIwX21hcCgpOwotCi0JbWF4X2xvd19wZm4gPSBzZXR1cF9tZW1vcnkoKTsKLQotI2lmZGVmIENPTkZJR19LVk1fQ0xPQ0sKLQlrdm1jbG9ja19pbml0KCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19WTUkKLQkvKgotCSAqIE11c3QgYmUgYWZ0ZXIgbWF4X2xvd19wZm4gaXMgZGV0ZXJtaW5lZCwgYW5kIGJlZm9yZSBrZXJuZWwKLQkgKiBwYWdldGFibGVzIGFyZSBzZXR1cC4KLQkgKi8KLQl2bWlfaW5pdCgpOwotI2VuZGlmCi0Ja3ZtX2d1ZXN0X2luaXQoKTsKLQotCS8qCi0JICogTk9URTogYmVmb3JlIHRoaXMgcG9pbnQgX25vYm9keV8gaXMgYWxsb3dlZCB0byBhbGxvY2F0ZQotCSAqIGFueSBtZW1vcnkgdXNpbmcgdGhlIGJvb3RtZW0gYWxsb2NhdG9yLiAgQWx0aG91Z2ggdGhlCi0JICogYWxsb2NhdG9yIGlzIG5vdyBpbml0aWFsaXNlZCBvbmx5IHRoZSBmaXJzdCA4TWIgb2YgdGhlIGtlcm5lbAotCSAqIHZpcnR1YWwgYWRkcmVzcyBzcGFjZSBoYXMgYmVlbiBtYXBwZWQuICBBbGwgYWxsb2NhdGlvbnMgYmVmb3JlCi0JICogcGFnaW5nX2luaXQoKSBoYXMgY29tcGxldGVkIG11c3QgdXNlIHRoZSBhbGxvY19ib290bWVtX2xvd19wYWdlcygpCi0JICogdmFyaWFudCAod2hpY2ggYWxsb2NhdGVzIERNQSdhYmxlIG1lbW9yeSkgYW5kIGNhcmUgbXVzdCBiZSB0YWtlbgotCSAqIG5vdCB0byBleGNlZWQgdGhlIDhNYiBsaW1pdC4KLQkgKi8KLQotI2lmZGVmIENPTkZJR19TTVAKLQlzbXBfYWxsb2NfbWVtb3J5KCk7IC8qIEFQIHByb2Nlc3NvciByZWFsbW9kZSBzdGFja3MgaW4gbG93IG1lbW9yeSovCi0jZW5kaWYKLQlwYWdpbmdfaW5pdCgpOwotCi0JLyoKLQkgKiBOT1RFOiBPbiB4ODYtMzIsIG9ubHkgZnJvbSB0aGlzIHBvaW50IG9uLCBmaXhtYXBzIGFyZSByZWFkeSBmb3IgdXNlLgotCSAqLwotCi0jaWZkZWYgQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKLQlpZiAoaW5pdF9vaGNpMTM5NF9kbWFfZWFybHkpCi0JCWluaXRfb2hjaTEzOTRfZG1hX29uX2FsbF9jb250cm9sbGVycygpOwotI2VuZGlmCi0KLQlyZW1hcHBlZF9wZ2RhdF9pbml0KCk7Ci0Jc3BhcnNlX2luaXQoKTsKLQl6b25lX3NpemVzX2luaXQoKTsKLQotCS8qCi0JICogTk9URTogYXQgdGhpcyBwb2ludCB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaXMgZnVsbHkgYXZhaWxhYmxlLgotCSAqLwotCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0JcmVsb2NhdGVfaW5pdHJkKCk7Ci0jZW5kaWYKLQotCXBhcmF2aXJ0X3Bvc3RfYWxsb2NhdG9yX2luaXQoKTsKLQotCWRtaV9zY2FuX21hY2hpbmUoKTsKLQotCWlvX2RlbGF5X2luaXQoKTsKLQotI2lmZGVmIENPTkZJR19YODZfU01QCi0JLyoKLQkgKiBzZXR1cCB0byB1c2UgdGhlIGVhcmx5IHN0YXRpYyBpbml0IHRhYmxlcyBkdXJpbmcga2VybmVsIHN0YXJ0dXAKLQkgKiBYODZfU01QIHdpbGwgZXhjbHVkZSBzdWItYXJjaGVzIHRoYXQgZG9uJ3QgZGVhbCB3ZWxsIHdpdGggaXQuCi0JICovCi0JeDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyID0gKHZvaWQgKil4ODZfY3B1X3RvX2FwaWNpZF9pbml0OwotCXg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyID0gKHZvaWQgKil4ODZfYmlvc19jcHVfYXBpY2lkX2luaXQ7Ci0jaWZkZWYgQ09ORklHX05VTUEKLQl4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19ub2RlX21hcF9pbml0OwotI2VuZGlmCi0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19YODZfR0VORVJJQ0FSQ0gKLQlnZW5lcmljX2FwaWNfcHJvYmUoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0FDUEkKLQkvKgotCSAqIFBhcnNlIHRoZSBBQ1BJIHRhYmxlcyBmb3IgcG9zc2libGUgYm9vdC10aW1lIFNNUCBjb25maWd1cmF0aW9uLgotCSAqLwotCWFjcGlfYm9vdF90YWJsZV9pbml0KCk7Ci0jZW5kaWYKLQotCWVhcmx5X3F1aXJrcygpOwotCi0jaWZkZWYgQ09ORklHX0FDUEkKLQlhY3BpX2Jvb3RfaW5pdCgpOwotCi0jaWYgZGVmaW5lZChDT05GSUdfU01QKSAmJiBkZWZpbmVkKENPTkZJR19YODZfUEMpCi0JaWYgKGRlZl90b19iaWdzbXApCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgIk1vcmUgdGhhbiA4IENQVXMgZGV0ZWN0ZWQgYW5kICIKLQkJCSJDT05GSUdfWDg2X1BDIGNhbm5vdCBoYW5kbGUgaXQuXG5Vc2UgIgotCQkJIkNPTkZJR19YODZfR0VORVJJQ0FSQ0ggb3IgQ09ORklHX1g4Nl9CSUdTTVAuXG4iKTsKLSNlbmRpZgotI2VuZGlmCi0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi0JaWYgKHNtcF9mb3VuZF9jb25maWcpCi0JCWdldF9zbXBfY29uZmlnKCk7Ci0jZW5kaWYKLQotCWU4MjBfcmVnaXN0ZXJfbWVtb3J5KCk7Ci0JZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKCk7Ci0KLSNpZmRlZiBDT05GSUdfVlQKLSNpZiBkZWZpbmVkKENPTkZJR19WR0FfQ09OU09MRSkKLQlpZiAoIWVmaV9lbmFibGVkIHx8IChlZmlfbWVtX3R5cGUoMHhhMDAwMCkgIT0gRUZJX0NPTlZFTlRJT05BTF9NRU1PUlkpKQotCQljb25zd2l0Y2hwID0gJnZnYV9jb247Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19EVU1NWV9DT05TT0xFKQotCWNvbnN3aXRjaHAgPSAmZHVtbXlfY29uOwotI2VuZGlmCi0jZW5kaWYKLX0KLQotLyoKLSAqIFJlcXVlc3QgYWRkcmVzcyBzcGFjZSBmb3IgYWxsIHN0YW5kYXJkIHJlc291cmNlcwotICoKLSAqIFRoaXMgaXMgY2FsbGVkIGp1c3QgYmVmb3JlIHBjaWJpb3NfaW5pdCgpLCB3aGljaCBpcyBhbHNvIGEKLSAqIHN1YnN5c19pbml0Y2FsbCwgYnV0IGlzIGxpbmtlZCBpbiBsYXRlciAoaW4gYXJjaC9pMzg2L3BjaS9jb21tb24uYykuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJTZXR0aW5nIHVwIHN0YW5kYXJkIFBDSSByZXNvdXJjZXNcbiIpOwotCWluaXRfaW9tZW1fcmVzb3VyY2VzKCZjb2RlX3Jlc291cmNlLCAmZGF0YV9yZXNvdXJjZSwgJmJzc19yZXNvdXJjZSk7Ci0KLQlyZXF1ZXN0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJnZpZGVvX3JhbV9yZXNvdXJjZSk7Ci0KLQkvKiByZXF1ZXN0IEkvTyBzcGFjZSBmb3IgZGV2aWNlcyB1c2VkIG9uIGFsbCBpWzM0NV04NiBQQ3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzdGFuZGFyZF9pb19yZXNvdXJjZXMpOyBpKyspCi0JCXJlcXVlc3RfcmVzb3VyY2UoJmlvcG9ydF9yZXNvdXJjZSwgJnN0YW5kYXJkX2lvX3Jlc291cmNlc1tpXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN1YnN5c19pbml0Y2FsbChyZXF1ZXN0X3N0YW5kYXJkX3Jlc291cmNlcyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZGZmMTI4Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9zZXR1cF82NC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTE5NCArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMTk5NSAgTGludXMgVG9ydmFsZHMKLSAqLwotCi0vKgotICogVGhpcyBmaWxlIGhhbmRsZXMgdGhlIGFyY2hpdGVjdHVyZS1kZXBlbmRlbnQgcGFydHMgb2YgaW5pdGlhbGl6YXRpb24KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZXJybm8uaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvc3RkZGVmLmg+Ci0jaW5jbHVkZSA8bGludXgvdW5pc3RkLmg+Ci0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3VzZXIuaD4KLSNpbmNsdWRlIDxsaW51eC9zY3JlZW5faW5mby5oPgotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXRyZC5oPgotI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2NyYXNoX2R1bXAuaD4KLSNpbmNsdWRlIDxsaW51eC9yb290X2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGFzbS9wY2ktZGlyZWN0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZWZpLmg+Ci0jaW5jbHVkZSA8bGludXgvYWNwaS5oPgotI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+Ci0jaW5jbHVkZSA8bGludXgvZWRkLmg+Ci0jaW5jbHVkZSA8bGludXgvaXNjc2lfaWJmdC5oPgotI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+Ci0jaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zb3J0Lmg+Ci0jaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXRfb2hjaTEzOTRfZG1hLmg+Ci0jaW5jbHVkZSA8bGludXgva3ZtX3BhcmEuaD4KLQotI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL3ZzeXNjYWxsLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotI2luY2x1ZGUgPGFzbS9tc3IuaD4KLSNpbmNsdWRlIDxhc20vZGVzYy5oPgotI2luY2x1ZGUgPHZpZGVvL2VkaWQuaD4KLSNpbmNsdWRlIDxhc20vZTgyMC5oPgotI2luY2x1ZGUgPGFzbS9kbWEuaD4KLSNpbmNsdWRlIDxhc20vZ2FydC5oPgotI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KLSNpbmNsdWRlIDxhc20vbW11X2NvbnRleHQuaD4KLSNpbmNsdWRlIDxhc20vcHJvdG8uaD4KLSNpbmNsdWRlIDxhc20vc2V0dXAuaD4KLSNpbmNsdWRlIDxhc20vbnVtYS5oPgotI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgotI2luY2x1ZGUgPGFzbS9kbWkuaD4KLSNpbmNsdWRlIDxhc20vY2FjaGVmbHVzaC5oPgotI2luY2x1ZGUgPGFzbS9tY2UuaD4KLSNpbmNsdWRlIDxhc20vZHMuaD4KLSNpbmNsdWRlIDxhc20vdG9wb2xvZ3kuaD4KLSNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgotI2luY2x1ZGUgPGFzbS9wYXQuaD4KLQotI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgotI2lmZGVmIENPTkZJR19QQVJBVklSVAotI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPgotI2Vsc2UKLSNkZWZpbmUgQVJDSF9TRVRVUAotI2VuZGlmCi0KLS8qCi0gKiBNYWNoaW5lIHNldHVwLi4KLSAqLwotCi1zdHJ1Y3QgY3B1aW5mb194ODYgYm9vdF9jcHVfZGF0YSBfX3JlYWRfbW9zdGx5OwotRVhQT1JUX1NZTUJPTChib290X2NwdV9kYXRhKTsKLQotX191MzIgY2xlYXJlZF9jcHVfY2Fwc1tOQ0FQSU5UU10gX19jcHVpbml0ZGF0YTsKLQotdW5zaWduZWQgbG9uZyBtbXVfY3I0X2ZlYXR1cmVzOwotCi0vKiBCb290IGxvYWRlciBJRCBhcyBhbiBpbnRlZ2VyLCBmb3IgdGhlIGJlbmVmaXQgb2YgcHJvY19kb2ludHZlYyAqLwotaW50IGJvb3Rsb2FkZXJfdHlwZTsKLQotdW5zaWduZWQgbG9uZyBzYXZlZF92aWRlb19tb2RlOwotCi1pbnQgZm9yY2VfbXdhaXQgX19jcHVpbml0ZGF0YTsKLQotLyoKLSAqIEVhcmx5IERNSSBtZW1vcnkKLSAqLwotaW50IGRtaV9hbGxvY19pbmRleDsKLWNoYXIgZG1pX2FsbG9jX2RhdGFbRE1JX01BWF9EQVRBXTsKLQotLyoKLSAqIFNldHVwIG9wdGlvbnMKLSAqLwotc3RydWN0IHNjcmVlbl9pbmZvIHNjcmVlbl9pbmZvOwotRVhQT1JUX1NZTUJPTChzY3JlZW5faW5mbyk7Ci1zdHJ1Y3Qgc3lzX2Rlc2NfdGFibGVfc3RydWN0IHsKLQl1bnNpZ25lZCBzaG9ydCBsZW5ndGg7Ci0JdW5zaWduZWQgY2hhciB0YWJsZVswXTsKLX07Ci0KLXN0cnVjdCBlZGlkX2luZm8gZWRpZF9pbmZvOwotRVhQT1JUX1NZTUJPTF9HUEwoZWRpZF9pbmZvKTsKLQotZXh0ZXJuIGludCByb290X21vdW50ZmxhZ3M7Ci0KLWNoYXIgX19pbml0ZGF0YSBjb21tYW5kX2xpbmVbQ09NTUFORF9MSU5FX1NJWkVdOwotCi1zdGF0aWMgc3RydWN0IHJlc291cmNlIHN0YW5kYXJkX2lvX3Jlc291cmNlc1tdID0gewotCXsgLm5hbWUgPSAiZG1hMSIsIC5zdGFydCA9IDB4MDAsIC5lbmQgPSAweDFmLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJwaWMxIiwgLnN0YXJ0ID0gMHgyMCwgLmVuZCA9IDB4MjEsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gInRpbWVyMCIsIC5zdGFydCA9IDB4NDAsIC5lbmQgPSAweDQzLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJ0aW1lcjEiLCAuc3RhcnQgPSAweDUwLCAuZW5kID0gMHg1MywKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAia2V5Ym9hcmQiLCAuc3RhcnQgPSAweDYwLCAuZW5kID0gMHg2MCwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAia2V5Ym9hcmQiLCAuc3RhcnQgPSAweDY0LCAuZW5kID0gMHg2NCwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAiZG1hIHBhZ2UgcmVnIiwgLnN0YXJ0ID0gMHg4MCwgLmVuZCA9IDB4OGYsCi0JCS5mbGFncyA9IElPUkVTT1VSQ0VfQlVTWSB8IElPUkVTT1VSQ0VfSU8gfSwKLQl7IC5uYW1lID0gInBpYzIiLCAuc3RhcnQgPSAweGEwLCAuZW5kID0gMHhhMSwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9LAotCXsgLm5hbWUgPSAiZG1hMiIsIC5zdGFydCA9IDB4YzAsIC5lbmQgPSAweGRmLAotCQkuZmxhZ3MgPSBJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX0lPIH0sCi0JeyAubmFtZSA9ICJmcHUiLCAuc3RhcnQgPSAweGYwLCAuZW5kID0gMHhmZiwKLQkJLmZsYWdzID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9JTyB9Ci19OwotCi0jZGVmaW5lIElPUkVTT1VSQ0VfUkFNIChJT1JFU09VUkNFX0JVU1kgfCBJT1JFU09VUkNFX01FTSkKLQotc3RhdGljIHN0cnVjdCByZXNvdXJjZSBkYXRhX3Jlc291cmNlID0gewotCS5uYW1lID0gIktlcm5lbCBkYXRhIiwKLQkuc3RhcnQgPSAwLAotCS5lbmQgPSAwLAotCS5mbGFncyA9IElPUkVTT1VSQ0VfUkFNLAotfTsKLXN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgY29kZV9yZXNvdXJjZSA9IHsKLQkubmFtZSA9ICJLZXJuZWwgY29kZSIsCi0JLnN0YXJ0ID0gMCwKLQkuZW5kID0gMCwKLQkuZmxhZ3MgPSBJT1JFU09VUkNFX1JBTSwKLX07Ci1zdGF0aWMgc3RydWN0IHJlc291cmNlIGJzc19yZXNvdXJjZSA9IHsKLQkubmFtZSA9ICJLZXJuZWwgYnNzIiwKLQkuc3RhcnQgPSAwLAotCS5lbmQgPSAwLAotCS5mbGFncyA9IElPUkVTT1VSQ0VfUkFNLAotfTsKLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2lkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwotCi0jaWZkZWYgQ09ORklHX1BST0NfVk1DT1JFCi0vKiBlbGZjb3JlaGRyPSBzcGVjaWZpZXMgdGhlIGxvY2F0aW9uIG9mIGVsZiBjb3JlIGhlYWRlcgotICogc3RvcmVkIGJ5IHRoZSBjcmFzaGVkIGtlcm5lbC4gVGhpcyBvcHRpb24gd2lsbCBiZSBwYXNzZWQKLSAqIGJ5IGtleGVjIGxvYWRlciB0byB0aGUgY2FwdHVyZSBrZXJuZWwuCi0gKi8KLXN0YXRpYyBpbnQgX19pbml0IHNldHVwX2VsZmNvcmVoZHIoY2hhciAqYXJnKQotewotCWNoYXIgKmVuZDsKLQlpZiAoIWFyZykKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JZWxmY29yZWhkcl9hZGRyID0gbWVtcGFyc2UoYXJnLCAmZW5kKTsKLQlyZXR1cm4gZW5kID4gYXJnID8gMCA6IC1FSU5WQUw7Ci19Ci1lYXJseV9wYXJhbSgiZWxmY29yZWhkciIsIHNldHVwX2VsZmNvcmVoZHIpOwotI2VuZGlmCi0KLSNpZm5kZWYgQ09ORklHX05VTUEKLXN0YXRpYyB2b2lkIF9faW5pdAotY29udGlnX2luaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQotewotCXVuc2lnbmVkIGxvbmcgYm9vdG1hcF9zaXplLCBib290bWFwOwotCi0JYm9vdG1hcF9zaXplID0gYm9vdG1lbV9ib290bWFwX3BhZ2VzKGVuZF9wZm4pPDxQQUdFX1NISUZUOwotCWJvb3RtYXAgPSBmaW5kX2U4MjBfYXJlYSgwLCBlbmRfcGZuPDxQQUdFX1NISUZULCBib290bWFwX3NpemUsCi0JCQkJIFBBR0VfU0laRSk7Ci0JaWYgKGJvb3RtYXAgPT0gLTFMKQotCQlwYW5pYygiQ2Fubm90IGZpbmQgYm9vdG1lbSBtYXAgb2Ygc2l6ZSAlbGRcbiIsIGJvb3RtYXBfc2l6ZSk7Ci0JYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtKGJvb3RtYXAgPj4gUEFHRV9TSElGVCwgZW5kX3Bmbik7Ci0JZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCBzdGFydF9wZm4sIGVuZF9wZm4pOwotCWZyZWVfYm9vdG1lbV93aXRoX2FjdGl2ZV9yZWdpb25zKDAsIGVuZF9wZm4pOwotCWVhcmx5X3Jlc190b19ib290bWVtKDAsIGVuZF9wZm48PFBBR0VfU0hJRlQpOwotCXJlc2VydmVfYm9vdG1lbShib290bWFwLCBib290bWFwX3NpemUsIEJPT1RNRU1fREVGQVVMVCk7Ci19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoQ09ORklHX0VERCkgfHwgZGVmaW5lZChDT05GSUdfRUREX01PRFVMRSkKLXN0cnVjdCBlZGQgZWRkOwotI2lmZGVmIENPTkZJR19FRERfTU9EVUxFCi1FWFBPUlRfU1lNQk9MKGVkZCk7Ci0jZW5kaWYKLS8qKgotICogY29weV9lZGQoKSAtIENvcHkgdGhlIEJJT1MgRUREIGluZm9ybWF0aW9uCi0gKiAgICAgICAgICAgICAgZnJvbSBib290X3BhcmFtcyBpbnRvIGEgc2FmZSBwbGFjZS4KLSAqCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjb3B5X2VkZCh2b2lkKQotewotICAgICBtZW1jcHkoZWRkLm1icl9zaWduYXR1cmUsIGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1ZmZlciwKLQkgICAgc2l6ZW9mKGVkZC5tYnJfc2lnbmF0dXJlKSk7Ci0gICAgIG1lbWNweShlZGQuZWRkX2luZm8sIGJvb3RfcGFyYW1zLmVkZGJ1Ziwgc2l6ZW9mKGVkZC5lZGRfaW5mbykpOwotICAgICBlZGQubWJyX3NpZ25hdHVyZV9uciA9IGJvb3RfcGFyYW1zLmVkZF9tYnJfc2lnX2J1Zl9lbnRyaWVzOwotICAgICBlZGQuZWRkX2luZm9fbnIgPSBib290X3BhcmFtcy5lZGRidWZfZW50cmllczsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgY29weV9lZGQodm9pZCkKLXsKLX0KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0tFWEVDCi1zdGF0aWMgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbF9tZW07Ci0JdW5zaWduZWQgbG9uZyBsb25nIGNyYXNoX3NpemUsIGNyYXNoX2Jhc2U7Ci0JaW50IHJldDsKLQotCXRvdGFsX21lbSA9ICgodW5zaWduZWQgbG9uZyBsb25nKW1heF9sb3dfcGZuIC0gbWluX2xvd19wZm4pIDw8IFBBR0VfU0hJRlQ7Ci0KLQlyZXQgPSBwYXJzZV9jcmFzaGtlcm5lbChib290X2NvbW1hbmRfbGluZSwgdG90YWxfbWVtLAotCQkJJmNyYXNoX3NpemUsICZjcmFzaF9iYXNlKTsKLQlpZiAocmV0ID09IDAgJiYgY3Jhc2hfc2l6ZSkgewotCQlpZiAoY3Jhc2hfYmFzZSA8PSAwKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJjcmFzaGtlcm5lbCByZXNlcnZhdGlvbiBmYWlsZWQgLSAiCi0JCQkJCSJ5b3UgaGF2ZSB0byBzcGVjaWZ5IGEgYmFzZSBhZGRyZXNzXG4iKTsKLQkJCXJldHVybjsKLQkJfQotCi0JCWlmIChyZXNlcnZlX2Jvb3RtZW0oY3Jhc2hfYmFzZSwgY3Jhc2hfc2l6ZSwKLQkJCQkJQk9PVE1FTV9FWENMVVNJVkUpIDwgMCkgewotCQkJcHJpbnRrKEtFUk5fSU5GTyAiY3Jhc2hrZXJuZWwgcmVzZXJ2YXRpb24gZmFpbGVkIC0gIgotCQkJCQkibWVtb3J5IGlzIGluIHVzZVxuIik7Ci0JCQlyZXR1cm47Ci0JCX0KLQotCQlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgJWxkTUIgb2YgbWVtb3J5IGF0ICVsZE1CICIKLQkJCQkiZm9yIGNyYXNoa2VybmVsIChTeXN0ZW0gUkFNOiAlbGRNQilcbiIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpKGNyYXNoX3NpemUgPj4gMjApLAotCQkJCSh1bnNpZ25lZCBsb25nKShjcmFzaF9iYXNlID4+IDIwKSwKLQkJCQkodW5zaWduZWQgbG9uZykodG90YWxfbWVtID4+IDIwKSk7Ci0JCWNyYXNoa19yZXMuc3RhcnQgPSBjcmFzaF9iYXNlOwotCQljcmFzaGtfcmVzLmVuZCAgID0gY3Jhc2hfYmFzZSArIGNyYXNoX3NpemUgLSAxOwotCQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmY3Jhc2hrX3Jlcyk7Ci0JfQotfQotI2Vsc2UKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgcmVzZXJ2ZV9jcmFzaGtlcm5lbCh2b2lkKQote30KLSNlbmRpZgotCi0vKiBPdmVycmlkZGVuIGluIHBhcmF2aXJ0LmMgaWYgQ09ORklHX1BBUkFWSVJUICovCi12b2lkIF9fYXR0cmlidXRlX18oKHdlYWspKSBfX2luaXQgbWVtb3J5X3NldHVwKHZvaWQpCi17Ci0gICAgICAgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAoKTsKLX0KLQotc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3NldHVwX2RhdGEodm9pZCkKLXsKLQlzdHJ1Y3Qgc2V0dXBfZGF0YSAqZGF0YTsKLQl1bnNpZ25lZCBsb25nIHBhX2RhdGE7Ci0KLQlpZiAoYm9vdF9wYXJhbXMuaGRyLnZlcnNpb24gPCAweDAyMDkpCi0JCXJldHVybjsKLQlwYV9kYXRhID0gYm9vdF9wYXJhbXMuaGRyLnNldHVwX2RhdGE7Ci0Jd2hpbGUgKHBhX2RhdGEpIHsKLQkJZGF0YSA9IGVhcmx5X2lvcmVtYXAocGFfZGF0YSwgUEFHRV9TSVpFKTsKLQkJc3dpdGNoIChkYXRhLT50eXBlKSB7Ci0JCWRlZmF1bHQ6Ci0JCQlicmVhazsKLQkJfQotI2lmbmRlZiBDT05GSUdfREVCVUdfQk9PVF9QQVJBTVMKLQkJZnJlZV9lYXJseShwYV9kYXRhLCBwYV9kYXRhK3NpemVvZigqZGF0YSkrZGF0YS0+bGVuKTsKLSNlbmRpZgotCQlwYV9kYXRhID0gZGF0YS0+bmV4dDsKLQkJZWFybHlfaW91bm1hcChkYXRhLCBQQUdFX1NJWkUpOwotCX0KLX0KLQotI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKLWV4dGVybiB2b2lkIF9fY3B1aW5pdCBmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKHZvaWQpOwotZXh0ZXJuIHZvaWQgX19pbml0IGNoZWNrX2VuYWJsZV9hbWRfbW1jb25mX2RtaSh2b2lkKTsKLSNlbHNlCi12b2lkIF9fY3B1aW5pdCBmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKHZvaWQpCi17Ci19Ci12b2lkIF9faW5pdCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCkKLXsKLX0KLSNlbmRpZgotCi0vKgotICogc2V0dXBfYXJjaCAtIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBib290LXRpbWUgaW5pdGlhbGl6YXRpb25zCi0gKgotICogTm90ZTogT24geDg2XzY0LCBmaXhtYXBzIGFyZSByZWFkeSBmb3IgdXNlIGV2ZW4gYmVmb3JlIHRoaXMgaXMgY2FsbGVkLgotICovCi12b2lkIF9faW5pdCBzZXR1cF9hcmNoKGNoYXIgKipjbWRsaW5lX3ApCi17Ci0JdW5zaWduZWQgaTsKLQotCXByaW50ayhLRVJOX0lORk8gIkNvbW1hbmQgbGluZTogJXNcbiIsIGJvb3RfY29tbWFuZF9saW5lKTsKLQotCVJPT1RfREVWID0gb2xkX2RlY29kZV9kZXYoYm9vdF9wYXJhbXMuaGRyLnJvb3RfZGV2KTsKLQlzY3JlZW5faW5mbyA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvOwotCWVkaWRfaW5mbyA9IGJvb3RfcGFyYW1zLmVkaWRfaW5mbzsKLQlzYXZlZF92aWRlb19tb2RlID0gYm9vdF9wYXJhbXMuaGRyLnZpZF9tb2RlOwotCWJvb3Rsb2FkZXJfdHlwZSA9IGJvb3RfcGFyYW1zLmhkci50eXBlX29mX2xvYWRlcjsKLQotI2lmZGVmIENPTkZJR19CTEtfREVWX1JBTQotCXJkX2ltYWdlX3N0YXJ0ID0gYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19JTUFHRV9TVEFSVF9NQVNLOwotCXJkX3Byb21wdCA9ICgoYm9vdF9wYXJhbXMuaGRyLnJhbV9zaXplICYgUkFNRElTS19QUk9NUFRfRkxBRykgIT0gMCk7Ci0JcmRfZG9sb2FkID0gKChib290X3BhcmFtcy5oZHIucmFtX3NpemUgJiBSQU1ESVNLX0xPQURfRkxBRykgIT0gMCk7Ci0jZW5kaWYKLSNpZmRlZiBDT05GSUdfRUZJCi0JaWYgKCFzdHJuY21wKChjaGFyICopJmJvb3RfcGFyYW1zLmVmaV9pbmZvLmVmaV9sb2FkZXJfc2lnbmF0dXJlLAotCQkgICAgICJFTDY0IiwgNCkpCi0JCWVmaV9lbmFibGVkID0gMTsKLSNlbmRpZgotCi0JQVJDSF9TRVRVUAotCi0JbWVtb3J5X3NldHVwKCk7Ci0JY29weV9lZGQoKTsKLQotCWlmICghYm9vdF9wYXJhbXMuaGRyLnJvb3RfZmxhZ3MpCi0JCXJvb3RfbW91bnRmbGFncyAmPSB+TVNfUkRPTkxZOwotCWluaXRfbW0uc3RhcnRfY29kZSA9ICh1bnNpZ25lZCBsb25nKSAmX3RleHQ7Ci0JaW5pdF9tbS5lbmRfY29kZSA9ICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0OwotCWluaXRfbW0uZW5kX2RhdGEgPSAodW5zaWduZWQgbG9uZykgJl9lZGF0YTsKLQlpbml0X21tLmJyayA9ICh1bnNpZ25lZCBsb25nKSAmX2VuZDsKLQotCWNvZGVfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl90ZXh0KTsKLQljb2RlX3Jlc291cmNlLmVuZCA9IHZpcnRfdG9fcGh5cygmX2V0ZXh0KS0xOwotCWRhdGFfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl9ldGV4dCk7Ci0JZGF0YV9yZXNvdXJjZS5lbmQgPSB2aXJ0X3RvX3BoeXMoJl9lZGF0YSktMTsKLQlic3NfcmVzb3VyY2Uuc3RhcnQgPSB2aXJ0X3RvX3BoeXMoJl9fYnNzX3N0YXJ0KTsKLQlic3NfcmVzb3VyY2UuZW5kID0gdmlydF90b19waHlzKCZfX2Jzc19zdG9wKS0xOwotCi0JZWFybHlfaWRlbnRpZnlfY3B1KCZib290X2NwdV9kYXRhKTsKLQotCXN0cmxjcHkoY29tbWFuZF9saW5lLCBib290X2NvbW1hbmRfbGluZSwgQ09NTUFORF9MSU5FX1NJWkUpOwotCSpjbWRsaW5lX3AgPSBjb21tYW5kX2xpbmU7Ci0KLQlwYXJzZV9zZXR1cF9kYXRhKCk7Ci0KLQlwYXJzZV9lYXJseV9wYXJhbSgpOwotCi0jaWZkZWYgQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKLQlpZiAoaW5pdF9vaGNpMTM5NF9kbWFfZWFybHkpCi0JCWluaXRfb2hjaTEzOTRfZG1hX29uX2FsbF9jb250cm9sbGVycygpOwotI2VuZGlmCi0KLQlmaW5pc2hfZTgyMF9wYXJzaW5nKCk7Ci0KLQkvKiBhZnRlciBwYXJzZV9lYXJseV9wYXJhbSwgc28gY291bGQgZGVidWcgaXQgKi8KLQlpbnNlcnRfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmY29kZV9yZXNvdXJjZSk7Ci0JaW5zZXJ0X3Jlc291cmNlKCZpb21lbV9yZXNvdXJjZSwgJmRhdGFfcmVzb3VyY2UpOwotCWluc2VydF9yZXNvdXJjZSgmaW9tZW1fcmVzb3VyY2UsICZic3NfcmVzb3VyY2UpOwotCi0JZWFybHlfZ2FydF9pb21tdV9jaGVjaygpOwotCi0JZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCAtMVVMKTsKLQkvKgotCSAqIHBhcnRpYWxseSB1c2VkIHBhZ2VzIGFyZSBub3QgdXNhYmxlIC0gdGh1cwotCSAqIHdlIGFyZSByb3VuZGluZyB1cHdhcmRzOgotCSAqLwotCWVuZF9wZm4gPSBlODIwX2VuZF9vZl9yYW0oKTsKLQkvKiB1cGRhdGUgZTgyMCBmb3IgbWVtb3J5IG5vdCBjb3ZlcmVkIGJ5IFdCIE1UUlJzICovCi0JbXRycl9icF9pbml0KCk7Ci0JaWYgKG10cnJfdHJpbV91bmNhY2hlZF9tZW1vcnkoZW5kX3BmbikpIHsKLQkJZTgyMF9yZWdpc3Rlcl9hY3RpdmVfcmVnaW9ucygwLCAwLCAtMVVMKTsKLQkJZW5kX3BmbiA9IGU4MjBfZW5kX29mX3JhbSgpOwotCX0KLQotCW51bV9waHlzcGFnZXMgPSBlbmRfcGZuOwotCi0JY2hlY2tfZWZlcigpOwotCi0JbWF4X3Bmbl9tYXBwZWQgPSBpbml0X21lbW9yeV9tYXBwaW5nKDAsIChtYXhfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSk7Ci0JaWYgKGVmaV9lbmFibGVkKQotCQllZmlfaW5pdCgpOwotCi0JdnNtcF9pbml0KCk7Ci0KLQlkbWlfc2Nhbl9tYWNoaW5lKCk7Ci0KLQlpb19kZWxheV9pbml0KCk7Ci0KLSNpZmRlZiBDT05GSUdfS1ZNX0NMT0NLCi0Ja3ZtY2xvY2tfaW5pdCgpOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfU01QCi0JLyogc2V0dXAgdG8gdXNlIHRoZSBlYXJseSBzdGF0aWMgaW5pdCB0YWJsZXMgZHVyaW5nIGtlcm5lbCBzdGFydHVwICovCi0JeDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyID0gKHZvaWQgKil4ODZfY3B1X3RvX2FwaWNpZF9pbml0OwotCXg4Nl9iaW9zX2NwdV9hcGljaWRfZWFybHlfcHRyID0gKHZvaWQgKil4ODZfYmlvc19jcHVfYXBpY2lkX2luaXQ7Ci0jaWZkZWYgQ09ORklHX05VTUEKLQl4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0ciA9ICh2b2lkICopeDg2X2NwdV90b19ub2RlX21hcF9pbml0OwotI2VuZGlmCi0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JLyoKLQkgKiBJbml0aWFsaXplIHRoZSBBQ1BJIGJvb3QtdGltZSB0YWJsZSBwYXJzZXIgKGdldHMgdGhlIFJTRFAgYW5kIFNEVCkuCi0JICogQ2FsbCB0aGlzIGVhcmx5IGZvciBTUkFUIG5vZGUgc2V0dXAuCi0JICovCi0JYWNwaV9ib290X3RhYmxlX2luaXQoKTsKLSNlbmRpZgotCi0JLyogSG93IG1hbnkgZW5kLW9mLW1lbW9yeSB2YXJpYWJsZXMgeW91IGhhdmUsIGdyYW5kbWEhICovCi0JbWF4X2xvd19wZm4gPSBlbmRfcGZuOwotCW1heF9wZm4gPSBlbmRfcGZuOwotCWhpZ2hfbWVtb3J5ID0gKHZvaWQgKilfX3ZhKGVuZF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7Ci0KLQkvKiBSZW1vdmUgYWN0aXZlIHJhbmdlcyBzbyByZWRpc2NvdmVyeSB3aXRoIE5VTUEtYXdhcmVuZXNzIGhhcHBlbnMgKi8KLQlyZW1vdmVfYWxsX2FjdGl2ZV9yYW5nZXMoKTsKLQotI2lmZGVmIENPTkZJR19BQ1BJX05VTUEKLQkvKgotCSAqIFBhcnNlIFNSQVQgdG8gZGlzY292ZXIgbm9kZXMuCi0JICovCi0JYWNwaV9udW1hX2luaXQoKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX05VTUEKLQludW1hX2luaXRtZW1faW5pdCgwLCBlbmRfcGZuKTsKLSNlbHNlCi0JY29udGlnX2luaXRtZW1faW5pdCgwLCBlbmRfcGZuKTsKLSNlbmRpZgotCi0JZG1hMzJfcmVzZXJ2ZV9ib290bWVtKCk7Ci0KLSNpZmRlZiBDT05GSUdfQUNQSV9TTEVFUAotCS8qCi0JICogUmVzZXJ2ZSBsb3cgbWVtb3J5IHJlZ2lvbiBmb3Igc2xlZXAgc3VwcG9ydC4KLQkgKi8KLSAgICAgICBhY3BpX3Jlc2VydmVfYm9vdG1lbSgpOwotI2VuZGlmCi0KLQlpZiAoZWZpX2VuYWJsZWQpCi0JCWVmaV9yZXNlcnZlX2Jvb3RtZW0oKTsKLQotICAgICAgIC8qCi0JKiBGaW5kIGFuZCByZXNlcnZlIHBvc3NpYmxlIGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKLQkqLwotCWZpbmRfc21wX2NvbmZpZygpOwotI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAotCWlmIChib290X3BhcmFtcy5oZHIudHlwZV9vZl9sb2FkZXIgJiYgYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2UpIHsKLQkJdW5zaWduZWQgbG9uZyByYW1kaXNrX2ltYWdlID0gYm9vdF9wYXJhbXMuaGRyLnJhbWRpc2tfaW1hZ2U7Ci0JCXVuc2lnbmVkIGxvbmcgcmFtZGlza19zaXplICA9IGJvb3RfcGFyYW1zLmhkci5yYW1kaXNrX3NpemU7Ci0JCXVuc2lnbmVkIGxvbmcgcmFtZGlza19lbmQgICA9IHJhbWRpc2tfaW1hZ2UgKyByYW1kaXNrX3NpemU7Ci0JCXVuc2lnbmVkIGxvbmcgZW5kX29mX21lbSAgICA9IGVuZF9wZm4gPDwgUEFHRV9TSElGVDsKLQotCQlpZiAocmFtZGlza19lbmQgPD0gZW5kX29mX21lbSkgewotCQkJLyoKLQkJCSAqIGRvbid0IG5lZWQgdG8gcmVzZXJ2ZSBhZ2FpbiwgYWxyZWFkeSByZXNlcnZlZCBlYXJseQotCQkJICogaW4geDg2XzY0X3N0YXJ0X2tlcm5lbCwgYW5kIGVhcmx5X3Jlc190b19ib290bWVtCi0JCQkgKiBjb252ZXJ0IHRoYXQgdG8gcmVzZXJ2ZWQgaW4gYm9vdG1lbQotCQkJICovCi0JCQlpbml0cmRfc3RhcnQgPSByYW1kaXNrX2ltYWdlICsgUEFHRV9PRkZTRVQ7Ci0JCQlpbml0cmRfZW5kID0gaW5pdHJkX3N0YXJ0K3JhbWRpc2tfc2l6ZTsKLQkJfSBlbHNlIHsKLQkJCWZyZWVfYm9vdG1lbShyYW1kaXNrX2ltYWdlLCByYW1kaXNrX3NpemUpOwotCQkJcHJpbnRrKEtFUk5fRVJSICJpbml0cmQgZXh0ZW5kcyBiZXlvbmQgZW5kIG9mIG1lbW9yeSAiCi0JCQkgICAgICAgIigweCUwOGx4ID4gMHglMDhseClcbmRpc2FibGluZyBpbml0cmRcbiIsCi0JCQkgICAgICAgcmFtZGlza19lbmQsIGVuZF9vZl9tZW0pOwotCQkJaW5pdHJkX3N0YXJ0ID0gMDsKLQkJfQotCX0KLSNlbmRpZgotCXJlc2VydmVfY3Jhc2hrZXJuZWwoKTsKLQotCXJlc2VydmVfaWJmdF9yZWdpb24oKTsKLQotCXBhZ2luZ19pbml0KCk7Ci0JbWFwX3ZzeXNjYWxsKCk7Ci0KLQllYXJseV9xdWlya3MoKTsKLQotI2lmZGVmIENPTkZJR19BQ1BJCi0JLyoKLQkgKiBSZWFkIEFQSUMgYW5kIHNvbWUgb3RoZXIgZWFybHkgaW5mb3JtYXRpb24gZnJvbSBBQ1BJIHRhYmxlcy4KLQkgKi8KLQlhY3BpX2Jvb3RfaW5pdCgpOwotI2VuZGlmCi0KLQlpbml0X2NwdV90b19ub2RlKCk7Ci0KLQkvKgotCSAqIGdldCBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246Ci0JICovCi0JaWYgKHNtcF9mb3VuZF9jb25maWcpCi0JCWdldF9zbXBfY29uZmlnKCk7Ci0JaW5pdF9hcGljX21hcHBpbmdzKCk7Ci0JaW9hcGljX2luaXRfbWFwcGluZ3MoKTsKLQotCWt2bV9ndWVzdF9pbml0KCk7Ci0KLQkvKgotCSAqIFdlIHRydXN0IGU4MjAgY29tcGxldGVseS4gTm8gZXhwbGljaXQgUk9NIHByb2JpbmcgaW4gbWVtb3J5LgotCSAqLwotCWU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXMoKTsKLQllODIwX21hcmtfbm9zYXZlX3JlZ2lvbnMoKTsKLQotCS8qIHJlcXVlc3QgSS9PIHNwYWNlIGZvciBkZXZpY2VzIHVzZWQgb24gYWxsIGlbMzQ1XTg2IFBDcyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHN0YW5kYXJkX2lvX3Jlc291cmNlcyk7IGkrKykKLQkJcmVxdWVzdF9yZXNvdXJjZSgmaW9wb3J0X3Jlc291cmNlLCAmc3RhbmRhcmRfaW9fcmVzb3VyY2VzW2ldKTsKLQotCWU4MjBfc2V0dXBfZ2FwKCk7Ci0KLSNpZmRlZiBDT05GSUdfVlQKLSNpZiBkZWZpbmVkKENPTkZJR19WR0FfQ09OU09MRSkKLQlpZiAoIWVmaV9lbmFibGVkIHx8IChlZmlfbWVtX3R5cGUoMHhhMDAwMCkgIT0gRUZJX0NPTlZFTlRJT05BTF9NRU1PUlkpKQotCQljb25zd2l0Y2hwID0gJnZnYV9jb247Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19EVU1NWV9DT05TT0xFKQotCWNvbnN3aXRjaHAgPSAmZHVtbXlfY29uOwotI2VuZGlmCi0jZW5kaWYKLQotCS8qIGRvIHRoaXMgYmVmb3JlIGlkZW50aWZ5X2NwdSBmb3IgYm9vdCBjcHUgKi8KLQljaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkoKTsKLX0KLQotc3RhdGljIGludCBfX2NwdWluaXQgZ2V0X21vZGVsX25hbWUoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotCXVuc2lnbmVkIGludCAqdjsKLQotCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA8IDB4ODAwMDAwMDQpCi0JCXJldHVybiAwOwotCi0JdiA9ICh1bnNpZ25lZCBpbnQgKikgYy0+eDg2X21vZGVsX2lkOwotCWNwdWlkKDB4ODAwMDAwMDIsICZ2WzBdLCAmdlsxXSwgJnZbMl0sICZ2WzNdKTsKLQljcHVpZCgweDgwMDAwMDAzLCAmdls0XSwgJnZbNV0sICZ2WzZdLCAmdls3XSk7Ci0JY3B1aWQoMHg4MDAwMDAwNCwgJnZbOF0sICZ2WzldLCAmdlsxMF0sICZ2WzExXSk7Ci0JYy0+eDg2X21vZGVsX2lkWzQ4XSA9IDA7Ci0JcmV0dXJuIDE7Ci19Ci0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGRpc3BsYXlfY2FjaGVpbmZvKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQl1bnNpZ25lZCBpbnQgbiwgZHVtbXksIGVheCwgZWJ4LCBlY3gsIGVkeDsKLQotCW4gPSBjLT5leHRlbmRlZF9jcHVpZF9sZXZlbDsKLQotCWlmIChuID49IDB4ODAwMDAwMDUpIHsKLQkJY3B1aWQoMHg4MDAwMDAwNSwgJmR1bW15LCAmZWJ4LCAmZWN4LCAmZWR4KTsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMSBJIENhY2hlOiAlZEsgKCVkIGJ5dGVzL2xpbmUpLCAiCi0JCSAgICAgICAiRCBjYWNoZSAlZEsgKCVkIGJ5dGVzL2xpbmUpXG4iLAotCQkgICAgICAgZWR4Pj4yNCwgZWR4JjB4RkYsIGVjeD4+MjQsIGVjeCYweEZGKTsKLQkJYy0+eDg2X2NhY2hlX3NpemUgPSAoZWN4Pj4yNCkgKyAoZWR4Pj4yNCk7Ci0JCS8qIE9uIEs4IEwxIFRMQiBpcyBpbmNsdXNpdmUsIHNvIGRvbid0IGNvdW50IGl0ICovCi0JCWMtPng4Nl90bGJzaXplID0gMDsKLQl9Ci0KLQlpZiAobiA+PSAweDgwMDAwMDA2KSB7Ci0JCWNwdWlkKDB4ODAwMDAwMDYsICZkdW1teSwgJmVieCwgJmVjeCwgJmVkeCk7Ci0JCWVjeCA9IGNwdWlkX2VjeCgweDgwMDAwMDA2KTsKLQkJYy0+eDg2X2NhY2hlX3NpemUgPSBlY3ggPj4gMTY7Ci0JCWMtPng4Nl90bGJzaXplICs9ICgoZWJ4ID4+IDE2KSAmIDB4ZmZmKSArIChlYnggJiAweGZmZik7Ci0KLQkJcHJpbnRrKEtFUk5fSU5GTyAiQ1BVOiBMMiBDYWNoZTogJWRLICglZCBieXRlcy9saW5lKVxuIiwKLQkJYy0+eDg2X2NhY2hlX3NpemUsIGVjeCAmIDB4RkYpOwotCX0KLQlpZiAobiA+PSAweDgwMDAwMDA4KSB7Ci0JCWNwdWlkKDB4ODAwMDAwMDgsICZlYXgsICZkdW1teSwgJmR1bW15LCAmZHVtbXkpOwotCQljLT54ODZfdmlydF9iaXRzID0gKGVheCA+PiA4KSAmIDB4ZmY7Ci0JCWMtPng4Nl9waHlzX2JpdHMgPSBlYXggJiAweGZmOwotCX0KLX0KLQotI2lmZGVmIENPTkZJR19OVU1BCi1zdGF0aWMgaW50IF9fY3B1aW5pdCBuZWFyYnlfbm9kZShpbnQgYXBpY2lkKQotewotCWludCBpLCBub2RlOwotCi0JZm9yIChpID0gYXBpY2lkIC0gMTsgaSA+PSAwOyBpLS0pIHsKLQkJbm9kZSA9IGFwaWNpZF90b19ub2RlW2ldOwotCQlpZiAobm9kZSAhPSBOVU1BX05PX05PREUgJiYgbm9kZV9vbmxpbmUobm9kZSkpCi0JCQlyZXR1cm4gbm9kZTsKLQl9Ci0JZm9yIChpID0gYXBpY2lkICsgMTsgaSA8IE1BWF9MT0NBTF9BUElDOyBpKyspIHsKLQkJbm9kZSA9IGFwaWNpZF90b19ub2RlW2ldOwotCQlpZiAobm9kZSAhPSBOVU1BX05PX05PREUgJiYgbm9kZV9vbmxpbmUobm9kZSkpCi0JCQlyZXR1cm4gbm9kZTsKLQl9Ci0JcmV0dXJuIGZpcnN0X25vZGUobm9kZV9vbmxpbmVfbWFwKTsgLyogU2hvdWxkbid0IGhhcHBlbiAqLwotfQotI2VuZGlmCi0KLS8qCi0gKiBPbiBhIEFNRCBkdWFsIGNvcmUgc2V0dXAgdGhlIGxvd2VyIGJpdHMgb2YgdGhlIEFQSUMgaWQgZGlzdGluZ3VzaCB0aGUgY29yZXMuCi0gKiBBc3N1bWVzIG51bWJlciBvZiBjb3JlcyBpcyBhIHBvd2VyIG9mIHR3by4KLSAqLwotc3RhdGljIHZvaWQgX19jcHVpbml0IGFtZF9kZXRlY3RfY21wKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLSNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgYml0czsKLSNpZmRlZiBDT05GSUdfTlVNQQotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IG5vZGUgPSAwOwotCXVuc2lnbmVkIGFwaWNpZCA9IGhhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpOwotI2VuZGlmCi0JYml0cyA9IGMtPng4Nl9jb3JlaWRfYml0czsKLQotCS8qIExvdyBvcmRlciBiaXRzIGRlZmluZSB0aGUgY29yZSBpZCAoaW5kZXggb2YgY29yZSBpbiBzb2NrZXQpICovCi0JYy0+Y3B1X2NvcmVfaWQgPSBjLT5pbml0aWFsX2FwaWNpZCAmICgoMSA8PCBiaXRzKS0xKTsKLQkvKiBDb252ZXJ0IHRoZSBpbml0aWFsIEFQSUMgSUQgaW50byB0aGUgc29ja2V0IElEICovCi0JYy0+cGh5c19wcm9jX2lkID0gYy0+aW5pdGlhbF9hcGljaWQgPj4gYml0czsKLQotI2lmZGVmIENPTkZJR19OVU1BCi0Jbm9kZSA9IGMtPnBoeXNfcHJvY19pZDsKLQlpZiAoYXBpY2lkX3RvX25vZGVbYXBpY2lkXSAhPSBOVU1BX05PX05PREUpCi0JCW5vZGUgPSBhcGljaWRfdG9fbm9kZVthcGljaWRdOwotCWlmICghbm9kZV9vbmxpbmUobm9kZSkpIHsKLQkJLyogVHdvIHBvc3NpYmlsaXRpZXMgaGVyZToKLQkJICAgLSBUaGUgQ1BVIGlzIG1pc3NpbmcgbWVtb3J5IGFuZCBubyBub2RlIHdhcyBjcmVhdGVkLgotCQkgICBJbiB0aGF0IGNhc2UgdHJ5IHBpY2tpbmcgb25lIGZyb20gYSBuZWFyYnkgQ1BVCi0JCSAgIC0gVGhlIEFQSUMgSURzIGRpZmZlciBmcm9tIHRoZSBIeXBlclRyYW5zcG9ydCBub2RlIElEcwotCQkgICB3aGljaCB0aGUgSzggbm9ydGhicmlkZ2UgcGFyc2luZyBmaWxscyBpbi4KLQkJICAgQXNzdW1lIHRoZXkgYXJlIGFsbCBpbmNyZWFzZWQgYnkgYSBjb25zdGFudCBvZmZzZXQsCi0JCSAgIGJ1dCBpbiB0aGUgc2FtZSBvcmRlciBhcyB0aGUgSFQgbm9kZWlkcy4KLQkJICAgSWYgdGhhdCBkb2Vzbid0IHJlc3VsdCBpbiBhIHVzYWJsZSBub2RlIGZhbGwgYmFjayB0byB0aGUKLQkJICAgcGF0aCBmb3IgdGhlIHByZXZpb3VzIGNhc2UuICAqLwotCi0JCWludCBodF9ub2RlaWQgPSBjLT5pbml0aWFsX2FwaWNpZDsKLQotCQlpZiAoaHRfbm9kZWlkID49IDAgJiYKLQkJICAgIGFwaWNpZF90b19ub2RlW2h0X25vZGVpZF0gIT0gTlVNQV9OT19OT0RFKQotCQkJbm9kZSA9IGFwaWNpZF90b19ub2RlW2h0X25vZGVpZF07Ci0JCS8qIFBpY2sgYSBuZWFyYnkgbm9kZSAqLwotCQlpZiAoIW5vZGVfb25saW5lKG5vZGUpKQotCQkJbm9kZSA9IG5lYXJieV9ub2RlKGFwaWNpZCk7Ci0JfQotCW51bWFfc2V0X25vZGUoY3B1LCBub2RlKTsKLQotCXByaW50ayhLRVJOX0lORk8gIkNQVSAlZC8leCAtPiBOb2RlICVkXG4iLCBjcHUsIGFwaWNpZCwgbm9kZSk7Ci0jZW5kaWYKLSNlbmRpZgotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9hbWRfbWMoc3RydWN0IGNwdWluZm9feDg2ICpjKQotewotI2lmZGVmIENPTkZJR19TTVAKLQl1bnNpZ25lZCBiaXRzLCBlY3g7Ci0KLQkvKiBNdWx0aSBjb3JlIENQVT8gKi8KLQlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPCAweDgwMDAwMDA4KQotCQlyZXR1cm47Ci0KLQllY3ggPSBjcHVpZF9lY3goMHg4MDAwMDAwOCk7Ci0KLQljLT54ODZfbWF4X2NvcmVzID0gKGVjeCAmIDB4ZmYpICsgMTsKLQotCS8qIENQVSB0ZWxsaW5nIHVzIHRoZSBjb3JlIGlkIGJpdHMgc2hpZnQ/ICovCi0JYml0cyA9IChlY3ggPj4gMTIpICYgMHhGOwotCi0JLyogT3RoZXJ3aXNlIHJlY29tcHV0ZSAqLwotCWlmIChiaXRzID09IDApIHsKLQkJd2hpbGUgKCgxIDw8IGJpdHMpIDwgYy0+eDg2X21heF9jb3JlcykKLQkJCWJpdHMrKzsKLQl9Ci0KLQljLT54ODZfY29yZWlkX2JpdHMgPSBiaXRzOwotCi0jZW5kaWYKLX0KLQotI2RlZmluZSBFTkFCTEVfQzFFX01BU0sJCTB4MTgwMDAwMDAKLSNkZWZpbmUgQ1BVSURfUFJPQ0VTU09SX1NJR05BVFVSRQkxCi0jZGVmaW5lIENQVUlEX1hGQU0JCTB4MGZmMDAwMDAKLSNkZWZpbmUgQ1BVSURfWEZBTV9LOAkJMHgwMDAwMDAwMAotI2RlZmluZSBDUFVJRF9YRkFNXzEwSAkJMHgwMDEwMDAwMAotI2RlZmluZSBDUFVJRF9YRkFNXzExSAkJMHgwMDIwMDAwMAotI2RlZmluZSBDUFVJRF9YTU9ECQkweDAwMGYwMDAwCi0jZGVmaW5lIENQVUlEX1hNT0RfUkVWX0YJMHgwMDA0MDAwMAotCi0vKiBBTUQgc3lzdGVtcyB3aXRoIEMxRSBkb24ndCBoYXZlIGEgd29ya2luZyBsQVBJQyB0aW1lci4gQ2hlY2sgZm9yIHRoYXQuICovCi1zdGF0aWMgX19jcHVpbml0IGludCBhbWRfYXBpY190aW1lcl9icm9rZW4odm9pZCkKLXsKLQl1MzIgbG8sIGhpLCBlYXggPSBjcHVpZF9lYXgoQ1BVSURfUFJPQ0VTU09SX1NJR05BVFVSRSk7Ci0KLQlzd2l0Y2ggKGVheCAmIENQVUlEX1hGQU0pIHsKLQljYXNlIENQVUlEX1hGQU1fSzg6Ci0JCWlmICgoZWF4ICYgQ1BVSURfWE1PRCkgPCBDUFVJRF9YTU9EX1JFVl9GKQotCQkJYnJlYWs7Ci0JY2FzZSBDUFVJRF9YRkFNXzEwSDoKLQljYXNlIENQVUlEX1hGQU1fMTFIOgotCQlyZG1zcihNU1JfSzhfRU5BQkxFX0MxRSwgbG8sIGhpKTsKLQkJaWYgKGxvICYgRU5BQkxFX0MxRV9NQVNLKQotCQkJcmV0dXJuIDE7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCS8qIGVyciBvbiB0aGUgc2lkZSBvZiBjYXV0aW9uICovCi0JCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQllYXJseV9pbml0X2FtZF9tYyhjKTsKLQotIAkvKiBjLT54ODZfcG93ZXIgaXMgODAwMF8wMDA3IGVkeC4gQml0IDggaXMgY29uc3RhbnQgVFNDICovCi0JaWYgKGMtPng4Nl9wb3dlciAmICgxPDw4KSkKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQl1bnNpZ25lZCBsZXZlbDsKLQotI2lmZGVmIENPTkZJR19TTVAKLQl1bnNpZ25lZCBsb25nIHZhbHVlOwotCi0JLyoKLQkgKiBEaXNhYmxlIFRMQiBmbHVzaCBmaWx0ZXIgYnkgc2V0dGluZyBIV0NSLkZGRElTIG9uIEs4Ci0JICogYml0IDYgb2YgbXNyIEMwMDFfMDAxNQotCSAqCi0JICogRXJyYXRhIDYzIGZvciBTSC1CMyBzdGVwcGluZ3MKLQkgKiBFcnJhdGEgMTIyIGZvciBhbGwgc3RlcHBpbmdzIChGKyBoYXZlIGl0IGRpc2FibGVkIGJ5IGRlZmF1bHQpCi0JICovCi0JaWYgKGMtPng4NiA9PSAxNSkgewotCQlyZG1zcmwoTVNSX0s4X0hXQ1IsIHZhbHVlKTsKLQkJdmFsdWUgfD0gMSA8PCA2OwotCQl3cm1zcmwoTVNSX0s4X0hXQ1IsIHZhbHVlKTsKLQl9Ci0jZW5kaWYKLQotCS8qIEJpdCAzMSBpbiBub3JtYWwgQ1BVSUQgdXNlZCBmb3Igbm9uc3RhbmRhcmQgM0ROb3cgSUQ7Ci0JICAgM0ROb3cgaXMgSURkIGJ5IGJpdCAzMSBpbiBleHRlbmRlZCBDUFVJRCAoMSozMiszMSkgYW55d2F5ICovCi0JY2xlYXJfY3B1X2NhcChjLCAwKjMyKzMxKTsKLQotCS8qIE9uIEMrIHN0ZXBwaW5nIEs4IHJlcCBtaWNyb2NvZGUgd29ya3Mgd2VsbCBmb3IgY29weS9tZW1zZXQgKi8KLQlsZXZlbCA9IGNwdWlkX2VheCgxKTsKLQlpZiAoYy0+eDg2ID09IDE1ICYmICgobGV2ZWwgPj0gMHgwZjQ4ICYmIGxldmVsIDwgMHgwZjUwKSB8fAotCQkJICAgICBsZXZlbCA+PSAweDBmNTgpKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7Ci0JaWYgKGMtPng4NiA9PSAweDEwIHx8IGMtPng4NiA9PSAweDExKQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7Ci0KLQkvKiBFbmFibGUgd29ya2Fyb3VuZCBmb3IgRlhTQVZFIGxlYWsgKi8KLQlpZiAoYy0+eDg2ID49IDYpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0ZYU0FWRV9MRUFLKTsKLQotCWxldmVsID0gZ2V0X21vZGVsX25hbWUoYyk7Ci0JaWYgKCFsZXZlbCkgewotCQlzd2l0Y2ggKGMtPng4NikgewotCQljYXNlIDE1OgotCQkJLyogU2hvdWxkIGRpc3Rpbmd1aXNoIE1vZGVscyBoZXJlLCBidXQgdGhpcyBpcyBvbmx5Ci0JCQkgICBhIGZhbGxiYWNrIGFueXdheXMuICovCi0JCQlzdHJjcHkoYy0+eDg2X21vZGVsX2lkLCAiSGFtbWVyIik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlkaXNwbGF5X2NhY2hlaW5mbyhjKTsKLQotCS8qIE11bHRpIGNvcmUgQ1BVPyAqLwotCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA4KQotCQlhbWRfZGV0ZWN0X2NtcChjKTsKLQotCWlmIChjLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA+PSAweDgwMDAwMDA2ICYmCi0JCShjcHVpZF9lZHgoMHg4MDAwMDAwNikgJiAweGYwMDApKQotCQludW1fY2FjaGVfbGVhdmVzID0gNDsKLQllbHNlCi0JCW51bV9jYWNoZV9sZWF2ZXMgPSAzOwotCi0JaWYgKGMtPng4NiA9PSAweGYgfHwgYy0+eDg2ID09IDB4MTAgfHwgYy0+eDg2ID09IDB4MTEpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0s4KTsKLQotCS8qIE1GRU5DRSBzdG9wcyBSRFRTQyBzcGVjdWxhdGlvbiAqLwotCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX01GRU5DRV9SRFRTQyk7Ci0KLQlpZiAoYy0+eDg2ID09IDB4MTApCi0JCWZhbTEwaF9jaGVja19lbmFibGVfbW1jZmcoKTsKLQotCWlmIChhbWRfYXBpY190aW1lcl9icm9rZW4oKSkKLQkJZGlzYWJsZV9hcGljX3RpbWVyID0gMTsKLQotCWlmIChjID09ICZib290X2NwdV9kYXRhICYmIGMtPng4NiA+PSAweGYgJiYgYy0+eDg2IDw9IDB4MTEpIHsKLQkJdW5zaWduZWQgbG9uZyBsb25nIHRzZWc7Ci0KLQkJLyoKLQkJICogU3BsaXQgdXAgZGlyZWN0IG1hcHBpbmcgYXJvdW5kIHRoZSBUU0VHIFNNTSBhcmVhLgotCQkgKiBEb24ndCBkbyBpdCBmb3IgZ2JwYWdlcyBiZWNhdXNlIHRoZXJlIHNlZW1zIHZlcnkgbGl0dGxlCi0JCSAqIGJlbmVmaXQgaW4gZG9pbmcgc28uCi0JCSAqLwotCQlpZiAoIXJkbXNybF9zYWZlKE1TUl9LOF9UU0VHX0FERFIsICZ0c2VnKSAmJgotCQkodHNlZyA+PiBQTURfU0hJRlQpIDwgKG1heF9wZm5fbWFwcGVkID4+IChQTURfU0hJRlQtUEFHRV9TSElGVCkpKQotCQkJc2V0X21lbW9yeV80aygodW5zaWduZWQgbG9uZylfX3ZhKHRzZWcpLCAxKTsKLQl9Ci19Ci0KLXZvaWQgX19jcHVpbml0IGRldGVjdF9odChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0jaWZkZWYgQ09ORklHX1NNUAotCXUzMiBlYXgsIGVieCwgZWN4LCBlZHg7Ci0JaW50IGluZGV4X21zYiwgY29yZV9iaXRzOwotCi0JY3B1aWQoMSwgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7Ci0KLQotCWlmICghY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9IVCkpCi0JCXJldHVybjsKLQlpZiAoY3B1X2hhcyhjLCBYODZfRkVBVFVSRV9DTVBfTEVHQUNZKSkKLQkJZ290byBvdXQ7Ci0KLQlzbXBfbnVtX3NpYmxpbmdzID0gKGVieCAmIDB4ZmYwMDAwKSA+PiAxNjsKLQotCWlmIChzbXBfbnVtX3NpYmxpbmdzID09IDEpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAgIkNQVTogSHlwZXItVGhyZWFkaW5nIGlzIGRpc2FibGVkXG4iKTsKLQl9IGVsc2UgaWYgKHNtcF9udW1fc2libGluZ3MgPiAxKSB7Ci0KLQkJaWYgKHNtcF9udW1fc2libGluZ3MgPiBOUl9DUFVTKSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJDUFU6IFVuc3VwcG9ydGVkIG51bWJlciBvZiAiCi0JCQkgICAgICAgInNpYmxpbmdzICVkIiwgc21wX251bV9zaWJsaW5ncyk7Ci0JCQlzbXBfbnVtX3NpYmxpbmdzID0gMTsKLQkJCXJldHVybjsKLQkJfQotCi0JCWluZGV4X21zYiA9IGdldF9jb3VudF9vcmRlcihzbXBfbnVtX3NpYmxpbmdzKTsKLQkJYy0+cGh5c19wcm9jX2lkID0gcGh5c19wa2dfaWQoaW5kZXhfbXNiKTsKLQotCQlzbXBfbnVtX3NpYmxpbmdzID0gc21wX251bV9zaWJsaW5ncyAvIGMtPng4Nl9tYXhfY29yZXM7Ci0KLQkJaW5kZXhfbXNiID0gZ2V0X2NvdW50X29yZGVyKHNtcF9udW1fc2libGluZ3MpOwotCi0JCWNvcmVfYml0cyA9IGdldF9jb3VudF9vcmRlcihjLT54ODZfbWF4X2NvcmVzKTsKLQotCQljLT5jcHVfY29yZV9pZCA9IHBoeXNfcGtnX2lkKGluZGV4X21zYikgJgotCQkJCQkgICAgICAgKCgxIDw8IGNvcmVfYml0cykgLSAxKTsKLQl9Ci1vdXQ6Ci0JaWYgKChjLT54ODZfbWF4X2NvcmVzICogc21wX251bV9zaWJsaW5ncykgPiAxKSB7Ci0JCXByaW50ayhLRVJOX0lORk8gICJDUFU6IFBoeXNpY2FsIFByb2Nlc3NvciBJRDogJWRcbiIsCi0JCSAgICAgICBjLT5waHlzX3Byb2NfaWQpOwotCQlwcmludGsoS0VSTl9JTkZPICAiQ1BVOiBQcm9jZXNzb3IgQ29yZSBJRDogJWRcbiIsCi0JCSAgICAgICBjLT5jcHVfY29yZV9pZCk7Ci0JfQotCi0jZW5kaWYKLX0KLQotLyoKLSAqIGZpbmQgb3V0IHRoZSBudW1iZXIgb2YgcHJvY2Vzc29yIGNvcmVzIG9uIHRoZSBkaWUKLSAqLwotc3RhdGljIGludCBfX2NwdWluaXQgaW50ZWxfbnVtX2NwdV9jb3JlcyhzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdW5zaWduZWQgaW50IGVheCwgdDsKLQotCWlmIChjLT5jcHVpZF9sZXZlbCA8IDQpCi0JCXJldHVybiAxOwotCi0JY3B1aWRfY291bnQoNCwgMCwgJmVheCwgJnQsICZ0LCAmdCk7Ci0KLQlpZiAoZWF4ICYgMHgxZikKLQkJcmV0dXJuICgoZWF4ID4+IDI2KSArIDEpOwotCWVsc2UKLQkJcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBzcmF0X2RldGVjdF9ub2RlKHZvaWQpCi17Ci0jaWZkZWYgQ09ORklHX05VTUEKLQl1bnNpZ25lZCBub2RlOwotCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7Ci0JaW50IGFwaWNpZCA9IGhhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpOwotCi0JLyogRG9uJ3QgZG8gdGhlIGZ1bmt5IGZhbGxiYWNrIGhldXJpc3RpY3MgdGhlIEFNRCB2ZXJzaW9uIGVtcGxveXMKLQkgICBmb3Igbm93LiAqLwotCW5vZGUgPSBhcGljaWRfdG9fbm9kZVthcGljaWRdOwotCWlmIChub2RlID09IE5VTUFfTk9fTk9ERSB8fCAhbm9kZV9vbmxpbmUobm9kZSkpCi0JCW5vZGUgPSBmaXJzdF9ub2RlKG5vZGVfb25saW5lX21hcCk7Ci0JbnVtYV9zZXRfbm9kZShjcHUsIG5vZGUpOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiQ1BVICVkLyV4IC0+IE5vZGUgJWRcbiIsIGNwdSwgYXBpY2lkLCBub2RlKTsKLSNlbmRpZgotfQotCi1zdGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9pbnRlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JaWYgKChjLT54ODYgPT0gMHhmICYmIGMtPng4Nl9tb2RlbCA+PSAweDAzKSB8fAotCSAgICAoYy0+eDg2ID09IDB4NiAmJiBjLT54ODZfbW9kZWwgPj0gMHgwZSkpCi0JCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBpbml0X2ludGVsKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQkvKiBDYWNoZSBzaXplcyAqLwotCXVuc2lnbmVkIG47Ci0KLQlpbml0X2ludGVsX2NhY2hlaW5mbyhjKTsKLQlpZiAoYy0+Y3B1aWRfbGV2ZWwgPiA5KSB7Ci0JCXVuc2lnbmVkIGVheCA9IGNwdWlkX2VheCgxMCk7Ci0JCS8qIENoZWNrIGZvciB2ZXJzaW9uIGFuZCB0aGUgbnVtYmVyIG9mIGNvdW50ZXJzICovCi0JCWlmICgoZWF4ICYgMHhmZikgJiYgKCgoZWF4Pj44KSAmIDB4ZmYpID4gMSkpCi0JCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9BUkNIX1BFUkZNT04pOwotCX0KLQotCWlmIChjcHVfaGFzX2RzKSB7Ci0JCXVuc2lnbmVkIGludCBsMSwgbDI7Ci0JCXJkbXNyKE1TUl9JQTMyX01JU0NfRU5BQkxFLCBsMSwgbDIpOwotCQlpZiAoIShsMSAmICgxPDwxMSkpKQotCQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQlRTKTsKLQkJaWYgKCEobDEgJiAoMTw8MTIpKSkKLQkJCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX1BFQlMpOwotCX0KLQotCi0JaWYgKGNwdV9oYXNfYnRzKQotCQlkc19pbml0X2ludGVsKGMpOwotCi0JbiA9IGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsOwotCWlmIChuID49IDB4ODAwMDAwMDgpIHsKLQkJdW5zaWduZWQgZWF4ID0gY3B1aWRfZWF4KDB4ODAwMDAwMDgpOwotCQljLT54ODZfdmlydF9iaXRzID0gKGVheCA+PiA4KSAmIDB4ZmY7Ci0JCWMtPng4Nl9waHlzX2JpdHMgPSBlYXggJiAweGZmOwotCQkvKiBDUFVJRCB3b3JrYXJvdW5kIGZvciBJbnRlbCAwRjM0IENQVSAqLwotCQlpZiAoYy0+eDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0lOVEVMICYmCi0JCSAgICBjLT54ODYgPT0gMHhGICYmIGMtPng4Nl9tb2RlbCA9PSAweDMgJiYKLQkJICAgIGMtPng4Nl9tYXNrID09IDB4NCkKLQkJCWMtPng4Nl9waHlzX2JpdHMgPSAzNjsKLQl9Ci0KLQlpZiAoYy0+eDg2ID09IDE1KQotCQljLT54ODZfY2FjaGVfYWxpZ25tZW50ID0gYy0+eDg2X2NsZmx1c2hfc2l6ZSAqIDI7Ci0JaWYgKGMtPng4NiA9PSA2KQotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7Ci0Jc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfTEZFTkNFX1JEVFNDKTsKLQljLT54ODZfbWF4X2NvcmVzID0gaW50ZWxfbnVtX2NwdV9jb3JlcyhjKTsKLQotCXNyYXRfZGV0ZWN0X25vZGUoKTsKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2luaXRfY2VudGF1cihzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JaWYgKGMtPng4NiA9PSAweDYgJiYgYy0+eDg2X21vZGVsID49IDB4ZikKLQkJc2V0X2NwdV9jYXAoYywgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKTsKLX0KLQotc3RhdGljIHZvaWQgX19jcHVpbml0IGluaXRfY2VudGF1cihzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JLyogQ2FjaGUgc2l6ZXMgKi8KLQl1bnNpZ25lZCBuOwotCi0JbiA9IGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsOwotCWlmIChuID49IDB4ODAwMDAwMDgpIHsKLQkJdW5zaWduZWQgZWF4ID0gY3B1aWRfZWF4KDB4ODAwMDAwMDgpOwotCQljLT54ODZfdmlydF9iaXRzID0gKGVheCA+PiA4KSAmIDB4ZmY7Ci0JCWMtPng4Nl9waHlzX2JpdHMgPSBlYXggJiAweGZmOwotCX0KLQotCWlmIChjLT54ODYgPT0gMHg2ICYmIGMtPng4Nl9tb2RlbCA+PSAweGYpIHsKLQkJYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemUgKiAyOwotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpOwotCQlzZXRfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9SRVBfR09PRCk7Ci0JfQotCXNldF9jcHVfY2FwKGMsIFg4Nl9GRUFUVVJFX0xGRU5DRV9SRFRTQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fY3B1aW5pdCBnZXRfY3B1X3ZlbmRvcihzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JY2hhciAqdiA9IGMtPng4Nl92ZW5kb3JfaWQ7Ci0KLQlpZiAoIXN0cmNtcCh2LCAiQXV0aGVudGljQU1EIikpCi0JCWMtPng4Nl92ZW5kb3IgPSBYODZfVkVORE9SX0FNRDsKLQllbHNlIGlmICghc3RyY21wKHYsICJHZW51aW5lSW50ZWwiKSkKLQkJYy0+eDg2X3ZlbmRvciA9IFg4Nl9WRU5ET1JfSU5URUw7Ci0JZWxzZSBpZiAoIXN0cmNtcCh2LCAiQ2VudGF1ckhhdWxzIikpCi0JCWMtPng4Nl92ZW5kb3IgPSBYODZfVkVORE9SX0NFTlRBVVI7Ci0JZWxzZQotCQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOwotfQotCi0vKiBEbyBzb21lIGVhcmx5IGNwdWlkIG9uIHRoZSBib290IENQVSB0byBnZXQgc29tZSBwYXJhbWV0ZXIgdGhhdCBhcmUKLSAgIG5lZWRlZCBiZWZvcmUgY2hlY2tfYnVncy4gRXZlcnl0aGluZyBhZHZhbmNlZCBpcyBpbiBpZGVudGlmeV9jcHUKLSAgIGJlbG93LiAqLwotc3RhdGljIHZvaWQgX19jcHVpbml0IGVhcmx5X2lkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JdTMyIHRmbXMsIHhsdmw7Ci0KLQljLT5sb29wc19wZXJfamlmZnkgPSBsb29wc19wZXJfamlmZnk7Ci0JYy0+eDg2X2NhY2hlX3NpemUgPSAtMTsKLQljLT54ODZfdmVuZG9yID0gWDg2X1ZFTkRPUl9VTktOT1dOOwotCWMtPng4Nl9tb2RlbCA9IGMtPng4Nl9tYXNrID0gMDsJLyogU28gZmFyIHVua25vd24uLi4gKi8KLQljLT54ODZfdmVuZG9yX2lkWzBdID0gJ1wwJzsgLyogVW5zZXQgKi8KLQljLT54ODZfbW9kZWxfaWRbMF0gPSAnXDAnOyAgLyogVW5zZXQgKi8KLQljLT54ODZfY2xmbHVzaF9zaXplID0gNjQ7Ci0JYy0+eDg2X2NhY2hlX2FsaWdubWVudCA9IGMtPng4Nl9jbGZsdXNoX3NpemU7Ci0JYy0+eDg2X21heF9jb3JlcyA9IDE7Ci0JYy0+eDg2X2NvcmVpZF9iaXRzID0gMDsKLQljLT5leHRlbmRlZF9jcHVpZF9sZXZlbCA9IDA7Ci0JbWVtc2V0KCZjLT54ODZfY2FwYWJpbGl0eSwgMCwgc2l6ZW9mIGMtPng4Nl9jYXBhYmlsaXR5KTsKLQotCS8qIEdldCB2ZW5kb3IgbmFtZSAqLwotCWNwdWlkKDB4MDAwMDAwMDAsICh1bnNpZ25lZCBpbnQgKikmYy0+Y3B1aWRfbGV2ZWwsCi0JICAgICAgKHVuc2lnbmVkIGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzBdLAotCSAgICAgICh1bnNpZ25lZCBpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFs4XSwKLQkgICAgICAodW5zaWduZWQgaW50ICopJmMtPng4Nl92ZW5kb3JfaWRbNF0pOwotCi0JZ2V0X2NwdV92ZW5kb3IoYyk7Ci0KLQkvKiBJbml0aWFsaXplIHRoZSBzdGFuZGFyZCBzZXQgb2YgY2FwYWJpbGl0aWVzICovCi0JLyogTm90ZSB0aGF0IHRoZSB2ZW5kb3Itc3BlY2lmaWMgY29kZSBiZWxvdyBtaWdodCBvdmVycmlkZSAqLwotCi0JLyogSW50ZWwtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHgwMDAwMDAwMSAqLwotCWlmIChjLT5jcHVpZF9sZXZlbCA+PSAweDAwMDAwMDAxKSB7Ci0JCV9fdTMyIG1pc2M7Ci0JCWNwdWlkKDB4MDAwMDAwMDEsICZ0Zm1zLCAmbWlzYywgJmMtPng4Nl9jYXBhYmlsaXR5WzRdLAotCQkgICAgICAmYy0+eDg2X2NhcGFiaWxpdHlbMF0pOwotCQljLT54ODYgPSAodGZtcyA+PiA4KSAmIDB4ZjsKLQkJYy0+eDg2X21vZGVsID0gKHRmbXMgPj4gNCkgJiAweGY7Ci0JCWMtPng4Nl9tYXNrID0gdGZtcyAmIDB4ZjsKLQkJaWYgKGMtPng4NiA9PSAweGYpCi0JCQljLT54ODYgKz0gKHRmbXMgPj4gMjApICYgMHhmZjsKLQkJaWYgKGMtPng4NiA+PSAweDYpCi0JCQljLT54ODZfbW9kZWwgKz0gKCh0Zm1zID4+IDE2KSAmIDB4RikgPDwgNDsKLQkJaWYgKHRlc3RfY3B1X2NhcChjLCBYODZfRkVBVFVSRV9DTEZMU0gpKQotCQkJYy0+eDg2X2NsZmx1c2hfc2l6ZSA9ICgobWlzYyA+PiA4KSAmIDB4ZmYpICogODsKLQl9IGVsc2UgewotCQkvKiBIYXZlIENQVUlEIGxldmVsIDAgb25seSAtIHVuaGVhcmQgb2YgKi8KLQkJYy0+eDg2ID0gNDsKLQl9Ci0KLQljLT5pbml0aWFsX2FwaWNpZCA9IChjcHVpZF9lYngoMSkgPj4gMjQpICYgMHhmZjsKLSNpZmRlZiBDT05GSUdfU01QCi0JYy0+cGh5c19wcm9jX2lkID0gYy0+aW5pdGlhbF9hcGljaWQ7Ci0jZW5kaWYKLQkvKiBBTUQtZGVmaW5lZCBmbGFnczogbGV2ZWwgMHg4MDAwMDAwMSAqLwotCXhsdmwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7Ci0JYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSB4bHZsOwotCWlmICgoeGx2bCAmIDB4ZmZmZjAwMDApID09IDB4ODAwMDAwMDApIHsKLQkJaWYgKHhsdmwgPj0gMHg4MDAwMDAwMSkgewotCQkJYy0+eDg2X2NhcGFiaWxpdHlbMV0gPSBjcHVpZF9lZHgoMHg4MDAwMDAwMSk7Ci0JCQljLT54ODZfY2FwYWJpbGl0eVs2XSA9IGNwdWlkX2VjeCgweDgwMDAwMDAxKTsKLQkJfQotCQlpZiAoeGx2bCA+PSAweDgwMDAwMDA0KQotCQkJZ2V0X21vZGVsX25hbWUoYyk7IC8qIERlZmF1bHQgbmFtZSAqLwotCX0KLQotCS8qIFRyYW5zbWV0YS1kZWZpbmVkIGZsYWdzOiBsZXZlbCAweDgwODYwMDAxICovCi0JeGx2bCA9IGNwdWlkX2VheCgweDgwODYwMDAwKTsKLQlpZiAoKHhsdmwgJiAweGZmZmYwMDAwKSA9PSAweDgwODYwMDAwKSB7Ci0JCS8qIERvbid0IHNldCB4ODZfY3B1aWRfbGV2ZWwgaGVyZSBmb3Igbm93IHRvIG5vdCBjb25mdXNlLiAqLwotCQlpZiAoeGx2bCA+PSAweDgwODYwMDAxKQotCQkJYy0+eDg2X2NhcGFiaWxpdHlbMl0gPSBjcHVpZF9lZHgoMHg4MDg2MDAwMSk7Ci0JfQotCi0JYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPSBjcHVpZF9lYXgoMHg4MDAwMDAwMCk7Ci0JaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDcpCi0JCWMtPng4Nl9wb3dlciA9IGNwdWlkX2VkeCgweDgwMDAwMDA3KTsKLQotCXN3aXRjaCAoYy0+eDg2X3ZlbmRvcikgewotCWNhc2UgWDg2X1ZFTkRPUl9BTUQ6Ci0JCWVhcmx5X2luaXRfYW1kKGMpOwotCQlicmVhazsKLQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6Ci0JCWVhcmx5X2luaXRfaW50ZWwoYyk7Ci0JCWJyZWFrOwotCWNhc2UgWDg2X1ZFTkRPUl9DRU5UQVVSOgotCQllYXJseV9pbml0X2NlbnRhdXIoYyk7Ci0JCWJyZWFrOwotCX0KLQotCXZhbGlkYXRlX3BhdF9zdXBwb3J0KGMpOwotfQotCi0vKgotICogVGhpcyBkb2VzIHRoZSBoYXJkIHdvcmsgb2YgYWN0dWFsbHkgcGlja2luZyBhcGFydCB0aGUgQ1BVIHN0dWZmLi4uCi0gKi8KLXZvaWQgX19jcHVpbml0IGlkZW50aWZ5X2NwdShzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCi17Ci0JaW50IGk7Ci0KLQllYXJseV9pZGVudGlmeV9jcHUoYyk7Ci0KLQlpbml0X3NjYXR0ZXJlZF9jcHVpZF9mZWF0dXJlcyhjKTsKLQotCWMtPmFwaWNpZCA9IHBoeXNfcGtnX2lkKDApOwotCi0JLyoKLQkgKiBWZW5kb3Itc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24uICBJbiB0aGlzIHNlY3Rpb24gd2UKLQkgKiBjYW5vbmljYWxpemUgdGhlIGZlYXR1cmUgZmxhZ3MsIG1lYW5pbmcgaWYgdGhlcmUgYXJlCi0JICogZmVhdHVyZXMgYSBjZXJ0YWluIENQVSBzdXBwb3J0cyB3aGljaCBDUFVJRCBkb2Vzbid0Ci0JICogdGVsbCB1cywgQ1BVSUQgY2xhaW1pbmcgaW5jb3JyZWN0IGZsYWdzLCBvciBvdGhlciBidWdzLAotCSAqIHdlIGhhbmRsZSB0aGVtIGhlcmUuCi0JICoKLQkgKiBBdCB0aGUgZW5kIG9mIHRoaXMgc2VjdGlvbiwgYy0+eDg2X2NhcGFiaWxpdHkgYmV0dGVyCi0JICogaW5kaWNhdGUgdGhlIGZlYXR1cmVzIHRoaXMgQ1BVIGdlbnVpbmVseSBzdXBwb3J0cyEKLQkgKi8KLQlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsKLQljYXNlIFg4Nl9WRU5ET1JfQU1EOgotCQlpbml0X2FtZChjKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6Ci0JCWluaXRfaW50ZWwoYyk7Ci0JCWJyZWFrOwotCi0JY2FzZSBYODZfVkVORE9SX0NFTlRBVVI6Ci0JCWluaXRfY2VudGF1cihjKTsKLQkJYnJlYWs7Ci0KLQljYXNlIFg4Nl9WRU5ET1JfVU5LTk9XTjoKLQlkZWZhdWx0OgotCQlkaXNwbGF5X2NhY2hlaW5mbyhjKTsKLQkJYnJlYWs7Ci0JfQotCi0JZGV0ZWN0X2h0KGMpOwotCi0JLyoKLQkgKiBPbiBTTVAsIGJvb3RfY3B1X2RhdGEgaG9sZHMgdGhlIGNvbW1vbiBmZWF0dXJlIHNldCBiZXR3ZWVuCi0JICogYWxsIENQVXM7IHNvIG1ha2Ugc3VyZSB0aGF0IHdlIGluZGljYXRlIHdoaWNoIGZlYXR1cmVzIGFyZQotCSAqIGNvbW1vbiBiZXR3ZWVuIHRoZSBDUFVzLiAgVGhlIGZpcnN0IHRpbWUgdGhpcyByb3V0aW5lIGdldHMKLQkgKiBleGVjdXRlZCwgYyA9PSAmYm9vdF9jcHVfZGF0YS4KLQkgKi8KLQlpZiAoYyAhPSAmYm9vdF9jcHVfZGF0YSkgewotCQkvKiBBTkQgdGhlIGFscmVhZHkgYWNjdW11bGF0ZWQgZmxhZ3Mgd2l0aCB0aGVzZSAqLwotCQlmb3IgKGkgPSAwOyBpIDwgTkNBUElOVFM7IGkrKykKLQkJCWJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHlbaV0gJj0gYy0+eDg2X2NhcGFiaWxpdHlbaV07Ci0JfQotCi0JLyogQ2xlYXIgYWxsIGZsYWdzIG92ZXJyaWRlbiBieSBvcHRpb25zICovCi0JZm9yIChpID0gMDsgaSA8IE5DQVBJTlRTOyBpKyspCi0JCWMtPng4Nl9jYXBhYmlsaXR5W2ldICY9IH5jbGVhcmVkX2NwdV9jYXBzW2ldOwotCi0jaWZkZWYgQ09ORklHX1g4Nl9NQ0UKLQltY2hlY2tfaW5pdChjKTsKLSNlbmRpZgotCXNlbGVjdF9pZGxlX3JvdXRpbmUoYyk7Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCW51bWFfYWRkX2NwdShzbXBfcHJvY2Vzc29yX2lkKCkpOwotI2VuZGlmCi0KLX0KLQotdm9pZCBfX2NwdWluaXQgaWRlbnRpZnlfYm9vdF9jcHUodm9pZCkKLXsKLQlpZGVudGlmeV9jcHUoJmJvb3RfY3B1X2RhdGEpOwotfQotCi12b2lkIF9fY3B1aW5pdCBpZGVudGlmeV9zZWNvbmRhcnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQlCVUdfT04oYyA9PSAmYm9vdF9jcHVfZGF0YSk7Ci0JaWRlbnRpZnlfY3B1KGMpOwotCW10cnJfYXBfaW5pdCgpOwotfQotCi1zdGF0aWMgX19pbml0IGludCBzZXR1cF9ub2NsZmx1c2goY2hhciAqYXJnKQotewotCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfQ0xGTFNIKTsKLQlyZXR1cm4gMTsKLX0KLV9fc2V0dXAoIm5vY2xmbHVzaCIsIHNldHVwX25vY2xmbHVzaCk7Ci0KLXZvaWQgX19jcHVpbml0IHByaW50X2NwdV9pbmZvKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKLXsKLQlpZiAoYy0+eDg2X21vZGVsX2lkWzBdKQotCQlwcmludGsoS0VSTl9DT05UICIlcyIsIGMtPng4Nl9tb2RlbF9pZCk7Ci0KLQlpZiAoYy0+eDg2X21hc2sgfHwgYy0+Y3B1aWRfbGV2ZWwgPj0gMCkKLQkJcHJpbnRrKEtFUk5fQ09OVCAiIHN0ZXBwaW5nICUwMnhcbiIsIGMtPng4Nl9tYXNrKTsKLQllbHNlCi0JCXByaW50ayhLRVJOX0NPTlQgIlxuIik7Ci19Ci0KLXN0YXRpYyBfX2luaXQgaW50IHNldHVwX2Rpc2FibGVjcHVpZChjaGFyICphcmcpCi17Ci0JaW50IGJpdDsKLQlpZiAoZ2V0X29wdGlvbigmYXJnLCAmYml0KSAmJiBiaXQgPCBOQ0FQSU5UUyozMikKLQkJc2V0dXBfY2xlYXJfY3B1X2NhcChiaXQpOwotCWVsc2UKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIDE7Ci19Ci1fX3NldHVwKCJjbGVhcmNwdWlkPSIsIHNldHVwX2Rpc2FibGVjcHVpZCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVyY3B1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FjNjg0MwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF9wZXJjcHUuYwpAQCAtMCwwICsxLDM5OSBAQAorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9jcmFzaF9kdW1wLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KKyNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+CisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgorI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CisjaW5jbHVkZSA8YXNtL2hpZ2htZW0uaD4KKworI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwordW5zaWduZWQgaW50IG51bV9wcm9jZXNzb3JzOwordW5zaWduZWQgZGlzYWJsZWRfY3B1cyBfX2NwdWluaXRkYXRhOworLyogUHJvY2Vzc29yIHRoYXQgaXMgZG9pbmcgdGhlIGJvb3QgdXAgKi8KK3Vuc2lnbmVkIGludCBib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSAtMVU7Cit1bnNpZ25lZCBpbnQgbWF4X3BoeXNpY2FsX2FwaWNpZDsKK0VYUE9SVF9TWU1CT0woYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkKTsKKworLyogQml0bWFzayBvZiBwaHlzaWNhbGx5IGV4aXN0aW5nIENQVXMgKi8KK3BoeXNpZF9tYXNrX3QgcGh5c19jcHVfcHJlc2VudF9tYXA7CisjZW5kaWYKKworLyogbWFwIGNwdSBpbmRleCB0byBwaHlzaWNhbCBBUElDIElEICovCitERUZJTkVfRUFSTFlfUEVSX0NQVSh1MTYsIHg4Nl9jcHVfdG9fYXBpY2lkLCBCQURfQVBJQ0lEKTsKK0RFRklORV9FQVJMWV9QRVJfQ1BVKHUxNiwgeDg2X2Jpb3NfY3B1X2FwaWNpZCwgQkFEX0FQSUNJRCk7CitFWFBPUlRfRUFSTFlfUEVSX0NQVV9TWU1CT0woeDg2X2NwdV90b19hcGljaWQpOworRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKHg4Nl9iaW9zX2NwdV9hcGljaWQpOworCisjaWYgZGVmaW5lZChDT05GSUdfTlVNQSkgJiYgZGVmaW5lZChDT05GSUdfWDg2XzY0KQorI2RlZmluZQlYODZfNjRfTlVNQQkxCisKKy8qIG1hcCBjcHUgaW5kZXggdG8gbm9kZSBpbmRleCAqLworREVGSU5FX0VBUkxZX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwLCBOVU1BX05PX05PREUpOworRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKHg4Nl9jcHVfdG9fbm9kZV9tYXApOworCisvKiB3aGljaCBsb2dpY2FsIENQVXMgYXJlIG9uIHdoaWNoIG5vZGVzICovCitjcHVtYXNrX3QgKm5vZGVfdG9fY3B1bWFza19tYXA7CitFWFBPUlRfU1lNQk9MKG5vZGVfdG9fY3B1bWFza19tYXApOworCisvKiBzZXR1cCBub2RlX3RvX2NwdW1hc2tfbWFwICovCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfbm9kZV90b19jcHVtYXNrX21hcCh2b2lkKTsKKworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9ub2RlX3RvX2NwdW1hc2tfbWFwKHZvaWQpIHsgfQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKENPTkZJR19IQVZFX1NFVFVQX1BFUl9DUFVfQVJFQSkgJiYgZGVmaW5lZChDT05GSUdfWDg2X1NNUCkKKy8qCisgKiBDb3B5IGRhdGEgdXNlZCBpbiBlYXJseSBpbml0IHJvdXRpbmVzIGZyb20gdGhlIGluaXRpYWwgYXJyYXlzIHRvIHRoZQorICogcGVyIGNwdSBkYXRhIGFyZWFzLiAgVGhlc2UgYXJyYXlzIHRoZW4gYmVjb21lIGV4cGVuZGFibGUgYW5kIHRoZQorICogKl9lYXJseV9wdHIncyBhcmUgemVyb2VkIGluZGljYXRpbmcgdGhhdCB0aGUgc3RhdGljIGFycmF5cyBhcmUgZ29uZS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX3Blcl9jcHVfbWFwcyh2b2lkKQoreworCWludCBjcHU7CisKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7CisJCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkgPQorCQkJCWVhcmx5X3Blcl9jcHVfbWFwKHg4Nl9jcHVfdG9fYXBpY2lkLCBjcHUpOworCQlwZXJfY3B1KHg4Nl9iaW9zX2NwdV9hcGljaWQsIGNwdSkgPQorCQkJCWVhcmx5X3Blcl9jcHVfbWFwKHg4Nl9iaW9zX2NwdV9hcGljaWQsIGNwdSk7CisjaWZkZWYgWDg2XzY0X05VTUEKKwkJcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpID0KKwkJCQllYXJseV9wZXJfY3B1X21hcCh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworI2VuZGlmCisJfQorCisJLyogaW5kaWNhdGUgdGhlIGVhcmx5IHN0YXRpYyBhcnJheXMgd2lsbCBzb29uIGJlIGdvbmUgKi8KKwllYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX2FwaWNpZCkgPSBOVUxMOworCWVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9iaW9zX2NwdV9hcGljaWQpID0gTlVMTDsKKyNpZmRlZiBYODZfNjRfTlVNQQorCWVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApID0gTlVMTDsKKyNlbmRpZgorfQorCisjaWZkZWYgQ09ORklHX0hBVkVfQ1BVTUFTS19PRl9DUFVfTUFQCitjcHVtYXNrX3QgKmNwdW1hc2tfb2ZfY3B1X21hcCBfX3JlYWRfbW9zdGx5OworRVhQT1JUX1NZTUJPTChjcHVtYXNrX29mX2NwdV9tYXApOworCisvKiByZXF1aXJlcyBucl9jcHVfaWRzIHRvIGJlIGluaXRpYWxpemVkICovCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1bWFza19vZl9jcHUodm9pZCkKK3sKKwlpbnQgaTsKKworCS8qIGFsbG9jX2Jvb3RtZW0gemVyb2VzIG1lbW9yeSAqLworCWNwdW1hc2tfb2ZfY3B1X21hcCA9IGFsbG9jX2Jvb3RtZW1fbG93KHNpemVvZihjcHVtYXNrX3QpICogbnJfY3B1X2lkcyk7CisJZm9yIChpID0gMDsgaSA8IG5yX2NwdV9pZHM7IGkrKykKKwkJY3B1X3NldChpLCBjcHVtYXNrX29mX2NwdV9tYXBbaV0pOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9jcHVtYXNrX29mX2NwdSh2b2lkKSB7IH0KKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorLyoKKyAqIEdyZWF0IGZ1dHVyZSBub3Qtc28tZnV0dXJpc3RpYyBwbGFuOiBtYWtlIGkzODYgYW5kIHg4Nl82NCBkbyBpdAorICogdGhlIHNhbWUgd2F5CisgKi8KK3Vuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29mZnNldFtOUl9DUFVTXSBfX3JlYWRfbW9zdGx5OworRVhQT1JUX1NZTUJPTChfX3Blcl9jcHVfb2Zmc2V0KTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9jcHVfcGRhX21hcCh2b2lkKSB7IH0KKworI2VsaWYgIWRlZmluZWQoQ09ORklHX1NNUCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9jcHVfcGRhX21hcCh2b2lkKSB7IH0KKworI2Vsc2UgLyogQ09ORklHX1NNUCAmJiBDT05GSUdfWDg2XzY0ICovCisKKy8qCisgKiBBbGxvY2F0ZSBjcHVfcGRhIHBvaW50ZXIgdGFibGUgYW5kIGFycmF5IHZpYSBhbGxvY19ib290bWVtLgorICovCitzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfY3B1X3BkYV9tYXAodm9pZCkKK3sKKwljaGFyICpwZGE7CisJc3RydWN0IHg4NjY0X3BkYSAqKm5ld19jcHVfcGRhOworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwlpbnQgY3B1OworCisJc2l6ZSA9IHJvdW5kdXAoc2l6ZW9mKHN0cnVjdCB4ODY2NF9wZGEpLCBjYWNoZV9saW5lX3NpemUoKSk7CisKKwkvKiBhbGxvY2F0ZSBjcHVfcGRhIGFycmF5IGFuZCBwb2ludGVyIHRhYmxlICovCisJeworCQl1bnNpZ25lZCBsb25nIHRzaXplID0gbnJfY3B1X2lkcyAqIHNpemVvZih2b2lkICopOworCQl1bnNpZ25lZCBsb25nIGFzaXplID0gc2l6ZSAqIChucl9jcHVfaWRzIC0gMSk7CisKKwkJdHNpemUgPSByb3VuZHVwKHRzaXplLCBjYWNoZV9saW5lX3NpemUoKSk7CisJCW5ld19jcHVfcGRhID0gYWxsb2NfYm9vdG1lbSh0c2l6ZSArIGFzaXplKTsKKwkJcGRhID0gKGNoYXIgKiluZXdfY3B1X3BkYSArIHRzaXplOworCX0KKworCS8qIGluaXRpYWxpemUgcG9pbnRlciB0YWJsZSB0byBzdGF0aWMgcGRhJ3MgKi8KKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7CisJCWlmIChjcHUgPT0gMCkgeworCQkJLyogbGVhdmUgYm9vdCBjcHUgcGRhIGluIHBsYWNlICovCisJCQluZXdfY3B1X3BkYVswXSA9IGNwdV9wZGEoMCk7CisJCQljb250aW51ZTsKKwkJfQorCQluZXdfY3B1X3BkYVtjcHVdID0gKHN0cnVjdCB4ODY2NF9wZGEgKilwZGE7CisJCW5ld19jcHVfcGRhW2NwdV0tPmluX2Jvb3RtZW0gPSAxOworCQlwZGEgKz0gc2l6ZTsKKwl9CisKKwkvKiBwb2ludCB0byBuZXcgcG9pbnRlciB0YWJsZSAqLworCV9jcHVfcGRhID0gbmV3X2NwdV9wZGE7Cit9CisjZW5kaWYKKworLyoKKyAqIEdyZWF0IGZ1dHVyZSBwbGFuOgorICogRGVjbGFyZSBQREEgaXRzZWxmIGFuZCBzdXBwb3J0IChpcnFzdGFjayx0c3MscGdkKSBhcyBwZXIgY3B1IGRhdGEuCisgKiBBbHdheXMgcG9pbnQgJWdzIHRvIGl0cyBiZWdpbm5pbmcKKyAqLwordm9pZCBfX2luaXQgc2V0dXBfcGVyX2NwdV9hcmVhcyh2b2lkKQoreworCXNzaXplX3Qgc2l6ZSA9IFBFUkNQVV9FTk9VR0hfUk9PTTsKKwljaGFyICpwdHI7CisJaW50IGNwdTsKKworCS8qIFNldHVwIGNwdV9wZGEgbWFwICovCisJc2V0dXBfY3B1X3BkYV9tYXAoKTsKKworCS8qIENvcHkgc2VjdGlvbiBmb3IgZWFjaCBDUFUgKHdlIGRpc2NhcmQgdGhlIG9yaWdpbmFsKSAqLworCXNpemUgPSBQRVJDUFVfRU5PVUdIX1JPT007CisJcHJpbnRrKEtFUk5fSU5GTyAiUEVSQ1BVOiBBbGxvY2F0aW5nICV6ZCBieXRlcyBvZiBwZXIgY3B1IGRhdGFcbiIsCisJCQkgIHNpemUpOworCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworI2lmbmRlZiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUworCQlwdHIgPSBhbGxvY19ib290bWVtX3BhZ2VzKHNpemUpOworI2Vsc2UKKwkJaW50IG5vZGUgPSBlYXJseV9jcHVfdG9fbm9kZShjcHUpOworCQlpZiAoIW5vZGVfb25saW5lKG5vZGUpIHx8ICFOT0RFX0RBVEEobm9kZSkpIHsKKwkJCXB0ciA9IGFsbG9jX2Jvb3RtZW1fcGFnZXMoc2l6ZSk7CisJCQlwcmludGsoS0VSTl9JTkZPCisJCQkgICAgICAgImNwdSAlZCBoYXMgbm8gbm9kZSAlZCBvciBub2RlLWxvY2FsIG1lbW9yeVxuIiwKKwkJCQljcHUsIG5vZGUpOworCQl9CisJCWVsc2UKKwkJCXB0ciA9IGFsbG9jX2Jvb3RtZW1fcGFnZXNfbm9kZShOT0RFX0RBVEEobm9kZSksIHNpemUpOworI2VuZGlmCisJCXBlcl9jcHVfb2Zmc2V0KGNwdSkgPSBwdHIgLSBfX3Blcl9jcHVfc3RhcnQ7CisJCW1lbWNweShwdHIsIF9fcGVyX2NwdV9zdGFydCwgX19wZXJfY3B1X2VuZCAtIF9fcGVyX2NwdV9zdGFydCk7CisKKwl9CisKKwlwcmludGsoS0VSTl9ERUJVRyAiTlJfQ1BVUzogJWQsIG5yX2NwdV9pZHM6ICVkLCBucl9ub2RlX2lkcyAlZFxuIiwKKwkJTlJfQ1BVUywgbnJfY3B1X2lkcywgbnJfbm9kZV9pZHMpOworCisJLyogU2V0dXAgcGVyY3B1IGRhdGEgbWFwcyAqLworCXNldHVwX3Blcl9jcHVfbWFwcygpOworCisJLyogU2V0dXAgbm9kZSB0byBjcHVtYXNrIG1hcCAqLworCXNldHVwX25vZGVfdG9fY3B1bWFza19tYXAoKTsKKworCS8qIFNldHVwIGNwdW1hc2tfb2ZfY3B1IG1hcCAqLworCXNldHVwX2NwdW1hc2tfb2ZfY3B1KCk7Cit9CisKKyNlbmRpZgorCisjaWZkZWYgWDg2XzY0X05VTUEKKworLyoKKyAqIEFsbG9jYXRlIG5vZGVfdG9fY3B1bWFza19tYXAgYmFzZWQgb24gbnVtYmVyIG9mIGF2YWlsYWJsZSBub2RlcworICogUmVxdWlyZXMgbm9kZV9wb3NzaWJsZV9tYXAgdG8gYmUgdmFsaWQuCisgKgorICogTm90ZTogbm9kZV90b19jcHVtYXNrKCkgaXMgbm90IHZhbGlkIHVudGlsIGFmdGVyIHRoaXMgaXMgZG9uZS4KKyAqLworc3RhdGljIHZvaWQgX19pbml0IHNldHVwX25vZGVfdG9fY3B1bWFza19tYXAodm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgbm9kZSwgbnVtID0gMDsKKwljcHVtYXNrX3QgKm1hcDsKKworCS8qIHNldHVwIG5yX25vZGVfaWRzIGlmIG5vdCBkb25lIHlldCAqLworCWlmIChucl9ub2RlX2lkcyA9PSBNQVhfTlVNTk9ERVMpIHsKKwkJZm9yX2VhY2hfbm9kZV9tYXNrKG5vZGUsIG5vZGVfcG9zc2libGVfbWFwKQorCQkJbnVtID0gbm9kZTsKKwkJbnJfbm9kZV9pZHMgPSBudW0gKyAxOworCX0KKworCS8qIGFsbG9jYXRlIHRoZSBtYXAgKi8KKwltYXAgPSBhbGxvY19ib290bWVtX2xvdyhucl9ub2RlX2lkcyAqIHNpemVvZihjcHVtYXNrX3QpKTsKKworCURwcmludGsoS0VSTl9ERUJVRyAiTm9kZSB0byBjcHVtYXNrIG1hcCBhdCAlcCBmb3IgJWQgbm9kZXNcbiIsCisJCW1hcCwgbnJfbm9kZV9pZHMpOworCisJLyogbm9kZV90b19jcHVtYXNrKCkgd2lsbCBub3cgd29yayAqLworCW5vZGVfdG9fY3B1bWFza19tYXAgPSBtYXA7Cit9CisKK3ZvaWQgX19jcHVpbml0IG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpCit7CisJaW50ICpjcHVfdG9fbm9kZV9tYXAgPSBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKTsKKworCWlmIChjcHVfcGRhKGNwdSkgJiYgbm9kZSAhPSBOVU1BX05PX05PREUpCisJCWNwdV9wZGEoY3B1KS0+bm9kZW51bWJlciA9IG5vZGU7CisKKwlpZiAoY3B1X3RvX25vZGVfbWFwKQorCQljcHVfdG9fbm9kZV9tYXBbY3B1XSA9IG5vZGU7CisKKwllbHNlIGlmIChwZXJfY3B1X29mZnNldChjcHUpKQorCQlwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSkgPSBub2RlOworCisJZWxzZQorCQlEcHJpbnRrKEtFUk5fSU5GTyAiU2V0dGluZyBub2RlIGZvciBub24tcHJlc2VudCBjcHUgJWRcbiIsIGNwdSk7Cit9CisKK3ZvaWQgX19jcHVpbml0IG51bWFfY2xlYXJfbm9kZShpbnQgY3B1KQoreworCW51bWFfc2V0X25vZGUoY3B1LCBOVU1BX05PX05PREUpOworfQorCisjaWZuZGVmIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMKKwordm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpCit7CisJY3B1X3NldChjcHUsIG5vZGVfdG9fY3B1bWFza19tYXBbZWFybHlfY3B1X3RvX25vZGUoY3B1KV0pOworfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX3JlbW92ZV9jcHUoaW50IGNwdSkKK3sKKwljcHVfY2xlYXIoY3B1LCBub2RlX3RvX2NwdW1hc2tfbWFwW2NwdV90b19ub2RlKGNwdSldKTsKK30KKworI2Vsc2UgLyogQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUyAqLworCisvKgorICogLS0tLS0tLS0tIGRlYnVnIHZlcnNpb25zIG9mIHRoZSBudW1hIGZ1bmN0aW9ucyAtLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQgX19jcHVpbml0IG51bWFfc2V0X2NwdW1hc2soaW50IGNwdSwgaW50IGVuYWJsZSkKK3sKKwlpbnQgbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7CisJY3B1bWFza190ICptYXNrOworCWNoYXIgYnVmWzY0XTsKKworCWlmIChub2RlX3RvX2NwdW1hc2tfbWFwID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJub2RlX3RvX2NwdW1hc2tfbWFwIE5VTExcbiIpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybjsKKwl9CisKKwltYXNrID0gJm5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV07CisJaWYgKGVuYWJsZSkKKwkJY3B1X3NldChjcHUsICptYXNrKTsKKwllbHNlCisJCWNwdV9jbGVhcihjcHUsICptYXNrKTsKKworCWNwdWxpc3Rfc2NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICptYXNrKTsKKwlwcmludGsoS0VSTl9ERUJVRyAiJXMgY3B1ICVkIG5vZGUgJWQ6IG1hc2sgbm93ICVzXG4iLAorCQllbmFibGU/ICJudW1hX2FkZF9jcHUiOiJudW1hX3JlbW92ZV9jcHUiLCBjcHUsIG5vZGUsIGJ1Zik7CisgfQorCit2b2lkIF9fY3B1aW5pdCBudW1hX2FkZF9jcHUoaW50IGNwdSkKK3sKKwludW1hX3NldF9jcHVtYXNrKGNwdSwgMSk7Cit9CisKK3ZvaWQgX19jcHVpbml0IG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KQoreworCW51bWFfc2V0X2NwdW1hc2soY3B1LCAwKTsKK30KKworaW50IGNwdV90b19ub2RlKGludCBjcHUpCit7CisJaWYgKGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJjcHVfdG9fbm9kZSglZCk6IHVzYWdlIHRvbyBlYXJseSFcbiIsIGNwdSk7CisJCWR1bXBfc3RhY2soKTsKKwkJcmV0dXJuIGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApW2NwdV07CisJfQorCXJldHVybiBwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSk7Cit9CitFWFBPUlRfU1lNQk9MKGNwdV90b19ub2RlKTsKKworLyoKKyAqIFNhbWUgZnVuY3Rpb24gYXMgY3B1X3RvX25vZGUoKSBidXQgdXNlZCBpZiBjYWxsZWQgYmVmb3JlIHRoZQorICogcGVyX2NwdSBhcmVhcyBhcmUgc2V0dXAuCisgKi8KK2ludCBlYXJseV9jcHVfdG9fbm9kZShpbnQgY3B1KQoreworCWlmIChlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKSkKKwkJcmV0dXJuIGVhcmx5X3Blcl9jcHVfcHRyKHg4Nl9jcHVfdG9fbm9kZV9tYXApW2NwdV07CisKKwlpZiAoIXBlcl9jcHVfb2Zmc2V0KGNwdSkpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJImVhcmx5X2NwdV90b19ub2RlKCVkKTogbm8gcGVyX2NwdSBhcmVhIVxuIiwgY3B1KTsKKwkJZHVtcF9zdGFjaygpOworCQlyZXR1cm4gTlVNQV9OT19OT0RFOworCX0KKwlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOworfQorCisKKy8qIGVtcHR5IGNwdW1hc2sgKi8KK3N0YXRpYyBjb25zdCBjcHVtYXNrX3QgY3B1X21hc2tfbm9uZTsKKworLyoKKyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuCisgKi8KK2NvbnN0IGNwdW1hc2tfdCAqX25vZGVfdG9fY3B1bWFza19wdHIoaW50IG5vZGUpCit7CisJaWYgKG5vZGVfdG9fY3B1bWFza19tYXAgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiX25vZGVfdG9fY3B1bWFza19wdHIoJWQpOiBubyBub2RlX3RvX2NwdW1hc2tfbWFwIVxuIiwKKwkJCW5vZGUpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiAoY29uc3QgY3B1bWFza190ICopJmNwdV9vbmxpbmVfbWFwOworCX0KKwlpZiAobm9kZSA+PSBucl9ub2RlX2lkcykgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiX25vZGVfdG9fY3B1bWFza19wdHIoJWQpOiBub2RlID4gbnJfbm9kZV9pZHMoJWQpXG4iLAorCQkJbm9kZSwgbnJfbm9kZV9pZHMpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiAmY3B1X21hc2tfbm9uZTsKKwl9CisJcmV0dXJuICZub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworfQorRVhQT1JUX1NZTUJPTChfbm9kZV90b19jcHVtYXNrX3B0cik7CisKKy8qCisgKiBSZXR1cm5zIGEgYml0bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLgorICoKKyAqIFNpZGUgbm90ZTogdGhpcyBmdW5jdGlvbiBjcmVhdGVzIHRoZSByZXR1cm5lZCBjcHVtYXNrIG9uIHRoZSBzdGFjaworICogc28gd2l0aCBhIGhpZ2ggTlJfQ1BVUyBjb3VudCwgZXhjZXNzaXZlIHN0YWNrIHNwYWNlIGlzIHVzZWQuICBUaGUKKyAqIG5vZGVfdG9fY3B1bWFza19wdHIgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUuCisgKi8KK2NwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCit7CisJaWYgKG5vZGVfdG9fY3B1bWFza19tYXAgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkibm9kZV90b19jcHVtYXNrKCVkKTogbm8gbm9kZV90b19jcHVtYXNrX21hcCFcbiIsIG5vZGUpOworCQlkdW1wX3N0YWNrKCk7CisJCXJldHVybiBjcHVfb25saW5lX21hcDsKKwl9CisJaWYgKG5vZGUgPj0gbnJfbm9kZV9pZHMpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIm5vZGVfdG9fY3B1bWFzayglZCk6IG5vZGUgPiBucl9ub2RlX2lkcyglZClcbiIsCisJCQlub2RlLCBucl9ub2RlX2lkcyk7CisJCWR1bXBfc3RhY2soKTsKKwkJcmV0dXJuIGNwdV9tYXNrX25vbmU7CisJfQorCXJldHVybiBub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOworfQorRVhQT1JUX1NZTUJPTChub2RlX3RvX2NwdW1hc2spOworCisvKgorICogLS0tLS0tLS0tIGVuZCBvZiBkZWJ1ZyB2ZXJzaW9ucyBvZiB0aGUgbnVtYSBmdW5jdGlvbnMgLS0tLS0tLS0tCisgKi8KKworI2VuZGlmIC8qIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMgKi8KKworI2VuZGlmIC8qIFg4Nl82NF9OVU1BICovCisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMgYi9hcmNoL3g4Ni9rZXJuZWwvc21wYm9vdC5jCmluZGV4IDM4OTg4NDkuLmYzNWMyZDggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NtcGJvb3QuYwpAQCAtNTksNyArNTksNiBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL210cnIuaD4KLSNpbmNsdWRlIDxhc20vbm1pLmg+CiAjaW5jbHVkZSA8YXNtL3ZtaS5oPgogI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CiAjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KQEAgLTY4LDIyICs2Nyw2IEBACiAjaW5jbHVkZSA8bWFjaF93YWtlY3B1Lmg+CiAjaW5jbHVkZSA8c21wYm9vdF9ob29rcy5oPgogCi0vKgotICogRklYTUU6IEZvciB4ODZfNjQsIHRob3NlIGFyZSBkZWZpbmVkIGluIG90aGVyIGZpbGVzLiBCdXQgbW92aW5nIHRoZW0gaGVyZSwKLSAqIHdvdWxkIG1ha2UgdGhlIHNldHVwIGFyZWFzIGRlcGVuZGVudCBvbiBzbXAsIHdoaWNoIGlzIGEgbG9zcy4gV2hlbiB3ZQotICogaW50ZWdyYXRlIGFwaWMgYmV0d2VlbiBhcmNoZXMsIHdlIGNhbiBwcm9iYWJseSBkbyBhIGJldHRlciBqb2IsIGJ1dAotICogcmlnaHQgbm93LCB0aGV5J2xsIHN0YXkgaGVyZSAtLSBnbG9tbWVyCi0gKi8KLQotLyogd2hpY2ggbG9naWNhbCBDUFUgbnVtYmVyIG1hcHMgdG8gd2hpY2ggQ1BVIChwaHlzaWNhbCBBUElDIElEKSAqLwotdTE2IHg4Nl9jcHVfdG9fYXBpY2lkX2luaXRbTlJfQ1BVU10gX19pbml0ZGF0YSA9Ci0JCQl7IFswIC4uLiBOUl9DUFVTLTFdID0gQkFEX0FQSUNJRCB9Owotdm9pZCAqeDg2X2NwdV90b19hcGljaWRfZWFybHlfcHRyOwotCi11MTYgeDg2X2Jpb3NfY3B1X2FwaWNpZF9pbml0W05SX0NQVVNdIF9faW5pdGRhdGEKLQkJCQk9IHsgWzAgLi4uIE5SX0NQVVMtMV0gPSBCQURfQVBJQ0lEIH07Ci12b2lkICp4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0cjsKLQogI2lmZGVmIENPTkZJR19YODZfMzIKIHU4IGFwaWNpZF8yX25vZGVbTUFYX0FQSUNJRF07CiBzdGF0aWMgaW50IGxvd19tYXBwaW5nczsKQEAgLTE5OCwxMyArMTgxLDEyIEBACiAJbWFwX2NwdV90b19ub2RlKGNwdSwgbm9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHVubWFwX2NwdV90b19sb2dpY2FsX2FwaWNpZChpbnQgY3B1KQordm9pZCBudW1hX3JlbW92ZV9jcHUoaW50IGNwdSkKIHsKIAljcHVfMl9sb2dpY2FsX2FwaWNpZFtjcHVdID0gQkFEX0FQSUNJRDsKIAl1bm1hcF9jcHVfdG9fbm9kZShjcHUpOwogfQogI2Vsc2UKLSNkZWZpbmUgdW5tYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKGNwdSkgZG8ge30gd2hpbGUgKDApCiAjZGVmaW5lIG1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoKSAgZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKIApAQCAtMzQ2LDE1ICszMjgsOCBAQAogCSAqIHNtcF9jYWxsX2Z1bmN0aW9uKCkuCiAJICovCiAJbG9ja19pcGlfY2FsbF9sb2NrKCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl82NAotCXNwaW5fbG9jaygmdmVjdG9yX2xvY2spOwotCi0JLyogU2V0dXAgdGhlIHBlciBjcHUgaXJxIGhhbmRsaW5nIGRhdGEgc3RydWN0dXJlcyAqLwotCV9fc2V0dXBfdmVjdG9yX2lycShzbXBfcHJvY2Vzc29yX2lkKCkpOwotCS8qCi0JICogQWxsb3cgdGhlIG1hc3RlciB0byBjb250aW51ZS4KLQkgKi8KLQlzcGluX3VubG9jaygmdmVjdG9yX2xvY2spOworI2lmZGVmIENPTkZJR19YODZfSU9fQVBJQworCXNldHVwX3ZlY3Rvcl9pcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKICNlbmRpZgogCWNwdV9zZXQoc21wX3Byb2Nlc3Nvcl9pZCgpLCBjcHVfb25saW5lX21hcCk7CiAJdW5sb2NrX2lwaV9jYWxsX2xvY2soKTsKQEAgLTM2NiwzMSArMzQxLDggQEAKIAljcHVfaWRsZSgpOwogfQogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotLyoKLSAqIEV2ZXJ5dGhpbmcgaGFzIGJlZW4gc2V0IHVwIGZvciB0aGUgc2Vjb25kYXJ5Ci0gKiBDUFVzIC0gdGhleSBqdXN0IG5lZWQgdG8gcmVsb2FkIGV2ZXJ5dGhpbmcKLSAqIGZyb20gdGhlIHRhc2sgc3RydWN0dXJlCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IHJldHVybi4KLSAqLwotdm9pZCBfX2RldmluaXQgaW5pdGlhbGl6ZV9zZWNvbmRhcnkodm9pZCkKLXsKLQkvKgotCSAqIFdlIGRvbid0IGFjdHVhbGx5IG5lZWQgdG8gbG9hZCB0aGUgZnVsbCBUU1MsCi0JICogYmFzaWNhbGx5IGp1c3QgdGhlIHN0YWNrIHBvaW50ZXIgYW5kIHRoZSBpcC4KLQkgKi8KLQotCWFzbSB2b2xhdGlsZSgKLQkJIm1vdmwgJTAsJSVlc3Bcblx0IgotCQkiam1wIColMSIKLQkJOgotCQk6Im0iIChjdXJyZW50LT50aHJlYWQuc3ApLCAibSIgKGN1cnJlbnQtPnRocmVhZC5pcCkpOwotfQotI2VuZGlmCi0KIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBzbXBfYXBwbHlfcXVpcmtzKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIHsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCiAJLyoKIAkgKiBNYXNrIEIsIFBlbnRpdW0sIGJ1dCBub3QgUGVudGl1bSBNTVgKIAkgKi8KQEAgLTQ0MCw3ICszOTIsNiBAQAogCiB2YWxpZF9rNzoKIAk7Ci0jZW5kaWYKIH0KIAogc3RhdGljIHZvaWQgX19jcHVpbml0IHNtcF9jaGVja3Modm9pZCkKQEAgLTU1NSwyMyArNTA2LDYgQEAKIAkJcmV0dXJuIGMtPmxsY19zaGFyZWRfbWFwOwogfQogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotLyoKLSAqIFdlIGFyZSBjYWxsZWQgdmVyeSBlYXJseSB0byBnZXQgdGhlIGxvdyBtZW1vcnkgZm9yIHRoZQotICogU01QIGJvb3R1cCB0cmFtcG9saW5lIHBhZ2UuCi0gKi8KLXZvaWQgX19pbml0IHNtcF9hbGxvY19tZW1vcnkodm9pZCkKLXsKLQl0cmFtcG9saW5lX2Jhc2UgPSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCS8qCi0JICogSGFzIHRvIGJlIGluIHZlcnkgbG93IG1lbW9yeSBzbyB3ZSBjYW4gZXhlY3V0ZQotCSAqIHJlYWwtbW9kZSBBUCBjb2RlLgotCSAqLwotCWlmIChfX3BhKHRyYW1wb2xpbmVfYmFzZSkgPj0gMHg5RjAwMCkKLQkJQlVHKCk7Ci19Ci0jZW5kaWYKLQogc3RhdGljIHZvaWQgaW1wcmVzc19mcmllbmRzKHZvaWQpCiB7CiAJaW50IGNwdTsKQEAgLTc0OCwxMSArNjgyLDcgQEAKIAkgKiB0YXJnZXQgcHJvY2Vzc29yIHN0YXRlLgogCSAqLwogCXN0YXJ0dXBfaXBpX2hvb2socGh5c19hcGljaWQsICh1bnNpZ25lZCBsb25nKSBzdGFydF9zZWNvbmRhcnksCi0jaWZkZWYgQ09ORklHX1g4Nl82NAotCQkJICh1bnNpZ25lZCBsb25nKWluaXRfcnNwKTsKLSNlbHNlCiAJCQkgKHVuc2lnbmVkIGxvbmcpc3RhY2tfc3RhcnQuc3ApOwotI2VuZGlmCiAKIAkvKgogCSAqIFJ1biBTVEFSVFVQIElQSSBsb29wLgpAQCAtODMyLDYgKzc2Miw0NSBAQAogCWNvbXBsZXRlKCZjX2lkbGUtPmRvbmUpOwogfQogCisjaWZkZWYgQ09ORklHX1g4Nl82NAorLyoKKyAqIEFsbG9jYXRlIG5vZGUgbG9jYWwgbWVtb3J5IGZvciB0aGUgQVAgcGRhLgorICoKKyAqIE11c3QgYmUgY2FsbGVkIGFmdGVyIHRoZSBfY3B1X3BkYSBwb2ludGVyIHRhYmxlIGlzIGluaXRpYWxpemVkLgorICovCitzdGF0aWMgaW50IF9fY3B1aW5pdCBnZXRfbG9jYWxfcGRhKGludCBjcHUpCit7CisJc3RydWN0IHg4NjY0X3BkYSAqb2xkcGRhLCAqbmV3cGRhOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IHNpemVvZihzdHJ1Y3QgeDg2NjRfcGRhKTsKKwlpbnQgbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7CisKKwlpZiAoY3B1X3BkYShjcHUpICYmICFjcHVfcGRhKGNwdSktPmluX2Jvb3RtZW0pCisJCXJldHVybiAwOworCisJb2xkcGRhID0gY3B1X3BkYShjcHUpOworCW5ld3BkYSA9IGttYWxsb2Nfbm9kZShzaXplLCBHRlBfQVRPTUlDLCBub2RlKTsKKwlpZiAoIW5ld3BkYSkgeworCQlwcmludGsoS0VSTl9FUlIgIkNvdWxkIG5vdCBhbGxvY2F0ZSBub2RlIGxvY2FsIFBEQSAiCisJCQkiZm9yIENQVSAlZCBvbiBub2RlICVkXG4iLCBjcHUsIG5vZGUpOworCisJCWlmIChvbGRwZGEpCisJCQlyZXR1cm4gMDsJLyogaGF2ZSBhIHVzYWJsZSBwZGEgKi8KKwkJZWxzZQorCQkJcmV0dXJuIC0xOworCX0KKworCWlmIChvbGRwZGEpIHsKKwkJbWVtY3B5KG5ld3BkYSwgb2xkcGRhLCBzaXplKTsKKwkJaWYgKCFhZnRlcl9ib290bWVtKQorCQkJZnJlZV9ib290bWVtKCh1bnNpZ25lZCBsb25nKW9sZHBkYSwgc2l6ZSk7CisJfQorCisJbmV3cGRhLT5pbl9ib290bWVtID0gMDsKKwljcHVfcGRhKGNwdSkgPSBuZXdwZGE7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogQ09ORklHX1g4Nl82NCAqLworCiBzdGF0aWMgaW50IF9fY3B1aW5pdCBkb19ib290X2NwdShpbnQgYXBpY2lkLCBpbnQgY3B1KQogLyoKICAqIE5PVEUgLSBvbiBtb3N0IHN5c3RlbXMgdGhpcyBpcyBhIFBIWVNJQ0FMIGFwaWMgSUQsIGJ1dCBvbiBtdWx0aXF1YWQKQEAgLTg0OCwyOCArODE3LDE0IEBACiAJCS5kb25lID0gQ09NUExFVElPTl9JTklUSUFMSVpFUl9PTlNUQUNLKGNfaWRsZS5kb25lKSwKIAl9OwogCUlOSVRfV09SSygmY19pZGxlLndvcmssIGRvX2ZvcmtfaWRsZSk7Ci0jaWZkZWYgQ09ORklHX1g4Nl82NAotCS8qIGFsbG9jYXRlIG1lbW9yeSBmb3IgZ2R0cyBvZiBzZWNvbmRhcnkgY3B1cy4gSG90cGx1ZyBpcyBjb25zaWRlcmVkICovCi0JaWYgKCFjcHVfZ2R0X2Rlc2NyW2NwdV0uYWRkcmVzcyAmJgotCQkhKGNwdV9nZHRfZGVzY3JbY3B1XS5hZGRyZXNzID0gZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBhbGxvY2F0ZSBHRFQgZm9yIENQVSAlZFxuIiwgY3B1KTsKLQkJcmV0dXJuIC0xOwotCX0KIAorI2lmZGVmIENPTkZJR19YODZfNjQKIAkvKiBBbGxvY2F0ZSBub2RlIGxvY2FsIG1lbW9yeSBmb3IgQVAgcGRhcyAqLwotCWlmIChjcHVfcGRhKGNwdSkgPT0gJmJvb3RfY3B1X3BkYVtjcHVdKSB7Ci0JCXN0cnVjdCB4ODY2NF9wZGEgKm5ld3BkYSwgKnBkYTsKLQkJaW50IG5vZGUgPSBjcHVfdG9fbm9kZShjcHUpOwotCQlwZGEgPSBjcHVfcGRhKGNwdSk7Ci0JCW5ld3BkYSA9IGttYWxsb2Nfbm9kZShzaXplb2Yoc3RydWN0IHg4NjY0X3BkYSksIEdGUF9BVE9NSUMsCi0JCQkJICAgICAgbm9kZSk7Ci0JCWlmIChuZXdwZGEpIHsKLQkJCW1lbWNweShuZXdwZGEsIHBkYSwgc2l6ZW9mKHN0cnVjdCB4ODY2NF9wZGEpKTsKLQkJCWNwdV9wZGEoY3B1KSA9IG5ld3BkYTsKLQkJfSBlbHNlCi0JCQlwcmludGsoS0VSTl9FUlIKLQkJIkNvdWxkIG5vdCBhbGxvY2F0ZSBub2RlIGxvY2FsIFBEQSBmb3IgQ1BVICVkIG9uIG5vZGUgJWRcbiIsCi0JCQkJY3B1LCBub2RlKTsKKwlpZiAoY3B1ID4gMCkgeworCQlib290X2Vycm9yID0gZ2V0X2xvY2FsX3BkYShjcHUpOworCQlpZiAoYm9vdF9lcnJvcikKKwkJCWdvdG8gcmVzdG9yZV9zdGF0ZTsKKwkJCS8qIGlmIGNhbid0IGdldCBwZGEgbWVtb3J5LCBjYW4ndCBzdGFydCBjcHUgKi8KIAl9CiAjZW5kaWYKIApAQCAtOTA1LDE4ICs4NjAsMTUgQEAKICNpZmRlZiBDT05GSUdfWDg2XzMyCiAJcGVyX2NwdShjdXJyZW50X3Rhc2ssIGNwdSkgPSBjX2lkbGUuaWRsZTsKIAlpbml0X2dkdChjcHUpOwotCWVhcmx5X2dkdF9kZXNjci5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfdGFibGUoY3B1KTsKLQljX2lkbGUuaWRsZS0+dGhyZWFkLmlwID0gKHVuc2lnbmVkIGxvbmcpIHN0YXJ0X3NlY29uZGFyeTsKIAkvKiBTdGFjayBmb3Igc3RhcnR1cF8zMiBjYW4gYmUganVzdCBhcyBmb3Igc3RhcnRfc2Vjb25kYXJ5IG9ud2FyZHMgKi8KLQlzdGFja19zdGFydC5zcCA9ICh2b2lkICopIGNfaWRsZS5pZGxlLT50aHJlYWQuc3A7CiAJaXJxX2N0eF9pbml0KGNwdSk7CiAjZWxzZQogCWNwdV9wZGEoY3B1KS0+cGN1cnJlbnQgPSBjX2lkbGUuaWRsZTsKLQlpbml0X3JzcCA9IGNfaWRsZS5pZGxlLT50aHJlYWQuc3A7Ci0JbG9hZF9zcDAoJnBlcl9jcHUoaW5pdF90c3MsIGNwdSksICZjX2lkbGUuaWRsZS0+dGhyZWFkKTsKLQlpbml0aWFsX2NvZGUgPSAodW5zaWduZWQgbG9uZylzdGFydF9zZWNvbmRhcnk7CiAJY2xlYXJfdHNrX3RocmVhZF9mbGFnKGNfaWRsZS5pZGxlLCBUSUZfRk9SSyk7CiAjZW5kaWYKKwllYXJseV9nZHRfZGVzY3IuYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKWdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJaW5pdGlhbF9jb2RlID0gKHVuc2lnbmVkIGxvbmcpc3RhcnRfc2Vjb25kYXJ5OworCXN0YWNrX3N0YXJ0LnNwID0gKHZvaWQgKikgY19pZGxlLmlkbGUtPnRocmVhZC5zcDsKIAogCS8qIHN0YXJ0X2lwIGhhZCBiZXR0ZXIgYmUgcGFnZS1hbGlnbmVkISAqLwogCXN0YXJ0X2lwID0gc2V0dXBfdHJhbXBvbGluZSgpOwpAQCAtOTg3LDE2ICs5MzksMTQgQEAKIAkJCQlpbnF1aXJlX3JlbW90ZV9hcGljKGFwaWNpZCk7CiAJCX0KIAl9Ci0KKyNpZmRlZiBDT05GSUdfWDg2XzY0CityZXN0b3JlX3N0YXRlOgorI2VuZGlmCiAJaWYgKGJvb3RfZXJyb3IpIHsKIAkJLyogVHJ5IHRvIHB1dCB0aGluZ3MgYmFjayB0aGUgd2F5IHRoZXkgd2VyZSBiZWZvcmUgLi4uICovCi0JCXVubWFwX2NwdV90b19sb2dpY2FsX2FwaWNpZChjcHUpOwotI2lmZGVmIENPTkZJR19YODZfNjQKLQkJY2xlYXJfbm9kZV9jcHVtYXNrKGNwdSk7IC8qIHdhcyBzZXQgYnkgbnVtYV9hZGRfY3B1ICovCi0jZW5kaWYKKwkJbnVtYV9yZW1vdmVfY3B1KGNwdSk7IC8qIHdhcyBzZXQgYnkgbnVtYV9hZGRfY3B1ICovCiAJCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsb3V0X21hcCk7IC8qIHdhcyBzZXQgYnkgZG9fYm9vdF9jcHUoKSAqLwogCQljcHVfY2xlYXIoY3B1LCBjcHVfaW5pdGlhbGl6ZWQpOyAvKiB3YXMgc2V0IGJ5IGNwdV9pbml0KCkgKi8KLQkJY3B1X2NsZWFyKGNwdSwgY3B1X3Bvc3NpYmxlX21hcCk7CiAJCWNwdV9jbGVhcihjcHUsIGNwdV9wcmVzZW50X21hcCk7CiAJCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkgPSBCQURfQVBJQ0lEOwogCX0KQEAgLTEwODgsMTQgKzEwMzgsMTIgQEAKIHsKIAljcHVfcHJlc2VudF9tYXAgPSBjcHVtYXNrX29mX2NwdSgwKTsKIAljcHVfcG9zc2libGVfbWFwID0gY3B1bWFza19vZl9jcHUoMCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgogCXNtcGJvb3RfY2xlYXJfaW9fYXBpY19pcnFzKCk7Ci0jZW5kaWYKKwogCWlmIChzbXBfZm91bmRfY29uZmlnKQotCQlwaHlzX2NwdV9wcmVzZW50X21hcCA9Ci0JCQkJcGh5c2lkX21hc2tfb2ZfcGh5c2lkKGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCk7CisJCXBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoYm9vdF9jcHVfcGh5c2ljYWxfYXBpY2lkLCAmcGh5c19jcHVfcHJlc2VudF9tYXApOwogCWVsc2UKLQkJcGh5c19jcHVfcHJlc2VudF9tYXAgPSBwaHlzaWRfbWFza19vZl9waHlzaWQoMCk7CisJCXBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoMCwgJnBoeXNfY3B1X3ByZXNlbnRfbWFwKTsKIAltYXBfY3B1X3RvX2xvZ2ljYWxfYXBpY2lkKCk7CiAJY3B1X3NldCgwLCBwZXJfY3B1KGNwdV9zaWJsaW5nX21hcCwgMCkpOwogCWNwdV9zZXQoMCwgcGVyX2NwdShjcHVfY29yZV9tYXAsIDApKTsKQEAgLTExNTgsMTIgKzExMDYsMTIgQEAKIAkgKiBJZiBTTVAgc2hvdWxkIGJlIGRpc2FibGVkLCB0aGVuIHJlYWxseSBkaXNhYmxlIGl0IQogCSAqLwogCWlmICghbWF4X2NwdXMpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiU01QIG1vZGUgZGVhY3RpdmF0ZWQsIgotCQkJCSAiZm9yY2luZyB1c2Ugb2YgZHVtbXkgQVBJQyBlbXVsYXRpb24uXG4iKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiU01QIG1vZGUgZGVhY3RpdmF0ZWQuXG4iKTsKIAkJc21wYm9vdF9jbGVhcl9pb19hcGljKCk7Ci0jaWZkZWYgQ09ORklHX1g4Nl8zMgorCisJCWxvY2FsaXNlX25taV93YXRjaGRvZygpOworCiAJCWNvbm5lY3RfYnNwX0FQSUMoKTsKLSNlbmRpZgogCQlzZXR1cF9sb2NhbF9BUElDKCk7CiAJCWVuZF9sb2NhbF9BUElDX3NldHVwKCk7CiAJCXJldHVybiAtMTsKQEAgLTExOTAsNyArMTEzOCw3IEBACiAgKi8KIHZvaWQgX19pbml0IG5hdGl2ZV9zbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVkIGludCBtYXhfY3B1cykKIHsKLQlubWlfd2F0Y2hkb2dfZGVmYXVsdCgpOworCXByZWVtcHRfZGlzYWJsZSgpOwogCXNtcF9jcHVfaW5kZXhfZGVmYXVsdCgpOwogCWN1cnJlbnRfY3B1X2RhdGEgPSBib290X2NwdV9kYXRhOwogCWNwdV9jYWxsaW5fbWFwID0gY3B1bWFza19vZl9jcHUoMCk7CkBAIC0xMjA2LDcgKzExNTQsNyBAQAogCWlmIChzbXBfc2FuaXR5X2NoZWNrKG1heF9jcHVzKSA8IDApIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyAiU01QIGRpc2FibGVkXG4iKTsKIAkJZGlzYWJsZV9zbXAoKTsKLQkJcmV0dXJuOworCQlnb3RvIG91dDsKIAl9CiAKIAlwcmVlbXB0X2Rpc2FibGUoKTsKQEAgLTEyMTcsOSArMTE2NSw4IEBACiAJfQogCXByZWVtcHRfZW5hYmxlKCk7CiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCiAJY29ubmVjdF9ic3BfQVBJQygpOwotI2VuZGlmCisKIAkvKgogCSAqIFN3aXRjaCBmcm9tIFBJQyB0byBBUElDIG1vZGUuCiAJICovCkBAIC0xMjQ2LDYgKzExOTMsOCBAQAogCXByaW50ayhLRVJOX0lORk8gIkNQVSVkOiAiLCAwKTsKIAlwcmludF9jcHVfaW5mbygmY3B1X2RhdGEoMCkpOwogCXNldHVwX2Jvb3RfY2xvY2soKTsKK291dDoKKwlwcmVlbXB0X2VuYWJsZSgpOwogfQogLyoKICAqIEVhcmx5IHNldHVwIHRvIG1ha2UgcHJpbnRrIHdvcmsuCkBAIC0xMjU1LDggKzEyMDQsOCBAQAogCWludCBtZSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICNpZmRlZiBDT05GSUdfWDg2XzMyCiAJaW5pdF9nZHQobWUpOwotCXN3aXRjaF90b19uZXdfZ2R0KCk7CiAjZW5kaWYKKwlzd2l0Y2hfdG9fbmV3X2dkdCgpOwogCS8qIGFscmVhZHkgc2V0IG1lIGluIGNwdV9vbmxpbmVfbWFwIGluIGJvb3RfY3B1X2luaXQoKSAqLwogCWNwdV9zZXQobWUsIGNwdV9jYWxsb3V0X21hcCk7CiAJcGVyX2NwdShjcHVfc3RhdGUsIG1lKSA9IENQVV9PTkxJTkU7CkBAIC0xMjc2LDIzICsxMjI1LDYgQEAKIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogCi0jICBpZmRlZiBDT05GSUdfWDg2XzMyCi12b2lkIGNwdV9leGl0X2NsZWFyKHZvaWQpCi17Ci0JaW50IGNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7Ci0KLQlpZGxlX3Rhc2tfZXhpdCgpOwotCi0JY3B1X3VuaW5pdCgpOwotCWlycV9jdHhfZXhpdChjcHUpOwotCi0JY3B1X2NsZWFyKGNwdSwgY3B1X2NhbGxvdXRfbWFwKTsKLQljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbGluX21hcCk7Ci0KLQl1bm1hcF9jcHVfdG9fbG9naWNhbF9hcGljaWQoY3B1KTsKLX0KLSMgIGVuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KLQogc3RhdGljIHZvaWQgcmVtb3ZlX3NpYmxpbmdpbmZvKGludCBjcHUpCiB7CiAJaW50IHNpYmxpbmc7CkBAIC0xMzQ2LDEyICsxMjc4LDIwIEBACiAJaW50IGk7CiAJaW50IHBvc3NpYmxlOwogCisJLyogbm8gcHJvY2Vzc29yIGZyb20gbXB0YWJsZSBvciBtYWR0ICovCisJaWYgKCFudW1fcHJvY2Vzc29ycykKKwkJbnVtX3Byb2Nlc3NvcnMgPSAxOworCisjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCiAJaWYgKGFkZGl0aW9uYWxfY3B1cyA9PSAtMSkgewogCQlpZiAoZGlzYWJsZWRfY3B1cyA+IDApCiAJCQlhZGRpdGlvbmFsX2NwdXMgPSBkaXNhYmxlZF9jcHVzOwogCQllbHNlCiAJCQlhZGRpdGlvbmFsX2NwdXMgPSAwOwogCX0KKyNlbHNlCisJYWRkaXRpb25hbF9jcHVzID0gMDsKKyNlbmRpZgogCXBvc3NpYmxlID0gbnVtX3Byb2Nlc3NvcnMgKyBhZGRpdGlvbmFsX2NwdXM7CiAJaWYgKHBvc3NpYmxlID4gTlJfQ1BVUykKIAkJcG9zc2libGUgPSBOUl9DUFVTOwpAQCAtMTM2MSwxOCArMTMwMSwxOCBAQAogCiAJZm9yIChpID0gMDsgaSA8IHBvc3NpYmxlOyBpKyspCiAJCWNwdV9zZXQoaSwgY3B1X3Bvc3NpYmxlX21hcCk7CisKKwlucl9jcHVfaWRzID0gcG9zc2libGU7CiB9CiAKIHN0YXRpYyB2b2lkIF9fcmVmIHJlbW92ZV9jcHVfZnJvbV9tYXBzKGludCBjcHUpCiB7CiAJY3B1X2NsZWFyKGNwdSwgY3B1X29ubGluZV9tYXApOwotI2lmZGVmIENPTkZJR19YODZfNjQKIAljcHVfY2xlYXIoY3B1LCBjcHVfY2FsbG91dF9tYXApOwogCWNwdV9jbGVhcihjcHUsIGNwdV9jYWxsaW5fbWFwKTsKIAkvKiB3YXMgc2V0IGJ5IGNwdV9pbml0KCkgKi8KIAljbGVhcl9iaXQoY3B1LCAodW5zaWduZWQgbG9uZyAqKSZjcHVfaW5pdGlhbGl6ZWQpOwotCWNsZWFyX25vZGVfY3B1bWFzayhjcHUpOwotI2VuZGlmCisJbnVtYV9yZW1vdmVfY3B1KGNwdSk7CiB9CiAKIGludCBfX2NwdV9kaXNhYmxlKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3JhdF8zMi5jIGIvYXJjaC94ODYva2VybmVsL3NyYXRfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzBlNGEzNy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3JhdF8zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsMzU4ICswLDAgQEAKLS8qCi0gKiBTb21lIG9mIHRoZSBjb2RlIGluIHRoaXMgZmlsZSBoYXMgYmVlbiBnbGVhbmVkIGZyb20gdGhlIDY0IGJpdCAKLSAqIGRpc2NvbnRpZ21lbSBzdXBwb3J0IGNvZGUgYmFzZS4KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDIsIElCTSBDb3JwLgotICoKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgIAotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAotICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBHT09EIFRJVExFIG9yCi0gKiBOT04gSU5GUklOR0VNRU5ULiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZQotICogZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgotICoKLSAqIFNlbmQgZmVlZGJhY2sgdG8gUGF0IEdhdWdoZW4gPGdvbmVAdXMuaWJtLmNvbT4KLSAqLwotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgotI2luY2x1ZGUgPGxpbnV4L21tem9uZS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KLSNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgotI2luY2x1ZGUgPGFzbS9zcmF0Lmg+Ci0jaW5jbHVkZSA8YXNtL3RvcG9sb2d5Lmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotCi0vKgotICogcHJveGltaXR5IG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMKLSAqLwotI2RlZmluZSBOT0RFX0FSUkFZX0lOREVYKHgpCSgoeCkgLyA4KQkvKiA4IGJpdHMvY2hhciAqLwotI2RlZmluZSBOT0RFX0FSUkFZX09GRlNFVCh4KQkoKHgpICUgOCkJLyogOCBiaXRzL2NoYXIgKi8KLSNkZWZpbmUgQk1BUF9TRVQoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gfD0gMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKQotI2RlZmluZSBCTUFQX1RFU1QoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gJiAoMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKSkKLS8qIGJpdG1hcCBsZW5ndGg7IF9QWE0gaXMgYXQgbW9zdCAyNTUgKi8KLSNkZWZpbmUgUFhNX0JJVE1BUF9MRU4gKE1BWF9QWE1fRE9NQUlOUyAvIDgpIAotc3RhdGljIHU4IHB4bV9iaXRtYXBbUFhNX0JJVE1BUF9MRU5dOwkvKiBiaXRtYXAgb2YgcHJveGltaXR5IGRvbWFpbnMgKi8KLQotI2RlZmluZSBNQVhfQ0hVTktTX1BFUl9OT0RFCTMKLSNkZWZpbmUgTUFYQ0hVTktTCQkoTUFYX0NIVU5LU19QRVJfTk9ERSAqIE1BWF9OVU1OT0RFUykKLXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zIHsKLQl1bnNpZ25lZCBsb25nCXN0YXJ0X3BmbjsKLQl1bnNpZ25lZCBsb25nCWVuZF9wZm47Ci0JdTgJcHhtOwkJLy8gcHJveGltaXR5IGRvbWFpbiBvZiBub2RlCi0JdTgJbmlkOwkJLy8gd2hpY2ggY25vZGUgY29udGFpbnMgdGhpcyBjaHVuaz8KLQl1OAliYW5rOwkJLy8gd2hpY2ggbWVtIGJhbmsgb24gdGhpcyBub2RlCi19Owotc3RhdGljIHN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zIG5vZGVfbWVtb3J5X2NodW5rW01BWENIVU5LU107Ci0KLXN0YXRpYyBpbnQgbnVtX21lbW9yeV9jaHVua3M7CQkvKiB0b3RhbCBudW1iZXIgb2YgbWVtb3J5IGNodW5rcyAqLwotc3RhdGljIHU4IF9faW5pdGRhdGEgYXBpY2lkX3RvX3B4bVtNQVhfQVBJQ0lEXTsKLQotLyogSWRlbnRpZnkgQ1BVIHByb3hpbWl0eSBkb21haW5zICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfY3B1X2FmZmluaXR5X3N0cnVjdHVyZShjaGFyICpwKQotewotCXN0cnVjdCBhY3BpX3NyYXRfY3B1X2FmZmluaXR5ICpjcHVfYWZmaW5pdHkgPQotCQkJCShzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqKSBwOwotCi0JaWYgKChjcHVfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX0NQVV9FTkFCTEVEKSA9PSAwKQotCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLwotCi0JLyogbWFyayB0aGlzIG5vZGUgYXMgInNlZW4iIGluIG5vZGUgYml0bWFwICovCi0JQk1BUF9TRVQocHhtX2JpdG1hcCwgY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvKTsKLQotCWFwaWNpZF90b19weG1bY3B1X2FmZmluaXR5LT5hcGljX2lkXSA9IGNwdV9hZmZpbml0eS0+cHJveGltaXR5X2RvbWFpbl9sbzsKLQotCXByaW50aygiQ1BVIDB4JTAyWCBpbiBwcm94aW1pdHkgZG9tYWluIDB4JTAyWFxuIiwKLQkJY3B1X2FmZmluaXR5LT5hcGljX2lkLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOwotfQotCi0vKgotICogSWRlbnRpZnkgbWVtb3J5IHByb3hpbWl0eSBkb21haW5zIGFuZCBob3QtcmVtb3ZlIGNhcGFiaWxpdGllcy4KLSAqIEZpbGwgbm9kZSBtZW1vcnkgY2h1bmsgbGlzdCBzdHJ1Y3R1cmUuCi0gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9tZW1vcnlfYWZmaW5pdHlfc3RydWN0dXJlIChjaGFyICpzcmF0cCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgcGFkZHIsIHNpemU7Ci0JdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47Ci0JdTggcHhtOwotCXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zICpwLCAqcSwgKnBlbmQ7Ci0Jc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1lbW9yeV9hZmZpbml0eSA9Ci0JCQkoc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKikgc3JhdHA7Ci0KLQlpZiAoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0VOQUJMRUQpID09IDApCi0JCXJldHVybjsJCS8qIGVtcHR5IGVudHJ5ICovCi0KLQlweG0gPSBtZW1vcnlfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW4gJiAweGZmOwotCi0JLyogbWFyayB0aGlzIG5vZGUgYXMgInNlZW4iIGluIG5vZGUgYml0bWFwICovCi0JQk1BUF9TRVQocHhtX2JpdG1hcCwgcHhtKTsKLQotCS8qIGNhbGN1bGF0ZSBpbmZvIGZvciBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCi0JcGFkZHIgPSBtZW1vcnlfYWZmaW5pdHktPmJhc2VfYWRkcmVzczsKLQlzaXplID0gbWVtb3J5X2FmZmluaXR5LT5sZW5ndGg7Ci0KLQlzdGFydF9wZm4gPSBwYWRkciA+PiBQQUdFX1NISUZUOwotCWVuZF9wZm4gPSAocGFkZHIgKyBzaXplKSA+PiBQQUdFX1NISUZUOwotCi0KLQlpZiAobnVtX21lbW9yeV9jaHVua3MgPj0gTUFYQ0hVTktTKSB7Ci0JCXByaW50aygiVG9vIG1hbnkgbWVtIGNodW5rcyBpbiBTUkFULiBJZ25vcmluZyAlbGxkIE1CeXRlcyBhdCAlbGx4XG4iLAotCQkJc2l6ZS8oMTAyNCoxMDI0KSwgcGFkZHIpOwotCQlyZXR1cm47Ci0JfQotCi0JLyogSW5zZXJ0aW9uIHNvcnQgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCi0JcGVuZCA9ICZub2RlX21lbW9yeV9jaHVua1tudW1fbWVtb3J5X2NodW5rc107Ci0JZm9yIChwID0gJm5vZGVfbWVtb3J5X2NodW5rWzBdOyBwIDwgcGVuZDsgcCsrKSB7Ci0JCWlmIChzdGFydF9wZm4gPCBwLT5zdGFydF9wZm4pCi0JCQlicmVhazsKLQl9Ci0JaWYgKHAgPCBwZW5kKSB7Ci0JCWZvciAocSA9IHBlbmQ7IHEgPj0gcDsgcS0tKQotCQkJKihxICsgMSkgPSAqcTsKLQl9Ci0JcC0+c3RhcnRfcGZuID0gc3RhcnRfcGZuOwotCXAtPmVuZF9wZm4gPSBlbmRfcGZuOwotCXAtPnB4bSA9IHB4bTsKLQotCW51bV9tZW1vcnlfY2h1bmtzKys7Ci0KLQlwcmludGsoIk1lbW9yeSByYW5nZSAweCVsWCB0byAweCVsWCAodHlwZSAweCVYKSBpbiBwcm94aW1pdHkgZG9tYWluIDB4JTAyWCAlc1xuIiwKLQkJc3RhcnRfcGZuLCBlbmRfcGZuLAotCQltZW1vcnlfYWZmaW5pdHktPm1lbW9yeV90eXBlLAotCQlweG0sCi0JCSgobWVtb3J5X2FmZmluaXR5LT5mbGFncyAmIEFDUElfU1JBVF9NRU1fSE9UX1BMVUdHQUJMRSkgPwotCQkgImVuYWJsZWQgYW5kIHJlbW92YWJsZSIgOiAiZW5hYmxlZCIgKSApOwotfQotCi0vKgotICogVGhlIFNSQVQgdGFibGUgYWx3YXlzIGxpc3RzIGFzY2VuZGluZyBhZGRyZXNzZXMsIHNvIGNhbiBhbHdheXMKLSAqIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCAic3RhcnQiIGFkZHJlc3MgdGhhdCB5b3Ugc2VlIGlzIHRoZSByZWFsCi0gKiBzdGFydCBvZiB0aGUgbm9kZSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgImVuZCIgYWRkcmVzcyBpcyBhZnRlcgotICogdGhlIHByZXZpb3VzIG9uZS4KLSAqLwotc3RhdGljIF9faW5pdCB2b2lkIG5vZGVfcmVhZF9jaHVuayhpbnQgbmlkLCBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqbWVtb3J5X2NodW5rKQotewotCS8qCi0JICogT25seSBhZGQgcHJlc2VudCBtZW1vcnkgYXMgdG9sZCBieSB0aGUgZTgyMC4KLQkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgZnJvbSB0aGUgU1JBVCB0aGF0IHRoZSBtZW1vcnkgaXQKLQkgKiBlbnVtZXJhdGVzIGlzIHByZXNlbnQgYXQgYm9vdCB0aW1lIGJlY2F1c2UgaXQgcmVwcmVzZW50cwotCSAqICpwb3NzaWJsZSogbWVtb3J5IGhvdHBsdWcgYXJlYXMgdGhlIHNhbWUgYXMgbm9ybWFsIFJBTS4KLQkgKi8KLQlpZiAobWVtb3J5X2NodW5rLT5zdGFydF9wZm4gPj0gbWF4X3BmbikgewotCQlwcmludGsgKEtFUk5fSU5GTyAiSWdub3JpbmcgU1JBVCBwZm5zOiAweCUwOGx4IC0+ICUwOGx4XG4iLAotCQkJbWVtb3J5X2NodW5rLT5zdGFydF9wZm4sIG1lbW9yeV9jaHVuay0+ZW5kX3Bmbik7Ci0JCXJldHVybjsKLQl9Ci0JaWYgKG1lbW9yeV9jaHVuay0+bmlkICE9IG5pZCkKLQkJcmV0dXJuOwotCi0JaWYgKCFub2RlX2hhc19vbmxpbmVfbWVtKG5pZCkpCi0JCW5vZGVfc3RhcnRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbjsKLQotCWlmIChub2RlX3N0YXJ0X3BmbltuaWRdID4gbWVtb3J5X2NodW5rLT5zdGFydF9wZm4pCi0JCW5vZGVfc3RhcnRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbjsKLQotCWlmIChub2RlX2VuZF9wZm5bbmlkXSA8IG1lbW9yeV9jaHVuay0+ZW5kX3BmbikKLQkJbm9kZV9lbmRfcGZuW25pZF0gPSBtZW1vcnlfY2h1bmstPmVuZF9wZm47Ci19Ci0KLS8qIFBhcnNlIHRoZSBBQ1BJIFN0YXRpYyBSZXNvdXJjZSBBZmZpbml0eSBUYWJsZSAqLwotc3RhdGljIGludCBfX2luaXQgYWNwaTIwX3BhcnNlX3NyYXQoc3RydWN0IGFjcGlfdGFibGVfc3JhdCAqc3JhdHApCi17Ci0JdTggKnN0YXJ0LCAqZW5kLCAqcDsKLQlpbnQgaSwgaiwgbmlkOwotCi0Jc3RhcnQgPSAodTggKikoJihzcmF0cC0+cmVzZXJ2ZWQpICsgMSk7CS8qIHNraXAgaGVhZGVyICovCi0JcCA9IHN0YXJ0OwotCWVuZCA9ICh1OCAqKXNyYXRwICsgc3JhdHAtPmhlYWRlci5sZW5ndGg7Ci0KLQltZW1zZXQocHhtX2JpdG1hcCwgMCwgc2l6ZW9mKHB4bV9iaXRtYXApKTsJLyogaW5pdCBwcm94aW1pdHkgZG9tYWluIGJpdG1hcCAqLwotCW1lbXNldChub2RlX21lbW9yeV9jaHVuaywgMCwgc2l6ZW9mKG5vZGVfbWVtb3J5X2NodW5rKSk7Ci0KLQludW1fbWVtb3J5X2NodW5rcyA9IDA7Ci0Jd2hpbGUgKHAgPCBlbmQpIHsKLQkJc3dpdGNoICgqcCkgewotCQljYXNlIEFDUElfU1JBVF9UWVBFX0NQVV9BRkZJTklUWToKLQkJCXBhcnNlX2NwdV9hZmZpbml0eV9zdHJ1Y3R1cmUocCk7Ci0JCQlicmVhazsKLQkJY2FzZSBBQ1BJX1NSQVRfVFlQRV9NRU1PUllfQUZGSU5JVFk6Ci0JCQlwYXJzZV9tZW1vcnlfYWZmaW5pdHlfc3RydWN0dXJlKHApOwotCQkJYnJlYWs7Ci0JCWRlZmF1bHQ6Ci0JCQlwcmludGsoIkFDUEkgMi4wIFNSQVQ6IHVua25vd24gZW50cnkgc2tpcHBlZDogdHlwZT0weCUwMlgsIGxlbj0lZFxuIiwgcFswXSwgcFsxXSk7Ci0JCQlicmVhazsKLQkJfQotCQlwICs9IHBbMV07Ci0JCWlmIChwWzFdID09IDApIHsKLQkJCXByaW50aygiYWNwaTIwX3BhcnNlX3NyYXQ6IEVudHJ5IGxlbmd0aCB2YWx1ZSBpcyB6ZXJvOyIKLQkJCQkiIGNhbid0IHBhcnNlIGFueSBmdXJ0aGVyIVxuIik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmIChudW1fbWVtb3J5X2NodW5rcyA9PSAwKSB7Ci0JCXByaW50aygiY291bGQgbm90IGZpbnkgYW55IEFDUEkgU1JBVCBtZW1vcnkgYXJlYXMuXG4iKTsKLQkJZ290byBvdXRfZmFpbDsKLQl9Ci0KLQkvKiBDYWxjdWxhdGUgdG90YWwgbnVtYmVyIG9mIG5vZGVzIGluIHN5c3RlbSBmcm9tIFBYTSBiaXRtYXAgYW5kIGNyZWF0ZQotCSAqIGEgc2V0IG9mIHNlcXVlbnRpYWwgbm9kZSBJRHMgc3RhcnRpbmcgYXQgemVyby4gIChBQ1BJIGRvZXNuJ3Qgc2VlbQotCSAqIHRvIHNwZWNpZnkgdGhlIHJhbmdlIG9mIF9QWE0gdmFsdWVzLikKLQkgKi8KLQkvKgotCSAqIE1DRCAtIHdlIG5vIGxvbmdlciBIQVZFIHRvIG51bWJlciBub2RlcyBzZXF1ZW50aWFsbHkuICBQWE0gZG9tYWluCi0JICogbnVtYmVycyBjb3VsZCBnbyBhcyBoaWdoIGFzIDI1NiwgYW5kIE1BWF9OVU1OT0RFUyBmb3IgaTM4NiBpcyB0eXBpY2FsbHkKLQkgKiAzMiwgc28gd2Ugd2lsbCBjb250aW51ZSBudW1iZXJpbmcgdGhlbSBpbiB0aGlzIG1hbm5lciB1bnRpbCBNQVhfTlVNTk9ERVMKLQkgKiBhcHByb2FjaGVzIE1BWF9QWE1fRE9NQUlOUyBmb3IgaTM4Ni4KLQkgKi8KLQlub2Rlc19jbGVhcihub2RlX29ubGluZV9tYXApOwotCWZvciAoaSA9IDA7IGkgPCBNQVhfUFhNX0RPTUFJTlM7IGkrKykgewotCQlpZiAoQk1BUF9URVNUKHB4bV9iaXRtYXAsIGkpKSB7Ci0JCQlpbnQgbmlkID0gYWNwaV9tYXBfcHhtX3RvX25vZGUoaSk7Ci0JCQlub2RlX3NldF9vbmxpbmUobmlkKTsKLQkJfQotCX0KLQlCVUdfT04obnVtX29ubGluZV9ub2RlcygpID09IDApOwotCi0JLyogc2V0IGNub2RlIGlkIGluIG1lbW9yeSBjaHVuayBzdHJ1Y3R1cmUgKi8KLQlmb3IgKGkgPSAwOyBpIDwgbnVtX21lbW9yeV9jaHVua3M7IGkrKykKLQkJbm9kZV9tZW1vcnlfY2h1bmtbaV0ubmlkID0gcHhtX3RvX25vZGUobm9kZV9tZW1vcnlfY2h1bmtbaV0ucHhtKTsKLQotCXByaW50aygicHhtIGJpdG1hcDogIik7Ci0JZm9yIChpID0gMDsgaSA8IHNpemVvZihweG1fYml0bWFwKTsgaSsrKSB7Ci0JCXByaW50aygiJTAyWCAiLCBweG1fYml0bWFwW2ldKTsKLQl9Ci0JcHJpbnRrKCJcbiIpOwotCXByaW50aygiTnVtYmVyIG9mIGxvZ2ljYWwgbm9kZXMgaW4gc3lzdGVtID0gJWRcbiIsIG51bV9vbmxpbmVfbm9kZXMoKSk7Ci0JcHJpbnRrKCJOdW1iZXIgb2YgbWVtb3J5IGNodW5rcyBpbiBzeXN0ZW0gPSAlZFxuIiwgbnVtX21lbW9yeV9jaHVua3MpOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9BUElDSUQ7IGkrKykKLQkJYXBpY2lkXzJfbm9kZVtpXSA9IHB4bV90b19ub2RlKGFwaWNpZF90b19weG1baV0pOwotCi0JZm9yIChqID0gMDsgaiA8IG51bV9tZW1vcnlfY2h1bmtzOyBqKyspewotCQlzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqIGNodW5rID0gJm5vZGVfbWVtb3J5X2NodW5rW2pdOwotCQlwcmludGsoImNodW5rICVkIG5pZCAlZCBzdGFydF9wZm4gJTA4bHggZW5kX3BmbiAlMDhseFxuIiwKLQkJICAgICAgIGosIGNodW5rLT5uaWQsIGNodW5rLT5zdGFydF9wZm4sIGNodW5rLT5lbmRfcGZuKTsKLQkJbm9kZV9yZWFkX2NodW5rKGNodW5rLT5uaWQsIGNodW5rKTsKLQkJYWRkX2FjdGl2ZV9yYW5nZShjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7Ci0JfQotIAotCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewotCQl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gbm9kZV9zdGFydF9wZm5bbmlkXTsKLQkJdW5zaWduZWQgbG9uZyBlbmQgPSBub2RlX2VuZF9wZm5bbmlkXTsKLQotCQltZW1vcnlfcHJlc2VudChuaWQsIHN0YXJ0LCBlbmQpOwotCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobmlkLCBzdGFydCwgZW5kKTsKLQl9Ci0JcmV0dXJuIDE7Ci1vdXRfZmFpbDoKLQlyZXR1cm4gMDsKLX0KLQotc3RydWN0IGFjcGlfc3RhdGljX3JzZHQgewotCXN0cnVjdCBhY3BpX3RhYmxlX3JzZHQgdGFibGU7Ci0JdTMyIHBhZGRpbmdbN107IC8qIEFsbG93IGZvciA3IG1vcmUgdGFibGUgZW50cmllcyAqLwotfTsKLQotaW50IF9faW5pdCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQotewotCXN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqaGVhZGVyID0gTlVMTDsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2RwICpyc2RwID0gTlVMTDsKLQlzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0ICpyc2R0ID0gTlVMTDsKLQlhY3BpX25hdGl2ZV91aW50IHJzZHBfYWRkcmVzcyA9IDA7Ci0Jc3RydWN0IGFjcGlfc3RhdGljX3JzZHQgc2F2ZWRfcnNkdDsKLQlpbnQgdGFibGVzID0gMDsKLQlpbnQgaSA9IDA7Ci0KLQlyc2RwX2FkZHJlc3MgPSBhY3BpX29zX2dldF9yb290X3BvaW50ZXIoKTsKLQlpZiAoIXJzZHBfYWRkcmVzcykgewotCQlwcmludGsoIiVzOiBTeXN0ZW0gZGVzY3JpcHRpb24gdGFibGVzIG5vdCBmb3VuZFxuIiwKLQkJICAgICAgIF9fZnVuY19fKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXByaW50aygiJXM6IGFzc2lnbmluZyBhZGRyZXNzIHRvIHJzZHBcbiIsIF9fZnVuY19fKTsKLQlyc2RwID0gKHN0cnVjdCBhY3BpX3RhYmxlX3JzZHAgKikodTMyKXJzZHBfYWRkcmVzczsKLQlpZiAoIXJzZHApIHsKLQkJcHJpbnRrKCIlczogRGlkbid0IGZpbmQgQUNQSSByb290IVxuIiwgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JcHJpbnRrKEtFUk5fSU5GTyAiJS44cyB2JWQgWyUuNnNdXG4iLCByc2RwLT5zaWduYXR1cmUsIHJzZHAtPnJldmlzaW9uLAotCQlyc2RwLT5vZW1faWQpOwotCi0JaWYgKHN0cm5jbXAocnNkcC0+c2lnbmF0dXJlLCBBQ1BJX1NJR19SU0RQLHN0cmxlbihBQ1BJX1NJR19SU0RQKSkpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IFJTRFAgdGFibGUgc2lnbmF0dXJlIGluY29ycmVjdFxuIiwgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JcnNkdCA9IChzdHJ1Y3QgYWNwaV90YWJsZV9yc2R0ICopCi0JICAgIGVhcmx5X2lvcmVtYXAocnNkcC0+cnNkdF9waHlzaWNhbF9hZGRyZXNzLCBzaXplb2Yoc3RydWN0IGFjcGlfdGFibGVfcnNkdCkpOwotCi0JaWYgKCFyc2R0KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcKLQkJICAgICAgICIlczogQUNQSTogSW52YWxpZCByb290IHN5c3RlbSBkZXNjcmlwdGlvbiB0YWJsZXMgKFJTRFQpXG4iLAotCQkgICAgICAgX19mdW5jX18pOwotCQlnb3RvIG91dF9lcnI7Ci0JfQotCi0JaGVhZGVyID0gJnJzZHQtPmhlYWRlcjsKLQotCWlmIChzdHJuY21wKGhlYWRlci0+c2lnbmF0dXJlLCBBQ1BJX1NJR19SU0RULCBzdHJsZW4oQUNQSV9TSUdfUlNEVCkpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkFDUEk6IFJTRFQgc2lnbmF0dXJlIGluY29ycmVjdFxuIik7Ci0JCWdvdG8gb3V0X2VycjsKLQl9Ci0KLQkvKiAKLQkgKiBUaGUgbnVtYmVyIG9mIHRhYmxlcyBpcyBjb21wdXRlZCBieSB0YWtpbmcgdGhlIAotCSAqIHNpemUgb2YgYWxsIGVudHJpZXMgKGhlYWRlciBzaXplIG1pbnVzIHRvdGFsIAotCSAqIHNpemUgb2YgUlNEVCkgZGl2aWRlZCBieSB0aGUgc2l6ZSBvZiBlYWNoIGVudHJ5Ci0JICogKDQtYnl0ZSB0YWJsZSBwb2ludGVycykuCi0JICovCi0JdGFibGVzID0gKGhlYWRlci0+bGVuZ3RoIC0gc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlcikpIC8gNDsKLQotCWlmICghdGFibGVzKQotCQlnb3RvIG91dF9lcnI7Ci0KLQltZW1jcHkoJnNhdmVkX3JzZHQsIHJzZHQsIHNpemVvZihzYXZlZF9yc2R0KSk7Ci0KLQlpZiAoc2F2ZWRfcnNkdC50YWJsZS5oZWFkZXIubGVuZ3RoID4gc2l6ZW9mKHNhdmVkX3JzZHQpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkFDUEk6IFRvbyBiaWcgbGVuZ3RoIGluIFJTRFQ6ICVkXG4iLAotCQkgICAgICAgc2F2ZWRfcnNkdC50YWJsZS5oZWFkZXIubGVuZ3RoKTsKLQkJZ290byBvdXRfZXJyOwotCX0KLQotCXByaW50aygiQmVnaW4gU1JBVCB0YWJsZSBzY2FuLi4uLlxuIik7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgdGFibGVzOyBpKyspIHsKLQkJLyogTWFwIGluIGhlYWRlciwgdGhlbiBtYXAgaW4gZnVsbCB0YWJsZSBsZW5ndGguICovCi0JCWhlYWRlciA9IChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKikKLQkJCWVhcmx5X2lvcmVtYXAoc2F2ZWRfcnNkdC50YWJsZS50YWJsZV9vZmZzZXRfZW50cnlbaV0sIHNpemVvZihzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIpKTsKLQkJaWYgKCFoZWFkZXIpCi0JCQlicmVhazsKLQkJaGVhZGVyID0gKHN0cnVjdCBhY3BpX3RhYmxlX2hlYWRlciAqKQotCQkJZWFybHlfaW9yZW1hcChzYXZlZF9yc2R0LnRhYmxlLnRhYmxlX29mZnNldF9lbnRyeVtpXSwgaGVhZGVyLT5sZW5ndGgpOwotCQlpZiAoIWhlYWRlcikKLQkJCWJyZWFrOwotCi0JCWlmIChzdHJuY21wKChjaGFyICopICZoZWFkZXItPnNpZ25hdHVyZSwgQUNQSV9TSUdfU1JBVCwgNCkpCi0JCQljb250aW51ZTsKLQotCQkvKiB3ZSd2ZSBmb3VuZCB0aGUgc3JhdCB0YWJsZS4gZG9uJ3QgbmVlZCB0byBsb29rIGF0IGFueSBtb3JlIHRhYmxlcyAqLwotCQlyZXR1cm4gYWNwaTIwX3BhcnNlX3NyYXQoKHN0cnVjdCBhY3BpX3RhYmxlX3NyYXQgKiloZWFkZXIpOwotCX0KLW91dF9lcnI6Ci0JcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKCk7Ci0JcHJpbnRrKCJmYWlsZWQgdG8gZ2V0IE5VTUEgbWVtb3J5IGluZm9ybWF0aW9uIGZyb20gU1JBVCB0YWJsZVxuIik7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvc3VtbWl0XzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc3VtbWl0XzMyLmMKaW5kZXggYWU3NTEwOS4uZDY3Y2U1ZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3N1bW1pdF8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zdW1taXRfMzIuYwpAQCAtMzYsNyArMzYsOSBAQAogc3RhdGljIHN0cnVjdCBzY2FsX2RldGFpbCAgICpzY2FsX2RldnNbTUFYX05VTU5PREVTXSBfX2luaXRkYXRhOwogc3RhdGljIHN0cnVjdCByaW9fZGV0YWlsICAgICpyaW9fZGV2c1tNQVhfTlVNTk9ERVMqNF0gX19pbml0ZGF0YTsKIAorI2lmbmRlZiBDT05GSUdfWDg2X05VTUFRCiBzdGF0aWMgaW50IG1wX2J1c19pZF90b19ub2RlW01BWF9NUF9CVVNTRVNdIF9faW5pdGRhdGE7CisjZW5kaWYKIAogc3RhdGljIGludCBfX2luaXQgc2V0dXBfcGNpX25vZGVfbWFwX2Zvcl93cGVnKGludCB3cGVnX251bSwgaW50IGxhc3RfYnVzKQogewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3N5c19pMzg2XzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYwppbmRleCBkMmFiNTJjLi43MDY2Y2I4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvc3lzX2kzODZfMzIuYwpAQCAtMTksOCArMTksOCBAQAogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNpbmNsdWRlIDxsaW51eC9pcGMuaD4KIAotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+Ci0jaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91bmlzdGQuaD4KIAogYXNtbGlua2FnZSBsb25nIHN5c19tbWFwMih1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgbGVuLAogCQkJICB1bnNpZ25lZCBsb25nIHByb3QsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCkBAIC0xMDMsNyArMTAzLDcgQEAKICAqCiAgKiBUaGlzIGlzIHJlYWxseSBob3JyaWJseSB1Z2x5LgogICovCi1hc21saW5rYWdlIGludCBzeXNfaXBjICh1aW50IGNhbGwsIGludCBmaXJzdCwgaW50IHNlY29uZCwKK2FzbWxpbmthZ2UgaW50IHN5c19pcGModWludCBjYWxsLCBpbnQgZmlyc3QsIGludCBzZWNvbmQsCiAJCQlpbnQgdGhpcmQsIHZvaWQgX191c2VyICpwdHIsIGxvbmcgZmlmdGgpCiB7CiAJaW50IHZlcnNpb24sIHJldDsKQEAgLTExMywyNCArMTEzLDI0IEBACiAKIAlzd2l0Y2ggKGNhbGwpIHsKIAljYXNlIFNFTU9QOgotCQlyZXR1cm4gc3lzX3NlbXRpbWVkb3AgKGZpcnN0LCAoc3RydWN0IHNlbWJ1ZiBfX3VzZXIgKilwdHIsIHNlY29uZCwgTlVMTCk7CisJCXJldHVybiBzeXNfc2VtdGltZWRvcChmaXJzdCwgKHN0cnVjdCBzZW1idWYgX191c2VyICopcHRyLCBzZWNvbmQsIE5VTEwpOwogCWNhc2UgU0VNVElNRURPUDoKIAkJcmV0dXJuIHN5c19zZW10aW1lZG9wKGZpcnN0LCAoc3RydWN0IHNlbWJ1ZiBfX3VzZXIgKilwdHIsIHNlY29uZCwKIAkJCQkJKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyBfX3VzZXIgKilmaWZ0aCk7CiAKIAljYXNlIFNFTUdFVDoKLQkJcmV0dXJuIHN5c19zZW1nZXQgKGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKKwkJcmV0dXJuIHN5c19zZW1nZXQoZmlyc3QsIHNlY29uZCwgdGhpcmQpOwogCWNhc2UgU0VNQ1RMOiB7CiAJCXVuaW9uIHNlbXVuIGZvdXJ0aDsKIAkJaWYgKCFwdHIpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAkJaWYgKGdldF91c2VyKGZvdXJ0aC5fX3BhZCwgKHZvaWQgX191c2VyICogX191c2VyICopIHB0cikpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJcmV0dXJuIHN5c19zZW1jdGwgKGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBmb3VydGgpOworCQlyZXR1cm4gc3lzX3NlbWN0bChmaXJzdCwgc2Vjb25kLCB0aGlyZCwgZm91cnRoKTsKIAl9CiAKIAljYXNlIE1TR1NORDoKLQkJcmV0dXJuIHN5c19tc2dzbmQgKGZpcnN0LCAoc3RydWN0IG1zZ2J1ZiBfX3VzZXIgKikgcHRyLCAKKwkJcmV0dXJuIHN5c19tc2dzbmQoZmlyc3QsIChzdHJ1Y3QgbXNnYnVmIF9fdXNlciAqKSBwdHIsCiAJCQkJICAgc2Vjb25kLCB0aGlyZCk7CiAJY2FzZSBNU0dSQ1Y6CiAJCXN3aXRjaCAodmVyc2lvbikgewpAQCAtMTM4LDQ1ICsxMzgsNDUgQEAKIAkJCXN0cnVjdCBpcGNfa2x1ZGdlIHRtcDsKIAkJCWlmICghcHRyKQogCQkJCXJldHVybiAtRUlOVkFMOwotCQkJCisKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigmdG1wLAotCQkJCQkgICAoc3RydWN0IGlwY19rbHVkZ2UgX191c2VyICopIHB0ciwgCi0JCQkJCSAgIHNpemVvZiAodG1wKSkpCisJCQkJCSAgIChzdHJ1Y3QgaXBjX2tsdWRnZSBfX3VzZXIgKikgcHRyLAorCQkJCQkgICBzaXplb2YodG1wKSkpCiAJCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQlyZXR1cm4gc3lzX21zZ3JjdiAoZmlyc3QsIHRtcC5tc2dwLCBzZWNvbmQsCisJCQlyZXR1cm4gc3lzX21zZ3JjdihmaXJzdCwgdG1wLm1zZ3AsIHNlY29uZCwKIAkJCQkJICAgdG1wLm1zZ3R5cCwgdGhpcmQpOwogCQl9CiAJCWRlZmF1bHQ6Ci0JCQlyZXR1cm4gc3lzX21zZ3JjdiAoZmlyc3QsCisJCQlyZXR1cm4gc3lzX21zZ3JjdihmaXJzdCwKIAkJCQkJICAgKHN0cnVjdCBtc2didWYgX191c2VyICopIHB0ciwKIAkJCQkJICAgc2Vjb25kLCBmaWZ0aCwgdGhpcmQpOwogCQl9CiAJY2FzZSBNU0dHRVQ6Ci0JCXJldHVybiBzeXNfbXNnZ2V0ICgoa2V5X3QpIGZpcnN0LCBzZWNvbmQpOworCQlyZXR1cm4gc3lzX21zZ2dldCgoa2V5X3QpIGZpcnN0LCBzZWNvbmQpOwogCWNhc2UgTVNHQ1RMOgotCQlyZXR1cm4gc3lzX21zZ2N0bCAoZmlyc3QsIHNlY29uZCwgKHN0cnVjdCBtc3FpZF9kcyBfX3VzZXIgKikgcHRyKTsKKwkJcmV0dXJuIHN5c19tc2djdGwoZmlyc3QsIHNlY29uZCwgKHN0cnVjdCBtc3FpZF9kcyBfX3VzZXIgKikgcHRyKTsKIAogCWNhc2UgU0hNQVQ6CiAJCXN3aXRjaCAodmVyc2lvbikgewogCQlkZWZhdWx0OiB7CiAJCQl1bG9uZyByYWRkcjsKLQkJCXJldCA9IGRvX3NobWF0IChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAmcmFkZHIpOworCQkJcmV0ID0gZG9fc2htYXQoZmlyc3QsIChjaGFyIF9fdXNlciAqKSBwdHIsIHNlY29uZCwgJnJhZGRyKTsKIAkJCWlmIChyZXQpCiAJCQkJcmV0dXJuIHJldDsKLQkJCXJldHVybiBwdXRfdXNlciAocmFkZHIsICh1bG9uZyBfX3VzZXIgKikgdGhpcmQpOworCQkJcmV0dXJuIHB1dF91c2VyKHJhZGRyLCAodWxvbmcgX191c2VyICopIHRoaXJkKTsKIAkJfQogCQljYXNlIDE6CS8qIGlCQ1MyIGVtdWxhdG9yIGVudHJ5IHBvaW50ICovCiAJCQlpZiAoIXNlZ21lbnRfZXEoZ2V0X2ZzKCksIGdldF9kcygpKSkKIAkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCS8qIFRoZSAiKHVsb25nICopIHRoaXJkIiBpcyB2YWxpZCBfb25seV8gYmVjYXVzZSBvZiB0aGUga2VybmVsIHNlZ21lbnQgdGhpbmcgKi8KLQkJCXJldHVybiBkb19zaG1hdCAoZmlyc3QsIChjaGFyIF9fdXNlciAqKSBwdHIsIHNlY29uZCwgKHVsb25nICopIHRoaXJkKTsKKwkJCXJldHVybiBkb19zaG1hdChmaXJzdCwgKGNoYXIgX191c2VyICopIHB0ciwgc2Vjb25kLCAodWxvbmcgKikgdGhpcmQpOwogCQl9Ci0JY2FzZSBTSE1EVDogCi0JCXJldHVybiBzeXNfc2htZHQgKChjaGFyIF9fdXNlciAqKXB0cik7CisJY2FzZSBTSE1EVDoKKwkJcmV0dXJuIHN5c19zaG1kdCgoY2hhciBfX3VzZXIgKilwdHIpOwogCWNhc2UgU0hNR0VUOgotCQlyZXR1cm4gc3lzX3NobWdldCAoZmlyc3QsIHNlY29uZCwgdGhpcmQpOworCQlyZXR1cm4gc3lzX3NobWdldChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7CiAJY2FzZSBTSE1DVEw6Ci0JCXJldHVybiBzeXNfc2htY3RsIChmaXJzdCwgc2Vjb25kLAorCQlyZXR1cm4gc3lzX3NobWN0bChmaXJzdCwgc2Vjb25kLAogCQkJCSAgIChzdHJ1Y3Qgc2htaWRfZHMgX191c2VyICopIHB0cik7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9TWVM7CkBAIC0xODYsMjggKzE4NiwyOCBAQAogLyoKICAqIE9sZCBjcnVmdAogICovCi1hc21saW5rYWdlIGludCBzeXNfdW5hbWUoc3RydWN0IG9sZF91dHNuYW1lIF9fdXNlciAqIG5hbWUpCithc21saW5rYWdlIGludCBzeXNfdW5hbWUoc3RydWN0IG9sZF91dHNuYW1lIF9fdXNlciAqbmFtZSkKIHsKIAlpbnQgZXJyOwogCWlmICghbmFtZSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJZG93bl9yZWFkKCZ1dHNfc2VtKTsKLQllcnIgPSBjb3B5X3RvX3VzZXIobmFtZSwgdXRzbmFtZSgpLCBzaXplb2YgKCpuYW1lKSk7CisJZXJyID0gY29weV90b191c2VyKG5hbWUsIHV0c25hbWUoKSwgc2l6ZW9mKCpuYW1lKSk7CiAJdXBfcmVhZCgmdXRzX3NlbSk7Ci0JcmV0dXJuIGVycj8tRUZBVUxUOjA7CisJcmV0dXJuIGVycj8gLUVGQVVMVDowOwogfQogCi1hc21saW5rYWdlIGludCBzeXNfb2xkdW5hbWUoc3RydWN0IG9sZG9sZF91dHNuYW1lIF9fdXNlciAqIG5hbWUpCithc21saW5rYWdlIGludCBzeXNfb2xkdW5hbWUoc3RydWN0IG9sZG9sZF91dHNuYW1lIF9fdXNlciAqbmFtZSkKIHsKIAlpbnQgZXJyb3I7CiAKIAlpZiAoIW5hbWUpCiAJCXJldHVybiAtRUZBVUxUOwotCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSxuYW1lLHNpemVvZihzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUpKSkKKwlpZiAoIWFjY2Vzc19vayhWRVJJRllfV1JJVEUsIG5hbWUsIHNpemVvZihzdHJ1Y3Qgb2xkb2xkX3V0c25hbWUpKSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0gIAotICAJZG93bl9yZWFkKCZ1dHNfc2VtKTsKLQkKKworCWRvd25fcmVhZCgmdXRzX3NlbSk7CisKIAllcnJvciA9IF9fY29weV90b191c2VyKCZuYW1lLT5zeXNuYW1lLCAmdXRzbmFtZSgpLT5zeXNuYW1lLAogCQkJICAgICAgIF9fT0xEX1VUU19MRU4pOwogCWVycm9yIHw9IF9fcHV0X3VzZXIoMCwgbmFtZS0+c3lzbmFtZSArIF9fT0xEX1VUU19MRU4pOwpAQCAtMjIzLDkgKzIyMyw5IEBACiAJZXJyb3IgfD0gX19jb3B5X3RvX3VzZXIoJm5hbWUtPm1hY2hpbmUsICZ1dHNuYW1lKCktPm1hY2hpbmUsCiAJCQkJX19PTERfVVRTX0xFTik7CiAJZXJyb3IgfD0gX19wdXRfdXNlcigwLCBuYW1lLT5tYWNoaW5lICsgX19PTERfVVRTX0xFTik7Ci0JCisKIAl1cF9yZWFkKCZ1dHNfc2VtKTsKLQkKKwogCWVycm9yID0gZXJyb3IgPyAtRUZBVUxUIDogMDsKIAogCXJldHVybiBlcnJvcjsKQEAgLTI0MSw2ICsyNDEsNiBAQAogCWxvbmcgX19yZXM7CiAJYXNtIHZvbGF0aWxlICgicHVzaCAlJWVieCA7IG1vdmwgJTIsJSVlYnggOyBpbnQgJDB4ODAgOyBwb3AgJSVlYngiCiAJOiAiPWEiIChfX3JlcykKLQk6ICIwIiAoX19OUl9leGVjdmUpLCJyaSIgKGZpbGVuYW1lKSwiYyIgKGFyZ3YpLCAiZCIgKGVudnApIDogIm1lbW9yeSIpOworCTogIjAiIChfX05SX2V4ZWN2ZSksICJyaSIgKGZpbGVuYW1lKSwgImMiIChhcmd2KSwgImQiIChlbnZwKSA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gX19yZXM7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV8zMi5jIGIvYXJjaC94ODYva2VybmVsL3RpbWVfMzIuYwppbmRleCAyZmYyMWYzLi4wNTljYTZlIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV8zMi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90aW1lXzMyLmMKQEAgLTM5LDkgKzM5LDYgQEAKIAogI2luY2x1ZGUgImRvX3RpbWVyLmgiCiAKLXVuc2lnbmVkIGludCBjcHVfa2h6OwkvKiBEZXRlY3RlZCBhcyB3ZSBjYWxpYnJhdGUgdGhlIFRTQyAqLwotRVhQT1JUX1NZTUJPTChjcHVfa2h6KTsKLQogaW50IHRpbWVyX2FjazsKIAogdW5zaWduZWQgbG9uZyBwcm9maWxlX3BjKHN0cnVjdCBwdF9yZWdzICpyZWdzKQpAQCAtODQsOCArODEsNyBAQAogCWlmICh0aW1lcl9hY2spIHsKIAkJLyoKIAkJICogU3VidGxlLCB3aGVuIEkvTyBBUElDcyBhcmUgdXNlZCB3ZSBoYXZlIHRvIGFjayB0aW1lciBJUlEKLQkJICogbWFudWFsbHkgdG8gcmVzZXQgdGhlIElSUiBiaXQgZm9yIGRvX3Nsb3dfZ2V0dGltZW9mZnNldCgpLgotCQkgKiBUaGlzIHdpbGwgYWxzbyBkZWFzc2VydCBOTUkgbGluZXMgZm9yIHRoZSB3YXRjaGRvZyBpZiBydW4KKwkJICogbWFudWFsbHkgdG8gZGVhc3NlcnQgTk1JIGxpbmVzIGZvciB0aGUgd2F0Y2hkb2cgaWYgcnVuCiAJCSAqIG9uIGFuIDgyNDg5RFgtYmFzZWQgc3lzdGVtLgogCQkgKi8KIAkJc3Bpbl9sb2NrKCZpODI1OUFfbG9jayk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV82NC5jIGIvYXJjaC94ODYva2VybmVsL3RpbWVfNjQuYwppbmRleCBjNzM3ODQ5Li5lM2Q0OWM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdGltZV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90aW1lXzY0LmMKQEAgLTU2LDcgKzU2LDcgQEAKIC8qIGNhbGlicmF0ZV9jcHUgaXMgdXNlZCBvbiBzeXN0ZW1zIHdpdGggZml4ZWQgcmF0ZSBUU0NzIHRvIGRldGVybWluZQogICogcHJvY2Vzc29yIGZyZXF1ZW5jeSAqLwogI2RlZmluZSBUSUNLX0NPVU5UIDEwMDAwMDAwMAotdW5zaWduZWQgbG9uZyBfX2luaXQgbmF0aXZlX2NhbGN1bGF0ZV9jcHVfa2h6KHZvaWQpCit1bnNpZ25lZCBsb25nIF9faW5pdCBjYWxpYnJhdGVfY3B1KHZvaWQpCiB7CiAJaW50IHRzY19zdGFydCwgdHNjX25vdzsKIAlpbnQgaSwgbm9fY3RyX2ZyZWU7CkBAIC0xMTYsMjMgKzExNiwxMSBAQAogCiB2b2lkIF9faW5pdCB0aW1lX2luaXQodm9pZCkKIHsKLQl0c2NfY2FsaWJyYXRlKCk7Ci0KLQljcHVfa2h6ID0gdHNjX2toejsKLQlpZiAoY3B1X2hhcygmYm9vdF9jcHVfZGF0YSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSAmJgotCQkoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSkKLQkJY3B1X2toeiA9IGNhbGN1bGF0ZV9jcHVfa2h6KCk7Ci0KLQlpZiAodW5zeW5jaHJvbml6ZWRfdHNjKCkpCi0JCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0NzIHVuc3luY2hyb25pemVkIik7Ci0KKwl0c2NfaW5pdCgpOwogCWlmIChjcHVfaGFzKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9SRFRTQ1ApKQogCQl2Z2V0Y3B1X21vZGUgPSBWR0VUQ1BVX1JEVFNDUDsKIAllbHNlCiAJCXZnZXRjcHVfbW9kZSA9IFZHRVRDUFVfTFNMOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAidGltZS5jOiBEZXRlY3RlZCAlZC4lMDNkIE1IeiBwcm9jZXNzb3IuXG4iLAotCQljcHVfa2h6IC8gMTAwMCwgY3B1X2toeiAlIDEwMDApOwotCWluaXRfdHNjX2Nsb2Nrc291cmNlKCk7CiAJbGF0ZV90aW1lX2luaXQgPSBjaG9vc2VfdGltZV9pbml0KCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdGxiXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdGxiXzY0LmMKaW5kZXggYTFmMDdkNy4uNTAzOWQwZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3RsYl82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90bGJfNjQuYwpAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPGFzbS9wcm90by5oPgogI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CiAjaW5jbHVkZSA8YXNtL2lkbGUuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfaHViLmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X2JhdS5oPgogCiAjaW5jbHVkZSA8bWFjaF9pcGkuaD4KIC8qCkBAIC0xNjIsNiArMTY0LDkgQEAKIAl1bmlvbiBzbXBfZmx1c2hfc3RhdGUgKmY7CiAJY3B1bWFza190IGNwdW1hc2sgPSAqY3B1bWFza3A7CiAKKwlpZiAoaXNfdXZfc3lzdGVtKCkgJiYgdXZfZmx1c2hfdGxiX290aGVycygmY3B1bWFzaywgbW0sIHZhKSkKKwkJcmV0dXJuOworCiAJLyogQ2FsbGVyIGhhcyBkaXNhYmxlZCBwcmVlbXB0aW9uICovCiAJc2VuZGVyID0gc21wX3Byb2Nlc3Nvcl9pZCgpICUgTlVNX0lOVkFMSURBVEVfVExCX1ZFQ1RPUlM7CiAJZiA9ICZwZXJfY3B1KGZsdXNoX3N0YXRlLCBzZW5kZXIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RsYl91di5jIGIvYXJjaC94ODYva2VybmVsL3RsYl91di5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZmJiNzcKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9rZXJuZWwvdGxiX3V2LmMKQEAgLTAsMCArMSw3OTIgQEAKKy8qCisgKglTR0kgVWx0cmFWaW9sZXQgVExCIGZsdXNoIHJvdXRpbmVzLgorICoKKyAqCShjKSAyMDA4IENsaWZmIFdpY2ttYW4gPGNwd0BzZ2kuY29tPiwgU0dJLgorICoKKyAqCVRoaXMgY29kZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIG9yCisgKglsYXRlci4KKyAqLworI2luY2x1ZGUgPGxpbnV4L21jMTQ2ODE4cnRjLmg+CisjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorCisjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X21tcnMuaD4KKyNpbmNsdWRlIDxhc20vdXYvdXZfaHViLmg+CisjaW5jbHVkZSA8YXNtL3V2L3V2X2JhdS5oPgorI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CisjaW5jbHVkZSA8YXNtL2lkbGUuaD4KKyNpbmNsdWRlIDxhc20vdHNjLmg+CisKKyNpbmNsdWRlIDxtYWNoX2FwaWMuaD4KKworc3RhdGljIHN0cnVjdCBiYXVfY29udHJvbAkqKnV2X2JhdV90YWJsZV9iYXNlcyBfX3JlYWRfbW9zdGx5Oworc3RhdGljIGludAkJCXV2X2JhdV9yZXRyeV9saW1pdCBfX3JlYWRfbW9zdGx5OworCisvKiBwb3NpdGlvbiBvZiBwbm9kZSAod2hpY2ggaXMgbmFzaWQ+PjEpOiAqLworc3RhdGljIGludAkJCXV2X25zaGlmdCBfX3JlYWRfbW9zdGx5OworCitzdGF0aWMgdW5zaWduZWQgbG9uZwkJdXZfbW1hc2sgX19yZWFkX21vc3RseTsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBwdGNfc3RhdHMsIHB0Y3N0YXRzKTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgYmF1X2NvbnRyb2wsIGJhdV9jb250cm9sKTsKKworLyoKKyAqIEZyZWUgYSBzb2Z0d2FyZSBhY2tub3dsZWRnZSBoYXJkd2FyZSByZXNvdXJjZSBieSBjbGVhcmluZyBpdHMgUGVuZGluZworICogYml0LiBUaGlzIHdpbGwgcmV0dXJuIGEgcmVwbHkgdG8gdGhlIHNlbmRlci4KKyAqIElmIHRoZSBtZXNzYWdlIGhhcyB0aW1lZCBvdXQsIGEgcmVwbHkgaGFzIGFscmVhZHkgYmVlbiBzZW50IGJ5IHRoZQorICogaGFyZHdhcmUgYnV0IHRoZSByZXNvdXJjZSBoYXMgbm90IGJlZW4gcmVsZWFzZWQuIEluIHRoYXQgY2FzZSBvdXIKKyAqIGNsZWFyIG9mIHRoZSBUaW1lb3V0IGJpdCAoYXMgd2VsbCkgd2lsbCBmcmVlIHRoZSByZXNvdXJjZS4gTm8gcmVwbHkgd2lsbAorICogYmUgc2VudCAodGhlIGhhcmR3YXJlIHdpbGwgb25seSBkbyBvbmUgcmVwbHkgcGVyIG1lc3NhZ2UpLgorICovCitzdGF0aWMgdm9pZCB1dl9yZXBseV90b19tZXNzYWdlKGludCByZXNvdXJjZSwKKwkJCQlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZywKKwkJCQlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zcCkKK3sKKwl1bnNpZ25lZCBsb25nIGR3OworCisJZHcgPSAoMSA8PCAocmVzb3VyY2UgKyBVVl9TV19BQ0tfTlBFTkRJTkcpKSB8ICgxIDw8IHJlc291cmNlKTsKKwltc2ctPnJlcGxpZWRfdG8gPSAxOworCW1zZy0+c3dfYWNrX3ZlY3RvciA9IDA7CisJaWYgKG1zcCkKKwkJbXNwLT5zZWVuX2J5LmJpdHMgPSAwOworCXV2X3dyaXRlX2xvY2FsX21tcihVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVMsIGR3KTsKK30KKworLyoKKyAqIERvIGFsbCB0aGUgdGhpbmdzIGEgY3B1IHNob3VsZCBkbyBmb3IgYSBUTEIgc2hvb3Rkb3duIG1lc3NhZ2UuCisgKiBPdGhlciBjcHUncyBtYXkgY29tZSBoZXJlIGF0IHRoZSBzYW1lIHRpbWUgZm9yIHRoaXMgbWVzc2FnZS4KKyAqLworc3RhdGljIHZvaWQgdXZfYmF1X3Byb2Nlc3NfbWVzc2FnZShzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKm1zZywKKwkJCQkgICBpbnQgbXNnX3Nsb3QsIGludCBzd19hY2tfc2xvdCkKK3sKKwl1bnNpZ25lZCBsb25nIHRoaXNfY3B1X21hc2s7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJaW50IGNwdTsKKworCW1zcCA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLm1zZ19zdGF0dXNlcyArIG1zZ19zbG90OworCWNwdSA9IHV2X2JsYWRlX3Byb2Nlc3Nvcl9pZCgpOworCW1zZy0+bnVtYmVyX29mX2NwdXMgPQorCSAgICB1dl9ibGFkZV9ucl9vbmxpbmVfY3B1cyh1dl9ub2RlX3RvX2JsYWRlX2lkKG51bWFfbm9kZV9pZCgpKSk7CisJdGhpc19jcHVfbWFzayA9IDFVTCA8PCBjcHU7CisJaWYgKG1zcC0+c2Vlbl9ieS5iaXRzICYgdGhpc19jcHVfbWFzaykKKwkJcmV0dXJuOworCWF0b21pY19vcl9sb25nKCZtc3AtPnNlZW5fYnkuYml0cywgdGhpc19jcHVfbWFzayk7CisKKwlpZiAobXNnLT5yZXBsaWVkX3RvID09IDEpCisJCXJldHVybjsKKworCWlmIChtc2ctPmFkZHJlc3MgPT0gVExCX0ZMVVNIX0FMTCkgeworCQlsb2NhbF9mbHVzaF90bGIoKTsKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuYWxsdGxiKys7CisJfSBlbHNlIHsKKwkJX19mbHVzaF90bGJfb25lKG1zZy0+YWRkcmVzcyk7CisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLm9uZXRsYisrOworCX0KKworCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLnJlcXVlc3RlZSsrOworCisJYXRvbWljX2luY19zaG9ydCgmbXNnLT5hY2tub3dsZWRnZV9jb3VudCk7CisJaWYgKG1zZy0+bnVtYmVyX29mX2NwdXMgPT0gbXNnLT5hY2tub3dsZWRnZV9jb3VudCkKKwkJdXZfcmVwbHlfdG9fbWVzc2FnZShzd19hY2tfc2xvdCwgbXNnLCBtc3ApOworfQorCisvKgorICogRXhhbWluZSB0aGUgcGF5bG9hZCBxdWV1ZSBvbiBvbmUgZGlzdHJpYnV0aW9uIG5vZGUgdG8gc2VlCisgKiB3aGljaCBtZXNzYWdlcyBoYXZlIG5vdCBiZWVuIHNlZW4sIGFuZCB3aGljaCBjcHUocykgaGF2ZSBub3Qgc2VlbiB0aGVtLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjcHUncyB0aGF0IGhhdmUgbm90IHJlc3BvbmRlZC4KKyAqLworc3RhdGljIGludCB1dl9leGFtaW5lX2Rlc3RpbmF0aW9uKHN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3AsIGludCBzZW5kZXIpCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICptc2c7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJaW50IGNvdW50ID0gMDsKKwlpbnQgaTsKKwlpbnQgajsKKworCWZvciAobXNnID0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0LCBpID0gMDsgaSA8IERFU1RfUV9TSVpFOworCSAgICAgbXNnKyssIGkrKykgeworCQlpZiAoKG1zZy0+c2VuZGluZ19jcHUgPT0gc2VuZGVyKSAmJiAoIW1zZy0+cmVwbGllZF90bykpIHsKKwkJCW1zcCA9IGJhdV90YWJsZXNwLT5tc2dfc3RhdHVzZXMgKyBpOworCQkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCSAgICAgICAiYmxhZGUgJWQ6IGFkZHJlc3M6JSNseCAlZCBvZiAlZCwgbm90IGNwdShzKTogIiwKKwkJCSAgICAgICBpLCBtc2ctPmFkZHJlc3MsIG1zZy0+YWNrbm93bGVkZ2VfY291bnQsCisJCQkgICAgICAgbXNnLT5udW1iZXJfb2ZfY3B1cyk7CisJCQlmb3IgKGogPSAwOyBqIDwgbXNnLT5udW1iZXJfb2ZfY3B1czsgaisrKSB7CisJCQkJaWYgKCEoKDFMIDw8IGopICYgbXNwLT5zZWVuX2J5LmJpdHMpKSB7CisJCQkJCWNvdW50Kys7CisJCQkJCXByaW50aygiJWQgIiwgaik7CisJCQkJfQorCQkJfQorCQkJcHJpbnRrKCJcbiIpOworCQl9CisJfQorCXJldHVybiBjb3VudDsKK30KKworLyoKKyAqIEV4YW1pbmUgdGhlIHBheWxvYWQgcXVldWUgb24gYWxsIHRoZSBkaXN0cmlidXRpb24gbm9kZXMgdG8gc2VlCisgKiB3aGljaCBtZXNzYWdlcyBoYXZlIG5vdCBiZWVuIHNlZW4sIGFuZCB3aGljaCBjcHUocykgaGF2ZSBub3Qgc2VlbiB0aGVtLgorICoKKyAqIFJldHVybnMgdGhlIG51bWJlciBvZiBjcHUncyB0aGF0IGhhdmUgbm90IHJlc3BvbmRlZC4KKyAqLworc3RhdGljIGludCB1dl9leGFtaW5lX2Rlc3RpbmF0aW9ucyhzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZGlzdHJpYnV0aW9uKQoreworCWludCBzZW5kZXI7CisJaW50IGk7CisJaW50IGNvdW50ID0gMDsKKworCXNlbmRlciA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrKSAqIEJJVFNQRVJCWVRFOyBpKyspIHsKKwkJaWYgKCFiYXVfbm9kZV9pc3NldChpLCBkaXN0cmlidXRpb24pKQorCQkJY29udGludWU7CisJCWNvdW50ICs9IHV2X2V4YW1pbmVfZGVzdGluYXRpb24odXZfYmF1X3RhYmxlX2Jhc2VzW2ldLCBzZW5kZXIpOworCX0KKwlyZXR1cm4gY291bnQ7Cit9CisKKy8qCisgKiB3YWl0IGZvciBjb21wbGV0aW9uIG9mIGEgYnJvYWRjYXN0IG1lc3NhZ2UKKyAqCisgKiByZXR1cm4gQ09NUExFVEUsIFJFVFJZIG9yIEdJVkVVUAorICovCitzdGF0aWMgaW50IHV2X3dhaXRfY29tcGxldGlvbihzdHJ1Y3QgYmF1X2Rlc2MgKmJhdV9kZXNjLAorCQkJICAgICAgdW5zaWduZWQgbG9uZyBtbXJfb2Zmc2V0LCBpbnQgcmlnaHRfc2hpZnQpCit7CisJaW50IGV4YW1zID0gMDsKKwlsb25nIGRlc3RpbmF0aW9uX3RpbWVvdXRzID0gMDsKKwlsb25nIHNvdXJjZV90aW1lb3V0cyA9IDA7CisJdW5zaWduZWQgbG9uZyBkZXNjcmlwdG9yX3N0YXR1czsKKworCXdoaWxlICgoZGVzY3JpcHRvcl9zdGF0dXMgPSAoKCh1bnNpZ25lZCBsb25nKQorCQl1dl9yZWFkX2xvY2FsX21tcihtbXJfb2Zmc2V0KSA+PgorCQkJcmlnaHRfc2hpZnQpICYgVVZfQUNUX1NUQVRVU19NQVNLKSkgIT0KKwkJCURFU0NfU1RBVFVTX0lETEUpIHsKKwkJaWYgKGRlc2NyaXB0b3Jfc3RhdHVzID09IERFU0NfU1RBVFVTX1NPVVJDRV9USU1FT1VUKSB7CisJCQlzb3VyY2VfdGltZW91dHMrKzsKKwkJCWlmIChzb3VyY2VfdGltZW91dHMgPiBTT1VSQ0VfVElNRU9VVF9MSU1JVCkKKwkJCQlzb3VyY2VfdGltZW91dHMgPSAwOworCQkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuc19yZXRyeSsrOworCQkJcmV0dXJuIEZMVVNIX1JFVFJZOworCQl9CisJCS8qCisJCSAqIHNwaW4gaGVyZSBsb29raW5nIGZvciBwcm9ncmVzcyBhdCB0aGUgZGVzdGluYXRpb25zCisJCSAqLworCQlpZiAoZGVzY3JpcHRvcl9zdGF0dXMgPT0gREVTQ19TVEFUVVNfREVTVElOQVRJT05fVElNRU9VVCkgeworCQkJZGVzdGluYXRpb25fdGltZW91dHMrKzsKKwkJCWlmIChkZXN0aW5hdGlvbl90aW1lb3V0cyA+IERFU1RJTkFUSU9OX1RJTUVPVVRfTElNSVQpIHsKKwkJCQkvKgorCQkJCSAqIHJldHVybnMgbnVtYmVyIG9mIGNwdXMgbm90IHJlc3BvbmRpbmcKKwkJCQkgKi8KKwkJCQlpZiAodXZfZXhhbWluZV9kZXN0aW5hdGlvbnMKKwkJCQkgICAgKCZiYXVfZGVzYy0+ZGlzdHJpYnV0aW9uKSA9PSAwKSB7CisJCQkJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLmRfcmV0cnkrKzsKKwkJCQkJcmV0dXJuIEZMVVNIX1JFVFJZOworCQkJCX0KKwkJCQlleGFtcysrOworCQkJCWlmIChleGFtcyA+PSB1dl9iYXVfcmV0cnlfbGltaXQpIHsKKwkJCQkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCQkJICAgICAgICJ1dl9mbHVzaF90bGJfb3RoZXJzIik7CisJCQkJCXByaW50aygiZ2l2aW5nIHVwIG9uIGNwdSAlZFxuIiwKKwkJCQkJICAgICAgIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJCQkJCXJldHVybiBGTFVTSF9HSVZFVVA7CisJCQkJfQorCQkJCS8qCisJCQkJICogZGVsYXlzIGNhbiBoYW5nIHRoZSBzaW11bGF0b3IKKwkJCQkgICB1ZGVsYXkoMTAwMCk7CisJCQkJICovCisJCQkJZGVzdGluYXRpb25fdGltZW91dHMgPSAwOworCQkJfQorCQl9CisJfQorCXJldHVybiBGTFVTSF9DT01QTEVURTsKK30KKworLyoqCisgKiB1dl9mbHVzaF9zZW5kX2FuZF93YWl0CisgKgorICogU2VuZCBhIGJyb2FkY2FzdCBhbmQgd2FpdCBmb3IgYSBicm9hZGNhc3QgbWVzc2FnZSB0byBjb21wbGV0ZS4KKyAqCisgKiBUaGUgY3B1bWFza3AgbWFzayBjb250YWlucyB0aGUgY3B1cyB0aGUgYnJvYWRjYXN0IHdhcyBzZW50IHRvLgorICoKKyAqIFJldHVybnMgMSBpZiBhbGwgcmVtb3RlIGZsdXNoaW5nIHdhcyBkb25lLiBUaGUgbWFzayBpcyB6ZXJvZWQuCisgKiBSZXR1cm5zIDAgaWYgc29tZSByZW1vdGUgZmx1c2hpbmcgcmVtYWlucyB0byBiZSBkb25lLiBUaGUgbWFzayBpcyBsZWZ0CisgKiB1bmNoYW5nZWQuCisgKi8KK2ludCB1dl9mbHVzaF9zZW5kX2FuZF93YWl0KGludCBjcHUsIGludCB0aGlzX2JsYWRlLCBzdHJ1Y3QgYmF1X2Rlc2MgKmJhdV9kZXNjLAorCQkJICAgY3B1bWFza190ICpjcHVtYXNrcCkKK3sKKwlpbnQgY29tcGxldGlvbl9zdGF0dXMgPSAwOworCWludCByaWdodF9zaGlmdDsKKwlpbnQgdHJpZXMgPSAwOworCWludCBibGFkZTsKKwlpbnQgYml0OworCXVuc2lnbmVkIGxvbmcgbW1yX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIGluZGV4OworCWN5Y2xlc190IHRpbWUxOworCWN5Y2xlc190IHRpbWUyOworCisJaWYgKGNwdSA8IFVWX0NQVVNfUEVSX0FDVF9TVEFUVVMpIHsKKwkJbW1yX29mZnNldCA9IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMDsKKwkJcmlnaHRfc2hpZnQgPSBjcHUgKiBVVl9BQ1RfU1RBVFVTX1NJWkU7CisJfSBlbHNlIHsKKwkJbW1yX29mZnNldCA9IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMTsKKwkJcmlnaHRfc2hpZnQgPQorCQkgICAgKChjcHUgLSBVVl9DUFVTX1BFUl9BQ1RfU1RBVFVTKSAqIFVWX0FDVF9TVEFUVVNfU0laRSk7CisJfQorCXRpbWUxID0gZ2V0X2N5Y2xlcygpOworCWRvIHsKKwkJdHJpZXMrKzsKKwkJaW5kZXggPSAoMVVMIDw8IFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MX1BVU0hfU0hGVCkgfAorCQkJY3B1OworCQl1dl93cml0ZV9sb2NhbF9tbXIoVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0wsIGluZGV4KTsKKwkJY29tcGxldGlvbl9zdGF0dXMgPSB1dl93YWl0X2NvbXBsZXRpb24oYmF1X2Rlc2MsIG1tcl9vZmZzZXQsCisJCQkJCXJpZ2h0X3NoaWZ0KTsKKwl9IHdoaWxlIChjb21wbGV0aW9uX3N0YXR1cyA9PSBGTFVTSF9SRVRSWSk7CisJdGltZTIgPSBnZXRfY3ljbGVzKCk7CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykuc2ZsdXNoICs9ICh0aW1lMiAtIHRpbWUxKTsKKwlpZiAodHJpZXMgPiAxKQorCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5yZXRyaWVzb2srKzsKKworCWlmIChjb21wbGV0aW9uX3N0YXR1cyA9PSBGTFVTSF9HSVZFVVApIHsKKwkJLyoKKwkJICogQ2F1c2UgdGhlIGNhbGxlciB0byBkbyBhbiBJUEktc3R5bGUgVExCIHNob290ZG93biBvbgorCQkgKiB0aGUgY3B1J3MsIGFsbCBvZiB3aGljaCBhcmUgc3RpbGwgaW4gdGhlIG1hc2suCisJCSAqLworCQlfX2dldF9jcHVfdmFyKHB0Y3N0YXRzKS5wdGNfaSsrOworCQlyZXR1cm4gMDsKKwl9CisKKwkvKgorCSAqIFN1Y2Nlc3MsIHNvIGNsZWFyIHRoZSByZW1vdGUgY3B1J3MgZnJvbSB0aGUgbWFzayBzbyB3ZSBkb24ndAorCSAqIHVzZSB0aGUgSVBJIG1ldGhvZCBvZiBzaG9vdGRvd24gb24gdGhlbS4KKwkgKi8KKwlmb3JfZWFjaF9jcHVfbWFzayhiaXQsICpjcHVtYXNrcCkgeworCQlibGFkZSA9IHV2X2NwdV90b19ibGFkZV9pZChiaXQpOworCQlpZiAoYmxhZGUgPT0gdGhpc19ibGFkZSkKKwkJCWNvbnRpbnVlOworCQljcHVfY2xlYXIoYml0LCAqY3B1bWFza3ApOworCX0KKwlpZiAoIWNwdXNfZW1wdHkoKmNwdW1hc2twKSkKKwkJcmV0dXJuIDA7CisJcmV0dXJuIDE7Cit9CisKKy8qKgorICogdXZfZmx1c2hfdGxiX290aGVycyAtIGdsb2JhbGx5IHB1cmdlIHRyYW5zbGF0aW9uIGNhY2hlIG9mIGEgdmlydHVhbAorICogYWRkcmVzcyBvciBhbGwgVExCJ3MKKyAqIEBjcHVtYXNrcDogbWFzayBvZiBhbGwgY3B1J3MgaW4gd2hpY2ggdGhlIGFkZHJlc3MgaXMgdG8gYmUgcmVtb3ZlZAorICogQG1tOiBtbV9zdHJ1Y3QgY29udGFpbmluZyB2aXJ0dWFsIGFkZHJlc3MgcmFuZ2UKKyAqIEB2YTogdmlydHVhbCBhZGRyZXNzIHRvIGJlIHJlbW92ZWQgKG9yIFRMQl9GTFVTSF9BTEwgZm9yIGFsbCBUTEIncyBvbiBjcHUpCisgKgorICogVGhpcyBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIGluaXRpYXRpbmcgYW55IFVWIGdsb2JhbCBUTEIgc2hvb3Rkb3duLgorICoKKyAqIFB1cmdlcyB0aGUgdHJhbnNsYXRpb24gY2FjaGVzIG9mIGFsbCBzcGVjaWZpZWQgcHJvY2Vzc29ycyBvZiB0aGUgZ2l2ZW4KKyAqIHZpcnR1YWwgYWRkcmVzcywgb3IgcHVyZ2VzIGFsbCBUTEIncyBvbiBzcGVjaWZpZWQgcHJvY2Vzc29ycy4KKyAqCisgKiBUaGUgY2FsbGVyIGhhcyBkZXJpdmVkIHRoZSBjcHVtYXNrcCBmcm9tIHRoZSBtbV9zdHJ1Y3QgYW5kIGhhcyBzdWJ0cmFjdGVkCisgKiB0aGUgbG9jYWwgY3B1IGZyb20gdGhlIG1hc2suICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbmx5IGlmIHRoZXJlCisgKiBhcmUgYml0cyBzZXQgaW4gdGhlIG1hc2suIChlLmcuIGZsdXNoX3RsYl9wYWdlKCkpCisgKgorICogVGhlIGNwdW1hc2twIGlzIGNvbnZlcnRlZCBpbnRvIGEgbm9kZW1hc2sgb2YgdGhlIG5vZGVzIGNvbnRhaW5pbmcKKyAqIHRoZSBjcHVzLgorICoKKyAqIFJldHVybnMgMSBpZiBhbGwgcmVtb3RlIGZsdXNoaW5nIHdhcyBkb25lLgorICogUmV0dXJucyAwIGlmIHNvbWUgcmVtb3RlIGZsdXNoaW5nIHJlbWFpbnMgdG8gYmUgZG9uZS4KKyAqLworaW50IHV2X2ZsdXNoX3RsYl9vdGhlcnMoY3B1bWFza190ICpjcHVtYXNrcCwgc3RydWN0IG1tX3N0cnVjdCAqbW0sCisJCQl1bnNpZ25lZCBsb25nIHZhKQoreworCWludCBpOworCWludCBiaXQ7CisJaW50IGJsYWRlOworCWludCBjcHU7CisJaW50IHRoaXNfYmxhZGU7CisJaW50IGxvY2FscyA9IDA7CisJc3RydWN0IGJhdV9kZXNjICpiYXVfZGVzYzsKKworCWNwdSA9IHV2X2JsYWRlX3Byb2Nlc3Nvcl9pZCgpOworCXRoaXNfYmxhZGUgPSB1dl9udW1hX2JsYWRlX2lkKCk7CisJYmF1X2Rlc2MgPSBfX2dldF9jcHVfdmFyKGJhdV9jb250cm9sKS5kZXNjcmlwdG9yX2Jhc2U7CisJYmF1X2Rlc2MgKz0gVVZfSVRFTVNfUEVSX0RFU0NSSVBUT1IgKiBjcHU7CisKKwliYXVfbm9kZXNfY2xlYXIoJmJhdV9kZXNjLT5kaXN0cmlidXRpb24sIFVWX0RJU1RSSUJVVElPTl9TSVpFKTsKKworCWkgPSAwOworCWZvcl9lYWNoX2NwdV9tYXNrKGJpdCwgKmNwdW1hc2twKSB7CisJCWJsYWRlID0gdXZfY3B1X3RvX2JsYWRlX2lkKGJpdCk7CisJCUJVR19PTihibGFkZSA+IChVVl9ESVNUUklCVVRJT05fU0laRSAtIDEpKTsKKwkJaWYgKGJsYWRlID09IHRoaXNfYmxhZGUpIHsKKwkJCWxvY2FscysrOworCQkJY29udGludWU7CisJCX0KKwkJYmF1X25vZGVfc2V0KGJsYWRlLCAmYmF1X2Rlc2MtPmRpc3RyaWJ1dGlvbik7CisJCWkrKzsKKwl9CisJaWYgKGkgPT0gMCkgeworCQkvKgorCQkgKiBubyBvZmZfbm9kZSBmbHVzaGluZzsgcmV0dXJuIHN0YXR1cyBmb3IgbG9jYWwgbm9kZQorCQkgKi8KKwkJaWYgKGxvY2FscykKKwkJCXJldHVybiAwOworCQllbHNlCisJCQlyZXR1cm4gMTsKKwl9CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykucmVxdWVzdG9yKys7CisJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykubnRhcmdldGVkICs9IGk7CisKKwliYXVfZGVzYy0+cGF5bG9hZC5hZGRyZXNzID0gdmE7CisJYmF1X2Rlc2MtPnBheWxvYWQuc2VuZGluZ19jcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisKKwlyZXR1cm4gdXZfZmx1c2hfc2VuZF9hbmRfd2FpdChjcHUsIHRoaXNfYmxhZGUsIGJhdV9kZXNjLCBjcHVtYXNrcCk7Cit9CisKKy8qCisgKiBUaGUgQkFVIG1lc3NhZ2UgaW50ZXJydXB0IGNvbWVzIGhlcmUuIChyZWdpc3RlcmVkIGJ5IHNldF9pbnRyX2dhdGUpCisgKiBTZWUgZW50cnlfNjQuUworICoKKyAqIFdlIHJlY2VpdmVkIGEgYnJvYWRjYXN0IGFzc2lzdCBtZXNzYWdlLgorICoKKyAqIEludGVycnVwdHMgbWF5IGhhdmUgYmVlbiBkaXNhYmxlZDsgdGhpcyBpbnRlcnJ1cHQgY291bGQgcmVwcmVzZW50CisgKiB0aGUgcmVjZWlwdCBvZiBzZXZlcmFsIG1lc3NhZ2VzLgorICoKKyAqIEFsbCBjb3Jlcy90aHJlYWRzIG9uIHRoaXMgbm9kZSBnZXQgdGhpcyBpbnRlcnJ1cHQuCisgKiBUaGUgbGFzdCBvbmUgdG8gc2VlIGl0IGRvZXMgdGhlIHMvdyBhY2suCisgKiAodGhlIHJlc291cmNlIHdpbGwgbm90IGJlIGZyZWVkIHVudGlsIG5vbmludGVycnVwdGFibGUgY3B1cyBzZWUgdGhpcworICogIGludGVycnVwdDsgaGFyZHdhcmUgd2lsbCB0aW1lb3V0IHRoZSBzL3cgYWNrIGFuZCByZXBseSBFUlJPUikKKyAqLwordm9pZCB1dl9iYXVfbWVzc2FnZV9pbnRlcnJ1cHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICp2YV9xdWV1ZV9maXJzdDsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKnZhX3F1ZXVlX2xhc3Q7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICptc2c7CisJc3RydWN0IHB0X3JlZ3MgKm9sZF9yZWdzID0gc2V0X2lycV9yZWdzKHJlZ3MpOworCWN5Y2xlc190IHRpbWUxOworCWN5Y2xlc190IHRpbWUyOworCWludCBtc2dfc2xvdDsKKwlpbnQgc3dfYWNrX3Nsb3Q7CisJaW50IGZ3OworCWludCBjb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyBsb2NhbF9wbm9kZTsKKworCWFja19BUElDX2lycSgpOworCWV4aXRfaWRsZSgpOworCWlycV9lbnRlcigpOworCisJdGltZTEgPSBnZXRfY3ljbGVzKCk7CisKKwlsb2NhbF9wbm9kZSA9IHV2X2JsYWRlX3RvX3Bub2RlKHV2X251bWFfYmxhZGVfaWQoKSk7CisKKwl2YV9xdWV1ZV9maXJzdCA9IF9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLnZhX3F1ZXVlX2ZpcnN0OworCXZhX3F1ZXVlX2xhc3QgPSBfX2dldF9jcHVfdmFyKGJhdV9jb250cm9sKS52YV9xdWV1ZV9sYXN0OworCisJbXNnID0gX19nZXRfY3B1X3ZhcihiYXVfY29udHJvbCkuYmF1X21zZ19oZWFkOworCXdoaWxlIChtc2ctPnN3X2Fja192ZWN0b3IpIHsKKwkJY291bnQrKzsKKwkJZncgPSBtc2ctPnN3X2Fja192ZWN0b3I7CisJCW1zZ19zbG90ID0gbXNnIC0gdmFfcXVldWVfZmlyc3Q7CisJCXN3X2Fja19zbG90ID0gZmZzKGZ3KSAtIDE7CisKKwkJdXZfYmF1X3Byb2Nlc3NfbWVzc2FnZShtc2csIG1zZ19zbG90LCBzd19hY2tfc2xvdCk7CisKKwkJbXNnKys7CisJCWlmIChtc2cgPiB2YV9xdWV1ZV9sYXN0KQorCQkJbXNnID0gdmFfcXVldWVfZmlyc3Q7CisJCV9fZ2V0X2NwdV92YXIoYmF1X2NvbnRyb2wpLmJhdV9tc2dfaGVhZCA9IG1zZzsKKwl9CisJaWYgKCFjb3VudCkKKwkJX19nZXRfY3B1X3ZhcihwdGNzdGF0cykubm9tc2crKzsKKwllbHNlIGlmIChjb3VudCA+IDEpCisJCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLm11bHRtc2crKzsKKworCXRpbWUyID0gZ2V0X2N5Y2xlcygpOworCV9fZ2V0X2NwdV92YXIocHRjc3RhdHMpLmRmbHVzaCArPSAodGltZTIgLSB0aW1lMSk7CisKKwlpcnFfZXhpdCgpOworCXNldF9pcnFfcmVncyhvbGRfcmVncyk7Cit9CisKK3N0YXRpYyB2b2lkIHV2X2VuYWJsZV90aW1lb3V0cyh2b2lkKQoreworCWludCBpOworCWludCBibGFkZTsKKwlpbnQgbGFzdF9ibGFkZTsKKwlpbnQgcG5vZGU7CisJaW50IGN1cl9jcHUgPSAwOworCXVuc2lnbmVkIGxvbmcgYXBpY2lkOworCisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKGkpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKGkpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCWFwaWNpZCA9IHBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGN1cl9jcHUpOworCQlwbm9kZSA9IHV2X2JsYWRlX3RvX3Bub2RlKGJsYWRlKTsKKwkJY3VyX2NwdSArPSB1dl9ibGFkZV9ucl9wb3NzaWJsZV9jcHVzKGkpOworCX0KK30KKworc3RhdGljIHZvaWQgKnV2X3B0Y19zZXFfc3RhcnQoc3RydWN0IHNlcV9maWxlICpmaWxlLCBsb2ZmX3QgKm9mZnNldCkKK3sKKwlpZiAoKm9mZnNldCA8IG51bV9wb3NzaWJsZV9jcHVzKCkpCisJCXJldHVybiBvZmZzZXQ7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkICp1dl9wdGNfc2VxX25leHQoc3RydWN0IHNlcV9maWxlICpmaWxlLCB2b2lkICpkYXRhLCBsb2ZmX3QgKm9mZnNldCkKK3sKKwkoKm9mZnNldCkrKzsKKwlpZiAoKm9mZnNldCA8IG51bV9wb3NzaWJsZV9jcHVzKCkpCisJCXJldHVybiBvZmZzZXQ7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHV2X3B0Y19zZXFfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKmZpbGUsIHZvaWQgKmRhdGEpCit7Cit9CisKKy8qCisgKiBEaXNwbGF5IHRoZSBzdGF0aXN0aWNzIHRocnUgL3Byb2MKKyAqIGRhdGEgcG9pbnRzIHRvIHRoZSBjcHUgbnVtYmVyCisgKi8KK3N0YXRpYyBpbnQgdXZfcHRjX3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgcHRjX3N0YXRzICpzdGF0OworCWludCBjcHU7CisKKwljcHUgPSAqKGxvZmZfdCAqKWRhdGE7CisKKwlpZiAoIWNwdSkgeworCQlzZXFfcHJpbnRmKGZpbGUsCisJCSIjIGNwdSByZXF1ZXN0b3IgcmVxdWVzdGVlIG9uZSBhbGwgc3JldHJ5IGRyZXRyeSBwdGNfaSAiKTsKKwkJc2VxX3ByaW50ZihmaWxlLAorCQkic3dfYWNrIHNmbHVzaCBkZmx1c2ggc29rIGRub21zZyBkbXVsdCBzdGFyZ2V0XG4iKTsKKwl9CisJaWYgKGNwdSA8IG51bV9wb3NzaWJsZV9jcHVzKCkgJiYgY3B1X29ubGluZShjcHUpKSB7CisJCXN0YXQgPSAmcGVyX2NwdShwdGNzdGF0cywgY3B1KTsKKwkJc2VxX3ByaW50ZihmaWxlLCAiY3B1ICVkICVsZCAlbGQgJWxkICVsZCAlbGQgJWxkICVsZCAiLAorCQkJICAgY3B1LCBzdGF0LT5yZXF1ZXN0b3IsCisJCQkgICBzdGF0LT5yZXF1ZXN0ZWUsIHN0YXQtPm9uZXRsYiwgc3RhdC0+YWxsdGxiLAorCQkJICAgc3RhdC0+c19yZXRyeSwgc3RhdC0+ZF9yZXRyeSwgc3RhdC0+cHRjX2kpOworCQlzZXFfcHJpbnRmKGZpbGUsICIlbHggJWxkICVsZCAlbGQgJWxkICVsZCAlbGRcbiIsCisJCQkgICB1dl9yZWFkX2dsb2JhbF9tbXI2NCh1dl9ibGFkZV90b19wbm9kZQorCQkJCQkodXZfY3B1X3RvX2JsYWRlX2lkKGNwdSkpLAorCQkJCQlVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0UpLAorCQkJICAgc3RhdC0+c2ZsdXNoLCBzdGF0LT5kZmx1c2gsCisJCQkgICBzdGF0LT5yZXRyaWVzb2ssIHN0YXQtPm5vbXNnLAorCQkJICAgc3RhdC0+bXVsdG1zZywgc3RhdC0+bnRhcmdldGVkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqICAwOiBkaXNwbGF5IG1lYW5pbmcgb2YgdGhlIHN0YXRpc3RpY3MKKyAqID4wOiByZXRyeSBsaW1pdAorICovCitzdGF0aWMgc3NpemVfdCB1dl9wdGNfcHJvY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKnVzZXIsCisJCQkJIHNpemVfdCBjb3VudCwgbG9mZl90ICpkYXRhKQoreworCWxvbmcgbmV3bW9kZTsKKwljaGFyIG9wdHN0cls2NF07CisKKwlpZiAoY291bnQgPT0gMCB8fCBjb3VudCA+IHNpemVvZihvcHRzdHIpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoY29weV9mcm9tX3VzZXIob3B0c3RyLCB1c2VyLCBjb3VudCkpCisJCXJldHVybiAtRUZBVUxUOworCW9wdHN0cltjb3VudCAtIDFdID0gJ1wwJzsKKwlpZiAoc3RyaWN0X3N0cnRvdWwob3B0c3RyLCAxMCwgJm5ld21vZGUpIDwgMCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiJXMgaXMgaW52YWxpZFxuIiwgb3B0c3RyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKG5ld21vZGUgPT0gMCkgeworCQlwcmludGsoS0VSTl9ERUJVRyAiIyBjcHU6ICAgICAgY3B1IG51bWJlclxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJyZXF1ZXN0b3I6ICB0aW1lcyB0aGlzIGNwdSB3YXMgdGhlIGZsdXNoIHJlcXVlc3RvclxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJyZXF1ZXN0ZWU6ICB0aW1lcyB0aGlzIGNwdSB3YXMgcmVxdWVzdGVkIHRvIGZsdXNoIGl0cyBUTEJzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJIm9uZTogICAgICAgIHRpbWVzIHJlcXVlc3RlZCB0byBmbHVzaCBhIHNpbmdsZSBhZGRyZXNzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJImFsbDogICAgICAgIHRpbWVzIHJlcXVlc3RlZCB0byBmbHVzaCBhbGwgVExCJ3NcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkic3JldHJ5OiAgICAgbnVtYmVyIG9mIHJldHJpZXMgb2Ygc291cmNlLXNpZGUgdGltZW91dHNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkiZHJldHJ5OiAgICAgbnVtYmVyIG9mIHJldHJpZXMgb2YgZGVzdGluYXRpb24tc2lkZSB0aW1lb3V0c1xuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJwdGNfaTogICAgICB0aW1lcyBVViBmZWxsIHRocm91Z2ggdG8gSVBJLXN0eWxlIGZsdXNoZXNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkic3dfYWNrOiAgICAgaW1hZ2Ugb2YgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJInNmbHVzaF91czogIGN5Y2xlcyBzcGVudCBpbiB1dl9mbHVzaF90bGJfb3RoZXJzKClcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRworCQkiZGZsdXNoX3VzOiAgY3ljbGVzIHNwZW50IGluIGhhbmRsaW5nIGZsdXNoIHJlcXVlc3RzXG4iKTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgInNvazogICAgICAgIHN1Y2Nlc3NlcyBvbiByZXRyeVxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHICJkbm9tc2c6ICAgICBpbnRlcnJ1cHRzIHdpdGggbm8gbWVzc2FnZVxuIik7CisJCXByaW50ayhLRVJOX0RFQlVHCisJCSJkbXVsdDogICAgICBpbnRlcnJ1cHRzIHdpdGggbXVsdGlwbGUgbWVzc2FnZXNcbiIpOworCQlwcmludGsoS0VSTl9ERUJVRyAic3RhcmdldDogICAgbm9kZXMgdGFyZ2V0ZWRcbiIpOworCX0gZWxzZSB7CisJCXV2X2JhdV9yZXRyeV9saW1pdCA9IG5ld21vZGU7CisJCXByaW50ayhLRVJOX0RFQlVHICJ0aW1lb3V0IHJldHJ5IGxpbWl0OiVkXG4iLAorCQkgICAgICAgdXZfYmF1X3JldHJ5X2xpbWl0KTsKKwl9CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgdXZfcHRjX3NlcV9vcHMgPSB7CisJLnN0YXJ0CQk9IHV2X3B0Y19zZXFfc3RhcnQsCisJLm5leHQJCT0gdXZfcHRjX3NlcV9uZXh0LAorCS5zdG9wCQk9IHV2X3B0Y19zZXFfc3RvcCwKKwkuc2hvdwkJPSB1dl9wdGNfc2VxX3Nob3cKK307CisKK3N0YXRpYyBpbnQgdXZfcHRjX3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2VxX29wZW4oZmlsZSwgJnV2X3B0Y19zZXFfb3BzKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY191dl9wdGNfb3BlcmF0aW9ucyA9IHsKKwkub3BlbgkJPSB1dl9wdGNfcHJvY19vcGVuLAorCS5yZWFkCQk9IHNlcV9yZWFkLAorCS53cml0ZQkJPSB1dl9wdGNfcHJvY193cml0ZSwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNlcV9yZWxlYXNlLAorfTsKKworc3RhdGljIGludCBfX2luaXQgdXZfcHRjX2luaXQodm9pZCkKK3sKKwlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKnByb2NfdXZfcHRjOworCisJaWYgKCFpc191dl9zeXN0ZW0oKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIXByb2NfbWtkaXIoInNnaV91diIsIE5VTEwpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXByb2NfdXZfcHRjID0gY3JlYXRlX3Byb2NfZW50cnkoVVZfUFRDX0JBU0VOQU1FLCAwNDQ0LCBOVUxMKTsKKwlpZiAoIXByb2NfdXZfcHRjKSB7CisJCXByaW50ayhLRVJOX0VSUiAidW5hYmxlIHRvIGNyZWF0ZSAlcyBwcm9jIGVudHJ5XG4iLAorCQkgICAgICAgVVZfUFRDX0JBU0VOQU1FKTsKKwkJcmVtb3ZlX3Byb2NfZW50cnkoInNnaV91diIsIE5VTEwpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcHJvY191dl9wdGMtPnByb2NfZm9wcyA9ICZwcm9jX3V2X3B0Y19vcGVyYXRpb25zOworCXJldHVybiAwOworfQorCisvKgorICogYmVnaW4gdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBwZXItYmxhZGUgY29udHJvbCBzdHJ1Y3R1cmVzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYmF1X2NvbnRyb2wgKiBfX2luaXQgdXZfdGFibGVfYmFzZXNfaW5pdChpbnQgYmxhZGUsIGludCBub2RlKQoreworCWludCBpOworCWludCAqaXA7CisJc3RydWN0IGJhdV9tc2dfc3RhdHVzICptc3A7CisJc3RydWN0IGJhdV9jb250cm9sICpiYXVfdGFicDsKKworCWJhdV90YWJwID0KKwkgICAga21hbGxvY19ub2RlKHNpemVvZihzdHJ1Y3QgYmF1X2NvbnRyb2wpLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwKTsKKworCWJhdV90YWJwLT5tc2dfc3RhdHVzZXMgPQorCSAgICBrbWFsbG9jX25vZGUoc2l6ZW9mKHN0cnVjdCBiYXVfbXNnX3N0YXR1cykgKgorCQkJIERFU1RfUV9TSVpFLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwLT5tc2dfc3RhdHVzZXMpOworCisJZm9yIChpID0gMCwgbXNwID0gYmF1X3RhYnAtPm1zZ19zdGF0dXNlczsgaSA8IERFU1RfUV9TSVpFOyBpKyssIG1zcCsrKQorCQliYXVfY3B1Yml0c19jbGVhcigmbXNwLT5zZWVuX2J5LCAoaW50KQorCQkJCSAgdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhibGFkZSkpOworCisJYmF1X3RhYnAtPndhdGNoaW5nID0KKwkgICAga21hbGxvY19ub2RlKHNpemVvZihpbnQpICogREVTVF9OVU1fUkVTT1VSQ0VTLCBHRlBfS0VSTkVMLCBub2RlKTsKKwlCVUdfT04oIWJhdV90YWJwLT53YXRjaGluZyk7CisKKwlmb3IgKGkgPSAwLCBpcCA9IGJhdV90YWJwLT53YXRjaGluZzsgaSA8IERFU1RfUV9TSVpFOyBpKyssIGlwKyspCisJCSppcCA9IDA7CisKKwl1dl9iYXVfdGFibGVfYmFzZXNbYmxhZGVdID0gYmF1X3RhYnA7CisKKwlyZXR1cm4gYmF1X3RhYnA7Cit9CisKKy8qCisgKiBmaW5pc2ggdGhlIGluaXRpYWxpemF0aW9uIG9mIHRoZSBwZXItYmxhZGUgY29udHJvbCBzdHJ1Y3R1cmVzCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdAordXZfdGFibGVfYmFzZXNfZmluaXNoKGludCBibGFkZSwgaW50IG5vZGUsIGludCBjdXJfY3B1LAorCQkgICAgICBzdHJ1Y3QgYmF1X2NvbnRyb2wgKmJhdV90YWJsZXNwLAorCQkgICAgICBzdHJ1Y3QgYmF1X2Rlc2MgKmFkcCkKK3sKKwlzdHJ1Y3QgYmF1X2NvbnRyb2wgKmJjcDsKKwlpbnQgaTsKKworCWZvciAoaSA9IGN1cl9jcHU7IGkgPCBjdXJfY3B1ICsgdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhibGFkZSk7IGkrKykgeworCQliY3AgPSAoc3RydWN0IGJhdV9jb250cm9sICopJnBlcl9jcHUoYmF1X2NvbnRyb2wsIGkpOworCisJCWJjcC0+YmF1X21zZ19oZWFkCT0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0OworCQliY3AtPnZhX3F1ZXVlX2ZpcnN0CT0gYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2ZpcnN0OworCQliY3AtPnZhX3F1ZXVlX2xhc3QJPSBiYXVfdGFibGVzcC0+dmFfcXVldWVfbGFzdDsKKwkJYmNwLT53YXRjaGluZwkJPSBiYXVfdGFibGVzcC0+d2F0Y2hpbmc7CisJCWJjcC0+bXNnX3N0YXR1c2VzCT0gYmF1X3RhYmxlc3AtPm1zZ19zdGF0dXNlczsKKwkJYmNwLT5kZXNjcmlwdG9yX2Jhc2UJPSBhZHA7CisJfQorfQorCisvKgorICogaW5pdGlhbGl6ZSB0aGUgc2VuZGluZyBzaWRlJ3Mgc2VuZGluZyBidWZmZXJzCisgKi8KK3N0YXRpYyBzdHJ1Y3QgYmF1X2Rlc2MgKiBfX2luaXQKK3V2X2FjdGl2YXRpb25fZGVzY3JpcHRvcl9pbml0KGludCBub2RlLCBpbnQgcG5vZGUpCit7CisJaW50IGk7CisJdW5zaWduZWQgbG9uZyBwYTsKKwl1bnNpZ25lZCBsb25nIG07CisJdW5zaWduZWQgbG9uZyBuOworCXVuc2lnbmVkIGxvbmcgbW1yX2ltYWdlOworCXN0cnVjdCBiYXVfZGVzYyAqYWRwOworCXN0cnVjdCBiYXVfZGVzYyAqYWQyOworCisJYWRwID0gKHN0cnVjdCBiYXVfZGVzYyAqKQorCSAgICBrbWFsbG9jX25vZGUoMTYzODQsIEdGUF9LRVJORUwsIG5vZGUpOworCUJVR19PTighYWRwKTsKKworCXBhID0gX19wYSgodW5zaWduZWQgbG9uZylhZHApOworCW4gPSBwYSA+PiB1dl9uc2hpZnQ7CisJbSA9IHBhICYgdXZfbW1hc2s7CisKKwltbXJfaW1hZ2UgPSB1dl9yZWFkX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0UpOworCWlmIChtbXJfaW1hZ2UpIHsKKwkJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCAodW5zaWduZWQgbG9uZykKKwkJCQkgICAgICBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRSwKKwkJCQkgICAgICAobiA8PCBVVl9ERVNDX0JBU0VfUE5PREVfU0hJRlQgfCBtKSk7CisJfQorCisJZm9yIChpID0gMCwgYWQyID0gYWRwOyBpIDwgVVZfQUNUSVZBVElPTl9ERVNDUklQVE9SX1NJWkU7IGkrKywgYWQyKyspIHsKKwkJbWVtc2V0KGFkMiwgMCwgc2l6ZW9mKHN0cnVjdCBiYXVfZGVzYykpOworCQlhZDItPmhlYWRlci5zd19hY2tfZmxhZyA9IDE7CisJCWFkMi0+aGVhZGVyLmJhc2VfZGVzdF9ub2RlaWQgPQorCQkgICAgdXZfYmxhZGVfdG9fcG5vZGUodXZfY3B1X3RvX2JsYWRlX2lkKDApKTsKKwkJYWQyLT5oZWFkZXIuY29tbWFuZCA9IFVWX05FVF9FTkRQT0lOVF9JTlREOworCQlhZDItPmhlYWRlci5pbnRfYm90aCA9IDE7CisJCS8qCisJCSAqIGFsbCBvdGhlcnMgbmVlZCB0byBiZSBzZXQgdG8gemVybzoKKwkJICogICBmYWlybmVzcyBjaGFpbmluZyBtdWx0aWxldmVsIGNvdW50IHJlcGxpZWRfdG8KKwkJICovCisJfQorCXJldHVybiBhZHA7Cit9CisKKy8qCisgKiBpbml0aWFsaXplIHRoZSBkZXN0aW5hdGlvbiBzaWRlJ3MgcmVjZWl2aW5nIGJ1ZmZlcnMKKyAqLworc3RhdGljIHN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqIF9faW5pdAordXZfcGF5bG9hZF9xdWV1ZV9pbml0KGludCBub2RlLCBpbnQgcG5vZGUsIHN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3ApCit7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICpwcXA7CisJY2hhciAqY3A7CisKKwlwcXAgPSAoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICopIGttYWxsb2Nfbm9kZSgKKwkJKERFU1RfUV9TSVpFICsgMSkgKiBzaXplb2Yoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5KSwKKwkJR0ZQX0tFUk5FTCwgbm9kZSk7CisJQlVHX09OKCFwcXApOworCisJY3AgPSAoY2hhciAqKXBxcCArIDMxOworCXBxcCA9IChzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKikoKCh1bnNpZ25lZCBsb25nKWNwID4+IDUpIDw8IDUpOworCWJhdV90YWJsZXNwLT52YV9xdWV1ZV9maXJzdCA9IHBxcDsKKwl1dl93cml0ZV9nbG9iYWxfbW1yNjQocG5vZGUsCisJCQkgICAgICBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVCwKKwkJCSAgICAgICgodW5zaWduZWQgbG9uZylwbm9kZSA8PAorCQkJICAgICAgIFVWX1BBWUxPQURRX1BOT0RFX1NISUZUKSB8CisJCQkgICAgICB1dl9waHlzbm9kZWFkZHIocHFwKSk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMLAorCQkJICAgICAgdXZfcGh5c25vZGVhZGRyKHBxcCkpOworCWJhdV90YWJsZXNwLT52YV9xdWV1ZV9sYXN0ID0gcHFwICsgKERFU1RfUV9TSVpFIC0gMSk7CisJdXZfd3JpdGVfZ2xvYmFsX21tcjY0KHBub2RlLCBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNULAorCQkJICAgICAgKHVuc2lnbmVkIGxvbmcpCisJCQkgICAgICB1dl9waHlzbm9kZWFkZHIoYmF1X3RhYmxlc3AtPnZhX3F1ZXVlX2xhc3QpKTsKKwltZW1zZXQocHFwLCAwLCBzaXplb2Yoc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5KSAqIERFU1RfUV9TSVpFKTsKKworCXJldHVybiBwcXA7Cit9CisKKy8qCisgKiBJbml0aWFsaXphdGlvbiBvZiBlYWNoIFVWIGJsYWRlJ3Mgc3RydWN0dXJlcworICovCitzdGF0aWMgaW50IF9faW5pdCB1dl9pbml0X2JsYWRlKGludCBibGFkZSwgaW50IG5vZGUsIGludCBjdXJfY3B1KQoreworCWludCBwbm9kZTsKKwl1bnNpZ25lZCBsb25nIHBhOworCXVuc2lnbmVkIGxvbmcgYXBpY2lkOworCXN0cnVjdCBiYXVfZGVzYyAqYWRwOworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqcHFwOworCXN0cnVjdCBiYXVfY29udHJvbCAqYmF1X3RhYmxlc3A7CisKKwliYXVfdGFibGVzcCA9IHV2X3RhYmxlX2Jhc2VzX2luaXQoYmxhZGUsIG5vZGUpOworCXBub2RlID0gdXZfYmxhZGVfdG9fcG5vZGUoYmxhZGUpOworCWFkcCA9IHV2X2FjdGl2YXRpb25fZGVzY3JpcHRvcl9pbml0KG5vZGUsIHBub2RlKTsKKwlwcXAgPSB1dl9wYXlsb2FkX3F1ZXVlX2luaXQobm9kZSwgcG5vZGUsIGJhdV90YWJsZXNwKTsKKwl1dl90YWJsZV9iYXNlc19maW5pc2goYmxhZGUsIG5vZGUsIGN1cl9jcHUsIGJhdV90YWJsZXNwLCBhZHApOworCS8qCisJICogdGhlIGJlbG93IGluaXRpYWxpemF0aW9uIGNhbid0IGJlIGluIGZpcm13YXJlIGJlY2F1c2UgdGhlCisJICogbWVzc2FnaW5nIElSUSB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIE9TCisJICovCisJYXBpY2lkID0gcGVyX2NwdSh4ODZfY3B1X3RvX2FwaWNpZCwgY3VyX2NwdSk7CisJcGEgPSB1dl9yZWFkX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0JBVV9EQVRBX0NPTkZJRyk7CisJaWYgKChwYSAmIDB4ZmYpICE9IFVWX0JBVV9NRVNTQUdFKSB7CisJCXV2X3dyaXRlX2dsb2JhbF9tbXI2NChwbm9kZSwgVVZIX0JBVV9EQVRBX0NPTkZJRywKKwkJCQkgICAgICAoKGFwaWNpZCA8PCAzMikgfCBVVl9CQVVfTUVTU0FHRSkpOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEluaXRpYWxpemF0aW9uIG9mIEJBVS1yZWxhdGVkIHN0cnVjdHVyZXMKKyAqLworc3RhdGljIGludCBfX2luaXQgdXZfYmF1X2luaXQodm9pZCkKK3sKKwlpbnQgYmxhZGU7CisJaW50IG5vZGU7CisJaW50IG5ibGFkZXM7CisJaW50IGxhc3RfYmxhZGU7CisJaW50IGN1cl9jcHUgPSAwOworCisJaWYgKCFpc191dl9zeXN0ZW0oKSkKKwkJcmV0dXJuIDA7CisKKwl1dl9iYXVfcmV0cnlfbGltaXQgPSAxOworCXV2X25zaGlmdCA9IHV2X2h1Yl9pbmZvLT5uX3ZhbDsKKwl1dl9tbWFzayA9ICgxVUwgPDwgdXZfaHViX2luZm8tPm5fdmFsKSAtIDE7CisJbmJsYWRlcyA9IDA7CisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKG5vZGUpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCW5ibGFkZXMrKzsKKwl9CisJdXZfYmF1X3RhYmxlX2Jhc2VzID0gKHN0cnVjdCBiYXVfY29udHJvbCAqKikKKwkgICAga21hbGxvYyhuYmxhZGVzICogc2l6ZW9mKHN0cnVjdCBiYXVfY29udHJvbCAqKSwgR0ZQX0tFUk5FTCk7CisJQlVHX09OKCF1dl9iYXVfdGFibGVfYmFzZXMpOworCisJbGFzdF9ibGFkZSA9IC0xOworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJYmxhZGUgPSB1dl9ub2RlX3RvX2JsYWRlX2lkKG5vZGUpOworCQlpZiAoYmxhZGUgPT0gbGFzdF9ibGFkZSkKKwkJCWNvbnRpbnVlOworCQlsYXN0X2JsYWRlID0gYmxhZGU7CisJCXV2X2luaXRfYmxhZGUoYmxhZGUsIG5vZGUsIGN1cl9jcHUpOworCQljdXJfY3B1ICs9IHV2X2JsYWRlX25yX3Bvc3NpYmxlX2NwdXMoYmxhZGUpOworCX0KKwlzZXRfaW50cl9nYXRlKFVWX0JBVV9NRVNTQUdFLCB1dl9iYXVfbWVzc2FnZV9pbnRyMSk7CisJdXZfZW5hYmxlX3RpbWVvdXRzKCk7CisKKwlyZXR1cm4gMDsKK30KK19faW5pdGNhbGwodXZfYmF1X2luaXQpOworX19pbml0Y2FsbCh1dl9wdGNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHJhbXBvbGluZS5jIGIvYXJjaC94ODYva2VybmVsL3RyYW1wb2xpbmUuYwppbmRleCBhYmJmMTk5Li4xMTA2ZmFjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhbXBvbGluZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC90cmFtcG9saW5lLmMKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxhc20vdHJhbXBvbGluZS5oPgogCi0vKiByZWFkeSBmb3IgeDg2XzY0LCBubyBoYXJtIGZvciB4ODYsIHNpbmNlIGl0IHdpbGwgb3ZlcndyaXRlIGFmdGVyIGFsbG9jICovCisvKiByZWFkeSBmb3IgeDg2XzY0IGFuZCB4ODYgKi8KIHVuc2lnbmVkIGNoYXIgKnRyYW1wb2xpbmVfYmFzZSA9IF9fdmEoVFJBTVBPTElORV9CQVNFKTsKIAogLyoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90cmFwc18zMi5jIGIvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKaW5kZXggYmRlNmY2My4uOGE3Njg5NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3RyYXBzXzMyLmMKQEAgLTEsNSArMSw2IEBACiAvKgogICogIENvcHlyaWdodCAoQykgMTk5MSwgMTk5MiAgTGludXMgVG9ydmFsZHMKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEsIDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzCiAgKgogICogIFBlbnRpdW0gSUlJIEZYU1IsIFNTRSBzdXBwb3J0CiAgKglHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+LCBNYXkgMjAwMApAQCAtNjAsOCArNjEsNiBAQAogCiAjaW5jbHVkZSAibWFjaF90cmFwcy5oIgogCi1pbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOwotCiBERUNMQVJFX0JJVE1BUCh1c2VkX3ZlY3RvcnMsIE5SX1ZFQ1RPUlMpOwogRVhQT1JUX1NZTUJPTF9HUEwodXNlZF92ZWN0b3JzKTsKIApAQCAtOTgsMTkgKzk3LDIyIEBACiBhc21saW5rYWdlIHZvaWQgc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBtYWNoaW5lX2NoZWNrKHZvaWQpOwogCitpbnQgcGFuaWNfb25fdW5yZWNvdmVyZWRfbm1pOwogaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDI0Owogc3RhdGljIHVuc2lnbmVkIGludCBjb2RlX2J5dGVzID0gNjQ7CitzdGF0aWMgaW50IGlnbm9yZV9ubWlzOworc3RhdGljIGludCBkaWVfY291bnRlcjsKIAogdm9pZCBwcmludGtfYWRkcmVzcyh1bnNpZ25lZCBsb25nIGFkZHJlc3MsIGludCByZWxpYWJsZSkKIHsKICNpZmRlZiBDT05GSUdfS0FMTFNZTVMKLQljaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTl07CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3ltc2l6ZTsKIAljb25zdCBjaGFyICpzeW1uYW1lOwotCWNoYXIgcmVsaWFiWzRdID0gIiI7Ci0JY2hhciAqZGVsaW0gPSAiOiI7CiAJY2hhciAqbW9kbmFtZTsKKwljaGFyICpkZWxpbSA9ICI6IjsKKwljaGFyIG5hbWVidWZbS1NZTV9OQU1FX0xFTl07CisJY2hhciByZWxpYWJbNF0gPSAiIjsKIAogCXN5bW5hbWUgPSBrYWxsc3ltc19sb29rdXAoYWRkcmVzcywgJnN5bXNpemUsICZvZmZzZXQsCiAJCQkJCSZtb2RuYW1lLCBuYW1lYnVmKTsKQEAgLTEzMCwyMiArMTMyLDIzIEBACiAjZW5kaWYKIH0KIAotc3RhdGljIGlubGluZSBpbnQgdmFsaWRfc3RhY2tfcHRyKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sIHZvaWQgKnAsIHVuc2lnbmVkIHNpemUpCitzdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFja19wdHIoc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKKwkJCXZvaWQgKnAsIHVuc2lnbmVkIGludCBzaXplKQogewotCXJldHVybglwID4gKHZvaWQgKil0aW5mbyAmJgotCQlwIDw9ICh2b2lkICopdGluZm8gKyBUSFJFQURfU0laRSAtIHNpemU7CisJdm9pZCAqdCA9IHRpbmZvOworCXJldHVybglwID4gdCAmJiBwIDw9IHQgKyBUSFJFQURfU0laRSAtIHNpemU7CiB9CiAKIC8qIFRoZSBmb3JtIG9mIHRoZSB0b3Agb2YgdGhlIGZyYW1lIG9uIHRoZSBzdGFjayAqLwogc3RydWN0IHN0YWNrX2ZyYW1lIHsKLQlzdHJ1Y3Qgc3RhY2tfZnJhbWUJKm5leHRfZnJhbWU7Ci0JdW5zaWduZWQgbG9uZwkJcmV0dXJuX2FkZHJlc3M7CisJc3RydWN0IHN0YWNrX2ZyYW1lICpuZXh0X2ZyYW1lOworCXVuc2lnbmVkIGxvbmcgcmV0dXJuX2FkZHJlc3M7CiB9OwogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIHByaW50X2NvbnRleHRfc3RhY2soc3RydWN0IHRocmVhZF9pbmZvICp0aW5mbywKLQkJICAgIHVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAotCQkgICAgY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCisJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAorCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc3RhY2tfZnJhbWUgKmZyYW1lID0gKHN0cnVjdCBzdGFja19mcmFtZSAqKWJwOwogCkBAIC0xNjcsOCArMTcwLDYgQEAKIAlyZXR1cm4gYnA7CiB9CiAKLSNkZWZpbmUgTVNHKG1zZykJCW9wcy0+d2FybmluZyhkYXRhLCBtc2cpCi0KIHZvaWQgZHVtcF90cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAogCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCwKIAkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCkBAIC0xNzgsNyArMTc5LDYgQEAKIAogCWlmICghc3RhY2spIHsKIAkJdW5zaWduZWQgbG9uZyBkdW1teTsKLQogCQlzdGFjayA9ICZkdW1teTsKIAkJaWYgKHRhc2sgIT0gY3VycmVudCkKIAkJCXN0YWNrID0gKHVuc2lnbmVkIGxvbmcgKil0YXNrLT50aHJlYWQuc3A7CkBAIC0xOTYsNyArMTk2LDcgQEAKIAl9CiAjZW5kaWYKIAotCXdoaWxlICgxKSB7CisJZm9yICg7OykgewogCQlzdHJ1Y3QgdGhyZWFkX2luZm8gKmNvbnRleHQ7CiAKIAkJY29udGV4dCA9IChzdHJ1Y3QgdGhyZWFkX2luZm8gKikKQEAgLTI0OCwxMCArMjQ4LDEwIEBACiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgcHJpbnRfdHJhY2Vfb3BzID0gewotCS53YXJuaW5nCQk9IHByaW50X3RyYWNlX3dhcm5pbmcsCi0JLndhcm5pbmdfc3ltYm9sCQk9IHByaW50X3RyYWNlX3dhcm5pbmdfc3ltYm9sLAotCS5zdGFjawkJCT0gcHJpbnRfdHJhY2Vfc3RhY2ssCi0JLmFkZHJlc3MJCT0gcHJpbnRfdHJhY2VfYWRkcmVzcywKKwkud2FybmluZyA9IHByaW50X3RyYWNlX3dhcm5pbmcsCisJLndhcm5pbmdfc3ltYm9sID0gcHJpbnRfdHJhY2Vfd2FybmluZ19zeW1ib2wsCisJLnN0YWNrID0gcHJpbnRfdHJhY2Vfc3RhY2ssCisJLmFkZHJlc3MgPSBwcmludF90cmFjZV9hZGRyZXNzLAogfTsKIAogc3RhdGljIHZvaWQKQEAgLTM1MSwxNSArMzUxLDE0IEBACiAJCXByaW50ayhLRVJOX0VNRVJHICJDb2RlOiAiKTsKIAogCQlpcCA9ICh1OCAqKXJlZ3MtPmlwIC0gY29kZV9wcm9sb2d1ZTsKLQkJaWYgKGlwIDwgKHU4ICopUEFHRV9PRkZTRVQgfHwKLQkJCXByb2JlX2tlcm5lbF9hZGRyZXNzKGlwLCBjKSkgeworCQlpZiAoaXAgPCAodTggKilQQUdFX09GRlNFVCB8fCBwcm9iZV9rZXJuZWxfYWRkcmVzcyhpcCwgYykpIHsKIAkJCS8qIHRyeSBzdGFydGluZyBhdCBFSVAgKi8KIAkJCWlwID0gKHU4ICopcmVncy0+aXA7CiAJCQljb2RlX2xlbiA9IGNvZGVfbGVuIC0gY29kZV9wcm9sb2d1ZSArIDE7CiAJCX0KIAkJZm9yIChpID0gMDsgaSA8IGNvZGVfbGVuOyBpKyssIGlwKyspIHsKIAkJCWlmIChpcCA8ICh1OCAqKVBBR0VfT0ZGU0VUIHx8Ci0JCQkJcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CisJCQkJCXByb2JlX2tlcm5lbF9hZGRyZXNzKGlwLCBjKSkgewogCQkJCXByaW50aygiIEJhZCBFSVAgdmFsdWUuIik7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0zODQsOCArMzgzLDYgQEAKIAlyZXR1cm4gdWQyID09IDB4MGIwZjsKIH0KIAotc3RhdGljIGludCBkaWVfY291bnRlcjsKLQogaW50IF9fa3Byb2JlcyBfX2RpZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycikKIHsKIAl1bnNpZ25lZCBzaG9ydCBzczsKQEAgLTQwMiwyNiArMzk5LDIyIEBACiAJcHJpbnRrKCJERUJVR19QQUdFQUxMT0MiKTsKICNlbmRpZgogCXByaW50aygiXG4iKTsKLQogCWlmIChub3RpZnlfZGllKERJRV9PT1BTLCBzdHIsIHJlZ3MsIGVyciwKLQkJCWN1cnJlbnQtPnRocmVhZC50cmFwX25vLCBTSUdTRUdWKSAhPSBOT1RJRllfU1RPUCkgeworCQkJY3VycmVudC0+dGhyZWFkLnRyYXBfbm8sIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQorCQlyZXR1cm4gMTsKIAotCQlzaG93X3JlZ2lzdGVycyhyZWdzKTsKLQkJLyogRXhlY3V0aXZlIHN1bW1hcnkgaW4gY2FzZSB0aGUgb29wcyBzY3JvbGxlZCBhd2F5ICovCi0JCXNwID0gKHVuc2lnbmVkIGxvbmcpICgmcmVncy0+c3ApOwotCQlzYXZlc2VnbWVudChzcywgc3MpOwotCQlpZiAodXNlcl9tb2RlKHJlZ3MpKSB7Ci0JCQlzcCA9IHJlZ3MtPnNwOwotCQkJc3MgPSByZWdzLT5zcyAmIDB4ZmZmZjsKLQkJfQotCQlwcmludGsoS0VSTl9FTUVSRyAiRUlQOiBbPCUwOGx4Pl0gIiwgcmVncy0+aXApOwotCQlwcmludF9zeW1ib2woIiVzIiwgcmVncy0+aXApOwotCQlwcmludGsoIiBTUzpFU1AgJTA0eDolMDhseFxuIiwgc3MsIHNwKTsKLQotCQlyZXR1cm4gMDsKKwlzaG93X3JlZ2lzdGVycyhyZWdzKTsKKwkvKiBFeGVjdXRpdmUgc3VtbWFyeSBpbiBjYXNlIHRoZSBvb3BzIHNjcm9sbGVkIGF3YXkgKi8KKwlzcCA9ICh1bnNpZ25lZCBsb25nKSAoJnJlZ3MtPnNwKTsKKwlzYXZlc2VnbWVudChzcywgc3MpOworCWlmICh1c2VyX21vZGUocmVncykpIHsKKwkJc3AgPSByZWdzLT5zcDsKKwkJc3MgPSByZWdzLT5zcyAmIDB4ZmZmZjsKIAl9Ci0KLQlyZXR1cm4gMTsKKwlwcmludGsoS0VSTl9FTUVSRyAiRUlQOiBbPCUwOGx4Pl0gIiwgcmVncy0+aXApOworCXByaW50X3N5bWJvbCgiJXMiLCByZWdzLT5pcCk7CisJcHJpbnRrKCIgU1M6RVNQICUwNHg6JTA4bHhcbiIsIHNzLCBzcCk7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC01NDQsOCArNTM3LDkgQEAKICNkZWZpbmUgRE9fRVJST1IodHJhcG5yLCBzaWduciwgc3RyLCBuYW1lKQkJCQlcCiB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQkJCVwKIHsJCQkJCQkJCQlcCisJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsJCQkJCQlcCiAJaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikJXAotCQkJCQkJPT0gTk9USUZZX1NUT1ApCQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKIAkJcmV0dXJuOwkJCQkJCQlcCiAJZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIDAsIHJlZ3MsIGVycm9yX2NvZGUsIE5VTEwpOwkJXAogfQpAQCAtNTYxLDcgKzU1NSw3IEBACiAJaW5mby5zaV9jb2RlID0gc2ljb2RlOwkJCQkJCVwKIAlpbmZvLnNpX2FkZHIgPSAodm9pZCBfX3VzZXIgKilzaWFkZHI7CQkJCVwKIAlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCi0JCQkJCQk9PSBOT1RJRllfU1RPUCkJCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAogCQlyZXR1cm47CQkJCQkJCVwKIAlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgMCwgcmVncywgZXJyb3JfY29kZSwgJmluZm8pOwlcCiB9CkBAIC01NzAsNyArNTY0LDcgQEAKIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCQkJXAogewkJCQkJCQkJCVwKIAlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCi0JCQkJCQk9PSBOT1RJRllfU1RPUCkJCVwKKwkJCQkJCQk9PSBOT1RJRllfU1RPUCkJXAogCQlyZXR1cm47CQkJCQkJCVwKIAlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgMSwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CQlcCiB9CkBAIC01ODUsMjcgKzU3OSwyOSBAQAogCWluZm8uc2lfYWRkciA9ICh2b2lkIF9fdXNlciAqKXNpYWRkcjsJCQkJXAogCXRyYWNlX2hhcmRpcnFzX2ZpeHVwKCk7CQkJCQkJXAogCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpCVwKLQkJCQkJCT09IE5PVElGWV9TVE9QKQkJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCiAJCXJldHVybjsJCQkJCQkJXAogCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCAxLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CVwKIH0KIAotRE9fVk04Nl9FUlJPUl9JTkZPKDAsIFNJR0ZQRSwgICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQorRE9fVk04Nl9FUlJPUl9JTkZPKDAsIFNJR0ZQRSwgImRpdmlkZSBlcnJvciIsIGRpdmlkZV9lcnJvciwgRlBFX0lOVERJViwgcmVncy0+aXApCiAjaWZuZGVmIENPTkZJR19LUFJPQkVTCiBET19WTTg2X0VSUk9SKDMsIFNJR1RSQVAsICJpbnQzIiwgaW50MykKICNlbmRpZgogRE9fVk04Nl9FUlJPUig0LCBTSUdTRUdWLCAib3ZlcmZsb3ciLCBvdmVyZmxvdykKIERPX1ZNODZfRVJST1IoNSwgU0lHU0VHViwgImJvdW5kcyIsIGJvdW5kcykKLURPX0VSUk9SX0lORk8oNiwgU0lHSUxMLCAgImludmFsaWQgb3Bjb2RlIiwgaW52YWxpZF9vcCwgSUxMX0lMTE9QTiwgcmVncy0+aXAsIDApCi1ET19FUlJPUig5LCBTSUdGUEUsICAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQorRE9fRVJST1JfSU5GTyg2LCBTSUdJTEwsICJpbnZhbGlkIG9wY29kZSIsIGludmFsaWRfb3AsIElMTF9JTExPUE4sIHJlZ3MtPmlwLCAwKQorRE9fRVJST1IoOSwgU0lHRlBFLCAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogRE9fRVJST1IoMTAsIFNJR1NFR1YsICJpbnZhbGlkIFRTUyIsIGludmFsaWRfVFNTKQotRE9fRVJST1IoMTEsIFNJR0JVUywgICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKLURPX0VSUk9SKDEyLCBTSUdCVVMsICAic3RhY2sgc2VnbWVudCIsIHN0YWNrX3NlZ21lbnQpCitET19FUlJPUigxMSwgU0lHQlVTLCAic2VnbWVudCBub3QgcHJlc2VudCIsIHNlZ21lbnRfbm90X3ByZXNlbnQpCitET19FUlJPUigxMiwgU0lHQlVTLCAic3RhY2sgc2VnbWVudCIsIHN0YWNrX3NlZ21lbnQpCiBET19FUlJPUl9JTkZPKDE3LCBTSUdCVVMsICJhbGlnbm1lbnQgY2hlY2siLCBhbGlnbm1lbnRfY2hlY2ssIEJVU19BRFJBTE4sIDAsIDApCiBET19FUlJPUl9JTkZPKDMyLCBTSUdJTEwsICJpcmV0IGV4Y2VwdGlvbiIsIGlyZXRfZXJyb3IsIElMTF9CQURTVEssIDAsIDEpCiAKLXZvaWQgX19rcHJvYmVzIGRvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQordm9pZCBfX2twcm9iZXMKK2RvX2dlbmVyYWxfcHJvdGVjdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQogeworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwogCXN0cnVjdCB0aHJlYWRfc3RydWN0ICp0aHJlYWQ7CiAJc3RydWN0IHRzc19zdHJ1Y3QgKnRzczsKIAlpbnQgY3B1OwpAQCAtNjQ2LDIzICs2NDIsMjQgQEAKIAlpZiAocmVncy0+ZmxhZ3MgJiBYODZfVk1fTUFTSykKIAkJZ290byBncF9pbl92bTg2OwogCisJdHNrID0gY3VycmVudDsKIAlpZiAoIXVzZXJfbW9kZShyZWdzKSkKIAkJZ290byBncF9pbl9rZXJuZWw7CiAKLQljdXJyZW50LT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7Ci0JY3VycmVudC0+dGhyZWFkLnRyYXBfbm8gPSAxMzsKKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CiAKLQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKGN1cnJlbnQsIFNJR1NFR1YpICYmCi0JICAgIHByaW50a19yYXRlbGltaXQoKSkgeworCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgorCQkJcHJpbnRrX3JhdGVsaW1pdCgpKSB7CiAJCXByaW50ayhLRVJOX0lORk8KLQkJICAgICIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKLQkJICAgIGN1cnJlbnQtPmNvbW0sIHRhc2tfcGlkX25yKGN1cnJlbnQpLAotCQkgICAgcmVncy0+aXAsIHJlZ3MtPnNwLCBlcnJvcl9jb2RlKTsKKwkJCSIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSwKKwkJCXJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7CiAJCXByaW50X3ZtYV9hZGRyKCIgaW4gIiwgcmVncy0+aXApOwogCQlwcmludGsoIlxuIik7CiAJfQogCi0JZm9yY2Vfc2lnKFNJR1NFR1YsIGN1cnJlbnQpOworCWZvcmNlX3NpZyhTSUdTRUdWLCB0c2spOwogCXJldHVybjsKIAogZ3BfaW5fdm04NjoKQEAgLTY3MSwxNCArNjY4LDE1IEBACiAJcmV0dXJuOwogCiBncF9pbl9rZXJuZWw6Ci0JaWYgKCFmaXh1cF9leGNlcHRpb24ocmVncykpIHsKLQkJY3VycmVudC0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOwotCQljdXJyZW50LT50aHJlYWQudHJhcF9ubyA9IDEzOwotCQlpZiAobm90aWZ5X2RpZShESUVfR1BGLCAiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywKKwlpZiAoZml4dXBfZXhjZXB0aW9uKHJlZ3MpKQorCQlyZXR1cm47CisKKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CisJaWYgKG5vdGlmeV9kaWUoRElFX0dQRiwgImdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCIsIHJlZ3MsCiAJCQkJZXJyb3JfY29kZSwgMTMsIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQotCQkJcmV0dXJuOwotCQlkaWUoImdlbmVyYWwgcHJvdGVjdGlvbiBmYXVsdCIsIHJlZ3MsIGVycm9yX2NvZGUpOwotCX0KKwkJcmV0dXJuOworCWRpZSgiZ2VuZXJhbCBwcm90ZWN0aW9uIGZhdWx0IiwgcmVncywgZXJyb3JfY29kZSk7CiB9CiAKIHN0YXRpYyBub3RyYWNlIF9fa3Byb2JlcyB2b2lkCkBAIC03NTUsOSArNzUzLDkgQEAKIAogc3RhdGljIERFRklORV9TUElOTE9DSyhubWlfcHJpbnRfbG9jayk7CiAKLXZvaWQgbm90cmFjZSBfX2twcm9iZXMgZGllX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgY29uc3QgY2hhciAqbXNnKQordm9pZCBub3RyYWNlIF9fa3Byb2JlcyBkaWVfbm1pKGNoYXIgKnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBkb19wYW5pYykKIHsKLQlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIG1zZywgcmVncywgMCwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKKwlpZiAobm90aWZ5X2RpZShESUVfTk1JV0FUQ0hET0csIHN0ciwgcmVncywgMCwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOwogCiAJc3Bpbl9sb2NrKCZubWlfcHJpbnRfbG9jayk7CkBAIC03NjYsMTAgKzc2NCwxMiBAQAogCSogdG8gZ2V0IGEgbWVzc2FnZSBvdXQ6CiAJKi8KIAlidXN0X3NwaW5sb2NrcygxKTsKLQlwcmludGsoS0VSTl9FTUVSRyAiJXMiLCBtc2cpOworCXByaW50ayhLRVJOX0VNRVJHICIlcyIsIHN0cik7CiAJcHJpbnRrKCIgb24gQ1BVJWQsIGlwICUwOGx4LCByZWdpc3RlcnM6XG4iLAogCQlzbXBfcHJvY2Vzc29yX2lkKCksIHJlZ3MtPmlwKTsKIAlzaG93X3JlZ2lzdGVycyhyZWdzKTsKKwlpZiAoZG9fcGFuaWMpCisJCXBhbmljKCJOb24gbWFza2FibGUgaW50ZXJydXB0Iik7CiAJY29uc29sZV9zaWxlbnQoKTsKIAlzcGluX3VubG9jaygmbm1pX3ByaW50X2xvY2spOwogCWJ1c3Rfc3BpbmxvY2tzKDApOwpAQCAtNzg5LDE0ICs3ODksMTcgQEAKIHN0YXRpYyBub3RyYWNlIF9fa3Byb2JlcyB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXVuc2lnbmVkIGNoYXIgcmVhc29uID0gMDsKKwlpbnQgY3B1OwogCi0JLyogT25seSB0aGUgQlNQIGdldHMgZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW06ICovCi0JaWYgKCFzbXBfcHJvY2Vzc29yX2lkKCkpCisJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCisJLyogT25seSB0aGUgQlNQIGdldHMgZXh0ZXJuYWwgTk1JcyBmcm9tIHRoZSBzeXN0ZW0uICovCisJaWYgKCFjcHUpCiAJCXJlYXNvbiA9IGdldF9ubWlfcmVhc29uKCk7CiAKIAlpZiAoIShyZWFzb24gJiAweGMwKSkgewogCQlpZiAobm90aWZ5X2RpZShESUVfTk1JX0lQSSwgIm5taV9pcGkiLCByZWdzLCByZWFzb24sIDIsIFNJR0lOVCkKLQkJCQkJCQk9PSBOT1RJRllfU1RPUCkKKwkJCQkJCQkJPT0gTk9USUZZX1NUT1ApCiAJCQlyZXR1cm47CiAjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCiAJCS8qCkBAIC04MDUsNyArODA4LDcgQEAKIAkJICovCiAJCWlmIChubWlfd2F0Y2hkb2dfdGljayhyZWdzLCByZWFzb24pKQogCQkJcmV0dXJuOwotCQlpZiAoIWRvX25taV9jYWxsYmFjayhyZWdzLCBzbXBfcHJvY2Vzc29yX2lkKCkpKQorCQlpZiAoIWRvX25taV9jYWxsYmFjayhyZWdzLCBjcHUpKQogCQkJdW5rbm93bl9ubWlfZXJyb3IocmVhc29uLCByZWdzKTsKICNlbHNlCiAJCXVua25vd25fbm1pX2Vycm9yKHJlYXNvbiwgcmVncyk7CkBAIC04MTUsNiArODE4LDggQEAKIAl9CiAJaWYgKG5vdGlmeV9kaWUoRElFX05NSSwgIm5taSIsIHJlZ3MsIHJlYXNvbiwgMiwgU0lHSU5UKSA9PSBOT1RJRllfU1RPUCkKIAkJcmV0dXJuOworCisJLyogQUs6IGZvbGxvd2luZyBjaGVja3Mgc2VlbSB0byBiZSBicm9rZW4gb24gbW9kZXJuIGNoaXBzZXRzLiBGSVhNRSAqLwogCWlmIChyZWFzb24gJiAweDgwKQogCQltZW1fcGFyaXR5X2Vycm9yKHJlYXNvbiwgcmVncyk7CiAJaWYgKHJlYXNvbiAmIDB4NDApCkBAIC04MjYsOCArODMxLDYgQEAKIAlyZWFzc2VydF9ubWkoKTsKIH0KIAotc3RhdGljIGludCBpZ25vcmVfbm1pczsKLQogbm90cmFjZSBfX2twcm9iZXMgdm9pZCBkb19ubWkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGxvbmcgZXJyb3JfY29kZSkKIHsKIAlpbnQgY3B1OwpAQCAtOTEyLDcgKzkxNSw3IEBACiAJdHNrLT50aHJlYWQuZGVidWdjdGxtc3IgPSAwOwogCiAJaWYgKG5vdGlmeV9kaWUoRElFX0RFQlVHLCAiZGVidWciLCByZWdzLCBjb25kaXRpb24sIGVycm9yX2NvZGUsCi0JCQkJCVNJR1RSQVApID09IE5PVElGWV9TVE9QKQorCQkJCQkJU0lHVFJBUCkgPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybjsKIAkvKiBJdCdzIHNhZmUgdG8gYWxsb3cgaXJxJ3MgYWZ0ZXIgRFI2IGhhcyBiZWVuIHNhdmVkICovCiAJaWYgKHJlZ3MtPmZsYWdzICYgWDg2X0VGTEFHU19JRikKQEAgLTk3Myw5ICs5NzYsOCBAQAogdm9pZCBtYXRoX2Vycm9yKHZvaWQgX191c2VyICppcCkKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7Ci0JdW5zaWduZWQgc2hvcnQgY3dkOwotCXVuc2lnbmVkIHNob3J0IHN3ZDsKIAlzaWdpbmZvX3QgaW5mbzsKKwl1bnNpZ25lZCBzaG9ydCBjd2QsIHN3ZDsKIAogCS8qCiAJICogU2F2ZSB0aGUgaW5mbyBmb3IgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGFuZCBjbGVhciB0aGUgZXJyb3IuCkBAIC05OTQsNyArOTk2LDcgQEAKIAkgKiBDMSByZWcgeW91IG5lZWQgaW4gY2FzZSBvZiBhIHN0YWNrIGZhdWx0LCAweDA0MCBpcyB0aGUgc3RhY2sKIAkgKiBmYXVsdCBiaXQuICBXZSBzaG91bGQgb25seSBiZSB0YWtpbmcgb25lIGV4Y2VwdGlvbiBhdCBhIHRpbWUsCiAJICogc28gaWYgdGhpcyBjb21iaW5hdGlvbiBkb2Vzbid0IHByb2R1Y2UgYW55IHNpbmdsZSBleGNlcHRpb24sCi0JICogdGhlbiB3ZSBoYXZlIGEgYmFkIHByb2dyYW0gdGhhdCBpc24ndCBzeW5jcm9uaXppbmcgaXRzIEZQVSB1c2FnZQorCSAqIHRoZW4gd2UgaGF2ZSBhIGJhZCBwcm9ncmFtIHRoYXQgaXNuJ3Qgc3luY2hyb25pemluZyBpdHMgRlBVIHVzYWdlCiAJICogYW5kIGl0IHdpbGwgc3VmZmVyIHRoZSBjb25zZXF1ZW5jZXMgc2luY2Ugd2Ugd29uJ3QgYmUgYWJsZSB0bwogCSAqIGZ1bGx5IHJlcHJvZHVjZSB0aGUgY29udGV4dCBvZiB0aGUgZXhjZXB0aW9uCiAJICovCkBAIC0xMDAzLDcgKzEwMDUsNyBAQAogCXN3aXRjaCAoc3dkICYgfmN3ZCAmIDB4M2YpIHsKIAljYXNlIDB4MDAwOiAvKiBObyB1bm1hc2tlZCBleGNlcHRpb24gKi8KIAkJcmV0dXJuOwotCWRlZmF1bHQ6ICAgIC8qIE11bHRpcGxlIGV4Y2VwdGlvbnMgKi8KKwlkZWZhdWx0OiAvKiBNdWx0aXBsZSBleGNlcHRpb25zICovCiAJCWJyZWFrOwogCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KIAkJLyoKQEAgLTEwMzksOCArMTA0MSw4IEBACiBzdGF0aWMgdm9pZCBzaW1kX21hdGhfZXJyb3Iodm9pZCBfX3VzZXIgKmlwKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKLQl1bnNpZ25lZCBzaG9ydCBteGNzcjsKIAlzaWdpbmZvX3QgaW5mbzsKKwl1bnNpZ25lZCBzaG9ydCBteGNzcjsKIAogCS8qCiAJICogU2F2ZSB0aGUgaW5mbyBmb3IgdGhlIGV4Y2VwdGlvbiBoYW5kbGVyIGFuZCBjbGVhciB0aGUgZXJyb3IuCkBAIC0xMTE2LDcgKzExMTgsNyBAQAogCiB1bnNpZ25lZCBsb25nIHBhdGNoX2VzcGZpeF9kZXNjKHVuc2lnbmVkIGxvbmcgdWVzcCwgdW5zaWduZWQgbG9uZyBrZXNwKQogewotCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0ID0gX19nZXRfY3B1X3ZhcihnZHRfcGFnZSkuZ2R0OworCXN0cnVjdCBkZXNjX3N0cnVjdCAqZ2R0ID0gZ2V0X2NwdV9nZHRfdGFibGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAl1bnNpZ25lZCBsb25nIGJhc2UgPSAoa2VzcCAtIHVlc3ApICYgLVRIUkVBRF9TSVpFOwogCXVuc2lnbmVkIGxvbmcgbmV3X2tlc3AgPSBrZXNwIC0gYmFzZTsKIAl1bnNpZ25lZCBsb25nIGxpbV9wYWdlcyA9IChuZXdfa2VzcCB8IChUSFJFQURfU0laRSAtIDEpKSA+PiBQQUdFX1NISUZUOwpAQCAtMTE5NSwxOSArMTE5NywxNiBAQAogCWVhcmx5X2lvdW5tYXAocCwgNCk7CiAjZW5kaWYKIAotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotCWluaXRfYXBpY19tYXBwaW5ncygpOwotI2VuZGlmCi0Jc2V0X3RyYXBfZ2F0ZSgwLCAgJmRpdmlkZV9lcnJvcik7Ci0Jc2V0X2ludHJfZ2F0ZSgxLCAgJmRlYnVnKTsKLQlzZXRfaW50cl9nYXRlKDIsICAmbm1pKTsKLQlzZXRfc3lzdGVtX2ludHJfZ2F0ZSgzLCAmaW50Myk7IC8qIGludDMvNCBjYW4gYmUgY2FsbGVkIGZyb20gYWxsICovCi0Jc2V0X3N5c3RlbV9nYXRlKDQsICZvdmVyZmxvdyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg1LCAgJmJvdW5kcyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg2LCAgJmludmFsaWRfb3ApOwotCXNldF90cmFwX2dhdGUoNywgICZkZXZpY2Vfbm90X2F2YWlsYWJsZSk7Ci0Jc2V0X3Rhc2tfZ2F0ZSg4LCAgR0RUX0VOVFJZX0RPVUJMRUZBVUxUX1RTUyk7Ci0Jc2V0X3RyYXBfZ2F0ZSg5LCAgJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7CisJc2V0X3RyYXBfZ2F0ZSgwLCAmZGl2aWRlX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDEsICZkZWJ1Zyk7CisJc2V0X2ludHJfZ2F0ZSgyLCAmbm1pKTsKKwlzZXRfc3lzdGVtX2ludHJfZ2F0ZSgzLCAmaW50Myk7IC8qIGludDMgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF9zeXN0ZW1fZ2F0ZSg0LCAmb3ZlcmZsb3cpOyAvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KKwlzZXRfdHJhcF9nYXRlKDUsICZib3VuZHMpOworCXNldF90cmFwX2dhdGUoNiwgJmludmFsaWRfb3ApOworCXNldF90cmFwX2dhdGUoNywgJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKKwlzZXRfdGFza19nYXRlKDgsIEdEVF9FTlRSWV9ET1VCTEVGQVVMVF9UU1MpOworCXNldF90cmFwX2dhdGUoOSwgJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7CiAJc2V0X3RyYXBfZ2F0ZSgxMCwgJmludmFsaWRfVFNTKTsKIAlzZXRfdHJhcF9nYXRlKDExLCAmc2VnbWVudF9ub3RfcHJlc2VudCk7CiAJc2V0X3RyYXBfZ2F0ZSgxMiwgJnN0YWNrX3NlZ21lbnQpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3RyYXBzXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYwppbmRleCBhZGZmNzZlLi4yNjk2YTY4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdHJhcHNfNjQuYwpAQCAtMTAsNDkgKzEwLDQ5IEBACiAgKiAnVHJhcHMuYycgaGFuZGxlcyBoYXJkd2FyZSB0cmFwcyBhbmQgZmF1bHRzIGFmdGVyIHdlIGhhdmUgc2F2ZWQgc29tZQogICogc3RhdGUgaW4gJ2VudHJ5LlMnLgogICovCi0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgotI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2tleGVjLmg+Ci0jaW5jbHVkZSA8bGludXgvdW53aW5kLmg+CiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgotI2luY2x1ZGUgPGxpbnV4L2tkZWJ1Zy5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KLQotI2luY2x1ZGUgPG1hY2hfdHJhcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9rZGVidWcuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC91bndpbmQuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgva2V4ZWMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2J1Zy5oPgorI2luY2x1ZGUgPGxpbnV4L25taS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAKICNpZiBkZWZpbmVkKENPTkZJR19FREFDKQogI2luY2x1ZGUgPGxpbnV4L2VkYWMuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxhc20vc3RhY2t0cmFjZS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vZGVidWdyZWcuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS91bndpbmQuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogI2luY2x1ZGUgPGFzbS9pMzg3Lmg+Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS91bndpbmQuaD4KLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxhc20vcGRhLmg+Ci0jaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAjaW5jbHVkZSA8YXNtL25taS5oPgotI2luY2x1ZGUgPGFzbS9zdGFja3RyYWNlLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCisjaW5jbHVkZSA8bWFjaF90cmFwcy5oPgogCiBhc21saW5rYWdlIHZvaWQgZGl2aWRlX2Vycm9yKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIGRlYnVnKHZvaWQpOwpAQCAtNzEsMTIgKzcxLDE1IEBACiBhc21saW5rYWdlIHZvaWQgcGFnZV9mYXVsdCh2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBjb3Byb2Nlc3Nvcl9lcnJvcih2b2lkKTsKIGFzbWxpbmthZ2Ugdm9pZCBzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKHZvaWQpOwotYXNtbGlua2FnZSB2b2lkIHJlc2VydmVkKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIGFsaWdubWVudF9jaGVjayh2b2lkKTsKLWFzbWxpbmthZ2Ugdm9pZCBtYWNoaW5lX2NoZWNrKHZvaWQpOwogYXNtbGlua2FnZSB2b2lkIHNwdXJpb3VzX2ludGVycnVwdF9idWcodm9pZCk7Cithc21saW5rYWdlIHZvaWQgbWFjaGluZV9jaGVjayh2b2lkKTsKIAoraW50IHBhbmljX29uX3VucmVjb3ZlcmVkX25taTsKK2ludCBrc3RhY2tfZGVwdGhfdG9fcHJpbnQgPSAxMjsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgY29kZV9ieXRlcyA9IDY0Oworc3RhdGljIGludCBpZ25vcmVfbm1pczsKK3N0YXRpYyBpbnQgZGllX2NvdW50ZXI7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25kaXRpb25hbF9zdGkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CkBAIC0xMDAsMzQgKzEwMyw5IEBACiAJZGVjX3ByZWVtcHRfY291bnQoKTsKIH0KIAotaW50IGtzdGFja19kZXB0aF90b19wcmludCA9IDEyOwotCiB2b2lkIHByaW50a19hZGRyZXNzKHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgaW50IHJlbGlhYmxlKQogewotI2lmZGVmIENPTkZJR19LQUxMU1lNUwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gMCwgc3ltc2l6ZTsKLQljb25zdCBjaGFyICpzeW1uYW1lOwotCWNoYXIgKm1vZG5hbWU7Ci0JY2hhciAqZGVsaW0gPSAiOiI7Ci0JY2hhciBuYW1lYnVmW0tTWU1fTkFNRV9MRU5dOwotCWNoYXIgcmVsaWFiWzRdID0gIiI7Ci0KLQlzeW1uYW1lID0ga2FsbHN5bXNfbG9va3VwKGFkZHJlc3MsICZzeW1zaXplLCAmb2Zmc2V0LAotCQkJCQkmbW9kbmFtZSwgbmFtZWJ1Zik7Ci0JaWYgKCFzeW1uYW1lKSB7Ci0JCXByaW50aygiIFs8JTAxNmx4Pl1cbiIsIGFkZHJlc3MpOwotCQlyZXR1cm47Ci0JfQotCWlmICghcmVsaWFibGUpCi0JCXN0cmNweShyZWxpYWIsICI/ICIpOwotCi0JaWYgKCFtb2RuYW1lKQotCQltb2RuYW1lID0gZGVsaW0gPSAiIjsKLQlwcmludGsoIiBbPCUwMTZseD5dICVzJXMlcyVzJXMrMHglbHgvMHglbHhcbiIsCi0JCWFkZHJlc3MsIHJlbGlhYiwgZGVsaW0sIG1vZG5hbWUsIGRlbGltLCBzeW1uYW1lLCBvZmZzZXQsIHN5bXNpemUpOwotI2Vsc2UKLQlwcmludGsoIiBbPCUwMTZseD5dXG4iLCBhZGRyZXNzKTsKLSNlbmRpZgorCXByaW50aygiIFs8JTAxNmx4Pl0gJXMlcFNcbiIsIGFkZHJlc3MsIHJlbGlhYmxlID8gIiI6ICI/ICIsICh2b2lkICopIGFkZHJlc3MpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyAqaW5fZXhjZXB0aW9uX3N0YWNrKHVuc2lnbmVkIGNwdSwgdW5zaWduZWQgbG9uZyBzdGFjaywKQEAgLTIwNCw4ICsxODIsNiBAQAogCXJldHVybiBOVUxMOwogfQogCi0jZGVmaW5lIE1TRyh0eHQpIG9wcy0+d2FybmluZyhkYXRhLCB0eHQpCi0KIC8qCiAgKiB4ODYtNjQgY2FuIGhhdmUgdXAgdG8gdGhyZWUga2VybmVsIHN0YWNrczogCiAgKiBwcm9jZXNzIHN0YWNrCkBAIC0yMzIsMTEgKzIwOCwxMSBAQAogCXVuc2lnbmVkIGxvbmcgcmV0dXJuX2FkZHJlc3M7CiB9OwogCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwcmludF9jb250ZXh0X3N0YWNrKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sCi0JCQkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnAsCi0JCQkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEsCi0JCQkJdW5zaWduZWQgbG9uZyAqZW5kKQorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCitwcmludF9jb250ZXh0X3N0YWNrKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm8sCisJCXVuc2lnbmVkIGxvbmcgKnN0YWNrLCB1bnNpZ25lZCBsb25nIGJwLAorCQljb25zdCBzdHJ1Y3Qgc3RhY2t0cmFjZV9vcHMgKm9wcywgdm9pZCAqZGF0YSwKKwkJdW5zaWduZWQgbG9uZyAqZW5kKQogewogCXN0cnVjdCBzdGFja19mcmFtZSAqZnJhbWUgPSAoc3RydWN0IHN0YWNrX2ZyYW1lICopYnA7CiAKQEAgLTI1OCw3ICsyMzQsNyBAQAogCXJldHVybiBicDsKIH0KIAotdm9pZCBkdW1wX3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKK3ZvaWQgZHVtcF90cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLAogCQl1bnNpZ25lZCBsb25nICpzdGFjaywgdW5zaWduZWQgbG9uZyBicCwKIAkJY29uc3Qgc3RydWN0IHN0YWNrdHJhY2Vfb3BzICpvcHMsIHZvaWQgKmRhdGEpCiB7CkBAIC0yNjcsMzYgKzI0MywzNCBAQAogCXVuc2lnbmVkIHVzZWQgPSAwOwogCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGluZm87CiAKLQlpZiAoIXRzaykKLQkJdHNrID0gY3VycmVudDsKLQl0aW5mbyA9IHRhc2tfdGhyZWFkX2luZm8odHNrKTsKKwlpZiAoIXRhc2spCisJCXRhc2sgPSBjdXJyZW50OwogCiAJaWYgKCFzdGFjaykgewogCQl1bnNpZ25lZCBsb25nIGR1bW15OwogCQlzdGFjayA9ICZkdW1teTsKLQkJaWYgKHRzayAmJiB0c2sgIT0gY3VycmVudCkKLQkJCXN0YWNrID0gKHVuc2lnbmVkIGxvbmcgKil0c2stPnRocmVhZC5zcDsKKwkJaWYgKHRhc2sgJiYgdGFzayAhPSBjdXJyZW50KQorCQkJc3RhY2sgPSAodW5zaWduZWQgbG9uZyAqKXRhc2stPnRocmVhZC5zcDsKIAl9CiAKICNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgogCWlmICghYnApIHsKLQkJaWYgKHRzayA9PSBjdXJyZW50KSB7CisJCWlmICh0YXNrID09IGN1cnJlbnQpIHsKIAkJCS8qIEdyYWIgYnAgcmlnaHQgZnJvbSBvdXIgcmVncyAqLwotCQkJYXNtKCJtb3ZxICUlcmJwLCAlMCIgOiAiPXIiIChicCk6KTsKKwkJCWFzbSgibW92cSAlJXJicCwgJTAiIDogIj1yIiAoYnApIDopOwogCQl9IGVsc2UgewogCQkJLyogYnAgaXMgdGhlIGxhc3QgcmVnIHB1c2hlZCBieSBzd2l0Y2hfdG8gKi8KLQkJCWJwID0gKih1bnNpZ25lZCBsb25nICopIHRzay0+dGhyZWFkLnNwOworCQkJYnAgPSAqKHVuc2lnbmVkIGxvbmcgKikgdGFzay0+dGhyZWFkLnNwOwogCQl9CiAJfQogI2VuZGlmCiAKLQotCiAJLyoKIAkgKiBQcmludCBmdW5jdGlvbiBjYWxsIGVudHJpZXMgaW4gYWxsIHN0YWNrcywgc3RhcnRpbmcgYXQgdGhlCiAJICogY3VycmVudCBzdGFjayBhZGRyZXNzLiBJZiB0aGUgc3RhY2tzIGNvbnNpc3Qgb2YgbmVzdGVkCiAJICogZXhjZXB0aW9ucwogCSAqLworCXRpbmZvID0gdGFza190aHJlYWRfaW5mbyh0YXNrKTsKIAlmb3IgKDs7KSB7CiAJCWNoYXIgKmlkOwogCQl1bnNpZ25lZCBsb25nICplc3RhY2tfZW5kOwpAQCAtMzgxLDE4ICszNTUsMTcgQEAKIAkuYWRkcmVzcyA9IHByaW50X3RyYWNlX2FkZHJlc3MsCiB9OwogCi12b2lkCi1zaG93X3RyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyAqc3RhY2ssCi0JCXVuc2lnbmVkIGxvbmcgYnApCit2b2lkIHNob3dfdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJdW5zaWduZWQgbG9uZyAqc3RhY2ssIHVuc2lnbmVkIGxvbmcgYnApCiB7CiAJcHJpbnRrKCJcbkNhbGwgVHJhY2U6XG4iKTsKLQlkdW1wX3RyYWNlKHRzaywgcmVncywgc3RhY2ssIGJwLCAmcHJpbnRfdHJhY2Vfb3BzLCBOVUxMKTsKKwlkdW1wX3RyYWNlKHRhc2ssIHJlZ3MsIHN0YWNrLCBicCwgJnByaW50X3RyYWNlX29wcywgTlVMTCk7CiAJcHJpbnRrKCJcbiIpOwogfQogCiBzdGF0aWMgdm9pZAotX3Nob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nICpzcCwKLQkJCQkJCQl1bnNpZ25lZCBsb25nIGJwKQorX3Nob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJdW5zaWduZWQgbG9uZyAqc3AsIHVuc2lnbmVkIGxvbmcgYnApCiB7CiAJdW5zaWduZWQgbG9uZyAqc3RhY2s7CiAJaW50IGk7CkBAIC00MDQsMTQgKzM3NywxNCBAQAogCS8vIGJhY2sgdHJhY2UgZm9yIHRoaXMgY3B1LgogCiAJaWYgKHNwID09IE5VTEwpIHsKLQkJaWYgKHRzaykKLQkJCXNwID0gKHVuc2lnbmVkIGxvbmcgKil0c2stPnRocmVhZC5zcDsKKwkJaWYgKHRhc2spCisJCQlzcCA9ICh1bnNpZ25lZCBsb25nICopdGFzay0+dGhyZWFkLnNwOwogCQllbHNlCiAJCQlzcCA9ICh1bnNpZ25lZCBsb25nICopJnNwOwogCX0KIAogCXN0YWNrID0gc3A7Ci0JZm9yKGk9MDsgaSA8IGtzdGFja19kZXB0aF90b19wcmludDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IGtzdGFja19kZXB0aF90b19wcmludDsgaSsrKSB7CiAJCWlmIChzdGFjayA+PSBpcnFzdGFjayAmJiBzdGFjayA8PSBpcnFzdGFja19lbmQpIHsKIAkJCWlmIChzdGFjayA9PSBpcnFzdGFja19lbmQpIHsKIAkJCQlzdGFjayA9ICh1bnNpZ25lZCBsb25nICopIChpcnFzdGFja19lbmRbLTFdKTsKQEAgLTQyNiwxMiArMzk5LDEyIEBACiAJCXByaW50aygiICUwMTZseCIsICpzdGFjaysrKTsKIAkJdG91Y2hfbm1pX3dhdGNoZG9nKCk7CiAJfQotCXNob3dfdHJhY2UodHNrLCByZWdzLCBzcCwgYnApOworCXNob3dfdHJhY2UodGFzaywgcmVncywgc3AsIGJwKTsKIH0KIAotdm9pZCBzaG93X3N0YWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25nICogc3ApCit2b2lkIHNob3dfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCB1bnNpZ25lZCBsb25nICpzcCkKIHsKLQlfc2hvd19zdGFjayh0c2ssIE5VTEwsIHNwLCAwKTsKKwlfc2hvd19zdGFjayh0YXNrLCBOVUxMLCBzcCwgMCk7CiB9CiAKIC8qCkBAIC00MzksOCArNDEyLDggQEAKICAqLwogdm9pZCBkdW1wX3N0YWNrKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBkdW1teTsKIAl1bnNpZ25lZCBsb25nIGJwID0gMDsKKwl1bnNpZ25lZCBsb25nIHN0YWNrOwogCiAjaWZkZWYgQ09ORklHX0ZSQU1FX1BPSU5URVIKIAlpZiAoIWJwKQpAQCAtNDUyLDcgKzQyNSw3IEBACiAJCWluaXRfdXRzbmFtZSgpLT5yZWxlYXNlLAogCQkoaW50KXN0cmNzcG4oaW5pdF91dHNuYW1lKCktPnZlcnNpb24sICIgIiksCiAJCWluaXRfdXRzbmFtZSgpLT52ZXJzaW9uKTsKLQlzaG93X3RyYWNlKE5VTEwsIE5VTEwsICZkdW1teSwgYnApOworCXNob3dfdHJhY2UoTlVMTCwgTlVMTCwgJnN0YWNrLCBicCk7CiB9CiAKIEVYUE9SVF9TWU1CT0woZHVtcF9zdGFjayk7CkBAIC00NjMsMTIgKzQzNiw4IEBACiAJdW5zaWduZWQgbG9uZyBzcDsKIAljb25zdCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyID0gY3B1X3BkYShjcHUpLT5wY3VycmVudDsKLQl1OCAqaXA7Ci0JdW5zaWduZWQgaW50IGNvZGVfcHJvbG9ndWUgPSBjb2RlX2J5dGVzICogNDMgLyA2NDsKLQl1bnNpZ25lZCBpbnQgY29kZV9sZW4gPSBjb2RlX2J5dGVzOwogCiAJc3AgPSByZWdzLT5zcDsKLQlpcCA9ICh1OCAqKSByZWdzLT5pcCAtIGNvZGVfcHJvbG9ndWU7CiAJcHJpbnRrKCJDUFUgJWQgIiwgY3B1KTsKIAlfX3Nob3dfcmVncyhyZWdzKTsKIAlwcmludGsoIlByb2Nlc3MgJXMgKHBpZDogJWQsIHRocmVhZGluZm8gJXAsIHRhc2sgJXApXG4iLApAQCAtNDc5LDE1ICs0NDgsMjEgQEAKIAkgKiB0aW1lIG9mIHRoZSBmYXVsdC4uCiAJICovCiAJaWYgKCF1c2VyX21vZGUocmVncykpIHsKKwkJdW5zaWduZWQgaW50IGNvZGVfcHJvbG9ndWUgPSBjb2RlX2J5dGVzICogNDMgLyA2NDsKKwkJdW5zaWduZWQgaW50IGNvZGVfbGVuID0gY29kZV9ieXRlczsKIAkJdW5zaWduZWQgY2hhciBjOworCQl1OCAqaXA7CisKIAkJcHJpbnRrKCJTdGFjazogIik7CiAJCV9zaG93X3N0YWNrKE5VTEwsIHJlZ3MsICh1bnNpZ25lZCBsb25nICopc3AsIHJlZ3MtPmJwKTsKIAkJcHJpbnRrKCJcbiIpOwogCiAJCXByaW50ayhLRVJOX0VNRVJHICJDb2RlOiAiKTsKKworCQlpcCA9ICh1OCAqKXJlZ3MtPmlwIC0gY29kZV9wcm9sb2d1ZTsKIAkJaWYgKGlwIDwgKHU4ICopUEFHRV9PRkZTRVQgfHwgcHJvYmVfa2VybmVsX2FkZHJlc3MoaXAsIGMpKSB7CiAJCQkvKiB0cnkgc3RhcnRpbmcgYXQgUklQICovCi0JCQlpcCA9ICh1OCAqKSByZWdzLT5pcDsKKwkJCWlwID0gKHU4ICopcmVncy0+aXA7CiAJCQljb2RlX2xlbiA9IGNvZGVfbGVuIC0gY29kZV9wcm9sb2d1ZSArIDE7CiAJCX0KIAkJZm9yIChpID0gMDsgaSA8IGNvZGVfbGVuOyBpKyssIGlwKyspIHsKQEAgLTUwMyw3ICs0NzgsNyBAQAogCQl9CiAJfQogCXByaW50aygiXG4iKTsKLX0JCit9CiAKIGludCBpc192YWxpZF9idWdhZGRyKHVuc2lnbmVkIGxvbmcgaXApCiB7CkBAIC01NjEsMTAgKzUzNiw5IEBACiAJZG9fZXhpdChzaWducik7CiB9CiAKLWludCBfX2twcm9iZXMgX19kaWUoY29uc3QgY2hhciAqIHN0ciwgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycikKK2ludCBfX2twcm9iZXMgX19kaWUoY29uc3QgY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnIpCiB7Ci0Jc3RhdGljIGludCBkaWVfY291bnRlcjsKLQlwcmludGsoS0VSTl9FTUVSRyAiJXM6ICUwNGx4IFsldV0gIiwgc3RyLCBlcnIgJiAweGZmZmYsKytkaWVfY291bnRlcik7CisJcHJpbnRrKEtFUk5fRU1FUkcgIiVzOiAlMDRseCBbJXVdICIsIHN0ciwgZXJyICYgMHhmZmZmLCArK2RpZV9jb3VudGVyKTsKICNpZmRlZiBDT05GSUdfUFJFRU1QVAogCXByaW50aygiUFJFRU1QVCAiKTsKICNlbmRpZgpAQCAtNTc1LDggKzU0OSwxMCBAQAogCXByaW50aygiREVCVUdfUEFHRUFMTE9DIik7CiAjZW5kaWYKIAlwcmludGsoIlxuIik7Ci0JaWYgKG5vdGlmeV9kaWUoRElFX09PUFMsIHN0ciwgcmVncywgZXJyLCBjdXJyZW50LT50aHJlYWQudHJhcF9ubywgU0lHU0VHVikgPT0gTk9USUZZX1NUT1ApCisJaWYgKG5vdGlmeV9kaWUoRElFX09PUFMsIHN0ciwgcmVncywgZXJyLAorCQkJY3VycmVudC0+dGhyZWFkLnRyYXBfbm8sIFNJR1NFR1YpID09IE5PVElGWV9TVE9QKQogCQlyZXR1cm4gMTsKKwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwogCWFkZF90YWludChUQUlOVF9ESUUpOwogCS8qIEV4ZWN1dGl2ZSBzdW1tYXJ5IGluIGNhc2UgdGhlIG9vcHMgc2Nyb2xsZWQgYXdheSAqLwpAQCAtNTg4LDcgKzU2NCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXZvaWQgZGllKGNvbnN0IGNoYXIgKiBzdHIsIHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnIpCit2b2lkIGRpZShjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycikKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzID0gb29wc19iZWdpbigpOwogCkBAIC02MDUsOCArNTgxLDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKG5vdGlmeV9kaWUoRElFX05NSVdBVENIRE9HLCBzdHIsIHJlZ3MsIDAsIDIsIFNJR0lOVCkgPT0KLQkgICAgTk9USUZZX1NUT1ApCisJaWYgKG5vdGlmeV9kaWUoRElFX05NSVdBVENIRE9HLCBzdHIsIHJlZ3MsIDAsIDIsIFNJR0lOVCkgPT0gTk9USUZZX1NUT1ApCiAJCXJldHVybjsKIAogCWZsYWdzID0gb29wc19iZWdpbigpOwpAQCAtNjE0LDcgKzU4OSw5IEBACiAJICogV2UgYXJlIGluIHRyb3VibGUgYW55d2F5LCBsZXRzIGF0IGxlYXN0IHRyeQogCSAqIHRvIGdldCBhIG1lc3NhZ2Ugb3V0LgogCSAqLwotCXByaW50ayhzdHIsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJcHJpbnRrKEtFUk5fRU1FUkcgIiVzIiwgc3RyKTsKKwlwcmludGsoIiBvbiBDUFUlZCwgaXAgJTA4bHgsIHJlZ2lzdGVyczpcbiIsCisJCXNtcF9wcm9jZXNzb3JfaWQoKSwgcmVncy0+aXApOwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwogCWlmIChrZXhlY19zaG91bGRfY3Jhc2goY3VycmVudCkpCiAJCWNyYXNoX2tleGVjKHJlZ3MpOwpAQCAtNjI2LDQ0ICs2MDMsNDQgQEAKIAlkb19leGl0KFNJR0JVUyk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fa3Byb2JlcyBkb190cmFwKGludCB0cmFwbnIsIGludCBzaWduciwgY2hhciAqc3RyLAotCQkJICAgICAgc3RydWN0IHB0X3JlZ3MgKiByZWdzLCBsb25nIGVycm9yX2NvZGUsCi0JCQkgICAgICBzaWdpbmZvX3QgKmluZm8pCitzdGF0aWMgdm9pZCBfX2twcm9iZXMKK2RvX3RyYXAoaW50IHRyYXBuciwgaW50IHNpZ25yLCBjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLAorCWxvbmcgZXJyb3JfY29kZSwgc2lnaW5mb190ICppbmZvKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrID0gY3VycmVudDsKIAotCWlmICh1c2VyX21vZGUocmVncykpIHsKLQkJLyoKLQkJICogV2Ugd2FudCBlcnJvcl9jb2RlIGFuZCB0cmFwX25vIHNldCBmb3IgdXNlcnNwYWNlCi0JCSAqIGZhdWx0cyBhbmQga2VybmVsc3BhY2UgZmF1bHRzIHdoaWNoIHJlc3VsdCBpbgotCQkgKiBkaWUoKSwgYnV0IG5vdCBrZXJuZWxzcGFjZSBmYXVsdHMgd2hpY2ggYXJlIGZpeGVkCi0JCSAqIHVwLiAgZGllKCkgZ2l2ZXMgdGhlIHByb2Nlc3Mgbm8gY2hhbmNlIHRvIGhhbmRsZQotCQkgKiB0aGUgc2lnbmFsIGFuZCBub3RpY2UgdGhlIGtlcm5lbCBmYXVsdCBpbmZvcm1hdGlvbiwKLQkJICogc28gdGhhdCB3b24ndCByZXN1bHQgaW4gcG9sbHV0aW5nIHRoZSBpbmZvcm1hdGlvbgotCQkgKiBhYm91dCBwcmV2aW91c2x5IHF1ZXVlZCwgYnV0IG5vdCB5ZXQgZGVsaXZlcmVkLAotCQkgKiBmYXVsdHMuICBTZWUgYWxzbyBkb19nZW5lcmFsX3Byb3RlY3Rpb24gYmVsb3cuCi0JCSAqLwotCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKLQkJdHNrLT50aHJlYWQudHJhcF9ubyA9IHRyYXBucjsKKwlpZiAoIXVzZXJfbW9kZShyZWdzKSkKKwkJZ290byBrZXJuZWxfdHJhcDsKIAotCQlpZiAoc2hvd191bmhhbmRsZWRfc2lnbmFscyAmJiB1bmhhbmRsZWRfc2lnbmFsKHRzaywgc2lnbnIpICYmCi0JCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKLQkJCXByaW50ayhLRVJOX0lORk8KLQkJCSAgICAgICAiJXNbJWRdIHRyYXAgJXMgaXA6JWx4IHNwOiVseCBlcnJvcjolbHgiLAotCQkJICAgICAgIHRzay0+Y29tbSwgdHNrLT5waWQsIHN0ciwKLQkJCSAgICAgICByZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOwotCQkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7Ci0JCQlwcmludGsoIlxuIik7Ci0JCX0KKwkvKgorCSAqIFdlIHdhbnQgZXJyb3JfY29kZSBhbmQgdHJhcF9ubyBzZXQgZm9yIHVzZXJzcGFjZSBmYXVsdHMgYW5kCisJICoga2VybmVsc3BhY2UgZmF1bHRzIHdoaWNoIHJlc3VsdCBpbiBkaWUoKSwgYnV0IG5vdAorCSAqIGtlcm5lbHNwYWNlIGZhdWx0cyB3aGljaCBhcmUgZml4ZWQgdXAuICBkaWUoKSBnaXZlcyB0aGUKKwkgKiBwcm9jZXNzIG5vIGNoYW5jZSB0byBoYW5kbGUgdGhlIHNpZ25hbCBhbmQgbm90aWNlIHRoZQorCSAqIGtlcm5lbCBmYXVsdCBpbmZvcm1hdGlvbiwgc28gdGhhdCB3b24ndCByZXN1bHQgaW4gcG9sbHV0aW5nCisJICogdGhlIGluZm9ybWF0aW9uIGFib3V0IHByZXZpb3VzbHkgcXVldWVkLCBidXQgbm90IHlldAorCSAqIGRlbGl2ZXJlZCwgZmF1bHRzLiAgU2VlIGFsc28gZG9fZ2VuZXJhbF9wcm90ZWN0aW9uIGJlbG93LgorCSAqLworCXRzay0+dGhyZWFkLmVycm9yX2NvZGUgPSBlcnJvcl9jb2RlOworCXRzay0+dGhyZWFkLnRyYXBfbm8gPSB0cmFwbnI7CiAKLQkJaWYgKGluZm8pCi0JCQlmb3JjZV9zaWdfaW5mbyhzaWduciwgaW5mbywgdHNrKTsKLQkJZWxzZQotCQkJZm9yY2Vfc2lnKHNpZ25yLCB0c2spOwotCQlyZXR1cm47CisJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIHNpZ25yKSAmJgorCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkgICAgICAgIiVzWyVkXSB0cmFwICVzIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJICAgICAgIHRzay0+Y29tbSwgdHNrLT5waWQsIHN0ciwKKwkJICAgICAgIHJlZ3MtPmlwLCByZWdzLT5zcCwgZXJyb3JfY29kZSk7CisJCXByaW50X3ZtYV9hZGRyKCIgaW4gIiwgcmVncy0+aXApOworCQlwcmludGsoIlxuIik7CiAJfQogCisJaWYgKGluZm8pCisJCWZvcmNlX3NpZ19pbmZvKHNpZ25yLCBpbmZvLCB0c2spOworCWVsc2UKKwkJZm9yY2Vfc2lnKHNpZ25yLCB0c2spOworCXJldHVybjsKIAora2VybmVsX3RyYXA6CiAJaWYgKCFmaXh1cF9leGNlcHRpb24ocmVncykpIHsKIAkJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVycm9yX2NvZGU7CiAJCXRzay0+dGhyZWFkLnRyYXBfbm8gPSB0cmFwbnI7CkBAIC02NzMsNDEgKzY1MCwzOSBAQAogfQogCiAjZGVmaW5lIERPX0VSUk9SKHRyYXBuciwgc2lnbnIsIHN0ciwgbmFtZSkgXAotYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkgXAoteyBcCi0JaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikgXAotCQkJCQkJCT09IE5PVElGWV9TVE9QKSBcCi0JCXJldHVybjsgXAorYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkJXAorewkJCQkJCQkJCVwKKwlpZiAobm90aWZ5X2RpZShESUVfVFJBUCwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCB0cmFwbnIsIHNpZ25yKQlcCisJCQkJCQkJPT0gTk9USUZZX1NUT1ApCVwKKwkJcmV0dXJuOwkJCQkJCQlcCiAJY29uZGl0aW9uYWxfc3RpKHJlZ3MpOwkJCQkJCVwKLQlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7IFwKKwlkb190cmFwKHRyYXBuciwgc2lnbnIsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgTlVMTCk7CQlcCiB9CiAKLSNkZWZpbmUgRE9fRVJST1JfSU5GTyh0cmFwbnIsIHNpZ25yLCBzdHIsIG5hbWUsIHNpY29kZSwgc2lhZGRyKSBcCi1hc21saW5rYWdlIHZvaWQgZG9fIyNuYW1lKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKSBcCi17IFwKLQlzaWdpbmZvX3QgaW5mbzsgXAotCWluZm8uc2lfc2lnbm8gPSBzaWducjsgXAotCWluZm8uc2lfZXJybm8gPSAwOyBcCi0JaW5mby5zaV9jb2RlID0gc2ljb2RlOyBcCi0JaW5mby5zaV9hZGRyID0gKHZvaWQgX191c2VyICopc2lhZGRyOyBcCi0JdHJhY2VfaGFyZGlycXNfZml4dXAoKTsgXAotCWlmIChub3RpZnlfZGllKERJRV9UUkFQLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsIHRyYXBuciwgc2lnbnIpIFwKLQkJCQkJCQk9PSBOT1RJRllfU1RPUCkgXAotCQlyZXR1cm47IFwKKyNkZWZpbmUgRE9fRVJST1JfSU5GTyh0cmFwbnIsIHNpZ25yLCBzdHIsIG5hbWUsIHNpY29kZSwgc2lhZGRyKQkJXAorYXNtbGlua2FnZSB2b2lkIGRvXyMjbmFtZShzdHJ1Y3QgcHRfcmVncyAqIHJlZ3MsIGxvbmcgZXJyb3JfY29kZSkJXAorewkJCQkJCQkJCVwKKwlzaWdpbmZvX3QgaW5mbzsJCQkJCQkJXAorCWluZm8uc2lfc2lnbm8gPSBzaWducjsJCQkJCQlcCisJaW5mby5zaV9lcnJubyA9IDA7CQkJCQkJXAorCWluZm8uc2lfY29kZSA9IHNpY29kZTsJCQkJCQlcCisJaW5mby5zaV9hZGRyID0gKHZvaWQgX191c2VyICopc2lhZGRyOwkJCQlcCisJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsJCQkJCQlcCisJaWYgKG5vdGlmeV9kaWUoRElFX1RSQVAsIHN0ciwgcmVncywgZXJyb3JfY29kZSwgdHJhcG5yLCBzaWducikJXAorCQkJCQkJCT09IE5PVElGWV9TVE9QKQlcCisJCXJldHVybjsJCQkJCQkJXAogCWNvbmRpdGlvbmFsX3N0aShyZWdzKTsJCQkJCQlcCi0JZG9fdHJhcCh0cmFwbnIsIHNpZ25yLCBzdHIsIHJlZ3MsIGVycm9yX2NvZGUsICZpbmZvKTsgXAorCWRvX3RyYXAodHJhcG5yLCBzaWduciwgc3RyLCByZWdzLCBlcnJvcl9jb2RlLCAmaW5mbyk7CQlcCiB9CiAKLURPX0VSUk9SX0lORk8oIDAsIFNJR0ZQRSwgICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQotRE9fRVJST1IoIDQsIFNJR1NFR1YsICJvdmVyZmxvdyIsIG92ZXJmbG93KQotRE9fRVJST1IoIDUsIFNJR1NFR1YsICJib3VuZHMiLCBib3VuZHMpCi1ET19FUlJPUl9JTkZPKCA2LCBTSUdJTEwsICAiaW52YWxpZCBvcGNvZGUiLCBpbnZhbGlkX29wLCBJTExfSUxMT1BOLCByZWdzLT5pcCkKLURPX0VSUk9SKCA3LCBTSUdTRUdWLCAiZGV2aWNlIG5vdCBhdmFpbGFibGUiLCBkZXZpY2Vfbm90X2F2YWlsYWJsZSkKLURPX0VSUk9SKCA5LCBTSUdGUEUsICAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQorRE9fRVJST1JfSU5GTygwLCBTSUdGUEUsICJkaXZpZGUgZXJyb3IiLCBkaXZpZGVfZXJyb3IsIEZQRV9JTlRESVYsIHJlZ3MtPmlwKQorRE9fRVJST1IoNCwgU0lHU0VHViwgIm92ZXJmbG93Iiwgb3ZlcmZsb3cpCitET19FUlJPUig1LCBTSUdTRUdWLCAiYm91bmRzIiwgYm91bmRzKQorRE9fRVJST1JfSU5GTyg2LCBTSUdJTEwsICJpbnZhbGlkIG9wY29kZSIsIGludmFsaWRfb3AsIElMTF9JTExPUE4sIHJlZ3MtPmlwKQorRE9fRVJST1IoOSwgU0lHRlBFLCAiY29wcm9jZXNzb3Igc2VnbWVudCBvdmVycnVuIiwgY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKQogRE9fRVJST1IoMTAsIFNJR1NFR1YsICJpbnZhbGlkIFRTUyIsIGludmFsaWRfVFNTKQotRE9fRVJST1IoMTEsIFNJR0JVUywgICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKK0RPX0VSUk9SKDExLCBTSUdCVVMsICJzZWdtZW50IG5vdCBwcmVzZW50Iiwgc2VnbWVudF9ub3RfcHJlc2VudCkKIERPX0VSUk9SX0lORk8oMTcsIFNJR0JVUywgImFsaWdubWVudCBjaGVjayIsIGFsaWdubWVudF9jaGVjaywgQlVTX0FEUkFMTiwgMCkKLURPX0VSUk9SKDE4LCBTSUdTRUdWLCAicmVzZXJ2ZWQiLCByZXNlcnZlZCkKIAogLyogUnVucyBvbiBJU1Qgc3RhY2sgKi8KIGFzbWxpbmthZ2Ugdm9pZCBkb19zdGFja19zZWdtZW50KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCkBAIC03MzcsMzEgKzcxMiwzNCBAQAogCQlkaWUoc3RyLCByZWdzLCBlcnJvcl9jb2RlKTsKIH0KIAotYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19nZW5lcmFsX3Byb3RlY3Rpb24oc3RydWN0IHB0X3JlZ3MgKiByZWdzLAotCQkJCQkJbG9uZyBlcnJvcl9jb2RlKQorYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcworZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwogCiAJY29uZGl0aW9uYWxfc3RpKHJlZ3MpOwogCi0JaWYgKHVzZXJfbW9kZShyZWdzKSkgewotCQl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKLQkJdHNrLT50aHJlYWQudHJhcF9ubyA9IDEzOworCXRzayA9IGN1cnJlbnQ7CisJaWYgKCF1c2VyX21vZGUocmVncykpCisJCWdvdG8gZ3BfaW5fa2VybmVsOwogCi0JCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgotCQkgICAgcHJpbnRrX3JhdGVsaW1pdCgpKSB7Ci0JCQlwcmludGsoS0VSTl9JTkZPCi0JCSAgICAgICAiJXNbJWRdIGdlbmVyYWwgcHJvdGVjdGlvbiBpcDolbHggc3A6JWx4IGVycm9yOiVseCIsCi0JCQkgICAgICAgdHNrLT5jb21tLCB0c2stPnBpZCwKLQkJCSAgICAgICByZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOwotCQkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7Ci0JCQlwcmludGsoIlxuIik7Ci0JCX0KKwl0c2stPnRocmVhZC5lcnJvcl9jb2RlID0gZXJyb3JfY29kZTsKKwl0c2stPnRocmVhZC50cmFwX25vID0gMTM7CiAKLQkJZm9yY2Vfc2lnKFNJR1NFR1YsIHRzayk7Ci0JCXJldHVybjsKLQl9IAorCWlmIChzaG93X3VuaGFuZGxlZF9zaWduYWxzICYmIHVuaGFuZGxlZF9zaWduYWwodHNrLCBTSUdTRUdWKSAmJgorCQkJcHJpbnRrX3JhdGVsaW1pdCgpKSB7CisJCXByaW50ayhLRVJOX0lORk8KKwkJCSIlc1slZF0gZ2VuZXJhbCBwcm90ZWN0aW9uIGlwOiVseCBzcDolbHggZXJyb3I6JWx4IiwKKwkJCXRzay0+Y29tbSwgdHNrLT5waWQsCisJCQlyZWdzLT5pcCwgcmVncy0+c3AsIGVycm9yX2NvZGUpOworCQlwcmludF92bWFfYWRkcigiIGluICIsIHJlZ3MtPmlwKTsKKwkJcHJpbnRrKCJcbiIpOworCX0KIAorCWZvcmNlX3NpZyhTSUdTRUdWLCB0c2spOworCXJldHVybjsKKworZ3BfaW5fa2VybmVsOgogCWlmIChmaXh1cF9leGNlcHRpb24ocmVncykpCiAJCXJldHVybjsKIApAQCAtNzc0LDE0ICs3NTIsMTQgQEAKIH0KIAogc3RhdGljIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKLW1lbV9wYXJpdHlfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICogcmVncykKK21lbV9wYXJpdHlfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXByaW50ayhLRVJOX0VNRVJHICJVaGh1aC4gTk1JIHJlY2VpdmVkIGZvciB1bmtub3duIHJlYXNvbiAlMDJ4LlxuIiwKIAkJcmVhc29uKTsKIAlwcmludGsoS0VSTl9FTUVSRyAiWW91IGhhdmUgc29tZSBoYXJkd2FyZSBwcm9ibGVtLCBsaWtlbHkgb24gdGhlIFBDSSBidXMuXG4iKTsKIAogI2lmIGRlZmluZWQoQ09ORklHX0VEQUMpCi0JaWYoZWRhY19oYW5kbGVyX3NldCgpKSB7CisJaWYgKGVkYWNfaGFuZGxlcl9zZXQoKSkgewogCQllZGFjX2F0b21pY19hc3NlcnRfZXJyb3IoKTsKIAkJcmV0dXJuOwogCX0KQEAgLTc5OCw3ICs3NzYsNyBAQAogfQogCiBzdGF0aWMgbm90cmFjZSBfX2twcm9iZXMgdm9pZAotaW9fY2hlY2tfZXJyb3IodW5zaWduZWQgY2hhciByZWFzb24sIHN0cnVjdCBwdF9yZWdzICogcmVncykKK2lvX2NoZWNrX2Vycm9yKHVuc2lnbmVkIGNoYXIgcmVhc29uLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAlwcmludGsoIk5NSTogSU9DSyBlcnJvciAoZGVidWcgaW50ZXJydXB0PylcbiIpOwogCXNob3dfcmVnaXN0ZXJzKHJlZ3MpOwpAQCAtODI4LDE0ICs4MDYsMTQgQEAKIAogLyogUnVucyBvbiBJU1Qgc3RhY2suIFRoaXMgY29kZSBtdXN0IGtlZXAgaW50ZXJydXB0cyBvZmYgYWxsIHRoZSB0aW1lLgogICAgTmVzdGVkIE5NSXMgYXJlIHByZXZlbnRlZCBieSB0aGUgQ1BVLiAqLwotYXNtbGlua2FnZSBub3RyYWNlICBfX2twcm9iZXMgdm9pZCBkZWZhdWx0X2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncykKK2FzbWxpbmthZ2Ugbm90cmFjZSBfX2twcm9iZXMgdm9pZCBkZWZhdWx0X2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAl1bnNpZ25lZCBjaGFyIHJlYXNvbiA9IDA7CiAJaW50IGNwdTsKIAogCWNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAotCS8qIE9ubHkgdGhlIEJTUCBnZXRzIGV4dGVybmFsIE5NSXMgZnJvbSB0aGUgc3lzdGVtLiAgKi8KKwkvKiBPbmx5IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20gdGhlIHN5c3RlbS4gKi8KIAlpZiAoIWNwdSkKIAkJcmVhc29uID0gZ2V0X25taV9yZWFzb24oKTsKIApAQCAtODQ3LDMyICs4MjUsNTcgQEAKIAkJICogT2ssIHNvIHRoaXMgaXMgbm9uZSBvZiB0aGUgZG9jdW1lbnRlZCBOTUkgc291cmNlcywKIAkJICogc28gaXQgbXVzdCBiZSB0aGUgTk1JIHdhdGNoZG9nLgogCQkgKi8KLQkJaWYgKG5taV93YXRjaGRvZ190aWNrKHJlZ3MscmVhc29uKSkKKwkJaWYgKG5taV93YXRjaGRvZ190aWNrKHJlZ3MsIHJlYXNvbikpCiAJCQlyZXR1cm47Ci0JCWlmICghZG9fbm1pX2NhbGxiYWNrKHJlZ3MsY3B1KSkKKwkJaWYgKCFkb19ubWlfY2FsbGJhY2socmVncywgY3B1KSkKIAkJCXVua25vd25fbm1pX2Vycm9yKHJlYXNvbiwgcmVncyk7CiAKIAkJcmV0dXJuOwogCX0KIAlpZiAobm90aWZ5X2RpZShESUVfTk1JLCAibm1pIiwgcmVncywgcmVhc29uLCAyLCBTSUdJTlQpID09IE5PVElGWV9TVE9QKQotCQlyZXR1cm47IAorCQlyZXR1cm47CiAKIAkvKiBBSzogZm9sbG93aW5nIGNoZWNrcyBzZWVtIHRvIGJlIGJyb2tlbiBvbiBtb2Rlcm4gY2hpcHNldHMuIEZJWE1FICovCi0KIAlpZiAocmVhc29uICYgMHg4MCkKIAkJbWVtX3Bhcml0eV9lcnJvcihyZWFzb24sIHJlZ3MpOwogCWlmIChyZWFzb24gJiAweDQwKQogCQlpb19jaGVja19lcnJvcihyZWFzb24sIHJlZ3MpOwogfQogCithc21saW5rYWdlIG5vdHJhY2UgX19rcHJvYmVzIHZvaWQKK2RvX25taShzdHJ1Y3QgcHRfcmVncyAqcmVncywgbG9uZyBlcnJvcl9jb2RlKQoreworCW5taV9lbnRlcigpOworCisJYWRkX3BkYShfX25taV9jb3VudCwgMSk7CisKKwlpZiAoIWlnbm9yZV9ubWlzKQorCQlkZWZhdWx0X2RvX25taShyZWdzKTsKKworCW5taV9leGl0KCk7Cit9CisKK3ZvaWQgc3RvcF9ubWkodm9pZCkKK3sKKwlhY3BpX25taV9kaXNhYmxlKCk7CisJaWdub3JlX25taXMrKzsKK30KKwordm9pZCByZXN0YXJ0X25taSh2b2lkKQoreworCWlnbm9yZV9ubWlzLS07CisJYWNwaV9ubWlfZW5hYmxlKCk7Cit9CisKIC8qIHJ1bnMgb24gSVNUIHN0YWNrLiAqLwotYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19pbnQzKHN0cnVjdCBwdF9yZWdzICogcmVncywgbG9uZyBlcnJvcl9jb2RlKQorYXNtbGlua2FnZSB2b2lkIF9fa3Byb2JlcyBkb19pbnQzKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBsb25nIGVycm9yX2NvZGUpCiB7CiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsKIAotCWlmIChub3RpZnlfZGllKERJRV9JTlQzLCAiaW50MyIsIHJlZ3MsIGVycm9yX2NvZGUsIDMsIFNJR1RSQVApID09IE5PVElGWV9TVE9QKSB7CisJaWYgKG5vdGlmeV9kaWUoRElFX0lOVDMsICJpbnQzIiwgcmVncywgZXJyb3JfY29kZSwgMywgU0lHVFJBUCkKKwkJCT09IE5PVElGWV9TVE9QKQogCQlyZXR1cm47Ci0JfQorCiAJcHJlZW1wdF9jb25kaXRpb25hbF9zdGkocmVncyk7CiAJZG9fdHJhcCgzLCBTSUdUUkFQLCAiaW50MyIsIHJlZ3MsIGVycm9yX2NvZGUsIE5VTEwpOwogCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOwpAQCAtOTAzLDggKzkwNiw4IEBACiBhc21saW5rYWdlIHZvaWQgX19rcHJvYmVzIGRvX2RlYnVnKHN0cnVjdCBwdF9yZWdzICogcmVncywKIAkJCQkgICB1bnNpZ25lZCBsb25nIGVycm9yX2NvZGUpCiB7Ci0JdW5zaWduZWQgbG9uZyBjb25kaXRpb247CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXVuc2lnbmVkIGxvbmcgY29uZGl0aW9uOwogCXNpZ2luZm9fdCBpbmZvOwogCiAJdHJhY2VfaGFyZGlycXNfZml4dXAoKTsKQEAgLTkyNSwyMSArOTI4LDE5IEBACiAKIAkvKiBNYXNrIG91dCBzcHVyaW91cyBkZWJ1ZyB0cmFwcyBkdWUgdG8gbGF6eSBEUjcgc2V0dGluZyAqLwogCWlmIChjb25kaXRpb24gJiAoRFJfVFJBUDB8RFJfVFJBUDF8RFJfVFJBUDJ8RFJfVFJBUDMpKSB7Ci0JCWlmICghdHNrLT50aHJlYWQuZGVidWdyZWc3KSB7IAorCQlpZiAoIXRzay0+dGhyZWFkLmRlYnVncmVnNykKIAkJCWdvdG8gY2xlYXJfZHI3OwotCQl9CiAJfQogCiAJdHNrLT50aHJlYWQuZGVidWdyZWc2ID0gY29uZGl0aW9uOwogCi0KIAkvKgogCSAqIFNpbmdsZS1zdGVwcGluZyB0aHJvdWdoIFRGOiBtYWtlIHN1cmUgd2UgaWdub3JlIGFueSBldmVudHMgaW4KIAkgKiBrZXJuZWwgc3BhY2UgKGJ1dCByZS1lbmFibGUgVEYgd2hlbiByZXR1cm5pbmcgdG8gdXNlciBtb2RlKS4KIAkgKi8KIAlpZiAoY29uZGl0aW9uICYgRFJfU1RFUCkgewotICAgICAgICAgICAgICAgIGlmICghdXNlcl9tb2RlKHJlZ3MpKQotICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGNsZWFyX1RGX3JlZW5hYmxlOworCQlpZiAoIXVzZXJfbW9kZShyZWdzKSkKKwkJCWdvdG8gY2xlYXJfVEZfcmVlbmFibGU7CiAJfQogCiAJLyogT2ssIGZpbmFsbHkgc29tZXRoaW5nIHdlIGNhbiBoYW5kbGUgKi8KQEAgLTk1Miw3ICs5NTMsNyBAQAogCWZvcmNlX3NpZ19pbmZvKFNJR1RSQVAsICZpbmZvLCB0c2spOwogCiBjbGVhcl9kcjc6Ci0Jc2V0X2RlYnVncmVnKDBVTCwgNyk7CisJc2V0X2RlYnVncmVnKDAsIDcpOwogCXByZWVtcHRfY29uZGl0aW9uYWxfY2xpKHJlZ3MpOwogCXJldHVybjsKIApAQCAtOTYwLDYgKzk2MSw3IEBACiAJc2V0X3Rza190aHJlYWRfZmxhZyh0c2ssIFRJRl9TSU5HTEVTVEVQKTsKIAlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19URjsKIAlwcmVlbXB0X2NvbmRpdGlvbmFsX2NsaShyZWdzKTsKKwlyZXR1cm47CiB9CiAKIHN0YXRpYyBpbnQga2VybmVsX21hdGhfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGNvbnN0IGNoYXIgKnN0ciwgaW50IHRyYXBucikKQEAgLTk4Miw3ICs5ODQsNyBAQAogYXNtbGlua2FnZSB2b2lkIGRvX2NvcHJvY2Vzc29yX2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewogCXZvaWQgX191c2VyICppcCA9ICh2b2lkIF9fdXNlciAqKShyZWdzLT5pcCk7Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICogdGFzazsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAJc2lnaW5mb190IGluZm87CiAJdW5zaWduZWQgc2hvcnQgY3dkLCBzd2Q7CiAKQEAgLTEwMTUsMzAgKzEwMTcsMzAgQEAKIAljd2QgPSBnZXRfZnB1X2N3ZCh0YXNrKTsKIAlzd2QgPSBnZXRfZnB1X3N3ZCh0YXNrKTsKIAlzd2l0Y2ggKHN3ZCAmIH5jd2QgJiAweDNmKSB7Ci0JCWNhc2UgMHgwMDA6Ci0JCWRlZmF1bHQ6Ci0JCQlicmVhazsKLQkJY2FzZSAweDAwMTogLyogSW52YWxpZCBPcCAqLwotCQkJLyoKLQkJCSAqIHN3ZCAmIDB4MjQwID09IDB4MDQwOiBTdGFjayBVbmRlcmZsb3cKLQkJCSAqIHN3ZCAmIDB4MjQwID09IDB4MjQwOiBTdGFjayBPdmVyZmxvdwotCQkJICogVXNlciBtdXN0IGNsZWFyIHRoZSBTRiBiaXQgKDB4NDApIGlmIHNldAotCQkJICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDI6IC8qIERlbm9ybWFsaXplICovCi0JCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7Ci0JCQlicmVhazsKKwljYXNlIDB4MDAwOiAvKiBObyB1bm1hc2tlZCBleGNlcHRpb24gKi8KKwlkZWZhdWx0OiAvKiBNdWx0aXBsZSBleGNlcHRpb25zICovCisJCWJyZWFrOworCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KKwkJLyoKKwkJICogc3dkICYgMHgyNDAgPT0gMHgwNDA6IFN0YWNrIFVuZGVyZmxvdworCQkgKiBzd2QgJiAweDI0MCA9PSAweDI0MDogU3RhY2sgT3ZlcmZsb3cKKwkJICogVXNlciBtdXN0IGNsZWFyIHRoZSBTRiBiaXQgKDB4NDApIGlmIHNldAorCQkgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVElOVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KKwljYXNlIDB4MDEwOiAvKiBVbmRlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKKwkJYnJlYWs7CisJY2FzZSAweDAwNDogLyogWmVybyBEaXZpZGUgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwODogLyogT3ZlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKKwkJYnJlYWs7CisJY2FzZSAweDAyMDogLyogUHJlY2lzaW9uICovCisJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7CisJCWJyZWFrOwogCX0KIAlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZvLCB0YXNrKTsKIH0KQEAgLTEwNTEsNyArMTA1Myw3IEBACiBhc21saW5rYWdlIHZvaWQgZG9fc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKIAl2b2lkIF9fdXNlciAqaXAgPSAodm9pZCBfX3VzZXIgKikocmVncy0+aXApOwotCXN0cnVjdCB0YXNrX3N0cnVjdCAqIHRhc2s7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwogCXNpZ2luZm9fdCBpbmZvOwogCXVuc2lnbmVkIHNob3J0IG14Y3NyOwogCkBAIC0xMDc5LDI1ICsxMDgxLDI1IEBACiAJICovCiAJbXhjc3IgPSBnZXRfZnB1X214Y3NyKHRhc2spOwogCXN3aXRjaCAofigobXhjc3IgJiAweDFmODApID4+IDcpICYgKG14Y3NyICYgMHgzZikpIHsKLQkJY2FzZSAweDAwMDoKLQkJZGVmYXVsdDoKLQkJCWJyZWFrOwotCQljYXNlIDB4MDAxOiAvKiBJbnZhbGlkIE9wICovCi0JCQlpbmZvLnNpX2NvZGUgPSBGUEVfRkxUSU5WOwotCQkJYnJlYWs7Ci0JCWNhc2UgMHgwMDI6IC8qIERlbm9ybWFsaXplICovCi0JCWNhc2UgMHgwMTA6IC8qIFVuZGVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA0OiAvKiBaZXJvIERpdmlkZSAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDA4OiAvKiBPdmVyZmxvdyAqLwotCQkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKLQkJCWJyZWFrOwotCQljYXNlIDB4MDIwOiAvKiBQcmVjaXNpb24gKi8KLQkJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7Ci0JCQlicmVhazsKKwljYXNlIDB4MDAwOgorCWRlZmF1bHQ6CisJCWJyZWFrOworCWNhc2UgMHgwMDE6IC8qIEludmFsaWQgT3AgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVElOVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwMjogLyogRGVub3JtYWxpemUgKi8KKwljYXNlIDB4MDEwOiAvKiBVbmRlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVFVORDsKKwkJYnJlYWs7CisJY2FzZSAweDAwNDogLyogWmVybyBEaXZpZGUgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVERJVjsKKwkJYnJlYWs7CisJY2FzZSAweDAwODogLyogT3ZlcmZsb3cgKi8KKwkJaW5mby5zaV9jb2RlID0gRlBFX0ZMVE9WRjsKKwkJYnJlYWs7CisJY2FzZSAweDAyMDogLyogUHJlY2lzaW9uICovCisJCWluZm8uc2lfY29kZSA9IEZQRV9GTFRSRVM7CisJCWJyZWFrOwogCX0KIAlmb3JjZV9zaWdfaW5mbyhTSUdGUEUsICZpbmZvLCB0YXNrKTsKIH0KQEAgLTExMTUsNyArMTExNyw3IEBACiB9CiAKIC8qCi0gKiAgJ21hdGhfc3RhdGVfcmVzdG9yZSgpJyBzYXZlcyB0aGUgY3VycmVudCBtYXRoIGluZm9ybWF0aW9uIGluIHRoZQorICogJ21hdGhfc3RhdGVfcmVzdG9yZSgpJyBzYXZlcyB0aGUgY3VycmVudCBtYXRoIGluZm9ybWF0aW9uIGluIHRoZQogICogb2xkIG1hdGggc3RhdGUgYXJyYXksIGFuZCBnZXRzIHRoZSBuZXcgb25lcyBmcm9tIHRoZSBjdXJyZW50IHRhc2sKICAqCiAgKiBDYXJlZnVsLi4gVGhlcmUgYXJlIHByb2JsZW1zIHdpdGggSUJNLWRlc2lnbmVkIElSUTEzIGJlaGF2aW91ci4KQEAgLTExNDAsNyArMTE0Miw3IEBACiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAJfQogCi0JY2x0cygpOwkJCS8qIEFsbG93IG1hdGhzIG9wcyAob3Igd2UgcmVjdXJzZSkgKi8KKwljbHRzKCk7CQkJCS8qIEFsbG93IG1hdGhzIG9wcyAob3Igd2UgcmVjdXJzZSkgKi8KIAlyZXN0b3JlX2ZwdV9jaGVja2luZygmbWUtPnRocmVhZC54c3RhdGUtPmZ4c2F2ZSk7CiAJdGFza190aHJlYWRfaW5mbyhtZSktPnN0YXR1cyB8PSBUU19VU0VERlBVOwogCW1lLT5mcHVfY291bnRlcisrOwpAQCAtMTE0OSw2NCArMTE1MSw2MSBAQAogCiB2b2lkIF9faW5pdCB0cmFwX2luaXQodm9pZCkKIHsKLQlzZXRfaW50cl9nYXRlKDAsJmRpdmlkZV9lcnJvcik7Ci0Jc2V0X2ludHJfZ2F0ZV9pc3QoMSwmZGVidWcsREVCVUdfU1RBQ0spOwotCXNldF9pbnRyX2dhdGVfaXN0KDIsJm5taSxOTUlfU1RBQ0spOwotIAlzZXRfc3lzdGVtX2dhdGVfaXN0KDMsJmludDMsREVCVUdfU1RBQ0spOyAvKiBpbnQzIGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KLQlzZXRfc3lzdGVtX2dhdGUoNCwmb3ZlcmZsb3cpOwkvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KLQlzZXRfaW50cl9nYXRlKDUsJmJvdW5kcyk7Ci0Jc2V0X2ludHJfZ2F0ZSg2LCZpbnZhbGlkX29wKTsKLQlzZXRfaW50cl9nYXRlKDcsJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKLQlzZXRfaW50cl9nYXRlX2lzdCg4LCZkb3VibGVfZmF1bHQsIERPVUJMRUZBVUxUX1NUQUNLKTsKLQlzZXRfaW50cl9nYXRlKDksJmNvcHJvY2Vzc29yX3NlZ21lbnRfb3ZlcnJ1bik7Ci0Jc2V0X2ludHJfZ2F0ZSgxMCwmaW52YWxpZF9UU1MpOwotCXNldF9pbnRyX2dhdGUoMTEsJnNlZ21lbnRfbm90X3ByZXNlbnQpOwotCXNldF9pbnRyX2dhdGVfaXN0KDEyLCZzdGFja19zZWdtZW50LFNUQUNLRkFVTFRfU1RBQ0spOwotCXNldF9pbnRyX2dhdGUoMTMsJmdlbmVyYWxfcHJvdGVjdGlvbik7Ci0Jc2V0X2ludHJfZ2F0ZSgxNCwmcGFnZV9mYXVsdCk7Ci0Jc2V0X2ludHJfZ2F0ZSgxNSwmc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyk7Ci0Jc2V0X2ludHJfZ2F0ZSgxNiwmY29wcm9jZXNzb3JfZXJyb3IpOwotCXNldF9pbnRyX2dhdGUoMTcsJmFsaWdubWVudF9jaGVjayk7CisJc2V0X2ludHJfZ2F0ZSgwLCAmZGl2aWRlX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlX2lzdCgxLCAmZGVidWcsIERFQlVHX1NUQUNLKTsKKwlzZXRfaW50cl9nYXRlX2lzdCgyLCAmbm1pLCBOTUlfU1RBQ0spOworIAlzZXRfc3lzdGVtX2dhdGVfaXN0KDMsICZpbnQzLCBERUJVR19TVEFDSyk7IC8qIGludDMgY2FuIGJlIGNhbGxlZCBmcm9tIGFsbCAqLworCXNldF9zeXN0ZW1fZ2F0ZSg0LCAmb3ZlcmZsb3cpOyAvKiBpbnQ0IGNhbiBiZSBjYWxsZWQgZnJvbSBhbGwgKi8KKwlzZXRfaW50cl9nYXRlKDUsICZib3VuZHMpOworCXNldF9pbnRyX2dhdGUoNiwgJmludmFsaWRfb3ApOworCXNldF9pbnRyX2dhdGUoNywgJmRldmljZV9ub3RfYXZhaWxhYmxlKTsKKwlzZXRfaW50cl9nYXRlX2lzdCg4LCAmZG91YmxlX2ZhdWx0LCBET1VCTEVGQVVMVF9TVEFDSyk7CisJc2V0X2ludHJfZ2F0ZSg5LCAmY29wcm9jZXNzb3Jfc2VnbWVudF9vdmVycnVuKTsKKwlzZXRfaW50cl9nYXRlKDEwLCAmaW52YWxpZF9UU1MpOworCXNldF9pbnRyX2dhdGUoMTEsICZzZWdtZW50X25vdF9wcmVzZW50KTsKKwlzZXRfaW50cl9nYXRlX2lzdCgxMiwgJnN0YWNrX3NlZ21lbnQsIFNUQUNLRkFVTFRfU1RBQ0spOworCXNldF9pbnRyX2dhdGUoMTMsICZnZW5lcmFsX3Byb3RlY3Rpb24pOworCXNldF9pbnRyX2dhdGUoMTQsICZwYWdlX2ZhdWx0KTsKKwlzZXRfaW50cl9nYXRlKDE1LCAmc3B1cmlvdXNfaW50ZXJydXB0X2J1Zyk7CisJc2V0X2ludHJfZ2F0ZSgxNiwgJmNvcHJvY2Vzc29yX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDE3LCAmYWxpZ25tZW50X2NoZWNrKTsKICNpZmRlZiBDT05GSUdfWDg2X01DRQotCXNldF9pbnRyX2dhdGVfaXN0KDE4LCZtYWNoaW5lX2NoZWNrLCBNQ0VfU1RBQ0spOyAKKwlzZXRfaW50cl9nYXRlX2lzdCgxOCwgJm1hY2hpbmVfY2hlY2ssIE1DRV9TVEFDSyk7CiAjZW5kaWYKLQlzZXRfaW50cl9nYXRlKDE5LCZzaW1kX2NvcHJvY2Vzc29yX2Vycm9yKTsKKwlzZXRfaW50cl9nYXRlKDE5LCAmc2ltZF9jb3Byb2Nlc3Nvcl9lcnJvcik7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KIAlzZXRfc3lzdGVtX2dhdGUoSUEzMl9TWVNDQUxMX1ZFQ1RPUiwgaWEzMl9zeXNjYWxsKTsKICNlbmRpZgotICAgICAgIAogCS8qCiAJICogaW5pdGlhbGl6ZSB0aGUgcGVyIHRocmVhZCBleHRlbmRlZCBzdGF0ZToKIAkgKi8KLSAgICAgICAgaW5pdF90aHJlYWRfeHN0YXRlKCk7CisJaW5pdF90aHJlYWRfeHN0YXRlKCk7CiAJLyoKLQkgKiBTaG91bGQgYmUgYSBiYXJyaWVyIGZvciBhbnkgZXh0ZXJuYWwgQ1BVIHN0YXRlLgorCSAqIFNob3VsZCBiZSBhIGJhcnJpZXIgZm9yIGFueSBleHRlcm5hbCBDUFUgc3RhdGU6CiAJICovCiAJY3B1X2luaXQoKTsKIH0KIAotCiBzdGF0aWMgaW50IF9faW5pdCBvb3BzX3NldHVwKGNoYXIgKnMpCi17IAorewogCWlmICghcykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJaWYgKCFzdHJjbXAocywgInBhbmljIikpCiAJCXBhbmljX29uX29vcHMgPSAxOwogCXJldHVybiAwOwotfSAKK30KIGVhcmx5X3BhcmFtKCJvb3BzIiwgb29wc19zZXR1cCk7CiAKIHN0YXRpYyBpbnQgX19pbml0IGtzdGFja19zZXR1cChjaGFyICpzKQogewogCWlmICghcykKIAkJcmV0dXJuIC1FSU5WQUw7Ci0Ja3N0YWNrX2RlcHRoX3RvX3ByaW50ID0gc2ltcGxlX3N0cnRvdWwocyxOVUxMLDApOworCWtzdGFja19kZXB0aF90b19wcmludCA9IHNpbXBsZV9zdHJ0b3VsKHMsIE5VTEwsIDApOwogCXJldHVybiAwOwogfQogZWFybHlfcGFyYW0oImtzdGFjayIsIGtzdGFja19zZXR1cCk7CiAKLQogc3RhdGljIGludCBfX2luaXQgY29kZV9ieXRlc19zZXR1cChjaGFyICpzKQogewogCWNvZGVfYnl0ZXMgPSBzaW1wbGVfc3RydG91bChzLCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC90c2MuYyBiL2FyY2gveDg2L2tlcm5lbC90c2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzM2ZjkyCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3RzYy5jCkBAIC0wLDAgKzEsNTMzIEBACisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpX3BtdG1yLmg+CisjaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgorI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKworI2luY2x1ZGUgPGFzbS9ocGV0Lmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisjaW5jbHVkZSA8YXNtL3ZndG9kLmg+CisjaW5jbHVkZSA8YXNtL3RpbWUuaD4KKyNpbmNsdWRlIDxhc20vZGVsYXkuaD4KKwordW5zaWduZWQgaW50IGNwdV9raHo7ICAgICAgICAgICAvKiBUU0MgY2xvY2tzIC8gdXNlYywgbm90IHVzZWQgaGVyZSAqLworRVhQT1JUX1NZTUJPTChjcHVfa2h6KTsKK3Vuc2lnbmVkIGludCB0c2Nfa2h6OworRVhQT1JUX1NZTUJPTCh0c2Nfa2h6KTsKKworLyoKKyAqIFRTQyBjYW4gYmUgdW5zdGFibGUgZHVlIHRvIGNwdWZyZXEgb3IgZHVlIHRvIHVuc3luY2VkIFRTQ3MKKyAqLworc3RhdGljIGludCB0c2NfdW5zdGFibGU7CisKKy8qIG5hdGl2ZV9zY2hlZF9jbG9jaygpIGlzIGNhbGxlZCBiZWZvcmUgdHNjX2luaXQoKSwgc28KKyAgIHdlIG11c3Qgc3RhcnQgd2l0aCB0aGUgVFNDIHNvZnQgZGlzYWJsZWQgdG8gcHJldmVudAorICAgZXJyb25lb3VzIHJkdHNjIHVzYWdlIG9uICFjcHVfaGFzX3RzYyBwcm9jZXNzb3JzICovCitzdGF0aWMgaW50IHRzY19kaXNhYmxlZCA9IC0xOworCisvKgorICogU2NoZWR1bGVyIGNsb2NrIC0gcmV0dXJucyBjdXJyZW50IHRpbWUgaW4gbmFub3NlYyB1bml0cy4KKyAqLwordTY0IG5hdGl2ZV9zY2hlZF9jbG9jayh2b2lkKQoreworCXU2NCB0aGlzX29mZnNldDsKKworCS8qCisJICogRmFsbCBiYWNrIHRvIGppZmZpZXMgaWYgdGhlcmUncyBubyBUU0MgYXZhaWxhYmxlOgorCSAqICggQnV0IG5vdGUgdGhhdCB3ZSBzdGlsbCB1c2UgaXQgaWYgdGhlIFRTQyBpcyBtYXJrZWQKKwkgKiAgIHVuc3RhYmxlLiBXZSBkbyB0aGlzIGJlY2F1c2UgdW5saWtlIFRpbWUgT2YgRGF5LAorCSAqICAgdGhlIHNjaGVkdWxlciBjbG9jayB0b2xlcmF0ZXMgc21hbGwgZXJyb3JzIGFuZCBpdCdzCisJICogICB2ZXJ5IGltcG9ydGFudCBmb3IgaXQgdG8gYmUgYXMgZmFzdCBhcyB0aGUgcGxhdGZvcm0KKwkgKiAgIGNhbiBhY2hpdmUgaXQuICkKKwkgKi8KKwlpZiAodW5saWtlbHkodHNjX2Rpc2FibGVkKSkgeworCQkvKiBObyBsb2NraW5nIGJ1dCBhIHJhcmUgd3JvbmcgdmFsdWUgaXMgbm90IGEgYmlnIGRlYWw6ICovCisJCXJldHVybiAoamlmZmllc182NCAtIElOSVRJQUxfSklGRklFUykgKiAoMTAwMDAwMDAwMCAvIEhaKTsKKwl9CisKKwkvKiByZWFkIHRoZSBUaW1lIFN0YW1wIENvdW50ZXI6ICovCisJcmR0c2NsbCh0aGlzX29mZnNldCk7CisKKwkvKiByZXR1cm4gdGhlIHZhbHVlIGluIG5zICovCisJcmV0dXJuIGN5Y2xlc18yX25zKHRoaXNfb2Zmc2V0KTsKK30KKworLyogV2UgbmVlZCB0byBkZWZpbmUgYSByZWFsIGZ1bmN0aW9uIGZvciBzY2hlZF9jbG9jaywgdG8gb3ZlcnJpZGUgdGhlCisgICB3ZWFrIGRlZmF1bHQgdmVyc2lvbiAqLworI2lmZGVmIENPTkZJR19QQVJBVklSVAordW5zaWduZWQgbG9uZyBsb25nIHNjaGVkX2Nsb2NrKHZvaWQpCit7CisJcmV0dXJuIHBhcmF2aXJ0X3NjaGVkX2Nsb2NrKCk7Cit9CisjZWxzZQordW5zaWduZWQgbG9uZyBsb25nCitzY2hlZF9jbG9jayh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygibmF0aXZlX3NjaGVkX2Nsb2NrIikpKTsKKyNlbmRpZgorCitpbnQgY2hlY2tfdHNjX3Vuc3RhYmxlKHZvaWQpCit7CisJcmV0dXJuIHRzY191bnN0YWJsZTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNoZWNrX3RzY191bnN0YWJsZSk7CisKKyNpZmRlZiBDT05GSUdfWDg2X1RTQworaW50IF9faW5pdCBub3RzY19zZXR1cChjaGFyICpzdHIpCit7CisJcHJpbnRrKEtFUk5fV0FSTklORyAibm90c2M6IEtlcm5lbCBjb21waWxlZCB3aXRoIENPTkZJR19YODZfVFNDLCAiCisJCQkiY2Fubm90IGRpc2FibGUgVFNDIGNvbXBsZXRlbHkuXG4iKTsKKwl0c2NfZGlzYWJsZWQgPSAxOworCXJldHVybiAxOworfQorI2Vsc2UKKy8qCisgKiBkaXNhYmxlIGZsYWcgZm9yIHRzYy4gVGFrZXMgZWZmZWN0IGJ5IGNsZWFyaW5nIHRoZSBUU0MgY3B1IGZsYWcKKyAqIGluIGNwdS9jb21tb24uYworICovCitpbnQgX19pbml0IG5vdHNjX3NldHVwKGNoYXIgKnN0cikKK3sKKwlzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1RTQyk7CisJcmV0dXJuIDE7Cit9CisjZW5kaWYKKworX19zZXR1cCgibm90c2MiLCBub3RzY19zZXR1cCk7CisKKyNkZWZpbmUgTUFYX1JFVFJJRVMgICAgIDUKKyNkZWZpbmUgU01JX1RSRVNIT0xEICAgIDUwMDAwCisKKy8qCisgKiBSZWFkIFRTQyBhbmQgdGhlIHJlZmVyZW5jZSBjb3VudGVycy4gVGFrZSBjYXJlIG9mIFNNSSBkaXN0dXJiYW5jZQorICovCitzdGF0aWMgdTY0IF9faW5pdCB0c2NfcmVhZF9yZWZzKHU2NCAqcG0sIHU2NCAqaHBldCkKK3sKKwl1NjQgdDEsIHQyOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IE1BWF9SRVRSSUVTOyBpKyspIHsKKwkJdDEgPSBnZXRfY3ljbGVzKCk7CisJCWlmIChocGV0KQorCQkJKmhwZXQgPSBocGV0X3JlYWRsKEhQRVRfQ09VTlRFUikgJiAweEZGRkZGRkZGOworCQllbHNlCisJCQkqcG0gPSBhY3BpX3BtX3JlYWRfZWFybHkoKTsKKwkJdDIgPSBnZXRfY3ljbGVzKCk7CisJCWlmICgodDIgLSB0MSkgPCBTTUlfVFJFU0hPTEQpCisJCQlyZXR1cm4gdDI7CisJfQorCXJldHVybiBVTExPTkdfTUFYOworfQorCisvKioKKyAqIG5hdGl2ZV9jYWxpYnJhdGVfdHNjIC0gY2FsaWJyYXRlIHRoZSB0c2Mgb24gYm9vdAorICovCit1bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxpYnJhdGVfdHNjKHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1NjQgdHNjMSwgdHNjMiwgdHIxLCB0cjIsIGRlbHRhLCBwbTEsIHBtMiwgaHBldDEsIGhwZXQyOworCWludCBocGV0ID0gaXNfaHBldF9lbmFibGVkKCk7CisJdW5zaWduZWQgaW50IHRzY19raHpfdmFsID0gMDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCXRzYzEgPSB0c2NfcmVhZF9yZWZzKCZwbTEsIGhwZXQgPyAmaHBldDEgOiBOVUxMKTsKKworCW91dGIoKGluYigweDYxKSAmIH4weDAyKSB8IDB4MDEsIDB4NjEpOworCisJb3V0YigweGIwLCAweDQzKTsKKwlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgJiAweGZmLCAweDQyKTsKKwlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgPj4gOCwgMHg0Mik7CisJdHIxID0gZ2V0X2N5Y2xlcygpOworCXdoaWxlICgoaW5iKDB4NjEpICYgMHgyMCkgPT0gMCk7CisJdHIyID0gZ2V0X2N5Y2xlcygpOworCisJdHNjMiA9IHRzY19yZWFkX3JlZnMoJnBtMiwgaHBldCA/ICZocGV0MiA6IE5VTEwpOworCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJLyoKKwkgKiBQcmVzZXQgdGhlIHJlc3VsdCB3aXRoIHRoZSByYXcgYW5kIGluYWNjdXJhdGUgUElUCisJICogY2FsaWJyYXRpb24gdmFsdWUKKwkgKi8KKwlkZWx0YSA9ICh0cjIgLSB0cjEpOworCWRvX2RpdihkZWx0YSwgNTApOworCXRzY19raHpfdmFsID0gZGVsdGE7CisKKwkvKiBocGV0IG9yIHBtdGltZXIgYXZhaWxhYmxlID8gKi8KKwlpZiAoIWhwZXQgJiYgIXBtMSAmJiAhcG0yKSB7CisJCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUElUXG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogQ2hlY2ssIHdoZXRoZXIgdGhlIHNhbXBsaW5nIHdhcyBkaXN0dXJiZWQgYnkgYW4gU01JICovCisJaWYgKHRzYzEgPT0gVUxMT05HX01BWCB8fCB0c2MyID09IFVMTE9OR19NQVgpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiVFNDIGNhbGlicmF0aW9uIGRpc3R1cmJlZCBieSBTTUksICIKKwkJCQkidXNpbmcgUElUIGNhbGlicmF0aW9uIHJlc3VsdFxuIik7CisJCWdvdG8gb3V0OworCX0KKworCXRzYzIgPSAodHNjMiAtIHRzYzEpICogMTAwMDAwMExMOworCisJaWYgKGhwZXQpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBIUEVUXG4iKTsKKwkJaWYgKGhwZXQyIDwgaHBldDEpCisJCQlocGV0MiArPSAweDEwMDAwMDAwMFVMTDsKKwkJaHBldDIgLT0gaHBldDE7CisJCXRzYzEgPSAoKHU2NClocGV0MiAqIGhwZXRfcmVhZGwoSFBFVF9QRVJJT0QpKTsKKwkJZG9fZGl2KHRzYzEsIDEwMDAwMDApOworCX0gZWxzZSB7CisJCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUE1fVElNRVJcbiIpOworCQlpZiAocG0yIDwgcG0xKQorCQkJcG0yICs9ICh1NjQpQUNQSV9QTV9PVlJSVU47CisJCXBtMiAtPSBwbTE7CisJCXRzYzEgPSBwbTIgKiAxMDAwMDAwMDAwTEw7CisJCWRvX2Rpdih0c2MxLCBQTVRNUl9USUNLU19QRVJfU0VDKTsKKwl9CisKKwlkb19kaXYodHNjMiwgdHNjMSk7CisJdHNjX2toel92YWwgPSB0c2MyOworCitvdXQ6CisJcmV0dXJuIHRzY19raHpfdmFsOworfQorCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisvKiBPbmx5IGNhbGxlZCBmcm9tIHRoZSBQb3dlcm5vdyBLNyBjcHUgZnJlcSBkcml2ZXIgKi8KK2ludCByZWNhbGlicmF0ZV9jcHVfa2h6KHZvaWQpCit7CisjaWZuZGVmIENPTkZJR19TTVAKKwl1bnNpZ25lZCBsb25nIGNwdV9raHpfb2xkID0gY3B1X2toejsKKworCWlmIChjcHVfaGFzX3RzYykgeworCQl0c2Nfa2h6ID0gY2FsaWJyYXRlX3RzYygpOworCQljcHVfa2h6ID0gdHNjX2toejsKKwkJY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5ID0KKwkJCWNwdWZyZXFfc2NhbGUoY3B1X2RhdGEoMCkubG9vcHNfcGVyX2ppZmZ5LAorCQkJCQljcHVfa2h6X29sZCwgY3B1X2toeik7CisJCXJldHVybiAwOworCX0gZWxzZQorCQlyZXR1cm4gLUVOT0RFVjsKKyNlbHNlCisJcmV0dXJuIC1FTk9ERVY7CisjZW5kaWYKK30KKworRVhQT1JUX1NZTUJPTChyZWNhbGlicmF0ZV9jcHVfa2h6KTsKKworI2VuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KKworLyogQWNjZWxlcmF0b3JzIGZvciBzY2hlZF9jbG9jaygpCisgKiBjb252ZXJ0IGZyb20gY3ljbGVzKDY0Yml0cykgPT4gbmFub3NlY29uZHMgKDY0Yml0cykKKyAqICBiYXNpYyBlcXVhdGlvbjoKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAvIChmcmVxIC8gbnNfcGVyX3NlYykKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqIChuc19wZXJfc2VjIC8gZnJlcSkKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqICgxMF45IC8gKGNwdV9raHogKiAxMF4zKSkKKyAqICAgICAgICAgICAgICBucyA9IGN5Y2xlcyAqICgxMF42IC8gY3B1X2toeikKKyAqCisgKiAgICAgIFRoZW4gd2UgdXNlIHNjYWxpbmcgbWF0aCAoc3VnZ2VzdGVkIGJ5IGdlb3JnZUBtdmlzdGEuY29tKSB0byBnZXQ6CisgKiAgICAgICAgICAgICAgbnMgPSBjeWNsZXMgKiAoMTBeNiAqIFNDIC8gY3B1X2toeikgLyBTQworICogICAgICAgICAgICAgIG5zID0gY3ljbGVzICogY3ljMm5zX3NjYWxlIC8gU0MKKyAqCisgKiAgICAgIEFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgorICogIGludG8gYSBzaGlmdC4KKyAqCisgKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKKyAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgorICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQorICoKKyAqICAgICAgICAgICAgICAgICAgICAgIC1qb2huc3R1bEB1cy5pYm0uY29tICJtYXRoIGlzIGhhcmQsIGxldHMgZ28gc2hvcHBpbmchIgorICovCisKK0RFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGN5YzJucyk7CisKK3N0YXRpYyB2b2lkIHNldF9jeWMybnNfc2NhbGUodW5zaWduZWQgbG9uZyBjcHVfa2h6LCBpbnQgY3B1KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2Nfbm93LCBuc19ub3c7CisJdW5zaWduZWQgbG9uZyBmbGFncywgKnNjYWxlOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXNjaGVkX2Nsb2NrX2lkbGVfc2xlZXBfZXZlbnQoKTsKKworCXNjYWxlID0gJnBlcl9jcHUoY3ljMm5zLCBjcHUpOworCisJcmR0c2NsbCh0c2Nfbm93KTsKKwluc19ub3cgPSBfX2N5Y2xlc18yX25zKHRzY19ub3cpOworCisJaWYgKGNwdV9raHopCisJCSpzY2FsZSA9IChOU0VDX1BFUl9NU0VDIDw8IENZQzJOU19TQ0FMRV9GQUNUT1IpL2NwdV9raHo7CisKKwlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKKyNpZmRlZiBDT05GSUdfQ1BVX0ZSRVEKKworLyogRnJlcXVlbmN5IHNjYWxpbmcgc3VwcG9ydC4gQWRqdXN0IHRoZSBUU0MgYmFzZWQgdGltZXIgd2hlbiB0aGUgY3B1IGZyZXF1ZW5jeQorICogY2hhbmdlcy4KKyAqCisgKiBSRUQtUEVOOiBPbiBTTVAgd2UgYXNzdW1lIGFsbCBDUFVzIHJ1biB3aXRoIHRoZSBzYW1lIGZyZXF1ZW5jeS4gIEl0J3MKKyAqIG5vdCB0aGF0IGltcG9ydGFudCBiZWNhdXNlIGN1cnJlbnQgT3B0ZXJvbiBzZXR1cHMgZG8gbm90IHN1cHBvcnQKKyAqIHNjYWxpbmcgb24gU01QIGFueXJvYWRzLgorICoKKyAqIFNob3VsZCBmaXggdXAgbGFzdF90c2MgdG9vLiBDdXJyZW50bHkgZ2V0dGltZW9mZGF5IGluIHRoZQorICogZmlyc3QgdGljayBhZnRlciB0aGUgY2hhbmdlIHdpbGwgYmUgc2xpZ2h0bHkgd3JvbmcuCisgKi8KKworc3RhdGljIHVuc2lnbmVkIGludCAgcmVmX2ZyZXE7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBsb29wc19wZXJfamlmZnlfcmVmOworc3RhdGljIHVuc2lnbmVkIGxvbmcgdHNjX2toel9yZWY7CisKK3N0YXRpYyBpbnQgdGltZV9jcHVmcmVxX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAorCQkJCXZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNwdWZyZXFfZnJlcXMgKmZyZXEgPSBkYXRhOworCXVuc2lnbmVkIGxvbmcgKmxwaiwgZHVtbXk7CisKKwlpZiAoY3B1X2hhcygmY3B1X2RhdGEoZnJlcS0+Y3B1KSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKKwkJcmV0dXJuIDA7CisKKwlscGogPSAmZHVtbXk7CisJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKKyNpZmRlZiBDT05GSUdfU01QCisJCWxwaiA9ICZjcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeTsKKyNlbHNlCisJbHBqID0gJmJvb3RfY3B1X2RhdGEubG9vcHNfcGVyX2ppZmZ5OworI2VuZGlmCisKKwlpZiAoIXJlZl9mcmVxKSB7CisJCXJlZl9mcmVxID0gZnJlcS0+b2xkOworCQlsb29wc19wZXJfamlmZnlfcmVmID0gKmxwajsKKwkJdHNjX2toel9yZWYgPSB0c2Nfa2h6OworCX0KKwlpZiAoKHZhbCA9PSBDUFVGUkVRX1BSRUNIQU5HRSAgJiYgZnJlcS0+b2xkIDwgZnJlcS0+bmV3KSB8fAorCQkJKHZhbCA9PSBDUFVGUkVRX1BPU1RDSEFOR0UgJiYgZnJlcS0+b2xkID4gZnJlcS0+bmV3KSB8fAorCQkJKHZhbCA9PSBDUFVGUkVRX1JFU1VNRUNIQU5HRSkpIHsKKwkJKmxwaiA9IAljcHVmcmVxX3NjYWxlKGxvb3BzX3Blcl9qaWZmeV9yZWYsIHJlZl9mcmVxLCBmcmVxLT5uZXcpOworCisJCXRzY19raHogPSBjcHVmcmVxX3NjYWxlKHRzY19raHpfcmVmLCByZWZfZnJlcSwgZnJlcS0+bmV3KTsKKwkJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKKwkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJjcHVmcmVxIGNoYW5nZXMiKTsKKwl9CisKKwlzZXRfY3ljMm5zX3NjYWxlKHRzY19raHpfcmVmLCBmcmVxLT5jcHUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrID0geworCS5ub3RpZmllcl9jYWxsICA9IHRpbWVfY3B1ZnJlcV9ub3RpZmllcgorfTsKKworc3RhdGljIGludCBfX2luaXQgY3B1ZnJlcV90c2Modm9pZCkKK3sKKwljcHVmcmVxX3JlZ2lzdGVyX25vdGlmaWVyKCZ0aW1lX2NwdWZyZXFfbm90aWZpZXJfYmxvY2ssCisJCQkJQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKKwlyZXR1cm4gMDsKK30KKworY29yZV9pbml0Y2FsbChjcHVmcmVxX3RzYyk7CisKKyNlbmRpZiAvKiBDT05GSUdfQ1BVX0ZSRVEgKi8KKworLyogY2xvY2tzb3VyY2UgY29kZSAqLworCitzdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYzsKKworLyoKKyAqIFdlIGNvbXBhcmUgdGhlIFRTQyB0byB0aGUgY3ljbGVfbGFzdCB2YWx1ZSBpbiB0aGUgY2xvY2tzb3VyY2UKKyAqIHN0cnVjdHVyZSB0byBhdm9pZCBhIG5hc3R5IHRpbWUtd2FycC4gVGhpcyBjYW4gYmUgb2JzZXJ2ZWQgaW4gYQorICogdmVyeSBzbWFsbCB3aW5kb3cgcmlnaHQgYWZ0ZXIgb25lIENQVSB1cGRhdGVkIGN5Y2xlX2xhc3QgdW5kZXIKKyAqIHh0aW1lL3ZzeXNjYWxsX2d0b2QgbG9jayBhbmQgdGhlIG90aGVyIENQVSByZWFkcyBhIFRTQyB2YWx1ZSB3aGljaAorICogaXMgc21hbGxlciB0aGFuIHRoZSBjeWNsZV9sYXN0IHJlZmVyZW5jZSB2YWx1ZSBkdWUgdG8gYSBUU0Mgd2hpY2gKKyAqIGlzIHNsaWdodHkgYmVoaW5kLiBUaGlzIGRlbHRhIGlzIG5vd2hlcmUgZWxzZSBvYnNlcnZhYmxlLCBidXQgaW4KKyAqIHRoYXQgY2FzZSBpdCByZXN1bHRzIGluIGEgZm9yd2FyZCB0aW1lIGp1bXAgaW4gdGhlIHJhbmdlIG9mIGhvdXJzCisgKiBkdWUgdG8gdGhlIHVuc2lnbmVkIGRlbHRhIGNhbGN1bGF0aW9uIG9mIHRoZSB0aW1lIGtlZXBpbmcgY29yZQorICogY29kZSwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgd3JhcHBpbmcgY2xvY2tzb3VyY2VzIGxpa2UgcG0KKyAqIHRpbWVyLgorICovCitzdGF0aWMgY3ljbGVfdCByZWFkX3RzYyh2b2lkKQoreworCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpZ2V0X2N5Y2xlcygpOworCisJcmV0dXJuIHJldCA+PSBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdCA/CisJCXJldCA6IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0OworfQorCitzdGF0aWMgY3ljbGVfdCBfX3ZzeXNjYWxsX2ZuIHZyZWFkX3RzYyh2b2lkKQoreworCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpdmdldF9jeWNsZXMoKTsKKworCXJldHVybiByZXQgPj0gX192c3lzY2FsbF9ndG9kX2RhdGEuY2xvY2suY3ljbGVfbGFzdCA/CisJCXJldCA6IF9fdnN5c2NhbGxfZ3RvZF9kYXRhLmNsb2NrLmN5Y2xlX2xhc3Q7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0geworCS5uYW1lICAgICAgICAgICAgICAgICAgID0gInRzYyIsCisJLnJhdGluZyAgICAgICAgICAgICAgICAgPSAzMDAsCisJLnJlYWQgICAgICAgICAgICAgICAgICAgPSByZWFkX3RzYywKKwkubWFzayAgICAgICAgICAgICAgICAgICA9IENMT0NLU09VUkNFX01BU0soNjQpLAorCS5zaGlmdCAgICAgICAgICAgICAgICAgID0gMjIsCisJLmZsYWdzICAgICAgICAgICAgICAgICAgPSBDTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUyB8CisJCQkJICBDTE9DS19TT1VSQ0VfTVVTVF9WRVJJRlksCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCS52cmVhZCAgICAgICAgICAgICAgICAgID0gdnJlYWRfdHNjLAorI2VuZGlmCit9OworCit2b2lkIG1hcmtfdHNjX3Vuc3RhYmxlKGNoYXIgKnJlYXNvbikKK3sKKwlpZiAoIXRzY191bnN0YWJsZSkgeworCQl0c2NfdW5zdGFibGUgPSAxOworCQlwcmludGsoIk1hcmtpbmcgVFNDIHVuc3RhYmxlIGR1ZSB0byAlc1xuIiwgcmVhc29uKTsKKwkJLyogQ2hhbmdlIG9ubHkgdGhlIHJhdGluZywgd2hlbiBub3QgcmVnaXN0ZXJlZCAqLworCQlpZiAoY2xvY2tzb3VyY2VfdHNjLm11bHQpCisJCQljbG9ja3NvdXJjZV9jaGFuZ2VfcmF0aW5nKCZjbG9ja3NvdXJjZV90c2MsIDApOworCQllbHNlCisJCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKKwl9Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKG1hcmtfdHNjX3Vuc3RhYmxlKTsKKworc3RhdGljIGludCBfX2luaXQgZG1pX21hcmtfdHNjX3Vuc3RhYmxlKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQoreworCXByaW50ayhLRVJOX05PVElDRSAiJXMgZGV0ZWN0ZWQ6IG1hcmtpbmcgVFNDIHVuc3RhYmxlLlxuIiwKKwkJCWQtPmlkZW50KTsKKwl0c2NfdW5zdGFibGUgPSAxOworCXJldHVybiAwOworfQorCisvKiBMaXN0IG9mIHN5c3RlbXMgdGhhdCBoYXZlIGtub3duIFRTQyBwcm9ibGVtcyAqLworc3RhdGljIHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGRhdGEgYmFkX3RzY19kbWlfdGFibGVbXSA9IHsKKwl7CisJCS5jYWxsYmFjayA9IGRtaV9tYXJrX3RzY191bnN0YWJsZSwKKwkJLmlkZW50ID0gIklCTSBUaGlua3BhZCAzODBYRCIsCisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9CT0FSRF9WRU5ET1IsICJJQk0iKSwKKwkJCURNSV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIjI2MzVGQTAiKSwKKwkJfSwKKwl9LAorCXt9Cit9OworCisvKgorICogR2VvZGVfTFggLSB0aGUgT0xQQyBDUFUgaGFzIGEgcG9zc2libHkgYSB2ZXJ5IHJlbGlhYmxlIFRTQworICovCisjaWZkZWYgQ09ORklHX01HRU9ERV9MWAorLyogUlRTQyBjb3VudHMgZHVyaW5nIHN1c3BlbmQgKi8KKyNkZWZpbmUgUlRTQ19TVVNQIDB4MTAwCisKK3N0YXRpYyB2b2lkIF9faW5pdCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIHJlc19sb3csIHJlc19oaWdoOworCisJcmRtc3Jfc2FmZShNU1JfR0VPREVfQlVTQ09OVF9DT05GMCwgJnJlc19sb3csICZyZXNfaGlnaCk7CisJaWYgKHJlc19sb3cgJiBSVFNDX1NVU1ApCisJCWNsb2Nrc291cmNlX3RzYy5mbGFncyAmPSB+Q0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19nZW9kZV90c2NfcmVsaWFibGUodm9pZCkgeyB9CisjZW5kaWYKKworLyoKKyAqIE1ha2UgYW4gZWR1Y2F0ZWQgZ3Vlc3MgaWYgdGhlIFRTQyBpcyB0cnVzdHdvcnRoeSBhbmQgc3luY2hyb25pemVkCisgKiBvdmVyIGFsbCBDUFVzLgorICovCitfX2NwdWluaXQgaW50IHVuc3luY2hyb25pemVkX3RzYyh2b2lkKQoreworCWlmICghY3B1X2hhc190c2MgfHwgdHNjX3Vuc3RhYmxlKQorCQlyZXR1cm4gMTsKKworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoYXBpY19pc19jbHVzdGVyZWRfYm94KCkpCisJCXJldHVybiAxOworI2VuZGlmCisKKwlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykpCisJCXJldHVybiAwOworCS8qCisJICogSW50ZWwgc3lzdGVtcyBhcmUgbm9ybWFsbHkgYWxsIHN5bmNocm9uaXplZC4KKwkgKiBFeGNlcHRpb25zIG11c3QgbWFyayBUU0MgYXMgdW5zdGFibGU6CisJICovCisJaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0lOVEVMKSB7CisJCS8qIGFzc3VtZSBtdWx0aSBzb2NrZXQgc3lzdGVtcyBhcmUgbm90IHN5bmNocm9uaXplZDogKi8KKwkJaWYgKG51bV9wb3NzaWJsZV9jcHVzKCkgPiAxKQorCQkJdHNjX3Vuc3RhYmxlID0gMTsKKwl9CisKKwlyZXR1cm4gdHNjX3Vuc3RhYmxlOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF90c2NfY2xvY2tzb3VyY2Uodm9pZCkKK3sKKwljbG9ja3NvdXJjZV90c2MubXVsdCA9IGNsb2Nrc291cmNlX2toejJtdWx0KHRzY19raHosCisJCQljbG9ja3NvdXJjZV90c2Muc2hpZnQpOworCS8qIGxvd2VyIHRoZSByYXRpbmcgaWYgd2UgYWxyZWFkeSBrbm93IGl0cyB1bnN0YWJsZTogKi8KKwlpZiAoY2hlY2tfdHNjX3Vuc3RhYmxlKCkpIHsKKwkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7CisJCWNsb2Nrc291cmNlX3RzYy5mbGFncyAmPSB+Q0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVM7CisJfQorCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV90c2MpOworfQorCit2b2lkIF9faW5pdCB0c2NfaW5pdCh2b2lkKQoreworCXU2NCBscGo7CisJaW50IGNwdTsKKworCWlmICghY3B1X2hhc190c2MpCisJCXJldHVybjsKKworCXRzY19raHogPSBjYWxpYnJhdGVfdHNjKCk7CisJY3B1X2toeiA9IHRzY19raHo7CisKKwlpZiAoIXRzY19raHopIHsKKwkJbWFya190c2NfdW5zdGFibGUoImNvdWxkIG5vdCBjYWxjdWxhdGUgVFNDIGtoeiIpOworCQlyZXR1cm47CisJfQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCWlmIChjcHVfaGFzKCZib290X2NwdV9kYXRhLCBYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpICYmCisJCQkoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EKSkKKwkJY3B1X2toeiA9IGNhbGlicmF0ZV9jcHUoKTsKKyNlbmRpZgorCisJbHBqID0gKCh1NjQpdHNjX2toeiAqIDEwMDApOworCWRvX2RpdihscGosIEhaKTsKKwlscGpfZmluZSA9IGxwajsKKworCXByaW50aygiRGV0ZWN0ZWQgJWx1LiUwM2x1IE1IeiBwcm9jZXNzb3IuXG4iLAorCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAvIDEwMDAsCisJCQkodW5zaWduZWQgbG9uZyljcHVfa2h6ICUgMTAwMCk7CisKKwkvKgorCSAqIFNlY29uZGFyeSBDUFVzIGRvIG5vdCBydW4gdGhyb3VnaCB0c2NfaW5pdCgpLCBzbyBzZXQgdXAKKwkgKiBhbGwgdGhlIHNjYWxlIGZhY3RvcnMgZm9yIGFsbCBDUFVzLCBhc3N1bWluZyB0aGUgc2FtZQorCSAqIHNwZWVkIGFzIHRoZSBib290dXAgQ1BVLiAoY3B1ZnJlcSBub3RpZmllcnMgd2lsbCBmaXggdGhpcworCSAqIHVwIGlmIHRoZWlyIHNwZWVkIGRpdmVyZ2VzKQorCSAqLworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpCisJCXNldF9jeWMybnNfc2NhbGUoY3B1X2toeiwgY3B1KTsKKworCWlmICh0c2NfZGlzYWJsZWQgPiAwKQorCQlyZXR1cm47CisKKwkvKiBub3cgYWxsb3cgbmF0aXZlX3NjaGVkX2Nsb2NrKCkgdG8gdXNlIHJkdHNjICovCisJdHNjX2Rpc2FibGVkID0gMDsKKworCXVzZV90c2NfZGVsYXkoKTsKKwkvKiBDaGVjayBhbmQgaW5zdGFsbCB0aGUgVFNDIGNsb2Nrc291cmNlICovCisJZG1pX2NoZWNrX3N5c3RlbShiYWRfdHNjX2RtaV90YWJsZSk7CisKKwlpZiAodW5zeW5jaHJvbml6ZWRfdHNjKCkpCisJCW1hcmtfdHNjX3Vuc3RhYmxlKCJUU0NzIHVuc3luY2hyb25pemVkIik7CisKKwljaGVja19nZW9kZV90c2NfcmVsaWFibGUoKTsKKwlpbml0X3RzY19jbG9ja3NvdXJjZSgpOworfQorCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHNjXzMyLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NzkwNzIuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3RzY18zMi5jCisrKyAvZGV2L251bGwKQEAgLTEsNDQ4ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+Ci0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZG1pLmg+Ci0jaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+Ci0KLSNpbmNsdWRlIDxhc20vZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vdHNjLmg+Ci0jaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0KLSNpbmNsdWRlICJtYWNoX3RpbWVyLmgiCi0KLXN0YXRpYyBpbnQgdHNjX2VuYWJsZWQ7Ci0KLS8qCi0gKiBPbiBzb21lIHN5c3RlbXMgdGhlIFRTQyBmcmVxdWVuY3kgZG9lcyBub3QKLSAqIGNoYW5nZSB3aXRoIHRoZSBjcHUgZnJlcXVlbmN5LiBTbyB3ZSBuZWVkCi0gKiBhbiBleHRyYSB2YWx1ZSB0byBzdG9yZSB0aGUgVFNDIGZyZXEKLSAqLwotdW5zaWduZWQgaW50IHRzY19raHo7Ci1FWFBPUlRfU1lNQk9MX0dQTCh0c2Nfa2h6KTsKLQotI2lmZGVmIENPTkZJR19YODZfVFNDCi1zdGF0aWMgaW50IF9faW5pdCB0c2Nfc2V0dXAoY2hhciAqc3RyKQotewotCXByaW50ayhLRVJOX1dBUk5JTkcgIm5vdHNjOiBLZXJuZWwgY29tcGlsZWQgd2l0aCBDT05GSUdfWDg2X1RTQywgIgotCQkJCSJjYW5ub3QgZGlzYWJsZSBUU0MgY29tcGxldGVseS5cbiIpOwotCW1hcmtfdHNjX3Vuc3RhYmxlKCJ1c2VyIGRpc2FibGVkIFRTQyIpOwotCXJldHVybiAxOwotfQotI2Vsc2UKLS8qCi0gKiBkaXNhYmxlIGZsYWcgZm9yIHRzYy4gVGFrZXMgZWZmZWN0IGJ5IGNsZWFyaW5nIHRoZSBUU0MgY3B1IGZsYWcKLSAqIGluIGNwdS9jb21tb24uYwotICovCi1zdGF0aWMgaW50IF9faW5pdCB0c2Nfc2V0dXAoY2hhciAqc3RyKQotewotCXNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfVFNDKTsKLQlyZXR1cm4gMTsKLX0KLSNlbmRpZgotCi1fX3NldHVwKCJub3RzYyIsIHRzY19zZXR1cCk7Ci0KLS8qCi0gKiBjb2RlIHRvIG1hcmsgYW5kIGNoZWNrIGlmIHRoZSBUU0MgaXMgdW5zdGFibGUKLSAqIGR1ZSB0byBjcHVmcmVxIG9yIGR1ZSB0byB1bnN5bmNlZCBUU0NzCi0gKi8KLXN0YXRpYyBpbnQgdHNjX3Vuc3RhYmxlOwotCi1pbnQgY2hlY2tfdHNjX3Vuc3RhYmxlKHZvaWQpCi17Ci0JcmV0dXJuIHRzY191bnN0YWJsZTsKLX0KLUVYUE9SVF9TWU1CT0xfR1BMKGNoZWNrX3RzY191bnN0YWJsZSk7Ci0KLS8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQotICogY29udmVydCBmcm9tIGN5Y2xlcyg2NGJpdHMpID0+IG5hbm9zZWNvbmRzICg2NGJpdHMpCi0gKiAgYmFzaWMgZXF1YXRpb246Ci0gKgkJbnMgPSBjeWNsZXMgLyAoZnJlcSAvIG5zX3Blcl9zZWMpCi0gKgkJbnMgPSBjeWNsZXMgKiAobnNfcGVyX3NlYyAvIGZyZXEpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeOSAvIChjcHVfa2h6ICogMTBeMykpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeNiAvIGNwdV9raHopCi0gKgotICoJVGhlbiB3ZSB1c2Ugc2NhbGluZyBtYXRoIChzdWdnZXN0ZWQgYnkgZ2VvcmdlQG12aXN0YS5jb20pIHRvIGdldDoKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF42ICogU0MgLyBjcHVfa2h6KSAvIFNDCi0gKgkJbnMgPSBjeWNsZXMgKiBjeWMybnNfc2NhbGUgLyBTQwotICoKLSAqCUFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgotICogIGludG8gYSBzaGlmdC4KLSAqCi0gKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKLSAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgotICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQotICoKLSAqCQkJLWpvaG5zdHVsQHVzLmlibS5jb20gIm1hdGggaXMgaGFyZCwgbGV0cyBnbyBzaG9wcGluZyEiCi0gKi8KLQotREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgY3ljMm5zKTsKLQotc3RhdGljIHZvaWQgc2V0X2N5YzJuc19zY2FsZSh1bnNpZ25lZCBsb25nIGNwdV9raHosIGludCBjcHUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRzY19ub3csIG5zX25vdzsKLQl1bnNpZ25lZCBsb25nIGZsYWdzLCAqc2NhbGU7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0Jc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCgpOwotCi0Jc2NhbGUgPSAmcGVyX2NwdShjeWMybnMsIGNwdSk7Ci0KLQlyZHRzY2xsKHRzY19ub3cpOwotCW5zX25vdyA9IF9fY3ljbGVzXzJfbnModHNjX25vdyk7Ci0KLQlpZiAoY3B1X2toeikKLQkJKnNjYWxlID0gKE5TRUNfUEVSX01TRUMgPDwgQ1lDMk5TX1NDQUxFX0ZBQ1RPUikvY3B1X2toejsKLQotCS8qCi0JICogU3RhcnQgc21vb3RobHkgd2l0aCB0aGUgbmV3IGZyZXF1ZW5jeToKLQkgKi8KLQlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLS8qCi0gKiBTY2hlZHVsZXIgY2xvY2sgLSByZXR1cm5zIGN1cnJlbnQgdGltZSBpbiBuYW5vc2VjIHVuaXRzLgotICovCi11bnNpZ25lZCBsb25nIGxvbmcgbmF0aXZlX3NjaGVkX2Nsb2NrKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHRoaXNfb2Zmc2V0OwotCi0JLyoKLQkgKiBGYWxsIGJhY2sgdG8gamlmZmllcyBpZiB0aGVyZSdzIG5vIFRTQyBhdmFpbGFibGU6Ci0JICogKCBCdXQgbm90ZSB0aGF0IHdlIHN0aWxsIHVzZSBpdCBpZiB0aGUgVFNDIGlzIG1hcmtlZAotCSAqICAgdW5zdGFibGUuIFdlIGRvIHRoaXMgYmVjYXVzZSB1bmxpa2UgVGltZSBPZiBEYXksCi0JICogICB0aGUgc2NoZWR1bGVyIGNsb2NrIHRvbGVyYXRlcyBzbWFsbCBlcnJvcnMgYW5kIGl0J3MKLQkgKiAgIHZlcnkgaW1wb3J0YW50IGZvciBpdCB0byBiZSBhcyBmYXN0IGFzIHRoZSBwbGF0Zm9ybQotCSAqICAgY2FuIGFjaGl2ZSBpdC4gKQotCSAqLwotCWlmICh1bmxpa2VseSghdHNjX2VuYWJsZWQgJiYgIXRzY191bnN0YWJsZSkpCi0JCS8qIE5vIGxvY2tpbmcgYnV0IGEgcmFyZSB3cm9uZyB2YWx1ZSBpcyBub3QgYSBiaWcgZGVhbDogKi8KLQkJcmV0dXJuIChqaWZmaWVzXzY0IC0gSU5JVElBTF9KSUZGSUVTKSAqICgxMDAwMDAwMDAwIC8gSFopOwotCi0JLyogcmVhZCB0aGUgVGltZSBTdGFtcCBDb3VudGVyOiAqLwotCXJkdHNjbGwodGhpc19vZmZzZXQpOwotCi0JLyogcmV0dXJuIHRoZSB2YWx1ZSBpbiBucyAqLwotCXJldHVybiBjeWNsZXNfMl9ucyh0aGlzX29mZnNldCk7Ci19Ci0KLS8qIFdlIG5lZWQgdG8gZGVmaW5lIGEgcmVhbCBmdW5jdGlvbiBmb3Igc2NoZWRfY2xvY2ssIHRvIG92ZXJyaWRlIHRoZQotICAgd2VhayBkZWZhdWx0IHZlcnNpb24gKi8KLSNpZmRlZiBDT05GSUdfUEFSQVZJUlQKLXVuc2lnbmVkIGxvbmcgbG9uZyBzY2hlZF9jbG9jayh2b2lkKQotewotCXJldHVybiBwYXJhdmlydF9zY2hlZF9jbG9jaygpOwotfQotI2Vsc2UKLXVuc2lnbmVkIGxvbmcgbG9uZyBzY2hlZF9jbG9jayh2b2lkKQotCV9fYXR0cmlidXRlX18oKGFsaWFzKCJuYXRpdmVfc2NoZWRfY2xvY2siKSkpOwotI2VuZGlmCi0KLXVuc2lnbmVkIGxvbmcgbmF0aXZlX2NhbGN1bGF0ZV9jcHVfa2h6KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LCBlbmQ7Ci0JdW5zaWduZWQgbG9uZyBjb3VudDsKLQl1NjQgZGVsdGE2NCA9ICh1NjQpVUxMT05HX01BWDsKLQlpbnQgaTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JLyogcnVuIDMgdGltZXMgdG8gZW5zdXJlIHRoZSBjYWNoZSBpcyB3YXJtIGFuZCB0byBnZXQgYW4gYWNjdXJhdGUgcmVhZGluZyAqLwotCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKLQkJbWFjaF9wcmVwYXJlX2NvdW50ZXIoKTsKLQkJcmR0c2NsbChzdGFydCk7Ci0JCW1hY2hfY291bnR1cCgmY291bnQpOwotCQlyZHRzY2xsKGVuZCk7Ci0KLQkJLyoKLQkJICogRXJyb3I6IEVDVENORVZFUlNFVAotCQkgKiBUaGUgQ1RDIHdhc24ndCByZWxpYWJsZTogd2UgZ290IGEgaGl0IG9uIHRoZSB2ZXJ5IGZpcnN0IHJlYWQsCi0JCSAqIG9yIHRoZSBDUFUgd2FzIHNvIGZhc3Qvc2xvdyB0aGF0IHRoZSBxdW90aWVudCB3b3VsZG4ndCBmaXQgaW4KLQkJICogMzIgYml0cy4uCi0JCSAqLwotCQlpZiAoY291bnQgPD0gMSkKLQkJCWNvbnRpbnVlOwotCi0JCS8qIGNwdSBmcmVxIHRvbyBzbG93OiAqLwotCQlpZiAoKGVuZCAtIHN0YXJ0KSA8PSBDQUxJQlJBVEVfVElNRV9NU0VDKQotCQkJY29udGludWU7Ci0KLQkJLyoKLQkJICogV2Ugd2FudCB0aGUgbWluaW11bSB0aW1lIG9mIGFsbCBydW5zIGluIGNhc2Ugb25lIG9mIHRoZW0KLQkJICogaXMgaW5hY2N1cmF0ZSBkdWUgdG8gU01JIG9yIG90aGVyIGRlbGF5Ci0JCSAqLwotCQlkZWx0YTY0ID0gbWluKGRlbHRhNjQsIChlbmQgLSBzdGFydCkpOwotCX0KLQotCS8qIGNwdSBmcmVxIHRvbyBmYXN0IChvciBldmVyeSBydW4gd2FzIGJhZCk6ICovCi0JaWYgKGRlbHRhNjQgPiAoMVVMTDw8MzIpKQotCQlnb3RvIGVycjsKLQotCWRlbHRhNjQgKz0gQ0FMSUJSQVRFX1RJTUVfTVNFQy8yOyAvKiByb3VuZCBmb3IgZG9fZGl2ICovCi0JZG9fZGl2KGRlbHRhNjQsQ0FMSUJSQVRFX1RJTUVfTVNFQyk7Ci0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JcmV0dXJuICh1bnNpZ25lZCBsb25nKWRlbHRhNjQ7Ci1lcnI6Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1pbnQgcmVjYWxpYnJhdGVfY3B1X2toeih2b2lkKQotewotI2lmbmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgbG9uZyBjcHVfa2h6X29sZCA9IGNwdV9raHo7Ci0KLQlpZiAoY3B1X2hhc190c2MpIHsKLQkJY3B1X2toeiA9IGNhbGN1bGF0ZV9jcHVfa2h6KCk7Ci0JCXRzY19raHogPSBjcHVfa2h6OwotCQljcHVfZGF0YSgwKS5sb29wc19wZXJfamlmZnkgPQotCQkJY3B1ZnJlcV9zY2FsZShjcHVfZGF0YSgwKS5sb29wc19wZXJfamlmZnksCi0JCQkJCWNwdV9raHpfb2xkLCBjcHVfa2h6KTsKLQkJcmV0dXJuIDA7Ci0JfSBlbHNlCi0JCXJldHVybiAtRU5PREVWOwotI2Vsc2UKLQlyZXR1cm4gLUVOT0RFVjsKLSNlbmRpZgotfQotCi1FWFBPUlRfU1lNQk9MKHJlY2FsaWJyYXRlX2NwdV9raHopOwotCi0jaWZkZWYgQ09ORklHX0NQVV9GUkVRCi0KLS8qCi0gKiBpZiB0aGUgQ1BVIGZyZXF1ZW5jeSBpcyBzY2FsZWQsIFRTQy1iYXNlZCBkZWxheXMgd2lsbCBuZWVkIGEgZGlmZmVyZW50Ci0gKiBsb29wc19wZXJfamlmZnkgdmFsdWUgdG8gZnVuY3Rpb24gcHJvcGVybHkuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgcmVmX2ZyZXE7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb29wc19wZXJfamlmZnlfcmVmOwotc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2toel9yZWY7Ci0KLXN0YXRpYyBpbnQKLXRpbWVfY3B1ZnJlcV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgY3B1ZnJlcV9mcmVxcyAqZnJlcSA9IGRhdGE7Ci0KLQlpZiAoIXJlZl9mcmVxKSB7Ci0JCWlmICghZnJlcS0+b2xkKXsKLQkJCXJlZl9mcmVxID0gZnJlcS0+bmV3OwotCQkJcmV0dXJuIDA7Ci0JCX0KLQkJcmVmX2ZyZXEgPSBmcmVxLT5vbGQ7Ci0JCWxvb3BzX3Blcl9qaWZmeV9yZWYgPSBjcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeTsKLQkJY3B1X2toel9yZWYgPSBjcHVfa2h6OwotCX0KLQotCWlmICgodmFsID09IENQVUZSRVFfUFJFQ0hBTkdFICAmJiBmcmVxLT5vbGQgPCBmcmVxLT5uZXcpIHx8Ci0JICAgICh2YWwgPT0gQ1BVRlJFUV9QT1NUQ0hBTkdFICYmIGZyZXEtPm9sZCA+IGZyZXEtPm5ldykgfHwKLQkgICAgKHZhbCA9PSBDUFVGUkVRX1JFU1VNRUNIQU5HRSkpIHsKLQkJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKLQkJCWNwdV9kYXRhKGZyZXEtPmNwdSkubG9vcHNfcGVyX2ppZmZ5ID0KLQkJCQljcHVmcmVxX3NjYWxlKGxvb3BzX3Blcl9qaWZmeV9yZWYsCi0JCQkJCQlyZWZfZnJlcSwgZnJlcS0+bmV3KTsKLQotCQlpZiAoY3B1X2toeikgewotCi0JCQlpZiAobnVtX29ubGluZV9jcHVzKCkgPT0gMSkKLQkJCQljcHVfa2h6ID0gY3B1ZnJlcV9zY2FsZShjcHVfa2h6X3JlZiwKLQkJCQkJCXJlZl9mcmVxLCBmcmVxLT5uZXcpOwotCQkJaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkgewotCQkJCXRzY19raHogPSBjcHVfa2h6OwotCQkJCXNldF9jeWMybnNfc2NhbGUoY3B1X2toeiwgZnJlcS0+Y3B1KTsKLQkJCQkvKgotCQkJCSAqIFRTQyBiYXNlZCBzY2hlZF9jbG9jayB0dXJucwotCQkJCSAqIHRvIGp1bmsgdy8gY3B1ZnJlcQotCQkJCSAqLwotCQkJCW1hcmtfdHNjX3Vuc3RhYmxlKCJjcHVmcmVxIGNoYW5nZXMiKTsKLQkJCX0KLQkJfQotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHRpbWVfY3B1ZnJlcV9ub3RpZmllcl9ibG9jayA9IHsKLQkubm90aWZpZXJfY2FsbAk9IHRpbWVfY3B1ZnJlcV9ub3RpZmllcgotfTsKLQotc3RhdGljIGludCBfX2luaXQgY3B1ZnJlcV90c2Modm9pZCkKLXsKLQlyZXR1cm4gY3B1ZnJlcV9yZWdpc3Rlcl9ub3RpZmllcigmdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrLAotCQkJCQkgQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKLX0KLWNvcmVfaW5pdGNhbGwoY3B1ZnJlcV90c2MpOwotCi0jZW5kaWYKLQotLyogY2xvY2sgc291cmNlIGNvZGUgKi8KLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgY3VycmVudF90c2Nfa2h6Owotc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV90c2M7Ci0KLS8qCi0gKiBXZSBjb21wYXJlIHRoZSBUU0MgdG8gdGhlIGN5Y2xlX2xhc3QgdmFsdWUgaW4gdGhlIGNsb2Nrc291cmNlCi0gKiBzdHJ1Y3R1cmUgdG8gYXZvaWQgYSBuYXN0eSB0aW1lLXdhcnAgaXNzdWUuIFRoaXMgY2FuIGJlIG9ic2VydmVkIGluCi0gKiBhIHZlcnkgc21hbGwgd2luZG93IHJpZ2h0IGFmdGVyIG9uZSBDUFUgdXBkYXRlZCBjeWNsZV9sYXN0IHVuZGVyCi0gKiB4dGltZSBsb2NrIGFuZCB0aGUgb3RoZXIgQ1BVIHJlYWRzIGEgVFNDIHZhbHVlIHdoaWNoIGlzIHNtYWxsZXIKLSAqIHRoYW4gdGhlIGN5Y2xlX2xhc3QgcmVmZXJlbmNlIHZhbHVlIGR1ZSB0byBhIFRTQyB3aGljaCBpcyBzbGlnaHR5Ci0gKiBiZWhpbmQuIFRoaXMgZGVsdGEgaXMgbm93aGVyZSBlbHNlIG9ic2VydmFibGUsIGJ1dCBpbiB0aGF0IGNhc2UgaXQKLSAqIHJlc3VsdHMgaW4gYSBmb3J3YXJkIHRpbWUganVtcCBpbiB0aGUgcmFuZ2Ugb2YgaG91cnMgZHVlIHRvIHRoZQotICogdW5zaWduZWQgZGVsdGEgY2FsY3VsYXRpb24gb2YgdGhlIHRpbWUga2VlcGluZyBjb3JlIGNvZGUsIHdoaWNoIGlzCi0gKiBuZWNlc3NhcnkgdG8gc3VwcG9ydCB3cmFwcGluZyBjbG9ja3NvdXJjZXMgbGlrZSBwbSB0aW1lci4KLSAqLwotc3RhdGljIGN5Y2xlX3QgcmVhZF90c2Modm9pZCkKLXsKLQljeWNsZV90IHJldDsKLQotCXJkdHNjbGwocmV0KTsKLQotCXJldHVybiByZXQgPj0gY2xvY2tzb3VyY2VfdHNjLmN5Y2xlX2xhc3QgPwotCQlyZXQgOiBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdDsKLX0KLQotc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJjZSBjbG9ja3NvdXJjZV90c2MgPSB7Ci0JLm5hbWUJCQk9ICJ0c2MiLAotCS5yYXRpbmcJCQk9IDMwMCwKLQkucmVhZAkJCT0gcmVhZF90c2MsCi0JLm1hc2sJCQk9IENMT0NLU09VUkNFX01BU0soNjQpLAotCS5tdWx0CQkJPSAwLCAvKiB0byBiZSBzZXQgKi8KLQkuc2hpZnQJCQk9IDIyLAotCS5mbGFncwkJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMgfAotCQkJCSAgQ0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZLAotfTsKLQotdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pCi17Ci0JaWYgKCF0c2NfdW5zdGFibGUpIHsKLQkJdHNjX3Vuc3RhYmxlID0gMTsKLQkJdHNjX2VuYWJsZWQgPSAwOwotCQlwcmludGsoIk1hcmtpbmcgVFNDIHVuc3RhYmxlIGR1ZSB0bzogJXMuXG4iLCByZWFzb24pOwotCQkvKiBDYW4gYmUgY2FsbGVkIGJlZm9yZSByZWdpc3RyYXRpb24gKi8KLQkJaWYgKGNsb2Nrc291cmNlX3RzYy5tdWx0KQotCQkJY2xvY2tzb3VyY2VfY2hhbmdlX3JhdGluZygmY2xvY2tzb3VyY2VfdHNjLCAwKTsKLQkJZWxzZQotCQkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7Ci0JfQotfQotRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2NfdW5zdGFibGUpOwotCi1zdGF0aWMgaW50IF9faW5pdCBkbWlfbWFya190c2NfdW5zdGFibGUoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpCi17Ci0JcHJpbnRrKEtFUk5fTk9USUNFICIlcyBkZXRlY3RlZDogbWFya2luZyBUU0MgdW5zdGFibGUuXG4iLAotCQkgICAgICAgZC0+aWRlbnQpOwotCXRzY191bnN0YWJsZSA9IDE7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIExpc3Qgb2Ygc3lzdGVtcyB0aGF0IGhhdmUga25vd24gVFNDIHByb2JsZW1zICovCi1zdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0ZGF0YSBiYWRfdHNjX2RtaV90YWJsZVtdID0gewotCXsKLQkgLmNhbGxiYWNrID0gZG1pX21hcmtfdHNjX3Vuc3RhYmxlLAotCSAuaWRlbnQgPSAiSUJNIFRoaW5rcGFkIDM4MFhEIiwKLQkgLm1hdGNoZXMgPSB7Ci0JCSAgICAgRE1JX01BVENIKERNSV9CT0FSRF9WRU5ET1IsICJJQk0iKSwKLQkJICAgICBETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUsICIyNjM1RkEwIiksCi0JCSAgICAgfSwKLQkgfSwKLQkge30KLX07Ci0KLS8qCi0gKiBNYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGlmIHRoZSBUU0MgaXMgdHJ1c3R3b3J0aHkgYW5kIHN5bmNocm9uaXplZAotICogb3ZlciBhbGwgQ1BVcy4KLSAqLwotX19jcHVpbml0IGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCkKLXsKLQlpZiAoIWNwdV9oYXNfdHNjIHx8IHRzY191bnN0YWJsZSkKLQkJcmV0dXJuIDE7Ci0KLQkvKiBBbnl0aGluZyB3aXRoIGNvbnN0YW50IFRTQyBzaG91bGQgYmUgc3luY2hyb25pemVkICovCi0JaWYgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DT05TVEFOVF9UU0MpKQotCQlyZXR1cm4gMDsKLQotCS8qCi0JICogSW50ZWwgc3lzdGVtcyBhcmUgbm9ybWFsbHkgYWxsIHN5bmNocm9uaXplZC4KLQkgKiBFeGNlcHRpb25zIG11c3QgbWFyayBUU0MgYXMgdW5zdGFibGU6Ci0JICovCi0JaWYgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0lOVEVMKSB7Ci0JCS8qIGFzc3VtZSBtdWx0aSBzb2NrZXQgc3lzdGVtcyBhcmUgbm90IHN5bmNocm9uaXplZDogKi8KLQkJaWYgKG51bV9wb3NzaWJsZV9jcHVzKCkgPiAxKQotCQkJdHNjX3Vuc3RhYmxlID0gMTsKLQl9Ci0JcmV0dXJuIHRzY191bnN0YWJsZTsKLX0KLQotLyoKLSAqIEdlb2RlX0xYIC0gdGhlIE9MUEMgQ1BVIGhhcyBhIHBvc3NpYmx5IGEgdmVyeSByZWxpYWJsZSBUU0MKLSAqLwotI2lmZGVmIENPTkZJR19NR0VPREVfTFgKLS8qIFJUU0MgY291bnRzIGR1cmluZyBzdXNwZW5kICovCi0jZGVmaW5lIFJUU0NfU1VTUCAweDEwMAotCi1zdGF0aWMgdm9pZCBfX2luaXQgY2hlY2tfZ2VvZGVfdHNjX3JlbGlhYmxlKHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyByZXNfbG93LCByZXNfaGlnaDsKLQotCXJkbXNyX3NhZmUoTVNSX0dFT0RFX0JVU0NPTlRfQ09ORjAsICZyZXNfbG93LCAmcmVzX2hpZ2gpOwotCWlmIChyZXNfbG93ICYgUlRTQ19TVVNQKQotCQljbG9ja3NvdXJjZV90c2MuZmxhZ3MgJj0gfkNMT0NLX1NPVVJDRV9NVVNUX1ZFUklGWTsKLX0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgY2hlY2tfZ2VvZGVfdHNjX3JlbGlhYmxlKHZvaWQpIHsgfQotI2VuZGlmCi0KLQotdm9pZCBfX2luaXQgdHNjX2luaXQodm9pZCkKLXsKLQlpbnQgY3B1OwotCi0JaWYgKCFjcHVfaGFzX3RzYykKLQkJcmV0dXJuOwotCi0JY3B1X2toeiA9IGNhbGN1bGF0ZV9jcHVfa2h6KCk7Ci0JdHNjX2toeiA9IGNwdV9raHo7Ci0KLQlpZiAoIWNwdV9raHopIHsKLQkJbWFya190c2NfdW5zdGFibGUoImNvdWxkIG5vdCBjYWxjdWxhdGUgVFNDIGtoeiIpOwotCQlyZXR1cm47Ci0JfQotCi0JcHJpbnRrKCJEZXRlY3RlZCAlbHUuJTAzbHUgTUh6IHByb2Nlc3Nvci5cbiIsCi0JCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAvIDEwMDAsCi0JCQkJKHVuc2lnbmVkIGxvbmcpY3B1X2toeiAlIDEwMDApOwotCi0JLyoKLQkgKiBTZWNvbmRhcnkgQ1BVcyBkbyBub3QgcnVuIHRocm91Z2ggdHNjX2luaXQoKSwgc28gc2V0IHVwCi0JICogYWxsIHRoZSBzY2FsZSBmYWN0b3JzIGZvciBhbGwgQ1BVcywgYXNzdW1pbmcgdGhlIHNhbWUKLQkgKiBzcGVlZCBhcyB0aGUgYm9vdHVwIENQVS4gKGNwdWZyZXEgbm90aWZpZXJzIHdpbGwgZml4IHRoaXMKLQkgKiB1cCBpZiB0aGVpciBzcGVlZCBkaXZlcmdlcykKLQkgKi8KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlzZXRfY3ljMm5zX3NjYWxlKGNwdV9raHosIGNwdSk7Ci0KLQl1c2VfdHNjX2RlbGF5KCk7Ci0KLQkvKiBDaGVjayBhbmQgaW5zdGFsbCB0aGUgVFNDIGNsb2Nrc291cmNlICovCi0JZG1pX2NoZWNrX3N5c3RlbShiYWRfdHNjX2RtaV90YWJsZSk7Ci0KLQl1bnN5bmNocm9uaXplZF90c2MoKTsKLQljaGVja19nZW9kZV90c2NfcmVsaWFibGUoKTsKLQljdXJyZW50X3RzY19raHogPSB0c2Nfa2h6OwotCWNsb2Nrc291cmNlX3RzYy5tdWx0ID0gY2xvY2tzb3VyY2Vfa2h6Mm11bHQoY3VycmVudF90c2Nfa2h6LAotCQkJCQkJCWNsb2Nrc291cmNlX3RzYy5zaGlmdCk7Ci0JLyogbG93ZXIgdGhlIHJhdGluZyBpZiB3ZSBhbHJlYWR5IGtub3cgaXRzIHVuc3RhYmxlOiAqLwotCWlmIChjaGVja190c2NfdW5zdGFibGUoKSkgewotCQljbG9ja3NvdXJjZV90c2MucmF0aW5nID0gMDsKLQkJY2xvY2tzb3VyY2VfdHNjLmZsYWdzICY9IH5DTE9DS19TT1VSQ0VfSVNfQ09OVElOVU9VUzsKLQl9IGVsc2UKLQkJdHNjX2VuYWJsZWQgPSAxOwotCi0JY2xvY2tzb3VyY2VfcmVnaXN0ZXIoJmNsb2Nrc291cmNlX3RzYyk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdHNjXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdHNjXzY0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjYzE2ZTUuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYva2VybmVsL3RzY182NC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzU2ICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Ci0jaW5jbHVkZSA8bGludXgvY3B1ZnJlcS5oPgotI2luY2x1ZGUgPGxpbnV4L2FjcGlfcG10bXIuaD4KLQotI2luY2x1ZGUgPGFzbS9ocGV0Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWV4Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0jaW5jbHVkZSA8YXNtL3ZndG9kLmg+Ci0KLXN0YXRpYyBpbnQgbm90c2MgX19pbml0ZGF0YSA9IDA7Ci0KLXVuc2lnbmVkIGludCBjcHVfa2h6OwkJLyogVFNDIGNsb2NrcyAvIHVzZWMsIG5vdCB1c2VkIGhlcmUgKi8KLUVYUE9SVF9TWU1CT0woY3B1X2toeik7Ci11bnNpZ25lZCBpbnQgdHNjX2toejsKLUVYUE9SVF9TWU1CT0wodHNjX2toeik7Ci0KLS8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQotICogY29udmVydCBmcm9tIGN5Y2xlcyg2NGJpdHMpID0+IG5hbm9zZWNvbmRzICg2NGJpdHMpCi0gKiAgYmFzaWMgZXF1YXRpb246Ci0gKgkJbnMgPSBjeWNsZXMgLyAoZnJlcSAvIG5zX3Blcl9zZWMpCi0gKgkJbnMgPSBjeWNsZXMgKiAobnNfcGVyX3NlYyAvIGZyZXEpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeOSAvIChjcHVfa2h6ICogMTBeMykpCi0gKgkJbnMgPSBjeWNsZXMgKiAoMTBeNiAvIGNwdV9raHopCi0gKgotICoJVGhlbiB3ZSB1c2Ugc2NhbGluZyBtYXRoIChzdWdnZXN0ZWQgYnkgZ2VvcmdlQG12aXN0YS5jb20pIHRvIGdldDoKLSAqCQlucyA9IGN5Y2xlcyAqICgxMF42ICogU0MgLyBjcHVfa2h6KSAvIFNDCi0gKgkJbnMgPSBjeWNsZXMgKiBjeWMybnNfc2NhbGUgLyBTQwotICoKLSAqCUFuZCBzaW5jZSBTQyBpcyBhIGNvbnN0YW50IHBvd2VyIG9mIHR3bywgd2UgY2FuIGNvbnZlcnQgdGhlIGRpdgotICogIGludG8gYSBzaGlmdC4KLSAqCi0gKiAgV2UgY2FuIHVzZSBraHogZGl2aXNvciBpbnN0ZWFkIG9mIG1oeiB0byBrZWVwIGEgYmV0dGVyIHByZWNpc2lvbiwgc2luY2UKLSAqICBjeWMybnNfc2NhbGUgaXMgbGltaXRlZCB0byAxMF42ICogMl4xMCwgd2hpY2ggZml0cyBpbiAzMiBiaXRzLgotICogIChtYXRoaWV1LmRlc25veWVyc0Bwb2x5bXRsLmNhKQotICoKLSAqCQkJLWpvaG5zdHVsQHVzLmlibS5jb20gIm1hdGggaXMgaGFyZCwgbGV0cyBnbyBzaG9wcGluZyEiCi0gKi8KLURFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGN5YzJucyk7Ci0KLXN0YXRpYyB2b2lkIHNldF9jeWMybnNfc2NhbGUodW5zaWduZWQgbG9uZyBjcHVfa2h6LCBpbnQgY3B1KQotewotCXVuc2lnbmVkIGxvbmcgbG9uZyB0c2Nfbm93LCBuc19ub3c7Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgKnNjYWxlOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXNjaGVkX2Nsb2NrX2lkbGVfc2xlZXBfZXZlbnQoKTsKLQotCXNjYWxlID0gJnBlcl9jcHUoY3ljMm5zLCBjcHUpOwotCi0JcmR0c2NsbCh0c2Nfbm93KTsKLQluc19ub3cgPSBfX2N5Y2xlc18yX25zKHRzY19ub3cpOwotCi0JaWYgKGNwdV9raHopCi0JCSpzY2FsZSA9IChOU0VDX1BFUl9NU0VDIDw8IENZQzJOU19TQ0FMRV9GQUNUT1IpL2NwdV9raHo7Ci0KLQlzY2hlZF9jbG9ja19pZGxlX3dha2V1cF9ldmVudCgwKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2sodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGEgPSAwOwotCi0JLyogQ291bGQgZG8gQ1BVIGNvcmUgc3luYyBoZXJlLiBPcHRlcm9uIGNhbiBleGVjdXRlIHJkdHNjIHNwZWN1bGF0aXZlbHksCi0JICogd2hpY2ggbWVhbnMgaXQgaXMgbm90IGNvbXBsZXRlbHkgZXhhY3QgYW5kIG1heSBub3QgYmUgbW9ub3Rvbm91cwotCSAqIGJldHdlZW4gQ1BVcy4gQnV0IHRoZSBlcnJvcnMgc2hvdWxkIGJlIHRvbyBzbWFsbCB0byBtYXR0ZXIgZm9yCi0JICogc2NoZWR1bGluZyBwdXJwb3Nlcy4KLQkgKi8KLQotCXJkdHNjbGwoYSk7Ci0JcmV0dXJuIGN5Y2xlc18yX25zKGEpOwotfQotCi0vKiBXZSBuZWVkIHRvIGRlZmluZSBhIHJlYWwgZnVuY3Rpb24gZm9yIHNjaGVkX2Nsb2NrLCB0byBvdmVycmlkZSB0aGUKLSAgIHdlYWsgZGVmYXVsdCB2ZXJzaW9uICovCi0jaWZkZWYgQ09ORklHX1BBUkFWSVJUCi11bnNpZ25lZCBsb25nIGxvbmcgc2NoZWRfY2xvY2sodm9pZCkKLXsKLQlyZXR1cm4gcGFyYXZpcnRfc2NoZWRfY2xvY2soKTsKLX0KLSNlbHNlCi11bnNpZ25lZCBsb25nIGxvbmcKLXNjaGVkX2Nsb2NrKHZvaWQpIF9fYXR0cmlidXRlX18oKGFsaWFzKCJuYXRpdmVfc2NoZWRfY2xvY2siKSkpOwotI2VuZGlmCi0KLQotc3RhdGljIGludCB0c2NfdW5zdGFibGU7Ci0KLWludCBjaGVja190c2NfdW5zdGFibGUodm9pZCkKLXsKLQlyZXR1cm4gdHNjX3Vuc3RhYmxlOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoY2hlY2tfdHNjX3Vuc3RhYmxlKTsKLQotI2lmZGVmIENPTkZJR19DUFVfRlJFUQotCi0vKiBGcmVxdWVuY3kgc2NhbGluZyBzdXBwb3J0LiBBZGp1c3QgdGhlIFRTQyBiYXNlZCB0aW1lciB3aGVuIHRoZSBjcHUgZnJlcXVlbmN5Ci0gKiBjaGFuZ2VzLgotICoKLSAqIFJFRC1QRU46IE9uIFNNUCB3ZSBhc3N1bWUgYWxsIENQVXMgcnVuIHdpdGggdGhlIHNhbWUgZnJlcXVlbmN5LiAgSXQncwotICogbm90IHRoYXQgaW1wb3J0YW50IGJlY2F1c2UgY3VycmVudCBPcHRlcm9uIHNldHVwcyBkbyBub3Qgc3VwcG9ydAotICogc2NhbGluZyBvbiBTTVAgYW55cm9hZHMuCi0gKgotICogU2hvdWxkIGZpeCB1cCBsYXN0X3RzYyB0b28uIEN1cnJlbnRseSBnZXR0aW1lb2ZkYXkgaW4gdGhlCi0gKiBmaXJzdCB0aWNrIGFmdGVyIHRoZSBjaGFuZ2Ugd2lsbCBiZSBzbGlnaHRseSB3cm9uZy4KLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgaW50ICByZWZfZnJlcTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvb3BzX3Blcl9qaWZmeV9yZWY7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyB0c2Nfa2h6X3JlZjsKLQotc3RhdGljIGludCB0aW1lX2NwdWZyZXFfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCi0JCQkJIHZvaWQgKmRhdGEpCi17Ci0Jc3RydWN0IGNwdWZyZXFfZnJlcXMgKmZyZXEgPSBkYXRhOwotCXVuc2lnbmVkIGxvbmcgKmxwaiwgZHVtbXk7Ci0KLQlpZiAoY3B1X2hhcygmY3B1X2RhdGEoZnJlcS0+Y3B1KSwgWDg2X0ZFQVRVUkVfQ09OU1RBTlRfVFNDKSkKLQkJcmV0dXJuIDA7Ci0KLQlscGogPSAmZHVtbXk7Ci0JaWYgKCEoZnJlcS0+ZmxhZ3MgJiBDUFVGUkVRX0NPTlNUX0xPT1BTKSkKLSNpZmRlZiBDT05GSUdfU01QCi0JCWxwaiA9ICZjcHVfZGF0YShmcmVxLT5jcHUpLmxvb3BzX3Blcl9qaWZmeTsKLSNlbHNlCi0JCWxwaiA9ICZib290X2NwdV9kYXRhLmxvb3BzX3Blcl9qaWZmeTsKLSNlbmRpZgotCi0JaWYgKCFyZWZfZnJlcSkgewotCQlyZWZfZnJlcSA9IGZyZXEtPm9sZDsKLQkJbG9vcHNfcGVyX2ppZmZ5X3JlZiA9ICpscGo7Ci0JCXRzY19raHpfcmVmID0gdHNjX2toejsKLQl9Ci0JaWYgKCh2YWwgPT0gQ1BVRlJFUV9QUkVDSEFOR0UgICYmIGZyZXEtPm9sZCA8IGZyZXEtPm5ldykgfHwKLQkJKHZhbCA9PSBDUFVGUkVRX1BPU1RDSEFOR0UgJiYgZnJlcS0+b2xkID4gZnJlcS0+bmV3KSB8fAotCQkodmFsID09IENQVUZSRVFfUkVTVU1FQ0hBTkdFKSkgewotCQkqbHBqID0KLQkJY3B1ZnJlcV9zY2FsZShsb29wc19wZXJfamlmZnlfcmVmLCByZWZfZnJlcSwgZnJlcS0+bmV3KTsKLQotCQl0c2Nfa2h6ID0gY3B1ZnJlcV9zY2FsZSh0c2Nfa2h6X3JlZiwgcmVmX2ZyZXEsIGZyZXEtPm5ldyk7Ci0JCWlmICghKGZyZXEtPmZsYWdzICYgQ1BVRlJFUV9DT05TVF9MT09QUykpCi0JCQltYXJrX3RzY191bnN0YWJsZSgiY3B1ZnJlcSBjaGFuZ2VzIik7Ci0JfQotCi0Jc2V0X2N5YzJuc19zY2FsZSh0c2Nfa2h6X3JlZiwgZnJlcS0+Y3B1KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHRpbWVfY3B1ZnJlcV9ub3RpZmllcl9ibG9jayA9IHsKLQkubm90aWZpZXJfY2FsbCAgPSB0aW1lX2NwdWZyZXFfbm90aWZpZXIKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNwdWZyZXFfdHNjKHZvaWQpCi17Ci0JY3B1ZnJlcV9yZWdpc3Rlcl9ub3RpZmllcigmdGltZV9jcHVmcmVxX25vdGlmaWVyX2Jsb2NrLAotCQkJCSAgQ1BVRlJFUV9UUkFOU0lUSU9OX05PVElGSUVSKTsKLQlyZXR1cm4gMDsKLX0KLQotY29yZV9pbml0Y2FsbChjcHVmcmVxX3RzYyk7Ci0KLSNlbmRpZgotCi0jZGVmaW5lIE1BWF9SRVRSSUVTCTUKLSNkZWZpbmUgU01JX1RSRVNIT0xECTUwMDAwCi0KLS8qCi0gKiBSZWFkIFRTQyBhbmQgdGhlIHJlZmVyZW5jZSBjb3VudGVycy4gVGFrZSBjYXJlIG9mIFNNSSBkaXN0dXJiYW5jZQotICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXQgdHNjX3JlYWRfcmVmcyh1bnNpZ25lZCBsb25nICpwbSwKLQkJCQkJICB1bnNpZ25lZCBsb25nICpocGV0KQotewotCXVuc2lnbmVkIGxvbmcgdDEsIHQyOwotCWludCBpOwotCi0JZm9yIChpID0gMDsgaSA8IE1BWF9SRVRSSUVTOyBpKyspIHsKLQkJdDEgPSBnZXRfY3ljbGVzKCk7Ci0JCWlmIChocGV0KQotCQkJKmhwZXQgPSBocGV0X3JlYWRsKEhQRVRfQ09VTlRFUikgJiAweEZGRkZGRkZGOwotCQllbHNlCi0JCQkqcG0gPSBhY3BpX3BtX3JlYWRfZWFybHkoKTsKLQkJdDIgPSBnZXRfY3ljbGVzKCk7Ci0JCWlmICgodDIgLSB0MSkgPCBTTUlfVFJFU0hPTEQpCi0JCQlyZXR1cm4gdDI7Ci0JfQotCXJldHVybiBVTE9OR19NQVg7Ci19Ci0KLS8qKgotICogdHNjX2NhbGlicmF0ZSAtIGNhbGlicmF0ZSB0aGUgdHNjIG9uIGJvb3QKLSAqLwotdm9pZCBfX2luaXQgdHNjX2NhbGlicmF0ZSh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHRzYzEsIHRzYzIsIHRyMSwgdHIyLCBwbTEsIHBtMiwgaHBldDEsIGhwZXQyOwotCWludCBocGV0ID0gaXNfaHBldF9lbmFibGVkKCksIGNwdTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQotCXRzYzEgPSB0c2NfcmVhZF9yZWZzKCZwbTEsIGhwZXQgPyAmaHBldDEgOiBOVUxMKTsKLQotCW91dGIoKGluYigweDYxKSAmIH4weDAyKSB8IDB4MDEsIDB4NjEpOwotCi0Jb3V0YigweGIwLCAweDQzKTsKLQlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgJiAweGZmLCAweDQyKTsKLQlvdXRiKChDTE9DS19USUNLX1JBVEUgLyAoMTAwMCAvIDUwKSkgPj4gOCwgMHg0Mik7Ci0JdHIxID0gZ2V0X2N5Y2xlcygpOwotCXdoaWxlICgoaW5iKDB4NjEpICYgMHgyMCkgPT0gMCk7Ci0JdHIyID0gZ2V0X2N5Y2xlcygpOwotCi0JdHNjMiA9IHRzY19yZWFkX3JlZnMoJnBtMiwgaHBldCA/ICZocGV0MiA6IE5VTEwpOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JLyoKLQkgKiBQcmVzZXQgdGhlIHJlc3VsdCB3aXRoIHRoZSByYXcgYW5kIGluYWNjdXJhdGUgUElUCi0JICogY2FsaWJyYXRpb24gdmFsdWUKLQkgKi8KLQl0c2Nfa2h6ID0gKHRyMiAtIHRyMSkgLyA1MDsKLQotCS8qIGhwZXQgb3IgcG10aW1lciBhdmFpbGFibGUgPyAqLwotCWlmICghaHBldCAmJiAhcG0xICYmICFwbTIpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBQSVRcbiIpOwotCQlyZXR1cm47Ci0JfQotCi0JLyogQ2hlY2ssIHdoZXRoZXIgdGhlIHNhbXBsaW5nIHdhcyBkaXN0dXJiZWQgYnkgYW4gU01JICovCi0JaWYgKHRzYzEgPT0gVUxPTkdfTUFYIHx8IHRzYzIgPT0gVUxPTkdfTUFYKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIlRTQyBjYWxpYnJhdGlvbiBkaXN0dXJiZWQgYnkgU01JLCAiCi0JCSAgICAgICAidXNpbmcgUElUIGNhbGlicmF0aW9uIHJlc3VsdFxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQl0c2MyID0gKHRzYzIgLSB0c2MxKSAqIDEwMDAwMDBMOwotCi0JaWYgKGhwZXQpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiVFNDIGNhbGlicmF0ZWQgYWdhaW5zdCBIUEVUXG4iKTsKLQkJaWYgKGhwZXQyIDwgaHBldDEpCi0JCQlocGV0MiArPSAweDEwMDAwMDAwMDsKLQkJaHBldDIgLT0gaHBldDE7Ci0JCXRzYzEgPSAoaHBldDIgKiBocGV0X3JlYWRsKEhQRVRfUEVSSU9EKSkgLyAxMDAwMDAwOwotCX0gZWxzZSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIlRTQyBjYWxpYnJhdGVkIGFnYWluc3QgUE1fVElNRVJcbiIpOwotCQlpZiAocG0yIDwgcG0xKQotCQkJcG0yICs9IEFDUElfUE1fT1ZSUlVOOwotCQlwbTIgLT0gcG0xOwotCQl0c2MxID0gKHBtMiAqIDEwMDAwMDAwMDApIC8gUE1UTVJfVElDS1NfUEVSX1NFQzsKLQl9Ci0KLQl0c2Nfa2h6ID0gdHNjMiAvIHRzYzE7Ci0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KQotCQlzZXRfY3ljMm5zX3NjYWxlKHRzY19raHosIGNwdSk7Ci19Ci0KLS8qCi0gKiBNYWtlIGFuIGVkdWNhdGVkIGd1ZXNzIGlmIHRoZSBUU0MgaXMgdHJ1c3R3b3J0aHkgYW5kIHN5bmNocm9uaXplZAotICogb3ZlciBhbGwgQ1BVcy4KLSAqLwotX19jcHVpbml0IGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCkKLXsKLQlpZiAodHNjX3Vuc3RhYmxlKQotCQlyZXR1cm4gMTsKLQotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAoYXBpY19pc19jbHVzdGVyZWRfYm94KCkpCi0JCXJldHVybiAxOwotI2VuZGlmCi0KLQlpZiAoYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NPTlNUQU5UX1RTQykpCi0JCXJldHVybiAwOwotCi0JLyogQXNzdW1lIG11bHRpIHNvY2tldCBzeXN0ZW1zIGFyZSBub3Qgc3luY2hyb25pemVkICovCi0JcmV0dXJuIG51bV9wcmVzZW50X2NwdXMoKSA+IDE7Ci19Ci0KLWludCBfX2luaXQgbm90c2Nfc2V0dXAoY2hhciAqcykKLXsKLQlub3RzYyA9IDE7Ci0JcmV0dXJuIDE7Ci19Ci0KLV9fc2V0dXAoIm5vdHNjIiwgbm90c2Nfc2V0dXApOwotCi1zdGF0aWMgc3RydWN0IGNsb2Nrc291cmNlIGNsb2Nrc291cmNlX3RzYzsKLQotLyoKLSAqIFdlIGNvbXBhcmUgdGhlIFRTQyB0byB0aGUgY3ljbGVfbGFzdCB2YWx1ZSBpbiB0aGUgY2xvY2tzb3VyY2UKLSAqIHN0cnVjdHVyZSB0byBhdm9pZCBhIG5hc3R5IHRpbWUtd2FycC4gVGhpcyBjYW4gYmUgb2JzZXJ2ZWQgaW4gYQotICogdmVyeSBzbWFsbCB3aW5kb3cgcmlnaHQgYWZ0ZXIgb25lIENQVSB1cGRhdGVkIGN5Y2xlX2xhc3QgdW5kZXIKLSAqIHh0aW1lL3ZzeXNjYWxsX2d0b2QgbG9jayBhbmQgdGhlIG90aGVyIENQVSByZWFkcyBhIFRTQyB2YWx1ZSB3aGljaAotICogaXMgc21hbGxlciB0aGFuIHRoZSBjeWNsZV9sYXN0IHJlZmVyZW5jZSB2YWx1ZSBkdWUgdG8gYSBUU0Mgd2hpY2gKLSAqIGlzIHNsaWdodHkgYmVoaW5kLiBUaGlzIGRlbHRhIGlzIG5vd2hlcmUgZWxzZSBvYnNlcnZhYmxlLCBidXQgaW4KLSAqIHRoYXQgY2FzZSBpdCByZXN1bHRzIGluIGEgZm9yd2FyZCB0aW1lIGp1bXAgaW4gdGhlIHJhbmdlIG9mIGhvdXJzCi0gKiBkdWUgdG8gdGhlIHVuc2lnbmVkIGRlbHRhIGNhbGN1bGF0aW9uIG9mIHRoZSB0aW1lIGtlZXBpbmcgY29yZQotICogY29kZSwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIHN1cHBvcnQgd3JhcHBpbmcgY2xvY2tzb3VyY2VzIGxpa2UgcG0KLSAqIHRpbWVyLgotICovCi1zdGF0aWMgY3ljbGVfdCByZWFkX3RzYyh2b2lkKQotewotCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpZ2V0X2N5Y2xlcygpOwotCi0JcmV0dXJuIHJldCA+PSBjbG9ja3NvdXJjZV90c2MuY3ljbGVfbGFzdCA/Ci0JCXJldCA6IGNsb2Nrc291cmNlX3RzYy5jeWNsZV9sYXN0OwotfQotCi1zdGF0aWMgY3ljbGVfdCBfX3ZzeXNjYWxsX2ZuIHZyZWFkX3RzYyh2b2lkKQotewotCWN5Y2xlX3QgcmV0ID0gKGN5Y2xlX3QpdmdldF9jeWNsZXMoKTsKLQotCXJldHVybiByZXQgPj0gX192c3lzY2FsbF9ndG9kX2RhdGEuY2xvY2suY3ljbGVfbGFzdCA/Ci0JCXJldCA6IF9fdnN5c2NhbGxfZ3RvZF9kYXRhLmNsb2NrLmN5Y2xlX2xhc3Q7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xvY2tzb3VyY2UgY2xvY2tzb3VyY2VfdHNjID0gewotCS5uYW1lCQkJPSAidHNjIiwKLQkucmF0aW5nCQkJPSAzMDAsCi0JLnJlYWQJCQk9IHJlYWRfdHNjLAotCS5tYXNrCQkJPSBDTE9DS1NPVVJDRV9NQVNLKDY0KSwKLQkuc2hpZnQJCQk9IDIyLAotCS5mbGFncwkJCT0gQ0xPQ0tfU09VUkNFX0lTX0NPTlRJTlVPVVMgfAotCQkJCSAgQ0xPQ0tfU09VUkNFX01VU1RfVkVSSUZZLAotCS52cmVhZAkJCT0gdnJlYWRfdHNjLAotfTsKLQotdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pCi17Ci0JaWYgKCF0c2NfdW5zdGFibGUpIHsKLQkJdHNjX3Vuc3RhYmxlID0gMTsKLQkJcHJpbnRrKCJNYXJraW5nIFRTQyB1bnN0YWJsZSBkdWUgdG8gJXNcbiIsIHJlYXNvbik7Ci0JCS8qIENoYW5nZSBvbmx5IHRoZSByYXRpbmcsIHdoZW4gbm90IHJlZ2lzdGVyZWQgKi8KLQkJaWYgKGNsb2Nrc291cmNlX3RzYy5tdWx0KQotCQkJY2xvY2tzb3VyY2VfY2hhbmdlX3JhdGluZygmY2xvY2tzb3VyY2VfdHNjLCAwKTsKLQkJZWxzZQotCQkJY2xvY2tzb3VyY2VfdHNjLnJhdGluZyA9IDA7Ci0JfQotfQotRVhQT1JUX1NZTUJPTF9HUEwobWFya190c2NfdW5zdGFibGUpOwotCi12b2lkIF9faW5pdCBpbml0X3RzY19jbG9ja3NvdXJjZSh2b2lkKQotewotCWlmICghbm90c2MpIHsKLQkJY2xvY2tzb3VyY2VfdHNjLm11bHQgPSBjbG9ja3NvdXJjZV9raHoybXVsdCh0c2Nfa2h6LAotCQkJCQkJCWNsb2Nrc291cmNlX3RzYy5zaGlmdCk7Ci0JCWlmIChjaGVja190c2NfdW5zdGFibGUoKSkKLQkJCWNsb2Nrc291cmNlX3RzYy5yYXRpbmcgPSAwOwotCi0JCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZjbG9ja3NvdXJjZV90c2MpOwotCX0KLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92aXN3c19xdWlya3MuYyBiL2FyY2gveDg2L2tlcm5lbC92aXN3c19xdWlya3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTRiZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYva2VybmVsL3Zpc3dzX3F1aXJrcy5jCkBAIC0wLDAgKzEsNzA5IEBACisvKgorICogIFNHSSBWaXN1YWwgV29ya3N0YXRpb24gc3VwcG9ydCBhbmQgcXVpcmtzLCB1bm1haW50YWluZWQuCisgKgorICogIFNwbGl0IG91dCBmcm9tIHNldHVwLmMgYnkgZGF2ZWpAc3VzZS5kZQorICoKKyAqCUNvcHlyaWdodCAoQykgMTk5OSBCZW50IEhhZ2VtYXJrLCBJbmdvIE1vbG5hcgorICoKKyAqICBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIGludGVycnVwdCBjb250cm9sbGVyCisgKgorICogIFRoZSBDb2JhbHQgc3lzdGVtIEFTSUMgaW4gdGhlIFZpc3VhbCBXb3Jrc3RhdGlvbiBjb250YWlucyBhICJDb2JhbHQiIEFQSUMKKyAqICB3aGljaCBzZXJ2ZXMgYXMgdGhlIG1haW4gaW50ZXJydXB0IGNvbnRyb2xsZXIgaW4gdGhlIHN5c3RlbS4gIE5vbi1sZWdhY3kKKyAqICBoYXJkd2FyZSBpbiB0aGUgc3lzdGVtIHVzZXMgdGhpcyBjb250cm9sbGVyIGRpcmVjdGx5LiAgTGVnYWN5IGRldmljZXMKKyAqICBhcmUgY29ubmVjdGVkIHRvIHRoZSBQSUlYNCB3aGljaCBpbiB0dXJuIGhhcyBpdHMgODI1OShzKSBjb25uZWN0ZWQgdG8KKyAqICBhIG9mIHRoZSBDb2JhbHQgQVBJQyBlbnRyeS4KKyAqCisgKiAgMDkvMDIvMjAwMCAtIFVwZGF0ZWQgZm9yIDIuNCBieSBqYmFybmVzQHNnaS5jb20KKyAqCisgKiAgMjUvMTEvMjAwMiAtIFVwZGF0ZWQgZm9yIDIuNSBieSBBbmRyZXkgUGFuaW4gPHBhemtlQG9yYml0YTEucnU+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL3BpaXg0Lmg+CisjaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CisjaW5jbHVkZSA8YXNtL3JlYm9vdC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgorI2luY2x1ZGUgPGFzbS9lODIwLmg+CisjaW5jbHVkZSA8YXNtL3NtcC5oPgorI2luY2x1ZGUgPGFzbS9pby5oPgorCisjaW5jbHVkZSA8bWFjaF9pcGkuaD4KKworI2luY2x1ZGUgIm1hY2hfYXBpYy5oIgorCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgorCisjaW5jbHVkZSA8bGludXgva2VybmVsX3N0YXQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9pODI1OS5oPgorI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9jb2JhbHQuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvbGl0aGl1bS5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9waWl4NC5oPgorCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvcGNpX2lkcy5oPgorCitleHRlcm4gaW50IG5vX2Jyb2FkY2FzdDsKKworI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2FyY2hfaG9va3MuaD4KKyNpbmNsdWRlIDxhc20vdmlzd3MvY29iYWx0Lmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2xpdGhpdW0uaD4KKworY2hhciB2aXN3c19ib2FyZF90eXBlCT0gLTE7CitjaGFyIHZpc3dzX2JvYXJkX3Jldgk9IC0xOworCitpbnQgaXNfdmlzd3NfYm94KHZvaWQpCit7CisJcmV0dXJuIHZpc3dzX2JvYXJkX3R5cGUgPj0gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgdmlzd3NfdGltZV9pbml0X3F1aXJrKHZvaWQpCit7CisJcHJpbnRrKEtFUk5fSU5GTyAiU3RhcnRpbmcgQ29iYWx0IFRpbWVyIHN5c3RlbSBjbG9ja1xuIik7CisKKwkvKiBTZXQgdGhlIGNvdW50ZG93biB2YWx1ZSAqLworCWNvX2NwdV93cml0ZShDT19DUFVfVElNRVZBTCwgQ09fVElNRV9IWi9IWik7CisKKwkvKiBTdGFydCB0aGUgdGltZXIgKi8KKwljb19jcHVfd3JpdGUoQ09fQ1BVX0NUUkwsIGNvX2NwdV9yZWFkKENPX0NQVV9DVFJMKSB8IENPX0NUUkxfVElNRVJVTik7CisKKwkvKiBFbmFibGUgKHVubWFzaykgdGhlIHRpbWVyIGludGVycnVwdCAqLworCWNvX2NwdV93cml0ZShDT19DUFVfQ1RSTCwgY29fY3B1X3JlYWQoQ09fQ1BVX0NUUkwpICYgfkNPX0NUUkxfVElNRU1BU0spOworCisJLyoKKwkgKiBaZXJvIHJldHVybiBtZWFucyB0aGUgZ2VuZXJpYyB0aW1lciBzZXR1cCBjb2RlIHdpbGwgc2V0IHVwCisJICogdGhlIHN0YW5kYXJkIHZlY3RvcjoKKwkgKi8KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQgdmlzd3NfcHJlX2ludHJfaW5pdF9xdWlyayh2b2lkKQoreworCWluaXRfVklTV1NfQVBJQ19pcnFzKCk7CisKKwkvKgorCSAqIFdlIGRvbnQgd2FudCBJU0EgaXJxcyB0byBiZSBzZXQgdXAgYnkgdGhlIGdlbmVyaWMgY29kZToKKwkgKi8KKwlyZXR1cm4gMTsKK30KKworLyogUXVpcmsgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLiAqLworCisjZGVmaW5lIE1CICgxMDI0ICogMTAyNCkKKwordW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOwordW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9zaXplOworRVhQT1JUX1NZTUJPTChzZ2l2d2ZiX21lbV9waHlzKTsKK0VYUE9SVF9TWU1CT0woc2dpdndmYl9tZW1fc2l6ZSk7CisKK2xvbmcgbG9uZyBtZW1fc2l6ZSBfX2luaXRkYXRhID0gMDsKKworc3RhdGljIGNoYXIgKiBfX2luaXQgdmlzd3NfbWVtb3J5X3NldHVwX3F1aXJrKHZvaWQpCit7CisJbG9uZyBsb25nIGdmeF9tZW1fc2l6ZSA9IDggKiBNQjsKKworCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOworCisJaWYgKCFtZW1fc2l6ZSkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJCb290bG9hZGVyIGRpZG4ndCBzZXQgbWVtb3J5IHNpemUsIHVwZ3JhZGUgaXQgIVxuIik7CisJCW1lbV9zaXplID0gMTI4ICogTUI7CisJfQorCisJLyoKKwkgKiB0aGlzIGhhcmRjb2RlcyB0aGUgZ3JhcGhpY3MgbWVtb3J5IHRvIDggTUIKKwkgKiBpdCByZWFsbHkgc2hvdWxkIGJlIHNpemVkIGR5bmFtaWNhbGx5IChvciBhdCBsZWFzdAorCSAqIHNldCBhcyBhIGJvb3QgcGFyYW0pCisJICovCisJaWYgKCFzZ2l2d2ZiX21lbV9zaXplKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIkRlZmF1bHRpbmcgdG8gOCBNQiBmcmFtZWJ1ZmZlciBzaXplXG4iKTsKKwkJc2dpdndmYl9tZW1fc2l6ZSA9IDggKiBNQjsKKwl9CisKKwkvKgorCSAqIFRyaW0gdG8gbmVhcmVzdCBNQgorCSAqLworCXNnaXZ3ZmJfbWVtX3NpemUgJj0gfigoMSA8PCAyMCkgLSAxKTsKKwlzZ2l2d2ZiX21lbV9waHlzID0gbWVtX3NpemUgLSBnZnhfbWVtX3NpemU7CisKKwllODIwX2FkZF9yZWdpb24oMCwgTE9XTUVNU0laRSgpLCBFODIwX1JBTSk7CisJZTgyMF9hZGRfcmVnaW9uKEhJR0hfTUVNT1JZLCBtZW1fc2l6ZSAtIHNnaXZ3ZmJfbWVtX3NpemUgLSBISUdIX01FTU9SWSwgRTgyMF9SQU0pOworCWU4MjBfYWRkX3JlZ2lvbihzZ2l2d2ZiX21lbV9waHlzLCBzZ2l2d2ZiX21lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKKworCXJldHVybiAiUFJPTSI7Cit9CisKK3N0YXRpYyB2b2lkIHZpc3dzX21hY2hpbmVfZW1lcmdlbmN5X3Jlc3RhcnQodm9pZCkKK3sKKwkvKgorCSAqIFZpc3VhbCBXb3Jrc3RhdGlvbnMgcmVzdGFydCBhZnRlciB0aGlzCisJICogcmVnaXN0ZXIgaXMgcG9rZWQgb24gdGhlIFBJSVg0CisJICovCisJb3V0YihQSUlYNF9SRVNFVF9WQUwsIFBJSVg0X1JFU0VUX1BPUlQpOworfQorCitzdGF0aWMgdm9pZCB2aXN3c19tYWNoaW5lX3Bvd2VyX29mZih2b2lkKQoreworCXVuc2lnbmVkIHNob3J0IHBtX3N0YXR1czsKKy8qCWV4dGVybiB1bnNpZ25lZCBpbnQgcGNpX2J1czA7ICovCisKKwl3aGlsZSAoKHBtX3N0YXR1cyA9IGludyhQTVNUU19QT1JUKSkgJiAweDEwMCkKKwkJb3V0dyhwbV9zdGF0dXMsIFBNU1RTX1BPUlQpOworCisJb3V0dyhQTV9TVVNQRU5EX0VOQUJMRSwgUE1DTlRSTF9QT1JUKTsKKworCW1kZWxheSgxMCk7CisKKyNkZWZpbmUgUENJX0NPTkYxX0FERFJFU1MoYnVzLCBkZXZmbiwgcmVnKSBcCisJKDB4ODAwMDAwMDAgfCAoYnVzIDw8IDE2KSB8IChkZXZmbiA8PCA4KSB8IChyZWcgJiB+MykpCisKKy8qCW91dGwoUENJX0NPTkYxX0FERFJFU1MocGNpX2J1czAsIFNQRUNJQUxfREVWLCBTUEVDSUFMX1JFRyksIDB4Q0Y4KTsgKi8KKwlvdXRsKFBJSVhfU1BFQ0lBTF9TVE9QLCAweENGQyk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IHZpc3dzX2dldF9zbXBfY29uZmlnX3F1aXJrKHVuc2lnbmVkIGludCBlYXJseSkKK3sKKwkvKgorCSAqIFByZXZlbnQgTVAtdGFibGUgcGFyc2luZyBieSB0aGUgZ2VuZXJpYyBjb2RlOgorCSAqLworCXJldHVybiAxOworfQorCitleHRlcm4gdW5zaWduZWQgaW50IF9fY3B1aW5pdGRhdGEgbWF4Y3B1czsKKworLyoKKyAqIFRoZSBWaXN1YWwgV29ya3N0YXRpb24gaXMgSW50ZWwgTVAgY29tcGxpYW50IGluIHRoZSBoYXJkd2FyZQorICogc2Vuc2UsIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYSBCSU9TKC1jb25maWd1cmF0aW9uIHRhYmxlKS4KKyAqIE5vIHByb2JsZW0gZm9yIExpbnV4LgorICovCisKK3N0YXRpYyB2b2lkIF9faW5pdCBNUF9wcm9jZXNzb3JfaW5mbyAoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptKQoreworCWludCB2ZXIsIGxvZ2ljYWxfYXBpY2lkOworCXBoeXNpZF9tYXNrX3QgYXBpY19jcHVzOworCisJaWYgKCEobS0+bXBjX2NwdWZsYWcgJiBDUFVfRU5BQkxFRCkpCisJCXJldHVybjsKKworCWxvZ2ljYWxfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKKwlwcmludGsoS0VSTl9JTkZPICIlc0NQVSAjJWQgJXU6JXUgQVBJQyB2ZXJzaW9uICVkXG4iLAorCSAgICAgICBtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SID8gIkJvb3R1cCAiIDogIiIsCisJICAgICAgIG0tPm1wY19hcGljaWQsCisJICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9GQU1JTFlfTUFTSykgPj4gOCwKKwkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX01PREVMX01BU0spID4+IDQsCisJICAgICAgIG0tPm1wY19hcGljdmVyKTsKKworCWlmIChtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SKQorCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBtLT5tcGNfYXBpY2lkOworCisJdmVyID0gbS0+bXBjX2FwaWN2ZXI7CisJaWYgKCh2ZXIgPj0gMHgxNCAmJiBtLT5tcGNfYXBpY2lkID49IDB4ZmYpIHx8IG0tPm1wY19hcGljaWQgPj0gMHhmKSB7CisJCXByaW50ayhLRVJOX0VSUiAiUHJvY2Vzc29yICMlZCBJTlZBTElELiAoTWF4IElEOiAlZCkuXG4iLAorCQkJbS0+bXBjX2FwaWNpZCwgTUFYX0FQSUNTKTsKKwkJcmV0dXJuOworCX0KKworCWFwaWNfY3B1cyA9IGFwaWNpZF90b19jcHVfcHJlc2VudChtLT5tcGNfYXBpY2lkKTsKKwlwaHlzaWRzX29yKHBoeXNfY3B1X3ByZXNlbnRfbWFwLCBwaHlzX2NwdV9wcmVzZW50X21hcCwgYXBpY19jcHVzKTsKKwkvKgorCSAqIFZhbGlkYXRlIHZlcnNpb24KKwkgKi8KKwlpZiAodmVyID09IDB4MCkgeworCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBBUElDIHZlcnNpb24gaXMgMCBmb3IgQ1BVIyVkISAiCisJCQkiZml4aW5nIHVwIHRvIDB4MTAuICh0ZWxsIHlvdXIgaHcgdmVuZG9yKVxuIiwKKwkJCW0tPm1wY19hcGljaWQpOworCQl2ZXIgPSAweDEwOworCX0KKwlhcGljX3ZlcnNpb25bbS0+bXBjX2FwaWNpZF0gPSB2ZXI7Cit9CisKK2ludCBfX2luaXQgdmlzd3NfZmluZF9zbXBfY29uZmlnX3F1aXJrKHVuc2lnbmVkIGludCByZXNlcnZlKQoreworCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbXAgPSBwaHlzX3RvX3ZpcnQoQ09fQ1BVX1RBQl9QSFlTKTsKKwl1bnNpZ25lZCBzaG9ydCBuY3B1cyA9IHJlYWR3KHBoeXNfdG9fdmlydChDT19DUFVfTlVNX1BIWVMpKTsKKworCWlmIChuY3B1cyA+IENPX0NQVV9NQVgpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiZmluZF92aXN3c19zbXA6IGdvdCBjcHUgY291bnQgb2YgJWQgYXQgJXBcbiIsCisJCQluY3B1cywgbXApOworCisJCW5jcHVzID0gQ09fQ1BVX01BWDsKKwl9CisKKwlpZiAobmNwdXMgPiBtYXhjcHVzKQorCQluY3B1cyA9IG1heGNwdXM7CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKwlzbXBfZm91bmRfY29uZmlnID0gMTsKKyNlbmRpZgorCXdoaWxlIChuY3B1cy0tKQorCQlNUF9wcm9jZXNzb3JfaW5mbyhtcCsrKTsKKworCW1wX2xhcGljX2FkZHIgPSBBUElDX0RFRkFVTFRfUEhZU19CQVNFOworCisJcmV0dXJuIDE7Cit9CisKK2V4dGVybiBpbnQgdmlzd3NfdHJhcF9pbml0X3F1aXJrKHZvaWQpOworCit2b2lkIF9faW5pdCB2aXN3c19lYXJseV9kZXRlY3Qodm9pZCkKK3sKKwlpbnQgcmF3OworCisJdmlzd3NfYm9hcmRfdHlwZSA9IChjaGFyKShpbmJfcChQSUlYX0dQSV9CRF9SRUcpICYgUElJWF9HUElfQkRfUkVHKQorCQkJCQkJCSA+PiBQSUlYX0dQSV9CRF9TSElGVDsKKworCWlmICh2aXN3c19ib2FyZF90eXBlIDwgMCkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJbnN0YWxsIHNwZWNpYWwgcXVpcmtzIGZvciB0aW1lciwgaW50ZXJydXB0IGFuZCBtZW1vcnkgc2V0dXA6CisJICovCisJYXJjaF90aW1lX2luaXRfcXVpcmsJCT0gdmlzd3NfdGltZV9pbml0X3F1aXJrOworCWFyY2hfcHJlX2ludHJfaW5pdF9xdWlyawk9IHZpc3dzX3ByZV9pbnRyX2luaXRfcXVpcms7CisJYXJjaF9tZW1vcnlfc2V0dXBfcXVpcmsJCT0gdmlzd3NfbWVtb3J5X3NldHVwX3F1aXJrOworCisJLyoKKwkgKiBGYWxsIGJhY2sgdG8gZ2VuZXJpYyBiZWhhdmlvciBmb3IgdHJhcHM6CisJICovCisJYXJjaF9pbnRyX2luaXRfcXVpcmsJCT0gTlVMTDsKKwlhcmNoX3RyYXBfaW5pdF9xdWlyawkJPSB2aXN3c190cmFwX2luaXRfcXVpcms7CisKKwkvKgorCSAqIEluc3RhbGwgcmVib290IHF1aXJrczoKKwkgKi8KKwlwbV9wb3dlcl9vZmYJCQk9IHZpc3dzX21hY2hpbmVfcG93ZXJfb2ZmOworCW1hY2hpbmVfb3BzLmVtZXJnZW5jeV9yZXN0YXJ0CT0gdmlzd3NfbWFjaGluZV9lbWVyZ2VuY3lfcmVzdGFydDsKKworCS8qCisJICogRG8gbm90IHVzZSBicm9hZGNhc3QgSVBJczoKKwkgKi8KKwlub19icm9hZGNhc3QgPSAwOworCisJLyoKKwkgKiBPdmVycmlkZSBnZW5lcmljIE1QLXRhYmxlIHBhcnNpbmc6CisJICovCisJbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyawk9IHZpc3dzX2dldF9zbXBfY29uZmlnX3F1aXJrOworCW1hY2hfZmluZF9zbXBfY29uZmlnX3F1aXJrCT0gdmlzd3NfZmluZF9zbXBfY29uZmlnX3F1aXJrOworCisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCisJLyoKKwkgKiBUdXJuIG9mZiBJTy1BUElDIGRldGVjdGlvbiBhbmQgaW5pdGlhbGl6YXRpb246CisJICovCisJc2tpcF9pb2FwaWNfc2V0dXAJCT0gMTsKKyNlbmRpZgorCisJLyoKKwkgKiBHZXQgQm9hcmQgcmV2LgorCSAqIEZpcnN0LCB3ZSBoYXZlIHRvIGluaXRpYWxpemUgdGhlIDMwNyBwYXJ0IHRvIGFsbG93IHVzIGFjY2VzcworCSAqIHRvIHRoZSBHUElPIHJlZ2lzdGVycy4gIExldCdzIG1hcCB0aGVtIGF0IDB4MGZjMCB3aGljaCBpcyByaWdodAorCSAqIGFmdGVyIHRoZSBQSUlYNCBQTSBzZWN0aW9uLgorCSAqLworCW91dGJfcChTSU9fREVWX1NFTCwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX0RFViwgU0lPX0RBVEEpOwkvKiBUYWxrIHRvIEdQSU8gcmVncy4gKi8KKworCW91dGJfcChTSU9fREVWX01TQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX0dQX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0VOQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyogRW5hYmxlIEdQSU8gcmVnaXN0ZXJzLiAqLworCisJLyoKKwkgKiBOb3csIHdlIGhhdmUgdG8gbWFwIHRoZSBwb3dlciBtYW5hZ2VtZW50IHNlY3Rpb24gdG8gd3JpdGUKKwkgKiBhIGJpdCB3aGljaCBlbmFibGVzIGFjY2VzcyB0byB0aGUgR1BJTyByZWdpc3RlcnMuCisJICogV2hhdCBsdW5hdGljIGNhbWUgdXAgd2l0aCB0aGlzIHNoaXQ/CisJICovCisJb3V0Yl9wKFNJT19ERVZfU0VMLCBTSU9fSU5ERVgpOworCW91dGJfcChTSU9fUE1fREVWLCBTSU9fREFUQSk7CS8qIFRhbGsgdG8gR1BJTyByZWdzLiAqLworCisJb3V0Yl9wKFNJT19ERVZfTVNCLCBTSU9fSU5ERVgpOworCW91dGJfcChTSU9fUE1fTVNCLCBTSU9fREFUQSk7CS8qIE1TQiBvZiBQTSBiYXNlIGFkZHJlc3MgKi8KKworCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgUE0gYmFzZSBhZGRyZXNzICovCisKKwlvdXRiX3AoU0lPX0RFVl9FTkIsIFNJT19JTkRFWCk7CisJb3V0Yl9wKDEsIFNJT19EQVRBKTsJCS8qIEVuYWJsZSBQTSByZWdpc3RlcnMuICovCisKKwkvKgorCSAqIE5vdywgd3JpdGUgdGhlIFBNIHJlZ2lzdGVyIHdoaWNoIGVuYWJsZXMgdGhlIEdQSU8gcmVnaXN0ZXJzLgorCSAqLworCW91dGJfcChTSU9fUE1fRkVSMiwgU0lPX1BNX0lOREVYKTsKKwlvdXRiX3AoU0lPX1BNX0dQX0VOLCBTSU9fUE1fREFUQSk7CisKKwkvKgorCSAqIE5vdywgaW5pdGlhbGl6ZSB0aGUgR1BJTyByZWdpc3RlcnMuCisJICogV2Ugd2FudCB0aGVtIGFsbCB0byBiZSBpbnB1dHMgd2hpY2ggaXMgdGhlCisJICogcG93ZXIgb24gZGVmYXVsdCwgc28gbGV0J3MgbGVhdmUgdGhlbSBhbG9uZS4KKwkgKiBTbywgbGV0J3MganVzdCByZWFkIHRoZSBib2FyZCByZXYhCisJICovCisJcmF3ID0gaW5iX3AoU0lPX0dQX0RBVEExKTsKKwlyYXcgJj0gMHg3ZjsJLyogNyBiaXRzIG9mIHZhbGlkIGJvYXJkIHJldmlzaW9uIElELiAqLworCisJaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwKSB7CisJCWlmIChyYXcgPCAweDYpIHsKKwkJCXZpc3dzX2JvYXJkX3JldiA9IDQ7CisJCX0gZWxzZSBpZiAocmF3IDwgMHhjKSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSA1OworCQl9IGVsc2UgeworCQkJdmlzd3NfYm9hcmRfcmV2ID0gNjsKKwkJfQorCX0gZWxzZSBpZiAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU181NDApIHsKKwkJCXZpc3dzX2JvYXJkX3JldiA9IDI7CisJCX0gZWxzZSB7CisJCQl2aXN3c19ib2FyZF9yZXYgPSByYXc7CisJCX0KKworCXByaW50ayhLRVJOX0lORk8gIlNpbGljb24gR3JhcGhpY3MgVmlzdWFsIFdvcmtzdGF0aW9uICVzIChyZXYgJWQpIGRldGVjdGVkXG4iLAorCSAgICAgICAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU18zMjAgPyAiMzIwIiA6CisJICAgICAgICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzU0MCA/ICI1NDAiIDoKKwkJInVua25vd24iKSksIHZpc3dzX2JvYXJkX3Jldik7Cit9CisKKyNkZWZpbmUgQTAxMjM0IChMSV9JTlRBXzAgfCBMSV9JTlRBXzEgfCBMSV9JTlRBXzIgfCBMSV9JTlRBXzMgfCBMSV9JTlRBXzQpCisjZGVmaW5lIEJDRCAoTElfSU5UQiB8IExJX0lOVEMgfCBMSV9JTlREKQorI2RlZmluZSBBTExERVZTIChBMDEyMzQgfCBCQ0QpCisKK3N0YXRpYyBfX2luaXQgdm9pZCBsaXRoaXVtX2luaXQodm9pZCkKK3sKKwlzZXRfZml4bWFwKEZJWF9MSV9QQ0lBLCBMSV9QQ0lfQV9QSFlTKTsKKwlzZXRfZml4bWFwKEZJWF9MSV9QQ0lCLCBMSV9QQ0lfQl9QSFlTKTsKKworCWlmICgobGlfcGNpYV9yZWFkMTYoUENJX1ZFTkRPUl9JRCkgIT0gUENJX1ZFTkRPUl9JRF9TR0kpIHx8CisJICAgIChsaV9wY2lhX3JlYWQxNihQQ0lfREVWSUNFX0lEKSAhPSBQQ0lfREVWSUNFX0lEX1NHSV9MSVRISVVNKSkgeworCQlwcmludGsoS0VSTl9FTUVSRyAiTGl0aGl1bSBob3N0YnJpZGdlICVjIG5vdCBmb3VuZFxuIiwgJ0EnKTsKKy8qCQlwYW5pYygiVGhpcyBtYWNoaW5lIGlzIG5vdCBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIDMyMC81NDAiKTsgKi8KKwl9CisKKwlpZiAoKGxpX3BjaWJfcmVhZDE2KFBDSV9WRU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfU0dJKSB8fAorCSAgICAobGlfcGNpYl9yZWFkMTYoUENJX0RFVklDRV9JRCkgIT0gUENJX0RFVklDRV9JRF9TR0lfTElUSElVTSkpIHsKKwkJcHJpbnRrKEtFUk5fRU1FUkcgIkxpdGhpdW0gaG9zdGJyaWRnZSAlYyBub3QgZm91bmRcbiIsICdCJyk7CisvKgkJcGFuaWMoIlRoaXMgbWFjaGluZSBpcyBub3QgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiAzMjAvNTQwIik7ICovCisJfQorCisJbGlfcGNpYV93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7CisJbGlfcGNpYl93cml0ZTE2KExJX1BDSV9JTlRFTiwgQUxMREVWUyk7Cit9CisKK3N0YXRpYyBfX2luaXQgdm9pZCBjb2JhbHRfaW5pdCh2b2lkKQoreworCS8qCisJICogT24gbm9ybWFsIFNNUCBQQyB0aGlzIGlzIHVzZWQgb25seSB3aXRoIFNNUCwgYnV0IHdlIGhhdmUgdG8KKwkgKiB1c2UgaXQgYW5kIHNldCBpdCB1cCBoZXJlIHRvIHN0YXJ0IHRoZSBDb2JhbHQgY2xvY2sKKwkgKi8KKwlzZXRfZml4bWFwKEZJWF9BUElDX0JBU0UsIEFQSUNfREVGQVVMVF9QSFlTX0JBU0UpOworCXNldHVwX2xvY2FsX0FQSUMoKTsKKwlwcmludGsoS0VSTl9JTkZPICJMb2NhbCBBUElDIFZlcnNpb24gJSN4LCBJRCAlI3hcbiIsCisJCSh1bnNpZ25lZCBpbnQpYXBpY19yZWFkKEFQSUNfTFZSKSwKKwkJKHVuc2lnbmVkIGludClhcGljX3JlYWQoQVBJQ19JRCkpOworCisJc2V0X2ZpeG1hcChGSVhfQ09fQ1BVLCBDT19DUFVfUEhZUyk7CisJc2V0X2ZpeG1hcChGSVhfQ09fQVBJQywgQ09fQVBJQ19QSFlTKTsKKwlwcmludGsoS0VSTl9JTkZPICJDb2JhbHQgUmV2aXNpb24gJSNseCwgQVBJQyBJRCAlI2x4XG4iLAorCQljb19jcHVfcmVhZChDT19DUFVfUkVWKSwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpKTsKKworCS8qIEVuYWJsZSBDb2JhbHQgQVBJQyBiZWluZyBjYXJlZnVsIHRvIE5PVCBjaGFuZ2UgdGhlIElEISAqLworCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19JRCwgY29fYXBpY19yZWFkKENPX0FQSUNfSUQpIHwgQ09fQVBJQ19FTkFCTEUpOworCisJcHJpbnRrKEtFUk5fSU5GTyAiQ29iYWx0IEFQSUMgZW5hYmxlZDogSUQgcmVnICUjbHhcbiIsCisJCWNvX2FwaWNfcmVhZChDT19BUElDX0lEKSk7Cit9CisKK2ludCBfX2luaXQgdmlzd3NfdHJhcF9pbml0X3F1aXJrKHZvaWQpCit7CisJbGl0aGl1bV9pbml0KCk7CisJY29iYWx0X2luaXQoKTsKKworCXJldHVybiAxOworfQorCisvKgorICogSVJRIGNvbnRyb2xsZXIgLyBBUElDIHN1cHBvcnQ6CisgKi8KKworc3RhdGljIERFRklORV9TUElOTE9DSyhjb2JhbHRfbG9jayk7CisKKy8qCisgKiBTZXQgdGhlIGdpdmVuIENvYmFsdCBBUElDIFJlZGlyZWN0aW9uIFRhYmxlIGVudHJ5IHRvIHBvaW50CisgKiB0byB0aGUgZ2l2ZW4gSURUIHZlY3Rvci9pbmRleC4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGNvX2FwaWNfc2V0KGludCBlbnRyeSwgaW50IGlycSkKK3sKKwljb19hcGljX3dyaXRlKENPX0FQSUNfTE8oZW50cnkpLCBDT19BUElDX0xFVkVMIHwgKGlycSArIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUikpOworCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19ISShlbnRyeSksIDApOworfQorCisvKgorICogQ29iYWx0IChJTyktQVBJQyBmdW5jdGlvbnMgdG8gaGFuZGxlIFBDSSBkZXZpY2VzLgorICovCitzdGF0aWMgaW5saW5lIGludCBjb19hcGljX2lkZTBfaGFjayh2b2lkKQoreworCWV4dGVybiBjaGFyIHZpc3dzX2JvYXJkX3R5cGU7CisJZXh0ZXJuIGNoYXIgdmlzd3NfYm9hcmRfcmV2OworCisJaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwICYmIHZpc3dzX2JvYXJkX3JldiA9PSA1KQorCQlyZXR1cm4gNTsKKwlyZXR1cm4gQ09fQVBJQ19JREUwOworfQorCitzdGF0aWMgaW50IGlzX2NvX2FwaWModW5zaWduZWQgaW50IGlycSkKK3sKKwlpZiAoSVNfQ09fQVBJQyhpcnEpKQorCQlyZXR1cm4gQ09fQVBJQyhpcnEpOworCisJc3dpdGNoIChpcnEpIHsKKwkJY2FzZSAwOiByZXR1cm4gQ09fQVBJQ19DUFU7CisJCWNhc2UgQ09fSVJRX0lERTA6IHJldHVybiBjb19hcGljX2lkZTBfaGFjaygpOworCQljYXNlIENPX0lSUV9JREUxOiByZXR1cm4gQ09fQVBJQ19JREUxOworCQlkZWZhdWx0OiByZXR1cm4gLTE7CisJfQorfQorCisKKy8qCisgKiBUaGlzIGlzIHRoZSBTR0kgQ29iYWx0IChJTy0pQVBJQzoKKyAqLworCitzdGF0aWMgdm9pZCBlbmFibGVfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCWNvX2FwaWNfc2V0KGlzX2NvX2FwaWMoaXJxKSwgaXJxKTsKK30KKworc3RhdGljIHZvaWQgZGlzYWJsZV9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJaW50IGVudHJ5ID0gaXNfY29fYXBpYyhpcnEpOworCisJY29fYXBpY193cml0ZShDT19BUElDX0xPKGVudHJ5KSwgQ09fQVBJQ19NQVNLKTsKKwljb19hcGljX3JlYWQoQ09fQVBJQ19MTyhlbnRyeSkpOworfQorCisvKgorICogImlycSIgcmVhbGx5IGp1c3Qgc2VydmVzIHRvIGlkZW50aWZ5IHRoZSBkZXZpY2UuICBIZXJlIGlzIHdoZXJlIHdlCisgKiBtYXAgdGhpcyB0byB0aGUgQ29iYWx0IEFQSUMgZW50cnkgd2hlcmUgaXQncyBwaHlzaWNhbGx5IHdpcmVkLgorICogVGhpcyBpcyBjYWxsZWQgdmlhIHJlcXVlc3RfaXJxIC0+IHNldHVwX2lycSAtPiBpcnFfZGVzYy0+c3RhcnR1cCgpCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnR1cF9jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworCWlmICgoaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJiAoSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MgfCBJUlFfV0FJVElORykpKQorCQlpcnFfZGVzY1tpcnFdLnN0YXR1cyAmPSB+KElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTIHwgSVJRX1dBSVRJTkcpOworCWVuYWJsZV9jb2JhbHRfaXJxKGlycSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgYWNrX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7CisJZGlzYWJsZV9jb2JhbHRfaXJxKGlycSk7CisJYXBpY193cml0ZShBUElDX0VPSSwgQVBJQ19FSU9fQUNLKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBlbmRfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwlpZiAoIShpcnFfZGVzY1tpcnFdLnN0YXR1cyAmIChJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUykpKQorCQllbmFibGVfY29iYWx0X2lycShpcnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgY29iYWx0X2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJDb2JhbHQtQVBJQyIsCisJLnN0YXJ0dXAgPQlzdGFydHVwX2NvYmFsdF9pcnEsCisJLnNodXRkb3duID0JZGlzYWJsZV9jb2JhbHRfaXJxLAorCS5lbmFibGUgPQllbmFibGVfY29iYWx0X2lycSwKKwkuZGlzYWJsZSA9CWRpc2FibGVfY29iYWx0X2lycSwKKwkuYWNrID0JCWFja19jb2JhbHRfaXJxLAorCS5lbmQgPQkJZW5kX2NvYmFsdF9pcnEsCit9OworCisKKy8qCisgKiBUaGlzIGlzIHRoZSBQSUlYNC1iYXNlZCA4MjU5IHRoYXQgaXMgd2lyZWQgdXAgaW5kaXJlY3RseSB0byBDb2JhbHQKKyAqIC0tIG5vdCB0aGUgbWFubmVyIGV4cGVjdGVkIGJ5IHRoZSBjb2RlIGluIGk4MjU5LmMuCisgKgorICogdGhlcmUgaXMgYSAnbWFzdGVyJyBwaHlzaWNhbCBpbnRlcnJ1cHQgc291cmNlIHRoYXQgZ2V0cyBzZW50IHRvCisgKiB0aGUgQ1BVLiBCdXQgaW4gdGhlIGNoaXBzZXQgdGhlcmUgYXJlIHZhcmlvdXMgJ3ZpcnR1YWwnIGludGVycnVwdHMKKyAqIHdhaXRpbmcgdG8gYmUgaGFuZGxlZC4gV2UgcmVwcmVzZW50IHRoaXMgdG8gTGludXggdGhyb3VnaCBhICdtYXN0ZXInCisgKiBpbnRlcnJ1cHQgY29udHJvbGxlciB0eXBlLCBhbmQgdGhyb3VnaCBhIHNwZWNpYWwgdmlydHVhbCBpbnRlcnJ1cHQtCisgKiBjb250cm9sbGVyLiBEZXZpY2UgZHJpdmVycyBvbmx5IHNlZSB0aGUgdmlydHVhbCBpbnRlcnJ1cHQgc291cmNlcy4KKyAqLworc3RhdGljIHVuc2lnbmVkIGludCBzdGFydHVwX3BpaXg0X21hc3Rlcl9pcnEodW5zaWduZWQgaW50IGlycSkKK3sKKwlpbml0XzgyNTlBKDApOworCisJcmV0dXJuIHN0YXJ0dXBfY29iYWx0X2lycShpcnEpOworfQorCitzdGF0aWMgdm9pZCBlbmRfcGlpeDRfbWFzdGVyX2lycSh1bnNpZ25lZCBpbnQgaXJxKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKKwllbmFibGVfY29iYWx0X2lycShpcnEpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcGlpeDRfbWFzdGVyX2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJQSUlYNC1tYXN0ZXIiLAorCS5zdGFydHVwID0Jc3RhcnR1cF9waWl4NF9tYXN0ZXJfaXJxLAorCS5hY2sgPQkJYWNrX2NvYmFsdF9pcnEsCisJLmVuZCA9CQllbmRfcGlpeDRfbWFzdGVyX2lycSwKK307CisKKworc3RhdGljIHN0cnVjdCBpcnFfY2hpcCBwaWl4NF92aXJ0dWFsX2lycV90eXBlID0geworCS50eXBlbmFtZSA9CSJQSUlYNC12aXJ0dWFsIiwKKwkuc2h1dGRvd24gPQlkaXNhYmxlXzgyNTlBX2lycSwKKwkuZW5hYmxlID0JZW5hYmxlXzgyNTlBX2lycSwKKwkuZGlzYWJsZSA9CWRpc2FibGVfODI1OUFfaXJxLAorfTsKKworCisvKgorICogUElJWDQtODI1OSBtYXN0ZXIvdmlydHVhbCBmdW5jdGlvbnMgdG8gaGFuZGxlIGludGVycnVwdCByZXF1ZXN0cworICogZnJvbSBsZWdhY3kgZGV2aWNlczogZmxvcHB5LCBwYXJhbGxlbCwgc2VyaWFsLCBydGMuCisgKgorICogTm9uZSBvZiB0aGVzZSBnZXQgQ29iYWx0IEFQSUMgZW50cmllcywgbmVpdGhlciBkbyB0aGV5IGhhdmUgSURUCisgKiBlbnRyaWVzLiBUaGVzZSBpbnRlcnJ1cHRzIGFyZSBwdXJlbHkgdmlydHVhbCBhbmQgZGlzdHJpYnV0ZWQgZnJvbQorICogdGhlICdtYXN0ZXInIGludGVycnVwdCBzb3VyY2U6IENPX0lSUV84MjU5LgorICoKKyAqIFdoZW4gdGhlIDgyNTkgaW50ZXJydXB0cyBpdHMgaGFuZGxlciBmaWd1cmVzIG91dCB3aGljaCBvZiB0aGVzZQorICogZGV2aWNlcyBpcyBpbnRlcnJ1cHRpbmcgYW5kIGRpc3BhdGNoZXMgdG8gaXRzIGhhbmRsZXIuCisgKgorICogQ0FSRUZVTDogZGV2aWNlcyBzZWUgdGhlICd2aXJ0dWFsJyBpbnRlcnJ1cHQgb25seS4gVGh1cyBkaXNhYmxlLworICogZW5hYmxlX2lycSBnZXRzIHRoZSByaWdodCBpcnEuIFRoaXMgJ21hc3RlcicgaXJxIGlzIG5ldmVyIGRpcmVjdGx5CisgKiBtYW5pcHVsYXRlZCBieSBhbnkgZHJpdmVyLgorICovCitzdGF0aWMgaXJxcmV0dXJuX3QgcGlpeDRfbWFzdGVyX2ludHIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCWludCByZWFsaXJxOworCWlycV9kZXNjX3QgKmRlc2M7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJLyogRmluZCBvdXQgd2hhdCdzIGludGVycnVwdGluZyBpbiB0aGUgUElJWDQgbWFzdGVyIDgyNTkgKi8KKwlvdXRiKDB4MGMsIDB4MjApOwkJLyogT0NXMyBQb2xsIGNvbW1hbmQgKi8KKwlyZWFsaXJxID0gaW5iKDB4MjApOworCisJLyoKKwkgKiBCaXQgNyA9PSAwIG1lYW5zIGludmFsaWQvc3B1cmlvdXMKKwkgKi8KKwlpZiAodW5saWtlbHkoIShyZWFsaXJxICYgMHg4MCkpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlyZWFsaXJxICY9IDc7CisKKwlpZiAodW5saWtlbHkocmVhbGlycSA9PSAyKSkgeworCQlvdXRiKDB4MGMsIDB4YTApOworCQlyZWFsaXJxID0gaW5iKDB4YTApOworCisJCWlmICh1bmxpa2VseSghKHJlYWxpcnEgJiAweDgwKSkpCisJCQlnb3RvIG91dF91bmxvY2s7CisKKwkJcmVhbGlycSA9IChyZWFsaXJxICYgNykgKyA4OworCX0KKworCS8qIG1hc2sgYW5kIGFjayBpbnRlcnJ1cHQgKi8KKwljYWNoZWRfaXJxX21hc2sgfD0gMSA8PCByZWFsaXJxOworCWlmICh1bmxpa2VseShyZWFsaXJxID4gNykpIHsKKwkJaW5iKDB4YTEpOworCQlvdXRiKGNhY2hlZF9zbGF2ZV9tYXNrLCAweGExKTsKKwkJb3V0YigweDYwICsgKHJlYWxpcnEgJiA3KSwgMHhhMCk7CisJCW91dGIoMHg2MCArIDIsIDB4MjApOworCX0gZWxzZSB7CisJCWluYigweDIxKTsKKwkJb3V0YihjYWNoZWRfbWFzdGVyX21hc2ssIDB4MjEpOworCQlvdXRiKDB4NjAgKyByZWFsaXJxLCAweDIwKTsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOworCisJZGVzYyA9IGlycV9kZXNjICsgcmVhbGlycTsKKworCS8qCisJICogaGFuZGxlIHRoaXMgJ3ZpcnR1YWwgaW50ZXJydXB0JyBhcyBhIENvYmFsdCBvbmUgbm93LgorCSAqLworCWtzdGF0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCkpLmlycXNbcmVhbGlycV0rKzsKKworCWlmIChsaWtlbHkoZGVzYy0+YWN0aW9uICE9IE5VTEwpKQorCQloYW5kbGVfSVJRX2V2ZW50KHJlYWxpcnEsIGRlc2MtPmFjdGlvbik7CisKKwlpZiAoIShkZXNjLT5zdGF0dXMgJiBJUlFfRElTQUJMRUQpKQorCQllbmFibGVfODI1OUFfaXJxKHJlYWxpcnEpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworCitvdXRfdW5sb2NrOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmk4MjU5QV9sb2NrLCBmbGFncyk7CisJcmV0dXJuIElSUV9OT05FOworfQorCitzdGF0aWMgc3RydWN0IGlycWFjdGlvbiBtYXN0ZXJfYWN0aW9uID0geworCS5oYW5kbGVyID0JcGlpeDRfbWFzdGVyX2ludHIsCisJLm5hbWUgPQkJIlBJSVg0LTgyNTkiLAorfTsKKworc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gY2FzY2FkZV9hY3Rpb24gPSB7CisJLmhhbmRsZXIgPSAJbm9fYWN0aW9uLAorCS5uYW1lID0JCSJjYXNjYWRlIiwKK307CisKKwordm9pZCBpbml0X1ZJU1dTX0FQSUNfaXJxcyh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IENPX0lSUV9BUElDMCArIENPX0FQSUNfTEFTVCArIDE7IGkrKykgeworCQlpcnFfZGVzY1tpXS5zdGF0dXMgPSBJUlFfRElTQUJMRUQ7CisJCWlycV9kZXNjW2ldLmFjdGlvbiA9IDA7CisJCWlycV9kZXNjW2ldLmRlcHRoID0gMTsKKworCQlpZiAoaSA9PSAwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV9JREUwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV9JREUxKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJmNvYmFsdF9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpID09IENPX0lSUV84MjU5KSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X21hc3Rlcl9pcnFfdHlwZTsKKwkJfQorCQllbHNlIGlmIChpIDwgQ09fSVJRX0FQSUMwKSB7CisJCQlpcnFfZGVzY1tpXS5jaGlwID0gJnBpaXg0X3ZpcnR1YWxfaXJxX3R5cGU7CisJCX0KKwkJZWxzZSBpZiAoSVNfQ09fQVBJQyhpKSkgeworCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7CisJCX0KKwl9CisKKwlzZXR1cF9pcnEoQ09fSVJRXzgyNTksICZtYXN0ZXJfYWN0aW9uKTsKKwlzZXR1cF9pcnEoMiwgJmNhc2NhZGVfYWN0aW9uKTsKK30KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92bWlfMzIuYyBiL2FyY2gveDg2L2tlcm5lbC92bWlfMzIuYwppbmRleCA5NTZmMzg5Li5iMTUzNDYwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdm1pXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3ZtaV8zMi5jCkBAIC0xNTEsNyArMTUxLDcgQEAKIAkJCQkJICAgICAgaW5zbnMsIGlwKTsKIAkJY2FzZSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlyZXQpOgogCQkJcmV0dXJuIHBhdGNoX2ludGVybmFsKFZNSV9DQUxMX0lSRVQsIGxlbiwgaW5zbnMsIGlwKTsKLQkJY2FzZSBQQVJBVklSVF9QQVRDSChwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzY2FsbF9yZXQpOgorCQljYXNlIFBBUkFWSVJUX1BBVENIKHB2X2NwdV9vcHMuaXJxX2VuYWJsZV9zeXNleGl0KToKIAkJCXJldHVybiBwYXRjaF9pbnRlcm5hbChWTUlfQ0FMTF9TWVNFWElULCBsZW4sIGluc25zLCBpcCk7CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKQEAgLTg5Niw3ICs4OTYsNyBAQAogCSAqIHRoZSBiYWNrZW5kLiAgVGhleSBhcmUgcGVyZm9ybWFuY2UgY3JpdGljYWwgYW55d2F5LCBzbyByZXF1aXJpbmcKIAkgKiBhIHBhdGNoIGlzIG5vdCBhIGJpZyBwcm9ibGVtLgogCSAqLwotCXB2X2NwdV9vcHMuaXJxX2VuYWJsZV9zeXNjYWxsX3JldCA9ICh2b2lkICopMHhmZWVkYmFiMDsKKwlwdl9jcHVfb3BzLmlycV9lbmFibGVfc3lzZXhpdCA9ICh2b2lkICopMHhmZWVkYmFiMDsKIAlwdl9jcHVfb3BzLmlyZXQgPSAodm9pZCAqKTB4YmFkYmFiMDsKIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTkzMiw3ICs5MzIsNyBAQAogCQlwdl9hcGljX29wcy5zZXR1cF9zZWNvbmRhcnlfY2xvY2sgPSB2bWlfdGltZV9hcF9pbml0OwogI2VuZGlmCiAJCXB2X3RpbWVfb3BzLnNjaGVkX2Nsb2NrID0gdm1pX3NjaGVkX2Nsb2NrOwotIAkJcHZfdGltZV9vcHMuZ2V0X2NwdV9raHogPSB2bWlfY3B1X2toejsKKwkJcHZfdGltZV9vcHMuZ2V0X3RzY19raHogPSB2bWlfdHNjX2toejsKIAogCQkvKiBXZSBoYXZlIHRydWUgd2FsbGNsb2NrIGZ1bmN0aW9uczsgZGlzYWJsZSBDTU9TIGNsb2NrIHN5bmMgKi8KIAkJbm9fc3luY19jbW9zX2Nsb2NrID0gMTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC92bWljbG9ja18zMi5jIGIvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKaW5kZXggYTJiMDMwNy4uNjk1Mzg1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3ZtaWNsb2NrXzMyLmMKQEAgLTMzLDggKzMzLDcgQEAKICNpbmNsdWRlIDxhc20vYXBpYy5oPgogI2luY2x1ZGUgPGFzbS90aW1lci5oPgogI2luY2x1ZGUgPGFzbS9pODI1My5oPgotCi0jaW5jbHVkZSA8aXJxX3ZlY3RvcnMuaD4KKyNpbmNsdWRlIDxhc20vaXJxX3ZlY3RvcnMuaD4KIAogI2RlZmluZSBWTUlfT05FU0hPVCAgKFZNSV9BTEFSTV9JU19PTkVTSE9UICB8IFZNSV9DWUNMRVNfUkVBTCB8IHZtaV9nZXRfYWxhcm1fd2lyaW5nKCkpCiAjZGVmaW5lIFZNSV9QRVJJT0RJQyAoVk1JX0FMQVJNX0lTX1BFUklPRElDIHwgVk1JX0NZQ0xFU19SRUFMIHwgdm1pX2dldF9hbGFybV93aXJpbmcoKSkKQEAgLTcwLDggKzY5LDggQEAKIAlyZXR1cm4gY3ljbGVzXzJfbnModm1pX3RpbWVyX29wcy5nZXRfY3ljbGVfY291bnRlcihWTUlfQ1lDTEVTX0FWQUlMQUJMRSkpOwogfQogCi0vKiBwYXJhdmlydF9vcHMuZ2V0X2NwdV9raHogPSB2bWlfY3B1X2toeiAqLwotdW5zaWduZWQgbG9uZyB2bWlfY3B1X2toeih2b2lkKQorLyogcGFyYXZpcnRfb3BzLmdldF90c2Nfa2h6ID0gdm1pX3RzY19raHogKi8KK3Vuc2lnbmVkIGxvbmcgdm1pX3RzY19raHoodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGxvbmcga2h6OwogCWtoeiA9IHZtaV90aW1lcl9vcHMuZ2V0X2N5Y2xlX2ZyZXF1ZW5jeSgpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZtbGludXhfMzIubGRzLlMgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwppbmRleCBjZTVlZDA4Li5jZGIyMzYzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF8zMi5sZHMuUwpAQCAtNDksMjMgKzQ5LDE0IEBACiAgIAlfZXRleHQgPSAuOwkJCS8qIEVuZCBvZiB0ZXh0IHNlY3Rpb24gKi8KICAgfSA6dGV4dCA9IDB4OTA5MAogCisgIE5PVEVTIDp0ZXh0IDpub3RlCisKICAgLiA9IEFMSUdOKDE2KTsJCS8qIEV4Y2VwdGlvbiB0YWJsZSAqLwogICBfX2V4X3RhYmxlIDogQVQoQUREUihfX2V4X3RhYmxlKSAtIExPQURfT0ZGU0VUKSB7CiAgIAlfX3N0YXJ0X19fZXhfdGFibGUgPSAuOwogCSAqKF9fZXhfdGFibGUpCiAgIAlfX3N0b3BfX19leF90YWJsZSA9IC47Ci0gIH0KLQotICBOT1RFUyA6dGV4dCA6bm90ZQotCi0gIEJVR19UQUJMRSA6dGV4dAotCi0gIC4gPSBBTElHTig0KTsKLSAgLnRyYWNlZGF0YSA6IEFUKEFERFIoLnRyYWNlZGF0YSkgLSBMT0FEX09GRlNFVCkgewotICAJX190cmFjZWRhdGFfc3RhcnQgPSAuOwotCSooLnRyYWNlZGF0YSkKLSAgCV9fdHJhY2VkYXRhX2VuZCA9IC47Ci0gIH0KKyAgfSA6dGV4dCA9IDB4OTA5MAogCiAgIFJPREFUQQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdm1saW51eF82NC5sZHMuUyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCmluZGV4IGZhZDM2NzQuLjYzZTVjMWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCisrKyBiL2FyY2gveDg2L2tlcm5lbC92bWxpbnV4XzY0Lmxkcy5TCkBAIC0xOSw3ICsxOSw3IEBACiAJZGF0YSBQVF9MT0FEIEZMQUdTKDcpOwkvKiBSV0UgKi8KIAl1c2VyIFBUX0xPQUQgRkxBR1MoNyk7CS8qIFJXRSAqLwogCWRhdGEuaW5pdCBQVF9MT0FEIEZMQUdTKDcpOwkvKiBSV0UgKi8KLQlub3RlIFBUX05PVEUgRkxBR1MoNCk7CS8qIFJfXyAqLworCW5vdGUgUFRfTk9URSBGTEFHUygwKTsJLyogX19fICovCiB9CiBTRUNUSU9OUwogewpAQCAtNDAsMjYgKzQwLDE3IEBACiAJX2V0ZXh0ID0gLjsJCS8qIEVuZCBvZiB0ZXh0IHNlY3Rpb24gKi8KICAgfSA6dGV4dCA9IDB4OTA5MAogCisgIE5PVEVTIDp0ZXh0IDpub3RlCisKICAgLiA9IEFMSUdOKDE2KTsJCS8qIEV4Y2VwdGlvbiB0YWJsZSAqLwogICBfX2V4X3RhYmxlIDogQVQoQUREUihfX2V4X3RhYmxlKSAtIExPQURfT0ZGU0VUKSB7CiAgIAlfX3N0YXJ0X19fZXhfdGFibGUgPSAuOwogCSAqKF9fZXhfdGFibGUpCiAgIAlfX3N0b3BfX19leF90YWJsZSA9IC47Ci0gIH0KLQotICBOT1RFUyA6dGV4dCA6bm90ZQotCi0gIEJVR19UQUJMRSA6dGV4dAorICB9IDp0ZXh0ID0gMHg5MDkwCiAKICAgUk9EQVRBCiAKLSAgLiA9IEFMSUdOKDQpOwotICAudHJhY2VkYXRhIDogQVQoQUREUigudHJhY2VkYXRhKSAtIExPQURfT0ZGU0VUKSB7Ci0gIAlfX3RyYWNlZGF0YV9zdGFydCA9IC47Ci0JKigudHJhY2VkYXRhKQotICAJX190cmFjZWRhdGFfZW5kID0gLjsKLSAgfQotCiAgIC4gPSBBTElHTihQQUdFX1NJWkUpOwkJLyogQWxpZ24gZGF0YSBzZWdtZW50IHRvIHBhZ2Ugc2l6ZSBib3VuZGFyeSAqLwogCQkJCS8qIERhdGEgKi8KICAgLmRhdGEgOiBBVChBRERSKC5kYXRhKSAtIExPQURfT0ZGU0VUKSB7CkBAIC0xNzcsNiArMTY4LDcgQEAKIAkqKC5jb25faW5pdGNhbGwuaW5pdCkKICAgfQogICBfX2Nvbl9pbml0Y2FsbF9lbmQgPSAuOworICAuID0gQUxJR04oMTYpOwogICBfX3g4NmNwdXZlbmRvcl9zdGFydCA9IC47CiAgIC54ODZjcHV2ZW5kb3IuaW5pdCA6IEFUKEFERFIoLng4NmNwdXZlbmRvci5pbml0KSAtIExPQURfT0ZGU0VUKSB7CiAJKigueDg2Y3B1dmVuZG9yLmluaXQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jIGIvYXJjaC94ODYva2VybmVsL3ZzbXBfNjQuYwppbmRleCBiYThjMGI3Li4wYzAyOWU4IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdnNtcF82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC92c21wXzY0LmMKQEAgLTE1LDkgKzE1LDEyIEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BjaV9pZHMuaD4KICNpbmNsdWRlIDxsaW51eC9wY2lfcmVncy5oPgorCisjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9wYXJhdmlydC5oPgorI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCiAjaWYgZGVmaW5lZCBDT05GSUdfUENJICYmIGRlZmluZWQgQ09ORklHX1BBUkFWSVJUCiAvKgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3ZzeXNjYWxsXzY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYwppbmRleCA2MWVmYTJmLi5lNTA3NDBkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvdnN5c2NhbGxfNjQuYwpAQCAtNDIsNyArNDIsOCBAQAogI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgogI2luY2x1ZGUgPGFzbS92Z3RvZC5oPgogCi0jZGVmaW5lIF9fdnN5c2NhbGwobnIpIF9fYXR0cmlidXRlX18gKCh1bnVzZWQsX19zZWN0aW9uX18oIi52c3lzY2FsbF8iICNucikpKQorI2RlZmluZSBfX3ZzeXNjYWxsKG5yKSBcCisJCV9fYXR0cmlidXRlX18gKCh1bnVzZWQsIF9fc2VjdGlvbl9fKCIudnN5c2NhbGxfIiAjbnIpKSkgbm90cmFjZQogI2RlZmluZSBfX3N5c2NhbGxfY2xvYmJlciAicjExIiwiY3giLCJtZW1vcnkiCiAKIC8qCkBAIC0yNDksNyArMjUwLDcgQEAKICAgIGRvZXNuJ3QgdmlvbGF0ZSB0aGF0LiBXZSdsbCBmaW5kIG91dCBpZiBpdCBkb2VzLiAqLwogc3RhdGljIHZvaWQgX19jcHVpbml0IHZzeXNjYWxsX3NldF9jcHUoaW50IGNwdSkKIHsKLQl1bnNpZ25lZCBsb25nICpkOworCXVuc2lnbmVkIGxvbmcgZDsKIAl1bnNpZ25lZCBsb25nIG5vZGUgPSAwOwogI2lmZGVmIENPTkZJR19OVU1BCiAJbm9kZSA9IGNwdV90b19ub2RlKGNwdSk7CkBAIC0yNjAsMTEgKzI2MSwxMSBAQAogCS8qIFN0b3JlIGNwdSBudW1iZXIgaW4gbGltaXQgc28gdGhhdCBpdCBjYW4gYmUgbG9hZGVkIHF1aWNrbHkKIAkgICBpbiB1c2VyIHNwYWNlIGluIHZnZXRjcHUuCiAJICAgMTIgYml0cyBmb3IgdGhlIENQVSBhbmQgOCBiaXRzIGZvciB0aGUgbm9kZS4gKi8KLQlkID0gKHVuc2lnbmVkIGxvbmcgKikoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSArIEdEVF9FTlRSWV9QRVJfQ1BVKTsKLQkqZCA9IDB4MGY0MDAwMDAwMDAwMFVMTDsKLQkqZCB8PSBjcHU7Ci0JKmQgfD0gKG5vZGUgJiAweGYpIDw8IDEyOwotCSpkIHw9IChub2RlID4+IDQpIDw8IDQ4OworCWQgPSAweDBmNDAwMDAwMDAwMDBVTEw7CisJZCB8PSBjcHU7CisJZCB8PSAobm9kZSAmIDB4ZikgPDwgMTI7CisJZCB8PSAobm9kZSA+PiA0KSA8PCA0ODsKKwl3cml0ZV9nZHRfZW50cnkoZ2V0X2NwdV9nZHRfdGFibGUoY3B1KSwgR0RUX0VOVFJZX1BFUl9DUFUsICZkLCBERVNDVFlQRV9TKTsKIH0KIAogc3RhdGljIHZvaWQgX19jcHVpbml0IGNwdV92c3lzY2FsbF9pbml0KHZvaWQgKmFyZykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC94ODY2NF9rc3ltc182NC5jIGIvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKaW5kZXggZjZjMDVkMC4uYjU0NWYzNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKKysrIGIvYXJjaC94ODYva2VybmVsL3g4NjY0X2tzeW1zXzY0LmMKQEAgLTIsMTMgKzIsMjAgQEAKICAgIEFsbCBDIGV4cG9ydHMgc2hvdWxkIGdvIGluIHRoZSByZXNwZWN0aXZlIEMgZmlsZXMuICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxuZXQvY2hlY2tzdW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KIAorI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPgorCiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2Z0cmFjZS5oPgorCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyogbWNvdW50IGlzIGRlZmluZWQgaW4gYXNzZW1ibHkgKi8KK0VYUE9SVF9TWU1CT0wobWNvdW50KTsKKyNlbmRpZgogCiBFWFBPUlRfU1lNQk9MKGtlcm5lbF90aHJlYWQpOwogCkBAIC01Myw4ICs2MCwzIEBACiBFWFBPUlRfU1lNQk9MKGxvYWRfZ3NfaW5kZXgpOwogCiBFWFBPUlRfU1lNQk9MKF9wcm94eV9wZGEpOwotCi0jaWZkZWYgQ09ORklHX1BBUkFWSVJUCi0vKiBWaXJ0dWFsaXplZCBndWVzdHMgbWF5IHdhbnQgdG8gdXNlIGl0ICovCi1FWFBPUlRfU1lNQk9MX0dQTChjcHVfZ2R0X2Rlc2NyKTsKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL2k4MjU0LmMgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwppbmRleCA3YzA3N2E5Li4zODI5YWE3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vaTgyNTQuYworKysgYi9hcmNoL3g4Ni9rdm0vaTgyNTQuYwpAQCAtMjAwLDEwICsyMDAsMTIgQEAKIAogCWF0b21pY19pbmMoJnB0LT5wZW5kaW5nKTsKIAlzbXBfbWJfX2FmdGVyX2F0b21pY19pbmMoKTsKLQkvKiBGSVhNRTogaGFuZGxlIGNhc2Ugd2hlcmUgdGhlIGd1ZXN0IGlzIGluIGd1ZXN0IG1vZGUgKi8KLQlpZiAodmNwdTAgJiYgd2FpdHF1ZXVlX2FjdGl2ZSgmdmNwdTAtPndxKSkgewotCQl2Y3B1MC0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKLQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZ2Y3B1MC0+d3EpOworCWlmICh2Y3B1MCkgeworCQlzZXRfYml0KEtWTV9SRVFfUEVORElOR19USU1FUiwgJnZjcHUwLT5yZXF1ZXN0cyk7CisJCWlmICh3YWl0cXVldWVfYWN0aXZlKCZ2Y3B1MC0+d3EpKSB7CisJCQl2Y3B1MC0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKKwkJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmdmNwdTAtPndxKTsKKwkJfQogCX0KIAogCXB0LT50aW1lci5leHBpcmVzID0ga3RpbWVfYWRkX25zKHB0LT50aW1lci5leHBpcmVzLCBwdC0+cGVyaW9kKTsKQEAgLTIzNyw2ICsyMzksMTkgQEAKIAkJcmV0dXJuIEhSVElNRVJfTk9SRVNUQVJUOwogfQogCit2b2lkIF9fa3ZtX21pZ3JhdGVfcGl0X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlzdHJ1Y3Qga3ZtX3BpdCAqcGl0ID0gdmNwdS0+a3ZtLT5hcmNoLnZwaXQ7CisJc3RydWN0IGhydGltZXIgKnRpbWVyOworCisJaWYgKHZjcHUtPnZjcHVfaWQgIT0gMCB8fCAhcGl0KQorCQlyZXR1cm47CisKKwl0aW1lciA9ICZwaXQtPnBpdF9zdGF0ZS5waXRfdGltZXIudGltZXI7CisJaWYgKGhydGltZXJfY2FuY2VsKHRpbWVyKSkKKwkJaHJ0aW1lcl9zdGFydCh0aW1lciwgdGltZXItPmV4cGlyZXMsIEhSVElNRVJfTU9ERV9BQlMpOworfQorCiBzdGF0aWMgdm9pZCBkZXN0cm95X3BpdF90aW1lcihzdHJ1Y3Qga3ZtX2twaXRfdGltZXIgKnB0KQogewogCXByX2RlYnVnKCJwaXQ6IGV4ZWN1dGUgZGVsIHRpbWVyIVxuIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaXJxLmMgYi9hcmNoL3g4Ni9rdm0vaXJxLmMKaW5kZXggY2UxZjU4My4uNzZkNzM2YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2lycS5jCisrKyBiL2FyY2gveDg2L2t2bS9pcnEuYwpAQCAtOTQsMyArOTQsOSBAQAogCS8qIFRPRE86IFBJVCwgUlRDIGV0Yy4gKi8KIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGt2bV90aW1lcl9pbnRyX3Bvc3QpOworCit2b2lkIF9fa3ZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sKKwlfX2t2bV9taWdyYXRlX2FwaWNfdGltZXIodmNwdSk7CisJX19rdm1fbWlncmF0ZV9waXRfdGltZXIodmNwdSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vaXJxLmggYi9hcmNoL3g4Ni9rdm0vaXJxLmgKaW5kZXggMTgwMjEzNC4uMmExNWJlMiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2lycS5oCisrKyBiL2FyY2gveDg2L2t2bS9pcnEuaApAQCAtODQsNiArODQsOCBAQAogdm9pZCBrdm1faW5qZWN0X3BlbmRpbmdfdGltZXJfaXJxcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCBrdm1faW5qZWN0X2FwaWNfdGltZXJfaXJxcyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogdm9pZCBfX2t2bV9taWdyYXRlX2FwaWNfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKK3ZvaWQgX19rdm1fbWlncmF0ZV9waXRfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKK3ZvaWQgX19rdm1fbWlncmF0ZV90aW1lcnMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKIAogaW50IHBpdF9oYXNfcGVuZGluZ190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOwogaW50IGFwaWNfaGFzX3BlbmRpbmdfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9sYXBpYy5jIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKaW5kZXggYzI5N2M1MC4uZWJjMDNmNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2xhcGljLmMKKysrIGIvYXJjaC94ODYva3ZtL2xhcGljLmMKQEAgLTk0MCw2ICs5NDAsNyBAQAogCXdhaXRfcXVldWVfaGVhZF90ICpxID0gJmFwaWMtPnZjcHUtPndxOwogCiAJYXRvbWljX2luYygmYXBpYy0+dGltZXIucGVuZGluZyk7CisJc2V0X2JpdChLVk1fUkVRX1BFTkRJTkdfVElNRVIsICZhcGljLT52Y3B1LT5yZXF1ZXN0cyk7CiAJaWYgKHdhaXRxdWV1ZV9hY3RpdmUocSkpIHsKIAkJYXBpYy0+dmNwdS0+YXJjaC5tcF9zdGF0ZSA9IEtWTV9NUF9TVEFURV9SVU5OQUJMRTsKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKHEpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL21tdS5jIGIvYXJjaC94ODYva3ZtL21tdS5jCmluZGV4IDM2YzU0MDYuLjdlN2MzOTYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9tbXUuYworKysgYi9hcmNoL3g4Ni9rdm0vbW11LmMKQEAgLTY0MCw2ICs2NDAsNyBAQAogCQkJcm1hcF9yZW1vdmUoa3ZtLCBzcHRlKTsKIAkJCS0ta3ZtLT5zdGF0LmxwYWdlczsKIAkJCXNldF9zaGFkb3dfcHRlKHNwdGUsIHNoYWRvd190cmFwX25vbnByZXNlbnRfcHRlKTsKKwkJCXNwdGUgPSBOVUxMOwogCQkJd3JpdGVfcHJvdGVjdGVkID0gMTsKIAkJfQogCQlzcHRlID0gcm1hcF9uZXh0KGt2bSwgcm1hcHAsIHNwdGUpOwpAQCAtNjU4LDcgKzY1OSw3IEBACiAJdTY0ICplbmQ7CiAKIAlmb3IgKHBvcyA9IHNwdCwgZW5kID0gcG9zICsgUEFHRV9TSVpFIC8gc2l6ZW9mKHU2NCk7IHBvcyAhPSBlbmQ7IHBvcysrKQotCQlpZiAoKnBvcyAhPSBzaGFkb3dfdHJhcF9ub25wcmVzZW50X3B0ZSkgeworCQlpZiAoaXNfc2hhZG93X3ByZXNlbnRfcHRlKCpwb3MpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcCAlbGx4XG4iLCBfX2Z1bmNfXywKIAkJCSAgICAgICBwb3MsICpwb3MpOwogCQkJcmV0dXJuIDA7CkBAIC0xMDgyLDEwICsxMDgzLDYgQEAKIAkJc3RydWN0IGt2bV9tbXVfcGFnZSAqc2hhZG93OwogCiAJCXNwdGUgfD0gUFRfV1JJVEFCTEVfTUFTSzsKLQkJaWYgKHVzZXJfZmF1bHQpIHsKLQkJCW1tdV91bnNoYWRvdyh2Y3B1LT5rdm0sIGdmbik7Ci0JCQlnb3RvIHVuc2hhZG93ZWQ7Ci0JCX0KIAogCQlzaGFkb3cgPSBrdm1fbW11X2xvb2t1cF9wYWdlKHZjcHUtPmt2bSwgZ2ZuKTsKIAkJaWYgKHNoYWRvdyB8fApAQCAtMTEwMiw4ICsxMDk5LDYgQEAKIAkJfQogCX0KIAotdW5zaGFkb3dlZDoKLQogCWlmIChwdGVfYWNjZXNzICYgQUNDX1dSSVRFX01BU0spCiAJCW1hcmtfcGFnZV9kaXJ0eSh2Y3B1LT5rdm0sIGdmbik7CiAKQEAgLTE1ODAsMTEgKzE1NzUsMTMgQEAKIAkJCQkgIHU2NCAqc3B0ZSwKIAkJCQkgIGNvbnN0IHZvaWQgKm5ldykKIHsKLQlpZiAoKHNwLT5yb2xlLmxldmVsICE9IFBUX1BBR0VfVEFCTEVfTEVWRUwpCi0JICAgICYmICF2Y3B1LT5hcmNoLnVwZGF0ZV9wdGUubGFyZ2VwYWdlKSB7Ci0JCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wZGVfemFwcGVkOwotCQlyZXR1cm47Ci0JfQorCWlmIChzcC0+cm9sZS5sZXZlbCAhPSBQVF9QQUdFX1RBQkxFX0xFVkVMKSB7CisJCWlmICghdmNwdS0+YXJjaC51cGRhdGVfcHRlLmxhcmdlcGFnZSB8fAorCQkgICAgc3AtPnJvbGUuZ2xldmVscyA9PSBQVDMyX1JPT1RfTEVWRUwpIHsKKwkJCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wZGVfemFwcGVkOworCQkJcmV0dXJuOworCQl9CisgICAgICAgIH0KIAogCSsrdmNwdS0+a3ZtLT5zdGF0Lm1tdV9wdGVfdXBkYXRlZDsKIAlpZiAoc3AtPnJvbGUuZ2xldmVscyA9PSBQVDMyX1JPT1RfTEVWRUwpCkBAIC0xODU4LDYgKzE4NTUsNyBAQAogCQlzcCA9IGNvbnRhaW5lcl9vZih2Y3B1LT5rdm0tPmFyY2guYWN0aXZlX21tdV9wYWdlcy5uZXh0LAogCQkJCSAgc3RydWN0IGt2bV9tbXVfcGFnZSwgbGluayk7CiAJCWt2bV9tbXVfemFwX3BhZ2UodmNwdS0+a3ZtLCBzcCk7CisJCWNvbmRfcmVzY2hlZCgpOwogCX0KIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpdmNwdS0+YXJjaC5tbXUucGFlX3Jvb3QpOwogfQpAQCAtMTk5Niw3ICsxOTk0LDcgQEAKIAkuc2Vla3MgPSBERUZBVUxUX1NFRUtTICogMTAsCiB9OwogCi12b2lkIG1tdV9kZXN0cm95X2NhY2hlcyh2b2lkKQorc3RhdGljIHZvaWQgbW11X2Rlc3Ryb3lfY2FjaGVzKHZvaWQpCiB7CiAJaWYgKHB0ZV9jaGFpbl9jYWNoZSkKIAkJa21lbV9jYWNoZV9kZXN0cm95KHB0ZV9jaGFpbl9jYWNoZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vcGFnaW5nX3RtcGwuaCBiL2FyY2gveDg2L2t2bS9wYWdpbmdfdG1wbC5oCmluZGV4IDE1NmZlMTAuLjkzNGM3YjYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS9wYWdpbmdfdG1wbC5oCisrKyBiL2FyY2gveDg2L2t2bS9wYWdpbmdfdG1wbC5oCkBAIC00MTgsNyArNDE4LDcgQEAKIAogCS8qIG1taW8gKi8KIAlpZiAoaXNfZXJyb3JfcGZuKHBmbikpIHsKLQkJcGdwcmludGsoImdmbiAleCBpcyBtbWlvXG4iLCB3YWxrZXIuZ2ZuKTsKKwkJcGdwcmludGsoImdmbiAlbHggaXMgbW1pb1xuIiwgd2Fsa2VyLmdmbik7CiAJCWt2bV9yZWxlYXNlX3Bmbl9jbGVhbihwZm4pOwogCQlyZXR1cm4gMTsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vc3ZtLmMgYi9hcmNoL3g4Ni9rdm0vc3ZtLmMKaW5kZXggYWIyMjYxNS4uNmIwZDVmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3N2bS5jCisrKyBiL2FyY2gveDg2L2t2bS9zdm0uYwpAQCAtNjg4LDcgKzY4OCw3IEBACiAJCWRlbHRhID0gdmNwdS0+YXJjaC5ob3N0X3RzYyAtIHRzY190aGlzOwogCQlzdm0tPnZtY2ItPmNvbnRyb2wudHNjX29mZnNldCArPSBkZWx0YTsKIAkJdmNwdS0+Y3B1ID0gY3B1OwotCQlrdm1fbWlncmF0ZV9hcGljX3RpbWVyKHZjcHUpOworCQlrdm1fbWlncmF0ZV90aW1lcnModmNwdSk7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IE5SX0hPU1RfU0FWRV9VU0VSX01TUlM7IGkrKykKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXguYyBiL2FyY2gveDg2L2t2bS92bXguYwppbmRleCBiZmU0ZGIxLi41NDBlOTUxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0vdm14LmMKKysrIGIvYXJjaC94ODYva3ZtL3ZteC5jCkBAIC01NjYsNyArNTY2LDcgQEAKIAlsb2FkX3RyYW5zaXRpb25fZWZlcih2bXgpOwogfQogCi1zdGF0aWMgdm9pZCB2bXhfbG9hZF9ob3N0X3N0YXRlKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQorc3RhdGljIHZvaWQgX192bXhfbG9hZF9ob3N0X3N0YXRlKHN0cnVjdCB2Y3B1X3ZteCAqdm14KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTU5Niw2ICs1OTYsMTMgQEAKIAlyZWxvYWRfaG9zdF9lZmVyKHZteCk7CiB9CiAKK3N0YXRpYyB2b2lkIHZteF9sb2FkX2hvc3Rfc3RhdGUoc3RydWN0IHZjcHVfdm14ICp2bXgpCit7CisJcHJlZW1wdF9kaXNhYmxlKCk7CisJX192bXhfbG9hZF9ob3N0X3N0YXRlKHZteCk7CisJcHJlZW1wdF9lbmFibGUoKTsKK30KKwogLyoKICAqIFN3aXRjaGVzIHRvIHNwZWNpZmllZCB2Y3B1LCB1bnRpbCBhIG1hdGNoaW5nIHZjcHVfcHV0KCksIGJ1dCBhc3N1bWVzCiAgKiB2Y3B1IG11dGV4IGlzIGFscmVhZHkgdGFrZW4uCkBAIC02MDgsNyArNjE1LDcgQEAKIAogCWlmICh2Y3B1LT5jcHUgIT0gY3B1KSB7CiAJCXZjcHVfY2xlYXIodm14KTsKLQkJa3ZtX21pZ3JhdGVfYXBpY190aW1lcih2Y3B1KTsKKwkJa3ZtX21pZ3JhdGVfdGltZXJzKHZjcHUpOwogCQl2cGlkX3N5bmNfdmNwdV9hbGwodm14KTsKIAl9CiAKQEAgLTY1NCw3ICs2NjEsNyBAQAogCiBzdGF0aWMgdm9pZCB2bXhfdmNwdV9wdXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewotCXZteF9sb2FkX2hvc3Rfc3RhdGUodG9fdm14KHZjcHUpKTsKKwlfX3ZteF9sb2FkX2hvc3Rfc3RhdGUodG9fdm14KHZjcHUpKTsKIH0KIAogc3RhdGljIHZvaWQgdm14X2ZwdV9hY3RpdmF0ZShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCkBAIC04ODQsMTEgKzg5MSw4IEBACiAJc3dpdGNoIChtc3JfaW5kZXgpIHsKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAJY2FzZSBNU1JfRUZFUjoKKwkJdm14X2xvYWRfaG9zdF9zdGF0ZSh2bXgpOwogCQlyZXQgPSBrdm1fc2V0X21zcl9jb21tb24odmNwdSwgbXNyX2luZGV4LCBkYXRhKTsKLQkJaWYgKHZteC0+aG9zdF9zdGF0ZS5sb2FkZWQpIHsKLQkJCXJlbG9hZF9ob3N0X2VmZXIodm14KTsKLQkJCWxvYWRfdHJhbnNpdGlvbl9lZmVyKHZteCk7Ci0JCX0KIAkJYnJlYWs7CiAJY2FzZSBNU1JfRlNfQkFTRToKIAkJdm1jc193cml0ZWwoR1VFU1RfRlNfQkFTRSwgZGF0YSk7CkBAIC05MTAsMTEgKzkxNCwxMCBAQAogCQlndWVzdF93cml0ZV90c2MoZGF0YSk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CisJCXZteF9sb2FkX2hvc3Rfc3RhdGUodm14KTsKIAkJbXNyID0gZmluZF9tc3JfZW50cnkodm14LCBtc3JfaW5kZXgpOwogCQlpZiAobXNyKSB7CiAJCQltc3ItPmRhdGEgPSBkYXRhOwotCQkJaWYgKHZteC0+aG9zdF9zdGF0ZS5sb2FkZWQpCi0JCQkJbG9hZF9tc3JzKHZteC0+Z3Vlc3RfbXNycywgdm14LT5zYXZlX25tc3JzKTsKIAkJCWJyZWFrOwogCQl9CiAJCXJldCA9IGt2bV9zZXRfbXNyX2NvbW1vbih2Y3B1LCBtc3JfaW5kZXgsIGRhdGEpOwpAQCAtMTAzNiw2ICsxMDM5LDcgQEAKIHN0YXRpYyB2b2lkIGhhcmR3YXJlX2Rpc2FibGUodm9pZCAqZ2FyYmFnZSkKIHsKIAlhc20gdm9sYXRpbGUgKEFTTV9WTVhfVk1YT0ZGIDogOiA6ICJjYyIpOworCXdyaXRlX2NyNChyZWFkX2NyNCgpICYgflg4Nl9DUjRfVk1YRSk7CiB9CiAKIHN0YXRpYyBfX2luaXQgaW50IGFkanVzdF92bXhfY29udHJvbHModTMyIGN0bF9taW4sIHUzMiBjdGxfb3B0LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IDIxMzM4YmQuLjYzYTc3Y2EgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2t2bS94ODYuYworKysgYi9hcmNoL3g4Ni9rdm0veDg2LmMKQEAgLTQ5Miw4ICs0OTIsOCBAQAogc3RhdGljIHZvaWQga3ZtX3dyaXRlX3dhbGxfY2xvY2soc3RydWN0IGt2bSAqa3ZtLCBncGFfdCB3YWxsX2Nsb2NrKQogewogCXN0YXRpYyBpbnQgdmVyc2lvbjsKLQlzdHJ1Y3Qga3ZtX3dhbGxfY2xvY2sgd2M7Ci0Jc3RydWN0IHRpbWVzcGVjIHdjX3RzOworCXN0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgd2M7CisJc3RydWN0IHRpbWVzcGVjIG5vdywgc3lzLCBib290OwogCiAJaWYgKCF3YWxsX2Nsb2NrKQogCQlyZXR1cm47CkBAIC01MDIsMTAgKzUwMiwxOSBAQAogCiAJa3ZtX3dyaXRlX2d1ZXN0KGt2bSwgd2FsbF9jbG9jaywgJnZlcnNpb24sIHNpemVvZih2ZXJzaW9uKSk7CiAKLQl3Y190cyA9IGN1cnJlbnRfa2VybmVsX3RpbWUoKTsKLQl3Yy53Y19zZWMgPSB3Y190cy50dl9zZWM7Ci0Jd2Mud2NfbnNlYyA9IHdjX3RzLnR2X25zZWM7Ci0Jd2Mud2NfdmVyc2lvbiA9IHZlcnNpb247CisJLyoKKwkgKiBUaGUgZ3Vlc3QgY2FsY3VsYXRlcyBjdXJyZW50IHdhbGwgY2xvY2sgdGltZSBieSBhZGRpbmcKKwkgKiBzeXN0ZW0gdGltZSAodXBkYXRlZCBieSBrdm1fd3JpdGVfZ3Vlc3RfdGltZSBiZWxvdykgdG8gdGhlCisJICogd2FsbCBjbG9jayBzcGVjaWZpZWQgaGVyZS4gIGd1ZXN0IHN5c3RlbSB0aW1lIGVxdWFscyBob3N0CisJICogc3lzdGVtIHRpbWUgZm9yIHVzLCB0aHVzIHdlIG11c3QgZmlsbCBpbiBob3N0IGJvb3QgdGltZSBoZXJlLgorCSAqLworCW5vdyA9IGN1cnJlbnRfa2VybmVsX3RpbWUoKTsKKwlrdGltZV9nZXRfdHMoJnN5cyk7CisJYm9vdCA9IG5zX3RvX3RpbWVzcGVjKHRpbWVzcGVjX3RvX25zKCZub3cpIC0gdGltZXNwZWNfdG9fbnMoJnN5cykpOworCisJd2Muc2VjID0gYm9vdC50dl9zZWM7CisJd2MubnNlYyA9IGJvb3QudHZfbnNlYzsKKwl3Yy52ZXJzaW9uID0gdmVyc2lvbjsKIAogCWt2bV93cml0ZV9ndWVzdChrdm0sIHdhbGxfY2xvY2ssICZ3Yywgc2l6ZW9mKHdjKSk7CiAKQEAgLTUxMyw2ICs1MjIsNDUgQEAKIAlrdm1fd3JpdGVfZ3Vlc3Qoa3ZtLCB3YWxsX2Nsb2NrLCAmdmVyc2lvbiwgc2l6ZW9mKHZlcnNpb24pKTsKIH0KIAorc3RhdGljIHVpbnQzMl90IGRpdl9mcmFjKHVpbnQzMl90IGRpdmlkZW5kLCB1aW50MzJfdCBkaXZpc29yKQoreworCXVpbnQzMl90IHF1b3RpZW50LCByZW1haW5kZXI7CisKKwkvKiBEb24ndCB0cnkgdG8gcmVwbGFjZSB3aXRoIGRvX2RpdigpLCB0aGlzIG9uZSBjYWxjdWxhdGVzCisJICogIihkaXZpZGVuZCA8PCAzMikgLyBkaXZpc29yIiAqLworCV9fYXNtX18gKCAiZGl2bCAlNCIKKwkJICA6ICI9YSIgKHF1b3RpZW50KSwgIj1kIiAocmVtYWluZGVyKQorCQkgIDogIjAiICgwKSwgIjEiIChkaXZpZGVuZCksICJyIiAoZGl2aXNvcikgKTsKKwlyZXR1cm4gcXVvdGllbnQ7Cit9CisKK3N0YXRpYyB2b2lkIGt2bV9zZXRfdGltZV9zY2FsZSh1aW50MzJfdCB0c2Nfa2h6LCBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqaHZfY2xvY2spCit7CisJdWludDY0X3QgbnNlY3MgPSAxMDAwMDAwMDAwTEw7CisJaW50MzJfdCAgc2hpZnQgPSAwOworCXVpbnQ2NF90IHRwczY0OworCXVpbnQzMl90IHRwczMyOworCisJdHBzNjQgPSB0c2Nfa2h6ICogMTAwMExMOworCXdoaWxlICh0cHM2NCA+IG5zZWNzKjIpIHsKKwkJdHBzNjQgPj49IDE7CisJCXNoaWZ0LS07CisJfQorCisJdHBzMzIgPSAodWludDMyX3QpdHBzNjQ7CisJd2hpbGUgKHRwczMyIDw9ICh1aW50MzJfdCluc2VjcykgeworCQl0cHMzMiA8PD0gMTsKKwkJc2hpZnQrKzsKKwl9CisKKwlodl9jbG9jay0+dHNjX3NoaWZ0ID0gc2hpZnQ7CisJaHZfY2xvY2stPnRzY190b19zeXN0ZW1fbXVsID0gZGl2X2ZyYWMobnNlY3MsIHRwczMyKTsKKworCXByX2RlYnVnKCIlczogdHNjX2toeiAldSwgdHNjX3NoaWZ0ICVkLCB0c2NfbXVsICV1XG4iLAorCQkgX19GVU5DVElPTl9fLCB0c2Nfa2h6LCBodl9jbG9jay0+dHNjX3NoaWZ0LAorCQkgaHZfY2xvY2stPnRzY190b19zeXN0ZW1fbXVsKTsKK30KKwogc3RhdGljIHZvaWQga3ZtX3dyaXRlX2d1ZXN0X3RpbWUoc3RydWN0IGt2bV92Y3B1ICp2KQogewogCXN0cnVjdCB0aW1lc3BlYyB0czsKQEAgLTUyMyw2ICs1NzEsMTEgQEAKIAlpZiAoKCF2Y3B1LT50aW1lX3BhZ2UpKQogCQlyZXR1cm47CiAKKwlpZiAodW5saWtlbHkodmNwdS0+aHZfY2xvY2tfdHNjX2toeiAhPSB0c2Nfa2h6KSkgeworCQlrdm1fc2V0X3RpbWVfc2NhbGUodHNjX2toeiwgJnZjcHUtPmh2X2Nsb2NrKTsKKwkJdmNwdS0+aHZfY2xvY2tfdHNjX2toeiA9IHRzY19raHo7CisJfQorCiAJLyogS2VlcCBpcnEgZGlzYWJsZWQgdG8gcHJldmVudCBjaGFuZ2VzIHRvIHRoZSBjbG9jayAqLwogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAlrdm1fZ2V0X21zcih2LCBNU1JfSUEzMl9USU1FX1NUQU1QX0NPVU5URVIsCkBAIC01MzcsMTQgKzU5MCwxNCBAQAogCS8qCiAJICogVGhlIGludGVyZmFjZSBleHBlY3RzIHVzIHRvIHdyaXRlIGFuIGV2ZW4gbnVtYmVyIHNpZ25hbGluZyB0aGF0IHRoZQogCSAqIHVwZGF0ZSBpcyBmaW5pc2hlZC4gU2luY2UgdGhlIGd1ZXN0IHdvbid0IHNlZSB0aGUgaW50ZXJtZWRpYXRlCi0JICogc3RhdGUsIHdlIGp1c3Qgd3JpdGUgIjIiIGF0IHRoZSBlbmQKKwkgKiBzdGF0ZSwgd2UganVzdCBpbmNyZWFzZSBieSAyIGF0IHRoZSBlbmQuCiAJICovCi0JdmNwdS0+aHZfY2xvY2sudmVyc2lvbiA9IDI7CisJdmNwdS0+aHZfY2xvY2sudmVyc2lvbiArPSAyOwogCiAJc2hhcmVkX2thZGRyID0ga21hcF9hdG9taWModmNwdS0+dGltZV9wYWdlLCBLTV9VU0VSMCk7CiAKIAltZW1jcHkoc2hhcmVkX2thZGRyICsgdmNwdS0+dGltZV9vZmZzZXQsICZ2Y3B1LT5odl9jbG9jaywKLQkJc2l6ZW9mKHZjcHUtPmh2X2Nsb2NrKSk7CisJICAgICAgIHNpemVvZih2Y3B1LT5odl9jbG9jaykpOwogCiAJa3VubWFwX2F0b21pYyhzaGFyZWRfa2FkZHIsIEtNX1VTRVIwKTsKIApAQCAtNTk5LDEwICs2NTIsNiBAQAogCQkvKiAuLi5idXQgY2xlYW4gaXQgYmVmb3JlIGRvaW5nIHRoZSBhY3R1YWwgd3JpdGUgKi8KIAkJdmNwdS0+YXJjaC50aW1lX29mZnNldCA9IGRhdGEgJiB+KFBBR0VfTUFTSyB8IDEpOwogCi0JCXZjcHUtPmFyY2guaHZfY2xvY2sudHNjX3RvX3N5c3RlbV9tdWwgPQotCQkJCQljbG9ja3NvdXJjZV9raHoybXVsdCh0c2Nfa2h6LCAyMik7Ci0JCXZjcHUtPmFyY2guaHZfY2xvY2sudHNjX3NoaWZ0ID0gMjI7Ci0KIAkJZG93bl9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwogCQl2Y3B1LT5hcmNoLnRpbWVfcGFnZSA9CiAJCQkJZ2ZuX3RvX3BhZ2UodmNwdS0+a3ZtLCBkYXRhID4+IFBBR0VfU0hJRlQpOwpAQCAtMjc1OCw3ICsyODA3LDkgQEAKIAogCWlmICh2Y3B1LT5yZXF1ZXN0cykgewogCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEtWTV9SRVFfTUlHUkFURV9USU1FUiwgJnZjcHUtPnJlcXVlc3RzKSkKLQkJCV9fa3ZtX21pZ3JhdGVfYXBpY190aW1lcih2Y3B1KTsKKwkJCV9fa3ZtX21pZ3JhdGVfdGltZXJzKHZjcHUpOworCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEtWTV9SRVFfVExCX0ZMVVNILCAmdmNwdS0+cmVxdWVzdHMpKQorCQkJa3ZtX3g4Nl9vcHMtPnRsYl9mbHVzaCh2Y3B1KTsKIAkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChLVk1fUkVRX1JFUE9SVF9UUFJfQUNDRVNTLAogCQkJCSAgICAgICAmdmNwdS0+cmVxdWVzdHMpKSB7CiAJCQlrdm1fcnVuLT5leGl0X3JlYXNvbiA9IEtWTV9FWElUX1RQUl9BQ0NFU1M7CkBAIC0yNzcyLDYgKzI4MjMsNyBAQAogCQl9CiAJfQogCisJY2xlYXJfYml0KEtWTV9SRVFfUEVORElOR19USU1FUiwgJnZjcHUtPnJlcXVlc3RzKTsKIAlrdm1faW5qZWN0X3BlbmRpbmdfdGltZXJfaXJxcyh2Y3B1KTsKIAogCXByZWVtcHRfZGlzYWJsZSgpOwpAQCAtMjc4MSwyMSArMjgzMywxMyBAQAogCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKIAotCWlmIChuZWVkX3Jlc2NoZWQoKSkgeworCWlmICh2Y3B1LT5yZXF1ZXN0cyB8fCBuZWVkX3Jlc2NoZWQoKSkgewogCQlsb2NhbF9pcnFfZW5hYmxlKCk7CiAJCXByZWVtcHRfZW5hYmxlKCk7CiAJCXIgPSAxOwogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAodmNwdS0+cmVxdWVzdHMpCi0JCWlmICh0ZXN0X2JpdChLVk1fUkVRX01NVV9SRUxPQUQsICZ2Y3B1LT5yZXF1ZXN0cykpIHsKLQkJCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJCXByZWVtcHRfZW5hYmxlKCk7Ci0JCQlyID0gMTsKLQkJCWdvdG8gb3V0OwotCQl9Ci0KIAlpZiAoc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHsKIAkJbG9jYWxfaXJxX2VuYWJsZSgpOwogCQlwcmVlbXB0X2VuYWJsZSgpOwpAQCAtMjgyNSw5ICsyODY5LDYgQEAKIAogCWt2bV9ndWVzdF9lbnRlcigpOwogCi0JaWYgKHZjcHUtPnJlcXVlc3RzKQotCQlpZiAodGVzdF9hbmRfY2xlYXJfYml0KEtWTV9SRVFfVExCX0ZMVVNILCAmdmNwdS0+cmVxdWVzdHMpKQotCQkJa3ZtX3g4Nl9vcHMtPnRsYl9mbHVzaCh2Y3B1KTsKIAogCUtWTVRSQUNFXzBEKFZNRU5UUlksIHZjcHUsIGVudHJ5ZXhpdCk7CiAJa3ZtX3g4Nl9vcHMtPnJ1bih2Y3B1LCBrdm1fcnVuKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS94ODZfZW11bGF0ZS5jIGIvYXJjaC94ODYva3ZtL3g4Nl9lbXVsYXRlLmMKaW5kZXggOGE5NjMyMC4uOTMyZjIxNiAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3g4Nl9lbXVsYXRlLmMKKysrIGIvYXJjaC94ODYva3ZtL3g4Nl9lbXVsYXRlLmMKQEAgLTE3MjcsNyArMTcyNyw4IEBACiAJCQlpZiAocmMpCiAJCQkJZ290byBkb25lOwogCi0JCQlrdm1fZW11bGF0ZV9oeXBlcmNhbGwoY3R4dC0+dmNwdSk7CisJCQkvKiBMZXQgdGhlIHByb2Nlc3NvciByZS1leGVjdXRlIHRoZSBmaXhlZCBoeXBlcmNhbGwgKi8KKwkJCWMtPmVpcCA9IGN0eHQtPnZjcHUtPmFyY2gucmlwOwogCQkJLyogRGlzYWJsZSB3cml0ZWJhY2suICovCiAJCQljLT5kc3QudHlwZSA9IE9QX05PTkU7CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xndWVzdC9LY29uZmlnIGIvYXJjaC94ODYvbGd1ZXN0L0tjb25maWcKaW5kZXggOTY0ZGZhMy4uYzcwZTEyYiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbGd1ZXN0L0tjb25maWcKKysrIGIvYXJjaC94ODYvbGd1ZXN0L0tjb25maWcKQEAgLTMsNyArMyw3IEBACiAJc2VsZWN0IFBBUkFWSVJUCiAJZGVwZW5kcyBvbiBYODZfMzIKIAlkZXBlbmRzIG9uICFYODZfUEFFCi0JZGVwZW5kcyBvbiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uICFYODZfVk9ZQUdFUgogCXNlbGVjdCBWSVJUSU8KIAlzZWxlY3QgVklSVElPX1JJTkcKIAlzZWxlY3QgVklSVElPX0NPTlNPTEUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xndWVzdC9ib290LmMgYi9hcmNoL3g4Ni9sZ3Vlc3QvYm9vdC5jCmluZGV4IGFmNjViMmQuLjUwZGFkNDQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xndWVzdC9ib290LmMKKysrIGIvYXJjaC94ODYvbGd1ZXN0L2Jvb3QuYwpAQCAtNTgyLDggKzU4Miw5IEBACiAJCWludCB2ZWN0b3IgPSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyBpOwogCQlpZiAodmVjdG9yICE9IFNZU0NBTExfVkVDVE9SKSB7CiAJCQlzZXRfaW50cl9nYXRlKHZlY3RvciwgaW50ZXJydXB0W2ldKTsKLQkJCXNldF9pcnFfY2hpcF9hbmRfaGFuZGxlcihpLCAmbGd1ZXN0X2lycV9jb250cm9sbGVyLAotCQkJCQkJIGhhbmRsZV9sZXZlbF9pcnEpOworCQkJc2V0X2lycV9jaGlwX2FuZF9oYW5kbGVyX25hbWUoaSwgJmxndWVzdF9pcnFfY29udHJvbGxlciwKKwkJCQkJCSAgICAgIGhhbmRsZV9sZXZlbF9pcnEsCisJCQkJCQkgICAgICAibGV2ZWwiKTsKIAkJfQogCX0KIAkvKiBUaGlzIGNhbGwgaXMgcmVxdWlyZWQgdG8gc2V0IHVwIGZvciA0ayBzdGFja3MsIHdoZXJlIHdlIGhhdmUKQEAgLTYwNiw3ICs2MDcsNyBAQAogICogd2hhdCBzcGVlZCBpdCBydW5zIGF0LCBvciAwIGlmIGl0J3MgdW51c2FibGUgYXMgYSByZWxpYWJsZSBjbG9jayBzb3VyY2UuCiAgKiBUaGlzIG1hdGNoZXMgd2hhdCB3ZSB3YW50IGhlcmU6IGlmIHdlIHJldHVybiAwIGZyb20gdGhpcyBmdW5jdGlvbiwgdGhlIHg4NgogICogVFNDIGNsb2NrIHdpbGwgZ2l2ZSB1cCBhbmQgbm90IHJlZ2lzdGVyIGl0c2VsZi4gKi8KLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxndWVzdF9jcHVfa2h6KHZvaWQpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBsZ3Vlc3RfdHNjX2toeih2b2lkKQogewogCXJldHVybiBsZ3Vlc3RfZGF0YS50c2Nfa2h6OwogfQpAQCAtODM0LDcgKzgzNSw3IEBACiAKIAkvKiBUaGUgTGludXggYm9vdGxvYWRlciBoZWFkZXIgY29udGFpbnMgYW4gImU4MjAiIG1lbW9yeSBtYXA6IHRoZQogCSAqIExhdW5jaGVyIHBvcHVsYXRlZCB0aGUgZmlyc3QgZW50cnkgd2l0aCBvdXIgbWVtb3J5IGxpbWl0LiAqLwotCWFkZF9tZW1vcnlfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCisJZTgyMF9hZGRfcmVnaW9uKGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLmFkZHIsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnNpemUsCiAJCQkgIGJvb3RfcGFyYW1zLmU4MjBfbWFwWzBdLnR5cGUpOwogCkBAIC05OTcsNyArOTk4LDcgQEAKIAkvKiB0aW1lIG9wZXJhdGlvbnMgKi8KIAlwdl90aW1lX29wcy5nZXRfd2FsbGNsb2NrID0gbGd1ZXN0X2dldF93YWxsY2xvY2s7CiAJcHZfdGltZV9vcHMudGltZV9pbml0ID0gbGd1ZXN0X3RpbWVfaW5pdDsKLQlwdl90aW1lX29wcy5nZXRfY3B1X2toeiA9IGxndWVzdF9jcHVfa2h6OworCXB2X3RpbWVfb3BzLmdldF90c2Nfa2h6ID0gbGd1ZXN0X3RzY19raHo7CiAKIAkvKiBOb3cgaXMgYSBnb29kIHRpbWUgdG8gbG9vayBhdCB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucwogCSAqIGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIHJlc3Qgb2YgbGd1ZXN0X2luaXQoKS4gKi8KQEAgLTEwMTEsNiArMTAxMiw3IEBACiAJICogY2xvYmJlcmVkLiAgVGhlIExhdW5jaGVyIHBsYWNlcyBvdXIgaW5pdGlhbCBwYWdldGFibGVzIHNvbWV3aGVyZSBhdAogCSAqIHRoZSB0b3Agb2Ygb3VyIHBoeXNpY2FsIG1lbW9yeSwgc28gd2UgZG9uJ3QgbmVlZCBleHRyYSBzcGFjZTogc2V0CiAJICogaW5pdF9wZ190YWJsZXNfZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGtlcm5lbC4gKi8KKwlpbml0X3BnX3RhYmxlc19zdGFydCA9IF9fcGEocGcwKTsKIAlpbml0X3BnX3RhYmxlc19lbmQgPSBfX3BhKHBnMCk7CiAKIAkvKiBMb2FkIHRoZSAlZnMgc2VnbWVudCByZWdpc3RlciAodGhlIHBlci1jcHUgc2VnbWVudCByZWdpc3Rlcikgd2l0aApAQCAtMTA2NCw5ICsxMDY2LDkgQEAKIAlwbV9wb3dlcl9vZmYgPSBsZ3Vlc3RfcG93ZXJfb2ZmOwogCW1hY2hpbmVfb3BzLnJlc3RhcnQgPSBsZ3Vlc3RfcmVzdGFydDsKIAotCS8qIE5vdyB3ZSdyZSBzZXQgdXAsIGNhbGwgc3RhcnRfa2VybmVsKCkgaW4gaW5pdC9tYWluLmMgYW5kIHdlIHByb2NlZWQKKwkvKiBOb3cgd2UncmUgc2V0IHVwLCBjYWxsIGkzODZfc3RhcnRfa2VybmVsKCkgaW4gaGVhZDMyLmMgYW5kIHdlIHByb2NlZWQKIAkgKiB0byBib290IGFzIG5vcm1hbC4gIEl0IG5ldmVyIHJldHVybnMuICovCi0Jc3RhcnRfa2VybmVsKCk7CisJaTM4Nl9zdGFydF9rZXJuZWwoKTsKIH0KIC8qCiAgKiBUaGlzIG1hcmtzIHRoZSBlbmQgb2Ygc3RhZ2UgSUkgb2Ygb3VyIGpvdXJuZXksIFRoZSBHdWVzdC4KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9NYWtlZmlsZSBiL2FyY2gveDg2L2xpYi9NYWtlZmlsZQppbmRleCA3NmY2MGY1Li5hYTNmYTQxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvbGliL01ha2VmaWxlCkBAIC00LDggKzQsOSBAQAogCiBvYmotJChDT05GSUdfU01QKSA6PSBtc3Itb24tY3B1Lm8KIAotbGliLXkgOj0gZGVsYXlfJChCSVRTKS5vCi1saWIteSArPSB1c2VyY29weV8kKEJJVFMpLm8gZ2V0dXNlcl8kKEJJVFMpLm8gcHV0dXNlcl8kKEJJVFMpLm8KK2xpYi15IDo9IGRlbGF5Lm8KK2xpYi15ICs9IHRodW5rXyQoQklUUykubworbGliLXkgKz0gdXNlcmNvcHlfJChCSVRTKS5vIGdldHVzZXIubyBwdXR1c2VyLm8KIGxpYi15ICs9IG1lbWNweV8kKEJJVFMpLm8KIAogaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TIGIvYXJjaC94ODYvbGliL2NvcHlfdXNlcl82NC5TCmluZGV4IDcwYmViZDMuLmRmZGY0MjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvY29weV91c2VyXzY0LlMKQEAgLTEsOCArMSwxMCBAQAotLyogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorLyoKKyAqIENvcHlyaWdodCAyMDA4IFZpdGFseSBNYXlhdHNraWtoIDx2bWF5YXRza0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogU3ViamVjdCB0byB0aGUgR05VIFB1YmxpYyBMaWNlbnNlIHYyLgotICogCi0gKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgkJCi0gKi8JCSAKKyAqCisgKiBGdW5jdGlvbnMgdG8gY29weSBmcm9tIGFuZCB0byB1c2VyIHNwYWNlLgorICovCiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgpAQCAtMjAsNjAgKzIyLDg4IEBACiAJLmxvbmcgXG9yaWctMWYJLyogYnkgZGVmYXVsdCBqdW1wIHRvIG9yaWcgKi8KIDE6CiAJLnNlY3Rpb24gLmFsdGluc3RyX3JlcGxhY2VtZW50LCJheCIKLTI6CS5ieXRlIDB4ZTkJICAgICAgICAgICAgIC8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLworMjoJLmJ5dGUgMHhlOQkJCS8qIG5lYXIganVtcCB3aXRoIDMyYml0IGltbWVkaWF0ZSAqLwogCS5sb25nIFxhbHQtMWIgLyogb2Zmc2V0ICovICAgLyogb3IgYWx0ZXJuYXRpdmVseSB0byBhbHQgKi8KIAkucHJldmlvdXMKIAkuc2VjdGlvbiAuYWx0aW5zdHJ1Y3Rpb25zLCJhIgogCS5hbGlnbiA4CiAJLnF1YWQgIDBiCiAJLnF1YWQgIDJiCi0JLmJ5dGUgIFxmZWF0dXJlCQkgICAgIC8qIHdoZW4gZmVhdHVyZSBpcyBzZXQgKi8KKwkuYnl0ZSAgXGZlYXR1cmUJCQkvKiB3aGVuIGZlYXR1cmUgaXMgc2V0ICovCiAJLmJ5dGUgIDUKIAkuYnl0ZSAgNQogCS5wcmV2aW91cwogCS5lbmRtCiAKLS8qIFN0YW5kYXJkIGNvcHlfdG9fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCQorCS5tYWNybyBBTElHTl9ERVNUSU5BVElPTgorI2lmZGVmIEZJWF9BTElHTk1FTlQKKwkvKiBjaGVjayBmb3IgYmFkIGFsaWdubWVudCBvZiBkZXN0aW5hdGlvbiAqLworCW1vdmwgJWVkaSwlZWN4CisJYW5kbCAkNywlZWN4CisJanogMTAyZgkJCQkvKiBhbHJlYWR5IGFsaWduZWQgKi8KKwlzdWJsICQ4LCVlY3gKKwluZWdsICVlY3gKKwlzdWJsICVlY3gsJWVkeAorMTAwOgltb3ZiICglcnNpKSwlYWwKKzEwMToJbW92YiAlYWwsKCVyZGkpCisJaW5jcSAlcnNpCisJaW5jcSAlcmRpCisJZGVjbCAlZWN4CisJam56IDEwMGIKKzEwMjoKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMTAzOglhZGRsICVyOGQsJWVkeAkJCS8qIGVjeCBpcyB6ZXJvcmVzdCBhbHNvICovCisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cworCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkuYWxpZ24gOAorCS5xdWFkIDEwMGIsMTAzYgorCS5xdWFkIDEwMWIsMTAzYgorCS5wcmV2aW91cworI2VuZGlmCisJLmVuZG0KKworLyogU3RhbmRhcmQgY29weV90b191c2VyIHdpdGggc2VnbWVudCBsaW1pdCBjaGVja2luZyAqLwogRU5UUlkoY29weV90b191c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyZGksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF90b191c2VyCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXJheCksJXJjeAorCWpjIGJhZF90b191c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKIAlqYWUgYmFkX3RvX3VzZXIKLQl4b3JsICVlYXgsJWVheAkvKiBjbGVhciB6ZXJvIGZsYWcgKi8KIAlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZwogCUNGSV9FTkRQUk9DCiAKLUVOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQotCUNGSV9TVEFSVFBST0MKLQltb3ZsICQxLCVlY3gJLyogc2V0IHplcm8gZmxhZyAqLwotCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCi0JQ0ZJX0VORFBST0MKLQotRU5UUlkoX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYykKLQlDRklfU1RBUlRQUk9DCi0JeG9ybCAlZWN4LCVlY3gJLyogY2xlYXIgemVybyBmbGFnICovCi0JQUxURVJOQVRJVkVfSlVNUCBYODZfRkVBVFVSRV9SRVBfR09PRCxjb3B5X3VzZXJfZ2VuZXJpY191bnJvbGxlZCxjb3B5X3VzZXJfZ2VuZXJpY19zdHJpbmcKLQlDRklfRU5EUFJPQwotCi0vKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8JCisvKiBTdGFuZGFyZCBjb3B5X2Zyb21fdXNlciB3aXRoIHNlZ21lbnQgbGltaXQgY2hlY2tpbmcgKi8KIEVOVFJZKGNvcHlfZnJvbV91c2VyKQogCUNGSV9TVEFSVFBST0MKIAlHRVRfVEhSRUFEX0lORk8oJXJheCkKIAltb3ZxICVyc2ksJXJjeAogCWFkZHEgJXJkeCwlcmN4Ci0JamMgIGJhZF9mcm9tX3VzZXIKLQljbXBxIHRocmVhZGluZm9fYWRkcl9saW1pdCglcmF4KSwlcmN4Ci0JamFlICBiYWRfZnJvbV91c2VyCi0JbW92bCAkMSwlZWN4CS8qIHNldCB6ZXJvIGZsYWcgKi8KKwlqYyBiYWRfZnJvbV91c2VyCisJY21wcSBUSV9hZGRyX2xpbWl0KCVyYXgpLCVyY3gKKwlqYWUgYmFkX2Zyb21fdXNlcgogCUFMVEVSTkFUSVZFX0pVTVAgWDg2X0ZFQVRVUkVfUkVQX0dPT0QsY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQsY29weV91c2VyX2dlbmVyaWNfc3RyaW5nCiAJQ0ZJX0VORFBST0MKIEVORFBST0MoY29weV9mcm9tX3VzZXIpCi0JCisKK0VOVFJZKGNvcHlfdXNlcl9nZW5lcmljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljKQorCitFTlRSWShfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljKQorCUNGSV9TVEFSVFBST0MKKwlBTFRFUk5BVElWRV9KVU1QIFg4Nl9GRUFUVVJFX1JFUF9HT09ELGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkLGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZworCUNGSV9FTkRQUk9DCitFTkRQUk9DKF9fY29weV9mcm9tX3VzZXJfaW5hdG9taWMpCisKIAkuc2VjdGlvbiAuZml4dXAsImF4IgogCS8qIG11c3QgemVybyBkZXN0ICovCitFTlRSWShiYWRfZnJvbV91c2VyKQogYmFkX2Zyb21fdXNlcjoKIAlDRklfU1RBUlRQUk9DCiAJbW92bCAlZWR4LCVlY3gKQEAgLTgxLDI3NCArMTExLDE1OCBAQAogCXJlcAogCXN0b3NiCiBiYWRfdG9fdXNlcjoKLQltb3ZsCSVlZHgsJWVheAorCW1vdmwgJWVkeCwlZWF4CiAJcmV0CiAJQ0ZJX0VORFBST0MKLUVORChiYWRfZnJvbV91c2VyKQorRU5EUFJPQyhiYWRfZnJvbV91c2VyKQogCS5wcmV2aW91cwotCQotCQkKKwogLyoKICAqIGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkIC0gbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcuCi0gKiBUaGlzIHZlcnNpb24gaXMgZm9yIENQVXMgbGlrZSBQNCB0aGF0IGRvbid0IGhhdmUgZWZmaWNpZW50IG1pY3JvIGNvZGUgZm9yIHJlcCBtb3ZzcQotICogCQotICogSW5wdXQ6CQorICogVGhpcyB2ZXJzaW9uIGlzIGZvciBDUFVzIGxpa2UgUDQgdGhhdCBkb24ndCBoYXZlIGVmZmljaWVudCBtaWNybworICogY29kZSBmb3IgcmVwIG1vdnNxCisgKgorICogSW5wdXQ6CiAgKiByZGkgZGVzdGluYXRpb24KICAqIHJzaSBzb3VyY2UKICAqIHJkeCBjb3VudAotICogZWN4IHplcm8gZmxhZyAtLSBpZiB0cnVlIHplcm8gZGVzdGluYXRpb24gb24gZXJyb3IKICAqCi0gKiBPdXRwdXQ6CQkKLSAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWwuCisgKiBPdXRwdXQ6CisgKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsbC4KICAqLwogRU5UUlkoY29weV91c2VyX2dlbmVyaWNfdW5yb2xsZWQpCiAJQ0ZJX1NUQVJUUFJPQwotCXB1c2hxICVyYngKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJieCwgMAotCXB1c2hxICVyY3gKLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJjeCwgMAotCXhvcmwgJWVheCwlZWF4CQkvKnplcm8gZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlciAqLwotCi0jaWZkZWYgRklYX0FMSUdOTUVOVAotCS8qIGNoZWNrIGZvciBiYWQgYWxpZ25tZW50IG9mIGRlc3RpbmF0aW9uICovCi0JbW92bCAlZWRpLCVlY3gKLQlhbmRsICQ3LCVlY3gKLQlqbnogIC5MYmFkX2FsaWdubWVudAotLkxhZnRlcl9iYWRfYWxpZ25tZW50OgotI2VuZGlmCi0KLQltb3ZxICVyZHgsJXJjeAotCi0JbW92bCAkNjQsJWVieAotCXNocnEgJDYsJXJkeAotCWRlY3EgJXJkeAotCWpzICAgLkxoYW5kbGVfdGFpbAotCi0JLnAyYWxpZ24gNAotLkxsb29wOgotLkxzMToJbW92cSAoJXJzaSksJXIxMQotLkxzMjoJbW92cSAxKjgoJXJzaSksJXI4Ci0uTHMzOgltb3ZxIDIqOCglcnNpKSwlcjkKLS5MczQ6CW1vdnEgMyo4KCVyc2kpLCVyMTAKLS5MZDE6CW1vdnEgJXIxMSwoJXJkaSkKLS5MZDI6CW1vdnEgJXI4LDEqOCglcmRpKQotLkxkMzoJbW92cSAlcjksMio4KCVyZGkpCi0uTGQ0Ogltb3ZxICVyMTAsMyo4KCVyZGkpCi0KLS5MczU6CW1vdnEgNCo4KCVyc2kpLCVyMTEKLS5MczY6CW1vdnEgNSo4KCVyc2kpLCVyOAotLkxzNzoJbW92cSA2KjgoJXJzaSksJXI5Ci0uTHM4Ogltb3ZxIDcqOCglcnNpKSwlcjEwCi0uTGQ1Ogltb3ZxICVyMTEsNCo4KCVyZGkpCi0uTGQ2Ogltb3ZxICVyOCw1KjgoJXJkaSkKLS5MZDc6CW1vdnEgJXI5LDYqOCglcmRpKQotLkxkODoJbW92cSAlcjEwLDcqOCglcmRpKQotCi0JZGVjcSAlcmR4Ci0KKwljbXBsICQ4LCVlZHgKKwlqYiAyMGYJCS8qIGxlc3MgdGhlbiA4IGJ5dGVzLCBnbyB0byBieXRlIGNvcHkgbG9vcCAqLworCUFMSUdOX0RFU1RJTkFUSU9OCisJbW92bCAlZWR4LCVlY3gKKwlhbmRsICQ2MywlZWR4CisJc2hybCAkNiwlZWN4CisJanogMTdmCisxOgltb3ZxICglcnNpKSwlcjgKKzI6CW1vdnEgMSo4KCVyc2kpLCVyOQorMzoJbW92cSAyKjgoJXJzaSksJXIxMAorNDoJbW92cSAzKjgoJXJzaSksJXIxMQorNToJbW92cSAlcjgsKCVyZGkpCis2Ogltb3ZxICVyOSwxKjgoJXJkaSkKKzc6CW1vdnEgJXIxMCwyKjgoJXJkaSkKKzg6CW1vdnEgJXIxMSwzKjgoJXJkaSkKKzk6CW1vdnEgNCo4KCVyc2kpLCVyOAorMTA6CW1vdnEgNSo4KCVyc2kpLCVyOQorMTE6CW1vdnEgNio4KCVyc2kpLCVyMTAKKzEyOgltb3ZxIDcqOCglcnNpKSwlcjExCisxMzoJbW92cSAlcjgsNCo4KCVyZGkpCisxNDoJbW92cSAlcjksNSo4KCVyZGkpCisxNToJbW92cSAlcjEwLDYqOCglcmRpKQorMTY6CW1vdnEgJXIxMSw3KjgoJXJkaSkKIAlsZWFxIDY0KCVyc2kpLCVyc2kKIAlsZWFxIDY0KCVyZGkpLCVyZGkKLQotCWpucyAgLkxsb29wCi0KLQkucDJhbGlnbiA0Ci0uTGhhbmRsZV90YWlsOgotCW1vdmwgJWVjeCwlZWR4Ci0JYW5kbCAkNjMsJWVjeAorCWRlY2wgJWVjeAorCWpueiAxYgorMTc6CW1vdmwgJWVkeCwlZWN4CisJYW5kbCAkNywlZWR4CiAJc2hybCAkMywlZWN4Ci0JanogICAuTGhhbmRsZV83Ci0JbW92bCAkOCwlZWJ4Ci0JLnAyYWxpZ24gNAotLkxsb29wXzg6Ci0uTHM5Ogltb3ZxICglcnNpKSwlcjgKLS5MZDk6CW1vdnEgJXI4LCglcmRpKQotCWRlY2wgJWVjeAotCWxlYXEgOCglcmRpKSwlcmRpCisJanogMjBmCisxODoJbW92cSAoJXJzaSksJXI4CisxOToJbW92cSAlcjgsKCVyZGkpCiAJbGVhcSA4KCVyc2kpLCVyc2kKLQlqbnogLkxsb29wXzgKLQotLkxoYW5kbGVfNzoKKwlsZWFxIDgoJXJkaSksJXJkaQorCWRlY2wgJWVjeAorCWpueiAxOGIKKzIwOglhbmRsICVlZHgsJWVkeAorCWp6IDIzZgogCW1vdmwgJWVkeCwlZWN4Ci0JYW5kbCAkNywlZWN4Ci0JanogICAuTGVuZGUKLQkucDJhbGlnbiA0Ci0uTGxvb3BfMToKLS5MczEwOgltb3ZiICglcnNpKSwlYmwKLS5MZDEwOgltb3ZiICVibCwoJXJkaSkKLQlpbmNxICVyZGkKKzIxOgltb3ZiICglcnNpKSwlYWwKKzIyOgltb3ZiICVhbCwoJXJkaSkKIAlpbmNxICVyc2kKKwlpbmNxICVyZGkKIAlkZWNsICVlY3gKLQlqbnogLkxsb29wXzEKLQotCUNGSV9SRU1FTUJFUl9TVEFURQotLkxlbmRlOgotCXBvcHEgJXJjeAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJjeAotCXBvcHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJieAorCWpueiAyMWIKKzIzOgl4b3IgJWVheCwlZWF4CiAJcmV0Ci0JQ0ZJX1JFU1RPUkVfU1RBVEUKIAotI2lmZGVmIEZJWF9BTElHTk1FTlQKLQkvKiBhbGlnbiBkZXN0aW5hdGlvbiAqLwotCS5wMmFsaWduIDQKLS5MYmFkX2FsaWdubWVudDoKLQltb3ZsICQ4LCVyOWQKLQlzdWJsICVlY3gsJXI5ZAotCW1vdmwgJXI5ZCwlZWN4Ci0JY21wcSAlcjksJXJkeAotCWp6ICAgLkxoYW5kbGVfNwotCWpzICAgLkxoYW5kbGVfNwotLkxhbGlnbl8xOgotLkxzMTE6CW1vdmIgKCVyc2kpLCVibAotLkxkMTE6CW1vdmIgJWJsLCglcmRpKQotCWluY3EgJXJzaQotCWluY3EgJXJkaQotCWRlY2wgJWVjeAotCWpueiAuTGFsaWduXzEKLQlzdWJxICVyOSwlcmR4Ci0Jam1wIC5MYWZ0ZXJfYmFkX2FsaWdubWVudAotI2VuZGlmCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzMwOglzaGxsICQ2LCVlY3gKKwlhZGRsICVlY3gsJWVkeAorCWptcCA2MGYKKzQwOglsZWEgKCVyZHgsJXJjeCw4KSwlcmR4CisJam1wIDYwZgorNTA6CW1vdmwgJWVjeCwlZWR4Cis2MDoJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbCAvKiBlY3ggaXMgemVyb3Jlc3QgYWxzbyAqLworCS5wcmV2aW91cwogCi0JLyogdGFibGUgc29ydGVkIGJ5IGV4Y2VwdGlvbiBhZGRyZXNzICovCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKIAkuYWxpZ24gOAotCS5xdWFkIC5MczEsLkxzMWUKLQkucXVhZCAuTHMyLC5MczJlCi0JLnF1YWQgLkxzMywuTHMzZQotCS5xdWFkIC5MczQsLkxzNGUKLQkucXVhZCAuTGQxLC5MczFlCi0JLnF1YWQgLkxkMiwuTHMyZQotCS5xdWFkIC5MZDMsLkxzM2UKLQkucXVhZCAuTGQ0LC5MczRlCi0JLnF1YWQgLkxzNSwuTHM1ZQotCS5xdWFkIC5MczYsLkxzNmUKLQkucXVhZCAuTHM3LC5MczdlCi0JLnF1YWQgLkxzOCwuTHM4ZQotCS5xdWFkIC5MZDUsLkxzNWUKLQkucXVhZCAuTGQ2LC5MczZlCi0JLnF1YWQgLkxkNywuTHM3ZQotCS5xdWFkIC5MZDgsLkxzOGUKLQkucXVhZCAuTHM5LC5MZV9xdWFkCi0JLnF1YWQgLkxkOSwuTGVfcXVhZAotCS5xdWFkIC5MczEwLC5MZV9ieXRlCi0JLnF1YWQgLkxkMTAsLkxlX2J5dGUKLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLnF1YWQgLkxzMTEsLkx6ZXJvX3Jlc3QKLQkucXVhZCAuTGQxMSwuTHplcm9fcmVzdAotI2VuZGlmCi0JLnF1YWQgLkxlNSwuTGVfemVybworCS5xdWFkIDFiLDMwYgorCS5xdWFkIDJiLDMwYgorCS5xdWFkIDNiLDMwYgorCS5xdWFkIDRiLDMwYgorCS5xdWFkIDViLDMwYgorCS5xdWFkIDZiLDMwYgorCS5xdWFkIDdiLDMwYgorCS5xdWFkIDhiLDMwYgorCS5xdWFkIDliLDMwYgorCS5xdWFkIDEwYiwzMGIKKwkucXVhZCAxMWIsMzBiCisJLnF1YWQgMTJiLDMwYgorCS5xdWFkIDEzYiwzMGIKKwkucXVhZCAxNGIsMzBiCisJLnF1YWQgMTViLDMwYgorCS5xdWFkIDE2YiwzMGIKKwkucXVhZCAxOGIsNDBiCisJLnF1YWQgMTliLDQwYgorCS5xdWFkIDIxYiw1MGIKKwkucXVhZCAyMmIsNTBiCiAJLnByZXZpb3VzCi0KLQkvKiBjb21wdXRlIDY0LW9mZnNldCBmb3IgbWFpbiBsb29wLiA4IGJ5dGVzIGFjY3VyYWN5IHdpdGggZXJyb3Igb24gdGhlCi0JICAgcGVzc2ltaXN0aWMgc2lkZS4gdGhpcyBpcyBncm9zcy4gaXQgd291bGQgYmUgYmV0dGVyIHRvIGZpeCB0aGUKLQkgICBpbnRlcmZhY2UuICovCi0JLyogZWF4OiB6ZXJvLCBlYng6IDY0ICovCi0uTHMxZTogCWFkZGwgJDgsJWVheAotLkxzMmU6IAlhZGRsICQ4LCVlYXgKLS5MczNlOiAJYWRkbCAkOCwlZWF4Ci0uTHM0ZTogCWFkZGwgJDgsJWVheAotLkxzNWU6IAlhZGRsICQ4LCVlYXgKLS5MczZlOiAJYWRkbCAkOCwlZWF4Ci0uTHM3ZTogCWFkZGwgJDgsJWVheAotLkxzOGU6IAlhZGRsICQ4LCVlYXgKLQlhZGRxICVyYngsJXJkaQkvKiArNjQgKi8KLQlzdWJxICVyYXgsJXJkaSAgLyogY29ycmVjdCBkZXN0aW5hdGlvbiB3aXRoIGNvbXB1dGVkIG9mZnNldCAqLwotCi0Jc2hscSAkNiwlcmR4CS8qIGxvb3AgY291bnRlciAqIDY0IChzdHJpZGUgbGVuZ3RoKSAqLwotCWFkZHEgJXJheCwlcmR4CS8qIGFkZCBvZmZzZXQgdG8gbG9vcGNudCAqLwotCWFuZGwgJDYzLCVlY3gJLyogcmVtYWluaW5nIGJ5dGVzICovCi0JYWRkcSAlcmN4LCVyZHgJLyogYWRkIHRoZW0gKi8KLQlqbXAgLkx6ZXJvX3Jlc3QKLQotCS8qIGV4Y2VwdGlvbiBvbiBxdWFkIHdvcmQgbG9vcCBpbiB0YWlsIGhhbmRsaW5nICovCi0JLyogZWN4Oglsb29wY250LzgsICVlZHg6IGxlbmd0aCwgcmRpOiBjb3JyZWN0ICovCi0uTGVfcXVhZDoKLQlzaGxsICQzLCVlY3gKLQlhbmRsICQ3LCVlZHgKLQlhZGRsICVlY3gsJWVkeAotCS8qIGVkeDogYnl0ZXMgdG8gemVybywgcmRpOiBkZXN0LCBlYXg6emVybyAqLwotLkx6ZXJvX3Jlc3Q6Ci0JY21wbCAkMCwoJXJzcCkKLQlqeiAgIC5MZV96ZXJvCi0JbW92cSAlcmR4LCVyY3gKLS5MZV9ieXRlOgotCXhvcmwgJWVheCwlZWF4Ci0uTGU1OglyZXAKLQlzdG9zYgotCS8qIHdoZW4gdGhlcmUgaXMgYW5vdGhlciBleGNlcHRpb24gd2hpbGUgemVyb2luZyB0aGUgcmVzdCBqdXN0IHJldHVybiAqLwotLkxlX3plcm86Ci0JbW92cSAlcmR4LCVyYXgKLQlqbXAgLkxlbmRlCiAJQ0ZJX0VORFBST0MKLUVORFBST0MoY29weV91c2VyX2dlbmVyaWMpCitFTkRQUk9DKGNvcHlfdXNlcl9nZW5lcmljX3Vucm9sbGVkKQogCi0KLQkvKiBTb21lIENQVXMgcnVuIGZhc3RlciB1c2luZyB0aGUgc3RyaW5nIGNvcHkgaW5zdHJ1Y3Rpb25zLgotCSAgIFRoaXMgaXMgYWxzbyBhIGxvdCBzaW1wbGVyLiBVc2UgdGhlbSB3aGVuIHBvc3NpYmxlLgotCSAgIFBhdGNoIGluIGptcHMgdG8gdGhpcyBjb2RlIGluc3RlYWQgb2YgY29weWluZyBpdCBmdWxseQotCSAgIHRvIGF2b2lkIHVud2FudGVkIGFsaWFzaW5nIGluIHRoZSBleGNlcHRpb24gdGFibGVzLiAqLwotCi0gLyogcmRpCWRlc3RpbmF0aW9uCi0gICogcnNpIHNvdXJjZQotICAqIHJkeCBjb3VudAotICAqIGVjeCB6ZXJvIGZsYWcKLSAgKgotICAqIE91dHB1dDoKLSAgKiBlYXggdW5jb3BpZWQgYnl0ZXMgb3IgMCBpZiBzdWNjZXNzZnVsbC4KLSAgKgotICAqIE9ubHkgNEdCIG9mIGNvcHkgaXMgc3VwcG9ydGVkLiBUaGlzIHNob3VsZG4ndCBiZSBhIHByb2JsZW0KLSAgKiBiZWNhdXNlIHRoZSBrZXJuZWwgbm9ybWFsbHkgb25seSB3cml0ZXMgZnJvbS90byBwYWdlIHNpemVkIGNodW5rcwotICAqIGV2ZW4gaWYgdXNlciBzcGFjZSBwYXNzZWQgYSBsb25nZXIgYnVmZmVyLgotICAqIEFuZCBtb3JlIHdvdWxkIGJlIGRhbmdlcm91cyBiZWNhdXNlIGJvdGggSW50ZWwgYW5kIEFNRCBoYXZlCi0gICogZXJyYXRhIHdpdGggcmVwIG1vdnNxID4gNEdCLiBJZiBzb21lb25lIGZlZWxzIHRoZSBuZWVkIHRvIGZpeAotICAqIHRoaXMgcGxlYXNlIGNvbnNpZGVyIHRoaXMuCi0gICovCisvKiBTb21lIENQVXMgcnVuIGZhc3RlciB1c2luZyB0aGUgc3RyaW5nIGNvcHkgaW5zdHJ1Y3Rpb25zLgorICogVGhpcyBpcyBhbHNvIGEgbG90IHNpbXBsZXIuIFVzZSB0aGVtIHdoZW4gcG9zc2libGUuCisgKgorICogT25seSA0R0Igb2YgY29weSBpcyBzdXBwb3J0ZWQuIFRoaXMgc2hvdWxkbid0IGJlIGEgcHJvYmxlbQorICogYmVjYXVzZSB0aGUga2VybmVsIG5vcm1hbGx5IG9ubHkgd3JpdGVzIGZyb20vdG8gcGFnZSBzaXplZCBjaHVua3MKKyAqIGV2ZW4gaWYgdXNlciBzcGFjZSBwYXNzZWQgYSBsb25nZXIgYnVmZmVyLgorICogQW5kIG1vcmUgd291bGQgYmUgZGFuZ2Vyb3VzIGJlY2F1c2UgYm90aCBJbnRlbCBhbmQgQU1EIGhhdmUKKyAqIGVycmF0YSB3aXRoIHJlcCBtb3ZzcSA+IDRHQi4gSWYgc29tZW9uZSBmZWVscyB0aGUgbmVlZCB0byBmaXgKKyAqIHRoaXMgcGxlYXNlIGNvbnNpZGVyIHRoaXMuCisgKgorICogSW5wdXQ6CisgKiByZGkgZGVzdGluYXRpb24KKyAqIHJzaSBzb3VyY2UKKyAqIHJkeCBjb3VudAorICoKKyAqIE91dHB1dDoKKyAqIGVheCB1bmNvcGllZCBieXRlcyBvciAwIGlmIHN1Y2Nlc3NmdWwuCisgKi8KIEVOVFJZKGNvcHlfdXNlcl9nZW5lcmljX3N0cmluZykKIAlDRklfU1RBUlRQUk9DCi0JbW92bCAlZWN4LCVyOGQJCS8qIHNhdmUgemVybyBmbGFnICovCisJYW5kbCAlZWR4LCVlZHgKKwlqeiA0ZgorCWNtcGwgJDgsJWVkeAorCWpiIDJmCQkvKiBsZXNzIHRoYW4gOCBieXRlcywgZ28gdG8gYnl0ZSBjb3B5IGxvb3AgKi8KKwlBTElHTl9ERVNUSU5BVElPTgogCW1vdmwgJWVkeCwlZWN4CiAJc2hybCAkMywlZWN4Ci0JYW5kbCAkNywlZWR4CQotCWp6ICAgMTBmCi0xOglyZXAgCi0JbW92c3EgCi0JbW92bCAlZWR4LCVlY3gKLTI6CXJlcAotCW1vdnNiCi05Ogltb3ZsICVlY3gsJWVheAotCXJldAotCi0JLyogbXVsdGlwbGUgb2YgOCBieXRlICovCi0xMDoJcmVwCisJYW5kbCAkNywlZWR4CisxOglyZXAKIAltb3ZzcQotCXhvciAlZWF4LCVlYXgKKzI6CW1vdmwgJWVkeCwlZWN4CiszOglyZXAKKwltb3ZzYgorNDoJeG9ybCAlZWF4LCVlYXgKIAlyZXQKIAotCS8qIGV4Y2VwdGlvbiBoYW5kbGluZyAqLwotMzogICAgICBsZWEgKCVyZHgsJXJjeCw4KSwlcmF4CS8qIGV4Y2VwdGlvbiBvbiBxdWFkIGxvb3AgKi8KLQlqbXAgNmYKLTU6CW1vdmwgJWVjeCwlZWF4CQkvKiBleGNlcHRpb24gb24gYnl0ZSBsb29wICovCi0JLyogZWF4OiBsZWZ0IG92ZXIgYnl0ZXMgKi8KLTY6CXRlc3RsICVyOGQsJXI4ZAkJLyogemVybyBmbGFnIHNldD8gKi8KLQlqeiA3ZgotCW1vdmwgJWVheCwlZWN4CQkvKiBpbml0aWFsaXplIHg4NiBsb29wIGNvdW50ZXIgKi8KLQlwdXNoICVyYXgKLQl4b3JsICVlYXgsJWVheAotODoJcmVwCi0Jc3Rvc2IgCQkJLyogemVybyB0aGUgcmVzdCAqLwotMTE6CXBvcCAlcmF4Ci03OglyZXQKLQlDRklfRU5EUFJPQwotRU5EKGNvcHlfdXNlcl9nZW5lcmljX2MpCisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzExOglsZWEgKCVyZHgsJXJjeCw4KSwlcmN4CisxMjoJbW92bCAlZWN4LCVlZHgJCS8qIGVjeCBpcyB6ZXJvcmVzdCBhbHNvICovCisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cwogCiAJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkucXVhZCAxYiwzYgotCS5xdWFkIDJiLDViCi0JLnF1YWQgOGIsMTFiCi0JLnF1YWQgMTBiLDNiCisJLmFsaWduIDgKKwkucXVhZCAxYiwxMWIKKwkucXVhZCAzYiwxMmIKIAkucHJldmlvdXMKKwlDRklfRU5EUFJPQworRU5EUFJPQyhjb3B5X3VzZXJfZ2VuZXJpY19zdHJpbmcpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvY29weV91c2VyX25vY2FjaGVfNjQuUyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCmluZGV4IDUxOTY3NjIuLjQwZTBlMzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCisrKyBiL2FyY2gveDg2L2xpYi9jb3B5X3VzZXJfbm9jYWNoZV82NC5TCkBAIC0xLDQgKzEsNiBAQAotLyogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorLyoKKyAqIENvcHlyaWdodCAyMDA4IFZpdGFseSBNYXlhdHNraWtoIDx2bWF5YXRza0ByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IDIwMDIgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgogICogU3ViamVjdCB0byB0aGUgR05VIFB1YmxpYyBMaWNlbnNlIHYyLgogICoKICAqIEZ1bmN0aW9ucyB0byBjb3B5IGZyb20gYW5kIHRvIHVzZXIgc3BhY2UuCkBAIC0xMiwyMDcgKzE0LDEyNSBAQAogI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+CiAjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0jaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KIAotLyoKLSAqIGNvcHlfdXNlcl9ub2NhY2hlIC0gVW5jYWNoZWQgbWVtb3J5IGNvcHkgd2l0aCBleGNlcHRpb24gaGFuZGxpbmcKLSAqIFRoaXMgd2lsbCBmb3JjZSBkZXN0aW5hdGlvbi9zb3VyY2Ugb3V0IG9mIGNhY2hlIGZvciBtb3JlIHBlcmZvcm1hbmNlLgotICoKLSAqIElucHV0OgotICogcmRpIGRlc3RpbmF0aW9uCi0gKiByc2kgc291cmNlCi0gKiByZHggY291bnQKLSAqIHJjeCB6ZXJvIGZsYWcJd2hlbiAxIHplcm8gb24gZXhjZXB0aW9uCi0gKgotICogT3V0cHV0OgotICogZWF4IHVuY29waWVkIGJ5dGVzIG9yIDAgaWYgc3VjY2Vzc2Z1bC4KLSAqLwotRU5UUlkoX19jb3B5X3VzZXJfbm9jYWNoZSkKLQlDRklfU1RBUlRQUk9DCi0JcHVzaHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA4Ci0JQ0ZJX1JFTF9PRkZTRVQgcmJ4LCAwCi0JcHVzaHEgJXJjeAkJLyogc2F2ZSB6ZXJvIGZsYWcgKi8KLQlDRklfQURKVVNUX0NGQV9PRkZTRVQgOAotCUNGSV9SRUxfT0ZGU0VUIHJjeCwgMAotCi0JeG9ybCAlZWF4LCVlYXgJCS8qIHplcm8gZm9yIHRoZSBleGNlcHRpb24gaGFuZGxlciAqLwotCisJLm1hY3JvIEFMSUdOX0RFU1RJTkFUSU9OCiAjaWZkZWYgRklYX0FMSUdOTUVOVAogCS8qIGNoZWNrIGZvciBiYWQgYWxpZ25tZW50IG9mIGRlc3RpbmF0aW9uICovCiAJbW92bCAlZWRpLCVlY3gKIAlhbmRsICQ3LCVlY3gKLQlqbnogIC5MYmFkX2FsaWdubWVudAotLkxhZnRlcl9iYWRfYWxpZ25tZW50OgotI2VuZGlmCi0KLQltb3ZxICVyZHgsJXJjeAotCi0JbW92bCAkNjQsJWVieAotCXNocnEgJDYsJXJkeAotCWRlY3EgJXJkeAotCWpzICAgLkxoYW5kbGVfdGFpbAotCi0JLnAyYWxpZ24gNAotLkxsb29wOgotLkxzMToJbW92cSAoJXJzaSksJXIxMQotLkxzMjoJbW92cSAxKjgoJXJzaSksJXI4Ci0uTHMzOgltb3ZxIDIqOCglcnNpKSwlcjkKLS5MczQ6CW1vdnEgMyo4KCVyc2kpLCVyMTAKLS5MZDE6CW1vdm50aSAlcjExLCglcmRpKQotLkxkMjoJbW92bnRpICVyOCwxKjgoJXJkaSkKLS5MZDM6CW1vdm50aSAlcjksMio4KCVyZGkpCi0uTGQ0Ogltb3ZudGkgJXIxMCwzKjgoJXJkaSkKLQotLkxzNToJbW92cSA0KjgoJXJzaSksJXIxMQotLkxzNjoJbW92cSA1KjgoJXJzaSksJXI4Ci0uTHM3Ogltb3ZxIDYqOCglcnNpKSwlcjkKLS5Mczg6CW1vdnEgNyo4KCVyc2kpLCVyMTAKLS5MZDU6CW1vdm50aSAlcjExLDQqOCglcmRpKQotLkxkNjoJbW92bnRpICVyOCw1KjgoJXJkaSkKLS5MZDc6CW1vdm50aSAlcjksNio4KCVyZGkpCi0uTGQ4Ogltb3ZudGkgJXIxMCw3KjgoJXJkaSkKLQotCWRlYyAgJXJkeAotCi0JbGVhcSA2NCglcnNpKSwlcnNpCi0JbGVhcSA2NCglcmRpKSwlcmRpCi0KLQlqbnMgIC5MbG9vcAotCi0JLnAyYWxpZ24gNAotLkxoYW5kbGVfdGFpbDoKLQltb3ZsICVlY3gsJWVkeAotCWFuZGwgJDYzLCVlY3gKLQlzaHJsICQzLCVlY3gKLQlqeiAgIC5MaGFuZGxlXzcKLQltb3ZsICQ4LCVlYngKLQkucDJhbGlnbiA0Ci0uTGxvb3BfODoKLS5Mczk6CW1vdnEgKCVyc2kpLCVyOAotLkxkOToJbW92bnRpICVyOCwoJXJkaSkKLQlkZWNsICVlY3gKLQlsZWFxIDgoJXJkaSksJXJkaQotCWxlYXEgOCglcnNpKSwlcnNpCi0Jam56IC5MbG9vcF84Ci0KLS5MaGFuZGxlXzc6Ci0JbW92bCAlZWR4LCVlY3gKLQlhbmRsICQ3LCVlY3gKLQlqeiAgIC5MZW5kZQotCS5wMmFsaWduIDQKLS5MbG9vcF8xOgotLkxzMTA6CW1vdmIgKCVyc2kpLCVibAotLkxkMTA6CW1vdmIgJWJsLCglcmRpKQotCWluY3EgJXJkaQotCWluY3EgJXJzaQotCWRlY2wgJWVjeAotCWpueiAuTGxvb3BfMQotCi0JQ0ZJX1JFTUVNQkVSX1NUQVRFCi0uTGVuZGU6Ci0JcG9wcSAlcmN4Ci0JQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC04Ci0JQ0ZJX1JFU1RPUkUgJXJjeAotCXBvcHEgJXJieAotCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCAtOAotCUNGSV9SRVNUT1JFIHJieAotCXNmZW5jZQotCXJldAotCUNGSV9SRVNUT1JFX1NUQVRFCi0KLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLyogYWxpZ24gZGVzdGluYXRpb24gKi8KLQkucDJhbGlnbiA0Ci0uTGJhZF9hbGlnbm1lbnQ6Ci0JbW92bCAkOCwlcjlkCi0Jc3VibCAlZWN4LCVyOWQKLQltb3ZsICVyOWQsJWVjeAotCWNtcHEgJXI5LCVyZHgKLQlqeiAgIC5MaGFuZGxlXzcKLQlqcyAgIC5MaGFuZGxlXzcKLS5MYWxpZ25fMToKLS5MczExOgltb3ZiICglcnNpKSwlYmwKLS5MZDExOgltb3ZiICVibCwoJXJkaSkKKwlqeiAxMDJmCQkJCS8qIGFscmVhZHkgYWxpZ25lZCAqLworCXN1YmwgJDgsJWVjeAorCW5lZ2wgJWVjeAorCXN1YmwgJWVjeCwlZWR4CisxMDA6CW1vdmIgKCVyc2kpLCVhbAorMTAxOgltb3ZiICVhbCwoJXJkaSkKIAlpbmNxICVyc2kKIAlpbmNxICVyZGkKIAlkZWNsICVlY3gKLQlqbnogLkxhbGlnbl8xCi0Jc3VicSAlcjksJXJkeAotCWptcCAuTGFmdGVyX2JhZF9hbGlnbm1lbnQKLSNlbmRpZgotCi0JLyogdGFibGUgc29ydGVkIGJ5IGV4Y2VwdGlvbiBhZGRyZXNzICovCi0JLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkuYWxpZ24gOAotCS5xdWFkIC5MczEsLkxzMWUKLQkucXVhZCAuTHMyLC5MczJlCi0JLnF1YWQgLkxzMywuTHMzZQotCS5xdWFkIC5MczQsLkxzNGUKLQkucXVhZCAuTGQxLC5MczFlCi0JLnF1YWQgLkxkMiwuTHMyZQotCS5xdWFkIC5MZDMsLkxzM2UKLQkucXVhZCAuTGQ0LC5MczRlCi0JLnF1YWQgLkxzNSwuTHM1ZQotCS5xdWFkIC5MczYsLkxzNmUKLQkucXVhZCAuTHM3LC5MczdlCi0JLnF1YWQgLkxzOCwuTHM4ZQotCS5xdWFkIC5MZDUsLkxzNWUKLQkucXVhZCAuTGQ2LC5MczZlCi0JLnF1YWQgLkxkNywuTHM3ZQotCS5xdWFkIC5MZDgsLkxzOGUKLQkucXVhZCAuTHM5LC5MZV9xdWFkCi0JLnF1YWQgLkxkOSwuTGVfcXVhZAotCS5xdWFkIC5MczEwLC5MZV9ieXRlCi0JLnF1YWQgLkxkMTAsLkxlX2J5dGUKLSNpZmRlZiBGSVhfQUxJR05NRU5UCi0JLnF1YWQgLkxzMTEsLkx6ZXJvX3Jlc3QKLQkucXVhZCAuTGQxMSwuTHplcm9fcmVzdAotI2VuZGlmCi0JLnF1YWQgLkxlNSwuTGVfemVybworCWpueiAxMDBiCisxMDI6CisJLnNlY3Rpb24gLmZpeHVwLCJheCIKKzEwMzoJYWRkbCAlcjhkLCVlZHgJCQkvKiBlY3ggaXMgemVyb3Jlc3QgYWxzbyAqLworCWptcCBjb3B5X3VzZXJfaGFuZGxlX3RhaWwKIAkucHJldmlvdXMKIAotCS8qIGNvbXB1dGUgNjQtb2Zmc2V0IGZvciBtYWluIGxvb3AuIDggYnl0ZXMgYWNjdXJhY3kgd2l0aCBlcnJvciBvbiB0aGUKLQkgICBwZXNzaW1pc3RpYyBzaWRlLiB0aGlzIGlzIGdyb3NzLiBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gZml4IHRoZQotCSAgIGludGVyZmFjZS4gKi8KLQkvKiBlYXg6IHplcm8sIGVieDogNjQgKi8KLS5MczFlOiAJYWRkbCAkOCwlZWF4Ci0uTHMyZTogCWFkZGwgJDgsJWVheAotLkxzM2U6IAlhZGRsICQ4LCVlYXgKLS5MczRlOiAJYWRkbCAkOCwlZWF4Ci0uTHM1ZTogCWFkZGwgJDgsJWVheAotLkxzNmU6IAlhZGRsICQ4LCVlYXgKLS5MczdlOiAJYWRkbCAkOCwlZWF4Ci0uTHM4ZTogCWFkZGwgJDgsJWVheAotCWFkZHEgJXJieCwlcmRpCS8qICs2NCAqLwotCXN1YnEgJXJheCwlcmRpICAvKiBjb3JyZWN0IGRlc3RpbmF0aW9uIHdpdGggY29tcHV0ZWQgb2Zmc2V0ICovCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkuYWxpZ24gOAorCS5xdWFkIDEwMGIsMTAzYgorCS5xdWFkIDEwMWIsMTAzYgorCS5wcmV2aW91cworI2VuZGlmCisJLmVuZG0KIAotCXNobHEgJDYsJXJkeAkvKiBsb29wIGNvdW50ZXIgKiA2NCAoc3RyaWRlIGxlbmd0aCkgKi8KLQlhZGRxICVyYXgsJXJkeAkvKiBhZGQgb2Zmc2V0IHRvIGxvb3BjbnQgKi8KLQlhbmRsICQ2MywlZWN4CS8qIHJlbWFpbmluZyBieXRlcyAqLwotCWFkZHEgJXJjeCwlcmR4CS8qIGFkZCB0aGVtICovCi0Jam1wIC5MemVyb19yZXN0Ci0KLQkvKiBleGNlcHRpb24gb24gcXVhZCB3b3JkIGxvb3AgaW4gdGFpbCBoYW5kbGluZyAqLwotCS8qIGVjeDoJbG9vcGNudC84LCAlZWR4OiBsZW5ndGgsIHJkaTogY29ycmVjdCAqLwotLkxlX3F1YWQ6Ci0Jc2hsbCAkMywlZWN4CisvKgorICogY29weV91c2VyX25vY2FjaGUgLSBVbmNhY2hlZCBtZW1vcnkgY29weSB3aXRoIGV4Y2VwdGlvbiBoYW5kbGluZworICogVGhpcyB3aWxsIGZvcmNlIGRlc3RpbmF0aW9uL3NvdXJjZSBvdXQgb2YgY2FjaGUgZm9yIG1vcmUgcGVyZm9ybWFuY2UuCisgKi8KK0VOVFJZKF9fY29weV91c2VyX25vY2FjaGUpCisJQ0ZJX1NUQVJUUFJPQworCWNtcGwgJDgsJWVkeAorCWpiIDIwZgkJLyogbGVzcyB0aGVuIDggYnl0ZXMsIGdvIHRvIGJ5dGUgY29weSBsb29wICovCisJQUxJR05fREVTVElOQVRJT04KKwltb3ZsICVlZHgsJWVjeAorCWFuZGwgJDYzLCVlZHgKKwlzaHJsICQ2LCVlY3gKKwlqeiAxN2YKKzE6CW1vdnEgKCVyc2kpLCVyOAorMjoJbW92cSAxKjgoJXJzaSksJXI5CiszOgltb3ZxIDIqOCglcnNpKSwlcjEwCis0Ogltb3ZxIDMqOCglcnNpKSwlcjExCis1Ogltb3ZudGkgJXI4LCglcmRpKQorNjoJbW92bnRpICVyOSwxKjgoJXJkaSkKKzc6CW1vdm50aSAlcjEwLDIqOCglcmRpKQorODoJbW92bnRpICVyMTEsMyo4KCVyZGkpCis5Ogltb3ZxIDQqOCglcnNpKSwlcjgKKzEwOgltb3ZxIDUqOCglcnNpKSwlcjkKKzExOgltb3ZxIDYqOCglcnNpKSwlcjEwCisxMjoJbW92cSA3KjgoJXJzaSksJXIxMQorMTM6CW1vdm50aSAlcjgsNCo4KCVyZGkpCisxNDoJbW92bnRpICVyOSw1KjgoJXJkaSkKKzE1Ogltb3ZudGkgJXIxMCw2KjgoJXJkaSkKKzE2Ogltb3ZudGkgJXIxMSw3KjgoJXJkaSkKKwlsZWFxIDY0KCVyc2kpLCVyc2kKKwlsZWFxIDY0KCVyZGkpLCVyZGkKKwlkZWNsICVlY3gKKwlqbnogMWIKKzE3Ogltb3ZsICVlZHgsJWVjeAogCWFuZGwgJDcsJWVkeAorCXNocmwgJDMsJWVjeAorCWp6IDIwZgorMTg6CW1vdnEgKCVyc2kpLCVyOAorMTk6CW1vdm50aSAlcjgsKCVyZGkpCisJbGVhcSA4KCVyc2kpLCVyc2kKKwlsZWFxIDgoJXJkaSksJXJkaQorCWRlY2wgJWVjeAorCWpueiAxOGIKKzIwOglhbmRsICVlZHgsJWVkeAorCWp6IDIzZgorCW1vdmwgJWVkeCwlZWN4CisyMToJbW92YiAoJXJzaSksJWFsCisyMjoJbW92YiAlYWwsKCVyZGkpCisJaW5jcSAlcnNpCisJaW5jcSAlcmRpCisJZGVjbCAlZWN4CisJam56IDIxYgorMjM6CXhvcmwgJWVheCwlZWF4CisJc2ZlbmNlCisJcmV0CisKKwkuc2VjdGlvbiAuZml4dXAsImF4IgorMzA6CXNobGwgJDYsJWVjeAogCWFkZGwgJWVjeCwlZWR4Ci0JLyogZWR4OiBieXRlcyB0byB6ZXJvLCByZGk6IGRlc3QsIGVheDp6ZXJvICovCi0uTHplcm9fcmVzdDoKLQljbXBsICQwLCglcnNwKQkvKiB6ZXJvIGZsYWcgc2V0PyAqLwotCWp6ICAgLkxlX3plcm8KLQltb3ZxICVyZHgsJXJjeAotLkxlX2J5dGU6Ci0JeG9ybCAlZWF4LCVlYXgKLS5MZTU6CXJlcAotCXN0b3NiCi0JLyogd2hlbiB0aGVyZSBpcyBhbm90aGVyIGV4Y2VwdGlvbiB3aGlsZSB6ZXJvaW5nIHRoZSByZXN0IGp1c3QgcmV0dXJuICovCi0uTGVfemVybzoKLQltb3ZxICVyZHgsJXJheAotCWptcCAuTGVuZGUKKwlqbXAgNjBmCis0MDoJbGVhICglcmR4LCVyY3gsOCksJXJkeAorCWptcCA2MGYKKzUwOgltb3ZsICVlY3gsJWVkeAorNjA6CXNmZW5jZQorCW1vdmwgJXI4ZCwlZWN4CisJam1wIGNvcHlfdXNlcl9oYW5kbGVfdGFpbAorCS5wcmV2aW91cworCisJLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwkucXVhZCAxYiwzMGIKKwkucXVhZCAyYiwzMGIKKwkucXVhZCAzYiwzMGIKKwkucXVhZCA0YiwzMGIKKwkucXVhZCA1YiwzMGIKKwkucXVhZCA2YiwzMGIKKwkucXVhZCA3YiwzMGIKKwkucXVhZCA4YiwzMGIKKwkucXVhZCA5YiwzMGIKKwkucXVhZCAxMGIsMzBiCisJLnF1YWQgMTFiLDMwYgorCS5xdWFkIDEyYiwzMGIKKwkucXVhZCAxM2IsMzBiCisJLnF1YWQgMTRiLDMwYgorCS5xdWFkIDE1YiwzMGIKKwkucXVhZCAxNmIsMzBiCisJLnF1YWQgMThiLDQwYgorCS5xdWFkIDE5Yiw0MGIKKwkucXVhZCAyMWIsNTBiCisJLnF1YWQgMjJiLDUwYgorCS5wcmV2aW91cwogCUNGSV9FTkRQUk9DCiBFTkRQUk9DKF9fY29weV91c2VyX25vY2FjaGUpCi0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2RlbGF5LmMgYi9hcmNoL3g4Ni9saWIvZGVsYXkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDU2ODYwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbGliL2RlbGF5LmMKQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKglQcmVjaXNlIERlbGF5IExvb3BzIGZvciBpMzg2CisgKgorICoJQ29weXJpZ2h0IChDKSAxOTkzIExpbnVzIFRvcnZhbGRzCisgKglDb3B5cmlnaHQgKEMpIDE5OTcgTWFydGluIE1hcmVzIDxtakBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CisgKglDb3B5cmlnaHQgKEMpIDIwMDggSmlyaSBIbGFka3kgPGhsYWRreSBfZG90XyBqaXJpIF9hdF8gZ21haWwgX2RvdF8gY29tPgorICoKKyAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKKyAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiBUaGUgYWRkaXRpb25hbAorICoJanVtcCBtYWdpYyBpcyBuZWVkZWQgdG8gZ2V0IHRoZSB0aW1pbmcgc3RhYmxlIG9uIGFsbCB0aGUgQ1BVJ3MKKyAqCXdlIGhhdmUgdG8gd29ycnkgYWJvdXQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXguaD4KKyNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisKKyNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+CisKKyNpZmRlZiBDT05GSUdfU01QCisjIGluY2x1ZGUgPGFzbS9zbXAuaD4KKyNlbmRpZgorCisvKiBzaW1wbGUgbG9vcCBiYXNlZCBkZWxheTogKi8KK3N0YXRpYyB2b2lkIGRlbGF5X2xvb3AodW5zaWduZWQgbG9uZyBsb29wcykKK3sKKwlhc20gdm9sYXRpbGUoCisJCSIJdGVzdCAlMCwlMAlcbiIKKwkJIglqeiAzZgkJXG4iCisJCSIJam1wIDFmCQlcbiIKKworCQkiLmFsaWduIDE2CQlcbiIKKwkJIjE6CWptcCAyZgkJXG4iCisKKwkJIi5hbGlnbiAxNgkJXG4iCisJCSIyOglkZWMgJTAJCVxuIgorCQkiCWpueiAyYgkJXG4iCisJCSIzOglkZWMgJTAJCVxuIgorCisJCTogLyogd2UgZG9uJ3QgbmVlZCBvdXRwdXQgKi8KKwkJOiJhIiAobG9vcHMpCisJKTsKK30KKworLyogVFNDIGJhc2VkIGRlbGF5OiAqLworc3RhdGljIHZvaWQgZGVsYXlfdHNjKHVuc2lnbmVkIGxvbmcgbG9vcHMpCit7CisJdW5zaWduZWQgbG9uZyBiY2xvY2ssIG5vdzsKKwlpbnQgY3B1OworCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCXJkdHNjbChiY2xvY2spOworCWZvciAoOzspIHsKKwkJcmR0c2NsKG5vdyk7CisJCWlmICgobm93IC0gYmNsb2NrKSA+PSBsb29wcykKKwkJCWJyZWFrOworCisJCS8qIEFsbG93IFJUIHRhc2tzIHRvIHJ1biAqLworCQlwcmVlbXB0X2VuYWJsZSgpOworCQlyZXBfbm9wKCk7CisJCXByZWVtcHRfZGlzYWJsZSgpOworCisJCS8qCisJCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgbW92ZWQgdG8gYW5vdGhlciBDUFUsIGFuZAorCQkgKiBzaW5jZSBUU0MncyBhcmUgcGVyLWNwdSB3ZSBuZWVkIHRvIGNhbGN1bGF0ZQorCQkgKiB0aGF0LiBUaGUgZGVsYXkgbXVzdCBndWFyYW50ZWUgdGhhdCB3ZSB3YWl0ICJhdAorCQkgKiBsZWFzdCIgdGhlIGFtb3VudCBvZiB0aW1lLiBCZWluZyBtb3ZlZCB0byBhbm90aGVyCisJCSAqIENQVSBjb3VsZCBtYWtlIHRoZSB3YWl0IGxvbmdlciBidXQgd2UganVzdCBuZWVkIHRvCisJCSAqIG1ha2Ugc3VyZSB3ZSB3YWl0ZWQgbG9uZyBlbm91Z2guIFJlYmFsYW5jZSB0aGUKKwkJICogY291bnRlciBmb3IgdGhpcyBDUFUuCisJCSAqLworCQlpZiAodW5saWtlbHkoY3B1ICE9IHNtcF9wcm9jZXNzb3JfaWQoKSkpIHsKKwkJCWxvb3BzIC09IChub3cgLSBiY2xvY2spOworCQkJY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOworCQkJcmR0c2NsKGJjbG9jayk7CisJCX0KKwl9CisJcHJlZW1wdF9lbmFibGUoKTsKK30KKworLyoKKyAqIFNpbmNlIHdlIGNhbGlicmF0ZSBvbmx5IG9uY2UgYXQgYm9vdCwgdGhpcworICogZnVuY3Rpb24gc2hvdWxkIGJlIHNldCBvbmNlIGF0IGJvb3QgYW5kIG5vdCBjaGFuZ2VkCisgKi8KK3N0YXRpYyB2b2lkICgqZGVsYXlfZm4pKHVuc2lnbmVkIGxvbmcpID0gZGVsYXlfbG9vcDsKKwordm9pZCB1c2VfdHNjX2RlbGF5KHZvaWQpCit7CisJZGVsYXlfZm4gPSBkZWxheV90c2M7Cit9CisKK2ludCBfX2RldmluaXQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcgKnRpbWVyX3ZhbCkKK3sKKwlpZiAoZGVsYXlfZm4gPT0gZGVsYXlfdHNjKSB7CisJCXJkdHNjbGwoKnRpbWVyX3ZhbCk7CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gLTE7Cit9CisKK3ZvaWQgX19kZWxheSh1bnNpZ25lZCBsb25nIGxvb3BzKQoreworCWRlbGF5X2ZuKGxvb3BzKTsKK30KK0VYUE9SVF9TWU1CT0woX19kZWxheSk7CisKK2lubGluZSB2b2lkIF9fY29uc3RfdWRlbGF5KHVuc2lnbmVkIGxvbmcgeGxvb3BzKQoreworCWludCBkMDsKKworCXhsb29wcyAqPSA0OworCWFzbSgibXVsbCAlJWVkeCIKKwkJOiI9ZCIgKHhsb29wcyksICI9JmEiIChkMCkKKwkJOiIxIiAoeGxvb3BzKSwgIjAiCisJCShjcHVfZGF0YShyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKS5sb29wc19wZXJfamlmZnkgKiAoSFovNCkpKTsKKworCV9fZGVsYXkoKyt4bG9vcHMpOworfQorRVhQT1JUX1NZTUJPTChfX2NvbnN0X3VkZWxheSk7CisKK3ZvaWQgX191ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjcykKK3sKKwlfX2NvbnN0X3VkZWxheSh1c2VjcyAqIDB4MDAwMDEwYzcpOyAvKiAyKiozMiAvIDEwMDAwMDAgKHJvdW5kZWQgdXApICovCit9CitFWFBPUlRfU1lNQk9MKF9fdWRlbGF5KTsKKwordm9pZCBfX25kZWxheSh1bnNpZ25lZCBsb25nIG5zZWNzKQoreworCV9fY29uc3RfdWRlbGF5KG5zZWNzICogMHgwMDAwNSk7IC8qIDIqKjMyIC8gMTAwMDAwMDAwMCAocm91bmRlZCB1cCkgKi8KK30KK0VYUE9SVF9TWU1CT0woX19uZGVsYXkpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL2RlbGF5XzMyLmMgYi9hcmNoL3g4Ni9saWIvZGVsYXlfMzIuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDUzNWU2ZC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvZGVsYXlfMzIuYworKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICoJUHJlY2lzZSBEZWxheSBMb29wcyBmb3IgaTM4NgotICoKLSAqCUNvcHlyaWdodCAoQykgMTk5MyBMaW51cyBUb3J2YWxkcwotICoJQ29weXJpZ2h0IChDKSAxOTk3IE1hcnRpbiBNYXJlcyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgotICoKLSAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKLSAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiBUaGUgYWRkaXRpb25hbAotICoJanVtcCBtYWdpYyBpcyBuZWVkZWQgdG8gZ2V0IHRoZSB0aW1pbmcgc3RhYmxlIG9uIGFsbCB0aGUgQ1BVJ3MKLSAqCXdlIGhhdmUgdG8gd29ycnkgYWJvdXQuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgvdGltZXguaD4KLSNpbmNsdWRlIDxsaW51eC9wcmVlbXB0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0KLSNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+Ci0jaW5jbHVkZSA8YXNtL2RlbGF5Lmg+Ci0jaW5jbHVkZSA8YXNtL3RpbWVyLmg+Ci0KLSNpZmRlZiBDT05GSUdfU01QCi0jIGluY2x1ZGUgPGFzbS9zbXAuaD4KLSNlbmRpZgotCi0vKiBzaW1wbGUgbG9vcCBiYXNlZCBkZWxheTogKi8KLXN0YXRpYyB2b2lkIGRlbGF5X2xvb3AodW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQlpbnQgZDA7Ci0KLQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJIlx0am1wIDFmXG4iCi0JCSIuYWxpZ24gMTZcbiIKLQkJIjE6XHRqbXAgMmZcbiIKLQkJIi5hbGlnbiAxNlxuIgotCQkiMjpcdGRlY2wgJTBcblx0am5zIDJiIgotCQk6Ij0mYSIgKGQwKQotCQk6IjAiIChsb29wcykpOwotfQotCi0vKiBUU0MgYmFzZWQgZGVsYXk6ICovCi1zdGF0aWMgdm9pZCBkZWxheV90c2ModW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQl1bnNpZ25lZCBsb25nIGJjbG9jaywgbm93OwotCi0JcHJlZW1wdF9kaXNhYmxlKCk7CQkvKiBUU0MncyBhcmUgcGVyLWNwdSAqLwotCXJkdHNjbChiY2xvY2spOwotCWRvIHsKLQkJcmVwX25vcCgpOwotCQlyZHRzY2wobm93KTsKLQl9IHdoaWxlICgobm93LWJjbG9jaykgPCBsb29wcyk7Ci0JcHJlZW1wdF9lbmFibGUoKTsKLX0KLQotLyoKLSAqIFNpbmNlIHdlIGNhbGlicmF0ZSBvbmx5IG9uY2UgYXQgYm9vdCwgdGhpcwotICogZnVuY3Rpb24gc2hvdWxkIGJlIHNldCBvbmNlIGF0IGJvb3QgYW5kIG5vdCBjaGFuZ2VkCi0gKi8KLXN0YXRpYyB2b2lkICgqZGVsYXlfZm4pKHVuc2lnbmVkIGxvbmcpID0gZGVsYXlfbG9vcDsKLQotdm9pZCB1c2VfdHNjX2RlbGF5KHZvaWQpCi17Ci0JZGVsYXlfZm4gPSBkZWxheV90c2M7Ci19Ci0KLWludCBfX2RldmluaXQgcmVhZF9jdXJyZW50X3RpbWVyKHVuc2lnbmVkIGxvbmcgKnRpbWVyX3ZhbCkKLXsKLQlpZiAoZGVsYXlfZm4gPT0gZGVsYXlfdHNjKSB7Ci0JCXJkdHNjbCgqdGltZXJfdmFsKTsKLQkJcmV0dXJuIDA7Ci0JfQotCXJldHVybiAtMTsKLX0KLQotdm9pZCBfX2RlbGF5KHVuc2lnbmVkIGxvbmcgbG9vcHMpCi17Ci0JZGVsYXlfZm4obG9vcHMpOwotfQotCi1pbmxpbmUgdm9pZCBfX2NvbnN0X3VkZWxheSh1bnNpZ25lZCBsb25nIHhsb29wcykKLXsKLQlpbnQgZDA7Ci0KLQl4bG9vcHMgKj0gNDsKLQlfX2FzbV9fKCJtdWxsICUwIgotCQk6Ij1kIiAoeGxvb3BzKSwgIj0mYSIgKGQwKQotCQk6IjEiICh4bG9vcHMpLCAiMCIKLQkJKGNwdV9kYXRhKHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpLmxvb3BzX3Blcl9qaWZmeSAqIChIWi80KSkpOwotCi0JX19kZWxheSgrK3hsb29wcyk7Ci19Ci0KLXZvaWQgX191ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheSh1c2VjcyAqIDB4MDAwMDEwYzcpOyAvKiAyKiozMiAvIDEwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci0KLXZvaWQgX19uZGVsYXkodW5zaWduZWQgbG9uZyBuc2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheShuc2VjcyAqIDB4MDAwMDUpOyAvKiAyKiozMiAvIDEwMDAwMDAwMDAgKHJvdW5kZWQgdXApICovCi19Ci0KLUVYUE9SVF9TWU1CT0woX19kZWxheSk7Ci1FWFBPUlRfU1lNQk9MKF9fY29uc3RfdWRlbGF5KTsKLUVYUE9SVF9TWU1CT0woX191ZGVsYXkpOwotRVhQT1JUX1NZTUJPTChfX25kZWxheSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvZGVsYXlfNjQuYyBiL2FyY2gveDg2L2xpYi9kZWxheV82NC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmM2MTA1Li4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9kZWxheV82NC5jCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqCVByZWNpc2UgRGVsYXkgTG9vcHMgZm9yIHg4Ni02NAotICoKLSAqCUNvcHlyaWdodCAoQykgMTk5MyBMaW51cyBUb3J2YWxkcwotICoJQ29weXJpZ2h0IChDKSAxOTk3IE1hcnRpbiBNYXJlcyA8bWpAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgotICoKLSAqCVRoZSBfX2RlbGF5IGZ1bmN0aW9uIG11c3QgX05PVF8gYmUgaW5saW5lZCBhcyBpdHMgZXhlY3V0aW9uIHRpbWUKLSAqCWRlcGVuZHMgd2lsZGx5IG9uIGFsaWdubWVudCBvbiBtYW55IHg4NiBwcm9jZXNzb3JzLiAKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KLSNpbmNsdWRlIDxsaW51eC90aW1leC5oPgotI2luY2x1ZGUgPGxpbnV4L3ByZWVtcHQuaD4KLSNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9tc3IuaD4KLQotI2lmZGVmIENPTkZJR19TTVAKLSNpbmNsdWRlIDxhc20vc21wLmg+Ci0jZW5kaWYKLQotaW50IF9fZGV2aW5pdCByZWFkX2N1cnJlbnRfdGltZXIodW5zaWduZWQgbG9uZyAqdGltZXJfdmFsdWUpCi17Ci0JcmR0c2NsbCgqdGltZXJfdmFsdWUpOwotCXJldHVybiAwOwotfQotCi12b2lkIF9fZGVsYXkodW5zaWduZWQgbG9uZyBsb29wcykKLXsKLQl1bnNpZ25lZCBiY2xvY2ssIG5vdzsKLQotCXByZWVtcHRfZGlzYWJsZSgpOwkJLyogVFNDJ3MgYXJlIHByZS1jcHUgKi8KLQlyZHRzY2woYmNsb2NrKTsKLQlkbyB7Ci0JCXJlcF9ub3AoKTsgCi0JCXJkdHNjbChub3cpOwotCX0KLQl3aGlsZSAoKG5vdy1iY2xvY2spIDwgbG9vcHMpOwotCXByZWVtcHRfZW5hYmxlKCk7Ci19Ci1FWFBPUlRfU1lNQk9MKF9fZGVsYXkpOwotCi1pbmxpbmUgdm9pZCBfX2NvbnN0X3VkZWxheSh1bnNpZ25lZCBsb25nIHhsb29wcykKLXsKLQlfX2RlbGF5KCgoeGxvb3BzICogSFogKgotCQljcHVfZGF0YShyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKS5sb29wc19wZXJfamlmZnkpID4+IDMyKSArIDEpOwotfQotRVhQT1JUX1NZTUJPTChfX2NvbnN0X3VkZWxheSk7Ci0KLXZvaWQgX191ZGVsYXkodW5zaWduZWQgbG9uZyB1c2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheSh1c2VjcyAqIDB4MDAwMDEwYzcpOyAgLyogMioqMzIgLyAxMDAwMDAwIChyb3VuZGVkIHVwKSAqLwotfQotRVhQT1JUX1NZTUJPTChfX3VkZWxheSk7Ci0KLXZvaWQgX19uZGVsYXkodW5zaWduZWQgbG9uZyBuc2VjcykKLXsKLQlfX2NvbnN0X3VkZWxheShuc2VjcyAqIDB4MDAwMDUpOyAgLyogMioqMzIgLyAxMDAwMDAwMDAwIChyb3VuZGVkIHVwKSAqLwotfQotRVhQT1JUX1NZTUJPTChfX25kZWxheSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvZ2V0dXNlci5TIGIvYXJjaC94ODYvbGliL2dldHVzZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDM3NDAwCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbGliL2dldHVzZXIuUwpAQCAtMCwwICsxLDEwNCBAQAorLyoKKyAqIF9fZ2V0X3VzZXIgZnVuY3Rpb25zLgorICoKKyAqIChDKSBDb3B5cmlnaHQgMTk5OCBMaW51cyBUb3J2YWxkcworICogKEMpIENvcHlyaWdodCAyMDA1IEFuZGkgS2xlZW4KKyAqIChDKSBDb3B5cmlnaHQgMjAwOCBHbGF1YmVyIENvc3RhCisgKgorICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKKyAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5CisgKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgorICogcmV0dXJuIHZhbHVlLgorICovCisKKy8qCisgKiBfX2dldF91c2VyX1gKKyAqCisgKiBJbnB1dHM6CSVbcnxlXWF4IGNvbnRhaW5zIHRoZSBhZGRyZXNzLgorICoJCVRoZSByZWdpc3RlciBpcyBtb2RpZmllZCwgYnV0IGFsbCBjaGFuZ2VzIGFyZSB1bmRvbmUKKyAqCQliZWZvcmUgcmV0dXJuaW5nIGJlY2F1c2UgdGhlIEMgY29kZSBkb2Vzbid0IGtub3cgYWJvdXQgaXQuCisgKgorICogT3V0cHV0czoJJVtyfGVdYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQorICoJCSVbcnxlXWR4IGNvbnRhaW5zIHplcm8tZXh0ZW5kZWQgdmFsdWUKKyAqCisgKgorICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCisgKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgorICovCisKKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL2Vycm5vLmg+CisjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CisjaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+CisjaW5jbHVkZSA8YXNtL2FzbS5oPgorCisJLnRleHQKK0VOVFJZKF9fZ2V0X3VzZXJfMSkKKwlDRklfU1RBUlRQUk9DCisJR0VUX1RIUkVBRF9JTkZPKCVfQVNNX0RYKQorCWNtcCBUSV9hZGRyX2xpbWl0KCVfQVNNX0RYKSwlX0FTTV9BWAorCWphZSBiYWRfZ2V0X3VzZXIKKzE6CW1vdnpiICglX0FTTV9BWCksJWVkeAorCXhvciAlZWF4LCVlYXgKKwlyZXQKKwlDRklfRU5EUFJPQworRU5EUFJPQyhfX2dldF91c2VyXzEpCisKK0VOVFJZKF9fZ2V0X3VzZXJfMikKKwlDRklfU1RBUlRQUk9DCisJYWRkICQxLCVfQVNNX0FYCisJamMgYmFkX2dldF91c2VyCisJR0VUX1RIUkVBRF9JTkZPKCVfQVNNX0RYKQorCWNtcCBUSV9hZGRyX2xpbWl0KCVfQVNNX0RYKSwlX0FTTV9BWAorCWphZSBiYWRfZ2V0X3VzZXIKKzI6CW1vdnp3bCAtMSglX0FTTV9BWCksJWVkeAorCXhvciAlZWF4LCVlYXgKKwlyZXQKKwlDRklfRU5EUFJPQworRU5EUFJPQyhfX2dldF91c2VyXzIpCisKK0VOVFJZKF9fZ2V0X3VzZXJfNCkKKwlDRklfU1RBUlRQUk9DCisJYWRkICQzLCVfQVNNX0FYCisJamMgYmFkX2dldF91c2VyCisJR0VUX1RIUkVBRF9JTkZPKCVfQVNNX0RYKQorCWNtcCBUSV9hZGRyX2xpbWl0KCVfQVNNX0RYKSwlX0FTTV9BWAorCWphZSBiYWRfZ2V0X3VzZXIKKzM6CW1vdiAtMyglX0FTTV9BWCksJWVkeAorCXhvciAlZWF4LCVlYXgKKwlyZXQKKwlDRklfRU5EUFJPQworRU5EUFJPQyhfX2dldF91c2VyXzQpCisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CitFTlRSWShfX2dldF91c2VyXzgpCisJQ0ZJX1NUQVJUUFJPQworCWFkZCAkNywlX0FTTV9BWAorCWpjIGJhZF9nZXRfdXNlcgorCUdFVF9USFJFQURfSU5GTyglX0FTTV9EWCkKKwljbXAgVElfYWRkcl9saW1pdCglX0FTTV9EWCksJV9BU01fQVgKKwlqYWUJYmFkX2dldF91c2VyCis0Ogltb3ZxIC03KCVfQVNNX0FYKSwlX0FTTV9EWAorCXhvciAlZWF4LCVlYXgKKwlyZXQKKwlDRklfRU5EUFJPQworRU5EUFJPQyhfX2dldF91c2VyXzgpCisjZW5kaWYKKworYmFkX2dldF91c2VyOgorCUNGSV9TVEFSVFBST0MKKwl4b3IgJWVkeCwlZWR4CisJbW92ICQoLUVGQVVMVCksJV9BU01fQVgKKwlyZXQKKwlDRklfRU5EUFJPQworRU5EKGJhZF9nZXRfdXNlcikKKworLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwlfQVNNX1BUUiAxYixiYWRfZ2V0X3VzZXIKKwlfQVNNX1BUUiAyYixiYWRfZ2V0X3VzZXIKKwlfQVNNX1BUUiAzYixiYWRfZ2V0X3VzZXIKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJX0FTTV9QVFIgNGIsYmFkX2dldF91c2VyCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2xpYi9nZXR1c2VyXzMyLlMgYi9hcmNoL3g4Ni9saWIvZ2V0dXNlcl8zMi5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZDg0YjUzLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L2xpYi9nZXR1c2VyXzMyLlMKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi0vKgotICogX19nZXRfdXNlciBmdW5jdGlvbnMuCi0gKgotICogKEMpIENvcHlyaWdodCAxOTk4IExpbnVzIFRvcnZhbGRzCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKLSAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5Ci0gKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgotICogcmV0dXJuIHZhbHVlLgotICovCi0jaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgotI2luY2x1ZGUgPGFzbS9kd2FyZjIuaD4KLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLQotCi0vKgotICogX19nZXRfdXNlcl9YCi0gKgotICogSW5wdXRzOgklZWF4IGNvbnRhaW5zIHRoZSBhZGRyZXNzCi0gKgotICogT3V0cHV0czoJJWVheCBpcyBlcnJvciBjb2RlICgwIG9yIC1FRkFVTFQpCi0gKgkJJWVkeCBjb250YWlucyB6ZXJvLWV4dGVuZGVkIHZhbHVlCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCi0gKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgotICovCi0KLS50ZXh0Ci1FTlRSWShfX2dldF91c2VyXzEpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglZWR4KQotCWNtcGwgVElfYWRkcl9saW1pdCglZWR4KSwlZWF4Ci0JamFlIGJhZF9nZXRfdXNlcgotMToJbW92emJsICglZWF4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzEpCi0KLUVOVFJZKF9fZ2V0X3VzZXJfMikKLQlDRklfU1RBUlRQUk9DCi0JYWRkbCAkMSwlZWF4Ci0JamMgYmFkX2dldF91c2VyCi0JR0VUX1RIUkVBRF9JTkZPKCVlZHgpCi0JY21wbCBUSV9hZGRyX2xpbWl0KCVlZHgpLCVlYXgKLQlqYWUgYmFkX2dldF91c2VyCi0yOgltb3Z6d2wgLTEoJWVheCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl8yKQotCi1FTlRSWShfX2dldF91c2VyXzQpCi0JQ0ZJX1NUQVJUUFJPQwotCWFkZGwgJDMsJWVheAotCWpjIGJhZF9nZXRfdXNlcgotCUdFVF9USFJFQURfSU5GTyglZWR4KQotCWNtcGwgVElfYWRkcl9saW1pdCglZWR4KSwlZWF4Ci0JamFlIGJhZF9nZXRfdXNlcgotMzoJbW92bCAtMyglZWF4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzQpCi0KLWJhZF9nZXRfdXNlcjoKLQlDRklfU1RBUlRQUk9DCi0JeG9ybCAlZWR4LCVlZHgKLQltb3ZsICQtMTQsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkQoYmFkX2dldF91c2VyKQotCi0uc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5sb25nIDFiLGJhZF9nZXRfdXNlcgotCS5sb25nIDJiLGJhZF9nZXRfdXNlcgotCS5sb25nIDNiLGJhZF9nZXRfdXNlcgotLnByZXZpb3VzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvZ2V0dXNlcl82NC5TIGIvYXJjaC94ODYvbGliL2dldHVzZXJfNjQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQ0ODg3Ni4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvZ2V0dXNlcl82NC5TCisrKyAvZGV2L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLS8qCi0gKiBfX2dldF91c2VyIGZ1bmN0aW9ucy4KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDE5OTggTGludXMgVG9ydmFsZHMKLSAqIChDKSBDb3B5cmlnaHQgMjAwNSBBbmRpIEtsZWVuCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKLSAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5Ci0gKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgotICogcmV0dXJuIHZhbHVlLgotICovCi0KLS8qCi0gKiBfX2dldF91c2VyX1gKLSAqCi0gKiBJbnB1dHM6CSVyY3ggY29udGFpbnMgdGhlIGFkZHJlc3MuCi0gKgkJVGhlIHJlZ2lzdGVyIGlzIG1vZGlmaWVkLCBidXQgYWxsIGNoYW5nZXMgYXJlIHVuZG9uZQotICoJCWJlZm9yZSByZXR1cm5pbmcgYmVjYXVzZSB0aGUgQyBjb2RlIGRvZXNuJ3Qga25vdyBhYm91dCBpdC4KLSAqCi0gKiBPdXRwdXRzOgklcmF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKLSAqCQklcmR4IGNvbnRhaW5zIHplcm8tZXh0ZW5kZWQgdmFsdWUKLSAqIAotICogJXI4IGlzIGRlc3Ryb3llZC4KLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKLSAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KLSNpbmNsdWRlIDxhc20vZHdhcmYyLmg+Ci0jaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRlIDxhc20vZXJybm8uaD4KLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLSNpbmNsdWRlIDxhc20vdGhyZWFkX2luZm8uaD4KLQotCS50ZXh0Ci1FTlRSWShfX2dldF91c2VyXzEpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIGJhZF9nZXRfdXNlcgotMToJbW92emIgKCVyY3gpLCVlZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfMSkKLQotRU5UUlkoX19nZXRfdXNlcl8yKQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDEsJXJjeAotCWpjIDIwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSAyMGYKLQlkZWNxICAgJXJjeAotMjoJbW92endsICglcmN4KSwlZWR4Ci0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTIwOglkZWNxICAgICVyY3gKLQlqbXAJYmFkX2dldF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19nZXRfdXNlcl8yKQotCi1FTlRSWShfX2dldF91c2VyXzQpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkMywlcmN4Ci0JamMgMzBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIDMwZgotCXN1YnEgJDMsJXJjeAotMzoJbW92bCAoJXJjeCksJWVkeAotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0zMDoJc3VicSAkMywlcmN4Ci0Jam1wIGJhZF9nZXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fZ2V0X3VzZXJfNCkKLQotRU5UUlkoX19nZXRfdXNlcl84KQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDcsJXJjeAotCWpjIDQwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZQk0MGYKLQlzdWJxCSQ3LCVyY3gKLTQ6CW1vdnEgKCVyY3gpLCVyZHgKLQl4b3JsICVlYXgsJWVheAotCXJldAotNDA6CXN1YnEgJDcsJXJjeAotCWptcCBiYWRfZ2V0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX2dldF91c2VyXzgpCi0KLWJhZF9nZXRfdXNlcjoKLQlDRklfU1RBUlRQUk9DCi0JeG9ybCAlZWR4LCVlZHgKLQltb3ZxICQoLUVGQVVMVCksJXJheAotCXJldAotCUNGSV9FTkRQUk9DCi1FTkQoYmFkX2dldF91c2VyKQotCi0uc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5xdWFkIDFiLGJhZF9nZXRfdXNlcgotCS5xdWFkIDJiLGJhZF9nZXRfdXNlcgotCS5xdWFkIDNiLGJhZF9nZXRfdXNlcgotCS5xdWFkIDRiLGJhZF9nZXRfdXNlcgotLnByZXZpb3VzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvcHV0dXNlci5TIGIvYXJjaC94ODYvbGliL3B1dHVzZXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmIwZDE1Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbGliL3B1dHVzZXIuUwpAQCAtMCwwICsxLDk3IEBACisvKgorICogX19wdXRfdXNlciBmdW5jdGlvbnMuCisgKgorICogKEMpIENvcHlyaWdodCAyMDA1IExpbnVzIFRvcnZhbGRzCisgKiAoQykgQ29weXJpZ2h0IDIwMDUgQW5kaSBLbGVlbgorICogKEMpIENvcHlyaWdodCAyMDA4IEdsYXViZXIgQ29zdGEKKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQorICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKKyAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCisgKiByZXR1cm4gdmFsdWUuCisgKi8KKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CisjaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgorI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorI2luY2x1ZGUgPGFzbS9lcnJuby5oPgorI2luY2x1ZGUgPGFzbS9hc20uaD4KKworCisvKgorICogX19wdXRfdXNlcl9YCisgKgorICogSW5wdXRzOgklZWF4WzolZWR4XSBjb250YWlucyB0aGUgZGF0YQorICoJCSVlY3ggY29udGFpbnMgdGhlIGFkZHJlc3MKKyAqCisgKiBPdXRwdXRzOgklZWF4IGlzIGVycm9yIGNvZGUgKDAgb3IgLUVGQVVMVCkKKyAqCisgKiBUaGVzZSBmdW5jdGlvbnMgc2hvdWxkIG5vdCBtb2RpZnkgYW55IG90aGVyIHJlZ2lzdGVycywKKyAqIGFzIHRoZXkgZ2V0IGNhbGxlZCBmcm9tIHdpdGhpbiBpbmxpbmUgYXNzZW1ibHkuCisgKi8KKworI2RlZmluZSBFTlRFUglDRklfU1RBUlRQUk9DIDsgXAorCQlHRVRfVEhSRUFEX0lORk8oJV9BU01fQlgpCisjZGVmaW5lIEVYSVQJcmV0IDsgXAorCQlDRklfRU5EUFJPQworCisudGV4dAorRU5UUlkoX19wdXRfdXNlcl8xKQorCUVOVEVSCisJY21wIFRJX2FkZHJfbGltaXQoJV9BU01fQlgpLCVfQVNNX0NYCisJamFlIGJhZF9wdXRfdXNlcgorMToJbW92YiAlYWwsKCVfQVNNX0NYKQorCXhvciAlZWF4LCVlYXgKKwlFWElUCitFTkRQUk9DKF9fcHV0X3VzZXJfMSkKKworRU5UUlkoX19wdXRfdXNlcl8yKQorCUVOVEVSCisJbW92IFRJX2FkZHJfbGltaXQoJV9BU01fQlgpLCVfQVNNX0JYCisJc3ViICQxLCVfQVNNX0JYCisJY21wICVfQVNNX0JYLCVfQVNNX0NYCisJamFlIGJhZF9wdXRfdXNlcgorMjoJbW92dyAlYXgsKCVfQVNNX0NYKQorCXhvciAlZWF4LCVlYXgKKwlFWElUCitFTkRQUk9DKF9fcHV0X3VzZXJfMikKKworRU5UUlkoX19wdXRfdXNlcl80KQorCUVOVEVSCisJbW92IFRJX2FkZHJfbGltaXQoJV9BU01fQlgpLCVfQVNNX0JYCisJc3ViICQzLCVfQVNNX0JYCisJY21wICVfQVNNX0JYLCVfQVNNX0NYCisJamFlIGJhZF9wdXRfdXNlcgorMzoJbW92bCAlZWF4LCglX0FTTV9DWCkKKwl4b3IgJWVheCwlZWF4CisJRVhJVAorRU5EUFJPQyhfX3B1dF91c2VyXzQpCisKK0VOVFJZKF9fcHV0X3VzZXJfOCkKKwlFTlRFUgorCW1vdiBUSV9hZGRyX2xpbWl0KCVfQVNNX0JYKSwlX0FTTV9CWAorCXN1YiAkNywlX0FTTV9CWAorCWNtcCAlX0FTTV9CWCwlX0FTTV9DWAorCWphZSBiYWRfcHV0X3VzZXIKKzQ6CW1vdiAlX0FTTV9BWCwoJV9BU01fQ1gpCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorNToJbW92bCAlZWR4LDQoJV9BU01fQ1gpCisjZW5kaWYKKwl4b3IgJWVheCwlZWF4CisJRVhJVAorRU5EUFJPQyhfX3B1dF91c2VyXzgpCisKK2JhZF9wdXRfdXNlcjoKKwlDRklfU1RBUlRQUk9DCisJbW92bCAkLUVGQVVMVCwlZWF4CisJRVhJVAorRU5EKGJhZF9wdXRfdXNlcikKKworLnNlY3Rpb24gX19leF90YWJsZSwiYSIKKwlfQVNNX1BUUiAxYixiYWRfcHV0X3VzZXIKKwlfQVNNX1BUUiAyYixiYWRfcHV0X3VzZXIKKwlfQVNNX1BUUiAzYixiYWRfcHV0X3VzZXIKKwlfQVNNX1BUUiA0YixiYWRfcHV0X3VzZXIKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisJX0FTTV9QVFIgNWIsYmFkX3B1dF91c2VyCisjZW5kaWYKKy5wcmV2aW91cwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3B1dHVzZXJfMzIuUyBiL2FyY2gveDg2L2xpYi9wdXR1c2VyXzMyLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1OGZiYTEuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbGliL3B1dHVzZXJfMzIuUworKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBfX3B1dF91c2VyIGZ1bmN0aW9ucy4KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDIwMDUgTGludXMgVG9ydmFsZHMKLSAqCi0gKiBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIG5vbi1zdGFuZGFyZCBjYWxsIGludGVyZmFjZQotICogdG8gbWFrZSB0aGVtIG1vcmUgZWZmaWNpZW50LCBlc3BlY2lhbGx5IGFzIHRoZXkKLSAqIHJldHVybiBhbiBlcnJvciB2YWx1ZSBpbiBhZGRpdGlvbiB0byB0aGUgInJlYWwiCi0gKiByZXR1cm4gdmFsdWUuCi0gKi8KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi0KLS8qCi0gKiBfX3B1dF91c2VyX1gKLSAqCi0gKiBJbnB1dHM6CSVlYXhbOiVlZHhdIGNvbnRhaW5zIHRoZSBkYXRhCi0gKgkJJWVjeCBjb250YWlucyB0aGUgYWRkcmVzcwotICoKLSAqIE91dHB1dHM6CSVlYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQotICoKLSAqIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGQgbm90IG1vZGlmeSBhbnkgb3RoZXIgcmVnaXN0ZXJzLAotICogYXMgdGhleSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGlubGluZSBhc3NlbWJseS4KLSAqLwotCi0jZGVmaW5lIEVOVEVSCUNGSV9TVEFSVFBST0MgOyBcCi0JCXB1c2hsICVlYnggOyBcCi0JCUNGSV9BREpVU1RfQ0ZBX09GRlNFVCA0IDsgXAotCQlDRklfUkVMX09GRlNFVCBlYngsIDAgOyBcCi0JCUdFVF9USFJFQURfSU5GTyglZWJ4KQotI2RlZmluZSBFWElUCXBvcGwgJWVieCA7IFwKLQkJQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC00IDsgXAotCQlDRklfUkVTVE9SRSBlYnggOyBcCi0JCXJldCA7IFwKLQkJQ0ZJX0VORFBST0MKLQotLnRleHQKLUVOVFJZKF9fcHV0X3VzZXJfMSkKLQlFTlRFUgotCWNtcGwgVElfYWRkcl9saW1pdCglZWJ4KSwlZWN4Ci0JamFlIGJhZF9wdXRfdXNlcgotMToJbW92YiAlYWwsKCVlY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfMSkKLQotRU5UUlkoX19wdXRfdXNlcl8yKQotCUVOVEVSCi0JbW92bCBUSV9hZGRyX2xpbWl0KCVlYngpLCVlYngKLQlzdWJsICQxLCVlYngKLQljbXBsICVlYngsJWVjeAotCWphZSBiYWRfcHV0X3VzZXIKLTI6CW1vdncgJWF4LCglZWN4KQotCXhvcmwgJWVheCwlZWF4Ci0JRVhJVAotRU5EUFJPQyhfX3B1dF91c2VyXzIpCi0KLUVOVFJZKF9fcHV0X3VzZXJfNCkKLQlFTlRFUgotCW1vdmwgVElfYWRkcl9saW1pdCglZWJ4KSwlZWJ4Ci0Jc3VibCAkMywlZWJ4Ci0JY21wbCAlZWJ4LCVlY3gKLQlqYWUgYmFkX3B1dF91c2VyCi0zOgltb3ZsICVlYXgsKCVlY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfNCkKLQotRU5UUlkoX19wdXRfdXNlcl84KQotCUVOVEVSCi0JbW92bCBUSV9hZGRyX2xpbWl0KCVlYngpLCVlYngKLQlzdWJsICQ3LCVlYngKLQljbXBsICVlYngsJWVjeAotCWphZSBiYWRfcHV0X3VzZXIKLTQ6CW1vdmwgJWVheCwoJWVjeCkKLTU6CW1vdmwgJWVkeCw0KCVlY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlFWElUCi1FTkRQUk9DKF9fcHV0X3VzZXJfOCkKLQotYmFkX3B1dF91c2VyOgotCUNGSV9TVEFSVFBST0Mgc2ltcGxlCi0JQ0ZJX0RFRl9DRkEgZXNwLCAyKjQKLQlDRklfT0ZGU0VUIGVpcCwgLTEqNAotCUNGSV9PRkZTRVQgZWJ4LCAtMio0Ci0JbW92bCAkLTE0LCVlYXgKLQlFWElUCi1FTkQoYmFkX3B1dF91c2VyKQotCi0uc2VjdGlvbiBfX2V4X3RhYmxlLCJhIgotCS5sb25nIDFiLGJhZF9wdXRfdXNlcgotCS5sb25nIDJiLGJhZF9wdXRfdXNlcgotCS5sb25nIDNiLGJhZF9wdXRfdXNlcgotCS5sb25nIDRiLGJhZF9wdXRfdXNlcgotCS5sb25nIDViLGJhZF9wdXRfdXNlcgotLnByZXZpb3VzCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvcHV0dXNlcl82NC5TIGIvYXJjaC94ODYvbGliL3B1dHVzZXJfNjQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDk4OWY1YS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9saWIvcHV0dXNlcl82NC5TCisrKyAvZGV2L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBfX3B1dF91c2VyIGZ1bmN0aW9ucy4KLSAqCi0gKiAoQykgQ29weXJpZ2h0IDE5OTggTGludXMgVG9ydmFsZHMKLSAqIChDKSBDb3B5cmlnaHQgMjAwNSBBbmRpIEtsZWVuCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIGhhdmUgYSBub24tc3RhbmRhcmQgY2FsbCBpbnRlcmZhY2UKLSAqIHRvIG1ha2UgdGhlbSBtb3JlIGVmZmljaWVudCwgZXNwZWNpYWxseSBhcyB0aGV5Ci0gKiByZXR1cm4gYW4gZXJyb3IgdmFsdWUgaW4gYWRkaXRpb24gdG8gdGhlICJyZWFsIgotICogcmV0dXJuIHZhbHVlLgotICovCi0KLS8qCi0gKiBfX3B1dF91c2VyX1gKLSAqCi0gKiBJbnB1dHM6CSVyY3ggY29udGFpbnMgdGhlIGFkZHJlc3MKLSAqCQklcmR4IGNvbnRhaW5zIG5ldyB2YWx1ZQotICoKLSAqIE91dHB1dHM6CSVyYXggaXMgZXJyb3IgY29kZSAoMCBvciAtRUZBVUxUKQotICoKLSAqICVyOCBpcyBkZXN0cm95ZWQuCi0gKgotICogVGhlc2UgZnVuY3Rpb25zIHNob3VsZCBub3QgbW9kaWZ5IGFueSBvdGhlciByZWdpc3RlcnMsCi0gKiBhcyB0aGV5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gaW5saW5lIGFzc2VtYmx5LgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2R3YXJmMi5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8YXNtL2Vycm5vLmg+Ci0jaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+Ci0jaW5jbHVkZSA8YXNtL3RocmVhZF9pbmZvLmg+Ci0KLQkudGV4dAotRU5UUlkoX19wdXRfdXNlcl8xKQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSBiYWRfcHV0X3VzZXIKLTE6CW1vdmIgJWRsLCglcmN4KQotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19wdXRfdXNlcl8xKQotCi1FTlRSWShfX3B1dF91c2VyXzIpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkMSwlcmN4Ci0JamMgMjBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIDIwZgotCWRlY3EgJXJjeAotMjoJbW92dyAlZHgsKCVyY3gpCi0JeG9ybCAlZWF4LCVlYXgKLQlyZXQKLTIwOglkZWNxICVyY3gKLQlqbXAgYmFkX3B1dF91c2VyCi0JQ0ZJX0VORFBST0MKLUVORFBST0MoX19wdXRfdXNlcl8yKQotCi1FTlRSWShfX3B1dF91c2VyXzQpCi0JQ0ZJX1NUQVJUUFJPQwotCUdFVF9USFJFQURfSU5GTyglcjgpCi0JYWRkcSAkMywlcmN4Ci0JamMgMzBmCi0JY21wcSB0aHJlYWRpbmZvX2FkZHJfbGltaXQoJXI4KSwlcmN4Ci0JamFlIDMwZgotCXN1YnEgJDMsJXJjeAotMzoJbW92bCAlZWR4LCglcmN4KQotCXhvcmwgJWVheCwlZWF4Ci0JcmV0Ci0zMDoJc3VicSAkMywlcmN4Ci0Jam1wIGJhZF9wdXRfdXNlcgotCUNGSV9FTkRQUk9DCi1FTkRQUk9DKF9fcHV0X3VzZXJfNCkKLQotRU5UUlkoX19wdXRfdXNlcl84KQotCUNGSV9TVEFSVFBST0MKLQlHRVRfVEhSRUFEX0lORk8oJXI4KQotCWFkZHEgJDcsJXJjeAotCWpjIDQwZgotCWNtcHEgdGhyZWFkaW5mb19hZGRyX2xpbWl0KCVyOCksJXJjeAotCWphZSA0MGYKLQlzdWJxICQ3LCVyY3gKLTQ6CW1vdnEgJXJkeCwoJXJjeCkKLQl4b3JsICVlYXgsJWVheAotCXJldAotNDA6CXN1YnEgJDcsJXJjeAotCWptcCBiYWRfcHV0X3VzZXIKLQlDRklfRU5EUFJPQwotRU5EUFJPQyhfX3B1dF91c2VyXzgpCi0KLWJhZF9wdXRfdXNlcjoKLQlDRklfU1RBUlRQUk9DCi0JbW92cSAkKC1FRkFVTFQpLCVyYXgKLQlyZXQKLQlDRklfRU5EUFJPQwotRU5EKGJhZF9wdXRfdXNlcikKLQotLnNlY3Rpb24gX19leF90YWJsZSwiYSIKLQkucXVhZCAxYixiYWRfcHV0X3VzZXIKLQkucXVhZCAyYixiYWRfcHV0X3VzZXIKLQkucXVhZCAzYixiYWRfcHV0X3VzZXIKLQkucXVhZCA0YixiYWRfcHV0X3VzZXIKLS5wcmV2aW91cwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3RodW5rXzMyLlMgYi9hcmNoL3g4Ni9saWIvdGh1bmtfMzIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTBiMTFlCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbGliL3RodW5rXzMyLlMKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIFRyYW1wb2xpbmUgdG8gdHJhY2UgaXJxcyBvZmYuIChvdGhlcndpc2UgQ0FMTEVSX0FERFIxIG1pZ2h0IGNyYXNoKQorICogQ29weXJpZ2h0IDIwMDggYnkgU3RldmVuIFJvc3RlZHQsIFJlZCBIYXQsIEluYworICogIChpbnNwaXJlZCBieSBBbmRpIEtsZWVuJ3MgdGh1bmtfNjQuUykKKyAqIFN1YmplY3QgdG8gdGhlIEdOVSBwdWJsaWMgbGljZW5zZSwgdi4yLiBObyB3YXJyYW50eSBvZiBhbnkga2luZC4KKyAqLworCisJI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKworI2RlZmluZSBBUkNIX1RSQUNFX0lSUVNfT04JCQlcCisJcHVzaGwgJWVheDsJCQkJXAorCXB1c2hsICVlY3g7CQkJCVwKKwlwdXNobCAlZWR4OwkJCQlcCisJY2FsbCB0cmFjZV9oYXJkaXJxc19vbjsJCQlcCisJcG9wbCAlZWR4OwkJCQlcCisJcG9wbCAlZWN4OwkJCQlcCisJcG9wbCAlZWF4OworCisjZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PRkYJCQlcCisJcHVzaGwgJWVheDsJCQkJXAorCXB1c2hsICVlY3g7CQkJCVwKKwlwdXNobCAlZWR4OwkJCQlcCisJY2FsbCB0cmFjZV9oYXJkaXJxc19vZmY7CQlcCisJcG9wbCAlZWR4OwkJCQlcCisJcG9wbCAlZWN4OwkJCQlcCisJcG9wbCAlZWF4OworCisjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCisJLyogcHV0IHJldHVybiBhZGRyZXNzIGluIGVheCAoYXJnMSkgKi8KKwkubWFjcm8gdGh1bmtfcmEgbmFtZSxmdW5jCisJLmdsb2JsIFxuYW1lCitcbmFtZToKKwlwdXNobCAlZWF4CisJcHVzaGwgJWVjeAorCXB1c2hsICVlZHgKKwkvKiBQbGFjZSBFSVAgaW4gdGhlIGFyZzEgKi8KKwltb3ZsIDMqNCglZXNwKSwgJWVheAorCWNhbGwgXGZ1bmMKKwlwb3BsICVlZHgKKwlwb3BsICVlY3gKKwlwb3BsICVlYXgKKwlyZXQKKwkuZW5kbQorCisJdGh1bmtfcmEgdHJhY2VfaGFyZGlycXNfb25fdGh1bmssdHJhY2VfaGFyZGlycXNfb25fY2FsbGVyCisJdGh1bmtfcmEgdHJhY2VfaGFyZGlycXNfb2ZmX3RodW5rLHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbGliL3RodW5rXzY0LlMgYi9hcmNoL3g4Ni9saWIvdGh1bmtfNjQuUwppbmRleCBlMDA5MjUxLi5iZjlhN2Q1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9saWIvdGh1bmtfNjQuUworKysgYi9hcmNoL3g4Ni9saWIvdGh1bmtfNjQuUwpAQCAtMiw2ICsyLDcgQEAKICAqIFNhdmUgcmVnaXN0ZXJzIGJlZm9yZSBjYWxsaW5nIGFzc2VtYmx5IGZ1bmN0aW9ucy4gVGhpcyBhdm9pZHMKICAqIGRpc3R1cmJhbmNlIG9mIHJlZ2lzdGVyIGFsbG9jYXRpb24gaW4gc29tZSBpbmxpbmUgYXNzZW1ibHkgY29uc3RydWN0cy4KICAqIENvcHlyaWdodCAyMDAxLDIwMDIgYnkgQW5kaSBLbGVlbiwgU3VTRSBMYWJzLgorICogQWRkZWQgdHJhY2VfaGFyZGlycXMgY2FsbGVycyAtIENvcHlyaWdodCAyMDA3IFN0ZXZlbiBSb3N0ZWR0LCBSZWQgSGF0LCBJbmMuCiAgKiBTdWJqZWN0IHRvIHRoZSBHTlUgcHVibGljIGxpY2Vuc2UsIHYuMi4gTm8gd2FycmFudHkgb2YgYW55IGtpbmQuCiAgKi8KIApAQCAtNDIsOCArNDMsMjIgQEAKICNlbmRpZgkKIAkKICNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKLQl0aHVuayB0cmFjZV9oYXJkaXJxc19vbl90aHVuayx0cmFjZV9oYXJkaXJxc19vbgotCXRodW5rIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayx0cmFjZV9oYXJkaXJxc19vZmYKKwkvKiBwdXQgcmV0dXJuIGFkZHJlc3MgaW4gcmRpIChhcmcxKSAqLworCS5tYWNybyB0aHVua19yYSBuYW1lLGZ1bmMKKwkuZ2xvYmwgXG5hbWUKK1xuYW1lOgorCUNGSV9TVEFSVFBST0MKKwlTQVZFX0FSR1MKKwkvKiBTQVZFX0FSR1MgcHVzaHMgOSBlbGVtZW50cyAqLworCS8qIHRoZSBuZXh0IGVsZW1lbnQgd291bGQgYmUgdGhlIHJpcCAqLworCW1vdnEgOSo4KCVyc3ApLCAlcmRpCisJY2FsbCBcZnVuYworCWptcCAgcmVzdG9yZQorCUNGSV9FTkRQUk9DCisJLmVuZG0KKworCXRodW5rX3JhIHRyYWNlX2hhcmRpcnFzX29uX3RodW5rLHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcgorCXRodW5rX3JhIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuayx0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyCiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19ERUJVR19MT0NLX0FMTE9DCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9saWIvdXNlcmNvcHlfNjQuYyBiL2FyY2gveDg2L2xpYi91c2VyY29weV82NC5jCmluZGV4IDBjODlkMWIuLmY0ZGY2ZTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2xpYi91c2VyY29weV82NC5jCisrKyBiL2FyY2gveDg2L2xpYi91c2VyY29weV82NC5jCkBAIC0xNTgsMyArMTU4LDI2IEBACiB9CiBFWFBPUlRfU1lNQk9MKGNvcHlfaW5fdXNlcik7CiAKKy8qCisgKiBUcnkgdG8gY29weSBsYXN0IGJ5dGVzIGFuZCBjbGVhciB0aGUgcmVzdCBpZiBuZWVkZWQuCisgKiBTaW5jZSBwcm90ZWN0aW9uIGZhdWx0IGluIGNvcHlfZnJvbS90b191c2VyIGlzIG5vdCBhIG5vcm1hbCBzaXR1YXRpb24sCisgKiBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIG9wdGltaXplIHRhaWwgaGFuZGxpbmcuCisgKi8KK3Vuc2lnbmVkIGxvbmcKK2NvcHlfdXNlcl9oYW5kbGVfdGFpbChjaGFyICp0bywgY2hhciAqZnJvbSwgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCB6ZXJvcmVzdCkKK3sKKwljaGFyIGM7CisJdW5zaWduZWQgemVyb19sZW47CisKKwlmb3IgKDsgbGVuOyAtLWxlbikgeworCQlpZiAoX19nZXRfdXNlcl9ub2NoZWNrKGMsIGZyb20rKywgc2l6ZW9mKGNoYXIpKSkKKwkJCWJyZWFrOworCQlpZiAoX19wdXRfdXNlcl9ub2NoZWNrKGMsIHRvKyssIHNpemVvZihjaGFyKSkpCisJCQlicmVhazsKKwl9CisKKwlmb3IgKGMgPSAwLCB6ZXJvX2xlbiA9IGxlbjsgemVyb3Jlc3QgJiYgemVyb19sZW47IC0temVyb19sZW4pCisJCWlmIChfX3B1dF91c2VyX25vY2hlY2soYywgdG8rKywgc2l6ZW9mKGNoYXIpKSkKKwkJCWJyZWFrOworCXJldHVybiBsZW47Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWRlZmF1bHQvc2V0dXAuYyBiL2FyY2gveDg2L21hY2gtZGVmYXVsdC9zZXR1cC5jCmluZGV4IDBjMjhhMDcuLjQ4Mjc4ZmEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZGVmYXVsdC9zZXR1cC5jCisrKyBiL2FyY2gveDg2L21hY2gtZGVmYXVsdC9zZXR1cC5jCkBAIC0xMCw2ICsxMCwxNCBAQAogI2luY2x1ZGUgPGFzbS9lODIwLmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAKKy8qCisgKiBBbnkgcXVpcmtzIHRvIGJlIHBlcmZvcm1lZCB0byBpbml0aWFsaXplIHRpbWVycy9pcnFzL2V0Yz8KKyAqLworaW50ICgqYXJjaF90aW1lX2luaXRfcXVpcmspKHZvaWQpOworaW50ICgqYXJjaF9wcmVfaW50cl9pbml0X3F1aXJrKSh2b2lkKTsKK2ludCAoKmFyY2hfaW50cl9pbml0X3F1aXJrKSh2b2lkKTsKK2ludCAoKmFyY2hfdHJhcF9pbml0X3F1aXJrKSh2b2lkKTsKKwogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQogI2RlZmluZSBERUZBVUxUX1NFTkRfSVBJCSgxKQogI2Vsc2UKQEAgLTI5LDYgKzM3LDEwIEBACiAgKiovCiB2b2lkIF9faW5pdCBwcmVfaW50cl9pbml0X2hvb2sodm9pZCkKIHsKKwlpZiAoYXJjaF9wcmVfaW50cl9pbml0X3F1aXJrKSB7CisJCWlmIChhcmNoX3ByZV9pbnRyX2luaXRfcXVpcmsoKSkKKwkJCXJldHVybjsKKwl9CiAJaW5pdF9JU0FfaXJxcygpOwogfQogCkBAIC01Miw2ICs2NCwxMCBAQAogICoqLwogdm9pZCBfX2luaXQgaW50cl9pbml0X2hvb2sodm9pZCkKIHsKKwlpZiAoYXJjaF9pbnRyX2luaXRfcXVpcmspIHsKKwkJaWYgKGFyY2hfaW50cl9pbml0X3F1aXJrKCkpCisJCQlyZXR1cm47CisJfQogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCWFwaWNfaW50cl9pbml0KCk7CiAjZW5kaWYKQEAgLTY1LDcgKzgxLDcgQEAKICAqCiAgKiBEZXNjcmlwdGlvbjoKICAqCWdlbmVyYWxseSB1c2VkIHRvIGFjdGl2YXRlIGFueSBtYWNoaW5lIHNwZWNpZmljIGlkZW50aWZpY2F0aW9uCi0gKglyb3V0aW5lcyB0aGF0IG1heSBiZSBuZWVkZWQgYmVmb3JlIHNldHVwX2FyY2goKSBydW5zLiAgT24gVklTV1MKKyAqCXJvdXRpbmVzIHRoYXQgbWF5IGJlIG5lZWRlZCBiZWZvcmUgc2V0dXBfYXJjaCgpIHJ1bnMuICBPbiBWb3lhZ2VyCiAgKgl0aGlzIGlzIHVzZWQgdG8gZ2V0IHRoZSBib2FyZCByZXZpc2lvbiBhbmQgdHlwZS4KICAqKi8KIHZvaWQgX19pbml0IHByZV9zZXR1cF9hcmNoX2hvb2sodm9pZCkKQEAgLTgxLDYgKzk3LDEwIEBACiAgKiovCiB2b2lkIF9faW5pdCB0cmFwX2luaXRfaG9vayh2b2lkKQogeworCWlmIChhcmNoX3RyYXBfaW5pdF9xdWlyaykgeworCQlpZiAoYXJjaF90cmFwX2luaXRfcXVpcmsoKSkKKwkJCXJldHVybjsKKwl9CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTAgID0gewpAQCAtOTksNiArMTE5LDE2IEBACiAgKiovCiB2b2lkIF9faW5pdCB0aW1lX2luaXRfaG9vayh2b2lkKQogeworCWlmIChhcmNoX3RpbWVfaW5pdF9xdWlyaykgeworCQkvKgorCQkgKiBBIG5vbnplcm8gcmV0dXJuIGNvZGUgZG9lcyBub3QgbWVhbiBmYWlsdXJlLCBpdCBtZWFucworCQkgKiB0aGF0IHRoZSBhcmNoaXRlY3R1cmUgcXVpcmsgZG9lcyBub3Qgd2FudCBhbnkKKwkJICogZ2VuZXJpYyAodGltZXIpIHNldHVwIHRvIGJlIHBlcmZvcm1lZCBhZnRlciB0aGlzOgorCQkgKi8KKwkJaWYgKGFyY2hfdGltZV9pbml0X3F1aXJrKCkpCisJCQlyZXR1cm47CisJfQorCiAJaXJxMC5tYXNrID0gY3B1bWFza19vZl9jcHUoMCk7CiAJc2V0dXBfaXJxKDAsICZpcnEwKTsKIH0KQEAgLTE0Miw0NSArMTcyLDMgQEAKIAogbGF0ZV9pbml0Y2FsbChwcmludF9pcGlfbW9kZSk7CiAKLS8qKgotICogbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAgLSBIb29rIGZvciBtYWNoaW5lIHNwZWNpZmljIG1lbW9yeSBzZXR1cC4KLSAqCi0gKiBEZXNjcmlwdGlvbjoKLSAqCVRoaXMgaXMgaW5jbHVkZWQgbGF0ZSBpbiBrZXJuZWwvc2V0dXAuYyBzbyB0aGF0IGl0IGNhbiBtYWtlCi0gKgl1c2Ugb2YgYWxsIG9mIHRoZSBzdGF0aWMgZnVuY3Rpb25zLgotICoqLwotCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCi17Ci0JY2hhciAqd2hvOwotCi0KLQl3aG8gPSAiQklPUy1lODIwIjsKLQotCS8qCi0JICogVHJ5IHRvIGNvcHkgdGhlIEJJT1Mtc3VwcGxpZWQgRTgyMC1tYXAuCi0JICoKLQkgKiBPdGhlcndpc2UgZmFrZSBhIG1lbW9yeSBtYXA7IG9uZSBzZWN0aW9uIGZyb20gMGstPjY0MGssCi0JICogdGhlIG5leHQgc2VjdGlvbiBmcm9tIDFtYi0+YXBwcm9wcmlhdGVfbWVtX2sKLQkgKi8KLQlzYW5pdGl6ZV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgJmJvb3RfcGFyYW1zLmU4MjBfZW50cmllcyk7Ci0JaWYgKGNvcHlfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsIGJvb3RfcGFyYW1zLmU4MjBfZW50cmllcykKLQkgICAgPCAwKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbWVtX3NpemU7Ci0KLQkJLyogY29tcGFyZSByZXN1bHRzIGZyb20gb3RoZXIgbWV0aG9kcyBhbmQgdGFrZSB0aGUgZ3JlYXRlciAqLwotCQlpZiAoYm9vdF9wYXJhbXMuYWx0X21lbV9rCi0JCSAgICA8IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1faykgewotCQkJbWVtX3NpemUgPSBib290X3BhcmFtcy5zY3JlZW5faW5mby5leHRfbWVtX2s7Ci0JCQl3aG8gPSAiQklPUy04OCI7Ci0JCX0gZWxzZSB7Ci0JCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLmFsdF9tZW1fazsKLQkJCXdobyA9ICJCSU9TLWU4MDEiOwotCQl9Ci0KLQkJZTgyMC5ucl9tYXAgPSAwOwotCQlhZGRfbWVtb3J5X3JlZ2lvbigwLCBMT1dNRU1TSVpFKCksIEU4MjBfUkFNKTsKLQkJYWRkX21lbW9yeV9yZWdpb24oSElHSF9NRU1PUlksIG1lbV9zaXplIDw8IDEwLCBFODIwX1JBTSk7Ci0gIAl9Ci0JcmV0dXJuIHdobzsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hY2gtZXM3MDAwL01ha2VmaWxlIGIvYXJjaC94ODYvbWFjaC1lczcwMDAvTWFrZWZpbGUKaW5kZXggNjlkZDRkYS4uM2VmOGI0MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1lczcwMDAvTWFrZWZpbGUKKysrIGIvYXJjaC94ODYvbWFjaC1lczcwMDAvTWFrZWZpbGUKQEAgLTMsNCArMywzIEBACiAjCiAKIG9iai0kKENPTkZJR19YODZfRVM3MDAwKQk6PSBlczcwMDBwbGF0Lm8KLW9iai0kKENPTkZJR19YODZfR0VORVJJQ0FSQ0gpCTo9IGVzNzAwMHBsYXQubwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1lczcwMDAvZXM3MDAwcGxhdC5jIGIvYXJjaC94ODYvbWFjaC1lczcwMDAvZXM3MDAwcGxhdC5jCmluZGV4IGY1ZDZmN2QuLjQzNTRjZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZXM3MDAwL2VzNzAwMHBsYXQuYworKysgYi9hcmNoL3g4Ni9tYWNoLWVzNzAwMC9lczcwMDBwbGF0LmMKQEAgLTUyLDYgKzUyLDggQEAKIHN0YXRpYyBpbnQgCQkJbWlwX3BvcnQ7CiBzdGF0aWMgdW5zaWduZWQgbG9uZwkJbWlwX2FkZHIsIGhvc3RfYWRkcjsKIAoraW50IGVzNzAwMF9wbGF0OworCiAvKgogICogR1NJIG92ZXJyaWRlIGZvciBFUzcwMDAgcGxhdGZvcm1zLgogICovCkBAIC0xNzUsNTMgKzE3Nyw2IEBACiB9CiAjZW5kaWYKIAotLyoKLSAqIFRoaXMgZmlsZSBhbHNvIGdldHMgY29tcGlsZWQgaWYgQ09ORklHX1g4Nl9HRU5FUklDQVJDSCBpcyBzZXQuIEdlbmVyaWMKLSAqIGFyY2ggYWxyZWFkeSBoYXMgZ290IGZvbGxvd2luZyBmdW5jdGlvbiBkZWZpbml0aW9ucyAoYXNtLWdlbmVyaWMvZXM3MDAwLmMpCi0gKiBoZW5jZSBubyBuZWVkIHRvIGRlZmluZSB0aGVzZSBmb3IgdGhhdCBjYXNlLgotICovCi0jaWZuZGVmIENPTkZJR19YODZfR0VORVJJQ0FSQ0gKLXZvaWQgZXM3MDAwX3N3X2FwaWModm9pZCk7Ci12b2lkIF9faW5pdCBlbmFibGVfYXBpY19tb2RlKHZvaWQpCi17Ci0JZXM3MDAwX3N3X2FwaWMoKTsKLQlyZXR1cm47Ci19Ci0KLV9faW5pdCBpbnQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKLQkJY2hhciAqcHJvZHVjdGlkKQotewotCWlmIChtcGMtPm1wY19vZW1wdHIpIHsKLQkJc3RydWN0IG1wX2NvbmZpZ19vZW10YWJsZSAqb2VtX3RhYmxlID0KLQkJCShzdHJ1Y3QgbXBfY29uZmlnX29lbXRhYmxlICopbXBjLT5tcGNfb2VtcHRyOwotCQlpZiAoIXN0cm5jbXAob2VtLCAiVU5JU1lTIiwgNikpCi0JCQlyZXR1cm4gcGFyc2VfdW5pc3lzX29lbSgoY2hhciAqKW9lbV90YWJsZSk7Ci0JfQotCXJldHVybiAwOwotfQotI2lmZGVmIENPTkZJR19BQ1BJCi0vKiBIb29rIGZyb20gZ2VuZXJpYyBBQ1BJIHRhYmxlcy5jICovCi1pbnQgX19pbml0IGFjcGlfbWFkdF9vZW1fY2hlY2soY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVfaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBvZW1fYWRkcjsKLQlpZiAoIWZpbmRfdW5pc3lzX2FjcGlfb2VtX3RhYmxlKCZvZW1fYWRkcikpIHsKLQkJaWYgKGVzNzAwMF9jaGVja19kc2R0KCkpCi0JCQlyZXR1cm4gcGFyc2VfdW5pc3lzX29lbSgoY2hhciAqKW9lbV9hZGRyKTsKLQkJZWxzZSB7Ci0JCQlzZXR1cF91bmlzeXMoKTsKLQkJCXJldHVybiAxOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotI2Vsc2UKLWludCBfX2luaXQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCkKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotI2VuZGlmIC8qIENPRklHX1g4Nl9HRU5FUklDQVJDSCAqLwotCiBzdGF0aWMgdm9pZAogZXM3MDAwX3NwaW4oaW50IG4pCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvTWFrZWZpbGUgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvTWFrZWZpbGUKaW5kZXggMTlkNmQ0MC4uMGRiZDc4MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL01ha2VmaWxlCisrKyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9NYWtlZmlsZQpAQCAtMiw3ICsyLDExIEBACiAjIE1ha2VmaWxlIGZvciB0aGUgZ2VuZXJpYyBhcmNoaXRlY3R1cmUKICMKIAotRVhUUkFfQ0ZMQUdTCTo9IC1JYXJjaC94ODYva2VybmVsCitFWFRSQV9DRkxBR1MJCQk6PSAtSWFyY2gveDg2L2tlcm5lbAogCi1vYmoteQkJOj0gcHJvYmUubyBzdW1taXQubyBiaWdzbXAubyBlczcwMDAubyBkZWZhdWx0Lm8gCi1vYmoteQkJKz0gLi4vLi4veDg2L21hY2gtZXM3MDAwLworb2JqLXkJCQkJOj0gcHJvYmUubyBkZWZhdWx0Lm8KK29iai0kKENPTkZJR19YODZfTlVNQVEpCQkrPSBudW1hcS5vCitvYmotJChDT05GSUdfWDg2X1NVTU1JVCkJKz0gc3VtbWl0Lm8KK29iai0kKENPTkZJR19YODZfQklHU01QKQkrPSBiaWdzbXAubworb2JqLSQoQ09ORklHX1g4Nl9FUzcwMDApCSs9IGVzNzAwMC5vCitvYmotJChDT05GSUdfWDg2X0VTNzAwMCkJKz0gLi4vLi4veDg2L21hY2gtZXM3MDAwLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL2JpZ3NtcC5jIGIvYXJjaC94ODYvbWFjaC1nZW5lcmljL2JpZ3NtcC5jCmluZGV4IDk1ZmM0NjMuLjU5ZDc3MTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9iaWdzbXAuYworKysgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvYmlnc21wLmMKQEAgLTIzLDEwICsyMyw4IEBACiAKIHN0YXRpYyBpbnQgaHBfaHRfYmlnc21wKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQogewotI2lmZGVmIENPTkZJR19YODZfR0VORVJJQ0FSQ0gKIAlwcmludGsoS0VSTl9OT1RJQ0UgIiVzIGRldGVjdGVkOiBmb3JjZSB1c2Ugb2YgYXBpYz1iaWdzbXBcbiIsIGQtPmlkZW50KTsKIAlkbWlfYmlnc21wID0gMTsKLSNlbmRpZgogCXJldHVybiAwOwogfQogCkBAIC00OCw3ICs0Niw3IEBACiBzdGF0aWMgaW50IHByb2JlX2JpZ3NtcCh2b2lkKQogewogCWlmIChkZWZfdG9fYmlnc21wKQotCWRtaV9iaWdzbXAgPSAxOworCQlkbWlfYmlnc21wID0gMTsKIAllbHNlCiAJCWRtaV9jaGVja19zeXN0ZW0oYmlnc21wX2RtaV90YWJsZSk7CiAJcmV0dXJuIGRtaV9iaWdzbXA7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvbnVtYXEuYyBiL2FyY2gveDg2L21hY2gtZ2VuZXJpYy9udW1hcS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwOTFlNjgKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvbnVtYXEuYwpAQCAtMCwwICsxLDQxIEBACisvKgorICogQVBJQyBkcml2ZXIgZm9yIHRoZSBJQk0gTlVNQVEgY2hpcHNldC4KKyAqLworI2RlZmluZSBBUElDX0RFRklOSVRJT04gMQorI2luY2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgorI2luY2x1ZGUgPGFzbS9nZW5hcGljLmg+CisjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgorI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLW51bWFxL21hY2hfYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLW51bWFxL21hY2hfYXBpY2RlZi5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLW51bWFxL21hY2hfaXBpLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtbnVtYXEvbWFjaF9tcHBhcnNlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtbnVtYXEvbWFjaF93YWtlY3B1Lmg+CisjaW5jbHVkZSA8YXNtL251bWFxLmg+CisKK3N0YXRpYyBpbnQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKKwkJY2hhciAqcHJvZHVjdGlkKQoreworCW51bWFxX21wc19vZW1fY2hlY2sobXBjLCBvZW0sIHByb2R1Y3RpZCk7CisJcmV0dXJuIGZvdW5kX251bWFxOworfQorCitzdGF0aWMgaW50IHByb2JlX251bWFxKHZvaWQpCit7CisJLyogYWxyZWFkeSBrbm93IGZyb20gZ2V0X21lbWNmZ19udW1hcSgpICovCisJcmV0dXJuIGZvdW5kX251bWFxOworfQorCisvKiBIb29rIGZyb20gZ2VuZXJpYyBBQ1BJIHRhYmxlcy5jICovCitzdGF0aWMgaW50IGFjcGlfbWFkdF9vZW1fY2hlY2soY2hhciAqb2VtX2lkLCBjaGFyICpvZW1fdGFibGVfaWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBnZW5hcGljIGFwaWNfbnVtYXEgPSBBUElDX0lOSVQoIk5VTUFRIiwgcHJvYmVfbnVtYXEpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC1nZW5lcmljL3Byb2JlLmMgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvcHJvYmUuYwppbmRleCBjNWFlNzUxLi41YTdlNDYxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvcHJvYmUuYworKysgYi9hcmNoL3g4Ni9tYWNoLWdlbmVyaWMvcHJvYmUuYwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CiAjaW5jbHVkZSA8YXNtL2dlbmFwaWMuaD4KIAorZXh0ZXJuIHN0cnVjdCBnZW5hcGljIGFwaWNfbnVtYXE7CiBleHRlcm4gc3RydWN0IGdlbmFwaWMgYXBpY19zdW1taXQ7CiBleHRlcm4gc3RydWN0IGdlbmFwaWMgYXBpY19iaWdzbXA7CiBleHRlcm4gc3RydWN0IGdlbmFwaWMgYXBpY19lczcwMDA7CkBAIC0yNCw5ICsyNSwxOCBAQAogc3RydWN0IGdlbmFwaWMgKmdlbmFwaWMgPSAmYXBpY19kZWZhdWx0OwogCiBzdGF0aWMgc3RydWN0IGdlbmFwaWMgKmFwaWNfcHJvYmVbXSBfX2luaXRkYXRhID0geworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwkmYXBpY19udW1hcSwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfU1VNTUlUCiAJJmFwaWNfc3VtbWl0LAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1g4Nl9CSUdTTVAKIAkmYXBpY19iaWdzbXAsCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfWDg2X0VTNzAwMAogCSZhcGljX2VzNzAwMCwKKyNlbmRpZgogCSZhcGljX2RlZmF1bHQsCS8qIG11c3QgYmUgbGFzdCAqLwogCU5VTEwsCiB9OwpAQCAtNTQsNiArNjQsNyBAQAogCiB2b2lkIF9faW5pdCBnZW5lcmljX2JpZ3NtcF9wcm9iZSh2b2lkKQogeworI2lmZGVmIENPTkZJR19YODZfQklHU01QCiAJLyoKIAkgKiBUaGlzIHJvdXRpbmUgaXMgdXNlZCB0byBzd2l0Y2ggdG8gYmlnc21wIG1vZGUgd2hlbgogCSAqIC0gVGhlcmUgaXMgbm8gYXBpYz0gb3B0aW9uIHNwZWNpZmllZCBieSB0aGUgdXNlcgpAQCAtNjcsNiArNzgsNyBAQAogCQkJcHJpbnRrKEtFUk5fSU5GTyAiT3ZlcnJpZGluZyBBUElDIGRyaXZlciB3aXRoICVzXG4iLAogCQkJICAgICAgIGdlbmFwaWMtPm5hbWUpOwogCQl9CisjZW5kaWYKIH0KIAogdm9pZCBfX2luaXQgZ2VuZXJpY19hcGljX3Byb2JlKHZvaWQpCkBAIC04OCw3ICsxMDAsOCBAQAogCiAvKiBUaGVzZSBmdW5jdGlvbnMgY2FuIHN3aXRjaCB0aGUgQVBJQyBldmVuIGFmdGVyIHRoZSBpbml0aWFsIC0+cHJvYmUoKSAqLwogCi1pbnQgX19pbml0IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sIGNoYXIgKnByb2R1Y3RpZCkKK2ludCBfX2luaXQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwKKwkJCQkgY2hhciAqcHJvZHVjdGlkKQogewogCWludCBpOwogCWZvciAoaSA9IDA7IGFwaWNfcHJvYmVbaV07ICsraSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy9NYWtlZmlsZSBiL2FyY2gveDg2L21hY2gtdmlzd3MvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgzNWZkOTYuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotIwotIyBNYWtlZmlsZSBmb3IgdGhlIGxpbnV4IGtlcm5lbC4KLSMKLQotb2JqLXkJCQkJOj0gc2V0dXAubyB0cmFwcy5vIHJlYm9vdC5vCi0KLW9iai0kKENPTkZJR19YODZfVklTV1NfQVBJQykJKz0gdmlzd3NfYXBpYy5vCi1vYmotJChDT05GSUdfWDg2X0xPQ0FMX0FQSUMpCSs9IG1wcGFyc2UubwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy9tcHBhcnNlLmMgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL21wcGFyc2UuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTc0ODRlOS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL21wcGFyc2UuYworKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLQotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXAuaD4KLQotI2luY2x1ZGUgPGFzbS9zbXAuaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLQotI2luY2x1ZGUgImNvYmFsdC5oIgotI2luY2x1ZGUgIm1hY2hfYXBpYy5oIgotCi0vKiBIYXZlIHdlIGZvdW5kIGFuIE1QIHRhYmxlICovCi1pbnQgc21wX2ZvdW5kX2NvbmZpZzsKLQotaW50IHBpY19tb2RlOwotCi1leHRlcm4gdW5zaWduZWQgaW50IF9fY3B1aW5pdGRhdGEgbWF4Y3B1czsKLQotLyoKLSAqIFRoZSBWaXN1YWwgV29ya3N0YXRpb24gaXMgSW50ZWwgTVAgY29tcGxpYW50IGluIHRoZSBoYXJkd2FyZQotICogc2Vuc2UsIGJ1dCBpdCBkb2Vzbid0IGhhdmUgYSBCSU9TKC1jb25maWd1cmF0aW9uIHRhYmxlKS4KLSAqIE5vIHByb2JsZW0gZm9yIExpbnV4LgotICovCi0KLXN0YXRpYyB2b2lkIF9faW5pdCBNUF9wcm9jZXNzb3JfaW5mbyAoc3RydWN0IG1wY19jb25maWdfcHJvY2Vzc29yICptKQotewotCWludCB2ZXIsIGxvZ2ljYWxfYXBpY2lkOwotCXBoeXNpZF9tYXNrX3QgYXBpY19jcHVzOwotCi0JaWYgKCEobS0+bXBjX2NwdWZsYWcgJiBDUFVfRU5BQkxFRCkpCi0JCXJldHVybjsKLQotCWxvZ2ljYWxfYXBpY2lkID0gbS0+bXBjX2FwaWNpZDsKLQlwcmludGsoS0VSTl9JTkZPICIlc0NQVSAjJWQgJXU6JXUgQVBJQyB2ZXJzaW9uICVkXG4iLAotCSAgICAgICBtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SID8gIkJvb3R1cCAiIDogIiIsCi0JICAgICAgIG0tPm1wY19hcGljaWQsCi0JICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9GQU1JTFlfTUFTSykgPj4gOCwKLQkgICAgICAgKG0tPm1wY19jcHVmZWF0dXJlICYgQ1BVX01PREVMX01BU0spID4+IDQsCi0JICAgICAgIG0tPm1wY19hcGljdmVyKTsKLQotCWlmIChtLT5tcGNfY3B1ZmxhZyAmIENQVV9CT09UUFJPQ0VTU09SKQotCQlib290X2NwdV9waHlzaWNhbF9hcGljaWQgPSBtLT5tcGNfYXBpY2lkOwotCi0JdmVyID0gbS0+bXBjX2FwaWN2ZXI7Ci0JaWYgKCh2ZXIgPj0gMHgxNCAmJiBtLT5tcGNfYXBpY2lkID49IDB4ZmYpIHx8IG0tPm1wY19hcGljaWQgPj0gMHhmKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiUHJvY2Vzc29yICMlZCBJTlZBTElELiAoTWF4IElEOiAlZCkuXG4iLAotCQkJbS0+bXBjX2FwaWNpZCwgTUFYX0FQSUNTKTsKLQkJcmV0dXJuOwotCX0KLQotCWFwaWNfY3B1cyA9IGFwaWNpZF90b19jcHVfcHJlc2VudChtLT5tcGNfYXBpY2lkKTsKLQlwaHlzaWRzX29yKHBoeXNfY3B1X3ByZXNlbnRfbWFwLCBwaHlzX2NwdV9wcmVzZW50X21hcCwgYXBpY19jcHVzKTsKLQkvKgotCSAqIFZhbGlkYXRlIHZlcnNpb24KLQkgKi8KLQlpZiAodmVyID09IDB4MCkgewotCQlwcmludGsoS0VSTl9FUlIgIkJJT1MgYnVnLCBBUElDIHZlcnNpb24gaXMgMCBmb3IgQ1BVIyVkISAiCi0JCQkiZml4aW5nIHVwIHRvIDB4MTAuICh0ZWxsIHlvdXIgaHcgdmVuZG9yKVxuIiwKLQkJCW0tPm1wY19hcGljaWQpOwotCQl2ZXIgPSAweDEwOwotCX0KLQlhcGljX3ZlcnNpb25bbS0+bXBjX2FwaWNpZF0gPSB2ZXI7Ci19Ci0KLXZvaWQgX19pbml0IGZpbmRfc21wX2NvbmZpZyh2b2lkKQotewotCXN0cnVjdCBtcGNfY29uZmlnX3Byb2Nlc3NvciAqbXAgPSBwaHlzX3RvX3ZpcnQoQ09fQ1BVX1RBQl9QSFlTKTsKLQl1bnNpZ25lZCBzaG9ydCBuY3B1cyA9IHJlYWR3KHBoeXNfdG9fdmlydChDT19DUFVfTlVNX1BIWVMpKTsKLQotCWlmIChuY3B1cyA+IENPX0NQVV9NQVgpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiZmluZF92aXN3c19zbXA6IGdvdCBjcHUgY291bnQgb2YgJWQgYXQgJXBcbiIsCi0JCQluY3B1cywgbXApOwotCi0JCW5jcHVzID0gQ09fQ1BVX01BWDsKLQl9Ci0KLQlpZiAobmNwdXMgPiBtYXhjcHVzKQotCQluY3B1cyA9IG1heGNwdXM7Ci0KLQlzbXBfZm91bmRfY29uZmlnID0gMTsKLQl3aGlsZSAobmNwdXMtLSkKLQkJTVBfcHJvY2Vzc29yX2luZm8obXArKyk7Ci0KLQltcF9sYXBpY19hZGRyID0gQVBJQ19ERUZBVUxUX1BIWVNfQkFTRTsKLX0KLQotdm9pZCBfX2luaXQgZ2V0X3NtcF9jb25maWcgKHZvaWQpCi17Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3JlYm9vdC5jIGIvYXJjaC94ODYvbWFjaC12aXN3cy9yZWJvb3QuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTkzMzJhYi4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3JlYm9vdC5jCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlICJwaWl4NC5oIgotCi12b2lkICgqcG1fcG93ZXJfb2ZmKSh2b2lkKTsKLUVYUE9SVF9TWU1CT0wocG1fcG93ZXJfb2ZmKTsKLQotdm9pZCBtYWNoaW5lX3NodXRkb3duKHZvaWQpCi17Ci0jaWZkZWYgQ09ORklHX1NNUAotCXNtcF9zZW5kX3N0b3AoKTsKLSNlbmRpZgotfQotCi12b2lkIG1hY2hpbmVfZW1lcmdlbmN5X3Jlc3RhcnQodm9pZCkKLXsKLQkvKgotCSAqIFZpc3VhbCBXb3Jrc3RhdGlvbnMgcmVzdGFydCBhZnRlciB0aGlzCi0JICogcmVnaXN0ZXIgaXMgcG9rZWQgb24gdGhlIFBJSVg0Ci0JICovCi0Jb3V0YihQSUlYNF9SRVNFVF9WQUwsIFBJSVg0X1JFU0VUX1BPUlQpOwotfQotCi12b2lkIG1hY2hpbmVfcmVzdGFydChjaGFyICogX191bnVzZWQpCi17Ci0JbWFjaGluZV9zaHV0ZG93bigpOwotCW1hY2hpbmVfZW1lcmdlbmN5X3Jlc3RhcnQoKTsKLX0KLQotdm9pZCBtYWNoaW5lX3Bvd2VyX29mZih2b2lkKQotewotCXVuc2lnbmVkIHNob3J0IHBtX3N0YXR1czsKLQlleHRlcm4gdW5zaWduZWQgaW50IHBjaV9idXMwOwotCi0Jd2hpbGUgKChwbV9zdGF0dXMgPSBpbncoUE1TVFNfUE9SVCkpICYgMHgxMDApCi0JCW91dHcocG1fc3RhdHVzLCBQTVNUU19QT1JUKTsKLQotCW91dHcoUE1fU1VTUEVORF9FTkFCTEUsIFBNQ05UUkxfUE9SVCk7Ci0KLQltZGVsYXkoMTApOwotCi0jZGVmaW5lIFBDSV9DT05GMV9BRERSRVNTKGJ1cywgZGV2Zm4sIHJlZykgXAotCSgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2Zm4gPDwgOCkgfCAocmVnICYgfjMpKQotCi0Jb3V0bChQQ0lfQ09ORjFfQUREUkVTUyhwY2lfYnVzMCwgU1BFQ0lBTF9ERVYsIFNQRUNJQUxfUkVHKSwgMHhDRjgpOwotCW91dGwoUElJWF9TUEVDSUFMX1NUT1AsIDB4Q0ZDKTsKLX0KLQotdm9pZCBtYWNoaW5lX2hhbHQodm9pZCkKLXsKLX0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12aXN3cy9zZXR1cC5jIGIvYXJjaC94ODYvbWFjaC12aXN3cy9zZXR1cC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTRjOWRiLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3Mvc2V0dXAuYworKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCwwIEBACi0vKgotICogIFVubWFpbnRhaW5lZCBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIHN1cHBvcnQuCi0gKiAgU3BsaXQgb3V0IGZyb20gc2V0dXAuYyBieSBkYXZlakBzdXNlLmRlCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLQotI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4KLSNpbmNsdWRlIDxhc20vYXJjaF9ob29rcy5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9lODIwLmg+Ci0jaW5jbHVkZSA8YXNtL3NldHVwLmg+Ci0jaW5jbHVkZSAiY29iYWx0LmgiCi0jaW5jbHVkZSAicGlpeDQuaCIKLQotaW50IG5vX2Jyb2FkY2FzdDsKLQotY2hhciB2aXN3c19ib2FyZF90eXBlID0gLTE7Ci1jaGFyIHZpc3dzX2JvYXJkX3JldiA9IC0xOwotCi12b2lkIF9faW5pdCB2aXN3c19nZXRfYm9hcmRfdHlwZV9hbmRfcmV2KHZvaWQpCi17Ci0JaW50IHJhdzsKLQotCXZpc3dzX2JvYXJkX3R5cGUgPSAoY2hhcikoaW5iX3AoUElJWF9HUElfQkRfUkVHKSAmIFBJSVhfR1BJX0JEX1JFRykKLQkJCQkJCQkgPj4gUElJWF9HUElfQkRfU0hJRlQ7Ci0JLyoKLQkgKiBHZXQgQm9hcmQgcmV2LgotCSAqIEZpcnN0LCB3ZSBoYXZlIHRvIGluaXRpYWxpemUgdGhlIDMwNyBwYXJ0IHRvIGFsbG93IHVzIGFjY2VzcwotCSAqIHRvIHRoZSBHUElPIHJlZ2lzdGVycy4gIExldCdzIG1hcCB0aGVtIGF0IDB4MGZjMCB3aGljaCBpcyByaWdodAotCSAqIGFmdGVyIHRoZSBQSUlYNCBQTSBzZWN0aW9uLgotCSAqLwotCW91dGJfcChTSU9fREVWX1NFTCwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX0dQX0RFViwgU0lPX0RBVEEpOwkvKiBUYWxrIHRvIEdQSU8gcmVncy4gKi8KLQotCW91dGJfcChTSU9fREVWX01TQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX0dQX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KLQotCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX0dQX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8KLQotCW91dGJfcChTSU9fREVWX0VOQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyogRW5hYmxlIEdQSU8gcmVnaXN0ZXJzLiAqLwotCi0JLyoKLQkgKiBOb3csIHdlIGhhdmUgdG8gbWFwIHRoZSBwb3dlciBtYW5hZ2VtZW50IHNlY3Rpb24gdG8gd3JpdGUKLQkgKiBhIGJpdCB3aGljaCBlbmFibGVzIGFjY2VzcyB0byB0aGUgR1BJTyByZWdpc3RlcnMuCi0JICogV2hhdCBsdW5hdGljIGNhbWUgdXAgd2l0aCB0aGlzIHNoaXQ/Ci0JICovCi0Jb3V0Yl9wKFNJT19ERVZfU0VMLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fUE1fREVWLCBTSU9fREFUQSk7CS8qIFRhbGsgdG8gR1BJTyByZWdzLiAqLwotCi0Jb3V0Yl9wKFNJT19ERVZfTVNCLCBTSU9fSU5ERVgpOwotCW91dGJfcChTSU9fUE1fTVNCLCBTSU9fREFUQSk7CS8qIE1TQiBvZiBQTSBiYXNlIGFkZHJlc3MgKi8KLQotCW91dGJfcChTSU9fREVWX0xTQiwgU0lPX0lOREVYKTsKLQlvdXRiX3AoU0lPX1BNX0xTQiwgU0lPX0RBVEEpOwkvKiBMU0Igb2YgUE0gYmFzZSBhZGRyZXNzICovCi0KLQlvdXRiX3AoU0lPX0RFVl9FTkIsIFNJT19JTkRFWCk7Ci0Jb3V0Yl9wKDEsIFNJT19EQVRBKTsJCS8qIEVuYWJsZSBQTSByZWdpc3RlcnMuICovCi0KLQkvKgotCSAqIE5vdywgd3JpdGUgdGhlIFBNIHJlZ2lzdGVyIHdoaWNoIGVuYWJsZXMgdGhlIEdQSU8gcmVnaXN0ZXJzLgotCSAqLwotCW91dGJfcChTSU9fUE1fRkVSMiwgU0lPX1BNX0lOREVYKTsKLQlvdXRiX3AoU0lPX1BNX0dQX0VOLCBTSU9fUE1fREFUQSk7Ci0KLQkvKgotCSAqIE5vdywgaW5pdGlhbGl6ZSB0aGUgR1BJTyByZWdpc3RlcnMuCi0JICogV2Ugd2FudCB0aGVtIGFsbCB0byBiZSBpbnB1dHMgd2hpY2ggaXMgdGhlCi0JICogcG93ZXIgb24gZGVmYXVsdCwgc28gbGV0J3MgbGVhdmUgdGhlbSBhbG9uZS4KLQkgKiBTbywgbGV0J3MganVzdCByZWFkIHRoZSBib2FyZCByZXYhCi0JICovCi0JcmF3ID0gaW5iX3AoU0lPX0dQX0RBVEExKTsKLQlyYXcgJj0gMHg3ZjsJLyogNyBiaXRzIG9mIHZhbGlkIGJvYXJkIHJldmlzaW9uIElELiAqLwotCi0JaWYgKHZpc3dzX2JvYXJkX3R5cGUgPT0gVklTV1NfMzIwKSB7Ci0JCWlmIChyYXcgPCAweDYpIHsKLQkJCXZpc3dzX2JvYXJkX3JldiA9IDQ7Ci0JCX0gZWxzZSBpZiAocmF3IDwgMHhjKSB7Ci0JCQl2aXN3c19ib2FyZF9yZXYgPSA1OwotCQl9IGVsc2UgewotCQkJdmlzd3NfYm9hcmRfcmV2ID0gNjsKLQkJfQotCX0gZWxzZSBpZiAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU181NDApIHsKLQkJCXZpc3dzX2JvYXJkX3JldiA9IDI7Ci0JCX0gZWxzZSB7Ci0JCQl2aXN3c19ib2FyZF9yZXYgPSByYXc7Ci0JCX0KLQotCXByaW50ayhLRVJOX0lORk8gIlNpbGljb24gR3JhcGhpY3MgVmlzdWFsIFdvcmtzdGF0aW9uICVzIChyZXYgJWQpIGRldGVjdGVkXG4iLAotCSAgICAgICAodmlzd3NfYm9hcmRfdHlwZSA9PSBWSVNXU18zMjAgPyAiMzIwIiA6Ci0JICAgICAgICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzU0MCA/ICI1NDAiIDoKLQkJInVua25vd24iKSksIHZpc3dzX2JvYXJkX3Jldik7Ci19Ci0KLXZvaWQgX19pbml0IHByZV9pbnRyX2luaXRfaG9vayh2b2lkKQotewotCWluaXRfVklTV1NfQVBJQ19pcnFzKCk7Ci19Ci0KLXZvaWQgX19pbml0IGludHJfaW5pdF9ob29rKHZvaWQpCi17Ci0jaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCi0JYXBpY19pbnRyX2luaXQoKTsKLSNlbmRpZgotfQotCi12b2lkIF9faW5pdCBwcmVfc2V0dXBfYXJjaF9ob29rKCkKLXsKLQl2aXN3c19nZXRfYm9hcmRfdHlwZV9hbmRfcmV2KCk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGlycTAgPSB7Ci0JLmhhbmRsZXIgPQl0aW1lcl9pbnRlcnJ1cHQsCi0JLmZsYWdzID0JSVJRRl9ESVNBQkxFRCB8IElSUUZfSVJRUE9MTCwKLQkubmFtZSA9CQkidGltZXIiLAotfTsKLQotdm9pZCBfX2luaXQgdGltZV9pbml0X2hvb2sodm9pZCkKLXsKLQlwcmludGsoS0VSTl9JTkZPICJTdGFydGluZyBDb2JhbHQgVGltZXIgc3lzdGVtIGNsb2NrXG4iKTsKLQotCS8qIFNldCB0aGUgY291bnRkb3duIHZhbHVlICovCi0JY29fY3B1X3dyaXRlKENPX0NQVV9USU1FVkFMLCBDT19USU1FX0haL0haKTsKLQotCS8qIFN0YXJ0IHRoZSB0aW1lciAqLwotCWNvX2NwdV93cml0ZShDT19DUFVfQ1RSTCwgY29fY3B1X3JlYWQoQ09fQ1BVX0NUUkwpIHwgQ09fQ1RSTF9USU1FUlVOKTsKLQotCS8qIEVuYWJsZSAodW5tYXNrKSB0aGUgdGltZXIgaW50ZXJydXB0ICovCi0JY29fY3B1X3dyaXRlKENPX0NQVV9DVFJMLCBjb19jcHVfcmVhZChDT19DUFVfQ1RSTCkgJiB+Q09fQ1RSTF9USU1FTUFTSyk7Ci0KLQkvKiBXaXJlIGNwdSBJRFQgZW50cnkgdG8gcy93IGhhbmRsZXIgKGFuZCBDb2JhbHQgQVBJQyB0byBJRFQpICovCi0Jc2V0dXBfaXJxKDAsICZpcnEwKTsKLX0KLQotLyogSG9vayBmb3IgbWFjaGluZSBzcGVjaWZpYyBtZW1vcnkgc2V0dXAuICovCi0KLSNkZWZpbmUgTUIgKDEwMjQgKiAxMDI0KQotCi11bnNpZ25lZCBsb25nIHNnaXZ3ZmJfbWVtX3BoeXM7Ci11bnNpZ25lZCBsb25nIHNnaXZ3ZmJfbWVtX3NpemU7Ci1FWFBPUlRfU1lNQk9MKHNnaXZ3ZmJfbWVtX3BoeXMpOwotRVhQT1JUX1NZTUJPTChzZ2l2d2ZiX21lbV9zaXplKTsKLQotbG9uZyBsb25nIG1lbV9zaXplIF9faW5pdGRhdGEgPSAwOwotCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpCi17Ci0JbG9uZyBsb25nIGdmeF9tZW1fc2l6ZSA9IDggKiBNQjsKLQotCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOwotCi0JaWYgKCFtZW1fc2l6ZSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJCb290bG9hZGVyIGRpZG4ndCBzZXQgbWVtb3J5IHNpemUsIHVwZ3JhZGUgaXQgIVxuIik7Ci0JCW1lbV9zaXplID0gMTI4ICogTUI7Ci0JfQotCi0JLyoKLQkgKiB0aGlzIGhhcmRjb2RlcyB0aGUgZ3JhcGhpY3MgbWVtb3J5IHRvIDggTUIKLQkgKiBpdCByZWFsbHkgc2hvdWxkIGJlIHNpemVkIGR5bmFtaWNhbGx5IChvciBhdCBsZWFzdAotCSAqIHNldCBhcyBhIGJvb3QgcGFyYW0pCi0JICovCi0JaWYgKCFzZ2l2d2ZiX21lbV9zaXplKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkRlZmF1bHRpbmcgdG8gOCBNQiBmcmFtZWJ1ZmZlciBzaXplXG4iKTsKLQkJc2dpdndmYl9tZW1fc2l6ZSA9IDggKiBNQjsKLQl9Ci0KLQkvKgotCSAqIFRyaW0gdG8gbmVhcmVzdCBNQgotCSAqLwotCXNnaXZ3ZmJfbWVtX3NpemUgJj0gfigoMSA8PCAyMCkgLSAxKTsKLQlzZ2l2d2ZiX21lbV9waHlzID0gbWVtX3NpemUgLSBnZnhfbWVtX3NpemU7Ci0KLQlhZGRfbWVtb3J5X3JlZ2lvbigwLCBMT1dNRU1TSVpFKCksIEU4MjBfUkFNKTsKLQlhZGRfbWVtb3J5X3JlZ2lvbihISUdIX01FTU9SWSwgbWVtX3NpemUgLSBzZ2l2d2ZiX21lbV9zaXplIC0gSElHSF9NRU1PUlksIEU4MjBfUkFNKTsKLQlhZGRfbWVtb3J5X3JlZ2lvbihzZ2l2d2ZiX21lbV9waHlzLCBzZ2l2d2ZiX21lbV9zaXplLCBFODIwX1JFU0VSVkVEKTsKLQotCXJldHVybiAiUFJPTSI7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3RyYXBzLmMgYi9hcmNoL3g4Ni9tYWNoLXZpc3dzL3RyYXBzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmYWM2YmEuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvbWFjaC12aXN3cy90cmFwcy5jCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyogVklTV1MgdHJhcHMgKi8KLQotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgotI2luY2x1ZGUgPGxpbnV4L3BjaV9pZHMuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9hcmNoX2hvb2tzLmg+Ci0jaW5jbHVkZSA8YXNtL2FwaWMuaD4KLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJsaXRoaXVtLmgiCi0KLQotI2RlZmluZSBBMDEyMzQgKExJX0lOVEFfMCB8IExJX0lOVEFfMSB8IExJX0lOVEFfMiB8IExJX0lOVEFfMyB8IExJX0lOVEFfNCkKLSNkZWZpbmUgQkNEIChMSV9JTlRCIHwgTElfSU5UQyB8IExJX0lOVEQpCi0jZGVmaW5lIEFMTERFVlMgKEEwMTIzNCB8IEJDRCkKLQotc3RhdGljIF9faW5pdCB2b2lkIGxpdGhpdW1faW5pdCh2b2lkKQotewotCXNldF9maXhtYXAoRklYX0xJX1BDSUEsIExJX1BDSV9BX1BIWVMpOwotCXNldF9maXhtYXAoRklYX0xJX1BDSUIsIExJX1BDSV9CX1BIWVMpOwotCi0JaWYgKChsaV9wY2lhX3JlYWQxNihQQ0lfVkVORE9SX0lEKSAhPSBQQ0lfVkVORE9SX0lEX1NHSSkgfHwKLQkgICAgKGxpX3BjaWFfcmVhZDE2KFBDSV9ERVZJQ0VfSUQpICE9IFBDSV9ERVZJQ0VfSURfU0dJX0xJVEhJVU0pKSB7Ci0JCXByaW50ayhLRVJOX0VNRVJHICJMaXRoaXVtIGhvc3RicmlkZ2UgJWMgbm90IGZvdW5kXG4iLCAnQScpOwotCQlwYW5pYygiVGhpcyBtYWNoaW5lIGlzIG5vdCBTR0kgVmlzdWFsIFdvcmtzdGF0aW9uIDMyMC81NDAiKTsKLQl9Ci0KLQlpZiAoKGxpX3BjaWJfcmVhZDE2KFBDSV9WRU5ET1JfSUQpICE9IFBDSV9WRU5ET1JfSURfU0dJKSB8fAotCSAgICAobGlfcGNpYl9yZWFkMTYoUENJX0RFVklDRV9JRCkgIT0gUENJX0RFVklDRV9JRF9TR0lfTElUSElVTSkpIHsKLQkJcHJpbnRrKEtFUk5fRU1FUkcgIkxpdGhpdW0gaG9zdGJyaWRnZSAlYyBub3QgZm91bmRcbiIsICdCJyk7Ci0JCXBhbmljKCJUaGlzIG1hY2hpbmUgaXMgbm90IFNHSSBWaXN1YWwgV29ya3N0YXRpb24gMzIwLzU0MCIpOwotCX0KLQotCWxpX3BjaWFfd3JpdGUxNihMSV9QQ0lfSU5URU4sIEFMTERFVlMpOwotCWxpX3BjaWJfd3JpdGUxNihMSV9QQ0lfSU5URU4sIEFMTERFVlMpOwotfQotCi1zdGF0aWMgX19pbml0IHZvaWQgY29iYWx0X2luaXQodm9pZCkKLXsKLQkvKgotCSAqIE9uIG5vcm1hbCBTTVAgUEMgdGhpcyBpcyB1c2VkIG9ubHkgd2l0aCBTTVAsIGJ1dCB3ZSBoYXZlIHRvCi0JICogdXNlIGl0IGFuZCBzZXQgaXQgdXAgaGVyZSB0byBzdGFydCB0aGUgQ29iYWx0IGNsb2NrCi0JICovCi0Jc2V0X2ZpeG1hcChGSVhfQVBJQ19CQVNFLCBBUElDX0RFRkFVTFRfUEhZU19CQVNFKTsKLQlzZXR1cF9sb2NhbF9BUElDKCk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiTG9jYWwgQVBJQyBWZXJzaW9uICUjeCwgSUQgJSN4XG4iLAotCQkodW5zaWduZWQgaW50KWFwaWNfcmVhZChBUElDX0xWUiksCi0JCSh1bnNpZ25lZCBpbnQpYXBpY19yZWFkKEFQSUNfSUQpKTsKLQotCXNldF9maXhtYXAoRklYX0NPX0NQVSwgQ09fQ1BVX1BIWVMpOwotCXNldF9maXhtYXAoRklYX0NPX0FQSUMsIENPX0FQSUNfUEhZUyk7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQ29iYWx0IFJldmlzaW9uICUjbHgsIEFQSUMgSUQgJSNseFxuIiwKLQkJY29fY3B1X3JlYWQoQ09fQ1BVX1JFViksIGNvX2FwaWNfcmVhZChDT19BUElDX0lEKSk7Ci0KLQkvKiBFbmFibGUgQ29iYWx0IEFQSUMgYmVpbmcgY2FyZWZ1bCB0byBOT1QgY2hhbmdlIHRoZSBJRCEgKi8KLQljb19hcGljX3dyaXRlKENPX0FQSUNfSUQsIGNvX2FwaWNfcmVhZChDT19BUElDX0lEKSB8IENPX0FQSUNfRU5BQkxFKTsKLQotCXByaW50ayhLRVJOX0lORk8gIkNvYmFsdCBBUElDIGVuYWJsZWQ6IElEIHJlZyAlI2x4XG4iLAotCQljb19hcGljX3JlYWQoQ09fQVBJQ19JRCkpOwotfQotCi12b2lkIF9faW5pdCB0cmFwX2luaXRfaG9vayh2b2lkKQotewotCWxpdGhpdW1faW5pdCgpOwotCWNvYmFsdF9pbml0KCk7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZpc3dzL3Zpc3dzX2FwaWMuYyBiL2FyY2gveDg2L21hY2gtdmlzd3Mvdmlzd3NfYXBpYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWY5Y2IxLi4wMDAwMDAwCi0tLSBhL2FyY2gveDg2L21hY2gtdmlzd3Mvdmlzd3NfYXBpYy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjk3ICswLDAgQEAKLS8qCi0gKglDb3B5cmlnaHQgKEMpIDE5OTkgQmVudCBIYWdlbWFyaywgSW5nbyBNb2xuYXIKLSAqCi0gKiAgU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBpbnRlcnJ1cHQgY29udHJvbGxlcgotICoKLSAqICBUaGUgQ29iYWx0IHN5c3RlbSBBU0lDIGluIHRoZSBWaXN1YWwgV29ya3N0YXRpb24gY29udGFpbnMgYSAiQ29iYWx0IiBBUElDCi0gKiAgd2hpY2ggc2VydmVzIGFzIHRoZSBtYWluIGludGVycnVwdCBjb250cm9sbGVyIGluIHRoZSBzeXN0ZW0uICBOb24tbGVnYWN5Ci0gKiAgaGFyZHdhcmUgaW4gdGhlIHN5c3RlbSB1c2VzIHRoaXMgY29udHJvbGxlciBkaXJlY3RseS4gIExlZ2FjeSBkZXZpY2VzCi0gKiAgYXJlIGNvbm5lY3RlZCB0byB0aGUgUElJWDQgd2hpY2ggaW4gdHVybiBoYXMgaXRzIDgyNTkocykgY29ubmVjdGVkIHRvCi0gKiAgYSBvZiB0aGUgQ29iYWx0IEFQSUMgZW50cnkuCi0gKgotICogIDA5LzAyLzIwMDAgLSBVcGRhdGVkIGZvciAyLjQgYnkgamJhcm5lc0BzZ2kuY29tCi0gKgotICogIDI1LzExLzIwMDIgLSBVcGRhdGVkIGZvciAyLjUgYnkgQW5kcmV5IFBhbmluIDxwYXprZUBvcmJpdGExLnJ1PgotICovCi0KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9hcGljLmg+Ci0jaW5jbHVkZSA8YXNtL2k4MjU5Lmg+Ci0KLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJpcnFfdmVjdG9ycy5oIgotCi0KLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0soY29iYWx0X2xvY2spOwotCi0vKgotICogU2V0IHRoZSBnaXZlbiBDb2JhbHQgQVBJQyBSZWRpcmVjdGlvbiBUYWJsZSBlbnRyeSB0byBwb2ludAotICogdG8gdGhlIGdpdmVuIElEVCB2ZWN0b3IvaW5kZXguCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjb19hcGljX3NldChpbnQgZW50cnksIGludCBpcnEpCi17Ci0JY29fYXBpY193cml0ZShDT19BUElDX0xPKGVudHJ5KSwgQ09fQVBJQ19MRVZFTCB8IChpcnEgKyBGSVJTVF9FWFRFUk5BTF9WRUNUT1IpKTsKLQljb19hcGljX3dyaXRlKENPX0FQSUNfSEkoZW50cnkpLCAwKTsKLX0KLQotLyoKLSAqIENvYmFsdCAoSU8pLUFQSUMgZnVuY3Rpb25zIHRvIGhhbmRsZSBQQ0kgZGV2aWNlcy4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgY29fYXBpY19pZGUwX2hhY2sodm9pZCkKLXsKLQlleHRlcm4gY2hhciB2aXN3c19ib2FyZF90eXBlOwotCWV4dGVybiBjaGFyIHZpc3dzX2JvYXJkX3JldjsKLQotCWlmICh2aXN3c19ib2FyZF90eXBlID09IFZJU1dTXzMyMCAmJiB2aXN3c19ib2FyZF9yZXYgPT0gNSkKLQkJcmV0dXJuIDU7Ci0JcmV0dXJuIENPX0FQSUNfSURFMDsKLX0KLQotc3RhdGljIGludCBpc19jb19hcGljKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaWYgKElTX0NPX0FQSUMoaXJxKSkKLQkJcmV0dXJuIENPX0FQSUMoaXJxKTsKLQotCXN3aXRjaCAoaXJxKSB7Ci0JCWNhc2UgMDogcmV0dXJuIENPX0FQSUNfQ1BVOwotCQljYXNlIENPX0lSUV9JREUwOiByZXR1cm4gY29fYXBpY19pZGUwX2hhY2soKTsKLQkJY2FzZSBDT19JUlFfSURFMTogcmV0dXJuIENPX0FQSUNfSURFMTsKLQkJZGVmYXVsdDogcmV0dXJuIC0xOwotCX0KLX0KLQotCi0vKgotICogVGhpcyBpcyB0aGUgU0dJIENvYmFsdCAoSU8tKUFQSUM6Ci0gKi8KLQotc3RhdGljIHZvaWQgZW5hYmxlX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQljb19hcGljX3NldChpc19jb19hcGljKGlycSksIGlycSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRpc2FibGVfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCWludCBlbnRyeSA9IGlzX2NvX2FwaWMoaXJxKTsKLQotCWNvX2FwaWNfd3JpdGUoQ09fQVBJQ19MTyhlbnRyeSksIENPX0FQSUNfTUFTSyk7Ci0JY29fYXBpY19yZWFkKENPX0FQSUNfTE8oZW50cnkpKTsKLX0KLQotLyoKLSAqICJpcnEiIHJlYWxseSBqdXN0IHNlcnZlcyB0byBpZGVudGlmeSB0aGUgZGV2aWNlLiAgSGVyZSBpcyB3aGVyZSB3ZQotICogbWFwIHRoaXMgdG8gdGhlIENvYmFsdCBBUElDIGVudHJ5IHdoZXJlIGl0J3MgcGh5c2ljYWxseSB3aXJlZC4KLSAqIFRoaXMgaXMgY2FsbGVkIHZpYSByZXF1ZXN0X2lycSAtPiBzZXR1cF9pcnEgLT4gaXJxX2Rlc2MtPnN0YXJ0dXAoKQotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHN0YXJ0dXBfY29iYWx0X2lycSh1bnNpZ25lZCBpbnQgaXJxKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLQlpZiAoKGlycV9kZXNjW2lycV0uc3RhdHVzICYgKElSUV9ESVNBQkxFRCB8IElSUV9JTlBST0dSRVNTIHwgSVJRX1dBSVRJTkcpKSkKLQkJaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJj0gfihJUlFfRElTQUJMRUQgfCBJUlFfSU5QUk9HUkVTUyB8IElSUV9XQUlUSU5HKTsKLQllbmFibGVfY29iYWx0X2lycShpcnEpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGFja19jb2JhbHRfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotCWRpc2FibGVfY29iYWx0X2lycShpcnEpOwotCWFwaWNfd3JpdGUoQVBJQ19FT0ksIEFQSUNfRUlPX0FDSyk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29iYWx0X2xvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgZW5kX2NvYmFsdF9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci0JaWYgKCEoaXJxX2Rlc2NbaXJxXS5zdGF0dXMgJiAoSVJRX0RJU0FCTEVEIHwgSVJRX0lOUFJPR1JFU1MpKSkKLQkJZW5hYmxlX2NvYmFsdF9pcnEoaXJxKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIGNvYmFsdF9pcnFfdHlwZSA9IHsKLQkudHlwZW5hbWUgPQkiQ29iYWx0LUFQSUMiLAotCS5zdGFydHVwID0Jc3RhcnR1cF9jb2JhbHRfaXJxLAotCS5zaHV0ZG93biA9CWRpc2FibGVfY29iYWx0X2lycSwKLQkuZW5hYmxlID0JZW5hYmxlX2NvYmFsdF9pcnEsCi0JLmRpc2FibGUgPQlkaXNhYmxlX2NvYmFsdF9pcnEsCi0JLmFjayA9CQlhY2tfY29iYWx0X2lycSwKLQkuZW5kID0JCWVuZF9jb2JhbHRfaXJxLAotfTsKLQotCi0vKgotICogVGhpcyBpcyB0aGUgUElJWDQtYmFzZWQgODI1OSB0aGF0IGlzIHdpcmVkIHVwIGluZGlyZWN0bHkgdG8gQ29iYWx0Ci0gKiAtLSBub3QgdGhlIG1hbm5lciBleHBlY3RlZCBieSB0aGUgY29kZSBpbiBpODI1OS5jLgotICoKLSAqIHRoZXJlIGlzIGEgJ21hc3RlcicgcGh5c2ljYWwgaW50ZXJydXB0IHNvdXJjZSB0aGF0IGdldHMgc2VudCB0bwotICogdGhlIENQVS4gQnV0IGluIHRoZSBjaGlwc2V0IHRoZXJlIGFyZSB2YXJpb3VzICd2aXJ0dWFsJyBpbnRlcnJ1cHRzCi0gKiB3YWl0aW5nIHRvIGJlIGhhbmRsZWQuIFdlIHJlcHJlc2VudCB0aGlzIHRvIExpbnV4IHRocm91Z2ggYSAnbWFzdGVyJwotICogaW50ZXJydXB0IGNvbnRyb2xsZXIgdHlwZSwgYW5kIHRocm91Z2ggYSBzcGVjaWFsIHZpcnR1YWwgaW50ZXJydXB0LQotICogY29udHJvbGxlci4gRGV2aWNlIGRyaXZlcnMgb25seSBzZWUgdGhlIHZpcnR1YWwgaW50ZXJydXB0IHNvdXJjZXMuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnR1cF9waWl4NF9tYXN0ZXJfaXJxKHVuc2lnbmVkIGludCBpcnEpCi17Ci0JaW5pdF84MjU5QSgwKTsKLQotCXJldHVybiBzdGFydHVwX2NvYmFsdF9pcnEoaXJxKTsKLX0KLQotc3RhdGljIHZvaWQgZW5kX3BpaXg0X21hc3Rlcl9pcnEodW5zaWduZWQgaW50IGlycSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNvYmFsdF9sb2NrLCBmbGFncyk7Ci0JZW5hYmxlX2NvYmFsdF9pcnEoaXJxKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb2JhbHRfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgc3RydWN0IGlycV9jaGlwIHBpaXg0X21hc3Rlcl9pcnFfdHlwZSA9IHsKLQkudHlwZW5hbWUgPQkiUElJWDQtbWFzdGVyIiwKLQkuc3RhcnR1cCA9CXN0YXJ0dXBfcGlpeDRfbWFzdGVyX2lycSwKLQkuYWNrID0JCWFja19jb2JhbHRfaXJxLAotCS5lbmQgPQkJZW5kX3BpaXg0X21hc3Rlcl9pcnEsCi19OwotCi0KLXN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgcGlpeDRfdmlydHVhbF9pcnFfdHlwZSA9IHsKLQkudHlwZW5hbWUgPQkiUElJWDQtdmlydHVhbCIsCi0JLnNodXRkb3duID0JZGlzYWJsZV84MjU5QV9pcnEsCi0JLmVuYWJsZSA9CWVuYWJsZV84MjU5QV9pcnEsCi0JLmRpc2FibGUgPQlkaXNhYmxlXzgyNTlBX2lycSwKLX07Ci0KLQotLyoKLSAqIFBJSVg0LTgyNTkgbWFzdGVyL3ZpcnR1YWwgZnVuY3Rpb25zIHRvIGhhbmRsZSBpbnRlcnJ1cHQgcmVxdWVzdHMKLSAqIGZyb20gbGVnYWN5IGRldmljZXM6IGZsb3BweSwgcGFyYWxsZWwsIHNlcmlhbCwgcnRjLgotICoKLSAqIE5vbmUgb2YgdGhlc2UgZ2V0IENvYmFsdCBBUElDIGVudHJpZXMsIG5laXRoZXIgZG8gdGhleSBoYXZlIElEVAotICogZW50cmllcy4gVGhlc2UgaW50ZXJydXB0cyBhcmUgcHVyZWx5IHZpcnR1YWwgYW5kIGRpc3RyaWJ1dGVkIGZyb20KLSAqIHRoZSAnbWFzdGVyJyBpbnRlcnJ1cHQgc291cmNlOiBDT19JUlFfODI1OS4KLSAqCi0gKiBXaGVuIHRoZSA4MjU5IGludGVycnVwdHMgaXRzIGhhbmRsZXIgZmlndXJlcyBvdXQgd2hpY2ggb2YgdGhlc2UKLSAqIGRldmljZXMgaXMgaW50ZXJydXB0aW5nIGFuZCBkaXNwYXRjaGVzIHRvIGl0cyBoYW5kbGVyLgotICoKLSAqIENBUkVGVUw6IGRldmljZXMgc2VlIHRoZSAndmlydHVhbCcgaW50ZXJydXB0IG9ubHkuIFRodXMgZGlzYWJsZS8KLSAqIGVuYWJsZV9pcnEgZ2V0cyB0aGUgcmlnaHQgaXJxLiBUaGlzICdtYXN0ZXInIGlycSBpcyBuZXZlciBkaXJlY3RseQotICogbWFuaXB1bGF0ZWQgYnkgYW55IGRyaXZlci4KLSAqLwotc3RhdGljIGlycXJldHVybl90IHBpaXg0X21hc3Rlcl9pbnRyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKLXsKLQlpbnQgcmVhbGlycTsKLQlpcnFfZGVzY190ICpkZXNjOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCS8qIEZpbmQgb3V0IHdoYXQncyBpbnRlcnJ1cHRpbmcgaW4gdGhlIFBJSVg0IG1hc3RlciA4MjU5ICovCi0Jb3V0YigweDBjLCAweDIwKTsJCS8qIE9DVzMgUG9sbCBjb21tYW5kICovCi0JcmVhbGlycSA9IGluYigweDIwKTsKLQotCS8qCi0JICogQml0IDcgPT0gMCBtZWFucyBpbnZhbGlkL3NwdXJpb3VzCi0JICovCi0JaWYgKHVubGlrZWx5KCEocmVhbGlycSAmIDB4ODApKSkKLQkJZ290byBvdXRfdW5sb2NrOwotCi0JcmVhbGlycSAmPSA3OwotCi0JaWYgKHVubGlrZWx5KHJlYWxpcnEgPT0gMikpIHsKLQkJb3V0YigweDBjLCAweGEwKTsKLQkJcmVhbGlycSA9IGluYigweGEwKTsKLQotCQlpZiAodW5saWtlbHkoIShyZWFsaXJxICYgMHg4MCkpKQotCQkJZ290byBvdXRfdW5sb2NrOwotCi0JCXJlYWxpcnEgPSAocmVhbGlycSAmIDcpICsgODsKLQl9Ci0KLQkvKiBtYXNrIGFuZCBhY2sgaW50ZXJydXB0ICovCi0JY2FjaGVkX2lycV9tYXNrIHw9IDEgPDwgcmVhbGlycTsKLQlpZiAodW5saWtlbHkocmVhbGlycSA+IDcpKSB7Ci0JCWluYigweGExKTsKLQkJb3V0YihjYWNoZWRfc2xhdmVfbWFzaywgMHhhMSk7Ci0JCW91dGIoMHg2MCArIChyZWFsaXJxICYgNyksIDB4YTApOwotCQlvdXRiKDB4NjAgKyAyLCAweDIwKTsKLQl9IGVsc2UgewotCQlpbmIoMHgyMSk7Ci0JCW91dGIoY2FjaGVkX21hc3Rlcl9tYXNrLCAweDIxKTsKLQkJb3V0YigweDYwICsgcmVhbGlycSwgMHgyMCk7Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaTgyNTlBX2xvY2ssIGZsYWdzKTsKLQotCWRlc2MgPSBpcnFfZGVzYyArIHJlYWxpcnE7Ci0KLQkvKgotCSAqIGhhbmRsZSB0aGlzICd2aXJ0dWFsIGludGVycnVwdCcgYXMgYSBDb2JhbHQgb25lIG5vdy4KLQkgKi8KLQlrc3RhdF9jcHUoc21wX3Byb2Nlc3Nvcl9pZCgpKS5pcnFzW3JlYWxpcnFdKys7Ci0KLQlpZiAobGlrZWx5KGRlc2MtPmFjdGlvbiAhPSBOVUxMKSkKLQkJaGFuZGxlX0lSUV9ldmVudChyZWFsaXJxLCBkZXNjLT5hY3Rpb24pOwotCi0JaWYgKCEoZGVzYy0+c3RhdHVzICYgSVJRX0RJU0FCTEVEKSkKLQkJZW5hYmxlXzgyNTlBX2lycShyZWFsaXJxKTsKLQotCXJldHVybiBJUlFfSEFORExFRDsKLQotb3V0X3VubG9jazoKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpODI1OUFfbG9jaywgZmxhZ3MpOwotCXJldHVybiBJUlFfTk9ORTsKLX0KLQotc3RhdGljIHN0cnVjdCBpcnFhY3Rpb24gbWFzdGVyX2FjdGlvbiA9IHsKLQkuaGFuZGxlciA9CXBpaXg0X21hc3Rlcl9pbnRyLAotCS5uYW1lID0JCSJQSUlYNC04MjU5IiwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgaXJxYWN0aW9uIGNhc2NhZGVfYWN0aW9uID0gewotCS5oYW5kbGVyID0gCW5vX2FjdGlvbiwKLQkubmFtZSA9CQkiY2FzY2FkZSIsCi19OwotCi0KLXZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCkKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBDT19JUlFfQVBJQzAgKyBDT19BUElDX0xBU1QgKyAxOyBpKyspIHsKLQkJaXJxX2Rlc2NbaV0uc3RhdHVzID0gSVJRX0RJU0FCTEVEOwotCQlpcnFfZGVzY1tpXS5hY3Rpb24gPSAwOwotCQlpcnFfZGVzY1tpXS5kZXB0aCA9IDE7Ci0KLQkJaWYgKGkgPT0gMCkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7Ci0JCX0KLQkJZWxzZSBpZiAoaSA9PSBDT19JUlFfSURFMCkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7Ci0JCX0KLQkJZWxzZSBpZiAoaSA9PSBDT19JUlFfSURFMSkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZjb2JhbHRfaXJxX3R5cGU7Ci0JCX0KLQkJZWxzZSBpZiAoaSA9PSBDT19JUlFfODI1OSkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZwaWl4NF9tYXN0ZXJfaXJxX3R5cGU7Ci0JCX0KLQkJZWxzZSBpZiAoaSA8IENPX0lSUV9BUElDMCkgewotCQkJaXJxX2Rlc2NbaV0uY2hpcCA9ICZwaWl4NF92aXJ0dWFsX2lycV90eXBlOwotCQl9Ci0JCWVsc2UgaWYgKElTX0NPX0FQSUMoaSkpIHsKLQkJCWlycV9kZXNjW2ldLmNoaXAgPSAmY29iYWx0X2lycV90eXBlOwotCQl9Ci0JfQotCi0Jc2V0dXBfaXJxKENPX0lSUV84MjU5LCAmbWFzdGVyX2FjdGlvbik7Ci0Jc2V0dXBfaXJxKDIsICZjYXNjYWRlX2FjdGlvbik7Ci19CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvc2V0dXAuYyBiL2FyY2gveDg2L21hY2gtdm95YWdlci9zZXR1cC5jCmluZGV4IDVhZTU0NjYuLjZiYmRkNjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hY2gtdm95YWdlci9zZXR1cC5jCisrKyBiL2FyY2gveDg2L21hY2gtdm95YWdlci9zZXR1cC5jCkBAIC02Miw2ICs2Miw3IEBACiBjaGFyICpfX2luaXQgbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCkKIHsKIAljaGFyICp3aG87CisJaW50IG5ld19ucjsKIAogCXdobyA9ICJOT1QgVk9ZQUdFUiI7CiAKQEAgLTczLDcgKzc0LDcgQEAKIAogCQllODIwLm5yX21hcCA9IDA7CiAJCWZvciAoaSA9IDA7IHZveWFnZXJfbWVtb3J5X2RldGVjdChpLCAmYWRkciwgJmxlbmd0aCk7IGkrKykgewotCQkJYWRkX21lbW9yeV9yZWdpb24oYWRkciwgbGVuZ3RoLCBFODIwX1JBTSk7CisJCQllODIwX2FkZF9yZWdpb24oYWRkciwgbGVuZ3RoLCBFODIwX1JBTSk7CiAJCX0KIAkJcmV0dXJuIHdobzsKIAl9IGVsc2UgaWYgKHZveWFnZXJfbGV2ZWwgPT0gNCkgewpAQCAtOTEsNDMgKzkyLDE3IEBACiAJCQl0b20gPSAoYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rKSA8PCAxMDsKIAkJfQogCQl3aG8gPSAiVm95YWdlci1UT00iOwotCQlhZGRfbWVtb3J5X3JlZ2lvbigwLCAweDlmMDAwLCBFODIwX1JBTSk7CisJCWU4MjBfYWRkX3JlZ2lvbigwLCAweDlmMDAwLCBFODIwX1JBTSk7CiAJCS8qIG1hcCBmcm9tIDFNIHRvIHRvcCBvZiBtZW1vcnkgKi8KLQkJYWRkX21lbW9yeV9yZWdpb24oMSAqIDEwMjQgKiAxMDI0LCB0b20gLSAxICogMTAyNCAqIDEwMjQsCisJCWU4MjBfYWRkX3JlZ2lvbigxICogMTAyNCAqIDEwMjQsIHRvbSAtIDEgKiAxMDI0ICogMTAyNCwKIAkJCQkgIEU4MjBfUkFNKTsKIAkJLyogRklYTUU6IFNob3VsZCBjaGVjayB0aGUgQVNJQ3MgdG8gc2VlIGlmIEkgbmVlZCB0bwogCQkgKiB0YWtlIG91dCB0aGUgOE0gd2luZG93LiAgSnVzdCBkbyBpdCBhdCB0aGUgbW9tZW50CiAJCSAqICovCi0JCWFkZF9tZW1vcnlfcmVnaW9uKDggKiAxMDI0ICogMTAyNCwgOCAqIDEwMjQgKiAxMDI0LAorCQllODIwX2FkZF9yZWdpb24oOCAqIDEwMjQgKiAxMDI0LCA4ICogMTAyNCAqIDEwMjQsCiAJCQkJICBFODIwX1JFU0VSVkVEKTsKIAkJcmV0dXJuIHdobzsKIAl9CiAKLQl3aG8gPSAiQklPUy1lODIwIjsKLQotCS8qCi0JICogVHJ5IHRvIGNvcHkgdGhlIEJJT1Mtc3VwcGxpZWQgRTgyMC1tYXAuCi0JICoKLQkgKiBPdGhlcndpc2UgZmFrZSBhIG1lbW9yeSBtYXA7IG9uZSBzZWN0aW9uIGZyb20gMGstPjY0MGssCi0JICogdGhlIG5leHQgc2VjdGlvbiBmcm9tIDFtYi0+YXBwcm9wcmlhdGVfbWVtX2sKLQkgKi8KLQlzYW5pdGl6ZV9lODIwX21hcChib290X3BhcmFtcy5lODIwX21hcCwgJmJvb3RfcGFyYW1zLmU4MjBfZW50cmllcyk7Ci0JaWYgKGNvcHlfZTgyMF9tYXAoYm9vdF9wYXJhbXMuZTgyMF9tYXAsIGJvb3RfcGFyYW1zLmU4MjBfZW50cmllcykKLQkgICAgPCAwKSB7Ci0JCXVuc2lnbmVkIGxvbmcgbWVtX3NpemU7Ci0KLQkJLyogY29tcGFyZSByZXN1bHRzIGZyb20gb3RoZXIgbWV0aG9kcyBhbmQgdGFrZSB0aGUgZ3JlYXRlciAqLwotCQlpZiAoYm9vdF9wYXJhbXMuYWx0X21lbV9rIDwgYm9vdF9wYXJhbXMuc2NyZWVuX2luZm8uZXh0X21lbV9rKSB7Ci0JCQltZW1fc2l6ZSA9IGJvb3RfcGFyYW1zLnNjcmVlbl9pbmZvLmV4dF9tZW1fazsKLQkJCXdobyA9ICJCSU9TLTg4IjsKLQkJfSBlbHNlIHsKLQkJCW1lbV9zaXplID0gYm9vdF9wYXJhbXMuYWx0X21lbV9rOwotCQkJd2hvID0gIkJJT1MtZTgwMSI7Ci0JCX0KLQotCQllODIwLm5yX21hcCA9IDA7Ci0JCWFkZF9tZW1vcnlfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOwotCQlhZGRfbWVtb3J5X3JlZ2lvbihISUdIX01FTU9SWSwgbWVtX3NpemUgPDwgMTAsIEU4MjBfUkFNKTsKLQl9Ci0JcmV0dXJuIHdobzsKKwlyZXR1cm4gZGVmYXVsdF9tYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCgpOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbWFjaC12b3lhZ2VyL3ZveWFnZXJfc21wLmMgYi9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvdm95YWdlcl9zbXAuYwppbmRleCA4YWNiZjBjLi44ZGVkZDAxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvdm95YWdlcl9zbXAuYworKysgYi9hcmNoL3g4Ni9tYWNoLXZveWFnZXIvdm95YWdlcl9zbXAuYwpAQCAtNTksMTEgKzU5LDYgQEAKICAqIGFjdGl2aXR5IGNvdW50LiAgRmluYWxseSBleHBvcnRlZCBieSBpMzg2X2tzeW1zLmMgKi8KIHN0YXRpYyBpbnQgdm95YWdlcl9leHRlbmRlZF9jcHVzID0gMTsKIAotLyogSGF2ZSB3ZSBmb3VuZCBhbiBTTVAgYm94IC0gdXNlZCBieSB0aW1lLmMgdG8gZG8gdGhlIHByb2ZpbGluZwotICAgaW50ZXJydXB0IGZvciB0aW1lc2xpY2luZzsgZG8gbm90IHNldCB0byAxIHVudGlsIHRoZSBwZXIgQ1BVIHRpbWVyCi0gICBpbnRlcnJ1cHQgaXMgYWN0aXZlICovCi1pbnQgc21wX2ZvdW5kX2NvbmZpZyA9IDA7Ci0KIC8qIFVzZWQgZm9yIHRoZSBpbnZhbGlkYXRlIG1hcCB0aGF0J3MgYWxzbyBjaGVja2VkIGluIHRoZSBzcGlubG9jayAqLwogc3RhdGljIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc21wX2ludmFsaWRhdGVfbmVlZGVkOwogCkBAIC0xMTM3LDE1ICsxMTMyLDYgQEAKIAlvbl9lYWNoX2NwdShkb19mbHVzaF90bGJfYWxsLCAwLCAxLCAxKTsKIH0KIAotLyogdXNlZCB0byBzZXQgdXAgdGhlIHRyYW1wb2xpbmUgZm9yIG90aGVyIENQVXMgd2hlbiB0aGUgbWVtb3J5IG1hbmFnZXIKLSAqIGlzIHNvcnRlZCBvdXQgKi8KLXZvaWQgX19pbml0IHNtcF9hbGxvY19tZW1vcnkodm9pZCkKLXsKLQl0cmFtcG9saW5lX2Jhc2UgPSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCWlmIChfX3BhKHRyYW1wb2xpbmVfYmFzZSkgPj0gMHg5MzAwMCkKLQkJQlVHKCk7Ci19Ci0KIC8qIHNlbmQgYSByZXNjaGVkdWxlIENQSSB0byBvbmUgQ1BVIGJ5IHBoeXNpY2FsIENQVSBudW1iZXIqLwogc3RhdGljIHZvaWQgdm95YWdlcl9zbXBfc2VuZF9yZXNjaGVkdWxlKGludCBjcHUpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tYXRoLWVtdS9mcHVfZW50cnkuYyBiL2FyY2gveDg2L21hdGgtZW11L2ZwdV9lbnRyeS5jCmluZGV4IDZlMzhkODcuLmM3YjA2ZmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21hdGgtZW11L2ZwdV9lbnRyeS5jCisrKyBiL2FyY2gveDg2L21hdGgtZW11L2ZwdV9lbnRyeS5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogI2luY2x1ZGUgPGFzbS91c2VyLmg+CisjaW5jbHVkZSA8YXNtL2kzODcuaD4KIAogI2luY2x1ZGUgImZwdV9zeXN0ZW0uaCIKICNpbmNsdWRlICJmcHVfZW11LmgiCkBAIC0xNDYsNiArMTQ3LDEzIEBACiAJdW5zaWduZWQgbG9uZyBjb2RlX2xpbWl0ID0gMDsJLyogSW5pdGlhbGl6ZWQgdG8gc3RvcCBjb21waWxlciB3YXJuaW5ncyAqLwogCXN0cnVjdCBkZXNjX3N0cnVjdCBjb2RlX2Rlc2NyaXB0b3I7CiAKKwlpZiAoIXVzZWRfbWF0aCgpKSB7CisJCWlmIChpbml0X2ZwdShjdXJyZW50KSkgeworCQkJZG9fZ3JvdXBfZXhpdChTSUdLSUxMKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKwogI2lmZGVmIFJFX0VOVFJBTlRfQ0hFQ0tJTkcKIAlpZiAoZW11bGF0aW5nKSB7CiAJCXByaW50aygiRVJST1I6IHdtLUZQVS1lbXUgaXMgbm90IFJFLUVOVFJBTlQhXG4iKTsKQEAgLTE1MywxMSArMTYxLDYgQEAKIAlSRV9FTlRSQU5UX0NIRUNLX09OOwogI2VuZGlmIC8qIFJFX0VOVFJBTlRfQ0hFQ0tJTkcgKi8KIAotCWlmICghdXNlZF9tYXRoKCkpIHsKLQkJZmluaXQoKTsKLQkJc2V0X3VzZWRfbWF0aCgpOwotCX0KLQogCVNFVFVQX0RBVEFfQVJFQShhcmcpOwogCiAJRlBVX09SSUdfRUlQID0gRlBVX0VJUDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21hdGgtZW11L3JlZ19jb25zdGFudC5jIGIvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKaW5kZXggMDQ4NjllNi4uMDA1NDgzNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKKysrIGIvYXJjaC94ODYvbWF0aC1lbXUvcmVnX2NvbnN0YW50LmMKQEAgLTE2LDggKzE2LDggQEAKICNpbmNsdWRlICJyZWdfY29uc3RhbnQuaCIKICNpbmNsdWRlICJjb250cm9sX3cuaCIKIAotI2RlZmluZSBNQUtFX1JFRyhzLGUsbCxoKSB7IGwsIGgsIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKEVYVEVOREVEX0ViaWFzKyhlKSkgfCAoKFNJR05fIyNzICE9IDApKjB4ODAwMCkpIH0KKyNkZWZpbmUgTUFLRV9SRUcocywgZSwgbCwgaCkgeyBsLCBoLCBcCisJCSgoRVhURU5ERURfRWJpYXMrKGUpKSB8ICgoU0lHTl8jI3MgIT0gMCkqMHg4MDAwKSkgfQogCiBGUFVfUkVHIGNvbnN0IENPTlNUXzEgPSBNQUtFX1JFRyhQT1MsIDAsIDB4MDAwMDAwMDAsIDB4ODAwMDAwMDApOwogI2lmIDAKQEAgLTQwLDcgKzQwLDcgQEAKIEZQVV9SRUcgY29uc3QgQ09OU1RfWiA9IE1BS0VfUkVHKFBPUywgRVhQX1VOREVSLCAweDAsIDB4MCk7CiAKIC8qIE9ubHkgdGhlIHNpZ24gYW5kIHNpZ25pZmljYW5kIChhbmQgdGFnKSBhcmUgdXNlZCBpbiBpbnRlcm5hbCBOYU5zICovCi0vKiBUaGUgODA0ODYgbmV2ZXIgZ2VuZXJhdGVzIG9uZSBvZiB0aGVzZSAKKy8qIFRoZSA4MDQ4NiBuZXZlciBnZW5lcmF0ZXMgb25lIG9mIHRoZXNlCiBGUFVfUkVHIGNvbnN0IENPTlNUX1NOQU4gPSBNQUtFX1JFRyhQT1MsIEVYUF9PVkVSLCAweDAwMDAwMDAxLCAweDgwMDAwMDAwKTsKICAqLwogLyogVGhpcyBpcyB0aGUgcmVhbCBpbmRlZmluaXRlIFFOYU4gKi8KQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qIE9ubHkgdGhlIHNpZ24gKGFuZCB0YWcpIGlzIHVzZWQgaW4gaW50ZXJuYWwgaW5maW5pdGllcyAqLwogRlBVX1JFRyBjb25zdCBDT05TVF9JTkYgPSBNQUtFX1JFRyhQT1MsIEVYUF9PVkVSLCAweDAwMDAwMDAwLCAweDgwMDAwMDAwKTsKIAotc3RhdGljIHZvaWQgZmxkX2NvbnN0KEZQVV9SRUcgY29uc3QgKmMsIGludCBhZGosIHVfY2hhciB0YWcpCitzdGF0aWMgdm9pZCBmbGRfY29uc3QoRlBVX1JFRyBjb25zdCAqIGMsIGludCBhZGosIHVfY2hhciB0YWcpCiB7CiAJRlBVX1JFRyAqc3RfbmV3X3B0cjsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vTWFrZWZpbGUgYi9hcmNoL3g4Ni9tbS9NYWtlZmlsZQppbmRleCBiN2IzZTRjLi45ODczNzE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9tbS9NYWtlZmlsZQpAQCAtOCwxMCArOCwxNiBAQAogCiBvYmotJChDT05GSUdfSElHSE1FTSkJCSs9IGhpZ2htZW1fMzIubwogCitvYmotJChDT05GSUdfTU1JT1RSQUNFX0hPT0tTKQkrPSBrbW1pby5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFKQkJKz0gbW1pb3RyYWNlLm8KK21taW90cmFjZS15CQkJOj0gcGZfaW4ubyBtbWlvLW1vZC5vCitvYmotJChDT05GSUdfTU1JT1RSQUNFX1RFU1QpCSs9IHRlc3RtbWlvdHJhY2UubworCiBpZmVxICgkKENPTkZJR19YODZfMzIpLHkpCiBvYmotJChDT05GSUdfTlVNQSkJCSs9IGRpc2NvbnRpZ18zMi5vCiBlbHNlCiBvYmotJChDT05GSUdfTlVNQSkJCSs9IG51bWFfNjQubwogb2JqLSQoQ09ORklHX0s4X05VTUEpCQkrPSBrOHRvcG9sb2d5XzY0Lm8KLW9iai0kKENPTkZJR19BQ1BJX05VTUEpCQkrPSBzcmF0XzY0Lm8KIGVuZGlmCitvYmotJChDT05GSUdfQUNQSV9OVU1BKQkJKz0gc3JhdF8kKEJJVFMpLm8KKwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vZGlzY29udGlnXzMyLmMgYi9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYwppbmRleCA5MTRjY2Y5Li41ZGZlZjlmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYworKysgYi9hcmNoL3g4Ni9tbS9kaXNjb250aWdfMzIuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9tbXpvbmUuaD4KICNpbmNsdWRlIDxhc20vYmlvc19lYmRhLmg+CisjaW5jbHVkZSA8YXNtL3Byb3RvLmg+CiAKIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW01BWF9OVU1OT0RFU10gX19yZWFkX21vc3RseTsKIEVYUE9SVF9TWU1CT0wobm9kZV9kYXRhKTsKQEAgLTU5LDE0ICs2MCwxNCBAQAogLyoKICAqIDQpIHBoeXNub2RlX21hcCAgICAgLSB0aGUgbWFwcGluZyBiZXR3ZWVuIGEgcGZuIGFuZCBvd25pbmcgbm9kZQogICogcGh5c25vZGVfbWFwIGtlZXBzIHRyYWNrIG9mIHRoZSBwaHlzaWNhbCBtZW1vcnkgbGF5b3V0IG9mIGEgZ2VuZXJpYwotICogbnVtYSBub2RlIG9uIGEgMjU2TWIgYnJlYWsgKGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgd2lsbAotICogcmVwcmVzZW50IDI1Nk1iIG9mIG1lbW9yeSBhbmQgd2lsbCBiZSBtYXJrZWQgYnkgdGhlIG5vZGUgaWQuICBzbywKKyAqIG51bWEgbm9kZSBvbiBhIDY0TWIgYnJlYWsgKGVhY2ggZWxlbWVudCBvZiB0aGUgYXJyYXkgd2lsbAorICogcmVwcmVzZW50IDY0TWIgb2YgbWVtb3J5IGFuZCB3aWxsIGJlIG1hcmtlZCBieSB0aGUgbm9kZSBpZC4gIHNvLAogICogaWYgdGhlIGZpcnN0IGdpZyBpcyBvbiBub2RlIDAsIGFuZCB0aGUgc2Vjb25kIGdpZyBpcyBvbiBub2RlIDEKICAqIHBoeXNub2RlX21hcCB3aWxsIGNvbnRhaW46CiAgKgotICogICAgIHBoeXNub2RlX21hcFswLTNdID0gMDsKLSAqICAgICBwaHlzbm9kZV9tYXBbNC03XSA9IDE7Ci0gKiAgICAgcGh5c25vZGVfbWFwWzgtIF0gPSAtMTsKKyAqICAgICBwaHlzbm9kZV9tYXBbMC0xNV0gPSAwOworICogICAgIHBoeXNub2RlX21hcFsxNi0zMV0gPSAxOworICogICAgIHBoeXNub2RlX21hcFszMi0gXSA9IC0xOwogICovCiBzOCBwaHlzbm9kZV9tYXBbTUFYX0VMRU1FTlRTXSBfX3JlYWRfbW9zdGx5ID0geyBbMCAuLi4gKE1BWF9FTEVNRU5UUyAtIDEpXSA9IC0xfTsKIEVYUE9SVF9TWU1CT0wocGh5c25vZGVfbWFwKTsKQEAgLTc1LDE1ICs3NiwxNSBAQAogewogCXVuc2lnbmVkIGxvbmcgcGZuOwogCi0JcHJpbnRrKEtFUk5fSU5GTyAiTm9kZTogJWQsIHN0YXJ0X3BmbjogJWxkLCBlbmRfcGZuOiAlbGRcbiIsCisJcHJpbnRrKEtFUk5fSU5GTyAiTm9kZTogJWQsIHN0YXJ0X3BmbjogJWx4LCBlbmRfcGZuOiAlbHhcbiIsCiAJCQluaWQsIHN0YXJ0LCBlbmQpOwogCXByaW50ayhLRVJOX0RFQlVHICIgIFNldHRpbmcgcGh5c25vZGVfbWFwIGFycmF5IHRvIG5vZGUgJWQgZm9yIHBmbnM6XG4iLCBuaWQpOwogCXByaW50ayhLRVJOX0RFQlVHICIgICIpOwogCWZvciAocGZuID0gc3RhcnQ7IHBmbiA8IGVuZDsgcGZuICs9IFBBR0VTX1BFUl9FTEVNRU5UKSB7CiAJCXBoeXNub2RlX21hcFtwZm4gLyBQQUdFU19QRVJfRUxFTUVOVF0gPSBuaWQ7Ci0JCXByaW50aygiJWxkICIsIHBmbik7CisJCXByaW50ayhLRVJOX0NPTlQgIiVseCAiLCBwZm4pOwogCX0KLQlwcmludGsoIlxuIik7CisJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKIH0KIAogdW5zaWduZWQgbG9uZyBub2RlX21lbW1hcF9zaXplX2J5dGVzKGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLApAQCAtOTksNyArMTAwLDYgQEAKICNlbmRpZgogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX21heF9sb3dfcGZuKHZvaWQpOwotZXh0ZXJuIHZvaWQgYWRkX29uZV9oaWdocGFnZV9pbml0KHN0cnVjdCBwYWdlICosIGludCwgaW50KTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGhpZ2hlbmRfcGZuLCBoaWdoc3RhcnRfcGZuOwogCiAjZGVmaW5lIExBUkdFX1BBR0VfQllURVMgKFBUUlNfUEVSX1BURSAqIFBBR0VfU0laRSkKQEAgLTExNywxMyArMTE3LDEzIEBACiAgKi8KIGludCBfX2luaXQgZ2V0X21lbWNmZ19udW1hX2ZsYXQodm9pZCkKIHsKLQlwcmludGsoIk5VTUEgLSBzaW5nbGUgbm9kZSwgZmxhdCBtZW1vcnkgbW9kZVxuIik7CisJcHJpbnRrKEtFUk5fREVCVUcgIk5VTUEgLSBzaW5nbGUgbm9kZSwgZmxhdCBtZW1vcnkgbW9kZVxuIik7CiAKLQkvKiBSdW4gdGhlIG1lbW9yeSBjb25maWd1cmF0aW9uIGFuZCBmaW5kIHRoZSB0b3Agb2YgbWVtb3J5LiAqLwotCXByb3BhZ2F0ZV9lODIwX21hcCgpOwogCW5vZGVfc3RhcnRfcGZuWzBdID0gMDsKIAlub2RlX2VuZF9wZm5bMF0gPSBtYXhfcGZuOworCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgbWF4X3Bmbik7CiAJbWVtb3J5X3ByZXNlbnQoMCwgMCwgbWF4X3Bmbik7CisJbm9kZV9yZW1hcF9zaXplWzBdID0gbm9kZV9tZW1tYXBfc2l6ZV9ieXRlcygwLCAwLCBtYXhfcGZuKTsKIAogICAgICAgICAvKiBJbmRpY2F0ZSB0aGVyZSBpcyBvbmUgbm9kZSBhdmFpbGFibGUuICovCiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTE1NiwyNCArMTU2LDMyIEBACiAgKi8KIHN0YXRpYyB2b2lkIF9faW5pdCBhbGxvY2F0ZV9wZ2RhdChpbnQgbmlkKQogewotCWlmIChuaWQgJiYgbm9kZV9oYXNfb25saW5lX21lbShuaWQpKQorCWNoYXIgYnVmWzE2XTsKKworCWlmIChub2RlX2hhc19vbmxpbmVfbWVtKG5pZCkgJiYgbm9kZV9yZW1hcF9zdGFydF92YWRkcltuaWRdKQogCQlOT0RFX0RBVEEobmlkKSA9IChwZ19kYXRhX3QgKilub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF07CiAJZWxzZSB7Ci0JCU5PREVfREFUQShuaWQpID0gKHBnX2RhdGFfdCAqKShwZm5fdG9fa2FkZHIobWluX2xvd19wZm4pKTsKLQkJbWluX2xvd19wZm4gKz0gUEZOX1VQKHNpemVvZihwZ19kYXRhX3QpKTsKKwkJdW5zaWduZWQgbG9uZyBwZ2RhdF9waHlzOworCQlwZ2RhdF9waHlzID0gZmluZF9lODIwX2FyZWEobWluX2xvd19wZm48PFBBR0VfU0hJRlQsCisJCQkJIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZULAorCQkJCSBzaXplb2YocGdfZGF0YV90KSwKKwkJCQkgUEFHRV9TSVpFKTsKKwkJTk9ERV9EQVRBKG5pZCkgPSAocGdfZGF0YV90ICopKHBmbl90b19rYWRkcihwZ2RhdF9waHlzPj5QQUdFX1NISUZUKSk7CisJCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKKwkJc3ByaW50ZihidWYsICJOT0RFX0RBVEEgJWQiLCAgbmlkKTsKKwkJcmVzZXJ2ZV9lYXJseShwZ2RhdF9waHlzLCBwZ2RhdF9waHlzICsgc2l6ZW9mKHBnX2RhdGFfdCksIGJ1Zik7CiAJfQorCXByaW50ayhLRVJOX0RFQlVHICJhbGxvY2F0ZV9wZ2RhdDogbm9kZSAlZCBOT0RFX0RBVEEgJTA4bHhcbiIsCisJCW5pZCwgKHVuc2lnbmVkIGxvbmcpTk9ERV9EQVRBKG5pZCkpOwogfQogCi0jaWZkZWYgQ09ORklHX0RJU0NPTlRJR01FTQogLyoKLSAqIEluIHRoZSBkaXNjb250aWcgbWVtb3J5IG1vZGVsLCBhIHBvcnRpb24gb2YgdGhlIGtlcm5lbCB2aXJ0dWFsIGFyZWEgKEtWQSkKLSAqIGlzIHJlc2VydmVkIGFuZCBwb3J0aW9ucyBvZiBub2RlcyBhcmUgbWFwcGVkIHVzaW5nIGl0LiBUaGlzIGlzIHRvIGFsbG93Ci0gKiBub2RlLWxvY2FsIG1lbW9yeSB0byBiZSBhbGxvY2F0ZWQgZm9yIHN0cnVjdHVyZXMgdGhhdCB3b3VsZCBub3JtYWxseSByZXF1aXJlCi0gKiBaT05FX05PUk1BTC4gVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgd2l0aCBhbGxvY19yZW1hcCgpIGFuZCBjYWxsZXJzCi0gKiBzaG91bGQgYmUgcHJlcGFyZWQgdG8gYWxsb2NhdGUgZnJvbSB0aGUgYm9vdG1lbSBhbGxvY2F0b3IgaW5zdGVhZC4gVGhpcyBLVkEKLSAqIG1lY2hhbmlzbSBpcyBpbmNvbXBhdGlibGUgd2l0aCBTUEFSU0VNRU0gYXMgaXQgbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlCi0gKiBsYXlvdXQgb2YgbWVtb3J5IHRoYXQgYXJlIGJyb2tlbiBpZiBhbGxvY19yZW1hcCgpIHN1Y2NlZWRzIGZvciBzb21lIG9mIHRoZQotICogbWFwIGFuZCBmYWlscyBmb3Igb3RoZXJzCisgKiBJbiB0aGUgRElTQ09OVElHTUVNIGFuZCBTUEFSU0VNRU0gbWVtb3J5IG1vZGVsLCBhIHBvcnRpb24gb2YgdGhlIGtlcm5lbAorICogdmlydHVhbCBhZGRyZXNzIHNwYWNlIChLVkEpIGlzIHJlc2VydmVkIGFuZCBwb3J0aW9ucyBvZiBub2RlcyBhcmUgbWFwcGVkCisgKiB1c2luZyBpdC4gVGhpcyBpcyB0byBhbGxvdyBub2RlLWxvY2FsIG1lbW9yeSB0byBiZSBhbGxvY2F0ZWQgZm9yCisgKiBzdHJ1Y3R1cmVzIHRoYXQgd291bGQgbm9ybWFsbHkgcmVxdWlyZSBaT05FX05PUk1BTC4gVGhlIG1lbW9yeSBpcworICogYWxsb2NhdGVkIHdpdGggYWxsb2NfcmVtYXAoKSBhbmQgY2FsbGVycyBzaG91bGQgYmUgcHJlcGFyZWQgdG8gYWxsb2NhdGUKKyAqIGZyb20gdGhlIGJvb3RtZW0gYWxsb2NhdG9yIGluc3RlYWQuCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBsb25nIG5vZGVfcmVtYXBfc3RhcnRfcGZuW01BWF9OVU1OT0RFU107CiBzdGF0aWMgdm9pZCAqbm9kZV9yZW1hcF9lbmRfdmFkZHJbTUFYX05VTU5PREVTXTsKQEAgLTE5NSwxNSArMjAzLDE5IEBACiAJcmV0dXJuIGFsbG9jYXRpb247CiB9CiAKLXZvaWQgX19pbml0IHJlbWFwX251bWFfa3ZhKHZvaWQpCitzdGF0aWMgdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCkKIHsKIAl2b2lkICp2YWRkcjsKIAl1bnNpZ25lZCBsb25nIHBmbjsKIAlpbnQgbm9kZTsKIAogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5vZGUpIHsKKwkJcHJpbnRrKEtFUk5fREVCVUcgInJlbWFwX251bWFfa3ZhOiBub2RlICVkXG4iLCBub2RlKTsKIAkJZm9yIChwZm49MDsgcGZuIDwgbm9kZV9yZW1hcF9zaXplW25vZGVdOyBwZm4gKz0gUFRSU19QRVJfUFRFKSB7CiAJCQl2YWRkciA9IG5vZGVfcmVtYXBfc3RhcnRfdmFkZHJbbm9kZV0rKHBmbjw8UEFHRV9TSElGVCk7CisJCQlwcmludGsoS0VSTl9ERUJVRyAicmVtYXBfbnVtYV9rdmE6ICUwOGx4IHRvIHBmbiAlMDhseFxuIiwKKwkJCQkodW5zaWduZWQgbG9uZyl2YWRkciwKKwkJCQlub2RlX3JlbWFwX3N0YXJ0X3Bmbltub2RlXSArIHBmbik7CiAJCQlzZXRfcG1kX3BmbigodWxvbmcpIHZhZGRyLCAKIAkJCQlub2RlX3JlbWFwX3N0YXJ0X3Bmbltub2RlXSArIHBmbiwgCiAJCQkJUEFHRV9LRVJORUxfTEFSR0UpOwpAQCAtMjE1LDE3ICsyMjcsMjEgQEAKIHsKIAlpbnQgbmlkOwogCXVuc2lnbmVkIGxvbmcgc2l6ZSwgcmVzZXJ2ZV9wYWdlcyA9IDA7Ci0JdW5zaWduZWQgbG9uZyBwZm47CiAKIAlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKLQkJdW5zaWduZWQgb2xkX2VuZF9wZm4gPSBub2RlX2VuZF9wZm5bbmlkXTsKKwkJdTY0IG5vZGVfa3ZhX3RhcmdldDsKKwkJdTY0IG5vZGVfa3ZhX2ZpbmFsOwogCiAJCS8qCiAJCSAqIFRoZSBhY3BpL3NyYXQgbm9kZSBpbmZvIGNhbiBzaG93IGhvdC1hZGQgbWVtcm95IHpvbmVzCiAJCSAqIHdoZXJlIG1lbW9yeSBjb3VsZCBiZSBhZGRlZCBidXQgbm90IGN1cnJlbnRseSBwcmVzZW50LgogCQkgKi8KKwkJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgcGZuOiBbJWx4IC0gJWx4XVxuIiwKKwkJCW5pZCwgbm9kZV9zdGFydF9wZm5bbmlkXSwgbm9kZV9lbmRfcGZuW25pZF0pOwogCQlpZiAobm9kZV9zdGFydF9wZm5bbmlkXSA+IG1heF9wZm4pCiAJCQljb250aW51ZTsKKwkJaWYgKCFub2RlX2VuZF9wZm5bbmlkXSkKKwkJCWNvbnRpbnVlOwogCQlpZiAobm9kZV9lbmRfcGZuW25pZF0gPiBtYXhfcGZuKQogCQkJbm9kZV9lbmRfcGZuW25pZF0gPSBtYXhfcGZuOwogCkBAIC0yMzcsNDEgKzI1Myw0OCBAQAogCQkvKiBub3cgdGhlIHJvdW5kdXAgaXMgY29ycmVjdCwgY29udmVydCB0byBQQUdFX1NJWkUgcGFnZXMgKi8KIAkJc2l6ZSA9IHNpemUgKiBQVFJTX1BFUl9QVEU7CiAKLQkJLyoKLQkJICogVmFsaWRhdGUgdGhlIHJlZ2lvbiB3ZSBhcmUgYWxsb2NhdGluZyBvbmx5IGNvbnRhaW5zIHZhbGlkCi0JCSAqIHBhZ2VzLgotCQkgKi8KLQkJZm9yIChwZm4gPSBub2RlX2VuZF9wZm5bbmlkXSAtIHNpemU7Ci0JCSAgICAgcGZuIDwgbm9kZV9lbmRfcGZuW25pZF07IHBmbisrKQotCQkJaWYgKCFwYWdlX2lzX3JhbShwZm4pKQotCQkJCWJyZWFrOworCQlub2RlX2t2YV90YXJnZXQgPSByb3VuZF9kb3duKG5vZGVfZW5kX3BmbltuaWRdIC0gc2l6ZSwKKwkJCQkJCSBQVFJTX1BFUl9QVEUpOworCQlub2RlX2t2YV90YXJnZXQgPDw9IFBBR0VfU0hJRlQ7CisJCWRvIHsKKwkJCW5vZGVfa3ZhX2ZpbmFsID0gZmluZF9lODIwX2FyZWEobm9kZV9rdmFfdGFyZ2V0LAorCQkJCQkoKHU2NClub2RlX2VuZF9wZm5bbmlkXSk8PFBBR0VfU0hJRlQsCisJCQkJCQkoKHU2NClzaXplKTw8UEFHRV9TSElGVCwKKwkJCQkJCUxBUkdFX1BBR0VfQllURVMpOworCQkJbm9kZV9rdmFfdGFyZ2V0IC09IExBUkdFX1BBR0VfQllURVM7CisJCX0gd2hpbGUgKG5vZGVfa3ZhX2ZpbmFsID09IC0xVUxMICYmCisJCQkgKG5vZGVfa3ZhX3RhcmdldD4+UEFHRV9TSElGVCkgPiAobm9kZV9zdGFydF9wZm5bbmlkXSkpOwogCi0JCWlmIChwZm4gIT0gbm9kZV9lbmRfcGZuW25pZF0pCi0JCQlzaXplID0gMDsKKwkJaWYgKG5vZGVfa3ZhX2ZpbmFsID09IC0xVUxMKQorCQkJcGFuaWMoIkNhbiBub3QgZ2V0IGt2YSByYW1cbiIpOwogCi0JCXByaW50aygiUmVzZXJ2aW5nICVsZCBwYWdlcyBvZiBLVkEgZm9yIGxtZW1fbWFwIG9mIG5vZGUgJWRcbiIsCi0JCQkJc2l6ZSwgbmlkKTsKIAkJbm9kZV9yZW1hcF9zaXplW25pZF0gPSBzaXplOwogCQlub2RlX3JlbWFwX29mZnNldFtuaWRdID0gcmVzZXJ2ZV9wYWdlczsKIAkJcmVzZXJ2ZV9wYWdlcyArPSBzaXplOwotCQlwcmludGsoIlNocmlua2luZyBub2RlICVkIGZyb20gJWxkIHBhZ2VzIHRvICVsZCBwYWdlc1xuIiwKLQkJCW5pZCwgbm9kZV9lbmRfcGZuW25pZF0sIG5vZGVfZW5kX3BmbltuaWRdIC0gc2l6ZSk7CisJCXByaW50ayhLRVJOX0RFQlVHICJSZXNlcnZpbmcgJWxkIHBhZ2VzIG9mIEtWQSBmb3IgbG1lbV9tYXAgb2YiCisJCQkJICAiIG5vZGUgJWQgYXQgJWxseFxuIiwKKwkJCQlzaXplLCBuaWQsIG5vZGVfa3ZhX2ZpbmFsPj5QQUdFX1NISUZUKTsKIAotCQlpZiAobm9kZV9lbmRfcGZuW25pZF0gJiAoUFRSU19QRVJfUFRFLTEpKSB7Ci0JCQkvKgotCQkJICogQWxpZ24gbm9kZV9lbmRfcGZuW10gYW5kIG5vZGVfcmVtYXBfc3RhcnRfcGZuW10gdG8KLQkJCSAqIHBtZCBib3VuZGFyeS4gcmVtYXBfbnVtYV9rdmEgd2lsbCBiYXJmIG90aGVyd2lzZS4KLQkJCSAqLwotCQkJcHJpbnRrKCJTaHJpbmtpbmcgbm9kZSAlZCBmdXJ0aGVyIGJ5ICVsZCBwYWdlcyBmb3IgcHJvcGVyIGFsaWdubWVudFxuIiwKLQkJCQluaWQsIG5vZGVfZW5kX3BmbltuaWRdICYgKFBUUlNfUEVSX1BURS0xKSk7Ci0JCQlzaXplICs9ICBub2RlX2VuZF9wZm5bbmlkXSAmIChQVFJTX1BFUl9QVEUtMSk7Ci0JCX0KKwkJLyoKKwkJICogIHByZXZlbnQga3ZhIGFkZHJlc3MgYmVsb3cgbWF4X2xvd19wZm4gd2FudCBpdCBvbiBzeXN0ZW0KKwkJICogIHdpdGggbGVzcyBtZW1vcnkgbGF0ZXIuCisJCSAqICBsYXlvdXQgd2lsbCBiZTogS1ZBIGFkZHJlc3MgLCBLVkEgUkFNCisJCSAqCisJCSAqICB3ZSBhcmUgc3VwcG9zZWQgdG8gb25seSByZWNvcmQgdGhlIG9uZSBsZXNzIHRoZW4gbWF4X2xvd19wZm4KKwkJICogIGJ1dCB3ZSBjb3VsZCBoYXZlIHNvbWUgaG9sZSBpbiBoaWdoIG1lbW9yeSwgYW5kIGl0IHdpbGwgb25seQorCQkgKiAgY2hlY2sgcGFnZV9pc19yYW0ocGZuKSAmJiAhcGFnZV9pc19yZXNlcnZlZF9lYXJseShwZm4pIHRvIGRlY2lkZQorCQkgKiAgdG8gdXNlIGl0IGFzIGZyZWUuCisJCSAqICBTbyByZXNlcnZlX2Vhcmx5IGhlcmUsIGhvcGUgd2UgZG9uJ3QgcnVuIG91dCBvZiB0aGF0IGFycmF5CisJCSAqLworCQlyZXNlcnZlX2Vhcmx5KG5vZGVfa3ZhX2ZpbmFsLAorCQkJICAgICAgbm9kZV9rdmFfZmluYWwrKCgodTY0KXNpemUpPDxQQUdFX1NISUZUKSwKKwkJCSAgICAgICJLVkEgUkFNIik7CiAKLQkJbm9kZV9lbmRfcGZuW25pZF0gLT0gc2l6ZTsKLQkJbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSA9IG5vZGVfZW5kX3BmbltuaWRdOwotCQlzaHJpbmtfYWN0aXZlX3JhbmdlKG5pZCwgb2xkX2VuZF9wZm4sIG5vZGVfZW5kX3BmbltuaWRdKTsKKwkJbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSA9IG5vZGVfa3ZhX2ZpbmFsPj5QQUdFX1NISUZUOworCQlyZW1vdmVfYWN0aXZlX3JhbmdlKG5pZCwgbm9kZV9yZW1hcF9zdGFydF9wZm5bbmlkXSwKKwkJCQkJIG5vZGVfcmVtYXBfc3RhcnRfcGZuW25pZF0gKyBzaXplKTsKIAl9Ci0JcHJpbnRrKCJSZXNlcnZpbmcgdG90YWwgb2YgJWxkIHBhZ2VzIGZvciBudW1hIEtWQSByZW1hcFxuIiwKKwlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgdG90YWwgb2YgJWx4IHBhZ2VzIGZvciBudW1hIEtWQSByZW1hcFxuIiwKIAkJCXJlc2VydmVfcGFnZXMpOwogCXJldHVybiByZXNlcnZlX3BhZ2VzOwogfQpAQCAtMjg1LDM3ICszMDgsMTYgQEAKIAlub2RlX3JlbWFwX2FsbG9jX3ZhZGRyW25pZF0gPSBub2RlX3JlbWFwX3N0YXJ0X3ZhZGRyW25pZF0gKwogCQlBTElHTihzaXplb2YocGdfZGF0YV90KSwgUEFHRV9TSVpFKTsKIAotCXByaW50ayAoIm5vZGUgJWQgd2lsbCByZW1hcCB0byB2YWRkciAlMDhseCAtICUwOGx4XG4iLCBuaWQsCisJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgd2lsbCByZW1hcCB0byB2YWRkciAlMDhseCAtICUwOGx4XG4iLCBuaWQsCiAJCSh1bG9uZykgbm9kZV9yZW1hcF9zdGFydF92YWRkcltuaWRdLAotCQkodWxvbmcpIHBmbl90b19rYWRkcihoaWdoc3RhcnRfcGZuCi0JCSAgICsgbm9kZV9yZW1hcF9vZmZzZXRbbmlkXSArIG5vZGVfcmVtYXBfc2l6ZVtuaWRdKSk7Ci19Ci0jZWxzZQotdm9pZCAqYWxsb2NfcmVtYXAoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzaXplKQotewotCXJldHVybiBOVUxMOworCQkodWxvbmcpIG5vZGVfcmVtYXBfZW5kX3ZhZGRyW25pZF0pOwogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBjYWxjdWxhdGVfbnVtYV9yZW1hcF9wYWdlcyh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBpbml0X3JlbWFwX2FsbG9jYXRvcihpbnQgbmlkKQotewotfQotCi12b2lkIF9faW5pdCByZW1hcF9udW1hX2t2YSh2b2lkKQotewotfQotI2VuZGlmIC8qIENPTkZJR19ESVNDT05USUdNRU0gKi8KLQotZXh0ZXJuIHZvaWQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCk7Ci11bnNpZ25lZCBsb25nIF9faW5pdCBzZXR1cF9tZW1vcnkodm9pZCkKK3ZvaWQgX19pbml0IGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKIHsKIAlpbnQgbmlkOwotCXVuc2lnbmVkIGxvbmcgc3lzdGVtX3N0YXJ0X3Bmbiwgc3lzdGVtX21heF9sb3dfcGZuOwotCXVuc2lnbmVkIGxvbmcgd2FzdGVkX3BhZ2VzOworCWxvbmcga3ZhX3RhcmdldF9wZm47CiAKIAkvKgogCSAqIFdoZW4gbWFwcGluZyBhIE5VTUEgbWFjaGluZSB3ZSBhbGxvY2F0ZSB0aGUgbm9kZV9tZW1fbWFwIGFycmF5cwpAQCAtMzI0LDEwOSArMzI2LDc3IEBACiAJICogdGhpcyBzcGFjZSBhbmQgdXNlIGl0IHRvIGFkanVzdCB0aGUgYm91bmRhcnkgYmV0d2VlbiBaT05FX05PUk1BTAogCSAqIGFuZCBaT05FX0hJR0hNRU0uCiAJICovCisKIAlnZXRfbWVtY2ZnX251bWEoKTsKIAotCWt2YV9wYWdlcyA9IGNhbGN1bGF0ZV9udW1hX3JlbWFwX3BhZ2VzKCk7CisJa3ZhX3BhZ2VzID0gcm91bmRfdXAoY2FsY3VsYXRlX251bWFfcmVtYXBfcGFnZXMoKSwgUFRSU19QRVJfUFRFKTsKIAotCS8qIHBhcnRpYWxseSB1c2VkIHBhZ2VzIGFyZSBub3QgdXNhYmxlIC0gdGh1cyByb3VuZCB1cHdhcmRzICovCi0Jc3lzdGVtX3N0YXJ0X3BmbiA9IG1pbl9sb3dfcGZuID0gUEZOX1VQKGluaXRfcGdfdGFibGVzX2VuZCk7CisJa3ZhX3RhcmdldF9wZm4gPSByb3VuZF9kb3duKG1heF9sb3dfcGZuIC0ga3ZhX3BhZ2VzLCBQVFJTX1BFUl9QVEUpOworCWRvIHsKKwkJa3ZhX3N0YXJ0X3BmbiA9IGZpbmRfZTgyMF9hcmVhKGt2YV90YXJnZXRfcGZuPDxQQUdFX1NISUZULAorCQkJCQltYXhfbG93X3Bmbjw8UEFHRV9TSElGVCwKKwkJCQkJa3ZhX3BhZ2VzPDxQQUdFX1NISUZULAorCQkJCQlQVFJTX1BFUl9QVEU8PFBBR0VfU0hJRlQpID4+IFBBR0VfU0hJRlQ7CisJCWt2YV90YXJnZXRfcGZuIC09IFBUUlNfUEVSX1BURTsKKwl9IHdoaWxlIChrdmFfc3RhcnRfcGZuID09IC0xVUwgJiYga3ZhX3RhcmdldF9wZm4gPiBtaW5fbG93X3Bmbik7CiAKLQlrdmFfc3RhcnRfcGZuID0gZmluZF9tYXhfbG93X3BmbigpIC0ga3ZhX3BhZ2VzOworCWlmIChrdmFfc3RhcnRfcGZuID09IC0xVUwpCisJCXBhbmljKCJDYW4gbm90IGdldCBrdmEgc3BhY2VcbiIpOwogCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSU5JVFJECi0JLyogTnVtYSBrdmEgYXJlYSBpcyBiZWxvdyB0aGUgaW5pdHJkICovCi0JaWYgKGluaXRyZF9zdGFydCkKLQkJa3ZhX3N0YXJ0X3BmbiA9IFBGTl9ET1dOKGluaXRyZF9zdGFydCAtIFBBR0VfT0ZGU0VUKQotCQkJLSBrdmFfcGFnZXM7Ci0jZW5kaWYKLQotCS8qCi0JICogV2Ugd2FzdGUgcGFnZXMgcGFzdCBhdCB0aGUgZW5kIG9mIHRoZSBLVkEgZm9yIG5vIGdvb2QgcmVhc29uIG90aGVyCi0JICogdGhhbiBob3cgaXQgaXMgbG9jYXRlZC4gVGhpcyBpcyBiYWQuCi0JICovCi0Jd2FzdGVkX3BhZ2VzID0ga3ZhX3N0YXJ0X3BmbiAmIChQVFJTX1BFUl9QVEUtMSk7Ci0Ja3ZhX3N0YXJ0X3BmbiAtPSB3YXN0ZWRfcGFnZXM7Ci0Ja3ZhX3BhZ2VzICs9IHdhc3RlZF9wYWdlczsKLQotCXN5c3RlbV9tYXhfbG93X3BmbiA9IG1heF9sb3dfcGZuID0gZmluZF9tYXhfbG93X3BmbigpOwotCXByaW50aygia3ZhX3N0YXJ0X3BmbiB+ICVsZCBmaW5kX21heF9sb3dfcGZuKCkgfiAlbGRcbiIsCisJcHJpbnRrKEtFUk5fSU5GTyAia3ZhX3N0YXJ0X3BmbiB+ICVseCBtYXhfbG93X3BmbiB+ICVseFxuIiwKIAkJa3ZhX3N0YXJ0X3BmbiwgbWF4X2xvd19wZm4pOwotCXByaW50aygibWF4X3BmbiA9ICVsZFxuIiwgbWF4X3Bmbik7CisJcHJpbnRrKEtFUk5fSU5GTyAibWF4X3BmbiA9ICVseFxuIiwgbWF4X3Bmbik7CisKKwkvKiBhdm9pZCBjbGFzaCB3aXRoIGluaXRyZCAqLworCXJlc2VydmVfZWFybHkoa3ZhX3N0YXJ0X3Bmbjw8UEFHRV9TSElGVCwKKwkJICAgICAgKGt2YV9zdGFydF9wZm4gKyBrdmFfcGFnZXMpPDxQQUdFX1NISUZULAorCQkgICAgICJLVkEgUEciKTsKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCWhpZ2hzdGFydF9wZm4gPSBoaWdoZW5kX3BmbiA9IG1heF9wZm47Ci0JaWYgKG1heF9wZm4gPiBzeXN0ZW1fbWF4X2xvd19wZm4pCi0JCWhpZ2hzdGFydF9wZm4gPSBzeXN0ZW1fbWF4X2xvd19wZm47CisJaWYgKG1heF9wZm4gPiBtYXhfbG93X3BmbikKKwkJaGlnaHN0YXJ0X3BmbiA9IG1heF9sb3dfcGZuOwogCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgSElHSE1FTSBhdmFpbGFibGUuXG4iLAogCSAgICAgICBwYWdlc190b19tYihoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm4pKTsKIAludW1fcGh5c3BhZ2VzID0gaGlnaGVuZF9wZm47CiAJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CiAjZWxzZQotCW51bV9waHlzcGFnZXMgPSBzeXN0ZW1fbWF4X2xvd19wZm47Ci0JaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKHN5c3RlbV9tYXhfbG93X3BmbiAqIFBBR0VfU0laRSAtIDEpICsgMTsKKwludW1fcGh5c3BhZ2VzID0gbWF4X2xvd19wZm47CisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKG1heF9sb3dfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOwogI2VuZGlmCiAJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBMT1dNRU0gYXZhaWxhYmxlLlxuIiwKLQkJCXBhZ2VzX3RvX21iKHN5c3RlbV9tYXhfbG93X3BmbikpOwotCXByaW50aygibWluX2xvd19wZm4gPSAlbGQsIG1heF9sb3dfcGZuID0gJWxkLCBoaWdoc3RhcnRfcGZuID0gJWxkXG4iLCAKLQkJCW1pbl9sb3dfcGZuLCBtYXhfbG93X3BmbiwgaGlnaHN0YXJ0X3Bmbik7CisJCQlwYWdlc190b19tYihtYXhfbG93X3BmbikpOworCXByaW50ayhLRVJOX0RFQlVHICJtYXhfbG93X3BmbiA9ICVseCwgaGlnaHN0YXJ0X3BmbiA9ICVseFxuIiwKKwkJCW1heF9sb3dfcGZuLCBoaWdoc3RhcnRfcGZuKTsKIAotCXByaW50aygiTG93IG1lbW9yeSBlbmRzIGF0IHZhZGRyICUwOGx4XG4iLAorCXByaW50ayhLRVJOX0RFQlVHICJMb3cgbWVtb3J5IGVuZHMgYXQgdmFkZHIgJTA4bHhcbiIsCiAJCQkodWxvbmcpIHBmbl90b19rYWRkcihtYXhfbG93X3BmbikpOwogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewogCQlpbml0X3JlbWFwX2FsbG9jYXRvcihuaWQpOwogCiAJCWFsbG9jYXRlX3BnZGF0KG5pZCk7CiAJfQotCXByaW50aygiSGlnaCBtZW1vcnkgc3RhcnRzIGF0IHZhZGRyICUwOGx4XG4iLAorCXJlbWFwX251bWFfa3ZhKCk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiSGlnaCBtZW1vcnkgc3RhcnRzIGF0IHZhZGRyICUwOGx4XG4iLAogCQkJKHVsb25nKSBwZm5fdG9fa2FkZHIoaGlnaHN0YXJ0X3BmbikpOwogCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkKIAkJcHJvcGFnYXRlX2U4MjBfbWFwX25vZGUobmlkKTsKIAotCW1lbXNldChOT0RFX0RBVEEoMCksIDAsIHNpemVvZihzdHJ1Y3QgcGdsaXN0X2RhdGEpKTsKKwlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpCisJCW1lbXNldChOT0RFX0RBVEEobmlkKSwgMCwgc2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSkpOworCiAJTk9ERV9EQVRBKDApLT5iZGF0YSA9ICZub2RlMF9iZGF0YTsKIAlzZXR1cF9ib290bWVtX2FsbG9jYXRvcigpOwotCXJldHVybiBtYXhfbG93X3BmbjsKIH0KIAotdm9pZCBfX2luaXQgbnVtYV9rdmFfcmVzZXJ2ZSh2b2lkKQotewotCWlmIChrdmFfcGFnZXMpCi0JCXJlc2VydmVfYm9vdG1lbShQRk5fUEhZUyhrdmFfc3RhcnRfcGZuKSwgUEZOX1BIWVMoa3ZhX3BhZ2VzKSwKLQkJCQlCT09UTUVNX0RFRkFVTFQpOwotfQotCi12b2lkIF9faW5pdCB6b25lX3NpemVzX2luaXQodm9pZCkKLXsKLQlpbnQgbmlkOwotCXVuc2lnbmVkIGxvbmcgbWF4X3pvbmVfcGZuc1tNQVhfTlJfWk9ORVNdOwotCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwotCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0KLQkJdmlydF90b19waHlzKChjaGFyICopTUFYX0RNQV9BRERSRVNTKSA+PiBQQUdFX1NISUZUOwotCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X2xvd19wZm47Ci0jaWZkZWYgQ09ORklHX0hJR0hNRU0KLQltYXhfem9uZV9wZm5zW1pPTkVfSElHSE1FTV0gPSBoaWdoZW5kX3BmbjsKLSNlbmRpZgotCi0JLyogSWYgU1JBVCBoYXMgbm90IHJlZ2lzdGVyZWQgbWVtb3J5LCByZWdpc3RlciBpdCBub3cgKi8KLQlpZiAoZmluZF9tYXhfcGZuX3dpdGhfYWN0aXZlX3JlZ2lvbnMoKSA9PSAwKSB7Ci0JCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgewotCQkJaWYgKG5vZGVfaGFzX29ubGluZV9tZW0obmlkKSkKLQkJCQlhZGRfYWN0aXZlX3JhbmdlKG5pZCwgbm9kZV9zdGFydF9wZm5bbmlkXSwKLQkJCQkJCQlub2RlX2VuZF9wZm5bbmlkXSk7Ci0JCX0KLQl9Ci0KLQlmcmVlX2FyZWFfaW5pdF9ub2RlcyhtYXhfem9uZV9wZm5zKTsKLQlyZXR1cm47Ci19Ci0KLXZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQoaW50IGJhZF9wcHJvKSAKK3ZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCXN0cnVjdCB6b25lICp6b25lOwotCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBuaWQ7CiAKIAlmb3JfZWFjaF96b25lKHpvbmUpIHsKLQkJdW5zaWduZWQgbG9uZyBub2RlX3Bmbiwgem9uZV9zdGFydF9wZm4sIHpvbmVfZW5kX3BmbjsKKwkJdW5zaWduZWQgbG9uZyB6b25lX3N0YXJ0X3Bmbiwgem9uZV9lbmRfcGZuOwogCiAJCWlmICghaXNfaGlnaG1lbSh6b25lKSkKIAkJCWNvbnRpbnVlOwpAQCAtNDM0LDE2ICs0MDQsMTIgQEAKIAkJem9uZV9zdGFydF9wZm4gPSB6b25lLT56b25lX3N0YXJ0X3BmbjsKIAkJem9uZV9lbmRfcGZuID0gem9uZV9zdGFydF9wZm4gKyB6b25lLT5zcGFubmVkX3BhZ2VzOwogCi0JCXByaW50aygiSW5pdGlhbGl6aW5nICVzIGZvciBub2RlICVkICglMDhseDolMDhseClcbiIsCi0JCQkJem9uZS0+bmFtZSwgem9uZV90b19uaWQoem9uZSksCi0JCQkJem9uZV9zdGFydF9wZm4sIHpvbmVfZW5kX3Bmbik7CisJCW5pZCA9IHpvbmVfdG9fbmlkKHpvbmUpOworCQlwcmludGsoS0VSTl9JTkZPICJJbml0aWFsaXppbmcgJXMgZm9yIG5vZGUgJWQgKCUwOGx4OiUwOGx4KVxuIiwKKwkJCQl6b25lLT5uYW1lLCBuaWQsIHpvbmVfc3RhcnRfcGZuLCB6b25lX2VuZF9wZm4pOwogCi0JCWZvciAobm9kZV9wZm4gPSB6b25lX3N0YXJ0X3Bmbjsgbm9kZV9wZm4gPCB6b25lX2VuZF9wZm47IG5vZGVfcGZuKyspIHsKLQkJCWlmICghcGZuX3ZhbGlkKG5vZGVfcGZuKSkKLQkJCQljb250aW51ZTsKLQkJCXBhZ2UgPSBwZm5fdG9fcGFnZShub2RlX3Bmbik7Ci0JCQlhZGRfb25lX2hpZ2hwYWdlX2luaXQocGFnZSwgbm9kZV9wZm4sIGJhZF9wcHJvKTsKLQkJfQorCQlhZGRfaGlnaHBhZ2VzX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCB6b25lX3N0YXJ0X3BmbiwKKwkJCQkgem9uZV9lbmRfcGZuKTsKIAl9CiAJdG90YWxyYW1fcGFnZXMgKz0gdG90YWxoaWdoX3BhZ2VzOwogI2VuZGlmCkBAIC00NzYsMyArNDQyLDQgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwobWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQpOwogI2VuZGlmCisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxlcy5jIGIvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKaW5kZXggMmMyNGJlYS4uMGJiMGNhZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKKysrIGIvYXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMKQEAgLTQyLDcgKzQyLDcgQEAKIAl7IDAsICJVc2VyIFNwYWNlIiB9LAogI2lmZGVmIENPTkZJR19YODZfNjQKIAl7IDB4ODAwMDAwMDAwMDAwMDAwMFVMLCAiS2VybmVsIFNwYWNlIiB9LAotCXsgMHhmZmZmODEwMDAwMDAwMDAwVUwsICJMb3cgS2VybmVsIE1hcHBpbmciIH0sCisJeyBQQUdFX09GRlNFVCwJCSJMb3cgS2VybmVsIE1hcHBpbmciIH0sCiAJeyBWTUFMTE9DX1NUQVJULCAgICAgICAgInZtYWxsb2MoKSBBcmVhIiB9LAogCXsgVk1FTU1BUF9TVEFSVCwgICAgICAgICJWbWVtbWFwIiB9LAogCXsgX19TVEFSVF9LRVJORUxfbWFwLCAgICJIaWdoIEtlcm5lbCBNYXBwaW5nIiB9LApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vZmF1bHQuYyBiL2FyY2gveDg2L21tL2ZhdWx0LmMKaW5kZXggZmQ3ZTE3OS4uNDU1ZjNmZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vZmF1bHQuYworKysgYi9hcmNoL3g4Ni9tbS9mYXVsdC5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tbWFuLmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KQEAgLTQ5LDE3ICs1MCwyMyBAQAogI2RlZmluZSBQRl9SU1ZECQkoMTw8MykKICNkZWZpbmUgUEZfSU5TVFIJKDE8PDQpCiAKK3N0YXRpYyBpbmxpbmUgaW50IGttbWlvX2ZhdWx0KHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisjaWZkZWYgQ09ORklHX01NSU9UUkFDRV9IT09LUworCWlmICh1bmxpa2VseShpc19rbW1pb19hY3RpdmUoKSkpCisJCWlmIChrbW1pb19oYW5kbGVyKHJlZ3MsIGFkZHIpID09IDEpCisJCQlyZXR1cm4gLTE7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgbm90aWZ5X3BhZ2VfZmF1bHQoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7CiAjaWZkZWYgQ09ORklHX0tQUk9CRVMKIAlpbnQgcmV0ID0gMDsKIAogCS8qIGtwcm9iZV9ydW5uaW5nKCkgbmVlZHMgc21wX3Byb2Nlc3Nvcl9pZCgpICovCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgogCWlmICghdXNlcl9tb2RlX3ZtKHJlZ3MpKSB7Ci0jZWxzZQotCWlmICghdXNlcl9tb2RlKHJlZ3MpKSB7Ci0jZW5kaWYKIAkJcHJlZW1wdF9kaXNhYmxlKCk7CiAJCWlmIChrcHJvYmVfcnVubmluZygpICYmIGtwcm9iZV9mYXVsdF9oYW5kbGVyKHJlZ3MsIDE0KSkKIAkJCXJldCA9IDE7CkBAIC0zOTYsMTEgKzQwMyw3IEBACiAJCXByaW50ayhLRVJOX0NPTlQgIk5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSIpOwogCWVsc2UKIAkJcHJpbnRrKEtFUk5fQ09OVCAicGFnaW5nIHJlcXVlc3QiKTsKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JcHJpbnRrKEtFUk5fQ09OVCAiIGF0ICUwOGx4XG4iLCBhZGRyZXNzKTsKLSNlbHNlCi0JcHJpbnRrKEtFUk5fQ09OVCAiIGF0ICUwMTZseFxuIiwgYWRkcmVzcyk7Ci0jZW5kaWYKKwlwcmludGsoS0VSTl9DT05UICIgYXQgJXBcbiIsICh2b2lkICopIGFkZHJlc3MpOwogCXByaW50ayhLRVJOX0FMRVJUICJJUDoiKTsKIAlwcmludGtfYWRkcmVzcyhyZWdzLT5pcCwgMSk7CiAJZHVtcF9wYWdldGFibGUoYWRkcmVzcyk7CkBAIC00OTcsNiArNTAwLDExIEBACiAJdW5zaWduZWQgbG9uZyBwZ2RfcGFkZHI7CiAJcG1kX3QgKnBtZF9rOwogCXB0ZV90ICpwdGVfazsKKworCS8qIE1ha2Ugc3VyZSB3ZSBhcmUgaW4gdm1hbGxvYyBhcmVhICovCisJaWYgKCEoYWRkcmVzcyA+PSBWTUFMTE9DX1NUQVJUICYmIGFkZHJlc3MgPCBWTUFMTE9DX0VORCkpCisJCXJldHVybiAtMTsKKwogCS8qCiAJICogU3luY2hyb25pemUgdGhpcyB0YXNrJ3MgdG9wIGxldmVsIHBhZ2UtdGFibGUKIAkgKiB3aXRoIHRoZSAncmVmZXJlbmNlJyBwYWdlIHRhYmxlLgpAQCAtNjAxLDYgKzYwOSw4IEBACiAKIAlpZiAobm90aWZ5X3BhZ2VfZmF1bHQocmVncykpCiAJCXJldHVybjsKKwlpZiAodW5saWtlbHkoa21taW9fZmF1bHQocmVncywgYWRkcmVzcykpKQorCQlyZXR1cm47CiAKIAkvKgogCSAqIFdlIGZhdWx0LWluIGtlcm5lbC1zcGFjZSB2aXJ0dWFsIG1lbW9yeSBvbi1kZW1hbmQuIFRoZQpAQCAtNzk1LDE0ICs4MDUsMTAgQEAKIAkJaWYgKHNob3dfdW5oYW5kbGVkX3NpZ25hbHMgJiYgdW5oYW5kbGVkX3NpZ25hbCh0c2ssIFNJR1NFR1YpICYmCiAJCSAgICBwcmludGtfcmF0ZWxpbWl0KCkpIHsKIAkJCXByaW50aygKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0JCQkiJXMlc1slZF06IHNlZ2ZhdWx0IGF0ICVseCBpcCAlMDhseCBzcCAlMDhseCBlcnJvciAlbHgiLAotI2Vsc2UKLQkJCSIlcyVzWyVkXTogc2VnZmF1bHQgYXQgJWx4IGlwICVseCBzcCAlbHggZXJyb3IgJWx4IiwKLSNlbmRpZgorCQkJIiVzJXNbJWRdOiBzZWdmYXVsdCBhdCAlbHggaXAgJXAgc3AgJXAgZXJyb3IgJWx4IiwKIAkJCXRhc2tfcGlkX25yKHRzaykgPiAxID8gS0VSTl9JTkZPIDogS0VSTl9FTUVSRywKLQkJCXRzay0+Y29tbSwgdGFza19waWRfbnIodHNrKSwgYWRkcmVzcywgcmVncy0+aXAsCi0JCQlyZWdzLT5zcCwgZXJyb3JfY29kZSk7CisJCQl0c2stPmNvbW0sIHRhc2tfcGlkX25yKHRzayksIGFkZHJlc3MsCisJCQkodm9pZCAqKSByZWdzLT5pcCwgKHZvaWQgKikgcmVncy0+c3AsIGVycm9yX2NvZGUpOwogCQkJcHJpbnRfdm1hX2FkZHIoIiBpbiAiLCByZWdzLT5pcCk7CiAJCQlwcmludGsoIlxuIik7CiAJCX0KQEAgLTkxMCwxNCArOTE2LDcgQEAKIHZvaWQgdm1hbGxvY19zeW5jX2FsbCh2b2lkKQogewogI2lmZGVmIENPTkZJR19YODZfMzIKLQkvKgotCSAqIE5vdGUgdGhhdCByYWNlcyBpbiB0aGUgdXBkYXRlcyBvZiBpbnN5bmMgYW5kIHN0YXJ0IGFyZW4ndAotCSAqIHByb2JsZW1hdGljOiBpbnN5bmMgY2FuIG9ubHkgZ2V0IHNldCBiaXRzIGFkZGVkLCBhbmQgdXBkYXRlcyB0bwotCSAqIHN0YXJ0IGFyZSBvbmx5IGltcHJvdmluZyBwZXJmb3JtYW5jZSAod2l0aG91dCBhZmZlY3RpbmcgY29ycmVjdG5lc3MKLQkgKiBpZiB1bmRvbmUpLgotCSAqLwotCXN0YXRpYyBERUNMQVJFX0JJVE1BUChpbnN5bmMsIFBUUlNfUEVSX1BHRCk7Ci0Jc3RhdGljIHVuc2lnbmVkIGxvbmcgc3RhcnQgPSBUQVNLX1NJWkU7CisJdW5zaWduZWQgbG9uZyBzdGFydCA9IFZNQUxMT0NfU1RBUlQgJiBQR0RJUl9NQVNLOwogCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKIAogCWlmIChTSEFSRURfS0VSTkVMX1BNRCkKQEAgLTkyNSw1NiArOTI0LDM4IEBACiAKIAlCVUlMRF9CVUdfT04oVEFTS19TSVpFICYgflBHRElSX01BU0spOwogCWZvciAoYWRkcmVzcyA9IHN0YXJ0OyBhZGRyZXNzID49IFRBU0tfU0laRTsgYWRkcmVzcyArPSBQR0RJUl9TSVpFKSB7Ci0JCWlmICghdGVzdF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpKSB7Ci0JCQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCQkJc3RydWN0IHBhZ2UgKnBhZ2U7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCXN0cnVjdCBwYWdlICpwYWdlOwogCi0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkocGFnZSwgJnBnZF9saXN0LCBscnUpIHsKLQkJCQlpZiAoIXZtYWxsb2Nfc3luY19vbmUocGFnZV9hZGRyZXNzKHBhZ2UpLAotCQkJCQkJICAgICAgYWRkcmVzcykpCi0JCQkJCWJyZWFrOwotCQkJfQotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKLQkJCWlmICghcGFnZSkKLQkJCQlzZXRfYml0KHBnZF9pbmRleChhZGRyZXNzKSwgaW5zeW5jKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocGFnZSwgJnBnZF9saXN0LCBscnUpIHsKKwkJCWlmICghdm1hbGxvY19zeW5jX29uZShwYWdlX2FkZHJlc3MocGFnZSksCisJCQkJCSAgICAgIGFkZHJlc3MpKQorCQkJCWJyZWFrOwogCQl9Ci0JCWlmIChhZGRyZXNzID09IHN0YXJ0ICYmIHRlc3RfYml0KHBnZF9pbmRleChhZGRyZXNzKSwgaW5zeW5jKSkKLQkJCXN0YXJ0ID0gYWRkcmVzcyArIFBHRElSX1NJWkU7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7CiAJfQogI2Vsc2UgLyogQ09ORklHX1g4Nl82NCAqLwotCS8qCi0JICogTm90ZSB0aGF0IHJhY2VzIGluIHRoZSB1cGRhdGVzIG9mIGluc3luYyBhbmQgc3RhcnQgYXJlbid0Ci0JICogcHJvYmxlbWF0aWM6IGluc3luYyBjYW4gb25seSBnZXQgc2V0IGJpdHMgYWRkZWQsIGFuZCB1cGRhdGVzIHRvCi0JICogc3RhcnQgYXJlIG9ubHkgaW1wcm92aW5nIHBlcmZvcm1hbmNlICh3aXRob3V0IGFmZmVjdGluZyBjb3JyZWN0bmVzcwotCSAqIGlmIHVuZG9uZSkuCi0JICovCi0Jc3RhdGljIERFQ0xBUkVfQklUTUFQKGluc3luYywgUFRSU19QRVJfUEdEKTsKLQlzdGF0aWMgdW5zaWduZWQgbG9uZyBzdGFydCA9IFZNQUxMT0NfU1RBUlQgJiBQR0RJUl9NQVNLOworCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBWTUFMTE9DX1NUQVJUICYgUEdESVJfTUFTSzsKIAl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CiAKIAlmb3IgKGFkZHJlc3MgPSBzdGFydDsgYWRkcmVzcyA8PSBWTUFMTE9DX0VORDsgYWRkcmVzcyArPSBQR0RJUl9TSVpFKSB7Ci0JCWlmICghdGVzdF9iaXQocGdkX2luZGV4KGFkZHJlc3MpLCBpbnN5bmMpKSB7Ci0JCQljb25zdCBwZ2RfdCAqcGdkX3JlZiA9IHBnZF9vZmZzZXRfayhhZGRyZXNzKTsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwkJY29uc3QgcGdkX3QgKnBnZF9yZWYgPSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcyk7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCXN0cnVjdCBwYWdlICpwYWdlOwogCi0JCQlpZiAocGdkX25vbmUoKnBnZF9yZWYpKQotCQkJCWNvbnRpbnVlOwotCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhZ2UsICZwZ2RfbGlzdCwgbHJ1KSB7Ci0JCQkJcGdkX3QgKnBnZDsKLQkJCQlwZ2QgPSAocGdkX3QgKilwYWdlX2FkZHJlc3MocGFnZSkgKyBwZ2RfaW5kZXgoYWRkcmVzcyk7Ci0JCQkJaWYgKHBnZF9ub25lKCpwZ2QpKQotCQkJCQlzZXRfcGdkKHBnZCwgKnBnZF9yZWYpOwotCQkJCWVsc2UKLQkJCQkJQlVHX09OKHBnZF9wYWdlX3ZhZGRyKCpwZ2QpICE9IHBnZF9wYWdlX3ZhZGRyKCpwZ2RfcmVmKSk7Ci0JCQl9Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RfbG9jaywgZmxhZ3MpOwotCQkJc2V0X2JpdChwZ2RfaW5kZXgoYWRkcmVzcyksIGluc3luYyk7CisJCWlmIChwZ2Rfbm9uZSgqcGdkX3JlZikpCisJCQljb250aW51ZTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocGFnZSwgJnBnZF9saXN0LCBscnUpIHsKKwkJCXBnZF90ICpwZ2Q7CisJCQlwZ2QgPSAocGdkX3QgKilwYWdlX2FkZHJlc3MocGFnZSkgKyBwZ2RfaW5kZXgoYWRkcmVzcyk7CisJCQlpZiAocGdkX25vbmUoKnBnZCkpCisJCQkJc2V0X3BnZChwZ2QsICpwZ2RfcmVmKTsKKwkJCWVsc2UKKwkJCQlCVUdfT04ocGdkX3BhZ2VfdmFkZHIoKnBnZCkgIT0gcGdkX3BhZ2VfdmFkZHIoKnBnZF9yZWYpKTsKIAkJfQotCQlpZiAoYWRkcmVzcyA9PSBzdGFydCkKLQkJCXN0YXJ0ID0gYWRkcmVzcyArIFBHRElSX1NJWkU7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBnZF9sb2NrLCBmbGFncyk7CiAJfQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pbml0XzMyLmMgYi9hcmNoL3g4Ni9tbS9pbml0XzMyLmMKaW5kZXggZWMzMGQxMC4uOTY4OWE1MSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vaW5pdF8zMi5jCisrKyBiL2FyY2gveDg2L21tL2luaXRfMzIuYwpAQCAtNTAsNiArNTAsNyBAQAogCiB1bnNpZ25lZCBpbnQgX19WTUFMTE9DX1JFU0VSVkUgPSAxMjggPDwgMjA7CiAKK3Vuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm5fbWFwcGVkOwogdW5zaWduZWQgbG9uZyBtYXhfcGZuX21hcHBlZDsKIAogREVGSU5FX1BFUl9DUFUoc3RydWN0IG1tdV9nYXRoZXIsIG1tdV9nYXRoZXJzKTsKQEAgLTU3LDYgKzU4LDI3IEBACiAKIHN0YXRpYyBub2lubGluZSBpbnQgZG9fdGVzdF93cF9iaXQodm9pZCk7CiAKKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSB0YWJsZV9zdGFydDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdGRhdGEgdGFibGVfZW5kOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0ZGF0YSB0YWJsZV90b3A7CisKK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBhZnRlcl9pbml0X2Jvb3RtZW07CisKK3N0YXRpYyBfX2luaXQgdm9pZCAqYWxsb2NfbG93X3BhZ2UodW5zaWduZWQgbG9uZyAqcGh5cykKK3sKKwl1bnNpZ25lZCBsb25nIHBmbiA9IHRhYmxlX2VuZCsrOworCXZvaWQgKmFkcjsKKworCWlmIChwZm4gPj0gdGFibGVfdG9wKQorCQlwYW5pYygiYWxsb2NfbG93X3BhZ2U6IHJhbiBvdXQgb2YgbWVtb3J5Iik7CisKKwlhZHIgPSBfX3ZhKHBmbiAqIFBBR0VfU0laRSk7CisJbWVtc2V0KGFkciwgMCwgUEFHRV9TSVpFKTsKKwkqcGh5cyAgPSBwZm4gKiBQQUdFX1NJWkU7CisJcmV0dXJuIGFkcjsKK30KKwogLyoKICAqIENyZWF0ZXMgYSBtaWRkbGUgcGFnZSB0YWJsZSBhbmQgcHV0cyBhIHBvaW50ZXIgdG8gaXQgaW4gdGhlCiAgKiBnaXZlbiBnbG9iYWwgZGlyZWN0b3J5IGVudHJ5LiBUaGlzIG9ubHkgcmV0dXJucyB0aGUgZ2QgZW50cnkKQEAgLTY4LDkgKzkwLDEyIEBACiAJcG1kX3QgKnBtZF90YWJsZTsKIAogI2lmZGVmIENPTkZJR19YODZfUEFFCisJdW5zaWduZWQgbG9uZyBwaHlzOwogCWlmICghKHBnZF92YWwoKnBnZCkgJiBfUEFHRV9QUkVTRU5UKSkgewotCQlwbWRfdGFibGUgPSAocG1kX3QgKikgYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKLQorCQlpZiAoYWZ0ZXJfaW5pdF9ib290bWVtKQorCQkJcG1kX3RhYmxlID0gKHBtZF90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKKwkJZWxzZQorCQkJcG1kX3RhYmxlID0gKHBtZF90ICopYWxsb2NfbG93X3BhZ2UoJnBoeXMpOwogCQlwYXJhdmlydF9hbGxvY19wbWQoJmluaXRfbW0sIF9fcGEocG1kX3RhYmxlKSA+PiBQQUdFX1NISUZUKTsKIAkJc2V0X3BnZChwZ2QsIF9fcGdkKF9fcGEocG1kX3RhYmxlKSB8IF9QQUdFX1BSRVNFTlQpKTsKIAkJcHVkID0gcHVkX29mZnNldChwZ2QsIDApOwpAQCAtOTIsMTIgKzExNywxNiBAQAogCWlmICghKHBtZF92YWwoKnBtZCkgJiBfUEFHRV9QUkVTRU5UKSkgewogCQlwdGVfdCAqcGFnZV90YWJsZSA9IE5VTEw7CiAKKwkJaWYgKGFmdGVyX2luaXRfYm9vdG1lbSkgewogI2lmZGVmIENPTkZJR19ERUJVR19QQUdFQUxMT0MKLQkJcGFnZV90YWJsZSA9IChwdGVfdCAqKSBhbGxvY19ib290bWVtX3BhZ2VzKFBBR0VfU0laRSk7CisJCQlwYWdlX3RhYmxlID0gKHB0ZV90ICopIGFsbG9jX2Jvb3RtZW1fcGFnZXMoUEFHRV9TSVpFKTsKICNlbmRpZgotCQlpZiAoIXBhZ2VfdGFibGUpIHsKLQkJCXBhZ2VfdGFibGUgPQorCQkJaWYgKCFwYWdlX3RhYmxlKQorCQkJCXBhZ2VfdGFibGUgPQogCQkJCShwdGVfdCAqKWFsbG9jX2Jvb3RtZW1fbG93X3BhZ2VzKFBBR0VfU0laRSk7CisJCX0gZWxzZSB7CisJCQl1bnNpZ25lZCBsb25nIHBoeXM7CisJCQlwYWdlX3RhYmxlID0gKHB0ZV90ICopYWxsb2NfbG93X3BhZ2UoJnBoeXMpOwogCQl9CiAKIAkJcGFyYXZpcnRfYWxsb2NfcHRlKCZpbml0X21tLCBfX3BhKHBhZ2VfdGFibGUpID4+IFBBR0VfU0hJRlQpOwpAQCAtMTU1LDM4ICsxODQsNDQgQEAKICAqIG9mIG1heF9sb3dfcGZuIHBhZ2VzLCBieSBjcmVhdGluZyBwYWdlIHRhYmxlcyBzdGFydGluZyBmcm9tIGFkZHJlc3MKICAqIFBBR0VfT0ZGU0VUOgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQga2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfdCAqcGdkX2Jhc2UpCitzdGF0aWMgdm9pZCBfX2luaXQga2VybmVsX3BoeXNpY2FsX21hcHBpbmdfaW5pdChwZ2RfdCAqcGdkX2Jhc2UsCisJCQkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3BmbiwKKwkJCQkJCWludCB1c2VfcHNlKQogewogCWludCBwZ2RfaWR4LCBwbWRfaWR4LCBwdGVfb2ZzOwogCXVuc2lnbmVkIGxvbmcgcGZuOwogCXBnZF90ICpwZ2Q7CiAJcG1kX3QgKnBtZDsKIAlwdGVfdCAqcHRlOworCXVuc2lnbmVkIHBhZ2VzXzJtID0gMCwgcGFnZXNfNGsgPSAwOwogCi0JcGdkX2lkeCA9IHBnZF9pbmRleChQQUdFX09GRlNFVCk7CisJaWYgKCFjcHVfaGFzX3BzZSkKKwkJdXNlX3BzZSA9IDA7CisKKwlwZm4gPSBzdGFydF9wZm47CisJcGdkX2lkeCA9IHBnZF9pbmRleCgocGZuPDxQQUdFX1NISUZUKSArIFBBR0VfT0ZGU0VUKTsKIAlwZ2QgPSBwZ2RfYmFzZSArIHBnZF9pZHg7Ci0JcGZuID0gMDsKLQogCWZvciAoOyBwZ2RfaWR4IDwgUFRSU19QRVJfUEdEOyBwZ2QrKywgcGdkX2lkeCsrKSB7CiAJCXBtZCA9IG9uZV9tZF90YWJsZV9pbml0KHBnZCk7Ci0JCWlmIChwZm4gPj0gbWF4X2xvd19wZm4pCi0JCQljb250aW51ZTsKIAotCQlmb3IgKHBtZF9pZHggPSAwOwotCQkgICAgIHBtZF9pZHggPCBQVFJTX1BFUl9QTUQgJiYgcGZuIDwgbWF4X2xvd19wZm47CisJCWlmIChwZm4gPj0gZW5kX3BmbikKKwkJCWNvbnRpbnVlOworI2lmZGVmIENPTkZJR19YODZfUEFFCisJCXBtZF9pZHggPSBwbWRfaW5kZXgoKHBmbjw8UEFHRV9TSElGVCkgKyBQQUdFX09GRlNFVCk7CisJCXBtZCArPSBwbWRfaWR4OworI2Vsc2UKKwkJcG1kX2lkeCA9IDA7CisjZW5kaWYKKwkJZm9yICg7IHBtZF9pZHggPCBQVFJTX1BFUl9QTUQgJiYgcGZuIDwgZW5kX3BmbjsKIAkJICAgICBwbWQrKywgcG1kX2lkeCsrKSB7CiAJCQl1bnNpZ25lZCBpbnQgYWRkciA9IHBmbiAqIFBBR0VfU0laRSArIFBBR0VfT0ZGU0VUOwogCiAJCQkvKgogCQkJICogTWFwIHdpdGggYmlnIHBhZ2VzIGlmIHBvc3NpYmxlLCBvdGhlcndpc2UKIAkJCSAqIGNyZWF0ZSBub3JtYWwgcGFnZSB0YWJsZXM6Ci0JCQkgKgotCQkJICogRG9uJ3QgdXNlIGEgbGFyZ2UgcGFnZSBmb3IgdGhlIGZpcnN0IDIvNE1CIG9mIG1lbW9yeQotCQkJICogYmVjYXVzZSB0aGVyZSBhcmUgb2Z0ZW4gZml4ZWQgc2l6ZSBNVFJScyBpbiB0aGVyZQotCQkJICogYW5kIG92ZXJsYXBwaW5nIE1UUlJzIGludG8gbGFyZ2UgcGFnZXMgY2FuIGNhdXNlCi0JCQkgKiBzbG93ZG93bnMuCiAJCQkgKi8KLQkJCWlmIChjcHVfaGFzX3BzZSAmJiAhKHBnZF9pZHggPT0gMCAmJiBwbWRfaWR4ID09IDApKSB7CisJCQlpZiAodXNlX3BzZSkgewogCQkJCXVuc2lnbmVkIGludCBhZGRyMjsKIAkJCQlwZ3Byb3RfdCBwcm90ID0gUEFHRV9LRVJORUxfTEFSR0U7CiAKQEAgLTE5NywzNCArMjMyLDMwIEBACiAJCQkJICAgIGlzX2tlcm5lbF90ZXh0KGFkZHIyKSkKIAkJCQkJcHJvdCA9IFBBR0VfS0VSTkVMX0xBUkdFX0VYRUM7CiAKKwkJCQlwYWdlc18ybSsrOwogCQkJCXNldF9wbWQocG1kLCBwZm5fcG1kKHBmbiwgcHJvdCkpOwogCiAJCQkJcGZuICs9IFBUUlNfUEVSX1BURTsKLQkJCQltYXhfcGZuX21hcHBlZCA9IHBmbjsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJCXB0ZSA9IG9uZV9wYWdlX3RhYmxlX2luaXQocG1kKTsKIAotCQkJZm9yIChwdGVfb2ZzID0gMDsKLQkJCSAgICAgcHRlX29mcyA8IFBUUlNfUEVSX1BURSAmJiBwZm4gPCBtYXhfbG93X3BmbjsKKwkJCXB0ZV9vZnMgPSBwdGVfaW5kZXgoKHBmbjw8UEFHRV9TSElGVCkgKyBQQUdFX09GRlNFVCk7CisJCQlwdGUgKz0gcHRlX29mczsKKwkJCWZvciAoOyBwdGVfb2ZzIDwgUFRSU19QRVJfUFRFICYmIHBmbiA8IGVuZF9wZm47CiAJCQkgICAgIHB0ZSsrLCBwZm4rKywgcHRlX29mcysrLCBhZGRyICs9IFBBR0VfU0laRSkgewogCQkJCXBncHJvdF90IHByb3QgPSBQQUdFX0tFUk5FTDsKIAogCQkJCWlmIChpc19rZXJuZWxfdGV4dChhZGRyKSkKIAkJCQkJcHJvdCA9IFBBR0VfS0VSTkVMX0VYRUM7CiAKKwkJCQlwYWdlc180aysrOwogCQkJCXNldF9wdGUocHRlLCBwZm5fcHRlKHBmbiwgcHJvdCkpOwogCQkJfQotCQkJbWF4X3Bmbl9tYXBwZWQgPSBwZm47CiAJCX0KIAl9Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHBhZ2Vfa2lsbHNfcHBybyh1bnNpZ25lZCBsb25nIHBhZ2VucikKLXsKLQlpZiAocGFnZW5yID49IDB4NzAwMDAgJiYgcGFnZW5yIDw9IDB4NzAwM0YpCi0JCXJldHVybiAxOwotCXJldHVybiAwOworCXVwZGF0ZV9wYWdlX2NvdW50KFBHX0xFVkVMXzJNLCBwYWdlc18ybSk7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfNEssIHBhZ2VzXzRrKTsKIH0KIAogLyoKQEAgLTI4NywyOSArMzE4LDYyIEBACiAJcGttYXBfcGFnZV90YWJsZSA9IHB0ZTsKIH0KIAotdm9pZCBfX2luaXQgYWRkX29uZV9oaWdocGFnZV9pbml0KHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgcGZuLCBpbnQgYmFkX3Bwcm8pCitzdGF0aWMgdm9pZCBfX2luaXQgYWRkX29uZV9oaWdocGFnZV9pbml0KHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgcGZuKQogewotCWlmIChwYWdlX2lzX3JhbShwZm4pICYmICEoYmFkX3Bwcm8gJiYgcGFnZV9raWxsc19wcHJvKHBmbikpKSB7Ci0JCUNsZWFyUGFnZVJlc2VydmVkKHBhZ2UpOwotCQlpbml0X3BhZ2VfY291bnQocGFnZSk7Ci0JCV9fZnJlZV9wYWdlKHBhZ2UpOwotCQl0b3RhbGhpZ2hfcGFnZXMrKzsKLQl9IGVsc2UKLQkJU2V0UGFnZVJlc2VydmVkKHBhZ2UpOworCUNsZWFyUGFnZVJlc2VydmVkKHBhZ2UpOworCWluaXRfcGFnZV9jb3VudChwYWdlKTsKKwlfX2ZyZWVfcGFnZShwYWdlKTsKKwl0b3RhbGhpZ2hfcGFnZXMrKzsKK30KKworc3RydWN0IGFkZF9oaWdocGFnZXNfZGF0YSB7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm47CisJdW5zaWduZWQgbG9uZyBlbmRfcGZuOworfTsKKworc3RhdGljIGludCBfX2luaXQgYWRkX2hpZ2hwYWdlc193b3JrX2ZuKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuLCB2b2lkICpkYXRheCkKK3sKKwlpbnQgbm9kZV9wZm47CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJdW5zaWduZWQgbG9uZyBmaW5hbF9zdGFydF9wZm4sIGZpbmFsX2VuZF9wZm47CisJc3RydWN0IGFkZF9oaWdocGFnZXNfZGF0YSAqZGF0YTsKKworCWRhdGEgPSAoc3RydWN0IGFkZF9oaWdocGFnZXNfZGF0YSAqKWRhdGF4OworCisJZmluYWxfc3RhcnRfcGZuID0gbWF4KHN0YXJ0X3BmbiwgZGF0YS0+c3RhcnRfcGZuKTsKKwlmaW5hbF9lbmRfcGZuID0gbWluKGVuZF9wZm4sIGRhdGEtPmVuZF9wZm4pOworCWlmIChmaW5hbF9zdGFydF9wZm4gPj0gZmluYWxfZW5kX3BmbikKKwkJcmV0dXJuIDA7CisKKwlmb3IgKG5vZGVfcGZuID0gZmluYWxfc3RhcnRfcGZuOyBub2RlX3BmbiA8IGZpbmFsX2VuZF9wZm47CisJICAgICBub2RlX3BmbisrKSB7CisJCWlmICghcGZuX3ZhbGlkKG5vZGVfcGZuKSkKKwkJCWNvbnRpbnVlOworCQlwYWdlID0gcGZuX3RvX3BhZ2Uobm9kZV9wZm4pOworCQlhZGRfb25lX2hpZ2hwYWdlX2luaXQocGFnZSwgbm9kZV9wZm4pOworCX0KKworCXJldHVybiAwOworCit9CisKK3ZvaWQgX19pbml0IGFkZF9oaWdocGFnZXNfd2l0aF9hY3RpdmVfcmVnaW9ucyhpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkJICAgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQoreworCXN0cnVjdCBhZGRfaGlnaHBhZ2VzX2RhdGEgZGF0YTsKKworCWRhdGEuc3RhcnRfcGZuID0gc3RhcnRfcGZuOworCWRhdGEuZW5kX3BmbiA9IGVuZF9wZm47CisKKwl3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCBhZGRfaGlnaHBhZ2VzX3dvcmtfZm4sICZkYXRhKTsKIH0KIAogI2lmbmRlZiBDT05GSUdfTlVNQQotc3RhdGljIHZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQoaW50IGJhZF9wcHJvKQorc3RhdGljIHZvaWQgX19pbml0IHNldF9oaWdobWVtX3BhZ2VzX2luaXQodm9pZCkKIHsKLQlpbnQgcGZuOworCWFkZF9oaWdocGFnZXNfd2l0aF9hY3RpdmVfcmVnaW9ucygwLCBoaWdoc3RhcnRfcGZuLCBoaWdoZW5kX3Bmbik7CiAKLQlmb3IgKHBmbiA9IGhpZ2hzdGFydF9wZm47IHBmbiA8IGhpZ2hlbmRfcGZuOyBwZm4rKykgewotCQkvKgotCQkgKiBIb2xlcyB1bmRlciBzcGFyc2VtZW0gbWlnaHQgbm90IGhhdmUgbm8gbWVtX21hcFtdOgotCQkgKi8KLQkJaWYgKHBmbl92YWxpZChwZm4pKQotCQkJYWRkX29uZV9oaWdocGFnZV9pbml0KHBmbl90b19wYWdlKHBmbiksIHBmbiwgYmFkX3Bwcm8pOwotCX0KIAl0b3RhbHJhbV9wYWdlcyArPSB0b3RhbGhpZ2hfcGFnZXM7CiB9CiAjZW5kaWYgLyogIUNPTkZJR19OVU1BICovCkBAIC0zMTcsMTQgKzM4MSw5IEBACiAjZWxzZQogIyBkZWZpbmUga21hcF9pbml0KCkJCQkJZG8geyB9IHdoaWxlICgwKQogIyBkZWZpbmUgcGVybWFuZW50X2ttYXBzX2luaXQocGdkX2Jhc2UpCQlkbyB7IH0gd2hpbGUgKDApCi0jIGRlZmluZSBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGJhZF9wcHJvKQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBzZXRfaGlnaG1lbV9wYWdlc19pbml0KCkJZG8geyB9IHdoaWxlICgwKQogI2VuZGlmIC8qIENPTkZJR19ISUdITUVNICovCiAKLXB0ZXZhbF90IF9fUEFHRV9LRVJORUwgPSBfUEFHRV9LRVJORUw7Ci1FWFBPUlRfU1lNQk9MKF9fUEFHRV9LRVJORUwpOwotCi1wdGV2YWxfdCBfX1BBR0VfS0VSTkVMX0VYRUMgPSBfUEFHRV9LRVJORUxfRVhFQzsKLQogdm9pZCBfX2luaXQgbmF0aXZlX3BhZ2V0YWJsZV9zZXR1cF9zdGFydChwZ2RfdCAqYmFzZSkKIHsKIAl1bnNpZ25lZCBsb25nIHBmbiwgdmE7CkBAIC0zODAsMjcgKzQzOSwxMCBAQAogICogYmUgcGFydGlhbGx5IHBvcHVsYXRlZCwgYW5kIHNvIGl0IGF2b2lkcyBzdG9tcGluZyBvbiBhbnkgZXhpc3RpbmcKICAqIG1hcHBpbmdzLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgcGFnZXRhYmxlX2luaXQodm9pZCkKK3N0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9pb3JlbWFwX3BhZ2VfdGFibGVfcmFuZ2VfaW5pdChwZ2RfdCAqcGdkX2Jhc2UpCiB7Ci0JcGdkX3QgKnBnZF9iYXNlID0gc3dhcHBlcl9wZ19kaXI7CiAJdW5zaWduZWQgbG9uZyB2YWRkciwgZW5kOwogCi0JcGFyYXZpcnRfcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF9iYXNlKTsKLQotCS8qIEVuYWJsZSBQU0UgaWYgYXZhaWxhYmxlICovCi0JaWYgKGNwdV9oYXNfcHNlKQotCQlzZXRfaW5fY3I0KFg4Nl9DUjRfUFNFKTsKLQotCS8qIEVuYWJsZSBQR0UgaWYgYXZhaWxhYmxlICovCi0JaWYgKGNwdV9oYXNfcGdlKSB7Ci0JCXNldF9pbl9jcjQoWDg2X0NSNF9QR0UpOwotCQlfX1BBR0VfS0VSTkVMIHw9IF9QQUdFX0dMT0JBTDsKLQkJX19QQUdFX0tFUk5FTF9FWEVDIHw9IF9QQUdFX0dMT0JBTDsKLQl9Ci0KLQlrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF9iYXNlKTsKLQlyZW1hcF9udW1hX2t2YSgpOwotCiAJLyoKIAkgKiBGaXhlZCBtYXBwaW5ncywgb25seSB0aGUgcGFnZSB0YWJsZSBzdHJ1Y3R1cmUgaGFzIHRvIGJlCiAJICogY3JlYXRlZCAtIG1hcHBpbmdzIHdpbGwgYmUgc2V0IGJ5IHNldF9maXhtYXAoKToKQEAgLTQxMCw2ICs0NTIsMTMgQEAKIAllbmQgPSAoRklYQUREUl9UT1AgKyBQTURfU0laRSAtIDEpICYgUE1EX01BU0s7CiAJcGFnZV90YWJsZV9yYW5nZV9pbml0KHZhZGRyLCBlbmQsIHBnZF9iYXNlKTsKIAllYXJseV9pb3JlbWFwX3Jlc2V0KCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBwYWdldGFibGVfaW5pdCh2b2lkKQoreworCXBnZF90ICpwZ2RfYmFzZSA9IHN3YXBwZXJfcGdfZGlyOworCisJcGFyYXZpcnRfcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF9iYXNlKTsKIAogCXBlcm1hbmVudF9rbWFwc19pbml0KHBnZF9iYXNlKTsKIApAQCAtNDU2LDcgKzUwNSw3IEBACiAKIGludCBueF9lbmFibGVkOwogCi1wdGV2YWxfdCBfX3N1cHBvcnRlZF9wdGVfbWFzayBfX3JlYWRfbW9zdGx5ID0gfl9QQUdFX05YOworcHRldmFsX3QgX19zdXBwb3J0ZWRfcHRlX21hc2sgX19yZWFkX21vc3RseSA9IH4oX1BBR0VfTlggfCBfUEFHRV9HTE9CQUwpOwogRVhQT1JUX1NZTUJPTF9HUEwoX19zdXBwb3J0ZWRfcHRlX21hc2spOwogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKQEAgLTUwOSw2ICs1NTgsMjk2IEBACiB9CiAjZW5kaWYKIAorLyogdXNlci1kZWZpbmVkIGhpZ2htZW0gc2l6ZSAqLworc3RhdGljIHVuc2lnbmVkIGludCBoaWdobWVtX3BhZ2VzID0gLTE7CisKKy8qCisgKiBoaWdobWVtPXNpemUgZm9yY2VzIGhpZ2htZW0gdG8gYmUgZXhhY3RseSAnc2l6ZScgYnl0ZXMuCisgKiBUaGlzIHdvcmtzIGV2ZW4gb24gYm94ZXMgdGhhdCBoYXZlIG5vIGhpZ2htZW0gb3RoZXJ3aXNlLgorICogVGhpcyBhbHNvIHdvcmtzIHRvIHJlZHVjZSBoaWdobWVtIHNpemUgb24gYmlnZ2VyIGJveGVzLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9oaWdobWVtKGNoYXIgKmFyZykKK3sKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwloaWdobWVtX3BhZ2VzID0gbWVtcGFyc2UoYXJnLCAmYXJnKSA+PiBQQUdFX1NISUZUOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oImhpZ2htZW0iLCBwYXJzZV9oaWdobWVtKTsKKworLyoKKyAqIERldGVybWluZSBsb3cgYW5kIGhpZ2ggbWVtb3J5IHJhbmdlczoKKyAqLwordm9pZCBfX2luaXQgZmluZF9sb3dfcGZuX3JhbmdlKHZvaWQpCit7CisJLyogaXQgY291bGQgdXBkYXRlIG1heF9wZm4gKi8KKworCS8qIG1heF9sb3dfcGZuIGlzIDAsIHdlIGFscmVhZHkgaGF2ZSBlYXJseV9yZXMgc3VwcG9ydCAqLworCisJbWF4X2xvd19wZm4gPSBtYXhfcGZuOworCWlmIChtYXhfbG93X3BmbiA+IE1BWE1FTV9QRk4pIHsKKwkJaWYgKGhpZ2htZW1fcGFnZXMgPT0gLTEpCisJCQloaWdobWVtX3BhZ2VzID0gbWF4X3BmbiAtIE1BWE1FTV9QRk47CisJCWlmIChoaWdobWVtX3BhZ2VzICsgTUFYTUVNX1BGTiA8IG1heF9wZm4pCisJCQltYXhfcGZuID0gTUFYTUVNX1BGTiArIGhpZ2htZW1fcGFnZXM7CisJCWlmIChoaWdobWVtX3BhZ2VzICsgTUFYTUVNX1BGTiA+IG1heF9wZm4pIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgIm9ubHkgJWx1TUIgaGlnaG1lbSBwYWdlcyAiCisJCQkJImF2YWlsYWJsZSwgaWdub3JpbmcgaGlnaG1lbSBzaXplIG9mICV1TUIuXG4iLAorCQkJCXBhZ2VzX3RvX21iKG1heF9wZm4gLSBNQVhNRU1fUEZOKSwKKwkJCQlwYWdlc190b19tYihoaWdobWVtX3BhZ2VzKSk7CisJCQloaWdobWVtX3BhZ2VzID0gMDsKKwkJfQorCQltYXhfbG93X3BmbiA9IE1BWE1FTV9QRk47CisjaWZuZGVmIENPTkZJR19ISUdITUVNCisJCS8qIE1heGltdW0gbWVtb3J5IHVzYWJsZSBpcyB3aGF0IGlzIGRpcmVjdGx5IGFkZHJlc3NhYmxlICovCisJCXByaW50ayhLRVJOX1dBUk5JTkcgIldhcm5pbmcgb25seSAlbGRNQiB3aWxsIGJlIHVzZWQuXG4iLAorCQkJCQlNQVhNRU0+PjIwKTsKKwkJaWYgKG1heF9wZm4gPiBNQVhfTk9OUEFFX1BGTikKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCQkgIlVzZSBhIEhJR0hNRU02NEcgZW5hYmxlZCBrZXJuZWwuXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiVXNlIGEgSElHSE1FTSBlbmFibGVkIGtlcm5lbC5cbiIpOworCQltYXhfcGZuID0gTUFYTUVNX1BGTjsKKyNlbHNlIC8qICFDT05GSUdfSElHSE1FTSAqLworI2lmbmRlZiBDT05GSUdfSElHSE1FTTY0RworCQlpZiAobWF4X3BmbiA+IE1BWF9OT05QQUVfUEZOKSB7CisJCQltYXhfcGZuID0gTUFYX05PTlBBRV9QRk47CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJXYXJuaW5nIG9ubHkgNEdCIHdpbGwgYmUgdXNlZC4iCisJCQkJIlVzZSBhIEhJR0hNRU02NEcgZW5hYmxlZCBrZXJuZWwuXG4iKTsKKwkJfQorI2VuZGlmIC8qICFDT05GSUdfSElHSE1FTTY0RyAqLworI2VuZGlmIC8qICFDT05GSUdfSElHSE1FTSAqLworCX0gZWxzZSB7CisJCWlmIChoaWdobWVtX3BhZ2VzID09IC0xKQorCQkJaGlnaG1lbV9wYWdlcyA9IDA7CisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKwkJaWYgKGhpZ2htZW1fcGFnZXMgPj0gbWF4X3BmbikgeworCQkJcHJpbnRrKEtFUk5fRVJSICJoaWdobWVtIHNpemUgc3BlY2lmaWVkICgldU1CKSBpcyAiCisJCQkJImJpZ2dlciB0aGFuIHBhZ2VzIGF2YWlsYWJsZSAoJWx1TUIpIS5cbiIsCisJCQkJcGFnZXNfdG9fbWIoaGlnaG1lbV9wYWdlcyksCisJCQkJcGFnZXNfdG9fbWIobWF4X3BmbikpOworCQkJaGlnaG1lbV9wYWdlcyA9IDA7CisJCX0KKwkJaWYgKGhpZ2htZW1fcGFnZXMpIHsKKwkJCWlmIChtYXhfbG93X3BmbiAtIGhpZ2htZW1fcGFnZXMgPAorCQkJICAgIDY0KjEwMjQqMTAyNC9QQUdFX1NJWkUpeworCQkJCXByaW50ayhLRVJOX0VSUiAiaGlnaG1lbSBzaXplICV1TUIgcmVzdWx0cyBpbiAiCisJCQkJInNtYWxsZXIgdGhhbiA2NE1CIGxvd21lbSwgaWdub3JpbmcgaXQuXG4iCisJCQkJCSwgcGFnZXNfdG9fbWIoaGlnaG1lbV9wYWdlcykpOworCQkJCWhpZ2htZW1fcGFnZXMgPSAwOworCQkJfQorCQkJbWF4X2xvd19wZm4gLT0gaGlnaG1lbV9wYWdlczsKKwkJfQorI2Vsc2UKKwkJaWYgKGhpZ2htZW1fcGFnZXMpCisJCQlwcmludGsoS0VSTl9FUlIgImlnbm9yaW5nIGhpZ2htZW0gc2l6ZSBvbiBub24taGlnaG1lbSIKKwkJCQkJIiBrZXJuZWwhXG4iKTsKKyNlbmRpZgorCX0KK30KKworI2lmbmRlZiBDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUwordm9pZCBfX2luaXQgaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKQoreworI2lmZGVmIENPTkZJR19ISUdITUVNCisJaGlnaHN0YXJ0X3BmbiA9IGhpZ2hlbmRfcGZuID0gbWF4X3BmbjsKKwlpZiAobWF4X3BmbiA+IG1heF9sb3dfcGZuKQorCQloaWdoc3RhcnRfcGZuID0gbWF4X2xvd19wZm47CisJbWVtb3J5X3ByZXNlbnQoMCwgMCwgaGlnaGVuZF9wZm4pOworCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoMCwgMCwgaGlnaGVuZF9wZm4pOworCXByaW50ayhLRVJOX05PVElDRSAiJWxkTUIgSElHSE1FTSBhdmFpbGFibGUuXG4iLAorCQlwYWdlc190b19tYihoaWdoZW5kX3BmbiAtIGhpZ2hzdGFydF9wZm4pKTsKKwludW1fcGh5c3BhZ2VzID0gaGlnaGVuZF9wZm47CisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKGhpZ2hzdGFydF9wZm4gKiBQQUdFX1NJWkUgLSAxKSArIDE7CisjZWxzZQorCW1lbW9yeV9wcmVzZW50KDAsIDAsIG1heF9sb3dfcGZuKTsKKwllODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKDAsIDAsIG1heF9sb3dfcGZuKTsKKwludW1fcGh5c3BhZ2VzID0gbWF4X2xvd19wZm47CisJaGlnaF9tZW1vcnkgPSAodm9pZCAqKSBfX3ZhKG1heF9sb3dfcGZuICogUEFHRV9TSVpFIC0gMSkgKyAxOworI2VuZGlmCisjaWZkZWYgQ09ORklHX0ZMQVRNRU0KKwltYXhfbWFwbnIgPSBudW1fcGh5c3BhZ2VzOworI2VuZGlmCisJcHJpbnRrKEtFUk5fTk9USUNFICIlbGRNQiBMT1dNRU0gYXZhaWxhYmxlLlxuIiwKKwkJCXBhZ2VzX3RvX21iKG1heF9sb3dfcGZuKSk7CisKKwlzZXR1cF9ib290bWVtX2FsbG9jYXRvcigpOworfQorI2VuZGlmIC8qICFDT05GSUdfTkVFRF9NVUxUSVBMRV9OT0RFUyAqLworCitzdGF0aWMgdm9pZCBfX2luaXQgem9uZV9zaXplc19pbml0KHZvaWQpCit7CisJdW5zaWduZWQgbG9uZyBtYXhfem9uZV9wZm5zW01BWF9OUl9aT05FU107CisJbWVtc2V0KG1heF96b25lX3BmbnMsIDAsIHNpemVvZihtYXhfem9uZV9wZm5zKSk7CisJbWF4X3pvbmVfcGZuc1taT05FX0RNQV0gPQorCQl2aXJ0X3RvX3BoeXMoKGNoYXIgKilNQVhfRE1BX0FERFJFU1MpID4+IFBBR0VfU0hJRlQ7CisJbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBtYXhfbG93X3BmbjsKKyNpZmRlZiBDT05GSUdfSElHSE1FTQorCW1heF96b25lX3BmbnNbWk9ORV9ISUdITUVNXSA9IGhpZ2hlbmRfcGZuOworI2VuZGlmCisKKwlmcmVlX2FyZWFfaW5pdF9ub2RlcyhtYXhfem9uZV9wZm5zKTsKK30KKwordm9pZCBfX2luaXQgc2V0dXBfYm9vdG1lbV9hbGxvY2F0b3Iodm9pZCkKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBsb25nIGJvb3RtYXBfc2l6ZSwgYm9vdG1hcDsKKwkvKgorCSAqIEluaXRpYWxpemUgdGhlIGJvb3QtdGltZSBhbGxvY2F0b3IgKHdpdGggbG93IG1lbW9yeSBvbmx5KToKKwkgKi8KKwlib290bWFwX3NpemUgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMobWF4X2xvd19wZm4pPDxQQUdFX1NISUZUOworCWJvb3RtYXAgPSBmaW5kX2U4MjBfYXJlYShtaW5fbG93X3Bmbjw8UEFHRV9TSElGVCwKKwkJCQkgbWF4X3Bmbl9tYXBwZWQ8PFBBR0VfU0hJRlQsIGJvb3RtYXBfc2l6ZSwKKwkJCQkgUEFHRV9TSVpFKTsKKwlpZiAoYm9vdG1hcCA9PSAtMUwpCisJCXBhbmljKCJDYW5ub3QgZmluZCBib290bWVtIG1hcCBvZiBzaXplICVsZFxuIiwgYm9vdG1hcF9zaXplKTsKKwlyZXNlcnZlX2Vhcmx5KGJvb3RtYXAsIGJvb3RtYXAgKyBib290bWFwX3NpemUsICJCT09UTUFQIik7CisKKwkvKiBkb24ndCB0b3VjaCBtaW5fbG93X3BmbiAqLworCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbV9ub2RlKE5PREVfREFUQSgwKSwgYm9vdG1hcCA+PiBQQUdFX1NISUZULAorCQkJCQkgbWluX2xvd19wZm4sIG1heF9sb3dfcGZuKTsKKwlwcmludGsoS0VSTl9JTkZPICIgIG1hcHBlZCBsb3cgcmFtOiAwIC0gJTA4bHhcbiIsCisJCSBtYXhfcGZuX21hcHBlZDw8UEFHRV9TSElGVCk7CisJcHJpbnRrKEtFUk5fSU5GTyAiICBsb3cgcmFtOiAlMDhseCAtICUwOGx4XG4iLAorCQkgbWluX2xvd19wZm48PFBBR0VfU0hJRlQsIG1heF9sb3dfcGZuPDxQQUdFX1NISUZUKTsKKwlwcmludGsoS0VSTl9JTkZPICIgIGJvb3RtYXAgJTA4bHggLSAlMDhseFxuIiwKKwkJIGJvb3RtYXAsIGJvb3RtYXAgKyBib290bWFwX3NpemUpOworCWZvcl9lYWNoX29ubGluZV9ub2RlKGkpCisJCWZyZWVfYm9vdG1lbV93aXRoX2FjdGl2ZV9yZWdpb25zKGksIG1heF9sb3dfcGZuKTsKKwllYXJseV9yZXNfdG9fYm9vdG1lbSgwLCBtYXhfbG93X3Bmbjw8UEFHRV9TSElGVCk7CisKKwlhZnRlcl9pbml0X2Jvb3RtZW0gPSAxOworfQorCitzdGF0aWMgdm9pZCBfX2luaXQgZmluZF9lYXJseV90YWJsZV9zcGFjZSh1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwl1bnNpZ25lZCBsb25nIHB1ZHMsIHBtZHMsIHB0ZXMsIHRhYmxlcywgc3RhcnQ7CisKKwlwdWRzID0gKGVuZCArIFBVRF9TSVpFIC0gMSkgPj4gUFVEX1NISUZUOworCXRhYmxlcyA9IFBBR0VfQUxJR04ocHVkcyAqIHNpemVvZihwdWRfdCkpOworCisJcG1kcyA9IChlbmQgKyBQTURfU0laRSAtIDEpID4+IFBNRF9TSElGVDsKKwl0YWJsZXMgKz0gUEFHRV9BTElHTihwbWRzICogc2l6ZW9mKHBtZF90KSk7CisKKwlpZiAoY3B1X2hhc19wc2UpIHsKKwkJdW5zaWduZWQgbG9uZyBleHRyYTsKKworCQlleHRyYSA9IGVuZCAtICgoZW5kPj5QTURfU0hJRlQpIDw8IFBNRF9TSElGVCk7CisJCWV4dHJhICs9IFBNRF9TSVpFOworCQlwdGVzID0gKGV4dHJhICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwl9IGVsc2UKKwkJcHRlcyA9IChlbmQgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOworCisJdGFibGVzICs9IFBBR0VfQUxJR04ocHRlcyAqIHNpemVvZihwdGVfdCkpOworCisJLyogZm9yIGZpeG1hcCAqLworCXRhYmxlcyArPSBQQUdFX1NJWkUgKiAyOworCisJLyoKKwkgKiBSRUQtUEVOIHB1dHRpbmcgcGFnZSB0YWJsZXMgb25seSBvbiBub2RlIDAgY291bGQKKwkgKiBjYXVzZSBhIGhvdHNwb3QgYW5kIGZpbGwgdXAgWk9ORV9ETUEuIFRoZSBwYWdlIHRhYmxlcworCSAqIG5lZWQgcm91Z2hseSAwLjVLQiBwZXIgR0IuCisJICovCisJc3RhcnQgPSAweDcwMDA7CisJdGFibGVfc3RhcnQgPSBmaW5kX2U4MjBfYXJlYShzdGFydCwgbWF4X3Bmbl9tYXBwZWQ8PFBBR0VfU0hJRlQsCisJCQkJCXRhYmxlcywgUEFHRV9TSVpFKTsKKwlpZiAodGFibGVfc3RhcnQgPT0gLTFVTCkKKwkJcGFuaWMoIkNhbm5vdCBmaW5kIHNwYWNlIGZvciB0aGUga2VybmVsIHBhZ2UgdGFibGVzIik7CisKKwl0YWJsZV9zdGFydCA+Pj0gUEFHRV9TSElGVDsKKwl0YWJsZV9lbmQgPSB0YWJsZV9zdGFydDsKKwl0YWJsZV90b3AgPSB0YWJsZV9zdGFydCArICh0YWJsZXM+PlBBR0VfU0hJRlQpOworCisJcHJpbnRrKEtFUk5fREVCVUcgImtlcm5lbCBkaXJlY3QgbWFwcGluZyB0YWJsZXMgdXAgdG8gJWx4IEAgJWx4LSVseFxuIiwKKwkJZW5kLCB0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZULAorCQkodGFibGVfc3RhcnQgPDwgUEFHRV9TSElGVCkgKyB0YWJsZXMpOworfQorCit1bnNpZ25lZCBsb25nIF9faW5pdF9yZWZvayBpbml0X21lbW9yeV9tYXBwaW5nKHVuc2lnbmVkIGxvbmcgc3RhcnQsCisJCQkJCQl1bnNpZ25lZCBsb25nIGVuZCkKK3sKKwlwZ2RfdCAqcGdkX2Jhc2UgPSBzd2FwcGVyX3BnX2RpcjsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbjsKKwl1bnNpZ25lZCBsb25nIGJpZ19wYWdlX3N0YXJ0OworCisJLyoKKwkgKiBGaW5kIHNwYWNlIGZvciB0aGUga2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcy4KKwkgKi8KKwlpZiAoIWFmdGVyX2luaXRfYm9vdG1lbSkKKwkJZmluZF9lYXJseV90YWJsZV9zcGFjZShlbmQpOworCisjaWZkZWYgQ09ORklHX1g4Nl9QQUUKKwlzZXRfbngoKTsKKwlpZiAobnhfZW5hYmxlZCkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiTlggKEV4ZWN1dGUgRGlzYWJsZSkgcHJvdGVjdGlvbjogYWN0aXZlXG4iKTsKKyNlbmRpZgorCisJLyogRW5hYmxlIFBTRSBpZiBhdmFpbGFibGUgKi8KKwlpZiAoY3B1X2hhc19wc2UpCisJCXNldF9pbl9jcjQoWDg2X0NSNF9QU0UpOworCisJLyogRW5hYmxlIFBHRSBpZiBhdmFpbGFibGUgKi8KKwlpZiAoY3B1X2hhc19wZ2UpIHsKKwkJc2V0X2luX2NyNChYODZfQ1I0X1BHRSk7CisJCV9fc3VwcG9ydGVkX3B0ZV9tYXNrIHw9IF9QQUdFX0dMT0JBTDsKKwl9CisKKwkvKgorCSAqIERvbid0IHVzZSBhIGxhcmdlIHBhZ2UgZm9yIHRoZSBmaXJzdCAyLzRNQiBvZiBtZW1vcnkKKwkgKiBiZWNhdXNlIHRoZXJlIGFyZSBvZnRlbiBmaXhlZCBzaXplIE1UUlJzIGluIHRoZXJlCisJICogYW5kIG92ZXJsYXBwaW5nIE1UUlJzIGludG8gbGFyZ2UgcGFnZXMgY2FuIGNhdXNlCisJICogc2xvd2Rvd25zLgorCSAqLworCWJpZ19wYWdlX3N0YXJ0ID0gUE1EX1NJWkU7CisKKwlpZiAoc3RhcnQgPCBiaWdfcGFnZV9zdGFydCkgeworCQlzdGFydF9wZm4gPSBzdGFydCA+PiBQQUdFX1NISUZUOworCQllbmRfcGZuID0gbWluKGJpZ19wYWdlX3N0YXJ0Pj5QQUdFX1NISUZULCBlbmQ+PlBBR0VfU0hJRlQpOworCX0gZWxzZSB7CisJCS8qIGhlYWQgaXMgbm90IGJpZyBwYWdlIGFsaWdubWVudCA/ICovCisJCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJCWVuZF9wZm4gPSAoKHN0YXJ0ICsgKFBNRF9TSVpFIC0gMSkpPj5QTURfU0hJRlQpCisJCQkJIDw8IChQTURfU0hJRlQgLSBQQUdFX1NISUZUKTsKKwl9CisJaWYgKHN0YXJ0X3BmbiA8IGVuZF9wZm4pCisJCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwgMCk7CisKKwkvKiBiaWcgcGFnZSByYW5nZSAqLworCXN0YXJ0X3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSk+PlBNRF9TSElGVCkKKwkJCSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJaWYgKHN0YXJ0X3BmbiA8IChiaWdfcGFnZV9zdGFydCA+PiBQQUdFX1NISUZUKSkKKwkJc3RhcnRfcGZuID0gIGJpZ19wYWdlX3N0YXJ0ID4+IFBBR0VfU0hJRlQ7CisJZW5kX3BmbiA9IChlbmQ+PlBNRF9TSElGVCkgPDwgKFBNRF9TSElGVCAtIFBBR0VfU0hJRlQpOworCWlmIChzdGFydF9wZm4gPCBlbmRfcGZuKQorCQlrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KHBnZF9iYXNlLCBzdGFydF9wZm4sIGVuZF9wZm4sCisJCQkJCQljcHVfaGFzX3BzZSk7CisKKwkvKiB0YWlsIGlzIG5vdCBiaWcgcGFnZSBhbGlnbm1lbnQgPyAqLworCXN0YXJ0X3BmbiA9IGVuZF9wZm47CisJaWYgKHN0YXJ0X3BmbiA+IChiaWdfcGFnZV9zdGFydD4+UEFHRV9TSElGVCkpIHsKKwkJZW5kX3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOworCQlpZiAoc3RhcnRfcGZuIDwgZW5kX3BmbikKKwkJCWtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQocGdkX2Jhc2UsIHN0YXJ0X3BmbiwKKwkJCQkJCQkgZW5kX3BmbiwgMCk7CisJfQorCisJZWFybHlfaW9yZW1hcF9wYWdlX3RhYmxlX3JhbmdlX2luaXQocGdkX2Jhc2UpOworCisJbG9hZF9jcjMoc3dhcHBlcl9wZ19kaXIpOworCisJX19mbHVzaF90bGJfYWxsKCk7CisKKwlpZiAoIWFmdGVyX2luaXRfYm9vdG1lbSkKKwkJcmVzZXJ2ZV9lYXJseSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZULAorCQkJCSB0YWJsZV9lbmQgPDwgUEFHRV9TSElGVCwgIlBHVEFCTEUiKTsKKworCXJldHVybiBlbmQgPj4gUEFHRV9TSElGVDsKK30KKworCiAvKgogICogcGFnaW5nX2luaXQoKSBzZXRzIHVwIHRoZSBwYWdlIHRhYmxlcyAtIG5vdGUgdGhhdCB0aGUgZmlyc3QgOE1CIGFyZQogICogYWxyZWFkeSBtYXBwZWQgYnkgaGVhZC5TLgpAQCAtNTE4LDE4ICs4NTcsMTkgQEAKICAqLwogdm9pZCBfX2luaXQgcGFnaW5nX2luaXQodm9pZCkKIHsKLSNpZmRlZiBDT05GSUdfWDg2X1BBRQotCXNldF9ueCgpOwotCWlmIChueF9lbmFibGVkKQotCQlwcmludGsoS0VSTl9JTkZPICJOWCAoRXhlY3V0ZSBEaXNhYmxlKSBwcm90ZWN0aW9uOiBhY3RpdmVcbiIpOwotI2VuZGlmCiAJcGFnZXRhYmxlX2luaXQoKTsKIAotCWxvYWRfY3IzKHN3YXBwZXJfcGdfZGlyKTsKLQogCV9fZmx1c2hfdGxiX2FsbCgpOwogCiAJa21hcF9pbml0KCk7CisKKwkvKgorCSAqIE5PVEU6IGF0IHRoaXMgcG9pbnQgdGhlIGJvb3RtZW0gYWxsb2NhdG9yIGlzIGZ1bGx5IGF2YWlsYWJsZS4KKwkgKi8KKwlzcGFyc2VfaW5pdCgpOworCXpvbmVfc2l6ZXNfaW5pdCgpOworCisJcGFyYXZpcnRfcG9zdF9hbGxvY2F0b3JfaW5pdCgpOwogfQogCiAvKgpAQCAtNTY0LDI0ICs5MDQsMTEgQEAKIHZvaWQgX19pbml0IG1lbV9pbml0KHZvaWQpCiB7CiAJaW50IGNvZGVzaXplLCByZXNlcnZlZHBhZ2VzLCBkYXRhc2l6ZSwgaW5pdHNpemU7Ci0JaW50IHRtcCwgYmFkX3Bwcm87CisJaW50IHRtcDsKIAogI2lmZGVmIENPTkZJR19GTEFUTUVNCiAJQlVHX09OKCFtZW1fbWFwKTsKICNlbmRpZgotCWJhZF9wcHJvID0gcHByb193aXRoX3JhbV9idWcoKTsKLQotI2lmZGVmIENPTkZJR19ISUdITUVNCi0JLyogY2hlY2sgdGhhdCBmaXhtYXAgYW5kIHBrbWFwIGRvIG5vdCBvdmVybGFwICovCi0JaWYgKFBLTUFQX0JBU0UgKyBMQVNUX1BLTUFQKlBBR0VfU0laRSA+PSBGSVhBRERSX1NUQVJUKSB7Ci0JCXByaW50ayhLRVJOX0VSUgotCQkJImZpeG1hcCBhbmQga21hcCBhcmVhcyBvdmVybGFwIC0gdGhpcyB3aWxsIGNyYXNoXG4iKTsKLQkJcHJpbnRrKEtFUk5fRVJSICJwa3N0YXJ0OiAlbHhoIHBrZW5kOiAlbHhoIGZpeHN0YXJ0ICVseGhcbiIsCi0JCQkJUEtNQVBfQkFTRSwgUEtNQVBfQkFTRSArIExBU1RfUEtNQVAqUEFHRV9TSVpFLAotCQkJCUZJWEFERFJfU1RBUlQpOwotCQlCVUcoKTsKLQl9Ci0jZW5kaWYKIAkvKiB0aGlzIHdpbGwgcHV0IGFsbCBsb3cgbWVtb3J5IG9udG8gdGhlIGZyZWVsaXN0cyAqLwogCXRvdGFscmFtX3BhZ2VzICs9IGZyZWVfYWxsX2Jvb3RtZW0oKTsKIApAQCAtNTkzLDcgKzkyMCw3IEBACiAJCWlmIChwYWdlX2lzX3JhbSh0bXApICYmIFBhZ2VSZXNlcnZlZChwZm5fdG9fcGFnZSh0bXApKSkKIAkJCXJlc2VydmVkcGFnZXMrKzsKIAotCXNldF9oaWdobWVtX3BhZ2VzX2luaXQoYmFkX3Bwcm8pOworCXNldF9oaWdobWVtX3BhZ2VzX2luaXQoKTsKIAogCWNvZGVzaXplID0gICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0IC0gKHVuc2lnbmVkIGxvbmcpICZfdGV4dDsKIAlkYXRhc2l6ZSA9ICAodW5zaWduZWQgbG9uZykgJl9lZGF0YSAtICh1bnNpZ25lZCBsb25nKSAmX2V0ZXh0OwpAQCAtNjE0LDcgKzk0MSw2IEBACiAJCSh1bnNpZ25lZCBsb25nKSAodG90YWxoaWdoX3BhZ2VzIDw8IChQQUdFX1NISUZULTEwKSkKIAkgICAgICAgKTsKIAotI2lmIDEgLyogZG91YmxlLXNhbml0eS1jaGVjayBwYXJhbm9pYSAqLwogCXByaW50ayhLRVJOX0lORk8gInZpcnR1YWwga2VybmVsIG1lbW9yeSBsYXlvdXQ6XG4iCiAJCSIgICAgZml4bWFwICA6IDB4JTA4bHggLSAweCUwOGx4ICAgKCU0bGQga0IpXG4iCiAjaWZkZWYgQ09ORklHX0hJR0hNRU0KQEAgLTY1NSw3ICs5ODEsNiBAQAogI2VuZGlmCiAJQlVHX09OKFZNQUxMT0NfU1RBUlQJCQkJPiBWTUFMTE9DX0VORCk7CiAJQlVHX09OKCh1bnNpZ25lZCBsb25nKWhpZ2hfbWVtb3J5CQk+IFZNQUxMT0NfU1RBUlQpOwotI2VuZGlmIC8qIGRvdWJsZS1zYW5pdHktY2hlY2sgcGFyYW5vaWEgKi8KIAogCWlmIChib290X2NwdV9kYXRhLndwX3dvcmtzX29rIDwgMCkKIAkJdGVzdF93cF9iaXQoKTsKQEAgLTcxMCw2ICsxMDM1LDggQEAKIAl1bnNpZ25lZCBsb25nIHN0YXJ0ID0gUEZOX0FMSUdOKF90ZXh0KTsKIAl1bnNpZ25lZCBsb25nIHNpemUgPSBQRk5fQUxJR04oX2V0ZXh0KSAtIHN0YXJ0OwogCisjaWZuZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCS8qIER5bmFtaWMgdHJhY2luZyBtb2RpZmllcyB0aGUga2VybmVsIHRleHQgc2VjdGlvbiAqLwogCXNldF9wYWdlc19ybyh2aXJ0X3RvX3BhZ2Uoc3RhcnQpLCBzaXplID4+IFBBR0VfU0hJRlQpOwogCXByaW50ayhLRVJOX0lORk8gIldyaXRlIHByb3RlY3RpbmcgdGhlIGtlcm5lbCB0ZXh0OiAlbHVrXG4iLAogCQlzaXplID4+IDEwKTsKQEAgLTcyMiw2ICsxMDQ5LDggQEAKIAlwcmludGsoS0VSTl9JTkZPICJUZXN0aW5nIENQQTogd3JpdGUgcHJvdGVjdGluZyBhZ2FpblxuIik7CiAJc2V0X3BhZ2VzX3JvKHZpcnRfdG9fcGFnZShzdGFydCksIHNpemU+PlBBR0VfU0hJRlQpOwogI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisKIAlzdGFydCArPSBzaXplOwogCXNpemUgPSAodW5zaWduZWQgbG9uZylfX2VuZF9yb2RhdGEgLSBzdGFydDsKIAlzZXRfcGFnZXNfcm8odmlydF90b19wYWdlKHN0YXJ0KSwgc2l6ZSA+PiBQQUdFX1NISUZUKTsKQEAgLTc4NCwzICsxMTEzLDkgQEAKIAlmcmVlX2luaXRfcGFnZXMoImluaXRyZCBtZW1vcnkiLCBzdGFydCwgZW5kKTsKIH0KICNlbmRpZgorCitpbnQgX19pbml0IHJlc2VydmVfYm9vdG1lbV9nZW5lcmljKHVuc2lnbmVkIGxvbmcgcGh5cywgdW5zaWduZWQgbG9uZyBsZW4sCisJCQkJICAgaW50IGZsYWdzKQoreworCXJldHVybiByZXNlcnZlX2Jvb3RtZW0ocGh5cywgbGVuLCBmbGFncyk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9pbml0XzY0LmMgYi9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKaW5kZXggMzJiYTEzYi4uMjdkZTI0MyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vaW5pdF82NC5jCisrKyBiL2FyY2gveDg2L21tL2luaXRfNjQuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N3YXAuaD4KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW5pdHJkLmg+CiAjaW5jbHVkZSA8bGludXgvcGFnZW1hcC5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CkBAIC00Nyw2ICs0OCwxNCBAQAogI2luY2x1ZGUgPGFzbS9udW1hLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KIAorLyoKKyAqIGVuZF9wZm4gb25seSBpbmNsdWRlcyBSQU0sIHdoaWxlIG1heF9wZm5fbWFwcGVkIGluY2x1ZGVzIGFsbCBlODIwIGVudHJpZXMuCisgKiBUaGUgZGlyZWN0IG1hcHBpbmcgZXh0ZW5kcyB0byBtYXhfcGZuX21hcHBlZCwgc28gdGhhdCB3ZSBjYW4gZGlyZWN0bHkgYWNjZXNzCisgKiBhcGVydHVyZXMsIEFDUEkgYW5kIG90aGVyIHRhYmxlcyB3aXRob3V0IGhhdmluZyB0byBwbGF5IHdpdGggZml4bWFwcy4KKyAqLwordW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbl9tYXBwZWQ7Cit1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOworCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBkbWFfcmVzZXJ2ZSBfX2luaXRkYXRhOwogCiBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgbW11X2dhdGhlciwgbW11X2dhdGhlcnMpOwpAQCAtMTM1LDI2ICsxNDQsMTcgQEAKIAlyZXR1cm4gcHRyOwogfQogCi1zdGF0aWMgdm9pZAotc2V0X3B0ZV9waHlzKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgcHJvdCkKK3ZvaWQKK3NldF9wdGVfdmFkZHJfcHVkKHB1ZF90ICpwdWRfcGFnZSwgdW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgbmV3X3B0ZSkKIHsKLQlwZ2RfdCAqcGdkOwogCXB1ZF90ICpwdWQ7CiAJcG1kX3QgKnBtZDsKLQlwdGVfdCAqcHRlLCBuZXdfcHRlOworCXB0ZV90ICpwdGU7CiAKLQlwcl9kZWJ1Zygic2V0X3B0ZV9waHlzICVseCB0byAlbHhcbiIsIHZhZGRyLCBwaHlzKTsKLQotCXBnZCA9IHBnZF9vZmZzZXRfayh2YWRkcik7Ci0JaWYgKHBnZF9ub25lKCpwZ2QpKSB7Ci0JCXByaW50ayhLRVJOX0VSUgotCQkJIlBHRCBGSVhNQVAgTUlTU0lORywgaXQgc2hvdWxkIGJlIHNldHVwIGluIGhlYWQuUyFcbiIpOwotCQlyZXR1cm47Ci0JfQotCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCB2YWRkcik7CisJcHVkID0gcHVkX3BhZ2UgKyBwdWRfaW5kZXgodmFkZHIpOwogCWlmIChwdWRfbm9uZSgqcHVkKSkgewogCQlwbWQgPSAocG1kX3QgKikgc3BwX2dldHBhZ2UoKTsKLQkJc2V0X3B1ZChwdWQsIF9fcHVkKF9fcGEocG1kKSB8IF9LRVJOUEdfVEFCTEUgfCBfUEFHRV9VU0VSKSk7CisJCXB1ZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcHVkLCBwbWQpOwogCQlpZiAocG1kICE9IHBtZF9vZmZzZXQocHVkLCAwKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJQQUdFVEFCTEUgQlVHICMwMSEgJXAgPC0+ICVwXG4iLAogCQkJCXBtZCwgcG1kX29mZnNldChwdWQsIDApKTsKQEAgLTE2NCwxMyArMTY0LDEyIEBACiAJcG1kID0gcG1kX29mZnNldChwdWQsIHZhZGRyKTsKIAlpZiAocG1kX25vbmUoKnBtZCkpIHsKIAkJcHRlID0gKHB0ZV90ICopIHNwcF9nZXRwYWdlKCk7Ci0JCXNldF9wbWQocG1kLCBfX3BtZChfX3BhKHB0ZSkgfCBfS0VSTlBHX1RBQkxFIHwgX1BBR0VfVVNFUikpOworCQlwbWRfcG9wdWxhdGVfa2VybmVsKCZpbml0X21tLCBwbWQsIHB0ZSk7CiAJCWlmIChwdGUgIT0gcHRlX29mZnNldF9rZXJuZWwocG1kLCAwKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJQQUdFVEFCTEUgQlVHICMwMiFcbiIpOwogCQkJcmV0dXJuOwogCQl9CiAJfQotCW5ld19wdGUgPSBwZm5fcHRlKHBoeXMgPj4gUEFHRV9TSElGVCwgcHJvdCk7CiAKIAlwdGUgPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIHZhZGRyKTsKIAlpZiAoIXB0ZV9ub25lKCpwdGUpICYmIHB0ZV92YWwobmV3X3B0ZSkgJiYKQEAgLTE4NSw2ICsxODQsNjQgQEAKIAlfX2ZsdXNoX3RsYl9vbmUodmFkZHIpOwogfQogCit2b2lkCitzZXRfcHRlX3ZhZGRyKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHB0ZV90IHB0ZXZhbCkKK3sKKwlwZ2RfdCAqcGdkOworCXB1ZF90ICpwdWRfcGFnZTsKKworCXByX2RlYnVnKCJzZXRfcHRlX3ZhZGRyICVseCB0byAlbHhcbiIsIHZhZGRyLCBuYXRpdmVfcHRlX3ZhbChwdGV2YWwpKTsKKworCXBnZCA9IHBnZF9vZmZzZXRfayh2YWRkcik7CisJaWYgKHBnZF9ub25lKCpwZ2QpKSB7CisJCXByaW50ayhLRVJOX0VSUgorCQkJIlBHRCBGSVhNQVAgTUlTU0lORywgaXQgc2hvdWxkIGJlIHNldHVwIGluIGhlYWQuUyFcbiIpOworCQlyZXR1cm47CisJfQorCXB1ZF9wYWdlID0gKHB1ZF90KilwZ2RfcGFnZV92YWRkcigqcGdkKTsKKwlzZXRfcHRlX3ZhZGRyX3B1ZChwdWRfcGFnZSwgdmFkZHIsIHB0ZXZhbCk7Cit9CisKKy8qCisgKiBDcmVhdGUgbGFyZ2UgcGFnZSB0YWJsZSBtYXBwaW5ncyBmb3IgYSByYW5nZSBvZiBwaHlzaWNhbCBhZGRyZXNzZXMuCisgKi8KK3N0YXRpYyB2b2lkIF9faW5pdCBfX2luaXRfZXh0cmFfbWFwcGluZyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkJCXBncHJvdF90IHByb3QpCit7CisJcGdkX3QgKnBnZDsKKwlwdWRfdCAqcHVkOworCXBtZF90ICpwbWQ7CisKKwlCVUdfT04oKHBoeXMgJiB+UE1EX01BU0spIHx8IChzaXplICYgflBNRF9NQVNLKSk7CisJZm9yICg7IHNpemU7IHBoeXMgKz0gUE1EX1NJWkUsIHNpemUgLT0gUE1EX1NJWkUpIHsKKwkJcGdkID0gcGdkX29mZnNldF9rKCh1bnNpZ25lZCBsb25nKV9fdmEocGh5cykpOworCQlpZiAocGdkX25vbmUoKnBnZCkpIHsKKwkJCXB1ZCA9IChwdWRfdCAqKSBzcHBfZ2V0cGFnZSgpOworCQkJc2V0X3BnZChwZ2QsIF9fcGdkKF9fcGEocHVkKSB8IF9LRVJOUEdfVEFCTEUgfAorCQkJCQkJX1BBR0VfVVNFUikpOworCQl9CisJCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCAodW5zaWduZWQgbG9uZylfX3ZhKHBoeXMpKTsKKwkJaWYgKHB1ZF9ub25lKCpwdWQpKSB7CisJCQlwbWQgPSAocG1kX3QgKikgc3BwX2dldHBhZ2UoKTsKKwkJCXNldF9wdWQocHVkLCBfX3B1ZChfX3BhKHBtZCkgfCBfS0VSTlBHX1RBQkxFIHwKKwkJCQkJCV9QQUdFX1VTRVIpKTsKKwkJfQorCQlwbWQgPSBwbWRfb2Zmc2V0KHB1ZCwgcGh5cyk7CisJCUJVR19PTighcG1kX25vbmUoKnBtZCkpOworCQlzZXRfcG1kKHBtZCwgX19wbWQocGh5cyB8IHBncHJvdF92YWwocHJvdCkpKTsKKwl9Cit9CisKK3ZvaWQgX19pbml0IGluaXRfZXh0cmFfbWFwcGluZ193Yih1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlfX2luaXRfZXh0cmFfbWFwcGluZyhwaHlzLCBzaXplLCBQQUdFX0tFUk5FTF9MQVJHRSk7Cit9CisKK3ZvaWQgX19pbml0IGluaXRfZXh0cmFfbWFwcGluZ191Yyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3sKKwlfX2luaXRfZXh0cmFfbWFwcGluZyhwaHlzLCBzaXplLCBQQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFKTsKK30KKwogLyoKICAqIFRoZSBoZWFkLlMgY29kZSBzZXRzIHVwIHRoZSBrZXJuZWwgaGlnaCBtYXBwaW5nOgogICoKQEAgLTIwNiwyNyArMjYzLDE2IEBACiAJcG1kX3QgKmxhc3RfcG1kID0gcG1kICsgUFRSU19QRVJfUE1EOwogCiAJZm9yICg7IHBtZCA8IGxhc3RfcG1kOyBwbWQrKywgdmFkZHIgKz0gUE1EX1NJWkUpIHsKLQkJaWYgKCFwbWRfcHJlc2VudCgqcG1kKSkKKwkJaWYgKHBtZF9ub25lKCpwbWQpKQogCQkJY29udGludWU7CiAJCWlmICh2YWRkciA8ICh1bnNpZ25lZCBsb25nKSBfdGV4dCB8fCB2YWRkciA+IGVuZCkKIAkJCXNldF9wbWQocG1kLCBfX3BtZCgwKSk7CiAJfQogfQogCi0vKiBOT1RFOiB0aGlzIGlzIG1lYW50IHRvIGJlIHJ1biBvbmx5IGF0IGJvb3QgKi8KLXZvaWQgX19zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBwcm90KQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKLQotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCBfX3NldF9maXhtYXBcbiIpOwotCQlyZXR1cm47Ci0JfQotCXNldF9wdGVfcGh5cyhhZGRyZXNzLCBwaHlzLCBwcm90KTsKLX0KLQogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSB0YWJsZV9zdGFydDsKIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdGRhdGEgdGFibGVfZW5kOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0ZGF0YSB0YWJsZV90b3A7CiAKIHN0YXRpYyBfX21lbWluaXQgdm9pZCAqYWxsb2NfbG93X3BhZ2UodW5zaWduZWQgbG9uZyAqcGh5cykKIHsKQEAgLTI0MCw3ICsyODYsNyBAQAogCQlyZXR1cm4gYWRyOwogCX0KIAotCWlmIChwZm4gPj0gZW5kX3BmbikKKwlpZiAocGZuID49IHRhYmxlX3RvcCkKIAkJcGFuaWMoImFsbG9jX2xvd19wYWdlOiByYW4gb3V0IG9mIG1lbW9yeSIpOwogCiAJYWRyID0gZWFybHlfaW9yZW1hcChwZm4gKiBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CkBAIC0yNTcsNjUgKzMwMyw2MSBAQAogCWVhcmx5X2lvdW5tYXAoYWRyLCBQQUdFX1NJWkUpOwogfQogCi0vKiBNdXN0IHJ1biBiZWZvcmUgemFwX2xvd19tYXBwaW5ncyAqLwotX19tZW1pbml0IHZvaWQgKmVhcmx5X2lvcmVtYXAodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXQKK3BoeXNfcHRlX2luaXQocHRlX3QgKnB0ZV9wYWdlLCB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXBtZF90ICpwbWQsICpsYXN0X3BtZDsKLQl1bnNpZ25lZCBsb25nIHZhZGRyOwotCWludCBpLCBwbWRzOworCXVuc2lnbmVkIHBhZ2VzID0gMDsKKwl1bnNpZ25lZCBsb25nIGxhc3RfbWFwX2FkZHIgPSBlbmQ7CisJaW50IGk7CiAKLQlwbWRzID0gKChhZGRyICYgflBNRF9NQVNLKSArIHNpemUgKyB+UE1EX01BU0spIC8gUE1EX1NJWkU7Ci0JdmFkZHIgPSBfX1NUQVJUX0tFUk5FTF9tYXA7Ci0JcG1kID0gbGV2ZWwyX2tlcm5lbF9wZ3Q7Ci0JbGFzdF9wbWQgPSBsZXZlbDJfa2VybmVsX3BndCArIFBUUlNfUEVSX1BNRCAtIDE7CisJcHRlX3QgKnB0ZSA9IHB0ZV9wYWdlICsgcHRlX2luZGV4KGFkZHIpOwogCi0JZm9yICg7IHBtZCA8PSBsYXN0X3BtZDsgcG1kKyssIHZhZGRyICs9IFBNRF9TSVpFKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBwbWRzOyBpKyspIHsKLQkJCWlmIChwbWRfcHJlc2VudChwbWRbaV0pKQotCQkJCWdvdG8gY29udGludWVfb3V0ZXJfbG9vcDsKKwlmb3IoaSA9IHB0ZV9pbmRleChhZGRyKTsgaSA8IFBUUlNfUEVSX1BURTsgaSsrLCBhZGRyICs9IFBBR0VfU0laRSwgcHRlKyspIHsKKworCQlpZiAoYWRkciA+PSBlbmQpIHsKKwkJCWlmICghYWZ0ZXJfYm9vdG1lbSkgeworCQkJCWZvcig7IGkgPCBQVFJTX1BFUl9QVEU7IGkrKywgcHRlKyspCisJCQkJCXNldF9wdGUocHRlLCBfX3B0ZSgwKSk7CisJCQl9CisJCQlicmVhazsKIAkJfQotCQl2YWRkciArPSBhZGRyICYgflBNRF9NQVNLOwotCQlhZGRyICY9IFBNRF9NQVNLOwogCi0JCWZvciAoaSA9IDA7IGkgPCBwbWRzOyBpKyssIGFkZHIgKz0gUE1EX1NJWkUpCi0JCQlzZXRfcG1kKHBtZCtpLCBfX3BtZChhZGRyIHwgX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDKSk7Ci0JCV9fZmx1c2hfdGxiX2FsbCgpOworCQlpZiAocHRlX3ZhbCgqcHRlKSkKKwkJCWNvbnRpbnVlOwogCi0JCXJldHVybiAodm9pZCAqKXZhZGRyOwotY29udGludWVfb3V0ZXJfbG9vcDoKLQkJOworCQlpZiAoMCkKKwkJCXByaW50aygiICAgcHRlPSVwIGFkZHI9JWx4IHB0ZT0lMDE2bHhcbiIsCisJCQkgICAgICAgcHRlLCBhZGRyLCBwZm5fcHRlKGFkZHIgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUwpLnB0ZSk7CisJCXNldF9wdGUocHRlLCBwZm5fcHRlKGFkZHIgPj4gUEFHRV9TSElGVCwgUEFHRV9LRVJORUwpKTsKKwkJbGFzdF9tYXBfYWRkciA9IChhZGRyICYgUEFHRV9NQVNLKSArIFBBR0VfU0laRTsKKwkJcGFnZXMrKzsKIAl9Ci0JcHJpbnRrKEtFUk5fRVJSICJlYXJseV9pb3JlbWFwKDB4JWx4LCAlbHUpIGZhaWxlZFxuIiwgYWRkciwgc2l6ZSk7CisJdXBkYXRlX3BhZ2VfY291bnQoUEdfTEVWRUxfNEssIHBhZ2VzKTsKIAotCXJldHVybiBOVUxMOwotfQotCi0vKgotICogVG8gYXZvaWQgdmlydHVhbCBhbGlhc2VzIGxhdGVyOgotICovCi1fX21lbWluaXQgdm9pZCBlYXJseV9pb3VubWFwKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKLXsKLQl1bnNpZ25lZCBsb25nIHZhZGRyOwotCXBtZF90ICpwbWQ7Ci0JaW50IGksIHBtZHM7Ci0KLQl2YWRkciA9ICh1bnNpZ25lZCBsb25nKWFkZHI7Ci0JcG1kcyA9ICgodmFkZHIgJiB+UE1EX01BU0spICsgc2l6ZSArIH5QTURfTUFTSykgLyBQTURfU0laRTsKLQlwbWQgPSBsZXZlbDJfa2VybmVsX3BndCArIHBtZF9pbmRleCh2YWRkcik7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcG1kczsgaSsrKQotCQlwbWRfY2xlYXIocG1kICsgaSk7Ci0KLQlfX2ZsdXNoX3RsYl9hbGwoKTsKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0Ci1waHlzX3BtZF9pbml0KHBtZF90ICpwbWRfcGFnZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCkKK3BoeXNfcHRlX3VwZGF0ZShwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgZW5kKQogeworCXB0ZV90ICpwdGUgPSAocHRlX3QgKilwbWRfcGFnZV92YWRkcigqcG1kKTsKKworCXJldHVybiBwaHlzX3B0ZV9pbml0KHB0ZSwgYWRkcmVzcywgZW5kKTsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0CitwaHlzX3BtZF9pbml0KHBtZF90ICpwbWRfcGFnZSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCSB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrKQoreworCXVuc2lnbmVkIGxvbmcgcGFnZXMgPSAwOworCXVuc2lnbmVkIGxvbmcgbGFzdF9tYXBfYWRkciA9IGVuZDsKKwogCWludCBpID0gcG1kX2luZGV4KGFkZHJlc3MpOwogCiAJZm9yICg7IGkgPCBQVFJTX1BFUl9QTUQ7IGkrKywgYWRkcmVzcyArPSBQTURfU0laRSkgeworCQl1bnNpZ25lZCBsb25nIHB0ZV9waHlzOwogCQlwbWRfdCAqcG1kID0gcG1kX3BhZ2UgKyBwbWRfaW5kZXgoYWRkcmVzcyk7CisJCXB0ZV90ICpwdGU7CiAKIAkJaWYgKGFkZHJlc3MgPj0gZW5kKSB7CiAJCQlpZiAoIWFmdGVyX2Jvb3RtZW0pIHsKQEAgLTMyNSwzMSArMzY3LDUwIEBACiAJCQlicmVhazsKIAkJfQogCi0JCWlmIChwbWRfdmFsKCpwbWQpKQorCQlpZiAocG1kX3ZhbCgqcG1kKSkgeworCQkJaWYgKCFwbWRfbGFyZ2UoKnBtZCkpCisJCQkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcHRlX3VwZGF0ZShwbWQsIGFkZHJlc3MsCisJCQkJCQkJCSBlbmQpOwogCQkJY29udGludWU7CisJCX0KIAotCQlzZXRfcHRlKChwdGVfdCAqKXBtZCwKLQkJCXBmbl9wdGUoYWRkcmVzcyA+PiBQQUdFX1NISUZULCBQQUdFX0tFUk5FTF9MQVJHRSkpOworCQlpZiAocGFnZV9zaXplX21hc2sgJiAoMTw8UEdfTEVWRUxfMk0pKSB7CisJCQlwYWdlcysrOworCQkJc2V0X3B0ZSgocHRlX3QgKilwbWQsCisJCQkJcGZuX3B0ZShhZGRyZXNzID4+IFBBR0VfU0hJRlQsIFBBR0VfS0VSTkVMX0xBUkdFKSk7CisJCQlsYXN0X21hcF9hZGRyID0gKGFkZHJlc3MgJiBQTURfTUFTSykgKyBQTURfU0laRTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJcHRlID0gYWxsb2NfbG93X3BhZ2UoJnB0ZV9waHlzKTsKKwkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcHRlX2luaXQocHRlLCBhZGRyZXNzLCBlbmQpOworCQl1bm1hcF9sb3dfcGFnZShwdGUpOworCisJCXBtZF9wb3B1bGF0ZV9rZXJuZWwoJmluaXRfbW0sIHBtZCwgX192YShwdGVfcGh5cykpOwogCX0KLQlyZXR1cm4gYWRkcmVzczsKKwl1cGRhdGVfcGFnZV9jb3VudChQR19MRVZFTF8yTSwgcGFnZXMpOworCXJldHVybiBsYXN0X21hcF9hZGRyOwogfQogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX21lbWluaXQKLXBoeXNfcG1kX3VwZGF0ZShwdWRfdCAqcHVkLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcgZW5kKQorcGh5c19wbWRfdXBkYXRlKHB1ZF90ICpwdWQsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKIHsKIAlwbWRfdCAqcG1kID0gcG1kX29mZnNldChwdWQsIDApOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9tYXBfYWRkcjsKIAogCXNwaW5fbG9jaygmaW5pdF9tbS5wYWdlX3RhYmxlX2xvY2spOwotCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF9pbml0KHBtZCwgYWRkcmVzcywgZW5kKTsKKwlsYXN0X21hcF9hZGRyID0gcGh5c19wbWRfaW5pdChwbWQsIGFkZHJlc3MsIGVuZCwgcGFnZV9zaXplX21hc2spOwogCXNwaW5fdW5sb2NrKCZpbml0X21tLnBhZ2VfdGFibGVfbG9jayk7CiAJX19mbHVzaF90bGJfYWxsKCk7CiAJcmV0dXJuIGxhc3RfbWFwX2FkZHI7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIF9fbWVtaW5pdAotcGh5c19wdWRfaW5pdChwdWRfdCAqcHVkX3BhZ2UsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQpCitwaHlzX3B1ZF9pbml0KHB1ZF90ICpwdWRfcGFnZSwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJCSB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrKQogeworCXVuc2lnbmVkIGxvbmcgcGFnZXMgPSAwOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9tYXBfYWRkciA9IGVuZDsKIAlpbnQgaSA9IHB1ZF9pbmRleChhZGRyKTsKIApAQCAtMzY5LDExICs0MzAsMTMgQEAKIAogCQlpZiAocHVkX3ZhbCgqcHVkKSkgewogCQkJaWYgKCFwdWRfbGFyZ2UoKnB1ZCkpCi0JCQkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcG1kX3VwZGF0ZShwdWQsIGFkZHIsIGVuZCk7CisJCQkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcG1kX3VwZGF0ZShwdWQsIGFkZHIsIGVuZCwKKwkJCQkJCQkgcGFnZV9zaXplX21hc2spOwogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAoZGlyZWN0X2dicGFnZXMpIHsKKwkJaWYgKHBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzFHKSkgeworCQkJcGFnZXMrKzsKIAkJCXNldF9wdGUoKHB0ZV90ICopcHVkLAogCQkJCXBmbl9wdGUoYWRkciA+PiBQQUdFX1NISUZULCBQQUdFX0tFUk5FTF9MQVJHRSkpOwogCQkJbGFzdF9tYXBfYWRkciA9IChhZGRyICYgUFVEX01BU0spICsgUFVEX1NJWkU7CkBAIC0zODMsMjcgKzQ0Niw1MCBAQAogCQlwbWQgPSBhbGxvY19sb3dfcGFnZSgmcG1kX3BoeXMpOwogCiAJCXNwaW5fbG9jaygmaW5pdF9tbS5wYWdlX3RhYmxlX2xvY2spOwotCQlzZXRfcHVkKHB1ZCwgX19wdWQocG1kX3BoeXMgfCBfS0VSTlBHX1RBQkxFKSk7Ci0JCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3BtZF9pbml0KHBtZCwgYWRkciwgZW5kKTsKKwkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcG1kX2luaXQocG1kLCBhZGRyLCBlbmQsIHBhZ2Vfc2l6ZV9tYXNrKTsKKwkJdW5tYXBfbG93X3BhZ2UocG1kKTsKKwkJcHVkX3BvcHVsYXRlKCZpbml0X21tLCBwdWQsIF9fdmEocG1kX3BoeXMpKTsKIAkJc3Bpbl91bmxvY2soJmluaXRfbW0ucGFnZV90YWJsZV9sb2NrKTsKIAotCQl1bm1hcF9sb3dfcGFnZShwbWQpOwogCX0KIAlfX2ZsdXNoX3RsYl9hbGwoKTsKKwl1cGRhdGVfcGFnZV9jb3VudChQR19MRVZFTF8xRywgcGFnZXMpOwogCi0JcmV0dXJuIGxhc3RfbWFwX2FkZHIgPj4gUEFHRV9TSElGVDsKKwlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19tZW1pbml0CitwaHlzX3B1ZF91cGRhdGUocGdkX3QgKnBnZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJIHVuc2lnbmVkIGxvbmcgcGFnZV9zaXplX21hc2spCit7CisJcHVkX3QgKnB1ZDsKKworCXB1ZCA9IChwdWRfdCAqKXBnZF9wYWdlX3ZhZGRyKCpwZ2QpOworCisJcmV0dXJuIHBoeXNfcHVkX2luaXQocHVkLCBhZGRyLCBlbmQsIHBhZ2Vfc2l6ZV9tYXNrKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZWFybHlfdGFibGVfc3BhY2UodW5zaWduZWQgbG9uZyBlbmQpCiB7Ci0JdW5zaWduZWQgbG9uZyBwdWRzLCBwbWRzLCB0YWJsZXMsIHN0YXJ0OworCXVuc2lnbmVkIGxvbmcgcHVkcywgcG1kcywgcHRlcywgdGFibGVzLCBzdGFydDsKIAogCXB1ZHMgPSAoZW5kICsgUFVEX1NJWkUgLSAxKSA+PiBQVURfU0hJRlQ7CiAJdGFibGVzID0gcm91bmRfdXAocHVkcyAqIHNpemVvZihwdWRfdCksIFBBR0VfU0laRSk7Ci0JaWYgKCFkaXJlY3RfZ2JwYWdlcykgeworCWlmIChkaXJlY3RfZ2JwYWdlcykgeworCQl1bnNpZ25lZCBsb25nIGV4dHJhOworCQlleHRyYSA9IGVuZCAtICgoZW5kPj5QVURfU0hJRlQpIDw8IFBVRF9TSElGVCk7CisJCXBtZHMgPSAoZXh0cmEgKyBQTURfU0laRSAtIDEpID4+IFBNRF9TSElGVDsKKwl9IGVsc2UKIAkJcG1kcyA9IChlbmQgKyBQTURfU0laRSAtIDEpID4+IFBNRF9TSElGVDsKLQkJdGFibGVzICs9IHJvdW5kX3VwKHBtZHMgKiBzaXplb2YocG1kX3QpLCBQQUdFX1NJWkUpOwotCX0KKwl0YWJsZXMgKz0gcm91bmRfdXAocG1kcyAqIHNpemVvZihwbWRfdCksIFBBR0VfU0laRSk7CisKKwlpZiAoY3B1X2hhc19wc2UpIHsKKwkJdW5zaWduZWQgbG9uZyBleHRyYTsKKwkJZXh0cmEgPSBlbmQgLSAoKGVuZD4+UE1EX1NISUZUKSA8PCBQTURfU0hJRlQpOworCQlwdGVzID0gKGV4dHJhICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwl9IGVsc2UKKwkJcHRlcyA9IChlbmQgKyBQQUdFX1NJWkUgLSAxKSA+PiBQQUdFX1NISUZUOworCXRhYmxlcyArPSByb3VuZF91cChwdGVzICogc2l6ZW9mKHB0ZV90KSwgUEFHRV9TSVpFKTsKIAogCS8qCiAJICogUkVELVBFTiBwdXR0aW5nIHBhZ2UgdGFibGVzIG9ubHkgb24gbm9kZSAwIGNvdWxkCkBAIC00MTcsMTAgKzUwMywxMCBAQAogCiAJdGFibGVfc3RhcnQgPj49IFBBR0VfU0hJRlQ7CiAJdGFibGVfZW5kID0gdGFibGVfc3RhcnQ7CisJdGFibGVfdG9wID0gdGFibGVfc3RhcnQgKyAodGFibGVzID4+IFBBR0VfU0hJRlQpOwogCi0JZWFybHlfcHJpbnRrKCJrZXJuZWwgZGlyZWN0IG1hcHBpbmcgdGFibGVzIHVwIHRvICVseCBAICVseC0lbHhcbiIsCi0JCWVuZCwgdGFibGVfc3RhcnQgPDwgUEFHRV9TSElGVCwKLQkJKHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQpICsgdGFibGVzKTsKKwlwcmludGsoS0VSTl9ERUJVRyAia2VybmVsIGRpcmVjdCBtYXBwaW5nIHRhYmxlcyB1cCB0byAlbHggQCAlbHgtJWx4XG4iLAorCQllbmQsIHRhYmxlX3N0YXJ0IDw8IFBBR0VfU0hJRlQsIHRhYmxlX3RvcCA8PCBQQUdFX1NISUZUKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IGluaXRfZ2JwYWdlcyh2b2lkKQpAQCAtNDMxLDcgKzUxNyw3IEBACiAJCWRpcmVjdF9nYnBhZ2VzID0gMDsKIH0KIAotI2lmZGVmIENPTkZJR19NRU1URVNUX0JPT1RQQVJBTQorI2lmZGVmIENPTkZJR19NRU1URVNUCiAKIHN0YXRpYyB2b2lkIF9faW5pdCBtZW10ZXN0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGh5cywgdW5zaWduZWQgbG9uZyBzaXplLAogCQkJCSB1bnNpZ25lZCBwYXR0ZXJuKQpAQCAtNDkzLDcgKzU3OSw4IEBACiAKIH0KIAotc3RhdGljIGludCBtZW10ZXN0X3BhdHRlcm4gX19pbml0ZGF0YSA9IENPTkZJR19NRU1URVNUX0JPT1RQQVJBTV9WQUxVRTsKKy8qIGRlZmF1bHQgaXMgZGlzYWJsZWQgKi8KK3N0YXRpYyBpbnQgbWVtdGVzdF9wYXR0ZXJuIF9faW5pdGRhdGE7CiAKIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX21lbXRlc3QoY2hhciAqYXJnKQogewpAQCAtNTA2LDcgKzU5Myw3IEBACiAKIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9tZW10ZXN0KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgdF9zdGFydCwgdF9zaXplOworCXU2NCB0X3N0YXJ0LCB0X3NpemU7CiAJdW5zaWduZWQgcGF0dGVybjsKIAogCWlmICghbWVtdGVzdF9wYXR0ZXJuKQpAQCAtNTI1LDggKzYxMiw5IEBACiAJCQlpZiAodF9zdGFydCArIHRfc2l6ZSA+IGVuZCkKIAkJCQl0X3NpemUgPSBlbmQgLSB0X3N0YXJ0OwogCi0JCQlwcmludGsoS0VSTl9DT05UICJcbiAgJTAxNmx4IC0gJTAxNmx4IHBhdHRlcm4gJWQiLAotCQkJCXRfc3RhcnQsIHRfc3RhcnQgKyB0X3NpemUsIHBhdHRlcm4pOworCQkJcHJpbnRrKEtFUk5fQ09OVCAiXG4gICUwMTZsbHggLSAlMDE2bGx4IHBhdHRlcm4gJWQiLAorCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpdF9zdGFydCwKKwkJCQkodW5zaWduZWQgbG9uZyBsb25nKXRfc3RhcnQgKyB0X3NpemUsIHBhdHRlcm4pOwogCiAJCQltZW10ZXN0KHRfc3RhcnQsIHRfc2l6ZSwgcGF0dGVybik7CiAKQEAgLTU0MSwxNSArNjI5LDg1IEBACiB9CiAjZW5kaWYKIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0IGtlcm5lbF9waHlzaWNhbF9tYXBwaW5nX2luaXQodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgZW5kLAorCQkJCQkJdW5zaWduZWQgbG9uZyBwYWdlX3NpemVfbWFzaykKK3sKKworCXVuc2lnbmVkIGxvbmcgbmV4dCwgbGFzdF9tYXBfYWRkciA9IGVuZDsKKworCXN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpX192YShzdGFydCk7CisJZW5kID0gKHVuc2lnbmVkIGxvbmcpX192YShlbmQpOworCisJZm9yICg7IHN0YXJ0IDwgZW5kOyBzdGFydCA9IG5leHQpIHsKKwkJcGdkX3QgKnBnZCA9IHBnZF9vZmZzZXRfayhzdGFydCk7CisJCXVuc2lnbmVkIGxvbmcgcHVkX3BoeXM7CisJCXB1ZF90ICpwdWQ7CisKKwkJbmV4dCA9IHN0YXJ0ICsgUEdESVJfU0laRTsKKwkJaWYgKG5leHQgPiBlbmQpCisJCQluZXh0ID0gZW5kOworCisJCWlmIChwZ2RfdmFsKCpwZ2QpKSB7CisJCQlsYXN0X21hcF9hZGRyID0gcGh5c19wdWRfdXBkYXRlKHBnZCwgX19wYShzdGFydCksCisJCQkJCQkgX19wYShlbmQpLCBwYWdlX3NpemVfbWFzayk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChhZnRlcl9ib290bWVtKQorCQkJcHVkID0gcHVkX29mZnNldChwZ2QsIHN0YXJ0ICYgUEdESVJfTUFTSyk7CisJCWVsc2UKKwkJCXB1ZCA9IGFsbG9jX2xvd19wYWdlKCZwdWRfcGh5cyk7CisKKwkJbGFzdF9tYXBfYWRkciA9IHBoeXNfcHVkX2luaXQocHVkLCBfX3BhKHN0YXJ0KSwgX19wYShuZXh0KSwKKwkJCQkJCSBwYWdlX3NpemVfbWFzayk7CisJCXVubWFwX2xvd19wYWdlKHB1ZCk7CisJCXBnZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcGdkX29mZnNldF9rKHN0YXJ0KSwKKwkJCSAgICAgX192YShwdWRfcGh5cykpOworCX0KKworCXJldHVybiBsYXN0X21hcF9hZGRyOworfQorCitzdHJ1Y3QgbWFwX3JhbmdlIHsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0OworCXVuc2lnbmVkIGxvbmcgZW5kOworCXVuc2lnbmVkIHBhZ2Vfc2l6ZV9tYXNrOworfTsKKworI2RlZmluZSBOUl9SQU5HRV9NUiA1CisKK3N0YXRpYyBpbnQgc2F2ZV9tcihzdHJ1Y3QgbWFwX3JhbmdlICptciwgaW50IG5yX3JhbmdlLAorCQkgICB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBlbmRfcGZuLAorCQkgICB1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrKQoreworCisJaWYgKHN0YXJ0X3BmbiA8IGVuZF9wZm4pIHsKKwkJaWYgKG5yX3JhbmdlID49IE5SX1JBTkdFX01SKQorCQkJcGFuaWMoInJ1biBvdXQgb2YgcmFuZ2UgZm9yIGluaXRfbWVtb3J5X21hcHBpbmdcbiIpOworCQltcltucl9yYW5nZV0uc3RhcnQgPSBzdGFydF9wZm48PFBBR0VfU0hJRlQ7CisJCW1yW25yX3JhbmdlXS5lbmQgICA9IGVuZF9wZm48PFBBR0VfU0hJRlQ7CisJCW1yW25yX3JhbmdlXS5wYWdlX3NpemVfbWFzayA9IHBhZ2Vfc2l6ZV9tYXNrOworCQlucl9yYW5nZSsrOworCX0KKworCXJldHVybiBucl9yYW5nZTsKK30KKwogLyoKICAqIFNldHVwIHRoZSBkaXJlY3QgbWFwcGluZyBvZiB0aGUgcGh5c2ljYWwgbWVtb3J5IGF0IFBBR0VfT0ZGU0VULgogICogVGhpcyBydW5zIGJlZm9yZSBib290bWVtIGlzIGluaXRpYWxpemVkIGFuZCBnZXRzIHBhZ2VzIGRpcmVjdGx5IGZyb20KICAqIHRoZSBwaHlzaWNhbCBtZW1vcnkuIFRvIGFjY2VzcyB0aGVtIHRoZXkgYXJlIHRlbXBvcmFyaWx5IG1hcHBlZC4KICAqLwotdW5zaWduZWQgbG9uZyBfX2luaXRfcmVmb2sgaW5pdF9tZW1vcnlfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKK3Vuc2lnbmVkIGxvbmcgX19pbml0X3JlZm9rIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgbmV4dCwgbGFzdF9tYXBfYWRkciA9IGVuZDsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0X3BoeXMgPSBzdGFydCwgZW5kX3BoeXMgPSBlbmQ7CisJdW5zaWduZWQgbG9uZyBsYXN0X21hcF9hZGRyID0gMDsKKwl1bnNpZ25lZCBsb25nIHBhZ2Vfc2l6ZV9tYXNrID0gMDsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgZW5kX3BmbjsKKworCXN0cnVjdCBtYXBfcmFuZ2UgbXJbTlJfUkFOR0VfTVJdOworCWludCBucl9yYW5nZSwgaTsKIAogCXByaW50ayhLRVJOX0lORk8gImluaXRfbWVtb3J5X21hcHBpbmdcbiIpOwogCkBAIC01NjAsNDggKzcxOCwxMTUgQEAKIAkgKiBtZW1vcnkgbWFwcGVkLiBVbmZvcnR1bmF0ZWx5IHRoaXMgaXMgZG9uZSBjdXJyZW50bHkgYmVmb3JlIHRoZQogCSAqIG5vZGVzIGFyZSBkaXNjb3ZlcmVkLgogCSAqLwotCWlmICghYWZ0ZXJfYm9vdG1lbSkgeworCWlmICghYWZ0ZXJfYm9vdG1lbSkKIAkJaW5pdF9nYnBhZ2VzKCk7CisKKwlpZiAoZGlyZWN0X2dicGFnZXMpCisJCXBhZ2Vfc2l6ZV9tYXNrIHw9IDEgPDwgUEdfTEVWRUxfMUc7CisJaWYgKGNwdV9oYXNfcHNlKQorCQlwYWdlX3NpemVfbWFzayB8PSAxIDw8IFBHX0xFVkVMXzJNOworCisJbWVtc2V0KG1yLCAwLCBzaXplb2YobXIpKTsKKwlucl9yYW5nZSA9IDA7CisKKwkvKiBoZWFkIGlmIG5vdCBiaWcgcGFnZSBhbGlnbm1lbnQgPyovCisJc3RhcnRfcGZuID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKChzdGFydCArIChQTURfU0laRSAtIDEpKSA+PiBQTURfU0hJRlQpCisJCQk8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJbnJfcmFuZ2UgPSBzYXZlX21yKG1yLCBucl9yYW5nZSwgc3RhcnRfcGZuLCBlbmRfcGZuLCAwKTsKKworCS8qIGJpZyBwYWdlICgyTSkgcmFuZ2UqLworCXN0YXJ0X3BmbiA9ICgoc3RhcnQgKyAoUE1EX1NJWkUgLSAxKSk+PlBNRF9TSElGVCkKKwkJCSA8PCAoUE1EX1NISUZUIC0gUEFHRV9TSElGVCk7CisJZW5kX3BmbiA9ICgoc3RhcnQgKyAoUFVEX1NJWkUgLSAxKSk+PlBVRF9TSElGVCkKKwkJCSA8PCAoUFVEX1NISUZUIC0gUEFHRV9TSElGVCk7CisJaWYgKGVuZF9wZm4gPiAoKGVuZD4+UFVEX1NISUZUKTw8KFBVRF9TSElGVCAtIFBBR0VfU0hJRlQpKSkKKwkJZW5kX3BmbiA9ICgoZW5kPj5QVURfU0hJRlQpPDwoUFVEX1NISUZUIC0gUEFHRV9TSElGVCkpOworCW5yX3JhbmdlID0gc2F2ZV9tcihtciwgbnJfcmFuZ2UsIHN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJCXBhZ2Vfc2l6ZV9tYXNrICYgKDE8PFBHX0xFVkVMXzJNKSk7CisKKwkvKiBiaWcgcGFnZSAoMUcpIHJhbmdlICovCisJc3RhcnRfcGZuID0gZW5kX3BmbjsKKwllbmRfcGZuID0gKGVuZD4+UFVEX1NISUZUKSA8PCAoUFVEX1NISUZUIC0gUEFHRV9TSElGVCk7CisJbnJfcmFuZ2UgPSBzYXZlX21yKG1yLCBucl9yYW5nZSwgc3RhcnRfcGZuLCBlbmRfcGZuLAorCQkJCXBhZ2Vfc2l6ZV9tYXNrICYKKwkJCQkgKCgxPDxQR19MRVZFTF8yTSl8KDE8PFBHX0xFVkVMXzFHKSkpOworCisJLyogdGFpbCBpcyBub3QgYmlnIHBhZ2UgKDFHKSBhbGlnbm1lbnQgKi8KKwlzdGFydF9wZm4gPSBlbmRfcGZuOworCWVuZF9wZm4gPSAoZW5kPj5QTURfU0hJRlQpIDw8IChQTURfU0hJRlQgLSBQQUdFX1NISUZUKTsKKwlucl9yYW5nZSA9IHNhdmVfbXIobXIsIG5yX3JhbmdlLCBzdGFydF9wZm4sIGVuZF9wZm4sCisJCQlwYWdlX3NpemVfbWFzayAmICgxPDxQR19MRVZFTF8yTSkpOworCisJLyogdGFpbCBpcyBub3QgYmlnIHBhZ2UgKDJNKSBhbGlnbm1lbnQgKi8KKwlzdGFydF9wZm4gPSBlbmRfcGZuOworCWVuZF9wZm4gPSBlbmQ+PlBBR0VfU0hJRlQ7CisJbnJfcmFuZ2UgPSBzYXZlX21yKG1yLCBucl9yYW5nZSwgc3RhcnRfcGZuLCBlbmRfcGZuLCAwKTsKKworCS8qIHRyeSB0byBtZXJnZSBzYW1lIHBhZ2Ugc2l6ZSBhbmQgY29udGludW91cyAqLworCWZvciAoaSA9IDA7IG5yX3JhbmdlID4gMSAmJiBpIDwgbnJfcmFuZ2UgLSAxOyBpKyspIHsKKwkJdW5zaWduZWQgbG9uZyBvbGRfc3RhcnQ7CisJCWlmIChtcltpXS5lbmQgIT0gbXJbaSsxXS5zdGFydCB8fAorCQkgICAgbXJbaV0ucGFnZV9zaXplX21hc2sgIT0gbXJbaSsxXS5wYWdlX3NpemVfbWFzaykKKwkJCWNvbnRpbnVlOworCQkvKiBtb3ZlIGl0ICovCisJCW9sZF9zdGFydCA9IG1yW2ldLnN0YXJ0OworCQltZW1tb3ZlKCZtcltpXSwgJm1yW2krMV0sCisJCQkgKG5yX3JhbmdlIC0gMSAtIGkpICogc2l6ZW9mIChzdHJ1Y3QgbWFwX3JhbmdlKSk7CisJCW1yW2ldLnN0YXJ0ID0gb2xkX3N0YXJ0OworCQlucl9yYW5nZS0tOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBucl9yYW5nZTsgaSsrKQorCQlwcmludGsoS0VSTl9ERUJVRyAiICUwMTBseCAtICUwMTBseCBwYWdlICVzXG4iLAorCQkJCW1yW2ldLnN0YXJ0LCBtcltpXS5lbmQsCisJCQkobXJbaV0ucGFnZV9zaXplX21hc2sgJiAoMTw8UEdfTEVWRUxfMUcpKT8iMUciOigKKwkJCSAobXJbaV0ucGFnZV9zaXplX21hc2sgJiAoMTw8UEdfTEVWRUxfMk0pKT8iMk0iOiI0ayIpKTsKKworCWlmICghYWZ0ZXJfYm9vdG1lbSkKIAkJZmluZF9lYXJseV90YWJsZV9zcGFjZShlbmQpOwotCX0KIAotCXN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpX192YShzdGFydCk7Ci0JZW5kID0gKHVuc2lnbmVkIGxvbmcpX192YShlbmQpOwotCi0JZm9yICg7IHN0YXJ0IDwgZW5kOyBzdGFydCA9IG5leHQpIHsKLQkJcGdkX3QgKnBnZCA9IHBnZF9vZmZzZXRfayhzdGFydCk7Ci0JCXVuc2lnbmVkIGxvbmcgcHVkX3BoeXM7Ci0JCXB1ZF90ICpwdWQ7Ci0KLQkJaWYgKGFmdGVyX2Jvb3RtZW0pCi0JCQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgc3RhcnQgJiBQR0RJUl9NQVNLKTsKLQkJZWxzZQotCQkJcHVkID0gYWxsb2NfbG93X3BhZ2UoJnB1ZF9waHlzKTsKLQotCQluZXh0ID0gc3RhcnQgKyBQR0RJUl9TSVpFOwotCQlpZiAobmV4dCA+IGVuZCkKLQkJCW5leHQgPSBlbmQ7Ci0JCWxhc3RfbWFwX2FkZHIgPSBwaHlzX3B1ZF9pbml0KHB1ZCwgX19wYShzdGFydCksIF9fcGEobmV4dCkpOwotCQlpZiAoIWFmdGVyX2Jvb3RtZW0pCi0JCQlzZXRfcGdkKHBnZF9vZmZzZXRfayhzdGFydCksIG1rX2tlcm5lbF9wZ2QocHVkX3BoeXMpKTsKLQkJdW5tYXBfbG93X3BhZ2UocHVkKTsKLQl9CisJZm9yIChpID0gMDsgaSA8IG5yX3JhbmdlOyBpKyspCisJCWxhc3RfbWFwX2FkZHIgPSBrZXJuZWxfcGh5c2ljYWxfbWFwcGluZ19pbml0KAorCQkJCQltcltpXS5zdGFydCwgbXJbaV0uZW5kLAorCQkJCQltcltpXS5wYWdlX3NpemVfbWFzayk7CiAKIAlpZiAoIWFmdGVyX2Jvb3RtZW0pCiAJCW1tdV9jcjRfZmVhdHVyZXMgPSByZWFkX2NyNCgpOwogCV9fZmx1c2hfdGxiX2FsbCgpOwogCi0JaWYgKCFhZnRlcl9ib290bWVtKQorCWlmICghYWZ0ZXJfYm9vdG1lbSAmJiB0YWJsZV9lbmQgPiB0YWJsZV9zdGFydCkKIAkJcmVzZXJ2ZV9lYXJseSh0YWJsZV9zdGFydCA8PCBQQUdFX1NISUZULAogCQkJCSB0YWJsZV9lbmQgPDwgUEFHRV9TSElGVCwgIlBHVEFCTEUiKTsKIAotCWlmICghYWZ0ZXJfYm9vdG1lbSkKLQkJZWFybHlfbWVtdGVzdChzdGFydF9waHlzLCBlbmRfcGh5cyk7CisJcHJpbnRrKEtFUk5fSU5GTyAibGFzdF9tYXBfYWRkcjogJWx4IGVuZDogJWx4XG4iLAorCQkJIGxhc3RfbWFwX2FkZHIsIGVuZCk7CiAKLQlyZXR1cm4gbGFzdF9tYXBfYWRkcjsKKwlpZiAoIWFmdGVyX2Jvb3RtZW0pCisJCWVhcmx5X21lbXRlc3Qoc3RhcnQsIGVuZCk7CisKKwlyZXR1cm4gbGFzdF9tYXBfYWRkciA+PiBQQUdFX1NISUZUOwogfQogCiAjaWZuZGVmIENPTkZJR19OVU1BCit2b2lkIF9faW5pdCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKK3sKKwl1bnNpZ25lZCBsb25nIGJvb3RtYXBfc2l6ZSwgYm9vdG1hcDsKKworCWJvb3RtYXBfc2l6ZSA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhlbmRfcGZuKTw8UEFHRV9TSElGVDsKKwlib290bWFwID0gZmluZF9lODIwX2FyZWEoMCwgZW5kX3Bmbjw8UEFHRV9TSElGVCwgYm9vdG1hcF9zaXplLAorCQkJCSBQQUdFX1NJWkUpOworCWlmIChib290bWFwID09IC0xTCkKKwkJcGFuaWMoIkNhbm5vdCBmaW5kIGJvb3RtZW0gbWFwIG9mIHNpemUgJWxkXG4iLCBib290bWFwX3NpemUpOworCS8qIGRvbid0IHRvdWNoIG1pbl9sb3dfcGZuICovCisJYm9vdG1hcF9zaXplID0gaW5pdF9ib290bWVtX25vZGUoTk9ERV9EQVRBKDApLCBib290bWFwID4+IFBBR0VfU0hJRlQsCisJCQkJCSAwLCBlbmRfcGZuKTsKKwllODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKDAsIHN0YXJ0X3BmbiwgZW5kX3Bmbik7CisJZnJlZV9ib290bWVtX3dpdGhfYWN0aXZlX3JlZ2lvbnMoMCwgZW5kX3Bmbik7CisJZWFybHlfcmVzX3RvX2Jvb3RtZW0oMCwgZW5kX3Bmbjw8UEFHRV9TSElGVCk7CisJcmVzZXJ2ZV9ib290bWVtKGJvb3RtYXAsIGJvb3RtYXBfc2l6ZSwgQk9PVE1FTV9ERUZBVUxUKTsKK30KKwogdm9pZCBfX2luaXQgcGFnaW5nX2luaXQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIG1heF96b25lX3BmbnNbTUFYX05SX1pPTkVTXTsKQEAgLTYwOSw5ICs4MzQsOSBAQAogCW1lbXNldChtYXhfem9uZV9wZm5zLCAwLCBzaXplb2YobWF4X3pvbmVfcGZucykpOwogCW1heF96b25lX3BmbnNbWk9ORV9ETUFdID0gTUFYX0RNQV9QRk47CiAJbWF4X3pvbmVfcGZuc1taT05FX0RNQTMyXSA9IE1BWF9ETUEzMl9QRk47Ci0JbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBlbmRfcGZuOworCW1heF96b25lX3BmbnNbWk9ORV9OT1JNQUxdID0gbWF4X3BmbjsKIAotCW1lbW9yeV9wcmVzZW50KDAsIDAsIGVuZF9wZm4pOworCW1lbW9yeV9wcmVzZW50KDAsIDAsIG1heF9wZm4pOwogCXNwYXJzZV9pbml0KCk7CiAJZnJlZV9hcmVhX2luaXRfbm9kZXMobWF4X3pvbmVfcGZucyk7CiB9CkBAIC02OTMsOCArOTE4LDggQEAKICNlbHNlCiAJdG90YWxyYW1fcGFnZXMgPSBmcmVlX2FsbF9ib290bWVtKCk7CiAjZW5kaWYKLQlyZXNlcnZlZHBhZ2VzID0gZW5kX3BmbiAtIHRvdGFscmFtX3BhZ2VzIC0KLQkJCQkJYWJzZW50X3BhZ2VzX2luX3JhbmdlKDAsIGVuZF9wZm4pOworCXJlc2VydmVkcGFnZXMgPSBtYXhfcGZuIC0gdG90YWxyYW1fcGFnZXMgLQorCQkJCQlhYnNlbnRfcGFnZXNfaW5fcmFuZ2UoMCwgbWF4X3Bmbik7CiAJYWZ0ZXJfYm9vdG1lbSA9IDE7CiAKIAljb2Rlc2l6ZSA9ICAodW5zaWduZWQgbG9uZykgJl9ldGV4dCAtICh1bnNpZ25lZCBsb25nKSAmX3RleHQ7CkBAIC03MTMsNyArOTM4LDcgQEAKIAlwcmludGsoS0VSTl9JTkZPICJNZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFibGUgKCVsZGsga2VybmVsIGNvZGUsICIKIAkJCQkiJWxkayByZXNlcnZlZCwgJWxkayBkYXRhLCAlbGRrIGluaXQpXG4iLAogCQkodW5zaWduZWQgbG9uZykgbnJfZnJlZV9wYWdlcygpIDw8IChQQUdFX1NISUZULTEwKSwKLQkJZW5kX3BmbiA8PCAoUEFHRV9TSElGVC0xMCksCisJCW1heF9wZm4gPDwgKFBBR0VfU0hJRlQtMTApLAogCQljb2Rlc2l6ZSA+PiAxMCwKIAkJcmVzZXJ2ZWRwYWdlcyA8PCAoUEFHRV9TSElGVC0xMCksCiAJCWRhdGFzaXplID4+IDEwLApAQCAtNzY2LDYgKzk5MSwxMyBAQAogdm9pZCBtYXJrX3JvZGF0YV9ybyh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBQRk5fQUxJR04oX3N0ZXh0KSwgZW5kID0gUEZOX0FMSUdOKF9fZW5kX3JvZGF0YSk7CisJdW5zaWduZWQgbG9uZyByb2RhdGFfc3RhcnQgPQorCQkoKHVuc2lnbmVkIGxvbmcpX19zdGFydF9yb2RhdGEgKyBQQUdFX1NJWkUgLSAxKSAmIFBBR0VfTUFTSzsKKworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCS8qIER5bmFtaWMgdHJhY2luZyBtb2RpZmllcyB0aGUga2VybmVsIHRleHQgc2VjdGlvbiAqLworCXN0YXJ0ID0gcm9kYXRhX3N0YXJ0OworI2VuZGlmCiAKIAlwcmludGsoS0VSTl9JTkZPICJXcml0ZSBwcm90ZWN0aW5nIHRoZSBrZXJuZWwgcmVhZC1vbmx5IGRhdGE6ICVsdWtcbiIsCiAJICAgICAgIChlbmQgLSBzdGFydCkgPj4gMTApOwpAQCAtNzc1LDggKzEwMDcsNyBAQAogCSAqIFRoZSByb2RhdGEgc2VjdGlvbiAoYnV0IG5vdCB0aGUga2VybmVsIHRleHQhKSBzaG91bGQgYWxzbyBiZQogCSAqIG5vdC1leGVjdXRhYmxlLgogCSAqLwotCXN0YXJ0ID0gKCh1bnNpZ25lZCBsb25nKV9fc3RhcnRfcm9kYXRhICsgUEFHRV9TSVpFIC0gMSkgJiBQQUdFX01BU0s7Ci0Jc2V0X21lbW9yeV9ueChzdGFydCwgKGVuZCAtIHN0YXJ0KSA+PiBQQUdFX1NISUZUKTsKKwlzZXRfbWVtb3J5X254KHJvZGF0YV9zdGFydCwgKGVuZCAtIHJvZGF0YV9zdGFydCkgPj4gUEFHRV9TSElGVCk7CiAKIAlyb2RhdGFfdGVzdCgpOwogCkBAIC03OTgsMjQgKzEwMjksMjYgQEAKIH0KICNlbmRpZgogCi12b2lkIF9faW5pdCByZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxlbikKK2ludCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIGxlbiwKKwkJCQkgICBpbnQgZmxhZ3MpCiB7CiAjaWZkZWYgQ09ORklHX05VTUEKIAlpbnQgbmlkLCBuZXh0X25pZDsKKwlpbnQgcmV0OwogI2VuZGlmCiAJdW5zaWduZWQgbG9uZyBwZm4gPSBwaHlzID4+IFBBR0VfU0hJRlQ7CiAKLQlpZiAocGZuID49IGVuZF9wZm4pIHsKKwlpZiAocGZuID49IG1heF9wZm4pIHsKIAkJLyoKIAkJICogVGhpcyBjYW4gaGFwcGVuIHdpdGgga2R1bXAga2VybmVscyB3aGVuIGFjY2Vzc2luZwogCQkgKiBmaXJtd2FyZSB0YWJsZXM6CiAJCSAqLwogCQlpZiAocGZuIDwgbWF4X3Bmbl9tYXBwZWQpCi0JCQlyZXR1cm47CisJCQlyZXR1cm4gLUVGQVVMVDsKIAotCQlwcmludGsoS0VSTl9FUlIgInJlc2VydmVfYm9vdG1lbTogaWxsZWdhbCByZXNlcnZlICVseCAldVxuIiwKKwkJcHJpbnRrKEtFUk5fRVJSICJyZXNlcnZlX2Jvb3RtZW06IGlsbGVnYWwgcmVzZXJ2ZSAlbHggJWx1XG4iLAogCQkJCXBoeXMsIGxlbik7Ci0JCXJldHVybjsKKwkJcmV0dXJuIC1FRkFVTFQ7CiAJfQogCiAJLyogU2hvdWxkIGNoZWNrIGhlcmUgYWdhaW5zdCB0aGUgZTgyMCBtYXAgdG8gYXZvaWQgZG91YmxlIGZyZWUgKi8KQEAgLTgyMyw5ICsxMDU2LDEzIEBACiAJbmlkID0gcGh5c190b19uaWQocGh5cyk7CiAJbmV4dF9uaWQgPSBwaHlzX3RvX25pZChwaHlzICsgbGVuIC0gMSk7CiAJaWYgKG5pZCA9PSBuZXh0X25pZCkKLQkJcmVzZXJ2ZV9ib290bWVtX25vZGUoTk9ERV9EQVRBKG5pZCksIHBoeXMsIGxlbiwgQk9PVE1FTV9ERUZBVUxUKTsKKwkJcmV0ID0gcmVzZXJ2ZV9ib290bWVtX25vZGUoTk9ERV9EQVRBKG5pZCksIHBoeXMsIGxlbiwgZmxhZ3MpOwogCWVsc2UKLQkJcmVzZXJ2ZV9ib290bWVtKHBoeXMsIGxlbiwgQk9PVE1FTV9ERUZBVUxUKTsKKwkJcmV0ID0gcmVzZXJ2ZV9ib290bWVtKHBoeXMsIGxlbiwgZmxhZ3MpOworCisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OworCiAjZWxzZQogCXJlc2VydmVfYm9vdG1lbShwaHlzLCBsZW4sIEJPT1RNRU1fREVGQVVMVCk7CiAjZW5kaWYKQEAgLTgzNCw2ICsxMDcxLDggQEAKIAkJZG1hX3Jlc2VydmUgKz0gbGVuIC8gUEFHRV9TSVpFOwogCQlzZXRfZG1hX3Jlc2VydmUoZG1hX3Jlc2VydmUpOwogCX0KKworCXJldHVybiAwOwogfQogCiBpbnQga2Vybl9hZGRyX3ZhbGlkKHVuc2lnbmVkIGxvbmcgYWRkcikKQEAgLTkzOCw3ICsxMTc3LDcgQEAKIAlwbWRfdCAqcG1kOwogCiAJZm9yICg7IGFkZHIgPCBlbmQ7IGFkZHIgPSBuZXh0KSB7Ci0JCW5leHQgPSBwbWRfYWRkcl9lbmQoYWRkciwgZW5kKTsKKwkJdm9pZCAqcCA9IE5VTEw7CiAKIAkJcGdkID0gdm1lbW1hcF9wZ2RfcG9wdWxhdGUoYWRkciwgbm9kZSk7CiAJCWlmICghcGdkKQpAQCAtOTQ4LDMzICsxMTg3LDUxIEBACiAJCWlmICghcHVkKQogCQkJcmV0dXJuIC1FTk9NRU07CiAKLQkJcG1kID0gcG1kX29mZnNldChwdWQsIGFkZHIpOwotCQlpZiAocG1kX25vbmUoKnBtZCkpIHsKLQkJCXB0ZV90IGVudHJ5OwotCQkJdm9pZCAqcDsKKwkJaWYgKCFjcHVfaGFzX3BzZSkgeworCQkJbmV4dCA9IChhZGRyICsgUEFHRV9TSVpFKSAmIFBBR0VfTUFTSzsKKwkJCXBtZCA9IHZtZW1tYXBfcG1kX3BvcHVsYXRlKHB1ZCwgYWRkciwgbm9kZSk7CiAKLQkJCXAgPSB2bWVtbWFwX2FsbG9jX2Jsb2NrKFBNRF9TSVpFLCBub2RlKTsKKwkJCWlmICghcG1kKQorCQkJCXJldHVybiAtRU5PTUVNOworCisJCQlwID0gdm1lbW1hcF9wdGVfcG9wdWxhdGUocG1kLCBhZGRyLCBub2RlKTsKKwogCQkJaWYgKCFwKQogCQkJCXJldHVybiAtRU5PTUVNOwogCi0JCQllbnRyeSA9IHBmbl9wdGUoX19wYShwKSA+PiBQQUdFX1NISUZULAotCQkJCQkJCVBBR0VfS0VSTkVMX0xBUkdFKTsKLQkJCXNldF9wbWQocG1kLCBfX3BtZChwdGVfdmFsKGVudHJ5KSkpOwotCi0JCQkvKiBjaGVjayB0byBzZWUgaWYgd2UgaGF2ZSBjb250aWd1b3VzIGJsb2NrcyAqLwotCQkJaWYgKHBfZW5kICE9IHAgfHwgbm9kZV9zdGFydCAhPSBub2RlKSB7Ci0JCQkJaWYgKHBfc3RhcnQpCi0JCQkJCXByaW50ayhLRVJOX0RFQlVHICIgWyVseC0lbHhdIFBNRCAtPiBbJXAtJXBdIG9uIG5vZGUgJWRcbiIsCi0JCQkJCQlhZGRyX3N0YXJ0LCBhZGRyX2VuZC0xLCBwX3N0YXJ0LCBwX2VuZC0xLCBub2RlX3N0YXJ0KTsKLQkJCQlhZGRyX3N0YXJ0ID0gYWRkcjsKLQkJCQlub2RlX3N0YXJ0ID0gbm9kZTsKLQkJCQlwX3N0YXJ0ID0gcDsKLQkJCX0KLQkJCWFkZHJfZW5kID0gYWRkciArIFBNRF9TSVpFOwotCQkJcF9lbmQgPSBwICsgUE1EX1NJWkU7CisJCQlhZGRyX2VuZCA9IGFkZHIgKyBQQUdFX1NJWkU7CisJCQlwX2VuZCA9IHAgKyBQQUdFX1NJWkU7CiAJCX0gZWxzZSB7Ci0JCQl2bWVtbWFwX3ZlcmlmeSgocHRlX3QgKilwbWQsIG5vZGUsIGFkZHIsIG5leHQpOworCQkJbmV4dCA9IHBtZF9hZGRyX2VuZChhZGRyLCBlbmQpOworCisJCQlwbWQgPSBwbWRfb2Zmc2V0KHB1ZCwgYWRkcik7CisJCQlpZiAocG1kX25vbmUoKnBtZCkpIHsKKwkJCQlwdGVfdCBlbnRyeTsKKworCQkJCXAgPSB2bWVtbWFwX2FsbG9jX2Jsb2NrKFBNRF9TSVpFLCBub2RlKTsKKwkJCQlpZiAoIXApCisJCQkJCXJldHVybiAtRU5PTUVNOworCisJCQkJZW50cnkgPSBwZm5fcHRlKF9fcGEocCkgPj4gUEFHRV9TSElGVCwKKwkJCQkJCVBBR0VfS0VSTkVMX0xBUkdFKTsKKwkJCQlzZXRfcG1kKHBtZCwgX19wbWQocHRlX3ZhbChlbnRyeSkpKTsKKworCQkJCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGNvbnRpZ3VvdXMgYmxvY2tzICovCisJCQkJaWYgKHBfZW5kICE9IHAgfHwgbm9kZV9zdGFydCAhPSBub2RlKSB7CisJCQkJCWlmIChwX3N0YXJ0KQorCQkJCQkJcHJpbnRrKEtFUk5fREVCVUcgIiBbJWx4LSVseF0gUE1EIC0+IFslcC0lcF0gb24gbm9kZSAlZFxuIiwKKwkJCQkJCSAgICAgICBhZGRyX3N0YXJ0LCBhZGRyX2VuZC0xLCBwX3N0YXJ0LCBwX2VuZC0xLCBub2RlX3N0YXJ0KTsKKwkJCQkJYWRkcl9zdGFydCA9IGFkZHI7CisJCQkJCW5vZGVfc3RhcnQgPSBub2RlOworCQkJCQlwX3N0YXJ0ID0gcDsKKwkJCQl9CisKKwkJCQlhZGRyX2VuZCA9IGFkZHIgKyBQTURfU0laRTsKKwkJCQlwX2VuZCA9IHAgKyBQTURfU0laRTsKKwkJCX0gZWxzZQorCQkJCXZtZW1tYXBfdmVyaWZ5KChwdGVfdCAqKXBtZCwgbm9kZSwgYWRkciwgbmV4dCk7CiAJCX0KKwogCX0KIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2lvcmVtYXAuYyBiL2FyY2gveDg2L21tL2lvcmVtYXAuYwppbmRleCA3MWJiMzE1Li4yNGMxZDNjIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9pb3JlbWFwLmMKKysrIGIvYXJjaC94ODYvbW0vaW9yZW1hcC5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KIAogI2luY2x1ZGUgPGFzbS9jYWNoZWZsdXNoLmg+CiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KQEAgLTEyMiwxMCArMTIzLDEzIEBACiB7CiAJdW5zaWduZWQgbG9uZyBwZm4sIG9mZnNldCwgdmFkZHI7CiAJcmVzb3VyY2Vfc2l6ZV90IGxhc3RfYWRkcjsKKwljb25zdCByZXNvdXJjZV9zaXplX3QgdW5hbGlnbmVkX3BoeXNfYWRkciA9IHBoeXNfYWRkcjsKKwljb25zdCB1bnNpZ25lZCBsb25nIHVuYWxpZ25lZF9zaXplID0gc2l6ZTsKIAlzdHJ1Y3Qgdm1fc3RydWN0ICphcmVhOwogCXVuc2lnbmVkIGxvbmcgbmV3X3Byb3RfdmFsOwogCXBncHJvdF90IHByb3Q7CiAJaW50IHJldHZhbDsKKwl2b2lkIF9faW9tZW0gKnJldF9hZGRyOwogCiAJLyogRG9uJ3QgYWxsb3cgd3JhcGFyb3VuZCBvciB6ZXJvIHNpemUgKi8KIAlsYXN0X2FkZHIgPSBwaHlzX2FkZHIgKyBzaXplIC0gMTsKQEAgLTE0Miw3ICsxNDYsNyBAQAogCS8qCiAJICogRG9uJ3QgcmVtYXAgdGhlIGxvdyBQQ0kvSVNBIGFyZWEsIGl0J3MgYWx3YXlzIG1hcHBlZC4uCiAJICovCi0JaWYgKHBoeXNfYWRkciA+PSBJU0FfU1RBUlRfQUREUkVTUyAmJiBsYXN0X2FkZHIgPCBJU0FfRU5EX0FERFJFU1MpCisJaWYgKGlzX0lTQV9yYW5nZShwaHlzX2FkZHIsIGxhc3RfYWRkcikpCiAJCXJldHVybiAoX19mb3JjZSB2b2lkIF9faW9tZW0gKilwaHlzX3RvX3ZpcnQocGh5c19hZGRyKTsKIAogCS8qCkBAIC0yMzMsNyArMjM3LDEwIEBACiAJCXJldHVybiBOVUxMOwogCX0KIAotCXJldHVybiAodm9pZCBfX2lvbWVtICopICh2YWRkciArIG9mZnNldCk7CisJcmV0X2FkZHIgPSAodm9pZCBfX2lvbWVtICopICh2YWRkciArIG9mZnNldCk7CisJbW1pb3RyYWNlX2lvcmVtYXAodW5hbGlnbmVkX3BoeXNfYWRkciwgdW5hbGlnbmVkX3NpemUsIHJldF9hZGRyKTsKKworCXJldHVybiByZXRfYWRkcjsKIH0KIAogLyoqCkBAIC0yNjEsNyArMjY4LDcgQEAKIHsKIAkvKgogCSAqIElkZWFsbHksIHRoaXMgc2hvdWxkIGJlOgotCSAqCXBhdF93Y19lbmFibGVkID8gX1BBR0VfQ0FDSEVfVUMgOiBfUEFHRV9DQUNIRV9VQ19NSU5VUzsKKwkgKglwYXRfZW5hYmxlZCA/IF9QQUdFX0NBQ0hFX1VDIDogX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CiAJICoKIAkgKiBUaWxsIHdlIGZpeCBhbGwgWCBkcml2ZXJzIHRvIHVzZSBpb3JlbWFwX3djKCksIHdlIHdpbGwgdXNlCiAJICogVUMgTUlOVVMuCkBAIC0yODUsNyArMjkyLDcgQEAKICAqLwogdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCiB7Ci0JaWYgKHBhdF93Y19lbmFibGVkKQorCWlmIChwYXRfZW5hYmxlZCkKIAkJcmV0dXJuIF9faW9yZW1hcF9jYWxsZXIocGh5c19hZGRyLCBzaXplLCBfUEFHRV9DQUNIRV9XQywKIAkJCQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKIAllbHNlCkBAIC0zMDAsNiArMzA3LDI5IEBACiB9CiBFWFBPUlRfU1lNQk9MKGlvcmVtYXBfY2FjaGUpOwogCitzdGF0aWMgdm9pZCBfX2lvbWVtICppb3JlbWFwX2RlZmF1bHQocmVzb3VyY2Vfc2l6ZV90IHBoeXNfYWRkciwKKwkJCQkJdW5zaWduZWQgbG9uZyBzaXplKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdm9pZCAqcmV0OworCWludCBlcnI7CisKKwkvKgorCSAqIC0gV0IgZm9yIFdCLWFibGUgbWVtb3J5IGFuZCBubyBvdGhlciBjb25mbGljdGluZyBtYXBwaW5ncworCSAqIC0gVUNfTUlOVVMgZm9yIG5vbi1XQi1hYmxlIG1lbW9yeSB3aXRoIG5vIG90aGVyIGNvbmZsaWN0aW5nIG1hcHBpbmdzCisJICogLSBJbmhlcml0IGZyb20gY29uZmxpdGluZyBtYXBwaW5ncyBvdGhlcndpc2UKKwkgKi8KKwllcnIgPSByZXNlcnZlX21lbXR5cGUocGh5c19hZGRyLCBwaHlzX2FkZHIgKyBzaXplLCAtMSwgJmZsYWdzKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIE5VTEw7CisKKwlyZXQgPSAodm9pZCAqKSBfX2lvcmVtYXBfY2FsbGVyKHBoeXNfYWRkciwgc2l6ZSwgZmxhZ3MsCisJCQkJCV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CisKKwlmcmVlX21lbXR5cGUocGh5c19hZGRyLCBwaHlzX2FkZHIgKyBzaXplKTsKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKXJldDsKK30KKwogLyoqCiAgKiBpb3VubWFwIC0gRnJlZSBhIElPIHJlbWFwcGluZwogICogQGFkZHI6IHZpcnR1YWwgYWRkcmVzcyBmcm9tIGlvcmVtYXBfKgpAQCAtMzE4LDEzICszNDgsMTUgQEAKIAkgKiB2bV9hcmVhIGFuZCBieSBzaW1wbHkgcmV0dXJuaW5nIGFuIGFkZHJlc3MgaW50byB0aGUga2VybmVsIG1hcHBpbmcKIAkgKiBvZiBJU0Egc3BhY2UuICAgU28gaGFuZGxlIHRoYXQgaGVyZS4KIAkgKi8KLQlpZiAoYWRkciA+PSBwaHlzX3RvX3ZpcnQoSVNBX1NUQVJUX0FERFJFU1MpICYmCi0JICAgIGFkZHIgPCBwaHlzX3RvX3ZpcnQoSVNBX0VORF9BRERSRVNTKSkKKwlpZiAoKHZvaWQgX19mb3JjZSAqKWFkZHIgPj0gcGh5c190b192aXJ0KElTQV9TVEFSVF9BRERSRVNTKSAmJgorCSAgICAodm9pZCBfX2ZvcmNlICopYWRkciA8IHBoeXNfdG9fdmlydChJU0FfRU5EX0FERFJFU1MpKQogCQlyZXR1cm47CiAKIAlhZGRyID0gKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqKQogCQkoUEFHRV9NQVNLICYgKHVuc2lnbmVkIGxvbmcgX19mb3JjZSlhZGRyKTsKIAorCW1taW90cmFjZV9pb3VubWFwKGFkZHIpOworCiAJLyogVXNlIHRoZSB2bSBhcmVhIHVubG9ja2VkLCBhc3N1bWluZyB0aGUgY2FsbGVyCiAJICAgZW5zdXJlcyB0aGVyZSBpc24ndCBhbm90aGVyIGlvdW5tYXAgZm9yIHRoZSBzYW1lIGFkZHJlc3MKIAkgICBpbiBwYXJhbGxlbC4gUmV1c2Ugb2YgdGhlIHZpcnR1YWwgYWRkcmVzcyBpcyBwcmV2ZW50ZWQgYnkKQEAgLTMzMiw3ICszNjQsNyBAQAogCSAgIGNwYSB0YWtlcyBjYXJlIG9mIHRoZSBkaXJlY3QgbWFwcGluZ3MuICovCiAJcmVhZF9sb2NrKCZ2bWxpc3RfbG9jayk7CiAJZm9yIChwID0gdm1saXN0OyBwOyBwID0gcC0+bmV4dCkgewotCQlpZiAocC0+YWRkciA9PSBhZGRyKQorCQlpZiAocC0+YWRkciA9PSAodm9pZCBfX2ZvcmNlICopYWRkcikKIAkJCWJyZWFrOwogCX0KIAlyZWFkX3VubG9jaygmdm1saXN0X2xvY2spOwpAQCAtMzQ2LDcgKzM3OCw3IEBACiAJZnJlZV9tZW10eXBlKHAtPnBoeXNfYWRkciwgcC0+cGh5c19hZGRyICsgZ2V0X3ZtX2FyZWFfc2l6ZShwKSk7CiAKIAkvKiBGaW5hbGx5IHJlbW92ZSBpdCAqLwotCW8gPSByZW1vdmVfdm1fYXJlYSgodm9pZCAqKWFkZHIpOworCW8gPSByZW1vdmVfdm1fYXJlYSgodm9pZCBfX2ZvcmNlICopYWRkcik7CiAJQlVHX09OKHAgIT0gbyB8fCBvID09IE5VTEwpOwogCWtmcmVlKHApOwogfQpAQCAtMzY1LDcgKzM5Nyw3IEBACiAJaWYgKHBhZ2VfaXNfcmFtKHN0YXJ0ID4+IFBBR0VfU0hJRlQpKQogCQlyZXR1cm4gX192YShwaHlzKTsKIAotCWFkZHIgPSAodm9pZCAqKWlvcmVtYXAoc3RhcnQsIFBBR0VfU0laRSk7CisJYWRkciA9ICh2b2lkIF9fZm9yY2UgKilpb3JlbWFwX2RlZmF1bHQoc3RhcnQsIFBBR0VfU0laRSk7CiAJaWYgKGFkZHIpCiAJCWFkZHIgPSAodm9pZCAqKSgodW5zaWduZWQgbG9uZylhZGRyIHwgKHBoeXMgJiB+UEFHRV9NQVNLKSk7CiAKQEAgLTM4MSw4ICs0MTMsNiBAQAogCXJldHVybjsKIH0KIAotI2lmZGVmIENPTkZJR19YODZfMzIKLQogaW50IF9faW5pdGRhdGEgZWFybHlfaW9yZW1hcF9kZWJ1ZzsKIAogc3RhdGljIGludCBfX2luaXQgZWFybHlfaW9yZW1hcF9kZWJ1Z19zZXR1cChjaGFyICpzdHIpCkBAIC0zOTQsOCArNDI0LDcgQEAKIGVhcmx5X3BhcmFtKCJlYXJseV9pb3JlbWFwX2RlYnVnIiwgZWFybHlfaW9yZW1hcF9kZWJ1Z19zZXR1cCk7CiAKIHN0YXRpYyBfX2luaXRkYXRhIGludCBhZnRlcl9wYWdpbmdfaW5pdDsKLXN0YXRpYyBwdGVfdCBibV9wdGVbUEFHRV9TSVpFL3NpemVvZihwdGVfdCldCi0JCV9fc2VjdGlvbiguYnNzLnBhZ2VfYWxpZ25lZCk7CitzdGF0aWMgcHRlX3QgYm1fcHRlW1BBR0VfU0laRS9zaXplb2YocHRlX3QpXSBfX3BhZ2VfYWxpZ25lZF9ic3M7CiAKIHN0YXRpYyBpbmxpbmUgcG1kX3QgKiBfX2luaXQgZWFybHlfaW9yZW1hcF9wbWQodW5zaWduZWQgbG9uZyBhZGRyKQogewpAQCAtNDg0LDEwICs1MTMsMTEgQEAKIAkJcmV0dXJuOwogCX0KIAlwdGUgPSBlYXJseV9pb3JlbWFwX3B0ZShhZGRyKTsKKwogCWlmIChwZ3Byb3RfdmFsKGZsYWdzKSkKIAkJc2V0X3B0ZShwdGUsIHBmbl9wdGUocGh5cyA+PiBQQUdFX1NISUZULCBmbGFncykpOwogCWVsc2UKLQkJcHRlX2NsZWFyKE5VTEwsIGFkZHIsIHB0ZSk7CisJCXB0ZV9jbGVhcigmaW5pdF9tbSwgYWRkciwgcHRlKTsKIAlfX2ZsdXNoX3RsYl9vbmUoYWRkcik7CiB9CiAKQEAgLTU5MywxMCArNjIzLDExIEBACiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJdW5zaWduZWQgaW50IG5ycGFnZXM7CiAJZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4OwotCXVuc2lnbmVkIGludCBuZXN0aW5nOworCWludCBuZXN0aW5nOwogCiAJbmVzdGluZyA9IC0tZWFybHlfaW9yZW1hcF9uZXN0ZWQ7Ci0JV0FSTl9PTihuZXN0aW5nIDwgMCk7CisJaWYgKFdBUk5fT04obmVzdGluZyA8IDApKQorCQlyZXR1cm47CiAKIAlpZiAoZWFybHlfaW9yZW1hcF9kZWJ1ZykgewogCQlwcmludGsoS0VSTl9JTkZPICJlYXJseV9pb3VubWFwKCVwLCAlMDhseCkgWyVkXVxuIiwgYWRkciwKQEAgLTYyNCw1ICs2NTUsMyBAQAogewogCVdBUk5fT04oMSk7CiB9Ci0KLSNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9rOHRvcG9sb2d5XzY0LmMgYi9hcmNoL3g4Ni9tbS9rOHRvcG9sb2d5XzY0LmMKaW5kZXggMWY0NzZlNC4uNDFmMWI1YyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vazh0b3BvbG9neV82NC5jCisrKyBiL2FyY2gveDg2L21tL2s4dG9wb2xvZ3lfNjQuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGFzbS9udW1hLmg+CiAjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9hcGljLmg+CisjaW5jbHVkZSA8YXNtL2s4Lmg+CiAKIHN0YXRpYyBfX2luaXQgaW50IGZpbmRfbm9ydGhicmlkZ2Uodm9pZCkKIHsKQEAgLTU2LDM0ICs1NywzMyBAQAogCS8qCiAJICogRmluZCBwb3NzaWJsZSBib290LXRpbWUgU01QIGNvbmZpZ3VyYXRpb246CiAJICovCisjaWZkZWYgQ09ORklHX1g4Nl9NUFBBUlNFCiAJZWFybHlfZmluZF9zbXBfY29uZmlnKCk7CisjZW5kaWYKICNpZmRlZiBDT05GSUdfQUNQSQogCS8qCiAJICogUmVhZCBBUElDIGluZm9ybWF0aW9uIGZyb20gQUNQSSB0YWJsZXMuCiAJICovCiAJZWFybHlfYWNwaV9ib290X2luaXQoKTsKICNlbmRpZgorI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQogCS8qCiAJICogZ2V0IGJvb3QtdGltZSBTTVAgY29uZmlndXJhdGlvbjoKIAkgKi8KIAlpZiAoc21wX2ZvdW5kX2NvbmZpZykKIAkJZWFybHlfZ2V0X3NtcF9jb25maWcoKTsKKyNlbmRpZgogCWVhcmx5X2luaXRfbGFwaWNfbWFwcGluZygpOwogfQogCiBpbnQgX19pbml0IGs4X3NjYW5fbm9kZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCiB7CisJdW5zaWduZWQgbnVtbm9kZXMsIGNvcmVzLCBiaXRzLCBhcGljaWRfYmFzZTsKIAl1bnNpZ25lZCBsb25nIHByZXZiYXNlOwogCXN0cnVjdCBib290bm9kZSBub2Rlc1s4XTsKLQlpbnQgbm9kZWlkLCBpLCBuYjsKIAl1bnNpZ25lZCBjaGFyIG5vZGVpZHNbOF07Ci0JaW50IGZvdW5kID0gMDsKLQl1MzIgcmVnOwotCXVuc2lnbmVkIG51bW5vZGVzOwotCXVuc2lnbmVkIGNvcmVzOwotCXVuc2lnbmVkIGJpdHM7Ci0JaW50IGo7Ci0JdW5zaWduZWQgYXBpY2lkX2Jhc2U7CisJaW50IGksIGosIG5iLCBmb3VuZCA9IDA7CisJdTMyIG5vZGVpZCwgcmVnOwogCiAJaWYgKCFlYXJseV9wY2lfYWxsb3dlZCgpKQogCQlyZXR1cm4gLTE7CkBAIC0xMDUsNyArMTA1LDYgQEAKIAlwcmV2YmFzZSA9IDA7CiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewogCQl1bnNpZ25lZCBsb25nIGJhc2UsIGxpbWl0OwotCQl1MzIgbm9kZWlkOwogCiAJCWJhc2UgPSByZWFkX3BjaV9jb25maWcoMCwgbmIsIDEsIDB4NDAgKyBpKjgpOwogCQlsaW1pdCA9IHJlYWRfcGNpX2NvbmZpZygwLCBuYiwgMSwgMHg0NCArIGkqOCk7CkBAIC0xNDQsOCArMTQzLDggQEAKIAkJbGltaXQgfD0gKDE8PDI0KS0xOwogCQlsaW1pdCsrOwogCi0JCWlmIChsaW1pdCA+IGVuZF9wZm4gPDwgUEFHRV9TSElGVCkKLQkJCWxpbWl0ID0gZW5kX3BmbiA8PCBQQUdFX1NISUZUOworCQlpZiAobGltaXQgPiBtYXhfcGZuIDw8IFBBR0VfU0hJRlQpCisJCQlsaW1pdCA9IG1heF9wZm4gPDwgUEFHRV9TSElGVDsKIAkJaWYgKGxpbWl0IDw9IGJhc2UpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0va21taW8uYyBiL2FyY2gveDg2L21tL2ttbWlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNkODIwMwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL2ttbWlvLmMKQEAgLTAsMCArMSw1MTAgQEAKKy8qIFN1cHBvcnQgZm9yIE1NSU8gcHJvYmVzLgorICogQmVuZml0IG1hbnkgY29kZSBmcm9tIGtwcm9iZXMKKyAqIChDKSAyMDAyIExvdWlzIFpodWFuZyA8bG91aXMuemh1YW5nQGludGVsLmNvbT4uCisgKiAgICAgMjAwNyBBbGV4YW5kZXIgRWljaG5lcgorICogICAgIDIwMDggUGVra2EgUGFhbGFuZW4gPHBxQGlraS5maT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3JjdWxpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3ByZWVtcHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZGVidWcuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8YXNtL2NhY2hlZmx1c2guaD4KKyNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5oPgorI2luY2x1ZGUgPGxpbnV4L21taW90cmFjZS5oPgorCisjZGVmaW5lIEtNTUlPX1BBR0VfSEFTSF9CSVRTIDQKKyNkZWZpbmUgS01NSU9fUEFHRV9UQUJMRV9TSVpFICgxIDw8IEtNTUlPX1BBR0VfSEFTSF9CSVRTKQorCitzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpyZWxlYXNlX25leHQ7CisJdW5zaWduZWQgbG9uZyBwYWdlOyAvKiBsb2NhdGlvbiBvZiB0aGUgZmF1bHQgcGFnZSAqLworCisJLyoKKwkgKiBOdW1iZXIgb2YgdGltZXMgdGhpcyBwYWdlIGhhcyBiZWVuIHJlZ2lzdGVyZWQgYXMgYSBwYXJ0CisJICogb2YgYSBwcm9iZS4gSWYgemVybywgcGFnZSBpcyBkaXNhcm1lZCBhbmQgdGhpcyBtYXkgYmUgZnJlZWQuCisJICogVXNlZCBvbmx5IGJ5IHdyaXRlcnMgKFJDVSkuCisJICovCisJaW50IGNvdW50OworfTsKKworc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSB7CisJc3RydWN0IHJjdV9oZWFkIHJjdTsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcmVsZWFzZV9saXN0OworfTsKKworc3RydWN0IGttbWlvX2NvbnRleHQgeworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpmcGFnZTsKKwlzdHJ1Y3Qga21taW9fcHJvYmUgKnByb2JlOworCXVuc2lnbmVkIGxvbmcgc2F2ZWRfZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBhZGRyOworCWludCBhY3RpdmU7Cit9OworCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGttbWlvX2xvY2spOworCisvKiBQcm90ZWN0ZWQgYnkga21taW9fbG9jayAqLwordW5zaWduZWQgaW50IGttbWlvX2NvdW50OworCisvKiBSZWFkLXByb3RlY3RlZCBieSBSQ1UsIHdyaXRlLXByb3RlY3RlZCBieSBrbW1pb19sb2NrLiAqLworc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQga21taW9fcGFnZV90YWJsZVtLTU1JT19QQUdFX1RBQkxFX1NJWkVdOworc3RhdGljIExJU1RfSEVBRChrbW1pb19wcm9iZXMpOworCitzdGF0aWMgc3RydWN0IGxpc3RfaGVhZCAqa21taW9fcGFnZV9saXN0KHVuc2lnbmVkIGxvbmcgcGFnZSkKK3sKKwlyZXR1cm4gJmttbWlvX3BhZ2VfdGFibGVbaGFzaF9sb25nKHBhZ2UsIEtNTUlPX1BBR0VfSEFTSF9CSVRTKV07Cit9CisKKy8qIEFjY2Vzc2VkIHBlci1jcHUgKi8KK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qga21taW9fY29udGV4dCwga21taW9fY3R4KTsKKworLyoKKyAqIHRoaXMgaXMgYmFzaWNhbGx5IGEgZHluYW1pYyBzdGFiYmluZyBwcm9ibGVtOgorICogQ291bGQgdXNlIHRoZSBleGlzdGluZyBwcmlvIHRyZWUgY29kZSBvcgorICogUG9zc2libGUgYmV0dGVyIGltcGxlbWVudGF0aW9uczoKKyAqIFRoZSBJbnRlcnZhbCBTa2lwIExpc3Q6IEEgRGF0YSBTdHJ1Y3R1cmUgZm9yIEZpbmRpbmcgQWxsIEludGVydmFscyBUaGF0CisgKiBPdmVybGFwIGEgUG9pbnQgKG1pZ2h0IGJlIHNpbXBsZSkKKyAqIFNwYWNlIEVmZmljaWVudCBEeW5hbWljIFN0YWJiaW5nIHdpdGggRmFzdCBRdWVyaWVzIC0gTWlra2VsIFRob3J1cAorICovCisvKiBHZXQgdGhlIGttbWlvIGF0IHRoaXMgYWRkciAoaWYgYW55KS4gWW91IG11c3QgYmUgaG9sZGluZyBSQ1UgcmVhZCBsb2NrLiAqLworc3RhdGljIHN0cnVjdCBrbW1pb19wcm9iZSAqZ2V0X2ttbWlvX3Byb2JlKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlzdHJ1Y3Qga21taW9fcHJvYmUgKnA7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UocCwgJmttbWlvX3Byb2JlcywgbGlzdCkgeworCQlpZiAoYWRkciA+PSBwLT5hZGRyICYmIGFkZHIgPD0gKHAtPmFkZHIgKyBwLT5sZW4pKQorCQkJcmV0dXJuIHA7CisJfQorCXJldHVybiBOVUxMOworfQorCisvKiBZb3UgbXVzdCBiZSBob2xkaW5nIFJDVSByZWFkIGxvY2suICovCitzdGF0aWMgc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKmdldF9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSkKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkOworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpwOworCisJcGFnZSAmPSBQQUdFX01BU0s7CisJaGVhZCA9IGttbWlvX3BhZ2VfbGlzdChwYWdlKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShwLCBoZWFkLCBsaXN0KSB7CisJCWlmIChwLT5wYWdlID09IHBhZ2UpCisJCQlyZXR1cm4gcDsKKwl9CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9wYWdlX3ByZXNlbnQodW5zaWduZWQgbG9uZyBhZGRyLCBib29sIHByZXNlbnQsCisJCQkJCQkJdW5zaWduZWQgaW50ICpwZ2xldmVsKQoreworCXB0ZXZhbF90IHB0ZXZhbDsKKwlwbWR2YWxfdCBwbWR2YWw7CisJdW5zaWduZWQgaW50IGxldmVsOworCXBtZF90ICpwbWQ7CisJcHRlX3QgKnB0ZSA9IGxvb2t1cF9hZGRyZXNzKGFkZHIsICZsZXZlbCk7CisKKwlpZiAoIXB0ZSkgeworCQlwcl9lcnIoImttbWlvOiBubyBwdGUgZm9yIHBhZ2UgMHglMDhseFxuIiwgYWRkcik7CisJCXJldHVybjsKKwl9CisKKwlpZiAocGdsZXZlbCkKKwkJKnBnbGV2ZWwgPSBsZXZlbDsKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFBHX0xFVkVMXzJNOgorCQlwbWQgPSAocG1kX3QgKilwdGU7CisJCXBtZHZhbCA9IHBtZF92YWwoKnBtZCkgJiB+X1BBR0VfUFJFU0VOVDsKKwkJaWYgKHByZXNlbnQpCisJCQlwbWR2YWwgfD0gX1BBR0VfUFJFU0VOVDsKKwkJc2V0X3BtZChwbWQsIF9fcG1kKHBtZHZhbCkpOworCQlicmVhazsKKworCWNhc2UgUEdfTEVWRUxfNEs6CisJCXB0ZXZhbCA9IHB0ZV92YWwoKnB0ZSkgJiB+X1BBR0VfUFJFU0VOVDsKKwkJaWYgKHByZXNlbnQpCisJCQlwdGV2YWwgfD0gX1BBR0VfUFJFU0VOVDsKKwkJc2V0X3B0ZV9hdG9taWMocHRlLCBfX3B0ZShwdGV2YWwpKTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlwcl9lcnIoImttbWlvOiB1bmV4cGVjdGVkIHBhZ2UgbGV2ZWwgMHgleC5cbiIsIGxldmVsKTsKKwkJcmV0dXJuOworCX0KKworCV9fZmx1c2hfdGxiX29uZShhZGRyKTsKK30KKworLyoqIE1hcmsgdGhlIGdpdmVuIHBhZ2UgYXMgbm90IHByZXNlbnQuIEFjY2VzcyB0byBpdCB3aWxsIHRyaWdnZXIgYSBmYXVsdC4gKi8KK3N0YXRpYyB2b2lkIGFybV9rbW1pb19mYXVsdF9wYWdlKHVuc2lnbmVkIGxvbmcgcGFnZSwgdW5zaWduZWQgaW50ICpwZ2xldmVsKQoreworCXNldF9wYWdlX3ByZXNlbnQocGFnZSAmIFBBR0VfTUFTSywgZmFsc2UsIHBnbGV2ZWwpOworfQorCisvKiogTWFyayB0aGUgZ2l2ZW4gcGFnZSBhcyBwcmVzZW50LiAqLworc3RhdGljIHZvaWQgZGlzYXJtX2ttbWlvX2ZhdWx0X3BhZ2UodW5zaWduZWQgbG9uZyBwYWdlLCB1bnNpZ25lZCBpbnQgKnBnbGV2ZWwpCit7CisJc2V0X3BhZ2VfcHJlc2VudChwYWdlICYgUEFHRV9NQVNLLCB0cnVlLCBwZ2xldmVsKTsKK30KKworLyoKKyAqIFRoaXMgaXMgYmVpbmcgY2FsbGVkIGZyb20gZG9fcGFnZV9mYXVsdCgpLgorICoKKyAqIFdlIG1heSBiZSBpbiBhbiBpbnRlcnJ1cHQgb3IgYSBjcml0aWNhbCBzZWN0aW9uLiBBbHNvIHByZWZlY3RoaW5nIG1heQorICogdHJpZ2dlciBhIHBhZ2UgZmF1bHQuIFdlIG1heSBiZSBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3Mgc3dpdGNoLgorICogV2UgY2Fubm90IHRha2UgYW55IGxvY2tzLCBiZWNhdXNlIHdlIGNvdWxkIGJlIGV4ZWN1dGluZyBlc3BlY2lhbGx5CisgKiB3aXRoaW4gYSBrbW1pbyBjcml0aWNhbCBzZWN0aW9uLgorICoKKyAqIExvY2FsIGludGVycnVwdHMgYXJlIGRpc2FibGVkLCBzbyBwcmVlbXB0aW9uIGNhbm5vdCBoYXBwZW4uCisgKiBEbyBub3QgZW5hYmxlIGludGVycnVwdHMsIGRvIG5vdCBzbGVlcCwgYW5kIHdhdGNoIG91dCBmb3Igb3RoZXIgQ1BVcy4KKyAqLworLyoKKyAqIEludGVycnVwdHMgYXJlIGRpc2FibGVkIG9uIGVudHJ5IGFzIHRyYXAzIGlzIGFuIGludGVycnVwdCBnYXRlCisgKiBhbmQgdGhleSByZW1haW4gZGlzYWJsZWQgdGhvcm91Z2ggb3V0IHRoaXMgZnVuY3Rpb24uCisgKi8KK2ludCBrbW1pb19oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RydWN0IGttbWlvX2NvbnRleHQgKmN0eDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqZmF1bHRwYWdlOworCWludCByZXQgPSAwOyAvKiBkZWZhdWx0IHRvIGZhdWx0IG5vdCBoYW5kbGVkICovCisKKwkvKgorCSAqIFByZWVtcHRpb24gaXMgbm93IGRpc2FibGVkIHRvIHByZXZlbnQgcHJvY2VzcyBzd2l0Y2ggZHVyaW5nCisJICogc2luZ2xlIHN0ZXBwaW5nLiBXZSBjYW4gb25seSBoYW5kbGUgb25lIGFjdGl2ZSBrbW1pbyB0cmFjZQorCSAqIHBlciBjcHUsIHNvIGVuc3VyZSB0aGF0IHdlIGZpbmlzaCBpdCBiZWZvcmUgc29tZXRoaW5nIGVsc2UKKwkgKiBnZXRzIHRvIHJ1bi4gV2UgYWxzbyBob2xkIHRoZSBSQ1UgcmVhZCBsb2NrIG92ZXIgc2luZ2xlCisJICogc3RlcHBpbmcgdG8gYXZvaWQgbG9va2luZyB1cCB0aGUgcHJvYmUgYW5kIGttbWlvX2ZhdWx0X3BhZ2UKKwkgKiBhZ2Fpbi4KKwkgKi8KKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlyY3VfcmVhZF9sb2NrKCk7CisKKwlmYXVsdHBhZ2UgPSBnZXRfa21taW9fZmF1bHRfcGFnZShhZGRyKTsKKwlpZiAoIWZhdWx0cGFnZSkgeworCQkvKgorCQkgKiBFaXRoZXIgdGhpcyBwYWdlIGZhdWx0IGlzIG5vdCBjYXVzZWQgYnkga21taW8sIG9yCisJCSAqIGFub3RoZXIgQ1BVIGp1c3QgcHVsbGVkIHRoZSBrbW1pbyBwcm9iZSBmcm9tIHVuZGVyCisJCSAqIG91ciBmZWV0LiBUaGUgbGF0dGVyIGNhc2Ugc2hvdWxkIG5vdCBiZSBwb3NzaWJsZS4KKwkJICovCisJCWdvdG8gbm9fa21taW87CisJfQorCisJY3R4ID0gJmdldF9jcHVfdmFyKGttbWlvX2N0eCk7CisJaWYgKGN0eC0+YWN0aXZlKSB7CisJCWRpc2FybV9rbW1pb19mYXVsdF9wYWdlKGZhdWx0cGFnZS0+cGFnZSwgTlVMTCk7CisJCWlmIChhZGRyID09IGN0eC0+YWRkcikgeworCQkJLyoKKwkJCSAqIE9uIFNNUCB3ZSBzb21ldGltZXMgZ2V0IHJlY3Vyc2l2ZSBwcm9iZSBoaXRzIG9uIHRoZQorCQkJICogc2FtZSBhZGRyZXNzLiBDb250ZXh0IGlzIGFscmVhZHkgc2F2ZWQsIGZhbGwgb3V0LgorCQkJICovCisJCQlwcl9kZWJ1Zygia21taW86IGR1cGxpY2F0ZSBwcm9iZSBoaXQgb24gQ1BVICVkLCBmb3IgIgorCQkJCQkJImFkZHJlc3MgMHglMDhseC5cbiIsCisJCQkJCQlzbXBfcHJvY2Vzc29yX2lkKCksIGFkZHIpOworCQkJcmV0ID0gMTsKKwkJCWdvdG8gbm9fa21taW9fY3R4OworCQl9CisJCS8qCisJCSAqIFByZXZlbnQgb3ZlcndyaXRpbmcgYWxyZWFkeSBpbi1mbGlnaHQgY29udGV4dC4KKwkJICogVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgbGV0J3MgaG9wZSBkaXNhcm1pbmcgYXQgbGVhc3QKKwkJICogcHJldmVudHMgYSBwYW5pYy4KKwkJICovCisJCXByX2VtZXJnKCJrbW1pbzogcmVjdXJzaXZlIHByb2JlIGhpdCBvbiBDUFUgJWQsICIKKwkJCQkJImZvciBhZGRyZXNzIDB4JTA4bHguIElnbm9yaW5nLlxuIiwKKwkJCQkJc21wX3Byb2Nlc3Nvcl9pZCgpLCBhZGRyKTsKKwkJcHJfZW1lcmcoImttbWlvOiBwcmV2aW91cyBoaXQgd2FzIGF0IDB4JTA4bHguXG4iLAorCQkJCQljdHgtPmFkZHIpOworCQlnb3RvIG5vX2ttbWlvX2N0eDsKKwl9CisJY3R4LT5hY3RpdmUrKzsKKworCWN0eC0+ZnBhZ2UgPSBmYXVsdHBhZ2U7CisJY3R4LT5wcm9iZSA9IGdldF9rbW1pb19wcm9iZShhZGRyKTsKKwljdHgtPnNhdmVkX2ZsYWdzID0gKHJlZ3MtPmZsYWdzICYgKFg4Nl9FRkxBR1NfVEYgfCBYODZfRUZMQUdTX0lGKSk7CisJY3R4LT5hZGRyID0gYWRkcjsKKworCWlmIChjdHgtPnByb2JlICYmIGN0eC0+cHJvYmUtPnByZV9oYW5kbGVyKQorCQljdHgtPnByb2JlLT5wcmVfaGFuZGxlcihjdHgtPnByb2JlLCByZWdzLCBhZGRyKTsKKworCS8qCisJICogRW5hYmxlIHNpbmdsZS1zdGVwcGluZyBhbmQgZGlzYWJsZSBpbnRlcnJ1cHRzIGZvciB0aGUgZmF1bHRpbmcKKwkgKiBjb250ZXh0LiBMb2NhbCBpbnRlcnJ1cHRzIG11c3Qgbm90IGdldCBlbmFibGVkIGR1cmluZyBzdGVwcGluZy4KKwkgKi8KKwlyZWdzLT5mbGFncyB8PSBYODZfRUZMQUdTX1RGOworCXJlZ3MtPmZsYWdzICY9IH5YODZfRUZMQUdTX0lGOworCisJLyogTm93IHdlIHNldCBwcmVzZW50IGJpdCBpbiBQVEUgYW5kIHNpbmdsZSBzdGVwLiAqLworCWRpc2FybV9rbW1pb19mYXVsdF9wYWdlKGN0eC0+ZnBhZ2UtPnBhZ2UsIE5VTEwpOworCisJLyoKKwkgKiBJZiBhbm90aGVyIGNwdSBhY2Nlc3NlcyB0aGUgc2FtZSBwYWdlIHdoaWxlIHdlIGFyZSBzdGVwcGluZywKKwkgKiB0aGUgYWNjZXNzIHdpbGwgbm90IGJlIGNhdWdodC4gSXQgd2lsbCBzaW1wbHkgc3VjY2VlZCBhbmQgdGhlCisJICogb25seSBkb3duc2lkZSBpcyB3ZSBsb3NlIHRoZSBldmVudC4gSWYgdGhpcyBiZWNvbWVzIGEgcHJvYmxlbSwKKwkgKiB0aGUgdXNlciBzaG91bGQgZHJvcCB0byBzaW5nbGUgY3B1IGJlZm9yZSB0cmFjaW5nLgorCSAqLworCisJcHV0X2NwdV92YXIoa21taW9fY3R4KTsKKwlyZXR1cm4gMTsgLyogZmF1bHQgaGFuZGxlZCAqLworCitub19rbW1pb19jdHg6CisJcHV0X2NwdV92YXIoa21taW9fY3R4KTsKK25vX2ttbWlvOgorCXJjdV9yZWFkX3VubG9jaygpOworCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogSW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgb24gZW50cnkgYXMgdHJhcDEgaXMgYW4gaW50ZXJydXB0IGdhdGUKKyAqIGFuZCB0aGV5IHJlbWFpbiBkaXNhYmxlZCB0aG9yb3VnaCBvdXQgdGhpcyBmdW5jdGlvbi4KKyAqIFRoaXMgbXVzdCBhbHdheXMgZ2V0IGNhbGxlZCBhcyB0aGUgcGFpciB0byBrbW1pb19oYW5kbGVyKCkuCisgKi8KK3N0YXRpYyBpbnQgcG9zdF9rbW1pb19oYW5kbGVyKHVuc2lnbmVkIGxvbmcgY29uZGl0aW9uLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKK3sKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3Qga21taW9fY29udGV4dCAqY3R4ID0gJmdldF9jcHVfdmFyKGttbWlvX2N0eCk7CisKKwlpZiAoIWN0eC0+YWN0aXZlKSB7CisJCXByX2RlYnVnKCJrbW1pbzogc3B1cmlvdXMgZGVidWcgdHJhcCBvbiBDUFUgJWQuXG4iLAorCQkJCQkJCXNtcF9wcm9jZXNzb3JfaWQoKSk7CisJCWdvdG8gb3V0OworCX0KKworCWlmIChjdHgtPnByb2JlICYmIGN0eC0+cHJvYmUtPnBvc3RfaGFuZGxlcikKKwkJY3R4LT5wcm9iZS0+cG9zdF9oYW5kbGVyKGN0eC0+cHJvYmUsIGNvbmRpdGlvbiwgcmVncyk7CisKKwlhcm1fa21taW9fZmF1bHRfcGFnZShjdHgtPmZwYWdlLT5wYWdlLCBOVUxMKTsKKworCXJlZ3MtPmZsYWdzICY9IH5YODZfRUZMQUdTX1RGOworCXJlZ3MtPmZsYWdzIHw9IGN0eC0+c2F2ZWRfZmxhZ3M7CisKKwkvKiBUaGVzZSB3ZXJlIGFjcXVpcmVkIGluIGttbWlvX2hhbmRsZXIoKS4gKi8KKwljdHgtPmFjdGl2ZS0tOworCUJVR19PTihjdHgtPmFjdGl2ZSk7CisJcmN1X3JlYWRfdW5sb2NrKCk7CisJcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOworCisJLyoKKwkgKiBpZiBzb21lYm9keSBlbHNlIGlzIHNpbmdsZXN0ZXBwaW5nIGFjcm9zcyBhIHByb2JlIHBvaW50LCBmbGFncworCSAqIHdpbGwgaGF2ZSBURiBzZXQsIGluIHdoaWNoIGNhc2UsIGNvbnRpbnVlIHRoZSByZW1haW5pbmcgcHJvY2Vzc2luZworCSAqIG9mIGRvX2RlYnVnLCBhcyBpZiB0aGlzIGlzIG5vdCBhIHByb2JlIGhpdC4KKwkgKi8KKwlpZiAoIShyZWdzLT5mbGFncyAmIFg4Nl9FRkxBR1NfVEYpKQorCQlyZXQgPSAxOworb3V0OgorCXB1dF9jcHVfdmFyKGttbWlvX2N0eCk7CisJcmV0dXJuIHJldDsKK30KKworLyogWW91IG11c3QgYmUgaG9sZGluZyBrbW1pb19sb2NrLiAqLworc3RhdGljIGludCBhZGRfa21taW9fZmF1bHRfcGFnZSh1bnNpZ25lZCBsb25nIHBhZ2UpCit7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKmY7CisKKwlwYWdlICY9IFBBR0VfTUFTSzsKKwlmID0gZ2V0X2ttbWlvX2ZhdWx0X3BhZ2UocGFnZSk7CisJaWYgKGYpIHsKKwkJaWYgKCFmLT5jb3VudCkKKwkJCWFybV9rbW1pb19mYXVsdF9wYWdlKGYtPnBhZ2UsIE5VTEwpOworCQlmLT5jb3VudCsrOworCQlyZXR1cm4gMDsKKwl9CisKKwlmID0ga21hbGxvYyhzaXplb2YoKmYpLCBHRlBfQVRPTUlDKTsKKwlpZiAoIWYpCisJCXJldHVybiAtMTsKKworCWYtPmNvdW50ID0gMTsKKwlmLT5wYWdlID0gcGFnZTsKKwlsaXN0X2FkZF9yY3UoJmYtPmxpc3QsIGttbWlvX3BhZ2VfbGlzdChmLT5wYWdlKSk7CisKKwlhcm1fa21taW9fZmF1bHRfcGFnZShmLT5wYWdlLCBOVUxMKTsKKworCXJldHVybiAwOworfQorCisvKiBZb3UgbXVzdCBiZSBob2xkaW5nIGttbWlvX2xvY2suICovCitzdGF0aWMgdm9pZCByZWxlYXNlX2ttbWlvX2ZhdWx0X3BhZ2UodW5zaWduZWQgbG9uZyBwYWdlLAorCQkJCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICoqcmVsZWFzZV9saXN0KQoreworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpmOworCisJcGFnZSAmPSBQQUdFX01BU0s7CisJZiA9IGdldF9rbW1pb19mYXVsdF9wYWdlKHBhZ2UpOworCWlmICghZikKKwkJcmV0dXJuOworCisJZi0+Y291bnQtLTsKKwlCVUdfT04oZi0+Y291bnQgPCAwKTsKKwlpZiAoIWYtPmNvdW50KSB7CisJCWRpc2FybV9rbW1pb19mYXVsdF9wYWdlKGYtPnBhZ2UsIE5VTEwpOworCQlmLT5yZWxlYXNlX25leHQgPSAqcmVsZWFzZV9saXN0OworCQkqcmVsZWFzZV9saXN0ID0gZjsKKwl9Cit9CisKKy8qCisgKiBXaXRoIHBhZ2UtdW5hbGlnbmVkIGlvcmVtYXBzLCBvbmUgb3IgdHdvIGFybWVkIHBhZ2VzIG1heSBjb250YWluCisgKiBhZGRyZXNzZXMgZnJvbSBvdXRzaWRlIHRoZSBpbnRlbmRlZCBtYXBwaW5nLiBFdmVudHMgZm9yIHRoZXNlIGFkZHJlc3NlcworICogYXJlIGN1cnJlbnRseSBzaWxlbnRseSBkcm9wcGVkLiBUaGUgZXZlbnRzIG1heSByZXN1bHQgb25seSBmcm9tIHByb2dyYW1taW5nCisgKiBtaXN0YWtlcyBieSBhY2Nlc3NpbmcgYWRkcmVzc2VzIGJlZm9yZSB0aGUgYmVnaW5uaW5nIG9yIHBhc3QgdGhlIGVuZCBvZiBhCisgKiBtYXBwaW5nLgorICovCitpbnQgcmVnaXN0ZXJfa21taW9fcHJvYmUoc3RydWN0IGttbWlvX3Byb2JlICpwKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJaW50IHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaXplID0gMDsKKwljb25zdCB1bnNpZ25lZCBsb25nIHNpemVfbGltID0gcC0+bGVuICsgKHAtPmFkZHIgJiB+UEFHRV9NQVNLKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZrbW1pb19sb2NrLCBmbGFncyk7CisJaWYgKGdldF9rbW1pb19wcm9iZShwLT5hZGRyKSkgeworCQlyZXQgPSAtRUVYSVNUOworCQlnb3RvIG91dDsKKwl9CisJa21taW9fY291bnQrKzsKKwlsaXN0X2FkZF9yY3UoJnAtPmxpc3QsICZrbW1pb19wcm9iZXMpOworCXdoaWxlIChzaXplIDwgc2l6ZV9saW0pIHsKKwkJaWYgKGFkZF9rbW1pb19mYXVsdF9wYWdlKHAtPmFkZHIgKyBzaXplKSkKKwkJCXByX2Vycigia21taW86IFVuYWJsZSB0byBzZXQgcGFnZSBmYXVsdC5cbiIpOworCQlzaXplICs9IFBBR0VfU0laRTsKKwl9CitvdXQ6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma21taW9fbG9jaywgZmxhZ3MpOworCS8qCisJICogWFhYOiBXaGF0IHNob3VsZCBJIGRvIGhlcmU/CisJICogSGVyZSB3YXMgYSBjYWxsIHRvIGdsb2JhbF9mbHVzaF90bGIoKSwgYnV0IGl0IGRvZXMgbm90IGV4aXN0CisJICogYW55bW9yZS4gSXQgc2VlbXMgaXQncyBub3QgbmVlZGVkIGFmdGVyIGFsbC4KKwkgKi8KKwlyZXR1cm4gcmV0OworfQorRVhQT1JUX1NZTUJPTChyZWdpc3Rlcl9rbW1pb19wcm9iZSk7CisKK3N0YXRpYyB2b2lkIHJjdV9mcmVlX2ttbWlvX2ZhdWx0X3BhZ2VzKHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKK3sKKwlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlICpkciA9IGNvbnRhaW5lcl9vZigKKwkJCQkJCWhlYWQsCisJCQkJCQlzdHJ1Y3Qga21taW9fZGVsYXllZF9yZWxlYXNlLAorCQkJCQkJcmN1KTsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqcCA9IGRyLT5yZWxlYXNlX2xpc3Q7CisJd2hpbGUgKHApIHsKKwkJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKm5leHQgPSBwLT5yZWxlYXNlX25leHQ7CisJCUJVR19PTihwLT5jb3VudCk7CisJCWtmcmVlKHApOworCQlwID0gbmV4dDsKKwl9CisJa2ZyZWUoZHIpOworfQorCitzdGF0aWMgdm9pZCByZW1vdmVfa21taW9fZmF1bHRfcGFnZXMoc3RydWN0IHJjdV9oZWFkICpoZWFkKQoreworCXN0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UgKmRyID0gY29udGFpbmVyX29mKAorCQkJCQkJaGVhZCwKKwkJCQkJCXN0cnVjdCBrbW1pb19kZWxheWVkX3JlbGVhc2UsCisJCQkJCQlyY3UpOworCXN0cnVjdCBrbW1pb19mYXVsdF9wYWdlICpwID0gZHItPnJlbGVhc2VfbGlzdDsKKwlzdHJ1Y3Qga21taW9fZmF1bHRfcGFnZSAqKnByZXZwID0gJmRyLT5yZWxlYXNlX2xpc3Q7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzcGluX2xvY2tfaXJxc2F2ZSgma21taW9fbG9jaywgZmxhZ3MpOworCXdoaWxlIChwKSB7CisJCWlmICghcC0+Y291bnQpCisJCQlsaXN0X2RlbF9yY3UoJnAtPmxpc3QpOworCQllbHNlCisJCQkqcHJldnAgPSBwLT5yZWxlYXNlX25leHQ7CisJCXByZXZwID0gJnAtPnJlbGVhc2VfbmV4dDsKKwkJcCA9IHAtPnJlbGVhc2VfbmV4dDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma21taW9fbG9jaywgZmxhZ3MpOworCS8qIFRoaXMgaXMgdGhlIHJlYWwgUkNVIGRlc3Ryb3kgY2FsbC4gKi8KKwljYWxsX3JjdSgmZHItPnJjdSwgcmN1X2ZyZWVfa21taW9fZmF1bHRfcGFnZXMpOworfQorCisvKgorICogUmVtb3ZlIGEga21taW8gcHJvYmUuIFlvdSBoYXZlIHRvIHN5bmNocm9uaXplX3JjdSgpIGJlZm9yZSB5b3UgY2FuIGJlCisgKiBzdXJlIHRoYXQgdGhlIGNhbGxiYWNrcyB3aWxsIG5vdCBiZSBjYWxsZWQgYW55bW9yZS4gT25seSBhZnRlciB0aGF0CisgKiB5b3UgbWF5IGFjdHVhbGx5IHJlbGVhc2UgeW91ciBzdHJ1Y3Qga21taW9fcHJvYmUuCisgKgorICogVW5yZWdpc3RlcmluZyBhIGttbWlvIGZhdWx0IHBhZ2UgaGFzIHRocmVlIHN0ZXBzOgorICogMS4gcmVsZWFzZV9rbW1pb19mYXVsdF9wYWdlKCkKKyAqICAgIERpc2FybSB0aGUgcGFnZSwgd2FpdCBhIGdyYWNlIHBlcmlvZCB0byBsZXQgYWxsIGZhdWx0cyBmaW5pc2guCisgKiAyLiByZW1vdmVfa21taW9fZmF1bHRfcGFnZXMoKQorICogICAgUmVtb3ZlIHRoZSBwYWdlcyBmcm9tIGttbWlvX3BhZ2VfdGFibGUuCisgKiAzLiByY3VfZnJlZV9rbW1pb19mYXVsdF9wYWdlcygpCisgKiAgICBBY3RhbGx5IGZyZWUgdGhlIGttbWlvX2ZhdWx0X3BhZ2Ugc3RydWN0cyBhcyB3aXRoIFJDVS4KKyAqLwordm9pZCB1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IDA7CisJY29uc3QgdW5zaWduZWQgbG9uZyBzaXplX2xpbSA9IHAtPmxlbiArIChwLT5hZGRyICYgflBBR0VfTUFTSyk7CisJc3RydWN0IGttbWlvX2ZhdWx0X3BhZ2UgKnJlbGVhc2VfbGlzdCA9IE5VTEw7CisJc3RydWN0IGttbWlvX2RlbGF5ZWRfcmVsZWFzZSAqZHJlbGVhc2U7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgma21taW9fbG9jaywgZmxhZ3MpOworCXdoaWxlIChzaXplIDwgc2l6ZV9saW0pIHsKKwkJcmVsZWFzZV9rbW1pb19mYXVsdF9wYWdlKHAtPmFkZHIgKyBzaXplLCAmcmVsZWFzZV9saXN0KTsKKwkJc2l6ZSArPSBQQUdFX1NJWkU7CisJfQorCWxpc3RfZGVsX3JjdSgmcC0+bGlzdCk7CisJa21taW9fY291bnQtLTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZrbW1pb19sb2NrLCBmbGFncyk7CisKKwlkcmVsZWFzZSA9IGttYWxsb2Moc2l6ZW9mKCpkcmVsZWFzZSksIEdGUF9BVE9NSUMpOworCWlmICghZHJlbGVhc2UpIHsKKwkJcHJfY3JpdCgia21taW86IGxlYWtpbmcga21taW9fZmF1bHRfcGFnZSBvYmplY3RzLlxuIik7CisJCXJldHVybjsKKwl9CisJZHJlbGVhc2UtPnJlbGVhc2VfbGlzdCA9IHJlbGVhc2VfbGlzdDsKKworCS8qCisJICogVGhpcyBpcyBub3QgcmVhbGx5IFJDVSBoZXJlLiBXZSBoYXZlIGp1c3QgZGlzYXJtZWQgYSBzZXQgb2YKKwkgKiBwYWdlcyBzbyB0aGF0IHRoZXkgY2Fubm90IHRyaWdnZXIgcGFnZSBmYXVsdHMgYW55bW9yZS4gSG93ZXZlciwKKwkgKiB3ZSBjYW5ub3QgcmVtb3ZlIHRoZSBwYWdlcyBmcm9tIGttbWlvX3BhZ2VfdGFibGUsCisJICogYmVjYXVzZSBhIHByb2JlIGhpdCBtaWdodCBiZSBpbiBmbGlnaHQgb24gYW5vdGhlciBDUFUuIFRoZQorCSAqIHBhZ2VzIGFyZSBjb2xsZWN0ZWQgaW50byBhIGxpc3QsIGFuZCB0aGV5IHdpbGwgYmUgcmVtb3ZlZCBmcm9tCisJICoga21taW9fcGFnZV90YWJsZSB3aGVuIGl0IGlzIGNlcnRhaW4gdGhhdCBubyBwcm9iZSBoaXQgcmVsYXRlZCB0bworCSAqIHRoZXNlIHBhZ2VzIGNhbiBiZSBpbiBmbGlnaHQuIFJDVSBncmFjZSBwZXJpb2Qgc291bmRzIGxpa2UgYQorCSAqIGdvb2QgY2hvaWNlLgorCSAqCisJICogSWYgd2UgcmVtb3ZlZCB0aGUgcGFnZXMgdG9vIGVhcmx5LCBrbW1pbyBwYWdlIGZhdWx0IGhhbmRsZXIgbWlnaHQKKwkgKiBub3QgZmluZCB0aGUgcmVzcGVjdGl2ZSBrbW1pb19mYXVsdF9wYWdlIGFuZCBkZXRlcm1pbmUgaXQncyBub3QKKwkgKiBhIGttbWlvIGZhdWx0LCB3aGVuIGl0IGFjdHVhbGx5IGlzLiBUaGlzIHdvdWxkIGxlYWQgdG8gbWFkbmVzcy4KKwkgKi8KKwljYWxsX3JjdSgmZHJlbGVhc2UtPnJjdSwgcmVtb3ZlX2ttbWlvX2ZhdWx0X3BhZ2VzKTsKK30KK0VYUE9SVF9TWU1CT0wodW5yZWdpc3Rlcl9rbW1pb19wcm9iZSk7CisKK3N0YXRpYyBpbnQga21taW9fZGllX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAorCQkJCQkJCQl2b2lkICphcmdzKQoreworCXN0cnVjdCBkaWVfYXJncyAqYXJnID0gYXJnczsKKworCWlmICh2YWwgPT0gRElFX0RFQlVHICYmIChhcmctPmVyciAmIERSX1NURVApKQorCQlpZiAocG9zdF9rbW1pb19oYW5kbGVyKGFyZy0+ZXJyLCBhcmctPnJlZ3MpID09IDEpCisJCQlyZXR1cm4gTk9USUZZX1NUT1A7CisKKwlyZXR1cm4gTk9USUZZX0RPTkU7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbmJfZGllID0geworCS5ub3RpZmllcl9jYWxsID0ga21taW9fZGllX25vdGlmaWVyCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpbml0X2ttbWlvKHZvaWQpCit7CisJaW50IGk7CisJZm9yIChpID0gMDsgaSA8IEtNTUlPX1BBR0VfVEFCTEVfU0laRTsgaSsrKQorCQlJTklUX0xJU1RfSEVBRCgma21taW9fcGFnZV90YWJsZVtpXSk7CisJcmV0dXJuIHJlZ2lzdGVyX2RpZV9ub3RpZmllcigmbmJfZGllKTsKK30KK2ZzX2luaXRjYWxsKGluaXRfa21taW8pOyAvKiBzaG91bGQgYmUgYmVmb3JlIGRldmljZV9pbml0Y2FsbCgpICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9tbWlvLW1vZC5jIGIvYXJjaC94ODYvbW0vbW1pby1tb2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzM5N2UxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vbW1pby1tb2QuYwpAQCAtMCwwICsxLDUxNSBAQAorLyoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgorICogQ29weXJpZ2h0IChDKSBJQk0gQ29ycG9yYXRpb24sIDIwMDUKKyAqICAgICAgICAgICAgICAgSmVmZiBNdWl6ZWxhYXIsIDIwMDYsIDIwMDcKKyAqICAgICAgICAgICAgICAgUGVra2EgUGFhbGFuZW4sIDIwMDggPHBxQGlraS5maT4KKyAqCisgKiBEZXJpdmVkIGZyb20gdGhlIHJlYWQtbW9kIGV4YW1wbGUgZnJvbSByZWxheS1leGFtcGxlcyBieSBUb20gWmFudXNzaS4KKyAqLworI2RlZmluZSBERUJVRyAxCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbWlvdHJhY2UuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPiAvKiBmb3IgSVNBX1NUQVJUX0FERFJFU1MgKi8KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvY3B1Lmg+CisKKyNpbmNsdWRlICJwZl9pbi5oIgorCisjZGVmaW5lIE5BTUUgIm1taW90cmFjZTogIgorCitzdHJ1Y3QgdHJhcF9yZWFzb24geworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKwl1bnNpZ25lZCBsb25nIGlwOworCWVudW0gcmVhc29uX3R5cGUgdHlwZTsKKwlpbnQgYWN0aXZlX3RyYWNlczsKK307CisKK3N0cnVjdCByZW1hcF90cmFjZSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCBrbW1pb19wcm9iZSBwcm9iZTsKKwlyZXNvdXJjZV9zaXplX3QgcGh5czsKKwl1bnNpZ25lZCBsb25nIGlkOworfTsKKworLyogQWNjZXNzZWQgcGVyLWNwdS4gKi8KK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdHJhcF9yZWFzb24sIHBmX3JlYXNvbik7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IG1taW90cmFjZV9ydywgY3B1X3RyYWNlKTsKKworI2lmIDAgLyogWFhYOiBubyB3YXkgZ2F0aGVyIHRoaXMgaW5mbyBhbnltb3JlICovCisvKiBBY2Nlc3MgdG8gdGhpcyBpcyBub3QgcGVyLWNwdS4gKi8KK3N0YXRpYyBERUZJTkVfUEVSX0NQVShhdG9taWNfdCwgZHJvcHBlZCk7CisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBkZW50cnkgKm1hcmtlcl9maWxlOworCitzdGF0aWMgREVGSU5FX01VVEVYKG1taW90cmFjZV9tdXRleCk7CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRyYWNlX2xvY2spOworc3RhdGljIGF0b21pY190IG1taW90cmFjZV9lbmFibGVkOworc3RhdGljIExJU1RfSEVBRCh0cmFjZV9saXN0KTsJCS8qIHN0cnVjdCByZW1hcF90cmFjZSAqLworCisvKgorICogTG9ja2luZyBpbiB0aGlzIGZpbGU6CisgKiAtIG1taW90cmFjZV9tdXRleCBlbmZvcmNlcyBlbmFibGUvZGlzYWJsZV9tbWlvdHJhY2UoKSBjcml0aWNhbCBzZWN0aW9ucy4KKyAqIC0gbW1pb3RyYWNlX2VuYWJsZWQgbWF5IGJlIG1vZGlmaWVkIG9ubHkgd2hlbiBob2xkaW5nIG1taW90cmFjZV9tdXRleAorICogICBhbmQgdHJhY2VfbG9jay4KKyAqIC0gUm91dGluZXMgZGVwZW5kaW5nIG9uIGlzX2VuYWJsZWQoKSBtdXN0IHRha2UgdHJhY2VfbG9jay4KKyAqIC0gdHJhY2VfbGlzdCB1c2VycyBtdXN0IGhvbGQgdHJhY2VfbG9jay4KKyAqIC0gaXNfZW5hYmxlZCgpIGd1YXJhbnRlZXMgdGhhdCBtbWlvX3RyYWNlX3JlY29yZCBpcyBhbGxvd2VkLgorICogLSBwcmUvcG9zdCBjYWxsYmFja3MgYXNzdW1lIHRoZSBlZmZlY3Qgb2YgaXNfZW5hYmxlZCgpIGJlaW5nIHRydWUuCisgKi8KKworLyogbW9kdWxlIHBhcmFtZXRlcnMgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nCWZpbHRlcl9vZmZzZXQ7CitzdGF0aWMgaW50CQlub21taW90cmFjZTsKK3N0YXRpYyBpbnQJCXRyYWNlX3BjOworCittb2R1bGVfcGFyYW0oZmlsdGVyX29mZnNldCwgdWxvbmcsIDApOworbW9kdWxlX3BhcmFtKG5vbW1pb3RyYWNlLCBib29sLCAwKTsKK21vZHVsZV9wYXJhbSh0cmFjZV9wYywgYm9vbCwgMCk7CisKK01PRFVMRV9QQVJNX0RFU0MoZmlsdGVyX29mZnNldCwgIlN0YXJ0IGFkZHJlc3Mgb2YgdHJhY2VkIG1hcHBpbmdzLiIpOworTU9EVUxFX1BBUk1fREVTQyhub21taW90cmFjZSwgIkRpc2FibGUgYWN0dWFsIE1NSU8gdHJhY2luZy4iKTsKK01PRFVMRV9QQVJNX0RFU0ModHJhY2VfcGMsICJSZWNvcmQgYWRkcmVzcyBvZiBmYXVsdGluZyBpbnN0cnVjdGlvbnMuIik7CisKK3N0YXRpYyBib29sIGlzX2VuYWJsZWQodm9pZCkKK3sKKwlyZXR1cm4gYXRvbWljX3JlYWQoJm1taW90cmFjZV9lbmFibGVkKTsKK30KKworI2lmIDAgLyogWFhYOiBuZWVkcyByZXdyaXRlICovCisvKgorICogV3JpdGUgY2FsbGJhY2sgZm9yIHRoZSBkZWJ1Z2ZzIGVudHJ5OgorICogUmVhZCBhIG1hcmtlciBhbmQgd3JpdGUgaXQgdG8gdGhlIG1taW8gdHJhY2UgbG9nCisgKi8KK3N0YXRpYyBzc2l6ZV90IHdyaXRlX21hcmtlcihzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZmZlciwKKwkJCQkJCXNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgKmV2ZW50ID0gTlVMTDsKKwlzdHJ1Y3QgbW1faW9faGVhZGVyICpoZWFkcDsKKwlzc2l6ZV90IGxlbiA9IChjb3VudCA+IDY1NTM1KSA/IDY1NTM1IDogY291bnQ7CisKKwlldmVudCA9IGt6YWxsb2Moc2l6ZW9mKCpoZWFkcCkgKyBsZW4sIEdGUF9LRVJORUwpOworCWlmICghZXZlbnQpCisJCXJldHVybiAtRU5PTUVNOworCisJaGVhZHAgPSAoc3RydWN0IG1tX2lvX2hlYWRlciAqKWV2ZW50OworCWhlYWRwLT50eXBlID0gTU1JT19NQUdJQyB8IChNTUlPX01BUktFUiA8PCBNTUlPX09QQ09ERV9TSElGVCk7CisJaGVhZHAtPmRhdGFfbGVuID0gbGVuOworCisJaWYgKGNvcHlfZnJvbV91c2VyKGV2ZW50ICsgc2l6ZW9mKCpoZWFkcCksIGJ1ZmZlciwgbGVuKSkgeworCQlrZnJlZShldmVudCk7CisJCXJldHVybiAtRUZBVUxUOworCX0KKworCXNwaW5fbG9ja19pcnEoJnRyYWNlX2xvY2spOworI2lmIDAgLyogWFhYOiBjb252ZXJ0IHRoaXMgdG8gdXNlIHRyYWNpbmcgKi8KKwlpZiAoaXNfZW5hYmxlZCgpKQorCQlyZWxheV93cml0ZShjaGFuLCBldmVudCwgc2l6ZW9mKCpoZWFkcCkgKyBsZW4pOworCWVsc2UKKyNlbmRpZgorCQlsZW4gPSAtRUlOVkFMOworCXNwaW5fdW5sb2NrX2lycSgmdHJhY2VfbG9jayk7CisJa2ZyZWUoZXZlbnQpOworCXJldHVybiBsZW47Cit9CisjZW5kaWYKKworc3RhdGljIHZvaWQgcHJpbnRfcHRlKHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKK3sKKwl1bnNpZ25lZCBpbnQgbGV2ZWw7CisJcHRlX3QgKnB0ZSA9IGxvb2t1cF9hZGRyZXNzKGFkZHJlc3MsICZsZXZlbCk7CisKKwlpZiAoIXB0ZSkgeworCQlwcl9lcnIoTkFNRSAiRXJyb3IgaW4gJXM6IG5vIHB0ZSBmb3IgcGFnZSAweCUwOGx4XG4iLAorCQkJCQkJCV9fZnVuY19fLCBhZGRyZXNzKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChsZXZlbCA9PSBQR19MRVZFTF8yTSkgeworCQlwcl9lbWVyZyhOQU1FICI0TUIgcGFnZXMgYXJlIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkOiAiCisJCQkJCQkJIjB4JTA4bHhcbiIsIGFkZHJlc3MpOworCQlCVUcoKTsKKwl9CisJcHJfaW5mbyhOQU1FICJwdGUgZm9yIDB4JWx4OiAweCVsbHggMHglbGx4XG4iLCBhZGRyZXNzLAorCQkodW5zaWduZWQgbG9uZyBsb25nKXB0ZV92YWwoKnB0ZSksCisJCSh1bnNpZ25lZCBsb25nIGxvbmcpcHRlX3ZhbCgqcHRlKSAmIF9QQUdFX1BSRVNFTlQpOworfQorCisvKgorICogRm9yIHNvbWUgcmVhc29uIHRoZSBwcmUvcG9zdCBwYWlycyBoYXZlIGJlZW4gY2FsbGVkIGluIGFuCisgKiB1bm1hdGNoZWQgb3JkZXIuIFJlcG9ydCBhbmQgZGllLgorICovCitzdGF0aWMgdm9pZCBkaWVfa21taW9fbmVzdGluZ19lcnJvcihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKQoreworCWNvbnN0IHN0cnVjdCB0cmFwX3JlYXNvbiAqbXlfcmVhc29uID0gJmdldF9jcHVfdmFyKHBmX3JlYXNvbik7CisJcHJfZW1lcmcoTkFNRSAidW5leHBlY3RlZCBmYXVsdCBmb3IgYWRkcmVzczogMHglMDhseCwgIgorCQkJCQkibGFzdCBmYXVsdCBmb3IgYWRkcmVzczogMHglMDhseFxuIiwKKwkJCQkJYWRkciwgbXlfcmVhc29uLT5hZGRyKTsKKwlwcmludF9wdGUoYWRkcik7CisJcHJpbnRfc3ltYm9sKEtFUk5fRU1FUkcgImZhdWx0aW5nIElQIGlzIGF0ICVzXG4iLCByZWdzLT5pcCk7CisJcHJpbnRfc3ltYm9sKEtFUk5fRU1FUkcgImxhc3QgZmF1bHRpbmcgSVAgd2FzIGF0ICVzXG4iLCBteV9yZWFzb24tPmlwKTsKKyNpZmRlZiBfX2kzODZfXworCXByX2VtZXJnKCJlYXg6ICUwOGx4ICAgZWJ4OiAlMDhseCAgIGVjeDogJTA4bHggICBlZHg6ICUwOGx4XG4iLAorCQkJcmVncy0+YXgsIHJlZ3MtPmJ4LCByZWdzLT5jeCwgcmVncy0+ZHgpOworCXByX2VtZXJnKCJlc2k6ICUwOGx4ICAgZWRpOiAlMDhseCAgIGVicDogJTA4bHggICBlc3A6ICUwOGx4XG4iLAorCQkJcmVncy0+c2ksIHJlZ3MtPmRpLCByZWdzLT5icCwgcmVncy0+c3ApOworI2Vsc2UKKwlwcl9lbWVyZygicmF4OiAlMDE2bHggICByY3g6ICUwMTZseCAgIHJkeDogJTAxNmx4XG4iLAorCQkJCQlyZWdzLT5heCwgcmVncy0+Y3gsIHJlZ3MtPmR4KTsKKwlwcl9lbWVyZygicnNpOiAlMDE2bHggICByZGk6ICUwMTZseCAgIHJicDogJTAxNmx4ICAgcnNwOiAlMDE2bHhcbiIsCisJCQkJcmVncy0+c2ksIHJlZ3MtPmRpLCByZWdzLT5icCwgcmVncy0+c3ApOworI2VuZGlmCisJcHV0X2NwdV92YXIocGZfcmVhc29uKTsKKwlCVUcoKTsKK30KKworc3RhdGljIHZvaWQgcHJlKHN0cnVjdCBrbW1pb19wcm9iZSAqcCwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCisJCQkJCQl1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJc3RydWN0IHRyYXBfcmVhc29uICpteV9yZWFzb24gPSAmZ2V0X2NwdV92YXIocGZfcmVhc29uKTsKKwlzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpteV90cmFjZSA9ICZnZXRfY3B1X3ZhcihjcHVfdHJhY2UpOworCWNvbnN0IHVuc2lnbmVkIGxvbmcgaW5zdHB0ciA9IGluc3RydWN0aW9uX3BvaW50ZXIocmVncyk7CisJY29uc3QgZW51bSByZWFzb25fdHlwZSB0eXBlID0gZ2V0X2luc190eXBlKGluc3RwdHIpOworCXN0cnVjdCByZW1hcF90cmFjZSAqdHJhY2UgPSBwLT5wcml2YXRlOworCisJLyogaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIGhhdmUgbW9yZSB0aGFuIG9uZSBhY3RpdmUgdHJhY2UgcGVyIGNwdSAqLworCWlmIChteV9yZWFzb24tPmFjdGl2ZV90cmFjZXMpCisJCWRpZV9rbW1pb19uZXN0aW5nX2Vycm9yKHJlZ3MsIGFkZHIpOworCWVsc2UKKwkJbXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzKys7CisKKwlteV9yZWFzb24tPnR5cGUgPSB0eXBlOworCW15X3JlYXNvbi0+YWRkciA9IGFkZHI7CisJbXlfcmVhc29uLT5pcCA9IGluc3RwdHI7CisKKwlteV90cmFjZS0+cGh5cyA9IGFkZHIgLSB0cmFjZS0+cHJvYmUuYWRkciArIHRyYWNlLT5waHlzOworCW15X3RyYWNlLT5tYXBfaWQgPSB0cmFjZS0+aWQ7CisKKwkvKgorCSAqIE9ubHkgcmVjb3JkIHRoZSBwcm9ncmFtIGNvdW50ZXIgd2hlbiByZXF1ZXN0ZWQuCisJICogSXQgbWF5IHRhaW50IGNsZWFuLXJvb20gcmV2ZXJzZSBlbmdpbmVlcmluZy4KKwkgKi8KKwlpZiAodHJhY2VfcGMpCisJCW15X3RyYWNlLT5wYyA9IGluc3RwdHI7CisJZWxzZQorCQlteV90cmFjZS0+cGMgPSAwOworCisJLyoKKwkgKiBYWFg6IHRoZSB0aW1lc3RhbXAgcmVjb3JkZWQgd2lsbCBiZSAqYWZ0ZXIqIHRoZSB0cmFjaW5nIGhhcyBiZWVuCisJICogZG9uZSwgbm90IGF0IHRoZSB0aW1lIHdlIGhpdCB0aGUgaW5zdHJ1Y3Rpb24uIFNNUCBpbXBsaWNhdGlvbnMKKwkgKiBvbiBldmVudCBvcmRlcmluZz8KKwkgKi8KKworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgUkVHX1JFQUQ6CisJCW15X3RyYWNlLT5vcGNvZGUgPSBNTUlPX1JFQUQ7CisJCW15X3RyYWNlLT53aWR0aCA9IGdldF9pbnNfbWVtX3dpZHRoKGluc3RwdHIpOworCQlicmVhazsKKwljYXNlIFJFR19XUklURToKKwkJbXlfdHJhY2UtPm9wY29kZSA9IE1NSU9fV1JJVEU7CisJCW15X3RyYWNlLT53aWR0aCA9IGdldF9pbnNfbWVtX3dpZHRoKGluc3RwdHIpOworCQlteV90cmFjZS0+dmFsdWUgPSBnZXRfaW5zX3JlZ192YWwoaW5zdHB0ciwgcmVncyk7CisJCWJyZWFrOworCWNhc2UgSU1NX1dSSVRFOgorCQlteV90cmFjZS0+b3Bjb2RlID0gTU1JT19XUklURTsKKwkJbXlfdHJhY2UtPndpZHRoID0gZ2V0X2luc19tZW1fd2lkdGgoaW5zdHB0cik7CisJCW15X3RyYWNlLT52YWx1ZSA9IGdldF9pbnNfaW1tX3ZhbChpbnN0cHRyKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJeworCQkJdW5zaWduZWQgY2hhciAqaXAgPSAodW5zaWduZWQgY2hhciAqKWluc3RwdHI7CisJCQlteV90cmFjZS0+b3Bjb2RlID0gTU1JT19VTktOT1dOX09QOworCQkJbXlfdHJhY2UtPndpZHRoID0gMDsKKwkJCW15X3RyYWNlLT52YWx1ZSA9ICgqaXApIDw8IDE2IHwgKihpcCArIDEpIDw8IDggfAorCQkJCQkJCQkqKGlwICsgMik7CisJCX0KKwl9CisJcHV0X2NwdV92YXIoY3B1X3RyYWNlKTsKKwlwdXRfY3B1X3ZhcihwZl9yZWFzb24pOworfQorCitzdGF0aWMgdm9pZCBwb3N0KHN0cnVjdCBrbW1pb19wcm9iZSAqcCwgdW5zaWduZWQgbG9uZyBjb25kaXRpb24sCisJCQkJCQkJc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IHRyYXBfcmVhc29uICpteV9yZWFzb24gPSAmZ2V0X2NwdV92YXIocGZfcmVhc29uKTsKKwlzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpteV90cmFjZSA9ICZnZXRfY3B1X3ZhcihjcHVfdHJhY2UpOworCisJLyogdGhpcyBzaG91bGQgYWx3YXlzIHJldHVybiB0aGUgYWN0aXZlX3RyYWNlIGNvdW50IHRvIDAgKi8KKwlteV9yZWFzb24tPmFjdGl2ZV90cmFjZXMtLTsKKwlpZiAobXlfcmVhc29uLT5hY3RpdmVfdHJhY2VzKSB7CisJCXByX2VtZXJnKE5BTUUgInVuZXhwZWN0ZWQgcG9zdCBoYW5kbGVyIik7CisJCUJVRygpOworCX0KKworCXN3aXRjaCAobXlfcmVhc29uLT50eXBlKSB7CisJY2FzZSBSRUdfUkVBRDoKKwkJbXlfdHJhY2UtPnZhbHVlID0gZ2V0X2luc19yZWdfdmFsKG15X3JlYXNvbi0+aXAsIHJlZ3MpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwltbWlvX3RyYWNlX3J3KG15X3RyYWNlKTsKKwlwdXRfY3B1X3ZhcihjcHVfdHJhY2UpOworCXB1dF9jcHVfdmFyKHBmX3JlYXNvbik7Cit9CisKK3N0YXRpYyB2b2lkIGlvcmVtYXBfdHJhY2VfY29yZShyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJCQkJdm9pZCBfX2lvbWVtICphZGRyKQoreworCXN0YXRpYyBhdG9taWNfdCBuZXh0X2lkOworCXN0cnVjdCByZW1hcF90cmFjZSAqdHJhY2UgPSBrbWFsbG9jKHNpemVvZigqdHJhY2UpLCBHRlBfS0VSTkVMKTsKKwkvKiBUaGVzZSBhcmUgcGFnZS11bmFsaWduZWQuICovCisJc3RydWN0IG1taW90cmFjZV9tYXAgbWFwID0geworCQkucGh5cyA9IG9mZnNldCwKKwkJLnZpcnQgPSAodW5zaWduZWQgbG9uZylhZGRyLAorCQkubGVuID0gc2l6ZSwKKwkJLm9wY29kZSA9IE1NSU9fUFJPQkUKKwl9OworCisJaWYgKCF0cmFjZSkgeworCQlwcl9lcnIoTkFNRSAia21hbGxvYyBmYWlsZWQgaW4gaW9yZW1hcFxuIik7CisJCXJldHVybjsKKwl9CisKKwkqdHJhY2UgPSAoc3RydWN0IHJlbWFwX3RyYWNlKSB7CisJCS5wcm9iZSA9IHsKKwkJCS5hZGRyID0gKHVuc2lnbmVkIGxvbmcpYWRkciwKKwkJCS5sZW4gPSBzaXplLAorCQkJLnByZV9oYW5kbGVyID0gcHJlLAorCQkJLnBvc3RfaGFuZGxlciA9IHBvc3QsCisJCQkucHJpdmF0ZSA9IHRyYWNlCisJCX0sCisJCS5waHlzID0gb2Zmc2V0LAorCQkuaWQgPSBhdG9taWNfaW5jX3JldHVybigmbmV4dF9pZCkKKwl9OworCW1hcC5tYXBfaWQgPSB0cmFjZS0+aWQ7CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlpZiAoIWlzX2VuYWJsZWQoKSkKKwkJZ290byBub3RfZW5hYmxlZDsKKworCW1taW9fdHJhY2VfbWFwcGluZygmbWFwKTsKKwlsaXN0X2FkZF90YWlsKCZ0cmFjZS0+bGlzdCwgJnRyYWNlX2xpc3QpOworCWlmICghbm9tbWlvdHJhY2UpCisJCXJlZ2lzdGVyX2ttbWlvX3Byb2JlKCZ0cmFjZS0+cHJvYmUpOworCitub3RfZW5hYmxlZDoKKwlzcGluX3VubG9ja19pcnEoJnRyYWNlX2xvY2spOworfQorCit2b2lkIG1taW90cmFjZV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkJCXZvaWQgX19pb21lbSAqYWRkcikKK3sKKwlpZiAoIWlzX2VuYWJsZWQoKSkgLyogcmVjaGVjayBhbmQgcHJvcGVyIGxvY2tpbmcgaW4gKl9jb3JlKCkgKi8KKwkJcmV0dXJuOworCisJcHJfZGVidWcoTkFNRSAiaW9yZW1hcF8qKDB4JWxseCwgMHglbHgpID0gJXBcbiIsCisJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylvZmZzZXQsIHNpemUsIGFkZHIpOworCWlmICgoZmlsdGVyX29mZnNldCkgJiYgKG9mZnNldCAhPSBmaWx0ZXJfb2Zmc2V0KSkKKwkJcmV0dXJuOworCWlvcmVtYXBfdHJhY2VfY29yZShvZmZzZXQsIHNpemUsIGFkZHIpOworfQorCitzdGF0aWMgdm9pZCBpb3VubWFwX3RyYWNlX2NvcmUodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQoreworCXN0cnVjdCBtbWlvdHJhY2VfbWFwIG1hcCA9IHsKKwkJLnBoeXMgPSAwLAorCQkudmlydCA9ICh1bnNpZ25lZCBsb25nKWFkZHIsCisJCS5sZW4gPSAwLAorCQkub3Bjb2RlID0gTU1JT19VTlBST0JFCisJfTsKKwlzdHJ1Y3QgcmVtYXBfdHJhY2UgKnRyYWNlOworCXN0cnVjdCByZW1hcF90cmFjZSAqdG1wOworCXN0cnVjdCByZW1hcF90cmFjZSAqZm91bmRfdHJhY2UgPSBOVUxMOworCisJcHJfZGVidWcoTkFNRSAiVW5tYXBwaW5nICVwLlxuIiwgYWRkcik7CisKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlpZiAoIWlzX2VuYWJsZWQoKSkKKwkJZ290byBub3RfZW5hYmxlZDsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0cmFjZSwgdG1wLCAmdHJhY2VfbGlzdCwgbGlzdCkgeworCQlpZiAoKHVuc2lnbmVkIGxvbmcpYWRkciA9PSB0cmFjZS0+cHJvYmUuYWRkcikgeworCQkJaWYgKCFub21taW90cmFjZSkKKwkJCQl1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKCZ0cmFjZS0+cHJvYmUpOworCQkJbGlzdF9kZWwoJnRyYWNlLT5saXN0KTsKKwkJCWZvdW5kX3RyYWNlID0gdHJhY2U7CisJCQlicmVhazsKKwkJfQorCX0KKwltYXAubWFwX2lkID0gKGZvdW5kX3RyYWNlKSA/IGZvdW5kX3RyYWNlLT5pZCA6IC0xOworCW1taW9fdHJhY2VfbWFwcGluZygmbWFwKTsKKworbm90X2VuYWJsZWQ6CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlpZiAoZm91bmRfdHJhY2UpIHsKKwkJc3luY2hyb25pemVfcmN1KCk7IC8qIHVucmVnaXN0ZXJfa21taW9fcHJvYmUoKSByZXF1aXJlbWVudCAqLworCQlrZnJlZShmb3VuZF90cmFjZSk7CisJfQorfQorCit2b2lkIG1taW90cmFjZV9pb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKK3sKKwltaWdodF9zbGVlcCgpOworCWlmIChpc19lbmFibGVkKCkpIC8qIHJlY2hlY2sgYW5kIHByb3BlciBsb2NraW5nIGluICpfY29yZSgpICovCisJCWlvdW5tYXBfdHJhY2VfY29yZShhZGRyKTsKK30KKworc3RhdGljIHZvaWQgY2xlYXJfdHJhY2VfbGlzdCh2b2lkKQoreworCXN0cnVjdCByZW1hcF90cmFjZSAqdHJhY2U7CisJc3RydWN0IHJlbWFwX3RyYWNlICp0bXA7CisKKwkvKgorCSAqIE5vIGxvY2tpbmcgcmVxdWlyZWQsIGJlY2F1c2UgdGhlIGNhbGxlciBlbnN1cmVzIHdlIGFyZSBpbiBhCisJICogY3JpdGljYWwgc2VjdGlvbiB2aWEgbXV0ZXgsIGFuZCBpc19lbmFibGVkKCkgaXMgZmFsc2UsCisJICogaS5lLiBub3RoaW5nIGNhbiB0cmF2ZXJzZSBvciBtb2RpZnkgdGhpcyBsaXN0LgorCSAqIENhbGxlciBhbHNvIGVuc3VyZXMgaXNfZW5hYmxlZCgpIGNhbm5vdCBjaGFuZ2UuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0cmFjZSwgJnRyYWNlX2xpc3QsIGxpc3QpIHsKKwkJcHJfbm90aWNlKE5BTUUgInB1cmdpbmcgbm9uLWlvdW5tYXBwZWQgIgorCQkJCQkidHJhY2UgQDB4JTA4bHgsIHNpemUgMHglbHguXG4iLAorCQkJCQl0cmFjZS0+cHJvYmUuYWRkciwgdHJhY2UtPnByb2JlLmxlbik7CisJCWlmICghbm9tbWlvdHJhY2UpCisJCQl1bnJlZ2lzdGVyX2ttbWlvX3Byb2JlKCZ0cmFjZS0+cHJvYmUpOworCX0KKwlzeW5jaHJvbml6ZV9yY3UoKTsgLyogdW5yZWdpc3Rlcl9rbW1pb19wcm9iZSgpIHJlcXVpcmVtZW50ICovCisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodHJhY2UsIHRtcCwgJnRyYWNlX2xpc3QsIGxpc3QpIHsKKwkJbGlzdF9kZWwoJnRyYWNlLT5saXN0KTsKKwkJa2ZyZWUodHJhY2UpOworCX0KK30KKworI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQorc3RhdGljIGNwdW1hc2tfdCBkb3duZWRfY3B1czsKKworc3RhdGljIHZvaWQgZW50ZXJfdW5pcHJvY2Vzc29yKHZvaWQpCit7CisJaW50IGNwdTsKKwlpbnQgZXJyOworCisJZ2V0X29ubGluZV9jcHVzKCk7CisJZG93bmVkX2NwdXMgPSBjcHVfb25saW5lX21hcDsKKwljcHVfY2xlYXIoZmlyc3RfY3B1KGNwdV9vbmxpbmVfbWFwKSwgZG93bmVkX2NwdXMpOworCWlmIChudW1fb25saW5lX2NwdXMoKSA+IDEpCisJCXByX25vdGljZShOQU1FICJEaXNhYmxpbmcgbm9uLWJvb3QgQ1BVcy4uLlxuIik7CisJcHV0X29ubGluZV9jcHVzKCk7CisKKwlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIGRvd25lZF9jcHVzKSB7CisJCWVyciA9IGNwdV9kb3duKGNwdSk7CisJCWlmICghZXJyKQorCQkJcHJfaW5mbyhOQU1FICJDUFUlZCBpcyBkb3duLlxuIiwgY3B1KTsKKwkJZWxzZQorCQkJcHJfZXJyKE5BTUUgIkVycm9yIHRha2luZyBDUFUlZCBkb3duOiAlZFxuIiwgY3B1LCBlcnIpOworCX0KKwlpZiAobnVtX29ubGluZV9jcHVzKCkgPiAxKQorCQlwcl93YXJuaW5nKE5BTUUgIm11bHRpcGxlIENQVXMgc3RpbGwgb25saW5lLCAiCisJCQkJCQkibWF5IG1pc3MgZXZlbnRzLlxuIik7Cit9CisKK3N0YXRpYyB2b2lkIGxlYXZlX3VuaXByb2Nlc3Nvcih2b2lkKQoreworCWludCBjcHU7CisJaW50IGVycjsKKworCWlmIChjcHVzX3dlaWdodChkb3duZWRfY3B1cykgPT0gMCkKKwkJcmV0dXJuOworCXByX25vdGljZShOQU1FICJSZS1lbmFibGluZyBDUFVzLi4uXG4iKTsKKwlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIGRvd25lZF9jcHVzKSB7CisJCWVyciA9IGNwdV91cChjcHUpOworCQlpZiAoIWVycikKKwkJCXByX2luZm8oTkFNRSAiZW5hYmxlZCBDUFUlZC5cbiIsIGNwdSk7CisJCWVsc2UKKwkJCXByX2VycihOQU1FICJjYW5ub3QgcmUtZW5hYmxlIENQVSVkOiAlZFxuIiwgY3B1LCBlcnIpOworCX0KK30KKworI2Vsc2UgLyogIUNPTkZJR19IT1RQTFVHX0NQVSAqLworc3RhdGljIHZvaWQgZW50ZXJfdW5pcHJvY2Vzc29yKHZvaWQpCit7CisJaWYgKG51bV9vbmxpbmVfY3B1cygpID4gMSkKKwkJcHJfd2FybmluZyhOQU1FICJtdWx0aXBsZSBDUFVzIGFyZSBvbmxpbmUsIG1heSBtaXNzIGV2ZW50cy4gIgorCQkJIlN1Z2dlc3QgYm9vdGluZyB3aXRoIG1heGNwdXM9MSBrZXJuZWwgYXJndW1lbnQuXG4iKTsKK30KKworc3RhdGljIHZvaWQgbGVhdmVfdW5pcHJvY2Vzc29yKHZvaWQpCit7Cit9CisjZW5kaWYKKworI2lmIDAgLyogWFhYOiBvdXQgb2Ygb3JkZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZvcHNfbWFya2VyID0geworCS5vd25lciA9CVRISVNfTU9EVUxFLAorCS53cml0ZSA9CXdyaXRlX21hcmtlcgorfTsKKyNlbmRpZgorCit2b2lkIGVuYWJsZV9tbWlvdHJhY2Uodm9pZCkKK3sKKwltdXRleF9sb2NrKCZtbWlvdHJhY2VfbXV0ZXgpOworCWlmIChpc19lbmFibGVkKCkpCisJCWdvdG8gb3V0OworCisjaWYgMCAvKiBYWFg6IHRyYWNpbmcgZG9lcyBub3Qgc3VwcG9ydCB0ZXh0IGVudHJpZXMgKi8KKwltYXJrZXJfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoIm1hcmtlciIsIDA2NjAsIGRpciwgTlVMTCwKKwkJCQkJCQkJJmZvcHNfbWFya2VyKTsKKwlpZiAoIW1hcmtlcl9maWxlKQorCQlwcl9lcnIoTkFNRSAibWFya2VyIGZpbGUgY3JlYXRpb24gZmFpbGVkLlxuIik7CisjZW5kaWYKKworCWlmIChub21taW90cmFjZSkKKwkJcHJfaW5mbyhOQU1FICJNTUlPIHRyYWNpbmcgZGlzYWJsZWQuXG4iKTsKKwllbnRlcl91bmlwcm9jZXNzb3IoKTsKKwlzcGluX2xvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlhdG9taWNfaW5jKCZtbWlvdHJhY2VfZW5hYmxlZCk7CisJc3Bpbl91bmxvY2tfaXJxKCZ0cmFjZV9sb2NrKTsKKwlwcl9pbmZvKE5BTUUgImVuYWJsZWQuXG4iKTsKK291dDoKKwltdXRleF91bmxvY2soJm1taW90cmFjZV9tdXRleCk7Cit9CisKK3ZvaWQgZGlzYWJsZV9tbWlvdHJhY2Uodm9pZCkKK3sKKwltdXRleF9sb2NrKCZtbWlvdHJhY2VfbXV0ZXgpOworCWlmICghaXNfZW5hYmxlZCgpKQorCQlnb3RvIG91dDsKKworCXNwaW5fbG9ja19pcnEoJnRyYWNlX2xvY2spOworCWF0b21pY19kZWMoJm1taW90cmFjZV9lbmFibGVkKTsKKwlCVUdfT04oaXNfZW5hYmxlZCgpKTsKKwlzcGluX3VubG9ja19pcnEoJnRyYWNlX2xvY2spOworCisJY2xlYXJfdHJhY2VfbGlzdCgpOyAvKiBndWFyYW50ZWVzOiBubyBtb3JlIGttbWlvIGNhbGxiYWNrcyAqLworCWxlYXZlX3VuaXByb2Nlc3NvcigpOworCWlmIChtYXJrZXJfZmlsZSkgeworCQlkZWJ1Z2ZzX3JlbW92ZShtYXJrZXJfZmlsZSk7CisJCW1hcmtlcl9maWxlID0gTlVMTDsKKwl9CisKKwlwcl9pbmZvKE5BTUUgImRpc2FibGVkLlxuIik7CitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZtbWlvdHJhY2VfbXV0ZXgpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vbnVtYV82NC5jIGIvYXJjaC94ODYvbW0vbnVtYV82NC5jCmluZGV4IGM1MDY2ZDUuLmI0MzJkNTcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL251bWFfNjQuYworKysgYi9hcmNoL3g4Ni9tbS9udW1hXzY0LmMKQEAgLTI3LDMwICsyNywxNyBAQAogc3RydWN0IHBnbGlzdF9kYXRhICpub2RlX2RhdGFbTUFYX05VTU5PREVTXSBfX3JlYWRfbW9zdGx5OwogRVhQT1JUX1NZTUJPTChub2RlX2RhdGEpOwogCi1ib290bWVtX2RhdGFfdCBwbGF0X25vZGVfYmRhdGFbTUFYX05VTU5PREVTXTsKK3N0YXRpYyBib290bWVtX2RhdGFfdCBwbGF0X25vZGVfYmRhdGFbTUFYX05VTU5PREVTXTsKIAogc3RydWN0IG1lbW5vZGUgbWVtbm9kZTsKIAotI2lmZGVmIENPTkZJR19TTVAKLWludCB4ODZfY3B1X3RvX25vZGVfbWFwX2luaXRbTlJfQ1BVU10gPSB7Ci0JWzAgLi4uIE5SX0NQVVMtMV0gPSBOVU1BX05PX05PREUKLX07Ci12b2lkICp4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cjsKLUVYUE9SVF9TWU1CT0woeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHIpOwotI2VuZGlmCi1ERUZJTkVfUEVSX0NQVShpbnQsIHg4Nl9jcHVfdG9fbm9kZV9tYXApID0gTlVNQV9OT19OT0RFOwotRVhQT1JUX1BFUl9DUFVfU1lNQk9MKHg4Nl9jcHVfdG9fbm9kZV9tYXApOwotCiBzMTYgYXBpY2lkX3RvX25vZGVbTUFYX0xPQ0FMX0FQSUNdIF9fY3B1aW5pdGRhdGEgPSB7CiAJWzAgLi4uIE1BWF9MT0NBTF9BUElDLTFdID0gTlVNQV9OT19OT0RFCiB9OwogCi1jcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrX21hcFtNQVhfTlVNTk9ERVNdIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKG5vZGVfdG9fY3B1bWFza19tYXApOwotCiBpbnQgbnVtYV9vZmYgX19pbml0ZGF0YTsKLXVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBub2RlbWFwX2FkZHI7Ci11bnNpZ25lZCBsb25nIF9faW5pdGRhdGEgbm9kZW1hcF9zaXplOworc3RhdGljIHVuc2lnbmVkIGxvbmcgX19pbml0ZGF0YSBub2RlbWFwX2FkZHI7CitzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIG5vZGVtYXBfc2l6ZTsKIAogLyoKICAqIEdpdmVuIGEgc2hpZnQgdmFsdWUsIHRyeSB0byBwb3B1bGF0ZSBtZW1ub2RlbWFwW10KQEAgLTk5LDcgKzg2LDcgQEAKIAogCWFkZHIgPSAweDgwMDA7CiAJbm9kZW1hcF9zaXplID0gcm91bmRfdXAoc2l6ZW9mKHMxNikgKiBtZW1ub2RlbWFwc2l6ZSwgTDFfQ0FDSEVfQllURVMpOwotCW5vZGVtYXBfYWRkciA9IGZpbmRfZTgyMF9hcmVhKGFkZHIsIGVuZF9wZm48PFBBR0VfU0hJRlQsCisJbm9kZW1hcF9hZGRyID0gZmluZF9lODIwX2FyZWEoYWRkciwgbWF4X3Bmbjw8UEFHRV9TSElGVCwKIAkJCQkgICAgICBub2RlbWFwX3NpemUsIEwxX0NBQ0hFX0JZVEVTKTsKIAlpZiAobm9kZW1hcF9hZGRyID09IC0xVUwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCkBAIC0xOTIsNyArMTc5LDcgQEAKIHZvaWQgX19pbml0IHNldHVwX25vZGVfYm9vdG1lbShpbnQgbm9kZWlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAogCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKQogewotCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuLCBib290bWFwX3BhZ2VzLCBib290bWFwX3NpemU7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGxhc3RfcGZuLCBib290bWFwX3BhZ2VzLCBib290bWFwX3NpemU7CiAJdW5zaWduZWQgbG9uZyBib290bWFwX3N0YXJ0LCBub2RlZGF0YV9waHlzOwogCXZvaWQgKmJvb3RtYXA7CiAJY29uc3QgaW50IHBnZGF0X3NpemUgPSByb3VuZF91cChzaXplb2YocGdfZGF0YV90KSwgUEFHRV9TSVpFKTsKQEAgLTIwNCw3ICsxOTEsNyBAQAogCSAgICAgICBzdGFydCwgZW5kKTsKIAogCXN0YXJ0X3BmbiA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7Ci0JZW5kX3BmbiA9IGVuZCA+PiBQQUdFX1NISUZUOworCWxhc3RfcGZuID0gZW5kID4+IFBBR0VfU0hJRlQ7CiAKIAlub2RlX2RhdGFbbm9kZWlkXSA9IGVhcmx5X25vZGVfbWVtKG5vZGVpZCwgc3RhcnQsIGVuZCwgcGdkYXRfc2l6ZSwKIAkJCQkJICAgU01QX0NBQ0hFX0JZVEVTKTsKQEAgLTIxNyw3ICsyMDQsNyBAQAogCW1lbXNldChOT0RFX0RBVEEobm9kZWlkKSwgMCwgc2l6ZW9mKHBnX2RhdGFfdCkpOwogCU5PREVfREFUQShub2RlaWQpLT5iZGF0YSA9ICZwbGF0X25vZGVfYmRhdGFbbm9kZWlkXTsKIAlOT0RFX0RBVEEobm9kZWlkKS0+bm9kZV9zdGFydF9wZm4gPSBzdGFydF9wZm47Ci0JTk9ERV9EQVRBKG5vZGVpZCktPm5vZGVfc3Bhbm5lZF9wYWdlcyA9IGVuZF9wZm4gLSBzdGFydF9wZm47CisJTk9ERV9EQVRBKG5vZGVpZCktPm5vZGVfc3Bhbm5lZF9wYWdlcyA9IGxhc3RfcGZuIC0gc3RhcnRfcGZuOwogCiAJLyoKIAkgKiBGaW5kIGEgcGxhY2UgZm9yIHRoZSBib290bWVtIG1hcApAQCAtMjI2LDE0ICsyMTMsMTQgQEAKIAkgKiBlYXJseV9ub2RlX21lbSB3aWxsIGdldCB0aGF0IHdpdGggZmluZF9lODIwX2FyZWEgaW5zdGVhZAogCSAqIG9mIGFsbG9jX2Jvb3RtZW0sIHRoYXQgY291bGQgY2xhc2ggd2l0aCByZXNlcnZlZCByYW5nZQogCSAqLwotCWJvb3RtYXBfcGFnZXMgPSBib290bWVtX2Jvb3RtYXBfcGFnZXMoZW5kX3BmbiAtIHN0YXJ0X3Bmbik7CisJYm9vdG1hcF9wYWdlcyA9IGJvb3RtZW1fYm9vdG1hcF9wYWdlcyhsYXN0X3BmbiAtIHN0YXJ0X3Bmbik7CiAJbmlkID0gcGh5c190b19uaWQobm9kZWRhdGFfcGh5cyk7CiAJaWYgKG5pZCA9PSBub2RlaWQpCiAJCWJvb3RtYXBfc3RhcnQgPSByb3VuZF91cChub2RlZGF0YV9waHlzICsgcGdkYXRfc2l6ZSwgUEFHRV9TSVpFKTsKIAllbHNlCiAJCWJvb3RtYXBfc3RhcnQgPSByb3VuZF91cChzdGFydCwgUEFHRV9TSVpFKTsKIAkvKgotCSAqIFNNUF9DQUhDRV9CWVRFUyBjb3VsZCBiZSBlbm91Z2gsIGJ1dCBpbml0X2Jvb3RtZW1fbm9kZSBsaWtlCisJICogU01QX0NBQ0hFX0JZVEVTIGNvdWxkIGJlIGVub3VnaCwgYnV0IGluaXRfYm9vdG1lbV9ub2RlIGxpa2UKIAkgKiB0byB1c2UgdGhhdCB0byBhbGlnbiB0byBQQUdFX1NJWkUKIAkgKi8KIAlib290bWFwID0gZWFybHlfbm9kZV9tZW0obm9kZWlkLCBib290bWFwX3N0YXJ0LCBlbmQsCkBAIC0yNDgsNyArMjM1LDcgQEAKIAogCWJvb3RtYXBfc2l6ZSA9IGluaXRfYm9vdG1lbV9ub2RlKE5PREVfREFUQShub2RlaWQpLAogCQkJCQkgYm9vdG1hcF9zdGFydCA+PiBQQUdFX1NISUZULAotCQkJCQkgc3RhcnRfcGZuLCBlbmRfcGZuKTsKKwkJCQkJIHN0YXJ0X3BmbiwgbGFzdF9wZm4pOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiICBib290bWFwIFslMDE2bHggLSAgJTAxNmx4XSBwYWdlcyAlbHhcbiIsCiAJCSBib290bWFwX3N0YXJ0LCBib290bWFwX3N0YXJ0ICsgYm9vdG1hcF9zaXplIC0gMSwKQEAgLTMwOSw3ICsyOTYsNyBAQAogCiAjaWZkZWYgQ09ORklHX05VTUFfRU1VCiAvKiBOdW1hIGVtdWxhdGlvbiAqLwotY2hhciAqY21kbGluZSBfX2luaXRkYXRhOworc3RhdGljIGNoYXIgKmNtZGxpbmUgX19pbml0ZGF0YTsKIAogLyoKICAqIFNldHVwcyB1cCBuaWQgdG8gcmFuZ2UgZnJvbSBhZGRyIHRvIGFkZHIgKyBzaXplLiAgSWYgdGhlIGVuZApAQCAtNDEzLDE1ICs0MDAsMTUgQEAKIH0KIAogLyoKLSAqIFNldHMgdXAgdGhlIHN5c3RlbSBSQU0gYXJlYSBmcm9tIHN0YXJ0X3BmbiB0byBlbmRfcGZuIGFjY29yZGluZyB0byB0aGUKKyAqIFNldHMgdXAgdGhlIHN5c3RlbSBSQU0gYXJlYSBmcm9tIHN0YXJ0X3BmbiB0byBsYXN0X3BmbiBhY2NvcmRpbmcgdG8gdGhlCiAgKiBudW1hPWZha2UgY29tbWFuZC1saW5lIG9wdGlvbi4KICAqLwogc3RhdGljIHN0cnVjdCBib290bm9kZSBub2Rlc1tNQVhfTlVNTk9ERVNdIF9faW5pdGRhdGE7CiAKLXN0YXRpYyBpbnQgX19pbml0IG51bWFfZW11bGF0aW9uKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pCitzdGF0aWMgaW50IF9faW5pdCBudW1hX2VtdWxhdGlvbih1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBsYXN0X3BmbikKIHsKIAl1NjQgc2l6ZSwgYWRkciA9IHN0YXJ0X3BmbiA8PCBQQUdFX1NISUZUOwotCXU2NCBtYXhfYWRkciA9IGVuZF9wZm4gPDwgUEFHRV9TSElGVDsKKwl1NjQgbWF4X2FkZHIgPSBsYXN0X3BmbiA8PCBQQUdFX1NISUZUOwogCWludCBudW1fbm9kZXMgPSAwLCBudW0gPSAwLCBjb2VmZl9mbGFnLCBjb2VmZiA9IC0xLCBpOwogCiAJbWVtc2V0KCZub2RlcywgMCwgc2l6ZW9mKG5vZGVzKSk7CkBAIC01MjcsNyArNTE0LDcgQEAKIH0KICNlbmRpZiAvKiBDT05GSUdfTlVNQV9FTVUgKi8KIAotdm9pZCBfX2luaXQgbnVtYV9pbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3BmbikKK3ZvaWQgX19pbml0IGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBsYXN0X3BmbikKIHsKIAlpbnQgaTsKIApAQCAtNTM1LDcgKzUyMiw3IEBACiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKIAogI2lmZGVmIENPTkZJR19OVU1BX0VNVQotCWlmIChjbWRsaW5lICYmICFudW1hX2VtdWxhdGlvbihzdGFydF9wZm4sIGVuZF9wZm4pKQorCWlmIChjbWRsaW5lICYmICFudW1hX2VtdWxhdGlvbihzdGFydF9wZm4sIGxhc3RfcGZuKSkKIAkJcmV0dXJuOwogCW5vZGVzX2NsZWFyKG5vZGVfcG9zc2libGVfbWFwKTsKIAlub2Rlc19jbGVhcihub2RlX29ubGluZV9tYXApOwpAQCAtNTQzLDcgKzUzMCw3IEBACiAKICNpZmRlZiBDT05GSUdfQUNQSV9OVU1BCiAJaWYgKCFudW1hX29mZiAmJiAhYWNwaV9zY2FuX25vZGVzKHN0YXJ0X3BmbiA8PCBQQUdFX1NISUZULAotCQkJCQkgIGVuZF9wZm4gPDwgUEFHRV9TSElGVCkpCisJCQkJCSAgbGFzdF9wZm4gPDwgUEFHRV9TSElGVCkpCiAJCXJldHVybjsKIAlub2Rlc19jbGVhcihub2RlX3Bvc3NpYmxlX21hcCk7CiAJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKQEAgLTU1MSw3ICs1MzgsNyBAQAogCiAjaWZkZWYgQ09ORklHX0s4X05VTUEKIAlpZiAoIW51bWFfb2ZmICYmICFrOF9zY2FuX25vZGVzKHN0YXJ0X3Bmbjw8UEFHRV9TSElGVCwKLQkJCQkJZW5kX3Bmbjw8UEFHRV9TSElGVCkpCisJCQkJCWxhc3RfcGZuPDxQQUdFX1NISUZUKSkKIAkJcmV0dXJuOwogCW5vZGVzX2NsZWFyKG5vZGVfcG9zc2libGVfbWFwKTsKIAlub2Rlc19jbGVhcihub2RlX29ubGluZV9tYXApOwpAQCAtNTYxLDcgKzU0OCw3IEBACiAKIAlwcmludGsoS0VSTl9JTkZPICJGYWtpbmcgYSBub2RlIGF0ICUwMTZseC0lMDE2bHhcbiIsCiAJICAgICAgIHN0YXJ0X3BmbiA8PCBQQUdFX1NISUZULAotCSAgICAgICBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpOworCSAgICAgICBsYXN0X3BmbiA8PCBQQUdFX1NISUZUKTsKIAkvKiBzZXR1cCBkdW1teSBub2RlIGNvdmVyaW5nIGFsbCBtZW1vcnkgKi8KIAltZW1ub2RlX3NoaWZ0ID0gNjM7CiAJbWVtbm9kZW1hcCA9IG1lbW5vZGUuZW1iZWRkZWRfbWFwOwpAQCAtNTcwLDI5ICs1NTcsOCBAQAogCW5vZGVfc2V0KDAsIG5vZGVfcG9zc2libGVfbWFwKTsKIAlmb3IgKGkgPSAwOyBpIDwgTlJfQ1BVUzsgaSsrKQogCQludW1hX3NldF9ub2RlKGksIDApOwotCS8qIGNwdW1hc2tfb2ZfY3B1KCkgbWF5IG5vdCBiZSBhdmFpbGFibGUgZHVyaW5nIGVhcmx5IHN0YXJ0dXAgKi8KLQltZW1zZXQoJm5vZGVfdG9fY3B1bWFza19tYXBbMF0sIDAsIHNpemVvZihub2RlX3RvX2NwdW1hc2tfbWFwWzBdKSk7Ci0JY3B1X3NldCgwLCBub2RlX3RvX2NwdW1hc2tfbWFwWzBdKTsKLQllODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKDAsIHN0YXJ0X3BmbiwgZW5kX3Bmbik7Ci0Jc2V0dXBfbm9kZV9ib290bWVtKDAsIHN0YXJ0X3BmbiA8PCBQQUdFX1NISUZULCBlbmRfcGZuIDw8IFBBR0VfU0hJRlQpOwotfQotCi1fX2NwdWluaXQgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSkKLXsKLQlzZXRfYml0KGNwdSwKLQkJKHVuc2lnbmVkIGxvbmcgKikmbm9kZV90b19jcHVtYXNrX21hcFtlYXJseV9jcHVfdG9fbm9kZShjcHUpXSk7Ci19Ci0KLXZvaWQgX19jcHVpbml0IG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpCi17Ci0JaW50ICpjcHVfdG9fbm9kZV9tYXAgPSB4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cjsKLQotCWlmKGNwdV90b19ub2RlX21hcCkKLQkJY3B1X3RvX25vZGVfbWFwW2NwdV0gPSBub2RlOwotCWVsc2UgaWYocGVyX2NwdV9vZmZzZXQoY3B1KSkKLQkJcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpID0gbm9kZTsKLQllbHNlCi0JCURwcmludGsoS0VSTl9JTkZPICJTZXR0aW5nIG5vZGUgZm9yIG5vbi1wcmVzZW50IGNwdSAlZFxuIiwgY3B1KTsKKwllODIwX3JlZ2lzdGVyX2FjdGl2ZV9yZWdpb25zKDAsIHN0YXJ0X3BmbiwgbGFzdF9wZm4pOworCXNldHVwX25vZGVfYm9vdG1lbSgwLCBzdGFydF9wZm4gPDwgUEFHRV9TSElGVCwgbGFzdF9wZm4gPDwgUEFHRV9TSElGVCk7CiB9CiAKIHVuc2lnbmVkIGxvbmcgX19pbml0IG51bWFfZnJlZV9hbGxfYm9vdG1lbSh2b2lkKQpAQCAtNjEzLDcgKzU3OSw3IEBACiAJbWVtc2V0KG1heF96b25lX3BmbnMsIDAsIHNpemVvZihtYXhfem9uZV9wZm5zKSk7CiAJbWF4X3pvbmVfcGZuc1taT05FX0RNQV0gPSBNQVhfRE1BX1BGTjsKIAltYXhfem9uZV9wZm5zW1pPTkVfRE1BMzJdID0gTUFYX0RNQTMyX1BGTjsKLQltYXhfem9uZV9wZm5zW1pPTkVfTk9STUFMXSA9IGVuZF9wZm47CisJbWF4X3pvbmVfcGZuc1taT05FX05PUk1BTF0gPSBtYXhfcGZuOwogCiAJc3BhcnNlX21lbW9yeV9wcmVzZW50X3dpdGhfYWN0aXZlX3JlZ2lvbnMoTUFYX05VTU5PREVTKTsKIAlzcGFyc2VfaW5pdCgpOwpAQCAtNjQxLDYgKzYwNyw3IEBACiB9CiBlYXJseV9wYXJhbSgibnVtYSIsIG51bWFfc2V0dXApOwogCisjaWZkZWYgQ09ORklHX05VTUEKIC8qCiAgKiBTZXR1cCBlYXJseSBjcHVfdG9fbm9kZS4KICAqCkBAIC02NTIsMTQgKzYxOSwxOSBAQAogICogaXMgYWxyZWFkeSBpbml0aWFsaXplZCBpbiBhIHJvdW5kIHJvYmluIG1hbm5lciBhdCBudW1hX2luaXRfYXJyYXksCiAgKiBwcmlvciB0byB0aGlzIGNhbGwsIGFuZCB0aGlzIGluaXRpYWxpemF0aW9uIGlzIGdvb2QgZW5vdWdoCiAgKiBmb3IgdGhlIGZha2UgTlVNQSBjYXNlcy4KKyAqCisgKiBDYWxsZWQgYmVmb3JlIHRoZSBwZXJfY3B1IGFyZWFzIGFyZSBzZXR1cC4KICAqLwogdm9pZCBfX2luaXQgaW5pdF9jcHVfdG9fbm9kZSh2b2lkKQogewotCWludCBpOworCWludCBjcHU7CisJdTE2ICpjcHVfdG9fYXBpY2lkID0gZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19hcGljaWQpOwogCi0JZm9yIChpID0gMDsgaSA8IE5SX0NQVVM7IGkrKykgeworCUJVR19PTihjcHVfdG9fYXBpY2lkID09IE5VTEwpOworCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgewogCQlpbnQgbm9kZTsKLQkJdTE2IGFwaWNpZCA9IHg4Nl9jcHVfdG9fYXBpY2lkX2luaXRbaV07CisJCXUxNiBhcGljaWQgPSBjcHVfdG9fYXBpY2lkW2NwdV07CiAKIAkJaWYgKGFwaWNpZCA9PSBCQURfQVBJQ0lEKQogCQkJY29udGludWU7CkBAIC02NjgsOCArNjQwLDkgQEAKIAkJCWNvbnRpbnVlOwogCQlpZiAoIW5vZGVfb25saW5lKG5vZGUpKQogCQkJY29udGludWU7Ci0JCW51bWFfc2V0X25vZGUoaSwgbm9kZSk7CisJCW51bWFfc2V0X25vZGUoY3B1LCBub2RlKTsKIAl9CiB9CisjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wYWdlYXR0ci10ZXN0LmMgYi9hcmNoL3g4Ni9tbS9wYWdlYXR0ci10ZXN0LmMKaW5kZXggNzVmMWIxMC4uMGRjZDQyZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGFnZWF0dHItdGVzdC5jCisrKyBiL2FyY2gveDg2L21tL3BhZ2VhdHRyLXRlc3QuYwpAQCAtMSw4ICsxLDggQEAKIC8qCiAgKiBzZWxmIHRlc3QgZm9yIGNoYW5nZV9wYWdlX2F0dHIuCiAgKgotICogQ2xlYXJzIHRoZSBnbG9iYWwgYml0IG9uIHJhbmRvbSBwYWdlcyBpbiB0aGUgZGlyZWN0IG1hcHBpbmcsIHRoZW4gcmV2ZXJ0cwotICogYW5kIGNvbXBhcmVzIHBhZ2UgdGFibGVzIGZvcndhcmRzIGFuZCBhZnRlcndhcmRzLgorICogQ2xlYXJzIHRoZSBhIHRlc3QgcHRlIGJpdCBvbiByYW5kb20gcGFnZXMgaW4gdGhlIGRpcmVjdCBtYXBwaW5nLAorICogdGhlbiByZXZlcnRzIGFuZCBjb21wYXJlcyBwYWdlIHRhYmxlcyBmb3J3YXJkcyBhbmQgYWZ0ZXJ3YXJkcy4KICAqLwogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CkBAIC0zMiw2ICszMiwxMyBAQAogCUdQUwkJCT0gKDE8PDMwKQogfTsKIAorI2RlZmluZSBQQUdFX1RFU1RCSVQJX19wZ3Byb3QoX1BBR0VfVU5VU0VEMSkKKworc3RhdGljIGludCBwdGVfdGVzdGJpdChwdGVfdCBwdGUpCit7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfVU5VU0VEMTsKK30KKwogc3RydWN0IHNwbGl0X3N0YXRlIHsKIAlsb25nIGxwZywgZ3BnLCBzcGcsIGV4ZWM7CiAJbG9uZyBtaW5fZXhlYywgbWF4X2V4ZWM7CkBAIC0xNjUsMTUgKzE3MiwxNCBAQAogCQkJY29udGludWU7CiAJCX0KIAotCQllcnIgPSBjaGFuZ2VfcGFnZV9hdHRyX2NsZWFyKGFkZHJbaV0sIGxlbltpXSwKLQkJCQkJICAgICAgIF9fcGdwcm90KF9QQUdFX0dMT0JBTCkpOworCQllcnIgPSBjaGFuZ2VfcGFnZV9hdHRyX3NldChhZGRyW2ldLCBsZW5baV0sIFBBR0VfVEVTVEJJVCk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkNQQSAlZCBmYWlsZWQgJWRcbiIsIGksIGVycik7CiAJCQlmYWlsZWQrKzsKIAkJfQogCiAJCXB0ZSA9IGxvb2t1cF9hZGRyZXNzKGFkZHJbaV0sICZsZXZlbCk7Ci0JCWlmICghcHRlIHx8IHB0ZV9nbG9iYWwoKnB0ZSkgfHwgcHRlX2h1Z2UoKnB0ZSkpIHsKKwkJaWYgKCFwdGUgfHwgIXB0ZV90ZXN0Yml0KCpwdGUpIHx8IHB0ZV9odWdlKCpwdGUpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkNQQSAlbHg6IGJhZCBwdGUgJUx4XG4iLCBhZGRyW2ldLAogCQkJCXB0ZSA/ICh1NjQpcHRlX3ZhbCgqcHRlKSA6IDBVTEwpOwogCQkJZmFpbGVkKys7CkBAIC0xOTgsMTQgKzIwNCwxMyBAQAogCQkJZmFpbGVkKys7CiAJCQljb250aW51ZTsKIAkJfQotCQllcnIgPSBjaGFuZ2VfcGFnZV9hdHRyX3NldChhZGRyW2ldLCBsZW5baV0sCi0JCQkJCSAgICAgX19wZ3Byb3QoX1BBR0VfR0xPQkFMKSk7CisJCWVyciA9IGNoYW5nZV9wYWdlX2F0dHJfY2xlYXIoYWRkcltpXSwgbGVuW2ldLCBQQUdFX1RFU1RCSVQpOwogCQlpZiAoZXJyIDwgMCkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgcmV2ZXJ0aW5nIGZhaWxlZDogJWRcbiIsIGVycik7CiAJCQlmYWlsZWQrKzsKIAkJfQogCQlwdGUgPSBsb29rdXBfYWRkcmVzcyhhZGRyW2ldLCAmbGV2ZWwpOwotCQlpZiAoIXB0ZSB8fCAhcHRlX2dsb2JhbCgqcHRlKSkgeworCQlpZiAoIXB0ZSB8fCBwdGVfdGVzdGJpdCgqcHRlKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJDUEEgJWx4OiBiYWQgcHRlIGFmdGVyIHJldmVydCAlTHhcbiIsCiAJCQkJYWRkcltpXSwgcHRlID8gKHU2NClwdGVfdmFsKCpwdGUpIDogMFVMTCk7CiAJCQlmYWlsZWQrKzsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3BhZ2VhdHRyLmMgYi9hcmNoL3g4Ni9tbS9wYWdlYXR0ci5jCmluZGV4IDYwYmNiNWIuLjQ3ZjRlMmUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BhZ2VhdHRyLmMKKysrIGIvYXJjaC94ODYvbW0vcGFnZWF0dHIuYwpAQCAtMzQsNiArMzQsNDEgQEAKIAl1bnNpZ25lZAlmb3JjZV9zcGxpdCA6IDE7CiB9OwogCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGRpcmVjdF9wYWdlc19jb3VudFtQR19MRVZFTF9OVU1dOworCit2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcykKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJLyogUHJvdGVjdCBhZ2FpbnN0IENQQSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCWRpcmVjdF9wYWdlc19jb3VudFtsZXZlbF0gKz0gcGFnZXM7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgc3BsaXRfcGFnZV9jb3VudChpbnQgbGV2ZWwpCit7CisJZGlyZWN0X3BhZ2VzX2NvdW50W2xldmVsXS0tOworCWRpcmVjdF9wYWdlc19jb3VudFtsZXZlbCAtIDFdICs9IFBUUlNfUEVSX1BURTsKK30KKworaW50IGFyY2hfcmVwb3J0X21lbWluZm8oY2hhciAqcGFnZSkKK3sKKwlpbnQgbiA9IHNwcmludGYocGFnZSwgIkRpcmVjdE1hcDRrOiAgJThsdVxuIgorCQkJIkRpcmVjdE1hcDJNOiAgJThsdVxuIiwKKwkJCWRpcmVjdF9wYWdlc19jb3VudFtQR19MRVZFTF80S10sCisJCQlkaXJlY3RfcGFnZXNfY291bnRbUEdfTEVWRUxfMk1dKTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJbiArPSBzcHJpbnRmKHBhZ2UgKyBuLCAiRGlyZWN0TWFwMUc6ICAlOGx1XG4iLAorCQkgICAgIGRpcmVjdF9wYWdlc19jb3VudFtQR19MRVZFTF8xR10pOworI2VuZGlmCisJcmV0dXJuIG47Cit9CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHNwbGl0X3BhZ2VfY291bnQoaW50IGxldmVsKSB7IH0KKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgaGlnaG1hcF9zdGFydF9wZm4odm9pZCkKQEAgLTIyNyw2ICsyNjIsNyBAQAogCiAJcmV0dXJuIHB0ZV9vZmZzZXRfa2VybmVsKHBtZCwgYWRkcmVzcyk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChsb29rdXBfYWRkcmVzcyk7CiAKIC8qCiAgKiBTZXQgdGhlIG5ldyBwbWQgaW4gYWxsIHRoZSBwZ2RzIHdlIGtub3cgYWJvdXQ6CkBAIC01MDAsNiArNTM2LDE2IEBACiAJZm9yIChpID0gMDsgaSA8IFBUUlNfUEVSX1BURTsgaSsrLCBwZm4gKz0gcGZuaW5jKQogCQlzZXRfcHRlKCZwYmFzZVtpXSwgcGZuX3B0ZShwZm4sIHJlZl9wcm90KSk7CiAKKwlpZiAoYWRkcmVzcyA+PSAodW5zaWduZWQgbG9uZylfX3ZhKDApICYmCisJCWFkZHJlc3MgPCAodW5zaWduZWQgbG9uZylfX3ZhKG1heF9sb3dfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSkKKwkJc3BsaXRfcGFnZV9jb3VudChsZXZlbCk7CisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaWYgKGFkZHJlc3MgPj0gKHVuc2lnbmVkIGxvbmcpX192YSgxVUw8PDMyKSAmJgorCQlhZGRyZXNzIDwgKHVuc2lnbmVkIGxvbmcpX192YShtYXhfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSkKKwkJc3BsaXRfcGFnZV9jb3VudChsZXZlbCk7CisjZW5kaWYKKwogCS8qCiAJICogSW5zdGFsbCB0aGUgbmV3LCBzcGxpdCB1cCBwYWdldGFibGUuIEltcG9ydGFudCBkZXRhaWxzIGhlcmU6CiAJICoKQEAgLTYxMywxNSArNjU5LDI0IEBACiAJc3RydWN0IGNwYV9kYXRhIGFsaWFzX2NwYTsKIAlpbnQgcmV0ID0gMDsKIAotCWlmIChjcGEtPnBmbiA+IG1heF9wZm5fbWFwcGVkKQorCWlmIChjcGEtPnBmbiA+PSBtYXhfcGZuX21hcHBlZCkKIAkJcmV0dXJuIDA7CiAKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJaWYgKGNwYS0+cGZuID49IG1heF9sb3dfcGZuX21hcHBlZCAmJiBjcGEtPnBmbiA8ICgxVUw8PCgzMi1QQUdFX1NISUZUKSkpCisJCXJldHVybiAwOworI2VuZGlmCiAJLyoKIAkgKiBObyBuZWVkIHRvIHJlZG8sIHdoZW4gdGhlIHByaW1hcnkgY2FsbCB0b3VjaGVkIHRoZSBkaXJlY3QKIAkgKiBtYXBwaW5nIGFscmVhZHk6CiAJICovCi0JaWYgKCF3aXRoaW4oY3BhLT52YWRkciwgUEFHRV9PRkZTRVQsCi0JCSAgICBQQUdFX09GRlNFVCArIChtYXhfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSkpIHsKKwlpZiAoISh3aXRoaW4oY3BhLT52YWRkciwgUEFHRV9PRkZTRVQsCisJCSAgICBQQUdFX09GRlNFVCArIChtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVCkpCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCQl8fCB3aXRoaW4oY3BhLT52YWRkciwgUEFHRV9PRkZTRVQgKyAoMVVMPDwzMiksCisJCSAgICBQQUdFX09GRlNFVCArIChtYXhfcGZuX21hcHBlZCA8PCBQQUdFX1NISUZUKSkKKyNlbmRpZgorCSkpIHsKIAogCQlhbGlhc19jcGEgPSAqY3BhOwogCQlhbGlhc19jcGEudmFkZHIgPSAodW5zaWduZWQgbG9uZykgX192YShjcGEtPnBmbiA8PCBQQUdFX1NISUZUKTsKQEAgLTgwNSw3ICs4NjAsNyBAQAogCiBpbnQgc2V0X21lbW9yeV93Yyh1bnNpZ25lZCBsb25nIGFkZHIsIGludCBudW1wYWdlcykKIHsKLQlpZiAoIXBhdF93Y19lbmFibGVkKQorCWlmICghcGF0X2VuYWJsZWQpCiAJCXJldHVybiBzZXRfbWVtb3J5X3VjKGFkZHIsIG51bXBhZ2VzKTsKIAogCWlmIChyZXNlcnZlX21lbXR5cGUoYWRkciwgYWRkciArIG51bXBhZ2VzICogUEFHRV9TSVpFLApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGF0LmMgYi9hcmNoL3g4Ni9tbS9wYXQuYwppbmRleCBkZTNhOTk4Li5kNDU4NTA3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9wYXQuYworKysgYi9hcmNoL3g4Ni9tbS9wYXQuYwpAQCAtMjYsMTUgKzI2LDE1IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNpZmRlZiBDT05GSUdfWDg2X1BBVAotaW50IF9fcmVhZF9tb3N0bHkgcGF0X3djX2VuYWJsZWQgPSAxOworaW50IF9fcmVhZF9tb3N0bHkgcGF0X2VuYWJsZWQgPSAxOwogCiB2b2lkIF9fY3B1aW5pdCBwYXRfZGlzYWJsZShjaGFyICpyZWFzb24pCiB7Ci0JcGF0X3djX2VuYWJsZWQgPSAwOworCXBhdF9lbmFibGVkID0gMDsKIAlwcmludGsoS0VSTl9JTkZPICIlc1xuIiwgcmVhc29uKTsKIH0KIAotc3RhdGljIGludCBub3BhdChjaGFyICpzdHIpCitzdGF0aWMgaW50IF9faW5pdCBub3BhdChjaGFyICpzdHIpCiB7CiAJcGF0X2Rpc2FibGUoIlBBVCBzdXBwb3J0IGRpc2FibGVkLiIpOwogCXJldHVybiAwOwpAQCAtNDIsNiArNDIsMTkgQEAKIGVhcmx5X3BhcmFtKCJub3BhdCIsIG5vcGF0KTsKICNlbmRpZgogCisKK3N0YXRpYyBpbnQgZGVidWdfZW5hYmxlOworc3RhdGljIGludCBfX2luaXQgcGF0X2RlYnVnX3NldHVwKGNoYXIgKnN0cikKK3sKKwlkZWJ1Z19lbmFibGUgPSAxOworCXJldHVybiAwOworfQorX19zZXR1cCgiZGVidWdwYXQiLCBwYXRfZGVidWdfc2V0dXApOworCisjZGVmaW5lIGRwcmludGsoZm10LCBhcmcuLi4pIFwKKwlkbyB7IGlmIChkZWJ1Z19lbmFibGUpIHByaW50ayhLRVJOX0lORk8gZm10LCAjI2FyZyk7IH0gd2hpbGUgKDApCisKKwogc3RhdGljIHU2NCBfX3JlYWRfbW9zdGx5IGJvb3RfcGF0X3N0YXRlOwogCiBlbnVtIHsKQEAgLTUzLDI0ICs2NiwyNSBAQAogCVBBVF9VQ19NSU5VUyA9IDcsCS8qIFVDLCBidXQgY2FuIGJlIG92ZXJyaWRlbiBieSBNVFJSICovCiB9OwogCi0jZGVmaW5lIFBBVCh4LHkpCSgodTY0KVBBVF8gIyMgeSA8PCAoKHgpKjgpKQorI2RlZmluZSBQQVQoeCwgeSkJKCh1NjQpUEFUXyAjIyB5IDw8ICgoeCkqOCkpCiAKIHZvaWQgcGF0X2luaXQodm9pZCkKIHsKIAl1NjQgcGF0OwogCi0JaWYgKCFwYXRfd2NfZW5hYmxlZCkKKwlpZiAoIXBhdF9lbmFibGVkKQogCQlyZXR1cm47CiAKIAkvKiBQYXJhbm9pYSBjaGVjay4gKi8KLQlpZiAoIWNwdV9oYXNfcGF0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiUEFUIGVuYWJsZWQsIGJ1dCBDUFUgZmVhdHVyZSBjbGVhcmVkXG4iKTsKKwlpZiAoIWNwdV9oYXNfcGF0ICYmIGJvb3RfcGF0X3N0YXRlKSB7CiAJCS8qCi0JCSAqIFBhbmljIGlmIHRoaXMgaGFwcGVucyBvbiB0aGUgc2Vjb25kYXJ5IENQVSwgYW5kIHdlCisJCSAqIElmIHRoaXMgaGFwcGVucyB3ZSBhcmUgb24gYSBzZWNvbmRhcnkgQ1BVLCBidXQKIAkJICogc3dpdGNoZWQgdG8gUEFUIG9uIHRoZSBib290IENQVS4gV2UgaGF2ZSBubyB3YXkgdG8KIAkJICogdW5kbyBQQVQuCi0JCSovCi0JCUJVR19PTihib290X3BhdF9zdGF0ZSk7CisJCSAqLworCQlwcmludGsoS0VSTl9FUlIgIlBBVCBlbmFibGVkLCAiCisJCSAgICAgICAiYnV0IG5vdCBzdXBwb3J0ZWQgYnkgc2Vjb25kYXJ5IENQVVxuIik7CisJCUJVRygpOwogCX0KIAogCS8qIFNldCBQV1QgdG8gV3JpdGUtQ29tYmluaW5nLiBBbGwgb3RoZXIgYml0cyBzdGF5IHRoZSBzYW1lICovCkBAIC04Niw4ICsxMDAsOCBAQAogCSAqICAgICAgMDExIFVDCQlfUEFHRV9DQUNIRV9VQwogCSAqIFBBVCBiaXQgdW51c2VkCiAJICovCi0JcGF0ID0gUEFUKDAsV0IpIHwgUEFUKDEsV0MpIHwgUEFUKDIsVUNfTUlOVVMpIHwgUEFUKDMsVUMpIHwKLQkgICAgICBQQVQoNCxXQikgfCBQQVQoNSxXQykgfCBQQVQoNixVQ19NSU5VUykgfCBQQVQoNyxVQyk7CisJcGF0ID0gUEFUKDAsIFdCKSB8IFBBVCgxLCBXQykgfCBQQVQoMiwgVUNfTUlOVVMpIHwgUEFUKDMsIFVDKSB8CisJICAgICAgUEFUKDQsIFdCKSB8IFBBVCg1LCBXQykgfCBQQVQoNiwgVUNfTUlOVVMpIHwgUEFUKDcsIFVDKTsKIAogCS8qIEJvb3QgQ1BVIGNoZWNrICovCiAJaWYgKCFib290X3BhdF9zdGF0ZSkKQEAgLTEwMywxMSArMTE3LDExIEBACiBzdGF0aWMgY2hhciAqY2F0dHJfbmFtZSh1bnNpZ25lZCBsb25nIGZsYWdzKQogewogCXN3aXRjaCAoZmxhZ3MgJiBfUEFHRV9DQUNIRV9NQVNLKSB7Ci0JCWNhc2UgX1BBR0VfQ0FDSEVfVUM6CQlyZXR1cm4gInVuY2FjaGVkIjsKLQkJY2FzZSBfUEFHRV9DQUNIRV9VQ19NSU5VUzoJcmV0dXJuICJ1bmNhY2hlZC1taW51cyI7Ci0JCWNhc2UgX1BBR0VfQ0FDSEVfV0I6CQlyZXR1cm4gIndyaXRlLWJhY2siOwotCQljYXNlIF9QQUdFX0NBQ0hFX1dDOgkJcmV0dXJuICJ3cml0ZS1jb21iaW5pbmciOwotCQlkZWZhdWx0OgkJCXJldHVybiAiYnJva2VuIjsKKwljYXNlIF9QQUdFX0NBQ0hFX1VDOgkJcmV0dXJuICJ1bmNhY2hlZCI7CisJY2FzZSBfUEFHRV9DQUNIRV9VQ19NSU5VUzoJcmV0dXJuICJ1bmNhY2hlZC1taW51cyI7CisJY2FzZSBfUEFHRV9DQUNIRV9XQjoJCXJldHVybiAid3JpdGUtYmFjayI7CisJY2FzZSBfUEFHRV9DQUNIRV9XQzoJCXJldHVybiAid3JpdGUtY29tYmluaW5nIjsKKwlkZWZhdWx0OgkJCXJldHVybiAiYnJva2VuIjsKIAl9CiB9CiAKQEAgLTE0NSw0NiArMTU5LDUwIEBACiAgKiBUaGUgaW50ZXJzZWN0aW9uIGlzIGJhc2VkIG9uICJFZmZlY3RpdmUgTWVtb3J5IFR5cGUiIHRhYmxlcyBpbiBJQS0zMgogICogU0RNIHZvbCAzYQogICovCi1zdGF0aWMgaW50IHBhdF94X210cnJfdHlwZSh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGxvbmcgcHJvdCwKLQkJCQl1bnNpZ25lZCBsb25nICpyZXRfcHJvdCkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHBhdF94X210cnJfdHlwZSh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGxvbmcgcmVxX3R5cGUpCiB7Ci0JdW5zaWduZWQgbG9uZyBwYXRfdHlwZTsKLQl1OCBtdHJyX3R5cGU7CisJLyoKKwkgKiBMb29rIGZvciBNVFJSIGhpbnQgdG8gZ2V0IHRoZSBlZmZlY3RpdmUgdHlwZSBpbiBjYXNlIHdoZXJlIFBBVAorCSAqIHJlcXVlc3QgaXMgZm9yIFdCLgorCSAqLworCWlmIChyZXFfdHlwZSA9PSBfUEFHRV9DQUNIRV9XQikgeworCQl1OCBtdHJyX3R5cGU7CiAKLQltdHJyX3R5cGUgPSBtdHJyX3R5cGVfbG9va3VwKHN0YXJ0LCBlbmQpOwotCWlmIChtdHJyX3R5cGUgPT0gMHhGRikgewkJLyogTVRSUiBub3QgZW5hYmxlZCAqLwotCQkqcmV0X3Byb3QgPSBwcm90OwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKG10cnJfdHlwZSA9PSAweEZFKSB7CQkvKiBNVFJSIG1hdGNoIGVycm9yICovCi0JCSpyZXRfcHJvdCA9IF9QQUdFX0NBQ0hFX1VDOwotCQlyZXR1cm4gLTE7Ci0JfQotCWlmIChtdHJyX3R5cGUgIT0gTVRSUl9UWVBFX1VOQ0FDSEFCTEUgJiYKLQkgICAgbXRycl90eXBlICE9IE1UUlJfVFlQRV9XUkJBQ0sgJiYKLQkgICAgbXRycl90eXBlICE9IE1UUlJfVFlQRV9XUkNPTUIpIHsJLyogTVRSUiB0eXBlIHVuaGFuZGxlZCAqLwotCQkqcmV0X3Byb3QgPSBfUEFHRV9DQUNIRV9VQzsKLQkJcmV0dXJuIC0xOworCQltdHJyX3R5cGUgPSBtdHJyX3R5cGVfbG9va3VwKHN0YXJ0LCBlbmQpOworCQlpZiAobXRycl90eXBlID09IE1UUlJfVFlQRV9VTkNBQ0hBQkxFKQorCQkJcmV0dXJuIF9QQUdFX0NBQ0hFX1VDOworCQlpZiAobXRycl90eXBlID09IE1UUlJfVFlQRV9XUkNPTUIpCisJCQlyZXR1cm4gX1BBR0VfQ0FDSEVfV0M7CiAJfQogCi0JcGF0X3R5cGUgPSBwcm90ICYgX1BBR0VfQ0FDSEVfTUFTSzsKLQlwcm90ICY9ICh+X1BBR0VfQ0FDSEVfTUFTSyk7CisJcmV0dXJuIHJlcV90eXBlOworfQogCi0JLyogQ3VycmVudGx5IGRvaW5nIGludGVyc2VjdGlvbiBieSBoYW5kLiBPcHRpbWl6ZSBpdCBsYXRlci4gKi8KLQlpZiAocGF0X3R5cGUgPT0gX1BBR0VfQ0FDSEVfV0MpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1dDOwotCX0gZWxzZSBpZiAocGF0X3R5cGUgPT0gX1BBR0VfQ0FDSEVfVUNfTUlOVVMpIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1VDX01JTlVTOwotCX0gZWxzZSBpZiAocGF0X3R5cGUgPT0gX1BBR0VfQ0FDSEVfVUMgfHwKLQkgICAgICAgICAgIG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfVU5DQUNIQUJMRSkgewotCQkqcmV0X3Byb3QgPSBwcm90IHwgX1BBR0VfQ0FDSEVfVUM7Ci0JfSBlbHNlIGlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1dSQ09NQikgewotCQkqcmV0X3Byb3QgPSBwcm90IHwgX1BBR0VfQ0FDSEVfV0M7Ci0JfSBlbHNlIHsKLQkJKnJldF9wcm90ID0gcHJvdCB8IF9QQUdFX0NBQ0hFX1dCOworc3RhdGljIGludCBjaGtfY29uZmxpY3Qoc3RydWN0IG1lbXR5cGUgKm5ldywgc3RydWN0IG1lbXR5cGUgKmVudHJ5LAorCQkJdW5zaWduZWQgbG9uZyAqdHlwZSkKK3sKKwlpZiAobmV3LT50eXBlICE9IGVudHJ5LT50eXBlKSB7CisJCWlmICh0eXBlKSB7CisJCQluZXctPnR5cGUgPSBlbnRyeS0+dHlwZTsKKwkJCSp0eXBlID0gZW50cnktPnR5cGU7CisJCX0gZWxzZQorCQkJZ290byBjb25mbGljdDsKIAl9CiAKKwkgLyogY2hlY2sgb3ZlcmxhcHMgd2l0aCBtb3JlIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0ICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKG5ldy0+ZW5kIDw9IGVudHJ5LT5zdGFydCkKKwkJCWJyZWFrOworCQllbHNlIGlmIChuZXctPnR5cGUgIT0gZW50cnktPnR5cGUpCisJCQlnb3RvIGNvbmZsaWN0OworCX0KIAlyZXR1cm4gMDsKKworIGNvbmZsaWN0OgorCXByaW50ayhLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAiCisJICAgICAgICIlTHgtJUx4ICVzPC0+JXNcbiIsIGN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwgbmV3LT5zdGFydCwKKwkgICAgICAgbmV3LT5lbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShlbnRyeS0+dHlwZSkpOworCXJldHVybiAtRUJVU1k7CiB9CiAKIC8qCkBAIC0xOTcsMjUxICsyMTUsMTM0IEBACiAgKiByZXFfdHlwZSB3aWxsIGhhdmUgYSBzcGVjaWFsIGNhc2UgdmFsdWUgJy0xJywgd2hlbiByZXF1ZXN0ZXIgd2FudCB0byBpbmhlcml0CiAgKiB0aGUgbWVtb3J5IHR5cGUgZnJvbSBtdHJyIChpZiBXQiksIGV4aXN0aW5nIFBBVCwgZGVmYXVsdGluZyB0byBVQ19NSU5VUy4KICAqCi0gKiBJZiByZXRfdHlwZSBpcyBOVUxMLCBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBlcnJvciBpZiBpdCBjYW5ub3QgcmVzZXJ2ZSB0aGUKLSAqIHJlZ2lvbiB3aXRoIHJlcV90eXBlLiBJZiByZXRfdHlwZSBpcyBub24tbnVsbCwgZnVuY3Rpb24gd2lsbCByZXR1cm4KLSAqIGF2YWlsYWJsZSB0eXBlIGluIHJldF90eXBlIGluIGNhc2Ugb2Ygbm8gZXJyb3IuIEluIGNhc2Ugb2YgYW55IGVycm9yCisgKiBJZiBuZXdfdHlwZSBpcyBOVUxMLCBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBlcnJvciBpZiBpdCBjYW5ub3QgcmVzZXJ2ZSB0aGUKKyAqIHJlZ2lvbiB3aXRoIHJlcV90eXBlLiBJZiBuZXdfdHlwZSBpcyBub24tTlVMTCwgZnVuY3Rpb24gd2lsbCByZXR1cm4KKyAqIGF2YWlsYWJsZSB0eXBlIGluIG5ld190eXBlIGluIGNhc2Ugb2Ygbm8gZXJyb3IuIEluIGNhc2Ugb2YgYW55IGVycm9yCiAgKiBpdCB3aWxsIHJldHVybiBhIG5lZ2F0aXZlIHJldHVybiB2YWx1ZS4KICAqLwogaW50IHJlc2VydmVfbWVtdHlwZSh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGxvbmcgcmVxX3R5cGUsCi0JCQl1bnNpZ25lZCBsb25nICpyZXRfdHlwZSkKKwkJCXVuc2lnbmVkIGxvbmcgKm5ld190eXBlKQogewotCXN0cnVjdCBtZW10eXBlICpuZXdfZW50cnkgPSBOVUxMOwotCXN0cnVjdCBtZW10eXBlICpwYXJzZTsKKwlzdHJ1Y3QgbWVtdHlwZSAqbmV3LCAqZW50cnk7CiAJdW5zaWduZWQgbG9uZyBhY3R1YWxfdHlwZTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICp3aGVyZTsKIAlpbnQgZXJyID0gMDsKIAotCS8qIE9ubHkgdHJhY2sgd2hlbiBwYXRfd2NfZW5hYmxlZCAqLwotCWlmICghcGF0X3djX2VuYWJsZWQpIHsKKyAJQlVHX09OKHN0YXJ0ID49IGVuZCk7IC8qIGVuZCBpcyBleGNsdXNpdmUgKi8KKworCWlmICghcGF0X2VuYWJsZWQpIHsKIAkJLyogVGhpcyBpcyBpZGVudGljYWwgdG8gcGFnZSB0YWJsZSBzZXR0aW5nIHdpdGhvdXQgUEFUICovCi0JCWlmIChyZXRfdHlwZSkgewotCQkJaWYgKHJlcV90eXBlID09IC0xKSB7Ci0JCQkJKnJldF90eXBlID0gX1BBR0VfQ0FDSEVfV0I7Ci0JCQl9IGVsc2UgewotCQkJCSpyZXRfdHlwZSA9IHJlcV90eXBlOwotCQkJfQorCQlpZiAobmV3X3R5cGUpIHsKKwkJCWlmIChyZXFfdHlwZSA9PSAtMSkKKwkJCQkqbmV3X3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKKwkJCWVsc2UKKwkJCQkqbmV3X3R5cGUgPSByZXFfdHlwZSAmIF9QQUdFX0NBQ0hFX01BU0s7CiAJCX0KIAkJcmV0dXJuIDA7CiAJfQogCiAJLyogTG93IElTQSByZWdpb24gaXMgYWx3YXlzIG1hcHBlZCBXQiBpbiBwYWdlIHRhYmxlLiBObyBuZWVkIHRvIHRyYWNrICovCi0JaWYgKHN0YXJ0ID49IElTQV9TVEFSVF9BRERSRVNTICYmIChlbmQgLSAxKSA8PSBJU0FfRU5EX0FERFJFU1MpIHsKLQkJaWYgKHJldF90eXBlKQotCQkJKnJldF90eXBlID0gX1BBR0VfQ0FDSEVfV0I7Ci0KKwlpZiAoaXNfSVNBX3JhbmdlKHN0YXJ0LCBlbmQgLSAxKSkgeworCQlpZiAobmV3X3R5cGUpCisJCQkqbmV3X3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKIAkJcmV0dXJuIDA7CiAJfQogCiAJaWYgKHJlcV90eXBlID09IC0xKSB7CiAJCS8qCi0JCSAqIFNwZWNpYWwgY2FzZSB3aGVyZSBjYWxsZXIgd2FudHMgdG8gaW5oZXJpdCBmcm9tIG10cnIgb3IKLQkJICogZXhpc3RpbmcgcGF0IG1hcHBpbmcsIGRlZmF1bHRpbmcgdG8gVUNfTUlOVVMgaW4gY2FzZSBvZgotCQkgKiBubyBtYXRjaC4KKwkJICogQ2FsbCBtdHJyX2xvb2t1cCB0byBnZXQgdGhlIHR5cGUgaGludC4gVGhpcyBpcyBhbgorCQkgKiBvcHRpbWl6YXRpb24gZm9yIC9kZXYvbWVtIG1tYXAnZXJzIGludG8gV0IgbWVtb3J5IChCSU9TCisJCSAqIHRvb2xzIGFuZCBBQ1BJIHRvb2xzKS4gVXNlIFdCIHJlcXVlc3QgZm9yIFdCIG1lbW9yeSBhbmQgdXNlCisJCSAqIFVDX01JTlVTIG90aGVyd2lzZS4KIAkJICovCiAJCXU4IG10cnJfdHlwZSA9IG10cnJfdHlwZV9sb29rdXAoc3RhcnQsIGVuZCk7Ci0JCWlmIChtdHJyX3R5cGUgPT0gMHhGRSkgeyAvKiBNVFJSIG1hdGNoIGVycm9yICovCi0JCQllcnIgPSAtMTsKLQkJfQogCi0JCWlmIChtdHJyX3R5cGUgPT0gTVRSUl9UWVBFX1dSQkFDSykgewotCQkJcmVxX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKKwkJaWYgKG10cnJfdHlwZSA9PSBNVFJSX1RZUEVfV1JCQUNLKQogCQkJYWN0dWFsX3R5cGUgPSBfUEFHRV9DQUNIRV9XQjsKLQkJfSBlbHNlIHsKLQkJCXJlcV90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7CisJCWVsc2UKIAkJCWFjdHVhbF90eXBlID0gX1BBR0VfQ0FDSEVfVUNfTUlOVVM7Ci0JCX0KLQl9IGVsc2UgewotCQlyZXFfdHlwZSAmPSBfUEFHRV9DQUNIRV9NQVNLOwotCQllcnIgPSBwYXRfeF9tdHJyX3R5cGUoc3RhcnQsIGVuZCwgcmVxX3R5cGUsICZhY3R1YWxfdHlwZSk7Ci0JfQorCX0gZWxzZQorCQlhY3R1YWxfdHlwZSA9IHBhdF94X210cnJfdHlwZShzdGFydCwgZW5kLAorCQkJCQkgICAgICByZXFfdHlwZSAmIF9QQUdFX0NBQ0hFX01BU0spOwogCi0JaWYgKGVycikgewotCQlpZiAocmV0X3R5cGUpCi0JCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKLQotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQluZXdfZW50cnkgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIW5ld19lbnRyeSkKKwluZXcgID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IG1lbXR5cGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIW5ldykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQluZXdfZW50cnktPnN0YXJ0ID0gc3RhcnQ7Ci0JbmV3X2VudHJ5LT5lbmQgPSBlbmQ7Ci0JbmV3X2VudHJ5LT50eXBlID0gYWN0dWFsX3R5cGU7CisJbmV3LT5zdGFydCA9IHN0YXJ0OworCW5ldy0+ZW5kID0gZW5kOworCW5ldy0+dHlwZSA9IGFjdHVhbF90eXBlOwogCi0JaWYgKHJldF90eXBlKQotCQkqcmV0X3R5cGUgPSBhY3R1YWxfdHlwZTsKKwlpZiAobmV3X3R5cGUpCisJCSpuZXdfdHlwZSA9IGFjdHVhbF90eXBlOwogCiAJc3Bpbl9sb2NrKCZtZW10eXBlX2xvY2spOwogCiAJLyogU2VhcmNoIGZvciBleGlzdGluZyBtYXBwaW5nIHRoYXQgb3ZlcmxhcHMgdGhlIGN1cnJlbnQgcmFuZ2UgKi8KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQlzdHJ1Y3QgbWVtdHlwZSAqc2F2ZWRfcHRyOwotCi0JCWlmIChwYXJzZS0+c3RhcnQgPj0gZW5kKSB7Ci0JCQlwcl9kZWJ1ZygiTmV3IEVudHJ5XG4iKTsKLQkJCWxpc3RfYWRkKCZuZXdfZW50cnktPm5kLCBwYXJzZS0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOworCXdoZXJlID0gTlVMTDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbWVtdHlwZV9saXN0LCBuZCkgeworCQlpZiAoZW5kIDw9IGVudHJ5LT5zdGFydCkgeworCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCWJyZWFrOwotCQl9Ci0KLQkJaWYgKHN0YXJ0IDw9IHBhcnNlLT5zdGFydCAmJiBlbmQgPj0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDw9IGVudHJ5LT5zdGFydCkgeyAvKiBlbmQgPiBlbnRyeS0+c3RhcnQgKi8KKwkJCWVyciA9IGNoa19jb25mbGljdChuZXcsIGVudHJ5LCBuZXdfdHlwZSk7CisJCQlpZiAoIWVycikgeworCQkJCWRwcmludGsoIk92ZXJsYXAgYXQgMHglTHgtMHglTHhcbiIsCisJCQkJCWVudHJ5LT5zdGFydCwgZW50cnktPmVuZCk7CisJCQkJd2hlcmUgPSBlbnRyeS0+bmQucHJldjsKIAkJCX0KLQotCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJcHJpbnRrKAotCQlLRVJOX0lORk8gIiVzOiVkIGNvbmZsaWN0aW5nIG1lbW9yeSB0eXBlcyAlTHgtJUx4ICVzPC0+JXNcbiIsCi0JCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJY2F0dHJfbmFtZShhY3R1YWxfdHlwZSksCi0JCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0KLQkJCXNhdmVkX3B0ciA9IHBhcnNlOwotCQkJLyoKLQkJCSAqIENoZWNrIHRvIHNlZSB3aGV0aGVyIHRoZSByZXF1ZXN0IG92ZXJsYXBzIG1vcmUKLQkJCSAqIHRoYW4gb25lIGVudHJ5IGluIHRoZSBsaXN0Ci0JCQkgKi8KLQkJCWxpc3RfZm9yX2VhY2hfZW50cnlfY29udGludWUocGFyc2UsICZtZW10eXBlX2xpc3QsIG5kKSB7Ci0JCQkJaWYgKGVuZCA8PSBwYXJzZS0+c3RhcnQpIHsKLQkJCQkJYnJlYWs7Ci0JCQkJfQotCi0JCQkJaWYgKGFjdHVhbF90eXBlICE9IHBhcnNlLT50eXBlKSB7Ci0JCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLAotCQkJCQkJc3RhcnQsIGVuZCwKLQkJCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQkJY2F0dHJfbmFtZShwYXJzZS0+dHlwZSkpOwotCQkJCQllcnIgPSAtRUJVU1k7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQotCQkJaWYgKGVycikgewotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlwcl9kZWJ1ZygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKLQkJCSAgICAgICBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsIHNhdmVkX3B0ci0+bmQucHJldik7Ci0JCQluZXdfZW50cnkgPSBOVUxMOwogCQkJYnJlYWs7Ci0JCX0KLQotCQlpZiAoc3RhcnQgPCBwYXJzZS0+ZW5kKSB7Ci0JCQlpZiAoYWN0dWFsX3R5cGUgIT0gcGFyc2UtPnR5cGUgJiYgcmV0X3R5cGUpIHsKLQkJCQlhY3R1YWxfdHlwZSA9IHBhcnNlLT50eXBlOwotCQkJCSpyZXRfdHlwZSA9IGFjdHVhbF90eXBlOwotCQkJCW5ld19lbnRyeS0+dHlwZSA9IGFjdHVhbF90eXBlOworCQl9IGVsc2UgaWYgKHN0YXJ0IDwgZW50cnktPmVuZCkgeyAvKiBzdGFydCA+IGVudHJ5LT5zdGFydCAqLworCQkJZXJyID0gY2hrX2NvbmZsaWN0KG5ldywgZW50cnksIG5ld190eXBlKTsKKwkJCWlmICghZXJyKSB7CisJCQkJZHByaW50aygiT3ZlcmxhcCBhdCAweCVMeC0weCVMeFxuIiwKKwkJCQkJZW50cnktPnN0YXJ0LCBlbnRyeS0+ZW5kKTsKKwkJCQl3aGVyZSA9ICZlbnRyeS0+bmQ7CiAJCQl9Ci0KLQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCXByaW50aygKLQkJS0VSTl9JTkZPICIlczolZCBjb25mbGljdGluZyBtZW1vcnkgdHlwZXMgJUx4LSVMeCAlczwtPiVzXG4iLAotCQkJCQljdXJyZW50LT5jb21tLCBjdXJyZW50LT5waWQsCi0JCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCWNhdHRyX25hbWUoYWN0dWFsX3R5cGUpLAotCQkJCQljYXR0cl9uYW1lKHBhcnNlLT50eXBlKSk7Ci0JCQkJZXJyID0gLUVCVVNZOwotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlzYXZlZF9wdHIgPSBwYXJzZTsKLQkJCS8qCi0JCQkgKiBDaGVjayB0byBzZWUgd2hldGhlciB0aGUgcmVxdWVzdCBvdmVybGFwcyBtb3JlCi0JCQkgKiB0aGFuIG9uZSBlbnRyeSBpbiB0aGUgbGlzdAotCQkJICovCi0JCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlKHBhcnNlLCAmbWVtdHlwZV9saXN0LCBuZCkgewotCQkJCWlmIChlbmQgPD0gcGFyc2UtPnN0YXJ0KSB7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQotCQkJCWlmIChhY3R1YWxfdHlwZSAhPSBwYXJzZS0+dHlwZSkgewotCQkJCQlwcmludGsoCi0JCUtFUk5fSU5GTyAiJXM6JWQgY29uZmxpY3RpbmcgbWVtb3J5IHR5cGVzICVMeC0lTHggJXM8LT4lc1xuIiwKLQkJCQkJCWN1cnJlbnQtPmNvbW0sIGN1cnJlbnQtPnBpZCwKLQkJCQkJCXN0YXJ0LCBlbmQsCi0JCQkJCQljYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCQkJCWNhdHRyX25hbWUocGFyc2UtPnR5cGUpKTsKLQkJCQkJZXJyID0gLUVCVVNZOwotCQkJCQlicmVhazsKLQkJCQl9Ci0JCQl9Ci0KLQkJCWlmIChlcnIpIHsKLQkJCQlicmVhazsKLQkJCX0KLQotCQkJcHJfZGVidWcoS0VSTl9JTkZPICJPdmVybGFwIGF0IDB4JUx4LTB4JUx4XG4iLAotCQkJCSBzYXZlZF9wdHItPnN0YXJ0LCBzYXZlZF9wdHItPmVuZCk7Ci0JCQkvKiBObyBjb25mbGljdC4gR28gYWhlYWQgYW5kIGFkZCB0aGlzIG5ldyBlbnRyeSAqLwotCQkJbGlzdF9hZGQoJm5ld19lbnRyeS0+bmQsICZzYXZlZF9wdHItPm5kKTsKLQkJCW5ld19lbnRyeSA9IE5VTEw7CiAJCQlicmVhazsKIAkJfQogCX0KIAogCWlmIChlcnIpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTwotCSJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzXG4iLAotCQkJc3RhcnQsIGVuZCwgY2F0dHJfbmFtZShuZXdfZW50cnktPnR5cGUpLAotCQkJY2F0dHJfbmFtZShyZXFfdHlwZSkpOwotCQlrZnJlZShuZXdfZW50cnkpOworCQlwcmludGsoS0VSTl9JTkZPICJyZXNlcnZlX21lbXR5cGUgZmFpbGVkIDB4JUx4LTB4JUx4LCAiCisJCSAgICAgICAidHJhY2sgJXMsIHJlcSAlc1xuIiwKKwkJICAgICAgIHN0YXJ0LCBlbmQsIGNhdHRyX25hbWUobmV3LT50eXBlKSwgY2F0dHJfbmFtZShyZXFfdHlwZSkpOworCQlrZnJlZShuZXcpOwogCQlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQlpZiAobmV3X2VudHJ5KSB7Ci0JCS8qIE5vIGNvbmZsaWN0LiBOb3QgeWV0IGFkZGVkIHRvIHRoZSBsaXN0LiBBZGQgdG8gdGhlIHRhaWwgKi8KLQkJbGlzdF9hZGRfdGFpbCgmbmV3X2VudHJ5LT5uZCwgJm1lbXR5cGVfbGlzdCk7Ci0JCXByX2RlYnVnKCJOZXcgRW50cnlcbiIpOwotCX0KLQotCWlmIChyZXRfdHlwZSkgewotCQlwcl9kZWJ1ZygKLQkicmVzZXJ2ZV9tZW10eXBlIGFkZGVkIDB4JUx4LTB4JUx4LCB0cmFjayAlcywgcmVxICVzLCByZXQgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpLCBjYXR0cl9uYW1lKCpyZXRfdHlwZSkpOwotCX0gZWxzZSB7Ci0JCXByX2RlYnVnKAotCSJyZXNlcnZlX21lbXR5cGUgYWRkZWQgMHglTHgtMHglTHgsIHRyYWNrICVzLCByZXEgJXNcbiIsCi0JCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKGFjdHVhbF90eXBlKSwKLQkJCWNhdHRyX25hbWUocmVxX3R5cGUpKTsKLQl9CisJaWYgKHdoZXJlKQorCQlsaXN0X2FkZCgmbmV3LT5uZCwgd2hlcmUpOworCWVsc2UKKwkJbGlzdF9hZGRfdGFpbCgmbmV3LT5uZCwgJm1lbXR5cGVfbGlzdCk7CiAKIAlzcGluX3VubG9jaygmbWVtdHlwZV9sb2NrKTsKKworCWRwcmludGsoInJlc2VydmVfbWVtdHlwZSBhZGRlZCAweCVMeC0weCVMeCwgdHJhY2sgJXMsIHJlcSAlcywgcmV0ICVzXG4iLAorCQlzdGFydCwgZW5kLCBjYXR0cl9uYW1lKG5ldy0+dHlwZSksIGNhdHRyX25hbWUocmVxX3R5cGUpLAorCQluZXdfdHlwZSA/IGNhdHRyX25hbWUoKm5ld190eXBlKSA6ICItIik7CisKIAlyZXR1cm4gZXJyOwogfQogCiBpbnQgZnJlZV9tZW10eXBlKHU2NCBzdGFydCwgdTY0IGVuZCkKIHsKLQlzdHJ1Y3QgbWVtdHlwZSAqbWw7CisJc3RydWN0IG1lbXR5cGUgKmVudHJ5OwogCWludCBlcnIgPSAtRUlOVkFMOwogCi0JLyogT25seSB0cmFjayB3aGVuIHBhdF93Y19lbmFibGVkICovCi0JaWYgKCFwYXRfd2NfZW5hYmxlZCkgeworCWlmICghcGF0X2VuYWJsZWQpCiAJCXJldHVybiAwOwotCX0KIAogCS8qIExvdyBJU0EgcmVnaW9uIGlzIGFsd2F5cyBtYXBwZWQgV0IuIE5vIG5lZWQgdG8gdHJhY2sgKi8KLQlpZiAoc3RhcnQgPj0gSVNBX1NUQVJUX0FERFJFU1MgJiYgZW5kIDw9IElTQV9FTkRfQUREUkVTUykgeworCWlmIChpc19JU0FfcmFuZ2Uoc3RhcnQsIGVuZCAtIDEpKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlzcGluX2xvY2soJm1lbXR5cGVfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShtbCwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKLQkJaWYgKG1sLT5zdGFydCA9PSBzdGFydCAmJiBtbC0+ZW5kID09IGVuZCkgewotCQkJbGlzdF9kZWwoJm1sLT5uZCk7Ci0JCQlrZnJlZShtbCk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJm1lbXR5cGVfbGlzdCwgbmQpIHsKKwkJaWYgKGVudHJ5LT5zdGFydCA9PSBzdGFydCAmJiBlbnRyeS0+ZW5kID09IGVuZCkgeworCQkJbGlzdF9kZWwoJmVudHJ5LT5uZCk7CisJCQlrZnJlZShlbnRyeSk7CiAJCQllcnIgPSAwOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ1Myw3ICszNTQsNyBAQAogCQkJY3VycmVudC0+Y29tbSwgY3VycmVudC0+cGlkLCBzdGFydCwgZW5kKTsKIAl9CiAKLQlwcl9kZWJ1ZygiZnJlZV9tZW10eXBlIHJlcXVlc3QgMHglTHgtMHglTHhcbiIsIHN0YXJ0LCBlbmQpOworCWRwcmludGsoImZyZWVfbWVtdHlwZSByZXF1ZXN0IDB4JUx4LTB4JUx4XG4iLCBzdGFydCwgZW5kKTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC01MjIsMTIgKzQyMywxMiBAQAogCSAqIGNhY2hpbmcgZm9yIHRoZSBoaWdoIGFkZHJlc3NlcyB0aHJvdWdoIHRoZSBLRU4gcGluLCBidXQKIAkgKiB3ZSBtYWludGFpbiB0aGUgdHJhZGl0aW9uIG9mIHBhcmFub2lhIGluIHRoaXMgY29kZS4KIAkgKi8KLQlpZiAoIXBhdF93Y19lbmFibGVkICYmCi0JICAgICEgKCB0ZXN0X2JpdChYODZfRkVBVFVSRV9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9LNl9NVFJSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSB8fAotCQl0ZXN0X2JpdChYODZfRkVBVFVSRV9DWVJJWF9BUlIsIGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHkpIHx8Ci0JCXRlc3RfYml0KFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5KSkgJiYKLQkgICAocGZuIDw8IFBBR0VfU0hJRlQpID49IF9fcGEoaGlnaF9tZW1vcnkpKSB7CisJaWYgKCFwYXRfZW5hYmxlZCAmJgorCSAgICAhKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9LNl9NVFJSKSB8fAorCSAgICAgIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9DWVJJWF9BUlIpIHx8CisJICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0NFTlRBVVJfTUNSKSkgJiYKKwkgICAgKHBmbiA8PCBQQUdFX1NISUZUKSA+PSBfX3BhKGhpZ2hfbWVtb3J5KSkgewogCQlmbGFncyA9IF9QQUdFX0NBQ0hFX1VDOwogCX0KICNlbmRpZgpAQCAtNTQ4LDggKzQ0OSw5IEBACiAJaWYgKHJldHZhbCA8IDApCiAJCXJldHVybiAwOwogCi0JaWYgKHBmbiA8PSBtYXhfcGZuX21hcHBlZCAmJgotICAgICAgICAgICAgaW9yZW1hcF9jaGFuZ2VfYXR0cigodW5zaWduZWQgbG9uZylfX3ZhKG9mZnNldCksIHNpemUsIGZsYWdzKSA8IDApIHsKKwlpZiAoKChwZm4gPCBtYXhfbG93X3Bmbl9tYXBwZWQpIHx8CisJICAgICAocGZuID49ICgxVUw8PCgzMiAtIFBBR0VfU0hJRlQpKSAmJiBwZm4gPCBtYXhfcGZuX21hcHBlZCkpICYmCisJICAgIGlvcmVtYXBfY2hhbmdlX2F0dHIoKHVuc2lnbmVkIGxvbmcpX192YShvZmZzZXQpLCBzaXplLCBmbGFncykgPCAwKSB7CiAJCWZyZWVfbWVtdHlwZShvZmZzZXQsIG9mZnNldCArIHNpemUpOwogCQlwcmludGsoS0VSTl9JTkZPCiAJCSIlczolZCAvZGV2L21lbSBpb3JlbWFwX2NoYW5nZV9hdHRyIGZhaWxlZCAlcyBmb3IgJUx4LSVMeFxuIiwKQEAgLTU4Nyw0ICs0ODksMyBAQAogCiAJZnJlZV9tZW10eXBlKGFkZHIsIGFkZHIgKyBzaXplKTsKIH0KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGZfaW4uYyBiL2FyY2gveDg2L21tL3BmX2luLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZhMTkxMQotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gveDg2L21tL3BmX2luLmMKQEAgLTAsMCArMSw0ODkgQEAKKy8qCisgKiAgRmF1bHQgSW5qZWN0aW9uIFRlc3QgaGFybmVzcyAoRkkpCisgKiAgQ29weXJpZ2h0IChDKSBJbnRlbCBDcm9wLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LAorICogIFVTQS4KKyAqCisgKi8KKworLyogIElkOiBwZl9pbi5jLHYgMS4xLjEuMSAyMDAyLzExLzEyIDA1OjU2OjMyIGJybG9jayBFeHAKKyAqICBDb3B5cmlnaHQgYnkgSW50ZWwgQ3JvcC4sIDIwMDIKKyAqICBMb3VpcyBaaHVhbmcgKGxvdWlzLnpodWFuZ0BpbnRlbC5jb20pCisgKgorICogIEJqb3JuIFN0ZWluYnJpbmsgKEIuU3RlaW5icmlua0BnbXguZGUpLCAyMDA3CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPiAvKiBzdHJ1Y3QgcHRfcmVncyAqLworI2luY2x1ZGUgInBmX2luLmgiCisKKyNpZmRlZiBfX2kzODZfXworLyogSUEzMiBNYW51YWwgMywgMi0xICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweEYwLCAweEYyLCAweEYzLCAweDJFLCAweDM2LCAweDNFLCAweDI2LCAweDY0LAorCTB4NjUsIDB4MkUsIDB4M0UsIDB4NjYsIDB4NjcKK307CisvKiBJQTMyIE1hbnVhbCAzLCAzLTQzMiovCitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ19yb3BbXSA9IHsKKwkweDhBLCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CitzdGF0aWMgdW5zaWduZWQgaW50IHJlZ193b3BbXSA9IHsgMHg4OCwgMHg4OSB9Oworc3RhdGljIHVuc2lnbmVkIGludCBpbW1fd29wW10gPSB7IDB4QzYsIDB4QzcgfTsKKy8qIElBMzIgTWFudWFsIDMsIDMtNDMyKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgcnczMltdID0geworCTB4ODksIDB4OEIsIDB4QzcsIDB4QjYwRiwgMHhCNzBGLCAweEJFMEYsIDB4QkYwRgorfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXc4W10gPSB7IDB4ODgsIDB4OEEsIDB4QzYsIDB4QjYwRiwgMHhCRTBGIH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13MTZbXSA9IHsgMHhCNzBGLCAweEJGMEYgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXczMltdID0geyAweDg5LCAweDhCLCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IG13NjRbXSA9IHt9OworI2Vsc2UgLyogbm90IF9faTM4Nl9fICovCitzdGF0aWMgdW5zaWduZWQgY2hhciBwcmVmaXhfY29kZXNbXSA9IHsKKwkweDY2LCAweDY3LCAweDJFLCAweDNFLCAweDI2LCAweDY0LCAweDY1LCAweDM2LAorCTB4RjAsIDB4RjMsIDB4RjIsCisJLyogUkVYIFByZWZpeGVzICovCisJMHg0MCwgMHg0MSwgMHg0MiwgMHg0MywgMHg0NCwgMHg0NSwgMHg0NiwgMHg0NywKKwkweDQ4LCAweDQ5LCAweDRhLCAweDRiLCAweDRjLCAweDRkLCAweDRlLCAweDRmCit9OworLyogQU1ENjQgTWFudWFsIDMsIEFwcGVuZGl4IEEqLworc3RhdGljIHVuc2lnbmVkIGludCByZWdfcm9wW10gPSB7CisJMHg4QSwgMHg4QiwgMHhCNjBGLCAweEI3MEYsIDB4QkUwRiwgMHhCRjBGCit9Oworc3RhdGljIHVuc2lnbmVkIGludCByZWdfd29wW10gPSB7IDB4ODgsIDB4ODkgfTsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgaW1tX3dvcFtdID0geyAweEM2LCAweEM3IH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3OFtdID0geyAweEM2LCAweDg4LCAweDhBIH07CitzdGF0aWMgdW5zaWduZWQgaW50IHJ3MzJbXSA9IHsKKwkweEM3LCAweDg5LCAweDhCLCAweEI2MEYsIDB4QjcwRiwgMHhCRTBGLCAweEJGMEYKK307CisvKiA4IGJpdCBvbmx5ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13OFtdID0geyAweEM2LCAweDg4LCAweDhBLCAweEI2MEYsIDB4QkUwRiB9OworLyogMTYgYml0IG9ubHkgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgbXcxNltdID0geyAweEI3MEYsIDB4QkYwRiB9OworLyogMTYgb3IgMzIgYml0ICovCitzdGF0aWMgdW5zaWduZWQgaW50IG13MzJbXSA9IHsgMHhDNyB9OworLyogMTYsIDMyIG9yIDY0IGJpdCAqLworc3RhdGljIHVuc2lnbmVkIGludCBtdzY0W10gPSB7IDB4ODksIDB4OEIgfTsKKyNlbmRpZiAvKiBub3QgX19pMzg2X18gKi8KKworc3RhdGljIGludCBza2lwX3ByZWZpeCh1bnNpZ25lZCBjaGFyICphZGRyLCBpbnQgKnNob3J0ZWQsIGludCAqZW5sYXJnZWQsCisJCQkJCQkJCWludCAqcmV4cikKK3sKKwlpbnQgaTsKKwl1bnNpZ25lZCBjaGFyICpwID0gYWRkcjsKKwkqc2hvcnRlZCA9IDA7CisJKmVubGFyZ2VkID0gMDsKKwkqcmV4ciA9IDA7CisKK3Jlc3RhcnQ6CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJlZml4X2NvZGVzKTsgaSsrKSB7CisJCWlmICgqcCA9PSBwcmVmaXhfY29kZXNbaV0pIHsKKwkJCWlmICgqcCA9PSAweDY2KQorCQkJCSpzaG9ydGVkID0gMTsKKyNpZmRlZiBfX2FtZDY0X18KKwkJCWlmICgoKnAgJiAweGY4KSA9PSAweDQ4KQorCQkJCSplbmxhcmdlZCA9IDE7CisJCQlpZiAoKCpwICYgMHhmNCkgPT0gMHg0NCkKKwkJCQkqcmV4ciA9IDE7CisjZW5kaWYKKwkJCXArKzsKKwkJCWdvdG8gcmVzdGFydDsKKwkJfQorCX0KKworCXJldHVybiAocCAtIGFkZHIpOworfQorCitzdGF0aWMgaW50IGdldF9vcGNvZGUodW5zaWduZWQgY2hhciAqYWRkciwgdW5zaWduZWQgaW50ICpvcGNvZGUpCit7CisJaW50IGxlbjsKKworCWlmICgqYWRkciA9PSAweDBGKSB7CisJCS8qIDB4MEYgaXMgZXh0ZW5zaW9uIGluc3RydWN0aW9uICovCisJCSpvcGNvZGUgPSAqKHVuc2lnbmVkIHNob3J0ICopYWRkcjsKKwkJbGVuID0gMjsKKwl9IGVsc2UgeworCQkqb3Bjb2RlID0gKmFkZHI7CisJCWxlbiA9IDE7CisJfQorCisJcmV0dXJuIGxlbjsKK30KKworI2RlZmluZSBDSEVDS19PUF9UWVBFKG9wY29kZSwgYXJyYXksIHR5cGUpIFwKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhcnJheSk7IGkrKykgeyBcCisJCWlmIChhcnJheVtpXSA9PSBvcGNvZGUpIHsgXAorCQkJcnYgPSB0eXBlOyBcCisJCQlnb3RvIGV4aXQ7IFwKKwkJfSBcCisJfQorCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisJaW50IGk7CisJZW51bSByZWFzb25fdHlwZSBydiA9IE9USEVSUzsKKworCXAgPSAodW5zaWduZWQgY2hhciAqKWluc19hZGRyOworCXAgKz0gc2tpcF9wcmVmaXgocCwgJnNob3J0ZWQsICZlbmxhcmdlZCwgJnJleHIpOworCXAgKz0gZ2V0X29wY29kZShwLCAmb3Bjb2RlKTsKKworCUNIRUNLX09QX1RZUEUob3Bjb2RlLCByZWdfcm9wLCBSRUdfUkVBRCk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIHJlZ193b3AsIFJFR19XUklURSk7CisJQ0hFQ0tfT1BfVFlQRShvcGNvZGUsIGltbV93b3AsIElNTV9XUklURSk7CisKK2V4aXQ6CisJcmV0dXJuIHJ2OworfQorI3VuZGVmIENIRUNLX09QX1RZUEUKKworc3RhdGljIHVuc2lnbmVkIGludCBnZXRfaW5zX3JlZ193aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzgpOyBpKyspCisJCWlmIChydzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShydzMyKTsgaSsrKQorCQlpZiAocnczMltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gKHNob3J0ZWQgPyAyIDogKGVubGFyZ2VkID8gOCA6IDQpKTsKKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBVbmtub3duIG9wY29kZSAweCUwMnhcbiIsIG9wY29kZSk7CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKQoreworCXVuc2lnbmVkIGludCBvcGNvZGU7CisJdW5zaWduZWQgY2hhciAqcDsKKwlpbnQgaSwgc2hvcnRlZCwgZW5sYXJnZWQsIHJleHI7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzgpOyBpKyspCisJCWlmIChtdzhbaV0gPT0gb3Bjb2RlKQorCQkJcmV0dXJuIDE7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzE2KTsgaSsrKQorCQlpZiAobXcxNltpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gMjsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG13MzIpOyBpKyspCisJCWlmIChtdzMyW2ldID09IG9wY29kZSkKKwkJCXJldHVybiBzaG9ydGVkID8gMiA6IDQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShtdzY0KTsgaSsrKQorCQlpZiAobXc2NFtpXSA9PSBvcGNvZGUpCisJCQlyZXR1cm4gc2hvcnRlZCA/IDIgOiAoZW5sYXJnZWQgPyA4IDogNCk7CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogVW5rbm93biBvcGNvZGUgMHglMDJ4XG4iLCBvcGNvZGUpOworCXJldHVybiAwOworfQorCisvKgorICogRGVmaW5lIHJlZ2lzdGVyIGlkZW50IGluIG1vZC9ybSBieXRlLgorICogTm90ZTogdGhlc2UgYXJlIE5PVCB0aGUgc2FtZSBhcyBpbiBwdHJhY2UtYWJpLmguCisgKi8KK2VudW0geworCWFyZ19BTCA9IDAsCisJYXJnX0NMID0gMSwKKwlhcmdfREwgPSAyLAorCWFyZ19CTCA9IDMsCisJYXJnX0FIID0gNCwKKwlhcmdfQ0ggPSA1LAorCWFyZ19ESCA9IDYsCisJYXJnX0JIID0gNywKKworCWFyZ19BWCA9IDAsCisJYXJnX0NYID0gMSwKKwlhcmdfRFggPSAyLAorCWFyZ19CWCA9IDMsCisJYXJnX1NQID0gNCwKKwlhcmdfQlAgPSA1LAorCWFyZ19TSSA9IDYsCisJYXJnX0RJID0gNywKKyNpZmRlZiBfX2FtZDY0X18KKwlhcmdfUjggID0gOCwKKwlhcmdfUjkgID0gOSwKKwlhcmdfUjEwID0gMTAsCisJYXJnX1IxMSA9IDExLAorCWFyZ19SMTIgPSAxMiwKKwlhcmdfUjEzID0gMTMsCisJYXJnX1IxNCA9IDE0LAorCWFyZ19SMTUgPSAxNQorI2VuZGlmCit9OworCitzdGF0aWMgdW5zaWduZWQgY2hhciAqZ2V0X3JlZ193OChpbnQgbm8sIHN0cnVjdCBwdF9yZWdzICpyZWdzKQoreworCXVuc2lnbmVkIGNoYXIgKnJ2ID0gTlVMTDsKKworCXN3aXRjaCAobm8pIHsKKwljYXNlIGFyZ19BTDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQkw6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NMOgorCQlydiA9ICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmN4OworCQlicmVhazsKKwljYXNlIGFyZ19ETDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQUg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmF4OworCQlicmVhazsKKwljYXNlIGFyZ19CSDoKKwkJcnYgPSAxICsgKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+Yng7CisJCWJyZWFrOworCWNhc2UgYXJnX0NIOgorCQlydiA9IDEgKyAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5jeDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREg6CisJCXJ2ID0gMSArICh1bnNpZ25lZCBjaGFyICopJnJlZ3MtPmR4OworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yODsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjk6CisJCXJ2ID0gKHVuc2lnbmVkIGNoYXIgKikmcmVncy0+cjk7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTE7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMjoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTI7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMzoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTQ7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNToKKwkJcnYgPSAodW5zaWduZWQgY2hhciAqKSZyZWdzLT5yMTU7CisJCWJyZWFrOworI2VuZGlmCisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IEVycm9yIHJlZyBubyMgJWRcbiIsIG5vKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiBydjsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgKmdldF9yZWdfdzMyKGludCBubywgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgbG9uZyAqcnYgPSBOVUxMOworCisJc3dpdGNoIChubykgeworCWNhc2UgYXJnX0FYOgorCQlydiA9ICZyZWdzLT5heDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfQlg6CisJCXJ2ID0gJnJlZ3MtPmJ4OworCQlicmVhazsKKwljYXNlIGFyZ19DWDoKKwkJcnYgPSAmcmVncy0+Y3g7CisJCWJyZWFrOworCWNhc2UgYXJnX0RYOgorCQlydiA9ICZyZWdzLT5keDsKKwkJYnJlYWs7CisJY2FzZSBhcmdfU1A6CisJCXJ2ID0gJnJlZ3MtPnNwOworCQlicmVhazsKKwljYXNlIGFyZ19CUDoKKwkJcnYgPSAmcmVncy0+YnA7CisJCWJyZWFrOworCWNhc2UgYXJnX1NJOgorCQlydiA9ICZyZWdzLT5zaTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfREk6CisJCXJ2ID0gJnJlZ3MtPmRpOworCQlicmVhazsKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIGFyZ19SODoKKwkJcnYgPSAmcmVncy0+cjg7CisJCWJyZWFrOworCWNhc2UgYXJnX1I5OgorCQlydiA9ICZyZWdzLT5yOTsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEwOgorCQlydiA9ICZyZWdzLT5yMTA7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxMToKKwkJcnYgPSAmcmVncy0+cjExOworCQlicmVhazsKKwljYXNlIGFyZ19SMTI6CisJCXJ2ID0gJnJlZ3MtPnIxMjsKKwkJYnJlYWs7CisJY2FzZSBhcmdfUjEzOgorCQlydiA9ICZyZWdzLT5yMTM7CisJCWJyZWFrOworCWNhc2UgYXJnX1IxNDoKKwkJcnYgPSAmcmVncy0+cjE0OworCQlicmVhazsKKwljYXNlIGFyZ19SMTU6CisJCXJ2ID0gJnJlZ3MtPnIxNTsKKwkJYnJlYWs7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3IgcmVnIG5vIyAlZFxuIiwgbm8pOworCX0KKworCXJldHVybiBydjsKK30KKwordW5zaWduZWQgbG9uZyBnZXRfaW5zX3JlZ192YWwodW5zaWduZWQgbG9uZyBpbnNfYWRkciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwlpbnQgcmVnOworCXVuc2lnbmVkIGNoYXIgKnA7CisJaW50IGksIHNob3J0ZWQsIGVubGFyZ2VkLCByZXhyOworCXVuc2lnbmVkIGxvbmcgcnY7CisKKwlwID0gKHVuc2lnbmVkIGNoYXIgKilpbnNfYWRkcjsKKwlwICs9IHNraXBfcHJlZml4KHAsICZzaG9ydGVkLCAmZW5sYXJnZWQsICZyZXhyKTsKKwlwICs9IGdldF9vcGNvZGUocCwgJm9wY29kZSk7CisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocmVnX3JvcCk7IGkrKykKKwkJaWYgKHJlZ19yb3BbaV0gPT0gb3Bjb2RlKSB7CisJCQlydiA9IFJFR19SRUFEOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyZWdfd29wKTsgaSsrKQorCQlpZiAocmVnX3dvcFtpXSA9PSBvcGNvZGUpIHsKKwkJCXJ2ID0gUkVHX1dSSVRFOworCQkJZ290byBkb193b3JrOworCQl9CisKKwlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogTm90IGEgcmVnaXN0ZXIgaW5zdHJ1Y3Rpb24sIG9wY29kZSAiCisJCQkJCQkJIjB4JTAyeFxuIiwgb3Bjb2RlKTsKKwlnb3RvIGVycjsKKworZG9fd29yazoKKwltb2Rfcm0gPSAqcDsKKwlyZWcgPSAoKG1vZF9ybSA+PiAzKSAmIDB4NykgfCAocmV4ciA8PCAzKTsKKwlzd2l0Y2ggKGdldF9pbnNfcmVnX3dpZHRoKGluc19hZGRyKSkgeworCWNhc2UgMToKKwkJcmV0dXJuICpnZXRfcmVnX3c4KHJlZywgcmVncyk7CisKKwljYXNlIDI6CisJCXJldHVybiAqKHVuc2lnbmVkIHNob3J0ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworCWNhc2UgNDoKKwkJcmV0dXJuICoodW5zaWduZWQgaW50ICopZ2V0X3JlZ193MzIocmVnLCByZWdzKTsKKworI2lmZGVmIF9fYW1kNjRfXworCWNhc2UgODoKKwkJcmV0dXJuICoodW5zaWduZWQgbG9uZyAqKWdldF9yZWdfdzMyKHJlZywgcmVncyk7CisjZW5kaWYKKworCWRlZmF1bHQ6CisJCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBFcnJvciB3aWR0aCMgJWRcbiIsIHJlZyk7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpCit7CisJdW5zaWduZWQgaW50IG9wY29kZTsKKwl1bnNpZ25lZCBjaGFyIG1vZF9ybTsKKwl1bnNpZ25lZCBjaGFyIG1vZDsKKwl1bnNpZ25lZCBjaGFyICpwOworCWludCBpLCBzaG9ydGVkLCBlbmxhcmdlZCwgcmV4cjsKKwl1bnNpZ25lZCBsb25nIHJ2OworCisJcCA9ICh1bnNpZ25lZCBjaGFyICopaW5zX2FkZHI7CisJcCArPSBza2lwX3ByZWZpeChwLCAmc2hvcnRlZCwgJmVubGFyZ2VkLCAmcmV4cik7CisJcCArPSBnZXRfb3Bjb2RlKHAsICZvcGNvZGUpOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGltbV93b3ApOyBpKyspCisJCWlmIChpbW1fd29wW2ldID09IG9wY29kZSkgeworCQkJcnYgPSBJTU1fV1JJVEU7CisJCQlnb3RvIGRvX3dvcms7CisJCX0KKworCXByaW50ayhLRVJOX0VSUiAibW1pb3RyYWNlOiBOb3QgYW4gaW1tZWRpYXRlIGluc3RydWN0aW9uLCBvcGNvZGUgIgorCQkJCQkJCSIweCUwMnhcbiIsIG9wY29kZSk7CisJZ290byBlcnI7CisKK2RvX3dvcms6CisJbW9kX3JtID0gKnA7CisJbW9kID0gbW9kX3JtID4+IDY7CisJcCsrOworCXN3aXRjaCAobW9kKSB7CisJY2FzZSAwOgorCQkvKiBpZiByL20gaXMgNSB3ZSBoYXZlIGEgMzIgZGlzcCAoSUEzMiBNYW51YWwgMywgVGFibGUgMi0yKSAgKi8KKwkJLyogQU1ENjQ6IFhYWCBDaGVjayBmb3IgYWRkcmVzcyBzaXplIHByZWZpeD8gKi8KKwkJaWYgKChtb2Rfcm0gJiAweDcpID09IDB4NSkKKwkJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDE6CisJCXAgKz0gMTsKKwkJYnJlYWs7CisKKwljYXNlIDI6CisJCXAgKz0gNDsKKwkJYnJlYWs7CisKKwljYXNlIDM6CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJtbWlvdHJhY2U6IG5vdCBhIG1lbW9yeSBhY2Nlc3MgaW5zdHJ1Y3Rpb24gIgorCQkJCQkJImF0IDB4JWx4LCBybV9tb2Q9MHglMDJ4XG4iLAorCQkJCQkJaW5zX2FkZHIsIG1vZF9ybSk7CisJfQorCisJc3dpdGNoIChnZXRfaW5zX3JlZ193aWR0aChpbnNfYWRkcikpIHsKKwljYXNlIDE6CisJCXJldHVybiAqKHVuc2lnbmVkIGNoYXIgKilwOworCisJY2FzZSAyOgorCQlyZXR1cm4gKih1bnNpZ25lZCBzaG9ydCAqKXA7CisKKwljYXNlIDQ6CisJCXJldHVybiAqKHVuc2lnbmVkIGludCAqKXA7CisKKyNpZmRlZiBfX2FtZDY0X18KKwljYXNlIDg6CisJCXJldHVybiAqKHVuc2lnbmVkIGxvbmcgKilwOworI2VuZGlmCisKKwlkZWZhdWx0OgorCQlwcmludGsoS0VSTl9FUlIgIm1taW90cmFjZTogRXJyb3I6IHdpZHRoLlxuIik7CisJfQorCitlcnI6CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZl9pbi5oIGIvYXJjaC94ODYvbW0vcGZfaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMDUzNDFhCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vcGZfaW4uaApAQCAtMCwwICsxLDM5IEBACisvKgorICogIEZhdWx0IEluamVjdGlvbiBUZXN0IGhhcm5lc3MgKEZJKQorICogIENvcHlyaWdodCAoQykgSW50ZWwgQ3JvcC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqICBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywKKyAqICBVU0EuCisgKgorICovCisKKyNpZm5kZWYgX19QRl9IXworI2RlZmluZSBfX1BGX0hfCisKK2VudW0gcmVhc29uX3R5cGUgeworCU5PVF9NRSwJLyogcGFnZSBmYXVsdCBpcyBub3QgaW4gcmVnaW9ucyAqLworCU5PVEhJTkcsCS8qIGFjY2VzcyBvdGhlcnMgcG9pbnQgaW4gcmVnaW9ucyAqLworCVJFR19SRUFELAkvKiByZWFkIGZyb20gYWRkciB0byByZWcgKi8KKwlSRUdfV1JJVEUsCS8qIHdyaXRlIGZyb20gcmVnIHRvIGFkZHIgKi8KKwlJTU1fV1JJVEUsCS8qIHdyaXRlIGZyb20gaW1tIHRvIGFkZHIgKi8KKwlPVEhFUlMJLyogT3RoZXIgaW5zdHJ1Y3Rpb25zIGNhbiBub3QgaW50ZXJjZXB0ICovCit9OworCitlbnVtIHJlYXNvbl90eXBlIGdldF9pbnNfdHlwZSh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGludCBnZXRfaW5zX21lbV93aWR0aCh1bnNpZ25lZCBsb25nIGluc19hZGRyKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19yZWdfdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKK3Vuc2lnbmVkIGxvbmcgZ2V0X2luc19pbW1fdmFsKHVuc2lnbmVkIGxvbmcgaW5zX2FkZHIpOworCisjZW5kaWYgLyogX19QRl9IXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0vcGd0YWJsZS5jIGIvYXJjaC94ODYvbW0vcGd0YWJsZS5jCmluZGV4IDUwMTU5NzYuLjU1N2IyYWIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3BndGFibGUuYworKysgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlLmMKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGIuaD4KKyNpbmNsdWRlIDxhc20vZml4bWFwLmg+CiAKIHB0ZV90ICpwdGVfYWxsb2Nfb25lX2tlcm5lbChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewpAQCAtNjUsMTIgKzY2LDYgQEAKIHN0YXRpYyB2b2lkIHBnZF9jdG9yKHZvaWQgKnApCiB7CiAJcGdkX3QgKnBnZCA9IHA7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCS8qIENsZWFyIHVzZXJtb2RlIHBhcnRzIG9mIFBHRCAqLwotCW1lbXNldChwZ2QsIDAsIEtFUk5FTF9QR0RfQk9VTkRBUlkqc2l6ZW9mKHBnZF90KSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCS8qIElmIHRoZSBwZ2QgcG9pbnRzIHRvIGEgc2hhcmVkIHBhZ2V0YWJsZSBsZXZlbCAoZWl0aGVyIHRoZQogCSAgIHB0ZXMgaW4gbm9uLVBBRSwgb3Igc2hhcmVkIFBNRCBpbiBQQUUpLCB0aGVuIGp1c3QgY29weSB0aGUKQEAgLTkwLDggKzg1LDYgQEAKIAkvKiBsaXN0IHJlcXVpcmVkIHRvIHN5bmMga2VybmVsIG1hcHBpbmcgdXBkYXRlcyAqLwogCWlmICghU0hBUkVEX0tFUk5FTF9QTUQpCiAJCXBnZF9saXN0X2FkZChwZ2QpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQgcGdkX2R0b3Iodm9pZCAqcGdkKQpAQCAtMTE5LDMwICsxMTIsNiBAQAogCiAjaWZkZWYgQ09ORklHX1g4Nl9QQUUKIC8qCi0gKiBNb3AgdXAgYW55IHBtZCBwYWdlcyB3aGljaCBtYXkgc3RpbGwgYmUgYXR0YWNoZWQgdG8gdGhlIHBnZC4KLSAqIE5vcm1hbGx5IHRoZXkgd2lsbCBiZSBmcmVlZCBieSBtdW5tYXAvZXhpdF9tbWFwLCBidXQgYW55IHBtZCB3ZQotICogcHJlYWxsb2NhdGUgd2hpY2ggbmV2ZXIgZ290IGEgY29ycmVzcG9uZGluZyB2bWEgd2lsbCBuZWVkIHRvIGJlCi0gKiBmcmVlZCBtYW51YWxseS4KLSAqLwotc3RhdGljIHZvaWQgcGdkX21vcF91cF9wbWRzKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkcCkKLXsKLQlpbnQgaTsKLQotCWZvcihpID0gMDsgaSA8IFVOU0hBUkVEX1BUUlNfUEVSX1BHRDsgaSsrKSB7Ci0JCXBnZF90IHBnZCA9IHBnZHBbaV07Ci0KLQkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7Ci0JCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKLQotCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKLQotCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOwotCQkJcG1kX2ZyZWUobW0sIHBtZCk7Ci0JCX0KLQl9Ci19Ci0KLS8qCiAgKiBJbiBQQUUgbW9kZSwgd2UgbmVlZCB0byBkbyBhIGNyMyByZWxvYWQgKD10bGIgZmx1c2gpIHdoZW4KICAqIHVwZGF0aW5nIHRoZSB0b3AtbGV2ZWwgcGFnZXRhYmxlIGVudHJpZXMgdG8gZ3VhcmFudGVlIHRoZQogICogcHJvY2Vzc29yIG5vdGljZXMgdGhlIHVwZGF0ZS4gIFNpbmNlIHRoaXMgaXMgZXhwZW5zaXZlLCBhbmQKQEAgLTE1MywzMSArMTIyLDcgQEAKICAqIG5vdCBzaGFyZWQgYmV0d2VlbiBwYWdldGFibGVzICghU0hBUkVEX0tFUk5FTF9QTURTKSwgd2UgYWxsb2NhdGUKICAqIGFuZCBpbml0aWFsaXplIHRoZSBrZXJuZWwgcG1kcyBoZXJlLgogICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCi17Ci0JcHVkX3QgKnB1ZDsKLQl1bnNpZ25lZCBsb25nIGFkZHI7Ci0JaW50IGk7Ci0KLQlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7Ci0gCWZvciAoYWRkciA9IGkgPSAwOyBpIDwgVU5TSEFSRURfUFRSU19QRVJfUEdEOwotCSAgICAgaSsrLCBwdWQrKywgYWRkciArPSBQVURfU0laRSkgewotCQlwbWRfdCAqcG1kID0gcG1kX2FsbG9jX29uZShtbSwgYWRkcik7Ci0KLQkJaWYgKCFwbWQpIHsKLQkJCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKLQkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKLQkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKLQotCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKLQl9Ci0KLQlyZXR1cm4gMTsKLX0KKyNkZWZpbmUgUFJFQUxMT0NBVEVEX1BNRFMJVU5TSEFSRURfUFRSU19QRVJfUEdECiAKIHZvaWQgcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwdWRfdCAqcHVkcCwgcG1kX3QgKnBtZCkKIHsKQEAgLTE5NywzOSArMTQyLDEzMSBAQAogCQl3cml0ZV9jcjMocmVhZF9jcjMoKSk7CiB9CiAjZWxzZSAgLyogIUNPTkZJR19YODZfUEFFICovCisKIC8qIE5vIG5lZWQgdG8gcHJlcG9wdWxhdGUgYW55IHBhZ2V0YWJsZSBlbnRyaWVzIGluIG5vbi1QQUUgbW9kZXMuICovCi1zdGF0aWMgaW50IHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpCisjZGVmaW5lIFBSRUFMTE9DQVRFRF9QTURTCTAKKworI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCisKK3N0YXRpYyB2b2lkIGZyZWVfcG1kcyhwbWRfdCAqcG1kc1tdKQogewotCXJldHVybiAxOworCWludCBpOworCisJZm9yKGkgPSAwOyBpIDwgUFJFQUxMT0NBVEVEX1BNRFM7IGkrKykKKwkJaWYgKHBtZHNbaV0pCisJCQlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpcG1kc1tpXSk7CiB9CiAKLXN0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKK3N0YXRpYyBpbnQgcHJlYWxsb2NhdGVfcG1kcyhwbWRfdCAqcG1kc1tdKQogeworCWludCBpOworCWJvb2wgZmFpbGVkID0gZmFsc2U7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBtZF90ICpwbWQgPSAocG1kX3QgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTHxfX0dGUF9SRVBFQVQpOworCQlpZiAocG1kID09IE5VTEwpCisJCQlmYWlsZWQgPSB0cnVlOworCQlwbWRzW2ldID0gcG1kOworCX0KKworCWlmIChmYWlsZWQpIHsKKwkJZnJlZV9wbWRzKHBtZHMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlyZXR1cm4gMDsKIH0KLSNlbmRpZgkvKiBDT05GSUdfWDg2X1BBRSAqLworCisvKgorICogTW9wIHVwIGFueSBwbWQgcGFnZXMgd2hpY2ggbWF5IHN0aWxsIGJlIGF0dGFjaGVkIHRvIHRoZSBwZ2QuCisgKiBOb3JtYWxseSB0aGV5IHdpbGwgYmUgZnJlZWQgYnkgbXVubWFwL2V4aXRfbW1hcCwgYnV0IGFueSBwbWQgd2UKKyAqIHByZWFsbG9jYXRlIHdoaWNoIG5ldmVyIGdvdCBhIGNvcnJlc3BvbmRpbmcgdm1hIHdpbGwgbmVlZCB0byBiZQorICogZnJlZWQgbWFudWFsbHkuCisgKi8KK3N0YXRpYyB2b2lkIHBnZF9tb3BfdXBfcG1kcyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZHApCit7CisJaW50IGk7CisKKwlmb3IoaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsgaSsrKSB7CisJCXBnZF90IHBnZCA9IHBnZHBbaV07CisKKwkJaWYgKHBnZF92YWwocGdkKSAhPSAwKSB7CisJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopcGdkX3BhZ2VfdmFkZHIocGdkKTsKKworCQkJcGdkcFtpXSA9IG5hdGl2ZV9tYWtlX3BnZCgwKTsKKworCQkJcGFyYXZpcnRfcmVsZWFzZV9wbWQocGdkX3ZhbChwZ2QpID4+IFBBR0VfU0hJRlQpOworCQkJcG1kX2ZyZWUobW0sIHBtZCk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lkIHBnZF9wcmVwb3B1bGF0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QsIHBtZF90ICpwbWRzW10pCit7CisJcHVkX3QgKnB1ZDsKKwl1bnNpZ25lZCBsb25nIGFkZHI7CisJaW50IGk7CisKKwlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgMCk7CisKKyAJZm9yIChhZGRyID0gaSA9IDA7IGkgPCBQUkVBTExPQ0FURURfUE1EUzsKKwkgICAgIGkrKywgcHVkKyssIGFkZHIgKz0gUFVEX1NJWkUpIHsKKwkJcG1kX3QgKnBtZCA9IHBtZHNbaV07CisKKwkJaWYgKGkgPj0gS0VSTkVMX1BHRF9CT1VOREFSWSkKKwkJCW1lbWNweShwbWQsIChwbWRfdCAqKXBnZF9wYWdlX3ZhZGRyKHN3YXBwZXJfcGdfZGlyW2ldKSwKKwkJCSAgICAgICBzaXplb2YocG1kX3QpICogUFRSU19QRVJfUE1EKTsKKworCQlwdWRfcG9wdWxhdGUobW0sIHB1ZCwgcG1kKTsKKwl9Cit9CiAKIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcGdkX3QgKnBnZCA9IChwZ2RfdCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJcGdkX3QgKnBnZDsKKwlwbWRfdCAqcG1kc1tQUkVBTExPQ0FURURfUE1EU107CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCS8qIHNvIHRoYXQgYWxsb2NfcG1kIGNhbiB1c2UgaXQgKi8KKwlwZ2QgPSAocGdkX3QgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8pOworCisJaWYgKHBnZCA9PSBOVUxMKQorCQlnb3RvIG91dDsKKwogCW1tLT5wZ2QgPSBwZ2Q7Ci0JaWYgKHBnZCkKLQkJcGdkX2N0b3IocGdkKTsKIAotCWlmIChwZ2QgJiYgIXBnZF9wcmVwb3B1bGF0ZV9wbWQobW0sIHBnZCkpIHsKLQkJcGdkX2R0b3IocGdkKTsKLQkJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXBnZCk7Ci0JCXBnZCA9IE5VTEw7Ci0JfQorCWlmIChwcmVhbGxvY2F0ZV9wbWRzKHBtZHMpICE9IDApCisJCWdvdG8gb3V0X2ZyZWVfcGdkOworCisJaWYgKHBhcmF2aXJ0X3BnZF9hbGxvYyhtbSkgIT0gMCkKKwkJZ290byBvdXRfZnJlZV9wbWRzOworCisJLyoKKwkgKiBNYWtlIHN1cmUgdGhhdCBwcmUtcG9wdWxhdGluZyB0aGUgcG1kcyBpcyBhdG9taWMgd2l0aAorCSAqIHJlc3BlY3QgdG8gYW55dGhpbmcgd2Fsa2luZyB0aGUgcGdkX2xpc3QsIHNvIHRoYXQgdGhleQorCSAqIG5ldmVyIHNlZSBhIHBhcnRpYWxseSBwb3B1bGF0ZWQgcGdkLgorCSAqLworCXNwaW5fbG9ja19pcnFzYXZlKCZwZ2RfbG9jaywgZmxhZ3MpOworCisJcGdkX2N0b3IocGdkKTsKKwlwZ2RfcHJlcG9wdWxhdGVfcG1kKG1tLCBwZ2QsIHBtZHMpOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKIAogCXJldHVybiBwZ2Q7CisKK291dF9mcmVlX3BtZHM6CisJZnJlZV9wbWRzKHBtZHMpOworb3V0X2ZyZWVfcGdkOgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOworb3V0OgorCXJldHVybiBOVUxMOwogfQogCiB2b2lkIHBnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQogewogCXBnZF9tb3BfdXBfcG1kcyhtbSwgcGdkKTsKIAlwZ2RfZHRvcihwZ2QpOworCXBhcmF2aXJ0X3BnZF9mcmVlKG1tLCBwZ2QpOwogCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwZ2QpOwogfQogCkBAIC0yNTUsNyArMjkyLDcgQEAKIAogCWlmIChwdGVfeW91bmcoKnB0ZXApKQogCQlyZXQgPSB0ZXN0X2FuZF9jbGVhcl9iaXQoX1BBR0VfQklUX0FDQ0VTU0VELAotCQkJCQkgJnB0ZXAtPnB0ZSk7CisJCQkJCSAodW5zaWduZWQgbG9uZyAqKSAmcHRlcC0+cHRlKTsKIAogCWlmIChyZXQpCiAJCXB0ZV91cGRhdGUodm1hLT52bV9tbSwgYWRkciwgcHRlcCk7CkBAIC0yNzQsMyArMzExLDIyIEBACiAKIAlyZXR1cm4geW91bmc7CiB9CisKK2ludCBmaXhtYXBzX3NldDsKKwordm9pZCBfX25hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgcHRlX3QgcHRlKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKKworCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7CisJCUJVRygpOworCQlyZXR1cm47CisJfQorCXNldF9wdGVfdmFkZHIoYWRkcmVzcywgcHRlKTsKKwlmaXhtYXBzX3NldCsrOworfQorCit2b2lkIG5hdGl2ZV9zZXRfZml4bWFwKGVudW0gZml4ZWRfYWRkcmVzc2VzIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwlfX25hdGl2ZV9zZXRfZml4bWFwKGlkeCwgcGZuX3B0ZShwaHlzID4+IFBBR0VfU0hJRlQsIGZsYWdzKSk7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMgYi9hcmNoL3g4Ni9tbS9wZ3RhYmxlXzMyLmMKaW5kZXggMzY5Y2YwNi4uYjRiZWNiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vcGd0YWJsZV8zMi5jCisrKyBiL2FyY2gveDg2L21tL3BndGFibGVfMzIuYwpAQCAtNzEsNyArNzEsNyBAQAogICogQXNzb2NpYXRlIGEgdmlydHVhbCBwYWdlIGZyYW1lIHdpdGggYSBnaXZlbiBwaHlzaWNhbCBwYWdlIGZyYW1lIAogICogYW5kIHByb3RlY3Rpb24gZmxhZ3MgZm9yIHRoYXQgZnJhbWUuCiAgKi8gCi1zdGF0aWMgdm9pZCBzZXRfcHRlX3Bmbih1bnNpZ25lZCBsb25nIHZhZGRyLCB1bnNpZ25lZCBsb25nIHBmbiwgcGdwcm90X3QgZmxhZ3MpCit2b2lkIHNldF9wdGVfdmFkZHIodW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgcHRldmFsKQogewogCXBnZF90ICpwZ2Q7CiAJcHVkX3QgKnB1ZDsKQEAgLTk0LDggKzk0LDggQEAKIAkJcmV0dXJuOwogCX0KIAlwdGUgPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIHZhZGRyKTsKLQlpZiAocGdwcm90X3ZhbChmbGFncykpCi0JCXNldF9wdGVfcHJlc2VudCgmaW5pdF9tbSwgdmFkZHIsIHB0ZSwgcGZuX3B0ZShwZm4sIGZsYWdzKSk7CisJaWYgKHB0ZV92YWwocHRldmFsKSkKKwkJc2V0X3B0ZV9wcmVzZW50KCZpbml0X21tLCB2YWRkciwgcHRlLCBwdGV2YWwpOwogCWVsc2UKIAkJcHRlX2NsZWFyKCZpbml0X21tLCB2YWRkciwgcHRlKTsKIApAQCAtMTQxLDIyICsxNDEsOSBAQAogCV9fZmx1c2hfdGxiX29uZSh2YWRkcik7CiB9CiAKLXN0YXRpYyBpbnQgZml4bWFwczsKIHVuc2lnbmVkIGxvbmcgX19GSVhBRERSX1RPUCA9IDB4ZmZmZmYwMDA7CiBFWFBPUlRfU1lNQk9MKF9fRklYQUREUl9UT1ApOwogCi12b2lkIF9fc2V0X2ZpeG1hcCAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKQotewotCXVuc2lnbmVkIGxvbmcgYWRkcmVzcyA9IF9fZml4X3RvX3ZpcnQoaWR4KTsKLQotCWlmIChpZHggPj0gX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSB7Ci0JCUJVRygpOwotCQlyZXR1cm47Ci0JfQotCXNldF9wdGVfcGZuKGFkZHJlc3MsIHBoeXMgPj4gUEFHRV9TSElGVCwgZmxhZ3MpOwotCWZpeG1hcHMrKzsKLX0KLQogLyoqCiAgKiByZXNlcnZlX3RvcF9hZGRyZXNzIC0gcmVzZXJ2ZXMgYSBob2xlIGluIHRoZSB0b3Agb2Yga2VybmVsIGFkZHJlc3Mgc3BhY2UKICAqIEByZXNlcnZlIC0gc2l6ZSBvZiBob2xlIHRvIHJlc2VydmUKQEAgLTE2NCwxMSArMTUxLDQ0IEBACiAgKiBDYW4gYmUgdXNlZCB0byByZWxvY2F0ZSB0aGUgZml4bWFwIGFyZWEgYW5kIHBva2UgYSBob2xlIGluIHRoZSB0b3AKICAqIG9mIGtlcm5lbCBhZGRyZXNzIHNwYWNlIHRvIG1ha2Ugcm9vbSBmb3IgYSBoeXBlcnZpc29yLgogICovCi12b2lkIHJlc2VydmVfdG9wX2FkZHJlc3ModW5zaWduZWQgbG9uZyByZXNlcnZlKQordm9pZCBfX2luaXQgcmVzZXJ2ZV90b3BfYWRkcmVzcyh1bnNpZ25lZCBsb25nIHJlc2VydmUpCiB7Ci0JQlVHX09OKGZpeG1hcHMgPiAwKTsKKwlCVUdfT04oZml4bWFwc19zZXQgPiAwKTsKIAlwcmludGsoS0VSTl9JTkZPICJSZXNlcnZpbmcgdmlydHVhbCBhZGRyZXNzIHNwYWNlIGFib3ZlIDB4JTA4eFxuIiwKIAkgICAgICAgKGludCktcmVzZXJ2ZSk7CiAJX19GSVhBRERSX1RPUCA9IC1yZXNlcnZlIC0gUEFHRV9TSVpFOwogCV9fVk1BTExPQ19SRVNFUlZFICs9IHJlc2VydmU7CiB9CisKKy8qCisgKiB2bWFsbG9jPXNpemUgZm9yY2VzIHRoZSB2bWFsbG9jIGFyZWEgdG8gYmUgZXhhY3RseSAnc2l6ZScKKyAqIGJ5dGVzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIGluY3JlYXNlIChvciBkZWNyZWFzZSkgdGhlCisgKiB2bWFsbG9jIGFyZWEgLSB0aGUgZGVmYXVsdCBpcyAxMjhtLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV92bWFsbG9jKGNoYXIgKmFyZykKK3sKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlfX1ZNQUxMT0NfUkVTRVJWRSA9IG1lbXBhcnNlKGFyZywgJmFyZyk7CisJcmV0dXJuIDA7Cit9CitlYXJseV9wYXJhbSgidm1hbGxvYyIsIHBhcnNlX3ZtYWxsb2MpOworCisvKgorICogcmVzZXJ2ZXRvcD1zaXplIHJlc2VydmVzIGEgaG9sZSBhdCB0aGUgdG9wIG9mIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSB3aGljaAorICogYSBoeXBlcnZpc29yIGNhbiBsb2FkIGludG8gbGF0ZXIuICBOZWVkZWQgZm9yIGR5bmFtaWNhbGx5IGxvYWRlZCBoeXBlcnZpc29ycywKKyAqIHNvIHJlbG9jYXRpbmcgdGhlIGZpeG1hcCBjYW4gYmUgZG9uZSBiZWZvcmUgcGFnaW5nIGluaXRpYWxpemF0aW9uLgorICovCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9yZXNlcnZldG9wKGNoYXIgKmFyZykKK3sKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CisKKwlpZiAoIWFyZykKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlhZGRyZXNzID0gbWVtcGFyc2UoYXJnLCAmYXJnKTsKKwlyZXNlcnZlX3RvcF9hZGRyZXNzKGFkZHJlc3MpOworCXJldHVybiAwOworfQorZWFybHlfcGFyYW0oInJlc2VydmV0b3AiLCBwYXJzZV9yZXNlcnZldG9wKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3NyYXRfMzIuYyBiL2FyY2gveDg2L21tL3NyYXRfMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDFkNjdmCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vc3JhdF8zMi5jCkBAIC0wLDAgKzEsMjgwIEBACisvKgorICogU29tZSBvZiB0aGUgY29kZSBpbiB0aGlzIGZpbGUgaGFzIGJlZW4gZ2xlYW5lZCBmcm9tIHRoZSA2NCBiaXQgCisgKiBkaXNjb250aWdtZW0gc3VwcG9ydCBjb2RlIGJhc2UuCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAyLCBJQk0gQ29ycC4KKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgICAgICAgICAKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgR09PRCBUSVRMRSBvcgorICogTk9OIElORlJJTkdFTUVOVC4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKKyAqIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiBTZW5kIGZlZWRiYWNrIHRvIFBhdCBHYXVnaGVuIDxnb25lQHVzLmlibS5jb20+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tbXpvbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9hY3BpLmg+CisjaW5jbHVkZSA8bGludXgvbm9kZW1hc2suaD4KKyNpbmNsdWRlIDxhc20vc3JhdC5oPgorI2luY2x1ZGUgPGFzbS90b3BvbG9neS5oPgorI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorCisvKgorICogcHJveGltaXR5IG1hY3JvcyBhbmQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBOT0RFX0FSUkFZX0lOREVYKHgpCSgoeCkgLyA4KQkvKiA4IGJpdHMvY2hhciAqLworI2RlZmluZSBOT0RFX0FSUkFZX09GRlNFVCh4KQkoKHgpICUgOCkJLyogOCBiaXRzL2NoYXIgKi8KKyNkZWZpbmUgQk1BUF9TRVQoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gfD0gMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKQorI2RlZmluZSBCTUFQX1RFU1QoYm1hcCwgYml0KQkoKGJtYXApW05PREVfQVJSQVlfSU5ERVgoYml0KV0gJiAoMSA8PCBOT0RFX0FSUkFZX09GRlNFVChiaXQpKSkKKy8qIGJpdG1hcCBsZW5ndGg7IF9QWE0gaXMgYXQgbW9zdCAyNTUgKi8KKyNkZWZpbmUgUFhNX0JJVE1BUF9MRU4gKE1BWF9QWE1fRE9NQUlOUyAvIDgpIAorc3RhdGljIHU4IF9faW5pdGRhdGEgcHhtX2JpdG1hcFtQWE1fQklUTUFQX0xFTl07CS8qIGJpdG1hcCBvZiBwcm94aW1pdHkgZG9tYWlucyAqLworCisjZGVmaW5lIE1BWF9DSFVOS1NfUEVSX05PREUJMworI2RlZmluZSBNQVhDSFVOS1MJCShNQVhfQ0hVTktTX1BFUl9OT0RFICogTUFYX05VTU5PREVTKQorc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgeworCXVuc2lnbmVkIGxvbmcJc3RhcnRfcGZuOworCXVuc2lnbmVkIGxvbmcJZW5kX3BmbjsKKwl1OAlweG07CQkvLyBwcm94aW1pdHkgZG9tYWluIG9mIG5vZGUKKwl1OAluaWQ7CQkvLyB3aGljaCBjbm9kZSBjb250YWlucyB0aGlzIGNodW5rPworCXU4CWJhbms7CQkvLyB3aGljaCBtZW0gYmFuayBvbiB0aGlzIG5vZGUKK307CitzdGF0aWMgc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgX19pbml0ZGF0YSBub2RlX21lbW9yeV9jaHVua1tNQVhDSFVOS1NdOworCitzdGF0aWMgaW50IF9faW5pdGRhdGEgbnVtX21lbW9yeV9jaHVua3M7IC8qIHRvdGFsIG51bWJlciBvZiBtZW1vcnkgY2h1bmtzICovCitzdGF0aWMgdTggX19pbml0ZGF0YSBhcGljaWRfdG9fcHhtW01BWF9BUElDSURdOworCitpbnQgbnVtYV9vZmYgX19pbml0ZGF0YTsKK2ludCBhY3BpX251bWEgX19pbml0ZGF0YTsKKworc3RhdGljIF9faW5pdCB2b2lkIGJhZF9zcmF0KHZvaWQpCit7CisgICAgICAgIHByaW50ayhLRVJOX0VSUiAiU1JBVDogU1JBVCBub3QgdXNlZC5cbiIpOworICAgICAgICBhY3BpX251bWEgPSAtMTsKKwludW1fbWVtb3J5X2NodW5rcyA9IDA7Cit9CisKK3N0YXRpYyBfX2luaXQgaW5saW5lIGludCBzcmF0X2Rpc2FibGVkKHZvaWQpCit7CisJcmV0dXJuIG51bWFfb2ZmIHx8IGFjcGlfbnVtYSA8IDA7Cit9CisKKy8qIElkZW50aWZ5IENQVSBwcm94aW1pdHkgZG9tYWlucyAqLwordm9pZCBfX2luaXQKK2FjcGlfbnVtYV9wcm9jZXNzb3JfYWZmaW5pdHlfaW5pdChzdHJ1Y3QgYWNwaV9zcmF0X2NwdV9hZmZpbml0eSAqY3B1X2FmZmluaXR5KQoreworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCXJldHVybjsKKwlpZiAoY3B1X2FmZmluaXR5LT5oZWFkZXIubGVuZ3RoICE9CisJICAgICBzaXplb2Yoc3RydWN0IGFjcGlfc3JhdF9jcHVfYWZmaW5pdHkpKSB7CisJCWJhZF9zcmF0KCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKGNwdV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfQ1BVX0VOQUJMRUQpID09IDApCisJCXJldHVybjsJCS8qIGVtcHR5IGVudHJ5ICovCisKKwkvKiBtYXJrIHRoaXMgbm9kZSBhcyAic2VlbiIgaW4gbm9kZSBiaXRtYXAgKi8KKwlCTUFQX1NFVChweG1fYml0bWFwLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworCisJYXBpY2lkX3RvX3B4bVtjcHVfYWZmaW5pdHktPmFwaWNfaWRdID0gY3B1X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluX2xvOworCisJcHJpbnRrKEtFUk5fREVCVUcgIkNQVSAlMDJ4IGluIHByb3hpbWl0eSBkb21haW4gJTAyeFxuIiwKKwkJY3B1X2FmZmluaXR5LT5hcGljX2lkLCBjcHVfYWZmaW5pdHktPnByb3hpbWl0eV9kb21haW5fbG8pOworfQorCisvKgorICogSWRlbnRpZnkgbWVtb3J5IHByb3hpbWl0eSBkb21haW5zIGFuZCBob3QtcmVtb3ZlIGNhcGFiaWxpdGllcy4KKyAqIEZpbGwgbm9kZSBtZW1vcnkgY2h1bmsgbGlzdCBzdHJ1Y3R1cmUuCisgKi8KK3ZvaWQgX19pbml0CithY3BpX251bWFfbWVtb3J5X2FmZmluaXR5X2luaXQoc3RydWN0IGFjcGlfc3JhdF9tZW1fYWZmaW5pdHkgKm1lbW9yeV9hZmZpbml0eSkKK3sKKwl1bnNpZ25lZCBsb25nIGxvbmcgcGFkZHIsIHNpemU7CisJdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIGVuZF9wZm47CisJdTggcHhtOworCXN0cnVjdCBub2RlX21lbW9yeV9jaHVua19zICpwLCAqcSwgKnBlbmQ7CisKKwlpZiAoc3JhdF9kaXNhYmxlZCgpKQorCQlyZXR1cm47CisJaWYgKG1lbW9yeV9hZmZpbml0eS0+aGVhZGVyLmxlbmd0aCAhPQorCSAgICAgc2l6ZW9mKHN0cnVjdCBhY3BpX3NyYXRfbWVtX2FmZmluaXR5KSkgeworCQliYWRfc3JhdCgpOworCQlyZXR1cm47CisJfQorCisJaWYgKChtZW1vcnlfYWZmaW5pdHktPmZsYWdzICYgQUNQSV9TUkFUX01FTV9FTkFCTEVEKSA9PSAwKQorCQlyZXR1cm47CQkvKiBlbXB0eSBlbnRyeSAqLworCisJcHhtID0gbWVtb3J5X2FmZmluaXR5LT5wcm94aW1pdHlfZG9tYWluICYgMHhmZjsKKworCS8qIG1hcmsgdGhpcyBub2RlIGFzICJzZWVuIiBpbiBub2RlIGJpdG1hcCAqLworCUJNQVBfU0VUKHB4bV9iaXRtYXAsIHB4bSk7CisKKwkvKiBjYWxjdWxhdGUgaW5mbyBmb3IgbWVtb3J5IGNodW5rIHN0cnVjdHVyZSAqLworCXBhZGRyID0gbWVtb3J5X2FmZmluaXR5LT5iYXNlX2FkZHJlc3M7CisJc2l6ZSA9IG1lbW9yeV9hZmZpbml0eS0+bGVuZ3RoOworCisJc3RhcnRfcGZuID0gcGFkZHIgPj4gUEFHRV9TSElGVDsKKwllbmRfcGZuID0gKHBhZGRyICsgc2l6ZSkgPj4gUEFHRV9TSElGVDsKKworCisJaWYgKG51bV9tZW1vcnlfY2h1bmtzID49IE1BWENIVU5LUykgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJUb28gbWFueSBtZW0gY2h1bmtzIGluIFNSQVQuIgorCQkJIiBJZ25vcmluZyAlbGxkIE1CeXRlcyBhdCAlbGx4XG4iLAorCQkJc2l6ZS8oMTAyNCoxMDI0KSwgcGFkZHIpOworCQlyZXR1cm47CisJfQorCisJLyogSW5zZXJ0aW9uIHNvcnQgYmFzZWQgb24gYmFzZSBhZGRyZXNzICovCisJcGVuZCA9ICZub2RlX21lbW9yeV9jaHVua1tudW1fbWVtb3J5X2NodW5rc107CisJZm9yIChwID0gJm5vZGVfbWVtb3J5X2NodW5rWzBdOyBwIDwgcGVuZDsgcCsrKSB7CisJCWlmIChzdGFydF9wZm4gPCBwLT5zdGFydF9wZm4pCisJCQlicmVhazsKKwl9CisJaWYgKHAgPCBwZW5kKSB7CisJCWZvciAocSA9IHBlbmQ7IHEgPj0gcDsgcS0tKQorCQkJKihxICsgMSkgPSAqcTsKKwl9CisJcC0+c3RhcnRfcGZuID0gc3RhcnRfcGZuOworCXAtPmVuZF9wZm4gPSBlbmRfcGZuOworCXAtPnB4bSA9IHB4bTsKKworCW51bV9tZW1vcnlfY2h1bmtzKys7CisKKwlwcmludGsoS0VSTl9ERUJVRyAiTWVtb3J5IHJhbmdlICUwOGx4IHRvICUwOGx4ICh0eXBlICV4KSIKKwkJCSAgIiBpbiBwcm94aW1pdHkgZG9tYWluICUwMnggJXNcbiIsCisJCXN0YXJ0X3BmbiwgZW5kX3BmbiwKKwkJbWVtb3J5X2FmZmluaXR5LT5tZW1vcnlfdHlwZSwKKwkJcHhtLAorCQkoKG1lbW9yeV9hZmZpbml0eS0+ZmxhZ3MgJiBBQ1BJX1NSQVRfTUVNX0hPVF9QTFVHR0FCTEUpID8KKwkJICJlbmFibGVkIGFuZCByZW1vdmFibGUiIDogImVuYWJsZWQiICkgKTsKK30KKworLyogQ2FsbGJhY2sgZm9yIFNMSVQgcGFyc2luZyAqLwordm9pZCBfX2luaXQgYWNwaV9udW1hX3NsaXRfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQoreworfQorCit2b2lkIGFjcGlfbnVtYV9hcmNoX2ZpeHVwKHZvaWQpCit7Cit9CisvKgorICogVGhlIFNSQVQgdGFibGUgYWx3YXlzIGxpc3RzIGFzY2VuZGluZyBhZGRyZXNzZXMsIHNvIGNhbiBhbHdheXMKKyAqIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCAic3RhcnQiIGFkZHJlc3MgdGhhdCB5b3Ugc2VlIGlzIHRoZSByZWFsCisgKiBzdGFydCBvZiB0aGUgbm9kZSwgYW5kIHRoYXQgdGhlIGN1cnJlbnQgImVuZCIgYWRkcmVzcyBpcyBhZnRlcgorICogdGhlIHByZXZpb3VzIG9uZS4KKyAqLworc3RhdGljIF9faW5pdCB2b2lkIG5vZGVfcmVhZF9jaHVuayhpbnQgbmlkLCBzdHJ1Y3Qgbm9kZV9tZW1vcnlfY2h1bmtfcyAqbWVtb3J5X2NodW5rKQoreworCS8qCisJICogT25seSBhZGQgcHJlc2VudCBtZW1vcnkgYXMgdG9sZCBieSB0aGUgZTgyMC4KKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgZnJvbSB0aGUgU1JBVCB0aGF0IHRoZSBtZW1vcnkgaXQKKwkgKiBlbnVtZXJhdGVzIGlzIHByZXNlbnQgYXQgYm9vdCB0aW1lIGJlY2F1c2UgaXQgcmVwcmVzZW50cworCSAqICpwb3NzaWJsZSogbWVtb3J5IGhvdHBsdWcgYXJlYXMgdGhlIHNhbWUgYXMgbm9ybWFsIFJBTS4KKwkgKi8KKwlpZiAobWVtb3J5X2NodW5rLT5zdGFydF9wZm4gPj0gbWF4X3BmbikgeworCQlwcmludGsoS0VSTl9JTkZPICJJZ25vcmluZyBTUkFUIHBmbnM6ICUwOGx4IC0gJTA4bHhcbiIsCisJCQltZW1vcnlfY2h1bmstPnN0YXJ0X3BmbiwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKTsKKwkJcmV0dXJuOworCX0KKwlpZiAobWVtb3J5X2NodW5rLT5uaWQgIT0gbmlkKQorCQlyZXR1cm47CisKKwlpZiAoIW5vZGVfaGFzX29ubGluZV9tZW0obmlkKSkKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfc3RhcnRfcGZuW25pZF0gPiBtZW1vcnlfY2h1bmstPnN0YXJ0X3BmbikKKwkJbm9kZV9zdGFydF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+c3RhcnRfcGZuOworCisJaWYgKG5vZGVfZW5kX3BmbltuaWRdIDwgbWVtb3J5X2NodW5rLT5lbmRfcGZuKQorCQlub2RlX2VuZF9wZm5bbmlkXSA9IG1lbW9yeV9jaHVuay0+ZW5kX3BmbjsKK30KKworaW50IF9faW5pdCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCWludCBpLCBqLCBuaWQ7CisKKworCWlmIChzcmF0X2Rpc2FibGVkKCkpCisJCWdvdG8gb3V0X2ZhaWw7CisKKwlpZiAobnVtX21lbW9yeV9jaHVua3MgPT0gMCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkgImNvdWxkIG5vdCBmaW55IGFueSBBQ1BJIFNSQVQgbWVtb3J5IGFyZWFzLlxuIik7CisJCWdvdG8gb3V0X2ZhaWw7CisJfQorCisJLyogQ2FsY3VsYXRlIHRvdGFsIG51bWJlciBvZiBub2RlcyBpbiBzeXN0ZW0gZnJvbSBQWE0gYml0bWFwIGFuZCBjcmVhdGUKKwkgKiBhIHNldCBvZiBzZXF1ZW50aWFsIG5vZGUgSURzIHN0YXJ0aW5nIGF0IHplcm8uICAoQUNQSSBkb2Vzbid0IHNlZW0KKwkgKiB0byBzcGVjaWZ5IHRoZSByYW5nZSBvZiBfUFhNIHZhbHVlcy4pCisJICovCisJLyoKKwkgKiBNQ0QgLSB3ZSBubyBsb25nZXIgSEFWRSB0byBudW1iZXIgbm9kZXMgc2VxdWVudGlhbGx5LiAgUFhNIGRvbWFpbgorCSAqIG51bWJlcnMgY291bGQgZ28gYXMgaGlnaCBhcyAyNTYsIGFuZCBNQVhfTlVNTk9ERVMgZm9yIGkzODYgaXMgdHlwaWNhbGx5CisJICogMzIsIHNvIHdlIHdpbGwgY29udGludWUgbnVtYmVyaW5nIHRoZW0gaW4gdGhpcyBtYW5uZXIgdW50aWwgTUFYX05VTU5PREVTCisJICogYXBwcm9hY2hlcyBNQVhfUFhNX0RPTUFJTlMgZm9yIGkzODYuCisJICovCisJbm9kZXNfY2xlYXIobm9kZV9vbmxpbmVfbWFwKTsKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX1BYTV9ET01BSU5TOyBpKyspIHsKKwkJaWYgKEJNQVBfVEVTVChweG1fYml0bWFwLCBpKSkgeworCQkJaW50IG5pZCA9IGFjcGlfbWFwX3B4bV90b19ub2RlKGkpOworCQkJbm9kZV9zZXRfb25saW5lKG5pZCk7CisJCX0KKwl9CisJQlVHX09OKG51bV9vbmxpbmVfbm9kZXMoKSA9PSAwKTsKKworCS8qIHNldCBjbm9kZSBpZCBpbiBtZW1vcnkgY2h1bmsgc3RydWN0dXJlICovCisJZm9yIChpID0gMDsgaSA8IG51bV9tZW1vcnlfY2h1bmtzOyBpKyspCisJCW5vZGVfbWVtb3J5X2NodW5rW2ldLm5pZCA9IHB4bV90b19ub2RlKG5vZGVfbWVtb3J5X2NodW5rW2ldLnB4bSk7CisKKwlwcmludGsoS0VSTl9ERUJVRyAicHhtIGJpdG1hcDogIik7CisJZm9yIChpID0gMDsgaSA8IHNpemVvZihweG1fYml0bWFwKTsgaSsrKSB7CisJCXByaW50ayhLRVJOX0NPTlQgIiUwMnggIiwgcHhtX2JpdG1hcFtpXSk7CisJfQorCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBsb2dpY2FsIG5vZGVzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9vbmxpbmVfbm9kZXMoKSk7CisJcHJpbnRrKEtFUk5fREVCVUcgIk51bWJlciBvZiBtZW1vcnkgY2h1bmtzIGluIHN5c3RlbSA9ICVkXG4iLAorCQkJIG51bV9tZW1vcnlfY2h1bmtzKTsKKworCWZvciAoaSA9IDA7IGkgPCBNQVhfQVBJQ0lEOyBpKyspCisJCWFwaWNpZF8yX25vZGVbaV0gPSBweG1fdG9fbm9kZShhcGljaWRfdG9fcHhtW2ldKTsKKworCWZvciAoaiA9IDA7IGogPCBudW1fbWVtb3J5X2NodW5rczsgaisrKXsKKwkJc3RydWN0IG5vZGVfbWVtb3J5X2NodW5rX3MgKiBjaHVuayA9ICZub2RlX21lbW9yeV9jaHVua1tqXTsKKwkJcHJpbnRrKEtFUk5fREVCVUcKKwkJCSJjaHVuayAlZCBuaWQgJWQgc3RhcnRfcGZuICUwOGx4IGVuZF9wZm4gJTA4bHhcbiIsCisJCSAgICAgICBqLCBjaHVuay0+bmlkLCBjaHVuay0+c3RhcnRfcGZuLCBjaHVuay0+ZW5kX3Bmbik7CisJCW5vZGVfcmVhZF9jaHVuayhjaHVuay0+bmlkLCBjaHVuayk7CisJCWU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoY2h1bmstPm5pZCwgY2h1bmstPnN0YXJ0X3BmbiwKKwkJCQkJICAgICBtaW4oY2h1bmstPmVuZF9wZm4sIG1heF9wZm4pKTsKKwl9CisKKwlmb3JfZWFjaF9vbmxpbmVfbm9kZShuaWQpIHsKKwkJdW5zaWduZWQgbG9uZyBzdGFydCA9IG5vZGVfc3RhcnRfcGZuW25pZF07CisJCXVuc2lnbmVkIGxvbmcgZW5kID0gbWluKG5vZGVfZW5kX3BmbltuaWRdLCBtYXhfcGZuKTsKKworCQltZW1vcnlfcHJlc2VudChuaWQsIHN0YXJ0LCBlbmQpOworCQlub2RlX3JlbWFwX3NpemVbbmlkXSA9IG5vZGVfbWVtbWFwX3NpemVfYnl0ZXMobmlkLCBzdGFydCwgZW5kKTsKKwl9CisJcmV0dXJuIDE7CitvdXRfZmFpbDoKKwlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBnZXQgTlVNQSBtZW1vcnkgaW5mb3JtYXRpb24gZnJvbSBTUkFUIgorCQkJIiB0YWJsZVxuIik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMgYi9hcmNoL3g4Ni9tbS9zcmF0XzY0LmMKaW5kZXggMzg5MDIzNC4uMWI0NzYzZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vc3JhdF82NC5jCisrKyBiL2FyY2gveDg2L21tL3NyYXRfNjQuYwpAQCAtOTcsMzcgKzk3LDIyIEBACiAJcmV0dXJuIG51bWFfb2ZmIHx8IGFjcGlfbnVtYSA8IDA7CiB9CiAKLS8qCi0gKiBBIGxvdCBvZiBCSU9TIGZpbGwgaW4gMTAgKD0gbm8gZGlzdGFuY2UpIGV2ZXJ5d2hlcmUuIFRoaXMgbWVzc2VzCi0gKiB1cCB0aGUgTlVNQSBoZXVyaXN0aWNzIHdoaWNoIHdhbnRzIHRoZSBsb2NhbCBub2RlIHRvIGhhdmUgYSBzbWFsbGVyCi0gKiBkaXN0YW5jZSB0aGFuIHRoZSBvdGhlcnMuCi0gKiBEbyBzb21lIHF1aWNrIGNoZWNrcyBoZXJlIGFuZCBvbmx5IHVzZSB0aGUgU0xJVCBpZiBpdCBwYXNzZXMuCi0gKi8KLXN0YXRpYyBfX2luaXQgaW50IHNsaXRfdmFsaWQoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdCkKLXsKLQlpbnQgaSwgajsKLQlpbnQgZCA9IHNsaXQtPmxvY2FsaXR5X2NvdW50OwotCWZvciAoaSA9IDA7IGkgPCBkOyBpKyspIHsKLQkJZm9yIChqID0gMDsgaiA8IGQ7IGorKykgIHsKLQkJCXU4IHZhbCA9IHNsaXQtPmVudHJ5W2QqaSArIGpdOwotCQkJaWYgKGkgPT0gaikgewotCQkJCWlmICh2YWwgIT0gTE9DQUxfRElTVEFOQ0UpCi0JCQkJCXJldHVybiAwOwotCQkJfSBlbHNlIGlmICh2YWwgPD0gTE9DQUxfRElTVEFOQ0UpCi0JCQkJcmV0dXJuIDA7Ci0JCX0KLQl9Ci0JcmV0dXJuIDE7Ci19Ci0KIC8qIENhbGxiYWNrIGZvciBTTElUIHBhcnNpbmcgKi8KIHZvaWQgX19pbml0IGFjcGlfbnVtYV9zbGl0X2luaXQoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdCkKIHsKLQlpZiAoIXNsaXRfdmFsaWQoc2xpdCkpIHsKLQkJcHJpbnRrKEtFUk5fSU5GTyAiQUNQSTogU0xJVCB0YWJsZSBsb29rcyBpbnZhbGlkLiBOb3QgdXNlZC5cbiIpOwotCQlyZXR1cm47Ci0JfQotCWFjcGlfc2xpdCA9IHNsaXQ7CisJdW5zaWduZWQgbGVuZ3RoOworCXVuc2lnbmVkIGxvbmcgcGh5czsKKworCWxlbmd0aCA9IHNsaXQtPmhlYWRlci5sZW5ndGg7CisJcGh5cyA9IGZpbmRfZTgyMF9hcmVhKDAsIG1heF9wZm5fbWFwcGVkPDxQQUdFX1NISUZULCBsZW5ndGgsCisJCSBQQUdFX1NJWkUpOworCisJaWYgKHBoeXMgPT0gLTFMKQorCQlwYW5pYygiIENhbiBub3Qgc2F2ZSBzbGl0IVxuIik7CisKKwlhY3BpX3NsaXQgPSBfX3ZhKHBoeXMpOworCW1lbWNweShhY3BpX3NsaXQsIHNsaXQsIGxlbmd0aCk7CisJcmVzZXJ2ZV9lYXJseShwaHlzLCBwaHlzICsgbGVuZ3RoLCAiQUNQSSBTTElUIik7CiB9CiAKIC8qIENhbGxiYWNrIGZvciBQcm94aW1pdHkgRG9tYWluIC0+IExBUElDIG1hcHBpbmcgKi8KQEAgLTMyNiw3ICszMTEsNyBAQAogCQkJcHhtcmFtID0gMDsKIAl9CiAKLQllODIwcmFtID0gZW5kX3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBlbmRfcGZuKTsKKwllODIwcmFtID0gbWF4X3BmbiAtIGFic2VudF9wYWdlc19pbl9yYW5nZSgwLCBtYXhfcGZuKTsKIAkvKiBXZSBzZWVtIHRvIGxvc2UgMyBwYWdlcyBzb21ld2hlcmUuIEFsbG93IGEgYml0IG9mIHNsYWNrLiAqLwogCWlmICgobG9uZykoZTgyMHJhbSAtIHB4bXJhbSkgPj0gMSoxMDI0KjEwMjQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSCkBAIC00MDMsNyArMzg4LDcgQEAKIAkJaWYgKG5vZGUgPT0gTlVNQV9OT19OT0RFKQogCQkJY29udGludWU7CiAJCWlmICghbm9kZV9pc3NldChub2RlLCBub2RlX3Bvc3NpYmxlX21hcCkpCi0JCQludW1hX3NldF9ub2RlKGksIE5VTUFfTk9fTk9ERSk7CisJCQludW1hX2NsZWFyX25vZGUoaSk7CiAJfQogCW51bWFfaW5pdF9hcnJheSgpOwogCXJldHVybiAwOwpAQCAtNTIyLDYgKzUwNyw3IEBACiAKIEVYUE9SVF9TWU1CT0woX19ub2RlX2Rpc3RhbmNlKTsKIAorI2lmIGRlZmluZWQoQ09ORklHX01FTU9SWV9IT1RQTFVHX1NQQVJTRSkgfHwgZGVmaW5lZChDT05GSUdfQUNQSV9IT1RQTFVHX01FTU9SWSkKIGludCBtZW1vcnlfYWRkX3BoeXNhZGRyX3RvX25pZCh1NjQgc3RhcnQpCiB7CiAJaW50IGksIHJldCA9IDA7CkBAIC01MzMsNCArNTE5LDQgQEAKIAlyZXR1cm4gcmV0OwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWVtb3J5X2FkZF9waHlzYWRkcl90b19uaWQpOwotCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYyBiL2FyY2gveDg2L21tL3Rlc3RtbWlvdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODc3YzViCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYvbW0vdGVzdG1taW90cmFjZS5jCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBXcml0dGVuIGJ5IFBla2thIFBhYWxhbmVuLCAyMDA4IDxwcUBpa2kuZmk+CisgKi8KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FICJ0ZXN0bW1pb3RyYWNlIgorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBtbWlvX2FkZHJlc3M7Cittb2R1bGVfcGFyYW0obW1pb19hZGRyZXNzLCB1bG9uZywgMCk7CitNT0RVTEVfUEFSTV9ERVNDKG1taW9fYWRkcmVzcywgIlN0YXJ0IGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmcgb2YgMTYga0IuIik7CisKK3N0YXRpYyB2b2lkIGRvX3dyaXRlX3Rlc3Qodm9pZCBfX2lvbWVtICpwKQoreworCXVuc2lnbmVkIGludCBpOworCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJaW93cml0ZTgoaSwgcCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvd3JpdGUxNihpICogMTIgKyA3LCBwICsgaSk7CisJZm9yIChpID0gKDUgKiAxMDI0KTsgaSA8ICgxNiAqIDEwMjQpOyBpICs9IDQpCisJCWlvd3JpdGUzMihpICogMjEyMzcxICsgMTMsIHAgKyBpKTsKK30KKworc3RhdGljIHZvaWQgZG9fcmVhZF90ZXN0KHZvaWQgX19pb21lbSAqcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKwlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCisJCWlvcmVhZDgocCArIGkpOworCWZvciAoaSA9IDEwMjQ7IGkgPCAoNSAqIDEwMjQpOyBpICs9IDIpCisJCWlvcmVhZDE2KHAgKyBpKTsKKwlmb3IgKGkgPSAoNSAqIDEwMjQpOyBpIDwgKDE2ICogMTAyNCk7IGkgKz0gNCkKKwkJaW9yZWFkMzIocCArIGkpOworfQorCitzdGF0aWMgdm9pZCBkb190ZXN0KHZvaWQpCit7CisJdm9pZCBfX2lvbWVtICpwID0gaW9yZW1hcF9ub2NhY2hlKG1taW9fYWRkcmVzcywgMHg0MDAwKTsKKwlpZiAoIXApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IGNvdWxkIG5vdCBpb3JlbWFwLCBhYm9ydGluZy5cbiIpOworCQlyZXR1cm47CisJfQorCWRvX3dyaXRlX3Rlc3QocCk7CisJZG9fcmVhZF90ZXN0KHApOworCWlvdW5tYXAocCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGluaXQodm9pZCkKK3sKKwlpZiAobW1pb19hZGRyZXNzID09IDApIHsKKwkJcHJfZXJyKE1PRFVMRV9OQU1FICI6IHlvdSBoYXZlIHRvIHVzZSB0aGUgbW9kdWxlIGFyZ3VtZW50ICIKKwkJCQkJCQkibW1pb19hZGRyZXNzLlxuIik7CisJCXByX2VycihNT0RVTEVfTkFNRSAiOiBETyBOT1QgTE9BRCBUSElTIE1PRFVMRSBVTkxFU1MiCisJCQkJIiBZT1UgUkVBTExZIEtOT1cgV0hBVCBZT1UgQVJFIERPSU5HIVxuIik7CisJCXJldHVybiAtRU5YSU87CisJfQorCisJcHJfd2FybmluZyhNT0RVTEVfTkFNRSAiOiBXQVJOSU5HOiBtYXBwaW5nIDE2IGtCIEAgMHglMDhseCAiCisJCQkJCSJpbiBQQ0kgYWRkcmVzcyBzcGFjZSwgYW5kIHdyaXRpbmcgIgorCQkJCQkicnViYmlzaCBpbiB0aGVyZS5cbiIsIG1taW9fYWRkcmVzcyk7CisJZG9fdGVzdCgpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgY2xlYW51cCh2b2lkKQoreworCXByX2RlYnVnKE1PRFVMRV9OQU1FICI6IHVubG9hZGVkLlxuIik7Cit9CisKK21vZHVsZV9pbml0KGluaXQpOworbW9kdWxlX2V4aXQoY2xlYW51cCk7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMgYi9hcmNoL3g4Ni9vcHJvZmlsZS9ubWlfaW50LmMKaW5kZXggY2M0OGQzZi4uMmI2YWQ1YiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvb3Byb2ZpbGUvbm1pX2ludC5jCisrKyBiL2FyY2gveDg2L29wcm9maWxlL25taV9pbnQuYwpAQCAtMjY5LDEyICsyNjksMTMgQEAKIAogc3RhdGljIHZvaWQgbm1pX3NodXRkb3duKHZvaWQpCiB7Ci0Jc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmX19nZXRfY3B1X3ZhcihjcHVfbXNycyk7CisJc3RydWN0IG9wX21zcnMgKm1zcnMgPSAmZ2V0X2NwdV92YXIoY3B1X21zcnMpOwogCW5taV9lbmFibGVkID0gMDsKIAlvbl9lYWNoX2NwdShubWlfY3B1X3NodXRkb3duLCBOVUxMLCAwLCAxKTsKIAl1bnJlZ2lzdGVyX2RpZV9ub3RpZmllcigmcHJvZmlsZV9leGNlcHRpb25zX25iKTsKIAltb2RlbC0+c2h1dGRvd24obXNycyk7CiAJZnJlZV9tc3JzKCk7CisJcHV0X2NwdV92YXIoY3B1X21zcnMpOwogfQogCiBzdGF0aWMgdm9pZCBubWlfY3B1X3N0YXJ0KHZvaWQgKmR1bW15KQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL01ha2VmaWxlIGIvYXJjaC94ODYvcGNpL01ha2VmaWxlCmluZGV4IGM1YzhlNDguLmU1MTVlOGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZQorKysgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGUKQEAgLTEsNSArMSwxNyBAQAotaWZlcSAoJChDT05GSUdfWDg2XzMyKSx5KQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV8zMgotZWxzZQotaW5jbHVkZSAke3NyY3RyZWV9L2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NAotZW5kaWYKK29iai15CQkJCTo9IGkzODYubyBpbml0Lm8KKworb2JqLSQoQ09ORklHX1BDSV9CSU9TKQkJKz0gcGNiaW9zLm8KK29iai0kKENPTkZJR19QQ0lfTU1DT05GSUcpCSs9IG1tY29uZmlnXyQoQklUUykubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubworb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCitvYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KKworcGNpLXkJCQkJOj0gZml4dXAubworcGNpLSQoQ09ORklHX0FDUEkpCQkrPSBhY3BpLm8KK3BjaS15CQkJCSs9IGxlZ2FjeS5vIGlycS5vCisKK3BjaS0kKENPTkZJR19YODZfVklTV1MpCQkrPSB2aXN3cy5vCisKK3BjaS0kKENPTkZJR19YODZfTlVNQVEpCQkrPSBudW1hLm8KKworb2JqLXkJCQkJKz0gJChwY2kteSkgY29tbW9uLm8gZWFybHkubworb2JqLXkJCQkJKz0gYW1kX2J1cy5vCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIgYi9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfMzIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5ZWMzNWQuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYvcGNpL01ha2VmaWxlXzMyCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotb2JqLXkJCQkJOj0gaTM4Ni5vIGluaXQubwotCi1vYmotJChDT05GSUdfUENJX0JJT1MpCQkrPSBwY2Jpb3Mubwotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykJKz0gbW1jb25maWdfMzIubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotb2JqLSQoQ09ORklHX1BDSV9ESVJFQ1QpCSs9IGRpcmVjdC5vCi1vYmotJChDT05GSUdfUENJX09MUEMpCQkrPSBvbHBjLm8KLQotcGNpLXkJCQkJOj0gZml4dXAubwotCi0jIERvIG5vdCBjaGFuZ2UgdGhlIG9yZGVyaW5nIGhlcmUuIFRoZXJlIGlzIGEgbmFzdHkgaW5pdCBmdW5jdGlvbgotIyBvcmRlcmluZyBkZXBlbmRlbmN5IHdoaWNoIGJyZWFrcyB3aGVuIHlvdSBtb3ZlIGFjcGkubyBiZWxvdwotIyBsZWdhY3kvaXJxLm8KLXBjaS0kKENPTkZJR19BQ1BJKQkJKz0gYWNwaS5vCi1wY2kteQkJCQkrPSBsZWdhY3kubyBpcnEubwotCi0jIENhcmVmdWw6IFZJU1dTIGFuZCBOVU1BUSBvdmVycnVsZSB0aGUgcGNpLXkgYWJvdmUuIFRoZSBjb2xvbnMgYXJlCi0jIHRoZXJlZm9yIGNvcnJlY3QuIFRoaXMgbmVlZHMgYSBwcm9wZXIgZml4IGJ5IGRpc3RhbmdsaW5nIHRoZSBjb2RlLgotcGNpLSQoQ09ORklHX1g4Nl9WSVNXUykJCTo9IHZpc3dzLm8gZml4dXAubwotcGNpLSQoQ09ORklHX1g4Nl9OVU1BUSkJCTo9IG51bWEubyBpcnEubwotCi0jIE5lY2Vzc2FyeSBmb3IgTlVNQVEgYXMgd2VsbAotcGNpLSQoQ09ORklHX05VTUEpCQkrPSBtcF9idXNfdG9fbm9kZS5vCi0KLW9iai15CQkJCSs9ICQocGNpLXkpIGNvbW1vbi5vIGVhcmx5Lm8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NCBiL2FyY2gveDg2L3BjaS9NYWtlZmlsZV82NApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGZiZDE5OC4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvTWFrZWZpbGVfNjQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciBYODZfNjQgc3BlY2lmaWMgUENJIHJvdXRpbmVzCi0jCi0jIFJldXNlIHRoZSBpMzg2IFBDSSBzdWJzeXN0ZW0KLSMKLUVYVFJBX0NGTEFHUyArPSAtSWFyY2gveDg2L3BjaQotCi1vYmoteQkJOj0gaTM4Ni5vCi1vYmotJChDT05GSUdfUENJX0RJUkVDVCkrPSBkaXJlY3Qubwotb2JqLXkJCSs9IGZpeHVwLm8gaW5pdC5vCi1vYmotJChDT05GSUdfQUNQSSkJKz0gYWNwaS5vCi1vYmoteQkJCSs9IGxlZ2FjeS5vIGlycS5vIGNvbW1vbi5vIGVhcmx5Lm8KLSMgbW1jb25maWcgaGFzIGEgNjRiaXQgc3BlY2lhbAotb2JqLSQoQ09ORklHX1BDSV9NTUNPTkZJRykgKz0gbW1jb25maWdfNjQubyBkaXJlY3QubyBtbWNvbmZpZy1zaGFyZWQubwotCi1vYmoteQkJKz0gazgtYnVzXzY0Lm8KLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2FjcGkuYyBiL2FyY2gveDg2L3BjaS9hY3BpLmMKaW5kZXggZDk1ZGUyZi4uMTlhZjA2OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2FjcGkuYworKysgYi9hcmNoL3g4Ni9wY2kvYWNwaS5jCkBAIC0xNzEsOCArMTcxLDExIEBACiAJaWYgKG5vZGUgIT0gLTEpCiAJCXNldF9tcF9idXNfdG9fbm9kZShidXNudW0sIG5vZGUpOwogCWVsc2UKLQkJbm9kZSA9IGdldF9tcF9idXNfdG9fbm9kZShidXNudW0pOwogI2VuZGlmCisJCW5vZGUgPSBnZXRfbXBfYnVzX3RvX25vZGUoYnVzbnVtKTsKKworCWlmIChub2RlICE9IC0xICYmICFub2RlX29ubGluZShub2RlKSkKKwkJbm9kZSA9IC0xOwogCiAJLyogQWxsb2NhdGUgcGVyLXJvb3QtYnVzIChub3QgcGVyIGJ1cykgYXJjaC1zcGVjaWZpYyBkYXRhLgogCSAqIFRPRE86IGxlYWs7IHRoaXMgbWVtb3J5IGlzIG5ldmVyIGZyZWVkLgpAQCAtMjA0LDIyICsyMDcsMjMgQEAKIAlpZiAoIWJ1cykKIAkJa2ZyZWUoc2QpOwogCisJaWYgKGJ1cyAmJiBub2RlICE9IC0xKSB7CiAjaWZkZWYgQ09ORklHX0FDUElfTlVNQQotCWlmIChidXMpIHsKLQkJaWYgKHB4bSA+PSAwKSB7CisJCWlmIChweG0gPj0gMCkKIAkJCXByaW50ayhLRVJOX0RFQlVHICJidXMgJTAyeCAtPiBweG0gJWQgLT4gbm9kZSAlZFxuIiwKLQkJCQlidXNudW0sIHB4bSwgcHhtX3RvX25vZGUocHhtKSk7Ci0JCX0KLQl9CisJCQkJYnVzbnVtLCBweG0sIG5vZGUpOworI2Vsc2UKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1cyAlMDJ4IC0+IG5vZGUgJWRcbiIsCisJCQlidXNudW0sIG5vZGUpOwogI2VuZGlmCisJfQogCiAJaWYgKGJ1cyAmJiAocGNpX3Byb2JlICYgUENJX1VTRV9fQ1JTKSkKIAkJZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKGRldmljZSwgYnVzbnVtLCBkb21haW4sIGJ1cyk7CiAJcmV0dXJuIGJ1czsKIH0KIAotZXh0ZXJuIGludCBwY2lfcm91dGVpcnE7Ci1zdGF0aWMgaW50IF9faW5pdCBwY2lfYWNwaV9pbml0KHZvaWQpCitpbnQgX19pbml0IHBjaV9hY3BpX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gTlVMTDsKIApAQCAtMjUzLDQgKzI1NywzIEBACiAKIAlyZXR1cm4gMDsKIH0KLXN1YnN5c19pbml0Y2FsbChwY2lfYWNwaV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9hbWRfYnVzLmMgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODE0MWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9wY2kvYW1kX2J1cy5jCkBAIC0wLDAgKzEsNTg2IEBACisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L3RvcG9sb2d5Lmg+CisjaW5jbHVkZSAicGNpLmgiCisKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisjaW5jbHVkZSA8YXNtL3BjaS1kaXJlY3QuaD4KKyNpbmNsdWRlIDxhc20vbXBzcGVjLmg+CisjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgorI2VuZGlmCisKKy8qCisgKiBUaGlzIGRpc2NvdmVycyB0aGUgcGNpYnVzIDwtPiBub2RlIG1hcHBpbmcgb24gQU1EIEs4LgorICogYWxzbyBnZXQgcGVlciByb290IGJ1cyByZXNvdXJjZSBmb3IgaW8sbW1pbworICovCisKKyNpZmRlZiBDT05GSUdfTlVNQQorCisjZGVmaW5lIEJVU19OUiAyNTYKKworI2lmZGVmIENPTkZJR19YODZfNjQKKworc3RhdGljIGludCBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwkJbXBfYnVzX3RvX25vZGVbYnVzbnVtXSA9IG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZSA9IC0xOworCisJaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQorCQlyZXR1cm4gbm9kZTsKKworCW5vZGUgPSBtcF9idXNfdG9fbm9kZVtidXNudW1dOworCisJLyoKKwkgKiBsZXQgbnVtYV9ub2RlX2lkIHRvIGRlY2lkZSBpdCBsYXRlciBpbiBkbWFfYWxsb2NfcGFnZXMKKwkgKiBpZiB0aGVyZSBpcyBubyByYW0gb24gdGhhdCBub2RlCisJICovCisJaWYgKG5vZGUgIT0gLTEgJiYgIW5vZGVfb25saW5lKG5vZGUpKQorCQlub2RlID0gLTE7CisKKwlyZXR1cm4gbm9kZTsKK30KKworI2Vsc2UgLyogQ09ORklHX1g4Nl8zMiAqLworCitzdGF0aWMgdW5zaWduZWQgY2hhciBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOworCit2b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKK3sKKwlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKKwltcF9idXNfdG9fbm9kZVtidXNudW1dID0gKHVuc2lnbmVkIGNoYXIpIG5vZGU7Cit9CisKK2ludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKK3sKKwlpbnQgbm9kZTsKKworCWlmIChidXNudW0gPCAwIHx8IGJ1c251bSA+IChCVVNfTlIgLSAxKSkKKwkJcmV0dXJuIDA7CisJbm9kZSA9IG1wX2J1c190b19ub2RlW2J1c251bV07CisJcmV0dXJuIG5vZGU7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfWDg2XzMyICovCisKKyNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLworCisjaWZkZWYgQ09ORklHX1g4Nl82NAorCisvKgorICogc3ViIGJ1cyAodHJhbnNwYXJlbnQpIHdpbGwgdXNlIGVudHJlcyBmcm9tIDMgdG8gc3RvcmUgZXh0cmEgZnJvbSByb290LAorICogc28gbmVlZCB0byBtYWtlIHN1cmUgaGF2ZSBlbm91Z2h0IHNsb3QgdGhlcmUsIGluY3JlYXNlIFBDSV9CVVNfTlVNX1JFU09VUkNFUz8KKyAqLworI2RlZmluZSBSRVNfTlVNIDE2CitzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyB7CisJY2hhciBuYW1lWzEyXTsKKwl1bnNpZ25lZCBpbnQgcmVzX251bTsKKwlzdHJ1Y3QgcmVzb3VyY2UgcmVzW1JFU19OVU1dOworCWludCBidXNfbWluOworCWludCBidXNfbWF4OworCWludCBub2RlOworCWludCBsaW5rOworfTsKKworLyogNCBhdCB0aGlzIHRpbWUsIGl0IG1heSBiZWNvbWUgdG8gMzIgKi8KKyNkZWZpbmUgUENJX1JPT1RfTlIgNAorc3RhdGljIGludCBwY2lfcm9vdF9udW07CitzdGF0aWMgc3RydWN0IHBjaV9yb290X2luZm8gcGNpX3Jvb3RfaW5mb1tQQ0lfUk9PVF9OUl07CisKK3ZvaWQgc2V0X3BjaV9idXNfcmVzb3VyY2VzX2FyY2hfZGVmYXVsdChzdHJ1Y3QgcGNpX2J1cyAqYikKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKworCS8qIGlmIG9ubHkgb25lIHJvb3QgYnVzLCBkb24ndCBuZWVkIHRvIGFueXRoaW5nICovCisJaWYgKHBjaV9yb290X251bSA8IDIpCisJCXJldHVybjsKKworCWZvciAoaSA9IDA7IGkgPCBwY2lfcm9vdF9udW07IGkrKykgeworCQlpZiAocGNpX3Jvb3RfaW5mb1tpXS5idXNfbWluID09IGItPm51bWJlcikKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IHBjaV9yb290X251bSkKKwkJcmV0dXJuOworCisJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCWZvciAoaiA9IDA7IGogPCBpbmZvLT5yZXNfbnVtOyBqKyspIHsKKwkJc3RydWN0IHJlc291cmNlICpyZXM7CisJCXN0cnVjdCByZXNvdXJjZSAqcm9vdDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2pdOworCQliLT5yZXNvdXJjZVtqXSA9IHJlczsKKwkJaWYgKHJlcy0+ZmxhZ3MgJiBJT1JFU09VUkNFX0lPKQorCQkJcm9vdCA9ICZpb3BvcnRfcmVzb3VyY2U7CisJCWVsc2UKKwkJCXJvb3QgPSAmaW9tZW1fcmVzb3VyY2U7CisJCWluc2VydF9yZXNvdXJjZShyb290LCByZXMpOworCX0KK30KKworI2RlZmluZSBSQU5HRV9OVU0gMTYKKworc3RydWN0IHJlc19yYW5nZSB7CisJc2l6ZV90IHN0YXJ0OworCXNpemVfdCBlbmQ7Cit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgdXBkYXRlX3JhbmdlKHN0cnVjdCByZXNfcmFuZ2UgKnJhbmdlLCBzaXplX3Qgc3RhcnQsCisJCQkJc2l6ZV90IGVuZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKworCWZvciAoaiA9IDA7IGogPCBSQU5HRV9OVU07IGorKykgeworCQlpZiAoIXJhbmdlW2pdLmVuZCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChzdGFydCA8PSByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kKSB7CisJCQlyYW5nZVtqXS5zdGFydCA9IDA7CisJCQlyYW5nZVtqXS5lbmQgPSAwOworCQkJY29udGludWU7CisJCX0KKworCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kIDwgcmFuZ2Vbal0uZW5kICYmIHJhbmdlW2pdLnN0YXJ0IDwgZW5kICsgMSkgeworCQkJcmFuZ2Vbal0uc3RhcnQgPSBlbmQgKyAxOworCQkJY29udGludWU7CisJCX0KKworCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA+PSByYW5nZVtqXS5lbmQgJiYgcmFuZ2Vbal0uZW5kID4gc3RhcnQgLSAxKSB7CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmIChzdGFydCA+IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCkgeworCQkJLyogZmluZCB0aGUgbmV3IHNwYXJlICovCisJCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCQlpZiAocmFuZ2VbaV0uZW5kID09IDApCisJCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKGkgPCBSQU5HRV9OVU0pIHsKKwkJCQlyYW5nZVtpXS5lbmQgPSByYW5nZVtqXS5lbmQ7CisJCQkJcmFuZ2VbaV0uc3RhcnQgPSBlbmQgKyAxOworCQkJfSBlbHNlIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgInJ1biBvZiBzbG90IGluIHJhbmdlc1xuIik7CisJCQl9CisJCQlyYW5nZVtqXS5lbmQgPSBzdGFydCAtIDE7CisJCQljb250aW51ZTsKKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9yZXMoc3RydWN0IHBjaV9yb290X2luZm8gKmluZm8sIHNpemVfdCBzdGFydCwKKwkJCSAgICAgIHNpemVfdCBlbmQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIGludCBtZXJnZSkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKKworCWlmICghbWVyZ2UpCisJCWdvdG8gYWRkaXQ7CisKKwkvKiB0cnkgdG8gbWVyZ2UgaXQgd2l0aCBvbGQgb25lICovCisJZm9yIChpID0gMDsgaSA8IGluZm8tPnJlc19udW07IGkrKykgeworCQlzaXplX3QgZmluYWxfc3RhcnQsIGZpbmFsX2VuZDsKKwkJc2l6ZV90IGNvbW1vbl9zdGFydCwgY29tbW9uX2VuZDsKKworCQlyZXMgPSAmaW5mby0+cmVzW2ldOworCQlpZiAocmVzLT5mbGFncyAhPSBmbGFncykKKwkJCWNvbnRpbnVlOworCisJCWNvbW1vbl9zdGFydCA9IG1heCgoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJY29tbW9uX2VuZCA9IG1pbigoc2l6ZV90KXJlcy0+ZW5kLCBlbmQpOworCQlpZiAoY29tbW9uX3N0YXJ0ID4gY29tbW9uX2VuZCArIDEpCisJCQljb250aW51ZTsKKworCQlmaW5hbF9zdGFydCA9IG1pbigoc2l6ZV90KXJlcy0+c3RhcnQsIHN0YXJ0KTsKKwkJZmluYWxfZW5kID0gbWF4KChzaXplX3QpcmVzLT5lbmQsIGVuZCk7CisKKwkJcmVzLT5zdGFydCA9IGZpbmFsX3N0YXJ0OworCQlyZXMtPmVuZCA9IGZpbmFsX2VuZDsKKwkJcmV0dXJuOworCX0KKworYWRkaXQ6CisKKwkvKiBuZWVkIHRvIGFkZCB0aGF0ICovCisJaWYgKGluZm8tPnJlc19udW0gPj0gUkVTX05VTSkKKwkJcmV0dXJuOworCisJcmVzID0gJmluZm8tPnJlc1tpbmZvLT5yZXNfbnVtXTsKKwlyZXMtPm5hbWUgPSBpbmZvLT5uYW1lOworCXJlcy0+ZmxhZ3MgPSBmbGFnczsKKwlyZXMtPnN0YXJ0ID0gc3RhcnQ7CisJcmVzLT5lbmQgPSBlbmQ7CisJcmVzLT5jaGlsZCA9IE5VTEw7CisJaW5mby0+cmVzX251bSsrOworfQorCitzdHJ1Y3QgcGNpX2hvc3RicmlkZ2VfcHJvYmUgeworCXUzMiBidXM7CisJdTMyIHNsb3Q7CisJdTMyIHZlbmRvcjsKKwl1MzIgZGV2aWNlOworfTsKKworc3RhdGljIHN0cnVjdCBwY2lfaG9zdGJyaWRnZV9wcm9iZSBwY2lfcHJvYmVzW10gX19pbml0ZGF0YSA9IHsKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDExMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDB4ZmYsIDAsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEyMDAgfSwKKwl7IDAsIDB4MTgsIFBDSV9WRU5ET1JfSURfQU1ELCAweDEzMDAgfSwKK307CisKK3N0YXRpYyB1NjQgX19pbml0ZGF0YSBmYW0xMGhfbW1jb25mX3N0YXJ0Oworc3RhdGljIHU2NCBfX2luaXRkYXRhIGZhbTEwaF9tbWNvbmZfZW5kOworc3RhdGljIHZvaWQgX19pbml0IGdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSh2b2lkKQoreworCXUzMiBhZGRyZXNzOworCXU2NCBiYXNlLCBtc3I7CisJdW5zaWduZWQgc2Vnbl9idXNuX2JpdHM7CisKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBtbWNvbmYgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuOworCisJYWRkcmVzcyA9IE1TUl9GQU0xMEhfTU1JT19DT05GX0JBU0U7CisJcmRtc3JsKGFkZHJlc3MsIG1zcik7CisKKwkvKiBtbWNvbmZpZyBpcyBub3QgZW5hYmxlICovCisJaWYgKCEobXNyICYgRkFNMTBIX01NSU9fQ09ORl9FTkFCTEUpKQorCQlyZXR1cm47CisKKwliYXNlID0gbXNyICYgKEZBTTEwSF9NTUlPX0NPTkZfQkFTRV9NQVNLPDxGQU0xMEhfTU1JT19DT05GX0JBU0VfU0hJRlQpOworCisJc2Vnbl9idXNuX2JpdHMgPSAobXNyID4+IEZBTTEwSF9NTUlPX0NPTkZfQlVTUkFOR0VfU0hJRlQpICYKKwkJCSBGQU0xMEhfTU1JT19DT05GX0JVU1JBTkdFX01BU0s7CisKKwlmYW0xMGhfbW1jb25mX3N0YXJ0ID0gYmFzZTsKKwlmYW0xMGhfbW1jb25mX2VuZCA9IGJhc2UgKyAoMVVMTDw8KHNlZ25fYnVzbl9iaXRzICsgMjApKSAtIDE7Cit9CisKKy8qKgorICogZWFybHlfZmlsbF9tcF9idXNfdG9fbm9kZSgpCisgKiBjYWxsZWQgYmVmb3JlIHBjaWJpb3Nfc2Nhbl9yb290IGFuZCBwY2lfc2Nhbl9idXMKKyAqIGZpbGxzIHRoZSBtcF9idXNfdG9fY3B1bWFzayBhcnJheSBiYXNlZCBhY2NvcmRpbmcgdG8gdGhlIExEVCBCdXMgTnVtYmVyCisgKiBSZWdpc3RlcnMgZm91bmQgaW4gdGhlIEs4IG5vcnRoYnJpZGdlCisgKi8KK3N0YXRpYyBpbnQgX19pbml0IGVhcmx5X2ZpbGxfbXBfYnVzX2luZm8odm9pZCkKK3sKKwlpbnQgaTsKKwlpbnQgajsKKwl1bnNpZ25lZCBidXM7CisJdW5zaWduZWQgc2xvdDsKKwlpbnQgZm91bmQ7CisJaW50IG5vZGU7CisJaW50IGxpbms7CisJaW50IGRlZl9ub2RlOworCWludCBkZWZfbGluazsKKwlzdHJ1Y3QgcGNpX3Jvb3RfaW5mbyAqaW5mbzsKKwl1MzIgcmVnOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOworCXNpemVfdCBzdGFydDsKKwlzaXplX3QgZW5kOworCXN0cnVjdCByZXNfcmFuZ2UgcmFuZ2VbUkFOR0VfTlVNXTsKKwl1NjQgdmFsOworCXUzMiBhZGRyZXNzOworCisjaWZkZWYgQ09ORklHX05VTUEKKwlmb3IgKGkgPSAwOyBpIDwgQlVTX05SOyBpKyspCisJCW1wX2J1c190b19ub2RlW2ldID0gLTE7CisjZW5kaWYKKworCWlmICghZWFybHlfcGNpX2FsbG93ZWQoKSkKKwkJcmV0dXJuIC0xOworCisJZm91bmQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBjaV9wcm9iZXMpOyBpKyspIHsKKwkJdTMyIGlkOworCQl1MTYgZGV2aWNlOworCQl1MTYgdmVuZG9yOworCisJCWJ1cyA9IHBjaV9wcm9iZXNbaV0uYnVzOworCQlzbG90ID0gcGNpX3Byb2Jlc1tpXS5zbG90OworCQlpZCA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIFBDSV9WRU5ET1JfSUQpOworCisJCXZlbmRvciA9IGlkICYgMHhmZmZmOworCQlkZXZpY2UgPSAoaWQ+PjE2KSAmIDB4ZmZmZjsKKwkJaWYgKHBjaV9wcm9iZXNbaV0udmVuZG9yID09IHZlbmRvciAmJgorCQkgICAgcGNpX3Byb2Jlc1tpXS5kZXZpY2UgPT0gZGV2aWNlKSB7CisJCQlmb3VuZCA9IDE7CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghZm91bmQpCisJCXJldHVybiAwOworCisJcGNpX3Jvb3RfbnVtID0gMDsKKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWludCBtaW5fYnVzOworCQlpbnQgbWF4X2J1czsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhlMCArIChpIDw8IDIpKTsKKworCQkvKiBDaGVjayBpZiB0aGF0IHJlZ2lzdGVyIGlzIGVuYWJsZWQgZm9yIGJ1cyByYW5nZSAqLworCQlpZiAoKHJlZyAmIDcpICE9IDMpCisJCQljb250aW51ZTsKKworCQltaW5fYnVzID0gKHJlZyA+PiAxNikgJiAweGZmOworCQltYXhfYnVzID0gKHJlZyA+PiAyNCkgJiAweGZmOworCQlub2RlID0gKHJlZyA+PiA0KSAmIDB4MDc7CisjaWZkZWYgQ09ORklHX05VTUEKKwkJZm9yIChqID0gbWluX2J1czsgaiA8PSBtYXhfYnVzOyBqKyspCisJCQltcF9idXNfdG9fbm9kZVtqXSA9ICh1bnNpZ25lZCBjaGFyKSBub2RlOworI2VuZGlmCisJCWxpbmsgPSAocmVnID4+IDgpICYgMHgwMzsKKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bcGNpX3Jvb3RfbnVtXTsKKwkJaW5mby0+YnVzX21pbiA9IG1pbl9idXM7CisJCWluZm8tPmJ1c19tYXggPSBtYXhfYnVzOworCQlpbmZvLT5ub2RlID0gbm9kZTsKKwkJaW5mby0+bGluayA9IGxpbms7CisJCXNwcmludGYoaW5mby0+bmFtZSwgIlBDSSBCdXMgIyUwMngiLCBtaW5fYnVzKTsKKwkJcGNpX3Jvb3RfbnVtKys7CisJfQorCisJLyogZ2V0IHRoZSBkZWZhdWx0IG5vZGUgYW5kIGxpbmsgZm9yIGxlZnQgb3ZlciByZXMgKi8KKwlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCAweDYwKTsKKwlkZWZfbm9kZSA9IChyZWcgPj4gOCkgJiAweDA3OworCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDAsIDB4NjQpOworCWRlZl9saW5rID0gKHJlZyA+PiA4KSAmIDB4MDM7CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCXJhbmdlWzBdLmVuZCA9IDB4ZmZmZjsKKwkvKiBpbyBwb3J0IHJlc291cmNlICovCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGMwICsgKGkgPDwgMykpOworCQlpZiAoIShyZWcgJiAzKSkKKwkJCWNvbnRpbnVlOworCisJCXN0YXJ0ID0gcmVnICYgMHhmZmYwMDA7CisJCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4YzQgKyAoaSA8PCAzKSk7CisJCW5vZGUgPSByZWcgJiAweDA3OworCQlsaW5rID0gKHJlZyA+PiA0KSAmIDB4MDM7CisJCWVuZCA9IChyZWcgJiAweGZmZjAwMCkgfCAweGZmZjsKKworCQkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKKwkJCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKKwkJCWlmIChpbmZvLT5ub2RlID09IG5vZGUgJiYgaW5mby0+bGluayA9PSBsaW5rKQorCQkJCWJyZWFrOworCQl9CisJCWlmIChqID09IHBjaV9yb290X251bSkKKwkJCWNvbnRpbnVlOyAvKiBub3QgZm91bmQgKi8KKworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IGlvIHBvcnQgWyVsbHgsICVsbHhdXG4iLAorCQkgICAgICAgbm9kZSwgbGluaywgKHU2NClzdGFydCwgKHU2NCllbmQpOworCisJCS8qIGtlcm5lbCBvbmx5IGhhbmRsZSAxNiBiaXQgb25seSAqLworCQlpZiAoZW5kID4gMHhmZmZmKQorCQkJZW5kID0gMHhmZmZmOworCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmQsIElPUkVTT1VSQ0VfSU8sIDEpOworCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIHN0YXJ0LCBlbmQpOworCX0KKwkvKiBhZGQgbGVmdCBvdmVyIGlvIHBvcnQgcmFuZ2UgdG8gZGVmIG5vZGUvbGluaywgWzAsIDB4ZmZmZl0gKi8KKwkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCQlmb3IgKGkgPSAwOyBpIDwgUkFOR0VfTlVNOyBpKyspIHsKKwkJCWlmICghcmFuZ2VbaV0uZW5kKQorCQkJCWNvbnRpbnVlOworCisJCQl1cGRhdGVfcmVzKGluZm8sIHJhbmdlW2ldLnN0YXJ0LCByYW5nZVtpXS5lbmQsCisJCQkJICAgSU9SRVNPVVJDRV9JTywgMSk7CisJCX0KKwl9CisKKwltZW1zZXQocmFuZ2UsIDAsIHNpemVvZihyYW5nZSkpOworCS8qIDB4ZmQwMDAwMDAwMC0weGZmZmZmZmZmZmYgZm9yIEhUICovCisJcmFuZ2VbMF0uZW5kID0gKDB4ZmRVTEw8PDMyKSAtIDE7CisKKwkvKiBuZWVkIHRvIHRha2Ugb3V0IFswLCBUT00pIGZvciBSQU0qLworCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTE7CisJcmRtc3JsKGFkZHJlc3MsIHZhbCk7CisJZW5kID0gKHZhbCAmIDB4ZmZmZmZmODAwMDAwVUxMKTsKKwlwcmludGsoS0VSTl9JTkZPICJUT006ICUwMTZseCBha2EgJWxkTVxuIiwgZW5kLCBlbmQ+PjIwKTsKKwlpZiAoZW5kIDwgKDFVTEw8PDMyKSkKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCAwLCBlbmQgLSAxKTsKKworCS8qIGdldCBtbWNvbmZpZyAqLworCWdldF9wY2lfbW1jZmdfYW1kX2ZhbTEwaF9yYW5nZSgpOworCS8qIG5lZWQgdG8gdGFrZSBvdXQgbW1jb25mIHJhbmdlICovCisJaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCXByaW50ayhLRVJOX0RFQlVHICJGYW0gMTBoIG1tY29uZiBbJWxseCwgJWxseF1cbiIsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKKwkJdXBkYXRlX3JhbmdlKHJhbmdlLCBmYW0xMGhfbW1jb25mX3N0YXJ0LCBmYW0xMGhfbW1jb25mX2VuZCk7CisJfQorCisJLyogbW1pbyByZXNvdXJjZSAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4MCArIChpIDw8IDMpKTsKKwkJaWYgKCEocmVnICYgMykpCisJCQljb250aW51ZTsKKworCQlzdGFydCA9IHJlZyAmIDB4ZmZmZmZmMDA7IC8qIDM5OjE2IG9uIDMxOjgqLworCQlzdGFydCA8PD0gODsKKwkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHg4NCArIChpIDw8IDMpKTsKKwkJbm9kZSA9IHJlZyAmIDB4MDc7CisJCWxpbmsgPSAocmVnID4+IDQpICYgMHgwMzsKKwkJZW5kID0gKHJlZyAmIDB4ZmZmZmZmMDApOworCQllbmQgPDw9IDg7CisJCWVuZCB8PSAweGZmZmY7CisKKwkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KKwkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7CisJCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKKwkJCQlicmVhazsKKwkJfQorCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCisJCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCXByaW50ayhLRVJOX0RFQlVHICJub2RlICVkIGxpbmsgJWQ6IG1taW8gWyVsbHgsICVsbHhdIiwKKwkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKKwkJLyoKKwkJICogc29tZSBzaWNrIGFsbG9jYXRpb24gd291bGQgaGF2ZSByYW5nZSBvdmVybGFwIHdpdGggZmFtMTBoCisJCSAqIG1tY29uZiByYW5nZSwgc28gbmVlZCB0byB1cGRhdGUgc3RhcnQgYW5kIGVuZC4KKwkJICovCisJCWlmIChmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJaW50IGNoYW5nZWQgPSAwOworCQkJdTY0IGVuZHggPSAwOworCQkJaWYgKHN0YXJ0ID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBzdGFydCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgeworCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOworCQkJCWNoYW5nZWQgPSAxOworCQkJfQorCisJCQlpZiAoZW5kID49IGZhbTEwaF9tbWNvbmZfc3RhcnQgJiYKKwkJCSAgICBlbmQgPD0gZmFtMTBoX21tY29uZl9lbmQpIHsKKwkJCQllbmQgPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKworCQkJaWYgKHN0YXJ0IDwgZmFtMTBoX21tY29uZl9zdGFydCAmJgorCQkJICAgIGVuZCA+IGZhbTEwaF9tbWNvbmZfZW5kKSB7CisJCQkJLyogd2UgZ290IGEgaG9sZSAqLworCQkJCWVuZHggPSBmYW0xMGhfbW1jb25mX3N0YXJ0IC0gMTsKKwkJCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmR4LCBJT1JFU09VUkNFX01FTSwgMCk7CisJCQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5keCk7CisJCQkJcHJpbnRrKEtFUk5fQ09OVCAiID09PiBbJWxseCwgJWxseF0iLCAodTY0KXN0YXJ0LCBlbmR4KTsKKwkJCQlzdGFydCA9IGZhbTEwaF9tbWNvbmZfZW5kICsgMTsKKwkJCQljaGFuZ2VkID0gMTsKKwkJCX0KKwkJCWlmIChjaGFuZ2VkKSB7CisJCQkJaWYgKHN0YXJ0IDw9IGVuZCkgeworCQkJCQlwcmludGsoS0VSTl9DT05UICIgJXMgWyVsbHgsICVsbHhdIiwgZW5keD8iYW5kIjoiPT0+IiwgKHU2NClzdGFydCwgKHU2NCllbmQpOworCQkJCX0gZWxzZSB7CisJCQkJCXByaW50ayhLRVJOX0NPTlQgIiVzXG4iLCBlbmR4PyIiOiIgPT0+IG5vbmUiKTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfQorCQl9CisKKwkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX01FTSwgMSk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgc3RhcnQsIGVuZCk7CisJCXByaW50ayhLRVJOX0NPTlQgIlxuIik7CisJfQorCisJLyogbmVlZCB0byB0YWtlIG91dCBbNEcsIFRPTTIpIGZvciBSQU0qLworCS8qIFNZU19DRkcgKi8KKwlhZGRyZXNzID0gTVNSX0s4X1NZU0NGRzsKKwlyZG1zcmwoYWRkcmVzcywgdmFsKTsKKwkvKiBUT1BfTUVNMiBpcyBlbmFibGVkPyAqLworCWlmICh2YWwgJiAoMTw8MjEpKSB7CisJCS8qIFRPUF9NRU0yICovCisJCWFkZHJlc3MgPSBNU1JfSzhfVE9QX01FTTI7CisJCXJkbXNybChhZGRyZXNzLCB2YWwpOworCQllbmQgPSAodmFsICYgMHhmZmZmZmY4MDAwMDBVTEwpOworCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bHggYWthICVsZE1cbiIsIGVuZCwgZW5kPj4yMCk7CisJCXVwZGF0ZV9yYW5nZShyYW5nZSwgMVVMTDw8MzIsIGVuZCAtIDEpOworCX0KKworCS8qCisJICogYWRkIGxlZnQgb3ZlciBtbWlvIHJhbmdlIHRvIGRlZiBub2RlL2xpbmsgPworCSAqIHRoYXQgaXMgdHJpY2t5LCBqdXN0IHJlY29yZCByYW5nZSBpbiBmcm9tIHN0YXJ0X21pbiB0byA0RworCSAqLworCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgeworCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07CisJCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCisJCQlicmVhazsKKwl9CisJaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOworCisJCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgeworCQkJaWYgKCFyYW5nZVtpXS5lbmQpCisJCQkJY29udGludWU7CisKKwkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKKwkJCQkgICBJT1JFU09VUkNFX01FTSwgMSk7CisJCX0KKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKKwkJaW50IHJlc19udW07CisJCWludCBidXNudW07CisKKwkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOworCQlyZXNfbnVtID0gaW5mby0+cmVzX251bTsKKwkJYnVzbnVtID0gaW5mby0+YnVzX21pbjsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogWyUwMngsJTAyeF0gb24gbm9kZSAleCBsaW5rICV4XG4iLAorCQkgICAgICAgaW5mby0+YnVzX21pbiwgaW5mby0+YnVzX21heCwgaW5mby0+bm9kZSwgaW5mby0+bGluayk7CisJCWZvciAoaiA9IDA7IGogPCByZXNfbnVtOyBqKyspIHsKKwkJCXJlcyA9ICZpbmZvLT5yZXNbal07CisJCQlwcmludGsoS0VSTl9ERUJVRyAiYnVzOiAlMDJ4IGluZGV4ICV4ICVzOiBbJWxseCwgJWxseF1cbiIsCisJCQkgICAgICAgYnVzbnVtLCBqLAorCQkJICAgICAgIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTyk/ImlvIHBvcnQiOiJtbWlvIiwKKwkJCSAgICAgICByZXMtPnN0YXJ0LCByZXMtPmVuZCk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworcG9zdGNvcmVfaW5pdGNhbGwoZWFybHlfZmlsbF9tcF9idXNfaW5mbyk7CisKKyNlbmRpZgorCisvKiBjb21tb24gMzIvNjQgYml0IGNvZGUgKi8KKworI2RlZmluZSBFTkFCTEVfQ0Y4X0VYVF9DRkcgICAgICAoMVVMTCA8PCA0NikKKworc3RhdGljIHZvaWQgZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSh2b2lkICp1bnVzZWQpCit7CisJdTY0IHJlZzsKKwlyZG1zcmwoTVNSX0FNRDY0X05CX0NGRywgcmVnKTsKKwlpZiAoIShyZWcgJiBFTkFCTEVfQ0Y4X0VYVF9DRkcpKSB7CisJCXJlZyB8PSBFTkFCTEVfQ0Y4X0VYVF9DRkc7CisJCXdybXNybChNU1JfQU1ENjRfTkJfQ0ZHLCByZWcpOworCX0KK30KKworc3RhdGljIGludCBfX2luaXQgZW5hYmxlX3BjaV9pb19lY3Modm9pZCkKK3sKKwkvKiBhc3N1bWUgYWxsIGNwdXMgZnJvbSBmYW0xMGggaGF2ZSBJTyBFQ1MgKi8KKyAgICAgICAgaWYgKGJvb3RfY3B1X2RhdGEueDg2IDwgMHgxMCkKKwkJcmV0dXJuIDA7CisJb25fZWFjaF9jcHUoZW5hYmxlX3BjaV9pb19lY3NfcGVyX2NwdSwgTlVMTCwgMSwgMSk7CisJcGNpX3Byb2JlIHw9IFBDSV9IQVNfSU9fRUNTOworCXJldHVybiAwOworfQorCitwb3N0Y29yZV9pbml0Y2FsbChlbmFibGVfcGNpX2lvX2Vjcyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvY29tbW9uLmMgYi9hcmNoL3g4Ni9wY2kvY29tbW9uLmMKaW5kZXggNmU2NGFhZi4uMjBiOWY1OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L3BjaS9jb21tb24uYwpAQCAtMzg0LDcgKzM4NCw3IEBACiAKIGV4dGVybiB1OCBwY2lfY2FjaGVfbGluZV9zaXplOwogCi1zdGF0aWMgaW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCkKK2ludCBfX2luaXQgcGNpYmlvc19pbml0KHZvaWQpCiB7CiAJc3RydWN0IGNwdWluZm9feDg2ICpjID0gJmJvb3RfY3B1X2RhdGE7CiAKQEAgLTQxMSw4ICs0MTEsNiBAQAogCXJldHVybiAwOwogfQogCi1zdWJzeXNfaW5pdGNhbGwocGNpYmlvc19pbml0KTsKLQogY2hhciAqIF9fZGV2aW5pdCAgcGNpYmlvc19zZXR1cChjaGFyICpzdHIpCiB7CiAJaWYgKCFzdHJjbXAoc3RyLCAib2ZmIikpIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9kaXJlY3QuYyBiL2FyY2gveDg2L3BjaS9kaXJlY3QuYwppbmRleCAyMWQxZTBlLi45OTE1MjkzIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvZGlyZWN0LmMKKysrIGIvYXJjaC94ODYvcGNpL2RpcmVjdC5jCkBAIC04LDE4ICs4LDIxIEBACiAjaW5jbHVkZSAicGNpLmgiCiAKIC8qCi0gKiBGdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyBQQ0kgY29uZmlndXJhdGlvbiBzcGFjZSB3aXRoIHR5cGUgMSBhY2Nlc3NlcworICogRnVuY3Rpb25zIGZvciBhY2Nlc3NpbmcgUENJIGJhc2UgKGZpcnN0IDI1NiBieXRlcykgYW5kIGV4dGVuZGVkCisgKiAoNDA5NiBieXRlcyBwZXIgUENJIGZ1bmN0aW9uKSBjb25maWd1cmF0aW9uIHNwYWNlIHdpdGggdHlwZSAxCisgKiBhY2Nlc3Nlcy4KICAqLwogCiAjZGVmaW5lIFBDSV9DT05GMV9BRERSRVNTKGJ1cywgZGV2Zm4sIHJlZykgXAotCSgweDgwMDAwMDAwIHwgKGJ1cyA8PCAxNikgfCAoZGV2Zm4gPDwgOCkgfCAocmVnICYgfjMpKQorCSgweDgwMDAwMDAwIHwgKChyZWcgJiAweEYwMCkgPDwgMTYpIHwgKGJ1cyA8PCAxNikgXAorCXwgKGRldmZuIDw8IDgpIHwgKHJlZyAmIDB4RkMpKQogCiBzdGF0aWMgaW50IHBjaV9jb25mMV9yZWFkKHVuc2lnbmVkIGludCBzZWcsIHVuc2lnbmVkIGludCBidXMsCiAJCQkgIHVuc2lnbmVkIGludCBkZXZmbiwgaW50IHJlZywgaW50IGxlbiwgdTMyICp2YWx1ZSkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKChidXMgPiAyNTUpIHx8IChkZXZmbiA+IDI1NSkgfHwgKHJlZyA+IDI1NSkpIHsKKwlpZiAoKGJ1cyA+IDI1NSkgfHwgKGRldmZuID4gMjU1KSB8fCAocmVnID4gNDA5NSkpIHsKIAkJKnZhbHVlID0gLTE7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTUwLDcgKzUzLDcgQEAKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKChidXMgPiAyNTUpIHx8IChkZXZmbiA+IDI1NSkgfHwgKHJlZyA+IDI1NSkpIAorCWlmICgoYnVzID4gMjU1KSB8fCAoZGV2Zm4gPiAyNTUpIHx8IChyZWcgPiA0MDk1KSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcGNpX2NvbmZpZ19sb2NrLCBmbGFncyk7CkBAIC0yNjAsMTAgKzI2MywxOCBAQAogCQlyZXR1cm47CiAJcHJpbnRrKEtFUk5fSU5GTyAiUENJOiBVc2luZyBjb25maWd1cmF0aW9uIHR5cGUgJWQgZm9yIGJhc2UgYWNjZXNzXG4iLAogCQkgdHlwZSk7Ci0JaWYgKHR5cGUgPT0gMSkKKwlpZiAodHlwZSA9PSAxKSB7CiAJCXJhd19wY2lfb3BzID0gJnBjaV9kaXJlY3RfY29uZjE7Ci0JZWxzZQotCQlyYXdfcGNpX29wcyA9ICZwY2lfZGlyZWN0X2NvbmYyOworCQlpZiAocmF3X3BjaV9leHRfb3BzKQorCQkJcmV0dXJuOworCQlpZiAoIShwY2lfcHJvYmUgJiBQQ0lfSEFTX0lPX0VDUykpCisJCQlyZXR1cm47CisJCXByaW50ayhLRVJOX0lORk8gIlBDSTogVXNpbmcgY29uZmlndXJhdGlvbiB0eXBlIDEgIgorCQkgICAgICAgImZvciBleHRlbmRlZCBhY2Nlc3NcbiIpOworCQlyYXdfcGNpX2V4dF9vcHMgPSAmcGNpX2RpcmVjdF9jb25mMTsKKwkJcmV0dXJuOworCX0KKwlyYXdfcGNpX29wcyA9ICZwY2lfZGlyZWN0X2NvbmYyOwogfQogCiBpbnQgX19pbml0IHBjaV9kaXJlY3RfcHJvYmUodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9pMzg2LmMgYi9hcmNoL3g4Ni9wY2kvaTM4Ni5jCmluZGV4IDEwZmIzMDguLjJhYWZiNjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9pMzg2LmMKKysrIGIvYXJjaC94ODYvcGNpL2kzODYuYwpAQCAtMjk5LDkgKzI5OSw5IEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJcHJvdCA9IHBncHJvdF92YWwodm1hLT52bV9wYWdlX3Byb3QpOwotCWlmIChwYXRfd2NfZW5hYmxlZCAmJiB3cml0ZV9jb21iaW5lKQorCWlmIChwYXRfZW5hYmxlZCAmJiB3cml0ZV9jb21iaW5lKQogCQlwcm90IHw9IF9QQUdFX0NBQ0hFX1dDOwotCWVsc2UgaWYgKHBhdF93Y19lbmFibGVkIHx8IGJvb3RfY3B1X2RhdGEueDg2ID4gMykKKwllbHNlIGlmIChwYXRfZW5hYmxlZCB8fCBib290X2NwdV9kYXRhLng4NiA+IDMpCiAJCS8qCiAJCSAqIGlvcmVtYXAoKSBhbmQgaW9yZW1hcF9ub2NhY2hlKCkgZGVmYXVsdHMgdG8gVUMgTUlOVVMgZm9yIG5vdy4KIAkJICogVG8gYXZvaWQgYXR0cmlidXRlIGNvbmZsaWN0cywgcmVxdWVzdCBVQyBNSU5VUyBoZXJlCkBAIC0zMzQsNyArMzM0LDkgQEAKIAkJZmxhZ3MgPSBuZXdfZmxhZ3M7CiAJfQogCi0JaWYgKHZtYS0+dm1fcGdvZmYgPD0gbWF4X3Bmbl9tYXBwZWQgJiYKKwlpZiAoKCh2bWEtPnZtX3Bnb2ZmIDwgbWF4X2xvd19wZm5fbWFwcGVkKSB8fAorCSAgICAgKHZtYS0+dm1fcGdvZmYgPj0gKDFVTDw8KDMyIC0gUEFHRV9TSElGVCkpICYmCisJICAgICAgdm1hLT52bV9wZ29mZiA8IG1heF9wZm5fbWFwcGVkKSkgJiYKIAkgICAgaW9yZW1hcF9jaGFuZ2VfYXR0cigodW5zaWduZWQgbG9uZylfX3ZhKGFkZHIpLCBsZW4sIGZsYWdzKSkgewogCQlmcmVlX21lbXR5cGUoYWRkciwgYWRkciArIGxlbik7CiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL2luaXQuYyBiL2FyY2gveDg2L3BjaS9pbml0LmMKaW5kZXggZTcwYjljNS4uZDZjOTUwZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2luaXQuYworKysgYi9hcmNoL3g4Ni9wY2kvaW5pdC5jCkBAIC00LDcgKzQsNyBAQAogCiAvKiBhcmNoX2luaXRjYWxsIGhhcyB0b28gcmFuZG9tIG9yZGVyaW5nLCBzbyBjYWxsIHRoZSBpbml0aWFsaXplcnMKICAgIGluIHRoZSByaWdodCBzZXF1ZW5jZSBmcm9tIGhlcmUuICovCi1zdGF0aWMgX19pbml0IGludCBwY2lfYWNjZXNzX2luaXQodm9pZCkKK3N0YXRpYyBfX2luaXQgaW50IHBjaV9hcmNoX2luaXQodm9pZCkKIHsKICNpZmRlZiBDT05GSUdfUENJX0RJUkVDVAogCWludCB0eXBlID0gMDsKQEAgLTE1LDcgKzE1LDggQEAKIAlwY2lfbW1jZmdfZWFybHlfaW5pdCgpOwogCiAjaWZkZWYgQ09ORklHX1BDSV9PTFBDCi0JcGNpX29scGNfaW5pdCgpOworCWlmICghcGNpX29scGNfaW5pdCgpKQorCQlyZXR1cm4gMDsJLyogc2tpcCBhZGRpdGlvbmFsIGNoZWNrcyBpZiBpdCdzIGFuIFhPICovCiAjZW5kaWYKICNpZmRlZiBDT05GSUdfUENJX0JJT1MKIAlwY2lfcGNiaW9zX2luaXQoKTsKQEAgLTM5LDQgKzQwLDQgQEAKIAogCXJldHVybiAwOwogfQotYXJjaF9pbml0Y2FsbChwY2lfYWNjZXNzX2luaXQpOworYXJjaF9pbml0Y2FsbChwY2lfYXJjaF9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9pcnEuYyBiL2FyY2gveDg2L3BjaS9pcnEuYwppbmRleCAwOTA4ZmNhLi5kYzU2OGM2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvaXJxLmMKKysrIGIvYXJjaC94ODYvcGNpL2lycS5jCkBAIC0xMSw4ICsxMSw4IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RtaS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9zbXAuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGFzbS9pb19hcGljLmg+CiAjaW5jbHVkZSA8bGludXgvaXJxLmg+CiAjaW5jbHVkZSA8bGludXgvYWNwaS5oPgpAQCAtNjEsNyArNjEsNyBAQAogICogIGFuZCBwZXJmb3JtIGNoZWNrc3VtIHZlcmlmaWNhdGlvbi4KICAqLwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBpcnFfcm91dGluZ190YWJsZSAqIHBpcnFfY2hlY2tfcm91dGluZ190YWJsZSh1OCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICpwaXJxX2NoZWNrX3JvdXRpbmdfdGFibGUodTggKmFkZHIpCiB7CiAJc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlICpydDsKIAlpbnQgaTsKQEAgLTc0LDcgKzc0LDcgQEAKIAkgICAgcnQtPnNpemUgPCBzaXplb2Yoc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlKSkKIAkJcmV0dXJuIE5VTEw7CiAJc3VtID0gMDsKLQlmb3IgKGk9MDsgaSA8IHJ0LT5zaXplOyBpKyspCisJZm9yIChpID0gMDsgaSA8IHJ0LT5zaXplOyBpKyspCiAJCXN1bSArPSBhZGRyW2ldOwogCWlmICghc3VtKSB7CiAJCURCRyhLRVJOX0RFQlVHICJQQ0k6IEludGVycnVwdCBSb3V0aW5nIFRhYmxlIGZvdW5kIGF0IDB4JXBcbiIsIHJ0KTsKQEAgLTEwMCw3ICsxMDAsNyBAQAogCQkJcmV0dXJuIHJ0OwogCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQ0k6IFBJUlEgdGFibGUgTk9UIGZvdW5kIGF0IHBpcnFhZGRyXG4iKTsKIAl9Ci0JZm9yKGFkZHIgPSAodTggKikgX192YSgweGYwMDAwKTsgYWRkciA8ICh1OCAqKSBfX3ZhKDB4MTAwMDAwKTsgYWRkciArPSAxNikgeworCWZvciAoYWRkciA9ICh1OCAqKSBfX3ZhKDB4ZjAwMDApOyBhZGRyIDwgKHU4ICopIF9fdmEoMHgxMDAwMDApOyBhZGRyICs9IDE2KSB7CiAJCXJ0ID0gcGlycV9jaGVja19yb3V0aW5nX3RhYmxlKGFkZHIpOwogCQlpZiAocnQpCiAJCQlyZXR1cm4gcnQ7CkBAIC0xMjIsMjAgKzEyMiwyMCBAQAogCXN0cnVjdCBpcnFfaW5mbyAqZTsKIAogCW1lbXNldChidXNtYXAsIDAsIHNpemVvZihidXNtYXApKTsKLQlmb3IoaT0wOyBpIDwgKHJ0LT5zaXplIC0gc2l6ZW9mKHN0cnVjdCBpcnFfcm91dGluZ190YWJsZSkpIC8gc2l6ZW9mKHN0cnVjdCBpcnFfaW5mbyk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCAocnQtPnNpemUgLSBzaXplb2Yoc3RydWN0IGlycV9yb3V0aW5nX3RhYmxlKSkgLyBzaXplb2Yoc3RydWN0IGlycV9pbmZvKTsgaSsrKSB7CiAJCWUgPSAmcnQtPnNsb3RzW2ldOwogI2lmZGVmIERFQlVHCiAJCXsKIAkJCWludCBqOwogCQkJREJHKEtFUk5fREVCVUcgIiUwMng6JTAyeCBzbG90PSUwMngiLCBlLT5idXMsIGUtPmRldmZuLzgsIGUtPnNsb3QpOwotCQkJZm9yKGo9MDsgajw0OyBqKyspCisJCQlmb3IgKGogPSAwOyBqIDwgNDsgaisrKQogCQkJCURCRygiICVkOiUwMngvJTA0eCIsIGosIGUtPmlycVtqXS5saW5rLCBlLT5pcnFbal0uYml0bWFwKTsKIAkJCURCRygiXG4iKTsKIAkJfQogI2VuZGlmCiAJCWJ1c21hcFtlLT5idXNdID0gMTsKIAl9Ci0JZm9yKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKKwlmb3IgKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKIAkJaW50IG5vZGU7CiAJCWlmICghYnVzbWFwW2ldIHx8IHBjaV9maW5kX2J1cygwLCBpKSkKIAkJCWNvbnRpbnVlOwpAQCAtMjg1LDcgKzI4NSw3IEBACiAJc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGlycW1hcFs0XSA9IHsgMSwgMCwgMiwgMyB9OwogCiAJV0FSTl9PTl9PTkNFKHBpcnEgPiA0KTsKLQlyZXR1cm4gcmVhZF9jb25maWdfbnliYmxlKHJvdXRlciwweDQzLCBwaXJxbWFwW3BpcnEtMV0pOworCXJldHVybiByZWFkX2NvbmZpZ19ueWJibGUocm91dGVyLCAweDQzLCBwaXJxbWFwW3BpcnEtMV0pOwogfQogCiBzdGF0aWMgaW50IHBpcnFfaXRlX3NldChzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcGlycSwgaW50IGlycSkKQEAgLTMxNCw3ICszMTQsNyBAQAogCiAvKgogICogQ3lyaXg6IG5pYmJsZSBvZmZzZXQgMHg1QwotICogMHg1QyBiaXRzIDc6NCBpcyBJTlRCIGJpdHMgMzowIGlzIElOVEEgCisgKiAweDVDIGJpdHMgNzo0IGlzIElOVEIgYml0cyAzOjAgaXMgSU5UQQogICogMHg1RCBiaXRzIDc6NCBpcyBJTlREIGJpdHMgMzowIGlzIElOVEMKICAqLwogc3RhdGljIGludCBwaXJxX2N5cml4X2dldChzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCBzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcGlycSkKQEAgLTM1MCw3ICszNTAsNyBAQAogICoJQXBwYXJlbnRseSB0aGVyZSBhcmUgc3lzdGVtcyBpbXBsZW1lbnRpbmcgUENJIHJvdXRpbmcgdGFibGUgdXNpbmcKICAqCWxpbmsgdmFsdWVzIDB4MDEtMHgwNCBhbmQgb3RoZXJzIHVzaW5nIDB4NDEtMHg0NCBmb3IgUENJIElOVEEuLkQuCiAgKglXZSB0cnkgb3VyIGJlc3QgdG8gaGFuZGxlIGJvdGggbGluayBtYXBwaW5ncy4KLSAqCQorICoKICAqCUN1cnJlbnRseSAoMjAwMy0wNS0yMSkgaXQgYXBwZWFycyBtb3N0IFNpUyBjaGlwc2V0cyBmb2xsb3cgdGhlCiAgKglkZWZpbml0aW9uIG9mIHJvdXRpbmcgcmVnaXN0ZXJzIGZyb20gdGhlIFNpUy01NTk1IHNvdXRoYnJpZGdlLgogICoJQWNjb3JkaW5nIHRvIHRoZSBTaVMgNTU5NSBkYXRhc2hlZXRzIHRoZSByZXZpc2lvbiBpZCdzIG9mIHRoZQpAQCAtMzcwLDcgKzM3MCw3IEBACiAgKgogICoJMHg2MjoJVVNCSVJROgogICoJCWJpdCA2IE9IQ0kgZnVuY3Rpb24gZGlzYWJsZWQgKDApLCBlbmFibGVkICgxKQotICoJCisgKgogICoJMHg2YToJQUNQSS9TQ0kgSVJROiBiaXRzIDQtNiByZXNlcnZlZAogICoKICAqCTB4N2U6CURhdGEgQWNxLiBNb2R1bGUgSVJRIC0gYml0cyA0LTYgcmVzZXJ2ZWQKQEAgLTQ4Nyw5ICs0ODcsNyBAQAogCXU4IGlycTsKIAlpcnEgPSAwOwogCWlmIChwaXJxIDw9IDQpCi0JewogCQlpcnEgPSByZWFkX2NvbmZpZ19ueWJibGUocm91dGVyLCAweDU2LCBwaXJxIC0gMSk7Ci0JfQogCXByaW50ayhLRVJOX0lORk8gIkFNRDc1NjogZGV2ICUwNHg6JTA0eCwgcm91dGVyIHBpcnEgOiAlZCBnZXQgaXJxIDogJTJkXG4iLAogCQlkZXYtPnZlbmRvciwgZGV2LT5kZXZpY2UsIHBpcnEsIGlycSk7CiAJcmV0dXJuIGlycTsKQEAgLTQ5NywxMiArNDk1LDEwIEBACiAKIHN0YXRpYyBpbnQgcGlycV9hbWQ3NTZfc2V0KHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBwaXJxLCBpbnQgaXJxKQogewotCXByaW50ayhLRVJOX0lORk8gIkFNRDc1NjogZGV2ICUwNHg6JTA0eCwgcm91dGVyIHBpcnEgOiAlZCBTRVQgaXJxIDogJTJkXG4iLCAKKwlwcmludGsoS0VSTl9JTkZPICJBTUQ3NTY6IGRldiAlMDR4OiUwNHgsIHJvdXRlciBwaXJxIDogJWQgU0VUIGlycSA6ICUyZFxuIiwKIAkJZGV2LT52ZW5kb3IsIGRldi0+ZGV2aWNlLCBwaXJxLCBpcnEpOwogCWlmIChwaXJxIDw9IDQpCi0JewogCQl3cml0ZV9jb25maWdfbnliYmxlKHJvdXRlciwgMHg1NiwgcGlycSAtIDEsIGlycSk7Ci0JfQogCXJldHVybiAxOwogfQogCkBAIC01NDksNTAgKzU0NSw0OSBAQAogCWlmIChwY2lfZGV2X3ByZXNlbnQocGlycV80NDBneCkpCiAJCXJldHVybiAwOwogCi0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUZCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MVNCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUFCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MU1YOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI0NDNNWF8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQl8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8xMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQ0FfMTI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMURCXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUVfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRUJfMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQl8xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNINl8xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18xOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18zMDoKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9FU0IyXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzM6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzE6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzM6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzU6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9UT0xBUEFJXzA6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8wOgotCQljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMToKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDEwXzI6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF8zOgotCQkJci0+bmFtZSA9ICJQSUlYL0lDSCI7Ci0JCQlyLT5nZXQgPSBwaXJxX3BpaXhfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9waWl4X3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxRkJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODIzNzFTQl8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjM3MUFCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyMzcxTVg6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyNDQzTVhfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFBQV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUFCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxQkFfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFCQV8xMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfODI4MDFDQV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUNBXzEyOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMURCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyODAxRV8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF84MjgwMUVCXzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQl8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g2XzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDZfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIN18wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g3XzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzA6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDdfMzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0VTQjJfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOF8wOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzE6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDhfMjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOF8zOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g4XzQ6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV8xOgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzI6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMzoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIOV80OgorCWNhc2UgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzU6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1RPTEFQQUlfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMToKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUNIMTBfMzoKKwkJci0+bmFtZSA9ICJQSUlYL0lDSCI7CisJCXItPmdldCA9IHBpcnFfcGlpeF9nZXQ7CisJCXItPnNldCA9IHBpcnFfcGlpeF9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTYwNiw3ICs2MDEsNyBAQAogCSAqIHdvcmthcm91bmRzIGZvciBzb21lIGJ1Z2d5IEJJT1NlcwogCSAqLwogCWlmIChkZXZpY2UgPT0gUENJX0RFVklDRV9JRF9WSUFfODJDNTg2XzApIHsKLQkJc3dpdGNoKHJvdXRlci0+ZGV2aWNlKSB7CisJCXN3aXRjaCAocm91dGVyLT5kZXZpY2UpIHsKIAkJY2FzZSBQQ0lfREVWSUNFX0lEX1ZJQV84MkM2ODY6CiAJCQkvKgogCQkJICogQXN1cyBrN20gYmlvcyB3cm9uZ2x5IHJlcG9ydHMgODJDNjg2QQpAQCAtNjIxLDEwICs2MTYsMTcgQEAKIAkJCSAqLwogCQkJZGV2aWNlID0gUENJX0RFVklDRV9JRF9WSUFfODIzNTsKIAkJCWJyZWFrOworCQljYXNlIFBDSV9ERVZJQ0VfSURfVklBXzgyMzc6CisJCQkvKioKKwkJCSAqIEFzdXMgYTd2NjAwIGJpb3Mgd3JvbmdseSByZXBvcnRzIDgyMzcKKwkJCSAqIGFzIDU4Ni1jb21wYXRpYmxlCisJCQkgKi8KKwkJCWRldmljZSA9IFBDSV9ERVZJQ0VfSURfVklBXzgyMzc7CisJCQlicmVhazsKIAkJfQogCX0KIAotCXN3aXRjaChkZXZpY2UpIHsKKwlzd2l0Y2ggKGRldmljZSkgewogCWNhc2UgUENJX0RFVklDRV9JRF9WSUFfODJDNTg2XzA6CiAJCXItPm5hbWUgPSAiVklBIjsKIAkJci0+Z2V0ID0gcGlycV92aWE1ODZfZ2V0OwpAQCAtNjQ3LDEzICs2NDksMTIgQEAKIAogc3RhdGljIF9faW5pdCBpbnQgdmxzaV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9WTFNJXzgyQzUzNDoKLQkJCXItPm5hbWUgPSAiVkxTSSA4MkM1MzQiOwotCQkJci0+Z2V0ID0gcGlycV92bHNpX2dldDsKLQkJCXItPnNldCA9IHBpcnFfdmxzaV9zZXQ7Ci0JCQlyZXR1cm4gMTsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9WTFNJXzgyQzUzNDoKKwkJci0+bmFtZSA9ICJWTFNJIDgyQzUzNCI7CisJCXItPmdldCA9IHBpcnFfdmxzaV9nZXQ7CisJCXItPnNldCA9IHBpcnFfdmxzaV9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTY2MSwxNCArNjYyLDEzIEBACiAKIHN0YXRpYyBfX2luaXQgaW50IHNlcnZlcndvcmtzX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKLQlzd2l0Y2goZGV2aWNlKQotCXsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX1NFUlZFUldPUktTX09TQjQ6Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9TRVJWRVJXT1JLU19DU0I1OgotCQkJci0+bmFtZSA9ICJTZXJ2ZXJXb3JrcyI7Ci0JCQlyLT5nZXQgPSBwaXJxX3NlcnZlcndvcmtzX2dldDsKLQkJCXItPnNldCA9IHBpcnFfc2VydmVyd29ya3Nfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfT1NCNDoKKwljYXNlIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfQ1NCNToKKwkJci0+bmFtZSA9ICJTZXJ2ZXJXb3JrcyI7CisJCXItPmdldCA9IHBpcnFfc2VydmVyd29ya3NfZ2V0OworCQlyLT5zZXQgPSBwaXJxX3NlcnZlcndvcmtzX3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNjc3LDcgKzY3Nyw3IEBACiB7CiAJaWYgKGRldmljZSAhPSBQQ0lfREVWSUNFX0lEX1NJXzUwMykKIAkJcmV0dXJuIDA7Ci0JCQorCiAJci0+bmFtZSA9ICJTSVMiOwogCXItPmdldCA9IHBpcnFfc2lzX2dldDsKIAlyLT5zZXQgPSBwaXJxX3Npc19zZXQ7CkBAIC02ODYsNDcgKzY4Niw0MyBAQAogCiBzdGF0aWMgX19pbml0IGludCBjeXJpeF9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9DWVJJWF81NTIwOgotCQkJci0+bmFtZSA9ICJOYXRTZW1pIjsKLQkJCXItPmdldCA9IHBpcnFfY3lyaXhfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9jeXJpeF9zZXQ7Ci0JCQlyZXR1cm4gMTsKKwlzd2l0Y2ggKGRldmljZSkgeworCWNhc2UgUENJX0RFVklDRV9JRF9DWVJJWF81NTIwOgorCQlyLT5uYW1lID0gIk5hdFNlbWkiOworCQlyLT5nZXQgPSBwaXJxX2N5cml4X2dldDsKKwkJci0+c2V0ID0gcGlycV9jeXJpeF9zZXQ7CisJCXJldHVybiAxOwogCX0KIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIF9faW5pdCBpbnQgb3B0aV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9PUFRJXzgyQzcwMDoKLQkJCXItPm5hbWUgPSAiT1BUSSI7Ci0JCQlyLT5nZXQgPSBwaXJxX29wdGlfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9vcHRpX3NldDsKLQkJCXJldHVybiAxOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX09QVElfODJDNzAwOgorCQlyLT5uYW1lID0gIk9QVEkiOworCQlyLT5nZXQgPSBwaXJxX29wdGlfZ2V0OworCQlyLT5zZXQgPSBwaXJxX29wdGlfc2V0OworCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBfX2luaXQgaW50IGl0ZV9yb3V0ZXJfcHJvYmUoc3RydWN0IGlycV9yb3V0ZXIgKnIsIHN0cnVjdCBwY2lfZGV2ICpyb3V0ZXIsIHUxNiBkZXZpY2UpCiB7Ci0Jc3dpdGNoKGRldmljZSkKLQl7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9JVEVfSVQ4MzMwR18wOgotCQkJci0+bmFtZSA9ICJJVEUiOwotCQkJci0+Z2V0ID0gcGlycV9pdGVfZ2V0OwotCQkJci0+c2V0ID0gcGlycV9pdGVfc2V0OwotCQkJcmV0dXJuIDE7CisJc3dpdGNoIChkZXZpY2UpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfSVRFX0lUODMzMEdfMDoKKwkJci0+bmFtZSA9ICJJVEUiOworCQlyLT5nZXQgPSBwaXJxX2l0ZV9nZXQ7CisJCXItPnNldCA9IHBpcnFfaXRlX3NldDsKKwkJcmV0dXJuIDE7CiAJfQogCXJldHVybiAwOwogfQogCiBzdGF0aWMgX19pbml0IGludCBhbGlfcm91dGVyX3Byb2JlKHN0cnVjdCBpcnFfcm91dGVyICpyLCBzdHJ1Y3QgcGNpX2RldiAqcm91dGVyLCB1MTYgZGV2aWNlKQogewotCXN3aXRjaChkZXZpY2UpCi0JeworCXN3aXRjaCAoZGV2aWNlKSB7CiAJY2FzZSBQQ0lfREVWSUNFX0lEX0FMX00xNTMzOgogCWNhc2UgUENJX0RFVklDRV9JRF9BTF9NMTU2MzoKIAkJcHJpbnRrKEtFUk5fREVCVUcgIlBDSTogVXNpbmcgQUxJIElSUSBSb3V0ZXJcbiIpOwpAQCAtNzQwLDI1ICs3MzYsMjQgQEAKIAogc3RhdGljIF9faW5pdCBpbnQgYW1kX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKLQlzd2l0Y2goZGV2aWNlKQotCXsKLQkJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDBCOgotCQkJci0+bmFtZSA9ICJBTUQ3NTYiOwotCQkJYnJlYWs7Ci0JCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQxMzoKLQkJCXItPm5hbWUgPSAiQU1ENzY2IjsKLQkJCWJyZWFrOwotCQljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0NDM6Ci0JCQlyLT5uYW1lID0gIkFNRDc2OCI7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXJldHVybiAwOworCXN3aXRjaCAoZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0FNRF9WSVBFUl83NDBCOgorCQlyLT5uYW1lID0gIkFNRDc1NiI7CisJCWJyZWFrOworCWNhc2UgUENJX0RFVklDRV9JRF9BTURfVklQRVJfNzQxMzoKKwkJci0+bmFtZSA9ICJBTUQ3NjYiOworCQlicmVhazsKKwljYXNlIFBDSV9ERVZJQ0VfSURfQU1EX1ZJUEVSXzc0NDM6CisJCXItPm5hbWUgPSAiQU1ENzY4IjsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CiAJfQogCXItPmdldCA9IHBpcnFfYW1kNzU2X2dldDsKIAlyLT5zZXQgPSBwaXJxX2FtZDc1Nl9zZXQ7CiAJcmV0dXJuIDE7CiB9Ci0JCQorCiBzdGF0aWMgX19pbml0IGludCBwaWNvX3JvdXRlcl9wcm9iZShzdHJ1Y3QgaXJxX3JvdXRlciAqciwgc3RydWN0IHBjaV9kZXYgKnJvdXRlciwgdTE2IGRldmljZSkKIHsKIAlzd2l0Y2ggKGRldmljZSkgewpAQCAtODAwLDcgKzc5NSw3IEBACiAgKglGSVhNRTogc2hvdWxkIHdlIGhhdmUgYW4gb3B0aW9uIHRvIHNheSAiZ2VuZXJpYyBmb3IKICAqCWNoaXBzZXQiID8KICAqLwotIAorCiBzdGF0aWMgdm9pZCBfX2luaXQgcGlycV9maW5kX3JvdXRlcihzdHJ1Y3QgaXJxX3JvdXRlciAqcikKIHsKIAlzdHJ1Y3QgaXJxX3JvdXRpbmdfdGFibGUgKnJ0ID0gcGlycV90YWJsZTsKQEAgLTgxOSw3ICs4MTQsNyBAQAogCXItPm5hbWUgPSAiZGVmYXVsdCI7CiAJci0+Z2V0ID0gTlVMTDsKIAlyLT5zZXQgPSBOVUxMOwotCQorCiAJREJHKEtFUk5fREVCVUcgIlBDSTogQXR0ZW1wdGluZyB0byBmaW5kIElSUSByb3V0ZXIgZm9yICUwNHg6JTA0eFxuIiwKIAkgICAgcnQtPnJ0cl92ZW5kb3IsIHJ0LT5ydHJfZGV2aWNlKTsKIApAQCAtODMwLDcgKzgyNSw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlmb3IoIGggPSBwaXJxX3JvdXRlcnM7IGgtPnZlbmRvcjsgaCsrKSB7CisJZm9yIChoID0gcGlycV9yb3V0ZXJzOyBoLT52ZW5kb3I7IGgrKykgewogCQkvKiBGaXJzdCBsb29rIGZvciBhIHJvdXRlciBtYXRjaCAqLwogCQlpZiAocnQtPnJ0cl92ZW5kb3IgPT0gaC0+dmVuZG9yICYmIGgtPnByb2JlKHIsIHBpcnFfcm91dGVyX2RldiwgcnQtPnJ0cl9kZXZpY2UpKQogCQkJYnJlYWs7CkBAIC04ODIsNyArODc3LDcgQEAKIAogCWlmICghcGlycV90YWJsZSkKIAkJcmV0dXJuIDA7Ci0JCisKIAlEQkcoS0VSTl9ERUJVRyAiSVJRIGZvciAlc1slY10iLCBwY2lfbmFtZShkZXYpLCAnQScgKyBwaW4pOwogCWluZm8gPSBwaXJxX2dldF9pbmZvKGRldik7CiAJaWYgKCFpbmZvKSB7CkBAIC05MjEsOCArOTE2LDEwIEBACiAJICovCiAJbmV3aXJxID0gZGV2LT5pcnE7CiAJaWYgKG5ld2lycSAmJiAhKCgxIDw8IG5ld2lycSkgJiBtYXNrKSkgewotCQlpZiAoIHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSBuZXdpcnEgPSAwOwotCQllbHNlIHByaW50aygiXG4iIEtFUk5fV0FSTklORworCQlpZiAocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spCisJCQluZXdpcnEgPSAwOworCQllbHNlCisJCQlwcmludGsoIlxuIiBLRVJOX1dBUk5JTkcKIAkJCSJQQ0k6IElSUSAlaSBmb3IgZGV2aWNlICVzIGRvZXNuJ3QgbWF0Y2ggUElSUSBtYXNrICIKIAkJCSItIHRyeSBwY2k9dXNlcGlycW1hc2tcbiIgS0VSTl9ERUJVRywgbmV3aXJxLAogCQkJcGNpX25hbWUoZGV2KSk7CkBAIC05NDIsOCArOTM5LDggQEAKIAkJaXJxID0gcGlycSAmIDB4ZjsKIAkJREJHKCIgLT4gaGFyZGNvZGVkIElSUSAlZFxuIiwgaXJxKTsKIAkJbXNnID0gIkhhcmRjb2RlZCI7Ci0JfSBlbHNlIGlmICggci0+Z2V0ICYmIChpcnEgPSByLT5nZXQocGlycV9yb3V0ZXJfZGV2LCBkZXYsIHBpcnEpKSAmJiBcCi0JKCghKHBjaV9wcm9iZSAmIFBDSV9VU0VfUElSUV9NQVNLKSkgfHwgKCgxIDw8IGlycSkgJiBtYXNrKSkgKSB7CisJfSBlbHNlIGlmIChyLT5nZXQgJiYgKGlycSA9IHItPmdldChwaXJxX3JvdXRlcl9kZXYsIGRldiwgcGlycSkpICYmIFwKKwkoKCEocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spKSB8fCAoKDEgPDwgaXJxKSAmIG1hc2spKSkgewogCQlEQkcoIiAtPiBnb3QgSVJRICVkXG4iLCBpcnEpOwogCQltc2cgPSAiRm91bmQiOwogCQllaXNhX3NldF9sZXZlbF9pcnEoaXJxKTsKQEAgLTk3OCwxNSArOTc1LDE1IEBACiAJCQljb250aW51ZTsKIAkJaWYgKGluZm8tPmlycVtwaW5dLmxpbmsgPT0gcGlycSkgewogCQkJLyogV2UgcmVmdXNlIHRvIG92ZXJyaWRlIHRoZSBkZXYtPmlycSBpbmZvcm1hdGlvbi4gR2l2ZSBhIHdhcm5pbmchICovCi0JCSAgICAJaWYgKCBkZXYyLT5pcnEgJiYgZGV2Mi0+aXJxICE9IGlycSAmJiBcCisJCQlpZiAoZGV2Mi0+aXJxICYmIGRldjItPmlycSAhPSBpcnEgJiYgXAogCQkJKCEocGNpX3Byb2JlICYgUENJX1VTRV9QSVJRX01BU0spIHx8IFwKLQkJCSgoMSA8PCBkZXYyLT5pcnEpICYgbWFzaykpICkgeworCQkJKCgxIDw8IGRldjItPmlycSkgJiBtYXNrKSkpIHsKICNpZm5kZWYgQ09ORklHX1BDSV9NU0kKLQkJICAgIAkJcHJpbnRrKEtFUk5fSU5GTyAiSVJRIHJvdXRpbmcgY29uZmxpY3QgZm9yICVzLCBoYXZlIGlycSAlZCwgd2FudCBpcnEgJWRcbiIsCisJCQkJcHJpbnRrKEtFUk5fSU5GTyAiSVJRIHJvdXRpbmcgY29uZmxpY3QgZm9yICVzLCBoYXZlIGlycSAlZCwgd2FudCBpcnEgJWRcbiIsCiAJCQkJICAgICAgIHBjaV9uYW1lKGRldjIpLCBkZXYyLT5pcnEsIGlycSk7CiAjZW5kaWYKLQkJICAgIAkJY29udGludWU7Ci0JCSAgICAJfQorCQkJCWNvbnRpbnVlOworCQkJfQogCQkJZGV2Mi0+aXJxID0gaXJxOwogCQkJcGlycV9wZW5hbHR5W2lycV0rKzsKIAkJCWlmIChkZXYgIT0gZGV2MikKQEAgLTEwMjQsOCArMTAyMSw3IEBACiAJCS8qCiAJCSAqIFJlY2FsY3VsYXRlIElSUSBudW1iZXJzIGlmIHdlIHVzZSB0aGUgSS9PIEFQSUMuCiAJCSAqLwotCQlpZiAoaW9fYXBpY19hc3NpZ25fcGNpX2lycXMpCi0JCXsKKwkJaWYgKGlvX2FwaWNfYXNzaWduX3BjaV9pcnFzKSB7CiAJCQlpbnQgaXJxOwogCiAJCQlpZiAocGluKSB7CkBAIC0xMDM4LDEwICsxMDM0LDEwIEBACiAJICogYnVzc2VzIGl0c2VsZiBzbyB3ZSBzaG91bGQgZ2V0IGludG8gdGhpcyBicmFuY2ggcmVsaWFibHkuCiAJICovCiAJCQkJaWYgKGlycSA8IDAgJiYgZGV2LT5idXMtPnBhcmVudCkgeyAvKiBnbyBiYWNrIHRvIHRoZSBicmlkZ2UgKi8KLQkJCQkJc3RydWN0IHBjaV9kZXYgKiBicmlkZ2UgPSBkZXYtPmJ1cy0+c2VsZjsKKwkJCQkJc3RydWN0IHBjaV9kZXYgKmJyaWRnZSA9IGRldi0+YnVzLT5zZWxmOwogCiAJCQkJCXBpbiA9IChwaW4gKyBQQ0lfU0xPVChkZXYtPmRldmZuKSkgJSA0OwotCQkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLCAKKwkJCQkJaXJxID0gSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoYnJpZGdlLT5idXMtPm51bWJlciwKIAkJCQkJCQlQQ0lfU0xPVChicmlkZ2UtPmRldmZuKSwgcGluKTsKIAkJCQkJaWYgKGlycSA+PSAwKQogCQkJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiUENJOiB1c2luZyBQUEIgJXNbJWNdIHRvIGdldCBpcnEgJWRcbiIsCkBAIC0xMTExLDcgKzExMDcsNyBAQAogCXsgfQogfTsKIAotc3RhdGljIGludCBfX2luaXQgcGNpYmlvc19pcnFfaW5pdCh2b2lkKQoraW50IF9faW5pdCBwY2liaW9zX2lycV9pbml0KHZvaWQpCiB7CiAJREJHKEtFUk5fREVCVUcgIlBDSTogSVJRIGluaXRcbiIpOwogCkBAIC0xMTMxLDcgKzExMjcsNyBAQAogCQlwaXJxX2ZpbmRfcm91dGVyKCZwaXJxX3JvdXRlcik7CiAJCWlmIChwaXJxX3RhYmxlLT5leGNsdXNpdmVfaXJxcykgewogCQkJaW50IGk7Ci0JCQlmb3IgKGk9MDsgaTwxNjsgaSsrKQorCQkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCiAJCQkJaWYgKCEocGlycV90YWJsZS0+ZXhjbHVzaXZlX2lycXMgJiAoMSA8PCBpKSkpCiAJCQkJCXBpcnFfcGVuYWx0eVtpXSArPSAxMDA7CiAJCX0KQEAgLTExNDYsOSArMTE0Miw2IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2liaW9zX2lycV9pbml0KTsKLQotCiBzdGF0aWMgdm9pZCBwaXJxX3BlbmFsaXplX2lzYV9pcnEoaW50IGlycSwgaW50IGFjdGl2ZSkKIHsKIAkvKgpAQCAtMTE5NiwxMCArMTE4OSwxMCBAQAogCQkJICovCiAJCQl0ZW1wX2RldiA9IGRldjsKIAkJCXdoaWxlIChpcnEgPCAwICYmIGRldi0+YnVzLT5wYXJlbnQpIHsgLyogZ28gYmFjayB0byB0aGUgYnJpZGdlICovCi0JCQkJc3RydWN0IHBjaV9kZXYgKiBicmlkZ2UgPSBkZXYtPmJ1cy0+c2VsZjsKKwkJCQlzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlID0gZGV2LT5idXMtPnNlbGY7CiAKIAkJCQlwaW4gPSAocGluICsgUENJX1NMT1QoZGV2LT5kZXZmbikpICUgNDsKLQkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLCAKKwkJCQlpcnEgPSBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihicmlkZ2UtPmJ1cy0+bnVtYmVyLAogCQkJCQkJUENJX1NMT1QoYnJpZGdlLT5kZXZmbiksIHBpbik7CiAJCQkJaWYgKGlycSA+PSAwKQogCQkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQ0k6IHVzaW5nIFBQQiAlc1slY10gdG8gZ2V0IGlycSAlZFxuIiwKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9rOC1idXNfNjQuYyBiL2FyY2gveDg2L3BjaS9rOC1idXNfNjQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWMyNzk5Yy4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvazgtYnVzXzY0LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MjggKzAsMCBAQAotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxhc20vcGNpLWRpcmVjdC5oPgotI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci0jaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KLQotLyoKLSAqIFRoaXMgZGlzY292ZXJzIHRoZSBwY2lidXMgPC0+IG5vZGUgbWFwcGluZyBvbiBBTUQgSzguCi0gKiBhbHNvIGdldCBwZWVyIHJvb3QgYnVzIHJlc291cmNlIGZvciBpbyxtbWlvCi0gKi8KLQotCi0vKgotICogc3ViIGJ1cyAodHJhbnNwYXJlbnQpIHdpbGwgdXNlIGVudHJlcyBmcm9tIDMgdG8gc3RvcmUgZXh0cmEgZnJvbSByb290LAotICogc28gbmVlZCB0byBtYWtlIHN1cmUgaGF2ZSBlbm91Z2h0IHNsb3QgdGhlcmUsIGluY3JlYXNlIFBDSV9CVVNfTlVNX1JFU09VUkNFUz8KLSAqLwotI2RlZmluZSBSRVNfTlVNIDE2Ci1zdHJ1Y3QgcGNpX3Jvb3RfaW5mbyB7Ci0JY2hhciBuYW1lWzEyXTsKLQl1bnNpZ25lZCBpbnQgcmVzX251bTsKLQlzdHJ1Y3QgcmVzb3VyY2UgcmVzW1JFU19OVU1dOwotCWludCBidXNfbWluOwotCWludCBidXNfbWF4OwotCWludCBub2RlOwotCWludCBsaW5rOwotfTsKLQotLyogNCBhdCB0aGlzIHRpbWUsIGl0IG1heSBiZWNvbWUgdG8gMzIgKi8KLSNkZWZpbmUgUENJX1JPT1RfTlIgNAotc3RhdGljIGludCBwY2lfcm9vdF9udW07Ci1zdGF0aWMgc3RydWN0IHBjaV9yb290X2luZm8gcGNpX3Jvb3RfaW5mb1tQQ0lfUk9PVF9OUl07Ci0KLSNpZmRlZiBDT05GSUdfTlVNQQotCi0jZGVmaW5lIEJVU19OUiAyNTYKLQotc3RhdGljIGludCBtcF9idXNfdG9fbm9kZVtCVVNfTlJdOwotCi12b2lkIHNldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtLCBpbnQgbm9kZSkKLXsKLQlpZiAoYnVzbnVtID49IDAgJiYgIGJ1c251bSA8IEJVU19OUikKLQkJbXBfYnVzX3RvX25vZGVbYnVzbnVtXSA9IG5vZGU7Ci19Ci0KLWludCBnZXRfbXBfYnVzX3RvX25vZGUoaW50IGJ1c251bSkKLXsKLQlpbnQgbm9kZSA9IC0xOwotCi0JaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQotCQlyZXR1cm4gbm9kZTsKLQotCW5vZGUgPSBtcF9idXNfdG9fbm9kZVtidXNudW1dOwotCi0JLyoKLQkgKiBsZXQgbnVtYV9ub2RlX2lkIHRvIGRlY2lkZSBpdCBsYXRlciBpbiBkbWFfYWxsb2NfcGFnZXMKLQkgKiBpZiB0aGVyZSBpcyBubyByYW0gb24gdGhhdCBub2RlCi0JICovCi0JaWYgKG5vZGUgIT0gLTEgJiYgIW5vZGVfb25saW5lKG5vZGUpKQotCQlub2RlID0gLTE7Ci0KLQlyZXR1cm4gbm9kZTsKLX0KLSNlbmRpZgotCi12b2lkIHNldF9wY2lfYnVzX3Jlc291cmNlc19hcmNoX2RlZmF1bHQoc3RydWN0IHBjaV9idXMgKmIpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0Jc3RydWN0IHBjaV9yb290X2luZm8gKmluZm87Ci0KLQkvKiBpZiBvbmx5IG9uZSByb290IGJ1cywgZG9uJ3QgbmVlZCB0byBhbnl0aGluZyAqLwotCWlmIChwY2lfcm9vdF9udW0gPCAyKQotCQlyZXR1cm47Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKLQkJaWYgKHBjaV9yb290X2luZm9baV0uYnVzX21pbiA9PSBiLT5udW1iZXIpCi0JCQlicmVhazsKLQl9Ci0KLQlpZiAoaSA9PSBwY2lfcm9vdF9udW0pCi0JCXJldHVybjsKLQotCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tpXTsKLQlmb3IgKGogPSAwOyBqIDwgaW5mby0+cmVzX251bTsgaisrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJvb3Q7Ci0KLQkJcmVzID0gJmluZm8tPnJlc1tqXTsKLQkJYi0+cmVzb3VyY2Vbal0gPSByZXM7Ci0JCWlmIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTykKLQkJCXJvb3QgPSAmaW9wb3J0X3Jlc291cmNlOwotCQllbHNlCi0JCQlyb290ID0gJmlvbWVtX3Jlc291cmNlOwotCQlpbnNlcnRfcmVzb3VyY2Uocm9vdCwgcmVzKTsKLQl9Ci19Ci0KLSNkZWZpbmUgUkFOR0VfTlVNIDE2Ci0KLXN0cnVjdCByZXNfcmFuZ2UgewotCXNpemVfdCBzdGFydDsKLQlzaXplX3QgZW5kOwotfTsKLQotc3RhdGljIHZvaWQgX19pbml0IHVwZGF0ZV9yYW5nZShzdHJ1Y3QgcmVzX3JhbmdlICpyYW5nZSwgc2l6ZV90IHN0YXJ0LAotCQkJCXNpemVfdCBlbmQpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0KLQlmb3IgKGogPSAwOyBqIDwgUkFOR0VfTlVNOyBqKyspIHsKLQkJaWYgKCFyYW5nZVtqXS5lbmQpCi0JCQljb250aW51ZTsKLQotCQlpZiAoc3RhcnQgPD0gcmFuZ2Vbal0uc3RhcnQgJiYgZW5kID49IHJhbmdlW2pdLmVuZCkgewotCQkJcmFuZ2Vbal0uc3RhcnQgPSAwOwotCQkJcmFuZ2Vbal0uZW5kID0gMDsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQkJaWYgKHN0YXJ0IDw9IHJhbmdlW2pdLnN0YXJ0ICYmIGVuZCA8IHJhbmdlW2pdLmVuZCAmJiByYW5nZVtqXS5zdGFydCA8IGVuZCArIDEpIHsKLQkJCXJhbmdlW2pdLnN0YXJ0ID0gZW5kICsgMTsKLQkJCWNvbnRpbnVlOwotCQl9Ci0KLQotCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPj0gcmFuZ2Vbal0uZW5kICYmIHJhbmdlW2pdLmVuZCA+IHN0YXJ0IC0gMSkgewotCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlpZiAoc3RhcnQgPiByYW5nZVtqXS5zdGFydCAmJiBlbmQgPCByYW5nZVtqXS5lbmQpIHsKLQkJCS8qIGZpbmQgdGhlIG5ldyBzcGFyZSAqLwotCQkJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7Ci0JCQkJaWYgKHJhbmdlW2ldLmVuZCA9PSAwKQotCQkJCQlicmVhazsKLQkJCX0KLQkJCWlmIChpIDwgUkFOR0VfTlVNKSB7Ci0JCQkJcmFuZ2VbaV0uZW5kID0gcmFuZ2Vbal0uZW5kOwotCQkJCXJhbmdlW2ldLnN0YXJ0ID0gZW5kICsgMTsKLQkJCX0gZWxzZSB7Ci0JCQkJcHJpbnRrKEtFUk5fRVJSICJydW4gb2Ygc2xvdCBpbiByYW5nZXNcbiIpOwotCQkJfQotCQkJcmFuZ2Vbal0uZW5kID0gc3RhcnQgLSAxOwotCQkJY29udGludWU7Ci0JCX0KLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdCB1cGRhdGVfcmVzKHN0cnVjdCBwY2lfcm9vdF9pbmZvICppbmZvLCBzaXplX3Qgc3RhcnQsCi0JCQkgICAgICBzaXplX3QgZW5kLCB1bnNpZ25lZCBsb25nIGZsYWdzLCBpbnQgbWVyZ2UpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0KLQlpZiAoIW1lcmdlKQotCQlnb3RvIGFkZGl0OwotCi0JLyogdHJ5IHRvIG1lcmdlIGl0IHdpdGggb2xkIG9uZSAqLwotCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5yZXNfbnVtOyBpKyspIHsKLQkJc2l6ZV90IGZpbmFsX3N0YXJ0LCBmaW5hbF9lbmQ7Ci0JCXNpemVfdCBjb21tb25fc3RhcnQsIGNvbW1vbl9lbmQ7Ci0KLQkJcmVzID0gJmluZm8tPnJlc1tpXTsKLQkJaWYgKHJlcy0+ZmxhZ3MgIT0gZmxhZ3MpCi0JCQljb250aW51ZTsKLQotCQljb21tb25fc3RhcnQgPSBtYXgoKHNpemVfdClyZXMtPnN0YXJ0LCBzdGFydCk7Ci0JCWNvbW1vbl9lbmQgPSBtaW4oKHNpemVfdClyZXMtPmVuZCwgZW5kKTsKLQkJaWYgKGNvbW1vbl9zdGFydCA+IGNvbW1vbl9lbmQgKyAxKQotCQkJY29udGludWU7Ci0KLQkJZmluYWxfc3RhcnQgPSBtaW4oKHNpemVfdClyZXMtPnN0YXJ0LCBzdGFydCk7Ci0JCWZpbmFsX2VuZCA9IG1heCgoc2l6ZV90KXJlcy0+ZW5kLCBlbmQpOwotCi0JCXJlcy0+c3RhcnQgPSBmaW5hbF9zdGFydDsKLQkJcmVzLT5lbmQgPSBmaW5hbF9lbmQ7Ci0JCXJldHVybjsKLQl9Ci0KLWFkZGl0OgotCi0JLyogbmVlZCB0byBhZGQgdGhhdCAqLwotCWlmIChpbmZvLT5yZXNfbnVtID49IFJFU19OVU0pCi0JCXJldHVybjsKLQotCXJlcyA9ICZpbmZvLT5yZXNbaW5mby0+cmVzX251bV07Ci0JcmVzLT5uYW1lID0gaW5mby0+bmFtZTsKLQlyZXMtPmZsYWdzID0gZmxhZ3M7Ci0JcmVzLT5zdGFydCA9IHN0YXJ0OwotCXJlcy0+ZW5kID0gZW5kOwotCXJlcy0+Y2hpbGQgPSBOVUxMOwotCWluZm8tPnJlc19udW0rKzsKLX0KLQotc3RydWN0IHBjaV9ob3N0YnJpZGdlX3Byb2JlIHsKLQl1MzIgYnVzOwotCXUzMiBzbG90OwotCXUzMiB2ZW5kb3I7Ci0JdTMyIGRldmljZTsKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGNpX2hvc3RicmlkZ2VfcHJvYmUgcGNpX3Byb2Jlc1tdIF9faW5pdGRhdGEgPSB7Ci0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMTAwIH0sCi0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMjAwIH0sCi0JeyAweGZmLCAwLCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMjAwIH0sCi0JeyAwLCAweDE4LCBQQ0lfVkVORE9SX0lEX0FNRCwgMHgxMzAwIH0sCi19OwotCi1zdGF0aWMgdTY0IF9faW5pdGRhdGEgZmFtMTBoX21tY29uZl9zdGFydDsKLXN0YXRpYyB1NjQgX19pbml0ZGF0YSBmYW0xMGhfbW1jb25mX2VuZDsKLXN0YXRpYyB2b2lkIF9faW5pdCBnZXRfcGNpX21tY2ZnX2FtZF9mYW0xMGhfcmFuZ2Uodm9pZCkKLXsKLQl1MzIgYWRkcmVzczsKLQl1NjQgYmFzZSwgbXNyOwotCXVuc2lnbmVkIHNlZ25fYnVzbl9iaXRzOwotCi0JLyogYXNzdW1lIGFsbCBjcHVzIGZyb20gZmFtMTBoIGhhdmUgbW1jb25mICovCi0gICAgICAgIGlmIChib290X2NwdV9kYXRhLng4NiA8IDB4MTApCi0JCXJldHVybjsKLQotCWFkZHJlc3MgPSBNU1JfRkFNMTBIX01NSU9fQ09ORl9CQVNFOwotCXJkbXNybChhZGRyZXNzLCBtc3IpOwotCi0JLyogbW1jb25maWcgaXMgbm90IGVuYWJsZSAqLwotCWlmICghKG1zciAmIEZBTTEwSF9NTUlPX0NPTkZfRU5BQkxFKSkKLQkJcmV0dXJuOwotCi0JYmFzZSA9IG1zciAmIChGQU0xMEhfTU1JT19DT05GX0JBU0VfTUFTSzw8RkFNMTBIX01NSU9fQ09ORl9CQVNFX1NISUZUKTsKLQotCXNlZ25fYnVzbl9iaXRzID0gKG1zciA+PiBGQU0xMEhfTU1JT19DT05GX0JVU1JBTkdFX1NISUZUKSAmCi0JCQkgRkFNMTBIX01NSU9fQ09ORl9CVVNSQU5HRV9NQVNLOwotCi0JZmFtMTBoX21tY29uZl9zdGFydCA9IGJhc2U7Ci0JZmFtMTBoX21tY29uZl9lbmQgPSBiYXNlICsgKDFVTEw8PChzZWduX2J1c25fYml0cyArIDIwKSkgLSAxOwotfQotCi0vKioKLSAqIGVhcmx5X2ZpbGxfbXBfYnVzX3RvX25vZGUoKQotICogY2FsbGVkIGJlZm9yZSBwY2liaW9zX3NjYW5fcm9vdCBhbmQgcGNpX3NjYW5fYnVzCi0gKiBmaWxscyB0aGUgbXBfYnVzX3RvX2NwdW1hc2sgYXJyYXkgYmFzZWQgYWNjb3JkaW5nIHRvIHRoZSBMRFQgQnVzIE51bWJlcgotICogUmVnaXN0ZXJzIGZvdW5kIGluIHRoZSBLOCBub3J0aGJyaWRnZQotICovCi1zdGF0aWMgaW50IF9faW5pdCBlYXJseV9maWxsX21wX2J1c19pbmZvKHZvaWQpCi17Ci0JaW50IGk7Ci0JaW50IGo7Ci0JdW5zaWduZWQgYnVzOwotCXVuc2lnbmVkIHNsb3Q7Ci0JaW50IGZvdW5kOwotCWludCBub2RlOwotCWludCBsaW5rOwotCWludCBkZWZfbm9kZTsKLQlpbnQgZGVmX2xpbms7Ci0Jc3RydWN0IHBjaV9yb290X2luZm8gKmluZm87Ci0JdTMyIHJlZzsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKLQlzaXplX3Qgc3RhcnQ7Ci0Jc2l6ZV90IGVuZDsKLQlzdHJ1Y3QgcmVzX3JhbmdlIHJhbmdlW1JBTkdFX05VTV07Ci0JdTY0IHZhbDsKLQl1MzIgYWRkcmVzczsKLQotI2lmZGVmIENPTkZJR19OVU1BCi0JZm9yIChpID0gMDsgaSA8IEJVU19OUjsgaSsrKQotCQltcF9idXNfdG9fbm9kZVtpXSA9IC0xOwotI2VuZGlmCi0KLQlpZiAoIWVhcmx5X3BjaV9hbGxvd2VkKCkpCi0JCXJldHVybiAtMTsKLQotCWZvdW5kID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY2lfcHJvYmVzKTsgaSsrKSB7Ci0JCXUzMiBpZDsKLQkJdTE2IGRldmljZTsKLQkJdTE2IHZlbmRvcjsKLQotCQlidXMgPSBwY2lfcHJvYmVzW2ldLmJ1czsKLQkJc2xvdCA9IHBjaV9wcm9iZXNbaV0uc2xvdDsKLQkJaWQgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCBQQ0lfVkVORE9SX0lEKTsKLQotCQl2ZW5kb3IgPSBpZCAmIDB4ZmZmZjsKLQkJZGV2aWNlID0gKGlkPj4xNikgJiAweGZmZmY7Ci0JCWlmIChwY2lfcHJvYmVzW2ldLnZlbmRvciA9PSB2ZW5kb3IgJiYKLQkJICAgIHBjaV9wcm9iZXNbaV0uZGV2aWNlID09IGRldmljZSkgewotCQkJZm91bmQgPSAxOwotCQkJYnJlYWs7Ci0JCX0KLQl9Ci0KLQlpZiAoIWZvdW5kKQotCQlyZXR1cm4gMDsKLQotCXBjaV9yb290X251bSA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewotCQlpbnQgbWluX2J1czsKLQkJaW50IG1heF9idXM7Ci0JCXJlZyA9IHJlYWRfcGNpX2NvbmZpZyhidXMsIHNsb3QsIDEsIDB4ZTAgKyAoaSA8PCAyKSk7Ci0KLQkJLyogQ2hlY2sgaWYgdGhhdCByZWdpc3RlciBpcyBlbmFibGVkIGZvciBidXMgcmFuZ2UgKi8KLQkJaWYgKChyZWcgJiA3KSAhPSAzKQotCQkJY29udGludWU7Ci0KLQkJbWluX2J1cyA9IChyZWcgPj4gMTYpICYgMHhmZjsKLQkJbWF4X2J1cyA9IChyZWcgPj4gMjQpICYgMHhmZjsKLQkJbm9kZSA9IChyZWcgPj4gNCkgJiAweDA3OwotI2lmZGVmIENPTkZJR19OVU1BCi0JCWZvciAoaiA9IG1pbl9idXM7IGogPD0gbWF4X2J1czsgaisrKQotCQkJbXBfYnVzX3RvX25vZGVbal0gPSAodW5zaWduZWQgY2hhcikgbm9kZTsKLSNlbmRpZgotCQlsaW5rID0gKHJlZyA+PiA4KSAmIDB4MDM7Ci0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW3BjaV9yb290X251bV07Ci0JCWluZm8tPmJ1c19taW4gPSBtaW5fYnVzOwotCQlpbmZvLT5idXNfbWF4ID0gbWF4X2J1czsKLQkJaW5mby0+bm9kZSA9IG5vZGU7Ci0JCWluZm8tPmxpbmsgPSBsaW5rOwotCQlzcHJpbnRmKGluZm8tPm5hbWUsICJQQ0kgQnVzICMlMDJ4IiwgbWluX2J1cyk7Ci0JCXBjaV9yb290X251bSsrOwotCX0KLQotCS8qIGdldCB0aGUgZGVmYXVsdCBub2RlIGFuZCBsaW5rIGZvciBsZWZ0IG92ZXIgcmVzICovCi0JcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMCwgMHg2MCk7Ci0JZGVmX25vZGUgPSAocmVnID4+IDgpICYgMHgwNzsKLQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAwLCAweDY0KTsKLQlkZWZfbGluayA9IChyZWcgPj4gOCkgJiAweDAzOwotCi0JbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKLQlyYW5nZVswXS5lbmQgPSAweGZmZmY7Ci0JLyogaW8gcG9ydCByZXNvdXJjZSAqLwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJcmVnID0gcmVhZF9wY2lfY29uZmlnKGJ1cywgc2xvdCwgMSwgMHhjMCArIChpIDw8IDMpKTsKLQkJaWYgKCEocmVnICYgMykpCi0JCQljb250aW51ZTsKLQotCQlzdGFydCA9IHJlZyAmIDB4ZmZmMDAwOwotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweGM0ICsgKGkgPDwgMykpOwotCQlub2RlID0gcmVnICYgMHgwNzsKLQkJbGluayA9IChyZWcgPj4gNCkgJiAweDAzOwotCQllbmQgPSAocmVnICYgMHhmZmYwMDApIHwgMHhmZmY7Ci0KLQkJLyogZmluZCB0aGUgcG9zaXRpb24gKi8KLQkJZm9yIChqID0gMDsgaiA8IHBjaV9yb290X251bTsgaisrKSB7Ci0JCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCQlpZiAoaW5mby0+bm9kZSA9PSBub2RlICYmIGluZm8tPmxpbmsgPT0gbGluaykKLQkJCQlicmVhazsKLQkJfQotCQlpZiAoaiA9PSBwY2lfcm9vdF9udW0pCi0JCQljb250aW51ZTsgLyogbm90IGZvdW5kICovCi0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQlwcmludGsoS0VSTl9ERUJVRyAibm9kZSAlZCBsaW5rICVkOiBpbyBwb3J0IFslbGx4LCAlbGx4XVxuIiwKLQkJICAgICAgIG5vZGUsIGxpbmssICh1NjQpc3RhcnQsICh1NjQpZW5kKTsKLQotCQkvKiBrZXJuZWwgb25seSBoYW5kbGUgMTYgYml0IG9ubHkgKi8KLQkJaWYgKGVuZCA+IDB4ZmZmZikKLQkJCWVuZCA9IDB4ZmZmZjsKLQkJdXBkYXRlX3JlcyhpbmZvLCBzdGFydCwgZW5kLCBJT1JFU09VUkNFX0lPLCAxKTsKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5kKTsKLQl9Ci0JLyogYWRkIGxlZnQgb3ZlciBpbyBwb3J0IHJhbmdlIHRvIGRlZiBub2RlL2xpbmssIFswLCAweGZmZmZdICovCi0JLyogZmluZCB0aGUgcG9zaXRpb24gKi8KLQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCQlpZiAoaW5mby0+bm9kZSA9PSBkZWZfbm9kZSAmJiBpbmZvLT5saW5rID09IGRlZl9saW5rKQotCQkJYnJlYWs7Ci0JfQotCWlmIChqIDwgcGNpX3Jvb3RfbnVtKSB7Ci0JCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJZm9yIChpID0gMDsgaSA8IFJBTkdFX05VTTsgaSsrKSB7Ci0JCQlpZiAoIXJhbmdlW2ldLmVuZCkKLQkJCQljb250aW51ZTsKLQotCQkJdXBkYXRlX3JlcyhpbmZvLCByYW5nZVtpXS5zdGFydCwgcmFuZ2VbaV0uZW5kLAotCQkJCSAgIElPUkVTT1VSQ0VfSU8sIDEpOwotCQl9Ci0JfQotCi0JbWVtc2V0KHJhbmdlLCAwLCBzaXplb2YocmFuZ2UpKTsKLQkvKiAweGZkMDAwMDAwMDAtMHhmZmZmZmZmZmZmIGZvciBIVCAqLwotCXJhbmdlWzBdLmVuZCA9ICgweGZkVUxMPDwzMikgLSAxOwotCi0JLyogbmVlZCB0byB0YWtlIG91dCBbMCwgVE9NKSBmb3IgUkFNKi8KLQlhZGRyZXNzID0gTVNSX0s4X1RPUF9NRU0xOwotCXJkbXNybChhZGRyZXNzLCB2YWwpOwotCWVuZCA9ICh2YWwgJiAweGZmZmZmZjgwMDAwMDBVTEwpOwotCXByaW50ayhLRVJOX0lORk8gIlRPTTogJTAxNmx4IGFrYSAlbGRNXG4iLCBlbmQsIGVuZD4+MjApOwotCWlmIChlbmQgPCAoMVVMTDw8MzIpKQotCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIDAsIGVuZCAtIDEpOwotCi0JLyogZ2V0IG1tY29uZmlnICovCi0JZ2V0X3BjaV9tbWNmZ19hbWRfZmFtMTBoX3JhbmdlKCk7Ci0JLyogbmVlZCB0byB0YWtlIG91dCBtbWNvbmYgcmFuZ2UgKi8KLQlpZiAoZmFtMTBoX21tY29uZl9lbmQpIHsKLQkJcHJpbnRrKEtFUk5fREVCVUcgIkZhbSAxMGggbW1jb25mIFslbGx4LCAlbGx4XVxuIiwgZmFtMTBoX21tY29uZl9zdGFydCwgZmFtMTBoX21tY29uZl9lbmQpOwotCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIGZhbTEwaF9tbWNvbmZfc3RhcnQsIGZhbTEwaF9tbWNvbmZfZW5kKTsKLQl9Ci0KLQkvKiBtbWlvIHJlc291cmNlICovCi0JZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweDgwICsgKGkgPDwgMykpOwotCQlpZiAoIShyZWcgJiAzKSkKLQkJCWNvbnRpbnVlOwotCi0JCXN0YXJ0ID0gcmVnICYgMHhmZmZmZmYwMDsgLyogMzk6MTYgb24gMzE6OCovCi0JCXN0YXJ0IDw8PSA4OwotCQlyZWcgPSByZWFkX3BjaV9jb25maWcoYnVzLCBzbG90LCAxLCAweDg0ICsgKGkgPDwgMykpOwotCQlub2RlID0gcmVnICYgMHgwNzsKLQkJbGluayA9IChyZWcgPj4gNCkgJiAweDAzOwotCQllbmQgPSAocmVnICYgMHhmZmZmZmYwMCk7Ci0JCWVuZCA8PD0gODsKLQkJZW5kIHw9IDB4ZmZmZjsKLQotCQkvKiBmaW5kIHRoZSBwb3NpdGlvbiAqLwotCQlmb3IgKGogPSAwOyBqIDwgcGNpX3Jvb3RfbnVtOyBqKyspIHsKLQkJCWluZm8gPSAmcGNpX3Jvb3RfaW5mb1tqXTsKLQkJCWlmIChpbmZvLT5ub2RlID09IG5vZGUgJiYgaW5mby0+bGluayA9PSBsaW5rKQotCQkJCWJyZWFrOwotCQl9Ci0JCWlmIChqID09IHBjaV9yb290X251bSkKLQkJCWNvbnRpbnVlOyAvKiBub3QgZm91bmQgKi8KLQotCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0KLQkJcHJpbnRrKEtFUk5fREVCVUcgIm5vZGUgJWQgbGluayAlZDogbW1pbyBbJWxseCwgJWxseF0iLAotCQkgICAgICAgbm9kZSwgbGluaywgKHU2NClzdGFydCwgKHU2NCllbmQpOwotCQkvKgotCQkgKiBzb21lIHNpY2sgYWxsb2NhdGlvbiB3b3VsZCBoYXZlIHJhbmdlIG92ZXJsYXAgd2l0aCBmYW0xMGgKLQkJICogbW1jb25mIHJhbmdlLCBzbyBuZWVkIHRvIHVwZGF0ZSBzdGFydCBhbmQgZW5kLgotCQkgKi8KLQkJaWYgKGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCQlpbnQgY2hhbmdlZCA9IDA7Ci0JCQl1NjQgZW5keCA9IDA7Ci0JCQlpZiAoc3RhcnQgPj0gZmFtMTBoX21tY29uZl9zdGFydCAmJgotCQkJICAgIHN0YXJ0IDw9IGZhbTEwaF9tbWNvbmZfZW5kKSB7Ci0JCQkJc3RhcnQgPSBmYW0xMGhfbW1jb25mX2VuZCArIDE7Ci0JCQkJY2hhbmdlZCA9IDE7Ci0JCQl9Ci0KLQkJCWlmIChlbmQgPj0gZmFtMTBoX21tY29uZl9zdGFydCAmJgotCQkJICAgIGVuZCA8PSBmYW0xMGhfbW1jb25mX2VuZCkgewotCQkJCWVuZCA9IGZhbTEwaF9tbWNvbmZfc3RhcnQgLSAxOwotCQkJCWNoYW5nZWQgPSAxOwotCQkJfQotCi0JCQlpZiAoc3RhcnQgPCBmYW0xMGhfbW1jb25mX3N0YXJ0ICYmCi0JCQkgICAgZW5kID4gZmFtMTBoX21tY29uZl9lbmQpIHsKLQkJCQkvKiB3ZSBnb3QgYSBob2xlICovCi0JCQkJZW5keCA9IGZhbTEwaF9tbWNvbmZfc3RhcnQgLSAxOwotCQkJCXVwZGF0ZV9yZXMoaW5mbywgc3RhcnQsIGVuZHgsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQkJCQl1cGRhdGVfcmFuZ2UocmFuZ2UsIHN0YXJ0LCBlbmR4KTsKLQkJCQlwcmludGsoS0VSTl9DT05UICIgPT0+IFslbGx4LCAlbGx4XSIsICh1NjQpc3RhcnQsIGVuZHgpOwotCQkJCXN0YXJ0ID0gZmFtMTBoX21tY29uZl9lbmQgKyAxOwotCQkJCWNoYW5nZWQgPSAxOwotCQkJfQotCQkJaWYgKGNoYW5nZWQpIHsKLQkJCQlpZiAoc3RhcnQgPD0gZW5kKSB7Ci0JCQkJCXByaW50ayhLRVJOX0NPTlQgIiAlcyBbJWxseCwgJWxseF0iLCBlbmR4PyJhbmQiOiI9PT4iLCAodTY0KXN0YXJ0LCAodTY0KWVuZCk7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJcHJpbnRrKEtFUk5fQ09OVCAiJXNcbiIsIGVuZHg/IiI6IiA9PT4gbm9uZSIpOwotCQkJCQljb250aW51ZTsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotCQl1cGRhdGVfcmVzKGluZm8sIHN0YXJ0LCBlbmQsIElPUkVTT1VSQ0VfTUVNLCAxKTsKLQkJdXBkYXRlX3JhbmdlKHJhbmdlLCBzdGFydCwgZW5kKTsKLQkJcHJpbnRrKEtFUk5fQ09OVCAiXG4iKTsKLQl9Ci0KLQkvKiBuZWVkIHRvIHRha2Ugb3V0IFs0RywgVE9NMikgZm9yIFJBTSovCi0JLyogU1lTX0NGRyAqLwotCWFkZHJlc3MgPSBNU1JfSzhfU1lTQ0ZHOwotCXJkbXNybChhZGRyZXNzLCB2YWwpOwotCS8qIFRPUF9NRU0yIGlzIGVuYWJsZWQ/ICovCi0JaWYgKHZhbCAmICgxPDwyMSkpIHsKLQkJLyogVE9QX01FTTIgKi8KLQkJYWRkcmVzcyA9IE1TUl9LOF9UT1BfTUVNMjsKLQkJcmRtc3JsKGFkZHJlc3MsIHZhbCk7Ci0JCWVuZCA9ICh2YWwgJiAweGZmZmZmZjgwMDAwMDBVTEwpOwotCQlwcmludGsoS0VSTl9JTkZPICJUT00yOiAlMDE2bHggYWthICVsZE1cbiIsIGVuZCwgZW5kPj4yMCk7Ci0JCXVwZGF0ZV9yYW5nZShyYW5nZSwgMVVMTDw8MzIsIGVuZCAtIDEpOwotCX0KLQotCS8qCi0JICogYWRkIGxlZnQgb3ZlciBtbWlvIHJhbmdlIHRvIGRlZiBub2RlL2xpbmsgPwotCSAqIHRoYXQgaXMgdHJpY2t5LCBqdXN0IHJlY29yZCByYW5nZSBpbiBmcm9tIHN0YXJ0X21pbiB0byA0RwotCSAqLwotCWZvciAoaiA9IDA7IGogPCBwY2lfcm9vdF9udW07IGorKykgewotCQlpbmZvID0gJnBjaV9yb290X2luZm9bal07Ci0JCWlmIChpbmZvLT5ub2RlID09IGRlZl9ub2RlICYmIGluZm8tPmxpbmsgPT0gZGVmX2xpbmspCi0JCQlicmVhazsKLQl9Ci0JaWYgKGogPCBwY2lfcm9vdF9udW0pIHsKLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2pdOwotCi0JCWZvciAoaSA9IDA7IGkgPCBSQU5HRV9OVU07IGkrKykgewotCQkJaWYgKCFyYW5nZVtpXS5lbmQpCi0JCQkJY29udGludWU7Ci0KLQkJCXVwZGF0ZV9yZXMoaW5mbywgcmFuZ2VbaV0uc3RhcnQsIHJhbmdlW2ldLmVuZCwKLQkJCQkgICBJT1JFU09VUkNFX01FTSwgMSk7Ci0JCX0KLQl9Ci0KLQlmb3IgKGkgPSAwOyBpIDwgcGNpX3Jvb3RfbnVtOyBpKyspIHsKLQkJaW50IHJlc19udW07Ci0JCWludCBidXNudW07Ci0KLQkJaW5mbyA9ICZwY2lfcm9vdF9pbmZvW2ldOwotCQlyZXNfbnVtID0gaW5mby0+cmVzX251bTsKLQkJYnVzbnVtID0gaW5mby0+YnVzX21pbjsKLQkJcHJpbnRrKEtFUk5fREVCVUcgImJ1czogWyUwMngsJTAyeF0gb24gbm9kZSAleCBsaW5rICV4XG4iLAotCQkgICAgICAgaW5mby0+YnVzX21pbiwgaW5mby0+YnVzX21heCwgaW5mby0+bm9kZSwgaW5mby0+bGluayk7Ci0JCWZvciAoaiA9IDA7IGogPCByZXNfbnVtOyBqKyspIHsKLQkJCXJlcyA9ICZpbmZvLT5yZXNbal07Ci0JCQlwcmludGsoS0VSTl9ERUJVRyAiYnVzOiAlMDJ4IGluZGV4ICV4ICVzOiBbJWxseCwgJWxseF1cbiIsCi0JCQkgICAgICAgYnVzbnVtLCBqLAotCQkJICAgICAgIChyZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9JTyk/ImlvIHBvcnQiOiJtbWlvIiwKLQkJCSAgICAgICByZXMtPnN0YXJ0LCByZXMtPmVuZCk7Ci0JCX0KLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotcG9zdGNvcmVfaW5pdGNhbGwoZWFybHlfZmlsbF9tcF9idXNfaW5mbyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvbGVnYWN5LmMgYi9hcmNoL3g4Ni9wY2kvbGVnYWN5LmMKaW5kZXggYTY3OTIxYy4uMTMyODc2YyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL2xlZ2FjeS5jCisrKyBiL2FyY2gveDg2L3BjaS9sZWdhY3kuYwpAQCAtNTUsNCArNTUsMTggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3Vic3lzX2luaXRjYWxsKHBjaV9sZWdhY3lfaW5pdCk7CitpbnQgX19pbml0IHBjaV9zdWJzeXNfaW5pdCh2b2lkKQoreworI2lmZGVmIENPTkZJR19BQ1BJCisJcGNpX2FjcGlfaW5pdCgpOworI2VuZGlmCisJcGNpX2xlZ2FjeV9pbml0KCk7CisJcGNpYmlvc19pcnFfaW5pdCgpOworI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwlwY2lfbnVtYV9pbml0KCk7CisjZW5kaWYKKwlwY2liaW9zX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHBjaV9zdWJzeXNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvbW1jb25maWctc2hhcmVkLmMgYi9hcmNoL3g4Ni9wY2kvbW1jb25maWctc2hhcmVkLmMKaW5kZXggMGNmZWJlYy4uMjNmYWFhOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL21tY29uZmlnLXNoYXJlZC5jCisrKyBiL2FyY2gveDg2L3BjaS9tbWNvbmZpZy1zaGFyZWQuYwpAQCAtMzc0LDcgKzM3NCw3IEBACiAKIHN0YXRpYyBpbnQgX19pbml0ZGF0YSBrbm93bl9icmlkZ2U7CiAKLXZvaWQgX19pbml0IF9fcGNpX21tY2ZnX2luaXQoaW50IGVhcmx5KQorc3RhdGljIHZvaWQgX19pbml0IF9fcGNpX21tY2ZnX2luaXQoaW50IGVhcmx5KQogewogCS8qIE1NQ09ORklHIGRpc2FibGVkICovCiAJaWYgKChwY2lfcHJvYmUgJiBQQ0lfUFJPQkVfTU1DT05GKSA9PSAwKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL21wX2J1c190b19ub2RlLmMgYi9hcmNoL3g4Ni9wY2kvbXBfYnVzX3RvX25vZGUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIyOTQzOS4uMDAwMDAwMAotLS0gYS9hcmNoL3g4Ni9wY2kvbXBfYnVzX3RvX25vZGUuYworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLSNpbmNsdWRlIDxsaW51eC9wY2kuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvdG9wb2xvZ3kuaD4KLQotI2RlZmluZSBCVVNfTlIgMjU2Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIG1wX2J1c190b19ub2RlW0JVU19OUl07Ci0KLXZvaWQgc2V0X21wX2J1c190b19ub2RlKGludCBidXNudW0sIGludCBub2RlKQotewotCWlmIChidXNudW0gPj0gMCAmJiAgYnVzbnVtIDwgQlVTX05SKQotCW1wX2J1c190b19ub2RlW2J1c251bV0gPSAodW5zaWduZWQgY2hhcikgbm9kZTsKLX0KLQotaW50IGdldF9tcF9idXNfdG9fbm9kZShpbnQgYnVzbnVtKQotewotCWludCBub2RlOwotCi0JaWYgKGJ1c251bSA8IDAgfHwgYnVzbnVtID4gKEJVU19OUiAtIDEpKQotCQlyZXR1cm4gMDsKLQlub2RlID0gbXBfYnVzX3RvX25vZGVbYnVzbnVtXTsKLQlyZXR1cm4gbm9kZTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9udW1hLmMgYi9hcmNoL3g4Ni9wY2kvbnVtYS5jCmluZGV4IGQ5YWZiYWUuLjhiNWNhMTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9udW1hLmMKKysrIGIvYXJjaC94ODYvcGNpL251bWEuYwpAQCAtNiw0NSArNiwyMSBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9ub2RlbWFzay5oPgogI2luY2x1ZGUgPG1hY2hfYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KICNpbmNsdWRlICJwY2kuaCIKIAogI2RlZmluZSBYUVVBRF9QT1JUSU9fQkFTRSAweGZlNDAwMDAwCiAjZGVmaW5lIFhRVUFEX1BPUlRJT19RVUFEIDB4NDAwMDAgIC8qIDI1NmsgcGVyIHF1YWQuICovCiAKLWludCBtcF9idXNfaWRfdG9fbm9kZVtNQVhfTVBfQlVTU0VTXTsKICNkZWZpbmUgQlVTMlFVQUQoZ2xvYmFsKSAobXBfYnVzX2lkX3RvX25vZGVbZ2xvYmFsXSkKIAotaW50IG1wX2J1c19pZF90b19sb2NhbFtNQVhfTVBfQlVTU0VTXTsKICNkZWZpbmUgQlVTMkxPQ0FMKGdsb2JhbCkgKG1wX2J1c19pZF90b19sb2NhbFtnbG9iYWxdKQogCi12b2lkIG1wY19vZW1fYnVzX2luZm8oc3RydWN0IG1wY19jb25maWdfYnVzICptLCBjaGFyICpuYW1lLAotCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbikKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uLT50cmFuc19xdWFkOwotCWludCBsb2NhbCA9IHRyYW5zbGF0aW9uLT50cmFuc19sb2NhbDsKLQotCW1wX2J1c19pZF90b19ub2RlW20tPm1wY19idXNpZF0gPSBxdWFkOwotCW1wX2J1c19pZF90b19sb2NhbFttLT5tcGNfYnVzaWRdID0gbG9jYWw7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQnVzICMlZCBpcyAlcyAobm9kZSAlZClcbiIsCi0JICAgICAgIG0tPm1wY19idXNpZCwgbmFtZSwgcXVhZCk7Ci19Ci0KLWludCBxdWFkX2xvY2FsX3RvX21wX2J1c19pZCBbTlJfQ1BVUy80XVs0XTsKICNkZWZpbmUgUVVBRExPQ0FMMkJVUyhxdWFkLGxvY2FsKSAocXVhZF9sb2NhbF90b19tcF9idXNfaWRbcXVhZF1bbG9jYWxdKQotdm9pZCBtcGNfb2VtX3BjaV9idXMoc3RydWN0IG1wY19jb25maWdfYnVzICptLAotCXN0cnVjdCBtcGNfY29uZmlnX3RyYW5zbGF0aW9uICp0cmFuc2xhdGlvbikKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uLT50cmFuc19xdWFkOwotCWludCBsb2NhbCA9IHRyYW5zbGF0aW9uLT50cmFuc19sb2NhbDsKLQotCXF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkW3F1YWRdW2xvY2FsXSA9IG0tPm1wY19idXNpZDsKLX0KIAogLyogV2hlcmUgdGhlIElPIGFyZWEgd2FzIG1hcHBlZCBvbiBtdWx0aXF1YWQsIGFsd2F5cyAwIG90aGVyd2lzZSAqLwogdm9pZCAqeHF1YWRfcG9ydGlvOwotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKIEVYUE9SVF9TWU1CT0woeHF1YWRfcG9ydGlvKTsKLSNlbmRpZgogCiAjZGVmaW5lIFhRVUFEX1BPUlRfQUREUihwb3J0LCBxdWFkKSAoeHF1YWRfcG9ydGlvICsgKFhRVUFEX1BPUlRJT19RVUFEKnF1YWQpICsgcG9ydCkKIApAQCAtMTc1LDEwICsxNTEsMTMgQEAKIH0KIERFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0lOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMXzgyNDUxTlgsIHBjaV9maXh1cF9pNDUwbngpOwogCi1zdGF0aWMgaW50IF9faW5pdCBwY2lfbnVtYV9pbml0KHZvaWQpCitpbnQgX19pbml0IHBjaV9udW1hX2luaXQodm9pZCkKIHsKIAlpbnQgcXVhZDsKIAorCWlmICghZm91bmRfbnVtYXEpCisJCXJldHVybiAwOworCiAJcmF3X3BjaV9vcHMgPSAmcGNpX2RpcmVjdF9jb25mMV9tcTsKIAogCWlmIChwY2liaW9zX3NjYW5uZWQrKykKQEAgLTE5Nyw1ICsxNzYsMyBAQAogCQl9CiAJcmV0dXJuIDA7CiB9Ci0KLXN1YnN5c19pbml0Y2FsbChwY2lfbnVtYV9pbml0KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9vbHBjLmMgYi9hcmNoL3g4Ni9wY2kvb2xwYy5jCmluZGV4IDVlNzYzNjUuLmUxMWU5ZTggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3BjaS9vbHBjLmMKKysrIGIvYXJjaC94ODYvcGNpL29scGMuYwpAQCAtMzAyLDEyICszMDIsMTMgQEAKIAkud3JpdGUgPSBwY2lfb2xwY193cml0ZSwKIH07CiAKLXZvaWQgX19pbml0IHBjaV9vbHBjX2luaXQodm9pZCkKK2ludCBfX2luaXQgcGNpX29scGNfaW5pdCh2b2lkKQogewogCWlmICghbWFjaGluZV9pc19vbHBjKCkgfHwgb2xwY19oYXNfdnNhKCkpCi0JCXJldHVybjsKKwkJcmV0dXJuIC1FTk9ERVY7CiAKIAlwcmludGsoS0VSTl9JTkZPICJQQ0k6IFVzaW5nIGNvbmZpZ3VyYXRpb24gdHlwZSBPTFBDXG4iKTsKIAlyYXdfcGNpX29wcyA9ICZwY2lfb2xwY19jb25mOwogCWlzX2x4ID0gaXNfZ2VvZGVfbHgoKTsKKwlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9wY2kuaCBiL2FyY2gveDg2L3BjaS9wY2kuaAppbmRleCBmMzk3MmIxLi5iMjI3MGE1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wY2kvcGNpLmgKKysrIGIvYXJjaC94ODYvcGNpL3BjaS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBDSV9DQU5fU0tJUF9JU0FfQUxJR04JMHg4MDAwCiAjZGVmaW5lIFBDSV9VU0VfX0NSUwkJMHgxMDAwMAogI2RlZmluZSBQQ0lfQ0hFQ0tfRU5BQkxFX0FNRF9NTUNPTkYJMHgyMDAwMAorI2RlZmluZSBQQ0lfSEFTX0lPX0VDUwkJMHg0MDAwMAogCiBleHRlcm4gdW5zaWduZWQgaW50IHBjaV9wcm9iZTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIHBpcnFfdGFibGVfYWRkcjsKQEAgLTM4LDkgKzM5LDYgQEAKIAlwY2lfZG1pX2JmLAogfTsKIAotZXh0ZXJuIHZvaWQgX19pbml0IGRtaV9jaGVja19wY2lwcm9iZSh2b2lkKTsKLWV4dGVybiB2b2lkIF9faW5pdCBkbWlfY2hlY2tfc2tpcF9pc2FfYWxpZ24odm9pZCk7Ci0KIC8qIHBjaS1pMzg2LmMgKi8KIAogZXh0ZXJuIHVuc2lnbmVkIGludCBwY2liaW9zX21heF9sYXRlbmN5OwpAQCAtOTgsMTAgKzk2LDE5IEBACiAKIGV4dGVybiBzdHJ1Y3QgcGNpX3Jhd19vcHMgcGNpX2RpcmVjdF9jb25mMTsKIAorLyogYXJjaF9pbml0Y2FsbCBsZXZlbCAqLwogZXh0ZXJuIGludCBwY2lfZGlyZWN0X3Byb2JlKHZvaWQpOwogZXh0ZXJuIHZvaWQgcGNpX2RpcmVjdF9pbml0KGludCB0eXBlKTsKIGV4dGVybiB2b2lkIHBjaV9wY2Jpb3NfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIHBjaV9vbHBjX2luaXQodm9pZCk7CitleHRlcm4gaW50IHBjaV9vbHBjX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBfX2luaXQgZG1pX2NoZWNrX3BjaXByb2JlKHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IGRtaV9jaGVja19za2lwX2lzYV9hbGlnbih2b2lkKTsKKworLyogc29tZSBjb21tb24gdXNlZCBzdWJzeXNfaW5pdGNhbGxzICovCitleHRlcm4gaW50IF9faW5pdCBwY2lfYWNwaV9pbml0KHZvaWQpOworZXh0ZXJuIGludCBfX2luaXQgcGNpYmlvc19pcnFfaW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgX19pbml0IHBjaV9udW1hX2luaXQodm9pZCk7CitleHRlcm4gaW50IF9faW5pdCBwY2liaW9zX2luaXQodm9pZCk7CiAKIC8qIHBjaS1tbWNvbmZpZy5jICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS92aXN3cy5jIGIvYXJjaC94ODYvcGNpL3Zpc3dzLmMKaW5kZXggYzJkZjRlOS4uMWE3YmVkNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvcGNpL3Zpc3dzLmMKKysrIGIvYXJjaC94ODYvcGNpL3Zpc3dzLmMKQEAgLTgsMTggKzgsMTkgQEAKICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAKLSNpbmNsdWRlICJjb2JhbHQuaCIKLSNpbmNsdWRlICJsaXRoaXVtLmgiCisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9saXRoaXVtLmg+CiAKICNpbmNsdWRlICJwY2kuaCIKIAogc3RhdGljIGludCBwY2lfdmlzd3NfZW5hYmxlX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IHJldHVybiAwOyB9CiBzdGF0aWMgdm9pZCBwY2lfdmlzd3NfZGlzYWJsZV9pcnEoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9CiAKLWludCAoKnBjaWJpb3NfZW5hYmxlX2lycSkoc3RydWN0IHBjaV9kZXYgKmRldikgPSAmcGNpX3Zpc3dzX2VuYWJsZV9pcnE7Ci12b2lkICgqcGNpYmlvc19kaXNhYmxlX2lycSkoc3RydWN0IHBjaV9kZXYgKmRldikgPSAmcGNpX3Zpc3dzX2Rpc2FibGVfaXJxOworLyogaW50ICgqcGNpYmlvc19lbmFibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZW5hYmxlX2lycTsgKi8KKy8qIHZvaWQgKCpwY2liaW9zX2Rpc2FibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KSA9ICZwY2lfdmlzd3NfZGlzYWJsZV9pcnE7ICovCiAKLXZvaWQgX19pbml0IHBjaWJpb3NfcGVuYWxpemVfaXNhX2lycShpbnQgaXJxLCBpbnQgYWN0aXZlKSB7fQorLyogdm9pZCBfX2luaXQgcGNpYmlvc19wZW5hbGl6ZV9pc2FfaXJxKGludCBpcnEsIGludCBhY3RpdmUpIHt9ICovCiAKIAogdW5zaWduZWQgaW50IHBjaV9idXMwLCBwY2lfYnVzMTsKQEAgLTg1LDcgKzg2LDcgQEAKIAlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LCBQQ0lfSU5URVJSVVBUX0xJTkUsIGlycSk7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IHBjaWJpb3NfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgcGNpX3Zpc3dzX2luaXQodm9pZCkKIHsKIAkvKiBUaGUgVklTV1Mgc3VwcG9ydHMgY29uZmlndXJhdGlvbiBhY2Nlc3MgdHlwZSAxIG9ubHkgKi8KIAlwY2lfcHJvYmUgPSAocGNpX3Byb2JlIHwgUENJX1BST0JFX0NPTkYxKSAmCkBAIC0xMDUsNCArMTA2LDE3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN1YnN5c19pbml0Y2FsbChwY2liaW9zX2luaXQpOworc3RhdGljIF9faW5pdCBpbnQgcGNpX3N1YnN5c19pbml0KHZvaWQpCit7CisJaWYgKCFpc192aXN3c19ib3goKSkKKwkJcmV0dXJuIC0xOworCisJcGNpYmlvc19lbmFibGVfaXJxID0gJnBjaV92aXN3c19lbmFibGVfaXJxOworCXBjaWJpb3NfZGlzYWJsZV9pcnEgPSAmcGNpX3Zpc3dzX2Rpc2FibGVfaXJxOworCisJcGNpX3Zpc3dzX2luaXQoKTsKKwlwY2liaW9zX2luaXQoKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKHBjaV9zdWJzeXNfaW5pdCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wb3dlci9oaWJlcm5hdGVfNjQuYyBiL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCmluZGV4IGI1NDIzNTUuLjZkZDAwMGQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCisrKyBiL2FyY2gveDg2L3Bvd2VyL2hpYmVybmF0ZV82NC5jCkBAIC04Myw3ICs4Myw3IEBACiAKIAkvKiBTZXQgdXAgdGhlIGRpcmVjdCBtYXBwaW5nIGZyb20gc2NyYXRjaCAqLwogCXN0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpcGZuX3RvX2thZGRyKDApOwotCWVuZCA9ICh1bnNpZ25lZCBsb25nKXBmbl90b19rYWRkcihlbmRfcGZuKTsKKwllbmQgPSAodW5zaWduZWQgbG9uZylwZm5fdG9fa2FkZHIobWF4X3Bmbik7CiAKIAlmb3IgKDsgc3RhcnQgPCBlbmQ7IHN0YXJ0ID0gbmV4dCkgewogCQlwdWRfdCAqcHVkID0gKHB1ZF90ICopZ2V0X3NhZmVfcGFnZShHRlBfQVRPTUlDKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Zkc28vdmNsb2NrX2dldHRpbWUuYyBiL2FyY2gveDg2L3Zkc28vdmNsb2NrX2dldHRpbWUuYwppbmRleCAyMzQ3NmMyLi4xZWYwZjkwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3ZjbG9ja19nZXR0aW1lLmMKKysrIGIvYXJjaC94ODYvdmRzby92Y2xvY2tfZ2V0dGltZS5jCkBAIC0yMyw3ICsyMyw3IEBACiAKICNkZWZpbmUgZ3RvZCB2ZHNvX3ZzeXNjYWxsX2d0b2RfZGF0YQogCi1zdGF0aWMgbG9uZyB2ZHNvX2ZhbGxiYWNrX2dldHRpbWUobG9uZyBjbG9jaywgc3RydWN0IHRpbWVzcGVjICp0cykKK25vdHJhY2Ugc3RhdGljIGxvbmcgdmRzb19mYWxsYmFja19nZXR0aW1lKGxvbmcgY2xvY2ssIHN0cnVjdCB0aW1lc3BlYyAqdHMpCiB7CiAJbG9uZyByZXQ7CiAJYXNtKCJzeXNjYWxsIiA6ICI9YSIgKHJldCkgOgpAQCAtMzEsNyArMzEsNyBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgbG9uZyB2Z2V0bnModm9pZCkKK25vdHJhY2Ugc3RhdGljIGlubGluZSBsb25nIHZnZXRucyh2b2lkKQogewogCWxvbmcgdjsKIAljeWNsZXNfdCAoKnZyZWFkKSh2b2lkKTsKQEAgLTQwLDcgKzQwLDcgQEAKIAlyZXR1cm4gKHYgKiBndG9kLT5jbG9jay5tdWx0KSA+PiBndG9kLT5jbG9jay5zaGlmdDsKIH0KIAotc3RhdGljIG5vaW5saW5lIGludCBkb19yZWFsdGltZShzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBzdGF0aWMgbm9pbmxpbmUgaW50IGRvX3JlYWx0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMpCiB7CiAJdW5zaWduZWQgbG9uZyBzZXEsIG5zOwogCWRvIHsKQEAgLTU0LDcgKzU0LDggQEAKIH0KIAogLyogQ29weSBvZiB0aGUgdmVyc2lvbiBpbiBrZXJuZWwvdGltZS5jIHdoaWNoIHdlIGNhbm5vdCBkaXJlY3RseSBhY2Nlc3MgKi8KLXN0YXRpYyB2b2lkIHZzZXRfbm9ybWFsaXplZF90aW1lc3BlYyhzdHJ1Y3QgdGltZXNwZWMgKnRzLCBsb25nIHNlYywgbG9uZyBuc2VjKQorbm90cmFjZSBzdGF0aWMgdm9pZAordnNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHN0cnVjdCB0aW1lc3BlYyAqdHMsIGxvbmcgc2VjLCBsb25nIG5zZWMpCiB7CiAJd2hpbGUgKG5zZWMgPj0gTlNFQ19QRVJfU0VDKSB7CiAJCW5zZWMgLT0gTlNFQ19QRVJfU0VDOwpAQCAtNjgsNyArNjksNyBAQAogCXRzLT50dl9uc2VjID0gbnNlYzsKIH0KIAotc3RhdGljIG5vaW5saW5lIGludCBkb19tb25vdG9uaWMoc3RydWN0IHRpbWVzcGVjICp0cykKK25vdHJhY2Ugc3RhdGljIG5vaW5saW5lIGludCBkb19tb25vdG9uaWMoc3RydWN0IHRpbWVzcGVjICp0cykKIHsKIAl1bnNpZ25lZCBsb25nIHNlcSwgbnMsIHNlY3M7CiAJZG8gewpAQCAtODIsNyArODMsNyBAQAogCXJldHVybiAwOwogfQogCi1pbnQgX192ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQorbm90cmFjZSBpbnQgX192ZHNvX2Nsb2NrX2dldHRpbWUoY2xvY2tpZF90IGNsb2NrLCBzdHJ1Y3QgdGltZXNwZWMgKnRzKQogewogCWlmIChsaWtlbHkoZ3RvZC0+c3lzY3RsX2VuYWJsZWQgJiYgZ3RvZC0+Y2xvY2sudnJlYWQpKQogCQlzd2l0Y2ggKGNsb2NrKSB7CkBAIC05Niw3ICs5Nyw3IEBACiBpbnQgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QsIHN0cnVjdCB0aW1lc3BlYyAqKQogCV9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJfX3Zkc29fY2xvY2tfZ2V0dGltZSIpKSk7CiAKLWludCBfX3Zkc29fZ2V0dGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0diwgc3RydWN0IHRpbWV6b25lICp0eikKK25vdHJhY2UgaW50IF9fdmRzb19nZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2LCBzdHJ1Y3QgdGltZXpvbmUgKnR6KQogewogCWxvbmcgcmV0OwogCWlmIChsaWtlbHkoZ3RvZC0+c3lzY3RsX2VuYWJsZWQgJiYgZ3RvZC0+Y2xvY2sudnJlYWQpKSB7CkBAIC0xMDYsOSArMTA3LDkgQEAKIAkJZG9fcmVhbHRpbWUoKHN0cnVjdCB0aW1lc3BlYyAqKXR2KTsKIAkJdHYtPnR2X3VzZWMgLz0gMTAwMDsKIAkJaWYgKHVubGlrZWx5KHR6ICE9IE5VTEwpKSB7Ci0JCQkvKiBUaGlzIHJlbGllcyBvbiBnY2MgaW5saW5pbmcgdGhlIG1lbWNweS4gV2UnbGwgbm90aWNlCi0JCQkgICBpZiBpdCBldmVyIGZhaWxzIHRvIGRvIHNvLiAqLwotCQkJbWVtY3B5KHR6LCAmZ3RvZC0+c3lzX3R6LCBzaXplb2Yoc3RydWN0IHRpbWV6b25lKSk7CisJCQkvKiBBdm9pZCBtZW1jcHkuIFNvbWUgb2xkIGNvbXBpbGVycyBmYWlsIHRvIGlubGluZSBpdCAqLworCQkJdHotPnR6X21pbnV0ZXN3ZXN0ID0gZ3RvZC0+c3lzX3R6LnR6X21pbnV0ZXN3ZXN0OworCQkJdHotPnR6X2RzdHRpbWUgPSBndG9kLT5zeXNfdHoudHpfZHN0dGltZTsKIAkJfQogCQlyZXR1cm4gMDsKIAl9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jIGIvYXJjaC94ODYvdmRzby92ZHNvMzItc2V0dXAuYwppbmRleCBjZjA1OGZlLi4wYmNlNTQyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3Zkc28zMi1zZXR1cC5jCisrKyBiL2FyY2gveDg2L3Zkc28vdmRzbzMyLXNldHVwLmMKQEAgLTIwMywyMCArMjAzLDExIEBACiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CiAKLXN0YXRpYyBpbnQgdXNlX3N5c2VudGVyIF9fcmVhZF9tb3N0bHkgPSAtMTsKLQotI2RlZmluZQl2ZHNvMzJfc3lzZW50ZXIoKQkodXNlX3N5c2VudGVyID4gMCkKKyNkZWZpbmUJdmRzbzMyX3N5c2VudGVyKCkJKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9TWVNFTlRFUjMyKSkKIAogLyogTWF5IG5vdCBiZSBfX2luaXQ6IGNhbGxlZCBkdXJpbmcgcmVzdW1lICovCiB2b2lkIHN5c2NhbGwzMl9jcHVfaW5pdCh2b2lkKQogewotCWlmICh1c2Vfc3lzZW50ZXIgPCAwKSB7Ci0JCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCkKLQkJCXVzZV9zeXNlbnRlciA9IDE7Ci0JCWlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9DRU5UQVVSKQotCQkJdXNlX3N5c2VudGVyID0gMTsKLQl9Ci0KIAkvKiBMb2FkIHRoZXNlIGFsd2F5cyBpbiBjYXNlIHNvbWUgZnV0dXJlIEFNRCBDUFUgc3VwcG9ydHMKIAkgICBTWVNFTlRFUiBmcm9tIGNvbXBhdCBtb2RlIHRvby4gKi8KIAljaGVja2luZ193cm1zcmwoTVNSX0lBMzJfU1lTRU5URVJfQ1MsICh1NjQpX19LRVJORUxfQ1MpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92Z2V0Y3B1LmMgYi9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYwppbmRleCBjODA5N2YxLi45ZmJjNmIyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYworKysgYi9hcmNoL3g4Ni92ZHNvL3ZnZXRjcHUuYwpAQCAtMTMsNyArMTMsOCBAQAogI2luY2x1ZGUgPGFzbS92Z3RvZC5oPgogI2luY2x1ZGUgInZleHRlcm4uaCIKIAotbG9uZyBfX3Zkc29fZ2V0Y3B1KHVuc2lnbmVkICpjcHUsIHVuc2lnbmVkICpub2RlLCBzdHJ1Y3QgZ2V0Y3B1X2NhY2hlICp1bnVzZWQpCitub3RyYWNlIGxvbmcKK19fdmRzb19nZXRjcHUodW5zaWduZWQgKmNwdSwgdW5zaWduZWQgKm5vZGUsIHN0cnVjdCBnZXRjcHVfY2FjaGUgKnVudXNlZCkKIHsKIAl1bnNpZ25lZCBpbnQgcDsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92bWEuYyBiL2FyY2gveDg2L3Zkc28vdm1hLmMKaW5kZXggM2ZkZDUxNC4uMTlhNmNmYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdmRzby92bWEuYworKysgYi9hcmNoL3g4Ni92ZHNvL3ZtYS5jCkBAIC0xNiw3ICsxNiw3IEBACiAjaW5jbHVkZSAidmV4dGVybi5oIgkJLyogSnVzdCBmb3IgVk1BR0lDLiAgKi8KICN1bmRlZiBWRVhURVJOCiAKLWludCB2ZHNvX2VuYWJsZWQgPSAxOwordW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgdmRzb19lbmFibGVkID0gMTsKIAogZXh0ZXJuIGNoYXIgdmRzb19zdGFydFtdLCB2ZHNvX2VuZFtdOwogZXh0ZXJuIHVuc2lnbmVkIHNob3J0IHZkc29fc3luY19jcHVpZDsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9LY29uZmlnIGIvYXJjaC94ODYveGVuL0tjb25maWcKaW5kZXggMmU2NDFiZS4uYzJjYzk5NSAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL0tjb25maWcKKysrIGIvYXJjaC94ODYveGVuL0tjb25maWcKQEAgLTUsOSArNSwyMCBAQAogY29uZmlnIFhFTgogCWJvb2wgIlhlbiBndWVzdCBzdXBwb3J0IgogCXNlbGVjdCBQQVJBVklSVAorCXNlbGVjdCBQQVJBVklSVF9DTE9DSwogCWRlcGVuZHMgb24gWDg2XzMyCi0JZGVwZW5kcyBvbiBYODZfQ01QWENIRyAmJiBYODZfVFNDICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQorCWRlcGVuZHMgb24gWDg2X0NNUFhDSEcgJiYgWDg2X1RTQyAmJiBYODZfUEFFICYmICEoWDg2X1ZJU1dTIHx8IFg4Nl9WT1lBR0VSKQogCWhlbHAKIAkgIFRoaXMgaXMgdGhlIExpbnV4IFhlbiBwb3J0LiAgRW5hYmxpbmcgdGhpcyB3aWxsIGFsbG93IHRoZQogCSAga2VybmVsIHRvIGJvb3QgaW4gYSBwYXJhdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgdW5kZXIgdGhlCiAJICBYZW4gaHlwZXJ2aXNvci4KKworY29uZmlnIFhFTl9NQVhfRE9NQUlOX01FTU9SWQorICAgICAgIGludCAiTWF4aW11bSBhbGxvd2VkIHNpemUgb2YgYSBkb21haW4gaW4gZ2lnYWJ5dGVzIgorICAgICAgIGRlZmF1bHQgOAorICAgICAgIGRlcGVuZHMgb24gWEVOCisgICAgICAgaGVscAorICAgICAgICAgVGhlIHBzZXVkby1waHlzaWNhbCB0byBtYWNoaW5lIGFkZHJlc3MgYXJyYXkgaXMgc2l6ZWQKKyAgICAgICAgIGFjY29yZGluZyB0byB0aGUgbWF4aW11bSBwb3NzaWJsZSBtZW1vcnkgc2l6ZSBvZiBhIFhlbgorICAgICAgICAgZG9tYWluLiAgVGhpcyBhcnJheSB1c2VzIDEgcGFnZSBwZXIgZ2lnYWJ5dGUsIHNvIHRoZXJlJ3Mgbm8KKyAgICAgICAgIG5lZWQgdG8gYmUgdG9vIHN0aW5neSBoZXJlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9NYWtlZmlsZSBiL2FyY2gveDg2L3hlbi9NYWtlZmlsZQppbmRleCAzZDhkZjk4Li4yYmEyZDE2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vTWFrZWZpbGUKKysrIGIvYXJjaC94ODYveGVuL01ha2VmaWxlCkBAIC0xLDQgKzEsNCBAQAogb2JqLXkJCTo9IGVubGlnaHRlbi5vIHNldHVwLm8gbXVsdGljYWxscy5vIG1tdS5vIFwKLQkJCXRpbWUubyBtYW5hZ2UubyB4ZW4tYXNtLm8gZ3JhbnQtdGFibGUubworCQkJdGltZS5vIHhlbi1hc20ubyBncmFudC10YWJsZS5vIHN1c3BlbmQubwogCiBvYmotJChDT05GSUdfU01QKQkrPSBzbXAubwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jIGIvYXJjaC94ODYveGVuL2VubGlnaHRlbi5jCmluZGV4IGM4YTU2ZTQuLmRjZDRlNTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYworKysgYi9hcmNoL3g4Ni94ZW4vZW5saWdodGVuLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS90bGJmbHVzaC5oPgogI2luY2x1ZGUgPGFzbS9yZWJvb3QuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgogCiAjaW5jbHVkZSAieGVuLW9wcy5oIgogI2luY2x1ZGUgIm1tdS5oIgpAQCAtNzUsMTMgKzc2LDEzIEBACiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CiBFWFBPUlRfU1lNQk9MX0dQTCh4ZW5fc3RhcnRfaW5mbyk7CiAKLXN0YXRpYyAvKiBfX2luaXRkYXRhICovIHN0cnVjdCBzaGFyZWRfaW5mbyBkdW1teV9zaGFyZWRfaW5mbzsKK3N0cnVjdCBzaGFyZWRfaW5mbyB4ZW5fZHVtbXlfc2hhcmVkX2luZm87CiAKIC8qCiAgKiBQb2ludCBhdCBzb21lIGVtcHR5IG1lbW9yeSB0byBzdGFydCB3aXRoLiBXZSBtYXAgdGhlIHJlYWwgc2hhcmVkX2luZm8KICAqIHBhZ2UgYXMgc29vbiBhcyBmaXhtYXAgaXMgdXAgYW5kIHJ1bm5pbmcuCiAgKi8KLXN0cnVjdCBzaGFyZWRfaW5mbyAqSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9ICh2b2lkICopJmR1bW15X3NoYXJlZF9pbmZvOworc3RydWN0IHNoYXJlZF9pbmZvICpIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gKHZvaWQgKikmeGVuX2R1bW15X3NoYXJlZF9pbmZvOwogCiAvKgogICogRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB2Y3B1IGluZm8gcGxhY2VtZW50IGlzIGF2YWlsYWJsZSBvbiBhbGwKQEAgLTk4LDEzICs5OSwxMyBAQAogICovCiBzdGF0aWMgaW50IGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCA9IDE7CiAKLXN0YXRpYyB2b2lkIF9faW5pdCB4ZW5fdmNwdV9zZXR1cChpbnQgY3B1KQorc3RhdGljIHZvaWQgeGVuX3ZjcHVfc2V0dXAoaW50IGNwdSkKIHsKIAlzdHJ1Y3QgdmNwdV9yZWdpc3Rlcl92Y3B1X2luZm8gaW5mbzsKIAlpbnQgZXJyOwogCXN0cnVjdCB2Y3B1X2luZm8gKnZjcHVwOwogCi0JQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJmR1bW15X3NoYXJlZF9pbmZvKTsKKwlCVUdfT04oSFlQRVJWSVNPUl9zaGFyZWRfaW5mbyA9PSAmeGVuX2R1bW15X3NoYXJlZF9pbmZvKTsKIAlwZXJfY3B1KHhlbl92Y3B1LCBjcHUpID0gJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1tjcHVdOwogCiAJaWYgKCFoYXZlX3ZjcHVfaW5mb19wbGFjZW1lbnQpCkBAIC0xMzYsMTEgKzEzNyw0MSBAQAogCX0KIH0KIAorLyoKKyAqIE9uIHJlc3RvcmUsIHNldCB0aGUgdmNwdSBwbGFjZW1lbnQgdXAgYWdhaW4uCisgKiBJZiBpdCBmYWlscywgdGhlbiB3ZSdyZSBpbiBhIGJhZCBzdGF0ZSwgc2luY2UKKyAqIHdlIGNhbid0IGJhY2sgb3V0IGZyb20gdXNpbmcgaXQuLi4KKyAqLwordm9pZCB4ZW5fdmNwdV9yZXN0b3JlKHZvaWQpCit7CisJaWYgKGhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCkgeworCQlpbnQgY3B1OworCisJCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCQlib29sIG90aGVyX2NwdSA9IChjcHUgIT0gc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfZG93biwgY3B1LCBOVUxMKSkKKwkJCQlCVUcoKTsKKworCQkJeGVuX3ZjcHVfc2V0dXAoY3B1KTsKKworCQkJaWYgKG90aGVyX2NwdSAmJgorCQkJICAgIEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfdXAsIGNwdSwgTlVMTCkpCisJCQkJQlVHKCk7CisJCX0KKworCQlCVUdfT04oIWhhdmVfdmNwdV9pbmZvX3BsYWNlbWVudCk7CisJfQorfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgeGVuX2Jhbm5lcih2b2lkKQogewogCXByaW50ayhLRVJOX0lORk8gIkJvb3RpbmcgcGFyYXZpcnR1YWxpemVkIGtlcm5lbCBvbiAlc1xuIiwKIAkgICAgICAgcHZfaW5mby5uYW1lKTsKLQlwcmludGsoS0VSTl9JTkZPICJIeXBlcnZpc29yIHNpZ25hdHVyZTogJXNcbiIsIHhlbl9zdGFydF9pbmZvLT5tYWdpYyk7CisJcHJpbnRrKEtFUk5fSU5GTyAiSHlwZXJ2aXNvciBzaWduYXR1cmU6ICVzJXNcbiIsCisJICAgICAgIHhlbl9zdGFydF9pbmZvLT5tYWdpYywKKwkgICAgICAgeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSA/ICIgKHByZXNlcnZlLUFEKSIgOiAiIik7CiB9CiAKIHN0YXRpYyB2b2lkIHhlbl9jcHVpZCh1bnNpZ25lZCBpbnQgKmF4LCB1bnNpZ25lZCBpbnQgKmJ4LApAQCAtMjM1LDEzICsyNjYsMTMgQEAKIHsKIAlzdHJ1Y3QgdmNwdV9pbmZvICp2Y3B1OwogCi0JLyogVGhlcmUncyBhIG9uZSBpbnN0cnVjdGlvbiBwcmVlbXB0IHdpbmRvdyBoZXJlLiAgV2UgbmVlZCB0bwotCSAgIG1ha2Ugc3VyZSB3ZSdyZSBkb24ndCBzd2l0Y2ggQ1BVcyBiZXR3ZWVuIGdldHRpbmcgdGhlIHZjcHUKLQkgICBwb2ludGVyIGFuZCB1cGRhdGluZyB0aGUgbWFzay4gKi8KLQlwcmVlbXB0X2Rpc2FibGUoKTsKKwkvKiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGJlaW5nIHByZWVtcHRlZCBoZXJlLCBzaW5jZQorCSAgIGVpdGhlciBhKSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCwgc28gbm8gcHJlZW1wdGlvbiwgb3IgYikKKwkgICB0aGUgY2FsbGVyIGlzIGNvbmZ1c2VkIGFuZCBpcyB0cnlpbmcgdG8gcmUtZW5hYmxlIGludGVycnVwdHMKKwkgICBvbiBhbiBpbmRldGVybWluYXRlIHByb2Nlc3Nvci4gKi8KKwogCXZjcHUgPSB4ODZfcmVhZF9wZXJjcHUoeGVuX3ZjcHUpOwogCXZjcHUtPmV2dGNobl91cGNhbGxfbWFzayA9IDA7Ci0JcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOwogCiAJLyogRG9lc24ndCBtYXR0ZXIgaWYgd2UgZ2V0IHByZWVtcHRlZCBoZXJlLCBiZWNhdXNlIGFueQogCSAgIHBlbmRpbmcgZXZlbnQgd2lsbCBnZXQgZGVhbHQgd2l0aCBhbnl3YXkuICovCkBAIC0yNTQsNyArMjg1LDcgQEAKIHN0YXRpYyB2b2lkIHhlbl9zYWZlX2hhbHQodm9pZCkKIHsKIAkvKiBCbG9ja2luZyBpbmNsdWRlcyBhbiBpbXBsaWNpdCBsb2NhbF9pcnFfZW5hYmxlKCkuICovCi0JaWYgKEhZUEVSVklTT1Jfc2NoZWRfb3AoU0NIRURPUF9ibG9jaywgMCkgIT0gMCkKKwlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX2Jsb2NrLCBOVUxMKSAhPSAwKQogCQlCVUcoKTsKIH0KIApAQCAtNjA3LDYgKzYzOCwzMCBAQAogCXhlbl9tY19pc3N1ZShQQVJBVklSVF9MQVpZX01NVSk7CiB9CiAKK3N0YXRpYyB2b2lkIHhlbl9jbHRzKHZvaWQpCit7CisJc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7CisKKwltY3MgPSB4ZW5fbWNfZW50cnkoMCk7CisKKwlNVUxUSV9mcHVfdGFza3N3aXRjaChtY3MubWMsIDApOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfQ1BVKTsKK30KKworc3RhdGljIHZvaWQgeGVuX3dyaXRlX2NyMCh1bnNpZ25lZCBsb25nIGNyMCkKK3sKKwlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIG1jczsKKworCS8qIE9ubHkgcGF5IGF0dGVudGlvbiB0byBjcjAuVFM7IGV2ZXJ5dGhpbmcgZWxzZSBpcworCSAgIGlnbm9yZWQuICovCisJbWNzID0geGVuX21jX2VudHJ5KDApOworCisJTVVMVElfZnB1X3Rhc2tzd2l0Y2gobWNzLm1jLCAoY3IwICYgWDg2X0NSMF9UUykgIT0gMCk7CisKKwl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9DUFUpOworfQorCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3IyKHVuc2lnbmVkIGxvbmcgY3IyKQogewogCXg4Nl9yZWFkX3BlcmNwdSh4ZW5fdmNwdSktPmFyY2guY3IyID0gY3IyOwpAQCAtNjI0LDggKzY3OSwxMCBAQAogCiBzdGF0aWMgdm9pZCB4ZW5fd3JpdGVfY3I0KHVuc2lnbmVkIGxvbmcgY3I0KQogewotCS8qIEp1c3QgaWdub3JlIGNyNCBjaGFuZ2VzOyBYZW4gZG9lc24ndCBhbGxvdyB1cyB0byBkbwotCSAgIGFueXRoaW5nIGFueXdheS4gKi8KKwljcjQgJj0gflg4Nl9DUjRfUEdFOworCWNyNCAmPSB+WDg2X0NSNF9QU0U7CisKKwluYXRpdmVfd3JpdGVfY3I0KGNyNCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHhlbl9yZWFkX2NyMyh2b2lkKQpAQCAtNzg1LDM4ICs4NDIsMzUgQEAKIHN0YXRpYyBfX2luaXQgdm9pZCB4ZW5fcGFnZXRhYmxlX3NldHVwX3N0YXJ0KHBnZF90ICpiYXNlKQogewogCXBnZF90ICp4ZW5fcGdkID0gKHBnZF90ICopeGVuX3N0YXJ0X2luZm8tPnB0X2Jhc2U7CisJaW50IGk7CiAKIAkvKiBzcGVjaWFsIHNldF9wdGUgZm9yIHBhZ2V0YWJsZSBpbml0aWFsaXphdGlvbiAqLwogCXB2X21tdV9vcHMuc2V0X3B0ZSA9IHhlbl9zZXRfcHRlX2luaXQ7CiAKIAlpbml0X21tLnBnZCA9IGJhc2U7CiAJLyoKLQkgKiBjb3B5IHRvcC1sZXZlbCBvZiBYZW4tc3VwcGxpZWQgcGFnZXRhYmxlIGludG8gcGxhY2UuCSBGb3IKLQkgKiAhUEFFIHdlIGNhbiB1c2UgdGhpcyBhcy1pcywgYnV0IGZvciBQQUUgaXQgaXMgYSBzdGFuZC1pbgotCSAqIHdoaWxlIHdlIGNvcHkgdGhlIHBtZCBwYWdlcy4KKwkgKiBjb3B5IHRvcC1sZXZlbCBvZiBYZW4tc3VwcGxpZWQgcGFnZXRhYmxlIGludG8gcGxhY2UuICBUaGlzCisJICogaXMgYSBzdGFuZC1pbiB3aGlsZSB3ZSBjb3B5IHRoZSBwbWQgcGFnZXMuCiAJICovCiAJbWVtY3B5KGJhc2UsIHhlbl9wZ2QsIFBUUlNfUEVSX1BHRCAqIHNpemVvZihwZ2RfdCkpOwogCi0JaWYgKFBUUlNfUEVSX1BNRCA+IDEpIHsKLQkJaW50IGk7Ci0JCS8qCi0JCSAqIEZvciBQQUUsIG5lZWQgdG8gYWxsb2NhdGUgbmV3IHBtZHMsIHJhdGhlciB0aGFuCi0JCSAqIHNoYXJlIFhlbidzLCBzaW5jZSBYZW4gZG9lc24ndCBsaWtlIHBtZCdzIGJlaW5nCi0JCSAqIHNoYXJlZCBiZXR3ZWVuIGFkZHJlc3Mgc3BhY2VzLgotCQkgKi8KLQkJZm9yIChpID0gMDsgaSA8IFBUUlNfUEVSX1BHRDsgaSsrKSB7Ci0JCQlpZiAocGdkX3ZhbF9tYSh4ZW5fcGdkW2ldKSAmIF9QQUdFX1BSRVNFTlQpIHsKLQkJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKKwkvKgorCSAqIEZvciBQQUUsIG5lZWQgdG8gYWxsb2NhdGUgbmV3IHBtZHMsIHJhdGhlciB0aGFuCisJICogc2hhcmUgWGVuJ3MsIHNpbmNlIFhlbiBkb2Vzbid0IGxpa2UgcG1kJ3MgYmVpbmcKKwkgKiBzaGFyZWQgYmV0d2VlbiBhZGRyZXNzIHNwYWNlcy4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUFRSU19QRVJfUEdEOyBpKyspIHsKKwkJaWYgKHBnZF92YWxfbWEoeGVuX3BnZFtpXSkgJiBfUEFHRV9QUkVTRU5UKSB7CisJCQlwbWRfdCAqcG1kID0gKHBtZF90ICopYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKIAotCQkJCW1lbWNweShwbWQsICh2b2lkICopcGdkX3BhZ2VfdmFkZHIoeGVuX3BnZFtpXSksCi0JCQkJICAgICAgIFBBR0VfU0laRSk7CisJCQltZW1jcHkocG1kLCAodm9pZCAqKXBnZF9wYWdlX3ZhZGRyKHhlbl9wZ2RbaV0pLAorCQkJICAgICAgIFBBR0VfU0laRSk7CiAKLQkJCQltYWtlX2xvd21lbV9wYWdlX3JlYWRvbmx5KHBtZCk7CisJCQltYWtlX2xvd21lbV9wYWdlX3JlYWRvbmx5KHBtZCk7CiAKLQkJCQlzZXRfcGdkKCZiYXNlW2ldLCBfX3BnZCgxICsgX19wYShwbWQpKSk7Ci0JCQl9IGVsc2UKLQkJCQlwZ2RfY2xlYXIoJmJhc2VbaV0pOwotCQl9CisJCQlzZXRfcGdkKCZiYXNlW2ldLCBfX3BnZCgxICsgX19wYShwbWQpKSk7CisJCX0gZWxzZQorCQkJcGdkX2NsZWFyKCZiYXNlW2ldKTsKIAl9CiAKIAkvKiBtYWtlIHN1cmUgemVyb19wYWdlIGlzIG1hcHBlZCBSTyBzbyB3ZSBjYW4gdXNlIGl0IGluIHBhZ2V0YWJsZXMgKi8KQEAgLTgzNCw3ICs4ODgsNyBAQAogCQkJICBQRk5fRE9XTihfX3BhKHhlbl9zdGFydF9pbmZvLT5wdF9iYXNlKSkpOwogfQogCi1zdGF0aWMgX19pbml0IHZvaWQgc2V0dXBfc2hhcmVkX2luZm8odm9pZCkKK3ZvaWQgeGVuX3NldHVwX3NoYXJlZF9pbmZvKHZvaWQpCiB7CiAJaWYgKCF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkgewogCQl1bnNpZ25lZCBsb25nIGFkZHIgPSBmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCk7CkBAIC04NTcsNiArOTExLDggQEAKIAkvKiBJbiBVUCB0aGlzIGlzIGFzIGdvb2QgYSBwbGFjZSBhcyBhbnkgdG8gc2V0IHVwIHNoYXJlZCBpbmZvICovCiAJeGVuX3NldHVwX3ZjcHVfaW5mb19wbGFjZW1lbnQoKTsKICNlbmRpZgorCisJeGVuX3NldHVwX21mbl9saXN0X2xpc3QoKTsKIH0KIAogc3RhdGljIF9faW5pdCB2b2lkIHhlbl9wYWdldGFibGVfc2V0dXBfZG9uZShwZ2RfdCAqYmFzZSkKQEAgLTg2OSwyNSArOTI1LDIzIEBACiAJcHZfbW11X29wcy5yZWxlYXNlX3BtZCA9IHhlbl9yZWxlYXNlX3BtZDsKIAlwdl9tbXVfb3BzLnNldF9wdGUgPSB4ZW5fc2V0X3B0ZTsKIAotCXNldHVwX3NoYXJlZF9pbmZvKCk7CisJeGVuX3NldHVwX3NoYXJlZF9pbmZvKCk7CiAKIAkvKiBBY3R1YWxseSBwaW4gdGhlIHBhZ2V0YWJsZSBkb3duLCBidXQgd2UgY2FuJ3Qgc2V0IFBHX3Bpbm5lZAogCSAgIHlldCBiZWNhdXNlIHRoZSBwYWdlIHN0cnVjdHVyZXMgZG9uJ3QgZXhpc3QgeWV0LiAqLwotCXsKLQkJdW5zaWduZWQgbGV2ZWw7CisJcGluX3BhZ2V0YWJsZV9wZm4oTU1VRVhUX1BJTl9MM19UQUJMRSwgUEZOX0RPV04oX19wYShiYXNlKSkpOworfQogCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLQkJbGV2ZWwgPSBNTVVFWFRfUElOX0wzX1RBQkxFOwotI2Vsc2UKLQkJbGV2ZWwgPSBNTVVFWFRfUElOX0wyX1RBQkxFOwotI2VuZGlmCitzdGF0aWMgX19pbml0IHZvaWQgeGVuX3Bvc3RfYWxsb2NhdG9yX2luaXQodm9pZCkKK3sKKwlwdl9tbXVfb3BzLnNldF9wbWQgPSB4ZW5fc2V0X3BtZDsKKwlwdl9tbXVfb3BzLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZDsKIAotCQlwaW5fcGFnZXRhYmxlX3BmbihsZXZlbCwgUEZOX0RPV04oX19wYShiYXNlKSkpOwotCX0KKwl4ZW5fbWFya19pbml0X21tX3Bpbm5lZCgpOwogfQogCiAvKiBUaGlzIGlzIGNhbGxlZCBvbmNlIHdlIGhhdmUgdGhlIGNwdV9wb3NzaWJsZV9tYXAgKi8KLXZvaWQgX19pbml0IHhlbl9zZXR1cF92Y3B1X2luZm9fcGxhY2VtZW50KHZvaWQpCit2b2lkIHhlbl9zZXR1cF92Y3B1X2luZm9fcGxhY2VtZW50KHZvaWQpCiB7CiAJaW50IGNwdTsKIApAQCAtOTYwLDYgKzEwMTQsMzMgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCB4ZW5fc2V0X2ZpeG1hcCh1bnNpZ25lZCBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgcHJvdCkKK3sKKwlwdGVfdCBwdGU7CisKKwlwaHlzID4+PSBQQUdFX1NISUZUOworCisJc3dpdGNoIChpZHgpIHsKKwljYXNlIEZJWF9CVE1BUF9FTkQgLi4uIEZJWF9CVE1BUF9CRUdJTjoKKyNpZmRlZiBDT05GSUdfWDg2X0YwMEZfQlVHCisJY2FzZSBGSVhfRjAwRl9JRFQ6CisjZW5kaWYKKwljYXNlIEZJWF9XUF9URVNUOgorCWNhc2UgRklYX1ZEU086CisjaWZkZWYgQ09ORklHX1g4Nl9MT0NBTF9BUElDCisJY2FzZSBGSVhfQVBJQ19CQVNFOgkvKiBtYXBzIGR1bW15IGxvY2FsIEFQSUMgKi8KKyNlbmRpZgorCQlwdGUgPSBwZm5fcHRlKHBoeXMsIHByb3QpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXB0ZSA9IG1mbl9wdGUocGh5cywgcHJvdCk7CisJCWJyZWFrOworCX0KKworCV9fbmF0aXZlX3NldF9maXhtYXAoaWR4LCBwdGUpOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IHB2X2luZm8geGVuX2luZm8gX19pbml0ZGF0YSA9IHsKIAkucGFyYXZpcnRfZW5hYmxlZCA9IDEsCiAJLnNoYXJlZF9rZXJuZWxfcG1kID0gMCwKQEAgLTk3Myw3ICsxMDU0LDcgQEAKIAkuYmFubmVyID0geGVuX2Jhbm5lciwKIAkubWVtb3J5X3NldHVwID0geGVuX21lbW9yeV9zZXR1cCwKIAkuYXJjaF9zZXR1cCA9IHhlbl9hcmNoX3NldHVwLAotCS5wb3N0X2FsbG9jYXRvcl9pbml0ID0geGVuX21hcmtfaW5pdF9tbV9waW5uZWQsCisJLnBvc3RfYWxsb2NhdG9yX2luaXQgPSB4ZW5fcG9zdF9hbGxvY2F0b3JfaW5pdCwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcHZfdGltZV9vcHMgeGVuX3RpbWVfb3BzIF9faW5pdGRhdGEgPSB7CkBAIC05ODEsNyArMTA2Miw3IEBACiAKIAkuc2V0X3dhbGxjbG9jayA9IHhlbl9zZXRfd2FsbGNsb2NrLAogCS5nZXRfd2FsbGNsb2NrID0geGVuX2dldF93YWxsY2xvY2ssCi0JLmdldF9jcHVfa2h6ID0geGVuX2NwdV9raHosCisJLmdldF90c2Nfa2h6ID0geGVuX3RzY19raHosCiAJLnNjaGVkX2Nsb2NrID0geGVuX3NjaGVkX2Nsb2NrLAogfTsKIApAQCAtOTkxLDEwICsxMDcyLDEwIEBACiAJLnNldF9kZWJ1Z3JlZyA9IHhlbl9zZXRfZGVidWdyZWcsCiAJLmdldF9kZWJ1Z3JlZyA9IHhlbl9nZXRfZGVidWdyZWcsCiAKLQkuY2x0cyA9IG5hdGl2ZV9jbHRzLAorCS5jbHRzID0geGVuX2NsdHMsCiAKIAkucmVhZF9jcjAgPSBuYXRpdmVfcmVhZF9jcjAsCi0JLndyaXRlX2NyMCA9IG5hdGl2ZV93cml0ZV9jcjAsCisJLndyaXRlX2NyMCA9IHhlbl93cml0ZV9jcjAsCiAKIAkucmVhZF9jcjQgPSBuYXRpdmVfcmVhZF9jcjQsCiAJLnJlYWRfY3I0X3NhZmUgPSBuYXRpdmVfcmVhZF9jcjRfc2FmZSwKQEAgLTEwMDgsNyArMTA4OSw3IEBACiAJLnJlYWRfcG1jID0gbmF0aXZlX3JlYWRfcG1jLAogCiAJLmlyZXQgPSB4ZW5faXJldCwKLQkuaXJxX2VuYWJsZV9zeXNjYWxsX3JldCA9IHhlbl9zeXNleGl0LAorCS5pcnFfZW5hYmxlX3N5c2V4aXQgPSB4ZW5fc3lzZXhpdCwKIAogCS5sb2FkX3RyX2Rlc2MgPSBwYXJhdmlydF9ub3AsCiAJLnNldF9sZHQgPSB4ZW5fc2V0X2xkdCwKQEAgLTEwNDIsNiArMTEyMyw5IEBACiAJLmlycV9lbmFibGUgPSB4ZW5faXJxX2VuYWJsZSwKIAkuc2FmZV9oYWx0ID0geGVuX3NhZmVfaGFsdCwKIAkuaGFsdCA9IHhlbl9oYWx0LAorI2lmZGVmIENPTkZJR19YODZfNjQKKwkuYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSA9IHBhcmF2aXJ0X25vcCwKKyNlbmRpZgogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwdl9hcGljX29wcyB4ZW5fYXBpY19vcHMgX19pbml0ZGF0YSA9IHsKQEAgLTEwNzMsNiArMTE1Nyw5IEBACiAJLnB0ZV91cGRhdGUgPSBwYXJhdmlydF9ub3AsCiAJLnB0ZV91cGRhdGVfZGVmZXIgPSBwYXJhdmlydF9ub3AsCiAKKwkucGdkX2FsbG9jID0gX19wYXJhdmlydF9wZ2RfYWxsb2MsCisJLnBnZF9mcmVlID0gcGFyYXZpcnRfbm9wLAorCiAJLmFsbG9jX3B0ZSA9IHhlbl9hbGxvY19wdGVfaW5pdCwKIAkucmVsZWFzZV9wdGUgPSB4ZW5fcmVsZWFzZV9wdGVfaW5pdCwKIAkuYWxsb2NfcG1kID0geGVuX2FsbG9jX3B0ZV9pbml0LApAQCAtMTA4NSwyNCArMTE3MiwyNiBAQAogCiAJLnNldF9wdGUgPSBOVUxMLAkvKiBzZWUgeGVuX3BhZ2V0YWJsZV9zZXR1cF8qICovCiAJLnNldF9wdGVfYXQgPSB4ZW5fc2V0X3B0ZV9hdCwKLQkuc2V0X3BtZCA9IHhlbl9zZXRfcG1kLAorCS5zZXRfcG1kID0geGVuX3NldF9wbWRfaHlwZXIsCisKKwkucHRlcF9tb2RpZnlfcHJvdF9zdGFydCA9IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkucHRlcF9tb2RpZnlfcHJvdF9jb21taXQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAogCiAJLnB0ZV92YWwgPSB4ZW5fcHRlX3ZhbCwKKwkucHRlX2ZsYWdzID0gbmF0aXZlX3B0ZV92YWwsCiAJLnBnZF92YWwgPSB4ZW5fcGdkX3ZhbCwKIAogCS5tYWtlX3B0ZSA9IHhlbl9tYWtlX3B0ZSwKIAkubWFrZV9wZ2QgPSB4ZW5fbWFrZV9wZ2QsCiAKLSNpZmRlZiBDT05GSUdfWDg2X1BBRQogCS5zZXRfcHRlX2F0b21pYyA9IHhlbl9zZXRfcHRlX2F0b21pYywKIAkuc2V0X3B0ZV9wcmVzZW50ID0geGVuX3NldF9wdGVfYXQsCi0JLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZCwKKwkuc2V0X3B1ZCA9IHhlbl9zZXRfcHVkX2h5cGVyLAogCS5wdGVfY2xlYXIgPSB4ZW5fcHRlX2NsZWFyLAogCS5wbWRfY2xlYXIgPSB4ZW5fcG1kX2NsZWFyLAogCiAJLm1ha2VfcG1kID0geGVuX21ha2VfcG1kLAogCS5wbWRfdmFsID0geGVuX3BtZF92YWwsCi0jZW5kaWYJLyogUEFFICovCiAKIAkuYWN0aXZhdGVfbW0gPSB4ZW5fYWN0aXZhdGVfbW0sCiAJLmR1cF9tbWFwID0geGVuX2R1cF9tbWFwLApAQCAtMTExMiw2ICsxMjAxLDggQEAKIAkJLmVudGVyID0gcGFyYXZpcnRfZW50ZXJfbGF6eV9tbXUsCiAJCS5sZWF2ZSA9IHhlbl9sZWF2ZV9sYXp5LAogCX0sCisKKwkuc2V0X2ZpeG1hcCA9IHhlbl9zZXRfZml4bWFwLAogfTsKIAogI2lmZGVmIENPTkZJR19TTVAKQEAgLTExMjksMTEgKzEyMjAsMTMgQEAKIAogc3RhdGljIHZvaWQgeGVuX3JlYm9vdChpbnQgcmVhc29uKQogeworCXN0cnVjdCBzY2hlZF9zaHV0ZG93biByID0geyAucmVhc29uID0gcmVhc29uIH07CisKICNpZmRlZiBDT05GSUdfU01QCiAJc21wX3NlbmRfc3RvcCgpOwogI2VuZGlmCiAKLQlpZiAoSFlQRVJWSVNPUl9zY2hlZF9vcChTQ0hFRE9QX3NodXRkb3duLCByZWFzb24pKQorCWlmIChIWVBFUlZJU09SX3NjaGVkX29wKFNDSEVET1Bfc2h1dGRvd24sICZyKSkKIAkJQlVHKCk7CiB9CiAKQEAgLTExODgsNiArMTI4MSw4IEBACiAKIAlCVUdfT04obWVtY21wKHhlbl9zdGFydF9pbmZvLT5tYWdpYywgInhlbi0zIiwgNSkgIT0gMCk7CiAKKwl4ZW5fc2V0dXBfZmVhdHVyZXMoKTsKKwogCS8qIEluc3RhbGwgWGVuIHBhcmF2aXJ0IG9wcyAqLwogCXB2X2luZm8gPSB4ZW5faW5mbzsKIAlwdl9pbml0X29wcyA9IHhlbl9pbml0X29wczsKQEAgLTExOTcsMjEgKzEyOTIsMjYgQEAKIAlwdl9hcGljX29wcyA9IHhlbl9hcGljX29wczsKIAlwdl9tbXVfb3BzID0geGVuX21tdV9vcHM7CiAKKwlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9tbXVfcHRfdXBkYXRlX3ByZXNlcnZlX2FkKSkgeworCQlwdl9tbXVfb3BzLnB0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQgPSB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9zdGFydDsKKwkJcHZfbW11X29wcy5wdGVwX21vZGlmeV9wcm90X2NvbW1pdCA9IHhlbl9wdGVwX21vZGlmeV9wcm90X2NvbW1pdDsKKwl9CisKIAltYWNoaW5lX29wcyA9IHhlbl9tYWNoaW5lX29wczsKIAogI2lmZGVmIENPTkZJR19TTVAKIAlzbXBfb3BzID0geGVuX3NtcF9vcHM7CiAjZW5kaWYKIAotCXhlbl9zZXR1cF9mZWF0dXJlcygpOwotCiAJLyogR2V0IG1mbiBsaXN0ICovCiAJaWYgKCF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKLQkJcGh5c190b19tYWNoaW5lX21hcHBpbmcgPSAodW5zaWduZWQgbG9uZyAqKXhlbl9zdGFydF9pbmZvLT5tZm5fbGlzdDsKKwkJeGVuX2J1aWxkX2R5bmFtaWNfcGh5c190b19tYWNoaW5lKCk7CiAKIAlwZ2QgPSAocGdkX3QgKil4ZW5fc3RhcnRfaW5mby0+cHRfYmFzZTsKIAorCWluaXRfcGdfdGFibGVzX3N0YXJ0ID0gX19wYShwZ2QpOwogCWluaXRfcGdfdGFibGVzX2VuZCA9IF9fcGEocGdkKSArIHhlbl9zdGFydF9pbmZvLT5ucl9wdF9mcmFtZXMqUEFHRV9TSVpFOworCW1heF9wZm5fbWFwcGVkID0gKGluaXRfcGdfdGFibGVzX2VuZCArIDUxMioxMDI0KSA+PiBQQUdFX1NISUZUOwogCiAJaW5pdF9tbS5wZ2QgPSBwZ2Q7IC8qIHVzZSB0aGUgWGVuIHBhZ2V0YWJsZXMgdG8gc3RhcnQgKi8KIApAQCAtMTIyOCw2ICsxMzI4LDExIEBACiAJaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCkpCiAJCXB2X2luZm8ua2VybmVsX3JwbCA9IDA7CiAKKwkvKiBQcmV2ZW50IHVud2FudGVkIGJpdHMgZnJvbSBiZWluZyBzZXQgaW4gUFRFcy4gKi8KKwlfX3N1cHBvcnRlZF9wdGVfbWFzayAmPSB+X1BBR0VfR0xPQkFMOworCWlmICghaXNfaW5pdGlhbF94ZW5kb21haW4oKSkKKwkJX19zdXBwb3J0ZWRfcHRlX21hc2sgJj0gfihfUEFHRV9QV1QgfCBfUEFHRV9QQ0QpOworCiAJLyogc2V0IHRoZSBsaW1pdCBvZiBvdXIgYWRkcmVzcyBzcGFjZSAqLwogCXhlbl9yZXNlcnZlX3RvcCgpOwogCkBAIC0xMjQyLDkgKzEzNDcsMTIgQEAKIAkJPyBfX3BhKHhlbl9zdGFydF9pbmZvLT5tb2Rfc3RhcnQpIDogMDsKIAlib290X3BhcmFtcy5oZHIucmFtZGlza19zaXplID0geGVuX3N0YXJ0X2luZm8tPm1vZF9sZW47CiAKLQlpZiAoIWlzX2luaXRpYWxfeGVuZG9tYWluKCkpCisJaWYgKCFpc19pbml0aWFsX3hlbmRvbWFpbigpKSB7CisJCWFkZF9wcmVmZXJyZWRfY29uc29sZSgieGVuYm9vdCIsIDAsIE5VTEwpOworCQlhZGRfcHJlZmVycmVkX2NvbnNvbGUoInR0eSIsIDAsIE5VTEwpOwogCQlhZGRfcHJlZmVycmVkX2NvbnNvbGUoImh2YyIsIDAsIE5VTEwpOworCX0KIAogCS8qIFN0YXJ0IHRoZSB3b3JsZCAqLwotCXN0YXJ0X2tlcm5lbCgpOworCWkzODZfc3RhcnRfa2VybmVsKCk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbWFuYWdlLmMgYi9hcmNoL3g4Ni94ZW4vbWFuYWdlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhN2FmOWUuLjAwMDAwMDAKLS0tIGEvYXJjaC94ODYveGVuL21hbmFnZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQzICswLDAgQEAKLS8qCi0gKiBIYW5kbGUgZXh0ZXJuIHJlcXVlc3RzIGZvciBzaHV0ZG93biwgcmVib290IGFuZCBzeXNycQotICovCi0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvZXJyLmg+Ci0jaW5jbHVkZSA8bGludXgvcmVib290Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KLQotI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KLQotI2RlZmluZSBTSFVURE9XTl9JTlZBTElEICAtMQotI2RlZmluZSBTSFVURE9XTl9QT1dFUk9GRiAgMAotI2RlZmluZSBTSFVURE9XTl9TVVNQRU5EICAgMgotLyogQ29kZSAzIGlzIFNIVVRET1dOX0NSQVNILCB3aGljaCB3ZSBkb24ndCB1c2UgYmVjYXVzZSB0aGUgZG9tYWluIGNhbiBvbmx5Ci0gKiByZXBvcnQgYSBjcmFzaCwgbm90IGJlIGluc3RydWN0ZWQgdG8gY3Jhc2ghCi0gKiBIQUxUIGlzIHRoZSBzYW1lIGFzIFBPV0VST0ZGLCBhcyBmYXIgYXMgd2UncmUgY29uY2VybmVkLiAgVGhlIHRvb2xzIHVzZQotICogdGhlIGRpc3RpbmN0aW9uIHdoZW4gd2UgcmV0dXJuIHRoZSByZWFzb24gY29kZSB0byB0aGVtLgotICovCi0jZGVmaW5lIFNIVVRET1dOX0hBTFQgICAgICA0Ci0KLS8qIElnbm9yZSBtdWx0aXBsZSBzaHV0ZG93biByZXF1ZXN0cy4gKi8KLXN0YXRpYyBpbnQgc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX0lOVkFMSUQ7Ci0KLXN0YXRpYyB2b2lkIHNodXRkb3duX2hhbmRsZXIoc3RydWN0IHhlbmJ1c193YXRjaCAqd2F0Y2gsCi0JCQkgICAgIGNvbnN0IGNoYXIgKip2ZWMsIHVuc2lnbmVkIGludCBsZW4pCi17Ci0JY2hhciAqc3RyOwotCXN0cnVjdCB4ZW5idXNfdHJhbnNhY3Rpb24geGJ0OwotCWludCBlcnI7Ci0KLQlpZiAoc2h1dHRpbmdfZG93biAhPSBTSFVURE9XTl9JTlZBTElEKQotCQlyZXR1cm47Ci0KLSBhZ2FpbjoKLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fc3RhcnQoJnhidCk7Ci0JaWYgKGVycikKLQkJcmV0dXJuOwotCi0Jc3RyID0gKGNoYXIgKil4ZW5idXNfcmVhZCh4YnQsICJjb250cm9sIiwgInNodXRkb3duIiwgTlVMTCk7Ci0JLyogSWdub3JlIHJlYWQgZXJyb3JzIGFuZCBlbXB0eSByZWFkcy4gKi8KLQlpZiAoWEVOQlVTX0lTX0VSUl9SRUFEKHN0cikpIHsKLQkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOwotCQlyZXR1cm47Ci0JfQotCi0JeGVuYnVzX3dyaXRlKHhidCwgImNvbnRyb2wiLCAic2h1dGRvd24iLCAiIik7Ci0KLQllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhidCwgMCk7Ci0JaWYgKGVyciA9PSAtRUFHQUlOKSB7Ci0JCWtmcmVlKHN0cik7Ci0JCWdvdG8gYWdhaW47Ci0JfQotCi0JaWYgKHN0cmNtcChzdHIsICJwb3dlcm9mZiIpID09IDAgfHwKLQkgICAgc3RyY21wKHN0ciwgImhhbHQiKSA9PSAwKQotCQlvcmRlcmx5X3Bvd2Vyb2ZmKGZhbHNlKTsKLQllbHNlIGlmIChzdHJjbXAoc3RyLCAicmVib290IikgPT0gMCkKLQkJY3RybF9hbHRfZGVsKCk7Ci0JZWxzZSB7Ci0JCXByaW50ayhLRVJOX0lORk8gIklnbm9yaW5nIHNodXRkb3duIHJlcXVlc3Q6ICVzXG4iLCBzdHIpOwotCQlzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKLQl9Ci0KLQlrZnJlZShzdHIpOwotfQotCi1zdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVyKHN0cnVjdCB4ZW5idXNfd2F0Y2ggKndhdGNoLCBjb25zdCBjaGFyICoqdmVjLAotCQkJICB1bnNpZ25lZCBpbnQgbGVuKQotewotCWNoYXIgc3lzcnFfa2V5ID0gJ1wwJzsKLQlzdHJ1Y3QgeGVuYnVzX3RyYW5zYWN0aW9uIHhidDsKLQlpbnQgZXJyOwotCi0gYWdhaW46Ci0JZXJyID0geGVuYnVzX3RyYW5zYWN0aW9uX3N0YXJ0KCZ4YnQpOwotCWlmIChlcnIpCi0JCXJldHVybjsKLQlpZiAoIXhlbmJ1c19zY2FuZih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJnN5c3JxX2tleSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJVbmFibGUgdG8gcmVhZCBzeXNycSBjb2RlIGluICIKLQkJICAgICAgICJjb250cm9sL3N5c3JxXG4iKTsKLQkJeGVuYnVzX3RyYW5zYWN0aW9uX2VuZCh4YnQsIDEpOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKHN5c3JxX2tleSAhPSAnXDAnKQotCQl4ZW5idXNfcHJpbnRmKHhidCwgImNvbnRyb2wiLCAic3lzcnEiLCAiJWMiLCAnXDAnKTsKLQotCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKLQlpZiAoZXJyID09IC1FQUdBSU4pCi0JCWdvdG8gYWdhaW47Ci0KLQlpZiAoc3lzcnFfa2V5ICE9ICdcMCcpCi0JCWhhbmRsZV9zeXNycShzeXNycV9rZXksIE5VTEwpOwotfQotCi1zdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzaHV0ZG93bl93YXRjaCA9IHsKLQkubm9kZSA9ICJjb250cm9sL3NodXRkb3duIiwKLQkuY2FsbGJhY2sgPSBzaHV0ZG93bl9oYW5kbGVyCi19OwotCi1zdGF0aWMgc3RydWN0IHhlbmJ1c193YXRjaCBzeXNycV93YXRjaCA9IHsKLQkubm9kZSA9ICJjb250cm9sL3N5c3JxIiwKLQkuY2FsbGJhY2sgPSBzeXNycV9oYW5kbGVyCi19OwotCi1zdGF0aWMgaW50IHNldHVwX3NodXRkb3duX3dhdGNoZXIodm9pZCkKLXsKLQlpbnQgZXJyOwotCi0JZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzaHV0ZG93bl93YXRjaCk7Ci0JaWYgKGVycikgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc2h1dGRvd24gd2F0Y2hlclxuIik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JZXJyID0gcmVnaXN0ZXJfeGVuYnVzX3dhdGNoKCZzeXNycV93YXRjaCk7Ci0JaWYgKGVycikgewotCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBzZXQgc3lzcnEgd2F0Y2hlclxuIik7Ci0JCXJldHVybiBlcnI7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc2h1dGRvd25fZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpub3RpZmllciwKLQkJCSAgdW5zaWduZWQgbG9uZyBldmVudCwKLQkJCSAgdm9pZCAqZGF0YSkKLXsKLQlzZXR1cF9zaHV0ZG93bl93YXRjaGVyKCk7Ci0JcmV0dXJuIE5PVElGWV9ET05FOwotfQotCi1zdGF0aWMgaW50IF9faW5pdCBzZXR1cF9zaHV0ZG93bl9ldmVudCh2b2lkKQotewotCXN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgeGVuc3RvcmVfbm90aWZpZXIgPSB7Ci0JCS5ub3RpZmllcl9jYWxsID0gc2h1dGRvd25fZXZlbnQKLQl9OwotCXJlZ2lzdGVyX3hlbnN0b3JlX25vdGlmaWVyKCZ4ZW5zdG9yZV9ub3RpZmllcik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3Vic3lzX2luaXRjYWxsKHNldHVwX3NodXRkb3duX2V2ZW50KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tbXUuYyBiL2FyY2gveDg2L3hlbi9tbXUuYwppbmRleCAxMjY3NjZkLi40MmIzYjllIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmMKKysrIGIvYXJjaC94ODYveGVuL21tdS5jCkBAIC01NiwxMSArNTYsMTM2IEBACiAjaW5jbHVkZSAibXVsdGljYWxscy5oIgogI2luY2x1ZGUgIm1tdS5oIgogCisjZGVmaW5lIFAyTV9FTlRSSUVTX1BFUl9QQUdFCShQQUdFX1NJWkUgLyBzaXplb2YodW5zaWduZWQgbG9uZykpCisjZGVmaW5lIFRPUF9FTlRSSUVTCQkoTUFYX0RPTUFJTl9QQUdFUyAvIFAyTV9FTlRSSUVTX1BFUl9QQUdFKQorCisvKiBQbGFjZWhvbGRlciBmb3IgaG9sZXMgaW4gdGhlIGFkZHJlc3Mgc3BhY2UgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHAybV9taXNzaW5nW1AyTV9FTlRSSUVTX1BFUl9QQUdFXQorCV9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5kYXRhLnBhZ2VfYWxpZ25lZCIpKSkgPQorCQl7IFsgMCAuLi4gUDJNX0VOVFJJRVNfUEVSX1BBR0UtMSBdID0gfjBVTCB9OworCisgLyogQXJyYXkgb2YgcG9pbnRlcnMgdG8gcGFnZXMgY29udGFpbmluZyBwMm0gZW50cmllcyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgKnAybV90b3BbVE9QX0VOVFJJRVNdCisJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmRhdGEucGFnZV9hbGlnbmVkIikpKSA9CisJCXsgWyAwIC4uLiBUT1BfRU5UUklFUyAtIDFdID0gJnAybV9taXNzaW5nWzBdIH07CisKKy8qIEFycmF5cyBvZiBwMm0gYXJyYXlzIGV4cHJlc3NlZCBpbiBtZm5zIHVzZWQgZm9yIHNhdmUvcmVzdG9yZSAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgcDJtX3RvcF9tZm5bVE9QX0VOVFJJRVNdCisJX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSkpOworCitzdGF0aWMgdW5zaWduZWQgbG9uZyBwMm1fdG9wX21mbl9saXN0WworCQkJUEFHRV9BTElHTihUT1BfRU5UUklFUyAvIFAyTV9FTlRSSUVTX1BFUl9QQUdFKV0KKwlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSk7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgcDJtX3RvcF9pbmRleCh1bnNpZ25lZCBsb25nIHBmbikKK3sKKwlCVUdfT04ocGZuID49IE1BWF9ET01BSU5fUEFHRVMpOworCXJldHVybiBwZm4gLyBQMk1fRU5UUklFU19QRVJfUEFHRTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBwMm1faW5kZXgodW5zaWduZWQgbG9uZyBwZm4pCit7CisJcmV0dXJuIHBmbiAlIFAyTV9FTlRSSUVTX1BFUl9QQUdFOworfQorCisvKiBCdWlsZCB0aGUgcGFyYWxsZWwgcDJtX3RvcF9tZm4gc3RydWN0dXJlcyAqLwordm9pZCB4ZW5fc2V0dXBfbWZuX2xpc3RfbGlzdCh2b2lkKQoreworCXVuc2lnbmVkIHBmbiwgaWR4OworCisJZm9yKHBmbiA9IDA7IHBmbiA8IE1BWF9ET01BSU5fUEFHRVM7IHBmbiArPSBQMk1fRU5UUklFU19QRVJfUEFHRSkgeworCQl1bnNpZ25lZCB0b3BpZHggPSBwMm1fdG9wX2luZGV4KHBmbik7CisKKwkJcDJtX3RvcF9tZm5bdG9waWR4XSA9IHZpcnRfdG9fbWZuKHAybV90b3BbdG9waWR4XSk7CisJfQorCisJZm9yKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUocDJtX3RvcF9tZm5fbGlzdCk7IGlkeCsrKSB7CisJCXVuc2lnbmVkIHRvcGlkeCA9IGlkeCAqIFAyTV9FTlRSSUVTX1BFUl9QQUdFOworCQlwMm1fdG9wX21mbl9saXN0W2lkeF0gPSB2aXJ0X3RvX21mbigmcDJtX3RvcF9tZm5bdG9waWR4XSk7CisJfQorCisJQlVHX09OKEhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPT0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbyk7CisKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvLT5hcmNoLnBmbl90b19tZm5fZnJhbWVfbGlzdF9saXN0ID0KKwkJdmlydF90b19tZm4ocDJtX3RvcF9tZm5fbGlzdCk7CisJSFlQRVJWSVNPUl9zaGFyZWRfaW5mby0+YXJjaC5tYXhfcGZuID0geGVuX3N0YXJ0X2luZm8tPm5yX3BhZ2VzOworfQorCisvKiBTZXQgdXAgcDJtX3RvcCB0byBwb2ludCB0byB0aGUgZG9tYWluLWJ1aWxkZXIgcHJvdmlkZWQgcDJtIHBhZ2VzICovCit2b2lkIF9faW5pdCB4ZW5fYnVpbGRfZHluYW1pY19waHlzX3RvX21hY2hpbmUodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nICptZm5fbGlzdCA9ICh1bnNpZ25lZCBsb25nICopeGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0OworCXVuc2lnbmVkIGxvbmcgbWF4X3BmbiA9IG1pbihNQVhfRE9NQUlOX1BBR0VTLCB4ZW5fc3RhcnRfaW5mby0+bnJfcGFnZXMpOworCXVuc2lnbmVkIHBmbjsKKworCWZvcihwZm4gPSAwOyBwZm4gPCBtYXhfcGZuOyBwZm4gKz0gUDJNX0VOVFJJRVNfUEVSX1BBR0UpIHsKKwkJdW5zaWduZWQgdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCisJCXAybV90b3BbdG9waWR4XSA9ICZtZm5fbGlzdFtwZm5dOworCX0KK30KKwordW5zaWduZWQgbG9uZyBnZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuKQoreworCXVuc2lnbmVkIHRvcGlkeCwgaWR4OworCisJaWYgKHVubGlrZWx5KHBmbiA+PSBNQVhfRE9NQUlOX1BBR0VTKSkKKwkJcmV0dXJuIElOVkFMSURfUDJNX0VOVFJZOworCisJdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCWlkeCA9IHAybV9pbmRleChwZm4pOworCXJldHVybiBwMm1fdG9wW3RvcGlkeF1baWR4XTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGdldF9waHlzX3RvX21hY2hpbmUpOworCitzdGF0aWMgdm9pZCBhbGxvY19wMm0odW5zaWduZWQgbG9uZyAqKnBwLCB1bnNpZ25lZCBsb25nICptZm5wKQoreworCXVuc2lnbmVkIGxvbmcgKnA7CisJdW5zaWduZWQgaTsKKworCXAgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfTk9GQUlMKTsKKwlCVUdfT04ocCA9PSBOVUxMKTsKKworCWZvcihpID0gMDsgaSA8IFAyTV9FTlRSSUVTX1BFUl9QQUdFOyBpKyspCisJCXBbaV0gPSBJTlZBTElEX1AyTV9FTlRSWTsKKworCWlmIChjbXB4Y2hnKHBwLCBwMm1fbWlzc2luZywgcCkgIT0gcDJtX21pc3NpbmcpCisJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylwKTsKKwllbHNlCisJCSptZm5wID0gdmlydF90b19tZm4ocCk7Cit9CisKK3ZvaWQgc2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCit7CisJdW5zaWduZWQgdG9waWR4LCBpZHg7CisKKwlpZiAodW5saWtlbHkoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpKSB7CisJCUJVR19PTihwZm4gIT0gbWZuICYmIG1mbiAhPSBJTlZBTElEX1AyTV9FTlRSWSk7CisJCXJldHVybjsKKwl9CisKKwlpZiAodW5saWtlbHkocGZuID49IE1BWF9ET01BSU5fUEFHRVMpKSB7CisJCUJVR19PTihtZm4gIT0gSU5WQUxJRF9QMk1fRU5UUlkpOworCQlyZXR1cm47CisJfQorCisJdG9waWR4ID0gcDJtX3RvcF9pbmRleChwZm4pOworCWlmIChwMm1fdG9wW3RvcGlkeF0gPT0gcDJtX21pc3NpbmcpIHsKKwkJLyogbm8gbmVlZCB0byBhbGxvY2F0ZSBhIHBhZ2UgdG8gc3RvcmUgYW4gaW52YWxpZCBlbnRyeSAqLworCQlpZiAobWZuID09IElOVkFMSURfUDJNX0VOVFJZKQorCQkJcmV0dXJuOworCQlhbGxvY19wMm0oJnAybV90b3BbdG9waWR4XSwgJnAybV90b3BfbWZuW3RvcGlkeF0pOworCX0KKworCWlkeCA9IHAybV9pbmRleChwZm4pOworCXAybV90b3BbdG9waWR4XVtpZHhdID0gbWZuOworfQorCiB4bWFkZHJfdCBhcmJpdHJhcnlfdmlydF90b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKIAl1bnNpZ25lZCBpbnQgbGV2ZWw7CiAJcHRlX3QgKnB0ZSA9IGxvb2t1cF9hZGRyZXNzKGFkZHJlc3MsICZsZXZlbCk7Ci0JdW5zaWduZWQgb2Zmc2V0ID0gYWRkcmVzcyAmIFBBR0VfTUFTSzsKKwl1bnNpZ25lZCBvZmZzZXQgPSBhZGRyZXNzICYgflBBR0VfTUFTSzsKIAogCUJVR19PTihwdGUgPT0gTlVMTCk7CiAKQEAgLTk4LDI0ICsyMjMsNjAgQEAKIH0KIAogCi12b2lkIHhlbl9zZXRfcG1kKHBtZF90ICpwdHIsIHBtZF90IHZhbCkKK3N0YXRpYyBib29sIHBhZ2VfcGlubmVkKHZvaWQgKnB0cikKK3sKKwlzdHJ1Y3QgcGFnZSAqcGFnZSA9IHZpcnRfdG9fcGFnZShwdHIpOworCisJcmV0dXJuIFBhZ2VQaW5uZWQocGFnZSk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dGVuZF9tbXVfdXBkYXRlKGNvbnN0IHN0cnVjdCBtbXVfdXBkYXRlICp1cGRhdGUpCiB7CiAJc3RydWN0IG11bHRpY2FsbF9zcGFjZSBtY3M7CiAJc3RydWN0IG1tdV91cGRhdGUgKnU7CiAKKwltY3MgPSB4ZW5fbWNfZXh0ZW5kX2FyZ3MoX19IWVBFUlZJU09SX21tdV91cGRhdGUsIHNpemVvZigqdSkpOworCisJaWYgKG1jcy5tYyAhPSBOVUxMKQorCQltY3MubWMtPmFyZ3NbMV0rKzsKKwllbHNlIHsKKwkJbWNzID0gX194ZW5fbWNfZW50cnkoc2l6ZW9mKCp1KSk7CisJCU1VTFRJX21tdV91cGRhdGUobWNzLm1jLCBtY3MuYXJncywgMSwgTlVMTCwgRE9NSURfU0VMRik7CisJfQorCisJdSA9IG1jcy5hcmdzOworCSp1ID0gKnVwZGF0ZTsKK30KKwordm9pZCB4ZW5fc2V0X3BtZF9oeXBlcihwbWRfdCAqcHRyLCBwbWRfdCB2YWwpCit7CisJc3RydWN0IG1tdV91cGRhdGUgdTsKKwogCXByZWVtcHRfZGlzYWJsZSgpOwogCi0JbWNzID0geGVuX21jX2VudHJ5KHNpemVvZigqdSkpOwotCXUgPSBtY3MuYXJnczsKLQl1LT5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKLQl1LT52YWwgPSBwbWRfdmFsX21hKHZhbCk7Ci0JTVVMVElfbW11X3VwZGF0ZShtY3MubWMsIHUsIDEsIE5VTEwsIERPTUlEX1NFTEYpOworCXhlbl9tY19iYXRjaCgpOworCisJdS5wdHIgPSB2aXJ0X3RvX21hY2hpbmUocHRyKS5tYWRkcjsKKwl1LnZhbCA9IHBtZF92YWxfbWEodmFsKTsKKwlleHRlbmRfbW11X3VwZGF0ZSgmdSk7CiAKIAl4ZW5fbWNfaXNzdWUoUEFSQVZJUlRfTEFaWV9NTVUpOwogCiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAordm9pZCB4ZW5fc2V0X3BtZChwbWRfdCAqcHRyLCBwbWRfdCB2YWwpCit7CisJLyogSWYgcGFnZSBpcyBub3QgcGlubmVkLCB3ZSBjYW4ganVzdCB1cGRhdGUgdGhlIGVudHJ5CisJICAgZGlyZWN0bHkgKi8KKwlpZiAoIXBhZ2VfcGlubmVkKHB0cikpIHsKKwkJKnB0ciA9IHZhbDsKKwkJcmV0dXJuOworCX0KKworCXhlbl9zZXRfcG1kX2h5cGVyKHB0ciwgdmFsKTsKK30KKwogLyoKICAqIEFzc29jaWF0ZSBhIHZpcnR1YWwgcGFnZSBmcmFtZSB3aXRoIGEgZ2l2ZW4gcGh5c2ljYWwgcGFnZSBmcmFtZQogICogYW5kIHByb3RlY3Rpb24gZmxhZ3MgZm9yIHRoYXQgZnJhbWUuCkBAIC0xNzksNjggKzM0MCwxMDUgQEAKIAkJcHJlZW1wdF9lbmFibGUoKTsKIH0KIAorcHRlX3QgeGVuX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCit7CisJLyogSnVzdCByZXR1cm4gdGhlIHB0ZSBhcy1pcy4gIFdlIHByZXNlcnZlIHRoZSBiaXRzIG9uIGNvbW1pdCAqLworCXJldHVybiAqcHRlcDsKK30KKwordm9pZCB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKK3sKKwlzdHJ1Y3QgbW11X3VwZGF0ZSB1OworCisJeGVuX21jX2JhdGNoKCk7CisKKwl1LnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdGVwKS5tYWRkciB8IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ7CisJdS52YWwgPSBwdGVfdmFsX21hKHB0ZSk7CisJZXh0ZW5kX21tdV91cGRhdGUoJnUpOworCisJeGVuX21jX2lzc3VlKFBBUkFWSVJUX0xBWllfTU1VKTsKK30KKworLyogQXNzdW1lIHB0ZXZhbF90IGlzIGVxdWl2YWxlbnQgdG8gYWxsIHRoZSBvdGhlciAqdmFsX3QgdHlwZXMuICovCitzdGF0aWMgcHRldmFsX3QgcHRlX21mbl90b19wZm4ocHRldmFsX3QgdmFsKQoreworCWlmICh2YWwgJiBfUEFHRV9QUkVTRU5UKSB7CisJCXVuc2lnbmVkIGxvbmcgbWZuID0gKHZhbCAmIFBURV9NQVNLKSA+PiBQQUdFX1NISUZUOworCQlwdGV2YWxfdCBmbGFncyA9IHZhbCAmIH5QVEVfTUFTSzsKKwkJdmFsID0gKChwdGV2YWxfdCltZm5fdG9fcGZuKG1mbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKKwl9CisKKwlyZXR1cm4gdmFsOworfQorCitzdGF0aWMgcHRldmFsX3QgcHRlX3Bmbl90b19tZm4ocHRldmFsX3QgdmFsKQoreworCWlmICh2YWwgJiBfUEFHRV9QUkVTRU5UKSB7CisJCXVuc2lnbmVkIGxvbmcgcGZuID0gKHZhbCAmIFBURV9NQVNLKSA+PiBQQUdFX1NISUZUOworCQlwdGV2YWxfdCBmbGFncyA9IHZhbCAmIH5QVEVfTUFTSzsKKwkJdmFsID0gKChwdGV2YWxfdClwZm5fdG9fbWZuKHBmbikgPDwgUEFHRV9TSElGVCkgfCBmbGFnczsKKwl9CisKKwlyZXR1cm4gdmFsOworfQorCiBwdGV2YWxfdCB4ZW5fcHRlX3ZhbChwdGVfdCBwdGUpCiB7Ci0JcHRldmFsX3QgcmV0ID0gcHRlLnB0ZTsKLQotCWlmIChyZXQgJiBfUEFHRV9QUkVTRU5UKQotCQlyZXQgPSBtYWNoaW5lX3RvX3BoeXMoWE1BRERSKHJldCkpLnBhZGRyIHwgX1BBR0VfUFJFU0VOVDsKLQotCXJldHVybiByZXQ7CisJcmV0dXJuIHB0ZV9tZm5fdG9fcGZuKHB0ZS5wdGUpOwogfQogCiBwZ2R2YWxfdCB4ZW5fcGdkX3ZhbChwZ2RfdCBwZ2QpCiB7Ci0JcGdkdmFsX3QgcmV0ID0gcGdkLnBnZDsKLQlpZiAocmV0ICYgX1BBR0VfUFJFU0VOVCkKLQkJcmV0ID0gbWFjaGluZV90b19waHlzKFhNQUREUihyZXQpKS5wYWRkciB8IF9QQUdFX1BSRVNFTlQ7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gcHRlX21mbl90b19wZm4ocGdkLnBnZCk7CiB9CiAKIHB0ZV90IHhlbl9tYWtlX3B0ZShwdGV2YWxfdCBwdGUpCiB7Ci0JaWYgKHB0ZSAmIF9QQUdFX1BSRVNFTlQpIHsKLQkJcHRlID0gcGh5c190b19tYWNoaW5lKFhQQUREUihwdGUpKS5tYWRkcjsKLQkJcHRlICY9IH4oX1BBR0VfUENEIHwgX1BBR0VfUFdUKTsKLQl9Ci0KLQlyZXR1cm4gKHB0ZV90KXsgLnB0ZSA9IHB0ZSB9OworCXB0ZSA9IHB0ZV9wZm5fdG9fbWZuKHB0ZSk7CisJcmV0dXJuIG5hdGl2ZV9tYWtlX3B0ZShwdGUpOwogfQogCiBwZ2RfdCB4ZW5fbWFrZV9wZ2QocGdkdmFsX3QgcGdkKQogewotCWlmIChwZ2QgJiBfUEFHRV9QUkVTRU5UKQotCQlwZ2QgPSBwaHlzX3RvX21hY2hpbmUoWFBBRERSKHBnZCkpLm1hZGRyOwotCi0JcmV0dXJuIChwZ2RfdCl7IHBnZCB9OworCXBnZCA9IHB0ZV9wZm5fdG9fbWZuKHBnZCk7CisJcmV0dXJuIG5hdGl2ZV9tYWtlX3BnZChwZ2QpOwogfQogCiBwbWR2YWxfdCB4ZW5fcG1kX3ZhbChwbWRfdCBwbWQpCiB7Ci0JcG1kdmFsX3QgcmV0ID0gbmF0aXZlX3BtZF92YWwocG1kKTsKLQlpZiAocmV0ICYgX1BBR0VfUFJFU0VOVCkKLQkJcmV0ID0gbWFjaGluZV90b19waHlzKFhNQUREUihyZXQpKS5wYWRkciB8IF9QQUdFX1BSRVNFTlQ7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gcHRlX21mbl90b19wZm4ocG1kLnBtZCk7CiB9Ci0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLXZvaWQgeGVuX3NldF9wdWQocHVkX3QgKnB0ciwgcHVkX3QgdmFsKQorCit2b2lkIHhlbl9zZXRfcHVkX2h5cGVyKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCkKIHsKLQlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIG1jczsKLQlzdHJ1Y3QgbW11X3VwZGF0ZSAqdTsKKwlzdHJ1Y3QgbW11X3VwZGF0ZSB1OwogCiAJcHJlZW1wdF9kaXNhYmxlKCk7CiAKLQltY3MgPSB4ZW5fbWNfZW50cnkoc2l6ZW9mKCp1KSk7Ci0JdSA9IG1jcy5hcmdzOwotCXUtPnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdHIpLm1hZGRyOwotCXUtPnZhbCA9IHB1ZF92YWxfbWEodmFsKTsKLQlNVUxUSV9tbXVfdXBkYXRlKG1jcy5tYywgdSwgMSwgTlVMTCwgRE9NSURfU0VMRik7CisJeGVuX21jX2JhdGNoKCk7CisKKwl1LnB0ciA9IHZpcnRfdG9fbWFjaGluZShwdHIpLm1hZGRyOworCXUudmFsID0gcHVkX3ZhbF9tYSh2YWwpOworCWV4dGVuZF9tbXVfdXBkYXRlKCZ1KTsKIAogCXhlbl9tY19pc3N1ZShQQVJBVklSVF9MQVpZX01NVSk7CiAKIAlwcmVlbXB0X2VuYWJsZSgpOwogfQogCit2b2lkIHhlbl9zZXRfcHVkKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCkKK3sKKwkvKiBJZiBwYWdlIGlzIG5vdCBwaW5uZWQsIHdlIGNhbiBqdXN0IHVwZGF0ZSB0aGUgZW50cnkKKwkgICBkaXJlY3RseSAqLworCWlmICghcGFnZV9waW5uZWQocHRyKSkgeworCQkqcHRyID0gdmFsOworCQlyZXR1cm47CisJfQorCisJeGVuX3NldF9wdWRfaHlwZXIocHRyLCB2YWwpOworfQorCiB2b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCiB7CiAJcHRlcC0+cHRlX2hpZ2ggPSBwdGUucHRlX2hpZ2g7CkBAIC0yNjIsMjIgKzQ2MCwxNCBAQAogCiB2b2lkIHhlbl9wbWRfY2xlYXIocG1kX3QgKnBtZHApCiB7Ci0JeGVuX3NldF9wbWQocG1kcCwgX19wbWQoMCkpOworCXNldF9wbWQocG1kcCwgX19wbWQoMCkpOwogfQogCiBwbWRfdCB4ZW5fbWFrZV9wbWQocG1kdmFsX3QgcG1kKQogewotCWlmIChwbWQgJiBfUEFHRV9QUkVTRU5UKQotCQlwbWQgPSBwaHlzX3RvX21hY2hpbmUoWFBBRERSKHBtZCkpLm1hZGRyOwotCisJcG1kID0gcHRlX3Bmbl90b19tZm4ocG1kKTsKIAlyZXR1cm4gbmF0aXZlX21ha2VfcG1kKHBtZCk7CiB9Ci0jZWxzZSAgLyogIVBBRSAqLwotdm9pZCB4ZW5fc2V0X3B0ZShwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQotewotCSpwdGVwID0gcHRlOwotfQotI2VuZGlmCS8qIENPTkZJR19YODZfUEFFICovCiAKIC8qCiAgIChZZXQgYW5vdGhlcikgcGFnZXRhYmxlIHdhbGtlci4gIFRoaXMgb25lIGlzIGludGVuZGVkIGZvciBwaW5uaW5nIGEKQEAgLTQzMCw4ICs2MjAsNiBAQAogICAgcmVhZC1vbmx5LCBhbmQgY2FuIGJlIHBpbm5lZC4gKi8KIHZvaWQgeGVuX3BnZF9waW4ocGdkX3QgKnBnZCkKIHsKLQl1bnNpZ25lZCBsZXZlbDsKLQogCXhlbl9tY19iYXRjaCgpOwogCiAJaWYgKHBnZF93YWxrKHBnZCwgcGluX3BhZ2UsIFRBU0tfU0laRSkpIHsKQEAgLTQ0MSwxNyArNjI5LDMzIEBACiAJCXhlbl9tY19iYXRjaCgpOwogCX0KIAotI2lmZGVmIENPTkZJR19YODZfUEFFCi0JbGV2ZWwgPSBNTVVFWFRfUElOX0wzX1RBQkxFOwotI2Vsc2UKLQlsZXZlbCA9IE1NVUVYVF9QSU5fTDJfVEFCTEU7Ci0jZW5kaWYKLQotCXhlbl9kb19waW4obGV2ZWwsIFBGTl9ET1dOKF9fcGEocGdkKSkpOwotCisJeGVuX2RvX3BpbihNTVVFWFRfUElOX0wzX1RBQkxFLCBQRk5fRE9XTihfX3BhKHBnZCkpKTsKIAl4ZW5fbWNfaXNzdWUoMCk7CiB9CiAKKy8qCisgKiBPbiBzYXZlLCB3ZSBuZWVkIHRvIHBpbiBhbGwgcGFnZXRhYmxlcyB0byBtYWtlIHN1cmUgdGhleSBnZXQgdGhlaXIKKyAqIG1mbnMgdHVybmVkIGludG8gcGZucy4gIFNlYXJjaCB0aGUgbGlzdCBmb3IgYW55IHVucGlubmVkIHBnZHMgYW5kIHBpbgorICogdGhlbSAodW5waW5uZWQgcGdkcyBhcmUgbm90IGN1cnJlbnRseSBpbiB1c2UsIHByb2JhYmx5IGJlY2F1c2UgdGhlCisgKiBwcm9jZXNzIGlzIHVuZGVyIGNvbnN0cnVjdGlvbiBvciBkZXN0cnVjdGlvbikuCisgKi8KK3ZvaWQgeGVuX21tX3Bpbl9hbGwodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBwYWdlICpwYWdlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhZ2UsICZwZ2RfbGlzdCwgbHJ1KSB7CisJCWlmICghUGFnZVBpbm5lZChwYWdlKSkgeworCQkJeGVuX3BnZF9waW4oKHBnZF90ICopcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCVNldFBhZ2VTYXZlUGlubmVkKHBhZ2UpOworCQl9CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkX2xvY2ssIGZsYWdzKTsKK30KKwogLyogVGhlIGluaXRfbW0gcGFnZXRhYmxlIGlzIHJlYWxseSBwaW5uZWQgYXMgc29vbiBhcyBpdHMgY3JlYXRlZCwgYnV0CiAgICB0aGF0J3MgYmVmb3JlIHdlIGhhdmUgcGFnZSBzdHJ1Y3R1cmVzIHRvIHN0b3JlIHRoZSBiaXRzLiAgU28gZG8gYWxsCiAgICB0aGUgYm9vay1rZWVwaW5nIG5vdy4gKi8KQEAgLTUwOSw2ICs3MTMsMjkgQEAKIAl4ZW5fbWNfaXNzdWUoMCk7CiB9CiAKKy8qCisgKiBPbiByZXN1bWUsIHVuZG8gYW55IHBpbm5pbmcgZG9uZSBhdCBzYXZlLCBzbyB0aGF0IHRoZSByZXN0IG9mIHRoZQorICoga2VybmVsIGRvZXNuJ3Qgc2VlIGFueSB1bmV4cGVjdGVkIHBpbm5lZCBwYWdldGFibGVzLgorICovCit2b2lkIHhlbl9tbV91bnBpbl9hbGwodm9pZCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBwYWdlICpwYWdlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnBnZF9sb2NrLCBmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBhZ2UsICZwZ2RfbGlzdCwgbHJ1KSB7CisJCWlmIChQYWdlU2F2ZVBpbm5lZChwYWdlKSkgeworCQkJQlVHX09OKCFQYWdlUGlubmVkKHBhZ2UpKTsKKwkJCXByaW50aygidW5waW5uaW5nIHBpbm5lZCAlcFxuIiwgcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCXhlbl9wZ2RfdW5waW4oKHBnZF90ICopcGFnZV9hZGRyZXNzKHBhZ2UpKTsKKwkJCUNsZWFyUGFnZVNhdmVQaW5uZWQocGFnZSk7CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RfbG9jaywgZmxhZ3MpOworfQorCiB2b2lkIHhlbl9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KQogewogCXNwaW5fbG9jaygmbmV4dC0+cGFnZV90YWJsZV9sb2NrKTsKQEAgLTYwMiw3ICs4MjksNyBAQAogCXNwaW5fbG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CiAKIAkvKiBwZ2QgbWF5IG5vdCBiZSBwaW5uZWQgaW4gdGhlIGVycm9yIGV4aXQgcGF0aCBvZiBleGVjdmUgKi8KLQlpZiAoUGFnZVBpbm5lZCh2aXJ0X3RvX3BhZ2UobW0tPnBnZCkpKQorCWlmIChwYWdlX3Bpbm5lZChtbS0+cGdkKSkKIAkJeGVuX3BnZF91bnBpbihtbS0+cGdkKTsKIAogCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tbXUuaCBiL2FyY2gveDg2L3hlbi9tbXUuaAppbmRleCBiNWUxODliLi4yOTdiZjlmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmgKKysrIGIvYXJjaC94ODYveGVuL21tdS5oCkBAIC0yNSwxMCArMjUsNiBAQAogCiB2b2lkIHNldF9wdGVfbWZuKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxvbmcgcGZuLCBwZ3Byb3RfdCBmbGFncyk7CiAKLXZvaWQgeGVuX3NldF9wdGUocHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7Ci12b2lkIHhlbl9zZXRfcHRlX2F0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCi0JCSAgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRldmFsKTsKLXZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnBtZHAsIHBtZF90IHBtZHZhbCk7CiAKIHZvaWQgeGVuX2FjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsIHN0cnVjdCBtbV9zdHJ1Y3QgKm5leHQpOwogdm9pZCB4ZW5fZHVwX21tYXAoc3RydWN0IG1tX3N0cnVjdCAqb2xkbW0sIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKQEAgLTM3LDMxICszMywyNyBAQAogdm9pZCB4ZW5fcGdkX3BpbihwZ2RfdCAqcGdkKTsKIC8vdm9pZCB4ZW5fcGdkX3VucGluKHBnZF90ICpwZ2QpOwogCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKLXVuc2lnbmVkIGxvbmcgbG9uZyB4ZW5fcHRlX3ZhbChwdGVfdCk7Ci11bnNpZ25lZCBsb25nIGxvbmcgeGVuX3BtZF92YWwocG1kX3QpOwotdW5zaWduZWQgbG9uZyBsb25nIHhlbl9wZ2RfdmFsKHBnZF90KTsKK3B0ZXZhbF90IHhlbl9wdGVfdmFsKHB0ZV90KTsKK3BtZHZhbF90IHhlbl9wbWRfdmFsKHBtZF90KTsKK3BnZHZhbF90IHhlbl9wZ2RfdmFsKHBnZF90KTsKIAotcHRlX3QgeGVuX21ha2VfcHRlKHVuc2lnbmVkIGxvbmcgbG9uZyk7Ci1wbWRfdCB4ZW5fbWFrZV9wbWQodW5zaWduZWQgbG9uZyBsb25nKTsKLXBnZF90IHhlbl9tYWtlX3BnZCh1bnNpZ25lZCBsb25nIGxvbmcpOworcHRlX3QgeGVuX21ha2VfcHRlKHB0ZXZhbF90KTsKK3BtZF90IHhlbl9tYWtlX3BtZChwbWR2YWxfdCk7CitwZ2RfdCB4ZW5fbWFrZV9wZ2QocGdkdmFsX3QpOwogCit2b2lkIHhlbl9zZXRfcHRlKHB0ZV90ICpwdGVwLCBwdGVfdCBwdGV2YWwpOwogdm9pZCB4ZW5fc2V0X3B0ZV9hdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkgICAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZXZhbCk7CiB2b2lkIHhlbl9zZXRfcHRlX2F0b21pYyhwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKTsKK3ZvaWQgeGVuX3NldF9wbWQocG1kX3QgKnBtZHAsIHBtZF90IHBtZHZhbCk7CiB2b2lkIHhlbl9zZXRfcHVkKHB1ZF90ICpwdHIsIHB1ZF90IHZhbCk7Cit2b2lkIHhlbl9zZXRfcG1kX2h5cGVyKHBtZF90ICpwbWRwLCBwbWRfdCBwbWR2YWwpOwordm9pZCB4ZW5fc2V0X3B1ZF9oeXBlcihwdWRfdCAqcHRyLCBwdWRfdCB2YWwpOwogdm9pZCB4ZW5fcHRlX2NsZWFyKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKIHZvaWQgeGVuX3BtZF9jbGVhcihwbWRfdCAqcG1kcCk7CiAKLQotI2Vsc2UKLXVuc2lnbmVkIGxvbmcgeGVuX3B0ZV92YWwocHRlX3QpOwotdW5zaWduZWQgbG9uZyB4ZW5fcG1kX3ZhbChwbWRfdCk7Ci11bnNpZ25lZCBsb25nIHhlbl9wZ2RfdmFsKHBnZF90KTsKLQotcHRlX3QgeGVuX21ha2VfcHRlKHVuc2lnbmVkIGxvbmcpOwotcG1kX3QgeGVuX21ha2VfcG1kKHVuc2lnbmVkIGxvbmcpOwotcGdkX3QgeGVuX21ha2VfcGdkKHVuc2lnbmVkIGxvbmcpOwotI2VuZGlmCitwdGVfdCB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9zdGFydChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCk7Cit2b2lkICB4ZW5fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpOwogCiAjZW5kaWYJLyogX1hFTl9NTVVfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuYyBiL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmMKaW5kZXggNTc5MWViMi4uM2M2M2M0ZCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL211bHRpY2FsbHMuYworKysgYi9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5jCkBAIC0yOSwxNCArMjksMTQgQEAKICNkZWZpbmUgTUNfREVCVUcJMQogCiAjZGVmaW5lIE1DX0JBVENICTMyCi0jZGVmaW5lIE1DX0FSR1MJCShNQ19CQVRDSCAqIDE2IC8gc2l6ZW9mKHU2NCkpCisjZGVmaW5lIE1DX0FSR1MJCShNQ19CQVRDSCAqIDE2KQogCiBzdHJ1Y3QgbWNfYnVmZmVyIHsKIAlzdHJ1Y3QgbXVsdGljYWxsX2VudHJ5IGVudHJpZXNbTUNfQkFUQ0hdOwogI2lmIE1DX0RFQlVHCiAJc3RydWN0IG11bHRpY2FsbF9lbnRyeSBkZWJ1Z1tNQ19CQVRDSF07CiAjZW5kaWYKLQl1NjQgYXJnc1tNQ19BUkdTXTsKKwl1bnNpZ25lZCBjaGFyIGFyZ3NbTUNfQVJHU107CiAJc3RydWN0IGNhbGxiYWNrIHsKIAkJdm9pZCAoKmZuKSh2b2lkICopOwogCQl2b2lkICpkYXRhOwpAQCAtMTA3LDIwICsxMDcsNDggQEAKIHsKIAlzdHJ1Y3QgbWNfYnVmZmVyICpiID0gJl9fZ2V0X2NwdV92YXIobWNfYnVmZmVyKTsKIAlzdHJ1Y3QgbXVsdGljYWxsX3NwYWNlIHJldDsKLQl1bnNpZ25lZCBhcmdzcGFjZSA9IChhcmdzICsgc2l6ZW9mKHU2NCkgLSAxKSAvIHNpemVvZih1NjQpOworCXVuc2lnbmVkIGFyZ2lkeCA9IHJvdW5kdXAoYi0+YXJnaWR4LCBzaXplb2YodTY0KSk7CiAKIAlCVUdfT04ocHJlZW1wdGlibGUoKSk7Ci0JQlVHX09OKGFyZ3NwYWNlID4gTUNfQVJHUyk7CisJQlVHX09OKGItPmFyZ2lkeCA+IE1DX0FSR1MpOwogCiAJaWYgKGItPm1jaWR4ID09IE1DX0JBVENIIHx8Ci0JICAgIChiLT5hcmdpZHggKyBhcmdzcGFjZSkgPiBNQ19BUkdTKQorCSAgICAoYXJnaWR4ICsgYXJncykgPiBNQ19BUkdTKSB7CiAJCXhlbl9tY19mbHVzaCgpOworCQlhcmdpZHggPSByb3VuZHVwKGItPmFyZ2lkeCwgc2l6ZW9mKHU2NCkpOworCX0KIAogCXJldC5tYyA9ICZiLT5lbnRyaWVzW2ItPm1jaWR4XTsKIAliLT5tY2lkeCsrOwotCXJldC5hcmdzID0gJmItPmFyZ3NbYi0+YXJnaWR4XTsKLQliLT5hcmdpZHggKz0gYXJnc3BhY2U7CisJcmV0LmFyZ3MgPSAmYi0+YXJnc1thcmdpZHhdOworCWItPmFyZ2lkeCA9IGFyZ2lkeCArIGFyZ3M7CiAKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CisJcmV0dXJuIHJldDsKK30KKworc3RydWN0IG11bHRpY2FsbF9zcGFjZSB4ZW5fbWNfZXh0ZW5kX2FyZ3ModW5zaWduZWQgbG9uZyBvcCwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IG1jX2J1ZmZlciAqYiA9ICZfX2dldF9jcHVfdmFyKG1jX2J1ZmZlcik7CisJc3RydWN0IG11bHRpY2FsbF9zcGFjZSByZXQgPSB7IE5VTEwsIE5VTEwgfTsKKworCUJVR19PTihwcmVlbXB0aWJsZSgpKTsKKwlCVUdfT04oYi0+YXJnaWR4ID4gTUNfQVJHUyk7CisKKwlpZiAoYi0+bWNpZHggPT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWlmIChiLT5lbnRyaWVzW2ItPm1jaWR4IC0gMV0ub3AgIT0gb3ApCisJCXJldHVybiByZXQ7CisKKwlpZiAoKGItPmFyZ2lkeCArIHNpemUpID4gTUNfQVJHUykKKwkJcmV0dXJuIHJldDsKKworCXJldC5tYyA9ICZiLT5lbnRyaWVzW2ItPm1jaWR4IC0gMV07CisJcmV0LmFyZ3MgPSAmYi0+YXJnc1tiLT5hcmdpZHhdOworCWItPmFyZ2lkeCArPSBzaXplOworCisJQlVHX09OKGItPmFyZ2lkeCA+IE1DX0FSR1MpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmggYi9hcmNoL3g4Ni94ZW4vbXVsdGljYWxscy5oCmluZGV4IDhiYWU5OTYuLjg1ODkzODIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9tdWx0aWNhbGxzLmgKKysrIGIvYXJjaC94ODYveGVuL211bHRpY2FsbHMuaApAQCAtNDUsNCArNDUsMTYgQEAKIC8qIFNldCB1cCBhIGNhbGxiYWNrIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBjdXJyZW50IGJhdGNoIGlzIGZsdXNoZWQgKi8KIHZvaWQgeGVuX21jX2NhbGxiYWNrKHZvaWQgKCpmbikodm9pZCAqKSwgdm9pZCAqZGF0YSk7CiAKKy8qCisgKiBUcnkgdG8gZXh0ZW5kIHRoZSBhcmd1bWVudHMgb2YgdGhlIHByZXZpb3VzIG11bHRpY2FsbCBjb21tYW5kLiAgVGhlCisgKiBwcmV2aW91cyBjb21tYW5kJ3Mgb3AgbXVzdCBtYXRjaC4gIElmIGl0IGRvZXMsIHRoZW4gaXQgYXR0ZW1wdHMgdG8KKyAqIGV4dGVuZCB0aGUgYXJndW1lbnQgc3BhY2UgYWxsb2NhdGVkIHRvIHRoZSBtdWx0aWNhbGwgZW50cnkgYnkKKyAqIGFyZ19zaXplIGJ5dGVzLgorICoKKyAqIFRoZSByZXR1cm5lZCBtdWx0aWNhbGxfc3BhY2Ugd2lsbCByZXR1cm4gd2l0aCBtYyBwb2ludGluZyB0byB0aGUKKyAqIGNvbW1hbmQgb24gc3VjY2Vzcywgb3IgTlVMTCBvbiBmYWlsdXJlLCBhbmQgYXJncyBwb2ludGluZyB0byB0aGUKKyAqIG5ld2x5IGFsbG9jYXRlZCBzcGFjZS4KKyAqLworc3RydWN0IG11bHRpY2FsbF9zcGFjZSB4ZW5fbWNfZXh0ZW5kX2FyZ3ModW5zaWduZWQgbG9uZyBvcCwgc2l6ZV90IGFyZ19zaXplKTsKKwogI2VuZGlmIC8qIF9YRU5fTVVMVElDQUxMU19IICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc2V0dXAuYyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCmluZGV4IDgyNTE3ZTQuLmUwYTM5NTkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9zZXR1cC5jCisrKyBiL2FyY2gveDg2L3hlbi9zZXR1cC5jCkBAIC0xMyw5ICsxMywxMSBAQAogI2luY2x1ZGUgPGFzbS92ZHNvLmg+CiAjaW5jbHVkZSA8YXNtL2U4MjAuaD4KICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KKyNpbmNsdWRlIDxhc20vYWNwaS5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKKyNpbmNsdWRlIDx4ZW4vcGFnZS5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvY2FsbGJhY2suaD4KICNpbmNsdWRlIDx4ZW4vaW50ZXJmYWNlL3BoeXNkZXYuaD4KICNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KQEAgLTI3LDggKzI5LDYgQEAKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9oeXBlcnZpc29yX2NhbGxiYWNrW107CiBleHRlcm4gY29uc3QgY2hhciB4ZW5fZmFpbHNhZmVfY2FsbGJhY2tbXTsKIAotdW5zaWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7Ci1FWFBPUlRfU1lNQk9MKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nKTsKIAogLyoqCiAgKiBtYWNoaW5lX3NwZWNpZmljX21lbW9yeV9zZXR1cCAtIEhvb2sgZm9yIG1hY2hpbmUgc3BlY2lmaWMgbWVtb3J5IHNldHVwLgpAQCAtMzgsOSArMzgsMzEgQEAKIHsKIAl1bnNpZ25lZCBsb25nIG1heF9wZm4gPSB4ZW5fc3RhcnRfaW5mby0+bnJfcGFnZXM7CiAKKwltYXhfcGZuID0gbWluKE1BWF9ET01BSU5fUEFHRVMsIG1heF9wZm4pOworCiAJZTgyMC5ucl9tYXAgPSAwOwotCWFkZF9tZW1vcnlfcmVnaW9uKDAsIExPV01FTVNJWkUoKSwgRTgyMF9SQU0pOwotCWFkZF9tZW1vcnlfcmVnaW9uKEhJR0hfTUVNT1JZLCBQRk5fUEhZUyhtYXhfcGZuKS1ISUdIX01FTU9SWSwgRTgyMF9SQU0pOworCisJZTgyMF9hZGRfcmVnaW9uKDAsIFBGTl9QSFlTKG1heF9wZm4pLCBFODIwX1JBTSk7CisKKwkvKgorCSAqIEV2ZW4gdGhvdWdoIHRoaXMgaXMgbm9ybWFsLCB1c2FibGUgbWVtb3J5IHVuZGVyIFhlbiwgcmVzZXJ2ZQorCSAqIElTQSBtZW1vcnkgYW55d2F5IGJlY2F1c2UgdG9vIG1hbnkgdGhpbmdzIHRoaW5rIHRoZXkgY2FuIHBva2UKKwkgKiBhYm91dCBpbiB0aGVyZS4KKwkgKi8KKwllODIwX2FkZF9yZWdpb24oSVNBX1NUQVJUX0FERFJFU1MsIElTQV9FTkRfQUREUkVTUyAtIElTQV9TVEFSVF9BRERSRVNTLAorCQkJRTgyMF9SRVNFUlZFRCk7CisKKwkvKgorCSAqIFJlc2VydmUgWGVuIGJpdHM6CisJICogIC0gbWZuX2xpc3QKKwkgKiAgLSB4ZW5fc3RhcnRfaW5mbworCSAqIFNlZSBjb21tZW50IGFib3ZlICJzdHJ1Y3Qgc3RhcnRfaW5mbyIgaW4gPHhlbi9pbnRlcmZhY2UveGVuLmg+CisJICovCisJZTgyMF9hZGRfcmVnaW9uKF9fcGEoeGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0KSwKKwkJCXhlbl9zdGFydF9pbmZvLT5wdF9iYXNlIC0geGVuX3N0YXJ0X2luZm8tPm1mbl9saXN0LAorCQkJRTgyMF9SRVNFUlZFRCk7CisKKwlzYW5pdGl6ZV9lODIwX21hcChlODIwLm1hcCwgQVJSQVlfU0laRShlODIwLm1hcCksICZlODIwLm5yX21hcCk7CiAKIAlyZXR1cm4gIlhlbiI7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vc21wLmMgYi9hcmNoL3g4Ni94ZW4vc21wLmMKaW5kZXggOTRlNjkwMC4uZDJlM2MyMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3NtcC5jCisrKyBiL2FyY2gveDg2L3hlbi9zbXAuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgInhlbi1vcHMuaCIKICNpbmNsdWRlICJtbXUuaCIKIAotc3RhdGljIGNwdW1hc2tfdCB4ZW5fY3B1X2luaXRpYWxpemVkX21hcDsKK2NwdW1hc2tfdCB4ZW5fY3B1X2luaXRpYWxpemVkX21hcDsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIHJlc2NoZWRfaXJxKSA9IC0xOwogc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgY2FsbGZ1bmNfaXJxKSA9IC0xOwogc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgZGVidWdfaXJxKSA9IC0xOwpAQCAtNjUsNiArNjUsMTIgQEAKICAqLwogc3RhdGljIGlycXJldHVybl90IHhlbl9yZXNjaGVkdWxlX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl8zMgorCV9fZ2V0X2NwdV92YXIoaXJxX3N0YXQpLmlycV9yZXNjaGVkX2NvdW50Kys7CisjZWxzZQorCWFkZF9wZGEoaXJxX3Jlc2NoZWRfY291bnQsIDEpOworI2VuZGlmCisKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zdXNwZW5kLmMgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1MTY2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni94ZW4vc3VzcGVuZC5jCkBAIC0wLDAgKzEsNDUgQEAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjaW5jbHVkZSA8eGVuL2ludGVyZmFjZS94ZW4uaD4KKyNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnRzLmg+CisKKyNpbmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgorI2luY2x1ZGUgPGFzbS94ZW4vcGFnZS5oPgorCisjaW5jbHVkZSAieGVuLW9wcy5oIgorI2luY2x1ZGUgIm1tdS5oIgorCit2b2lkIHhlbl9wcmVfc3VzcGVuZCh2b2lkKQoreworCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPSBtZm5fdG9fcGZuKHhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4pOworCXhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUubWZuID0KKwkJbWZuX3RvX3Bmbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisKKwlCVUdfT04oIWlycXNfZGlzYWJsZWQoKSk7CisKKwlIWVBFUlZJU09SX3NoYXJlZF9pbmZvID0gJnhlbl9kdW1teV9zaGFyZWRfaW5mbzsKKwlpZiAoSFlQRVJWSVNPUl91cGRhdGVfdmFfbWFwcGluZyhmaXhfdG9fdmlydChGSVhfUEFSQVZJUlRfQk9PVE1BUCksCisJCQkJCSBfX3B0ZV9tYSgwKSwgMCkpCisJCUJVRygpOworfQorCit2b2lkIHhlbl9wb3N0X3N1c3BlbmQoaW50IHN1c3BlbmRfY2FuY2VsbGVkKQoreworCXhlbl9zZXR1cF9zaGFyZWRfaW5mbygpOworCisJaWYgKHN1c3BlbmRfY2FuY2VsbGVkKSB7CisJCXhlbl9zdGFydF9pbmZvLT5zdG9yZV9tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+c3RvcmVfbWZuKTsKKwkJeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5tZm4gPQorCQkJcGZuX3RvX21mbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisJfSBlbHNlIHsKKyNpZmRlZiBDT05GSUdfU01QCisJCXhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwID0gY3B1X29ubGluZV9tYXA7CisjZW5kaWYKKwkJeGVuX3ZjcHVfcmVzdG9yZSgpOworCQl4ZW5fdGltZXJfcmVzdW1lKCk7CisJfQorCit9CisKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3hlbi90aW1lLmMgYi9hcmNoL3g4Ni94ZW4vdGltZS5jCmluZGV4IGMzOWUxYTUuLjY4NWI3NzQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi90aW1lLmMKKysrIGIvYXJjaC94ODYveGVuL3RpbWUuYwpAQCAtMTIsNyArMTIsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CiAjaW5jbHVkZSA8bGludXgvY2xvY2tjaGlwcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbF9zdGF0Lmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAKKyNpbmNsdWRlIDxhc20vcHZjbG9jay5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJ2aXNvci5oPgogI2luY2x1ZGUgPGFzbS94ZW4vaHlwZXJjYWxsLmg+CiAKQEAgLTMwLDE3ICszMiw2IEBACiAKIHN0YXRpYyBjeWNsZV90IHhlbl9jbG9ja3NvdXJjZV9yZWFkKHZvaWQpOwogCi0vKiBUaGVzZSBhcmUgcGVyb2RpY2FsbHkgdXBkYXRlZCBpbiBzaGFyZWRfaW5mbywgYW5kIHRoZW4gY29waWVkIGhlcmUuICovCi1zdHJ1Y3Qgc2hhZG93X3RpbWVfaW5mbyB7Ci0JdTY0IHRzY190aW1lc3RhbXA7ICAgICAvKiBUU0MgYXQgbGFzdCB1cGRhdGUgb2YgdGltZSB2YWxzLiAgKi8KLQl1NjQgc3lzdGVtX3RpbWVzdGFtcDsgIC8qIFRpbWUsIGluIG5hbm9zZWNzLCBzaW5jZSBib290LiAgICAqLwotCXUzMiB0c2NfdG9fbnNlY19tdWw7Ci0JaW50IHRzY19zaGlmdDsKLQl1MzIgdmVyc2lvbjsKLX07Ci0KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2hhZG93X3RpbWVfaW5mbywgc2hhZG93X3RpbWUpOwotCiAvKiBydW5zdGF0ZSBpbmZvIHVwZGF0ZWQgYnkgWGVuICovCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHZjcHVfcnVuc3RhdGVfaW5mbywgcnVuc3RhdGUpOwogCkBAIC0xNTAsMTEgKzE0MSw3IEBACiAJaWYgKHN0b2xlbiA8IDApCiAJCXN0b2xlbiA9IDA7CiAKLQl0aWNrcyA9IDA7Ci0Jd2hpbGUgKHN0b2xlbiA+PSBOU19QRVJfVElDSykgewotCQl0aWNrcysrOwotCQlzdG9sZW4gLT0gTlNfUEVSX1RJQ0s7Ci0JfQorCXRpY2tzID0gaXRlcl9kaXZfdTY0X3JlbShzdG9sZW4sIE5TX1BFUl9USUNLLCAmc3RvbGVuKTsKIAlfX2dldF9jcHVfdmFyKHJlc2lkdWFsX3N0b2xlbikgPSBzdG9sZW47CiAJYWNjb3VudF9zdGVhbF90aW1lKE5VTEwsIHRpY2tzKTsKIApAQCAtMTY2LDExICsxNTMsNyBAQAogCWlmIChibG9ja2VkIDwgMCkKIAkJYmxvY2tlZCA9IDA7CiAKLQl0aWNrcyA9IDA7Ci0Jd2hpbGUgKGJsb2NrZWQgPj0gTlNfUEVSX1RJQ0spIHsKLQkJdGlja3MrKzsKLQkJYmxvY2tlZCAtPSBOU19QRVJfVElDSzsKLQl9CisJdGlja3MgPSBpdGVyX2Rpdl91NjRfcmVtKGJsb2NrZWQsIE5TX1BFUl9USUNLLCAmYmxvY2tlZCk7CiAJX19nZXRfY3B1X3ZhcihyZXNpZHVhbF9ibG9ja2VkKSA9IGJsb2NrZWQ7CiAJYWNjb3VudF9zdGVhbF90aW1lKGlkbGVfdGFzayhzbXBfcHJvY2Vzc29yX2lkKCkpLCB0aWNrcyk7CiB9CkBAIC0yMTQsMTEgKzE5NywxMSBAQAogfQogCiAKLS8qIEdldCB0aGUgQ1BVIHNwZWVkIGZyb20gWGVuICovCi11bnNpZ25lZCBsb25nIHhlbl9jcHVfa2h6KHZvaWQpCisvKiBHZXQgdGhlIFRTQyBzcGVlZCBmcm9tIFhlbiAqLwordW5zaWduZWQgbG9uZyB4ZW5fdHNjX2toeih2b2lkKQogewogCXU2NCB4ZW5fa2h6ID0gMTAwMDAwMFVMTCA8PCAzMjsKLQljb25zdCBzdHJ1Y3QgdmNwdV90aW1lX2luZm8gKmluZm8gPQorCWNvbnN0IHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICppbmZvID0KIAkJJkhZUEVSVklTT1Jfc2hhcmVkX2luZm8tPnZjcHVfaW5mb1swXS50aW1lOwogCiAJZG9fZGl2KHhlbl9raHosIGluZm8tPnRzY190b19zeXN0ZW1fbXVsKTsKQEAgLTIzMCwxMjEgKzIxMywyNiBAQAogCXJldHVybiB4ZW5fa2h6OwogfQogCi0vKgotICogUmVhZHMgYSBjb25zaXN0ZW50IHNldCBvZiB0aW1lLWJhc2UgdmFsdWVzIGZyb20gWGVuLCBpbnRvIGEgc2hhZG93IGRhdGEKLSAqIGFyZWEuCi0gKi8KLXN0YXRpYyB1bnNpZ25lZCBnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4odm9pZCkKLXsKLQlzdHJ1Y3QgdmNwdV90aW1lX2luZm8gICAqc3JjOwotCXN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpkc3Q7Ci0KLQkvKiBzcmMgaXMgc2hhcmVkIG1lbW9yeSB3aXRoIHRoZSBoeXBlcnZpc29yLCBzbyB3ZSBuZWVkIHRvCi0JICAgbWFrZSBzdXJlIHdlIGdldCBhIGNvbnNpc3RlbnQgc25hcHNob3QsIGV2ZW4gaW4gdGhlIGZhY2Ugb2YKLQkgICBiZWluZyBwcmVlbXB0ZWQuICovCi0Jc3JjID0gJl9fZ2V0X2NwdV92YXIoeGVuX3ZjcHUpLT50aW1lOwotCWRzdCA9ICZfX2dldF9jcHVfdmFyKHNoYWRvd190aW1lKTsKLQotCWRvIHsKLQkJZHN0LT52ZXJzaW9uID0gc3JjLT52ZXJzaW9uOwotCQlybWIoKTsJCS8qIGZldGNoIHZlcnNpb24gYmVmb3JlIGRhdGEgKi8KLQkJZHN0LT50c2NfdGltZXN0YW1wICAgICA9IHNyYy0+dHNjX3RpbWVzdGFtcDsKLQkJZHN0LT5zeXN0ZW1fdGltZXN0YW1wICA9IHNyYy0+c3lzdGVtX3RpbWU7Ci0JCWRzdC0+dHNjX3RvX25zZWNfbXVsICAgPSBzcmMtPnRzY190b19zeXN0ZW1fbXVsOwotCQlkc3QtPnRzY19zaGlmdCAgICAgICAgID0gc3JjLT50c2Nfc2hpZnQ7Ci0JCXJtYigpOwkJLyogdGVzdCB2ZXJzaW9uIGFmdGVyIGZldGNoaW5nIGRhdGEgKi8KLQl9IHdoaWxlICgoc3JjLT52ZXJzaW9uICYgMSkgfCAoZHN0LT52ZXJzaW9uIF4gc3JjLT52ZXJzaW9uKSk7Ci0KLQlyZXR1cm4gZHN0LT52ZXJzaW9uOwotfQotCi0vKgotICogU2NhbGUgYSA2NC1iaXQgZGVsdGEgYnkgc2NhbGluZyBhbmQgbXVsdGlwbHlpbmcgYnkgYSAzMi1iaXQgZnJhY3Rpb24sCi0gKiB5aWVsZGluZyBhIDY0LWJpdCByZXN1bHQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdTY0IHNjYWxlX2RlbHRhKHU2NCBkZWx0YSwgdTMyIG11bF9mcmFjLCBpbnQgc2hpZnQpCi17Ci0JdTY0IHByb2R1Y3Q7Ci0jaWZkZWYgX19pMzg2X18KLQl1MzIgdG1wMSwgdG1wMjsKLSNlbmRpZgotCi0JaWYgKHNoaWZ0IDwgMCkKLQkJZGVsdGEgPj49IC1zaGlmdDsKLQllbHNlCi0JCWRlbHRhIDw8PSBzaGlmdDsKLQotI2lmZGVmIF9faTM4Nl9fCi0JX19hc21fXyAoCi0JCSJtdWwgICU1ICAgICAgIDsgIgotCQkibW92ICAlNCwlJWVheCA7ICIKLQkJIm1vdiAgJSVlZHgsJTQgOyAiCi0JCSJtdWwgICU1ICAgICAgIDsgIgotCQkieG9yICAlNSwlNSAgICA7ICIKLQkJImFkZCAgJTQsJSVlYXggOyAiCi0JCSJhZGMgICU1LCUlZWR4IDsgIgotCQk6ICI9QSIgKHByb2R1Y3QpLCAiPXIiICh0bXAxKSwgIj1yIiAodG1wMikKLQkJOiAiYSIgKCh1MzIpZGVsdGEpLCAiMSIgKCh1MzIpKGRlbHRhID4+IDMyKSksICIyIiAobXVsX2ZyYWMpICk7Ci0jZWxpZiBfX3g4Nl82NF9fCi0JX19hc21fXyAoCi0JCSJtdWwgJSVyZHggOyBzaHJkICQzMiwlJXJkeCwlJXJheCIKLQkJOiAiPWEiIChwcm9kdWN0KSA6ICIwIiAoZGVsdGEpLCAiZCIgKCh1NjQpbXVsX2ZyYWMpICk7Ci0jZWxzZQotI2Vycm9yIGltcGxlbWVudCBtZSEKLSNlbmRpZgotCi0JcmV0dXJuIHByb2R1Y3Q7Ci19Ci0KLXN0YXRpYyB1NjQgZ2V0X25zZWNfb2Zmc2V0KHN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpzaGFkb3cpCi17Ci0JdTY0IG5vdywgZGVsdGE7Ci0Jbm93ID0gbmF0aXZlX3JlYWRfdHNjKCk7Ci0JZGVsdGEgPSBub3cgLSBzaGFkb3ctPnRzY190aW1lc3RhbXA7Ci0JcmV0dXJuIHNjYWxlX2RlbHRhKGRlbHRhLCBzaGFkb3ctPnRzY190b19uc2VjX211bCwgc2hhZG93LT50c2Nfc2hpZnQpOwotfQotCiBzdGF0aWMgY3ljbGVfdCB4ZW5fY2xvY2tzb3VyY2VfcmVhZCh2b2lkKQogewotCXN0cnVjdCBzaGFkb3dfdGltZV9pbmZvICpzaGFkb3cgPSAmZ2V0X2NwdV92YXIoc2hhZG93X3RpbWUpOworICAgICAgICBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjOwogCWN5Y2xlX3QgcmV0OwotCXVuc2lnbmVkIHZlcnNpb247CiAKLQlkbyB7Ci0JCXZlcnNpb24gPSBnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4oKTsKLQkJYmFycmllcigpOwotCQlyZXQgPSBzaGFkb3ctPnN5c3RlbV90aW1lc3RhbXAgKyBnZXRfbnNlY19vZmZzZXQoc2hhZG93KTsKLQkJYmFycmllcigpOwotCX0gd2hpbGUgKHZlcnNpb24gIT0gX19nZXRfY3B1X3Zhcih4ZW5fdmNwdSktPnRpbWUudmVyc2lvbik7Ci0KLQlwdXRfY3B1X3ZhcihzaGFkb3dfdGltZSk7Ci0KKwlzcmMgPSAmZ2V0X2NwdV92YXIoeGVuX3ZjcHUpLT50aW1lOworCXJldCA9IHB2Y2xvY2tfY2xvY2tzb3VyY2VfcmVhZChzcmMpOworCXB1dF9jcHVfdmFyKHhlbl92Y3B1KTsKIAlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCB4ZW5fcmVhZF93YWxsY2xvY2soc3RydWN0IHRpbWVzcGVjICp0cykKIHsKLQljb25zdCBzdHJ1Y3Qgc2hhcmVkX2luZm8gKnMgPSBIWVBFUlZJU09SX3NoYXJlZF9pbmZvOwotCXUzMiB2ZXJzaW9uOwotCXU2NCBkZWx0YTsKLQlzdHJ1Y3QgdGltZXNwZWMgbm93OworCXN0cnVjdCBzaGFyZWRfaW5mbyAqcyA9IEhZUEVSVklTT1Jfc2hhcmVkX2luZm87CisJc3RydWN0IHB2Y2xvY2tfd2FsbF9jbG9jayAqd2FsbF9jbG9jayA9ICYocy0+d2MpOworICAgICAgICBzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqdmNwdV90aW1lOwogCi0JLyogZ2V0IHdhbGxjbG9jayBhdCBzeXN0ZW0gYm9vdCAqLwotCWRvIHsKLQkJdmVyc2lvbiA9IHMtPndjX3ZlcnNpb247Ci0JCXJtYigpOwkJLyogZmV0Y2ggdmVyc2lvbiBiZWZvcmUgdGltZSAqLwotCQlub3cudHZfc2VjICA9IHMtPndjX3NlYzsKLQkJbm93LnR2X25zZWMgPSBzLT53Y19uc2VjOwotCQlybWIoKTsJCS8qIGZldGNoIHRpbWUgYmVmb3JlIGNoZWNraW5nIHZlcnNpb24gKi8KLQl9IHdoaWxlICgocy0+d2NfdmVyc2lvbiAmIDEpIHwgKHZlcnNpb24gXiBzLT53Y192ZXJzaW9uKSk7Ci0KLQlkZWx0YSA9IHhlbl9jbG9ja3NvdXJjZV9yZWFkKCk7CS8qIHRpbWUgc2luY2Ugc3lzdGVtIGJvb3QgKi8KLQlkZWx0YSArPSBub3cudHZfc2VjICogKHU2NClOU0VDX1BFUl9TRUMgKyBub3cudHZfbnNlYzsKLQotCW5vdy50dl9uc2VjID0gZG9fZGl2KGRlbHRhLCBOU0VDX1BFUl9TRUMpOwotCW5vdy50dl9zZWMgPSBkZWx0YTsKLQotCXNldF9ub3JtYWxpemVkX3RpbWVzcGVjKHRzLCBub3cudHZfc2VjLCBub3cudHZfbnNlYyk7CisJdmNwdV90aW1lID0gJmdldF9jcHVfdmFyKHhlbl92Y3B1KS0+dGltZTsKKwlwdmNsb2NrX3JlYWRfd2FsbGNsb2NrKHdhbGxfY2xvY2ssIHZjcHVfdGltZSwgdHMpOworCXB1dF9jcHVfdmFyKHhlbl92Y3B1KTsKIH0KIAogdW5zaWduZWQgbG9uZyB4ZW5fZ2V0X3dhbGxjbG9jayh2b2lkKQpAQCAtMzUyLDcgKzI0MCw2IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCiAJeGVuX3JlYWRfd2FsbGNsb2NrKCZ0cyk7Ci0KIAlyZXR1cm4gdHMudHZfc2VjOwogfQogCkBAIC01NzIsMTIgKzQ1OSwyMyBAQAogCWNsb2NrZXZlbnRzX3JlZ2lzdGVyX2RldmljZSgmX19nZXRfY3B1X3Zhcih4ZW5fY2xvY2tfZXZlbnRzKSk7CiB9CiAKK3ZvaWQgeGVuX3RpbWVyX3Jlc3VtZSh2b2lkKQoreworCWludCBjcHU7CisKKwlpZiAoeGVuX2Nsb2NrZXZlbnQgIT0gJnhlbl92Y3B1b3BfY2xvY2tldmVudCkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKKwkJaWYgKEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1Bfc3RvcF9wZXJpb2RpY190aW1lciwgY3B1LCBOVUxMKSkKKwkJCUJVRygpOworCX0KK30KKwogX19pbml0IHZvaWQgeGVuX3RpbWVfaW5pdCh2b2lkKQogewogCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAKLQlnZXRfdGltZV92YWx1ZXNfZnJvbV94ZW4oKTsKLQogCWNsb2Nrc291cmNlX3JlZ2lzdGVyKCZ4ZW5fY2xvY2tzb3VyY2UpOwogCiAJaWYgKEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1Bfc3RvcF9wZXJpb2RpY190aW1lciwgY3B1LCBOVUxMKSA9PSAwKSB7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLWhlYWQuUyBiL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCmluZGV4IDI4OGQ1ODcuLjdjMGNmNjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCisrKyBiL2FyY2gveDg2L3hlbi94ZW4taGVhZC5TCkBAIC03LDYgKzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxhc20vYm9vdC5oPgogI2luY2x1ZGUgPHhlbi9pbnRlcmZhY2UvZWxmbm90ZS5oPgorI2luY2x1ZGUgPGFzbS94ZW4vaW50ZXJmYWNlLmg+CiAKIAlfX0lOSVQKIEVOVFJZKHN0YXJ0dXBfeGVuKQpAQCAtMTcsNyArMTgsNyBAQAogCiAJX19GSU5JVAogCi0ucHVzaHNlY3Rpb24gLmJzcy5wYWdlX2FsaWduZWQKKy5wdXNoc2VjdGlvbiAudGV4dAogCS5hbGlnbiBQQUdFX1NJWkVfYXNtCiBFTlRSWShoeXBlcmNhbGxfcGFnZSkKIAkuc2tpcCAweDEwMDAKQEAgLTMwLDExICszMSwxMSBAQAogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9FTlRSWSwgICAgICAgICAgLmxvbmcgIHN0YXJ0dXBfeGVuKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9IWVBFUkNBTExfUEFHRSwgLmxvbmcgIGh5cGVyY2FsbF9wYWdlKQogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9GRUFUVVJFUywgICAgICAgLmFzY2l6ICIhd3JpdGFibGVfcGFnZV90YWJsZXN8cGFlX3BnZGlyX2Fib3ZlXzRnYiIpCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKIAlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfUEFFX01PREUsICAgICAgIC5hc2NpeiAieWVzIikKLSNlbHNlCi0JRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX1BBRV9NT0RFLCAgICAgICAuYXNjaXogIm5vIikKLSNlbmRpZgogCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9MT0FERVIsICAgICAgICAgLmFzY2l6ICJnZW5lcmljIikKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfTDFfTUZOX1ZBTElELAorCQkucXVhZCBfUEFHRV9QUkVTRU5UOyAucXVhZCBfUEFHRV9QUkVTRU5UKQorCUVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCwgLmxvbmcgMSkKKwlFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfSFZfU1RBUlRfTE9XLCAgIC5sb25nIF9fSFlQRVJWSVNPUl9WSVJUX1NUQVJUKQogCiAjZW5kaWYgLypDT05GSUdfWEVOICovCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oIGIvYXJjaC94ODYveGVuL3hlbi1vcHMuaAppbmRleCBmMTA2M2FlLi5kODUyZGRiIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4veGVuLW9wcy5oCisrKyBiL2FyY2gveDg2L3hlbi94ZW4tb3BzLmgKQEAgLTksMjYgKzksMzUgQEAKIGV4dGVybiBjb25zdCBjaGFyIHhlbl9oeXBlcnZpc29yX2NhbGxiYWNrW107CiBleHRlcm4gY29uc3QgY2hhciB4ZW5fZmFpbHNhZmVfY2FsbGJhY2tbXTsKIAorc3RydWN0IHRyYXBfaW5mbzsKIHZvaWQgeGVuX2NvcHlfdHJhcF9pbmZvKHN0cnVjdCB0cmFwX2luZm8gKnRyYXBzKTsKIAogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jcjMpOwogREVDTEFSRV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIHhlbl9jdXJyZW50X2NyMyk7CiAKIGV4dGVybiBzdHJ1Y3Qgc3RhcnRfaW5mbyAqeGVuX3N0YXJ0X2luZm87CitleHRlcm4gc3RydWN0IHNoYXJlZF9pbmZvIHhlbl9kdW1teV9zaGFyZWRfaW5mbzsKIGV4dGVybiBzdHJ1Y3Qgc2hhcmVkX2luZm8gKkhZUEVSVklTT1Jfc2hhcmVkX2luZm87CiAKK3ZvaWQgeGVuX3NldHVwX21mbl9saXN0X2xpc3Qodm9pZCk7Cit2b2lkIHhlbl9zZXR1cF9zaGFyZWRfaW5mbyh2b2lkKTsKKwogY2hhciAqIF9faW5pdCB4ZW5fbWVtb3J5X3NldHVwKHZvaWQpOwogdm9pZCBfX2luaXQgeGVuX2FyY2hfc2V0dXAodm9pZCk7CiB2b2lkIF9faW5pdCB4ZW5faW5pdF9JUlEodm9pZCk7CiB2b2lkIHhlbl9lbmFibGVfc3lzZW50ZXIodm9pZCk7Cit2b2lkIHhlbl92Y3B1X3Jlc3RvcmUodm9pZCk7CisKK3ZvaWQgX19pbml0IHhlbl9idWlsZF9keW5hbWljX3BoeXNfdG9fbWFjaGluZSh2b2lkKTsKIAogdm9pZCB4ZW5fc2V0dXBfdGltZXIoaW50IGNwdSk7CiB2b2lkIHhlbl9zZXR1cF9jcHVfY2xvY2tldmVudHModm9pZCk7Ci11bnNpZ25lZCBsb25nIHhlbl9jcHVfa2h6KHZvaWQpOwordW5zaWduZWQgbG9uZyB4ZW5fdHNjX2toeih2b2lkKTsKIHZvaWQgX19pbml0IHhlbl90aW1lX2luaXQodm9pZCk7CiB1bnNpZ25lZCBsb25nIHhlbl9nZXRfd2FsbGNsb2NrKHZvaWQpOwogaW50IHhlbl9zZXRfd2FsbGNsb2NrKHVuc2lnbmVkIGxvbmcgdGltZSk7CiB1bnNpZ25lZCBsb25nIGxvbmcgeGVuX3NjaGVkX2Nsb2NrKHZvaWQpOwordm9pZCB4ZW5fdGltZXJfcmVzdW1lKHZvaWQpOwogCiBpcnFyZXR1cm5fdCB4ZW5fZGVidWdfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCk7CiAKQEAgLTU0LDYgKzYzLDggQEAKIGludCB4ZW5fc21wX2NhbGxfZnVuY3Rpb25fbWFzayhjcHVtYXNrX3QgbWFzaywgdm9pZCAoKmZ1bmMpKHZvaWQgKiksCiAJCQkgICAgICAgdm9pZCAqaW5mbywgaW50IHdhaXQpOwogCitleHRlcm4gY3B1bWFza190IHhlbl9jcHVfaW5pdGlhbGl6ZWRfbWFwOworCiAKIC8qIERlY2xhcmUgYW4gYXNtIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHN5bWJvbHMgbmVlZGVkIHRvIG1ha2UgaXQKICAgIGlubGluZWFibGUgKi8KZGlmZiAtLWdpdCBhL2Jsb2NrL0tjb25maWcgYi9ibG9jay9LY29uZmlnCmluZGV4IDNlOTdmMmIuLjFhYjdjMTUgMTAwNjQ0Ci0tLSBhL2Jsb2NrL0tjb25maWcKKysrIGIvYmxvY2svS2NvbmZpZwpAQCAtODEsNiArODEsMTggQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgTi4KIAorY29uZmlnIEJMS19ERVZfSU5URUdSSVRZCisJYm9vbCAiQmxvY2sgbGF5ZXIgZGF0YSBpbnRlZ3JpdHkgc3VwcG9ydCIKKwktLS1oZWxwLS0tCisJU29tZSBzdG9yYWdlIGRldmljZXMgYWxsb3cgZXh0cmEgaW5mb3JtYXRpb24gdG8gYmUKKwlzdG9yZWQvcmV0cmlldmVkIHRvIGhlbHAgcHJvdGVjdCB0aGUgZGF0YS4gIFRoZSBibG9jayBsYXllcgorCWRhdGEgaW50ZWdyaXR5IG9wdGlvbiBwcm92aWRlcyBob29rcyB3aGljaCBjYW4gYmUgdXNlZCBieQorCWZpbGVzeXN0ZW1zIHRvIGVuc3VyZSBiZXR0ZXIgZGF0YSBpbnRlZ3JpdHkuCisKKwlTYXkgeWVzIGhlcmUgaWYgeW91IGhhdmUgYSBzdG9yYWdlIGRldmljZSB0aGF0IHByb3ZpZGVzIHRoZQorCVQxMC9TQ1NJIERhdGEgSW50ZWdyaXR5IEZpZWxkIG9yIHRoZSBUMTMvQVRBIEV4dGVybmFsIFBhdGgKKwlQcm90ZWN0aW9uLiAgSWYgaW4gZG91YnQsIHNheSBOLgorCiBlbmRpZiAjIEJMT0NLCiAKIGNvbmZpZyBCTE9DS19DT01QQVQKZGlmZiAtLWdpdCBhL2Jsb2NrL01ha2VmaWxlIGIvYmxvY2svTWFrZWZpbGUKaW5kZXggNWE0M2M3ZC4uMjA4MDAwYiAxMDA2NDQKLS0tIGEvYmxvY2svTWFrZWZpbGUKKysrIGIvYmxvY2svTWFrZWZpbGUKQEAgLTQsNyArNCw4IEBACiAKIG9iai0kKENPTkZJR19CTE9DSykgOj0gZWxldmF0b3IubyBibGstY29yZS5vIGJsay10YWcubyBibGstc3lzZnMubyBcCiAJCQlibGstYmFycmllci5vIGJsay1zZXR0aW5ncy5vIGJsay1pb2MubyBibGstbWFwLm8gXAotCQkJYmxrLWV4ZWMubyBibGstbWVyZ2UubyBpb2N0bC5vIGdlbmhkLm8gc2NzaV9pb2N0bC5vCisJCQlibGstZXhlYy5vIGJsay1tZXJnZS5vIGlvY3RsLm8gZ2VuaGQubyBzY3NpX2lvY3RsLm8gXAorCQkJY21kLWZpbHRlci5vCiAKIG9iai0kKENPTkZJR19CTEtfREVWX0JTRykJKz0gYnNnLm8KIG9iai0kKENPTkZJR19JT1NDSEVEX05PT1ApCSs9IG5vb3AtaW9zY2hlZC5vCkBAIC0xNCwzICsxNSw0IEBACiAKIG9iai0kKENPTkZJR19CTEtfREVWX0lPX1RSQUNFKQkrPSBibGt0cmFjZS5vCiBvYmotJChDT05GSUdfQkxPQ0tfQ09NUEFUKQkrPSBjb21wYXRfaW9jdGwubworb2JqLSQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQkrPSBibGstaW50ZWdyaXR5Lm8KZGlmZiAtLWdpdCBhL2Jsb2NrL2FzLWlvc2NoZWQuYyBiL2Jsb2NrL2FzLWlvc2NoZWQuYwppbmRleCA4YzM5NDY3Li45NzM1YWNiIDEwMDY0NAotLS0gYS9ibG9jay9hcy1pb3NjaGVkLmMKKysrIGIvYmxvY2svYXMtaW9zY2hlZC5jCkBAIC0xNTEsNiArMTUxLDcgQEAKIAogc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcsIGlvY19jb3VudCk7CiBzdGF0aWMgc3RydWN0IGNvbXBsZXRpb24gKmlvY19nb25lOworc3RhdGljIERFRklORV9TUElOTE9DSyhpb2NfZ29uZV9sb2NrKTsKIAogc3RhdGljIHZvaWQgYXNfbW92ZV90b19kaXNwYXRjaChzdHJ1Y3QgYXNfZGF0YSAqYWQsIHN0cnVjdCByZXF1ZXN0ICpycSk7CiBzdGF0aWMgdm9pZCBhc19hbnRpY19zdG9wKHN0cnVjdCBhc19kYXRhICphZCk7CkBAIC0xNjQsOCArMTY1LDE5IEBACiB7CiAJa2ZyZWUoYWljKTsKIAllbHZfaW9jX2NvdW50X2RlYyhpb2NfY291bnQpOwotCWlmIChpb2NfZ29uZSAmJiAhZWx2X2lvY19jb3VudF9yZWFkKGlvY19jb3VudCkpCi0JCWNvbXBsZXRlKGlvY19nb25lKTsKKwlpZiAoaW9jX2dvbmUpIHsKKwkJLyoKKwkJICogQVMgc2NoZWR1bGVyIGlzIGV4aXRpbmcsIGdyYWIgZXhpdCBsb2NrIGFuZCBjaGVjaworCQkgKiB0aGUgcGVuZGluZyBpbyBjb250ZXh0IGNvdW50LiBJZiBpdCBoaXRzIHplcm8sCisJCSAqIGNvbXBsZXRlIGlvY19nb25lIGFuZCBzZXQgaXQgYmFjayB0byBOVUxMLgorCQkgKi8KKwkJc3Bpbl9sb2NrKCZpb2NfZ29uZV9sb2NrKTsKKwkJaWYgKGlvY19nb25lICYmICFlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkgeworCQkJY29tcGxldGUoaW9jX2dvbmUpOworCQkJaW9jX2dvbmUgPSBOVUxMOworCQl9CisJCXNwaW5fdW5sb2NrKCZpb2NfZ29uZV9sb2NrKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGFzX3RyaW0oc3RydWN0IGlvX2NvbnRleHQgKmlvYykKQEAgLTgzMSw2ICs4NDMsOCBAQAogCX0KIAogCWlmIChhZC0+Y2hhbmdlZF9iYXRjaCAmJiBhZC0+bnJfZGlzcGF0Y2hlZCA9PSAxKSB7CisJCWFkLT5jdXJyZW50X2JhdGNoX2V4cGlyZXMgPSBqaWZmaWVzICsKKwkJCQkJYWQtPmJhdGNoX2V4cGlyZVthZC0+YmF0Y2hfZGF0YV9kaXJdOwogCQlrYmxvY2tkX3NjaGVkdWxlX3dvcmsoJmFkLT5hbnRpY193b3JrKTsKIAkJYWQtPmNoYW5nZWRfYmF0Y2ggPSAwOwogCkBAIC0xNDkxLDcgKzE1MDUsNyBAQAogCS8qIGlvY19nb25lJ3MgdXBkYXRlIG11c3QgYmUgdmlzaWJsZSBiZWZvcmUgcmVhZGluZyBpb2NfY291bnQgKi8KIAlzbXBfd21iKCk7CiAJaWYgKGVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKQotCQl3YWl0X2Zvcl9jb21wbGV0aW9uKGlvY19nb25lKTsKKwkJd2FpdF9mb3JfY29tcGxldGlvbigmYWxsX2dvbmUpOwogCXN5bmNocm9uaXplX3JjdSgpOwogfQogCmRpZmYgLS1naXQgYS9ibG9jay9ibGstY29yZS5jIGIvYmxvY2svYmxrLWNvcmUuYwppbmRleCA2YTljYzBkLi5jNmU1MzY1IDEwMDY0NAotLS0gYS9ibG9jay9ibGstY29yZS5jCisrKyBiL2Jsb2NrL2Jsay1jb3JlLmMKQEAgLTE0Myw2ICsxNDMsMTAgQEAKIAogCQliaW8tPmJpX3NpemUgLT0gbmJ5dGVzOwogCQliaW8tPmJpX3NlY3RvciArPSAobmJ5dGVzID4+IDkpOworCisJCWlmIChiaW9faW50ZWdyaXR5KGJpbykpCisJCQliaW9faW50ZWdyaXR5X2FkdmFuY2UoYmlvLCBuYnl0ZXMpOworCiAJCWlmIChiaW8tPmJpX3NpemUgPT0gMCkKIAkJCWJpb19lbmRpbyhiaW8sIGVycm9yKTsKIAl9IGVsc2UgewpAQCAtMjAxLDggKzIwNSw3IEBACiAJaWYgKGJsa19xdWV1ZV9zdG9wcGVkKHEpKQogCQlyZXR1cm47CiAKLQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUExVR0dFRCwgJnEtPnF1ZXVlX2ZsYWdzKSkgewotCQlfX3NldF9iaXQoUVVFVUVfRkxBR19QTFVHR0VELCAmcS0+cXVldWVfZmxhZ3MpOworCWlmICghcXVldWVfZmxhZ190ZXN0X2FuZF9zZXQoUVVFVUVfRkxBR19QTFVHR0VELCBxKSkgewogCQltb2RfdGltZXIoJnEtPnVucGx1Z190aW1lciwgamlmZmllcyArIHEtPnVucGx1Z19kZWxheSk7CiAJCWJsa19hZGRfdHJhY2VfZ2VuZXJpYyhxLCBOVUxMLCAwLCBCTEtfVEFfUExVRyk7CiAJfQpAQCAtMjE3LDEwICsyMjAsOSBAQAogewogCVdBUk5fT04oIWlycXNfZGlzYWJsZWQoKSk7CiAKLQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUExVR0dFRCwgJnEtPnF1ZXVlX2ZsYWdzKSkKKwlpZiAoIXF1ZXVlX2ZsYWdfdGVzdF9hbmRfY2xlYXIoUVVFVUVfRkxBR19QTFVHR0VELCBxKSkKIAkJcmV0dXJuIDA7CiAKLQlxdWV1ZV9mbGFnX2NsZWFyKFFVRVVFX0ZMQUdfUExVR0dFRCwgcSk7CiAJZGVsX3RpbWVyKCZxLT51bnBsdWdfdGltZXIpOwogCXJldHVybiAxOwogfQpAQCAtMzI0LDggKzMyNiw3IEBACiAJICogb25lIGxldmVsIG9mIHJlY3Vyc2lvbiBpcyBvayBhbmQgaXMgbXVjaCBmYXN0ZXIgdGhhbiBraWNraW5nCiAJICogdGhlIHVucGx1ZyBoYW5kbGluZwogCSAqLwotCWlmICghdGVzdF9iaXQoUVVFVUVfRkxBR19SRUVOVEVSLCAmcS0+cXVldWVfZmxhZ3MpKSB7Ci0JCXF1ZXVlX2ZsYWdfc2V0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgcSk7CisJaWYgKCFxdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldChRVUVVRV9GTEFHX1JFRU5URVIsIHEpKSB7CiAJCXEtPnJlcXVlc3RfZm4ocSk7CiAJCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19SRUVOVEVSLCBxKTsKIAl9IGVsc2UgewpAQCAtMzkwLDggKzM5MSw3IEBACiAJICogaGFuZGxpbmcgcmVpbnZva2UgdGhlIGhhbmRsZXIgc2hvcnRseSBpZiB3ZSBhbHJlYWR5IGdvdCB0aGVyZS4KIAkgKi8KIAlpZiAoIWVsdl9xdWV1ZV9lbXB0eShxKSkgewotCQlpZiAoIXRlc3RfYml0KFFVRVVFX0ZMQUdfUkVFTlRFUiwgJnEtPnF1ZXVlX2ZsYWdzKSkgewotCQkJcXVldWVfZmxhZ19zZXQoUVVFVUVfRkxBR19SRUVOVEVSLCBxKTsKKwkJaWYgKCFxdWV1ZV9mbGFnX3Rlc3RfYW5kX3NldChRVUVVRV9GTEFHX1JFRU5URVIsIHEpKSB7CiAJCQlxLT5yZXF1ZXN0X2ZuKHEpOwogCQkJcXVldWVfZmxhZ19jbGVhcihRVUVVRV9GTEFHX1JFRU5URVIsIHEpOwogCQl9IGVsc2UgewpAQCAtODA2LDM1ICs4MDYsMzIgQEAKIAlycSA9IGdldF9yZXF1ZXN0KHEsIHJ3X2ZsYWdzLCBiaW8sIEdGUF9OT0lPKTsKIAl3aGlsZSAoIXJxKSB7CiAJCURFRklORV9XQUlUKHdhaXQpOworCQlzdHJ1Y3QgaW9fY29udGV4dCAqaW9jOwogCQlzdHJ1Y3QgcmVxdWVzdF9saXN0ICpybCA9ICZxLT5ycTsKIAogCQlwcmVwYXJlX3RvX3dhaXRfZXhjbHVzaXZlKCZybC0+d2FpdFtyd10sICZ3YWl0LAogCQkJCVRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKIAotCQlycSA9IGdldF9yZXF1ZXN0KHEsIHJ3X2ZsYWdzLCBiaW8sIEdGUF9OT0lPKTsKKwkJYmxrX2FkZF90cmFjZV9nZW5lcmljKHEsIGJpbywgcncsIEJMS19UQV9TTEVFUFJRKTsKIAotCQlpZiAoIXJxKSB7Ci0JCQlzdHJ1Y3QgaW9fY29udGV4dCAqaW9jOworCQlfX2dlbmVyaWNfdW5wbHVnX2RldmljZShxKTsKKwkJc3Bpbl91bmxvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOworCQlpb19zY2hlZHVsZSgpOwogCi0JCQlibGtfYWRkX3RyYWNlX2dlbmVyaWMocSwgYmlvLCBydywgQkxLX1RBX1NMRUVQUlEpOworCQkvKgorCQkgKiBBZnRlciBzbGVlcGluZywgd2UgYmVjb21lIGEgImJhdGNoaW5nIiBwcm9jZXNzIGFuZAorCQkgKiB3aWxsIGJlIGFibGUgdG8gYWxsb2NhdGUgYXQgbGVhc3Qgb25lIHJlcXVlc3QsIGFuZAorCQkgKiB1cCB0byBhIGJpZyBiYXRjaCBvZiB0aGVtIGZvciBhIHNtYWxsIHBlcmlvZCB0aW1lLgorCQkgKiBTZWUgaW9jX2JhdGNoaW5nLCBpb2Nfc2V0X2JhdGNoaW5nCisJCSAqLworCQlpb2MgPSBjdXJyZW50X2lvX2NvbnRleHQoR0ZQX05PSU8sIHEtPm5vZGUpOworCQlpb2Nfc2V0X2JhdGNoaW5nKHEsIGlvYyk7CiAKLQkJCV9fZ2VuZXJpY191bnBsdWdfZGV2aWNlKHEpOwotCQkJc3Bpbl91bmxvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOwotCQkJaW9fc2NoZWR1bGUoKTsKLQotCQkJLyoKLQkJCSAqIEFmdGVyIHNsZWVwaW5nLCB3ZSBiZWNvbWUgYSAiYmF0Y2hpbmciIHByb2Nlc3MgYW5kCi0JCQkgKiB3aWxsIGJlIGFibGUgdG8gYWxsb2NhdGUgYXQgbGVhc3Qgb25lIHJlcXVlc3QsIGFuZAotCQkJICogdXAgdG8gYSBiaWcgYmF0Y2ggb2YgdGhlbSBmb3IgYSBzbWFsbCBwZXJpb2QgdGltZS4KLQkJCSAqIFNlZSBpb2NfYmF0Y2hpbmcsIGlvY19zZXRfYmF0Y2hpbmcKLQkJCSAqLwotCQkJaW9jID0gY3VycmVudF9pb19jb250ZXh0KEdGUF9OT0lPLCBxLT5ub2RlKTsKLQkJCWlvY19zZXRfYmF0Y2hpbmcocSwgaW9jKTsKLQotCQkJc3Bpbl9sb2NrX2lycShxLT5xdWV1ZV9sb2NrKTsKLQkJfQorCQlzcGluX2xvY2tfaXJxKHEtPnF1ZXVlX2xvY2spOwogCQlmaW5pc2hfd2FpdCgmcmwtPndhaXRbcnddLCAmd2FpdCk7Ci0JfQorCisJCXJxID0gZ2V0X3JlcXVlc3QocSwgcndfZmxhZ3MsIGJpbywgR0ZQX05PSU8pOworCX07CiAKIAlyZXR1cm4gcnE7CiB9CkBAIC0xMzg0LDYgKzEzODEsOSBAQAogCQkgKi8KIAkJYmxrX3BhcnRpdGlvbl9yZW1hcChiaW8pOwogCisJCWlmIChiaW9faW50ZWdyaXR5X2VuYWJsZWQoYmlvKSAmJiBiaW9faW50ZWdyaXR5X3ByZXAoYmlvKSkKKwkJCWdvdG8gZW5kX2lvOworCiAJCWlmIChvbGRfc2VjdG9yICE9IC0xKQogCQkJYmxrX2FkZF90cmFjZV9yZW1hcChxLCBiaW8sIG9sZF9kZXYsIGJpby0+Ymlfc2VjdG9yLAogCQkJCQkgICAgb2xkX3NlY3Rvcik7CkBAIC0yMDQ4LDcgKzIwNDgsNyBAQAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShpKQogCQlJTklUX0xJU1RfSEVBRCgmcGVyX2NwdShibGtfY3B1X2RvbmUsIGkpKTsKIAotCW9wZW5fc29mdGlycShCTE9DS19TT0ZUSVJRLCBibGtfZG9uZV9zb2Z0aXJxLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoQkxPQ0tfU09GVElSUSwgYmxrX2RvbmVfc29mdGlycSk7CiAJcmVnaXN0ZXJfaG90Y3B1X25vdGlmaWVyKCZibGtfY3B1X25vdGlmaWVyKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLWludGVncml0eS5jIGIvYmxvY2svYmxrLWludGVncml0eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMWE4NDcKLS0tIC9kZXYvbnVsbAorKysgYi9ibG9jay9ibGstaW50ZWdyaXR5LmMKQEAgLTAsMCArMSwzODEgQEAKKy8qCisgKiBibGstaW50ZWdyaXR5LmMgLSBCbG9jayBsYXllciBkYXRhIGludGVncml0eSBleHRlbnNpb25zCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IE9yYWNsZSBDb3Jwb3JhdGlvbgorICogV3JpdHRlbiBieTogTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uCisgKiAyIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyAqIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwKKyAqIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L21lbXBvb2wuaD4KKyNpbmNsdWRlIDxsaW51eC9iaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorCisjaW5jbHVkZSAiYmxrLmgiCisKK3N0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqaW50ZWdyaXR5X2NhY2hlcDsKKworLyoqCisgKiBibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnIC0gQ291bnQgbnVtYmVyIG9mIGludGVncml0eSBzY2F0dGVybGlzdCBlbGVtZW50cworICogQHJxOgkJcmVxdWVzdCB3aXRoIGludGVncml0eSBtZXRhZGF0YSBhdHRhY2hlZAorICoKKyAqIERlc2NyaXB0aW9uOiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgcmVxdWlyZWQgaW4gYQorICogc2NhdHRlcmxpc3QgY29ycmVzcG9uZGluZyB0byB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhIGluIGEgcmVxdWVzdC4KKyAqLworaW50IGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKnJxKQoreworCXN0cnVjdCBiaW9fdmVjICppdiwgKml2cHJ2OworCXN0cnVjdCByZXFfaXRlcmF0b3IgaXRlcjsKKwl1bnNpZ25lZCBpbnQgc2VnbWVudHM7CisKKwlpdnBydiA9IE5VTEw7CisJc2VnbWVudHMgPSAwOworCisJcnFfZm9yX2VhY2hfaW50ZWdyaXR5X3NlZ21lbnQoaXYsIHJxLCBpdGVyKSB7CisKKwkJaWYgKCFpdnBydiB8fCAhQklPVkVDX1BIWVNfTUVSR0VBQkxFKGl2cHJ2LCBpdikpCisJCQlzZWdtZW50cysrOworCisJCWl2cHJ2ID0gaXY7CisJfQorCisJcmV0dXJuIHNlZ21lbnRzOworfQorRVhQT1JUX1NZTUJPTChibGtfcnFfY291bnRfaW50ZWdyaXR5X3NnKTsKKworLyoqCisgKiBibGtfcnFfbWFwX2ludGVncml0eV9zZyAtIE1hcCBpbnRlZ3JpdHkgbWV0YWRhdGEgaW50byBhIHNjYXR0ZXJsaXN0CisgKiBAcnE6CQlyZXF1ZXN0IHdpdGggaW50ZWdyaXR5IG1ldGFkYXRhIGF0dGFjaGVkCisgKiBAc2dsaXN0Ogl0YXJnZXQgc2NhdHRlcmxpc3QKKyAqCisgKiBEZXNjcmlwdGlvbjogTWFwIHRoZSBpbnRlZ3JpdHkgdmVjdG9ycyBpbiByZXF1ZXN0IGludG8gYQorICogc2NhdHRlcmxpc3QuICBUaGUgc2NhdHRlcmxpc3QgbXVzdCBiZSBiaWcgZW5vdWdoIHRvIGhvbGQgYWxsCisgKiBlbGVtZW50cy4gIEkuZS4gc2l6ZWQgdXNpbmcgYmxrX3JxX2NvdW50X2ludGVncml0eV9zZygpLgorICovCitpbnQgYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKnJxLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXYsICppdnBydjsKKwlzdHJ1Y3QgcmVxX2l0ZXJhdG9yIGl0ZXI7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzZzsKKwl1bnNpZ25lZCBpbnQgc2VnbWVudHM7CisKKwlpdnBydiA9IE5VTEw7CisJc2cgPSBOVUxMOworCXNlZ21lbnRzID0gMDsKKworCXJxX2Zvcl9lYWNoX2ludGVncml0eV9zZWdtZW50KGl2LCBycSwgaXRlcikgeworCisJCWlmIChpdnBydikgeworCQkJaWYgKCFCSU9WRUNfUEhZU19NRVJHRUFCTEUoaXZwcnYsIGl2KSkKKwkJCQlnb3RvIG5ld19zZWdtZW50OworCisJCQlzZy0+bGVuZ3RoICs9IGl2LT5idl9sZW47CisJCX0gZWxzZSB7CituZXdfc2VnbWVudDoKKwkJCWlmICghc2cpCisJCQkJc2cgPSBzZ2xpc3Q7CisJCQllbHNlIHsKKwkJCQlzZy0+cGFnZV9saW5rICY9IH4weDAyOworCQkJCXNnID0gc2dfbmV4dChzZyk7CisJCQl9CisKKwkJCXNnX3NldF9wYWdlKHNnLCBpdi0+YnZfcGFnZSwgaXYtPmJ2X2xlbiwgaXYtPmJ2X29mZnNldCk7CisJCQlzZWdtZW50cysrOworCQl9CisKKwkJaXZwcnYgPSBpdjsKKwl9CisKKwlpZiAoc2cpCisJCXNnX21hcmtfZW5kKHNnKTsKKworCXJldHVybiBzZWdtZW50czsKK30KK0VYUE9SVF9TWU1CT0woYmxrX3JxX21hcF9pbnRlZ3JpdHlfc2cpOworCisvKioKKyAqIGJsa19pbnRlZ3JpdHlfY29tcGFyZSAtIENvbXBhcmUgaW50ZWdyaXR5IHByb2ZpbGUgb2YgdHdvIGJsb2NrIGRldmljZXMKKyAqIEBiMToJCURldmljZSB0byBjb21wYXJlCisgKiBAYjI6CQlEZXZpY2UgdG8gY29tcGFyZQorICoKKyAqIERlc2NyaXB0aW9uOiBNZXRhLWRldmljZXMgbGlrZSBETSBhbmQgTUQgbmVlZCB0byB2ZXJpZnkgdGhhdCBhbGwKKyAqIHN1Yi1kZXZpY2VzIHVzZSB0aGUgc2FtZSBpbnRlZ3JpdHkgZm9ybWF0IGJlZm9yZSBhZHZlcnRpc2luZyB0bworICogdXBwZXIgbGF5ZXJzIHRoYXQgdGhleSBjYW4gc2VuZC9yZWNlaXZlIGludGVncml0eSBtZXRhZGF0YS4gIFRoaXMKKyAqIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdHdvIGJsb2NrIGRldmljZXMgaGF2ZQorICogY29tcGF0aWJsZSBpbnRlZ3JpdHkgZm9ybWF0cy4KKyAqLworaW50IGJsa19pbnRlZ3JpdHlfY29tcGFyZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZDEsIHN0cnVjdCBibG9ja19kZXZpY2UgKmJkMikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYjEgPSBiZDEtPmJkX2Rpc2stPmludGVncml0eTsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYjIgPSBiZDItPmJkX2Rpc2stPmludGVncml0eTsKKworCUJVR19PTihiZDEtPmJkX2Rpc2sgPT0gTlVMTCk7CisJQlVHX09OKGJkMi0+YmRfZGlzayA9PSBOVUxMKTsKKworCWlmICghYjEgfHwgIWIyKQorCQlyZXR1cm4gMDsKKworCWlmIChiMS0+c2VjdG9yX3NpemUgIT0gYjItPnNlY3Rvcl9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6ICVzLyVzIHNlY3RvciBzeiAldSAhPSAldVxuIiwgX19mdW5jX18sCisJCSAgICAgICBiZDEtPmJkX2Rpc2stPmRpc2tfbmFtZSwgYmQyLT5iZF9kaXNrLT5kaXNrX25hbWUsCisJCSAgICAgICBiMS0+c2VjdG9yX3NpemUsIGIyLT5zZWN0b3Jfc2l6ZSk7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoYjEtPnR1cGxlX3NpemUgIT0gYjItPnR1cGxlX3NpemUpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogJXMvJXMgdHVwbGUgc3ogJXUgIT0gJXVcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPnR1cGxlX3NpemUsIGIyLT50dXBsZV9zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChiMS0+dGFnX3NpemUgJiYgYjItPnRhZ19zaXplICYmIChiMS0+dGFnX3NpemUgIT0gYjItPnRhZ19zaXplKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiAlcy8lcyB0YWcgc3ogJXUgIT0gJXVcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPnRhZ19zaXplLCBiMi0+dGFnX3NpemUpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKHN0cmNtcChiMS0+bmFtZSwgYjItPm5hbWUpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6ICVzLyVzIHR5cGUgJXMgIT0gJXNcbiIsIF9fZnVuY19fLAorCQkgICAgICAgYmQxLT5iZF9kaXNrLT5kaXNrX25hbWUsIGJkMi0+YmRfZGlzay0+ZGlza19uYW1lLAorCQkgICAgICAgYjEtPm5hbWUsIGIyLT5uYW1lKTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X2NvbXBhcmUpOworCitzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5IHsKKwlzdHJ1Y3QgYXR0cmlidXRlIGF0dHI7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBibGtfaW50ZWdyaXR5ICosIGNoYXIgKik7CisJc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgYmxrX2ludGVncml0eSAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7Cit9OworCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfYXR0cl9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAorCQkJCSAgIGNoYXIgKnBhZ2UpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0KKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfaW50ZWdyaXR5LCBrb2JqKTsKKwlzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5ICplbnRyeSA9CisJCWNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5LCBhdHRyKTsKKworCXJldHVybiBlbnRyeS0+c2hvdyhiaSwgcGFnZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV9hdHRyX3N0b3JlKHN0cnVjdCBrb2JqZWN0ICprb2JqLAorCQkJCSAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpwYWdlLAorCQkJCSAgICBzaXplX3QgY291bnQpCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0KKwkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBibGtfaW50ZWdyaXR5LCBrb2JqKTsKKwlzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5ICplbnRyeSA9CisJCWNvbnRhaW5lcl9vZihhdHRyLCBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5LCBhdHRyKTsKKwlzc2l6ZV90IHJldCA9IDA7CisKKwlpZiAoZW50cnktPnN0b3JlKQorCQlyZXQgPSBlbnRyeS0+c3RvcmUoYmksIHBhZ2UsIGNvdW50KTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV9mb3JtYXRfc2hvdyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksIGNoYXIgKnBhZ2UpCit7CisJaWYgKGJpICE9IE5VTEwgJiYgYmktPm5hbWUgIT0gTlVMTCkKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIiVzXG4iLCBiaS0+bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gc3ByaW50ZihwYWdlLCAibm9uZVxuIik7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV90YWdfc2l6ZV9zaG93KHN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSwgY2hhciAqcGFnZSkKK3sKKwlpZiAoYmkgIT0gTlVMTCkKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIiV1XG4iLCBiaS0+dGFnX3NpemUpOworCWVsc2UKKwkJcmV0dXJuIHNwcmludGYocGFnZSwgIjBcbiIpOworfQorCitzdGF0aWMgc3NpemVfdCBpbnRlZ3JpdHlfcmVhZF9zdG9yZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkKK3sKKwljaGFyICpwID0gKGNoYXIgKikgcGFnZTsKKwl1bnNpZ25lZCBsb25nIHZhbCA9IHNpbXBsZV9zdHJ0b3VsKHAsICZwLCAxMCk7CisKKwlpZiAodmFsKQorCQliaS0+ZmxhZ3MgfD0gSU5URUdSSVRZX0ZMQUdfUkVBRDsKKwllbHNlCisJCWJpLT5mbGFncyAmPSB+SU5URUdSSVRZX0ZMQUdfUkVBRDsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X3JlYWRfc2hvdyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVkXG4iLCAoYmktPmZsYWdzICYgSU5URUdSSVRZX0ZMQUdfUkVBRCkgIT0gMCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGludGVncml0eV93cml0ZV9zdG9yZShzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJICAgICBjb25zdCBjaGFyICpwYWdlLCBzaXplX3QgY291bnQpCit7CisJY2hhciAqcCA9IChjaGFyICopIHBhZ2U7CisJdW5zaWduZWQgbG9uZyB2YWwgPSBzaW1wbGVfc3RydG91bChwLCAmcCwgMTApOworCisJaWYgKHZhbCkKKwkJYmktPmZsYWdzIHw9IElOVEVHUklUWV9GTEFHX1dSSVRFOworCWVsc2UKKwkJYmktPmZsYWdzICY9IH5JTlRFR1JJVFlfRkxBR19XUklURTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIHNzaXplX3QgaW50ZWdyaXR5X3dyaXRlX3Nob3coc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpLCBjaGFyICpwYWdlKQoreworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIlZFxuIiwgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1dSSVRFKSAhPSAwKTsKK30KKworc3RhdGljIHN0cnVjdCBpbnRlZ3JpdHlfc3lzZnNfZW50cnkgaW50ZWdyaXR5X2Zvcm1hdF9lbnRyeSA9IHsKKwkuYXR0ciA9IHsgLm5hbWUgPSAiZm9ybWF0IiwgLm1vZGUgPSBTX0lSVUdPIH0sCisJLnNob3cgPSBpbnRlZ3JpdHlfZm9ybWF0X3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSBpbnRlZ3JpdHlfdGFnX3NpemVfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gInRhZ19zaXplIiwgLm1vZGUgPSBTX0lSVUdPIH0sCisJLnNob3cgPSBpbnRlZ3JpdHlfdGFnX3NpemVfc2hvdywKK307CisKK3N0YXRpYyBzdHJ1Y3QgaW50ZWdyaXR5X3N5c2ZzX2VudHJ5IGludGVncml0eV9yZWFkX2VudHJ5ID0geworCS5hdHRyID0geyAubmFtZSA9ICJyZWFkX3ZlcmlmeSIsIC5tb2RlID0gU19JUlVHTyB8IFNfSVdVU1IgfSwKKwkuc2hvdyA9IGludGVncml0eV9yZWFkX3Nob3csCisJLnN0b3JlID0gaW50ZWdyaXR5X3JlYWRfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IGludGVncml0eV9zeXNmc19lbnRyeSBpbnRlZ3JpdHlfd3JpdGVfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gIndyaXRlX2dlbmVyYXRlIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAorCS5zaG93ID0gaW50ZWdyaXR5X3dyaXRlX3Nob3csCisJLnN0b3JlID0gaW50ZWdyaXR5X3dyaXRlX3N0b3JlLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmludGVncml0eV9hdHRyc1tdID0geworCSZpbnRlZ3JpdHlfZm9ybWF0X2VudHJ5LmF0dHIsCisJJmludGVncml0eV90YWdfc2l6ZV9lbnRyeS5hdHRyLAorCSZpbnRlZ3JpdHlfcmVhZF9lbnRyeS5hdHRyLAorCSZpbnRlZ3JpdHlfd3JpdGVfZW50cnkuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBzeXNmc19vcHMgaW50ZWdyaXR5X29wcyA9IHsKKwkuc2hvdwk9ICZpbnRlZ3JpdHlfYXR0cl9zaG93LAorCS5zdG9yZQk9ICZpbnRlZ3JpdHlfYXR0cl9zdG9yZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGJsa19kZXZfaW50ZWdyaXR5X2luaXQodm9pZCkKK3sKKwlpbnRlZ3JpdHlfY2FjaGVwID0ga21lbV9jYWNoZV9jcmVhdGUoImJsa2Rldl9pbnRlZ3JpdHkiLAorCQkJCQkgICAgIHNpemVvZihzdHJ1Y3QgYmxrX2ludGVncml0eSksCisJCQkJCSAgICAgMCwgU0xBQl9QQU5JQywgTlVMTCk7CisJcmV0dXJuIDA7Cit9CitzdWJzeXNfaW5pdGNhbGwoYmxrX2Rldl9pbnRlZ3JpdHlfaW5pdCk7CisKK3N0YXRpYyB2b2lkIGJsa19pbnRlZ3JpdHlfcmVsZWFzZShzdHJ1Y3Qga29iamVjdCAqa29iaikKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPQorCQljb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGJsa19pbnRlZ3JpdHksIGtvYmopOworCisJa21lbV9jYWNoZV9mcmVlKGludGVncml0eV9jYWNoZXAsIGJpKTsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgaW50ZWdyaXR5X2t0eXBlID0geworCS5kZWZhdWx0X2F0dHJzCT0gaW50ZWdyaXR5X2F0dHJzLAorCS5zeXNmc19vcHMJPSAmaW50ZWdyaXR5X29wcywKKwkucmVsZWFzZQk9IGJsa19pbnRlZ3JpdHlfcmVsZWFzZSwKK307CisKKy8qKgorICogYmxrX2ludGVncml0eV9yZWdpc3RlciAtIFJlZ2lzdGVyIGEgZ2VuZGlzayBhcyBiZWluZyBpbnRlZ3JpdHktY2FwYWJsZQorICogQGRpc2s6CXN0cnVjdCBnZW5kaXNrIHBvaW50ZXIgdG8gbWFrZSBpbnRlZ3JpdHktYXdhcmUKKyAqIEB0ZW1wbGF0ZToJaW50ZWdyaXR5IHByb2ZpbGUKKyAqCisgKiBEZXNjcmlwdGlvbjogV2hlbiBhIGRldmljZSBuZWVkcyB0byBhZHZlcnRpc2UgaXRzZWxmIGFzIGJlaW5nIGFibGUKKyAqIHRvIHNlbmQvcmVjZWl2ZSBpbnRlZ3JpdHkgbWV0YWRhdGEgaXQgbXVzdCB1c2UgdGhpcyBmdW5jdGlvbiB0bworICogcmVnaXN0ZXIgdGhlIGNhcGFiaWxpdHkgd2l0aCB0aGUgYmxvY2sgbGF5ZXIuICBUaGUgdGVtcGxhdGUgaXMgYQorICogYmxrX2ludGVncml0eSBzdHJ1Y3Qgd2l0aCB2YWx1ZXMgYXBwcm9wcmlhdGUgZm9yIHRoZSB1bmRlcmx5aW5nCisgKiBoYXJkd2FyZS4gIFNlZSBEb2N1bWVudGF0aW9uL2Jsb2NrL2RhdGEtaW50ZWdyaXR5LnR4dC4KKyAqLworaW50IGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIoc3RydWN0IGdlbmRpc2sgKmRpc2ssIHN0cnVjdCBibGtfaW50ZWdyaXR5ICp0ZW1wbGF0ZSkKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisKKwlCVUdfT04oZGlzayA9PSBOVUxMKTsKKwlCVUdfT04odGVtcGxhdGUgPT0gTlVMTCk7CisKKwlpZiAoZGlzay0+aW50ZWdyaXR5ID09IE5VTEwpIHsKKwkJYmkgPSBrbWVtX2NhY2hlX2FsbG9jKGludGVncml0eV9jYWNoZXAsCisJCQkJCQlHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7CisJCWlmICghYmkpCisJCQlyZXR1cm4gLTE7CisKKwkJaWYgKGtvYmplY3RfaW5pdF9hbmRfYWRkKCZiaS0+a29iaiwgJmludGVncml0eV9rdHlwZSwKKwkJCQkJICZkaXNrLT5kZXYua29iaiwgIiVzIiwgImludGVncml0eSIpKSB7CisJCQlrbWVtX2NhY2hlX2ZyZWUoaW50ZWdyaXR5X2NhY2hlcCwgYmkpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJa29iamVjdF91ZXZlbnQoJmJpLT5rb2JqLCBLT0JKX0FERCk7CisKKwkJYmktPmZsYWdzIHw9IElOVEVHUklUWV9GTEFHX1JFQUQgfCBJTlRFR1JJVFlfRkxBR19XUklURTsKKwkJYmktPnNlY3Rvcl9zaXplID0gZGlzay0+cXVldWUtPmhhcmRzZWN0X3NpemU7CisJCWRpc2stPmludGVncml0eSA9IGJpOworCX0gZWxzZQorCQliaSA9IGRpc2stPmludGVncml0eTsKKworCS8qIFVzZSB0aGUgcHJvdmlkZWQgcHJvZmlsZSBhcyB0ZW1wbGF0ZSAqLworCWJpLT5uYW1lID0gdGVtcGxhdGUtPm5hbWU7CisJYmktPmdlbmVyYXRlX2ZuID0gdGVtcGxhdGUtPmdlbmVyYXRlX2ZuOworCWJpLT52ZXJpZnlfZm4gPSB0ZW1wbGF0ZS0+dmVyaWZ5X2ZuOworCWJpLT50dXBsZV9zaXplID0gdGVtcGxhdGUtPnR1cGxlX3NpemU7CisJYmktPnNldF90YWdfZm4gPSB0ZW1wbGF0ZS0+c2V0X3RhZ19mbjsKKwliaS0+Z2V0X3RhZ19mbiA9IHRlbXBsYXRlLT5nZXRfdGFnX2ZuOworCWJpLT50YWdfc2l6ZSA9IHRlbXBsYXRlLT50YWdfc2l6ZTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKTsKKworLyoqCisgKiBibGtfaW50ZWdyaXR5X3VucmVnaXN0ZXIgLSBSZW1vdmUgYmxvY2sgaW50ZWdyaXR5IHByb2ZpbGUKKyAqIEBkaXNrOglkaXNrIHdob3NlIGludGVncml0eSBwcm9maWxlIHRvIGRlYWxsb2NhdGUKKyAqCisgKiBEZXNjcmlwdGlvbjogVGhpcyBmdW5jdGlvbiBmcmVlcyBhbGwgbWVtb3J5IHVzZWQgYnkgdGhlIGJsb2NrCisgKiBpbnRlZ3JpdHkgcHJvZmlsZS4gIFRvIGJlIGNhbGxlZCBhdCBkZXZpY2UgdGVhcmRvd24uCisgKi8KK3ZvaWQgYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKHN0cnVjdCBnZW5kaXNrICpkaXNrKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaTsKKworCWlmICghZGlzayB8fCAhZGlzay0+aW50ZWdyaXR5KQorCQlyZXR1cm47CisKKwliaSA9IGRpc2stPmludGVncml0eTsKKworCWtvYmplY3RfdWV2ZW50KCZiaS0+a29iaiwgS09CSl9SRU1PVkUpOworCWtvYmplY3RfZGVsKCZiaS0+a29iaik7CisJa29iamVjdF9wdXQoJmRpc2stPmRldi5rb2JqKTsKKwlrbWVtX2NhY2hlX2ZyZWUoaW50ZWdyaXR5X2NhY2hlcCwgYmkpOworfQorRVhQT1JUX1NZTUJPTChibGtfaW50ZWdyaXR5X3VucmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLW1hcC5jIGIvYmxvY2svYmxrLW1hcC5jCmluZGV4IDBiMWFmNWEuLmRkZDk2ZmIgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsay1tYXAuYworKysgYi9ibG9jay9ibGstbWFwLmMKQEAgLTIxMCw2ICsyMTAsNyBAQAogCWlmICghYmlvX2ZsYWdnZWQoYmlvLCBCSU9fVVNFUl9NQVBQRUQpKQogCQlycS0+Y21kX2ZsYWdzIHw9IFJFUV9DT1BZX1VTRVI7CiAKKwlibGtfcXVldWVfYm91bmNlKHEsICZiaW8pOwogCWJpb19nZXQoYmlvKTsKIAlibGtfcnFfYmlvX3ByZXAocSwgcnEsIGJpbyk7CiAJcnEtPmJ1ZmZlciA9IHJxLT5kYXRhID0gTlVMTDsKQEAgLTI2OCw2ICsyNjksNyBAQAogCWludCByZWFkaW5nID0gcnFfZGF0YV9kaXIocnEpID09IFJFQUQ7CiAJaW50IGRvX2NvcHkgPSAwOwogCXN0cnVjdCBiaW8gKmJpbzsKKwl1bnNpZ25lZCBsb25nIHN0YWNrX21hc2sgPSB+KFRIUkVBRF9TSVpFIC0gMSk7CiAKIAlpZiAobGVuID4gKHEtPm1heF9od19zZWN0b3JzIDw8IDkpKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTI3OCw2ICsyODAsMTAgQEAKIAlhbGlnbm1lbnQgPSBxdWV1ZV9kbWFfYWxpZ25tZW50KHEpIHwgcS0+ZG1hX3BhZF9tYXNrOwogCWRvX2NvcHkgPSAoKGthZGRyICYgYWxpZ25tZW50KSB8fCAobGVuICYgYWxpZ25tZW50KSk7CiAKKwlpZiAoISgoa2FkZHIgJiBzdGFja19tYXNrKSBeCisJICAgICAgKCh1bnNpZ25lZCBsb25nKWN1cnJlbnQtPnN0YWNrICYgc3RhY2tfbWFzaykpKQorCQlkb19jb3B5ID0gMTsKKwogCWlmIChkb19jb3B5KQogCQliaW8gPSBiaW9fY29weV9rZXJuKHEsIGtidWYsIGxlbiwgZ2ZwX21hc2ssIHJlYWRpbmcpOwogCWVsc2UKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsay1tZXJnZS5jIGIvYmxvY2svYmxrLW1lcmdlLmMKaW5kZXggNjUxMTM2YS4uNWVmYzllNyAxMDA2NDQKLS0tIGEvYmxvY2svYmxrLW1lcmdlLmMKKysrIGIvYmxvY2svYmxrLW1lcmdlLmMKQEAgLTQ0MSw2ICs0NDEsOSBAQAogCSAgICB8fCBuZXh0LT5zcGVjaWFsKQogCQlyZXR1cm4gMDsKIAorCWlmIChibGtfaW50ZWdyaXR5X3JxKHJlcSkgIT0gYmxrX2ludGVncml0eV9ycShuZXh0KSkKKwkJcmV0dXJuIDA7CisKIAkvKgogCSAqIElmIHdlIGFyZSBhbGxvd2VkIHRvIG1lcmdlLCB0aGVuIGFwcGVuZCBiaW8gbGlzdAogCSAqIGZyb20gbmV4dCB0byBycSBhbmQgcmVsZWFzZSBuZXh0LiBtZXJnZV9yZXF1ZXN0c19mbgpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLXNldHRpbmdzLmMgYi9ibG9jay9ibGstc2V0dGluZ3MuYwppbmRleCA4ZGQ4NjQxLi5kZmM3NzAxIDEwMDY0NAotLS0gYS9ibG9jay9ibGstc2V0dGluZ3MuYworKysgYi9ibG9jay9ibGstc2V0dGluZ3MuYwpAQCAtMzAyLDExICszMDIsMTAgQEAKICAqIEBxOiAgICAgdGhlIHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKICAqIEBtYXNrOiAgcGFkIG1hc2sKICAqCi0gKiBTZXQgcGFkIG1hc2suICBEaXJlY3QgSU8gcmVxdWVzdHMgYXJlIHBhZGRlZCB0byB0aGUgbWFzayBzcGVjaWZpZWQuCisgKiBTZXQgZG1hIHBhZCBtYXNrLgogICoKLSAqIEFwcGVuZGluZyBwYWQgYnVmZmVyIHRvIGEgcmVxdWVzdCBtb2RpZmllcyAtPmRhdGFfbGVuIHN1Y2ggdGhhdCBpdAotICogaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuICBUaGUgb3JpZ2luYWwgcmVxdWVzdGVkIGRhdGEgbGVuZ3RoIGNhbiBiZQotICogb2J0YWluZWQgdXNpbmcgYmxrX3JxX3Jhd19kYXRhX2xlbigpLgorICogQXBwZW5kaW5nIHBhZCBidWZmZXIgdG8gYSByZXF1ZXN0IG1vZGlmaWVzIHRoZSBsYXN0IGVudHJ5IG9mIGEKKyAqIHNjYXR0ZXIgbGlzdCBzdWNoIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuCiAgKiovCiB2b2lkIGJsa19xdWV1ZV9kbWFfcGFkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQgbWFzaykKIHsKQEAgLTMxNSw2ICszMTQsMjMgQEAKIEVYUE9SVF9TWU1CT0woYmxrX3F1ZXVlX2RtYV9wYWQpOwogCiAvKioKKyAqIGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZCAtIHVwZGF0ZSBwYWQgbWFzaworICogQHE6ICAgICB0aGUgcmVxdWVzdCBxdWV1ZSBmb3IgdGhlIGRldmljZQorICogQG1hc2s6ICBwYWQgbWFzaworICoKKyAqIFVwZGF0ZSBkbWEgcGFkIG1hc2suCisgKgorICogQXBwZW5kaW5nIHBhZCBidWZmZXIgdG8gYSByZXF1ZXN0IG1vZGlmaWVzIHRoZSBsYXN0IGVudHJ5IG9mIGEKKyAqIHNjYXR0ZXIgbGlzdCBzdWNoIHRoYXQgaXQgaW5jbHVkZXMgdGhlIHBhZCBidWZmZXIuCisgKiovCit2b2lkIGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IG1hc2spCit7CisJaWYgKG1hc2sgPiBxLT5kbWFfcGFkX21hc2spCisJCXEtPmRtYV9wYWRfbWFzayA9IG1hc2s7Cit9CitFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZCk7CisKKy8qKgogICogYmxrX3F1ZXVlX2RtYV9kcmFpbiAtIFNldCB1cCBhIGRyYWluIGJ1ZmZlciBmb3IgZXhjZXNzIGRtYS4KICAqIEBxOiAgdGhlIHJlcXVlc3QgcXVldWUgZm9yIHRoZSBkZXZpY2UKICAqIEBkbWFfZHJhaW5fbmVlZGVkOiBmbiB3aGljaCByZXR1cm5zIG5vbi16ZXJvIGlmIGRyYWluIGlzIG5lY2Vzc2FyeQpkaWZmIC0tZ2l0IGEvYmxvY2svYmxrLmggYi9ibG9jay9ibGsuaAppbmRleCA1OTc3NmFiLi5jNzlmMzBlIDEwMDY0NAotLS0gYS9ibG9jay9ibGsuaAorKysgYi9ibG9jay9ibGsuaApAQCAtNTEsNCArNTEsMTIgQEAKIAlyZXR1cm4gcS0+bnJfY29uZ2VzdGlvbl9vZmY7CiB9CiAKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKworI2RlZmluZSBycV9mb3JfZWFjaF9pbnRlZ3JpdHlfc2VnbWVudChidmwsIF9ycSwgX2l0ZXIpCQlcCisJX19ycV9mb3JfZWFjaF9iaW8oX2l0ZXIuYmlvLCBfcnEpCQkJXAorCQliaXBfZm9yX2VhY2hfdmVjKGJ2bCwgX2l0ZXIuYmlvLT5iaV9pbnRlZ3JpdHksIF9pdGVyLmkpCisKKyNlbmRpZiAvKiBCTEtfREVWX0lOVEVHUklUWSAqLworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2Jsb2NrL2Jsa3RyYWNlLmMgYi9ibG9jay9ibGt0cmFjZS5jCmluZGV4IGIyY2JiNGUuLmViOTY1MWMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2Jsa3RyYWNlLmMKKysrIGIvYmxvY2svYmxrdHJhY2UuYwpAQCAtNzUsNiArNzUsMjQgQEAKIAlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKK3ZvaWQgX190cmFjZV9ub3RlX21lc3NhZ2Uoc3RydWN0IGJsa190cmFjZSAqYnQsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCWludCBuOworCXZhX2xpc3QgYXJnczsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWNoYXIgKmJ1ZjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwlidWYgPSBwZXJfY3B1X3B0cihidC0+bXNnX2RhdGEsIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisJdmFfc3RhcnQoYXJncywgZm10KTsKKwluID0gdnNjbnByaW50ZihidWYsIEJMS19UTl9NQVhfTVNHLCBmbXQsIGFyZ3MpOworCXZhX2VuZChhcmdzKTsKKworCXRyYWNlX25vdGUoYnQsIDAsIEJMS19UTl9NRVNTQUdFLCBidWYsIG4pOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKF9fdHJhY2Vfbm90ZV9tZXNzYWdlKTsKKwogc3RhdGljIGludCBhY3RfbG9nX2NoZWNrKHN0cnVjdCBibGtfdHJhY2UgKmJ0LCB1MzIgd2hhdCwgc2VjdG9yX3Qgc2VjdG9yLAogCQkJIHBpZF90IHBpZCkKIHsKQEAgLTE0MSwxMCArMTU5LDcgQEAKIAkvKgogCSAqIEEgd29yZCBhYm91dCB0aGUgbG9ja2luZyBoZXJlIC0gd2UgZGlzYWJsZSBpbnRlcnJ1cHRzIHRvIHJlc2VydmUKIAkgKiBzb21lIHNwYWNlIGluIHRoZSByZWxheSBwZXItY3B1IGJ1ZmZlciwgdG8gcHJldmVudCBhbiBpcnEKLQkgKiBmcm9tIGNvbWluZyBpbiBhbmQgc3RlcHBpbmcgb24gb3VyIHRvZXMuIE9uY2UgcmVzZXJ2ZWQsIGl0J3MKLQkgKiBlbm91Z2ggdG8gZ2V0IHByZWVtcHRpb24gZGlzYWJsZWQgdG8gcHJldmVudCByZWFkIG9mIHRoaXMgZGF0YQotCSAqIGJlZm9yZSB3ZSBhcmUgdGhyb3VnaCBmaWxsaW5nIGl0LiBnZXRfY3B1KCkvcHV0X2NwdSgpIGRvZXMgdGhpcwotCSAqIGZvciB1cworCSAqIGZyb20gY29taW5nIGluIGFuZCBzdGVwcGluZyBvbiBvdXIgdG9lcy4KIAkgKi8KIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKQEAgLTIyOSw5ICsyNDQsMTEgQEAKIHN0YXRpYyB2b2lkIGJsa190cmFjZV9jbGVhbnVwKHN0cnVjdCBibGtfdHJhY2UgKmJ0KQogewogCXJlbGF5X2Nsb3NlKGJ0LT5yY2hhbik7CisJZGVidWdmc19yZW1vdmUoYnQtPm1zZ19maWxlKTsKIAlkZWJ1Z2ZzX3JlbW92ZShidC0+ZHJvcHBlZF9maWxlKTsKIAlibGtfcmVtb3ZlX3RyZWUoYnQtPmRpcik7CiAJZnJlZV9wZXJjcHUoYnQtPnNlcXVlbmNlKTsKKwlmcmVlX3BlcmNwdShidC0+bXNnX2RhdGEpOwogCWtmcmVlKGJ0KTsKIH0KIApAQCAtMjc1LDYgKzI5Miw0NCBAQAogCS5yZWFkID0JCWJsa19kcm9wcGVkX3JlYWQsCiB9OwogCitzdGF0aWMgaW50IGJsa19tc2dfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBpbm9kZS0+aV9wcml2YXRlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGJsa19tc2dfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWZmZXIsCisJCQkJc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciAqbXNnOworCXN0cnVjdCBibGtfdHJhY2UgKmJ0OworCisJaWYgKGNvdW50ID4gQkxLX1ROX01BWF9NU0cpCisJCXJldHVybiAtRUlOVkFMOworCisJbXNnID0ga21hbGxvYyhjb3VudCwgR0ZQX0tFUk5FTCk7CisJaWYgKG1zZyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWlmIChjb3B5X2Zyb21fdXNlcihtc2csIGJ1ZmZlciwgY291bnQpKSB7CisJCWtmcmVlKG1zZyk7CisJCXJldHVybiAtRUZBVUxUOworCX0KKworCWJ0ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCV9fdHJhY2Vfbm90ZV9tZXNzYWdlKGJ0LCAiJXMiLCBtc2cpOworCWtmcmVlKG1zZyk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGJsa19tc2dfZm9wcyA9IHsKKwkub3duZXIgPQlUSElTX01PRFVMRSwKKwkub3BlbiA9CQlibGtfbXNnX29wZW4sCisJLndyaXRlID0JYmxrX21zZ193cml0ZSwKK307CisKIC8qCiAgKiBLZWVwIHRyYWNrIG9mIGhvdyBtYW55IHRpbWVzIHdlIGVuY291bnRlcmVkIGEgZnVsbCBzdWJidWZmZXIsIHRvIGFpZAogICogdGhlIHVzZXIgc3BhY2UgYXBwIGluIHRlbGxpbmcgaG93IG1hbnkgbG9zdCBldmVudHMgdGhlcmUgd2VyZS4KQEAgLTM0Niw2ICs0MDEsMTAgQEAKIAlpZiAoIWJ0LT5zZXF1ZW5jZSkKIAkJZ290byBlcnI7CiAKKwlidC0+bXNnX2RhdGEgPSBfX2FsbG9jX3BlcmNwdShCTEtfVE5fTUFYX01TRyk7CisJaWYgKCFidC0+bXNnX2RhdGEpCisJCWdvdG8gZXJyOworCiAJcmV0ID0gLUVOT0VOVDsKIAlkaXIgPSBibGtfY3JlYXRlX3RyZWUoYnV0cy0+bmFtZSk7CiAJaWYgKCFkaXIpCkBAIC0zNjAsNiArNDE5LDEwIEBACiAJaWYgKCFidC0+ZHJvcHBlZF9maWxlKQogCQlnb3RvIGVycjsKIAorCWJ0LT5tc2dfZmlsZSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoIm1zZyIsIDAyMjIsIGRpciwgYnQsICZibGtfbXNnX2ZvcHMpOworCWlmICghYnQtPm1zZ19maWxlKQorCQlnb3RvIGVycjsKKwogCWJ0LT5yY2hhbiA9IHJlbGF5X29wZW4oInRyYWNlIiwgZGlyLCBidXRzLT5idWZfc2l6ZSwKIAkJCQlidXRzLT5idWZfbnIsICZibGtfcmVsYXlfY2FsbGJhY2tzLCBidCk7CiAJaWYgKCFidC0+cmNoYW4pCkBAIC0zODksOSArNDUyLDEyIEBACiAJaWYgKGRpcikKIAkJYmxrX3JlbW92ZV90cmVlKGRpcik7CiAJaWYgKGJ0KSB7CisJCWlmIChidC0+bXNnX2ZpbGUpCisJCQlkZWJ1Z2ZzX3JlbW92ZShidC0+bXNnX2ZpbGUpOwogCQlpZiAoYnQtPmRyb3BwZWRfZmlsZSkKIAkJCWRlYnVnZnNfcmVtb3ZlKGJ0LT5kcm9wcGVkX2ZpbGUpOwogCQlmcmVlX3BlcmNwdShidC0+c2VxdWVuY2UpOworCQlmcmVlX3BlcmNwdShidC0+bXNnX2RhdGEpOwogCQlpZiAoYnQtPnJjaGFuKQogCQkJcmVsYXlfY2xvc2UoYnQtPnJjaGFuKTsKIAkJa2ZyZWUoYnQpOwpkaWZmIC0tZ2l0IGEvYmxvY2svYnNnLmMgYi9ibG9jay9ic2cuYwppbmRleCBmMGI3Y2QzLi4wYjNiMjgyIDEwMDY0NAotLS0gYS9ibG9jay9ic2cuYworKysgYi9ibG9jay9ic2cuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGxpbnV4L2lkci5oPgogI2luY2x1ZGUgPGxpbnV4L2JzZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfaW9jdGwuaD4KQEAgLTQ0LDExICs0NSwxMiBAQAogCWNoYXIgbmFtZVtCVVNfSURfU0laRV07CiAJaW50IG1heF9xdWV1ZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpjbWRfZmlsdGVyOworCW1vZGVfdCAqZl9tb2RlOwogfTsKIAogZW51bSB7CiAJQlNHX0ZfQkxPQ0sJCT0gMSwKLQlCU0dfRl9XUklURV9QRVJNCT0gMiwKIH07CiAKICNkZWZpbmUgQlNHX0RFRkFVTFRfQ01EUwk2NApAQCAtMTcyLDcgKzE3NCw3IEBACiB9CiAKIHN0YXRpYyBpbnQgYmxrX2ZpbGxfc2d2NF9oZHJfcnEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSwKLQkJCQlzdHJ1Y3Qgc2dfaW9fdjQgKmhkciwgaW50IGhhc193cml0ZV9wZXJtKQorCQkJCXN0cnVjdCBzZ19pb192NCAqaGRyLCBzdHJ1Y3QgYnNnX2RldmljZSAqYmQpCiB7CiAJaWYgKGhkci0+cmVxdWVzdF9sZW4gPiBCTEtfTUFYX0NEQikgewogCQlycS0+Y21kID0ga3phbGxvYyhoZHItPnJlcXVlc3RfbGVuLCBHRlBfS0VSTkVMKTsKQEAgLTE4NSw3ICsxODcsOCBAQAogCQlyZXR1cm4gLUVGQVVMVDsKIAogCWlmIChoZHItPnN1YnByb3RvY29sID09IEJTR19TVUJfUFJPVE9DT0xfU0NTSV9DTUQpIHsKLQkJaWYgKGJsa192ZXJpZnlfY29tbWFuZChycS0+Y21kLCBoYXNfd3JpdGVfcGVybSkpCisJCWlmIChibGtfY21kX2ZpbHRlcl92ZXJpZnlfY29tbWFuZChiZC0+Y21kX2ZpbHRlciwgcnEtPmNtZCwKKwkJCQkJCSBiZC0+Zl9tb2RlKSkKIAkJCXJldHVybiAtRVBFUk07CiAJfSBlbHNlIGlmICghY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKIAkJcmV0dXJuIC1FUEVSTTsKQEAgLTI2Myw4ICsyNjYsNyBAQAogCXJxID0gYmxrX2dldF9yZXF1ZXN0KHEsIHJ3LCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJxKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQlyZXQgPSBibGtfZmlsbF9zZ3Y0X2hkcl9ycShxLCBycSwgaGRyLCB0ZXN0X2JpdChCU0dfRl9XUklURV9QRVJNLAotCQkJCQkJICAgICAgICZiZC0+ZmxhZ3MpKTsKKwlyZXQgPSBibGtfZmlsbF9zZ3Y0X2hkcl9ycShxLCBycSwgaGRyLCBiZCk7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKQEAgLTU2NiwxMiArNTY4LDIzIEBACiAJCXNldF9iaXQoQlNHX0ZfQkxPQ0ssICZiZC0+ZmxhZ3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYnNnX3NldF93cml0ZV9wZXJtKHN0cnVjdCBic2dfZGV2aWNlICpiZCwgc3RydWN0IGZpbGUgKmZpbGUpCitzdGF0aWMgdm9pZCBic2dfc2V0X2NtZF9maWx0ZXIoc3RydWN0IGJzZ19kZXZpY2UgKmJkLAorCQkJICAgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQotCQlzZXRfYml0KEJTR19GX1dSSVRFX1BFUk0sICZiZC0+ZmxhZ3MpOwotCWVsc2UKLQkJY2xlYXJfYml0KEJTR19GX1dSSVRFX1BFUk0sICZiZC0+ZmxhZ3MpOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJc3RydWN0IGdlbmRpc2sgKmRpc2s7CisKKwlpZiAoIWZpbGUpCisJCXJldHVybjsKKworCWlub2RlID0gZmlsZS0+Zl9kZW50cnktPmRfaW5vZGU7CisJaWYgKCFpbm9kZSkKKwkJcmV0dXJuOworCisJZGlzayA9IGlub2RlLT5pX2JkZXYtPmJkX2Rpc2s7CisKKwliZC0+Y21kX2ZpbHRlciA9ICZkaXNrLT5jbWRfZmlsdGVyOworCWJkLT5mX21vZGUgPSAmZmlsZS0+Zl9tb2RlOwogfQogCiAvKgpAQCAtNTk1LDYgKzYwOCw4IEBACiAJZHByaW50aygiJXM6IHJlYWQgJVpkIGJ5dGVzXG4iLCBiZC0+bmFtZSwgY291bnQpOwogCiAJYnNnX3NldF9ibG9jayhiZCwgZmlsZSk7CisJYnNnX3NldF9jbWRfZmlsdGVyKGJkLCBmaWxlKTsKKwogCWJ5dGVzX3JlYWQgPSAwOwogCXJldCA9IF9fYnNnX3JlYWQoYnVmLCBjb3VudCwgYmQsIE5VTEwsICZieXRlc19yZWFkKTsKIAkqcHBvcyA9IGJ5dGVzX3JlYWQ7CkBAIC02NjgsNyArNjgzLDcgQEAKIAlkcHJpbnRrKCIlczogd3JpdGUgJVpkIGJ5dGVzXG4iLCBiZC0+bmFtZSwgY291bnQpOwogCiAJYnNnX3NldF9ibG9jayhiZCwgZmlsZSk7Ci0JYnNnX3NldF93cml0ZV9wZXJtKGJkLCBmaWxlKTsKKwlic2dfc2V0X2NtZF9maWx0ZXIoYmQsIGZpbGUpOwogCiAJYnl0ZXNfd3JpdHRlbiA9IDA7CiAJcmV0ID0gX19ic2dfd3JpdGUoYmQsIGJ1ZiwgY291bnQsICZieXRlc193cml0dGVuKTsKQEAgLTcwOSwxMSArNzI0LDEyIEBACiB7CiAJc3RydWN0IGJzZ19jbGFzc19kZXZpY2UgKmJjZCA9CiAJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgYnNnX2NsYXNzX2RldmljZSwgcmVmKTsKKwlzdHJ1Y3QgZGV2aWNlICpwYXJlbnQgPSBiY2QtPnBhcmVudDsKIAogCWlmIChiY2QtPnJlbGVhc2UpCiAJCWJjZC0+cmVsZWFzZShiY2QtPnBhcmVudCk7CiAKLQlwdXRfZGV2aWNlKGJjZC0+cGFyZW50KTsKKwlwdXRfZGV2aWNlKHBhcmVudCk7CiB9CiAKIHN0YXRpYyBpbnQgYnNnX3B1dF9kZXZpY2Uoc3RydWN0IGJzZ19kZXZpY2UgKmJkKQpAQCAtNzcxLDcgKzc4Nyw5IEBACiAJfQogCiAJYmQtPnF1ZXVlID0gcnE7CisKIAlic2dfc2V0X2Jsb2NrKGJkLCBmaWxlKTsKKwlic2dfc2V0X2NtZF9maWx0ZXIoYmQsIGZpbGUpOwogCiAJYXRvbWljX3NldCgmYmQtPnJlZl9jb3VudCwgMSk7CiAJbXV0ZXhfbG9jaygmYnNnX211dGV4KTsKQEAgLTgzNCw3ICs4NTIsMTEgQEAKIAogc3RhdGljIGludCBic2dfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlzdHJ1Y3QgYnNnX2RldmljZSAqYmQgPSBic2dfZ2V0X2RldmljZShpbm9kZSwgZmlsZSk7CisJc3RydWN0IGJzZ19kZXZpY2UgKmJkOworCisJbG9ja19rZXJuZWwoKTsKKwliZCA9IGJzZ19nZXRfZGV2aWNlKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlpZiAoSVNfRVJSKGJkKSkKIAkJcmV0dXJuIFBUUl9FUlIoYmQpOwpkaWZmIC0tZ2l0IGEvYmxvY2svY2ZxLWlvc2NoZWQuYyBiL2Jsb2NrL2NmcS1pb3NjaGVkLmMKaW5kZXggYjM5OWM2Mi4uMWUyYWZmOCAxMDA2NDQKLS0tIGEvYmxvY2svY2ZxLWlvc2NoZWQuYworKysgYi9ibG9jay9jZnEtaW9zY2hlZC5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZWxldmF0b3IuaD4KICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KICNpbmNsdWRlIDxsaW51eC9pb3ByaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ibGt0cmFjZV9hcGkuaD4KIAogLyoKICAqIHR1bmFibGVzCkBAIC00MSwxMyArNDIsMTQgQEAKIAogI2RlZmluZSBSUV9DSUMocnEpCQlcCiAJKChzdHJ1Y3QgY2ZxX2lvX2NvbnRleHQgKikgKHJxKS0+ZWxldmF0b3JfcHJpdmF0ZSkKLSNkZWZpbmUgUlFfQ0ZRUShycSkJCSgocnEpLT5lbGV2YXRvcl9wcml2YXRlMikKKyNkZWZpbmUgUlFfQ0ZRUShycSkJCShzdHJ1Y3QgY2ZxX3F1ZXVlICopICgocnEpLT5lbGV2YXRvcl9wcml2YXRlMikKIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpjZnFfcG9vbDsKIHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqY2ZxX2lvY19wb29sOwogCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUodW5zaWduZWQgbG9uZywgaW9jX2NvdW50KTsKIHN0YXRpYyBzdHJ1Y3QgY29tcGxldGlvbiAqaW9jX2dvbmU7CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGlvY19nb25lX2xvY2spOwogCiAjZGVmaW5lIENGUV9QUklPX0xJU1RTCQlJT1BSSU9fQkVfTlIKICNkZWZpbmUgY2ZxX2NsYXNzX2lkbGUoY2ZxcSkJKChjZnFxKS0+aW9wcmlvX2NsYXNzID09IElPUFJJT19DTEFTU19JRExFKQpAQCAtMTI0LDYgKzEyNiw4IEBACiBzdHJ1Y3QgY2ZxX3F1ZXVlIHsKIAkvKiByZWZlcmVuY2UgY291bnQgKi8KIAlhdG9taWNfdCByZWY7CisJLyogdmFyaW91cyBzdGF0ZSBmbGFncywgc2VlIGJlbG93ICovCisJdW5zaWduZWQgaW50IGZsYWdzOwogCS8qIHBhcmVudCBjZnFfZGF0YSAqLwogCXN0cnVjdCBjZnFfZGF0YSAqY2ZxZDsKIAkvKiBzZXJ2aWNlX3RyZWUgbWVtYmVyICovCkBAIC0xMzgsMTQgKzE0MiwxNCBAQAogCWludCBxdWV1ZWRbMl07CiAJLyogY3VycmVudGx5IGFsbG9jYXRlZCByZXF1ZXN0cyAqLwogCWludCBhbGxvY2F0ZWRbMl07Ci0JLyogcGVuZGluZyBtZXRhZGF0YSByZXF1ZXN0cyAqLwotCWludCBtZXRhX3BlbmRpbmc7CiAJLyogZmlmbyBsaXN0IG9mIHJlcXVlc3RzIGluIHNvcnRfbGlzdCAqLwogCXN0cnVjdCBsaXN0X2hlYWQgZmlmbzsKIAogCXVuc2lnbmVkIGxvbmcgc2xpY2VfZW5kOwogCWxvbmcgc2xpY2VfcmVzaWQ7CiAKKwkvKiBwZW5kaW5nIG1ldGFkYXRhIHJlcXVlc3RzICovCisJaW50IG1ldGFfcGVuZGluZzsKIAkvKiBudW1iZXIgb2YgcmVxdWVzdHMgdGhhdCBhcmUgb24gdGhlIGRpc3BhdGNoIGxpc3Qgb3IgaW5zaWRlIGRyaXZlciAqLwogCWludCBkaXNwYXRjaGVkOwogCkBAIC0xNTMsOCArMTU3LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBpb3ByaW8sIG9yZ19pb3ByaW87CiAJdW5zaWduZWQgc2hvcnQgaW9wcmlvX2NsYXNzLCBvcmdfaW9wcmlvX2NsYXNzOwogCi0JLyogdmFyaW91cyBzdGF0ZSBmbGFncywgc2VlIGJlbG93ICovCi0JdW5zaWduZWQgaW50IGZsYWdzOworCXBpZF90IHBpZDsKIH07CiAKIGVudW0gY2ZxcV9zdGF0ZV9mbGFncyB7CkBAIC0xOTgsNiArMjAxLDExIEBACiBDRlFfQ0ZRUV9GTlMoc3luYyk7CiAjdW5kZWYgQ0ZRX0NGUVFfRk5TCiAKKyNkZWZpbmUgY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsIGZtdCwgYXJncy4uLikJXAorCWJsa19hZGRfdHJhY2VfbXNnKChjZnFkKS0+cXVldWUsICJjZnElZCAiIGZtdCwgKGNmcXEpLT5waWQsICMjYXJncykKKyNkZWZpbmUgY2ZxX2xvZyhjZnFkLCBmbXQsIGFyZ3MuLi4pCVwKKwlibGtfYWRkX3RyYWNlX21zZygoY2ZxZCktPnF1ZXVlLCAiY2ZxICIgZm10LCAjI2FyZ3MpCisKIHN0YXRpYyB2b2lkIGNmcV9kaXNwYXRjaF9pbnNlcnQoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IHJlcXVlc3QgKik7CiBzdGF0aWMgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxX2dldF9xdWV1ZShzdHJ1Y3QgY2ZxX2RhdGEgKiwgaW50LAogCQkJCSAgICAgICBzdHJ1Y3QgaW9fY29udGV4dCAqLCBnZnBfdCk7CkBAIC0yMzQsOCArMjQyLDEwIEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBjZnFfc2NoZWR1bGVfZGlzcGF0Y2goc3RydWN0IGNmcV9kYXRhICpjZnFkKQogewotCWlmIChjZnFkLT5idXN5X3F1ZXVlcykKKwlpZiAoY2ZxZC0+YnVzeV9xdWV1ZXMpIHsKKwkJY2ZxX2xvZyhjZnFkLCAic2NoZWR1bGUgZGlzcGF0Y2giKTsKIAkJa2Jsb2NrZF9zY2hlZHVsZV93b3JrKCZjZnFkLT51bnBsdWdfd29yayk7CisJfQogfQogCiBzdGF0aWMgaW50IGNmcV9xdWV1ZV9lbXB0eShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKQEAgLTI3MCw2ICsyODAsNyBAQAogY2ZxX3NldF9wcmlvX3NsaWNlKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSkKIHsKIAljZnFxLT5zbGljZV9lbmQgPSBjZnFfcHJpb190b19zbGljZShjZnFkLCBjZnFxKSArIGppZmZpZXM7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJzZXRfc2xpY2U9JWx1IiwgY2ZxcS0+c2xpY2VfZW5kIC0gamlmZmllcyk7CiB9CiAKIC8qCkBAIC01MzksNiArNTUwLDcgQEAKICAqLwogc3RhdGljIHZvaWQgY2ZxX2FkZF9jZnFxX3JyKHN0cnVjdCBjZnFfZGF0YSAqY2ZxZCwgc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSkKIHsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImFkZF90b19yciIpOwogCUJVR19PTihjZnFfY2ZxcV9vbl9ycihjZnFxKSk7CiAJY2ZxX21hcmtfY2ZxcV9vbl9ycihjZnFxKTsKIAljZnFkLT5idXN5X3F1ZXVlcysrOwpAQCAtNTUyLDYgKzU2NCw3IEBACiAgKi8KIHN0YXRpYyB2b2lkIGNmcV9kZWxfY2ZxcV9ycihzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEpCiB7CisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJkZWxfZnJvbV9yciIpOwogCUJVR19PTighY2ZxX2NmcXFfb25fcnIoY2ZxcSkpOwogCWNmcV9jbGVhcl9jZnFxX29uX3JyKGNmcXEpOwogCkBAIC02MzgsNiArNjUxLDggQEAKIAlzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQgPSBxLT5lbGV2YXRvci0+ZWxldmF0b3JfZGF0YTsKIAogCWNmcWQtPnJxX2luX2RyaXZlcisrOworCWNmcV9sb2dfY2ZxcShjZnFkLCBSUV9DRlFRKHJxKSwgImFjdGl2YXRlIHJxLCBkcnY9JWQiLAorCQkJCQkJY2ZxZC0+cnFfaW5fZHJpdmVyKTsKIAogCS8qCiAJICogSWYgdGhlIGRlcHRoIGlzIGxhcmdlciAxLCBpdCByZWFsbHkgY291bGQgYmUgcXVldWVpbmcuIEJ1dCBsZXRzCkBAIC02NTcsNiArNjcyLDggQEAKIAogCVdBUk5fT04oIWNmcWQtPnJxX2luX2RyaXZlcik7CiAJY2ZxZC0+cnFfaW5fZHJpdmVyLS07CisJY2ZxX2xvZ19jZnFxKGNmcWQsIFJRX0NGUVEocnEpLCAiZGVhY3RpdmF0ZSBycSwgZHJ2PSVkIiwKKwkJCQkJCWNmcWQtPnJxX2luX2RyaXZlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNmcV9yZW1vdmVfcmVxdWVzdChzdHJ1Y3QgcmVxdWVzdCAqcnEpCkBAIC03NDYsNiArNzYzLDcgQEAKIAkJCQkgICBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogewogCWlmIChjZnFxKSB7CisJCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAic2V0X2FjdGl2ZSIpOwogCQljZnFxLT5zbGljZV9lbmQgPSAwOwogCQljZnFfY2xlYXJfY2ZxcV9tdXN0X2FsbG9jX3NsaWNlKGNmcXEpOwogCQljZnFfY2xlYXJfY2ZxcV9maWZvX2V4cGlyZShjZnFxKTsKQEAgLTc2Myw2ICs3ODEsOCBAQAogX19jZnFfc2xpY2VfZXhwaXJlZChzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBjZnFfcXVldWUgKmNmcXEsCiAJCSAgICBpbnQgdGltZWRfb3V0KQogeworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAic2xpY2UgZXhwaXJlZCB0PSVkIiwgdGltZWRfb3V0KTsKKwogCWlmIChjZnFfY2ZxcV93YWl0X3JlcXVlc3QoY2ZxcSkpCiAJCWRlbF90aW1lcigmY2ZxZC0+aWRsZV9zbGljZV90aW1lcik7CiAKQEAgLTc3Miw4ICs3OTIsMTAgQEAKIAkvKgogCSAqIHN0b3JlIHdoYXQgd2FzIGxlZnQgb2YgdGhpcyBzbGljZSwgaWYgdGhlIHF1ZXVlIGlkbGVkL3RpbWVkIG91dAogCSAqLwotCWlmICh0aW1lZF9vdXQgJiYgIWNmcV9jZnFxX3NsaWNlX25ldyhjZnFxKSkKKwlpZiAodGltZWRfb3V0ICYmICFjZnFfY2ZxcV9zbGljZV9uZXcoY2ZxcSkpIHsKIAkJY2ZxcS0+c2xpY2VfcmVzaWQgPSBjZnFxLT5zbGljZV9lbmQgLSBqaWZmaWVzOworCQljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgInJlc2lkPSVsZCIsIGNmcXEtPnNsaWNlX3Jlc2lkKTsKKwl9CiAKIAljZnFfcmVzb3J0X3JyX2xpc3QoY2ZxZCwgY2ZxcSk7CiAKQEAgLTg2Niw2ICs4ODgsMTIgQEAKIAkJcmV0dXJuOwogCiAJLyoKKwkgKiBzdGlsbCByZXF1ZXN0cyB3aXRoIHRoZSBkcml2ZXIsIGRvbid0IGlkbGUKKwkgKi8KKwlpZiAoY2ZxZC0+cnFfaW5fZHJpdmVyKQorCQlyZXR1cm47CisKKwkvKgogCSAqIHRhc2sgaGFzIGV4aXRlZCwgZG9uJ3Qgd2FpdAogCSAqLwogCWNpYyA9IGNmcWQtPmFjdGl2ZV9jaWM7CkBAIC04OTIsNiArOTIwLDcgQEAKIAkJc2wgPSBtaW4oc2wsIG1zZWNzX3RvX2ppZmZpZXMoQ0ZRX01JTl9UVCkpOwogCiAJbW9kX3RpbWVyKCZjZnFkLT5pZGxlX3NsaWNlX3RpbWVyLCBqaWZmaWVzICsgc2wpOworCWNmcV9sb2coY2ZxZCwgImFybV9pZGxlOiAlbHUiLCBzbCk7CiB9CiAKIC8qCkBAIC05MDIsNiArOTMxLDggQEAKIAlzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQgPSBxLT5lbGV2YXRvci0+ZWxldmF0b3JfZGF0YTsKIAlzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxID0gUlFfQ0ZRUShycSk7CiAKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImRpc3BhdGNoX2luc2VydCIpOworCiAJY2ZxX3JlbW92ZV9yZXF1ZXN0KHJxKTsKIAljZnFxLT5kaXNwYXRjaGVkKys7CiAJZWx2X2Rpc3BhdGNoX3NvcnQocSwgcnEpOwpAQCAtOTMxLDggKzk2Miw5IEBACiAJcnEgPSBycV9lbnRyeV9maWZvKGNmcXEtPmZpZm8ubmV4dCk7CiAKIAlpZiAodGltZV9iZWZvcmUoamlmZmllcywgcnEtPnN0YXJ0X3RpbWUgKyBjZnFkLT5jZnFfZmlmb19leHBpcmVbZmlmb10pKQotCQlyZXR1cm4gTlVMTDsKKwkJcnEgPSBOVUxMOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJmaWZvPSVwIiwgcnEpOwogCXJldHVybiBycTsKIH0KIApAQCAtMTA3Miw2ICsxMTA0LDcgQEAKIAogCUJVR19PTihjZnFkLT5idXN5X3F1ZXVlcyk7CiAKKwljZnFfbG9nKGNmcWQsICJmb3JjZWRfZGlzcGF0Y2g9JWRcbiIsIGRpc3BhdGNoZWQpOwogCXJldHVybiBkaXNwYXRjaGVkOwogfQogCkBAIC0xMTEyLDYgKzExNDUsNyBAQAogCQlkaXNwYXRjaGVkICs9IF9fY2ZxX2Rpc3BhdGNoX3JlcXVlc3RzKGNmcWQsIGNmcXEsIG1heF9kaXNwYXRjaCk7CiAJfQogCisJY2ZxX2xvZyhjZnFkLCAiZGlzcGF0Y2hlZD0lZCIsIGRpc3BhdGNoZWQpOwogCXJldHVybiBkaXNwYXRjaGVkOwogfQogCkBAIC0xMTMwLDYgKzExNjQsNyBAQAogCWlmICghYXRvbWljX2RlY19hbmRfdGVzdCgmY2ZxcS0+cmVmKSkKIAkJcmV0dXJuOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJwdXRfcXVldWUiKTsKIAlCVUdfT04ocmJfZmlyc3QoJmNmcXEtPnNvcnRfbGlzdCkpOwogCUJVR19PTihjZnFxLT5hbGxvY2F0ZWRbUkVBRF0gKyBjZnFxLT5hbGxvY2F0ZWRbV1JJVEVdKTsKIAlCVUdfT04oY2ZxX2NmcXFfb25fcnIoY2ZxcSkpOwpAQCAtMTE0Miw2ICsxMTc3LDkgQEAKIAlrbWVtX2NhY2hlX2ZyZWUoY2ZxX3Bvb2wsIGNmcXEpOwogfQogCisvKgorICogTXVzdCBhbHdheXMgYmUgY2FsbGVkIHdpdGggdGhlIHJjdV9yZWFkX2xvY2soKSBoZWxkCisgKi8KIHN0YXRpYyB2b2lkCiBfX2NhbGxfZm9yX2VhY2hfY2ljKHN0cnVjdCBpb19jb250ZXh0ICppb2MsCiAJCSAgICB2b2lkICgqZnVuYykoc3RydWN0IGlvX2NvbnRleHQgKiwgc3RydWN0IGNmcV9pb19jb250ZXh0ICopKQpAQCAtMTE3NCw4ICsxMjEyLDE5IEBACiAJa21lbV9jYWNoZV9mcmVlKGNmcV9pb2NfcG9vbCwgY2ljKTsKIAllbHZfaW9jX2NvdW50X2RlYyhpb2NfY291bnQpOwogCi0JaWYgKGlvY19nb25lICYmICFlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkKLQkJY29tcGxldGUoaW9jX2dvbmUpOworCWlmIChpb2NfZ29uZSkgeworCQkvKgorCQkgKiBDRlEgc2NoZWR1bGVyIGlzIGV4aXRpbmcsIGdyYWIgZXhpdCBsb2NrIGFuZCBjaGVjaworCQkgKiB0aGUgcGVuZGluZyBpbyBjb250ZXh0IGNvdW50LiBJZiBpdCBoaXRzIHplcm8sCisJCSAqIGNvbXBsZXRlIGlvY19nb25lIGFuZCBzZXQgaXQgYmFjayB0byBOVUxMCisJCSAqLworCQlzcGluX2xvY2soJmlvY19nb25lX2xvY2spOworCQlpZiAoaW9jX2dvbmUgJiYgIWVsdl9pb2NfY291bnRfcmVhZChpb2NfY291bnQpKSB7CisJCQljb21wbGV0ZShpb2NfZ29uZSk7CisJCQlpb2NfZ29uZSA9IE5VTEw7CisJCX0KKwkJc3Bpbl91bmxvY2soJmlvY19nb25lX2xvY2spOworCX0KIH0KIAogc3RhdGljIHZvaWQgY2ZxX2NpY19mcmVlKHN0cnVjdCBjZnFfaW9fY29udGV4dCAqY2ljKQpAQCAtMTE5Nyw2ICsxMjQ2LDExIEBACiAJY2ZxX2NpY19mcmVlKGNpYyk7CiB9CiAKKy8qCisgKiBNdXN0IGJlIGNhbGxlZCB3aXRoIHJjdV9yZWFkX2xvY2soKSBoZWxkIG9yIHByZWVtcHRpb24gb3RoZXJ3aXNlIGRpc2FibGVkLgorICogT25seSB0d28gY2FsbGVycyBvZiB0aGlzIC0gLT5kdG9yKCkgd2hpY2ggaXMgY2FsbGVkIHdpdGggdGhlIHJjdV9yZWFkX2xvY2soKSwKKyAqIGFuZCAtPnRyaW0oKSB3aGljaCBpcyBjYWxsZWQgd2l0aCB0aGUgdGFzayBsb2NrIGhlbGQKKyAqLwogc3RhdGljIHZvaWQgY2ZxX2ZyZWVfaW9fY29udGV4dChzdHJ1Y3QgaW9fY29udGV4dCAqaW9jKQogewogCS8qCkBAIC0xNDE5LDYgKzE0NzMsOCBAQAogCQkJCWNmcV9tYXJrX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CiAJCQljZnFfbWFya19jZnFxX3N5bmMoY2ZxcSk7CiAJCX0KKwkJY2ZxcS0+cGlkID0gY3VycmVudC0+cGlkOworCQljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImFsbG9jZWQiKTsKIAl9CiAKIAlpZiAobmV3X2NmcXEpCkBAIC0xNTAyLDIwICsxNTU4LDI0IEBACiBjZnFfY2ljX2xvb2t1cChzdHJ1Y3QgY2ZxX2RhdGEgKmNmcWQsIHN0cnVjdCBpb19jb250ZXh0ICppb2MpCiB7CiAJc3RydWN0IGNmcV9pb19jb250ZXh0ICpjaWM7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl2b2lkICprOwogCiAJaWYgKHVubGlrZWx5KCFpb2MpKQogCQlyZXR1cm4gTlVMTDsKIAorCXJjdV9yZWFkX2xvY2soKTsKKwogCS8qCiAJICogd2UgbWFpbnRhaW4gYSBsYXN0LWhpdCBjYWNoZSwgdG8gYXZvaWQgYnJvd3Npbmcgb3ZlciB0aGUgdHJlZQogCSAqLwogCWNpYyA9IHJjdV9kZXJlZmVyZW5jZShpb2MtPmlvY19kYXRhKTsKLQlpZiAoY2ljICYmIGNpYy0+a2V5ID09IGNmcWQpCisJaWYgKGNpYyAmJiBjaWMtPmtleSA9PSBjZnFkKSB7CisJCXJjdV9yZWFkX3VubG9jaygpOwogCQlyZXR1cm4gY2ljOworCX0KIAogCWRvIHsKLQkJcmN1X3JlYWRfbG9jaygpOwogCQljaWMgPSByYWRpeF90cmVlX2xvb2t1cCgmaW9jLT5yYWRpeF9yb290LCAodW5zaWduZWQgbG9uZykgY2ZxZCk7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQlpZiAoIWNpYykKQEAgLTE1MjQsMTAgKzE1ODQsMTMgQEAKIAkJayA9IGNpYy0+a2V5OwogCQlpZiAodW5saWtlbHkoIWspKSB7CiAJCQljZnFfZHJvcF9kZWFkX2NpYyhjZnFkLCBpb2MsIGNpYyk7CisJCQlyY3VfcmVhZF9sb2NrKCk7CiAJCQljb250aW51ZTsKIAkJfQogCisJCXNwaW5fbG9ja19pcnFzYXZlKCZpb2MtPmxvY2ssIGZsYWdzKTsKIAkJcmN1X2Fzc2lnbl9wb2ludGVyKGlvYy0+aW9jX2RhdGEsIGNpYyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvYy0+bG9jaywgZmxhZ3MpOwogCQlicmVhazsKIAl9IHdoaWxlICgxKTsKIApAQCAtMTY2MCw3ICsxNzIzLDcgQEAKIGNmcV91cGRhdGVfaWRsZV93aW5kb3coc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxLAogCQkgICAgICAgc3RydWN0IGNmcV9pb19jb250ZXh0ICpjaWMpCiB7Ci0JaW50IGVuYWJsZV9pZGxlOworCWludCBvbGRfaWRsZSwgZW5hYmxlX2lkbGU7CiAKIAkvKgogCSAqIERvbid0IGlkbGUgZm9yIGFzeW5jIG9yIGlkbGUgaW8gcHJpbyBjbGFzcwpAQCAtMTY2OCw3ICsxNzMxLDcgQEAKIAlpZiAoIWNmcV9jZnFxX3N5bmMoY2ZxcSkgfHwgY2ZxX2NsYXNzX2lkbGUoY2ZxcSkpCiAJCXJldHVybjsKIAotCWVuYWJsZV9pZGxlID0gY2ZxX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJZW5hYmxlX2lkbGUgPSBvbGRfaWRsZSA9IGNmcV9jZnFxX2lkbGVfd2luZG93KGNmcXEpOwogCiAJaWYgKCFhdG9taWNfcmVhZCgmY2ljLT5pb2MtPm5yX3Rhc2tzKSB8fCAhY2ZxZC0+Y2ZxX3NsaWNlX2lkbGUgfHwKIAkgICAgKGNmcWQtPmh3X3RhZyAmJiBDSUNfU0VFS1koY2ljKSkpCkBAIC0xNjgwLDEwICsxNzQzLDEzIEBACiAJCQllbmFibGVfaWRsZSA9IDE7CiAJfQogCi0JaWYgKGVuYWJsZV9pZGxlKQotCQljZnFfbWFya19jZnFxX2lkbGVfd2luZG93KGNmcXEpOwotCWVsc2UKLQkJY2ZxX2NsZWFyX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJaWYgKG9sZF9pZGxlICE9IGVuYWJsZV9pZGxlKSB7CisJCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAiaWRsZT0lZCIsIGVuYWJsZV9pZGxlKTsKKwkJaWYgKGVuYWJsZV9pZGxlKQorCQkJY2ZxX21hcmtfY2ZxcV9pZGxlX3dpbmRvdyhjZnFxKTsKKwkJZWxzZQorCQkJY2ZxX2NsZWFyX2NmcXFfaWRsZV93aW5kb3coY2ZxcSk7CisJfQogfQogCiAvKgpAQCAtMTc0Miw2ICsxODA4LDcgQEAKICAqLwogc3RhdGljIHZvaWQgY2ZxX3ByZWVtcHRfcXVldWUoc3RydWN0IGNmcV9kYXRhICpjZnFkLCBzdHJ1Y3QgY2ZxX3F1ZXVlICpjZnFxKQogeworCWNmcV9sb2dfY2ZxcShjZnFkLCBjZnFxLCAicHJlZW1wdCIpOwogCWNmcV9zbGljZV9leHBpcmVkKGNmcWQsIDEpOwogCiAJLyoKQEAgLTE4MDMsNiArMTg3MCw3IEBACiAJc3RydWN0IGNmcV9kYXRhICpjZnFkID0gcS0+ZWxldmF0b3ItPmVsZXZhdG9yX2RhdGE7CiAJc3RydWN0IGNmcV9xdWV1ZSAqY2ZxcSA9IFJRX0NGUVEocnEpOwogCisJY2ZxX2xvZ19jZnFxKGNmcWQsIGNmcXEsICJpbnNlcnRfcmVxdWVzdCIpOwogCWNmcV9pbml0X3ByaW9fZGF0YShjZnFxLCBSUV9DSUMocnEpLT5pb2MpOwogCiAJY2ZxX2FkZF9ycV9yYihycSk7CkBAIC0xODIwLDYgKzE4ODgsNyBAQAogCXVuc2lnbmVkIGxvbmcgbm93OwogCiAJbm93ID0gamlmZmllczsKKwljZnFfbG9nX2NmcXEoY2ZxZCwgY2ZxcSwgImNvbXBsZXRlIik7CiAKIAlXQVJOX09OKCFjZnFkLT5ycV9pbl9kcml2ZXIpOwogCVdBUk5fT04oIWNmcXEtPmRpc3BhdGNoZWQpOwpAQCAtMTk4OSw2ICsyMDU4LDcgQEAKIAogCWNmcV9zY2hlZHVsZV9kaXNwYXRjaChjZnFkKTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKHEtPnF1ZXVlX2xvY2ssIGZsYWdzKTsKKwljZnFfbG9nKGNmcWQsICJzZXRfcmVxdWVzdCBmYWlsIik7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTIwMTQsNiArMjA4NCw4IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgdGltZWRfb3V0ID0gMTsKIAorCWNmcV9sb2coY2ZxZCwgImlkbGUgdGltZXIgZmlyZWQiKTsKKwogCXNwaW5fbG9ja19pcnFzYXZlKGNmcWQtPnF1ZXVlLT5xdWV1ZV9sb2NrLCBmbGFncyk7CiAKIAljZnFxID0gY2ZxZC0+YWN0aXZlX3F1ZXVlOwpAQCAtMjEzNCw2ICsyMjA2LDEwIEBACiAKIHN0YXRpYyB2b2lkIGNmcV9zbGFiX2tpbGwodm9pZCkKIHsKKwkvKgorCSAqIENhbGxlciBhbHJlYWR5IGVuc3VyZWQgdGhhdCBwZW5kaW5nIFJDVSBjYWxsYmFja3MgYXJlIGNvbXBsZXRlZCwKKwkgKiBzbyB3ZSBzaG91bGQgaGF2ZSBubyBidXN5IGFsbG9jYXRpb25zIGF0IHRoaXMgcG9pbnQuCisJICovCiAJaWYgKGNmcV9wb29sKQogCQlrbWVtX2NhY2hlX2Rlc3Ryb3koY2ZxX3Bvb2wpOwogCWlmIChjZnFfaW9jX3Bvb2wpCkBAIC0yMjkyLDggKzIzNjgsMTMgQEAKIAlpb2NfZ29uZSA9ICZhbGxfZ29uZTsKIAkvKiBpb2NfZ29uZSdzIHVwZGF0ZSBtdXN0IGJlIHZpc2libGUgYmVmb3JlIHJlYWRpbmcgaW9jX2NvdW50ICovCiAJc21wX3dtYigpOworCisJLyoKKwkgKiB0aGlzIGFsc28gcHJvdGVjdHMgdXMgZnJvbSBlbnRlcmluZyBjZnFfc2xhYl9raWxsKCkgd2l0aAorCSAqIHBlbmRpbmcgUkNVIGNhbGxiYWNrcworCSAqLwogCWlmIChlbHZfaW9jX2NvdW50X3JlYWQoaW9jX2NvdW50KSkKLQkJd2FpdF9mb3JfY29tcGxldGlvbihpb2NfZ29uZSk7CisJCXdhaXRfZm9yX2NvbXBsZXRpb24oJmFsbF9nb25lKTsKIAljZnFfc2xhYl9raWxsKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2Jsb2NrL2NtZC1maWx0ZXIuYyBiL2Jsb2NrL2NtZC1maWx0ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWM0NDA0Ci0tLSAvZGV2L251bGwKKysrIGIvYmxvY2svY21kLWZpbHRlci5jCkBAIC0wLDAgKzEsMzM0IEBACisvKgorICogQ29weXJpZ2h0IDIwMDQgUGV0ZXIgTS4gSm9uZXMgPHBqb25lc0ByZWRoYXQuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICoKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2VucworICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9nZW5oZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvcGFyc2VyLmg+CisjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgorI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorCisjaW5jbHVkZSA8c2NzaS9zY3NpLmg+CisjaW5jbHVkZSA8bGludXgvY2Ryb20uaD4KKworaW50IGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIsCisJCQkJICB1bnNpZ25lZCBjaGFyICpjbWQsIG1vZGVfdCAqZl9tb2RlKQoreworCS8qIHJvb3QgY2FuIGRvIGFueSBjb21tYW5kLiAqLworCWlmIChjYXBhYmxlKENBUF9TWVNfUkFXSU8pKQorCQlyZXR1cm4gMDsKKworCS8qIGlmIHRoZXJlJ3Mgbm8gZmlsdGVyIHNldCwgYXNzdW1lIHdlJ3JlIGZpbHRlcmluZyBldmVyeXRoaW5nIG91dCAqLworCWlmICghZmlsdGVyKQorCQlyZXR1cm4gLUVQRVJNOworCisJLyogQW55Ym9keSB3aG8gY2FuIG9wZW4gdGhlIGRldmljZSBjYW4gZG8gYSByZWFkLXNhZmUgY29tbWFuZCAqLworCWlmICh0ZXN0X2JpdChjbWRbMF0sIGZpbHRlci0+cmVhZF9vaykpCisJCXJldHVybiAwOworCisJLyogV3JpdGUtc2FmZSBjb21tYW5kcyByZXF1aXJlIGEgd3JpdGFibGUgb3BlbiAqLworCWlmICh0ZXN0X2JpdChjbWRbMF0sIGZpbHRlci0+d3JpdGVfb2spICYmICgqZl9tb2RlICYgRk1PREVfV1JJVEUpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAtRVBFUk07Cit9CitFWFBPUlRfU1lNQk9MKGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKTsKKworaW50IGJsa192ZXJpZnlfY29tbWFuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgY2hhciAqY21kKQoreworCXN0cnVjdCBnZW5kaXNrICpkaXNrOworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisKKwlpZiAoIWZpbGUpCisJCXJldHVybiAtRUlOVkFMOworCisJaW5vZGUgPSBmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZTsKKwlpZiAoIWlub2RlKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWRpc2sgPSBpbm9kZS0+aV9iZGV2LT5iZF9kaXNrOworCisJcmV0dXJuIGJsa19jbWRfZmlsdGVyX3ZlcmlmeV9jb21tYW5kKCZkaXNrLT5jbWRfZmlsdGVyLAorCQkJCQkJIGNtZCwgJmZpbGUtPmZfbW9kZSk7Cit9CitFWFBPUlRfU1lNQk9MKGJsa192ZXJpZnlfY29tbWFuZCk7CisKKy8qIGFuZCBub3csIHRoZSBzeXNmcyBzdHVmZiAqLworc3RhdGljIHNzaXplX3QgcmNmX2NtZHNfc2hvdyhzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLCBjaGFyICpwYWdlLAorCQkJICAgICBpbnQgcncpCit7CisJY2hhciAqbnBhZ2UgPSBwYWdlOworCXVuc2lnbmVkIGxvbmcgKm9rYml0czsKKwlpbnQgaTsKKworCWlmIChydyA9PSBSRUFEKQorCQlva2JpdHMgPSBmaWx0ZXItPnJlYWRfb2s7CisJZWxzZQorCQlva2JpdHMgPSBmaWx0ZXItPndyaXRlX29rOworCisJZm9yIChpID0gMDsgaSA8IEJMS19TQ1NJX01BWF9DTURTOyBpKyspIHsKKwkJaWYgKHRlc3RfYml0KGksIG9rYml0cykpIHsKKwkJCXNwcmludGYobnBhZ2UsICIlMDJ4IiwgaSk7CisJCQlucGFnZSArPSAyOworCQkJaWYgKGkgPCBCTEtfU0NTSV9NQVhfQ01EUyAtIDEpCisJCQkJc3ByaW50ZihucGFnZSsrLCAiICIpOworCQl9CisJfQorCisJaWYgKG5wYWdlICE9IHBhZ2UpCisJCW5wYWdlICs9IHNwcmludGYobnBhZ2UsICJcbiIpOworCisJcmV0dXJuIG5wYWdlIC0gcGFnZTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX3JlYWRjbWRzX3Nob3coc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc2hvdyhmaWx0ZXIsIHBhZ2UsIFJFQUQpOworfQorCitzdGF0aWMgc3NpemVfdCByY2Zfd3JpdGVjbWRzX3Nob3coc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCQkgY2hhciAqcGFnZSkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc2hvdyhmaWx0ZXIsIHBhZ2UsIFdSSVRFKTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX2NtZHNfc3RvcmUoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCSAgICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCwgaW50IHJ3KQoreworCXNzaXplX3QgcmV0ID0gMDsKKwl1bnNpZ25lZCBsb25nIG9rYml0c1tCTEtfU0NTSV9DTURfUEVSX0xPTkddLCAqdGFyZ2V0X29rYml0czsKKwlpbnQgY21kLCBzdGF0dXMsIGxlbjsKKwlzdWJzdHJpbmdfdCBzczsKKworCW1lbXNldCgmb2tiaXRzLCAwLCBzaXplb2Yob2tiaXRzKSk7CisKKwlmb3IgKGxlbiA9IHN0cmxlbihwYWdlKTsgbGVuID4gMDsgbGVuIC09IDMpIHsKKwkJaWYgKGxlbiA8IDIpCisJCQlicmVhazsKKwkJc3MuZnJvbSA9IChjaGFyICopIHBhZ2UgKyByZXQ7CisJCXNzLnRvID0gKGNoYXIgKikgcGFnZSArIHJldCArIDI7CisJCXJldCArPSAzOworCQlzdGF0dXMgPSBtYXRjaF9oZXgoJnNzLCAmY21kKTsKKwkJLyogZWl0aGVyIG9mIHRoZXNlIGNhc2VzIG1lYW5zIGludmFsaWQgaW5wdXQsIHNvIGRvIG5vdGhpbmcuICovCisJCWlmIChzdGF0dXMgfHwgY21kID49IEJMS19TQ1NJX01BWF9DTURTKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJX19zZXRfYml0KGNtZCwgb2tiaXRzKTsKKwl9CisKKwlpZiAocncgPT0gUkVBRCkKKwkJdGFyZ2V0X29rYml0cyA9IGZpbHRlci0+cmVhZF9vazsKKwllbHNlCisJCXRhcmdldF9va2JpdHMgPSBmaWx0ZXItPndyaXRlX29rOworCisJbWVtbW92ZSh0YXJnZXRfb2tiaXRzLCBva2JpdHMsIHNpemVvZihva2JpdHMpKTsKKwlyZXR1cm4gY291bnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHJjZl9yZWFkY21kc19zdG9yZShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLAorCQkJCSAgY29uc3QgY2hhciAqcGFnZSwgc2l6ZV90IGNvdW50KQoreworCXJldHVybiByY2ZfY21kc19zdG9yZShmaWx0ZXIsIHBhZ2UsIGNvdW50LCBSRUFEKTsKK30KKworc3RhdGljIHNzaXplX3QgcmNmX3dyaXRlY21kc19zdG9yZShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyLAorCQkJCSAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBjb3VudCkKK3sKKwlyZXR1cm4gcmNmX2NtZHNfc3RvcmUoZmlsdGVyLCBwYWdlLCBjb3VudCwgV1JJVEUpOworfQorCitzdHJ1Y3QgcmNmX3N5c2ZzX2VudHJ5IHsKKwlzdHJ1Y3QgYXR0cmlidXRlIGF0dHI7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICosIGNoYXIgKik7CisJc3NpemVfdCAoKnN0b3JlKShzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7Cit9OworCitzdGF0aWMgc3RydWN0IHJjZl9zeXNmc19lbnRyeSByY2ZfcmVhZGNtZHNfZW50cnkgPSB7CisJLmF0dHIgPSB7IC5uYW1lID0gInJlYWRfdGFibGUiLCAubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSIH0sCisJLnNob3cgPSByY2ZfcmVhZGNtZHNfc2hvdywKKwkuc3RvcmUgPSByY2ZfcmVhZGNtZHNfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IHJjZl9zeXNmc19lbnRyeSByY2Zfd3JpdGVjbWRzX2VudHJ5ID0geworCS5hdHRyID0gey5uYW1lID0gIndyaXRlX3RhYmxlIiwgLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUiB9LAorCS5zaG93ID0gcmNmX3dyaXRlY21kc19zaG93LAorCS5zdG9yZSA9IHJjZl93cml0ZWNtZHNfc3RvcmUsCit9OworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZGVmYXVsdF9hdHRyc1tdID0geworCSZyY2ZfcmVhZGNtZHNfZW50cnkuYXR0ciwKKwkmcmNmX3dyaXRlY21kc19lbnRyeS5hdHRyLAorCU5VTEwsCit9OworCisjZGVmaW5lIHRvX3JjZihhdHIpIGNvbnRhaW5lcl9vZigoYXRyKSwgc3RydWN0IHJjZl9zeXNmc19lbnRyeSwgYXR0cikKKworc3RhdGljIHNzaXplX3QKK3JjZl9hdHRyX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCit7CisJc3RydWN0IHJjZl9zeXNmc19lbnRyeSAqZW50cnkgPSB0b19yY2YoYXR0cik7CisJc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlcjsKKworCWZpbHRlciA9IGNvbnRhaW5lcl9vZihrb2JqLCBzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciwga29iaik7CisJaWYgKGVudHJ5LT5zaG93KQorCQlyZXR1cm4gZW50cnktPnNob3coZmlsdGVyLCBwYWdlKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3NpemVfdAorcmNmX2F0dHJfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCisJCQljb25zdCBjaGFyICpwYWdlLCBzaXplX3QgbGVuZ3RoKQoreworCXN0cnVjdCByY2Zfc3lzZnNfZW50cnkgKmVudHJ5ID0gdG9fcmNmKGF0dHIpOworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXI7CisKKwlpZiAoIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCXJldHVybiAtRVBFUk07CisKKwlpZiAoIWVudHJ5LT5zdG9yZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlmaWx0ZXIgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIsIGtvYmopOworCXJldHVybiBlbnRyeS0+c3RvcmUoZmlsdGVyLCBwYWdlLCBsZW5ndGgpOworfQorCitzdGF0aWMgc3RydWN0IHN5c2ZzX29wcyByY2Zfc3lzZnNfb3BzID0geworCS5zaG93ID0gcmNmX2F0dHJfc2hvdywKKwkuc3RvcmUgPSByY2ZfYXR0cl9zdG9yZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qga29ial90eXBlIHJjZl9rdHlwZSA9IHsKKwkuc3lzZnNfb3BzID0gJnJjZl9zeXNmc19vcHMsCisJLmRlZmF1bHRfYXR0cnMgPSBkZWZhdWx0X2F0dHJzLAorfTsKKworI2lmbmRlZiBNQUlOVEVOQU5DRV9JTl9DTUQKKyNkZWZpbmUgTUFJTlRFTkFOQ0VfSU5fQ01EIDB4YTMKKyNlbmRpZgorCitzdGF0aWMgdm9pZCByY2Zfc2V0X2RlZmF1bHRzKHN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIpCit7CisJLyogQmFzaWMgcmVhZC1vbmx5IGNvbW1hbmRzICovCisJX19zZXRfYml0KFRFU1RfVU5JVF9SRUFEWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVRVUVTVF9TRU5TRSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF82LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzEwLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzEyLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEXzE2LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRUFEX0JVRkZFUiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9ERUZFQ1RfREFUQSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9DQVBBQ0lUWSwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoUkVBRF9MT05HLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChJTlFVSVJZLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChNT0RFX1NFTlNFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChNT0RFX1NFTlNFXzEwLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChMT0dfU0VOU0UsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFNUQVJUX1NUT1AsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1ZFUklGWV8xMCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoVkVSSUZZXzE2LCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChSRVBPUlRfTFVOUywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoU0VSVklDRV9BQ1RJT05fSU4sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KFJFQ0VJVkVfRElBR05PU1RJQywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoTUFJTlRFTkFOQ0VfSU5fQ01ELCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0JVRkZFUl9DQVBBQ0lUWSwgZmlsdGVyLT5yZWFkX29rKTsKKworCS8qIEF1ZGlvIENEIGNvbW1hbmRzICovCisJX19zZXRfYml0KEdQQ01EX1BMQVlfQ0QsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1BMQVlfQVVESU9fMTAsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1BMQVlfQVVESU9fTVNGLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QTEFZX0FVRElPX1RJLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9QQVVTRV9SRVNVTUUsIGZpbHRlci0+cmVhZF9vayk7CisKKwkvKiBDRC9EVkQgZGF0YSByZWFkaW5nICovCisJX19zZXRfYml0KEdQQ01EX1JFQURfQ0QsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfQ0RfTVNGLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0RJU0NfSU5GTywgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9DRFZEX0NBUEFDSVRZLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0RWRF9TVFJVQ1RVUkUsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfSEVBREVSLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX1RSQUNLX1JaT05FX0lORk8sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFQURfU1VCQ0hBTk5FTCwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfUkVBRF9UT0NfUE1BX0FUSVAsIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1JFUE9SVF9LRVksIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX1NDQU4sIGZpbHRlci0+cmVhZF9vayk7CisJX19zZXRfYml0KEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9SRUFEX0ZPUk1BVF9DQVBBQ0lUSUVTLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9HRVRfRVZFTlRfU1RBVFVTX05PVElGSUNBVElPTiwgZmlsdGVyLT5yZWFkX29rKTsKKwlfX3NldF9iaXQoR1BDTURfR0VUX1BFUkZPUk1BTkNFLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9TRUVLLCBmaWx0ZXItPnJlYWRfb2spOworCV9fc2V0X2JpdChHUENNRF9TVE9QX1BMQVlfU0NBTiwgZmlsdGVyLT5yZWFkX29rKTsKKworCS8qIEJhc2ljIHdyaXRpbmcgY29tbWFuZHMgKi8KKwlfX3NldF9iaXQoV1JJVEVfNiwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFXzEwLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfVkVSSUZZLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoV1JJVEVfMTIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV9WRVJJRllfMTIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV8xNiwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KFdSSVRFX0xPTkcsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChXUklURV9MT05HXzIsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChFUkFTRSwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX01PREVfU0VMRUNUXzEwLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoTU9ERV9TRUxFQ1QsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChMT0dfU0VMRUNULCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfQkxBTkssIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9DTE9TRV9UUkFDSywgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX0ZMVVNIX0NBQ0hFLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfRk9STUFUX1VOSVQsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9SRVBBSVJfUlpPTkVfVFJBQ0ssIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9SRVNFUlZFX1JaT05FX1RSQUNLLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9EVkRfU1RSVUNUVVJFLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9FVkVOVCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFTkRfS0VZLCBmaWx0ZXItPndyaXRlX29rKTsKKwlfX3NldF9iaXQoR1BDTURfU0VORF9PUEMsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9TRU5EX0NVRV9TSEVFVCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFVF9TUEVFRCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1BSRVZFTlRfQUxMT1dfTUVESVVNX1JFTU9WQUwsIGZpbHRlci0+d3JpdGVfb2spOworCV9fc2V0X2JpdChHUENNRF9MT0FEX1VOTE9BRCwgZmlsdGVyLT53cml0ZV9vayk7CisJX19zZXRfYml0KEdQQ01EX1NFVF9TVFJFQU1JTkcsIGZpbHRlci0+d3JpdGVfb2spOworfQorCitpbnQgYmxrX3JlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3sKKwlpbnQgcmV0OworCXN0cnVjdCBibGtfc2NzaV9jbWRfZmlsdGVyICpmaWx0ZXIgPSAmZGlzay0+Y21kX2ZpbHRlcjsKKwlzdHJ1Y3Qga29iamVjdCAqcGFyZW50ID0ga29iamVjdF9nZXQoZGlzay0+aG9sZGVyX2Rpci0+cGFyZW50KTsKKworCWlmICghcGFyZW50KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKCZmaWx0ZXItPmtvYmosICZyY2Zfa3R5cGUsIHBhcmVudCwKKwkJCQkgIiVzIiwgImNtZF9maWx0ZXIiKTsKKworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmNmX3NldF9kZWZhdWx0cyhmaWx0ZXIpOworCXJldHVybiAwOworfQorCit2b2lkIGJsa191bnJlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzaykKK3sKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciAqZmlsdGVyID0gJmRpc2stPmNtZF9maWx0ZXI7CisKKwlrb2JqZWN0X3B1dCgmZmlsdGVyLT5rb2JqKTsKKwlrb2JqZWN0X3B1dChkaXNrLT5ob2xkZXJfZGlyLT5wYXJlbnQpOworfQorCmRpZmYgLS1naXQgYS9ibG9jay9lbGV2YXRvci5jIGIvYmxvY2svZWxldmF0b3IuYwppbmRleCA5ODBmOGFlLi5lZDZmOGYzIDEwMDY0NAotLS0gYS9ibG9jay9lbGV2YXRvci5jCisrKyBiL2Jsb2NrL2VsZXZhdG9yLmMKQEAgLTg2LDYgKzg2LDEyIEBACiAJaWYgKHJxLT5ycV9kaXNrICE9IGJpby0+YmlfYmRldi0+YmRfZGlzayB8fCBycS0+c3BlY2lhbCkKIAkJcmV0dXJuIDA7CiAKKwkvKgorCSAqIG9ubHkgbWVyZ2UgaW50ZWdyaXR5IHByb3RlY3RlZCBiaW8gaW50byBkaXR0byBycQorCSAqLworCWlmIChiaW9faW50ZWdyaXR5KGJpbykgIT0gYmxrX2ludGVncml0eV9ycShycSkpCisJCXJldHVybiAwOworCiAJaWYgKCFlbHZfaW9zY2hlZF9hbGxvd19tZXJnZShycSwgYmlvKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTE0NCw3ICsxNTAsNyBAQAogCQllbHNlCiAJCQlzcHJpbnRmKGVsdiwgIiVzLWlvc2NoZWQiLCBuYW1lKTsKIAotCQlyZXF1ZXN0X21vZHVsZShlbHYpOworCQlyZXF1ZXN0X21vZHVsZSgiJXMiLCBlbHYpOwogCQlzcGluX2xvY2soJmVsdl9saXN0X2xvY2spOwogCQllID0gZWxldmF0b3JfZmluZChuYW1lKTsKIAl9CkBAIC0xMTEwLDYgKzExMTYsOCBAQAogCXF1ZXVlX2ZsYWdfY2xlYXIoUVVFVUVfRkxBR19FTFZTV0lUQ0gsIHEpOwogCXNwaW5fdW5sb2NrX2lycShxLT5xdWV1ZV9sb2NrKTsKIAorCWJsa19hZGRfdHJhY2VfbXNnKHEsICJlbHYgc3dpdGNoOiAlcyIsIGUtPmVsZXZhdG9yX3R5cGUtPmVsZXZhdG9yX25hbWUpOworCiAJcmV0dXJuIDE7CiAKIGZhaWxfcmVnaXN0ZXI6CmRpZmYgLS1naXQgYS9ibG9jay9nZW5oZC5jIGIvYmxvY2svZ2VuaGQuYwppbmRleCAxMjlhZDkzLi45MDc0ZjM4IDEwMDY0NAotLS0gYS9ibG9jay9nZW5oZC5jCisrKyBiL2Jsb2NrL2dlbmhkLmMKQEAgLTE4OSw2ICsxODksNyBAQAogCQkJICAgIGRpc2stPm1pbm9ycywgTlVMTCwgZXhhY3RfbWF0Y2gsIGV4YWN0X2xvY2ssIGRpc2spOwogCXJlZ2lzdGVyX2Rpc2soZGlzayk7CiAJYmxrX3JlZ2lzdGVyX3F1ZXVlKGRpc2spOworCWJsa19yZWdpc3Rlcl9maWx0ZXIoZGlzayk7CiAKIAliZGkgPSAmZGlzay0+cXVldWUtPmJhY2tpbmdfZGV2X2luZm87CiAJYmRpX3JlZ2lzdGVyX2RldihiZGksIE1LREVWKGRpc2stPm1ham9yLCBkaXNrLT5maXJzdF9taW5vcikpOwpAQCAtMjAwLDYgKzIwMSw3IEBACiAKIHZvaWQgdW5saW5rX2dlbmRpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spCiB7CisJYmxrX3VucmVnaXN0ZXJfZmlsdGVyKGRpc2spOwogCXN5c2ZzX3JlbW92ZV9saW5rKCZkaXNrLT5kZXYua29iaiwgImJkaSIpOwogCWJkaV91bnJlZ2lzdGVyKCZkaXNrLT5xdWV1ZS0+YmFja2luZ19kZXZfaW5mbyk7CiAJYmxrX3VucmVnaXN0ZXJfcXVldWUoZGlzayk7CkBAIC00MDAsNiArNDAyLDE0IEBACiAJCSAgICAgICAoZGlzay0+ZmxhZ3MgJiBHRU5IRF9GTF9SRU1PVkFCTEUgPyAxIDogMCkpOwogfQogCitzdGF0aWMgc3NpemVfdCBkaXNrX3JvX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBkZXZfdG9fZGlzayhkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIGRpc2stPnBvbGljeSA/IDEgOiAwKTsKK30KKwogc3RhdGljIHNzaXplX3QgZGlza19zaXplX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogCQkJICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKQEAgLTQ3Miw2ICs0ODIsNyBAQAogCiBzdGF0aWMgREVWSUNFX0FUVFIocmFuZ2UsIFNfSVJVR08sIGRpc2tfcmFuZ2Vfc2hvdywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIocmVtb3ZhYmxlLCBTX0lSVUdPLCBkaXNrX3JlbW92YWJsZV9zaG93LCBOVUxMKTsKK3N0YXRpYyBERVZJQ0VfQVRUUihybywgU19JUlVHTywgZGlza19yb19zaG93LCBOVUxMKTsKIHN0YXRpYyBERVZJQ0VfQVRUUihzaXplLCBTX0lSVUdPLCBkaXNrX3NpemVfc2hvdywgTlVMTCk7CiBzdGF0aWMgREVWSUNFX0FUVFIoY2FwYWJpbGl0eSwgU19JUlVHTywgZGlza19jYXBhYmlsaXR5X3Nob3csIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKHN0YXQsIFNfSVJVR08sIGRpc2tfc3RhdF9zaG93LCBOVUxMKTsKQEAgLTQ4Myw2ICs0OTQsNyBAQAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRpc2tfYXR0cnNbXSA9IHsKIAkmZGV2X2F0dHJfcmFuZ2UuYXR0ciwKIAkmZGV2X2F0dHJfcmVtb3ZhYmxlLmF0dHIsCisJJmRldl9hdHRyX3JvLmF0dHIsCiAJJmRldl9hdHRyX3NpemUuYXR0ciwKIAkmZGV2X2F0dHJfY2FwYWJpbGl0eS5hdHRyLAogCSZkZXZfYXR0cl9zdGF0LmF0dHIsCkBAIC02NjAsNiArNjcyLDggQEAKIAogCW11dGV4X2xvY2soJmJsb2NrX2NsYXNzX2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmYmxvY2tfY2xhc3MuZGV2aWNlcywgbm9kZSkgeworCQlpZiAoZGV2LT50eXBlICE9ICZkaXNrX3R5cGUpCisJCQljb250aW51ZTsKIAkJaWYgKHN0cmNtcChkZXYtPmJ1c19pZCwgbmFtZSkgPT0gMCkgewogCQkJc3RydWN0IGdlbmRpc2sgKmRpc2sgPSBkZXZfdG9fZGlzayhkZXYpOwogCmRpZmYgLS1naXQgYS9ibG9jay9zY3NpX2lvY3RsLmMgYi9ibG9jay9zY3NpX2lvY3RsLmMKaW5kZXggNzgxOTljMC4uYzViOWJjZiAxMDA2NDQKLS0tIGEvYmxvY2svc2NzaV9pb2N0bC5jCisrKyBiL2Jsb2NrL3Njc2lfaW9jdGwuYwpAQCAtMTA1LDEyMCArMTA1LDEyIEBACiAJcmV0dXJuIHB1dF91c2VyKDEsIHApOwogfQogCi0jZGVmaW5lIENNRF9SRUFEX1NBRkUJMHgwMQotI2RlZmluZSBDTURfV1JJVEVfU0FGRQkweDAyCi0jZGVmaW5lIENNRF9XQVJORUQJMHgwNAotI2RlZmluZSBzYWZlX2Zvcl9yZWFkKGNtZCkJW2NtZF0gPSBDTURfUkVBRF9TQUZFCi0jZGVmaW5lIHNhZmVfZm9yX3dyaXRlKGNtZCkJW2NtZF0gPSBDTURfV1JJVEVfU0FGRQotCi1pbnQgYmxrX3ZlcmlmeV9jb21tYW5kKHVuc2lnbmVkIGNoYXIgKmNtZCwgaW50IGhhc193cml0ZV9wZXJtKQotewotCXN0YXRpYyB1bnNpZ25lZCBjaGFyIGNtZF90eXBlWzI1Nl0gPSB7Ci0KLQkJLyogQmFzaWMgcmVhZC1vbmx5IGNvbW1hbmRzICovCi0JCXNhZmVfZm9yX3JlYWQoVEVTVF9VTklUX1JFQURZKSwKLQkJc2FmZV9mb3JfcmVhZChSRVFVRVNUX1NFTlNFKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEXzYpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTApLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTIpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfMTYpLAotCQlzYWZlX2Zvcl9yZWFkKFJFQURfQlVGRkVSKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEX0RFRkVDVF9EQVRBKSwKLQkJc2FmZV9mb3JfcmVhZChSRUFEX0xPTkcpLAotCQlzYWZlX2Zvcl9yZWFkKElOUVVJUlkpLAotCQlzYWZlX2Zvcl9yZWFkKE1PREVfU0VOU0UpLAotCQlzYWZlX2Zvcl9yZWFkKE1PREVfU0VOU0VfMTApLAotCQlzYWZlX2Zvcl9yZWFkKExPR19TRU5TRSksCi0JCXNhZmVfZm9yX3JlYWQoU1RBUlRfU1RPUCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfVkVSSUZZXzEwKSwKLQkJc2FmZV9mb3JfcmVhZChWRVJJRllfMTYpLAotCi0JCS8qIEF1ZGlvIENEIGNvbW1hbmRzICovCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9DRCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9BVURJT18xMCksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUExBWV9BVURJT19NU0YpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BMQVlfQVVESU9fVEkpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1BBVVNFX1JFU1VNRSksCi0KLQkJLyogQ0QvRFZEIGRhdGEgcmVhZGluZyAqLwotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfQlVGRkVSX0NBUEFDSVRZKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0NEKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0NEX01TRiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9ESVNDX0lORk8pLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfQ0RWRF9DQVBBQ0lUWSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX0hFQURFUiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9UUkFDS19SWk9ORV9JTkZPKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRUFEX1NVQkNIQU5ORUwpLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX1JFQURfVE9DX1BNQV9BVElQKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9SRVBPUlRfS0VZKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9TQ0FOKSwKLQkJc2FmZV9mb3JfcmVhZChHUENNRF9HRVRfQ09ORklHVVJBVElPTiksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfUkVBRF9GT1JNQVRfQ0FQQUNJVElFUyksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfR0VUX0VWRU5UX1NUQVRVU19OT1RJRklDQVRJT04pLAotCQlzYWZlX2Zvcl9yZWFkKEdQQ01EX0dFVF9QRVJGT1JNQU5DRSksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfU0VFSyksCi0JCXNhZmVfZm9yX3JlYWQoR1BDTURfU1RPUF9QTEFZX1NDQU4pLAotCi0JCS8qIEJhc2ljIHdyaXRpbmcgY29tbWFuZHMgKi8KLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfNiksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFXzEwKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfVkVSSUZZKSwKLQkJc2FmZV9mb3Jfd3JpdGUoV1JJVEVfMTIpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV9WRVJJRllfMTIpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV8xNiksCi0JCXNhZmVfZm9yX3dyaXRlKFdSSVRFX0xPTkcpLAotCQlzYWZlX2Zvcl93cml0ZShXUklURV9MT05HXzIpLAotCQlzYWZlX2Zvcl93cml0ZShFUkFTRSksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX01PREVfU0VMRUNUXzEwKSwKLQkJc2FmZV9mb3Jfd3JpdGUoTU9ERV9TRUxFQ1QpLAotCQlzYWZlX2Zvcl93cml0ZShMT0dfU0VMRUNUKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfQkxBTkspLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9DTE9TRV9UUkFDSyksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX0ZMVVNIX0NBQ0hFKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfRk9STUFUX1VOSVQpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9SRVBBSVJfUlpPTkVfVFJBQ0spLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9SRVNFUlZFX1JaT05FX1RSQUNLKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9EVkRfU1RSVUNUVVJFKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9FVkVOVCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFTkRfS0VZKSwKLQkJc2FmZV9mb3Jfd3JpdGUoR1BDTURfU0VORF9PUEMpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9TRU5EX0NVRV9TSEVFVCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFVF9TUEVFRCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1BSRVZFTlRfQUxMT1dfTUVESVVNX1JFTU9WQUwpLAotCQlzYWZlX2Zvcl93cml0ZShHUENNRF9MT0FEX1VOTE9BRCksCi0JCXNhZmVfZm9yX3dyaXRlKEdQQ01EX1NFVF9TVFJFQU1JTkcpLAotCX07Ci0JdW5zaWduZWQgY2hhciB0eXBlID0gY21kX3R5cGVbY21kWzBdXTsKLQotCS8qIEFueWJvZHkgd2hvIGNhbiBvcGVuIHRoZSBkZXZpY2UgY2FuIGRvIGEgcmVhZC1zYWZlIGNvbW1hbmQgKi8KLQlpZiAodHlwZSAmIENNRF9SRUFEX1NBRkUpCi0JCXJldHVybiAwOwotCi0JLyogV3JpdGUtc2FmZSBjb21tYW5kcyBqdXN0IHJlcXVpcmUgYSB3cml0YWJsZSBvcGVuLi4gKi8KLQlpZiAoKHR5cGUgJiBDTURfV1JJVEVfU0FGRSkgJiYgaGFzX3dyaXRlX3Blcm0pCi0JCXJldHVybiAwOwotCi0JLyogQW5kIHJvb3QgY2FuIGRvIGFueSBjb21tYW5kLi4gKi8KLQlpZiAoY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoIXR5cGUpIHsKLQkJY21kX3R5cGVbY21kWzBdXSA9IENNRF9XQVJORUQ7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgInNjc2k6IHVua25vd24gb3Bjb2RlIDB4JTAyeFxuIiwgY21kWzBdKTsKLQl9Ci0KLQkvKiBPdGhlcndpc2UgZmFpbCBpdCB3aXRoIGFuICJPcGVyYXRpb24gbm90IHBlcm1pdHRlZCIgKi8KLQlyZXR1cm4gLUVQRVJNOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoYmxrX3ZlcmlmeV9jb21tYW5kKTsKLQogc3RhdGljIGludCBibGtfZmlsbF9zZ2hkcl9ycShzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IHJlcXVlc3QgKnJxLAotCQkJICAgICBzdHJ1Y3Qgc2dfaW9faGRyICpoZHIsIGludCBoYXNfd3JpdGVfcGVybSkKKwkJCSAgICAgc3RydWN0IHNnX2lvX2hkciAqaGRyLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpZiAoY29weV9mcm9tX3VzZXIocnEtPmNtZCwgaGRyLT5jbWRwLCBoZHItPmNtZF9sZW4pKQogCQlyZXR1cm4gLUVGQVVMVDsKLQlpZiAoYmxrX3ZlcmlmeV9jb21tYW5kKHJxLT5jbWQsIGhhc193cml0ZV9wZXJtKSkKKwlpZiAoYmxrX3ZlcmlmeV9jb21tYW5kKGZpbGUsIHJxLT5jbWQpKQogCQlyZXR1cm4gLUVQRVJNOwogCiAJLyoKQEAgLTI4Nyw3ICsxNzksNyBAQAogCQlzdHJ1Y3QgZ2VuZGlzayAqYmRfZGlzaywgc3RydWN0IHNnX2lvX2hkciAqaGRyKQogewogCXVuc2lnbmVkIGxvbmcgc3RhcnRfdGltZTsKLQlpbnQgd3JpdGluZyA9IDAsIHJldCA9IDAsIGhhc193cml0ZV9wZXJtID0gMDsKKwlpbnQgd3JpdGluZyA9IDAsIHJldCA9IDA7CiAJc3RydWN0IHJlcXVlc3QgKnJxOwogCWNoYXIgc2Vuc2VbU0NTSV9TRU5TRV9CVUZGRVJTSVpFXTsKIAlzdHJ1Y3QgYmlvICpiaW87CkBAIC0zMTYsMTAgKzIwOCw3IEBACiAJaWYgKCFycSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlpZiAoZmlsZSkKLQkJaGFzX3dyaXRlX3Blcm0gPSBmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURTsKLQotCWlmIChibGtfZmlsbF9zZ2hkcl9ycShxLCBycSwgaGRyLCBoYXNfd3JpdGVfcGVybSkpIHsKKwlpZiAoYmxrX2ZpbGxfc2doZHJfcnEocSwgcnEsIGhkciwgZmlsZSkpIHsKIAkJYmxrX3B1dF9yZXF1ZXN0KHJxKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpAQCAtNDUxLDcgKzM0MCw3IEBACiAJaWYgKGluX2xlbiAmJiBjb3B5X2Zyb21fdXNlcihidWZmZXIsIHNpYy0+ZGF0YSArIGNtZGxlbiwgaW5fbGVuKSkKIAkJZ290byBlcnJvcjsKIAotCWVyciA9IGJsa192ZXJpZnlfY29tbWFuZChycS0+Y21kLCBmaWxlLT5mX21vZGUgJiBGTU9ERV9XUklURSk7CisJZXJyID0gYmxrX3ZlcmlmeV9jb21tYW5kKGZpbGUsIHJxLT5jbWQpOwogCWlmIChlcnIpCiAJCWdvdG8gZXJyb3I7CiAKZGlmZiAtLWdpdCBhL2NyeXB0by9LY29uZmlnIGIvY3J5cHRvL0tjb25maWcKaW5kZXggODY0NDU2Yy4uZWE1MDM1NyAxMDA2NDQKLS0tIGEvY3J5cHRvL0tjb25maWcKKysrIGIvY3J5cHRvL0tjb25maWcKQEAgLTY1LDYgKzY1LDcgQEAKIGNvbmZpZyBDUllQVE9fQ1JZUFRECiAJdHJpc3RhdGUgIlNvZnR3YXJlIGFzeW5jIGNyeXB0byBkYWVtb24iCiAJc2VsZWN0IENSWVBUT19CTEtDSVBIRVIKKwlzZWxlY3QgQ1JZUFRPX0hBU0gKIAlzZWxlY3QgQ1JZUFRPX01BTkFHRVIKIAloZWxwCiAJICBUaGlzIGlzIGEgZ2VuZXJpYyBzb2Z0d2FyZSBhc3luY2hyb25vdXMgY3J5cHRvIGRhZW1vbiB0aGF0CkBAIC0yMTIsNyArMjEzLDcgQEAKIAogY29uZmlnIENSWVBUT19DUkMzMkMKIAl0cmlzdGF0ZSAiQ1JDMzJjIENSQyBhbGdvcml0aG0iCi0Jc2VsZWN0IENSWVBUT19BTEdBUEkKKwlzZWxlY3QgQ1JZUFRPX0hBU0gKIAlzZWxlY3QgTElCQ1JDMzJDCiAJaGVscAogCSAgQ2FzdGFnbm9saSwgZXQgYWwgQ3ljbGljIFJlZHVuZGFuY3ktQ2hlY2sgQWxnb3JpdGhtLiAgVXNlZApAQCAtMjQxLDYgKzI0Miw1NyBAQAogCSAgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBvdGhlciBwdXJwb3NlcyBiZWNhdXNlIG9mIHRoZSB3ZWFrbmVzcwogCSAgb2YgdGhlIGFsZ29yaXRobS4KIAorY29uZmlnIENSWVBUT19STUQxMjgKKyAgdHJpc3RhdGUgIlJJUEVNRC0xMjggZGlnZXN0IGFsZ29yaXRobSIKKyAgc2VsZWN0IENSWVBUT19BTEdBUEkKKyAgaGVscAorICAgIFJJUEVNRC0xMjggKElTTy9JRUMgMTAxMTgtMzoyMDA0KS4KKworICAgIFJJUEVNRC0xMjggaXMgYSAxMjgtYml0IGNyeXB0b2dyYXBoaWMgaGFzaCBmdW5jdGlvbi4gSXQgc2hvdWxkIG9ubHkKKyAgICB0byBiZSB1c2VkIGFzIGEgc2VjdXJlIHJlcGxhY2VtZW50IGZvciBSSVBFTUQuIEZvciBvdGhlciB1c2UgY2FzZXMKKyAgICBSSVBFTUQtMTYwIHNob3VsZCBiZSB1c2VkLgorCisgICAgRGV2ZWxvcGVkIGJ5IEhhbnMgRG9iYmVydGluLCBBbnRvb24gQm9zc2VsYWVycyBhbmQgQmFydCBQcmVuZWVsLgorICAgIFNlZSA8aHR0cDovL2hvbWUuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvcmlwZW1kMTYwLmh0bWw+CisKK2NvbmZpZyBDUllQVE9fUk1EMTYwCisgIHRyaXN0YXRlICJSSVBFTUQtMTYwIGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMTYwIChJU08vSUVDIDEwMTE4LTM6MjAwNCkuCisKKyAgICBSSVBFTUQtMTYwIGlzIGEgMTYwLWJpdCBjcnlwdG9ncmFwaGljIGhhc2ggZnVuY3Rpb24uIEl0IGlzIGludGVuZGVkCisgICAgdG8gYmUgdXNlZCBhcyBhIHNlY3VyZSByZXBsYWNlbWVudCBmb3IgdGhlIDEyOC1iaXQgaGFzaCBmdW5jdGlvbnMKKyAgICBNRDQsIE1ENSBhbmQgaXQncyBwcmVkZWNlc3NvciBSSVBFTUQgKG5vdCB0byBiZSBjb25mdXNlZCB3aXRoIFJJUEVNRC0xMjgpLgorCisgICAgSXQncyBzcGVlZCBpcyBjb21wYXJhYmxlIHRvIFNIQTEgYW5kIHRoZXJlIGFyZSBubyBrbm93biBhdHRhY2tzIGFnYWluc3QKKyAgICBSSVBFTUQtMTYwLgorCisgICAgRGV2ZWxvcGVkIGJ5IEhhbnMgRG9iYmVydGluLCBBbnRvb24gQm9zc2VsYWVycyBhbmQgQmFydCBQcmVuZWVsLgorICAgIFNlZSA8aHR0cDovL2hvbWUuZXNhdC5rdWxldXZlbi5iZS9+Ym9zc2VsYWUvcmlwZW1kMTYwLmh0bWw+CisKK2NvbmZpZyBDUllQVE9fUk1EMjU2CisgIHRyaXN0YXRlICJSSVBFTUQtMjU2IGRpZ2VzdCBhbGdvcml0aG0iCisgIHNlbGVjdCBDUllQVE9fQUxHQVBJCisgIGhlbHAKKyAgICBSSVBFTUQtMjU2IGlzIGFuIG9wdGlvbmFsIGV4dGVuc2lvbiBvZiBSSVBFTUQtMTI4IHdpdGggYSAyNTYgYml0IGhhc2guCisgICAgSXQgaXMgaW50ZW5kZWQgZm9yIGFwcGxpY2F0aW9ucyB0aGF0IHJlcXVpcmUgbG9uZ2VyIGhhc2gtcmVzdWx0cywgd2l0aG91dAorICAgIG5lZWRpbmcgYSBsYXJnZXIgc2VjdXJpdHkgbGV2ZWwgKHRoYW4gUklQRU1ELTEyOCkuCisKKyAgICBEZXZlbG9wZWQgYnkgSGFucyBEb2JiZXJ0aW4sIEFudG9vbiBCb3NzZWxhZXJzIGFuZCBCYXJ0IFByZW5lZWwuCisgICAgU2VlIDxodHRwOi8vaG9tZS5lc2F0Lmt1bGV1dmVuLmJlL35ib3NzZWxhZS9yaXBlbWQxNjAuaHRtbD4KKworY29uZmlnIENSWVBUT19STUQzMjAKKyAgdHJpc3RhdGUgIlJJUEVNRC0zMjAgZGlnZXN0IGFsZ29yaXRobSIKKyAgc2VsZWN0IENSWVBUT19BTEdBUEkKKyAgaGVscAorICAgIFJJUEVNRC0zMjAgaXMgYW4gb3B0aW9uYWwgZXh0ZW5zaW9uIG9mIFJJUEVNRC0xNjAgd2l0aCBhIDMyMCBiaXQgaGFzaC4KKyAgICBJdCBpcyBpbnRlbmRlZCBmb3IgYXBwbGljYXRpb25zIHRoYXQgcmVxdWlyZSBsb25nZXIgaGFzaC1yZXN1bHRzLCB3aXRob3V0CisgICAgbmVlZGluZyBhIGxhcmdlciBzZWN1cml0eSBsZXZlbCAodGhhbiBSSVBFTUQtMTYwKS4KKworICAgIERldmVsb3BlZCBieSBIYW5zIERvYmJlcnRpbiwgQW50b29uIEJvc3NlbGFlcnMgYW5kIEJhcnQgUHJlbmVlbC4KKyAgICBTZWUgPGh0dHA6Ly9ob21lLmVzYXQua3VsZXV2ZW4uYmUvfmJvc3NlbGFlL3JpcGVtZDE2MC5odG1sPgorCiBjb25maWcgQ1JZUFRPX1NIQTEKIAl0cmlzdGF0ZSAiU0hBMSBkaWdlc3QgYWxnb3JpdGhtIgogCXNlbGVjdCBDUllQVE9fQUxHQVBJCkBAIC02MTQsNiArNjY2LDE1IEBACiAJaGVscAogCSAgVGhpcyBpcyB0aGUgTFpPIGFsZ29yaXRobS4KIAorY29tbWVudCAiUmFuZG9tIE51bWJlciBHZW5lcmF0aW9uIgorCitjb25maWcgQ1JZUFRPX1BSTkcKKwl0cmlzdGF0ZSAiUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdGlvbiBmb3IgQ3J5cHRvZ3JhcGhpYyBtb2R1bGVzIgorCWhlbHAKKwkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGdlbmVyaWMgcHNldWRvIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yCisJICBmb3IgY3J5cHRvZ3JhcGhpYyBtb2R1bGVzLiAgVXNlcyB0aGUgQWxnb3JpdGhtIHNwZWNpZmllZCBpbgorCSAgQU5TSSBYOS4zMSBBLjIuNAorCiBzb3VyY2UgImRyaXZlcnMvY3J5cHRvL0tjb25maWciCiAKIGVuZGlmCSMgaWYgQ1JZUFRPCmRpZmYgLS1naXQgYS9jcnlwdG8vTWFrZWZpbGUgYi9jcnlwdG8vTWFrZWZpbGUKaW5kZXggY2EwMjQ0MS4uZWY2MWIzYiAxMDA2NDQKLS0tIGEvY3J5cHRvL01ha2VmaWxlCisrKyBiL2NyeXB0by9NYWtlZmlsZQpAQCAtMTksNiArMTksNyBAQAogb2JqLSQoQ09ORklHX0NSWVBUT19TRVFJVikgKz0gc2VxaXYubwogCiBjcnlwdG9faGFzaC1vYmpzIDo9IGhhc2gubworY3J5cHRvX2hhc2gtb2JqcyArPSBhaGFzaC5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0hBU0gpICs9IGNyeXB0b19oYXNoLm8KIAogb2JqLSQoQ09ORklHX0NSWVBUT19NQU5BR0VSKSArPSBjcnlwdG9tZ3IubwpAQCAtMjcsNiArMjgsMTAgQEAKIG9iai0kKENPTkZJR19DUllQVE9fTlVMTCkgKz0gY3J5cHRvX251bGwubwogb2JqLSQoQ09ORklHX0NSWVBUT19NRDQpICs9IG1kNC5vCiBvYmotJChDT05GSUdfQ1JZUFRPX01ENSkgKz0gbWQ1Lm8KK29iai0kKENPTkZJR19DUllQVE9fUk1EMTI4KSArPSBybWQxMjgubworb2JqLSQoQ09ORklHX0NSWVBUT19STUQxNjApICs9IHJtZDE2MC5vCitvYmotJChDT05GSUdfQ1JZUFRPX1JNRDI1NikgKz0gcm1kMjU2Lm8KK29iai0kKENPTkZJR19DUllQVE9fUk1EMzIwKSArPSBybWQzMjAubwogb2JqLSQoQ09ORklHX0NSWVBUT19TSEExKSArPSBzaGExX2dlbmVyaWMubwogb2JqLSQoQ09ORklHX0NSWVBUT19TSEEyNTYpICs9IHNoYTI1Nl9nZW5lcmljLm8KIG9iai0kKENPTkZJR19DUllQVE9fU0hBNTEyKSArPSBzaGE1MTJfZ2VuZXJpYy5vCkBAIC02NCw3ICs2OSw3IEBACiBvYmotJChDT05GSUdfQ1JZUFRPX0NSQzMyQykgKz0gY3JjMzJjLm8KIG9iai0kKENPTkZJR19DUllQVE9fQVVUSEVOQykgKz0gYXV0aGVuYy5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0xaTykgKz0gbHpvLm8KLQorb2JqLSQoQ09ORklHX0NSWVBUT19QUk5HKSArPSBwcm5nLm8KIG9iai0kKENPTkZJR19DUllQVE9fVEVTVCkgKz0gdGNyeXB0Lm8KIAogIwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FoYXNoLmMgYi9jcnlwdG8vYWhhc2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzEyOGYyCi0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL2FoYXNoLmMKQEAgLTAsMCArMSwxOTQgQEAKKy8qCisgKiBBc3luY2hyb25vdXMgQ3J5cHRvZ3JhcGhpYyBIYXNoIG9wZXJhdGlvbnMuCisgKgorICogVGhpcyBpcyB0aGUgYXN5bmNocm9ub3VzIHZlcnNpb24gb2YgaGFzaC5jIHdpdGggbm90aWZpY2F0aW9uIG9mCisgKiBjb21wbGV0aW9uIHZpYSBhIGNhbGxiYWNrLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBMb2MgSG8gPGxob0BhbWNjLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KKyNpbmNsdWRlIDxjcnlwdG8vc2NhdHRlcndhbGsuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorCisjaW5jbHVkZSAiaW50ZXJuYWwuaCIKKworc3RhdGljIGludCBoYXNoX3dhbGtfbmV4dChzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2FsaykKK3sKKwl1bnNpZ25lZCBpbnQgYWxpZ25tYXNrID0gd2Fsay0+YWxpZ25tYXNrOworCXVuc2lnbmVkIGludCBvZmZzZXQgPSB3YWxrLT5vZmZzZXQ7CisJdW5zaWduZWQgaW50IG5ieXRlcyA9IG1pbih3YWxrLT5lbnRyeWxlbiwKKwkJCQkgICgodW5zaWduZWQgaW50KShQQUdFX1NJWkUpKSAtIG9mZnNldCk7CisKKwl3YWxrLT5kYXRhID0gY3J5cHRvX2ttYXAod2Fsay0+cGcsIDApOworCXdhbGstPmRhdGEgKz0gb2Zmc2V0OworCisJaWYgKG9mZnNldCAmIGFsaWdubWFzaykKKwkJbmJ5dGVzID0gYWxpZ25tYXNrICsgMSAtIChvZmZzZXQgJiBhbGlnbm1hc2spOworCisJd2Fsay0+ZW50cnlsZW4gLT0gbmJ5dGVzOworCXJldHVybiBuYnl0ZXM7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF93YWxrX25ld19lbnRyeShzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2FsaykKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCisJc2cgPSB3YWxrLT5zZzsKKwl3YWxrLT5wZyA9IHNnX3BhZ2Uoc2cpOworCXdhbGstPm9mZnNldCA9IHNnLT5vZmZzZXQ7CisJd2Fsay0+ZW50cnlsZW4gPSBzZy0+bGVuZ3RoOworCisJaWYgKHdhbGstPmVudHJ5bGVuID4gd2Fsay0+dG90YWwpCisJCXdhbGstPmVudHJ5bGVuID0gd2Fsay0+dG90YWw7CisJd2Fsay0+dG90YWwgLT0gd2Fsay0+ZW50cnlsZW47CisKKwlyZXR1cm4gaGFzaF93YWxrX25leHQod2Fsayk7Cit9CisKK2ludCBjcnlwdG9faGFzaF93YWxrX2RvbmUoc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGssIGludCBlcnIpCit7CisJdW5zaWduZWQgaW50IGFsaWdubWFzayA9IHdhbGstPmFsaWdubWFzazsKKwl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gd2Fsay0+ZW50cnlsZW47CisKKwl3YWxrLT5kYXRhIC09IHdhbGstPm9mZnNldDsKKworCWlmIChuYnl0ZXMgJiYgd2Fsay0+b2Zmc2V0ICYgYWxpZ25tYXNrICYmICFlcnIpIHsKKwkJd2Fsay0+b2Zmc2V0ICs9IGFsaWdubWFzayAtIDE7CisJCXdhbGstPm9mZnNldCA9IEFMSUdOKHdhbGstPm9mZnNldCwgYWxpZ25tYXNrICsgMSk7CisJCXdhbGstPmRhdGEgKz0gd2Fsay0+b2Zmc2V0OworCisJCW5ieXRlcyA9IG1pbihuYnl0ZXMsCisJCQkgICAgICgodW5zaWduZWQgaW50KShQQUdFX1NJWkUpKSAtIHdhbGstPm9mZnNldCk7CisJCXdhbGstPmVudHJ5bGVuIC09IG5ieXRlczsKKworCQlyZXR1cm4gbmJ5dGVzOworCX0KKworCWNyeXB0b19rdW5tYXAod2Fsay0+ZGF0YSwgMCk7CisJY3J5cHRvX3lpZWxkKHdhbGstPmZsYWdzKTsKKworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwl3YWxrLT5vZmZzZXQgPSAwOworCisJaWYgKG5ieXRlcykKKwkJcmV0dXJuIGhhc2hfd2Fsa19uZXh0KHdhbGspOworCisJaWYgKCF3YWxrLT50b3RhbCkKKwkJcmV0dXJuIDA7CisKKwl3YWxrLT5zZyA9IHNjYXR0ZXJ3YWxrX3NnX25leHQod2Fsay0+c2cpOworCisJcmV0dXJuIGhhc2hfd2Fsa19uZXdfZW50cnkod2Fsayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjcnlwdG9faGFzaF93YWxrX2RvbmUpOworCitpbnQgY3J5cHRvX2hhc2hfd2Fsa19maXJzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJICAgc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgKndhbGspCit7CisJd2Fsay0+dG90YWwgPSByZXEtPm5ieXRlczsKKworCWlmICghd2Fsay0+dG90YWwpCisJCXJldHVybiAwOworCisJd2Fsay0+YWxpZ25tYXNrID0gY3J5cHRvX2FoYXNoX2FsaWdubWFzayhjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSkpOworCXdhbGstPnNnID0gcmVxLT5zcmM7CisJd2Fsay0+ZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3M7CisKKwlyZXR1cm4gaGFzaF93YWxrX25ld19lbnRyeSh3YWxrKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGNyeXB0b19oYXNoX3dhbGtfZmlyc3QpOworCitzdGF0aWMgaW50IGFoYXNoX3NldGtleV91bmFsaWduZWQoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGFoYXNoX2FsZyAqYWhhc2ggPSBjcnlwdG9fYWhhc2hfYWxnKHRmbSk7CisJdW5zaWduZWQgbG9uZyBhbGlnbm1hc2sgPSBjcnlwdG9fYWhhc2hfYWxpZ25tYXNrKHRmbSk7CisJaW50IHJldDsKKwl1OCAqYnVmZmVyLCAqYWxpZ25idWZmZXI7CisJdW5zaWduZWQgbG9uZyBhYnNpemU7CisKKwlhYnNpemUgPSBrZXlsZW4gKyBhbGlnbm1hc2s7CisJYnVmZmVyID0ga21hbGxvYyhhYnNpemUsIEdGUF9BVE9NSUMpOworCWlmICghYnVmZmVyKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWFsaWduYnVmZmVyID0gKHU4ICopQUxJR04oKHVuc2lnbmVkIGxvbmcpYnVmZmVyLCBhbGlnbm1hc2sgKyAxKTsKKwltZW1jcHkoYWxpZ25idWZmZXIsIGtleSwga2V5bGVuKTsKKwlyZXQgPSBhaGFzaC0+c2V0a2V5KHRmbSwgYWxpZ25idWZmZXIsIGtleWxlbik7CisJbWVtc2V0KGFsaWduYnVmZmVyLCAwLCBrZXlsZW4pOworCWtmcmVlKGJ1ZmZlcik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgYWhhc2hfYWxnICphaGFzaCA9IGNyeXB0b19haGFzaF9hbGcodGZtKTsKKwl1bnNpZ25lZCBsb25nIGFsaWdubWFzayA9IGNyeXB0b19haGFzaF9hbGlnbm1hc2sodGZtKTsKKworCWlmICgodW5zaWduZWQgbG9uZylrZXkgJiBhbGlnbm1hc2spCisJCXJldHVybiBhaGFzaF9zZXRrZXlfdW5hbGlnbmVkKHRmbSwga2V5LCBrZXlsZW4pOworCisJcmV0dXJuIGFoYXNoLT5zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3J5cHRvX2FoYXNoX2N0eHNpemUoc3RydWN0IGNyeXB0b19hbGcgKmFsZywgdTMyIHR5cGUsCisJCQkJCXUzMiBtYXNrKQoreworCXJldHVybiBhbGctPmNyYV9jdHhzaXplOworfQorCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2FoYXNoX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwgdTMyIG1hc2spCit7CisJc3RydWN0IGFoYXNoX2FsZyAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfYWhhc2g7CisJc3RydWN0IGFoYXNoX3RmbSAqY3J0ICAgPSAmdGZtLT5jcnRfYWhhc2g7CisKKwlpZiAoYWxnLT5kaWdlc3RzaXplID4gUEFHRV9TSVpFIC8gOCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnQtPmluaXQgPSBhbGctPmluaXQ7CisJY3J0LT51cGRhdGUgPSBhbGctPnVwZGF0ZTsKKwljcnQtPmZpbmFsICA9IGFsZy0+ZmluYWw7CisJY3J0LT5kaWdlc3QgPSBhbGctPmRpZ2VzdDsKKwljcnQtPnNldGtleSA9IGFoYXNoX3NldGtleTsKKwljcnQtPmRpZ2VzdHNpemUgPSBhbGctPmRpZ2VzdHNpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY3J5cHRvX2FoYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQorCV9fYXR0cmlidXRlX18gKCh1bnVzZWQpKTsKK3N0YXRpYyB2b2lkIGNyeXB0b19haGFzaF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykKK3sKKwlzZXFfcHJpbnRmKG0sICJ0eXBlICAgICAgICAgOiBhaGFzaFxuIik7CisJc2VxX3ByaW50ZihtLCAiYXN5bmMgICAgICAgIDogJXNcbiIsIGFsZy0+Y3JhX2ZsYWdzICYgQ1JZUFRPX0FMR19BU1lOQyA/CisJCQkJCSAgICAgInllcyIgOiAibm8iKTsKKwlzZXFfcHJpbnRmKG0sICJibG9ja3NpemUgICAgOiAldVxuIiwgYWxnLT5jcmFfYmxvY2tzaXplKTsKKwlzZXFfcHJpbnRmKG0sICJkaWdlc3RzaXplICAgOiAldVxuIiwgYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplKTsKK30KKworY29uc3Qgc3RydWN0IGNyeXB0b190eXBlIGNyeXB0b19haGFzaF90eXBlID0geworCS5jdHhzaXplID0gY3J5cHRvX2FoYXNoX2N0eHNpemUsCisJLmluaXQgPSBjcnlwdG9faW5pdF9haGFzaF9vcHMsCisjaWZkZWYgQ09ORklHX1BST0NfRlMKKwkuc2hvdyA9IGNyeXB0b19haGFzaF9zaG93LAorI2VuZGlmCit9OworRVhQT1JUX1NZTUJPTF9HUEwoY3J5cHRvX2FoYXNoX3R5cGUpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFzeW5jaHJvbm91cyBjcnlwdG9ncmFwaGljIGhhc2ggdHlwZSIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FwaS5jIGIvY3J5cHRvL2FwaS5jCmluZGV4IDBhMGY0MWUuLmQwNmUzMzIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hcGkuYworKysgYi9jcnlwdG8vYXBpLmMKQEAgLTIzNSw4ICsyMzUsMTIgQEAKIAkJcmV0dXJuIGNyeXB0b19pbml0X2NpcGhlcl9vcHModGZtKTsKIAkJCiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfRElHRVNUOgotCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wcyh0Zm0pOwotCQkKKwkJaWYgKChtYXNrICYgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSykgIT0KKwkJICAgIENSWVBUT19BTEdfVFlQRV9IQVNIX01BU0spCisJCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wc19hc3luYyh0Zm0pOworCQllbHNlCisJCQlyZXR1cm4gY3J5cHRvX2luaXRfZGlnZXN0X29wcyh0Zm0pOworCiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfQ09NUFJFU1M6CiAJCXJldHVybiBjcnlwdG9faW5pdF9jb21wcmVzc19vcHModGZtKTsKIAkKZGlmZiAtLWdpdCBhL2NyeXB0by9jYW1lbGxpYS5jIGIvY3J5cHRvL2NhbWVsbGlhLmMKaW5kZXggNDkzZmVlNy4uYjFjYzRkZSAxMDA2NDQKLS0tIGEvY3J5cHRvL2NhbWVsbGlhLmMKKysrIGIvY3J5cHRvL2NhbWVsbGlhLmMKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvYml0b3BzLmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogCiBzdGF0aWMgY29uc3QgdTMyIGNhbWVsbGlhX3NwMTExMFsyNTZdID0gewogCTB4NzA3MDcwMDAsMHg4MjgyODIwMCwweDJjMmMyYzAwLDB4ZWNlY2VjMDAsCkBAIC0zMzUsMjAgKzMzNyw2IEBACiAvKgogICogIG1hY3JvcwogICovCi0jZGVmaW5lIEdFVFUzMih2LCBwdCkgXAotICAgIGRvIHsgXAotCS8qIGxhdGVzdCBicmVlZCBvZiBnY2MgaXMgY2xldmVyIGVub3VnaCB0byB1c2UgbW92ZSAqLyBcCi0JbWVtY3B5KCYodiksIChwdCksIDQpOyBcCi0JKHYpID0gYmUzMl90b19jcHUodik7IFwKLSAgICB9IHdoaWxlKDApCi0KLS8qIHJvdGF0aW9uIHJpZ2h0IHNoaWZ0IDFieXRlICovCi0jZGVmaW5lIFJPUjgoeCkgKCgoeCkgPj4gOCkgKyAoKHgpIDw8IDI0KSkKLS8qIHJvdGF0aW9uIGxlZnQgc2hpZnQgMWJpdCAqLwotI2RlZmluZSBST0wxKHgpICgoKHgpIDw8IDEpICsgKCh4KSA+PiAzMSkpCi0vKiByb3RhdGlvbiBsZWZ0IHNoaWZ0IDFieXRlICovCi0jZGVmaW5lIFJPTDgoeCkgKCgoeCkgPDwgOCkgKyAoKHgpID4+IDI0KSkKLQogI2RlZmluZSBST0xEUShsbCwgbHIsIHJsLCByciwgdzAsIHcxLCBiaXRzKQkJXAogICAgIGRvIHsJCQkJCQlcCiAJdzAgPSBsbDsJCQkJCVwKQEAgLTM4Myw3ICszNzEsNyBAQAogCSAgIF4gY2FtZWxsaWFfc3AzMDMzWyh1OCkoaWwgPj4gOCldCQkJXAogCSAgIF4gY2FtZWxsaWFfc3A0NDA0Wyh1OCkoaWwgICAgICldOwkJCVwKIAl5bCBePSB5cjsJCQkJCQlcCi0JeXIgPSBST1I4KHlyKTsJCQkJCQlcCisJeXIgPSByb3IzMih5ciwgOCk7CQkJCQlcCiAJeXIgXj0geWw7CQkJCQkJXAogICAgIH0gd2hpbGUoMCkKIApAQCAtNDA1LDcgKzM5Myw3IEBACiAJc3ViTFs3XSBePSBzdWJMWzFdOyBzdWJSWzddIF49IHN1YlJbMV07CiAJc3ViTFsxXSBePSBzdWJSWzFdICYgfnN1YlJbOV07CiAJZHcgPSBzdWJMWzFdICYgc3ViTFs5XSwKLQkJc3ViUlsxXSBePSBST0wxKGR3KTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsMikgKi8KKwkJc3ViUlsxXSBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDIpICovCiAJLyogcm91bmQgOCAqLwogCXN1YkxbMTFdIF49IHN1YkxbMV07IHN1YlJbMTFdIF49IHN1YlJbMV07CiAJLyogcm91bmQgMTAgKi8KQEAgLTQxNCw3ICs0MDIsNyBAQAogCXN1YkxbMTVdIF49IHN1YkxbMV07IHN1YlJbMTVdIF49IHN1YlJbMV07CiAJc3ViTFsxXSBePSBzdWJSWzFdICYgfnN1YlJbMTddOwogCWR3ID0gc3ViTFsxXSAmIHN1YkxbMTddLAotCQlzdWJSWzFdIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2w0KSAqLworCQlzdWJSWzFdIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMaW52KGtsNCkgKi8KIAkvKiByb3VuZCAxNCAqLwogCXN1YkxbMTldIF49IHN1YkxbMV07IHN1YlJbMTldIF49IHN1YlJbMV07CiAJLyogcm91bmQgMTYgKi8KQEAgLTQzMCw3ICs0MTgsNyBAQAogCX0gZWxzZSB7CiAJCXN1YkxbMV0gXj0gc3ViUlsxXSAmIH5zdWJSWzI1XTsKIAkJZHcgPSBzdWJMWzFdICYgc3ViTFsyNV0sCi0JCQlzdWJSWzFdIF49IFJPTDEoZHcpOyAvKiBtb2RpZmllZCBmb3IgRkxpbnYoa2w2KSAqLworCQkJc3ViUlsxXSBePSByb2wzMihkdywgMSk7IC8qIG1vZGlmaWVkIGZvciBGTGludihrbDYpICovCiAJCS8qIHJvdW5kIDIwICovCiAJCXN1YkxbMjddIF49IHN1YkxbMV07IHN1YlJbMjddIF49IHN1YlJbMV07CiAJCS8qIHJvdW5kIDIyICovCkBAIC00NTAsNyArNDM4LDcgQEAKIAkJc3ViTFsyNl0gXj0ga3c0bDsgc3ViUlsyNl0gXj0ga3c0cjsKIAkJa3c0bCBePSBrdzRyICYgfnN1YlJbMjRdOwogCQlkdyA9IGt3NGwgJiBzdWJMWzI0XSwKLQkJCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDUpICovCisJCQlrdzRyIF49IHJvbDMyKGR3LCAxKTsgLyogbW9kaWZpZWQgZm9yIEZMKGtsNSkgKi8KIAl9CiAJLyogcm91bmQgMTcgKi8KIAlzdWJMWzIyXSBePSBrdzRsOyBzdWJSWzIyXSBePSBrdzRyOwpAQCAtNDYwLDcgKzQ0OCw3IEBACiAJc3ViTFsxOF0gXj0ga3c0bDsgc3ViUlsxOF0gXj0ga3c0cjsKIAlrdzRsIF49IGt3NHIgJiB+c3ViUlsxNl07CiAJZHcgPSBrdzRsICYgc3ViTFsxNl0sCi0JCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDMpICovCisJCWt3NHIgXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wzKSAqLwogCS8qIHJvdW5kIDExICovCiAJc3ViTFsxNF0gXj0ga3c0bDsgc3ViUlsxNF0gXj0ga3c0cjsKIAkvKiByb3VuZCA5ICovCkBAIC00NjksNyArNDU3LDcgQEAKIAlzdWJMWzEwXSBePSBrdzRsOyBzdWJSWzEwXSBePSBrdzRyOwogCWt3NGwgXj0ga3c0ciAmIH5zdWJSWzhdOwogCWR3ID0ga3c0bCAmIHN1YkxbOF0sCi0JCWt3NHIgXj0gUk9MMShkdyk7IC8qIG1vZGlmaWVkIGZvciBGTChrbDEpICovCisJCWt3NHIgXj0gcm9sMzIoZHcsIDEpOyAvKiBtb2RpZmllZCBmb3IgRkwoa2wxKSAqLwogCS8qIHJvdW5kIDUgKi8KIAlzdWJMWzZdIF49IGt3NGw7IHN1YlJbNl0gXj0ga3c0cjsKIAkvKiByb3VuZCAzICovCkBAIC00OTQsNyArNDgyLDcgQEAKIAlTVUJLRVlfUig2KSA9IHN1YlJbNV0gXiBzdWJSWzddOwogCXRsID0gc3ViTFsxMF0gXiAoc3ViUlsxMF0gJiB+c3ViUls4XSk7CiAJZHcgPSB0bCAmIHN1YkxbOF0sICAvKiBGTChrbDEpICovCi0JCXRyID0gc3ViUlsxMF0gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzEwXSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCg3KSA9IHN1YkxbNl0gXiB0bDsgLyogcm91bmQgNiAqLwogCVNVQktFWV9SKDcpID0gc3ViUls2XSBeIHRyOwogCVNVQktFWV9MKDgpID0gc3ViTFs4XTsgICAgICAgLyogRkwoa2wxKSAqLwpAQCAtNTAzLDcgKzQ5MSw3IEBACiAJU1VCS0VZX1IoOSkgPSBzdWJSWzldOwogCXRsID0gc3ViTFs3XSBeIChzdWJSWzddICYgfnN1YlJbOV0pOwogCWR3ID0gdGwgJiBzdWJMWzldLCAgLyogRkxpbnYoa2wyKSAqLwotCQl0ciA9IHN1YlJbN10gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzddIF4gcm9sMzIoZHcsIDEpOwogCVNVQktFWV9MKDEwKSA9IHRsIF4gc3ViTFsxMV07IC8qIHJvdW5kIDcgKi8KIAlTVUJLRVlfUigxMCkgPSB0ciBeIHN1YlJbMTFdOwogCVNVQktFWV9MKDExKSA9IHN1YkxbMTBdIF4gc3ViTFsxMl07IC8qIHJvdW5kIDggKi8KQEAgLTUxNiw3ICs1MDQsNyBAQAogCVNVQktFWV9SKDE0KSA9IHN1YlJbMTNdIF4gc3ViUlsxNV07CiAJdGwgPSBzdWJMWzE4XSBeIChzdWJSWzE4XSAmIH5zdWJSWzE2XSk7CiAJZHcgPSB0bCAmIHN1YkxbMTZdLCAvKiBGTChrbDMpICovCi0JCXRyID0gc3ViUlsxOF0gXiBST0wxKGR3KTsKKwkJdHIgPSBzdWJSWzE4XSBeIHJvbDMyKGR3LCAxKTsKIAlTVUJLRVlfTCgxNSkgPSBzdWJMWzE0XSBeIHRsOyAvKiByb3VuZCAxMiAqLwogCVNVQktFWV9SKDE1KSA9IHN1YlJbMTRdIF4gdHI7CiAJU1VCS0VZX0woMTYpID0gc3ViTFsxNl07ICAgICAvKiBGTChrbDMpICovCkBAIC01MjUsNyArNTEzLDcgQEAKIAlTVUJLRVlfUigxNykgPSBzdWJSWzE3XTsKIAl0bCA9IHN1YkxbMTVdIF4gKHN1YlJbMTVdICYgfnN1YlJbMTddKTsKIAlkdyA9IHRsICYgc3ViTFsxN10sIC8qIEZMaW52KGtsNCkgKi8KLQkJdHIgPSBzdWJSWzE1XSBeIFJPTDEoZHcpOworCQl0ciA9IHN1YlJbMTVdIF4gcm9sMzIoZHcsIDEpOwogCVNVQktFWV9MKDE4KSA9IHRsIF4gc3ViTFsxOV07IC8qIHJvdW5kIDEzICovCiAJU1VCS0VZX1IoMTgpID0gdHIgXiBzdWJSWzE5XTsKIAlTVUJLRVlfTCgxOSkgPSBzdWJMWzE4XSBeIHN1YkxbMjBdOyAvKiByb3VuZCAxNCAqLwpAQCAtNTQ0LDcgKzUzMiw3IEBACiAJfSBlbHNlIHsKIAkJdGwgPSBzdWJMWzI2XSBeIChzdWJSWzI2XSAmIH5zdWJSWzI0XSk7CiAJCWR3ID0gdGwgJiBzdWJMWzI0XSwgLyogRkwoa2w1KSAqLwotCQkJdHIgPSBzdWJSWzI2XSBeIFJPTDEoZHcpOworCQkJdHIgPSBzdWJSWzI2XSBeIHJvbDMyKGR3LCAxKTsKIAkJU1VCS0VZX0woMjMpID0gc3ViTFsyMl0gXiB0bDsgLyogcm91bmQgMTggKi8KIAkJU1VCS0VZX1IoMjMpID0gc3ViUlsyMl0gXiB0cjsKIAkJU1VCS0VZX0woMjQpID0gc3ViTFsyNF07ICAgICAvKiBGTChrbDUpICovCkBAIC01NTMsNyArNTQxLDcgQEAKIAkJU1VCS0VZX1IoMjUpID0gc3ViUlsyNV07CiAJCXRsID0gc3ViTFsyM10gXiAoc3ViUlsyM10gJiB+c3ViUlsyNV0pOwogCQlkdyA9IHRsICYgc3ViTFsyNV0sIC8qIEZMaW52KGtsNikgKi8KLQkJCXRyID0gc3ViUlsyM10gXiBST0wxKGR3KTsKKwkJCXRyID0gc3ViUlsyM10gXiByb2wzMihkdywgMSk7CiAJCVNVQktFWV9MKDI2KSA9IHRsIF4gc3ViTFsyN107IC8qIHJvdW5kIDE5ICovCiAJCVNVQktFWV9SKDI2KSA9IHRyIF4gc3ViUlsyN107CiAJCVNVQktFWV9MKDI3KSA9IHN1YkxbMjZdIF4gc3ViTFsyOF07IC8qIHJvdW5kIDIwICovCkBAIC01NzMsMTcgKzU2MSwxNyBAQAogCS8qIGFwcGx5IHRoZSBpbnZlcnNlIG9mIHRoZSBsYXN0IGhhbGYgb2YgUC1mdW5jdGlvbiAqLwogCWkgPSAyOwogCWRvIHsKLQkJZHcgPSBTVUJLRVlfTChpICsgMCkgXiBTVUJLRVlfUihpICsgMCk7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgMSAqLworCQlkdyA9IFNVQktFWV9MKGkgKyAwKSBeIFNVQktFWV9SKGkgKyAwKTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgMSAqLwogCQlTVUJLRVlfUihpICsgMCkgPSBTVUJLRVlfTChpICsgMCkgXiBkdzsgU1VCS0VZX0woaSArIDApID0gZHc7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDEpIF4gU1VCS0VZX1IoaSArIDEpOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDIgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgMSkgXiBTVUJLRVlfUihpICsgMSk7IGR3ID0gcm9sMzIoZHcsIDgpOy8qIHJvdW5kIDIgKi8KIAkJU1VCS0VZX1IoaSArIDEpID0gU1VCS0VZX0woaSArIDEpIF4gZHc7IFNVQktFWV9MKGkgKyAxKSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyAyKSBeIFNVQktFWV9SKGkgKyAyKTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCAzICovCisJCWR3ID0gU1VCS0VZX0woaSArIDIpIF4gU1VCS0VZX1IoaSArIDIpOyBkdyA9IHJvbDMyKGR3LCA4KTsvKiByb3VuZCAzICovCiAJCVNVQktFWV9SKGkgKyAyKSA9IFNVQktFWV9MKGkgKyAyKSBeIGR3OyBTVUJLRVlfTChpICsgMikgPSBkdzsKLQkJZHcgPSBTVUJLRVlfTChpICsgMykgXiBTVUJLRVlfUihpICsgMyk7IGR3ID0gUk9MOChkdyk7Lyogcm91bmQgNCAqLworCQlkdyA9IFNVQktFWV9MKGkgKyAzKSBeIFNVQktFWV9SKGkgKyAzKTsgZHcgPSByb2wzMihkdywgOCk7Lyogcm91bmQgNCAqLwogCQlTVUJLRVlfUihpICsgMykgPSBTVUJLRVlfTChpICsgMykgXiBkdzsgU1VCS0VZX0woaSArIDMpID0gZHc7Ci0JCWR3ID0gU1VCS0VZX0woaSArIDQpIF4gU1VCS0VZX1IoaSArIDQpOyBkdyA9IFJPTDgoZHcpOy8qIHJvdW5kIDUgKi8KKwkJZHcgPSBTVUJLRVlfTChpICsgNCkgXiBTVUJLRVlfUihpICsgNCk7IGR3ID0gcm9sMzIoZHcsIDkpOy8qIHJvdW5kIDUgKi8KIAkJU1VCS0VZX1IoaSArIDQpID0gU1VCS0VZX0woaSArIDQpIF4gZHc7IFNVQktFWV9MKGkgKyA0KSA9IGR3OwotCQlkdyA9IFNVQktFWV9MKGkgKyA1KSBeIFNVQktFWV9SKGkgKyA1KTsgZHcgPSBST0w4KGR3KTsvKiByb3VuZCA2ICovCisJCWR3ID0gU1VCS0VZX0woaSArIDUpIF4gU1VCS0VZX1IoaSArIDUpOyBkdyA9IHJvbDMyKGR3LCA4KTsvKiByb3VuZCA2ICovCiAJCVNVQktFWV9SKGkgKyA1KSA9IFNVQktFWV9MKGkgKyA1KSBeIGR3OyBTVUJLRVlfTChpICsgNSkgPSBkdzsKIAkJaSArPSA4OwogCX0gd2hpbGUgKGkgPCBtYXgpOwpAQCAtNTk5LDEwICs1ODcsMTAgQEAKIAkvKioKIAkgKiAgayA9PSBrbGwgfHwga2xyIHx8IGtybCB8fCBrcnIgKHx8IGlzIGNvbmNhdGVuYXRpb24pCiAJICovCi0JR0VUVTMyKGtsbCwga2V5ICAgICApOwotCUdFVFUzMihrbHIsIGtleSArICA0KTsKLQlHRVRVMzIoa3JsLCBrZXkgKyAgOCk7Ci0JR0VUVTMyKGtyciwga2V5ICsgMTIpOworCWtsbCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkpOworCWtsciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyA0KTsKKwlrcmwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgOCk7CisJa3JyID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDEyKTsKIAogCS8qIGdlbmVyYXRlIEtMIGRlcGVuZGVudCBzdWJrZXlzICovCiAJLyoga3cxICovCkBAIC03MDcsMTQgKzY5NSwxNCBAQAogCSAqICBrZXkgPSAoa2xsIHx8IGtsciB8fCBrcmwgfHwga3JyIHx8IGtybGwgfHwga3JsciB8fCBrcnJsIHx8IGtycnIpCiAJICogICh8fCBpcyBjb25jYXRlbmF0aW9uKQogCSAqLwotCUdFVFUzMihrbGwsICBrZXkgICAgICk7Ci0JR0VUVTMyKGtsciwgIGtleSArICA0KTsKLQlHRVRVMzIoa3JsLCAga2V5ICsgIDgpOwotCUdFVFUzMihrcnIsICBrZXkgKyAxMik7Ci0JR0VUVTMyKGtybGwsIGtleSArIDE2KTsKLQlHRVRVMzIoa3Jsciwga2V5ICsgMjApOwotCUdFVFUzMihrcnJsLCBrZXkgKyAyNCk7Ci0JR0VUVTMyKGtycnIsIGtleSArIDI4KTsKKwlrbGwgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5KTsKKwlrbHIgPSBnZXRfdW5hbGlnbmVkX2JlMzIoa2V5ICsgNCk7CisJa3JsID0gZ2V0X3VuYWxpZ25lZF9iZTMyKGtleSArIDgpOworCWtyciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAxMik7CisJa3JsbCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAxNik7CisJa3JsciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyMCk7CisJa3JybCA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyNCk7CisJa3JyciA9IGdldF91bmFsaWduZWRfYmUzMihrZXkgKyAyOCk7CiAKIAkvKiBnZW5lcmF0ZSBLTCBkZXBlbmRlbnQgc3Via2V5cyAqLwogCS8qIGt3MSAqLwpAQCAtODcwLDEzICs4NTgsMTMgQEAKIAl0MCAmPSBsbDsJCQkJCQkJXAogCXQyIHw9IHJyOwkJCQkJCQlcCiAJcmwgXj0gdDI7CQkJCQkJCVwKLQlsciBePSBST0wxKHQwKTsJCQkJCQkJXAorCWxyIF49IHJvbDMyKHQwLCAxKTsJCQkJCQlcCiAJdDMgPSBrcmw7CQkJCQkJCVwKIAl0MSA9IGtscjsJCQkJCQkJXAogCXQzICY9IHJsOwkJCQkJCQlcCiAJdDEgfD0gbHI7CQkJCQkJCVwKIAlsbCBePSB0MTsJCQkJCQkJXAotCXJyIF49IFJPTDEodDMpOwkJCQkJCQlcCisJcnIgXj0gcm9sMzIodDMsIDEpOwkJCQkJCVwKICAgICB9IHdoaWxlKDApCiAKICNkZWZpbmUgQ0FNRUxMSUFfUk9VTkRTTSh4bCwgeHIsIGtsLCBrciwgeWwsIHlyLCBpbCwgaXIpCQlcCkBAIC04OTIsNyArODgwLDcgQEAKIAlpbCBePSBrbDsJCQkJCQkJXAogCWlyIF49IGlsIF4ga3I7CQkJCQkJCVwKIAl5bCBePSBpcjsJCQkJCQkJXAotCXlyIF49IFJPUjgoaWwpIF4gaXI7CQkJCQkJXAorCXlyIF49IHJvcjMyKGlsLCA4KSBeIGlyOwkJCQkJCVwKICAgICB9IHdoaWxlKDApCiAKIC8qIG1heCA9IDI0OiAxMjhiaXQgZW5jcnlwdCwgbWF4ID0gMzI6IDI1NmJpdCBlbmNyeXB0ICovCmRpZmYgLS1naXQgYS9jcnlwdG8vY2hhaW5pdi5jIGIvY3J5cHRvL2NoYWluaXYuYwppbmRleCA2ZGEzZjU3Li45YWZmYWRlIDEwMDY0NAotLS0gYS9jcnlwdG8vY2hhaW5pdi5jCisrKyBiL2NyeXB0by9jaGFpbml2LmMKQEAgLTExNyw2ICsxMTcsNyBAQAogc3RhdGljIGludCBhc3luY19jaGFpbml2X3NjaGVkdWxlX3dvcmsoc3RydWN0IGFzeW5jX2NoYWluaXZfY3R4ICpjdHgpCiB7CiAJaW50IHF1ZXVlZDsKKwlpbnQgZXJyID0gY3R4LT5lcnI7CiAKIAlpZiAoIWN0eC0+cXVldWUucWxlbikgewogCQlzbXBfbWJfX2JlZm9yZV9jbGVhcl9iaXQoKTsKQEAgLTEzMSw3ICsxMzIsNyBAQAogCUJVR19PTighcXVldWVkKTsKIAogb3V0OgotCXJldHVybiBjdHgtPmVycjsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IGFzeW5jX2NoYWluaXZfcG9zdHBvbmVfcmVxdWVzdChzdHJ1Y3Qgc2tjaXBoZXJfZ2l2Y3J5cHRfcmVxdWVzdCAqcmVxKQpAQCAtMjI3LDYgKzIyOCw3IEBACiAJCQkJCQkgICAgIHBvc3Rwb25lZCk7CiAJc3RydWN0IHNrY2lwaGVyX2dpdmNyeXB0X3JlcXVlc3QgKnJlcTsKIAlzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpzdWJyZXE7CisJaW50IGVycjsKIAogCS8qIE9ubHkgaGFuZGxlIG9uZSByZXF1ZXN0IGF0IGEgdGltZSB0byBhdm9pZCBob2dnaW5nIGtldmVudGQuICovCiAJc3Bpbl9sb2NrX2JoKCZjdHgtPmxvY2spOwpAQCAtMjQxLDcgKzI0MywxMSBAQAogCXN1YnJlcSA9IHNrY2lwaGVyX2dpdmNyeXB0X3JlcWN0eChyZXEpOwogCXN1YnJlcS0+YmFzZS5mbGFncyB8PSBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVA7CiAKLQlhc3luY19jaGFpbml2X2dpdmVuY3J5cHRfdGFpbChyZXEpOworCWVyciA9IGFzeW5jX2NoYWluaXZfZ2l2ZW5jcnlwdF90YWlsKHJlcSk7CisKKwlsb2NhbF9iaF9kaXNhYmxlKCk7CisJc2tjaXBoZXJfZ2l2Y3J5cHRfY29tcGxldGUocmVxLCBlcnIpOworCWxvY2FsX2JoX2VuYWJsZSgpOwogfQogCiBzdGF0aWMgaW50IGFzeW5jX2NoYWluaXZfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NyYzMyYy5jIGIvY3J5cHRvL2NyYzMyYy5jCmluZGV4IDBkY2Y2NGEuLmE4ODJkOWUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jcmMzMmMuYworKysgYi9jcnlwdG8vY3JjMzJjLmMKQEAgLTUsMjAgKzUsMjMgQEAKICAqCiAgKiBUaGlzIG1vZHVsZSBmaWxlIGlzIGEgd3JhcHBlciB0byBpbnZva2UgdGhlIGxpYi9jcmMzMmMgcm91dGluZXMuCiAgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAogICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKICAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgCiAgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCiAgKi8KKworI2luY2x1ZGUgPGNyeXB0by9pbnRlcm5hbC9oYXNoLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgotI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgogI2luY2x1ZGUgPGxpbnV4L2NyYzMyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogCi0jZGVmaW5lIENIS1NVTV9CTE9DS19TSVpFCTMyCisjZGVmaW5lIENIS1NVTV9CTE9DS19TSVpFCTEKICNkZWZpbmUgQ0hLU1VNX0RJR0VTVF9TSVpFCTQKIAogc3RydWN0IGNoa3N1bV9jdHggewpAQCAtNzEsNyArNzQsNyBAQAogCSooX19sZTMyICopb3V0ID0gfmNwdV90b19sZTMyKG1jdHgtPmNyYyk7CiB9CiAKLXN0YXRpYyBpbnQgY3JjMzJjX2NyYV9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCitzdGF0aWMgaW50IGNyYzMyY19jcmFfaW5pdF9vbGQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKIHsKIAlzdHJ1Y3QgY2hrc3VtX2N0eCAqbWN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CiAKQEAgLTc5LDE0ICs4MiwxNCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgYWxnID0geworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIG9sZF9hbGcgPSB7CiAJLmNyYV9uYW1lCT0JImNyYzMyYyIsCiAJLmNyYV9mbGFncwk9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCiAJLmNyYV9ibG9ja3NpemUJPQlDSEtTVU1fQkxPQ0tfU0laRSwKIAkuY3JhX2N0eHNpemUJPQlzaXplb2Yoc3RydWN0IGNoa3N1bV9jdHgpLAogCS5jcmFfbW9kdWxlCT0JVEhJU19NT0RVTEUsCi0JLmNyYV9saXN0CT0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKLQkuY3JhX2luaXQJPQljcmMzMmNfY3JhX2luaXQsCisJLmNyYV9saXN0CT0JTElTVF9IRUFEX0lOSVQob2xkX2FsZy5jcmFfbGlzdCksCisJLmNyYV9pbml0CT0JY3JjMzJjX2NyYV9pbml0X29sZCwKIAkuY3JhX3UJCT0JewogCQkuZGlnZXN0ID0gewogCQkJIC5kaWFfZGlnZXN0c2l6ZT0JQ0hLU1VNX0RJR0VTVF9TSVpFLApAQCAtOTgsMTQgKzEwMSwxMjUgQEAKIAl9CiB9OwogCisvKgorICogU2V0dGluZyB0aGUgc2VlZCBhbGxvd3MgYXJiaXRyYXJ5IGFjY3VtdWxhdG9ycyBhbmQgZmxleGlibGUgWE9SIHBvbGljeQorICogSWYgeW91ciBhbGdvcml0aG0gc3RhcnRzIHdpdGggfjAsIHRoZW4gWE9SIHdpdGggfjAgYmVmb3JlIHlvdSBzZXQKKyAqIHRoZSBzZWVkLgorICovCitzdGF0aWMgaW50IGNyYzMyY19zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqaGFzaCwgY29uc3QgdTggKmtleSwKKwkJCSB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXUzMiAqbWN0eCA9IGNyeXB0b19haGFzaF9jdHgoaGFzaCk7CisKKwlpZiAoa2V5bGVuICE9IHNpemVvZih1MzIpKSB7CisJCWNyeXB0b19haGFzaF9zZXRfZmxhZ3MoaGFzaCwgQ1JZUFRPX1RGTV9SRVNfQkFEX0tFWV9MRU4pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJKm1jdHggPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKWtleSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwl1MzIgKm1jdHggPSBjcnlwdG9fYWhhc2hfY3R4KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKworCSpjcmNwID0gKm1jdHg7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX3VwZGF0ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9faGFzaF93YWxrIHdhbGs7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwl1MzIgY3JjID0gKmNyY3A7CisJaW50IG5ieXRlczsKKworCWZvciAobmJ5dGVzID0gY3J5cHRvX2hhc2hfd2Fsa19maXJzdChyZXEsICZ3YWxrKTsgbmJ5dGVzOworCSAgICAgbmJ5dGVzID0gY3J5cHRvX2hhc2hfd2Fsa19kb25lKCZ3YWxrLCAwKSkKKwkJY3JjID0gY3JjMzJjKGNyYywgd2Fsay5kYXRhLCBuYnl0ZXMpOworCisJKmNyY3AgPSBjcmM7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3JjMzJjX2ZpbmFsKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJdTMyICpjcmNwID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwkKKwkqKF9fbGUzMiAqKXJlcS0+cmVzdWx0ID0gfmNwdV90b19sZTMycChjcmNwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcmMzMmNfZGlnZXN0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgd2FsazsKKwl1MzIgKm1jdHggPSBjcnlwdG9fYWhhc2hfY3R4KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJdTMyIGNyYyA9ICptY3R4OworCWludCBuYnl0ZXM7CisKKwlmb3IgKG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZmlyc3QocmVxLCAmd2Fsayk7IG5ieXRlczsKKwkgICAgIG5ieXRlcyA9IGNyeXB0b19oYXNoX3dhbGtfZG9uZSgmd2FsaywgMCkpCisJCWNyYyA9IGNyYzMyYyhjcmMsIHdhbGsuZGF0YSwgbmJ5dGVzKTsKKworCSooX19sZTMyICopcmVxLT5yZXN1bHQgPSB+Y3B1X3RvX2xlMzIoY3JjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcmMzMmNfY3JhX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwl1MzIgKmtleSA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwkqa2V5ID0gfjA7CisKKwl0Zm0tPmNydF9haGFzaC5yZXFzaXplID0gc2l6ZW9mKHUzMik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJCT0JImNyYzMyYyIsCisJLmNyYV9kcml2ZXJfbmFtZQk9CSJjcmMzMmMtZ2VuZXJpYyIsCisJLmNyYV9wcmlvcml0eQkJPQkxMDAsCisJLmNyYV9mbGFncwkJPQlDUllQVE9fQUxHX1RZUEVfQUhBU0gsCisJLmNyYV9ibG9ja3NpemUJCT0JQ0hLU1VNX0JMT0NLX1NJWkUsCisJLmNyYV9hbGlnbm1hc2sJCT0JMywKKwkuY3JhX2N0eHNpemUJCT0Jc2l6ZW9mKHUzMiksCisJLmNyYV9tb2R1bGUJCT0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CQk9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV9pbml0CQk9CWNyYzMyY19jcmFfaW5pdCwKKwkuY3JhX3R5cGUJCT0JJmNyeXB0b19haGFzaF90eXBlLAorCS5jcmFfdQkJCT0JeworCQkuYWhhc2ggPSB7CisJCQkgLmRpZ2VzdHNpemUJPQlDSEtTVU1fRElHRVNUX1NJWkUsCisJCQkgLnNldGtleQk9CWNyYzMyY19zZXRrZXksCisJCQkgLmluaXQgICAJPSAJY3JjMzJjX2luaXQsCisJCQkgLnVwZGF0ZSAJPQljcmMzMmNfdXBkYXRlLAorCQkJIC5maW5hbCAgCT0JY3JjMzJjX2ZpbmFsLAorCQkJIC5kaWdlc3QgIAk9CWNyYzMyY19kaWdlc3QsCisJCSB9CisJfQorfTsKKwogc3RhdGljIGludCBfX2luaXQgY3JjMzJjX21vZF9pbml0KHZvaWQpCiB7Ci0JcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7CisJaW50IGVycjsKKworCWVyciA9IGNyeXB0b19yZWdpc3Rlcl9hbGcoJm9sZF9hbGcpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworCWlmIChlcnIpCisJCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmb2xkX2FsZyk7CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgY3JjMzJjX21vZF9maW5pKHZvaWQpCiB7CiAJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmb2xkX2FsZyk7CiB9CiAKIG1vZHVsZV9pbml0KGNyYzMyY19tb2RfaW5pdCk7CmRpZmYgLS1naXQgYS9jcnlwdG8vY3J5cHRkLmMgYi9jcnlwdG8vY3J5cHRkLmMKaW5kZXggYjE1MGRlNS4uZDI5ZTA2YiAxMDA2NDQKLS0tIGEvY3J5cHRvL2NyeXB0ZC5jCisrKyBiL2NyeXB0by9jcnlwdGQuYwpAQCAtMTEsNiArMTEsNyBAQAogICovCiAKICNpbmNsdWRlIDxjcnlwdG8vYWxnYXBpLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CkBAIC00NSw2ICs0NiwxMyBAQAogCWNyeXB0b19jb21wbGV0aW9uX3QgY29tcGxldGU7CiB9OwogCitzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4IHsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggKmNoaWxkOworfTsKKworc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4IHsKKwljcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlOworfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRkX3N0YXRlICpjcnlwdGRfZ2V0X3N0YXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CkBAIC04MiwxMCArOTAsOCBAQAogCiAJcmN0eCA9IGFibGtjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKIAotCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkgewotCQlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOwotCQlyZXR1cm47Ci0JfQorCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkKKwkJZ290byBvdXQ7CiAKIAlkZXNjLnRmbSA9IGNoaWxkOwogCWRlc2MuaW5mbyA9IHJlcS0+aW5mbzsKQEAgLTk1LDggKzEwMSw5IEBACiAKIAlyZXEtPmJhc2UuY29tcGxldGUgPSByY3R4LT5jb21wbGV0ZTsKIAorb3V0OgogCWxvY2FsX2JoX2Rpc2FibGUoKTsKLQlyZXEtPmJhc2UuY29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKKwlyY3R4LT5jb21wbGV0ZSgmcmVxLT5iYXNlLCBlcnIpOwogCWxvY2FsX2JoX2VuYWJsZSgpOwogfQogCkBAIC0yNjEsNiArMjY4LDI0MCBAQAogCXJldHVybiBpbnN0OwogfQogCitzdGF0aWMgaW50IGNyeXB0ZF9oYXNoX2luaXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0b19pbnN0YW5jZSAqaW5zdCA9IGNyeXB0b190Zm1fYWxnX2luc3RhbmNlKHRmbSk7CisJc3RydWN0IGNyeXB0ZF9pbnN0YW5jZV9jdHggKmljdHggPSBjcnlwdG9faW5zdGFuY2VfY3R4KGluc3QpOworCXN0cnVjdCBjcnlwdG9fc3Bhd24gKnNwYXduID0gJmljdHgtPnNwYXduOworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICpjaXBoZXI7CisKKwljaXBoZXIgPSBjcnlwdG9fc3Bhd25faGFzaChzcGF3bik7CisJaWYgKElTX0VSUihjaXBoZXIpKQorCQlyZXR1cm4gUFRSX0VSUihjaXBoZXIpOworCisJY3R4LT5jaGlsZCA9IGNpcGhlcjsKKwl0Zm0tPmNydF9haGFzaC5yZXFzaXplID0KKwkJc2l6ZW9mKHN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0ZF9oYXNoX2V4aXRfdGZtKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlzdHJ1Y3QgY3J5cHRkX3N0YXRlICpzdGF0ZSA9IGNyeXB0ZF9nZXRfc3RhdGUodGZtKTsKKwlpbnQgYWN0aXZlOworCisJbXV0ZXhfbG9jaygmc3RhdGUtPm11dGV4KTsKKwlhY3RpdmUgPSBhaGFzaF90Zm1faW5fcXVldWUoJnN0YXRlLT5xdWV1ZSwKKwkJCQlfX2NyeXB0b19haGFzaF9jYXN0KHRmbSkpOworCW11dGV4X3VubG9jaygmc3RhdGUtPm11dGV4KTsKKworCUJVR19PTihhY3RpdmUpOworCisJY3J5cHRvX2ZyZWVfaGFzaChjdHgtPmNoaWxkKTsKK30KKworc3RhdGljIGludCBjcnlwdGRfaGFzaF9zZXRrZXkoc3RydWN0IGNyeXB0b19haGFzaCAqcGFyZW50LAorCQkJCSAgIGNvbnN0IHU4ICprZXksIHVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fYWhhc2hfY3R4KHBhcmVudCk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCWludCBlcnI7CisKKwljcnlwdG9faGFzaF9jbGVhcl9mbGFncyhjaGlsZCwgQ1JZUFRPX1RGTV9SRVFfTUFTSyk7CisJY3J5cHRvX2hhc2hfc2V0X2ZsYWdzKGNoaWxkLCBjcnlwdG9fYWhhc2hfZ2V0X2ZsYWdzKHBhcmVudCkgJgorCQkJCQkgIENSWVBUT19URk1fUkVRX01BU0spOworCWVyciA9IGNyeXB0b19oYXNoX3NldGtleShjaGlsZCwga2V5LCBrZXlsZW4pOworCWNyeXB0b19haGFzaF9zZXRfZmxhZ3MocGFyZW50LCBjcnlwdG9faGFzaF9nZXRfZmxhZ3MoY2hpbGQpICYKKwkJCQkJICAgIENSWVBUT19URk1fUkVTX01BU0spOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxLAorCQkJCWNyeXB0b19jb21wbGV0aW9uX3QgY29tcGxldGUpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0gPSBjcnlwdG9fYWhhc2hfcmVxdGZtKHJlcSk7CisJc3RydWN0IGNyeXB0ZF9zdGF0ZSAqc3RhdGUgPQorCQljcnlwdGRfZ2V0X3N0YXRlKGNyeXB0b19haGFzaF90Zm0odGZtKSk7CisJaW50IGVycjsKKworCXJjdHgtPmNvbXBsZXRlID0gcmVxLT5iYXNlLmNvbXBsZXRlOworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IGNvbXBsZXRlOworCisJc3Bpbl9sb2NrX2JoKCZzdGF0ZS0+bG9jayk7CisJZXJyID0gYWhhc2hfZW5xdWV1ZV9yZXF1ZXN0KCZzdGF0ZS0+cXVldWUsIHJlcSk7CisJc3Bpbl91bmxvY2tfYmgoJnN0YXRlLT5sb2NrKTsKKworCXdha2VfdXBfcHJvY2VzcyhzdGF0ZS0+dGFzayk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfaW5pdChzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcV9hc3luYywgaW50IGVycikKK3sKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4ICpjdHggICA9IGNyeXB0b190Zm1fY3R4KHJlcV9hc3luYy0+dGZtKTsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggICAgICpjaGlsZCA9IGN0eC0+Y2hpbGQ7CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgICAgKnJlcSA9IGFoYXNoX3JlcXVlc3RfY2FzdChyZXFfYXN5bmMpOworCXN0cnVjdCBjcnlwdGRfaGFzaF9yZXF1ZXN0X2N0eCAqcmN0eDsKKwlzdHJ1Y3QgaGFzaF9kZXNjIGRlc2M7CisKKwlyY3R4ID0gYWhhc2hfcmVxdWVzdF9jdHgocmVxKTsKKworCWlmICh1bmxpa2VseShlcnIgPT0gLUVJTlBST0dSRVNTKSkKKwkJZ290byBvdXQ7CisKKwlkZXNjLnRmbSA9IGNoaWxkOworCWRlc2MuZmxhZ3MgPSBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVA7CisKKwllcnIgPSBjcnlwdG9faGFzaF9jcnQoY2hpbGQpLT5pbml0KCZkZXNjKTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfaW5pdF9lbnF1ZXVlKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGNyeXB0ZF9oYXNoX2VucXVldWUocmVxLCBjcnlwdGRfaGFzaF9pbml0KTsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfdXBkYXRlKHN0cnVjdCBjcnlwdG9fYXN5bmNfcmVxdWVzdCAqcmVxX2FzeW5jLCBpbnQgZXJyKQoreworCXN0cnVjdCBjcnlwdGRfaGFzaF9jdHggKmN0eCAgID0gY3J5cHRvX3RmbV9jdHgocmVxX2FzeW5jLT50Zm0pOworCXN0cnVjdCBjcnlwdG9faGFzaCAgICAgKmNoaWxkID0gY3R4LT5jaGlsZDsKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAgICAqcmVxID0gYWhhc2hfcmVxdWVzdF9jYXN0KHJlcV9hc3luYyk7CisJc3RydWN0IGNyeXB0ZF9oYXNoX3JlcXVlc3RfY3R4ICpyY3R4OworCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKworCXJjdHggPSBhaGFzaF9yZXF1ZXN0X2N0eChyZXEpOworCisJaWYgKHVubGlrZWx5KGVyciA9PSAtRUlOUFJPR1JFU1MpKQorCQlnb3RvIG91dDsKKworCWRlc2MudGZtID0gY2hpbGQ7CisJZGVzYy5mbGFncyA9IENSWVBUT19URk1fUkVRX01BWV9TTEVFUDsKKworCWVyciA9IGNyeXB0b19oYXNoX2NydChjaGlsZCktPnVwZGF0ZSgmZGVzYywKKwkJCQkJCXJlcS0+c3JjLAorCQkJCQkJcmVxLT5uYnl0ZXMpOworCisJcmVxLT5iYXNlLmNvbXBsZXRlID0gcmN0eC0+Y29tcGxldGU7CisKK291dDoKKwlsb2NhbF9iaF9kaXNhYmxlKCk7CisJcmN0eC0+Y29tcGxldGUoJnJlcS0+YmFzZSwgZXJyKTsKKwlsb2NhbF9iaF9lbmFibGUoKTsKK30KKworc3RhdGljIGludCBjcnlwdGRfaGFzaF91cGRhdGVfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjcnlwdGRfaGFzaF9lbnF1ZXVlKHJlcSwgY3J5cHRkX2hhc2hfdXBkYXRlKTsKK30KKworc3RhdGljIHZvaWQgY3J5cHRkX2hhc2hfZmluYWwoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXFfYXN5bmMsIGludCBlcnIpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fdGZtX2N0eChyZXFfYXN5bmMtPnRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICAgICpyZXEgPSBhaGFzaF9yZXF1ZXN0X2Nhc3QocmVxX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHggKnJjdHg7CisJc3RydWN0IGhhc2hfZGVzYyBkZXNjOworCisJcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OworCisJZGVzYy50Zm0gPSBjaGlsZDsKKwlkZXNjLmZsYWdzID0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOworCisJZXJyID0gY3J5cHRvX2hhc2hfY3J0KGNoaWxkKS0+ZmluYWwoJmRlc2MsIHJlcS0+cmVzdWx0KTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZmluYWxfZW5xdWV1ZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBjcnlwdGRfaGFzaF9lbnF1ZXVlKHJlcSwgY3J5cHRkX2hhc2hfZmluYWwpOworfQorCitzdGF0aWMgdm9pZCBjcnlwdGRfaGFzaF9kaWdlc3Qoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXFfYXN5bmMsIGludCBlcnIpCit7CisJc3RydWN0IGNyeXB0ZF9oYXNoX2N0eCAqY3R4ICAgPSBjcnlwdG9fdGZtX2N0eChyZXFfYXN5bmMtPnRmbSk7CisJc3RydWN0IGNyeXB0b19oYXNoICAgICAqY2hpbGQgPSBjdHgtPmNoaWxkOworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICAgICpyZXEgPSBhaGFzaF9yZXF1ZXN0X2Nhc3QocmVxX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRkX2hhc2hfcmVxdWVzdF9jdHggKnJjdHg7CisJc3RydWN0IGhhc2hfZGVzYyBkZXNjOworCisJcmN0eCA9IGFoYXNoX3JlcXVlc3RfY3R4KHJlcSk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FSU5QUk9HUkVTUykpCisJCWdvdG8gb3V0OworCisJZGVzYy50Zm0gPSBjaGlsZDsKKwlkZXNjLmZsYWdzID0gQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQOworCisJZXJyID0gY3J5cHRvX2hhc2hfY3J0KGNoaWxkKS0+ZGlnZXN0KCZkZXNjLAorCQkJCQkJcmVxLT5zcmMsCisJCQkJCQlyZXEtPm5ieXRlcywKKwkJCQkJCXJlcS0+cmVzdWx0KTsKKworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IHJjdHgtPmNvbXBsZXRlOworCitvdXQ6CisJbG9jYWxfYmhfZGlzYWJsZSgpOworCXJjdHgtPmNvbXBsZXRlKCZyZXEtPmJhc2UsIGVycik7CisJbG9jYWxfYmhfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQgY3J5cHRkX2hhc2hfZGlnZXN0X2VucXVldWUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY3J5cHRkX2hhc2hfZW5xdWV1ZShyZXEsIGNyeXB0ZF9oYXNoX2RpZ2VzdCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICpjcnlwdGRfYWxsb2NfaGFzaCgKKwlzdHJ1Y3QgcnRhdHRyICoqdGIsIHN0cnVjdCBjcnlwdGRfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBjcnlwdG9faW5zdGFuY2UgKmluc3Q7CisJc3RydWN0IGNyeXB0b19hbGcgKmFsZzsKKworCWFsZyA9IGNyeXB0b19nZXRfYXR0cl9hbGcodGIsIENSWVBUT19BTEdfVFlQRV9IQVNILAorCQkJCSAgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSyk7CisJaWYgKElTX0VSUihhbGcpKQorCQlyZXR1cm4gRVJSX1BUUihQVFJfRVJSKGFsZykpOworCisJaW5zdCA9IGNyeXB0ZF9hbGxvY19pbnN0YW5jZShhbGcsIHN0YXRlKTsKKwlpZiAoSVNfRVJSKGluc3QpKQorCQlnb3RvIG91dF9wdXRfYWxnOworCisJaW5zdC0+YWxnLmNyYV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BSEFTSCB8IENSWVBUT19BTEdfQVNZTkM7CisJaW5zdC0+YWxnLmNyYV90eXBlID0gJmNyeXB0b19haGFzaF90eXBlOworCisJaW5zdC0+YWxnLmNyYV9haGFzaC5kaWdlc3RzaXplID0gYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplOworCWluc3QtPmFsZy5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgY3J5cHRkX2hhc2hfY3R4KTsKKworCWluc3QtPmFsZy5jcmFfaW5pdCA9IGNyeXB0ZF9oYXNoX2luaXRfdGZtOworCWluc3QtPmFsZy5jcmFfZXhpdCA9IGNyeXB0ZF9oYXNoX2V4aXRfdGZtOworCisJaW5zdC0+YWxnLmNyYV9haGFzaC5pbml0ICAgPSBjcnlwdGRfaGFzaF9pbml0X2VucXVldWU7CisJaW5zdC0+YWxnLmNyYV9haGFzaC51cGRhdGUgPSBjcnlwdGRfaGFzaF91cGRhdGVfZW5xdWV1ZTsKKwlpbnN0LT5hbGcuY3JhX2FoYXNoLmZpbmFsICA9IGNyeXB0ZF9oYXNoX2ZpbmFsX2VucXVldWU7CisJaW5zdC0+YWxnLmNyYV9haGFzaC5zZXRrZXkgPSBjcnlwdGRfaGFzaF9zZXRrZXk7CisJaW5zdC0+YWxnLmNyYV9haGFzaC5kaWdlc3QgPSBjcnlwdGRfaGFzaF9kaWdlc3RfZW5xdWV1ZTsKKworb3V0X3B1dF9hbGc6CisJY3J5cHRvX21vZF9wdXQoYWxnKTsKKwlyZXR1cm4gaW5zdDsKK30KKwogc3RhdGljIHN0cnVjdCBjcnlwdGRfc3RhdGUgc3RhdGU7CiAKIHN0YXRpYyBzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICpjcnlwdGRfYWxsb2Moc3RydWN0IHJ0YXR0ciAqKnRiKQpAQCAtMjc0LDYgKzUxNSw4IEBACiAJc3dpdGNoIChhbGd0LT50eXBlICYgYWxndC0+bWFzayAmIENSWVBUT19BTEdfVFlQRV9NQVNLKSB7CiAJY2FzZSBDUllQVE9fQUxHX1RZUEVfQkxLQ0lQSEVSOgogCQlyZXR1cm4gY3J5cHRkX2FsbG9jX2Jsa2NpcGhlcih0YiwgJnN0YXRlKTsKKwljYXNlIENSWVBUT19BTEdfVFlQRV9ESUdFU1Q6CisJCXJldHVybiBjcnlwdGRfYWxsb2NfaGFzaCh0YiwgJnN0YXRlKTsKIAl9CiAKIAlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9jdHMuYyBiL2NyeXB0by9jdHMuYwppbmRleCBjNGU3MGJmLi5jY2Y5YzVkIDEwMDY0NAotLS0gYS9jcnlwdG8vY3RzLmMKKysrIGIvY3J5cHRvL2N0cy5jCkBAIC04OSw2ICs4OSw5IEBACiAJaWYgKGxhc3RuIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlzZ19pbml0X3RhYmxlKHNnc3JjLCAxKTsKKwlzZ19pbml0X3RhYmxlKHNnZHN0LCAxKTsKKwogCW1lbXNldChzLCAwLCBzaXplb2YocykpOwogCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShzLCBzcmMsIG9mZnNldCwgbmJ5dGVzLCAwKTsKIApAQCAtMTcyLDYgKzE3NSw5IEBACiAJaWYgKGxhc3RuIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKKwlzZ19pbml0X3RhYmxlKHNnc3JjLCAxKTsKKwlzZ19pbml0X3RhYmxlKHNnZHN0LCAxKTsKKwogCXNjYXR0ZXJ3YWxrX21hcF9hbmRfY29weShzLCBzcmMsIG9mZnNldCwgbmJ5dGVzLCAwKTsKIAogCWxjbGRlc2MudGZtID0gY3R4LT5jaGlsZDsKZGlmZiAtLWdpdCBhL2NyeXB0by9kaWdlc3QuYyBiL2NyeXB0by9kaWdlc3QuYwppbmRleCBiNTI2Y2MzLi5hYzA5MTk0IDEwMDY0NAotLS0gYS9jcnlwdG8vZGlnZXN0LmMKKysrIGIvY3J5cHRvL2RpZ2VzdC5jCkBAIC0xMiw2ICsxMiw3IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxjcnlwdG8vaW50ZXJuYWwvaGFzaC5oPgogI2luY2x1ZGUgPGNyeXB0by9zY2F0dGVyd2Fsay5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KQEAgLTE0MSw3ICsxNDIsNyBAQAogCXN0cnVjdCBoYXNoX3RmbSAqb3BzID0gJnRmbS0+Y3J0X2hhc2g7CiAJc3RydWN0IGRpZ2VzdF9hbGcgKmRhbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9kaWdlc3Q7CiAKLQlpZiAoZGFsZy0+ZGlhX2RpZ2VzdHNpemUgPiBjcnlwdG9fdGZtX2FsZ19ibG9ja3NpemUodGZtKSkKKwlpZiAoZGFsZy0+ZGlhX2RpZ2VzdHNpemUgPiBQQUdFX1NJWkUgLyA4KQogCQlyZXR1cm4gLUVJTlZBTDsKIAkKIAlvcHMtPmluaXQJPSBpbml0OwpAQCAtMTU3LDMgKzE1OCw4MyBAQAogdm9pZCBjcnlwdG9fZXhpdF9kaWdlc3Rfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CiB9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX25vc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbV9hc3luYywgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbV9hc3luYywgQ1JZUFRPX1RGTV9SRVNfTUFTSyk7CisJcmV0dXJuIC1FTk9TWVM7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm1fYXN5bmMsIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICAgICp0Zm0gICAgICAgID0gY3J5cHRvX2FoYXNoX3RmbSh0Zm1fYXN5bmMpOworCXN0cnVjdCBkaWdlc3RfYWxnICAgICpkYWxnICAgICAgID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfZGlnZXN0OworCisJY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHRmbV9hc3luYywgQ1JZUFRPX1RGTV9SRVNfTUFTSyk7CisJcmV0dXJuIGRhbGctPmRpYV9zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtICA9IHJlcS0+YmFzZS50Zm07CisJc3RydWN0IGRpZ2VzdF9hbGcgKmRhbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9kaWdlc3Q7CisKKwlkYWxnLT5kaWFfaW5pdCh0Zm0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGRpZ2VzdF9hc3luY191cGRhdGUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtICAgPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwl1cGRhdGUoJmRlc2MsIHJlcS0+c3JjLCByZXEtPm5ieXRlcyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2ZpbmFsKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b190Zm0gKnRmbSAgPSByZXEtPmJhc2UudGZtOworCXN0cnVjdCBoYXNoX2Rlc2MgIGRlc2MgPSB7CisJCS50Zm0gICA9IF9fY3J5cHRvX2hhc2hfY2FzdCh0Zm0pLAorCQkuZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MsCisJfTsKKworCWZpbmFsKCZkZXNjLCByZXEtPnJlc3VsdCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZGlnZXN0X2FzeW5jX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm0gID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtICAgPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwlyZXR1cm4gZGlnZXN0KCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMsIHJlcS0+cmVzdWx0KTsKK30KKworaW50IGNyeXB0b19pbml0X2RpZ2VzdF9vcHNfYXN5bmMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICAqY3J0ICA9ICZ0Zm0tPmNydF9haGFzaDsKKwlzdHJ1Y3QgZGlnZXN0X2FsZyAqZGFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2RpZ2VzdDsKKworCWlmIChkYWxnLT5kaWFfZGlnZXN0c2l6ZSA+IGNyeXB0b190Zm1fYWxnX2Jsb2Nrc2l6ZSh0Zm0pKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWNydC0+aW5pdCAgICAgICA9IGRpZ2VzdF9hc3luY19pbml0OworCWNydC0+dXBkYXRlICAgICA9IGRpZ2VzdF9hc3luY191cGRhdGU7CisJY3J0LT5maW5hbCAgICAgID0gZGlnZXN0X2FzeW5jX2ZpbmFsOworCWNydC0+ZGlnZXN0ICAgICA9IGRpZ2VzdF9hc3luY19kaWdlc3Q7CisJY3J0LT5zZXRrZXkgICAgID0gZGFsZy0+ZGlhX3NldGtleSA/IGRpZ2VzdF9hc3luY19zZXRrZXkgOgorCQkJCQkJZGlnZXN0X2FzeW5jX25vc2V0a2V5OworCWNydC0+ZGlnZXN0c2l6ZSA9IGRhbGctPmRpYV9kaWdlc3RzaXplOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9jcnlwdG8vaGFzaC5jIGIvY3J5cHRvL2hhc2guYwppbmRleCA3ZGNmZjY3Li5jYjg2YjE5IDEwMDY0NAotLS0gYS9jcnlwdG8vaGFzaC5jCisrKyBiL2NyeXB0by9oYXNoLmMKQEAgLTksNiArOSw3IEBACiAgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqLwogCisjaW5jbHVkZSA8Y3J5cHRvL2ludGVybmFsL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNTksMjQgKzYwLDEwNyBAQAogCXJldHVybiBhbGctPnNldGtleShjcnQsIGtleSwga2V5bGVuKTsKIH0KIAotc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1MzIgdHlwZSwgdTMyIG1hc2spCitzdGF0aWMgaW50IGhhc2hfYXN5bmNfc2V0a2V5KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbV9hc3luYywgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGNyeXB0b190Zm0gICp0Zm0gICAgICA9IGNyeXB0b19haGFzaF90Zm0odGZtX2FzeW5jKTsKKwlzdHJ1Y3QgY3J5cHRvX2hhc2ggKnRmbV9oYXNoID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSk7CisJc3RydWN0IGhhc2hfYWxnICAgICphbGcgICAgICA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwlyZXR1cm4gYWxnLT5zZXRrZXkodGZtX2hhc2gsIGtleSwga2V5bGVuKTsKK30KKworc3RhdGljIGludCBoYXNoX2FzeW5jX2luaXQoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+aW5pdCgmZGVzYyk7Cit9CisKK3N0YXRpYyBpbnQgaGFzaF9hc3luY191cGRhdGUoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+dXBkYXRlKCZkZXNjLCByZXEtPnNyYywgcmVxLT5uYnl0ZXMpOworfQorCitzdGF0aWMgaW50IGhhc2hfYXN5bmNfZmluYWwoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtID0gcmVxLT5iYXNlLnRmbTsKKwlzdHJ1Y3QgaGFzaF9hbGcgICAqYWxnID0gJnRmbS0+X19jcnRfYWxnLT5jcmFfaGFzaDsKKwlzdHJ1Y3QgaGFzaF9kZXNjICBkZXNjID0geworCQkudGZtID0gX19jcnlwdG9faGFzaF9jYXN0KHRmbSksCisJCS5mbGFncyA9IHJlcS0+YmFzZS5mbGFncywKKwl9OworCisJcmV0dXJuIGFsZy0+ZmluYWwoJmRlc2MsIHJlcS0+cmVzdWx0KTsKK30KKworc3RhdGljIGludCBoYXNoX2FzeW5jX2RpZ2VzdChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm0gPSByZXEtPmJhc2UudGZtOworCXN0cnVjdCBoYXNoX2FsZyAgICphbGcgPSAmdGZtLT5fX2NydF9hbGctPmNyYV9oYXNoOworCXN0cnVjdCBoYXNoX2Rlc2MgIGRlc2MgPSB7CisJCS50Zm0gPSBfX2NyeXB0b19oYXNoX2Nhc3QodGZtKSwKKwkJLmZsYWdzID0gcmVxLT5iYXNlLmZsYWdzLAorCX07CisKKwlyZXR1cm4gYWxnLT5kaWdlc3QoJmRlc2MsIHJlcS0+c3JjLCByZXEtPm5ieXRlcywgcmVxLT5yZXN1bHQpOworfQorCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2hhc2hfb3BzX2FzeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGFoYXNoX3RmbSAqY3J0ID0gJnRmbS0+Y3J0X2FoYXNoOworCXN0cnVjdCBoYXNoX2FsZyAgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwljcnQtPmluaXQgICAgICAgPSBoYXNoX2FzeW5jX2luaXQ7CisJY3J0LT51cGRhdGUgICAgID0gaGFzaF9hc3luY191cGRhdGU7CisJY3J0LT5maW5hbCAgICAgID0gaGFzaF9hc3luY19maW5hbDsKKwljcnQtPmRpZ2VzdCAgICAgPSBoYXNoX2FzeW5jX2RpZ2VzdDsKKwljcnQtPnNldGtleSAgICAgPSBoYXNoX2FzeW5jX3NldGtleTsKKwljcnQtPmRpZ2VzdHNpemUgPSBhbGctPmRpZ2VzdHNpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjcnlwdG9faW5pdF9oYXNoX29wc19zeW5jKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCiB7CiAJc3RydWN0IGhhc2hfdGZtICpjcnQgPSAmdGZtLT5jcnRfaGFzaDsKIAlzdHJ1Y3QgaGFzaF9hbGcgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CiAKLQlpZiAoYWxnLT5kaWdlc3RzaXplID4gY3J5cHRvX3RmbV9hbGdfYmxvY2tzaXplKHRmbSkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JY3J0LT5pbml0ID0gYWxnLT5pbml0OwotCWNydC0+dXBkYXRlID0gYWxnLT51cGRhdGU7Ci0JY3J0LT5maW5hbCA9IGFsZy0+ZmluYWw7Ci0JY3J0LT5kaWdlc3QgPSBhbGctPmRpZ2VzdDsKLQljcnQtPnNldGtleSA9IGhhc2hfc2V0a2V5OworCWNydC0+aW5pdCAgICAgICA9IGFsZy0+aW5pdDsKKwljcnQtPnVwZGF0ZSAgICAgPSBhbGctPnVwZGF0ZTsKKwljcnQtPmZpbmFsICAgICAgPSBhbGctPmZpbmFsOworCWNydC0+ZGlnZXN0ICAgICA9IGFsZy0+ZGlnZXN0OworCWNydC0+c2V0a2V5ICAgICA9IGhhc2hfc2V0a2V5OwogCWNydC0+ZGlnZXN0c2l6ZSA9IGFsZy0+ZGlnZXN0c2l6ZTsKIAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGNyeXB0b19pbml0X2hhc2hfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHUzMiB0eXBlLCB1MzIgbWFzaykKK3sKKwlzdHJ1Y3QgaGFzaF9hbGcgKmFsZyA9ICZ0Zm0tPl9fY3J0X2FsZy0+Y3JhX2hhc2g7CisKKwlpZiAoYWxnLT5kaWdlc3RzaXplID4gUEFHRV9TSVpFIC8gOCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoKG1hc2sgJiBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLKSAhPSBDUllQVE9fQUxHX1RZUEVfSEFTSF9NQVNLKQorCQlyZXR1cm4gY3J5cHRvX2luaXRfaGFzaF9vcHNfYXN5bmModGZtKTsKKwllbHNlCisJCXJldHVybiBjcnlwdG9faW5pdF9oYXNoX29wc19zeW5jKHRmbSk7Cit9CisKIHN0YXRpYyB2b2lkIGNyeXB0b19oYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQogCV9fYXR0cmlidXRlX18gKCh1bnVzZWQpKTsKIHN0YXRpYyB2b2lkIGNyeXB0b19oYXNoX3Nob3coc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2htYWMuYyBiL2NyeXB0by9obWFjLmMKaW5kZXggMTRjNjM1MS4uN2ZmMmQ2YSAxMDA2NDQKLS0tIGEvY3J5cHRvL2htYWMuYworKysgYi9jcnlwdG8vaG1hYy5jCkBAIC0yMjYsNiArMjI2LDcgQEAKIAlzdHJ1Y3QgY3J5cHRvX2luc3RhbmNlICppbnN0OwogCXN0cnVjdCBjcnlwdG9fYWxnICphbGc7CiAJaW50IGVycjsKKwlpbnQgZHM7CiAKIAllcnIgPSBjcnlwdG9fY2hlY2tfYXR0cl90eXBlKHRiLCBDUllQVE9fQUxHX1RZUEVfSEFTSCk7CiAJaWYgKGVycikKQEAgLTIzNiw2ICsyMzcsMTMgQEAKIAlpZiAoSVNfRVJSKGFsZykpCiAJCXJldHVybiBFUlJfQ0FTVChhbGcpOwogCisJaW5zdCA9IEVSUl9QVFIoLUVJTlZBTCk7CisJZHMgPSAoYWxnLT5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX1RZUEVfTUFTSykgPT0KKwkgICAgIENSWVBUT19BTEdfVFlQRV9IQVNIID8gYWxnLT5jcmFfaGFzaC5kaWdlc3RzaXplIDoKKwkJCQkgICAgYWxnLT5jcmFfZGlnZXN0LmRpYV9kaWdlc3RzaXplOworCWlmIChkcyA+IGFsZy0+Y3JhX2Jsb2Nrc2l6ZSkKKwkJZ290byBvdXRfcHV0X2FsZzsKKwogCWluc3QgPSBjcnlwdG9fYWxsb2NfaW5zdGFuY2UoImhtYWMiLCBhbGcpOwogCWlmIChJU19FUlIoaW5zdCkpCiAJCWdvdG8gb3V0X3B1dF9hbGc7CkBAIC0yNDYsMTQgKzI1NCwxMCBAQAogCWluc3QtPmFsZy5jcmFfYWxpZ25tYXNrID0gYWxnLT5jcmFfYWxpZ25tYXNrOwogCWluc3QtPmFsZy5jcmFfdHlwZSA9ICZjcnlwdG9faGFzaF90eXBlOwogCi0JaW5zdC0+YWxnLmNyYV9oYXNoLmRpZ2VzdHNpemUgPQotCQkoYWxnLT5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX1RZUEVfTUFTSykgPT0KLQkJQ1JZUFRPX0FMR19UWVBFX0hBU0ggPyBhbGctPmNyYV9oYXNoLmRpZ2VzdHNpemUgOgotCQkJCSAgICAgICBhbGctPmNyYV9kaWdlc3QuZGlhX2RpZ2VzdHNpemU7CisJaW5zdC0+YWxnLmNyYV9oYXNoLmRpZ2VzdHNpemUgPSBkczsKIAogCWluc3QtPmFsZy5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaG1hY19jdHgpICsKLQkJCQlBTElHTihpbnN0LT5hbGcuY3JhX2Jsb2Nrc2l6ZSAqIDIgKwotCQkJCSAgICAgIGluc3QtPmFsZy5jcmFfaGFzaC5kaWdlc3RzaXplLAorCQkJCUFMSUdOKGluc3QtPmFsZy5jcmFfYmxvY2tzaXplICogMiArIGRzLAogCQkJCSAgICAgIHNpemVvZih2b2lkICopKTsKIAogCWluc3QtPmFsZy5jcmFfaW5pdCA9IGhtYWNfaW5pdF90Zm07CmRpZmYgLS1naXQgYS9jcnlwdG8vaW50ZXJuYWwuaCBiL2NyeXB0by9pbnRlcm5hbC5oCmluZGV4IDMyZjRjMjEuLjY4M2ZjYjIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9pbnRlcm5hbC5oCisrKyBiL2NyeXB0by9pbnRlcm5hbC5oCkBAIC04Niw2ICs4Niw3IEBACiBzdHJ1Y3QgY3J5cHRvX2FsZyAqY3J5cHRvX2FsZ19tb2RfbG9va3VwKGNvbnN0IGNoYXIgKm5hbWUsIHUzMiB0eXBlLCB1MzIgbWFzayk7CiAKIGludCBjcnlwdG9faW5pdF9kaWdlc3Rfb3BzKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pOworaW50IGNyeXB0b19pbml0X2RpZ2VzdF9vcHNfYXN5bmMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSk7CiBpbnQgY3J5cHRvX2luaXRfY2lwaGVyX29wcyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKTsKIGludCBjcnlwdG9faW5pdF9jb21wcmVzc19vcHMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSk7CiAKZGlmZiAtLWdpdCBhL2NyeXB0by9wcm5nLmMgYi9jcnlwdG8vcHJuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0ZTRmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcHJuZy5jCkBAIC0wLDAgKzEsNDEwIEBACisvKgorICogUFJORzogUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yCisgKiAgICAgICBCYXNlZCBvbiBOSVNUIFJlY29tbWVuZGVkIFBSTkcgRnJvbSBBTlNJIFg5LjMxIEFwcGVuZGl4IEEuMi40IHVzaW5nCisgKiAgICAgICBBRVMgMTI4IGNpcGhlciBpbiBSRkMzNjg2IGN0ciBtb2RlCisgKgorICogIChDKSBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1leC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlICJwcm5nLmgiCisKKyNkZWZpbmUgVEVTVF9QUk5HX09OX1NUQVJUIDAKKworI2RlZmluZSBERUZBVUxUX1BSTkdfS0VZICIwMTIzNDU2Nzg5YWJjZGVmMTAxMSIKKyNkZWZpbmUgREVGQVVMVF9QUk5HX0tTWiAyMAorI2RlZmluZSBERUZBVUxUX1BSTkdfSVYgImRlZmF1bHR2IgorI2RlZmluZSBERUZBVUxUX1BSTkdfSVZTWiA4CisjZGVmaW5lIERFRkFVTFRfQkxLX1NaIDE2CisjZGVmaW5lIERFRkFVTFRfVl9TRUVEICJ6YXlieGN3ZHZldWZ0Z3NoIgorCisvKgorICogRmxhZ3MgZm9yIHRoZSBwcm5nX2NvbnRleHQgZmxhZ3MgZmllbGQKKyAqLworCisjZGVmaW5lIFBSTkdfRklYRURfU0laRSAweDEKKyNkZWZpbmUgUFJOR19ORUVEX1JFU0VUIDB4MgorCisvKgorICogTm90ZTogRFQgaXMgb3VyIGNvdW50ZXIgdmFsdWUKKyAqIAkgSSBpcyBvdXIgaW50ZXJtZWRpYXRlIHZhbHVlCisgKgkgViBpcyBvdXIgc2VlZCB2ZWN0b3IKKyAqIFNlZSBodHRwOi8vY3NyYy5uaXN0Lmdvdi9ncm91cHMvU1RNL2NhdnAvZG9jdW1lbnRzL3JuZy85MzFybmdleHQucGRmCisgKiBmb3IgaW1wbGVtZW50YXRpb24gZGV0YWlscworICovCisKKworc3RydWN0IHBybmdfY29udGV4dCB7CisJY2hhciAqcHJuZ19rZXk7CisJY2hhciAqcHJuZ19pdjsKKwlzcGlubG9ja190IHBybmdfbG9jazsKKwl1bnNpZ25lZCBjaGFyIHJhbmRfZGF0YVtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBsYXN0X3JhbmRfZGF0YVtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBEVFtERUZBVUxUX0JMS19TWl07CisJdW5zaWduZWQgY2hhciBJW0RFRkFVTFRfQkxLX1NaXTsKKwl1bnNpZ25lZCBjaGFyIFZbREVGQVVMVF9CTEtfU1pdOworCXUzMiByYW5kX2RhdGFfdmFsaWQ7CisJc3RydWN0IGNyeXB0b19ibGtjaXBoZXIgKnRmbTsKKwl1MzIgZmxhZ3M7Cit9OworCitzdGF0aWMgaW50IGRiZzsKKworc3RhdGljIHZvaWQgaGV4ZHVtcChjaGFyICpub3RlLCB1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGludCBsZW4pCit7CisJaWYgKGRiZykgeworCQlwcmludGsoS0VSTl9DUklUICIlcyIsIG5vdGUpOworCQlwcmludF9oZXhfZHVtcChLRVJOX0NPTlQsICIiLCBEVU1QX1BSRUZJWF9PRkZTRVQsCisJCQkJMTYsIDEsCisJCQkJYnVmLCBsZW4sIGZhbHNlKTsKKwl9Cit9CisKKyNkZWZpbmUgZGJncHJpbnQoZm9ybWF0LCBhcmdzLi4uKSBkbyB7aWYoZGJnKSBwcmludGsoZm9ybWF0LCAjI2FyZ3MpO30gd2hpbGUoMCkKKworc3RhdGljIHZvaWQgeG9yX3ZlY3RvcnModW5zaWduZWQgY2hhciAqaW4xLCB1bnNpZ25lZCBjaGFyICppbjIsCisJCSAgICAgICAgdW5zaWduZWQgY2hhciAqb3V0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKwlpbnQgaTsKKworCWZvciAoaT0wO2k8c2l6ZTtpKyspCisJCW91dFtpXSA9IGluMVtpXSBeIGluMltpXTsKKworfQorLyoKKyAqIFJldHVybnMgREVGQVVMVF9CTEtfU1ogYnl0ZXMgb2YgcmFuZG9tIGRhdGEgcGVyIGNhbGwKKyAqIHJldHVybnMgMCBpZiBnZW5lcmF0aW9uIHN1Y2NlZGVkLCA8MCBpZiBzb21ldGhpbmcgd2VudCB3cm9uZworICovCitzdGF0aWMgaW50IF9nZXRfbW9yZV9wcm5nX2J5dGVzKHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3QgYmxrY2lwaGVyX2Rlc2MgZGVzYzsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dfaW4sIHNnX291dDsKKwlpbnQgcmV0OworCXVuc2lnbmVkIGNoYXIgdG1wW0RFRkFVTFRfQkxLX1NaXTsKKworCWRlc2MudGZtID0gY3R4LT50Zm07CisJZGVzYy5mbGFncyA9IDA7CisKKworCWRiZ3ByaW50KEtFUk5fQ1JJVCAiQ2FsbGluZyBfZ2V0X21vcmVfcHJuZ19ieXRlcyBmb3IgY29udGV4dCAlcFxuIixjdHgpOworCisJaGV4ZHVtcCgiSW5wdXQgRFQ6ICIsIGN0eC0+RFQsIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJJbnB1dCBJOiAiLCBjdHgtPkksIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJJbnB1dCBWOiAiLCBjdHgtPlYsIERFRkFVTFRfQkxLX1NaKTsKKworCS8qCisJICogVGhpcyBhbGdvcml0aG0gaXMgYSAzIHN0YWdlIHN0YXRlIG1hY2hpbmUKKwkgKi8KKwlmb3IgKGk9MDtpPDM7aSsrKSB7CisKKwkJZGVzYy50Zm0gPSBjdHgtPnRmbTsKKwkJZGVzYy5mbGFncyA9IDA7CisJCXN3aXRjaCAoaSkgeworCQkJY2FzZSAwOgorCQkJCS8qCisJCQkJICogU3RhcnQgYnkgZW5jcnlwdGluZyB0aGUgY291bnRlciB2YWx1ZQorCQkJCSAqIFRoaXMgZ2l2ZXMgdXMgYW4gaW50ZXJtZWRpYXRlIHZhbHVlIEkKKwkJCQkgKi8KKwkJCQltZW1jcHkodG1wLCBjdHgtPkRULCBERUZBVUxUX0JMS19TWik7CisJCQkJc2dfaW5pdF9vbmUoJnNnX291dCwgJmN0eC0+SVswXSwgREVGQVVMVF9CTEtfU1opOworCQkJCWhleGR1bXAoInRtcCBzdGFnZSAwOiAiLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMToKKworCQkJCS8qCisJCQkJICogTmV4dCB4b3IgSSB3aXRoIG91ciBzZWNyZXQgdmVjdG9yIFYKKwkJCQkgKiBlbmNyeXB0IHRoYXQgcmVzdWx0IHRvIG9idGFpbiBvdXIKKwkJCQkgKiBwc2V1ZG8gcmFuZG9tIGRhdGEgd2hpY2ggd2Ugb3V0cHV0CisJCQkJICovCisJCQkJeG9yX3ZlY3RvcnMoY3R4LT5JLCBjdHgtPlYsIHRtcCwgREVGQVVMVF9CTEtfU1opOworCQkJCXNnX2luaXRfb25lKCZzZ19vdXQsICZjdHgtPnJhbmRfZGF0YVswXSwgREVGQVVMVF9CTEtfU1opOworCQkJCWhleGR1bXAoInRtcCBzdGFnZSAxOiAiLCB0bXAsIERFRkFVTFRfQkxLX1NaKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMjoKKwkJCQkvKgorCQkJCSAqIEZpcnN0IGNoZWNrIHRoYXQgd2UgZGlkbid0IHByb2R1Y2UgdGhlIHNhbWUgcmFuZG9tIGRhdGEKKwkJCQkgKiB0aGF0IHdlIGRpZCBsYXN0IHRpbWUgYXJvdW5kIHRocm91Z2ggdGhpcworCQkJCSAqLworCQkJCWlmICghbWVtY21wKGN0eC0+cmFuZF9kYXRhLCBjdHgtPmxhc3RfcmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWikpIHsKKwkJCQkJcHJpbnRrKEtFUk5fRVJSICJjdHggJXAgRmFpbGVkIHJlcGV0aXRpb24gY2hlY2shXG4iLAorCQkJCQkJY3R4KTsKKwkJCQkJY3R4LT5mbGFncyB8PSBQUk5HX05FRURfUkVTRVQ7CisJCQkJCXJldHVybiAtMTsKKwkJCQl9CisJCQkJbWVtY3B5KGN0eC0+bGFzdF9yYW5kX2RhdGEsIGN0eC0+cmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWik7CisKKwkJCQkvKgorCQkJCSAqIExhc3RseSB4b3IgdGhlIHJhbmRvbSBkYXRhIHdpdGggSQorCQkJCSAqIGFuZCBlbmNyeXB0IHRoYXQgdG8gb2J0YWluIGEgbmV3IHNlY3JldCB2ZWN0b3IgVgorCQkJCSAqLworCQkJCXhvcl92ZWN0b3JzKGN0eC0+cmFuZF9kYXRhLCBjdHgtPkksIHRtcCwgREVGQVVMVF9CTEtfU1opOworCQkJCXNnX2luaXRfb25lKCZzZ19vdXQsICZjdHgtPlZbMF0sIERFRkFVTFRfQkxLX1NaKTsKKwkJCQloZXhkdW1wKCJ0bXAgc3RhZ2UgMjogIiwgdG1wLCBERUZBVUxUX0JMS19TWik7CisJCQkJYnJlYWs7CisJCX0KKworCQkvKiBJbml0aWFsaXplIG91ciBpbnB1dCBidWZmZXIgKi8KKwkJc2dfaW5pdF9vbmUoJnNnX2luLCAmdG1wWzBdLCBERUZBVUxUX0JMS19TWik7CisKKwkJLyogZG8gdGhlIGVuY3J5cHRpb24gKi8KKwkJcmV0ID0gY3J5cHRvX2Jsa2NpcGhlcl9lbmNyeXB0KCZkZXNjLCAmc2dfb3V0LCAmc2dfaW4sIERFRkFVTFRfQkxLX1NaKTsKKworCQkvKiBBbmQgY2hlY2sgdGhlIHJlc3VsdCAqLworCQlpZiAocmV0KSB7CisJCQlkYmdwcmludChLRVJOX0NSSVQgIkVuY3J5cHRpb24gb2YgbmV3IGJsb2NrIGZhaWxlZCBmb3IgY29udGV4dCAlcFxuIixjdHgpOworCQkJY3R4LT5yYW5kX2RhdGFfdmFsaWQgPSBERUZBVUxUX0JMS19TWjsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJfQorCisJLyoKKwkgKiBOb3cgdXBkYXRlIG91ciBEVCB2YWx1ZQorCSAqLworCWZvciAoaT1ERUZBVUxUX0JMS19TWi0xO2k+MDtpLS0pIHsKKwkJY3R4LT5EVFtpXSA9IGN0eC0+RFRbaS0xXTsKKwl9CisJY3R4LT5EVFswXSArPSAxOworCisJZGJncHJpbnQoIlJldHVybmluZyBuZXcgYmxvY2sgZm9yIGNvbnRleHQgJXBcbiIsY3R4KTsKKwljdHgtPnJhbmRfZGF0YV92YWxpZCA9IDA7CisKKwloZXhkdW1wKCJPdXRwdXQgRFQ6ICIsIGN0eC0+RFQsIERFRkFVTFRfQkxLX1NaKTsKKwloZXhkdW1wKCJPdXRwdXQgSTogIiwgY3R4LT5JLCBERUZBVUxUX0JMS19TWik7CisJaGV4ZHVtcCgiT3V0cHV0IFY6ICIsIGN0eC0+ViwgREVGQVVMVF9CTEtfU1opOworCWhleGR1bXAoIk5ldyBSYW5kb20gRGF0YTogIiwgY3R4LT5yYW5kX2RhdGEsIERFRkFVTFRfQkxLX1NaKTsKKworCXJldHVybiAwOworfQorCisvKiBPdXIgZXhwb3J0ZWQgZnVuY3Rpb25zICovCitpbnQgZ2V0X3BybmdfYnl0ZXMoY2hhciAqYnVmLCBpbnQgbmJ5dGVzLCBzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHgpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBjaGFyICpwdHIgPSBidWY7CisJdW5zaWduZWQgaW50IGJ5dGVfY291bnQgPSAodW5zaWduZWQgaW50KW5ieXRlczsKKwlpbnQgZXJyOworCisKKwlpZiAobmJ5dGVzIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY3R4LT5wcm5nX2xvY2ssIGZsYWdzKTsKKworCWVyciA9IC1FRkFVTFQ7CisJaWYgKGN0eC0+ZmxhZ3MgJiBQUk5HX05FRURfUkVTRVQpCisJCWdvdG8gZG9uZTsKKworCS8qCisJICogSWYgdGhlIEZJWEVEX1NJWkUgZmxhZyBpcyBvbiwgb25seSByZXR1cm4gd2hvbGUgYmxvY2tzIG9mCisJICogcHNldWRvIHJhbmRvbSBkYXRhCisJICovCisJZXJyID0gLUVJTlZBTDsKKwlpZiAoY3R4LT5mbGFncyAmIFBSTkdfRklYRURfU0laRSkgeworCQlpZiAobmJ5dGVzIDwgREVGQVVMVF9CTEtfU1opCisJCQlnb3RvIGRvbmU7CisJCWJ5dGVfY291bnQgPSBERUZBVUxUX0JMS19TWjsKKwl9CisKKwllcnIgPSBieXRlX2NvdW50OworCisJZGJncHJpbnQoS0VSTl9DUklUICJnZXR0aW5nICVkIHJhbmRvbSBieXRlcyBmb3IgY29udGV4dCAlcFxuIixieXRlX2NvdW50LCBjdHgpOworCisKK3JlbWFpbmRlcjoKKwlpZiAoY3R4LT5yYW5kX2RhdGFfdmFsaWQgPT0gREVGQVVMVF9CTEtfU1opIHsKKwkJaWYgKF9nZXRfbW9yZV9wcm5nX2J5dGVzKGN0eCkgPCAwKSB7CisJCQltZW1zZXQoYnVmLCAwLCBuYnl0ZXMpOworCQkJZXJyID0gLUVGQVVMVDsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCX0KKworCS8qCisJICogQ29weSB1cCB0byB0aGUgbmV4dCB3aG9sZSBibG9jayBzaXplCisJICovCisJaWYgKGJ5dGVfY291bnQgPCBERUZBVUxUX0JMS19TWikgeworCQlmb3IgKDtjdHgtPnJhbmRfZGF0YV92YWxpZCA8IERFRkFVTFRfQkxLX1NaOyBjdHgtPnJhbmRfZGF0YV92YWxpZCsrKSB7CisJCQkqcHRyID0gY3R4LT5yYW5kX2RhdGFbY3R4LT5yYW5kX2RhdGFfdmFsaWRdOworCQkJcHRyKys7CisJCQlieXRlX2NvdW50LS07CisJCQlpZiAoYnl0ZV9jb3VudCA9PSAwKQorCQkJCWdvdG8gZG9uZTsKKwkJfQorCX0KKworCS8qCisJICogTm93IGNvcHkgd2hvbGUgYmxvY2tzCisJICovCisJZm9yKDtieXRlX2NvdW50ID49IERFRkFVTFRfQkxLX1NaOyBieXRlX2NvdW50IC09IERFRkFVTFRfQkxLX1NaKSB7CisJCWlmIChfZ2V0X21vcmVfcHJuZ19ieXRlcyhjdHgpIDwgMCkgeworCQkJbWVtc2V0KGJ1ZiwgMCwgbmJ5dGVzKTsKKwkJCWVyciA9IC0xOworCQkJZ290byBkb25lOworCQl9CisJCW1lbWNweShwdHIsIGN0eC0+cmFuZF9kYXRhLCBERUZBVUxUX0JMS19TWik7CisJCWN0eC0+cmFuZF9kYXRhX3ZhbGlkICs9IERFRkFVTFRfQkxLX1NaOworCQlwdHIgKz0gREVGQVVMVF9CTEtfU1o7CisJfQorCisJLyoKKwkgKiBOb3cgY29weSBhbnkgZXh0cmEgcGFydGlhbCBkYXRhCisJICovCisJaWYgKGJ5dGVfY291bnQpCisJCWdvdG8gcmVtYWluZGVyOworCitkb25lOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmN0eC0+cHJuZ19sb2NrLCBmbGFncyk7CisJZGJncHJpbnQoS0VSTl9DUklUICJyZXR1cm5pbmcgJWQgZnJvbSBnZXRfcHJuZ19ieXRlcyBpbiBjb250ZXh0ICVwXG4iLGVyciwgY3R4KTsKKwlyZXR1cm4gZXJyOworfQorRVhQT1JUX1NZTUJPTF9HUEwoZ2V0X3BybmdfYnl0ZXMpOworCitzdHJ1Y3QgcHJuZ19jb250ZXh0ICphbGxvY19wcm5nX2NvbnRleHQodm9pZCkKK3sKKwlzdHJ1Y3QgcHJuZ19jb250ZXh0ICpjdHg9a3phbGxvYyhzaXplb2Yoc3RydWN0IHBybmdfY29udGV4dCksIEdGUF9LRVJORUwpOworCisJc3Bpbl9sb2NrX2luaXQoJmN0eC0+cHJuZ19sb2NrKTsKKworCWlmIChyZXNldF9wcm5nX2NvbnRleHQoY3R4LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMKSkgeworCQlrZnJlZShjdHgpOworCQljdHggPSBOVUxMOworCX0KKworCWRiZ3ByaW50KEtFUk5fQ1JJVCAicmV0dXJuaW5nIGNvbnRleHQgJXBcbiIsY3R4KTsKKwlyZXR1cm4gY3R4OworfQorCitFWFBPUlRfU1lNQk9MX0dQTChhbGxvY19wcm5nX2NvbnRleHQpOworCit2b2lkIGZyZWVfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCkKK3sKKwljcnlwdG9fZnJlZV9ibGtjaXBoZXIoY3R4LT50Zm0pOworCWtmcmVlKGN0eCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChmcmVlX3BybmdfY29udGV4dCk7CisKK2ludCByZXNldF9wcm5nX2NvbnRleHQoc3RydWN0IHBybmdfY29udGV4dCAqY3R4LAorCQkgICAgICAgdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBjaGFyICppdiwKKwkJICAgICAgIHVuc2lnbmVkIGNoYXIgKlYsIHVuc2lnbmVkIGNoYXIgKkRUKQoreworCWludCByZXQ7CisJaW50IGl2X2xlbjsKKwlpbnQgcmMgPSAtRUZBVUxUOworCisJc3Bpbl9sb2NrKCZjdHgtPnBybmdfbG9jayk7CisJY3R4LT5mbGFncyB8PSBQUk5HX05FRURfUkVTRVQ7CisKKwlpZiAoa2V5KQorCQltZW1jcHkoY3R4LT5wcm5nX2tleSxrZXksc3RybGVuKGN0eC0+cHJuZ19rZXkpKTsKKwllbHNlCisJCWN0eC0+cHJuZ19rZXkgPSBERUZBVUxUX1BSTkdfS0VZOworCisJaWYgKGl2KQorCQltZW1jcHkoY3R4LT5wcm5nX2l2LGl2LCBzdHJsZW4oY3R4LT5wcm5nX2l2KSk7CisJZWxzZQorCQljdHgtPnBybmdfaXYgPSBERUZBVUxUX1BSTkdfSVY7CisKKwlpZiAoVikKKwkJbWVtY3B5KGN0eC0+VixWLERFRkFVTFRfQkxLX1NaKTsKKwllbHNlCisJCW1lbWNweShjdHgtPlYsREVGQVVMVF9WX1NFRUQsREVGQVVMVF9CTEtfU1opOworCisJaWYgKERUKQorCQltZW1jcHkoY3R4LT5EVCwgRFQsIERFRkFVTFRfQkxLX1NaKTsKKwllbHNlCisJCW1lbXNldChjdHgtPkRULCAwLCBERUZBVUxUX0JMS19TWik7CisKKwltZW1zZXQoY3R4LT5yYW5kX2RhdGEsMCxERUZBVUxUX0JMS19TWik7CisJbWVtc2V0KGN0eC0+bGFzdF9yYW5kX2RhdGEsMCxERUZBVUxUX0JMS19TWik7CisKKwlpZiAoY3R4LT50Zm0pCisJCWNyeXB0b19mcmVlX2Jsa2NpcGhlcihjdHgtPnRmbSk7CisKKwljdHgtPnRmbSA9IGNyeXB0b19hbGxvY19ibGtjaXBoZXIoInJmYzM2ODYoY3RyKGFlcykpIiwwLDApOworCWlmICghY3R4LT50Zm0pIHsKKwkJZGJncHJpbnQoS0VSTl9DUklUICJGYWlsZWQgdG8gYWxsb2MgY3J5cHRvIHRmbSBmb3IgY29udGV4dCAlcFxuIixjdHgtPnRmbSk7CisJCWdvdG8gb3V0OworCX0KKworCWN0eC0+cmFuZF9kYXRhX3ZhbGlkID0gREVGQVVMVF9CTEtfU1o7CisKKwlyZXQgPSBjcnlwdG9fYmxrY2lwaGVyX3NldGtleShjdHgtPnRmbSwgY3R4LT5wcm5nX2tleSwgc3RybGVuKGN0eC0+cHJuZ19rZXkpKTsKKwlpZiAocmV0KSB7CisJCWRiZ3ByaW50KEtFUk5fQ1JJVCAiUFJORzogc2V0a2V5KCkgZmFpbGVkIGZsYWdzPSV4XG4iLAorCQkJY3J5cHRvX2Jsa2NpcGhlcl9nZXRfZmxhZ3MoY3R4LT50Zm0pKTsKKwkJY3J5cHRvX2ZyZWVfYmxrY2lwaGVyKGN0eC0+dGZtKTsKKwkJZ290byBvdXQ7CisJfQorCisJaXZfbGVuID0gY3J5cHRvX2Jsa2NpcGhlcl9pdnNpemUoY3R4LT50Zm0pOworCWlmIChpdl9sZW4pIHsKKwkJY3J5cHRvX2Jsa2NpcGhlcl9zZXRfaXYoY3R4LT50Zm0sIGN0eC0+cHJuZ19pdiwgaXZfbGVuKTsKKwl9CisJcmMgPSAwOworCWN0eC0+ZmxhZ3MgJj0gflBSTkdfTkVFRF9SRVNFVDsKK291dDoKKwlzcGluX3VubG9jaygmY3R4LT5wcm5nX2xvY2spOworCisJcmV0dXJuIHJjOworCit9CitFWFBPUlRfU1lNQk9MX0dQTChyZXNldF9wcm5nX2NvbnRleHQpOworCisvKiBNb2R1bGUgaW5pdGFsaXphdGlvbiAqLworc3RhdGljIGludCBfX2luaXQgcHJuZ19tb2RfaW5pdCh2b2lkKQoreworCisjaWZkZWYgVEVTVF9QUk5HX09OX1NUQVJUCisJaW50IGk7CisJdW5zaWduZWQgY2hhciB0bXBidWZbREVGQVVMVF9CTEtfU1pdOworCisJc3RydWN0IHBybmdfY29udGV4dCAqY3R4ID0gYWxsb2NfcHJuZ19jb250ZXh0KCk7CisJaWYgKGN0eCA9PSBOVUxMKQorCQlyZXR1cm4gLUVGQVVMVDsKKwlmb3IgKGk9MDtpPDE2O2krKykgeworCQlpZiAoZ2V0X3BybmdfYnl0ZXModG1wYnVmLCBERUZBVUxUX0JMS19TWiwgY3R4KSA8IDApIHsKKwkJCWZyZWVfcHJuZ19jb250ZXh0KGN0eCk7CisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJfQorCX0KKwlmcmVlX3BybmdfY29udGV4dChjdHgpOworI2VuZGlmCisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHBybmdfbW9kX2Zpbmkodm9pZCkKK3sKKwlyZXR1cm47Cit9CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiU29mdHdhcmUgUHNldWRvIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yIik7CitNT0RVTEVfQVVUSE9SKCJOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPiIpOworbW9kdWxlX3BhcmFtKGRiZywgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0MoZGJnLCAiQm9vbGVhbiB0byBlbmFibGUgZGVidWdnaW5nICgwLzEgPT0gb2ZmL29uKSIpOworbW9kdWxlX2luaXQocHJuZ19tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChwcm5nX21vZF9maW5pKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9wcm5nLmggYi9jcnlwdG8vcHJuZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYzliZTUKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcHJuZy5oCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBQUk5HOiBQc2V1ZG8gUmFuZG9tIE51bWJlciBHZW5lcmF0b3IKKyAqCisgKiAgKEMpIE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1eGRyaXZlci5jb20+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqCisgKi8KKworI2lmbmRlZiBfUFJOR19IXworI2RlZmluZSBfUFJOR19IXworc3RydWN0IHBybmdfY29udGV4dDsKKworaW50IGdldF9wcm5nX2J5dGVzKGNoYXIgKmJ1ZiwgaW50IG5ieXRlcywgc3RydWN0IHBybmdfY29udGV4dCAqY3R4KTsKK3N0cnVjdCBwcm5nX2NvbnRleHQgKmFsbG9jX3BybmdfY29udGV4dCh2b2lkKTsKK2ludCByZXNldF9wcm5nX2NvbnRleHQoc3RydWN0IHBybmdfY29udGV4dCAqY3R4LAorCQkJdW5zaWduZWQgY2hhciAqa2V5LCB1bnNpZ25lZCBjaGFyICppdiwKKwkJCXVuc2lnbmVkIGNoYXIgKlYsCisJCQl1bnNpZ25lZCBjaGFyICpEVCk7Cit2b2lkIGZyZWVfcHJuZ19jb250ZXh0KHN0cnVjdCBwcm5nX2NvbnRleHQgKmN0eCk7CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9jcnlwdG8vcmlwZW1kLmggYi9jcnlwdG8vcmlwZW1kLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3YTJkNAotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9yaXBlbWQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29tbW9uIHZhbHVlcyBmb3IgUklQRU1EIGFsZ29yaXRobXMKKyAqLworCisjaWZuZGVmIF9DUllQVE9fUk1EX0gKKyNkZWZpbmUgX0NSWVBUT19STURfSAorCisjZGVmaW5lIFJNRDEyOF9ESUdFU1RfU0laRSAgICAgIDE2CisjZGVmaW5lIFJNRDEyOF9CTE9DS19TSVpFICAgICAgIDY0CisKKyNkZWZpbmUgUk1EMTYwX0RJR0VTVF9TSVpFICAgICAgMjAKKyNkZWZpbmUgUk1EMTYwX0JMT0NLX1NJWkUgICAgICAgNjQKKworI2RlZmluZSBSTUQyNTZfRElHRVNUX1NJWkUgICAgICAzMgorI2RlZmluZSBSTUQyNTZfQkxPQ0tfU0laRSAgICAgICA2NAorCisjZGVmaW5lIFJNRDMyMF9ESUdFU1RfU0laRSAgICAgIDQwCisjZGVmaW5lIFJNRDMyMF9CTE9DS19TSVpFICAgICAgIDY0CisKKy8qIGluaXRpYWwgdmFsdWVzICAqLworI2RlZmluZSBSTURfSDAgIDB4Njc0NTIzMDFVTAorI2RlZmluZSBSTURfSDEgIDB4ZWZjZGFiODlVTAorI2RlZmluZSBSTURfSDIgIDB4OThiYWRjZmVVTAorI2RlZmluZSBSTURfSDMgIDB4MTAzMjU0NzZVTAorI2RlZmluZSBSTURfSDQgIDB4YzNkMmUxZjBVTAorI2RlZmluZSBSTURfSDUgIDB4NzY1NDMyMTBVTAorI2RlZmluZSBSTURfSDYgIDB4ZmVkY2JhOThVTAorI2RlZmluZSBSTURfSDcgIDB4ODlhYmNkZWZVTAorI2RlZmluZSBSTURfSDggIDB4MDEyMzQ1NjdVTAorI2RlZmluZSBSTURfSDkgIDB4M2MyZDFlMGZVTAorCisvKiBjb25zdGFudHMgKi8KKyNkZWZpbmUgUk1EX0sxICAweDAwMDAwMDAwVUwKKyNkZWZpbmUgUk1EX0syICAweDVhODI3OTk5VUwKKyNkZWZpbmUgUk1EX0szICAweDZlZDllYmExVUwKKyNkZWZpbmUgUk1EX0s0ICAweDhmMWJiY2RjVUwKKyNkZWZpbmUgUk1EX0s1ICAweGE5NTNmZDRlVUwKKyNkZWZpbmUgUk1EX0s2ICAweDUwYTI4YmU2VUwKKyNkZWZpbmUgUk1EX0s3ICAweDVjNGRkMTI0VUwKKyNkZWZpbmUgUk1EX0s4ICAweDZkNzAzZWYzVUwKKyNkZWZpbmUgUk1EX0s5ICAweDdhNmQ3NmU5VUwKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMTI4LmMgYi9jcnlwdG8vcm1kMTI4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRlNmZhMgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ybWQxMjguYwpAQCAtMCwwICsxLDMyNSBAQAorLyoKKyAqIENyeXB0b2dyYXBoaWMgQVBJLgorICoKKyAqIFJJUEVNRC0xMjggLSBSQUNFIEludGVncml0eSBQcmltaXRpdmVzIEV2YWx1YXRpb24gTWVzc2FnZSBEaWdlc3QuCisgKgorICogQmFzZWQgb24gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBieSBBbnRvb24gQm9zc2VsYWVycywgRVNBVC1DT1NJQworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxydWVlZ3NlZ2dlciAoYXQpIHN3aXNzLWl0LmNoPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorCisjaW5jbHVkZSAicmlwZW1kLmgiCisKK3N0cnVjdCBybWQxMjhfY3R4IHsKKwl1NjQgYnl0ZV9jb3VudDsKKwl1MzIgc3RhdGVbNF07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgS0sxIFJNRF9LNgorI2RlZmluZSBLSzIgUk1EX0s3CisjZGVmaW5lIEtLMyBSTURfSzgKKyNkZWZpbmUgS0s0IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7CVwKKwkoYSkgPSByb2wzMigoYSksIChzKSk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMTI4X3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgYWFhLCBiYmIsIGNjYywgZGRkOworCisJLyogSW5pdGlhbGl6ZSBsZWZ0IGxhbmUgKi8KKwlhYSA9IHN0YXRlWzBdOworCWJiID0gc3RhdGVbMV07CisJY2MgPSBzdGF0ZVsyXTsKKwlkZCA9IHN0YXRlWzNdOworCisJLyogSW5pdGlhbGl6ZSByaWdodCBsYW5lICovCisJYWFhID0gc3RhdGVbMF07CisJYmJiID0gc3RhdGVbMV07CisJY2NjID0gc3RhdGVbMl07CisJZGRkID0gc3RhdGVbM107CisKKwkvKiByb3VuZCAxOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblswXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsyXSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblszXSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls1XSwgICA4KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpbls2XSwgICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpbls4XSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls5XSwgIDEzKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxMV0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxMl0sICA2KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjEsIEsxLCBpblsxNF0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjEsIEsxLCBpblsxNV0sICA4KTsKKworCS8qIHJvdW5kIDI6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMzogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bM10sICAxMSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bN10sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bMTNdLCAgNSk7CisJUk9VTkQoZGQsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoY2MsIGRkLCBhYSwgYmIsIEYzLCBLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgYWEsIEYzLCBLMywgaW5bMTJdLCAgNSk7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxXSwgIDExKTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMV0sIDE0KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxMF0sIDE1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls4XSwgIDE1KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpblsxMl0sICA5KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxM10sICA5KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblszXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsxNV0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxNF0sICA4KTsKKwlST1VORChkZCwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChjYywgZGQsIGFhLCBiYiwgRjQsIEs0LCBpbls2XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBhYSwgRjQsIEs0LCBpblsyXSwgIDEyKTsKKworCS8qIHJvdW5kIDE6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpbls3XSwgICA5KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsyXSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bNF0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpblsxM10sICA3KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bMTVdLCAgOCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpbls4XSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bMTBdLCAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblszXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMl0sICAxMSk7CisKKwkvKiByb3VuZCAzOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpblsxNV0sICA5KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpblszXSwgIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bMTRdLCAgNik7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpbls2XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpbls4XSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzEyXSwgIDUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bMl0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpblsxMF0sIDEzKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpblsxM10sICA1KTsKKworCS8qIHJvdW5kIDQ6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpbls0XSwgICA4KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpblsxMV0sIDE0KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMF0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpbls1XSwgICA2KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMl0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblsxM10sICA5KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bN10sICAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsxMF0sIDE1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJZGRkICs9IGNjICsgc3RhdGVbMV07CQkvKiBmaW5hbCByZXN1bHQgZm9yIHN0YXRlWzBdICovCisJc3RhdGVbMV0gPSBzdGF0ZVsyXSArIGRkICsgYWFhOworCXN0YXRlWzJdID0gc3RhdGVbM10gKyBhYSArIGJiYjsKKwlzdGF0ZVszXSA9IHN0YXRlWzBdICsgYmIgKyBjY2M7CisJc3RhdGVbMF0gPSBkZGQ7CisKKwlyZXR1cm47Cit9CisKK3N0YXRpYyB2b2lkIHJtZDEyOF9pbml0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IHJtZDEyOF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJcmN0eC0+Ynl0ZV9jb3VudCA9IDA7CisKKwlyY3R4LT5zdGF0ZVswXSA9IFJNRF9IMDsKKwlyY3R4LT5zdGF0ZVsxXSA9IFJNRF9IMTsKKwlyY3R4LT5zdGF0ZVsyXSA9IFJNRF9IMjsKKwlyY3R4LT5zdGF0ZVszXSA9IFJNRF9IMzsKKworCW1lbXNldChyY3R4LT5idWZmZXIsIDAsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKK30KKworc3RhdGljIHZvaWQgcm1kMTI4X3VwZGF0ZShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCBjb25zdCB1OCAqZGF0YSwKKwkJCSAgdW5zaWduZWQgaW50IGxlbikKK3sKKwlzdHJ1Y3Qgcm1kMTI4X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJY29uc3QgdTMyIGF2YWlsID0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSAocmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2YpOworCisJcmN0eC0+Ynl0ZV9jb3VudCArPSBsZW47CisKKwkvKiBFbm91Z2ggc3BhY2UgaW4gYnVmZmVyPyBJZiBzbyBjb3B5IGFuZCB3ZSdyZSBkb25lICovCisJaWYgKGF2YWlsID4gbGVuKSB7CisJCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkJICAgICAgIGRhdGEsIGxlbik7CisJCXJldHVybjsKKwl9CisKKwltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJICAgICAgIGRhdGEsIGF2YWlsKTsKKworCXJtZDEyOF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJZGF0YSArPSBhdmFpbDsKKwlsZW4gLT0gYXZhaWw7CisKKwl3aGlsZSAobGVuID49IHNpemVvZihyY3R4LT5idWZmZXIpKSB7CisJCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIHNpemVvZihyY3R4LT5idWZmZXIpKTsKKwkJcm1kMTI4X3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwkJZGF0YSArPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwkJbGVuIC09IHNpemVvZihyY3R4LT5idWZmZXIpOworCX0KKworCW1lbWNweShyY3R4LT5idWZmZXIsIGRhdGEsIGxlbik7Cit9CisKKy8qIEFkZCBwYWRkaW5nIGFuZCByZXR1cm4gdGhlIG1lc3NhZ2UgZGlnZXN0LiAqLworc3RhdGljIHZvaWQgcm1kMTI4X2ZpbmFsKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIHU4ICpvdXQpCit7CisJc3RydWN0IHJtZDEyOF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXUzMiBpLCBpbmRleCwgcGFkbGVuOworCV9fbGU2NCBiaXRzOworCV9fbGUzMiAqZHN0ID0gKF9fbGUzMiAqKW91dDsKKwlzdGF0aWMgY29uc3QgdTggcGFkZGluZ1s2NF0gPSB7IDB4ODAsIH07CisKKwliaXRzID0gY3B1X3RvX2xlNjQocmN0eC0+Ynl0ZV9jb3VudCA8PCAzKTsKKworCS8qIFBhZCBvdXQgdG8gNTYgbW9kIDY0ICovCisJaW5kZXggPSByY3R4LT5ieXRlX2NvdW50ICYgMHgzZjsKKwlwYWRsZW4gPSAoaW5kZXggPCA1NikgPyAoNTYgLSBpbmRleCkgOiAoKDY0KzU2KSAtIGluZGV4KTsKKwlybWQxMjhfdXBkYXRlKHRmbSwgcGFkZGluZywgcGFkbGVuKTsKKworCS8qIEFwcGVuZCBsZW5ndGggKi8KKwlybWQxMjhfdXBkYXRlKHRmbSwgKGNvbnN0IHU4ICopJmJpdHMsIHNpemVvZihiaXRzKSk7CisKKwkvKiBTdG9yZSBzdGF0ZSBpbiBkaWdlc3QgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQorCQlkc3RbaV0gPSBjcHVfdG9fbGUzMnAoJnJjdHgtPnN0YXRlW2ldKTsKKworCS8qIFdpcGUgY29udGV4dCAqLworCW1lbXNldChyY3R4LCAwLCBzaXplb2YoKnJjdHgpKTsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJID0JInJtZDEyOCIsCisJLmNyYV9kcml2ZXJfbmFtZSA9CSJybWQxMjgiLAorCS5jcmFfZmxhZ3MJID0JQ1JZUFRPX0FMR19UWVBFX0RJR0VTVCwKKwkuY3JhX2Jsb2Nrc2l6ZQkgPQlSTUQxMjhfQkxPQ0tfU0laRSwKKwkuY3JhX2N0eHNpemUJID0Jc2l6ZW9mKHN0cnVjdCBybWQxMjhfY3R4KSwKKwkuY3JhX21vZHVsZQkgPQlUSElTX01PRFVMRSwKKwkuY3JhX2xpc3QJID0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKKwkuY3JhX3UJCSA9CXsgLmRpZ2VzdCA9IHsKKwkuZGlhX2RpZ2VzdHNpemUJID0JUk1EMTI4X0RJR0VTVF9TSVpFLAorCS5kaWFfaW5pdAkgPQlybWQxMjhfaW5pdCwKKwkuZGlhX3VwZGF0ZQkgPQlybWQxMjhfdXBkYXRlLAorCS5kaWFfZmluYWwJID0Jcm1kMTI4X2ZpbmFsIH0gfQorfTsKKworc3RhdGljIGludCBfX2luaXQgcm1kMTI4X21vZF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBybWQxMjhfbW9kX2Zpbmkodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK21vZHVsZV9pbml0KHJtZDEyOF9tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChybWQxMjhfbW9kX2ZpbmkpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlJJUEVNRC0xMjggTWVzc2FnZSBEaWdlc3QiKTsKKworTU9EVUxFX0FMSUFTKCJybWQxMjgiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ybWQxNjAuYyBiL2NyeXB0by9ybWQxNjAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDAxZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3JtZDE2MC5jCkBAIC0wLDAgKzEsMzY5IEBACisvKgorICogQ3J5cHRvZ3JhcGhpYyBBUEkuCisgKgorICogUklQRU1ELTE2MCAtIFJBQ0UgSW50ZWdyaXR5IFByaW1pdGl2ZXMgRXZhbHVhdGlvbiBNZXNzYWdlIERpZ2VzdC4KKyAqCisgKiBCYXNlZCBvbiB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGJ5IEFudG9vbiBCb3NzZWxhZXJzLCBFU0FULUNPU0lDCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEFkcmlhbi1LZW4gUnVlZWdzZWdnZXIgPHJ1ZWVnc2VnZ2VyIChhdCkgc3dpc3MtaXQuY2g+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CisKKyNpbmNsdWRlICJyaXBlbWQuaCIKKworc3RydWN0IHJtZDE2MF9jdHggeworCXU2NCBieXRlX2NvdW50OworCXUzMiBzdGF0ZVs1XTsKKwlfX2xlMzIgYnVmZmVyWzE2XTsKK307CisKKyNkZWZpbmUgSzEgIFJNRF9LMQorI2RlZmluZSBLMiAgUk1EX0syCisjZGVmaW5lIEszICBSTURfSzMKKyNkZWZpbmUgSzQgIFJNRF9LNAorI2RlZmluZSBLNSAgUk1EX0s1CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzkKKyNkZWZpbmUgS0s1IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKyNkZWZpbmUgRjUoeCwgeSwgeikgKHggXiAoeSB8IH56KSkKKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBlLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSkgKyAoZSk7IFwKKwkoYykgPSByb2wzMigoYyksIDEwKTsgXAorfQorCitzdGF0aWMgdm9pZCBybWQxNjBfdHJhbnNmb3JtKHUzMiAqc3RhdGUsIGNvbnN0IF9fbGUzMiAqaW4pCit7CisJdTMyIGFhLCBiYiwgY2MsIGRkLCBlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBlZWU7CisKKwkvKiBJbml0aWFsaXplIGxlZnQgbGFuZSAqLworCWFhID0gc3RhdGVbMF07CisJYmIgPSBzdGF0ZVsxXTsKKwljYyA9IHN0YXRlWzJdOworCWRkID0gc3RhdGVbM107CisJZWUgPSBzdGF0ZVs0XTsKKworCS8qIEluaXRpYWxpemUgcmlnaHQgbGFuZSAqLworCWFhYSA9IHN0YXRlWzBdOworCWJiYiA9IHN0YXRlWzFdOworCWNjYyA9IHN0YXRlWzJdOworCWRkZCA9IHN0YXRlWzNdOworCWVlZSA9IHN0YXRlWzRdOworCisJLyogcm91bmQgMTogbGVmdCBsYW5lICovCisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxXSwgIDE0KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpbls0XSwgICA1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpbls3XSwgICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpblsxMF0sIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzEyXSwgIDYpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpblsxM10sICA3KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bMTRdLCAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzE1XSwgIDgpOworCisJLyogcm91bmQgMjogbGVmdCBsYW5lIiAqLworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls3XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpblsxNV0sICA3KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bM10sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblswXSwgIDEyKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblsyXSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMTRdLCAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls4XSwgIDEyKTsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSIgKi8KKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bM10sICAxMSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxNF0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bNF0sICAgNyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxNV0sICA5KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpblsyXSwgIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpbls2XSwgICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMTNdLCAgNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls1XSwgICA3KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMTJdLCAgNSk7CisKKwkvKiByb3VuZCA0OiBsZWZ0IGxhbmUiICovCisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpbls5XSwgIDEyKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpblswXSwgIDE0KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpbls0XSwgICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpbls3XSwgICA1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzE0XSwgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpbls1XSwgICA2KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bNl0sICAgNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzJdLCAgMTIpOworCisJLyogcm91bmQgNTogbGVmdCBsYW5lIiAqLworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpbls0XSwgICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bMF0sICAxNSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpbls5XSwgIDExKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bN10sICAgNik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzEyXSwgIDgpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpblsyXSwgIDEzKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bMTBdLCAxMik7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpblsxXSwgIDEyKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzhdLCAgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpblsxMV0sIDExKTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bNl0sICAgOCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzE1XSwgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblsxM10sICA2KTsKKworCS8qIHJvdW5kIDE6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpbls3XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsyXSwgIDE1KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblsxM10sICA3KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzE1XSwgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpbls4XSwgIDExKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpblszXSwgIDEyKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMTJdLCAgNik7CisKKwkvKiByb3VuZCAyOiByaWdodCBsYW5lICovCisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bM10sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bMTNdLCAgOCk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bMTRdLCAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bMTJdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMV0sICAxMyk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzJdLCAgMTEpOworCisJLyogcm91bmQgMzogcmlnaHQgbGFuZSAqLworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxNV0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bNV0sICAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblszXSwgIDExKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bN10sICAgOCk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpbls2XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls4XSwgIDEzKTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTJdLCAgNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpblsxMF0sIDEzKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxM10sICA1KTsKKworCS8qIHJvdW5kIDQ6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpbls0XSwgICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsxMV0sIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpbls1XSwgICA2KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzJdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpblsxM10sICA5KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblsxMF0sIDE1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMTRdLCAgOCk7CisKKwkvKiByb3VuZCA1OiByaWdodCBsYW5lICovCisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzEyXSwgIDgpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpblsxNV0sICA1KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bMTBdLCAxMik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzRdLCAgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpblsxXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bNV0sICAgNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzhdLCAgMTQpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpbls3XSwgICA2KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bNl0sICAgOCk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzJdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxM10sICA2KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bMTRdLCAgNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzBdLCAgMTUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpblszXSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bOV0sICAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzExXSwgMTEpOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJZGRkICs9IGNjICsgc3RhdGVbMV07CQkvKiBmaW5hbCByZXN1bHQgZm9yIHN0YXRlWzBdICovCisJc3RhdGVbMV0gPSBzdGF0ZVsyXSArIGRkICsgZWVlOworCXN0YXRlWzJdID0gc3RhdGVbM10gKyBlZSArIGFhYTsKKwlzdGF0ZVszXSA9IHN0YXRlWzRdICsgYWEgKyBiYmI7CisJc3RhdGVbNF0gPSBzdGF0ZVswXSArIGJiICsgY2NjOworCXN0YXRlWzBdID0gZGRkOworCisJcmV0dXJuOworfQorCitzdGF0aWMgdm9pZCBybWQxNjBfaW5pdChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBybWQxNjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKworCXJjdHgtPmJ5dGVfY291bnQgPSAwOworCisJcmN0eC0+c3RhdGVbMF0gPSBSTURfSDA7CisJcmN0eC0+c3RhdGVbMV0gPSBSTURfSDE7CisJcmN0eC0+c3RhdGVbMl0gPSBSTURfSDI7CisJcmN0eC0+c3RhdGVbM10gPSBSTURfSDM7CisJcmN0eC0+c3RhdGVbNF0gPSBSTURfSDQ7CisKKwltZW1zZXQocmN0eC0+YnVmZmVyLCAwLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJtZDE2MF91cGRhdGUoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgY29uc3QgdTggKmRhdGEsCisJCQkgIHVuc2lnbmVkIGludCBsZW4pCit7CisJc3RydWN0IHJtZDE2MF9jdHggKnJjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWNvbnN0IHUzMiBhdmFpbCA9IHNpemVvZihyY3R4LT5idWZmZXIpIC0gKHJjdHgtPmJ5dGVfY291bnQgJiAweDNmKTsKKworCXJjdHgtPmJ5dGVfY291bnQgKz0gbGVuOworCisJLyogRW5vdWdoIHNwYWNlIGluIGJ1ZmZlcj8gSWYgc28gY29weSBhbmQgd2UncmUgZG9uZSAqLworCWlmIChhdmFpbCA+IGxlbikgeworCQltZW1jcHkoKGNoYXIgKilyY3R4LT5idWZmZXIgKyAoc2l6ZW9mKHJjdHgtPmJ1ZmZlcikgLSBhdmFpbCksCisJCSAgICAgICBkYXRhLCBsZW4pOworCQlyZXR1cm47CisJfQorCisJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCSAgICAgICBkYXRhLCBhdmFpbCk7CisKKwlybWQxNjBfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCWRhdGEgKz0gYXZhaWw7CisJbGVuIC09IGF2YWlsOworCisJd2hpbGUgKGxlbiA+PSBzaXplb2YocmN0eC0+YnVmZmVyKSkgeworCQltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBzaXplb2YocmN0eC0+YnVmZmVyKSk7CisJCXJtZDE2MF90cmFuc2Zvcm0ocmN0eC0+c3RhdGUsIHJjdHgtPmJ1ZmZlcik7CisJCWRhdGEgKz0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJCWxlbiAtPSBzaXplb2YocmN0eC0+YnVmZmVyKTsKKwl9CisKKwltZW1jcHkocmN0eC0+YnVmZmVyLCBkYXRhLCBsZW4pOworfQorCisvKiBBZGQgcGFkZGluZyBhbmQgcmV0dXJuIHRoZSBtZXNzYWdlIGRpZ2VzdC4gKi8KK3N0YXRpYyB2b2lkIHJtZDE2MF9maW5hbChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLCB1OCAqb3V0KQoreworCXN0cnVjdCBybWQxNjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwl1MzIgaSwgaW5kZXgsIHBhZGxlbjsKKwlfX2xlNjQgYml0czsKKwlfX2xlMzIgKmRzdCA9IChfX2xlMzIgKilvdXQ7CisJc3RhdGljIGNvbnN0IHU4IHBhZGRpbmdbNjRdID0geyAweDgwLCB9OworCisJYml0cyA9IGNwdV90b19sZTY0KHJjdHgtPmJ5dGVfY291bnQgPDwgMyk7CisKKwkvKiBQYWQgb3V0IHRvIDU2IG1vZCA2NCAqLworCWluZGV4ID0gcmN0eC0+Ynl0ZV9jb3VudCAmIDB4M2Y7CisJcGFkbGVuID0gKGluZGV4IDwgNTYpID8gKDU2IC0gaW5kZXgpIDogKCg2NCs1NikgLSBpbmRleCk7CisJcm1kMTYwX3VwZGF0ZSh0Zm0sIHBhZGRpbmcsIHBhZGxlbik7CisKKwkvKiBBcHBlbmQgbGVuZ3RoICovCisJcm1kMTYwX3VwZGF0ZSh0Zm0sIChjb25zdCB1OCAqKSZiaXRzLCBzaXplb2YoYml0cykpOworCisJLyogU3RvcmUgc3RhdGUgaW4gZGlnZXN0ICovCisJZm9yIChpID0gMDsgaSA8IDU7IGkrKykKKwkJZHN0W2ldID0gY3B1X3RvX2xlMzJwKCZyY3R4LT5zdGF0ZVtpXSk7CisKKwkvKiBXaXBlIGNvbnRleHQgKi8KKwltZW1zZXQocmN0eCwgMCwgc2l6ZW9mKCpyY3R4KSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgY3J5cHRvX2FsZyBhbGcgPSB7CisJLmNyYV9uYW1lCSA9CSJybWQxNjAiLAorCS5jcmFfZHJpdmVyX25hbWUgPQkicm1kMTYwIiwKKwkuY3JhX2ZsYWdzCSA9CUNSWVBUT19BTEdfVFlQRV9ESUdFU1QsCisJLmNyYV9ibG9ja3NpemUJID0JUk1EMTYwX0JMT0NLX1NJWkUsCisJLmNyYV9jdHhzaXplCSA9CXNpemVvZihzdHJ1Y3Qgcm1kMTYwX2N0eCksCisJLmNyYV9tb2R1bGUJID0JVEhJU19NT0RVTEUsCisJLmNyYV9saXN0CSA9CUxJU1RfSEVBRF9JTklUKGFsZy5jcmFfbGlzdCksCisJLmNyYV91CQkgPQl7IC5kaWdlc3QgPSB7CisJLmRpYV9kaWdlc3RzaXplCSA9CVJNRDE2MF9ESUdFU1RfU0laRSwKKwkuZGlhX2luaXQJID0Jcm1kMTYwX2luaXQsCisJLmRpYV91cGRhdGUJID0Jcm1kMTYwX3VwZGF0ZSwKKwkuZGlhX2ZpbmFsCSA9CXJtZDE2MF9maW5hbCB9IH0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IHJtZDE2MF9tb2RfaW5pdCh2b2lkKQoreworCXJldHVybiBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcm1kMTYwX21vZF9maW5pKHZvaWQpCit7CisJY3J5cHRvX3VucmVnaXN0ZXJfYWxnKCZhbGcpOworfQorCittb2R1bGVfaW5pdChybWQxNjBfbW9kX2luaXQpOworbW9kdWxlX2V4aXQocm1kMTYwX21vZF9maW5pKTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJSSVBFTUQtMTYwIE1lc3NhZ2UgRGlnZXN0Iik7CisKK01PRFVMRV9BTElBUygicm1kMTYwIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMjU2LmMgYi9jcnlwdG8vcm1kMjU2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNkZTViNAotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by9ybWQyNTYuYwpAQCAtMCwwICsxLDM0NCBAQAorLyoKKyAqIENyeXB0b2dyYXBoaWMgQVBJLgorICoKKyAqIFJJUEVNRC0yNTYgLSBSQUNFIEludGVncml0eSBQcmltaXRpdmVzIEV2YWx1YXRpb24gTWVzc2FnZSBEaWdlc3QuCisgKgorICogQmFzZWQgb24gdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBieSBBbnRvb24gQm9zc2VsYWVycywgRVNBVC1DT1NJQworICoKKyAqIENvcHlyaWdodCAoYykgMjAwOCBBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxydWVlZ3NlZ2dlciAoYXQpIHN3aXNzLWl0LmNoPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgorCisjaW5jbHVkZSAicmlwZW1kLmgiCisKK3N0cnVjdCBybWQyNTZfY3R4IHsKKwl1NjQgYnl0ZV9jb3VudDsKKwl1MzIgc3RhdGVbOF07CisJX19sZTMyIGJ1ZmZlclsxNl07Cit9OworCisjZGVmaW5lIEsxICBSTURfSzEKKyNkZWZpbmUgSzIgIFJNRF9LMgorI2RlZmluZSBLMyAgUk1EX0szCisjZGVmaW5lIEs0ICBSTURfSzQKKyNkZWZpbmUgS0sxIFJNRF9LNgorI2RlZmluZSBLSzIgUk1EX0s3CisjZGVmaW5lIEtLMyBSTURfSzgKKyNkZWZpbmUgS0s0IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSk7IFwKK30KKworc3RhdGljIHZvaWQgcm1kMjU2X3RyYW5zZm9ybSh1MzIgKnN0YXRlLCBjb25zdCBfX2xlMzIgKmluKQoreworCXUzMiBhYSwgYmIsIGNjLCBkZCwgYWFhLCBiYmIsIGNjYywgZGRkLCB0bXA7CisKKwkvKiBJbml0aWFsaXplIGxlZnQgbGFuZSAqLworCWFhID0gc3RhdGVbMF07CisJYmIgPSBzdGF0ZVsxXTsKKwljYyA9IHN0YXRlWzJdOworCWRkID0gc3RhdGVbM107CisKKwkvKiBJbml0aWFsaXplIHJpZ2h0IGxhbmUgKi8KKwlhYWEgPSBzdGF0ZVs0XTsKKwliYmIgPSBzdGF0ZVs1XTsKKwljY2MgPSBzdGF0ZVs2XTsKKwlkZGQgPSBzdGF0ZVs3XTsKKworCS8qIHJvdW5kIDE6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzldLCAgMTMpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzEyXSwgIDYpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMSwgSzEsIGluWzE0XSwgIDkpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMSwgSzEsIGluWzE1XSwgIDgpOworCisJLyogcm91bmQgMTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bNV0sICAgOCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsxNF0sICA5KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0sxLCBpbls5XSwgIDEzKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzEsIGluWzJdLCAgMTUpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjQsIEtLMSwgaW5bMTFdLCAxNSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGNCwgS0sxLCBpbls0XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGNCwgS0sxLCBpblsxNV0sICA4KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEY0LCBLSzEsIGluWzhdLCAgMTEpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMSwgaW5bMV0sICAxNCk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0sxLCBpblsxMF0sIDE0KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEY0LCBLSzEsIGluWzNdLCAgMTIpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjQsIEtLMSwgaW5bMTJdLCAgNik7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJhIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBhYTsgYWEgPSBhYWE7IGFhYSA9IHRtcDsKKworCS8qIHJvdW5kIDI6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzRdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEwXSwgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzZdLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzldLCAgMTUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzVdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMiwgSzIsIGluWzExXSwgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpblsxMV0sIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bN10sICAgNyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0syLCBpblswXSwgIDEyKTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjMsIEtLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMywgS0syLCBpblsxMF0sIDExKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMiwgaW5bMTVdLCAgNyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMywgS0syLCBpbls4XSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYzLCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMiwgaW5bNF0sICAgNik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMywgS0syLCBpbls5XSwgIDE1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYzLCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjMsIEtLMiwgaW5bMl0sICAxMSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJiIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBiYjsgYmIgPSBiYmI7IGJiYiA9IHRtcDsKKworCS8qIHJvdW5kIDM6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzNdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzEwXSwgMTMpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzhdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzEzXSwgIDUpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGMywgSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGMywgSzMsIGluWzEyXSwgIDUpOworCisJLyogcm91bmQgMzogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpbls1XSwgICA3KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzFdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0szLCBpbls3XSwgICA4KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjIsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMiwgS0szLCBpbls5XSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzMsIGluWzExXSwgMTIpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjIsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMiwgS0szLCBpblsxMl0sICA1KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYyLCBLSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0szLCBpblswXSwgIDEzKTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYyLCBLSzMsIGluWzRdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjIsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJjIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBjYzsgY2MgPSBjY2M7IGNjYyA9IHRtcDsKKworCS8qIHJvdW5kIDQ6IGxlZnQgbGFuZSAqLworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzNdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzE0XSwgIDgpOworCVJPVU5EKGRkLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGNjLCBkZCwgYWEsIGJiLCBGNCwgSzQsIGluWzZdLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGFhLCBGNCwgSzQsIGluWzJdLCAgMTIpOworCisJLyogcm91bmQgNDogcmlnaHQgbGFuZSAqLworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bOF0sICAxNSk7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpbls2XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s0LCBpblszXSwgIDE0KTsKKwlST1VORChkZGQsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzQsIGluWzExXSwgMTQpOworCVJPVU5EKGNjYywgZGRkLCBhYWEsIGJiYiwgRjEsIEtLNCwgaW5bMTVdLCAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgYWFhLCBGMSwgS0s0LCBpblswXSwgIDE0KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGRkZCwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGFhYSwgYmJiLCBGMSwgS0s0LCBpblsyXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBhYWEsIEYxLCBLSzQsIGluWzEzXSwgIDkpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNCwgaW5bOV0sICAxMik7CisJUk9VTkQoZGRkLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s0LCBpbls3XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgYWFhLCBiYmIsIEYxLCBLSzQsIGluWzEwXSwgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGFhYSwgRjEsIEtLNCwgaW5bMTRdLCAgOCk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJkIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBkZDsgZGQgPSBkZGQ7IGRkZCA9IHRtcDsKKworCS8qIGNvbWJpbmUgcmVzdWx0cyAqLworCXN0YXRlWzBdICs9IGFhOworCXN0YXRlWzFdICs9IGJiOworCXN0YXRlWzJdICs9IGNjOworCXN0YXRlWzNdICs9IGRkOworCXN0YXRlWzRdICs9IGFhYTsKKwlzdGF0ZVs1XSArPSBiYmI7CisJc3RhdGVbNl0gKz0gY2NjOworCXN0YXRlWzddICs9IGRkZDsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcm1kMjU2X2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3Qgcm1kMjU2X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwlyY3R4LT5ieXRlX2NvdW50ID0gMDsKKworCXJjdHgtPnN0YXRlWzBdID0gUk1EX0gwOworCXJjdHgtPnN0YXRlWzFdID0gUk1EX0gxOworCXJjdHgtPnN0YXRlWzJdID0gUk1EX0gyOworCXJjdHgtPnN0YXRlWzNdID0gUk1EX0gzOworCXJjdHgtPnN0YXRlWzRdID0gUk1EX0g1OworCXJjdHgtPnN0YXRlWzVdID0gUk1EX0g2OworCXJjdHgtPnN0YXRlWzZdID0gUk1EX0g3OworCXJjdHgtPnN0YXRlWzddID0gUk1EX0g4OworCisJbWVtc2V0KHJjdHgtPmJ1ZmZlciwgMCwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCBybWQyNTZfdXBkYXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICpkYXRhLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBybWQyNTZfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwljb25zdCB1MzIgYXZhaWwgPSBzaXplb2YocmN0eC0+YnVmZmVyKSAtIChyY3R4LT5ieXRlX2NvdW50ICYgMHgzZik7CisKKwlyY3R4LT5ieXRlX2NvdW50ICs9IGxlbjsKKworCS8qIEVub3VnaCBzcGFjZSBpbiBidWZmZXI/IElmIHNvIGNvcHkgYW5kIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYXZhaWwgPiBsZW4pIHsKKwkJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCQkgICAgICAgZGF0YSwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkgICAgICAgZGF0YSwgYXZhaWwpOworCisJcm1kMjU2X3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwlkYXRhICs9IGF2YWlsOworCWxlbiAtPSBhdmFpbDsKKworCXdoaWxlIChsZW4gPj0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpIHsKKwkJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworCQlybWQyNTZfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCQlkYXRhICs9IHNpemVvZihyY3R4LT5idWZmZXIpOworCQlsZW4gLT0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJfQorCisJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgbGVuKTsKK30KKworLyogQWRkIHBhZGRpbmcgYW5kIHJldHVybiB0aGUgbWVzc2FnZSBkaWdlc3QuICovCitzdGF0aWMgdm9pZCBybWQyNTZfZmluYWwoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggKm91dCkKK3sKKwlzdHJ1Y3Qgcm1kMjU2X2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyIGksIGluZGV4LCBwYWRsZW47CisJX19sZTY0IGJpdHM7CisJX19sZTMyICpkc3QgPSAoX19sZTMyICopb3V0OworCXN0YXRpYyBjb25zdCB1OCBwYWRkaW5nWzY0XSA9IHsgMHg4MCwgfTsKKworCWJpdHMgPSBjcHVfdG9fbGU2NChyY3R4LT5ieXRlX2NvdW50IDw8IDMpOworCisJLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKwlpbmRleCA9IHJjdHgtPmJ5dGVfY291bnQgJiAweDNmOworCXBhZGxlbiA9IChpbmRleCA8IDU2KSA/ICg1NiAtIGluZGV4KSA6ICgoNjQrNTYpIC0gaW5kZXgpOworCXJtZDI1Nl91cGRhdGUodGZtLCBwYWRkaW5nLCBwYWRsZW4pOworCisJLyogQXBwZW5kIGxlbmd0aCAqLworCXJtZDI1Nl91cGRhdGUodGZtLCAoY29uc3QgdTggKikmYml0cywgc2l6ZW9mKGJpdHMpKTsKKworCS8qIFN0b3JlIHN0YXRlIGluIGRpZ2VzdCAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCWRzdFtpXSA9IGNwdV90b19sZTMycCgmcmN0eC0+c3RhdGVbaV0pOworCisJLyogV2lwZSBjb250ZXh0ICovCisJbWVtc2V0KHJjdHgsIDAsIHNpemVvZigqcmN0eCkpOworfQorCitzdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgYWxnID0geworCS5jcmFfbmFtZQkgPQkicm1kMjU2IiwKKwkuY3JhX2RyaXZlcl9uYW1lID0JInJtZDI1NiIsCisJLmNyYV9mbGFncwkgPQlDUllQVE9fQUxHX1RZUEVfRElHRVNULAorCS5jcmFfYmxvY2tzaXplCSA9CVJNRDI1Nl9CTE9DS19TSVpFLAorCS5jcmFfY3R4c2l6ZQkgPQlzaXplb2Yoc3RydWN0IHJtZDI1Nl9jdHgpLAorCS5jcmFfbW9kdWxlCSA9CVRISVNfTU9EVUxFLAorCS5jcmFfbGlzdAkgPQlMSVNUX0hFQURfSU5JVChhbGcuY3JhX2xpc3QpLAorCS5jcmFfdQkJID0JeyAuZGlnZXN0ID0geworCS5kaWFfZGlnZXN0c2l6ZQkgPQlSTUQyNTZfRElHRVNUX1NJWkUsCisJLmRpYV9pbml0CSA9CXJtZDI1Nl9pbml0LAorCS5kaWFfdXBkYXRlCSA9CXJtZDI1Nl91cGRhdGUsCisJLmRpYV9maW5hbAkgPQlybWQyNTZfZmluYWwgfSB9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBybWQyNTZfbW9kX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gY3J5cHRvX3JlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHJtZDI1Nl9tb2RfZmluaSh2b2lkKQoreworCWNyeXB0b191bnJlZ2lzdGVyX2FsZygmYWxnKTsKK30KKworbW9kdWxlX2luaXQocm1kMjU2X21vZF9pbml0KTsKK21vZHVsZV9leGl0KHJtZDI1Nl9tb2RfZmluaSk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiUklQRU1ELTI1NiBNZXNzYWdlIERpZ2VzdCIpOworCitNT0RVTEVfQUxJQVMoInJtZDI1NiIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JtZDMyMC5jIGIvY3J5cHRvL3JtZDMyMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxNDNkNjYKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vcm1kMzIwLmMKQEAgLTAsMCArMSwzOTMgQEAKKy8qCisgKiBDcnlwdG9ncmFwaGljIEFQSS4KKyAqCisgKiBSSVBFTUQtMzIwIC0gUkFDRSBJbnRlZ3JpdHkgUHJpbWl0aXZlcyBFdmFsdWF0aW9uIE1lc3NhZ2UgRGlnZXN0LgorICoKKyAqIEJhc2VkIG9uIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gYnkgQW50b29uIEJvc3NlbGFlcnMsIEVTQVQtQ09TSUMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQWRyaWFuLUtlbiBSdWVlZ3NlZ2dlciA8cnVlZWdzZWdnZXIgKGF0KSBzd2lzcy1pdC5jaD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorI2luY2x1ZGUgPGxpbnV4L2NyeXB0b2hhc2guaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KKworI2luY2x1ZGUgInJpcGVtZC5oIgorCitzdHJ1Y3Qgcm1kMzIwX2N0eCB7CisJdTY0IGJ5dGVfY291bnQ7CisJdTMyIHN0YXRlWzEwXTsKKwlfX2xlMzIgYnVmZmVyWzE2XTsKK307CisKKyNkZWZpbmUgSzEgIFJNRF9LMQorI2RlZmluZSBLMiAgUk1EX0syCisjZGVmaW5lIEszICBSTURfSzMKKyNkZWZpbmUgSzQgIFJNRF9LNAorI2RlZmluZSBLNSAgUk1EX0s1CisjZGVmaW5lIEtLMSBSTURfSzYKKyNkZWZpbmUgS0syIFJNRF9LNworI2RlZmluZSBLSzMgUk1EX0s4CisjZGVmaW5lIEtLNCBSTURfSzkKKyNkZWZpbmUgS0s1IFJNRF9LMQorCisjZGVmaW5lIEYxKHgsIHksIHopICh4IF4geSBeIHopCQkvKiBYT1IgKi8KKyNkZWZpbmUgRjIoeCwgeSwgeikgKHogXiAoeCAmICh5IF4geikpKQkvKiB4ID8geSA6IHogKi8KKyNkZWZpbmUgRjMoeCwgeSwgeikgKCh4IHwgfnkpIF4geikKKyNkZWZpbmUgRjQoeCwgeSwgeikgKHkgXiAoeiAmICh4IF4geSkpKQkvKiB6ID8geCA6IHkgKi8KKyNkZWZpbmUgRjUoeCwgeSwgeikgKHggXiAoeSB8IH56KSkKKworI2RlZmluZSBST1VORChhLCBiLCBjLCBkLCBlLCBmLCBrLCB4LCBzKSAgeyBcCisJKGEpICs9IGYoKGIpLCAoYyksIChkKSkgKyBsZTMyX3RvX2NwdXAoJih4KSkgKyAoayk7IFwKKwkoYSkgPSByb2wzMigoYSksIChzKSkgKyAoZSk7IFwKKwkoYykgPSByb2wzMigoYyksIDEwKTsgXAorfQorCitzdGF0aWMgdm9pZCBybWQzMjBfdHJhbnNmb3JtKHUzMiAqc3RhdGUsIGNvbnN0IF9fbGUzMiAqaW4pCit7CisJdTMyIGFhLCBiYiwgY2MsIGRkLCBlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIHRtcDsKKworCS8qIEluaXRpYWxpemUgbGVmdCBsYW5lICovCisJYWEgPSBzdGF0ZVswXTsKKwliYiA9IHN0YXRlWzFdOworCWNjID0gc3RhdGVbMl07CisJZGQgPSBzdGF0ZVszXTsKKwllZSA9IHN0YXRlWzRdOworCisJLyogSW5pdGlhbGl6ZSByaWdodCBsYW5lICovCisJYWFhID0gc3RhdGVbNV07CisJYmJiID0gc3RhdGVbNl07CisJY2NjID0gc3RhdGVbN107CisJZGRkID0gc3RhdGVbOF07CisJZWVlID0gc3RhdGVbOV07CisKKwkvKiByb3VuZCAxOiBsZWZ0IGxhbmUgKi8KKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bMF0sICAxMSk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMSwgSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjEsIEsxLCBpblsyXSwgIDE1KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYxLCBLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMSwgSzEsIGluWzRdLCAgIDUpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjEsIEsxLCBpbls1XSwgICA4KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYxLCBLMSwgaW5bNl0sICAgNyk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMSwgSzEsIGluWzddLCAgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjEsIEsxLCBpbls4XSwgIDExKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYxLCBLMSwgaW5bOV0sICAxMyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMSwgSzEsIGluWzEwXSwgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjEsIEsxLCBpblsxMV0sIDE1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYxLCBLMSwgaW5bMTJdLCAgNik7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMSwgSzEsIGluWzEzXSwgIDcpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjEsIEsxLCBpblsxNF0sICA5KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYxLCBLMSwgaW5bMTVdLCAgOCk7CisKKwkvKiByb3VuZCAxOiByaWdodCBsYW5lICovCisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzVdLCAgIDgpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNSwgS0sxLCBpblsxNF0sICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjUsIEtLMSwgaW5bN10sICAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY1LCBLSzEsIGluWzBdLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNSwgS0sxLCBpbls5XSwgIDEzKTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjUsIEtLMSwgaW5bMl0sICAxNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY1LCBLSzEsIGluWzExXSwgMTUpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNSwgS0sxLCBpbls0XSwgICA1KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjUsIEtLMSwgaW5bMTNdLCAgNyk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY1LCBLSzEsIGluWzZdLCAgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNSwgS0sxLCBpblsxNV0sICA4KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjUsIEtLMSwgaW5bOF0sICAxMSk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY1LCBLSzEsIGluWzFdLCAgMTQpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNSwgS0sxLCBpblsxMF0sIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjUsIEtLMSwgaW5bM10sICAxMik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY1LCBLSzEsIGluWzEyXSwgIDYpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiYSIgcmVnaXN0ZXJzICovCisJdG1wID0gYWE7IGFhID0gYWFhOyBhYWEgPSB0bXA7CisKKwkvKiByb3VuZCAyOiBsZWZ0IGxhbmUiICovCisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzddLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjIsIEsyLCBpbls0XSwgICA2KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYyLCBLMiwgaW5bMTNdLCAgOCk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMiwgSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjIsIEsyLCBpblsxMF0sIDExKTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYyLCBLMiwgaW5bNl0sICAgOSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMiwgSzIsIGluWzE1XSwgIDcpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjIsIEsyLCBpblszXSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYyLCBLMiwgaW5bMTJdLCAgNyk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMiwgSzIsIGluWzBdLCAgMTIpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjIsIEsyLCBpbls5XSwgIDE1KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYyLCBLMiwgaW5bNV0sICAgOSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMiwgSzIsIGluWzJdLCAgMTEpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjIsIEsyLCBpblsxNF0sICA3KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYyLCBLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMiwgSzIsIGluWzhdLCAgMTIpOworCisJLyogcm91bmQgMjogcmlnaHQgbGFuZSAqLworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpbls2XSwgICA5KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjQsIEtLMiwgaW5bMTFdLCAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEY0LCBLSzIsIGluWzNdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGNCwgS0syLCBpbls3XSwgICA3KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjQsIEtLMiwgaW5bMF0sICAxMik7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEY0LCBLSzIsIGluWzEzXSwgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGNCwgS0syLCBpbls1XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjQsIEtLMiwgaW5bMTBdLCAxMSk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEY0LCBLSzIsIGluWzE0XSwgIDcpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGNCwgS0syLCBpblsxNV0sICA3KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjQsIEtLMiwgaW5bOF0sICAxMik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEY0LCBLSzIsIGluWzEyXSwgIDcpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGNCwgS0syLCBpbls0XSwgICA2KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjQsIEtLMiwgaW5bOV0sICAxNSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEY0LCBLSzIsIGluWzFdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGNCwgS0syLCBpblsyXSwgIDExKTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImIiIHJlZ2lzdGVycyAqLworCXRtcCA9IGJiOyBiYiA9IGJiYjsgYmJiID0gdG1wOworCisJLyogcm91bmQgMzogbGVmdCBsYW5lIiAqLworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblszXSwgIDExKTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEYzLCBLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGMywgSzMsIGluWzE0XSwgIDYpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjMsIEszLCBpbls0XSwgICA3KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEYzLCBLMywgaW5bOV0sICAxNCk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGMywgSzMsIGluWzE1XSwgIDkpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjMsIEszLCBpbls4XSwgIDEzKTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEYzLCBLMywgaW5bMV0sICAxNSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGMywgSzMsIGluWzJdLCAgMTQpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjMsIEszLCBpbls3XSwgICA4KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEYzLCBLMywgaW5bMF0sICAxMyk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGMywgSzMsIGluWzZdLCAgIDYpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjMsIEszLCBpblsxM10sICA1KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEYzLCBLMywgaW5bMTFdLCAxMik7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGMywgSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjMsIEszLCBpblsxMl0sICA1KTsKKworCS8qIHJvdW5kIDM6IHJpZ2h0IGxhbmUgKi8KKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTVdLCAgOSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYzLCBLSzMsIGluWzVdLCAgIDcpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMywgS0szLCBpblsxXSwgIDE1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjMsIEtLMywgaW5bM10sICAxMSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYzLCBLSzMsIGluWzddLCAgIDgpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMywgS0szLCBpblsxNF0sICA2KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjMsIEtLMywgaW5bNl0sICAgNik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYzLCBLSzMsIGluWzldLCAgMTQpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMywgS0szLCBpblsxMV0sIDEyKTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjMsIEtLMywgaW5bOF0sICAxMyk7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYzLCBLSzMsIGluWzEyXSwgIDUpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMywgS0szLCBpblsyXSwgIDE0KTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjMsIEtLMywgaW5bMTBdLCAxMyk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYzLCBLSzMsIGluWzBdLCAgMTMpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMywgS0szLCBpbls0XSwgICA3KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjMsIEtLMywgaW5bMTNdLCAgNSk7CisKKwkvKiBTd2FwIGNvbnRlbnRzIG9mICJjIiByZWdpc3RlcnMgKi8KKwl0bXAgPSBjYzsgY2MgPSBjY2M7IGNjYyA9IHRtcDsKKworCS8qIHJvdW5kIDQ6IGxlZnQgbGFuZSIgKi8KKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bMV0sICAxMSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNCwgSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjQsIEs0LCBpblsxMV0sIDE0KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY0LCBLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNCwgSzQsIGluWzBdLCAgMTQpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjQsIEs0LCBpbls4XSwgIDE1KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY0LCBLNCwgaW5bMTJdLCAgOSk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNCwgSzQsIGluWzRdLCAgIDgpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjQsIEs0LCBpblsxM10sICA5KTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY0LCBLNCwgaW5bM10sICAxNCk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNCwgSzQsIGluWzddLCAgIDUpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjQsIEs0LCBpblsxNV0sICA2KTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY0LCBLNCwgaW5bMTRdLCAgOCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNCwgSzQsIGluWzVdLCAgIDYpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjQsIEs0LCBpbls2XSwgICA1KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY0LCBLNCwgaW5bMl0sICAxMik7CisKKwkvKiByb3VuZCA0OiByaWdodCBsYW5lICovCisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzhdLCAgMTUpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMiwgS0s0LCBpbls2XSwgICA1KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjIsIEtLNCwgaW5bNF0sICAgOCk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYyLCBLSzQsIGluWzFdLCAgMTEpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMiwgS0s0LCBpblszXSwgIDE0KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjIsIEtLNCwgaW5bMTFdLCAxNCk7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYyLCBLSzQsIGluWzE1XSwgIDYpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMiwgS0s0LCBpblswXSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjIsIEtLNCwgaW5bNV0sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYyLCBLSzQsIGluWzEyXSwgIDkpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMiwgS0s0LCBpblsyXSwgIDEyKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjIsIEtLNCwgaW5bMTNdLCAgOSk7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYyLCBLSzQsIGluWzldLCAgMTIpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMiwgS0s0LCBpbls3XSwgICA1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjIsIEtLNCwgaW5bMTBdLCAxNSk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYyLCBLSzQsIGluWzE0XSwgIDgpOworCisJLyogU3dhcCBjb250ZW50cyBvZiAiZCIgcmVnaXN0ZXJzICovCisJdG1wID0gZGQ7IGRkID0gZGRkOyBkZGQgPSB0bXA7CisKKwkvKiByb3VuZCA1OiBsZWZ0IGxhbmUiICovCisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzRdLCAgIDkpOworCVJPVU5EKGFhLCBiYiwgY2MsIGRkLCBlZSwgRjUsIEs1LCBpblswXSwgIDE1KTsKKwlST1VORChlZSwgYWEsIGJiLCBjYywgZGQsIEY1LCBLNSwgaW5bNV0sICAgNSk7CisJUk9VTkQoZGQsIGVlLCBhYSwgYmIsIGNjLCBGNSwgSzUsIGluWzldLCAgMTEpOworCVJPVU5EKGNjLCBkZCwgZWUsIGFhLCBiYiwgRjUsIEs1LCBpbls3XSwgICA2KTsKKwlST1VORChiYiwgY2MsIGRkLCBlZSwgYWEsIEY1LCBLNSwgaW5bMTJdLCAgOCk7CisJUk9VTkQoYWEsIGJiLCBjYywgZGQsIGVlLCBGNSwgSzUsIGluWzJdLCAgMTMpOworCVJPVU5EKGVlLCBhYSwgYmIsIGNjLCBkZCwgRjUsIEs1LCBpblsxMF0sIDEyKTsKKwlST1VORChkZCwgZWUsIGFhLCBiYiwgY2MsIEY1LCBLNSwgaW5bMTRdLCAgNSk7CisJUk9VTkQoY2MsIGRkLCBlZSwgYWEsIGJiLCBGNSwgSzUsIGluWzFdLCAgMTIpOworCVJPVU5EKGJiLCBjYywgZGQsIGVlLCBhYSwgRjUsIEs1LCBpblszXSwgIDEzKTsKKwlST1VORChhYSwgYmIsIGNjLCBkZCwgZWUsIEY1LCBLNSwgaW5bOF0sICAxNCk7CisJUk9VTkQoZWUsIGFhLCBiYiwgY2MsIGRkLCBGNSwgSzUsIGluWzExXSwgMTEpOworCVJPVU5EKGRkLCBlZSwgYWEsIGJiLCBjYywgRjUsIEs1LCBpbls2XSwgICA4KTsKKwlST1VORChjYywgZGQsIGVlLCBhYSwgYmIsIEY1LCBLNSwgaW5bMTVdLCAgNSk7CisJUk9VTkQoYmIsIGNjLCBkZCwgZWUsIGFhLCBGNSwgSzUsIGluWzEzXSwgIDYpOworCisJLyogcm91bmQgNTogcmlnaHQgbGFuZSAqLworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMl0sICA4KTsKKwlST1VORChhYWEsIGJiYiwgY2NjLCBkZGQsIGVlZSwgRjEsIEtLNSwgaW5bMTVdLCAgNSk7CisJUk9VTkQoZWVlLCBhYWEsIGJiYiwgY2NjLCBkZGQsIEYxLCBLSzUsIGluWzEwXSwgMTIpOworCVJPVU5EKGRkZCwgZWVlLCBhYWEsIGJiYiwgY2NjLCBGMSwgS0s1LCBpbls0XSwgICA5KTsKKwlST1VORChjY2MsIGRkZCwgZWVlLCBhYWEsIGJiYiwgRjEsIEtLNSwgaW5bMV0sICAxMik7CisJUk9VTkQoYmJiLCBjY2MsIGRkZCwgZWVlLCBhYWEsIEYxLCBLSzUsIGluWzVdLCAgIDUpOworCVJPVU5EKGFhYSwgYmJiLCBjY2MsIGRkZCwgZWVlLCBGMSwgS0s1LCBpbls4XSwgIDE0KTsKKwlST1VORChlZWUsIGFhYSwgYmJiLCBjY2MsIGRkZCwgRjEsIEtLNSwgaW5bN10sICAgNik7CisJUk9VTkQoZGRkLCBlZWUsIGFhYSwgYmJiLCBjY2MsIEYxLCBLSzUsIGluWzZdLCAgIDgpOworCVJPVU5EKGNjYywgZGRkLCBlZWUsIGFhYSwgYmJiLCBGMSwgS0s1LCBpblsyXSwgIDEzKTsKKwlST1VORChiYmIsIGNjYywgZGRkLCBlZWUsIGFhYSwgRjEsIEtLNSwgaW5bMTNdLCAgNik7CisJUk9VTkQoYWFhLCBiYmIsIGNjYywgZGRkLCBlZWUsIEYxLCBLSzUsIGluWzE0XSwgIDUpOworCVJPVU5EKGVlZSwgYWFhLCBiYmIsIGNjYywgZGRkLCBGMSwgS0s1LCBpblswXSwgIDE1KTsKKwlST1VORChkZGQsIGVlZSwgYWFhLCBiYmIsIGNjYywgRjEsIEtLNSwgaW5bM10sICAxMyk7CisJUk9VTkQoY2NjLCBkZGQsIGVlZSwgYWFhLCBiYmIsIEYxLCBLSzUsIGluWzldLCAgMTEpOworCVJPVU5EKGJiYiwgY2NjLCBkZGQsIGVlZSwgYWFhLCBGMSwgS0s1LCBpblsxMV0sIDExKTsKKworCS8qIFN3YXAgY29udGVudHMgb2YgImUiIHJlZ2lzdGVycyAqLworCXRtcCA9IGVlOyBlZSA9IGVlZTsgZWVlID0gdG1wOworCisJLyogY29tYmluZSByZXN1bHRzICovCisJc3RhdGVbMF0gKz0gYWE7CisJc3RhdGVbMV0gKz0gYmI7CisJc3RhdGVbMl0gKz0gY2M7CisJc3RhdGVbM10gKz0gZGQ7CisJc3RhdGVbNF0gKz0gZWU7CisJc3RhdGVbNV0gKz0gYWFhOworCXN0YXRlWzZdICs9IGJiYjsKKwlzdGF0ZVs3XSArPSBjY2M7CisJc3RhdGVbOF0gKz0gZGRkOworCXN0YXRlWzldICs9IGVlZTsKKworCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcm1kMzIwX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3Qgcm1kMzIwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisKKwlyY3R4LT5ieXRlX2NvdW50ID0gMDsKKworCXJjdHgtPnN0YXRlWzBdID0gUk1EX0gwOworCXJjdHgtPnN0YXRlWzFdID0gUk1EX0gxOworCXJjdHgtPnN0YXRlWzJdID0gUk1EX0gyOworCXJjdHgtPnN0YXRlWzNdID0gUk1EX0gzOworCXJjdHgtPnN0YXRlWzRdID0gUk1EX0g0OworCXJjdHgtPnN0YXRlWzVdID0gUk1EX0g1OworCXJjdHgtPnN0YXRlWzZdID0gUk1EX0g2OworCXJjdHgtPnN0YXRlWzddID0gUk1EX0g3OworCXJjdHgtPnN0YXRlWzhdID0gUk1EX0g4OworCXJjdHgtPnN0YXRlWzldID0gUk1EX0g5OworCisJbWVtc2V0KHJjdHgtPmJ1ZmZlciwgMCwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworfQorCitzdGF0aWMgdm9pZCBybWQzMjBfdXBkYXRlKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGNvbnN0IHU4ICpkYXRhLAorCQkJICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBybWQzMjBfY3R4ICpyY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwljb25zdCB1MzIgYXZhaWwgPSBzaXplb2YocmN0eC0+YnVmZmVyKSAtIChyY3R4LT5ieXRlX2NvdW50ICYgMHgzZik7CisKKwlyY3R4LT5ieXRlX2NvdW50ICs9IGxlbjsKKworCS8qIEVub3VnaCBzcGFjZSBpbiBidWZmZXI/IElmIHNvIGNvcHkgYW5kIHdlJ3JlIGRvbmUgKi8KKwlpZiAoYXZhaWwgPiBsZW4pIHsKKwkJbWVtY3B5KChjaGFyICopcmN0eC0+YnVmZmVyICsgKHNpemVvZihyY3R4LT5idWZmZXIpIC0gYXZhaWwpLAorCQkgICAgICAgZGF0YSwgbGVuKTsKKwkJcmV0dXJuOworCX0KKworCW1lbWNweSgoY2hhciAqKXJjdHgtPmJ1ZmZlciArIChzaXplb2YocmN0eC0+YnVmZmVyKSAtIGF2YWlsKSwKKwkgICAgICAgZGF0YSwgYXZhaWwpOworCisJcm1kMzIwX3RyYW5zZm9ybShyY3R4LT5zdGF0ZSwgcmN0eC0+YnVmZmVyKTsKKwlkYXRhICs9IGF2YWlsOworCWxlbiAtPSBhdmFpbDsKKworCXdoaWxlIChsZW4gPj0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpIHsKKwkJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgc2l6ZW9mKHJjdHgtPmJ1ZmZlcikpOworCQlybWQzMjBfdHJhbnNmb3JtKHJjdHgtPnN0YXRlLCByY3R4LT5idWZmZXIpOworCQlkYXRhICs9IHNpemVvZihyY3R4LT5idWZmZXIpOworCQlsZW4gLT0gc2l6ZW9mKHJjdHgtPmJ1ZmZlcik7CisJfQorCisJbWVtY3B5KHJjdHgtPmJ1ZmZlciwgZGF0YSwgbGVuKTsKK30KKworLyogQWRkIHBhZGRpbmcgYW5kIHJldHVybiB0aGUgbWVzc2FnZSBkaWdlc3QuICovCitzdGF0aWMgdm9pZCBybWQzMjBfZmluYWwoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggKm91dCkKK3sKKwlzdHJ1Y3Qgcm1kMzIwX2N0eCAqcmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJdTMyIGksIGluZGV4LCBwYWRsZW47CisJX19sZTY0IGJpdHM7CisJX19sZTMyICpkc3QgPSAoX19sZTMyICopb3V0OworCXN0YXRpYyBjb25zdCB1OCBwYWRkaW5nWzY0XSA9IHsgMHg4MCwgfTsKKworCWJpdHMgPSBjcHVfdG9fbGU2NChyY3R4LT5ieXRlX2NvdW50IDw8IDMpOworCisJLyogUGFkIG91dCB0byA1NiBtb2QgNjQgKi8KKwlpbmRleCA9IHJjdHgtPmJ5dGVfY291bnQgJiAweDNmOworCXBhZGxlbiA9IChpbmRleCA8IDU2KSA/ICg1NiAtIGluZGV4KSA6ICgoNjQrNTYpIC0gaW5kZXgpOworCXJtZDMyMF91cGRhdGUodGZtLCBwYWRkaW5nLCBwYWRsZW4pOworCisJLyogQXBwZW5kIGxlbmd0aCAqLworCXJtZDMyMF91cGRhdGUodGZtLCAoY29uc3QgdTggKikmYml0cywgc2l6ZW9mKGJpdHMpKTsKKworCS8qIFN0b3JlIHN0YXRlIGluIGRpZ2VzdCAqLworCWZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKQorCQlkc3RbaV0gPSBjcHVfdG9fbGUzMnAoJnJjdHgtPnN0YXRlW2ldKTsKKworCS8qIFdpcGUgY29udGV4dCAqLworCW1lbXNldChyY3R4LCAwLCBzaXplb2YoKnJjdHgpKTsKK30KKworc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGFsZyA9IHsKKwkuY3JhX25hbWUJID0JInJtZDMyMCIsCisJLmNyYV9kcml2ZXJfbmFtZSA9CSJybWQzMjAiLAorCS5jcmFfZmxhZ3MJID0JQ1JZUFRPX0FMR19UWVBFX0RJR0VTVCwKKwkuY3JhX2Jsb2Nrc2l6ZQkgPQlSTUQzMjBfQkxPQ0tfU0laRSwKKwkuY3JhX2N0eHNpemUJID0Jc2l6ZW9mKHN0cnVjdCBybWQzMjBfY3R4KSwKKwkuY3JhX21vZHVsZQkgPQlUSElTX01PRFVMRSwKKwkuY3JhX2xpc3QJID0JTElTVF9IRUFEX0lOSVQoYWxnLmNyYV9saXN0KSwKKwkuY3JhX3UJCSA9CXsgLmRpZ2VzdCA9IHsKKwkuZGlhX2RpZ2VzdHNpemUJID0JUk1EMzIwX0RJR0VTVF9TSVpFLAorCS5kaWFfaW5pdAkgPQlybWQzMjBfaW5pdCwKKwkuZGlhX3VwZGF0ZQkgPQlybWQzMjBfdXBkYXRlLAorCS5kaWFfZmluYWwJID0Jcm1kMzIwX2ZpbmFsIH0gfQorfTsKKworc3RhdGljIGludCBfX2luaXQgcm1kMzIwX21vZF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGNyeXB0b19yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBybWQzMjBfbW9kX2Zpbmkodm9pZCkKK3sKKwljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmFsZyk7Cit9CisKK21vZHVsZV9pbml0KHJtZDMyMF9tb2RfaW5pdCk7Cittb2R1bGVfZXhpdChybWQzMjBfbW9kX2ZpbmkpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlJJUEVNRC0zMjAgTWVzc2FnZSBEaWdlc3QiKTsKKworTU9EVUxFX0FMSUFTKCJybWQzMjAiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by90Y3J5cHQuYyBiL2NyeXB0by90Y3J5cHQuYwppbmRleCA2YmVhYmM1Li41OTgyMWEyIDEwMDY0NAotLS0gYS9jcnlwdG8vdGNyeXB0LmMKKysrIGIvY3J5cHRvL3RjcnlwdC5jCkBAIC0xMywxNSArMTMsOSBAQAogICogU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKQogICogYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogMjAwNy0xMS0xMyBBZGRlZCBHQ00gdGVzdHMKLSAqIDIwMDctMTEtMTMgQWRkZWQgQUVBRCBzdXBwb3J0Ci0gKiAyMDA3LTExLTA2IEFkZGVkIFNIQS0yMjQgYW5kIFNIQS0yMjQtSE1BQyB0ZXN0cwotICogMjAwNi0xMi0wNyBBZGRlZCBTSEEzODQgSE1BQyBhbmQgU0hBNTEyIEhNQUMgdGVzdHMKLSAqIDIwMDQtMDgtMDkgQWRkZWQgY2lwaGVyIHNwZWVkIHRlc3RzIChSZXlrIEZsb2V0ZXIgPHJleWtAdmFudHJvbml4Lm5ldD4pCi0gKiAyMDAzLTA5LTE0IFJld3JpdHRlbiBieSBLYXJ0aWtleSBNYWhlbmRyYSBCaGF0dAotICoKICAqLwogCisjaW5jbHVkZSA8Y3J5cHRvL2hhc2guaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0zMCw3ICsyNCw2IEBACiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KLSNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXguaD4KQEAgLTM4LDcgKzMxLDcgQEAKICNpbmNsdWRlICJ0Y3J5cHQuaCIKIAogLyoKLSAqIE5lZWQgdG8ga21hbGxvYygpIG1lbW9yeSBmb3IgdGVzdGluZyBrbWFwKCkuCisgKiBOZWVkIHRvIGttYWxsb2MoKSBtZW1vcnkgZm9yIHRlc3RpbmcuCiAgKi8KICNkZWZpbmUgVFZNRU1TSVpFCTE2Mzg0CiAjZGVmaW5lIFhCVUZTSVpFCTMyNzY4CkBAIC00Niw3ICszOSw3IEBACiAvKgogICogSW5kZXhlcyBpbnRvIHRoZSB4YnVmIHRvIHNpbXVsYXRlIGNyb3NzLXBhZ2UgYWNjZXNzLgogICovCi0jZGVmaW5lIElEWDEJCTM3CisjZGVmaW5lIElEWDEJCTMyCiAjZGVmaW5lIElEWDIJCTMyNDAwCiAjZGVmaW5lIElEWDMJCTEKICNkZWZpbmUgSURYNAkJODE5MwpAQCAtODMsNyArNzYsOCBAQAogCSJibG93ZmlzaCIsICJ0d29maXNoIiwgInNlcnBlbnQiLCAic2hhMzg0IiwgInNoYTUxMiIsICJtZDQiLCAiYWVzIiwKIAkiY2FzdDYiLCAiYXJjNCIsICJtaWNoYWVsX21pYyIsICJkZWZsYXRlIiwgImNyYzMyYyIsICJ0ZWEiLCAieHRlYSIsCiAJImtoYXphZCIsICJ3cDUxMiIsICJ3cDM4NCIsICJ3cDI1NiIsICJ0bmVwcmVzIiwgInhldGEiLCAgImZjcnlwdCIsCi0JImNhbWVsbGlhIiwgInNlZWQiLCAic2Fsc2EyMCIsICJsem8iLCAiY3RzIiwgTlVMTAorCSJjYW1lbGxpYSIsICJzZWVkIiwgInNhbHNhMjAiLCAicm1kMTI4IiwgInJtZDE2MCIsICJybWQyNTYiLCAicm1kMzIwIiwKKwkibHpvIiwgImN0cyIsIE5VTEwKIH07CiAKIHN0YXRpYyB2b2lkIGhleGR1bXAodW5zaWduZWQgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTEwLDIyICsxMDQsMzAgQEAKIAl1bnNpZ25lZCBpbnQgaSwgaiwgaywgdGVtcDsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2dbOF07CiAJY2hhciByZXN1bHRbNjRdOwotCXN0cnVjdCBjcnlwdG9faGFzaCAqdGZtOwotCXN0cnVjdCBoYXNoX2Rlc2MgZGVzYzsKKwlzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm07CisJc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcTsKKwlzdHJ1Y3QgdGNyeXB0X3Jlc3VsdCB0cmVzdWx0OwogCWludCByZXQ7CiAJdm9pZCAqaGFzaF9idWZmOwogCiAJcHJpbnRrKCJcbnRlc3RpbmcgJXNcbiIsIGFsZ28pOwogCi0JdGZtID0gY3J5cHRvX2FsbG9jX2hhc2goYWxnbywgMCwgQ1JZUFRPX0FMR19BU1lOQyk7CisJaW5pdF9jb21wbGV0aW9uKCZ0cmVzdWx0LmNvbXBsZXRpb24pOworCisJdGZtID0gY3J5cHRvX2FsbG9jX2FoYXNoKGFsZ28sIDAsIDApOwogCWlmIChJU19FUlIodGZtKSkgewogCQlwcmludGsoImZhaWxlZCB0byBsb2FkIHRyYW5zZm9ybSBmb3IgJXM6ICVsZFxuIiwgYWxnbywKIAkJICAgICAgIFBUUl9FUlIodGZtKSk7CiAJCXJldHVybjsKIAl9CiAKLQlkZXNjLnRmbSA9IHRmbTsKLQlkZXNjLmZsYWdzID0gMDsKKwlyZXEgPSBhaGFzaF9yZXF1ZXN0X2FsbG9jKHRmbSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyZXEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdCBmb3IgJXNcbiIsIGFsZ28pOworCQlnb3RvIG91dF9ub3JlcTsKKwl9CisJYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCBDUllQVE9fVEZNX1JFUV9NQVlfQkFDS0xPRywKKwkJCQkgICB0Y3J5cHRfY29tcGxldGUsICZ0cmVzdWx0KTsKIAogCWZvciAoaSA9IDA7IGkgPCB0Y291bnQ7IGkrKykgewogCQlwcmludGsoInRlc3QgJXU6XG4iLCBpICsgMSk7CkBAIC0xMzksOCArMTQxLDkgQEAKIAkJc2dfaW5pdF9vbmUoJnNnWzBdLCBoYXNoX2J1ZmYsIHRlbXBsYXRlW2ldLnBzaXplKTsKIAogCQlpZiAodGVtcGxhdGVbaV0ua3NpemUpIHsKLQkJCXJldCA9IGNyeXB0b19oYXNoX3NldGtleSh0Zm0sIHRlbXBsYXRlW2ldLmtleSwKLQkJCQkJCSB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CisJCQljcnlwdG9fYWhhc2hfY2xlYXJfZmxhZ3ModGZtLCB+MCk7CisJCQlyZXQgPSBjcnlwdG9fYWhhc2hfc2V0a2V5KHRmbSwgdGVtcGxhdGVbaV0ua2V5LAorCQkJCQkJICB0ZW1wbGF0ZVtpXS5rc2l6ZSk7CiAJCQlpZiAocmV0KSB7CiAJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwogCQkJCWtmcmVlKGhhc2hfYnVmZik7CkBAIC0xNDgsMTcgKzE1MSwzMCBAQAogCQkJfQogCQl9CiAKLQkJcmV0ID0gY3J5cHRvX2hhc2hfZGlnZXN0KCZkZXNjLCBzZywgdGVtcGxhdGVbaV0ucHNpemUsIHJlc3VsdCk7Ci0JCWlmIChyZXQpIHsKKwkJYWhhc2hfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCBzZywgcmVzdWx0LCB0ZW1wbGF0ZVtpXS5wc2l6ZSk7CisJCXJldCA9IGNyeXB0b19haGFzaF9kaWdlc3QocmVxKTsKKwkJc3dpdGNoIChyZXQpIHsKKwkJY2FzZSAwOgorCQkJYnJlYWs7CisJCWNhc2UgLUVJTlBST0dSRVNTOgorCQljYXNlIC1FQlVTWToKKwkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgKKwkJCQkmdHJlc3VsdC5jb21wbGV0aW9uKTsKKwkJCWlmICghcmV0ICYmICEocmV0ID0gdHJlc3VsdC5lcnIpKSB7CisJCQkJSU5JVF9DT01QTEVUSU9OKHRyZXN1bHQuY29tcGxldGlvbik7CisJCQkJYnJlYWs7CisJCQl9CisJCQkvKiBmYWxsIHRocm91Z2ggKi8KKwkJZGVmYXVsdDoKIAkJCXByaW50aygiZGlnZXN0ICgpIGZhaWxlZCByZXQ9JWRcbiIsIHJldCk7CiAJCQlrZnJlZShoYXNoX2J1ZmYpOwogCQkJZ290byBvdXQ7CiAJCX0KIAotCQloZXhkdW1wKHJlc3VsdCwgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKTsKKwkJaGV4ZHVtcChyZXN1bHQsIGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHRmbSkpOwogCQlwcmludGsoIiVzXG4iLAogCQkgICAgICAgbWVtY21wKHJlc3VsdCwgdGVtcGxhdGVbaV0uZGlnZXN0LAotCQkJICAgICAgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CisJCQkgICAgICBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CiAJCSAgICAgICAiZmFpbCIgOiAicGFzcyIpOwogCQlrZnJlZShoYXNoX2J1ZmYpOwogCX0KQEAgLTE4Nyw4ICsyMDMsOSBAQAogCQkJfQogCiAJCQlpZiAodGVtcGxhdGVbaV0ua3NpemUpIHsKLQkJCQlyZXQgPSBjcnlwdG9faGFzaF9zZXRrZXkodGZtLCB0ZW1wbGF0ZVtpXS5rZXksCi0JCQkJCQkJIHRlbXBsYXRlW2ldLmtzaXplKTsKKwkJCQljcnlwdG9fYWhhc2hfY2xlYXJfZmxhZ3ModGZtLCB+MCk7CisJCQkJcmV0ID0gY3J5cHRvX2FoYXNoX3NldGtleSh0Zm0sIHRlbXBsYXRlW2ldLmtleSwKKwkJCQkJCQkgIHRlbXBsYXRlW2ldLmtzaXplKTsKIAogCQkJCWlmIChyZXQpIHsKIAkJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgcmV0PSVkXG4iLCByZXQpOwpAQCAtMTk2LDI5ICsyMTMsNDQgQEAKIAkJCQl9CiAJCQl9CiAKLQkJCXJldCA9IGNyeXB0b19oYXNoX2RpZ2VzdCgmZGVzYywgc2csIHRlbXBsYXRlW2ldLnBzaXplLAotCQkJCQkJIHJlc3VsdCk7Ci0JCQlpZiAocmV0KSB7CisJCQlhaGFzaF9yZXF1ZXN0X3NldF9jcnlwdChyZXEsIHNnLCByZXN1bHQsCisJCQkJCQl0ZW1wbGF0ZVtpXS5wc2l6ZSk7CisJCQlyZXQgPSBjcnlwdG9fYWhhc2hfZGlnZXN0KHJlcSk7CisJCQlzd2l0Y2ggKHJldCkgeworCQkJY2FzZSAwOgorCQkJCWJyZWFrOworCQkJY2FzZSAtRUlOUFJPR1JFU1M6CisJCQljYXNlIC1FQlVTWToKKwkJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoCisJCQkJCSZ0cmVzdWx0LmNvbXBsZXRpb24pOworCQkJCWlmICghcmV0ICYmICEocmV0ID0gdHJlc3VsdC5lcnIpKSB7CisJCQkJCUlOSVRfQ09NUExFVElPTih0cmVzdWx0LmNvbXBsZXRpb24pOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJLyogZmFsbCB0aHJvdWdoICovCisJCQlkZWZhdWx0OgogCQkJCXByaW50aygiZGlnZXN0ICgpIGZhaWxlZCByZXQ9JWRcbiIsIHJldCk7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCWhleGR1bXAocmVzdWx0LCBjcnlwdG9faGFzaF9kaWdlc3RzaXplKHRmbSkpOworCQkJaGV4ZHVtcChyZXN1bHQsIGNyeXB0b19haGFzaF9kaWdlc3RzaXplKHRmbSkpOwogCQkJcHJpbnRrKCIlc1xuIiwKIAkJCSAgICAgICBtZW1jbXAocmVzdWx0LCB0ZW1wbGF0ZVtpXS5kaWdlc3QsCi0JCQkJICAgICAgY3J5cHRvX2hhc2hfZGlnZXN0c2l6ZSh0Zm0pKSA/CisJCQkJICAgICAgY3J5cHRvX2FoYXNoX2RpZ2VzdHNpemUodGZtKSkgPwogCQkJICAgICAgICJmYWlsIiA6ICJwYXNzIik7CiAJCX0KIAl9CiAKIG91dDoKLQljcnlwdG9fZnJlZV9oYXNoKHRmbSk7CisJYWhhc2hfcmVxdWVzdF9mcmVlKHJlcSk7CitvdXRfbm9yZXE6CisJY3J5cHRvX2ZyZWVfYWhhc2godGZtKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdF9hZWFkKGNoYXIgKmFsZ28sIGludCBlbmMsIHN0cnVjdCBhZWFkX3Rlc3R2ZWMgKnRlbXBsYXRlLAogCQkgICAgICB1bnNpZ25lZCBpbnQgdGNvdW50KQogewotCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIHRlbXA7CisJdW5zaWduZWQgaW50IHJldCwgaSwgaiwgaywgbiwgdGVtcDsKIAljaGFyICpxOwogCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtOwogCWNoYXIgKmtleTsKQEAgLTM0NCwxMyArMzc2LDEyIEBACiAJCQkJZ290byBuZXh0X29uZTsKIAkJCX0KIAotCQkJcSA9IGttYXAoc2dfcGFnZSgmc2dbMF0pKSArIHNnWzBdLm9mZnNldDsKKwkJCXEgPSBpbnB1dDsKIAkJCWhleGR1bXAocSwgdGVtcGxhdGVbaV0ucmxlbik7CiAKIAkJCXByaW50ayhLRVJOX0lORk8gImVuYy9kZWM6ICVzXG4iLAogCQkJICAgICAgIG1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQsCiAJCQkJICAgICAgdGVtcGxhdGVbaV0ucmxlbikgPyAiZmFpbCIgOiAicGFzcyIpOwotCQkJa3VubWFwKHNnX3BhZ2UoJnNnWzBdKSk7CiBuZXh0X29uZToKIAkJCWlmICghdGVtcGxhdGVbaV0ua2V5KQogCQkJCWtmcmVlKGtleSk7CkBAIC0zNjAsNyArMzkxLDYgQEAKIAl9CiAKIAlwcmludGsoS0VSTl9JTkZPICJcbnRlc3RpbmcgJXMgJXMgYWNyb3NzIHBhZ2VzIChjaHVua2luZylcbiIsIGFsZ28sIGUpOwotCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJbWVtc2V0KGF4YnVmLCAwLCBYQlVGU0laRSk7CiAKIAlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IHRjb3VudDsgaSsrKSB7CkBAIC0zODgsNiArNDE4LDcgQEAKIAkJCQkJZ290byBvdXQ7CiAJCQl9CiAKKwkJCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJCQlzZ19pbml0X3RhYmxlKHNnLCB0ZW1wbGF0ZVtpXS5ucCk7CiAJCQlmb3IgKGsgPSAwLCB0ZW1wID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQltZW1jcHkoJnhidWZbSURYW2tdXSwKQEAgLTQ1MCw3ICs0ODEsNyBAQAogCiAJCQlmb3IgKGsgPSAwLCB0ZW1wID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQlwcmludGsoS0VSTl9JTkZPICJwYWdlICV1XG4iLCBrKTsKLQkJCQlxID0ga21hcChzZ19wYWdlKCZzZ1trXSkpICsgc2dba10ub2Zmc2V0OworCQkJCXEgPSAmYXhidWZbSURYW2tdXTsKIAkJCQloZXhkdW1wKHEsIHRlbXBsYXRlW2ldLnRhcFtrXSk7CiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXNcbiIsCiAJCQkJICAgICAgIG1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQgKyB0ZW1wLApAQCAtNDU5LDggKzQ5MCwxNSBAQAogCQkJCQkgICAgICAgMCA6IGF1dGhzaXplKSkgPwogCQkJCSAgICAgICAiZmFpbCIgOiAicGFzcyIpOwogCisJCQkJZm9yIChuID0gMDsgcVt0ZW1wbGF0ZVtpXS50YXBba10gKyBuXTsgbisrKQorCQkJCQk7CisJCQkJaWYgKG4pIHsKKwkJCQkJcHJpbnRrKCJSZXN1bHQgYnVmZmVyIGNvcnJ1cHRpb24gJXUgIgorCQkJCQkgICAgICAgImJ5dGVzOlxuIiwgbik7CisJCQkJCWhleGR1bXAoJnFbdGVtcGxhdGVbaV0udGFwW2tdXSwgbik7CisJCQkJfQorCiAJCQkJdGVtcCArPSB0ZW1wbGF0ZVtpXS50YXBba107Ci0JCQkJa3VubWFwKHNnX3BhZ2UoJnNnW2tdKSk7CiAJCQl9CiAJCX0KIAl9CkBAIC00NzMsNyArNTExLDcgQEAKIHN0YXRpYyB2b2lkIHRlc3RfY2lwaGVyKGNoYXIgKmFsZ28sIGludCBlbmMsCiAJCQlzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgKnRlbXBsYXRlLCB1bnNpZ25lZCBpbnQgdGNvdW50KQogewotCXVuc2lnbmVkIGludCByZXQsIGksIGosIGssIHRlbXA7CisJdW5zaWduZWQgaW50IHJldCwgaSwgaiwgaywgbiwgdGVtcDsKIAljaGFyICpxOwogCXN0cnVjdCBjcnlwdG9fYWJsa2NpcGhlciAqdGZtOwogCXN0cnVjdCBhYmxrY2lwaGVyX3JlcXVlc3QgKnJlcTsKQEAgLTU2OSwyOSArNjA3LDIxIEBACiAJCQkJZ290byBvdXQ7CiAJCQl9CiAKLQkJCXEgPSBrbWFwKHNnX3BhZ2UoJnNnWzBdKSkgKyBzZ1swXS5vZmZzZXQ7CisJCQlxID0gZGF0YTsKIAkJCWhleGR1bXAocSwgdGVtcGxhdGVbaV0ucmxlbik7CiAKIAkJCXByaW50aygiJXNcbiIsCiAJCQkgICAgICAgbWVtY21wKHEsIHRlbXBsYXRlW2ldLnJlc3VsdCwKIAkJCQkgICAgICB0ZW1wbGF0ZVtpXS5ybGVuKSA/ICJmYWlsIiA6ICJwYXNzIik7Ci0JCQlrdW5tYXAoc2dfcGFnZSgmc2dbMF0pKTsKIAkJfQogCQlrZnJlZShkYXRhKTsKIAl9CiAKIAlwcmludGsoIlxudGVzdGluZyAlcyAlcyBhY3Jvc3MgcGFnZXMgKGNodW5raW5nKVxuIiwgYWxnbywgZSk7Ci0JbWVtc2V0KHhidWYsIDAsIFhCVUZTSVpFKTsKIAogCWogPSAwOwogCWZvciAoaSA9IDA7IGkgPCB0Y291bnQ7IGkrKykgewogCi0JCWRhdGEgPSBremFsbG9jKHRlbXBsYXRlW2ldLmlsZW4sIEdGUF9LRVJORUwpOwotCQlpZiAoIWRhdGEpCi0JCQljb250aW51ZTsKLQotCQltZW1jcHkoZGF0YSwgdGVtcGxhdGVbaV0uaW5wdXQsIHRlbXBsYXRlW2ldLmlsZW4pOwotCiAJCWlmICh0ZW1wbGF0ZVtpXS5pdikKIAkJCW1lbWNweShpdiwgdGVtcGxhdGVbaV0uaXYsIE1BWF9JVkxFTik7CiAJCWVsc2UKQEAgLTYwMiw2ICs2MzIsNyBAQAogCQkJcHJpbnRrKCJ0ZXN0ICV1ICglZCBiaXQga2V5KTpcbiIsCiAJCQlqLCB0ZW1wbGF0ZVtpXS5rbGVuICogOCk7CiAKKwkJCW1lbXNldCh4YnVmLCAwLCBYQlVGU0laRSk7CiAJCQljcnlwdG9fYWJsa2NpcGhlcl9jbGVhcl9mbGFncyh0Zm0sIH4wKTsKIAkJCWlmICh0ZW1wbGF0ZVtpXS53aykKIAkJCQljcnlwdG9fYWJsa2NpcGhlcl9zZXRfZmxhZ3MoCkBAIC02MTMsMTAgKzY0NCw4IEBACiAJCQkJcHJpbnRrKCJzZXRrZXkoKSBmYWlsZWQgZmxhZ3M9JXhcbiIsCiAJCQkJCQljcnlwdG9fYWJsa2NpcGhlcl9nZXRfZmxhZ3ModGZtKSk7CiAKLQkJCQlpZiAoIXRlbXBsYXRlW2ldLmZhaWwpIHsKLQkJCQkJa2ZyZWUoZGF0YSk7CisJCQkJaWYgKCF0ZW1wbGF0ZVtpXS5mYWlsKQogCQkJCQlnb3RvIG91dDsKLQkJCQl9CiAJCQl9CiAKIAkJCXRlbXAgPSAwOwpAQCAtNjU3LDE0ICs2ODYsMjEgQEAKIAkJCXRlbXAgPSAwOwogCQkJZm9yIChrID0gMDsgayA8IHRlbXBsYXRlW2ldLm5wOyBrKyspIHsKIAkJCQlwcmludGsoInBhZ2UgJXVcbiIsIGspOwotCQkJCXEgPSBrbWFwKHNnX3BhZ2UoJnNnW2tdKSkgKyBzZ1trXS5vZmZzZXQ7CisJCQkJcSA9ICZ4YnVmW0lEWFtrXV07CiAJCQkJaGV4ZHVtcChxLCB0ZW1wbGF0ZVtpXS50YXBba10pOwogCQkJCXByaW50aygiJXNcbiIsCiAJCQkJCW1lbWNtcChxLCB0ZW1wbGF0ZVtpXS5yZXN1bHQgKyB0ZW1wLAogCQkJCQkJdGVtcGxhdGVbaV0udGFwW2tdKSA/ICJmYWlsIiA6CiAJCQkJCSJwYXNzIik7CisKKwkJCQlmb3IgKG4gPSAwOyBxW3RlbXBsYXRlW2ldLnRhcFtrXSArIG5dOyBuKyspCisJCQkJCTsKKwkJCQlpZiAobikgeworCQkJCQlwcmludGsoIlJlc3VsdCBidWZmZXIgY29ycnVwdGlvbiAldSAiCisJCQkJCSAgICAgICAiYnl0ZXM6XG4iLCBuKTsKKwkJCQkJaGV4ZHVtcCgmcVt0ZW1wbGF0ZVtpXS50YXBba11dLCBuKTsKKwkJCQl9CiAJCQkJdGVtcCArPSB0ZW1wbGF0ZVtpXS50YXBba107Ci0JCQkJa3VubWFwKHNnX3BhZ2UoJnNnW2tdKSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0xMTgwLDYgKzEyMTYsMTQgQEAKIAkJdGVzdF9jaXBoZXIoImVjYihkZXMzX2VkZSkiLCBERUNSWVBULCBkZXMzX2VkZV9kZWNfdHZfdGVtcGxhdGUsCiAJCQkgICAgREVTM19FREVfREVDX1RFU1RfVkVDVE9SUyk7CiAKKwkJdGVzdF9jaXBoZXIoImNiYyhkZXMzX2VkZSkiLCBFTkNSWVBULAorCQkJICAgIGRlczNfZWRlX2NiY19lbmNfdHZfdGVtcGxhdGUsCisJCQkgICAgREVTM19FREVfQ0JDX0VOQ19URVNUX1ZFQ1RPUlMpOworCisJCXRlc3RfY2lwaGVyKCJjYmMoZGVzM19lZGUpIiwgREVDUllQVCwKKwkJCSAgICBkZXMzX2VkZV9jYmNfZGVjX3R2X3RlbXBsYXRlLAorCQkJICAgIERFUzNfRURFX0NCQ19ERUNfVEVTVF9WRUNUT1JTKTsKKwogCQl0ZXN0X2hhc2goIm1kNCIsIG1kNF90dl90ZW1wbGF0ZSwgTUQ0X1RFU1RfVkVDVE9SUyk7CiAKIAkJdGVzdF9oYXNoKCJzaGEyMjQiLCBzaGEyMjRfdHZfdGVtcGxhdGUsIFNIQTIyNF9URVNUX1ZFQ1RPUlMpOwpAQCAtMTM5MCw2ICsxNDM0LDE0IEBACiAJCQkgICAgREVTM19FREVfRU5DX1RFU1RfVkVDVE9SUyk7CiAJCXRlc3RfY2lwaGVyKCJlY2IoZGVzM19lZGUpIiwgREVDUllQVCwgZGVzM19lZGVfZGVjX3R2X3RlbXBsYXRlLAogCQkJICAgIERFUzNfRURFX0RFQ19URVNUX1ZFQ1RPUlMpOworCisJCXRlc3RfY2lwaGVyKCJjYmMoZGVzM19lZGUpIiwgRU5DUllQVCwKKwkJCSAgICBkZXMzX2VkZV9jYmNfZW5jX3R2X3RlbXBsYXRlLAorCQkJICAgIERFUzNfRURFX0NCQ19FTkNfVEVTVF9WRUNUT1JTKTsKKworCQl0ZXN0X2NpcGhlcigiY2JjKGRlczNfZWRlKSIsIERFQ1JZUFQsCisJCQkgICAgZGVzM19lZGVfY2JjX2RlY190dl90ZW1wbGF0ZSwKKwkJCSAgICBERVMzX0VERV9DQkNfREVDX1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwogCiAJY2FzZSA1OgpAQCAtMTU1OCw3ICsxNjEwLDcgQEAKIAljYXNlIDI5OgogCQl0ZXN0X2hhc2goInRncjEyOCIsIHRncjEyOF90dl90ZW1wbGF0ZSwgVEdSMTI4X1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwotCQkKKwogCWNhc2UgMzA6CiAJCXRlc3RfY2lwaGVyKCJlY2IoeGV0YSkiLCBFTkNSWVBULCB4ZXRhX2VuY190dl90ZW1wbGF0ZSwKIAkJCSAgICBYRVRBX0VOQ19URVNUX1ZFQ1RPUlMpOwpAQCAtMTYyMyw2ICsxNjc1LDIyIEBACiAJCQkgICAgQ1RTX01PREVfREVDX1RFU1RfVkVDVE9SUyk7CiAJCWJyZWFrOwogCisgICAgICAgIGNhc2UgMzk6CisJCXRlc3RfaGFzaCgicm1kMTI4Iiwgcm1kMTI4X3R2X3RlbXBsYXRlLCBSTUQxMjhfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKyAgICAgICAgY2FzZSA0MDoKKwkJdGVzdF9oYXNoKCJybWQxNjAiLCBybWQxNjBfdHZfdGVtcGxhdGUsIFJNRDE2MF9URVNUX1ZFQ1RPUlMpOworCQlicmVhazsKKworCWNhc2UgNDE6CisJCXRlc3RfaGFzaCgicm1kMjU2Iiwgcm1kMjU2X3R2X3RlbXBsYXRlLCBSTUQyNTZfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKwljYXNlIDQyOgorCQl0ZXN0X2hhc2goInJtZDMyMCIsIHJtZDMyMF90dl90ZW1wbGF0ZSwgUk1EMzIwX1RFU1RfVkVDVE9SUyk7CisJCWJyZWFrOworCiAJY2FzZSAxMDA6CiAJCXRlc3RfaGFzaCgiaG1hYyhtZDUpIiwgaG1hY19tZDVfdHZfdGVtcGxhdGUsCiAJCQkgIEhNQUNfTUQ1X1RFU1RfVkVDVE9SUyk7CkBAIC0xNjU4LDYgKzE3MjYsMTYgQEAKIAkJCSAgWENCQ19BRVNfVEVTVF9WRUNUT1JTKTsKIAkJYnJlYWs7CiAKKwljYXNlIDEwNzoKKwkJdGVzdF9oYXNoKCJobWFjKHJtZDEyOCkiLCBobWFjX3JtZDEyOF90dl90ZW1wbGF0ZSwKKwkJCSAgSE1BQ19STUQxMjhfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKKwljYXNlIDEwODoKKwkJdGVzdF9oYXNoKCJobWFjKHJtZDE2MCkiLCBobWFjX3JtZDE2MF90dl90ZW1wbGF0ZSwKKwkJCSAgSE1BQ19STUQxNjBfVEVTVF9WRUNUT1JTKTsKKwkJYnJlYWs7CisKIAljYXNlIDIwMDoKIAkJdGVzdF9jaXBoZXJfc3BlZWQoImVjYihhZXMpIiwgRU5DUllQVCwgc2VjLCBOVUxMLCAwLAogCQkJCXNwZWVkX3RlbXBsYXRlXzE2XzI0XzMyKTsKQEAgLTE3OTYsNiArMTg3NCwyMiBAQAogCQl0ZXN0X2hhc2hfc3BlZWQoInNoYTIyNCIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKIAkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7CiAKKwljYXNlIDMxNDoKKwkJdGVzdF9oYXNoX3NwZWVkKCJybWQxMjgiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CisJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOworCisJY2FzZSAzMTU6CisJCXRlc3RfaGFzaF9zcGVlZCgicm1kMTYwIiwgc2VjLCBnZW5lcmljX2hhc2hfc3BlZWRfdGVtcGxhdGUpOworCQlpZiAobW9kZSA+IDMwMCAmJiBtb2RlIDwgNDAwKSBicmVhazsKKworCWNhc2UgMzE2OgorCQl0ZXN0X2hhc2hfc3BlZWQoInJtZDI1NiIsIHNlYywgZ2VuZXJpY19oYXNoX3NwZWVkX3RlbXBsYXRlKTsKKwkJaWYgKG1vZGUgPiAzMDAgJiYgbW9kZSA8IDQwMCkgYnJlYWs7CisKKwljYXNlIDMxNzoKKwkJdGVzdF9oYXNoX3NwZWVkKCJybWQzMjAiLCBzZWMsIGdlbmVyaWNfaGFzaF9zcGVlZF90ZW1wbGF0ZSk7CisJCWlmIChtb2RlID4gMzAwICYmIG1vZGUgPCA0MDApIGJyZWFrOworCiAJY2FzZSAzOTk6CiAJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vdGNyeXB0LmggYi9jcnlwdG8vdGNyeXB0LmgKaW5kZXggNDdiYzBlYy4uODAxZTBjMiAxMDA2NDQKLS0tIGEvY3J5cHRvL3RjcnlwdC5oCisrKyBiL2NyeXB0by90Y3J5cHQuaApAQCAtMTMsMTIgKzEzLDYgQEAKICAqIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikKICAqIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqIDIwMDctMTEtMTMgQWRkZWQgR0NNIHRlc3RzCi0gKiAyMDA3LTExLTEzIEFkZGVkIEFFQUQgc3VwcG9ydAotICogMjAwNi0xMi0wNyBBZGRlZCBTSEEzODQgSE1BQyBhbmQgU0hBNTEyIEhNQUMgdGVzdHMKLSAqIDIwMDQtMDgtMDkgQ2lwaGVyIHNwZWVkIHRlc3RzIGJ5IFJleWsgRmxvZXRlciA8cmV5a0B2YW50cm9uaXgubmV0PgotICogMjAwMy0wOS0xNCBDaGFuZ2VzIGJ5IEthcnRpa2V5IE1haGVuZHJhIEJoYXR0Ci0gKgogICovCiAjaWZuZGVmIF9DUllQVE9fVENSWVBUX0gKICNkZWZpbmUgX0NSWVBUT19UQ1JZUFRfSApAQCAtMTY4LDYgKzE2MiwyNzEgQEAKIAkJLmRpZ2VzdAk9ICJceDU3XHhlZFx4ZjRceGEyXHgyYlx4ZTNceGM5XHg1NSIKIAkJCSAgIlx4YWNceDQ5XHhkYVx4MmVceDIxXHgwN1x4YjZceDdhIiwKIAl9CisKK307CisKKy8qCisgKiBSSVBFTUQtMTI4IHRlc3QgdmVjdG9ycyBmcm9tIElTTy9JRUMgMTAxMTgtMzoyMDA0KEUpCisgKi8KKyNkZWZpbmUgUk1EMTI4X1RFU1RfVkVDVE9SUyAgICAgMTAKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMTI4X3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4Y2RceGYyXHg2Mlx4MTNceGExXHg1MFx4ZGNceDNlIgorCQkJICAiXHhjYlx4NjFceDBmXHgxOFx4ZjZceGIzXHg4Ylx4NDYiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhIiwKKwkJLnBzaXplCT0gMSwKKwkJLmRpZ2VzdAk9ICJceDg2XHhiZVx4N2FceGZhXHgzM1x4OWRceDBmXHhjNyIKKwkJCSAgIlx4Y2ZceGM3XHg4NVx4ZTdceDJmXHg1N1x4OGRceDMzIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGMxXHg0YVx4MTJceDE5XHg5Y1x4NjZceGU0XHhiYSIKKwkJCSAgIlx4ODRceDYzXHg2Ylx4MGZceDY5XHgxNFx4NGNceDc3IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDllXHgzMlx4N2JceDNkXHg2ZVx4NTJceDMwXHg2MiIKKwkJCSAgIlx4YWZceGMxXHgxM1x4MmRceDdkXHhmOVx4ZDFceGI4IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorCQkucHNpemUJPSAyNiwKKwkJLmRpZ2VzdAk9ICJceGZkXHgyYVx4YTZceDA3XHhmN1x4MWRceGM4XHhmNSIKKwkJCSAgIlx4MTBceDcxXHg0OVx4MjJceGIzXHg3MVx4ODNceDRlIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceGQxXHhlOVx4NTlceGViXHgxN1x4OWNceDkxXHgxZiIKKwkJCSAgIlx4YWVceGE0XHg2Mlx4NGNceDYwXHhjNVx4YzdceDAyIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDNmXHg0NVx4ZWZceDE5XHg0N1x4MzJceGMyXHhkYiIKKwkJCSAgIlx4YjJceGM0XHhhMlx4YzdceDY5XHg3OVx4NWZceGEzIiwKKyAgICAgICAgfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWoiCisJCQkgICAgICJoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiwKKwkJLnBzaXplCT0gNTYsCisJCS5kaWdlc3QJPSAiXHhhMVx4YWFceDA2XHg4OVx4ZDBceGZhXHhmYVx4MmQiCisJCQkgICJceGRjXHgyMlx4ZThceDhiXHg0OVx4MTNceDNhXHgwNiIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGJjZGVmZ2hpY2RlZmdoaWpkZWZnaGlqa2VmZ2hpamtsZmdoaSIKKwkJCSAgICAgImprbG1naGlqa2xtbmhpamtsbW5vaWprbG1ub3Bqa2xtbm9wcWtsbW5vcHFyIgorCQkJICAgICAibG1ub3BxcnNtbm9wcXJzdG5vcHFyc3R1IiwKKwkJLnBzaXplCT0gMTEyLAorCQkuZGlnZXN0CT0gIlx4ZDRceGVjXHhjOVx4MTNceGUxXHhkZlx4NzdceDZiIgorCQkJICAiXHhmNFx4OGRceGU5XHhkNVx4NWJceDFmXHgyNVx4NDYiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqayIsCisJCS5wc2l6ZQk9IDMyLAorCQkuZGlnZXN0CT0gIlx4MTNceGZjXHgxM1x4ZThceGVmXHhmZlx4MzRceDdkIgorCQkJICAiXHhlMVx4OTNceGZmXHg0Nlx4ZGJceGFjXHhjZlx4ZDQiLAorCX0KK307CisKKy8qCisgKiBSSVBFTUQtMTYwIHRlc3QgdmVjdG9ycyBmcm9tIElTTy9JRUMgMTAxMTgtMzoyMDA0KEUpCisgKi8KKyNkZWZpbmUgUk1EMTYwX1RFU1RfVkVDVE9SUyAgICAgMTAKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMTYwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4OWNceDExXHg4NVx4YTVceGM1XHhlOVx4ZmNceDU0XHg2MVx4MjgiCisJCQkgICJceDA4XHg5N1x4N2VceGU4XHhmNVx4NDhceGIyXHgyNVx4OGRceDMxIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYSIsCisJCS5wc2l6ZQk9IDEsCisJCS5kaWdlc3QJPSAiXHgwYlx4ZGNceDlkXHgyZFx4MjVceDZiXHgzZVx4ZTlceGRhXHhhZSIKKwkJCSAgIlx4MzRceDdiXHhlNlx4ZjRceGRjXHg4M1x4NWFceDQ2XHg3Zlx4ZmUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmMiLAorCQkucHNpemUJPSAzLAorCQkuZGlnZXN0CT0gIlx4OGVceGIyXHgwOFx4ZjdceGUwXHg1ZFx4OThceDdhXHg5Ylx4MDQiCisJCQkgICJceDRhXHg4ZVx4OThceGM2XHhiMFx4ODdceGYxXHg1YVx4MGJceGZjIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDVkXHgwNlx4ODlceGVmXHg0OVx4ZDJceGZhXHhlNVx4NzJceGI4IgorCQkJICAiXHg4MVx4YjFceDIzXHhhOFx4NWZceGZhXHgyMVx4NTlceDVmXHgzNiIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwKKwkJLnBzaXplCT0gMjYsCisJCS5kaWdlc3QJPSAiXHhmN1x4MWNceDI3XHgxMFx4OWNceDY5XHgyY1x4MWJceDU2XHhiYiIKKwkJCSAgIlx4ZGNceGViXHg1Ylx4OWRceDI4XHg2NVx4YjNceDcwXHg4ZFx4YmMiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlIgorCQkJICAgICAiZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSIsCisJCS5wc2l6ZQk9IDYyLAorCQkuZGlnZXN0CT0gIlx4YjBceGUyXHgwYlx4NmVceDMxXHgxNlx4NjRceDAyXHg4Nlx4ZWQiCisJCQkgICJceDNhXHg4N1x4YTVceDcxXHgzMFx4NzlceGIyXHgxZlx4NTFceDg5IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDliXHg3NVx4MmVceDQ1XHg1N1x4M2RceDRiXHgzOVx4ZjRceGRiIgorCQkJICAiXHhkM1x4MzJceDNjXHhhYlx4ODJceGJmXHg2M1x4MzJceDZiXHhmYiIsCisgICAgICAgIH0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqIgorCQkJICAgICAiaGlqa2lqa2xqa2xta2xtbmxtbm9tbm9wbm9wcSIsCisJCS5wc2l6ZQk9IDU2LAorCQkuZGlnZXN0CT0gIlx4MTJceGEwXHg1M1x4MzhceDRhXHg5Y1x4MGNceDg4XHhlNFx4MDUiCisJCQkgICJceGEwXHg2Y1x4MjdceGRjXHhmNFx4OWFceGRhXHg2Mlx4ZWJceDJiIiwKKwkJLm5wCT0gMiwKKwkJLnRhcAk9IHsgMjgsIDI4IH0sCisJfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RlZmdoYmNkZWZnaGljZGVmZ2hpamRlZmdoaWprZWZnaGlqa2xmZ2hpIgorCQkJICAgICAiamtsbWdoaWprbG1uaGlqa2xtbm9pamtsbW5vcGprbG1ub3Bxa2xtbm9wcXIiCisJCQkgICAgICJsbW5vcHFyc21ub3BxcnN0bm9wcXJzdHUiLAorCQkucHNpemUJPSAxMTIsCisJCS5kaWdlc3QJPSAiXHg2Zlx4M2ZceGEzXHg5Ylx4NmJceDUwXHgzY1x4MzhceDRmXHg5MSIKKwkJCSAgIlx4OWFceDQ5XHhhN1x4YWFceDVjXHgyY1x4MDhceGJkXHhmYlx4NDUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkYmNkZWNkZWZkZWZnZWZnaGZnaGlnaGlqaGlqayIsCisJCS5wc2l6ZQk9IDMyLAorCQkuZGlnZXN0CT0gIlx4OTRceGMyXHg2NFx4MTFceDU0XHgwNFx4ZTZceDMzXHg3OVx4MGQiCisJCQkgICJceGZjXHhjOFx4N2JceDU4XHg3ZFx4MzZceDc3XHgwNlx4N2RceDlmIiwKKwl9Cit9OworCisvKgorICogUklQRU1ELTI1NiB0ZXN0IHZlY3RvcnMKKyAqLworI2RlZmluZSBSTUQyNTZfVEVTVF9WRUNUT1JTICAgICA4CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIHJtZDI1Nl90dl90ZW1wbGF0ZVtdID0geworCXsKKwkJLmRpZ2VzdAk9ICJceDAyXHhiYVx4NGNceDRlXHg1Zlx4OGVceGNkXHgxOCIKKwkJCSAgIlx4NzdceGZjXHg1Mlx4ZDZceDRkXHgzMFx4ZTNceDdhIgorCQkJICAiXHgyZFx4OTdceDc0XHhmYlx4MWVceDVkXHgwMlx4NjMiCisJCQkgICJceDgwXHhhZVx4MDFceDY4XHhlM1x4YzVceDUyXHgyZCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gImEiLAorCQkucHNpemUJPSAxLAorCQkuZGlnZXN0CT0gIlx4ZjlceDMzXHgzZVx4NDVceGQ4XHg1N1x4ZjVceGQ5IgorCQkJICAiXHgwYVx4OTFceGJhXHhiN1x4MGFceDFlXHhiYVx4MGMiCisJCQkgICJceGZiXHgxYlx4ZTRceGIwXHg3OFx4M2NceDlhXHhjZiIKKwkJCSAgIlx4Y2RceDg4XHgzYVx4OTFceDM0XHg2OVx4MjlceDI1IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGFmXHhiZFx4NmVceDIyXHg4Ylx4OWRceDhjXHhiYiIKKwkJCSAgIlx4Y2VceGY1XHhjYVx4MmRceDAzXHhlNlx4ZGJceGExIgorCQkJICAiXHgwYVx4YzBceGJjXHg3ZFx4Y2JceGU0XHg2OFx4MGUiCisJCQkgICJceDFlXHg0Mlx4ZDJceGU5XHg3NVx4NDVceDliXHg2NSIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIm1lc3NhZ2UgZGlnZXN0IiwKKwkJLnBzaXplCT0gMTQsCisJCS5kaWdlc3QJPSAiXHg4N1x4ZTlceDcxXHg3NVx4OWFceDFjXHhlNFx4N2EiCisJCQkgICJceDUxXHg0ZFx4NWNceDkxXHg0Y1x4MzlceDJjXHg5MCIKKwkJCSAgIlx4MThceGM3XHhjNFx4NmJceGMxXHg0NFx4NjVceDU1IgorCQkJICAiXHg0YVx4ZmNceGRmXHg1NFx4YTVceDA3XHgwY1x4MGUiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIsCisJCS5wc2l6ZQk9IDI2LAorCQkuZGlnZXN0CT0gIlx4NjRceDlkXHgzMFx4MzRceDc1XHgxZVx4YTJceDE2IgorCQkJICAiXHg3N1x4NmJceGY5XHhhMVx4OGFceGNjXHg4MVx4YmMiCisJCQkgICJceDc4XHg5Nlx4MTFceDhhXHg1MVx4OTdceDk2XHg4NyIKKwkJCSAgIlx4ODJceGRkXHgxZlx4ZDlceDdkXHg4ZFx4NTFceDMzIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceDU3XHg0MFx4YTRceDA4XHhhY1x4MTZceGI3XHgyMCIKKwkJCSAgIlx4YjhceDQ0XHgyNFx4YWVceDkzXHgxY1x4YmJceDFmIgorCQkJICAiXHhlM1x4NjNceGQxXHhkMFx4YmZceDQwXHgxN1x4ZjEiCisJCQkgICJceGE4XHg5Zlx4N2VceGE2XHhkZVx4NzdceGEwXHhiOCIsCisJfSwgeworCQkucGxhaW50ZXh0ID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiCisJCQkgICAgICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwIiwKKwkJLnBzaXplCT0gODAsCisJCS5kaWdlc3QJPSAiXHgwNlx4ZmRceGNjXHg3YVx4NDBceDk1XHg0OFx4YWEiCisJCQkgICJceGY5XHgxM1x4NjhceGMwXHg2YVx4NjJceDc1XHhiNSIKKwkJCSAgIlx4NTNceGUzXHhmMFx4OTlceGJmXHgwZVx4YTRceGVkIgorCQkJICAiXHhmZFx4NjdceDc4XHhkZlx4ODlceGE4XHg5MFx4ZGQiLAorICAgICAgICB9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpaiIKKwkJCSAgICAgImhpamtpamtsamtsbWtsbW5sbW5vbW5vcG5vcHEiLAorCQkucHNpemUJPSA1NiwKKwkJLmRpZ2VzdAk9ICJceDM4XHg0M1x4MDRceDU1XHg4M1x4YWFceGM2XHhjOCIKKwkJCSAgIlx4YzhceGQ5XHgxMlx4ODVceDczXHhlN1x4YTlceDgwIgorCQkJICAiXHg5YVx4ZmJceDJhXHgwZlx4MzRceGNjXHhjM1x4NmUiCisJCQkgICJceGE5XHhlN1x4MmZceDE2XHhmNlx4MzZceDhlXHgzZiIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0KK307CisKKy8qCisgKiBSSVBFTUQtMzIwIHRlc3QgdmVjdG9ycworICovCisjZGVmaW5lIFJNRDMyMF9URVNUX1ZFQ1RPUlMgICAgIDgKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgcm1kMzIwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkuZGlnZXN0CT0gIlx4MjJceGQ2XHg1ZFx4NTZceDYxXHg1M1x4NmNceGRjXHg3NVx4YzEiCisJCQkgICJceGZkXHhmNVx4YzZceGRlXHg3Ylx4NDFceGI5XHhmMlx4NzNceDI1IgorCQkJICAiXHhlYlx4YzZceDFlXHg4NVx4NTdceDE3XHg3ZFx4NzBceDVhXHgwZSIKKwkJCSAgIlx4YzhceDgwXHgxNVx4MWNceDNhXHgzMlx4YTBceDA4XHg5OVx4YjgiLAorCX0sIHsKKwkJLnBsYWludGV4dCA9ICJhIiwKKwkJLnBzaXplCT0gMSwKKwkJLmRpZ2VzdAk9ICJceGNlXHg3OFx4ODVceDA2XHgzOFx4ZjlceDI2XHg1OFx4YTVceGE1IgorCQkJICAiXHg4NVx4MDlceDc1XHg3OVx4OTJceDZkXHhkYVx4NjZceDdhXHg1NyIKKwkJCSAgIlx4MTZceDU2XHgyY1x4ZmNceGY2XHhmYlx4ZTdceDdmXHg2M1x4NTQiCisJCQkgICJceDJmXHg5OVx4YjBceDQ3XHgwNVx4ZDZceDk3XHgwZFx4ZmZceDVkIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjIiwKKwkJLnBzaXplCT0gMywKKwkJLmRpZ2VzdAk9ICJceGRlXHg0Y1x4MDFceGIzXHgwNVx4NGZceDg5XHgzMFx4YTdceDlkIgorCQkJICAiXHgwOVx4YWVceDczXHg4ZVx4OTJceDMwXHgxZVx4NWFceDE3XHgwOCIKKwkJCSAgIlx4NWJceGVmXHhmZFx4YzFceGI4XHhkMVx4MTZceDcxXHgzZVx4NzQiCisJCQkgICJceGY4XHgyZlx4YTlceDQyXHhkNlx4NGNceGRiXHhjNFx4NjhceDJkIiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAibWVzc2FnZSBkaWdlc3QiLAorCQkucHNpemUJPSAxNCwKKwkJLmRpZ2VzdAk9ICJceDNhXHg4ZVx4MjhceDUwXHgyZVx4ZDRceDVkXHg0Mlx4MmZceDY4IgorCQkJICAiXHg4NFx4NGZceDlkXHhkM1x4MTZceGU3XHhiOVx4ODVceDMzXHhmYSIKKwkJCSAgIlx4M2ZceDJhXHg5MVx4ZDJceDlmXHg4NFx4ZDRceDI1XHhjOFx4OGQiCisJCQkgICJceDZiXHg0ZVx4ZmZceDcyXHg3ZFx4ZjZceDZhXHg3Y1x4MDFceDk3IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiLAorCQkucHNpemUJPSAyNiwKKwkJLmRpZ2VzdAk9ICJceGNhXHhiZFx4YjFceDgxXHgwYlx4OTJceDQ3XHgwYVx4MjBceDkzIgorCQkJICAiXHhhYVx4NmJceGNlXHgwNVx4OTVceDJjXHgyOFx4MzRceDhjXHhmNCIKKwkJCSAgIlx4M2ZceGY2XHgwOFx4NDFceDk3XHg1MVx4NjZceGJiXHg0MFx4ZWQiCisJCQkgICJceDIzXHg0MFx4MDRceGI4XHg4Mlx4NDRceDYzXHhlNlx4YjBceDA5IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZSIKKwkJCSAgICAgImZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLAorCQkucHNpemUJPSA2MiwKKwkJLmRpZ2VzdAk9ICJceGVkXHg1NFx4NDlceDQwXHhjOFx4NmRceDY3XHhmMlx4NTBceGQyIgorCQkJICAiXHgzMlx4YzNceDBiXHg3Ylx4M2VceDU3XHg3MFx4ZTBceGM2XHgwYyIKKwkJCSAgIlx4OGNceGI5XHhhNFx4Y2FceGZlXHgzYlx4MTFceDM4XHg4YVx4ZjkiCisJCQkgICJceDkyXHgwZVx4MWJceDk5XHgyM1x4MGJceDg0XHgzY1x4ODZceGE0IiwKKwl9LCB7CisJCS5wbGFpbnRleHQgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MCIKKwkJCSAgICAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorCQkucHNpemUJPSA4MCwKKwkJLmRpZ2VzdAk9ICJceDU1XHg3OFx4ODhceGFmXHg1Zlx4NmRceDhlXHhkNlx4MmFceGI2IgorCQkJICAiXHg2OVx4NDVceGM2XHhkMlx4YTBceGE0XHg3ZVx4Y2RceDUzXHg0MSIKKwkJCSAgIlx4ZTlceDE1XHhlYlx4OGZceGVhXHgxZFx4MDVceDI0XHg5NVx4NWYiCisJCQkgICJceDgyXHg1ZFx4YzdceDE3XHhlNFx4YTBceDA4XHhhYlx4MmRceDQyIiwKKyAgICAgICAgfSwgeworCQkucGxhaW50ZXh0ID0gImFiY2RiY2RlY2RlZmRlZmdlZmdoZmdoaWdoaWoiCisJCQkgICAgICJoaWpraWprbGprbG1rbG1ubG1ub21ub3Bub3BxIiwKKwkJLnBzaXplCT0gNTYsCisJCS5kaWdlc3QJPSAiXHhkMFx4MzRceGE3XHg5NVx4MGNceGY3XHgyMlx4MDJceDFiXHhhNCIKKwkJCSAgIlx4YjhceDRkXHhmN1x4NjlceGE1XHhkZVx4MjBceDYwXHhlMlx4NTkiCisJCQkgICJceGRmXHg0Y1x4OWJceGI0XHhhNFx4MjZceDhjXHgwZVx4OTNceDViIgorCQkJICAiXHhiY1x4NzRceDcwXHhhOVx4NjlceGM5XHhkMFx4NzJceGExXHhhYyIsCisJCS5ucAk9IDIsCisJCS50YXAJPSB7IDI4LCAyOCB9LAorCX0KIH07CiAKIC8qCkBAIC04MTcsNiArMTA3NiwxNjggQEAKIH07CiAKIC8qCisgKiBITUFDLVJJUEVNRDEyOCB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMyMjg2CisgKi8KKyNkZWZpbmUgSE1BQ19STUQxMjhfVEVTVF9WRUNUT1JTCTcKKworc3RhdGljIHN0cnVjdCBoYXNoX3Rlc3R2ZWMgaG1hY19ybWQxMjhfdHZfdGVtcGxhdGVbXSA9IHsKKwl7CisJCS5rZXkJPSAiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYiIsCisJCS5rc2l6ZQk9IDE2LAorCQkucGxhaW50ZXh0ID0gIkhpIFRoZXJlIiwKKwkJLnBzaXplCT0gOCwKKwkJLmRpZ2VzdAk9ICJceGZiXHhmNlx4MWZceDk0XHg5Mlx4YWFceDRiXHhiZiIKKwkJCSAgIlx4ODFceGMxXHg3Mlx4ZThceDRlXHgwN1x4MzRceGRiIiwKKwl9LCB7CisJCS5rZXkJPSAiSmVmZSIsCisJCS5rc2l6ZQk9IDQsCisJCS5wbGFpbnRleHQgPSAid2hhdCBkbyB5YSB3YW50IGZvciBub3RoaW5nPyIsCisJCS5wc2l6ZQk9IDI4LAorCQkuZGlnZXN0CT0gIlx4ODdceDVmXHg4Mlx4ODhceDYyXHhiNlx4YjNceDM0IgorCQkJICAiXHhiNFx4MjdceGM1XHg1Zlx4OWZceDdmXHhmMFx4OWIiLAorCQkubnAJPSAyLAorCQkudGFwCT0geyAxNCwgMTQgfSwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIsCisJCS5rc2l6ZQk9IDE2LAorCQkucGxhaW50ZXh0ID0gIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIiwKKwkJLnBzaXplCT0gNTAsCisJCS5kaWdlc3QJPSAiXHgwOVx4ZjBceGIyXHg4NFx4NmRceDJmXHg1NFx4M2QiCisJCQkgICJceGEzXHg2M1x4Y2JceGVjXHg4ZFx4NjJceGEzXHg4ZCIsCisJfSwgeworCQkua2V5CT0gIlx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4IgorCQkJICAiXHgwOVx4MGFceDBiXHgwY1x4MGRceDBlXHgwZlx4MTAiCisJCQkgICJceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTkiLAorCQkua3NpemUJPSAyNSwKKwkJLnBsYWludGV4dCA9ICJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIsCisJCS5wc2l6ZQk9IDUwLAorCQkuZGlnZXN0CT0gIlx4YmRceGJiXHhkN1x4Y2ZceDAzXHhlNFx4NGJceDVhIgorCQkJICAiXHhhNlx4MGFceGY4XHgxNVx4YmVceDRkXHgyMlx4OTQiLAorCX0sIHsKKwkJLmtleQk9ICJceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjIiwKKwkJLmtzaXplCT0gMTYsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBXaXRoIFRydW5jYXRpb24iLAorCQkucHNpemUJPSAyMCwKKwkJLmRpZ2VzdAk9ICJceGU3XHg5OFx4MDhceGYyXHg0Ylx4MjVceGZkXHgwMyIKKwkJCSAgIlx4MWNceDE1XHg1Zlx4MGRceDU1XHgxZFx4OWFceDNhIiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IC0gSGFzaCBLZXkgRmlyc3QiLAorCQkucHNpemUJPSA1NCwKKwkJLmRpZ2VzdAk9ICJceGRjXHg3M1x4MjlceDI4XHhkZVx4OThceDEwXHg0YSIKKwkJCSAgIlx4MWZceDU5XHhkM1x4NzNceGMxXHg1MFx4YWNceGJiIiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IGFuZCBMYXJnZXIgVGhhbiBPbmUgIgorCQkJICAgIkJsb2NrLVNpemUgRGF0YSIsCisJCS5wc2l6ZQk9IDczLAorCQkuZGlnZXN0CT0gIlx4NWNceDZiXHhlY1x4OTZceDc5XHgzZVx4MTZceGQ0IgorCQkJICAiXHgwNlx4OTBceGMyXHgzN1x4NjNceDVmXHgzMFx4YzUiLAorCX0sCit9OworCisvKgorICogSE1BQy1SSVBFTUQxNjAgdGVzdCB2ZWN0b3JzIGZyb20gUkZDMjI4NgorICovCisjZGVmaW5lIEhNQUNfUk1EMTYwX1RFU1RfVkVDVE9SUwk3CisKK3N0YXRpYyBzdHJ1Y3QgaGFzaF90ZXN0dmVjIGhtYWNfcm1kMTYwX3R2X3RlbXBsYXRlW10gPSB7CisJeworCQkua2V5CT0gIlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiXHgwYlx4MGJceDBiIiwKKwkJLmtzaXplCT0gMjAsCisJCS5wbGFpbnRleHQgPSAiSGkgVGhlcmUiLAorCQkucHNpemUJPSA4LAorCQkuZGlnZXN0CT0gIlx4MjRceGNiXHg0Ylx4ZDZceDdkXHgyMFx4ZmNceDFhXHg1ZFx4MmUiCisJCQkgICJceGQ3XHg3M1x4MmRceGNjXHgzOVx4MzdceDdmXHgwYVx4NTZceDY4IiwKKwl9LCB7CisJCS5rZXkJPSAiSmVmZSIsCisJCS5rc2l6ZQk9IDQsCisJCS5wbGFpbnRleHQgPSAid2hhdCBkbyB5YSB3YW50IGZvciBub3RoaW5nPyIsCisJCS5wc2l6ZQk9IDI4LAorCQkuZGlnZXN0CT0gIlx4ZGRceGE2XHhjMFx4MjFceDNhXHg0OFx4NWFceDllXHgyNFx4ZjQiCisJCQkgICJceDc0XHgyMFx4NjRceGE3XHhmMFx4MzNceGI0XHgzY1x4NDBceDY5IiwKKwkJLm5wCT0gMiwKKwkJLnRhcAk9IHsgMTQsIDE0IH0sCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIiwKKwkJLmtzaXplCT0gMjAsCisJCS5wbGFpbnRleHQgPSAiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkIgorCQkJIlx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiCisJCQkiXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZCIKKwkJCSJceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGRceGRkXHhkZFx4ZGQiLAorCQkucHNpemUJPSA1MCwKKwkJLmRpZ2VzdAk9ICJceGIwXHhiMVx4MDVceDM2XHgwZFx4ZTdceDU5XHg5Nlx4MGFceGI0IgorCQkJICAiXHhmM1x4NTJceDk4XHhlMVx4MTZceGUyXHg5NVx4ZDhceGU3XHhjMSIsCisJfSwgeworCQkua2V5CT0gIlx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdceDA4IgorCQkJICAiXHgwOVx4MGFceDBiXHgwY1x4MGRceDBlXHgwZlx4MTAiCisJCQkgICJceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTkiLAorCQkua3NpemUJPSAyNSwKKwkJLnBsYWludGV4dCA9ICJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2QiCisJCQkiXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIKKwkJCSJceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkIgorCQkJIlx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZFx4Y2RceGNkXHhjZCIsCisJCS5wc2l6ZQk9IDUwLAorCQkuZGlnZXN0CT0gIlx4ZDVceGNhXHg4Nlx4MmZceDRkXHgyMVx4ZDVceGU2XHgxMFx4ZTEiCisJCQkgICJceDhiXHg0Y1x4ZjFceGJlXHhiOVx4N2FceDQzXHg2NVx4ZWNceGY0IiwKKwl9LCB7CisJCS5rZXkJPSAiXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGNceDBjXHgwY1x4MGMiLAorCQkua3NpemUJPSAyMCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFdpdGggVHJ1bmNhdGlvbiIsCisJCS5wc2l6ZQk9IDIwLAorCQkuZGlnZXN0CT0gIlx4NzZceDE5XHg2OVx4MzlceDc4XHhmOVx4MWRceDkwXHg1M1x4OWEiCisJCQkgICJceGU3XHg4Nlx4NTBceDBmXHhmM1x4ZDhceGUwXHg1MVx4OGVceDM5IiwKKwl9LCB7CisJCS5rZXkJPSAiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWEiLAorCQkua3NpemUJPSA4MCwKKwkJLnBsYWludGV4dCA9ICJUZXN0IFVzaW5nIExhcmdlciBUaGFuIEJsb2NrLVNpemUgS2V5IC0gSGFzaCBLZXkgRmlyc3QiLAorCQkucHNpemUJPSA1NCwKKwkJLmRpZ2VzdAk9ICJceDY0XHg2Nlx4Y2FceDA3XHhhY1x4NWVceGFjXHgyOVx4ZTFceGJkIgorCQkJICAiXHg1Mlx4M2VceDVhXHhkYVx4NzZceDA1XHhiN1x4OTFceGZkXHg4YiIsCisJfSwgeworCQkua2V5CT0gIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWEiCisJCQkiXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYSIKKwkJCSJceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhXHhhYVx4YWFceGFhIgorCQkJIlx4YWFceGFhIiwKKwkJLmtzaXplCT0gODAsCisJCS5wbGFpbnRleHQgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSBhbmQgTGFyZ2VyIFRoYW4gT25lICIKKwkJCSAgICJCbG9jay1TaXplIERhdGEiLAorCQkucHNpemUJPSA3MywKKwkJLmRpZ2VzdAk9ICJceDY5XHhlYVx4NjBceDc5XHg4ZFx4NzFceDYxXHg2Y1x4Y2VceDVmIgorCQkJICAiXHhkMFx4ODdceDFlXHgyM1x4NzVceDRjXHhkN1x4NWRceDVhXHgwYSIsCisJfSwKK307CisKKy8qCiAgKiBITUFDLVNIQTEgdGVzdCB2ZWN0b3JzIGZyb20gUkZDMjIwMgogICovCiAjZGVmaW5lIEhNQUNfU0hBMV9URVNUX1ZFQ1RPUlMJNwpAQCAtMTQ0Miw2ICsxODYzLDggQEAKICNkZWZpbmUgREVTX0NCQ19ERUNfVEVTVF9WRUNUT1JTCTQKICNkZWZpbmUgREVTM19FREVfRU5DX1RFU1RfVkVDVE9SUwkzCiAjZGVmaW5lIERFUzNfRURFX0RFQ19URVNUX1ZFQ1RPUlMJMworI2RlZmluZSBERVMzX0VERV9DQkNfRU5DX1RFU1RfVkVDVE9SUwkxCisjZGVmaW5lIERFUzNfRURFX0NCQ19ERUNfVEVTVF9WRUNUT1JTCTEKIAogc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXNfZW5jX3R2X3RlbXBsYXRlW10gPSB7CiAJeyAvKiBGcm9tIEFwcGxpZWQgQ3J5cHRvZ3JhcGh5ICovCkBAIC0xNjgwLDkgKzIxMDMsNiBAQAogCX0sCiB9OwogCi0vKgotICogV2UgcmVhbGx5IG5lZWQgc29tZSBtb3JlIHRlc3QgdmVjdG9ycywgZXNwZWNpYWxseSBmb3IgREVTMyBDQkMuCi0gKi8KIHN0YXRpYyBzdHJ1Y3QgY2lwaGVyX3Rlc3R2ZWMgZGVzM19lZGVfZW5jX3R2X3RlbXBsYXRlW10gPSB7CiAJeyAvKiBUaGVzZSBhcmUgZnJvbSBvcGVuc3NsICovCiAJCS5rZXkJPSAiXHgwMVx4MjNceDQ1XHg2N1x4ODlceGFiXHhjZFx4ZWYiCkBAIC0xNzQ1LDYgKzIxNjUsOTQgQEAKIAl9LAogfTsKIAorc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXMzX2VkZV9jYmNfZW5jX3R2X3RlbXBsYXRlW10gPSB7CisJeyAvKiBHZW5lcmF0ZWQgZnJvbSBvcGVuc3NsICovCisJCS5rZXkJPSAiXHhFOVx4QzBceEZGXHgyRVx4NzZceDBCXHg2NFx4MjQiCisJCQkgICJceDQ0XHg0RFx4OTlceDVBXHgxMlx4RDZceDQwXHhDMCIKKwkJCSAgIlx4RUFceEMyXHg4NFx4RThceDE0XHg5NVx4REJceEU4IiwKKwkJLmtsZW4JPSAyNCwKKwkJLml2CT0gIlx4N0RceDMzXHg4OFx4OTNceDBGXHg5M1x4QjJceDQyIiwKKwkJLmlucHV0CT0gIlx4NmZceDU0XHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlIgorCQkJICAiXHg1M1x4MjBceDYzXHg2NVx4NjVceDcyXHg3M1x4NzQiCisJCQkgICJceDU0XHgyMFx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MSIKKwkJCSAgIlx4MjBceDc5XHg2NVx4NTNceDcyXHg2M1x4NzRceDY1IgorCQkJICAiXHgyMFx4NzNceDZmXHg1NFx4MjBceDZmXHg2MVx4NGQiCisJCQkgICJceDc5XHg2ZVx4NTNceDIwXHg2M1x4NjVceDY1XHg3MiIKKwkJCSAgIlx4NzNceDc0XHg1NFx4MjBceDZmXHg2Zlx4NGRceDIwIgorCQkJICAiXHg2ZVx4NjFceDIwXHg3OVx4NjVceDUzXHg3Mlx4NjMiCisJCQkgICJceDc0XHg2NVx4MjBceDczXHg2Zlx4NTRceDIwXHg2ZiIKKwkJCSAgIlx4NjFceDRkXHg3OVx4NmVceDUzXHgyMFx4NjNceDY1IgorCQkJICAiXHg2NVx4NzJceDczXHg3NFx4NTRceDIwXHg2Zlx4NmYiCisJCQkgICJceDRkXHgyMFx4NmVceDYxXHgyMFx4NzlceDY1XHg1MyIKKwkJCSAgIlx4NzJceDYzXHg3NFx4NjVceDIwXHg3M1x4NmZceDU0IgorCQkJICAiXHgyMFx4NmZceDYxXHg0ZFx4NzlceDZlXHg1M1x4MjAiCisJCQkgICJceDYzXHg2NVx4NjVceDcyXHg3M1x4NzRceDU0XHgyMCIKKwkJCSAgIlx4NmZceDZmXHg0ZFx4MjBceDZlXHg2MVx4MGFceDc5IiwKKwkJLmlsZW4JPSAxMjgsCisJCS5yZXN1bHQJPSAiXHgwZVx4MmRceGI2XHg5N1x4M2NceDU2XHgzM1x4ZjQiCisJCQkgICJceDY3XHgxN1x4MjFceGM3XHg2ZVx4OGFceGQ1XHg0OSIKKwkJCSAgIlx4NzRceGIzXHg0OVx4MDVceGM1XHgxY1x4ZDBceGVkIgorCQkJICAiXHgxMlx4NTZceDVjXHg1M1x4OTZceGI2XHgwMFx4N2QiCisJCQkgICJceDkwXHg0OFx4ZmNceGY1XHg4ZFx4MjlceDM5XHhjYyIKKwkJCSAgIlx4OGFceGQ1XHgzNVx4MThceDM2XHgyM1x4NGVceGQ3IgorCQkJICAiXHg3Nlx4ZDFceGRhXHgwY1x4OTRceDY3XHhiYlx4MDQiCisJCQkgICJceDhiXHhmMlx4MDNceDZjXHhhOFx4Y2ZceGI2XHhlYSIKKwkJCSAgIlx4MjJceDY0XHg0N1x4YWFceDhmXHg3NVx4MTNceGJmIgorCQkJICAiXHg5Zlx4YzJceGMzXHhmMFx4YzlceDU2XHhjNVx4N2EiCisJCQkgICJceDcxXHg2M1x4MmVceDg5XHg3Ylx4MWVceDEyXHhjYSIKKwkJCSAgIlx4ZTJceDVmXHhhZlx4ZDhceGE0XHhmOFx4YzlceDdhIgorCQkJICAiXHhkNlx4ZjlceDIxXHgzMVx4NjJceDQ0XHg0NVx4YTYiCisJCQkgICJceGQ2XHhiY1x4NWFceGQzXHgyZFx4NTRceDQzXHhjYyIKKwkJCSAgIlx4OWRceGRlXHhhNVx4NzBceGU5XHg0Mlx4NDVceDhhIgorCQkJICAiXHg2Ylx4ZmFceGIxXHg5MVx4MTNceGIwXHhkOVx4MTkiLAorCQkucmxlbgk9IDEyOCwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBjaXBoZXJfdGVzdHZlYyBkZXMzX2VkZV9jYmNfZGVjX3R2X3RlbXBsYXRlW10gPSB7CisJeyAvKiBHZW5lcmF0ZWQgZnJvbSBvcGVuc3NsICovCisJCS5rZXkJPSAiXHhFOVx4QzBceEZGXHgyRVx4NzZceDBCXHg2NFx4MjQiCisJCQkgICJceDQ0XHg0RFx4OTlceDVBXHgxMlx4RDZceDQwXHhDMCIKKwkJCSAgIlx4RUFceEMyXHg4NFx4RThceDE0XHg5NVx4REJceEU4IiwKKwkJLmtsZW4JPSAyNCwKKwkJLml2CT0gIlx4N0RceDMzXHg4OFx4OTNceDBGXHg5M1x4QjJceDQyIiwKKwkJLmlucHV0CT0gIlx4MGVceDJkXHhiNlx4OTdceDNjXHg1Nlx4MzNceGY0IgorCQkJICAiXHg2N1x4MTdceDIxXHhjN1x4NmVceDhhXHhkNVx4NDkiCisJCQkgICJceDc0XHhiM1x4NDlceDA1XHhjNVx4MWNceGQwXHhlZCIKKwkJCSAgIlx4MTJceDU2XHg1Y1x4NTNceDk2XHhiNlx4MDBceDdkIgorCQkJICAiXHg5MFx4NDhceGZjXHhmNVx4OGRceDI5XHgzOVx4Y2MiCisJCQkgICJceDhhXHhkNVx4MzVceDE4XHgzNlx4MjNceDRlXHhkNyIKKwkJCSAgIlx4NzZceGQxXHhkYVx4MGNceDk0XHg2N1x4YmJceDA0IgorCQkJICAiXHg4Ylx4ZjJceDAzXHg2Y1x4YThceGNmXHhiNlx4ZWEiCisJCQkgICJceDIyXHg2NFx4NDdceGFhXHg4Zlx4NzVceDEzXHhiZiIKKwkJCSAgIlx4OWZceGMyXHhjM1x4ZjBceGM5XHg1Nlx4YzVceDdhIgorCQkJICAiXHg3MVx4NjNceDJlXHg4OVx4N2JceDFlXHgxMlx4Y2EiCisJCQkgICJceGUyXHg1Zlx4YWZceGQ4XHhhNFx4ZjhceGM5XHg3YSIKKwkJCSAgIlx4ZDZceGY5XHgyMVx4MzFceDYyXHg0NFx4NDVceGE2IgorCQkJICAiXHhkNlx4YmNceDVhXHhkM1x4MmRceDU0XHg0M1x4Y2MiCisJCQkgICJceDlkXHhkZVx4YTVceDcwXHhlOVx4NDJceDQ1XHg4YSIKKwkJCSAgIlx4NmJceGZhXHhiMVx4OTFceDEzXHhiMFx4ZDlceDE5IiwKKwkJLmlsZW4JPSAxMjgsCisJCS5yZXN1bHQJPSAiXHg2Zlx4NTRceDIwXHg2Zlx4NjFceDRkXHg3OVx4NmUiCisJCQkgICJceDUzXHgyMFx4NjNceDY1XHg2NVx4NzJceDczXHg3NCIKKwkJCSAgIlx4NTRceDIwXHg2Zlx4NmZceDRkXHgyMFx4NmVceDYxIgorCQkJICAiXHgyMFx4NzlceDY1XHg1M1x4NzJceDYzXHg3NFx4NjUiCisJCQkgICJceDIwXHg3M1x4NmZceDU0XHgyMFx4NmZceDYxXHg0ZCIKKwkJCSAgIlx4NzlceDZlXHg1M1x4MjBceDYzXHg2NVx4NjVceDcyIgorCQkJICAiXHg3M1x4NzRceDU0XHgyMFx4NmZceDZmXHg0ZFx4MjAiCisJCQkgICJceDZlXHg2MVx4MjBceDc5XHg2NVx4NTNceDcyXHg2MyIKKwkJCSAgIlx4NzRceDY1XHgyMFx4NzNceDZmXHg1NFx4MjBceDZmIgorCQkJICAiXHg2MVx4NGRceDc5XHg2ZVx4NTNceDIwXHg2M1x4NjUiCisJCQkgICJceDY1XHg3Mlx4NzNceDc0XHg1NFx4MjBceDZmXHg2ZiIKKwkJCSAgIlx4NGRceDIwXHg2ZVx4NjFceDIwXHg3OVx4NjVceDUzIgorCQkJICAiXHg3Mlx4NjNceDc0XHg2NVx4MjBceDczXHg2Zlx4NTQiCisJCQkgICJceDIwXHg2Zlx4NjFceDRkXHg3OVx4NmVceDUzXHgyMCIKKwkJCSAgIlx4NjNceDY1XHg2NVx4NzJceDczXHg3NFx4NTRceDIwIgorCQkJICAiXHg2Zlx4NmZceDRkXHgyMFx4NmVceDYxXHgwYVx4NzkiLAorCQkucmxlbgk9IDEyOCwKKwl9LAorfTsKKwogLyoKICAqIEJsb3dmaXNoIHRlc3QgdmVjdG9ycy4KICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9NYWtlZmlsZSBiL2RyaXZlcnMvTWFrZWZpbGUKaW5kZXggZjY1ZGVkYS4uZmRhNDQ2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9NYWtlZmlsZQorKysgYi9kcml2ZXJzL01ha2VmaWxlCkBAIC0xMCw2ICsxMCw3IEBACiBvYmotJChDT05GSUdfUEFSSVNDKQkJKz0gcGFyaXNjLwogb2JqLSQoQ09ORklHX1JBUElESU8pCQkrPSByYXBpZGlvLwogb2JqLXkJCQkJKz0gdmlkZW8vCitvYmoteQkJCQkrPSBncHUvCiBvYmotJChDT05GSUdfQUNQSSkJCSs9IGFjcGkvCiAjIFBuUCBtdXN0IGNvbWUgYWZ0ZXIgQUNQSSBzaW5jZSBpdCB3aWxsIGV2ZW50dWFsbHkgbmVlZCB0byBjaGVjayBpZiBhY3BpCiAjIHdhcyB1c2VkIGFuZCBkbyBub3RoaW5nIGlmIHNvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fjb3JuL2NoYXIvTWFrZWZpbGUgYi9kcml2ZXJzL2Fjb3JuL2NoYXIvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMDZjOWYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hY29ybi9jaGFyL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciB0aGUgYWNvcm4gY2hhcmFjdGVyIGRldmljZSBkcml2ZXJzLgotIwotCi1vYmotJChDT05GSUdfTDcyMDBfS0VZQikJKz0gZGVma2V5bWFwLWw3MjAwLm8ga2V5Yl9sNzIwMC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMgYi9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDgwYTEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hY29ybi9jaGFyL2RlZmtleW1hcC1sNzIwMC5jCisrKyAvZGV2L251bGwKQEAgLTEsMzg2ICswLDAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL2Fjb3JuL2NoYXIvZGVma2V5bWFwLWw3MjAwLmMKLSAqCi0gKiBEZWZhdWx0IGtleWJvYXJkIG1hcHMgZm9yIExpbmtVcCBTeXN0ZW1zIEw3MjAwIGJvYXJkCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAwIFN0ZXZlIEhpbGwgKHNqaGlsbEBjb3R3LmNvbSkKLSAqCi0gKiBDaGFuZ2Vsb2c6Ci0gKiAgIDA4LTA0LTIwMDAgU0pIICAgICBDcmVhdGVkIGZpbGUKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXlib2FyZC5oPgotI2luY2x1ZGUgPGxpbnV4L2tkLmg+Ci0KLS8qIE5vcm1hbCAobWFwcyAxOjEgd2l0aCBubyBwcm9jZXNzaW5nKSAqLwotI2RlZmluZSBLVG4JMHhGMAotLyogRnVuY3Rpb24ga2V5cyAqLwotI2RlZmluZSBLVGYJMHhGMQotLyogU3BlY2lhbCAoUGVyZm9ybXMgc3BlY2lhbCBob3VzZS1rZWVwaW5nIGZ1bmNzKSAqLwotI2RlZmluZSBLVHMJMHhGMgotI2RlZmluZSBLSUdOT1JFCQlLKEtUcywgMCkJLyogSWdub3JlICovCi0jZGVmaW5lIEtFTlRFUgkJSyhLVHMsIDEpCS8qIEVudGVyICovCi0jZGVmaW5lIEtSRUdTCQlLKEtUcywgMikJLyogUmVncyAqLwotI2RlZmluZSBLTUVNCQlLKEtUcywgMykJLyogTWVtICovCi0jZGVmaW5lIEtTVEFUCQlLKEtUcywgNCkJLyogU3RhdGUgKi8KLSNkZWZpbmUgS0lOVFIJCUsoS1RzLCA1KQkvKiBJbnRyICovCi0jZGVmaW5lIEtzbAk2CS8qIExhc3QgY29uc29sZSAqLwotI2RlZmluZSBLQ0FQU0xLCQlLKEtUcywgNykJLyogQ2FwcyBsb2NrICovCi0jZGVmaW5lIEtOVU1MSwkJSyhLVHMsIDgpCS8qIE51bS1sb2NrICovCi0jZGVmaW5lIEtTQ1JMTEsJCUsoS1RzLCA5KQkvKiBTY3JvbGwtbG9jayAqLwotI2RlZmluZSBLU0NSTEZPUglLKEtUcywxMCkJLyogU2Nyb2xsIGZvcndhcmQgKi8KLSNkZWZpbmUgS1NDUkxCQUsJSyhLVHMsMTEpCS8qIFNjcm9sbCBiYWNrICovCi0jZGVmaW5lIEtSRUJPT1QJCUsoS1RzLDEyKQkvKiBSZWJvb3QgKi8KLSNkZWZpbmUgS0NBUFNPTgkJSyhLVHMsMTMpCS8qIENhcHMgb24gKi8KLSNkZWZpbmUgS0NPTVBPU0UJSyhLVHMsMTQpCS8qIENvbXBvc2UgKi8KLSNkZWZpbmUgS1NBSwkJSyhLVHMsMTUpCS8qIFNBSyAqLwotI2RlZmluZSBDT05TX0RFQwlLKEtUcywxNikJLyogRGVjIGNvbnNvbGUgKi8KLSNkZWZpbmUgQ09OU19JTkMJSyhLVHMsMTcpCS8qIEluY3IgY29uc29sZSAqLwotI2RlZmluZSBLRkxPUFBZCQlLKEtUcywxOCkJLyogRmxvcHB5ICovCi0vKiBLZXkgcGFkICgwLTkgPSBkaWdpdHMsIDEwPSssIDExPS0sIDEyPSosIDEzPS8sIDE0PWVudGVyLCAxNj0uLCAxNz0jICovCi0jZGVmaW5lIEtUcAkweEYzCi0jZGVmaW5lIEtQQURfMAkJSyhLVHAsIDAgKQotI2RlZmluZSBLUEFEXzEgIAlLKEtUcCwgMSApCi0jZGVmaW5lIEtQQURfMgkJSyhLVHAsIDIgKQotI2RlZmluZSBLUEFEXzMJCUsoS1RwLCAzICkKLSNkZWZpbmUgS1BBRF80CQlLKEtUcCwgNCApCi0jZGVmaW5lIEtQQURfNQkJSyhLVHAsIDUgKQotI2RlZmluZSBLUEFEXzYJCUsoS1RwLCA2ICkKLSNkZWZpbmUgS1BBRF83CQlLKEtUcCwgNyApCi0jZGVmaW5lIEtQQURfOAkJSyhLVHAsIDggKQotI2RlZmluZSBLUEFEXzkJCUsoS1RwLCA5ICkKLSNkZWZpbmUgS1BBRF9QTAkJSyhLVHAsMTAgKQotI2RlZmluZSBLUEFEX01JCQlLKEtUcCwxMSApCi0jZGVmaW5lIEtQQURfTUwJCUsoS1RwLDEyICkKLSNkZWZpbmUgS1BBRF9EVgkJSyhLVHAsMTMgKQotI2RlZmluZSBLUEFEX0VOCQlLKEtUcCwxNCApCi0jZGVmaW5lIEtQQURfRFQJCUsoS1RwLDE2ICkKLSNkZWZpbmUgS1BBRF9IUwkJSyhLVHAsMjAgKQotLyogQ29uc29sZSBzd2l0Y2hpbmcgKi8KLSNkZWZpbmUgS0NuCTB4RjUKLS8qIEN1cnNvciAqLwotI2RlZmluZSBLVGMJMHhGNgotI2RlZmluZSBLY2QJMAkvKiBDdXJzb3IgZG93biAqLwotI2RlZmluZSBLY2wJMQkvKiBDdXJzb3IgbGVmdCAqLwotI2RlZmluZSBLY3IJMgkvKiBDdXJzb3IgcmlnaHQgKi8KLSNkZWZpbmUgS2N1CTMJLyogQ3Vyc29yIHVwICovCi0vKiBTaGlmdC9hbHQgbW9kaWZpZXJzIGV0YyAqLwotI2RlZmluZSBLTWQJMHhGNwotI2RlZmluZSBLU0hJRlQJCUsoS01kLCAwICkKLSNkZWZpbmUgS0FMVEdSCQlLKEtNZCwgMSApCi0jZGVmaW5lIEtDVFJMCQlLKEtNZCwgMiApCi0jZGVmaW5lIEtBTFQJCUsoS01kLCAzICkKLS8qIE1ldGEgKi8KLSNkZWZpbmUgS010CTB4RjgKLSNkZWZpbmUgS0FzCTB4RjkKLSNkZWZpbmUgS1BBREFfMAkJSyhLQXMsIDAgKQotI2RlZmluZSBLUEFEQV8xCQlLKEtBcywgMSApCi0jZGVmaW5lIEtQQURBXzIJCUsoS0FzLCAyICkKLSNkZWZpbmUgS1BBREFfMwkJSyhLQXMsIDMgKQotI2RlZmluZSBLUEFEQV80CQlLKEtBcywgNCApCi0jZGVmaW5lIEtQQURBXzUJCUsoS0FzLCA1ICkKLSNkZWZpbmUgS1BBREFfNgkJSyhLQXMsIDYgKQotI2RlZmluZSBLUEFEQV83CQlLKEtBcywgNyApCi0jZGVmaW5lIEtQQURBXzgJCUsoS0FzLCA4ICkKLSNkZWZpbmUgS1BBREFfOQkJSyhLQXMsIDkgKQotI2RlZmluZSBLUEFEQl8wCQlLKEtBcywxMCApCi0jZGVmaW5lIEtQQURCXzEJCUsoS0FzLDExICkKLSNkZWZpbmUgS1BBREJfMgkJSyhLQXMsMTIgKQotI2RlZmluZSBLUEFEQl8zCQlLKEtBcywxMyApCi0jZGVmaW5lIEtQQURCXzQJCUsoS0FzLDE0ICkKLSNkZWZpbmUgS1BBREJfNQkJSyhLQXMsMTUgKQotI2RlZmluZSBLUEFEQl82CQlLKEtBcywxNiApCi0jZGVmaW5lIEtQQURCXzcJCUsoS0FzLDE3ICkKLSNkZWZpbmUgS1BBREJfOAkJSyhLQXMsMTggKQotI2RlZmluZSBLUEFEQl85CQlLKEtBcywxOSApCi0vKiBMb2NraW5nIGtleXMgKi8KLSNkZWZpbmUgS0xrCTB4RkEKLS8qIExldHRlcnMgKi8KLSNkZWZpbmUgS1RsCTB4RkIKLQotLyoKLSAqIEhlcmUgaXMgdGhlIGxheW91dCBvZiB0aGUga2V5cyBmb3IgdGhlIEZ1aml0c3UgUVdFUlRZCi0gKiBzdHlsZSBrZXlib2FyZDoKLSAqCi0gKglzdGF0aWMgY2hhciBGdWppdHN1X0tleV9UYWJsZVtdID0KLSAqCXsKLSAqICAgICAgICBLQUxULCAnYCcgLCBLTlVMLCBLQ1RMLCBLRlVOLCBLRVNDLCAnMScgLCAnMicgLAotICoJICAnOScgLCAnMCcgLCAnLScgLCAnPScgLCBLTlVMLCBLQlNQLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLQlNMLCBLU0hGLCBLTlVMLCBLTlVMLCBLREVMLCBLTlVMLCAndCcgLAotICoJICAneScgLCAndScgLCAnaScgLCBLUkVULCBLU0hGLCBLUEdELCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLVEFCLCBLTlVMLCBLTlVMLCBLTlVMLCAncScgLCAndycgLCAnZScgLAotICoJICAncicgLCAnbycgLCAncCcgLCAnWycgLCBLTlVMLCAnXScgLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAneicgLCBLTlVMLCBLTlVMLCBLTlVMLCBLU0hMLCBLTlVMLCBLTlVMLAotICoJICAnaycgLCAnbCcgLCAnOycgLCBLU1FULCBLTlVMLCBLUEdVLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAnYScgLCBLTlVMLCBLTlVMLCBLTlVMLCAncycgLCAnZCcgLCAnZicgLAotICoJICAnZycgLCAnaCcgLCAnaicgLCAnLycgLCBLTlVMLCBLSE1FLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCAneCcgLCBLTlVMLCBLTlVMLCBLTlVMLCAnYycgLCAndicgLCAnYicgLAotICoJICAnbicgLCAnbScgLCAnLCcgLCAnLicgLCBLTlVMLCAnICcgLCBLTlVMLCBLTlVMLAotICoJICBLTlVMLCBLTlVMLCBLTlVMLCBLTlVMLCBLTlVMLCAnMycgLCAnNCcgLCAnNScgLAotICoJICAnNicgLCAnNycgLCAnOCcgLCBLTlVMLCBLUFJHLCBLTlVMLCBLRU5ELCBLTlVMLAotICoJfTsKLSAqLwotCi11X3Nob3J0IHBsYWluX21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjA2MCwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMzEsIDB4ZjAzMiwKLQkweGYwMzksIDB4ZjAzMCwgMHhmMDJkLCAweGYwM2QsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjA1YywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZmI3NCwKLQkweGZiNzksIDB4ZmI3NSwgMHhmYjY5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwOSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjcxLCAweGZiNzcsIDB4ZmI2NSwKLQkweGZiNzIsIDB4ZmI2ZiwgMHhmYjcwLCAweGYwNWIsIDB4ZjIwMCwgMHhmMDVkLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI3YSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjA3LCAweGYyMDAsIDB4ZjIwMCwKLQkweGZiNmIsIDB4ZmI2YywgMHhmMDNiLCAweGYwMjcsIDB4ZjIwMCwgMHhmNjAzLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI2MSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjczLCAweGZiNjQsIDB4ZmI2NiwKLQkweGZiNjcsIDB4ZmI2OCwgMHhmYjZhLCAweGYwMmYsIDB4ZjIwMCwgMHhmNjAxLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZmI3OCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmYjYzLCAweGZiNzYsIDB4ZmI2MiwKLQkweGZiNmUsIDB4ZmI2ZCwgMHhmMDJjLCAweGYwMmUsIDB4ZjIwMCwgMHhmMDIwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDMzLCAweGYwMzQsIDB4ZjAzNSwgCi0JMHhmMDM2LCAweGYwMzcsIDB4ZjAzOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmNjAyLCAweGYyMDAsIAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi19OwotCi11X3Nob3J0IHNoaWZ0X21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjA3ZSwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMjEsIDB4ZjA0MCwKLQkweGYwMjgsIDB4ZjAyOSwgMHhmMDVmLCAweGYwMmIsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjA3YywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZmI1NCwKLQkweGZiNTksIDB4ZmI1NSwgMHhmYjQ5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLSAJMHhmMjAwLCAweGYwMDksIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI1MSwgMHhmYjU3LCAweGZiNDUsCi0JMHhmYjUyLCAweGZiNGYsIDB4ZmI1MCwgMHhmMDdiLCAweGYyMDAsIDB4ZjA3ZCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNWEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwNywgMHhmMjAwLCAweGYyMDAsCi0JMHhmYjRiLCAweGZiNGMsIDB4ZjAzYSwgMHhmMDIyLCAweGYyMDAsIDB4ZjYwMywgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNDEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI1MywgMHhmYjQ0LCAweGZiNDYsCi0JMHhmYjQ3LCAweGZiNDgsIDB4ZmI0YSwgMHhmMDNmLCAweGYyMDAsIDB4ZjYwMSwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGZiNTgsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZmI0MywgMHhmYjU2LCAweGZiNDIsCi0JMHhmYjRlLCAweGZiNGQsIDB4ZjAzYywgMHhmMDNlLCAweGYyMDAsIDB4ZjAyMCwgMHhmMjAwLCAweGYyMDAsCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjAyMywgMHhmMDI0LCAweGYwMjUsIAotCTB4ZjA1ZSwgMHhmMDI2LCAweGYwMmEsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjYwMiwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgCi0JMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIAotfTsKLQotdV9zaG9ydCBhbHRncl9tYXBbTlJfS0VZU109Ci17Ci0gIEtJR05PUkUgICAsSyhLQ24sMTIgKSxLKEtDbiwxMyApLEsoS0NuLDE0ICApLEsoS0NuLDE1ICksSyhLQ24sMTYgKSxLKEtDbiwxNyAgKSxLKEtDbiwgMTgpLAotICBLKEtDbiwgMTkpLEsoS0NuLDIwICksSyhLQ24sMjEgKSxLKEtDbiwyMiAgKSxLKEtDbiwyMyApLEtJR05PUkUgICAsS1JFR1MgICAgICAsS0lOVFIgICAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEsoS1RuLCdAJyksS0lHTk9SRSAgICAsSyhLVG4sJyQnKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEsoS1RuLCd7JyksCi0gIEsoS1RuLCdbJyksSyhLVG4sJ10nKSxLKEtUbiwnfScpLEsoS1RuLCdcXCcpLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUZiwyMSApLAotICBLKEtUZiwyMCApLEsoS1RmLDI0ICksS05VTUxLICAgICxLUEFEX0RWICAgICxLUEFEX01MICAgLEtQQURfSFMgICAsS0lHTk9SRSAgICAsSyhLVGwsJ3EnKSwKLSAgSyhLVGwsJ3cnKSxLKEtUbCwnZScpLEsoS1RsLCdyJyksSyhLVGwsJ3QnICksSyhLVGwsJ3knKSxLKEtUbCwndScpLEsoS1RsLCdpJyApLEsoS1RsLCdvJyksCi0gIEsoS1RsLCdwJyksS0lHTk9SRSAgICxLKEtUbiwnficpLEtJR05PUkUgICAgLEsoS1RmLDIyICksSyhLVGYsMjMgKSxLKEtUZiwyNSAgKSxLUEFEQl83ICAgLAotICBLUEFEQl84ICAgLEtQQURCXzkgICAsS1BBRF9NSSAgICxLQ1RSTCAgICAgICxLKEtBcywyMCApLEsoS1RsLCdzJyksSyhLQXMsMjMgICksSyhLQXMsMjUgKSwKLSAgSyhLVGwsJ2cnKSxLKEtUbCwnaCcpLEsoS1RsLCdqJyksSyhLVGwsJ2snICksSyhLVGwsJ2wnKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtFTlRFUiAgICAsCi0gIEtQQURCXzQgICAsS1BBREJfNSAgICxLUEFEQl82ICAgLEtQQURfUEwgICAgLEtTSElGVCAgICAsS0lHTk9SRSAgICxLKEtUbCwneicgKSxLKEtUbCwneCcpLAotICBLKEtBcywyMiApLEsoS1RsLCd2JyksSyhLVGwsMjEgKSxLKEtUbCwnbicgKSxLKEtUbCwnbScpLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS1NISUZUICAgICxLKEtUYyxLY3UpLEtQQURCXzEgICAsS1BBREJfMiAgICAsS1BBREJfMyAgICxLQ0FQU0xLICAgLEtBTFQgICAgICAgLEtJR05PUkUgICAsCi0gIEtBTFRHUiAgICAsS0NUUkwgICAgICxLKEtUYyxLY2wpLEsoS1RjLEtjZCApLEsoS1RjLEtjciksS1BBREJfMCAgICxLUEFEX0RUICAgICxLUEFEX0VOICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotfTsKLQotdV9zaG9ydCBjdHJsX21hcFtOUl9LRVlTXT0KLXsKLQkweGY3MDMsIDB4ZjIwMCwgMHhmMjAwLCAweGY3MDIsIDB4ZjIwMCwgMHhmMjAwLCAweGYwMDEsIDB4ZjAwMiwKLQkweGYwMDksIDB4ZjAwMCwgMHhmMDMxLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDdmLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxYywgMHhmNzAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMTE2LCAweGYwMDAsIDB4ZjAyMCwKLQkweGYwMTksIDB4ZjAxNSwgMHhmMDA5LCAweGYyMDEsIDB4ZjcwMCwgMHhmNjAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwOSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDExLCAweGYwMTcsIDB4ZjAwNSwKLQkweGYwMTIsIDB4ZjAwZiwgMHhmMDEwLCAweGYwMWIsIDB4ZjIwMCwgMHhmMDFkLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxYSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjA3LCAweGYyMDAsIDB4ZjIwMCwKLQkweGYwMGIsIDB4ZjAwYywgMHhmMjAwLCAweGYwMDcsIDB4ZjIwMCwgMHhmNjAzLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAwMSwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAxLCAweGYwMTMsIDB4ZjAwNiwKLQkweGYwMDcsIDB4ZjAwOCwgMHhmMDBhLCAweGYwN2YsIDB4ZjIwMCwgMHhmNjAxLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjAxOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAzLCAweGYwMTYsIDB4ZjAwMiwKLQkweGYwMGUsIDB4ZjAwZCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDAwLCAweGYyMDAsIDB4ZjIwMCwKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMDFiLCAweGYwMWMsIDB4ZjAxZCwgCi0JMHhmMDM2LCAweGYwMzcsIDB4ZjAzOCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmNjAyLCAweGYyMDAsIAotCTB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAKLQkweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGYyMDAsIDB4ZjIwMCwgMHhmMjAwLCAweGY2MDIsIDB4ZjIwMCwgCi19OwotCi11X3Nob3J0IHNoaWZ0X2N0cmxfbWFwW05SX0tFWVNdPQotewotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtGTE9QUFkgICAgLEtJTlRSICAgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLKEtUbiwgMCApLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLKEtUbiwzMSAgKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsSyhLVGYsMjEgKSwKLSAgSyhLVGYsMjAgKSxLKEtUZiwyNCApLEtOVU1MSyAgICAsS1BBRF9EViAgICAsS1BBRF9NTCAgICxLUEFEX0hTICAgLEtJR05PUkUgICAgLEsoS1RuLDE3ICksCi0gIEsoS1RuLDIzICksSyhLVG4sIDUgKSxLKEtUbiwxOCApLEsoS1RuLDIwICApLEsoS1RuLDI1ICksSyhLVG4sMjEgKSxLKEtUbiwgOSAgKSxLKEtUbiwxNSApLAotICBLKEtUbiwxNiApLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLKEtUZiwyMiApLEsoS1RmLDIzICksSyhLVGYsMjUgICksS1BBRF83ICAgICwKLSAgS1BBRF84ICAgICxLUEFEXzkgICAgLEtQQURfTUkgICAsS0NUUkwgICAgICAsSyhLVG4sIDEgKSxLKEtUbiwxOSApLEsoS1RuLCA0ICApLEsoS1RuLCA2ICksCi0gIEsoS1RuLCA3ICksSyhLVG4sIDggKSxLKEtUbiwxMCApLEsoS1RuLDExICApLEsoS1RuLDEyICksS0lHTk9SRSAgICxLKEtUbiwgNyAgKSxLRU5URVIgICAgLAotICBLUEFEXzQgICAgLEtQQURfNSAgICAsS1BBRF82ICAgICxLUEFEX1BMICAgICxLU0hJRlQgICAgLEtJR05PUkUgICAsSyhLVG4sMjYgICksSyhLVG4sMjQgKSwKLSAgSyhLVG4sIDMgKSxLKEtUbiwyMiApLEsoS1RuLCAyICksSyhLVG4sMTQgICksSyhLVG4sMTMgKSxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtTSElGVCAgICAsSyhLVGMsS2N1KSxLUEFEXzEgICAgLEtQQURfMiAgICAgLEtQQURfMyAgICAsS0NBUFNMSyAgICxLQUxUICAgICAgICxLKEtUbiwgMCApLAotICBLQUxUR1IgICAgLEtDVFJMICAgICAsSyhLVGMsS2NsKSxLKEtUYyxLY2QgKSxLKEtUYyxLY3IpLEtQQURfMCAgICAsS1BBRF9EVCAgICAsS1BBRF9FTiAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLX07Ci0KLXVfc2hvcnQgYWx0X21hcFtOUl9LRVlTXT0KLXsKLSAgSyhLTXQsMjcgKSxLKEtDbiwgMCApLEsoS0NuLCAxICksSyhLQ24sIDIgICksSyhLQ24sIDMgKSxLKEtDbiwgNCApLEsoS0NuLCA1ICApLEsoS0NuLCA2ICksCi0gIEsoS0NuLCA3ICksSyhLQ24sIDggKSxLKEtDbiwgOSApLEsoS0NuLDEwICApLEsoS0NuLDExICksS0lHTk9SRSAgICxLU0NSTExLICAgICxLSU5UUiAgICAgLAotICBLKEtNdCwnYCcpLEsoS010LCcxJyksSyhLTXQsJzInKSxLKEtNdCwnMycgKSxLKEtNdCwnNCcpLEsoS010LCc1JyksSyhLTXQsJzYnICksSyhLTXQsJzcnKSwKLSAgSyhLTXQsJzgnKSxLKEtNdCwnOScpLEsoS010LCcwJyksSyhLTXQsJy0nICksSyhLTXQsJz0nKSxLKEtNdCwnoycpLEsoS010LDEyNyApLEsoS1RmLDIxICksCi0gIEsoS1RmLDIwICksSyhLVGYsMjQgKSxLTlVNTEsgICAgLEtQQURfRFYgICAgLEtQQURfTUwgICAsS1BBRF9IUyAgICxLKEtNdCwgOSAgKSxLKEtNdCwncScpLAotICBLKEtNdCwndycpLEsoS010LCdlJyksSyhLTXQsJ3InKSxLKEtNdCwndCcgKSxLKEtNdCwneScpLEsoS010LCd1JyksSyhLTXQsJ2knICksSyhLTXQsJ28nKSwKLSAgSyhLTXQsJ3AnKSxLKEtNdCwnWycpLEsoS010LCddJyksSyhLTXQsJ1xcJyksSyhLVGYsMjIgKSxLKEtUZiwyMyApLEsoS1RmLDI1ICApLEtQQURBXzcgICAsCi0gIEtQQURBXzggICAsS1BBREFfOSAgICxLUEFEX01JICAgLEtDVFJMICAgICAgLEsoS010LCdhJyksSyhLTXQsJ3MnKSxLKEtNdCwnZCcgKSxLKEtNdCwnZicpLAotICBLKEtNdCwnZycpLEsoS010LCdoJyksSyhLTXQsJ2onKSxLKEtNdCwnaycgKSxLKEtNdCwnbCcpLEsoS010LCc7JyksSyhLTXQsJ1wnJyksSyhLTXQsMTMgKSwKLSAgS1BBREFfNCAgICxLUEFEQV81ICAgLEtQQURBXzYgICAsS1BBRF9QTCAgICAsS1NISUZUICAgICxLSUdOT1JFICAgLEsoS010LCd6JyApLEsoS010LCd4JyksCi0gIEsoS010LCdjJyksSyhLTXQsJ3YnKSxLKEtNdCwnYicpLEsoS010LCduJyApLEsoS010LCdtJyksSyhLTXQsJywnKSxLKEtNdCwnLicgKSxLSUdOT1JFICAgLAotICBLU0hJRlQgICAgLEsoS1RjLEtjdSksS1BBREFfMSAgICxLUEFEQV8yICAgICxLUEFEQV8zICAgLEtDQVBTTEsgICAsS0FMVCAgICAgICAsSyhLTXQsJyAnKSwKLSAgS0FMVEdSICAgICxLQ1RSTCAgICAgLENPTlNfREVDICAsSyhLVGMsS2NkICksQ09OU19JTkMgICxLUEFEQV8wICAgLEtQQURfRFQgICAgLEtQQURfRU4gICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi19OwotCi11X3Nob3J0IGN0cmxfYWx0X21hcFtOUl9LRVlTXT0KLXsKLSAgS0lHTk9SRSAgICxLKEtDbiwgMCApLEsoS0NuLCAxICksSyhLQ24sIDIgICksSyhLQ24sIDMgKSxLKEtDbiwgNCApLEsoS0NuLCA1ICApLEsoS0NuLCA2ICksCi0gIEsoS0NuLCA3ICksSyhLQ24sIDggKSxLKEtDbiwgOSApLEsoS0NuLDEwICApLEsoS0NuLDExICksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSU5UUiAgICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEsoS1RmLDIxICksCi0gIEsoS1RmLDIwICksSyhLVGYsMjQgKSxLTlVNTEsgICAgLEtQQURfRFYgICAgLEtQQURfTUwgICAsS1BBRF9IUyAgICxLSUdOT1JFICAgICxLKEtNdCwxNyApLAotICBLKEtNdCwyMyApLEsoS010LCA1ICksSyhLTXQsMTggKSxLKEtNdCwyMCAgKSxLKEtNdCwyNSApLEsoS010LDIxICksSyhLTXQsIDkgICksSyhLTXQsMTUgKSwKLSAgSyhLTXQsMTYgKSxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS1JFQk9PVCAgICxLKEtUZiwyMyApLEsoS1RmLDI1ICApLEtQQURfNyAgICAsCi0gIEtQQURfOCAgICAsS1BBRF85ICAgICxLUEFEX01JICAgLEtDVFJMICAgICAgLEsoS010LCAxICksSyhLTXQsMTkgKSxLKEtNdCwgNCAgKSxLKEtNdCwgNiApLAotICBLKEtNdCwgNyApLEsoS010LCA4ICksSyhLTXQsMTAgKSxLKEtNdCwxMSAgKSxLKEtNdCwxMiApLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0VOVEVSICAgICwKLSAgS1BBRF80ICAgICxLUEFEXzUgICAgLEtQQURfNiAgICAsS1BBRF9QTCAgICAsS1NISUZUICAgICxLSUdOT1JFICAgLEsoS010LDI2ICApLEsoS010LDI0ICksCi0gIEsoS010LCAzICksSyhLTXQsMjIgKSxLKEtNdCwgMiApLEsoS010LDE0ICApLEsoS010LDEzICksS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLU0hJRlQgICAgLEsoS1RjLEtjdSksS1BBRF8xICAgICxLUEFEXzIgICAgICxLUEFEXzMgICAgLEtDQVBTTEsgICAsS0FMVCAgICAgICAsS0lHTk9SRSAgICwKLSAgS0FMVEdSICAgICxLQ1RSTCAgICAgLEsoS1RjLEtjbCksSyhLVGMsS2NkICksSyhLVGMsS2NyKSxLUEFEXzAgICAgLEtSRUJPT1QgICAgLEtQQURfRU4gICAsCi0gIEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLAotICBLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICwKLSAgS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAsS0lHTk9SRSAgICAsS0lHTk9SRSAgICxLSUdOT1JFICAgLEtJR05PUkUgICAgLEtJR05PUkUgICAsCi19OwotCi11c2hvcnQgKmtleV9tYXBzW01BWF9OUl9LRVlNQVBTXSA9IHsKLQlwbGFpbl9tYXAsIHNoaWZ0X21hcCwgYWx0Z3JfbWFwLCAwLAotCWN0cmxfbWFwLCBzaGlmdF9jdHJsX21hcCwgMCwgMCwKLQlhbHRfbWFwLCAwLCAwLCAwLAotCWN0cmxfYWx0X21hcCwJMAotfTsKLQotdW5zaWduZWQgaW50IGtleW1hcF9jb3VudCA9IDc7Ci0KLS8qCi0gKiBQaGlsb3NvcGh5OiBtb3N0IHBlb3BsZSBkbyBub3QgZGVmaW5lIG1vcmUgc3RyaW5ncywgYnV0IHRoZXkgd2hvIGRvCi0gKiBvZnRlbiB3YW50IHF1aXRlIGEgbG90IG9mIHN0cmluZyBzcGFjZS4gU28sIHdlIHN0YXRpY2FsbHkgYWxsb2NhdGUKLSAqIHRoZSBkZWZhdWx0IGFuZCBhbGxvY2F0ZSBkeW5hbWljYWxseSBpbiBjaHVua3Mgb2YgNTEyIGJ5dGVzLgotICovCi0KLWNoYXIgZnVuY19idWZbXSA9IHsKLQknXDAzMycsICdbJywgJ1snLCAnQScsIDAsCi0JJ1wwMzMnLCAnWycsICdbJywgJ0InLCAwLAotCSdcMDMzJywgJ1snLCAnWycsICdDJywgMCwKLQknXDAzMycsICdbJywgJ1snLCAnRCcsIDAsCi0JJ1wwMzMnLCAnWycsICdbJywgJ0UnLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc3JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc4JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICc5JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICcwJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICcxJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc0JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc1JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc2JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc4JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMicsICc5JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICcxJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICcyJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMycsICc0JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnMScsICd+JywgMCwKLQknXDAzMycsICdbJywgJzInLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICczJywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnNCcsICd+JywgMCwKLQknXDAzMycsICdbJywgJzUnLCAnficsIDAsCi0JJ1wwMzMnLCAnWycsICc2JywgJ34nLCAwLAotCSdcMDMzJywgJ1snLCAnTScsIDAsCi0JJ1wwMzMnLCAnWycsICdQJywgMCwKLX07Ci0KLWNoYXIgKmZ1bmNidWZwdHIgPSBmdW5jX2J1ZjsKLWludCBmdW5jYnVmc2l6ZSA9IHNpemVvZihmdW5jX2J1Zik7Ci1pbnQgZnVuY2J1ZmxlZnQgPSAwOyAgICAgICAgICAvKiBzcGFjZSBsZWZ0ICovCi0KLWNoYXIgKmZ1bmNfdGFibGVbTUFYX05SX0ZVTkNdID0gewotCWZ1bmNfYnVmICsgMCwKLQlmdW5jX2J1ZiArIDUsCi0JZnVuY19idWYgKyAxMCwKLQlmdW5jX2J1ZiArIDE1LAotCWZ1bmNfYnVmICsgMjAsCi0JZnVuY19idWYgKyAyNSwKLQlmdW5jX2J1ZiArIDMxLAotCWZ1bmNfYnVmICsgMzcsCi0JZnVuY19idWYgKyA0MywKLQlmdW5jX2J1ZiArIDQ5LAotCWZ1bmNfYnVmICsgNTUsCi0JZnVuY19idWYgKyA2MSwKLQlmdW5jX2J1ZiArIDY3LAotCWZ1bmNfYnVmICsgNzMsCi0JZnVuY19idWYgKyA3OSwKLQlmdW5jX2J1ZiArIDg1LAotCWZ1bmNfYnVmICsgOTEsCi0JZnVuY19idWYgKyA5NywKLQlmdW5jX2J1ZiArIDEwMywKLQlmdW5jX2J1ZiArIDEwOSwKLQlmdW5jX2J1ZiArIDExNSwKLQlmdW5jX2J1ZiArIDEyMCwKLQlmdW5jX2J1ZiArIDEyNSwKLQlmdW5jX2J1ZiArIDEzMCwKLQlmdW5jX2J1ZiArIDEzNSwKLQlmdW5jX2J1ZiArIDE0MCwKLQlmdW5jX2J1ZiArIDE0NSwKLQkwLAotCTAsCi0JZnVuY19idWYgKyAxNDksCi0JMCwKLX07Ci0KLXN0cnVjdCBrYmRpYWNydWMgYWNjZW50X3RhYmxlW01BWF9ESUFDUl0gPSB7Ci0JeydgJywgJ0EnLCAwMzAwfSwJeydgJywgJ2EnLCAwMzQwfSwKLQl7J1wnJywgJ0EnLCAwMzAxfSwJeydcJycsICdhJywgMDM0MX0sCi0JeydeJywgJ0EnLCAwMzAyfSwJeydeJywgJ2EnLCAwMzQyfSwKLQl7J34nLCAnQScsIDAzMDN9LAl7J34nLCAnYScsIDAzNDN9LAotCXsnIicsICdBJywgMDMwNH0sCXsnIicsICdhJywgMDM0NH0sCi0JeydPJywgJ0EnLCAwMzA1fSwJeydvJywgJ2EnLCAwMzQ1fSwKLQl7JzAnLCAnQScsIDAzMDV9LAl7JzAnLCAnYScsIDAzNDV9LAotCXsnQScsICdBJywgMDMwNX0sCXsnYScsICdhJywgMDM0NX0sCi0JeydBJywgJ0UnLCAwMzA2fSwJeydhJywgJ2UnLCAwMzQ2fSwKLQl7JywnLCAnQycsIDAzMDd9LAl7JywnLCAnYycsIDAzNDd9LAotCXsnYCcsICdFJywgMDMxMH0sCXsnYCcsICdlJywgMDM1MH0sCi0JeydcJycsICdFJywgMDMxMX0sCXsnXCcnLCAnZScsIDAzNTF9LAotCXsnXicsICdFJywgMDMxMn0sCXsnXicsICdlJywgMDM1Mn0sCi0JeyciJywgJ0UnLCAwMzEzfSwJeyciJywgJ2UnLCAwMzUzfSwKLQl7J2AnLCAnSScsIDAzMTR9LAl7J2AnLCAnaScsIDAzNTR9LAotCXsnXCcnLCAnSScsIDAzMTV9LAl7J1wnJywgJ2knLCAwMzU1fSwKLQl7J14nLCAnSScsIDAzMTZ9LAl7J14nLCAnaScsIDAzNTZ9LAotCXsnIicsICdJJywgMDMxN30sCXsnIicsICdpJywgMDM1N30sCi0JeyctJywgJ0QnLCAwMzIwfSwJeyctJywgJ2QnLCAwMzYwfSwKLQl7J34nLCAnTicsIDAzMjF9LAl7J34nLCAnbicsIDAzNjF9LAotCXsnYCcsICdPJywgMDMyMn0sCXsnYCcsICdvJywgMDM2Mn0sCi0JeydcJycsICdPJywgMDMyM30sCXsnXCcnLCAnbycsIDAzNjN9LAotCXsnXicsICdPJywgMDMyNH0sCXsnXicsICdvJywgMDM2NH0sCi0Jeyd+JywgJ08nLCAwMzI1fSwJeyd+JywgJ28nLCAwMzY1fSwKLQl7JyInLCAnTycsIDAzMjZ9LAl7JyInLCAnbycsIDAzNjZ9LAotCXsnLycsICdPJywgMDMzMH0sCXsnLycsICdvJywgMDM3MH0sCi0JeydgJywgJ1UnLCAwMzMxfSwJeydgJywgJ3UnLCAwMzcxfSwKLQl7J1wnJywgJ1UnLCAwMzMyfSwJeydcJycsICd1JywgMDM3Mn0sCi0JeydeJywgJ1UnLCAwMzMzfSwJeydeJywgJ3UnLCAwMzczfSwKLQl7JyInLCAnVScsIDAzMzR9LAl7JyInLCAndScsIDAzNzR9LAotCXsnXCcnLCAnWScsIDAzMzV9LAl7J1wnJywgJ3knLCAwMzc1fSwKLQl7J1QnLCAnSCcsIDAzMzZ9LAl7J3QnLCAnaCcsIDAzNzZ9LAotCXsncycsICdzJywgMDMzN30sCXsnIicsICd5JywgMDM3N30sCi0JeydzJywgJ3onLCAwMzM3fSwJeydpJywgJ2onLCAwMzc3fSwKLX07Ci0KLXVuc2lnbmVkIGludCBhY2NlbnRfdGFibGVfc2l6ZSA9IDY4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL0tjb25maWcgYi9kcml2ZXJzL2FjcGkvS2NvbmZpZwppbmRleCBjNTJmY2E4Li5iYmE4NjczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvS2NvbmZpZworKysgYi9kcml2ZXJzL2FjcGkvS2NvbmZpZwpAQCAtNCw4ICs0LDYgQEAKIAogbWVudWNvbmZpZyBBQ1BJCiAJYm9vbCAiQUNQSSAoQWR2YW5jZWQgQ29uZmlndXJhdGlvbiBhbmQgUG93ZXIgSW50ZXJmYWNlKSBTdXBwb3J0IgotCWRlcGVuZHMgb24gIVg4Nl9OVU1BUQotCWRlcGVuZHMgb24gIVg4Nl9WSVNXUwogCWRlcGVuZHMgb24gIUlBNjRfSFBfU0lNCiAJZGVwZW5kcyBvbiBJQTY0IHx8IFg4NgogCWRlcGVuZHMgb24gUENJCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvYWMuYyBiL2RyaXZlcnMvYWNwaS9hYy5jCmluZGV4IDViNzNmNmEuLjgzMTg4M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9hYy5jCisrKyBiL2RyaXZlcnMvYWNwaS9hYy5jCkBAIC0yMzMsNiArMjMzLDkgQEAKIAogCWRldmljZSA9IGFjLT5kZXZpY2U7CiAJc3dpdGNoIChldmVudCkgeworCWRlZmF1bHQ6CisJCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU5GTywKKwkJCQkgICJVbnN1cHBvcnRlZCBldmVudCBbMHgleF1cbiIsIGV2ZW50KSk7CiAJY2FzZSBBQ1BJX0FDX05PVElGWV9TVEFUVVM6CiAJY2FzZSBBQ1BJX05PVElGWV9CVVNfQ0hFQ0s6CiAJY2FzZSBBQ1BJX05PVElGWV9ERVZJQ0VfQ0hFQ0s6CkBAIC0yNDQsMTEgKzI0Nyw2IEBACiAjaWZkZWYgQ09ORklHX0FDUElfU1lTRlNfUE9XRVIKIAkJa29iamVjdF91ZXZlbnQoJmFjLT5jaGFyZ2VyLmRldi0+a29iaiwgS09CSl9DSEFOR0UpOwogI2VuZGlmCi0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfSU5GTywKLQkJCQkgICJVbnN1cHBvcnRlZCBldmVudCBbMHgleF1cbiIsIGV2ZW50KSk7Ci0JCWJyZWFrOwogCX0KIAogCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9iYXkuYyBiL2RyaXZlcnMvYWNwaS9iYXkuYwppbmRleCBkMmZjOTQxLi42MWI2YzViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvYmF5LmMKKysrIGIvZHJpdmVycy9hY3BpL2JheS5jCkBAIC0zMDEsMTYgKzMwMSwyMCBAQAogCSAqLwogCXBkZXYtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOwogCi0JaWYgKGFjcGlfYmF5X2FkZF9mcyhuZXdfYmF5KSkgewotCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihuZXdfYmF5LT5wZGV2KTsKLQkJZ290byBiYXlfYWRkX2VycjsKLQl9Ci0KIAkvKiByZWdpc3RlciBmb3IgZXZlbnRzIG9uIHRoaXMgZGV2aWNlICovCiAJc3RhdHVzID0gYWNwaV9pbnN0YWxsX25vdGlmeV9oYW5kbGVyKGhhbmRsZSwgQUNQSV9TWVNURU1fTk9USUZZLAogCQkJYmF5X25vdGlmeSwgbmV3X2JheSk7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQUkVGSVggIkVycm9yIGluc3RhbGxpbmcgYmF5IG5vdGlmeSBoYW5kbGVyXG4iKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyBQUkVGSVggIkVycm9yIGluc3RhbGxpbmcgYmF5IG5vdGlmeSBoYW5kbGVyXG4iKTsKKwkJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIobmV3X2JheS0+cGRldik7CisJCWdvdG8gYmF5X2FkZF9lcnI7CisJfQorCisJaWYgKGFjcGlfYmF5X2FkZF9mcyhuZXdfYmF5KSkgeworCQlhY3BpX3JlbW92ZV9ub3RpZnlfaGFuZGxlcihoYW5kbGUsIEFDUElfU1lTVEVNX05PVElGWSwKKwkJCQkJICAgYmF5X25vdGlmeSk7CisJCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKG5ld19iYXktPnBkZXYpOworCQlnb3RvIGJheV9hZGRfZXJyOwogCX0KIAogCS8qIGlmIHdlIGFyZSBvbiBhIGRvY2sgc3RhdGlvbiwgd2Ugc2hvdWxkIHJlZ2lzdGVyIGZvciBkb2NrCkBAIC0zNzMsNiArMzc3LDkgQEAKIAogCUlOSVRfTElTVF9IRUFEKCZkcml2ZV9iYXlzKTsKIAorCWlmIChhY3BpX2Rpc2FibGVkKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCS8qIGxvb2sgZm9yIGRvY2thYmxlIGRyaXZlIGJheXMgKi8KIAlhY3BpX3dhbGtfbmFtZXNwYWNlKEFDUElfVFlQRV9ERVZJQ0UsIEFDUElfUk9PVF9PQkpFQ1QsCiAJCUFDUElfVUlOVDMyX01BWCwgZmluZF9iYXksICZiYXlzLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9kaXNwYXRjaGVyL2RzZmllbGQuYyBiL2RyaXZlcnMvYWNwaS9kaXNwYXRjaGVyL2RzZmllbGQuYwppbmRleCBjNzgwNzgzLi5mOTg4YTVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZGlzcGF0Y2hlci9kc2ZpZWxkLmMKKysrIGIvZHJpdmVycy9hY3BpL2Rpc3BhdGNoZXIvZHNmaWVsZC5jCkBAIC00NTAsMTAgKzQ1MCw2IEBACiAJCXJldHVybl9BQ1BJX1NUQVRVUyhBRV9CQURfUEFSQU1FVEVSKTsKIAl9CiAKLQlpZiAoIWFyZykgewotCQlyZXR1cm5fQUNQSV9TVEFUVVMoQUVfQU1MX05PX09QRVJBTkQpOwotCX0KLQogCS8qIENyZWF0aW5nIG5ldyBuYW1lc3BhY2Ugbm9kZShzKSwgc2hvdWxkIG5vdCBhbHJlYWR5IGV4aXN0ICovCiAKIAlmbGFncyA9IEFDUElfTlNfTk9fVVBTRUFSQ0ggfCBBQ1BJX05TX0RPTlRfT1BFTl9TQ09QRSB8CkBAIC00NjcsNiArNDYzLDcgQEAKIAogCS8qCiAJICogV2FsayB0aGUgbGlzdCBvZiBlbnRyaWVzIGluIHRoZSBmaWVsZF9saXN0CisJICogTm90ZTogZmllbGRfbGlzdCBjYW4gYmUgb2YgemVybyBsZW5ndGguIEluIHRoaXMgY2FzZSwgQXJnIHdpbGwgYmUgTlVMTC4KIAkgKi8KIAl3aGlsZSAoYXJnKSB7CiAJCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZGlzcGF0Y2hlci9kc21ldGhvZC5jIGIvZHJpdmVycy9hY3BpL2Rpc3BhdGNoZXIvZHNtZXRob2QuYwppbmRleCBlNDhhM2VhLi4yNTA5ODA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZGlzcGF0Y2hlci9kc21ldGhvZC5jCisrKyBiL2RyaXZlcnMvYWNwaS9kaXNwYXRjaGVyL2RzbWV0aG9kLmMKQEAgLTU2NSw3ICs1NjUsNyBAQAogCiAJCQkJYWNwaV9vc19yZWxlYXNlX211dGV4KG1ldGhvZF9kZXNjLT5tZXRob2QuCiAJCQkJCQkgICAgICBtdXRleC0+bXV0ZXgub3NfbXV0ZXgpOwotCQkJCW1ldGhvZF9kZXNjLT5tZXRob2QubXV0ZXgtPm11dGV4LnRocmVhZF9pZCA9IDA7CisJCQkJbWV0aG9kX2Rlc2MtPm1ldGhvZC5tdXRleC0+bXV0ZXgudGhyZWFkX2lkID0gTlVMTDsKIAkJCX0KIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZG9jay5jIGIvZHJpdmVycy9hY3BpL2RvY2suYwppbmRleCBmYTQ0ZmI5Li5iYjdjNTFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZG9jay5jCisrKyBiL2RyaXZlcnMvYWNwaS9kb2NrLmMKQEAgLTgzNCw3ICs4MzQsNyBAQAogCQlnb3RvIGRvY2tfYWRkX2VycjsKIAl9CiAKLQlwcmludGsoS0VSTl9JTkZPIFBSRUZJWCAiJXMgXG4iLCBBQ1BJX0RPQ0tfRFJJVkVSX0RFU0NSSVBUSU9OKTsKKwlwcmludGsoS0VSTl9JTkZPIFBSRUZJWCAiJXNcbiIsIEFDUElfRE9DS19EUklWRVJfREVTQ1JJUFRJT04pOwogCiAJcmV0dXJuIDA7CiAKQEAgLTkxNyw2ICs5MTcsOSBAQAogCiAJZG9ja19zdGF0aW9uID0gTlVMTDsKIAorCWlmIChhY3BpX2Rpc2FibGVkKQorCQlyZXR1cm4gMDsKKwogCS8qIGxvb2sgZm9yIGEgZG9jayBzdGF0aW9uICovCiAJYWNwaV93YWxrX25hbWVzcGFjZShBQ1BJX1RZUEVfREVWSUNFLCBBQ1BJX1JPT1RfT0JKRUNULAogCQkJICAgIEFDUElfVUlOVDMyX01BWCwgZmluZF9kb2NrLCAmbnVtLCBOVUxMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9lYy5jIGIvZHJpdmVycy9hY3BpL2VjLmMKaW5kZXggMDkyNDk5Mi4uNTYyMmFlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL2VjLmMKKysrIGIvZHJpdmVycy9hY3BpL2VjLmMKQEAgLTE5NCw3ICsxOTQsNyBAQAogCQl3aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZGVsYXkpKSB7CiAJCQlpZiAoYWNwaV9lY19jaGVja19zdGF0dXMoZWMsIGV2ZW50KSkKIAkJCQlyZXR1cm4gMDsKLQkJCXVkZWxheShBQ1BJX0VDX1VERUxBWSk7CisJCQltc2xlZXAoMSk7CiAJCX0KIAl9CiAJcHJfZXJyKFBSRUZJWCAiYWNwaV9lY193YWl0IHRpbWVvdXQsIHN0YXR1cyA9IDB4JTIuMngsIGV2ZW50ID0gJXNcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZXhlY3V0ZXIvZXhjb25maWcuYyBiL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCmluZGV4IDI0ZGE5MjEuLjM5ZDc0MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCisrKyBiL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leGNvbmZpZy5jCkBAIC0zNzUsOSArMzc1LDE1IEBACiAJCWdvdG8gY2xlYW51cDsKIAl9CiAKKwkvKgorCSAqIEFkZCB0aGUgdGFibGUgdG8gdGhlIG5hbWVzcGFjZS4KKwkgKgorCSAqIE5vdGU6IFdlIGxvYWQgdGhlIHRhYmxlIG9iamVjdHMgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIG5hbWVzcGFjZS4KKwkgKiBUaGlzIGFwcGVhcnMgdG8gZ28gYWdhaW5zdCB0aGUgQUNQSSBzcGVjaWZpY2F0aW9uLCBidXQgd2UgZG8gaXQgZm9yCisJICogY29tcGF0aWJpbGl0eSB3aXRoIG90aGVyIEFDUEkgaW1wbGVtZW50YXRpb25zLgorCSAqLwogCXN0YXR1cyA9Ci0JICAgIGFjcGlfZXhfYWRkX3RhYmxlKHRhYmxlX2luZGV4LCB3YWxrX3N0YXRlLT5zY29wZV9pbmZvLT5zY29wZS5ub2RlLAotCQkJICAgICAgJmRkYl9oYW5kbGUpOworCSAgICBhY3BpX2V4X2FkZF90YWJsZSh0YWJsZV9pbmRleCwgYWNwaV9nYmxfcm9vdF9ub2RlLCAmZGRiX2hhbmRsZSk7CiAJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7CiAKIAkJLyogT24gZXJyb3IsIHRhYmxlX3B0ciB3YXMgZGVhbGxvY2F0ZWQgYWJvdmUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leG11dGV4LmMgYi9kcml2ZXJzL2FjcGkvZXhlY3V0ZXIvZXhtdXRleC5jCmluZGV4IGM4NzNhYjQuLmE4YmYzZDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9leGVjdXRlci9leG11dGV4LmMKKysrIGIvZHJpdmVycy9hY3BpL2V4ZWN1dGVyL2V4bXV0ZXguYwpAQCAtMzI2LDcgKzMyNiw3IEBACiAKIAkvKiBDbGVhciBtdXRleCBpbmZvICovCiAKLQlvYmpfZGVzYy0+bXV0ZXgudGhyZWFkX2lkID0gMDsKKwlvYmpfZGVzYy0+bXV0ZXgudGhyZWFkX2lkID0gTlVMTDsKIAlyZXR1cm5fQUNQSV9TVEFUVVMoc3RhdHVzKTsKIH0KIApAQCAtNDYzLDcgKzQ2Myw3IEBACiAJCS8qIE1hcmsgbXV0ZXggdW5vd25lZCAqLwogCiAJCW9ial9kZXNjLT5tdXRleC5vd25lcl90aHJlYWQgPSBOVUxMOwotCQlvYmpfZGVzYy0+bXV0ZXgudGhyZWFkX2lkID0gMDsKKwkJb2JqX2Rlc2MtPm11dGV4LnRocmVhZF9pZCA9IE5VTEw7CiAKIAkJLyogVXBkYXRlIFRocmVhZCBzeW5jX2xldmVsIChMYXN0IG11dGV4IGlzIHRoZSBpbXBvcnRhbnQgb25lKSAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvZ2x1ZS5jIGIvZHJpdmVycy9hY3BpL2dsdWUuYwppbmRleCAwNmY4NjM0Li45YjIyN2Q0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZ2x1ZS5jCisrKyBiL2RyaXZlcnMvYWNwaS9nbHVlLmMKQEAgLTI3Miw2ICsyNzIsMTIgQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCBydGNfd2FrZV9zZXR1cCh2b2lkKQogewogCWFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyKEFDUElfRVZFTlRfUlRDLCBydGNfaGFuZGxlciwgTlVMTCk7CisJLyoKKwkgKiBBZnRlciB0aGUgUlRDIGhhbmRsZXIgaXMgaW5zdGFsbGVkLCB0aGUgRml4ZWRfUlRDIGV2ZW50IHNob3VsZAorCSAqIGJlIGRpc2FibGVkLiBPbmx5IHdoZW4gdGhlIFJUQyBhbGFybSBpcyBzZXQgd2lsbCBpdCBiZSBlbmFibGVkLgorCSAqLworCWFjcGlfY2xlYXJfZXZlbnQoQUNQSV9FVkVOVF9SVEMpOworCWFjcGlfZGlzYWJsZV9ldmVudChBQ1BJX0VWRU5UX1JUQywgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0Y193YWtlX29uKHN0cnVjdCBkZXZpY2UgKmRldikKQEAgLTMyNyw2ICszMzMsOSBAQAogewogCXN0cnVjdCBkZXZpY2UgKmRldiA9IGdldF9ydGNfZGV2KCk7CiAKKwlpZiAoYWNwaV9kaXNhYmxlZCkKKwkJcmV0dXJuIDA7CisKIAlpZiAoZGV2KSB7CiAJCXJ0Y193YWtlX3NldHVwKCk7CiAJCXJ0Y19pbmZvLndha2Vfb24gPSBydGNfd2FrZV9vbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9oYXJkd2FyZS9od3NsZWVwLmMgYi9kcml2ZXJzL2FjcGkvaGFyZHdhcmUvaHdzbGVlcC5jCmluZGV4IGQ5OTM3ZTAuLmRiYTNjZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9oYXJkd2FyZS9od3NsZWVwLmMKKysrIGIvZHJpdmVycy9hY3BpL2hhcmR3YXJlL2h3c2xlZXAuYwpAQCAtMjIzLDE1ICsyMjMsMTcgQEAKIAkJYnJlYWs7CiAJfQogCi0JLyogU2V0IHRoZSBzeXN0ZW0gaW5kaWNhdG9ycyB0byBzaG93IHRoZSBkZXNpcmVkIHNsZWVwIHN0YXRlLiAqLwotCisJLyoKKwkgKiBTZXQgdGhlIHN5c3RlbSBpbmRpY2F0b3JzIHRvIHNob3cgdGhlIGRlc2lyZWQgc2xlZXAgc3RhdGUuCisJICogX1NTVCBpcyBhbiBvcHRpb25hbCBtZXRob2QgKHJldHVybiBubyBlcnJvciBpZiBub3QgZm91bmQpCisJICovCiAJc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9vYmplY3QoTlVMTCwgTUVUSE9EX05BTUVfX1NTVCwgJmFyZ19saXN0LCBOVUxMKTsKIAlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykgJiYgc3RhdHVzICE9IEFFX05PVF9GT1VORCkgewogCQlBQ1BJX0VYQ0VQVElPTigoQUVfSU5GTywgc3RhdHVzLAogCQkJCSJXaGlsZSBleGVjdXRpbmcgbWV0aG9kIF9TU1QiKSk7CiAJfQogCi0JcmV0dXJuX0FDUElfU1RBVFVTKHN0YXR1cyk7CisJcmV0dXJuX0FDUElfU1RBVFVTKEFFX09LKTsKIH0KIAogQUNQSV9FWFBPUlRfU1lNQk9MKGFjcGlfZW50ZXJfc2xlZXBfc3RhdGVfcHJlcCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9udW1hLmMgYi9kcml2ZXJzL2FjcGkvbnVtYS5jCmluZGV4IDVkNTljYjMuLjY1OGU1ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9udW1hLmMKKysrIGIvZHJpdmVycy9hY3BpL251bWEuYwpAQCAtMTQwLDE5ICsxNDAsNDIgQEAKIAl9CiB9CiAKKy8qCisgKiBBIGxvdCBvZiBCSU9TIGZpbGwgaW4gMTAgKD0gbm8gZGlzdGFuY2UpIGV2ZXJ5d2hlcmUuIFRoaXMgbWVzc2VzCisgKiB1cCB0aGUgTlVNQSBoZXVyaXN0aWNzIHdoaWNoIHdhbnRzIHRoZSBsb2NhbCBub2RlIHRvIGhhdmUgYSBzbWFsbGVyCisgKiBkaXN0YW5jZSB0aGFuIHRoZSBvdGhlcnMuCisgKiBEbyBzb21lIHF1aWNrIGNoZWNrcyBoZXJlIGFuZCBvbmx5IHVzZSB0aGUgU0xJVCBpZiBpdCBwYXNzZXMuCisgKi8KK3N0YXRpYyBfX2luaXQgaW50IHNsaXRfdmFsaWQoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqc2xpdCkKK3sKKwlpbnQgaSwgajsKKwlpbnQgZCA9IHNsaXQtPmxvY2FsaXR5X2NvdW50OworCWZvciAoaSA9IDA7IGkgPCBkOyBpKyspIHsKKwkJZm9yIChqID0gMDsgaiA8IGQ7IGorKykgIHsKKwkJCXU4IHZhbCA9IHNsaXQtPmVudHJ5W2QqaSArIGpdOworCQkJaWYgKGkgPT0gaikgeworCQkJCWlmICh2YWwgIT0gTE9DQUxfRElTVEFOQ0UpCisJCQkJCXJldHVybiAwOworCQkJfSBlbHNlIGlmICh2YWwgPD0gTE9DQUxfRElTVEFOQ0UpCisJCQkJcmV0dXJuIDA7CisJCX0KKwl9CisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0IGFjcGlfcGFyc2Vfc2xpdChzdHJ1Y3QgYWNwaV90YWJsZV9oZWFkZXIgKnRhYmxlKQogewogCXN0cnVjdCBhY3BpX3RhYmxlX3NsaXQgKnNsaXQ7Ci0JdTMyIGxvY2FsaXRpZXM7CiAKIAlpZiAoIXRhYmxlKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXNsaXQgPSAoc3RydWN0IGFjcGlfdGFibGVfc2xpdCAqKXRhYmxlOwogCi0JLyogZG93bmNhc3QganVzdCBmb3IgJWxsdSB2cyAlbHUgZm9yIGkzODYvaWE2NCAgKi8KLQlsb2NhbGl0aWVzID0gKHUzMikgc2xpdC0+bG9jYWxpdHlfY291bnQ7Ci0KKwlpZiAoIXNsaXRfdmFsaWQoc2xpdCkpIHsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQUNQSTogU0xJVCB0YWJsZSBsb29rcyBpbnZhbGlkLiBOb3QgdXNlZC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAJYWNwaV9udW1hX3NsaXRfaW5pdChzbGl0KTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3BhcnNlci9wc2FyZ3MuYyBiL2RyaXZlcnMvYWNwaS9wYXJzZXIvcHNhcmdzLmMKaW5kZXggZjFlOGJmNi4uZTk0NDYzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3BhcnNlci9wc2FyZ3MuYworKysgYi9kcml2ZXJzL2FjcGkvcGFyc2VyL3BzYXJncy5jCkBAIC0yNjgsNyArMjY4LDcgQEAKIAkgKi8KIAlpZiAoQUNQSV9TVUNDRVNTKHN0YXR1cykgJiYKIAkgICAgcG9zc2libGVfbWV0aG9kX2NhbGwgJiYgKG5vZGUtPnR5cGUgPT0gQUNQSV9UWVBFX01FVEhPRCkpIHsKLQkJaWYgKHdhbGtfc3RhdGUtPm9wLT5jb21tb24uYW1sX29wY29kZSA9PSBBTUxfVU5MT0FEX09QKSB7CisJCWlmICh3YWxrX3N0YXRlLT5vcGNvZGUgPT0gQU1MX1VOTE9BRF9PUCkgewogCQkJLyoKIAkJCSAqIGFjcGlfcHNfZ2V0X25leHRfbmFtZXN0cmluZyBoYXMgaW5jcmVhc2VkIHRoZSBBTUwgcG9pbnRlciwKIAkJCSAqIHNvIHdlIG5lZWQgdG8gcmVzdG9yZSB0aGUgc2F2ZWQgQU1MIHBvaW50ZXIgZm9yIG1ldGhvZCBjYWxsLgpAQCAtNjkxLDcgKzY5MSw3IEBACiAKIAkJCS8qIFRvIHN1cHBvcnQgc3VwZXJfbmFtZSBhcmcgb2YgVW5sb2FkICovCiAKLQkJCWlmICh3YWxrX3N0YXRlLT5vcC0+Y29tbW9uLmFtbF9vcGNvZGUgPT0gQU1MX1VOTE9BRF9PUCkgeworCQkJaWYgKHdhbGtfc3RhdGUtPm9wY29kZSA9PSBBTUxfVU5MT0FEX09QKSB7CiAJCQkJc3RhdHVzID0KIAkJCQkgICAgYWNwaV9wc19nZXRfbmV4dF9uYW1lcGF0aCh3YWxrX3N0YXRlLAogCQkJCQkJCSAgICAgIHBhcnNlcl9zdGF0ZSwgYXJnLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9jb3JlLmMgYi9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2NvcmUuYwppbmRleCAzODZlNWFhLi45ZGQwZmE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2NvcmUuYworKysgYi9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2NvcmUuYwpAQCAtODYsNyArODYsNiBAQAogc3RhdGljIHZvaWQgYWNwaV9wcm9jZXNzb3Jfbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKTsKIHN0YXRpYyBhY3BpX3N0YXR1cyBhY3BpX3Byb2Nlc3Nvcl9ob3RhZGRfaW5pdChhY3BpX2hhbmRsZSBoYW5kbGUsIGludCAqcF9jcHUpOwogc3RhdGljIGludCBhY3BpX3Byb2Nlc3Nvcl9oYW5kbGVfZWplY3Qoc3RydWN0IGFjcGlfcHJvY2Vzc29yICpwcik7Ci1leHRlcm4gaW50IGFjcGlfcHJvY2Vzc29yX3RzdGF0ZV9oYXNfY2hhbmdlZChzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByKTsKIAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlX2lkIHByb2Nlc3Nvcl9kZXZpY2VfaWRzW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvcHJvY2Vzc29yX2lkbGUuYyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jCmluZGV4IDJkZDJjMWYuLjU1NmVlMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jCisrKyBiL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfaWRsZS5jCkBAIC0xNjY5LDYgKzE2NjksNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlkZXYtPmNwdSA9IHByLT5pZDsKIAlmb3IgKGkgPSAwOyBpIDwgQ1BVSURMRV9TVEFURV9NQVg7IGkrKykgewogCQlkZXYtPnN0YXRlc1tpXS5uYW1lWzBdID0gJ1wwJzsKIAkJZGV2LT5zdGF0ZXNbaV0uZGVzY1swXSA9ICdcMCc7CkBAIC0xNzM4LDcgKzE3MzksNyBAQAogCiBpbnQgYWNwaV9wcm9jZXNzb3JfY3N0X2hhc19jaGFuZ2VkKHN0cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIpCiB7Ci0JaW50IHJldDsKKwlpbnQgcmV0ID0gMDsKIAogCWlmIChib290X29wdGlvbl9pZGxlX292ZXJyaWRlKQogCQlyZXR1cm4gMDsKQEAgLTE3NTYsOCArMTc1NywxMCBAQAogCWNwdWlkbGVfcGF1c2VfYW5kX2xvY2soKTsKIAljcHVpZGxlX2Rpc2FibGVfZGV2aWNlKCZwci0+cG93ZXIuZGV2KTsKIAlhY3BpX3Byb2Nlc3Nvcl9nZXRfcG93ZXJfaW5mbyhwcik7Ci0JYWNwaV9wcm9jZXNzb3Jfc2V0dXBfY3B1aWRsZShwcik7Ci0JcmV0ID0gY3B1aWRsZV9lbmFibGVfZGV2aWNlKCZwci0+cG93ZXIuZGV2KTsKKwlpZiAocHItPmZsYWdzLnBvd2VyKSB7CisJCWFjcGlfcHJvY2Vzc29yX3NldHVwX2NwdWlkbGUocHIpOworCQlyZXQgPSBjcHVpZGxlX2VuYWJsZV9kZXZpY2UoJnByLT5wb3dlci5kZXYpOworCX0KIAljcHVpZGxlX3Jlc3VtZV9hbmRfdW5sb2NrKCk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtMTgxMyw3ICsxODE2LDYgQEAKIAlpZiAocHItPmZsYWdzLnBvd2VyKSB7CiAjaWZkZWYgQ09ORklHX0NQVV9JRExFCiAJCWFjcGlfcHJvY2Vzc29yX3NldHVwX2NwdWlkbGUocHIpOwotCQlwci0+cG93ZXIuZGV2LmNwdSA9IHByLT5pZDsKIAkJaWYgKGNwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKCZwci0+cG93ZXIuZGV2KSkKIAkJCXJldHVybiAtRUlPOwogI2VuZGlmCkBAIC0xODUwLDggKzE4NTIsNyBAQAogCQlyZXR1cm4gMDsKIAogI2lmZGVmIENPTkZJR19DUFVfSURMRQotCWlmIChwci0+ZmxhZ3MucG93ZXIpCi0JCWNwdWlkbGVfdW5yZWdpc3Rlcl9kZXZpY2UoJnByLT5wb3dlci5kZXYpOworCWNwdWlkbGVfdW5yZWdpc3Rlcl9kZXZpY2UoJnByLT5wb3dlci5kZXYpOwogI2VuZGlmCiAJcHItPmZsYWdzLnBvd2VyX3NldHVwX2RvbmUgPSAwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvc2xlZXAvbWFpbi5jIGIvZHJpdmVycy9hY3BpL3NsZWVwL21haW4uYwppbmRleCBjM2IwY2Q4Li40OTVjNjNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvc2xlZXAvbWFpbi5jCisrKyBiL2RyaXZlcnMvYWNwaS9zbGVlcC9tYWluLmMKQEAgLTM2LDkgKzM2LDggQEAKIAkJaWYgKCFhY3BpX3dha2V1cF9hZGRyZXNzKSB7CiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQotCQlhY3BpX3NldF9maXJtd2FyZV93YWtpbmdfdmVjdG9yKChhY3BpX3BoeXNpY2FsX2FkZHJlc3MpCi0JCQkJCQl2aXJ0X3RvX3BoeXMoKHZvaWQgKikKLQkJCQkJCQkgICAgIGFjcGlfd2FrZXVwX2FkZHJlc3MpKTsKKwkJYWNwaV9zZXRfZmlybXdhcmVfd2FraW5nX3ZlY3RvcigKKwkJCQkoYWNwaV9waHlzaWNhbF9hZGRyZXNzKWFjcGlfd2FrZXVwX2FkZHJlc3MpOwogCiAJfQogCUFDUElfRkxVU0hfQ1BVX0NBQ0hFKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvc2xlZXAvcHJvYy5jIGIvZHJpdmVycy9hY3BpL3NsZWVwL3Byb2MuYwppbmRleCA4YTVmZTg3Li40ZWJiYmEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvc2xlZXAvcHJvYy5jCisrKyBiL2RyaXZlcnMvYWNwaS9zbGVlcC9wcm9jLmMKQEAgLTMxNSw4ICszMTUsMTEgQEAKIAkJY21vc19iY2Rfd3JpdGUoZGF5LCBhY3BpX2dibF9GQURULmRheV9hbGFybSwgcnRjX2NvbnRyb2wpOwogCWlmIChhY3BpX2dibF9GQURULm1vbnRoX2FsYXJtKQogCQljbW9zX2JjZF93cml0ZShtbywgYWNwaV9nYmxfRkFEVC5tb250aF9hbGFybSwgcnRjX2NvbnRyb2wpOwotCWlmIChhY3BpX2dibF9GQURULmNlbnR1cnkpCisJaWYgKGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSkgeworCQlpZiAoYWRqdXN0KQorCQkJeXIgKz0gY21vc19iY2RfcmVhZChhY3BpX2dibF9GQURULmNlbnR1cnksIHJ0Y19jb250cm9sKSAqIDEwMDsKIAkJY21vc19iY2Rfd3JpdGUoeXIgLyAxMDAsIGFjcGlfZ2JsX0ZBRFQuY2VudHVyeSwgcnRjX2NvbnRyb2wpOworCX0KIAkvKiBlbmFibGUgdGhlIHJ0YyBhbGFybSBpbnRlcnJ1cHQgKi8KIAlydGNfY29udHJvbCB8PSBSVENfQUlFOwogCUNNT1NfV1JJVEUocnRjX2NvbnRyb2wsIFJUQ19DT05UUk9MKTsKQEAgLTQ5NSw2ICs0OTgsMTIgQEAKIAkJICAgIGFjcGlfcm9vdF9kaXIsICZhY3BpX3N5c3RlbV9hbGFybV9mb3BzKTsKIAogCWFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyKEFDUElfRVZFTlRfUlRDLCBydGNfaGFuZGxlciwgTlVMTCk7CisJLyoKKwkgKiBEaXNhYmxlIHRoZSBSVEMgZXZlbnQgYWZ0ZXIgaW5zdGFsbGluZyBSVEMgaGFuZGxlci4KKwkgKiBPbmx5IHdoZW4gUlRDIGFsYXJtIGlzIHNldCB3aWxsIGl0IGJlIGVuYWJsZWQuCisJICovCisJYWNwaV9jbGVhcl9ldmVudChBQ1BJX0VWRU5UX1JUQyk7CisJYWNwaV9kaXNhYmxlX2V2ZW50KEFDUElfRVZFTlRfUlRDLCAwKTsKICNlbmRpZgkJCQkvKiBIQVZFX0FDUElfTEVHQUNZX0FMQVJNICovCiAKIAkvKiAnd2FrZXVwIGRldmljZScgW1IvV10gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9zeXN0ZW0uYyBiL2RyaXZlcnMvYWNwaS9zeXN0ZW0uYwppbmRleCA3NjlmMjQ4Li41YmQyZGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvc3lzdGVtLmMKKysrIGIvZHJpdmVycy9hY3BpL3N5c3RlbS5jCkBAIC03Nyw3ICs3Nyw2IEBACiAJICAgIGNvbnRhaW5lcl9vZihiaW5fYXR0ciwgc3RydWN0IGFjcGlfdGFibGVfYXR0ciwgYXR0cik7CiAJc3RydWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZV9oZWFkZXIgPSBOVUxMOwogCWFjcGlfc3RhdHVzIHN0YXR1czsKLQlzc2l6ZV90IHJldF9jb3VudCA9IGNvdW50OwogCiAJc3RhdHVzID0KIAkgICAgYWNwaV9nZXRfdGFibGUodGFibGVfYXR0ci0+bmFtZSwgdGFibGVfYXR0ci0+aW5zdGFuY2UsCkBAIC04NSwxOCArODQsOCBAQAogCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKLQlpZiAob2Zmc2V0ID49IHRhYmxlX2hlYWRlci0+bGVuZ3RoKSB7Ci0JCXJldF9jb3VudCA9IDA7Ci0JCWdvdG8gZW5kOwotCX0KLQotCWlmIChvZmZzZXQgKyByZXRfY291bnQgPiB0YWJsZV9oZWFkZXItPmxlbmd0aCkKLQkJcmV0X2NvdW50ID0gdGFibGVfaGVhZGVyLT5sZW5ndGggLSBvZmZzZXQ7Ci0KLQltZW1jcHkoYnVmLCAoKGNoYXIgKil0YWJsZV9oZWFkZXIpICsgb2Zmc2V0LCByZXRfY291bnQpOwotCi0gICAgICBlbmQ6Ci0JcmV0dXJuIHJldF9jb3VudDsKKwlyZXR1cm4gbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIoYnVmLCBjb3VudCwgJm9mZnNldCwKKwkJCQkJdGFibGVfaGVhZGVyLCB0YWJsZV9oZWFkZXItPmxlbmd0aCk7CiB9CiAKIHN0YXRpYyB2b2lkIGFjcGlfdGFibGVfYXR0cl9pbml0KHN0cnVjdCBhY3BpX3RhYmxlX2F0dHIgKnRhYmxlX2F0dHIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvdGFibGVzL3RiaW5zdGFsLmMgYi9kcml2ZXJzL2FjcGkvdGFibGVzL3RiaW5zdGFsLmMKaW5kZXggNDAyZjkzZS4uNTMzNmNlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3RhYmxlcy90Ymluc3RhbC5jCisrKyBiL2RyaXZlcnMvYWNwaS90YWJsZXMvdGJpbnN0YWwuYwpAQCAtMTIzLDI0ICsxMjMsMTMgQEAKIAkJfQogCX0KIAotCS8qIFRoZSB0YWJsZSBtdXN0IGJlIGVpdGhlciBhbiBTU0RUIG9yIGEgUFNEVCBvciBhbiBPRU14ICovCi0KLQlpZiAoIUFDUElfQ09NUEFSRV9OQU1FKHRhYmxlX2Rlc2MtPnBvaW50ZXItPnNpZ25hdHVyZSwgQUNQSV9TSUdfUFNEVCkmJgotCSAgICAhQUNQSV9DT01QQVJFX05BTUUodGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlLCBBQ1BJX1NJR19TU0RUKSYmCi0JICAgIHN0cm5jbXAodGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlLCAiT0VNIiwgMykpIHsKLQkJLyogQ2hlY2sgZm9yIGEgcHJpbnRhYmxlIG5hbWUgKi8KLQkJaWYgKGFjcGlfdXRfdmFsaWRfYWNwaV9uYW1lKAotCQkJKih1MzIgKikgdGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlKSkgewotCQkJQUNQSV9FUlJPUigoQUVfSU5GTywgIlRhYmxlIGhhcyBpbnZhbGlkIHNpZ25hdHVyZSAiCi0JCQkJCSJbJTQuNHNdLCBtdXN0IGJlIFNTRFQgb3IgUFNEVCIsCi0JCQkJICAgIHRhYmxlX2Rlc2MtPnBvaW50ZXItPnNpZ25hdHVyZSkpOwotCQl9IGVsc2UgewotCQkJQUNQSV9FUlJPUigoQUVfSU5GTywgIlRhYmxlIGhhcyBpbnZhbGlkIHNpZ25hdHVyZSAiCi0JCQkJCSIoMHglOC44WCksIG11c3QgYmUgU1NEVCBvciBQU0RUIiwKLQkJCQkgICAgKih1MzIgKikgdGFibGVfZGVzYy0+cG9pbnRlci0+c2lnbmF0dXJlKSk7Ci0JCX0KLQkJcmV0dXJuX0FDUElfU1RBVFVTKEFFX0JBRF9TSUdOQVRVUkUpOwotCX0KKwkvKgorCSAqIE9yaWdpbmFsbHksIHdlIGNoZWNrZWQgdGhlIHRhYmxlIHNpZ25hdHVyZSBmb3IgIlNTRFQiIG9yICJQU0RUIiBoZXJlLgorCSAqIE5leHQsIHdlIGFkZGVkIHN1cHBvcnQgZm9yIE9FTXggdGFibGVzLCBzaWduYXR1cmUgIk9FTSIuCisJICogVmFsaWQgdGFibGVzIHdlcmUgZW5jb3VudGVyZWQgd2l0aCBhIG51bGwgc2lnbmF0dXJlLCBzbyB3ZSd2ZSBqdXN0CisJICogZ2l2ZW4gdXAgb24gdmFsaWRhdGluZyB0aGUgc2lnbmF0dXJlLCBzaW5jZSBpdCBzZWVtcyB0byBiZSBhIHdhc3RlCisJICogb2YgY29kZS4gVGhlIG9yaWdpbmFsIGNvZGUgd2FzIHJlbW92ZWQgKDA1LzIwMDgpLgorCSAqLwogCiAJKHZvaWQpYWNwaV91dF9hY3F1aXJlX211dGV4KEFDUElfTVRYX1RBQkxFUyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS90YWJsZXMvdGJ4ZmFjZS5jIGIvZHJpdmVycy9hY3BpL3RhYmxlcy90YnhmYWNlLmMKaW5kZXggZmI1N2I5My4uMGUzMTk2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3RhYmxlcy90YnhmYWNlLmMKKysrIGIvZHJpdmVycy9hY3BpL3RhYmxlcy90YnhmYWNlLmMKQEAgLTU0MCw3ICs1NDAsNyBAQAogCQlhY3BpX3RiX3ByaW50X3RhYmxlX2hlYWRlcigwLCB0YWJsZSk7CiAKIAkJaWYgKG5vX2F1dG9fc3NkdCA9PSAwKSB7Ci0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJBQ1BJOiBEU0RUIG92ZXJyaWRlIHVzZXMgb3JpZ2luYWwgU1NEVHMgdW5sZXNzIFwiYWNwaV9ub19hdXRvX3NzZHRcIiIpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiQUNQSTogRFNEVCBvdmVycmlkZSB1c2VzIG9yaWdpbmFsIFNTRFRzIHVubGVzcyBcImFjcGlfbm9fYXV0b19zc2R0XCJcbiIpOwogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvdGhlcm1hbC5jIGIvZHJpdmVycy9hY3BpL3RoZXJtYWwuYwppbmRleCA1MDQzODViLi44NGM3OTVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvdGhlcm1hbC5jCisrKyBiL2RyaXZlcnMvYWNwaS90aGVybWFsLmMKQEAgLTM2NCwxMCArMzY0LDE3IEBACiAJaWYgKGZsYWcgJiBBQ1BJX1RSSVBTX0NSSVRJQ0FMKSB7CiAJCXN0YXR1cyA9IGFjcGlfZXZhbHVhdGVfaW50ZWdlcih0ei0+ZGV2aWNlLT5oYW5kbGUsCiAJCQkJIl9DUlQiLCBOVUxMLCAmdHotPnRyaXBzLmNyaXRpY2FsLnRlbXBlcmF0dXJlKTsKLQkJaWYgKEFDUElfRkFJTFVSRShzdGF0dXMpKSB7CisJCS8qCisJCSAqIFRyZWF0IGZyZWV6aW5nIHRlbXBlcmF0dXJlcyBhcyBpbnZhbGlkIGFzIHdlbGw7IHNvbWUKKwkJICogQklPU2VzIHJldHVybiByZWFsbHkgbG93IHZhbHVlcyBhbmQgY2F1c2UgcmVib290cyBhdCBzdGFydHVwLgorCQkgKiBCZWxvdyB6ZXJvIChDZWxjaXVzKSB2YWx1ZXMgY2xlYXJseSBhcmVuJ3QgcmlnaHQgZm9yIHN1cmUuLgorCQkgKiAuLi4gc28gbGV0cyBkaXNjYXJkIHRob3NlIGFzIGludmFsaWQuCisJCSAqLworCQlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykgfHwKKwkJCQl0ei0+dHJpcHMuY3JpdGljYWwudGVtcGVyYXR1cmUgPD0gMjczMikgewogCQkJdHotPnRyaXBzLmNyaXRpY2FsLmZsYWdzLnZhbGlkID0gMDsKIAkJCUFDUElfRVhDRVBUSU9OKChBRV9JTkZPLCBzdGF0dXMsCi0JCQkJCSJObyBjcml0aWNhbCB0aHJlc2hvbGQiKSk7CisJCQkJCSJObyBvciBpbnZhbGlkIGNyaXRpY2FsIHRocmVzaG9sZCIpKTsKIAkJCXJldHVybiAtRU5PREVWOwogCQl9IGVsc2UgewogCQkJdHotPnRyaXBzLmNyaXRpY2FsLmZsYWdzLnZhbGlkID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS91dGlsaXRpZXMvdXRtaXNjLmMgYi9kcml2ZXJzL2FjcGkvdXRpbGl0aWVzL3V0bWlzYy5jCmluZGV4IGU0YmE3MTkuLjFmMDU3YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYWNwaS91dGlsaXRpZXMvdXRtaXNjLmMKKysrIGIvZHJpdmVycy9hY3BpL3V0aWxpdGllcy91dG1pc2MuYwpAQCAtMTA0OCw2ICsxMDQ4LDcgQEAKIAl2YV9zdGFydChhcmdzLCBmb3JtYXQpOwogCWFjcGlfb3NfdnByaW50Zihmb3JtYXQsIGFyZ3MpOwogCWFjcGlfb3NfcHJpbnRmKCIgWyVYXVxuIiwgQUNQSV9DQV9WRVJTSU9OKTsKKwl2YV9lbmQoYXJncyk7CiB9CiAKIEVYUE9SVF9TWU1CT0woYWNwaV91dF9leGNlcHRpb24pOwpAQCAtMTA2Myw3ICsxMDY0LDYgQEAKIAlhY3BpX29zX3ZwcmludGYoZm9ybWF0LCBhcmdzKTsKIAlhY3BpX29zX3ByaW50ZigiIFslWF1cbiIsIEFDUElfQ0FfVkVSU0lPTik7CiAJdmFfZW5kKGFyZ3MpOwotCXZhX2VuZChhcmdzKTsKIH0KIAogdm9pZCBBQ1BJX0lOVEVSTkFMX1ZBUl9YRkFDRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL3ZpZGVvLmMgYi9kcml2ZXJzL2FjcGkvdmlkZW8uYwppbmRleCA1ZTVkZGEzYS4uZDA4OWM0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3ZpZGVvLmMKKysrIGIvZHJpdmVycy9hY3BpL3ZpZGVvLmMKQEAgLTE3MTMsNyArMTcxMyw4IEBACiAKIAkJc3RhdHVzID0gYWNwaV92aWRlb19idXNfZ2V0X29uZV9kZXZpY2UoZGV2LCB2aWRlbyk7CiAJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgewotCQkJQUNQSV9FWENFUFRJT04oKEFFX0lORk8sIHN0YXR1cywgIkNhbnQgYXR0YWNoIGRldmljZSIpKTsKKwkJCUFDUElfREVCVUdfUFJJTlQoKEFDUElfREJfV0FSTiwKKwkJCQkJIkNhbnQgYXR0YWNoIGRldmljZSIpKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvS2NvbmZpZyBiL2RyaXZlcnMvYXRhL0tjb25maWcKaW5kZXggOWJmMjk4Ni4uYWU4NDk0OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvS2NvbmZpZworKysgYi9kcml2ZXJzL2F0YS9LY29uZmlnCkBAIC02NTEsOSArNjUxLDE3IEBACiAJICBTdXBwb3J0IGZvciB0aGUgV2luYm9uZCBXODM3NTlBIGNvbnRyb2xsZXIgb24gVmVzYSBMb2NhbCBCdXMKIAkgIHN5c3RlbXMuCiAKK2NvbmZpZyBIQVZFX1BBVEFfUExBVEZPUk0KKwlib29sCisJaGVscAorCSAgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb25maWd1cmF0aW9uIG5vZGUgZm9yIGFueSBtYWNoaW5lIHRoYXQKKwkgIHVzZXMgcGF0YS1wbGF0Zm9ybSBkcml2ZXIgdG8gZW5hYmxlIHRoZSByZWxldmFudCBkcml2ZXIgaW4gdGhlCisJICBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSB3aXRob3V0IGhhdmluZyB0byBzdWJtaXQgZW5kbGVzcyBwYXRjaGVzCisJICB0byB1cGRhdGUgdGhlIFBBVEFfUExBVEZPUk0gZW50cnkuCisKIGNvbmZpZyBQQVRBX1BMQVRGT1JNCiAJdHJpc3RhdGUgIkdlbmVyaWMgcGxhdGZvcm0gZGV2aWNlIFBBVEEgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIEVNQkVEREVEIHx8IEFSQ0hfUlBDIHx8IFBQQworCWRlcGVuZHMgb24gRU1CRURERUQgfHwgQVJDSF9SUEMgfHwgUFBDIHx8IEhBVkVfUEFUQV9QTEFURk9STQogCWhlbHAKIAkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgZ2VuZXJpYyBkaXJlY3RseSBjb25uZWN0ZWQgQVRBCiAJICBkZXZpY2VzIGNvbW1vbmx5IGZvdW5kIG9uIGVtYmVkZGVkIHN5c3RlbXMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9haGNpLmMgYi9kcml2ZXJzL2F0YS9haGNpLmMKaW5kZXggOTdmODNmYi4uNWU2NDY4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYWhjaS5jCisrKyBiL2RyaXZlcnMvYXRhL2FoY2kuYwpAQCAtODksNiArODksOCBAQAogCWJvYXJkX2FoY2lfc2I2MDAJPSAzLAogCWJvYXJkX2FoY2lfbXYJCT0gNCwKIAlib2FyZF9haGNpX3NiNzAwCT0gNSwKKwlib2FyZF9haGNpX21jcDY1CT0gNiwKKwlib2FyZF9haGNpX25vcG1wCT0gNywKIAogCS8qIGdsb2JhbCBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwogCUhPU1RfQ0FQCQk9IDB4MDAsIC8qIGhvc3QgY2FwYWJpbGl0aWVzICovCkBAIC0xOTAsNiArMTkyLDcgQEAKIAlBSENJX0hGTEFHX05PX1BNUAkJPSAoMSA8PCA2KSwgLyogbm8gUE1QICovCiAJQUhDSV9IRkxBR19OT19IT1RQTFVHCQk9ICgxIDw8IDcpLCAvKiBpZ25vcmUgUHhTRVJSLkRJQUcuTiAqLwogCUFIQ0lfSEZMQUdfU0VDVDI1NQkJPSAoMSA8PCA4KSwgLyogbWF4IDI1NSBzZWN0b3JzICovCisJQUhDSV9IRkxBR19ZRVNfTkNRCQk9ICgxIDw8IDkpLCAvKiBmb3JjZSBOQ1EgY2FwIG9uICovCiAKIAkvKiBhcC0+ZmxhZ3MgYml0cyAqLwogCkBAIC0yNTMsNiArMjU2LDggQEAKIHN0YXRpYyB2b2lkIGFoY2lfcG1wX2RldGFjaChzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKIHN0YXRpYyBpbnQgYWhjaV9zb2Z0cmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLAogCQkJICB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKTsKK3N0YXRpYyBpbnQgYWhjaV9zYjYwMF9zb2Z0cmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLAorCQkJICB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKTsKIHN0YXRpYyBpbnQgYWhjaV9oYXJkcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLAogCQkJICB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKTsKIHN0YXRpYyBpbnQgYWhjaV92dDgyNTFfaGFyZHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywKQEAgLTMyOSw2ICszMzQsMTIgQEAKIAkuaGFyZHJlc2V0CQk9IGFoY2lfcDV3ZGhfaGFyZHJlc2V0LAogfTsKIAorc3RhdGljIHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRpb25zIGFoY2lfc2I2MDBfb3BzID0geworCS5pbmhlcml0cwkJPSAmYWhjaV9vcHMsCisJLnNvZnRyZXNldAkJPSBhaGNpX3NiNjAwX3NvZnRyZXNldCwKKwkucG1wX3NvZnRyZXNldAkJPSBhaGNpX3NiNjAwX3NvZnRyZXNldCwKK307CisKICNkZWZpbmUgQUhDSV9IRkxBR1MoZmxhZ3MpCS5wcml2YXRlX2RhdGEJPSAodm9pZCAqKShmbGFncykKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhdGFfcG9ydF9pbmZvIGFoY2lfcG9ydF9pbmZvW10gPSB7CkBAIC0zNTksMTEgKzM3MCwxMSBAQAogCXsKIAkJQUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfSUdOX1NFUlJfSU5URVJOQUwgfAogCQkJCSBBSENJX0hGTEFHXzMyQklUX09OTFkgfCBBSENJX0hGTEFHX05PX01TSSB8Ci0JCQkJIEFIQ0lfSEZMQUdfU0VDVDI1NSB8IEFIQ0lfSEZMQUdfTk9fUE1QKSwKKwkJCQkgQUhDSV9IRkxBR19TRUNUMjU1KSwKIAkJLmZsYWdzCQk9IEFIQ0lfRkxBR19DT01NT04sCiAJCS5waW9fbWFzawk9IDB4MWYsIC8qIHBpbzAtNCAqLwogCQkudWRtYV9tYXNrCT0gQVRBX1VETUE2LAotCQkucG9ydF9vcHMJPSAmYWhjaV9vcHMsCisJCS5wb3J0X29wcwk9ICZhaGNpX3NiNjAwX29wcywKIAl9LAogCS8qIGJvYXJkX2FoY2lfbXYgKi8KIAl7CkBAIC0zNzcsOCArMzg4LDIzIEBACiAJfSwKIAkvKiBib2FyZF9haGNpX3NiNzAwICovCiAJewotCQlBSENJX0hGTEFHUwkoQUhDSV9IRkxBR19JR05fU0VSUl9JTlRFUk5BTCB8Ci0JCQkJIEFIQ0lfSEZMQUdfTk9fUE1QKSwKKwkJQUhDSV9IRkxBR1MJKEFIQ0lfSEZMQUdfSUdOX1NFUlJfSU5URVJOQUwpLAorCQkuZmxhZ3MJCT0gQUhDSV9GTEFHX0NPTU1PTiwKKwkJLnBpb19tYXNrCT0gMHgxZiwgLyogcGlvMC00ICovCisJCS51ZG1hX21hc2sJPSBBVEFfVURNQTYsCisJCS5wb3J0X29wcwk9ICZhaGNpX3NiNjAwX29wcywKKwl9LAorCS8qIGJvYXJkX2FoY2lfbWNwNjUgKi8KKwl7CisJCUFIQ0lfSEZMQUdTCShBSENJX0hGTEFHX1lFU19OQ1EpLAorCQkuZmxhZ3MJCT0gQUhDSV9GTEFHX0NPTU1PTiwKKwkJLnBpb19tYXNrCT0gMHgxZiwgLyogcGlvMC00ICovCisJCS51ZG1hX21hc2sJPSBBVEFfVURNQTYsCisJCS5wb3J0X29wcwk9ICZhaGNpX29wcywKKwl9LAorCS8qIGJvYXJkX2FoY2lfbm9wbXAgKi8KKwl7CisJCUFIQ0lfSEZMQUdTCShBSENJX0hGTEFHX05PX1BNUCksCiAJCS5mbGFncwkJPSBBSENJX0ZMQUdfQ09NTU9OLAogCQkucGlvX21hc2sJPSAweDFmLCAvKiBwaW8wLTQgKi8KIAkJLnVkbWFfbWFzawk9IEFUQV9VRE1BNiwKQEAgLTQzOCwxNCArNDY0LDE0IEBACiAJeyBQQ0lfVkRFVklDRShWSUEsIDB4NjI4NyksIGJvYXJkX2FoY2lfdnQ4MjUxIH0sIC8qIFZJQSBWVDgyNTEgKi8KIAogCS8qIE5WSURJQSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGMpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGQpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGUpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGYpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWMpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWQpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWUpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLwotCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWYpLCBib2FyZF9haGNpIH0sCQkvKiBNQ1A2NSAqLworCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGMpLCBib2FyZF9haGNpX21jcDY1IH0sCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ0ZCksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KKwl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNDRlKSwgYm9hcmRfYWhjaV9tY3A2NSB9LAkvKiBNQ1A2NSAqLworCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NGYpLCBib2FyZF9haGNpX21jcDY1IH0sCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1YyksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KKwl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNDVkKSwgYm9hcmRfYWhjaV9tY3A2NSB9LAkvKiBNQ1A2NSAqLworCXsgUENJX1ZERVZJQ0UoTlZJRElBLCAweDA0NWUpLCBib2FyZF9haGNpX21jcDY1IH0sCS8qIE1DUDY1ICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MDQ1ZiksIGJvYXJkX2FoY2lfbWNwNjUgfSwJLyogTUNQNjUgKi8KIAl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNTUwKSwgYm9hcmRfYWhjaSB9LAkJLyogTUNQNjcgKi8KIAl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNTUxKSwgYm9hcmRfYWhjaSB9LAkJLyogTUNQNjcgKi8KIAl7IFBDSV9WREVWSUNFKE5WSURJQSwgMHgwNTUyKSwgYm9hcmRfYWhjaSB9LAkJLyogTUNQNjcgKi8KQEAgLTUwMiwxNSArNTI4LDE1IEBACiAJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjZCksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCiAJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjZSksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCiAJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjZiksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJkMCksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJkMSksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJkMiksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCi0JeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJkMyksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjNCksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjNSksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjNiksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCisJeyBQQ0lfVkRFVklDRShOVklESUEsIDB4MGJjNyksIGJvYXJkX2FoY2kgfSwJCS8qIE1DUDdCICovCiAKIAkvKiBTaVMgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDExODQpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjYgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDExODUpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjYgKi8KLQl7IFBDSV9WREVWSUNFKFNJLCAweDAxODYpLCBib2FyZF9haGNpIH0sIC8qIFNpUyA5NjggKi8KKwl7IFBDSV9WREVWSUNFKFNJLCAweDExODQpLCBib2FyZF9haGNpX25vcG1wIH0sCQkvKiBTaVMgOTY2ICovCisJeyBQQ0lfVkRFVklDRShTSSwgMHgxMTg1KSwgYm9hcmRfYWhjaV9ub3BtcCB9LAkJLyogU2lTIDk2OCAqLworCXsgUENJX1ZERVZJQ0UoU0ksIDB4MDE4NiksIGJvYXJkX2FoY2lfbm9wbXAgfSwJCS8qIFNpUyA5NjggKi8KIAogCS8qIE1hcnZlbGwgKi8KIAl7IFBDSV9WREVWSUNFKE1BUlZFTEwsIDB4NjE0NSksIGJvYXJkX2FoY2lfbXYgfSwJLyogNjE0NSAqLwpAQCAtNjI0LDEyICs2NTAsMjYgQEAKIAkJY2FwICY9IH5IT1NUX0NBUF9OQ1E7CiAJfQogCisJaWYgKCEoY2FwICYgSE9TVF9DQVBfTkNRKSAmJiAoaHByaXYtPmZsYWdzICYgQUhDSV9IRkxBR19ZRVNfTkNRKSkgeworCQlkZXZfcHJpbnRrKEtFUk5fSU5GTywgJnBkZXYtPmRldiwKKwkJCSAgICJjb250cm9sbGVyIGNhbiBkbyBOQ1EsIHR1cm5pbmcgb24gQ0FQX05DUVxuIik7CisJCWNhcCB8PSBIT1NUX0NBUF9OQ1E7CisJfQorCiAJaWYgKChjYXAgJiBIT1NUX0NBUF9QTVApICYmIChocHJpdi0+ZmxhZ3MgJiBBSENJX0hGTEFHX05PX1BNUCkpIHsKIAkJZGV2X3ByaW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCiAJCQkgICAiY29udHJvbGxlciBjYW4ndCBkbyBQTVAsIHR1cm5pbmcgb2ZmIENBUF9QTVBcbiIpOwogCQljYXAgJj0gfkhPU1RfQ0FQX1BNUDsKIAl9CiAKKwlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSk1JQ1JPTiAmJiBwZGV2LT5kZXZpY2UgPT0gMHgyMzYxICYmCisJICAgIHBvcnRfbWFwICE9IDEpIHsKKwkJZGV2X3ByaW50ayhLRVJOX0lORk8sICZwZGV2LT5kZXYsCisJCQkgICAiSk1CMzYxIGhhcyBvbmx5IG9uZSBwb3J0LCBwb3J0X21hcCAweCV4IC0+IDB4JXhcbiIsCisJCQkgICBwb3J0X21hcCwgMSk7CisJCXBvcnRfbWFwID0gMTsKKwl9CisKIAkvKgogCSAqIFRlbXBvcmFyeSBNYXJ2ZWxsIDYxNDUgaGFjazogUEFUQSBwb3J0IHByZXNlbmNlCiAJICogaXMgYXNzZXJ0ZWQgdGhyb3VnaCB0aGUgc3RhbmRhcmQgQUhDSSBwb3J0CkBAIC0xMjYyLDE5ICsxMzAyLDExIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWhjaV9jaGVja19yZWFkeShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCi17Ci0Jdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShsaW5rLT5hcCk7Ci0JdTggc3RhdHVzID0gcmVhZGwocG9ydF9tbWlvICsgUE9SVF9URkRBVEEpICYgMHhGRjsKLQotCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKLX0KLQotc3RhdGljIGludCBhaGNpX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCi0JCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCitzdGF0aWMgaW50IGFoY2lfZG9fc29mdHJlc2V0KHN0cnVjdCBhdGFfbGluayAqbGluaywgdW5zaWduZWQgaW50ICpjbGFzcywKKwkJCSAgICAgaW50IHBtcCwgdW5zaWduZWQgbG9uZyBkZWFkbGluZSwKKwkJCSAgICAgaW50ICgqY2hlY2tfcmVhZHkpKHN0cnVjdCBhdGFfbGluayAqbGluaykpCiB7CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IGxpbmstPmFwOwotCWludCBwbXAgPSBzYXRhX3Nyc3RfcG1wKGxpbmspOwogCWNvbnN0IGNoYXIgKnJlYXNvbiA9IE5VTEw7CiAJdW5zaWduZWQgbG9uZyBub3csIG1zZWNzOwogCXN0cnVjdCBhdGFfdGFza2ZpbGUgdGY7CkBAIC0xMzEyLDcgKzEzNDQsNyBAQAogCWFoY2lfZXhlY19wb2xsZWRfY21kKGFwLCBwbXAsICZ0ZiwgMCwgMCwgMCk7CiAKIAkvKiB3YWl0IGZvciBsaW5rIHRvIGJlY29tZSByZWFkeSAqLwotCXJjID0gYXRhX3dhaXRfYWZ0ZXJfcmVzZXQobGluaywgZGVhZGxpbmUsIGFoY2lfY2hlY2tfcmVhZHkpOworCXJjID0gYXRhX3dhaXRfYWZ0ZXJfcmVzZXQobGluaywgZGVhZGxpbmUsIGNoZWNrX3JlYWR5KTsKIAkvKiBsaW5rIG9jY3VwaWVkLCAtRU5PREVWIHRvbyBpcyBhbiBlcnJvciAqLwogCWlmIChyYykgewogCQlyZWFzb24gPSAiZGV2aWNlIG5vdCByZWFkeSI7CkBAIC0xMzI4LDYgKzEzNjAsNzIgQEAKIAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgYWhjaV9jaGVja19yZWFkeShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmspCit7CisJdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShsaW5rLT5hcCk7CisJdTggc3RhdHVzID0gcmVhZGwocG9ydF9tbWlvICsgUE9SVF9URkRBVEEpICYgMHhGRjsKKworCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKK30KKworc3RhdGljIGludCBhaGNpX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCisJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCit7CisJaW50IHBtcCA9IHNhdGFfc3JzdF9wbXAobGluayk7CisKKwlEUFJJTlRLKCJFTlRFUlxuIik7CisKKwlyZXR1cm4gYWhjaV9kb19zb2Z0cmVzZXQobGluaywgY2xhc3MsIHBtcCwgZGVhZGxpbmUsIGFoY2lfY2hlY2tfcmVhZHkpOworfQorCitzdGF0aWMgaW50IGFoY2lfc2I2MDBfY2hlY2tfcmVhZHkoc3RydWN0IGF0YV9saW5rICpsaW5rKQoreworCXZvaWQgX19pb21lbSAqcG9ydF9tbWlvID0gYWhjaV9wb3J0X2Jhc2UobGluay0+YXApOworCXU4IHN0YXR1cyA9IHJlYWRsKHBvcnRfbW1pbyArIFBPUlRfVEZEQVRBKSAmIDB4RkY7CisJdTMyIGlycV9zdGF0dXMgPSByZWFkbChwb3J0X21taW8gKyBQT1JUX0lSUV9TVEFUKTsKKworCS8qCisJICogVGhlcmUgaXMgbm8gbmVlZCB0byBjaGVjayBURkRBVEEgaWYgQkFEIFBNUCBpcyBmb3VuZCBkdWUgdG8gSFcgYnVnLAorCSAqIHdoaWNoIGNhbiBzYXZlIHRpbWVvdXQgZGVsYXkuCisJICovCisJaWYgKGlycV9zdGF0dXMgJiBQT1JUX0lSUV9CQURfUE1QKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiBhdGFfY2hlY2tfcmVhZHkoc3RhdHVzKTsKK30KKworc3RhdGljIGludCBhaGNpX3NiNjAwX3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCisJCQkJdW5zaWduZWQgbG9uZyBkZWFkbGluZSkKK3sKKwlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CisJdm9pZCBfX2lvbWVtICpwb3J0X21taW8gPSBhaGNpX3BvcnRfYmFzZShhcCk7CisJaW50IHBtcCA9IHNhdGFfc3JzdF9wbXAobGluayk7CisJaW50IHJjOworCXUzMiBpcnFfc3RzOworCisJRFBSSU5USygiRU5URVJcbiIpOworCisJcmMgPSBhaGNpX2RvX3NvZnRyZXNldChsaW5rLCBjbGFzcywgcG1wLCBkZWFkbGluZSwKKwkJCSAgICAgICBhaGNpX3NiNjAwX2NoZWNrX3JlYWR5KTsKKworCS8qCisJICogU29mdCByZXNldCBmYWlscyBvbiBzb21lIEFUSSBjaGlwcyB3aXRoIElQTVMgc2V0IHdoZW4gUE1QCisJICogaXMgZW5hYmxlZCBidXQgU0FUQSBIREQvT0REIGlzIGNvbm5lY3RlZCB0byBTQVRBIHBvcnQsCisJICogZG8gc29mdCByZXNldCBhZ2FpbiB0byBwb3J0IDAuCisJICovCisJaWYgKHJjID09IC1FSU8pIHsKKwkJaXJxX3N0cyA9IHJlYWRsKHBvcnRfbW1pbyArIFBPUlRfSVJRX1NUQVQpOworCQlpZiAoaXJxX3N0cyAmIFBPUlRfSVJRX0JBRF9QTVApIHsKKwkJCWF0YV9saW5rX3ByaW50ayhsaW5rLCBLRVJOX1dBUk5JTkcsCisJCQkJCSJmYWlsZWQgZHVlIHRvIEhXIGJ1ZywgcmV0cnkgcG1wPTBcbiIpOworCQkJcmMgPSBhaGNpX2RvX3NvZnRyZXNldChsaW5rLCBjbGFzcywgMCwgZGVhZGxpbmUsCisJCQkJCSAgICAgICBhaGNpX2NoZWNrX3JlYWR5KTsKKwkJfQorCX0KKworCXJldHVybiByYzsKK30KKwogc3RhdGljIGludCBhaGNpX2hhcmRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCAqY2xhc3MsCiAJCQkgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmUpCiB7CkBAIC0xNjc5LDcgKzE3NzcsNyBAQAogCXN0cnVjdCBhaGNpX2hvc3RfcHJpdiAqaHByaXY7CiAJdW5zaWduZWQgaW50IGksIGhhbmRsZWQgPSAwOwogCXZvaWQgX19pb21lbSAqbW1pbzsKLQl1MzIgaXJxX3N0YXQsIGlycV9hY2sgPSAwOworCXUzMiBpcnFfc3RhdCwgaXJxX21hc2tlZDsKIAogCVZQUklOVEsoIkVOVEVSXG4iKTsKIApAQCAtMTY4OCwxNiArMTc4NiwxNyBAQAogCiAJLyogc2lnaC4gIDB4ZmZmZmZmZmYgaXMgYSB2YWxpZCByZXR1cm4gZnJvbSBoL3cgKi8KIAlpcnFfc3RhdCA9IHJlYWRsKG1taW8gKyBIT1NUX0lSUV9TVEFUKTsKLQlpcnFfc3RhdCAmPSBocHJpdi0+cG9ydF9tYXA7CiAJaWYgKCFpcnFfc3RhdCkKIAkJcmV0dXJuIElSUV9OT05FOwogCisJaXJxX21hc2tlZCA9IGlycV9zdGF0ICYgaHByaXYtPnBvcnRfbWFwOworCiAJc3Bpbl9sb2NrKCZob3N0LT5sb2NrKTsKIAogCWZvciAoaSA9IDA7IGkgPCBob3N0LT5uX3BvcnRzOyBpKyspIHsKIAkJc3RydWN0IGF0YV9wb3J0ICphcDsKIAotCQlpZiAoIShpcnFfc3RhdCAmICgxIDw8IGkpKSkKKwkJaWYgKCEoaXJxX21hc2tlZCAmICgxIDw8IGkpKSkKIAkJCWNvbnRpbnVlOwogCiAJCWFwID0gaG9zdC0+cG9ydHNbaV07CkBAIC0xNzExLDE0ICsxODEwLDIwIEBACiAJCQkJCSJpbnRlcnJ1cHQgb24gZGlzYWJsZWQgcG9ydCAldVxuIiwgaSk7CiAJCX0KIAotCQlpcnFfYWNrIHw9ICgxIDw8IGkpOwotCX0KLQotCWlmIChpcnFfYWNrKSB7Ci0JCXdyaXRlbChpcnFfYWNrLCBtbWlvICsgSE9TVF9JUlFfU1RBVCk7CiAJCWhhbmRsZWQgPSAxOwogCX0KIAorCS8qIEhPU1RfSVJRX1NUQVQgYmVoYXZlcyBhcyBsZXZlbCB0cmlnZ2VyZWQgbGF0Y2ggbWVhbmluZyB0aGF0CisJICogaXQgc2hvdWxkIGJlIGNsZWFyZWQgYWZ0ZXIgYWxsIHRoZSBwb3J0IGV2ZW50cyBhcmUgY2xlYXJlZDsKKwkgKiBvdGhlcndpc2UsIGl0IHdpbGwgcmFpc2UgYSBzcHVyaW91cyBpbnRlcnJ1cHQgYWZ0ZXIgZWFjaAorCSAqIHZhbGlkIG9uZS4gIFBsZWFzZSByZWFkIHNlY3Rpb24gMTAuNi4yIG9mIGFoY2kgMS4xIGZvciBtb3JlCisJICogaW5mb3JtYXRpb24uCisJICoKKwkgKiBBbHNvLCB1c2UgdGhlIHVubWFza2VkIHZhbHVlIHRvIGNsZWFyIGludGVycnVwdCBhcyBzcHVyaW91cworCSAqIHBlbmRpbmcgZXZlbnQgb24gYSBkdW1teSBwb3J0IG1pZ2h0IGNhdXNlIHNjcmVhbWluZyBJUlEuCisJICovCisJd3JpdGVsKGlycV9zdGF0LCBtbWlvICsgSE9TVF9JUlFfU1RBVCk7CisKIAlzcGluX3VubG9jaygmaG9zdC0+bG9jayk7CiAKIAlWUFJJTlRLKCJFWElUXG4iKTsKQEAgLTIxMTgsNyArMjIyMyw4IEBACiBzdGF0aWMgaW50IGFoY2lfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CiAJc3RhdGljIGludCBwcmludGVkX3ZlcnNpb247Ci0Jc3RydWN0IGF0YV9wb3J0X2luZm8gcGkgPSBhaGNpX3BvcnRfaW5mb1tlbnQtPmRyaXZlcl9kYXRhXTsKKwl1bnNpZ25lZCBpbnQgYm9hcmRfaWQgPSBlbnQtPmRyaXZlcl9kYXRhOworCXN0cnVjdCBhdGFfcG9ydF9pbmZvIHBpID0gYWhjaV9wb3J0X2luZm9bYm9hcmRfaWRdOwogCWNvbnN0IHN0cnVjdCBhdGFfcG9ydF9pbmZvICpwcGlbXSA9IHsgJnBpLCBOVUxMIH07CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKIAlzdHJ1Y3QgYWhjaV9ob3N0X3ByaXYgKmhwcml2OwpAQCAtMjE2Nyw2ICsyMjczLDExIEBACiAJCXJldHVybiAtRU5PTUVNOwogCWhwcml2LT5mbGFncyB8PSAodW5zaWduZWQgbG9uZylwaS5wcml2YXRlX2RhdGE7CiAKKwkvKiBNQ1A2NSByZXZpc2lvbiBBMSBhbmQgQTIgY2FuJ3QgZG8gTVNJICovCisJaWYgKGJvYXJkX2lkID09IGJvYXJkX2FoY2lfbWNwNjUgJiYKKwkgICAgKHBkZXYtPnJldmlzaW9uID09IDB4YTEgfHwgcGRldi0+cmV2aXNpb24gPT0gMHhhMikpCisJCWhwcml2LT5mbGFncyB8PSBBSENJX0hGTEFHX05PX01TSTsKKwogCWlmICgoaHByaXYtPmZsYWdzICYgQUhDSV9IRkxBR19OT19NU0kpIHx8IHBjaV9lbmFibGVfbXNpKHBkZXYpKQogCQlwY2lfaW50eChwZGV2LCAxKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvYXRhX3BpaXguYyBiL2RyaXZlcnMvYXRhL2F0YV9waWl4LmMKaW5kZXggYTkwMjdiOC4uYTkwYWUwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvYXRhX3BpaXguYworKysgYi9kcml2ZXJzL2F0YS9hdGFfcGlpeC5jCkBAIC0yNDcsMTAgKzI0NywxMSBAQAogCXsgMHg4MDg2LCAweDI4MjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfc2F0YSB9LAogCS8qIFNBVEEgQ29udHJvbGxlciAyIElERSAoSUNIOCkgKi8KIAl7IDB4ODA4NiwgMHgyODI1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBpY2g4XzJwb3J0X3NhdGEgfSwKLQkvKiBNb2JpbGUgU0FUQSBDb250cm9sbGVyIElERSAoSUNIOE0pICovCi0JeyAweDgwODYsIDB4MjgyOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF9zYXRhIH0sCiAJLyogTW9iaWxlIFNBVEEgQ29udHJvbGxlciBJREUgKElDSDhNKSwgQXBwbGUgKi8KIAl7IDB4ODA4NiwgMHgyODI4LCAweDEwNmIsIDB4MDBhMCwgMCwgMCwgaWNoOG1fYXBwbGVfc2F0YSB9LAorCXsgMHg4MDg2LCAweDI4MjgsIDB4MTA2YiwgMHgwMGExLCAwLCAwLCBpY2g4bV9hcHBsZV9zYXRhIH0sCisJLyogTW9iaWxlIFNBVEEgQ29udHJvbGxlciBJREUgKElDSDhNKSAqLworCXsgMHg4MDg2LCAweDI4MjgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIGljaDhfc2F0YSB9LAogCS8qIFNBVEEgQ29udHJvbGxlciBJREUgKElDSDkpICovCiAJeyAweDgwODYsIDB4MjkyMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgaWNoOF9zYXRhIH0sCiAJLyogU0FUQSBDb250cm9sbGVyIElERSAoSUNIOSkgKi8KQEAgLTUyNiw3ICs1MjcsNyBAQAogCiAJW2ljaDhtX2FwcGxlX3NhdGFdID0KIAl7Ci0JCS5mbGFncwkJPSBQSUlYX1NBVEFfRkxBR1MgfCBQSUlYX0ZMQUdfU0lEUFIsCisJCS5mbGFncwkJPSBQSUlYX1NBVEFfRkxBR1MsCiAJCS5waW9fbWFzawk9IDB4MWYsCS8qIHBpbzAtNCAqLwogCQkubXdkbWFfbWFzawk9IDB4MDcsIC8qIG13ZG1hMC0yICovCiAJCS51ZG1hX21hc2sJPSBBVEFfVURNQTYsCkBAIC01NzMsNiArNTc0LDggQEAKIAl7IDB4MjdERiwgMHgxMDQzLCAweDEyNjcgfSwJLyogSUNINyBvbiBBc3VzIFc1RiAqLwogCXsgMHgyN0RGLCAweDEwM0MsIDB4MzBBMSB9LAkvKiBJQ0g3IG9uIEhQIENvbXBhcSBuYzI0MDAgKi8KIAl7IDB4MjRDQSwgMHgxMDI1LCAweDAwNjEgfSwJLyogSUNINCBvbiBBQ0VSIEFzcGlyZSAyMDIzV0xNaSAqLworCXsgMHgyNENBLCAweDEwMjUsIDB4MDAzZCB9LAkvKiBJQ0g0IG9uIEFDRVIgVE0yOTAgKi8KKwl7IDB4MjY2RiwgMHgxMDI1LCAweDAwNjYgfSwJLyogSUNINiBvbiBBQ0VSIEFzcGlyZSAxNjk0V0xNaSAqLwogCXsgMHgyNjUzLCAweDEwNDMsIDB4ODJEOCB9LAkvKiBJQ0g2TSBvbiBBc3VzIEVlZSA3MDEgKi8KIAkvKiBlbmQgbWFya2VyICovCiAJeyAwLCB9CkBAIC0xMDQwLDYgKzEwNDMsMTMgQEAKIAkJCX0sCiAJCX0sCiAJCXsKKwkJCS5pZGVudCA9ICJURUNSQSBNNCIsCisJCQkubWF0Y2hlcyA9IHsKKwkJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJUT1NISUJBIiksCisJCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJURUNSQSBNNCIpLAorCQkJfSwKKwkJfSwKKwkJewogCQkJLmlkZW50ID0gIlRFQ1JBIE01IiwKIAkJCS5tYXRjaGVzID0gewogCQkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlRPU0hJQkEiKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1hY3BpLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtYWNwaS5jCmluZGV4IGRiZjZjYTcuLjkzMzBiNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1hY3BpLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLWFjcGkuYwpAQCAtMjksMTQgKzI5LDE2IEBACiBlbnVtIHsKIAlBVEFfQUNQSV9GSUxURVJfU0VUWEZFUgk9IDEgPDwgMCwKIAlBVEFfQUNQSV9GSUxURVJfTE9DSwk9IDEgPDwgMSwKKwlBVEFfQUNQSV9GSUxURVJfRElQTQk9IDEgPDwgMiwKIAogCUFUQV9BQ1BJX0ZJTFRFUl9ERUZBVUxUCT0gQVRBX0FDUElfRklMVEVSX1NFVFhGRVIgfAotCQkJCSAgQVRBX0FDUElfRklMVEVSX0xPQ0ssCisJCQkJICBBVEFfQUNQSV9GSUxURVJfTE9DSyB8CisJCQkJICBBVEFfQUNQSV9GSUxURVJfRElQTSwKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgYXRhX2FjcGlfZ3RmX2ZpbHRlciA9IEFUQV9BQ1BJX0ZJTFRFUl9ERUZBVUxUOwogbW9kdWxlX3BhcmFtX25hbWVkKGFjcGlfZ3RmX2ZpbHRlciwgYXRhX2FjcGlfZ3RmX2ZpbHRlciwgaW50LCAwNjQ0KTsKLU1PRFVMRV9QQVJNX0RFU0MoYWNwaV9ndGZfZmlsdGVyLCAiZmlsdGVyIG1hc2sgZm9yIEFDUEkgX0dURiBjb21tYW5kcywgc2V0IHRvIGZpbHRlciBvdXQgKDB4MT1zZXQgeGZlcm1vZGUsIDB4Mj1sb2NrL2ZyZWV6ZSBsb2NrKSIpOworTU9EVUxFX1BBUk1fREVTQyhhY3BpX2d0Zl9maWx0ZXIsICJmaWx0ZXIgbWFzayBmb3IgQUNQSSBfR1RGIGNvbW1hbmRzLCBzZXQgdG8gZmlsdGVyIG91dCAoMHgxPXNldCB4ZmVybW9kZSwgMHgyPWxvY2svZnJlZXplIGxvY2ssIDB4ND1ESVBNKSIpOwogCiAjZGVmaW5lIE5PX1BPUlRfTVVMVAkJMHhmZmZmCiAjZGVmaW5lIFNBVEFfQURSKHJvb3QsIHBtcCkJKCgocm9vdCkgPDwgMTYpIHwgKHBtcCkpCkBAIC0xMTgsMTIgKzEyMCw2MiBAQAogCQlhcC0+cGZsYWdzIHw9IEFUQV9QRkxBR19JTklUX0dUTV9WQUxJRDsKIH0KIAotc3RhdGljIHZvaWQgYXRhX2FjcGlfaGFuZGxlX2hvdHBsdWcoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9kZXZpY2UKLQkJCQkgICAgKmRldiwgdTMyIGV2ZW50KQorc3RhdGljIHZvaWQgYXRhX2FjcGlfZWplY3RfZGV2aWNlKGFjcGlfaGFuZGxlIGhhbmRsZSkKK3sKKwlzdHJ1Y3QgYWNwaV9vYmplY3RfbGlzdCBhcmdfbGlzdDsKKwl1bmlvbiBhY3BpX29iamVjdCBhcmc7CisKKwlhcmdfbGlzdC5jb3VudCA9IDE7CisJYXJnX2xpc3QucG9pbnRlciA9ICZhcmc7CisJYXJnLnR5cGUgPSBBQ1BJX1RZUEVfSU5URUdFUjsKKwlhcmcuaW50ZWdlci52YWx1ZSA9IDE7CisKKwlpZiAoQUNQSV9GQUlMVVJFKGFjcGlfZXZhbHVhdGVfb2JqZWN0KGhhbmRsZSwgIl9FSjAiLAorCQkJCQkgICAgICAmYXJnX2xpc3QsIE5VTEwpKSkKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gZXZhbHVhdGUgX0VKMCFcbiIpOworfQorCisvKiBAYXAgYW5kIEBkZXYgYXJlIHRoZSBzYW1lIGFzIGF0YV9hY3BpX2hhbmRsZV9ob3RwbHVnKCkgKi8KK3N0YXRpYyB2b2lkIGF0YV9hY3BpX2RldGFjaF9kZXZpY2Uoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2KQorCQlkZXYtPmZsYWdzIHw9IEFUQV9ERkxBR19ERVRBQ0g7CisJZWxzZSB7CisJCXN0cnVjdCBhdGFfbGluayAqdGxpbms7CisJCXN0cnVjdCBhdGFfZGV2aWNlICp0ZGV2OworCisJCWF0YV9wb3J0X2Zvcl9lYWNoX2xpbmsodGxpbmssIGFwKQorCQkJYXRhX2xpbmtfZm9yX2VhY2hfZGV2KHRkZXYsIHRsaW5rKQorCQkJCXRkZXYtPmZsYWdzIHw9IEFUQV9ERkxBR19ERVRBQ0g7CisJfQorCisJYXRhX3BvcnRfc2NoZWR1bGVfZWgoYXApOworfQorCisvKioKKyAqIGF0YV9hY3BpX2hhbmRsZV9ob3RwbHVnIC0gQUNQSSBldmVudCBoYW5kbGVyIGJhY2tlbmQKKyAqIEBhcDogQVRBIHBvcnQgQUNQSSBldmVudCBvY2N1cnJlZAorICogQGRldjogQVRBIGRldmljZSBBQ1BJIGV2ZW50IG9jY3VycmVkIChjYW4gYmUgTlVMTCkKKyAqIEBldmVudDogQUNQSSBldmVudCB3aGljaCBvY2N1cnJlZAorICogQGlzX2RvY2tfZXZlbnQ6IGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBldmVudCB3YXMgYSBkb2NrIG9uZQorICoKKyAqIEFsbCBBQ1BJIGJheSAvIGRldmljZSByZWFsdGVkIGV2ZW50cyBlbmQgdXAgaW4gdGhpcyBmdW5jdGlvbi4gIElmCisgKiB0aGUgZXZlbnQgaXMgcG9ydC13aWRlIEBkZXYgaXMgTlVMTC4gIElmIHRoZSBldmVudCBpcyBzcGVjaWZpYyB0byBhCisgKiBkZXZpY2UsIEBkZXYgcG9pbnRzIHRvIGl0LgorICoKKyAqIEhvdHBsdWcgKGFzIG9wcG9zZWQgdG8gdW5wbHVnKSBub3RpZmljYXRpb24gaXMgYWx3YXlzIGhhbmRsZWQgYXMKKyAqIHBvcnQtd2lkZSB3aGlsZSB1bnBsdWcgb25seSBraWxscyB0aGUgdGFyZ2V0IGRldmljZSBvbiBkZXZpY2Utd2lkZQorICogZXZlbnQuCisgKgorICogTE9DS0lORzoKKyAqIEFDUEkgbm90aWZ5IGhhbmRsZXIgY29udGV4dC4gIE1heSBzbGVlcC4KKyAqLworc3RhdGljIHZvaWQgYXRhX2FjcGlfaGFuZGxlX2hvdHBsdWcoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9kZXZpY2UgKmRldiwKKwkJCQkgICAgdTMyIGV2ZW50LCBpbnQgaXNfZG9ja19ldmVudCkKIHsKIAljaGFyIGV2ZW50X3N0cmluZ1sxMl07CiAJY2hhciAqZW52cFtdID0geyBldmVudF9zdHJpbmcsIE5VTEwgfTsKLQlzdHJ1Y3QgYXRhX2VoX2luZm8gKmVoaTsKKwlzdHJ1Y3QgYXRhX2VoX2luZm8gKmVoaSA9ICZhcC0+bGluay5laF9pbmZvOwogCXN0cnVjdCBrb2JqZWN0ICprb2JqID0gTlVMTDsKIAlpbnQgd2FpdCA9IDA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTEzMSw4NyArMTgzLDEwMyBAQAogCXVuc2lnbmVkIGxvbmcgc3RhOwogCWFjcGlfc3RhdHVzIHN0YXR1czsKIAotCWlmICghYXApCi0JCWFwID0gZGV2LT5saW5rLT5hcDsKLQllaGkgPSAmYXAtPmxpbmsuZWhfaW5mbzsKLQotCXNwaW5fbG9ja19pcnFzYXZlKGFwLT5sb2NrLCBmbGFncyk7Ci0KLQlpZiAoZGV2KQorCWlmIChkZXYpIHsKKwkJaWYgKGRldi0+c2RldikKKwkJCWtvYmogPSAmZGV2LT5zZGV2LT5zZGV2X2dlbmRldi5rb2JqOwogCQloYW5kbGUgPSBkZXYtPmFjcGlfaGFuZGxlOwotCWVsc2UKKwl9IGVsc2UgeworCQlrb2JqID0gJmFwLT5kZXYtPmtvYmo7CiAJCWhhbmRsZSA9IGFwLT5hY3BpX2hhbmRsZTsKKwl9CiAKIAlzdGF0dXMgPSBhY3BpX2dldF9oYW5kbGUoaGFuZGxlLCAiX0VKMCIsICZ0bXBoYW5kbGUpOwotCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgewotCQkvKiBUaGlzIGRldmljZSBpcyBub3QgZWplY3RhYmxlICovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoYXAtPmxvY2ssIGZsYWdzKTsKKwlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpCisJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgaG90cGx1ZyAqLwogCQlyZXR1cm47Ci0JfQogCi0Jc3RhdHVzID0gYWNwaV9ldmFsdWF0ZV9pbnRlZ2VyKGhhbmRsZSwgIl9TVEEiLCBOVUxMLCAmc3RhKTsKLQlpZiAoQUNQSV9GQUlMVVJFKHN0YXR1cykpIHsKLQkJcHJpbnRrICgiVW5hYmxlIHRvIGRldGVybWluZSBiYXkgc3RhdHVzXG4iKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhcC0+bG9jaywgZmxhZ3MpOwotCQlyZXR1cm47Ci0JfQorCWlmIChldmVudCA9PSBBQ1BJX05PVElGWV9CVVNfQ0hFQ0sgfHwKKwkgICAgZXZlbnQgPT0gQUNQSV9OT1RJRllfREVWSUNFX0NIRUNLKQorCQlzdGF0dXMgPSBhY3BpX2V2YWx1YXRlX2ludGVnZXIoaGFuZGxlLCAiX1NUQSIsIE5VTEwsICZzdGEpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoYXAtPmxvY2ssIGZsYWdzKTsKIAogCXN3aXRjaCAoZXZlbnQpIHsKIAljYXNlIEFDUElfTk9USUZZX0JVU19DSEVDSzoKIAljYXNlIEFDUElfTk9USUZZX0RFVklDRV9DSEVDSzoKIAkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiQUNQSSBldmVudCIpOwotCQlpZiAoIXN0YSkgewotICAgICAgICAgICAgICAgIC8qIERldmljZSBoYXMgYmVlbiB1bnBsdWdnZWQgKi8KLQkJCWlmIChkZXYpCi0JCQkJZGV2LT5mbGFncyB8PSBBVEFfREZMQUdfREVUQUNIOwotCQkJZWxzZSB7Ci0JCQkJc3RydWN0IGF0YV9saW5rICp0bGluazsKLQkJCQlzdHJ1Y3QgYXRhX2RldmljZSAqdGRldjsKIAotCQkJCWF0YV9wb3J0X2Zvcl9lYWNoX2xpbmsodGxpbmssIGFwKSB7Ci0JCQkJCWF0YV9saW5rX2Zvcl9lYWNoX2Rldih0ZGV2LCB0bGluaykgewotCQkJCQkJdGRldi0+ZmxhZ3MgfD0KLQkJCQkJCQlBVEFfREZMQUdfREVUQUNIOwotCQkJCQl9Ci0JCQkJfQotCQkJfQotCQkJYXRhX3BvcnRfc2NoZWR1bGVfZWgoYXApOwotCQkJd2FpdCA9IDE7Ci0JCX0gZWxzZSB7CisJCWlmIChBQ1BJX0ZBSUxVUkUoc3RhdHVzKSkgeworCQkJYXRhX3BvcnRfcHJpbnRrKGFwLCBLRVJOX0VSUiwKKwkJCQkiYWNwaTogZmFpbGVkIHRvIGRldGVybWluZSBiYXkgc3RhdHVzICgweCV4KVxuIiwKKwkJCQlzdGF0dXMpOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoc3RhKSB7CiAJCQlhdGFfZWhpX2hvdHBsdWdnZWQoZWhpKTsKIAkJCWF0YV9wb3J0X2ZyZWV6ZShhcCk7CisJCX0gZWxzZSB7CisJCQkvKiBUaGUgZGV2aWNlIGhhcyBnb25lIC0gdW5wbHVnIGl0ICovCisJCQlhdGFfYWNwaV9kZXRhY2hfZGV2aWNlKGFwLCBkZXYpOworCQkJd2FpdCA9IDE7CiAJCX0KKwkJYnJlYWs7CisJY2FzZSBBQ1BJX05PVElGWV9FSkVDVF9SRVFVRVNUOgorCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJBQ1BJIGV2ZW50Iik7CisKKwkJaWYgKCFpc19kb2NrX2V2ZW50KQorCQkJYnJlYWs7CisKKwkJLyogdW5kb2NrIGV2ZW50IC0gaW1tZWRpYXRlIHVucGx1ZyAqLworCQlhdGFfYWNwaV9kZXRhY2hfZGV2aWNlKGFwLCBkZXYpOworCQl3YWl0ID0gMTsKKwkJYnJlYWs7CiAJfQogCisJLyogbWFrZSBzdXJlIGtvYmogZG9lc24ndCBnbyBhd2F5IHdoaWxlIGFwLT5sb2NrIGlzIHJlbGVhc2VkICovCisJa29iamVjdF9nZXQoa29iaik7CisKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGFwLT5sb2NrLCBmbGFncyk7CiAKLQlpZiAod2FpdCkKKwlpZiAod2FpdCkgewogCQlhdGFfcG9ydF93YWl0X2VoKGFwKTsKKwkJYXRhX2FjcGlfZWplY3RfZGV2aWNlKGhhbmRsZSk7CisJfQogCi0JaWYgKGRldikgewotCQlpZiAoZGV2LT5zZGV2KQotCQkJa29iaiA9ICZkZXYtPnNkZXYtPnNkZXZfZ2VuZGV2LmtvYmo7Ci0JfSBlbHNlCi0JCWtvYmogPSAmYXAtPmRldi0+a29iajsKLQotCWlmIChrb2JqKSB7CisJaWYgKGtvYmogJiYgIWlzX2RvY2tfZXZlbnQpIHsKIAkJc3ByaW50ZihldmVudF9zdHJpbmcsICJCQVlfRVZFTlQ9JWQiLCBldmVudCk7CiAJCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLCBLT0JKX0NIQU5HRSwgZW52cCk7CiAJfQorCisJa29iamVjdF9wdXQoa29iaik7Cit9CisKK3N0YXRpYyB2b2lkIGF0YV9hY3BpX2Rldl9ub3RpZnlfZG9jayhhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgYXRhX2RldmljZSAqZGV2ID0gZGF0YTsKKworCWF0YV9hY3BpX2hhbmRsZV9ob3RwbHVnKGRldi0+bGluay0+YXAsIGRldiwgZXZlbnQsIDEpOworfQorCitzdGF0aWMgdm9pZCBhdGFfYWNwaV9hcF9ub3RpZnlfZG9jayhhY3BpX2hhbmRsZSBoYW5kbGUsIHUzMiBldmVudCwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gZGF0YTsKKworCWF0YV9hY3BpX2hhbmRsZV9ob3RwbHVnKGFwLCBOVUxMLCBldmVudCwgMSk7CiB9CiAKIHN0YXRpYyB2b2lkIGF0YV9hY3BpX2Rldl9ub3RpZnkoYWNwaV9oYW5kbGUgaGFuZGxlLCB1MzIgZXZlbnQsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IGF0YV9kZXZpY2UgKmRldiA9IGRhdGE7CiAKLQlhdGFfYWNwaV9oYW5kbGVfaG90cGx1ZyhOVUxMLCBkZXYsIGV2ZW50KTsKKwlhdGFfYWNwaV9oYW5kbGVfaG90cGx1ZyhkZXYtPmxpbmstPmFwLCBkZXYsIGV2ZW50LCAwKTsKIH0KIAogc3RhdGljIHZvaWQgYXRhX2FjcGlfYXBfbm90aWZ5KGFjcGlfaGFuZGxlIGhhbmRsZSwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKQogewogCXN0cnVjdCBhdGFfcG9ydCAqYXAgPSBkYXRhOwogCi0JYXRhX2FjcGlfaGFuZGxlX2hvdHBsdWcoYXAsIE5VTEwsIGV2ZW50KTsKKwlhdGFfYWNwaV9oYW5kbGVfaG90cGx1ZyhhcCwgTlVMTCwgZXZlbnQsIDApOwogfQogCiAvKioKQEAgLTI1Miw3ICszMjAsNyBAQAogCQkJCQkJICAgIGF0YV9hY3BpX2FwX25vdGlmeSwgYXApOwogCQkJLyogd2UgbWlnaHQgYmUgb24gYSBkb2NraW5nIHN0YXRpb24gKi8KIAkJCXJlZ2lzdGVyX2hvdHBsdWdfZG9ja19kZXZpY2UoYXAtPmFjcGlfaGFuZGxlLAotCQkJCQkJICAgICBhdGFfYWNwaV9hcF9ub3RpZnksIGFwKTsKKwkJCQkJICAgICBhdGFfYWNwaV9hcF9ub3RpZnlfZG9jaywgYXApOwogCQl9CiAKIAkJZm9yIChqID0gMDsgaiA8IGF0YV9saW5rX21heF9kZXZpY2VzKCZhcC0+bGluayk7IGorKykgewpAQCAtMjY0LDcgKzMzMiw3IEBACiAJCQkJCQlhdGFfYWNwaV9kZXZfbm90aWZ5LCBkZXYpOwogCQkJCS8qIHdlIG1pZ2h0IGJlIG9uIGEgZG9ja2luZyBzdGF0aW9uICovCiAJCQkJcmVnaXN0ZXJfaG90cGx1Z19kb2NrX2RldmljZShkZXYtPmFjcGlfaGFuZGxlLAotCQkJCQkJYXRhX2FjcGlfZGV2X25vdGlmeSwgZGV2KTsKKwkJCQkJICAgICBhdGFfYWNwaV9kZXZfbm90aWZ5X2RvY2ssIGRldik7CiAJCQl9CiAJCX0KIAl9CkBAIC02MjcsNiArNjk1LDE0IEBACiAJCQlyZXR1cm4gMTsKIAl9CiAKKwlpZiAoYXRhX2FjcGlfZ3RmX2ZpbHRlciAmIEFUQV9BQ1BJX0ZJTFRFUl9ESVBNKSB7CisJCS8qIGluaGliaXQgZW5hYmxpbmcgRElQTSAqLworCQlpZiAodGYtPmNvbW1hbmQgPT0gQVRBX0NNRF9TRVRfRkVBVFVSRVMgJiYKKwkJICAgIHRmLT5mZWF0dXJlID09IFNFVEZFQVRVUkVTX1NBVEFfRU5BQkxFICYmCisJCSAgICB0Zi0+bnNlY3QgPT0gU0FUQV9ESVBNKQorCQkJcmV0dXJuIDE7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jCmluZGV4IDNjODlmMjAuLjMwM2ZjMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYwpAQCAtNDI5Nyw3ICs0Mjk3LDcgQEAKIH0KIAogLyoqCi0gKglhdGFfY2hlY2tfYXRhcGlfZG1hIC0gQ2hlY2sgd2hldGhlciBBVEFQSSBETUEgY2FuIGJlIHN1cHBvcnRlZAorICoJYXRhcGlfY2hlY2tfZG1hIC0gQ2hlY2sgd2hldGhlciBBVEFQSSBETUEgY2FuIGJlIHN1cHBvcnRlZAogICoJQHFjOiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggdGFza2ZpbGUgdG8gY2hlY2sKICAqCiAgKglBbGxvdyBsb3ctbGV2ZWwgZHJpdmVyIHRvIGZpbHRlciBBVEEgUEFDS0VUIGNvbW1hbmRzLCByZXR1cm5pbmcKQEAgLTQzMTAsNyArNDMxMCw3IEBACiAgKglSRVRVUk5TOiAwIHdoZW4gQVRBUEkgRE1BIGNhbiBiZSB1c2VkCiAgKiAgICAgICAgICAgICAgIG5vbnplcm8gb3RoZXJ3aXNlCiAgKi8KLWludCBhdGFfY2hlY2tfYXRhcGlfZG1hKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCitpbnQgYXRhcGlfY2hlY2tfZG1hKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpCiB7CiAJc3RydWN0IGF0YV9wb3J0ICphcCA9IHFjLT5hcDsKIApAQCAtNTQwMyw3ICs1NDAzLDcgQEAKICAqLwogc3RhdGljIHZvaWQgYXRhX2ZpbmFsaXplX3BvcnRfb3BzKHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRpb25zICpvcHMpCiB7Ci0Jc3RhdGljIHNwaW5sb2NrX3QgbG9jayA9IFNQSU5fTE9DS19VTkxPQ0tFRDsKKwlzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGxvY2spOwogCWNvbnN0IHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRpb25zICpjdXI7CiAJdm9pZCAqKmJlZ2luID0gKHZvaWQgKiopb3BzOwogCXZvaWQgKiplbmQgPSAodm9pZCAqKikmb3BzLT5pbmhlcml0czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1wbXAuYwppbmRleCAwZjkzODZkLi43ZGFmNGMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtcG1wLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXBtcC5jCkBAIC0zMjIsOSArMzIyLDEyIEBACiAJaWYgKHZlbmRvciA9PSAweDEwOTUgJiYgZGV2aWQgPT0gMHgzNzI2KSB7CiAJCS8qIHNpbDM3MjYgcXVpcmtzICovCiAJCWF0YV9wb3J0X2Zvcl9lYWNoX2xpbmsobGluaywgYXApIHsKLQkJCS8qIGNsYXNzIGNvZGUgcmVwb3J0IGlzIHVucmVsaWFibGUgKi8KKwkJCS8qIENsYXNzIGNvZGUgcmVwb3J0IGlzIHVucmVsaWFibGUgYW5kIFNSU1QKKwkJCSAqIHRpbWVzIG91dCB1bmRlciBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLgorCQkJICovCiAJCQlpZiAobGluay0+cG1wIDwgNSkKLQkJCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfQVNTVU1FX0FUQTsKKwkJCQlsaW5rLT5mbGFncyB8PSBBVEFfTEZMQUdfTk9fU1JTVCB8CisJCQkJCSAgICAgICBBVEFfTEZMQUdfQVNTVU1FX0FUQTsKIAogCQkJLyogcG9ydCA1IGlzIGZvciBTRU1CIGRldmljZSBhbmQgaXQgZG9lc24ndCBsaWtlIFNSU1QgKi8KIAkJCWlmIChsaW5rLT5wbXAgPT0gNSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jCmluZGV4IGFlYjZlMDEuLjQ5OWNjYzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXNjc2kuYwpAQCAtODg1LDcgKzg4NSw4IEBACiAJCS8qIHNldCB0aGUgbWluIGFsaWdubWVudCBhbmQgcGFkZGluZyAqLwogCQlibGtfcXVldWVfdXBkYXRlX2RtYV9hbGlnbm1lbnQoc2Rldi0+cmVxdWVzdF9xdWV1ZSwKIAkJCQkJICAgICAgIEFUQV9ETUFfUEFEX1NaIC0gMSk7Ci0JCWJsa19xdWV1ZV9kbWFfcGFkKHNkZXYtPnJlcXVlc3RfcXVldWUsIEFUQV9ETUFfUEFEX1NaIC0gMSk7CisJCWJsa19xdWV1ZV91cGRhdGVfZG1hX3BhZChzZGV2LT5yZXF1ZXN0X3F1ZXVlLAorCQkJCQkgQVRBX0RNQV9QQURfU1ogLSAxKTsKIAogCQkvKiBjb25maWd1cmUgZHJhaW5pbmcgKi8KIAkJYnVmID0ga21hbGxvYyhBVEFQSV9NQVhfRFJBSU4sIHEtPmJvdW5jZV9nZnAgfCBHRlBfS0VSTkVMKTsKQEAgLTE2MzcsNiArMTYzOCw3IEBACiAKIC8qKgogICoJYXRhX3Njc2lfcmJ1Zl9nZXQgLSBNYXAgcmVzcG9uc2UgYnVmZmVyLgorICoJQGNtZDogU0NTSSBjb21tYW5kIGNvbnRhaW5pbmcgYnVmZmVyIHRvIGJlIG1hcHBlZC4KICAqCUBmbGFnczogdW5zaWduZWQgbG9uZyB2YXJpYWJsZSB0byBzdG9yZSBpcnEgZW5hYmxlIHN0YXR1cwogICoJQGNvcHlfaW46IGNvcHkgaW4gZnJvbSB1c2VyIGJ1ZmZlcgogICoKQEAgLTE5NTQsNyArMTk1Niw3IEBACiAKIC8qKgogICoJYXRhX21zZW5zZV9yd19yZWNvdmVyeSAtIFNpbXVsYXRlIE1PREUgU0VOU0Ugci93IGVycm9yIHJlY292ZXJ5IHBhZ2UKLSAqCUBidWZwOiBvdXRwdXQgYnVmZmVyCisgKglAYnVmOiBvdXRwdXQgYnVmZmVyCiAgKgogICoJR2VuZXJhdGUgYSBnZW5lcmljIE1PREUgU0VOU0Ugci93IGVycm9yIHJlY292ZXJ5IHBhZ2UuCiAgKgpAQCAtMjM0Miw4ICsyMzQ0LDggQEAKIHsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpzY21kID0gcWMtPnNjc2ljbWQ7CiAJc3RydWN0IGF0YV9kZXZpY2UgKmRldiA9IHFjLT5kZXY7Ci0JaW50IHVzaW5nX3BpbyA9IChkZXYtPmZsYWdzICYgQVRBX0RGTEFHX1BJTyk7CiAJaW50IG5vZGF0YSA9IChzY21kLT5zY19kYXRhX2RpcmVjdGlvbiA9PSBETUFfTk9ORSk7CisJaW50IHVzaW5nX3BpbyA9ICFub2RhdGEgJiYgKGRldi0+ZmxhZ3MgJiBBVEFfREZMQUdfUElPKTsKIAl1bnNpZ25lZCBpbnQgbmJ5dGVzOwogCiAJbWVtc2V0KHFjLT5jZGIsIDAsIGRldi0+Y2RiX2xlbik7CkBAIC0yMzYxLDcgKzIzNjMsNyBAQAogCWF0YV9xY19zZXRfcGNfbmJ5dGVzKHFjKTsKIAogCS8qIGNoZWNrIHdoZXRoZXIgQVRBUEkgRE1BIGlzIHNhZmUgKi8KLQlpZiAoIXVzaW5nX3BpbyAmJiBhdGFfY2hlY2tfYXRhcGlfZG1hKHFjKSkKKwlpZiAoIW5vZGF0YSAmJiAhdXNpbmdfcGlvICYmIGF0YXBpX2NoZWNrX2RtYShxYykpCiAJCXVzaW5nX3BpbyA9IDE7CiAKIAkvKiBTb21lIGNvbnRyb2xsZXIgdmFyaWFudHMgc25vb3AgdGhpcyB2YWx1ZSBmb3IgUGFja2V0CkBAIC0yNDAxLDEzICsyNDAzLDExIEBACiAJcWMtPnRmLmxiYW0gPSAobmJ5dGVzICYgMHhGRik7CiAJcWMtPnRmLmxiYWggPSAobmJ5dGVzID4+IDgpOwogCi0JaWYgKHVzaW5nX3BpbyB8fCBub2RhdGEpIHsKLQkJLyogbm8gZGF0YSwgb3IgUElPIGRhdGEgeGZlciAqLwotCQlpZiAobm9kYXRhKQotCQkJcWMtPnRmLnByb3RvY29sID0gQVRBUElfUFJPVF9OT0RBVEE7Ci0JCWVsc2UKLQkJCXFjLT50Zi5wcm90b2NvbCA9IEFUQVBJX1BST1RfUElPOwotCX0gZWxzZSB7CisJaWYgKG5vZGF0YSkKKwkJcWMtPnRmLnByb3RvY29sID0gQVRBUElfUFJPVF9OT0RBVEE7CisJZWxzZSBpZiAodXNpbmdfcGlvKQorCQlxYy0+dGYucHJvdG9jb2wgPSBBVEFQSV9QUk9UX1BJTzsKKwllbHNlIHsKIAkJLyogRE1BIGRhdGEgeGZlciAqLwogCQlxYy0+dGYucHJvdG9jb2wgPSBBVEFQSV9QUk9UX0RNQTsKIAkJcWMtPnRmLmZlYXR1cmUgfD0gQVRBUElfUEtUX0RNQTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2xpYmF0YS1zZmYuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1zZmYuYwppbmRleCAzYzJkMjI4Li5jMDkwOGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEtc2ZmLmMKKysrIGIvZHJpdmVycy9hdGEvbGliYXRhLXNmZi5jCkBAIC0yNDcsNyArMjQ3LDcgQEAKICAqCUxPQ0tJTkc6CiAgKglJbmhlcml0ZWQgZnJvbSBjYWxsZXIuCiAgKi8KLXU4IGF0YV9zZmZfYWx0c3RhdHVzKHN0cnVjdCBhdGFfcG9ydCAqYXApCitzdGF0aWMgdTggYXRhX3NmZl9hbHRzdGF0dXMoc3RydWN0IGF0YV9wb3J0ICphcCkKIHsKIAlpZiAoYXAtPm9wcy0+c2ZmX2NoZWNrX2FsdHN0YXR1cykKIAkJcmV0dXJuIGFwLT5vcHMtPnNmZl9jaGVja19hbHRzdGF0dXMoYXApOwpAQCAtMjU2LDYgKzI1Niw5MyBAQAogfQogCiAvKioKKyAqCWF0YV9zZmZfaXJxX3N0YXR1cyAtIENoZWNrIGlmIHRoZSBkZXZpY2UgaXMgYnVzeQorICoJQGFwOiBwb3J0IHdoZXJlIHRoZSBkZXZpY2UgaXMKKyAqCisgKglEZXRlcm1pbmUgaWYgdGhlIHBvcnQgaXMgY3VycmVudGx5IGJ1c3kuIFVzZXMgYWx0c3RhdHVzCisgKglpZiBhdmFpbGFibGUgaW4gb3JkZXIgdG8gYXZvaWQgY2xlYXJpbmcgc2hhcmVkIElSUSBzdGF0dXMKKyAqCXdoZW4gZmluZGluZyBhbiBJUlEgc291cmNlLiBOb24gY3RsIGNhcGFibGUgZGV2aWNlcyBkb24ndAorICoJc2hhcmUgaW50ZXJydXB0IGxpbmVzIGZvcnR1bmF0ZWx5IGZvciB1cy4KKyAqCisgKglMT0NLSU5HOgorICoJSW5oZXJpdGVkIGZyb20gY2FsbGVyLgorICovCitzdGF0aWMgdTggYXRhX3NmZl9pcnFfc3RhdHVzKHN0cnVjdCBhdGFfcG9ydCAqYXApCit7CisJdTggc3RhdHVzOworCisJaWYgKGFwLT5vcHMtPnNmZl9jaGVja19hbHRzdGF0dXMgfHwgYXAtPmlvYWRkci5hbHRzdGF0dXNfYWRkcikgeworCQlzdGF0dXMgPSBhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7CisJCS8qIE5vdCB1czogV2UgYXJlIGJ1c3kgKi8KKwkJaWYgKHN0YXR1cyAmIEFUQV9CVVNZKQorCQkgICAgCXJldHVybiBzdGF0dXM7CisJfQorCS8qIENsZWFyIElOVFJRIGxhdGNoICovCisJc3RhdHVzID0gYXAtPm9wcy0+c2ZmX2NoZWNrX3N0YXR1cyhhcCk7CisJcmV0dXJuIHN0YXR1czsKK30KKworLyoqCisgKglhdGFfc2ZmX3N5bmMgLSBGbHVzaCB3cml0ZXMKKyAqCUBhcDogUG9ydCB0byB3YWl0IGZvci4KKyAqCisgKglDQVVUSU9OOgorICoJSWYgd2UgaGF2ZSBhbiBtbWlvIGRldmljZSB3aXRoIG5vIGN0bCBhbmQgbm8gYWx0c3RhdHVzCisgKgltZXRob2QgdGhpcyB3aWxsIGZhaWwuIE5vIHN1Y2ggZGV2aWNlcyBhcmUga25vd24gdG8gZXhpc3QuCisgKgorICoJTE9DS0lORzoKKyAqCUluaGVyaXRlZCBmcm9tIGNhbGxlci4KKyAqLworCitzdGF0aWMgdm9pZCBhdGFfc2ZmX3N5bmMoc3RydWN0IGF0YV9wb3J0ICphcCkKK3sKKwlpZiAoYXAtPm9wcy0+c2ZmX2NoZWNrX2FsdHN0YXR1cykKKwkJYXAtPm9wcy0+c2ZmX2NoZWNrX2FsdHN0YXR1cyhhcCk7CisJZWxzZSBpZiAoYXAtPmlvYWRkci5hbHRzdGF0dXNfYWRkcikKKwkJaW9yZWFkOChhcC0+aW9hZGRyLmFsdHN0YXR1c19hZGRyKTsKK30KKworLyoqCisgKglhdGFfc2ZmX3BhdXNlCQktCUZsdXNoIHdyaXRlcyBhbmQgd2FpdCA0MDBuUworICoJQGFwOiBQb3J0IHRvIHBhdXNlIGZvci4KKyAqCisgKglDQVVUSU9OOgorICoJSWYgd2UgaGF2ZSBhbiBtbWlvIGRldmljZSB3aXRoIG5vIGN0bCBhbmQgbm8gYWx0c3RhdHVzCisgKgltZXRob2QgdGhpcyB3aWxsIGZhaWwuIE5vIHN1Y2ggZGV2aWNlcyBhcmUga25vd24gdG8gZXhpc3QuCisgKgorICoJTE9DS0lORzoKKyAqCUluaGVyaXRlZCBmcm9tIGNhbGxlci4KKyAqLworCit2b2lkIGF0YV9zZmZfcGF1c2Uoc3RydWN0IGF0YV9wb3J0ICphcCkKK3sKKwlhdGFfc2ZmX3N5bmMoYXApOworCW5kZWxheSg0MDApOworfQorCisvKioKKyAqCWF0YV9zZmZfZG1hX3BhdXNlCS0JUGF1c2UgYmVmb3JlIGNvbW1lbmNpbmcgRE1BCisgKglAYXA6IFBvcnQgdG8gcGF1c2UgZm9yLgorICoKKyAqCVBlcmZvcm0gSS9PIGZlbmNpbmcgYW5kIGVuc3VyZSBzdWZmaWNpZW50IGN5Y2xlIGRlbGF5cyBvY2N1cgorICoJZm9yIHRoZSBIRE1BMTowIHRyYW5zaXRpb24KKyAqLworIAordm9pZCBhdGFfc2ZmX2RtYV9wYXVzZShzdHJ1Y3QgYXRhX3BvcnQgKmFwKQoreworCWlmIChhcC0+b3BzLT5zZmZfY2hlY2tfYWx0c3RhdHVzIHx8IGFwLT5pb2FkZHIuYWx0c3RhdHVzX2FkZHIpIHsKKwkJLyogQW4gYWx0c3RhdHVzIHJlYWQgd2lsbCBjYXVzZSB0aGUgbmVlZGVkIGRlbGF5IHdpdGhvdXQKKwkJICAgbWVzc2luZyB1cCB0aGUgSVJRIHN0YXR1cyAqLworCQlhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7CisJCXJldHVybjsKKwl9CisJLyogVGhlcmUgYXJlIG5vIERNQSBjb250cm9sbGVycyB3aXRob3V0IGN0bC4gQlVHIGhlcmUgdG8gZW5zdXJlCisJICAgd2UgbmV2ZXIgdmlvbGF0ZSB0aGUgSERNQTE6MCB0cmFuc2l0aW9uIHRpbWluZyBhbmQgcmlzaworCSAgIGNvcnJ1cHRpb24uICovCisJQlVHKCk7Cit9CisKKy8qKgogICoJYXRhX3NmZl9idXN5X3NsZWVwIC0gc2xlZXAgdW50aWwgQlNZIGNsZWFycywgb3IgdGltZW91dAogICoJQGFwOiBwb3J0IGNvbnRhaW5pbmcgc3RhdHVzIHJlZ2lzdGVyIHRvIGJlIHBvbGxlZAogICoJQHRtb3V0X3BhdDogaW1wYXRpZW5jZSB0aW1lb3V0CkBAIC03NDIsNyArODI5LDcgQEAKIAl9IGVsc2UKIAkJYXRhX3Bpb19zZWN0b3IocWMpOwogCi0JYXRhX3NmZl9hbHRzdGF0dXMocWMtPmFwKTsgLyogZmx1c2ggKi8KKwlhdGFfc2ZmX3N5bmMocWMtPmFwKTsgLyogZmx1c2ggKi8KIH0KIAogLyoqCkBAIC03NjMsOCArODUwLDkgQEAKIAlXQVJOX09OKHFjLT5kZXYtPmNkYl9sZW4gPCAxMik7CiAKIAlhcC0+b3BzLT5zZmZfZGF0YV94ZmVyKHFjLT5kZXYsIHFjLT5jZGIsIHFjLT5kZXYtPmNkYl9sZW4sIDEpOwotCWF0YV9zZmZfYWx0c3RhdHVzKGFwKTsgLyogZmx1c2ggKi8KLQorCWF0YV9zZmZfc3luYyhhcCk7CisJLyogRklYTUU6IElmIHRoZSBDREIgaXMgZm9yIERNQSBkbyB3ZSBuZWVkIHRvIGRvIHRoZSB0cmFuc2l0aW9uIGRlbGF5CisJICAgb3IgaXMgYm1kbWFfc3RhcnQgZ3VhcmFudGVlZCB0byBkbyBpdCA/ICovCiAJc3dpdGNoIChxYy0+dGYucHJvdG9jb2wpIHsKIAljYXNlIEFUQVBJX1BST1RfUElPOgogCQlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1Q7CkBAIC05MDUsNyArOTkzLDcgQEAKIAogCWlmICh1bmxpa2VseShfX2F0YXBpX3Bpb19ieXRlcyhxYywgYnl0ZXMpKSkKIAkJZ290byBlcnJfb3V0OwotCWF0YV9zZmZfYWx0c3RhdHVzKGFwKTsgLyogZmx1c2ggKi8KKwlhdGFfc2ZmX3N5bmMoYXApOyAvKiBmbHVzaCAqLwogCiAJcmV0dXJuOwogCkBAIC0xMDA2LDYgKzEwOTQsNyBAQAogaW50IGF0YV9zZmZfaHNtX21vdmUoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYywKIAkJICAgICB1OCBzdGF0dXMsIGludCBpbl93cSkKIHsKKwlzdHJ1Y3QgYXRhX2VoX2luZm8gKmVoaSA9ICZhcC0+bGluay5laF9pbmZvOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSAwOwogCWludCBwb2xsX25leHQ7CiAKQEAgLTEwMzcsOSArMTEyNiwxMiBAQAogCQkJaWYgKGxpa2VseShzdGF0dXMgJiAoQVRBX0VSUiB8IEFUQV9ERikpKQogCQkJCS8qIGRldmljZSBzdG9wcyBIU00gZm9yIGFib3J0L2Vycm9yICovCiAJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9ERVY7Ci0JCQllbHNlCisJCQllbHNlIHsKIAkJCQkvKiBIU00gdmlvbGF0aW9uLiBMZXQgRUggaGFuZGxlIHRoaXMgKi8KKwkJCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksCisJCQkJCSJTVF9GSVJTVDogIShEUlF8RVJSfERGKSIpOwogCQkJCXFjLT5lcnJfbWFzayB8PSBBQ19FUlJfSFNNOworCQkJfQogCiAJCQlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1RfRVJSOwogCQkJZ290byBmc21fc3RhcnQ7CkBAIC0xMDU4LDkgKzExNTAsOSBAQAogCQkJICogdGhlIENEQi4KIAkJCSAqLwogCQkJaWYgKCEocWMtPmRldi0+aG9ya2FnZSAmIEFUQV9IT1JLQUdFX1NUVUNLX0VSUikpIHsKLQkJCQlhdGFfcG9ydF9wcmludGsoYXAsIEtFUk5fV0FSTklORywKLQkJCQkJCSJEUlE9MSB3aXRoIGRldmljZSBlcnJvciwgIgotCQkJCQkJImRldl9zdGF0IDB4JVhcbiIsIHN0YXR1cyk7CisJCQkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiU1RfRklSU1Q6ICIKKwkJCQkJIkRSUT0xIHdpdGggZGV2aWNlIGVycm9yLCAiCisJCQkJCSJkZXZfc3RhdCAweCVYIiwgc3RhdHVzKTsKIAkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0hTTTsKIAkJCQlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1RfRVJSOwogCQkJCWdvdG8gZnNtX3N0YXJ0OwpAQCAtMTExNyw5ICsxMjA5LDkgQEAKIAkJCSAqIGxldCB0aGUgRUggYWJvcnQgdGhlIGNvbW1hbmQgb3IgcmVzZXQgdGhlIGRldmljZS4KIAkJCSAqLwogCQkJaWYgKHVubGlrZWx5KHN0YXR1cyAmIChBVEFfRVJSIHwgQVRBX0RGKSkpIHsKLQkJCQlhdGFfcG9ydF9wcmludGsoYXAsIEtFUk5fV0FSTklORywgIkRSUT0xIHdpdGggIgotCQkJCQkJImRldmljZSBlcnJvciwgZGV2X3N0YXQgMHglWFxuIiwKLQkJCQkJCXN0YXR1cyk7CisJCQkJYXRhX2VoaV9wdXNoX2Rlc2MoZWhpLCAiU1QtQVRBUEk6ICIKKwkJCQkJIkRSUT0xIHdpdGggZGV2aWNlIGVycm9yLCAiCisJCQkJCSJkZXZfc3RhdCAweCVYIiwgc3RhdHVzKTsKIAkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0hTTTsKIAkJCQlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1RfRVJSOwogCQkJCWdvdG8gZnNtX3N0YXJ0OwpAQCAtMTEzOCwxMyArMTIzMCwxNyBAQAogCQkJCWlmIChsaWtlbHkoc3RhdHVzICYgKEFUQV9FUlIgfCBBVEFfREYpKSkKIAkJCQkJLyogZGV2aWNlIHN0b3BzIEhTTSBmb3IgYWJvcnQvZXJyb3IgKi8KIAkJCQkJcWMtPmVycl9tYXNrIHw9IEFDX0VSUl9ERVY7Ci0JCQkJZWxzZQorCQkJCWVsc2UgewogCQkJCQkvKiBIU00gdmlvbGF0aW9uLiBMZXQgRUggaGFuZGxlIHRoaXMuCiAJCQkJCSAqIFBoYW50b20gZGV2aWNlcyBhbHNvIHRyaWdnZXIgdGhpcwogCQkJCQkgKiBjb25kaXRpb24uICBNYXJrIGhpbnQuCiAJCQkJCSAqLworCQkJCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICJTVC1BVEE6ICIKKwkJCQkJCSJEUlE9MSB3aXRoIGRldmljZSBlcnJvciwgIgorCQkJCQkJImRldl9zdGF0IDB4JVgiLCBzdGF0dXMpOwogCQkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0hTTSB8CiAJCQkJCQkJQUNfRVJSX05PREVWX0hJTlQ7CisJCQkJfQogCiAJCQkJYXAtPmhzbV90YXNrX3N0YXRlID0gSFNNX1NUX0VSUjsKIAkJCQlnb3RvIGZzbV9zdGFydDsKQEAgLTExNjksOCArMTI2NSwxMiBAQAogCQkJCQlzdGF0dXMgPSBhdGFfd2FpdF9pZGxlKGFwKTsKIAkJCQl9CiAKLQkJCQlpZiAoc3RhdHVzICYgKEFUQV9CVVNZIHwgQVRBX0RSUSkpCisJCQkJaWYgKHN0YXR1cyAmIChBVEFfQlVTWSB8IEFUQV9EUlEpKSB7CisJCQkJCWF0YV9laGlfcHVzaF9kZXNjKGVoaSwgIlNULUFUQTogIgorCQkJCQkJIkJVU1l8RFJRIHBlcnNpc3RzIG9uIEVSUnxERiwgIgorCQkJCQkJImRldl9zdGF0IDB4JVgiLCBzdGF0dXMpOwogCQkJCQlxYy0+ZXJyX21hc2sgfD0gQUNfRVJSX0hTTTsKKwkJCQl9CiAKIAkJCQkvKiBhdGFfcGlvX3NlY3RvcnMoKSBtaWdodCBjaGFuZ2UgdGhlCiAJCQkJICogc3RhdGUgdG8gSFNNX1NUX0xBU1QuIHNvLCB0aGUgc3RhdGUKQEAgLTE0ODksMTQgKzE1ODksMTAgQEAKIAkJZ290byBpZGxlX2lycTsKIAl9CiAKLQkvKiBjaGVjayBhbHRzdGF0dXMgKi8KLQlzdGF0dXMgPSBhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7Ci0JaWYgKHN0YXR1cyAmIEFUQV9CVVNZKQotCQlnb3RvIGlkbGVfaXJxOwogCi0JLyogY2hlY2sgbWFpbiBzdGF0dXMsIGNsZWFyaW5nIElOVFJRICovCi0Jc3RhdHVzID0gYXAtPm9wcy0+c2ZmX2NoZWNrX3N0YXR1cyhhcCk7Ci0JaWYgKHVubGlrZWx5KHN0YXR1cyAmIEFUQV9CVVNZKSkKKwkvKiBjaGVjayBtYWluIHN0YXR1cywgY2xlYXJpbmcgSU5UUlEgaWYgbmVlZGVkICovCisJc3RhdHVzID0gYXRhX3NmZl9pcnFfc3RhdHVzKGFwKTsKKwlpZiAoc3RhdHVzICYgQVRBX0JVU1kpCiAJCWdvdG8gaWRsZV9pcnE7CiAKIAkvKiBhY2sgYm1kbWEgaXJxIGV2ZW50cyAqLwpAQCAtMjAzMCw3ICsyMTI2LDcgQEAKIAkJYXAtPm9wcy0+Ym1kbWFfc3RvcChxYyk7CiAJfQogCi0JYXRhX3NmZl9hbHRzdGF0dXMoYXApOworCWF0YV9zZmZfc3luYyhhcCk7CQkvKiBGSVhNRTogV2UgZG9uJ3QgbmVlZCB0aGlzICovCiAJYXAtPm9wcy0+c2ZmX2NoZWNrX3N0YXR1cyhhcCk7CiAJYXAtPm9wcy0+c2ZmX2lycV9jbGVhcihhcCk7CiAKQEAgLTIyMDMsNyArMjI5OSw3IEBACiAJCSBtbWlvICsgQVRBX0RNQV9DTUQpOwogCiAJLyogb25lLVBJTy1jeWNsZSBndWFyYW50ZWVkIHdhaXQsIHBlciBzcGVjLCBmb3IgSERNQTE6MCB0cmFuc2l0aW9uICovCi0JYXRhX3NmZl9hbHRzdGF0dXMoYXApOyAgICAgICAgLyogZHVtbXkgcmVhZCAqLworCWF0YV9zZmZfZG1hX3BhdXNlKGFwKTsKIH0KIAogLyoqCkBAIC0yNzIyLDcgKzI4MTgsOCBAQAogRVhQT1JUX1NZTUJPTF9HUEwoYXRhX3NmZl9kdW1iX3FjX3ByZXApOwogRVhQT1JUX1NZTUJPTF9HUEwoYXRhX3NmZl9kZXZfc2VsZWN0KTsKIEVYUE9SVF9TWU1CT0xfR1BMKGF0YV9zZmZfY2hlY2tfc3RhdHVzKTsKLUVYUE9SVF9TWU1CT0xfR1BMKGF0YV9zZmZfYWx0c3RhdHVzKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGF0YV9zZmZfZG1hX3BhdXNlKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGF0YV9zZmZfcGF1c2UpOwogRVhQT1JUX1NZTUJPTF9HUEwoYXRhX3NmZl9idXN5X3NsZWVwKTsKIEVYUE9SVF9TWU1CT0xfR1BMKGF0YV9zZmZfd2FpdF9yZWFkeSk7CiBFWFBPUlRfU1lNQk9MX0dQTChhdGFfc2ZmX3RmX2xvYWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLmggYi9kcml2ZXJzL2F0YS9saWJhdGEuaAppbmRleCA0NTE0MjgzLi4xY2Y4MDNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9saWJhdGEuaAorKysgYi9kcml2ZXJzL2F0YS9saWJhdGEuaApAQCAtMTA2LDcgKzEwNiw3IEBACiBleHRlcm4gdm9pZCBhdGFfcWNfZnJlZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiB2b2lkIGF0YV9xY19pc3N1ZShzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiB2b2lkIF9fYXRhX3FjX2NvbXBsZXRlKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpOwotZXh0ZXJuIGludCBhdGFfY2hlY2tfYXRhcGlfZG1hKHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMpOworZXh0ZXJuIGludCBhdGFwaV9jaGVja19kbWEoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYyk7CiBleHRlcm4gdm9pZCBzd2FwX2J1Zl9sZTE2KHUxNiAqYnVmLCB1bnNpZ25lZCBpbnQgYnVmX3dvcmRzKTsKIGV4dGVybiB2b2lkIGF0YV9kZXZfaW5pdChzdHJ1Y3QgYXRhX2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGF0YV9saW5rX2luaXQoc3RydWN0IGF0YV9wb3J0ICphcCwgc3RydWN0IGF0YV9saW5rICpsaW5rLCBpbnQgcG1wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmMgYi9kcml2ZXJzL2F0YS9wYXRhX2ljc2lkZS5jCmluZGV4IDE3MTM4NDMuLmNmOWU5ODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3BhdGFfaWNzaWRlLmMKKysrIGIvZHJpdmVycy9hdGEvcGF0YV9pY3NpZGUuYwpAQCAtMjcwLDcgKzI3MCw3IEBACiAJZGlzYWJsZV9kbWEoc3RhdGUtPmRtYSk7CiAKIAkvKiBzZWUgYXRhX2JtZG1hX3N0b3AgKi8KLQlhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7CisJYXRhX3NmZl9kbWFfcGF1c2UoYXApOwogfQogCiBzdGF0aWMgdTggcGF0YV9pY3NpZGVfYm1kbWFfc3RhdHVzKHN0cnVjdCBhdGFfcG9ydCAqYXApCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX3BjbWNpYS5jIGIvZHJpdmVycy9hdGEvcGF0YV9wY21jaWEuYwppbmRleCAzZDM5ZjlkLi40MWI0MzYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9wYXRhX3BjbWNpYS5jCisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfcGNtY2lhLmMKQEAgLTQxNCw2ICs0MTQsNyBAQAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJJTyBEQVRBIiwgIlBDSURFIiwgMHg1NDdlNjZkYywgMHg1YzVhYjE0OSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIklPIERBVEEiLCAiUENJREVJSSIsIDB4NTQ3ZTY2ZGMsIDB4YjM2NjI2NzQpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJMT09LTUVFVCIsICJDQklERTIgICAgICAiLCAweGUzN2JlMmI1LCAweDg2NzEwNDNiKSwKKwlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiTS1TeXN0ZW1zIiwgIkNGMzAwIiwgMHg3ZWQyYWQ4NywgMHg3ZTllNzhlZSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIk0tU3lzdGVtcyIsICJDRjUwMCIsIDB4N2VkMmFkODcsIDB4N2ExMzA0NWMpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDIoIk5pbmphQVRBLSIsIDB4ZWJlMGJkNzkpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJQQ01DSUEiLCAiQ0QtUk9NIiwgMHgyODFmMWM1ZCwgMHg2NjUzNjU5MSksCkBAIC00MjQsNiArNDI1LDcgQEAKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiU01JIFZFTkRPUiIsICJTTUkgUFJPRFVDVCIsIDB4MzA4OTZjOTIsIDB4NzAzY2M1ZjYpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUT1NISUJBIiwgIk1LMjAwMU1QTCIsIDB4YjQ1ODVhMWEsIDB4MzQ4OWUwMDMpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEoIlRSQU5TQ0VORCAgICA1MTJNICAgIiwgMHhkMDkwOTQ0MyksCisJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzFHQ0Y0NSIsIDB4NzA5YjFiZjEsIDB4ZjY4YjZmMzIpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFMxR0NGODAiLCAweDcwOWIxYmYxLCAweDJhNTRkNGIxKSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiVFJBTlNDRU5EIiwgIlRTMkdDRjEyMCIsIDB4NzA5YjFiZjEsIDB4OTY5YWE0ZjIpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFM0R0NGMTIwIiwgMHg3MDliMWJmMSwgMHhmNTRhOTFjOCksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX3JiNTMyX2NmLmMgYi9kcml2ZXJzL2F0YS9wYXRhX3JiNTMyX2NmLmMKaW5kZXggYTEwOGQyNS4uZjhiM2ZmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvcGF0YV9yYjUzMl9jZi5jCisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfcmI1MzJfY2YuYwpAQCAtNTcsNyArNTcsOSBAQAogCXN0cnVjdCBhdGFfaG9zdCAqYWggPSBhcC0+aG9zdDsKIAlzdHJ1Y3QgcmI1MzJfY2ZfaW5mbyAqaW5mbyA9IGFoLT5wcml2YXRlX2RhdGE7CiAKLQlhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7CisJLyogRklYTUU6IEtlZXAgcHJldmlvdXMgZGVsYXkuIElmIHRoaXMgaXMgbWVyZWx5IGEgZmVuY2UgdGhlbgorCSAgIGF0YV9zZmZfc3luYyBtaWdodCBiZSBzdWZmaWNpZW50LiAqLworCWF0YV9zZmZfZG1hX3BhdXNlKGFwKTsKIAluZGVsYXkoUkI1MDBfQ0ZfSU9fREVMQVkpOwogCiAJc2V0X2lycV90eXBlKGluZm8tPmlycSwgSVJRX1RZUEVfTEVWRUxfSElHSCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX3NjYy5jIGIvZHJpdmVycy9hdGEvcGF0YV9zY2MuYwppbmRleCBlOTY1YjI1Li5iYmY1YWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9wYXRhX3NjYy5jCisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfc2NjLmMKQEAgLTcyNiw3ICs3MjYsNyBAQAogCQkgaW5fYmUzMihibWlkX2Jhc2UgKyBTQ0NfRE1BX0NNRCkgJiB+QVRBX0RNQV9TVEFSVCk7CiAKIAkvKiBvbmUtUElPLWN5Y2xlIGd1YXJhbnRlZWQgd2FpdCwgcGVyIHNwZWMsIGZvciBIRE1BMTowIHRyYW5zaXRpb24gKi8KLQlhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7CS8qIGR1bW15IHJlYWQgKi8KKwlhdGFfc2ZmX2RtYV9wYXVzZShhcCk7CS8qIGR1bW15IHJlYWQgKi8KIH0KIAogLyoqCkBAIC03NDcsNyArNzQ3LDggQEAKIAkJcmV0dXJuIGhvc3Rfc3RhdDsKIAogCS8qIGVycmF0YSBBMjUyLEEzMDggd29ya2Fyb3VuZDogU3RlcDQgKi8KLQlpZiAoKGF0YV9zZmZfYWx0c3RhdHVzKGFwKSAmIEFUQV9FUlIpICYmIChpbnRfc3RhdHVzICYgSU5UU1RTX0lOVFJRKSkKKwlpZiAoKHNjY19jaGVja19hbHRzdGF0dXMoYXApICYgQVRBX0VSUikKKwkJCQkJJiYgKGludF9zdGF0dXMgJiBJTlRTVFNfSU5UUlEpKQogCQlyZXR1cm4gKGhvc3Rfc3RhdCB8IEFUQV9ETUFfSU5UUik7CiAKIAkvKiBlcnJhdGEgQTMwOCB3b3JrYXJvdW5kIFN0ZXA1ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9wYXRhX3Npcy5jIGIvZHJpdmVycy9hdGEvcGF0YV9zaXMuYwppbmRleCBlODJjNjZlLi4yNjM0NWQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9wYXRhX3Npcy5jCisrKyBiL2RyaXZlcnMvYXRhL3BhdGFfc2lzLmMKQEAgLTU2LDYgKzU2LDcgQEAKIAl7IDB4NTUxMywgMHgxMDQzLCAweDExMDcgfSwJLyogQVNVUyBBNksgKi8KIAl7IDB4NTUxMywgMHgxNzM0LCAweDEwNUYgfSwJLyogRlNDIEFtaWxvIEExNjMwICovCiAJeyAweDU1MTMsIDB4MTA3MSwgMHg4NjQwIH0sICAgICAvKiBFYXN5Tm90ZSBLNTMwNSAqLworCXsgMHg1NTEzLCAweDEwMzksIDB4NTUxMyB9LAkvKiBUYXJnYSBWaXNpb25hcnkgMTAwMCAqLwogCS8qIGVuZCBtYXJrZXIgKi8KIAl7IDAsIH0KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX2ZzbC5jIGIvZHJpdmVycy9hdGEvc2F0YV9mc2wuYwppbmRleCA4NTM1NTllLi4zOTI0ZTcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX2ZzbC5jCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfZnNsLmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogCVNBVEFfRlNMX0hPU1RfRkxBR1MJPSAoQVRBX0ZMQUdfU0FUQSB8IEFUQV9GTEFHX05PX0xFR0FDWSB8CiAJCQkJQVRBX0ZMQUdfTU1JTyB8IEFUQV9GTEFHX1BJT19ETUEgfAotCQkJCUFUQV9GTEFHX05DUSksCisJCQkJQVRBX0ZMQUdfUE1QIHwgQVRBX0ZMQUdfTkNRKSwKIAogCVNBVEFfRlNMX01BWF9DTURTCT0gU0FUQV9GU0xfUVVFVUVfREVQVEgsCiAJU0FUQV9GU0xfQ01EX0hEUl9TSVpFCT0gMTYsCS8qIDQgRFdPUkRTICovCkBAIC0zOTUsNyArMzk1LDcgQEAKIAljZCA9IChzdHJ1Y3QgY29tbWFuZF9kZXNjICopcHAtPmNtZGVudHJ5ICsgdGFnOwogCWNkX3BhZGRyID0gcHAtPmNtZGVudHJ5X3BhZGRyICsgdGFnICogU0FUQV9GU0xfQ01EX0RFU0NfU0laRTsKIAotCWF0YV90Zl90b19maXMoJnFjLT50ZiwgMCwgMSwgKHU4ICopICZjZC0+Y2Zpcyk7CisJYXRhX3RmX3RvX2ZpcygmcWMtPnRmLCBxYy0+ZGV2LT5saW5rLT5wbXAsIDEsICh1OCAqKSAmY2QtPmNmaXMpOwogCiAJVlBSSU5USygiRHVtcGluZyBjZmlzIDogMHgleCwgMHgleCwgMHgleFxuIiwKIAkJY2QtPmNmaXNbMF0sIGNkLT5jZmlzWzFdLCBjZC0+Y2Zpc1syXSk7CkBAIC00MzgsNiArNDM4LDggQEAKIAkJaW9yZWFkMzIoQ0EgKyBoY3JfYmFzZSksCiAJCWlvcmVhZDMyKENFICsgaGNyX2Jhc2UpLCBpb3JlYWQzMihDQyArIGhjcl9iYXNlKSk7CiAKKwlpb3dyaXRlMzIocWMtPmRldi0+bGluay0+cG1wLCBDUVBNUCArIGhjcl9iYXNlKTsKKwogCS8qIFNpbXBseSBxdWV1ZSBjb21tYW5kIHRvIHRoZSBjb250cm9sbGVyL2RldmljZSAqLwogCWlvd3JpdGUzMigxIDw8IHRhZywgQ1EgKyBoY3JfYmFzZSk7CiAKQEAgLTU1OCwxMSArNTYwLDM2IEBACiAJCWlvcmVhZDMyKGhjcl9iYXNlICsgSENPTlRST0wpLCBpb3JlYWQzMihoY3JfYmFzZSArIEhTVEFUVVMpKTsKIH0KIAorc3RhdGljIHZvaWQgc2F0YV9mc2xfcG1wX2F0dGFjaChzdHJ1Y3QgYXRhX3BvcnQgKmFwKQoreworCXN0cnVjdCBzYXRhX2ZzbF9ob3N0X3ByaXYgKmhvc3RfcHJpdiA9IGFwLT5ob3N0LT5wcml2YXRlX2RhdGE7CisJdm9pZCBfX2lvbWVtICpoY3JfYmFzZSA9IGhvc3RfcHJpdi0+aGNyX2Jhc2U7CisJdTMyIHRlbXA7CisKKwl0ZW1wID0gaW9yZWFkMzIoaGNyX2Jhc2UgKyBIQ09OVFJPTCk7CisJaW93cml0ZTMyKCh0ZW1wIHwgSENPTlRST0xfUE1QX0FUVEFDSEVEKSwgaGNyX2Jhc2UgKyBIQ09OVFJPTCk7Cit9CisKK3N0YXRpYyB2b2lkIHNhdGFfZnNsX3BtcF9kZXRhY2goc3RydWN0IGF0YV9wb3J0ICphcCkKK3sKKwlzdHJ1Y3Qgc2F0YV9mc2xfaG9zdF9wcml2ICpob3N0X3ByaXYgPSBhcC0+aG9zdC0+cHJpdmF0ZV9kYXRhOworCXZvaWQgX19pb21lbSAqaGNyX2Jhc2UgPSBob3N0X3ByaXYtPmhjcl9iYXNlOworCXUzMiB0ZW1wOworCisJdGVtcCA9IGlvcmVhZDMyKGhjcl9iYXNlICsgSENPTlRST0wpOworCXRlbXAgJj0gfkhDT05UUk9MX1BNUF9BVFRBQ0hFRDsKKwlpb3dyaXRlMzIodGVtcCwgaGNyX2Jhc2UgKyBIQ09OVFJPTCk7CisKKwkvKiBlbmFibGUgaW50ZXJydXB0cyBvbiB0aGUgY29udHJvbGxlci9wb3J0ICovCisJdGVtcCA9IGlvcmVhZDMyKGhjcl9iYXNlICsgSENPTlRST0wpOworCWlvd3JpdGUzMigodGVtcCB8IERFRkFVTFRfUE9SVF9JUlFfRU5BQkxFX01BU0spLCBoY3JfYmFzZSArIEhDT05UUk9MKTsKKworfQorCiBzdGF0aWMgaW50IHNhdGFfZnNsX3BvcnRfc3RhcnQoc3RydWN0IGF0YV9wb3J0ICphcCkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhcC0+aG9zdC0+ZGV2OwogCXN0cnVjdCBzYXRhX2ZzbF9wb3J0X3ByaXYgKnBwOwotCWludCByZXR2YWw7CiAJdm9pZCAqbWVtOwogCWRtYV9hZGRyX3QgbWVtX2RtYTsKIAlzdHJ1Y3Qgc2F0YV9mc2xfaG9zdF9wcml2ICpob3N0X3ByaXYgPSBhcC0+aG9zdC0+cHJpdmF0ZV9kYXRhOwpAQCAtNjg4LDEyICs3MTUsMTMgQEAKIH0KIAogc3RhdGljIGludCBzYXRhX2ZzbF9zb2Z0cmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQgKmNsYXNzLAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBkZWFkbGluZSkKKwkJCQkJdW5zaWduZWQgbG9uZyBkZWFkbGluZSkKIHsKIAlzdHJ1Y3QgYXRhX3BvcnQgKmFwID0gbGluay0+YXA7CiAJc3RydWN0IHNhdGFfZnNsX3BvcnRfcHJpdiAqcHAgPSBhcC0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBzYXRhX2ZzbF9ob3N0X3ByaXYgKmhvc3RfcHJpdiA9IGFwLT5ob3N0LT5wcml2YXRlX2RhdGE7CiAJdm9pZCBfX2lvbWVtICpoY3JfYmFzZSA9IGhvc3RfcHJpdi0+aGNyX2Jhc2U7CisJaW50IHBtcCA9IHNhdGFfc3JzdF9wbXAobGluayk7CiAJdTMyIHRlbXA7CiAJc3RydWN0IGF0YV90YXNrZmlsZSB0ZjsKIAl1OCAqY2ZpczsKQEAgLTcwMyw2ICs3MzEsOSBAQAogCiAJRFBSSU5USygiaW4geHhfc29mdHJlc2V0XG4iKTsKIAorCWlmIChwbXAgIT0gU0FUQV9QTVBfQ1RSTF9QT1JUKQorCQlnb3RvIGlzc3VlX3Nyc3Q7CisKIHRyeV9vZmZsaW5lX2FnYWluOgogCS8qCiAJICogRm9yY2UgaG9zdCBjb250cm9sbGVyIHRvIGdvIG9mZi1saW5lLCBhYm9ydGluZyBjdXJyZW50IG9wZXJhdGlvbnMKQEAgLTc0Niw2ICs3NzcsNyBAQAogCiAJdGVtcCA9IGlvcmVhZDMyKGhjcl9iYXNlICsgSENPTlRST0wpOwogCXRlbXAgfD0gKEhDT05UUk9MX09OTElORV9QSFlfUlNUIHwgSENPTlRST0xfU05PT1BfRU5BQkxFKTsKKwl0ZW1wIHw9IEhDT05UUk9MX1BNUF9BVFRBQ0hFRDsKIAlpb3dyaXRlMzIodGVtcCwgaGNyX2Jhc2UgKyBIQ09OVFJPTCk7CiAKIAl0ZW1wID0gYXRhX3dhaXRfcmVnaXN0ZXIoaGNyX2Jhc2UgKyBIU1RBVFVTLCBPTkxJTkUsIDAsIDEsIDUwMCk7CkBAIC03NzEsNyArODAzLDggQEAKIAkJYXRhX3BvcnRfcHJpbnRrKGFwLCBLRVJOX1dBUk5JTkcsCiAJCQkJIk5vIERldmljZSBPUiBQSFlSRFkgY2hhbmdlLEhzdGF0dXMgPSAweCV4XG4iLAogCQkJCWlvcmVhZDMyKGhjcl9iYXNlICsgSFNUQVRVUykpOwotCQlnb3RvIGVycjsKKwkJKmNsYXNzID0gQVRBX0RFVl9OT05FOworCQlnb3RvIG91dDsKIAl9CiAKIAkvKgpAQCAtNzgzLDcgKzgxNiw4IEBACiAKIAlpZiAoKHRlbXAgJiAweEZGKSAhPSAweDE4KSB7CiAJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9XQVJOSU5HLCAiTm8gU2lnbmF0dXJlIFVwZGF0ZVxuIik7Ci0JCWdvdG8gZXJyOworCQkqY2xhc3MgPSBBVEFfREVWX05PTkU7CisJCWdvdG8gb3V0OwogCX0gZWxzZSB7CiAJCWF0YV9wb3J0X3ByaW50ayhhcCwgS0VSTl9JTkZPLAogCQkJCSJTaWduYXR1cmUgVXBkYXRlIGRldGVjdGVkIEAgJWQgbXNlY3NcbiIsCkBAIC03OTgsNiArODMyLDcgQEAKIAkgKiByZWFjaGVkIGhlcmUsIHdlIGNhbiBzZW5kIGEgY29tbWFuZCB0byB0aGUgdGFyZ2V0IGRldmljZQogCSAqLwogCitpc3N1ZV9zcnN0OgogCURQUklOVEsoIlNlbmRpbmcgU1JTVC9kZXZpY2UgcmVzZXRcbiIpOwogCiAJYXRhX3RmX2luaXQobGluay0+ZGV2aWNlLCAmdGYpOwpAQCAtODA4LDcgKzg0Myw3IEBACiAJCQkJICAgICBTUlNUX0NNRCB8IENNRF9ERVNDX1NOT09QX0VOQUJMRSwgMCwgMCwgNSk7CiAKIAl0Zi5jdGwgfD0gQVRBX1NSU1Q7CS8qIHNldHVwIFNSU1QgYml0IGluIHRhc2tmaWxlIGNvbnRyb2wgcmVnICovCi0JYXRhX3RmX3RvX2ZpcygmdGYsIDAsIDAsIGNmaXMpOworCWF0YV90Zl90b19maXMoJnRmLCBwbXAsIDAsIGNmaXMpOwogCiAJRFBSSU5USygiRHVtcGluZyBjZmlzIDogMHgleCwgMHgleCwgMHgleCwgMHgleFxuIiwKIAkJY2Zpc1swXSwgY2Zpc1sxXSwgY2Zpc1syXSwgY2Zpc1szXSk7CkBAIC04NTQsOCArODg5LDEwIEBACiAJc2F0YV9mc2xfc2V0dXBfY21kX2hkcl9lbnRyeShwcCwgMCwgQ01EX0RFU0NfU05PT1BfRU5BQkxFLCAwLCAwLCA1KTsKIAogCXRmLmN0bCAmPSB+QVRBX1NSU1Q7CS8qIDJuZCBIMkQgQ3RsLiByZWdpc3RlciBGSVMgKi8KLQlhdGFfdGZfdG9fZmlzKCZ0ZiwgMCwgMCwgY2Zpcyk7CisJYXRhX3RmX3RvX2ZpcygmdGYsIHBtcCwgMCwgY2Zpcyk7CiAKKwlpZiAocG1wICE9IFNBVEFfUE1QX0NUUkxfUE9SVCkKKwkJaW93cml0ZTMyKHBtcCwgQ1FQTVAgKyBoY3JfYmFzZSk7CiAJaW93cml0ZTMyKDEsIENRICsgaGNyX2Jhc2UpOwogCW1zbGVlcCgxNTApOwkJLyogPz8gKi8KIApAQCAtODg2LDEyICs5MjMsMjEgQEAKIAkJVlBSSU5USygiY2VyZWcgPSAweCV4XG4iLCBpb3JlYWQzMihoY3JfYmFzZSArIENFKSk7CiAJfQogCitvdXQ6CiAJcmV0dXJuIDA7CiAKIGVycjoKIAlyZXR1cm4gLUVJTzsKIH0KIAorc3RhdGljIHZvaWQgc2F0YV9mc2xfZXJyb3JfaGFuZGxlcihzdHJ1Y3QgYXRhX3BvcnQgKmFwKQoreworCisJRFBSSU5USygiaW4geHhfZXJyb3JfaGFuZGxlclxuIik7CisJc2F0YV9wbXBfZXJyb3JfaGFuZGxlcihhcCk7CisKK30KKwogc3RhdGljIHZvaWQgc2F0YV9mc2xfcG9zdF9pbnRlcm5hbF9jbWQoc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYykKIHsKIAlpZiAocWMtPmZsYWdzICYgQVRBX1FDRkxBR19GQUlMRUQpCkBAIC05MDUsMTggKzk1MSwyMSBAQAogCiBzdGF0aWMgdm9pZCBzYXRhX2ZzbF9lcnJvcl9pbnRyKHN0cnVjdCBhdGFfcG9ydCAqYXApCiB7Ci0Jc3RydWN0IGF0YV9saW5rICpsaW5rID0gJmFwLT5saW5rOwotCXN0cnVjdCBhdGFfZWhfaW5mbyAqZWhpID0gJmxpbmstPmVoX2luZm87CiAJc3RydWN0IHNhdGFfZnNsX2hvc3RfcHJpdiAqaG9zdF9wcml2ID0gYXAtPmhvc3QtPnByaXZhdGVfZGF0YTsKIAl2b2lkIF9faW9tZW0gKmhjcl9iYXNlID0gaG9zdF9wcml2LT5oY3JfYmFzZTsKLQl1MzIgaHN0YXR1cywgZGVyZWcsIGNlcmVnID0gMCwgU0Vycm9yID0gMDsKKwl1MzIgaHN0YXR1cywgZGVyZWc9MCwgY2VyZWcgPSAwLCBTRXJyb3IgPSAwOwogCXVuc2lnbmVkIGludCBlcnJfbWFzayA9IDAsIGFjdGlvbiA9IDA7Ci0Jc3RydWN0IGF0YV9xdWV1ZWRfY21kICpxYzsKLQlpbnQgZnJlZXplID0gMDsKKwlpbnQgZnJlZXplID0gMCwgYWJvcnQ9MDsKKwlzdHJ1Y3QgYXRhX2xpbmsgKmxpbmsgPSBOVUxMOworCXN0cnVjdCBhdGFfcXVldWVkX2NtZCAqcWMgPSBOVUxMOworCXN0cnVjdCBhdGFfZWhfaW5mbyAqZWhpOwogCiAJaHN0YXR1cyA9IGlvcmVhZDMyKGhjcl9iYXNlICsgSFNUQVRVUyk7CiAJY2VyZWcgPSBpb3JlYWQzMihoY3JfYmFzZSArIENFKTsKIAorCS8qIGZpcnN0LCBhbmFseXplIGFuZCByZWNvcmQgaG9zdCBwb3J0IGV2ZW50cyAqLworCWxpbmsgPSAmYXAtPmxpbms7CisJZWhpID0gJmxpbmstPmVoX2luZm87CiAJYXRhX2VoaV9jbGVhcl9kZXNjKGVoaSk7CiAKIAkvKgpAQCAtOTI2LDEyICs5NzUsNDEgQEAKIAlzYXRhX2ZzbF9zY3JfcmVhZChhcCwgU0NSX0VSUk9SLCAmU0Vycm9yKTsKIAlpZiAodW5saWtlbHkoU0Vycm9yICYgMHhGRkZGMDAwMCkpIHsKIAkJc2F0YV9mc2xfc2NyX3dyaXRlKGFwLCBTQ1JfRVJST1IsIFNFcnJvcik7Ci0JCWVycl9tYXNrIHw9IEFDX0VSUl9BVEFfQlVTOwogCX0KIAogCURQUklOVEsoImVycm9yX2ludHIsaFN0YXQ9MHgleCxDRT0weCV4LERFID0weCV4LFNFcnI9MHgleFxuIiwKIAkJaHN0YXR1cywgY2VyZWcsIGlvcmVhZDMyKGhjcl9iYXNlICsgREUpLCBTRXJyb3IpOwogCisJLyogaGFuZGxlIGZhdGFsIGVycm9ycyAqLworCWlmIChoc3RhdHVzICYgRkFUQUxfRVJST1JfREVDT0RFKSB7CisJCWVoaS0+ZXJyX21hc2sgfD0gQUNfRVJSX0FUQV9CVVM7CisJCWVoaS0+YWN0aW9uIHw9IEFUQV9FSF9TT0ZUUkVTRVQ7CisKKwkJLyoKKwkJICogSWdub3JlIHNlcnJvciBpbiBjYXNlIG9mIGZhdGFsIGVycm9ycyBhcyB3ZSBhbHdheXMgd2FudAorCQkgKiB0byBkbyBhIHNvZnQtcmVzZXQgb2YgdGhlIEZTTCBTQVRBIGNvbnRyb2xsZXIuIEFuYWx5emluZworCQkgKiBzZXJyb3IgbWF5IGNhdXNlIGxpYmF0YSB0byBzY2hlZHVsZSBhIGhhcmQtcmVzZXQgYWN0aW9uLAorCQkgKiBhbmQgaGFyZC1yZXNldCBjdXJyZW50bHkgZG9lcyBub3QgZG8gY29udHJvbGxlcgorCQkgKiBvZmZsaW5lL29ubGluZSwgY2F1c2luZyBjb21tYW5kIHRpbWVvdXRzIGFuZCBsZWFkcyB0byBhbgorCQkgKiB1bi1yZWNvdmVyYWJsZSBzdGF0ZSwgaGVuY2UgbWFrZSBsaWJBVEEgaWdub3JlCisJCSAqIGF1dG9wc3kgaW4gY2FzZSBvZiBmYXRhbCBlcnJvcnMuCisJCSAqLworCisJCWVoaS0+ZmxhZ3MgfD0gQVRBX0VISV9OT19BVVRPUFNZOworCisJCWZyZWV6ZSA9IDE7CisJfQorCisJLyogSGFuZGxlIFBIWVJEWSBjaGFuZ2Ugbm90aWZpY2F0aW9uICovCisJaWYgKGhzdGF0dXMgJiBJTlRfT05fUEhZUkRZX0NIRykgeworCQlEUFJJTlRLKCJTQVRBIEZTTDogUEhZUkRZIGNoYW5nZSBpbmRpY2F0aW9uXG4iKTsKKworCQkvKiBTZXR1cCBhIHNvZnQtcmVzZXQgRUggYWN0aW9uICovCisJCWF0YV9laGlfaG90cGx1Z2dlZChlaGkpOworCQlhdGFfZWhpX3B1c2hfZGVzYyhlaGksICIlcyIsICJQSFkgUkRZIGNoYW5nZWQiKTsKKwkJZnJlZXplID0gMTsKKwl9CisKIAkvKiBoYW5kbGUgc2luZ2xlIGRldmljZSBlcnJvcnMgKi8KIAlpZiAoY2VyZWcpIHsKIAkJLyoKQEAgLTk0Myw1OCArMTAyMSw2OCBAQAogCQkgKiBjbGVhcmluZyB0aGUgZGV2aWNlIGVycm9yLCB3ZSBjYW4gaXNzdWUgY29tbWFuZHMgdG8gdGhlCiAJCSAqIGRldmljZSB0byBpbnRlcnJvZ2F0ZSBpdCB0byBmaW5kIHRoZSBzb3VyY2Ugb2YgdGhlIGVycm9yLgogCQkgKi8KLQkJZGVyZWcgPSBpb3JlYWQzMihoY3JfYmFzZSArIERFKTsKLQkJaW93cml0ZTMyKGRlcmVnLCBoY3JfYmFzZSArIERFKTsKLQkJaW93cml0ZTMyKGNlcmVnLCBoY3JfYmFzZSArIENFKTsKKwkJYWJvcnQgPSAxOwogCiAJCURQUklOVEsoInNpbmdsZSBkZXZpY2UgZXJyb3IsIENFPTB4JXgsIERFPTB4JXhcbiIsCiAJCQlpb3JlYWQzMihoY3JfYmFzZSArIENFKSwgaW9yZWFkMzIoaGNyX2Jhc2UgKyBERSkpOwotCQkvKgotCQkgKiBXZSBzaG91bGQgY29uc2lkZXIgdGhpcyBhcyBub24gZmF0YWwgZXJyb3IsIGFuZCBURiBtdXN0Ci0JCSAqIGJlIHVwZGF0ZWQgYXMgZG9uZSBiZWxvdy4KLQkJICovCiAKLQkJZXJyX21hc2sgfD0gQUNfRVJSX0RFVjsKLQl9CisJCS8qIGZpbmQgb3V0IHRoZSBvZmZlbmRpbmcgbGluayBhbmQgcWMgKi8KKwkJaWYgKGFwLT5ucl9wbXBfbGlua3MpIHsKKwkJCWRlcmVnID0gaW9yZWFkMzIoaGNyX2Jhc2UgKyBERSk7CisJCQlpb3dyaXRlMzIoZGVyZWcsIGhjcl9iYXNlICsgREUpOworCQkJaW93cml0ZTMyKGNlcmVnLCBoY3JfYmFzZSArIENFKTsKIAotCS8qIGhhbmRsZSBmYXRhbCBlcnJvcnMgKi8KLQlpZiAoaHN0YXR1cyAmIEZBVEFMX0VSUk9SX0RFQ09ERSkgewotCQllcnJfbWFzayB8PSBBQ19FUlJfQVRBX0JVUzsKLQkJYWN0aW9uIHw9IEFUQV9FSF9SRVNFVDsKLQkJLyogaG93IHdpbGwgZmF0YWwgZXJyb3IgaW50ZXJydXB0cyBiZSBjb21wbGV0ZWQgPz8gKi8KLQkJZnJlZXplID0gMTsKLQl9CisJCQlpZiAoZGVyZWcgPCBhcC0+bnJfcG1wX2xpbmtzKSB7CisJCQkJbGluayA9ICZhcC0+cG1wX2xpbmtbZGVyZWddOworCQkJCWVoaSA9ICZsaW5rLT5laF9pbmZvOworCQkJCXFjID0gYXRhX3FjX2Zyb21fdGFnKGFwLCBsaW5rLT5hY3RpdmVfdGFnKTsKKwkJCQkvKgorCQkJCSAqIFdlIHNob3VsZCBjb25zaWRlciB0aGlzIGFzIG5vbiBmYXRhbCBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIFRGIG11c3QgYmUgdXBkYXRlZCBhcyBkb25lIGJlbG93LgorCQkgICAgICAgICAgICAgICAgICovCiAKLQkvKiBIYW5kbGUgUEhZUkRZIGNoYW5nZSBub3RpZmljYXRpb24gKi8KLQlpZiAoaHN0YXR1cyAmIElOVF9PTl9QSFlSRFlfQ0hHKSB7Ci0JCURQUklOVEsoIlNBVEEgRlNMOiBQSFlSRFkgY2hhbmdlIGluZGljYXRpb25cbiIpOworCQkJCWVycl9tYXNrIHw9IEFDX0VSUl9ERVY7CiAKLQkJLyogU2V0dXAgYSBzb2Z0LXJlc2V0IEVIIGFjdGlvbiAqLwotCQlhdGFfZWhpX2hvdHBsdWdnZWQoZWhpKTsKLQkJZnJlZXplID0gMTsKKwkJCX0gZWxzZSB7CisJCQkJZXJyX21hc2sgfD0gQUNfRVJSX0hTTTsKKwkJCQlhY3Rpb24gfD0gQVRBX0VIX0hBUkRSRVNFVDsKKwkJCQlmcmVlemUgPSAxOworCQkJfQorCQl9IGVsc2UgeworCQkJZGVyZWcgPSBpb3JlYWQzMihoY3JfYmFzZSArIERFKTsKKwkJCWlvd3JpdGUzMihkZXJlZywgaGNyX2Jhc2UgKyBERSk7CisJCQlpb3dyaXRlMzIoY2VyZWcsIGhjcl9iYXNlICsgQ0UpOworCisJCQlxYyA9IGF0YV9xY19mcm9tX3RhZyhhcCwgbGluay0+YWN0aXZlX3RhZyk7CisJCQkvKgorCQkJICogV2Ugc2hvdWxkIGNvbnNpZGVyIHRoaXMgYXMgbm9uIGZhdGFsIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICogYW5kIFRGIG11c3QgYmUgdXBkYXRlZCBhcyBkb25lIGJlbG93LgorCSAgICAgICAgICAgICAgICAqLworCQkJZXJyX21hc2sgfD0gQUNfRVJSX0RFVjsKKwkJfQogCX0KIAogCS8qIHJlY29yZCBlcnJvciBpbmZvICovCi0JcWMgPSBhdGFfcWNfZnJvbV90YWcoYXAsIGxpbmstPmFjdGl2ZV90YWcpOwotCi0JaWYgKHFjKQorCWlmIChxYykgewogCQlxYy0+ZXJyX21hc2sgfD0gZXJyX21hc2s7Ci0JZWxzZQorCX0gZWxzZQogCQllaGktPmVycl9tYXNrIHw9IGVycl9tYXNrOwogCiAJZWhpLT5hY3Rpb24gfD0gYWN0aW9uOwotCWVoaS0+c2Vycm9yIHw9IFNFcnJvcjsKIAogCS8qIGZyZWV6ZSBvciBhYm9ydCAqLwogCWlmIChmcmVlemUpCiAJCWF0YV9wb3J0X2ZyZWV6ZShhcCk7Ci0JZWxzZQotCQlhdGFfcG9ydF9hYm9ydChhcCk7CisJZWxzZSBpZiAoYWJvcnQpIHsKKwkJaWYgKHFjKQorCQkJYXRhX2xpbmtfYWJvcnQocWMtPmRldi0+bGluayk7CisJCWVsc2UKKwkJCWF0YV9wb3J0X2Fib3J0KGFwKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIHNhdGFfZnNsX2hvc3RfaW50cihzdHJ1Y3QgYXRhX3BvcnQgKmFwKQogewotCXN0cnVjdCBhdGFfbGluayAqbGluayA9ICZhcC0+bGluazsKIAlzdHJ1Y3Qgc2F0YV9mc2xfaG9zdF9wcml2ICpob3N0X3ByaXYgPSBhcC0+aG9zdC0+cHJpdmF0ZV9kYXRhOwogCXZvaWQgX19pb21lbSAqaGNyX2Jhc2UgPSBob3N0X3ByaXYtPmhjcl9iYXNlOwogCXUzMiBoc3RhdHVzLCBxY19hY3RpdmUgPSAwOwpAQCAtMTAxNywxMCArMTEwNSwxOSBAQAogCQlyZXR1cm47CiAJfQogCi0JaWYgKGxpbmstPnNhY3RpdmUpIHsJLyogb25seSB0cnVlIGZvciBOQ1EgY29tbWFuZHMgKi8KKwkvKiBSZWFkIGNvbW1hbmQgY29tcGxldGVkIHJlZ2lzdGVyICovCisJcWNfYWN0aXZlID0gaW9yZWFkMzIoaGNyX2Jhc2UgKyBDQyk7CisKKwlWUFJJTlRLKCJTdGF0dXMgb2YgYWxsIHF1ZXVlcyA6XG4iKTsKKwlWUFJJTlRLKCJxY19hY3RpdmUvQ0MgPSAweCV4LCBDQSA9IDB4JXgsIENFPTB4JXgsQ1E9MHgleCxhcHFhPTB4JXhcbiIsCisJCXFjX2FjdGl2ZSwKKwkJaW9yZWFkMzIoaGNyX2Jhc2UgKyBDQSksCisJCWlvcmVhZDMyKGhjcl9iYXNlICsgQ0UpLAorCQlpb3JlYWQzMihoY3JfYmFzZSArIENRKSwKKwkJYXAtPnFjX2FjdGl2ZSk7CisKKwlpZiAocWNfYWN0aXZlICYgYXAtPnFjX2FjdGl2ZSkgewogCQlpbnQgaTsKLQkJLyogUmVhZCBjb21tYW5kIGNvbXBsZXRlZCByZWdpc3RlciAqLwotCQlxY19hY3RpdmUgPSBpb3JlYWQzMihoY3JfYmFzZSArIENDKTsKIAkJLyogY2xlYXIgQ0MgYml0LCB0aGlzIHdpbGwgYWxzbyBjb21wbGV0ZSB0aGUgaW50ZXJydXB0ICovCiAJCWlvd3JpdGUzMihxY19hY3RpdmUsIGhjcl9iYXNlICsgQ0MpOwogCkBAIC0xMDMyLDggKzExMjksOSBAQAogCQlmb3IgKGkgPSAwOyBpIDwgU0FUQV9GU0xfUVVFVUVfREVQVEg7IGkrKykgewogCQkJaWYgKHFjX2FjdGl2ZSAmICgxIDw8IGkpKSB7CiAJCQkJcWMgPSBhdGFfcWNfZnJvbV90YWcoYXAsIGkpOwotCQkJCWlmIChxYykKKwkJCQlpZiAocWMpIHsKIAkJCQkJYXRhX3FjX2NvbXBsZXRlKHFjKTsKKwkJCQl9CiAJCQkJRFBSSU5USwogCQkJCSAgICAoImNvbXBsZXRpbmcgbmNxIGNtZCx0YWc9JWQsQ0M9MHgleCxDQT0weCV4XG4iLAogCQkJCSAgICAgaSwgaW9yZWFkMzIoaGNyX2Jhc2UgKyBDQyksCkBAIC0xMDQyLDE5ICsxMTQwLDIxIEBACiAJCX0KIAkJcmV0dXJuOwogCi0JfSBlbHNlIGlmIChhcC0+cWNfYWN0aXZlKSB7CisJfSBlbHNlIGlmICgoYXAtPnFjX2FjdGl2ZSAmICgxIDw8IEFUQV9UQUdfSU5URVJOQUwpKSkgewogCQlpb3dyaXRlMzIoMSwgaGNyX2Jhc2UgKyBDQyk7Ci0JCXFjID0gYXRhX3FjX2Zyb21fdGFnKGFwLCBsaW5rLT5hY3RpdmVfdGFnKTsKKwkJcWMgPSBhdGFfcWNfZnJvbV90YWcoYXAsIEFUQV9UQUdfSU5URVJOQUwpOwogCi0JCURQUklOVEsoImNvbXBsZXRpbmcgbm9uLW5jcSBjbWQsIHRhZz0lZCxDQz0weCV4XG4iLAotCQkJbGluay0+YWN0aXZlX3RhZywgaW9yZWFkMzIoaGNyX2Jhc2UgKyBDQykpOworCQlEUFJJTlRLKCJjb21wbGV0aW5nIG5vbi1uY3EgY21kLCBDQz0weCV4XG4iLAorCQkJIGlvcmVhZDMyKGhjcl9iYXNlICsgQ0MpKTsKIAotCQlpZiAocWMpCisJCWlmIChxYykgewogCQkJYXRhX3FjX2NvbXBsZXRlKHFjKTsKKwkJfQogCX0gZWxzZSB7CiAJCS8qIFNwdXJpb3VzIEludGVycnVwdCEhICovCiAJCURQUklOVEsoInNwdXJpb3VzIGludGVycnVwdCEhLCBDQyA9IDB4JXhcbiIsCiAJCQlpb3JlYWQzMihoY3JfYmFzZSArIENDKSk7CisJCWlvd3JpdGUzMihxY19hY3RpdmUsIGhjcl9iYXNlICsgQ0MpOwogCQlyZXR1cm47CiAJfQogfQpAQCAtMTEzMCw5ICsxMjMwLDYgQEAKIAlpb3dyaXRlMzIoMHgwMDAwMEZGRkYsIGhjcl9iYXNlICsgQ0UpOwogCWlvd3JpdGUzMigweDAwMDAwRkZGRiwgaGNyX2Jhc2UgKyBERSk7CiAKLQkvKiBpbml0aWFsbHkgYXNzdW1pbmcgbm8gUG9ydCBtdWx0aXBsaWVyLCBzZXQgQ1FQTVAgdG8gMCAqLwotCWlvd3JpdGUzMigweDAsIGhjcl9iYXNlICsgQ1FQTVApOwotCiAJLyoKIAkgKiBob3N0IGNvbnRyb2xsZXIgd2lsbCBiZSBicm91Z2h0IG9uLWxpbmUsIGR1cmluZyB4eF9wb3J0X3N0YXJ0KCkKIAkgKiBjYWxsYmFjaywgdGhhdCBzaG91bGQgYWxzbyBpbml0aWF0ZSB0aGUgT09CLCBDT01JTklUIHNlcXVlbmNlCkBAIC0xMTU0LDggKzEyNTEsOCBAQAogCS5kbWFfYm91bmRhcnkgPSBBVEFfRE1BX0JPVU5EQVJZLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRpb25zIHNhdGFfZnNsX29wcyA9IHsKLQkuaW5oZXJpdHMgPSAmc2F0YV9wb3J0X29wcywKK3N0YXRpYyBzdHJ1Y3QgYXRhX3BvcnRfb3BlcmF0aW9ucyBzYXRhX2ZzbF9vcHMgPSB7CisJLmluaGVyaXRzCQk9ICZzYXRhX3BtcF9wb3J0X29wcywKIAogCS5xY19wcmVwID0gc2F0YV9mc2xfcWNfcHJlcCwKIAkucWNfaXNzdWUgPSBzYXRhX2ZzbF9xY19pc3N1ZSwKQEAgLTExNjgsMTAgKzEyNjUsMTUgQEAKIAkudGhhdyA9IHNhdGFfZnNsX3RoYXcsCiAJLnByZXJlc2V0ID0gc2F0YV9mc2xfcHJlcmVzZXQsCiAJLnNvZnRyZXNldCA9IHNhdGFfZnNsX3NvZnRyZXNldCwKKwkucG1wX3NvZnRyZXNldCA9IHNhdGFfZnNsX3NvZnRyZXNldCwKKwkuZXJyb3JfaGFuZGxlciA9IHNhdGFfZnNsX2Vycm9yX2hhbmRsZXIsCiAJLnBvc3RfaW50ZXJuYWxfY21kID0gc2F0YV9mc2xfcG9zdF9pbnRlcm5hbF9jbWQsCiAKIAkucG9ydF9zdGFydCA9IHNhdGFfZnNsX3BvcnRfc3RhcnQsCiAJLnBvcnRfc3RvcCA9IHNhdGFfZnNsX3BvcnRfc3RvcCwKKworCS5wbXBfYXR0YWNoID0gc2F0YV9mc2xfcG1wX2F0dGFjaCwKKwkucG1wX2RldGFjaCA9IHNhdGFfZnNsX3BtcF9kZXRhY2gsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gc2F0YV9mc2xfcG9ydF9pbmZvW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX212LmMgYi9kcml2ZXJzL2F0YS9zYXRhX212LmMKaW5kZXggZmI4MWYwYy4uYWQxNjlmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvc2F0YV9tdi5jCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfbXYuYwpAQCAtNzIsNyArNzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2xpYmF0YS5oPgogCiAjZGVmaW5lIERSVl9OQU1FCSJzYXRhX212IgotI2RlZmluZSBEUlZfVkVSU0lPTgkiMS4yMSIKKyNkZWZpbmUgRFJWX1ZFUlNJT04JIjEuMjQiCiAKIGVudW0gewogCS8qIEJBUidzIGFyZSBlbnVtZXJhdGVkIGluIHRlcm1zIG9mIHBjaV9yZXNvdXJjZV9zdGFydCgpIHRlcm1zICovCkBAIC0xMjIsOCArMTIyLDYgQEAKIAkvKiBIb3N0IEZsYWdzICovCiAJTVZfRkxBR19EVUFMX0hDCQk9ICgxIDw8IDMwKSwgIC8qIHR3byBTQVRBIEhvc3QgQ29udHJvbGxlcnMgKi8KIAlNVl9GTEFHX0lSUV9DT0FMRVNDRQk9ICgxIDw8IDI5KSwgIC8qIElSUSBjb2FsZXNjaW5nIGNhcGFiaWxpdHkgKi8KLQkvKiBTb0MgaW50ZWdyYXRlZCBjb250cm9sbGVycywgbm8gUENJIGludGVyZmFjZSAqLwotCU1WX0ZMQUdfU09DCQk9ICgxIDw8IDI4KSwKIAogCU1WX0NPTU1PTl9GTEFHUwkJPSBBVEFfRkxBR19TQVRBIHwgQVRBX0ZMQUdfTk9fTEVHQUNZIHwKIAkJCQkgIEFUQV9GTEFHX01NSU8gfCBBVEFfRkxBR19OT19BVEFQSSB8CkBAIC0yMjYsNiArMjI0LDExIEBACiAKIAlQSFlfTU9ERTMJCT0gMHgzMTAsCiAJUEhZX01PREU0CQk9IDB4MzE0LAorCVBIWV9NT0RFNF9DRkdfTUFTSwk9IDB4MDAwMDAwMDMsCS8qIHBoeSBpbnRlcm5hbCBjb25maWcgZmllbGQgKi8KKwlQSFlfTU9ERTRfQ0ZHX1ZBTFVFCT0gMHgwMDAwMDAwMSwJLyogcGh5IGludGVybmFsIGNvbmZpZyBmaWVsZCAqLworCVBIWV9NT0RFNF9SU1ZEX1pFUk9TCT0gMHg1ZGUzZmZmYSwJLyogR2VuMmUgYWx3YXlzIHdyaXRlIHplcm9zICovCisJUEhZX01PREU0X1JTVkRfT05FUwk9IDB4MDAwMDAwMDUsCS8qIEdlbjJlIGFsd2F5cyB3cml0ZSBvbmVzICovCisKIAlQSFlfTU9ERTIJCT0gMHgzMzAsCiAJU0FUQV9JRkNUTF9PRlMJCT0gMHgzNDQsCiAJU0FUQV9URVNUQ1RMX09GUwk9IDB4MzQ4LApAQCAtMzU2LDEyICszNTksMTIgQEAKIAlNVl9IUF9FUlJBVEFfNTBYWEIyCT0gKDEgPDwgMiksCiAJTVZfSFBfRVJSQVRBXzYwWDFCMgk9ICgxIDw8IDMpLAogCU1WX0hQX0VSUkFUQV82MFgxQzAJPSAoMSA8PCA0KSwKLQlNVl9IUF9FUlJBVEFfWFg0MkEwCT0gKDEgPDwgNSksCiAJTVZfSFBfR0VOX0kJCT0gKDEgPDwgNiksCS8qIEdlbmVyYXRpb24gSTogNTB4eCAqLwogCU1WX0hQX0dFTl9JSQkJPSAoMSA8PCA3KSwJLyogR2VuZXJhdGlvbiBJSTogNjB4eCAqLwogCU1WX0hQX0dFTl9JSUUJCT0gKDEgPDwgOCksCS8qIEdlbmVyYXRpb24gSUlFOiA2MDQyLzcwNDIgKi8KIAlNVl9IUF9QQ0lFCQk9ICgxIDw8IDkpLAkvKiBQQ0llIGJ1cy9yZWdzOiA3MDQyICovCiAJTVZfSFBfQ1VUX1RIUk9VR0gJPSAoMSA8PCAxMCksCS8qIGNhbiB1c2UgRURNQSBjdXQtdGhyb3VnaCAqLworCU1WX0hQX0ZMQUdfU09DCQk9ICgxIDw8IDExKSwJLyogU3lzdGVtT25DaGlwLCBubyBQQ0kgKi8KIAogCS8qIFBvcnQgcHJpdmF0ZSBmbGFncyAocHBfZmxhZ3MpICovCiAJTVZfUFBfRkxBR19FRE1BX0VOCT0gKDEgPDwgMCksCS8qIGlzIEVETUEgZW5naW5lIGVuYWJsZWQ/ICovCkBAIC0zNzQsNyArMzc3LDcgQEAKICNkZWZpbmUgSVNfR0VOX0lJKGhwcml2KSAoKGhwcml2KS0+aHBfZmxhZ3MgJiBNVl9IUF9HRU5fSUkpCiAjZGVmaW5lIElTX0dFTl9JSUUoaHByaXYpICgoaHByaXYpLT5ocF9mbGFncyAmIE1WX0hQX0dFTl9JSUUpCiAjZGVmaW5lIElTX1BDSUUoaHByaXYpICgoaHByaXYpLT5ocF9mbGFncyAmIE1WX0hQX1BDSUUpCi0jZGVmaW5lIEhBU19QQ0koaG9zdCkgKCEoKGhvc3QpLT5wb3J0c1swXS0+ZmxhZ3MgJiBNVl9GTEFHX1NPQykpCisjZGVmaW5lIElTX1NPQyhocHJpdikgKChocHJpdiktPmhwX2ZsYWdzICYgTVZfSFBfRkxBR19TT0MpCiAKICNkZWZpbmUgV0lORE9XX0NUUkwoaSkJCSgweDIwMDMwICsgKChpKSA8PCA0KSkKICNkZWZpbmUgV0lORE9XX0JBU0UoaSkJCSgweDIwMDM0ICsgKChpKSA8PCA0KSkKQEAgLTY1Miw3ICs2NTUsNyBAQAogCQkucG9ydF9vcHMJPSAmbXZfaWllX29wcywKIAl9LAogCXsgIC8qIGNoaXBfc29jICovCi0JCS5mbGFncwkJPSBNVl9HRU5JSUVfRkxBR1MgfCBNVl9GTEFHX1NPQywKKwkJLmZsYWdzCQk9IE1WX0dFTklJRV9GTEFHUywKIAkJLnBpb19tYXNrCT0gMHgxZiwJLyogcGlvMC00ICovCiAJCS51ZG1hX21hc2sJPSBBVEFfVURNQTYsCiAJCS5wb3J0X29wcwk9ICZtdl9paWVfb3BzLApAQCAtODEyLDEyICs4MTUsNyBAQAogCXdyaXRlbCgocHAtPmNycWJfZG1hID4+IDE2KSA+PiAxNiwgcG9ydF9tbWlvICsgRURNQV9SRVFfUV9CQVNFX0hJX09GUyk7CiAJd3JpdGVsZmwoKHBwLT5jcnFiX2RtYSAmIEVETUFfUkVRX1FfQkFTRV9MT19NQVNLKSB8IGluZGV4LAogCQkgcG9ydF9tbWlvICsgRURNQV9SRVFfUV9JTl9QVFJfT0ZTKTsKLQotCWlmIChocHJpdi0+aHBfZmxhZ3MgJiBNVl9IUF9FUlJBVEFfWFg0MkEwKQotCQl3cml0ZWxmbCgocHAtPmNycWJfZG1hICYgMHhmZmZmZmZmZikgfCBpbmRleCwKLQkJCSBwb3J0X21taW8gKyBFRE1BX1JFUV9RX09VVF9QVFJfT0ZTKTsKLQllbHNlCi0JCXdyaXRlbGZsKGluZGV4LCBwb3J0X21taW8gKyBFRE1BX1JFUV9RX09VVF9QVFJfT0ZTKTsKKwl3cml0ZWxmbChpbmRleCwgcG9ydF9tbWlvICsgRURNQV9SRVFfUV9PVVRfUFRSX09GUyk7CiAKIAkvKgogCSAqIGluaXRpYWxpemUgcmVzcG9uc2UgcXVldWUKQEAgLTgyNywxMyArODI1LDcgQEAKIAogCVdBUk5fT04ocHAtPmNycGJfZG1hICYgMHhmZik7CiAJd3JpdGVsKChwcC0+Y3JwYl9kbWEgPj4gMTYpID4+IDE2LCBwb3J0X21taW8gKyBFRE1BX1JTUF9RX0JBU0VfSElfT0ZTKTsKLQotCWlmIChocHJpdi0+aHBfZmxhZ3MgJiBNVl9IUF9FUlJBVEFfWFg0MkEwKQotCQl3cml0ZWxmbCgocHAtPmNycGJfZG1hICYgMHhmZmZmZmZmZikgfCBpbmRleCwKLQkJCSBwb3J0X21taW8gKyBFRE1BX1JTUF9RX0lOX1BUUl9PRlMpOwotCWVsc2UKLQkJd3JpdGVsZmwoaW5kZXgsIHBvcnRfbW1pbyArIEVETUFfUlNQX1FfSU5fUFRSX09GUyk7Ci0KKwl3cml0ZWxmbChpbmRleCwgcG9ydF9tbWlvICsgRURNQV9SU1BfUV9JTl9QVFJfT0ZTKTsKIAl3cml0ZWxmbCgocHAtPmNycGJfZG1hICYgRURNQV9SU1BfUV9CQVNFX0xPX01BU0spIHwgaW5kZXgsCiAJCSBwb3J0X21taW8gKyBFRE1BX1JTUF9RX09VVF9QVFJfT0ZTKTsKIH0KQEAgLTEyNTQsNyArMTI0Niw3IEBACiAKIAkJY2ZnIHw9ICgxIDw8IDIzKTsJLyogZG8gbm90IG1hc2sgUE0gZmllbGQgaW4gcngnZCBGSVMgKi8KIAkJY2ZnIHw9ICgxIDw8IDIyKTsJLyogZW5hYiA0LWVudHJ5IGhvc3QgcXVldWUgY2FjaGUgKi8KLQkJaWYgKEhBU19QQ0koYXAtPmhvc3QpKQorCQlpZiAoIUlTX1NPQyhocHJpdikpCiAJCQljZmcgfD0gKDEgPDwgMTgpOwkvKiBlbmFiIGVhcmx5IGNvbXBsZXRpb24gKi8KIAkJaWYgKGhwcml2LT5ocF9mbGFncyAmIE1WX0hQX0NVVF9USFJPVUdIKQogCQkJY2ZnIHw9ICgxIDw8IDE3KTsgLyogZW5hYiBjdXQtdGhydSAoZGlzIHN0b3ImZm9yd3JkKSAqLwpAQCAtMTMzMCw2ICsxMzIyLDkgQEAKIAkJZ290byBvdXRfcG9ydF9mcmVlX2RtYV9tZW07CiAJbWVtc2V0KHBwLT5jcnBiLCAwLCBNVl9DUlBCX1FfU1opOwogCisJLyogNjA0MS82MDgxIFJldi4gIkMwIiAoYW5kIG5ld2VyKSBhcmUgb2theSB3aXRoIGFzeW5jIG5vdGlmeSAqLworCWlmIChocHJpdi0+aHBfZmxhZ3MgJiBNVl9IUF9FUlJBVEFfNjBYMUMwKQorCQlhcC0+ZmxhZ3MgfD0gQVRBX0ZMQUdfQU47CiAJLyoKIAkgKiBGb3IgR0VOX0ksIHRoZXJlJ3Mgbm8gTkNRLCBzbyB3ZSBvbmx5IGFsbG9jYXRlIGEgc2luZ2xlIHNnX3RibC4KIAkgKiBGb3IgbGF0ZXIgaGFyZHdhcmUsIHdlIG5lZWQgb25lIHVuaXF1ZSBzZ190YmwgcGVyIE5DUSB0YWcuCkBAIC0xNjAwLDYgKzE1OTUsMjQgQEAKIAogCWlmICgocWMtPnRmLnByb3RvY29sICE9IEFUQV9QUk9UX0RNQSkgJiYKIAkgICAgKHFjLT50Zi5wcm90b2NvbCAhPSBBVEFfUFJPVF9OQ1EpKSB7CisJCXN0YXRpYyBpbnQgbGltaXRfd2FybmluZ3MgPSAxMDsKKwkJLyoKKwkJICogRXJyYXRhIFNBVEEjMTYsIFNBVEEjMjQ6IHdhcm4gaWYgbXVsdGlwbGUgRFJRcyBleHBlY3RlZC4KKwkJICoKKwkJICogU29tZWRheSwgd2UgbWlnaHQgaW1wbGVtZW50IHNwZWNpYWwgcG9sbGluZyB3b3JrYXJvdW5kcworCQkgKiBmb3IgdGhlc2UsIGJ1dCBpdCBhbGwgc2VlbXMgcmF0aGVyIHVubmVjZXNzYXJ5IHNpbmNlIHdlCisJCSAqIG5vcm1hbGx5IHVzZSBvbmx5IERNQSBmb3IgY29tbWFuZHMgd2hpY2ggdHJhbnNmZXIgbW9yZQorCQkgKiB0aGFuIGEgc2luZ2xlIGJsb2NrIG9mIGRhdGEuCisJCSAqCisJCSAqIE11Y2ggb2YgdGhlIHRpbWUsIHRoaXMgY291bGQganVzdCB3b3JrIHJlZ2FyZGxlc3MuCisJCSAqIFNvIGZvciBub3csIGp1c3QgbG9nIHRoZSBpbmNpZGVudCwgYW5kIGFsbG93IHRoZSBhdHRlbXB0LgorCQkgKi8KKwkJaWYgKGxpbWl0X3dhcm5pbmdzID4gMCAmJiAocWMtPm5ieXRlcyAvIHFjLT5zZWN0X3NpemUpID4gMSkgeworCQkJLS1saW1pdF93YXJuaW5nczsKKwkJCWF0YV9saW5rX3ByaW50ayhxYy0+ZGV2LT5saW5rLCBLRVJOX1dBUk5JTkcsIERSVl9OQU1FCisJCQkJCSI6IGF0dGVtcHRpbmcgUElPIHcvbXVsdGlwbGUgRFJROiAiCisJCQkJCSJ0aGlzIG1heSBmYWlsIGR1ZSB0byBoL3cgZXJyYXRhXG4iKTsKKwkJfQogCQkvKgogCQkgKiBXZSdyZSBhYm91dCB0byBzZW5kIGEgbm9uLUVETUEgY2FwYWJsZSBjb21tYW5kIHRvIHRoZQogCQkgKiBwb3J0LiAgVHVybiBvZmYgRURNQSBzbyB0aGVyZSB3b24ndCBiZSBwcm9ibGVtcyBhY2Nlc3NpbmcKQEAgLTIyMjUsNyArMjIzOCw3IEBACiAJICogYSBib2d1cyByZWdpc3RlciB2YWx1ZSB3aGljaCBjYW4gaW5kaWNhdGUgSFcgcmVtb3ZhbCBvciBQQ0kgZmF1bHQuCiAJICovCiAJaWYgKHBlbmRpbmdfaXJxcyAmJiBtYWluX2lycV9jYXVzZSAhPSAweGZmZmZmZmZmVSkgewotCQlpZiAodW5saWtlbHkoKHBlbmRpbmdfaXJxcyAmIFBDSV9FUlIpICYmIEhBU19QQ0koaG9zdCkpKQorCQlpZiAodW5saWtlbHkoKHBlbmRpbmdfaXJxcyAmIFBDSV9FUlIpICYmICFJU19TT0MoaHByaXYpKSkKIAkJCWhhbmRsZWQgPSBtdl9wY2lfZXJyb3IoaG9zdCwgaHByaXYtPmJhc2UpOwogCQllbHNlCiAJCQloYW5kbGVkID0gbXZfaG9zdF9pbnRyKGhvc3QsIHBlbmRpbmdfaXJxcyk7CkBAIC0yNTQ3LDcgKzI1NjAsNyBAQAogCQlocF9mbGFncyAmIChNVl9IUF9FUlJBVEFfNjBYMUIyIHwgTVZfSFBfRVJSQVRBXzYwWDFDMCk7CiAJaW50IGZpeF9waHlfbW9kZTQgPQogCQlocF9mbGFncyAmIChNVl9IUF9FUlJBVEFfNjBYMUIyIHwgTVZfSFBfRVJSQVRBXzYwWDFDMCk7Ci0JdTMyIG0yLCB0bXA7CisJdTMyIG0yLCBtMzsKIAogCWlmIChmaXhfcGh5X21vZGUyKSB7CiAJCW0yID0gcmVhZGwocG9ydF9tbWlvICsgUEhZX01PREUyKTsKQEAgLTI1NjQsMjggKzI1NzcsMzYgQEAKIAkJdWRlbGF5KDIwMCk7CiAJfQogCi0JLyogd2hvIGtub3dzIHdoYXQgdGhpcyBtYWdpYyBkb2VzICovCi0JdG1wID0gcmVhZGwocG9ydF9tbWlvICsgUEhZX01PREUzKTsKLQl0bXAgJj0gfjB4N0Y4MDAwMDA7Ci0JdG1wIHw9IDB4MkE4MDAwMDA7Ci0Jd3JpdGVsKHRtcCwgcG9ydF9tbWlvICsgUEhZX01PREUzKTsKKwkvKgorCSAqIEdlbi1JSS9JSWUgUEhZX01PREUzIGVycmF0YSBSTSMyOgorCSAqIEFjaGlldmVzIGJldHRlciByZWNlaXZlciBub2lzZSBwZXJmb3JtYW5jZSB0aGFuIHRoZSBoL3cgZGVmYXVsdDoKKwkgKi8KKwltMyA9IHJlYWRsKHBvcnRfbW1pbyArIFBIWV9NT0RFMyk7CisJbTMgPSAobTMgJiAweDFmKSB8ICgweDU1NTU2MDEgPDwgNSk7CisKKwkvKiBHdWlkZWxpbmUgODhGNTE4MiAoR0wjIFNBVEEtUzExKSAqLworCWlmIChJU19TT0MoaHByaXYpKQorCQltMyAmPSB+MHgxYzsKIAogCWlmIChmaXhfcGh5X21vZGU0KSB7Ci0JCXUzMiBtNDsKLQotCQltNCA9IHJlYWRsKHBvcnRfbW1pbyArIFBIWV9NT0RFNCk7Ci0KLQkJaWYgKGhwX2ZsYWdzICYgTVZfSFBfRVJSQVRBXzYwWDFCMikKLQkJCXRtcCA9IHJlYWRsKHBvcnRfbW1pbyArIFBIWV9NT0RFMyk7Ci0KLQkJLyogd29ya2Fyb3VuZCBmb3IgZXJyYXRhIEZFciBTQVRBIzEwIChwYXJ0IDEpICovCi0JCW00ID0gKG00ICYgfigxIDw8IDEpKSB8ICgxIDw8IDApOwotCisJCXUzMiBtNCA9IHJlYWRsKHBvcnRfbW1pbyArIFBIWV9NT0RFNCk7CisJCS8qCisJCSAqIEVuZm9yY2UgcmVzZXJ2ZWQtYml0IHJlc3RyaWN0aW9ucyBvbiBHZW5JSWUgZGV2aWNlcyBvbmx5LgorCQkgKiBGb3IgZWFybGllciBjaGlwc2V0cywgZm9yY2Ugb25seSB0aGUgaW50ZXJuYWwgY29uZmlnIGZpZWxkCisJCSAqICAod29ya2Fyb3VuZCBmb3IgZXJyYXRhIEZFciBTQVRBIzEwIHBhcnQgMSkuCisJCSAqLworCQlpZiAoSVNfR0VOX0lJRShocHJpdikpCisJCQltNCA9IChtNCAmIH5QSFlfTU9ERTRfUlNWRF9aRVJPUykgfCBQSFlfTU9ERTRfUlNWRF9PTkVTOworCQllbHNlCisJCQltNCA9IChtNCAmIH5QSFlfTU9ERTRfQ0ZHX01BU0spIHwgUEhZX01PREU0X0NGR19WQUxVRTsKIAkJd3JpdGVsKG00LCBwb3J0X21taW8gKyBQSFlfTU9ERTQpOwotCi0JCWlmIChocF9mbGFncyAmIE1WX0hQX0VSUkFUQV82MFgxQjIpCi0JCQl3cml0ZWwodG1wLCBwb3J0X21taW8gKyBQSFlfTU9ERTMpOwogCX0KKwkvKgorCSAqIFdvcmthcm91bmQgZm9yIDYweDEtQjIgZXJyYXRhIFNBVEEjMTM6CisJICogQW55IHdyaXRlIHRvIFBIWV9NT0RFNCAoYWJvdmUpIG1heSBjb3JydXB0IFBIWV9NT0RFMywKKwkgKiBzbyB3ZSBtdXN0IGFsd2F5cyByZXdyaXRlIFBIWV9NT0RFMyBhZnRlciBQSFlfTU9ERTQuCisJICovCisJd3JpdGVsKG0zLCBwb3J0X21taW8gKyBQSFlfTU9ERTMpOwogCiAJLyogUmV2ZXJ0IHZhbHVlcyBvZiBwcmUtZW1waGFzaXMgYW5kIHNpZ25hbCBhbXBzIHRvIHRoZSBzYXZlZCBvbmVzICovCiAJbTIgPSByZWFkbChwb3J0X21taW8gKyBQSFlfTU9ERTIpOwpAQCAtMjg3Niw3ICsyODk3LDcgQEAKIAl2b2lkIF9faW9tZW0gKm1taW8gPSBocHJpdi0+YmFzZTsKIAl1MzIgcmVnOwogCi0JaWYgKCFIQVNfUENJKGhvc3QpIHx8ICFJU19QQ0lFKGhwcml2KSkKKwlpZiAoSVNfU09DKGhwcml2KSB8fCAhSVNfUENJRShocHJpdikpCiAJCXJldHVybiAwOwkvKiBub3QgUENJLVggY2FwYWJsZSAqLwogCXJlZyA9IHJlYWRsKG1taW8gKyBNVl9QQ0lfTU9ERV9PRlMpOwogCWlmICgocmVnICYgTVZfUENJX01PREVfTUFTSykgPT0gMCkKQEAgLTMwMDMsMTAgKzMwMjQsNyBAQAogCQkJaHBfZmxhZ3MgfD0gTVZfSFBfQ1VUX1RIUk9VR0g7CiAKIAkJc3dpdGNoIChwZGV2LT5yZXZpc2lvbikgewotCQljYXNlIDB4MDoKLQkJCWhwX2ZsYWdzIHw9IE1WX0hQX0VSUkFUQV9YWDQyQTA7Ci0JCQlicmVhazsKLQkJY2FzZSAweDE6CisJCWNhc2UgMHgyOiAvKiBSZXYuQjA6IHRoZSBmaXJzdC9vbmx5IHB1YmxpYyByZWxlYXNlICovCiAJCQlocF9mbGFncyB8PSBNVl9IUF9FUlJBVEFfNjBYMUMwOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CkBAIC0zMDE4LDcgKzMwMzYsNyBAQAogCQlicmVhazsKIAljYXNlIGNoaXBfc29jOgogCQlocHJpdi0+b3BzID0gJm12X3NvY19vcHM7Ci0JCWhwX2ZsYWdzIHw9IE1WX0hQX0VSUkFUQV82MFgxQzA7CisJCWhwX2ZsYWdzIHw9IE1WX0hQX0ZMQUdfU09DIHwgTVZfSFBfRVJSQVRBXzYwWDFDMDsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgpAQCAtMzA2MiwxMiArMzA4MCwxMiBAQAogCWlmIChyYykKIAkJZ290byBkb25lOwogCi0JaWYgKEhBU19QQ0koaG9zdCkpIHsKLQkJaHByaXYtPm1haW5faXJxX2NhdXNlX2FkZHIgPSBtbWlvICsgUENJX0hDX01BSU5fSVJRX0NBVVNFX09GUzsKLQkJaHByaXYtPm1haW5faXJxX21hc2tfYWRkciAgPSBtbWlvICsgUENJX0hDX01BSU5fSVJRX01BU0tfT0ZTOwotCX0gZWxzZSB7CisJaWYgKElTX1NPQyhocHJpdikpIHsKIAkJaHByaXYtPm1haW5faXJxX2NhdXNlX2FkZHIgPSBtbWlvICsgU09DX0hDX01BSU5fSVJRX0NBVVNFX09GUzsKIAkJaHByaXYtPm1haW5faXJxX21hc2tfYWRkciAgPSBtbWlvICsgU09DX0hDX01BSU5fSVJRX01BU0tfT0ZTOworCX0gZWxzZSB7CisJCWhwcml2LT5tYWluX2lycV9jYXVzZV9hZGRyID0gbW1pbyArIFBDSV9IQ19NQUlOX0lSUV9DQVVTRV9PRlM7CisJCWhwcml2LT5tYWluX2lycV9tYXNrX2FkZHIgID0gbW1pbyArIFBDSV9IQ19NQUlOX0lSUV9NQVNLX09GUzsKIAl9CiAKIAkvKiBnbG9iYWwgaW50ZXJydXB0IG1hc2s6IDAgPT0gbWFzayBldmVyeXRoaW5nICovCkBAIC0zMDkzLDcgKzMxMTEsNyBAQAogCQltdl9wb3J0X2luaXQoJmFwLT5pb2FkZHIsIHBvcnRfbW1pbyk7CiAKICNpZmRlZiBDT05GSUdfUENJCi0JCWlmIChIQVNfUENJKGhvc3QpKSB7CisJCWlmICghSVNfU09DKGhwcml2KSkgewogCQkJdW5zaWduZWQgaW50IG9mZnNldCA9IHBvcnRfbW1pbyAtIG1taW87CiAJCQlhdGFfcG9ydF9wYmFyX2Rlc2MoYXAsIE1WX1BSSU1BUllfQkFSLCAtMSwgIm1taW8iKTsKIAkJCWF0YV9wb3J0X3BiYXJfZGVzYyhhcCwgTVZfUFJJTUFSWV9CQVIsIG9mZnNldCwgInBvcnQiKTsKQEAgLTMxMTMsNyArMzEzMSw3IEBACiAJCXdyaXRlbGZsKDAsIGhjX21taW8gKyBIQ19JUlFfQ0FVU0VfT0ZTKTsKIAl9CiAKLQlpZiAoSEFTX1BDSShob3N0KSkgeworCWlmICghSVNfU09DKGhwcml2KSkgewogCQkvKiBDbGVhciBhbnkgY3VycmVudGx5IG91dHN0YW5kaW5nIGhvc3QgaW50ZXJydXB0IGNvbmRpdGlvbnMgKi8KIAkJd3JpdGVsZmwoMCwgbW1pbyArIGhwcml2LT5pcnFfY2F1c2Vfb2ZzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvc2F0YV9zaWwyNC5jIGIvZHJpdmVycy9hdGEvc2F0YV9zaWwyNC5jCmluZGV4IDhlZTZiNWIuLjg0ZmZjYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYworKysgYi9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMKQEAgLTM3MCw2ICszNzAsNyBAQAogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MzEyNCksIEJJRF9TSUwzMTI0IH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzEzMiksIEJJRF9TSUwzMTMyIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MDI0MiksIEJJRF9TSUwzMTMyIH0sCisJeyBQQ0lfVkRFVklDRShDTUQsIDB4MDI0NCksIEJJRF9TSUwzMTMyIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzEzMSksIEJJRF9TSUwzMTMxIH0sCiAJeyBQQ0lfVkRFVklDRShDTUQsIDB4MzUzMSksIEJJRF9TSUwzMTMxIH0sCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfdWxpLmMgYi9kcml2ZXJzL2F0YS9zYXRhX3VsaS5jCmluZGV4IGYyNzdjZWEuLmRiNTI5YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRhL3NhdGFfdWxpLmMKKysrIGIvZHJpdmVycy9hdGEvc2F0YV91bGkuYwpAQCAtODMsNiArODMsNyBAQAogCS5pbmhlcml0cwkJPSAmYXRhX2JtZG1hX3BvcnRfb3BzLAogCS5zY3JfcmVhZAkJPSB1bGlfc2NyX3JlYWQsCiAJLnNjcl93cml0ZQkJPSB1bGlfc2NyX3dyaXRlLAorCS5oYXJkcmVzZXQJCT0gQVRBX09QX05VTEwsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGF0YV9wb3J0X2luZm8gdWxpX3BvcnRfaW5mbyA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL01ha2VmaWxlIGIvZHJpdmVycy9hdG0vTWFrZWZpbGUKaW5kZXggZTRmYTk5Ni4uNzQ5MjY2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9hdG0vTWFrZWZpbGUKQEAgLTYsOSArNiw5IEBACiBob3N0cHJvZ3MteQk6PSBmb3JlMjAwZV9ta2Zpcm0KIAogIyBGaWxlcyBnZW5lcmF0ZWQgdGhhdCBzaGFsbCBiZSByZW1vdmVkIHVwb24gbWFrZSBjbGVhbgotY2xlYW4tZmlsZXMgOj0gYXRtc2FyMTEuYmluIGF0bXNhcjExLmJpbjEgYXRtc2FyMTEuYmluMiBwY2EyMDBlLmJpbiBcCi0JcGNhMjAwZS5iaW4xIHBjYTIwMGUuYmluMiBwY2EyMDBlX2VjZC5iaW4gcGNhMjAwZV9lY2QuYmluMSBcCi0JcGNhMjAwZV9lY2QuYmluMiBzYmEyMDBlX2VjZC5iaW4gc2JhMjAwZV9lY2QuYmluMSBzYmEyMDBlX2VjZC5iaW4yCitjbGVhbi1maWxlcyA6PSBwY2EyMDBlLmJpbiBwY2EyMDBlLmJpbjEgcGNhMjAwZS5iaW4yIHBjYTIwMGVfZWNkLmJpbiBcCisJcGNhMjAwZV9lY2QuYmluMSBwY2EyMDBlX2VjZC5iaW4yIHNiYTIwMGVfZWNkLmJpbiBzYmEyMDBlX2VjZC5iaW4xIFwKKwlzYmEyMDBlX2VjZC5iaW4yCiAjIEZpcm13YXJlIGdlbmVyYXRlZCB0aGF0IHNoYWxsIGJlIHJlbW92ZWQgdXBvbiBtYWtlIGNsZWFuCiBjbGVhbi1maWxlcyArPSBmb3JlMjAwZV9wY2FfZncuYyBmb3JlMjAwZV9zYmFfZncuYwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmMgYi9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmMKaW5kZXggNmFkYjcyYS4uNzAzMzY0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5jCisrKyBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuYwpAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3BvaXNvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdHJldi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAKICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC0yOTAsMjkgKzI5Miw2IEBACiAgIAogKi8KIAotLyoqKioqKioqKiogbWljcm9jb2RlICoqKioqKioqKiovCi0KLSNpZmRlZiBBTUJfTkVXX01JQ1JPQ09ERQotI2RlZmluZSBVQ09ERSh4KSBVQ09ERTIoYXRtc2FyMTIueCkKLSNlbHNlCi0jZGVmaW5lIFVDT0RFKHgpIFVDT0RFMihhdG1zYXIxMS54KQotI2VuZGlmCi0jZGVmaW5lIFVDT0RFMih4KSAjeAotCi1zdGF0aWMgdTMyIF9fZGV2aW5pdGRhdGEgdWNvZGVfc3RhcnQgPQotI2luY2x1ZGUgVUNPREUoc3RhcnQpCi07Ci0KLXN0YXRpYyByZWdpb24gX19kZXZpbml0ZGF0YSB1Y29kZV9yZWdpb25zW10gPSB7Ci0jaW5jbHVkZSBVQ09ERShyZWdpb25zKQotICB7IDAsIDAgfQotfTsKLQotc3RhdGljIHUzMiBfX2RldmluaXRkYXRhIHVjb2RlX2RhdGFbXSA9IHsKLSNpbmNsdWRlIFVDT0RFKGRhdGEpCi0gIDB4ZGVhZGJlZWYKLX07Ci0KIHN0YXRpYyB2b2lkIGRvX2hvdXNla2VlcGluZyAodW5zaWduZWQgbG9uZyBhcmcpOwogLyoqKioqKioqKiogZ2xvYmFscyAqKioqKioqKioqLwogCkBAIC0xODQxLDQ1ICsxODIwLDM0IEBACiAKIC8qIGxvYWRlcjogd3JpdGUgbWVtb3J5IGRhdGEgYmxvY2tzICovCiAKLXN0YXRpYyBpbnQgX19kZXZpbml0IGxvYWRlcl93cml0ZSAobG9hZGVyX2Jsb2NrICogbGIsCi0JCQkJY29uc3QgYW1iX2RldiAqIGRldiwgY29uc3QgdTMyICogZGF0YSwKLQkJCQl1MzIgYWRkcmVzcywgdW5zaWduZWQgaW50IGNvdW50KSB7Ci0gIHVuc2lnbmVkIGludCBpOworc3RhdGljIGludCBfX2RldmluaXQgbG9hZGVyX3dyaXRlIChsb2FkZXJfYmxvY2sqIGxiLAorCQkJCSAgIGNvbnN0IGFtYl9kZXYgKmRldiwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYykgewogICB0cmFuc2Zlcl9ibG9jayAqIHRiID0gJmxiLT5wYXlsb2FkLnRyYW5zZmVyOwogICAKICAgUFJJTlREIChEQkdfRkxPV3xEQkdfTE9BRCwgImxvYWRlcl93cml0ZSIpOwotICAKLSAgaWYgKGNvdW50ID4gTUFYX1RSQU5TRkVSX0RBVEEpCi0gICAgcmV0dXJuIC1FSU5WQUw7Ci0gIHRiLT5hZGRyZXNzID0gY3B1X3RvX2JlMzIgKGFkZHJlc3MpOwotICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMiAoY291bnQpOwotICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKLSAgICB0Yi0+ZGF0YVtpXSA9IGNwdV90b19iZTMyIChkYXRhW2ldKTsKKworICB0Yi0+YWRkcmVzcyA9IHJlYy0+YWRkcjsKKyAgdGItPmNvdW50ID0gY3B1X3RvX2JlMzIoYmUxNl90b19jcHUocmVjLT5sZW4pIC8gNCk7CisgIG1lbWNweSh0Yi0+ZGF0YSwgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogICByZXR1cm4gZG9fbG9hZGVyX2NvbW1hbmQgKGxiLCBkZXYsIHdyaXRlX2FkYXB0ZXJfbWVtb3J5KTsKIH0KIAogLyogbG9hZGVyOiB2ZXJpZnkgbWVtb3J5IGRhdGEgYmxvY2tzICovCiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IGxvYWRlcl92ZXJpZnkgKGxvYWRlcl9ibG9jayAqIGxiLAotCQkJCSBjb25zdCBhbWJfZGV2ICogZGV2LCBjb25zdCB1MzIgKiBkYXRhLAotCQkJCSB1MzIgYWRkcmVzcywgdW5zaWduZWQgaW50IGNvdW50KSB7Ci0gIHVuc2lnbmVkIGludCBpOworCQkJCSAgICBjb25zdCBhbWJfZGV2ICpkZXYsCisJCQkJICAgIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjKSB7CiAgIHRyYW5zZmVyX2Jsb2NrICogdGIgPSAmbGItPnBheWxvYWQudHJhbnNmZXI7CiAgIGludCByZXM7CiAgIAogICBQUklOVEQgKERCR19GTE9XfERCR19MT0FELCAibG9hZGVyX3ZlcmlmeSIpOwogICAKLSAgaWYgKGNvdW50ID4gTUFYX1RSQU5TRkVSX0RBVEEpCi0gICAgcmV0dXJuIC1FSU5WQUw7Ci0gIHRiLT5hZGRyZXNzID0gY3B1X3RvX2JlMzIgKGFkZHJlc3MpOwotICB0Yi0+Y291bnQgPSBjcHVfdG9fYmUzMiAoY291bnQpOworICB0Yi0+YWRkcmVzcyA9IHJlYy0+YWRkcjsKKyAgdGItPmNvdW50ID0gY3B1X3RvX2JlMzIoYmUxNl90b19jcHUocmVjLT5sZW4pIC8gNCk7CiAgIHJlcyA9IGRvX2xvYWRlcl9jb21tYW5kIChsYiwgZGV2LCByZWFkX2FkYXB0ZXJfbWVtb3J5KTsKLSAgaWYgKCFyZXMpCi0gICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCi0gICAgICBpZiAodGItPmRhdGFbaV0gIT0gY3B1X3RvX2JlMzIgKGRhdGFbaV0pKSB7Ci0JcmVzID0gLUVJTlZBTDsKLQlicmVhazsKLSAgICAgIH0KKyAgaWYgKCFyZXMgJiYgbWVtY21wKHRiLT5kYXRhLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSkpCisgICAgcmVzID0gLUVJTlZBTDsKICAgcmV0dXJuIHJlczsKIH0KIApAQCAtMTk2Miw0NyArMTkzMCw1MyBAQAogLyoqKioqKioqKiogdHJhbnNmZXIgYW5kIHN0YXJ0IHRoZSBtaWNyb2NvZGUgKioqKioqKioqKi8KIAogc3RhdGljIGludCBfX2RldmluaXQgdWNvZGVfaW5pdCAobG9hZGVyX2Jsb2NrICogbGIsIGFtYl9kZXYgKiBkZXYpIHsKLSAgdW5zaWduZWQgaW50IGkgPSAwOwotICB1bnNpZ25lZCBpbnQgdG90YWwgPSAwOwotICBjb25zdCB1MzIgKiBwb2ludGVyID0gdWNvZGVfZGF0YTsKLSAgdTMyIGFkZHJlc3M7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKKyAgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKyAgdW5zaWduZWQgbG9uZyBzdGFydF9hZGRyZXNzOworICBjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKICAgaW50IHJlczsKICAgCisgIHJlcyA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsICJhdG1zYXIxMS5mdyIsICZkZXYtPnBjaV9kZXYtPmRldik7CisgIGlmIChyZXMpIHsKKyAgICBQUklOVEsgKEtFUk5fRVJSLCAiQ2Fubm90IGxvYWQgbWljcm9jb2RlIGRhdGEiKTsKKyAgICByZXR1cm4gcmVzOworICB9CisKKyAgLyogRmlyc3QgcmVjb3JkIGNvbnRhaW5zIGp1c3QgdGhlIHN0YXJ0IGFkZHJlc3MgKi8KKyAgcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZ3LT5kYXRhOworICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pICE9IHNpemVvZihfX2JlMzIpIHx8IGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpIHsKKyAgICBQUklOVEsgKEtFUk5fRVJSLCAiQmFkIG1pY3JvY29kZSBkYXRhIChubyBzdGFydCByZWNvcmQpIik7CisgICAgcmV0dXJuIC1FSU5WQUw7CisgIH0KKyAgc3RhcnRfYWRkcmVzcyA9IGJlMzJfdG9fY3B1cCgoX19iZTMyICopcmVjLT5kYXRhKTsKKworICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CisKICAgUFJJTlREIChEQkdfRkxPV3xEQkdfTE9BRCwgInVjb2RlX2luaXQiKTsKLSAgCi0gIHdoaWxlIChhZGRyZXNzID0gdWNvZGVfcmVnaW9uc1tpXS5zdGFydCwKLQkgY291bnQgPSB1Y29kZV9yZWdpb25zW2ldLmNvdW50KSB7Ci0gICAgUFJJTlREIChEQkdfTE9BRCwgInN0YXJ0aW5nIHJlZ2lvbiAoJXgsICV1KSIsIGFkZHJlc3MsIGNvdW50KTsKLSAgICB3aGlsZSAoY291bnQpIHsKLSAgICAgIHVuc2lnbmVkIGludCB3b3JkczsKLSAgICAgIGlmIChjb3VudCA8PSBNQVhfVFJBTlNGRVJfREFUQSkKLQl3b3JkcyA9IGNvdW50OwotICAgICAgZWxzZQotCXdvcmRzID0gTUFYX1RSQU5TRkVSX0RBVEE7Ci0gICAgICB0b3RhbCArPSB3b3JkczsKLSAgICAgIHJlcyA9IGxvYWRlcl93cml0ZSAobGIsIGRldiwgcG9pbnRlciwgYWRkcmVzcywgd29yZHMpOwotICAgICAgaWYgKHJlcykKLQlyZXR1cm4gcmVzOwotICAgICAgcmVzID0gbG9hZGVyX3ZlcmlmeSAobGIsIGRldiwgcG9pbnRlciwgYWRkcmVzcywgd29yZHMpOwotICAgICAgaWYgKHJlcykKLQlyZXR1cm4gcmVzOwotICAgICAgY291bnQgLT0gd29yZHM7Ci0gICAgICBhZGRyZXNzICs9IHNpemVvZih1MzIpICogd29yZHM7Ci0gICAgICBwb2ludGVyICs9IHdvcmRzOworCisgIHdoaWxlIChyZWMpIHsKKyAgICBQUklOVEQgKERCR19MT0FELCAic3RhcnRpbmcgcmVnaW9uICgleCwgJXUpIiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkgICAgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKKyAgICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pID4gNCAqIE1BWF9UUkFOU0ZFUl9EQVRBKSB7CisJICAgIFBSSU5USyAoS0VSTl9FUlIsICJCYWQgbWljcm9jb2RlIGRhdGEgKHJlY29yZCB0b28gbG9uZykiKTsKKwkgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQotICAgIGkgKz0gMTsKKyAgICBpZiAoYmUxNl90b19jcHUocmVjLT5sZW4pICYgMykgeworCSAgICBQUklOVEsgKEtFUk5fRVJSLCAiQmFkIG1pY3JvY29kZSBkYXRhIChvZGQgbnVtYmVyIG9mIGJ5dGVzKSIpOworCSAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisgICAgcmVzID0gbG9hZGVyX3dyaXRlKGxiLCBkZXYsIHJlYyk7CisgICAgaWYgKHJlcykKKyAgICAgIGJyZWFrOworCisgICAgcmVzID0gbG9hZGVyX3ZlcmlmeShsYiwgZGV2LCByZWMpOworICAgIGlmIChyZXMpCisgICAgICBicmVhazsKICAgfQotICBpZiAoKnBvaW50ZXIgPT0gQVRNX1BPSVNPTikgewotICAgIHJldHVybiBsb2FkZXJfc3RhcnQgKGxiLCBkZXYsIHVjb2RlX3N0YXJ0KTsKLSAgfSBlbHNlIHsKLSAgICAvLyBjYXN0IG5lZWRlZCBhcyB0aGVyZSBpcyBubyAlPyBmb3IgcG9pbnRlciBkaWZmZXJuY2VzCi0gICAgUFJJTlREIChEQkdfTE9BRHxEQkdfRVJSLAotCSAgICAib2Zmc2V0PSVsaSwgKnBvaW50ZXI9JXgsIGFkZHJlc3M9JXgsIHRvdGFsPSV1IiwKLQkgICAgKGxvbmcpIChwb2ludGVyIC0gdWNvZGVfZGF0YSksICpwb2ludGVyLCBhZGRyZXNzLCB0b3RhbCk7Ci0gICAgUFJJTlRLIChLRVJOX0VSUiwgImluY29ycmVjdCBtaWNyb2NvZGUgZGF0YSIpOwotICAgIHJldHVybiAtRU5PTUVNOwotICB9CisgIHJlbGVhc2VfZmlybXdhcmUoZncpOworICBpZiAoIXJlcykKKyAgICByZXMgPSBsb2FkZXJfc3RhcnQobGIsIGRldiwgc3RhcnRfYWRkcmVzcyk7CisKKyAgcmV0dXJuIHJlczsKIH0KIAogLyoqKioqKioqKiogZ2l2ZSBhZGFwdGVyIHBhcmFtZXRlcnMgKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuaCBiL2RyaXZlcnMvYXRtL2FtYmFzc2Fkb3IuaAppbmRleCBkZjU1ZmE4Li5iZDFjNDZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9hbWJhc3NhZG9yLmgKKysrIGIvZHJpdmVycy9hdG0vYW1iYXNzYWRvci5oCkBAIC02NTYsMTcgKzY1Niw2IEBACiAjZGVmaW5lIEFNQl9ERVYoYXRtX2RldikgKChhbWJfZGV2ICopIChhdG1fZGV2KS0+ZGV2X2RhdGEpCiAjZGVmaW5lIEFNQl9WQ0MoYXRtX3ZjYykgKChhbWJfdmNjICopIChhdG1fdmNjKS0+ZGV2X2RhdGEpCiAKLS8qIHRoZSBtaWNyb2NvZGUgKi8KLQotdHlwZWRlZiBzdHJ1Y3QgewotICB1MzIgc3RhcnQ7Ci0gIHVuc2lnbmVkIGludCBjb3VudDsKLX0gcmVnaW9uOwotCi1zdGF0aWMgcmVnaW9uIHVjb2RlX3JlZ2lvbnNbXTsKLXN0YXRpYyB1MzIgdWNvZGVfZGF0YVtdOwotc3RhdGljIHUzMiB1Y29kZV9zdGFydDsKLQogLyogcmF0ZSByb3VuZGluZyAqLwogCiB0eXBlZGVmIGVudW0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuZGF0YSBiL2RyaXZlcnMvYXRtL2F0bXNhcjExLmRhdGEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkYzhhNzYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuZGF0YQorKysgL2Rldi9udWxsCkBAIC0xLDIwNjMgKzAsMCBAQAotLyoKLSAgTWFkZ2UgQW1iYXNzYWRvciBBVE0gQWRhcHRlciBtaWNyb2NvZGUuCi0gIENvcHlyaWdodCAoQykgMTk5NS0xOTk5ICBNYWRnZSBOZXR3b3JrcyBMdGQuCi0gIAotICBUaGlzIG1pY3JvY29kZSBkYXRhIGlzIHBsYWNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsCi0gIFB1YmxpYyBMaWNlbnNlLiBUaGUgR1BMIGlzIGNvbnRhaW5lZCBpbiAvdXNyL2RvYy9jb3B5cmlnaHQvR1BMIG9uIGEKLSAgRGViaWFuIHN5c3RlbSBhbmQgaW4gdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgTGludXgga2VybmVsIHNvdXJjZS4KLSAgCi0gIFdlIHdvdWxkIHByZWZlciB5b3Ugbm90IHRvIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgd2l0aG91dAotICBjb25zdWx0YXRpb24gYW5kIG5vdCB0byBhc2sgZm9yIGFzc2VtYmx5L290aGVyIG1pY3JvY29kZSBzb3VyY2UuCi0qLwotCi0gIDB4NDAxYTY4MDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzM1YjAwN2MsCi0gIDB4MTM2MDAwMDUsCi0gIDB4MzM1YjEwMDAsCi0gIDB4M2MxYWEwYzAsCi0gIDB4Mzc1YTAxODAsCi0gIDB4MDM0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTc2MGZmZmIsCi0gIDB4MzM1YjQwMDAsCi0gIDB4NDAxYTcwMDAsCi0gIDB4MTM2MDAwMDMsCi0gIDB4MjQxYjBmYzAsCi0gIDB4YWY5YjQ1MDAsCi0gIDB4MjUwODAwMDgsCi0gIDB4MDM0MDAwMDgsCi0gIDB4NDIwMDAwMTAsCi0gIDB4OGY4MTBjOTAsCi0gIDB4MzIyMjAwMDIsCi0gIDB4MTA0MDAwMDMsCi0gIDB4M2MwM2EwZDEsCi0gIDB4MjQ2M2Y4MTAsCi0gIDB4MDA2MGY4MDksCi0gIDB4MjQyMTAwMDEsCi0gIDB4MTAwMDAwMWEsCi0gIDB4YWY4MTBjOTAsCi0gIDB4ODIwMjAwMTEsCi0gIDB4YWY5MDBjNDgsCi0gIDB4MDQ0MTAwMGEsCi0gIDB4MzQ0MjAwODAsCi0gIDB4OTY3ZDAwMDIsCi0gIDB4OTYwMjAwMTIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA1ZDAwMTEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDQxMTAxNjEsCi0gIDB4YTY2MjAwMDIsCi0gIDB4MTAwMDAwMGQsCi0gIDB4YWU2MjAwMGMsCi0gIDB4MzQ4NDgwMDAsCi0gIDB4YTIwMjAwMTEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MzBmZWMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MDAwNDE0MDAsCi0gIDB4MDQ0MGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGUxMDAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4NDkwMDAwMWQsCi0gIDB4YWY4MzBmZWMsCi0gIDB4OGY4MjBjYmMsCi0gIDB4OGY5ZDBjNGMsCi0gIDB4MjQ0MjAwMDEsCi0gIDB4OTdiZTAwMDAsCi0gIDB4YWY4MjBjYmMsCi0gIDB4MTNjMDAwMDksCi0gIDB4YWNhMjAwZDgsCi0gIDB4YTdhMDAwMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAzZTA4MjUsCi0gIDB4OTQyMjAwMmMsCi0gIDB4MDQxMTAxM2YsCi0gIDB4YTQyMjAwMDIsCi0gIDB4YWMyMjAwMGMsCi0gIDB4YWMyMDAwMTAsCi0gIDB4OGY5ZTBjNTQsCi0gIDB4MjdiZDAwMDIsCi0gIDB4MTdiZTAwMDIsCi0gIDB4OGNhMjAwYzAsCi0gIDB4OGY5ZDBjNTAsCi0gIDB4OGY5NzBmYzgsCi0gIDB4YWY5ZDBjNGMsCi0gIDB4MTJlMjAwMDUsCi0gIDB4ODc4MDQwMDIsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmY5NGMsCi0gIDB4MDA0MGY4MDksCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NDUwMGZmZGMsCi0gIDB4OGUxMTAwMGMsCi0gIDB4M2MxMzAwZDEsCi0gIDB4MDAxMTExMDIsCi0gIDB4MmM0MzA0MDAsCi0gIDB4MTA2MGZmYjksCi0gIDB4MDAwMjExODAsCi0gIDB4MDI2Mjk4MjEsCi0gIDB4OGU3NjAwM2MsCi0gIDB4MzIyMjAwMDgsCi0gIDB4MTQ0MGZmYjcsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwYmUsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MGZmYTYsCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MDI2MDkwMjEsCi0gIDB4MzIyMjAwMDIsCi0gIDB4MTA0MDAwMDcsCi0gIDB4OGY5NDRhMDAsCi0gIDB4OTYwMjAwM2EsCi0gIDB4MzQ4NDAwMDQsCi0gIDB4MTQ0MDAwMDMsCi0gIDB4YWY4MjBmYmMsCi0gIDB4M2MwMjkwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGUxMDAwMDgsCi0gIDB4MzI5NDNmMDAsCi0gIDB4OGUxMTAwMGMsCi0gIDB4MjY5NGZmMDAsCi0gIDB4MTI4MDAwNzMsCi0gIDB4M2MxMzAwZDEsCi0gIDB4NDkwMTAwNzEsCi0gIDB4MzIzNzAwMDgsCi0gIDB4MTZlMDAwNmYsCi0gIDB4MDAxMTExMDIsCi0gIDB4MmM0MzA0MDAsCi0gIDB4MTA2MDAwNmMsCi0gIDB4MDAwMmI5ODAsCi0gIDB4MDAwNDE3NDAsCi0gIDB4MDQ0MDAwM2EsCi0gIDB4MDI3Nzk4MjEsCi0gIDB4MTI3MjAwMjMsCi0gIDB4MjZkNjAwMzAsCi0gIDB4YWU1NjAwM2MsCi0gIDB4OGU3NjAwM2MsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwOTEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwNjAsCi0gIDB4MmU4MjEwMDAsCi0gIDB4MTQ0MDAwMDksCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWM3NjAwMTAsCi0gIDB4YWU0MjAwMzQsCi0gIDB4MTAwMGZmZDAsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MDA3MDE4MjYsCi0gIDB4YWU0NjAwMzQsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY5NzRjMDAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MTAwMGZmYzMsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MTA0MDAwNDIsCi0gIDB4M2MxN2NmYjAsCi0gIDB4MmU4MjEwMDAsCi0gIDB4MTQ0MDAwMDYsCi0gIDB4MDJmMGI4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVmNjAwMTAsCi0gIDB4MTAwMGZmYjgsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjMDAsCi0gIDB4YWY4NjRjMDAsCi0gIDB4YWVmNjAwMTAsCi0gIDB4YWY4MjBmZWMsCi0gIDB4MTAwMGZmYWUsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MzA4NGZmZmIsCi0gIDB4OGU1NzAwMzgsCi0gIDB4MzI0MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4YTc4MjBmYjgsCi0gIDB4YWY5NzBmYjQsCi0gIDB4ODY1ZDAwMmEsCi0gIDB4ODY1ZTAwMDgsCi0gIDB4YTc5ZDBmYmEsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGY5NzBjNTgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MzRjMDAsCi0gIDB4OGZhMjAwMWMsCi0gIDB4MTJlMzAwMDMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4M2MxZWMwMDAsCi0gIDB4YWY5ZTBmYmMsCi0gIDB4YWM2MjBmYjQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDIsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4YWU0MDAwM2MsCi0gIDB4YWZhMjAwMWMsCi0gIDB4OGU3NjAwM2MsCi0gIDB4OGU3NzAwMzQsCi0gIDB4OGU3NTAwMzAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MTZjMDAwMDMsCi0gIDB4MDJkNTEwMmIsCi0gIDB4MDQxMTAwM2MsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA3MDE4MjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4MTA0MDAwMzIsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MTAwMGZmN2YsCi0gIDB4YWM3NjAwMTAsCi0gIDB4MDAwNDE3NDAsCi0gIDB4MDQ0MDAwMDcsCi0gIDB4MjZkNjAwMzAsCi0gIDB4YWU1NjAwM2MsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4MTAwMGZmMzksCi0gIDB4YWU0NjAwMzQsCi0gIDB4OGU1NzAwMzgsCi0gIDB4MzI0MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4YTc4MjBmYjgsCi0gIDB4YWY5NzBmYjQsCi0gIDB4OGY5NzBjNTgsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MTJlNjAwMDMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4M2MwMmMwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4ODY1ZDAwMmEsCi0gIDB4ODY1ZTAwMDgsCi0gIDB4YTc5ZDBmYmEsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzRjMDAsCi0gIDB4YWM2MjBmYjQsCi0gIDB4MzA4NGZmZmIsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDIsCi0gIDB4YWY4MDQ2MGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4YWU0MDAwM2MsCi0gIDB4YWZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4MTAwMGZmMTMsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4MTAwMGZmMGYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwNWIsCi0gIDB4ODY3ZTAwMDgsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZTEwYzIsCi0gIDB4MDNhMmU4MjEsCi0gIDB4OGZiNzAwMDgsCi0gIDB4OGZhMjAwMGMsCi0gIDB4OGVmNjAwMDQsCi0gIDB4MTJlMjAwMjgsCi0gIDB4ODY2MjAwMDgsCi0gIDB4ODIwMzAwMTAsCi0gIDB4MDAwMjE3NDAsCi0gIDB4MDQ0MTAwMTksCi0gIDB4MjQ2MzAwMDEsCi0gIDB4MTA2MDAwMTcsCi0gIDB4M2MwMmQxYjAsCi0gIDB4MDA1MDEwMjYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5ZTRjMDAsCi0gIDB4YWM1NjAwMTAsCi0gIDB4MjZkNmZmZmUsCi0gIDB4ODYwMjAwMTAsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MzQ2MzIwMDAsCi0gIDB4YTY2MjAwMmEsCi0gIDB4OGVlMjAwMDAsCi0gIDB4MjZmNzAwMDgsCi0gIDB4YWU2MjAwMzgsCi0gIDB4OGZhMjAwMjAsCi0gIDB4YWZiNzAwMDgsCi0gIDB4MjQxN2ZmZmYsCi0gIDB4MDJjMmE4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY5ZTRjMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4OGVlMjAwMDAsCi0gIDB4MjZmNzAwMDgsCi0gIDB4YWU2MjAwMzgsCi0gIDB4OGZhMjAwMjAsCi0gIDB4YWZiNzAwMDgsCi0gIDB4MjQxN2ZmZmYsCi0gIDB4YTY3NzAwMmEsCi0gIDB4MDJjMmE4MjEsCi0gIDB4M2MwM2NmYjAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4MDAxZTE4YzIsCi0gIDB4MDA2NTE4MjEsCi0gIDB4OGM2MzAwYzgsCi0gIDB4OGZhMjAwMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MmIwMjMsCi0gIDB4MWVjMDAwMDMsCi0gIDB4OGZhMTAwMDQsCi0gIDB4MTJjMDAwMWIsCi0gIDB4MDAyMmIwMjMsCi0gIDB4MmVjMzAwNDEsCi0gIDB4MTQ2MDAwMDIsCi0gIDB4M2MxNTAwNDAsCi0gIDB4MjQxNjAwNDAsCi0gIDB4MDAxNjFlODAsCi0gIDB4MDAwMzE4ODIsCi0gIDB4MDA3NTE4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NTRjMDAsCi0gIDB4MDAxZWI4NDAsCi0gIDB4MDA3NzE4MjEsCi0gIDB4YWM2MjRkMDAsCi0gIDB4MDA1NjEwMjEsCi0gIDB4MTQ0MTAwMDIsCi0gIDB4Mjc4MzBkMDAsCi0gIDB4OGZhMjAwMDAsCi0gIDB4MDJlM2I4MjEsCi0gIDB4YWZhMjAwMTAsCi0gIDB4MDJkNzE4MjEsCi0gIDB4YWZhMzAwMGMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGVmNjAwMDQsCi0gIDB4MTAwMGZmYjUsCi0gIDB4YWY5NTRjMDAsCi0gIDB4M2MxNmRlYWQsCi0gIDB4YWU3NjAwM2MsCi0gIDB4YWU2MDAwMzgsCi0gIDB4MjZkNWZmZmYsCi0gIDB4MDAwMDEwMjEsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU3NTAwMzAsCi0gIDB4MmM0MzBhYjIsCi0gIDB4MTA2MDAwMDUsCi0gIDB4MmM0MzI0YjIsCi0gIDB4MTAwMDAwMDQsCi0gIDB4MjQwMjBhYjIsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MjQwMjI0YjEsCi0gIDB4MTA2MGZmZmQsCi0gIDB4MzA0MzAxZmYsCi0gIDB4MDAwMzE4NDAsCi0gIDB4M2MxZGEwZDEsCi0gIDB4MjdiZGQ2Y2MsCi0gIDB4MDA3ZDE4MjEsCi0gIDB4OTQ2MzAwMDAsCi0gIDB4MDAwMmVhNDIsCi0gIDB4MDAwMzFjMDAsCi0gIDB4MjdiZGZmZmIsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDNhMzEwMDYsCi0gIDB4MjQwMzBmYzAsCi0gIDB4YWY4MzQ1MDAsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MDEyMDYwMjEsCi0gIDB4M2MwY2NmYjAsCi0gIDB4MTFlMDAwNTYsCi0gIDB4MDE4OTYwMjYsCi0gIDB4ODVmZTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTNjMDAwNDcsCi0gIDB4M2MwMmNmYjAsCi0gIDB4MDdjMDAwMmQsCi0gIDB4MDAxZTFmODAsCi0gIDB4MDQ2MTAwMzQsCi0gIDB4MDAxZTFmYzAsCi0gIDB4MDQ2MDAwMDksCi0gIDB4M2MwMmQzYjAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4OGY5OTBmZWMsCi0gIDB4MTAwMDAwMGIsCi0gIDB4YWY5OTRjMDAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWRlZjIwMTAsCi0gIDB4M2MwMmQzYjAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4OGY4MjBmYzAsCi0gIDB4OGY4MzBmYzQsCi0gIDB4YWY4MjRkMDAsCi0gIDB4OGRlMjAwMDQsCi0gIDB4YTVlMDAwMDAsCi0gIDB4YWM2MjAwMDAsCi0gIDB4OGM2MjAwMDAsCi0gIDB4MjQwMjAzODAsCi0gIDB4YWY4MjRkMDAsCi0gIDB4OGY4MjRkMDAsCi0gIDB4OGY4MjBmMTQsCi0gIDB4MjQ2MzAwMDQsCi0gIDB4MTQ2MjAwMDIsCi0gIDB4MjQxOWZmZmYsCi0gIDB4OGY4MzBmMTAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4YWY4MzBmYzQsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjRjODAsCi0gIDB4MTAwMDAwMWYsCi0gIDB4YWRlMjAwM2MsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTVlMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4MTU4MDAwMjIsCi0gIDB4YWY4ZjQ1NDAsCi0gIDB4MTAwMDAwMTcsCi0gIDB4MDFlMjc4MjYsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWRlZjIwMTAsCi0gIDB4M2MwMmNmYjAsCi0gIDB4MDFlMjc4MjYsCi0gIDB4YTVlMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMDAwMDcsCi0gIDB4OGY5OTRjMDAsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4NjRjMDAsCi0gIDB4OGY5OTBmZWMsCi0gIDB4MTU4MDAwMGEsCi0gIDB4YWY4ZjQ1MDAsCi0gIDB4MDAwMDc4MjEsCi0gIDB4MTAwMDAwMTQsCi0gIDB4YWYxOTAwMTQsCi0gIDB4MDBlMGY4MDksCi0gIDB4MDNlMDM4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTE4MGZmZjgsCi0gIDB4OGY4NjRjMDAsCi0gIDB4ODUyMjAwMDAsCi0gIDB4MDEyMDc4MjEsCi0gIDB4MDQ0MDAwMGEsCi0gIDB4OGQyOTAwMDgsCi0gIDB4MTMwYjAwMDQsCi0gIDB4MDAwYzE2MDIsCi0gIDB4YWYxOTAwMTQsCi0gIDB4OGQ3OTAwMTQsCi0gIDB4MDE2MGMwMjEsCi0gIDB4YWY5OTRjMDAsCi0gIDB4YWQ4ZTQwMTAsCi0gIDB4MzA0MjAwM2YsCi0gIDB4MDFjMjcwMjEsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MDAxOGIsCi0gIDB4OGY4MjRhMDAsCi0gIDB4MzA4MTgwMDAsCi0gIDB4MzA0MjAwMDQsCi0gIDB4MTQ0MGZmOGQsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAyMDAwMGMsCi0gIDB4MzA4NDdmZmYsCi0gIDB4OGY4MjBjNDgsCi0gIDB4MDEyMGYwMjEsCi0gIDB4MjQ0MzAwMzQsCi0gIDB4OGM1ZDAwMGMsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4YWZkZDAwMGMsCi0gIDB4MTQ2MmZmZmMsCi0gIDB4MjdkZTAwMDQsCi0gIDB4YTUyMTAwMDAsCi0gIDB4MTAwMGZmODIsCi0gIDB4MjUwODAwMDgsCi0gIDB4MTE2MDAwNTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODU3ZDAwMDgsCi0gIDB4OGQ2MzAwMGMsCi0gIDB4OTU2MjAwMGEsCi0gIDB4OGQ0MTAwMDQsCi0gIDB4MDdhMTAwMjYsCi0gIDB4MDA2MjE4MjEsCi0gIDB4YTU2MzAwMGEsCi0gIDB4MDAwMzFjMDIsCi0gIDB4MDQxMTAxYTAsCi0gIDB4MDAwMzE4YzAsCi0gIDB4MDAxZDE2YzAsCi0gIDB4MDQ0MTAwMWYsCi0gIDB4MjdhMjAwODAsCi0gIDB4MDAwMjFjYzAsCi0gIDB4MDQ2MTAwMGUsCi0gIDB4MDA0MGU4MjEsCi0gIDB4MjdiZDAwODAsCi0gIDB4OTU2MjAwMDAsCi0gIDB4OTU2MzAwMDIsCi0gIDB4MzQ0MjAwMGMsCi0gIDB4YWQyMjAwMGMsCi0gIDB4MjQwMjAxMDAsCi0gIDB4YTUyMjAwMTAsCi0gIDB4OTU2MjAwMmMsCi0gIDB4YTUyMzAwMTQsCi0gIDB4YTUyMjAwMTIsCi0gIDB4YTUyMDAwMTYsCi0gIDB4MzQwMjgwMDAsCi0gIDB4YTUyMjAwMDAsCi0gIDB4YTU3ZDAwMDgsCi0gIDB4MDdhMDAwMGMsCi0gIDB4OGY4MjBjNGMsCi0gIDB4OGY4MzBjNTAsCi0gIDB4MjQ0MWZmZTgsCi0gIDB4MDAyM2YwMmIsCi0gIDB4MTNjMDAwMDIsCi0gIDB4MDAyMDEwMjEsCi0gIDB4MjQ0MjA0MDAsCi0gIDB4OTQ1ZTAwMDAsCi0gIDB4MjQ0MWZmZmUsCi0gIDB4MTdjMGZmZjksCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTQ0YjAwMDAsCi0gIDB4MTQyYjAwMWMsCi0gIDB4YWQ0MDAwMDAsCi0gIDB4YWQ0MDAwMDQsCi0gIDB4MjU0YTAwMDgsCi0gIDB4MzE0MjAwN2YsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MTAwMDAwMDYsCi0gIDB4MzQ4NDAwMDEsCi0gIDB4MzQ4NDAwMDIsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4MzU0YTAxMDAsCi0gIDB4Mzk0YTAxMDAsCi0gIDB4Mzk0MjAwODAsCi0gIDB4YWY4MjBmZTQsCi0gIDB4MDAxZDE0YzAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4MzNhMmVmZmYsCi0gIDB4MTAwMGZmM2MsCi0gIDB4YTU2MjAwMDgsCi0gIDB4MDdhMDAwOWYsCi0gIDB4MzNhMmZmZmUsCi0gIDB4MTAwMDAwMjEsCi0gIDB4YTU2MjAwMDgsCi0gIDB4OGQ2MjAwMjQsCi0gIDB4MDAxZDFjYzAsCi0gIDB4MDQ2MTAwMDQsCi0gIDB4YWQ0MjAwMDAsCi0gIDB4MzNhM2VmZmYsCi0gIDB4MTAwMGZmMzEsCi0gIDB4YTU2MzAwMDgsCi0gIDB4MDdhMDAwMDUsCi0gIDB4MzNhM2ZmZmUsCi0gIDB4YTU2MzAwMDgsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAwMGZmYWEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMDAwOGUsCi0gIDB4MjUwODAwMDgsCi0gIDB4MjU0YTAwMDgsCi0gIDB4MzE0MjAwN2YsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDAwNDE3ODAsCi0gIDB4MDQ0MTAwMDMsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MTAwMDAwMDYsCi0gIDB4MzQ4NDAwMDEsCi0gIDB4MzQ4NDAwMDIsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4MzU0YTAxMDAsCi0gIDB4Mzk0YTAxMDAsCi0gIDB4Mzk0MjAwODAsCi0gIDB4YWY4MjBmZTQsCi0gIDB4MTEwMDAwMDMsCi0gIDB4OGQ0YjAwMDAsCi0gIDB4MTAwMGZmOTMsCi0gIDB4MjUwOGZmZjgsCi0gIDB4OGY4MjBmZDgsCi0gIDB4OGY4MzBmZGMsCi0gIDB4OGY4MTBmZDQsCi0gIDB4MTA2MjAwMWQsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4YzRjMDAsCi0gIDB4ODQ3ZjAwMDAsCi0gIDB4M2MxZTAwZDEsCi0gIDB4MzNmZDAzZmYsCi0gIDB4MDAxZDU5ODAsCi0gIDB4MDE3ZTU4MjEsCi0gIDB4ODU3ZTAwMDgsCi0gIDB4MDAxZGU5MDAsCi0gIDB4MDAxZTBmMDAsCi0gIDB4MDNlMWY4MjUsCi0gIDB4MDdlMDAwMDMsCi0gIDB4YWY4MjBmZGMsCi0gIDB4ODc5ZTBjYTAsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4MDdjMTAwNDIsCi0gIDB4M2MwMjA4NDAsCi0gIDB4M2MwMWY3YjAsCi0gIDB4OGQ2MjAwMjAsCi0gIDB4MDAyMzA4MjYsCi0gIDB4YWMyMjAwMDAsCi0gIDB4OGM2MjAwMDQsCi0gIDB4OTQ2MzAwMDIsCi0gIDB4MjQ0MmZmZjgsCi0gIDB4MDA0MzEwMjEsCi0gIDB4MTAwMDAwNGUsCi0gIDB4YWQ2MjAwMjAsCi0gIDB4OGY4MjBmZDAsCi0gIDB4ODc4MzBjYTAsCi0gIDB4MTQyMjAwMDcsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4NDEwMDAwNTEsCi0gIDB4M2MwMTgwMDAsCi0gIDB4YWNhMTAwZTAsCi0gIDB4OGNhMTAwYzQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAyMjAwNGMsCi0gIDB4MDAyMmU4MjMsCi0gIDB4OGY5ZjBmMGMsCi0gIDB4MDdhMTAwMDIsCi0gIDB4YWY4MTBmZDQsCi0gIDB4MDNlMmU4MjMsCi0gIDB4MmZhMzAwNDEsCi0gIDB4MTQ2MDAwMDIsCi0gIDB4M2MxZTAwNDAsCi0gIDB4MjQxZDAwNDAsCi0gIDB4MDAxZDFlODAsCi0gIDB4MDAwMzE4ODIsCi0gIDB4MDA3ZTE4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4YzRjMDAsCi0gIDB4YWM2MjRjYzAsCi0gIDB4MDA1ZDEwMjEsCi0gIDB4MTQ1ZjAwMDIsCi0gIDB4Mjc4MzBjYzAsCi0gIDB4OGY4MjBmMDgsCi0gIDB4MDNhM2YwMjEsCi0gIDB4YWY4MjBmZDAsCi0gIDB4YWY5ZTBmZDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmYzMsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4OGQ2MzAwMGMsCi0gIDB4OGQ3ZDAwMTAsCi0gIDB4YTU2MzAwMGEsCi0gIDB4MTNhMDAwMDIsCi0gIDB4MDAwMzFjMDIsCi0gIDB4YTdhMDAwMDAsCi0gIDB4MDAwMzE4YzAsCi0gIDB4MDQxMTAwZWYsCi0gIDB4MDA2ODE4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNDQsCi0gIDB4OGY4MzBjNDAsCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTU2MzAwMDQsCi0gIDB4YTU2MzAwMDYsCi0gIDB4MTAwMDAwMjEsCi0gIDB4YWY4YzRjMDAsCi0gIDB4YTU3ZDAwMDAsCi0gIDB4OGM3ZDAwMDQsCi0gIDB4OTQ2MzAwMDIsCi0gIDB4YWM1ZDRjNDAsCi0gIDB4MjdhMjAwMDgsCi0gIDB4YWQ2MjAwMTgsCi0gIDB4MDNhM2U4MjEsCi0gIDB4MjdiZGZmZjQsCi0gIDB4YWQ3ZDAwMWMsCi0gIDB4MjdiZDAwMDQsCi0gIDB4YWQ3ZDAwMjAsCi0gIDB4MzdjMTgwMDEsCi0gIDB4MDAxZTE3YzAsCi0gIDB4MDQ0MWZmZTAsCi0gIDB4YTU2MTAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNDQsCi0gIDB4OGY4MzBjNDAsCi0gIDB4YWQ2MjAwMTAsCi0gIDB4YTU2MzAwMDQsCi0gIDB4YTU2MzAwMDYsCi0gIDB4OGY4MjBmZDgsCi0gIDB4OGY4MzBmZGMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQ2MmZmOTUsCi0gIDB4MjQ2MjAwMDgsCi0gIDB4YWY4YzRjMDAsCi0gIDB4ODc4MzBjYTAsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4MDQ2MWZlOTcsCi0gIDB4MDAwNDE3MDAsCi0gIDB4MDQ0MDAwMDUsCi0gIDB4OTU2MjAwMDAsCi0gIDB4MTE3ODAwMDYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWYwZTAwMTAsCi0gIDB4YTcwZDAwMDQsCi0gIDB4MzA4NGZmZjcsCi0gIDB4OTU2ZDAwMDQsCi0gIDB4OGQ2ZTAwMTAsCi0gIDB4MjVhZGZmZDAsCi0gIDB4MDVhMWZlOGYsCi0gIDB4YWQyMjAwMGMsCi0gIDB4M2MwY2ZmYjAsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MDAwZDE4MjIsCi0gIDB4MjVhZDAwMzAsCi0gIDB4OGQ3ZTAwMTgsCi0gIDB4OGQ2MTAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAzZTAwMzYsCi0gIDB4OGY5ZDRjMDAsCi0gIDB4M2MwMTA4NDAsCi0gIDB4YWMzZTRjNDAsCi0gIDB4MjdkZTAwMDgsCi0gIDB4MTFhMDAwMTcsCi0gIDB4YWQ3ZTAwMTgsCi0gIDB4MDAwZGY2MDAsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWQ4ZTQwMTAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OTU3ZTAwMDYsCi0gIDB4OGY4ZTBjNDQsCi0gIDB4MDNjZGYwMjEsCi0gIDB4YTU3ZTAwMDYsCi0gIDB4MDAwY2Y3ODIsCi0gIDB4MDAwYzBlMDIsCi0gIDB4MDNjMWYwMjEsCi0gIDB4MDAxZTBmODAsCi0gIDB4MDAwYzYyMDAsCi0gIDB4MDAwYzYyMDIsCi0gIDB4MDE4MTYwMjUsCi0gIDB4MzNkZTAwM2MsCi0gIDB4MDE5ZTYwMjEsCi0gIDB4MzQwMTAwMDEsCi0gIDB4MTAwMDAwMDgsCi0gIDB4YTUyMTAwMDAsCi0gIDB4OTU3ZTAwMDYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OGY4ZTBjNDQsCi0gIDB4MDNjZGYwMjEsCi0gIDB4YTU3ZTAwMDYsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDFhM2YwMmIsCi0gIDB4MTdjMDAwMDgsCi0gIDB4MDAwM2Y2MDAsCi0gIDB4MDFhMzY4MjMsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4NGQwMWZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZlNTgsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4OGQ3ZTAwMTgsCi0gIDB4OGQ2MTAwMWMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQzZWZmY2UsCi0gIDB4MDA2ZDE4MjMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MmM2MTAwMDgsCi0gIDB4MTAyMDAwMTcsCi0gIDB4OTU2MTAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMWZmODAsCi0gIDB4MDdlMDAwMGIsCi0gIDB4MzQyMTAwMDIsCi0gIDB4MDA2ZDE4MjEsCi0gIDB4MDAwMzFlMDAsCi0gIDB4MDE4MzYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MjQwZDAwMmMsCi0gIDB4YTU2MTAwMDgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZlNDAsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4M2MxZjBjNDAsCi0gIDB4YWZmZTRmYTgsCi0gIDB4MzAyMWZmZmQsCi0gIDB4YTU2MTAwMDgsCi0gIDB4M2MwY2QzY2YsCi0gIDB4MzU4Y2UwMDAsCi0gIDB4MTAwMDAwMDgsCi0gIDB4MzQwMzAwMDIsCi0gIDB4M2MxZjBjNDAsCi0gIDB4YWZmZTRmYTgsCi0gIDB4MTFhMGZmZjksCi0gIDB4MDAwZGY2MDAsCi0gIDB4MzQwMzAwMDMsCi0gIDB4MDE5ZTYwMjUsCi0gIDB4MDE4OTYwMjYsCi0gIDB4MzQ4NDAwMDgsCi0gIDB4MzQ0MjAwMDIsCi0gIDB4YWQyMjAwMGMsCi0gIDB4OTU2MjAwMDYsCi0gIDB4YTUyMzAwMDAsCi0gIDB4YWQyMjAwMzgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODU3ZTAwMDgsCi0gIDB4OGY4MjBmYTgsCi0gIDB4OTc4MzBmYWMsCi0gIDB4YWQyMjAwMDQsCi0gIDB4MzNjMTdmZmYsCi0gIDB4YWQ2MDAwMTAsCi0gIDB4YTU2MTAwMDgsCi0gIDB4MTA2MGZlMjAsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4YTU3ZTAwMDgsCi0gIDB4MDAwMzE5MDAsCi0gIDB4MzA2MzNmZjAsCi0gIDB4YTU2MzAwMDAsCi0gIDB4OGY4MjBmYjAsCi0gIDB4M2MwMzA4NDAsCi0gIDB4YWM2MjRjNDAsCi0gIDB4MjQ0MzAwMDgsCi0gIDB4YWQ2MzAwMTgsCi0gIDB4OTc4MzBmYWUsCi0gIDB4MjQ0MmZmZjQsCi0gIDB4MDA2MjE4MjEsCi0gIDB4YWQ2MzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4ZDBjNDAsCi0gIDB4OGY4MzBjNDQsCi0gIDB4YTU2ZDAwMDQsCi0gIDB4YTU2ZDAwMDYsCi0gIDB4YWQ2MzAwMTAsCi0gIDB4MTAwMGZlMGEsCi0gIDB4YWY5ZDRjMDAsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MDAwNDBmYzAsCi0gIDB4OGM0MzAwMDAsCi0gIDB4MDQyMTAwMWIsCi0gIDB4OGY5ZjBmZTQsCi0gIDB4OGM1ZDAwMDQsCi0gIDB4YWM0MDAwMDQsCi0gIDB4MTA2MDAwMGUsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTQ2MjAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA1ZjEwMjAsCi0gIDB4OGM0MTAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAyMDAwMDMsCi0gIDB4YWM0MzAwMDQsCi0gIDB4MTAwMDAwMDIsCi0gIDB4YWMyMzAwMjQsCi0gIDB4YWM0MzAwMDAsCi0gIDB4MTdhM2ZmZjQsCi0gIDB4OGM2MzAwMjQsCi0gIDB4OGY4MjBmZTAsCi0gIDB4M2JmZjAwODAsCi0gIDB4MjQ0MjAwMDgsCi0gIDB4MzQ0MjEwMDAsCi0gIDB4Mzg0MjEwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4YWY5ZjBmZTQsCi0gIDB4MTAwMGZlNTcsCi0gIDB4MzA4NGZmZmUsCi0gIDB4MTA2MDAwMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTQ3ZDAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDNiZmU4MjAsCi0gIDB4OGZhMTAwMDQsCi0gIDB4YWZhMzAwMDQsCi0gIDB4MTAyMDAwMDMsCi0gIDB4OGM1ZTAwMDQsCi0gIDB4MTAwMDAwMDIsCi0gIDB4YWMyMzAwMjQsCi0gIDB4YWZhMzAwMDAsCi0gIDB4OGM2MTAwMjQsCi0gIDB4MTdjM2ZlNDgsCi0gIDB4YWM0MTAwMDAsCi0gIDB4YWM0MDAwMDQsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MTAwMGZlNDQsCi0gIDB4MzA4NGZmZmQsCi0gIDB4MmM2MjAxMDAsCi0gIDB4MTQ0MDAwMGUsCi0gIDB4MDA2YTEwMjEsCi0gIDB4MzE0MzAwN2YsCi0gIDB4MDE0MzE4MjMsCi0gIDB4MDA0MzE4MjMsCi0gIDB4MzA2MjAwN2YsCi0gIDB4YTU2MjAwMjgsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MDAwMzE5MDIsCi0gIDB4OGY4MjBmZTAsCi0gIDB4MjQ2M2ZmZjgsCi0gIDB4MDA2MjE4MjEsCi0gIDB4MzQ2MzEwMDAsCi0gIDB4MTAwMDAwMDMsCi0gIDB4Mzg2MzEwMDAsCi0gIDB4MzQ0MzAxMDAsCi0gIDB4Mzg2MzAxMDAsCi0gIDB4OGM2MjAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTA0MDAwMDMsCi0gIDB4YWM2YjAwMDQsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWM0YjAwMjQsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWM2YjAwMDAsCi0gIDB4MDAwMDAwMDIsCi0gIDB4YTBkMGUwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDEwMDAsCi0gIDB4MDAwMDAwMDYsCi0gIDB4MDAwMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDgsCi0gIDB4MDAwMDAwMDIsCi0gIDB4YTBkMGQ2NDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDA4ODgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MjQzMTMyMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQ0ZDQzNTIsCi0gIDB4MjQyMDQzNmYsCi0gIDB4NzA3OTcyNjksCi0gIDB4Njc2ODc0MjAsCi0gIDB4Mjg2MzI5MjAsCi0gIDB4NGQ2MTY0NjcsCi0gIDB4NjUyMDRlNjUsCi0gIDB4NzQ3NzZmNzIsCi0gIDB4NmI3MzIwNGMsCi0gIDB4NzQ2NDIwMzEsCi0gIDB4MzkzOTM1MmUsCi0gIDB4MjA0MTZjNmMsCi0gIDB4MjA3MjY5NjcsCi0gIDB4Njg3NDczMjAsCi0gIDB4NzI2NTczNjUsCi0gIDB4NzI3NjY1NjQsCi0gIDB4MmUwMDRkNjEsCi0gIDB4NjQ2NzY1MjAsCi0gIDB4NDE2ZDYyNjEsCi0gIDB4NzM3MzYxNjQsCi0gIDB4NmY3MjIwNzYsCi0gIDB4MzEyZTMwMzEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDEsCi0gIDB4MDAwMDAwMDEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ZmZmMDQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MGMzNDNlMmQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxY2EwZDEsCi0gIDB4Mjc5YzU2MzgsCi0gIDB4M2MxZGEwZDEsCi0gIDB4MjdiZGRmZDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGRmZDAsCi0gIDB4YWY4NzgwMDgsCi0gIDB4MGMzNDNjMTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwNDAwMDMsCi0gIDB4MDA5NzAwMGQsCi0gIDB4M2MwOGJmYzAsCi0gIDB4MzUwODAyMzAsCi0gIDB4OGQwODAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDEwMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjdiZGZmZDAsCi0gIDB4YWZiZjAwMWMsCi0gIDB4YWZiMTAwMTgsCi0gIDB4YWZiMDAwMTQsCi0gIDB4M2MxMWZmZjAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MxODAwNTYsCi0gIDB4MzcxODNiNzksCi0gIDB4MjYxOTAyMDAsCi0gIDB4MTcyMDAwMDIsCi0gIDB4MDMxOTAwMWEsCi0gIDB4MDAwNzAwMGQsCi0gIDB4MjQwMWZmZmYsCi0gIDB4MTcyMTAwMDUsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMTgwMDAsCi0gIDB4MTcwMTAwMDIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwNjAwMGQsCi0gIDB4MDAwMDEwMTIsCi0gIDB4MDAxMDE4NDAsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWQ2Y2MsCi0gIDB4MDBhMzIwMjEsCi0gIDB4YTQ4MjAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAyMDAsCi0gIDB4MTQyMGZmZWEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwNmEwZDEsCi0gIDB4MjRjNmY5ZTQsCi0gIDB4M2MwN2EwZDEsCi0gIDB4MjRlN2Q2NDgsCi0gIDB4YWNlNjAwMDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGZiMTQsCi0gIDB4YWNlODAwMDQsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWZjOTQsCi0gIDB4YWNlOTAwMDgsCi0gIDB4M2MwYWEwZDEsCi0gIDB4MjU0YWZjZDQsCi0gIDB4YWNlYTAwMGMsCi0gIDB4M2MwYmEwZDEsCi0gIDB4MjU2YmZiYTgsCi0gIDB4YWNlYjAwMTAsCi0gIDB4M2MwY2EwZDEsCi0gIDB4MjU4Y2ZiYzQsCi0gIDB4YWNlYzAwMTQsCi0gIDB4M2MwZGEwZDEsCi0gIDB4MjVhZGZiZTAsCi0gIDB4YWNlZDAwMTgsCi0gIDB4M2MwZWEwZDEsCi0gIDB4MjVjZWZiZmMsCi0gIDB4YWNlZTAwMWMsCi0gIDB4M2MwZmEwZDEsCi0gIDB4MjVlZmZjMTgsCi0gIDB4YWNlZjAwMjAsCi0gIDB4M2MxOGEwZDEsCi0gIDB4MjcxOGZjMzQsCi0gIDB4YWNmODAwMjQsCi0gIDB4M2MxOWEwZDEsCi0gIDB4MjczOWZjNTAsCi0gIDB4YWNmOTAwMjgsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmZjNjAsCi0gIDB4YWNlMjAwMmMsCi0gIDB4M2MwM2EwZDEsCi0gIDB4MjQ2M2ZjNzAsCi0gIDB4YWNlMzAwMzAsCi0gIDB4M2MwNGEwZDEsCi0gIDB4MjQ4NGZjODAsCi0gIDB4YWNlNDAwMzQsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWZjYjQsCi0gIDB4YWNlNTAwMzgsCi0gIDB4M2MwNmEwZDEsCi0gIDB4MjRjNmZlMDgsCi0gIDB4YWNlNjAwM2MsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGZlOTAsCi0gIDB4YWNlODAwNDAsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWZhMzgsCi0gIDB4YWNlOTAwNDQsCi0gIDB4M2MwYWEwZDEsCi0gIDB4MjU0YWZhNzQsCi0gIDB4YWNlYTAwNDgsCi0gIDB4MjQxMDAwMTMsCi0gIDB4M2MwYmEwZDEsCi0gIDB4MjU2YmY5ZDgsCi0gIDB4MDAxMDYwODAsCi0gIDB4M2MwZWEwZDEsCi0gIDB4MjVjZWQ2NDgsCi0gIDB4MDFjYzY4MjEsCi0gIDB4YWRhYjAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMjAsCi0gIDB4MTQyMGZmZjYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5ODgwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWYwMDAxMDAsCi0gIDB4OGY4MjgwMDAsCi0gIDB4MjQxOTAzZmYsCi0gIDB4YTQ1OTAyMDIsCi0gIDB4MDAwMDgwMjEsCi0gIDB4OGY4NjgwMDAsCi0gIDB4MjQwMzBmZmYsCi0gIDB4MDAxMDIwNDAsCi0gIDB4MjRjNzAzODAsCi0gIDB4MDBlNDI4MjEsCi0gIDB4YTRhMzAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDgsCi0gIDB4MTQyMGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4OTgwMDAsCi0gIDB4MzQwODljNDAsCi0gIDB4YWQyODAzYTAsCi0gIDB4OGY4YjgwMDAsCi0gIDB4M2MwYTAwZmYsCi0gIDB4MzU0YWZmZmYsCi0gIDB4YWQ2YTAzYTQsCi0gIDB4MDAwMDgwMjEsCi0gIDB4OGY4ZjgwMDAsCi0gIDB4MjQwYzBmZmYsCi0gIDB4MDAxMDY4NDAsCi0gIDB4MjVmODAzMDAsCi0gIDB4MDMwZDcwMjEsCi0gIDB4YTVjYzAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDgsCi0gIDB4MTQyMGZmZjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjgwMDAsCi0gIDB4MzQxOTljNDAsCi0gIDB4YWM1OTAzMjAsCi0gIDB4OGY4NDgwMDAsCi0gIDB4M2MwMzAwZmYsCi0gIDB4MzQ2M2ZmZmYsCi0gIDB4YWM4MzAzMjQsCi0gIDB4OGY4NjgwMDAsCi0gIDB4MjQwNTAyZmYsCi0gIDB4YTRjNTAyMDIsCi0gIDB4M2MwOGEwYzAsCi0gIDB4MzUwODAxODAsCi0gIDB4M2MwOWEwZDEsCi0gIDB4MjUyOWQ1YjgsCi0gIDB4MjUwYTAwMjgsCi0gIDB4OGQwYjAwMDAsCi0gIDB4OGQwYzAwMDQsCi0gIDB4YWQyYjAwMDAsCi0gIDB4YWQyYzAwMDQsCi0gIDB4MjUwODAwMDgsCi0gIDB4MTUwYWZmZmEsCi0gIDB4MjUyOTAwMDgsCi0gIDB4NDAwMjYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMjgsCi0gIDB4MjQwMzAwMjIsCi0gIDB4M2MwNGEwZTAsCi0gIDB4MzQ4NDAwMTQsCi0gIDB4YWM4MzAwMDAsCi0gIDB4OGZhNTAwMjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzRhNjEwMDEsCi0gIDB4MDBjMDEwMjEsCi0gIDB4YWZhNjAwMjgsCi0gIDB4M2MwN2ZmYmYsCi0gIDB4MzRlN2ZmZmYsCi0gIDB4MDBjNzM4MjQsCi0gIDB4MDBlMDEwMjEsCi0gIDB4YWZhNzAwMjgsCi0gIDB4NDA4NzYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwODAwMDIsCi0gIDB4MzUwOGQ4OTAsCi0gIDB4M2MwOWZmZmUsCi0gIDB4MzUyOTAxMzAsCi0gIDB4YWQyODAwMDAsCi0gIDB4OGZhYTAwMjgsCi0gIDB4M2MwYmYwMDAsCi0gIDB4MDE0YjU4MjUsCi0gIDB4MDE2MDEwMjEsCi0gIDB4YWZhYjAwMjgsCi0gIDB4MDE2MDYwMjEsCi0gIDB4NDA4YzYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4MDAxMDcwODAsCi0gIDB4MDIyZTc4MjEsCi0gIDB4YWRlMDAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTA0MDAsCi0gIDB4MTQyMGZmZmEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQxODAwMDEsCi0gIDB4M2MxOWEwZTgsCi0gIDB4YWYzODAwMDAsCi0gIDB4MjQwMjAwMTEsCi0gIDB4M2MwM2EwZjAsCi0gIDB4MzQ2MzAwMTcsCi0gIDB4YTA2MjAwMDAsCi0gIDB4M2MwNGYwZWIsCi0gIDB4MzQ4NDAwNzAsCi0gIDB4M2MwNWZmZjAsCi0gIDB4MzRhNTRhMDAsCi0gIDB4YWNhNDAwMDAsCi0gIDB4M2MwNmZjZWIsCi0gIDB4MzRjNjAwNzAsCi0gIDB4YWNhNjAwMDAsCi0gIDB4M2MwN2ZmZjAsCi0gIDB4MzRlNzQ3MDAsCi0gIDB4YWNlMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MwOGZmZjAsCi0gIDB4MzUwODBmYzAsCi0gIDB4M2MwOWZmZjAsCi0gIDB4MzUyOTQ1MDAsCi0gIDB4YWQyODAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDQsCi0gIDB4MTQyMGZmZjgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4M2MwYWRlYWQsCi0gIDB4MDAxMDU5ODAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyYTAwM2MsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMzAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMzgsCi0gIDB4MjQwZGZmZmYsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyZDAwMTQsCi0gIDB4MDAxMDcxMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQyZTAwMDAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQyMDAwMDQsCi0gIDB4MjQxODAwMjAsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YTQzODAwMDgsCi0gIDB4M2MwMTAwZDEsCi0gIDB4MDAyYjA4MjEsCi0gIDB4YWMyMDAwMTAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTA0MDAsCi0gIDB4MTQyMGZmZTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDgwMjEsCi0gIDB4MDAxMDE4YzAsCi0gIDB4M2MwNWEwZDEsCi0gIDB4MjRhNWUwMDAsCi0gIDB4MDBhMzIwMjEsCi0gIDB4YWM4MDAwMDAsCi0gIDB4M2MwN2EwZDEsCi0gIDB4MjRlN2UwMDAsCi0gIDB4MjRlODAwMDQsCi0gIDB4MDEwMzMwMjEsCi0gIDB4YWNjMDAwMDAsCi0gIDB4MjYxMDAwMDEsCi0gIDB4MmEwMTAwMDksCi0gIDB4MTQyMGZmZjMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwOTAzODAsCi0gIDB4M2MwYWZmZjAsCi0gIDB4MzU0YTRkMDAsCi0gIDB4YWQ0OTAwMDAsCi0gIDB4M2MwY2EwODAsCi0gIDB4MzU4YzAwOWMsCi0gIDB4YWQ4MDAwMDAsCi0gIDB4M2MwZGEwODAsCi0gIDB4MzVhZDAwYTAsCi0gIDB4YWRhMDAwMDAsCi0gIDB4M2MwZTExMDAsCi0gIDB4M2MwZmEwODAsCi0gIDB4MzVlZjAwYTgsCi0gIDB4YWRlZTAwMDAsCi0gIDB4NDEwMTAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NDEwMGZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxOGEwODAsCi0gIDB4MzcxODAwZTAsCi0gIDB4OGYxOTAwMDAsCi0gIDB4M2MwMWEwZDEsCi0gIDB4YWMzOWQ2YzgsCi0gIDB4MGMzNDNkNDMsCi0gIDB4MDMyMDIwMjEsCi0gIDB4OGZiMDAwMTQsCi0gIDB4OGZiZjAwMWMsCi0gIDB4OGZiMTAwMTgsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MjdiZDAwMzAsCi0gIDB4MDA4MGI4MjEsCi0gIDB4M2MxY2ZmZjAsCi0gIDB4YTM4MDBjODQsCi0gIDB4YTM4MDBjODgsCi0gIDB4OGY5MDQ0MDAsCi0gIDB4MDAwMDIwMjEsCi0gIDB4YWY4MDBjYmMsCi0gIDB4MjQwMjAwYTgsCi0gIDB4Mjc4MzBmMDAsCi0gIDB4MmM1ZDAwNDAsCi0gIDB4MTdhMDAwMGMsCi0gIDB4M2MxZGZmYjAsCi0gIDB4MDNhM2U4MjYsCi0gIDB4YWZiNzQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQ0MmZmYzAsCi0gIDB4MjQ2MzAwNDAsCi0gIDB4MTAwMGZmZjMsCi0gIDB4MjZmNzAwNDAsCi0gIDB4MTA0MDAwMGQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMmVlMDAsCi0gIDB4M2MwMTAwNDAsCi0gIDB4MDNhMWU4MjUsCi0gIDB4M2MwMWZmZjAsCi0gIDB4MDNhMWU4MjYsCi0gIDB4MDNhM2U4MjYsCi0gIDB4YWZiNzQwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwNWEwODAsCi0gIDB4OGY4MjBmMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZDQsCi0gIDB4YWY4MjBmZDAsCi0gIDB4YWNhMjAwYzQsCi0gIDB4OGY4MjBmMTAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMjFkODIsCi0gIDB4YWY4MzBmYzAsCi0gIDB4MDAwMzFkODAsCi0gIDB4MDA0MzEwMjMsCi0gIDB4M2MwMWEwODAsCi0gIDB4MDA0MTEwMjUsCi0gIDB4YWY4MjBmYzQsCi0gIDB4YWY4MjBmMTAsCi0gIDB4OGY4MjBmMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA0MzEwMjMsCi0gIDB4M2MwMWEwODAsCi0gIDB4MDA0MTEwMjUsCi0gIDB4YWY4MjBmMTQsCi0gIDB4MjQwMzAwMDMsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MjRiZTAwYzgsCi0gIDB4Mjc4MTBkMDAsCi0gIDB4OGZhMjAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMTAsCi0gIDB4YWZjMjAwMDAsCi0gIDB4YWZhMTAwMDgsCi0gIDB4YWZhMTAwMGMsCi0gIDB4OGZhMjAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMWMsCi0gIDB4MjdiZDAwMjQsCi0gIDB4MjdkZTAwMDQsCi0gIDB4MjQyMTAwNDAsCi0gIDB4MTQ2MGZmZjMsCi0gIDB4MjQ2M2ZmZmYsCi0gIDB4OGY4MjBmMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmYzgsCi0gIDB4YWNhMjAwYzAsCi0gIDB4Mjc4MjA4MDAsCi0gIDB4MjQwMzAwMGYsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4MTQ2MGZmZmQsCi0gIDB4MjQ2M2ZmZmYsCi0gIDB4OGY4MzBmYzAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MzRkMDAsCi0gIDB4OGY4MzRkMDAsCi0gIDB4OGY4MzBmMTQsCi0gIDB4OGY4MjBmMTAsCi0gIDB4MjQ2M2ZmZmMsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MTQ0M2ZmZmUsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4MjQwMjAzODAsCi0gIDB4YWY4MjRkMDAsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MjdhMTAwOTAsCi0gIDB4OGZhMjAwMTQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MmM3ZjAwNDAsCi0gIDB4MTdlMDAwMDksCi0gIDB4M2MxZjAwNDAsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MDNhMGYwMjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MjQ0MjAwNDAsCi0gIDB4MTAwMGZmZjYsCi0gIDB4MjQ2M2ZmYzAsCi0gIDB4MTA2MDAwMDYsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MDAwMzFlMDAsCi0gIDB4MDNlM2Y4MjUsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MjdiZDAwMjQsCi0gIDB4MTdhMWZmZTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDM4MjEsCi0gIDB4OGZjMjAwMTQsCi0gIDB4OGZjMzAwMTgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDA2MjE4MjMsCi0gIDB4MmM3ZjAwNDAsCi0gIDB4MTNlMDAwMDQsCi0gIDB4M2MxZjAwNDAsCi0gIDB4MDAwMzBlMDAsCi0gIDB4MTAwMDAwMDIsCi0gIDB4MDNlMWY4MjUsCi0gIDB4MjQwMzAwNDAsCi0gIDB4MzdmZjA4MDAsCi0gIDB4MjQxZTAzZTcsCi0gIDB4MDAwMDA4MjEsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZlMjAwMDAsCi0gIDB4MDAyMzA4MjEsCi0gIDB4NDkwMGZmZmIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODc4MDQwMDIsCi0gIDB4MTdjMGZmZjgsCi0gIDB4MjdkZWZmZmYsCi0gIDB4MTRlMDAwMDQsCi0gIDB4MzRlNzQwMDAsCi0gIDB4MDNlN2Y4MjUsCi0gIDB4MTAwMGZmZjAsCi0gIDB4YWY4MTBjNjAsCi0gIDB4YWY4MTBjNWMsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ2YzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMWEwODAsCi0gIDB4YWMyMjAwZTAsCi0gIDB4M2MwMWEwODAsCi0gIDB4OGMyMDAwZTAsCi0gIDB4YWY4MDBmYjQsCi0gIDB4YTc4MDBmYjgsCi0gIDB4YTc4MDBmYmEsCi0gIDB4YTc4MDBmYmMsCi0gIDB4YTc4MDBmYmUsCi0gIDB4Mjc4MjBjYzAsCi0gIDB4YWY4MjBmZGMsCi0gIDB4YWY4MjBmZDgsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmRhY2MsCi0gIDB4YWY4MjBjNGMsCi0gIDB4YWY4MjBjNTAsCi0gIDB4MjQ0MjA0MDAsCi0gIDB4YWY4MjBjNTQsCi0gIDB4MjQwMjAwMWUsCi0gIDB4M2MwM2ZmZjAsCi0gIDB4MjQ3ZDAwNDAsCi0gIDB4YWM3ZDAwMDgsCi0gIDB4MDNhMDE4MjEsCi0gIDB4MTQ0MGZmZmMsCi0gIDB4MjQ0MmZmZmYsCi0gIDB4M2MxZGZmZjAsCi0gIDB4YWM3ZDAwMDgsCi0gIDB4M2MwMmM3MDQsCi0gIDB4MzQ0MmRkN2IsCi0gIDB4YWY4MjBjNTgsCi0gIDB4M2MwNzAwMDAsCi0gIDB4MjRlNzAxNTgsCi0gIDB4MDgzNDNmYTksCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGU2MjAwMzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTQ0MDAwMDUsCi0gIDB4OGY4MzBjOTQsCi0gIDB4MTJhMDAwMjIsCi0gIDB4MjQ2MzAwMDEsCi0gIDB4MTAwMDAwMjAsCi0gIDB4YWY4MzBjOTQsCi0gIDB4YWY4MjBmYjQsCi0gIDB4MzI2MmZmYzAsCi0gIDB4MDAwMjExODIsCi0gIDB4ODY2MzAwMmEsCi0gIDB4YTc4MjBmYjgsCi0gIDB4M2MwMmEwMDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4YTc4MzBmYmEsCi0gIDB4ODY3ZTAwMDgsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MzNkZTAwNjAsCi0gIDB4MDNiZWU4MjEsCi0gIDB4MDAxZWYwYzIsCi0gIDB4MDNiZWU4MjEsCi0gIDB4OGZhMjAwMWMsCi0gIDB4M2MwMzBjNDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzRjMDAsCi0gIDB4YWM2MjBmYjQsCi0gIDB4OGZhMzAwMTgsCi0gIDB4MjQ0MjAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGZhMjAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMjAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWNhNTAwZTQsCi0gIDB4YWY5NzRjMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4YWU2MDAwM2MsCi0gIDB4M2MwZGEwZDEsCi0gIDB4MjVhZGQ1MDAsCi0gIDB4MTFhMDAwMjEsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGRhOTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTEyMDAwMWQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGRhYTAwMDQsCi0gIDB4OGRhYjAwMDgsCi0gIDB4OGRhYzAwMGMsCi0gIDB4MDAwOTQ3NDAsCi0gIDB4MDUwMTAwMDQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwOGEwZDEsCi0gIDB4MjUwOGQ2MzgsCi0gIDB4MDE0ODUwMjEsCi0gIDB4MDAwOTQ3ODAsCi0gIDB4MDUwMTAwMDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTE4MDAwMGQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWQ0MDAwMDAsCi0gIDB4MjU0YTAwMDQsCi0gIDB4MTAwMGZmZmIsCi0gIDB4MjU4Y2ZmZmMsCi0gIDB4MTE4MDAwMDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGQ2ZTAwMDAsCi0gIDB4MjU2YjAwMDQsCi0gIDB4YWQ0ZTAwMDAsCi0gIDB4MjU0YTAwMDQsCi0gIDB4MTAwMGZmZjksCi0gIDB4MjU4Y2ZmZmMsCi0gIDB4MTAwMGZmZTEsCi0gIDB4MjVhZDAwMTAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMjEwNDAsCi0gIDB4YWM1NzRmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBmZmMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzA0MjAwMWYsCi0gIDB4MDAwMjEwODAsCi0gIDB4M2MxN2EwZDEsCi0gIDB4MDJlMmI4MjEsCi0gIDB4MjZmN2Q2NDgsCi0gIDB4OGVmNzAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDJlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MjQwMmZmZmYsCi0gIDB4YWY4MjBmZmMsCi0gIDB4OGY5NzBmYzgsCi0gIDB4M2MwMjEwNDAsCi0gIDB4YWM1NzBmZjAsCi0gIDB4OGY4MjBmMDQsCi0gIDB4MjZmNzAwMTAsCi0gIDB4MTZlMjAwMDQsCi0gIDB4YWY5NzBmYzgsCi0gIDB4OGY5NzBmMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY5NzBmYzgsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDNlMDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MxZmEwZDEsCi0gIDB4MjdmZmYwMmMsCi0gIDB4MTAwMGZmZWQsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4YWVlMDAwM2MsCi0gIDB4MjQwMmZmZmYsCi0gIDB4YWVlMjAwMzAsCi0gIDB4YWVlMjAwMTQsCi0gIDB4OTc4MzBmZjQsCi0gIDB4OTc4MjBmZjgsCi0gIDB4M2MxZDAwMDAsCi0gIDB4MjdiZDA2OTgsCi0gIDB4YTZlMzAwMDgsCi0gIDB4YTZlMjAwMDIsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDNhMGY4MDksCi0gIDB4YTZlMjAwMmMsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTAwMGZmZDksCi0gIDB4YWVlMjAwMGMsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4OTc4MjBmZjQsCi0gIDB4M2MwMzAwMDAsCi0gIDB4MjQ2MzA2OTgsCi0gIDB4YTZlMjAwMDIsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDA2MGY4MDksCi0gIDB4YTZlMjAwMmMsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTAwMGZmY2EsCi0gIDB4YWVlMjAwMGMsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4MzJmNzAzZmYsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MDJlMmI4MjUsCi0gIDB4OTc4MjBmZjQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OTZlMzAwMDgsCi0gIDB4YTZlMjAwMDgsCi0gIDB4MDA0MzEwMjYsCi0gIDB4MzA0MjAwNjAsCi0gIDB4MTA0MGZmYmQsCi0gIDB4OGVlMjAwM2MsCi0gIDB4YWVlMDAwM2MsCi0gIDB4MTA0MGZmYmEsCi0gIDB4M2MwMjg4MDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGVlMjAwMzgsCi0gIDB4YWVlMDAwMzgsCi0gIDB4MzA2MzAwNjAsCi0gIDB4Mjc5ZDBmMTgsCi0gIDB4MDNhM2U4MjEsCi0gIDB4MDAwMzE4YzIsCi0gIDB4MDNhM2U4MjEsCi0gIDB4OGZhMzAwMWMsCi0gIDB4MTA0MGZmYWYsCi0gIDB4YWY4MjBmYjQsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGZhMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGZhMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWZhMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmYTIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzBmZjAsCi0gIDB4M2MwMjAwZDEsCi0gIDB4YTc5NzBmYjgsCi0gIDB4MDAxN2I5ODAsCi0gIDB4MzJmN2ZmYzAsCi0gIDB4MDJlMmI4MjEsCi0gIDB4YWVlMDAwMzAsCi0gIDB4M2MwMmRlYWQsCi0gIDB4OGVlMzAwM2MsCi0gIDB4YWVlMjAwM2MsCi0gIDB4OGVlMjAwMzgsCi0gIDB4MTA2MGZmOTUsCi0gIDB4YWVlMDAwMzgsCi0gIDB4M2MwMzg4MDAsCi0gIDB4YWY4MzBmYmMsCi0gIDB4ODZlMzAwMDgsCi0gIDB4Mjc5NzBmMTgsCi0gIDB4MzA2MzAwNjAsCi0gIDB4MDJlM2I4MjEsCi0gIDB4MDAwMzE4YzIsCi0gIDB4MDJlM2I4MjEsCi0gIDB4OGVlMzAwMWMsCi0gIDB4MTA0MGZmOGEsCi0gIDB4YWY4MjBmYjQsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGVlMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGVlMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVlMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmN2QsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTA0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNzYsCi0gIDB4YTA0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTQ0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNmYsCi0gIDB4YTQ0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OGM0MTAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4MTAwMGZmNjgsCi0gIDB4YWM0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTA0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNjEsCi0gIDB4YTA0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OTQ0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNWEsCi0gIDB4YTQ0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4OGM0MTAwMDAsCi0gIDB4MDJlMGI4MjcsCi0gIDB4MDAzNzA4MjQsCi0gIDB4MTAwMGZmNTMsCi0gIDB4YWM0MTAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNGYsCi0gIDB4YTA1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNGIsCi0gIDB4YTQ1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4OGY5NzBmZjQsCi0gIDB4MTAwMGZmNDcsCi0gIDB4YWM1NzAwMDAsCi0gIDB4OGY4MjBmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGM0MjAwMDAsCi0gIDB4MTAwMGZmNDIsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMWEwYzIsCi0gIDB4OGMyMmMwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4M2MwMWEwYzIsCi0gIDB4OGMyMmMwMDQsCi0gIDB4MTAwMGZmM2EsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ1YWMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4M2MwMWEwZDEsCi0gIDB4OGMyMmQ1YjAsCi0gIDB4MTAwMGZmMzIsCi0gIDB4YWY4MjBmZjQsCi0gIDB4M2MwMmEwZjAsCi0gIDB4YWM0MDAwMDAsCi0gIDB4OTA1NzAxNTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODAsCi0gIDB4OTA1NzAxNTcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODEsCi0gIDB4OTA1NzAxNWIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODcsCi0gIDB4OTA1NzAxNWYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjODYsCi0gIDB4OTA1NzAxNjMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMDcsCi0gIDB4YTM5NzBjODUsCi0gIDB4OTA1NzAxOTMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjOGIsCi0gIDB4OTA1NzAxOTcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YTM5NzBjOGEsCi0gIDB4OTA1NzAxOWIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMDcsCi0gIDB4YTM5NzBjODksCi0gIDB4OTA1NzAwMGIsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwZTAsCi0gIDB4MDAxNzA5NDIsCi0gIDB4OTA1NzAwNDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwNzgsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAwNjcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMGYsCi0gIDB4MDAxN2I5YzAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAwYzcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMmYsCi0gIDB4MDAxN2JhYzAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAxNDcsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwMWUsCi0gIDB4MDAxN2JjMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4OTA1NzAxODMsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzJmNzAwNjAsCi0gIDB4MDAxN2JjMDAsCi0gIDB4MDAzNzA4MjUsCi0gIDB4YWY4MTBjOGMsCi0gIDB4M2MwMjE4NDAsCi0gIDB4OGY5NzBmYzgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY5NzBmZjAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWM1NzBjODAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmY5OTgsCi0gIDB4YWY4MDBjOTAsCi0gIDB4YWY4MDBjOTQsCi0gIDB4MDA0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCi0gIDB4ODc5NzBmZjAsCi0gIDB4M2MxMzAwZDEsCi0gIDB4YTY3NzAwMDgsCi0gIDB4M2MwMzAwMDAsCi0gIDB4MjQ2MzA1MjAsCi0gIDB4YWY5ZjBmZTgsCi0gIDB4MDA2MGY4MDksCi0gIDB4MjQwMjAwMDEsCi0gIDB4OGY5ZjBmZTgsCi0gIDB4MTA0MGZlZGEsCi0gIDB4OTc5NzBmZjAsCi0gIDB4Mjc4MzBmMTgsCi0gIDB4MDA3NzE4MjEsCi0gIDB4MDAxN2I4YzIsCi0gIDB4MDJlM2I4MjEsCi0gIDB4M2MwMjg4MDAsCi0gIDB4YWY4MjBmYmMsCi0gIDB4OGU2MjAwMzgsCi0gIDB4YTc4MDBmYjgsCi0gIDB4YWY4MjBmYjQsCi0gIDB4OGVlMzAwMWMsCi0gIDB4M2MwMjBjNDAsCi0gIDB4YWM0MzBmYjQsCi0gIDB4OGVlMjAwMTgsCi0gIDB4MjQ2MzAwMGMsCi0gIDB4MTQ0MzAwMDQsCi0gIDB4YWVlMzAwMWMsCi0gIDB4OGVlMzAwMTQsCi0gIDB4MDAwMDAwMDAsCi0gIDB4YWVlMzAwMWMsCi0gIDB4NGQwMWZmZmYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MTAwMGZmZGYsCi0gIDB4MDAwMDAwMDAsCi0gIDB4OGY4MjBjNWMsCi0gIDB4OGY4MzBjNjAsCi0gIDB4YWY4MjBmZjAsCi0gIDB4MTAwMGZlYmUsCi0gIDB4YWY4MzBmZjQsCi0gIDB4MjM4OTA4MDAsCi0gIDB4MDEyMDE4MjEsCi0gIDB4MjQwMjAwMGYsCi0gIDB4MjA2YzAwNDAsCi0gIDB4YWM2YzAwMDgsCi0gIDB4MDE4MDE4MjEsCi0gIDB4MTQ0MGZmZmMsCi0gIDB4MjA0MmZmZmYsCi0gIDB4YWM2OTAwMDgsCi0gIDB4Mjc4YjBjOTgsCi0gIDB4YTU2MDAwMDAsCi0gIDB4MjQwM2ZmZmYsCi0gIDB4YWQ2MzAwMTQsCi0gIDB4MzQwMjAwMDEsCi0gIDB4MzQ0MjAwMjAsCi0gIDB4YTU2MjAwMDgsCi0gIDB4Mjc4YTBlMDAsCi0gIDB4MDE0MDEwMjEsCi0gIDB4MDAwMDE4MjEsCi0gIDB4YWM0MDAwMDAsCi0gIDB4MjQ2MzAwMDQsCi0gIDB4MmM2YzAxMDAsCi0gIDB4MTU4MGZmZmMsCi0gIDB4MjQ0MjAwMDQsCi0gIDB4M2MwMmEwZDEsCi0gIDB4MjQ0MmUwMDAsCi0gIDB4YWY4MjBmZTAsCi0gIDB4M2MxODAwZDEsCi0gIDB4MDEyMDYwMjEsCi0gIDB4MDAwMDY4MjEsCi0gIDB4MDAwMDc4MjEsCi0gIDB4MDAwMDU4MjEsCi0gIDB4MDAwMDQwMjEsCi0gIDB4NDAwMjYwMDAsCi0gIDB4MDAwMDAwMDAsCi0gIDB4MzQ0MjQwMDEsCi0gIDB4NDA4MjYwMDAsCi0gIDB4M2MwMjAwMDAsCi0gIDB4MjQ0MjA2ZjgsCi0gIDB4MDA0MDAwMDgsCi0gIDB4MDAwMDAwMDAsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5yZWdpb25zIGIvZHJpdmVycy9hdG0vYXRtc2FyMTEucmVnaW9ucwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDIyNTJiNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5yZWdpb25zCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0vKgotICBTZWUgY29weXJpZ2h0IGFuZCBsaWNlbnNpbmcgY29uZGl0aW9ucyBpbiBhbWJhc3NhZG9yLiogZmlsZXMuCi0qLwotICB7IDB4MDAwMDAwODAsICA5OTMsIH0sCi0gIHsgMHhhMGQwZDUwMCwgICA4MCwgfSwKLSAgeyAweGEwZDBmMDAwLCAgOTc4LCB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vYXRtc2FyMTEuc3RhcnQgYi9kcml2ZXJzL2F0bS9hdG1zYXIxMS5zdGFydApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGJhNTVlNy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2F0bS9hdG1zYXIxMS5zdGFydAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotLyoKLSAgU2VlIGNvcHlyaWdodCBhbmQgbGljZW5zaW5nIGNvbmRpdGlvbnMgaW4gYW1iYXNzYWRvci4qIGZpbGVzLgotKi8KLSAgMHhhMGQwZjAwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vZW5pLmggYi9kcml2ZXJzL2F0bS9lbmkuaAppbmRleCBkMDRmZWZiLi5lNGM5NTI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9lbmkuaAorKysgYi9kcml2ZXJzL2F0bS9lbmkuaApAQCAtMTgsNyArMTgsNiBAQAogI2luY2x1ZGUgIm1pZHdheS5oIgogCiAKLSNkZWZpbmUgS0VSTkVMX09GRlNFVAkweEMwMDAwMDAwCS8qIGtlcm5lbCAweDAgaXMgYXQgcGh5cyAweEMwMDAwMDAwICovCiAjZGVmaW5lIERFVl9MQUJFTAkiZW5pIgogCiAjZGVmaW5lIFVCUl9CVUZGRVIJKDEyOCoxMDI0KQkvKiBVQlIgYnVmZmVyIHNpemUgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2hlLmMgYi9kcml2ZXJzL2F0bS9oZS5jCmluZGV4IGZmYzRhNWEuLmVhNDk1YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYXRtL2hlLmMKKysrIGIvZHJpdmVycy9hdG0vaGUuYwpAQCAtMTU0Miw3ICsxNTQyLDggQEAKIAkvKiBpbml0aWFsaXplIGZyYW1lciAqLwogCiAjaWZkZWYgQ09ORklHX0FUTV9IRV9VU0VfU1VOSQotCXN1bmlfaW5pdChoZV9kZXYtPmF0bV9kZXYpOworCWlmIChoZV9pc01NKGhlX2RldikpCisJCXN1bmlfaW5pdChoZV9kZXYtPmF0bV9kZXYpOwogCWlmIChoZV9kZXYtPmF0bV9kZXYtPnBoeSAmJiBoZV9kZXYtPmF0bV9kZXYtPnBoeS0+c3RhcnQpCiAJCWhlX2Rldi0+YXRtX2Rldi0+cGh5LT5zdGFydChoZV9kZXYtPmF0bV9kZXYpOwogI2VuZGlmIC8qIENPTkZJR19BVE1fSEVfVVNFX1NVTkkgKi8KQEAgLTE1NTQsNiArMTU1NSw3IEBACiAJCXZhbCA9IGhlX3BoeV9nZXQoaGVfZGV2LT5hdG1fZGV2LCBTVU5JX1RQT1BfQVBNKTsKIAkJdmFsID0gKHZhbCAmIH5TVU5JX1RQT1BfQVBNX1MpIHwgKFNVTklfVFBPUF9TX1NESCA8PCBTVU5JX1RQT1BfQVBNX1NfU0hJRlQpOwogCQloZV9waHlfcHV0KGhlX2Rldi0+YXRtX2RldiwgdmFsLCBTVU5JX1RQT1BfQVBNKTsKKwkJaGVfcGh5X3B1dChoZV9kZXYtPmF0bV9kZXYsIFNVTklfVEFDUF9JVUNIUF9DTFAsIFNVTklfVEFDUF9JVUNIUCk7CiAJfQogCiAJLyogNS4xLjEyIGVuYWJsZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSAqLwpAQCAtMjg0NCwxMCArMjg0NiwxNSBAQAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZyZWcsIGFyZywKIAkJCQkJICAgc2l6ZW9mKHN0cnVjdCBoZV9pb2N0bF9yZWcpKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCQorCiAJCQlzcGluX2xvY2tfaXJxc2F2ZSgmaGVfZGV2LT5nbG9iYWxfbG9jaywgZmxhZ3MpOwogCQkJc3dpdGNoIChyZWcudHlwZSkgewogCQkJCWNhc2UgSEVfUkVHVFlQRV9QQ0k6CisJCQkJCWlmIChyZWcuYWRkciA8IDAgfHwgcmVnLmFkZHIgPj0gSEVfUkVHTUFQX1NJWkUpIHsKKwkJCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJCQlicmVhazsKKwkJCQkJfQorCiAJCQkJCXJlZy52YWwgPSBoZV9yZWFkbChoZV9kZXYsIHJlZy5hZGRyKTsKIAkJCQkJYnJlYWs7CiAJCQkJY2FzZSBIRV9SRUdUWVBFX1JDTToKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2hlLmggYi9kcml2ZXJzL2F0bS9oZS5oCmluZGV4IGZlNmNkMTVhLi5iODdkNmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9oZS5oCisrKyBiL2RyaXZlcnMvYXRtL2hlLmgKQEAgLTI2NywxMyArMjY3LDcgQEAKIAogCWNoYXIgcHJvZF9pZFszMF07CiAJY2hhciBtYWNfYWRkcls2XTsKLQlpbnQgbWVkaWE7CQkJLyogIAotCQkJCQkgKiAgMHgyNiA9IEhFMTU1IE1NIAotCQkJCQkgKiAgMHgyNyA9IEhFNjIyIE1NIAotCQkJCQkgKiAgMHg0NiA9IEhFMTU1IFNNIAotCQkJCQkgKiAgMHg0NyA9IEhFNjIyIFNNIAotCQkJCQkgKi8KLQorCWludCBtZWRpYTsKIAogCXVuc2lnbmVkIGludCB2Y2liaXRzLCB2cGliaXRzOwogCXVuc2lnbmVkIGludCBjZWxsc19wZXJfcm93OwpAQCAtMzkyLDYgKzM4Niw3IEBACiAjZGVmaW5lIEhFX0RFVihkZXYpICgoc3RydWN0IGhlX2RldiAqKSAoZGV2KS0+ZGV2X2RhdGEpCiAKICNkZWZpbmUgaGVfaXM2MjIoZGV2KQkoKGRldiktPm1lZGlhICYgMHgxKQorI2RlZmluZSBoZV9pc01NKGRldikJKChkZXYpLT5tZWRpYSAmIDB4MjApCiAKICNkZWZpbmUgSEVfUkVHTUFQX1NJWkUJMHgxMDAwMDAKIApAQCAtODc2LDggKzg3MSw4IEBACiAjZGVmaW5lIE1fU04JCTB4M2EJLyogaW50ZWdlciAqLwogI2RlZmluZSBNRURJQQkJMHgzZQkvKiBpbnRlZ2VyICovCiAjZGVmaW5lICBIRTE1NU1NCTB4MjYKLSNkZWZpbmUgIEhFMTU1U00JMHgyNwotI2RlZmluZSAgSEU2MjJNTQkweDQ2CisjZGVmaW5lICBIRTYyMk1NCTB4MjcKKyNkZWZpbmUgIEhFMTU1U00JMHg0NgogI2RlZmluZSAgSEU2MjJTTQkweDQ3CiAjZGVmaW5lIE1BQ19BRERSCTB4NDIJLyogY2hhcltdICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRtL2lwaGFzZS5jIGIvZHJpdmVycy9hdG0vaXBoYXNlLmMKaW5kZXggNWMyOGNhNy4uMTM5ZmNlNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdG0vaXBoYXNlLmMKKysrIGIvZHJpdmVycy9hdG0vaXBoYXNlLmMKQEAgLTI1NjIsMTcgKzI1NjIsMTEgQEAKIAkJZXJyb3IgPSBzdW5pX2luaXQoZGV2KTsKIAkJaWYgKGVycm9yKQogCQkJZ290byBlcnJfZnJlZV9yeDsKLQkJLyogCi0JCSAqIEVuYWJsZSBpbnRlcnJ1cHQgb24gbG9zcyBvZiBzaWduYWwKLQkJICogU1VOSV9SU09QX0NJRSAtIDB4MTAKLQkJICogU1VOSV9SU09QX0NJRV9MT1NFIC0gMHgwNAotCQkgKi8KLQkJaWFfcGh5X3B1dChkZXYsIGlhX3BoeV9nZXQoZGV2LCAweDEwKSB8IDB4MDQsIDB4MTApOwotI2lmbmRlZiBNT0RVTEUKLQkJZXJyb3IgPSBkZXYtPnBoeS0+c3RhcnQoZGV2KTsKLQkJaWYgKGVycm9yKQotCQkJZ290byBlcnJfZnJlZV9yeDsKLSNlbmRpZgorCQlpZiAoZGV2LT5waHktPnN0YXJ0KSB7CisJCQllcnJvciA9IGRldi0+cGh5LT5zdGFydChkZXYpOworCQkJaWYgKGVycm9yKQorCQkJCWdvdG8gZXJyX2ZyZWVfcng7CisJCX0KIAkJLyogR2V0IGlhZGV2LT5jYXJyaWVyX2RldGVjdCBzdGF0dXMgKi8KIAkJSWFGcm9udEVuZEludHIoaWFkZXYpOwogCX0KQEAgLTMxOTgsNiArMzE5Miw4IEBACiAJSUZfSU5JVChwcmludGsoImRldl9pZCA9IDB4JXggaWFkZXYtPkxpbmVSYXRlID0gJWQgXG4iLCAodTMyKWRldiwKIAkJaWFkZXYtPkxpbmVSYXRlKTspCiAKKwlwY2lfc2V0X2RydmRhdGEocGRldiwgZGV2KTsKKwogCWlhX2RldltpYWRldl9jb3VudF0gPSBpYWRldjsKIAlfaWFfZGV2W2lhZGV2X2NvdW50XSA9IGRldjsKIAlpYWRldl9jb3VudCsrOwpAQCAtMzIxOSw4ICszMjE1LDYgQEAKIAlpYWRldi0+bmV4dF9ib2FyZCA9IGlhX2JvYXJkczsgIAogCWlhX2JvYXJkcyA9IGRldjsgIAogCi0JcGNpX3NldF9kcnZkYXRhKHBkZXYsIGRldik7Ci0KIAlyZXR1cm4gMDsKIAogZXJyX291dF9kZXJlZ2lzdGVyX2RldjoKQEAgLTMyMzgsOSArMzIzMiwxNCBAQAogCXN0cnVjdCBhdG1fZGV2ICpkZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7CiAJSUFERVYgKmlhZGV2ID0gSU5QSF9JQV9ERVYoZGV2KTsKIAotCWlhX3BoeV9wdXQoZGV2LCBpYV9waHlfZ2V0KGRldiwweDEwKSAmIH4oMHg0KSwgMHgxMCk7IAorCS8qIERpc2FibGUgcGh5IGludGVycnVwdHMgKi8KKwlpYV9waHlfcHV0KGRldiwgaWFfcGh5X2dldChkZXYsIFNVTklfUlNPUF9DSUUpICYgfihTVU5JX1JTT1BfQ0lFX0xPU0UpLAorCQkJCSAgIFNVTklfUlNPUF9DSUUpOwogCXVkZWxheSgxKTsKIAorCWlmIChkZXYtPnBoeSAmJiBkZXYtPnBoeS0+c3RvcCkKKwkJZGV2LT5waHktPnN0b3AoZGV2KTsKKwogCS8qIERlLXJlZ2lzdGVyIGRldmljZSAqLyAgCiAgICAgICAJZnJlZV9pcnEoaWFkZXYtPmlycSwgZGV2KTsKIAlpYWRldl9jb3VudC0tOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdXhkaXNwbGF5L0tjb25maWcgYi9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZwppbmRleCAwNDMzNTNiLi4xNGI5ZDVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZworKysgYi9kcml2ZXJzL2F1eGRpc3BsYXkvS2NvbmZpZwpAQCAtNjQsNyArNjQsNyBAQAogCSAgQW1vdW50IG9mIHRpbWUgdGhlIGtzMDEwOCBzaG91bGQgd2FpdCBiZXR3ZWVuIGVhY2ggY29udHJvbCB3cml0ZQogCSAgdG8gdGhlIHBhcmFsbGVsIHBvcnQuCiAKLQkgIElmIHlvdXIgZHJpdmVyIHNlZW1zIHRvIG1pc3MgcmFuZG9tIHdyaXRpbmdzLCBpbmNyZW1lbnQgdGhpcy4KKwkgIElmIHlvdXIgTENEIHNlZW1zIHRvIG1pc3MgcmFuZG9tIHdyaXRpbmdzLCBpbmNyZW1lbnQgdGhpcy4KIAogCSAgSWYgeW91IGRvbid0IGtub3cgd2hhdCBJJ20gdGFsa2luZyBhYm91dCwgaWdub3JlIGl0LgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi5jIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGIuYwppbmRleCA4MGJiMDYxLi42ODM1MDlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0Yi5jCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiLmMKQEAgLTUsNyArNSw3IEBACiAgKiAgICAgTGljZW5zZTogR1BMdjIKICAqICAgICBEZXBlbmRzOiBrczAxMDgKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0zMQogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMzk4LDUgKzM5OCw1IEBACiBtb2R1bGVfZXhpdChjZmFnMTI4NjRiX2V4aXQpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Ci1NT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPiIpOworTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtaWd1ZWwub2plZGEuc2FuZG9uaXNAZ21haWwuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJjZmFnMTI4NjRiIExDRCBkcml2ZXIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiZmIuYyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9jZmFnMTI4NjRiZmIuYwppbmRleCAzMDdjMTkwLi5mZTNhODY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F1eGRpc3BsYXkvY2ZhZzEyODY0YmZiLmMKKysrIGIvZHJpdmVycy9hdXhkaXNwbGF5L2NmYWcxMjg2NGJmYi5jCkBAIC01LDcgKzUsNyBAQAogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKiAgICAgRGVwZW5kczogY2ZhZzEyODY0YgogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0xODYsNSArMTg2LDUgQEAKIG1vZHVsZV9leGl0KGNmYWcxMjg2NGJmYl9leGl0KTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwotTU9EVUxFX0FVVEhPUigiTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWlndWVsLm9qZWRhLnNhbmRvbmlzQGdtYWlsLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiY2ZhZzEyODY0YiBMQ0QgZnJhbWVidWZmZXIgZHJpdmVyIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMgYi9kcml2ZXJzL2F1eGRpc3BsYXkva3MwMTA4LmMKaW5kZXggZTZjMzY0Ni4uNWI5Mzg1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdXhkaXNwbGF5L2tzMDEwOC5jCisrKyBiL2RyaXZlcnMvYXV4ZGlzcGxheS9rczAxMDguYwpAQCAtNSw3ICs1LDcgQEAKICAqICAgICBMaWNlbnNlOiBHUEx2MgogICogICAgIERlcGVuZHM6IHBhcnBvcnQKICAqCi0gKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1heGV4dHJlbWVAZ21haWwuY29tPgorICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzCiAgKiAgICAgICAgRGF0ZTogMjAwNi0xMC0zMQogICoKICAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTczLDYgKzE3Myw2IEBACiBtb2R1bGVfZXhpdChrczAxMDhfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKLU1PRFVMRV9BVVRIT1IoIk1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+Iik7CitNT0RVTEVfQVVUSE9SKCJNaWd1ZWwgT2plZGEgU2FuZG9uaXMgPG1pZ3VlbC5vamVkYS5zYW5kb25pc0BnbWFpbC5jb20+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oImtzMDEwOCBMQ0QgQ29udHJvbGxlciBkcml2ZXIiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL0tjb25maWcgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwppbmRleCBkN2RhMTA5Li5kNDc0ODJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvS2NvbmZpZworKysgYi9kcml2ZXJzL2Jhc2UvS2NvbmZpZwpAQCAtMzQsNiArMzQsNzAgQEAKIAkgIHJlcXVpcmUgdXNlcnNwYWNlIGZpcm13YXJlIGxvYWRpbmcgc3VwcG9ydCwgYnV0IGEgbW9kdWxlIGJ1aWx0IG91dHNpZGUKIAkgIHRoZSBrZXJuZWwgdHJlZSBkb2VzLgogCitjb25maWcgRklSTVdBUkVfSU5fS0VSTkVMCisJYm9vbCAiSW5jbHVkZSBpbi1rZXJuZWwgZmlybXdhcmUgYmxvYnMgaW4ga2VybmVsIGJpbmFyeSIKKwlkZXBlbmRzIG9uIEZXX0xPQURFUgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFRoZSBrZXJuZWwgc291cmNlIHRyZWUgaW5jbHVkZXMgYSBudW1iZXIgb2YgZmlybXdhcmUgJ2Jsb2JzJworCSAgd2hpY2ggYXJlIHVzZWQgYnkgdmFyaW91cyBkcml2ZXJzLiBUaGUgcmVjb21tZW5kZWQgd2F5IHRvCisJICB1c2UgdGhlc2UgaXMgdG8gcnVuICJtYWtlIGZpcm13YXJlX2luc3RhbGwiIGFuZCB0byBjb3B5IHRoZQorCSAgcmVzdWx0aW5nIGJpbmFyeSBmaWxlcyBjcmVhdGVkIGluIHVzci9saWIvZmlybXdhcmUgZGlyZWN0b3J5CisJICBvZiB0aGUga2VybmVsIHRyZWUgdG8gdGhlIC9saWIvZmlybXdhcmUgb24geW91ciBzeXN0ZW0gc28KKwkgIHRoYXQgdGhleSBjYW4gYmUgbG9hZGVkIGJ5IHVzZXJzcGFjZSBoZWxwZXJzIG9uIHJlcXVlc3QuCisKKwkgIEVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgYnVpbGQgZWFjaCByZXF1aXJlZCBmaXJtd2FyZSBibG9iCisJICBpbnRvIHRoZSBrZXJuZWwgZGlyZWN0bHksIHdoZXJlIHJlcXVlc3RfZmlybXdhcmUoKSB3aWxsIGZpbmQKKwkgIHRoZW0gd2l0aG91dCBoYXZpbmcgdG8gY2FsbCBvdXQgdG8gdXNlcnNwYWNlLiBUaGlzIG1heSBiZQorCSAgdXNlZnVsIGlmIHlvdXIgcm9vdCBmaWxlIHN5c3RlbSByZXF1aXJlcyBhIGRldmljZSB3aGljaCB1c2VzCisJICBzdWNoIGZpcm13YXJlLCBhbmQgZG8gbm90IHdpc2ggdG8gdXNlIGFuIGluaXRyZC4KKworCSAgVGhpcyBzaW5nbGUgb3B0aW9uIGNvbnRyb2xzIHRoZSBpbmNsdXNpb24gb2YgZmlybXdhcmUgZm9yCisJICBldmVyeSBkcml2ZXIgd2hpY2ggdXNlZXMgcmVxdWVzdF9maXJtYXJlKCkgYW5kIHNoaXBzIGl0cworCSAgZmlybXdhcmUgaW4gdGhlIGtlcm5lbCBzb3VyY2UgdHJlZSwgdG8gYXZvaWQgYSBwcm9saWZlcmF0aW9uCisJICBvZiAnSW5jbHVkZSBmaXJtd2FyZSBmb3IgeHh4IGRldmljZScgb3B0aW9ucy4KKworCSAgU2F5ICdOJyBhbmQgbGV0IGZpcm13YXJlIGJlIGxvYWRlZCBmcm9tIHVzZXJzcGFjZS4KKworY29uZmlnIEVYVFJBX0ZJUk1XQVJFCisJc3RyaW5nICJFeHRlcm5hbCBmaXJtd2FyZSBibG9icyB0byBidWlsZCBpbnRvIHRoZSBrZXJuZWwgYmluYXJ5IgorCWRlcGVuZHMgb24gRldfTE9BREVSCisJaGVscAorCSAgVGhpcyBvcHRpb24gYWxsb3dzIGZpcm13YXJlIHRvIGJlIGJ1aWx0IGludG8gdGhlIGtlcm5lbCwgZm9yIHRoZQorCSAgY2FzZXMgd2hlcmUgdGhlIHVzZXIgZWl0aGVyIGNhbm5vdCBvciBkb2Vzbid0IHdhbnQgdG8gcHJvdmlkZSBpdCBmcm9tCisJICB1c2Vyc3BhY2UgYXQgcnVudGltZSAoZm9yIGV4YW1wbGUsIHdoZW4gdGhlIGZpcm13YXJlIGluIHF1ZXN0aW9uIGlzCisJICByZXF1aXJlZCBmb3IgYWNjZXNzaW5nIHRoZSBib290IGRldmljZSwgYW5kIHRoZSB1c2VyIGRvZXNuJ3Qgd2FudCB0bworCSAgdXNlIGFuIGluaXRyZCkuCisKKwkgIFRoaXMgb3B0aW9uIGlzIGEgc3RyaW5nLCBhbmQgdGFrZXMgdGhlIChzcGFjZS1zZXBhcmF0ZWQpIG5hbWVzIG9mIHRoZQorCSAgZmlybXdhcmUgZmlsZXMgLS0gdGhlIHNhbWUgbmFtZXMgd2hpY2ggYXBwZWFyIGluIE1PRFVMRV9GSVJNV0FSRSgpCisJICBhbmQgcmVxdWVzdF9maXJtd2FyZSgpIGluIHRoZSBzb3VyY2UuIFRoZXNlIGZpbGVzIHNob3VsZCBleGlzdCB1bmRlcgorCSAgdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgdGhlIEVYVFJBX0ZJUk1XQVJFX0RJUiBvcHRpb24sIHdoaWNoIGlzCisJICBieSBkZWZhdWx0IHRoZSBmaXJtd2FyZS8gc3ViZGlyZWN0b3J5IG9mIHRoZSBrZXJuZWwgc291cmNlIHRyZWUuCisKKwkgIFNvLCBmb3IgZXhhbXBsZSwgeW91IG1pZ2h0IHNldCBDT05GSUdfRVhUUkFfRklSTVdBUkU9InVzYjgzODguYmluIiwKKwkgIGNvcHkgdGhlIHVzYjgzODguYmluIGZpbGUgaW50byB0aGUgZmlybXdhcmUvIGRpcmVjdG9yeSwgYW5kIGJ1aWxkIHRoZQorCSAga2VybmVsLiBUaGVuIGFueSByZXF1ZXN0X2Zpcm13YXJlKCJ1c2I4Mzg4LmJpbiIpIHdpbGwgYmUKKwkgIHNhdGlzZmllZCBpbnRlcm5hbGx5IHdpdGhvdXQgbmVlZGluZyB0byBjYWxsIG91dCB0byB1c2Vyc3BhY2UuCisKKwkgIFdBUk5JTkc6IElmIHlvdSBpbmNsdWRlIGFkZGl0aW9uYWwgZmlybXdhcmUgZmlsZXMgaW50byB5b3VyIGJpbmFyeQorCSAga2VybmVsIGltYWdlIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMLAorCSAgdGhlbiBpdCBtYXkgYmUgYSB2aW9sYXRpb24gb2YgdGhlIEdQTCB0byBkaXN0cmlidXRlIHRoZSByZXN1bHRpbmcKKwkgIGltYWdlIC0tIHNpbmNlIGl0IGNvbWJpbmVzIGJvdGggR1BMIGFuZCBub24tR1BMIHdvcmsuIFlvdSBzaG91bGQKKwkgIGNvbnN1bHQgYSBsYXd5ZXIgb2YgeW91ciBvd24gYmVmb3JlIGRpc3RyaWJ1dGluZyBzdWNoIGFuIGltYWdlLgorCitjb25maWcgRVhUUkFfRklSTVdBUkVfRElSCisJc3RyaW5nICJGaXJtd2FyZSBibG9icyByb290IGRpcmVjdG9yeSIKKwlkZXBlbmRzIG9uIEVYVFJBX0ZJUk1XQVJFICE9ICIiCisJZGVmYXVsdCAiZmlybXdhcmUiCisJaGVscAorCSAgVGhpcyBvcHRpb24gY29udHJvbHMgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbQorCSAgbG9va3MgZm9yIHRoZSBmaXJtd2FyZSBmaWxlcyBsaXN0ZWQgaW4gdGhlIEVYVFJBX0ZJUk1XQVJFIG9wdGlvbi4KKwkgIFRoZSBkZWZhdWx0IGlzIHRoZSBmaXJtd2FyZS8gZGlyZWN0b3J5IGluIHRoZSBrZXJuZWwgc291cmNlIHRyZWUsCisJICBidXQgYnkgY2hhbmdpbmcgdGhpcyBvcHRpb24geW91IGNhbiBwb2ludCBpdCBlbHNld2hlcmUsIHN1Y2ggYXMKKwkgIHRoZSAvbGliL2Zpcm13YXJlLyBkaXJlY3Rvcnkgb3IgYW5vdGhlciBzZXBhcmF0ZSBkaXJlY3RvcnkKKwkgIGNvbnRhaW5pbmcgZmlybXdhcmUgZmlsZXMuCisKIGNvbmZpZyBERUJVR19EUklWRVIKIAlib29sICJEcml2ZXIgQ29yZSB2ZXJib3NlIGRlYnVnIG1lc3NhZ2VzIgogCWRlcGVuZHMgb24gREVCVUdfS0VSTkVMCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvY29yZS5jIGIvZHJpdmVycy9iYXNlL2NvcmUuYwppbmRleCA3MmVjY2FlLi5lZTBhNTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvY29yZS5jCisrKyBiL2RyaXZlcnMvYmFzZS9jb3JlLmMKQEAgLTc2MCw2ICs3NjAsMjIgQEAKIH0KIAogLyoqCisgKiBkZXZfc2V0X25hbWUgLSBzZXQgYSBkZXZpY2UgbmFtZQorICogQGRldjogZGV2aWNlCisgKiBAZm10OiBmb3JtYXQgc3RyaW5nIGZvciB0aGUgZGV2aWNlJ3MgbmFtZQorICovCitpbnQgZGV2X3NldF9uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJdmFfbGlzdCB2YXJnczsKKworCXZhX3N0YXJ0KHZhcmdzLCBmbXQpOworCXZzbnByaW50ZihkZXYtPmJ1c19pZCwgc2l6ZW9mKGRldi0+YnVzX2lkKSwgZm10LCB2YXJncyk7CisJdmFfZW5kKHZhcmdzKTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRldl9zZXRfbmFtZSk7CisKKy8qKgogICogZGV2aWNlX2FkZCAtIGFkZCBkZXZpY2UgdG8gZGV2aWNlIGhpZXJhcmNoeS4KICAqIEBkZXY6IGRldmljZS4KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvZmlybXdhcmVfY2xhc3MuYyBiL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCmluZGV4IDlmZDRhODUuLmIwYmUxZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCisrKyBiL2RyaXZlcnMvYmFzZS9maXJtd2FyZV9jbGFzcy5jCkBAIC00OSw2ICs0OSwxNCBAQAogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVvdXQ7CiB9OwogCisjaWZkZWYgQ09ORklHX0ZXX0xPQURFUgorZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fc3RhcnRfYnVpbHRpbl9md1tdOworZXh0ZXJuIHN0cnVjdCBidWlsdGluX2Z3IF9fZW5kX2J1aWx0aW5fZndbXTsKKyNlbHNlIC8qIE1vZHVsZSBjYXNlLiBBdm9pZCBpZmRlZnMgbGF0ZXI7IGl0J2xsIGFsbCBvcHRpbWlzZSBvdXQgKi8KK3N0YXRpYyBzdHJ1Y3QgYnVpbHRpbl9mdyAqX19zdGFydF9idWlsdGluX2Z3Oworc3RhdGljIHN0cnVjdCBidWlsdGluX2Z3ICpfX2VuZF9idWlsdGluX2Z3OworI2VuZGlmCisKIHN0YXRpYyB2b2lkCiBmd19sb2FkX2Fib3J0KHN0cnVjdCBmaXJtd2FyZV9wcml2ICpmd19wcml2KQogewpAQCAtMjU3LDcgKzI2NSw3IEBACiAJaWYgKHJldHZhbCkKIAkJZ290byBvdXQ7CiAKLQltZW1jcHkoZnctPmRhdGEgKyBvZmZzZXQsIGJ1ZmZlciwgY291bnQpOworCW1lbWNweSgodTggKilmdy0+ZGF0YSArIG9mZnNldCwgYnVmZmVyLCBjb3VudCk7CiAKIAlmdy0+c2l6ZSA9IG1heF90KHNpemVfdCwgb2Zmc2V0ICsgY291bnQsIGZ3LT5zaXplKTsKIAlyZXR2YWwgPSBjb3VudDsKQEAgLTM5MSwxMyArMzk5LDEyIEBACiAJc3RydWN0IGRldmljZSAqZl9kZXY7CiAJc3RydWN0IGZpcm13YXJlX3ByaXYgKmZ3X3ByaXY7CiAJc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZTsKKwlzdHJ1Y3QgYnVpbHRpbl9mdyAqYnVpbHRpbjsKIAlpbnQgcmV0dmFsOwogCiAJaWYgKCFmaXJtd2FyZV9wKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCXByaW50ayhLRVJOX0lORk8gImZpcm13YXJlOiByZXF1ZXN0aW5nICVzXG4iLCBuYW1lKTsKLQogCSpmaXJtd2FyZV9wID0gZmlybXdhcmUgPSBremFsbG9jKHNpemVvZigqZmlybXdhcmUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWZpcm13YXJlKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IGttYWxsb2Moc3RydWN0IGZpcm13YXJlKSBmYWlsZWRcbiIsCkBAIC00MDYsNiArNDEzLDIwIEBACiAJCWdvdG8gb3V0OwogCX0KIAorCWZvciAoYnVpbHRpbiA9IF9fc3RhcnRfYnVpbHRpbl9mdzsgYnVpbHRpbiAhPSBfX2VuZF9idWlsdGluX2Z3OworCSAgICAgYnVpbHRpbisrKSB7CisJCWlmIChzdHJjbXAobmFtZSwgYnVpbHRpbi0+bmFtZSkpCisJCQljb250aW51ZTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiZmlybXdhcmU6IHVzaW5nIGJ1aWx0LWluIGZpcm13YXJlICVzXG4iLAorCQkgICAgICAgbmFtZSk7CisJCWZpcm13YXJlLT5zaXplID0gYnVpbHRpbi0+c2l6ZTsKKwkJZmlybXdhcmUtPmRhdGEgPSBidWlsdGluLT5kYXRhOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAodWV2ZW50KQorCQlwcmludGsoS0VSTl9JTkZPICJmaXJtd2FyZTogcmVxdWVzdGluZyAlc1xuIiwgbmFtZSk7CisKIAlyZXR2YWwgPSBmd19zZXR1cF9kZXZpY2UoZmlybXdhcmUsICZmX2RldiwgbmFtZSwgZGV2aWNlLCB1ZXZlbnQpOwogCWlmIChyZXR2YWwpCiAJCWdvdG8gZXJyb3Jfa2ZyZWVfZnc7CkBAIC00NzMsOCArNDk0LDE2IEBACiB2b2lkCiByZWxlYXNlX2Zpcm13YXJlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CisJc3RydWN0IGJ1aWx0aW5fZncgKmJ1aWx0aW47CisKIAlpZiAoZncpIHsKKwkJZm9yIChidWlsdGluID0gX19zdGFydF9idWlsdGluX2Z3OyBidWlsdGluICE9IF9fZW5kX2J1aWx0aW5fZnc7CisJCSAgICAgYnVpbHRpbisrKSB7CisJCQlpZiAoZnctPmRhdGEgPT0gYnVpbHRpbi0+ZGF0YSkKKwkJCQlnb3RvIGZyZWVfZnc7CisJCX0KIAkJdmZyZWUoZnctPmRhdGEpOworCWZyZWVfZnc6CiAJCWtmcmVlKGZ3KTsKIAl9CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2Uvbm9kZS5jIGIvZHJpdmVycy9iYXNlL25vZGUuYwppbmRleCAzOWYzZDFiLi4wZjg2N2EwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2Uvbm9kZS5jCisrKyBiL2RyaXZlcnMvYmFzZS9ub2RlLmMKQEAgLTg0LDggKzg0LDggQEAKIAkJICAgICAgIG5pZCwgSyhpLnRvdGFscmFtKSwKIAkJICAgICAgIG5pZCwgSyhpLmZyZWVyYW0pLAogCQkgICAgICAgbmlkLCBLKGkudG90YWxyYW0gLSBpLmZyZWVyYW0pLAotCQkgICAgICAgbmlkLCBub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9BQ1RJVkUpLAotCQkgICAgICAgbmlkLCBub2RlX3BhZ2Vfc3RhdGUobmlkLCBOUl9JTkFDVElWRSksCisJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKG5pZCwgTlJfQUNUSVZFKSksCisJCSAgICAgICBuaWQsIEsobm9kZV9wYWdlX3N0YXRlKG5pZCwgTlJfSU5BQ1RJVkUpKSwKICNpZmRlZiBDT05GSUdfSElHSE1FTQogCQkgICAgICAgbmlkLCBLKGkudG90YWxoaWdoKSwKIAkJICAgICAgIG5pZCwgSyhpLmZyZWVoaWdoKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9wb3dlci90cmFjZS5jIGIvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKaW5kZXggMmI0YjM5Mi4uODdhN2YxZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKKysrIGIvZHJpdmVycy9iYXNlL3Bvd2VyL3RyYWNlLmMKQEAgLTE1Myw3ICsxNTMsNyBAQAogICogaXQncyBub3QgYW55IGd1YXJhbnRlZSwgYnV0IGl0J3MgYSBoaWdoIF9saWtlbGlob29kXyB0aGF0CiAgKiB0aGUgbWF0Y2ggaXMgdmFsaWQpLgogICovCi12b2lkIGdlbmVyYXRlX3Jlc3VtZV90cmFjZSh2b2lkICp0cmFjZWRhdGEsIHVuc2lnbmVkIGludCB1c2VyKQordm9pZCBnZW5lcmF0ZV9yZXN1bWVfdHJhY2UoY29uc3Qgdm9pZCAqdHJhY2VkYXRhLCB1bnNpZ25lZCBpbnQgdXNlcikKIHsKIAl1bnNpZ25lZCBzaG9ydCBsaW5lbm8gPSAqKHVuc2lnbmVkIHNob3J0ICopdHJhY2VkYXRhOwogCWNvbnN0IGNoYXIgKmZpbGUgPSAqKGNvbnN0IGNoYXIgKiopKHRyYWNlZGF0YSArIDIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL3RvcG9sb2d5LmMgYi9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYwppbmRleCBmZGY0MDQ0Li4xZWZlMTYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYworKysgYi9kcml2ZXJzL2Jhc2UvdG9wb2xvZ3kuYwpAQCAtNDAsNiArNDAsNyBAQAogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCB0b3BvbG9neV8jI25hbWUoY3B1KSk7CVwKIH0KIAorI2lmIGRlZmluZWQodG9wb2xvZ3lfdGhyZWFkX3NpYmxpbmdzKSB8fCBkZWZpbmVkKHRvcG9sb2d5X2NvcmVfc2libGluZ3MpCiBzdGF0aWMgc3NpemVfdCBzaG93X2NwdW1hcChpbnQgdHlwZSwgY3B1bWFza190ICptYXNrLCBjaGFyICpidWYpCiB7CiAJcHRyZGlmZl90IGxlbiA9IFBUUl9BTElHTihidWYgKyBQQUdFX1NJWkUgLSAxLCBQQUdFX1NJWkUpIC0gYnVmOwpAQCAtNTQsMjEgKzU1LDQxIEBACiAJfQogCXJldHVybiBuOwogfQorI2VuZGlmCiAKKyNpZmRlZiBhcmNoX3Byb3ZpZGVzX3RvcG9sb2d5X3BvaW50ZXJzCiAjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X21hcChuYW1lKQkJCQkJXAotc3RhdGljIGlubGluZSBzc2l6ZV90IHNob3dfIyNuYW1lKHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQlcCiB7CQkJCQkJCQkJXAogCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAogCXJldHVybiBzaG93X2NwdW1hcCgwLCAmKHRvcG9sb2d5XyMjbmFtZShjcHUpKSwgYnVmKTsJCVwKIH0KIAogI2RlZmluZSBkZWZpbmVfc2libGluZ3Nfc2hvd19saXN0KG5hbWUpCQkJCQlcCi1zdGF0aWMgaW5saW5lIHNzaXplX3Qgc2hvd18jI25hbWUjI19saXN0KHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikgXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUjI19saXN0KHN0cnVjdCBzeXNfZGV2aWNlICpkZXYsIGNoYXIgKmJ1ZikgXAogewkJCQkJCQkJCVwKIAl1bnNpZ25lZCBpbnQgY3B1ID0gZGV2LT5pZDsJCQkJCVwKIAlyZXR1cm4gc2hvd19jcHVtYXAoMSwgJih0b3BvbG9neV8jI25hbWUoY3B1KSksIGJ1Zik7CQlcCiB9CiAKKyNlbHNlCisjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X21hcChuYW1lKQkJCQkJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQlcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAorCWNwdW1hc2tfdCBtYXNrID0gdG9wb2xvZ3lfIyNuYW1lKGNwdSk7CQkJCVwKKwlyZXR1cm4gc2hvd19jcHVtYXAoMCwgJm1hc2ssIGJ1Zik7CQkJCVwKK30KKworI2RlZmluZSBkZWZpbmVfc2libGluZ3Nfc2hvd19saXN0KG5hbWUpCQkJCQlcCitzdGF0aWMgc3NpemVfdCBzaG93XyMjbmFtZSMjX2xpc3Qoc3RydWN0IHN5c19kZXZpY2UgKmRldiwgY2hhciAqYnVmKSBcCit7CQkJCQkJCQkJXAorCXVuc2lnbmVkIGludCBjcHUgPSBkZXYtPmlkOwkJCQkJXAorCWNwdW1hc2tfdCBtYXNrID0gdG9wb2xvZ3lfIyNuYW1lKGNwdSk7CQkJCVwKKwlyZXR1cm4gc2hvd19jcHVtYXAoMSwgJm1hc2ssIGJ1Zik7CQkJCVwKK30KKyNlbmRpZgorCiAjZGVmaW5lIGRlZmluZV9zaWJsaW5nc19zaG93X2Z1bmMobmFtZSkJCVwKIAlkZWZpbmVfc2libGluZ3Nfc2hvd19tYXAobmFtZSk7IGRlZmluZV9zaWJsaW5nc19zaG93X2xpc3QobmFtZSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9EQUM5NjAuYyBiL2RyaXZlcnMvYmxvY2svREFDOTYwLmMKaW5kZXggY2QwMzQ3My4uYTAwMmEzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9EQUM5NjAuYworKysgYi9kcml2ZXJzL2Jsb2NrL0RBQzk2MC5jCkBAIC02NjI4LDE1ICs2NjI4LDE4IEBACiAgKiBEQUM5NjBfZ2FtX2lvY3RsIGlzIHRoZSBpb2N0bCBmdW5jdGlvbiBmb3IgcGVyZm9ybWluZyBSQUlEIG9wZXJhdGlvbnMuCiAqLwogCi1zdGF0aWMgaW50IERBQzk2MF9nYW1faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkgICAgdW5zaWduZWQgaW50IFJlcXVlc3QsIHVuc2lnbmVkIGxvbmcgQXJndW1lbnQpCitzdGF0aWMgbG9uZyBEQUM5NjBfZ2FtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgUmVxdWVzdCwKKwkJCQkJCXVuc2lnbmVkIGxvbmcgQXJndW1lbnQpCiB7Ci0gIGludCBFcnJvckNvZGUgPSAwOworICBsb25nIEVycm9yQ29kZSA9IDA7CiAgIGlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkgcmV0dXJuIC1FQUNDRVM7CisKKyAgbG9ja19rZXJuZWwoKTsKICAgc3dpdGNoIChSZXF1ZXN0KQogICAgIHsKICAgICBjYXNlIERBQzk2MF9JT0NUTF9HRVRfQ09OVFJPTExFUl9DT1VOVDoKLSAgICAgIHJldHVybiBEQUM5NjBfQ29udHJvbGxlckNvdW50OworICAgICAgRXJyb3JDb2RlID0gREFDOTYwX0NvbnRyb2xsZXJDb3VudDsKKyAgICAgIGJyZWFrOwogICAgIGNhc2UgREFDOTYwX0lPQ1RMX0dFVF9DT05UUk9MTEVSX0lORk86CiAgICAgICB7CiAJREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QgX191c2VyICpVc2VyU3BhY2VDb250cm9sbGVySW5mbyA9CkBAIC02NjQ0LDE1ICs2NjQ3LDIwIEBACiAJREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QgQ29udHJvbGxlckluZm87CiAJREFDOTYwX0NvbnRyb2xsZXJfVCAqQ29udHJvbGxlcjsKIAlpbnQgQ29udHJvbGxlck51bWJlcjsKLQlpZiAoVXNlclNwYWNlQ29udHJvbGxlckluZm8gPT0gTlVMTCkgcmV0dXJuIC1FSU5WQUw7Ci0JRXJyb3JDb2RlID0gZ2V0X3VzZXIoQ29udHJvbGxlck51bWJlciwKKwlpZiAoVXNlclNwYWNlQ29udHJvbGxlckluZm8gPT0gTlVMTCkKKwkJRXJyb3JDb2RlID0gLUVJTlZBTDsKKwllbHNlIEVycm9yQ29kZSA9IGdldF91c2VyKENvbnRyb2xsZXJOdW1iZXIsCiAJCQkgICAgICZVc2VyU3BhY2VDb250cm9sbGVySW5mby0+Q29udHJvbGxlck51bWJlcik7Ci0JaWYgKEVycm9yQ29kZSAhPSAwKSByZXR1cm4gRXJyb3JDb2RlOworCWlmIChFcnJvckNvZGUgIT0gMCkKKwkJYnJlYWs7OworCUVycm9yQ29kZSA9IC1FTlhJTzsKIAlpZiAoQ29udHJvbGxlck51bWJlciA8IDAgfHwKLQkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKQotCSAgcmV0dXJuIC1FTlhJTzsKKwkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKSB7CisJICBicmVhazsKKwl9CiAJQ29udHJvbGxlciA9IERBQzk2MF9Db250cm9sbGVyc1tDb250cm9sbGVyTnVtYmVyXTsKLQlpZiAoQ29udHJvbGxlciA9PSBOVUxMKSByZXR1cm4gLUVOWElPOworCWlmIChDb250cm9sbGVyID09IE5VTEwpCisJCWJyZWFrOzsKIAltZW1zZXQoJkNvbnRyb2xsZXJJbmZvLCAwLCBzaXplb2YoREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QpKTsKIAlDb250cm9sbGVySW5mby5Db250cm9sbGVyTnVtYmVyID0gQ29udHJvbGxlck51bWJlcjsKIAlDb250cm9sbGVySW5mby5GaXJtd2FyZVR5cGUgPSBDb250cm9sbGVyLT5GaXJtd2FyZVR5cGU7CkBAIC02NjY1LDggKzY2NzMsOSBAQAogCUNvbnRyb2xsZXJJbmZvLlBDSV9BZGRyZXNzID0gQ29udHJvbGxlci0+UENJX0FkZHJlc3M7CiAJc3RyY3B5KENvbnRyb2xsZXJJbmZvLk1vZGVsTmFtZSwgQ29udHJvbGxlci0+TW9kZWxOYW1lKTsKIAlzdHJjcHkoQ29udHJvbGxlckluZm8uRmlybXdhcmVWZXJzaW9uLCBDb250cm9sbGVyLT5GaXJtd2FyZVZlcnNpb24pOwotCXJldHVybiAoY29weV90b191c2VyKFVzZXJTcGFjZUNvbnRyb2xsZXJJbmZvLCAmQ29udHJvbGxlckluZm8sCisJRXJyb3JDb2RlID0gKGNvcHlfdG9fdXNlcihVc2VyU3BhY2VDb250cm9sbGVySW5mbywgJkNvbnRyb2xsZXJJbmZvLAogCQkJICAgICBzaXplb2YoREFDOTYwX0NvbnRyb2xsZXJJbmZvX1QpKSA/IC1FRkFVTFQgOiAwKTsKKwlicmVhazsKICAgICAgIH0KICAgICBjYXNlIERBQzk2MF9JT0NUTF9WMV9FWEVDVVRFX0NPTU1BTkQ6CiAgICAgICB7CkBAIC02Njg0LDMwICs2NjkzLDM5IEBACiAJaW50IENvbnRyb2xsZXJOdW1iZXIsIERhdGFUcmFuc2Zlckxlbmd0aDsKIAl1bnNpZ25lZCBjaGFyICpEYXRhVHJhbnNmZXJCdWZmZXIgPSBOVUxMOwogCWRtYV9hZGRyX3QgRGF0YVRyYW5zZmVyQnVmZmVyRE1BOwotCWlmIChVc2VyU3BhY2VVc2VyQ29tbWFuZCA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoVXNlclNwYWNlVXNlckNvbW1hbmQgPT0gTlVMTCkgeworCQlFcnJvckNvZGUgPSAtRUlOVkFMOworCQlicmVhazsKKwl9CiAJaWYgKGNvcHlfZnJvbV91c2VyKCZVc2VyQ29tbWFuZCwgVXNlclNwYWNlVXNlckNvbW1hbmQsCiAJCQkJICAgc2l6ZW9mKERBQzk2MF9WMV9Vc2VyQ29tbWFuZF9UKSkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMWE7CisJCWJyZWFrOwogCX0KIAlDb250cm9sbGVyTnVtYmVyID0gVXNlckNvbW1hbmQuQ29udHJvbGxlck51bWJlcjsKKyAgICAJRXJyb3JDb2RlID0gLUVOWElPOwogCWlmIChDb250cm9sbGVyTnVtYmVyIDwgMCB8fAogCSAgICBDb250cm9sbGVyTnVtYmVyID4gREFDOTYwX0NvbnRyb2xsZXJDb3VudCAtIDEpCi0JICByZXR1cm4gLUVOWElPOworCSAgICAJYnJlYWs7CiAJQ29udHJvbGxlciA9IERBQzk2MF9Db250cm9sbGVyc1tDb250cm9sbGVyTnVtYmVyXTsKLQlpZiAoQ29udHJvbGxlciA9PSBOVUxMKSByZXR1cm4gLUVOWElPOwotCWlmIChDb250cm9sbGVyLT5GaXJtd2FyZVR5cGUgIT0gREFDOTYwX1YxX0NvbnRyb2xsZXIpIHJldHVybiAtRUlOVkFMOworCWlmIChDb250cm9sbGVyID09IE5VTEwpCisJCWJyZWFrOworCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjFfQ29udHJvbGxlcikKKwkJYnJlYWs7CiAJQ29tbWFuZE9wY29kZSA9IFVzZXJDb21tYW5kLkNvbW1hbmRNYWlsYm94LkNvbW1vbi5Db21tYW5kT3Bjb2RlOwogCURhdGFUcmFuc2Zlckxlbmd0aCA9IFVzZXJDb21tYW5kLkRhdGFUcmFuc2Zlckxlbmd0aDsKLQlpZiAoQ29tbWFuZE9wY29kZSAmIDB4ODApIHJldHVybiAtRUlOVkFMOworCWlmIChDb21tYW5kT3Bjb2RlICYgMHg4MCkKKwkJYnJlYWs7CiAJaWYgKENvbW1hbmRPcGNvZGUgPT0gREFDOTYwX1YxX0RDREIpCiAJICB7CiAJICAgIGlmIChjb3B5X2Zyb21fdXNlcigmRENEQiwgVXNlckNvbW1hbmQuRENEQiwKIAkJCSAgICAgICBzaXplb2YoREFDOTYwX1YxX0RDREJfVCkpKSB7CiAJCUVycm9yQ29kZSA9IC1FRkFVTFQ7Ci0JCWdvdG8gRmFpbHVyZTFhOworCQlicmVhazsKIAkgICAgfQotCSAgICBpZiAoRENEQi5DaGFubmVsID49IERBQzk2MF9WMV9NYXhDaGFubmVscykgcmV0dXJuIC1FSU5WQUw7CisJICAgIGlmIChEQ0RCLkNoYW5uZWwgPj0gREFDOTYwX1YxX01heENoYW5uZWxzKQorCSAgICAJCWJyZWFrOwogCSAgICBpZiAoISgoRGF0YVRyYW5zZmVyTGVuZ3RoID09IDAgJiYKIAkJICAgRENEQi5EaXJlY3Rpb24KIAkJICAgPT0gREFDOTYwX1YxX0RDREJfTm9EYXRhVHJhbnNmZXIpIHx8CkBAIC02NzE3LDM4ICs2NzM1LDM3IEBACiAJCSAgKERhdGFUcmFuc2Zlckxlbmd0aCA8IDAgJiYKIAkJICAgRENEQi5EaXJlY3Rpb24KIAkJICAgPT0gREFDOTYwX1YxX0RDREJfRGF0YVRyYW5zZmVyU3lzdGVtVG9EZXZpY2UpKSkKLQkgICAgICByZXR1cm4gLUVJTlZBTDsKKwkJICAgCWJyZWFrOwogCSAgICBpZiAoKChEQ0RCLlRyYW5zZmVyTGVuZ3RoSGlnaDQgPDwgMTYpIHwgRENEQi5UcmFuc2Zlckxlbmd0aCkKIAkJIT0gYWJzKERhdGFUcmFuc2Zlckxlbmd0aCkpCi0JICAgICAgcmV0dXJuIC1FSU5WQUw7CisJCQlicmVhazsKIAkgICAgRENEQl9JT0JVRiA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCXNpemVvZihEQUM5NjBfVjFfRENEQl9UKSwgJkRDREJfSU9CVUZETUEpOwotCSAgICBpZiAoRENEQl9JT0JVRiA9PSBOVUxMKQotCQkJcmV0dXJuIC1FTk9NRU07CisJICAgIGlmIChEQ0RCX0lPQlVGID09IE5VTEwpIHsKKwkgICAgCQlFcnJvckNvZGUgPSAtRU5PTUVNOworCQkJYnJlYWs7CisJCX0KIAkgIH0KKwlFcnJvckNvZGUgPSAtRU5PTUVNOwogCWlmIChEYXRhVHJhbnNmZXJMZW5ndGggPiAwKQogCSAgewogCSAgICBEYXRhVHJhbnNmZXJCdWZmZXIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsCiAJCQkJRGF0YVRyYW5zZmVyTGVuZ3RoLCAmRGF0YVRyYW5zZmVyQnVmZmVyRE1BKTsKLQkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKSB7Ci0JCUVycm9yQ29kZSA9IC1FTk9NRU07Ci0JCWdvdG8gRmFpbHVyZTE7Ci0JICAgIH0KKwkgICAgaWYgKERhdGFUcmFuc2ZlckJ1ZmZlciA9PSBOVUxMKQorCSAgICAJYnJlYWs7CiAJICAgIG1lbXNldChEYXRhVHJhbnNmZXJCdWZmZXIsIDAsIERhdGFUcmFuc2Zlckxlbmd0aCk7CiAJICB9CiAJZWxzZSBpZiAoRGF0YVRyYW5zZmVyTGVuZ3RoIDwgMCkKIAkgIHsKIAkgICAgRGF0YVRyYW5zZmVyQnVmZmVyID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLAogCQkJCS1EYXRhVHJhbnNmZXJMZW5ndGgsICZEYXRhVHJhbnNmZXJCdWZmZXJETUEpOwotCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpIHsKLQkJRXJyb3JDb2RlID0gLUVOT01FTTsKLQkJZ290byBGYWlsdXJlMTsKLQkgICAgfQorCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpCisJICAgIAlicmVhazsKIAkgICAgaWYgKGNvcHlfZnJvbV91c2VyKERhdGFUcmFuc2ZlckJ1ZmZlciwKIAkJCSAgICAgICBVc2VyQ29tbWFuZC5EYXRhVHJhbnNmZXJCdWZmZXIsCiAJCQkgICAgICAgLURhdGFUcmFuc2Zlckxlbmd0aCkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMTsKKwkJYnJlYWs7CiAJICAgIH0KIAkgIH0KIAlpZiAoQ29tbWFuZE9wY29kZSA9PSBEQUM5NjBfVjFfRENEQikKQEAgLTY4MjUsOCArNjg0Miw3IEBACiAJaWYgKERDREJfSU9CVUYgIT0gTlVMTCkKIAkgIHBjaV9mcmVlX2NvbnNpc3RlbnQoQ29udHJvbGxlci0+UENJRGV2aWNlLCBzaXplb2YoREFDOTYwX1YxX0RDREJfVCksCiAJCQlEQ0RCX0lPQlVGLCBEQ0RCX0lPQlVGRE1BKTsKLSAgICAgIEZhaWx1cmUxYToKLQlyZXR1cm4gRXJyb3JDb2RlOworICAgICAgCWJyZWFrOwogICAgICAgfQogICAgIGNhc2UgREFDOTYwX0lPQ1RMX1YyX0VYRUNVVEVfQ09NTUFORDoKICAgICAgIHsKQEAgLTY4NDQsMzIgKzY4NjAsNDMgQEAKIAlkbWFfYWRkcl90IERhdGFUcmFuc2ZlckJ1ZmZlckRNQTsKIAl1bnNpZ25lZCBjaGFyICpSZXF1ZXN0U2Vuc2VCdWZmZXIgPSBOVUxMOwogCWRtYV9hZGRyX3QgUmVxdWVzdFNlbnNlQnVmZmVyRE1BOwotCWlmIChVc2VyU3BhY2VVc2VyQ29tbWFuZCA9PSBOVUxMKSByZXR1cm4gLUVJTlZBTDsKKworCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJaWYgKFVzZXJTcGFjZVVzZXJDb21tYW5kID09IE5VTEwpCisJCWJyZWFrOwogCWlmIChjb3B5X2Zyb21fdXNlcigmVXNlckNvbW1hbmQsIFVzZXJTcGFjZVVzZXJDb21tYW5kLAogCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9Vc2VyQ29tbWFuZF9UKSkpIHsKIAkJRXJyb3JDb2RlID0gLUVGQVVMVDsKLQkJZ290byBGYWlsdXJlMmE7CisJCWJyZWFrOwogCX0KKwlFcnJvckNvZGUgPSAtRU5YSU87CiAJQ29udHJvbGxlck51bWJlciA9IFVzZXJDb21tYW5kLkNvbnRyb2xsZXJOdW1iZXI7CiAJaWYgKENvbnRyb2xsZXJOdW1iZXIgPCAwIHx8CiAJICAgIENvbnRyb2xsZXJOdW1iZXIgPiBEQUM5NjBfQ29udHJvbGxlckNvdW50IC0gMSkKLQkgIHJldHVybiAtRU5YSU87CisJICAgIAlicmVhazsKIAlDb250cm9sbGVyID0gREFDOTYwX0NvbnRyb2xsZXJzW0NvbnRyb2xsZXJOdW1iZXJdOwotCWlmIChDb250cm9sbGVyID09IE5VTEwpIHJldHVybiAtRU5YSU87Ci0JaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjJfQ29udHJvbGxlcikgcmV0dXJuIC1FSU5WQUw7CisJaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkKKwkJYnJlYWs7CisJaWYgKENvbnRyb2xsZXItPkZpcm13YXJlVHlwZSAhPSBEQUM5NjBfVjJfQ29udHJvbGxlcil7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlEYXRhVHJhbnNmZXJMZW5ndGggPSBVc2VyQ29tbWFuZC5EYXRhVHJhbnNmZXJMZW5ndGg7CisgICAgCUVycm9yQ29kZSA9IC1FTk9NRU07CiAJaWYgKERhdGFUcmFuc2Zlckxlbmd0aCA+IDApCiAJICB7CiAJICAgIERhdGFUcmFuc2ZlckJ1ZmZlciA9IHBjaV9hbGxvY19jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwKIAkJCQlEYXRhVHJhbnNmZXJMZW5ndGgsICZEYXRhVHJhbnNmZXJCdWZmZXJETUEpOwotCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpIHJldHVybiAtRU5PTUVNOworCSAgICBpZiAoRGF0YVRyYW5zZmVyQnVmZmVyID09IE5VTEwpCisJICAgIAlicmVhazsKIAkgICAgbWVtc2V0KERhdGFUcmFuc2ZlckJ1ZmZlciwgMCwgRGF0YVRyYW5zZmVyTGVuZ3RoKTsKIAkgIH0KIAllbHNlIGlmIChEYXRhVHJhbnNmZXJMZW5ndGggPCAwKQogCSAgewogCSAgICBEYXRhVHJhbnNmZXJCdWZmZXIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChDb250cm9sbGVyLT5QQ0lEZXZpY2UsCiAJCQkJLURhdGFUcmFuc2Zlckxlbmd0aCwgJkRhdGFUcmFuc2ZlckJ1ZmZlckRNQSk7Ci0JICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkgcmV0dXJuIC1FTk9NRU07CisJICAgIGlmIChEYXRhVHJhbnNmZXJCdWZmZXIgPT0gTlVMTCkKKwkgICAgCWJyZWFrOwogCSAgICBpZiAoY29weV9mcm9tX3VzZXIoRGF0YVRyYW5zZmVyQnVmZmVyLAogCQkJICAgICAgIFVzZXJDb21tYW5kLkRhdGFUcmFuc2ZlckJ1ZmZlciwKIAkJCSAgICAgICAtRGF0YVRyYW5zZmVyTGVuZ3RoKSkgewpAQCAtNjk3OSw4ICs3MDA2LDcgQEAKIAlpZiAoUmVxdWVzdFNlbnNlQnVmZmVyICE9IE5VTEwpCiAJICBwY2lfZnJlZV9jb25zaXN0ZW50KENvbnRyb2xsZXItPlBDSURldmljZSwgUmVxdWVzdFNlbnNlTGVuZ3RoLAogCQlSZXF1ZXN0U2Vuc2VCdWZmZXIsIFJlcXVlc3RTZW5zZUJ1ZmZlckRNQSk7Ci0gICAgICBGYWlsdXJlMmE6Ci0JcmV0dXJuIEVycm9yQ29kZTsKKyAgICAgICAgYnJlYWs7CiAgICAgICB9CiAgICAgY2FzZSBEQUM5NjBfSU9DVExfVjJfR0VUX0hFQUxUSF9TVEFUVVM6CiAgICAgICB7CkBAIC02OTkwLDIxICs3MDE2LDMzIEBACiAJREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UIEhlYWx0aFN0YXR1c0J1ZmZlcjsKIAlEQUM5NjBfQ29udHJvbGxlcl9UICpDb250cm9sbGVyOwogCWludCBDb250cm9sbGVyTnVtYmVyOwotCWlmIChVc2VyU3BhY2VHZXRIZWFsdGhTdGF0dXMgPT0gTlVMTCkgcmV0dXJuIC1FSU5WQUw7CisJaWYgKFVzZXJTcGFjZUdldEhlYWx0aFN0YXR1cyA9PSBOVUxMKSB7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlpZiAoY29weV9mcm9tX3VzZXIoJkdldEhlYWx0aFN0YXR1cywgVXNlclNwYWNlR2V0SGVhbHRoU3RhdHVzLAotCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9HZXRIZWFsdGhTdGF0dXNfVCkpKQotCQlyZXR1cm4gLUVGQVVMVDsKKwkJCSAgIHNpemVvZihEQUM5NjBfVjJfR2V0SGVhbHRoU3RhdHVzX1QpKSkgeworCQlFcnJvckNvZGUgPSAtRUZBVUxUOworCQlicmVhazsKKwl9CisJRXJyb3JDb2RlID0gLUVOWElPOwogCUNvbnRyb2xsZXJOdW1iZXIgPSBHZXRIZWFsdGhTdGF0dXMuQ29udHJvbGxlck51bWJlcjsKIAlpZiAoQ29udHJvbGxlck51bWJlciA8IDAgfHwKIAkgICAgQ29udHJvbGxlck51bWJlciA+IERBQzk2MF9Db250cm9sbGVyQ291bnQgLSAxKQotCSAgcmV0dXJuIC1FTlhJTzsKKwkJICAgIGJyZWFrOwogCUNvbnRyb2xsZXIgPSBEQUM5NjBfQ29udHJvbGxlcnNbQ29udHJvbGxlck51bWJlcl07Ci0JaWYgKENvbnRyb2xsZXIgPT0gTlVMTCkgcmV0dXJuIC1FTlhJTzsKLQlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoQ29udHJvbGxlciA9PSBOVUxMKQorCQlicmVhazsKKwlpZiAoQ29udHJvbGxlci0+RmlybXdhcmVUeXBlICE9IERBQzk2MF9WMl9Db250cm9sbGVyKSB7CisJCUVycm9yQ29kZSA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KIAlpZiAoY29weV9mcm9tX3VzZXIoJkhlYWx0aFN0YXR1c0J1ZmZlciwKIAkJCSAgIEdldEhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0dXNCdWZmZXIsCi0JCQkgICBzaXplb2YoREFDOTYwX1YyX0hlYWx0aFN0YXR1c0J1ZmZlcl9UKSkpCi0JCXJldHVybiAtRUZBVUxUOworCQkJICAgc2l6ZW9mKERBQzk2MF9WMl9IZWFsdGhTdGF0dXNCdWZmZXJfVCkpKSB7CisJCUVycm9yQ29kZSA9IC1FRkFVTFQ7CisJCWJyZWFrOworCX0KIAl3aGlsZSAoQ29udHJvbGxlci0+VjIuSGVhbHRoU3RhdHVzQnVmZmVyLT5TdGF0dXNDaGFuZ2VDb3VudGVyCiAJICAgICAgID09IEhlYWx0aFN0YXR1c0J1ZmZlci5TdGF0dXNDaGFuZ2VDb3VudGVyICYmCiAJICAgICAgIENvbnRyb2xsZXItPlYyLkhlYWx0aFN0YXR1c0J1ZmZlci0+TmV4dEV2ZW50U2VxdWVuY2VOdW1iZXIKQEAgLTcwMTIsMjEgKzcwNTAsMjggQEAKIAkgIHsKIAkgICAgaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0KCZDb250cm9sbGVyLT5IZWFsdGhTdGF0dXNXYWl0UXVldWUsCiAJCQkJCSAgIERBQzk2MF9Nb25pdG9yaW5nVGltZXJJbnRlcnZhbCk7Ci0JICAgIGlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgcmV0dXJuIC1FSU5UUjsKKwkgICAgaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7CisJICAgIAlFcnJvckNvZGUgPSAtRUlOVFI7CisJICAgIAlicmVhazsKKwkgICAgfQogCSAgfQogCWlmIChjb3B5X3RvX3VzZXIoR2V0SGVhbHRoU3RhdHVzLkhlYWx0aFN0YXR1c0J1ZmZlciwKIAkJCSBDb250cm9sbGVyLT5WMi5IZWFsdGhTdGF0dXNCdWZmZXIsCiAJCQkgc2l6ZW9mKERBQzk2MF9WMl9IZWFsdGhTdGF0dXNCdWZmZXJfVCkpKQotCQlyZXR1cm4gLUVGQVVMVDsKLQlyZXR1cm4gMDsKKwkJRXJyb3JDb2RlID0gLUVGQVVMVDsKKwllbHNlCisJCUVycm9yQ29kZSA9ICAwOwogICAgICAgfQorICAgICAgZGVmYXVsdDoKKwlFcnJvckNvZGUgPSAtRU5PVFRZOwogICAgIH0KLSAgcmV0dXJuIC1FSU5WQUw7CisgIHVubG9ja19rZXJuZWwoKTsKKyAgcmV0dXJuIEVycm9yQ29kZTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgREFDOTYwX2dhbV9mb3BzID0gewogCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkuaW9jdGwJCT0gREFDOTYwX2dhbV9pb2N0bAorCS51bmxvY2tlZF9pb2N0bAk9IERBQzk2MF9nYW1faW9jdGwKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgbWlzY2RldmljZSBEQUM5NjBfZ2FtX2RldiA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svYW9lL2FvZWNoci5jIGIvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKaW5kZXggZThlNjBlNy4uZDFkZTY4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKKysrIGIvZHJpdmVycy9ibG9jay9hb2UvYW9lY2hyLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8bGludXgvaGRyZWcuaD4KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSAiYW9lLmgiCiAKIGVudW0gewpAQCAtMTc0LDEyICsxNzUsMTYgQEAKIHsKIAlpbnQgbiwgaTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbiA9IGltaW5vcihpbm9kZSk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKikgKHVuc2lnbmVkIGxvbmcpIG47CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShjaGFyZGV2cyk7ICsraSkKLQkJaWYgKGNoYXJkZXZzW2ldLm1pbm9yID09IG4pCisJCWlmIChjaGFyZGV2c1tpXS5taW5vciA9PSBuKSB7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gMDsKKwkJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9hb2UvYW9lY21kLmMgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYwppbmRleCA0MWY4MThiLi4yZjE3NDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYworKysgYi9kcml2ZXJzL2Jsb2NrL2FvZS9hb2VjbWQuYwpAQCAtMTAwMyw3ICsxMDAzLDcgQEAKIAkgKiBFbm91Z2ggcGVvcGxlIGhhdmUgdGhlaXIgZGlwIHN3aXRjaGVzIHNldCBiYWNrd2FyZHMgdG8KIAkgKiB3YXJyYW50IGEgbG91ZCBtZXNzYWdlIGZvciB0aGlzIHNwZWNpYWwgY2FzZS4KIAkgKi8KLQlhb2VtYWpvciA9IGJlMTZfdG9fY3B1KGdldF91bmFsaWduZWQoJmgtPm1ham9yKSk7CisJYW9lbWFqb3IgPSBnZXRfdW5hbGlnbmVkX2JlMTYoJmgtPm1ham9yKTsKIAlpZiAoYW9lbWFqb3IgPT0gMHhmZmYpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJhb2U6IFdhcm5pbmc6IHNoZWxmIGFkZHJlc3MgaXMgYWxsIG9uZXMuICAiCiAJCQkiQ2hlY2sgc2hlbGYgZGlwIHN3aXRjaGVzLlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2JyZC5jIGIvZHJpdmVycy9ibG9jay9icmQuYwppbmRleCBhMTk2ZWY3Li4yNGI5N2IwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL2JyZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svYnJkLmMKQEAgLTM5Nyw2ICszOTcsNyBAQAogTU9EVUxFX1BBUk1fREVTQyhtYXhfcGFydCwgIk1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgcGVyIFJBTSBkaXNrIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQUxJQVNfQkxPQ0tERVZfTUFKT1IoUkFNRElTS19NQUpPUik7CitNT0RVTEVfQUxJQVMoInJkIik7CiAKICNpZm5kZWYgTU9EVUxFCiAvKiBMZWdhY3kgYm9vdCBvcHRpb25zIC0gbm9ubW9kdWxhciAqLwpAQCAtNDQ3LDYgKzQ0OCw3IEBACiAJZGlzay0+Zm9wcwkJPSAmYnJkX2ZvcHM7CiAJZGlzay0+cHJpdmF0ZV9kYXRhCT0gYnJkOwogCWRpc2stPnF1ZXVlCQk9IGJyZC0+YnJkX3F1ZXVlOworCWRpc2stPmZsYWdzIHw9IEdFTkhEX0ZMX1NVUFBSRVNTX1BBUlRJVElPTl9JTkZPOwogCXNwcmludGYoZGlzay0+ZGlza19uYW1lLCAicmFtJWQiLCBpKTsKIAlzZXRfY2FwYWNpdHkoZGlzaywgcmRfc2l6ZSAqIDIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMgYi9kcml2ZXJzL2Jsb2NrL2NjaXNzLmMKaW5kZXggZTMzNmIwNS4uZDgxNjMyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9jY2lzcy5jCisrKyBiL2RyaXZlcnMvYmxvY2svY2Npc3MuYwpAQCAtNTMsMTUgKzUzLDE2IEBACiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KIAogI2RlZmluZSBDQ0lTU19EUklWRVJfVkVSU0lPTihtYWosbWluLHN1Ym1pbikgKChtYWo8PDE2KXwobWluPDw4KXwoc3VibWluKSkKLSNkZWZpbmUgRFJJVkVSX05BTUUgIkhQIENJU1MgRHJpdmVyICh2IDMuNi4xNCkiCi0jZGVmaW5lIERSSVZFUl9WRVJTSU9OIENDSVNTX0RSSVZFUl9WRVJTSU9OKDMsNiwxNCkKKyNkZWZpbmUgRFJJVkVSX05BTUUgIkhQIENJU1MgRHJpdmVyICh2IDMuNi4yMCkiCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OIENDSVNTX0RSSVZFUl9WRVJTSU9OKDMsIDYsIDIwKQogCiAvKiBFbWJlZGRlZCBtb2R1bGUgZG9jdW1lbnRhdGlvbiBtYWNyb3MgLSBzZWUgbW9kdWxlcy5oICovCiBNT0RVTEVfQVVUSE9SKCJIZXdsZXR0LVBhY2thcmQgQ29tcGFueSIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIEhQIENvbnRyb2xsZXIgU0E1eHh4IFNBNnh4eCB2ZXJzaW9uIDMuNi4xNCIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJEcml2ZXIgZm9yIEhQIFNtYXJ0IEFycmF5IENvbnRyb2xsZXJzIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgiSFAgU0E1aSBTQTVpKyBTQTUzMiBTQTUzMDAgU0E1MzEyIFNBNjQxIFNBNjQyIFNBNjQwMCIKLQkJCSIgU0E2aSBQNjAwIFA4MDAgUDQwMCBQNDAwaSBFMjAwIEUyMDBpIEU1MDAiKTsKLU1PRFVMRV9WRVJTSU9OKCIzLjYuMTQiKTsKKwkJCSIgU0E2aSBQNjAwIFA4MDAgUDQwMCBQNDAwaSBFMjAwIEUyMDBpIEU1MDAgUDcwMG0iCisJCQkiIFNtYXJ0IEFycmF5IEcyIFNlcmllcyBTQVMvU0FUQSBDb250cm9sbGVycyIpOworTU9EVUxFX1ZFUlNJT04oIjMuNi4yMCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCiAjaW5jbHVkZSAiY2Npc3NfY21kLmgiCkBAIC05MCw2ICs5MSwxMSBAQAogCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRCwgICAgIDB4MTAzQywgMHgzMjE1fSwKIAl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0MsICAgICAweDEwM0MsIDB4MzIzN30sCiAJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NDLCAgICAgMHgxMDNDLCAweDMyM0R9LAorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRSwgICAgIDB4MTAzQywgMHgzMjQxfSwKKwl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0UsICAgICAweDEwM0MsIDB4MzI0M30sCisJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NFLCAgICAgMHgxMDNDLCAweDMyNDV9LAorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRSwgICAgIDB4MTAzQywgMHgzMjQ3fSwKKwl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0UsICAgICAweDEwM0MsIDB4MzI0OX0sCiAJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfQU5ZX0lELAlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELAogCQlQQ0lfQ0xBU1NfU1RPUkFHRV9SQUlEIDw8IDgsIDB4ZmZmZiA8PCA4LCAwfSwKIAl7MCx9CkBAIC0xMDAsMzAgKzEwNiwzNCBAQAogLyogIGJvYXJkX2lkID0gU3Vic3lzdGVtIERldmljZSBJRCAmIFZlbmRvciBJRAogICogIHByb2R1Y3QgPSBNYXJrZXRpbmcgTmFtZSBmb3IgdGhlIGJvYXJkCiAgKiAgYWNjZXNzID0gQWRkcmVzcyBvZiB0aGUgc3RydWN0IG9mIGZ1bmN0aW9uIHBvaW50ZXJzCi0gKiAgbnJfY21kcyA9IE51bWJlciBvZiBjb21tYW5kcyBzdXBwb3J0ZWQgYnkgY29udHJvbGxlcgogICovCiBzdGF0aWMgc3RydWN0IGJvYXJkX3R5cGUgcHJvZHVjdHNbXSA9IHsKLQl7MHg0MDcwMEUxMSwgIlNtYXJ0IEFycmF5IDUzMDAiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHg0MDgwMEUxMSwgIlNtYXJ0IEFycmF5IDVpIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODIwRTExLCAiU21hcnQgQXJyYXkgNTMyIiwgJlNBNUJfYWNjZXNzLCA1MTJ9LAotCXsweDQwODMwRTExLCAiU21hcnQgQXJyYXkgNTMxMiIsICZTQTVCX2FjY2VzcywgNTEyfSwKLQl7MHg0MDlBMEUxMSwgIlNtYXJ0IEFycmF5IDY0MSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDQwOUIwRTExLCAiU21hcnQgQXJyYXkgNjQyIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5QzBFMTEsICJTbWFydCBBcnJheSA2NDAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5RDBFMTEsICJTbWFydCBBcnJheSA2NDAwIEVNIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4NDA5MTBFMTEsICJTbWFydCBBcnJheSA2aSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjUxMDNDLCAiU21hcnQgQXJyYXkgUDYwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMjMxMDNDLCAiU21hcnQgQXJyYXkgUDgwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzQxMDNDLCAiU21hcnQgQXJyYXkgUDQwMCIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweDMyMzUxMDNDLCAiU21hcnQgQXJyYXkgUDQwMGkiLCAmU0E1X2FjY2VzcywgNTEyfSwKLQl7MHgzMjExMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMjEwM0MsICJTbWFydCBBcnJheSBFMjAwIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIxMzEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzLCAxMjB9LAotCXsweDMyMTQxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2VzcywgMTIwfSwKLQl7MHgzMjE1MTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3MsIDEyMH0sCi0JezB4MzIzNzEwM0MsICJTbWFydCBBcnJheSBFNTAwIiwgJlNBNV9hY2Nlc3MsIDUxMn0sCi0JezB4MzIzRDEwM0MsICJTbWFydCBBcnJheSBQNzAwbSIsICZTQTVfYWNjZXNzLCA1MTJ9LAotCXsweEZGRkYxMDNDLCAiVW5rbm93biBTbWFydCBBcnJheSIsICZTQTVfYWNjZXNzLCAxMjB9LAorCXsweDQwNzAwRTExLCAiU21hcnQgQXJyYXkgNTMwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDgwMEUxMSwgIlNtYXJ0IEFycmF5IDVpIiwgJlNBNUJfYWNjZXNzfSwKKwl7MHg0MDgyMEUxMSwgIlNtYXJ0IEFycmF5IDUzMiIsICZTQTVCX2FjY2Vzc30sCisJezB4NDA4MzBFMTEsICJTbWFydCBBcnJheSA1MzEyIiwgJlNBNUJfYWNjZXNzfSwKKwl7MHg0MDlBMEUxMSwgIlNtYXJ0IEFycmF5IDY0MSIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDlCMEUxMSwgIlNtYXJ0IEFycmF5IDY0MiIsICZTQTVfYWNjZXNzfSwKKwl7MHg0MDlDMEUxMSwgIlNtYXJ0IEFycmF5IDY0MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4NDA5RDBFMTEsICJTbWFydCBBcnJheSA2NDAwIEVNIiwgJlNBNV9hY2Nlc3N9LAorCXsweDQwOTEwRTExLCAiU21hcnQgQXJyYXkgNmkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIyNTEwM0MsICJTbWFydCBBcnJheSBQNjAwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMjMxMDNDLCAiU21hcnQgQXJyYXkgUDgwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjM0MTAzQywgIlNtYXJ0IEFycmF5IFA0MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzNTEwM0MsICJTbWFydCBBcnJheSBQNDAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjExMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMTIxMDNDLCAiU21hcnQgQXJyYXkgRTIwMCIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjEzMTAzQywgIlNtYXJ0IEFycmF5IEUyMDBpIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyMTQxMDNDLCAiU21hcnQgQXJyYXkgRTIwMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIxNTEwM0MsICJTbWFydCBBcnJheSBFMjAwaSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjM3MTAzQywgIlNtYXJ0IEFycmF5IEU1MDAiLCAmU0E1X2FjY2Vzc30sCisJezB4MzIzRDEwM0MsICJTbWFydCBBcnJheSBQNzAwbSIsICZTQTVfYWNjZXNzfSwKKwl7MHgzMjQxMTAzQywgIlNtYXJ0IEFycmF5IFAyMTIiLCAmU0E1X2FjY2Vzc30sCisJezB4MzI0MzEwM0MsICJTbWFydCBBcnJheSBQNDEwIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDUxMDNDLCAiU21hcnQgQXJyYXkgUDQxMGkiLCAmU0E1X2FjY2Vzc30sCisJezB4MzI0NzEwM0MsICJTbWFydCBBcnJheSBQNDExIiwgJlNBNV9hY2Nlc3N9LAorCXsweDMyNDkxMDNDLCAiU21hcnQgQXJyYXkgUDgxMiIsICZTQTVfYWNjZXNzfSwKKwl7MHhGRkZGMTAzQywgIlVua25vd24gU21hcnQgQXJyYXkiLCAmU0E1X2FjY2Vzc30sCiB9OwogCiAvKiBIb3cgbG9uZyB0byB3YWl0IChpbiBtaWxsaXNlY29uZHMpIGZvciBib2FyZCB0byBnbyBpbnRvIHNpbXBsZSBtb2RlICovCkBAIC0zMDc1LDExICszMDg1LDIwIEBACiAJcHJpbnRfY2ZnX3RhYmxlKGMtPmNmZ3RhYmxlKTsKICNlbmRpZgkJCQkvKiBDQ0lTU19ERUJVRyAqLwogCisJLyogU29tZSBjb250cm9sbGVycyBzdXBwb3J0IFplcm8gTWVtb3J5IFJhaWQgKFpNUikuCisJICogV2hlbiBjb25maWd1cmVkIGluIFpNUiBtb2RlIHRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkCisJICogY29tbWFuZHMgZHJvcHMgdG8gNjQuIFNvIGluc3RlYWQgb2YganVzdCBzZXR0aW5nIGFuCisJICogYXJiaXRyYXJ5IHZhbHVlIHdlIG1ha2UgdGhlIGRyaXZlciBhIGxpdHRsZSBzbWFydGVyLgorCSAqIFdlIHJlYWQgdGhlIGNvbmZpZyB0YWJsZSB0byB0ZWxsIHVzIGhvdyBtYW55IGNvbW1hbmRzCisJICogYXJlIHN1cHBvcnRlZCBvbiB0aGUgY29udHJvbGxlciB0aGVuIHN1YnRyYWN0IDQgdG8KKwkgKiBsZWF2ZSBhIGxpdHRsZSByb29tIGZvciBpb2N0bCBjYWxscy4KKwkgKi8KKwljLT5tYXhfY29tbWFuZHMgPSByZWFkbCgmKGMtPmNmZ3RhYmxlLT5DbWRzT3V0TWF4KSk7CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocHJvZHVjdHMpOyBpKyspIHsKIAkJaWYgKGJvYXJkX2lkID09IHByb2R1Y3RzW2ldLmJvYXJkX2lkKSB7CiAJCQljLT5wcm9kdWN0X25hbWUgPSBwcm9kdWN0c1tpXS5wcm9kdWN0X25hbWU7CiAJCQljLT5hY2Nlc3MgPSAqKHByb2R1Y3RzW2ldLmFjY2Vzcyk7Ci0JCQljLT5ucl9jbWRzID0gcHJvZHVjdHNbaV0ubnJfY21kczsKKwkJCWMtPm5yX2NtZHMgPSBjLT5tYXhfY29tbWFuZHMgLSA0OwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0zMDk5LDcgKzMxMTgsNyBAQAogCQlpZiAoc3Vic3lzdGVtX3ZlbmRvcl9pZCA9PSBQQ0lfVkVORE9SX0lEX0hQKSB7CiAJCQljLT5wcm9kdWN0X25hbWUgPSBwcm9kdWN0c1tpLTFdLnByb2R1Y3RfbmFtZTsKIAkJCWMtPmFjY2VzcyA9ICoocHJvZHVjdHNbaS0xXS5hY2Nlc3MpOwotCQkJYy0+bnJfY21kcyA9IHByb2R1Y3RzW2ktMV0ubnJfY21kczsKKwkJCWMtPm5yX2NtZHMgPSBjLT5tYXhfY29tbWFuZHMgLSA0OwogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2Npc3M6IFRoaXMgaXMgYW4gdW5rbm93biAiCiAJCQkJIlNtYXJ0IEFycmF5IGNvbnRyb2xsZXIuXG4iCiAJCQkJImNjaXNzOiBQbGVhc2UgdXBkYXRlIHRvIHRoZSBsYXRlc3QgZHJpdmVyICIKQEAgLTM1MzUsNiArMzU1NCwxMCBAQAogCWZvciAoaiA9IDA7IGogPD0gaGJhW2ldLT5oaWdoZXN0X2x1bjsgaisrKQogCQlhZGRfZGlzayhoYmFbaV0tPmdlbmRpc2tbal0pOwogCisJLyogd2UgbXVzdCByZWdpc3RlciB0aGUgY29udHJvbGxlciBldmVuIGlmIG5vIGRpc2tzIGV4aXN0ICovCisJaWYgKGhiYVtpXS0+aGlnaGVzdF9sdW4gPT0gLTEpCisJCWFkZF9kaXNrKGhiYVtpXS0+Z2VuZGlza1swXSk7CisKIAlyZXR1cm4gMTsKIAogICAgICAgY2xlYW40OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcGcuYyBiL2RyaXZlcnMvYmxvY2svcGFyaWRlL3BnLmMKaW5kZXggYWI4NmUyMy4uOWQ5MjYzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9wYXJpZGUvcGcuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wZy5jCkBAIC0xNjIsNiArMTYyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9wZy5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGN1cnJlbnQsIFRBU0tfKiAqLworI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTUxNSwxMiArNTE2LDE4IEBACiB7CiAJaW50IHVuaXQgPSBpbWlub3IoaW5vZGUpICYgMHg3ZjsKIAlzdHJ1Y3QgcGcgKmRldiA9ICZkZXZpY2VzW3VuaXRdOworCWludCByZXQgPSAwOwogCi0JaWYgKCh1bml0ID49IFBHX1VOSVRTKSB8fCAoIWRldi0+cHJlc2VudCkpCi0JCXJldHVybiAtRU5PREVWOworCWxvY2tfa2VybmVsKCk7CisJaWYgKCh1bml0ID49IFBHX1VOSVRTKSB8fCAoIWRldi0+cHJlc2VudCkpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJmRldi0+YWNjZXNzKSkKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmZGV2LT5hY2Nlc3MpKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKGRldi0+YnVzeSkgewogCQlwZ19yZXNldChkZXYpOwpAQCAtNTMzLDEyICs1NDAsMTUgQEAKIAlpZiAoZGV2LT5idWZwdHIgPT0gTlVMTCkgewogCQljbGVhcl9iaXQoMCwgJmRldi0+YWNjZXNzKTsKIAkJcHJpbnRrKCIlczogYnVmZmVyIGFsbG9jYXRpb24gZmFpbGVkXG4iLCBkZXYtPm5hbWUpOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZGV2OwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgcGdfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMgYi9kcml2ZXJzL2Jsb2NrL3BhcmlkZS9wdC5jCmluZGV4IDhiOTU0OWEuLjVjNzRjMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svcGFyaWRlL3B0LmMKKysrIGIvZHJpdmVycy9ibG9jay9wYXJpZGUvcHQuYwpAQCAtMTQ2LDYgKzE0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvbXRpby5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGN1cnJlbnQsIFRBU0tfKiwgc2NoZWR1bGVfdGltZW91dCgpICovCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKQEAgLTE4OSw4ICsxOTAsNyBAQAogI2RlZmluZSBBVEFQSV9MT0dfU0VOU0UJCTB4NGQKIAogc3RhdGljIGludCBwdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKLXN0YXRpYyBpbnQgcHRfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCi0JCSAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CitzdGF0aWMgbG9uZyBwdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogc3RhdGljIGludCBwdF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKTsKIHN0YXRpYyBzc2l6ZV90IHB0X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsCiAJCSAgICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqIHBwb3MpOwpAQCAtMjM2LDcgKzIzNiw3IEBACiAJLm93bmVyID0gVEhJU19NT0RVTEUsCiAJLnJlYWQgPSBwdF9yZWFkLAogCS53cml0ZSA9IHB0X3dyaXRlLAotCS5pb2N0bCA9IHB0X2lvY3RsLAorCS51bmxvY2tlZF9pb2N0bCA9IHB0X2lvY3RsLAogCS5vcGVuID0gcHRfb3BlbiwKIAkucmVsZWFzZSA9IHB0X3JlbGVhc2UsCiB9OwpAQCAtNjUwLDggKzY1MCwxMSBAQAogCXN0cnVjdCBwdF91bml0ICp0YXBlID0gcHQgKyB1bml0OwogCWludCBlcnI7CiAKLQlpZiAodW5pdCA+PSBQVF9VTklUUyB8fCAoIXRhcGUtPnByZXNlbnQpKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKHVuaXQgPj0gUFRfVU5JVFMgfHwgKCF0YXBlLT5wcmVzZW50KSkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PREVWOworCX0KIAogCWVyciA9IC1FQlVTWTsKIAlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJnRhcGUtPmF2YWlsYWJsZSkpCkBAIC02NzgsMTUgKzY4MSwxNiBAQAogCX0KIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHRhcGU7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXQ6CiAJYXRvbWljX2luYygmdGFwZS0+YXZhaWxhYmxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGludCBwdF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwKLQkgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBwdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJc3RydWN0IHB0X3VuaXQgKnRhcGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IG10b3AgX191c2VyICpwID0gKHZvaWQgX191c2VyICopYXJnOwpAQCAtNzAwLDIzICs3MDQsMjYgQEAKIAkJc3dpdGNoIChtdG9wLm10X29wKSB7CiAKIAkJY2FzZSBNVFJFVzoKKwkJCWxvY2tfa2VybmVsKCk7CiAJCQlwdF9yZXdpbmQodGFwZSk7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gMDsKIAogCQljYXNlIE1UV0VPRjoKKwkJCWxvY2tfa2VybmVsKCk7CiAJCQlwdF93cml0ZV9mbSh0YXBlKTsKKwkJCXVubG9ja19rZXJuZWwoKTsKIAkJCXJldHVybiAwOwogCiAJCWRlZmF1bHQ6Ci0JCQlwcmludGsoIiVzOiBVbmltcGxlbWVudGVkIG10X29wICVkXG4iLCB0YXBlLT5uYW1lLAorCQkJLyogRklYTUU6IHJhdGUgbGltaXQgPz8gKi8KKwkJCXByaW50ayhLRVJOX0RFQlVHICIlczogVW5pbXBsZW1lbnRlZCBtdF9vcCAlZFxuIiwgdGFwZS0+bmFtZSwKIAkJCSAgICAgICBtdG9wLm10X29wKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAKIAlkZWZhdWx0OgotCQlwcmludGsoIiVzOiBVbmltcGxlbWVudGVkIGlvY3RsIDB4JXhcbiIsIHRhcGUtPm5hbWUsIGNtZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCisJCXJldHVybiAtRU5PVFRZOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibG9jay9wa3RjZHZkLmMgYi9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYwppbmRleCAzYmExZGY5Li40NWJlZTkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYworKysgYi9kcml2ZXJzL2Jsb2NrL3BrdGNkdmQuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KQEAgLTIwNzksNyArMjA4MCw2IEBACiAJdW5zaWduZWQgY2hhciBidWZbNjRdOwogCWludCByZXQ7CiAKLQltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7CiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1JFQUQpOwogCWNnYy5zZW5zZSA9ICZzZW5zZTsKIAljZ2MuYnVmbGVuID0gcGQtPm1vZGVfb2Zmc2V0ICsgMTI7CkBAIC0yMTI2LDcgKzIxMjYsNiBAQAogCXVuc2lnbmVkIGNoYXIgKmNhcF9idWY7CiAJaW50IHJldCwgb2Zmc2V0OwogCi0JbWVtc2V0KGJ1ZiwgMCwgc2l6ZW9mKGJ1ZikpOwogCWNhcF9idWYgPSAmYnVmW3NpemVvZihzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlcikgKyBwZC0+bW9kZV9vZmZzZXRdOwogCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIHNpemVvZihidWYpLCBDR0NfREFUQV9VTktOT1dOKTsKIAljZ2Muc2Vuc2UgPSAmc2Vuc2U7CkBAIC0yNjMzLDExICsyNjMyLDEyIEBACiAKIAogCi1zdGF0aWMgaW50IHBrdF9tZXJnZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW9fdmVjICpidmVjKQorc3RhdGljIGludCBwa3RfbWVyZ2VfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqYm1kLAorCQkJICBzdHJ1Y3QgYmlvX3ZlYyAqYnZlYykKIHsKIAlzdHJ1Y3QgcGt0Y2R2ZF9kZXZpY2UgKnBkID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHpvbmUgPSBaT05FKGJpby0+Ymlfc2VjdG9yLCBwZCk7Ci0JaW50IHVzZWQgPSAoKGJpby0+Ymlfc2VjdG9yIC0gem9uZSkgPDwgOSkgKyBiaW8tPmJpX3NpemU7CisJc2VjdG9yX3Qgem9uZSA9IFpPTkUoYm1kLT5iaV9zZWN0b3IsIHBkKTsKKwlpbnQgdXNlZCA9ICgoYm1kLT5iaV9zZWN0b3IgLSB6b25lKSA8PCA5KSArIGJtZC0+Ymlfc2l6ZTsKIAlpbnQgcmVtYWluaW5nID0gKHBkLT5zZXR0aW5ncy5zaXplIDw8IDkpIC0gdXNlZDsKIAlpbnQgcmVtYWluaW5nMjsKIApAQCAtMjY0NSw3ICsyNjQ1LDcgQEAKIAkgKiBBIGJpbyA8PSBQQUdFX1NJWkUgbXVzdCBiZSBhbGxvd2VkLiBJZiBpdCBjcm9zc2VzIGEgcGFja2V0CiAJICogYm91bmRhcnksIHBrdF9tYWtlX3JlcXVlc3QoKSB3aWxsIHNwbGl0IHRoZSBiaW8uCiAJICovCi0JcmVtYWluaW5nMiA9IFBBR0VfU0laRSAtIGJpby0+Ymlfc2l6ZTsKKwlyZW1haW5pbmcyID0gUEFHRV9TSVpFIC0gYm1kLT5iaV9zaXplOwogCXJlbWFpbmluZyA9IG1heChyZW1haW5pbmcsIHJlbWFpbmluZzIpOwogCiAJQlVHX09OKHJlbWFpbmluZyA8IDApOwpAQCAtMjc5Niw5ICsyNzk2LDE0IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBwa3RfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQorc3RhdGljIGxvbmcgcGt0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIHsKLQlzdHJ1Y3QgcGt0Y2R2ZF9kZXZpY2UgKnBkID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzay0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlOworCXN0cnVjdCBwa3RjZHZkX2RldmljZSAqcGQ7CisJbG9uZyByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXBkID0gaW5vZGUtPmlfYmRldi0+YmRfZGlzay0+cHJpdmF0ZV9kYXRhOwogCiAJVlBSSU5USygicGt0X2lvY3RsOiBjbWQgJXgsIGRldiAlZDolZFxuIiwgY21kLCBpbWFqb3IoaW5vZGUpLCBpbWlub3IoaW5vZGUpKTsKIApAQCAtMjgxMSw3ICsyODE2LDggQEAKIAljYXNlIENEUk9NX0xBU1RfV1JJVFRFTjoKIAljYXNlIENEUk9NX1NFTkRfUEFDS0VUOgogCWNhc2UgU0NTSV9JT0NUTF9TRU5EX0NPTU1BTkQ6Ci0JCXJldHVybiBibGtkZXZfaW9jdGwocGQtPmJkZXYtPmJkX2lub2RlLCBmaWxlLCBjbWQsIGFyZyk7CisJCXJldCA9IGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJYnJlYWs7CiAKIAljYXNlIENEUk9NRUpFQ1Q6CiAJCS8qCkBAIC0yODIwLDE0ICsyODI2LDE1IEBACiAJCSAqLwogCQlpZiAocGQtPnJlZmNudCA9PSAxKQogCQkJcGt0X2xvY2tfZG9vcihwZCwgMCk7Ci0JCXJldHVybiBibGtkZXZfaW9jdGwocGQtPmJkZXYtPmJkX2lub2RlLCBmaWxlLCBjbWQsIGFyZyk7CisJCXJldCA9IGJsa2Rldl9pb2N0bChwZC0+YmRldi0+YmRfaW5vZGUsIGZpbGUsIGNtZCwgYXJnKTsKKwkJYnJlYWs7CiAKIAlkZWZhdWx0OgogCQlWUFJJTlRLKERSSVZFUl9OQU1FIjogVW5rbm93biBpb2N0bCBmb3IgJXMgKCV4KVxuIiwgcGQtPm5hbWUsIGNtZCk7Ci0JCXJldHVybiAtRU5PVFRZOworCQlyZXQgPSAtRU5PVFRZOwogCX0KLQotCXJldHVybiAwOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IHBrdF9tZWRpYV9jaGFuZ2VkKHN0cnVjdCBnZW5kaXNrICpkaXNrKQpAQCAtMjg0OSw3ICsyODU2LDcgQEAKIAkub3duZXIgPQkJVEhJU19NT0RVTEUsCiAJLm9wZW4gPQkJCXBrdF9vcGVuLAogCS5yZWxlYXNlID0JCXBrdF9jbG9zZSwKLQkuaW9jdGwgPQkJcGt0X2lvY3RsLAorCS51bmxvY2tlZF9pb2N0bCA9CXBrdF9pb2N0bCwKIAkubWVkaWFfY2hhbmdlZCA9CXBrdF9tZWRpYV9jaGFuZ2VkLAogfTsKIApAQCAtMzAxNCw3ICszMDIxLDggQEAKIAltdXRleF91bmxvY2soJmN0bF9tdXRleCk7CiB9CiAKLXN0YXRpYyBpbnQgcGt0X2N0bF9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBwa3RfY3RsX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJCQkJdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJdm9pZCBfX3VzZXIgKmFyZ3AgPSAodm9pZCBfX3VzZXIgKilhcmc7CiAJc3RydWN0IHBrdF9jdHJsX2NvbW1hbmQgY3RybF9jbWQ7CkBAIC0zMDMxLDE2ICszMDM5LDIyIEBACiAJY2FzZSBQS1RfQ1RSTF9DTURfU0VUVVA6CiAJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CisJCWxvY2tfa2VybmVsKCk7CiAJCXJldCA9IHBrdF9zZXR1cF9kZXYobmV3X2RlY29kZV9kZXYoY3RybF9jbWQuZGV2KSwgJnBrdF9kZXYpOwogCQljdHJsX2NtZC5wa3RfZGV2ID0gbmV3X2VuY29kZV9kZXYocGt0X2Rldik7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJYnJlYWs7CiAJY2FzZSBQS1RfQ1RSTF9DTURfVEVBUkRPV046CiAJCWlmICghY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKIAkJCXJldHVybiAtRVBFUk07CisJCWxvY2tfa2VybmVsKCk7CiAJCXJldCA9IHBrdF9yZW1vdmVfZGV2KG5ld19kZWNvZGVfZGV2KGN0cmxfY21kLnBrdF9kZXYpKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlicmVhazsKIAljYXNlIFBLVF9DVFJMX0NNRF9TVEFUVVM6CisJCWxvY2tfa2VybmVsKCk7CiAJCXBrdF9nZXRfc3RhdHVzKCZjdHJsX2NtZCk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FTk9UVFk7CkBAIC0zMDUzLDcgKzMwNjcsNyBAQAogCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBrdF9jdGxfZm9wcyA9IHsKLQkuaW9jdGwJID0gcGt0X2N0bF9pb2N0bCwKKwkudW5sb2NrZWRfaW9jdGwJID0gcGt0X2N0bF9pb2N0bCwKIAkub3duZXIJID0gVEhJU19NT0RVTEUsCiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3Zpb2Rhc2QuYyBiL2RyaXZlcnMvYmxvY2svdmlvZGFzZC5jCmluZGV4IGViZmUwMzguLmYxYzhmZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svdmlvZGFzZC5jCisrKyBiL2RyaXZlcnMvYmxvY2svdmlvZGFzZC5jCkBAIC0zLDcgKzMsNyBAQAogICogIEF1dGhvcnM6IERhdmUgQm91dGNoZXIgPGJvdXRjaGVyQHVzLmlibS5jb20+CiAgKiAgICAgICAgICAgUnlhbiBBcm5vbGQgPHJ5YW5hcm5AdXMuaWJtLmNvbT4KICAqICAgICAgICAgICBDb2xpbiBEZXZpbGJpc3MgPGRldmlsYmlzQHVzLmlibS5jb20+Ci0gKiAgICAgICAgICAgU3RlcGhlbiBSb3Rod2VsbCA8c2ZyQGF1MS5pYm0uY29tPgorICogICAgICAgICAgIFN0ZXBoZW4gUm90aHdlbGwKICAqCiAgKiAoQykgQ29weXJpZ2h0IDIwMDAtMjAwNCBJQk0gQ29ycG9yYXRpb24KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Jsb2NrL3ZpcnRpb19ibGsuYyBiL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5jCmluZGV4IDg0ZTA2NGYuLmRkN2VhMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5jCisrKyBiL2RyaXZlcnMvYmxvY2svdmlydGlvX2Jsay5jCkBAIC0yNjAsNiArMjYwLDEwIEBACiAJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fQkxLX0ZfQkFSUklFUikpCiAJCWJsa19xdWV1ZV9vcmRlcmVkKHZibGstPmRpc2stPnF1ZXVlLCBRVUVVRV9PUkRFUkVEX1RBRywgTlVMTCk7CiAKKwkvKiBJZiBkaXNrIGlzIHJlYWQtb25seSBpbiB0aGUgaG9zdCwgdGhlIGd1ZXN0IHNob3VsZCBvYmV5ICovCisJaWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fQkxLX0ZfUk8pKQorCQlzZXRfZGlza19ybyh2YmxrLT5kaXNrLCAxKTsKKwogCS8qIEhvc3QgbXVzdCBhbHdheXMgc3BlY2lmeSB0aGUgY2FwYWNpdHkuICovCiAJdmRldi0+Y29uZmlnLT5nZXQodmRldiwgb2Zmc2V0b2Yoc3RydWN0IHZpcnRpb19ibGtfY29uZmlnLCBjYXBhY2l0eSksCiAJCQkgICZjYXAsIHNpemVvZihjYXApKTsKQEAgLTMxMSw2ICszMTUsNyBAQAogCS8qIFN0b3AgYWxsIHRoZSB2aXJ0cXVldWVzLiAqLwogCXZkZXYtPmNvbmZpZy0+cmVzZXQodmRldik7CiAKKwlkZWxfZ2VuZGlzayh2YmxrLT5kaXNrKTsKIAlibGtfY2xlYW51cF9xdWV1ZSh2YmxrLT5kaXNrLT5xdWV1ZSk7CiAJcHV0X2Rpc2sodmJsay0+ZGlzayk7CiAJbWVtcG9vbF9kZXN0cm95KHZibGstPnBvb2wpOwpAQCAtMzI1LDcgKzMzMCw3IEBACiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmVhdHVyZXNbXSA9IHsKIAlWSVJUSU9fQkxLX0ZfQkFSUklFUiwgVklSVElPX0JMS19GX1NFR19NQVgsIFZJUlRJT19CTEtfRl9TSVpFX01BWCwKLQlWSVJUSU9fQkxLX0ZfR0VPTUVUUlksCisJVklSVElPX0JMS19GX0dFT01FVFJZLCBWSVJUSU9fQkxLX0ZfUk8sCiB9OwogCiBzdGF0aWMgc3RydWN0IHZpcnRpb19kcml2ZXIgdmlydGlvX2JsayA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMgYi9kcml2ZXJzL2Jsb2NrL3hlbi1ibGtmcm9udC5jCmluZGV4IGYyZmZmNTcuLjlhZTA1YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmxvY2sveGVuLWJsa2Zyb250LmMKKysrIGIvZHJpdmVycy9ibG9jay94ZW4tYmxrZnJvbnQuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2hkcmVnLmg+CisjaW5jbHVkZSA8bGludXgvY2Ryb20uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPHhlbi94ZW5idXMuaD4KQEAgLTE1Myw2ICsxNTQsNDAgQEAKIAlyZXR1cm4gMDsKIH0KIAoraW50IGJsa2lmX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlcCwKKwkJdW5zaWduZWQgY29tbWFuZCwgdW5zaWduZWQgbG9uZyBhcmd1bWVudCkKK3sKKwlzdHJ1Y3QgYmxrZnJvbnRfaW5mbyAqaW5mbyA9CisJCWlub2RlLT5pX2JkZXYtPmJkX2Rpc2stPnByaXZhdGVfZGF0YTsKKwlpbnQgaTsKKworCWRldl9kYmcoJmluZm8tPnhiZGV2LT5kZXYsICJjb21tYW5kOiAweCV4LCBhcmd1bWVudDogMHglbHhcbiIsCisJCWNvbW1hbmQsIChsb25nKWFyZ3VtZW50KTsKKworCXN3aXRjaCAoY29tbWFuZCkgeworCWNhc2UgQ0RST01NVUxUSVNFU1NJT046CisJCWRldl9kYmcoJmluZm8tPnhiZGV2LT5kZXYsICJGSVhNRTogc3VwcG9ydCBtdWx0aXNlc3Npb24gQ0RzIGxhdGVyXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IHNpemVvZihzdHJ1Y3QgY2Ryb21fbXVsdGlzZXNzaW9uKTsgaSsrKQorCQkJaWYgKHB1dF91c2VyKDAsIChjaGFyIF9fdXNlciAqKShhcmd1bWVudCArIGkpKSkKKwkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIDA7CisKKwljYXNlIENEUk9NX0dFVF9DQVBBQklMSVRZOiB7CisJCXN0cnVjdCBnZW5kaXNrICpnZCA9IGluZm8tPmdkOworCQlpZiAoZ2QtPmZsYWdzICYgR0VOSERfRkxfQ0QpCisJCQlyZXR1cm4gMDsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGVmYXVsdDoKKwkJLypwcmludGsoS0VSTl9BTEVSVCAiaW9jdGwgJTA4eCBub3Qgc3VwcG9ydGVkIGJ5IFhlbiBibGtkZXZcbiIsCisJCSAgY29tbWFuZCk7Ki8KKwkJcmV0dXJuIC1FSU5WQUw7IC8qIHNhbWUgcmV0dXJuIGFzIG5hdGl2ZSBMaW51eCAqLworCX0KKworCXJldHVybiAwOworfQorCiAvKgogICogYmxraWZfcXVldWVfcmVxdWVzdAogICoKQEAgLTMyNCw2ICszNTksOSBAQAogCS8qIE1ha2Ugc3VyZSBidWZmZXIgYWRkcmVzc2VzIGFyZSBzZWN0b3ItYWxpZ25lZC4gKi8KIAlibGtfcXVldWVfZG1hX2FsaWdubWVudChycSwgNTExKTsKIAorCS8qIE1ha2Ugc3VyZSB3ZSBkb24ndCB1c2UgYm91bmNlIGJ1ZmZlcnMuICovCisJYmxrX3F1ZXVlX2JvdW5jZV9saW1pdChycSwgQkxLX0JPVU5DRV9BTlkpOworCiAJZ2QtPnF1ZXVlID0gcnE7CiAKIAlyZXR1cm4gMDsKQEAgLTU0Niw3ICs1ODQsNyBAQAogCiAJaW5mby0+cmluZ19yZWYgPSBHUkFOVF9JTlZBTElEX1JFRjsKIAotCXNyaW5nID0gKHN0cnVjdCBibGtpZl9zcmluZyAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwlzcmluZyA9IChzdHJ1Y3QgYmxraWZfc3JpbmcgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX05PSU8gfCBfX0dGUF9ISUdIKTsKIAlpZiAoIXNyaW5nKSB7CiAJCXhlbmJ1c19kZXZfZmF0YWwoZGV2LCAtRU5PTUVNLCAiYWxsb2NhdGluZyBzaGFyZWQgcmluZyIpOwogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTcwMyw3ICs3NDEsOCBAQAogCWludCBqOwogCiAJLyogU3RhZ2UgMTogTWFrZSBhIHNhZmUgY29weSBvZiB0aGUgc2hhZG93IHN0YXRlLiAqLwotCWNvcHkgPSBrbWFsbG9jKHNpemVvZihpbmZvLT5zaGFkb3cpLCBHRlBfS0VSTkVMKTsKKwljb3B5ID0ga21hbGxvYyhzaXplb2YoaW5mby0+c2hhZG93KSwKKwkJICAgICAgIEdGUF9OT0lPIHwgX19HRlBfUkVQRUFUIHwgX19HRlBfSElHSCk7CiAJaWYgKCFjb3B5KQogCQlyZXR1cm4gLUVOT01FTTsKIAltZW1jcHkoY29weSwgaW5mby0+c2hhZG93LCBzaXplb2YoaW5mby0+c2hhZG93KSk7CkBAIC05NTksNyArOTk4LDcgQEAKIAkJc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiA9IGluZm8tPnhiZGV2OwogCQllbnVtIHhlbmJ1c19zdGF0ZSBzdGF0ZSA9IHhlbmJ1c19yZWFkX2RyaXZlcl9zdGF0ZShkZXYtPm90aGVyZW5kKTsKIAotCQlpZiAoc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nKQorCQlpZiAoc3RhdGUgPT0gWGVuYnVzU3RhdGVDbG9zaW5nICYmIGluZm8tPmlzX3JlYWR5KQogCQkJYmxrZnJvbnRfY2xvc2luZyhkZXYpOwogCX0KIAlyZXR1cm4gMDsKQEAgLTk3MSw2ICsxMDEwLDcgQEAKIAkub3BlbiA9IGJsa2lmX29wZW4sCiAJLnJlbGVhc2UgPSBibGtpZl9yZWxlYXNlLAogCS5nZXRnZW8gPSBibGtpZl9nZXRnZW8sCisJLmlvY3RsID0gYmxraWZfaW9jdGwsCiB9OwogCiAKQEAgLTEwMDYsNyArMTA0Niw3IEBACiBtb2R1bGVfaW5pdCh4bGJsa19pbml0KTsKIAogCi1zdGF0aWMgdm9pZCB4bGJsa19leGl0KHZvaWQpCitzdGF0aWMgdm9pZCBfX2V4aXQgeGxibGtfZXhpdCh2b2lkKQogewogCXJldHVybiB4ZW5idXNfdW5yZWdpc3Rlcl9kcml2ZXIoJmJsa2Zyb250KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmx1ZXRvb3RoL2JmdXNiLmMgYi9kcml2ZXJzL2JsdWV0b290aC9iZnVzYi5jCmluZGV4IGI5OTA4MDUuLjBjMjExYWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvYmx1ZXRvb3RoL2JmdXNiLmMKKysrIGIvZHJpdmVycy9ibHVldG9vdGgvYmZ1c2IuYwpAQCAtNTY2LDcgKzU2Niw4IEBACiAJcmV0dXJuIC1FTk9JT0NUTENNRDsKIH0KIAotc3RhdGljIGludCBiZnVzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBiZnVzYl9kYXRhICpkYXRhLCB1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgaW50IGNvdW50KQorc3RhdGljIGludCBiZnVzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBiZnVzYl9kYXRhICpkYXRhLAorCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCBpbnQgY291bnQpCiB7CiAJdW5zaWduZWQgY2hhciAqYnVmOwogCWludCBlcnIsIHBpcGUsIGxlbiwgc2l6ZSwgc2VudCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9idDNjX2NzLmMgYi9kcml2ZXJzL2JsdWV0b290aC9idDNjX2NzLmMKaW5kZXggNzcwM2Q2ZS4uNTkzYjdjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYnQzY19jcy5jCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0M2NfY3MuYwpAQCAtNDcwLDcgKzQ3MCw4IEBACiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT0gQ2FyZCBzZXJ2aWNlcyBIQ0kgaW50ZXJhY3Rpb24gPT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKIAotc3RhdGljIGludCBidDNjX2xvYWRfZmlybXdhcmUoYnQzY19pbmZvX3QgKmluZm8sIHVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCBpbnQgY291bnQpCitzdGF0aWMgaW50IGJ0M2NfbG9hZF9maXJtd2FyZShidDNjX2luZm9fdCAqaW5mbywgY29uc3QgdW5zaWduZWQgY2hhciAqZmlybXdhcmUsCisJCQkgICAgICBpbnQgY291bnQpCiB7CiAJY2hhciAqcHRyID0gKGNoYXIgKikgZmlybXdhcmU7CiAJY2hhciBiWzldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX3ZoY2kuYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2hjaV92aGNpLmMKaW5kZXggMDYzODczMC4uZDk3NzAwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvaGNpX3ZoY2kuYworKysgYi9kcml2ZXJzL2JsdWV0b290aC9oY2lfdmhjaS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgpAQCAtMjYzLDkgKzI2NCwxMSBAQAogCXNrYl9xdWV1ZV9oZWFkX2luaXQoJmRhdGEtPnJlYWRxKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkYXRhLT5yZWFkX3dhaXQpOwogCisJbG9ja19rZXJuZWwoKTsKIAloZGV2ID0gaGNpX2FsbG9jX2RldigpOwogCWlmICghaGRldikgewogCQlrZnJlZShkYXRhKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKQEAgLTI4NiwxMCArMjg5LDEyIEBACiAJCUJUX0VSUigiQ2FuJ3QgcmVnaXN0ZXIgSENJIGRldmljZSIpOwogCQlrZnJlZShkYXRhKTsKIAkJaGNpX2ZyZWVfZGV2KGhkZXYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gZGF0YTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiB9CkBAIC0zMTMsMTggKzMxOCwyMSBAQAogc3RhdGljIGludCB2aGNpX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgb24pCiB7CiAJc3RydWN0IHZoY2lfZGF0YSAqZGF0YSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKLQlpbnQgZXJyOworCWludCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAllcnIgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxlLCBvbiwgJmRhdGEtPmZhc3luYyk7CiAJaWYgKGVyciA8IDApCi0JCXJldHVybiBlcnI7CisJCWdvdG8gb3V0OwogCiAJaWYgKG9uKQogCQlkYXRhLT5mbGFncyB8PSBWSENJX0ZBU1lOQzsKIAllbHNlCiAJCWRhdGEtPmZsYWdzICY9IH5WSENJX0ZBU1lOQzsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB2aGNpX2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMgYi9kcml2ZXJzL2Nkcm9tL2Nkcm9tLmMKaW5kZXggNjlmMjZlYi4uYTVkYTM1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jZHJvbS9jZHJvbS5jCisrKyBiL2RyaXZlcnMvY2Ryb20vY2Ryb20uYwpAQCAtNDYxLDM3ICs0NjEsMjcgQEAKIAkJCSAgc3RydWN0IG1lZGlhX2V2ZW50X2Rlc2MgKm1lZCkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKLQlzdHJ1Y3QgZXZlbnRfaGVhZGVyICplaDsKLQlpbnQgcmV0ID0gMTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlcls4XTsKKwlzdHJ1Y3QgZXZlbnRfaGVhZGVyICplaCA9IChzdHJ1Y3QgZXZlbnRfaGVhZGVyICopIGJ1ZmZlcjsKIAotCWJ1ZmZlciA9IGttYWxsb2MoOCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JZWggPSAoc3RydWN0IGV2ZW50X2hlYWRlciAqKWJ1ZmZlcjsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDgsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0VWRU5UX1NUQVRVU19OT1RJRklDQVRJT047CiAJY2djLmNtZFsxXSA9IDE7CQkvKiBJTU1FRCAqLwogCWNnYy5jbWRbNF0gPSAxIDw8IDQ7CS8qIG1lZGlhIGV2ZW50ICovCi0JY2djLmNtZFs4XSA9IDg7CisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gMTsKIAogCWlmIChiZTE2X3RvX2NwdShlaC0+ZGF0YV9sZW4pIDwgc2l6ZW9mKCptZWQpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIDE7CiAKIAlpZiAoZWgtPm5lYSB8fCBlaC0+bm90aWZpY2F0aW9uX2NsYXNzICE9IDB4NCkKLQkJZ290byBlcnI7CisJCXJldHVybiAxOwogCi0JbWVtY3B5KG1lZCwgYnVmZmVyICsgc2l6ZW9mKCplaCksIHNpemVvZigqbWVkKSk7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJbWVtY3B5KG1lZCwgJmJ1ZmZlcltzaXplb2YoKmVoKV0sIHNpemVvZigqbWVkKSk7CisJcmV0dXJuIDA7CiB9CiAKIC8qCkBAIC01MDEsODIgKzQ5MSw2OCBAQAogc3RhdGljIGludCBjZHJvbV9tcndfcHJvYmVfcGMoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQljaGFyICpidWZmZXI7Ci0JaW50IHJldCA9IDE7CisJY2hhciBidWZmZXJbMTZdOwogCi0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy50aW1lb3V0ID0gSFo7CiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICghY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIE1SV19NT0RFX1BDLCAwKSkgewogCQljZGktPm1yd19tb2RlX3BhZ2UgPSBNUldfTU9ERV9QQzsKLQkJcmV0ID0gMDsKKwkJcmV0dXJuIDA7CiAJfSBlbHNlIGlmICghY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIE1SV19NT0RFX1BDX1BSRTEsIDApKSB7CiAJCWNkaS0+bXJ3X21vZGVfcGFnZSA9IE1SV19NT0RFX1BDX1BSRTE7Ci0JCXJldCA9IDA7CisJCXJldHVybiAwOwogCX0KLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMTsKIH0KIAogc3RhdGljIGludCBjZHJvbV9pc19tcncoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGludCAqd3JpdGUpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgbXJ3X2ZlYXR1cmVfZGVzYyAqbWZkOwotCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlcjsKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlclsxNl07CiAJaW50IHJldDsKIAogCSp3cml0ZSA9IDA7Ci0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwogCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy5jbWRbMF0gPSBHUENNRF9HRVRfQ09ORklHVVJBVElPTjsKIAljZ2MuY21kWzNdID0gQ0RGX01SVzsKLQljZ2MuY21kWzhdID0gMTY7CisJY2djLmNtZFs4XSA9IHNpemVvZihidWZmZXIpOwogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkaS0+b3BzLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAltZmQgPSAoc3RydWN0IG1yd19mZWF0dXJlX2Rlc2MgKikmYnVmZmVyW3NpemVvZihzdHJ1Y3QgZmVhdHVyZV9oZWFkZXIpXTsKLQlpZiAoYmUxNl90b19jcHUobWZkLT5mZWF0dXJlX2NvZGUpICE9IENERl9NUlcpIHsKLQkJcmV0ID0gMTsKLQkJZ290byBlcnI7Ci0JfQorCWlmIChiZTE2X3RvX2NwdShtZmQtPmZlYXR1cmVfY29kZSkgIT0gQ0RGX01SVykKKwkJcmV0dXJuIDE7CiAJKndyaXRlID0gbWZkLT53cml0ZTsKIAogCWlmICgocmV0ID0gY2Ryb21fbXJ3X3Byb2JlX3BjKGNkaSkpKSB7CiAJCSp3cml0ZSA9IDA7CisJCXJldHVybiByZXQ7CiAJfQotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX21yd19iZ2Zvcm1hdChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgaW50IGNvbnQpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJdW5zaWduZWQgY2hhciBidWZmZXJbMTJdOwogCWludCByZXQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJjZHJvbTogJXNzdGFydGluZyBmb3JtYXRcbiIsIGNvbnQgPyAiUmUiIDogIiIpOwogCi0JYnVmZmVyID0ga21hbGxvYygxMiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJLyoKIAkgKiBGbXREYXRhIGJpdCBzZXQgKGJpdCA0KSwgZm9ybWF0IHR5cGUgaXMgMQogCSAqLwotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDEyLCBDR0NfREFUQV9XUklURSk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIENHQ19EQVRBX1dSSVRFKTsKIAljZ2MuY21kWzBdID0gR1BDTURfRk9STUFUX1VOSVQ7CiAJY2djLmNtZFsxXSA9ICgxIDw8IDQpIHwgMTsKIApAQCAtNjAzLDcgKzU3OSw2IEBACiAJaWYgKHJldCkKIAkJcHJpbnRrKEtFUk5fSU5GTyAiY2Ryb206IGJnZm9ybWF0IGZhaWxlZFxuIik7CiAKLQlrZnJlZShidWZmZXIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTY2MywxNyArNjM4LDE2IEBACiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlciAqbXBoOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsxNl07CiAJaW50IHJldCwgb2Zmc2V0LCBzaXplOwogCi0JYnVmZmVyID0ga21hbGxvYygxNiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwljZ2MuYnVmZmVyID0gYnVmZmVyOworCWNnYy5idWZsZW4gPSBzaXplb2YoYnVmZmVyKTsKIAogCWlmICgocmV0ID0gY2Ryb21fbW9kZV9zZW5zZShjZGksICZjZ2MsIGNkaS0+bXJ3X21vZGVfcGFnZSwgMCkpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCW1waCA9IChzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlciAqKSBidWZmZXI7CiAJb2Zmc2V0ID0gYmUxNl90b19jcHUobXBoLT5kZXNjX2xlbmd0aCk7CkBAIC02ODMsNzAgKzY1Nyw1NSBAQAogCWNnYy5idWZsZW4gPSBzaXplOwogCiAJaWYgKChyZXQgPSBjZHJvbV9tb2RlX3NlbGVjdChjZGksICZjZ2MpKSkKLQkJZ290byBlcnI7CisJCXJldHVybiByZXQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJjZHJvbTogJXM6IG1ydyBhZGRyZXNzIHNwYWNlICVzIHNlbGVjdGVkXG4iLCBjZGktPm5hbWUsIG1yd19hZGRyZXNzX3NwYWNlW3NwYWNlXSk7Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY2Ryb21fZ2V0X3JhbmRvbV93cml0YWJsZShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwKIAkJCSAgICAgIHN0cnVjdCByd3J0X2ZlYXR1cmVfZGVzYyAqcmZkKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzI0XTsKIAlpbnQgcmV0OwogCi0JYnVmZmVyID0ga21hbGxvYygyNCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMjQsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCBDR0NfREFUQV9SRUFEKTsKIAogCWNnYy5jbWRbMF0gPSBHUENNRF9HRVRfQ09ORklHVVJBVElPTjsJLyogb2Z0ZW4gMHg0NiAqLwogCWNnYy5jbWRbM10gPSBDREZfUldSVDsJCQkvKiBvZnRlbiAweDAwMjAgKi8KLQljZ2MuY21kWzhdID0gMjQ7CQkgICAgICAgIC8qIG9mdGVuIDB4MTggKi8KKwljZ2MuY21kWzhdID0gc2l6ZW9mKGJ1ZmZlcik7CQkvKiBvZnRlbiAweDE4ICovCiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCW1lbWNweShyZmQsICZidWZmZXJbc2l6ZW9mKHN0cnVjdCBmZWF0dXJlX2hlYWRlcildLCBzaXplb2YgKCpyZmQpKTsKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBjZHJvbV9oYXNfZGVmZWN0X21ndChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKIHsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwotCWNoYXIgKmJ1ZmZlcjsKKwljaGFyIGJ1ZmZlclsxNl07CiAJX19iZTE2ICpmZWF0dXJlX2NvZGU7CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMTYsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWZmZXIsIDE2LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgQ0dDX0RBVEFfUkVBRCk7CiAKIAljZ2MuY21kWzBdID0gR1BDTURfR0VUX0NPTkZJR1VSQVRJT047CiAJY2djLmNtZFszXSA9IENERl9IV0RNOwotCWNnYy5jbWRbOF0gPSAxNjsKKwljZ2MuY21kWzhdID0gc2l6ZW9mKGJ1ZmZlcik7CiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCWZlYXR1cmVfY29kZSA9IChfX2JlMTYgKikgJmJ1ZmZlcltzaXplb2Yoc3RydWN0IGZlYXR1cmVfaGVhZGVyKV07CiAJaWYgKGJlMTZfdG9fY3B1KCpmZWF0dXJlX2NvZGUpID09IENERl9IV0RNKQotCQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gMTsKIH0KIAogCkBAIC04MzcsMTQgKzc5NiwxMCBAQAogc3RhdGljIGludCBtb19vcGVuX3dyaXRlKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpKQogewogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzI1NV07CiAJaW50IHJldDsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMjU1LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZmZlcikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCA0LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgJmJ1ZmZlciwgNCwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLnF1aWV0ID0gMTsKIAogCS8qCkBAIC04NjEsMTUgKzgxNiwxMCBAQAogCX0KIAogCS8qIGRyaXZlIGdhdmUgdXMgbm8gaW5mbywgbGV0IHRoZSB1c2VyIGdvIGFoZWFkICovCi0JaWYgKHJldCkgewotCQlyZXQgPSAwOwotCQlnb3RvIGVycjsKLQl9CisJaWYgKHJldCkKKwkJcmV0dXJuIDA7CiAKLQlyZXQgPSBidWZmZXJbM10gJiAweDgwOwotZXJyOgotCWtmcmVlKGJ1ZmZlcik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gYnVmZmVyWzNdICYgMHg4MDsKIH0KIAogc3RhdGljIGludCBjZHJvbV9yYW1fb3Blbl93cml0ZShzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKQEAgLTg5MiwxOSArODQyLDE1IEBACiBzdGF0aWMgdm9pZCBjZHJvbV9tbWMzX3Byb2ZpbGUoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkpCiB7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKLQljaGFyICpidWZmZXI7CisJY2hhciBidWZmZXJbMzJdOwogCWludCByZXQsIG1tYzNfcHJvZmlsZTsKIAotCWJ1ZmZlciA9IGttYWxsb2MoMzIsIEdGUF9LRVJORUwpOwotCWlmICghYnVmZmVyKQotCQlyZXR1cm47Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmZmVyLCAzMiwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIENHQ19EQVRBX1JFQUQpOwogCiAJY2djLmNtZFswXSA9IEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OOwogCWNnYy5jbWRbMV0gPSAwOwogCWNnYy5jbWRbMl0gPSBjZ2MuY21kWzNdID0gMDsJCS8qIFN0YXJ0aW5nIEZlYXR1cmUgTnVtYmVyICovCi0JY2djLmNtZFs4XSA9IDMyOwkJICAgICAgICAvKiBBbGxvY2F0aW9uIExlbmd0aCAqLworCWNnYy5jbWRbOF0gPSBzaXplb2YoYnVmZmVyKTsJCS8qIEFsbG9jYXRpb24gTGVuZ3RoICovCiAJY2djLnF1aWV0ID0gMTsKIAogCWlmICgocmV0ID0gY2RpLT5vcHMtPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQpAQCAtOTEzLDcgKzg1OSw2IEBACiAJCW1tYzNfcHJvZmlsZSA9IChidWZmZXJbNl0gPDwgOCkgfCBidWZmZXJbN107CiAKIAljZGktPm1tYzNfcHJvZmlsZSA9IG1tYzNfcHJvZmlsZTsKLQlrZnJlZShidWZmZXIpOwogfQogCiBzdGF0aWMgaW50IGNkcm9tX2lzX2R2ZF9ydyhzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSkKQEAgLTE2MjgsMTUgKzE1NzMsMTIgQEAKIHN0YXRpYyBpbnQgZHZkX2RvX2F1dGgoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGR2ZF9hdXRoaW5mbyAqYWkpCiB7CiAJaW50IHJldDsKLQl1X2NoYXIgKmJ1ZjsKKwl1X2NoYXIgYnVmWzIwXTsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKLQlycGNfc3RhdGVfdCAqcnBjX3N0YXRlOworCXJwY19zdGF0ZV90IHJwY19zdGF0ZTsKIAotCWJ1ZiA9IGt6YWxsb2MoMjAsIEdGUF9LRVJORUwpOwotCWlmICghYnVmKQotCQlyZXR1cm4gLUVOT01FTTsKLQorCW1lbXNldChidWYsIDAsIHNpemVvZihidWYpKTsKIAlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCAwLCBDR0NfREFUQV9SRUFEKTsKIAogCXN3aXRjaCAoYWktPnR5cGUpIHsKQEAgLTE2NDcsNyArMTU4OSw3IEBACiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzYS5hZ2lkLCAwKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPmxzYS5hZ2lkID0gYnVmWzddID4+IDY7CiAJCS8qIFJldHVybmluZyBkYXRhLCBsZXQgaG9zdCBjaGFuZ2Ugc3RhdGUgKi8KQEAgLTE2NTgsNyArMTYwMCw3IEBACiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzay5hZ2lkLCAyKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJY29weV9rZXkoYWktPmxzay5rZXksICZidWZbNF0pOwogCQkvKiBSZXR1cm5pbmcgZGF0YSwgbGV0IGhvc3QgY2hhbmdlIHN0YXRlICovCkBAIC0xNjY5LDcgKzE2MTEsNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2MuYWdpZCwgMSk7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCiAJCWNvcHlfY2hhbChhaS0+bHNjLmNoYWwsICZidWZbNF0pOwogCQkvKiBSZXR1cm5pbmcgZGF0YSwgbGV0IGhvc3QgY2hhbmdlIHN0YXRlICovCkBAIC0xNjg2LDcgKzE2MjgsNyBAQAogCQljZ2MuY21kWzJdID0gYWktPmxzdGsubGJhID4+IDI0OwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAogCQlhaS0+bHN0ay5jcG0gPSAoYnVmWzRdID4+IDcpICYgMTsKIAkJYWktPmxzdGsuY3Bfc2VjID0gKGJ1Zls0XSA+PiA2KSAmIDE7CkBAIC0xNzAwLDcgKzE2NDIsNyBAQAogCQlzZXR1cF9yZXBvcnRfa2V5KCZjZ2MsIGFpLT5sc2FzZi5hZ2lkLCA1KTsKIAkJCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAogCQlhaS0+bHNhc2YuYXNmID0gYnVmWzddICYgMTsKIAkJYnJlYWs7CkBAIC0xNzEzLDcgKzE2NTUsNyBAQAogCQljb3B5X2NoYWwoJmJ1Zls0XSwgYWktPmhzYy5jaGFsKTsKIAogCQlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAKIAkJYWktPnR5cGUgPSBEVkRfTFVfU0VORF9LRVkxOwogCQlicmVhazsKQEAgLTE3MjYsNyArMTY2OCw3IEBACiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKSB7CiAJCQlhaS0+dHlwZSA9IERWRF9BVVRIX0ZBSUxVUkU7Ci0JCQlnb3RvIGVycjsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAkJYWktPnR5cGUgPSBEVkRfQVVUSF9FU1RBQkxJU0hFRDsKIAkJYnJlYWs7CkBAIC0xNzM3LDIzICsxNjc5LDI0IEBACiAJCWNkaW5mbyhDRF9EVkQsICJlbnRlcmluZyBEVkRfSU5WQUxJREFURV9BR0lEXG4iKTsgCiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgYWktPmxzYS5hZ2lkLCAweDNmKTsKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCQlicmVhazsKIAogCS8qIEdldCByZWdpb24gc2V0dGluZ3MgKi8KIAljYXNlIERWRF9MVV9TRU5EX1JQQ19TVEFURToKIAkJY2RpbmZvKENEX0RWRCwgImVudGVyaW5nIERWRF9MVV9TRU5EX1JQQ19TVEFURVxuIik7CiAJCXNldHVwX3JlcG9ydF9rZXkoJmNnYywgMCwgOCk7CisJCW1lbXNldCgmcnBjX3N0YXRlLCAwLCBzaXplb2YocnBjX3N0YXRlX3QpKTsKKwkJY2djLmJ1ZmZlciA9IChjaGFyICopICZycGNfc3RhdGU7CiAKIAkJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQkJZ290byBlcnI7CisJCQlyZXR1cm4gcmV0OwogCi0JCXJwY19zdGF0ZSA9IChycGNfc3RhdGVfdCAqKWJ1ZjsKLQkJYWktPmxycGNzLnR5cGUgPSBycGNfc3RhdGUtPnR5cGVfY29kZTsKLQkJYWktPmxycGNzLnZyYSA9IHJwY19zdGF0ZS0+dnJhOwotCQlhaS0+bHJwY3MudWNjYSA9IHJwY19zdGF0ZS0+dWNjYTsKLQkJYWktPmxycGNzLnJlZ2lvbl9tYXNrID0gcnBjX3N0YXRlLT5yZWdpb25fbWFzazsKLQkJYWktPmxycGNzLnJwY19zY2hlbWUgPSBycGNfc3RhdGUtPnJwY19zY2hlbWU7CisJCWFpLT5scnBjcy50eXBlID0gcnBjX3N0YXRlLnR5cGVfY29kZTsKKwkJYWktPmxycGNzLnZyYSA9IHJwY19zdGF0ZS52cmE7CisJCWFpLT5scnBjcy51Y2NhID0gcnBjX3N0YXRlLnVjY2E7CisJCWFpLT5scnBjcy5yZWdpb25fbWFzayA9IHJwY19zdGF0ZS5yZWdpb25fbWFzazsKKwkJYWktPmxycGNzLnJwY19zY2hlbWUgPSBycGNfc3RhdGUucnBjX3NjaGVtZTsKIAkJYnJlYWs7CiAKIAkvKiBTZXQgcmVnaW9uIHNldHRpbmdzICovCkBAIC0xNzY0LDIzICsxNzA3LDIwIEBACiAJCWJ1Zls0XSA9IGFpLT5ocnBjcy5wZHJjOwogCiAJCWlmICgocmV0ID0gY2RvLT5nZW5lcmljX3BhY2tldChjZGksICZjZ2MpKSkKLQkJCWdvdG8gZXJyOworCQkJcmV0dXJuIHJldDsKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgogCQljZGluZm8oQ0RfV0FSTklORywgIkludmFsaWQgRFZEIGtleSBpb2N0bCAoJWQpXG4iLCBhaS0+dHlwZSk7Ci0JCXJldCA9IC1FTk9UVFk7Ci0JCWdvdG8gZXJyOworCQlyZXR1cm4gLUVOT1RUWTsKIAl9Ci0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkdmRfcmVhZF9waHlzaWNhbChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwgZHZkX3N0cnVjdCAqcykKIHsKLQl1bnNpZ25lZCBjaGFyICpidWYsICpiYXNlOworCXVuc2lnbmVkIGNoYXIgYnVmWzIxXSwgKmJhc2U7CiAJc3RydWN0IGR2ZF9sYXllciAqbGF5ZXI7CiAJc3RydWN0IHBhY2tldF9jb21tYW5kIGNnYzsKIAlzdHJ1Y3QgY2Ryb21fZGV2aWNlX29wcyAqY2RvID0gY2RpLT5vcHM7CkBAIC0xNzg5LDExICsxNzI5LDcgQEAKIAlpZiAobGF5ZXJfbnVtID49IERWRF9MQVlFUlMpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JYnVmID0ga21hbGxvYygyMSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgMjEsIENHQ19EQVRBX1JFQUQpOworCWluaXRfY2Ryb21fY29tbWFuZCgmY2djLCBidWYsIHNpemVvZihidWYpLCBDR0NfREFUQV9SRUFEKTsKIAljZ2MuY21kWzBdID0gR1BDTURfUkVBRF9EVkRfU1RSVUNUVVJFOwogCWNnYy5jbWRbNl0gPSBsYXllcl9udW07CiAJY2djLmNtZFs3XSA9IHMtPnR5cGU7CkBAIC0xODA1LDcgKzE3NDEsNyBAQAogCWNnYy5xdWlldCA9IDE7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJYmFzZSA9ICZidWZbNF07CiAJbGF5ZXIgPSAmcy0+cGh5c2ljYWwubGF5ZXJbbGF5ZXJfbnVtXTsKQEAgLTE4MjksMjQgKzE3NjUsMTcgQEAKIAlsYXllci0+ZW5kX3NlY3Rvcl9sMCA9IGJhc2VbMTNdIDw8IDE2IHwgYmFzZVsxNF0gPDwgOCB8IGJhc2VbMTVdOwogCWxheWVyLT5iY2EgPSBiYXNlWzE2XSA+PiA3OwogCi0JcmV0ID0gMDsKLWVycjoKLQlrZnJlZShidWYpOwotCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgZHZkX3JlYWRfY29weXJpZ2h0KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQogewogCWludCByZXQ7Ci0JdV9jaGFyICpidWY7CisJdV9jaGFyIGJ1Zls4XTsKIAlzdHJ1Y3QgcGFja2V0X2NvbW1hbmQgY2djOwogCXN0cnVjdCBjZHJvbV9kZXZpY2Vfb3BzICpjZG8gPSBjZGktPm9wczsKIAotCWJ1ZiA9IGttYWxsb2MoOCwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWYpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZiwgOCwgQ0dDX0RBVEFfUkVBRCk7CisJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1Ziwgc2l6ZW9mKGJ1ZiksIENHQ19EQVRBX1JFQUQpOwogCWNnYy5jbWRbMF0gPSBHUENNRF9SRUFEX0RWRF9TVFJVQ1RVUkU7CiAJY2djLmNtZFs2XSA9IHMtPmNvcHlyaWdodC5sYXllcl9udW07CiAJY2djLmNtZFs3XSA9IHMtPnR5cGU7CkBAIC0xODU0LDE1ICsxNzgzLDEyIEBACiAJY2djLmNtZFs5XSA9IGNnYy5idWZsZW4gJiAweGZmOwogCiAJaWYgKChyZXQgPSBjZG8tPmdlbmVyaWNfcGFja2V0KGNkaSwgJmNnYykpKQotCQlnb3RvIGVycjsKKwkJcmV0dXJuIHJldDsKIAogCXMtPmNvcHlyaWdodC5jcHN0ID0gYnVmWzRdOwogCXMtPmNvcHlyaWdodC5ybWkgPSBidWZbNV07CiAKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1Zik7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkdmRfcmVhZF9kaXNja2V5KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQpAQCAtMTg5NCwzMyArMTgyMCwyNiBAQAogc3RhdGljIGludCBkdmRfcmVhZF9iY2Eoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGksIGR2ZF9zdHJ1Y3QgKnMpCiB7CiAJaW50IHJldDsKLQl1X2NoYXIgKmJ1ZjsKKwl1X2NoYXIgYnVmWzQgKyAxODhdOwogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7CiAJc3RydWN0IGNkcm9tX2RldmljZV9vcHMgKmNkbyA9IGNkaS0+b3BzOwogCi0JYnVmID0ga21hbGxvYyg0ICsgMTg4LCBHRlBfS0VSTkVMKTsKLQlpZiAoIWJ1ZikKLQkJcmV0dXJuIC1FTk9NRU07Ci0KLQlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCA0ICsgMTg4LCBDR0NfREFUQV9SRUFEKTsKKwlpbml0X2Nkcm9tX2NvbW1hbmQoJmNnYywgYnVmLCBzaXplb2YoYnVmKSwgQ0dDX0RBVEFfUkVBRCk7CiAJY2djLmNtZFswXSA9IEdQQ01EX1JFQURfRFZEX1NUUlVDVFVSRTsKIAljZ2MuY21kWzddID0gcy0+dHlwZTsKIAljZ2MuY21kWzldID0gY2djLmJ1ZmxlbiAmIDB4ZmY7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJcy0+YmNhLmxlbiA9IGJ1ZlswXSA8PCA4IHwgYnVmWzFdOwogCWlmIChzLT5iY2EubGVuIDwgMTIgfHwgcy0+YmNhLmxlbiA+IDE4OCkgewogCQljZGluZm8oQ0RfV0FSTklORywgIlJlY2VpdmVkIGludmFsaWQgQkNBIGxlbmd0aCAoJWQpXG4iLCBzLT5iY2EubGVuKTsKLQkJcmV0ID0gLUVJTzsKLQkJZ290byBlcnI7CisJCXJldHVybiAtRUlPOwogCX0KIAltZW1jcHkocy0+YmNhLnZhbHVlLCAmYnVmWzRdLCBzLT5iY2EubGVuKTsKLQlyZXQgPSAwOwotZXJyOgotCWtmcmVlKGJ1Zik7Ci0JcmV0dXJuIHJldDsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGR2ZF9yZWFkX21hbnVmYWN0KHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLCBkdmRfc3RydWN0ICpzKQpAQCAtMjAyMCwxMyArMTkzOSw5IEBACiB7CiAJc3RydWN0IGNkcm9tX2RldmljZV9vcHMgKmNkbyA9IGNkaS0+b3BzOwogCXN0cnVjdCBwYWNrZXRfY29tbWFuZCBjZ2M7Ci0JY2hhciAqYnVmZmVyOworCWNoYXIgYnVmZmVyWzMyXTsKIAlpbnQgcmV0OwogCi0JYnVmZmVyID0ga21hbGxvYygzMiwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFidWZmZXIpCi0JCXJldHVybiAtRU5PTUVNOwotCiAJaW5pdF9jZHJvbV9jb21tYW5kKCZjZ2MsIGJ1ZmZlciwgMTYsIENHQ19EQVRBX1JFQUQpOwogCWNnYy5jbWRbMF0gPSBHUENNRF9SRUFEX1NVQkNIQU5ORUw7CiAJY2djLmNtZFsxXSA9IDI7ICAgICAvKiBNU0YgYWRkcmVzc2luZyAqLwpAQCAtMjAzNSw3ICsxOTUwLDcgQEAKIAljZ2MuY21kWzhdID0gMTY7CiAKIAlpZiAoKHJldCA9IGNkby0+Z2VuZXJpY19wYWNrZXQoY2RpLCAmY2djKSkpCi0JCWdvdG8gZXJyOworCQlyZXR1cm4gcmV0OwogCiAJc3ViY2hubC0+Y2RzY19hdWRpb3N0YXR1cyA9IGNnYy5idWZmZXJbMV07CiAJc3ViY2hubC0+Y2RzY19mb3JtYXQgPSBDRFJPTV9NU0Y7CkBAIC0yMDUwLDEwICsxOTY1LDcgQEAKIAlzdWJjaG5sLT5jZHNjX2Fic2FkZHIubXNmLnNlY29uZCA9IGNnYy5idWZmZXJbMTBdOwogCXN1YmNobmwtPmNkc2NfYWJzYWRkci5tc2YuZnJhbWUgPSBjZ2MuYnVmZmVyWzExXTsKIAotCXJldCA9IDA7Ci1lcnI6Ci0Ja2ZyZWUoYnVmZmVyKTsKLQlyZXR1cm4gcmV0OworCXJldHVybiAwOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jZHJvbS92aW9jZC5jIGIvZHJpdmVycy9jZHJvbS92aW9jZC5jCmluZGV4IDUyNDVhNGEuLjlkMGRmZTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Nkcm9tL3Zpb2NkLmMKKysrIGIvZHJpdmVycy9jZHJvbS92aW9jZC5jCkBAIC02LDcgKzYsNyBAQAogICogIEF1dGhvcnM6IERhdmUgQm91dGNoZXIgPGJvdXRjaGVyQHVzLmlibS5jb20+CiAgKiAgICAgICAgICAgUnlhbiBBcm5vbGQgPHJ5YW5hcm5AdXMuaWJtLmNvbT4KICAqICAgICAgICAgICBDb2xpbiBEZXZpbGJpc3MgPGRldmlsYmlzQHVzLmlibS5jb20+Ci0gKiAgICAgICAgICAgU3RlcGhlbiBSb3Rod2VsbCA8c2ZyQGF1MS5pYm0uY29tPgorICogICAgICAgICAgIFN0ZXBoZW4gUm90aHdlbGwKICAqCiAgKiAoQykgQ29weXJpZ2h0IDIwMDAtMjAwNCBJQk0gQ29ycG9yYXRpb24KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvS2NvbmZpZyBiL2RyaXZlcnMvY2hhci9LY29uZmlnCmluZGV4IDU5NWE5MjUuLjJkODU0YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9LY29uZmlnCisrKyBiL2RyaXZlcnMvY2hhci9LY29uZmlnCkBAIC0xMTgsOCArMTE4LDggQEAKIAkgIG9yZGVyIHRvIGJlY29tZSBhIGRpYWwtaW4gc2VydmVyLiBJZiB5b3UgaGF2ZSBhIGNhcmQgbGlrZSB0aGF0LCBzYXkKIAkgIFkgaGVyZSBhbmQgcmVhZCA8ZmlsZTpEb2N1bWVudGF0aW9uL2NvbXB1dG9uZS50eHQ+LgogCi0JICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIG1vZHVsZXMsIGNob29zZSBNIGhlcmU6IHRoZQotCSAgbW9kdWxlcyB3aWxsIGJlIGNhbGxlZCBpcDIgYW5kIGlwMm1haW4uCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgaXAyLgogCiBjb25maWcgUk9DS0VUUE9SVAogCXRyaXN0YXRlICJDb210cm9sIFJvY2tldFBvcnQgc3VwcG9ydCIKQEAgLTc0OSw3ICs3NDksNyBAQAogaWYgUlRDX0xJQj1uCiAKIGNvbmZpZyBSVEMKLQl0cmlzdGF0ZSAiRW5oYW5jZWQgUmVhbCBUaW1lIENsb2NrIFN1cHBvcnQiCisJdHJpc3RhdGUgIkVuaGFuY2VkIFJlYWwgVGltZSBDbG9jayBTdXBwb3J0IChsZWdhY3kgUEMgUlRDIGRyaXZlcikiCiAJZGVwZW5kcyBvbiAhUFBDICYmICFQQVJJU0MgJiYgIUlBNjQgJiYgIU02OEsgJiYgIVNQQVJDICYmICFGUlYgXAogCQkJJiYgIUFSTSAmJiAhU1VQRVJIICYmICFTMzkwICYmICFBVlIzMgogCS0tLWhlbHAtLS0KQEAgLTEwMzYsOSArMTAzNiw5IEBACiAJICBub24tcGVyaW9kaWMgYW5kL29yIHBlcmlvZGljLgogCiBjb25maWcgSFBFVF9SVENfSVJRCi0JYm9vbCAiSFBFVCBDb250cm9sIFJUQyBJUlEiIGlmICFIUEVUX0VNVUxBVEVfUlRDCi0JZGVmYXVsdCBuCi0JZGVwZW5kcyBvbiBIUEVUCisJYm9vbAorCWRlZmF1bHQgSFBFVF9FTVVMQVRFX1JUQworCWRlcGVuZHMgb24gUlRDICYmIEhQRVQKIAloZWxwCiAJICBJZiB5b3Ugc2F5IFkgaGVyZSwgeW91IHdpbGwgZGlzYWJsZSBSVENfSVJRIGluIGRyaXZlcnMvY2hhci9ydGMuYy4gSXQKIAkgIGlzIGFzc3VtZWQgdGhlIHBsYXRmb3JtIGNhbGxlZCBocGV0X2FsbG9jIHdpdGggdGhlIFJUQyBJUlEgdmFsdWVzIGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL01ha2VmaWxlIGIvZHJpdmVycy9jaGFyL01ha2VmaWxlCmluZGV4IDRjMWM1ODQuLjgxNjMwYTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NoYXIvTWFrZWZpbGUKQEAgLTEwMSw3ICsxMDEsNiBAQAogCiBvYmotJChDT05GSUdfTVdBVkUpCQkrPSBtd2F2ZS8KIG9iai0kKENPTkZJR19BR1ApCQkrPSBhZ3AvCi1vYmotJChDT05GSUdfRFJNKQkJKz0gZHJtLwogb2JqLSQoQ09ORklHX1BDTUNJQSkJCSs9IHBjbWNpYS8KIG9iai0kKENPTkZJR19JUE1JX0hBTkRMRVIpCSs9IGlwbWkvCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYWdwLmggYi9kcml2ZXJzL2NoYXIvYWdwL2FncC5oCmluZGV4IDk5ZTZhNDAuLjgxZTE0YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvYWdwLmgKKysrIGIvZHJpdmVycy9jaGFyL2FncC9hZ3AuaApAQCAtOTksOCArOTksOCBAQAogCWNvbnN0IHZvaWQgKmFwZXJ0dXJlX3NpemVzOwogCWludCBudW1fYXBlcnR1cmVfc2l6ZXM7CiAJZW51bSBhcGVyX3NpemVfdHlwZSBzaXplX3R5cGU7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOwotCWludCBuZWVkc19zY3JhdGNoX3BhZ2U7CisJYm9vbCBjYW50X3VzZV9hcGVydHVyZTsKKwlib29sIG5lZWRzX3NjcmF0Y2hfcGFnZTsKIAljb25zdCBzdHJ1Y3QgZ2F0dF9tYXNrICptYXNrczsKIAlpbnQgKCpmZXRjaF9zaXplKSh2b2lkKTsKIAlpbnQgKCpjb25maWd1cmUpKHZvaWQpOwpAQCAtMjc4LDcgKzI3OCw3IEBACiB2b2lkIGFncF9mcmVlX2tleShpbnQga2V5KTsKIGludCBhZ3BfbnVtX2VudHJpZXModm9pZCk7CiB1MzIgYWdwX2NvbGxlY3RfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2UsIHUzMiBtb2RlLCB1MzIgY29tbWFuZCk7Ci12b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgY29tbWFuZCwgaW50IGFncF92Myk7Cit2b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgY29tbWFuZCwgYm9vbCBhZ3BfdjMpOwogaW50IGFncF8zXzVfZW5hYmxlKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSk7CiB2b2lkIGdsb2JhbF9jYWNoZV9mbHVzaCh2b2lkKTsKIHZvaWQgZ2V0X2FncF92ZXJzaW9uKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2FscGhhLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9hbHBoYS1hZ3AuYwppbmRleCBlNzdjMTc4Li41ZGE4OWY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FscGhhLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvYWxwaGEtYWdwLmMKQEAgLTgwLDcgKzgwLDcgQEAKIAlhZ3AtPm1vZGUuYml0cy5lbmFibGUgPSAxOwogCWFncC0+b3BzLT5jb25maWd1cmUoYWdwKTsKIAotCWFncF9kZXZpY2VfY29tbWFuZChhZ3AtPm1vZGUubHcsIDApOworCWFncF9kZXZpY2VfY29tbWFuZChhZ3AtPm1vZGUubHcsIGZhbHNlKTsKIH0KIAogc3RhdGljIGludCBhbHBoYV9jb3JlX2FncF9pbnNlcnRfbWVtb3J5KHN0cnVjdCBhZ3BfbWVtb3J5ICptZW0sIG9mZl90IHBnX3N0YXJ0LApAQCAtMTI2LDcgKzEyNiw3IEBACiAJLmFwZXJ0dXJlX3NpemVzCQk9IGFscGhhX2NvcmVfYWdwX3NpemVzLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSAxLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAotCS5jYW50X3VzZV9hcGVydHVyZQk9IDEsCisJLmNhbnRfdXNlX2FwZXJ0dXJlCT0gdHJ1ZSwKIAkubWFza3MJCQk9IE5VTEwsCiAKIAkuZmV0Y2hfc2l6ZQkJPSBhbHBoYV9jb3JlX2FncF9mZXRjaF9zaXplLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQtazctYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwppbmRleCA5NmJkYjkyLi4zOWEwNzE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZC1rNy1hZ3AuYwpAQCAtMzE0LDkgKzMxNCw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvYW1kNjQtYWdwLmMKaW5kZXggZDgyMDBhYy4uNDgxZmZlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9hbWQ2NC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2FtZDY0LWFncC5jCkBAIC0xNiwyOCArMTYsOSBAQAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CQkvKiBQQUdFX1NJWkUgKi8KICNpbmNsdWRlIDxhc20vZTgyMC5oPgogI2luY2x1ZGUgPGFzbS9rOC5oPgorI2luY2x1ZGUgPGFzbS9nYXJ0Lmg+CiAjaW5jbHVkZSAiYWdwLmgiCiAKLS8qIFBURSBiaXRzLiAqLwotI2RlZmluZSBHUFRFX1ZBTElECTEKLSNkZWZpbmUgR1BURV9DT0hFUkVOVAkyCi0KLS8qIEFwZXJ0dXJlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KLSNkZWZpbmUgR0FSVEVOCQkoMTw8MCkKLSNkZWZpbmUgRElTR0FSVENQVQkoMTw8NCkKLSNkZWZpbmUgRElTR0FSVElPCSgxPDw1KQotCi0vKiBHQVJUIGNhY2hlIGNvbnRyb2wgcmVnaXN0ZXIgYml0cy4gKi8KLSNkZWZpbmUgSU5WR0FSVAkJKDE8PDApCi0jZGVmaW5lIEdBUlRQVEVFUlIJKDE8PDEpCi0KLS8qIEs4IE9uLWNwdSBHQVJUIHJlZ2lzdGVycyAqLwotI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwJMHg5MAotI2RlZmluZSBBTUQ2NF9HQVJUQVBFUlRVUkVCQVNFCTB4OTQKLSNkZWZpbmUgQU1ENjRfR0FSVFRBQkxFQkFTRQkweDk4Ci0jZGVmaW5lIEFNRDY0X0dBUlRDQUNIRUNUTAkweDljCi0jZGVmaW5lIEFNRDY0X0dBUlRFTgkJKDE8PDApCi0KIC8qIE5WSURJQSBLOCByZWdpc3RlcnMgKi8KICNkZWZpbmUgTlZJRElBX1g4Nl82NF8wX0FQQkFTRQkJMHgxMAogI2RlZmluZSBOVklESUFfWDg2XzY0XzFfQVBCQVNFMQkJMHg1MApAQCAtOTAsOSArNzEsOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWdsb2JhbF9jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTE2NSwyOSArMTQ2LDE4IEBACiAgKiBJbiBhIG11bHRpcHJvY2Vzc29yIHg4Ni02NCBzeXN0ZW0sIHRoaXMgZnVuY3Rpb24gZ2V0cwogICogY2FsbGVkIG9uY2UgZm9yIGVhY2ggQ1BVLgogICovCi1zdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZSAoc3RydWN0IHBjaV9kZXYgKmhhbW1lciwgdTY0IGdhdHRfdGFibGUpCitzdGF0aWMgdTY0IGFtZDY0X2NvbmZpZ3VyZShzdHJ1Y3QgcGNpX2RldiAqaGFtbWVyLCB1NjQgZ2F0dF90YWJsZSkKIHsKIAl1NjQgYXBlcnR1cmViYXNlOwogCXUzMiB0bXA7Ci0JdTY0IGFkZHIsIGFwZXJfYmFzZTsKKwl1NjQgYXBlcl9iYXNlOwogCiAJLyogQWRkcmVzcyB0byBtYXAgdG8gKi8KLQlwY2lfcmVhZF9jb25maWdfZHdvcmQgKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJnRtcCk7CiAJYXBlcnR1cmViYXNlID0gdG1wIDw8IDI1OwogCWFwZXJfYmFzZSA9IChhcGVydHVyZWJhc2UgJiBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLKTsKIAotCS8qIGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmdzIHRhYmxlICovCi0JYWRkciA9ICh1NjQpIGdhdHRfdGFibGU7Ci0JYWRkciA+Pj0gMTI7Ci0JdG1wID0gKHUzMikgYWRkcjw8NDsKLQl0bXAgJj0gfjB4ZjsKLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChoYW1tZXIsIEFNRDY0X0dBUlRUQUJMRUJBU0UsIHRtcCk7Ci0KLQkvKiBFbmFibGUgR0FSVCB0cmFuc2xhdGlvbiBmb3IgdGhpcyBoYW1tZXIuICovCi0JcGNpX3JlYWRfY29uZmlnX2R3b3JkKGhhbW1lciwgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMLCAmdG1wKTsKLQl0bXAgfD0gR0FSVEVOOwotCXRtcCAmPSB+KERJU0dBUlRDUFUgfCBESVNHQVJUSU8pOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQoaGFtbWVyLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsIHRtcCk7CisJZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oaGFtbWVyLCBnYXR0X3RhYmxlKTsKIAogCXJldHVybiBhcGVyX2Jhc2U7CiB9CkBAIC0yMjYsOSArMTk2LDkgQEAKICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9rOF9ub3J0aGJyaWRnZXM7IGkrKykgewogCQlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gazhfbm9ydGhicmlkZ2VzW2ldOwogCQkvKiBkaXNhYmxlIGdhcnQgdHJhbnNsYXRpb24gKi8KLQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CisJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgJnRtcCk7CiAJCXRtcCAmPSB+QU1ENjRfR0FSVEVOOwotCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkIChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKKwkJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgdG1wKTsKIAl9CiB9CiAKQEAgLTI1OCwyNCArMjI4LDEwIEBACiB9OwogCiAvKiBTb21lIGJhc2ljIHNhbml0eSBjaGVja3MgZm9yIHRoZSBhcGVydHVyZS4gKi8KLXN0YXRpYyBpbnQgX19kZXZpbml0IGFwZXJ0dXJlX3ZhbGlkKHU2NCBhcGVyLCB1MzIgc2l6ZSkKK3N0YXRpYyBpbnQgX19kZXZpbml0IGFncF9hcGVydHVyZV92YWxpZCh1NjQgYXBlciwgdTMyIHNpemUpCiB7Ci0JaWYgKGFwZXIgPT0gMCkgewotCQlwcmludGsoS0VSTl9FUlIgUEZYICJObyBhcGVydHVyZVxuIik7CisJaWYgKCFhcGVydHVyZV92YWxpZChhcGVyLCBzaXplLCAzMioxMDI0KjEwMjQpKQogCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKHNpemUgPCAzMioxMDI0KjEwMjQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgdG9vIHNtYWxsICglZCBNQilcbiIsIHNpemU+PjIwKTsKLQkJcmV0dXJuIDA7Ci0JfQotICAgICAgIGlmICgodTY0KWFwZXIgKyBzaXplID4gMHgxMDAwMDAwMDBVTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgb3V0IG9mIGJvdW5kc1xuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXIsIGFwZXIgKyBzaXplLCBFODIwX1JBTSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFBGWCAiQXBlcnR1cmUgcG9pbnRpbmcgdG8gUkFNXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQogCiAJLyogUmVxdWVzdCB0aGUgQXBlcnR1cmUuIFRoaXMgY2F0Y2hlcyBjYXNlcyB3aGVuIHNvbWVvbmUgZWxzZQogCSAgIGFscmVhZHkgcHV0IGEgbWFwcGluZyBpbiB0aGVyZSAtIGhhcHBlbnMgd2l0aCBzb21lIHZlcnkgYnJva2VuIEJJT1MKQEAgLTMwOCwxMSArMjY0LDExIEBACiAJdTMyIG5iX29yZGVyLCBuYl9iYXNlOwogCXUxNiBhcHNpemU7CiAKLQlwY2lfcmVhZF9jb25maWdfZHdvcmQobmIsIDB4OTAsICZuYl9vcmRlcik7CisJcGNpX3JlYWRfY29uZmlnX2R3b3JkKG5iLCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsICZuYl9vcmRlcik7CiAJbmJfb3JkZXIgPSAobmJfb3JkZXIgPj4gMSkgJiA3OwotCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgMHg5NCwgJm5iX2Jhc2UpOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgJm5iX2Jhc2UpOwogCW5iX2FwZXIgPSBuYl9iYXNlIDw8IDI1OwotCWlmIChhcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CisJaWYgKGFncF9hcGVydHVyZV92YWxpZChuYl9hcGVyLCAoMzIqMTAyNCoxMDI0KTw8bmJfb3JkZXIpKSB7CiAJCXJldHVybiAwOwogCX0KIApAQCAtMzMxLDEyICsyODcsMjMgQEAKIAlwY2lfcmVhZF9jb25maWdfZHdvcmQoYWdwLCAweDEwLCAmYXBlcl9sb3cpOwogCXBjaV9yZWFkX2NvbmZpZ19kd29yZChhZ3AsIDB4MTQsICZhcGVyX2hpKTsKIAlhcGVyID0gKGFwZXJfbG93ICYgfigoMTw8MjIpLTEpKSB8ICgodTY0KWFwZXJfaGkgPDwgMzIpOworCisJLyoKKwkgKiBPbiBzb21lIHNpY2sgY2hpcHMgQVBTSVpFIGlzIDAuIFRoaXMgbWVhbnMgaXQgd2FudHMgNEcKKwkgKiBzbyBsZXQgZG91YmxlIGNoZWNrIHRoYXQgb3JkZXIsIGFuZCBsZXRzIHRydXN0IHRoZSBBTUQgTkIgc2V0dGluZ3MKKwkgKi8KKwlpZiAob3JkZXIgPj0wICYmIGFwZXIgKyAoMzJVTEw8PCgyMCArIG9yZGVyKSkgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9JTkZPICJBcGVydHVyZSBzaXplICV1IE1CIGlzIG5vdCByaWdodCwgdXNpbmcgc2V0dGluZ3MgZnJvbSBOQlxuIiwKKwkJCQkgIDMyIDw8IG9yZGVyKTsKKwkJb3JkZXIgPSBuYl9vcmRlcjsKKwl9CisKIAlwcmludGsoS0VSTl9JTkZPIFBGWCAiQXBlcnR1cmUgZnJvbSBBR1AgQCAlTHggc2l6ZSAldSBNQlxuIiwgYXBlciwgMzIgPDwgb3JkZXIpOwotCWlmIChvcmRlciA8IDAgfHwgIWFwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCisJaWYgKG9yZGVyIDwgMCB8fCAhYWdwX2FwZXJ0dXJlX3ZhbGlkKGFwZXIsICgzMioxMDI0KjEwMjQpPDxvcmRlcikpCiAJCXJldHVybiAtMTsKIAotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTAsIG9yZGVyIDw8IDEpOwotCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIDB4OTQsIGFwZXIgPj4gMjUpOworCXBjaV93cml0ZV9jb25maWdfZHdvcmQobmIsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgb3JkZXIgPDwgMSk7CisJcGNpX3dyaXRlX2NvbmZpZ19kd29yZChuYiwgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRSwgYXBlciA+PiAyNSk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYXRpLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKaW5kZXggNTVjOTdmNi4uM2E0NTY2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9hdGktYWdwLmMKQEAgLTI4NywxMCArMjg3LDEwIEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJLypDQUNIRV9GTFVTSCgpOyAqLwogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAKIAlmb3IgKGkgPSAwLCBqID0gcGdfc3RhcnQ7IGkgPCBtZW0tPnBhZ2VfY291bnQ7IGkrKywgaisrKSB7CkBAIC00NTgsNiArNDU4LDEwIEBACiAJCS5jaGlwc2V0X25hbWUJPSAiSUdQOTEwMC9NIiwKIAl9LAogCXsKKwkJLmRldmljZV9pZAk9IFBDSV9ERVZJQ0VfSURfQVRJX1JTMzUwXzEzMywKKwkJLmNoaXBzZXRfbmFtZQk9ICJJR1A5MDAwL00iLAorCX0sCisJewogCQkuZGV2aWNlX2lkCT0gUENJX0RFVklDRV9JRF9BVElfUlMzNTBfMjAwLAogCQkuY2hpcHNldF9uYW1lCT0gIklHUDkxMDAvTSIsCiAJfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvYmFja2VuZC5jIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKaW5kZXggYjFiZGQwMS4uMWVjODcxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9iYWNrZW5kLmMKQEAgLTE4OCwxMCArMTg4LDEwIEBACiAKIGVycl9vdXQ6CiAJaWYgKGJyaWRnZS0+ZHJpdmVyLT5uZWVkc19zY3JhdGNoX3BhZ2UpIHsKLQkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGJyaWRnZS0+c2NyYXRjaF9wYWdlX3JlYWwpLAotCQkJCQkJIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOwotCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCksCi0JCQkJCQkgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCk7CisKKwkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOworCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSh2YSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKIAl9CiAJaWYgKGdvdF9nYXR0KQogCQlicmlkZ2UtPmRyaXZlci0+ZnJlZV9nYXR0X3RhYmxlKGJyaWRnZSk7CkBAIC0yMTUsMTAgKzIxNSwxMCBAQAogCiAJaWYgKGJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlICYmCiAJICAgIGJyaWRnZS0+ZHJpdmVyLT5uZWVkc19zY3JhdGNoX3BhZ2UpIHsKLQkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGJyaWRnZS0+c2NyYXRjaF9wYWdlX3JlYWwpLAotCQkJCQkJIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOwotCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCksCi0JCQkJCQkgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoYnJpZGdlLT5zY3JhdGNoX3BhZ2VfcmVhbCk7CisKKwkJYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsIEFHUF9QQUdFX0RFU1RST1lfVU5NQVApOworCQlicmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZSh2YSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvY29tcGF0X2lvY3RsLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2NvbXBhdF9pb2N0bC5jCmluZGV4IDM5Mjc1NzkuLjU4YzU3Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvY29tcGF0X2lvY3RsLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9jb21wYXRfaW9jdGwuYwpAQCAtMjE0LDcgKzIxNCw3IEBACiAJCXJldF92YWwgPSAtRUlOVkFMOwogCQlnb3RvIGlvY3RsX291dDsKIAl9Ci0JaWYgKChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKSAmJgorCWlmICgoYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgIT0gdHJ1ZSkgJiYKIAkgICAgKGNtZCAhPSBBR1BJT0NfQUNRVUlSRTMyKSkgewogCQlyZXRfdmFsID0gLUVCVVNZOwogCQlnb3RvIGlvY3RsX291dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvZWZmaWNlb24tYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2VmZmljZW9uLWFncC5jCmluZGV4IGNhYzAwMDkuLjhjYTZmMjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZWZmaWNlb24tYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9lZmZpY2Vvbi1hZ3AuYwpAQCAtMjQ5LDkgKzI0OSw5IEBACiAJaWYgKHR5cGUgIT0gMCB8fCBtZW0tPnR5cGUgIT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJbGFzdF9wYWdlID0gTlVMTDsKQEAgLTMyOSw3ICszMjksNyBAQAogCS5mcmVlX2dhdHRfdGFibGUJPSBlZmZpY2Vvbl9mcmVlX2dhdHRfdGFibGUsCiAJLmluc2VydF9tZW1vcnkJCT0gZWZmaWNlb25faW5zZXJ0X21lbW9yeSwKIAkucmVtb3ZlX21lbW9yeQkJPSBlZmZpY2Vvbl9yZW1vdmVfbWVtb3J5LAotCS5jYW50X3VzZV9hcGVydHVyZQk9IDAsCS8vIDEgbWlnaHQgYmUgZmFzdGVyPworCS5jYW50X3VzZV9hcGVydHVyZQk9IGZhbHNlLAkvLyB0cnVlIG1pZ2h0IGJlIGZhc3Rlcj8KIAogCS8vIEdlbmVyaWMKIAkuYWxsb2NfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19ieV90eXBlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9mcm9udGVuZC5jIGIvZHJpdmVycy9jaGFyL2FncC9mcm9udGVuZC5jCmluZGV4IDg1N2IyNjIuLmE5NmYzMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZnJvbnRlbmQuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2Zyb250ZW5kLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4KICNpbmNsdWRlICJhZ3AuaCIKQEAgLTM5NSw3ICszOTYsNyBAQAogCiAJaWYgKGFncF9mZS5jdXJyZW50X2NvbnRyb2xsZXIgPT0gY29udHJvbGxlcikgewogCQlhZ3BfZmUuY3VycmVudF9jb250cm9sbGVyID0gTlVMTDsKLQkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBGQUxTRTsKKwkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBmYWxzZTsKIAkJYWdwX2JhY2tlbmRfcmVsZWFzZShhZ3BfYnJpZGdlKTsKIAl9CiAJa2ZyZWUoY29udHJvbGxlcik7CkBAIC00NDMsNyArNDQ0LDcgQEAKIAl9CiAKIAlhZ3BfZmUuY3VycmVudF9jb250cm9sbGVyID0gTlVMTDsKLQlhZ3BfZmUudXNlZF9ieV9jb250cm9sbGVyID0gRkFMU0U7CisJYWdwX2ZlLnVzZWRfYnlfY29udHJvbGxlciA9IGZhbHNlOwogCWFncF9iYWNrZW5kX3JlbGVhc2UoYWdwX2JyaWRnZSk7CiB9CiAKQEAgLTU3Myw3ICs1NzQsNyBAQAogCiAJbXV0ZXhfbG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKIAotCWlmIChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKQorCWlmIChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSB0cnVlKQogCQlnb3RvIG91dF9lcGVybTsKIAogCWlmICghKHRlc3RfYml0KEFHUF9GRl9JU19WQUxJRCwgJnByaXYtPmFjY2Vzc19mbGFncykpKQpAQCAtNjc3LDYgKzY3OCw3IEBACiAJc3RydWN0IGFncF9jbGllbnQgKmNsaWVudDsKIAlpbnQgcmMgPSAtRU5YSU87CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJihhZ3BfZmUuYWdwX211dGV4KSk7CiAKIAlpZiAobWlub3IgIT0gQUdQR0FSVF9NSU5PUikKQEAgLTcwMywxMiArNzA1LDE0IEBACiAJYWdwX2luc2VydF9maWxlX3ByaXZhdGUocHJpdik7CiAJREJHKCJwcml2YXRlPSVwLCBjbGllbnQ9JXAiLCBwcml2LCBjbGllbnQpOwogCW11dGV4X3VubG9jaygmKGFncF9mZS5hZ3BfbXV0ZXgpKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGVycl9vdXRfbm9tZW06CiAJcmMgPSAtRU5PTUVNOwogZXJyX291dDoKIAltdXRleF91bmxvY2soJihhZ3BfZmUuYWdwX211dGV4KSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApAQCAtNzY4LDcgKzc3Miw3IEBACiAKIAlhdG9taWNfaW5jKCZhZ3BfYnJpZGdlLT5hZ3BfaW5fdXNlKTsKIAotCWFncF9mZS5iYWNrZW5kX2FjcXVpcmVkID0gVFJVRTsKKwlhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCA9IHRydWU7CiAKIAljb250cm9sbGVyID0gYWdwX2ZpbmRfY29udHJvbGxlcl9ieV9waWQocHJpdi0+bXlfcGlkKTsKIApAQCAtNzc4LDcgKzc4Miw3IEBACiAJCWNvbnRyb2xsZXIgPSBhZ3BfY3JlYXRlX2NvbnRyb2xsZXIocHJpdi0+bXlfcGlkKTsKIAogCQlpZiAoY29udHJvbGxlciA9PSBOVUxMKSB7Ci0JCQlhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCA9IEZBTFNFOworCQkJYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgPSBmYWxzZTsKIAkJCWFncF9iYWNrZW5kX3JlbGVhc2UoYWdwX2JyaWRnZSk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQpAQCAtOTgxLDcgKzk4NSw3IEBACiAJCXJldF92YWwgPSAtRUlOVkFMOwogCQlnb3RvIGlvY3RsX291dDsKIAl9Ci0JaWYgKChhZ3BfZmUuYmFja2VuZF9hY3F1aXJlZCAhPSBUUlVFKSAmJgorCWlmICgoYWdwX2ZlLmJhY2tlbmRfYWNxdWlyZWQgIT0gdHJ1ZSkgJiYKIAkgICAgKGNtZCAhPSBBR1BJT0NfQUNRVUlSRSkpIHsKIAkJcmV0X3ZhbCA9IC1FQlVTWTsKIAkJZ290byBpb2N0bF9vdXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL2dlbmVyaWMuYyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCmluZGV4IDdmYzBjOTkuLjU2NGRhYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvZ2VuZXJpYy5jCkBAIC05NiwxMyArOTYsMTMgQEAKIHZvaWQgYWdwX2FsbG9jX3BhZ2VfYXJyYXkoc2l6ZV90IHNpemUsIHN0cnVjdCBhZ3BfbWVtb3J5ICptZW0pCiB7CiAJbWVtLT5tZW1vcnkgPSBOVUxMOwotCW1lbS0+dm1hbGxvY19mbGFnID0gMDsKKwltZW0tPnZtYWxsb2NfZmxhZyA9IGZhbHNlOwogCiAJaWYgKHNpemUgPD0gMipQQUdFX1NJWkUpCiAJCW1lbS0+bWVtb3J5ID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMIHwgX19HRlBfTk9SRVRSWSk7CiAJaWYgKG1lbS0+bWVtb3J5ID09IE5VTEwpIHsKIAkJbWVtLT5tZW1vcnkgPSB2bWFsbG9jKHNpemUpOwotCQltZW0tPnZtYWxsb2NfZmxhZyA9IDE7CisJCW1lbS0+dm1hbGxvY19mbGFnID0gdHJ1ZTsKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKGFncF9hbGxvY19wYWdlX2FycmF5KTsKQEAgLTE4OCw3ICsxODgsNyBAQAogCWlmIChjdXJyID09IE5VTEwpCiAJCXJldHVybjsKIAotCWlmIChjdXJyLT5pc19ib3VuZCA9PSBUUlVFKQorCWlmIChjdXJyLT5pc19ib3VuZCkKIAkJYWdwX3VuYmluZF9tZW1vcnkoY3Vycik7CiAKIAlpZiAoY3Vyci0+dHlwZSA+PSBBR1BfVVNFUl9UWVBFUykgewpAQCAtMjAyLDEwICsyMDIsMTMgQEAKIAl9CiAJaWYgKGN1cnItPnBhZ2VfY291bnQgIT0gMCkgewogCQlmb3IgKGkgPSAwOyBpIDwgY3Vyci0+cGFnZV9jb3VudDsgaSsrKSB7Ci0JCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSwgQUdQX1BBR0VfREVTVFJPWV9VTk1BUCk7CisJCQljdXJyLT5tZW1vcnlbaV0gPSAodW5zaWduZWQgbG9uZylnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKTsKKwkJCWN1cnItPmJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKCh2b2lkICopY3Vyci0+bWVtb3J5W2ldLAorCQkJCQkJCSAgICAgICBBR1BfUEFHRV9ERVNUUk9ZX1VOTUFQKTsKIAkJfQogCQlmb3IgKGkgPSAwOyBpIDwgY3Vyci0+cGFnZV9jb3VudDsgaSsrKSB7Ci0JCQljdXJyLT5icmlkZ2UtPmRyaXZlci0+YWdwX2Rlc3Ryb3lfcGFnZShnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5W2ldKSwgQUdQX1BBR0VfREVTVFJPWV9GUkVFKTsKKwkJCWN1cnItPmJyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKCh2b2lkICopY3Vyci0+bWVtb3J5W2ldLAorCQkJCQkJCSAgICAgICBBR1BfUEFHRV9ERVNUUk9ZX0ZSRUUpOwogCQl9CiAJfQogCWFncF9mcmVlX2tleShjdXJyLT5rZXkpOwpAQCAtNDExLDIwICs0MTQsMjAgQEAKIAlpZiAoY3VyciA9PSBOVUxMKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmIChjdXJyLT5pc19ib3VuZCA9PSBUUlVFKSB7CisJaWYgKGN1cnItPmlzX2JvdW5kKSB7CiAJCXByaW50ayhLRVJOX0lORk8gUEZYICJtZW1vcnkgJXAgaXMgYWxyZWFkeSBib3VuZCFcbiIsIGN1cnIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9Ci0JaWYgKGN1cnItPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIWN1cnItPmlzX2ZsdXNoZWQpIHsKIAkJY3Vyci0+YnJpZGdlLT5kcml2ZXItPmNhY2hlX2ZsdXNoKCk7Ci0JCWN1cnItPmlzX2ZsdXNoZWQgPSBUUlVFOworCQljdXJyLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAJcmV0X3ZhbCA9IGN1cnItPmJyaWRnZS0+ZHJpdmVyLT5pbnNlcnRfbWVtb3J5KGN1cnIsIHBnX3N0YXJ0LCBjdXJyLT50eXBlKTsKIAogCWlmIChyZXRfdmFsICE9IDApCiAJCXJldHVybiByZXRfdmFsOwogCi0JY3Vyci0+aXNfYm91bmQgPSBUUlVFOworCWN1cnItPmlzX2JvdW5kID0gdHJ1ZTsKIAljdXJyLT5wZ19zdGFydCA9IHBnX3N0YXJ0OwogCXJldHVybiAwOwogfQpAQCAtNDQ2LDcgKzQ0OSw3IEBACiAJaWYgKGN1cnIgPT0gTlVMTCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoY3Vyci0+aXNfYm91bmQgIT0gVFJVRSkgeworCWlmICghY3Vyci0+aXNfYm91bmQpIHsKIAkJcHJpbnRrKEtFUk5fSU5GTyBQRlggIm1lbW9yeSAlcCB3YXMgbm90IGJvdW5kIVxuIiwgY3Vycik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTQ1Niw3ICs0NTksNyBAQAogCWlmIChyZXRfdmFsICE9IDApCiAJCXJldHVybiByZXRfdmFsOwogCi0JY3Vyci0+aXNfYm91bmQgPSBGQUxTRTsKKwljdXJyLT5pc19ib3VuZCA9IGZhbHNlOwogCWN1cnItPnBnX3N0YXJ0ID0gMDsKIAlyZXR1cm4gMDsKIH0KQEAgLTc1NCw3ICs3NTcsNyBAQAogRVhQT1JUX1NZTUJPTChhZ3BfY29sbGVjdF9kZXZpY2Vfc3RhdHVzKTsKIAogCi12b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgYnJpZGdlX2FncHN0YXQsIGludCBhZ3BfdjMpCit2b2lkIGFncF9kZXZpY2VfY29tbWFuZCh1MzIgYnJpZGdlX2FncHN0YXQsIGJvb2wgYWdwX3YzKQogewogCXN0cnVjdCBwY2lfZGV2ICpkZXZpY2UgPSBOVUxMOwogCWludCBtb2RlOwpAQCAtODE4LDcgKzgyMSw3IEBACiAJCQkvKiBJZiB3ZSBoYXZlIDMuNSwgd2UgY2FuIGRvIHRoZSBpc29jaCBzdHVmZi4gKi8KIAkJCWlmIChicmlkZ2UtPm1pbm9yX3ZlcnNpb24gPj0gNSkKIAkJCQlhZ3BfM181X2VuYWJsZShicmlkZ2UpOwotCQkJYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBUUlVFKTsKKwkJCWFncF9kZXZpY2VfY29tbWFuZChicmlkZ2VfYWdwc3RhdCwgdHJ1ZSk7CiAJCQlyZXR1cm47CiAJCX0gZWxzZSB7CiAJCSAgICAvKiBEaXNhYmxlIGNhbGlicmF0aW9uIGN5Y2xlIGluIFJYOTE8MT4gd2hlbiBub3QgaW4gQUdQMy4wIG1vZGUgb2Ygb3BlcmF0aW9uLiovCkBAIC04MzUsNyArODM4LDcgQEAKIAl9CiAKIAkvKiBBR1AgdjwzICovCi0JYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBGQUxTRSk7CisJYWdwX2RldmljZV9jb21tYW5kKGJyaWRnZV9hZ3BzdGF0LCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGFncF9nZW5lcmljX2VuYWJsZSk7CiAKQEAgLTEwODMsOSArMTA4Niw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJYnJpZGdlLT5kcml2ZXItPmNhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9ocC1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvaHAtYWdwLmMKaW5kZXggY2JiMDQ0NC4uODBkNzMxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9ocC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2hwLWFncC5jCkBAIC0zNTMsOSArMzUzLDkgQEAKIAkJaisrOwogCX0KIAotCWlmIChtZW0tPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIW1lbS0+aXNfZmx1c2hlZCkgewogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAKIAlmb3IgKGkgPSAwLCBqID0gaW9fcGdfc3RhcnQ7IGkgPCBtZW0tPnBhZ2VfY291bnQ7IGkrKykgewpAQCAtNDM3LDcgKzQzNyw3IEBACiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9pNDYwLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9pNDYwLWFncC5jCmluZGV4IDc2ZjU4MWMuLmU1ODdlZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvaTQ2MC1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL2k0NjAtYWdwLmMKQEAgLTU4MCw3ICs1ODAsNyBAQAogCS5hbGxvY19ieV90eXBlCQk9IGFncF9nZW5lcmljX2FsbG9jX2J5X3R5cGUsCiAJLmZyZWVfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19mcmVlX2J5X3R5cGUsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBhZ3BfaW50ZWxfaTQ2MF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWFncC5jCmluZGV4IGVlZWE1MGEuLmRmNzAyNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1hZ3AuYwpAQCAtMzQsNiArMzQsMTIgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9RMzNfSUcgICAgICAgICAgMHgyOUQyCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCICAgICAgICAgIDB4MkE0MAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9JRyAgICAgICAgICAweDJBNDIKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfRV9IQiAgICAgICAgMHgyRTAwCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0VfSUcgICAgICAgIDB4MkUwMgorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQiAgICAgICAgICAweDJFMTAKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9RNDVfSUcgICAgICAgICAgMHgyRTEyCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCICAgICAgICAgIDB4MkUyMAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0c0NV9JRyAgICAgICAgICAweDJFMjIKIAogLyogY292ZXIgOTE1IGFuZCA5NDUgdmFyaWFudHMgKi8KICNkZWZpbmUgSVNfSTkxNSAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9FNzIyMV9IQiB8fCBcCkBAIC01NSw2ICs2MSwxMCBAQAogCQlhZ3BfYnJpZGdlLT5kZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX1EzNV9IQiB8fCBcCiAJCWFncF9icmlkZ2UtPmRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfUTMzX0hCKQogCisjZGVmaW5lIElTX0c0WCAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfRV9IQiB8fCBcCisJCWFncF9icmlkZ2UtPmRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfSU5URUxfUTQ1X0hCIHx8IFwKKwkJYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9HNDVfSEIpCisKIGV4dGVybiBpbnQgYWdwX21lbW9yeV9yZXNlcnZlZDsKIAogCkBAIC04MCw4ICs5MCwxMyBAQAogI2RlZmluZSBJOTE1X1BURUFERFIJMHgxQwogI2RlZmluZSBJOTE1X0dNQ0hfR01TX1NUT0xFTl80OE0JKDB4NiA8PCA0KQogI2RlZmluZSBJOTE1X0dNQ0hfR01TX1NUT0xFTl82NE0JKDB4NyA8PCA0KQotI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzEyOE0gICAgICAgKDB4OCA8PCA0KQotI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzI1Nk0gICAgICAgKDB4OSA8PCA0KQorI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzEyOE0JKDB4OCA8PCA0KQorI2RlZmluZSBHMzNfR01DSF9HTVNfU1RPTEVOXzI1Nk0JKDB4OSA8PCA0KQorI2RlZmluZSBJTlRFTF9HTUNIX0dNU19TVE9MRU5fOTZNCSgweGEgPDwgNCkKKyNkZWZpbmUgSU5URUxfR01DSF9HTVNfU1RPTEVOXzE2ME0JKDB4YiA8PCA0KQorI2RlZmluZSBJTlRFTF9HTUNIX0dNU19TVE9MRU5fMjI0TQkoMHhjIDw8IDQpCisjZGVmaW5lIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8zNTJNCSgweGQgPDwgNCkKKwogI2RlZmluZSBJOTE1X0lGUEFERFIgICAgMHg2MAogCiAvKiBJbnRlbCA5NjVHIHJlZ2lzdGVycyAqLwpAQCAtMzI1LDcgKzM0MCw3IEBACiBvdXQ6CiAJcmV0ID0gMDsKIG91dF9lcnI6Ci0JbWVtLT5pc19mbHVzaGVkID0gMTsKKwltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTQxOCw5ICs0MzMsMTEgQEAKIAkJaWYgKGN1cnItPnBhZ2VfY291bnQgPT0gNCkKIAkJCWk4eHhfZGVzdHJveV9wYWdlcyhnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKSk7CiAJCWVsc2UgewotCQkJYWdwX2JyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKGdhcnRfdG9fdmlydChjdXJyLT5tZW1vcnlbMF0pLAorCQkJdm9pZCAqdmEgPSBnYXJ0X3RvX3ZpcnQoY3Vyci0+bWVtb3J5WzBdKTsKKworCQkJYWdwX2JyaWRnZS0+ZHJpdmVyLT5hZ3BfZGVzdHJveV9wYWdlKHZhLAogCQkJCQkJCSAgICAgQUdQX1BBR0VfREVTVFJPWV9VTk1BUCk7Ci0JCQlhZ3BfYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UoZ2FydF90b192aXJ0KGN1cnItPm1lbW9yeVswXSksCisJCQlhZ3BfYnJpZGdlLT5kcml2ZXItPmFncF9kZXN0cm95X3BhZ2UodmEsCiAJCQkJCQkJICAgICBBR1BfUEFHRV9ERVNUUk9ZX0ZSRUUpOwogCQl9CiAJCWFncF9mcmVlX3BhZ2VfYXJyYXkoY3Vycik7CkBAIC01MDQsNiArNTIxLDEwIEBACiAJCQlzaXplID0gNTEyOwogCQl9CiAJCXNpemUgKz0gNDsKKwl9IGVsc2UgaWYgKElTX0c0WCkgeworCQkvKiBPbiA0IHNlcmllcyBoYXJkd2FyZSwgR1RUIHN0b2xlbiBpcyBzZXBhcmF0ZSBmcm9tIGdyYXBoaWNzCisJCSAqIHN0b2xlbiwgaWdub3JlIGl0IGluIHN0b2xlbiBndHQgZW50cmllcyBjb3VudGluZyAqLworCQlzaXplID0gMDsKIAl9IGVsc2UgewogCQkvKiBPbiBwcmV2aW91cyBoYXJkd2FyZSwgdGhlIEdUVCBzaXplIHdhcyBqdXN0IHdoYXQgd2FzCiAJCSAqIHJlcXVpcmVkIHRvIG1hcCB0aGUgYXBlcnR1cmUuCkBAIC01NTIsMzAgKzU3Myw1NCBAQAogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9HTUNIX0dNU19TVE9MRU5fNDhNOgogCQkJLyogQ2hlY2sgaXQncyByZWFsbHkgSTkxNUcgKi8KLQkJCWlmIChJU19JOTE1IHx8IElTX0k5NjUgfHwgSVNfRzMzKQorCQkJaWYgKElTX0k5MTUgfHwgSVNfSTk2NSB8fCBJU19HMzMgfHwgSVNfRzRYKQogCQkJCWd0dF9lbnRyaWVzID0gTUIoNDgpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgSTkxNV9HTUNIX0dNU19TVE9MRU5fNjRNOgogCQkJLyogQ2hlY2sgaXQncyByZWFsbHkgSTkxNUcgKi8KLQkJCWlmIChJU19JOTE1IHx8IElTX0k5NjUgfHwgSVNfRzMzKQorCQkJaWYgKElTX0k5MTUgfHwgSVNfSTk2NSB8fCBJU19HMzMgfHwgSVNfRzRYKQogCQkJCWd0dF9lbnRyaWVzID0gTUIoNjQpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgRzMzX0dNQ0hfR01TX1NUT0xFTl8xMjhNOgotCQkJaWYgKElTX0czMykKKwkJCWlmIChJU19HMzMgfHwgSVNfSTk2NSB8fCBJU19HNFgpCiAJCQkJZ3R0X2VudHJpZXMgPSBNQigxMjgpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CiAJCWNhc2UgRzMzX0dNQ0hfR01TX1NUT0xFTl8yNTZNOgotCQkJaWYgKElTX0czMykKKwkJCWlmIChJU19HMzMgfHwgSVNfSTk2NSB8fCBJU19HNFgpCiAJCQkJZ3R0X2VudHJpZXMgPSBNQigyNTYpIC0gS0Ioc2l6ZSk7CiAJCQllbHNlCiAJCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CisJCWNhc2UgSU5URUxfR01DSF9HTVNfU1RPTEVOXzk2TToKKwkJCWlmIChJU19JOTY1IHx8IElTX0c0WCkKKwkJCQlndHRfZW50cmllcyA9IE1CKDk2KSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8xNjBNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMTYwKSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8yMjRNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMjI0KSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOworCQljYXNlIElOVEVMX0dNQ0hfR01TX1NUT0xFTl8zNTJNOgorCQkJaWYgKElTX0k5NjUgfHwgSVNfRzRYKQorCQkJCWd0dF9lbnRyaWVzID0gTUIoMzUyKSAtIEtCKHNpemUpOworCQkJZWxzZQorCQkJCWd0dF9lbnRyaWVzID0gMDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZ3R0X2VudHJpZXMgPSAwOwogCQkJYnJlYWs7CkBAIC03OTMsNyArODM4LDcgQEAKIG91dDoKIAlyZXQgPSAwOwogb3V0X2VycjoKLQltZW0tPmlzX2ZsdXNoZWQgPSAxOworCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtOTAzLDcgKzk0OCw3IEBACiAJaW50ZWxfcHJpdmF0ZS5pZnBfcmVzb3VyY2UuZmxhZ3MgPSBJT1JFU09VUkNFX01FTTsKIAogCS8qIFNldHVwIGNoaXBzZXQgZmx1c2ggZm9yIDkxNSAqLwotCWlmIChJU19JOTY1IHx8IElTX0czMykgeworCWlmIChJU19JOTY1IHx8IElTX0czMyB8fCBJU19HNFgpIHsKIAkJaW50ZWxfaTk2NV9nMzNfc2V0dXBfY2hpcHNldF9mbHVzaCgpOwogCX0gZWxzZSB7CiAJCWludGVsX2k5MTVfc2V0dXBfY2hpcHNldF9mbHVzaCgpOwpAQCAtMTAyMCw3ICsxMDY1LDcgQEAKICBvdXQ6CiAJcmV0ID0gMDsKICBvdXRfZXJyOgotCW1lbS0+aXNfZmx1c2hlZCA9IDE7CisJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMTM0LDUzICsxMTc5LDY0IEBACiAJcmV0dXJuIGFkZHIgfCBicmlkZ2UtPmRyaXZlci0+bWFza3NbdHlwZV0ubWFzazsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfaTk2NV9nZXRfZ3R0X3JhbmdlKGludCAqZ3R0X29mZnNldCwgaW50ICpndHRfc2l6ZSkKK3sKKwlzd2l0Y2ggKGFncF9icmlkZ2UtPmRldi0+ZGV2aWNlKSB7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9IQjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0VfSEI6CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQjoKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCOgorCQkqZ3R0X29mZnNldCA9ICpndHRfc2l6ZSA9IE1CKDIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQkqZ3R0X29mZnNldCA9ICpndHRfc2l6ZSA9IEtCKDUxMik7CisJfQorfQorCiAvKiBUaGUgaW50ZWwgaTk2NSBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVzIHRoZSBhZ3AgYXBlcnR1cmUgZHVyaW5nIFBPU1QuCiAgKiBVc2UgdGhlIG1lbW9yeSBhbHJlYWR5IHNldCBhc2lkZSBmb3IgaW4gdGhlIEdUVC4KICAqLwogc3RhdGljIGludCBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlKHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSkKIHsKLSAgICAgICBpbnQgcGFnZV9vcmRlcjsKLSAgICAgICBzdHJ1Y3QgYXBlcl9zaXplX2luZm9fZml4ZWQgKnNpemU7Ci0gICAgICAgaW50IG51bV9lbnRyaWVzOwotICAgICAgIHUzMiB0ZW1wOwotICAgICAgIGludCBndHRfb2Zmc2V0LCBndHRfc2l6ZTsKKwlpbnQgcGFnZV9vcmRlcjsKKwlzdHJ1Y3QgYXBlcl9zaXplX2luZm9fZml4ZWQgKnNpemU7CisJaW50IG51bV9lbnRyaWVzOworCXUzMiB0ZW1wOworCWludCBndHRfb2Zmc2V0LCBndHRfc2l6ZTsKIAotICAgICAgIHNpemUgPSBhZ3BfYnJpZGdlLT5jdXJyZW50X3NpemU7Ci0gICAgICAgcGFnZV9vcmRlciA9IHNpemUtPnBhZ2Vfb3JkZXI7Ci0gICAgICAgbnVtX2VudHJpZXMgPSBzaXplLT5udW1fZW50cmllczsKLSAgICAgICBhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSBOVUxMOworCXNpemUgPSBhZ3BfYnJpZGdlLT5jdXJyZW50X3NpemU7CisJcGFnZV9vcmRlciA9IHNpemUtPnBhZ2Vfb3JkZXI7CisJbnVtX2VudHJpZXMgPSBzaXplLT5udW1fZW50cmllczsKKwlhZ3BfYnJpZGdlLT5nYXR0X3RhYmxlX3JlYWwgPSBOVUxMOwogCi0gICAgICAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKGludGVsX3ByaXZhdGUucGNpZGV2LCBJOTE1X01NQUREUiwgJnRlbXApOworCXBjaV9yZWFkX2NvbmZpZ19kd29yZChpbnRlbF9wcml2YXRlLnBjaWRldiwgSTkxNV9NTUFERFIsICZ0ZW1wKTsKIAotICAgICAgIHRlbXAgJj0gMHhmZmYwMDAwMDsKKwl0ZW1wICY9IDB4ZmZmMDAwMDA7CiAKLSAgICAgICBpZiAoYWdwX2JyaWRnZS0+ZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JR0RfSEIpCi0JICAgICAgIGd0dF9vZmZzZXQgPSBndHRfc2l6ZSA9IE1CKDIpOwotICAgICAgIGVsc2UKLQkgICAgICAgZ3R0X29mZnNldCA9IGd0dF9zaXplID0gS0IoNTEyKTsKKwlpbnRlbF9pOTY1X2dldF9ndHRfcmFuZ2UoJmd0dF9vZmZzZXQsICZndHRfc2l6ZSk7CiAKLSAgICAgICBpbnRlbF9wcml2YXRlLmd0dCA9IGlvcmVtYXAoKHRlbXAgKyBndHRfb2Zmc2V0KSAsIGd0dF9zaXplKTsKKwlpbnRlbF9wcml2YXRlLmd0dCA9IGlvcmVtYXAoKHRlbXAgKyBndHRfb2Zmc2V0KSAsIGd0dF9zaXplKTsKIAotICAgICAgIGlmICghaW50ZWxfcHJpdmF0ZS5ndHQpCi0JICAgICAgIHJldHVybiAtRU5PTUVNOworCWlmICghaW50ZWxfcHJpdmF0ZS5ndHQpCisJCXJldHVybiAtRU5PTUVNOwogCi0gICAgICAgaW50ZWxfcHJpdmF0ZS5yZWdpc3RlcnMgPSBpb3JlbWFwKHRlbXAsIDEyOCAqIDQwOTYpOwotICAgICAgIGlmICghaW50ZWxfcHJpdmF0ZS5yZWdpc3RlcnMpIHsKKwlpbnRlbF9wcml2YXRlLnJlZ2lzdGVycyA9IGlvcmVtYXAodGVtcCwgMTI4ICogNDA5Nik7CisJaWYgKCFpbnRlbF9wcml2YXRlLnJlZ2lzdGVycykgewogCQlpb3VubWFwKGludGVsX3ByaXZhdGUuZ3R0KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0gICAgICAgdGVtcCA9IHJlYWRsKGludGVsX3ByaXZhdGUucmVnaXN0ZXJzK0k4MTBfUEdFVEJMX0NUTCkgJiAweGZmZmZmMDAwOwotICAgICAgIGdsb2JhbF9jYWNoZV9mbHVzaCgpOyAgIC8qIEZJWE1FOiA/ICovCisJdGVtcCA9IHJlYWRsKGludGVsX3ByaXZhdGUucmVnaXN0ZXJzK0k4MTBfUEdFVEJMX0NUTCkgJiAweGZmZmZmMDAwOworCWdsb2JhbF9jYWNoZV9mbHVzaCgpOyAgIC8qIEZJWE1FOiA/ICovCiAKLSAgICAgICAvKiB3ZSBoYXZlIHRvIGNhbGwgdGhpcyBhcyBlYXJseSBhcyBwb3NzaWJsZSBhZnRlciB0aGUgTU1JTyBiYXNlIGFkZHJlc3MgaXMga25vd24gKi8KLSAgICAgICBpbnRlbF9pODMwX2luaXRfZ3R0X2VudHJpZXMoKTsKKwkvKiB3ZSBoYXZlIHRvIGNhbGwgdGhpcyBhcyBlYXJseSBhcyBwb3NzaWJsZSBhZnRlciB0aGUgTU1JTyBiYXNlIGFkZHJlc3MgaXMga25vd24gKi8KKwlpbnRlbF9pODMwX2luaXRfZ3R0X2VudHJpZXMoKTsKIAotICAgICAgIGFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSBOVUxMOworCWFncF9icmlkZ2UtPmdhdHRfdGFibGUgPSBOVUxMOwogCi0gICAgICAgYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHRlbXA7CisJYWdwX2JyaWRnZS0+Z2F0dF9idXNfYWRkciA9IHRlbXA7CiAKLSAgICAgICByZXR1cm4gMDsKKwlyZXR1cm4gMDsKIH0KIAogCkBAIC0xNjU2LDcgKzE3MTIsNyBAQAogCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODEwX3NpemVzLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSAyLAotCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSBUUlVFLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogCS5jb25maWd1cmUJCT0gaW50ZWxfaTgxMF9jb25maWd1cmUsCiAJLmZldGNoX3NpemUJCT0gaW50ZWxfaTgxMF9mZXRjaF9zaXplLAogCS5jbGVhbnVwCQk9IGludGVsX2k4MTBfY2xlYW51cCwKQEAgLTE2OTcsNyArMTc1Myw3IEBACiAJLmZyZWVfYnlfdHlwZQkJPSBhZ3BfZ2VuZXJpY19mcmVlX2J5X3R5cGUsCiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCi0JLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKKwkuYWdwX3R5cGVfdG9fbWFza190eXBlCT0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGFncF9icmlkZ2VfZHJpdmVyIGludGVsXzgzMF9kcml2ZXIgPSB7CkBAIC0xNzA1LDcgKzE3NjEsNyBAQAogCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODMwX3NpemVzLAogCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAogCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSA0LAotCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSBUUlVFLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogCS5jb25maWd1cmUJCT0gaW50ZWxfaTgzMF9jb25maWd1cmUsCiAJLmZldGNoX3NpemUJCT0gaW50ZWxfaTgzMF9mZXRjaF9zaXplLAogCS5jbGVhbnVwCQk9IGludGVsX2k4MzBfY2xlYW51cCwKQEAgLTE4NzYsNyArMTkzMiw3IEBACiAJLmFwZXJ0dXJlX3NpemVzCQk9IGludGVsX2k4MzBfc2l6ZXMsCiAJLnNpemVfdHlwZQkJPSBGSVhFRF9BUEVSX1NJWkUsCiAJLm51bV9hcGVydHVyZV9zaXplcwk9IDQsCi0JLm5lZWRzX3NjcmF0Y2hfcGFnZQk9IFRSVUUsCisJLm5lZWRzX3NjcmF0Y2hfcGFnZQk9IHRydWUsCiAJLmNvbmZpZ3VyZQkJPSBpbnRlbF9pOTE1X2NvbmZpZ3VyZSwKIAkuZmV0Y2hfc2l6ZQkJPSBpbnRlbF9pOXh4X2ZldGNoX3NpemUsCiAJLmNsZWFudXAJCT0gaW50ZWxfaTkxNV9jbGVhbnVwLApAQCAtMTg5OCwyOCArMTk1NCwyOCBAQAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZ3BfYnJpZGdlX2RyaXZlciBpbnRlbF9pOTY1X2RyaXZlciA9IHsKLSAgICAgICAub3duZXIgICAgICAgICAgICAgICAgICA9IFRISVNfTU9EVUxFLAotICAgICAgIC5hcGVydHVyZV9zaXplcyAgICAgICAgID0gaW50ZWxfaTgzMF9zaXplcywKLSAgICAgICAuc2l6ZV90eXBlICAgICAgICAgICAgICA9IEZJWEVEX0FQRVJfU0laRSwKLSAgICAgICAubnVtX2FwZXJ0dXJlX3NpemVzICAgICA9IDQsCi0gICAgICAgLm5lZWRzX3NjcmF0Y2hfcGFnZSAgICAgPSBUUlVFLAotICAgICAgIC5jb25maWd1cmUgICAgICAgICAgICAgID0gaW50ZWxfaTkxNV9jb25maWd1cmUsCi0gICAgICAgLmZldGNoX3NpemUgICAgICAgICAgICAgPSBpbnRlbF9pOXh4X2ZldGNoX3NpemUsCi0gICAgICAgLmNsZWFudXAgICAgICAgICAgICAgICAgPSBpbnRlbF9pOTE1X2NsZWFudXAsCi0gICAgICAgLnRsYl9mbHVzaCAgICAgICAgICAgICAgPSBpbnRlbF9pODEwX3RsYmZsdXNoLAotICAgICAgIC5tYXNrX21lbW9yeSAgICAgICAgICAgID0gaW50ZWxfaTk2NV9tYXNrX21lbW9yeSwKLSAgICAgICAubWFza3MgICAgICAgICAgICAgICAgICA9IGludGVsX2k4MTBfbWFza3MsCi0gICAgICAgLmFncF9lbmFibGUgICAgICAgICAgICAgPSBpbnRlbF9pODEwX2FncF9lbmFibGUsCi0gICAgICAgLmNhY2hlX2ZsdXNoICAgICAgICAgICAgPSBnbG9iYWxfY2FjaGVfZmx1c2gsCi0gICAgICAgLmNyZWF0ZV9nYXR0X3RhYmxlICAgICAgPSBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlLAotICAgICAgIC5mcmVlX2dhdHRfdGFibGUgICAgICAgID0gaW50ZWxfaTgzMF9mcmVlX2dhdHRfdGFibGUsCi0gICAgICAgLmluc2VydF9tZW1vcnkgICAgICAgICAgPSBpbnRlbF9pOTE1X2luc2VydF9lbnRyaWVzLAotICAgICAgIC5yZW1vdmVfbWVtb3J5ICAgICAgICAgID0gaW50ZWxfaTkxNV9yZW1vdmVfZW50cmllcywKLSAgICAgICAuYWxsb2NfYnlfdHlwZSAgICAgICAgICA9IGludGVsX2k4MzBfYWxsb2NfYnlfdHlwZSwKLSAgICAgICAuZnJlZV9ieV90eXBlICAgICAgICAgICA9IGludGVsX2k4MTBfZnJlZV9ieV90eXBlLAotICAgICAgIC5hZ3BfYWxsb2NfcGFnZSAgICAgICAgID0gYWdwX2dlbmVyaWNfYWxsb2NfcGFnZSwKLSAgICAgICAuYWdwX2Rlc3Ryb3lfcGFnZSAgICAgICA9IGFncF9nZW5lcmljX2Rlc3Ryb3lfcGFnZSwKLSAgICAgICAuYWdwX3R5cGVfdG9fbWFza190eXBlICA9IGludGVsX2k4MzBfdHlwZV90b19tYXNrX3R5cGUsCisJLm93bmVyCQkJPSBUSElTX01PRFVMRSwKKwkuYXBlcnR1cmVfc2l6ZXMJCT0gaW50ZWxfaTgzMF9zaXplcywKKwkuc2l6ZV90eXBlCQk9IEZJWEVEX0FQRVJfU0laRSwKKwkubnVtX2FwZXJ0dXJlX3NpemVzCT0gNCwKKwkubmVlZHNfc2NyYXRjaF9wYWdlCT0gdHJ1ZSwKKwkuY29uZmlndXJlCQk9IGludGVsX2k5MTVfY29uZmlndXJlLAorCS5mZXRjaF9zaXplCQk9IGludGVsX2k5eHhfZmV0Y2hfc2l6ZSwKKwkuY2xlYW51cAkJPSBpbnRlbF9pOTE1X2NsZWFudXAsCisJLnRsYl9mbHVzaAkJPSBpbnRlbF9pODEwX3RsYmZsdXNoLAorCS5tYXNrX21lbW9yeQkJPSBpbnRlbF9pOTY1X21hc2tfbWVtb3J5LAorCS5tYXNrcwkJCT0gaW50ZWxfaTgxMF9tYXNrcywKKwkuYWdwX2VuYWJsZQkJPSBpbnRlbF9pODEwX2FncF9lbmFibGUsCisJLmNhY2hlX2ZsdXNoCQk9IGdsb2JhbF9jYWNoZV9mbHVzaCwKKwkuY3JlYXRlX2dhdHRfdGFibGUJPSBpbnRlbF9pOTY1X2NyZWF0ZV9nYXR0X3RhYmxlLAorCS5mcmVlX2dhdHRfdGFibGUJPSBpbnRlbF9pODMwX2ZyZWVfZ2F0dF90YWJsZSwKKwkuaW5zZXJ0X21lbW9yeQkJPSBpbnRlbF9pOTE1X2luc2VydF9lbnRyaWVzLAorCS5yZW1vdmVfbWVtb3J5CQk9IGludGVsX2k5MTVfcmVtb3ZlX2VudHJpZXMsCisJLmFsbG9jX2J5X3R5cGUJCT0gaW50ZWxfaTgzMF9hbGxvY19ieV90eXBlLAorCS5mcmVlX2J5X3R5cGUJCT0gaW50ZWxfaTgxMF9mcmVlX2J5X3R5cGUsCisJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCisJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCisJLmFncF90eXBlX3RvX21hc2tfdHlwZQk9IGludGVsX2k4MzBfdHlwZV90b19tYXNrX3R5cGUsCiAJLmNoaXBzZXRfZmx1c2gJCT0gaW50ZWxfaTkxNV9jaGlwc2V0X2ZsdXNoLAogfTsKIApAQCAtMTk0OCwyOCArMjAwNCwyOCBAQAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBhZ3BfYnJpZGdlX2RyaXZlciBpbnRlbF9nMzNfZHJpdmVyID0gewotCS5vd25lciAgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCi0JLmFwZXJ0dXJlX3NpemVzICAgICAgICAgPSBpbnRlbF9pODMwX3NpemVzLAotCS5zaXplX3R5cGUgICAgICAgICAgICAgID0gRklYRURfQVBFUl9TSVpFLAotCS5udW1fYXBlcnR1cmVfc2l6ZXMgICAgID0gNCwKLQkubmVlZHNfc2NyYXRjaF9wYWdlICAgICA9IFRSVUUsCi0JLmNvbmZpZ3VyZSAgICAgICAgICAgICAgPSBpbnRlbF9pOTE1X2NvbmZpZ3VyZSwKLQkuZmV0Y2hfc2l6ZSAgICAgICAgICAgICA9IGludGVsX2k5eHhfZmV0Y2hfc2l6ZSwKLQkuY2xlYW51cCAgICAgICAgICAgICAgICA9IGludGVsX2k5MTVfY2xlYW51cCwKLQkudGxiX2ZsdXNoICAgICAgICAgICAgICA9IGludGVsX2k4MTBfdGxiZmx1c2gsCi0JLm1hc2tfbWVtb3J5ICAgICAgICAgICAgPSBpbnRlbF9pOTY1X21hc2tfbWVtb3J5LAotCS5tYXNrcyAgICAgICAgICAgICAgICAgID0gaW50ZWxfaTgxMF9tYXNrcywKLQkuYWdwX2VuYWJsZSAgICAgICAgICAgICA9IGludGVsX2k4MTBfYWdwX2VuYWJsZSwKLQkuY2FjaGVfZmx1c2ggICAgICAgICAgICA9IGdsb2JhbF9jYWNoZV9mbHVzaCwKLQkuY3JlYXRlX2dhdHRfdGFibGUgICAgICA9IGludGVsX2k5MTVfY3JlYXRlX2dhdHRfdGFibGUsCi0JLmZyZWVfZ2F0dF90YWJsZSAgICAgICAgPSBpbnRlbF9pODMwX2ZyZWVfZ2F0dF90YWJsZSwKLQkuaW5zZXJ0X21lbW9yeSAgICAgICAgICA9IGludGVsX2k5MTVfaW5zZXJ0X2VudHJpZXMsCi0JLnJlbW92ZV9tZW1vcnkgICAgICAgICAgPSBpbnRlbF9pOTE1X3JlbW92ZV9lbnRyaWVzLAotCS5hbGxvY19ieV90eXBlICAgICAgICAgID0gaW50ZWxfaTgzMF9hbGxvY19ieV90eXBlLAotCS5mcmVlX2J5X3R5cGUgICAgICAgICAgID0gaW50ZWxfaTgxMF9mcmVlX2J5X3R5cGUsCi0JLmFncF9hbGxvY19wYWdlICAgICAgICAgPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAotCS5hZ3BfZGVzdHJveV9wYWdlICAgICAgID0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAotCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gaW50ZWxfaTgzMF90eXBlX3RvX21hc2tfdHlwZSwKKwkub3duZXIJCQk9IFRISVNfTU9EVUxFLAorCS5hcGVydHVyZV9zaXplcwkJPSBpbnRlbF9pODMwX3NpemVzLAorCS5zaXplX3R5cGUJCT0gRklYRURfQVBFUl9TSVpFLAorCS5udW1fYXBlcnR1cmVfc2l6ZXMJPSA0LAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAorCS5jb25maWd1cmUJCT0gaW50ZWxfaTkxNV9jb25maWd1cmUsCisJLmZldGNoX3NpemUJCT0gaW50ZWxfaTl4eF9mZXRjaF9zaXplLAorCS5jbGVhbnVwCQk9IGludGVsX2k5MTVfY2xlYW51cCwKKwkudGxiX2ZsdXNoCQk9IGludGVsX2k4MTBfdGxiZmx1c2gsCisJLm1hc2tfbWVtb3J5CQk9IGludGVsX2k5NjVfbWFza19tZW1vcnksCisJLm1hc2tzCQkJPSBpbnRlbF9pODEwX21hc2tzLAorCS5hZ3BfZW5hYmxlCQk9IGludGVsX2k4MTBfYWdwX2VuYWJsZSwKKwkuY2FjaGVfZmx1c2gJCT0gZ2xvYmFsX2NhY2hlX2ZsdXNoLAorCS5jcmVhdGVfZ2F0dF90YWJsZQk9IGludGVsX2k5MTVfY3JlYXRlX2dhdHRfdGFibGUsCisJLmZyZWVfZ2F0dF90YWJsZQk9IGludGVsX2k4MzBfZnJlZV9nYXR0X3RhYmxlLAorCS5pbnNlcnRfbWVtb3J5CQk9IGludGVsX2k5MTVfaW5zZXJ0X2VudHJpZXMsCisJLnJlbW92ZV9tZW1vcnkJCT0gaW50ZWxfaTkxNV9yZW1vdmVfZW50cmllcywKKwkuYWxsb2NfYnlfdHlwZQkJPSBpbnRlbF9pODMwX2FsbG9jX2J5X3R5cGUsCisJLmZyZWVfYnlfdHlwZQkJPSBpbnRlbF9pODEwX2ZyZWVfYnlfdHlwZSwKKwkuYWdwX2FsbG9jX3BhZ2UJCT0gYWdwX2dlbmVyaWNfYWxsb2NfcGFnZSwKKwkuYWdwX2Rlc3Ryb3lfcGFnZQk9IGFncF9nZW5lcmljX2Rlc3Ryb3lfcGFnZSwKKwkuYWdwX3R5cGVfdG9fbWFza190eXBlCT0gaW50ZWxfaTgzMF90eXBlX3RvX21hc2tfdHlwZSwKIAkuY2hpcHNldF9mbHVzaAkJPSBpbnRlbF9pOTE1X2NoaXBzZXRfZmx1c2gsCiB9OwogCkBAIC0yMDYzLDYgKzIxMTksMTIgQEAKIAkJTlVMTCwgJmludGVsX2czM19kcml2ZXIgfSwKIAl7IFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9JRywgMCwKIAkgICAgIkludGVsIEludGVncmF0ZWQgR3JhcGhpY3MgRGV2aWNlIiwgTlVMTCwgJmludGVsX2k5NjVfZHJpdmVyIH0sCisJeyBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0lHLCAwLAorCSAgICAiSW50ZWwgSW50ZWdyYXRlZCBHcmFwaGljcyBEZXZpY2UiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKKwl7IFBDSV9ERVZJQ0VfSURfSU5URUxfUTQ1X0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9JRywgMCwKKwkgICAgIlE0NS9RNDMiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKKwl7IFBDSV9ERVZJQ0VfSURfSU5URUxfRzQ1X0hCLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0c0NV9JRywgMCwKKwkgICAgIkc0NS9HNDMiLCBOVUxMLCAmaW50ZWxfaTk2NV9kcml2ZXIgfSwKIAl7IDAsIDAsIDAsIE5VTEwsIE5VTEwsIE5VTEwgfQogfTsKIApAQCAtMjI1NCw2ICsyMzE2LDkgQEAKIAlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX1EzNV9IQiksCiAJSUQoUENJX0RFVklDRV9JRF9JTlRFTF9RMzNfSEIpLAogCUlEKFBDSV9ERVZJQ0VfSURfSU5URUxfSUdEX0hCKSwKKwlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX0lHRF9FX0hCKSwKKwlJRChQQ0lfREVWSUNFX0lEX0lOVEVMX1E0NV9IQiksCisJSUQoUENJX0RFVklDRV9JRF9JTlRFTF9HNDVfSEIpLAogCXsgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9udmlkaWEtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYwppbmRleCAyMjVlZDJhLi5lYWNlYjYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL252aWRpYS1hZ3AuYwpAQCAtMjE0LDkgKzIxNCw5IEBACiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAotCWlmIChtZW0tPmlzX2ZsdXNoZWQgPT0gRkFMU0UpIHsKKwlpZiAoIW1lbS0+aXNfZmx1c2hlZCkgewogCQlnbG9iYWxfY2FjaGVfZmx1c2goKTsKLQkJbWVtLT5pc19mbHVzaGVkID0gVFJVRTsKKwkJbWVtLT5pc19mbHVzaGVkID0gdHJ1ZTsKIAl9CiAJZm9yIChpID0gMCwgaiA9IHBnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyssIGorKykgewogCQl3cml0ZWwoYWdwX2JyaWRnZS0+ZHJpdmVyLT5tYXNrX21lbW9yeShhZ3BfYnJpZGdlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2FncC9wYXJpc2MtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYwppbmRleCAyOTM5ZTM1Li44YzQyZGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYworKysgYi9kcml2ZXJzL2NoYXIvYWdwL3BhcmlzYy1hZ3AuYwpAQCAtMTQxLDkgKzE0MSw5IEBACiAJCWorKzsKIAl9CiAKLQlpZiAobWVtLT5pc19mbHVzaGVkID09IEZBTFNFKSB7CisJaWYgKCFtZW0tPmlzX2ZsdXNoZWQpIHsKIAkJZ2xvYmFsX2NhY2hlX2ZsdXNoKCk7Ci0JCW1lbS0+aXNfZmx1c2hlZCA9IFRSVUU7CisJCW1lbS0+aXNfZmx1c2hlZCA9IHRydWU7CiAJfQogCiAJZm9yIChpID0gMCwgaiA9IGlvX3BnX3N0YXJ0OyBpIDwgbWVtLT5wYWdlX2NvdW50OyBpKyspIHsKQEAgLTIyNiw3ICsyMjYsNyBAQAogCS5hZ3BfYWxsb2NfcGFnZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlCT0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlCT0gMSwKKwkuY2FudF91c2VfYXBlcnR1cmUJPSB0cnVlLAogfTsKIAogc3RhdGljIGludCBfX2luaXQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3Avc2dpLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKaW5kZXggOThjZjhhYi4uYjk3MmQ4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9zZ2ktYWdwLmMKQEAgLTE4Miw5ICsxODIsOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWJyaWRnZS0+ZHJpdmVyLT5jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTI2NCw4ICsyNjQsOCBAQAogCS5hZ3BfYWxsb2NfcGFnZSA9IHNnaV90aW9jYV9hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlID0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlID0gMSwKLQkubmVlZHNfc2NyYXRjaF9wYWdlID0gMCwKKwkuY2FudF91c2VfYXBlcnR1cmUgPSB0cnVlLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UgPSBmYWxzZSwKIAkubnVtX2FwZXJ0dXJlX3NpemVzID0gMSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3Avc3dvcmtzLWFncC5jIGIvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKaW5kZXggZTA4OTM0ZS4uMGUwNTRjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC9zd29ya3MtYWdwLmMKQEAgLTMzOSw5ICszMzksOSBAQAogCQlqKys7CiAJfQogCi0JaWYgKG1lbS0+aXNfZmx1c2hlZCA9PSBGQUxTRSkgeworCWlmICghbWVtLT5pc19mbHVzaGVkKSB7CiAJCWdsb2JhbF9jYWNoZV9mbHVzaCgpOwotCQltZW0tPmlzX2ZsdXNoZWQgPSBUUlVFOworCQltZW0tPmlzX2ZsdXNoZWQgPSB0cnVlOwogCX0KIAogCWZvciAoaSA9IDAsIGogPSBwZ19zdGFydDsgaSA8IG1lbS0+cGFnZV9jb3VudDsgaSsrLCBqKyspIHsKQEAgLTQxMiw3ICs0MTIsNyBAQAogCQkJICAgICAgIGJyaWRnZS0+Y2FwbmR4ICsgUENJX0FHUF9DT01NQU5ELAogCQkJICAgICAgIGNvbW1hbmQpOwogCi0JYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIDApOworCWFncF9kZXZpY2VfY29tbWFuZChjb21tYW5kLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWdwX2JyaWRnZV9kcml2ZXIgc3dvcmtzX2RyaXZlciA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hZ3AvdW5pbm9ydGgtYWdwLmMgYi9kcml2ZXJzL2NoYXIvYWdwL3VuaW5vcnRoLWFncC5jCmluZGV4IDQyYzBhNjAuLmQyZmEzY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvdW5pbm9ydGgtYWdwLmMKKysrIGIvZHJpdmVycy9jaGFyL2FncC91bmlub3J0aC1hZ3AuYwpAQCAtMjgxLDEwICsyODEsMTAgQEAKIAogCWlmICh1bmlub3J0aF9yZXYgPj0gMHgzMCkgewogCQkvKiBUaGlzIGlzIGFuIEFHUCBWMyAqLwotCQlhZ3BfZGV2aWNlX2NvbW1hbmQoY29tbWFuZCwgKHN0YXR1cyAmIEFHUFNUQVRfTU9ERV8zXzApKTsKKwkJYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIChzdGF0dXMgJiBBR1BTVEFUX01PREVfM18wKSAhPSAwKTsKIAl9IGVsc2UgewogCQkvKiBBR1AgVjIgKi8KLQkJYWdwX2RldmljZV9jb21tYW5kKGNvbW1hbmQsIDApOworCQlhZ3BfZGV2aWNlX2NvbW1hbmQoY29tbWFuZCwgZmFsc2UpOwogCX0KIAogCXVuaW5vcnRoX3RsYmZsdXNoKE5VTEwpOwpAQCAtNTExLDcgKzUxMSw3IEBACiAJLmFncF9hbGxvY19wYWdlCQk9IGFncF9nZW5lcmljX2FsbG9jX3BhZ2UsCiAJLmFncF9kZXN0cm95X3BhZ2UJPSBhZ3BfZ2VuZXJpY19kZXN0cm95X3BhZ2UsCiAJLmFncF90eXBlX3RvX21hc2tfdHlwZSAgPSBhZ3BfZ2VuZXJpY190eXBlX3RvX21hc2tfdHlwZSwKLQkuY2FudF91c2VfYXBlcnR1cmUJPSAxLAorCS5jYW50X3VzZV9hcGVydHVyZQk9IHRydWUsCiB9OwogCiBjb25zdCBzdHJ1Y3QgYWdwX2JyaWRnZV9kcml2ZXIgdTNfYWdwX2RyaXZlciA9IHsKQEAgLTUzNiw4ICs1MzYsOCBAQAogCS5hZ3BfYWxsb2NfcGFnZQkJPSBhZ3BfZ2VuZXJpY19hbGxvY19wYWdlLAogCS5hZ3BfZGVzdHJveV9wYWdlCT0gYWdwX2dlbmVyaWNfZGVzdHJveV9wYWdlLAogCS5hZ3BfdHlwZV90b19tYXNrX3R5cGUgID0gYWdwX2dlbmVyaWNfdHlwZV90b19tYXNrX3R5cGUsCi0JLmNhbnRfdXNlX2FwZXJ0dXJlCT0gMSwKLQkubmVlZHNfc2NyYXRjaF9wYWdlCT0gMSwKKwkuY2FudF91c2VfYXBlcnR1cmUJPSB0cnVlLAorCS5uZWVkc19zY3JhdGNoX3BhZ2UJPSB0cnVlLAogfTsKIAogc3RhdGljIHN0cnVjdCBhZ3BfZGV2aWNlX2lkcyB1bmlub3J0aF9hZ3BfZGV2aWNlX2lkc1tdIF9fZGV2aW5pdGRhdGEgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvYWdwL3ZpYS1hZ3AuYyBiL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCmluZGV4IDBlY2M1NGQuLjdiMzY0NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCisrKyBiL2RyaXZlcnMvY2hhci9hZ3AvdmlhLWFncC5jCkBAIC0zODksMTEgKzM4OSwyMCBAQAogCQkuZGV2aWNlX2lkICA9IFBDSV9ERVZJQ0VfSURfVklBX1ZUMzMyNCwKIAkJLmNoaXBzZXRfbmFtZSAgID0gIkNYNzAwIiwKIAl9LAotCS8qIFZUMzMzNiAqLworCS8qIFZUMzMzNiAtIHRoaXMgaXMgYSBjaGlwc2V0IGZvciBBTUQgQXRobG9uL0s4IENQVS4gRHVlIHRvIEs4J3MgdW5pcXVlCisJICogYXJjaGl0ZWN0dXJlLCB0aGUgQUdQIHJlc291cmNlIGFuZCBiZWhhdmlvciBhcmUgZGlmZmVyZW50IGZyb20KKwkgKiB0aGUgdHJhZGl0aW9uYWwgQUdQIHdoaWNoIHJlc2lkZXMgb25seSBpbiBjaGlwc2V0LiBBR1AgaXMgdXNlZAorCSAqIGJ5IDNEIGRyaXZlciB3aGljaCB3YXNuJ3QgYXZhaWxhYmxlIGZvciB0aGUgVlQzMzM2IGFuZCBWVDMzNjQKKwkgKiBnZW5lcmF0aW9uIHVudGlsIG5vdy4gIFVuZm9ydHVuYXRlbHksIGJ5IHRlc3RpbmcsIFZUMzM2NCB3b3JrcworCSAqIGJ1dCBWVDMzMzYgZG9lc24ndC4gLSBleHBsYWluYXRpb24gZnJvbSB2aWEsIGp1c3QgbGVhdmUgdGhpcyBhcworCSAqIGFzIGEgcGxhY2Vob2xkZXIgdG8gYXZvaWQgZnV0dXJlIHBhdGNoZXMgYWRkaW5nIGl0IGJhY2sgaW4uCisJICovCisjaWYgMAogCXsKIAkJLmRldmljZV9pZCAgPSBQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzMzYsCiAJCS5jaGlwc2V0X25hbWUgICA9ICJWVDMzMzYiLAogCX0sCisjZW5kaWYKIAkvKiBQNE04OTAgKi8KIAl7CiAJCS5kZXZpY2VfaWQgID0gUENJX0RFVklDRV9JRF9WSUFfUDRNODkwLApAQCAtNTQ2LDggKzU1NSw4IEBACiAJSUQoUENJX0RFVklDRV9JRF9WSUFfMzI5Nl8wKSwKIAlJRChQQ0lfREVWSUNFX0lEX1ZJQV9QNE04MDBDRSksCiAJSUQoUENJX0RFVklDRV9JRF9WSUFfVlQzMzI0KSwKLQlJRChQQ0lfREVWSUNFX0lEX1ZJQV9WVDMzMzYpLAogCUlEKFBDSV9ERVZJQ0VfSURfVklBX1A0TTg5MCksCisJSUQoUENJX0RFVklDRV9JRF9WSUFfVlQzMzY0KSwKIAl7IH0KIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9hcG0tZW11bGF0aW9uLmMgYi9kcml2ZXJzL2NoYXIvYXBtLWVtdWxhdGlvbi5jCmluZGV4IGNkZDg3NmQuLmRhOGExNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9hcG0tZW11bGF0aW9uLmMKKysrIGIvZHJpdmVycy9jaGFyL2FwbS1lbXVsYXRpb24uYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC00MTYsNiArNDE3LDcgQEAKIHsKIAlzdHJ1Y3QgYXBtX3VzZXIgKmFzOwogCisJbG9ja19rZXJuZWwoKTsKIAlhcyA9IGt6YWxsb2Moc2l6ZW9mKCphcyksIEdGUF9LRVJORUwpOwogCWlmIChhcykgewogCQkvKgpAQCAtNDM1LDYgKzQzNyw3IEBACiAKIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gYXM7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiBhcyA/IDAgOiAtRU5PTUVNOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2JyaXFfcGFuZWwuYyBiL2RyaXZlcnMvY2hhci9icmlxX3BhbmVsLmMKaW5kZXggYjZmMjYzOS4uZDhjZmY5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2JyaXFfcGFuZWwuYworKysgYi9kcml2ZXJzL2NoYXIvYnJpcV9wYW5lbC5jCkBAIC02LDYgKzYsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAKKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KQEAgLTY3LDExICs2OCwxNSBAQAogCiBzdGF0aWMgaW50IGJyaXFfcGFuZWxfb3BlbihzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZpbGUgKmZpbGVwKQogewotCS8qIGVuZm9yY2Ugc2luZ2xlIGFjY2VzcyAqLwotCWlmICh2ZmRfaXNfb3BlbikKKwlsb2NrX2tlcm5lbCgpOworCS8qIGVuZm9yY2Ugc2luZ2xlIGFjY2VzcywgdmZkX2lzX29wZW4gaXMgcHJvdGVjdGVkIGJ5IEJLTCAqLworCWlmICh2ZmRfaXNfb3BlbikgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCXZmZF9pc19vcGVuID0gMTsKIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2NzNTUzNV9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYwppbmRleCBjMGE0YTBiLi4wNGJhOTA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvY3M1NTM1X2dwaW8uYwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKQEAgLTE1Nyw2ICsxNTgsNyBAQAogewogCXUzMiBtID0gaW1pbm9yKGlub2RlKTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyogdGhlIG1hc2sgc2F5cyB3aGljaCBwaW5zIGFyZSB1c2FibGUgYnkgdGhpcyBkcml2ZXIgKi8KIAlpZiAoKG1hc2sgJiAoMSA8PCBtKSkgPT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvY3ljbGFkZXMuYyBiL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCmluZGV4IGVmNzNlNzIuLjZiZmY5ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCisrKyBiL2RyaXZlcnMvY2hhci9jeWNsYWRlcy5jCkBAIC00NjY4LDcgKzQ2NjgsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19kZXZpbml0IGN5el9mcGdhX2NvcHkodm9pZCBfX2lvbWVtICpmcGdhLCB1OCAqZGF0YSwKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2RldmluaXQgY3l6X2ZwZ2FfY29weSh2b2lkIF9faW9tZW0gKmZwZ2EsIGNvbnN0IHU4ICpkYXRhLAogCQl1bnNpZ25lZCBpbnQgc2l6ZSkKIHsKIAlmb3IgKDsgc2l6ZSA+IDA7IHNpemUtLSkgewpAQCAtNDcwMSwxMCArNDcwMSwxMCBAQAogCQljb25zdCBjaGFyICpuYW1lLCBjb25zdCB1MzIgbWFpbGJveCwgdm9pZCBfX2lvbWVtICpiYXNlLAogCQl2b2lkIF9faW9tZW0gKmZwZ2EpCiB7Ci0Jdm9pZCAqcHRyID0gZnctPmRhdGE7Ci0Jc3RydWN0IHpmaWxlX2hlYWRlciAqaCA9IHB0cjsKLQlzdHJ1Y3QgemZpbGVfY29uZmlnICpjLCAqY3M7Ci0Jc3RydWN0IHpmaWxlX2Jsb2NrICpiLCAqYnM7CisJY29uc3Qgdm9pZCAqcHRyID0gZnctPmRhdGE7CisJY29uc3Qgc3RydWN0IHpmaWxlX2hlYWRlciAqaCA9IHB0cjsKKwljb25zdCBzdHJ1Y3QgemZpbGVfY29uZmlnICpjLCAqY3M7CisJY29uc3Qgc3RydWN0IHpmaWxlX2Jsb2NrICpiLCAqYnM7CiAJdW5zaWduZWQgaW50IGEsIHRtcCwgbGVuID0gZnctPnNpemU7CiAjZGVmaW5lIEJBRF9GVyBLRVJOX0VSUiAiQmFkIGZpcm13YXJlOiAiCiAJaWYgKGxlbiA8IHNpemVvZigqaCkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2NoYXIvZHJtL01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjgzZGVkLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vTWFrZWZpbGUKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0jCi0jIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKLSMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCi0KLWRybS1vYmpzICAgIDo9CWRybV9hdXRoLm8gZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRybV9kbWEubyBkcm1fZHJhd2FibGUubyBcCi0JCWRybV9kcnYubyBkcm1fZm9wcy5vIGRybV9pb2N0bC5vIGRybV9pcnEubyBcCi0JCWRybV9sb2NrLm8gZHJtX21lbW9yeS5vIGRybV9wcm9jLm8gZHJtX3N0dWIubyBkcm1fdm0ubyBcCi0JCWRybV9hZ3BzdXBwb3J0Lm8gZHJtX3NjYXR0ZXIubyBhdGlfcGNpZ2FydC5vIGRybV9wY2kubyBcCi0JCWRybV9zeXNmcy5vIGRybV9oYXNodGFiLm8gZHJtX3NtYW4ubyBkcm1fbW0ubwotCi10ZGZ4LW9ianMgICA6PSB0ZGZ4X2Rydi5vCi1yMTI4LW9ianMgICA6PSByMTI4X2Rydi5vIHIxMjhfY2NlLm8gcjEyOF9zdGF0ZS5vIHIxMjhfaXJxLm8KLW1nYS1vYmpzICAgIDo9IG1nYV9kcnYubyBtZ2FfZG1hLm8gbWdhX3N0YXRlLm8gbWdhX3dhcnAubyBtZ2FfaXJxLm8KLWk4MTAtb2JqcyAgIDo9IGk4MTBfZHJ2Lm8gaTgxMF9kbWEubwotaTgzMC1vYmpzICAgOj0gaTgzMF9kcnYubyBpODMwX2RtYS5vIGk4MzBfaXJxLm8KLWk5MTUtb2JqcyAgIDo9IGk5MTVfZHJ2Lm8gaTkxNV9kbWEubyBpOTE1X2lycS5vIGk5MTVfbWVtLm8KLXJhZGVvbi1vYmpzIDo9IHJhZGVvbl9kcnYubyByYWRlb25fY3AubyByYWRlb25fc3RhdGUubyByYWRlb25fbWVtLm8gcmFkZW9uX2lycS5vIHIzMDBfY21kYnVmLm8KLXNpcy1vYmpzICAgIDo9IHNpc19kcnYubyBzaXNfbW0ubwotc2F2YWdlLW9ianMgOj0gc2F2YWdlX2Rydi5vIHNhdmFnZV9iY2kubyBzYXZhZ2Vfc3RhdGUubwotdmlhLW9ianMgICAgOj0gdmlhX2lycS5vIHZpYV9kcnYubyB2aWFfbWFwLm8gdmlhX21tLm8gdmlhX2RtYS5vIHZpYV92ZXJpZmllci5vIHZpYV92aWRlby5vIHZpYV9kbWFibGl0Lm8KLQotaWZlcSAoJChDT05GSUdfQ09NUEFUKSx5KQotZHJtLW9ianMgICAgKz0gZHJtX2lvYzMyLm8KLXJhZGVvbi1vYmpzICs9IHJhZGVvbl9pb2MzMi5vCi1tZ2Etb2JqcyAgICArPSBtZ2FfaW9jMzIubwotcjEyOC1vYmpzICAgKz0gcjEyOF9pb2MzMi5vCi1pOTE1LW9ianMgICArPSBpOTE1X2lvYzMyLm8KLWVuZGlmCi0KLW9iai0kKENPTkZJR19EUk0pCSs9IGRybS5vCi1vYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngubwotb2JqLSQoQ09ORklHX0RSTV9SMTI4KQkrPSByMTI4Lm8KLW9iai0kKENPTkZJR19EUk1fUkFERU9OKSs9IHJhZGVvbi5vCi1vYmotJChDT05GSUdfRFJNX01HQSkJKz0gbWdhLm8KLW9iai0kKENPTkZJR19EUk1fSTgxMCkJKz0gaTgxMC5vCi1vYmotJChDT05GSUdfRFJNX0k4MzApCSs9IGk4MzAubwotb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS5vCi1vYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMubwotb2JqLSQoQ09ORklHX0RSTV9TQVZBR0UpKz0gc2F2YWdlLm8KLW9iai0kKENPTkZJR19EUk1fVklBKQkrPXZpYS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2F0aV9wY2lnYXJ0LmMgYi9kcml2ZXJzL2NoYXIvZHJtL2F0aV9wY2lnYXJ0LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3MTA0MjYuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9hdGlfcGNpZ2FydC5jCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLS8qKgotICogXGZpbGUgYXRpX3BjaWdhcnQuYwotICogQVRJIFBDSSBHQVJUIHN1cHBvcnQKLSAqCi0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogV2VkIERlYyAxMyAyMTo1MjoxOSAyMDAwIGJ5IGdhcmV0aEB2YWxpbnV4LmNvbQotICoKLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0KLSMgZGVmaW5lIEFUSV9QQ0lHQVJUX1BBR0VfU0laRQkJNDA5NgkvKio8IFBDSSBHQVJUIHBhZ2Ugc2l6ZSAqLwotCi1zdGF0aWMgaW50IGRybV9hdGlfYWxsb2NfcGNpZ2FydF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSA9IGRybV9wY2lfYWxsb2MoZGV2LCBnYXJ0X2luZm8tPnRhYmxlX3NpemUsCi0JCQkJCQlQQUdFX1NJWkUsCi0JCQkJCQlnYXJ0X2luZm8tPnRhYmxlX21hc2spOwotCWlmIChnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkcm1fYXRpX2ZyZWVfcGNpZ2FydF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlkcm1fcGNpX2ZyZWUoZGV2LCBnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSk7Ci0JZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUgPSBOVUxMOwotfQotCi1pbnQgZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICpnYXJ0X2luZm8pCi17Ci0Jc3RydWN0IGRybV9zZ19tZW0gKmVudHJ5ID0gZGV2LT5zZzsKLQl1bnNpZ25lZCBsb25nIHBhZ2VzOwotCWludCBpOwotCWludCBtYXhfcGFnZXM7Ci0KLQkvKiB3ZSBuZWVkIHRvIHN1cHBvcnQgbGFyZ2UgbWVtb3J5IGNvbmZpZ3VyYXRpb25zICovCi0JaWYgKCFlbnRyeSkgewotCQlEUk1fRVJST1IoIm5vIHNjYXR0ZXIvZ2F0aGVyIG1lbW9yeSFcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoZ2FydF9pbmZvLT5idXNfYWRkcikgewotCi0JCW1heF9wYWdlcyA9IChnYXJ0X2luZm8tPnRhYmxlX3NpemUgLyBzaXplb2YodTMyKSk7Ci0JCXBhZ2VzID0gKGVudHJ5LT5wYWdlcyA8PSBtYXhfcGFnZXMpCi0JCSAgPyBlbnRyeS0+cGFnZXMgOiBtYXhfcGFnZXM7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHBhZ2VzOyBpKyspIHsKLQkJCWlmICghZW50cnktPmJ1c2FkZHJbaV0pCi0JCQkJYnJlYWs7Ci0JCQlwY2lfdW5tYXBfc2luZ2xlKGRldi0+cGRldiwgZW50cnktPmJ1c2FkZHJbaV0sCi0JCQkJCSBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQl9Ci0KLQkJaWYgKGdhcnRfaW5mby0+Z2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfTUFJTikKLQkJCWdhcnRfaW5mby0+YnVzX2FkZHIgPSAwOwotCX0KLQotCWlmIChnYXJ0X2luZm8tPmdhcnRfdGFibGVfbG9jYXRpb24gPT0gRFJNX0FUSV9HQVJUX01BSU4gJiYKLQkgICAgZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUpIHsKLQkJZHJtX2F0aV9mcmVlX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOwotCX0KLQotCXJldHVybiAxOwotfQotRVhQT1JUX1NZTUJPTChkcm1fYXRpX3BjaWdhcnRfY2xlYW51cCk7Ci0KLWludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKmdhcnRfaW5mbykKLXsKLQlzdHJ1Y3QgZHJtX3NnX21lbSAqZW50cnkgPSBkZXYtPnNnOwotCXZvaWQgKmFkZHJlc3MgPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcgcGFnZXM7Ci0JdTMyICpwY2lfZ2FydCwgcGFnZV9iYXNlOwotCWRtYV9hZGRyX3QgYnVzX2FkZHJlc3MgPSAwOwotCWludCBpLCBqLCByZXQgPSAwOwotCWludCBtYXhfcGFnZXM7Ci0KLQlpZiAoIWVudHJ5KSB7Ci0JCURSTV9FUlJPUigibm8gc2NhdHRlci9nYXRoZXIgbWVtb3J5IVxuIik7Ci0JCWdvdG8gZG9uZTsKLQl9Ci0KLQlpZiAoZ2FydF9pbmZvLT5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9NQUlOKSB7Ci0JCURSTV9ERUJVRygiUENJOiBubyB0YWJsZSBpbiBWUkFNOiB1c2luZyBub3JtYWwgUkFNXG4iKTsKLQotCQlyZXQgPSBkcm1fYXRpX2FsbG9jX3BjaWdhcnRfdGFibGUoZGV2LCBnYXJ0X2luZm8pOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fRVJST1IoImNhbm5vdCBhbGxvY2F0ZSBQQ0kgR0FSVCBwYWdlIVxuIik7Ci0JCQlnb3RvIGRvbmU7Ci0JCX0KLQotCQlhZGRyZXNzID0gZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUtPnZhZGRyOwotCQlidXNfYWRkcmVzcyA9IGdhcnRfaW5mby0+dGFibGVfaGFuZGxlLT5idXNhZGRyOwotCX0gZWxzZSB7Ci0JCWFkZHJlc3MgPSBnYXJ0X2luZm8tPmFkZHI7Ci0JCWJ1c19hZGRyZXNzID0gZ2FydF9pbmZvLT5idXNfYWRkcjsKLQkJRFJNX0RFQlVHKCJQQ0k6IEdhcnQgVGFibGU6IFZSQU0gJTA4TFggbWFwcGVkIGF0ICUwOGxYXG4iLAotCQkJICAodW5zaWduZWQgbG9uZyBsb25nKWJ1c19hZGRyZXNzLAotCQkJICAodW5zaWduZWQgbG9uZylhZGRyZXNzKTsKLQl9Ci0KLQlwY2lfZ2FydCA9ICh1MzIgKikgYWRkcmVzczsKLQotCW1heF9wYWdlcyA9IChnYXJ0X2luZm8tPnRhYmxlX3NpemUgLyBzaXplb2YodTMyKSk7Ci0JcGFnZXMgPSAoZW50cnktPnBhZ2VzIDw9IG1heF9wYWdlcykKLQkgICAgPyBlbnRyeS0+cGFnZXMgOiBtYXhfcGFnZXM7Ci0KLQltZW1zZXQocGNpX2dhcnQsIDAsIG1heF9wYWdlcyAqIHNpemVvZih1MzIpKTsKLQotCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgaSsrKSB7Ci0JCS8qIHdlIG5lZWQgdG8gc3VwcG9ydCBsYXJnZSBtZW1vcnkgY29uZmlndXJhdGlvbnMgKi8KLQkJZW50cnktPmJ1c2FkZHJbaV0gPSBwY2lfbWFwX3NpbmdsZShkZXYtPnBkZXYsCi0JCQkJCQkgICBwYWdlX2FkZHJlc3MoZW50cnktPgotCQkJCQkJCQlwYWdlbGlzdFtpXSksCi0JCQkJCQkgICBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQlpZiAoZW50cnktPmJ1c2FkZHJbaV0gPT0gMCkgewotCQkJRFJNX0VSUk9SKCJ1bmFibGUgdG8gbWFwIFBDSUdBUlQgcGFnZXMhXG4iKTsKLQkJCWRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKGRldiwgZ2FydF9pbmZvKTsKLQkJCWFkZHJlc3MgPSBOVUxMOwotCQkJYnVzX2FkZHJlc3MgPSAwOwotCQkJZ290byBkb25lOwotCQl9Ci0JCXBhZ2VfYmFzZSA9ICh1MzIpIGVudHJ5LT5idXNhZGRyW2ldOwotCi0JCWZvciAoaiA9IDA7IGogPCAoUEFHRV9TSVpFIC8gQVRJX1BDSUdBUlRfUEFHRV9TSVpFKTsgaisrKSB7Ci0JCQlzd2l0Y2goZ2FydF9pbmZvLT5nYXJ0X3JlZ19pZikgewotCQkJY2FzZSBEUk1fQVRJX0dBUlRfSUdQOgotCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKChwYWdlX2Jhc2UpIHwgMHhjKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgRFJNX0FUSV9HQVJUX1BDSUU6Ci0JCQkJKnBjaV9nYXJ0ID0gY3B1X3RvX2xlMzIoKHBhZ2VfYmFzZSA+PiA4KSB8IDB4Yyk7Ci0JCQkJYnJlYWs7Ci0JCQlkZWZhdWx0OgotCQkJY2FzZSBEUk1fQVRJX0dBUlRfUENJOgotCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKHBhZ2VfYmFzZSk7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCQlwY2lfZ2FydCsrOwotCQkJcGFnZV9iYXNlICs9IEFUSV9QQ0lHQVJUX1BBR0VfU0laRTsKLQkJfQotCX0KLQlyZXQgPSAxOwotCi0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQotCXdiaW52ZCgpOwotI2Vsc2UKLQltYigpOwotI2VuZGlmCi0KLSAgICAgIGRvbmU6Ci0JZ2FydF9pbmZvLT5hZGRyID0gYWRkcmVzczsKLQlnYXJ0X2luZm8tPmJ1c19hZGRyID0gYnVzX2FkZHJlc3M7Ci0JcmV0dXJuIHJldDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2F0aV9wY2lnYXJ0X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm0uaCBiL2RyaXZlcnMvY2hhci9kcm0vZHJtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMDVjNmQuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm0uaAorKysgL2Rldi9udWxsCkBAIC0xLDY5NCArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRybS5oCi0gKiBIZWFkZXIgZm9yIHRoZSBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgotICoKLSAqIFxwYXIgQWNrbm93bGVkZ21lbnRzOgotICogRGVjIDE5OTksIFJpY2hhcmQgSGVuZGVyc29uIDxydGhAdHdpZGRsZS5uZXQ+LCBtb3ZlIHRvIGdlbmVyaWMgXGMgY21weGNoZy4KLSAqLwotCi0vKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaWZuZGVmIF9EUk1fSF8KLSNkZWZpbmUgX0RSTV9IXwotCi0jaWYgZGVmaW5lZChfX2xpbnV4X18pCi0jaWYgZGVmaW5lZChfX0tFUk5FTF9fKQotI2VuZGlmCi0jaW5jbHVkZSA8YXNtL2lvY3RsLmg+CQkvKiBGb3IgX0lPKiBtYWNyb3MgKi8KLSNkZWZpbmUgRFJNX0lPQ1RMX05SKG4pCQlfSU9DX05SKG4pCi0jZGVmaW5lIERSTV9JT0NfVk9JRAkJX0lPQ19OT05FCi0jZGVmaW5lIERSTV9JT0NfUkVBRAkJX0lPQ19SRUFECi0jZGVmaW5lIERSTV9JT0NfV1JJVEUJCV9JT0NfV1JJVEUKLSNkZWZpbmUgRFJNX0lPQ19SRUFEV1JJVEUJX0lPQ19SRUFEfF9JT0NfV1JJVEUKLSNkZWZpbmUgRFJNX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkgX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykKLSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBkZWZpbmVkKElOX01PRFVMRSkKLS8qIFByZXZlbnQgbmFtZSBjb2xsaXNpb24gd2hlbiBpbmNsdWRpbmcgc3lzL2lvY2NvbS5oICovCi0jdW5kZWYgaW9jdGwKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0jZGVmaW5lIGlvY3RsKGEsYixjKQkJeGY4NmlvY3RsKGEsYixjKQotI2Vsc2UKLSNpbmNsdWRlIDxzeXMvaW9jY29tLmg+Ci0jZW5kaWYJCQkJLyogX19GcmVlQlNEX18gJiYgeGY4NmlvY3RsICovCi0jZGVmaW5lIERSTV9JT0NUTF9OUihuKQkJKChuKSAmIDB4ZmYpCi0jZGVmaW5lIERSTV9JT0NfVk9JRAkJSU9DX1ZPSUQKLSNkZWZpbmUgRFJNX0lPQ19SRUFECQlJT0NfT1VUCi0jZGVmaW5lIERSTV9JT0NfV1JJVEUJCUlPQ19JTgotI2RlZmluZSBEUk1fSU9DX1JFQURXUklURQlJT0NfSU5PVVQKLSNkZWZpbmUgRFJNX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkgX0lPQyhkaXIsIGdyb3VwLCBuciwgc2l6ZSkKLSNlbmRpZgotCi0jZGVmaW5lIERSTV9NQUpPUiAgICAgICAyMjYKLSNkZWZpbmUgRFJNX01BWF9NSU5PUiAgIDE1Ci0KLSNkZWZpbmUgRFJNX05BTUUJImRybSIJICAvKio8IE5hbWUgaW4ga2VybmVsLCAvZGV2LCBhbmQgL3Byb2MgKi8KLSNkZWZpbmUgRFJNX01JTl9PUkRFUgk1CSAgLyoqPCBBdCBsZWFzdCAyXjUgYnl0ZXMgPSAzMiBieXRlcyAqLwotI2RlZmluZSBEUk1fTUFYX09SREVSCTIyCSAgLyoqPCBVcCB0byAyXjIyIGJ5dGVzID0gNE1CICovCi0jZGVmaW5lIERSTV9SQU1fUEVSQ0VOVCAxMAkgIC8qKjwgSG93IG11Y2ggc3lzdGVtIHJhbSBjYW4gd2UgbG9jaz8gKi8KLQotI2RlZmluZSBfRFJNX0xPQ0tfSEVMRAkweDgwMDAwMDAwVSAvKio8IEhhcmR3YXJlIGxvY2sgaXMgaGVsZCAqLwotI2RlZmluZSBfRFJNX0xPQ0tfQ09OVAkweDQwMDAwMDAwVSAvKio8IEhhcmR3YXJlIGxvY2sgaXMgY29udGVuZGVkICovCi0jZGVmaW5lIF9EUk1fTE9DS19JU19IRUxEKGxvY2spCSAgICgobG9jaykgJiBfRFJNX0xPQ0tfSEVMRCkKLSNkZWZpbmUgX0RSTV9MT0NLX0lTX0NPTlQobG9jaykJICAgKChsb2NrKSAmIF9EUk1fTE9DS19DT05UKQotI2RlZmluZSBfRFJNX0xPQ0tJTkdfQ09OVEVYVChsb2NrKSAoKGxvY2spICYgfihfRFJNX0xPQ0tfSEVMRHxfRFJNX0xPQ0tfQ09OVCkpCi0KLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9oYW5kbGVfdDsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9jb250ZXh0X3Q7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBkcm1fZHJhd2FibGVfdDsKLXR5cGVkZWYgdW5zaWduZWQgaW50IGRybV9tYWdpY190OwotCi0vKioKLSAqIENsaXByZWN0LgotICoKLSAqIFx3YXJuaW5nOiBJZiB5b3UgY2hhbmdlIHRoaXMgc3RydWN0dXJlLCBtYWtlIHN1cmUgeW91IGNoYW5nZQotICogWEY4NkRSSUNsaXBSZWN0UmVjIGluIHRoZSBzZXJ2ZXIgYXMgd2VsbAotICoKLSAqIFxub3RlIEtXOiBBY3R1YWxseSBpdCdzIGlsbGVnYWwgdG8gY2hhbmdlIGVpdGhlciBmb3IKLSAqIGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IHJlYXNvbnMuCi0gKi8KLXN0cnVjdCBkcm1fY2xpcF9yZWN0IHsKLQl1bnNpZ25lZCBzaG9ydCB4MTsKLQl1bnNpZ25lZCBzaG9ydCB5MTsKLQl1bnNpZ25lZCBzaG9ydCB4MjsKLQl1bnNpZ25lZCBzaG9ydCB5MjsKLX07Ci0KLS8qKgotICogRHJhd2FibGUgaW5mb3JtYXRpb24uCi0gKi8KLXN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyB7Ci0JdW5zaWduZWQgaW50IG51bV9yZWN0czsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcmVjdHM7Ci19OwotCi0vKioKLSAqIFRleHR1cmUgcmVnaW9uLAotICovCi1zdHJ1Y3QgZHJtX3RleF9yZWdpb24gewotCXVuc2lnbmVkIGNoYXIgbmV4dDsKLQl1bnNpZ25lZCBjaGFyIHByZXY7Ci0JdW5zaWduZWQgY2hhciBpbl91c2U7Ci0JdW5zaWduZWQgY2hhciBwYWRkaW5nOwotCXVuc2lnbmVkIGludCBhZ2U7Ci19OwotCi0vKioKLSAqIEhhcmR3YXJlIGxvY2suCi0gKgotICogVGhlIGxvY2sgc3RydWN0dXJlIGlzIGEgc2ltcGxlIGNhY2hlLWxpbmUgYWxpZ25lZCBpbnRlZ2VyLiAgVG8gYXZvaWQKLSAqIHByb2Nlc3NvciBidXMgY29udGVudGlvbiBvbiBhIG11bHRpcHJvY2Vzc29yIHN5c3RlbSwgdGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkKLSAqIG90aGVyIGRhdGEgc3RvcmVkIGluIHRoZSBzYW1lIGNhY2hlIGxpbmUuCi0gKi8KLXN0cnVjdCBkcm1faHdfbG9jayB7Ci0JX192b2xhdGlsZV9fIHVuc2lnbmVkIGludCBsb2NrOwkJLyoqPCBsb2NrIHZhcmlhYmxlICovCi0JY2hhciBwYWRkaW5nWzYwXTsJCQkvKio8IFBhZCB0byBjYWNoZSBsaW5lICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9WRVJTSU9OIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldFZlcnNpb24oKS4KLSAqLwotc3RydWN0IGRybV92ZXJzaW9uIHsKLQlpbnQgdmVyc2lvbl9tYWpvcjsJICAvKio8IE1ham9yIHZlcnNpb24gKi8KLQlpbnQgdmVyc2lvbl9taW5vcjsJICAvKio8IE1pbm9yIHZlcnNpb24gKi8KLQlpbnQgdmVyc2lvbl9wYXRjaGxldmVsOwkgIC8qKjwgUGF0Y2ggbGV2ZWwgKi8KLQlzaXplX3QgbmFtZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgbmFtZSBidWZmZXIgKi8KLQljaGFyIF9fdXNlciAqbmFtZTsJICAvKio8IE5hbWUgb2YgZHJpdmVyICovCi0Jc2l6ZV90IGRhdGVfbGVuOwkgIC8qKjwgTGVuZ3RoIG9mIGRhdGUgYnVmZmVyICovCi0JY2hhciBfX3VzZXIgKmRhdGU7CSAgLyoqPCBVc2VyLXNwYWNlIGJ1ZmZlciB0byBob2xkIGRhdGUgKi8KLQlzaXplX3QgZGVzY19sZW47CSAgLyoqPCBMZW5ndGggb2YgZGVzYyBidWZmZXIgKi8KLQljaGFyIF9fdXNlciAqZGVzYzsJICAvKio8IFVzZXItc3BhY2UgYnVmZmVyIHRvIGhvbGQgZGVzYyAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX1VOSVFVRSBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1HZXRCdXNpZCgpIGFuZCBkcm1TZXRCdXNJZCgpLgotICovCi1zdHJ1Y3QgZHJtX3VuaXF1ZSB7Ci0Jc2l6ZV90IHVuaXF1ZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgdW5pcXVlICovCi0JY2hhciBfX3VzZXIgKnVuaXF1ZTsJICAvKio8IFVuaXF1ZSBuYW1lIGZvciBkcml2ZXIgaW5zdGFudGlhdGlvbiAqLwotfTsKLQotc3RydWN0IGRybV9saXN0IHsKLQlpbnQgY291bnQ7CQkgIC8qKjwgTGVuZ3RoIG9mIHVzZXItc3BhY2Ugc3RydWN0dXJlcyAqLwotCXN0cnVjdCBkcm1fdmVyc2lvbiBfX3VzZXIgKnZlcnNpb247Ci19OwotCi1zdHJ1Y3QgZHJtX2Jsb2NrIHsKLQlpbnQgdW51c2VkOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQ09OVFJPTCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1DdGxJbnN0SGFuZGxlcigpIGFuZCBkcm1DdGxVbmluc3RIYW5kbGVyKCkuCi0gKi8KLXN0cnVjdCBkcm1fY29udHJvbCB7Ci0JZW51bSB7Ci0JCURSTV9BRERfQ09NTUFORCwKLQkJRFJNX1JNX0NPTU1BTkQsCi0JCURSTV9JTlNUX0hBTkRMRVIsCi0JCURSTV9VTklOU1RfSEFORExFUgotCX0gZnVuYzsKLQlpbnQgaXJxOwotfTsKLQotLyoqCi0gKiBUeXBlIG9mIG1lbW9yeSB0byBtYXAuCi0gKi8KLWVudW0gZHJtX21hcF90eXBlIHsKLQlfRFJNX0ZSQU1FX0JVRkZFUiA9IDAsCSAgLyoqPCBXQyAobm8gY2FjaGluZyksIG5vIGNvcmUgZHVtcCAqLwotCV9EUk1fUkVHSVNURVJTID0gMSwJICAvKio8IG5vIGNhY2hpbmcsIG5vIGNvcmUgZHVtcCAqLwotCV9EUk1fU0hNID0gMiwJCSAgLyoqPCBzaGFyZWQsIGNhY2hlZCAqLwotCV9EUk1fQUdQID0gMywJCSAgLyoqPCBBR1AvR0FSVCAqLwotCV9EUk1fU0NBVFRFUl9HQVRIRVIgPSA0LCAgLyoqPCBTY2F0dGVyL2dhdGhlciBtZW1vcnkgZm9yIFBDSSBETUEgKi8KLQlfRFJNX0NPTlNJU1RFTlQgPSA1LAkgIC8qKjwgQ29uc2lzdGVudCBtZW1vcnkgZm9yIFBDSSBETUEgKi8KLX07Ci0KLS8qKgotICogTWVtb3J5IG1hcHBpbmcgZmxhZ3MuCi0gKi8KLWVudW0gZHJtX21hcF9mbGFncyB7Ci0JX0RSTV9SRVNUUklDVEVEID0gMHgwMSwJICAgICAvKio8IENhbm5vdCBiZSBtYXBwZWQgdG8gdXNlci12aXJ0dWFsICovCi0JX0RSTV9SRUFEX09OTFkgPSAweDAyLAotCV9EUk1fTE9DS0VEID0gMHgwNCwJICAgICAvKio8IHNoYXJlZCwgY2FjaGVkLCBsb2NrZWQgKi8KLQlfRFJNX0tFUk5FTCA9IDB4MDgsCSAgICAgLyoqPCBrZXJuZWwgcmVxdWlyZXMgYWNjZXNzICovCi0JX0RSTV9XUklURV9DT01CSU5JTkcgPSAweDEwLCAvKio8IHVzZSB3cml0ZS1jb21iaW5pbmcgaWYgYXZhaWxhYmxlICovCi0JX0RSTV9DT05UQUlOU19MT0NLID0gMHgyMCwgICAvKio8IFNITSBwYWdlIHRoYXQgY29udGFpbnMgbG9jayAqLwotCV9EUk1fUkVNT1ZBQkxFID0gMHg0MCwJICAgICAvKio8IFJlbW92YWJsZSBtYXBwaW5nICovCi0JX0RSTV9EUklWRVIgPSAweDgwCSAgICAgLyoqPCBNYW5hZ2VkIGJ5IGRyaXZlciAqLwotfTsKLQotc3RydWN0IGRybV9jdHhfcHJpdl9tYXAgewotCXVuc2lnbmVkIGludCBjdHhfaWQ7CSAvKio8IENvbnRleHQgcmVxdWVzdGluZyBwcml2YXRlIG1hcHBpbmcgKi8KLQl2b2lkICpoYW5kbGU7CQkgLyoqPCBIYW5kbGUgb2YgbWFwICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9HRVRfTUFQLCBEUk1fSU9DVExfQUREX01BUCBhbmQgRFJNX0lPQ1RMX1JNX01BUCBpb2N0bHMKLSAqIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUFkZE1hcCgpLgotICovCi1zdHJ1Y3QgZHJtX21hcCB7Ci0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAvKio8IFJlcXVlc3RlZCBwaHlzaWNhbCBhZGRyZXNzICgwIGZvciBTQVJFQSkqLwotCXVuc2lnbmVkIGxvbmcgc2l6ZTsJIC8qKjwgUmVxdWVzdGVkIHBoeXNpY2FsIHNpemUgKGJ5dGVzKSAqLwotCWVudW0gZHJtX21hcF90eXBlIHR5cGU7CSAvKio8IFR5cGUgb2YgbWVtb3J5IHRvIG1hcCAqLwotCWVudW0gZHJtX21hcF9mbGFncyBmbGFnczsJIC8qKjwgRmxhZ3MgKi8KLQl2b2lkICpoYW5kbGU7CQkgLyoqPCBVc2VyLXNwYWNlOiAiSGFuZGxlIiB0byBwYXNzIHRvIG1tYXAoKSAqLwotCQkJCSAvKio8IEtlcm5lbC1zcGFjZToga2VybmVsLXZpcnR1YWwgYWRkcmVzcyAqLwotCWludCBtdHJyOwkJIC8qKjwgTVRSUiBzbG90IHVzZWQgKi8KLQkvKiAgIFByaXZhdGUgZGF0YSAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX0NMSUVOVCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2NsaWVudCB7Ci0JaW50IGlkeDsJCS8qKjwgV2hpY2ggY2xpZW50IGRlc2lyZWQ/ICovCi0JaW50IGF1dGg7CQkvKio8IElzIGNsaWVudCBhdXRoZW50aWNhdGVkPyAqLwotCXVuc2lnbmVkIGxvbmcgcGlkOwkvKio8IFByb2Nlc3MgSUQgKi8KLQl1bnNpZ25lZCBsb25nIHVpZDsJLyoqPCBVc2VyIElEICovCi0JdW5zaWduZWQgbG9uZyBtYWdpYzsJLyoqPCBNYWdpYyAqLwotCXVuc2lnbmVkIGxvbmcgaW9jczsJLyoqPCBJb2N0bCBjb3VudCAqLwotfTsKLQotZW51bSBkcm1fc3RhdF90eXBlIHsKLQlfRFJNX1NUQVRfTE9DSywKLQlfRFJNX1NUQVRfT1BFTlMsCi0JX0RSTV9TVEFUX0NMT1NFUywKLQlfRFJNX1NUQVRfSU9DVExTLAotCV9EUk1fU1RBVF9MT0NLUywKLQlfRFJNX1NUQVRfVU5MT0NLUywKLQlfRFJNX1NUQVRfVkFMVUUsCS8qKjwgR2VuZXJpYyB2YWx1ZSAqLwotCV9EUk1fU1RBVF9CWVRFLAkJLyoqPCBHZW5lcmljIGJ5dGUgY291bnRlciAoMTAyNGJ5dGVzL0spICovCi0JX0RSTV9TVEFUX0NPVU5ULAkvKio8IEdlbmVyaWMgbm9uLWJ5dGUgY291bnRlciAoMTAwMC9rKSAqLwotCi0JX0RSTV9TVEFUX0lSUSwJCS8qKjwgSVJRICovCi0JX0RSTV9TVEFUX1BSSU1BUlksCS8qKjwgUHJpbWFyeSBETUEgYnl0ZXMgKi8KLQlfRFJNX1NUQVRfU0VDT05EQVJZLAkvKio8IFNlY29uZGFyeSBETUEgYnl0ZXMgKi8KLQlfRFJNX1NUQVRfRE1BLAkJLyoqPCBETUEgKi8KLQlfRFJNX1NUQVRfU1BFQ0lBTCwJLyoqPCBTcGVjaWFsIERNQSAoZS5nLiwgcHJpb3JpdHkgb3IgcG9sbGVkKSAqLwotCV9EUk1fU1RBVF9NSVNTRUQJLyoqPCBNaXNzZWQgRE1BIG9wcG9ydHVuaXR5ICovCi0JICAgIC8qIEFkZCB0byB0aGUgKkVORCogb2YgdGhlIGxpc3QgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0dFVF9TVEFUUyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX3N0YXRzIHsKLQl1bnNpZ25lZCBsb25nIGNvdW50OwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGxvbmcgdmFsdWU7Ci0JCWVudW0gZHJtX3N0YXRfdHlwZSB0eXBlOwotCX0gZGF0YVsxNV07Ci19OwotCi0vKioKLSAqIEhhcmR3YXJlIGxvY2tpbmcgZmxhZ3MuCi0gKi8KLWVudW0gZHJtX2xvY2tfZmxhZ3MgewotCV9EUk1fTE9DS19SRUFEWSA9IDB4MDEsCSAgICAgLyoqPCBXYWl0IHVudGlsIGhhcmR3YXJlIGlzIHJlYWR5IGZvciBETUEgKi8KLQlfRFJNX0xPQ0tfUVVJRVNDRU5UID0gMHgwMiwgIC8qKjwgV2FpdCB1bnRpbCBoYXJkd2FyZSBxdWllc2NlbnQgKi8KLQlfRFJNX0xPQ0tfRkxVU0ggPSAweDA0LAkgICAgIC8qKjwgRmx1c2ggdGhpcyBjb250ZXh0J3MgRE1BIHF1ZXVlIGZpcnN0ICovCi0JX0RSTV9MT0NLX0ZMVVNIX0FMTCA9IDB4MDgsICAvKio8IEZsdXNoIGFsbCBETUEgcXVldWVzIGZpcnN0ICovCi0JLyogVGhlc2UgKkhBTFQqIGZsYWdzIGFyZW4ndCBzdXBwb3J0ZWQgeWV0Ci0JICAgLS0gdGhleSB3aWxsIGJlIHVzZWQgdG8gc3VwcG9ydCB0aGUKLQkgICBmdWxsLXNjcmVlbiBER0EtbGlrZSBtb2RlLiAqLwotCV9EUk1fSEFMVF9BTExfUVVFVUVTID0gMHgxMCwgLyoqPCBIYWx0IGFsbCBjdXJyZW50IGFuZCBmdXR1cmUgcXVldWVzICovCi0JX0RSTV9IQUxUX0NVUl9RVUVVRVMgPSAweDIwICAvKio8IEhhbHQgYWxsIGN1cnJlbnQgcXVldWVzICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9MT0NLLCBEUk1fSU9DVExfVU5MT0NLIGFuZCBEUk1fSU9DVExfRklOSVNIIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldExvY2soKSBhbmQgZHJtVW5sb2NrKCkuCi0gKi8KLXN0cnVjdCBkcm1fbG9jayB7Ci0JaW50IGNvbnRleHQ7Ci0JZW51bSBkcm1fbG9ja19mbGFncyBmbGFnczsKLX07Ci0KLS8qKgotICogRE1BIGZsYWdzCi0gKgotICogXHdhcm5pbmcKLSAqIFRoZXNlIHZhbHVlcyBcZSBtdXN0IG1hdGNoIHhmODZkcm0uaC4KLSAqCi0gKiBcc2EgZHJtX2RtYS4KLSAqLwotZW51bSBkcm1fZG1hX2ZsYWdzIHsKLQkvKiBGbGFncyBmb3IgRE1BIGJ1ZmZlciBkaXNwYXRjaCAqLwotCV9EUk1fRE1BX0JMT0NLID0gMHgwMSwJICAgICAgLyoqPAotCQkJCSAgICAgICAqIEJsb2NrIHVudGlsIGJ1ZmZlciBkaXNwYXRjaGVkLgotCQkJCSAgICAgICAqCi0JCQkJICAgICAgICogXG5vdGUgVGhlIGJ1ZmZlciBtYXkgbm90IHlldCBoYXZlCi0JCQkJICAgICAgICogYmVlbiBwcm9jZXNzZWQgYnkgdGhlIGhhcmR3YXJlIC0tCi0JCQkJICAgICAgICogZ2V0dGluZyBhIGhhcmR3YXJlIGxvY2sgd2l0aCB0aGUKLQkJCQkgICAgICAgKiBoYXJkd2FyZSBxdWllc2NlbnQgd2lsbCBlbnN1cmUKLQkJCQkgICAgICAgKiB0aGF0IHRoZSBidWZmZXIgaGFzIGJlZW4KLQkJCQkgICAgICAgKiBwcm9jZXNzZWQuCi0JCQkJICAgICAgICovCi0JX0RSTV9ETUFfV0hJTEVfTE9DS0VEID0gMHgwMiwgLyoqPCBEaXNwYXRjaCB3aGlsZSBsb2NrIGhlbGQgKi8KLQlfRFJNX0RNQV9QUklPUklUWSA9IDB4MDQsICAgICAvKio8IEhpZ2ggcHJpb3JpdHkgZGlzcGF0Y2ggKi8KLQotCS8qIEZsYWdzIGZvciBETUEgYnVmZmVyIHJlcXVlc3QgKi8KLQlfRFJNX0RNQV9XQUlUID0gMHgxMCwJICAgICAgLyoqPCBXYWl0IGZvciBmcmVlIGJ1ZmZlcnMgKi8KLQlfRFJNX0RNQV9TTUFMTEVSX09LID0gMHgyMCwgICAvKio8IFNtYWxsZXItdGhhbi1yZXF1ZXN0ZWQgYnVmZmVycyBPSyAqLwotCV9EUk1fRE1BX0xBUkdFUl9PSyA9IDB4NDAgICAgIC8qKjwgTGFyZ2VyLXRoYW4tcmVxdWVzdGVkIGJ1ZmZlcnMgT0sgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FERF9CVUZTIGFuZCBEUk1fSU9DVExfTUFSS19CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUFkZEJ1ZnMoKS4KLSAqLwotc3RydWN0IGRybV9idWZfZGVzYyB7Ci0JaW50IGNvdW50OwkJIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgb2YgdGhpcyBzaXplICovCi0JaW50IHNpemU7CQkgLyoqPCBTaXplIGluIGJ5dGVzICovCi0JaW50IGxvd19tYXJrOwkJIC8qKjwgTG93IHdhdGVyIG1hcmsgKi8KLQlpbnQgaGlnaF9tYXJrOwkJIC8qKjwgSGlnaCB3YXRlciBtYXJrICovCi0JZW51bSB7Ci0JCV9EUk1fUEFHRV9BTElHTiA9IDB4MDEsCS8qKjwgQWxpZ24gb24gcGFnZSBib3VuZGFyaWVzIGZvciBETUEgKi8KLQkJX0RSTV9BR1BfQlVGRkVSID0gMHgwMiwJLyoqPCBCdWZmZXIgaXMgaW4gQUdQIHNwYWNlICovCi0JCV9EUk1fU0dfQlVGRkVSID0gMHgwNCwJLyoqPCBTY2F0dGVyL2dhdGhlciBtZW1vcnkgYnVmZmVyICovCi0JCV9EUk1fRkJfQlVGRkVSID0gMHgwOCwJLyoqPCBCdWZmZXIgaXMgaW4gZnJhbWUgYnVmZmVyICovCi0JCV9EUk1fUENJX0JVRkZFUl9STyA9IDB4MTAgLyoqPCBNYXAgUENJIERNQSBidWZmZXIgcmVhZC1vbmx5ICovCi0JfSBmbGFnczsKLQl1bnNpZ25lZCBsb25nIGFncF9zdGFydDsgLyoqPAotCQkJCSAgKiBTdGFydCBhZGRyZXNzIG9mIHdoZXJlIHRoZSBBR1AgYnVmZmVycyBhcmUKLQkJCQkgICogaW4gdGhlIEFHUCBhcGVydHVyZQotCQkJCSAgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0lORk9fQlVGUyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2J1Zl9pbmZvIHsKLQlpbnQgY291bnQ7CQkvKio8IEVudHJpZXMgaW4gbGlzdCAqLwotCXN0cnVjdCBkcm1fYnVmX2Rlc2MgX191c2VyICpsaXN0OwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfRlJFRV9CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX2ZyZWUgewotCWludCBjb3VudDsKLQlpbnQgX191c2VyICpsaXN0OwotfTsKLQotLyoqCi0gKiBCdWZmZXIgaW5mb3JtYXRpb24KLSAqCi0gKiBcc2EgZHJtX2J1Zl9tYXAuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX3B1YiB7Ci0JaW50IGlkeDsJCSAgICAgICAvKio8IEluZGV4IGludG8gdGhlIG1hc3RlciBidWZmZXIgbGlzdCAqLwotCWludCB0b3RhbDsJCSAgICAgICAvKio8IEJ1ZmZlciBzaXplICovCi0JaW50IHVzZWQ7CQkgICAgICAgLyoqPCBBbW91bnQgb2YgYnVmZmVyIGluIHVzZSAoZm9yIERNQSkgKi8KLQl2b2lkIF9fdXNlciAqYWRkcmVzczsJICAgICAgIC8qKjwgQWRkcmVzcyBvZiBidWZmZXIgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX01BUF9CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fYnVmX21hcCB7Ci0JaW50IGNvdW50OwkJLyoqPCBMZW5ndGggb2YgdGhlIGJ1ZmZlciBsaXN0ICovCi0Jdm9pZCBfX3VzZXIgKnZpcnR1YWw7CQkvKio8IE1tYXAnZCBhcmVhIGluIHVzZXItdmlydHVhbCAqLwotCXN0cnVjdCBkcm1fYnVmX3B1YiBfX3VzZXIgKmxpc3Q7CS8qKjwgQnVmZmVyIGluZm9ybWF0aW9uICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9ETUEgaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBJbmRpY2VzIGhlcmUgcmVmZXIgdG8gdGhlIG9mZnNldCBpbnRvIHRoZSBidWZmZXIgbGlzdCBpbiBkcm1fYnVmX2dldC4KLSAqCi0gKiBcc2EgZHJtRE1BKCkuCi0gKi8KLXN0cnVjdCBkcm1fZG1hIHsKLQlpbnQgY29udGV4dDsJCQkgIC8qKjwgQ29udGV4dCBoYW5kbGUgKi8KLQlpbnQgc2VuZF9jb3VudDsJCQkgIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgdG8gc2VuZCAqLwotCWludCBfX3VzZXIgKnNlbmRfaW5kaWNlczsJICAvKio8IExpc3Qgb2YgaGFuZGxlcyB0byBidWZmZXJzICovCi0JaW50IF9fdXNlciAqc2VuZF9zaXplczsJCSAgLyoqPCBMZW5ndGhzIG9mIGRhdGEgdG8gc2VuZCAqLwotCWVudW0gZHJtX2RtYV9mbGFncyBmbGFnczsJICAvKio8IEZsYWdzICovCi0JaW50IHJlcXVlc3RfY291bnQ7CQkgIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgcmVxdWVzdGVkICovCi0JaW50IHJlcXVlc3Rfc2l6ZTsJCSAgLyoqPCBEZXNpcmVkIHNpemUgZm9yIGJ1ZmZlcnMgKi8KLQlpbnQgX191c2VyICpyZXF1ZXN0X2luZGljZXM7CSAgLyoqPCBCdWZmZXIgaW5mb3JtYXRpb24gKi8KLQlpbnQgX191c2VyICpyZXF1ZXN0X3NpemVzOwotCWludCBncmFudGVkX2NvdW50OwkJICAvKio8IE51bWJlciBvZiBidWZmZXJzIGdyYW50ZWQgKi8KLX07Ci0KLWVudW0gZHJtX2N0eF9mbGFncyB7Ci0JX0RSTV9DT05URVhUX1BSRVNFUlZFRCA9IDB4MDEsCi0JX0RSTV9DT05URVhUXzJET05MWSA9IDB4MDIKLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FERF9DVFggaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQ3JlYXRlQ29udGV4dCgpIGFuZCBkcm1EZXN0cm95Q29udGV4dCgpLgotICovCi1zdHJ1Y3QgZHJtX2N0eCB7Ci0JZHJtX2NvbnRleHRfdCBoYW5kbGU7Ci0JZW51bSBkcm1fY3R4X2ZsYWdzIGZsYWdzOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfUkVTX0NUWCBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2N0eF9yZXMgewotCWludCBjb3VudDsKLQlzdHJ1Y3QgZHJtX2N0eCBfX3VzZXIgKmNvbnRleHRzOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUREX0RSQVcgYW5kIERSTV9JT0NUTF9STV9EUkFXIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKi8KLXN0cnVjdCBkcm1fZHJhdyB7Ci0JZHJtX2RyYXdhYmxlX3QgaGFuZGxlOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfVVBEQVRFX0RSQVcgaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqLwotdHlwZWRlZiBlbnVtIHsKLQlEUk1fRFJBV0FCTEVfQ0xJUFJFQ1RTLAotfSBkcm1fZHJhd2FibGVfaW5mb190eXBlX3Q7Ci0KLXN0cnVjdCBkcm1fdXBkYXRlX2RyYXcgewotCWRybV9kcmF3YWJsZV90IGhhbmRsZTsKLQl1bnNpZ25lZCBpbnQgdHlwZTsKLQl1bnNpZ25lZCBpbnQgbnVtOwotCXVuc2lnbmVkIGxvbmcgbG9uZyBkYXRhOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfR0VUX01BR0lDIGFuZCBEUk1fSU9DVExfQVVUSF9NQUdJQyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX2F1dGggewotCWRybV9tYWdpY190IG1hZ2ljOwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfSVJRX0JVU0lEIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybUdldEludGVycnVwdEZyb21CdXNJRCgpLgotICovCi1zdHJ1Y3QgZHJtX2lycV9idXNpZCB7Ci0JaW50IGlycTsJLyoqPCBJUlEgbnVtYmVyICovCi0JaW50IGJ1c251bTsJLyoqPCBidXMgbnVtYmVyICovCi0JaW50IGRldm51bTsJLyoqPCBkZXZpY2UgbnVtYmVyICovCi0JaW50IGZ1bmNudW07CS8qKjwgZnVuY3Rpb24gbnVtYmVyICovCi19OwotCi1lbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgewotCV9EUk1fVkJMQU5LX0FCU09MVVRFID0gMHgwLAkvKio8IFdhaXQgZm9yIHNwZWNpZmljIHZibGFuayBzZXF1ZW5jZSBudW1iZXIgKi8KLQlfRFJNX1ZCTEFOS19SRUxBVElWRSA9IDB4MSwJLyoqPCBXYWl0IGZvciBnaXZlbiBudW1iZXIgb2YgdmJsYW5rcyAqLwotCV9EUk1fVkJMQU5LX05FWFRPTk1JU1MgPSAweDEwMDAwMDAwLAkvKio8IElmIG1pc3NlZCwgd2FpdCBmb3IgbmV4dCB2YmxhbmsgKi8KLQlfRFJNX1ZCTEFOS19TRUNPTkRBUlkgPSAweDIwMDAwMDAwLAkvKio8IFNlY29uZGFyeSBkaXNwbGF5IGNvbnRyb2xsZXIgKi8KLQlfRFJNX1ZCTEFOS19TSUdOQUwgPSAweDQwMDAwMDAwCS8qKjwgU2VuZCBzaWduYWwgaW5zdGVhZCBvZiBibG9ja2luZyAqLwotfTsKLQotI2RlZmluZSBfRFJNX1ZCTEFOS19UWVBFU19NQVNLIChfRFJNX1ZCTEFOS19BQlNPTFVURSB8IF9EUk1fVkJMQU5LX1JFTEFUSVZFKQotI2RlZmluZSBfRFJNX1ZCTEFOS19GTEFHU19NQVNLIChfRFJNX1ZCTEFOS19TSUdOQUwgfCBfRFJNX1ZCTEFOS19TRUNPTkRBUlkgfCBcCi0JCQkJX0RSTV9WQkxBTktfTkVYVE9OTUlTUykKLQotc3RydWN0IGRybV93YWl0X3ZibGFua19yZXF1ZXN0IHsKLQllbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7Ci0JdW5zaWduZWQgbG9uZyBzaWduYWw7Ci19OwotCi1zdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHsKLQllbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgdHlwZTsKLQl1bnNpZ25lZCBpbnQgc2VxdWVuY2U7Ci0JbG9uZyB0dmFsX3NlYzsKLQlsb25nIHR2YWxfdXNlYzsKLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX1dBSVRfVkJMQU5LIGlvY3RsIGFyZ3VtZW50IHR5cGUuCi0gKgotICogXHNhIGRybVdhaXRWQmxhbmsoKS4KLSAqLwotdW5pb24gZHJtX3dhaXRfdmJsYW5rIHsKLQlzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcXVlc3QgcmVxdWVzdDsKLQlzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcGx5IHJlcGx5OwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUdQX0VOQUJMRSBpb2N0bCBhcmd1bWVudCB0eXBlLgotICoKLSAqIFxzYSBkcm1BZ3BFbmFibGUoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfbW9kZSB7Ci0JdW5zaWduZWQgbG9uZyBtb2RlOwkvKio8IEFHUCBtb2RlICovCi19OwotCi0vKioKLSAqIERSTV9JT0NUTF9BR1BfQUxMT0MgYW5kIERSTV9JT0NUTF9BR1BfRlJFRSBpb2N0bHMgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwQWxsb2MoKSBhbmQgZHJtQWdwRnJlZSgpLgotICovCi1zdHJ1Y3QgZHJtX2FncF9idWZmZXIgewotCXVuc2lnbmVkIGxvbmcgc2l6ZTsJLyoqPCBJbiBieXRlcyAtLSB3aWxsIHJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KLQl1bnNpZ25lZCBsb25nIGhhbmRsZTsJLyoqPCBVc2VkIGZvciBiaW5kaW5nIC8gdW5iaW5kaW5nICovCi0JdW5zaWduZWQgbG9uZyB0eXBlOwkvKio8IFR5cGUgb2YgbWVtb3J5IHRvIGFsbG9jYXRlICovCi0JdW5zaWduZWQgbG9uZyBwaHlzaWNhbDsJLyoqPCBQaHlzaWNhbCB1c2VkIGJ5IGk4MTAgKi8KLX07Ci0KLS8qKgotICogRFJNX0lPQ1RMX0FHUF9CSU5EIGFuZCBEUk1fSU9DVExfQUdQX1VOQklORCBpb2N0bHMgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwQmluZCgpIGFuZCBkcm1BZ3BVbmJpbmQoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfYmluZGluZyB7Ci0JdW5zaWduZWQgbG9uZyBoYW5kbGU7CS8qKjwgRnJvbSBkcm1fYWdwX2J1ZmZlciAqLwotCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwkvKio8IEluIGJ5dGVzIC0tIHdpbGwgcm91bmQgdG8gcGFnZSBib3VuZGFyeSAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfQUdQX0lORk8gaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqCi0gKiBcc2EgZHJtQWdwVmVyc2lvbk1ham9yKCksIGRybUFncFZlcnNpb25NaW5vcigpLCBkcm1BZ3BHZXRNb2RlKCksCi0gKiBkcm1BZ3BCYXNlKCksIGRybUFncFNpemUoKSwgZHJtQWdwTWVtb3J5VXNlZCgpLCBkcm1BZ3BNZW1vcnlBdmFpbCgpLAotICogZHJtQWdwVmVuZG9ySWQoKSBhbmQgZHJtQWdwRGV2aWNlSWQoKS4KLSAqLwotc3RydWN0IGRybV9hZ3BfaW5mbyB7Ci0JaW50IGFncF92ZXJzaW9uX21ham9yOwotCWludCBhZ3BfdmVyc2lvbl9taW5vcjsKLQl1bnNpZ25lZCBsb25nIG1vZGU7Ci0JdW5zaWduZWQgbG9uZyBhcGVydHVyZV9iYXNlOwkvKiBwaHlzaWNhbCBhZGRyZXNzICovCi0JdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOwkvKiBieXRlcyAqLwotCXVuc2lnbmVkIGxvbmcgbWVtb3J5X2FsbG93ZWQ7CS8qIGJ5dGVzICovCi0JdW5zaWduZWQgbG9uZyBtZW1vcnlfdXNlZDsKLQotCS8qIFBDSSBpbmZvcm1hdGlvbiAqLwotCXVuc2lnbmVkIHNob3J0IGlkX3ZlbmRvcjsKLQl1bnNpZ25lZCBzaG9ydCBpZF9kZXZpY2U7Ci19OwotCi0vKioKLSAqIERSTV9JT0NUTF9TR19BTExPQyBpb2N0bCBhcmd1bWVudCB0eXBlLgotICovCi1zdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyIHsKLQl1bnNpZ25lZCBsb25nIHNpemU7CS8qKjwgSW4gYnl0ZXMgLS0gd2lsbCByb3VuZCB0byBwYWdlIGJvdW5kYXJ5ICovCi0JdW5zaWduZWQgbG9uZyBoYW5kbGU7CS8qKjwgVXNlZCBmb3IgbWFwcGluZyAvIHVubWFwcGluZyAqLwotfTsKLQotLyoqCi0gKiBEUk1fSU9DVExfU0VUX1ZFUlNJT04gaW9jdGwgYXJndW1lbnQgdHlwZS4KLSAqLwotc3RydWN0IGRybV9zZXRfdmVyc2lvbiB7Ci0JaW50IGRybV9kaV9tYWpvcjsKLQlpbnQgZHJtX2RpX21pbm9yOwotCWludCBkcm1fZGRfbWFqb3I7Ci0JaW50IGRybV9kZF9taW5vcjsKLX07Ci0KLSNkZWZpbmUgRFJNX0lPQ1RMX0JBU0UJCQknZCcKLSNkZWZpbmUgRFJNX0lPKG5yKQkJCV9JTyhEUk1fSU9DVExfQkFTRSxucikKLSNkZWZpbmUgRFJNX0lPUihucix0eXBlKQkJX0lPUihEUk1fSU9DVExfQkFTRSxucix0eXBlKQotI2RlZmluZSBEUk1fSU9XKG5yLHR5cGUpCQlfSU9XKERSTV9JT0NUTF9CQVNFLG5yLHR5cGUpCi0jZGVmaW5lIERSTV9JT1dSKG5yLHR5cGUpCQlfSU9XUihEUk1fSU9DVExfQkFTRSxucix0eXBlKQotCi0jZGVmaW5lIERSTV9JT0NUTF9WRVJTSU9OCQlEUk1fSU9XUigweDAwLCBzdHJ1Y3QgZHJtX3ZlcnNpb24pCi0jZGVmaW5lIERSTV9JT0NUTF9HRVRfVU5JUVVFCQlEUk1fSU9XUigweDAxLCBzdHJ1Y3QgZHJtX3VuaXF1ZSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9NQUdJQwkJRFJNX0lPUiggMHgwMiwgc3RydWN0IGRybV9hdXRoKQotI2RlZmluZSBEUk1fSU9DVExfSVJRX0JVU0lECQlEUk1fSU9XUigweDAzLCBzdHJ1Y3QgZHJtX2lycV9idXNpZCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9NQVAgICAgICAgICAgICAgICBEUk1fSU9XUigweDA0LCBzdHJ1Y3QgZHJtX21hcCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9DTElFTlQgICAgICAgICAgICBEUk1fSU9XUigweDA1LCBzdHJ1Y3QgZHJtX2NsaWVudCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9TVEFUUyAgICAgICAgICAgICBEUk1fSU9SKCAweDA2LCBzdHJ1Y3QgZHJtX3N0YXRzKQotI2RlZmluZSBEUk1fSU9DVExfU0VUX1ZFUlNJT04JCURSTV9JT1dSKDB4MDcsIHN0cnVjdCBkcm1fc2V0X3ZlcnNpb24pCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1NFVF9VTklRVUUJCURSTV9JT1coIDB4MTAsIHN0cnVjdCBkcm1fdW5pcXVlKQotI2RlZmluZSBEUk1fSU9DVExfQVVUSF9NQUdJQwkJRFJNX0lPVyggMHgxMSwgc3RydWN0IGRybV9hdXRoKQotI2RlZmluZSBEUk1fSU9DVExfQkxPQ0sJCQlEUk1fSU9XUigweDEyLCBzdHJ1Y3QgZHJtX2Jsb2NrKQotI2RlZmluZSBEUk1fSU9DVExfVU5CTE9DSwkJRFJNX0lPV1IoMHgxMywgc3RydWN0IGRybV9ibG9jaykKLSNkZWZpbmUgRFJNX0lPQ1RMX0NPTlRST0wJCURSTV9JT1coIDB4MTQsIHN0cnVjdCBkcm1fY29udHJvbCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FERF9NQVAJCURSTV9JT1dSKDB4MTUsIHN0cnVjdCBkcm1fbWFwKQotI2RlZmluZSBEUk1fSU9DVExfQUREX0JVRlMJCURSTV9JT1dSKDB4MTYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MpCi0jZGVmaW5lIERSTV9JT0NUTF9NQVJLX0JVRlMJCURSTV9JT1coIDB4MTcsIHN0cnVjdCBkcm1fYnVmX2Rlc2MpCi0jZGVmaW5lIERSTV9JT0NUTF9JTkZPX0JVRlMJCURSTV9JT1dSKDB4MTgsIHN0cnVjdCBkcm1fYnVmX2luZm8pCi0jZGVmaW5lIERSTV9JT0NUTF9NQVBfQlVGUwkJRFJNX0lPV1IoMHgxOSwgc3RydWN0IGRybV9idWZfbWFwKQotI2RlZmluZSBEUk1fSU9DVExfRlJFRV9CVUZTCQlEUk1fSU9XKCAweDFhLCBzdHJ1Y3QgZHJtX2J1Zl9mcmVlKQotCi0jZGVmaW5lIERSTV9JT0NUTF9STV9NQVAJCURSTV9JT1coIDB4MWIsIHN0cnVjdCBkcm1fbWFwKQotCi0jZGVmaW5lIERSTV9JT0NUTF9TRVRfU0FSRUFfQ1RYCQlEUk1fSU9XKCAweDFjLCBzdHJ1Y3QgZHJtX2N0eF9wcml2X21hcCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9TQVJFQV9DVFggCURSTV9JT1dSKDB4MWQsIHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwKQotCi0jZGVmaW5lIERSTV9JT0NUTF9BRERfQ1RYCQlEUk1fSU9XUigweDIwLCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JNX0NUWAkJRFJNX0lPV1IoMHgyMSwgc3RydWN0IGRybV9jdHgpCi0jZGVmaW5lIERSTV9JT0NUTF9NT0RfQ1RYCQlEUk1fSU9XKCAweDIyLCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9DVFgJCURSTV9JT1dSKDB4MjMsIHN0cnVjdCBkcm1fY3R4KQotI2RlZmluZSBEUk1fSU9DVExfU1dJVENIX0NUWAkJRFJNX0lPVyggMHgyNCwgc3RydWN0IGRybV9jdHgpCi0jZGVmaW5lIERSTV9JT0NUTF9ORVdfQ1RYCQlEUk1fSU9XKCAweDI1LCBzdHJ1Y3QgZHJtX2N0eCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JFU19DVFgJCURSTV9JT1dSKDB4MjYsIHN0cnVjdCBkcm1fY3R4X3JlcykKLSNkZWZpbmUgRFJNX0lPQ1RMX0FERF9EUkFXCQlEUk1fSU9XUigweDI3LCBzdHJ1Y3QgZHJtX2RyYXcpCi0jZGVmaW5lIERSTV9JT0NUTF9STV9EUkFXCQlEUk1fSU9XUigweDI4LCBzdHJ1Y3QgZHJtX2RyYXcpCi0jZGVmaW5lIERSTV9JT0NUTF9ETUEJCQlEUk1fSU9XUigweDI5LCBzdHJ1Y3QgZHJtX2RtYSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0xPQ0sJCQlEUk1fSU9XKCAweDJhLCBzdHJ1Y3QgZHJtX2xvY2spCi0jZGVmaW5lIERSTV9JT0NUTF9VTkxPQ0sJCURSTV9JT1coIDB4MmIsIHN0cnVjdCBkcm1fbG9jaykKLSNkZWZpbmUgRFJNX0lPQ1RMX0ZJTklTSAkJRFJNX0lPVyggMHgyYywgc3RydWN0IGRybV9sb2NrKQotCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfQUNRVUlSRQkJRFJNX0lPKCAgMHgzMCkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9SRUxFQVNFCQlEUk1fSU8oICAweDMxKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0VOQUJMRQkJRFJNX0lPVyggMHgzMiwgc3RydWN0IGRybV9hZ3BfbW9kZSkKLSNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9JTkZPCQlEUk1fSU9SKCAweDMzLCBzdHJ1Y3QgZHJtX2FncF9pbmZvKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0FMTE9DCQlEUk1fSU9XUigweDM0LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIpCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfRlJFRQkJRFJNX0lPVyggMHgzNSwgc3RydWN0IGRybV9hZ3BfYnVmZmVyKQotI2RlZmluZSBEUk1fSU9DVExfQUdQX0JJTkQJCURSTV9JT1coIDB4MzYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcpCi0jZGVmaW5lIERSTV9JT0NUTF9BR1BfVU5CSU5ECQlEUk1fSU9XKCAweDM3LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nKQotCi0jZGVmaW5lIERSTV9JT0NUTF9TR19BTExPQwkJRFJNX0lPVyggMHgzOCwgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlcikKLSNkZWZpbmUgRFJNX0lPQ1RMX1NHX0ZSRUUJCURSTV9JT1coIDB4MzksIHN0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIpCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LCQlEUk1fSU9XUigweDNhLCB1bmlvbiBkcm1fd2FpdF92YmxhbmspCi0KLSNkZWZpbmUgRFJNX0lPQ1RMX1VQREFURV9EUkFXCQlEUk1fSU9XKDB4M2YsIHN0cnVjdCBkcm1fdXBkYXRlX2RyYXcpCi0KLS8qKgotICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKLSAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgZnJvbSAweDQwIHRvIDB4OTkuCi0gKiBHZW5lcmljIElPQ1RMUyByZXN0YXJ0IGF0IDB4QTAuCi0gKgotICogXHNhIGRybUNvbW1hbmROb25lKCksIGRybUNvbW1hbmRSZWFkKCksIGRybUNvbW1hbmRXcml0ZSgpLCBhbmQKLSAqIGRybUNvbW1hbmRSZWFkV3JpdGUoKS4KLSAqLwotI2RlZmluZSBEUk1fQ09NTUFORF9CQVNFICAgICAgICAgICAgICAgIDB4NDAKLSNkZWZpbmUgRFJNX0NPTU1BTkRfRU5ECQkJMHhBMAotCi0vKiB0eXBlZGVmIGFyZWEgKi8KLSNpZm5kZWYgX19LRVJORUxfXwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBkcm1fY2xpcF9yZWN0X3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fZHJhd2FibGVfaW5mbyBkcm1fZHJhd2FibGVfaW5mb190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3RleF9yZWdpb24gZHJtX3RleF9yZWdpb25fdDsKLXR5cGVkZWYgc3RydWN0IGRybV9od19sb2NrIGRybV9od19sb2NrX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fdmVyc2lvbiBkcm1fdmVyc2lvbl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3VuaXF1ZSBkcm1fdW5pcXVlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fbGlzdCBkcm1fbGlzdF90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2Jsb2NrIGRybV9ibG9ja190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NvbnRyb2wgZHJtX2NvbnRyb2xfdDsKLXR5cGVkZWYgZW51bSBkcm1fbWFwX3R5cGUgZHJtX21hcF90eXBlX3Q7Ci10eXBlZGVmIGVudW0gZHJtX21hcF9mbGFncyBkcm1fbWFwX2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwIGRybV9jdHhfcHJpdl9tYXBfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9tYXAgZHJtX21hcF90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2NsaWVudCBkcm1fY2xpZW50X3Q7Ci10eXBlZGVmIGVudW0gZHJtX3N0YXRfdHlwZSBkcm1fc3RhdF90eXBlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fc3RhdHMgZHJtX3N0YXRzX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2xvY2tfZmxhZ3MgZHJtX2xvY2tfZmxhZ3NfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9sb2NrIGRybV9sb2NrX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2RtYV9mbGFncyBkcm1fZG1hX2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2Rlc2MgZHJtX2J1Zl9kZXNjX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2luZm8gZHJtX2J1Zl9pbmZvX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX2ZyZWUgZHJtX2J1Zl9mcmVlX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYnVmX3B1YiBkcm1fYnVmX3B1Yl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2J1Zl9tYXAgZHJtX2J1Zl9tYXBfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9kbWEgZHJtX2RtYV90OwotdHlwZWRlZiB1bmlvbiBkcm1fd2FpdF92YmxhbmsgZHJtX3dhaXRfdmJsYW5rX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fYWdwX21vZGUgZHJtX2FncF9tb2RlX3Q7Ci10eXBlZGVmIGVudW0gZHJtX2N0eF9mbGFncyBkcm1fY3R4X2ZsYWdzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fY3R4IGRybV9jdHhfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9jdHhfcmVzIGRybV9jdHhfcmVzX3Q7Ci10eXBlZGVmIHN0cnVjdCBkcm1fZHJhdyBkcm1fZHJhd190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3VwZGF0ZV9kcmF3IGRybV91cGRhdGVfZHJhd190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2F1dGggZHJtX2F1dGhfdDsKLXR5cGVkZWYgc3RydWN0IGRybV9pcnFfYnVzaWQgZHJtX2lycV9idXNpZF90OwotdHlwZWRlZiBlbnVtIGRybV92Ymxhbmtfc2VxX3R5cGUgZHJtX3ZibGFua19zZXFfdHlwZV90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciBkcm1fYWdwX2J1ZmZlcl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nIGRybV9hZ3BfYmluZGluZ190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX2FncF9pbmZvIGRybV9hZ3BfaW5mb190OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyIGRybV9zY2F0dGVyX2dhdGhlcl90OwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uIGRybV9zZXRfdmVyc2lvbl90OwotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1QLmggYi9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDc2NGI2Ni4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybVAuaAorKysgL2Rldi9udWxsCkBAIC0xLDExNTMgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1QLmgKLSAqIFByaXZhdGUgaGVhZGVyIGZvciBEaXJlY3QgUmVuZGVyaW5nIE1hbmFnZXIKLSAqCi0gKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgotICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKi8KLQotLyoKLSAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKi8KLQotI2lmbmRlZiBfRFJNX1BfSF8KLSNkZWZpbmUgX0RSTV9QX0hfCi0KLS8qIElmIHlvdSB3YW50IHRoZSBtZW1vcnkgYWxsb2MgZGVidWcgZnVuY3Rpb25hbGl0eSwgY2hhbmdlIGRlZmluZSBiZWxvdyAqLwotLyogI2RlZmluZSBERUJVR19NRU1PUlkgKi8KLQotI2lmZGVmIF9fS0VSTkVMX18KLSNpZmRlZiBfX2FscGhhX18KLS8qIGFkZCBpbmNsdWRlIG9mIGN1cnJlbnQuaCBzbyB0aGF0ICJjdXJyZW50IiBpcyBkZWZpbmVkCi0gKiBiZWZvcmUgc3RhdGljIGlubGluZSBmdW5jcyBpbiB3YWl0LmguIERvaW5nIHRoaXMgc28gd2UKLSAqIGNhbiBidWlsZCB0aGUgRFJNIChwYXJ0IG9mIFBJIERSSSkuIDQvMjEvMjAwMCBTICsgQiAqLwotI2luY2x1ZGUgPGFzbS9jdXJyZW50Lmg+Ci0jZW5kaWYJCQkJLyogX19hbHBoYV9fICovCi0jaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgva2VybmVsLmg+Ci0jaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZzLmg+Ci0jaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9maWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgotI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CS8qIEZvciAodW4pbG9ja19rZXJuZWwgKi8KLSNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvY2Rldi5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0jaWYgZGVmaW5lZChfX2FscGhhX18pIHx8IGRlZmluZWQoX19wb3dlcnBjX18pCi0jaW5jbHVkZSA8YXNtL3BndGFibGUuaD4JLyogRm9yIHB0ZV93cnByb3RlY3QgKi8KLSNlbmRpZgotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9tbWFuLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpZmRlZiBDT05GSUdfTVRSUgotI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0jZW5kaWYKLSNpZiBkZWZpbmVkKENPTkZJR19BR1ApIHx8IGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpCi0jaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxsaW51eC9hZ3BfYmFja2VuZC5oPgotI2VuZGlmCi0jaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+Ci0jaW5jbHVkZSA8bGludXgvcG9sbC5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+Ci0jaW5jbHVkZSAiZHJtLmgiCi0KLSNpbmNsdWRlIDxsaW51eC9pZHIuaD4KLQotI2RlZmluZSBfX09TX0hBU19BR1AgKGRlZmluZWQoQ09ORklHX0FHUCkgfHwgKGRlZmluZWQoQ09ORklHX0FHUF9NT0RVTEUpICYmIGRlZmluZWQoTU9EVUxFKSkpCi0jZGVmaW5lIF9fT1NfSEFTX01UUlIgKGRlZmluZWQoQ09ORklHX01UUlIpKQotCi1zdHJ1Y3QgZHJtX2ZpbGU7Ci1zdHJ1Y3QgZHJtX2RldmljZTsKLQotI2luY2x1ZGUgImRybV9vc19saW51eC5oIgotI2luY2x1ZGUgImRybV9oYXNodGFiLmgiCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBEUk0gdGVtcGxhdGUgY3VzdG9taXphdGlvbiBkZWZhdWx0cyAqLwotLypAeyovCi0KLS8qIGRyaXZlciBjYXBhYmlsaXRpZXMgYW5kIHJlcXVpcmVtZW50cyBtYXNrICovCi0jZGVmaW5lIERSSVZFUl9VU0VfQUdQICAgICAweDEKLSNkZWZpbmUgRFJJVkVSX1JFUVVJUkVfQUdQIDB4MgotI2RlZmluZSBEUklWRVJfVVNFX01UUlIgICAgMHg0Ci0jZGVmaW5lIERSSVZFUl9QQ0lfRE1BICAgICAweDgKLSNkZWZpbmUgRFJJVkVSX1NHICAgICAgICAgIDB4MTAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfRE1BICAgIDB4MjAKLSNkZWZpbmUgRFJJVkVSX0hBVkVfSVJRICAgIDB4NDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9TSEFSRUQgIDB4ODAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwgICAgIDB4MTAwCi0jZGVmaW5lIERSSVZFUl9ETUFfUVVFVUUgICAweDIwMAotI2RlZmluZSBEUklWRVJfRkJfRE1BICAgICAgMHg0MDAKLSNkZWZpbmUgRFJJVkVSX0lSUV9WQkwyICAgIDB4ODAwCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBCZWdpbiB0aGUgRFJNLi4uICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fREVCVUdfQ09ERSAyCSAgLyoqPCBJbmNsdWRlIGRlYnVnZ2luZyBjb2RlIGlmID4gMSwgdGhlbgotCQkJCSAgICAgYWxzbyBpbmNsdWRlIGxvb3BpbmcgZGV0ZWN0aW9uLiAqLwotCi0jZGVmaW5lIERSTV9NQUdJQ19IQVNIX09SREVSICA0ICAvKio8IFNpemUgb2Yga2V5IGhhc2ggdGFibGUuIE11c3QgYmUgcG93ZXIgb2YgMi4gKi8KLSNkZWZpbmUgRFJNX0tFUk5FTF9DT05URVhUICAgIDAJIC8qKjwgQ2hhbmdlIGRybV9yZXNjdHggaWYgY2hhbmdlZCAqLwotI2RlZmluZSBEUk1fUkVTRVJWRURfQ09OVEVYVFMgMQkgLyoqPCBDaGFuZ2UgZHJtX3Jlc2N0eCBpZiBjaGFuZ2VkICovCi0jZGVmaW5lIERSTV9MT09QSU5HX0xJTUlUICAgICA1MDAwMDAwCi0jZGVmaW5lIERSTV9USU1FX1NMSUNFCSAgICAgIChIWi8yMCkgIC8qKjwgVGltZSBzbGljZSBmb3IgR0xYQ29udGV4dHMgKi8KLSNkZWZpbmUgRFJNX0xPQ0tfU0xJQ0UJICAgICAgMQkvKio8IFRpbWUgc2xpY2UgZm9yIGxvY2ssIGluIGppZmZpZXMgKi8KLQotI2RlZmluZSBEUk1fRkxBR19ERUJVRwkgIDB4MDEKLQotI2RlZmluZSBEUk1fTUVNX0RNQQkgICAwCi0jZGVmaW5lIERSTV9NRU1fU0FSRUEJICAgMQotI2RlZmluZSBEUk1fTUVNX0RSSVZFUgkgICAyCi0jZGVmaW5lIERSTV9NRU1fTUFHSUMJICAgMwotI2RlZmluZSBEUk1fTUVNX0lPQ1RMUwkgICA0Ci0jZGVmaW5lIERSTV9NRU1fTUFQUwkgICA1Ci0jZGVmaW5lIERSTV9NRU1fVk1BUwkgICA2Ci0jZGVmaW5lIERSTV9NRU1fQlVGUwkgICA3Ci0jZGVmaW5lIERSTV9NRU1fU0VHUwkgICA4Ci0jZGVmaW5lIERSTV9NRU1fUEFHRVMJICAgOQotI2RlZmluZSBEUk1fTUVNX0ZJTEVTCSAgMTAKLSNkZWZpbmUgRFJNX01FTV9RVUVVRVMJICAxMQotI2RlZmluZSBEUk1fTUVNX0NNRFMJICAxMgotI2RlZmluZSBEUk1fTUVNX01BUFBJTkdTICAxMwotI2RlZmluZSBEUk1fTUVNX0JVRkxJU1RTICAxNAotI2RlZmluZSBEUk1fTUVNX0FHUExJU1RTICAxNQotI2RlZmluZSBEUk1fTUVNX1RPVEFMQUdQICAxNgotI2RlZmluZSBEUk1fTUVNX0JPVU5EQUdQICAxNwotI2RlZmluZSBEUk1fTUVNX0NUWEJJVE1BUCAxOAotI2RlZmluZSBEUk1fTUVNX1NUVUIgICAgICAxOQotI2RlZmluZSBEUk1fTUVNX1NHTElTVFMgICAyMAotI2RlZmluZSBEUk1fTUVNX0NUWExJU1QgICAyMQotI2RlZmluZSBEUk1fTUVNX01NICAgICAgICAyMgotI2RlZmluZSBEUk1fTUVNX0hBU0hUQUIgICAyMwotCi0jZGVmaW5lIERSTV9NQVhfQ1RYQklUTUFQIChQQUdFX1NJWkUgKiA4KQotI2RlZmluZSBEUk1fTUFQX0hBU0hfT0ZGU0VUIDB4MTAwMDAwMDAKLQotLypAfSovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKiBcbmFtZSBNYWNyb3MgdG8gbWFrZSBwcmludGsgZWFzaWVyICovCi0vKkB7Ki8KLQotLyoqCi0gKiBFcnJvciBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jZGVmaW5lIERSTV9FUlJPUihmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fICwgIyNhcmcpCi0KLS8qKgotICogTWVtb3J5IGVycm9yIG91dHB1dC4KLSAqCi0gKiBccGFyYW0gYXJlYSBtZW1vcnkgYXJlYSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuCi0gKiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KLSAqIFxwYXJhbSBhcmcgYXJndW1lbnRzCi0gKi8KLSNkZWZpbmUgRFJNX01FTV9FUlJPUihhcmVhLCBmbXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolczolc10gKkVSUk9SKiAiIGZtdCAsIF9fZnVuY19fLCBcCi0JICAgICAgIGRybV9tZW1fc3RhdHNbYXJlYV0ubmFtZSAsICMjYXJnKQotCi0jZGVmaW5lIERSTV9JTkZPKGZtdCwgYXJnLi4uKSAgcHJpbnRrKEtFUk5fSU5GTyAiWyIgRFJNX05BTUUgIl0gIiBmbXQgLCAjI2FyZykKLQotLyoqCi0gKiBEZWJ1ZyBvdXRwdXQuCi0gKgotICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCi0gKiBccGFyYW0gYXJnIGFyZ3VtZW50cwotICovCi0jaWYgRFJNX0RFQlVHX0NPREUKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJCQkJCVwKLQlkbyB7CQkJCQkJCQlcCi0JCWlmICggZHJtX2RlYnVnICkJCQlcCi0JCQlwcmludGsoS0VSTl9ERUJVRwkJCQlcCi0JCQkgICAgICAgIlsiIERSTV9OQU1FICI6JXNdICIgZm10ICwJXAotCQkJICAgICAgIF9fZnVuY19fICwgIyNhcmcpOwkJCVwKLQl9IHdoaWxlICgwKQotI2Vsc2UKLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgYXJnLi4uKQkJIGRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCi0jZGVmaW5lIERSTV9QUk9DX0xJTUlUIChQQUdFX1NJWkUtODApCi0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlQoZm10LCBhcmcuLi4pCQkJCQlcCi0gICBsZW4gKz0gc3ByaW50ZigmYnVmW2xlbl0sIGZtdCAsICMjYXJnKTsJCQkJXAotICAgaWYgKGxlbiA+IERSTV9QUk9DX0xJTUlUKSB7ICplb2YgPSAxOyByZXR1cm4gbGVuIC0gb2Zmc2V0OyB9Ci0KLSNkZWZpbmUgRFJNX1BST0NfUFJJTlRfUkVUKHJldCwgZm10LCBhcmcuLi4pCQkJCVwKLSAgIGxlbiArPSBzcHJpbnRmKCZidWZbbGVuXSwgZm10ICwgIyNhcmcpOwkJCQlcCi0gICBpZiAobGVuID4gRFJNX1BST0NfTElNSVQpIHsgcmV0OyAqZW9mID0gMTsgcmV0dXJuIGxlbiAtIG9mZnNldDsgfQotCi0vKkB9Ki8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIHR5cGVzIGFuZCBzdHJ1Y3R1cmVzICovCi0vKkB7Ki8KLQotI2RlZmluZSBEUk1fQVJSQVlfU0laRSh4KSBBUlJBWV9TSVpFKHgpCi0KLSNkZWZpbmUgRFJNX0xFRlRDT1VOVCh4KSAoKCh4KS0+cnAgKyAoeCktPmNvdW50IC0gKHgpLT53cCkgJSAoKHgpLT5jb3VudCArIDEpKQotI2RlZmluZSBEUk1fQlVGQ09VTlQoeCkgKCh4KS0+Y291bnQgLSBEUk1fTEVGVENPVU5UKHgpKQotI2RlZmluZSBEUk1fV0FJVENPVU5UKGRldixpZHgpIERSTV9CVUZDT1VOVCgmZGV2LT5xdWV1ZWxpc3RbaWR4XS0+d2FpdGxpc3QpCi0KLSNkZWZpbmUgRFJNX0lGX1ZFUlNJT04obWFqLCBtaW4pIChtYWogPDwgMTYgfCBtaW4pCi0vKioKLSAqIEdldCB0aGUgcHJpdmF0ZSBTQVJFQSBtYXBwaW5nLgotICoKLSAqIFxwYXJhbSBfZGV2IERSTSBkZXZpY2UuCi0gKiBccGFyYW0gX2N0eCBjb250ZXh0IG51bWJlci4KLSAqIFxwYXJhbSBfbWFwIG91dHB1dCBtYXBwaW5nLgotICovCi0jZGVmaW5lIERSTV9HRVRfUFJJVl9TQVJFQShfZGV2LCBfY3R4LCBfbWFwKSBkbyB7CVwKLQkoX21hcCkgPSAoX2RldiktPmNvbnRleHRfc2FyZWFzW19jdHhdOwkJXAotfSB3aGlsZSgwKQotCi0vKioKLSAqIFRlc3QgdGhhdCB0aGUgaGFyZHdhcmUgbG9jayBpcyBoZWxkIGJ5IHRoZSBjYWxsZXIsIHJldHVybmluZyBvdGhlcndpc2UuCi0gKgotICogXHBhcmFtIGRldiBEUk0gZGV2aWNlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyIG9mIHRoZSBjYWxsZXIuCi0gKi8KLSNkZWZpbmUgTE9DS19URVNUX1dJVEhfUkVUVVJOKCBkZXYsIGZpbGVfcHJpdiApCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JaWYgKCAhX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICkgfHwJCVwKLQkgICAgIGRldi0+bG9jay5maWxlX3ByaXYgIT0gZmlsZV9wcml2ICkJewkJCVwKLQkJRFJNX0VSUk9SKCAiJXMgY2FsbGVkIHdpdGhvdXQgbG9jayBoZWxkLCBoZWxkICAlZCBvd25lciAlcCAlcFxuIixcCi0JCQkgICBfX2Z1bmNfXywgX0RSTV9MT0NLX0lTX0hFTEQoIGRldi0+bG9jay5od19sb2NrLT5sb2NrICksXAotCQkJICAgZGV2LT5sb2NrLmZpbGVfcHJpdiwgZmlsZV9wcml2ICk7CQlcCi0JCXJldHVybiAtRUlOVkFMOwkJCQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKioKLSAqIENvcHkgYW5kIElPQ1RMIHJldHVybiBzdHJpbmcgdG8gdXNlciBzcGFjZQotICovCi0jZGVmaW5lIERSTV9DT1BZKCBuYW1lLCB2YWx1ZSApCQkJCQkJXAotCWxlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCQlcCi0JaWYgKCBsZW4gPiBuYW1lIyNfbGVuICkgbGVuID0gbmFtZSMjX2xlbjsJCQlcCi0JbmFtZSMjX2xlbiA9IHN0cmxlbiggdmFsdWUgKTsJCQkJCVwKLQlpZiAoIGxlbiAmJiBuYW1lICkgewkJCQkJCVwKLQkJaWYgKCBjb3B5X3RvX3VzZXIoIG5hbWUsIHZhbHVlLCBsZW4gKSApCQkJXAotCQkJcmV0dXJuIC1FRkFVTFQ7CQkJCQlcCi0JfQotCi0vKioKLSAqIElvY3RsIGZ1bmN0aW9uIHR5cGUuCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZSBwb2ludGVyLgotICogXHBhcmFtIGNtZCBjb21tYW5kLgotICogXHBhcmFtIGFyZyBhcmd1bWVudC4KLSAqLwotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotdHlwZWRlZiBpbnQgZHJtX2lvY3RsX2NvbXBhdF90KHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgYXJnKTsKLQotI2RlZmluZSBEUk1fQVVUSAkweDEKLSNkZWZpbmUJRFJNX01BU1RFUgkweDIKLSNkZWZpbmUgRFJNX1JPT1RfT05MWQkweDQKLQotc3RydWN0IGRybV9pb2N0bF9kZXNjIHsKLQl1bnNpZ25lZCBpbnQgY21kOwotCWRybV9pb2N0bF90ICpmdW5jOwotCWludCBmbGFnczsKLX07Ci0KLS8qKgotICogQ3JlYXRlcyBhIGRyaXZlciBvciBnZW5lcmFsIGRybV9pb2N0bF9kZXNjIGFycmF5IGVudHJ5IGZvciB0aGUgZ2l2ZW4KLSAqIGlvY3RsLCBmb3IgdXNlIGJ5IGRybV9pb2N0bCgpLgotICovCi0jZGVmaW5lIERSTV9JT0NUTF9ERUYoaW9jdGwsIGZ1bmMsIGZsYWdzKSBcCi0JW0RSTV9JT0NUTF9OUihpb2N0bCldID0ge2lvY3RsLCBmdW5jLCBmbGFnc30KLQotc3RydWN0IGRybV9tYWdpY19lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2hfaXRlbTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKnByaXY7Ci19OwotCi1zdHJ1Y3QgZHJtX3ZtYV9lbnRyeSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOwotCXBpZF90IHBpZDsKLX07Ci0KLS8qKgotICogRE1BIGJ1ZmZlci4KLSAqLwotc3RydWN0IGRybV9idWYgewotCWludCBpZHg7CQkgICAgICAgLyoqPCBJbmRleCBpbnRvIG1hc3RlciBidWZsaXN0ICovCi0JaW50IHRvdGFsOwkJICAgICAgIC8qKjwgQnVmZmVyIHNpemUgKi8KLQlpbnQgb3JkZXI7CQkgICAgICAgLyoqPCBsb2ctYmFzZS0yKHRvdGFsKSAqLwotCWludCB1c2VkOwkJICAgICAgIC8qKjwgQW1vdW50IG9mIGJ1ZmZlciBpbiB1c2UgKGZvciBETUEpICovCi0JdW5zaWduZWQgbG9uZyBvZmZzZXQ7CSAgICAgICAvKio8IEJ5dGUgb2Zmc2V0ICh1c2VkIGludGVybmFsbHkpICovCi0Jdm9pZCAqYWRkcmVzczsJCSAgICAgICAvKio8IEFkZHJlc3Mgb2YgYnVmZmVyICovCi0JdW5zaWduZWQgbG9uZyBidXNfYWRkcmVzczsgICAgIC8qKjwgQnVzIGFkZHJlc3Mgb2YgYnVmZmVyICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEtlcm5lbC1vbmx5OiB1c2VkIGZvciBmcmVlIGxpc3QgKi8KLQlfX3ZvbGF0aWxlX18gaW50IHdhaXRpbmc7ICAgICAgLyoqPCBPbiBrZXJuZWwgRE1BIHF1ZXVlICovCi0JX192b2xhdGlsZV9fIGludCBwZW5kaW5nOyAgICAgIC8qKjwgT24gaGFyZHdhcmUgRE1BIHF1ZXVlICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgZG1hX3dhaXQ7ICAgIC8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgICAgLyoqPCBQcml2YXRlIG9mIGhvbGRpbmcgZmlsZSBkZXNjciAqLwotCWludCBjb250ZXh0OwkJICAgICAgIC8qKjwgS2VybmVsIHF1ZXVlIGZvciB0aGlzIGJ1ZmZlciAqLwotCWludCB3aGlsZV9sb2NrZWQ7CSAgICAgICAvKio8IERpc3BhdGNoIHRoaXMgYnVmZmVyIHdoaWxlIGxvY2tlZCAqLwotCWVudW0gewotCQlEUk1fTElTVF9OT05FID0gMCwKLQkJRFJNX0xJU1RfRlJFRSA9IDEsCi0JCURSTV9MSVNUX1dBSVQgPSAyLAotCQlEUk1fTElTVF9QRU5EID0gMywKLQkJRFJNX0xJU1RfUFJJTyA9IDQsCi0JCURSTV9MSVNUX1JFQ0xBSU0gPSA1Ci0JfSBsaXN0OwkJCSAgICAgICAvKio8IFdoaWNoIGxpc3Qgd2UncmUgb24gKi8KLQotCWludCBkZXZfcHJpdl9zaXplOwkJIC8qKjwgU2l6ZSBvZiBidWZmZXIgcHJpdmF0ZSBzdG9yYWdlICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkgLyoqPCBQZXItYnVmZmVyIHByaXZhdGUgc3RvcmFnZSAqLwotfTsKLQotLyoqIGJ1ZnMgaXMgb25lIGxvbmdlciB0aGFuIGl0IGhhcyB0byBiZSAqLwotc3RydWN0IGRybV93YWl0bGlzdCB7Ci0JaW50IGNvdW50OwkJCS8qKjwgTnVtYmVyIG9mIHBvc3NpYmxlIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1ZnM7CQkvKio8IExpc3Qgb2YgcG9pbnRlcnMgdG8gYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICoqcnA7CQkJLyoqPCBSZWFkIHBvaW50ZXIgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKndwOwkJCS8qKjwgV3JpdGUgcG9pbnRlciAqLwotCXN0cnVjdCBkcm1fYnVmICoqZW5kOwkJLyoqPCBFbmQgcG9pbnRlciAqLwotCXNwaW5sb2NrX3QgcmVhZF9sb2NrOwotCXNwaW5sb2NrX3Qgd3JpdGVfbG9jazsKLX07Ci0KLXN0cnVjdCBkcm1fZnJlZWxpc3QgewotCWludCBpbml0aWFsaXplZDsJICAgICAgIC8qKjwgRnJlZWxpc3QgaW4gdXNlICovCi0JYXRvbWljX3QgY291bnQ7CQkgICAgICAgLyoqPCBOdW1iZXIgb2YgZnJlZSBidWZmZXJzICovCi0Jc3RydWN0IGRybV9idWYgKm5leHQ7CSAgICAgICAvKio8IEVuZCBwb2ludGVyICovCi0KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0aW5nOyAgICAgLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBmcmVlIGJ1ZnMgKi8KLQlpbnQgbG93X21hcms7CQkgICAgICAgLyoqPCBMb3cgd2F0ZXIgbWFyayAqLwotCWludCBoaWdoX21hcms7CQkgICAgICAgLyoqPCBIaWdoIHdhdGVyIG1hcmsgKi8KLQlhdG9taWNfdCB3Zmg7CQkgICAgICAgLyoqPCBJZiB3YWl0aW5nIGZvciBoaWdoIG1hcmsgKi8KLQlzcGlubG9ja190IGxvY2s7Ci19OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fZG1hX2hhbmRsZSB7Ci0JZG1hX2FkZHJfdCBidXNhZGRyOwotCXZvaWQgKnZhZGRyOwotCXNpemVfdCBzaXplOwotfSBkcm1fZG1hX2hhbmRsZV90OwotCi0vKioKLSAqIEJ1ZmZlciBlbnRyeS4gIFRoZXJlIGlzIG9uZSBvZiB0aGlzIGZvciBlYWNoIGJ1ZmZlciBzaXplIG9yZGVyLgotICovCi1zdHJ1Y3QgZHJtX2J1Zl9lbnRyeSB7Ci0JaW50IGJ1Zl9zaXplOwkJCS8qKjwgc2l6ZSAqLwotCWludCBidWZfY291bnQ7CQkJLyoqPCBudW1iZXIgb2YgYnVmZmVycyAqLwotCXN0cnVjdCBkcm1fYnVmICpidWZsaXN0OwkJLyoqPCBidWZmZXIgbGlzdCAqLwotCWludCBzZWdfY291bnQ7Ci0JaW50IHBhZ2Vfb3JkZXI7Ci0Jc3RydWN0IGRybV9kbWFfaGFuZGxlICoqc2VnbGlzdDsKLQotCXN0cnVjdCBkcm1fZnJlZWxpc3QgZnJlZWxpc3Q7Ci19OwotCi0vKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KLXN0cnVjdCBkcm1fZmlsZSB7Ci0JaW50IGF1dGhlbnRpY2F0ZWQ7Ci0JaW50IG1hc3RlcjsKLQlwaWRfdCBwaWQ7Ci0JdWlkX3QgdWlkOwotCWRybV9tYWdpY190IG1hZ2ljOwotCXVuc2lnbmVkIGxvbmcgaW9jdGxfY291bnQ7Ci0Jc3RydWN0IGxpc3RfaGVhZCBsaGVhZDsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKLQlpbnQgcmVtb3ZlX2F1dGhfb25fY2xvc2U7Ci0JdW5zaWduZWQgbG9uZyBsb2NrX2NvdW50OwotCXN0cnVjdCBmaWxlICpmaWxwOwotCXZvaWQgKmRyaXZlcl9wcml2OwotfTsKLQotLyoqIFdhaXQgcXVldWUgKi8KLXN0cnVjdCBkcm1fcXVldWUgewotCWF0b21pY190IHVzZV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdXNlcyAoKzEpICovCi0JYXRvbWljX3QgZmluYWxpemF0aW9uOwkJLyoqPCBGaW5hbGl6YXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQlhdG9taWNfdCBibG9ja19jb3VudDsJCS8qKjwgQ291bnQgb2YgcHJvY2Vzc2VzIHdhaXRpbmcgKi8KLQlhdG9taWNfdCBibG9ja19yZWFkOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciByZWFkcyAqLwotCXdhaXRfcXVldWVfaGVhZF90IHJlYWRfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gYmxvY2tfcmVhZCAqLwotCWF0b21pY190IGJsb2NrX3dyaXRlOwkJLyoqPCBRdWV1ZSBibG9ja2VkIGZvciB3cml0ZXMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3cml0ZV9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyBvbiBibG9ja193cml0ZSAqLwotCWF0b21pY190IHRvdGFsX3F1ZXVlZDsJCS8qKjwgVG90YWwgcXVldWVkIHN0YXRpc3RpYyAqLwotCWF0b21pY190IHRvdGFsX2ZsdXNoZWQ7CQkvKio8IFRvdGFsIGZsdXNoZXMgc3RhdGlzdGljICovCi0JYXRvbWljX3QgdG90YWxfbG9ja3M7CQkvKio8IFRvdGFsIGxvY2tzIHN0YXRpc3RpY3MgKi8KLQllbnVtIGRybV9jdHhfZmxhZ3MgZmxhZ3M7CS8qKjwgQ29udGV4dCBwcmVzZXJ2aW5nIGFuZCAyRC1vbmx5ICovCi0Jc3RydWN0IGRybV93YWl0bGlzdCB3YWl0bGlzdDsJLyoqPCBQZW5kaW5nIGJ1ZmZlcnMgKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBmbHVzaF9xdWV1ZTsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB1bnRpbCBmbHVzaCAqLwotfTsKLQotLyoqCi0gKiBMb2NrIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fbG9ja19kYXRhIHsKLQlzdHJ1Y3QgZHJtX2h3X2xvY2sgKmh3X2xvY2s7CS8qKjwgSGFyZHdhcmUgbG9jayAqLwotCS8qKiBQcml2YXRlIG9mIGxvY2sgaG9sZGVyJ3MgZmlsZSAoTlVMTD1rZXJuZWwpICovCi0Jc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3QgbG9ja19xdWV1ZTsJLyoqPCBRdWV1ZSBvZiBibG9ja2VkIHByb2Nlc3NlcyAqLwotCXVuc2lnbmVkIGxvbmcgbG9ja190aW1lOwkvKio8IFRpbWUgb2YgbGFzdCBsb2NrIGluIGppZmZpZXMgKi8KLQlzcGlubG9ja190IHNwaW5sb2NrOwotCXVpbnQzMl90IGtlcm5lbF93YWl0ZXJzOwotCXVpbnQzMl90IHVzZXJfd2FpdGVyczsKLQlpbnQgaWRsZV9oYXNfbG9jazsKLX07Ci0KLS8qKgotICogRE1BIGRhdGEuCi0gKi8KLXN0cnVjdCBkcm1fZGV2aWNlX2RtYSB7Ci0KLQlzdHJ1Y3QgZHJtX2J1Zl9lbnRyeSBidWZzW0RSTV9NQVhfT1JERVIgKyAxXTsJLyoqPCBidWZmZXJzLCBncm91cGVkIGJ5IHRoZWlyIHNpemUgb3JkZXIgKi8KLQlpbnQgYnVmX2NvdW50OwkJCS8qKjwgdG90YWwgbnVtYmVyIG9mIGJ1ZmZlcnMgKi8KLQlzdHJ1Y3QgZHJtX2J1ZiAqKmJ1Zmxpc3Q7CQkvKio8IFZlY3RvciBvZiBwb2ludGVycyBpbnRvIGRybV9kZXZpY2VfZG1hOjpidWZzICovCi0JaW50IHNlZ19jb3VudDsKLQlpbnQgcGFnZV9jb3VudDsJCQkvKio8IG51bWJlciBvZiBwYWdlcyAqLwotCXVuc2lnbmVkIGxvbmcgKnBhZ2VsaXN0OwkvKio8IHBhZ2UgbGlzdCAqLwotCXVuc2lnbmVkIGxvbmcgYnl0ZV9jb3VudDsKLQllbnVtIHsKLQkJX0RSTV9ETUFfVVNFX0FHUCA9IDB4MDEsCi0JCV9EUk1fRE1BX1VTRV9TRyA9IDB4MDIsCi0JCV9EUk1fRE1BX1VTRV9GQiA9IDB4MDQsCi0JCV9EUk1fRE1BX1VTRV9QQ0lfUk8gPSAweDA4Ci0JfSBmbGFnczsKLQotfTsKLQotLyoqCi0gKiBBR1AgbWVtb3J5IGVudHJ5LiAgU3RvcmVkIGFzIGEgZG91Ymx5IGxpbmtlZCBsaXN0LgotICovCi1zdHJ1Y3QgZHJtX2FncF9tZW0gewotCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkJLyoqPCBoYW5kbGUgKi8KLQlEUk1fQUdQX01FTSAqbWVtb3J5OwotCXVuc2lnbmVkIGxvbmcgYm91bmQ7CQkvKio8IGFkZHJlc3MgKi8KLQlpbnQgcGFnZXM7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwotfTsKLQotLyoqCi0gKiBBR1AgZGF0YS4KLSAqCi0gKiBcc2EgZHJtX2FncF9pbml0KCkgYW5kIGRybV9kZXZpY2U6OmFncC4KLSAqLwotc3RydWN0IGRybV9hZ3BfaGVhZCB7Ci0JRFJNX0FHUF9LRVJOIGFncF9pbmZvOwkJLyoqPCBBR1AgZGV2aWNlIGluZm9ybWF0aW9uICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtZW1vcnk7Ci0JdW5zaWduZWQgbG9uZyBtb2RlOwkJLyoqPCBBR1AgbW9kZSAqLwotCXN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZTsKLQlpbnQgZW5hYmxlZDsJCQkvKio8IHdoZXRoZXIgdGhlIEFHUCBidXMgYXMgYmVlbiBlbmFibGVkICovCi0JaW50IGFjcXVpcmVkOwkJCS8qKjwgd2hldGhlciB0aGUgQUdQIGRldmljZSBoYXMgYmVlbiBhY3F1aXJlZCAqLwotCXVuc2lnbmVkIGxvbmcgYmFzZTsKLQlpbnQgYWdwX210cnI7Ci0JaW50IGNhbnRfdXNlX2FwZXJ0dXJlOwotCXVuc2lnbmVkIGxvbmcgcGFnZV9tYXNrOwotfTsKLQotLyoqCi0gKiBTY2F0dGVyLWdhdGhlciBtZW1vcnkuCi0gKi8KLXN0cnVjdCBkcm1fc2dfbWVtIHsKLQl1bnNpZ25lZCBsb25nIGhhbmRsZTsKLQl2b2lkICp2aXJ0dWFsOwotCWludCBwYWdlczsKLQlzdHJ1Y3QgcGFnZSAqKnBhZ2VsaXN0OwotCWRtYV9hZGRyX3QgKmJ1c2FkZHI7Ci19OwotCi1zdHJ1Y3QgZHJtX3NpZ2RhdGEgewotCWludCBjb250ZXh0OwotCXN0cnVjdCBkcm1faHdfbG9jayAqbG9jazsKLX07Ci0KLQotLyoKLSAqIEdlbmVyaWMgbWVtb3J5IG1hbmFnZXIgc3RydWN0cwotICovCi0KLXN0cnVjdCBkcm1fbW1fbm9kZSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBmbF9lbnRyeTsKLQlzdHJ1Y3QgbGlzdF9oZWFkIG1sX2VudHJ5OwotCWludCBmcmVlOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JdW5zaWduZWQgbG9uZyBzaXplOwotCXN0cnVjdCBkcm1fbW0gKm1tOwotCXZvaWQgKnByaXZhdGU7Ci19OwotCi1zdHJ1Y3QgZHJtX21tIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGZsX2VudHJ5OwotCXN0cnVjdCBsaXN0X2hlYWQgbWxfZW50cnk7Ci19OwotCi0KLS8qKgotICogTWFwcGluZ3MgbGlzdAotICovCi1zdHJ1Y3QgZHJtX21hcF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCXN0cnVjdCBkcm1faGFzaF9pdGVtIGhhc2g7Ci0Jc3RydWN0IGRybV9tYXAgKm1hcDsJCQkvKio8IG1hcHBpbmcgKi8KLQl1aW50NjRfdCB1c2VyX3Rva2VuOwotfTsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX21hcCBkcm1fbG9jYWxfbWFwX3Q7Ci0KLS8qKgotICogQ29udGV4dCBoYW5kbGUgbGlzdAotICovCi1zdHJ1Y3QgZHJtX2N0eF9saXN0IHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7CQkvKio8IGxpc3QgaGVhZCAqLwotCWRybV9jb250ZXh0X3QgaGFuZGxlOwkJLyoqPCBjb250ZXh0IGhhbmRsZSAqLwotCXN0cnVjdCBkcm1fZmlsZSAqdGFnOwkJLyoqPCBhc3NvY2lhdGVkIGZkIHByaXZhdGUgZGF0YSAqLwotfTsKLQotc3RydWN0IGRybV92Ymxfc2lnIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7Ci0JdW5zaWduZWQgaW50IHNlcXVlbmNlOwotCXN0cnVjdCBzaWdpbmZvIGluZm87Ci0Jc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwotfTsKLQotLyogbG9jYXRpb24gb2YgR0FSVCB0YWJsZSAqLwotI2RlZmluZSBEUk1fQVRJX0dBUlRfTUFJTiAxCi0jZGVmaW5lIERSTV9BVElfR0FSVF9GQiAgIDIKLQotI2RlZmluZSBEUk1fQVRJX0dBUlRfUENJIDEKLSNkZWZpbmUgRFJNX0FUSV9HQVJUX1BDSUUgMgotI2RlZmluZSBEUk1fQVRJX0dBUlRfSUdQIDMKLQotc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvIHsKLQlpbnQgZ2FydF90YWJsZV9sb2NhdGlvbjsKLQlpbnQgZ2FydF9yZWdfaWY7Ci0Jdm9pZCAqYWRkcjsKLQlkbWFfYWRkcl90IGJ1c19hZGRyOwotCWRtYV9hZGRyX3QgdGFibGVfbWFzazsKLQlzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKnRhYmxlX2hhbmRsZTsKLQlkcm1fbG9jYWxfbWFwX3QgbWFwcGluZzsKLQlpbnQgdGFibGVfc2l6ZTsKLX07Ci0KLS8qKgotICogRFJNIGRyaXZlciBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudCB0aGUgY29tbW9uIGNvZGUgZm9yCi0gKiBhIGZhbWlseSBvZiBjYXJkcy4gVGhlcmUgd2lsbCBvbmUgZHJtX2RldmljZSBmb3IgZWFjaCBjYXJkIHByZXNlbnQKLSAqIGluIHRoaXMgZmFtaWx5Ci0gKi8KLXN0cnVjdCBkcm1fZHJpdmVyIHsKLQlpbnQgKCpsb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci0JaW50ICgqZmlyc3RvcGVuKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqb3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqcHJlY2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnBvc3RjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHN0cnVjdCBkcm1fZmlsZSAqKTsKLQl2b2lkICgqbGFzdGNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqdW5sb2FkKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqc3VzcGVuZCkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHBtX21lc3NhZ2VfdCBzdGF0ZSk7Ci0JaW50ICgqcmVzdW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqZG1hX2lvY3RsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCXZvaWQgKCpkbWFfcmVhZHkpIChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKLQlpbnQgKCpkbWFfcXVpZXNjZW50KSAoc3RydWN0IGRybV9kZXZpY2UgKik7Ci0JaW50ICgqY29udGV4dF9jdG9yKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNvbnRleHQpOwotCWludCAoKmNvbnRleHRfZHRvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKLQlpbnQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2gpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgb2xkLAotCQkJCSAgICAgIGludCBuZXcpOwotCXZvaWQgKCprZXJuZWxfY29udGV4dF9zd2l0Y2hfdW5sb2NrKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0JaW50ICgqdmJsYW5rX3dhaXQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCp2Ymxhbmtfd2FpdDIpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLQlpbnQgKCpkcmlfbGlicmFyeV9uYW1lKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY2hhciAqYnVmKTsKLQotCS8qKgotCSAqIENhbGxlZCBieSBcYyBkcm1fZGV2aWNlX2lzX2FncC4gIFR5cGljYWxseSB1c2VkIHRvIGRldGVybWluZSBpZiBhCi0JICogY2FyZCBpcyByZWFsbHkgYXR0YWNoZWQgdG8gQUdQIG9yIG5vdC4KLQkgKgotCSAqIFxwYXJhbSBkZXYgIERSTSBkZXZpY2UgaGFuZGxlCi0JICoKLQkgKiBccmV0dXJucwotCSAqIE9uZSBvZiB0aHJlZSB2YWx1ZXMgaXMgcmV0dXJuZWQgZGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZQotCSAqIGNhcmQgaXMgYWJzb2x1dGVseSBcYiBub3QgQUdQIChyZXR1cm4gb2YgMCksIGFic29sdXRlbHkgXGIgaXMgQUdQCi0JICogKHJldHVybiBvZiAxKSwgb3IgbWF5IG9yIG1heSBub3QgYmUgQUdQIChyZXR1cm4gb2YgMikuCi0JICovCi0JaW50ICgqZGV2aWNlX2lzX2FncCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JLyogdGhlc2UgaGF2ZSB0byBiZSBmaWxsZWQgaW4gKi8KLQotCWlycXJldHVybl90KCppcnFfaGFuZGxlcikgKERSTV9JUlFfQVJHUyk7Ci0Jdm9pZCAoKmlycV9wcmVpbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKmlycV9wb3N0aW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCXZvaWQgKCppcnFfdW5pbnN0YWxsKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVycykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqIGZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0Jdm9pZCAoKnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQl1bnNpZ25lZCBsb25nICgqZ2V0X21hcF9vZnMpIChzdHJ1Y3QgZHJtX21hcCAqIG1hcCk7Ci0JdW5zaWduZWQgbG9uZyAoKmdldF9yZWdfb2ZzKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0Jdm9pZCAoKnNldF92ZXJzaW9uKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgICAgc3RydWN0IGRybV9zZXRfdmVyc2lvbiAqc3YpOwotCi0JaW50IG1ham9yOwotCWludCBtaW5vcjsKLQlpbnQgcGF0Y2hsZXZlbDsKLQljaGFyICpuYW1lOwotCWNoYXIgKmRlc2M7Ci0JY2hhciAqZGF0ZTsKLQotCXUzMiBkcml2ZXJfZmVhdHVyZXM7Ci0JaW50IGRldl9wcml2X3NpemU7Ci0Jc3RydWN0IGRybV9pb2N0bF9kZXNjICppb2N0bHM7Ci0JaW50IG51bV9pb2N0bHM7Ci0Jc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmb3BzOwotCXN0cnVjdCBwY2lfZHJpdmVyIHBjaV9kcml2ZXI7Ci19OwotCi0jZGVmaW5lIERSTV9NSU5PUl9VTkFTU0lHTkVEIDAKLSNkZWZpbmUgRFJNX01JTk9SX0xFR0FDWSAxCi0KLS8qKgotICogRFJNIG1pbm9yIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50cyBhIGRybSBtaW5vciBudW1iZXIuCi0gKi8KLXN0cnVjdCBkcm1fbWlub3IgewotCWludCBpbmRleDsJCQkvKio8IE1pbm9yIGRldmljZSBudW1iZXIgKi8KLQlpbnQgdHlwZTsgICAgICAgICAgICAgICAgICAgICAgIC8qKjwgQ29udHJvbCBvciByZW5kZXIgKi8KLQlkZXZfdCBkZXZpY2U7CQkJLyoqPCBEZXZpY2UgbnVtYmVyIGZvciBta25vZCAqLwotCXN0cnVjdCBkZXZpY2Uga2RldjsJCS8qKjwgTGludXggZGV2aWNlICovCi0Jc3RydWN0IGRybV9kZXZpY2UgKmRldjsKLQlzdHJ1Y3QgcHJvY19kaXJfZW50cnkgKmRldl9yb290OyAgLyoqPCBwcm9jIGRpcmVjdG9yeSBlbnRyeSAqLwotfTsKLQotLyoqCi0gKiBEUk0gZGV2aWNlIHN0cnVjdHVyZS4gVGhpcyBzdHJ1Y3R1cmUgcmVwcmVzZW50IGEgY29tcGxldGUgY2FyZCB0aGF0Ci0gKiBtYXkgY29udGFpbiBtdWx0aXBsZSBoZWFkcy4KLSAqLwotc3RydWN0IGRybV9kZXZpY2UgewotCWNoYXIgKnVuaXF1ZTsJCQkvKio8IFVuaXF1ZSBpZGVudGlmaWVyOiBlLmcuLCBidXNpZCAqLwotCWludCB1bmlxdWVfbGVuOwkJCS8qKjwgTGVuZ3RoIG9mIHVuaXF1ZSBmaWVsZCAqLwotCWNoYXIgKmRldm5hbWU7CQkJLyoqPCBGb3IgL3Byb2MvaW50ZXJydXB0cyAqLwotCWludCBpZl92ZXJzaW9uOwkJCS8qKjwgSGlnaGVzdCBpbnRlcmZhY2UgdmVyc2lvbiBzZXQgKi8KLQotCWludCBibG9ja2VkOwkJCS8qKjwgQmxvY2tlZCBkdWUgdG8gVkMgc3dpdGNoPyAqLwotCi0JLyoqIFxuYW1lIExvY2tzICovCi0JLypAeyAqLwotCXNwaW5sb2NrX3QgY291bnRfbG9jazsJCS8qKjwgRm9yIGludXNlLCBkcm1fZGV2aWNlOjpvcGVuX2NvdW50LCBkcm1fZGV2aWNlOjpidWZfdXNlICovCi0Jc3RydWN0IG11dGV4IHN0cnVjdF9tdXRleDsJLyoqPCBGb3Igb3RoZXJzICovCi0JLypAfSAqLwotCi0JLyoqIFxuYW1lIFVzYWdlIENvdW50ZXJzICovCi0JLypAeyAqLwotCWludCBvcGVuX2NvdW50OwkJCS8qKjwgT3V0c3RhbmRpbmcgZmlsZXMgb3BlbiAqLwotCWF0b21pY190IGlvY3RsX2NvdW50OwkJLyoqPCBPdXRzdGFuZGluZyBJT0NUTHMgcGVuZGluZyAqLwotCWF0b21pY190IHZtYV9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgdm1hIGFyZWFzIG9wZW4gKi8KLQlpbnQgYnVmX3VzZTsJCQkvKio8IEJ1ZmZlcnMgaW4gdXNlIC0tIGNhbm5vdCBhbGxvYyAqLwotCWF0b21pY190IGJ1Zl9hbGxvYzsJCS8qKjwgQnVmZmVyIGFsbG9jYXRpb24gaW4gcHJvZ3Jlc3MgKi8KLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgUGVyZm9ybWFuY2UgY291bnRlcnMgKi8KLQkvKkB7ICovCi0JdW5zaWduZWQgbG9uZyBjb3VudGVyczsKLQllbnVtIGRybV9zdGF0X3R5cGUgdHlwZXNbMTVdOwotCWF0b21pY190IGNvdW50c1sxNV07Ci0JLypAfSAqLwotCi0JLyoqIFxuYW1lIEF1dGhlbnRpY2F0aW9uICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgZmlsZWxpc3Q7Ci0Jc3RydWN0IGRybV9vcGVuX2hhc2ggbWFnaWNsaXN0OwkvKio8IG1hZ2ljIGhhc2ggdGFibGUgKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIG1hZ2ljZnJlZTsKLQkvKkB9ICovCi0KLQkvKiogXG5hbWUgTWVtb3J5IG1hbmFnZW1lbnQgKi8KLQkvKkB7ICovCi0Jc3RydWN0IGxpc3RfaGVhZCBtYXBsaXN0OwkvKio8IExpbmtlZCBsaXN0IG9mIHJlZ2lvbnMgKi8KLQlpbnQgbWFwX2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIG1hcHBhYmxlIHJlZ2lvbnMgKi8KLQlzdHJ1Y3QgZHJtX29wZW5faGFzaCBtYXBfaGFzaDsJLyoqPCBVc2VyIHRva2VuIGhhc2ggdGFibGUgZm9yIG1hcHMgKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IGhhbmRsZSBtYW5hZ2VtZW50ICovCi0JLypAeyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgY3R4bGlzdDsJLyoqPCBMaW5rZWQgbGlzdCBvZiBjb250ZXh0IGhhbmRsZXMgKi8KLQlpbnQgY3R4X2NvdW50OwkJCS8qKjwgTnVtYmVyIG9mIGNvbnRleHQgaGFuZGxlcyAqLwotCXN0cnVjdCBtdXRleCBjdHhsaXN0X211dGV4OwkvKio8IEZvciBjdHhsaXN0ICovCi0KLQlzdHJ1Y3QgaWRyIGN0eF9pZHI7Ci0KLQlzdHJ1Y3QgbGlzdF9oZWFkIHZtYWxpc3Q7CS8qKjwgTGlzdCBvZiB2bWFzIChmb3IgZGVidWdnaW5nKSAqLwotCXN0cnVjdCBkcm1fbG9ja19kYXRhIGxvY2s7CS8qKjwgSW5mb3JtYXRpb24gb24gaGFyZHdhcmUgbG9jayAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBETUEgcXVldWVzIChjb250ZXh0cykgKi8KLQkvKkB7ICovCi0JaW50IHF1ZXVlX2NvdW50OwkJLyoqPCBOdW1iZXIgb2YgYWN0aXZlIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfcmVzZXJ2ZWQ7CQkgIC8qKjwgTnVtYmVyIG9mIHJlc2VydmVkIERNQSBxdWV1ZXMgKi8KLQlpbnQgcXVldWVfc2xvdHM7CQkvKio8IEFjdHVhbCBsZW5ndGggb2YgcXVldWVsaXN0ICovCi0Jc3RydWN0IGRybV9xdWV1ZSAqKnF1ZXVlbGlzdDsJLyoqPCBWZWN0b3Igb2YgcG9pbnRlcnMgdG8gRE1BIHF1ZXVlcyAqLwotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hOwkJLyoqPCBPcHRpb25hbCBwb2ludGVyIGZvciBETUEgc3VwcG9ydCAqLwotCS8qQH0gKi8KLQotCS8qKiBcbmFtZSBDb250ZXh0IHN1cHBvcnQgKi8KLQkvKkB7ICovCi0JaW50IGlycTsJCQkvKio8IEludGVycnVwdCB1c2VkIGJ5IGJvYXJkICovCi0JaW50IGlycV9lbmFibGVkOwkJLyoqPCBUcnVlIGlmIGlycSBoYW5kbGVyIGlzIGVuYWJsZWQgKi8KLQlfX3ZvbGF0aWxlX18gbG9uZyBjb250ZXh0X2ZsYWc7CS8qKjwgQ29udGV4dCBzd2FwcGluZyBmbGFnICovCi0JX192b2xhdGlsZV9fIGxvbmcgaW50ZXJydXB0X2ZsYWc7IC8qKjwgSW50ZXJydXB0aW9uIGhhbmRsZXIgZmxhZyAqLwotCV9fdm9sYXRpbGVfXyBsb25nIGRtYV9mbGFnOwkvKio8IERNQSBkaXNwYXRjaCBmbGFnICovCi0Jc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CS8qKjwgVGltZXIgZm9yIGRlbGF5aW5nIGN0eCBzd2l0Y2ggKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBjb250ZXh0X3dhaXQ7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gY3R4IHN3aXRjaCAqLwotCWludCBsYXN0X2NoZWNrZWQ7CQkvKio8IExhc3QgY29udGV4dCBjaGVja2VkIGZvciBETUEgKi8KLQlpbnQgbGFzdF9jb250ZXh0OwkJLyoqPCBMYXN0IGN1cnJlbnQgY29udGV4dCAqLwotCXVuc2lnbmVkIGxvbmcgbGFzdF9zd2l0Y2g7CS8qKjwgamlmZmllcyBhdCBsYXN0IGNvbnRleHQgc3dpdGNoICovCi0JLypAfSAqLwotCi0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Ci0JLyoqIFxuYW1lIFZCTEFOSyBJUlEgc3VwcG9ydCAqLwotCS8qQHsgKi8KLQotCXdhaXRfcXVldWVfaGVhZF90IHZibF9xdWV1ZTsJLyoqPCBWQkxBTksgd2FpdCBxdWV1ZSAqLwotCWF0b21pY190IHZibF9yZWNlaXZlZDsKLQlhdG9taWNfdCB2YmxfcmVjZWl2ZWQyOwkJLyoqPCBudW1iZXIgb2Ygc2Vjb25kYXJ5IFZCTEFOSyBpbnRlcnJ1cHRzICovCi0Jc3BpbmxvY2tfdCB2YmxfbG9jazsKLQlzdHJ1Y3QgbGlzdF9oZWFkIHZibF9zaWdzOwkJLyoqPCBzaWduYWwgbGlzdCB0byBzZW5kIG9uIFZCTEFOSyAqLwotCXN0cnVjdCBsaXN0X2hlYWQgdmJsX3NpZ3MyOwkvKio8IHNpZ25hbHMgdG8gc2VuZCBvbiBzZWNvbmRhcnkgVkJMQU5LICovCi0JdW5zaWduZWQgaW50IHZibF9wZW5kaW5nOwotCXNwaW5sb2NrX3QgdGFza2xldF9sb2NrOwkvKio8IEZvciBkcm1fbG9ja2VkX3Rhc2tsZXQgKi8KLQl2b2lkICgqbG9ja2VkX3Rhc2tsZXRfZnVuYykoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkvKkB9ICovCi0JY3ljbGVzX3QgY3R4X3N0YXJ0OwotCWN5Y2xlc190IGxja19zdGFydDsKLQotCXN0cnVjdCBmYXN5bmNfc3RydWN0ICpidWZfYXN5bmM7LyoqPCBQcm9jZXNzZXMgd2FpdGluZyBmb3IgU0lHSU8gKi8KLQl3YWl0X3F1ZXVlX2hlYWRfdCBidWZfcmVhZGVyczsJLyoqPCBQcm9jZXNzZXMgd2FpdGluZyB0byByZWFkICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3QgYnVmX3dyaXRlcnM7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdG8gY3R4IHN3aXRjaCAqLwotCi0Jc3RydWN0IGRybV9hZ3BfaGVhZCAqYWdwOwkvKio8IEFHUCBkYXRhICovCi0KLQlzdHJ1Y3QgcGNpX2RldiAqcGRldjsJCS8qKjwgUENJIGRldmljZSBzdHJ1Y3R1cmUgKi8KLQlpbnQgcGNpX3ZlbmRvcjsJCQkvKio8IFBDSSB2ZW5kb3IgaWQgKi8KLQlpbnQgcGNpX2RldmljZTsJCQkvKio8IFBDSSBkZXZpY2UgaWQgKi8KLSNpZmRlZiBfX2FscGhhX18KLQlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7Ci0jZW5kaWYKLQlzdHJ1Y3QgZHJtX3NnX21lbSAqc2c7CS8qKjwgU2NhdHRlciBnYXRoZXIgbWVtb3J5ICovCi0Jdm9pZCAqZGV2X3ByaXZhdGU7CQkvKio8IGRldmljZSBwcml2YXRlIGRhdGEgKi8KLQlzdHJ1Y3QgZHJtX3NpZ2RhdGEgc2lnZGF0YTsJICAgLyoqPCBGb3IgYmxvY2tfYWxsX3NpZ25hbHMgKi8KLQlzaWdzZXRfdCBzaWdtYXNrOwotCi0Jc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcjsKLQlkcm1fbG9jYWxfbWFwX3QgKmFncF9idWZmZXJfbWFwOwotCXVuc2lnbmVkIGludCBhZ3BfYnVmZmVyX3Rva2VuOwotCXN0cnVjdCBkcm1fbWlub3IgKnByaW1hcnk7CQkvKio8IHJlbmRlciB0eXBlIHByaW1hcnkgc2NyZWVuIGhlYWQgKi8KLQotCS8qKiBcbmFtZSBEcmF3YWJsZSBpbmZvcm1hdGlvbiAqLwotCS8qQHsgKi8KLQlzcGlubG9ja190IGRyd19sb2NrOwotCXN0cnVjdCBpZHIgZHJ3X2lkcjsKLQkvKkB9ICovCi19OwotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgICAgIGludCBmZWF0dXJlKQotewotCXJldHVybiAoKGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBmZWF0dXJlKSA/IDEgOiAwKTsKLX0KLQotI2lmZGVmIF9fYWxwaGFfXwotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSBkZXYtPmhvc2UtPmluZGV4Ci0jZWxzZQotI2RlZmluZSBkcm1fZ2V0X3BjaV9kb21haW4oZGV2KSAwCi0jZW5kaWYKLQotI2lmIF9fT1NfSEFTX0FHUAotc3RhdGljIGlubGluZSBpbnQgZHJtX2NvcmVfaGFzX0FHUChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9BR1ApOwotfQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX0FHUChkZXYpICgwKQotI2VuZGlmCi0KLSNpZiBfX09TX0hBU19NVFJSCi1zdGF0aWMgaW5saW5lIGludCBkcm1fY29yZV9oYXNfTVRSUihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXJldHVybiBkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1VTRV9NVFJSKTsKLX0KLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJTVRSUl9UWVBFX1dSQ09NQgotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfYWRkKG9mZnNldCwgc2l6ZSwgZmxhZ3MsIDEpOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9kZWwoaW50IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIG10cnJfZGVsKGhhbmRsZSwgb2Zmc2V0LCBzaXplKTsKLX0KLQotI2Vsc2UKLSNkZWZpbmUgZHJtX2NvcmVfaGFzX01UUlIoZGV2KSAoMCkKLQotI2RlZmluZSBEUk1fTVRSUl9XQwkJMAotCi1zdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9hZGQodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGRybV9tdHJyX2RlbChpbnQgaGFuZGxlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKLQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHVuc2lnbmVkIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLSNlbmRpZgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqIFxuYW1lIEludGVybmFsIGZ1bmN0aW9uIGRlZmluaXRpb25zICovCi0vKkB7Ki8KLQotCQkJCS8qIERyaXZlciBzdXBwb3J0IChkcm1fZHJ2LmgpICovCi1leHRlcm4gaW50IGRybV9pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOwotZXh0ZXJuIHZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7Ci1leHRlcm4gaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gbG9uZyBkcm1fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLAotCQkJICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7Ci1leHRlcm4gaW50IGRybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBEZXZpY2Ugc3VwcG9ydCAoZHJtX2ZvcHMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOwotZXh0ZXJuIGludCBkcm1fc3R1Yl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKLWV4dGVybiBpbnQgZHJtX2Zhc3luYyhpbnQgZmQsIHN0cnVjdCBmaWxlICpmaWxwLCBpbnQgb24pOwotZXh0ZXJuIGludCBkcm1fcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7Ci0KLQkJCQkvKiBNYXBwaW5nIHN1cHBvcnQgKGRybV92bS5oKSAqLwotZXh0ZXJuIGludCBkcm1fbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X21hcF9vZnMoc3RydWN0IGRybV9tYXAgKiBtYXApOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2NvcmVfZ2V0X3JlZ19vZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdW5zaWduZWQgaW50IGRybV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgcG9sbF90YWJsZV9zdHJ1Y3QgKndhaXQpOwotCi0JCQkJLyogTWVtb3J5IG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX21lbW9yeS5oKSAqLwotI2luY2x1ZGUgImRybV9tZW1vcnkuaCIKLWV4dGVybiB2b2lkIGRybV9tZW1faW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCQlpbnQgcmVxdWVzdCwgaW50ICplb2YsIHZvaWQgKmRhdGEpOwotZXh0ZXJuIHZvaWQgKmRybV9yZWFsbG9jKHZvaWQgKm9sZHB0LCBzaXplX3Qgb2xkc2l6ZSwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKLQotZXh0ZXJuIERSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwYWdlcywgdTMyIHR5cGUpOwotZXh0ZXJuIGludCBkcm1fZnJlZV9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIGludCBwYWdlcyk7Ci1leHRlcm4gaW50IGRybV9iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgdW5zaWduZWQgaW50IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOwotCi0JCQkJLyogTWlzYy4gSU9DVEwgc3VwcG9ydCAoZHJtX2lvY3RsLmgpICovCi1leHRlcm4gaW50IGRybV9pcnFfYnlfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZXR1bmlxdWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9nZXRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y2xpZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c3RhdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3NldHZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fbm9vcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQ29udGV4dCBJT0NUTCBzdXBwb3J0IChkcm1fY29udGV4dC5oKSAqLwotZXh0ZXJuIGludCBkcm1fcmVzY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tb2RjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0Y3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3N3aXRjaGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX25ld2N0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotZXh0ZXJuIGludCBkcm1fY3R4Yml0bWFwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fY3R4Yml0bWFwX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGN0eF9oYW5kbGUpOwotCi1leHRlcm4gaW50IGRybV9zZXRzYXJlYWN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZ2V0c2FyZWFjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIERyYXdhYmxlIElPQ1RMIHN1cHBvcnQgKGRybV9kcmF3YWJsZS5oKSAqLwotZXh0ZXJuIGludCBkcm1fYWRkZHJhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fcm1kcmF3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VwZGF0ZV9kcmF3YWJsZV9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRybV9nZXRfZHJhd2FibGVfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICBkcm1fZHJhd2FibGVfdCBpZCk7Ci1leHRlcm4gdm9pZCBkcm1fZHJhd2FibGVfZnJlZV9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLQkJCQkvKiBBdXRoZW50aWNhdGlvbiBJT0NUTCBzdXBwb3J0IChkcm1fYXV0aC5oKSAqLwotZXh0ZXJuIGludCBkcm1fZ2V0bWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2F1dGhtYWdpYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotCQkJCS8qIExvY2tpbmcgSU9DVEwgc3VwcG9ydCAoZHJtX2xvY2suaCkgKi8KLWV4dGVybiBpbnQgZHJtX2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX3VubG9jayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9sb2NrX3Rha2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSwgdW5zaWduZWQgaW50IGNvbnRleHQpOwotZXh0ZXJuIGludCBkcm1fbG9ja19mcmVlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KTsKLWV4dGVybiB2b2lkIGRybV9pZGxlbG9ja190YWtlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEpOwotZXh0ZXJuIHZvaWQgZHJtX2lkbGVsb2NrX3JlbGVhc2Uoc3RydWN0IGRybV9sb2NrX2RhdGEgKmxvY2tfZGF0YSk7Ci0KLS8qCi0gKiBUaGVzZSBhcmUgZXhwb3J0ZWQgdG8gZHJpdmVycyBzbyB0aGF0IHRoZXkgY2FuIGltcGxlbWVudCBmZW5jaW5nIHVzaW5nCi0gKiBETUEgcXVpc2NlbnQgKyBpZGxlLiBETUEgcXVpZXNjZW50IHVzdWFsbHkgcmVxdWlyZXMgdGhlIGhhcmR3YXJlIGxvY2suCi0gKi8KLQotZXh0ZXJuIGludCBkcm1faV9oYXZlX2h3X2xvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotCi0JCQkJLyogQnVmZmVyIG1hbmFnZW1lbnQgc3VwcG9ydCAoZHJtX2J1ZnMuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnNfcGNpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmX2Rlc2MgKiByZXF1ZXN0KTsKLWV4dGVybiBpbnQgZHJtX2FkZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAotCQkgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwgZW51bSBkcm1fbWFwX3R5cGUgdHlwZSwKLQkJICAgICAgZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzLCBkcm1fbG9jYWxfbWFwX3QgKiogbWFwX3B0cik7Ci1leHRlcm4gaW50IGRybV9hZGRtYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9ybW1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fbG9jYWxfbWFwX3QgKm1hcCk7Ci1leHRlcm4gaW50IGRybV9ybW1hcF9sb2NrZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2xvY2FsX21hcF90ICptYXApOwotZXh0ZXJuIGludCBkcm1fcm1tYXBfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FkZGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2luZm9idWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9tYXJrYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fZnJlZWJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX21hcGJ1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJCSAgICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2dldF9yZXNvdXJjZV9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkJICB1bnNpZ25lZCBpbnQgcmVzb3VyY2UpOwotCi0JCQkJLyogRE1BIHN1cHBvcnQgKGRybV9kbWEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2RtYV9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9kbWFfdGFrZWRvd24oc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZnJlZV9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9idWYgKiBidWYpOwotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfcmVjbGFpbV9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwotCi0JCQkJLyogSVJRIHN1cHBvcnQgKGRybV9pcnEuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2NvbnRyb2woc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpcnFyZXR1cm5fdCBkcm1faXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKLWV4dGVybiBpbnQgZHJtX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLWV4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnZibF9zZXEpOwotZXh0ZXJuIHZvaWQgZHJtX3ZibF9zZW5kX3NpZ25hbHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gdm9pZCBkcm1fbG9ja2VkX3Rhc2tsZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCgqZnVuYykoc3RydWN0IGRybV9kZXZpY2UqKSk7Ci0KLQkJCQkvKiBBR1AvR0FSVCBzdXBwb3J0IChkcm1fYWdwc3VwcG9ydC5oKSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fYWdwX2hlYWQgKmRybV9hZ3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9hY3F1aXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9hZ3BfcmVsZWFzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX21vZGUgbW9kZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfZW5hYmxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfaW5mbyAqaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hZ3BfaW5mb19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBkcm1fYWdwX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlciAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYWxsb2NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9hZ3BfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYmluZGluZyAqcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgZHJtX2FncF9iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJlcXVlc3QpOwotZXh0ZXJuIGludCBkcm1fYWdwX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBEUk1fQUdQX01FTSAqZHJtX2FncF9hbGxvY2F0ZV9tZW1vcnkoc3RydWN0IGFncF9icmlkZ2VfZGF0YSAqYnJpZGdlLCBzaXplX3QgcGFnZXMsIHUzMiB0eXBlKTsKLWV4dGVybiBpbnQgZHJtX2FncF9mcmVlX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSk7Ci1leHRlcm4gaW50IGRybV9hZ3BfYmluZF9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIG9mZl90IHN0YXJ0KTsKLWV4dGVybiBpbnQgZHJtX2FncF91bmJpbmRfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlKTsKLQotCQkJCS8qIFN0dWIgc3VwcG9ydCAoZHJtX3N0dWIuaCkgKi8KLWV4dGVybiBpbnQgZHJtX2dldF9kZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKLWV4dGVybiBpbnQgZHJtX3B1dF9kZXYoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci1leHRlcm4gaW50IGRybV9wdXRfbWlub3Ioc3RydWN0IGRybV9taW5vciAqKm1pbm9yKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgZHJtX2RlYnVnOwotCi1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fY2xhc3M7Ci1leHRlcm4gc3RydWN0IHByb2NfZGlyX2VudHJ5ICpkcm1fcHJvY19yb290OwotCi1leHRlcm4gc3RydWN0IGlkciBkcm1fbWlub3JzX2lkcjsKLQotZXh0ZXJuIGRybV9sb2NhbF9tYXBfdCAqZHJtX2dldHNhcmVhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi0JCQkJLyogUHJvYyBzdXBwb3J0IChkcm1fcHJvYy5oKSAqLwotZXh0ZXJuIGludCBkcm1fcHJvY19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yLCBpbnQgbWlub3JfaWQsCi0JCQkgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLWV4dGVybiBpbnQgZHJtX3Byb2NfY2xlYW51cChzdHJ1Y3QgZHJtX21pbm9yICptaW5vciwgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpyb290KTsKLQotCQkJCS8qIFNjYXR0ZXIgR2F0aGVyIFN1cHBvcnQgKGRybV9zY2F0dGVyLmgpICovCi1leHRlcm4gdm9pZCBkcm1fc2dfY2xlYW51cChzdHJ1Y3QgZHJtX3NnX21lbSAqIGVudHJ5KTsKLWV4dGVybiBpbnQgZHJtX3NnX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGRybV9zZ19hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyICogcmVxdWVzdCk7Ci1leHRlcm4gaW50IGRybV9zZ19mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci0KLQkJCSAgICAgICAvKiBBVEkgUENJR0FSVCBzdXBwb3J0IChhdGlfcGNpZ2FydC5oKSAqLwotZXh0ZXJuIGludCBkcm1fYXRpX3BjaWdhcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqIGdhcnRfaW5mbyk7Ci1leHRlcm4gaW50IGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCQkJICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICogZ2FydF9pbmZvKTsKLQotZXh0ZXJuIGRybV9kbWFfaGFuZGxlX3QgKmRybV9wY2lfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc2l6ZV90IHNpemUsCi0JCQkJICAgICAgIHNpemVfdCBhbGlnbiwgZG1hX2FkZHJfdCBtYXhhZGRyKTsKLWV4dGVybiB2b2lkIF9fZHJtX3BjaV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9kbWFfaGFuZGxlX3QgKiBkbWFoKTsKLWV4dGVybiB2b2lkIGRybV9wY2lfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fZG1hX2hhbmRsZV90ICogZG1haCk7Ci0KLQkJCSAgICAgICAvKiBzeXNmcyBzdXBwb3J0IChkcm1fc3lzZnMuYykgKi8KLXN0cnVjdCBkcm1fc3lzZnNfY2xhc3M7Ci1leHRlcm4gc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKTsKLWV4dGVybiB2b2lkIGRybV9zeXNmc19kZXN0cm95KHZvaWQpOwotZXh0ZXJuIGludCBkcm1fc3lzZnNfZGV2aWNlX2FkZChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci1leHRlcm4gdm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Ci0KLS8qCi0gKiBCYXNpYyBtZW1vcnkgbWFuYWdlciBzdXBwb3J0IChkcm1fbW0uYykKLSAqLwotZXh0ZXJuIHN0cnVjdCBkcm1fbW1fbm9kZSAqZHJtX21tX2dldF9ibG9jayhzdHJ1Y3QgZHJtX21tX25vZGUgKiBwYXJlbnQsCi0JCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICAgICAgdW5zaWduZWQgYWxpZ25tZW50KTsKLWV4dGVybiB2b2lkIGRybV9tbV9wdXRfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICogY3VyKTsKLWV4dGVybiBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9tbV9zZWFyY2hfZnJlZShjb25zdCBzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplLAotCQkJCQkgdW5zaWduZWQgYWxpZ25tZW50LCBpbnQgYmVzdF9tYXRjaCk7Ci1leHRlcm4gaW50IGRybV9tbV9pbml0KHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgZHJtX21tX3Rha2Vkb3duKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX2NsZWFuKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGRybV9tbV90YWlsX3NwYWNlKHN0cnVjdCBkcm1fbW0gKm1tKTsKLWV4dGVybiBpbnQgZHJtX21tX3JlbW92ZV9zcGFjZV9mcm9tX3RhaWwoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gaW50IGRybV9tbV9hZGRfc3BhY2VfdG9fdGFpbChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzaXplKTsKLQotZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXBmcmVlKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotCi1zdGF0aWMgX19pbmxpbmVfXyBzdHJ1Y3QgZHJtX21hcCAqZHJtX2NvcmVfZmluZG1hcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkJICAgdW5zaWduZWQgaW50IHRva2VuKQotewotCXN0cnVjdCBkcm1fbWFwX2xpc3QgKl9lbnRyeTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KF9lbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkKLQkgICAgaWYgKF9lbnRyeS0+dXNlcl90b2tlbiA9PSB0b2tlbikKLQkJcmV0dXJuIF9lbnRyeS0+bWFwOwotCXJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgZHJtX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoZGV2LT5kcml2ZXItPmRldmljZV9pc19hZ3AgIT0gTlVMTCkgewotCQlpbnQgZXJyID0gKCpkZXYtPmRyaXZlci0+ZGV2aWNlX2lzX2FncCkgKGRldik7Ci0KLQkJaWYgKGVyciAhPSAyKSB7Ci0JCQlyZXR1cm4gZXJyOwotCQl9Ci0JfQotCi0JcmV0dXJuIHBjaV9maW5kX2NhcGFiaWxpdHkoZGV2LT5wZGV2LCBQQ0lfQ0FQX0lEX0FHUCk7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCBkcm1fZGV2aWNlX2lzX3BjaWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlyZXR1cm4gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsIFBDSV9DQVBfSURfRVhQKTsKLX0KLQotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fY29yZV9kcm9wbWFwKHN0cnVjdCBkcm1fbWFwICptYXApCi17Ci19Ci0KLSNpZm5kZWYgREVCVUdfTUVNT1JZCi0vKiogV3JhcHBlciBhcm91bmQga21hbGxvYygpICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fYWxsb2Moc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCXJldHVybiBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotfQotCi0vKiogV3JhcHBlciBhcm91bmQga2ZyZWUoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBkcm1fZnJlZSh2b2lkICpwdCwgc2l6ZV90IHNpemUsIGludCBhcmVhKQotewotCWtmcmVlKHB0KTsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGtjYWxsb2MoKSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSkKLXsKLQlyZXR1cm4ga2NhbGxvYyhubWVtYiwgc2l6ZSwgR0ZQX0tFUk5FTCk7Ci19Ci0jZWxzZQotZXh0ZXJuIHZvaWQgKmRybV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IGFyZWEpOwotZXh0ZXJuIHZvaWQgZHJtX2ZyZWUodm9pZCAqcHQsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci1leHRlcm4gdm9pZCAqZHJtX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7Ci0jZW5kaWYKLQotLypAfSovCi0KLSNlbmRpZgkJCQkvKiBfX0tFUk5FTF9fICovCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2Rydi5jIGIvZHJpdmVycy9jaGFyL2RybS9kcm1fZHJ2LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjNTQxNDAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm1fZHJ2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MzkgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1fZHJ2LmMKLSAqIEdlbmVyaWMgZHJpdmVyIHRlbXBsYXRlCi0gKgotICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KLSAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICoKLSAqIFRvIHVzZSB0aGlzIHRlbXBsYXRlLCB5b3UgbXVzdCBhdCBsZWFzdCBkZWZpbmUgdGhlIGZvbGxvd2luZyAoc2FtcGxlcwotICogZ2l2ZW4gZm9yIHRoZSBNR0EgZHJpdmVyKToKLSAqCi0gKiBcY29kZQotICogI2RlZmluZSBEUklWRVJfQVVUSE9SCSJWQSBMaW51eCBTeXN0ZW1zLCBJbmMuIgotICoKLSAqICNkZWZpbmUgRFJJVkVSX05BTUUJCSJtZ2EiCi0gKiAjZGVmaW5lIERSSVZFUl9ERVNDCQkiTWF0cm94IEcyMDAvRzQwMCIKLSAqICNkZWZpbmUgRFJJVkVSX0RBVEUJCSIyMDAwMTEyNyIKLSAqCi0gKiAjZGVmaW5lIGRybV94CQltZ2FfIyN4Ci0gKiBcZW5kY29kZQotICovCi0KLS8qCi0gKiBDcmVhdGVkOiBUaHUgTm92IDIzIDAzOjEwOjUwIDIwMDAgYnkgZ2FyZXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTksIDIwMDAgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybV9jb3JlLmgiCi0KLXN0YXRpYyBpbnQgZHJtX3ZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotLyoqIElvY3RsIHRhYmxlICovCi1zdGF0aWMgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9WRVJTSU9OLCBkcm1fdmVyc2lvbiwgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1VOSVFVRSwgZHJtX2dldHVuaXF1ZSwgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX01BR0lDLCBkcm1fZ2V0bWFnaWMsIDApLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0lSUV9CVVNJRCwgZHJtX2lycV9ieV9idXNpZCwgRFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfTUFQLCBkcm1fZ2V0bWFwLCAwKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfQ0xJRU5ULCBkcm1fZ2V0Y2xpZW50LCAwKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU1RBVFMsIGRybV9nZXRzdGF0cywgMCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1ZFUlNJT04sIGRybV9zZXR2ZXJzaW9uLCBEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0VUX1VOSVFVRSwgZHJtX3NldHVuaXF1ZSwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVU5CTE9DSywgZHJtX25vb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQVVUSF9NQUdJQywgZHJtX2F1dGhtYWdpYywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9NQVAsIGRybV9hZGRtYXBfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUk1fTUFQLCBkcm1fcm1tYXBfaW9jdGwsIERSTV9BVVRIKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9TQVJFQV9DVFgsIGRybV9zZXRzYXJlYWN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9HRVRfU0FSRUFfQ1RYLCBkcm1fZ2V0c2FyZWFjdHgsIERSTV9BVVRIKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FERF9DVFgsIGRybV9hZGRjdHgsIERSTV9BVVRIfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1JNX0NUWCwgZHJtX3JtY3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PRF9DVFgsIGRybV9tb2RjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX0NUWCwgZHJtX2dldGN0eCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NXSVRDSF9DVFgsIGRybV9zd2l0Y2hjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTkVXX0NUWCwgZHJtX25ld2N0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9SRVNfQ1RYLCBkcm1fcmVzY3R4LCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfRFJBVywgZHJtX2FkZGRyYXcsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUk1fRFJBVywgZHJtX3JtZHJhdywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0xPQ0ssIGRybV9sb2NrLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVU5MT0NLLCBkcm1fdW5sb2NrLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9GSU5JU0gsIGRybV9ub29wLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfQlVGUywgZHJtX2FkZGJ1ZnMsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTUFSS19CVUZTLCBkcm1fbWFya2J1ZnMsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfSU5GT19CVUZTLCBkcm1faW5mb2J1ZnMsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NQVBfQlVGUywgZHJtX21hcGJ1ZnMsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9GUkVFX0JVRlMsIGRybV9mcmVlYnVmcywgRFJNX0FVVEgpLAotCS8qIFRoZSBEUk1fSU9DVExfRE1BIGlvY3RsIHNob3VsZCBiZSBkZWZpbmVkIGJ5IHRoZSBkcml2ZXIuICovCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfRE1BLCBOVUxMLCBEUk1fQVVUSCksCi0KLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9DT05UUk9MLCBkcm1fY29udHJvbCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotI2lmIF9fT1NfSEFTX0FHUAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9BQ1FVSVJFLCBkcm1fYWdwX2FjcXVpcmVfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX1JFTEVBU0UsIGRybV9hZ3BfcmVsZWFzZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfRU5BQkxFLCBkcm1fYWdwX2VuYWJsZV9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfSU5GTywgZHJtX2FncF9pbmZvX2lvY3RsLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0FMTE9DLCBkcm1fYWdwX2FsbG9jX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9GUkVFLCBkcm1fYWdwX2ZyZWVfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0JJTkQsIGRybV9hZ3BfYmluZF9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfVU5CSU5ELCBkcm1fYWdwX3VuYmluZF9pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLSNlbmRpZgotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0dfQUxMT0MsIGRybV9zZ19hbGxvY19pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TR19GUkVFLCBkcm1fc2dfZnJlZSwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCBkcm1fd2FpdF92YmxhbmssIDApLAotCi0JRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVVBEQVRFX0RSQVcsIGRybV91cGRhdGVfZHJhd2FibGVfaW5mbywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLX07Ci0KLSNkZWZpbmUgRFJNX0NPUkVfSU9DVExfQ09VTlQJQVJSQVlfU0laRSggZHJtX2lvY3RscyApCi0KLS8qKgotICogVGFrZSBkb3duIHRoZSBEUk0gZGV2aWNlLgotICoKLSAqIFxwYXJhbSBkZXYgRFJNIGRldmljZSBzdHJ1Y3R1cmUuCi0gKgotICogRnJlZXMgZXZlcnkgcmVzb3VyY2UgaW4gXHAgZGV2LgotICoKLSAqIFxzYSBkcm1fZGV2aWNlCi0gKi8KLWludCBkcm1fbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXN0cnVjdCBkcm1fbWFnaWNfZW50cnkgKnB0LCAqbmV4dDsKLQlzdHJ1Y3QgZHJtX21hcF9saXN0ICpyX2xpc3QsICpsaXN0X3Q7Ci0Jc3RydWN0IGRybV92bWFfZW50cnkgKnZtYSwgKnZtYV90ZW1wOwotCWludCBpOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5sYXN0Y2xvc2UpCi0JCWRldi0+ZHJpdmVyLT5sYXN0Y2xvc2UoZGV2KTsKLQlEUk1fREVCVUcoImRyaXZlciBsYXN0Y2xvc2UgY29tcGxldGVkXG4iKTsKLQotCWlmIChkZXYtPnVuaXF1ZSkgewotCQlkcm1fZnJlZShkZXYtPnVuaXF1ZSwgc3RybGVuKGRldi0+dW5pcXVlKSArIDEsIERSTV9NRU1fRFJJVkVSKTsKLQkJZGV2LT51bmlxdWUgPSBOVUxMOwotCQlkZXYtPnVuaXF1ZV9sZW4gPSAwOwotCX0KLQotCWlmIChkZXYtPmlycV9lbmFibGVkKQotCQlkcm1faXJxX3VuaW5zdGFsbChkZXYpOwotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JLyogRnJlZSBkcmF3YWJsZSBpbmZvcm1hdGlvbiBtZW1vcnkgKi8KLQlkcm1fZHJhd2FibGVfZnJlZV9hbGwoZGV2KTsKLQlkZWxfdGltZXIoJmRldi0+dGltZXIpOwotCi0JLyogQ2xlYXIgcGlkIGxpc3QgKi8KLQlpZiAoZGV2LT5tYWdpY2ZyZWUubmV4dCkgewotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocHQsIG5leHQsICZkZXYtPm1hZ2ljZnJlZSwgaGVhZCkgewotCQkJbGlzdF9kZWwoJnB0LT5oZWFkKTsKLQkJCWRybV9odF9yZW1vdmVfaXRlbSgmZGV2LT5tYWdpY2xpc3QsICZwdC0+aGFzaF9pdGVtKTsKLQkJCWRybV9mcmVlKHB0LCBzaXplb2YoKnB0KSwgRFJNX01FTV9NQUdJQyk7Ci0JCX0KLQkJZHJtX2h0X3JlbW92ZSgmZGV2LT5tYWdpY2xpc3QpOwotCX0KLQotCS8qIENsZWFyIEFHUCBpbmZvcm1hdGlvbiAqLwotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYgZGV2LT5hZ3ApIHsKLQkJc3RydWN0IGRybV9hZ3BfbWVtICplbnRyeSwgKnRlbXBlOwotCi0JCS8qIFJlbW92ZSBBR1AgcmVzb3VyY2VzLCBidXQgbGVhdmUgZGV2LT5hZ3AKLQkJICAgaW50YWN0IHVudGlsIGRydl9jbGVhbnVwIGlzIGNhbGxlZC4gKi8KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGVudHJ5LCB0ZW1wZSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpIHsKLQkJCWlmIChlbnRyeS0+Ym91bmQpCi0JCQkJZHJtX3VuYmluZF9hZ3AoZW50cnktPm1lbW9yeSk7Ci0JCQlkcm1fZnJlZV9hZ3AoZW50cnktPm1lbW9yeSwgZW50cnktPnBhZ2VzKTsKLQkJCWRybV9mcmVlKGVudHJ5LCBzaXplb2YoKmVudHJ5KSwgRFJNX01FTV9BR1BMSVNUUyk7Ci0JCX0KLQkJSU5JVF9MSVNUX0hFQUQoJmRldi0+YWdwLT5tZW1vcnkpOwotCi0JCWlmIChkZXYtPmFncC0+YWNxdWlyZWQpCi0JCQlkcm1fYWdwX3JlbGVhc2UoZGV2KTsKLQotCQlkZXYtPmFncC0+YWNxdWlyZWQgPSAwOwotCQlkZXYtPmFncC0+ZW5hYmxlZCA9IDA7Ci0JfQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NHKSAmJiBkZXYtPnNnKSB7Ci0JCWRybV9zZ19jbGVhbnVwKGRldi0+c2cpOwotCQlkZXYtPnNnID0gTlVMTDsKLQl9Ci0KLQkvKiBDbGVhciB2bWEgbGlzdCAob25seSBidWlsdCBmb3IgZGVidWdnaW5nKSAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEsIHZtYV90ZW1wLCAmZGV2LT52bWFsaXN0LCBoZWFkKSB7Ci0JCWxpc3RfZGVsKCZ2bWEtPmhlYWQpOwotCQlkcm1fZnJlZSh2bWEsIHNpemVvZigqdm1hKSwgRFJNX01FTV9WTUFTKTsKLQl9Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocl9saXN0LCBsaXN0X3QsICZkZXYtPm1hcGxpc3QsIGhlYWQpIHsKLQkJaWYgKCEocl9saXN0LT5tYXAtPmZsYWdzICYgX0RSTV9EUklWRVIpKSB7Ci0JCQlkcm1fcm1tYXBfbG9ja2VkKGRldiwgcl9saXN0LT5tYXApOwotCQkJcl9saXN0ID0gTlVMTDsKLQkJfQotCX0KLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0RNQV9RVUVVRSkgJiYgZGV2LT5xdWV1ZWxpc3QpIHsKLQkJZm9yIChpID0gMDsgaSA8IGRldi0+cXVldWVfY291bnQ7IGkrKykgewotCQkJaWYgKGRldi0+cXVldWVsaXN0W2ldKSB7Ci0JCQkJZHJtX2ZyZWUoZGV2LT5xdWV1ZWxpc3RbaV0sCi0JCQkJCSBzaXplb2YoKmRldi0+cXVldWVsaXN0WzBdKSwKLQkJCQkJIERSTV9NRU1fUVVFVUVTKTsKLQkJCQlkZXYtPnF1ZXVlbGlzdFtpXSA9IE5VTEw7Ci0JCQl9Ci0JCX0KLQkJZHJtX2ZyZWUoZGV2LT5xdWV1ZWxpc3QsCi0JCQkgZGV2LT5xdWV1ZV9zbG90cyAqIHNpemVvZigqZGV2LT5xdWV1ZWxpc3QpLAotCQkJIERSTV9NRU1fUVVFVUVTKTsKLQkJZGV2LT5xdWV1ZWxpc3QgPSBOVUxMOwotCX0KLQlkZXYtPnF1ZXVlX2NvdW50ID0gMDsKLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSkKLQkJZHJtX2RtYV90YWtlZG93bihkZXYpOwotCi0JaWYgKGRldi0+bG9jay5od19sb2NrKSB7Ci0JCWRldi0+c2lnZGF0YS5sb2NrID0gZGV2LT5sb2NrLmh3X2xvY2sgPSBOVUxMOwkvKiBTSE0gcmVtb3ZlZCAqLwotCQlkZXYtPmxvY2suZmlsZV9wcml2ID0gTlVMTDsKLQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZkZXYtPmxvY2subG9ja19xdWV1ZSk7Ci0JfQotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JRFJNX0RFQlVHKCJsYXN0Y2xvc2UgY29tcGxldGVkXG4iKTsKLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBNb2R1bGUgaW5pdGlhbGl6YXRpb24uIENhbGxlZCB2aWEgaW5pdF9tb2R1bGUgYXQgbW9kdWxlIGxvYWQgdGltZSwgb3IgdmlhCi0gKiBsaW51eC9pbml0L21haW4uYyAodGhpcyBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZCkuCi0gKgotICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KLSAqCi0gKiBJbml0aWFsaXplcyBhbiBhcnJheSBvZiBkcm1fZGV2aWNlIHN0cnVjdHVyZXMsIGFuZCBhdHRlbXB0cyB0bwotICogaW5pdGlhbGl6ZSBhbGwgYXZhaWxhYmxlIGRldmljZXMsIHVzaW5nIGNvbnNlY3V0aXZlIG1pbm9ycywgcmVnaXN0ZXJpbmcgdGhlCi0gKiBzdHVicyBhbmQgaW5pdGlhbGl6aW5nIHRoZSBBR1AgZGV2aWNlLgotICoKLSAqIEV4cGFuZHMgdGhlIFxjIERSSVZFUl9QUkVJTklUIGFuZCBcYyBEUklWRVJfUE9TVF9JTklUIG1hY3JvcyBiZWZvcmUgYW5kCi0gKiBhZnRlciB0aGUgaW5pdGlhbGl6YXRpb24gZm9yIGRyaXZlciBjdXN0b21pemF0aW9uLgotICovCi1pbnQgZHJtX2luaXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcikKLXsKLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IE5VTEw7Ci0Jc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBpZDsKLQlpbnQgaTsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCWZvciAoaSA9IDA7IGRyaXZlci0+cGNpX2RyaXZlci5pZF90YWJsZVtpXS52ZW5kb3IgIT0gMDsgaSsrKSB7Ci0JCXBpZCA9IChzdHJ1Y3QgcGNpX2RldmljZV9pZCAqKSZkcml2ZXItPnBjaV9kcml2ZXIuaWRfdGFibGVbaV07Ci0KLQkJcGRldiA9IE5VTEw7Ci0JCS8qIHBhc3MgYmFjayBpbiBwZGV2IHRvIGFjY291bnQgZm9yIG11bHRpcGxlIGlkZW50aWNhbCBjYXJkcyAqLwotCQl3aGlsZSAoKHBkZXYgPQotCQkJcGNpX2dldF9zdWJzeXMocGlkLT52ZW5kb3IsIHBpZC0+ZGV2aWNlLCBwaWQtPnN1YnZlbmRvciwKLQkJCQkgICAgICAgcGlkLT5zdWJkZXZpY2UsIHBkZXYpKSAhPSBOVUxMKSB7Ci0JCQkvKiBzdGVhbHRoIG1vZGUgcmVxdWlyZXMgYSBtYW51YWwgcHJvYmUgKi8KLQkJCXBjaV9kZXZfZ2V0KHBkZXYpOwotCQkJZHJtX2dldF9kZXYocGRldiwgcGlkLCBkcml2ZXIpOwotCQl9Ci0JfQotCXJldHVybiAwOwotfQotCi1FWFBPUlRfU1lNQk9MKGRybV9pbml0KTsKLQotLyoqCi0gKiBDYWxsZWQgdmlhIGNsZWFudXBfbW9kdWxlKCkgYXQgbW9kdWxlIHVubG9hZCB0aW1lLgotICoKLSAqIENsZWFucyB1cCBhbGwgRFJNIGRldmljZSwgY2FsbGluZyBkcm1fbGFzdGNsb3NlKCkuCi0gKgotICogXHNhIGRybV9pbml0Ci0gKi8KLXN0YXRpYyB2b2lkIGRybV9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCURSTV9ERUJVRygiXG4iKTsKLQotCWlmICghZGV2KSB7Ci0JCURSTV9FUlJPUigiY2xlYW51cCBjYWxsZWQgbm8gZGV2XG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCWRybV9sYXN0Y2xvc2UoZGV2KTsKLQotCWlmIChkcm1fY29yZV9oYXNfTVRSUihkZXYpICYmIGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJgotCSAgICBkZXYtPmFncCAmJiBkZXYtPmFncC0+YWdwX210cnIgPj0gMCkgewotCQlpbnQgcmV0dmFsOwotCQlyZXR2YWwgPSBtdHJyX2RlbChkZXYtPmFncC0+YWdwX210cnIsCi0JCQkJICBkZXYtPmFncC0+YWdwX2luZm8uYXBlcl9iYXNlLAotCQkJCSAgZGV2LT5hZ3AtPmFncF9pbmZvLmFwZXJfc2l6ZSAqIDEwMjQgKiAxMDI0KTsKLQkJRFJNX0RFQlVHKCJtdHJyX2RlbD0lZFxuIiwgcmV0dmFsKTsKLQl9Ci0KLQlpZiAoZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmIGRldi0+YWdwKSB7Ci0JCWRybV9mcmVlKGRldi0+YWdwLCBzaXplb2YoKmRldi0+YWdwKSwgRFJNX01FTV9BR1BMSVNUUyk7Ci0JCWRldi0+YWdwID0gTlVMTDsKLQl9Ci0KLQlpZiAoZGV2LT5kcml2ZXItPnVubG9hZCkKLQkJZGV2LT5kcml2ZXItPnVubG9hZChkZXYpOwotCi0JZHJtX2h0X3JlbW92ZSgmZGV2LT5tYXBfaGFzaCk7Ci0JZHJtX2N0eGJpdG1hcF9jbGVhbnVwKGRldik7Ci0KLQlkcm1fcHV0X21pbm9yKCZkZXYtPnByaW1hcnkpOwotCWlmIChkcm1fcHV0X2RldihkZXYpKQotCQlEUk1fRVJST1IoIkNhbm5vdCB1bmxvYWQgbW9kdWxlXG4iKTsKLX0KLQotaW50IGRybV9taW5vcnNfY2xlYW51cChpbnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IHB0cjsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwotCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIgPSBkYXRhOwotCi0JZGV2ID0gbWlub3ItPmRldjsKLQlpZiAobWlub3ItPmRldi0+ZHJpdmVyICE9IGRyaXZlcikKLQkJcmV0dXJuIDA7Ci0KLQlpZiAobWlub3ItPnR5cGUgIT0gRFJNX01JTk9SX0xFR0FDWSkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoZGV2KQotCQlwY2lfZGV2X3B1dChkZXYtPnBkZXYpOwotCWRybV9jbGVhbnVwKGRldik7Ci0JcmV0dXJuIDE7Ci19Ci0KLXZvaWQgZHJtX2V4aXQoc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcikKLXsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlpZHJfZm9yX2VhY2goJmRybV9taW5vcnNfaWRyLCAmZHJtX21pbm9yc19jbGVhbnVwLCBkcml2ZXIpOwotCi0JRFJNX0lORk8oIk1vZHVsZSB1bmxvYWRlZFxuIik7Ci19Ci0KLUVYUE9SVF9TWU1CT0woZHJtX2V4aXQpOwotCi0vKiogRmlsZSBvcGVyYXRpb25zIHN0cnVjdHVyZSAqLwotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZHJtX3N0dWJfZm9wcyA9IHsKLQkub3duZXIgPSBUSElTX01PRFVMRSwKLQkub3BlbiA9IGRybV9zdHViX29wZW4KLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGRybV9jb3JlX2luaXQodm9pZCkKLXsKLQlpbnQgcmV0ID0gLUVOT01FTTsKLQotCWlkcl9pbml0KCZkcm1fbWlub3JzX2lkcik7Ci0KLQlpZiAocmVnaXN0ZXJfY2hyZGV2KERSTV9NQUpPUiwgImRybSIsICZkcm1fc3R1Yl9mb3BzKSkKLQkJZ290byBlcnJfcDE7Ci0KLQlkcm1fY2xhc3MgPSBkcm1fc3lzZnNfY3JlYXRlKFRISVNfTU9EVUxFLCAiZHJtIik7Ci0JaWYgKElTX0VSUihkcm1fY2xhc3MpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRFJNOiBFcnJvciBjcmVhdGluZyBkcm0gY2xhc3MuXG4iKTsKLQkJcmV0ID0gUFRSX0VSUihkcm1fY2xhc3MpOwotCQlnb3RvIGVycl9wMjsKLQl9Ci0KLQlkcm1fcHJvY19yb290ID0gcHJvY19ta2RpcigiZHJpIiwgTlVMTCk7Ci0JaWYgKCFkcm1fcHJvY19yb290KSB7Ci0JCURSTV9FUlJPUigiQ2Fubm90IGNyZWF0ZSAvcHJvYy9kcmlcbiIpOwotCQlyZXQgPSAtMTsKLQkJZ290byBlcnJfcDM7Ci0JfQotCi0JZHJtX21lbV9pbml0KCk7Ci0KLQlEUk1fSU5GTygiSW5pdGlhbGl6ZWQgJXMgJWQuJWQuJWQgJXNcbiIsCi0JCSBDT1JFX05BTUUsIENPUkVfTUFKT1IsIENPUkVfTUlOT1IsIENPUkVfUEFUQ0hMRVZFTCwgQ09SRV9EQVRFKTsKLQlyZXR1cm4gMDsKLWVycl9wMzoKLQlkcm1fc3lzZnNfZGVzdHJveSgpOwotZXJyX3AyOgotCXVucmVnaXN0ZXJfY2hyZGV2KERSTV9NQUpPUiwgImRybSIpOwotCi0JaWRyX2Rlc3Ryb3koJmRybV9taW5vcnNfaWRyKTsKLWVycl9wMToKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgZHJtX2NvcmVfZXhpdCh2b2lkKQotewotCXJlbW92ZV9wcm9jX2VudHJ5KCJkcmkiLCBOVUxMKTsKLQlkcm1fc3lzZnNfZGVzdHJveSgpOwotCi0JdW5yZWdpc3Rlcl9jaHJkZXYoRFJNX01BSk9SLCAiZHJtIik7Ci0KLQlpZHJfZGVzdHJveSgmZHJtX21pbm9yc19pZHIpOwotfQotCi1tb2R1bGVfaW5pdChkcm1fY29yZV9pbml0KTsKLW1vZHVsZV9leGl0KGRybV9jb3JlX2V4aXQpOwotCi0vKioKLSAqIEdldCB2ZXJzaW9uIGluZm9ybWF0aW9uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgdXNlciBhcmd1bWVudCwgcG9pbnRpbmcgdG8gYSBkcm1fdmVyc2lvbiBzdHJ1Y3R1cmUuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KLSAqCi0gKiBGaWxscyBpbiB0aGUgdmVyc2lvbiBpbmZvcm1hdGlvbiBpbiBccCBhcmcuCi0gKi8KLXN0YXRpYyBpbnQgZHJtX3ZlcnNpb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXN0cnVjdCBkcm1fdmVyc2lvbiAqdmVyc2lvbiA9IGRhdGE7Ci0JaW50IGxlbjsKLQotCXZlcnNpb24tPnZlcnNpb25fbWFqb3IgPSBkZXYtPmRyaXZlci0+bWFqb3I7Ci0JdmVyc2lvbi0+dmVyc2lvbl9taW5vciA9IGRldi0+ZHJpdmVyLT5taW5vcjsKLQl2ZXJzaW9uLT52ZXJzaW9uX3BhdGNobGV2ZWwgPSBkZXYtPmRyaXZlci0+cGF0Y2hsZXZlbDsKLQlEUk1fQ09QWSh2ZXJzaW9uLT5uYW1lLCBkZXYtPmRyaXZlci0+bmFtZSk7Ci0JRFJNX0NPUFkodmVyc2lvbi0+ZGF0ZSwgZGV2LT5kcml2ZXItPmRhdGUpOwotCURSTV9DT1BZKHZlcnNpb24tPmRlc2MsIGRldi0+ZHJpdmVyLT5kZXNjKTsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIENhbGxlZCB3aGVuZXZlciBhIHByb2Nlc3MgcGVyZm9ybXMgYW4gaW9jdGwgb24gL2Rldi9kcm0uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxwYXJhbSBjbWQgY29tbWFuZC4KLSAqIFxwYXJhbSBhcmcgdXNlciBhcmd1bWVudC4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIExvb2tzIHVwIHRoZSBpb2N0bCBmdW5jdGlvbiBpbiB0aGUgOjppb2N0bHMgdGFibGUsIGNoZWNraW5nIGZvciByb290Ci0gKiBwcmV2aWxlZ2VzIGlmIHNvIHJlcXVpcmVkLCBhbmQgZGlzcGF0Y2hlcyB0byB0aGUgcmVzcGVjdGl2ZSBmdW5jdGlvbi4KLSAqLwotaW50IGRybV9pb2N0bChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkgICAgICB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKLXsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmlsZV9wcml2LT5taW5vci0+ZGV2OwotCXN0cnVjdCBkcm1faW9jdGxfZGVzYyAqaW9jdGw7Ci0JZHJtX2lvY3RsX3QgKmZ1bmM7Ci0JdW5zaWduZWQgaW50IG5yID0gRFJNX0lPQ1RMX05SKGNtZCk7Ci0JaW50IHJldGNvZGUgPSAtRUlOVkFMOwotCWNoYXIgKmtkYXRhID0gTlVMTDsKLQotCWF0b21pY19pbmMoJmRldi0+aW9jdGxfY291bnQpOwotCWF0b21pY19pbmMoJmRldi0+Y291bnRzW19EUk1fU1RBVF9JT0NUTFNdKTsKLQkrK2ZpbGVfcHJpdi0+aW9jdGxfY291bnQ7Ci0KLQlEUk1fREVCVUcoInBpZD0lZCwgY21kPTB4JTAyeCwgbnI9MHglMDJ4LCBkZXYgMHglbHgsIGF1dGg9JWRcbiIsCi0JCSAgdGFza19waWRfbnIoY3VycmVudCksIGNtZCwgbnIsCi0JCSAgKGxvbmcpb2xkX2VuY29kZV9kZXYoZmlsZV9wcml2LT5taW5vci0+ZGV2aWNlKSwKLQkJICBmaWxlX3ByaXYtPmF1dGhlbnRpY2F0ZWQpOwotCi0JaWYgKChuciA+PSBEUk1fQ09SRV9JT0NUTF9DT1VOVCkgJiYKLQkgICAgKChuciA8IERSTV9DT01NQU5EX0JBU0UpIHx8IChuciA+PSBEUk1fQ09NTUFORF9FTkQpKSkKLQkJZ290byBlcnJfaTE7Ci0JaWYgKChuciA+PSBEUk1fQ09NTUFORF9CQVNFKSAmJiAobnIgPCBEUk1fQ09NTUFORF9FTkQpICYmCi0JICAgIChuciA8IERSTV9DT01NQU5EX0JBU0UgKyBkZXYtPmRyaXZlci0+bnVtX2lvY3RscykpCi0JCWlvY3RsID0gJmRldi0+ZHJpdmVyLT5pb2N0bHNbbnIgLSBEUk1fQ09NTUFORF9CQVNFXTsKLQllbHNlIGlmICgobnIgPj0gRFJNX0NPTU1BTkRfRU5EKSB8fCAobnIgPCBEUk1fQ09NTUFORF9CQVNFKSkKLQkJaW9jdGwgPSAmZHJtX2lvY3Rsc1tucl07Ci0JZWxzZQotCQlnb3RvIGVycl9pMTsKLQotCWZ1bmMgPSBpb2N0bC0+ZnVuYzsKLQkvKiBpcyB0aGVyZSBhIGxvY2FsIG92ZXJyaWRlPyAqLwotCWlmICgobnIgPT0gRFJNX0lPQ1RMX05SKERSTV9JT0NUTF9ETUEpKSAmJiBkZXYtPmRyaXZlci0+ZG1hX2lvY3RsKQotCQlmdW5jID0gZGV2LT5kcml2ZXItPmRtYV9pb2N0bDsKLQotCi0JaWYgKCFmdW5jKSB7Ci0JCURSTV9ERUJVRygibm8gZnVuY3Rpb25cbiIpOwotCQlyZXRjb2RlID0gLUVJTlZBTDsKLQl9IGVsc2UgaWYgKCgoaW9jdGwtPmZsYWdzICYgRFJNX1JPT1RfT05MWSkgJiYgIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHx8Ci0JCSAgICgoaW9jdGwtPmZsYWdzICYgRFJNX0FVVEgpICYmICFmaWxlX3ByaXYtPmF1dGhlbnRpY2F0ZWQpIHx8Ci0JCSAgICgoaW9jdGwtPmZsYWdzICYgRFJNX01BU1RFUikgJiYgIWZpbGVfcHJpdi0+bWFzdGVyKSkgewotCQlyZXRjb2RlID0gLUVBQ0NFUzsKLQl9IGVsc2UgewotCQlpZiAoY21kICYgKElPQ19JTiB8IElPQ19PVVQpKSB7Ci0JCQlrZGF0YSA9IGttYWxsb2MoX0lPQ19TSVpFKGNtZCksIEdGUF9LRVJORUwpOwotCQkJaWYgKCFrZGF0YSkgewotCQkJCXJldGNvZGUgPSAtRU5PTUVNOwotCQkJCWdvdG8gZXJyX2kxOwotCQkJfQotCQl9Ci0KLQkJaWYgKGNtZCAmIElPQ19JTikgewotCQkJaWYgKGNvcHlfZnJvbV91c2VyKGtkYXRhLCAodm9pZCBfX3VzZXIgKilhcmcsCi0JCQkJCSAgIF9JT0NfU0laRShjbWQpKSAhPSAwKSB7Ci0JCQkJcmV0Y29kZSA9IC1FRkFVTFQ7Ci0JCQkJZ290byBlcnJfaTE7Ci0JCQl9Ci0JCX0KLQkJcmV0Y29kZSA9IGZ1bmMoZGV2LCBrZGF0YSwgZmlsZV9wcml2KTsKLQotCQlpZiAoKHJldGNvZGUgPT0gMCkgJiYgKGNtZCAmIElPQ19PVVQpKSB7Ci0JCQlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKWFyZywga2RhdGEsCi0JCQkJCSBfSU9DX1NJWkUoY21kKSkgIT0gMCkKLQkJCQlyZXRjb2RlID0gLUVGQVVMVDsKLQkJfQotCX0KLQotICAgICAgZXJyX2kxOgotCWlmIChrZGF0YSkKLQkJa2ZyZWUoa2RhdGEpOwotCWF0b21pY19kZWMoJmRldi0+aW9jdGxfY291bnQpOwotCWlmIChyZXRjb2RlKQotCQlEUk1fREVCVUcoInJldCA9ICV4XG4iLCByZXRjb2RlKTsKLQlyZXR1cm4gcmV0Y29kZTsKLX0KLQotRVhQT1JUX1NZTUJPTChkcm1faW9jdGwpOwotCi1kcm1fbG9jYWxfbWFwX3QgKmRybV9nZXRzYXJlYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1fbWFwX2xpc3QgKmVudHJ5OwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmRldi0+bWFwbGlzdCwgaGVhZCkgewotCQlpZiAoZW50cnktPm1hcCAmJiBlbnRyeS0+bWFwLT50eXBlID09IF9EUk1fU0hNICYmCi0JCSAgICAoZW50cnktPm1hcC0+ZmxhZ3MgJiBfRFJNX0NPTlRBSU5TX0xPQ0spKSB7Ci0JCQlyZXR1cm4gZW50cnktPm1hcDsKLQkJfQotCX0KLQlyZXR1cm4gTlVMTDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2dldHNhcmVhKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX2ZvcHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJlNmRhOC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9mb3BzLmMKKysrIC9kZXYvbnVsbApAQCAtMSw0NjYgKzAsMCBAQAotLyoqCi0gKiBcZmlsZSBkcm1fZm9wcy5jCi0gKiBGaWxlIG9wZXJhdGlvbnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIERhcnlsbCBTdHJhdXNzIDxkYXJ5bGxAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogTW9uIEphbiAgNCAwODo1ODozMSAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybV9zYXJlYS5oIgotI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KLQotc3RhdGljIGludCBkcm1fb3Blbl9oZWxwZXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCi0JCQkgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci0KLXN0YXRpYyBpbnQgZHJtX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9sb2NhbF9tYXBfdCAqbWFwOwotCWludCBpOwotCWludCByZXQ7Ci0JdTMyIHNhcmVhcGFnZTsKLQotCWlmIChkZXYtPmRyaXZlci0+Zmlyc3RvcGVuKSB7Ci0JCXJldCA9IGRldi0+ZHJpdmVyLT5maXJzdG9wZW4oZGV2KTsKLQkJaWYgKHJldCAhPSAwKQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlkZXYtPm1hZ2ljZnJlZS5uZXh0ID0gTlVMTDsKLQotCS8qIHByZWJ1aWxkIHRoZSBTQVJFQSAqLwotCXNhcmVhcGFnZSA9IG1heF90KHVuc2lnbmVkLCBTQVJFQV9NQVgsIFBBR0VfU0laRSk7Ci0JaSA9IGRybV9hZGRtYXAoZGV2LCAwLCBzYXJlYXBhZ2UsIF9EUk1fU0hNLCBfRFJNX0NPTlRBSU5TX0xPQ0ssICZtYXApOwotCWlmIChpICE9IDApCi0JCXJldHVybiBpOwotCi0JYXRvbWljX3NldCgmZGV2LT5pb2N0bF9jb3VudCwgMCk7Ci0JYXRvbWljX3NldCgmZGV2LT52bWFfY291bnQsIDApOwotCWRldi0+YnVmX3VzZSA9IDA7Ci0JYXRvbWljX3NldCgmZGV2LT5idWZfYWxsb2MsIDApOwotCi0JaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfSEFWRV9ETUEpKSB7Ci0JCWkgPSBkcm1fZG1hX3NldHVwKGRldik7Ci0JCWlmIChpIDwgMCkKLQkJCXJldHVybiBpOwotCX0KLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldi0+Y291bnRzKTsgaSsrKQotCQlhdG9taWNfc2V0KCZkZXYtPmNvdW50c1tpXSwgMCk7Ci0KLQlkcm1faHRfY3JlYXRlKCZkZXYtPm1hZ2ljbGlzdCwgRFJNX01BR0lDX0hBU0hfT1JERVIpOwotCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hZ2ljZnJlZSk7Ci0KLQlkZXYtPnNpZ2RhdGEubG9jayA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5sb2NrLmxvY2tfcXVldWUpOwotCWRldi0+cXVldWVfY291bnQgPSAwOwotCWRldi0+cXVldWVfcmVzZXJ2ZWQgPSAwOwotCWRldi0+cXVldWVfc2xvdHMgPSAwOwotCWRldi0+cXVldWVsaXN0ID0gTlVMTDsKLQlkZXYtPmlycV9lbmFibGVkID0gMDsKLQlkZXYtPmNvbnRleHRfZmxhZyA9IDA7Ci0JZGV2LT5pbnRlcnJ1cHRfZmxhZyA9IDA7Ci0JZGV2LT5kbWFfZmxhZyA9IDA7Ci0JZGV2LT5sYXN0X2NvbnRleHQgPSAwOwotCWRldi0+bGFzdF9zd2l0Y2ggPSAwOwotCWRldi0+bGFzdF9jaGVja2VkID0gMDsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmNvbnRleHRfd2FpdCk7Ci0JZGV2LT5pZl92ZXJzaW9uID0gMDsKLQotCWRldi0+Y3R4X3N0YXJ0ID0gMDsKLQlkZXYtPmxja19zdGFydCA9IDA7Ci0KLQlkZXYtPmJ1Zl9hc3luYyA9IE5VTEw7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfcmVhZGVycyk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2LT5idWZfd3JpdGVycyk7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKgotCSAqIFRoZSBrZXJuZWwncyBjb250ZXh0IGNvdWxkIGJlIGNyZWF0ZWQgaGVyZSwgYnV0IGlzIG5vdyBjcmVhdGVkCi0JICogaW4gZHJtX2RtYV9lbnF1ZXVlLiAgVGhpcyBpcyBtb3JlIHJlc291cmNlLWVmZmljaWVudCBmb3IKLQkgKiBoYXJkd2FyZSB0aGF0IGRvZXMgbm90IGRvIERNQSwgYnV0IG1heSBtZWFuIHRoYXQKLQkgKiBkcm1fc2VsZWN0X3F1ZXVlIGZhaWxzIGJldHdlZW4gdGhlIHRpbWUgdGhlIGludGVycnVwdCBpcwotCSAqIGluaXRpYWxpemVkIGFuZCB0aGUgdGltZSB0aGUgcXVldWVzIGFyZSBpbml0aWFsaXplZC4KLQkgKi8KLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIE9wZW4gZmlsZS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlCi0gKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIFNlYXJjaGVzIHRoZSBEUk0gZGV2aWNlIHdpdGggdGhlIHNhbWUgbWlub3IgbnVtYmVyLCBjYWxscyBvcGVuX2hlbHBlcigpLCBhbmQKLSAqIGluY3JlbWVudHMgdGhlIGRldmljZSBvcGVuIGNvdW50LiBJZiB0aGUgb3BlbiBjb3VudCB3YXMgcHJldmlvdXMgYXQgemVybywKLSAqIGkuZS4sIGl0J3MgdGhlIGZpcnN0IHRoYXQgdGhlIGRldmljZSBpcyBvcGVuLCB0aGVuIGNhbGxzIHNldHVwKCkuCi0gKi8KLWludCBkcm1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gTlVMTDsKLQlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOwotCXN0cnVjdCBkcm1fbWlub3IgKm1pbm9yOwotCWludCByZXRjb2RlID0gMDsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlyZXRjb2RlID0gZHJtX29wZW5faGVscGVyKGlub2RlLCBmaWxwLCBkZXYpOwotCWlmICghcmV0Y29kZSkgewotCQlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfT1BFTlNdKTsKLQkJc3Bpbl9sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQlpZiAoIWRldi0+b3Blbl9jb3VudCsrKSB7Ci0JCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJCXJldHVybiBkcm1fc2V0dXAoZGV2KTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQl9Ci0KLQlyZXR1cm4gcmV0Y29kZTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX29wZW4pOwotCi0vKioKLSAqIEZpbGUgXGMgb3BlbiBvcGVyYXRpb24uCi0gKgotICogXHBhcmFtIGlub2RlIGRldmljZSBpbm9kZS4KLSAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KLSAqCi0gKiBQdXRzIHRoZSBkZXYtPmZvcHMgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG1pbm9yIG51bWJlciBpbnRvCi0gKiBccCBmaWxwLCBjYWxsIHRoZSBcYyBvcGVuIG1ldGhvZCwgYW5kIHJlc3RvcmUgdGhlIGZpbGUgb3BlcmF0aW9ucy4KLSAqLwotaW50IGRybV9zdHViX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IE5VTEw7Ci0Jc3RydWN0IGRybV9taW5vciAqbWlub3I7Ci0JaW50IG1pbm9yX2lkID0gaW1pbm9yKGlub2RlKTsKLQlpbnQgZXJyID0gLUVOT0RFVjsKLQljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wczsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCW1pbm9yID0gaWRyX2ZpbmQoJmRybV9taW5vcnNfaWRyLCBtaW5vcl9pZCk7Ci0JaWYgKCFtaW5vcikKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlpZiAoIShkZXYgPSBtaW5vci0+ZGV2KSkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlvbGRfZm9wcyA9IGZpbHAtPmZfb3A7Ci0JZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KCZkZXYtPmRyaXZlci0+Zm9wcyk7Ci0JaWYgKGZpbHAtPmZfb3AtPm9wZW4gJiYgKGVyciA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsIGZpbHApKSkgewotCQlmb3BzX3B1dChmaWxwLT5mX29wKTsKLQkJZmlscC0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKLQl9Ci0JZm9wc19wdXQob2xkX2ZvcHMpOwotCi0JcmV0dXJuIGVycjsKLX0KLQotLyoqCi0gKiBDaGVjayB3aGV0aGVyIERSSSB3aWxsIHJ1biBvbiB0aGlzIENQVS4KLSAqCi0gKiBccmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBEUkkgd2lsbCBydW4gb24gdGhpcyBDUFUsIG9yIHplcm8gb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50IGRybV9jcHVfdmFsaWQodm9pZCkKLXsKLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQotCWlmIChib290X2NwdV9kYXRhLng4NiA9PSAzKQotCQlyZXR1cm4gMDsJLyogTm8gY21weGNoZyBvbiBhIDM4NiAqLwotI2VuZGlmCi0jaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fc3BhcmNfdjlfXykKLQlyZXR1cm4gMDsJCS8qIE5vIGNtcHhjaGcgYmVmb3JlIHY5IHNwYXJjLiAqLwotI2VuZGlmCi0JcmV0dXJuIDE7Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJvY2VzcyBvcGVucyAvZGV2L2RybS4KLSAqCi0gKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgotICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgotICogXHBhcmFtIGRldiBkZXZpY2UuCi0gKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgotICoKLSAqIENyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEgZHJtX2ZpbGUgc3RydWN0dXJlIGZvciB0aGUgZmlsZSBwcml2YXRlIGRhdGEgaW4gXHAKLSAqIGZpbHAgYW5kIGFkZCBpdCBpbnRvIHRoZSBkb3VibGUgbGlua2VkIGxpc3QgaW4gXHAgZGV2LgotICovCi1zdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKLQkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7Ci0Jc3RydWN0IGRybV9maWxlICpwcml2OwotCWludCByZXQ7Ci0KLQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fRVhDTCkKLQkJcmV0dXJuIC1FQlVTWTsJLyogTm8gZXhjbHVzaXZlIG9wZW5zICovCi0JaWYgKCFkcm1fY3B1X3ZhbGlkKCkpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JRFJNX0RFQlVHKCJwaWQgPSAlZCwgbWlub3IgPSAlZFxuIiwgdGFza19waWRfbnIoY3VycmVudCksIG1pbm9yX2lkKTsKLQotCXByaXYgPSBkcm1fYWxsb2Moc2l6ZW9mKCpwcml2KSwgRFJNX01FTV9GSUxFUyk7Ci0JaWYgKCFwcml2KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKLQlmaWxwLT5wcml2YXRlX2RhdGEgPSBwcml2OwotCXByaXYtPmZpbHAgPSBmaWxwOwotCXByaXYtPnVpZCA9IGN1cnJlbnQtPmV1aWQ7Ci0JcHJpdi0+cGlkID0gdGFza19waWRfbnIoY3VycmVudCk7Ci0JcHJpdi0+bWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKLQlwcml2LT5pb2N0bF9jb3VudCA9IDA7Ci0JLyogZm9yIGNvbXBhdGliaWxpdHkgcm9vdCBpcyBhbHdheXMgYXV0aGVudGljYXRlZCAqLwotCXByaXYtPmF1dGhlbnRpY2F0ZWQgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOwotCXByaXYtPmxvY2tfY291bnQgPSAwOwotCi0JSU5JVF9MSVNUX0hFQUQoJnByaXYtPmxoZWFkKTsKLQotCWlmIChkZXYtPmRyaXZlci0+b3BlbikgewotCQlyZXQgPSBkZXYtPmRyaXZlci0+b3BlbihkZXYsIHByaXYpOwotCQlpZiAocmV0IDwgMCkKLQkJCWdvdG8gb3V0X2ZyZWU7Ci0JfQotCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmIChsaXN0X2VtcHR5KCZkZXYtPmZpbGVsaXN0KSkKLQkJcHJpdi0+bWFzdGVyID0gMTsKLQotCWxpc3RfYWRkKCZwcml2LT5saGVhZCwgJmRldi0+ZmlsZWxpc3QpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0jaWZkZWYgX19hbHBoYV9fCi0JLyoKLQkgKiBEZWZhdWx0IHRoZSBob3NlCi0JICovCi0JaWYgKCFkZXYtPmhvc2UpIHsKLQkJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7Ci0JCXBjaV9kZXYgPSBwY2lfZ2V0X2NsYXNzKFBDSV9DTEFTU19ESVNQTEFZX1ZHQSA8PCA4LCBOVUxMKTsKLQkJaWYgKHBjaV9kZXYpIHsKLQkJCWRldi0+aG9zZSA9IHBjaV9kZXYtPnN5c2RhdGE7Ci0JCQlwY2lfZGV2X3B1dChwY2lfZGV2KTsKLQkJfQotCQlpZiAoIWRldi0+aG9zZSkgewotCQkJc3RydWN0IHBjaV9idXMgKmIgPSBwY2lfYnVzX2IocGNpX3Jvb3RfYnVzZXMubmV4dCk7Ci0JCQlpZiAoYikKLQkJCQlkZXYtPmhvc2UgPSBiLT5zeXNkYXRhOwotCQl9Ci0JfQotI2VuZGlmCi0KLQlyZXR1cm4gMDsKLSAgICAgIG91dF9mcmVlOgotCWRybV9mcmVlKHByaXYsIHNpemVvZigqcHJpdiksIERSTV9NRU1fRklMRVMpOwotCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyoqIE5vLW9wLiAqLwotaW50IGRybV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG9uKQotewotCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3ItPmRldjsKLQlpbnQgcmV0Y29kZTsKLQotCURSTV9ERUJVRygiZmQgPSAlZCwgZGV2aWNlID0gMHglbHhcbiIsIGZkLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KHByaXYtPm1pbm9yLT5kZXZpY2UpKTsKLQlyZXRjb2RlID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZkZXYtPmJ1Zl9hc3luYyk7Ci0JaWYgKHJldGNvZGUgPCAwKQotCQlyZXR1cm4gcmV0Y29kZTsKLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2Zhc3luYyk7Ci0KLS8qKgotICogUmVsZWFzZSBmaWxlLgotICoKLSAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUKLSAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KLSAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCi0gKgotICogSWYgdGhlIGhhcmR3YXJlIGxvY2sgaXMgaGVsZCB0aGVuIGZyZWUgaXQsIGFuZCB0YWtlIGl0IGFnYWluIGZvciB0aGUga2VybmVsCi0gKiBjb250ZXh0IHNpbmNlIGl0J3MgbmVjZXNzYXJ5IHRvIHJlY2xhaW0gYnVmZmVycy4gVW5saW5rIHRoZSBmaWxlIHByaXZhdGUKLSAqIGRhdGEgZnJvbSBpdHMgbGlzdCBhbmQgZnJlZSBpdC4gRGVjcmVhc2VzIHRoZSBvcGVuIGNvdW50IGFuZCBpZiBpdCByZWFjaGVzCi0gKiB6ZXJvIGNhbGxzIGRybV9sYXN0Y2xvc2UoKS4KLSAqLwotaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQotewotCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7Ci0JaW50IHJldGNvZGUgPSAwOwotCi0JbG9ja19rZXJuZWwoKTsKLQotCURSTV9ERUJVRygib3Blbl9jb3VudCA9ICVkXG4iLCBkZXYtPm9wZW5fY291bnQpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wcmVjbG9zZSkKLQkJZGV2LT5kcml2ZXItPnByZWNsb3NlKGRldiwgZmlsZV9wcml2KTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogQmVnaW4gaW5saW5lIGRybV9yZWxlYXNlCi0JICovCi0KLQlEUk1fREVCVUcoInBpZCA9ICVkLCBkZXZpY2UgPSAweCVseCwgb3Blbl9jb3VudCA9ICVkXG4iLAotCQkgIHRhc2tfcGlkX25yKGN1cnJlbnQpLAotCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmRldmljZSksCi0JCSAgZGV2LT5vcGVuX2NvdW50KTsKLQotCWlmIChkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZCAmJiBkZXYtPmxvY2suaHdfbG9jaykgewotCQlpZiAoZHJtX2lfaGF2ZV9od19sb2NrKGRldiwgZmlsZV9wcml2KSkgewotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQl9IGVsc2UgewotCQkJdW5zaWduZWQgbG9uZyBlbmR0aW1lID0gamlmZmllcyArIDMgKiBEUk1fSFo7Ci0JCQlpbnQgbG9ja2VkID0gMDsKLQotCQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0KLQkJCS8qCi0JCQkgKiBXYWl0IGZvciBhIHdoaWxlLgotCQkJICovCi0KLQkJCWRvewotCQkJCXNwaW5fbG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlsb2NrZWQgPSBkZXYtPmxvY2suaWRsZV9oYXNfbG9jazsKLQkJCQlzcGluX3VubG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKLQkJCQlpZiAobG9ja2VkKQotCQkJCQlicmVhazsKLQkJCQlzY2hlZHVsZSgpOwotCQkJfSB3aGlsZSAoIXRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZW5kdGltZSkpOwotCi0JCQlpZiAoIWxvY2tlZCkgewotCQkJCURSTV9FUlJPUigicmVjbGFpbV9idWZmZXJzX2xvY2tlZCgpIGRlYWRsb2NrLiBQbGVhc2UgcmV3b3JrIHRoaXNcbiIKLQkJCQkJICAiXHRkcml2ZXIgdG8gdXNlIHJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKCkgaW5zdGVhZC5cbiIKLQkJCQkJICAiXHRJIHdpbGwgZ28gb24gcmVjbGFpbWluZyB0aGUgYnVmZmVycyBhbnl3YXkuXG4iKTsKLQkJCX0KLQotCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOwotCQkJZHJtX2lkbGVsb2NrX3JlbGVhc2UoJmRldi0+bG9jayk7Ci0JCX0KLQl9Ci0KLQlpZiAoZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkICYmIGRldi0+bG9jay5od19sb2NrKSB7Ci0KLQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7Ci0JCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZChkZXYsIGZpbGVfcHJpdik7Ci0JCWRybV9pZGxlbG9ja19yZWxlYXNlKCZkZXYtPmxvY2spOwotCi0JfQotCi0JaWYgKGRybV9pX2hhdmVfaHdfbG9jayhkZXYsIGZpbGVfcHJpdikpIHsKLQkJRFJNX0RFQlVHKCJGaWxlICVwIHJlbGVhc2VkLCBmcmVlaW5nIGxvY2sgZm9yIGNvbnRleHQgJWRcbiIsCi0JCQkgIGZpbHAsIF9EUk1fTE9DS0lOR19DT05URVhUKGRldi0+bG9jay5od19sb2NrLT5sb2NrKSk7Ci0KLQkJZHJtX2xvY2tfZnJlZSgmZGV2LT5sb2NrLAotCQkJICAgICAgX0RSTV9MT0NLSU5HX0NPTlRFWFQoZGV2LT5sb2NrLmh3X2xvY2stPmxvY2spKTsKLQl9Ci0KLQotCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSAmJgotCSAgICAhZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIHsKLQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVycyhkZXYsIGZpbGVfcHJpdik7Ci0JfQotCi0JZHJtX2Zhc3luYygtMSwgZmlscCwgMCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPmN0eGxpc3RfbXV0ZXgpOwotCWlmICghbGlzdF9lbXB0eSgmZGV2LT5jdHhsaXN0KSkgewotCQlzdHJ1Y3QgZHJtX2N0eF9saXN0ICpwb3MsICpuOwotCi0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sICZkZXYtPmN0eGxpc3QsIGhlYWQpIHsKLQkJCWlmIChwb3MtPnRhZyA9PSBmaWxlX3ByaXYgJiYKLQkJCSAgICBwb3MtPmhhbmRsZSAhPSBEUk1fS0VSTkVMX0NPTlRFWFQpIHsKLQkJCQlpZiAoZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcikKLQkJCQkJZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcihkZXYsCi0JCQkJCQkJCSAgcG9zLT5oYW5kbGUpOwotCi0JCQkJZHJtX2N0eGJpdG1hcF9mcmVlKGRldiwgcG9zLT5oYW5kbGUpOwotCi0JCQkJbGlzdF9kZWwoJnBvcy0+aGVhZCk7Ci0JCQkJZHJtX2ZyZWUocG9zLCBzaXplb2YoKnBvcyksIERSTV9NRU1fQ1RYTElTVCk7Ci0JCQkJLS1kZXYtPmN0eF9jb3VudDsKLQkJCX0KLQkJfQotCX0KLQltdXRleF91bmxvY2soJmRldi0+Y3R4bGlzdF9tdXRleCk7Ci0KLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JaWYgKGZpbGVfcHJpdi0+cmVtb3ZlX2F1dGhfb25fY2xvc2UgPT0gMSkgewotCQlzdHJ1Y3QgZHJtX2ZpbGUgKnRlbXA7Ci0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZW1wLCAmZGV2LT5maWxlbGlzdCwgbGhlYWQpCi0JCQl0ZW1wLT5hdXRoZW50aWNhdGVkID0gMDsKLQl9Ci0JbGlzdF9kZWwoJmZpbGVfcHJpdi0+bGhlYWQpOwotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCi0JaWYgKGRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UpCi0JCWRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UoZGV2LCBmaWxlX3ByaXYpOwotCWRybV9mcmVlKGZpbGVfcHJpdiwgc2l6ZW9mKCpmaWxlX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKLQotCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0JICogRW5kIGlubGluZSBkcm1fcmVsZWFzZQotCSAqLwotCi0JYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX0NMT1NFU10pOwotCXNwaW5fbG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQlpZiAoIS0tZGV2LT5vcGVuX2NvdW50KSB7Ci0JCWlmIChhdG9taWNfcmVhZCgmZGV2LT5pb2N0bF9jb3VudCkgfHwgZGV2LT5ibG9ja2VkKSB7Ci0JCQlEUk1fRVJST1IoIkRldmljZSBidXN5OiAlZCAlZFxuIiwKLQkJCQkgIGF0b21pY19yZWFkKCZkZXYtPmlvY3RsX2NvdW50KSwgZGV2LT5ibG9ja2VkKTsKLQkJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOwotCQkJdW5sb2NrX2tlcm5lbCgpOwotCQkJcmV0dXJuIC1FQlVTWTsKLQkJfQotCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQkJdW5sb2NrX2tlcm5lbCgpOwotCQlyZXR1cm4gZHJtX2xhc3RjbG9zZShkZXYpOwotCX0KLQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKLQotCXVubG9ja19rZXJuZWwoKTsKLQotCXJldHVybiByZXRjb2RlOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcmVsZWFzZSk7Ci0KLS8qKiBOby1vcC4gKi8KLXVuc2lnbmVkIGludCBkcm1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICp3YWl0KQotewotCXJldHVybiAwOwotfQotRVhQT1JUX1NZTUJPTChkcm1fcG9sbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDUwODFiNC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuYworKysgL2Rldi9udWxsCkBAIC0xLDE4MSArMCwwIEBACi0vKioKLSAqIFxmaWxlIGRybV9tZW1vcnkuYwotICogTWVtb3J5IG1hbmFnZW1lbnQgd3JhcHBlcnMgZm9yIERSTQotICoKLSAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+Ci0gKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0vKgotICogQ3JlYXRlZDogVGh1IEZlYiAgNCAxNDowMDozNCAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCi0gKgotICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgotI2luY2x1ZGUgImRybVAuaCIKLQotI2lmZGVmIERFQlVHX01FTU9SWQotI2luY2x1ZGUgImRybV9tZW1vcnlfZGVidWcuaCIKLSNlbHNlCi0KLS8qKiBOby1vcC4gKi8KLXZvaWQgZHJtX21lbV9pbml0KHZvaWQpCi17Ci19Ci0KLS8qKgotICogQ2FsbGVkIHdoZW4gIi9wcm9jL2RyaS8lZGV2JS9tZW0iIGlzIHJlYWQuCi0gKgotICogXHBhcmFtIGJ1ZiBvdXRwdXQgYnVmZmVyLgotICogXHBhcmFtIHN0YXJ0IHN0YXJ0IG9mIG91dHB1dCBkYXRhLgotICogXHBhcmFtIG9mZnNldCByZXF1ZXN0ZWQgc3RhcnQgb2Zmc2V0LgotICogXHBhcmFtIGxlbiByZXF1ZXN0ZWQgbnVtYmVyIG9mIGJ5dGVzLgotICogXHBhcmFtIGVvZiB3aGV0aGVyIHRoZXJlIGlzIG5vIG1vcmUgZGF0YSB0byByZXR1cm4uCi0gKiBccGFyYW0gZGF0YSBwcml2YXRlIGRhdGEuCi0gKiBccmV0dXJuIG51bWJlciBvZiB3cml0dGVuIGJ5dGVzLgotICoKLSAqIE5vLW9wLgotICovCi1pbnQgZHJtX21lbV9pbmZvKGNoYXIgKmJ1ZiwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmZzZXQsCi0JCSBpbnQgbGVuLCBpbnQgKmVvZiwgdm9pZCAqZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGttYWxsb2MoKSBhbmQga2ZyZWUoKSAqLwotdm9pZCAqZHJtX3JlYWxsb2Modm9pZCAqb2xkcHQsIHNpemVfdCBvbGRzaXplLCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCi17Ci0Jdm9pZCAqcHQ7Ci0KLQlpZiAoIShwdCA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCkpKQotCQlyZXR1cm4gTlVMTDsKLQlpZiAob2xkcHQgJiYgb2xkc2l6ZSkgewotCQltZW1jcHkocHQsIG9sZHB0LCBvbGRzaXplKTsKLQkJa2ZyZWUob2xkcHQpOwotCX0KLQlyZXR1cm4gcHQ7Ci19Ci0KLSNpZiBfX09TX0hBU19BR1AKLXN0YXRpYyB2b2lkICphZ3BfcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXVuc2lnbmVkIGxvbmcgKnBoeXNfYWRkcl9tYXAsIGksIG51bV9wYWdlcyA9Ci0JICAgIFBBR0VfQUxJR04oc2l6ZSkgLyBQQUdFX1NJWkU7Ci0Jc3RydWN0IGRybV9hZ3BfbWVtICphZ3BtZW07Ci0Jc3RydWN0IHBhZ2UgKipwYWdlX21hcDsKLQl2b2lkICphZGRyOwotCi0Jc2l6ZSA9IFBBR0VfQUxJR04oc2l6ZSk7Ci0KLSNpZmRlZiBfX2FscGhhX18KLQlvZmZzZXQgLT0gZGV2LT5ob3NlLT5tZW1fc3BhY2UtPnN0YXJ0OwotI2VuZGlmCi0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGFncG1lbSwgJmRldi0+YWdwLT5tZW1vcnksIGhlYWQpCi0JCWlmIChhZ3BtZW0tPmJvdW5kIDw9IG9mZnNldAotCQkgICAgJiYgKGFncG1lbS0+Ym91bmQgKyAoYWdwbWVtLT5wYWdlcyA8PCBQQUdFX1NISUZUKSkgPj0KLQkJICAgIChvZmZzZXQgKyBzaXplKSkKLQkJCWJyZWFrOwotCWlmICghYWdwbWVtKQotCQlyZXR1cm4gTlVMTDsKLQotCS8qCi0JICogT0ssIHdlJ3JlIG1hcHBpbmcgQUdQIHNwYWNlIG9uIGEgY2hpcHNldC9wbGF0Zm9ybSBvbiB3aGljaCBtZW1vcnkgYWNjZXNzZXMgYnkKLQkgKiB0aGUgQ1BVIGRvIG5vdCBnZXQgcmVtYXBwZWQgYnkgdGhlIEdBUlQuICBXZSBmaXggdGhpcyBieSB1c2luZyB0aGUga2VybmVsJ3MKLQkgKiBwYWdlLXRhYmxlIGluc3RlYWQgKHRoYXQncyBwcm9iYWJseSBmYXN0ZXIgYW55aG93Li4uKS4KLQkgKi8KLQkvKiBub3RlOiB1c2Ugdm1hbGxvYygpIGJlY2F1c2UgbnVtX3BhZ2VzIGNvdWxkIGJlIGxhcmdlLi4uICovCi0JcGFnZV9tYXAgPSB2bWFsbG9jKG51bV9wYWdlcyAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSk7Ci0JaWYgKCFwYWdlX21hcCkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlwaHlzX2FkZHJfbWFwID0KLQkgICAgYWdwbWVtLT5tZW1vcnktPm1lbW9yeSArIChvZmZzZXQgLSBhZ3BtZW0tPmJvdW5kKSAvIFBBR0VfU0laRTsKLQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyArK2kpCi0JCXBhZ2VfbWFwW2ldID0gcGZuX3RvX3BhZ2UocGh5c19hZGRyX21hcFtpXSA+PiBQQUdFX1NISUZUKTsKLQlhZGRyID0gdm1hcChwYWdlX21hcCwgbnVtX3BhZ2VzLCBWTV9JT1JFTUFQLCBQQUdFX0FHUCk7Ci0JdmZyZWUocGFnZV9tYXApOwotCi0JcmV0dXJuIGFkZHI7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfYWxsb2NhdGVfbWVtb3J5KCkgKi8KLURSTV9BR1BfTUVNICpkcm1fYWxsb2NfYWdwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgcGFnZXMsIHUzMiB0eXBlKQotewotCXJldHVybiBkcm1fYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdlcywgdHlwZSk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfZnJlZV9tZW1vcnkoKSAqLwotaW50IGRybV9mcmVlX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgaW50IHBhZ2VzKQotewotCXJldHVybiBkcm1fYWdwX2ZyZWVfbWVtb3J5KGhhbmRsZSkgPyAwIDogLUVJTlZBTDsKLX0KLQotLyoqIFdyYXBwZXIgYXJvdW5kIGFncF9iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX2JpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCB1bnNpZ25lZCBpbnQgc3RhcnQpCi17Ci0JcmV0dXJuIGRybV9hZ3BfYmluZF9tZW1vcnkoaGFuZGxlLCBzdGFydCk7Ci19Ci0KLS8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfdW5iaW5kX21lbW9yeSgpICovCi1pbnQgZHJtX3VuYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUpCi17Ci0JcmV0dXJuIGRybV9hZ3BfdW5iaW5kX21lbW9yeShoYW5kbGUpOwotfQotCi0jZWxzZSAgLyogIF9fT1NfSEFTX0FHUCAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCAqYWdwX3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlyZXR1cm4gTlVMTDsKLX0KLQotI2VuZGlmCQkJCS8qIGFncCAqLwotCi0jZW5kaWYJCQkJLyogZGVidWdfbWVtb3J5ICovCi0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcChzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJbWFwLT5oYW5kbGUgPSBhZ3BfcmVtYXAobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSwgZGV2KTsKLQllbHNlCi0JCW1hcC0+aGFuZGxlID0gaW9yZW1hcChtYXAtPm9mZnNldCwgbWFwLT5zaXplKTsKLX0KLUVYUE9SVF9TWU1CT0woZHJtX2NvcmVfaW9yZW1hcCk7Ci0KLXZvaWQgZHJtX2NvcmVfaW9yZW1hcGZyZWUoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoIW1hcC0+aGFuZGxlIHx8ICFtYXAtPnNpemUpCi0JCXJldHVybjsKLQotCWlmIChkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKLQkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmNhbnRfdXNlX2FwZXJ0dXJlICYmIG1hcC0+dHlwZSA9PSBfRFJNX0FHUCkKLQkJdnVubWFwKG1hcC0+aGFuZGxlKTsKLQllbHNlCi0JCWlvdW5tYXAobWFwLT5oYW5kbGUpOwotfQotRVhQT1JUX1NZTUJPTChkcm1fY29yZV9pb3JlbWFwZnJlZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9wY2lpZHMuaCBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNmE0OTlmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3BjaWlkcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDE0ICswLDAgQEAKLS8qCi0gICBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgZHJtX3BjaWlkcy50eHQgaW4gdGhlIERSTSBDVlMKLSAgIFBsZWFzZSBjb250YWN0IGRyaS1kZXZlbEBsaXN0cy5zZi5uZXQgdG8gYWRkIG5ldyBjYXJkcyB0byB0aGlzIGxpc3QKLSovCi0jZGVmaW5lIHJhZGVvbl9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDMxNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4MzE1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHgzMTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDNFNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHgzRTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NDEzNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzEwMHxSQURFT05fSVNfSUdQfSwgXAotCXsweDEwMDIsIDB4NDEzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfSwgXAotCXsweDEwMDIsIDB4NDE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NDE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQxNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCi0JezB4MTAwMiwgMHg0MTUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQxNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCi0JezB4MTAwMiwgMHg0MTU1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAotCXsweDEwMDIsIDB4NDE1NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKLQl7MHgxMDAyLCAweDQyMzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMyMDB8UkFERU9OX0lTX0lHUH0sIFwKLQl7MHgxMDAyLCAweDQyNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDQyNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDQzMzYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMxMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0MzM3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMjAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NDQzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDQ5NjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB9LCBcCi0JezB4MTAwMiwgMHg0OTY3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfSwgXAotCXsweDEwMDIsIDB4NEE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NEE0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRBNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRCNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDRDNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEM1OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjIwMHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0QzU5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRDNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEM2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0QzY2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRDNjcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEU0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAotCXsweDEwMDIsIDB4NEU0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAotCXsweDEwMDIsIDB4NEU1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0RTUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRFNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NEU1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg0RTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDRFNTYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKLQl7MHgxMDAyLCAweDUxNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjEwMHxSQURFT05fU0lOR0xFX0NSVEN9LCBcCi0JezB4MTAwMiwgMHg1MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IxMDB8UkFERU9OX1NJTkdMRV9DUlRDfSwgXAotCXsweDEwMDIsIDB4NTE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKLQl7MHgxMDAyLCAweDUxNDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKLQl7MHgxMDAyLCAweDUxNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB9LCBcCi0JezB4MTAwMiwgMHg1MTU4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjAwfSwgXAotCXsweDEwMDIsIDB4NTE1OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKLQl7MHgxMDAyLCAweDUxNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB9LCBcCi0JezB4MTAwMiwgMHg1MTVFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfSwgXAotCXsweDEwMDIsIDB4NTQ2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg1NDYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKLQl7MHgxMDAyLCAweDU0NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTY1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU1NTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU2NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NTY0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1NjRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDU2NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NTY1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ODM0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B9LCBcCi0JezB4MTAwMiwgMHg1ODM1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NTk1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDU5NTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1OTc0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAotCXsweDEwMDIsIDB4NTk3NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDU5NjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCi0JezB4MTAwMiwgMHg1OTYxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAotCXsweDEwMDIsIDB4NTk2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MH0sIFwKLQl7MHgxMDAyLCAweDU5NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCi0JezB4MTAwMiwgMHg1OTY1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAotCXsweDEwMDIsIDB4NTk2OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKLQl7MHgxMDAyLCAweDVhNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1YTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAotCXsweDEwMDIsIDB4NWE2MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKLQl7MHgxMDAyLCAweDVhNjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0MDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg1YjYwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWI2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDViNjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1YjY0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWI2NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVjNjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAotCXsweDEwMDIsIDB4NWM2MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCi0JezB4MTAwMiwgMHg1ZDQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWQ0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVkNGEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDRmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZDU3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZTQ4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWU0YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVlNGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg1ZTRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NWU0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDVlNGYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTA2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwQywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwRSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzEwRiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTRCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE1RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxNUYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTgwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxODMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTg2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MThDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzE4RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOTMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTk2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxOUIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MTlGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQzEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUM2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFDNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxQ0QsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUNFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFEMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxRDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzFENSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MUQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcxREEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MURFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyMTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyODEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjgzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyODcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3Mjg4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI4OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyOEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NzB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjhDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI5MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDcyOTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3MjkzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAotCXsweDEwMDIsIDB4NzI5NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDc4MzQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fTkVXX01FTU1BUH0sIFwKLQl7MHgxMDAyLCAweDc4MzUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMzMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCi0JezB4MTAwMiwgMHg3OTFlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezB4MTAwMiwgMHg3OTFmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNjkwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB8UkFERU9OX0lTX0lHUEdBUlR9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgcjEyOF9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDRjNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGQ0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRkNGMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDRBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDRELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MDU2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTA1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUwNTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MjQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTI0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUyNDcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1MjRiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTI0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDUzNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg1NDQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NTQ0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDU0NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgbWdhX1BDSV9JRFMgXAotCXsweDEwMmIsIDB4MDUyMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAotCXsweDEwMmIsIDB4MDUyMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HMjAwfSwgXAotCXsweDEwMmIsIDB4MDUyNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNDAwfSwgXAotCXsweDEwMmIsIDB4MjUyNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgTUdBX0NBUkRfVFlQRV9HNTUwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIG1hY2g2NF9QQ0lfSURTIFwKLQl7MHgxMDAyLCAweDQ3NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc0ZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0NzUzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NDc0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDQ3NGUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMDIsIDB4NGM1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDAyLCAweDRjNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAwMiwgMHg0YzRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIHNpc2Rydl9QQ0lfSURTIFwKLQl7MHgxMDM5LCAweDAzMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAzOSwgMHg1MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEwMzksIDB4NjMwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMDM5LCAweDYzMzAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFNJU19DSElQXzMxNX0sIFwKLQl7MHgxMDM5LCAweDYzNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTAzOSwgMHg3MzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDE4Q0EsIDB4MDA0MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAotCXsweDE4Q0EsIDB4MDA0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgU0lTX0NISVBfMzE1fSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIHRkZnhfUENJX0lEUyBcCi0JezB4MTIxYSwgMHgwMDAzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEyMWEsIDB4MDAwNCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMjFhLCAweDAwMDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTIxYSwgMHgwMDA3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDEyMWEsIDB4MDAwOSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMjFhLCAweDAwMGIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgdmlhZHJ2X1BDSV9JRFMgXAotCXsweDExMDYsIDB4MzAyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMTA2LCAweDMxMTgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZJQV9QUk9fR1JPVVBfQX0sIFwKLQl7MHgxMTA2LCAweDMxMjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTEwNiwgMHg3MjA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDExMDYsIDB4MzEwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHgxMTA2LCAweDMzNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4MTEwNiwgMHgzMzQzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDExMDYsIDB4MzIzMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX0RYOV8wfSwgXAotCXsweDExMDYsIDB4MzE1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgVklBX1BST19HUk9VUF9BfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGk4MTBfUENJX0lEUyBcCi0JezB4ODA4NiwgMHg3MTIxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4NzEyMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDcxMjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgxMTMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGk4MzBfUENJX0lEUyBcCi0JezB4ODA4NiwgMHgzNTc3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjU2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDM1ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQotCi0jZGVmaW5lIGdhbW1hX1BDSV9JRFMgXAotCXsweDNkM2QsIDB4MDAwOCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MCwgMCwgMH0KLQotI2RlZmluZSBzYXZhZ2VfUENJX0lEUyBcCi0JezB4NTMzMywgMHg4YTIwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0UzRH0sIFwKLQl7MHg1MzMzLCAweDhhMjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTNEfSwgXAotCXsweDUzMzMsIDB4OGEyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFNH0sIFwKLQl7MHg1MzMzLCAweDhhMjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTR9LCBcCi0JezB4NTMzMywgMHg4YzEwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzExLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzEzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0VfTVh9LCBcCi0JezB4NTMzMywgMHg4YzIyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YzJhLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMmIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyYywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YzJkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKLQl7MHg1MzMzLCAweDhjMmUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAotCXsweDUzMzMsIDB4OGMyZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YTI1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4YTI2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0V9LCBcCi0JezB4NTMzMywgMHg4ZDAxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19UV0lTVEVSfSwgXAotCXsweDUzMzMsIDB4OGQwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfVFdJU1RFUn0sIFwKLQl7MHg1MzMzLCAweDhkMDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKLQl7MHg1MzMzLCAweDhkMDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1BST1NBVkFHRUREUn0sIFwKLQl7MCwgMCwgMH0KLQotI2RlZmluZSBmZmJfUENJX0lEUyBcCi0JezAsIDAsIDB9Ci0KLSNkZWZpbmUgaTkxNV9QQ0lfSURTIFwKLQl7MHg4MDg2LCAweDM1NzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MzU4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI1NzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNTgyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjU4YSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI1OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyNzcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjdhMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI3YWUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4Mjk4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI5OTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOWEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MjliMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDI5YzIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyOWQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXsweDgwODYsIDB4MmEwMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKLQl7MHg4MDg2LCAweDJhMTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCi0JezB4ODA4NiwgMHgyYTQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAotCXswLCAwLCAwfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvY2hhci9kcm0vZHJtX3N5c2ZzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMzIxNjkuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc3lzZnMuYworKysgL2Rldi9udWxsCkBAIC0xLDIxMCArMCwwIEBACi0KLS8qCi0gKiBkcm1fc3lzZnMuYyAtIE1vZGlmaWNhdGlvbnMgdG8gZHJtX3N5c2ZzX2NsYXNzLmMgdG8gc3VwcG9ydAotICogICAgICAgICAgICAgICBleHRyYSBzeXNmcyBhdHRyaWJ1dGUgZnJvbSBEUk0uIE5vcm1hbCBkcm1fc3lzZnNfY2xhc3MKLSAqICAgICAgICAgICAgICAgZG9lcyBub3QgYWxsb3cgYWRkaW5nIGF0dHJpYnV0ZXMuCi0gKgotICogQ29weXJpZ2h0IChjKSAyMDA0IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgotICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDQgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4KLSAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0IElCTSBDb3JwLgotICoKLSAqIFRoaXMgZmlsZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjIKLSAqCi0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgotI2luY2x1ZGUgPGxpbnV4L2tkZXZfdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgotCi0jaW5jbHVkZSAiZHJtX2NvcmUuaCIKLSNpbmNsdWRlICJkcm1QLmgiCi0KLSNkZWZpbmUgdG9fZHJtX21pbm9yKGQpIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgZHJtX21pbm9yLCBrZGV2KQotCi0vKioKLSAqIGRybV9zeXNmc19zdXNwZW5kIC0gRFJNIGNsYXNzIHN1c3BlbmQgaG9vawotICogQGRldjogTGludXggZGV2aWNlIHRvIHN1c3BlbmQKLSAqIEBzdGF0ZTogcG93ZXIgc3RhdGUgdG8gZW50ZXIKLSAqCi0gKiBKdXN0IGZpZ3VyZXMgb3V0IHdoYXQgdGhlIGFjdHVhbCBzdHJ1Y3QgZHJtX2RldmljZSBhc3NvY2lhdGVkIHdpdGgKLSAqIEBkZXYgaXMgYW5kIGNhbGxzIGl0cyBzdXNwZW5kIGhvb2ssIGlmIHByZXNlbnQuCi0gKi8KLXN0YXRpYyBpbnQgZHJtX3N5c2ZzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9taW5vciAqZHJtX21pbm9yID0gdG9fZHJtX21pbm9yKGRldik7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkcm1fbWlub3ItPmRldjsKLQotCXByaW50ayhLRVJOX0VSUiAiJXNcbiIsIF9fZnVuY19fKTsKLQotCWlmIChkcm1fZGV2LT5kcml2ZXItPnN1c3BlbmQpCi0JCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPnN1c3BlbmQoZHJtX2Rldiwgc3RhdGUpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qKgotICogZHJtX3N5c2ZzX3Jlc3VtZSAtIERSTSBjbGFzcyByZXN1bWUgaG9vawotICogQGRldjogTGludXggZGV2aWNlIHRvIHJlc3VtZQotICoKLSAqIEp1c3QgZmlndXJlcyBvdXQgd2hhdCB0aGUgYWN0dWFsIHN0cnVjdCBkcm1fZGV2aWNlIGFzc29jaWF0ZWQgd2l0aAotICogQGRldiBpcyBhbmQgY2FsbHMgaXRzIHJlc3VtZSBob29rLCBpZiBwcmVzZW50LgotICovCi1zdGF0aWMgaW50IGRybV9zeXNmc19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQotewotCXN0cnVjdCBkcm1fbWlub3IgKmRybV9taW5vciA9IHRvX2RybV9taW5vcihkZXYpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZHJtX21pbm9yLT5kZXY7Ci0KLQlpZiAoZHJtX2Rldi0+ZHJpdmVyLT5yZXN1bWUpCi0JCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPnJlc3VtZShkcm1fZGV2KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBEaXNwbGF5IHRoZSB2ZXJzaW9uIG9mIGRybV9jb3JlLiBUaGlzIGRvZXNuJ3Qgd29yayByaWdodCBpbiBjdXJyZW50IGRlc2lnbiAqLwotc3RhdGljIHNzaXplX3QgdmVyc2lvbl9zaG93KHN0cnVjdCBjbGFzcyAqZGV2LCBjaGFyICpidWYpCi17Ci0JcmV0dXJuIHNwcmludGYoYnVmLCAiJXMgJWQuJWQuJWQgJXNcbiIsIENPUkVfTkFNRSwgQ09SRV9NQUpPUiwKLQkJICAgICAgIENPUkVfTUlOT1IsIENPUkVfUEFUQ0hMRVZFTCwgQ09SRV9EQVRFKTsKLX0KLQotc3RhdGljIENMQVNTX0FUVFIodmVyc2lvbiwgU19JUlVHTywgdmVyc2lvbl9zaG93LCBOVUxMKTsKLQotLyoqCi0gKiBkcm1fc3lzZnNfY3JlYXRlIC0gY3JlYXRlIGEgc3RydWN0IGRybV9zeXNmc19jbGFzcyBzdHJ1Y3R1cmUKLSAqIEBvd25lcjogcG9pbnRlciB0byB0aGUgbW9kdWxlIHRoYXQgaXMgdG8gIm93biIgdGhpcyBzdHJ1Y3QgZHJtX3N5c2ZzX2NsYXNzCi0gKiBAbmFtZTogcG9pbnRlciB0byBhIHN0cmluZyBmb3IgdGhlIG5hbWUgb2YgdGhpcyBjbGFzcy4KLSAqCi0gKiBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIERSTSBjbGFzcyBwb2ludGVyIHRoYXQgY2FuIHRoZW4gYmUgdXNlZAotICogaW4gY2FsbHMgdG8gZHJtX3N5c2ZzX2RldmljZV9hZGQoKS4KLSAqCi0gKiBOb3RlLCB0aGUgcG9pbnRlciBjcmVhdGVkIGhlcmUgaXMgdG8gYmUgZGVzdHJveWVkIHdoZW4gZmluaXNoZWQgYnkgbWFraW5nIGEKLSAqIGNhbGwgdG8gZHJtX3N5c2ZzX2Rlc3Ryb3koKS4KLSAqLwotc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKQotewotCXN0cnVjdCBjbGFzcyAqY2xhc3M7Ci0JaW50IGVycjsKLQotCWNsYXNzID0gY2xhc3NfY3JlYXRlKG93bmVyLCBuYW1lKTsKLQlpZiAoSVNfRVJSKGNsYXNzKSkgewotCQllcnIgPSBQVFJfRVJSKGNsYXNzKTsKLQkJZ290byBlcnJfb3V0OwotCX0KLQotCWNsYXNzLT5zdXNwZW5kID0gZHJtX3N5c2ZzX3N1c3BlbmQ7Ci0JY2xhc3MtPnJlc3VtZSA9IGRybV9zeXNmc19yZXN1bWU7Ci0KLQllcnIgPSBjbGFzc19jcmVhdGVfZmlsZShjbGFzcywgJmNsYXNzX2F0dHJfdmVyc2lvbik7Ci0JaWYgKGVycikKLQkJZ290byBlcnJfb3V0X2NsYXNzOwotCi0JcmV0dXJuIGNsYXNzOwotCi1lcnJfb3V0X2NsYXNzOgotCWNsYXNzX2Rlc3Ryb3koY2xhc3MpOwotZXJyX291dDoKLQlyZXR1cm4gRVJSX1BUUihlcnIpOwotfQotCi0vKioKLSAqIGRybV9zeXNmc19kZXN0cm95IC0gZGVzdHJveXMgRFJNIGNsYXNzCi0gKgotICogRGVzdHJveSB0aGUgRFJNIGRldmljZSBjbGFzcy4KLSAqLwotdm9pZCBkcm1fc3lzZnNfZGVzdHJveSh2b2lkKQotewotCWlmICgoZHJtX2NsYXNzID09IE5VTEwpIHx8IChJU19FUlIoZHJtX2NsYXNzKSkpCi0JCXJldHVybjsKLQljbGFzc19yZW1vdmVfZmlsZShkcm1fY2xhc3MsICZjbGFzc19hdHRyX3ZlcnNpb24pOwotCWNsYXNzX2Rlc3Ryb3koZHJtX2NsYXNzKTsKLX0KLQotc3RhdGljIHNzaXplX3Qgc2hvd19kcmkoc3RydWN0IGRldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKLQkJCWNoYXIgKmJ1ZikKLXsKLQlzdHJ1Y3QgZHJtX21pbm9yICpkcm1fbWlub3IgPSB0b19kcm1fbWlub3IoZGV2aWNlKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRybV9taW5vci0+ZGV2OwotCWlmIChkcm1fZGV2LT5kcml2ZXItPmRyaV9saWJyYXJ5X25hbWUpCi0JCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPmRyaV9saWJyYXJ5X25hbWUoZHJtX2RldiwgYnVmKTsKLQlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlc1xuIiwgZHJtX2Rldi0+ZHJpdmVyLT5wY2lfZHJpdmVyLm5hbWUpOwotfQotCi1zdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2aWNlX2F0dHJzW10gPSB7Ci0JX19BVFRSKGRyaV9saWJyYXJ5X25hbWUsIFNfSVJVR08sIHNob3dfZHJpLCBOVUxMKSwKLX07Ci0KLS8qKgotICogZHJtX3N5c2ZzX2RldmljZV9yZWxlYXNlIC0gZG8gbm90aGluZwotICogQGRldjogTGludXggZGV2aWNlCi0gKgotICogTm9ybWFsbHksIHRoaXMgd291bGQgZnJlZSB0aGUgRFJNIGRldmljZSBhc3NvY2lhdGVkIHdpdGggQGRldiwgYWxvbmcKLSAqIHdpdGggY2xlYW5pbmcgdXAgYW55IG90aGVyIHN0dWZmLiAgQnV0IHdlIGRvIHRoYXQgaW4gdGhlIERSTSBjb3JlLCBzbwotICogdGhpcyBmdW5jdGlvbiBjYW4ganVzdCByZXR1cm4gYW5kIGhvcGUgdGhhdCB0aGUgY29yZSBkb2VzIGl0cyBqb2IuCi0gKi8KLXN0YXRpYyB2b2lkIGRybV9zeXNmc19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCi17Ci0JcmV0dXJuOwotfQotCi0vKioKLSAqIGRybV9zeXNmc19kZXZpY2VfYWRkIC0gYWRkcyBhIGNsYXNzIGRldmljZSB0byBzeXNmcyBmb3IgYSBjaGFyYWN0ZXIgZHJpdmVyCi0gKiBAZGV2OiBEUk0gZGV2aWNlIHRvIGJlIGFkZGVkCi0gKiBAaGVhZDogRFJNIGhlYWQgaW4gcXVlc3Rpb24KLSAqCi0gKiBBZGQgYSBEUk0gZGV2aWNlIHRvIHRoZSBEUk0ncyBkZXZpY2UgbW9kZWwgY2xhc3MuICBXZSB1c2UgQGRldidzIFBDSSBkZXZpY2UKLSAqIGFzIHRoZSBwYXJlbnQgZm9yIHRoZSBMaW51eCBkZXZpY2UsIGFuZCBtYWtlIHN1cmUgaXQgaGFzIGEgZmlsZSBjb250YWluaW5nCi0gKiB0aGUgZHJpdmVyIHdlJ3JlIHVzaW5nIChmb3IgdXNlcnNwYWNlIGNvbXBhdGliaWxpdHkpLgotICovCi1pbnQgZHJtX3N5c2ZzX2RldmljZV9hZGQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCi17Ci0JaW50IGVycjsKLQlpbnQgaSwgajsKLQljaGFyICptaW5vcl9zdHI7Ci0KLQltaW5vci0+a2Rldi5wYXJlbnQgPSAmbWlub3ItPmRldi0+cGRldi0+ZGV2OwotCW1pbm9yLT5rZGV2LmNsYXNzID0gZHJtX2NsYXNzOwotCW1pbm9yLT5rZGV2LnJlbGVhc2UgPSBkcm1fc3lzZnNfZGV2aWNlX3JlbGVhc2U7Ci0JbWlub3ItPmtkZXYuZGV2dCA9IG1pbm9yLT5kZXZpY2U7Ci0JbWlub3Jfc3RyID0gImNhcmQlZCI7Ci0KLQlzbnByaW50ZihtaW5vci0+a2Rldi5idXNfaWQsIEJVU19JRF9TSVpFLCBtaW5vcl9zdHIsIG1pbm9yLT5pbmRleCk7Ci0KLQllcnIgPSBkZXZpY2VfcmVnaXN0ZXIoJm1pbm9yLT5rZGV2KTsKLQlpZiAoZXJyKSB7Ci0JCURSTV9FUlJPUigiZGV2aWNlIGFkZCBmYWlsZWQ6ICVkXG4iLCBlcnIpOwotCQlnb3RvIGVycl9vdXQ7Ci0JfQotCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGV2aWNlX2F0dHJzKTsgaSsrKSB7Ci0JCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZSgmbWlub3ItPmtkZXYsICZkZXZpY2VfYXR0cnNbaV0pOwotCQlpZiAoZXJyKQotCQkJZ290byBlcnJfb3V0X2ZpbGVzOwotCX0KLQotCXJldHVybiAwOwotCi1lcnJfb3V0X2ZpbGVzOgotCWlmIChpID4gMCkKLQkJZm9yIChqID0gMDsgaiA8IGk7IGorKykKLQkJCWRldmljZV9yZW1vdmVfZmlsZSgmbWlub3ItPmtkZXYsICZkZXZpY2VfYXR0cnNbaV0pOwotCWRldmljZV91bnJlZ2lzdGVyKCZtaW5vci0+a2Rldik7Ci1lcnJfb3V0OgotCi0JcmV0dXJuIGVycjsKLX0KLQotLyoqCi0gKiBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZSAtIHJlbW92ZSBEUk0gZGV2aWNlCi0gKiBAZGV2OiBEUk0gZGV2aWNlIHRvIHJlbW92ZQotICoKLSAqIFRoaXMgY2FsbCB1bnJlZ2lzdGVycyBhbmQgY2xlYW5zIHVwIGEgY2xhc3MgZGV2aWNlIHRoYXQgd2FzIGNyZWF0ZWQgd2l0aCBhCi0gKiBjYWxsIHRvIGRybV9zeXNmc19kZXZpY2VfYWRkKCkKLSAqLwotdm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKLXsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldmljZV9hdHRycyk7IGkrKykKLQkJZGV2aWNlX3JlbW92ZV9maWxlKCZtaW5vci0+a2RldiwgJmRldmljZV9hdHRyc1tpXSk7Ci0JZGV2aWNlX3VucmVnaXN0ZXIoJm1pbm9yLT5rZGV2KTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuYyBiL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcnYuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZThmM2Q2OC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmMKKysrIC9kZXYvbnVsbApAQCAtMSw2MDQgKzAsMCBAQAotLyogaTkxNV9kcnYuYyAtLSBpODMwLGk4NDUsaTg1NSxpODY1LGk5MTUgZHJpdmVyIC0qLSBsaW51eC1jIC0qLQotICovCi0vKgotICoKLSAqIENvcHlyaWdodCAyMDAzIFR1bmdzdGVuIEdyYXBoaWNzLCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLSAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSAqIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KLSAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwotICogdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCi0gKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucwotICogb2YgdGhlIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCi0gKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi0gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULgotICogSU4gTk8gRVZFTlQgU0hBTEwgVFVOR1NURU4gR1JBUEhJQ1MgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUgotICogQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsCi0gKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQotICogU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICovCi0KLSNpbmNsdWRlICJkcm1QLmgiCi0jaW5jbHVkZSAiZHJtLmgiCi0jaW5jbHVkZSAiaTkxNV9kcm0uaCIKLSNpbmNsdWRlICJpOTE1X2Rydi5oIgotCi0jaW5jbHVkZSAiZHJtX3BjaWlkcy5oIgotCi1zdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpaWRsaXN0W10gPSB7Ci0JaTkxNV9QQ0lfSURTCi19OwotCi1lbnVtIHBpcGUgewotICAgIFBJUEVfQSA9IDAsCi0gICAgUElQRV9CLAotfTsKLQotc3RhdGljIGJvb2wgaTkxNV9waXBlX2VuYWJsZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQotCWlmIChwaXBlID09IFBJUEVfQSkKLQkJcmV0dXJuIChJOTE1X1JFQUQoRFBMTF9BKSAmIERQTExfVkNPX0VOQUJMRSk7Ci0JZWxzZQotCQlyZXR1cm4gKEk5MTVfUkVBRChEUExMX0IpICYgRFBMTF9WQ09fRU5BQkxFKTsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV9zYXZlX3BhbGV0dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25nIHJlZyA9IChwaXBlID09IFBJUEVfQSA/IFBBTEVUVEVfQSA6IFBBTEVUVEVfQik7Ci0JdTMyICphcnJheTsKLQlpbnQgaTsKLQotCWlmICghaTkxNV9waXBlX2VuYWJsZWQoZGV2LCBwaXBlKSkKLQkJcmV0dXJuOwotCi0JaWYgKHBpcGUgPT0gUElQRV9BKQotCQlhcnJheSA9IGRldl9wcml2LT5zYXZlX3BhbGV0dGVfYTsKLQllbHNlCi0JCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9iOwotCi0JZm9yKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0JCWFycmF5W2ldID0gSTkxNV9SRUFEKHJlZyArIChpIDw8IDIpKTsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV9yZXN0b3JlX3BhbGV0dGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBsb25nIHJlZyA9IChwaXBlID09IFBJUEVfQSA/IFBBTEVUVEVfQSA6IFBBTEVUVEVfQik7Ci0JdTMyICphcnJheTsKLQlpbnQgaTsKLQotCWlmICghaTkxNV9waXBlX2VuYWJsZWQoZGV2LCBwaXBlKSkKLQkJcmV0dXJuOwotCi0JaWYgKHBpcGUgPT0gUElQRV9BKQotCQlhcnJheSA9IGRldl9wcml2LT5zYXZlX3BhbGV0dGVfYTsKLQllbHNlCi0JCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9iOwotCi0JZm9yKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0JCUk5MTVfV1JJVEUocmVnICsgKGkgPDwgMiksIGFycmF5W2ldKTsKLX0KLQotc3RhdGljIHU4IGk5MTVfcmVhZF9pbmRleGVkKHUxNiBpbmRleF9wb3J0LCB1MTYgZGF0YV9wb3J0LCB1OCByZWcpCi17Ci0Jb3V0YihyZWcsIGluZGV4X3BvcnQpOwotCXJldHVybiBpbmIoZGF0YV9wb3J0KTsKLX0KLQotc3RhdGljIHU4IGk5MTVfcmVhZF9hcih1MTYgc3QwMSwgdTggcmVnLCB1MTYgcGFsZXR0ZV9lbmFibGUpCi17Ci0JaW5iKHN0MDEpOwotCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7Ci0JcmV0dXJuIGluYihWR0FfQVJfREFUQV9SRUFEKTsKLX0KLQotc3RhdGljIHZvaWQgaTkxNV93cml0ZV9hcih1OCBzdDAxLCB1OCByZWcsIHU4IHZhbCwgdTE2IHBhbGV0dGVfZW5hYmxlKQotewotCWluYihzdDAxKTsKLQlvdXRiKHBhbGV0dGVfZW5hYmxlIHwgcmVnLCBWR0FfQVJfSU5ERVgpOwotCW91dGIodmFsLCBWR0FfQVJfREFUQV9XUklURSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfd3JpdGVfaW5kZXhlZCh1MTYgaW5kZXhfcG9ydCwgdTE2IGRhdGFfcG9ydCwgdTggcmVnLCB1OCB2YWwpCi17Ci0Jb3V0YihyZWcsIGluZGV4X3BvcnQpOwotCW91dGIodmFsLCBkYXRhX3BvcnQpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3NhdmVfdmdhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQl1MTYgY3JfaW5kZXgsIGNyX2RhdGEsIHN0MDE7Ci0KLQkvKiBWR0EgY29sb3IgcGFsZXR0ZSByZWdpc3RlcnMgKi8KLQlkZXZfcHJpdi0+c2F2ZURBQ01BU0sgPSBpbmIoVkdBX0RBQ01BU0spOwotCS8qIERBQ0NSWCBhdXRvbWF0aWNhbGx5IGluY3JlbWVudHMgZHVyaW5nIHJlYWQgKi8KLQlvdXRiKDAsIFZHQV9EQUNSWCk7Ci0JLyogUmVhZCAzIGJ5dGVzIG9mIGNvbG9yIGRhdGEgZnJvbSBlYWNoIGluZGV4ICovCi0JZm9yIChpID0gMDsgaSA8IDI1NiAqIDM7IGkrKykKLQkJZGV2X3ByaXYtPnNhdmVEQUNEQVRBW2ldID0gaW5iKFZHQV9EQUNEQVRBKTsKLQotCS8qIE1TUiBiaXRzICovCi0JZGV2X3ByaXYtPnNhdmVNU1IgPSBpbmIoVkdBX01TUl9SRUFEKTsKLQlpZiAoZGV2X3ByaXYtPnNhdmVNU1IgJiBWR0FfTVNSX0NHQV9NT0RFKSB7Ci0JCWNyX2luZGV4ID0gVkdBX0NSX0lOREVYX0NHQTsKLQkJY3JfZGF0YSA9IFZHQV9DUl9EQVRBX0NHQTsKLQkJc3QwMSA9IFZHQV9TVDAxX0NHQTsKLQl9IGVsc2UgewotCQljcl9pbmRleCA9IFZHQV9DUl9JTkRFWF9NREE7Ci0JCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9NREE7Ci0JCXN0MDEgPSBWR0FfU1QwMV9NREE7Ci0JfQotCi0JLyogQ1JUIGNvbnRyb2xsZXIgcmVncyAqLwotCWk5MTVfd3JpdGVfaW5kZXhlZChjcl9pbmRleCwgY3JfZGF0YSwgMHgxMSwKLQkJCSAgIGk5MTVfcmVhZF9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCAweDExKSAmCi0JCQkgICAofjB4ODApKTsKLQlmb3IgKGkgPSAwOyBpIDw9IDB4MjQ7IGkrKykKLQkJZGV2X3ByaXYtPnNhdmVDUltpXSA9Ci0JCQlpOTE1X3JlYWRfaW5kZXhlZChjcl9pbmRleCwgY3JfZGF0YSwgaSk7Ci0JLyogTWFrZSBzdXJlIHdlIGRvbid0IHR1cm4gb2ZmIENSIGdyb3VwIDAgd3JpdGVzICovCi0JZGV2X3ByaXYtPnNhdmVDUlsweDExXSAmPSB+MHg4MDsKLQotCS8qIEF0dHJpYnV0ZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwotCWluYihzdDAxKTsKLQlkZXZfcHJpdi0+c2F2ZUFSX0lOREVYID0gaW5iKFZHQV9BUl9JTkRFWCk7Ci0JZm9yIChpID0gMDsgaSA8PSAweDE0OyBpKyspCi0JCWRldl9wcml2LT5zYXZlQVJbaV0gPSBpOTE1X3JlYWRfYXIoc3QwMSwgaSwgMCk7Ci0JaW5iKHN0MDEpOwotCW91dGIoZGV2X3ByaXYtPnNhdmVBUl9JTkRFWCwgVkdBX0FSX0lOREVYKTsKLQlpbmIoc3QwMSk7Ci0KLQkvKiBHcmFwaGljcyBjb250cm9sbGVyIHJlZ2lzdGVycyAqLwotCWZvciAoaSA9IDA7IGkgPCA5OyBpKyspCi0JCWRldl9wcml2LT5zYXZlR1JbaV0gPQotCQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgaSk7Ci0KLQlkZXZfcHJpdi0+c2F2ZUdSWzB4MTBdID0KLQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMCk7Ci0JZGV2X3ByaXYtPnNhdmVHUlsweDExXSA9Ci0JCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTEpOwotCWRldl9wcml2LT5zYXZlR1JbMHgxOF0gPQotCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDE4KTsKLQotCS8qIFNlcXVlbmNlciByZWdpc3RlcnMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQotCQlkZXZfcHJpdi0+c2F2ZVNSW2ldID0KLQkJCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9TUl9JTkRFWCwgVkdBX1NSX0RBVEEsIGkpOwotfQotCi1zdGF0aWMgdm9pZCBpOTE1X3Jlc3RvcmVfdmdhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQl1MTYgY3JfaW5kZXgsIGNyX2RhdGEsIHN0MDE7Ci0KLQkvKiBNU1IgYml0cyAqLwotCW91dGIoZGV2X3ByaXYtPnNhdmVNU1IsIFZHQV9NU1JfV1JJVEUpOwotCWlmIChkZXZfcHJpdi0+c2F2ZU1TUiAmIFZHQV9NU1JfQ0dBX01PREUpIHsKLQkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOwotCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfQ0dBOwotCQlzdDAxID0gVkdBX1NUMDFfQ0dBOwotCX0gZWxzZSB7Ci0JCWNyX2luZGV4ID0gVkdBX0NSX0lOREVYX01EQTsKLQkJY3JfZGF0YSA9IFZHQV9DUl9EQVRBX01EQTsKLQkJc3QwMSA9IFZHQV9TVDAxX01EQTsKLQl9Ci0KLQkvKiBTZXF1ZW5jZXIgcmVnaXN0ZXJzLCBkb24ndCB3cml0ZSBTUjA3ICovCi0JZm9yIChpID0gMDsgaSA8IDc7IGkrKykKLQkJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9TUl9JTkRFWCwgVkdBX1NSX0RBVEEsIGksCi0JCQkJICAgZGV2X3ByaXYtPnNhdmVTUltpXSk7Ci0KLQkvKiBDUlQgY29udHJvbGxlciByZWdzICovCi0JLyogRW5hYmxlIENSIGdyb3VwIDAgd3JpdGVzICovCi0JaTkxNV93cml0ZV9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCAweDExLCBkZXZfcHJpdi0+c2F2ZUNSWzB4MTFdKTsKLQlmb3IgKGkgPSAwOyBpIDw9IDB4MjQ7IGkrKykKLQkJaTkxNV93cml0ZV9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCBpLCBkZXZfcHJpdi0+c2F2ZUNSW2ldKTsKLQotCS8qIEdyYXBoaWNzIGNvbnRyb2xsZXIgcmVncyAqLwotCWZvciAoaSA9IDA7IGkgPCA5OyBpKyspCi0JCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCBpLAotCQkJCSAgIGRldl9wcml2LT5zYXZlR1JbaV0pOwotCi0JaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTAsCi0JCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MTBdKTsKLQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMSwKLQkJCSAgIGRldl9wcml2LT5zYXZlR1JbMHgxMV0pOwotCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDE4LAotCQkJICAgZGV2X3ByaXYtPnNhdmVHUlsweDE4XSk7Ci0KLQkvKiBBdHRyaWJ1dGUgY29udHJvbGxlciByZWdpc3RlcnMgKi8KLQlpbmIoc3QwMSk7Ci0JZm9yIChpID0gMDsgaSA8PSAweDE0OyBpKyspCi0JCWk5MTVfd3JpdGVfYXIoc3QwMSwgaSwgZGV2X3ByaXYtPnNhdmVBUltpXSwgMCk7Ci0JaW5iKHN0MDEpOyAvKiBzd2l0Y2ggYmFjayB0byBpbmRleCBtb2RlICovCi0Jb3V0YihkZXZfcHJpdi0+c2F2ZUFSX0lOREVYIHwgMHgyMCwgVkdBX0FSX0lOREVYKTsKLQlpbmIoc3QwMSk7Ci0KLQkvKiBWR0EgY29sb3IgcGFsZXR0ZSByZWdpc3RlcnMgKi8KLQlvdXRiKGRldl9wcml2LT5zYXZlREFDTUFTSywgVkdBX0RBQ01BU0spOwotCS8qIERBQ0NSWCBhdXRvbWF0aWNhbGx5IGluY3JlbWVudHMgZHVyaW5nIHJlYWQgKi8KLQlvdXRiKDAsIFZHQV9EQUNXWCk7Ci0JLyogUmVhZCAzIGJ5dGVzIG9mIGNvbG9yIGRhdGEgZnJvbSBlYWNoIGluZGV4ICovCi0JZm9yIChpID0gMDsgaSA8IDI1NiAqIDM7IGkrKykKLQkJb3V0YihkZXZfcHJpdi0+c2F2ZURBQ0RBVEFbaV0sIFZHQV9EQUNEQVRBKTsKLQotfQotCi1zdGF0aWMgaW50IGk5MTVfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQotCWlmICghZGV2IHx8ICFkZXZfcHJpdikgewotCQlwcmludGsoS0VSTl9FUlIgImRldjogJXAsIGRldl9wcml2OiAlcFxuIiwgZGV2LCBkZXZfcHJpdik7Ci0JCXByaW50ayhLRVJOX0VSUiAiRFJNIG5vdCBpbml0aWFsaXplZCwgYWJvcnRpbmcgc3VzcGVuZC5cbiIpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQlpZiAoc3RhdGUuZXZlbnQgPT0gUE1fRVZFTlRfUFJFVEhBVykKLQkJcmV0dXJuIDA7Ci0KLQlwY2lfc2F2ZV9zdGF0ZShkZXYtPnBkZXYpOwotCXBjaV9yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldiwgTEJCLCAmZGV2X3ByaXYtPnNhdmVMQkIpOwotCi0JLyogRGlzcGxheSBhcmJpdHJhdGlvbiBjb250cm9sICovCi0JZGV2X3ByaXYtPnNhdmVEU1BBUkIgPSBJOTE1X1JFQUQoRFNQQVJCKTsKLQotCS8qIFBpcGUgJiBwbGFuZSBBIGluZm8gKi8KLQlkZXZfcHJpdi0+c2F2ZVBJUEVBQ09ORiA9IEk5MTVfUkVBRChQSVBFQUNPTkYpOwotCWRldl9wcml2LT5zYXZlUElQRUFTUkMgPSBJOTE1X1JFQUQoUElQRUFTUkMpOwotCWRldl9wcml2LT5zYXZlRlBBMCA9IEk5MTVfUkVBRChGUEEwKTsKLQlkZXZfcHJpdi0+c2F2ZUZQQTEgPSBJOTE1X1JFQUQoRlBBMSk7Ci0JZGV2X3ByaXYtPnNhdmVEUExMX0EgPSBJOTE1X1JFQUQoRFBMTF9BKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkKLQkJZGV2X3ByaXYtPnNhdmVEUExMX0FfTUQgPSBJOTE1X1JFQUQoRFBMTF9BX01EKTsKLQlkZXZfcHJpdi0+c2F2ZUhUT1RBTF9BID0gSTkxNV9SRUFEKEhUT1RBTF9BKTsKLQlkZXZfcHJpdi0+c2F2ZUhCTEFOS19BID0gSTkxNV9SRUFEKEhCTEFOS19BKTsKLQlkZXZfcHJpdi0+c2F2ZUhTWU5DX0EgPSBJOTE1X1JFQUQoSFNZTkNfQSk7Ci0JZGV2X3ByaXYtPnNhdmVWVE9UQUxfQSA9IEk5MTVfUkVBRChWVE9UQUxfQSk7Ci0JZGV2X3ByaXYtPnNhdmVWQkxBTktfQSA9IEk5MTVfUkVBRChWQkxBTktfQSk7Ci0JZGV2X3ByaXYtPnNhdmVWU1lOQ19BID0gSTkxNV9SRUFEKFZTWU5DX0EpOwotCWRldl9wcml2LT5zYXZlQkNMUlBBVF9BID0gSTkxNV9SRUFEKEJDTFJQQVRfQSk7Ci0KLQlkZXZfcHJpdi0+c2F2ZURTUEFDTlRSID0gSTkxNV9SRUFEKERTUEFDTlRSKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEFTVFJJREUgPSBJOTE1X1JFQUQoRFNQQVNUUklERSk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BBU0laRSA9IEk5MTVfUkVBRChEU1BBU0laRSk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BBUE9TID0gSTkxNV9SRUFEKERTUEFQT1MpOwotCWRldl9wcml2LT5zYXZlRFNQQUJBU0UgPSBJOTE1X1JFQUQoRFNQQUJBU0UpOwotCWlmIChJU19JOTY1RyhkZXYpKSB7Ci0JCWRldl9wcml2LT5zYXZlRFNQQVNVUkYgPSBJOTE1X1JFQUQoRFNQQVNVUkYpOwotCQlkZXZfcHJpdi0+c2F2ZURTUEFUSUxFT0ZGID0gSTkxNV9SRUFEKERTUEFUSUxFT0ZGKTsKLQl9Ci0JaTkxNV9zYXZlX3BhbGV0dGUoZGV2LCBQSVBFX0EpOwotCWRldl9wcml2LT5zYXZlUElQRUFTVEFUID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUFTVEFUKTsKLQotCS8qIFBpcGUgJiBwbGFuZSBCIGluZm8gKi8KLQlkZXZfcHJpdi0+c2F2ZVBJUEVCQ09ORiA9IEk5MTVfUkVBRChQSVBFQkNPTkYpOwotCWRldl9wcml2LT5zYXZlUElQRUJTUkMgPSBJOTE1X1JFQUQoUElQRUJTUkMpOwotCWRldl9wcml2LT5zYXZlRlBCMCA9IEk5MTVfUkVBRChGUEIwKTsKLQlkZXZfcHJpdi0+c2F2ZUZQQjEgPSBJOTE1X1JFQUQoRlBCMSk7Ci0JZGV2X3ByaXYtPnNhdmVEUExMX0IgPSBJOTE1X1JFQUQoRFBMTF9CKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkKLQkJZGV2X3ByaXYtPnNhdmVEUExMX0JfTUQgPSBJOTE1X1JFQUQoRFBMTF9CX01EKTsKLQlkZXZfcHJpdi0+c2F2ZUhUT1RBTF9CID0gSTkxNV9SRUFEKEhUT1RBTF9CKTsKLQlkZXZfcHJpdi0+c2F2ZUhCTEFOS19CID0gSTkxNV9SRUFEKEhCTEFOS19CKTsKLQlkZXZfcHJpdi0+c2F2ZUhTWU5DX0IgPSBJOTE1X1JFQUQoSFNZTkNfQik7Ci0JZGV2X3ByaXYtPnNhdmVWVE9UQUxfQiA9IEk5MTVfUkVBRChWVE9UQUxfQik7Ci0JZGV2X3ByaXYtPnNhdmVWQkxBTktfQiA9IEk5MTVfUkVBRChWQkxBTktfQik7Ci0JZGV2X3ByaXYtPnNhdmVWU1lOQ19CID0gSTkxNV9SRUFEKFZTWU5DX0IpOwotCWRldl9wcml2LT5zYXZlQkNMUlBBVF9BID0gSTkxNV9SRUFEKEJDTFJQQVRfQSk7Ci0KLQlkZXZfcHJpdi0+c2F2ZURTUEJDTlRSID0gSTkxNV9SRUFEKERTUEJDTlRSKTsKLQlkZXZfcHJpdi0+c2F2ZURTUEJTVFJJREUgPSBJOTE1X1JFQUQoRFNQQlNUUklERSk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BCU0laRSA9IEk5MTVfUkVBRChEU1BCU0laRSk7Ci0JZGV2X3ByaXYtPnNhdmVEU1BCUE9TID0gSTkxNV9SRUFEKERTUEJQT1MpOwotCWRldl9wcml2LT5zYXZlRFNQQkJBU0UgPSBJOTE1X1JFQUQoRFNQQkJBU0UpOwotCWlmIChJU19JOTY1R00oZGV2KSB8fCBJU19JR0RfR00oZGV2KSkgewotCQlkZXZfcHJpdi0+c2F2ZURTUEJTVVJGID0gSTkxNV9SRUFEKERTUEJTVVJGKTsKLQkJZGV2X3ByaXYtPnNhdmVEU1BCVElMRU9GRiA9IEk5MTVfUkVBRChEU1BCVElMRU9GRik7Ci0JfQotCWk5MTVfc2F2ZV9wYWxldHRlKGRldiwgUElQRV9CKTsKLQlkZXZfcHJpdi0+c2F2ZVBJUEVCU1RBVCA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVCU1RBVCk7Ci0KLQkvKiBDUlQgc3RhdGUgKi8KLQlkZXZfcHJpdi0+c2F2ZUFEUEEgPSBJOTE1X1JFQUQoQURQQSk7Ci0KLQkvKiBMVkRTIHN0YXRlICovCi0JZGV2X3ByaXYtPnNhdmVQUF9DT05UUk9MID0gSTkxNV9SRUFEKFBQX0NPTlRST0wpOwotCWRldl9wcml2LT5zYXZlUEZJVF9QR01fUkFUSU9TID0gSTkxNV9SRUFEKFBGSVRfUEdNX1JBVElPUyk7Ci0JZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTCA9IEk5MTVfUkVBRChCTENfUFdNX0NUTCk7Ci0JaWYgKElTX0k5NjVHKGRldikpCi0JCWRldl9wcml2LT5zYXZlQkxDX1BXTV9DVEwyID0gSTkxNV9SRUFEKEJMQ19QV01fQ1RMMik7Ci0JaWYgKElTX01PQklMRShkZXYpICYmICFJU19JODMwKGRldikpCi0JCWRldl9wcml2LT5zYXZlTFZEUyA9IEk5MTVfUkVBRChMVkRTKTsKLQlpZiAoIUlTX0k4MzAoZGV2KSAmJiAhSVNfODQ1RyhkZXYpKQotCQlkZXZfcHJpdi0+c2F2ZVBGSVRfQ09OVFJPTCA9IEk5MTVfUkVBRChQRklUX0NPTlRST0wpOwotCWRldl9wcml2LT5zYXZlTFZEU1BQX09OID0gSTkxNV9SRUFEKExWRFNQUF9PTik7Ci0JZGV2X3ByaXYtPnNhdmVMVkRTUFBfT0ZGID0gSTkxNV9SRUFEKExWRFNQUF9PRkYpOwotCWRldl9wcml2LT5zYXZlUFBfQ1lDTEUgPSBJOTE1X1JFQUQoUFBfQ1lDTEUpOwotCi0JLyogRklYTUU6IHNhdmUgVFYgJiBTRFZPIHN0YXRlICovCi0KLQkvKiBGQkMgc3RhdGUgKi8KLQlkZXZfcHJpdi0+c2F2ZUZCQ19DRkJfQkFTRSA9IEk5MTVfUkVBRChGQkNfQ0ZCX0JBU0UpOwotCWRldl9wcml2LT5zYXZlRkJDX0xMX0JBU0UgPSBJOTE1X1JFQUQoRkJDX0xMX0JBU0UpOwotCWRldl9wcml2LT5zYXZlRkJDX0NPTlRST0wyID0gSTkxNV9SRUFEKEZCQ19DT05UUk9MMik7Ci0JZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTCA9IEk5MTVfUkVBRChGQkNfQ09OVFJPTCk7Ci0KLQkvKiBJbnRlcnJ1cHQgc3RhdGUgKi8KLQlkZXZfcHJpdi0+c2F2ZUlJUiA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKLQlkZXZfcHJpdi0+c2F2ZUlFUiA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9FTkFCTEVfUik7Ci0JZGV2X3ByaXYtPnNhdmVJTVIgPSBJOTE1X1JFQUQoSTkxNVJFR19JTlRfTUFTS19SKTsKLQotCS8qIFZHQSBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlVkNMS19ESVZJU09SX1ZHQTAgPSBJOTE1X1JFQUQoVkNMS19ESVZJU09SX1ZHQTApOwotCWRldl9wcml2LT5zYXZlVkNMS19ESVZJU09SX1ZHQTEgPSBJOTE1X1JFQUQoVkNMS19ESVZJU09SX1ZHQTEpOwotCWRldl9wcml2LT5zYXZlVkNMS19QT1NUX0RJViA9IEk5MTVfUkVBRChWQ0xLX1BPU1RfRElWKTsKLQlkZXZfcHJpdi0+c2F2ZVZHQUNOVFJMID0gSTkxNV9SRUFEKFZHQUNOVFJMKTsKLQotCS8qIENsb2NrIGdhdGluZyBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlRF9TVEFURSA9IEk5MTVfUkVBRChEX1NUQVRFKTsKLQlkZXZfcHJpdi0+c2F2ZURTUENMS19HQVRFX0QgPSBJOTE1X1JFQUQoRFNQQ0xLX0dBVEVfRCk7Ci0KLQkvKiBDYWNoZSBtb2RlIHN0YXRlICovCi0JZGV2X3ByaXYtPnNhdmVDQUNIRV9NT0RFXzAgPSBJOTE1X1JFQUQoQ0FDSEVfTU9ERV8wKTsKLQotCS8qIE1lbW9yeSBBcmJpdHJhdGlvbiBzdGF0ZSAqLwotCWRldl9wcml2LT5zYXZlTUlfQVJCX1NUQVRFID0gSTkxNV9SRUFEKE1JX0FSQl9TVEFURSk7Ci0KLQkvKiBTY3JhdGNoIHNwYWNlICovCi0JZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKLQkJZGV2X3ByaXYtPnNhdmVTV0YwW2ldID0gSTkxNV9SRUFEKFNXRjAgKyAoaSA8PCAyKSk7Ci0JCWRldl9wcml2LT5zYXZlU1dGMVtpXSA9IEk5MTVfUkVBRChTV0YxMCArIChpIDw8IDIpKTsKLQl9Ci0JZm9yIChpID0gMDsgaSA8IDM7IGkrKykKLQkJZGV2X3ByaXYtPnNhdmVTV0YyW2ldID0gSTkxNV9SRUFEKFNXRjMwICsgKGkgPDwgMikpOwotCi0JaTkxNV9zYXZlX3ZnYShkZXYpOwotCi0JaWYgKHN0YXRlLmV2ZW50ID09IFBNX0VWRU5UX1NVU1BFTkQpIHsKLQkJLyogU2h1dCBkb3duIHRoZSBkZXZpY2UgKi8KLQkJcGNpX2Rpc2FibGVfZGV2aWNlKGRldi0+cGRldik7Ci0JCXBjaV9zZXRfcG93ZXJfc3RhdGUoZGV2LT5wZGV2LCBQQ0lfRDNob3QpOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGk5MTVfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQotCXBjaV9zZXRfcG93ZXJfc3RhdGUoZGV2LT5wZGV2LCBQQ0lfRDApOwotCXBjaV9yZXN0b3JlX3N0YXRlKGRldi0+cGRldik7Ci0JaWYgKHBjaV9lbmFibGVfZGV2aWNlKGRldi0+cGRldikpCi0JCXJldHVybiAtMTsKLQotCXBjaV93cml0ZV9jb25maWdfYnl0ZShkZXYtPnBkZXYsIExCQiwgZGV2X3ByaXYtPnNhdmVMQkIpOwotCi0JSTkxNV9XUklURShEU1BBUkIsIGRldl9wcml2LT5zYXZlRFNQQVJCKTsKLQotCS8qIFBpcGUgJiBwbGFuZSBBIGluZm8gKi8KLQkvKiBQcmltZSB0aGUgY2xvY2sgKi8KLQlpZiAoZGV2X3ByaXYtPnNhdmVEUExMX0EgJiBEUExMX1ZDT19FTkFCTEUpIHsKLQkJSTkxNV9XUklURShEUExMX0EsIGRldl9wcml2LT5zYXZlRFBMTF9BICYKLQkJCSAgIH5EUExMX1ZDT19FTkFCTEUpOwotCQl1ZGVsYXkoMTUwKTsKLQl9Ci0JSTkxNV9XUklURShGUEEwLCBkZXZfcHJpdi0+c2F2ZUZQQTApOwotCUk5MTVfV1JJVEUoRlBBMSwgZGV2X3ByaXYtPnNhdmVGUEExKTsKLQkvKiBBY3R1YWxseSBlbmFibGUgaXQgKi8KLQlJOTE1X1dSSVRFKERQTExfQSwgZGV2X3ByaXYtPnNhdmVEUExMX0EpOwotCXVkZWxheSgxNTApOwotCWlmIChJU19JOTY1RyhkZXYpKQotCQlJOTE1X1dSSVRFKERQTExfQV9NRCwgZGV2X3ByaXYtPnNhdmVEUExMX0FfTUQpOwotCXVkZWxheSgxNTApOwotCi0JLyogUmVzdG9yZSBtb2RlICovCi0JSTkxNV9XUklURShIVE9UQUxfQSwgZGV2X3ByaXYtPnNhdmVIVE9UQUxfQSk7Ci0JSTkxNV9XUklURShIQkxBTktfQSwgZGV2X3ByaXYtPnNhdmVIQkxBTktfQSk7Ci0JSTkxNV9XUklURShIU1lOQ19BLCBkZXZfcHJpdi0+c2F2ZUhTWU5DX0EpOwotCUk5MTVfV1JJVEUoVlRPVEFMX0EsIGRldl9wcml2LT5zYXZlVlRPVEFMX0EpOwotCUk5MTVfV1JJVEUoVkJMQU5LX0EsIGRldl9wcml2LT5zYXZlVkJMQU5LX0EpOwotCUk5MTVfV1JJVEUoVlNZTkNfQSwgZGV2X3ByaXYtPnNhdmVWU1lOQ19BKTsKLQlJOTE1X1dSSVRFKEJDTFJQQVRfQSwgZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EpOwotCi0JLyogUmVzdG9yZSBwbGFuZSBpbmZvICovCi0JSTkxNV9XUklURShEU1BBU0laRSwgZGV2X3ByaXYtPnNhdmVEU1BBU0laRSk7Ci0JSTkxNV9XUklURShEU1BBUE9TLCBkZXZfcHJpdi0+c2F2ZURTUEFQT1MpOwotCUk5MTVfV1JJVEUoUElQRUFTUkMsIGRldl9wcml2LT5zYXZlUElQRUFTUkMpOwotCUk5MTVfV1JJVEUoRFNQQUJBU0UsIGRldl9wcml2LT5zYXZlRFNQQUJBU0UpOwotCUk5MTVfV1JJVEUoRFNQQVNUUklERSwgZGV2X3ByaXYtPnNhdmVEU1BBU1RSSURFKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkgewotCQlJOTE1X1dSSVRFKERTUEFTVVJGLCBkZXZfcHJpdi0+c2F2ZURTUEFTVVJGKTsKLQkJSTkxNV9XUklURShEU1BBVElMRU9GRiwgZGV2X3ByaXYtPnNhdmVEU1BBVElMRU9GRik7Ci0JfQotCi0JSTkxNV9XUklURShQSVBFQUNPTkYsIGRldl9wcml2LT5zYXZlUElQRUFDT05GKTsKLQotCWk5MTVfcmVzdG9yZV9wYWxldHRlKGRldiwgUElQRV9BKTsKLQkvKiBFbmFibGUgdGhlIHBsYW5lICovCi0JSTkxNV9XUklURShEU1BBQ05UUiwgZGV2X3ByaXYtPnNhdmVEU1BBQ05UUik7Ci0JSTkxNV9XUklURShEU1BBQkFTRSwgSTkxNV9SRUFEKERTUEFCQVNFKSk7Ci0KLQkvKiBQaXBlICYgcGxhbmUgQiBpbmZvICovCi0JaWYgKGRldl9wcml2LT5zYXZlRFBMTF9CICYgRFBMTF9WQ09fRU5BQkxFKSB7Ci0JCUk5MTVfV1JJVEUoRFBMTF9CLCBkZXZfcHJpdi0+c2F2ZURQTExfQiAmCi0JCQkgICB+RFBMTF9WQ09fRU5BQkxFKTsKLQkJdWRlbGF5KDE1MCk7Ci0JfQotCUk5MTVfV1JJVEUoRlBCMCwgZGV2X3ByaXYtPnNhdmVGUEIwKTsKLQlJOTE1X1dSSVRFKEZQQjEsIGRldl9wcml2LT5zYXZlRlBCMSk7Ci0JLyogQWN0dWFsbHkgZW5hYmxlIGl0ICovCi0JSTkxNV9XUklURShEUExMX0IsIGRldl9wcml2LT5zYXZlRFBMTF9CKTsKLQl1ZGVsYXkoMTUwKTsKLQlpZiAoSVNfSTk2NUcoZGV2KSkKLQkJSTkxNV9XUklURShEUExMX0JfTUQsIGRldl9wcml2LT5zYXZlRFBMTF9CX01EKTsKLQl1ZGVsYXkoMTUwKTsKLQotCS8qIFJlc3RvcmUgbW9kZSAqLwotCUk5MTVfV1JJVEUoSFRPVEFMX0IsIGRldl9wcml2LT5zYXZlSFRPVEFMX0IpOwotCUk5MTVfV1JJVEUoSEJMQU5LX0IsIGRldl9wcml2LT5zYXZlSEJMQU5LX0IpOwotCUk5MTVfV1JJVEUoSFNZTkNfQiwgZGV2X3ByaXYtPnNhdmVIU1lOQ19CKTsKLQlJOTE1X1dSSVRFKFZUT1RBTF9CLCBkZXZfcHJpdi0+c2F2ZVZUT1RBTF9CKTsKLQlJOTE1X1dSSVRFKFZCTEFOS19CLCBkZXZfcHJpdi0+c2F2ZVZCTEFOS19CKTsKLQlJOTE1X1dSSVRFKFZTWU5DX0IsIGRldl9wcml2LT5zYXZlVlNZTkNfQik7Ci0JSTkxNV9XUklURShCQ0xSUEFUX0IsIGRldl9wcml2LT5zYXZlQkNMUlBBVF9CKTsKLQotCS8qIFJlc3RvcmUgcGxhbmUgaW5mbyAqLwotCUk5MTVfV1JJVEUoRFNQQlNJWkUsIGRldl9wcml2LT5zYXZlRFNQQlNJWkUpOwotCUk5MTVfV1JJVEUoRFNQQlBPUywgZGV2X3ByaXYtPnNhdmVEU1BCUE9TKTsKLQlJOTE1X1dSSVRFKFBJUEVCU1JDLCBkZXZfcHJpdi0+c2F2ZVBJUEVCU1JDKTsKLQlJOTE1X1dSSVRFKERTUEJCQVNFLCBkZXZfcHJpdi0+c2F2ZURTUEJCQVNFKTsKLQlJOTE1X1dSSVRFKERTUEJTVFJJREUsIGRldl9wcml2LT5zYXZlRFNQQlNUUklERSk7Ci0JaWYgKElTX0k5NjVHKGRldikpIHsKLQkJSTkxNV9XUklURShEU1BCU1VSRiwgZGV2X3ByaXYtPnNhdmVEU1BCU1VSRik7Ci0JCUk5MTVfV1JJVEUoRFNQQlRJTEVPRkYsIGRldl9wcml2LT5zYXZlRFNQQlRJTEVPRkYpOwotCX0KLQotCUk5MTVfV1JJVEUoUElQRUJDT05GLCBkZXZfcHJpdi0+c2F2ZVBJUEVCQ09ORik7Ci0KLQlpOTE1X3Jlc3RvcmVfcGFsZXR0ZShkZXYsIFBJUEVfQik7Ci0JLyogRW5hYmxlIHRoZSBwbGFuZSAqLwotCUk5MTVfV1JJVEUoRFNQQkNOVFIsIGRldl9wcml2LT5zYXZlRFNQQkNOVFIpOwotCUk5MTVfV1JJVEUoRFNQQkJBU0UsIEk5MTVfUkVBRChEU1BCQkFTRSkpOwotCi0JLyogQ1JUIHN0YXRlICovCi0JSTkxNV9XUklURShBRFBBLCBkZXZfcHJpdi0+c2F2ZUFEUEEpOwotCi0JLyogTFZEUyBzdGF0ZSAqLwotCWlmIChJU19JOTY1RyhkZXYpKQotCQlJOTE1X1dSSVRFKEJMQ19QV01fQ1RMMiwgZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTDIpOwotCWlmIChJU19NT0JJTEUoZGV2KSAmJiAhSVNfSTgzMChkZXYpKQotCQlJOTE1X1dSSVRFKExWRFMsIGRldl9wcml2LT5zYXZlTFZEUyk7Ci0JaWYgKCFJU19JODMwKGRldikgJiYgIUlTXzg0NUcoZGV2KSkKLQkJSTkxNV9XUklURShQRklUX0NPTlRST0wsIGRldl9wcml2LT5zYXZlUEZJVF9DT05UUk9MKTsKLQotCUk5MTVfV1JJVEUoUEZJVF9QR01fUkFUSU9TLCBkZXZfcHJpdi0+c2F2ZVBGSVRfUEdNX1JBVElPUyk7Ci0JSTkxNV9XUklURShCTENfUFdNX0NUTCwgZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTCk7Ci0JSTkxNV9XUklURShMVkRTUFBfT04sIGRldl9wcml2LT5zYXZlTFZEU1BQX09OKTsKLQlJOTE1X1dSSVRFKExWRFNQUF9PRkYsIGRldl9wcml2LT5zYXZlTFZEU1BQX09GRik7Ci0JSTkxNV9XUklURShQUF9DWUNMRSwgZGV2X3ByaXYtPnNhdmVQUF9DWUNMRSk7Ci0JSTkxNV9XUklURShQUF9DT05UUk9MLCBkZXZfcHJpdi0+c2F2ZVBQX0NPTlRST0wpOwotCi0JLyogRklYTUU6IHJlc3RvcmUgVFYgJiBTRFZPIHN0YXRlICovCi0KLQkvKiBGQkMgaW5mbyAqLwotCUk5MTVfV1JJVEUoRkJDX0NGQl9CQVNFLCBkZXZfcHJpdi0+c2F2ZUZCQ19DRkJfQkFTRSk7Ci0JSTkxNV9XUklURShGQkNfTExfQkFTRSwgZGV2X3ByaXYtPnNhdmVGQkNfTExfQkFTRSk7Ci0JSTkxNV9XUklURShGQkNfQ09OVFJPTDIsIGRldl9wcml2LT5zYXZlRkJDX0NPTlRST0wyKTsKLQlJOTE1X1dSSVRFKEZCQ19DT05UUk9MLCBkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MKTsKLQotCS8qIFZHQSBzdGF0ZSAqLwotCUk5MTVfV1JJVEUoVkdBQ05UUkwsIGRldl9wcml2LT5zYXZlVkdBQ05UUkwpOwotCUk5MTVfV1JJVEUoVkNMS19ESVZJU09SX1ZHQTAsIGRldl9wcml2LT5zYXZlVkNMS19ESVZJU09SX1ZHQTApOwotCUk5MTVfV1JJVEUoVkNMS19ESVZJU09SX1ZHQTEsIGRldl9wcml2LT5zYXZlVkNMS19ESVZJU09SX1ZHQTEpOwotCUk5MTVfV1JJVEUoVkNMS19QT1NUX0RJViwgZGV2X3ByaXYtPnNhdmVWQ0xLX1BPU1RfRElWKTsKLQl1ZGVsYXkoMTUwKTsKLQotCS8qIENsb2NrIGdhdGluZyBzdGF0ZSAqLwotCUk5MTVfV1JJVEUgKERfU1RBVEUsIGRldl9wcml2LT5zYXZlRF9TVEFURSk7Ci0JSTkxNV9XUklURSAoRFNQQ0xLX0dBVEVfRCwgZGV2X3ByaXYtPnNhdmVEU1BDTEtfR0FURV9EKTsKLQotCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KLQlJOTE1X1dSSVRFIChDQUNIRV9NT0RFXzAsIGRldl9wcml2LT5zYXZlQ0FDSEVfTU9ERV8wIHwgMHhmZmZmMDAwMCk7Ci0KLQkvKiBNZW1vcnkgYXJiaXRyYXRpb24gc3RhdGUgKi8KLQlJOTE1X1dSSVRFIChNSV9BUkJfU1RBVEUsIGRldl9wcml2LT5zYXZlTUlfQVJCX1NUQVRFIHwgMHhmZmZmMDAwMCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgewotCQlJOTE1X1dSSVRFKFNXRjAgKyAoaSA8PCAyKSwgZGV2X3ByaXYtPnNhdmVTV0YwW2ldKTsKLQkJSTkxNV9XUklURShTV0YxMCArIChpIDw8IDIpLCBkZXZfcHJpdi0+c2F2ZVNXRjFbaSs3XSk7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspCi0JCUk5MTVfV1JJVEUoU1dGMzAgKyAoaSA8PCAyKSwgZGV2X3ByaXYtPnNhdmVTV0YyW2ldKTsKLQotCWk5MTVfcmVzdG9yZV92Z2EoZGV2KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewotCS8qIGRvbid0IHVzZSBtdHJyJ3MgaGVyZSwgdGhlIFhzZXJ2ZXIgb3IgdXNlciBzcGFjZSBhcHAgc2hvdWxkCi0JICogZGVhbCB3aXRoIHRoZW0gZm9yIGludGVsIGhhcmR3YXJlLgotCSAqLwotCS5kcml2ZXJfZmVhdHVyZXMgPQotCSAgICBEUklWRVJfVVNFX0FHUCB8IERSSVZFUl9SRVFVSVJFX0FHUCB8IC8qIERSSVZFUl9VU0VfTVRSUiB8Ki8KLQkgICAgRFJJVkVSX0hBVkVfSVJRIHwgRFJJVkVSX0lSUV9TSEFSRUQgfCBEUklWRVJfSVJRX1ZCTCB8Ci0JICAgIERSSVZFUl9JUlFfVkJMMiwKLQkubG9hZCA9IGk5MTVfZHJpdmVyX2xvYWQsCi0JLnVubG9hZCA9IGk5MTVfZHJpdmVyX3VubG9hZCwKLQkubGFzdGNsb3NlID0gaTkxNV9kcml2ZXJfbGFzdGNsb3NlLAotCS5wcmVjbG9zZSA9IGk5MTVfZHJpdmVyX3ByZWNsb3NlLAotCS5zdXNwZW5kID0gaTkxNV9zdXNwZW5kLAotCS5yZXN1bWUgPSBpOTE1X3Jlc3VtZSwKLQkuZGV2aWNlX2lzX2FncCA9IGk5MTVfZHJpdmVyX2RldmljZV9pc19hZ3AsCi0JLnZibGFua193YWl0ID0gaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQsCi0JLnZibGFua193YWl0MiA9IGk5MTVfZHJpdmVyX3ZibGFua193YWl0MiwKLQkuaXJxX3ByZWluc3RhbGwgPSBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbCwKLQkuaXJxX3Bvc3RpbnN0YWxsID0gaTkxNV9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsLAotCS5pcnFfdW5pbnN0YWxsID0gaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbCwKLQkuaXJxX2hhbmRsZXIgPSBpOTE1X2RyaXZlcl9pcnFfaGFuZGxlciwKLQkucmVjbGFpbV9idWZmZXJzID0gZHJtX2NvcmVfcmVjbGFpbV9idWZmZXJzLAotCS5nZXRfbWFwX29mcyA9IGRybV9jb3JlX2dldF9tYXBfb2ZzLAotCS5nZXRfcmVnX29mcyA9IGRybV9jb3JlX2dldF9yZWdfb2ZzLAotCS5pb2N0bHMgPSBpOTE1X2lvY3RscywKLQkuZm9wcyA9IHsKLQkJIC5vd25lciA9IFRISVNfTU9EVUxFLAotCQkgLm9wZW4gPSBkcm1fb3BlbiwKLQkJIC5yZWxlYXNlID0gZHJtX3JlbGVhc2UsCi0JCSAuaW9jdGwgPSBkcm1faW9jdGwsCi0JCSAubW1hcCA9IGRybV9tbWFwLAotCQkgLnBvbGwgPSBkcm1fcG9sbCwKLQkJIC5mYXN5bmMgPSBkcm1fZmFzeW5jLAotI2lmZGVmIENPTkZJR19DT01QQVQKLQkJIC5jb21wYXRfaW9jdGwgPSBpOTE1X2NvbXBhdF9pb2N0bCwKLSNlbmRpZgotCX0sCi0KLQkucGNpX2RyaXZlciA9IHsKLQkJIC5uYW1lID0gRFJJVkVSX05BTUUsCi0JCSAuaWRfdGFibGUgPSBwY2lpZGxpc3QsCi0JfSwKLQotCS5uYW1lID0gRFJJVkVSX05BTUUsCi0JLmRlc2MgPSBEUklWRVJfREVTQywKLQkuZGF0ZSA9IERSSVZFUl9EQVRFLAotCS5tYWpvciA9IERSSVZFUl9NQUpPUiwKLQkubWlub3IgPSBEUklWRVJfTUlOT1IsCi0JLnBhdGNobGV2ZWwgPSBEUklWRVJfUEFUQ0hMRVZFTCwKLX07Ci0KLXN0YXRpYyBpbnQgX19pbml0IGk5MTVfaW5pdCh2b2lkKQotewotCWRyaXZlci5udW1faW9jdGxzID0gaTkxNV9tYXhfaW9jdGw7Ci0JcmV0dXJuIGRybV9pbml0KCZkcml2ZXIpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgaTkxNV9leGl0KHZvaWQpCi17Ci0JZHJtX2V4aXQoJmRyaXZlcik7Ci19Ci0KLW1vZHVsZV9pbml0KGk5MTVfaW5pdCk7Ci1tb2R1bGVfZXhpdChpOTE1X2V4aXQpOwotCi1NT0RVTEVfQVVUSE9SKERSSVZFUl9BVVRIT1IpOwotTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwgYW5kIGFkZGl0aW9uYWwgcmlnaHRzIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmggYi9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZHJ2LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiMjBmN2MuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2Rydi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTEzNSArMCwwIEBACi0vKiBpOTE1X2Rydi5oIC0tIFByaXZhdGUgaGVhZGVyIGZvciB0aGUgSTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCi0gKi8KLS8qCi0gKgotICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKLSAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0gKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBfSTkxNV9EUlZfSF8KLSNkZWZpbmUgX0k5MTVfRFJWX0hfCi0KLS8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKLSAqLwotCi0jZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJUdW5nc3RlbiBHcmFwaGljcywgSW5jLiIKLQotI2RlZmluZSBEUklWRVJfTkFNRQkJImk5MTUiCi0jZGVmaW5lIERSSVZFUl9ERVNDCQkiSW50ZWwgR3JhcGhpY3MiCi0jZGVmaW5lIERSSVZFUl9EQVRFCQkiMjAwNjAxMTkiCi0KLS8qIEludGVyZmFjZSBoaXN0b3J5OgotICoKLSAqIDEuMTogT3JpZ2luYWwuCi0gKiAxLjI6IEFkZCBQb3dlciBNYW5hZ2VtZW50Ci0gKiAxLjM6IEFkZCB2Ymxhbmsgc3VwcG9ydAotICogMS40OiBGaXggY21kYnVmZmVyIHBhdGgsIGFkZCBoZWFwIGRlc3Ryb3kKLSAqIDEuNTogQWRkIHZibGFuayBwaXBlIGNvbmZpZ3VyYXRpb24KLSAqIDEuNjogLSBOZXcgaW9jdGwgZm9yIHNjaGVkdWxpbmcgYnVmZmVyIHN3YXBzIG9uIHZlcnRpY2FsIGJsYW5rCi0gKiAgICAgIC0gU3VwcG9ydCB2ZXJ0aWNhbCBibGFuayBvbiBzZWNvbmRhcnkgZGlzcGxheSBwaXBlCi0gKi8KLSNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCi0jZGVmaW5lIERSSVZFUl9NSU5PUgkJNgotI2RlZmluZSBEUklWRVJfUEFUQ0hMRVZFTAkwCi0KLXR5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9yaW5nX2J1ZmZlciB7Ci0JaW50IHRhaWxfbWFzazsKLQl1bnNpZ25lZCBsb25nIFN0YXJ0OwotCXVuc2lnbmVkIGxvbmcgRW5kOwotCXVuc2lnbmVkIGxvbmcgU2l6ZTsKLQl1OCAqdmlydHVhbF9zdGFydDsKLQlpbnQgaGVhZDsKLQlpbnQgdGFpbDsKLQlpbnQgc3BhY2U7Ci0JZHJtX2xvY2FsX21hcF90IG1hcDsKLX0gZHJtX2k5MTVfcmluZ19idWZmZXJfdDsKLQotc3RydWN0IG1lbV9ibG9jayB7Ci0Jc3RydWN0IG1lbV9ibG9jayAqbmV4dDsKLQlzdHJ1Y3QgbWVtX2Jsb2NrICpwcmV2OwotCWludCBzdGFydDsKLQlpbnQgc2l6ZTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgLyogTlVMTDogZnJlZSwgLTE6IGhlYXAsIG90aGVyOiByZWFsIGZpbGVzICovCi19OwotCi10eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfdmJsX3N3YXAgewotCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKLQlkcm1fZHJhd2FibGVfdCBkcndfaWQ7Ci0JdW5zaWduZWQgaW50IHBpcGU7Ci0JdW5zaWduZWQgaW50IHNlcXVlbmNlOwotfSBkcm1faTkxNV92Ymxfc3dhcF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKLQlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOwotCWRybV9sb2NhbF9tYXBfdCAqbW1pb19tYXA7Ci0KLQlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2OwotCWRybV9pOTE1X3JpbmdfYnVmZmVyX3QgcmluZzsKLQotCWRybV9kbWFfaGFuZGxlX3QgKnN0YXR1c19wYWdlX2RtYWg7Ci0Jdm9pZCAqaHdfc3RhdHVzX3BhZ2U7Ci0JZG1hX2FkZHJfdCBkbWFfc3RhdHVzX3BhZ2U7Ci0JdW5zaWduZWQgbG9uZyBjb3VudGVyOwotCXVuc2lnbmVkIGludCBzdGF0dXNfZ2Z4X2FkZHI7Ci0JZHJtX2xvY2FsX21hcF90IGh3c19tYXA7Ci0KLQl1bnNpZ25lZCBpbnQgY3BwOwotCWludCBiYWNrX29mZnNldDsKLQlpbnQgZnJvbnRfb2Zmc2V0OwotCWludCBjdXJyZW50X3BhZ2U7Ci0JaW50IHBhZ2VfZmxpcHBpbmc7Ci0JaW50IHVzZV9taV9iYXRjaGJ1ZmZlcl9zdGFydDsKLQotCXdhaXRfcXVldWVfaGVhZF90IGlycV9xdWV1ZTsKLQlhdG9taWNfdCBpcnFfcmVjZWl2ZWQ7Ci0JYXRvbWljX3QgaXJxX2VtaXR0ZWQ7Ci0KLQlpbnQgdGV4X2xydV9sb2dfZ3JhbnVsYXJpdHk7Ci0JaW50IGFsbG93X2JhdGNoYnVmZmVyOwotCXN0cnVjdCBtZW1fYmxvY2sgKmFncF9oZWFwOwotCXVuc2lnbmVkIGludCBzcjAxLCBhZHBhLCBwcGNyLCBkdm9iLCBkdm9jLCBsdmRzOwotCWludCB2YmxhbmtfcGlwZTsKLQotCXNwaW5sb2NrX3Qgc3dhcHNfbG9jazsKLQlkcm1faTkxNV92Ymxfc3dhcF90IHZibF9zd2FwczsKLQl1bnNpZ25lZCBpbnQgc3dhcHNfcGVuZGluZzsKLQotCS8qIFJlZ2lzdGVyIHN0YXRlICovCi0JdTggc2F2ZUxCQjsKLQl1MzIgc2F2ZURTUEFDTlRSOwotCXUzMiBzYXZlRFNQQkNOVFI7Ci0JdTMyIHNhdmVEU1BBUkI7Ci0JdTMyIHNhdmVQSVBFQUNPTkY7Ci0JdTMyIHNhdmVQSVBFQkNPTkY7Ci0JdTMyIHNhdmVQSVBFQVNSQzsKLQl1MzIgc2F2ZVBJUEVCU1JDOwotCXUzMiBzYXZlRlBBMDsKLQl1MzIgc2F2ZUZQQTE7Ci0JdTMyIHNhdmVEUExMX0E7Ci0JdTMyIHNhdmVEUExMX0FfTUQ7Ci0JdTMyIHNhdmVIVE9UQUxfQTsKLQl1MzIgc2F2ZUhCTEFOS19BOwotCXUzMiBzYXZlSFNZTkNfQTsKLQl1MzIgc2F2ZVZUT1RBTF9BOwotCXUzMiBzYXZlVkJMQU5LX0E7Ci0JdTMyIHNhdmVWU1lOQ19BOwotCXUzMiBzYXZlQkNMUlBBVF9BOwotCXUzMiBzYXZlUElQRUFTVEFUOwotCXUzMiBzYXZlRFNQQVNUUklERTsKLQl1MzIgc2F2ZURTUEFTSVpFOwotCXUzMiBzYXZlRFNQQVBPUzsKLQl1MzIgc2F2ZURTUEFCQVNFOwotCXUzMiBzYXZlRFNQQVNVUkY7Ci0JdTMyIHNhdmVEU1BBVElMRU9GRjsKLQl1MzIgc2F2ZVBGSVRfUEdNX1JBVElPUzsKLQl1MzIgc2F2ZUJMQ19QV01fQ1RMOwotCXUzMiBzYXZlQkxDX1BXTV9DVEwyOwotCXUzMiBzYXZlRlBCMDsKLQl1MzIgc2F2ZUZQQjE7Ci0JdTMyIHNhdmVEUExMX0I7Ci0JdTMyIHNhdmVEUExMX0JfTUQ7Ci0JdTMyIHNhdmVIVE9UQUxfQjsKLQl1MzIgc2F2ZUhCTEFOS19COwotCXUzMiBzYXZlSFNZTkNfQjsKLQl1MzIgc2F2ZVZUT1RBTF9COwotCXUzMiBzYXZlVkJMQU5LX0I7Ci0JdTMyIHNhdmVWU1lOQ19COwotCXUzMiBzYXZlQkNMUlBBVF9COwotCXUzMiBzYXZlUElQRUJTVEFUOwotCXUzMiBzYXZlRFNQQlNUUklERTsKLQl1MzIgc2F2ZURTUEJTSVpFOwotCXUzMiBzYXZlRFNQQlBPUzsKLQl1MzIgc2F2ZURTUEJCQVNFOwotCXUzMiBzYXZlRFNQQlNVUkY7Ci0JdTMyIHNhdmVEU1BCVElMRU9GRjsKLQl1MzIgc2F2ZVZDTEtfRElWSVNPUl9WR0EwOwotCXUzMiBzYXZlVkNMS19ESVZJU09SX1ZHQTE7Ci0JdTMyIHNhdmVWQ0xLX1BPU1RfRElWOwotCXUzMiBzYXZlVkdBQ05UUkw7Ci0JdTMyIHNhdmVBRFBBOwotCXUzMiBzYXZlTFZEUzsKLQl1MzIgc2F2ZUxWRFNQUF9PTjsKLQl1MzIgc2F2ZUxWRFNQUF9PRkY7Ci0JdTMyIHNhdmVEVk9BOwotCXUzMiBzYXZlRFZPQjsKLQl1MzIgc2F2ZURWT0M7Ci0JdTMyIHNhdmVQUF9PTjsKLQl1MzIgc2F2ZVBQX09GRjsKLQl1MzIgc2F2ZVBQX0NPTlRST0w7Ci0JdTMyIHNhdmVQUF9DWUNMRTsKLQl1MzIgc2F2ZVBGSVRfQ09OVFJPTDsKLQl1MzIgc2F2ZV9wYWxldHRlX2FbMjU2XTsKLQl1MzIgc2F2ZV9wYWxldHRlX2JbMjU2XTsKLQl1MzIgc2F2ZUZCQ19DRkJfQkFTRTsKLQl1MzIgc2F2ZUZCQ19MTF9CQVNFOwotCXUzMiBzYXZlRkJDX0NPTlRST0w7Ci0JdTMyIHNhdmVGQkNfQ09OVFJPTDI7Ci0JdTMyIHNhdmVJRVI7Ci0JdTMyIHNhdmVJSVI7Ci0JdTMyIHNhdmVJTVI7Ci0JdTMyIHNhdmVDQUNIRV9NT0RFXzA7Ci0JdTMyIHNhdmVEX1NUQVRFOwotCXUzMiBzYXZlRFNQQ0xLX0dBVEVfRDsKLQl1MzIgc2F2ZU1JX0FSQl9TVEFURTsKLQl1MzIgc2F2ZVNXRjBbMTZdOwotCXUzMiBzYXZlU1dGMVsxNl07Ci0JdTMyIHNhdmVTV0YyWzNdOwotCXU4IHNhdmVNU1I7Ci0JdTggc2F2ZVNSWzhdOwotCXU4IHNhdmVHUlsyNV07Ci0JdTggc2F2ZUFSX0lOREVYOwotCXU4IHNhdmVBUlsyMV07Ci0JdTggc2F2ZURBQ01BU0s7Ci0JdTggc2F2ZURBQ0RBVEFbMjU2KjNdOyAvKiAyNTYgMy1ieXRlIGNvbG9ycyAqLwotCXU4IHNhdmVDUlszN107Ci19IGRybV9pOTE1X3ByaXZhdGVfdDsKLQotZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdOwotZXh0ZXJuIGludCBpOTE1X21heF9pb2N0bDsKLQotCQkJCS8qIGk5MTVfZG1hLmMgKi8KLWV4dGVybiB2b2lkIGk5MTVfa2VybmVsX2xvc3RfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci1leHRlcm4gaW50IGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKLWV4dGVybiB2b2lkIGk5MTVfZHJpdmVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfZHJpdmVyX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIGxvbmcgaTkxNV9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7Ci0KLS8qIGk5MTVfaXJxLmMgKi8KLWV4dGVybiBpbnQgaTkxNV9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgaTkxNV9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotZXh0ZXJuIGludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKLWV4dGVybiBpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOwotZXh0ZXJuIGlycXJldHVybl90IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUyk7Ci1leHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7Ci1leHRlcm4gaW50IGk5MTVfdmJsYW5rX3BpcGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBpOTE1X3ZibGFua19waXBlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgaTkxNV92Ymxhbmtfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotLyogaTkxNV9tZW0uYyAqLwotZXh0ZXJuIGludCBpOTE1X21lbV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfbWVtX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IGk5MTVfbWVtX2luaXRfaGVhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCBpOTE1X21lbV9kZXN0cm95X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIHZvaWQgaTkxNV9tZW1fdGFrZWRvd24oc3RydWN0IG1lbV9ibG9jayAqKmhlYXApOwotZXh0ZXJuIHZvaWQgaTkxNV9tZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKLQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBtZW1fYmxvY2sgKmhlYXApOwotCi0jZGVmaW5lIEk5MTVfUkVBRChyZWcpICAgICAgICAgIERSTV9SRUFEMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSkKLSNkZWZpbmUgSTkxNV9XUklURShyZWcsdmFsKSAgICAgRFJNX1dSSVRFMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCi0jZGVmaW5lIEk5MTVfUkVBRDE2KHJlZykJRFJNX1JFQUQxNihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpKQotI2RlZmluZSBJOTE1X1dSSVRFMTYocmVnLHZhbCkJRFJNX1dSSVRFMTYoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCi0KLSNkZWZpbmUgSTkxNV9WRVJCT1NFIDAKLQotI2RlZmluZSBSSU5HX0xPQ0FMUwl1bnNpZ25lZCBpbnQgb3V0cmluZywgcmluZ21hc2ssIG91dGNvdW50OyBcCi0gICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBjaGFyICp2aXJ0OwotCi0jZGVmaW5lIEJFR0lOX0xQX1JJTkcobikgZG8gewkJCQlcCi0JaWYgKEk5MTVfVkVSQk9TRSkJCQkJXAotCQlEUk1fREVCVUcoIkJFR0lOX0xQX1JJTkcoJWQpXG4iLCAobikpOwlcCi0JaWYgKGRldl9wcml2LT5yaW5nLnNwYWNlIDwgKG4pKjQpCQlcCi0JCWk5MTVfd2FpdF9yaW5nKGRldiwgKG4pKjQsIF9fZnVuY19fKTsJCVwKLQlvdXRjb3VudCA9IDA7CQkJCQlcCi0Jb3V0cmluZyA9IGRldl9wcml2LT5yaW5nLnRhaWw7CQkJXAotCXJpbmdtYXNrID0gZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrOwkJXAotCXZpcnQgPSBkZXZfcHJpdi0+cmluZy52aXJ0dWFsX3N0YXJ0OwkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBPVVRfUklORyhuKSBkbyB7CQkJCQlcCi0JaWYgKEk5MTVfVkVSQk9TRSkgRFJNX0RFQlVHKCIgICBPVVRfUklORyAleFxuIiwgKGludCkobikpOwlcCi0JKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikodmlydCArIG91dHJpbmcpID0gKG4pOwlcCi0gICAgICAgIG91dGNvdW50Kys7CQkJCQkJXAotCW91dHJpbmcgKz0gNDsJCQkJCQlcCi0Jb3V0cmluZyAmPSByaW5nbWFzazsJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgQURWQU5DRV9MUF9SSU5HKCkgZG8gewkJCQkJCVwKLQlpZiAoSTkxNV9WRVJCT1NFKSBEUk1fREVCVUcoIkFEVkFOQ0VfTFBfUklORyAleFxuIiwgb3V0cmluZyk7CVwKLQlkZXZfcHJpdi0+cmluZy50YWlsID0gb3V0cmluZzsJCQkJCVwKLQlkZXZfcHJpdi0+cmluZy5zcGFjZSAtPSBvdXRjb3VudCAqIDQ7CQkJCVwKLQlJOTE1X1dSSVRFKExQX1JJTkcgKyBSSU5HX1RBSUwsIG91dHJpbmcpOwkJCVwKLX0gd2hpbGUoMCkKLQotZXh0ZXJuIGludCBpOTE1X3dhaXRfcmluZyhzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IG4sIGNvbnN0IGNoYXIgKmNhbGxlcik7Ci0KLS8qIEV4dGVuZGVkIGNvbmZpZyBzcGFjZSAqLwotI2RlZmluZSBMQkIgMHhmNAotCi0vKiBWR0Egc3R1ZmYgKi8KLQotI2RlZmluZSBWR0FfU1QwMV9NREEgMHgzYmEKLSNkZWZpbmUgVkdBX1NUMDFfQ0dBIDB4M2RhCi0KLSNkZWZpbmUgVkdBX01TUl9XUklURSAweDNjMgotI2RlZmluZSBWR0FfTVNSX1JFQUQgMHgzY2MKLSNkZWZpbmUgICBWR0FfTVNSX01FTV9FTiAoMTw8MSkKLSNkZWZpbmUgICBWR0FfTVNSX0NHQV9NT0RFICgxPDwwKQotCi0jZGVmaW5lIFZHQV9TUl9JTkRFWCAweDNjNAotI2RlZmluZSBWR0FfU1JfREFUQSAweDNjNQotCi0jZGVmaW5lIFZHQV9BUl9JTkRFWCAweDNjMAotI2RlZmluZSAgIFZHQV9BUl9WSURfRU4gKDE8PDUpCi0jZGVmaW5lIFZHQV9BUl9EQVRBX1dSSVRFIDB4M2MwCi0jZGVmaW5lIFZHQV9BUl9EQVRBX1JFQUQgMHgzYzEKLQotI2RlZmluZSBWR0FfR1JfSU5ERVggMHgzY2UKLSNkZWZpbmUgVkdBX0dSX0RBVEEgMHgzY2YKLS8qIEdSMDUgKi8KLSNkZWZpbmUgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9TSElGVCAzCi0jZGVmaW5lICAgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9QTEFORSAxCi0vKiBHUjA2ICovCi0jZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX01BU0sgMHhjCi0jZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX1NISUZUIDIKLSNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0FGRkZGIDAKLSNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0JGRkZGIDEKLSNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0I3RkZGIDIKLSNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0JGRkZGIDMKLQotI2RlZmluZSBWR0FfREFDTUFTSyAweDNjNgotI2RlZmluZSBWR0FfREFDUlggMHgzYzcKLSNkZWZpbmUgVkdBX0RBQ1dYIDB4M2M4Ci0jZGVmaW5lIFZHQV9EQUNEQVRBIDB4M2M5Ci0KLSNkZWZpbmUgVkdBX0NSX0lOREVYX01EQSAweDNiNAotI2RlZmluZSBWR0FfQ1JfREFUQV9NREEgMHgzYjUKLSNkZWZpbmUgVkdBX0NSX0lOREVYX0NHQSAweDNkNAotI2RlZmluZSBWR0FfQ1JfREFUQV9DR0EgMHgzZDUKLQotI2RlZmluZSBHRlhfT1BfVVNFUl9JTlRFUlJVUFQJCSgoMDw8MjkpfCgyPDwyMykpCi0jZGVmaW5lIEdGWF9PUF9CUkVBS1BPSU5UX0lOVEVSUlVQVAkoKDA8PDI5KXwoMTw8MjMpKQotI2RlZmluZSBDTURfUkVQT1JUX0hFQUQJCQkoNzw8MjMpCi0jZGVmaW5lIENNRF9TVE9SRV9EV09SRF9JRFgJCSgoMHgyMTw8MjMpIHwgMHgxKQotI2RlZmluZSBDTURfT1BfQkFUQ0hfQlVGRkVSICAoKDB4MDw8MjkpfCgweDMwPDwyMyl8MHgxKQotCi0jZGVmaW5lIElOU1RfUEFSU0VSX0NMSUVOVCAgIDB4MDAwMDAwMDAKLSNkZWZpbmUgSU5TVF9PUF9GTFVTSCAgICAgICAgMHgwMjAwMDAwMAotI2RlZmluZSBJTlNUX0ZMVVNIX01BUF9DQUNIRSAweDAwMDAwMDAxCi0KLSNkZWZpbmUgQkIxX1NUQVJUX0FERFJfTUFTSyAgICh+MHg3KQotI2RlZmluZSBCQjFfUFJPVEVDVEVEICAgICAgICAgKDE8PDApCi0jZGVmaW5lIEJCMV9VTlBST1RFQ1RFRCAgICAgICAoMDw8MCkKLSNkZWZpbmUgQkIyX0VORF9BRERSX01BU0sgICAgICh+MHg3KQotCi0vKiBGcmFtZWJ1ZmZlciBjb21wcmVzc2lvbiAqLwotI2RlZmluZSBGQkNfQ0ZCX0JBU0UJCTB4MDMyMDAgLyogNGsgcGFnZSBhbGlnbmVkICovCi0jZGVmaW5lIEZCQ19MTF9CQVNFCQkweDAzMjA0IC8qIDRrIHBhZ2UgYWxpZ25lZCAqLwotI2RlZmluZSBGQkNfQ09OVFJPTAkJMHgwMzIwOAotI2RlZmluZSAgIEZCQ19DVExfRU4JCSgxPDwzMSkKLSNkZWZpbmUgICBGQkNfQ1RMX1BFUklPRElDCSgxPDwzMCkKLSNkZWZpbmUgICBGQkNfQ1RMX0lOVEVSVkFMX1NISUZUICgxNikKLSNkZWZpbmUgICBGQkNfQ1RMX1VOQ09NUFJFU1NJQkxFICgxPDwxNCkKLSNkZWZpbmUgICBGQkNfQ1RMX1NUUklERV9TSElGVAkoNSkKLSNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFTk8JKDE8PDApCi0jZGVmaW5lIEZCQ19DT01NQU5ECQkweDAzMjBjCi0jZGVmaW5lICAgRkJDX0NNRF9DT01QUkVTUwkoMTw8MCkKLSNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAotI2RlZmluZSAgIEZCQ19TVEFUX0NPTVBSRVNTSU5HCSgxPDwzMSkKLSNkZWZpbmUgICBGQkNfU1RBVF9DT01QUkVTU0VECSgxPDwzMCkKLSNkZWZpbmUgICBGQkNfU1RBVF9NT0RJRklFRAkoMTw8MjkpCi0jZGVmaW5lICAgRkJDX1NUQVRfQ1VSUkVOVF9MSU5FCSgxPDwwKQotI2RlZmluZSBGQkNfQ09OVFJPTDIJCTB4MDMyMTQKLSNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFX0RCTAkoMDw8NCkKLSNkZWZpbmUgICBGQkNfQ1RMX0lETEVfSU1NCSgwPDwyKQotI2RlZmluZSAgIEZCQ19DVExfSURMRV9GVUxMCSgxPDwyKQotI2RlZmluZSAgIEZCQ19DVExfSURMRV9MSU5FCSgyPDwyKQotI2RlZmluZSAgIEZCQ19DVExfSURMRV9ERUJVRwkoMzw8MikKLSNkZWZpbmUgICBGQkNfQ1RMX0NQVV9GRU5DRQkoMTw8MSkKLSNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQQkoMDw8MCkKLSNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQgkoMTw8MCkKLSNkZWZpbmUgRkJDX0ZFTkNFX09GRgkJMHgwMzIxYgotCi0jZGVmaW5lIEZCQ19MTF9TSVpFCQkoMTUzNikKLSNkZWZpbmUgRkJDX0xMX1BBRAkJKDMyKQotCi0vKiBJbnRlcnJ1cHQgYml0czoKLSAqLwotI2RlZmluZSBVU0VSX0lOVF9GTEFHICAgICgxPDwxKQotI2RlZmluZSBWU1lOQ19QSVBFQl9GTEFHICgxPDw1KQotI2RlZmluZSBWU1lOQ19QSVBFQV9GTEFHICgxPDw3KQotI2RlZmluZSBIV0JfT09NX0ZMQUcgICAgICgxPDwxMykgLyogYmlubmVyIG91dCBvZiBtZW1vcnkgKi8KLQotI2RlZmluZSBJOTE1UkVHX0hXU1RBTQkJMHgwMjA5OAotI2RlZmluZSBJOTE1UkVHX0lOVF9JREVOVElUWV9SCTB4MDIwYTQKLSNkZWZpbmUgSTkxNVJFR19JTlRfTUFTS19SCTB4MDIwYTgKLSNkZWZpbmUgSTkxNVJFR19JTlRfRU5BQkxFX1IJMHgwMjBhMAotCi0jZGVmaW5lIEk5MTVSRUdfUElQRUFTVEFUCTB4NzAwMjQKLSNkZWZpbmUgSTkxNVJFR19QSVBFQlNUQVQJMHg3MTAyNAotCi0jZGVmaW5lIEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEUJKDFVTDw8MTcpCi0jZGVmaW5lIEk5MTVfVkJMQU5LX0NMRUFSCQkoMVVMPDwxKQotCi0jZGVmaW5lIFNSWF9JTkRFWAkJMHgzYzQKLSNkZWZpbmUgU1JYX0RBVEEJCTB4M2M1Ci0jZGVmaW5lIFNSMDEJCQkxCi0jZGVmaW5lIFNSMDFfU0NSRUVOX09GRgkJKDE8PDUpCi0KLSNkZWZpbmUgUFBDUgkJCTB4NjEyMDQKLSNkZWZpbmUgUFBDUl9PTgkJCSgxPDwwKQotCi0jZGVmaW5lIERWT0IJCQkweDYxMTQwCi0jZGVmaW5lIERWT0JfT04JCQkoMTw8MzEpCi0jZGVmaW5lIERWT0MJCQkweDYxMTYwCi0jZGVmaW5lIERWT0NfT04JCQkoMTw8MzEpCi0jZGVmaW5lIExWRFMJCQkweDYxMTgwCi0jZGVmaW5lIExWRFNfT04JCQkoMTw8MzEpCi0KLSNkZWZpbmUgQURQQQkJCTB4NjExMDAKLSNkZWZpbmUgQURQQV9EUE1TX01BU0sJCSh+KDM8PDEwKSkKLSNkZWZpbmUgQURQQV9EUE1TX09OCQkoMDw8MTApCi0jZGVmaW5lIEFEUEFfRFBNU19TVVNQRU5ECSgxPDwxMCkKLSNkZWZpbmUgQURQQV9EUE1TX1NUQU5EQlkJKDI8PDEwKQotI2RlZmluZSBBRFBBX0RQTVNfT0ZGCQkoMzw8MTApCi0KLSNkZWZpbmUgTk9QSUQgICAgICAgICAgICAgICAgICAgMHgyMDk0Ci0jZGVmaW5lIExQX1JJTkcJCQkweDIwMzAKLSNkZWZpbmUgSFBfUklORwkJCTB4MjA0MAotLyogVGhlIGJpbm5lciBoYXMgaXRzIG93biByaW5nIGJ1ZmZlcjoKLSAqLwotI2RlZmluZSBIV0JfUklORwkJMHgyNDAwCi0KLSNkZWZpbmUgUklOR19UQUlMCQkweDAwCi0jZGVmaW5lIFRBSUxfQUREUgkJMHgwMDFGRkZGOAotI2RlZmluZSBSSU5HX0hFQUQJCTB4MDQKLSNkZWZpbmUgSEVBRF9XUkFQX0NPVU5UCQkweEZGRTAwMDAwCi0jZGVmaW5lIEhFQURfV1JBUF9PTkUJCTB4MDAyMDAwMDAKLSNkZWZpbmUgSEVBRF9BRERSCQkweDAwMUZGRkZDCi0jZGVmaW5lIFJJTkdfU1RBUlQJCTB4MDgKLSNkZWZpbmUgU1RBUlRfQUREUgkJMHgweEZGRkZGMDAwCi0jZGVmaW5lIFJJTkdfTEVOCQkweDBDCi0jZGVmaW5lIFJJTkdfTlJfUEFHRVMJCTB4MDAxRkYwMDAKLSNkZWZpbmUgUklOR19SRVBPUlRfTUFTSwkweDAwMDAwMDA2Ci0jZGVmaW5lIFJJTkdfUkVQT1JUXzY0SwkJMHgwMDAwMDAwMgotI2RlZmluZSBSSU5HX1JFUE9SVF8xMjhLCTB4MDAwMDAwMDQKLSNkZWZpbmUgUklOR19OT19SRVBPUlQJCTB4MDAwMDAwMDAKLSNkZWZpbmUgUklOR19WQUxJRF9NQVNLCQkweDAwMDAwMDAxCi0jZGVmaW5lIFJJTkdfVkFMSUQJCTB4MDAwMDAwMDEKLSNkZWZpbmUgUklOR19JTlZBTElECQkweDAwMDAwMDAwCi0KLS8qIEluc3RydWN0aW9uIHBhcnNlciBlcnJvciByZWc6Ci0gKi8KLSNkZWZpbmUgSVBFSVIJCQkweDIwODgKLQotLyogU2NyYXRjaCBwYWQgZGVidWcgMCByZWc6Ci0gKi8KLSNkZWZpbmUgU0NQRDAJCQkweDIwOWMKLQotLyogRXJyb3Igc3RhdHVzIHJlZzoKLSAqLwotI2RlZmluZSBFU1IJCQkweDIwYjgKLQotLyogU2Vjb25kYXJ5IERNQSBmZXRjaCBhZGRyZXNzIGRlYnVnIHJlZzoKLSAqLwotI2RlZmluZSBETUFfRkFERF9TCQkweDIwZDQKLQotLyogTWVtb3J5IEludGVyZmFjZSBBcmJpdHJhdGlvbiBTdGF0ZQotICovCi0jZGVmaW5lIE1JX0FSQl9TVEFURQkJMHgyMGU0Ci0KLS8qIENhY2hlIG1vZGUgMCByZWcuCi0gKiAgLSBNYW5pcHVsYXRpbmcgcmVuZGVyIGNhY2hlIGJlaGF2aW91ciBpcyBjZW50cmFsCi0gKiAgICB0byB0aGUgY29uY2VwdCBvZiB6b25lIHJlbmRlcmluZywgdHVuaW5nIHRoaXMgcmVnIGNhbiBoZWxwIGF2b2lkCi0gKiAgICB1bm5lY2Vzc2FyeSByZW5kZXIgY2FjaGUgcmVhZHMgYW5kIGV2ZW4gd3JpdGVzIChmb3Igei9zdGVuY2lsKQotICogICAgYXQgYmVnaW5uaW5nIGFuZCBlbmQgb2Ygc2NlbmUuCi0gKgotICogLSBUbyBjaGFuZ2UgYSBiaXQsIHdyaXRlIHRvIHRoaXMgcmVnIHdpdGggYSBtYXNrIGJpdCBzZXQgYW5kIHRoZQotICogYml0IG9mIGludGVyZXN0IGVpdGhlciBzZXQgb3IgY2xlYXJlZC4gIEVHOiAoQklUPDwxNikgfCBCSVQgdG8gc2V0LgotICovCi0jZGVmaW5lIENhY2hlX01vZGVfMAkJMHgyMTIwCi0jZGVmaW5lIENBQ0hFX01PREVfMAkJMHgyMTIwCi0jZGVmaW5lIENNMF9NQVNLX1NISUZUICAgICAgICAgIDE2Ci0jZGVmaW5lIENNMF9JWl9PUFRfRElTQUJMRSAgICAgICgxPDw2KQotI2RlZmluZSBDTTBfWlJfT1BUX0RJU0FCTEUgICAgICAoMTw8NSkKLSNkZWZpbmUgQ00wX0RFUFRIX0VWSUNUX0RJU0FCTEUgKDE8PDQpCi0jZGVmaW5lIENNMF9DT0xPUl9FVklDVF9ESVNBQkxFICgxPDwzKQotI2RlZmluZSBDTTBfREVQVEhfV1JJVEVfRElTQUJMRSAoMTw8MSkKLSNkZWZpbmUgQ00wX1JDX09QX0ZMVVNIX0RJU0FCTEUgKDE8PDApCi0KLQotLyogR3JhcGhpY3MgZmx1c2ggY29udHJvbC4gIEEgQ1BVIHdyaXRlIGZsdXNoZXMgdGhlIEdXQiBvZiBhbGwgd3JpdGVzLgotICogVGhlIGRhdGEgaXMgZGlzY2FyZGVkLgotICovCi0jZGVmaW5lIEdGWF9GTFNIX0NOVEwJCTB4MjE3MAotCi0vKiBCaW5uZXIgY29udHJvbC4gIERlZmluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBiaW4gcG9pbnRlciBsaXN0OgotICovCi0jZGVmaW5lIEJJTkNUTAkJCTB4MjQyMAotI2RlZmluZSBCQ19NQVNLCQkJKDEgPDwgOSkKLQotLyogQmlubmVkIHNjZW5lIGluZm8uCi0gKi8KLSNkZWZpbmUgQklOU0NFTkUJCTB4MjQyOAotI2RlZmluZSBCU19PUF9MT0FECQkoMSA8PCA4KQotI2RlZmluZSBCU19NQVNLCQkJKDEgPDwgMjIpCi0KLS8qIEJpbiBjb21tYW5kIHBhcnNlciBkZWJ1ZyByZWc6Ci0gKi8KLSNkZWZpbmUgQkNQRAkJCTB4MjQ4MAotCi0vKiBCaW4gbWVtb3J5IGNvbnRyb2wgZGVidWcgcmVnOgotICovCi0jZGVmaW5lIEJNQ0QJCQkweDI0ODQKLQotLyogQmluIGRhdGEgY2FjaGUgZGVidWcgcmVnOgotICovCi0jZGVmaW5lIEJEQ0QJCQkweDI0ODgKLQotLyogQmlubmVyIHBvaW50ZXIgY2FjaGUgZGVidWcgcmVnOgotICovCi0jZGVmaW5lIEJQQ0QJCQkweDI0OGMKLQotLyogQmlubmVyIHNjcmF0Y2ggcGFkIGRlYnVnIHJlZzoKLSAqLwotI2RlZmluZSBCSU5TS1BECQkJMHgyNGYwCi0KLS8qIEhXQiBzY3JhdGNoIHBhZCBkZWJ1ZyByZWc6Ci0gKi8KLSNkZWZpbmUgSFdCU0tQRAkJCTB4MjRmNAotCi0vKiBCaW5uZXIgbWVtb3J5IHBvb2wgcmVnOgotICovCi0jZGVmaW5lIEJNUF9CVUZGRVIJCTB4MjQzMAotI2RlZmluZSBCTVBfUEFHRV9TSVpFXzRLCSgwIDw8IDEwKQotI2RlZmluZSBCTVBfQlVGRkVSX1NJWkVfU0hJRlQJMQotI2RlZmluZSBCTVBfRU5BQkxFCQkoMSA8PCAwKQotCi0vKiBHZXQvcHV0IG1lbW9yeSBmcm9tIHRoZSBiaW5uZXIgbWVtb3J5IHBvb2w6Ci0gKi8KLSNkZWZpbmUgQk1QX0dFVAkJCTB4MjQzOAotI2RlZmluZSBCTVBfUFVUCQkJMHgyNDQwCi0jZGVmaW5lIEJNUF9PRkZTRVRfU0hJRlQJNQotCi0vKiAzRCBzdGF0ZSBwYWNrZXRzOgotICovCi0jZGVmaW5lIEdGWF9PUF9SQVNURVJfUlVMRVMgICAgKCgweDM8PDI5KXwoMHg3PDwyNCkpCi0KLSNkZWZpbmUgR0ZYX09QX1NDSVNTT1IgICAgICAgICAoKDB4Mzw8MjkpfCgweDFjPDwyNCl8KDB4MTA8PDE5KSkKLSNkZWZpbmUgU0NfVVBEQVRFX1NDSVNTT1IgICAgICAgKDB4MTw8MSkKLSNkZWZpbmUgU0NfRU5BQkxFX01BU0sgICAgICAgICAgKDB4MTw8MCkKLSNkZWZpbmUgU0NfRU5BQkxFICAgICAgICAgICAgICAgKDB4MTw8MCkKLQotI2RlZmluZSBHRlhfT1BfTE9BRF9JTkRJUkVDVCAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg3PDwxNikpCi0KLSNkZWZpbmUgR0ZYX09QX1NDSVNTT1JfSU5GTyAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwoMHgxKSkKLSNkZWZpbmUgU0NJX1lNSU5fTUFTSyAgICAgICgweGZmZmY8PDE2KQotI2RlZmluZSBTQ0lfWE1JTl9NQVNLICAgICAgKDB4ZmZmZjw8MCkKLSNkZWZpbmUgU0NJX1lNQVhfTUFTSyAgICAgICgweGZmZmY8PDE2KQotI2RlZmluZSBTQ0lfWE1BWF9NQVNLICAgICAgKDB4ZmZmZjw8MCkKLQotI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9FTkFCTEUJICgoMHgzPDwyOSl8KDB4MWM8PDI0KXwoMHgxMDw8MTkpKQotI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9SRUNUCSAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwxKQotI2RlZmluZSBHRlhfT1BfQ09MT1JfRkFDVE9SICAgICAgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDE8PDE2KXwweDApCi0jZGVmaW5lIEdGWF9PUF9TVElQUExFICAgICAgICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODM8PDE2KSkKLSNkZWZpbmUgR0ZYX09QX01BUF9JTkZPICAgICAgICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwweDQpCi0jZGVmaW5lIEdGWF9PUF9ERVNUQlVGRkVSX1ZBUlMgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODU8PDE2KXwweDApCi0jZGVmaW5lIEdGWF9PUF9EUkFXUkVDVF9JTkZPICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODA8PDE2KXwoMHgzKSkKLQotI2RlZmluZSBHRlhfT1BfRFJBV1JFQ1RfSU5GT19JOTY1ICgoMHg3OTAwPDwxNil8MHgyKQotCi0jZGVmaW5lIFNSQ19DT1BZX0JMVF9DTUQgICAgICAgICAgICAgICAgKCgyPDwyOSl8KDB4NDM8PDIyKXw0KQotI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpfDYpCi0jZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9BTFBIQQkoMTw8MjEpCi0jZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9SR0IJKDE8PDIwKQotI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfU1JDX1RJTEVECSgxPDwxNSkKLSNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRAkoMTw8MTEpCi0KLSNkZWZpbmUgTUlfQkFUQ0hfQlVGRkVSCQkoKDB4MzA8PDIzKXwxKQotI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQJKDB4MzE8PDIzKQotI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfRU5ECSgweEE8PDIzKQotI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFCSgxKQotI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFX0k5NjUgKDE8PDgpCi0KLSNkZWZpbmUgTUlfV0FJVF9GT1JfRVZFTlQgICAgICAgKCgweDM8PDIzKSkKLSNkZWZpbmUgTUlfV0FJVF9GT1JfUExBTkVfQl9GTElQICAgICAgKDE8PDYpCi0jZGVmaW5lIE1JX1dBSVRfRk9SX1BMQU5FX0FfRkxJUCAgICAgICgxPDwyKQotI2RlZmluZSBNSV9XQUlUX0ZPUl9QTEFORV9BX1NDQU5MSU5FUyAoMTw8MSkKLQotI2RlZmluZSBNSV9MT0FEX1NDQU5fTElORVNfSU5DTCAgKCgweDEyPDwyMykpCi0KLSNkZWZpbmUgQ01EX09QX0RJU1BMQVlCVUZGRVJfSU5GTyAoKDB4MDw8MjkpfCgweDE0PDwyMyl8MikKLSNkZWZpbmUgQVNZTkNfRkxJUCAgICAgICAgICAgICAgICAoMTw8MjIpCi0jZGVmaW5lIERJU1BMQVlfUExBTkVfQSAgICAgICAgICAgKDA8PDIwKQotI2RlZmluZSBESVNQTEFZX1BMQU5FX0IgICAgICAgICAgICgxPDwyMCkKLQotLyogRGlzcGxheSByZWdzICovCi0jZGVmaW5lIERTUEFDTlRSICAgICAgICAgICAgICAgIDB4NzAxODAKLSNkZWZpbmUgRFNQQkNOVFIgICAgICAgICAgICAgICAgMHg3MTE4MAotI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfTUFTSyAgICAgICAgICAgICAgICAgKDE8PDI0KQotCi0vKiBEZWZpbmUgdGhlIHJlZ2lvbiBvZiBpbnRlcmVzdCBmb3IgdGhlIGJpbm5lcjoKLSAqLwotI2RlZmluZSBDTURfT1BfQklOX0NPTlRST0wJICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4NDw8MTYpfDQpCi0KLSNkZWZpbmUgQ01EX09QX0RFU1RCVUZGRVJfSU5GTwkgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDhlPDwxNil8MSkKLQotI2RlZmluZSBDTURfTUlfRkxVU0ggICAgICAgICAoMHgwNCA8PCAyMykKLSNkZWZpbmUgTUlfTk9fV1JJVEVfRkxVU0ggICAgKDEgPDwgMikKLSNkZWZpbmUgTUlfUkVBRF9GTFVTSCAgICAgICAgKDEgPDwgMCkKLSNkZWZpbmUgTUlfRVhFX0ZMVVNIICAgICAgICAgKDEgPDwgMSkKLSNkZWZpbmUgTUlfRU5EX1NDRU5FICAgICAgICAgKDEgPDwgNCkgLyogZmx1c2ggYmlubmVyIGFuZCBpbmNyIHNjZW5lIGNvdW50ICovCi0jZGVmaW5lIE1JX1NDRU5FX0NPVU5UICAgICAgICgxIDw8IDMpIC8qIGp1c3QgaW5jcmVtZW50IHNjZW5lIGNvdW50ICovCi0KLSNkZWZpbmUgQlJFQURDUlVNQl9CSVRTIDMxCi0jZGVmaW5lIEJSRUFEQ1JVTUJfTUFTSyAoKDFVIDw8IEJSRUFEQ1JVTUJfQklUUykgLSAxKQotCi0jZGVmaW5lIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpWzVdKQotI2RlZmluZSBSRUFEX0hXU1AoZGV2X3ByaXYsIHJlZykgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpW3JlZ10pCi0KLSNkZWZpbmUgQkxDX1BXTV9DVEwJCTB4NjEyNTQKLSNkZWZpbmUgQkFDS0xJR0hUX01PRFVMQVRJT05fRlJFUV9TSElGVAkJKDE3KQotCi0jZGVmaW5lIEJMQ19QV01fQ1RMMgkJMHg2MTI1MAotLyoqCi0gKiBUaGlzIGlzIHRoZSBtb3N0IHNpZ25pZmljYW50IDE1IGJpdHMgb2YgdGhlIG51bWJlciBvZiBiYWNrbGlnaHQgY3ljbGVzIGluIGEKLSAqIGNvbXBsZXRlIGN5Y2xlIG9mIHRoZSBtb2R1bGF0ZWQgYmFja2xpZ2h0IGNvbnRyb2wuCi0gKgotICogVGhlIGFjdHVhbCB2YWx1ZSBpcyB0aGlzIGZpZWxkIG11bHRpcGxpZWQgYnkgdHdvLgotICovCi0jZGVmaW5lIEJBQ0tMSUdIVF9NT0RVTEFUSU9OX0ZSRVFfTUFTSwkJKDB4N2ZmZiA8PCAxNykKLSNkZWZpbmUgQkxNX0xFR0FDWV9NT0RFCQkJCSgxIDw8IDE2KQotLyoqCi0gKiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgY3ljbGVzIG91dCBvZiB0aGUgYmFja2xpZ2h0IG1vZHVsYXRpb24gY3ljbGUgZm9yIHdoaWNoCi0gKiB0aGUgYmFja2xpZ2h0IGlzIG9uLgotICoKLSAqIFRoaXMgZmllbGQgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBjeWNsZXMgaW4gdGhlIGNvbXBsZXRlCi0gKiBiYWNrbGlnaHQgbW9kdWxhdGlvbiBjeWNsZS4KLSAqLwotI2RlZmluZSBCQUNLTElHSFRfRFVUWV9DWUNMRV9TSElGVAkJKDApCi0jZGVmaW5lIEJBQ0tMSUdIVF9EVVRZX0NZQ0xFX01BU0sJCSgweGZmZmYpCi0KLSNkZWZpbmUgSTkxNV9HQ0ZHQwkJCTB4ZjAKLSNkZWZpbmUgSTkxNV9MT1dfRlJFUVVFTkNZX0VOQUJMRQkJKDEgPDwgNykKLSNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLXzE5MF8yMDBfTUhaCQkoMCA8PCA0KQotI2RlZmluZSBJOTE1X0RJU1BMQVlfQ0xPQ0tfMzMzX01IWgkJKDQgPDwgNCkKLSNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLX01BU0sJCQkoNyA8PCA0KQotCi0jZGVmaW5lIEk4NTVfSFBMTENDCQkJMHhjMAotI2RlZmluZSBJODU1X0NMT0NLX0NPTlRST0xfTUFTSwkJCSgzIDw8IDApCi0jZGVmaW5lIEk4NTVfQ0xPQ0tfMTMzXzIwMAkJCSgwIDw8IDApCi0jZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzIwMAkJCSgxIDw8IDApCi0jZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzEzMwkJCSgyIDw8IDApCi0jZGVmaW5lIEk4NTVfQ0xPQ0tfMTY2XzI1MAkJCSgzIDw8IDApCi0KLS8qIHAzMTcsIDMxOQotICovCi0jZGVmaW5lIFZDTEsyX1ZDT19NICAgICAgICAweDYwMDggLyogdHJlYXQgYXMgMTYgYml0PyAoaW5jbHVkZXMgbXNicykgKi8KLSNkZWZpbmUgVkNMSzJfVkNPX04gICAgICAgIDB4NjAwYQotI2RlZmluZSBWQ0xLMl9WQ09fRElWX1NFTCAgMHg2MDEyCi0KLSNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTAgICAweDYwMDAKLSNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTEgICAweDYwMDQKLSNkZWZpbmUgVkNMS19QT1NUX0RJVgkgICAgMHg2MDEwCi0vKiogU2VsZWN0cyBhIHBvc3QgZGl2aXNvciBvZiA0IGluc3RlYWQgb2YgMi4gKi8KLSMgZGVmaW5lIFZHQTFfUERfUDJfRElWXzQJKDEgPDwgMTUpCi0vKiogT3ZlcnJpZGVzIHRoZSBwMiBwb3N0IGRpdmlzb3IgZmllbGQgKi8KLSMgZGVmaW5lIFZHQTFfUERfUDFfRElWXzIJKDEgPDwgMTMpCi0jIGRlZmluZSBWR0ExX1BEX1AxX1NISUZUCTgKLS8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCi0jIGRlZmluZSBWR0ExX1BEX1AxX01BU0sJKDB4MWYgPDwgOCkKLS8qKiBTZWxlY3RzIGEgcG9zdCBkaXZpc29yIG9mIDQgaW5zdGVhZCBvZiAyLiAqLwotIyBkZWZpbmUgVkdBMF9QRF9QMl9ESVZfNAkoMSA8PCA3KQotLyoqIE92ZXJyaWRlcyB0aGUgcDIgcG9zdCBkaXZpc29yIGZpZWxkICovCi0jIGRlZmluZSBWR0EwX1BEX1AxX0RJVl8yCSgxIDw8IDUpCi0jIGRlZmluZSBWR0EwX1BEX1AxX1NISUZUCTAKLS8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCi0jIGRlZmluZSBWR0EwX1BEX1AxX01BU0sJKDB4MWYgPDwgMCkKLQotLyogUENJIEQgc3RhdGUgY29udHJvbCByZWdpc3RlciAqLwotI2RlZmluZSBEX1NUQVRFCQkweDYxMDQKLSNkZWZpbmUgRFNQQ0xLX0dBVEVfRAkweDYyMDAKLQotLyogSTgzMCBDUlRDIHJlZ2lzdGVycyAqLwotI2RlZmluZSBIVE9UQUxfQQkweDYwMDAwCi0jZGVmaW5lIEhCTEFOS19BCTB4NjAwMDQKLSNkZWZpbmUgSFNZTkNfQQkJMHg2MDAwOAotI2RlZmluZSBWVE9UQUxfQQkweDYwMDBjCi0jZGVmaW5lIFZCTEFOS19BCTB4NjAwMTAKLSNkZWZpbmUgVlNZTkNfQQkJMHg2MDAxNAotI2RlZmluZSBQSVBFQVNSQwkweDYwMDFjCi0jZGVmaW5lIEJDTFJQQVRfQQkweDYwMDIwCi0jZGVmaW5lIFZTWU5DU0hJRlRfQQkweDYwMDI4Ci0KLSNkZWZpbmUgSFRPVEFMX0IJMHg2MTAwMAotI2RlZmluZSBIQkxBTktfQgkweDYxMDA0Ci0jZGVmaW5lIEhTWU5DX0IJCTB4NjEwMDgKLSNkZWZpbmUgVlRPVEFMX0IJMHg2MTAwYwotI2RlZmluZSBWQkxBTktfQgkweDYxMDEwCi0jZGVmaW5lIFZTWU5DX0IJCTB4NjEwMTQKLSNkZWZpbmUgUElQRUJTUkMJMHg2MTAxYwotI2RlZmluZSBCQ0xSUEFUX0IJMHg2MTAyMAotI2RlZmluZSBWU1lOQ1NISUZUX0IJMHg2MTAyOAotCi0jZGVmaW5lIFBQX1NUQVRVUwkweDYxMjAwCi0jIGRlZmluZSBQUF9PTgkJCQkJKDEgPDwgMzEpCi0vKioKLSAqIEluZGljYXRlcyB0aGF0IGFsbCBkZXBlbmRlbmNpZXMgb2YgdGhlIHBhbmVsIGFyZSBvbjoKLSAqCi0gKiAtIFBMTCBlbmFibGVkCi0gKiAtIHBpcGUgZW5hYmxlZAotICogLSBMVkRTL0RWT0IvRFZPQyBvbgotICovCi0jIGRlZmluZSBQUF9SRUFEWQkJCQkoMSA8PCAzMCkKLSMgZGVmaW5lIFBQX1NFUVVFTkNFX05PTkUJCQkoMCA8PCAyOCkKLSMgZGVmaW5lIFBQX1NFUVVFTkNFX09OCQkJCSgxIDw8IDI4KQotIyBkZWZpbmUgUFBfU0VRVUVOQ0VfT0ZGCQkJKDIgPDwgMjgpCi0jIGRlZmluZSBQUF9TRVFVRU5DRV9NQVNLCQkJMHgzMDAwMDAwMAotI2RlZmluZSBQUF9DT05UUk9MCTB4NjEyMDQKLSMgZGVmaW5lIFBPV0VSX1RBUkdFVF9PTgkJCSgxIDw8IDApCi0KLSNkZWZpbmUgTFZEU1BQX09OICAgICAgIDB4NjEyMDgKLSNkZWZpbmUgTFZEU1BQX09GRiAgICAgIDB4NjEyMGMKLSNkZWZpbmUgUFBfQ1lDTEUgICAgICAgIDB4NjEyMTAKLQotI2RlZmluZSBQRklUX0NPTlRST0wJMHg2MTIzMAotIyBkZWZpbmUgUEZJVF9FTkFCTEUJCQkJKDEgPDwgMzEpCi0jIGRlZmluZSBQRklUX1BJUEVfTUFTSwkJCQkoMyA8PCAyOSkKLSMgZGVmaW5lIFBGSVRfUElQRV9TSElGVAkJCTI5Ci0jIGRlZmluZSBWRVJUX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgMTApCi0jIGRlZmluZSBWRVJUX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDEwKQotIyBkZWZpbmUgVkVSVF9JTlRFUlBfTUFTSwkJCSgzIDw8IDEwKQotIyBkZWZpbmUgVkVSVF9BVVRPX1NDQUxFCQkJKDEgPDwgOSkKLSMgZGVmaW5lIEhPUklaX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgNikKLSMgZGVmaW5lIEhPUklaX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDYpCi0jIGRlZmluZSBIT1JJWl9JTlRFUlBfTUFTSwkJCSgzIDw8IDYpCi0jIGRlZmluZSBIT1JJWl9BVVRPX1NDQUxFCQkJKDEgPDwgNSkKLSMgZGVmaW5lIFBBTkVMXzhUTzZfRElUSEVSX0VOQUJMRQkJKDEgPDwgMykKLQotI2RlZmluZSBQRklUX1BHTV9SQVRJT1MJMHg2MTIzNAotIyBkZWZpbmUgUEZJVF9WRVJUX1NDQUxFX01BU0sJCQkweGZmZjAwMDAwCi0jIGRlZmluZSBQRklUX0hPUklaX1NDQUxFX01BU0sJCQkweDAwMDBmZmYwCi0KLSNkZWZpbmUgUEZJVF9BVVRPX1JBVElPUwkweDYxMjM4Ci0KLQotI2RlZmluZSBEUExMX0EJCTB4MDYwMTQKLSNkZWZpbmUgRFBMTF9CCQkweDA2MDE4Ci0jIGRlZmluZSBEUExMX1ZDT19FTkFCTEUJCQkoMSA8PCAzMSkKLSMgZGVmaW5lIERQTExfRFZPX0hJR0hfU1BFRUQJCQkoMSA8PCAzMCkKLSMgZGVmaW5lIERQTExfU1lOQ0xPQ0tfRU5BQkxFCQkJKDEgPDwgMjkpCi0jIGRlZmluZSBEUExMX1ZHQV9NT0RFX0RJUwkJCSgxIDw8IDI4KQotIyBkZWZpbmUgRFBMTEJfTU9ERV9EQUNfU0VSSUFMCQkJKDEgPDwgMjYpIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExCX01PREVfTFZEUwkJCSgyIDw8IDI2KSAvKiBpOTE1ICovCi0jIGRlZmluZSBEUExMX01PREVfTUFTSwkJCQkoMyA8PCAyNikKLSMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfMTAJKDAgPDwgMjQpIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfNQkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExCX0xWRFNfUDJfQ0xPQ0tfRElWXzE0CQkoMCA8PCAyNCkgLyogaTkxNSAqLwotIyBkZWZpbmUgRFBMTEJfTFZEU19QMl9DTE9DS19ESVZfNwkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExfUDJfQ0xPQ0tfRElWX01BU0sJCQkweDAzMDAwMDAwIC8qIGk5MTUgKi8KLSMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTSwkJMHgwMGZmMDAwMCAvKiBpOTE1ICovCi0vKioKLSAqICBUaGUgaTgzMCBnZW5lcmF0aW9uLCBpbiBEQUMvc2VyaWFsIG1vZGUsIGRlZmluZXMgcDEgYXMgdHdvIHBsdXMgdGhpcwotICogYml0ZmllbGQsIG9yIGp1c3QgMiBpZiBQTExfUDFfRElWSURFX0JZX1RXTyBpcyBzZXQuCi0gKi8KLSMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTS19JODMwCTB4MDAxZjAwMDAKLS8qKgotICogVGhlIGk4MzAgZ2VuZXJhdGlvbiwgaW4gTFZEUyBtb2RlLCBkZWZpbmVzIFAxIGFzIHRoZSBiaXQgbnVtYmVyIHNldCB3aXRoaW4KLSAqIHRoaXMgZmllbGQgKG9ubHkgb25lIGJpdCBtYXkgYmUgc2V0KS4KLSAqLwotIyBkZWZpbmUgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLX0k4MzBfTFZEUwkweDAwM2YwMDAwCi0jIGRlZmluZSBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUCQkxNgotIyBkZWZpbmUgUExMX1AyX0RJVklERV9CWV80CQkJKDEgPDwgMjMpIC8qIGk4MzAsIHJlcXVpcmVkIGluIERWTyBub24tZ2FuZyAqLwotIyBkZWZpbmUgUExMX1AxX0RJVklERV9CWV9UV08JCQkoMSA8PCAyMSkgLyogaTgzMCAqLwotIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9EUkVGQ0xLCQkJKDAgPDwgMTMpCi0jIGRlZmluZSBQTExfUkVGX0lOUFVUX1RWQ0xLSU5BCQkJKDEgPDwgMTMpIC8qIGk4MzAgKi8KLSMgZGVmaW5lIFBMTF9SRUZfSU5QVVRfVFZDTEtJTkJDCQkoMiA8PCAxMykgLyogU0RWTyBUVkNMS0lOICovCi0jIGRlZmluZSBQTExCX1JFRl9JTlBVVF9TUFJFQURTUEVDVFJVTUlOCSgzIDw8IDEzKQotIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9NQVNLCQkJKDMgPDwgMTMpCi0jIGRlZmluZSBQTExfTE9BRF9QVUxTRV9QSEFTRV9TSElGVAkJOQotLyoKLSAqIFBhcmFsbGVsIHRvIFNlcmlhbCBMb2FkIFB1bHNlIHBoYXNlIHNlbGVjdGlvbi4KLSAqIFNlbGVjdHMgdGhlIHBoYXNlIGZvciB0aGUgMTBYIERQTEwgY2xvY2sgZm9yIHRoZSBQQ0llCi0gKiBkaWdpdGFsIGRpc3BsYXkgcG9ydC4gVGhlIHJhbmdlIGlzIDQgdG8gMTM7IDEwIG9yIG1vcmUKLSAqIGlzIGp1c3QgYSBmbGlwIGRlbGF5LiBUaGUgZGVmYXVsdCBpcyA2Ci0gKi8KLSMgZGVmaW5lIFBMTF9MT0FEX1BVTFNFX1BIQVNFX01BU0sJCSgweGYgPDwgUExMX0xPQURfUFVMU0VfUEhBU0VfU0hJRlQpCi0jIGRlZmluZSBESVNQTEFZX1JBVEVfU0VMRUNUX0ZQQTEJCSgxIDw8IDgpCi0KLS8qKgotICogU0RWTyBtdWx0aXBsaWVyIGZvciA5NDVHL0dNLiBOb3QgdXNlZCBvbiA5NjUuCi0gKgotICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSwotICovCi0jIGRlZmluZSBTRFZPX01VTFRJUExJRVJfTUFTSwkJCTB4MDAwMDAwZmYKLSMgZGVmaW5lIFNEVk9fTVVMVElQTElFUl9TSElGVF9ISVJFUwkJNAotIyBkZWZpbmUgU0RWT19NVUxUSVBMSUVSX1NISUZUX1ZHQQkJMAotCi0vKiogQGRlZmdyb3VwIERQTExfTUQKLSAqIEB7Ci0gKi8KLS8qKiBQaXBlIEEgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLwotI2RlZmluZSBEUExMX0FfTUQJCTB4MDYwMWMKLS8qKiBQaXBlIEIgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLwotI2RlZmluZSBEUExMX0JfTUQJCTB4MDYwMjAKLS8qKgotICogVURJIHBpeGVsIGRpdmlkZXIsIGNvbnRyb2xsaW5nIGhvdyBtYW55IHBpeGVscyBhcmUgc3R1ZmZlZCBpbnRvIGEgcGFja2V0LgotICoKLSAqIFZhbHVlIGlzIHBpeGVscyBtaW51cyAxLiAgTXVzdCBiZSBzZXQgdG8gMSBwaXhlbCBmb3IgU0RWTy4KLSAqLwotIyBkZWZpbmUgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLCQkweDNmMDAwMDAwCi0jIGRlZmluZSBEUExMX01EX1VESV9ESVZJREVSX1NISUZUCQkyNAotLyoqIFVESSBwaXhlbCBkaXZpZGVyIGZvciBWR0EsIHNhbWUgYXMgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLLiAqLwotIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfTUFTSwkJMHgwMDNmMDAwMAotIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfU0hJRlQJCTE2Ci0vKioKLSAqIFNEVk8vVURJIHBpeGVsIG11bHRpcGxpZXIuCi0gKgotICogU0RWTyByZXF1aXJlcyB0aGF0IHRoZSBidXMgY2xvY2sgcmF0ZSBiZSBiZXR3ZWVuIDEgYW5kIDIgR2h6LCBhbmQgdGhlIGJ1cwotICogY2xvY2sgcmF0ZSBpcyAxMCB0aW1lcyB0aGUgRFBMTCBjbG9jay4gIEF0IGxvdyByZXNvbHV0aW9uL3JlZnJlc2ggcmF0ZQotICogbW9kZXMsIHRoZSBidXMgcmF0ZSB3b3VsZCBiZSBiZWxvdyB0aGUgbGltaXRzLCBzbyBTRFZPIGFsbG93cyBmb3Igc3R1ZmZpbmcKLSAqIGR1bW15IGJ5dGVzIGluIHRoZSBkYXRhc3RyZWFtIGF0IGFuIGluY3JlYXNlZCBjbG9jayByYXRlLCB3aXRoIGJvdGggc2lkZXMgb2YKLSAqIHRoZSBsaW5rIGtub3dpbmcgaG93IG1hbnkgYnl0ZXMgYXJlIGZpbGwuCi0gKgotICogU28sIGZvciBhIG1vZGUgd2l0aCBhIGRvdGNsb2NrIG9mIDY1TWh6LCB3ZSB3b3VsZCB3YW50IHRvIGRvdWJsZSB0aGUgY2xvY2sKLSAqIHJhdGUgdG8gMTMwTWh6IHRvIGdldCBhIGJ1cyByYXRlIG9mIDEuMzBHaHouICBUaGUgRFBMTCBjbG9jayByYXRlIHdvdWxkIGJlCi0gKiBzZXQgdG8gMTMwTWh6LCBhbmQgdGhlIFNEVk8gbXVsdGlwbGllciBzZXQgdG8gMnggaW4gdGhpcyByZWdpc3RlciBhbmQKLSAqIHRocm91Z2ggYW4gU0RWTyBjb21tYW5kLgotICoKLSAqIFRoaXMgcmVnaXN0ZXIgZmllbGQgaGFzIHZhbHVlcyBvZiBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgbWludXMgMSwgd2l0aAotICogYSBtYXhpbXVtIG11bHRpcGxpZXIgb2YgNSBmb3IgU0RWTy4KLSAqLwotIyBkZWZpbmUgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLCQkweDAwMDAzZjAwCi0jIGRlZmluZSBEUExMX01EX1VESV9NVUxUSVBMSUVSX1NISUZUCQk4Ci0vKiogU0RWTy9VREkgcGl4ZWwgbXVsdGlwbGllciBmb3IgVkdBLCBzYW1lIGFzIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSy4KLSAqIFRoaXMgYmVzdCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKDMpIG9yIHRoZSBDUlQgd29uJ3Qgd29yay4gTm8sCi0gKiBJIGRvbid0IGVudGlyZWx5IHVuZGVyc3RhbmQgd2hhdCB0aGlzIGRvZXMuLi4KLSAqLwotIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX01VTFRJUExJRVJfTUFTSwkweDAwMDAwMDNmCi0jIGRlZmluZSBEUExMX01EX1ZHQV9VRElfTVVMVElQTElFUl9TSElGVAkwCi0vKiogQH0gKi8KLQotI2RlZmluZSBEUExMX1RFU1QJCTB4NjA2YwotIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl8xCQkJKDAgPDwgMjIpCi0jIGRlZmluZSBEUExMQl9URVNUX1NEVk9fRElWXzIJCQkoMSA8PCAyMikKLSMgZGVmaW5lIERQTExCX1RFU1RfU0RWT19ESVZfNAkJCSgyIDw8IDIyKQotIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl9NQVNLCQkoMyA8PCAyMikKLSMgZGVmaW5lIERQTExCX1RFU1RfTl9CWVBBU1MJCQkoMSA8PCAxOSkKLSMgZGVmaW5lIERQTExCX1RFU1RfTV9CWVBBU1MJCQkoMSA8PCAxOCkKLSMgZGVmaW5lIERQTExCX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDE2KQotIyBkZWZpbmUgRFBMTEFfVEVTVF9OX0JZUEFTUwkJCSgxIDw8IDMpCi0jIGRlZmluZSBEUExMQV9URVNUX01fQllQQVNTCQkJKDEgPDwgMikKLSMgZGVmaW5lIERQTExBX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDApCi0KLSNkZWZpbmUgQURQQQkJCTB4NjExMDAKLSNkZWZpbmUgQURQQV9EQUNfRU5BQkxFCQkoMTw8MzEpCi0jZGVmaW5lIEFEUEFfREFDX0RJU0FCTEUJMAotI2RlZmluZSBBRFBBX1BJUEVfU0VMRUNUX01BU0sJKDE8PDMwKQotI2RlZmluZSBBRFBBX1BJUEVfQV9TRUxFQ1QJMAotI2RlZmluZSBBRFBBX1BJUEVfQl9TRUxFQ1QJKDE8PDMwKQotI2RlZmluZSBBRFBBX1VTRV9WR0FfSFZQT0xBUklUWSAoMTw8MTUpCi0jZGVmaW5lIEFEUEFfU0VUU19IVlBPTEFSSVRZCTAKLSNkZWZpbmUgQURQQV9WU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDExKQotI2RlZmluZSBBRFBBX1ZTWU5DX0NOVExfRU5BQkxFCTAKLSNkZWZpbmUgQURQQV9IU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDEwKQotI2RlZmluZSBBRFBBX0hTWU5DX0NOVExfRU5BQkxFCTAKLSNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfSElHSAkoMTw8NCkKLSNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfTE9XCTAKLSNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfSElHSAkoMTw8MykKLSNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfTE9XCTAKLQotI2RlZmluZSBGUEEwCQkweDA2MDQwCi0jZGVmaW5lIEZQQTEJCTB4MDYwNDQKLSNkZWZpbmUgRlBCMAkJMHgwNjA0OAotI2RlZmluZSBGUEIxCQkweDA2MDRjCi0jIGRlZmluZSBGUF9OX0RJVl9NQVNLCQkJCTB4MDAzZjAwMDAKLSMgZGVmaW5lIEZQX05fRElWX1NISUZUCQkJCTE2Ci0jIGRlZmluZSBGUF9NMV9ESVZfTUFTSwkJCQkweDAwMDAzZjAwCi0jIGRlZmluZSBGUF9NMV9ESVZfU0hJRlQJCQk4Ci0jIGRlZmluZSBGUF9NMl9ESVZfTUFTSwkJCQkweDAwMDAwMDNmCi0jIGRlZmluZSBGUF9NMl9ESVZfU0hJRlQJCQkwCi0KLQotI2RlZmluZSBQT1JUX0hPVFBMVUdfRU4JCTB4NjExMTAKLSMgZGVmaW5lIFNEVk9CX0hPVFBMVUdfSU5UX0VOCQkJKDEgPDwgMjYpCi0jIGRlZmluZSBTRFZPQ19IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDI1KQotIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfRU4JCQkoMSA8PCAxOCkKLSMgZGVmaW5lIENSVF9IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDkpCi0jIGRlZmluZSBDUlRfSE9UUExVR19GT1JDRV9ERVRFQ1QJCSgxIDw8IDMpCi0KLSNkZWZpbmUgUE9SVF9IT1RQTFVHX1NUQVQJMHg2MTExNAotIyBkZWZpbmUgQ1JUX0hPVFBMVUdfSU5UX1NUQVRVUwkJCSgxIDw8IDExKQotIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfU1RBVFVTCQkJKDEgPDwgMTApCi0jIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX01BU0sJCSgzIDw8IDgpCi0jIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX0NPTE9SCQkoMyA8PCA4KQotIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9NT05PCQkoMiA8PCA4KQotIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9OT05FCQkoMCA8PCA4KQotIyBkZWZpbmUgU0RWT0NfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA3KQotIyBkZWZpbmUgU0RWT0JfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA2KQotCi0jZGVmaW5lIFNEVk9CCQkJMHg2MTE0MAotI2RlZmluZSBTRFZPQwkJCTB4NjExNjAKLSNkZWZpbmUgU0RWT19FTkFCTEUJCQkJKDEgPDwgMzEpCi0jZGVmaW5lIFNEVk9fUElQRV9CX1NFTEVDVAkJCSgxIDw8IDMwKQotI2RlZmluZSBTRFZPX1NUQUxMX1NFTEVDVAkJCSgxIDw8IDI5KQotI2RlZmluZSBTRFZPX0lOVEVSUlVQVF9FTkFCTEUJCQkoMSA8PCAyNikKLS8qKgotICogOTE1Ry9HTSBTRFZPIHBpeGVsIG11bHRpcGxpZXIuCi0gKgotICogUHJvZ3JhbW1lZCB2YWx1ZSBpcyBtdWx0aXBsaWVyIC0gMSwgdXAgdG8gNXguCi0gKgotICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSwotICovCi0jZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9NQVNLCQkJKDcgPDwgMjMpCi0jZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9TSElGVAkJMjMKLSNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfTUFTSwkJCSgxNSA8PCAxOSkKLSNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfREVGQVVMVAkJKDYgPDwgMTkpCi0jZGVmaW5lIFNEVk9fQ0xPQ0tfT1VUUFVUX0lOVkVSVAkJKDEgPDwgMTgpCi0jZGVmaW5lIFNEVk9DX0dBTkdfTU9ERQkJCQkoMSA8PCAxNikKLSNkZWZpbmUgU0RWT19CT1JERVJfRU5BQkxFCQkJKDEgPDwgNykKLSNkZWZpbmUgU0RWT0JfUENJRV9DT05DVVJSRU5DWQkJCSgxIDw8IDMpCi0jZGVmaW5lIFNEVk9fREVURUNURUQJCQkJKDEgPDwgMikKLS8qIEJpdHMgdG8gYmUgcHJlc2VydmVkIHdoZW4gd3JpdGluZyAqLwotI2RlZmluZSBTRFZPQl9QUkVTRVJWRV9NQVNLCQkJKCgxIDw8IDE3KSB8ICgxIDw8IDE2KSB8ICgxIDw8IDE0KSkKLSNkZWZpbmUgU0RWT0NfUFJFU0VSVkVfTUFTSwkJCSgxIDw8IDE3KQotCi0vKiogQGRlZmdyb3VwIExWRFMKLSAqIEB7Ci0gKi8KLS8qKgotICogVGhpcyByZWdpc3RlciBjb250cm9scyB0aGUgTFZEUyBvdXRwdXQgZW5hYmxlLCBwaXBlIHNlbGVjdGlvbiwgYW5kIGRhdGEKLSAqIGZvcm1hdCBzZWxlY3Rpb24uCi0gKgotICogQWxsIG9mIHRoZSBjbG9jay9kYXRhIHBhaXJzIGFyZSBmb3JjZSBwb3dlcmVkIGRvd24gYnkgcG93ZXIgc2VxdWVuY2luZy4KLSAqLwotI2RlZmluZSBMVkRTCQkJMHg2MTE4MAotLyoqCi0gKiBFbmFibGVzIHRoZSBMVkRTIHBvcnQuICBUaGlzIGJpdCBtdXN0IGJlIHNldCBiZWZvcmUgRFBMTHMgYXJlIGVuYWJsZWQsIGFzCi0gKiB0aGUgRFBMTCBzZW1hbnRpY3MgY2hhbmdlIHdoZW4gdGhlIExWRFMgaXMgYXNzaWduZWQgdG8gdGhhdCBwaXBlLgotICovCi0jIGRlZmluZSBMVkRTX1BPUlRfRU4JCQkoMSA8PCAzMSkKLS8qKiBTZWxlY3RzIHBpcGUgQiBmb3IgTFZEUyBkYXRhLiAgTXVzdCBiZSBzZXQgb24gcHJlLTk2NS4gKi8KLSMgZGVmaW5lIExWRFNfUElQRUJfU0VMRUNUCQkoMSA8PCAzMCkKLQotLyoqCi0gKiBFbmFibGVzIHRoZSBBMC1BMiBkYXRhIHBhaXJzIGFuZCBDTEtBLCBjb250YWluaW5nIDE4IGJpdHMgb2YgY29sb3IgZGF0YSBwZXIKLSAqIHBpeGVsLgotICovCi0jIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9NQVNLCSgzIDw8IDgpCi0jIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9ET1dOCSgwIDw8IDgpCi0jIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9VUAkoMyA8PCA4KQotLyoqCi0gKiBDb250cm9scyB0aGUgQTMgZGF0YSBwYWlyLCB3aGljaCBjb250YWlucyB0aGUgYWRkaXRpb25hbCBMU0JzIGZvciAyNCBiaXQKLSAqIG1vZGUuICBPbmx5IGVuYWJsZWQgaWYgTFZEU19BMEEyX0NMS0FfUE9XRVJfVVAgYWxzbyBpbmRpY2F0ZXMgaXQgc2hvdWxkIGJlCi0gKiBvbi4KLSAqLwotIyBkZWZpbmUgTFZEU19BM19QT1dFUl9NQVNLCQkoMyA8PCA2KQotIyBkZWZpbmUgTFZEU19BM19QT1dFUl9ET1dOCQkoMCA8PCA2KQotIyBkZWZpbmUgTFZEU19BM19QT1dFUl9VUAkJKDMgPDwgNikKLS8qKgotICogQ29udHJvbHMgdGhlIENMS0IgcGFpci4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgc2V0IHdoZW4gTFZEU19CMEIzX1BPV0VSX1VQCi0gKiBpcyBzZXQuCi0gKi8KLSMgZGVmaW5lIExWRFNfQ0xLQl9QT1dFUl9NQVNLCQkoMyA8PCA0KQotIyBkZWZpbmUgTFZEU19DTEtCX1BPV0VSX0RPV04JCSgwIDw8IDQpCi0jIGRlZmluZSBMVkRTX0NMS0JfUE9XRVJfVVAJCSgzIDw8IDQpCi0KLS8qKgotICogQ29udHJvbHMgdGhlIEIwLUIzIGRhdGEgcGFpcnMuICBUaGlzIG11c3QgYmUgc2V0IHRvIG1hdGNoIHRoZSBEUExMIHAyCi0gKiBzZXR0aW5nIGZvciB3aGV0aGVyIHdlIGFyZSBpbiBkdWFsLWNoYW5uZWwgbW9kZS4gIFRoZSBCMyBwYWlyIHdpbGwKLSAqIGFkZGl0aW9uYWxseSBvbmx5IGJlIHBvd2VyZWQgdXAgd2hlbiBMVkRTX0EzX1BPV0VSX1VQIGlzIHNldC4KLSAqLwotIyBkZWZpbmUgTFZEU19CMEIzX1BPV0VSX01BU0sJCSgzIDw8IDIpCi0jIGRlZmluZSBMVkRTX0IwQjNfUE9XRVJfRE9XTgkJKDAgPDwgMikKLSMgZGVmaW5lIExWRFNfQjBCM19QT1dFUl9VUAkJKDMgPDwgMikKLQotI2RlZmluZSBQSVBFQUNPTkYgMHg3MDAwOAotI2RlZmluZSBQSVBFQUNPTkZfRU5BQkxFCSgxPDwzMSkKLSNkZWZpbmUgUElQRUFDT05GX0RJU0FCTEUJMAotI2RlZmluZSBQSVBFQUNPTkZfRE9VQkxFX1dJREUJKDE8PDMwKQotI2RlZmluZSBJOTY1X1BJUEVDT05GX0FDVElWRQkoMTw8MzApCi0jZGVmaW5lIFBJUEVBQ09ORl9TSU5HTEVfV0lERQkwCi0jZGVmaW5lIFBJUEVBQ09ORl9QSVBFX1VOTE9DS0VEIDAKLSNkZWZpbmUgUElQRUFDT05GX1BJUEVfTE9DS0VECSgxPDwyNSkKLSNkZWZpbmUgUElQRUFDT05GX1BBTEVUVEUJMAotI2RlZmluZSBQSVBFQUNPTkZfR0FNTUEJCSgxPDwyNCkKLSNkZWZpbmUgUElQRUNPTkZfRk9SQ0VfQk9SREVSCSgxPDwyNSkKLSNkZWZpbmUgUElQRUNPTkZfUFJPR1JFU1NJVkUJKDAgPDwgMjEpCi0jZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9XX0ZJRUxEX0lORElDQVRJT04JKDYgPDwgMjEpCi0jZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9GSUVMRF8wX09OTFkJCSg3IDw8IDIxKQotCi0jZGVmaW5lIERTUEFSQgkgIDB4NzAwMzAKLSNkZWZpbmUgRFNQQVJCX0NTVEFSVF9NQVNLCSgweDdmIDw8IDcpCi0jZGVmaW5lIERTUEFSQl9DU1RBUlRfU0hJRlQJNwotI2RlZmluZSBEU1BBUkJfQlNUQVJUX01BU0sJKDB4N2YpCQkgCi0jZGVmaW5lIERTUEFSQl9CU1RBUlRfU0hJRlQJMAotCi0jZGVmaW5lIFBJUEVCQ09ORiAweDcxMDA4Ci0jZGVmaW5lIFBJUEVCQ09ORl9FTkFCTEUJKDE8PDMxKQotI2RlZmluZSBQSVBFQkNPTkZfRElTQUJMRQkwCi0jZGVmaW5lIFBJUEVCQ09ORl9ET1VCTEVfV0lERQkoMTw8MzApCi0jZGVmaW5lIFBJUEVCQ09ORl9ESVNBQkxFCTAKLSNkZWZpbmUgUElQRUJDT05GX0dBTU1BCQkoMTw8MjQpCi0jZGVmaW5lIFBJUEVCQ09ORl9QQUxFVFRFCTAKLQotI2RlZmluZSBQSVBFQkdDTUFYUkVECQkweDcxMDEwCi0jZGVmaW5lIFBJUEVCR0NNQVhHUkVFTgkJMHg3MTAxNAotI2RlZmluZSBQSVBFQkdDTUFYQkxVRQkJMHg3MTAxOAotI2RlZmluZSBQSVBFQlNUQVQJCTB4NzEwMjQKLSNkZWZpbmUgUElQRUJGUkFNRUhJR0gJCTB4NzEwNDAKLSNkZWZpbmUgUElQRUJGUkFNRVBJWEVMCQkweDcxMDQ0Ci0KLSNkZWZpbmUgRFNQQUNOVFIJCTB4NzAxODAKLSNkZWZpbmUgRFNQQkNOVFIJCTB4NzExODAKLSNkZWZpbmUgRElTUExBWV9QTEFORV9FTkFCTEUJCQkoMTw8MzEpCi0jZGVmaW5lIERJU1BMQVlfUExBTkVfRElTQUJMRQkJCTAKLSNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0VOQUJMRQkJCSgxPDwzMCkKLSNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0RJU0FCTEUJCQkwCi0jZGVmaW5lIERJU1BQTEFORV9QSVhGT1JNQVRfTUFTSwkJKDB4Zjw8MjYpCi0jZGVmaW5lIERJU1BQTEFORV84QlBQCQkJCSgweDI8PDI2KQotI2RlZmluZSBESVNQUExBTkVfMTVfMTZCUFAJCQkoMHg0PDwyNikKLSNkZWZpbmUgRElTUFBMQU5FXzE2QlBQCQkJCSgweDU8PDI2KQotI2RlZmluZSBESVNQUExBTkVfMzJCUFBfTk9fQUxQSEEJCSgweDY8PDI2KQotI2RlZmluZSBESVNQUExBTkVfMzJCUFAJCQkJKDB4Nzw8MjYpCi0jZGVmaW5lIERJU1BQTEFORV9TVEVSRU9fRU5BQkxFCQkJKDE8PDI1KQotI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX0RJU0FCTEUJCTAKLSNkZWZpbmUgRElTUFBMQU5FX1NFTF9QSVBFX01BU0sJCQkoMTw8MjQpCi0jZGVmaW5lIERJU1BQTEFORV9TRUxfUElQRV9BCQkJMAotI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfQgkJCSgxPDwyNCkKLSNkZWZpbmUgRElTUFBMQU5FX1NSQ19LRVlfRU5BQkxFCQkoMTw8MjIpCi0jZGVmaW5lIERJU1BQTEFORV9TUkNfS0VZX0RJU0FCTEUJCTAKLSNkZWZpbmUgRElTUFBMQU5FX0xJTkVfRE9VQkxFCQkJKDE8PDIwKQotI2RlZmluZSBESVNQUExBTkVfTk9fTElORV9ET1VCTEUJCTAKLSNkZWZpbmUgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9GSVJTVAkJMAotI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX1BPTEFSSVRZX1NFQ09ORAkoMTw8MTgpCi0vKiBwbGFuZSBCIG9ubHkgKi8KLSNkZWZpbmUgRElTUFBMQU5FX0FMUEhBX1RSQU5TX0VOQUJMRQkJKDE8PDE1KQotI2RlZmluZSBESVNQUExBTkVfQUxQSEFfVFJBTlNfRElTQUJMRQkJMAotI2RlZmluZSBESVNQUExBTkVfU1BSSVRFX0FCT1ZFX0RJU1BMQVlBCQkwCi0jZGVmaW5lIERJU1BQTEFORV9TUFJJVEVfQUJPVkVfT1ZFUkxBWQkJKDEpCi0KLSNkZWZpbmUgRFNQQUJBU0UJCTB4NzAxODQKLSNkZWZpbmUgRFNQQVNUUklERQkJMHg3MDE4OAotCi0jZGVmaW5lIERTUEJCQVNFCQkweDcxMTg0Ci0jZGVmaW5lIERTUEJBRERSCQlEU1BCQkFTRQotI2RlZmluZSBEU1BCU1RSSURFCQkweDcxMTg4Ci0KLSNkZWZpbmUgRFNQQUtFWVZBTAkJMHg3MDE5NAotI2RlZmluZSBEU1BBS0VZTUFTSwkJMHg3MDE5OAotCi0jZGVmaW5lIERTUEFQT1MJCQkweDcwMThDIC8qIHJlc2VydmVkICovCi0jZGVmaW5lIERTUEFTSVpFCQkweDcwMTkwCi0jZGVmaW5lIERTUEJQT1MJCQkweDcxMThDCi0jZGVmaW5lIERTUEJTSVpFCQkweDcxMTkwCi0KLSNkZWZpbmUgRFNQQVNVUkYJCTB4NzAxOUMKLSNkZWZpbmUgRFNQQVRJTEVPRkYJCTB4NzAxQTQKLQotI2RlZmluZSBEU1BCU1VSRgkJMHg3MTE5QwotI2RlZmluZSBEU1BCVElMRU9GRgkJMHg3MTFBNAotCi0jZGVmaW5lIFZHQUNOVFJMCQkweDcxNDAwCi0jIGRlZmluZSBWR0FfRElTUF9ESVNBQkxFCQkJKDEgPDwgMzEpCi0jIGRlZmluZSBWR0FfMlhfTU9ERQkJCQkoMSA8PCAzMCkKLSMgZGVmaW5lIFZHQV9QSVBFX0JfU0VMRUNUCQkJKDEgPDwgMjkpCi0KLS8qCi0gKiBTb21lIEJJT1Mgc2NyYXRjaCBhcmVhIHJlZ2lzdGVycy4gIFRoZSA4NDUgKGFuZCA4MzA/KSBzdG9yZSB0aGUgYW1vdW50Ci0gKiBvZiB2aWRlbyBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBCSU9TIGluIFNXRjEuCi0gKi8KLQotI2RlZmluZSBTV0YwCQkJMHg3MTQxMAotCi0vKgotICogODU1IHNjcmF0Y2ggcmVnaXN0ZXJzLgotICovCi0jZGVmaW5lIFNXRjEwCQkJMHg3MDQxMAotCi0jZGVmaW5lIFNXRjMwCQkJMHg3MjQxNAotCi0vKgotICogT3ZlcmxheSByZWdpc3RlcnMuICBUaGVzZSBhcmUgb3ZlcmxheSByZWdpc3RlcnMgYWNjZXNzZWQgdmlhIE1NSU8uCi0gKiBUaG9zZSBsb2FkZWQgdmlhIHRoZSBvdmVybGF5IHJlZ2lzdGVyIHBhZ2UgYXJlIGRlZmluZWQgaW4gaTgzMF92aWRlby5jLgotICovCi0jZGVmaW5lIE9WQURECQkJMHgzMDAwMAotCi0jZGVmaW5lIERPVlNUQQkJCTB4MzAwMDgKLSNkZWZpbmUgT0NfQlVGCQkJKDB4Mzw8MjApCi0KLSNkZWZpbmUgT0dBTUM1CQkJMHgzMDAxMAotI2RlZmluZSBPR0FNQzQJCQkweDMwMDE0Ci0jZGVmaW5lIE9HQU1DMwkJCTB4MzAwMTgKLSNkZWZpbmUgT0dBTUMyCQkJMHgzMDAxYwotI2RlZmluZSBPR0FNQzEJCQkweDMwMDIwCi0jZGVmaW5lIE9HQU1DMAkJCTB4MzAwMjQKLS8qCi0gKiBQYWxldHRlIHJlZ2lzdGVycwotICovCi0jZGVmaW5lIFBBTEVUVEVfQQkJMHgwYTAwMAotI2RlZmluZSBQQUxFVFRFX0IJCTB4MGE4MDAKLQotI2RlZmluZSBJU19JODMwKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU3NykKLSNkZWZpbmUgSVNfODQ1RyhkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1NjIpCi0jZGVmaW5lIElTX0k4NVgoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgzNTgyKQotI2RlZmluZSBJU19JODU1KGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU4MikKLSNkZWZpbmUgSVNfSTg2NUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyNTcyKQotCi0jZGVmaW5lIElTX0k5MTVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU4MiB8fCAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OGEpCi0jZGVmaW5lIElTX0k5MTVHTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OTIpCi0jZGVmaW5lIElTX0k5NDVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjc3MikKLSNkZWZpbmUgSVNfSTk0NUdNKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjdBMiB8fFwKLQkJICAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI3QUUpCi0jZGVmaW5lIElTX0k5NjVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjk3MiB8fCBcCi0JCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5ODIgfHwgXAotCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOTkyIHx8IFwKLQkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlBMiB8fCBcCi0JCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBMDIgfHwgXAotCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTEyIHx8IFwKLQkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkE0MikKLQotI2RlZmluZSBJU19JOTY1R00oZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTAyKQotCi0jZGVmaW5lIElTX0lHRF9HTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBNDIpCi0KLSNkZWZpbmUgSVNfRzMzKGRldikgICAgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlDMiB8fAlcCi0JCQkoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5QjIgfHwJXAotCQkJKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOUQyKQotCi0jZGVmaW5lIElTX0k5WFgoZGV2KSAoSVNfSTkxNUcoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBJU19JOTQ1RyhkZXYpIHx8IFwKLQkJICAgICAgSVNfSTk0NUdNKGRldikgfHwgSVNfSTk2NUcoZGV2KSB8fCBJU19HMzMoZGV2KSkKLQotI2RlZmluZSBJU19NT0JJTEUoZGV2KSAoSVNfSTgzMChkZXYpIHx8IElTX0k4NVgoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBcCi0JCQlJU19JOTQ1R00oZGV2KSB8fCBJU19JOTY1R00oZGV2KSB8fCBJU19JR0RfR00oZGV2KSkKLQotI2RlZmluZSBJOTE1X05FRURfR0ZYX0hXUyhkZXYpIChJU19HMzMoZGV2KSB8fCBJU19JR0RfR00oZGV2KSkKLQotI2RlZmluZSBQUklNQVJZX1JJTkdCVUZGRVJfU0laRSAgICAgICAgICgxMjgqMTAyNCkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaXJxLmMgYi9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaXJxLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZjE2ZTcuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9jaGFyL2RybS9pOTE1X2lycS5jCisrKyAvZGV2L251bGwKQEAgLTEsNjIzICswLDAgQEAKLS8qIGk5MTVfaXJxLmMgLS0gSVJRIHN1cHBvcnQgZm9yIHRoZSBJOTE1IC0qLSBsaW51eC1jIC0qLQotICovCi0vKgotICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQotICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwotICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCi0gKiBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKLSAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLSAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCi0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCi0gKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCi0gKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImRybVAuaCIKLSNpbmNsdWRlICJkcm0uaCIKLSNpbmNsdWRlICJpOTE1X2RybS5oIgotI2luY2x1ZGUgImk5MTVfZHJ2LmgiCi0KLSNkZWZpbmUgVVNFUl9JTlRfRkxBRyAoMTw8MSkKLSNkZWZpbmUgVlNZTkNfUElQRUJfRkxBRyAoMTw8NSkKLSNkZWZpbmUgVlNZTkNfUElQRUFfRkxBRyAoMTw8NykKLQotI2RlZmluZSBNQVhfTk9QSUQgKCh1MzIpfjApCi0KLS8qKgotICogRW1pdCBibGl0cyBmb3Igc2NoZWR1bGVkIGJ1ZmZlciBzd2Fwcy4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIEhXIGxvY2sgaGVsZC4KLSAqLwotc3RhdGljIHZvaWQgaTkxNV92YmxhbmtfdGFza2xldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCAqdG1wLCBoaXRzLCAqaGl0OwotCWludCBuaGl0cywgbnJlY3RzLCBzbGljZVsyXSwgdXBwZXJbMl0sIGxvd2VyWzJdLCBpOwotCXVuc2lnbmVkIGNvdW50ZXJbMl0gPSB7IGF0b21pY19yZWFkKCZkZXYtPnZibF9yZWNlaXZlZCksCi0JCQkJYXRvbWljX3JlYWQoJmRldi0+dmJsX3JlY2VpdmVkMikgfTsKLQlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRydzsKLQlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0JdTMyIGNwcCA9IGRldl9wcml2LT5jcHA7Ci0JdTMyIGNtZCA9IChjcHAgPT0gNCkgPyAoWFlfU1JDX0NPUFlfQkxUX0NNRCB8Ci0JCQkJWFlfU1JDX0NPUFlfQkxUX1dSSVRFX0FMUEhBIHwKLQkJCQlYWV9TUkNfQ09QWV9CTFRfV1JJVEVfUkdCKQotCQkJICAgICA6IFhZX1NSQ19DT1BZX0JMVF9DTUQ7Ci0JdTMyIHNyY19waXRjaCA9IHNhcmVhX3ByaXYtPnBpdGNoICogY3BwOwotCXUzMiBkc3RfcGl0Y2ggPSBzYXJlYV9wcml2LT5waXRjaCAqIGNwcDsKLQl1MzIgcm9wY3BwID0gKDB4Y2MgPDwgMTYpIHwgKChjcHAgLSAxKSA8PCAyNCk7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoc2FyZWFfcHJpdi0+ZnJvbnRfdGlsZWQpIHsKLQkJY21kIHw9IFhZX1NSQ19DT1BZX0JMVF9EU1RfVElMRUQ7Ci0JCWRzdF9waXRjaCA+Pj0gMjsKLQl9Ci0JaWYgKHNhcmVhX3ByaXYtPmJhY2tfdGlsZWQpIHsKLQkJY21kIHw9IFhZX1NSQ19DT1BZX0JMVF9TUkNfVElMRUQ7Ci0JCXNyY19waXRjaCA+Pj0gMjsKLQl9Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlJTklUX0xJU1RfSEVBRCgmaGl0cyk7Ci0KLQluaGl0cyA9IG5yZWN0cyA9IDA7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCS8qIEZpbmQgYnVmZmVyIHN3YXBzIHNjaGVkdWxlZCBmb3IgdGhpcyB2ZXJ0aWNhbCBibGFuayAqLwotCWxpc3RfZm9yX2VhY2hfc2FmZShsaXN0LCB0bXAsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpIHsKLQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqdmJsX3N3YXAgPQotCQkJbGlzdF9lbnRyeShsaXN0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKLQotCQlpZiAoKGNvdW50ZXJbdmJsX3N3YXAtPnBpcGVdIC0gdmJsX3N3YXAtPnNlcXVlbmNlKSA+ICgxPDwyMykpCi0JCQljb250aW51ZTsKLQotCQlsaXN0X2RlbChsaXN0KTsKLQkJZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmctLTsKLQotCQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCQlzcGluX2xvY2soJmRldi0+ZHJ3X2xvY2spOwotCi0JCWRydyA9IGRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHZibF9zd2FwLT5kcndfaWQpOwotCi0JCWlmICghZHJ3KSB7Ci0JCQlzcGluX3VubG9jaygmZGV2LT5kcndfbG9jayk7Ci0JCQlkcm1fZnJlZSh2Ymxfc3dhcCwgc2l6ZW9mKCp2Ymxfc3dhcCksIERSTV9NRU1fRFJJVkVSKTsKLQkJCXNwaW5fbG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlsaXN0X2Zvcl9lYWNoKGhpdCwgJmhpdHMpIHsKLQkJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfY21wID0KLQkJCQlsaXN0X2VudHJ5KGhpdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7Ci0JCQlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRyd19jbXAgPQotCQkJCWRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXBfY21wLT5kcndfaWQpOwotCi0JCQlpZiAoZHJ3X2NtcCAmJgotCQkJICAgIGRyd19jbXAtPnJlY3RzWzBdLnkxID4gZHJ3LT5yZWN0c1swXS55MSkgewotCQkJCWxpc3RfYWRkX3RhaWwobGlzdCwgaGl0KTsKLQkJCQlicmVhazsKLQkJCX0KLQkJfQotCi0JCXNwaW5fdW5sb2NrKCZkZXYtPmRyd19sb2NrKTsKLQotCQkvKiBMaXN0IG9mIGhpdHMgd2FzIGVtcHR5LCBvciB3ZSByZWFjaGVkIHRoZSBlbmQgb2YgaXQgKi8KLQkJaWYgKGhpdCA9PSAmaGl0cykKLQkJCWxpc3RfYWRkX3RhaWwobGlzdCwgaGl0cy5wcmV2KTsKLQotCQluaGl0cysrOwotCi0JCXNwaW5fbG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCX0KLQotCWlmIChuaGl0cyA9PSAwKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlzcGluX3VubG9jaygmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCi0JaTkxNV9rZXJuZWxfbG9zdF9jb250ZXh0KGRldik7Ci0KLQlpZiAoSVNfSTk2NUcoZGV2KSkgewotCQlCRUdJTl9MUF9SSU5HKDQpOwotCi0JCU9VVF9SSU5HKEdGWF9PUF9EUkFXUkVDVF9JTkZPX0k5NjUpOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoKChzYXJlYV9wcml2LT53aWR0aCAtIDEpICYgMHhmZmZmKSB8ICgoc2FyZWFfcHJpdi0+aGVpZ2h0IC0gMSkgPDwgMTYpKTsKLQkJT1VUX1JJTkcoMCk7Ci0JCUFEVkFOQ0VfTFBfUklORygpOwotCX0gZWxzZSB7Ci0JCUJFR0lOX0xQX1JJTkcoNik7Ci0KLQkJT1VUX1JJTkcoR0ZYX09QX0RSQVdSRUNUX0lORk8pOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoMCk7Ci0JCU9VVF9SSU5HKHNhcmVhX3ByaXYtPndpZHRoIHwgc2FyZWFfcHJpdi0+aGVpZ2h0IDw8IDE2KTsKLQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+d2lkdGggfCBzYXJlYV9wcml2LT5oZWlnaHQgPDwgMTYpOwotCQlPVVRfUklORygwKTsKLQotCQlBRFZBTkNFX0xQX1JJTkcoKTsKLQl9Ci0KLQlzYXJlYV9wcml2LT5jdHhPd25lciA9IERSTV9LRVJORUxfQ09OVEVYVDsKLQotCXVwcGVyWzBdID0gdXBwZXJbMV0gPSAwOwotCXNsaWNlWzBdID0gbWF4KHNhcmVhX3ByaXYtPnBpcGVBX2ggLyBuaGl0cywgMSk7Ci0Jc2xpY2VbMV0gPSBtYXgoc2FyZWFfcHJpdi0+cGlwZUJfaCAvIG5oaXRzLCAxKTsKLQlsb3dlclswXSA9IHNhcmVhX3ByaXYtPnBpcGVBX3kgKyBzbGljZVswXTsKLQlsb3dlclsxXSA9IHNhcmVhX3ByaXYtPnBpcGVCX3kgKyBzbGljZVswXTsKLQotCXNwaW5fbG9jaygmZGV2LT5kcndfbG9jayk7Ci0KLQkvKiBFbWl0IGJsaXRzIGZvciBidWZmZXIgc3dhcHMsIHBhcnRpdGlvbmluZyBib3RoIG91dHB1dHMgaW50byBhcyBtYW55Ci0JICogc2xpY2VzIGFzIHRoZXJlIGFyZSBidWZmZXIgc3dhcHMgc2NoZWR1bGVkIGluIG9yZGVyIHRvIGF2b2lkIHRlYXJpbmcKLQkgKiAoYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIHNpbmdsZSBidWZmZXIgc3dhcCB3b3VsZCBhbHdheXMKLQkgKiBjb21wbGV0ZSBiZWZvcmUgc2Nhbm91dCBzdGFydHMpLgotCSAqLwotCWZvciAoaSA9IDA7IGkrKyA8IG5oaXRzOwotCSAgICAgdXBwZXJbMF0gPSBsb3dlclswXSwgbG93ZXJbMF0gKz0gc2xpY2VbMF0sCi0JICAgICB1cHBlclsxXSA9IGxvd2VyWzFdLCBsb3dlclsxXSArPSBzbGljZVsxXSkgewotCQlpZiAoaSA9PSBuaGl0cykKLQkJCWxvd2VyWzBdID0gbG93ZXJbMV0gPSBzYXJlYV9wcml2LT5oZWlnaHQ7Ci0KLQkJbGlzdF9mb3JfZWFjaChoaXQsICZoaXRzKSB7Ci0JCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2hpdCA9Ci0JCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCQkJc3RydWN0IGRybV9jbGlwX3JlY3QgKnJlY3Q7Ci0JCQlpbnQgbnVtX3JlY3RzLCBwaXBlOwotCQkJdW5zaWduZWQgc2hvcnQgdG9wLCBib3R0b207Ci0KLQkJCWRydyA9IGRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXBfaGl0LT5kcndfaWQpOwotCi0JCQlpZiAoIWRydykKLQkJCQljb250aW51ZTsKLQotCQkJcmVjdCA9IGRydy0+cmVjdHM7Ci0JCQlwaXBlID0gc3dhcF9oaXQtPnBpcGU7Ci0JCQl0b3AgPSB1cHBlcltwaXBlXTsKLQkJCWJvdHRvbSA9IGxvd2VyW3BpcGVdOwotCi0JCQlmb3IgKG51bV9yZWN0cyA9IGRydy0+bnVtX3JlY3RzOyBudW1fcmVjdHMtLTsgcmVjdCsrKSB7Ci0JCQkJaW50IHkxID0gbWF4KHJlY3QtPnkxLCB0b3ApOwotCQkJCWludCB5MiA9IG1pbihyZWN0LT55MiwgYm90dG9tKTsKLQotCQkJCWlmICh5MSA+PSB5MikKLQkJCQkJY29udGludWU7Ci0KLQkJCQlCRUdJTl9MUF9SSU5HKDgpOwotCi0JCQkJT1VUX1JJTkcoY21kKTsKLQkJCQlPVVRfUklORyhyb3BjcHAgfCBkc3RfcGl0Y2gpOwotCQkJCU9VVF9SSU5HKCh5MSA8PCAxNikgfCByZWN0LT54MSk7Ci0JCQkJT1VUX1JJTkcoKHkyIDw8IDE2KSB8IHJlY3QtPngyKTsKLQkJCQlPVVRfUklORyhzYXJlYV9wcml2LT5mcm9udF9vZmZzZXQpOwotCQkJCU9VVF9SSU5HKCh5MSA8PCAxNikgfCByZWN0LT54MSk7Ci0JCQkJT1VUX1JJTkcoc3JjX3BpdGNoKTsKLQkJCQlPVVRfUklORyhzYXJlYV9wcml2LT5iYWNrX29mZnNldCk7Ci0KLQkJCQlBRFZBTkNFX0xQX1JJTkcoKTsKLQkJCX0KLQkJfQotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWxpc3RfZm9yX2VhY2hfc2FmZShoaXQsIHRtcCwgJmhpdHMpIHsKLQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9oaXQgPQotCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCi0JCWxpc3RfZGVsKGhpdCk7Ci0KLQkJZHJtX2ZyZWUoc3dhcF9oaXQsIHNpemVvZigqc3dhcF9oaXQpLCBEUk1fTUVNX0RSSVZFUik7Ci0JfQotfQotCi1pcnFyZXR1cm5fdCBpOTE1X2RyaXZlcl9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MTYgdGVtcDsKLQl1MzIgcGlwZWFfc3RhdHMsIHBpcGViX3N0YXRzOwotCi0JcGlwZWFfc3RhdHMgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQVNUQVQpOwotCXBpcGViX3N0YXRzID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUJTVEFUKTsKLQotCXRlbXAgPSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKLQotCXRlbXAgJj0gKFVTRVJfSU5UX0ZMQUcgfCBWU1lOQ19QSVBFQV9GTEFHIHwgVlNZTkNfUElQRUJfRkxBRyk7Ci0KLQlEUk1fREVCVUcoIiVzIGZsYWc9JTA4eFxuIiwgX19GVU5DVElPTl9fLCB0ZW1wKTsKLQotCWlmICh0ZW1wID09IDApCi0JCXJldHVybiBJUlFfTk9ORTsKLQotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SLCB0ZW1wKTsKLQkodm9pZCkgSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7Ci0JRFJNX1JFQURNRU1PUllCQVJSSUVSKCk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IFJFQURfQlJFQURDUlVNQihkZXZfcHJpdik7Ci0KLQlpZiAodGVtcCAmIFVTRVJfSU5UX0ZMQUcpCi0JCURSTV9XQUtFVVAoJmRldl9wcml2LT5pcnFfcXVldWUpOwotCi0JaWYgKHRlbXAgJiAoVlNZTkNfUElQRUFfRkxBRyB8IFZTWU5DX1BJUEVCX0ZMQUcpKSB7Ci0JCWludCB2YmxhbmtfcGlwZSA9IGRldl9wcml2LT52YmxhbmtfcGlwZTsKLQotCQlpZiAoKHZibGFua19waXBlICYKLQkJICAgICAoRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSB8IERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKQotCQkgICAgPT0gKERSTV9JOTE1X1ZCTEFOS19QSVBFX0EgfCBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkgewotCQkJaWYgKHRlbXAgJiBWU1lOQ19QSVBFQV9GTEFHKQotCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKLQkJCWlmICh0ZW1wICYgVlNZTkNfUElQRUJfRkxBRykKLQkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZDIpOwotCQl9IGVsc2UgaWYgKCgodGVtcCAmIFZTWU5DX1BJUEVBX0ZMQUcpICYmCi0JCQkgICAgKHZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQSkpIHx8Ci0JCQkgICAoKHRlbXAgJiBWU1lOQ19QSVBFQl9GTEFHKSAmJgotCQkJICAgICh2YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSkKLQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKLQotCQlEUk1fV0FLRVVQKCZkZXYtPnZibF9xdWV1ZSk7Ci0JCWRybV92Ymxfc2VuZF9zaWduYWxzKGRldik7Ci0KLQkJaWYgKGRldl9wcml2LT5zd2Fwc19wZW5kaW5nID4gMCkKLQkJCWRybV9sb2NrZWRfdGFza2xldChkZXYsIGk5MTVfdmJsYW5rX3Rhc2tsZXQpOwotCQlJOTE1X1dSSVRFKEk5MTVSRUdfUElQRUFTVEFULAotCQkJcGlwZWFfc3RhdHN8STkxNV9WQkxBTktfSU5URVJSVVBUX0VOQUJMRXwKLQkJCUk5MTVfVkJMQU5LX0NMRUFSKTsKLQkJSTkxNV9XUklURShJOTE1UkVHX1BJUEVCU1RBVCwKLQkJCXBpcGViX3N0YXRzfEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEV8Ci0JCQlJOTE1X1ZCTEFOS19DTEVBUik7Ci0JfQotCi0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaW50IGk5MTVfZW1pdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlpOTE1X2tlcm5lbF9sb3N0X2NvbnRleHQoZGV2KTsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2VucXVldWUgPSArK2Rldl9wcml2LT5jb3VudGVyOwotCi0JaWYgKGRldl9wcml2LT5jb3VudGVyID4gMHg3RkZGRkZGRlVMKQotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9lbnF1ZXVlID0gZGV2X3ByaXYtPmNvdW50ZXIgPSAxOwotCi0JQkVHSU5fTFBfUklORyg2KTsKLQlPVVRfUklORyhDTURfU1RPUkVfRFdPUkRfSURYKTsKLQlPVVRfUklORygyMCk7Ci0JT1VUX1JJTkcoZGV2X3ByaXYtPmNvdW50ZXIpOwotCU9VVF9SSU5HKDApOwotCU9VVF9SSU5HKDApOwotCU9VVF9SSU5HKEdGWF9PUF9VU0VSX0lOVEVSUlVQVCk7Ci0JQURWQU5DRV9MUF9SSU5HKCk7Ci0KLQlyZXR1cm4gZGV2X3ByaXYtPmNvdW50ZXI7Ci19Ci0KLXN0YXRpYyBpbnQgaTkxNV93YWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IGlycV9ucikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQgPSAwOwotCi0JRFJNX0RFQlVHKCJpcnFfbnI9JWQgYnJlYWRjcnVtYj0lZFxuIiwgaXJxX25yLAotCQkgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikpOwotCi0JaWYgKFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgPj0gaXJxX25yKQotCQlyZXR1cm4gMDsKLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5wZXJmX2JveGVzIHw9IEk5MTVfQk9YX1dBSVQ7Ci0KLQlEUk1fV0FJVF9PTihyZXQsIGRldl9wcml2LT5pcnFfcXVldWUsIDMgKiBEUk1fSFosCi0JCSAgICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpID49IGlycV9ucik7Ci0KLQlpZiAocmV0ID09IC1FQlVTWSkgewotCQlEUk1fRVJST1IoIkVCVVNZIC0tIHJlYzogJWQgZW1pdHRlZDogJWRcbiIsCi0JCQkgIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdiksIChpbnQpZGV2X3ByaXYtPmNvdW50ZXIpOwotCX0KLQotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UsCi0JCQkJICAgICAgYXRvbWljX3QgKmNvdW50ZXIpCi17Ci0JZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgaW50IGN1cl92Ymxhbms7Ci0JaW50IHJldCA9IDA7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlEUk1fV0FJVF9PTihyZXQsIGRldi0+dmJsX3F1ZXVlLCAzICogRFJNX0haLAotCQkgICAgKCgoY3VyX3ZibGFuayA9IGF0b21pY19yZWFkKGNvdW50ZXIpKQotCQkJLSAqc2VxdWVuY2UpIDw9ICgxPDwyMykpKTsKLQotCSpzZXF1ZW5jZSA9IGN1cl92Ymxhbms7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi0KLWludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQotewotCXJldHVybiBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCAmZGV2LT52YmxfcmVjZWl2ZWQpOwotfQotCi1pbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCi17Ci0JcmV0dXJuIGk5MTVfZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsICZkZXYtPnZibF9yZWNlaXZlZDIpOwotfQotCi0vKiBOZWVkcyB0aGUgbG9jayBhcyBpdCB0b3VjaGVzIHRoZSByaW5nLgotICovCi1pbnQgaTkxNV9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X2lycV9lbWl0X3QgKmVtaXQgPSBkYXRhOwotCWludCByZXN1bHQ7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmVzdWx0ID0gaTkxNV9lbWl0X2lycShkZXYpOwotCi0JaWYgKERSTV9DT1BZX1RPX1VTRVIoZW1pdC0+aXJxX3NlcSwgJnJlc3VsdCwgc2l6ZW9mKGludCkpKSB7Ci0JCURSTV9FUlJPUigiY29weV90b191c2VyXG4iKTsKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIERvZXNuJ3QgbmVlZCB0aGUgaGFyZHdhcmUgbG9jay4KLSAqLwotaW50IGk5MTVfaXJxX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV9pcnFfd2FpdF90ICppcnF3YWl0ID0gZGF0YTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiBpOTE1X3dhaXRfaXJxKGRldiwgaXJxd2FpdC0+aXJxX3NlcSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGk5MTVfZW5hYmxlX2ludGVycnVwdCAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUxNiBmbGFnOwotCi0JZmxhZyA9IDA7Ci0JaWYgKGRldl9wcml2LT52YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0EpCi0JCWZsYWcgfD0gVlNZTkNfUElQRUFfRkxBRzsKLQlpZiAoZGV2X3ByaXYtPnZibGFua19waXBlICYgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikKLQkJZmxhZyB8PSBWU1lOQ19QSVBFQl9GTEFHOwotCi0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCBVU0VSX0lOVF9GTEFHIHwgZmxhZyk7Ci19Ci0KLS8qIFNldCB0aGUgdmJsYW5rIG1vbml0b3IgcGlwZQotICovCi1pbnQgaTkxNV92YmxhbmtfcGlwZV9zZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV92YmxhbmtfcGlwZV90ICpwaXBlID0gZGF0YTsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChwaXBlLT5waXBlICYgfihEUk1fSTkxNV9WQkxBTktfUElQRV9BfERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpKSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggaW52YWxpZCBwaXBlIDB4JXhcbiIsIHBpcGUtPnBpcGUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+dmJsYW5rX3BpcGUgPSBwaXBlLT5waXBlOwotCi0JaTkxNV9lbmFibGVfaW50ZXJydXB0IChkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLWludCBpOTE1X3ZibGFua19waXBlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9pOTE1X3ZibGFua19waXBlX3QgKnBpcGUgPSBkYXRhOwotCXUxNiBmbGFnOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZmxhZyA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9FTkFCTEVfUik7Ci0JcGlwZS0+cGlwZSA9IDA7Ci0JaWYgKGZsYWcgJiBWU1lOQ19QSVBFQV9GTEFHKQotCQlwaXBlLT5waXBlIHw9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0E7Ci0JaWYgKGZsYWcgJiBWU1lOQ19QSVBFQl9GTEFHKQotCQlwaXBlLT5waXBlIHw9IERSTV9JOTE1X1ZCTEFOS19QSVBFX0I7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBTY2hlZHVsZSBidWZmZXIgc3dhcCBhdCBnaXZlbiB2ZXJ0aWNhbCBibGFuay4KLSAqLwotaW50IGk5MTVfdmJsYW5rX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1faTkxNV92Ymxhbmtfc3dhcF90ICpzd2FwID0gZGF0YTsKLQlkcm1faTkxNV92Ymxfc3dhcF90ICp2Ymxfc3dhcDsKLQl1bnNpZ25lZCBpbnQgcGlwZSwgc2VxdHlwZSwgY3Vyc2VxOwotCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Ci0Jc3RydWN0IGxpc3RfaGVhZCAqbGlzdDsKLQotCWlmICghZGV2X3ByaXYpIHsKLQkJRFJNX0VSUk9SKCIlcyBjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnJvdGF0aW9uKSB7Ci0JCURSTV9ERUJVRygiUm90YXRpb24gbm90IHN1cHBvcnRlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChzd2FwLT5zZXF0eXBlICYgfihfRFJNX1ZCTEFOS19SRUxBVElWRSB8IF9EUk1fVkJMQU5LX0FCU09MVVRFIHwKLQkJCSAgICAgX0RSTV9WQkxBTktfU0VDT05EQVJZIHwgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykpIHsKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIHNlcXVlbmNlIHR5cGUgMHgleFxuIiwgc3dhcC0+c2VxdHlwZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXBpcGUgPSAoc3dhcC0+c2VxdHlwZSAmIF9EUk1fVkJMQU5LX1NFQ09OREFSWSkgPyAxIDogMDsKLQotCXNlcXR5cGUgPSBzd2FwLT5zZXF0eXBlICYgKF9EUk1fVkJMQU5LX1JFTEFUSVZFIHwgX0RSTV9WQkxBTktfQUJTT0xVVEUpOwotCi0JaWYgKCEoZGV2X3ByaXYtPnZibGFua19waXBlICYgKDEgPDwgcGlwZSkpKSB7Ci0JCURSTV9FUlJPUigiSW52YWxpZCBwaXBlICVkXG4iLCBwaXBlKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWlmICghZHJtX2dldF9kcmF3YWJsZV9pbmZvKGRldiwgc3dhcC0+ZHJhd2FibGUpKSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQkJRFJNX0RFQlVHKCJJbnZhbGlkIGRyYXdhYmxlIElEICVkXG4iLCBzd2FwLT5kcmF3YWJsZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZHJ3X2xvY2ssIGlycWZsYWdzKTsKLQotCWN1cnNlcSA9IGF0b21pY19yZWFkKHBpcGUgPyAmZGV2LT52YmxfcmVjZWl2ZWQyIDogJmRldi0+dmJsX3JlY2VpdmVkKTsKLQotCWlmIChzZXF0eXBlID09IF9EUk1fVkJMQU5LX1JFTEFUSVZFKQotCQlzd2FwLT5zZXF1ZW5jZSArPSBjdXJzZXE7Ci0KLQlpZiAoKGN1cnNlcSAtIHN3YXAtPnNlcXVlbmNlKSA8PSAoMTw8MjMpKSB7Ci0JCWlmIChzd2FwLT5zZXF0eXBlICYgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykgewotCQkJc3dhcC0+c2VxdWVuY2UgPSBjdXJzZXEgKyAxOwotCQl9IGVsc2UgewotCQkJRFJNX0RFQlVHKCJNaXNzZWQgdGFyZ2V0IHNlcXVlbmNlXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0KLQlsaXN0X2Zvcl9lYWNoKGxpc3QsICZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpIHsKLQkJdmJsX3N3YXAgPSBsaXN0X2VudHJ5KGxpc3QsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOwotCi0JCWlmICh2Ymxfc3dhcC0+ZHJ3X2lkID09IHN3YXAtPmRyYXdhYmxlICYmCi0JCSAgICB2Ymxfc3dhcC0+cGlwZSA9PSBwaXBlICYmCi0JCSAgICB2Ymxfc3dhcC0+c2VxdWVuY2UgPT0gc3dhcC0+c2VxdWVuY2UpIHsKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7Ci0JCQlEUk1fREVCVUcoIkFscmVhZHkgc2NoZWR1bGVkXG4iKTsKLQkJCXJldHVybiAwOwotCQl9Ci0JfQotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCWlmIChkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA+PSAxMDApIHsKLQkJRFJNX0RFQlVHKCJUb28gbWFueSBzd2FwcyBxdWV1ZWRcbiIpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCXZibF9zd2FwID0gZHJtX2NhbGxvYygxLCBzaXplb2YoKnZibF9zd2FwKSwgRFJNX01FTV9EUklWRVIpOwotCi0JaWYgKCF2Ymxfc3dhcCkgewotCQlEUk1fRVJST1IoIkZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgdG8gcXVldWUgc3dhcFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KLQotCURSTV9ERUJVRygiXG4iKTsKLQotCXZibF9zd2FwLT5kcndfaWQgPSBzd2FwLT5kcmF3YWJsZTsKLQl2Ymxfc3dhcC0+cGlwZSA9IHBpcGU7Ci0JdmJsX3N3YXAtPnNlcXVlbmNlID0gc3dhcC0+c2VxdWVuY2U7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCWxpc3RfYWRkX3RhaWwoJnZibF9zd2FwLT5oZWFkLCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKTsKLQlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZysrOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnN3YXBzX2xvY2ssIGlycWZsYWdzKTsKLQotCXJldHVybiAwOwotfQotCi0vKiBkcm1fZG1hLmggaG9va3MKLSovCi12b2lkIGk5MTVfZHJpdmVyX2lycV9wcmVpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19IV1NUQU0sIDB4ZmZmZSk7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX01BU0tfUiwgMHgwKTsKLQlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfRU5BQkxFX1IsIDB4MCk7Ci19Ci0KLXZvaWQgaTkxNV9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlzcGluX2xvY2tfaW5pdCgmZGV2X3ByaXYtPnN3YXBzX2xvY2spOwotCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+dmJsX3N3YXBzLmhlYWQpOwotCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nID0gMDsKLQotCWlmICghZGV2X3ByaXYtPnZibGFua19waXBlKQotCQlkZXZfcHJpdi0+dmJsYW5rX3BpcGUgPSBEUk1fSTkxNV9WQkxBTktfUElQRV9BOwotCWk5MTVfZW5hYmxlX2ludGVycnVwdChkZXYpOwotCURSTV9JTklUX1dBSVRRVUVVRSgmZGV2X3ByaXYtPmlycV9xdWV1ZSk7Ci19Ci0KLXZvaWQgaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCXUxNiB0ZW1wOwotCi0JaWYgKCFkZXZfcHJpdikKLQkJcmV0dXJuOwotCi0JSTkxNV9XUklURTE2KEk5MTVSRUdfSFdTVEFNLCAweGZmZmYpOwotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9NQVNLX1IsIDB4ZmZmZik7Ci0JSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCAweDApOwotCi0JdGVtcCA9IEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOwotCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SLCB0ZW1wKTsKLX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjMwMF9jbWRidWYuYyBiL2RyaXZlcnMvY2hhci9kcm0vcjMwMF9jbWRidWYuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUzNTgxMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL3IzMDBfY21kYnVmLmMKKysrIC9kZXYvbnVsbApAQCAtMSw5OTggKzAsMCBAQAotLyogcjMwMF9jbWRidWYuYyAtLSBDb21tYW5kIGJ1ZmZlciBlbWlzc2lvbiBmb3IgUjMwMCAtKi0gbGludXgtYyAtKi0KLSAqCi0gKiBDb3B5cmlnaHQgKEMpIFRoZSBXZWF0aGVyIENoYW5uZWwsIEluYy4gIDIwMDIuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgTmljb2xhaSBIYWVobmxlLgotICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBUaGUgV2VhdGhlciBDaGFubmVsIChUTSkgZnVuZGVkIFR1bmdzdGVuIEdyYXBoaWNzIHRvIGRldmVsb3AgdGhlCi0gKiBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIFJhZGVvbiA4NTAwIGRyaXZlciB1bmRlciB0aGUgWEZyZWU4NiBsaWNlbnNlLgotICogVGhpcyBub3RpY2UgbXVzdCBiZSBwcmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIEF1dGhvcnM6Ci0gKiAgICBOaWNvbGFpIEhhZWhubGUgPHByZWZlY3RfQGdteC5uZXQ+Ci0gKi8KLQotI2luY2x1ZGUgImRybVAuaCIKLSNpbmNsdWRlICJkcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJtLmgiCi0jaW5jbHVkZSAicmFkZW9uX2Rydi5oIgotI2luY2x1ZGUgInIzMDBfcmVnLmgiCi0KLSNkZWZpbmUgUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTCQk0Ci0KLS8qIFZhbHVlcyBmb3IgUjMwMF9SRV9DTElQUkVDVF9DTlRMIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIGNsaXByZWN0cwotICovCi1zdGF0aWMgY29uc3QgaW50IHIzMDBfY2xpcHJlY3RfY250bFs0XSA9IHsKLQkweEFBQUEsCi0JMHhFRUVFLAotCTB4RkVGRSwKLQkweEZGRkUKLX07Ci0KLS8qKgotICogRW1pdCB1cCB0byBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMgY2xpcHJlY3RzIGZyb20gdGhlIGdpdmVuIGNvbW1hbmQKLSAqIGJ1ZmZlciwgc3RhcnRpbmcgd2l0aCBpbmRleCBuLgotICovCi1zdGF0aWMgaW50IHIzMDBfZW1pdF9jbGlwcmVjdHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLCBpbnQgbikKLXsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7Ci0JaW50IG5yOwotCWludCBpOwotCVJJTkdfTE9DQUxTOwotCi0JbnIgPSBjbWRidWYtPm5ib3ggLSBuOwotCWlmIChuciA+IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUykKLQkJbnIgPSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFM7Ci0KLQlEUk1fREVCVUcoIiVpIGNsaXByZWN0c1xuIiwgbnIpOwotCi0JaWYgKG5yKSB7Ci0JCUJFR0lOX1JJTkcoNiArIG5yICogMik7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9DTElQUkVDVF9UTF8wLCBuciAqIDIgLSAxKSk7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG5yOyArK2kpIHsKLQkJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVJfVU5DSEVDS0VECi0JCQkgICAgKCZib3gsICZjbWRidWYtPmJveGVzW24gKyBpXSwgc2l6ZW9mKGJveCkpKSB7Ci0JCQkJRFJNX0VSUk9SKCJjb3B5IGNsaXByZWN0IGZhdWx0ZWRcbiIpOwotCQkJCXJldHVybiAtRUZBVUxUOwotCQkJfQotCi0JCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgewotCQkJCWJveC54MSA9IChib3gueDEpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJCWJveC55MSA9IChib3gueTEpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJCWJveC54MiA9IChib3gueDIpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJCWJveC55MiA9IChib3gueTIpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJfSBlbHNlIHsKLQkJCQlib3gueDEgPSAoYm94LngxICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCQkJCWJveC55MSA9IChib3gueTEgKyBSMzAwX0NMSVBSRUNUX09GRlNFVCkgJgotCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7Ci0JCQkJYm94LngyID0gKGJveC54MiArIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUKSAmCi0JCQkJCVIzMDBfQ0xJUFJFQ1RfTUFTSzsKLQkJCQlib3gueTIgPSAoYm94LnkyICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKLQkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOwotCi0JCQl9Ci0JCQlPVVRfUklORygoYm94LngxIDw8IFIzMDBfQ0xJUFJFQ1RfWF9TSElGVCkgfAotCQkJCSAoYm94LnkxIDw8IFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCkpOwotCQkJT1VUX1JJTkcoKGJveC54MiA8PCBSMzAwX0NMSVBSRUNUX1hfU0hJRlQpIHwKLQkJCQkgKGJveC55MiA8PCBSMzAwX0NMSVBSRUNUX1lfU0hJRlQpKTsKLQotCQl9Ci0KLQkJT1VUX1JJTkdfUkVHKFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCwgcjMwMF9jbGlwcmVjdF9jbnRsW25yIC0gMV0pOwotCi0JCS8qIFRPRE8vU0VDVVJJVFk6IEZvcmNlIHNjaXNzb3JzIHRvIGEgc2FmZSB2YWx1ZSwgb3RoZXJ3aXNlIHRoZQotCQkgKiBjbGllbnQgbWlnaHQgYmUgYWJsZSB0byB0cmFtcGxlIG92ZXIgbWVtb3J5LgotCQkgKiBUaGUgaW1wYWN0IHNob3VsZCBiZSB2ZXJ5IGxpbWl0ZWQsIGJ1dCBJJ2QgcmF0aGVyIGJlIHNhZmUgdGhhbgotCQkgKiBzb3JyeS4KLQkJICovCi0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9TQ0lTU09SU19UTCwgMSkpOwotCQlPVVRfUklORygwKTsKLQkJT1VUX1JJTkcoUjMwMF9TQ0lTU09SU19YX01BU0sgfCBSMzAwX1NDSVNTT1JTX1lfTUFTSyk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0gZWxzZSB7Ci0JCS8qIFdoeSB3ZSBhbGxvdyB6ZXJvIGNsaXByZWN0IHJlbmRlcmluZzoKLQkJICogVGhlcmUgYXJlIHNvbWUgY29tbWFuZHMgaW4gYSBjb21tYW5kIGJ1ZmZlciB0aGF0IG11c3QgYmUgc3VibWl0dGVkCi0JCSAqIGV2ZW4gd2hlbiB0aGVyZSBhcmUgbm8gY2xpcHJlY3RzLCBlLmcuIERNQSBidWZmZXIgZGlzY2FyZAotCQkgKiBvciBzdGF0ZSBzZXR0aW5nICh0aG91Z2ggc3RhdGUgc2V0dGluZyBjb3VsZCBiZSBhdm9pZGVkIGJ5Ci0JCSAqIHNpbXVsYXRpbmcgYSBsb3NzIG9mIGNvbnRleHQpLgotCQkgKgotCQkgKiBOb3cgc2luY2UgdGhlIGNtZGJ1ZiBpbnRlcmZhY2UgaXMgc28gY2hhb3RpYyByaWdodCBub3cgKGFuZCBpcwotCQkgKiBib3VuZCB0byByZW1haW4gdGhhdCB3YXkgZm9yIGEgYml0IHVudGlsIHRoaW5ncyBzZXR0bGUgZG93biksCi0JCSAqIGl0IGlzIGJhc2ljYWxseSBpbXBvc3NpYmxlIHRvIGZpbHRlciBvdXQgdGhlIGNvbW1hbmRzIHRoYXQgYXJlCi0JCSAqIG5lY2Vzc2FyeSBhbmQgdGhvc2UgdGhhdCBhcmVuJ3QuCi0JCSAqCi0JCSAqIFNvIEkgY2hvb3NlIHRoZSBzYWZlIHdheSBhbmQgZG9uJ3QgZG8gYW55IGZpbHRlcmluZyBhdCBhbGw7Ci0JCSAqIGluc3RlYWQsIEkgc2ltcGx5IHNldCB1cCB0aGUgZW5naW5lIHNvIHRoYXQgYWxsIHJlbmRlcmluZwotCQkgKiBjYW4ndCBwcm9kdWNlIGFueSBmcmFnbWVudHMuCi0JCSAqLwotCQlCRUdJTl9SSU5HKDIpOwotCQlPVVRfUklOR19SRUcoUjMwMF9SRV9DTElQUkVDVF9DTlRMLCAwKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB1OCByMzAwX3JlZ19mbGFnc1sweDEwMDAwID4+IDJdOwotCi12b2lkIHIzMDBfaW5pdF9yZWdfZmxhZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpbnQgaTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JbWVtc2V0KHIzMDBfcmVnX2ZsYWdzLCAwLCAweDEwMDAwID4+IDIpOwotI2RlZmluZSBBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LG1hcmspIFwKLQkJZm9yKGk9KChyZWcpPj4yKTtpPCgocmVnKT4+MikrKGNvdW50KTtpKyspXAotCQkJcjMwMF9yZWdfZmxhZ3NbaV18PShtYXJrKTsKLQotI2RlZmluZSBNQVJLX1NBRkUJCTEKLSNkZWZpbmUgTUFSS19DSEVDS19PRkZTRVQJMgotCi0jZGVmaW5lIEFERF9SQU5HRShyZWcsIGNvdW50KQlBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LCBNQVJLX1NBRkUpCi0KLQkvKiB0aGVzZSBtYXRjaCBjbWR1Y3MoKSBjb21tYW5kIGluIHIzMDBfZHJpdmVyL3IzMDAvcjMwMF9jbWRidWYuYyAqLwotCUFERF9SQU5HRShSMzAwX1NFX1ZQT1JUX1hTQ0FMRSwgNik7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX0NOVEwsIDEpOwotCUFERF9SQU5HRShSMzAwX1NFX1ZURV9DTlRMLCAyKTsKLQlBRERfUkFOR0UoMHgyMTM0LCAyKTsKLQlBRERfUkFOR0UoUjMwMF9WQVBfQ05UTF9TVEFUVVMsIDEpOwotCUFERF9SQU5HRShSMzAwX1ZBUF9JTlBVVF9DTlRMXzAsIDIpOwotCUFERF9SQU5HRSgweDIxREMsIDEpOwotCUFERF9SQU5HRShSMzAwX1ZBUF9VTktOT1dOXzIyMUMsIDEpOwotCUFERF9SQU5HRShSMzAwX1ZBUF9DTElQX1hfMCwgNCk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX1BWU19XQUlUSURMRSwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX1VOS05PV05fMjI4OCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAsIDIpOwotCUFERF9SQU5HRShSMzAwX1ZBUF9QVlNfQ05UTF8xLCAzKTsKLQlBRERfUkFOR0UoUjMwMF9HQl9FTkFCTEUsIDEpOwotCUFERF9SQU5HRShSMzAwX0dCX01TUE9TMCwgNSk7Ci0JQUREX1JBTkdFKFIzMDBfVFhfQ05UTCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVFhfRU5BQkxFLCAxKTsKLQlBRERfUkFOR0UoMHg0MjAwLCA0KTsKLQlBRERfUkFOR0UoMHg0MjE0LCAxKTsKLQlBRERfUkFOR0UoUjMwMF9SRV9QT0lOVFNJWkUsIDEpOwotCUFERF9SQU5HRSgweDQyMzAsIDMpOwotCUFERF9SQU5HRShSMzAwX1JFX0xJTkVfQ05ULCAxKTsKLQlBRERfUkFOR0UoUjMwMF9SRV9VTks0MjM4LCAxKTsKLQlBRERfUkFOR0UoMHg0MjYwLCAzKTsKLQlBRERfUkFOR0UoUjMwMF9SRV9TSEFERSwgNCk7Ci0JQUREX1JBTkdFKFIzMDBfUkVfUE9MWUdPTl9NT0RFLCA1KTsKLQlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19DTlRMLCAxKTsKLQlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiwgNCk7Ci0JQUREX1JBTkdFKFIzMDBfUkVfT0NDTFVTSU9OX0NOVEwsIDEpOwotCUFERF9SQU5HRShSMzAwX1JFX0NVTExfQ05UTCwgMSk7Ci0JQUREX1JBTkdFKDB4NDJDMCwgMik7Ci0JQUREX1JBTkdFKFIzMDBfUlNfQ05UTF8wLCAyKTsKLQlBRERfUkFOR0UoUjMwMF9SU19JTlRFUlBfMCwgOCk7Ci0JQUREX1JBTkdFKFIzMDBfUlNfUk9VVEVfMCwgOCk7Ci0JQUREX1JBTkdFKDB4NDNBNCwgMik7Ci0JQUREX1JBTkdFKDB4NDNFOCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX0NOVExfMCwgMyk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX05PREVfMCwgNCk7Ci0JQUREX1JBTkdFKFIzMDBfUEZTX1RFWElfMCwgNjQpOwotCUFERF9SQU5HRSgweDQ2QTQsIDUpOwotCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjBfMCwgNjQpOwotCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjFfMCwgNjQpOwotCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjJfMCwgNjQpOwotCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjNfMCwgNjQpOwotCUFERF9SQU5HRShSMzAwX1JFX0ZPR19TVEFURSwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfRk9HX0NPTE9SX1IsIDMpOwotCUFERF9SQU5HRShSMzAwX1BQX0FMUEhBX1RFU1QsIDIpOwotCUFERF9SQU5HRSgweDRCRDgsIDEpOwotCUFERF9SQU5HRShSMzAwX1BGU19QQVJBTV8wX1gsIDY0KTsKLQlBRERfUkFOR0UoMHg0RTAwLCAxKTsKLQlBRERfUkFOR0UoUjMwMF9SQjNEX0NCTEVORCwgMik7Ci0JQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUk1BU0ssIDEpOwotCUFERF9SQU5HRShSMzAwX1JCM0RfQkxFTkRfQ09MT1IsIDMpOwotCUFERF9SQU5HRV9NQVJLKFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAsIDEsIE1BUktfQ0hFQ0tfT0ZGU0VUKTsJLyogY2hlY2sgb2Zmc2V0ICovCi0JQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUlBJVENIMCwgMSk7Ci0JQUREX1JBTkdFKDB4NEU1MCwgOSk7Ci0JQUREX1JBTkdFKDB4NEU4OCwgMSk7Ci0JQUREX1JBTkdFKDB4NEVBMCwgMik7Ci0JQUREX1JBTkdFKFIzMDBfUkIzRF9aU1RFTkNJTF9DTlRMXzAsIDMpOwotCUFERF9SQU5HRShSMzAwX1JCM0RfWlNURU5DSUxfRk9STUFULCA0KTsKLQlBRERfUkFOR0VfTUFSSyhSMzAwX1JCM0RfREVQVEhPRkZTRVQsIDEsIE1BUktfQ0hFQ0tfT0ZGU0VUKTsJLyogY2hlY2sgb2Zmc2V0ICovCi0JQUREX1JBTkdFKFIzMDBfUkIzRF9ERVBUSFBJVENILCAxKTsKLQlBRERfUkFOR0UoMHg0RjI4LCAxKTsKLQlBRERfUkFOR0UoMHg0RjMwLCAyKTsKLQlBRERfUkFOR0UoMHg0RjQ0LCAxKTsKLQlBRERfUkFOR0UoMHg0RjU0LCAxKTsKLQotCUFERF9SQU5HRShSMzAwX1RYX0ZJTFRFUl8wLCAxNik7Ci0JQUREX1JBTkdFKFIzMDBfVFhfRklMVEVSMV8wLCAxNik7Ci0JQUREX1JBTkdFKFIzMDBfVFhfU0laRV8wLCAxNik7Ci0JQUREX1JBTkdFKFIzMDBfVFhfRk9STUFUXzAsIDE2KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9QSVRDSF8wLCAxNik7Ci0JLyogVGV4dHVyZSBvZmZzZXQgaXMgZGFuZ2Vyb3VzIGFuZCBuZWVkcyBtb3JlIGNoZWNraW5nICovCi0JQUREX1JBTkdFX01BUksoUjMwMF9UWF9PRkZTRVRfMCwgMTYsIE1BUktfQ0hFQ0tfT0ZGU0VUKTsKLQlBRERfUkFOR0UoUjMwMF9UWF9DSFJPTUFfS0VZXzAsIDE2KTsKLQlBRERfUkFOR0UoUjMwMF9UWF9CT1JERVJfQ09MT1JfMCwgMTYpOwotCi0JLyogU3BvcmFkaWMgcmVnaXN0ZXJzIHVzZWQgYXMgcHJpbWl0aXZlcyBhcmUgZW1pdHRlZCAqLwotCUFERF9SQU5HRShSMzAwX1JCM0RfWkNBQ0hFX0NUTFNUQVQsIDEpOwotCUFERF9SQU5HRShSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMSk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfMCwgOCk7Ci0JQUREX1JBTkdFKFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMCwgOCk7Ci0KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgewotCQlBRERfUkFOR0UoMHg0MDc0LCAxNik7Ci0JfQotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9jaGVja19yYW5nZSh1bnNpZ25lZCByZWcsIGludCBjb3VudCkKLXsKLQlpbnQgaTsKLQlpZiAocmVnICYgfjB4ZmZmZikKLQkJcmV0dXJuIC0xOwotCWZvciAoaSA9IChyZWcgPj4gMik7IGkgPCAocmVnID4+IDIpICsgY291bnQ7IGkrKykKLQkJaWYgKHIzMDBfcmVnX2ZsYWdzW2ldICE9IE1BUktfU0FGRSkKLQkJCXJldHVybiAxOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2NhcmVmdWxseV9jaGVja2VkX3BhY2tldDAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKgotCQkJCQkJCSAgZGV2X3ByaXYsCi0JCQkJCQkJICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QKLQkJCQkJCQkgICogY21kYnVmLAotCQkJCQkJCSAgZHJtX3IzMDBfY21kX2hlYWRlcl90Ci0JCQkJCQkJICBoZWFkZXIpCi17Ci0JaW50IHJlZzsKLQlpbnQgc3o7Ci0JaW50IGk7Ci0JaW50IHZhbHVlc1s2NF07Ci0JUklOR19MT0NBTFM7Ci0KLQlzeiA9IGhlYWRlci5wYWNrZXQwLmNvdW50OwotCXJlZyA9IChoZWFkZXIucGFja2V0MC5yZWdoaSA8PCA4KSB8IGhlYWRlci5wYWNrZXQwLnJlZ2xvOwotCi0JaWYgKChzeiA+IDY0KSB8fCAoc3ogPCAwKSkgewotCQlEUk1fRVJST1IKLQkJICAgICgiQ2Fubm90IGVtaXQgbW9yZSB0aGFuIDY0IHZhbHVlcyBhdCBhIHRpbWUgKHJlZz0lMDR4IHN6PSVkKVxuIiwKLQkJICAgICByZWcsIHN6KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWZvciAoaSA9IDA7IGkgPCBzejsgaSsrKSB7Ci0JCXZhbHVlc1tpXSA9ICgoaW50ICopY21kYnVmLT5idWYpW2ldOwotCQlzd2l0Y2ggKHIzMDBfcmVnX2ZsYWdzWyhyZWcgPj4gMikgKyBpXSkgewotCQljYXNlIE1BUktfU0FGRToKLQkJCWJyZWFrOwotCQljYXNlIE1BUktfQ0hFQ0tfT0ZGU0VUOgotCQkJaWYgKCFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCAodTMyKSB2YWx1ZXNbaV0pKSB7Ci0JCQkJRFJNX0VSUk9SCi0JCQkJICAgICgiT2Zmc2V0IGZhaWxlZCByYW5nZSBjaGVjayAocmVnPSUwNHggc3o9JWQpXG4iLAotCQkJCSAgICAgcmVnLCBzeik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCURSTV9FUlJPUigiUmVnaXN0ZXIgJTA0eCBmYWlsZWQgY2hlY2sgYXMgZmxhZz0lMDJ4XG4iLAotCQkJCSAgcmVnICsgaSAqIDQsIHIzMDBfcmVnX2ZsYWdzWyhyZWcgPj4gMikgKyBpXSk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCX0KLQotCUJFR0lOX1JJTkcoMSArIHN6KTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKHJlZywgc3ogLSAxKSk7Ci0JT1VUX1JJTkdfVEFCTEUodmFsdWVzLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBzeiAqIDQ7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIDQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBFbWl0cyBhIHBhY2tldDAgc2V0dGluZyBhcmJpdHJhcnkgcmVnaXN0ZXJzLgotICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgotICoKLSAqIE5vdGUgdGhhdCBjaGVja3MgYXJlIHBlcmZvcm1lZCBvbiBjb250ZW50cyBhbmQgYWRkcmVzc2VzIG9mIHRoZSByZWdpc3RlcnMKLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9wYWNrZXQwKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQkJCWRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCi17Ci0JaW50IHJlZzsKLQlpbnQgc3o7Ci0JUklOR19MT0NBTFM7Ci0KLQlzeiA9IGhlYWRlci5wYWNrZXQwLmNvdW50OwotCXJlZyA9IChoZWFkZXIucGFja2V0MC5yZWdoaSA8PCA4KSB8IGhlYWRlci5wYWNrZXQwLnJlZ2xvOwotCi0JaWYgKCFzeikKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoc3ogKiA0ID4gY21kYnVmLT5idWZzeikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlpZiAocmVnICsgc3ogKiA0ID49IDB4MTAwMDApIHsKLQkJRFJNX0VSUk9SKCJObyBzdWNoIHJlZ2lzdGVycyBpbiBoYXJkd2FyZSByZWc9JTA0eCBzej0lZFxuIiwgcmVnLAotCQkJICBzeik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChyMzAwX2NoZWNrX3JhbmdlKHJlZywgc3opKSB7Ci0JCS8qIGdvIGFuZCBjaGVjayBldmVyeXRoaW5nICovCi0JCXJldHVybiByMzAwX2VtaXRfY2FyZWZ1bGx5X2NoZWNrZWRfcGFja2V0MChkZXZfcHJpdiwgY21kYnVmLAotCQkJCQkJCSAgIGhlYWRlcik7Ci0JfQotCS8qIHRoZSByZXN0IG9mIHRoZSBkYXRhIGlzIHNhZmUgdG8gZW1pdCwgd2hhdGV2ZXIgdGhlIHZhbHVlcyB0aGUgdXNlciBwYXNzZWQgKi8KLQotCUJFR0lOX1JJTkcoMSArIHN6KTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKHJlZywgc3ogLSAxKSk7Ci0JT1VUX1JJTkdfVEFCTEUoKGludCAqKWNtZGJ1Zi0+YnVmLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBzeiAqIDQ7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIDQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBVcGxvYWRzIHVzZXItc3VwcGxpZWQgdmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb25zIG9yIHBhcmFtZXRlcnMgb250bwotICogdGhlIGdyYXBoaWNzIGNhcmQuCi0gKiBDYWxsZWQgYnkgcjMwMF9kb19jcF9jbWRidWYuCi0gKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfdnB1KGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQkJICAgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCi17Ci0JaW50IHN6OwotCWludCBhZGRyOwotCVJJTkdfTE9DQUxTOwotCi0Jc3ogPSBoZWFkZXIudnB1LmNvdW50OwotCWFkZHIgPSAoaGVhZGVyLnZwdS5hZHJoaSA8PCA4KSB8IGhlYWRlci52cHUuYWRybG87Ci0KLQlpZiAoIXN6KQotCQlyZXR1cm4gMDsKLQlpZiAoc3ogKiAxNiA+IGNtZGJ1Zi0+YnVmc3opCi0JCXJldHVybiAtRUlOVkFMOwotCi0JQkVHSU5fUklORyg1ICsgc3ogKiA0KTsKLQkvKiBXYWl0IGZvciBWQVAgdG8gY29tZSB0byBzZW5zZXMuLiAqLwotCS8qIHRoZXJlIGlzIG5vIG5lZWQgdG8gZW1pdCBpdCBtdWx0aXBsZSB0aW1lcywgKG9ubHkgb25jZSBiZWZvcmUgVkFQIGlzIHByb2dyYW1tZWQsCi0JICAgYnV0IHRoaXMgb3B0aW1pemF0aW9uIGlzIGZvciBsYXRlciAqLwotCU9VVF9SSU5HX1JFRyhSMzAwX1ZBUF9QVlNfV0FJVElETEUsIDApOwotCU9VVF9SSU5HX1JFRyhSMzAwX1ZBUF9QVlNfVVBMT0FEX0FERFJFU1MsIGFkZHIpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUjMwMF9WQVBfUFZTX1VQTE9BRF9EQVRBLCBzeiAqIDQgLSAxKSk7Ci0JT1VUX1JJTkdfVEFCTEUoKGludCAqKWNtZGJ1Zi0+YnVmLCBzeiAqIDQpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBzeiAqIDE2OwotCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiAxNjsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIEVtaXQgYSBjbGVhciBwYWNrZXQgZnJvbSB1c2Vyc3BhY2UuCi0gKiBDYWxsZWQgYnkgcjMwMF9lbWl0X3BhY2tldDMuCi0gKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfY2xlYXIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCSAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCVJJTkdfTE9DQUxTOwotCi0JaWYgKDggKiA0ID4gY21kYnVmLT5idWZzeikKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlCRUdJTl9SSU5HKDEwKTsKLQlPVVRfUklORyhDUF9QQUNLRVQzKFIyMDBfM0RfRFJBV19JTU1EXzIsIDgpKTsKLQlPVVRfUklORyhSMzAwX1BSSU1fVFlQRV9QT0lOVCB8IFIzMDBfUFJJTV9XQUxLX1JJTkcgfAotCQkgKDEgPDwgUjMwMF9QUklNX05VTV9WRVJUSUNFU19TSElGVCkpOwotCU9VVF9SSU5HX1RBQkxFKChpbnQgKiljbWRidWYtPmJ1ZiwgOCk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSA4ICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IDggKiA0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfM2RfbG9hZF92YnBudHIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQkJCSAgICAgICB1MzIgaGVhZGVyKQotewotCWludCBjb3VudCwgaSwgazsKLSNkZWZpbmUgTUFYX0FSUkFZX1BBQ0tFVCAgNjQKLQl1MzIgcGF5bG9hZFtNQVhfQVJSQVlfUEFDS0VUXTsKLQl1MzIgbmFycmF5czsKLQlSSU5HX0xPQ0FMUzsKLQotCWNvdW50ID0gKGhlYWRlciA+PiAxNikgJiAweDNmZmY7Ci0KLQlpZiAoKGNvdW50ICsgMSkgPiBNQVhfQVJSQVlfUEFDS0VUKSB7Ci0JCURSTV9FUlJPUigiVG9vIGxhcmdlIHBheWxvYWQgaW4gM0RfTE9BRF9WQlBOVFIgKGNvdW50PSVkKVxuIiwKLQkJCSAgY291bnQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JbWVtc2V0KHBheWxvYWQsIDAsIE1BWF9BUlJBWV9QQUNLRVQgKiA0KTsKLQltZW1jcHkocGF5bG9hZCwgY21kYnVmLT5idWYgKyA0LCAoY291bnQgKyAxKSAqIDQpOwotCi0JLyogY2FyZWZ1bGx5IGNoZWNrIHBhY2tldCBjb250ZW50cyAqLwotCi0JbmFycmF5cyA9IHBheWxvYWRbMF07Ci0JayA9IDA7Ci0JaSA9IDE7Ci0Jd2hpbGUgKChrIDwgbmFycmF5cykgJiYgKGkgPCAoY291bnQgKyAxKSkpIHsKLQkJaSsrOwkJLyogc2tpcCBhdHRyaWJ1dGUgZmllbGQgKi8KLQkJaWYgKCFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBwYXlsb2FkW2ldKSkgewotCQkJRFJNX0VSUk9SCi0JCQkgICAgKCJPZmZzZXQgZmFpbGVkIHJhbmdlIGNoZWNrIChrPSVkIGk9JWQpIHdoaWxlIHByb2Nlc3NpbmcgM0RfTE9BRF9WQlBOVFIgcGFja2V0LlxuIiwKLQkJCSAgICAgaywgaSk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlrKys7Ci0JCWkrKzsKLQkJaWYgKGsgPT0gbmFycmF5cykKLQkJCWJyZWFrOwotCQkvKiBoYXZlIG9uZSBtb3JlIHRvIHByb2Nlc3MsIHRoZXkgY29tZSBpbiBwYWlycyAqLwotCQlpZiAoIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIHBheWxvYWRbaV0pKSB7Ci0JCQlEUk1fRVJST1IKLQkJCSAgICAoIk9mZnNldCBmYWlsZWQgcmFuZ2UgY2hlY2sgKGs9JWQgaT0lZCkgd2hpbGUgcHJvY2Vzc2luZyAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQuXG4iLAotCQkJICAgICBrLCBpKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWsrKzsKLQkJaSsrOwotCX0KLQkvKiBkbyB0aGUgY291bnRzIG1hdGNoIHdoYXQgd2UgZXhwZWN0ID8gKi8KLQlpZiAoKGsgIT0gbmFycmF5cykgfHwgKGkgIT0gKGNvdW50ICsgMSkpKSB7Ci0JCURSTV9FUlJPUgotCQkgICAgKCJNYWxmb3JtZWQgM0RfTE9BRF9WQlBOVFIgcGFja2V0IChrPSVkIGk9JWQgbmFycmF5cz0lZCBjb3VudCsxPSVkKS5cbiIsCi0JCSAgICAgaywgaSwgbmFycmF5cywgY291bnQgKyAxKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogYWxsIGNsZWFyLCBvdXRwdXQgcGFja2V0ICovCi0KLQlCRUdJTl9SSU5HKGNvdW50ICsgMik7Ci0JT1VUX1JJTkcoaGVhZGVyKTsKLQlPVVRfUklOR19UQUJMRShwYXlsb2FkLCBjb3VudCArIDEpOwotCUFEVkFOQ0VfUklORygpOwotCi0JY21kYnVmLT5idWYgKz0gKGNvdW50ICsgMikgKiA0OwotCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50ICsgMikgKiA0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfYml0Ymx0X211bHRpKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQl1MzIgKmNtZCA9ICh1MzIgKikgY21kYnVmLT5idWY7Ci0JaW50IGNvdW50LCByZXQ7Ci0JUklOR19MT0NBTFM7Ci0KLQljb3VudD0oY21kWzBdPj4xNikgJiAweDNmZmY7Ci0KLQlpZiAoY21kWzBdICYgMHg4MDAwKSB7Ci0JCXUzMiBvZmZzZXQ7Ci0KLQkJaWYgKGNtZFsxXSAmIChSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTAotCQkJICAgICAgfCBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKLQkJCW9mZnNldCA9IGNtZFsyXSA8PCAxMDsKLQkJCXJldCA9ICFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBvZmZzZXQpOwotCQkJaWYgKHJldCkgewotCQkJCURSTV9FUlJPUigiSW52YWxpZCBiaXRibHQgZmlyc3Qgb2Zmc2V0IGlzICUwOFhcbiIsIG9mZnNldCk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCX0KLQotCQlpZiAoKGNtZFsxXSAmIFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMKSAmJgotCQkgICAgKGNtZFsxXSAmIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMKSkgewotCQkJb2Zmc2V0ID0gY21kWzNdIDw8IDEwOwotCQkJcmV0ID0gIXJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIG9mZnNldCk7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGJpdGJsdCBzZWNvbmQgb2Zmc2V0IGlzICUwOFhcbiIsIG9mZnNldCk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0KLQkJfQotCX0KLQotCUJFR0lOX1JJTkcoY291bnQrMik7Ci0JT1VUX1JJTkcoY21kWzBdKTsKLQlPVVRfUklOR19UQUJMRSgoaW50ICopKGNtZGJ1Zi0+YnVmICsgNCksIGNvdW50ICsgMSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSAoY291bnQrMikqNDsKLQljbWRidWYtPmJ1ZnN6IC09IChjb3VudCsyKSo0OwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfaW5keF9idWZmZXIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCXUzMiAqY21kID0gKHUzMiAqKSBjbWRidWYtPmJ1ZjsKLQlpbnQgY291bnQsIHJldDsKLQlSSU5HX0xPQ0FMUzsKLQotCWNvdW50PShjbWRbMF0+PjE2KSAmIDB4M2ZmZjsKLQotCWlmICgoY21kWzFdICYgMHg4MDAwZmZmZikgIT0gMHg4MDAwMDgxMCkgewotCQlEUk1fRVJST1IoIkludmFsaWQgaW5keF9idWZmZXIgcmVnIGFkZHJlc3MgJTA4WFxuIiwgY21kWzFdKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCXJldCA9ICFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBjbWRbMl0pOwotCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIG9mZnNldCBpcyAlMDhYXG4iLCBjbWRbMl0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlCRUdJTl9SSU5HKGNvdW50KzIpOwotCU9VVF9SSU5HKGNtZFswXSk7Ci0JT1VUX1JJTkdfVEFCTEUoKGludCAqKShjbWRidWYtPmJ1ZiArIDQpLCBjb3VudCArIDEpOwotCUFEVkFOQ0VfUklORygpOwotCi0JY21kYnVmLT5idWYgKz0gKGNvdW50KzIpKjQ7Ci0JY21kYnVmLT5idWZzeiAtPSAoY291bnQrMikqNDsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3Jhd19wYWNrZXQzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCXUzMiBoZWFkZXI7Ci0JaW50IGNvdW50OwotCVJJTkdfTE9DQUxTOwotCi0JaWYgKDQgPiBjbWRidWYtPmJ1ZnN6KQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qIEZpeG1lICEhIFRoaXMgc2ltcGx5IGVtaXRzIGEgcGFja2V0IHdpdGhvdXQgbXVjaCBjaGVja2luZy4KLQkgICBXZSBuZWVkIHRvIGJlIHNtYXJ0ZXIuICovCi0KLQkvKiBvYnRhaW4gZmlyc3Qgd29yZCAtIGFjdHVhbCBwYWNrZXQzIGhlYWRlciAqLwotCWhlYWRlciA9ICoodTMyICopIGNtZGJ1Zi0+YnVmOwotCi0JLyogSXMgaXQgcGFja2V0IDMgPyAqLwotCWlmICgoaGVhZGVyID4+IDMwKSAhPSAweDMpIHsKLQkJRFJNX0VSUk9SKCJOb3QgYSBwYWNrZXQzIGhlYWRlciAoMHglMDh4KVxuIiwgaGVhZGVyKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JY291bnQgPSAoaGVhZGVyID4+IDE2KSAmIDB4M2ZmZjsKLQotCS8qIENoZWNrIGFnYWluIG5vdyB0aGF0IHdlIGtub3cgaG93IG11Y2ggZGF0YSB0byBleHBlY3QgKi8KLQlpZiAoKGNvdW50ICsgMikgKiA0ID4gY21kYnVmLT5idWZzeikgewotCQlEUk1fRVJST1IKLQkJICAgICgiRXhwZWN0ZWQgcGFja2V0MyBvZiBsZW5ndGggJWQgYnV0IGhhdmUgb25seSAlZCBieXRlcyBsZWZ0XG4iLAotCQkgICAgIChjb3VudCArIDIpICogNCwgY21kYnVmLT5idWZzeik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIElzIGl0IGEgcGFja2V0IHR5cGUgd2Uga25vdyBhYm91dCA/ICovCi0Jc3dpdGNoIChoZWFkZXIgJiAweGZmMDApIHsKLQljYXNlIFJBREVPTl8zRF9MT0FEX1ZCUE5UUjoJLyogbG9hZCB2ZXJ0ZXggYXJyYXkgcG9pbnRlcnMgKi8KLQkJcmV0dXJuIHIzMDBfZW1pdF8zZF9sb2FkX3ZicG50cihkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOwotCi0JY2FzZSBSQURFT05fQ05UTF9CSVRCTFRfTVVMVEk6Ci0JCXJldHVybiByMzAwX2VtaXRfYml0Ymx0X211bHRpKGRldl9wcml2LCBjbWRidWYpOwotCi0JY2FzZSBSQURFT05fQ1BfSU5EWF9CVUZGRVI6CS8qIERSQVdfSU5EWF8yIHdpdGhvdXQgSU5EWF9CVUZGRVIgc2VlbXMgdG8gbG9jayB1cCB0aGUgZ3B1ICovCi0JCXJldHVybiByMzAwX2VtaXRfaW5keF9idWZmZXIoZGV2X3ByaXYsIGNtZGJ1Zik7Ci0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19JTU1EXzI6CS8qIHRyaWdnZXJzIGRyYXdpbmcgdXNpbmcgaW4tcGFja2V0IHZlcnRleCBkYXRhICovCi0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19WQlVGXzI6CS8qIHRyaWdnZXJzIGRyYXdpbmcgb2YgdmVydGV4IGJ1ZmZlcnMgc2V0dXAgZWxzZXdoZXJlICovCi0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19JTkRYXzI6CS8qIHRyaWdnZXJzIGRyYXdpbmcgdXNpbmcgaW5kaWNlcyB0byB2ZXJ0ZXggYnVmZmVyICovCi0JY2FzZSBSQURFT05fV0FJVF9GT1JfSURMRToKLQljYXNlIFJBREVPTl9DUF9OT1A6Ci0JCS8qIHRoZXNlIHBhY2tldHMgYXJlIHNhZmUgKi8KLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJNX0VSUk9SKCJVbmtub3duIHBhY2tldDMgaGVhZGVyICgweCUwOHgpXG4iLCBoZWFkZXIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlCRUdJTl9SSU5HKGNvdW50ICsgMik7Ci0JT1VUX1JJTkcoaGVhZGVyKTsKLQlPVVRfUklOR19UQUJMRSgoaW50ICopKGNtZGJ1Zi0+YnVmICsgNCksIGNvdW50ICsgMSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSAoY291bnQgKyAyKSAqIDQ7Ci0JY21kYnVmLT5idWZzeiAtPSAoY291bnQgKyAyKSAqIDQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoqCi0gKiBFbWl0IGEgcmVuZGVyaW5nIHBhY2tldDMgZnJvbSB1c2Vyc3BhY2UuCi0gKiBDYWxsZWQgYnkgcjMwMF9kb19jcF9jbWRidWYuCi0gKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfcGFja2V0Myhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAotCQkJCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQotewotCWludCBuOwotCWludCByZXQ7Ci0JY2hhciAqb3JpZ19idWYgPSBjbWRidWYtPmJ1ZjsKLQlpbnQgb3JpZ19idWZzeiA9IGNtZGJ1Zi0+YnVmc3o7Ci0KLQkvKiBUaGlzIGlzIGEgZG8td2hpbGUtbG9vcCBzbyB0aGF0IHdlIHJ1biB0aGUgaW50ZXJpb3IgYXQgbGVhc3Qgb25jZSwKLQkgKiBldmVuIGlmIGNtZGJ1Zi0+bmJveCBpcyAwLiBDb21wYXJlIHIzMDBfZW1pdF9jbGlwcmVjdHMgZm9yIHJhdGlvbmFsZS4KLQkgKi8KLQluID0gMDsKLQlkbyB7Ci0JCWlmIChjbWRidWYtPm5ib3ggPiBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMpIHsKLQkJCXJldCA9IHIzMDBfZW1pdF9jbGlwcmVjdHMoZGV2X3ByaXYsIGNtZGJ1Ziwgbik7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7Ci0KLQkJCWNtZGJ1Zi0+YnVmID0gb3JpZ19idWY7Ci0JCQljbWRidWYtPmJ1ZnN6ID0gb3JpZ19idWZzejsKLQkJfQotCi0JCXN3aXRjaCAoaGVhZGVyLnBhY2tldDMucGFja2V0KSB7Ci0JCWNhc2UgUjMwMF9DTURfUEFDS0VUM19DTEVBUjoKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfUEFDS0VUM19DTEVBUlxuIik7Ci0JCQlyZXQgPSByMzAwX2VtaXRfY2xlYXIoZGV2X3ByaXYsIGNtZGJ1Zik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfY2xlYXIgZmFpbGVkXG4iKTsKLQkJCQlyZXR1cm4gcmV0OwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9QQUNLRVQzX1JBVzoKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfUEFDS0VUM19SQVdcbiIpOwotCQkJcmV0ID0gcjMwMF9lbWl0X3Jhd19wYWNrZXQzKGRldl9wcml2LCBjbWRidWYpOwotCQkJaWYgKHJldCkgewotCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3Jhd19wYWNrZXQzIGZhaWxlZFxuIik7Ci0JCQkJcmV0dXJuIHJldDsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWRlZmF1bHQ6Ci0JCQlEUk1fRVJST1IoImJhZCBwYWNrZXQzIHR5cGUgJWkgYXQgJXBcbiIsCi0JCQkJICBoZWFkZXIucGFja2V0My5wYWNrZXQsCi0JCQkJICBjbWRidWYtPmJ1ZiAtIHNpemVvZihoZWFkZXIpKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJbiArPSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFM7Ci0JfSB3aGlsZSAobiA8IGNtZGJ1Zi0+bmJveCk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogU29tZSBvZiB0aGUgUjMwMCBjaGlwcyBzZWVtIHRvIGJlIGV4dHJlbWVseSB0b3VjaHkgYWJvdXQgdGhlIHR3byByZWdpc3RlcnMKLSAqIHRoYXQgYXJlIGNvbmZpZ3VyZWQgaW4gcjMwMF9wYWNpZnkuCi0gKiBBbW9uZyB0aGUgd29yc3Qgb2ZmZW5kZXJzIHNlZW1zIHRvIGJlIHRoZSBSMzAwIE5EICgweDRFNDQpOiBXaGVuIHVzZXJzcGFjZQotICogc2VuZHMgYSBjb21tYW5kIGJ1ZmZlciB0aGF0IGNvbnRhaW5zIG9ubHkgc3RhdGUgc2V0dGluZyBjb21tYW5kcyBhbmQgYQotICogdmVydGV4IHByb2dyYW0vcGFyYW1ldGVyIHVwbG9hZCBzZXF1ZW5jZSwgdGhpcyB3aWxsIGV2ZW50dWFsbHkgbGVhZCB0byBhCi0gKiBsb2NrdXAsIHVubGVzcyB0aGUgc2VxdWVuY2UgaXMgYnJhY2tldGVkIGJ5IGNhbGxzIHRvIHIzMDBfcGFjaWZ5LgotICogU28gd2Ugc2hvdWxkIHRha2UgZ3JlYXQgY2FyZSB0byAqYWx3YXlzKiBjYWxsIHIzMDBfcGFjaWZ5IGJlZm9yZQotICogKmFueXRoaW5nKiAzRCByZWxhdGVkLCBhbmQgYWdhaW4gYWZ0ZXJ3YXJkcy4gVGhpcyBpcyB3aGF0IHRoZQotICogY2FsbCBicmFja2V0IGluIHIzMDBfZG9fY3BfY21kYnVmIGlzIGZvci4KLSAqLwotCi0vKioKLSAqIEVtaXQgdGhlIHNlcXVlbmNlIHRvIHBhY2lmeSBSMzAwLgotICovCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHIzMDBfcGFjaWZ5KGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKLXsKLQlSSU5HX0xPQ0FMUzsKLQotCUJFR0lOX1JJTkcoNik7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCkpOwotCU9VVF9SSU5HKFIzMDBfUkIzRF9EU1RDQUNIRV9VTktOT1dOXzBBKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFIzMDBfUkIzRF9aQ0FDSEVfQ1RMU1RBVCwgMCkpOwotCU9VVF9SSU5HKFIzMDBfUkIzRF9aQ0FDSEVfVU5LTk9XTl8wMyk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fQ1BfTk9QLCAwKSk7Ci0JT1VUX1JJTkcoMHgwKTsKLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotLyoqCi0gKiBDYWxsZWQgYnkgcjMwMF9kb19jcF9jbWRidWYgdG8gdXBkYXRlIHRoZSBpbnRlcm5hbCBidWZmZXIgYWdlIGFuZCBzdGF0ZS4KLSAqIFRoZSBhY3R1YWwgYWdlIGVtaXQgaXMgZG9uZSBieSByMzAwX2RvX2NwX2NtZGJ1Ziwgd2hpY2ggaXMgd2h5IHlvdSBtdXN0Ci0gKiBiZSBjYXJlZnVsIGFib3V0IGhvdyB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC4KLSAqLwotc3RhdGljIHZvaWQgcjMwMF9kaXNjYXJkX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgc3RydWN0IGRybV9idWYgKiBidWYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKLQotCWJ1Zl9wcml2LT5hZ2UgPSArK2Rldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoOwotCWJ1Zi0+cGVuZGluZyA9IDE7Ci0JYnVmLT51c2VkID0gMDsKLX0KLQotc3RhdGljIHZvaWQgcjMwMF9jbWRfd2FpdChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJICBkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQotewotCXUzMiB3YWl0X3VudGlsOwotCVJJTkdfTE9DQUxTOwotCi0JaWYgKCFoZWFkZXIud2FpdC5mbGFncykKLQkJcmV0dXJuOwotCi0Jd2FpdF91bnRpbCA9IDA7Ci0KLQlzd2l0Y2goaGVhZGVyLndhaXQuZmxhZ3MpIHsKLQljYXNlIFIzMDBfV0FJVF8yRDoKLQkJd2FpdF91bnRpbCA9IFJBREVPTl9XQUlUXzJEX0lETEU7Ci0JCWJyZWFrOwotCWNhc2UgUjMwMF9XQUlUXzNEOgotCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfM0RfSURMRTsKLQkJYnJlYWs7Ci0JY2FzZSBSMzAwX05FV19XQUlUXzJEXzNEOgotCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRXxSQURFT05fV0FJVF8zRF9JRExFOwotCQlicmVhazsKLQljYXNlIFIzMDBfTkVXX1dBSVRfMkRfMkRfQ0xFQU46Ci0JCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8yRF9JRExFfFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTjsKLQkJYnJlYWs7Ci0JY2FzZSBSMzAwX05FV19XQUlUXzNEXzNEX0NMRUFOOgotCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfM0RfSURMRXxSQURFT05fV0FJVF8zRF9JRExFQ0xFQU47Ci0JCWJyZWFrOwotCWNhc2UgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTl8zRF8zRF9DTEVBTjoKLQkJd2FpdF91bnRpbCA9IFJBREVPTl9XQUlUXzJEX0lETEV8UkFERU9OX1dBSVRfMkRfSURMRUNMRUFOOwotCQl3YWl0X3VudGlsIHw9IFJBREVPTl9XQUlUXzNEX0lETEV8UkFERU9OX1dBSVRfM0RfSURMRUNMRUFOOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm47Ci0JfQotCi0JQkVHSU5fUklORygyKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9XQUlUX1VOVElMLCAwKSk7Ci0JT1VUX1JJTkcod2FpdF91bnRpbCk7Ci0JQURWQU5DRV9SSU5HKCk7Ci19Ci0KLXN0YXRpYyBpbnQgcjMwMF9zY3JhdGNoKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAotCQkJZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcikKLXsKLQl1MzIgKnJlZl9hZ2VfYmFzZTsKLQl1MzIgaSwgYnVmX2lkeCwgaF9wZW5kaW5nOwotCVJJTkdfTE9DQUxTOwotCi0JaWYgKGNtZGJ1Zi0+YnVmc3ogPAotCSAgICAoc2l6ZW9mKHU2NCkgKyBoZWFkZXIuc2NyYXRjaC5uX2J1ZnMgKiBzaXplb2YoYnVmX2lkeCkpKSB7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChoZWFkZXIuc2NyYXRjaC5yZWcgPj0gNSkgewotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+c2NyYXRjaF9hZ2VzW2hlYWRlci5zY3JhdGNoLnJlZ10rKzsKLQotCXJlZl9hZ2VfYmFzZSA9ICAodTMyICopKHVuc2lnbmVkIGxvbmcpKigodWludDY0X3QgKiljbWRidWYtPmJ1Zik7Ci0KLQljbWRidWYtPmJ1ZiArPSBzaXplb2YodTY0KTsKLQljbWRidWYtPmJ1ZnN6IC09IHNpemVvZih1NjQpOwotCi0JZm9yIChpPTA7IGkgPCBoZWFkZXIuc2NyYXRjaC5uX2J1ZnM7IGkrKykgewotCQlidWZfaWR4ID0gKih1MzIgKiljbWRidWYtPmJ1ZjsKLQkJYnVmX2lkeCAqPSAyOyAvKiA4IGJ5dGVzIHBlciBidWYgKi8KLQotCQlpZiAoRFJNX0NPUFlfVE9fVVNFUihyZWZfYWdlX2Jhc2UgKyBidWZfaWR4LCAmZGV2X3ByaXYtPnNjcmF0Y2hfYWdlc1toZWFkZXIuc2NyYXRjaC5yZWddLCBzaXplb2YodTMyKSkpIHsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUigmaF9wZW5kaW5nLCByZWZfYWdlX2Jhc2UgKyBidWZfaWR4ICsgMSwgc2l6ZW9mKHUzMikpKSB7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCWlmIChoX3BlbmRpbmcgPT0gMCkgewotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQloX3BlbmRpbmctLTsKLQotCQlpZiAoRFJNX0NPUFlfVE9fVVNFUihyZWZfYWdlX2Jhc2UgKyBidWZfaWR4ICsgMSwgJmhfcGVuZGluZywgc2l6ZW9mKHUzMikpKSB7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCWNtZGJ1Zi0+YnVmICs9IHNpemVvZihidWZfaWR4KTsKLQkJY21kYnVmLT5idWZzeiAtPSBzaXplb2YoYnVmX2lkeCk7Ci0JfQotCi0JQkVHSU5fUklORygyKTsKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1NDUkFUQ0hfUkVHMCArIGhlYWRlci5zY3JhdGNoLnJlZyAqIDQsIDAgKSApOwotCU9VVF9SSU5HKCBkZXZfcHJpdi0+c2NyYXRjaF9hZ2VzW2hlYWRlci5zY3JhdGNoLnJlZ10gKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCXJldHVybiAwOwotfQotCi0vKioKLSAqIFBhcnNlcyBhbmQgdmFsaWRhdGVzIGEgdXNlci1zdXBwbGllZCBjb21tYW5kIGJ1ZmZlciBhbmQgZW1pdHMgYXBwcm9wcmlhdGUKLSAqIGNvbW1hbmRzIG9uIHRoZSBETUEgcmluZyBidWZmZXIuCi0gKiBDYWxsZWQgYnkgdGhlIGlvY3RsIGhhbmRsZXIgZnVuY3Rpb24gcmFkZW9uX2NwX2NtZGJ1Zi4KLSAqLwotaW50IHIzMDBfZG9fY3BfY21kYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkgICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7Ci0Jc3RydWN0IGRybV9idWYgKmJ1ZiA9IE5VTEw7Ci0JaW50IGVtaXRfZGlzcGF0Y2hfYWdlID0gMDsKLQlpbnQgcmV0ID0gMDsKLQotCURSTV9ERUJVRygiXG4iKTsKLQotCS8qIFNlZSB0aGUgY29tbWVudCBhYm92ZSByMzAwX2VtaXRfYmVnaW4zZCBmb3Igd2h5IHRoaXMgY2FsbCBtdXN0IGJlIGhlcmUsCi0JICogYW5kIHdoYXQgdGhlIGNsZWFudXAgZ290b3MgYXJlIGZvci4gKi8KLQlyMzAwX3BhY2lmeShkZXZfcHJpdik7Ci0KLQlpZiAoY21kYnVmLT5uYm94IDw9IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUykgewotCQlyZXQgPSByMzAwX2VtaXRfY2xpcHJlY3RzKGRldl9wcml2LCBjbWRidWYsIDApOwotCQlpZiAocmV0KQotCQkJZ290byBjbGVhbnVwOwotCX0KLQotCXdoaWxlIChjbWRidWYtPmJ1ZnN6ID49IHNpemVvZihkcm1fcjMwMF9jbWRfaGVhZGVyX3QpKSB7Ci0JCWludCBpZHg7Ci0JCWRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXI7Ci0KLQkJaGVhZGVyLnUgPSAqKHVuc2lnbmVkIGludCAqKWNtZGJ1Zi0+YnVmOwotCi0JCWNtZGJ1Zi0+YnVmICs9IHNpemVvZihoZWFkZXIpOwotCQljbWRidWYtPmJ1ZnN6IC09IHNpemVvZihoZWFkZXIpOwotCi0JCXN3aXRjaCAoaGVhZGVyLmhlYWRlci5jbWRfdHlwZSkgewotCQljYXNlIFIzMDBfQ01EX1BBQ0tFVDA6Ci0JCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDBcbiIpOwotCQkJcmV0ID0gcjMwMF9lbWl0X3BhY2tldDAoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9wYWNrZXQwIGZhaWxlZFxuIik7Ci0JCQkJZ290byBjbGVhbnVwOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9WUFU6Ci0JCQlEUk1fREVCVUcoIlIzMDBfQ01EX1ZQVVxuIik7Ci0JCQlyZXQgPSByMzAwX2VtaXRfdnB1KGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfdnB1IGZhaWxlZFxuIik7Ci0JCQkJZ290byBjbGVhbnVwOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9QQUNLRVQzOgotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9QQUNLRVQzXG4iKTsKLQkJCXJldCA9IHIzMDBfZW1pdF9wYWNrZXQzKGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfcGFja2V0MyBmYWlsZWRcbiIpOwotCQkJCWdvdG8gY2xlYW51cDsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgUjMwMF9DTURfRU5EM0Q6Ci0JCQlEUk1fREVCVUcoIlIzMDBfQ01EX0VORDNEXG4iKTsKLQkJCS8qIFRPRE86Ci0JCQkgICBJZGVhbGx5IHVzZXJzcGFjZSBkcml2ZXIgc2hvdWxkIG5vdCBuZWVkIHRvIGlzc3VlIHRoaXMgY2FsbCwKLQkJCSAgIGkuZS4gdGhlIGRybSBkcml2ZXIgc2hvdWxkIGlzc3VlIGl0IGF1dG9tYXRpY2FsbHkgYW5kIHByZXZlbnQKLQkJCSAgIGxvY2t1cHMuCi0KLQkJCSAgIEluIHByYWN0aWNlLCB3ZSBkbyBub3QgdW5kZXJzdGFuZCB3aHkgdGhpcyBjYWxsIGlzIG5lZWRlZCBhbmQgd2hhdAotCQkJICAgaXQgZG9lcyAoZXhjZXB0IGZvciBzb21lIHZhZ3VlIGd1ZXNzZXMgdGhhdCBpdCBoYXMgdG8gZG8gd2l0aCBjYWNoZQotCQkJICAgY29oZXJlbmNlKSBhbmQgc28gdGhlIHVzZXIgc3BhY2UgZHJpdmVyIGRvZXMgaXQuCi0KLQkJCSAgIE9uY2Ugd2UgYXJlIHN1cmUgd2hpY2ggdXNlcyBwcmV2ZW50IGxvY2t1cHMgdGhlIGNvZGUgY291bGQgYmUgbW92ZWQKLQkJCSAgIGludG8gdGhlIGtlcm5lbCBhbmQgdGhlIHVzZXJzcGFjZSBkcml2ZXIgd2lsbCBub3QKLQkJCSAgIG5lZWQgdG8gdXNlIHRoaXMgY29tbWFuZC4KLQotCQkJICAgTm90ZSB0aGF0IGlzc3VpbmcgdGhpcyBjb21tYW5kIGRvZXMgbm90IGh1cnQgYW55dGhpbmcKLQkJCSAgIGV4Y2VwdCwgcG9zc2libHksIHBlcmZvcm1hbmNlICovCi0JCQlyMzAwX3BhY2lmeShkZXZfcHJpdik7Ci0JCQlicmVhazsKLQotCQljYXNlIFIzMDBfQ01EX0NQX0RFTEFZOgotCQkJLyogc2ltcGxlIGVub3VnaCwgd2UgY2FuIGRvIGl0IGhlcmUgKi8KLQkJCURSTV9ERUJVRygiUjMwMF9DTURfQ1BfREVMQVlcbiIpOwotCQkJewotCQkJCWludCBpOwotCQkJCVJJTkdfTE9DQUxTOwotCi0JCQkJQkVHSU5fUklORyhoZWFkZXIuZGVsYXkuY291bnQpOwotCQkJCWZvciAoaSA9IDA7IGkgPCBoZWFkZXIuZGVsYXkuY291bnQ7IGkrKykKLQkJCQkJT1VUX1JJTkcoUkFERU9OX0NQX1BBQ0tFVDIpOwotCQkJCUFEVkFOQ0VfUklORygpOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9ETUFfRElTQ0FSRDoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9ETUFfRElTQ0FSRFxuIik7Ci0JCQlpZHggPSBoZWFkZXIuZG1hLmJ1Zl9pZHg7Ci0JCQlpZiAoaWR4IDwgMCB8fCBpZHggPj0gZG1hLT5idWZfY291bnQpIHsKLQkJCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKLQkJCQkJICBpZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7Ci0JCQkJcmV0ID0gLUVJTlZBTDsKLQkJCQlnb3RvIGNsZWFudXA7Ci0JCQl9Ci0KLQkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpZHhdOwotCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdiB8fCBidWYtPnBlbmRpbmcpIHsKLQkJCQlEUk1fRVJST1IoImJhZCBidWZmZXIgJXAgJXAgJWRcbiIsCi0JCQkJCSAgYnVmLT5maWxlX3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJICBidWYtPnBlbmRpbmcpOwotCQkJCXJldCA9IC1FSU5WQUw7Ci0JCQkJZ290byBjbGVhbnVwOwotCQkJfQotCi0JCQllbWl0X2Rpc3BhdGNoX2FnZSA9IDE7Ci0JCQlyMzAwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgUjMwMF9DTURfV0FJVDoKLQkJCURSTV9ERUJVRygiUjMwMF9DTURfV0FJVFxuIik7Ci0JCQlyMzAwX2NtZF93YWl0KGRldl9wcml2LCBoZWFkZXIpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSMzAwX0NNRF9TQ1JBVENIOgotCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9TQ1JBVENIXG4iKTsKLQkJCXJldCA9IHIzMDBfc2NyYXRjaChkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOwotCQkJaWYgKHJldCkgewotCQkJCURSTV9FUlJPUigicjMwMF9zY3JhdGNoIGZhaWxlZFxuIik7Ci0JCQkJZ290byBjbGVhbnVwOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCURSTV9FUlJPUigiYmFkIGNtZF90eXBlICVpIGF0ICVwXG4iLAotCQkJCSAgaGVhZGVyLmhlYWRlci5jbWRfdHlwZSwKLQkJCQkgIGNtZGJ1Zi0+YnVmIC0gc2l6ZW9mKGhlYWRlcikpOwotCQkJcmV0ID0gLUVJTlZBTDsKLQkJCWdvdG8gY2xlYW51cDsKLQkJfQotCX0KLQotCURSTV9ERUJVRygiRU5EXG4iKTsKLQotICAgICAgY2xlYW51cDoKLQlyMzAwX3BhY2lmeShkZXZfcHJpdik7Ci0KLQkvKiBXZSBlbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIGFnZSBoZXJlLCBvdXRzaWRlIHRoZSBwYWNpZmllciAiYnJhY2tldHMiCi0JICogZm9yIHR3byByZWFzb25zOgotCSAqICAoMSkgVGhpcyBtYXkgY29hbGVzY2UgbXVsdGlwbGUgYWdlIGVtaXNzaW9ucyBpbnRvIGEgc2luZ2xlIG9uZSBhbmQKLQkgKiAgKDIpIG1vcmUgaW1wb3J0YW50bHksIHNvbWUgY2hpcHMgbG9jayB1cCBoYXJkIHdoZW4gc2NyYXRjaCByZWdpc3RlcnMKLQkgKiAgICAgIGFyZSB3cml0dGVuIGluc2lkZSB0aGUgcGFjaWZpZXIgYnJhY2tldC4KLQkgKi8KLQlpZiAoZW1pdF9kaXNwYXRjaF9hZ2UpIHsKLQkJUklOR19MT0NBTFM7Ci0KLQkJLyogRW1pdCB0aGUgdmVydGV4IGJ1ZmZlciBhZ2UgKi8KLQkJQkVHSU5fUklORygyKTsKLQkJUkFERU9OX0RJU1BBVENIX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCUNPTU1JVF9SSU5HKCk7Ci0KLQlyZXR1cm4gcmV0OwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMzAwX3JlZy5oIGIvZHJpdmVycy9jaGFyL2RybS9yMzAwX3JlZy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjY2NGFmLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcjMwMF9yZWcuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MjYgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLUNvcHlyaWdodCAoQykgMjAwNC0yMDA1IE5pY29sYWkgSGFlaG5sZSBldCBhbC4KLQotUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLWNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi10byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi1vbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3ViCi1saWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbQotdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLXBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLVNvZnR3YXJlLgotCi1USEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi1GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKLVRIRSBBVVRIT1IoUykgQU5EL09SIFRIRUlSIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLURBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgotT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQotVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLSNpZm5kZWYgX1IzMDBfUkVHX0gKLSNkZWZpbmUgX1IzMDBfUkVHX0gKLQotI2RlZmluZSBSMzAwX01DX0lOSVRfTUlTQ19MQVRfVElNRVIJMHgxODAKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfQ1BSX0lOSVRfTEFUX1NISUZUCTAKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfVkZfSU5JVF9MQVRfU0hJRlQJNAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19ESVNQMFJfSU5JVF9MQVRfU0hJRlQJOAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19ESVNQMVJfSU5JVF9MQVRfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRklYRURfSU5JVF9MQVRfU0hJRlQJMTYKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRTJSX0lOSVRfTEFUX1NISUZUCTIwCi0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX1NBTUVfUEFHRV9QUklPX1NISUZUCTI0Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0dMT0JXX0lOSVRfTEFUX1NISUZUCTI4Ci0KLSNkZWZpbmUgUjMwMF9NQ19JTklUX0dGWF9MQVRfVElNRVIJMHgxNTQKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRzNEMFJfSU5JVF9MQVRfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QxUl9JTklUX0xBVF9TSElGVAk0Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0czRDJSX0lOSVRfTEFUX1NISUZUCTgKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRzNEM1JfSU5JVF9MQVRfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfVFgwUl9JTklUX0xBVF9TSElGVAkxNgotIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19UWDFSX0lOSVRfTEFUX1NISUZUCTIwCi0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0dMT0JSX0lOSVRfTEFUX1NISUZUCTI0Ci0jCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0dMT0JXX0ZVTExfTEFUX1NISUZUCTI4Ci0KLS8qCi0gKiBUaGlzIGZpbGUgY29udGFpbnMgcmVnaXN0ZXJzIGFuZCBjb25zdGFudHMgZm9yIHRoZSBSMzAwLiBUaGV5IGhhdmUgYmVlbgotICogZm91bmQgbW9zdGx5IGJ5IGV4YW1pbmluZyBjb21tYW5kIGJ1ZmZlcnMgY2FwdHVyZWQgdXNpbmcgZ2x4dGVzdCwgYXMgd2VsbAotICogYXMgYnkgZXh0cmFwb2xhdGluZyBzb21lIGtub3duIHJlZ2lzdGVycyBhbmQgY29uc3RhbnRzIGZyb20gdGhlIFIyMDAuCi0gKiBJIGFtIGZhaXJseSBjZXJ0YWluIHRoYXQgdGhleSBhcmUgY29ycmVjdCB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZQotICogaW4gY29tbWVudHMuCi0gKi8KLQotI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1hTQ0FMRSAgICAgICAgICAgICAgICAweDFEOTgKLSNkZWZpbmUgUjMwMF9TRV9WUE9SVF9YT0ZGU0VUICAgICAgICAgICAgICAgMHgxRDlDCi0jZGVmaW5lIFIzMDBfU0VfVlBPUlRfWVNDQUxFICAgICAgICAgICAgICAgIDB4MURBMAotI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1lPRkZTRVQgICAgICAgICAgICAgICAweDFEQTQKLSNkZWZpbmUgUjMwMF9TRV9WUE9SVF9aU0NBTEUgICAgICAgICAgICAgICAgMHgxREE4Ci0jZGVmaW5lIFIzMDBfU0VfVlBPUlRfWk9GRlNFVCAgICAgICAgICAgICAgIDB4MURBQwotCi0KLS8qCi0gKiBWZXJ0ZXggQXJyYXkgUHJvY2Vzc2luZyAoVkFQKSBDb250cm9sCi0gKiBTdG9sZW4gZnJvbSByMjAwIGNvZGUgZnJvbSBDaHJpc3RvcGggQnJpbGwgKEl0J3MgYSBndWVzcyEpCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfQ05UTAkweDIwODAKLQotLyogVGhpcyByZWdpc3RlciBpcyB3cml0dGVuIGRpcmVjdGx5IGFuZCBhbHNvIHN0YXJ0cyBkYXRhIHNlY3Rpb24KLSAqIGluIG1hbnkgM2QgQ1BfUEFDS0VUMydzCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfVkZfQ05UTAkweDIwODQKLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFlQRV9fU0hJRlQgICAgICAgICAgICAgIDAKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX05PTkUgICAgICAgICAgICAgICAgICAgICAoMDw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1BPSU5UUyAgICAgICAgICAgICAgICAgICAoMTw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX0xJTkVTICAgICAgICAgICAgICAgICAgICAoMjw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX0xJTkVfU1RSSVAgICAgICAgICAgICAgICAoMzw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1RSSUFOR0xFUyAgICAgICAgICAgICAgICAoNDw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1RSSUFOR0xFX0ZBTiAgICAgICAgICAgICAoNTw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1RSSUFOR0xFX1NUUklQICAgICAgICAgICAoNjw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX0xJTkVfTE9PUCAgICAgICAgICAgICAgICAoMTI8PDApCi0jCWRlZmluZSAgUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9RVUFEUyAgICAgICAgICAgICAgICAgICAgKDEzPDwwKQotIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUVVBRF9TVFJJUCAgICAgICAgICAgICAgICgxNDw8MCkKLSMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1BPTFlHT04gICAgICAgICAgICAgICAgICAoMTU8PDApCi0KLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19fU0hJRlQgICAgICAgICAgICAgIDQKLQkvKiBTdGF0ZSBiYXNlZCAtIGRpcmVjdCB3cml0ZXMgdG8gcmVnaXN0ZXJzIHRyaWdnZXIgdmVydGV4Ci0gICAgICAgICAgIGdlbmVyYXRpb24gKi8KLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19TVEFURV9CQVNFRCAgICAgICAgICgwPDw0KQotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX0lORElDRVMgICAgICAgICAgICAgKDE8PDQpCi0jCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1dBTEtfVkVSVEVYX0xJU1QgICAgICAgICAoMjw8NCkKLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19WRVJURVhfRU1CRURERUQgICAgICgzPDw0KQotCi0JLyogSSBkb24ndCB0aGluayBJIHNhdyB0aGVzZSB0aHJlZSB1c2VkLi4gKi8KLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX0NPTE9SX09SREVSX19TSElGVCAgICAgICAgICAgIDYKLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1RDTF9PVVRQVVRfQ1RMX0VOQV9fU0hJRlQgICAgIDkKLSMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BST0dfU1RSRUFNX0VOQV9fU0hJRlQgICAgICAgIDEwCi0KLQkvKiBpbmRleCBzaXplIC0gd2hlbiBub3Qgc2V0IHRoZSBpbmRpY2VzIGFyZSBhc3N1bWVkIHRvIGJlIDE2IGJpdCAqLwotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fSU5ERVhfU0laRV8zMmJpdCAgICAgICAgICAgICAgKDE8PDExKQotCS8qIG51bWJlciBvZiB2ZXJ0aWNlcyAqLwotIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fTlVNX1ZFUlRJQ0VTX19TSElGVCAgICAgICAgICAgMTYKLQotLyogQkVHSU46IFdpbGQgZ3Vlc3NlcyAqLwotI2RlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8wICAgICAgICAgICAweDIwOTAKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX1BPU19QUkVTRU5UICAgICAoMTw8MCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX0NPTE9SX1BSRVNFTlQgICAoMTw8MSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX0NPTE9SXzFfUFJFU0VOVCAoMTw8MikgIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8wX19DT0xPUl8yX1BSRVNFTlQgKDE8PDMpICAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfM19QUkVTRU5UICgxPDw0KSAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX1BUX1NJWkVfUFJFU0VOVCAoMTw8MTYpIC8qIEdVRVNTICovCi0KLSNkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMSAgICAgICAgICAgMHgyMDk0Ci0JLyogZWFjaCBvZiB0aGUgZm9sbG93aW5nIGlzIDMgYml0cyB3aWRlLCBzcGVjaWZpZXMgbnVtYmVyCi0JICAgb2YgY29tcG9uZW50cyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzBfQ09NUF9DTlRfU0hJRlQgMAotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzFfQ09NUF9DTlRfU0hJRlQgMwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzJfQ09NUF9DTlRfU0hJRlQgNgotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzNfQ09NUF9DTlRfU0hJRlQgOQotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzRfQ09NUF9DTlRfU0hJRlQgMTIKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzFfX1RFWF81X0NPTVBfQ05UX1NISUZUIDE1Ci0jICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfNl9DT01QX0NOVF9TSElGVCAxOAotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzdfQ09NUF9DTlRfU0hJRlQgMjEKLS8qIEVORDogV2lsZCBndWVzc2VzICovCi0KLSNkZWZpbmUgUjMwMF9TRV9WVEVfQ05UTCAgICAgICAgICAgICAgICAgIDB4MjBiMAotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWF9TQ0FMRV9FTkEgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWF9PRkZTRVRfRU5BICAgICAgICAgICAgICAgMHgwMDAwMDAwMgotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWV9TQ0FMRV9FTkEgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWV9PRkZTRVRfRU5BICAgICAgICAgICAgICAgMHgwMDAwMDAwOAotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWl9TQ0FMRV9FTkEgICAgICAgICAgICAgICAgMHgwMDAwMDAxMAotIwlkZWZpbmUgICAgIFIzMDBfVlBPUlRfWl9PRkZTRVRfRU5BICAgICAgICAgICAgICAgMHgwMDAwMDAyMAotIwlkZWZpbmUgICAgIFIzMDBfVlRYX1hZX0ZNVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMAotIwlkZWZpbmUgICAgIFIzMDBfVlRYX1pfRk1UICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAotIwlkZWZpbmUgICAgIFIzMDBfVlRYX1cwX0ZNVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMAotIwlkZWZpbmUgICAgIFIzMDBfVlRYX1cwX05PUk1BTElaRSAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMAotIwlkZWZpbmUgICAgIFIzMDBfVlRYX1NUX0RFTk9STUFMSVpFRCAgICAgICAgICAgICAgMHgwMDAwMTAwMAotCi0vKiBCRUdJTjogVmVydGV4IGRhdGEgYXNzZW1ibHkgLSBsb3RzIG9mIHVuY2VydGFpbnRpZXMgKi8KLQotLyogZ2FwICovCi0KLSNkZWZpbmUgUjMwMF9WQVBfQ05UTF9TVEFUVVMgICAgICAgICAgICAgIDB4MjE0MAotIwlkZWZpbmUgUjMwMF9WQ19OT19TV0FQICAgICAgICAgICAgICAgICAgKDAgPDwgMCkKLSMJZGVmaW5lIFIzMDBfVkNfMTZCSVRfU1dBUCAgICAgICAgICAgICAgICgxIDw8IDApCi0jCWRlZmluZSBSMzAwX1ZDXzMyQklUX1NXQVAgICAgICAgICAgICAgICAoMiA8PCAwKQotIwlkZWZpbmUgUjMwMF9WQVBfVENMX0JZUEFTUwkJKDEgPDwgOCkKLQotLyogZ2FwICovCi0KLS8qIFdoZXJlIGRvIHdlIGdldCBvdXIgdmVydGV4IGRhdGE/Ci0gKgotICogVmVydGV4IGRhdGEgZWl0aGVyIGNvbWVzIGVpdGhlciBmcm9tIGltbWVkaWF0ZSBtb2RlIHJlZ2lzdGVycyBvciBmcm9tCi0gKiB2ZXJ0ZXggYXJyYXlzLgotICogVGhlcmUgYXBwZWFycyB0byBiZSBubyBtaXhlZCBtb2RlICh0aG91Z2ggd2UgY2FuIGZvcmNlIHRoZSBwaXRjaCBvZgotICogdmVydGV4IGFycmF5cyB0byAwLCBlZmZlY3RpdmVseSByZXVzaW5nIHRoZSBzYW1lIGVsZW1lbnQgb3ZlciBhbmQgb3ZlcgotICogYWdhaW4pLgotICoKLSAqIEltbWVkaWF0ZSBtb2RlIGlzIGNvbnRyb2xsZWQgYnkgdGhlIElOUFVUX0NOVEwgcmVnaXN0ZXJzLiBJIGFtIG5vdCBzdXJlCi0gKiBpZiB0aGVzZSByZWdpc3RlcnMgaW5mbHVlbmNlIHZlcnRleCBhcnJheSBwcm9jZXNzaW5nLgotICoKLSAqIFZlcnRleCBhcnJheXMgYXJlIGNvbnRyb2xsZWQgdmlhIHRoZSAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQzLgotICoKLSAqIEluIGJvdGggY2FzZXMsIHZlcnRleCBhdHRyaWJ1dGVzIGFyZSB0aGVuIHBhc3NlZCB0aHJvdWdoIElOUFVUX1JPVVRFLgotICoKLSAqIEJlZ2lubmluZyB3aXRoIElOUFVUX1JPVVRFXzBfMCBpcyBhIGxpc3Qgb2YgV09SRHMgdGhhdCByb3V0ZSB2ZXJ0ZXggZGF0YQotICogaW50byB0aGUgdmVydGV4IHByb2Nlc3NvcidzIGlucHV0IHJlZ2lzdGVycy4KLSAqIFRoZSBmaXJzdCB3b3JkIHJvdXRlcyB0aGUgZmlyc3QgaW5wdXQsIHRoZSBzZWNvbmQgd29yZCB0aGUgc2Vjb25kLCBldGMuCi0gKiBUaGUgY29ycmVzcG9uZGluZyBpbnB1dCBpcyByb3V0ZWQgaW50byB0aGUgcmVnaXN0ZXIgd2l0aCB0aGUgZ2l2ZW4gaW5kZXguCi0gKiBUaGUgbGlzdCBpcyBlbmRlZCBieSBhIHdvcmQgd2l0aCBJTlBVVF9ST1VURV9FTkQgc2V0LgotICoKLSAqIEFsd2F5cyBzZXQgQ09NUE9ORU5UU180IGluIGltbWVkaWF0ZSBtb2RlLgotICovCi0KLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8wICAgICAgICAgICAgMHgyMTUwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0NPTVBPTkVOVFNfMSAgICAgKDAgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU18yICAgICAoMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTXzMgICAgICgyIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0NPTVBPTkVOVFNfNCAgICAgKDMgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU19SR0JBICAoNCA8PCAwKSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfSURYX1NISUZUICAgIDgKLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFX0lEWF9NQVNLICAgICAoMzEgPDwgOCkgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFX0VORCAgICAgICAgICAoMSA8PCAxMykKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfSU1NRURJQVRFX01PREUgICAoMCA8PCAxNCkgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfRkxPQVQgICAgICAgICAgICAoMSA8PCAxNCkgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfVU5TSUdORURfQllURSAgICAoMiA8PCAxNCkgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfRkxPQVRfQ09MT1IgICAgICAoMyA8PCAxNCkgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8xICAgICAgICAgICAgMHgyMTU0Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfMiAgICAgICAgICAgIDB4MjE1OAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzMgICAgICAgICAgICAweDIxNUMKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF80ICAgICAgICAgICAgMHgyMTYwCi0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfNSAgICAgICAgICAgIDB4MjE2NAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzYgICAgICAgICAgICAweDIxNjgKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF83ICAgICAgICAgICAgMHgyMTZDCi0KLS8qIGdhcCAqLwotCi0vKiBOb3RlczoKLSAqICAtIGFsd2F5cyBzZXQgdXAgdG8gcHJvZHVjZSBhdCBsZWFzdCB0d28gYXR0cmlidXRlczoKLSAqICAgIGlmIHZlcnRleCBwcm9ncmFtIHVzZXMgb25seSBwb3NpdGlvbiwgZmdscnggd2lsbCBzZXQgbm9ybWFsLCB0b28KLSAqICAtIElOUFVUX0NOVExfMF9DT0xPUiBhbmQgSU5QVVRfQ05UTF9DT0xPUiBiaXRzIGFyZSBhbHdheXMgZXF1YWwuCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfQ05UTF8wICAgICAgICAgICAgICAgMHgyMTgwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfMF9DT0xPUiAgICAgICAgICAgMHgwMDAwMDAwMQotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9DTlRMXzEgICAgICAgICAgICAgICAweDIxODQKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9QT1MgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfTk9STUFMICAgICAgICAgICAgMHgwMDAwMDAwMgotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX0NPTE9SICAgICAgICAgICAgIDB4MDAwMDAwMDQKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzAgICAgICAgICAgICAgICAweDAwMDAwNDAwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEMxICAgICAgICAgICAgICAgMHgwMDAwMDgwMAotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMiAgICAgICAgICAgICAgIDB4MDAwMDEwMDAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzMgICAgICAgICAgICAgICAweDAwMDAyMDAwIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEM0ICAgICAgICAgICAgICAgMHgwMDAwNDAwMCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDNSAgICAgICAgICAgICAgIDB4MDAwMDgwMDAgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzYgICAgICAgICAgICAgICAweDAwMDEwMDAwIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEM3ICAgICAgICAgICAgICAgMHgwMDAyMDAwMCAvKiBHVUVTUyAqLwotCi0vKiBnYXAgKi8KLQotLyogV29yZHMgcGFyYWxsZWwgdG8gSU5QVVRfUk9VVEVfMDsgQWxsIHdvcmRzIHRoYXQgYXJlIGFjdGl2ZSBpbiBJTlBVVF9ST1VURV8wCi0gKiBhcmUgc2V0IHRvIGEgc3dpenpsaW5nIGJpdCBwYXR0ZXJuLCBvdGhlciB3b3JkcyBhcmUgMC4KLSAqCi0gKiBJbiBpbW1lZGlhdGUgbW9kZSwgdGhlIHBhdHRlcm4gaXMgYWx3YXlzIHNldCB0byB4eXp3LiBJbiB2ZXJ0ZXggYXJyYXkKLSAqIG1vZGUsIHRoZSBzd2l6emxpbmcgcGF0dGVybiBpcyBlLmcuIHVzZWQgdG8gc2V0IHp3IGNvbXBvbmVudHMgaW4gdGV4dHVyZQotICogY29vcmRpbmF0ZXMgd2l0aCBvbmx5IHR3ZW8gY29tcG9uZW50cy4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzAgICAgICAgICAgICAweDIxRTAKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX1ggICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfWSAgICAxCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9aICAgIDIKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX1cgICAgMwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfWkVSTyA0Ci0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9PTkUgIDUKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX01BU0sgNwotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9YX1NISUZUICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1lfU0hJRlQgICAgIDMKLSMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfWl9TSElGVCAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9XX1NISUZUICAgICA5Ci0jICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0VOQUJMRSAgICAgICgxNSA8PCAxMikKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8xICAgICAgICAgICAgMHgyMUU0Ci0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMiAgICAgICAgICAgIDB4MjFFOAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzMgICAgICAgICAgICAweDIxRUMKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV80ICAgICAgICAgICAgMHgyMUYwCi0jZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfNSAgICAgICAgICAgIDB4MjFGNAotI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzYgICAgICAgICAgICAweDIxRjgKLSNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV83ICAgICAgICAgICAgMHgyMUZDCi0KLS8qIEVORDogVmVydGV4IGRhdGEgYXNzZW1ibHkgKi8KLQotLyogZ2FwICovCi0KLS8qIEJFR0lOOiBVcGxvYWQgdmVydGV4IHByb2dyYW0gYW5kIGRhdGEgKi8KLQotLyoKLSAqIFRoZSBwcm9ncmFtbWFibGUgdmVydGV4IHNoYWRlciB1bml0IGhhcyBhIG1lbW9yeSBiYW5rIG9mIHVua25vd24gc2l6ZQotICogdGhhdCBjYW4gYmUgd3JpdHRlbiB0byBpbiAxNiBieXRlIHVuaXRzIGJ5IHdyaXRpbmcgdGhlIGFkZHJlc3MgaW50bwotICogVVBMT0FEX0FERFJFU1MsIGZvbGxvd2VkIGJ5IGRhdGEgaW4gVVBMT0FEX0RBVEEgKG11bHRpcGxlcyBvZiA0IERXT1JEcykuCi0gKgotICogUG9pbnRlcnMgaW50byB0aGUgbWVtb3J5IGJhbmsgYXJlIGFsd2F5cyBpbiBtdWx0aXBsZXMgb2YgMTYgYnl0ZXMuCi0gKgotICogVGhlIG1lbW9yeSBiYW5rIGlzIGRpdmlkZWQgaW50byBhcmVhcyB3aXRoIGZpeGVkIG1lYW5pbmcuCi0gKgotICogU3RhcnRpbmcgYXQgYWRkcmVzcyBVUExPQURfUFJPR1JBTTogVmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb25zLgotICogTmF0aXZlIGxpbWl0cyByZXBvcnRlZCBieSBkcml2ZXJzIGZyb20gQVRJIHN1Z2dlc3Qgc2l6ZSAyNTYgKGkuZS4gNEtCKSwKLSAqIHdoZXJlYXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBrbm93biBhZGRyZXNzZXMgc3VnZ2VzdHMgc2l6ZSA1MTIuCi0gKgotICogU3RhcnRpbmcgYXQgYWRkcmVzcyBVUExPQURfUEFSQU1FVEVSUzogVmVydGV4IHByb2dyYW0gcGFyYW1ldGVycy4KLSAqIE5hdGl2ZSByZXBvcnRlZCBsaW1pdHMgYW5kIHRoZSBWUEkgbGF5b3V0IHN1Z2dlc3Qgc2l6ZSAyNTYsIHdoZXJlYXMKLSAqIGRpZmZlcmVuY2UgYmV0d2VlbiBrbm93biBhZGRyZXNzZXMgc3VnZ2VzdHMgc2l6ZSA1MTIuCi0gKgotICogQXQgYWRkcmVzcyBVUExPQURfUE9JTlRTSVpFIGlzIGEgdmVjdG9yICgwLCAwLCBwcywgMCksIHdoZXJlIHBzIGlzIHRoZQotICogZmxvYXRpbmcgcG9pbnQgcG9pbnRzaXplLiBUaGUgZXhhY3QgcHVycG9zZSBvZiB0aGlzIHN0YXRlIGlzIHVuY2VydGFpbiwKLSAqIGFzIHRoZXJlIGlzIGFsc28gdGhlIFIzMDBfUkVfUE9JTlRTSVpFIHJlZ2lzdGVyLgotICoKLSAqIE11bHRpcGxlIHZlcnRleCBwcm9ncmFtcyBhbmQgcGFyYW1ldGVyIHNldHMgY2FuIGJlIGxvYWRlZCBhdCBvbmNlLAotICogd2hpY2ggY291bGQgZXhwbGFpbiB0aGUgc2l6ZSBkaXNjcmVwYW5jeS4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9QVlNfVVBMT0FEX0FERFJFU1MgICAgICAgICAweDIyMDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUFZTX1VQTE9BRF9QUk9HUkFNICAgICAgICAgICAweDAwMDAwMDAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BWU19VUExPQURfUEFSQU1FVEVSUyAgICAgICAgMHgwMDAwMDIwMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfVVBMT0FEX1BPSU5UU0laRSAgICAgICAgIDB4MDAwMDA0MDYKLQotLyogZ2FwICovCi0KLSNkZWZpbmUgUjMwMF9WQVBfUFZTX1VQTE9BRF9EQVRBICAgICAgICAgICAgMHgyMjA4Ci0KLS8qIEVORDogVXBsb2FkIHZlcnRleCBwcm9ncmFtIGFuZCBkYXRhICovCi0KLS8qIGdhcCAqLwotCi0vKiBJIGRvIG5vdCBrbm93IHRoZSBwdXJwb3NlIG9mIHRoaXMgcmVnaXN0ZXIuIEhvd2V2ZXIsIEkgZG8ga25vdyB0aGF0Ci0gKiBpdCBpcyBzZXQgdG8gMjIxQ19DTEVBUiBmb3IgY2xlYXIgb3BlcmF0aW9ucyBhbmQgdG8gMjIxQ19OT1JNQUwKLSAqIGZvciBub3JtYWwgcmVuZGVyaW5nLgotICovCi0jZGVmaW5lIFIzMDBfVkFQX1VOS05PV05fMjIxQyAgICAgICAgICAgICAgIDB4MjIxQwotIyAgICAgICBkZWZpbmUgUjMwMF8yMjFDX05PUk1BTCAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAKLSMgICAgICAgZGVmaW5lIFIzMDBfMjIxQ19DTEVBUiAgICAgICAgICAgICAgICAgICAweDAwMDFDMDAwCi0KLS8qIFRoZXNlIHNlZW0gdG8gYmUgcGVyLXBpeGVsIGFuZCBwZXItdmVydGV4IFggYW5kIFkgY2xpcHBpbmcgcGxhbmVzLiBUaGUgZmlyc3QKLSAqIHBsYW5lIGlzIHBlci1waXhlbCBhbmQgdGhlIHNlY29uZCBwbGFuZSBpcyBwZXItdmVydGV4LgotICoKLSAqIFRoaXMgd2FzIGRldGVybWluZWQgYnkgZXhwZXJpbWVudGF0aW9uIGFsb25lIGJ1dCBJIGJlbGlldmUgaXQgaXMgY29ycmVjdC4KLSAqCi0gKiBUaGVzZSByZWdpc3RlcnMgYXJlIGNhbGxlZCBYX1FVQUQwXzFfRkwgdG8gWF9RVUFEMF80X0ZMIGJ5IGdseHRlc3QuCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfQ0xJUF9YXzAgICAgICAgICAgICAgICAgICAgMHgyMjIwCi0jZGVmaW5lIFIzMDBfVkFQX0NMSVBfWF8xICAgICAgICAgICAgICAgICAgIDB4MjIyNAotI2RlZmluZSBSMzAwX1ZBUF9DTElQX1lfMCAgICAgICAgICAgICAgICAgICAweDIyMjgKLSNkZWZpbmUgUjMwMF9WQVBfQ0xJUF9ZXzEgICAgICAgICAgICAgICAgICAgMHgyMjMwCi0KLS8qIGdhcCAqLwotCi0vKiBTb21ldGltZXMsIEVORF9PRl9QS1QgYW5kIDB4MjI4ND0wIGFyZSB0aGUgb25seSBjb21tYW5kcyBzZW50IGJldHdlZW4KLSAqIHJlbmRlcmluZyBjb21tYW5kcyBhbmQgb3ZlcndyaXRpbmcgdmVydGV4IHByb2dyYW0gcGFyYW1ldGVycy4KLSAqIFRoZXJlZm9yZSwgSSBzdXNwZWN0IHdyaXRpbmcgemVybyB0byAweDIyODQgc3luY2hyb25pemVzIHRoZSBlbmdpbmUgYW5kCi0gKiBhdm9pZHMgYnVncyBjYXVzZWQgYnkgc3RpbGwgcnVubmluZyBzaGFkZXJzIHJlYWRpbmcgYmFkIGRhdGEgZnJvbSBtZW1vcnkuCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfUFZTX1dBSVRJRExFICAgICAgICAgICAgICAgMHgyMjg0IC8qIEdVRVNTICovCi0KLS8qIEFic29sdXRlbHkgbm8gY2x1ZSB3aGF0IHRoaXMgcmVnaXN0ZXIgaXMgYWJvdXQuICovCi0jZGVmaW5lIFIzMDBfVkFQX1VOS05PV05fMjI4OCAgICAgICAgICAgICAgIDB4MjI4OAotIyAgICAgICBkZWZpbmUgUjMwMF8yMjg4X1IzMDAgICAgICAgICAgICAgICAgICAgIDB4MDA3NTAwMDAgLyogLS0gbmggKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfMjI4OF9SVjM1MCAgICAgICAgICAgICAgICAgICAweDAwMDBGRkZGIC8qIC0tIFZsYWRpbWlyICovCi0KLS8qIGdhcCAqLwotCi0vKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSB2ZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbiBhcmVhIG9mIHRoZQotICogbWVtb3J5IGJhbmsuIFBST0dSQU1fRU5EIHBvaW50cyB0byB0aGUgbGFzdCBpbnN0cnVjdGlvbiBvZiB0aGUgYWN0aXZlCi0gKiBwcm9ncmFtCi0gKgotICogVGhlIG1lYW5pbmcgb2YgdGhlIHR3byBVTktOT1dOIGZpZWxkcyBpcyBvYnZpb3VzbHkgbm90IGtub3duLiBIb3dldmVyLAotICogZXhwZXJpbWVudHMgc28gZmFyIGhhdmUgc2hvd24gdGhhdCBib3RoICptdXN0KiBwb2ludCB0byBhbiBpbnN0cnVjdGlvbgotICogaW5zaWRlIHRoZSB2ZXJ0ZXggcHJvZ3JhbSwgb3RoZXJ3aXNlIHRoZSBHUFUgbG9ja3MgdXAuCi0gKgotICogZmdscnggdXN1YWxseSBzZXRzIENOVExfM19VTktOT1dOIHRvIHRoZSBlbmQgb2YgdGhlIHByb2dyYW0gYW5kCi0gKiBSMzAwX1BWU19DTlRMXzFfUE9TX0VORF9TSElGVCBwb2ludHMgdG8gaW5zdHJ1Y3Rpb24gd2hlcmUgbGFzdCB3cml0ZSB0bwotICogcG9zaXRpb24gdGFrZXMgcGxhY2UuCi0gKgotICogTW9zdCBsaWtlbHkgdGhpcyBpcyB1c2VkIHRvIGlnbm9yZSByZXN0IG9mIHRoZSBwcm9ncmFtIGluIGNhc2VzCi0gKiB3aGVyZSBncm91cCBvZiB2ZXJ0cyBhcmVudCB2aXNpYmxlLiBGb3Igc29tZSByZWFzb24gdGhpcyAic2VjdGlvbiIKLSAqIGlzIHNvbWV0aW1lcyBhY2NlcHRlZCBvdGhlciBpbnN0cnVjdGlvbiB0aGF0IGhhdmUgbm8gcmVsYXRpb25zaGlwIHdpdGgKLSAqIHBvc2l0aW9uIGNhbGN1bGF0aW9ucy4KLSAqLwotI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8xICAgICAgICAgICAgICAgICAweDIyRDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUFZTX0NOVExfMV9QUk9HUkFNX1NUQVJUX1NISUZUICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8xX1BPU19FTkRfU0hJRlQgICAgICAgICAxMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8xX1BST0dSQU1fRU5EX1NISUZUICAgICAyMAotLyogQWRkcmVzc2VzIGFyZSByZWxhdGl2ZSB0aGUgdGhlIHZlcnRleCBwcm9ncmFtIHBhcmFtZXRlcnMgYXJlYS4gKi8KLSNkZWZpbmUgUjMwMF9WQVBfUFZTX0NOVExfMiAgICAgICAgICAgICAgICAgMHgyMkQ0Ci0jICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzJfUEFSQU1fT0ZGU0VUX1NISUZUIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUFZTX0NOVExfMl9QQVJBTV9DT1VOVF9TSElGVCAgMTYKLSNkZWZpbmUgUjMwMF9WQVBfUFZTX0NOVExfMwkgICAgICAgICAgIDB4MjJEOAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8zX1BST0dSQU1fVU5LTk9XTl9TSElGVCAxMAotIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8zX1BST0dSQU1fVU5LTk9XTjJfU0hJRlQgMAotCi0vKiBUaGUgZW50aXJlIHJhbmdlIGZyb20gMHgyMzAwIHRvIDB4MkFDIGluY2x1c2l2ZSBzZWVtcyB0byBiZSB1c2VkIGZvcgotICogaW1tZWRpYXRlIHZlcnRpY2VzCi0gKi8KLSNkZWZpbmUgUjMwMF9WQVBfVlRYX0NPTE9SX1IgICAgICAgICAgICAgICAgMHgyNDY0Ci0jZGVmaW5lIFIzMDBfVkFQX1ZUWF9DT0xPUl9HICAgICAgICAgICAgICAgIDB4MjQ2OAotI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfQiAgICAgICAgICAgICAgICAweDI0NkMKLSNkZWZpbmUgUjMwMF9WQVBfVlRYX1BPU18wX1hfMSAgICAgICAgICAgICAgMHgyNDkwIC8qIHVzZWQgZm9yIGdsVmVydGV4MiooKSAqLwotI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWV8xICAgICAgICAgICAgICAweDI0OTQKLSNkZWZpbmUgUjMwMF9WQVBfVlRYX0NPTE9SX1BLRCAgICAgICAgICAgICAgMHgyNDlDIC8qIFJHQkEgKi8KLSNkZWZpbmUgUjMwMF9WQVBfVlRYX1BPU18wX1hfMiAgICAgICAgICAgICAgMHgyNEEwIC8qIHVzZWQgZm9yIGdsVmVydGV4MyooKSAqLwotI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWV8yICAgICAgICAgICAgICAweDI0QTQKLSNkZWZpbmUgUjMwMF9WQVBfVlRYX1BPU18wX1pfMiAgICAgICAgICAgICAgMHgyNEE4Ci0vKiB3cml0ZSAwIHRvIGluZGljYXRlIGVuZCBvZiBwYWNrZXQ/ICovCi0jZGVmaW5lIFIzMDBfVkFQX1ZUWF9FTkRfT0ZfUEtUICAgICAgICAgICAgIDB4MjRBQwotCi0vKiBnYXAgKi8KLQotLyogVGhlc2UgYXJlIHZhbHVlcyBmcm9tIHIzMDBfcmVnL3IzMDBfcmVnLmggLSB0aGV5IGFyZSBrbm93biB0byBiZSBjb3JyZWN0Ci0gKiBhbmQgYXJlIGhlcmUgc28gd2UgY2FuIHVzZSBvbmUgcmVnaXN0ZXIgZmlsZSBpbnN0ZWFkIG9mIHNldmVyYWwKLSAqIC0gVmxhZGltaXIKLSAqLwotI2RlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wCTB4NDAwMAotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMF9fUE9TX1BSRVNFTlQJKDE8PDApCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19DT0xPUl8wX1BSRVNFTlQJKDE8PDEpCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19DT0xPUl8xX1BSRVNFTlQJKDE8PDIpCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19DT0xPUl8yX1BSRVNFTlQJKDE8PDMpCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19DT0xPUl8zX1BSRVNFTlQJKDE8PDQpCi0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19DT0xPUl9TUEFDRQkoMHhmPDw1KQotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMF9fUFRfU0laRV9QUkVTRU5UCSgweDE8PDE2KQotCi0jZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzEJMHg0MDA0Ci0JLyogZWFjaCBvZiB0aGUgZm9sbG93aW5nIGlzIDMgYml0cyB3aWRlLCBzcGVjaWZpZXMgbnVtYmVyCi0JICAgb2YgY29tcG9uZW50cyAqLwotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzBfQ09NUF9DTlRfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzFfQ09NUF9DTlRfU0hJRlQJMwotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzJfQ09NUF9DTlRfU0hJRlQJNgotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzNfQ09NUF9DTlRfU0hJRlQJOQotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzRfQ09NUF9DTlRfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzFfX1RFWF81X0NPTVBfQ05UX1NISUZUCTE1Ci0jCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfNl9DT01QX0NOVF9TSElGVAkxOAotIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzdfQ09NUF9DTlRfU0hJRlQJMjEKLQotLyogVU5LMzAgc2VlbXMgdG8gZW5hYmxlcyBwb2ludCB0byBxdWFkIHRyYW5zZm9ybWF0aW9uIG9uIHRleHR1cmVzCi0gKiAob3Igc29tZXRoaW5nIGNsb3NlbHkgcmVsYXRlZCB0byB0aGF0KS4KLSAqIFRoaXMgYml0IGlzIHJhdGhlciBmYXRhbCBhdCB0aGUgdGltZSBiZWluZyBkdWUgdG8gbGFja2luZ3MgYXQgcGl4ZWwKLSAqIHNoYWRlciBzaWRlCi0gKi8KLSNkZWZpbmUgUjMwMF9HQl9FTkFCTEUJMHg0MDA4Ci0jCWRlZmluZSBSMzAwX0dCX1BPSU5UX1NUVUZGX0VOQUJMRQkoMTw8MCkKLSMJZGVmaW5lIFIzMDBfR0JfTElORV9TVFVGRl9FTkFCTEUJKDE8PDEpCi0jCWRlZmluZSBSMzAwX0dCX1RSSUFOR0xFX1NUVUZGX0VOQUJMRQkoMTw8MikKLSMJZGVmaW5lIFIzMDBfR0JfU1RFTkNJTF9BVVRPX0VOQUJMRQkoMTw8NCkKLSMJZGVmaW5lIFIzMDBfR0JfVU5LMzEJCQkoMTw8MzEpCi0JLyogZWFjaCBvZiB0aGUgZm9sbG93aW5nIGlzIDIgYml0cyB3aWRlICovCi0jZGVmaW5lIFIzMDBfR0JfVEVYX1JFUExJQ0FURQkwCi0jZGVmaW5lIFIzMDBfR0JfVEVYX1NUCQkxCi0jZGVmaW5lIFIzMDBfR0JfVEVYX1NUUgkJMgotIwlkZWZpbmUgUjMwMF9HQl9URVgwX1NPVVJDRV9TSElGVAkxNgotIwlkZWZpbmUgUjMwMF9HQl9URVgxX1NPVVJDRV9TSElGVAkxOAotIwlkZWZpbmUgUjMwMF9HQl9URVgyX1NPVVJDRV9TSElGVAkyMAotIwlkZWZpbmUgUjMwMF9HQl9URVgzX1NPVVJDRV9TSElGVAkyMgotIwlkZWZpbmUgUjMwMF9HQl9URVg0X1NPVVJDRV9TSElGVAkyNAotIwlkZWZpbmUgUjMwMF9HQl9URVg1X1NPVVJDRV9TSElGVAkyNgotIwlkZWZpbmUgUjMwMF9HQl9URVg2X1NPVVJDRV9TSElGVAkyOAotIwlkZWZpbmUgUjMwMF9HQl9URVg3X1NPVVJDRV9TSElGVAkzMAotCi0vKiBNU1BPUyAtIHBvc2l0aW9ucyBmb3IgbXVsdGlzYW1wbGUgYW50aWFsaWFzaW5nICg/KSAqLwotI2RlZmluZSBSMzAwX0dCX01TUE9TMAkweDQwMTAKLQkvKiBzaGlmdHMgLSBlYWNoIG9mIHRoZSBmaWVsZHMgaXMgNCBiaXRzICovCi0jCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWDBfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1kwX1NISUZUCTQKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19YMV9TSElGVAk4Ci0jCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTFfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19YMl9TSElGVAkxNgotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1kyX1NISUZUCTIwCi0jCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNCRDBfWQkJMjQKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU0JEMF9YCQkyOAotCi0jZGVmaW5lIFIzMDBfR0JfTVNQT1MxCTB4NDAxNAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1gzX1NISUZUCTAKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19ZM19TSElGVAk0Ci0jCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWDRfU0hJRlQJOAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1k0X1NISUZUCTEyCi0jCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWDVfU0hJRlQJMTYKLSMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19ZNV9TSElGVAkyMAotIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TQkQxCQkyNAotCi0KLSNkZWZpbmUgUjMwMF9HQl9USUxFX0NPTkZJRwkweDQwMTgKLSMJZGVmaW5lIFIzMDBfR0JfVElMRV9FTkFCTEUJKDE8PDApCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfUElQRV9DT1VOVF9SVjMwMAkwCi0jCWRlZmluZSBSMzAwX0dCX1RJTEVfUElQRV9DT1VOVF9SMzAwCSgzPDwxKQotIwlkZWZpbmUgUjMwMF9HQl9USUxFX1BJUEVfQ09VTlRfUjQyMAkoNzw8MSkKLSMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1JWNDEwCSgzPDwxKQotIwlkZWZpbmUgUjMwMF9HQl9USUxFX1NJWkVfOAkJMAotIwlkZWZpbmUgUjMwMF9HQl9USUxFX1NJWkVfMTYJCSgxPDw0KQotIwlkZWZpbmUgUjMwMF9HQl9USUxFX1NJWkVfMzIJCSgyPDw0KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzEJCSgwPDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzIJCSgxPDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzQJCSgyPDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzgJCSgzPDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzE2CQkoNDw8NikKLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfU0laRV8zMgkJKDU8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfNjQJCSg2PDw2KQotIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzEyOAkJKDc8PDYpCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1hfU0hJRlQJCTkJLyogMyBiaXRzIHdpZGUgKi8KLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfWV9TSElGVAkJMTIJLyogMyBiaXRzIHdpZGUgKi8KLSMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfVElMRV9BCQkwCi0jCWRlZmluZSBSMzAwX0dCX1NVUEVSX1RJTEVfQgkJKDE8PDE1KQotIwlkZWZpbmUgUjMwMF9HQl9TVUJQSVhFTF8xXzEyCQkwCi0jCWRlZmluZSBSMzAwX0dCX1NVQlBJWEVMXzFfMTYJCSgxPDwxNikKLQotI2RlZmluZSBSMzAwX0dCX0ZJRk9fU0laRQkweDQwMjQKLQkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMiBiaXRzIHdpZGUgKi8KLSNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMzIJMAotI2RlZmluZSBSMzAwX0dCX0ZJRk9fU0laRV82NAkxCi0jZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFXzEyOAkyCi0jZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFXzI1NgkzCi0jCWRlZmluZSBSMzAwX1NDX0lGSUZPX1NJWkVfU0hJRlQJMAotIwlkZWZpbmUgUjMwMF9TQ19UWkZJRk9fU0laRV9TSElGVAkyCi0jCWRlZmluZSBSMzAwX1NDX0JGSUZPX1NJWkVfU0hJRlQJNAotCi0jCWRlZmluZSBSMzAwX1VTX09GSUZPX1NJWkVfU0hJRlQJMTIKLSMJZGVmaW5lIFIzMDBfVVNfV0ZJRk9fU0laRV9TSElGVAkxNAotCS8qIHRoZSBmb2xsb3dpbmcgdXNlIHRoZSBzYW1lIGNvbnN0YW50cyBhcyBhYm92ZSwgYnV0IG1lYW5pbmcgaXMKLQkgICBpcyB0aW1lcyAyIChpLmUuIGluc3RlYWQgb2YgMzIgd29yZHMgaXQgbWVhbnMgNjQgKi8KLSMJZGVmaW5lIFIzMDBfUlNfVEZJRk9fU0laRV9TSElGVAk2Ci0jCWRlZmluZSBSMzAwX1JTX0NGSUZPX1NJWkVfU0hJRlQJOAotIwlkZWZpbmUgUjMwMF9VU19SQU1fU0laRV9TSElGVAkJMTAKLQkvKiB3YXRlcm1hcmtzLCAzIGJpdHMgd2lkZSAqLwotIwlkZWZpbmUgUjMwMF9SU19ISUdIV0FURVJfQ09MX1NISUZUCTE2Ci0jCWRlZmluZSBSMzAwX1JTX0hJR0hXQVRFUl9URVhfU0hJRlQJMTkKLSMJZGVmaW5lIFIzMDBfT0ZJRk9fSElHSFdBVEVSX1NISUZUCTIyCS8qIHR3byBiaXRzIG9ubHkgKi8KLSMJZGVmaW5lIFIzMDBfQ1VCRV9GSUZPX0hJR0hXQVRFUl9DT0xfU0hJRlQJMjQKLQotI2RlZmluZSBSMzAwX0dCX1NFTEVDVAkweDQwMUMKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9DMEEJCTAKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9DMUEJCTEKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9DMkEJCTIKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9DM0EJCTMKLSMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF8xXzFfVwk0Ci0jCWRlZmluZSBSMzAwX0dCX0ZPR19TRUxFQ1RfWgkJNQotIwlkZWZpbmUgUjMwMF9HQl9ERVBUSF9TRUxFQ1RfWgkJMAotIwlkZWZpbmUgUjMwMF9HQl9ERVBUSF9TRUxFQ1RfMV8xX1cJKDE8PDMpCi0jCWRlZmluZSBSMzAwX0dCX1dfU0VMRUNUXzFfVwkJMAotIwlkZWZpbmUgUjMwMF9HQl9XX1NFTEVDVF8xCQkoMTw8NCkKLQotI2RlZmluZSBSMzAwX0dCX0FBX0NPTkZJRwkJMHg0MDIwCi0jCWRlZmluZSBSMzAwX0FBX0RJU0FCTEUJCQkweDAwCi0jCWRlZmluZSBSMzAwX0FBX0VOQUJMRQkJCTB4MDEKLSMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU18yCQkwCi0jCWRlZmluZSBSMzAwX0FBX1NVQlNBTVBMRVNfMwkJKDE8PDEpCi0jCWRlZmluZSBSMzAwX0FBX1NVQlNBTVBMRVNfNAkJKDI8PDEpCi0jCWRlZmluZSBSMzAwX0FBX1NVQlNBTVBMRVNfNgkJKDM8PDEpCi0KLS8qIGdhcCAqLwotCi0vKiBaZXJvIHRvIGZsdXNoIGNhY2hlcy4gKi8KLSNkZWZpbmUgUjMwMF9UWF9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgMHg0MTAwCi0jZGVmaW5lIFIzMDBfVFhfRkxVU0ggICAgICAgICAgICAgICAgICAgICAgIDB4MAotCi0vKiBUaGUgdXBwZXIgZW5hYmxlIGJpdHMgYXJlIGd1ZXNzZWQsIGJhc2VkIG9uIGZnbHJ4IHJlcG9ydGVkIGxpbWl0cy4gKi8KLSNkZWZpbmUgUjMwMF9UWF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgMHg0MTA0Ci0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV8wICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzEgICAgICAgICAgICAgICAgICAoMSA8PCAxKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMiAgICAgICAgICAgICAgICAgICgxIDw8IDIpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV8zICAgICAgICAgICAgICAgICAgKDEgPDwgMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzQgICAgICAgICAgICAgICAgICAoMSA8PCA0KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNSAgICAgICAgICAgICAgICAgICgxIDw8IDUpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV82ICAgICAgICAgICAgICAgICAgKDEgPDwgNikKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzcgICAgICAgICAgICAgICAgICAoMSA8PCA3KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfOCAgICAgICAgICAgICAgICAgICgxIDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV85ICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzEwICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzExICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzEyICAgICAgICAgICAgICAgICAoMSA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzEzICAgICAgICAgICAgICAgICAoMSA8PCAxMykKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzE0ICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzE1ICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKLQotLyogVGhlIHBvaW50c2l6ZSBpcyBnaXZlbiBpbiBtdWx0aXBsZXMgb2YgNi4gVGhlIHBvaW50c2l6ZSBjYW4gYmUKLSAqIGVub3Jtb3VzOiBDbGVhcigpIHJlbmRlcnMgYSBzaW5nbGUgcG9pbnQgdGhhdCBmaWxscyB0aGUgZW50aXJlCi0gKiBmcmFtZWJ1ZmZlci4KLSAqLwotI2RlZmluZSBSMzAwX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgICAweDQyMUMKLSMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1lfU0hJRlQgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BPSU5UU0laRV9ZX01BU0sgICAgICAgICAgICAgKDB4RkZGRiA8PCAwKSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfWF9TSElGVCAgICAgICAgICAgIDE2Ci0jICAgICAgIGRlZmluZSBSMzAwX1BPSU5UU0laRV9YX01BU0sgICAgICAgICAgICAgKDB4RkZGRiA8PCAxNikgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX01BWCAgICAgICAgICAgICAoUjMwMF9QT0lOVFNJWkVfWV9NQVNLIC8gNikKLQotLyogVGhlIGxpbmUgd2lkdGggaXMgZ2l2ZW4gaW4gbXVsdGlwbGVzIG9mIDYuCi0gKiBJbiBkZWZhdWx0IG1vZGUgbGluZXMgYXJlIGNsYXNzaWZpZWQgYXMgdmVydGljYWwgbGluZXMuCi0gKiBITzogaG9yaXpvbnRhbAotICogVkU6IHZlcnRpY2FsIG9yIGhvcml6b250YWwKLSAqIEhPICYgVkU6IG5vIGNsYXNzaWZpY2F0aW9uCi0gKi8KLSNkZWZpbmUgUjMwMF9SRV9MSU5FX0NOVCAgICAgICAgICAgICAgICAgICAgICAweDQyMzQKLSMgICAgICAgZGVmaW5lIFIzMDBfTElORVNJWkVfU0hJRlQgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0xJTkVTSVpFX01BU0sgICAgICAgICAgICAgKDB4RkZGRiA8PCAwKSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9MSU5FU0laRV9NQVggICAgICAgICAgICAgKFIzMDBfTElORVNJWkVfTUFTSyAvIDYpCi0jICAgICAgIGRlZmluZSBSMzAwX0xJTkVfQ05UX0hPICAgICAgICAgICAgICAgKDEgPDwgMTYpCi0jICAgICAgIGRlZmluZSBSMzAwX0xJTkVfQ05UX1ZFICAgICAgICAgICAgICAgKDEgPDwgMTcpCi0KLS8qIFNvbWUgc29ydCBvZiBzY2FsZSBvciBjbGFtcCB2YWx1ZSBmb3IgdGV4Y29vcmRsZXNzIHRleHR1cmVzLiAqLwotI2RlZmluZSBSMzAwX1JFX1VOSzQyMzggICAgICAgICAgICAgICAgICAgICAgIDB4NDIzOAotCi0vKiBTb21ldGhpbmcgc2hhZGUgcmVsYXRlZCAqLwotI2RlZmluZSBSMzAwX1JFX1NIQURFICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDI3NAotCi0jZGVmaW5lIFIzMDBfUkVfU0hBREVfTU9ERUwgICAgICAgICAgICAgICAgICAgMHg0Mjc4Ci0jCWRlZmluZSBSMzAwX1JFX1NIQURFX01PREVMX1NNT09USCAgICAgMHgzYWFhYQotIwlkZWZpbmUgUjMwMF9SRV9TSEFERV9NT0RFTF9GTEFUICAgICAgIDB4Mzk1OTUKLQotLyogRGFuZ2Vyb3VzICovCi0jZGVmaW5lIFIzMDBfUkVfUE9MWUdPTl9NT0RFICAgICAgICAgICAgICAgICAgMHg0Mjg4Ci0jCWRlZmluZSBSMzAwX1BNX0VOQUJMRUQgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSMJZGVmaW5lIFIzMDBfUE1fRlJPTlRfUE9JTlQgICAgICAgICAgICAoMCA8PCAwKQotIwlkZWZpbmUgUjMwMF9QTV9CQUNLX1BPSU5UICAgICAgICAgICAgICgwIDw8IDApCi0jCWRlZmluZSBSMzAwX1BNX0ZST05UX0xJTkUgICAgICAgICAgICAgKDEgPDwgNCkKLSMJZGVmaW5lIFIzMDBfUE1fRlJPTlRfRklMTCAgICAgICAgICAgICAoMSA8PCA1KQotIwlkZWZpbmUgUjMwMF9QTV9CQUNLX0xJTkUgICAgICAgICAgICAgICgxIDw8IDcpCi0jCWRlZmluZSBSMzAwX1BNX0JBQ0tfRklMTCAgICAgICAgICAgICAgKDEgPDwgOCkKLQotLyogRm9nIHBhcmFtZXRlcnMgKi8KLSNkZWZpbmUgUjMwMF9SRV9GT0dfU0NBTEUgICAgICAgICAgICAgICAgICAgICAweDQyOTQKLSNkZWZpbmUgUjMwMF9SRV9GT0dfU1RBUlQgICAgICAgICAgICAgICAgICAgICAweDQyOTgKLQotLyogTm90IHN1cmUgd2h5IHRoZXJlIGFyZSBkdXBsaWNhdGUgb2YgZmFjdG9yIGFuZCBjb25zdGFudCB2YWx1ZXMuCi0gKiBNeSBiZXN0IGd1ZXNzIHNvIGZhciBpcyB0aGF0IHRoZXJlIGFyZSBzZXBhcmF0ZSB6Ymlhc2VzIGZvciB0ZXN0IGFuZCB3cml0ZS4KLSAqIE9yZGVyaW5nIG1pZ2h0IGJlIHdyb25nLgotICogU29tZSBvZiB0aGUgdGVzdHMgaW5kaWNhdGUgdGhhdCBmZ2wgaGFzIGEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgemJpYXMKLSAqIHZpYSBwaXhlbCBzaGFkZXJzLgotICovCi0jZGVmaW5lIFIzMDBfUkVfWkJJQVNfQ05UTCAgICAgICAgICAgICAgICAgICAgMHg0MkEwIC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUkVfWkJJQVNfVF9GQUNUT1IgICAgICAgICAgICAgICAgMHg0MkE0Ci0jZGVmaW5lIFIzMDBfUkVfWkJJQVNfVF9DT05TVEFOVCAgICAgICAgICAgICAgMHg0MkE4Ci0jZGVmaW5lIFIzMDBfUkVfWkJJQVNfV19GQUNUT1IgICAgICAgICAgICAgICAgMHg0MkFDCi0jZGVmaW5lIFIzMDBfUkVfWkJJQVNfV19DT05TVEFOVCAgICAgICAgICAgICAgMHg0MkIwCi0KLS8qIFRoaXMgcmVnaXN0ZXIgbmVlZHMgdG8gYmUgc2V0IHRvICgxPDwxKSBmb3IgUlYzNTAgdG8gY29ycmVjdGx5Ci0gKiBwZXJmb3JtIGRlcHRoIHRlc3QgKHNlZSAtLXZiLXRyaWFuZ2xlcyBpbiByMzAwX2RlbW8pCi0gKiBEb24ndCBrbm93IGFib3V0IG90aGVyIGNoaXBzLiAtIFZsYWRpbWlyCi0gKiBUaGlzIGlzIHNldCB0byAzIHdoZW4gR0xfUE9MWUdPTl9PRkZTRVRfRklMTCBpcyBvbi4KLSAqIE15IGd1ZXNzIGlzIHRoYXQgdGhlcmUgYXJlIHR3byBiaXRzIGZvciBlYWNoIHpiaWFzIHByaW1pdGl2ZQotICogKEZJTEwsIExJTkUsIFBPSU5UKS4KLSAqICBPbmUgdG8gZW5hYmxlIGRlcHRoIHRlc3QgYW5kIG9uZSBmb3IgZGVwdGggd3JpdGUuCi0gKiBZZXQgdGhpcyBkb2VzbnQgZXhwbGFpbiB3aHkgZGVwdGggd3JpdGVzIHdvcmsgLi4uCi0gKi8KLSNkZWZpbmUgUjMwMF9SRV9PQ0NMVVNJT05fQ05UTAkJICAgIDB4NDJCNAotIwlkZWZpbmUgUjMwMF9PQ0NMVVNJT05fT04JCSgxPDwxKQotCi0jZGVmaW5lIFIzMDBfUkVfQ1VMTF9DTlRMICAgICAgICAgICAgICAgICAgIDB4NDJCOAotIyAgICAgICBkZWZpbmUgUjMwMF9DVUxMX0ZST05UICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0NVTExfQkFDSyAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlJPTlRfRkFDRV9DQ1cgICAgICAgICAgICAgICAoMCA8PCAyKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUk9OVF9GQUNFX0NXICAgICAgICAgICAgICAgICgxIDw8IDIpCi0KLQotLyogQkVHSU46IFJhc3Rlcml6YXRpb24gLyBJbnRlcnBvbGF0b3JzIC0gbWFueSBndWVzc2VzICovCi0KLS8qIDBfVU5LTk9XTl8xOCBoYXMgYWx3YXlzIGJlZW4gc2V0IGV4Y2VwdCBmb3IgY2xlYXIgb3BlcmF0aW9ucy4KLSAqIFRDX0NOVCBpcyB0aGUgbnVtYmVyIG9mIGluY29taW5nIHRleHR1cmUgY29vcmRpbmF0ZSBzZXRzIChpLmUuIGl0IGRlcGVuZHMKLSAqIG9uIHRoZSB2ZXJ0ZXggcHJvZ3JhbSwgKm5vdCogdGhlIGZyYWdtZW50IHByb2dyYW0pCi0gKi8KLSNkZWZpbmUgUjMwMF9SU19DTlRMXzAgICAgICAgICAgICAgICAgICAgICAgMHg0MzAwCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0NOVExfVENfQ05UX1NISUZUICAgICAgICAgMgotIyAgICAgICBkZWZpbmUgUjMwMF9SU19DTlRMX1RDX0NOVF9NQVNLICAgICAgICAgICg3IDw8IDIpCi0JLyogbnVtYmVyIG9mIGNvbG9yIGludGVycG9sYXRvcnMgdXNlZCAqLwotIwlkZWZpbmUgUjMwMF9SU19DTlRMX0NJX0NOVF9TSElGVCAgICAgICAgIDcKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfQ05UTF8wX1VOS05PV05fMTggICAgICAgICAoMSA8PCAxOCkKLQkvKiBHdWVzczogUlNfQ05UTF8xIGhvbGRzIHRoZSBpbmRleCBvZiB0aGUgaGlnaGVzdCB1c2VkIFJTX1JPVVRFX24KLQkgICByZWdpc3Rlci4gKi8KLSNkZWZpbmUgUjMwMF9SU19DTlRMXzEgICAgICAgICAgICAgICAgICAgICAgMHg0MzA0Ci0KLS8qIGdhcCAqLwotCi0vKiBPbmx5IHVzZWQgZm9yIHRleHR1cmUgY29vcmRpbmF0ZXMuCi0gKiBVc2UgdGhlIHNvdXJjZSBmaWVsZCB0byByb3V0ZSB0ZXh0dXJlIGNvb3JkaW5hdGUgaW5wdXQgZnJvbSB0aGUKLSAqIHZlcnRleCBwcm9ncmFtIHRvIHRoZSBkZXNpcmVkIGludGVycG9sYXRvci4gTm90ZSB0aGF0IHRoZSBzb3VyY2UKLSAqIGZpZWxkIGlzIHJlbGF0aXZlIHRvIHRoZSBvdXRwdXRzIHRoZSB2ZXJ0ZXggcHJvZ3JhbSAqYWN0dWFsbHkqCi0gKiB3cml0ZXMuIElmIGEgdmVydGV4IHByb2dyYW0gb25seSB3cml0ZXMgdGV4Y29vcmRbMV0sIHRoaXMgd2lsbAotICogYmUgc291cmNlIGluZGV4IDAuCi0gKiBTZXQgSU5URVJQX1VTRUQgb24gYWxsIGludGVycG9sYXRvcnMgdGhhdCBwcm9kdWNlIGRhdGEgdXNlZCBieQotICogdGhlIGZyYWdtZW50IHByb2dyYW0uIElOVEVSUF9VU0VEIGxvb2tzIGxpa2UgYSBzd2l6emxpbmcgbWFzaywKLSAqIGJ1dCBJIGhhdmVuJ3Qgc2VlbiBpdCB1c2VkIHRoYXQgd2F5LgotICoKLSAqIE5vdGU6IFRoZSBfVU5LTk9XTiBjb25zdGFudHMgYXJlIGFsd2F5cyBzZXQgaW4gdGhlaXIgcmVzcGVjdGl2ZQotICogcmVnaXN0ZXIuIEkgZG9uJ3Qga25vdyBpZiB0aGlzIGlzIG5lY2Vzc2FyeS4KLSAqLwotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF8wICAgICAgICAgICAgICAgICAgICAweDQzMTAKLSNkZWZpbmUgUjMwMF9SU19JTlRFUlBfMSAgICAgICAgICAgICAgICAgICAgMHg0MzE0Ci0jICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF8xX1VOS05PV04gICAgICAgICAgMHg0MAotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF8yICAgICAgICAgICAgICAgICAgICAweDQzMTgKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQXzJfVU5LTk9XTiAgICAgICAgICAweDgwCi0jZGVmaW5lIFIzMDBfUlNfSU5URVJQXzMgICAgICAgICAgICAgICAgICAgIDB4NDMxQwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19JTlRFUlBfM19VTktOT1dOICAgICAgICAgIDB4QzAKLSNkZWZpbmUgUjMwMF9SU19JTlRFUlBfNCAgICAgICAgICAgICAgICAgICAgMHg0MzIwCi0jZGVmaW5lIFIzMDBfUlNfSU5URVJQXzUgICAgICAgICAgICAgICAgICAgIDB4NDMyNAotI2RlZmluZSBSMzAwX1JTX0lOVEVSUF82ICAgICAgICAgICAgICAgICAgICAweDQzMjgKLSNkZWZpbmUgUjMwMF9SU19JTlRFUlBfNyAgICAgICAgICAgICAgICAgICAgMHg0MzJDCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF9TUkNfU0hJRlQgICAgICAgICAgMgotIyAgICAgICBkZWZpbmUgUjMwMF9SU19JTlRFUlBfU1JDX01BU0sgICAgICAgICAgICg3IDw8IDIpCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF9VU0VEICAgICAgICAgICAgICAgMHgwMEQxMDAwMAotCi0vKiBUaGVzZSBEV09SRHMgY29udHJvbCBob3cgdmVydGV4IGRhdGEgaXMgcm91dGVkIGludG8gZnJhZ21lbnQgcHJvZ3JhbQotICogcmVnaXN0ZXJzLCBhZnRlciBpbnRlcnBvbGF0b3JzLgotICovCi0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfMCAgICAgICAgICAgICAgICAgICAgIDB4NDMzMAotI2RlZmluZSBSMzAwX1JTX1JPVVRFXzEgICAgICAgICAgICAgICAgICAgICAweDQzMzQKLSNkZWZpbmUgUjMwMF9SU19ST1VURV8yICAgICAgICAgICAgICAgICAgICAgMHg0MzM4Ci0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfMyAgICAgICAgICAgICAgICAgICAgIDB4NDMzQyAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JTX1JPVVRFXzQgICAgICAgICAgICAgICAgICAgICAweDQzNDAgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SU19ST1VURV81ICAgICAgICAgICAgICAgICAgICAgMHg0MzQ0IC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUlNfUk9VVEVfNiAgICAgICAgICAgICAgICAgICAgIDB4NDM0OCAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JTX1JPVVRFXzcgICAgICAgICAgICAgICAgICAgICAweDQzNEMgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF8wICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfMSAgICAgMQotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzIgICAgIDIKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF8zICAgICAzCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfNCAgICAgNAotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzUgICAgIDUgLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF82ICAgICA2IC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfNyAgICAgNyAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9FTkFCTEUgICAgICAgICAgICAgICgxIDw8IDMpIC8qIEdVRVNTICovCi0jICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0RFU1RfU0hJRlQgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9ERVNUX01BU0sgICAgICAgICAgICgzMSA8PCA2KSAvKiBHVUVTUyAqLwotCi0vKiBTcGVjaWFsIGhhbmRsaW5nIGZvciBjb2xvcjogV2hlbiB0aGUgZnJhZ21lbnQgcHJvZ3JhbSB1c2VzIGNvbG9yLAotICogdGhlIFJPVVRFXzBfQ09MT1IgYml0IGlzIHNldCBhbmQgUk9VVEVfMF9DT0xPUl9ERVNUIGNvbnRhaW5zIHRoZQotICogY29sb3IgcmVnaXN0ZXIgaW5kZXguCi0gKgotICogQXBwZXJlbnRseSB5b3UgbWF5IHNldCB0aGUgUjMwMF9SU19ST1VURV8wX0NPTE9SIGJpdCwgYnV0IG5vdCBwcm92aWRlIGFueQotICogUjMwMF9SU19ST1VURV8wX0NPTE9SX0RFU1QgdmFsdWU7IHRoaXMgc2V0dXAgaXMgdXNlZCBmb3IgY2xlYXJpbmcgdGhlIHN0YXRlLgotICogU2VlIHIzMDBfaW9jdGwuYzpyMzAwRW1pdENsZWFyU3RhdGUuIEknbSBub3Qgc3VyZSBpZiB0aGlzIHNldHVwIGlzIHN0cmljdGx5Ci0gKiBjb3JyZWN0IG9yIG5vdC4gLSBPbGl2ZXIuCi0gKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfMF9DT0xPUiAgICAgICAgICAgICAoMSA8PCAxNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfMF9DT0xPUl9ERVNUX1NISUZUICAxNwotIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SX0RFU1RfTUFTSyAgICgzMSA8PCAxNykgLyogR1VFU1MgKi8KLS8qIEFzIGFib3ZlLCBidXQgZm9yIHNlY29uZGFyeSBjb2xvciAqLwotIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjEgICAgICAgICAgICAoMSA8PCAxNCkKLSMJCWRlZmluZSBSMzAwX1JTX1JPVVRFXzFfQ09MT1IxX0RFU1RfU0hJRlQgMTcKLSMJCWRlZmluZSBSMzAwX1JTX1JPVVRFXzFfQ09MT1IxX0RFU1RfTUFTSyAgKDMxIDw8IDE3KQotIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9VTktOT1dOMTEgICAgICAgICAoMSA8PCAxMSkKLS8qIEVORDogUmFzdGVyaXphdGlvbiAvIEludGVycG9sYXRvcnMgLSBtYW55IGd1ZXNzZXMgKi8KLQotLyogQkVHSU46IFNjaXNzb3JzIGFuZCBjbGlwcmVjdHMgKi8KLQotLyogVGhlcmUgYXJlIGZvdXIgY2xpcHBpbmcgcmVjdGFuZ2xlcy4gVGhlaXIgY29ybmVyIGNvb3JkaW5hdGVzIGFyZSBpbmNsdXNpdmUuCi0gKiBFdmVyeSBwaXhlbCBpcyBhc3NpZ25lZCBhIG51bWJlciBmcm9tIDAgYW5kIDE1IGJ5IHNldHRpbmcgYml0cyAwLTMgZGVwZW5kaW5nCi0gKiBvbiB3aGV0aGVyIHRoZSBwaXhlbCBpcyBpbnNpZGUgY2xpcHJlY3RzIDAtMywgcmVzcGVjdGl2ZWx5LiBGb3IgZXhhbXBsZSwKLSAqIGlmIGEgcGl4ZWwgaXMgaW5zaWRlIGNsaXByZWN0cyAwIGFuZCAxLCBidXQgb3V0c2lkZSAyIGFuZCAzLCBpdCBpcyBhc3NpZ25lZAotICogdGhlIG51bWJlciAzIChiaW5hcnkgMDAxMSkuCi0gKiBJZmYgdGhlIGJpdCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwaXhlbCdzIG51bWJlciBpbiBSRV9DTElQUkVDVF9DTlRMIGlzIHNldCwKLSAqIHRoZSBwaXhlbCBpcyByYXN0ZXJpemVkLgotICoKLSAqIEluIGFkZGl0aW9uIHRvIHRoaXMsIHRoZXJlIGlzIGEgc2Npc3NvcnMgcmVjdGFuZ2xlLiBPbmx5IHBpeGVscyBpbnNpZGUgdGhlCi0gKiBzY2lzc29ycyByZWN0YW5nbGUgYXJlIGRyYXduLiAoY29vcmRpbmF0ZXMgYXJlIGluY2x1c2l2ZSkKLSAqCi0gKiBGb3Igc29tZSByZWFzb24sIHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGZyYW1lYnVmZmVyIGlzIGF0ICgxNDQwLCAxNDQwKQotICogZm9yIHRoZSBwdXJwb3NlIG9mIGNsaXBwaW5nIGFuZCBzY2lzc29ycy4KLSAqLwotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX1RMXzAgICAgICAgICAgICAgICAweDQzQjAKLSNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9CUl8wICAgICAgICAgICAgICAgMHg0M0I0Ci0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMSAgICAgICAgICAgICAgIDB4NDNCOAotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzEgICAgICAgICAgICAgICAweDQzQkMKLSNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9UTF8yICAgICAgICAgICAgICAgMHg0M0MwCi0jZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQlJfMiAgICAgICAgICAgICAgIDB4NDNDNAotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX1RMXzMgICAgICAgICAgICAgICAweDQzQzgKLSNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9CUl8zICAgICAgICAgICAgICAgMHg0M0NDCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX09GRlNFVCAgICAgICAgICAgICAgMTQ0MAotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9NQVNLICAgICAgICAgICAgICAgIDB4MUZGRgotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9YX1NISUZUICAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfWF9NQVNLICAgICAgICAgICAgICAoMHgxRkZGIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX1lfU0hJRlQgICAgICAgICAgICAgMTMKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfWV9NQVNLICAgICAgICAgICAgICAoMHgxRkZGIDw8IDEzKQotI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0NOVEwgICAgICAgICAgICAgICAweDQzRDAKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF9PVVQgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMSAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8xMCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzIgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMjAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8yMSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzIxMCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCi0jICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMyAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8zMCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMxICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMxMCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDExKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMyICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMyMCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMyMSAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQotIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMyMTAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1JFX1NDSVNTT1JTX1RMICAgICAgICAgICAgICAgICAweDQzRTAKLSNkZWZpbmUgUjMwMF9SRV9TQ0lTU09SU19CUiAgICAgICAgICAgICAgICAgMHg0M0U0Ci0jICAgICAgIGRlZmluZSBSMzAwX1NDSVNTT1JTX09GRlNFVCAgICAgICAgICAgICAgMTQ0MAotIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19YX1NISUZUICAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfWF9NQVNLICAgICAgICAgICAgICAoMHgxRkZGIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1NDSVNTT1JTX1lfU0hJRlQgICAgICAgICAgICAgMTMKLSMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfWV9NQVNLICAgICAgICAgICAgICAoMHgxRkZGIDw8IDEzKQotLyogRU5EOiBTY2lzc29ycyBhbmQgY2xpcHJlY3RzICovCi0KLS8qIEJFR0lOOiBUZXh0dXJlIHNwZWNpZmljYXRpb24gKi8KLQotLyoKLSAqIFRoZSB0ZXh0dXJlIHNwZWNpZmljYXRpb24gZHdvcmRzIGFyZSBncm91cGVkIGJ5IG1lYW5pbmcgYW5kIG5vdCBieSB0ZXh0dXJlCi0gKiB1bml0LiBUaGlzIG1lYW5zIHRoYXQgZS5nLiB0aGUgb2Zmc2V0IGZvciB0ZXh0dXJlIGltYWdlIHVuaXQgTiBpcyBmb3VuZCBpbgotICogcmVnaXN0ZXIgVFhfT0ZGU0VUXzAgKyAoNCpOKQotICovCi0jZGVmaW5lIFIzMDBfVFhfRklMVEVSXzAgICAgICAgICAgICAgICAgICAgIDB4NDQwMAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9SRVBFQVQgICAgICAgICAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlSUk9SRUQgICAgICAgICAgICAgICAgICAxCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0NMQU1QICAgICAgICAgICAgICAgICAgICAgNAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9DTEFNUF9UT19FREdFICAgICAgICAgICAgIDIKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfQ0xBTVBfVE9fQk9SREVSICAgICAgICAgICA2Ci0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfU19TSElGVCAgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XUkFQX1NfTUFTSyAgICAgICAgICAgICAgICg3IDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfVF9TSElGVCAgICAgICAgICAgICAgMwotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XUkFQX1RfTUFTSyAgICAgICAgICAgICAgICg3IDw8IDMpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfUV9TSElGVCAgICAgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XUkFQX1FfTUFTSyAgICAgICAgICAgICAgICg3IDw8IDYpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01BR19GSUxURVJfTkVBUkVTVCAgICAgICAgKDEgPDwgOSkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFHX0ZJTFRFUl9MSU5FQVIgICAgICAgICAoMiA8PCA5KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQUdfRklMVEVSX01BU0sgICAgICAgICAgICgzIDw8IDkpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTkVBUkVTVCAgICAgICAgKDEgPDwgMTEpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTElORUFSICAgICAgICAgKDIgPDwgMTEpCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTkVBUkVTVF9NSVBfTkVBUkVTVCAgICAgICAoNSAgPDwgIDExKQotIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX05FQVJFU1RfTUlQX0xJTkVBUiAgICAgICAgKDkgIDw8ICAxMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVJfTUlQX05FQVJFU1QgICAgICAgICg2ICA8PCAgMTEpCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTElORUFSX01JUF9MSU5FQVIgICAgICAgICAoMTAgPDwgIDExKQotCi0vKiBOT1RFOiBORUFSRVNUIGRvZXNudCBzZWVtIHRvIGV4aXN0LgotICogSW0gbm90IHNldGluZyBNQUdfRklMVEVSX01BU0sgYW5kICgzIDw8IDExKSBvbiBmb3IgYWxsCi0gKiBhbmlzb3Ryb3B5IG1vZGVzIGJlY2F1c2UgdGhhdCB3b3VsZCB2b2lkIHNlbGVjdGVkIG1hZyBmaWx0ZXIKLSAqLwotIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0FOSVNPX05FQVJFU1QgICAgICAgICAgICAgKDAgPDwgMTMpCi0jCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTElORUFSICAgICAgICAgICAgICAoMCA8PCAxMykKLSMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9BTklTT19ORUFSRVNUX01JUF9ORUFSRVNUICgxIDw8IDEzKQotIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0FOSVNPX05FQVJFU1RfTUlQX0xJTkVBUiAgKDIgPDwgMTMpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTUFTSyAgICggKDE1IDw8IDExKSB8ICgzIDw8IDEzKSApCi0jCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18xX1RPXzEgICgwIDw8IDIxKQotIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fMl9UT18xICAoMiA8PCAyMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzRfVE9fMSAgKDQgPDwgMjEpCi0jCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT184X1RPXzEgICg2IDw8IDIxKQotIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fMTZfVE9fMSAoOCA8PCAyMSkKLSMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPX01BU0sgICAgKDE0IDw8IDIxKQotCi0jZGVmaW5lIFIzMDBfVFhfRklMVEVSMV8wICAgICAgICAgICAgICAgICAgICAgIDB4NDQ0MAotIwlkZWZpbmUgUjMwMF9DSFJPTUFfS0VZX01PREVfRElTQUJMRSAgICAwCi0jCWRlZmluZSBSMzAwX0NIUk9NQV9LRVlfRk9SQ0UJICAgICAgIDEKLSMJZGVmaW5lIFIzMDBfQ0hST01BX0tFWV9CTEVORCAgICAgICAgICAgMgotIwlkZWZpbmUgUjMwMF9NQ19ST1VORF9OT1JNQUwgICAgICAgICAgICAoMDw8MikKLSMJZGVmaW5lIFIzMDBfTUNfUk9VTkRfTVBFRzQgICAgICAgICAgICAgKDE8PDIpCi0jCWRlZmluZSBSMzAwX0xPRF9CSUFTX01BU0sJICAgIDB4MWZmZgotIwlkZWZpbmUgUjMwMF9FREdFX0FOSVNPX0VER0VfRElBRyAgICAgICAoMDw8MTMpCi0jCWRlZmluZSBSMzAwX0VER0VfQU5JU09fRURHRV9PTkxZICAgICAgICgxPDwxMykKLSMJZGVmaW5lIFIzMDBfTUNfQ09PUkRfVFJVTkNBVEVfRElTQUJMRSAgKDA8PDE0KQotIwlkZWZpbmUgUjMwMF9NQ19DT09SRF9UUlVOQ0FURV9NUEVHICAgICAoMTw8MTQpCi0jCWRlZmluZSBSMzAwX1RYX1RSSV9QRVJGXzBfOCAgICAgICAgICAgICgwPDwxNSkKLSMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfMV84ICAgICAgICAgICAgKDE8PDE1KQotIwlkZWZpbmUgUjMwMF9UWF9UUklfUEVSRl8xXzQgICAgICAgICAgICAoMjw8MTUpCi0jCWRlZmluZSBSMzAwX1RYX1RSSV9QRVJGXzNfOCAgICAgICAgICAgICgzPDwxNSkKLSMJZGVmaW5lIFIzMDBfQU5JU09fVEhSRVNIT0xEX01BU0sgICAgICAgKDc8PDE3KQotCi0jZGVmaW5lIFIzMDBfVFhfU0laRV8wICAgICAgICAgICAgICAgICAgICAgIDB4NDQ4MAotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XSURUSE1BU0tfU0hJRlQgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfV0lEVEhNQVNLX01BU0sgICAgICAgICAgICAoMjA0NyA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9IRUlHSFRNQVNLX1NISUZUICAgICAgICAgIDExCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX0hFSUdIVE1BU0tfTUFTSyAgICAgICAgICAgKDIwNDcgPDwgMTEpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX1VOSzIzICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYX01BWF9NSVBfTEVWRUxfU0hJRlQgICAgICAgMjYKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFYX01JUF9MRVZFTF9NQVNLICAgICAgICAoMHhmIDw8IDI2KQotIyAgICAgICBkZWZpbmUgUjMwMF9UWF9TSVpFX1BST0pFQ1RFRCAgICAgICAgICAgICgxPDwzMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhfU0laRV9UWFBJVENIX0VOICAgICAgICAgICAoMTw8MzEpCi0jZGVmaW5lIFIzMDBfVFhfRk9STUFUXzAgICAgICAgICAgICAgICAgICAgIDB4NDRDMAotCS8qIFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgZm9ybWF0IHdvcmQgYnkgV2xhZGltaXIgdmFuIGRlciBMYWFuICovCi0JLyogVGhlIFgsIFksIFogYW5kIFcgcmVmZXIgdG8gdGhlIGxheW91dCBvZiB0aGUgY29tcG9uZW50cy4KLQkgICBUaGV5IGFyZSBnaXZlbiBtZWFuaW5ncyBhcyBSLCBHLCBCIGFuZCBBbHBoYSBieSB0aGUgc3dpenpsZQotCSAgIHNwZWNpZmljYXRpb24gKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1g4CQkgICAgMHgwCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9YMTYJCSAgICAweDEKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1k0WDQJCSAgICAweDIKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1k4WDgJCSAgICAweDMKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1kxNlgxNgkJICAgIDB4NAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWjNZM1gyCQkgICAgMHg1Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aNVk2WDUJCSAgICAweDYKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1o2WTVYNQkJICAgIDB4NwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWjExWTExWDEwCQkgICAgMHg4Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aMTBZMTFYMTEJCSAgICAweDkKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1c0WjRZNFg0CQkgICAgMHhBCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9XMVo1WTVYNQkJICAgIDB4QgotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzhaOFk4WDgJCSAgICAweEMKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cyWjEwWTEwWDEwCSAgICAweEQKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cxNloxNlkxNlgxNgkgICAgMHhFCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9EWFQxCQkgICAgMHhGCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9EWFQzCQkgICAgMHgxMAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRFhUNQkJICAgIDB4MTEKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0QzRE1GVF9DeFY4VTgJICAgIDB4MTIgICAgIC8qIG5vIHN3aXp6bGUgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0E4UjhHOEI4CQkgICAgMHgxMyAgICAgLyogbm8gc3dpenpsZSAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQjhHOF9COEc4CQkgICAgMHgxNCAgICAgLyogbm8gc3dpenpsZSAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRzhSOF9HOEI4CQkgICAgMHgxNSAgICAgLyogbm8gc3dpenpsZSAqLwotCS8qIDB4MTYgLSBzb21lIDE2IGJpdCBncmVlbiBmb3JtYXQuLiA/PyAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVU5LMjUJCSAgICgxIDw8IDI1KSAvKiBubyBzd2l6emxlICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DVUJJQ19NQVAJCSAgICgxIDw8IDI2KQotCi0JLyogZ2FwICovCi0JLyogRmxvYXRpbmcgcG9pbnQgZm9ybWF0cyAqLwotCS8qIE5vdGUgLSBoYXJkd2FyZSBzdXBwb3J0cyBib3RoIDE2IGFuZCAzMiBiaXQgZmxvYXRpbmcgcG9pbnQgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0ZMX0kxNgkJICAgIDB4MTgKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0ZMX0kxNkExNgkJICAgIDB4MTkKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0ZMX1IxNkcxNkIxNkExNgkgICAgMHgxQQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTMyCQkgICAgMHgxQgotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTMyQTMyCQkgICAgMHgxQwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfUjMyRzMyQjMyQTMyCSAgICAweDFECi0JLyogYWxwaGEgbW9kZXMsIGNvbnZlbmllbmNlIG1vc3RseSAqLwotCS8qIGlmIHlvdSBoYXZlIGFscGhhLCBwaWNrIGNvbnN0YW50IGFwcHJvcHJpYXRlIHRvIHRoZQotCSAgIG51bWJlciBvZiBjaGFubmVscyAoMSBmb3IgSTgsIDIgZm9yIEk4QTgsIDQgZm9yIFI4RzhCOEE4LCBldGMgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FMUEhBXzFDSAkJICAgIDB4MDAwCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9BTFBIQV8yQ0gJCSAgICAweDIwMAotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfNENICQkgICAgMHg2MDAKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FMUEhBX05PTkUJICAgIDB4QTAwCi0JLyogU3dpenpsaW5nICovCi0JLyogY29uc3RhbnRzICovCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9YCQkwCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9ZCQkxCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aCQkyCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9XCQkzCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aRVJPCTQKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX09ORQk1Ci0JLyogMi4wKlosIGV2ZXJ5dGhpbmcgYWJvdmUgMS4wIGlzIHNldCB0byAwLjAgKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NVVF9aCTYKLQkvKiAyLjAqVywgZXZlcnl0aGluZyBhYm92ZSAxLjAgaXMgc2V0IHRvIDAuMCAqLwotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ1VUX1cJNwotCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9CX1NISUZUCTE4Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9HX1NISUZUCTE1Ci0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9SX1NISUZUCTEyCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9BX1NISUZUCTkKLQkvKiBDb252ZW5pZW5jZSBtYWNybyB0byB0YWtlIGNhcmUgb2YgbGF5b3V0IGFuZCBzd2l6emxpbmcgKi8KLSMJZGVmaW5lIFIzMDBfRUFTWV9UWF9GT1JNQVQoQiwgRywgUiwgQSwgRk1UKQkoCQlcCi0JCSgoUjMwMF9UWF9GT1JNQVRfIyNCKTw8UjMwMF9UWF9GT1JNQVRfQl9TSElGVCkJCVwKLQkJfCAoKFIzMDBfVFhfRk9STUFUXyMjRyk8PFIzMDBfVFhfRk9STUFUX0dfU0hJRlQpCVwKLQkJfCAoKFIzMDBfVFhfRk9STUFUXyMjUik8PFIzMDBfVFhfRk9STUFUX1JfU0hJRlQpCVwKLQkJfCAoKFIzMDBfVFhfRk9STUFUXyMjQSk8PFIzMDBfVFhfRk9STUFUX0FfU0hJRlQpCVwKLQkJfCAoUjMwMF9UWF9GT1JNQVRfIyNGTVQpCQkJCVwKLQkJKQotCS8qIFRoZXNlIGNhbiBiZSBPUmVkIHdpdGggcmVzdWx0IG9mIFIzMDBfRUFTWV9UWF9GT1JNQVQoKQotCSAgIFdlIGRvbid0IHJlYWxseSBrbm93IHdoYXQgdGhleSBkby4gVGFrZSB2YWx1ZXMgZnJvbSBhCi0gICAgICAgICAgIGNvbnN0YW50IGNvbG9yID8gKi8KLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NPTlNUX1gJCSgxPDw1KQotIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfWQkJKDI8PDUpCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DT05TVF9aCQkoNDw8NSkKLSMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NPTlNUX1cJCSg4PDw1KQotCi0jCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9ZVVZfTU9ERQkJMHgwMDgwMDAwMAotCi0jZGVmaW5lIFIzMDBfVFhfUElUQ0hfMAkJCSAgICAweDQ1MDAgLyogb2J2aW91cyBtaXNzaW5nIGluIGdhcCAqLwotI2RlZmluZSBSMzAwX1RYX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAweDQ1NDAKLQkvKiBCRUdJTjogR3Vlc3MgZnJvbSBSMjAwICovCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19FTkRJQU5fTk9fU1dBUCAgICAgICAgICAgKDAgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9CWVRFX1NXQVAgICAgICAgICAoMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fRU5ESUFOX1dPUkRfU1dBUCAgICAgICAgICgyIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19FTkRJQU5fSEFMRkRXX1NXQVAgICAgICAgKDMgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfVFhPX01BQ1JPX1RJTEUgICAgICAgICAgICAgICAoMSA8PCAyKQotIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fTUlDUk9fVElMRSAgICAgICAgICAgICAgICgxIDw8IDMpCi0jICAgICAgIGRlZmluZSBSMzAwX1RYT19PRkZTRVRfTUFTSyAgICAgICAgICAgICAgMHhmZmZmZmZlMAotIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fT0ZGU0VUX1NISUZUICAgICAgICAgICAgIDUKLQkvKiBFTkQ6IEd1ZXNzIGZyb20gUjIwMCAqLwotCi0vKiAzMiBiaXQgY2hyb21hIGtleSAqLwotI2RlZmluZSBSMzAwX1RYX0NIUk9NQV9LRVlfMCAgICAgICAgICAgICAgICAgICAgICAweDQ1ODAKLS8qIGZmMDBmZjAwID09IHsgMCwgMS4wLCAwLCAxLjAgfSAqLwotI2RlZmluZSBSMzAwX1RYX0JPUkRFUl9DT0xPUl8wICAgICAgICAgICAgICAweDQ1QzAKLQotLyogRU5EOiBUZXh0dXJlIHNwZWNpZmljYXRpb24gKi8KLQotLyogQkVHSU46IEZyYWdtZW50IHByb2dyYW0gaW5zdHJ1Y3Rpb24gc2V0ICovCi0KLS8qIEZyYWdtZW50IHByb2dyYW1zIGFyZSB3cml0dGVuIGRpcmVjdGx5IGludG8gcmVnaXN0ZXIgc3BhY2UuCi0gKiBUaGVyZSBhcmUgc2VwYXJhdGUgaW5zdHJ1Y3Rpb24gc3RyZWFtcyBmb3IgdGV4dHVyZSBpbnN0cnVjdGlvbnMgYW5kIEFMVQotICogaW5zdHJ1Y3Rpb25zLgotICogSW4gb3JkZXIgdG8gc3luY2hyb25pemUgdGhlc2Ugc3RyZWFtcywgdGhlIHByb2dyYW0gaXMgZGl2aWRlZCBpbnRvIHVwCi0gKiB0byA0IG5vZGVzLiBFYWNoIG5vZGUgYmVnaW5zIHdpdGggYSBudW1iZXIgb2YgVEVYIG9wZXJhdGlvbnMsIGZvbGxvd2VkCi0gKiBieSBhIG51bWJlciBvZiBBTFUgb3BlcmF0aW9ucy4KLSAqIFRoZSBmaXJzdCBub2RlIGNhbiBoYXZlIHplcm8gVEVYIG9wcywgYWxsIHN1YnNlcXVlbnQgbm9kZXMgbXVzdCBoYXZlIGF0Ci0gKiBsZWFzdAotICogb25lIFRFWCBvcHMuCi0gKiBBbGwgbm9kZXMgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBBTFUgb3AuCi0gKgotICogVGhlIGluZGV4IG9mIHRoZSBsYXN0IG5vZGUgaXMgc3RvcmVkIGluIFBGU19DTlRMXzA6IEEgdmFsdWUgb2YgMCBtZWFucwotICogMSBub2RlLCBhIHZhbHVlIG9mIDMgbWVhbnMgNCBub2Rlcy4KLSAqIFRoZSB0b3RhbCBhbW91bnQgb2YgaW5zdHJ1Y3Rpb25zIGlzIGRlZmluZWQgaW4gUEZTX0NOVExfMi4gVGhlIG9mZnNldHMgYXJlCi0gKiBvZmZzZXRzIGludG8gdGhlIHJlc3BlY3RpdmUgaW5zdHJ1Y3Rpb24gc3RyZWFtcywgd2hpbGUgKl9FTkQgcG9pbnRzIHRvIHRoZQotICogbGFzdCBpbnN0cnVjdGlvbiByZWxhdGl2ZSB0byB0aGlzIG9mZnNldC4KLSAqLwotI2RlZmluZSBSMzAwX1BGU19DTlRMXzAgICAgICAgICAgICAgICAgICAgICAweDQ2MDAKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfTEFTVF9OT0RFU19TSElGVCAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0xBU1RfTk9ERVNfTUFTSyAgICAgKDMgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfRklSU1RfTk9ERV9IQVNfVEVYICAoMSA8PCAzKQotI2RlZmluZSBSMzAwX1BGU19DTlRMXzEgICAgICAgICAgICAgICAgICAgICAweDQ2MDQKLS8qIFRoZXJlIGlzIGFuIHVuc2hpZnRlZCB2YWx1ZSBoZXJlIHdoaWNoIGhhcyBzbyBmYXIgYWx3YXlzIGJlZW4gZXF1YWwgdG8gdGhlCi0gKiBpbmRleCBvZiB0aGUgaGlnaGVzdCB1c2VkIHRlbXBvcmFyeSByZWdpc3Rlci4KLSAqLwotI2RlZmluZSBSMzAwX1BGU19DTlRMXzIgICAgICAgICAgICAgICAgICAgICAweDQ2MDgKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX09GRlNFVF9TSElGVCAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0FMVV9PRkZTRVRfTUFTSyAgICAgKDYzIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0FMVV9FTkRfU0hJRlQgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9BTFVfRU5EX01BU0sgICAgICAgICg2MyA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9URVhfT0ZGU0VUX1NISUZUICAgIDEyCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9PRkZTRVRfTUFTSyAgICAgKDMxIDw8IDEyKSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9URVhfRU5EX1NISUZUICAgICAgIDE4Ci0jICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9FTkRfTUFTSyAgICAgICAgKDMxIDw8IDE4KSAvKiBHVUVTUyAqLwotCi0vKiBnYXAgKi8KLQotLyogTm9kZXMgYXJlIHN0b3JlZCBiYWNrd2FyZHMuIFRoZSBsYXN0IGFjdGl2ZSBub2RlIGlzIGFsd2F5cyBzdG9yZWQgaW4KLSAqIFBGU19OT0RFXzMuCi0gKiBFeGFtcGxlOiBJbiBhIDItbm9kZSBwcm9ncmFtLCBOT0RFXzAgYW5kIE5PREVfMSBhcmUgc2V0IHRvIDAuIFRoZQotICogZmlyc3Qgbm9kZSBpcyBzdG9yZWQgaW4gTk9ERV8yLCB0aGUgc2Vjb25kIG5vZGUgaXMgc3RvcmVkIGluIE5PREVfMy4KLSAqCi0gKiBPZmZzZXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgbWFzdGVyIG9mZnNldCBmcm9tIFBGU19DTlRMXzIuCi0gKi8KLSNkZWZpbmUgUjMwMF9QRlNfTk9ERV8wICAgICAgICAgICAgICAgICAgICAgMHg0NjEwCi0jZGVmaW5lIFIzMDBfUEZTX05PREVfMSAgICAgICAgICAgICAgICAgICAgIDB4NDYxNAotI2RlZmluZSBSMzAwX1BGU19OT0RFXzIgICAgICAgICAgICAgICAgICAgICAweDQ2MTgKLSNkZWZpbmUgUjMwMF9QRlNfTk9ERV8zICAgICAgICAgICAgICAgICAgICAgMHg0NjFDCi0jICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9PRkZTRVRfU0hJRlQgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9BTFVfT0ZGU0VUX01BU0sgICAgICg2MyA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9BTFVfRU5EX1NISUZUICAgICAgIDYKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfQUxVX0VORF9NQVNLICAgICAgICAoNjMgPDwgNikKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfVEVYX09GRlNFVF9TSElGVCAgICAxMgotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfT0ZGU0VUX01BU0sgICAgICgzMSA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfVEVYX0VORF9TSElGVCAgICAgICAxNwotIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfRU5EX01BU0sgICAgICAgICgzMSA8PCAxNykKLSMJCWRlZmluZSBSMzAwX1BGU19OT0RFX09VVFBVVF9DT0xPUiAgICAgICAgKDEgPDwgMjIpCi0jCQlkZWZpbmUgUjMwMF9QRlNfTk9ERV9PVVRQVVRfREVQVEggICAgICAgICgxIDw8IDIzKQotCi0vKiBURVgKLSAqIEFzIGZhciBhcyBJIGNhbiB0ZWxsLCB0ZXh0dXJlIGluc3RydWN0aW9ucyBjYW5ub3Qgd3JpdGUgaW50byBvdXRwdXQKLSAqIHJlZ2lzdGVycyBkaXJlY3RseS4gQSBzdWJzZXF1ZW50IEFMVSBpbnN0cnVjdGlvbiBpcyBhbHdheXMgbmVjZXNzYXJ5LAotICogZXZlbiBpZiBpdCdzIGp1c3QgTUFEIG8wLCByMCwgMSwgMAotICovCi0jZGVmaW5lIFIzMDBfUEZTX1RFWElfMCAgICAgICAgICAgICAgICAgICAgIDB4NDYyMAotIwlkZWZpbmUgUjMwMF9GUElUWF9TUkNfU0hJRlQgICAgICAgICAgICAgIDAKLSMJZGVmaW5lIFIzMDBfRlBJVFhfU1JDX01BU0sgICAgICAgICAgICAgICAoMzEgPDwgMCkKLQkvKiBHVUVTUyAqLwotIwlkZWZpbmUgUjMwMF9GUElUWF9TUkNfQ09OU1QgICAgICAgICAgICAgICgxIDw8IDUpCi0jCWRlZmluZSBSMzAwX0ZQSVRYX0RTVF9TSElGVCAgICAgICAgICAgICAgNgotIwlkZWZpbmUgUjMwMF9GUElUWF9EU1RfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCA2KQotIwlkZWZpbmUgUjMwMF9GUElUWF9JTUFHRV9TSElGVCAgICAgICAgICAgIDExCi0JLyogR1VFU1MgYmFzZWQgb24gbGF5b3V0IGFuZCBuYXRpdmUgbGltaXRzICovCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSVRYX0lNQUdFX01BU0sgICAgICAgICAgICAgKDE1IDw8IDExKQotLyogVW5zdXJlIGlmIHRoZXNlIGFyZSBvcGNvZGVzLCBvciBzb21lIGtpbmQgb2YgYml0ZmllbGQsIGJ1dCB0aGlzIGlzIGhvdwotICogdGhleSB3ZXJlIHNldCB3aGVuIEkgY2hlY2tlZAotICovCi0jCWRlZmluZSBSMzAwX0ZQSVRYX09QQ09ERV9TSElGVAkJMTUKLSMJCWRlZmluZSBSMzAwX0ZQSVRYX09QX1RFWAkxCi0jCQlkZWZpbmUgUjMwMF9GUElUWF9PUF9LSUwJMgotIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVFhQCTMKLSMJCWRlZmluZSBSMzAwX0ZQSVRYX09QX1RYQgk0Ci0jCWRlZmluZSBSMzAwX0ZQSVRYX09QQ09ERV9NQVNLICAgICAgICAgICAoNyA8PCAxNSkKLQotLyogQUxVCi0gKiBUaGUgQUxVIGluc3RydWN0aW9ucyByZWdpc3RlciBibG9ja3MgYXJlIGVudW1lcmF0ZWQgYWNjb3JkaW5nIHRvIHRoZSBvcmRlcgotICogaW4gd2hpY2ggZmdscnguIEkgYXNzdW1lIHRoZXJlIGlzIHNwYWNlIGZvciA2NCBpbnN0cnVjdGlvbnMsIHNpbmNlCi0gKiBlYWNoIGJsb2NrIGhhcyBzcGFjZSBmb3IgYSBtYXhpbXVtIG9mIDY0IERXT1JEcywgYW5kIHRoaXMgbWF0Y2hlcyByZXBvcnRlZAotICogbmF0aXZlIGxpbWl0cy4KLSAqCi0gKiBUaGUgYmFzaWMgZnVuY3Rpb25hbCBibG9jayBzZWVtcyB0byBiZSBvbmUgTUFEIGZvciBlYWNoIGNvbG9yIGFuZCBhbHBoYSwKLSAqIGFuZCBhbiBhZGRlciB0aGF0IGFkZHMgYWxsIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIE1VTC4KLSAqICAtIEFERCwgTVVMLCBNQUQgZXRjLjogdXNlIE1BRCB3aXRoIGFwcHJvcHJpYXRlIG5ldXRyYWwgb3BlcmFuZHMKLSAqICAtIERQNDogVXNlIE9VVENfRFA0LCBPVVRBX0RQNAotICogIC0gRFAzOiBVc2UgT1VUQ19EUDMsIE9VVEFfRFA0LCBhcHByb3ByaWF0ZSBhbHBoYSBvcGVyYW5kcwotICogIC0gRFBIOiBVc2UgT1VUQ19EUDQsIE9VVEFfRFA0LCBhcHByb3ByaWF0ZSBhbHBoYSBvcGVyYW5kcwotICogIC0gQ01QSDogSWYgQVJHMiA+IDAuNSwgcmV0dXJuIEFSRzAsIGVsc2UgcmV0dXJuIEFSRzEKLSAqICAtIENNUDogSWYgQVJHMiA8IDAsIHJldHVybiBBUkcxLCBlbHNlIHJldHVybiBBUkcwCi0gKiAgLSBGTFI6IHVzZSBGUkMrTUFECi0gKiAgLSBYUEQ6IHVzZSBNQUQrTUFECi0gKiAgLSBTR0UsIFNMVDogdXNlIE1BRCtDTVAKLSAqICAtIFJTUTogdXNlIEFCUyBtb2RpZmllciBmb3IgYXJndW1lbnQKLSAqICAtIFVzZSBPVVRDX1JFUExfQUxQSEEgdG8gd3JpdGUgcmVzdWx0cyBvZiBhbiBhbHBoYS1vbmx5IG9wZXJhdGlvbgotICogICAgKGUuZy4gUkNQKSBpbnRvIGNvbG9yIHJlZ2lzdGVyCi0gKiAgLSBhcHBhcmVudGx5LCB0aGVyZSdzIG5vIHF1aWNrIERTVCBvcGVyYXRpb24KLSAqICAtIGZnbHJ4IHNldCBGUEkyX1VOS05PV05fMzEgb24gYSAiTUFEIGZyYWdtZW50LmNvbG9yLCB0bXAwLCB0bXAxLCB0bXAyIgotICogIC0gZmdscnggc2V0IEZQSTJfVU5LTk9XTl8zMSBvbiBhICJNQVggcjIsIHIxLCBjMCIKLSAqICAtIGZnbHJ4IG9uY2Ugc2V0IEZQSTBfVU5LTk9XTl8zMSBvbiBhICJGUkMgcjEsIHIxIgotICoKLSAqIE9wZXJhbmQgc2VsZWN0aW9uCi0gKiBGaXJzdCBzdGFnZSBzZWxlY3RzIHRocmVlIHNvdXJjZXMgZnJvbSB0aGUgYXZhaWxhYmxlIHJlZ2lzdGVycyBhbmQKLSAqIGNvbnN0YW50IHBhcmFtZXRlcnMuIFRoaXMgaXMgZGVmaW5lZCBpbiBJTlNUUjEgKGNvbG9yKSBhbmQgSU5TVFIzIChhbHBoYSkuCi0gKiBmZ2xyeCBzb3J0cyB0aGUgdGhyZWUgc291cmNlIGZpZWxkczogUmVnaXN0ZXJzIGJlZm9yZSBjb25zdGFudHMsCi0gKiBsb3dlciBpbmRpY2VzIGJlZm9yZSBoaWdoZXIgaW5kaWNlczsgSSBkbyBub3Qga25vdyB3aGV0aGVyIHRoaXMgaXMKLSAqIG5lY2Vzc2FyeS4KLSAqCi0gKiBmZ2xyeCBmaWxscyB1bnVzZWQgc291cmNlcyB3aXRoICJyZWFkIGNvbnN0YW50IDAiCi0gKiBBY2NvcmRpbmcgdG8gc3BlY3MsIHlvdSBjYW5ub3Qgc2VsZWN0IG1vcmUgdGhhbiB0d28gZGlmZmVyZW50IGNvbnN0YW50cy4KLSAqCi0gKiBTZWNvbmQgc3RhZ2Ugc2VsZWN0cyB0aGUgb3BlcmFuZHMgZnJvbSB0aGUgc291cmNlcy4gVGhpcyBpcyBkZWZpbmVkIGluCi0gKiBJTlNUUjAgKGNvbG9yKSBhbmQgSU5TVFIyIChhbHBoYSkuIFlvdSBjYW4gYWxzbyBzZWxlY3QgdGhlIHNwZWNpYWwgY29uc3RhbnRzCi0gKiB6ZXJvIGFuZCBvbmUuCi0gKiBTd2l6emxpbmcgYW5kIG5lZ2F0aW9uIGhhcHBlbnMgaW4gdGhpcyBzdGFnZSwgYXMgd2VsbC4KLSAqCi0gKiBJbXBvcnRhbnQ6IENvbG9yIGFuZCBhbHBoYSBzZWVtIHRvIGJlIG1vc3RseSBzZXBhcmF0ZSwgaS5lLiB0aGVpciBzb3VyY2VzCi0gKiBzZWxlY3Rpb24gYXBwZWFycyB0byBiZSBmdWxseSBpbmRlcGVuZGVudCAodGhlIHJlZ2lzdGVyIHN0b3JhZ2UgaXMgcHJvYmFibHkKLSAqIHBoeXNpY2FsbHkgc3BsaXQgaW50byBhIGNvbG9yIGFuZCBhbiBhbHBoYSBzZWN0aW9uKS4KLSAqIEhvd2V2ZXIgKGJlY2F1c2Ugb2YgdGhlIGFwcGFyZW50IHBoeXNpY2FsIHNwbGl0KSwgdGhlcmUgaXMgc29tZSBpbnRlcmFjdGlvbgotICogV1JUIHN3aXp6bGluZy4gSWYsIGZvciBleGFtcGxlLCB5b3Ugd2FudCB0byBsb2FkIGFuIFIgY29tcG9uZW50IGludG8gYW4KLSAqIEFscGhhIG9wZXJhbmQsIHRoaXMgUiBjb21wb25lbnQgaXMgdGFrZW4gZnJvbSBhICpjb2xvciogc291cmNlLCBub3QgZnJvbQotICogYW4gYWxwaGEgc291cmNlLiBUaGUgY29ycmVzcG9uZGluZyByZWdpc3RlciBkb2Vzbid0IGV2ZW4gaGF2ZSB0byBhcHBlYXIgaW4KLSAqIHRoZSBhbHBoYSBzb3VyY2VzIGxpc3QuIChJIGhvcGUgdGhpcyBhbGwgbWFrZXMgc2Vuc2UgdG8geW91KQotICoKLSAqIERlc3RpbmF0aW9uIHNlbGVjdGlvbgotICogVGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIGluZGV4IGlzIGluIEZQSTEgKGNvbG9yKSBhbmQgRlBJMyAoYWxwaGEpCi0gKiB0b2dldGhlciB3aXRoIGVuYWJsZSBiaXRzLgotICogVGhlcmUgYXJlIHNlcGFyYXRlIGVuYWJsZSBiaXRzIGZvciB3cml0aW5nIGludG8gdGVtcG9yYXJ5IHJlZ2lzdGVycwotICogKERTVENfUkVHXyogL0RTVEFfUkVHKSBhbmQgYW5kIHByb2dyYW0gb3V0cHV0IHJlZ2lzdGVycyAoRFNUQ19PVVRQVVRfKgotICogL0RTVEFfT1VUUFVUKS4gWW91IGNhbiB3cml0ZSB0byBib3RoIGF0IG9uY2UsIG9yIG5vdCB3cml0ZSBhdCBhbGwgKHRoZQotICogc2FtZSBpbmRleCBtdXN0IGJlIHVzZWQgZm9yIGJvdGgpLgotICoKLSAqIE5vdGU6IFRoZXJlIGlzIGEgc3BlY2lhbCBmb3JtIGZvciBMUlAKLSAqICAtIEFyZ3VtZW50IG9yZGVyIGlzIHRoZSBzYW1lIGFzIGluIEFSQl9mcmFnbWVudF9wcm9ncmFtLgotICogIC0gT3BlcmF0aW9uIGlzIE1BRAotICogIC0gQVJHMSBpcyBzZXQgdG8gQVJHQ19TUkMxQ19MUlAvQVJHQ19TUkMxQV9MUlAKLSAqICAtIFNldCBGUEkwL0ZQSTJfU1BFQ0lBTF9MUlAKLSAqIEFyYml0cmFyeSBMUlAgKGluY2x1ZGluZyBzdXBwb3J0IGZvciBzd2l6emxpbmcpIHJlcXVpcmVzIHZhbmlsbGEgTUFEK01BRAotICovCi0jZGVmaW5lIFIzMDBfUEZTX0lOU1RSMV8wICAgICAgICAgICAgICAgICAgIDB4NDZDMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX1NISUZUICAgICAgICAgICAgIDAKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMwQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMwQ19DT05TVCAgICAgICAgICAgICAoMSA8PCA1KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX1NISUZUICAgICAgICAgICAgIDYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMxQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgNikKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMxQ19DT05TVCAgICAgICAgICAgICAoMSA8PCAxMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMyQ19TSElGVCAgICAgICAgICAgICAxMgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX01BU0sgICAgICAgICAgICAgICgzMSA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkMyQ19DT05TVCAgICAgICAgICAgICAoMSA8PCAxNykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9TUkNfTUFTSyAgICAgICAgICAgICAgICAweDAwMDNmZmZmCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19TSElGVCAgICAgICAgICAgICAgMTgKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX01BU0sgICAgICAgICAgICAgICAoMzEgPDwgMTgpCi0jCQlkZWZpbmUgUjMwMF9GUEkxX0RTVENfUkVHX01BU0tfU0hJRlQgICAgIDIzCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfWCAgICAgICAgICAgICAgKDEgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfWSAgICAgICAgICAgICAgKDEgPDwgMjQpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfWiAgICAgICAgICAgICAgKDEgPDwgMjUpCi0jCQlkZWZpbmUgUjMwMF9GUEkxX0RTVENfT1VUUFVUX01BU0tfU0hJRlQgIDI2Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfWCAgICAgICAgICAgKDEgPDwgMjYpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfWSAgICAgICAgICAgKDEgPDwgMjcpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfWiAgICAgICAgICAgKDEgPDwgMjgpCi0KLSNkZWZpbmUgUjMwMF9QRlNfSU5TVFIzXzAgICAgICAgICAgICAgICAgICAgMHg0N0MwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfU0hJRlQgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzBBX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzBBX0NPTlNUICAgICAgICAgICAgICgxIDw8IDUpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfU0hJRlQgICAgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzFBX01BU0sgICAgICAgICAgICAgICgzMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzFBX0NPTlNUICAgICAgICAgICAgICgxIDw8IDExKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzJBX1NISUZUICAgICAgICAgICAgIDEyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQzJBX0NPTlNUICAgICAgICAgICAgICgxIDw8IDE3KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX1NSQ19NQVNLICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19EU1RBX1NISUZUICAgICAgICAgICAgICAxOAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAxOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19EU1RBX1JFRyAgICAgICAgICAgICAgICAoMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19EU1RBX09VVFBVVCAgICAgICAgICAgICAoMSA8PCAyNCkKLSMJCWRlZmluZSBSMzAwX0ZQSTNfRFNUQV9ERVBUSCAgICAgICAgICAgICAgKDEgPDwgMjcpCi0KLSNkZWZpbmUgUjMwMF9QRlNfSU5TVFIwXzAgICAgICAgICAgICAgICAgICAgMHg0OEMwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19YWVogICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMENfWFhYICAgICAgICAgIDEKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1lZWSAgICAgICAgICAyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19aWlogICAgICAgICAgMwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWFlaICAgICAgICAgIDQKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1hYWCAgICAgICAgICA1Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19ZWVkgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWlpaICAgICAgICAgIDcKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1hZWiAgICAgICAgICA4Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19YWFggICAgICAgICAgOQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWVlZICAgICAgICAgIDEwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19aWlogICAgICAgICAgMTEKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBBICAgICAgICAgICAgICAxMgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUEgICAgICAgICAgICAgIDEzCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQSAgICAgICAgICAgICAgMTQKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX0xSUCAgICAgICAgICAxNQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfWkVSTyAgICAgICAgICAgICAgIDIwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19PTkUgICAgICAgICAgICAgICAgMjEKLQkvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfSEFMRiAgICAgICAgICAgICAgIDIyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19ZWlggICAgICAgICAgMjMKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1laWCAgICAgICAgICAyNAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWVpYICAgICAgICAgIDI1Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19aWFkgICAgICAgICAgMjYKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1pYWSAgICAgICAgICAyNwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWlhZICAgICAgICAgIDI4Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ0FfV1pZICAgICAgICAgMjkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDQV9XWlkgICAgICAgICAzMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNBX1daWSAgICAgICAgIDMxCi0KLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19TSElGVCAgICAgICAgICAgICAwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMENfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMENfTkVHICAgICAgICAgICAgICAgKDEgPDwgNSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19BQlMgICAgICAgICAgICAgICAoMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX1NISUZUICAgICAgICAgICAgIDcKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcxQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgNykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcxQ19ORUcgICAgICAgICAgICAgICAoMSA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcxQ19BQlMgICAgICAgICAgICAgICAoMSA8PCAxMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcyQ19TSElGVCAgICAgICAgICAgICAxNAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX01BU0sgICAgICAgICAgICAgICgzMSA8PCAxNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcyQ19ORUcgICAgICAgICAgICAgICAoMSA8PCAxOSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcyQ19BQlMgICAgICAgICAgICAgICAoMSA8PCAyMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9TUEVDSUFMX0xSUCAgICAgICAgICAgICAoMSA8PCAyMSkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX01BRCAgICAgICAgICAgICAgICAoMCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX0RQMyAgICAgICAgICAgICAgICAoMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX0RQNCAgICAgICAgICAgICAgICAoMiA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX01JTiAgICAgICAgICAgICAgICAoNCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX01BWCAgICAgICAgICAgICAgICAoNSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX0NNUEggICAgICAgICAgICAgICAoNyA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX0NNUCAgICAgICAgICAgICAgICAoOCA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX0ZSQyAgICAgICAgICAgICAgICAoOSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX1JFUExfQUxQSEEgICAgICAgICAoMTAgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfT1VUQ19TQVQgICAgICAgICAgICAgICAgKDEgPDwgMzApCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfSU5TRVJUX05PUCAgICAgICAgICAgICAgKDEgPDwgMzEpCi0KLSNkZWZpbmUgUjMwMF9QRlNfSU5TVFIyXzAgICAgICAgICAgICAgICAgICAgMHg0OUMwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMwQ19YICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMENfWSAgICAgICAgICAgIDEKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBDX1ogICAgICAgICAgICAyCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQ19YICAgICAgICAgICAgMwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUNfWSAgICAgICAgICAgIDQKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzFDX1ogICAgICAgICAgICA1Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMyQ19YICAgICAgICAgICAgNgotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMkNfWSAgICAgICAgICAgIDcKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJDX1ogICAgICAgICAgICA4Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMwQSAgICAgICAgICAgICAgOQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUEgICAgICAgICAgICAgIDEwCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMyQSAgICAgICAgICAgICAgMTEKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzFBX0xSUCAgICAgICAgICAxNQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfWkVSTyAgICAgICAgICAgICAgIDE2Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9PTkUgICAgICAgICAgICAgICAgMTcKLQkvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfSEFMRiAgICAgICAgICAgICAgIDE4Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfU0hJRlQgICAgICAgICAgICAgMAotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzBBX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzBBX05FRyAgICAgICAgICAgICAgICgxIDw8IDUpCi0JLyogR1VFU1MgKi8KLSMJZGVmaW5lIFIzMDBfRlBJMl9BUkcwQV9BQlMJCSAoMSA8PCA2KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX1NISUZUICAgICAgICAgICAgIDcKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcxQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgNykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcxQV9ORUcgICAgICAgICAgICAgICAoMSA8PCAxMikKLQkvKiBHVUVTUyAqLwotIwlkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX0FCUwkJICgxIDw8IDEzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzJBX1NISUZUICAgICAgICAgICAgIDE0Ci0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDE0KQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzJBX05FRyAgICAgICAgICAgICAgICgxIDw8IDE5KQotCS8qIEdVRVNTICovCi0jCWRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfQUJTCQkgKDEgPDwgMjApCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfU1BFQ0lBTF9MUlAgICAgICAgICAgICAgKDEgPDwgMjEpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9NQUQgICAgICAgICAgICAgICAgKDAgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9EUDQgICAgICAgICAgICAgICAgKDEgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9NSU4gICAgICAgICAgICAgICAgKDIgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9NQVggICAgICAgICAgICAgICAgKDMgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9DTVAgICAgICAgICAgICAgICAgKDYgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9GUkMgICAgICAgICAgICAgICAgKDcgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9FWDIgICAgICAgICAgICAgICAgKDggPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9MRzIgICAgICAgICAgICAgICAgKDkgPDwgMjMpCi0jICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9SQ1AgICAgICAgICAgICAgICAgKDEwIDw8IDIzKQotIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX09VVEFfUlNRICAgICAgICAgICAgICAgICgxMSA8PCAyMykKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX1NBVCAgICAgICAgICAgICAgICAoMSA8PCAzMCkKLSMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9VTktOT1dOXzMxICAgICAgICAgICAgICAoMSA8PCAzMSkKLS8qIEVORDogRnJhZ21lbnQgcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KLQotLyogRm9nIHN0YXRlIGFuZCBjb2xvciAqLwotI2RlZmluZSBSMzAwX1JFX0ZPR19TVEFURSAgICAgICAgICAgICAgICAgICAweDRCQzAKLSMgICAgICAgZGVmaW5lIFIzMDBfRk9HX0VOQUJMRSAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotIwlkZWZpbmUgUjMwMF9GT0dfTU9ERV9MSU5FQVIgICAgICAgICAgICAgICgwIDw8IDEpCi0jCWRlZmluZSBSMzAwX0ZPR19NT0RFX0VYUCAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSMJZGVmaW5lIFIzMDBfRk9HX01PREVfRVhQMiAgICAgICAgICAgICAgICAoMiA8PCAxKQotIwlkZWZpbmUgUjMwMF9GT0dfTU9ERV9NQVNLICAgICAgICAgICAgICAgICgzIDw8IDEpCi0jZGVmaW5lIFIzMDBfRk9HX0NPTE9SX1IgICAgICAgICAgICAgICAgICAgIDB4NEJDOAotI2RlZmluZSBSMzAwX0ZPR19DT0xPUl9HICAgICAgICAgICAgICAgICAgICAweDRCQ0MKLSNkZWZpbmUgUjMwMF9GT0dfQ09MT1JfQiAgICAgICAgICAgICAgICAgICAgMHg0QkQwCi0KLSNkZWZpbmUgUjMwMF9QUF9BTFBIQV9URVNUICAgICAgICAgICAgICAgICAgMHg0QkQ0Ci0jICAgICAgIGRlZmluZSBSMzAwX1JFRl9BTFBIQV9NQVNLICAgICAgICAgICAgICAgMHgwMDAwMDBmZgotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0ZBSUwgICAgICAgICAgICAgICgwIDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfTEVTUyAgICAgICAgICAgICAgKDEgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9MRVFVQUwgICAgICAgICAgICAoMyA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0VRVUFMICAgICAgICAgICAgICgyIDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfR0VRVUFMICAgICAgICAgICAgKDYgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9HUkVBVEVSICAgICAgICAgICAoNCA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX05FUVVBTCAgICAgICAgICAgICg1IDw8IDgpCi0jICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfUEFTUyAgICAgICAgICAgICAgKDcgPDwgOCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9PUF9NQVNLICAgICAgICAgICAoNyA8PCA4KQotIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0VOQUJMRSAgICAgICAgICAgICgxIDw8IDExKQotCi0vKiBnYXAgKi8KLQotLyogRnJhZ21lbnQgcHJvZ3JhbSBwYXJhbWV0ZXJzIGluIDcuMTYgZmxvYXRpbmcgcG9pbnQgKi8KLSNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMF9YICAgICAgICAgICAgICAgICAgMHg0QzAwCi0jZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzBfWSAgICAgICAgICAgICAgICAgIDB4NEMwNAotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1ogICAgICAgICAgICAgICAgICAweDRDMDgKLSNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMF9XICAgICAgICAgICAgICAgICAgMHg0QzBDCi0vKiBHVUVTUzogUEFSQU1fMzEgaXMgbGFzdCwgYmFzZWQgb24gbmF0aXZlIGxpbWl0cyByZXBvcnRlZCBieSBmZ2xyeCAqLwotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8zMV9YICAgICAgICAgICAgICAgICAweDRERjAKLSNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMzFfWSAgICAgICAgICAgICAgICAgMHg0REY0Ci0jZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1ogICAgICAgICAgICAgICAgIDB4NERGOAotI2RlZmluZSBSMzAwX1BGU19QQVJBTV8zMV9XICAgICAgICAgICAgICAgICAweDRERkMKLQotLyogTm90ZXM6Ci0gKiAtIEFGQUlLIGZnbHJ4IGFsd2F5cyBzZXRzIEJMRU5EX1VOS05PV04gd2hlbiBibGVuZGluZyBpcyB1c2VkIGluCi0gKiAgIHRoZSBhcHBsaWNhdGlvbgotICogLSBBRkFJSyBmZ2xyeCBhbHdheXMgc2V0cyBCTEVORF9OT19TRVBBUkFURSB3aGVuIENCTEVORCBhbmQgQUJMRU5ECi0gKiAgICBhcmUgc2V0IHRvIHRoZSBzYW1lCi0gKiAgIGZ1bmN0aW9uIChib3RoIHJlZ2lzdGVycyBhcmUgYWx3YXlzIHNldCB1cCBjb21wbGV0ZWx5IGluIGFueSBjYXNlKQotICogLSBNb3N0IGJsZW5kIGZsYWdzIGFyZSBzaW1wbHkgY29waWVkIGZyb20gUjIwMCBhbmQgbm90IHRlc3RlZCB5ZXQKLSAqLwotI2RlZmluZSBSMzAwX1JCM0RfQ0JMRU5EICAgICAgICAgICAgICAgICAgICAweDRFMDQKLSNkZWZpbmUgUjMwMF9SQjNEX0FCTEVORCAgICAgICAgICAgICAgICAgICAgMHg0RTA4Ci0vKiB0aGUgZm9sbG93aW5nIG9ubHkgYXBwZWFyIGluIENCTEVORCAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9VTktOT1dOICAgICAgICAgICAgICAgICAgICAoMyA8PCAxKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9OT19TRVBBUkFURSAgICAgICAgICAgICAgICAoMSA8PCAzKQotLyogdGhlIGZvbGxvd2luZyBhcmUgc2hhcmVkIGJldHdlZW4gQ0JMRU5EIGFuZCBBQkxFTkQgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfRkNOX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgKDMgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9BRERfQ0xBTVAgICAgICAgICAgICAgICAoMCAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX0FERF9OT0NMQU1QICAgICAgICAgICAgICgxICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fU1VCX0NMQU1QICAgICAgICAgICAgICAgKDIgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9TVUJfTk9DTEFNUCAgICAgICAgICAgICAoMyAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX01JTiAgICAgICAgICAgICAgICAgICAgICg0ICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fTUFYICAgICAgICAgICAgICAgICAgICAgKDUgIDw8IDEyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9SU1VCX0NMQU1QICAgICAgICAgICAgICAoNiAgPDwgMTIpCi0jICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1JTVUJfTk9DTEFNUCAgICAgICAgICAgICg3ICA8PCAxMikKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfWkVSTyAgICAgICAgICAgICAgICAgICAgKDMyKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkUgICAgICAgICAgICAgICAgICAgICAoMzMpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX1NSQ19DT0xPUiAgICAgICAgICAgICAgICgzNCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX1NSQ19DT0xPUiAgICAgKDM1KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9EU1RfQ09MT1IgICAgICAgICAgICAgICAoMzYpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORV9NSU5VU19EU1RfQ09MT1IgICAgICgzNykKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfU1JDX0FMUEhBICAgICAgICAgICAgICAgKDM4KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfU1JDX0FMUEhBICAgICAoMzkpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0RTVF9BTFBIQSAgICAgICAgICAgICAgICg0MCkKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0RTVF9BTFBIQSAgICAgKDQxKQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9TUkNfQUxQSEFfU0FUVVJBVEUgICAgICAoNDIpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0NPTlNUX0NPTE9SICAgICAgICAgICAgICg0MykKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0NPTlNUX0NPTE9SICAgKDQ0KQotIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9DT05TVF9BTFBIQSAgICAgICAgICAgICAoNDUpCi0jICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORV9NSU5VU19DT05TVF9BTFBIQSAgICg0NikKLSMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgKDYzKQotIyAgICAgICBkZWZpbmUgUjMwMF9TUkNfQkxFTkRfU0hJRlQgICAgICAgICAgICAgICAgICAoMTYpCi0jICAgICAgIGRlZmluZSBSMzAwX0RTVF9CTEVORF9TSElGVCAgICAgICAgICAgICAgICAgICgyNCkKLSNkZWZpbmUgUjMwMF9SQjNEX0JMRU5EX0NPTE9SICAgICAgICAgICAgICAgMHg0RTEwCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk1BU0sgICAgICAgICAgICAgICAgIDB4NEUwQwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk1BU0swX0IgICAgICAgICAgICAgICAgICgxPDwwKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk1BU0swX0cgICAgICAgICAgICAgICAgICgxPDwxKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk1BU0swX1IgICAgICAgICAgICAgICAgICgxPDwyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk1BU0swX0EgICAgICAgICAgICAgICAgICgxPDwzKQotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JPRkZTRVQwICAgICAgICAgICAgICAweDRFMjgKLSMgICAgICAgZGVmaW5lIFIzMDBfQ09MT1JPRkZTRVRfTUFTSyAgICAgICAgICAgICAweEZGRkZGRkYwIC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDEgICAgICAgICAgICAgIDB4NEUyQyAvKiBHVUVTUyAqLwotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JPRkZTRVQyICAgICAgICAgICAgICAweDRFMzAgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9ST0ZGU0VUMyAgICAgICAgICAgICAgMHg0RTM0IC8qIEdVRVNTICovCi0KLS8qIGdhcCAqLwotCi0vKiBCaXQgMTY6IExhcmdlciB0aWxlcwotICogQml0IDE3OiA0eDIgdGlsZXMKLSAqIEJpdCAxODogRXh0cmVtZWx5IHdlaXJkIHRpbGUgbGlrZSwgYnV0IHNvbWUgcGl4ZWxzIGR1cGxpY2F0ZWQ/Ci0gKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9SUElUQ0gwICAgICAgICAgICAgICAgMHg0RTM4Ci0jICAgICAgIGRlZmluZSBSMzAwX0NPTE9SUElUQ0hfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMUZGOCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9USUxFX0VOQUJMRSAgICAgICAgICAgICgxIDw8IDE2KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9NSUNST1RJTEVfRU5BQkxFICAgICAgICgxIDw8IDE3KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9FTkRJQU5fTk9fU1dBUCAgICAgICAgICgwIDw8IDE4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9FTkRJQU5fV09SRF9TV0FQICAgICAgICgxIDw8IDE4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9FTkRJQU5fRFdPUkRfU1dBUCAgICAgICgyIDw8IDE4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9GT1JNQVRfUkdCNTY1ICAgICAgICAgICgyIDw8IDIyKQotIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUl9GT1JNQVRfQVJHQjg4ODggICAgICAgICgzIDw8IDIyKQotI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDEgICAgICAgICAgICAgICAweDRFM0MgLyogR1VFU1MgKi8KLSNkZWZpbmUgUjMwMF9SQjNEX0NPTE9SUElUQ0gyICAgICAgICAgICAgICAgMHg0RTQwIC8qIEdVRVNTICovCi0jZGVmaW5lIFIzMDBfUkIzRF9DT0xPUlBJVENIMyAgICAgICAgICAgICAgIDB4NEU0NCAvKiBHVUVTUyAqLwotCi0vKiBnYXAgKi8KLQotLyogR3Vlc3MgYnkgVmxhZGltaXIuCi0gKiBTZXQgdG8gMEEgYmVmb3JlIDNEIG9wZXJhdGlvbnMsIHNldCB0byAwMiBhZnRlcndhcmRzLgotICovCi0jZGVmaW5lIFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFUICAgICAgICAgIDB4NEU0QwotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMDIgICAgICAgICAgICAgMHgwMDAwMDAwMgotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMEEgICAgICAgICAgICAgMHgwMDAwMDAwQQotCi0vKiBnYXAgKi8KLS8qIFRoZXJlIHNlZW1zIHRvIGJlIG5vICJ3cml0ZSBvbmx5IiBzZXR0aW5nLCBzbyB1c2UgWi10ZXN0ID0gQUxXQVlTCi0gKiBmb3IgdGhpcy4KLSAqIEJpdCAoMTw8OCkgaXMgdGhlICJ0ZXN0IiBiaXQuIHNvIHBsYWluIHdyaXRlIGlzIDYgIC0gdmQKLSAqLwotI2RlZmluZSBSMzAwX1JCM0RfWlNURU5DSUxfQ05UTF8wICAgICAgICAgICAgICAgICAgIDB4NEYwMAotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfRElTQUJMRURfMSAgICAgICAgICAgIDB4MDAwMDAwMTAKLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aX0RJU0FCTEVEXzIgICAgICAgICAgICAweDAwMDAwMDE0Ci0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWl9URVNUICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMgotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfVEVTVF9BTkRfV1JJVEUgICAgICAgIDB4MDAwMDAwMTYKLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aX1dSSVRFX09OTFkJCSAweDAwMDAwMDA2Ci0KLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aX1RFU1QgICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWl9URVNUX0FORF9XUklURSAgICAgICAgMHgwMDAwMDAxNgotIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX1pfV1JJVEVfT05MWQkJIDB4MDAwMDAwMDYKLSMJZGVmaW5lIFIzMDBfUkIzRF9TVEVOQ0lMX0VOQUJMRQkJIDB4MDAwMDAwMDEKLQotI2RlZmluZSBSMzAwX1JCM0RfWlNURU5DSUxfQ05UTF8xICAgICAgICAgICAgICAgICAgIDB4NEYwNAotCS8qIGZ1bmN0aW9ucyAqLwotIwlkZWZpbmUgUjMwMF9aU19ORVZFUgkJCTAKLSMJZGVmaW5lIFIzMDBfWlNfTEVTUwkJCTEKLSMJZGVmaW5lIFIzMDBfWlNfTEVRVUFMCQkJMgotIwlkZWZpbmUgUjMwMF9aU19FUVVBTAkJCTMKLSMJZGVmaW5lIFIzMDBfWlNfR0VRVUFMCQkJNAotIwlkZWZpbmUgUjMwMF9aU19HUkVBVEVSCQkJNQotIwlkZWZpbmUgUjMwMF9aU19OT1RFUVVBTAkJCTYKLSMJZGVmaW5lIFIzMDBfWlNfQUxXQVlTCQkJNwotIyAgICAgICBkZWZpbmUgUjMwMF9aU19NQVNLICAgICAgICAgICAgICAgICAgICAgNwotCS8qIG9wZXJhdGlvbnMgKi8KLSMJZGVmaW5lIFIzMDBfWlNfS0VFUAkJCTAKLSMJZGVmaW5lIFIzMDBfWlNfWkVSTwkJCTEKLSMJZGVmaW5lIFIzMDBfWlNfUkVQTEFDRQkJCTIKLSMJZGVmaW5lIFIzMDBfWlNfSU5DUgkJCTMKLSMJZGVmaW5lIFIzMDBfWlNfREVDUgkJCTQKLSMJZGVmaW5lIFIzMDBfWlNfSU5WRVJUCQkJNQotIwlkZWZpbmUgUjMwMF9aU19JTkNSX1dSQVAJCTYKLSMJZGVmaW5lIFIzMDBfWlNfREVDUl9XUkFQCQk3Ci0JLyogZnJvbnQgYW5kIGJhY2sgcmVmZXIgdG8gb3BlcmF0aW9ucyBkb25lIGZvciBmcm9udAotCSAgIGFuZCBiYWNrIGZhY2VzLCBpLmUuIHNlcGFyYXRlIHN0ZW5jaWwgZnVuY3Rpb24gc3VwcG9ydCAqLwotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9ERVBUSF9GVU5DX1NISUZUCQkwCi0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0ZST05UX0ZVTkNfU0hJRlQJCTMKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfRlJPTlRfRkFJTF9PUF9TSElGVAk2Ci0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0ZST05UX1pQQVNTX09QX1NISUZUCTkKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfRlJPTlRfWkZBSUxfT1BfU0hJRlQgICAgICAxMgotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9CQUNLX0ZVTkNfU0hJRlQgICAgICAgICAgIDE1Ci0jCWRlZmluZSBSMzAwX1JCM0RfWlMxX0JBQ0tfRkFJTF9PUF9TSElGVCAgICAgICAgMTgKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzFfQkFDS19aUEFTU19PUF9TSElGVCAgICAgICAyMQotIwlkZWZpbmUgUjMwMF9SQjNEX1pTMV9CQUNLX1pGQUlMX09QX1NISUZUICAgICAgIDI0Ci0KLSNkZWZpbmUgUjMwMF9SQjNEX1pTVEVOQ0lMX0NOVExfMiAgICAgICAgICAgICAgICAgICAweDRGMDgKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzJfU1RFTkNJTF9SRUZfU0hJRlQJCTAKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzJfU1RFTkNJTF9NQVNLCQkweEZGCi0jCWRlZmluZSBSMzAwX1JCM0RfWlMyX1NURU5DSUxfTUFTS19TSElGVAkgICAgICAgIDgKLSMJZGVmaW5lIFIzMDBfUkIzRF9aUzJfU1RFTkNJTF9XUklURV9NQVNLX1NISUZUCTE2Ci0KLS8qIGdhcCAqLwotCi0jZGVmaW5lIFIzMDBfUkIzRF9aU1RFTkNJTF9GT1JNQVQgICAgICAgICAgICAgICAgICAgMHg0RjEwCi0jCWRlZmluZSBSMzAwX0RFUFRIX0ZPUk1BVF8xNkJJVF9JTlRfWiAgICAgKDAgPDwgMCkKLSMJZGVmaW5lIFIzMDBfREVQVEhfRk9STUFUXzI0QklUX0lOVF9aICAgICAoMiA8PCAwKQotCS8qIDE2IGJpdCBmb3JtYXQgb3Igc29tZSBhZGl0aW9uYWwgYml0ID8gKi8KLSMJZGVmaW5lIFIzMDBfREVQVEhfRk9STUFUX1VOSzMyICAgICAgICAgICgzMiA8PCAwKQotCi0jZGVmaW5lIFIzMDBfUkIzRF9FQVJMWV9aICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0RjE0Ci0jCWRlZmluZSBSMzAwX0VBUkxZX1pfRElTQUJMRSAgICAgICAgICAgICAgKDAgPDwgMCkKLSMJZGVmaW5lIFIzMDBfRUFSTFlfWl9FTkFCTEUgICAgICAgICAgICAgICAoMSA8PCAwKQotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1JCM0RfWkNBQ0hFX0NUTFNUQVQgICAgICAgICAgICAweDRGMTggLyogR1VFU1MgKi8KLSMgICAgICAgZGVmaW5lIFIzMDBfUkIzRF9aQ0FDSEVfVU5LTk9XTl8wMSAgMHgxCi0jICAgICAgIGRlZmluZSBSMzAwX1JCM0RfWkNBQ0hFX1VOS05PV05fMDMgIDB4MwotCi0vKiBnYXAgKi8KLQotI2RlZmluZSBSMzAwX1JCM0RfREVQVEhPRkZTRVQgICAgICAgICAgICAgICAweDRGMjAKLSNkZWZpbmUgUjMwMF9SQjNEX0RFUFRIUElUQ0ggICAgICAgICAgICAgICAgMHg0RjI0Ci0jICAgICAgIGRlZmluZSBSMzAwX0RFUFRIUElUQ0hfTUFTSyAgICAgICAgICAgICAgMHgwMDAwMUZGOCAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSF9USUxFX0VOQUJMRSAgICAgICAgICAgICgxIDw8IDE2KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSF9NSUNST1RJTEVfRU5BQkxFICAgICAgICgxIDw8IDE3KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSF9FTkRJQU5fTk9fU1dBUCAgICAgICAgICgwIDw8IDE4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSF9FTkRJQU5fV09SRF9TV0FQICAgICAgICgxIDw8IDE4KSAvKiBHVUVTUyAqLwotIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSF9FTkRJQU5fRFdPUkRfU1dBUCAgICAgICgyIDw8IDE4KSAvKiBHVUVTUyAqLwotCi0vKiBCRUdJTjogVmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb24gc2V0ICovCi0KLS8qIEV2ZXJ5IGluc3RydWN0aW9uIGlzIGZvdXIgZHdvcmRzIGxvbmc6Ci0gKiAgRFdPUkQgMDogb3V0cHV0IGFuZCBvcGNvZGUKLSAqICBEV09SRCAxOiBmaXJzdCBhcmd1bWVudAotICogIERXT1JEIDI6IHNlY29uZCBhcmd1bWVudAotICogIERXT1JEIDM6IHRoaXJkIGFyZ3VtZW50Ci0gKgotICogTm90ZXM6Ci0gKiAgLSBBQlMgciwgYSBpcyBpbXBsZW1lbnRlZCBhcyBNQVggciwgYSwgLWEKLSAqICAtIE1PViBpcyBpbXBsZW1lbnRlZCBhcyBBREQgdG8gemVybwotICogIC0gWFBEIGlzIGltcGxlbWVudGVkIGFzIE1VTCArIE1BRAotICogIC0gRkxSIGlzIGltcGxlbWVudGVkIGFzIEZSQyArIEFERAotICogIC0gYXBwYXJlbnRseSwgZmdscnggdHJpZXMgdG8gc2NoZWR1bGUgaW5zdHJ1Y3Rpb25zIHNvIHRoYXQgdGhlcmUgaXMgYXQKLSAqICAgIGxlYXN0IG9uZSBpbnN0cnVjdGlvbiBiZXR3ZWVuIHRoZSB3cml0ZSB0byBhIHRlbXBvcmFyeSBhbmQgdGhlIGZpcnN0Ci0gKiAgICByZWFkIGZyb20gc2FpZCB0ZW1wb3Jhcnk7IGhvd2V2ZXIsIHZpb2xhdGlvbnMgb2YgdGhpcyBzY2hlZHVsaW5nIGFyZQotICogICAgYWxsb3dlZAotICogIC0gcmVnaXN0ZXIgaW5kaWNlcyBzZWVtIHRvIGJlIHVucmVsYXRlZCB3aXRoIE9wZW5HTCBhbGlhc2luZyB0bwotICogICAgY29udmVudGlvbmFsIHN0YXRlCi0gKiAgLSBvbmx5IG9uZSBhdHRyaWJ1dGUgYW5kIG9uZSBwYXJhbWV0ZXIgY2FuIGJlIGxvYWRlZCBhdCBhIHRpbWU7IGhvd2V2ZXIsCi0gKiAgICB0aGUgc2FtZSBhdHRyaWJ1dGUvcGFyYW1ldGVyIGNhbiBiZSB1c2VkIGZvciBtb3JlIHRoYW4gb25lIGFyZ3VtZW50Ci0gKiAgLSB0aGUgc2Vjb25kIHNvZnR3YXJlIGFyZ3VtZW50IGZvciBQT1cgaXMgdGhlIHRoaXJkIGhhcmR3YXJlIGFyZ3VtZW50Ci0gKiAgICAobm8gaWRlYSB3aHkpCi0gKiAgLSBNQUQgd2l0aCBvbmx5IHRlbXBvcmFyaWVzIGFzIGlucHV0IHNlZW1zIHRvIHVzZSBWUElfT1VUX1NFTEVDVF9NQURfMgotICoKLSAqIFRoZXJlIGlzIHNvbWUgbWFnaWMgc3Vycm91bmRpbmcgTElUOgotICogICBUaGUgc2luZ2xlIGFyZ3VtZW50IGlzIHJlcGxpY2F0ZWQgYWNyb3NzIGFsbCB0aHJlZSBpbnB1dHMsIGJ1dCBzd2l6emxlZDoKLSAqICAgICBGaXJzdCBhcmd1bWVudDogeHl6eQotICogICAgIFNlY29uZCBhcmd1bWVudDogeHl6eAotICogICAgIFRoaXJkIGFyZ3VtZW50OiB4eXp3Ci0gKiAgIFdoZW5ldmVyIHRoZSByZXN1bHQgaXMgdXNlZCBsYXRlciBpbiB0aGUgZnJhZ21lbnQgcHJvZ3JhbSwgZmdscnggZm9yY2VzCi0gKiAgIHggYW5kIHcgdG8gYmUgMS4wIGluIHRoZSBpbnB1dCBzZWxlY3Rpb247IEkgZG9uJ3Qga25vdyB3aGV0aGVyIHRoaXMgaXMKLSAqICAgc3RyaWN0bHkgbmVjZXNzYXJ5Ci0gKi8KLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0RPVCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9NVUwgICAgICAgICAgICAgICAgICAgICAoMiA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfQUREICAgICAgICAgICAgICAgICAgICAgKDMgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01BRCAgICAgICAgICAgICAgICAgICAgICg0IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9EU1QgICAgICAgICAgICAgICAgICAgICAoNSA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfRlJDICAgICAgICAgICAgICAgICAgICAgKDYgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01BWCAgICAgICAgICAgICAgICAgICAgICg3IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9NSU4gICAgICAgICAgICAgICAgICAgICAoOCA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfU0dFICAgICAgICAgICAgICAgICAgICAgKDkgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1NMVCAgICAgICAgICAgICAgICAgICAgICgxMCA8PCAwKQotCS8qIFVzZWQgaW4gR0xfUE9JTlRfRElTVEFOQ0VfQVRURU5VQVRJT05fQVJCLCB2ZWN0b3Ioc2NhbGFyLCB2ZWN0b3IpICovCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTksxMiAgICAgICAgICAgICAgICAgICAoMTIgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0FSTCAgICAgICAgICAgICAgICAgICAgICgxMyA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfRVhQICAgICAgICAgICAgICAgICAgICAgKDY1IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9MT0cgICAgICAgICAgICAgICAgICAgICAoNjYgPDwgMCkKLQkvKiBVc2VkIGluIGZvZyBjb21wdXRhdGlvbnMsIHNjYWxhcihzY2FsYXIpICovCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTks2NyAgICAgICAgICAgICAgICAgICAoNjcgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0xJVCAgICAgICAgICAgICAgICAgICAgICg2OCA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfUE9XICAgICAgICAgICAgICAgICAgICAgKDY5IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9SQ1AgICAgICAgICAgICAgICAgICAgICAoNzAgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1JTUSAgICAgICAgICAgICAgICAgICAgICg3MiA8PCAwKQotCS8qIFVzZWQgaW4gR0xfUE9JTlRfRElTVEFOQ0VfQVRURU5VQVRJT05fQVJCLCBzY2FsYXIoc2NhbGFyKSAqLwotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfVU5LNzMgICAgICAgICAgICAgICAgICAgKDczIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9FWDIgICAgICAgICAgICAgICAgICAgICAoNzUgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0xHMiAgICAgICAgICAgICAgICAgICAgICg3NiA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFEXzIgICAgICAgICAgICAgICAgICAgKDEyOCA8PCAwKQotCS8qIGFsbCB0ZW1wcywgdmVjdG9yKHNjYWxhciwgdmVjdG9yLCB2ZWN0b3IpICovCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTksxMjkgICAgICAgICAgICAgICAgICAoMTI5IDw8IDApCi0KLSNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19DTEFTU19URU1QT1JBUlkgICAgICAgICgwIDw8IDgpCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9SRUdfQ0xBU1NfQUREUiAgICAgICAgICAgICAoMSA8PCA4KQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX1JFU1VMVCAgICAgICAgICAgKDIgPDwgOCkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19DTEFTU19NQVNLICAgICAgICAgICAgICgzMSA8PCA4KQotCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9SRUdfSU5ERVhfU0hJRlQgICAgICAgICAgICAxMwotCS8qIEdVRVNTIGJhc2VkIG9uIGZnbHJ4IG5hdGl2ZSBsaW1pdHMgKi8KLSNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19JTkRFWF9NQVNLICAgICAgICAgICAgICgzMSA8PCAxMykKLQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfV1JJVEVfWCAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjApCi0jZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9ZICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMSkKLSNkZWZpbmUgUjMwMF9WUElfT1VUX1dSSVRFX1ogICAgICAgICAgICAgICAgICAgICgxIDw8IDIyKQotI2RlZmluZSBSMzAwX1ZQSV9PVVRfV1JJVEVfVyAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjMpCi0KLSNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX1RFTVBPUkFSWSAgICAgICAgICgwIDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19DTEFTU19BVFRSSUJVVEUgICAgICAgICAoMSA8PCAwKQotI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfUEFSQU1FVEVSICAgICAgICAgKDIgPDwgMCkKLSNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX05PTkUgICAgICAgICAgICAgICg5IDw8IDApCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19DTEFTU19NQVNLICAgICAgICAgICAgICAoMzEgPDwgMCkKLQotI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfSU5ERVhfU0hJRlQgICAgICAgICAgICAgNQotCS8qIEdVRVNTIGJhc2VkIG9uIGZnbHJ4IG5hdGl2ZSBsaW1pdHMgKi8KLSNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgICgyNTUgPDwgNSkKLQotLyogVGhlIFIzMDAgY2FuIHNlbGVjdCBjb21wb25lbnRzIGZyb20gdGhlIGlucHV0IHJlZ2lzdGVyIGFyYml0cmFyaWx5LgotICogVXNlIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzLCBzaGlmdGVkIGJ5IHRoZSBjb21wb25lbnQgc2hpZnQgeW91Ci0gKiB3YW50IHRvIHNlbGVjdAotICovCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9YICAgIDAKLSNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1kgICAgMQotI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWiAgICAyCi0jZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9XICAgIDMKLSNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1pFUk8gNAotI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfT05FICA1Ci0jZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9NQVNLIDcKLQotI2RlZmluZSBSMzAwX1ZQSV9JTl9YX1NISUZUICAgICAgICAgICAgICAgICAgICAgMTMKLSNkZWZpbmUgUjMwMF9WUElfSU5fWV9TSElGVCAgICAgICAgICAgICAgICAgICAgIDE2Ci0jZGVmaW5lIFIzMDBfVlBJX0lOX1pfU0hJRlQgICAgICAgICAgICAgICAgICAgICAxOQotI2RlZmluZSBSMzAwX1ZQSV9JTl9XX1NISUZUICAgICAgICAgICAgICAgICAgICAgMjIKLQotI2RlZmluZSBSMzAwX1ZQSV9JTl9ORUdfWCAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCi0jZGVmaW5lIFIzMDBfVlBJX0lOX05FR19ZICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNikKLSNkZWZpbmUgUjMwMF9WUElfSU5fTkVHX1ogICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQotI2RlZmluZSBSMzAwX1ZQSV9JTl9ORUdfVyAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjgpCi0vKiBFTkQ6IFZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9uIHNldCAqLwotCi0vKiBCRUdJTjogUGFja2V0IDMgY29tbWFuZHMgKi8KLQotLyogQSBwcmltaXRpdmUgZW1pc3Npb24gZHdvcmQuICovCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX05PTkUgICAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9QT0lOVCAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTElORSAgICAgICAgICAgICAgICAgICAgICgyIDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX0xJTkVfU1RSSVAgICAgICAgICAgICAgICAoMyA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9UUklfTElTVCAgICAgICAgICAgICAgICAgKDQgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfVFJJX0ZBTiAgICAgICAgICAgICAgICAgICg1IDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9TVFJJUCAgICAgICAgICAgICAgICAoNiA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9UUklfVFlQRTIgICAgICAgICAgICAgICAgKDcgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUkVDVF9MSVNUICAgICAgICAgICAgICAgICg4IDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFXzNWUlRfUE9JTlRfTElTVCAgICAgICAgICAoOSA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV8zVlJUX0xJTkVfTElTVCAgICAgICAgICAgKDEwIDw8IDApCi0JLyogR1VFU1MgKGJhc2VkIG9uIHIyMDApICovCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1BPSU5UX1NQUklURVMgICAgICAgICAgICAoMTEgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTElORV9MT09QICAgICAgICAgICAgICAgICgxMiA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9RVUFEUyAgICAgICAgICAgICAgICAgICAgKDEzIDw8IDApCi0jZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1FVQURfU1RSSVAgICAgICAgICAgICAgICAoMTQgPDwgMCkKLSNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUE9MWUdPTiAgICAgICAgICAgICAgICAgICgxNSA8PCAwKQotI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgICAgMHhGCi0jZGVmaW5lIFIzMDBfUFJJTV9XQUxLX0lORCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQotI2RlZmluZSBSMzAwX1BSSU1fV0FMS19MSVNUICAgICAgICAgICAgICAgICAgICAgKDIgPDwgNCkKLSNkZWZpbmUgUjMwMF9QUklNX1dBTEtfUklORyAgICAgICAgICAgICAgICAgICAgICgzIDw8IDQpCi0jZGVmaW5lIFIzMDBfUFJJTV9XQUxLX01BU0sgICAgICAgICAgICAgICAgICAgICAoMyA8PCA0KQotCS8qIEdVRVNTIChiYXNlZCBvbiByMjAwKSAqLwotI2RlZmluZSBSMzAwX1BSSU1fQ09MT1JfT1JERVJfQkdSQSAgICAgICAgICAgICAgKDAgPDwgNikKLSNkZWZpbmUgUjMwMF9QUklNX0NPTE9SX09SREVSX1JHQkEgICAgICAgICAgICAgICgxIDw8IDYpCi0jZGVmaW5lIFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfU0hJRlQgICAgICAgICAgICAxNgotI2RlZmluZSBSMzAwX1BSSU1fTlVNX1ZFUlRJQ0VTX01BU0sgICAgICAgICAgICAgMHhmZmZmCi0KLS8qIERyYXcgYSBwcmltaXRpdmUgZnJvbSB2ZXJ0ZXggZGF0YSBpbiBhcnJheXMgbG9hZGVkIHZpYSAzRF9MT0FEX1ZCUE5UUi4KLSAqIFR3byBwYXJhbWV0ZXIgZHdvcmRzOgotICogMC4gVGhlIGZpcnN0IHBhcmFtZXRlciBhcHBlYXJzIHRvIGJlIGFsd2F5cyAwCi0gKiAxLiBUaGUgc2Vjb25kIHBhcmFtZXRlciBpcyBhIHN0YW5kYXJkIHByaW1pdGl2ZSBlbWlzc2lvbiBkd29yZC4KLSAqLwotI2RlZmluZSBSMzAwX1BBQ0tFVDNfM0RfRFJBV19WQlVGICAgICAgICAgICAweDAwMDAyODAwCi0KLS8qIFNwZWNpZnkgdGhlIGZ1bGwgc2V0IG9mIHZlcnRleCBhcnJheXMgYXMgKGFkZHJlc3MsIHN0cmlkZSkuCi0gKiBUaGUgZmlyc3QgcGFyYW1ldGVyIGlzIHRoZSBudW1iZXIgb2YgdmVydGV4IGFycmF5cyBzcGVjaWZpZWQuCi0gKiBUaGUgcmVzdCBvZiB0aGUgY29tbWFuZCBpcyBhIHZhcmlhYmxlIGxlbmd0aCBsaXN0IG9mIGJsb2Nrcywgd2hlcmUKLSAqIGVhY2ggYmxvY2sgaXMgdGhyZWUgZHdvcmRzIGxvbmcgYW5kIHNwZWNpZmllcyB0d28gYXJyYXlzLgotICogVGhlIGZpcnN0IGR3b3JkIG9mIGEgYmxvY2sgaXMgc3BsaXQgaW50byB0d28gd29yZHMsIHRoZSBsb3dlciBzaWduaWZpY2FudAotICogd29yZCByZWZlcnMgdG8gdGhlIGZpcnN0IGFycmF5LCB0aGUgbW9yZSBzaWduaWZpY2FudCB3b3JkIHRvIHRoZSBzZWNvbmQKLSAqIGFycmF5IGluIHRoZSBibG9jay4KLSAqIFRoZSBsb3cgYnl0ZSBvZiBlYWNoIHdvcmQgY29udGFpbnMgdGhlIHNpemUgb2YgYW4gYXJyYXkgZW50cnkgaW4gZHdvcmRzLAotICogdGhlIGhpZ2ggYnl0ZSBjb250YWlucyB0aGUgc3RyaWRlIG9mIHRoZSBhcnJheS4KLSAqIFRoZSBzZWNvbmQgZHdvcmQgb2YgYSBibG9jayBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUgZmlyc3QgYXJyYXksCi0gKiB0aGUgdGhpcmQgZHdvcmQgb2YgYSBibG9jayBjb250YWlucyB0aGUgcG9pbnRlciB0byB0aGUgc2Vjb25kIGFycmF5LgotICogTm90ZSB0aGF0IGlmIHRoZSB0b3RhbCBudW1iZXIgb2YgYXJyYXlzIGlzIG9kZCwgdGhlIHRoaXJkIGR3b3JkIG9mCi0gKiB0aGUgbGFzdCBibG9jayBpcyBvbWl0dGVkLgotICovCi0jZGVmaW5lIFIzMDBfUEFDS0VUM18zRF9MT0FEX1ZCUE5UUiAgICAgICAgIDB4MDAwMDJGMDAKLQotI2RlZmluZSBSMzAwX1BBQ0tFVDNfSU5EWF9CVUZGRVIgICAgICAgICAgICAweDAwMDAzMzAwCi0jICAgIGRlZmluZSBSMzAwX0VCX1VOSzFfU0hJRlQgICAgICAgICAgICAgICAgICAgICAgMjQKLSMgICAgZGVmaW5lIFIzMDBfRUJfVU5LMSAgICAgICAgICAgICAgICAgICAgKDB4ODA8PDI0KQotIyAgICBkZWZpbmUgUjMwMF9FQl9VTksyICAgICAgICAgICAgICAgICAgICAgICAgMHgwODEwCi0jZGVmaW5lIFIzMDBfUEFDS0VUM18zRF9EUkFXX1ZCVUZfMiAgICAgICAgIDB4MDAwMDM0MDAKLSNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0RSQVdfSU5EWF8yICAgICAgICAgMHgwMDAwMzYwMAotCi0vKiBFTkQ6IFBhY2tldCAzIGNvbW1hbmRzICovCi0KLQotLyogQ29sb3IgZm9ybWF0cyBmb3IgMmQgcGFja2V0cwotICovCi0jZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX0NJOAkyCi0jZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX0FSR0IxNTU1CTMKLSNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfUkdCNTY1CTQKLSNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQVJHQjg4ODgJNgotI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9SR0IzMzIJNwotI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9SR0I4CTkKLSNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQVJHQjQ0NDQJMTUKLQotLyoKLSAqIENQIHR5cGUtMyBwYWNrZXRzCi0gKi8KLSNkZWZpbmUgUjMwMF9DUF9DTURfQklUQkxUX01VTFRJCTB4QzAwMDlCMDAKLQotI2VuZGlmIC8qIF9SMzAwX1JFR19IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9jcC5jIGIvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fY3AuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZmNmM5Mi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9jcC5jCisrKyAvZGV2L251bGwKQEAgLTEsMjQzNSArMCwwIEBACi0vKiByYWRlb25fY3AuYyAtLSBDUCBzdXBwb3J0IGZvciBSYWRlb24gLSotIGxpbnV4LWMgLSotICovCi0vKgotICogQ29weXJpZ2h0IDIwMDAgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgRnJlbW9udCwgQ2FsaWZvcm5pYS4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIEF1dGhvcnM6Ci0gKiAgICBLZXZpbiBFLiBNYXJ0aW4gPG1hcnRpbkB2YWxpbnV4LmNvbT4KLSAqICAgIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJ2LmgiCi0jaW5jbHVkZSAicjMwMF9yZWcuaCIKLQotI2RlZmluZSBSQURFT05fRklGT19ERUJVRwkwCi0KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX2NsZWFudXBfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotCi0vKiBDUCBtaWNyb2NvZGUgKGZyb20gQVRJKSAqLwotc3RhdGljIGNvbnN0IHUzMiBSMjAwX2NwX21pY3JvY29kZVtdWzJdID0gewotCXsweDIxMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgyMDAwNzAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwYWIsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMGFmLCAweDAwMDAwMDA0fSwKLQl7MHg2NjU0NGE0OSwgMDAwMDAwMDAwMH0sCi0JezB4NDk0OTQxNzQsIDAwMDAwMDAwMDB9LAotCXsweDU0NTE3ZDgzLCAwMDAwMDAwMDAwfSwKLQl7MHg0OThkOGI2NCwgMDAwMDAwMDAwMH0sCi0JezB4NDk0OTQ5NDksIDAwMDAwMDAwMDB9LAotCXsweDQ5ZGE0OTNjLCAwMDAwMDAwMDAwfSwKLQl7MHg0OTk4OTg5OCwgMDAwMDAwMDAwMH0sCi0JezB4ZDM0OTQ5ZDUsIDAwMDAwMDAwMDB9LAotCXsweDlkYzkwZTExLCAwMDAwMDAwMDAwfSwKLQl7MHhjZTliOWI5YiwgMDAwMDAwMDAwMH0sCi0JezB4MDAwZjAwMDAsIDB4MDAwMDAwMTZ9LAotCXsweDM1MmUyMzJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDAxMywgMHgwMDAwMDAwNH0sCi0JezB4MDAwZjAwMDAsIDB4MDAwMDAwMTZ9LAotCXsweDM1MmUyNzJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDBmMDAwMSwgMHgwMDAwMDAxNn0sCi0JezB4MzIzOTM2MmYsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA3N2VmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjAsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjAsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMjAsIDB4MDAwMDAwMWF9LAotCXsweDAwMDA0MDAwLCAweDAwMDAwMDFlfSwKLQl7MHgwMDAwMDAxNiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwMmEsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA2N2UwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDAxNiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc3ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMzdlMSwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDY3ZTEsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDA3N2UwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzdlMSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc3ZTEsIDB4MDAwMDAwMDZ9LAotCXsweGZmZmZmZmZmLCAwMDAwMDAwMDAwfSwKLQl7MHgxMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwMmEsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA2N2UwLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNzY3NSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3OCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMzgwMmIsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNjc2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzgsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDJlLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDAyZSwgMHgwMDAwMDAxOH0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDAwMDJmLCAweDAwMDAwMDE4fSwKLQl7MHgwMDAwMDAyZiwgMHgwMDAwMDAxOH0sCi0JezAwMDAwMDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAxNjA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwOTgwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHg2NGMwNjAzZCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwODAwMDAsIDB4MDAwMDAwMTZ9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwNDAwMjUxZCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1ODAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY3NTgxLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjU4MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjc1ODEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDQ2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTBlLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAxOTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMTEwNTUsIDB4MDAwMDAwMTR9LAotCXsweDAwMDAwMDU1LCAweDAwMDAwMDEyfSwKLQl7MHgwNDAwMjUwZiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDUwNGEsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA3NTY1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNTEsIDB4MDAwMDAwMDR9LAotCXsweDAxZTY1NWI0LCAweDAwMDAwMDAyfSwKLQl7MHg0NDAxYjBkYywgMHgwMDAwMDAwMn0sCi0JezB4MDFjMTEwZGMsIDB4MDAwMDAwMDJ9LAotCXsweDI2NjY3MDVkLCAweDAwMDAwMDE4fSwKLQl7MHgwNDBjMjU2NSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNWQsIDB4MDAwMDAwMTh9LAotCXsweDA0MDAyNTY0LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNTQsIDB4MDAwMDAwMDR9LAotCXsweDAwNDAxMDYwLCAweDAwMDAwMDA4fSwKLQl7MHgwMDEwMTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwZDgwZmYsIDB4MDAwMDAwMDJ9LAotCXsweDAwODAwMDYzLCAweDAwMDAwMDA4fSwKLQl7MHgwMDBmOTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwZTAwZmYsIDB4MDAwMDAwMDJ9LAotCXswMDAwMDAwMDAwLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwMDA4MCwgMHgwMDAwMDAxOH0sCi0JezB4MDAwMDAwNTQsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA3NTc2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDkwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDQxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwYzAwMzUwZSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNDkwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDUxMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMWU3ODVmOCwgMHgwMDAwMDAwMn0sCi0JezB4MDAyMDAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwNjAwMDczLCAweDAwMDAwMDBjfSwKLQl7MHgwMDAwNzU2MywgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDc1ZjAsIDB4MDAwMDAwMjF9LAotCXsweDIwMDA3MDY4LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNTA2OCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc1NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTc3LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzUwZSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1MGYsIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA3NiwgMHgwMDAwMDAwY30sCi0JezB4MDA2MDc1ZjAsIDB4MDAwMDAwMjF9LAotCXsweDAwMDA3NWY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA3NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwYTc1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMjA3NTBmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA3OSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc1NzAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTcxLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU3MiwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2OCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDg0LCAweDAwMDAwMDBjfSwKLQl7MHgwMDA1ODAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MGM2MDc1NjIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDg2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDYwMDA4NSwgMHgwMDAwMDAwNH0sCi0JezB4NDAwMDcwZGQsIDAwMDAwMDAwMDB9LAotCXsweDAwMDM4MGRkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDA5MywgMHgwMDAwMDAxY30sCi0JezB4MDAwNjUwOTUsIDB4MDAwMDAwMTh9LAotCXsweDA0MDAyNWJiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTA5NiwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDc1YmMsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA3NWJiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzViYywgMDAwMDAwMDAwMH0sCi0JezB4MDAwOTAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDkwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBkODAwMiwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3ODIxLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzgwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc4MjEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3ODAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMTY2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwYTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY3MWNjLCAweDAwMDAwMDAyfSwKLQl7MHgwMjg2ZjFjZCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwYTMsIDB4MDAwMDAwMTB9LAotCXsweDIxMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDBhYSwgMHgwMDAwMDAxY30sCi0JezB4MDAwNjUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMGEwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwYjAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDM4MDY3MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBhMDBhNiwgMHgwMDAwMDAwNH0sCi0JezB4MjAwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAxMjAwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgyMDA3NzAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDEyMDAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDIwMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDEyMDc1MWIsIDB4MDAwMDAwMDJ9LAotCXsweDgwNDA3NTBhLCAweDAwMDAwMDAyfSwKLQl7MHg4MDQwNzUwYiwgMHgwMDAwMDAwMn0sCi0JezB4MDAxMTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MGRkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBiZCwgMHgwMDAwMDAxY30sCi0JezB4MDAwNjEwOTYsIDB4MDAwMDAwMTh9LAotCXsweDg0NDA3NWJkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTA5NSwgMHgwMDAwMDAxOH0sCi0JezB4ODQwMDc1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMDk2LCAweDAwMDAwMDE4fSwKLQl7MHg4NDQwNzViYywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwYzAsIDB4MDAwMDAwMDR9LAotCXsweDgwNDA3NWJkLCAweDAwMDAwMDAyfSwKLQl7MHg4MDAwNzViYiwgMHgwMDAwMDAwMn0sCi0JezB4ODA0MDc1YmMsIDB4MDAwMDAwMDJ9LAotCXsweDAwMTA4MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTQwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwYzQsIDB4MDAwMDAwMGN9LAotCXsweDIwYzA3MDAwLCAweDAwMDAwMDIwfSwKLQl7MHgwMDAwMDBjNiwgMHgwMDAwMDAxMn0sCi0JezB4MDA4MDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwODA3NTFkLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwMjViYiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDQwYzAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA3NzVjLCAweDAwMDAwMDAyfSwKLQl7MHgwMGEwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2NjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDA0NjAyNzVkLCAweDAwMDAwMDIwfSwKLQl7MHgwMDAwNDAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc5OTksIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDY2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDQ2MDI5OWIsIDB4MDAwMDAwMjB9LAotCXsweDAwMDA0MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMWUwMDgzMCwgMHgwMDAwMDAwMn0sCi0JezB4MjEwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAzODA0MiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1ZTAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NWUxLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDAwMSwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwZDksIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA3Mzk0LCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1MzIgcmFkZW9uX2NwX21pY3JvY29kZVtdWzJdID0gewotCXsweDIxMDA3MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgyMDAwNzAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwYjQsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMGI4LCAweDAwMDAwMDA0fSwKLQl7MHg2ZjViNGQ0YywgMDAwMDAwMDAwMH0sCi0JezB4NGM0YzQyN2YsIDAwMDAwMDAwMDB9LAotCXsweDViNTY4YTkyLCAwMDAwMDAwMDAwfSwKLQl7MHg0Y2EwOWM2ZCwgMDAwMDAwMDAwMH0sCi0JezB4YWQ0YzRjNGMsIDAwMDAwMDAwMDB9LAotCXsweDRjZTFhZjNkLCAwMDAwMDAwMDAwfSwKLQl7MHhkOGFmYWZhZiwgMDAwMDAwMDAwMH0sCi0JezB4ZDY0YzRjZGMsIDAwMDAwMDAwMDB9LAotCXsweDRjZDEwZDEwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDBmMDAwMCwgMHgwMDAwMDAxNn0sCi0JezB4MzYyZjI0MmQsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMDEyLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBmMDAwMCwgMHgwMDAwMDAxNn0sCi0JezB4MzYyZjI4MmQsIDAwMDAwMDAwMDB9LAotCXsweDAwMDM4MGU3LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMmM5NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwZjAwMDEsIDB4MDAwMDAwMTZ9LAotCXsweDMzM2EzNzMwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwNzdlZiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDIxLCAweDAwMDAwMDFhfSwKLQl7MHgwMDAwNDAwMCwgMHgwMDAwMDAxZX0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDIxLCAweDAwMDAwMDFhfSwKLQl7MHgwMDAwNDAwMCwgMHgwMDAwMDAxZX0sCi0JezB4MDAwNjEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDIxLCAweDAwMDAwMDFhfSwKLQl7MHgwMDAwNDAwMCwgMHgwMDAwMDAxZX0sCi0JezB4MDAwMDAwMTcsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MDJiLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwNjdlMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwMTcsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA3N2UwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2NTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDM3ZTEsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDA2N2UxLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwNzdlMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc3ZTEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3N2UxLCAweDAwMDAwMDA2fSwKLQl7MHhmZmZmZmZmZiwgMDAwMDAwMDAwMH0sCi0JezB4MTAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDM4MDJiLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwNjdlMCwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDc2NzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzY3NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzgsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDM4MDJjLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjY3NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc2NzcsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3Njc4LCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwMDAyZiwgMHgwMDAwMDAxOH0sCi0JezB4MDAwMDAwMmYsIDB4MDAwMDAwMTh9LAotCXswMDAwMDAwMDAwLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwMDAzMCwgMHgwMDAwMDAxOH0sCi0JezB4MDAwMDAwMzAsIDB4MDAwMDAwMTh9LAotCXswMDAwMDAwMDAwLCAweDAwMDAwMDA2fSwKLQl7MHgwMTYwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDk4MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4NjRjMDYwM2UsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwODAwMDAsIDB4MDAwMDAwMTZ9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwNDAwMjUxZCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1ODAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY3NTgxLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjU4MCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNjc1ODEsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDQ5LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwNTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDE5MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAxMTA1NSwgMHgwMDAwMDAxNH0sCi0JezB4MDAwMDAwNTUsIDB4MDAwMDAwMTJ9LAotCXsweDA0MDAyNTBmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNTA0ZiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2NSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NjYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDAwMDU4LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAxZTY1NWI0LCAweDAwMDAwMDAyfSwKLQl7MHg0NDAxYjBlNCwgMHgwMDAwMDAwMn0sCi0JezB4MDFjMTEwZTQsIDB4MDAwMDAwMDJ9LAotCXsweDI2NjY3MDY2LCAweDAwMDAwMDE4fSwKLQl7MHgwNDBjMjU2NSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNjYsIDB4MDAwMDAwMTh9LAotCXsweDA0MDAyNTY0LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU2NiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwNWQsIDB4MDAwMDAwMDR9LAotCXsweDAwNDAxMDY5LCAweDAwMDAwMDA4fSwKLQl7MHgwMDEwMTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwZDgwZmYsIDB4MDAwMDAwMDJ9LAotCXsweDAwODAwMDZjLCAweDAwMDAwMDA4fSwKLQl7MHgwMDBmOTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwZTAwZmYsIDB4MDAwMDAwMDJ9LAotCXswMDAwMDAwMDAwLCAweDAwMDAwMDA2fSwKLQl7MHgwMDAwMDA4ZiwgMHgwMDAwMDAxOH0sCi0JezB4MDAwMDAwNWIsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1NzYsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDY1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwOTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNDEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDBjMDAzNTBlLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA0OTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwNTEwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAxZTc4NWY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDIwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwN2UsIDB4MDAwMDAwMGN9LAotCXsweDAwMDA3NTYzLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwNzVmMCwgMHgwMDAwMDAyMX0sCi0JezB4MjAwMDcwNzMsIDB4MDAwMDAwMDR9LAotCXsweDAwMDA1MDczLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTc2LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU3NywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc1MGUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTBmLCAweDAwMDAwMDAyfSwKLQl7MHgwMGEwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwODMsIDB4MDAwMDAwMGN9LAotCXsweDAwNjA3NWYwLCAweDAwMDAwMDIxfSwKLQl7MHgwMDAwNzVmOCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwODMsIDB4MDAwMDAwMDR9LAotCXsweDAwMGE3NTBlLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMjA3NTBmLCAweDAwMDAwMDAyfSwKLQl7MHgwMDYwMDA4NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDc1NzAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTcxLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzU3MiwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMzgwZTYsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWM1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDBhMDUwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3NTY4LCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwOTUsIDB4MDAwMDAwMGN9LAotCXsweDAwMDU4MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwYzYwNzU2MiwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwOTcsIDB4MDAwMDAwMDR9LAotCXsweDAwMDM4MGU2LCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjVjNSwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwOTYsIDB4MDAwMDAwMDR9LAotCXsweDQwMDA3MGU1LCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAzODBlNiwgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDI1YzUsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MGU1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBhOCwgMHgwMDAwMDAxY30sCi0JezB4MDAwNjUwYWEsIDB4MDAwMDAwMTh9LAotCXsweDA0MDAyNWJiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTBhYiwgMHgwMDAwMDAxOH0sCi0JezB4MDQwMDc1YmMsIDAwMDAwMDAwMDB9LAotCXsweDAwMDA3NWJiLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzViYywgMDAwMDAwMDAwMH0sCi0JezB4MDAwOTAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwMDkwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDBkODAwMiwgMHgwMDAwMDAwNn0sCi0JezB4MDAwMDc4MzIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAzODBlNywgMHgwMDAwMDAwMn0sCi0JezB4MDQwMDJjOTcsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDA3ODIwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzgyMSwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDc4MDAsIDAwMDAwMDAwMDB9LAotCXsweDAxMjAwMDAwLCAweDAwMDAwMDAyfSwKLQl7MHgyMDA3NzAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDEyMDAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDIwMDA3MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDEyMDc1MWIsIDB4MDAwMDAwMDJ9LAotCXsweDgwNDA3NTBhLCAweDAwMDAwMDAyfSwKLQl7MHg4MDQwNzUwYiwgMHgwMDAwMDAwMn0sCi0JezB4MDAxMTAwMDAsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDM4MGU1LCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwMDBjNiwgMHgwMDAwMDAxY30sCi0JezB4MDAwNjEwYWIsIDB4MDAwMDAwMTh9LAotCXsweDg0NDA3NWJkLCAweDAwMDAwMDAyfSwKLQl7MHgwMDA2MTBhYSwgMHgwMDAwMDAxOH0sCi0JezB4ODQwMDc1YmIsIDB4MDAwMDAwMDJ9LAotCXsweDAwMDYxMGFiLCAweDAwMDAwMDE4fSwKLQl7MHg4NDQwNzViYywgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDAwYzksIDB4MDAwMDAwMDR9LAotCXsweDgwNDA3NWJkLCAweDAwMDAwMDAyfSwKLQl7MHg4MDAwNzViYiwgMHgwMDAwMDAwMn0sCi0JezB4ODA0MDc1YmMsIDB4MDAwMDAwMDJ9LAotCXsweDAwMTA4MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMTQwMDAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDA2MDAwY2QsIDB4MDAwMDAwMGN9LAotCXsweDIwYzA3MDAwLCAweDAwMDAwMDIwfSwKLQl7MHgwMDAwMDBjZiwgMHgwMDAwMDAxMn0sCi0JezB4MDA4MDAwMDAsIDB4MDAwMDAwMDZ9LAotCXsweDAwODA3NTFkLCAweDAwMDAwMDA2fSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDc3NWMsIDB4MDAwMDAwMDJ9LAotCXsweDAwYTA1MDAwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDY2MTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDQ2MDI3NWQsIDB4MDAwMDAwMjB9LAotCXsweDAwMDA0MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMWUwMDgzMCwgMHgwMDAwMDAwMn0sCi0JezB4MjEwMDcwMDAsIDAwMDAwMDAwMDB9LAotCXsweDY0NjQ2MTRkLCAwMDAwMDAwMDAwfSwKLQl7MHg2OTY4NzQyMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwNzMsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwNTAwMCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMzgwZDAsIDB4MDAwMDAwMDJ9LAotCXsweDA0MDAyNWUwLCAweDAwMDAwMDAyfSwKLQl7MHgwMDAwNzVlMSwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwMDEsIDAwMDAwMDAwMDB9LAotCXsweDAwMDM4MGUwLCAweDAwMDAwMDAyfSwKLQl7MHgwNDAwMjM5NCwgMHgwMDAwMDAwMn0sCi0JezB4MDAwMDUwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDAwMDAwMDgsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMDA0LCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLX07Ci0KLXN0YXRpYyBjb25zdCB1MzIgUjMwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKLQl7MHg0MjAwZTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4NDAwMGUwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMGFmLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwMDBiMywgMHgwMDAwMDAwOH0sCi0JezB4NmM1YTUwNGYsIDAwMDAwMDAwMDB9LAotCXsweDRmNGY0OTdhLCAwMDAwMDAwMDAwfSwKLQl7MHg1YTU3ODI4OCwgMDAwMDAwMDAwMH0sCi0JezB4NGY5MTkwNmEsIDAwMDAwMDAwMDB9LAotCXsweDRmNGY0ZjRmLCAwMDAwMDAwMDAwfSwKLQl7MHg0ZmUyNGY0NCwgMDAwMDAwMDAwMH0sCi0JezB4NGY5YzljOWMsIDAwMDAwMDAwMDB9LAotCXsweGRjNGY0ZmRlLCAwMDAwMDAwMDAwfSwKLQl7MHhhMWNkNGY0ZiwgMDAwMDAwMDAwMH0sCi0JezB4ZDI5ZDlkOWQsIDAwMDAwMDAwMDB9LAotCXsweDRmMGY5ZmQ3LCAwMDAwMDAwMDAwfSwKLQl7MHgwMDBjYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMTIsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlOGI0LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAxNCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4YjYsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDE2LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZTg1NCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMTgsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlODU1LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAxYSwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4NTYsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDFjLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZTg1NywgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMWUsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBlODI0LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAyMCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGU4MjUsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDIyLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZTgzMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMjQsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMGMwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAyNiwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYwYzEsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDI4LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjA0MSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMmEsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMTg0LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAyYywgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYxODUsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDJlLCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjE4NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMzAsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMTg3LCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAzMiwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYxODAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGQwMDM0LCAweDAwMDAwMDM4fSwKLQl7MHgwMDAwZjM5MywgMHgwMDAwMDAwNH0sCi0JezB4MDAwZDAwMzYsIDB4MDAwMDAwMzh9LAotCXsweDAwMDBmMzhhLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBkMDAzOCwgMHgwMDAwMDAzOH0sCi0JezB4MDAwMGYzOGUsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlODIxLCAweDAwMDAwMDA0fSwKLQl7MHgwMTQwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwNDMsIDB4MDAwMDAwMTh9LAotCXsweDAwY2NlODAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDFiMDAwMSwgMHgwMDAwMDAwNH0sCi0JezB4MDgwMDQ4MDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMWIwMDAxLCAweDAwMDAwMDA0fSwKLQl7MHgwODAwNDgwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxYjAwMDEsIDB4MDAwMDAwMDR9LAotCXsweDA4MDA0ODAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDAzYSwgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGEwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAyYzBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBjYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxMzAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGMyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHhjOTgwYzA0NSwgMHgwMDAwMDAwOH0sCi0JezB4MjAwMDQ1MWQsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTgwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBjZTU4MSwgMHgwMDAwMDAwNH0sCi0JezB4MDgwMDQ1ODAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGNlNTgxLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDA0YywgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGEwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMGMyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTUwZSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDIyMDU2LCAweDAwMDAwMDI4fSwKLQl7MHgwMDAwMDA1NiwgMHgwMDAwMDAyNH0sCi0JezB4MDgwMDQ1MGYsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBhMDUwLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwZTU2NSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1NjYsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDU3LCAweDAwMDAwMDA4fSwKLQl7MHgwM2NjYTViNCwgMHgwMDAwMDAwNH0sCi0JezB4MDU0MzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDIyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHg0Y2NjZTA2MywgMHgwMDAwMDAzMH0sCi0JezB4MDgyNzQ1NjUsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDYzLCAweDAwMDAwMDMwfSwKLQl7MHgwODAwNDU2NCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1NjYsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDVhLCAweDAwMDAwMDA4fSwKLQl7MHgwMDgwMjA2NiwgMHgwMDAwMDAxMH0sCi0JezB4MDAyMDIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMWIwMGZmLCAweDAwMDAwMDA0fSwKLQl7MHgwMTAwMDA2OSwgMHgwMDAwMDAxMH0sCi0JezB4MDAxZjIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMWMwMGZmLCAweDAwMDAwMDA0fSwKLQl7MDAwMDAwMDAwMCwgMHgwMDAwMDAwY30sCi0JezB4MDAwMDAwODUsIDB4MDAwMDAwMzB9LAotCXsweDAwMDAwMDVhLCAweDAwMDAwMDA4fSwKLQl7MHgwMDAwZTU3NiwgMHgwMDAwMDAwNH0sCi0JezB4MDAwY2EwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDEyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDA4MjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MTgwMDY1MGUsIDB4MDAwMDAwMDR9LAotCXsweDAwMDkyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDBhMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwZjAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwNDAwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDA3OSwgMHgwMDAwMDAxOH0sCi0JezB4MDAwMGU1NjMsIDB4MDAwMDAwMDR9LAotCXsweDAwYzBlNWY5LCAweDAwMDAwMGMyfSwKLQl7MHgwMDAwMDA2ZSwgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGEwNmUsIDB4MDAwMDAwMDh9LAotCXsweDAwMDBlNTc2LCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTU3NywgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU1MGUsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTBmLCAweDAwMDAwMDA0fSwKLQl7MHgwMTQwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMDAwN2MsIDB4MDAwMDAwMTh9LAotCXsweDAwYzBlNWY5LCAweDAwMDAwMGMyfSwKLQl7MHgwMDAwMDA3YywgMHgwMDAwMDAwOH0sCi0JezB4MDAxNGU1MGUsIDB4MDAwMDAwMDR9LAotCXsweDAwNDBlNTBmLCAweDAwMDAwMDA0fSwKLQl7MHgwMGMwMDA3ZiwgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGU1NzAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNTcxLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTU3MiwgMHgwMDAwMDAwY30sCi0JezB4MDAwMGEwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAxNDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwZTU2OCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDg5LCAweDAwMDAwMDE4fSwKLQl7MHgwMDBiMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MThjMGU1NjIsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDhiLCAweDAwMDAwMDA4fSwKLQl7MHgwMGMwMDA4YSwgMHgwMDAwMDAwOH0sCi0JezB4MDAwNzAwZTQsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMDk3LCAweDAwMDAwMDM4fSwKLQl7MHgwMDBjYTA5OSwgMHgwMDAwMDAzMH0sCi0JezB4MDgwMDQ1YmIsIDB4MDAwMDAwMDR9LAotCXsweDAwMGMyMDlhLCAweDAwMDAwMDMwfSwKLQl7MHgwODAwZTViYywgMDAwMDAwMDAwMH0sCi0JezB4MDAwMGU1YmIsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNWJjLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDEyMDAwMCwgMHgwMDAwMDAwY30sCi0JezB4MDAxMjAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMWIwMDAyLCAweDAwMDAwMDBjfSwKLQl7MHgwMDAwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU4MjEsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlODAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwZTgyMSwgMHgwMDAwMDAwNH0sCi0JezB4MDAwMGU4MmUsIDAwMDAwMDAwMDB9LAotCXsweDAyY2NhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDE0MDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwY2UxY2MsIDB4MDAwMDAwMDR9LAotCXsweDA1MGRlMWNkLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwMDBhNywgMHgwMDAwMDAyMH0sCi0JezB4NDIwMGUwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDAwMGFlLCAweDAwMDAwMDM4fSwKLQl7MHgwMDBjYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAxNDAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMGMyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMDE2MDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4NzAwY2UwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwMTQwMGFhLCAweDAwMDAwMDA4fSwKLQl7MHg0MDAwZTAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDI0MDAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDQwMGVlMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMjQwMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4NDAwMGUwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMGMyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMjQwZTUxYiwgMHgwMDAwMDAwNH0sCi0JezB4MDA4MGU1MGEsIDB4MDAwMDAwMDV9LAotCXsweDAwODBlNTBiLCAweDAwMDAwMDA1fSwKLQl7MHgwMDIyMDAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDAwNzAwZTQsIDB4MDAwMDAwMDR9LAotCXsweDAwMDAwMGMxLCAweDAwMDAwMDM4fSwKLQl7MHgwMDBjMjA5YSwgMHgwMDAwMDAzMH0sCi0JezB4MDg4MGU1YmQsIDB4MDAwMDAwMDV9LAotCXsweDAwMGMyMDk5LCAweDAwMDAwMDMwfSwKLQl7MHgwODAwZTViYiwgMHgwMDAwMDAwNX0sCi0JezB4MDAwYzIwOWEsIDB4MDAwMDAwMzB9LAotCXsweDA4ODBlNWJjLCAweDAwMDAwMDA1fSwKLQl7MHgwMDAwMDBjNCwgMHgwMDAwMDAwOH0sCi0JezB4MDA4MGU1YmQsIDB4MDAwMDAwMDV9LAotCXsweDAwMDBlNWJiLCAweDAwMDAwMDA1fSwKLQl7MHgwMDgwZTViYywgMHgwMDAwMDAwNX0sCi0JezB4MDAyMTAwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAyODAwMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMGMwMDBjOCwgMHgwMDAwMDAxOH0sCi0JezB4NDE4MGUwMDAsIDB4MDAwMDAwNDB9LAotCXsweDAwMDAwMGNhLCAweDAwMDAwMDI0fSwKLQl7MHgwMTAwMDAwMCwgMHgwMDAwMDAwY30sCi0JezB4MDEwMGU1MWQsIDB4MDAwMDAwMGN9LAotCXsweDAwMDA0NWJiLCAweDAwMDAwMDA0fSwKLQl7MHgwMDAwODBjNCwgMHgwMDAwMDAwOH0sCi0JezB4MDAwMGYzY2UsIDB4MDAwMDAwMDR9LAotCXsweDAxNDBhMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwMGNjMjAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDhjMDUzY2YsIDB4MDAwMDAwNDB9LAotCXsweDAwMDA4MDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwZjNkMiwgMHgwMDAwMDAwNH0sCi0JezB4MDE0MGEwMDAsIDB4MDAwMDAwMDR9LAotCXsweDAwY2MyMDAwLCAweDAwMDAwMDA0fSwKLQl7MHgwOGMwNTNkMywgMHgwMDAwMDA0MH0sCi0JezB4MDAwMDgwMDAsIDAwMDAwMDAwMDB9LAotCXsweDAwMDBmMzlkLCAweDAwMDAwMDA0fSwKLQl7MHgwMTQwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MDBjYzIwMDAsIDB4MDAwMDAwMDR9LAotCXsweDA4YzA1MzllLCAweDAwMDAwMDQwfSwKLQl7MHgwMDAwODAwMCwgMDAwMDAwMDAwMH0sCi0JezB4MDNjMDA4MzAsIDB4MDAwMDAwMDR9LAotCXsweDQyMDBlMDAwLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwYTAwMCwgMHgwMDAwMDAwNH0sCi0JezB4MjAwMDQ1ZTAsIDB4MDAwMDAwMDR9LAotCXsweDAwMDBlNWUxLCAwMDAwMDAwMDAwfSwKLQl7MHgwMDAwMDAwMSwgMDAwMDAwMDAwMH0sCi0JezB4MDAwNzAwZTEsIDB4MDAwMDAwMDR9LAotCXsweDA4MDBlMzk0LCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi0JezAwMDAwMDAwMDAsIDAwMDAwMDAwMDB9LAotCXswMDAwMDAwMDAwLCAwMDAwMDAwMDAwfSwKLQl7MDAwMDAwMDAwMCwgMDAwMDAwMDAwMH0sCi19OwotCi1zdGF0aWMgdTMyIFJBREVPTl9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JdTMyIHJldDsKLQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDB4N2YwMDAwIHwgKGFkZHIgJiAweGZmKSk7Ci0JcmV0ID0gUkFERU9OX1JFQUQoUjUyMF9NQ19JTkRfREFUQSk7Ci0JUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAwKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdTMyIFJTNjkwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKLXsKLQlSQURFT05fV1JJVEUoUlM2OTBfTUNfSU5ERVgsIChhZGRyICYgUlM2OTBfTUNfSU5ERVhfTUFTSykpOwotCXJldHVybiBSQURFT05fUkVBRChSUzY5MF9NQ19EQVRBKTsKLX0KLQotdTMyIHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKLXsKLQotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQotCQlyZXR1cm4gUkFERU9OX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJWNTE1X01DX0ZCX0xPQ0FUSU9OKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQotCQlyZXR1cm4gUlM2OTBfUkVBRF9NQ0lORChkZXZfcHJpdiwgUlM2OTBfTUNfRkJfTE9DQVRJT04pOwotCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKLQkJcmV0dXJuIFJBREVPTl9SRUFEX01DSU5EKGRldl9wcml2LCBSNTIwX01DX0ZCX0xPQ0FUSU9OKTsKLQllbHNlCi0JCXJldHVybiBSQURFT05fUkVBRChSQURFT05fTUNfRkJfTE9DQVRJT04pOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfZmJfbG9jYXRpb24oZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1MzIgZmJfbG9jKQotewotCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQotCQlSQURFT05fV1JJVEVfTUNJTkQoUlY1MTVfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQotCQlSQURFT05fV1JJVEVfTUNJTkQoUjUyMF9NQ19GQl9MT0NBVElPTiwgZmJfbG9jKTsKLQllbHNlCi0JCVJBREVPTl9XUklURShSQURFT05fTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCB1MzIgYWdwX2xvYykKLXsKLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkKLQkJUkFERU9OX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Ci0JZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKLQllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCi0JCVJBREVPTl9XUklURV9NQ0lORChSNTIwX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Ci0JZWxzZQotCQlSQURFT05fV1JJVEUoUkFERU9OX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Ci19Ci0KLXN0YXRpYyBpbnQgUkFERU9OX1JFQURfUExMKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgYWRkcikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JUkFERU9OX1dSSVRFOChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwgYWRkciAmIDB4MWYpOwotCXJldHVybiBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9EQVRBKTsKLX0KLQotc3RhdGljIHUzMiBSQURFT05fUkVBRF9QQ0lFKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JUkFERU9OX1dSSVRFOChSQURFT05fUENJRV9JTkRFWCwgYWRkciAmIDB4ZmYpOwotCXJldHVybiBSQURFT05fUkVBRChSQURFT05fUENJRV9EQVRBKTsKLX0KLQotc3RhdGljIHUzMiBSQURFT05fUkVBRF9JR1BHQVJUKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCi17Ci0JdTMyIHJldDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0lHUEdBUlRfSU5ERVgsIGFkZHIgJiAweDdmKTsKLQlyZXQgPSBSQURFT05fUkVBRChSQURFT05fSUdQR0FSVF9EQVRBKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX0lHUEdBUlRfSU5ERVgsIDB4N2YpOwotCXJldHVybiByZXQ7Ci19Ci0KLSNpZiBSQURFT05fRklGT19ERUJVRwotc3RhdGljIHZvaWQgcmFkZW9uX3N0YXR1cyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCXByaW50aygiJXM6XG4iLCBfX2Z1bmNfXyk7Ci0JcHJpbnRrKCJSQkJNX1NUQVRVUyA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fUkJCTV9TVEFUVVMpKTsKLQlwcmludGsoIkNQX1JCX1JUUFIgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpKTsKLQlwcmludGsoIkNQX1JCX1dUUFIgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1dQVFIpKTsKLQlwcmludGsoIkFJQ19DTlRMID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfQ05UTCkpOwotCXByaW50aygiQUlDX1NUQVQgPSAweCUwOHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19TVEFUKSk7Ci0JcHJpbnRrKCJBSUNfUFRfQkFTRSA9IDB4JTA4eFxuIiwKLQkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1BUX0JBU0UpKTsKLQlwcmludGsoIlRMQl9BRERSID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfVExCX0FERFIpKTsKLQlwcmludGsoIlRMQl9EQVRBID0gMHglMDh4XG4iLAotCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfVExCX0RBVEEpKTsKLX0KLSNlbmRpZgotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBFbmdpbmUsIEZJRk8gY29udHJvbAotICovCi0KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX3BpeGNhY2hlX2ZsdXNoKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JdTMyIHRtcDsKLQlpbnQgaTsKLQotCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKLQotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpOwotCXRtcCB8PSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEw7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIHRtcCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Ci0JCWlmICghKFJBREVPTl9SRUFEKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQpCi0JCSAgICAgICYgUkFERU9OX1JCM0RfRENfQlVTWSkpIHsKLQkJCXJldHVybiAwOwotCQl9Ci0JCURSTV9VREVMQVkoMSk7Ci0JfQotCi0jaWYgUkFERU9OX0ZJRk9fREVCVUcKLQlEUk1fRVJST1IoImZhaWxlZCFcbiIpOwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotI2VuZGlmCi0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIGludCByYWRlb25fZG9fd2FpdF9mb3JfZmlmbyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgZW50cmllcykKLXsKLQlpbnQgaTsKLQotCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKLQotCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJaW50IHNsb3RzID0gKFJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NUQVRVUykKLQkJCSAgICAgJiBSQURFT05fUkJCTV9GSUZPQ05UX01BU0spOwotCQlpZiAoc2xvdHMgPj0gZW50cmllcykKLQkJCXJldHVybiAwOwotCQlEUk1fVURFTEFZKDEpOwotCX0KLQotI2lmIFJBREVPTl9GSUZPX0RFQlVHCi0JRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKLQlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKLSNlbmRpZgotCXJldHVybiAtRUJVU1k7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlpbnQgaSwgcmV0OwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JcmV0ID0gcmFkZW9uX2RvX3dhaXRfZm9yX2ZpZm8oZGV2X3ByaXYsIDY0KTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgewotCQlpZiAoIShSQURFT05fUkVBRChSQURFT05fUkJCTV9TVEFUVVMpCi0JCSAgICAgICYgUkFERU9OX1JCQk1fQUNUSVZFKSkgewotCQkJcmFkZW9uX2RvX3BpeGNhY2hlX2ZsdXNoKGRldl9wcml2KTsKLQkJCXJldHVybiAwOwotCQl9Ci0JCURSTV9VREVMQVkoMSk7Ci0JfQotCi0jaWYgUkFERU9OX0ZJRk9fREVCVUcKLQlEUk1fRVJST1IoImZhaWxlZCFcbiIpOwotCXJhZGVvbl9zdGF0dXMoZGV2X3ByaXYpOwotI2VuZGlmCi0JcmV0dXJuIC1FQlVTWTsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ1AgY29udHJvbCwgaW5pdGlhbGl6YXRpb24KLSAqLwotCi0vKiBMb2FkIHRoZSBtaWNyb2NvZGUgZm9yIHRoZSBDUCAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2xvYWRfbWljcm9jb2RlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JaW50IGk7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fQUREUiwgMCk7Ci0KLQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApIHsKLQkJRFJNX0lORk8oIkxvYWRpbmcgUjIwMCBNaWNyb2NvZGVcbiIpOwotCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAotCQkJCSAgICAgUjIwMF9jcF9taWNyb2NvZGVbaV1bMV0pOwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCi0JCQkJICAgICBSMjAwX2NwX21pY3JvY29kZVtpXVswXSk7Ci0JCX0KLQl9IGVsc2UgaWYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMzAwKSB7Ci0JCURSTV9JTkZPKCJMb2FkaW5nIFIzMDAgTWljcm9jb2RlXG4iKTsKLQkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKLQkJCQkgICAgIFIzMDBfY3BfbWljcm9jb2RlW2ldWzFdKTsKLQkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAotCQkJCSAgICAgUjMwMF9jcF9taWNyb2NvZGVbaV1bMF0pOwotCQl9Ci0JfSBlbHNlIHsKLQkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7Ci0JCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKLQkJCQkgICAgIHJhZGVvbl9jcF9taWNyb2NvZGVbaV1bMV0pOwotCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCi0JCQkJICAgICByYWRlb25fY3BfbWljcm9jb2RlW2ldWzBdKTsKLQkJfQotCX0KLX0KLQotLyogRmx1c2ggYW55IHBlbmRpbmcgY29tbWFuZHMgdG8gdGhlIENQLiAgVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIGp1c3QKLSAqIHByaW9yIHRvIGEgd2FpdCBmb3IgaWRsZSwgYXMgaXQgaW5mb3JtcyB0aGUgZW5naW5lIHRoYXQgdGhlIGNvbW1hbmQKLSAqIHN0cmVhbSBpcyBlbmRpbmcuCi0gKi8KLXN0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9mbHVzaChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCURSTV9ERUJVRygiXG4iKTsKLSNpZiAwCi0JdTMyIHRtcDsKLQotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9XUFRSKSB8ICgxIDw8IDMxKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1dQVFIsIHRtcCk7Ci0jZW5kaWYKLX0KLQotLyogV2FpdCBmb3IgdGhlIENQIHRvIGdvIGlkbGUuCi0gKi8KLWludCByYWRlb25fZG9fY3BfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCVJJTkdfTE9DQUxTOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUJFR0lOX1JJTkcoNik7Ci0KLQlSQURFT05fUFVSR0VfQ0FDSEUoKTsKLQlSQURFT05fUFVSR0VfWkNBQ0hFKCk7Ci0JUkFERU9OX1dBSVRfVU5USUxfSURMRSgpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci0JQ09NTUlUX1JJTkcoKTsKLQotCXJldHVybiByYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci19Ci0KLS8qIFN0YXJ0IHRoZSBDb21tYW5kIFByb2Nlc3Nvci4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX3N0YXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9DU1FfQ05UTCwgZGV2X3ByaXYtPmNwX21vZGUpOwotCi0JZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAxOwotCi0JQkVHSU5fUklORyg2KTsKLQotCVJBREVPTl9QVVJHRV9DQUNIRSgpOwotCVJBREVPTl9QVVJHRV9aQ0FDSEUoKTsKLQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLQlDT01NSVRfUklORygpOwotfQotCi0vKiBSZXNldCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuICBUaGlzIHdpbGwgbm90IGZsdXNoIGFueSBwZW5kaW5nCi0gKiBjb21tYW5kcywgc28geW91IG11c3Qgd2FpdCBmb3IgdGhlIENQIGNvbW1hbmQgc3RyZWFtIHRvIGNvbXBsZXRlCi0gKiBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUuCi0gKi8KLXN0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9yZXNldChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCXUzMiBjdXJfcmVhZF9wdHI7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JY3VyX3JlYWRfcHRyID0gUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpOwotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfV1BUUiwgY3VyX3JlYWRfcHRyKTsKLQlTRVRfUklOR19IRUFEKGRldl9wcml2LCBjdXJfcmVhZF9wdHIpOwotCWRldl9wcml2LT5yaW5nLnRhaWwgPSBjdXJfcmVhZF9wdHI7Ci19Ci0KLS8qIFN0b3AgdGhlIENvbW1hbmQgUHJvY2Vzc29yLiAgVGhpcyB3aWxsIG5vdCBmbHVzaCBhbnkgcGVuZGluZwotICogY29tbWFuZHMsIHNvIHlvdSBtdXN0IGZsdXNoIHRoZSBjb21tYW5kIHN0cmVhbSBhbmQgd2FpdCBmb3IgdGhlIENQCi0gKiB0byBnbyBpZGxlIGJlZm9yZSBjYWxsaW5nIHRoaXMgcm91dGluZS4KLSAqLwotc3RhdGljIHZvaWQgcmFkZW9uX2RvX2NwX3N0b3AoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKLXsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX0NTUV9DTlRMLCBSQURFT05fQ1NRX1BSSURJU19JTkRESVMpOwotCi0JZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOwotfQotCi0vKiBSZXNldCB0aGUgZW5naW5lLiAgVGhpcyB3aWxsIHN0b3AgdGhlIENQIGlmIGl0IGlzIHJ1bm5pbmcuCi0gKi8KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXUzMiBjbG9ja19jbnRsX2luZGV4LCBtY2xrX2NudGwsIHJiYm1fc29mdF9yZXNldDsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOwotCi0JaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDwgQ0hJUF9SVjUxNSkgewotCQljbG9ja19jbnRsX2luZGV4ID0gUkFERU9OX1JFQUQoUkFERU9OX0NMT0NLX0NOVExfSU5ERVgpOwotCQltY2xrX2NudGwgPSBSQURFT05fUkVBRF9QTEwoZGV2LCBSQURFT05fTUNMS19DTlRMKTsKLQotCQlSQURFT05fV1JJVEVfUExMKFJBREVPTl9NQ0xLX0NOVEwsIChtY2xrX2NudGwgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtBIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQ0xLQiB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0EgfAotCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX1lDTEtCIHwKLQkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9NQyB8Ci0JCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fQUlDKSk7Ci0KLQkJcmJibV9zb2Z0X3Jlc2V0ID0gUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7Ci0KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQsIChyYmJtX3NvZnRfcmVzZXQgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfSEkgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfU0UgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkUgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUFAgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfRTIgfAotCQkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkIpKTsKLQkJUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7Ci0JCVJBREVPTl9XUklURShSQURFT05fUkJCTV9TT0ZUX1JFU0VULCAocmJibV9zb2Z0X3Jlc2V0ICYKLQkJCQkJCSAgICAgIH4oUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAotCQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX0hJIHwKLQkJCQkJCQlSQURFT05fU09GVF9SRVNFVF9TRSB8Ci0JCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkUgfAotCQkJCQkJCVJBREVPTl9TT0ZUX1JFU0VUX1BQIHwKLQkJCQkJCQlSQURFT05fU09GVF9SRVNFVF9FMiB8Ci0JCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkIpKSk7Ci0JCVJBREVPTl9SRUFEKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQpOwotCi0JCVJBREVPTl9XUklURV9QTEwoUkFERU9OX01DTEtfQ05UTCwgbWNsa19jbnRsKTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9DTE9DS19DTlRMX0lOREVYLCBjbG9ja19jbnRsX2luZGV4KTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9SQkJNX1NPRlRfUkVTRVQsIHJiYm1fc29mdF9yZXNldCk7Ci0JfQotCi0JLyogUmVzZXQgdGhlIENQIHJpbmcgKi8KLQlyYWRlb25fZG9fY3BfcmVzZXQoZGV2X3ByaXYpOwotCi0JLyogVGhlIENQIGlzIG5vIGxvbmdlciBydW5uaW5nIGFmdGVyIGFuIGVuZ2luZSByZXNldCAqLwotCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKLQotCS8qIFJlc2V0IGFueSBwZW5kaW5nIHZlcnRleCwgaW5kaXJlY3QgYnVmZmVycyAqLwotCXJhZGVvbl9mcmVlbGlzdF9yZXNldChkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCXUzMiByaW5nX3N0YXJ0LCBjdXJfcmVhZF9wdHI7Ci0JdTMyIHRtcDsKLQotCS8qIEluaXRpYWxpemUgdGhlIG1lbW9yeSBjb250cm9sbGVyLiBXaXRoIG5ldyBtZW1vcnkgbWFwLCB0aGUgZmIgbG9jYXRpb24KLQkgKiBpcyBub3QgY2hhbmdlZCwgaXQgc2hvdWxkIGhhdmUgYmVlbiBwcm9wZXJseSBpbml0aWFsaXplZCBhbHJlYWR5LiBQYXJ0Ci0JICogb2YgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgY29kZSBiZWxvdyBpcyBib2d1cywgYXNzdW1pbmcgdGhlIEdBUlQgaXMKLQkgKiBhbHdheXMgYXBwZW5kZWQgdG8gdGhlIGZiIHdoaWNoIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgY2FzZQotCSAqLwotCWlmICghZGV2X3ByaXYtPm5ld19tZW1tYXApCi0JCXJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkZXZfcHJpdiwKLQkJCSAgICAgKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEpICYgMHhmZmZmMDAwMCkKLQkJCSAgICAgfCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uID4+IDE2KSk7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlSQURFT05fV1JJVEUoUkFERU9OX0FHUF9CQVNFLCAodW5zaWduZWQgaW50KWRldi0+YWdwLT5iYXNlKTsKLQkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwKLQkJCSAgICAgKCgoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgLSAxICsKLQkJCQlkZXZfcHJpdi0+Z2FydF9zaXplKSAmIDB4ZmZmZjAwMDApIHwKLQkJCSAgICAgIChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA+PiAxNikpKTsKLQotCQlyaW5nX3N0YXJ0ID0gKGRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQKLQkJCSAgICAgIC0gZGV2LT5hZ3AtPmJhc2UKLQkJCSAgICAgICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCX0gZWxzZQotI2VuZGlmCi0JCXJpbmdfc3RhcnQgPSAoZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldAotCQkJICAgICAgLSAodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsCi0JCQkgICAgICArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQotCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQkFTRSwgcmluZ19zdGFydCk7Ci0KLQkvKiBTZXQgdGhlIHdyaXRlIHBvaW50ZXIgZGVsYXkgKi8KLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1dQVFJfREVMQVksIDApOwotCi0JLyogSW5pdGlhbGl6ZSB0aGUgcmluZyBidWZmZXIncyByZWFkIGFuZCB3cml0ZSBwb2ludGVycyAqLwotCWN1cl9yZWFkX3B0ciA9IFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKTsKLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1dQVFIsIGN1cl9yZWFkX3B0cik7Ci0JU0VUX1JJTkdfSEVBRChkZXZfcHJpdiwgY3VyX3JlYWRfcHRyKTsKLQlkZXZfcHJpdi0+cmluZy50YWlsID0gY3VyX3JlYWRfcHRyOwotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9SUFRSX0FERFIsCi0JCQkgICAgIGRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldAotCQkJICAgICAtIGRldi0+YWdwLT5iYXNlICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCX0gZWxzZQotI2VuZGlmCi0JewotCQlzdHJ1Y3QgZHJtX3NnX21lbSAqZW50cnkgPSBkZXYtPnNnOwotCQl1bnNpZ25lZCBsb25nIHRtcF9vZnMsIHBhZ2Vfb2ZzOwotCi0JCXRtcF9vZnMgPSBkZXZfcHJpdi0+cmluZ19ycHRyLT5vZmZzZXQgLQotCQkJCSh1bnNpZ25lZCBsb25nKWRldi0+c2ctPnZpcnR1YWw7Ci0JCXBhZ2Vfb2ZzID0gdG1wX29mcyA+PiBQQUdFX1NISUZUOwotCi0JCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfUlBUUl9BRERSLCBlbnRyeS0+YnVzYWRkcltwYWdlX29mc10pOwotCQlEUk1fREVCVUcoInJpbmcgcnB0cjogb2Zmc2V0PTB4JTA4bHggaGFuZGxlPTB4JTA4bHhcbiIsCi0JCQkgICh1bnNpZ25lZCBsb25nKWVudHJ5LT5idXNhZGRyW3BhZ2Vfb2ZzXSwKLQkJCSAgZW50cnktPmhhbmRsZSArIHRtcF9vZnMpOwotCX0KLQotCS8qIFNldCByaW5nIGJ1ZmZlciBzaXplICovCi0jaWZkZWYgX19CSUdfRU5ESUFOCi0JUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9DTlRMLAotCQkgICAgIFJBREVPTl9CVUZfU1dBUF8zMkJJVCB8Ci0JCSAgICAgKGRldl9wcml2LT5yaW5nLmZldGNoX3NpemVfbDJvdyA8PCAxOCkgfAotCQkgICAgIChkZXZfcHJpdi0+cmluZy5ycHRyX3VwZGF0ZV9sMnF3IDw8IDgpIHwKLQkJICAgICBkZXZfcHJpdi0+cmluZy5zaXplX2wycXcpOwotI2Vsc2UKLQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0NOVEwsCi0JCSAgICAgKGRldl9wcml2LT5yaW5nLmZldGNoX3NpemVfbDJvdyA8PCAxOCkgfAotCQkgICAgIChkZXZfcHJpdi0+cmluZy5ycHRyX3VwZGF0ZV9sMnF3IDw8IDgpIHwKLQkJICAgICBkZXZfcHJpdi0+cmluZy5zaXplX2wycXcpOwotI2VuZGlmCi0KLQkvKiBTdGFydCB3aXRoIGFzc3VtaW5nIHRoYXQgd3JpdGViYWNrIGRvZXNuJ3Qgd29yayAqLwotCWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPSAwOwotCi0JLyogSW5pdGlhbGl6ZSB0aGUgc2NyYXRjaCByZWdpc3RlciBwb2ludGVyLiAgVGhpcyB3aWxsIGNhdXNlCi0JICogdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgdmFsdWVzIHRvIGJlIHdyaXR0ZW4gb3V0IHRvIG1lbW9yeQotCSAqIHdoZW5ldmVyIHRoZXkgYXJlIHVwZGF0ZWQuCi0JICoKLQkgKiBXZSBzaW1wbHkgcHV0IHRoaXMgYmVoaW5kIHRoZSByaW5nIHJlYWQgcG9pbnRlciwgdGhpcyB3b3JrcwotCSAqIHdpdGggUENJIEdBUlQgYXMgd2VsbCBhcyAod2hhdGV2ZXIga2luZCBvZikgQUdQIEdBUlQKLQkgKi8KLQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfQUREUiwgUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFJfQUREUikKLQkJICAgICArIFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQpOwotCi0JZGV2X3ByaXYtPnNjcmF0Y2ggPSAoKF9fdm9sYXRpbGVfXyB1MzIgKikKLQkJCSAgICAgZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlICsKLQkJCSAgICAgKFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQgLyBzaXplb2YodTMyKSkpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX1VNU0ssIDB4Nyk7Ci0KLQkvKiBUdXJuIG9uIGJ1cyBtYXN0ZXJpbmcgKi8KLQl0bXAgPSBSQURFT05fUkVBRChSQURFT05fQlVTX0NOVEwpICYgflJBREVPTl9CVVNfTUFTVEVSX0RJUzsKLQlSQURFT05fV1JJVEUoUkFERU9OX0JVU19DTlRMLCB0bXApOwotCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUgPSBkZXZfcHJpdi0+c2NyYXRjaFswXSA9IDA7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9MQVNUX0ZSQU1FX1JFRywgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUpOwotCi0JZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSBkZXZfcHJpdi0+c2NyYXRjaFsxXSA9IDA7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9MQVNUX0RJU1BBVENIX1JFRywKLQkJICAgICBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCk7Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9jbGVhciA9IGRldl9wcml2LT5zY3JhdGNoWzJdID0gMDsKLQlSQURFT05fV1JJVEUoUkFERU9OX0xBU1RfQ0xFQVJfUkVHLCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9jbGVhcik7Ci0KLQlyYWRlb25fZG9fd2FpdF9mb3JfaWRsZShkZXZfcHJpdik7Ci0KLQkvKiBTeW5jIGV2ZXJ5dGhpbmcgdXAgKi8KLQlSQURFT05fV1JJVEUoUkFERU9OX0lTWU5DX0NOVEwsCi0JCSAgICAgKFJBREVPTl9JU1lOQ19BTlkyRF9JRExFM0QgfAotCQkgICAgICBSQURFT05fSVNZTkNfQU5ZM0RfSURMRTJEIHwKLQkJICAgICAgUkFERU9OX0lTWU5DX1dBSVRfSURMRUdVSSB8Ci0JCSAgICAgIFJBREVPTl9JU1lOQ19DUFNDUkFUQ0hfSURMRUdVSSkpOwotCi19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl90ZXN0X3dyaXRlYmFjayhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCXUzMiB0bXA7Ci0KLQkvKiBXcml0ZWJhY2sgZG9lc24ndCBzZWVtIHRvIHdvcmsgZXZlcnl3aGVyZSwgdGVzdCBpdCBoZXJlIGFuZCBwb3NzaWJseQotCSAqIGVuYWJsZSBpdCBpZiBpdCBhcHBlYXJzIHRvIHdvcmsKLQkgKi8KLQlEUk1fV1JJVEUzMihkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRigxKSwgMCk7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX1JFRzEsIDB4ZGVhZGJlZWYpOwotCi0JZm9yICh0bXAgPSAwOyB0bXAgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyB0bXArKykgewotCQlpZiAoRFJNX1JFQUQzMihkZXZfcHJpdi0+cmluZ19ycHRyLCBSQURFT05fU0NSQVRDSE9GRigxKSkgPT0KLQkJICAgIDB4ZGVhZGJlZWYpCi0JCQlicmVhazsKLQkJRFJNX1VERUxBWSgxKTsKLQl9Ci0KLQlpZiAodG1wIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dCkgewotCQlkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzID0gMTsKLQkJRFJNX0lORk8oIndyaXRlYmFjayB0ZXN0IHN1Y2NlZWRlZCBpbiAlZCB1c2Vjc1xuIiwgdG1wKTsKLQl9IGVsc2UgewotCQlkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzID0gMDsKLQkJRFJNX0lORk8oIndyaXRlYmFjayB0ZXN0IGZhaWxlZFxuIik7Ci0JfQotCWlmIChyYWRlb25fbm9fd2IgPT0gMSkgewotCQlkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzID0gMDsKLQkJRFJNX0lORk8oIndyaXRlYmFjayBmb3JjZWQgb2ZmXG4iKTsKLQl9Ci0KLQlpZiAoIWRldl9wcml2LT53cml0ZWJhY2tfd29ya3MpIHsKLQkJLyogRGlzYWJsZSB3cml0ZWJhY2sgdG8gYXZvaWQgdW5uZWNlc3NhcnkgYnVzIG1hc3RlciB0cmFuc2ZlciAqLwotCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0NOVEwsIFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9DTlRMKSB8Ci0JCQkgICAgIFJBREVPTl9SQl9OT19VUERBVEUpOwotCQlSQURFT05fV1JJVEUoUkFERU9OX1NDUkFUQ0hfVU1TSywgMCk7Ci0JfQotfQotCi0vKiBFbmFibGUgb3IgZGlzYWJsZSBJR1AgR0FSVCBvbiB0aGUgY2hpcCAqLwotc3RhdGljIHZvaWQgcmFkZW9uX3NldF9pZ3BnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKLXsKLQl1MzIgdGVtcCwgdG1wOwotCi0JdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKTsKLQlpZiAob24pIHsKLQkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyBpZ3BnYXJ0ICUwOFggJTA4bFggJTA4WFxuIiwKLQkJCSBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKLQkJCSAobG9uZylkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyLAotCQkJIGRldl9wcml2LT5nYXJ0X3NpemUpOwotCi0JCVJBREVPTl9XUklURV9JR1BHQVJUKFJBREVPTl9JR1BHQVJUX1VOS18xOCwgMHgxMDAwKTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfRU5BQkxFLCAweDEpOwotCQlSQURFT05fV1JJVEVfSUdQR0FSVChSQURFT05fSUdQR0FSVF9DVFJMLCAweDQyMDQwODAwKTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfQkFTRV9BRERSLAotCQkJCSAgICAgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7Ci0KLQkJdGVtcCA9IFJBREVPTl9SRUFEX0lHUEdBUlQoZGV2X3ByaXYsIFJBREVPTl9JR1BHQVJUX1VOS18zOSk7Ci0JCVJBREVPTl9XUklURV9JR1BHQVJUKFJBREVPTl9JR1BHQVJUX1VOS18zOSwgdGVtcCk7Ci0KLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BR1BfQkFTRSwgKHVuc2lnbmVkIGludClkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JCWRldl9wcml2LT5nYXJ0X3NpemUgPSAzMioxMDI0KjEwMjQ7Ci0JCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsCi0JCQkgICAgICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArCi0JCQkgICAgICAgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmYwMDAwKSB8Ci0JCQkgICAgIChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA+PiAxNikpKTsKLQotCQl0ZW1wID0gUkFERU9OX1JFQURfSUdQR0FSVChkZXZfcHJpdiwgUkFERU9OX0lHUEdBUlRfRU5BQkxFKTsKLQkJUkFERU9OX1dSSVRFX0lHUEdBUlQoUkFERU9OX0lHUEdBUlRfRU5BQkxFLCB0ZW1wKTsKLQotCQlSQURFT05fUkVBRF9JR1BHQVJUKGRldl9wcml2LCBSQURFT05fSUdQR0FSVF9GTFVTSCk7Ci0JCVJBREVPTl9XUklURV9JR1BHQVJUKFJBREVPTl9JR1BHQVJUX0ZMVVNILCAweDEpOwotCQlSQURFT05fUkVBRF9JR1BHQVJUKGRldl9wcml2LCBSQURFT05fSUdQR0FSVF9GTFVTSCk7Ci0JCVJBREVPTl9XUklURV9JR1BHQVJUKFJBREVPTl9JR1BHQVJUX0ZMVVNILCAweDApOwotICAgICAgIH0KLX0KLQotLyogRW5hYmxlIG9yIGRpc2FibGUgUlM2OTAgR0FSVCBvbiB0aGUgY2hpcCAqLwotc3RhdGljIHZvaWQgcmFkZW9uX3NldF9yczY5MGdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgb24pCi17Ci0JdTMyIHRlbXA7Ci0KLQlpZiAob24pIHsKLQkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyByczY5MCBnYXJ0ICUwOFggJTA4bFggJTA4WFxuIiwKLQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQsCi0JCQkgIChsb25nKWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIsCi0JCQkgIGRldl9wcml2LT5nYXJ0X3NpemUpOwotCi0JCXRlbXAgPSBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19NSVNDX0NOVEwpOwotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19NSVNDX0NOVEwsIDB4NTAwMCk7Ci0KLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfQUdQX1NJWkUsCi0JCQkJICBSUzY5MF9NQ19HQVJUX0VOIHwgUlM2OTBfTUNfQUdQX1NJWkVfMzJNQik7Ci0KLQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0dBUlRfRkVBVFVSRV9JRCk7Ci0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0dBUlRfRkVBVFVSRV9JRCwgMHg0MjA0MDgwMCk7Ci0KLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfR0FSVF9CQVNFLAotCQkJCSAgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7Ci0KLQkJdGVtcCA9IFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0FHUF9NT0RFX0NPTlRST0wpOwotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfTU9ERV9DT05UUk9MLCAweDAxNDAwMDAwKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfQkFTRSwKLQkJCQkgICh1bnNpZ25lZCBpbnQpZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCi0JCWRldl9wcml2LT5nYXJ0X3NpemUgPSAzMioxMDI0KjEwMjQ7Ci0JCXRlbXAgPSAoKChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAtIDEgKyBkZXZfcHJpdi0+Z2FydF9zaXplKSAmCi0JCQkgMHhmZmZmMDAwMCkgfCAoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPj4gMTYpKTsKLQotCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfTE9DQVRJT04sIHRlbXApOwotCi0JCXRlbXAgPSBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19BR1BfU0laRSk7Ci0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0FHUF9TSVpFLAotCQkJCSAgUlM2OTBfTUNfR0FSVF9FTiB8IFJTNjkwX01DX0FHUF9TSVpFXzMyTUIpOwotCi0JCWRvIHsKLQkJCXRlbXAgPSBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19HQVJUX0NBQ0hFX0NOVEwpOwotCQkJaWYgKCh0ZW1wICYgUlM2OTBfTUNfR0FSVF9DTEVBUl9TVEFUVVMpID09Ci0JCQkgICAgUlM2OTBfTUNfR0FSVF9DTEVBUl9ET05FKQotCQkJCWJyZWFrOwotCQkJRFJNX1VERUxBWSgxKTsKLQkJfSB3aGlsZSAoMSk7Ci0KLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfR0FSVF9DQUNIRV9DTlRMLAotCQkJCSAgUlM2OTBfTUNfR0FSVF9DQ19DTEVBUik7Ci0JCWRvIHsKLQkJCXRlbXAgPSBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzY5MF9NQ19HQVJUX0NBQ0hFX0NOVEwpOwotCQkJaWYgKCh0ZW1wICYgUlM2OTBfTUNfR0FSVF9DTEVBUl9TVEFUVVMpID09Ci0JCQkJICAgUlM2OTBfTUNfR0FSVF9DTEVBUl9ET05FKQotCQkJCWJyZWFrOwotCQkJRFJNX1VERUxBWSgxKTsKLQkJfSB3aGlsZSAoMSk7Ci0KLQkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfR0FSVF9DQUNIRV9DTlRMLAotCQkJCSAgUlM2OTBfTUNfR0FSVF9DQ19OT19DSEFOR0UpOwotCX0gZWxzZSB7Ci0JCVJTNjkwX1dSSVRFX01DSU5EKFJTNjkwX01DX0FHUF9TSVpFLCBSUzY5MF9NQ19HQVJUX0RJUyk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWVnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKLXsKLQl1MzIgdG1wID0gUkFERU9OX1JFQURfUENJRShkZXZfcHJpdiwgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMKTsKLQlpZiAob24pIHsKLQotCQlEUk1fREVCVUcoInByb2dyYW1taW5nIHBjaWUgJTA4WCAlMDhsWCAlMDhYXG4iLAotCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKLQkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKLQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0RJU0NBUkRfUkRfQUREUl9MTywKLQkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9CQVNFLAotCQkJCSAgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7Ci0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfU1RBUlRfTE8sCi0JCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0xPLAotCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgKwotCQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpOwotCi0JCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsIDB4ZmZmZmZmYzApOyAvKiA/PyAqLwotCi0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKLQkJCQkgIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4pOwotCX0gZWxzZSB7Ci0JCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKLQkJCQkgIHRtcCAmIH5SQURFT05fUENJRV9UWF9HQVJUX0VOKTsKLQl9Ci19Ci0KLS8qIEVuYWJsZSBvciBkaXNhYmxlIFBDSSBHQVJUIG9uIHRoZSBjaGlwICovCi1zdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQotewotCXUzMiB0bXA7Ci0KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkgewotCQlyYWRlb25fc2V0X3JzNjkwZ2FydChkZXZfcHJpdiwgb24pOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19JR1BHQVJUKSB7Ci0JCXJhZGVvbl9zZXRfaWdwZ2FydChkZXZfcHJpdiwgb24pOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7Ci0JCXJhZGVvbl9zZXRfcGNpZWdhcnQoZGV2X3ByaXYsIG9uKTsKLQkJcmV0dXJuOwotCX0KLQotCXRtcCA9IFJBREVPTl9SRUFEKFJBREVPTl9BSUNfQ05UTCk7Ci0KLQlpZiAob24pIHsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKLQkJCSAgICAgdG1wIHwgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOKTsKLQotCQkvKiBzZXQgUENJIEdBUlQgcGFnZS10YWJsZSBiYXNlIGFkZHJlc3MKLQkJICovCi0JCVJBREVPTl9XUklURShSQURFT05fQUlDX1BUX0JBU0UsIGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpOwotCi0JCS8qIHNldCBhZGRyZXNzIHJhbmdlIGZvciBQQ0kgYWRkcmVzcyB0cmFuc2xhdGUKLQkJICovCi0JCVJBREVPTl9XUklURShSQURFT05fQUlDX0xPX0FERFIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfSElfQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQKLQkJCSAgICAgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMSk7Ci0KLQkJLyogVHVybiBvZmYgQUdQIGFwZXJ0dXJlIC0tIGlzIHRoaXMgcmVxdWlyZWQgZm9yIFBDSSBHQVJUPwotCQkgKi8KLQkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgMHhmZmZmZmZjMCk7Ci0JCVJBREVPTl9XUklURShSQURFT05fQUdQX0NPTU1BTkQsIDApOwkvKiBjbGVhciBBR1BfQ09NTUFORCAqLwotCX0gZWxzZSB7Ci0JCVJBREVPTl9XUklURShSQURFT05fQUlDX0NOVEwsCi0JCQkgICAgIHRtcCAmIH5SQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOwotCX0KLX0KLQotc3RhdGljIGludCByYWRlb25fZG9faW5pdF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgZHJtX3JhZGVvbl9pbml0X3QgKiBpbml0KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKiBpZiB3ZSByZXF1aXJlIG5ldyBtZW1vcnkgbWFwIGJ1dCB3ZSBkb24ndCBoYXZlIGl0IGZhaWwgKi8KLQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9ORVdfTUVNTUFQKSAmJiAhZGV2X3ByaXYtPm5ld19tZW1tYXApIHsKLQkJRFJNX0VSUk9SKCJDYW5ub3QgaW5pdGlhbGlzZSBEUk0gb24gdGhpcyBjYXJkXG5UaGlzIGNhcmQgcmVxdWlyZXMgYSBuZXcgWC5vcmcgRERYIGZvciAzRFxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChpbml0LT5pc19wY2kgJiYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSB7Ci0JCURSTV9ERUJVRygiRm9yY2luZyBBR1AgY2FyZCB0byBQQ0kgbW9kZVxuIik7Ci0JCWRldl9wcml2LT5mbGFncyAmPSB+UkFERU9OX0lTX0FHUDsKLQl9IGVsc2UgaWYgKCEoZGV2X3ByaXYtPmZsYWdzICYgKFJBREVPTl9JU19BR1AgfCBSQURFT05fSVNfUENJIHwgUkFERU9OX0lTX1BDSUUpKQotCQkgICAmJiAhaW5pdC0+aXNfcGNpKSB7Ci0JCURSTV9ERUJVRygiUmVzdG9yaW5nIEFHUCBmbGFnXG4iKTsKLQkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19BR1A7Ci0JfQotCi0JaWYgKCghKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApKSAmJiAhZGV2LT5zZykgewotCQlEUk1fRVJST1IoIlBDSSBHQVJUIG1lbW9yeSBub3QgYWxsb2NhdGVkIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRldl9wcml2LT51c2VjX3RpbWVvdXQgPSBpbml0LT51c2VjX3RpbWVvdXQ7Ci0JaWYgKGRldl9wcml2LT51c2VjX3RpbWVvdXQgPCAxIHx8Ci0JICAgIGRldl9wcml2LT51c2VjX3RpbWVvdXQgPiBSQURFT05fTUFYX1VTRUNfVElNRU9VVCkgewotCQlEUk1fREVCVUcoIlRJTUVPVVQgcHJvYmxlbSFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQkvKiBFbmFibGUgdmJsYW5rIG9uIENSVEMxIGZvciBvbGRlciBYIHNlcnZlcnMKLQkgKi8KLQlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMTsKLQotCXN3aXRjaChpbml0LT5mdW5jKSB7Ci0JY2FzZSBSQURFT05fSU5JVF9SMjAwX0NQOgotCQlkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPSBVQ09ERV9SMjAwOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9JTklUX1IzMDBfQ1A6Ci0JCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IzMDA7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IxMDA7Ci0JfQotCi0JZGV2X3ByaXYtPmRvX2JveGVzID0gMDsKLQlkZXZfcHJpdi0+Y3BfbW9kZSA9IGluaXQtPmNwX21vZGU7Ci0KLQkvKiBXZSBkb24ndCBzdXBwb3J0IGFueXRoaW5nIG90aGVyIHRoYW4gYnVzLW1hc3RlcmluZyByaW5nIG1vZGUsCi0JICogYnV0IHRoZSByaW5nIGNhbiBiZSBpbiBlaXRoZXIgQUdQIG9yIFBDSSBzcGFjZSBmb3IgdGhlIHJpbmcKLQkgKiByZWFkIHBvaW50ZXIuCi0JICovCi0JaWYgKChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5ERElTKSAmJgotCSAgICAoaW5pdC0+Y3BfbW9kZSAhPSBSQURFT05fQ1NRX1BSSUJNX0lOREJNKSkgewotCQlEUk1fREVCVUcoIkJBRCBjcF9tb2RlICgleCkhXG4iLCBpbml0LT5jcF9tb2RlKTsKLQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0Jc3dpdGNoIChpbml0LT5mYl9icHApIHsKLQljYXNlIDE2OgotCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I1NjU7Ci0JCWJyZWFrOwotCWNhc2UgMzI6Ci0JZGVmYXVsdDoKLQkJZGV2X3ByaXYtPmNvbG9yX2ZtdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7Ci0JCWJyZWFrOwotCX0KLQlkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0ID0gaW5pdC0+ZnJvbnRfb2Zmc2V0OwotCWRldl9wcml2LT5mcm9udF9waXRjaCA9IGluaXQtPmZyb250X3BpdGNoOwotCWRldl9wcml2LT5iYWNrX29mZnNldCA9IGluaXQtPmJhY2tfb2Zmc2V0OwotCWRldl9wcml2LT5iYWNrX3BpdGNoID0gaW5pdC0+YmFja19waXRjaDsKLQotCXN3aXRjaCAoaW5pdC0+ZGVwdGhfYnBwKSB7Ci0JY2FzZSAxNjoKLQkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1o7Ci0JCWJyZWFrOwotCWNhc2UgMzI6Ci0JZGVmYXVsdDoKLQkJZGV2X3ByaXYtPmRlcHRoX2ZtdCA9IFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1o7Ci0JCWJyZWFrOwotCX0KLQlkZXZfcHJpdi0+ZGVwdGhfb2Zmc2V0ID0gaW5pdC0+ZGVwdGhfb2Zmc2V0OwotCWRldl9wcml2LT5kZXB0aF9waXRjaCA9IGluaXQtPmRlcHRoX3BpdGNoOwotCi0JLyogSGFyZHdhcmUgc3RhdGUgZm9yIGRlcHRoIGNsZWFycy4gIFJlbW92ZSB0aGlzIGlmL3doZW4gd2Ugbm8KLQkgKiBsb25nZXIgY2xlYXIgdGhlIGRlcHRoIGJ1ZmZlciB3aXRoIGEgM0QgcmVjdGFuZ2xlLiAgSGFyZC1jb2RlCi0JICogYWxsIHZhbHVlcyB0byBwcmV2ZW50IHVud2FudGVkIDNEIHN0YXRlIGZyb20gc2xpcHBpbmcgdGhyb3VnaAotCSAqIGFuZCBzY3Jld2luZyB3aXRoIHRoZSBjbGVhciBvcGVyYXRpb24uCi0JICovCi0JZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfY250bCA9IChSQURFT05fUExBTkVfTUFTS19FTkFCTEUgfAotCQkJCQkgICAoZGV2X3ByaXYtPmNvbG9yX2ZtdCA8PCAxMCkgfAotCQkJCQkgICAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09Ci0JCQkJCSAgICBVQ09ERV9SMTAwID8gUkFERU9OX1pCTE9DSzE2IDogMCkpOwotCi0JZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnJiM2RfenN0ZW5jaWxjbnRsID0KLQkgICAgKGRldl9wcml2LT5kZXB0aF9mbXQgfAotCSAgICAgUkFERU9OX1pfVEVTVF9BTFdBWVMgfAotCSAgICAgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMgfAotCSAgICAgUkFERU9OX1NURU5DSUxfU19GQUlMX1JFUExBQ0UgfAotCSAgICAgUkFERU9OX1NURU5DSUxfWlBBU1NfUkVQTEFDRSB8Ci0JICAgICBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFIHwgUkFERU9OX1pfV1JJVEVfRU5BQkxFKTsKLQotCWRldl9wcml2LT5kZXB0aF9jbGVhci5zZV9jbnRsID0gKFJBREVPTl9GRkFDRV9DVUxMX0NXIHwKLQkJCQkJIFJBREVPTl9CRkFDRV9TT0xJRCB8Ci0JCQkJCSBSQURFT05fRkZBQ0VfU09MSUQgfAotCQkJCQkgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QgfAotCQkJCQkgUkFERU9OX0RJRkZVU0VfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fQUxQSEFfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fU1BFQ1VMQVJfU0hBREVfRkxBVCB8Ci0JCQkJCSBSQURFT05fRk9HX1NIQURFX0ZMQVQgfAotCQkJCQkgUkFERU9OX1ZUWF9QSVhfQ0VOVEVSX09HTCB8Ci0JCQkJCSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQyB8Ci0JCQkJCSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYKTsKLQotCi0JZGV2X3ByaXYtPnJpbmdfb2Zmc2V0ID0gaW5pdC0+cmluZ19vZmZzZXQ7Ci0JZGV2X3ByaXYtPnJpbmdfcnB0cl9vZmZzZXQgPSBpbml0LT5yaW5nX3JwdHJfb2Zmc2V0OwotCWRldl9wcml2LT5idWZmZXJzX29mZnNldCA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OwotCWRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldCA9IGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0OwotCi0JZGV2X3ByaXYtPnNhcmVhID0gZHJtX2dldHNhcmVhKGRldik7Ci0JaWYgKCFkZXZfcHJpdi0+c2FyZWEpIHsKLQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBzYXJlYSFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+Y3BfcmluZyA9IGRybV9jb3JlX2ZpbmRtYXAoZGV2LCBpbml0LT5yaW5nX29mZnNldCk7Ci0JaWYgKCFkZXZfcHJpdi0+Y3BfcmluZykgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGNwIHJpbmcgcmVnaW9uIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlkZXZfcHJpdi0+cmluZ19ycHRyID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfcnB0cl9vZmZzZXQpOwotCWlmICghZGV2X3ByaXYtPnJpbmdfcnB0cikgewotCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHJpbmcgcmVhZCBwb2ludGVyIVxuIik7Ci0JCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlkZXYtPmFncF9idWZmZXJfdG9rZW4gPSBpbml0LT5idWZmZXJzX29mZnNldDsKLQlkZXYtPmFncF9idWZmZXJfbWFwID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmJ1ZmZlcnNfb2Zmc2V0KTsKLQlpZiAoIWRldi0+YWdwX2J1ZmZlcl9tYXApIHsKLQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBkbWEgYnVmZmVyIHJlZ2lvbiFcbiIpOwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpIHsKLQkJZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXMgPQotCQkgICAgZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0KTsKLQkJaWYgKCFkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcykgewotCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBHQVJUIHRleHR1cmUgcmVnaW9uIVxuIik7Ci0JCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQl9Ci0KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3NhcmVhX3QgKikgKCh1OCAqKSBkZXZfcHJpdi0+c2FyZWEtPmhhbmRsZSArCi0JCQkJICAgIGluaXQtPnNhcmVhX3ByaXZfb2Zmc2V0KTsKLQotI2lmIF9fT1NfSEFTX0FHUAotCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7Ci0JCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7Ci0JCWRybV9jb3JlX2lvcmVtYXAoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKLQkJZHJtX2NvcmVfaW9yZW1hcChkZXYtPmFncF9idWZmZXJfbWFwLCBkZXYpOwotCQlpZiAoIWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgfHwKLQkJICAgICFkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgfHwKLQkJICAgICFkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpIHsKLQkJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgaW9yZW1hcCBhZ3AgcmVnaW9ucyFcbiIpOwotCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JfSBlbHNlCi0jZW5kaWYKLQl7Ci0JCWRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUgPSAodm9pZCAqKWRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQ7Ci0JCWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSA9Ci0JCSAgICAodm9pZCAqKWRldl9wcml2LT5yaW5nX3JwdHItPm9mZnNldDsKLQkJZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlID0KLQkJICAgICh2b2lkICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0OwotCi0JCURSTV9ERUJVRygiZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSAlcFxuIiwKLQkJCSAgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSk7Ci0JCURSTV9ERUJVRygiZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlICVwXG4iLAotCQkJICBkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUpOwotCQlEUk1fREVCVUcoImRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSAlcFxuIiwKLQkJCSAgZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlKTsKLQl9Ci0KLQlkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPSAocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmKSA8PCAxNjsKLQlkZXZfcHJpdi0+ZmJfc2l6ZSA9Ci0JCSgocmFkZW9uX3JlYWRfZmJfbG9jYXRpb24oZGV2X3ByaXYpICYgMHhmZmZmMDAwMHUpICsgMHgxMDAwMCkKLQkJLSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247Ci0KLQlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmZyb250X3BpdGNoIC8gNjQpIDw8IDIyKSB8Ci0JCQkJCSgoZGV2X3ByaXYtPmZyb250X29mZnNldAotCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOwotCi0JZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmJhY2tfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKLQkJCQkgICAgICAgKChkZXZfcHJpdi0+YmFja19vZmZzZXQKLQkJCQkJICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOwotCi0JZGV2X3ByaXYtPmRlcHRoX3BpdGNoX29mZnNldCA9ICgoKGRldl9wcml2LT5kZXB0aF9waXRjaCAvIDY0KSA8PCAyMikgfAotCQkJCQkoKGRldl9wcml2LT5kZXB0aF9vZmZzZXQKLQkJCQkJICArIGRldl9wcml2LT5mYl9sb2NhdGlvbikgPj4gMTApKTsKLQotCWRldl9wcml2LT5nYXJ0X3NpemUgPSBpbml0LT5nYXJ0X3NpemU7Ci0KLQkvKiBOZXcgbGV0J3Mgc2V0IHRoZSBtZW1vcnkgbWFwIC4uLiAqLwotCWlmIChkZXZfcHJpdi0+bmV3X21lbW1hcCkgewotCQl1MzIgYmFzZSA9IDA7Ci0KLQkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBuZXcgbWVtb3J5IG1hcFxuIik7Ci0KLQkJLyogSWYgdXNpbmcgQUdQLCB0cnkgdG8gbG9jYXRlIHRoZSBBR1AgYXBlcnR1cmUgYXQgdGhlIHNhbWUKLQkJICogbG9jYXRpb24gaW4gdGhlIGNhcmQgYW5kIG9uIHRoZSBidXMsIHRob3VnaCB3ZSBoYXZlIHRvCi0JCSAqIGFsaWduIGl0IGRvd24uCi0JCSAqLwotI2lmIF9fT1NfSEFTX0FHUAotCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQkJYmFzZSA9IGRldi0+YWdwLT5iYXNlOwotCQkJLyogQ2hlY2sgaWYgdmFsaWQgKi8KLQkJCWlmICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKSA+PSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gJiYKLQkJCSAgICBiYXNlIDwgKGRldl9wcml2LT5mYl9sb2NhdGlvbiArIGRldl9wcml2LT5mYl9zaXplIC0gMSkpIHsKLQkJCQlEUk1fSU5GTygiQ2FuJ3QgdXNlIEFHUCBiYXNlIEAweCUwOGx4LCB3b24ndCBmaXRcbiIsCi0JCQkJCSBkZXYtPmFncC0+YmFzZSk7Ci0JCQkJYmFzZSA9IDA7Ci0JCQl9Ci0JCX0KLSNlbmRpZgotCQkvKiBJZiBub3Qgb3IgaWYgQUdQIGlzIGF0IDAgKE1hY3MpLCB0cnkgdG8gcHV0IGl0IGVsc2V3aGVyZSAqLwotCQlpZiAoYmFzZSA9PSAwKSB7Ci0JCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemU7Ci0JCQlpZiAoYmFzZSA8IGRldl9wcml2LT5mYl9sb2NhdGlvbiB8fAotCQkJICAgICgoYmFzZSArIGRldl9wcml2LT5nYXJ0X3NpemUpICYgMHhmZmZmZmZmZnVsKSA8IGJhc2UpCi0JCQkJYmFzZSA9IGRldl9wcml2LT5mYl9sb2NhdGlvbgotCQkJCQktIGRldl9wcml2LT5nYXJ0X3NpemU7Ci0JCX0KLQkJZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPSBiYXNlICYgMHhmZmMwMDAwMHU7Ci0JCWlmIChkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAhPSBiYXNlKQotCQkJRFJNX0lORk8oIkdBUlQgYWxpZ25lZCBkb3duIGZyb20gMHglMDh4IHRvIDB4JTA4eFxuIiwKLQkJCQkgYmFzZSwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOwotCX0gZWxzZSB7Ci0JCURSTV9JTkZPKCJTZXR0aW5nIEdBUlQgbG9jYXRpb24gYmFzZWQgb24gb2xkIG1lbW9yeSBtYXBcbiIpOwotCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiArCi0JCQlSQURFT05fUkVBRChSQURFT05fQ09ORklHX0FQRVJfU0laRSk7Ci0JfQotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApCi0JCWRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ID0gKGRldi0+YWdwX2J1ZmZlcl9tYXAtPm9mZnNldAotCQkJCQkJIC0gZGV2LT5hZ3AtPmJhc2UKLQkJCQkJCSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQllbHNlCi0jZW5kaWYKLQkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0Ci0JCQkJCS0gKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbAotCQkJCQkrIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKLQotCURSTV9ERUJVRygiZGV2X3ByaXYtPmdhcnRfc2l6ZSAlZFxuIiwgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7Ci0JRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF92bV9zdGFydCAweCV4XG4iLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7Ci0JRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCAweCVseFxuIiwKLQkJICBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCk7Ci0KLQlkZXZfcHJpdi0+cmluZy5zdGFydCA9ICh1MzIgKikgZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZTsKLQlkZXZfcHJpdi0+cmluZy5lbmQgPSAoKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlCi0JCQkgICAgICArIGluaXQtPnJpbmdfc2l6ZSAvIHNpemVvZih1MzIpKTsKLQlkZXZfcHJpdi0+cmluZy5zaXplID0gaW5pdC0+cmluZ19zaXplOwotCWRldl9wcml2LT5yaW5nLnNpemVfbDJxdyA9IGRybV9vcmRlcihpbml0LT5yaW5nX3NpemUgLyA4KTsKLQotCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlID0gLyogaW5pdC0+cnB0cl91cGRhdGUgKi8gNDA5NjsKLQlkZXZfcHJpdi0+cmluZy5ycHRyX3VwZGF0ZV9sMnF3ID0gZHJtX29yZGVyKCAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2IC8gOCk7Ci0KLQlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplID0gLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMjsKLQlkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPSBkcm1fb3JkZXIoIC8qIGluaXQtPmZldGNoX3NpemUgKi8gMzIgLyAxNik7Ci0JZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrID0gKGRldl9wcml2LT5yaW5nLnNpemUgLyBzaXplb2YodTMyKSkgLSAxOwotCi0JZGV2X3ByaXYtPnJpbmcuaGlnaF9tYXJrID0gUkFERU9OX1JJTkdfSElHSF9NQVJLOwotCi0jaWYgX19PU19IQVNfQUdQCi0JaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKLQkJLyogVHVybiBvZmYgUENJIEdBUlQgKi8KLQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKLQl9IGVsc2UKLSNlbmRpZgotCXsKLQkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9tYXNrID0gRE1BX0JJVF9NQVNLKDMyKTsKLQkJLyogaWYgd2UgaGF2ZSBhbiBvZmZzZXQgc2V0IGZyb20gdXNlcnNwYWNlICovCi0JCWlmIChkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXRfc2V0KSB7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0KLQkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb247Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcub2Zmc2V0ID0KLQkJCSAgICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgKyBkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQ7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcuc2l6ZSA9Ci0JCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplOwotCi0JCQlkcm1fY29yZV9pb3JlbWFwKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPQotCQkJICAgIGRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5oYW5kbGU7Ci0KLQkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkKLQkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSUU7Ci0JCQllbHNlCi0JCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQotCQkJICAgIERSTV9BVElfR0FSVF9GQjsKLQotCQkJRFJNX0RFQlVHKCJTZXR0aW5nIHBoeXNfcGNpX2dhcnQgdG8gJXAgJTA4bFhcbiIsCi0JCQkJICBkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIsCi0JCQkJICBkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQpOwotCQl9IGVsc2UgewotCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19JR1BHQVJUKQotCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfSUdQOwotCQkJZWxzZQotCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJOwotCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID0KLQkJCSAgICBEUk1fQVRJX0dBUlRfTUFJTjsKLQkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IE5VTEw7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyID0gMDsKLQkJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkgewotCQkJCURSTV9FUlJPUgotCQkJCSAgICAoIkNhbm5vdCB1c2UgUENJIEV4cHJlc3Mgd2l0aG91dCBHQVJUIGluIEZCIG1lbW9yeVxuIik7Ci0JCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJfQotCi0JCWlmICghZHJtX2F0aV9wY2lnYXJ0X2luaXQoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpIHsKLQkJCURSTV9FUlJPUigiZmFpbGVkIHRvIGluaXQgUENJIEdBUlQhXG4iKTsKLQkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJfQotCi0JCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KLQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKLQl9Ci0KLQlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOwotCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOwotCi0JZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKLQotCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLQlyYWRlb25fdGVzdF93cml0ZWJhY2soZGV2X3ByaXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2RvX2NsZWFudXBfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQkvKiBNYWtlIHN1cmUgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgaGVyZSBiZWNhdXNlIHRoZSB1bmluc3RhbGwgaW9jdGwKLQkgKiBtYXkgbm90IGhhdmUgYmVlbiBjYWxsZWQgZnJvbSB1c2Vyc3BhY2UgYW5kIGFmdGVyIGRldl9wcml2YXRlCi0JICogaXMgZnJlZWQsIGl0J3MgdG9vIGxhdGUuCi0JICovCi0JaWYgKGRldi0+aXJxX2VuYWJsZWQpCi0JCWRybV9pcnFfdW5pbnN0YWxsKGRldik7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQlpZiAoZGV2X3ByaXYtPmNwX3JpbmcgIT0gTlVMTCkgewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPmNwX3JpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Y3BfcmluZyA9IE5VTEw7Ci0JCX0KLQkJaWYgKGRldl9wcml2LT5yaW5nX3JwdHIgIT0gTlVMTCkgewotCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2X3ByaXYtPnJpbmdfcnB0ciwgZGV2KTsKLQkJCWRldl9wcml2LT5yaW5nX3JwdHIgPSBOVUxMOwotCQl9Ci0JCWlmIChkZXYtPmFncF9idWZmZXJfbWFwICE9IE5VTEwpIHsKLQkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7Ci0JCQlkZXYtPmFncF9idWZmZXJfbWFwID0gTlVMTDsKLQkJfQotCX0gZWxzZQotI2VuZGlmCi0JewotCi0JCWlmIChkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyKSB7Ci0JCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLwotCQkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAwKTsKLQkJCWlmICghZHJtX2F0aV9wY2lnYXJ0X2NsZWFudXAoZGV2LCAmZGV2X3ByaXYtPmdhcnRfaW5mbykpCi0JCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY2xlYW51cCBQQ0kgR0FSVCFcbiIpOwotCQl9Ci0KLQkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfRkIpCi0JCXsKLQkJCWRybV9jb3JlX2lvcmVtYXBmcmVlKCZkZXZfcHJpdi0+Z2FydF9pbmZvLm1hcHBpbmcsIGRldik7Ci0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmFkZHIgPSAwOwotCQl9Ci0JfQotCS8qIG9ubHkgY2xlYXIgdG8gdGhlIHN0YXJ0IG9mIGZsYWdzICovCi0JbWVtc2V0KGRldl9wcml2LCAwLCBvZmZzZXRvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCwgZmxhZ3MpKTsKLQotCXJldHVybiAwOwotfQotCi0vKiBUaGlzIGNvZGUgd2lsbCByZWluaXQgdGhlIFJhZGVvbiBDUCBoYXJkd2FyZSBhZnRlciBhIHJlc3VtZSBmcm9tIGRpc2MuCi0gKiBBRkFJSywgaXQgd291bGQgYmUgdmVyeSBkaWZmaWN1bHQgdG8gcGlja2xlIHRoZSBzdGF0ZSBhdCBzdXNwZW5kIHRpbWUsIHNvCi0gKiBoZXJlIHdlIG1ha2Ugc3VyZSB0aGF0IGFsbCBSYWRlb24gaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gaXMgcmUtZG9uZSB3aXRob3V0Ci0gKiBhZmZlY3RpbmcgcnVubmluZyBhcHBsaWNhdGlvbnMuCi0gKgotICogQ2hhcmwgUC4gQm90aGEgPGh0dHA6Ly9jcGJvdGhhLm5ldD4KLSAqLwotc3RhdGljIGludCByYWRlb25fZG9fcmVzdW1lX2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiQ2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlEUk1fREVCVUcoIlN0YXJ0aW5nIHJhZGVvbl9kb19yZXN1bWVfY3AoKVxuIik7Ci0KLSNpZiBfX09TX0hBU19BR1AKLQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgewotCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLwotCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOwotCX0gZWxzZQotI2VuZGlmCi0JewotCQkvKiBUdXJuIG9uIFBDSSBHQVJUICovCi0JCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMSk7Ci0JfQotCi0JcmFkZW9uX2NwX2xvYWRfbWljcm9jb2RlKGRldl9wcml2KTsKLQlyYWRlb25fY3BfaW5pdF9yaW5nX2J1ZmZlcihkZXYsIGRldl9wcml2KTsKLQotCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKLQotCURSTV9ERUJVRygicmFkZW9uX2RvX3Jlc3VtZV9jcCgpIGNvbXBsZXRlXG4iKTsKLQotCXJldHVybiAwOwotfQotCi1pbnQgcmFkZW9uX2NwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9pbml0X3QgKmluaXQgPSBkYXRhOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCWlmIChpbml0LT5mdW5jID09IFJBREVPTl9JTklUX1IzMDBfQ1ApCi0JCXIzMDBfaW5pdF9yZWdfZmxhZ3MoZGV2KTsKLQotCXN3aXRjaCAoaW5pdC0+ZnVuYykgewotCWNhc2UgUkFERU9OX0lOSVRfQ1A6Ci0JY2FzZSBSQURFT05fSU5JVF9SMjAwX0NQOgotCWNhc2UgUkFERU9OX0lOSVRfUjMwMF9DUDoKLQkJcmV0dXJuIHJhZGVvbl9kb19pbml0X2NwKGRldiwgaW5pdCk7Ci0JY2FzZSBSQURFT05fQ0xFQU5VUF9DUDoKLQkJcmV0dXJuIHJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7Ci0JfQotCi0JcmV0dXJuIC1FSU5WQUw7Ci19Ci0KLWludCByYWRlb25fY3Bfc3RhcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKGRldl9wcml2LT5jcF9ydW5uaW5nKSB7Ci0JCURSTV9ERUJVRygid2hpbGUgQ1AgcnVubmluZ1xuIik7Ci0JCXJldHVybiAwOwotCX0KLQlpZiAoZGV2X3ByaXYtPmNwX21vZGUgPT0gUkFERU9OX0NTUV9QUklESVNfSU5ERElTKSB7Ci0JCURSTV9ERUJVRygiY2FsbGVkIHdpdGggYm9ndXMgQ1AgbW9kZSAoJWQpXG4iLAotCQkJICBkZXZfcHJpdi0+Y3BfbW9kZSk7Ci0JCXJldHVybiAwOwotCX0KLQotCXJhZGVvbl9kb19jcF9zdGFydChkZXZfcHJpdik7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogU3RvcCB0aGUgQ1AuICBUaGUgZW5naW5lIG11c3QgaGF2ZSBiZWVuIGlkbGVkIGJlZm9yZSBjYWxsaW5nIHRoaXMKLSAqIHJvdXRpbmUuCi0gKi8KLWludCByYWRlb25fY3Bfc3RvcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fY3Bfc3RvcF90ICpzdG9wID0gZGF0YTsKLQlpbnQgcmV0OwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoIWRldl9wcml2LT5jcF9ydW5uaW5nKQotCQlyZXR1cm4gMDsKLQotCS8qIEZsdXNoIGFueSBwZW5kaW5nIENQIGNvbW1hbmRzLiAgVGhpcyBlbnN1cmVzIGFueSBvdXRzdGFuZGluZwotCSAqIGNvbW1hbmRzIGFyZSBleGVjdHV0ZWQgYnkgdGhlIGVuZ2luZSBiZWZvcmUgd2UgdHVybiBpdCBvZmYuCi0JICovCi0JaWYgKHN0b3AtPmZsdXNoKSB7Ci0JCXJhZGVvbl9kb19jcF9mbHVzaChkZXZfcHJpdik7Ci0JfQotCi0JLyogSWYgd2UgZmFpbCB0byBtYWtlIHRoZSBlbmdpbmUgZ28gaWRsZSwgd2UgcmV0dXJuIGFuIGVycm9yCi0JICogY29kZSBzbyB0aGF0IHRoZSBEUk0gaW9jdGwgd3JhcHBlciBjYW4gdHJ5IGFnYWluLgotCSAqLwotCWlmIChzdG9wLT5pZGxlKSB7Ci0JCXJldCA9IHJhZGVvbl9kb19jcF9pZGxlKGRldl9wcml2KTsKLQkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7Ci0JfQotCi0JLyogRmluYWxseSwgd2UgY2FuIHR1cm4gb2ZmIHRoZSBDUC4gIElmIHRoZSBlbmdpbmUgaXNuJ3QgaWRsZSwKLQkgKiB3ZSB3aWxsIGdldCBzb21lIGRyb3BwZWQgdHJpYW5nbGVzIGFzIHRoZXkgd29uJ3QgYmUgZnVsbHkKLQkgKiByZW5kZXJlZCBiZWZvcmUgdGhlIENQIGlzIHNodXQgZG93bi4KLQkgKi8KLQlyYWRlb25fZG9fY3Bfc3RvcChkZXZfcHJpdik7Ci0KLQkvKiBSZXNldCB0aGUgZW5naW5lICovCi0JcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgcmFkZW9uX2RvX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaSwgcmV0OwotCi0JaWYgKGRldl9wcml2KSB7Ci0JCWlmIChkZXZfcHJpdi0+Y3BfcnVubmluZykgewotCQkJLyogU3RvcCB0aGUgY3AgKi8KLQkJCXdoaWxlICgocmV0ID0gcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpKSAhPSAwKSB7Ci0JCQkJRFJNX0RFQlVHKCJyYWRlb25fZG9fY3BfaWRsZSAlZFxuIiwgcmV0KTsKLSNpZmRlZiBfX2xpbnV4X18KLQkJCQlzY2hlZHVsZSgpOwotI2Vsc2UKLQkJCQl0c2xlZXAoJnJldCwgUFpFUk8sICJyZG5yZWwiLCAxKTsKLSNlbmRpZgotCQkJfQotCQkJcmFkZW9uX2RvX2NwX3N0b3AoZGV2X3ByaXYpOwotCQkJcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOwotCQl9Ci0KLQkJLyogRGlzYWJsZSAqYWxsKiBpbnRlcnJ1cHRzICovCi0JCWlmIChkZXZfcHJpdi0+bW1pbykJLyogcmVtb3ZlIHRoaXMgYWZ0ZXIgcGVybWFuZW50IGFkZG1hcHMgKi8KLQkJCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9DTlRMLCAwKTsKLQotCQlpZiAoZGV2X3ByaXYtPm1taW8pIHsJLyogcmVtb3ZlIGFsbCBzdXJmYWNlcyAqLwotCQkJZm9yIChpID0gMDsgaSA8IFJBREVPTl9NQVhfU1VSRkFDRVM7IGkrKykgewotCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfSU5GTyArIDE2ICogaSwgMCk7Ci0JCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9MT1dFUl9CT1VORCArCi0JCQkJCSAgICAgMTYgKiBpLCAwKTsKLQkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX1VQUEVSX0JPVU5EICsKLQkJCQkJICAgICAxNiAqIGksIDApOwotCQkJfQotCQl9Ci0KLQkJLyogRnJlZSBtZW1vcnkgaGVhcCBzdHJ1Y3R1cmVzICovCi0JCXJhZGVvbl9tZW1fdGFrZWRvd24oJihkZXZfcHJpdi0+Z2FydF9oZWFwKSk7Ci0JCXJhZGVvbl9tZW1fdGFrZWRvd24oJihkZXZfcHJpdi0+ZmJfaGVhcCkpOwotCi0JCS8qIGRlYWxsb2NhdGUga2VybmVsIHJlc291cmNlcyAqLwotCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOwotCX0KLX0KLQotLyogSnVzdCByZXNldCB0aGUgQ1AgcmluZy4gIENhbGxlZCBhcyBwYXJ0IG9mIGFuIFggU2VydmVyIGVuZ2luZSByZXNldC4KLSAqLwotaW50IHJhZGVvbl9jcF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCURSTV9ERUJVRygiXG4iKTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9ERUJVRygiY2FsbGVkIGJlZm9yZSBpbml0IGRvbmVcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyYWRlb25fZG9fY3BfcmVzZXQoZGV2X3ByaXYpOwotCi0JLyogVGhlIENQIGlzIG5vIGxvbmdlciBydW5uaW5nIGFmdGVyIGFuIGVuZ2luZSByZXNldCAqLwotCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKLQotCXJldHVybiAwOwotfQotCi1pbnQgcmFkZW9uX2NwX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JcmV0dXJuIHJhZGVvbl9kb19jcF9pZGxlKGRldl9wcml2KTsKLX0KLQotLyogQWRkZWQgYnkgQ2hhcmwgUC4gQm90aGEgdG8gY2FsbCByYWRlb25fZG9fcmVzdW1lX2NwKCkuCi0gKi8KLWludCByYWRlb25fY3BfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCi0JcmV0dXJuIHJhZGVvbl9kb19yZXN1bWVfY3AoZGV2KTsKLX0KLQotaW50IHJhZGVvbl9lbmdpbmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCXJldHVybiByYWRlb25fZG9fZW5naW5lX3Jlc2V0KGRldik7Ci19Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEZ1bGxzY3JlZW4gbW9kZQotICovCi0KLS8qIEtXOiBEZXByZWNhdGVkIHRvIHNheSB0aGUgbGVhc3Q6Ci0gKi8KLWludCByYWRlb25fZnVsbHNjcmVlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlyZXR1cm4gMDsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogRnJlZWxpc3QgbWFuYWdlbWVudAotICovCi0KLS8qIE9yaWdpbmFsIGNvbW1lbnQ6IEZJWE1FOiBST1RBVEVfQlVGUyBpcyBhIGhhY2sgdG8gY3ljbGUgdGhyb3VnaAotICogICBidWZzIHVudGlsIGZyZWVsaXN0IGNvZGUgaXMgdXNlZC4gIE5vdGUgdGhpcyBoaWRlcyBhIHByb2JsZW0gd2l0aAotICogICB0aGUgc2NyYXRjaCByZWdpc3RlciAqICh1c2VkIHRvIGtlZXAgdHJhY2sgb2YgbGFzdCBidWZmZXIKLSAqICAgY29tcGxldGVkKSBiZWluZyB3cml0dGVuIHRvIGJlZm9yZSAqIHRoZSBsYXN0IGJ1ZmZlciBoYXMgYWN0dWFsbHkKLSAqICAgY29tcGxldGVkIHJlbmRlcmluZy4KLSAqCi0gKiBLVzogIEl0J3MgYWxzbyBhIGdvb2Qgd2F5IHRvIGZpbmQgZnJlZSBidWZmZXJzIHF1aWNrbHkuCi0gKgotICogS1c6IElkZWFsbHkgdGhpcyBsb29wIHdvdWxkbid0IGV4aXN0LCBhbmQgZnJlZWxpc3RfZ2V0IHdvdWxkbid0Ci0gKiBzbGVlcC4gIEhvd2V2ZXIsIGJ1Z3MgaW4gb2xkZXIgdmVyc2lvbnMgb2YgcmFkZW9uX2FjY2VsLmMgbWVhbiB0aGF0Ci0gKiB3ZSBlc3NlbnRpYWxseSBoYXZlIHRvIGRvIHRoaXMsIGVsc2Ugb2xkIGNsaWVudHMgd2lsbCBicmVhay4KLSAqCi0gKiBIb3dldmVyLCBpdCBkb2VzIGxlYXZlIG9wZW4gYSBwb3RlbnRpYWwgZGVhZGxvY2sgd2hlcmUgYWxsIHRoZQotICogYnVmZmVycyBhcmUgaGVsZCBieSBvdGhlciBjbGllbnRzLCB3aGljaCBjYW4ndCByZWxlYXNlIHRoZW0gYmVjYXVzZQotICogdGhleSBjYW4ndCBnZXQgdGhlIGxvY2suCi0gKi8KLQotc3RydWN0IGRybV9idWYgKnJhZGVvbl9mcmVlbGlzdF9nZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXY7Ci0Jc3RydWN0IGRybV9idWYgKmJ1ZjsKLQlpbnQgaSwgdDsKLQlpbnQgc3RhcnQ7Ci0KLQlpZiAoKytkZXZfcHJpdi0+bGFzdF9idWYgPj0gZG1hLT5idWZfY291bnQpCi0JCWRldl9wcml2LT5sYXN0X2J1ZiA9IDA7Ci0KLQlzdGFydCA9IGRldl9wcml2LT5sYXN0X2J1ZjsKLQotCWZvciAodCA9IDA7IHQgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyB0KyspIHsKLQkJdTMyIGRvbmVfYWdlID0gR0VUX1NDUkFUQ0goMSk7Ci0JCURSTV9ERUJVRygiZG9uZV9hZ2UgPSAlZFxuIiwgZG9uZV9hZ2UpOwotCQlmb3IgKGkgPSBzdGFydDsgaSA8IGRtYS0+YnVmX2NvdW50OyBpKyspIHsKLQkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpXTsKLQkJCWJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKLQkJCWlmIChidWYtPmZpbGVfcHJpdiA9PSBOVUxMIHx8IChidWYtPnBlbmRpbmcgJiYKLQkJCQkJCSAgICAgICBidWZfcHJpdi0+YWdlIDw9Ci0JCQkJCQkgICAgICAgZG9uZV9hZ2UpKSB7Ci0JCQkJZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzKys7Ci0JCQkJYnVmLT5wZW5kaW5nID0gMDsKLQkJCQlyZXR1cm4gYnVmOwotCQkJfQotCQkJc3RhcnQgPSAwOwotCQl9Ci0KLQkJaWYgKHQpIHsKLQkJCURSTV9VREVMQVkoMSk7Ci0JCQlkZXZfcHJpdi0+c3RhdHMuZnJlZWxpc3RfbG9vcHMrKzsKLQkJfQotCX0KLQotCURSTV9ERUJVRygicmV0dXJuaW5nIE5VTEwhXG4iKTsKLQlyZXR1cm4gTlVMTDsKLX0KLQotI2lmIDAKLXN0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2OwotCXN0cnVjdCBkcm1fYnVmICpidWY7Ci0JaW50IGksIHQ7Ci0JaW50IHN0YXJ0OwotCXUzMiBkb25lX2FnZSA9IERSTV9SRUFEMzIoZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoMSkpOwotCi0JaWYgKCsrZGV2X3ByaXYtPmxhc3RfYnVmID49IGRtYS0+YnVmX2NvdW50KQotCQlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOwotCi0Jc3RhcnQgPSBkZXZfcHJpdi0+bGFzdF9idWY7Ci0JZGV2X3ByaXYtPnN0YXRzLmZyZWVsaXN0X2xvb3BzKys7Ci0KLQlmb3IgKHQgPSAwOyB0IDwgMjsgdCsrKSB7Ci0JCWZvciAoaSA9IHN0YXJ0OyBpIDwgZG1hLT5idWZfY291bnQ7IGkrKykgewotCQkJYnVmID0gZG1hLT5idWZsaXN0W2ldOwotCQkJYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOwotCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ID09IDAgfHwgKGJ1Zi0+cGVuZGluZyAmJgotCQkJCQkJICAgIGJ1Zl9wcml2LT5hZ2UgPD0KLQkJCQkJCSAgICBkb25lX2FnZSkpIHsKLQkJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMrKzsKLQkJCQlidWYtPnBlbmRpbmcgPSAwOwotCQkJCXJldHVybiBidWY7Ci0JCQl9Ci0JCX0KLQkJc3RhcnQgPSAwOwotCX0KLQotCXJldHVybiBOVUxMOwotfQotI2VuZGlmCi0KLXZvaWQgcmFkZW9uX2ZyZWVsaXN0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKLQotCWRldl9wcml2LT5sYXN0X2J1ZiA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IGRtYS0+YnVmX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGRybV9idWYgKmJ1ZiA9IGRtYS0+YnVmbGlzdFtpXTsKLQkJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7Ci0JCWJ1Zl9wcml2LT5hZ2UgPSAwOwotCX0KLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogQ1AgY29tbWFuZCBzdWJtaXNzaW9uCi0gKi8KLQotaW50IHJhZGVvbl93YWl0X3JpbmcoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG4pCi17Ci0JZHJtX3JhZGVvbl9yaW5nX2J1ZmZlcl90ICpyaW5nID0gJmRldl9wcml2LT5yaW5nOwotCWludCBpOwotCXUzMiBsYXN0X2hlYWQgPSBHRVRfUklOR19IRUFEKGRldl9wcml2KTsKLQotCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKLQkJdTMyIGhlYWQgPSBHRVRfUklOR19IRUFEKGRldl9wcml2KTsKLQotCQlyaW5nLT5zcGFjZSA9IChoZWFkIC0gcmluZy0+dGFpbCkgKiBzaXplb2YodTMyKTsKLQkJaWYgKHJpbmctPnNwYWNlIDw9IDApCi0JCQlyaW5nLT5zcGFjZSArPSByaW5nLT5zaXplOwotCQlpZiAocmluZy0+c3BhY2UgPiBuKQotCQkJcmV0dXJuIDA7Ci0KLQkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JCWlmIChoZWFkICE9IGxhc3RfaGVhZCkKLQkJCWkgPSAwOwotCQlsYXN0X2hlYWQgPSBoZWFkOwotCi0JCURSTV9VREVMQVkoMSk7Ci0JfQotCi0JLyogRklYTUU6IFRoaXMgcmV0dXJuIHZhbHVlIGlzIGlnbm9yZWQgaW4gdGhlIEJFR0lOX1JJTkcgbWFjcm8hICovCi0jaWYgUkFERU9OX0ZJRk9fREVCVUcKLQlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKLQlEUk1fRVJST1IoImZhaWxlZCFcbiIpOwotI2VuZGlmCi0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfZ2V0X2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkJIHN0cnVjdCBkcm1fZG1hICogZCkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCi0JZm9yIChpID0gZC0+Z3JhbnRlZF9jb3VudDsgaSA8IGQtPnJlcXVlc3RfY291bnQ7IGkrKykgewotCQlidWYgPSByYWRlb25fZnJlZWxpc3RfZ2V0KGRldik7Ci0JCWlmICghYnVmKQotCQkJcmV0dXJuIC1FQlVTWTsJLyogTk9URTogYnJva2VuIGNsaWVudCAqLwotCi0JCWJ1Zi0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OwotCi0JCWlmIChEUk1fQ09QWV9UT19VU0VSKCZkLT5yZXF1ZXN0X2luZGljZXNbaV0sICZidWYtPmlkeCwKLQkJCQkgICAgIHNpemVvZihidWYtPmlkeCkpKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCWlmIChEUk1fQ09QWV9UT19VU0VSKCZkLT5yZXF1ZXN0X3NpemVzW2ldLCAmYnVmLT50b3RhbCwKLQkJCQkgICAgIHNpemVvZihidWYtPnRvdGFsKSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQotCQlkLT5ncmFudGVkX2NvdW50Kys7Ci0JfQotCXJldHVybiAwOwotfQotCi1pbnQgcmFkZW9uX2NwX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlpbnQgcmV0ID0gMDsKLQlzdHJ1Y3QgZHJtX2RtYSAqZCA9IGRhdGE7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JLyogUGxlYXNlIGRvbid0IHNlbmQgdXMgYnVmZmVycy4KLQkgKi8KLQlpZiAoZC0+c2VuZF9jb3VudCAhPSAwKSB7Ci0JCURSTV9FUlJPUigiUHJvY2VzcyAlZCB0cnlpbmcgdG8gc2VuZCAlZCBidWZmZXJzIHZpYSBkcm1ETUFcbiIsCi0JCQkgIERSTV9DVVJSRU5UUElELCBkLT5zZW5kX2NvdW50KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogV2UnbGwgc2VuZCB5b3UgYnVmZmVycy4KLQkgKi8KLQlpZiAoZC0+cmVxdWVzdF9jb3VudCA8IDAgfHwgZC0+cmVxdWVzdF9jb3VudCA+IGRtYS0+YnVmX2NvdW50KSB7Ci0JCURSTV9FUlJPUigiUHJvY2VzcyAlZCB0cnlpbmcgdG8gZ2V0ICVkIGJ1ZmZlcnMgKG9mICVkIG1heClcbiIsCi0JCQkgIERSTV9DVVJSRU5UUElELCBkLT5yZXF1ZXN0X2NvdW50LCBkbWEtPmJ1Zl9jb3VudCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWQtPmdyYW50ZWRfY291bnQgPSAwOwotCi0JaWYgKGQtPnJlcXVlc3RfY291bnQpIHsKLQkJcmV0ID0gcmFkZW9uX2NwX2dldF9idWZmZXJzKGRldiwgZmlsZV9wcml2LCBkKTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1pbnQgcmFkZW9uX2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2OwotCWludCByZXQgPSAwOwotCi0JZGV2X3ByaXYgPSBkcm1fYWxsb2Moc2l6ZW9mKGRybV9yYWRlb25fcHJpdmF0ZV90KSwgRFJNX01FTV9EUklWRVIpOwotCWlmIChkZXZfcHJpdiA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQotCW1lbXNldChkZXZfcHJpdiwgMCwgc2l6ZW9mKGRybV9yYWRlb25fcHJpdmF0ZV90KSk7Ci0JZGV2LT5kZXZfcHJpdmF0ZSA9ICh2b2lkICopZGV2X3ByaXY7Ci0JZGV2X3ByaXYtPmZsYWdzID0gZmxhZ3M7Ci0KLQlzd2l0Y2ggKGZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSB7Ci0JY2FzZSBDSElQX1IxMDA6Ci0JY2FzZSBDSElQX1JWMjAwOgotCWNhc2UgQ0hJUF9SMjAwOgotCWNhc2UgQ0hJUF9SMzAwOgotCWNhc2UgQ0hJUF9SMzUwOgotCWNhc2UgQ0hJUF9SNDIwOgotCWNhc2UgQ0hJUF9SVjQxMDoKLQljYXNlIENISVBfUlY1MTU6Ci0JY2FzZSBDSElQX1I1MjA6Ci0JY2FzZSBDSElQX1JWNTcwOgotCWNhc2UgQ0hJUF9SNTgwOgotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0hBU19ISUVSWjsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJLyogYWxsIG90aGVyIGNoaXBzIGhhdmUgbm8gaGllcmFyY2hpY2FsIHogYnVmZmVyICovCi0JCWJyZWFrOwotCX0KLQotCWlmIChkcm1fZGV2aWNlX2lzX2FncChkZXYpKQotCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX0FHUDsKLQllbHNlIGlmIChkcm1fZGV2aWNlX2lzX3BjaWUoZGV2KSkKLQkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19QQ0lFOwotCWVsc2UKLQkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19QQ0k7Ci0KLQlEUk1fREVCVUcoIiVzIGNhcmQgZGV0ZWN0ZWRcbiIsCi0JCSAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSA/ICJBR1AiIDogKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpID8gIlBDSUUiIDogIlBDSSIpKSkpOwotCXJldHVybiByZXQ7Ci19Ci0KLS8qIENyZWF0ZSBtYXBwaW5ncyBmb3IgcmVnaXN0ZXJzIGFuZCBmcmFtZWJ1ZmZlciBzbyB1c2VybGFuZCBkb2Vzbid0IG5lY2Vzc2FyaWx5Ci0gKiBoYXZlIHRvIGZpbmQgdGhlbS4KLSAqLwotaW50IHJhZGVvbl9kcml2ZXJfZmlyc3RvcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0JaW50IHJldDsKLQlkcm1fbG9jYWxfbWFwX3QgKm1hcDsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplID0gUkFERU9OX1BDSUdBUlRfVEFCTEVfU0laRTsKLQotCXJldCA9IGRybV9hZGRtYXAoZGV2LCBkcm1fZ2V0X3Jlc291cmNlX3N0YXJ0KGRldiwgMiksCi0JCQkgZHJtX2dldF9yZXNvdXJjZV9sZW4oZGV2LCAyKSwgX0RSTV9SRUdJU1RFUlMsCi0JCQkgX0RSTV9SRUFEX09OTFksICZkZXZfcHJpdi0+bW1pbyk7Ci0JaWYgKHJldCAhPSAwKQotCQlyZXR1cm4gcmV0OwotCi0JZGV2X3ByaXYtPmZiX2FwZXJfb2Zmc2V0ID0gZHJtX2dldF9yZXNvdXJjZV9zdGFydChkZXYsIDApOwotCXJldCA9IGRybV9hZGRtYXAoZGV2LCBkZXZfcHJpdi0+ZmJfYXBlcl9vZmZzZXQsCi0JCQkgZHJtX2dldF9yZXNvdXJjZV9sZW4oZGV2LCAwKSwgX0RSTV9GUkFNRV9CVUZGRVIsCi0JCQkgX0RSTV9XUklURV9DT01CSU5JTkcsICZtYXApOwotCWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuIHJldDsKLQotCXJldHVybiAwOwotfQotCi1pbnQgcmFkZW9uX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCWRybV9mcmVlKGRldl9wcml2LCBzaXplb2YoKmRldl9wcml2KSwgRFJNX01FTV9EUklWRVIpOwotCi0JZGV2LT5kZXZfcHJpdmF0ZSA9IE5VTEw7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9kcm0uaCBiL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2RybS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWI4MmUxLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2RybS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzQxICswLDAgQEAKLS8qIHJhZGVvbl9kcm0uaCAtLSBQdWJsaWMgaGVhZGVyIGZvciB0aGUgcmFkZW9uIGRyaXZlciAtKi0gbGludXgtYyAtKi0KLSAqCi0gKiBDb3B5cmlnaHQgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCi0gKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgotICogQ29weXJpZ2h0IDIwMDIgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgotICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgotICogICAgS2VpdGggV2hpdHdlbGwgPGtlaXRoQHR1bmdzdGVuZ3JhcGhpY3MuY29tPgotICovCi0KLSNpZm5kZWYgX19SQURFT05fRFJNX0hfXwotI2RlZmluZSBfX1JBREVPTl9EUk1fSF9fCi0KLS8qIFdBUk5JTkc6IElmIHlvdSBjaGFuZ2UgYW55IG9mIHRoZXNlIGRlZmluZXMsIG1ha2Ugc3VyZSB0byBjaGFuZ2UgdGhlCi0gKiBkZWZpbmVzIGluIHRoZSBYIHNlcnZlciBmaWxlIChyYWRlb25fc2FyZWEuaCkKLSAqLwotI2lmbmRlZiBfX1JBREVPTl9TQVJFQV9ERUZJTkVTX18KLSNkZWZpbmUgX19SQURFT05fU0FSRUFfREVGSU5FU19fCi0KLS8qIE9sZCBzdHlsZSBzdGF0ZSBmbGFncywgcmVxdWlyZWQgZm9yIHNhcmVhIGludGVyZmFjZSAoMS4xIGFuZCAxLjIKLSAqIGNsZWFycykgYW5kIDEuMiBkcm1fdmVydGV4MiBpb2N0bC4KLSAqLwotI2RlZmluZSBSQURFT05fVVBMT0FEX0NPTlRFWFQJCTB4MDAwMDAwMDEKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9WRVJURk1UCQkweDAwMDAwMDAyCi0jZGVmaW5lIFJBREVPTl9VUExPQURfTElORQkJMHgwMDAwMDAwNAotI2RlZmluZSBSQURFT05fVVBMT0FEX0JVTVBNQVAJCTB4MDAwMDAwMDgKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9NQVNLUwkJMHgwMDAwMDAxMAotI2RlZmluZSBSQURFT05fVVBMT0FEX1ZJRVdQT1JUCQkweDAwMDAwMDIwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfU0VUVVAJCTB4MDAwMDAwNDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9UQ0wJCTB4MDAwMDAwODAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9NSVNDCQkweDAwMDAwMTAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMAkJMHgwMDAwMDIwMAotI2RlZmluZSBSQURFT05fVVBMT0FEX1RFWDEJCTB4MDAwMDA0MDAKLSNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgyCQkweDAwMDAwODAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMElNQUdFUwkweDAwMDAxMDAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMUlNQUdFUwkweDAwMDAyMDAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMklNQUdFUwkweDAwMDA0MDAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfQ0xJUFJFQ1RTCQkweDAwMDA4MDAwCS8qIGhhbmRsZWQgY2xpZW50LXNpZGUgKi8KLSNkZWZpbmUgUkFERU9OX1JFUVVJUkVfUVVJRVNDRU5DRQkweDAwMDEwMDAwCi0jZGVmaW5lIFJBREVPTl9VUExPQURfWkJJQVMJCTB4MDAwMjAwMDAJLyogdmVyc2lvbiAxLjIgYW5kIG5ld2VyICovCi0jZGVmaW5lIFJBREVPTl9VUExPQURfQUxMCQkweDAwM2VmZmZmCi0jZGVmaW5lIFJBREVPTl9VUExPQURfQ09OVEVYVF9BTEwgICAgICAgMHgwMDNlMDFmZgotCi0vKiBOZXcgc3R5bGUgcGVyLXBhY2tldCBpZGVudGlmaWVycyBmb3IgdXNlIGluIGNtZF9idWZmZXIgaW9jdGwgd2l0aAotICogdGhlIFJBREVPTl9FTUlUX1BBQ0tFVCBjb21tYW5kLiAgQ29tbWVudHMgcmVsYXRlIG5ldyBwYWNrZXRzIHRvIG9sZAotICogc3RhdGUgYml0cyBhbmQgdGhlIHBhY2tldCBzaXplOgotICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgMAkvKiBjb250ZXh0LzcgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAxCS8qIGNvbnRleHQvMyAqLwotI2RlZmluZSBSQURFT05fRU1JVF9SQjNEX0NPTE9SUElUQ0ggICAgICAgICAgICAgICAgIDIJLyogY29udGV4dC8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1JFX0xJTkVfUEFUVEVSTiAgICAgICAgICAgICAgICAgMwkvKiBsaW5lLzIgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfU0VfTElORV9XSURUSCAgICAgICAgICAgICAgICAgICA0CS8qIGxpbmUvMSAqLwotI2RlZmluZSBSQURFT05fRU1JVF9QUF9MVU1fTUFUUklYICAgICAgICAgICAgICAgICAgIDUJLyogYnVtcG1hcC8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1JPVF9NQVRSSVhfMCAgICAgICAgICAgICAgICAgNgkvKiBidW1wbWFwLzIgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfUkIzRF9TVEVOQ0lMUkVGTUFTSyAgICAgICAgICAgICA3CS8qIG1hc2tzLzMgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfU0VfVlBPUlRfWFNDQUxFICAgICAgICAgICAgICAgICA4CS8qIHZpZXdwb3J0LzYgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfU0VfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICA5CS8qIHNldHVwLzIgKi8KLSNkZWZpbmUgUkFERU9OX0VNSVRfU0VfQ05UTF9TVEFUVVMgICAgICAgICAgICAgICAgICAxMAkvKiBzZXR1cC8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1JFX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgMTEJLyogbWlzYy8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgICAgMTIJLyogdGV4MC82ICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8wICAgICAgICAgICAgICAgMTMJLyogdGV4MC8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzEgICAgICAgICAgICAgICAgICAgMTQJLyogdGV4MS82ICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8xICAgICAgICAgICAgICAgMTUJLyogdGV4MS8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzIgICAgICAgICAgICAgICAgICAgMTYJLyogdGV4Mi82ICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8yICAgICAgICAgICAgICAgMTcJLyogdGV4Mi8xICovCi0jZGVmaW5lIFJBREVPTl9FTUlUX1NFX1pCSUFTX0ZBQ1RPUiAgICAgICAgICAgICAgICAgMTgJLyogemJpYXMvMiAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQgICAgICAgICAgIDE5CS8qIHRjbC8xMSAqLwotI2RlZmluZSBSQURFT05fRU1JVF9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCAgIDIwCS8qIG1hdGVyaWFsLzE3ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8wICAgICAgICAgICAgICAgICAgICAgMjEJLyogdGV4MC80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8xICAgICAgICAgICAgICAgICAgICAgMjIJLyogdGV4MS80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8yICAgICAgICAgICAgICAgICAgICAgMjMJLyogdGV4Mi80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8zICAgICAgICAgICAgICAgICAgICAgMjQJLyogdGV4My80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF80ICAgICAgICAgICAgICAgICAgICAgMjUJLyogdGV4NC80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF81ICAgICAgICAgICAgICAgICAgICAgMjYJLyogdGV4NS80ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF82ICAgICAgICAgICAgICAgICAgICAgMjcJLyogLzQgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzcgICAgICAgICAgICAgICAgICAgICAyOAkvKiAvNCAqLwotI2RlZmluZSBSMjAwX0VNSVRfVENMX0xJR0hUX01PREVMX0NUTF8wICAgICAgICAgICAgIDI5CS8qIHRjbC83ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9URkFDVE9SXzAgICAgICAgICAgICAgICAgICAgICAgICAgMzAJLyogdGYvNyAqLwotI2RlZmluZSBSMjAwX0VNSVRfVlRYX0ZNVF8wICAgICAgICAgICAgICAgICAgICAgICAgIDMxCS8qIHZ0eC81ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9WQVBfQ1RMICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIJLyogdmFwLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX01BVFJJWF9TRUxFQ1RfMCAgICAgICAgICAgICAgICAgICAzMwkvKiBtc2wvNSAqLwotI2RlZmluZSBSMjAwX0VNSVRfVEVYX1BST0NfQ1RMXzIgICAgICAgICAgICAgICAgICAgIDM0CS8qIHRjZy81ICovCi0jZGVmaW5lIFIyMDBfRU1JVF9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMICAgICAgICAgICAgMzUJLyogdGNsLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgICAgICAzNgkvKiB0ZXgwLzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzEgICAgICAgICAgICAgICAgICAgICAzNwkvKiB0ZXgxLzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzIgICAgICAgICAgICAgICAgICAgICAzOAkvKiB0ZXgyLzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzMgICAgICAgICAgICAgICAgICAgICAzOQkvKiB0ZXgzLzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzQgICAgICAgICAgICAgICAgICAgICA0MAkvKiB0ZXg0LzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzUgICAgICAgICAgICAgICAgICAgICA0MQkvKiB0ZXg1LzYgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgICA0MgkvKiB0ZXgwLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICA0MwkvKiB0ZXgxLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzIgICAgICAgICAgICAgICAgICAgICA0NAkvKiB0ZXgyLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzMgICAgICAgICAgICAgICAgICAgICA0NQkvKiB0ZXgzLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzQgICAgICAgICAgICAgICAgICAgICA0NgkvKiB0ZXg0LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzUgICAgICAgICAgICAgICAgICAgICA0NwkvKiB0ZXg1LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICA0OAkvKiB2dGUvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfT1VUUFVUX1ZUWF9DT01QX1NFTCAgICAgICAgICAgICAgIDQ5CS8qIHZ0eC8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UQU1fREVCVUczICAgICAgICAgICAgICAgICAgICAgNTAJLyogdGFtLzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NOVExfWCAgICAgICAgICAgICAgICAgICAgICAgICA1MQkvKiBjc3QvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfUkIzRF9ERVBUSFhZX09GRlNFVCAgICAgICAgICAgICAgIDUyCS8qIGNzdC8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9SRV9BVVhfU0NJU1NPUl9DTlRMICAgICAgICAgICAgICAgNTMJLyogY3N0LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMCAgICAgICAgICAgICAgICAgICA1NAkvKiBjc3QvMiAqLwotI2RlZmluZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8xICAgICAgICAgICAgICAgICAgIDU1CS8qIGNzdC8yICovCi0jZGVmaW5lIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzIgICAgICAgICAgICAgICAgICAgNTYJLyogY3N0LzIgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1NFX1ZBUF9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgICA1NwkvKiBjc3QvMSAqLwotI2RlZmluZSBSMjAwX0VNSVRfU0VfVlRYX1NUQVRFX0NOVEwgICAgICAgICAgICAgICAgIDU4CS8qIGNzdC8xICovCi0jZGVmaW5lIFIyMDBfRU1JVF9SRV9QT0lOVFNJWkUgICAgICAgICAgICAgICAgICAgICAgNTkJLyogY3N0LzEgKi8KLSNkZWZpbmUgUjIwMF9FTUlUX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCAgICAgICA2MAkvKiBjc3QvNCAqLwotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAgICAgIDYxCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzAgICAgICAgICAgICAgICAgNjIKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgICAgICA2MwotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18xICAgICAgICAgICAgICAgIDY0Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgICAgICAgNjUKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMiAgICAgICAgICAgICAgICA2NgotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMyAgICAgICAgICAgICAgICAgIDY3Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzMgICAgICAgICAgICAgICAgNjgKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzQgICAgICAgICAgICAgICAgICA2OQotI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU180ICAgICAgICAgICAgICAgIDcwCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU181ICAgICAgICAgICAgICAgICAgNzEKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfNSAgICAgICAgICAgICAgICA3MgotI2RlZmluZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8wICAgICAgICAgICAgICAgICAgIDczCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzEgICAgICAgICAgICAgICAgICAgNzQKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMiAgICAgICAgICAgICAgICAgICA3NQotI2RlZmluZSBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SICAgICAgICAgICAgICAgICAgIDc2Ci0jZGVmaW5lIFIyMDBfRU1JVF9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgICAgICAgICAgICAgNzcKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAgICA3OAotI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QwICAgICAgICAgICAgIDc5Ci0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgICAgODAKLSNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMSAgICAgICAgICAgICA4MQotI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgICAgIDgyCi0jZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDIgICAgICAgICAgICAgODMKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RSSV9QRVJGX0NOVEwgICAgICAgICAgICAgICAgICA4NAotI2RlZmluZSBSMjAwX0VNSVRfUFBfQUZTXzAgICAgICAgICAgICAgICAgICAgICAgICAgIDg1Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9BRlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgODYKLSNkZWZpbmUgUjIwMF9FTUlUX0FURl9URkFDVE9SICAgICAgICAgICAgICAgICAgICAgICA4NwotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMCAgICAgICAgICAgICAgICAgICAgIDg4Ci0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8xICAgICAgICAgICAgICAgICAgICAgODkKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzIgICAgICAgICAgICAgICAgICAgICA5MAotI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMyAgICAgICAgICAgICAgICAgICAgIDkxCi0jZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF80ICAgICAgICAgICAgICAgICAgICAgOTIKLSNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzUgICAgICAgICAgICAgICAgICAgICA5MwotI2RlZmluZSBSMjAwX0VNSVRfVkFQX1BWU19DTlRMICAgICAgICAgICAgICAgICAgICAgIDk0Ci0jZGVmaW5lIFJBREVPTl9NQVhfU1RBVEVfUEFDS0VUUyAgICAgICAgICAgICAgICAgICAgOTUKLQotLyogQ29tbWFuZHMgdW5kZXJzdG9vZCBieSBjbWRfYnVmZmVyIGlvY3RsLiAgTW9yZSBjYW4gYmUgYWRkZWQgYnV0Ci0gKiBvYnZpb3VzbHkgdGhlc2UgY2FuJ3QgYmUgcmVtb3ZlZCBvciBjaGFuZ2VkOgotICovCi0jZGVmaW5lIFJBREVPTl9DTURfUEFDS0VUICAgICAgMQkvKiBlbWl0IG9uZSBvZiB0aGUgcmVnaXN0ZXIgcGFja2V0cyBhYm92ZSAqLwotI2RlZmluZSBSQURFT05fQ01EX1NDQUxBUlMgICAgIDIJLyogZW1pdCBzY2FsYXIgZGF0YSAqLwotI2RlZmluZSBSQURFT05fQ01EX1ZFQ1RPUlMgICAgIDMJLyogZW1pdCB2ZWN0b3IgZGF0YSAqLwotI2RlZmluZSBSQURFT05fQ01EX0RNQV9ESVNDQVJEIDQJLyogZGlzY2FyZCBjdXJyZW50IGRtYSBidWYgKi8KLSNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQzICAgICA1CS8qIGVtaXQgaHcgcGFja2V0ICovCi0jZGVmaW5lIFJBREVPTl9DTURfUEFDS0VUM19DTElQIDYJLyogZW1pdCBodyBwYWNrZXQgd3JhcHBlZCBpbiBjbGlwcmVjdHMgKi8KLSNkZWZpbmUgUkFERU9OX0NNRF9TQ0FMQVJTMiAgICAgNwkvKiByMjAwIHN0b3BnYXAgKi8KLSNkZWZpbmUgUkFERU9OX0NNRF9XQUlUICAgICAgICAgOAkvKiBlbWl0IGh3IHdhaXQgY29tbWFuZHMgLS0gbm90ZToKLQkJCQkJICogIGRvZXNuJ3QgbWFrZSB0aGUgY3B1IHdhaXQsIGp1c3QKLQkJCQkJICogIHRoZSBncmFwaGljcyBoYXJkd2FyZSAqLwotI2RlZmluZSBSQURFT05fQ01EX1ZFQ0xJTkVBUgk5ICAgICAgIC8qIGFub3RoZXIgcjIwMCBzdG9wZ2FwICovCi0KLXR5cGVkZWYgdW5pb24gewotCWludCBpOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhZDAsIHBhZDEsIHBhZDI7Ci0JfSBoZWFkZXI7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFja2V0X2lkLCBwYWQwLCBwYWQxOwotCX0gcGFja2V0OwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIG9mZnNldCwgc3RyaWRlLCBjb3VudDsKLQl9IHNjYWxhcnM7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgb2Zmc2V0LCBzdHJpZGUsIGNvdW50OwotCX0gdmVjdG9yczsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBhZGRyX2xvLCBhZGRyX2hpLCBjb3VudDsKLQl9IHZlY2xpbmVhcjsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBidWZfaWR4LCBwYWQwLCBwYWQxOwotCX0gZG1hOwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGZsYWdzLCBwYWQwLCBwYWQxOwotCX0gd2FpdDsKLX0gZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3Q7Ci0KLSNkZWZpbmUgUkFERU9OX1dBSVRfMkQgIDB4MQotI2RlZmluZSBSQURFT05fV0FJVF8zRCAgMHgyCi0KLS8qIEFsbG93ZWQgcGFyYW1ldGVycyBmb3IgUjMwMF9DTURfUEFDS0VUMwotICovCi0jZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVIJCTAKLSNkZWZpbmUgUjMwMF9DTURfUEFDS0VUM19SQVcJCTEKLQotLyogQ29tbWFuZHMgdW5kZXJzdG9vZCBieSBjbWRfYnVmZmVyIGlvY3RsIGZvciBSMzAwLgotICogVGhlIGludGVyZmFjZSBoYXMgbm90IGJlZW4gc3RhYmlsaXplZCwgc28gc29tZSBvZiB0aGVzZSBtYXkgYmUgcmVtb3ZlZAotICogYW5kIGV2ZW50dWFsbHkgcmVvcmRlcmVkIGJlZm9yZSBzdGFiaWxpemF0aW9uLgotICovCi0jZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDAJCTEKLSNkZWZpbmUgUjMwMF9DTURfVlBVCQkJMgkvKiBlbWl0IHZlcnRleCBwcm9ncmFtIHVwbG9hZCAqLwotI2RlZmluZSBSMzAwX0NNRF9QQUNLRVQzCQkzCS8qIGVtaXQgYSBwYWNrZXQzICovCi0jZGVmaW5lIFIzMDBfQ01EX0VORDNECQkJNAkvKiBlbWl0IHNlcXVlbmNlIGVuZGluZyAzZCByZW5kZXJpbmcgKi8KLSNkZWZpbmUgUjMwMF9DTURfQ1BfREVMQVkJCTUKLSNkZWZpbmUgUjMwMF9DTURfRE1BX0RJU0NBUkQJCTYKLSNkZWZpbmUgUjMwMF9DTURfV0FJVAkJCTcKLSMJZGVmaW5lIFIzMDBfV0FJVF8yRAkJMHgxCi0jCWRlZmluZSBSMzAwX1dBSVRfM0QJCTB4MgotLyogdGhlc2UgdHdvIGRlZmluZXMgYXJlIERPSU5HIElUIFdST05HIC0gaG93ZXZlcgotICogd2UgaGF2ZSB1c2Vyc3BhY2Ugd2hpY2ggcmVsaWVzIG9uIHVzaW5nIHRoZXNlLgotICogVGhlIHdhaXQgaW50ZXJmYWNlIGlzIGJhY2t3YXJkcyBjb21wYXQgbmV3IAotICogY29kZSBzaG91bGQgdXNlIHRoZSBORVdfV0FJVCBkZWZpbmVzIGJlbG93Ci0gKiBUSEVTRSBBUkUgTk9UIEJJVCBGSUVMRFMKLSAqLwotIwlkZWZpbmUgUjMwMF9XQUlUXzJEX0NMRUFOCTB4MwotIwlkZWZpbmUgUjMwMF9XQUlUXzNEX0NMRUFOCTB4NAotCi0jCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzNECTB4MwotIwlkZWZpbmUgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTgkweDQKLSMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfM0RfM0RfQ0xFQU4JMHg2Ci0jCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOXzNEXzNEX0NMRUFOCTB4OAotCi0jZGVmaW5lIFIzMDBfQ01EX1NDUkFUQ0gJCTgKLQotdHlwZWRlZiB1bmlvbiB7Ci0JdW5zaWduZWQgaW50IHU7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFkMCwgcGFkMSwgcGFkMjsKLQl9IGhlYWRlcjsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBjb3VudCwgcmVnbG8sIHJlZ2hpOwotCX0gcGFja2V0MDsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBjb3VudCwgYWRybG8sIGFkcmhpOwotCX0gdnB1OwotCXN0cnVjdCB7Ci0JCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhY2tldCwgcGFkMCwgcGFkMTsKLQl9IHBhY2tldDM7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFja2V0OwotCQl1bnNpZ25lZCBzaG9ydCBjb3VudDsJLyogYW1vdW50IG9mIHBhY2tldDIgdG8gZW1pdCAqLwotCX0gZGVsYXk7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgYnVmX2lkeCwgcGFkMCwgcGFkMTsKLQl9IGRtYTsKLQlzdHJ1Y3QgewotCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBmbGFncywgcGFkMCwgcGFkMTsKLQl9IHdhaXQ7Ci0Jc3RydWN0IHsKLQkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcmVnLCBuX2J1ZnMsIGZsYWdzOwotCX0gc2NyYXRjaDsKLX0gZHJtX3IzMDBfY21kX2hlYWRlcl90OwotCi0jZGVmaW5lIFJBREVPTl9GUk9OVAkJCTB4MQotI2RlZmluZSBSQURFT05fQkFDSwkJCTB4MgotI2RlZmluZSBSQURFT05fREVQVEgJCQkweDQKLSNkZWZpbmUgUkFERU9OX1NURU5DSUwJCQkweDgKLSNkZWZpbmUgUkFERU9OX0NMRUFSX0ZBU1RaCQkweDgwMDAwMDAwCi0jZGVmaW5lIFJBREVPTl9VU0VfSElFUloJCTB4NDAwMDAwMDAKLSNkZWZpbmUgUkFERU9OX1VTRV9DT01QX1pCVUYJCTB4MjAwMDAwMDAKLQotLyogUHJpbWl0aXZlIHR5cGVzCi0gKi8KLSNkZWZpbmUgUkFERU9OX1BPSU5UUwkJCTB4MQotI2RlZmluZSBSQURFT05fTElORVMJCQkweDIKLSNkZWZpbmUgUkFERU9OX0xJTkVfU1RSSVAJCTB4MwotI2RlZmluZSBSQURFT05fVFJJQU5HTEVTCQkweDQKLSNkZWZpbmUgUkFERU9OX1RSSUFOR0xFX0ZBTgkJMHg1Ci0jZGVmaW5lIFJBREVPTl9UUklBTkdMRV9TVFJJUAkJMHg2Ci0KLS8qIFZlcnRleC9pbmRpcmVjdCBidWZmZXIgc2l6ZQotICovCi0jZGVmaW5lIFJBREVPTl9CVUZGRVJfU0laRQkJNjU1MzYKLQotLyogQnl0ZSBvZmZzZXRzIGZvciBpbmRpcmVjdCBidWZmZXIgZGF0YQotICovCi0jZGVmaW5lIFJBREVPTl9JTkRFWF9QUklNX09GRlNFVAkyMAotCi0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQJMzIKLQotI2RlZmluZSBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTCTEyCi0KLS8qIFRoZXJlIGFyZSAyIGhlYXBzIChsb2NhbC9HQVJUKS4gIEVhY2ggcmVnaW9uIHdpdGhpbiBhIGhlYXAgaXMgYQotICogbWluaW11bSBvZiA2NGssIGFuZCB0aGVyZSBhcmUgYXQgbW9zdCA2NCBvZiB0aGVtIHBlciBoZWFwLgotICovCi0jZGVmaW5lIFJBREVPTl9MT0NBTF9URVhfSEVBUAkJMAotI2RlZmluZSBSQURFT05fR0FSVF9URVhfSEVBUAkJMQotI2RlZmluZSBSQURFT05fTlJfVEVYX0hFQVBTCQkyCi0jZGVmaW5lIFJBREVPTl9OUl9URVhfUkVHSU9OUwkJNjQKLSNkZWZpbmUgUkFERU9OX0xPR19URVhfR1JBTlVMQVJJVFkJMTYKLQotI2RlZmluZSBSQURFT05fTUFYX1RFWFRVUkVfTEVWRUxTCTEyCi0jZGVmaW5lIFJBREVPTl9NQVhfVEVYVFVSRV9VTklUUwkzCi0KLSNkZWZpbmUgUkFERU9OX01BWF9TVVJGQUNFUwkJOAotCi0vKiBCbGl0cyBoYXZlIHN0cmljdCBvZmZzZXQgcnVsZXMuICBBbGwgYmxpdCBvZmZzZXQgbXVzdCBiZSBhbGlnbmVkIG9uCi0gKiBhIDFLLWJ5dGUgYm91bmRhcnkuCi0gKi8KLSNkZWZpbmUgUkFERU9OX09GRlNFVF9TSElGVCAgICAgICAgICAgICAxMAotI2RlZmluZSBSQURFT05fT0ZGU0VUX0FMSUdOICAgICAgICAgICAgICgxIDw8IFJBREVPTl9PRkZTRVRfU0hJRlQpCi0jZGVmaW5lIFJBREVPTl9PRkZTRVRfTUFTSyAgICAgICAgICAgICAgKFJBREVPTl9PRkZTRVRfQUxJR04gLSAxKQotCi0jZW5kaWYJCQkJLyogX19SQURFT05fU0FSRUFfREVGSU5FU19fICovCi0KLXR5cGVkZWYgc3RydWN0IHsKLQl1bnNpZ25lZCBpbnQgcmVkOwotCXVuc2lnbmVkIGludCBncmVlbjsKLQl1bnNpZ25lZCBpbnQgYmx1ZTsKLQl1bnNpZ25lZCBpbnQgYWxwaGE7Ci19IHJhZGVvbl9jb2xvcl9yZWdzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IHsKLQkvKiBDb250ZXh0IHN0YXRlICovCi0JdW5zaWduZWQgaW50IHBwX21pc2M7CS8qIDB4MWMxNCAqLwotCXVuc2lnbmVkIGludCBwcF9mb2dfY29sb3I7Ci0JdW5zaWduZWQgaW50IHJlX3NvbGlkX2NvbG9yOwotCXVuc2lnbmVkIGludCByYjNkX2JsZW5kY250bDsKLQl1bnNpZ25lZCBpbnQgcmIzZF9kZXB0aG9mZnNldDsKLQl1bnNpZ25lZCBpbnQgcmIzZF9kZXB0aHBpdGNoOwotCXVuc2lnbmVkIGludCByYjNkX3pzdGVuY2lsY250bDsKLQotCXVuc2lnbmVkIGludCBwcF9jbnRsOwkvKiAweDFjMzggKi8KLQl1bnNpZ25lZCBpbnQgcmIzZF9jbnRsOwotCXVuc2lnbmVkIGludCByYjNkX2NvbG9yb2Zmc2V0OwotCXVuc2lnbmVkIGludCByZV93aWR0aF9oZWlnaHQ7Ci0JdW5zaWduZWQgaW50IHJiM2RfY29sb3JwaXRjaDsKLQl1bnNpZ25lZCBpbnQgc2VfY250bDsKLQotCS8qIFZlcnRleCBmb3JtYXQgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgc2VfY29vcmRfZm10OwkvKiAweDFjNTAgKi8KLQotCS8qIExpbmUgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgcmVfbGluZV9wYXR0ZXJuOwkvKiAweDFjZDAgKi8KLQl1bnNpZ25lZCBpbnQgcmVfbGluZV9zdGF0ZTsKLQotCXVuc2lnbmVkIGludCBzZV9saW5lX3dpZHRoOwkvKiAweDFkYjggKi8KLQotCS8qIEJ1bXBtYXAgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgcHBfbHVtX21hdHJpeDsJLyogMHgxZDAwICovCi0KLQl1bnNpZ25lZCBpbnQgcHBfcm90X21hdHJpeF8wOwkvKiAweDFkNTggKi8KLQl1bnNpZ25lZCBpbnQgcHBfcm90X21hdHJpeF8xOwotCi0JLyogTWFzayBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCByYjNkX3N0ZW5jaWxyZWZtYXNrOwkvKiAweDFkN2MgKi8KLQl1bnNpZ25lZCBpbnQgcmIzZF9yb3BjbnRsOwotCXVuc2lnbmVkIGludCByYjNkX3BsYW5lbWFzazsKLQotCS8qIFZpZXdwb3J0IHN0YXRlICovCi0JdW5zaWduZWQgaW50IHNlX3Zwb3J0X3hzY2FsZTsJLyogMHgxZDk4ICovCi0JdW5zaWduZWQgaW50IHNlX3Zwb3J0X3hvZmZzZXQ7Ci0JdW5zaWduZWQgaW50IHNlX3Zwb3J0X3lzY2FsZTsKLQl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfeW9mZnNldDsKLQl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfenNjYWxlOwotCXVuc2lnbmVkIGludCBzZV92cG9ydF96b2Zmc2V0OwotCi0JLyogU2V0dXAgc3RhdGUgKi8KLQl1bnNpZ25lZCBpbnQgc2VfY250bF9zdGF0dXM7CS8qIDB4MjE0MCAqLwotCi0JLyogTWlzYyBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCByZV90b3BfbGVmdDsJLyogMHgyNmMwICovCi0JdW5zaWduZWQgaW50IHJlX21pc2M7Ci19IGRybV9yYWRlb25fY29udGV4dF9yZWdzX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IHsKLQkvKiBaYmlhcyBzdGF0ZSAqLwotCXVuc2lnbmVkIGludCBzZV96Ymlhc19mYWN0b3I7CS8qIDB4MWRhYyAqLwotCXVuc2lnbmVkIGludCBzZV96Ymlhc19jb25zdGFudDsKLX0gZHJtX3JhZGVvbl9jb250ZXh0Ml9yZWdzX3Q7Ci0KLS8qIFNldHVwIHJlZ2lzdGVycyBmb3IgZWFjaCB0ZXh0dXJlIHVuaXQKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgewotCXVuc2lnbmVkIGludCBwcF90eGZpbHRlcjsKLQl1bnNpZ25lZCBpbnQgcHBfdHhmb3JtYXQ7Ci0JdW5zaWduZWQgaW50IHBwX3R4b2Zmc2V0OwotCXVuc2lnbmVkIGludCBwcF90eGNibGVuZDsKLQl1bnNpZ25lZCBpbnQgcHBfdHhhYmxlbmQ7Ci0JdW5zaWduZWQgaW50IHBwX3RmYWN0b3I7Ci0JdW5zaWduZWQgaW50IHBwX2JvcmRlcl9jb2xvcjsKLX0gZHJtX3JhZGVvbl90ZXh0dXJlX3JlZ3NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgewotCXVuc2lnbmVkIGludCBzdGFydDsKLQl1bnNpZ25lZCBpbnQgZmluaXNoOwotCXVuc2lnbmVkIGludCBwcmltOjg7Ci0JdW5zaWduZWQgaW50IHN0YXRlaWR4Ojg7Ci0JdW5zaWduZWQgaW50IG51bXZlcnRzOjE2OwkvKiBvdmVybG9hZGVkIGFzIG9mZnNldC82NCBmb3IgZWx0IHByaW1zICovCi0JdW5zaWduZWQgaW50IHZjX2Zvcm1hdDsJLyogdmVydGV4IGZvcm1hdCAqLwotfSBkcm1fcmFkZW9uX3ByaW1fdDsKLQotdHlwZWRlZiBzdHJ1Y3QgewotCWRybV9yYWRlb25fY29udGV4dF9yZWdzX3QgY29udGV4dDsKLQlkcm1fcmFkZW9uX3RleHR1cmVfcmVnc190IHRleFtSQURFT05fTUFYX1RFWFRVUkVfVU5JVFNdOwotCWRybV9yYWRlb25fY29udGV4dDJfcmVnc190IGNvbnRleHQyOwotCXVuc2lnbmVkIGludCBkaXJ0eTsKLX0gZHJtX3JhZGVvbl9zdGF0ZV90OwotCi10eXBlZGVmIHN0cnVjdCB7Ci0JLyogVGhlIGNoYW5uZWwgZm9yIGNvbW11bmljYXRpb24gb2Ygc3RhdGUgaW5mb3JtYXRpb24gdG8gdGhlCi0JICoga2VybmVsIG9uIGZpcmluZyBhIHZlcnRleCBidWZmZXIgd2l0aCBlaXRoZXIgb2YgdGhlCi0JICogb2Jzb2xldGVkIHZlcnRleC9pbmRleCBpb2N0bHMuCi0JICovCi0JZHJtX3JhZGVvbl9jb250ZXh0X3JlZ3NfdCBjb250ZXh0X3N0YXRlOwotCWRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3QgdGV4X3N0YXRlW1JBREVPTl9NQVhfVEVYVFVSRV9VTklUU107Ci0JdW5zaWduZWQgaW50IGRpcnR5OwotCXVuc2lnbmVkIGludCB2ZXJ0c2l6ZTsKLQl1bnNpZ25lZCBpbnQgdmNfZm9ybWF0OwotCi0JLyogVGhlIGN1cnJlbnQgY2xpcHJlY3RzLCBvciBhIHN1YnNldCB0aGVyZW9mLgotCSAqLwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0IGJveGVzW1JBREVPTl9OUl9TQVJFQV9DTElQUkVDVFNdOwotCXVuc2lnbmVkIGludCBuYm94OwotCi0JLyogQ291bnRlcnMgZm9yIGNsaWVudC1zaWRlIHRocm90dGxpbmcgb2YgcmVuZGVyaW5nIGNsaWVudHMuCi0JICovCi0JdW5zaWduZWQgaW50IGxhc3RfZnJhbWU7Ci0JdW5zaWduZWQgaW50IGxhc3RfZGlzcGF0Y2g7Ci0JdW5zaWduZWQgaW50IGxhc3RfY2xlYXI7Ci0KLQlzdHJ1Y3QgZHJtX3RleF9yZWdpb24gdGV4X2xpc3RbUkFERU9OX05SX1RFWF9IRUFQU11bUkFERU9OX05SX1RFWF9SRUdJT05TICsKLQkJCQkJCSAgICAgICAxXTsKLQl1bnNpZ25lZCBpbnQgdGV4X2FnZVtSQURFT05fTlJfVEVYX0hFQVBTXTsKLQlpbnQgY3R4X293bmVyOwotCWludCBwZlN0YXRlOwkJLyogbnVtYmVyIG9mIDNkIHdpbmRvd3MgKDAsMSwyb3Jtb3JlKSAqLwotCWludCBwZkN1cnJlbnRQYWdlOwkvKiB3aGljaCBidWZmZXIgaXMgYmVpbmcgZGlzcGxheWVkPyAqLwotCWludCBjcnRjMl9iYXNlOwkJLyogQ1JUQzIgZnJhbWUgb2Zmc2V0ICovCi0JaW50IHRpbGluZ19lbmFibGVkOwkvKiBzZXQgYnkgZHJtLCByZWFkIGJ5IDJkICsgM2QgY2xpZW50cyAqLwotfSBkcm1fcmFkZW9uX3NhcmVhX3Q7Ci0KLS8qIFdBUk5JTkc6IElmIHlvdSBjaGFuZ2UgYW55IG9mIHRoZXNlIGRlZmluZXMsIG1ha2Ugc3VyZSB0byBjaGFuZ2UgdGhlCi0gKiBkZWZpbmVzIGluIHRoZSBYc2VydmVyIGZpbGUgKHhmODZkcm1SYWRlb24uaCkKLSAqCi0gKiBLVzogYWN0dWFsbHkgaXQncyBpbGxlZ2FsIHRvIGNoYW5nZSBhbnkgb2YgdGhpcyAoYmFja3dhcmRzIGNvbXBhdGliaWxpdHkpLgotICovCi0KLS8qIFJhZGVvbiBzcGVjaWZpYyBpb2N0bHMKLSAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMgMHg0MCB0byAweDc5LgotICovCi0jZGVmaW5lIERSTV9SQURFT05fQ1BfSU5JVCAgICAweDAwCi0jZGVmaW5lIERSTV9SQURFT05fQ1BfU1RBUlQgICAweDAxCi0jZGVmaW5lIERSTV9SQURFT05fQ1BfU1RPUCAgICAweDAyCi0jZGVmaW5lIERSTV9SQURFT05fQ1BfUkVTRVQgICAweDAzCi0jZGVmaW5lIERSTV9SQURFT05fQ1BfSURMRSAgICAweDA0Ci0jZGVmaW5lIERSTV9SQURFT05fUkVTRVQgICAgICAweDA1Ci0jZGVmaW5lIERSTV9SQURFT05fRlVMTFNDUkVFTiAweDA2Ci0jZGVmaW5lIERSTV9SQURFT05fU1dBUCAgICAgICAweDA3Ci0jZGVmaW5lIERSTV9SQURFT05fQ0xFQVIgICAgICAweDA4Ci0jZGVmaW5lIERSTV9SQURFT05fVkVSVEVYICAgICAweDA5Ci0jZGVmaW5lIERSTV9SQURFT05fSU5ESUNFUyAgICAweDBBCi0jZGVmaW5lIERSTV9SQURFT05fTk9UX1VTRUQKLSNkZWZpbmUgRFJNX1JBREVPTl9TVElQUExFICAgIDB4MEMKLSNkZWZpbmUgRFJNX1JBREVPTl9JTkRJUkVDVCAgIDB4MEQKLSNkZWZpbmUgRFJNX1JBREVPTl9URVhUVVJFICAgIDB4MEUKLSNkZWZpbmUgRFJNX1JBREVPTl9WRVJURVgyICAgIDB4MEYKLSNkZWZpbmUgRFJNX1JBREVPTl9DTURCVUYgICAgIDB4MTAKLSNkZWZpbmUgRFJNX1JBREVPTl9HRVRQQVJBTSAgIDB4MTEKLSNkZWZpbmUgRFJNX1JBREVPTl9GTElQICAgICAgIDB4MTIKLSNkZWZpbmUgRFJNX1JBREVPTl9BTExPQyAgICAgIDB4MTMKLSNkZWZpbmUgRFJNX1JBREVPTl9GUkVFICAgICAgIDB4MTQKLSNkZWZpbmUgRFJNX1JBREVPTl9JTklUX0hFQVAgIDB4MTUKLSNkZWZpbmUgRFJNX1JBREVPTl9JUlFfRU1JVCAgIDB4MTYKLSNkZWZpbmUgRFJNX1JBREVPTl9JUlFfV0FJVCAgIDB4MTcKLSNkZWZpbmUgRFJNX1JBREVPTl9DUF9SRVNVTUUgIDB4MTgKLSNkZWZpbmUgRFJNX1JBREVPTl9TRVRQQVJBTSAgIDB4MTkKLSNkZWZpbmUgRFJNX1JBREVPTl9TVVJGX0FMTE9DIDB4MWEKLSNkZWZpbmUgRFJNX1JBREVPTl9TVVJGX0ZSRUUgIDB4MWIKLQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX0lOSVQgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfSU5JVCwgZHJtX3JhZGVvbl9pbml0X3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfU1RBUlQgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9TVEFSVCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9TVE9QICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX1NUT1AsIGRybV9yYWRlb25fY3Bfc3RvcF90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX1JFU0VUICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfUkVTRVQpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfSURMRSAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9JRExFKQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1JFU0VUICAgICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fUkVTRVQpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRlVMTFNDUkVFTiBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GVUxMU0NSRUVOLCBkcm1fcmFkZW9uX2Z1bGxzY3JlZW5fdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TV0FQICAgICAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NXQVApCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ0xFQVIgICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DTEVBUiwgZHJtX3JhZGVvbl9jbGVhcl90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1ZFUlRFWCAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fVkVSVEVYLCBkcm1fcmFkZW9uX3ZlcnRleF90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lORElDRVMgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSU5ESUNFUywgZHJtX3JhZGVvbl9pbmRpY2VzX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1RJUFBMRSAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TVElQUExFLCBkcm1fcmFkZW9uX3N0aXBwbGVfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JTkRJUkVDVCAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lORElSRUNULCBkcm1fcmFkZW9uX2luZGlyZWN0X3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fVEVYVFVSRSAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9URVhUVVJFLCBkcm1fcmFkZW9uX3RleHR1cmVfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9WRVJURVgyICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1ZFUlRFWDIsIGRybV9yYWRlb25fdmVydGV4Ml90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NNREJVRiAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ01EQlVGLCBkcm1fcmFkZW9uX2NtZF9idWZmZXJfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9HRVRQQVJBTSAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0dFVFBBUkFNLCBkcm1fcmFkZW9uX2dldHBhcmFtX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRkxJUCAgICAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GTElQKQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0FMTE9DICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQUxMT0MsIGRybV9yYWRlb25fbWVtX2FsbG9jX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fRlJFRSAgICAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9GUkVFLCBkcm1fcmFkZW9uX21lbV9mcmVlX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSU5JVF9IRUFQICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JTklUX0hFQVAsIGRybV9yYWRlb25fbWVtX2luaXRfaGVhcF90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lSUV9FTUlUICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSVJRX0VNSVQsIGRybV9yYWRlb25faXJxX2VtaXRfdCkKLSNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JUlFfV0FJVCAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lSUV9XQUlULCBkcm1fcmFkZW9uX2lycV93YWl0X3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfUkVTVU1FICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9SRVNVTUUpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU0VUUEFSQU0gICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TRVRQQVJBTSwgZHJtX3JhZGVvbl9zZXRwYXJhbV90KQotI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NVUkZfQUxMT0MgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU1VSRl9BTExPQywgZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QpCi0jZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1VSRl9GUkVFICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TVVJGX0ZSRUUsIGRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3QpCi0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25faW5pdCB7Ci0JZW51bSB7Ci0JCVJBREVPTl9JTklUX0NQID0gMHgwMSwKLQkJUkFERU9OX0NMRUFOVVBfQ1AgPSAweDAyLAotCQlSQURFT05fSU5JVF9SMjAwX0NQID0gMHgwMywKLQkJUkFERU9OX0lOSVRfUjMwMF9DUCA9IDB4MDQKLQl9IGZ1bmM7Ci0JdW5zaWduZWQgbG9uZyBzYXJlYV9wcml2X29mZnNldDsKLQlpbnQgaXNfcGNpOwotCWludCBjcF9tb2RlOwotCWludCBnYXJ0X3NpemU7Ci0JaW50IHJpbmdfc2l6ZTsKLQlpbnQgdXNlY190aW1lb3V0OwotCi0JdW5zaWduZWQgaW50IGZiX2JwcDsKLQl1bnNpZ25lZCBpbnQgZnJvbnRfb2Zmc2V0LCBmcm9udF9waXRjaDsKLQl1bnNpZ25lZCBpbnQgYmFja19vZmZzZXQsIGJhY2tfcGl0Y2g7Ci0JdW5zaWduZWQgaW50IGRlcHRoX2JwcDsKLQl1bnNpZ25lZCBpbnQgZGVwdGhfb2Zmc2V0LCBkZXB0aF9waXRjaDsKLQotCXVuc2lnbmVkIGxvbmcgZmJfb2Zmc2V0OwotCXVuc2lnbmVkIGxvbmcgbW1pb19vZmZzZXQ7Ci0JdW5zaWduZWQgbG9uZyByaW5nX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIHJpbmdfcnB0cl9vZmZzZXQ7Ci0JdW5zaWduZWQgbG9uZyBidWZmZXJzX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIGdhcnRfdGV4dHVyZXNfb2Zmc2V0OwotfSBkcm1fcmFkZW9uX2luaXRfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9jcF9zdG9wIHsKLQlpbnQgZmx1c2g7Ci0JaW50IGlkbGU7Ci19IGRybV9yYWRlb25fY3Bfc3RvcF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2Z1bGxzY3JlZW4gewotCWVudW0gewotCQlSQURFT05fSU5JVF9GVUxMU0NSRUVOID0gMHgwMSwKLQkJUkFERU9OX0NMRUFOVVBfRlVMTFNDUkVFTiA9IDB4MDIKLQl9IGZ1bmM7Ci19IGRybV9yYWRlb25fZnVsbHNjcmVlbl90OwotCi0jZGVmaW5lIENMRUFSX1gxCTAKLSNkZWZpbmUgQ0xFQVJfWTEJMQotI2RlZmluZSBDTEVBUl9YMgkyCi0jZGVmaW5lIENMRUFSX1kyCTMKLSNkZWZpbmUgQ0xFQVJfREVQVEgJNAotCi10eXBlZGVmIHVuaW9uIGRybV9yYWRlb25fY2xlYXJfcmVjdCB7Ci0JZmxvYXQgZls1XTsKLQl1bnNpZ25lZCBpbnQgdWlbNV07Ci19IGRybV9yYWRlb25fY2xlYXJfcmVjdF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2NsZWFyIHsKLQl1bnNpZ25lZCBpbnQgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IGNsZWFyX2NvbG9yOwotCXVuc2lnbmVkIGludCBjbGVhcl9kZXB0aDsKLQl1bnNpZ25lZCBpbnQgY29sb3JfbWFzazsKLQl1bnNpZ25lZCBpbnQgZGVwdGhfbWFzazsJLyogbWlzbmFtZWQgZmllbGQ6ICBzaG91bGQgYmUgc3RlbmNpbCAqLwotCWRybV9yYWRlb25fY2xlYXJfcmVjdF90IF9fdXNlciAqZGVwdGhfYm94ZXM7Ci19IGRybV9yYWRlb25fY2xlYXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl92ZXJ0ZXggewotCWludCBwcmltOwotCWludCBpZHg7CQkvKiBJbmRleCBvZiB2ZXJ0ZXggYnVmZmVyICovCi0JaW50IGNvdW50OwkJLyogTnVtYmVyIG9mIHZlcnRpY2VzIGluIGJ1ZmZlciAqLwotCWludCBkaXNjYXJkOwkJLyogQ2xpZW50IGZpbmlzaGVkIHdpdGggYnVmZmVyPyAqLwotfSBkcm1fcmFkZW9uX3ZlcnRleF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2luZGljZXMgewotCWludCBwcmltOwotCWludCBpZHg7Ci0JaW50IHN0YXJ0OwotCWludCBlbmQ7Ci0JaW50IGRpc2NhcmQ7CQkvKiBDbGllbnQgZmluaXNoZWQgd2l0aCBidWZmZXI/ICovCi19IGRybV9yYWRlb25faW5kaWNlc190OwotCi0vKiB2MS4yIC0gb2Jzb2xldGVzIGRybV9yYWRlb25fdmVydGV4IGFuZCBkcm1fcmFkZW9uX2luZGljZXMKLSAqICAgICAgLSBhbGxvd3MgbXVsdGlwbGUgcHJpbWl0aXZlcyBhbmQgc3RhdGUgY2hhbmdlcyBpbiBhIHNpbmdsZSBpb2N0bAotICogICAgICAtIHN1cHBvcnRzIGRyaXZlciBjaGFuZ2UgdG8gZW1pdCBuYXRpdmUgcHJpbWl0aXZlcwotICovCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3ZlcnRleDIgewotCWludCBpZHg7CQkvKiBJbmRleCBvZiB2ZXJ0ZXggYnVmZmVyICovCi0JaW50IGRpc2NhcmQ7CQkvKiBDbGllbnQgZmluaXNoZWQgd2l0aCBidWZmZXI/ICovCi0JaW50IG5yX3N0YXRlczsKLQlkcm1fcmFkZW9uX3N0YXRlX3QgX191c2VyICpzdGF0ZTsKLQlpbnQgbnJfcHJpbXM7Ci0JZHJtX3JhZGVvbl9wcmltX3QgX191c2VyICpwcmltOwotfSBkcm1fcmFkZW9uX3ZlcnRleDJfdDsKLQotLyogdjEuMyAtIG9ic29sZXRlcyBkcm1fcmFkZW9uX3ZlcnRleDIKLSAqICAgICAgLSBhbGxvd3MgYXJiaXRhcmlseSBsYXJnZSBjbGlwcmVjdCBsaXN0Ci0gKiAgICAgIC0gYWxsb3dzIHVwZGF0aW5nIG9mIHRjbCBwYWNrZXQsIHZlY3RvciBhbmQgc2NhbGFyIHN0YXRlCi0gKiAgICAgIC0gYWxsb3dzIG1lbW9yeS1lZmZpY2llbnQgZGVzY3JpcHRpb24gb2Ygc3RhdGUgdXBkYXRlcwotICogICAgICAtIGFsbG93cyBzdGF0ZSB0byBiZSBlbWl0dGVkIHdpdGhvdXQgYSBwcmltaXRpdmUKLSAqICAgICAgICAgICAoZm9yIGNsZWFycywgY3R4IHN3aXRjaGVzKQotICogICAgICAtIGFsbG93cyBtb3JlIHRoYW4gb25lIGRtYSBidWZmZXIgdG8gYmUgcmVmZXJlbmNlZCBwZXIgaW9jdGwKLSAqICAgICAgLSBzdXBwb3J0cyB0Y2wgZHJpdmVyCi0gKiAgICAgIC0gbWF5IGJlIGV4dGVuZGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyB3aXRoIG5ldyBjbWQgdHlwZXMsIHBhY2tldHMKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9jbWRfYnVmZmVyIHsKLQlpbnQgYnVmc3o7Ci0JY2hhciBfX3VzZXIgKmJ1ZjsKLQlpbnQgbmJveDsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzOwotfSBkcm1fcmFkZW9uX2NtZF9idWZmZXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl90ZXhfaW1hZ2UgewotCXVuc2lnbmVkIGludCB4LCB5OwkvKiBCbGl0IGNvb3JkaW5hdGVzICovCi0JdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQ7Ci0JY29uc3Qgdm9pZCBfX3VzZXIgKmRhdGE7Ci19IGRybV9yYWRlb25fdGV4X2ltYWdlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fdGV4dHVyZSB7Ci0JdW5zaWduZWQgaW50IG9mZnNldDsKLQlpbnQgcGl0Y2g7Ci0JaW50IGZvcm1hdDsKLQlpbnQgd2lkdGg7CQkvKiBUZXh0dXJlIGltYWdlIGNvb3JkaW5hdGVzICovCi0JaW50IGhlaWdodDsKLQlkcm1fcmFkZW9uX3RleF9pbWFnZV90IF9fdXNlciAqaW1hZ2U7Ci19IGRybV9yYWRlb25fdGV4dHVyZV90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3N0aXBwbGUgewotCXVuc2lnbmVkIGludCBfX3VzZXIgKm1hc2s7Ci19IGRybV9yYWRlb25fc3RpcHBsZV90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2luZGlyZWN0IHsKLQlpbnQgaWR4OwotCWludCBzdGFydDsKLQlpbnQgZW5kOwotCWludCBkaXNjYXJkOwotfSBkcm1fcmFkZW9uX2luZGlyZWN0X3Q7Ci0KLS8qIGVudW0gZm9yIGNhcmQgdHlwZSBwYXJhbWV0ZXJzICovCi0jZGVmaW5lIFJBREVPTl9DQVJEX1BDSSAwCi0jZGVmaW5lIFJBREVPTl9DQVJEX0FHUCAxCi0jZGVmaW5lIFJBREVPTl9DQVJEX1BDSUUgMgotCi0vKiAxLjM6IEFuIGlvY3RsIHRvIGdldCBwYXJhbWV0ZXJzIHRoYXQgYXJlbid0IGF2YWlsYWJsZSB0byB0aGUgM2QKLSAqIGNsaWVudCBhbnkgb3RoZXIgd2F5LgotICovCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9HQVJUX0JVRkZFUl9PRkZTRVQgICAgMQkvKiBjYXJkIG9mZnNldCBvZiAxc3QgR0FSVCBidWZmZXIgKi8KLSNkZWZpbmUgUkFERU9OX1BBUkFNX0xBU1RfRlJBTUUgICAgICAgICAgICAyCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9MQVNUX0RJU1BBVENIICAgICAgICAgMwotI2RlZmluZSBSQURFT05fUEFSQU1fTEFTVF9DTEVBUiAgICAgICAgICAgIDQKLS8qIEFkZGVkIHdpdGggRFJNIHZlcnNpb24gMS42LiAqLwotI2RlZmluZSBSQURFT05fUEFSQU1fSVJRX05SICAgICAgICAgICAgICAgIDUKLSNkZWZpbmUgUkFERU9OX1BBUkFNX0dBUlRfQkFTRSAgICAgICAgICAgICA2CS8qIGNhcmQgb2Zmc2V0IG9mIEdBUlQgYmFzZSAqLwotLyogQWRkZWQgd2l0aCBEUk0gdmVyc2lvbiAxLjguICovCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9SRUdJU1RFUl9IQU5ETEUgICAgICAgNwkvKiBmb3IgZHJtTWFwKCkgKi8KLSNkZWZpbmUgUkFERU9OX1BBUkFNX1NUQVRVU19IQU5ETEUgICAgICAgICA4Ci0jZGVmaW5lIFJBREVPTl9QQVJBTV9TQVJFQV9IQU5ETEUgICAgICAgICAgOQotI2RlZmluZSBSQURFT05fUEFSQU1fR0FSVF9URVhfSEFORExFICAgICAgIDEwCi0jZGVmaW5lIFJBREVPTl9QQVJBTV9TQ1JBVENIX09GRlNFVCAgICAgICAgMTEKLSNkZWZpbmUgUkFERU9OX1BBUkFNX0NBUkRfVFlQRSAgICAgICAgICAgICAxMgotI2RlZmluZSBSQURFT05fUEFSQU1fVkJMQU5LX0NSVEMgICAgICAgICAgIDEzICAgLyogVkJMQU5LIENSVEMgKi8KLSNkZWZpbmUgUkFERU9OX1BBUkFNX0ZCX0xPQ0FUSU9OICAgICAgICAgICAxNCAgIC8qIEZCIGxvY2F0aW9uICovCi0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fZ2V0cGFyYW0gewotCWludCBwYXJhbTsKLQl2b2lkIF9fdXNlciAqdmFsdWU7Ci19IGRybV9yYWRlb25fZ2V0cGFyYW1fdDsKLQotLyogMS42OiBTZXQgdXAgYSBtZW1vcnkgbWFuYWdlciBmb3IgcmVnaW9ucyBvZiBzaGFyZWQgbWVtb3J5OgotICovCi0jZGVmaW5lIFJBREVPTl9NRU1fUkVHSU9OX0dBUlQgMQotI2RlZmluZSBSQURFT05fTUVNX1JFR0lPTl9GQiAgIDIKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1fYWxsb2MgewotCWludCByZWdpb247Ci0JaW50IGFsaWdubWVudDsKLQlpbnQgc2l6ZTsKLQlpbnQgX191c2VyICpyZWdpb25fb2Zmc2V0OwkvKiBvZmZzZXQgZnJvbSBzdGFydCBvZiBmYiBvciBHQVJUICovCi19IGRybV9yYWRlb25fbWVtX2FsbG9jX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fbWVtX2ZyZWUgewotCWludCByZWdpb247Ci0JaW50IHJlZ2lvbl9vZmZzZXQ7Ci19IGRybV9yYWRlb25fbWVtX2ZyZWVfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1faW5pdF9oZWFwIHsKLQlpbnQgcmVnaW9uOwotCWludCBzaXplOwotCWludCBzdGFydDsKLX0gZHJtX3JhZGVvbl9tZW1faW5pdF9oZWFwX3Q7Ci0KLS8qIDEuNjogVXNlcnNwYWNlIGNhbiByZXF1ZXN0ICYgd2FpdCBvbiBpcnEnczoKLSAqLwotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pcnFfZW1pdCB7Ci0JaW50IF9fdXNlciAqaXJxX3NlcTsKLX0gZHJtX3JhZGVvbl9pcnFfZW1pdF90OwotCi10eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2lycV93YWl0IHsKLQlpbnQgaXJxX3NlcTsKLX0gZHJtX3JhZGVvbl9pcnFfd2FpdF90OwotCi0vKiAxLjEwOiBDbGllbnRzIHRlbGwgdGhlIERSTSB3aGVyZSB0aGV5IHRoaW5rIHRoZSBmcmFtZWJ1ZmZlciBpcyBsb2NhdGVkIGluCi0gKiB0aGUgY2FyZCdzIGFkZHJlc3Mgc3BhY2UsIHZpYSBhIG5ldyBnZW5lcmljIGlvY3RsIHRvIHNldCBwYXJhbWV0ZXJzCi0gKi8KLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zZXRwYXJhbSB7Ci0JdW5zaWduZWQgaW50IHBhcmFtOwotCWludDY0X3QgdmFsdWU7Ci19IGRybV9yYWRlb25fc2V0cGFyYW1fdDsKLQotI2RlZmluZSBSQURFT05fU0VUUEFSQU1fRkJfTE9DQVRJT04gICAgMQkvKiBkZXRlcm1pbmVkIGZyYW1lYnVmZmVyIGxvY2F0aW9uICovCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9TV0lUQ0hfVElMSU5HICAyCS8qIGVuYWJsZS9kaXNhYmxlIGNvbG9yIHRpbGluZyAqLwotI2RlZmluZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9MT0NBVElPTiAzCS8qIFBDSSBHYXJ0IExvY2F0aW9uICovCi0jZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9ORVdfTUVNTUFQIDQJCS8qIFVzZSBuZXcgbWVtb3J5IG1hcCAqLwotI2RlZmluZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9UQUJMRV9TSVpFIDUgICAgLyogUENJIEdBUlQgVGFibGUgU2l6ZSAqLwotI2RlZmluZSBSQURFT05fU0VUUEFSQU1fVkJMQU5LX0NSVEMgNiAgICAgICAgICAgLyogVkJMQU5LIENSVEMgKi8KLS8qIDEuMTQ6IENsaWVudHMgY2FuIGFsbG9jYXRlL2ZyZWUgYSBzdXJmYWNlCi0gKi8KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fc3VyZmFjZV9hbGxvYyB7Ci0JdW5zaWduZWQgaW50IGFkZHJlc3M7Ci0JdW5zaWduZWQgaW50IHNpemU7Ci0JdW5zaWduZWQgaW50IGZsYWdzOwotfSBkcm1fcmFkZW9uX3N1cmZhY2VfYWxsb2NfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zdXJmYWNlX2ZyZWUgewotCXVuc2lnbmVkIGludCBhZGRyZXNzOwotfSBkcm1fcmFkZW9uX3N1cmZhY2VfZnJlZV90OwotCi0jZGVmaW5lCURSTV9SQURFT05fVkJMQU5LX0NSVEMxCQkxCi0jZGVmaW5lCURSTV9SQURFT05fVkJMQU5LX0NSVEMyCQkyCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmggYi9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9kcnYuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTczYWU2Mi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9kcnYuaAorKysgL2Rldi9udWxsCkBAIC0xLDEyOTkgKzAsMCBAQAotLyogcmFkZW9uX2Rydi5oIC0tIFByaXZhdGUgaGVhZGVyIGZvciByYWRlb24gZHJpdmVyIC0qLSBsaW51eC1jIC0qLQotICoKLSAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KLSAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAotICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgotICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCi0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gKgotICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAotICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQotICogU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLSAqCi0gKiBBdXRob3JzOgotICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+Ci0gKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKi8KLQotI2lmbmRlZiBfX1JBREVPTl9EUlZfSF9fCi0jZGVmaW5lIF9fUkFERU9OX0RSVl9IX18KLQotLyogR2VuZXJhbCBjdXN0b21pemF0aW9uOgotICovCi0KLSNkZWZpbmUgRFJJVkVSX0FVVEhPUgkJIkdhcmV0aCBIdWdoZXMsIEtlaXRoIFdoaXR3ZWxsLCBvdGhlcnMuIgotCi0jZGVmaW5lIERSSVZFUl9OQU1FCQkicmFkZW9uIgotI2RlZmluZSBEUklWRVJfREVTQwkJIkFUSSBSYWRlb24iCi0jZGVmaW5lIERSSVZFUl9EQVRFCQkiMjAwNjA1MjQiCi0KLS8qIEludGVyZmFjZSBoaXN0b3J5OgotICoKLSAqIDEuMSAtID8/Ci0gKiAxLjIgLSBBZGQgdmVydGV4MiBpb2N0bCAoa2VpdGgpCi0gKiAgICAgLSBBZGQgc3RlbmNpbCBjYXBhYmlsaXR5IHRvIGNsZWFyIGlvY3RsIChnYXJldGgsIGtlaXRoKQotICogICAgIC0gSW5jcmVhc2UgTUFYX1RFWFRVUkVfTEVWRUxTIChicmlhbikKLSAqIDEuMyAtIEFkZCBjbWRidWYgaW9jdGwgKGtlaXRoKQotICogICAgIC0gQWRkIHN1cHBvcnQgZm9yIG5ldyByYWRlb24gcGFja2V0cyAoa2VpdGgpCi0gKiAgICAgLSBBZGQgZ2V0cGFyYW0gaW9jdGwgKGtlaXRoKQotICogICAgIC0gQWRkIGZsaXAtYnVmZmVycyBpb2N0bCwgZGVwcmVjYXRlIGZ1bGxzY3JlZW4gZm9vIChrZWl0aCkuCi0gKiAxLjQgLSBBZGQgc2NyYXRjaCByZWdpc3RlcnMgdG8gZ2V0X3BhcmFtIGlvY3RsLgotICogMS41IC0gQWRkIHIyMDAgcGFja2V0cyB0byBjbWRidWYgaW9jdGwKLSAqICAgICAtIEFkZCByMjAwIGZ1bmN0aW9uIHRvIGluaXQgaW9jdGwKLSAqICAgICAtIEFkZCAnc2NhbGFyMicgaW5zdHJ1Y3Rpb24gdG8gY21kYnVmCi0gKiAxLjYgLSBBZGQgc3RhdGljIEdBUlQgbWVtb3J5IG1hbmFnZXIKLSAqICAgICAgIEFkZCBpcnEgaGFuZGxlciAod29uJ3QgYmUgdHVybmVkIG9uIHVubGVzcyBYIHNlcnZlciBrbm93cyB0bykKLSAqICAgICAgIEFkZCBpcnEgaW9jdGxzIGFuZCBpcnFfYWN0aXZlIGdldHBhcmFtLgotICogICAgICAgQWRkIHdhaXQgY29tbWFuZCBmb3IgY21kYnVmIGlvY3RsCi0gKiAgICAgICBBZGQgR0FSVCBvZmZzZXQgcXVlcnkgZm9yIGdldHBhcmFtCi0gKiAxLjcgLSBBZGQgc3VwcG9ydCBmb3IgY3ViZSBtYXAgcmVnaXN0ZXJzOiBSMjAwX1BQX0NVQklDX0ZBQ0VTX1swLi41XQotICogICAgICAgYW5kIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxX1swLi41XS4KLSAqICAgICAgIEFkZGVkIHBhY2tldHMgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTX1swLi41XSBhbmQKLSAqICAgICAgIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1swLi41XS4gIChicmlhbikKLSAqIDEuOCAtIFJlbW92ZSBuZWVkIHRvIGNhbGwgY2xlYW51cCBpb2N0bHMgb24gbGFzdCBjbGllbnQgZXhpdCAoa2VpdGgpCi0gKiAgICAgICBBZGQgJ0dFVCcgcXVlcmllcyBmb3Igc3RhcnRpbmcgYWRkaXRpb25hbCBjbGllbnRzIG9uIGRpZmZlcmVudCBWVCdzLgotICogMS45IC0gQWRkIERSTV9JT0NUTF9SQURFT05fQ1BfUkVTVU1FIGlvY3RsLgotICogICAgICAgQWRkIHRleHR1cmUgcmVjdGFuZ2xlIHN1cHBvcnQgZm9yIHIxMDAuCi0gKiAxLjEwLSBBZGQgU0VUUEFSQU0gaW9jdGw7IGZpcnN0IHBhcmFtZXRlciB0byBzZXQgaXMgRkJfTE9DQVRJT04sIHdoaWNoCi0gKiAgICAgICBjbGllbnRzIHVzZSB0byB0ZWxsIHRoZSBEUk0gd2hlcmUgdGhleSB0aGluayB0aGUgZnJhbWVidWZmZXIgaXMKLSAqICAgICAgIGxvY2F0ZWQgaW4gdGhlIGNhcmQncyBhZGRyZXNzIHNwYWNlCi0gKiAxLjExLSBBZGQgcGFja2V0IFIyMDBfRU1JVF9SQjNEX0JMRU5EQ09MT1IgdG8gc3VwcG9ydCBHTF9FWFRfYmxlbmRfY29sb3IKLSAqICAgICAgIGFuZCBHTF9FWFRfYmxlbmRfW2Z1bmN8ZXF1YXRpb25dX3NlcGFyYXRlIG9uIHIyMDAKLSAqIDEuMTItIEFkZCBSMzAwIENQIG1pY3JvY29kZSBzdXBwb3J0IC0gdGhpcyBqdXN0IGxvYWRzIHRoZSBDUCBvbiByMzAwCi0gKiAgICAgICAoTm8gM0Qgc3VwcG9ydCB5ZXQgLSBqdXN0IG1pY3JvY29kZSBsb2FkaW5nKS4KLSAqIDEuMTMtIEFkZCBwYWNrZXQgUjIwMF9FTUlUX1RDTF9QT0lOVF9TUFJJVEVfQ05UTCBmb3IgQVJCX3BvaW50X3BhcmFtZXRlcnMKLSAqICAgICAtIEFkZCBoeXBlcnogc3VwcG9ydCwgYWRkIGh5cGVyeiBmbGFncyB0byBjbGVhciBpb2N0bC4KLSAqIDEuMTQtIEFkZCBzdXBwb3J0IGZvciBjb2xvciB0aWxpbmcKLSAqICAgICAtIEFkZCBSMTAwL1IyMDAgc3VyZmFjZSBhbGxvY2F0aW9uL2ZyZWUgc3VwcG9ydAotICogMS4xNS0gQWRkIHN1cHBvcnQgZm9yIHRleHR1cmUgbWljcm8gdGlsaW5nCi0gKiAgICAgLSBBZGQgc3VwcG9ydCBmb3IgcjEwMCBjdWJlIG1hcHMKLSAqIDEuMTYtIEFkZCBSMjAwX0VNSVRfUFBfVFJJX1BFUkZfQ05UTCBwYWNrZXQgdG8gc3VwcG9ydCBicmlsaW5lYXIKLSAqICAgICAgIHRleHR1cmUgZmlsdGVyaW5nIG9uIHIyMDAKLSAqIDEuMTctIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFIzMDAgKDNEKS4KLSAqIDEuMTgtIEFkZCBzdXBwb3J0IGZvciBHTF9BVElfZnJhZ21lbnRfc2hhZGVyLCBuZXcgcGFja2V0cwotICogICAgICAgUjIwMF9FTUlUX1BQX0FGU18wLzEsIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8wLTUgKHJlcGxhY2VzCi0gKiAgICAgICBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMC01LCAyIG1vcmUgcmVncykgYW5kIFIyMDBfRU1JVF9BVEZfVEZBQ1RPUgotICogICAgICAgKHJlcGxhY2VzIFIyMDBfRU1JVF9URkFDVE9SXzAgKDggY29uc3RzIGluc3RlYWQgb2YgNikKLSAqIDEuMTktIEFkZCBzdXBwb3J0IGZvciBnYXJ0IHRhYmxlIGluIEZCIG1lbW9yeSBhbmQgUENJRSByMzAwCi0gKiAxLjIwLSBBZGQgc3VwcG9ydCBmb3IgcjMwMCB0ZXhyZWN0Ci0gKiAxLjIxLSBBZGQgc3VwcG9ydCBmb3IgY2FyZCB0eXBlIGdldHBhcmFtCi0gKiAxLjIyLSBBZGQgc3VwcG9ydCBmb3IgdGV4dHVyZSBjYWNoZSBmbHVzaGVzIChSMzAwX1RYX0NOVEwpCi0gKiAxLjIzLSBBZGQgbmV3IHJhZGVvbiBtZW1vcnkgbWFwIHdvcmsgZnJvbSBiZW5oCi0gKiAxLjI0LSBBZGQgZ2VuZXJhbC1wdXJwb3NlIHBhY2tldCBmb3IgbWFuaXB1bGF0aW5nIHNjcmF0Y2ggcmVnaXN0ZXJzIChyMzAwKQotICogMS4yNS0gQWRkIHN1cHBvcnQgZm9yIHIyMDAgdmVydGV4IHByb2dyYW1zIChSMjAwX0VNSVRfVkFQX1BWU19DTlRMLAotICogICAgICAgbmV3IHBhY2tldCB0eXBlKQotICogMS4yNi0gQWRkIHN1cHBvcnQgZm9yIHZhcmlhYmxlIHNpemUgUENJKEUpIGdhcnQgYXBlcnR1cmUKLSAqIDEuMjctIEFkZCBzdXBwb3J0IGZvciBJR1AgR0FSVAotICogMS4yOC0gQWRkIHN1cHBvcnQgZm9yIFZCTCBvbiBDUlRDMgotICovCi0jZGVmaW5lIERSSVZFUl9NQUpPUgkJMQotI2RlZmluZSBEUklWRVJfTUlOT1IJCTI4Ci0jZGVmaW5lIERSSVZFUl9QQVRDSExFVkVMCTAKLQotLyoKLSAqIFJhZGVvbiBjaGlwIGZhbWlsaWVzCi0gKi8KLWVudW0gcmFkZW9uX2ZhbWlseSB7Ci0JQ0hJUF9SMTAwLAotCUNISVBfUlYxMDAsCi0JQ0hJUF9SUzEwMCwKLQlDSElQX1JWMjAwLAotCUNISVBfUlMyMDAsCi0JQ0hJUF9SMjAwLAotCUNISVBfUlYyNTAsCi0JQ0hJUF9SUzMwMCwKLQlDSElQX1JWMjgwLAotCUNISVBfUjMwMCwKLQlDSElQX1IzNTAsCi0JQ0hJUF9SVjM1MCwKLQlDSElQX1JWMzgwLAotCUNISVBfUjQyMCwKLQlDSElQX1JWNDEwLAotCUNISVBfUlM0MDAsCi0JQ0hJUF9SUzY5MCwKLQlDSElQX1JWNTE1LAotCUNISVBfUjUyMCwKLQlDSElQX1JWNTMwLAotCUNISVBfUlY1NjAsCi0JQ0hJUF9SVjU3MCwKLQlDSElQX1I1ODAsCi0JQ0hJUF9MQVNULAotfTsKLQotZW51bSByYWRlb25fY3BfbWljcm9jb2RlX3ZlcnNpb24gewotCVVDT0RFX1IxMDAsCi0JVUNPREVfUjIwMCwKLQlVQ09ERV9SMzAwLAotfTsKLQotLyoKLSAqIENoaXAgZmxhZ3MKLSAqLwotZW51bSByYWRlb25fY2hpcF9mbGFncyB7Ci0JUkFERU9OX0ZBTUlMWV9NQVNLID0gMHgwMDAwZmZmZlVMLAotCVJBREVPTl9GTEFHU19NQVNLID0gMHhmZmZmMDAwMFVMLAotCVJBREVPTl9JU19NT0JJTElUWSA9IDB4MDAwMTAwMDBVTCwKLQlSQURFT05fSVNfSUdQID0gMHgwMDAyMDAwMFVMLAotCVJBREVPTl9TSU5HTEVfQ1JUQyA9IDB4MDAwNDAwMDBVTCwKLQlSQURFT05fSVNfQUdQID0gMHgwMDA4MDAwMFVMLAotCVJBREVPTl9IQVNfSElFUlogPSAweDAwMTAwMDAwVUwsCi0JUkFERU9OX0lTX1BDSUUgPSAweDAwMjAwMDAwVUwsCi0JUkFERU9OX05FV19NRU1NQVAgPSAweDAwNDAwMDAwVUwsCi0JUkFERU9OX0lTX1BDSSA9IDB4MDA4MDAwMDBVTCwKLQlSQURFT05fSVNfSUdQR0FSVCA9IDB4MDEwMDAwMDBVTCwKLX07Ci0KLSNkZWZpbmUgR0VUX1JJTkdfSEVBRChkZXZfcHJpdikJKGRldl9wcml2LT53cml0ZWJhY2tfd29ya3MgPyBcCi0gICAgICAgIERSTV9SRUFEMzIoICAoZGV2X3ByaXYpLT5yaW5nX3JwdHIsIDAgKSA6IFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKSkKLSNkZWZpbmUgU0VUX1JJTkdfSEVBRChkZXZfcHJpdix2YWwpCURSTV9XUklURTMyKCAoZGV2X3ByaXYpLT5yaW5nX3JwdHIsIDAsICh2YWwpICkKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9mcmVlbGlzdCB7Ci0JdW5zaWduZWQgaW50IGFnZTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCXN0cnVjdCBkcm1fcmFkZW9uX2ZyZWVsaXN0ICpuZXh0OwotCXN0cnVjdCBkcm1fcmFkZW9uX2ZyZWVsaXN0ICpwcmV2OwotfSBkcm1fcmFkZW9uX2ZyZWVsaXN0X3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fcmluZ19idWZmZXIgewotCXUzMiAqc3RhcnQ7Ci0JdTMyICplbmQ7Ci0JaW50IHNpemU7Ci0JaW50IHNpemVfbDJxdzsKLQotCWludCBycHRyX3VwZGF0ZTsgLyogRG91YmxlIFdvcmRzICovCi0JaW50IHJwdHJfdXBkYXRlX2wycXc7IC8qIGxvZzIgUXVhZCBXb3JkcyAqLwotCi0JaW50IGZldGNoX3NpemU7IC8qIERvdWJsZSBXb3JkcyAqLwotCWludCBmZXRjaF9zaXplX2wyb3c7IC8qIGxvZzIgT2N0IFdvcmRzICovCi0KLQl1MzIgdGFpbDsKLQl1MzIgdGFpbF9tYXNrOwotCWludCBzcGFjZTsKLQotCWludCBoaWdoX21hcms7Ci19IGRybV9yYWRlb25fcmluZ19idWZmZXJfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9kZXB0aF9jbGVhcl90IHsKLQl1MzIgcmIzZF9jbnRsOwotCXUzMiByYjNkX3pzdGVuY2lsY250bDsKLQl1MzIgc2VfY250bDsKLX0gZHJtX3JhZGVvbl9kZXB0aF9jbGVhcl90OwotCi1zdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgewotCWludDY0X3QgcmFkZW9uX2ZiX2RlbHRhOwotfTsKLQotc3RydWN0IG1lbV9ibG9jayB7Ci0Jc3RydWN0IG1lbV9ibG9jayAqbmV4dDsKLQlzdHJ1Y3QgbWVtX2Jsb2NrICpwcmV2OwotCWludCBzdGFydDsKLQlpbnQgc2l6ZTsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgLyogTlVMTDogZnJlZSwgLTE6IGhlYXAsIG90aGVyOiByZWFsIGZpbGVzICovCi19OwotCi1zdHJ1Y3QgcmFkZW9uX3N1cmZhY2UgewotCWludCByZWZjb3VudDsKLQl1MzIgbG93ZXI7Ci0JdTMyIHVwcGVyOwotCXUzMiBmbGFnczsKLX07Ci0KLXN0cnVjdCByYWRlb25fdmlydF9zdXJmYWNlIHsKLQlpbnQgc3VyZmFjZV9pbmRleDsKLQl1MzIgbG93ZXI7Ci0JdTMyIHVwcGVyOwotCXUzMiBmbGFnczsKLQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsKLX07Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fcHJpdmF0ZSB7Ci0JZHJtX3JhZGVvbl9yaW5nX2J1ZmZlcl90IHJpbmc7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2OwotCi0JdTMyIGZiX2xvY2F0aW9uOwotCXUzMiBmYl9zaXplOwotCWludCBuZXdfbWVtbWFwOwotCi0JaW50IGdhcnRfc2l6ZTsKLQl1MzIgZ2FydF92bV9zdGFydDsKLQl1bnNpZ25lZCBsb25nIGdhcnRfYnVmZmVyc19vZmZzZXQ7Ci0KLQlpbnQgY3BfbW9kZTsKLQlpbnQgY3BfcnVubmluZzsKLQotCWRybV9yYWRlb25fZnJlZWxpc3RfdCAqaGVhZDsKLQlkcm1fcmFkZW9uX2ZyZWVsaXN0X3QgKnRhaWw7Ci0JaW50IGxhc3RfYnVmOwotCXZvbGF0aWxlIHUzMiAqc2NyYXRjaDsKLQlpbnQgd3JpdGViYWNrX3dvcmtzOwotCi0JaW50IHVzZWNfdGltZW91dDsKLQotCWludCBtaWNyb2NvZGVfdmVyc2lvbjsKLQotCXN0cnVjdCB7Ci0JCXUzMiBib3hlczsKLQkJaW50IGZyZWVsaXN0X3RpbWVvdXRzOwotCQlpbnQgZnJlZWxpc3RfbG9vcHM7Ci0JCWludCByZXF1ZXN0ZWRfYnVmczsKLQkJaW50IGxhc3RfZnJhbWVfcmVhZHM7Ci0JCWludCBsYXN0X2NsZWFyX3JlYWRzOwotCQlpbnQgY2xlYXJzOwotCQlpbnQgdGV4dHVyZV91cGxvYWRzOwotCX0gc3RhdHM7Ci0KLQlpbnQgZG9fYm94ZXM7Ci0JaW50IHBhZ2VfZmxpcHBpbmc7Ci0KLQl1MzIgY29sb3JfZm10OwotCXVuc2lnbmVkIGludCBmcm9udF9vZmZzZXQ7Ci0JdW5zaWduZWQgaW50IGZyb250X3BpdGNoOwotCXVuc2lnbmVkIGludCBiYWNrX29mZnNldDsKLQl1bnNpZ25lZCBpbnQgYmFja19waXRjaDsKLQotCXUzMiBkZXB0aF9mbXQ7Ci0JdW5zaWduZWQgaW50IGRlcHRoX29mZnNldDsKLQl1bnNpZ25lZCBpbnQgZGVwdGhfcGl0Y2g7Ci0KLQl1MzIgZnJvbnRfcGl0Y2hfb2Zmc2V0OwotCXUzMiBiYWNrX3BpdGNoX29mZnNldDsKLQl1MzIgZGVwdGhfcGl0Y2hfb2Zmc2V0OwotCi0JZHJtX3JhZGVvbl9kZXB0aF9jbGVhcl90IGRlcHRoX2NsZWFyOwotCi0JdW5zaWduZWQgbG9uZyByaW5nX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIHJpbmdfcnB0cl9vZmZzZXQ7Ci0JdW5zaWduZWQgbG9uZyBidWZmZXJzX29mZnNldDsKLQl1bnNpZ25lZCBsb25nIGdhcnRfdGV4dHVyZXNfb2Zmc2V0OwotCi0JZHJtX2xvY2FsX21hcF90ICpzYXJlYTsKLQlkcm1fbG9jYWxfbWFwX3QgKm1taW87Ci0JZHJtX2xvY2FsX21hcF90ICpjcF9yaW5nOwotCWRybV9sb2NhbF9tYXBfdCAqcmluZ19ycHRyOwotCWRybV9sb2NhbF9tYXBfdCAqZ2FydF90ZXh0dXJlczsKLQotCXN0cnVjdCBtZW1fYmxvY2sgKmdhcnRfaGVhcDsKLQlzdHJ1Y3QgbWVtX2Jsb2NrICpmYl9oZWFwOwotCi0JLyogU1cgaW50ZXJydXB0ICovCi0Jd2FpdF9xdWV1ZV9oZWFkX3Qgc3dpX3F1ZXVlOwotCWF0b21pY190IHN3aV9lbWl0dGVkOwotCWludCB2YmxhbmtfY3J0YzsKLQl1aW50MzJfdCBpcnFfZW5hYmxlX3JlZzsKLQlpbnQgaXJxX2VuYWJsZWQ7Ci0KLQlzdHJ1Y3QgcmFkZW9uX3N1cmZhY2Ugc3VyZmFjZXNbUkFERU9OX01BWF9TVVJGQUNFU107Ci0Jc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgdmlydF9zdXJmYWNlc1syICogUkFERU9OX01BWF9TVVJGQUNFU107Ci0KLQl1bnNpZ25lZCBsb25nIHBjaWdhcnRfb2Zmc2V0OwotCXVuc2lnbmVkIGludCBwY2lnYXJ0X29mZnNldF9zZXQ7Ci0Jc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvIGdhcnRfaW5mbzsKLQotCXUzMiBzY3JhdGNoX2FnZXNbNV07Ci0KLQkvKiBzdGFydGluZyBmcm9tIGhlcmUgb24sIGRhdGEgaXMgcHJlc2VydmVkIGFjY3Jvc3MgYW4gb3BlbiAqLwotCXVpbnQzMl90IGZsYWdzOwkJLyogc2VlIHJhZGVvbl9jaGlwX2ZsYWdzICovCi0JdW5zaWduZWQgbG9uZyBmYl9hcGVyX29mZnNldDsKLX0gZHJtX3JhZGVvbl9wcml2YXRlX3Q7Ci0KLXR5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fYnVmX3ByaXYgewotCXUzMiBhZ2U7Ci19IGRybV9yYWRlb25fYnVmX3ByaXZfdDsKLQotdHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9rY21kX2J1ZmZlciB7Ci0JaW50IGJ1ZnN6OwotCWNoYXIgKmJ1ZjsKLQlpbnQgbmJveDsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzOwotfSBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3Q7Ci0KLWV4dGVybiBpbnQgcmFkZW9uX25vX3diOwotZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyByYWRlb25faW9jdGxzW107Ci1leHRlcm4gaW50IHJhZGVvbl9tYXhfaW9jdGw7Ci0KLS8qIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGhhcmR3YXJlIGFkZHJlc3MgaXMgaW5zaWRlIHRoZSBmcmFtZWJ1ZmZlciBvciB0aGUKLSAqIEdBUlQgYXJlYS4KLSAqLwotc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19vZmZzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgIHU2NCBvZmYpCi17Ci0JdTMyIGZiX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uOwotCXUzMiBmYl9lbmQgPSBmYl9zdGFydCArIGRldl9wcml2LT5mYl9zaXplIC0gMTsKLQl1MzIgZ2FydF9zdGFydCA9IGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0OwotCXUzMiBnYXJ0X2VuZCA9IGdhcnRfc3RhcnQgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMTsKLQotCXJldHVybiAoKG9mZiA+PSBmYl9zdGFydCAmJiBvZmYgPD0gZmJfZW5kKSB8fAotCQkob2ZmID49IGdhcnRfc3RhcnQgJiYgb2ZmIDw9IGdhcnRfZW5kKSk7Ci19Ci0KLQkJCQkvKiByYWRlb25fY3AuYyAqLwotZXh0ZXJuIGludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2NwX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIGludCByYWRlb25fY3BfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Ci1leHRlcm4gaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2NwX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIHUzMiByYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpOwotCi1leHRlcm4gdm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIHN0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLQotZXh0ZXJuIGludCByYWRlb25fd2FpdF9yaW5nKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBuKTsKLQotZXh0ZXJuIGludCByYWRlb25fZG9fY3BfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KTsKLQotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ByZWluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci1leHRlcm4gaW50IHJhZGVvbl9wcmVzZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLQotZXh0ZXJuIGludCByYWRlb25fbWVtX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX21lbV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX21lbV9pbml0X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX21lbV90YWtlZG93bihzdHJ1Y3QgbWVtX2Jsb2NrICoqaGVhcCk7Ci1leHRlcm4gdm9pZCByYWRlb25fbWVtX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkgICAgICAgc3RydWN0IG1lbV9ibG9jayAqaGVhcCk7Ci0KLQkJCQkvKiByYWRlb25faXJxLmMgKi8KLWV4dGVybiBpbnQgcmFkZW9uX2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLQotZXh0ZXJuIHZvaWQgcmFkZW9uX2RvX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7Ci1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOwotZXh0ZXJuIGlycXJldHVybl90IHJhZGVvbl9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKLWV4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOwotZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiBpbnQgcmFkZW9uX3ZibGFua19jcnRjX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiBpbnQgcmFkZW9uX3ZibGFua19jcnRjX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQ2NF90IHZhbHVlKTsKLQotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncyk7Ci1leHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX2ZpcnN0b3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWV4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfcHJlY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWV4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfcG9zdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKiBmaWxwKTsKLWV4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKLWV4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl9vcGVuKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKiBmaWxwX3ByaXYpOwotZXh0ZXJuIGxvbmcgcmFkZW9uX2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKLQkJCQl1bnNpZ25lZCBsb25nIGFyZyk7Ci0KLS8qIHIzMDBfY21kYnVmLmMgKi8KLWV4dGVybiB2b2lkIHIzMDBfaW5pdF9yZWdfZmxhZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci0KLWV4dGVybiBpbnQgcjMwMF9kb19jcF9jbWRidWYoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCi0JCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKiBjbWRidWYpOwotCi0vKiBGbGFncyBmb3Igc3RhdHMuYm94ZXMKLSAqLwotI2RlZmluZSBSQURFT05fQk9YX0RNQV9JRExFICAgICAgMHgxCi0jZGVmaW5lIFJBREVPTl9CT1hfUklOR19GVUxMICAgICAweDIKLSNkZWZpbmUgUkFERU9OX0JPWF9GTElQICAgICAgICAgIDB4NAotI2RlZmluZSBSQURFT05fQk9YX1dBSVRfSURMRSAgICAgMHg4Ci0jZGVmaW5lIFJBREVPTl9CT1hfVEVYVFVSRV9MT0FEICAweDEwCi0KLS8qIFJlZ2lzdGVyIGRlZmluaXRpb25zLCByZWdpc3RlciBhY2Nlc3MgbWFjcm9zIGFuZCBkcm1BZGRNYXAgY29uc3RhbnRzCi0gKiBmb3IgUmFkZW9uIGtlcm5lbCBkcml2ZXIuCi0gKi8KLQotI2RlZmluZSBSQURFT05fQUdQX0NPTU1BTkQJCTB4MGY2MAotI2RlZmluZSBSQURFT05fQUdQX0NPTU1BTkRfUENJX0NPTkZJRyAgIDB4MDA2MAkvKiBvZmZzZXQgaW4gUENJIGNvbmZpZyAqLwotIwlkZWZpbmUgUkFERU9OX0FHUF9FTkFCTEUJKDE8PDgpCi0jZGVmaW5lIFJBREVPTl9BVVhfU0NJU1NPUl9DTlRMCQkweDI2ZjAKLSMJZGVmaW5lIFJBREVPTl9FWENMVVNJVkVfU0NJU1NPUl8wCSgxIDw8IDI0KQotIwlkZWZpbmUgUkFERU9OX0VYQ0xVU0lWRV9TQ0lTU09SXzEJKDEgPDwgMjUpCi0jCWRlZmluZSBSQURFT05fRVhDTFVTSVZFX1NDSVNTT1JfMgkoMSA8PCAyNikKLSMJZGVmaW5lIFJBREVPTl9TQ0lTU09SXzBfRU5BQkxFCQkoMSA8PCAyOCkKLSMJZGVmaW5lIFJBREVPTl9TQ0lTU09SXzFfRU5BQkxFCQkoMSA8PCAyOSkKLSMJZGVmaW5lIFJBREVPTl9TQ0lTU09SXzJfRU5BQkxFCQkoMSA8PCAzMCkKLQotI2RlZmluZSBSQURFT05fQlVTX0NOVEwJCQkweDAwMzAKLSMJZGVmaW5lIFJBREVPTl9CVVNfTUFTVEVSX0RJUwkJKDEgPDwgNikKLQotI2RlZmluZSBSQURFT05fQ0xPQ0tfQ05UTF9EQVRBCQkweDAwMGMKLSMJZGVmaW5lIFJBREVPTl9QTExfV1JfRU4JCQkoMSA8PCA3KQotI2RlZmluZSBSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWAkJMHgwMDA4Ci0jZGVmaW5lIFJBREVPTl9DT05GSUdfQVBFUl9TSVpFCQkweDAxMDgKLSNkZWZpbmUgUkFERU9OX0NPTkZJR19NRU1TSVpFCQkweDAwZjgKLSNkZWZpbmUgUkFERU9OX0NSVENfT0ZGU0VUCQkweDAyMjQKLSNkZWZpbmUgUkFERU9OX0NSVENfT0ZGU0VUX0NOVEwJCTB4MDIyOAotIwlkZWZpbmUgUkFERU9OX0NSVENfVElMRV9FTgkJKDEgPDwgMTUpCi0jCWRlZmluZSBSQURFT05fQ1JUQ19PRkZTRVRfRkxJUF9DTlRMCSgxIDw8IDE2KQotI2RlZmluZSBSQURFT05fQ1JUQzJfT0ZGU0VUCQkweDAzMjQKLSNkZWZpbmUgUkFERU9OX0NSVEMyX09GRlNFVF9DTlRMCTB4MDMyOAotCi0jZGVmaW5lIFJBREVPTl9QQ0lFX0lOREVYICAgICAgICAgICAgICAgMHgwMDMwCi0jZGVmaW5lIFJBREVPTl9QQ0lFX0RBVEEgICAgICAgICAgICAgICAgMHgwMDM0Ci0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTAkweDEwCi0jCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0VOCQkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9VTk1BUFBFRF9BQ0NFU1NfUEFTU19USFJVICgwPDwxKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9VTk1BUFBFRF9BQ0NFU1NfQ0xBTVBfTE8gICgxPDwxKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9VTk1BUFBFRF9BQ0NFU1NfRElTQ0FSRCAgICgzPDwxKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9NT0RFXzMyXzEyOF9DQUNIRQkoMDw8MykKLSMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfTU9ERV84XzRfMTI4X0NBQ0hFCSgxPDwzKQotIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DSEtfUldfVkFMSURfRU4gICAgICAoMTw8NSkKLSMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfSU5WQUxJREFURV9UTEIJKDE8PDgpCi0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0RJU0NBUkRfUkRfQUREUl9MTyAweDExCi0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0RJU0NBUkRfUkRfQUREUl9ISSAweDEyCi0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfQkFTRQkweDEzCi0jZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfU1RBUlRfTE8JMHgxNAotI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1NUQVJUX0hJCTB4MTUKLSNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9FTkRfTE8JMHgxNgotI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0VORF9ISQkweDE3Ci0KLSNkZWZpbmUgUkFERU9OX0lHUEdBUlRfSU5ERVggICAgICAgICAgICAweDE2OAotI2RlZmluZSBSQURFT05fSUdQR0FSVF9EQVRBICAgICAgICAgICAgIDB4MTZjCi0jZGVmaW5lIFJBREVPTl9JR1BHQVJUX1VOS18xOCAgICAgICAgICAgMHgxOAotI2RlZmluZSBSQURFT05fSUdQR0FSVF9DVFJMICAgICAgICAgICAgIDB4MmIKLSNkZWZpbmUgUkFERU9OX0lHUEdBUlRfQkFTRV9BRERSICAgICAgICAweDJjCi0jZGVmaW5lIFJBREVPTl9JR1BHQVJUX0ZMVVNIICAgICAgICAgICAgMHgyZQotI2RlZmluZSBSQURFT05fSUdQR0FSVF9FTkFCTEUgICAgICAgICAgIDB4MzgKLSNkZWZpbmUgUkFERU9OX0lHUEdBUlRfVU5LXzM5ICAgICAgICAgICAweDM5Ci0KLSNkZWZpbmUgUlM2OTBfTUNfSU5ERVggICAgICAgICAgICAgICAgICAweDc4Ci0jICAgZGVmaW5lIFJTNjkwX01DX0lOREVYX01BU0sgICAgICAgICAgMHgxZmYKLSMgICBkZWZpbmUgUlM2OTBfTUNfSU5ERVhfV1JfRU4gICAgICAgICAoMSA8PCA5KQotIyAgIGRlZmluZSBSUzY5MF9NQ19JTkRFWF9XUl9BQ0sgICAgICAgIDB4N2YKLSNkZWZpbmUgUlM2OTBfTUNfREFUQSAgICAgICAgICAgICAgICAgICAweDdjCi0KLSNkZWZpbmUgUlM2OTBfTUNfTUlTQ19DTlRMICAgICAgICAgICAgICAweDE4Ci0jZGVmaW5lIFJTNjkwX01DX0dBUlRfRkVBVFVSRV9JRCAgICAgICAgMHgyYgotI2RlZmluZSBSUzY5MF9NQ19HQVJUX0JBU0UgICAgICAgICAgICAgIDB4MmMKLSNkZWZpbmUgUlM2OTBfTUNfR0FSVF9DQUNIRV9DTlRMCTB4MmUKLSMgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9DQ19OT19DSEFOR0UgICAweDAKLSMgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9DQ19DTEVBUiAgICAgICAweDEKLSMgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9DTEVBUl9TVEFUVVMgICAoMSA8PCAxKQotIyAgICAgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9DTEVBUl9ET05FICAgICAoMCA8PCAxKQotIyAgICAgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9DTEVBUl9QRU5ESU5HICAoMSA8PCAxKQotI2RlZmluZSBSUzY5MF9NQ19BR1BfU0laRSAgICAgICAgICAgICAgIDB4MzgKLSMgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9ESVMgICAgICAgICAgICAweDAKLSMgICBkZWZpbmUgUlM2OTBfTUNfR0FSVF9FTiAgICAgICAgICAgICAweDEKLSMgICBkZWZpbmUgUlM2OTBfTUNfQUdQX1NJWkVfMzJNQiAgICAgICAoMCA8PCAxKQotIyAgIGRlZmluZSBSUzY5MF9NQ19BR1BfU0laRV82NE1CICAgICAgICgxIDw8IDEpCi0jICAgZGVmaW5lIFJTNjkwX01DX0FHUF9TSVpFXzEyOE1CICAgICAgKDIgPDwgMSkKLSMgICBkZWZpbmUgUlM2OTBfTUNfQUdQX1NJWkVfMjU2TUIgICAgICAoMyA8PCAxKQotIyAgIGRlZmluZSBSUzY5MF9NQ19BR1BfU0laRV81MTJNQiAgICAgICg0IDw8IDEpCi0jICAgZGVmaW5lIFJTNjkwX01DX0FHUF9TSVpFXzFHQiAgICAgICAgKDUgPDwgMSkKLSMgICBkZWZpbmUgUlM2OTBfTUNfQUdQX1NJWkVfMkdCICAgICAgICAoNiA8PCAxKQotI2RlZmluZSBSUzY5MF9NQ19BR1BfTU9ERV9DT05UUk9MICAgICAgIDB4MzkKLSNkZWZpbmUgUlM2OTBfTUNfRkJfTE9DQVRJT04gICAgICAgICAgICAweDEwMAotI2RlZmluZSBSUzY5MF9NQ19BR1BfTE9DQVRJT04gICAgICAgICAgIDB4MTAxCi0jZGVmaW5lIFJTNjkwX01DX0FHUF9CQVNFICAgICAgICAgICAgICAgMHgxMDIKLQotI2RlZmluZSBSNTIwX01DX0lORF9JTkRFWCAweDcwCi0jZGVmaW5lIFI1MjBfTUNfSU5EX1dSX0VOICgxPDwyNCkKLSNkZWZpbmUgUjUyMF9NQ19JTkRfREFUQSAgMHg3NAotCi0jZGVmaW5lIFJWNTE1X01DX0ZCX0xPQ0FUSU9OIDB4MDEKLSNkZWZpbmUgUlY1MTVfTUNfQUdQX0xPQ0FUSU9OIDB4MDIKLQotI2RlZmluZSBSNTIwX01DX0ZCX0xPQ0FUSU9OIDB4MDQKLSNkZWZpbmUgUjUyMF9NQ19BR1BfTE9DQVRJT04gMHgwNQotCi0jZGVmaW5lIFJBREVPTl9NUFBfVEJfQ09ORklHCQkweDAxYzAKLSNkZWZpbmUgUkFERU9OX01FTV9DTlRMCQkJMHgwMTQwCi0jZGVmaW5lIFJBREVPTl9NRU1fU0RSQU1fTU9ERV9SRUcJMHgwMTU4Ci0jZGVmaW5lIFJBREVPTl9BR1BfQkFTRQkJCTB4MDE3MAotCi0jZGVmaW5lIFJBREVPTl9SQjNEX0NPTE9ST0ZGU0VUCQkweDFjNDAKLSNkZWZpbmUgUkFERU9OX1JCM0RfQ09MT1JQSVRDSAkJMHgxYzQ4Ci0KLSNkZWZpbmUJUkFERU9OX1NSQ19YX1kJCQkweDE1OTAKLQotI2RlZmluZSBSQURFT05fRFBfR1VJX01BU1RFUl9DTlRMCTB4MTQ2YwotIwlkZWZpbmUgUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMCSgxIDw8IDEpCi0jCWRlZmluZSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SCSgxMyA8PCA0KQotIwlkZWZpbmUgUkFERU9OX0dNQ19CUlVTSF9OT05FCQkoMTUgPDwgNCkKLSMJZGVmaW5lIFJBREVPTl9HTUNfRFNUXzE2QlBQCQkoNCA8PCA4KQotIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfMjRCUFAJCSg1IDw8IDgpCi0jCWRlZmluZSBSQURFT05fR01DX0RTVF8zMkJQUAkJKDYgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX0RBVEFUWVBFX1NISUZUCTgKLSMJZGVmaW5lIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SCSgzIDw8IDEyKQotIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfTUVNT1JZCSgyIDw8IDI0KQotIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfSE9TVF9EQVRBCSgzIDw8IDI0KQotIwlkZWZpbmUgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTCSgxIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0dNQ19XUl9NU0tfRElTCQkoMSA8PCAzMCkKLSMJZGVmaW5lIFJBREVPTl9ST1AzX1MJCQkweDAwY2MwMDAwCi0jCWRlZmluZSBSQURFT05fUk9QM19QCQkJMHgwMGYwMDAwMAotI2RlZmluZSBSQURFT05fRFBfV1JJVEVfTUFTSwkJMHgxNmNjCi0jZGVmaW5lIFJBREVPTl9TUkNfUElUQ0hfT0ZGU0VUCQkweDE0MjgKLSNkZWZpbmUgUkFERU9OX0RTVF9QSVRDSF9PRkZTRVQJCTB4MTQyYwotI2RlZmluZSBSQURFT05fRFNUX1BJVENIX09GRlNFVF9DCTB4MWM4MAotIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX0xJTkVBUgkJKDAgPDwgMzApCi0jCWRlZmluZSBSQURFT05fRFNUX1RJTEVfTUFDUk8JCSgxIDw8IDMwKQotIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX01JQ1JPCQkoMiA8PCAzMCkKLSMJZGVmaW5lIFJBREVPTl9EU1RfVElMRV9CT1RICQkoMyA8PCAzMCkKLQotI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUcwCQkweDE1ZTAKLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHMQkJMHgxNWU0Ci0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzIJCTB4MTVlOAotI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUczCQkweDE1ZWMKLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHNAkJMHgxNWYwCi0jZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzUJCTB4MTVmNAotI2RlZmluZSBSQURFT05fU0NSQVRDSF9VTVNLCQkweDA3NzAKLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfQUREUgkJMHgwNzc0Ci0KLSNkZWZpbmUgUkFERU9OX1NDUkFUQ0hPRkYoIHggKQkJKFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQgKyA0Kih4KSkKLQotI2RlZmluZSBHRVRfU0NSQVRDSCggeCApCShkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzCQkJXAotCQkJCT8gRFJNX1JFQUQzMiggZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoeCkgKSBcCi0JCQkJOiBSQURFT05fUkVBRCggUkFERU9OX1NDUkFUQ0hfUkVHMCArIDQqKHgpICkgKQotCi0jZGVmaW5lIFJBREVPTl9HRU5fSU5UX0NOVEwJCTB4MDA0MAotIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX01BU0sJCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0sJCSgxIDw8IDkpCi0jCWRlZmluZSBSQURFT05fR1VJX0lETEVfSU5UX0VOQUJMRQkoMSA8PCAxOSkKLSMJZGVmaW5lIFJBREVPTl9TV19JTlRfRU5BQkxFCQkoMSA8PCAyNSkKLQotI2RlZmluZSBSQURFT05fR0VOX0lOVF9TVEFUVVMJCTB4MDA0NAotIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQJCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fQ1JUQ19WQkxBTktfU1RBVF9BQ0sJKDEgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVAkJKDEgPDwgOSkKLSMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVF9BQ0sJKDEgPDwgOSkKLSMJZGVmaW5lIFJBREVPTl9HVUlfSURMRV9JTlRfVEVTVF9BQ0sgICAgICgxIDw8IDE5KQotIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9URVNUCQkoMSA8PCAyNSkKLSMJZGVmaW5lIFJBREVPTl9TV19JTlRfVEVTVF9BQ0sJCSgxIDw8IDI1KQotIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9GSVJFCQkoMSA8PCAyNikKLQotI2RlZmluZSBSQURFT05fSE9TVF9QQVRIX0NOVEwJCTB4MDEzMAotIwlkZWZpbmUgUkFERU9OX0hEUF9TT0ZUX1JFU0VUCQkoMSA8PCAyNikKLSMJZGVmaW5lIFJBREVPTl9IRFBfV0NfVElNRU9VVF9NQVNLCSg3IDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0hEUF9XQ19USU1FT1VUXzI4QkNMSwkoNyA8PCAyOCkKLQotI2RlZmluZSBSQURFT05fSVNZTkNfQ05UTAkJMHgxNzI0Ci0jCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZMkRfSURMRTNECSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZM0RfSURMRTJECSgxIDw8IDEpCi0jCWRlZmluZSBSQURFT05fSVNZTkNfVFJJRzJEX0lETEUzRAkoMSA8PCAyKQotIwlkZWZpbmUgUkFERU9OX0lTWU5DX1RSSUczRF9JRExFMkQJKDEgPDwgMykKLSMJZGVmaW5lIFJBREVPTl9JU1lOQ19XQUlUX0lETEVHVUkJKDEgPDwgNCkKLSMJZGVmaW5lIFJBREVPTl9JU1lOQ19DUFNDUkFUQ0hfSURMRUdVSQkoMSA8PCA1KQotCi0jZGVmaW5lIFJBREVPTl9SQkJNX0dVSUNOVEwJCTB4MTcyYwotIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQX05PTkUJKDAgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9IT1NUX0RBVEFfU1dBUF8xNkJJVAkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQXzMyQklUCSgyIDw8IDApCi0jCWRlZmluZSBSQURFT05fSE9TVF9EQVRBX1NXQVBfSERXCSgzIDw8IDApCi0KLSNkZWZpbmUgUkFERU9OX01DX0FHUF9MT0NBVElPTgkJMHgwMTRjCi0jZGVmaW5lIFJBREVPTl9NQ19GQl9MT0NBVElPTgkJMHgwMTQ4Ci0jZGVmaW5lIFJBREVPTl9NQ0xLX0NOVEwJCTB4MDAxMgotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0EJCSgxIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0IJCSgxIDw8IDE3KQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0EJCSgxIDw8IDE4KQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0IJCSgxIDw8IDE5KQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUMJCSgxIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fQUlDCQkoMSA8PCAyMSkKLQotI2RlZmluZSBSQURFT05fUFBfQk9SREVSX0NPTE9SXzAJMHgxZDQwCi0jZGVmaW5lIFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMQkweDFkNDQKLSNkZWZpbmUgUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yCTB4MWQ0OAotI2RlZmluZSBSQURFT05fUFBfQ05UTAkJCTB4MWMzOAotIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfRU5BQkxFCQkoMSA8PCAgMSkKLSNkZWZpbmUgUkFERU9OX1BQX0xVTV9NQVRSSVgJCTB4MWQwMAotI2RlZmluZSBSQURFT05fUFBfTUlTQwkJCTB4MWMxNAotI2RlZmluZSBSQURFT05fUFBfUk9UX01BVFJJWF8wCQkweDFkNTgKLSNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzAJCTB4MWM1NAotI2RlZmluZSBSQURFT05fUFBfVFhPRkZTRVRfMAkJMHgxYzVjCi0jZGVmaW5lIFJBREVPTl9QUF9UWEZJTFRFUl8xCQkweDFjNmMKLSNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzIJCTB4MWM4NAotCi0jZGVmaW5lIFJBREVPTl9SQjJEX0RTVENBQ0hFX0NUTFNUQVQJMHgzNDJjCi0jCWRlZmluZSBSQURFT05fUkIyRF9EQ19GTFVTSAkJKDMgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9SQjJEX0RDX0ZSRUUJCSgzIDw8IDIpCi0jCWRlZmluZSBSQURFT05fUkIyRF9EQ19GTFVTSF9BTEwJCTB4ZgotIwlkZWZpbmUgUkFERU9OX1JCMkRfRENfQlVTWQkJKDEgPDwgMzEpCi0jZGVmaW5lIFJBREVPTl9SQjNEX0NOVEwJCTB4MWMzYwotIwlkZWZpbmUgUkFERU9OX0FMUEhBX0JMRU5EX0VOQUJMRQkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX1BMQU5FX01BU0tfRU5BQkxFCQkoMSA8PCAxKQotIwlkZWZpbmUgUkFERU9OX0RJVEhFUl9FTkFCTEUJCSgxIDw8IDIpCi0jCWRlZmluZSBSQURFT05fUk9VTkRfRU5BQkxFCQkoMSA8PCAzKQotIwlkZWZpbmUgUkFERU9OX1NDQUxFX0RJVEhFUl9FTkFCTEUJKDEgPDwgNCkKLSMJZGVmaW5lIFJBREVPTl9ESVRIRVJfSU5JVAkJKDEgPDwgNSkKLSMJZGVmaW5lIFJBREVPTl9ST1BfRU5BQkxFCQkoMSA8PCA2KQotIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfRU5BQkxFCQkoMSA8PCA3KQotIwlkZWZpbmUgUkFERU9OX1pfRU5BQkxFCQkJKDEgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9aQkxPQ0sxNgkJCSgxIDw8IDE1KQotI2RlZmluZSBSQURFT05fUkIzRF9ERVBUSE9GRlNFVAkJMHgxYzI0Ci0jZGVmaW5lIFJBREVPTl9SQjNEX0RFUFRIQ0xFQVJWQUxVRQkweDMyMzAKLSNkZWZpbmUgUkFERU9OX1JCM0RfREVQVEhQSVRDSAkJMHgxYzI4Ci0jZGVmaW5lIFJBREVPTl9SQjNEX1BMQU5FTUFTSwkJMHgxZDg0Ci0jZGVmaW5lIFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLCTB4MWQ3YwotI2RlZmluZSBSQURFT05fUkIzRF9aQ0FDSEVfTU9ERQkJMHgzMjUwCi0jZGVmaW5lIFJBREVPTl9SQjNEX1pDQUNIRV9DVExTVEFUCTB4MzI1NAotIwlkZWZpbmUgUkFERU9OX1JCM0RfWkNfRkxVU0gJCSgxIDw8IDApCi0jCWRlZmluZSBSQURFT05fUkIzRF9aQ19GUkVFCQkoMSA8PCAyKQotIwlkZWZpbmUgUkFERU9OX1JCM0RfWkNfRkxVU0hfQUxMCQkweDUKLSMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0JVU1kJCSgxIDw8IDMxKQotI2RlZmluZSBSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFUCTB4MzI1YwotIwlkZWZpbmUgUkFERU9OX1JCM0RfRENfRkxVU0gJCSgzIDw8IDApCi0jCWRlZmluZSBSQURFT05fUkIzRF9EQ19GUkVFCQkoMyA8PCAyKQotIwlkZWZpbmUgUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMCQkweGYKLSMJZGVmaW5lIFJBREVPTl9SQjNEX0RDX0JVU1kJCSgxIDw8IDMxKQotI2RlZmluZSBSQURFT05fUkIzRF9aU1RFTkNJTENOVEwJMHgxYzJjCi0jCWRlZmluZSBSQURFT05fWl9URVNUX01BU0sJCSg3IDw8IDQpCi0jCWRlZmluZSBSQURFT05fWl9URVNUX0FMV0FZUwkJKDcgPDwgNCkKLSMJZGVmaW5lIFJBREVPTl9aX0hJRVJBUkNIWV9FTkFCTEUJKDEgPDwgOCkKLSMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX1RFU1RfQUxXQVlTCSg3IDw8IDEyKQotIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfU19GQUlMX1JFUExBQ0UJKDIgPDwgMTYpCi0jCWRlZmluZSBSQURFT05fU1RFTkNJTF9aUEFTU19SRVBMQUNFCSgyIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfWkZBSUxfUkVQTEFDRQkoMiA8PCAyNCkKLSMJZGVmaW5lIFJBREVPTl9aX0NPTVBSRVNTSU9OX0VOQUJMRQkoMSA8PCAyOCkKLSMJZGVmaW5lIFJBREVPTl9GT1JDRV9aX0RJUlRZCQkoMSA8PCAyOSkKLSMJZGVmaW5lIFJBREVPTl9aX1dSSVRFX0VOQUJMRQkJKDEgPDwgMzApCi0jCWRlZmluZSBSQURFT05fWl9ERUNPTVBSRVNTSU9OX0VOQUJMRQkoMSA8PCAzMSkKLSNkZWZpbmUgUkFERU9OX1JCQk1fU09GVF9SRVNFVAkJMHgwMGYwCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9DUAkJKDEgPDwgIDApCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9ISQkJKDEgPDwgIDEpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9TRQkJKDEgPDwgIDIpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9SRQkJKDEgPDwgIDMpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9QUAkJKDEgPDwgIDQpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9FMgkJKDEgPDwgIDUpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9SQgkJKDEgPDwgIDYpCi0jCWRlZmluZSBSQURFT05fU09GVF9SRVNFVF9IRFAJCSgxIDw8ICA3KQotLyoKLSAqICAgNjowICBBdmFpbGFibGUgc2xvdHMgaW4gdGhlIEZJRk8KLSAqICAgOCAgICBIb3N0IEludGVyZmFjZSBhY3RpdmUKLSAqICAgOSAgICBDUCByZXF1ZXN0IGFjdGl2ZQotICogICAxMCAgIEZJRk8gcmVxdWVzdCBhY3RpdmUKLSAqICAgMTEgICBIb3N0IEludGVyZmFjZSByZXRyeSBhY3RpdmUKLSAqICAgMTIgICBDUCByZXRyeSBhY3RpdmUKLSAqICAgMTMgICBGSUZPIHJldHJ5IGFjdGl2ZQotICogICAxNCAgIEZJRk8gcGlwZWxpbmUgYnVzeQotICogICAxNSAgIEV2ZW50IGVuZ2luZSBidXN5Ci0gKiAgIDE2ICAgQ1AgY29tbWFuZCBzdHJlYW0gYnVzeQotICogICAxNyAgIDJEIGVuZ2luZSBidXN5Ci0gKiAgIDE4ICAgMkQgcG9ydGlvbiBvZiByZW5kZXIgYmFja2VuZCBidXN5Ci0gKiAgIDIwICAgM0Qgc2V0dXAgZW5naW5lIGJ1c3kKLSAqICAgMjYgICBHQSBlbmdpbmUgYnVzeQotICogICAyNyAgIENCQSAyRCBlbmdpbmUgYnVzeQotICogICAzMSAgIDJEIGVuZ2luZSBidXN5IG9yIDNEIGVuZ2luZSBidXN5IG9yIEZJRk8gbm90IGVtcHR5IG9yIENQIGJ1c3kgb3IKLSAqICAgICAgICAgICBjb21tYW5kIHN0cmVhbSBxdWV1ZSBub3QgZW1wdHkgb3IgUmluZyBCdWZmZXIgbm90IGVtcHR5Ci0gKi8KLSNkZWZpbmUgUkFERU9OX1JCQk1fU1RBVFVTCQkweDBlNDAKLS8qIFNhbWUgYXMgdGhlIHByZXZpb3VzIFJBREVPTl9SQkJNX1NUQVRVUzsgdGhpcyBpcyBhIG1pcnJvciBvZiB0aGF0IHJlZ2lzdGVyLiAgKi8KLS8qICNkZWZpbmUgUkFERU9OX1JCQk1fU1RBVFVTCQkweDE3NDAgKi8KLS8qIGJpdHMgNjowIGFyZSBkd29yZCBzbG90cyBhdmFpbGFibGUgaW4gdGhlIGNtZCBmaWZvICovCi0jCWRlZmluZSBSQURFT05fUkJCTV9GSUZPQ05UX01BU0sJCTB4MDA3ZgotIwlkZWZpbmUgUkFERU9OX0hJUlFfT05fUkJCCSgxIDw8ICA4KQotIwlkZWZpbmUgUkFERU9OX0NQUlFfT05fUkJCCSgxIDw8ICA5KQotIwlkZWZpbmUgUkFERU9OX0NGUlFfT05fUkJCCSgxIDw8IDEwKQotIwlkZWZpbmUgUkFERU9OX0hJUlFfSU5fUlRCVUYJKDEgPDwgMTEpCi0jCWRlZmluZSBSQURFT05fQ1BSUV9JTl9SVEJVRgkoMSA8PCAxMikKLSMJZGVmaW5lIFJBREVPTl9DRlJRX0lOX1JUQlVGCSgxIDw8IDEzKQotIwlkZWZpbmUgUkFERU9OX1BJUEVfQlVTWQkJKDEgPDwgMTQpCi0jCWRlZmluZSBSQURFT05fRU5HX0VWX0JVU1kJKDEgPDwgMTUpCi0jCWRlZmluZSBSQURFT05fQ1BfQ01EU1RSTV9CVVNZCSgxIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX0UyX0JVU1kJCSgxIDw8IDE3KQotIwlkZWZpbmUgUkFERU9OX1JCMkRfQlVTWQkJKDEgPDwgMTgpCi0jCWRlZmluZSBSQURFT05fUkIzRF9CVVNZCQkoMSA8PCAxOSkgLyogbm90IHVzZWQgb24gcjMwMCAqLwotIwlkZWZpbmUgUkFERU9OX1ZBUF9CVVNZCQkoMSA8PCAyMCkKLSMJZGVmaW5lIFJBREVPTl9SRV9CVVNZCQkoMSA8PCAyMSkgLyogbm90IHVzZWQgb24gcjMwMCAqLwotIwlkZWZpbmUgUkFERU9OX1RBTV9CVVNZCQkoMSA8PCAyMikgLyogbm90IHVzZWQgb24gcjMwMCAqLwotIwlkZWZpbmUgUkFERU9OX1RETV9CVVNZCQkoMSA8PCAyMykgLyogbm90IHVzZWQgb24gcjMwMCAqLwotIwlkZWZpbmUgUkFERU9OX1BCX0JVU1kJCSgxIDw8IDI0KSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fVElNX0JVU1kJCSgxIDw8IDI1KSAvKiBub3QgdXNlZCBvbiByMzAwICovCi0jCWRlZmluZSBSQURFT05fR0FfQlVTWQkJKDEgPDwgMjYpCi0jCWRlZmluZSBSQURFT05fQ0JBMkRfQlVTWQkoMSA8PCAyNykKLSMJZGVmaW5lIFJBREVPTl9SQkJNX0FDVElWRQkoMSA8PCAzMSkKLSNkZWZpbmUgUkFERU9OX1JFX0xJTkVfUEFUVEVSTgkJMHgxY2QwCi0jZGVmaW5lIFJBREVPTl9SRV9NSVNDCQkJMHgyNmM0Ci0jZGVmaW5lIFJBREVPTl9SRV9UT1BfTEVGVAkJMHgyNmMwCi0jZGVmaW5lIFJBREVPTl9SRV9XSURUSF9IRUlHSFQJCTB4MWM0NAotI2RlZmluZSBSQURFT05fUkVfU1RJUFBMRV9BRERSCQkweDFjYzgKLSNkZWZpbmUgUkFERU9OX1JFX1NUSVBQTEVfREFUQQkJMHgxY2NjCi0KLSNkZWZpbmUgUkFERU9OX1NDSVNTT1JfVExfMAkJMHgxY2Q4Ci0jZGVmaW5lIFJBREVPTl9TQ0lTU09SX0JSXzAJCTB4MWNkYwotI2RlZmluZSBSQURFT05fU0NJU1NPUl9UTF8xCQkweDFjZTAKLSNkZWZpbmUgUkFERU9OX1NDSVNTT1JfQlJfMQkJMHgxY2U0Ci0jZGVmaW5lIFJBREVPTl9TQ0lTU09SX1RMXzIJCTB4MWNlOAotI2RlZmluZSBSQURFT05fU0NJU1NPUl9CUl8yCQkweDFjZWMKLSNkZWZpbmUgUkFERU9OX1NFX0NPT1JEX0ZNVAkJMHgxYzUwCi0jZGVmaW5lIFJBREVPTl9TRV9DTlRMCQkJMHgxYzRjCi0jCWRlZmluZSBSQURFT05fRkZBQ0VfQ1VMTF9DVwkJKDAgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9CRkFDRV9TT0xJRAkJKDMgPDwgMSkKLSMJZGVmaW5lIFJBREVPTl9GRkFDRV9TT0xJRAkJKDMgPDwgMykKLSMJZGVmaW5lIFJBREVPTl9GTEFUX1NIQURFX1ZUWF9MQVNUCSgzIDw8IDYpCi0jCWRlZmluZSBSQURFT05fRElGRlVTRV9TSEFERV9GTEFUCSgxIDw8IDgpCi0jCWRlZmluZSBSQURFT05fRElGRlVTRV9TSEFERV9HT1VSQVVECSgyIDw8IDgpCi0jCWRlZmluZSBSQURFT05fQUxQSEFfU0hBREVfRkxBVAkJKDEgPDwgMTApCi0jCWRlZmluZSBSQURFT05fQUxQSEFfU0hBREVfR09VUkFVRAkoMiA8PCAxMCkKLSMJZGVmaW5lIFJBREVPTl9TUEVDVUxBUl9TSEFERV9GTEFUCSgxIDw8IDEyKQotIwlkZWZpbmUgUkFERU9OX1NQRUNVTEFSX1NIQURFX0dPVVJBVUQJKDIgPDwgMTIpCi0jCWRlZmluZSBSQURFT05fRk9HX1NIQURFX0ZMQVQJCSgxIDw8IDE0KQotIwlkZWZpbmUgUkFERU9OX0ZPR19TSEFERV9HT1VSQVVECQkoMiA8PCAxNCkKLSMJZGVmaW5lIFJBREVPTl9WUE9SVF9YWV9YRk9STV9FTkFCTEUJKDEgPDwgMjQpCi0jCWRlZmluZSBSQURFT05fVlBPUlRfWl9YRk9STV9FTkFCTEUJKDEgPDwgMjUpCi0jCWRlZmluZSBSQURFT05fVlRYX1BJWF9DRU5URVJfT0dMCSgxIDw8IDI3KQotIwlkZWZpbmUgUkFERU9OX1JPVU5EX01PREVfVFJVTkMJCSgwIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX1JPVU5EX1BSRUNfOFRIX1BJWAkoMSA8PCAzMCkKLSNkZWZpbmUgUkFERU9OX1NFX0NOVExfU1RBVFVTCQkweDIxNDAKLSNkZWZpbmUgUkFERU9OX1NFX0xJTkVfV0lEVEgJCTB4MWRiOAotI2RlZmluZSBSQURFT05fU0VfVlBPUlRfWFNDQUxFCQkweDFkOTgKLSNkZWZpbmUgUkFERU9OX1NFX1pCSUFTX0ZBQ1RPUgkJMHgxZGIwCi0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCAweDIyMTAKLSNkZWZpbmUgUkFERU9OX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCAgICAgICAgIDB4MjI1NAotI2RlZmluZSBSQURFT05fU0VfVENMX1ZFQ1RPUl9JTkRYX1JFRyAgICAgICAgMHgyMjAwCi0jICAgICAgIGRlZmluZSBSQURFT05fVkVDX0lORFhfT0NUV09SRF9TVFJJREVfU0hJRlQgIDE2Ci0jICAgICAgIGRlZmluZSBSQURFT05fVkVDX0lORFhfRFdPUkRfQ09VTlRfU0hJRlQgICAgIDI4Ci0jZGVmaW5lIFJBREVPTl9TRV9UQ0xfVkVDVE9SX0RBVEFfUkVHICAgICAgIDB4MjIwNAotI2RlZmluZSBSQURFT05fU0VfVENMX1NDQUxBUl9JTkRYX1JFRyAgICAgICAweDIyMDgKLSMgICAgICAgZGVmaW5lIFJBREVPTl9TQ0FMX0lORFhfRFdPUkRfU1RSSURFX1NISUZUICAxNgotI2RlZmluZSBSQURFT05fU0VfVENMX1NDQUxBUl9EQVRBX1JFRyAgICAgICAweDIyMEMKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0VfQUNDRVNTX0ZMQUdTCTB4MGJmOAotI2RlZmluZSBSQURFT05fU1VSRkFDRV9BQ0NFU1NfQ0xSCTB4MGJmYwotI2RlZmluZSBSQURFT05fU1VSRkFDRV9DTlRMCQkweDBiMDAKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1RSQU5TTEFUSU9OX0RJUwkoMSA8PCA4KQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAwX1NXUF9NQVNLCSgzIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAwX1NXUF9MSVRUTEUJKDAgPDwgMjApCi0jCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0JJRzE2CSgxIDw8IDIwKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAwX1NXUF9CSUczMgkoMiA8PCAyMCkKLSMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMV9TV1BfTUFTSwkoMyA8PCAyMikKLSMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMV9TV1BfTElUVExFCSgwIDw8IDIyKQotIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9CSUcxNgkoMSA8PCAyMikKLSMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMV9TV1BfQklHMzIJKDIgPDwgMjIpCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMF9JTkZPCQkweDBiMGMKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1BJVENIU0VMX01BU0sJKDB4MWZmIDw8IDApCi0jCWRlZmluZSBSQURFT05fU1VSRl9USUxFX01PREVfTUFTSwkoMyA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV9NQUNSTwkoMCA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV9NSUNSTwkoMSA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV8zMkJJVF9aCSgyIDw8IDE2KQotIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFXzE2QklUX1oJKDMgPDwgMTYpCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMF9MT1dFUl9CT1VORAkweDBiMDQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX1VQUEVSX0JPVU5ECTB4MGIwOAotIwlkZWZpbmUgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLCSgweDNmZiA8PCAwKQotI2RlZmluZSBSQURFT05fU1VSRkFDRTFfSU5GTwkJMHgwYjFjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMV9MT1dFUl9CT1VORAkweDBiMTQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UxX1VQUEVSX0JPVU5ECTB4MGIxOAotI2RlZmluZSBSQURFT05fU1VSRkFDRTJfSU5GTwkJMHgwYjJjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFMl9MT1dFUl9CT1VORAkweDBiMjQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UyX1VQUEVSX0JPVU5ECTB4MGIyOAotI2RlZmluZSBSQURFT05fU1VSRkFDRTNfSU5GTwkJMHgwYjNjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFM19MT1dFUl9CT1VORAkweDBiMzQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0UzX1VQUEVSX0JPVU5ECTB4MGIzOAotI2RlZmluZSBSQURFT05fU1VSRkFDRTRfSU5GTwkJMHgwYjRjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNF9MT1dFUl9CT1VORAkweDBiNDQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U0X1VQUEVSX0JPVU5ECTB4MGI0OAotI2RlZmluZSBSQURFT05fU1VSRkFDRTVfSU5GTwkJMHgwYjVjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNV9MT1dFUl9CT1VORAkweDBiNTQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U1X1VQUEVSX0JPVU5ECTB4MGI1OAotI2RlZmluZSBSQURFT05fU1VSRkFDRTZfSU5GTwkJMHgwYjZjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFNl9MT1dFUl9CT1VORAkweDBiNjQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U2X1VQUEVSX0JPVU5ECTB4MGI2OAotI2RlZmluZSBSQURFT05fU1VSRkFDRTdfSU5GTwkJMHgwYjdjCi0jZGVmaW5lIFJBREVPTl9TVVJGQUNFN19MT1dFUl9CT1VORAkweDBiNzQKLSNkZWZpbmUgUkFERU9OX1NVUkZBQ0U3X1VQUEVSX0JPVU5ECTB4MGI3OAotI2RlZmluZSBSQURFT05fU1dfU0VNQVBIT1JFCQkweDAxM2MKLQotI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTAkJMHgxNzIwCi0jCWRlZmluZSBSQURFT05fV0FJVF9DUlRDX1BGTElQCQkoMSA8PCAwKQotIwlkZWZpbmUgUkFERU9OX1dBSVRfMkRfSURMRQkJKDEgPDwgMTQpCi0jCWRlZmluZSBSQURFT05fV0FJVF8zRF9JRExFCQkoMSA8PCAxNSkKLSMJZGVmaW5lIFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTgkJKDEgPDwgMTYpCi0jCWRlZmluZSBSQURFT05fV0FJVF8zRF9JRExFQ0xFQU4JCSgxIDw8IDE3KQotIwlkZWZpbmUgUkFERU9OX1dBSVRfSE9TVF9JRExFQ0xFQU4JKDEgPDwgMTgpCi0KLSNkZWZpbmUgUkFERU9OX1JCM0RfWk1BU0tPRkZTRVQJCTB4MzIzNAotI2RlZmluZSBSQURFT05fUkIzRF9aU1RFTkNJTENOVEwJMHgxYzJjCi0jCWRlZmluZSBSQURFT05fREVQVEhfRk9STUFUXzE2QklUX0lOVF9aCSgwIDw8IDApCi0jCWRlZmluZSBSQURFT05fREVQVEhfRk9STUFUXzI0QklUX0lOVF9aCSgyIDw8IDApCi0KLS8qIENQIHJlZ2lzdGVycyAqLwotI2RlZmluZSBSQURFT05fQ1BfTUVfUkFNX0FERFIJCTB4MDdkNAotI2RlZmluZSBSQURFT05fQ1BfTUVfUkFNX1JBRERSCQkweDA3ZDgKLSNkZWZpbmUgUkFERU9OX0NQX01FX1JBTV9EQVRBSAkJMHgwN2RjCi0jZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fREFUQUwJCTB4MDdlMAotCi0jZGVmaW5lIFJBREVPTl9DUF9SQl9CQVNFCQkweDA3MDAKLSNkZWZpbmUgUkFERU9OX0NQX1JCX0NOVEwJCTB4MDcwNAotIwlkZWZpbmUgUkFERU9OX0JVRl9TV0FQXzMyQklUCQkoMiA8PCAxNikKLSMJZGVmaW5lIFJBREVPTl9SQl9OT19VUERBVEUJCSgxIDw8IDI3KQotI2RlZmluZSBSQURFT05fQ1BfUkJfUlBUUl9BRERSCQkweDA3MGMKLSNkZWZpbmUgUkFERU9OX0NQX1JCX1JQVFIJCTB4MDcxMAotI2RlZmluZSBSQURFT05fQ1BfUkJfV1BUUgkJMHgwNzE0Ci0KLSNkZWZpbmUgUkFERU9OX0NQX1JCX1dQVFJfREVMQVkJCTB4MDcxOAotIwlkZWZpbmUgUkFERU9OX1BSRV9XUklURV9USU1FUl9TSElGVAkwCi0jCWRlZmluZSBSQURFT05fUFJFX1dSSVRFX0xJTUlUX1NISUZUCTIzCi0KLSNkZWZpbmUgUkFERU9OX0NQX0lCX0JBU0UJCTB4MDczOAotCi0jZGVmaW5lIFJBREVPTl9DUF9DU1FfQ05UTAkJMHgwNzQwCi0jCWRlZmluZSBSQURFT05fQ1NRX0NOVF9QUklNQVJZX01BU0sJKDB4ZmYgPDwgMCkKLSMJZGVmaW5lIFJBREVPTl9DU1FfUFJJRElTX0lORERJUwkJKDAgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fQ1NRX1BSSVBJT19JTkRESVMJCSgxIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0NTUV9QUklCTV9JTkRESVMJCSgyIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0NTUV9QUklQSU9fSU5EQk0JCSgzIDw8IDI4KQotIwlkZWZpbmUgUkFERU9OX0NTUV9QUklCTV9JTkRCTQkJKDQgPDwgMjgpCi0jCWRlZmluZSBSQURFT05fQ1NRX1BSSVBJT19JTkRQSU8JCSgxNSA8PCAyOCkKLQotI2RlZmluZSBSQURFT05fQUlDX0NOVEwJCQkweDAxZDAKLSMJZGVmaW5lIFJBREVPTl9QQ0lHQVJUX1RSQU5TTEFURV9FTgkoMSA8PCAwKQotI2RlZmluZSBSQURFT05fQUlDX1NUQVQJCQkweDAxZDQKLSNkZWZpbmUgUkFERU9OX0FJQ19QVF9CQVNFCQkweDAxZDgKLSNkZWZpbmUgUkFERU9OX0FJQ19MT19BRERSCQkweDAxZGMKLSNkZWZpbmUgUkFERU9OX0FJQ19ISV9BRERSCQkweDAxZTAKLSNkZWZpbmUgUkFERU9OX0FJQ19UTEJfQUREUgkJMHgwMWU0Ci0jZGVmaW5lIFJBREVPTl9BSUNfVExCX0RBVEEJCTB4MDFlOAotCi0vKiBDUCBjb21tYW5kIHBhY2tldHMgKi8KLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDAJCTB4MDAwMDAwMDAKLSMJZGVmaW5lIFJBREVPTl9PTkVfUkVHX1dSCQkoMSA8PCAxNSkKLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDEJCTB4NDAwMDAwMDAKLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDIJCTB4ODAwMDAwMDAKLSNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDMJCTB4QzAwMDAwMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9OT1AgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9ORVhUX0NIQVIgICAgICAgICAgICAgIDB4MDAwMDE5MDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9QTFlfTkVYVFNDQU4gICAgICAgICAgIDB4MDAwMDFEMDAKLSMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9TRVRfU0NJU1NPUlMgICAgICAgICAgIDB4MDAwMDFFMDAKLQkgICAgIC8qIEdFTl9JTkRYX1BSSU0gaXMgdW5zdXBwb3J0ZWQgc3RhcnRpbmcgd2l0aCBSMzAwICovCi0jCWRlZmluZSBSQURFT05fM0RfUk5EUl9HRU5fSU5EWF9QUklNCTB4MDAwMDIzMDAKLSMJZGVmaW5lIFJBREVPTl9XQUlUX0ZPUl9JRExFCQkweDAwMDAyNjAwCi0jCWRlZmluZSBSQURFT05fM0RfRFJBV19WQlVGCQkweDAwMDAyODAwCi0jCWRlZmluZSBSQURFT05fM0RfRFJBV19JTU1ECQkweDAwMDAyOTAwCi0jCWRlZmluZSBSQURFT05fM0RfRFJBV19JTkRYCQkweDAwMDAyQTAwCi0jICAgICAgIGRlZmluZSBSQURFT05fQ1BfTE9BRF9QQUxFVFRFICAgICAgICAgICAweDAwMDAyQzAwCi0jCWRlZmluZSBSQURFT05fM0RfTE9BRF9WQlBOVFIJCTB4MDAwMDJGMDAKLSMJZGVmaW5lIFJBREVPTl9NUEVHX0lEQ1RfTUFDUk9CTE9DSwkweDAwMDAzMDAwCi0jCWRlZmluZSBSQURFT05fTVBFR19JRENUX01BQ1JPQkxPQ0tfUkVWCTB4MDAwMDMxMDAKLSMJZGVmaW5lIFJBREVPTl8zRF9DTEVBUl9aTUFTSwkJMHgwMDAwMzIwMAotIwlkZWZpbmUgUkFERU9OX0NQX0lORFhfQlVGRkVSCQkweDAwMDAzMzAwCi0jICAgICAgIGRlZmluZSBSQURFT05fQ1BfM0RfRFJBV19WQlVGXzIgICAgICAgICAweDAwMDAzNDAwCi0jICAgICAgIGRlZmluZSBSQURFT05fQ1BfM0RfRFJBV19JTU1EXzIgICAgICAgICAweDAwMDAzNTAwCi0jICAgICAgIGRlZmluZSBSQURFT05fQ1BfM0RfRFJBV19JTkRYXzIgICAgICAgICAweDAwMDAzNjAwCi0jCWRlZmluZSBSQURFT05fM0RfQ0xFQVJfSElaCQkweDAwMDAzNzAwCi0jICAgICAgIGRlZmluZSBSQURFT05fQ1BfM0RfQ0xFQVJfQ01BU0sgICAgICAgICAweDAwMDAzODAyCi0jCWRlZmluZSBSQURFT05fQ05UTF9IT1NUREFUQV9CTFQJCTB4MDAwMDk0MDAKLSMJZGVmaW5lIFJBREVPTl9DTlRMX1BBSU5UX01VTFRJCQkweDAwMDA5QTAwCi0jCWRlZmluZSBSQURFT05fQ05UTF9CSVRCTFRfTVVMVEkJCTB4MDAwMDlCMDAKLSMJZGVmaW5lIFJBREVPTl9DTlRMX1NFVF9TQ0lTU09SUwkJMHhDMDAwMUUwMAotCi0jZGVmaW5lIFJBREVPTl9DUF9QQUNLRVRfTUFTSwkJMHhDMDAwMDAwMAotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUX0NPVU5UX01BU0sJMHgzZmZmMDAwMAotI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMF9SRUdfTUFTSwkweDAwMDAwN2ZmCi0jZGVmaW5lIFJBREVPTl9DUF9QQUNLRVQxX1JFRzBfTUFTSwkweDAwMDAwN2ZmCi0jZGVmaW5lIFJBREVPTl9DUF9QQUNLRVQxX1JFRzFfTUFTSwkweDAwM2ZmODAwCi0KLSNkZWZpbmUgUkFERU9OX1ZUWF9aX1BSRVNFTlQJCQkoMSA8PCAzMSkKLSNkZWZpbmUgUkFERU9OX1ZUWF9QS0NPTE9SX1BSRVNFTlQJCSgxIDw8IDMpCi0KLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9OT05FCQkJKDAgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9QT0lOVAkJCSgxIDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfTElORQkJCSgyIDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfTElORV9TVFJJUAkJKDMgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9UUklfTElTVAkJKDQgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9UUklfRkFOCQkoNSA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9TVFJJUAkJKDYgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9UUklfVFlQRTIJCSg3IDw8IDApCi0jZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfUkVDVF9MSVNUCQkoOCA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFXzNWUlRfUE9JTlRfTElTVAkoOSA8PCAwKQotI2RlZmluZSBSQURFT05fUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUCQkoMTAgPDwgMCkKLSNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9NQVNLICAgICAgICAgICAgICAgICAgIDB4ZgotI2RlZmluZSBSQURFT05fUFJJTV9XQUxLX0lORAkJCSgxIDw8IDQpCi0jZGVmaW5lIFJBREVPTl9QUklNX1dBTEtfTElTVAkJCSgyIDw8IDQpCi0jZGVmaW5lIFJBREVPTl9QUklNX1dBTEtfUklORwkJCSgzIDw8IDQpCi0jZGVmaW5lIFJBREVPTl9DT0xPUl9PUkRFUl9CR1JBCQkJKDAgPDwgNikKLSNkZWZpbmUgUkFERU9OX0NPTE9SX09SREVSX1JHQkEJCQkoMSA8PCA2KQotI2RlZmluZSBSQURFT05fTUFPU19FTkFCTEUJCQkoMSA8PCA3KQotI2RlZmluZSBSQURFT05fVlRYX0ZNVF9SMTI4X01PREUJCSgwIDw8IDgpCi0jZGVmaW5lIFJBREVPTl9WVFhfRk1UX1JBREVPTl9NT0RFCQkoMSA8PCA4KQotI2RlZmluZSBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUCQkxNgotCi0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfQ0k4CQkyCi0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjE1NTUJMwotI2RlZmluZSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NQk0Ci0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODgJNgotI2RlZmluZSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjMzMgk3Ci0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCOAk5Ci0jZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjQ0NDQJMTUKLQotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfSTgJCTAKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FJODgJCTEKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1JHQjMzMgkJMgotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfQVJHQjE1NTUJMwotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfUkdCNTY1CQk0Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9BUkdCNDQ0NAk1Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9BUkdCODg4OAk2Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9SR0JBODg4OAk3Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9ZOAkJOAotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfVllVWTQyMiAgICAgICAgIDEwCi0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9ZVllVNDIyICAgICAgICAgMTEKLSNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0RYVDEgICAgICAgICAgICAxMgotI2RlZmluZSBSQURFT05fVFhGT1JNQVRfRFhUMjMgICAgICAgICAgIDE0Ci0jZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9EWFQ0NSAgICAgICAgICAgMTUKLQotI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzAgICAgICAgICAgICAgICAgMHgyZjAwCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMSAgICAgICAgICAgICAgICAweDJmMTAKLSNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF8yICAgICAgICAgICAgICAgIDB4MmYyMAotI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzMgICAgICAgICAgICAgICAgMHgyZjMwCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfNCAgICAgICAgICAgICAgICAweDJmNDAKLSNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF81ICAgICAgICAgICAgICAgIDB4MmY1MAotI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzYgICAgICAgICAgICAgICAgMHgyZjYwCi0jZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfNyAgICAgICAgICAgICAgICAweDJmNzAKLSNkZWZpbmUgUjIwMF9TRV9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAgICAgIDB4MjI2OAotI2RlZmluZSBSMjAwX1BQX1RGQUNUT1JfMCAgICAgICAgICAgICAgICAgMHgyZWUwCi0jZGVmaW5lIFIyMDBfU0VfVlRYX0ZNVF8wICAgICAgICAgICAgICAgICAweDIwODgKLSNkZWZpbmUgUjIwMF9TRV9WQVBfQ05UTCAgICAgICAgICAgICAgICAgIDB4MjA4MAotI2RlZmluZSBSMjAwX1NFX1RDTF9NQVRSSVhfU0VMXzAgICAgICAgICAgMHgyMjMwCi0jZGVmaW5lIFIyMDBfU0VfVENMX1RFWF9QUk9DX0NUTF8yICAgICAgICAweDIyYTgKLSNkZWZpbmUgUjIwMF9TRV9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMICAgIDB4MjJjMAotI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzUgICAgICAgICAgICAgICAgMHgyY2EwCi0jZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfNCAgICAgICAgICAgICAgICAweDJjODAKLSNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl8zICAgICAgICAgICAgICAgIDB4MmM2MAotI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzIgICAgICAgICAgICAgICAgMHgyYzQwCi0jZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfMSAgICAgICAgICAgICAgICAweDJjMjAKLSNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl8wICAgICAgICAgICAgICAgIDB4MmMwMAotI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzUgICAgICAgICAgICAgICAgMHgyZDc4Ci0jZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfNCAgICAgICAgICAgICAgICAweDJkNjAKLSNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF8zICAgICAgICAgICAgICAgIDB4MmQ0OAotI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzIgICAgICAgICAgICAgICAgMHgyZDMwCi0jZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfMSAgICAgICAgICAgICAgICAweDJkMTgKLSNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF8wICAgICAgICAgICAgICAgIDB4MmQwMAotCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAweDJjMTgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18xICAgICAgICAgICAgIDB4MmMzOAotI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzIgICAgICAgICAgICAgMHgyYzU4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfMyAgICAgICAgICAgICAweDJjNzgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU180ICAgICAgICAgICAgIDB4MmM5OAotI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzUgICAgICAgICAgICAgMHgyY2I4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzAgICAgICAgICAweDJkMDQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfMCAgICAgICAgIDB4MmQwOAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM18wICAgICAgICAgMHgyZDBjCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzAgICAgICAgICAweDJkMTAKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfMCAgICAgICAgIDB4MmQxNAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8xICAgICAgICAgMHgyZDFjCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzEgICAgICAgICAweDJkMjAKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfMSAgICAgICAgIDB4MmQyNAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF8xICAgICAgICAgMHgyZDI4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzEgICAgICAgICAweDJkMmMKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMiAgICAgICAgIDB4MmQzNAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8yICAgICAgICAgMHgyZDM4Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzIgICAgICAgICAweDJkM2MKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMiAgICAgICAgIDB4MmQ0MAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8yICAgICAgICAgMHgyZDQ0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzMgICAgICAgICAweDJkNGMKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfMyAgICAgICAgIDB4MmQ1MAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM18zICAgICAgICAgMHgyZDU0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzMgICAgICAgICAweDJkNTgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfMyAgICAgICAgIDB4MmQ1YwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV80ICAgICAgICAgMHgyZDY0Ci0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzQgICAgICAgICAweDJkNjgKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfNCAgICAgICAgIDB4MmQ2YwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF80ICAgICAgICAgMHgyZDcwCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzQgICAgICAgICAweDJkNzQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNSAgICAgICAgIDB4MmQ3YwotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl81ICAgICAgICAgMHgyZDgwCi0jZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzUgICAgICAgICAweDJkODQKLSNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfNSAgICAgICAgIDB4MmQ4OAotI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV81ICAgICAgICAgMHgyZDhjCi0KLSNkZWZpbmUgUjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMICAgICAgICAgIDB4MjZmMAotI2RlZmluZSBSMjAwX1NFX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgMHgyMGIwCi0jZGVmaW5lIFIyMDBfU0VfVENMX09VVFBVVF9WVFhfQ09NUF9TRUwgICAweDIyNTAKLSNkZWZpbmUgUjIwMF9QUF9UQU1fREVCVUczICAgICAgICAgICAgICAgIDB4MmQ5YwotI2RlZmluZSBSMjAwX1BQX0NOVExfWCAgICAgICAgICAgICAgICAgICAgMHgyY2M0Ci0jZGVmaW5lIFIyMDBfU0VfVkFQX0NOVExfU1RBVFVTICAgICAgICAgICAweDIxNDAKLSNkZWZpbmUgUjIwMF9SRV9TQ0lTU09SX1RMXzAgICAgICAgICAgICAgIDB4MWNkOAotI2RlZmluZSBSMjAwX1JFX1NDSVNTT1JfVExfMSAgICAgICAgICAgICAgMHgxY2UwCi0jZGVmaW5lIFIyMDBfUkVfU0NJU1NPUl9UTF8yICAgICAgICAgICAgICAweDFjZTgKLSNkZWZpbmUgUjIwMF9SQjNEX0RFUFRIWFlfT0ZGU0VUICAgICAgICAgIDB4MWQ2MAotI2RlZmluZSBSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgMHgyNmYwCi0jZGVmaW5lIFIyMDBfU0VfVlRYX1NUQVRFX0NOVEwgICAgICAgICAgICAweDIxODAKLSNkZWZpbmUgUjIwMF9SRV9QT0lOVFNJWkUgICAgICAgICAgICAgICAgIDB4MjY0OAotI2RlZmluZSBSMjAwX1NFX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCAweDIyNTQKLQotI2RlZmluZSBSQURFT05fUFBfVEVYX1NJWkVfMCAgICAgICAgICAgICAgICAweDFkMDQJLyogTlBPVCAqLwotI2RlZmluZSBSQURFT05fUFBfVEVYX1NJWkVfMSAgICAgICAgICAgICAgICAweDFkMGMKLSNkZWZpbmUgUkFERU9OX1BQX1RFWF9TSVpFXzIgICAgICAgICAgICAgICAgMHgxZDE0Ci0KLSNkZWZpbmUgUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzAgICAgICAgICAgICAgMHgxZDI0Ci0jZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19GQUNFU18xICAgICAgICAgICAgIDB4MWQyOAotI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfRkFDRVNfMiAgICAgICAgICAgICAweDFkMmMKLSNkZWZpbmUgUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMF8wICAgICAgICAgMHgxZGQwCS8qIGJpdHMgWzMxOjVdICovCi0jZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDFfMCAgICAgICAgIDB4MWUwMAotI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QyXzAgICAgICAgICAweDFlMTQKLQotI2RlZmluZSBSQURFT05fU0VfVENMX1NUQVRFX0ZMVVNIICAgICAgICAgICAweDIyODQKLQotI2RlZmluZSBTRV9WQVBfQ05UTF9fVENMX0VOQV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCi0jZGVmaW5lIFNFX1ZBUF9DTlRMX19GT1JDRV9XX1RPX09ORV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAKLSNkZWZpbmUgU0VfVkFQX0NOVExfX1ZGX01BWF9WVFhfTlVNX19TSElGVCAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMgotI2RlZmluZSBTRV9WVEVfQ05UTF9fVlRYX1hZX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCi0jZGVmaW5lIFNFX1ZURV9DTlRMX19WVFhfWl9GTVRfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAyMDAKLSNkZWZpbmUgU0VfVlRYX0ZNVF8wX19WVFhfWjBfUFJFU0VOVF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQotI2RlZmluZSBTRV9WVFhfRk1UXzBfX1ZUWF9XMF9QUkVTRU5UX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCi0jZGVmaW5lIFNFX1ZUWF9GTVRfMF9fVlRYX0NPTE9SXzBfRk1UX19TSElGVCAgICAgICAgICAgICAgIDB4MDAwMDAwMGIKLSNkZWZpbmUgUjIwMF8zRF9EUkFXX0lNTURfMiAgICAgIDB4QzAwMDM1MDAKLSNkZWZpbmUgUjIwMF9TRV9WVFhfRk1UXzEgICAgICAgICAgICAgICAgIDB4MjA4YwotI2RlZmluZSBSMjAwX1JFX0NOVEwgICAgICAgICAgICAgICAgICAgICAgMHgxYzUwCi0KLSNkZWZpbmUgUjIwMF9SQjNEX0JMRU5EQ09MT1IgICAgICAgICAgICAgIDB4MzIxOAotCi0jZGVmaW5lIFIyMDBfU0VfVENMX1BPSU5UX1NQUklURV9DTlRMICAgICAweDIyYzQKLQotI2RlZmluZSBSMjAwX1BQX1RSSV9QRVJGIDB4MmNmOAotCi0jZGVmaW5lIFIyMDBfUFBfQUZTXzAgICAgICAgICAgICAgICAgICAgICAweDJmODAKLSNkZWZpbmUgUjIwMF9QUF9BRlNfMSAgICAgICAgICAgICAgICAgICAgIDB4MmYwMAkvKiBzYW1lIGFzIHR4Y2JsZW5kXzAgKi8KLQotI2RlZmluZSBSMjAwX1ZBUF9QVlNfQ05UTF8xICAgICAgICAgICAgICAgMHgyMkQwCi0KLS8qIENvbnN0YW50cyAqLwotI2RlZmluZSBSQURFT05fTUFYX1VTRUNfVElNRU9VVAkJMTAwMDAwCS8qIDEwMCBtcyAqLwotCi0jZGVmaW5lIFJBREVPTl9MQVNUX0ZSQU1FX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMAotI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcJUkFERU9OX1NDUkFUQ0hfUkVHMQotI2RlZmluZSBSQURFT05fTEFTVF9DTEVBUl9SRUcJCVJBREVPTl9TQ1JBVENIX1JFRzIKLSNkZWZpbmUgUkFERU9OX0xBU1RfU1dJX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMwotI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSAkJMQotCi0jZGVmaW5lIFJBREVPTl9NQVhfVkJfQUdFCQkweDdmZmZmZmZmCi0jZGVmaW5lIFJBREVPTl9NQVhfVkJfVkVSVFMJCSgweGZmZmYpCi0KLSNkZWZpbmUgUkFERU9OX1JJTkdfSElHSF9NQVJLCQkxMjgKLQotI2RlZmluZSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFICAgICAgKDMyKjEwMjQpCi0KLSNkZWZpbmUgUkFERU9OX1JFQUQocmVnKQlEUk1fUkVBRDMyKCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKLSNkZWZpbmUgUkFERU9OX1dSSVRFKHJlZyx2YWwpCURSTV9XUklURTMyKCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKLSNkZWZpbmUgUkFERU9OX1JFQUQ4KHJlZykJRFJNX1JFQUQ4KCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKLSNkZWZpbmUgUkFERU9OX1dSSVRFOChyZWcsdmFsKQlEUk1fV1JJVEU4KCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKLQotI2RlZmluZSBSQURFT05fV1JJVEVfUExMKCBhZGRyLCB2YWwgKQkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlSQURFT05fV1JJVEU4KCBSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwJCQkJXAotCQkgICAgICAgKChhZGRyKSAmIDB4MWYpIHwgUkFERU9OX1BMTF9XUl9FTiApOwkJXAotCVJBREVPTl9XUklURSggUkFERU9OX0NMT0NLX0NOVExfREFUQSwgKHZhbCkgKTsJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9XUklURV9JR1BHQVJUKCBhZGRyLCB2YWwgKQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCVJBREVPTl9XUklURSggUkFERU9OX0lHUEdBUlRfSU5ERVgsCQkJCVwKLQkJCSgoYWRkcikgJiAweDdmKSB8ICgxIDw8IDgpKTsJCQlcCi0JUkFERU9OX1dSSVRFKCBSQURFT05fSUdQR0FSVF9EQVRBLCAodmFsKSApOwkJCVwKLQlSQURFT05fV1JJVEUoIFJBREVPTl9JR1BHQVJUX0lOREVYLCAweDdmICk7CQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fV1JJVEVfUENJRSggYWRkciwgdmFsICkJCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JUkFERU9OX1dSSVRFOCggUkFERU9OX1BDSUVfSU5ERVgsCQkJCVwKLQkJCSgoYWRkcikgJiAweGZmKSk7CQkJCVwKLQlSQURFT05fV1JJVEUoIFJBREVPTl9QQ0lFX0RBVEEsICh2YWwpICk7CQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fV1JJVEVfTUNJTkQoIGFkZHIsIHZhbCApCQkJCQlcCi0JZG8gewkJCQkJCQkJXAotCQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDB4ZmYwMDAwIHwgKChhZGRyKSAmIDB4ZmYpKTsJXAotCQlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfREFUQSwgKHZhbCkpOwkJCVwKLQkJUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAwKTsJXAotCX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUlM2OTBfV1JJVEVfTUNJTkQoIGFkZHIsIHZhbCApCQkJCQlcCi1kbyB7CQkJCQkJCQlcCi0JUkFERU9OX1dSSVRFKFJTNjkwX01DX0lOREVYLCBSUzY5MF9NQ19JTkRFWF9XUl9FTiB8ICgoYWRkcikgJiBSUzY5MF9NQ19JTkRFWF9NQVNLKSk7CVwKLQlSQURFT05fV1JJVEUoUlM2OTBfTUNfREFUQSwgdmFsKTsJCQlcCi0JUkFERU9OX1dSSVRFKFJTNjkwX01DX0lOREVYLCBSUzY5MF9NQ19JTkRFWF9XUl9BQ0spOwlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIENQX1BBQ0tFVDAoIHJlZywgbiApCQkJCQkJXAotCShSQURFT05fQ1BfUEFDS0VUMCB8ICgobikgPDwgMTYpIHwgKChyZWcpID4+IDIpKQotI2RlZmluZSBDUF9QQUNLRVQwX1RBQkxFKCByZWcsIG4gKQkJCQkJXAotCShSQURFT05fQ1BfUEFDS0VUMCB8IFJBREVPTl9PTkVfUkVHX1dSIHwgKChuKSA8PCAxNikgfCAoKHJlZykgPj4gMikpCi0jZGVmaW5lIENQX1BBQ0tFVDEoIHJlZzAsIHJlZzEgKQkJCQkJXAotCShSQURFT05fQ1BfUEFDS0VUMSB8ICgoKHJlZzEpID4+IDIpIDw8IDE1KSB8ICgocmVnMCkgPj4gMikpCi0jZGVmaW5lIENQX1BBQ0tFVDIoKQkJCQkJCQlcCi0JKFJBREVPTl9DUF9QQUNLRVQyKQotI2RlZmluZSBDUF9QQUNLRVQzKCBwa3QsIG4gKQkJCQkJCVwKLQkoUkFERU9OX0NQX1BBQ0tFVDMgfCAocGt0KSB8ICgobikgPDwgMTYpKQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBFbmdpbmUgY29udHJvbCBoZWxwZXIgbWFjcm9zCi0gKi8KLQotI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCkgZG8gewkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9XQUlUX1VOVElMLCAwICkgKTsJCQlcCi0JT1VUX1JJTkcoIChSQURFT05fV0FJVF8yRF9JRExFQ0xFQU4gfAkJCQlcCi0JCSAgIFJBREVPTl9XQUlUX0hPU1RfSURMRUNMRUFOKSApOwkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpIGRvIHsJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fV0FJVF9VTlRJTCwgMCApICk7CQkJXAotCU9VVF9SSU5HKCAoUkFERU9OX1dBSVRfM0RfSURMRUNMRUFOIHwJCQkJXAotCQkgICBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTikgKTsJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMX0lETEUoKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9XQUlUX1VOVElMLCAwICkgKTsJCQlcCi0JT1VUX1JJTkcoIChSQURFT05fV0FJVF8yRF9JRExFQ0xFQU4gfAkJCQlcCi0JCSAgIFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTiB8CQkJCVwKLQkJICAgUkFERU9OX1dBSVRfSE9TVF9JRExFQ0xFQU4pICk7CQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTF9QQUdFX0ZMSVBQRUQoKSBkbyB7CQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKLQlPVVRfUklORyggUkFERU9OX1dBSVRfQ1JUQ19QRkxJUCApOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9GTFVTSF9DQUNIRSgpIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCApICk7CVwKLQlPVVRfUklORyggUkFERU9OX1JCM0RfRENfRkxVU0ggKTsJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fUFVSR0VfQ0FDSEUoKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIDAgKSApOwlcCi0JT1VUX1JJTkcoIFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTCApOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9GTFVTSF9aQ0FDSEUoKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9SQjNEX1pDQUNIRV9DVExTVEFULCAwICkgKTsJXAotCU9VVF9SSU5HKCBSQURFT05fUkIzRF9aQ19GTFVTSCApOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9QVVJHRV9aQ0FDSEUoKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9SQjNEX1pDQUNIRV9DVExTVEFULCAwICkgKTsJXAotCU9VVF9SSU5HKCBSQURFT05fUkIzRF9aQ19GTFVTSF9BTEwgKTsJCQkJXAotfSB3aGlsZSAoMCkKLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotICogTWlzYyBoZWxwZXIgbWFjcm9zCi0gKi8KLQotLyogUGVyZmJveCBmdW5jdGlvbmFsaXR5IG9ubHkuCi0gKi8KLSNkZWZpbmUgUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKCBkZXZfcHJpdiApCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JaWYgKCEoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9ETUFfSURMRSkpIHsJCVwKLQkJdTMyIGhlYWQgPSBHRVRfUklOR19IRUFEKCBkZXZfcHJpdiApOwkJCVwKLQkJaWYgKGhlYWQgPT0gZGV2X3ByaXYtPnJpbmcudGFpbCkJCQlcCi0JCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9ETUFfSURMRTsJXAotCX0JCQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oIGRldl9wcml2ICkJCQkJXAotZG8gewkJCQkJCQkJCVwKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsJCVwKLQlpZiAoIHNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPj0gUkFERU9OX01BWF9WQl9BR0UgKSB7CQlcCi0JCWludCBfX3JldCA9IHJhZGVvbl9kb19jcF9pZGxlKCBkZXZfcHJpdiApOwkJXAotCQlpZiAoIF9fcmV0ICkgcmV0dXJuIF9fcmV0OwkJCQlcCi0JCXNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSAwOwkJCQlcCi0JCXJhZGVvbl9mcmVlbGlzdF9yZXNldCggZGV2ICk7CQkJCVwKLQl9CQkJCQkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIFJBREVPTl9ESVNQQVRDSF9BR0UoIGFnZSApIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX0xBU1RfRElTUEFUQ0hfUkVHLCAwICkgKTsJCVwKLQlPVVRfUklORyggYWdlICk7CQkJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBSQURFT05fRlJBTUVfQUdFKCBhZ2UgKSBkbyB7CQkJCQlcCi0JT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9MQVNUX0ZSQU1FX1JFRywgMCApICk7CQlcCi0JT1VUX1JJTkcoIGFnZSApOwkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUkFERU9OX0NMRUFSX0FHRSggYWdlICkgZG8gewkJCQkJXAotCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fTEFTVF9DTEVBUl9SRUcsIDAgKSApOwkJXAotCU9VVF9SSU5HKCBhZ2UgKTsJCQkJCQlcCi19IHdoaWxlICgwKQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBSaW5nIGNvbnRyb2wKLSAqLwotCi0jZGVmaW5lIFJBREVPTl9WRVJCT1NFCTAKLQotI2RlZmluZSBSSU5HX0xPQ0FMUwlpbnQgd3JpdGUsIF9ucjsgdW5zaWduZWQgaW50IG1hc2s7IHUzMiAqcmluZzsKLQotI2RlZmluZSBCRUdJTl9SSU5HKCBuICkgZG8gewkJCQkJCVwKLQlpZiAoIFJBREVPTl9WRVJCT1NFICkgewkJCQkJCVwKLQkJRFJNX0lORk8oICJCRUdJTl9SSU5HKCAlZCApXG4iLCAobikpOwkJCVwKLQl9CQkJCQkJCQlcCi0JaWYgKCBkZXZfcHJpdi0+cmluZy5zcGFjZSA8PSAobikgKiBzaXplb2YodTMyKSApIHsJCVwKLSAgICAgICAgICAgICAgICBDT01NSVRfUklORygpOwkJCQkJCVwKLQkJcmFkZW9uX3dhaXRfcmluZyggZGV2X3ByaXYsIChuKSAqIHNpemVvZih1MzIpICk7CVwKLQl9CQkJCQkJCQlcCi0JX25yID0gbjsgZGV2X3ByaXYtPnJpbmcuc3BhY2UgLT0gKG4pICogc2l6ZW9mKHUzMik7CQlcCi0JcmluZyA9IGRldl9wcml2LT5yaW5nLnN0YXJ0OwkJCQkJXAotCXdyaXRlID0gZGV2X3ByaXYtPnJpbmcudGFpbDsJCQkJCVwKLQltYXNrID0gZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIEFEVkFOQ0VfUklORygpIGRvIHsJCQkJCQlcCi0JaWYgKCBSQURFT05fVkVSQk9TRSApIHsJCQkJCQlcCi0JCURSTV9JTkZPKCAiQURWQU5DRV9SSU5HKCkgd3I9MHglMDZ4IHRhaWw9MHglMDZ4XG4iLAlcCi0JCQkgIHdyaXRlLCBkZXZfcHJpdi0+cmluZy50YWlsICk7CQkJXAotCX0JCQkJCQkJCVwKLQlpZiAoKChkZXZfcHJpdi0+cmluZy50YWlsICsgX25yKSAmIG1hc2spICE9IHdyaXRlKSB7CQlcCi0JCURSTV9FUlJPUigJCQkJCQlcCi0JCQkiQURWQU5DRV9SSU5HKCk6IG1pc21hdGNoOiBucjogJXggd3JpdGU6ICV4IGxpbmU6ICVkXG4iLAlcCi0JCQkoKGRldl9wcml2LT5yaW5nLnRhaWwgKyBfbnIpICYgbWFzayksCQlcCi0JCQl3cml0ZSwgX19MSU5FX18pOwkJCQkJCVwKLQl9IGVsc2UJCQkJCQkJCVwKLQkJZGV2X3ByaXYtPnJpbmcudGFpbCA9IHdyaXRlOwkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIENPTU1JVF9SSU5HKCkgZG8gewkJCQkJCVwKLQkvKiBGbHVzaCB3cml0ZXMgdG8gcmluZyAqLwkJCQkJXAotCURSTV9NRU1PUllCQVJSSUVSKCk7CQkJCQkJXAotCUdFVF9SSU5HX0hFQUQoIGRldl9wcml2ICk7CQkJCQlcCi0JUkFERU9OX1dSSVRFKCBSQURFT05fQ1BfUkJfV1BUUiwgZGV2X3ByaXYtPnJpbmcudGFpbCApOwkJXAotCS8qIHJlYWQgZnJvbSBQQ0kgYnVzIHRvIGVuc3VyZSBjb3JyZWN0IHBvc3RpbmcgKi8JCVwKLQlSQURFT05fUkVBRCggUkFERU9OX0NQX1JCX1JQVFIgKTsJCQkJXAotfSB3aGlsZSAoMCkKLQotI2RlZmluZSBPVVRfUklORyggeCApIGRvIHsJCQkJCQlcCi0JaWYgKCBSQURFT05fVkVSQk9TRSApIHsJCQkJCQlcCi0JCURSTV9JTkZPKCAiICAgT1VUX1JJTkcoIDB4JTA4eCApIGF0IDB4JXhcbiIsCQlcCi0JCQkgICAodW5zaWduZWQgaW50KSh4KSwgd3JpdGUgKTsJCQlcCi0JfQkJCQkJCQkJXAotCXJpbmdbd3JpdGUrK10gPSAoeCk7CQkJCQkJXAotCXdyaXRlICY9IG1hc2s7CQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgT1VUX1JJTkdfUkVHKCByZWcsIHZhbCApIGRvIHsJCQkJCVwKLQlPVVRfUklORyggQ1BfUEFDS0VUMCggcmVnLCAwICkgKTsJCQkJXAotCU9VVF9SSU5HKCB2YWwgKTsJCQkJCQlcCi19IHdoaWxlICgwKQotCi0jZGVmaW5lIE9VVF9SSU5HX1RBQkxFKCB0YWIsIHN6ICkgZG8gewkJCQkJXAotCWludCBfc2l6ZSA9IChzeik7CQkJCQlcCi0JaW50ICpfdGFiID0gKGludCAqKSh0YWIpOwkJCQlcCi0JCQkJCQkJCVwKLQlpZiAod3JpdGUgKyBfc2l6ZSA+IG1hc2spIHsJCQkJXAotCQlpbnQgX2kgPSAobWFzaysxKSAtIHdyaXRlOwkJCVwKLQkJX3NpemUgLT0gX2k7CQkJCQlcCi0JCXdoaWxlIChfaSA+IDAgKSB7CQkJCVwKLQkJCSooaW50ICopKHJpbmcgKyB3cml0ZSkgPSAqX3RhYisrOwlcCi0JCQl3cml0ZSsrOwkJCQlcCi0JCQlfaS0tOwkJCQkJXAotCQl9CQkJCQkJXAotCQl3cml0ZSA9IDA7CQkJCQlcCi0JCV90YWIgKz0gX2k7CQkJCQlcCi0JfQkJCQkJCQlcCi0Jd2hpbGUgKF9zaXplID4gMCkgewkJCQkJXAotCQkqKHJpbmcgKyB3cml0ZSkgPSAqX3RhYisrOwkJCVwKLQkJd3JpdGUrKzsJCQkJCVwKLQkJX3NpemUtLTsJCQkJCVwKLQl9CQkJCQkJCVwKLQl3cml0ZSAmPSBtYXNrOwkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNlbmRpZgkJCQkvKiBfX1JBREVPTl9EUlZfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9pcnEuYyBiL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2lycS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDlhZjM4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2lycS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzIwICswLDAgQEAKLS8qIHJhZGVvbl9pcnEuYyAtLSBJUlEgaGFuZGxpbmcgZm9yIHJhZGVvbiAtKi0gbGludXgtYyAtKi0gKi8KLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFRoZSBXZWF0aGVyIENoYW5uZWwsIEluYy4gIDIwMDIuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFRoZSBXZWF0aGVyIENoYW5uZWwgKFRNKSBmdW5kZWQgVHVuZ3N0ZW4gR3JhcGhpY3MgdG8gZGV2ZWxvcCB0aGUKLSAqIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgUmFkZW9uIDg1MDAgZHJpdmVyIHVuZGVyIHRoZSBYRnJlZTg2IGxpY2Vuc2UuCi0gKiBUaGlzIG5vdGljZSBtdXN0IGJlIHByZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKLSAqIFNvZnR3YXJlLgotICoKLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAotICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCi0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICogQXV0aG9yczoKLSAqICAgIEtlaXRoIFdoaXR3ZWxsIDxrZWl0aEB0dW5nc3RlbmdyYXBoaWNzLmNvbT4KLSAqICAgIE1pY2hlbCBEw6RuemVyIDxtaWNoZWxAZGFlbnplci5uZXQ+Ci0gKi8KLQotI2luY2x1ZGUgImRybVAuaCIKLSNpbmNsdWRlICJkcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJtLmgiCi0jaW5jbHVkZSAicmFkZW9uX2Rydi5oIgotCi1zdGF0aWMgX19pbmxpbmVfXyB1MzIgcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKLQkJCQkJICAgICAgdTMyIG1hc2spCi17Ci0JdTMyIGlycXMgPSBSQURFT05fUkVBRChSQURFT05fR0VOX0lOVF9TVEFUVVMpICYgbWFzazsKLQlpZiAoaXJxcykKLQkJUkFERU9OX1dSSVRFKFJBREVPTl9HRU5fSU5UX1NUQVRVUywgaXJxcyk7Ci0JcmV0dXJuIGlycXM7Ci19Ci0KLS8qIEludGVycnVwdHMgLSBVc2VkIGZvciBkZXZpY2Ugc3luY2hyb25pemF0aW9uIGFuZCBmbHVzaGluZyBpbiB0aGUKLSAqIGZvbGxvd2luZyBjaXJjdW1zdGFuY2VzOgotICoKLSAqIC0gRXhjbHVzaXZlIEZCIGFjY2VzcyB3aXRoIGh3IGlkbGU6Ci0gKiAgICAtIFdhaXQgZm9yIEdVSSBJZGxlICg/KSBpbnRlcnJ1cHQsIHRoZW4gZG8gbm9ybWFsIGZsdXNoLgotICoKLSAqIC0gRnJhbWUgdGhyb3R0bGluZywgTlZfZmVuY2U6Ci0gKiAgICAtIERyb3AgbWFya2VyIGlycSdzIGludG8gY29tbWFuZCBzdHJlYW0gYWhlYWQgb2YgdGltZS4KLSAqICAgIC0gV2FpdCBvbiBpcnEncyB3aXRoIGxvY2sgKm5vdCBoZWxkKgotICogICAgLSBDaGVjayBlYWNoIGZvciB0ZXJtaW5hdGlvbiBjb25kaXRpb24KLSAqCi0gKiAtIEludGVybmFsbHkgaW4gY3BfZ2V0YnVmZmVyLCBldGM6Ci0gKiAgICAtIGFzIGFib3ZlLCBidXQgd2FpdCB3aXRoIGxvY2sgaGVsZD8/PwotICoKLSAqIE5PVEU6IFRoZXNlIGZ1bmN0aW9ucyBhcmUgbWlzbGVhZGluZ2x5IG5hbWVkIC0tIHRoZSBpcnEncyBhcmVuJ3QKLSAqIHRpZWQgdG8gZG1hIGF0IGFsbCwgdGhpcyBpcyBqdXN0IGEgaGFuZ292ZXIgZnJvbSBkcmkgcHJlaGlzdG9yeS4KLSAqLwotCi1pcnFyZXR1cm5fdCByYWRlb25fZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUykKLXsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gKHN0cnVjdCBkcm1fZGV2aWNlICopIGFyZzsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQotCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MzIgc3RhdDsKLQotCS8qIE9ubHkgY29uc2lkZXIgdGhlIGJpdHMgd2UncmUgaW50ZXJlc3RlZCBpbiAtIG90aGVycyBjb3VsZCBiZSB1c2VkCi0JICogb3V0c2lkZSB0aGUgRFJNCi0JICovCi0Jc3RhdCA9IHJhZGVvbl9hY2tub3dsZWRnZV9pcnFzKGRldl9wcml2LCAoUkFERU9OX1NXX0lOVF9URVNUX0FDSyB8Ci0JCQkJCQkgIFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUIHwKLQkJCQkJCSAgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKSk7Ci0JaWYgKCFzdGF0KQotCQlyZXR1cm4gSVJRX05PTkU7Ci0KLQlzdGF0ICY9IGRldl9wcml2LT5pcnFfZW5hYmxlX3JlZzsKLQotCS8qIFNXIGludGVycnVwdCAqLwotCWlmIChzdGF0ICYgUkFERU9OX1NXX0lOVF9URVNUKSB7Ci0JCURSTV9XQUtFVVAoJmRldl9wcml2LT5zd2lfcXVldWUpOwotCX0KLQotCS8qIFZCTEFOSyBpbnRlcnJ1cHQgKi8KLQlpZiAoc3RhdCAmIChSQURFT05fQ1JUQ19WQkxBTktfU1RBVHxSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpKSB7Ci0JCWludCB2YmxhbmtfY3J0YyA9IGRldl9wcml2LT52YmxhbmtfY3J0YzsKLQotCQlpZiAoKHZibGFua19jcnRjICYKLQkJICAgICAoRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEgfCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpID09Ci0JCSAgICAoRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEgfCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpIHsKLQkJCWlmIChzdGF0ICYgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQpCi0JCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOwotCQkJaWYgKHN0YXQgJiBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpCi0JCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQyKTsKLQkJfSBlbHNlIGlmICgoKHN0YXQgJiBSQURFT05fQ1JUQ19WQkxBTktfU1RBVCkgJiYKLQkJCSAgICh2YmxhbmtfY3J0YyAmIERSTV9SQURFT05fVkJMQU5LX0NSVEMxKSkgfHwKLQkJCSAgICgoc3RhdCAmIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkgJiYKLQkJCSAgICAodmJsYW5rX2NydGMgJiBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpKQotCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQpOwotCi0JCURSTV9XQUtFVVAoJmRldi0+dmJsX3F1ZXVlKTsKLQkJZHJtX3ZibF9zZW5kX3NpZ25hbHMoZGV2KTsKLQl9Ci0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2VtaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgaW50IHJldDsKLQlSSU5HX0xPQ0FMUzsKLQotCWF0b21pY19pbmMoJmRldl9wcml2LT5zd2lfZW1pdHRlZCk7Ci0JcmV0ID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5zd2lfZW1pdHRlZCk7Ci0KLQlCRUdJTl9SSU5HKDQpOwotCU9VVF9SSU5HX1JFRyhSQURFT05fTEFTVF9TV0lfUkVHLCByZXQpOwotCU9VVF9SSU5HX1JFRyhSQURFT05fR0VOX0lOVF9TVEFUVVMsIFJBREVPTl9TV19JTlRfRklSRSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0JQ09NTUlUX1JJTkcoKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX3dhaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgc3dpX25yKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCWludCByZXQgPSAwOwotCi0JaWYgKFJBREVPTl9SRUFEKFJBREVPTl9MQVNUX1NXSV9SRUcpID49IHN3aV9ucikKLQkJcmV0dXJuIDA7Ci0KLQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7Ci0KLQlEUk1fV0FJVF9PTihyZXQsIGRldl9wcml2LT5zd2lfcXVldWUsIDMgKiBEUk1fSFosCi0JCSAgICBSQURFT05fUkVBRChSQURFT05fTEFTVF9TV0lfUkVHKSA+PSBzd2lfbnIpOwotCi0JcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZHJpdmVyX3ZibGFua19kb193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCQl1bnNpZ25lZCBpbnQgKnNlcXVlbmNlLCBpbnQgY3J0YykKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQotCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1bnNpZ25lZCBpbnQgY3VyX3ZibGFuazsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgYWNrID0gMDsKLQlhdG9taWNfdCAqY291bnRlcjsKLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoY3J0YyA9PSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSkgewotCQljb3VudGVyID0gJmRldi0+dmJsX3JlY2VpdmVkOwotCQlhY2sgfD0gUkFERU9OX0NSVENfVkJMQU5LX1NUQVQ7Ci0JfSBlbHNlIGlmIChjcnRjID09IERSTV9SQURFT05fVkJMQU5LX0NSVEMyKSB7Ci0JCWNvdW50ZXIgPSAmZGV2LT52YmxfcmVjZWl2ZWQyOwotCQlhY2sgfD0gUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUOwotCX0gZWxzZQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJhZGVvbl9hY2tub3dsZWRnZV9pcnFzKGRldl9wcml2LCBhY2spOwotCi0JZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCi0JLyogQXNzdW1lIHRoYXQgdGhlIHVzZXIgaGFzIG1pc3NlZCB0aGUgY3VycmVudCBzZXF1ZW5jZSBudW1iZXIKLQkgKiBieSBhYm91dCBhIGRheSByYXRoZXIgdGhhbiBzaGUgd2FudHMgdG8gd2FpdCBmb3IgeWVhcnMKLQkgKiB1c2luZyB2ZXJ0aWNhbCBibGFua3MuLi4KLQkgKi8KLQlEUk1fV0FJVF9PTihyZXQsIGRldi0+dmJsX3F1ZXVlLCAzICogRFJNX0haLAotCQkgICAgKCgoY3VyX3ZibGFuayA9IGF0b21pY19yZWFkKGNvdW50ZXIpKQotCQkgICAgICAtICpzZXF1ZW5jZSkgPD0gKDEgPDwgMjMpKSk7Ci0KLQkqc2VxdWVuY2UgPSBjdXJfdmJsYW5rOwotCi0JcmV0dXJuIHJldDsKLX0KLQotaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKLXsKLQlyZXR1cm4gcmFkZW9uX2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSk7Ci19Ci0KLWludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0MihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQotewotCXJldHVybiByYWRlb25fZHJpdmVyX3ZibGFua19kb193YWl0KGRldiwgc2VxdWVuY2UsIERSTV9SQURFT05fVkJMQU5LX0NSVEMyKTsKLX0KLQotLyogTmVlZHMgdGhlIGxvY2sgYXMgaXQgdG91Y2hlcyB0aGUgcmluZy4KLSAqLwotaW50IHJhZGVvbl9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25faXJxX2VtaXRfdCAqZW1pdCA9IGRhdGE7Ci0JaW50IHJlc3VsdDsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoIWRldl9wcml2KSB7Ci0JCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXN1bHQgPSByYWRlb25fZW1pdF9pcnEoZGV2KTsKLQotCWlmIChEUk1fQ09QWV9UT19VU0VSKGVtaXQtPmlycV9zZXEsICZyZXN1bHQsIHNpemVvZihpbnQpKSkgewotCQlEUk1fRVJST1IoImNvcHlfdG9fdXNlclxuIik7Ci0JCXJldHVybiAtRUZBVUxUOwotCX0KLQotCXJldHVybiAwOwotfQotCi0vKiBEb2Vzbid0IG5lZWQgdGhlIGhhcmR3YXJlIGxvY2suCi0gKi8KLWludCByYWRlb25faXJxX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX2lycV93YWl0X3QgKmlycXdhaXQgPSBkYXRhOwotCi0JaWYgKCFkZXZfcHJpdikgewotCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIHJhZGVvbl93YWl0X2lycShkZXYsIGlycXdhaXQtPmlycV9zZXEpOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fZW5hYmxlX2ludGVycnVwdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCi0JZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnID0gUkFERU9OX1NXX0lOVF9FTkFCTEU7Ci0JaWYgKGRldl9wcml2LT52YmxhbmtfY3J0YyAmIERSTV9SQURFT05fVkJMQU5LX0NSVEMxKQotCQlkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWcgfD0gUkFERU9OX0NSVENfVkJMQU5LX01BU0s7Ci0KLQlpZiAoZGV2X3ByaXYtPnZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpCi0JCWRldl9wcml2LT5pcnFfZW5hYmxlX3JlZyB8PSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0s7Ci0KLQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnKTsKLQlkZXZfcHJpdi0+aXJxX2VuYWJsZWQgPSAxOwotfQotCi0vKiBkcm1fZG1hLmggaG9va3MKLSovCi12b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KLQkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7Ci0KLQkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KLQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7Ci0KLQkvKiBDbGVhciBiaXRzIGlmIHRoZXkncmUgYWxyZWFkeSBoaWdoICovCi0JcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZGV2X3ByaXYsIChSQURFT05fU1dfSU5UX1RFU1RfQUNLIHwKLQkJCQkJICAgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQgfAotCQkJCQkgICBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpKTsKLX0KLQotdm9pZCByYWRlb25fZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQotCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQotCWF0b21pY19zZXQoJmRldl9wcml2LT5zd2lfZW1pdHRlZCwgMCk7Ci0JRFJNX0lOSVRfV0FJVFFVRVVFKCZkZXZfcHJpdi0+c3dpX3F1ZXVlKTsKLQotCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7Ci19Ci0KLXZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9Ci0JICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCWlmICghZGV2X3ByaXYpCi0JCXJldHVybjsKLQotCWRldl9wcml2LT5pcnFfZW5hYmxlZCA9IDA7Ci0KLQkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KLQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7Ci19Ci0KLQotaW50IHJhZGVvbl92YmxhbmtfY3J0Y19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKLQl1MzIgZmxhZzsKLQl1MzIgdmFsdWU7Ci0KLQlmbGFnID0gUkFERU9OX1JFQUQoUkFERU9OX0dFTl9JTlRfQ05UTCk7Ci0JdmFsdWUgPSAwOwotCi0JaWYgKGZsYWcgJiBSQURFT05fQ1JUQ19WQkxBTktfTUFTSykKLQkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzE7Ci0KLQlpZiAoZmxhZyAmIFJBREVPTl9DUlRDMl9WQkxBTktfTUFTSykKLQkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzI7Ci0JcmV0dXJuIHZhbHVlOwotfQotCi1pbnQgcmFkZW9uX3ZibGFua19jcnRjX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQ2NF90IHZhbHVlKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOwotCWlmICh2YWx1ZSAmIH4oRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEgfCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpIHsKLQkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBpbnZhbGlkIGNydGMgMHgleFxuIiwgKHVuc2lnbmVkIGludCl2YWx1ZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSAodW5zaWduZWQgaW50KXZhbHVlOwotCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7Ci0JcmV0dXJuIDA7Ci19CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9zdGF0ZS5jIGIvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fc3RhdGUuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY3NTUxMi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9zdGF0ZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMzE5MiArMCwwIEBACi0vKiByYWRlb25fc3RhdGUuYyAtLSBTdGF0ZSBzdXBwb3J0IGZvciBSYWRlb24gLSotIGxpbnV4LWMgLSotICovCi0vKgotICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgRnJlbW9udCwgQ2FsaWZvcm5pYS4KLSAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Ci0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCi0gKiBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgotICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCi0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgotICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgotICoKLSAqIEF1dGhvcnM6Ci0gKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Ci0gKiAgICBLZXZpbiBFLiBNYXJ0aW4gPG1hcnRpbkB2YWxpbnV4LmNvbT4KLSAqLwotCi0jaW5jbHVkZSAiZHJtUC5oIgotI2luY2x1ZGUgImRybS5oIgotI2luY2x1ZGUgImRybV9zYXJlYS5oIgotI2luY2x1ZGUgInJhZGVvbl9kcm0uaCIKLSNpbmNsdWRlICJyYWRlb25fZHJ2LmgiCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIEhlbHBlciBmdW5jdGlvbnMgZm9yIGNsaWVudCBzdGF0ZSBjaGVja2luZyBhbmQgZml4dXAKLSAqLwotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKgotCQkJCQkJICAgIGRldl9wcml2LAotCQkJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqIGZpbGVfcHJpdiwKLQkJCQkJCSAgICB1MzIgKm9mZnNldCkKLXsKLQl1NjQgb2ZmID0gKm9mZnNldDsKLQl1MzIgZmJfZW5kID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemUgLSAxOwotCXN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqcmFkZW9uX3ByaXY7Ci0KLQkvKiBIcm0gLi4uIHRoZSBzdG9yeSBvZiB0aGUgb2Zmc2V0IC4uLiBTbyB0aGlzIGZ1bmN0aW9uIGNvbnZlcnRzCi0JICogdGhlIHZhcmlvdXMgaWRlYXMgb2Ygd2hhdCB1c2VybGFuZCBjbGllbnRzIG1pZ2h0IGhhdmUgZm9yIGFuCi0JICogb2Zmc2V0IGluIHRoZSBjYXJkIGFkZHJlc3Mgc3BhY2UgaW50byBhbiBvZmZzZXQgaW50byB0aGUgY2FyZAotCSAqIGFkZHJlc3Mgc3BhY2UgOikgU28gd2l0aCBhIHNhbmUgY2xpZW50LCBpdCBzaG91bGQganVzdCBrZWVwCi0JICogdGhlIHZhbHVlIGludGFjdCBhbmQganVzdCBkbyBzb21lIGJvdW5kYXJ5IGNoZWNraW5nLiBIb3dldmVyLAotCSAqIG5vdCBhbGwgY2xpZW50cyBhcmUgc2FuZS4gU29tZSBvbGRlciBjbGllbnRzIHBhc3MgdXMgMCBiYXNlZAotCSAqIG9mZnNldHMgcmVsYXRpdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmcmFtZWJ1ZmZlciBhbmQgc29tZSBtYXkKLQkgKiBhc3N1bWUgdGhlIEFHUCBhcGVydHVyZSBpdCBhcHBlbmRlZCB0byB0aGUgZnJhbWVidWZmZXIsIHNvIHdlCi0JICogdHJ5IHRvIGRldGVjdCB0aG9zZSBjYXNlcyBhbmQgZml4IHRoZW0gdXAuCi0JICoKLQkgKiBOb3RlOiBJdCBtaWdodCBiZSBhIGdvb2QgaWRlYSBoZXJlIHRvIG1ha2Ugc3VyZSB0aGUgb2Zmc2V0IGxhbmRzCi0JICogaW4gc29tZSAiYWxsb3dlZCIgYXJlYSB0byBwcm90ZWN0IHRoaW5ncyBsaWtlIHRoZSBQQ0lFIEdBUlQuLi4KLQkgKi8KLQotCS8qIEZpcnN0LCB0aGUgYmVzdCBjYXNlLCB0aGUgb2Zmc2V0IGFscmVhZHkgbGFuZHMgaW4gZWl0aGVyIHRoZQotCSAqIGZyYW1lYnVmZmVyIG9yIHRoZSBHQVJUIG1hcHBlZCBzcGFjZQotCSAqLwotCWlmIChyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBvZmYpKQotCQlyZXR1cm4gMDsKLQotCS8qIE9rLCB0aGF0IGRpZG4ndCBoYXBwZW4uLi4gbm93IGNoZWNrIGlmIHdlIGhhdmUgYSB6ZXJvIGJhc2VkCi0JICogb2Zmc2V0IHRoYXQgZml0cyBpbiB0aGUgZnJhbWVidWZmZXIgKyBnYXJ0IHNwYWNlLCBhcHBseSB0aGUKLQkgKiBtYWdpYyBvZmZzZXQgd2UgZ2V0IGZyb20gU0VUUEFSQU0gb3IgY2FsY3VsYXRlZCBmcm9tIGZiX2xvY2F0aW9uCi0JICovCi0JaWYgKG9mZiA8IChkZXZfcHJpdi0+ZmJfc2l6ZSArIGRldl9wcml2LT5nYXJ0X3NpemUpKSB7Ci0JCXJhZGVvbl9wcml2ID0gZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKLQkJb2ZmICs9IHJhZGVvbl9wcml2LT5yYWRlb25fZmJfZGVsdGE7Ci0JfQotCi0JLyogRmluYWxseSwgYXNzdW1lIHdlIGFpbWVkIGF0IGEgR0FSVCBvZmZzZXQgaWYgYmV5b25kIHRoZSBmYiAqLwotCWlmIChvZmYgPiBmYl9lbmQpCi0JCW9mZiA9IG9mZiAtIGZiX2VuZCAtIDEgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydDsKLQotCS8qIE5vdyByZWNoZWNrIGFuZCBmYWlsIGlmIG91dCBvZiBib3VuZHMgKi8KLQlpZiAocmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2ZmKSkgewotCQlEUk1fREVCVUcoIm9mZnNldCBmaXhlZCB1cCB0byAweCV4XG4iLCAodW5zaWduZWQgaW50KW9mZik7Ci0JCSpvZmZzZXQgPSBvZmY7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gLUVJTlZBTDsKLX0KLQotc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0cyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqCi0JCQkJCQkgICAgIGRldl9wcml2LAotCQkJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkJCSAgICAgaW50IGlkLCB1MzIgKmRhdGEpCi17Ci0Jc3dpdGNoIChpZCkgewotCi0JY2FzZSBSQURFT05fRU1JVF9QUF9NSVNDOgotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJICAgICZkYXRhWyhSQURFT05fUkIzRF9ERVBUSE9GRlNFVCAtIFJBREVPTl9QUF9NSVNDKSAvIDRdKSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlcHRoIGJ1ZmZlciBvZmZzZXRcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl9FTUlUX1BQX0NOVEw6Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkgICAgJmRhdGFbKFJBREVPTl9SQjNEX0NPTE9ST0ZGU0VUIC0gUkFERU9OX1BQX0NOVEwpIC8gNF0pKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgY29sb3VyIGJ1ZmZlciBvZmZzZXRcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF8wOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzE6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMjoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF8zOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzQ6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfNToKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgICZkYXRhWzBdKSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIFIyMDAgdGV4dHVyZSBvZmZzZXRcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzA6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9UWEZJTFRFUl8xOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMjoKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCSAgICAmZGF0YVsoUkFERU9OX1BQX1RYT0ZGU0VUXzAgLSBSQURFT05fUFBfVFhGSUxURVJfMCkgLyA0XSkpIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCBSMTAwIHRleHR1cmUgb2Zmc2V0XG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWJyZWFrOwotCi0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18wOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMToKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzI6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18zOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfNDoKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzU6ewotCQkJaW50IGk7Ci0JCQlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7Ci0JCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LAotCQkJCQkJCQkgIGZpbGVfcHJpdiwKLQkJCQkJCQkJICAmZGF0YVtpXSkpIHsKLQkJCQkJRFJNX0VSUk9SCi0JCQkJCSAgICAoIkludmFsaWQgUjIwMCBjdWJpYyB0ZXh0dXJlIG9mZnNldFxuIik7Ci0JCQkJCXJldHVybiAtRUlOVkFMOwotCQkJCX0KLQkJCX0KLQkJCWJyZWFrOwotCQl9Ci0KLQljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDA6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QxOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMjp7Ci0JCQlpbnQgaTsKLQkJCWZvciAoaSA9IDA7IGkgPCA1OyBpKyspIHsKLQkJCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsCi0JCQkJCQkJCSAgZmlsZV9wcml2LAotCQkJCQkJCQkgICZkYXRhW2ldKSkgewotCQkJCQlEUk1fRVJST1IKLQkJCQkJICAgICgiSW52YWxpZCBSMTAwIGN1YmljIHRleHR1cmUgb2Zmc2V0XG4iKTsKLQkJCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQkJfQotCQkJfQotCQl9Ci0JCWJyZWFrOwotCi0JY2FzZSBSMjAwX0VNSVRfVkFQX0NUTDp7Ci0JCQlSSU5HX0xPQ0FMUzsKLQkJCUJFR0lOX1JJTkcoMik7Ci0JCQlPVVRfUklOR19SRUcoUkFERU9OX1NFX1RDTF9TVEFURV9GTFVTSCwgMCk7Ci0JCQlBRFZBTkNFX1JJTkcoKTsKLQkJfQotCQlicmVhazsKLQotCWNhc2UgUkFERU9OX0VNSVRfUkIzRF9DT0xPUlBJVENIOgotCWNhc2UgUkFERU9OX0VNSVRfUkVfTElORV9QQVRURVJOOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfTElORV9XSURUSDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX0xVTV9NQVRSSVg6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9ST1RfTUFUUklYXzA6Ci0JY2FzZSBSQURFT05fRU1JVF9SQjNEX1NURU5DSUxSRUZNQVNLOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfVlBPUlRfWFNDQUxFOgotCWNhc2UgUkFERU9OX0VNSVRfU0VfQ05UTDoKLQljYXNlIFJBREVPTl9FTUlUX1NFX0NOVExfU1RBVFVTOgotCWNhc2UgUkFERU9OX0VNSVRfUkVfTUlTQzoKLQljYXNlIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8wOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzE6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9CT1JERVJfQ09MT1JfMjoKLQljYXNlIFJBREVPTl9FTUlUX1NFX1pCSUFTX0ZBQ1RPUjoKLQljYXNlIFJBREVPTl9FTUlUX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVDoKLQljYXNlIFJBREVPTl9FTUlUX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfMToKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8yOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF81OgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzY6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNzoKLQljYXNlIFIyMDBfRU1JVF9UQ0xfTElHSFRfTU9ERUxfQ1RMXzA6Ci0JY2FzZSBSMjAwX0VNSVRfVEZBQ1RPUl8wOgotCWNhc2UgUjIwMF9FTUlUX1ZUWF9GTVRfMDoKLQljYXNlIFIyMDBfRU1JVF9NQVRSSVhfU0VMRUNUXzA6Ci0JY2FzZSBSMjAwX0VNSVRfVEVYX1BST0NfQ1RMXzI6Ci0JY2FzZSBSMjAwX0VNSVRfVENMX1VDUF9WRVJUX0JMRU5EX0NUTDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8wOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzE6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMjoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8zOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzQ6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfNToKLQljYXNlIFIyMDBfRU1JVF9WVEVfQ05UTDoKLQljYXNlIFIyMDBfRU1JVF9PVVRQVVRfVlRYX0NPTVBfU0VMOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RBTV9ERUJVRzM6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ05UTF9YOgotCWNhc2UgUjIwMF9FTUlUX1JCM0RfREVQVEhYWV9PRkZTRVQ6Ci0JY2FzZSBSMjAwX0VNSVRfUkVfQVVYX1NDSVNTT1JfQ05UTDoKLQljYXNlIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8xOgotCWNhc2UgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMjoKLQljYXNlIFIyMDBfRU1JVF9TRV9WQVBfQ05UTF9TVEFUVVM6Ci0JY2FzZSBSMjAwX0VNSVRfU0VfVlRYX1NUQVRFX0NOVEw6Ci0JY2FzZSBSMjAwX0VNSVRfUkVfUE9JTlRTSVpFOgotCWNhc2UgUjIwMF9FTUlUX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMDoKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18wOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzE6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMjoKLQljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18zOgotCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzQ6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfNToKLQljYXNlIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzA6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8xOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMjoKLQljYXNlIFIyMDBfRU1JVF9SQjNEX0JMRU5EQ09MT1I6Ci0JY2FzZSBSMjAwX0VNSVRfVENMX1BPSU5UX1NQUklURV9DTlRMOgotCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMDoKLQljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzE6Ci0JY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18yOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RSSV9QRVJGX0NOVEw6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQUZTXzA6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfQUZTXzE6Ci0JY2FzZSBSMjAwX0VNSVRfQVRGX1RGQUNUT1I6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMDoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8xOgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzI6Ci0JY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMzoKLQljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF80OgotCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzU6Ci0JY2FzZSBSMjAwX0VNSVRfVkFQX1BWU19DTlRMOgotCQkvKiBUaGVzZSBwYWNrZXRzIGRvbid0IGNvbnRhaW4gbWVtb3J5IG9mZnNldHMgKi8KLQkJYnJlYWs7Ci0KLQlkZWZhdWx0OgotCQlEUk1fRVJST1IoIlVua25vd24gc3RhdGUgcGFja2V0IElEICVkXG4iLCBpZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXQzKGRybV9yYWRlb25fcHJpdmF0ZV90ICoKLQkJCQkJCSAgICAgZGV2X3ByaXYsCi0JCQkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJCQkJICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKgotCQkJCQkJICAgICBjbWRidWYsCi0JCQkJCQkgICAgIHVuc2lnbmVkIGludCAqY21kc3opCi17Ci0JdTMyICpjbWQgPSAodTMyICopIGNtZGJ1Zi0+YnVmOwotCXUzMiBvZmZzZXQsIG5hcnJheXM7Ci0JaW50IGNvdW50LCBpLCBrOwotCi0JKmNtZHN6ID0gMiArICgoY21kWzBdICYgUkFERU9OX0NQX1BBQ0tFVF9DT1VOVF9NQVNLKSA+PiAxNik7Ci0KLQlpZiAoKGNtZFswXSAmIDB4YzAwMDAwMDApICE9IFJBREVPTl9DUF9QQUNLRVQzKSB7Ci0JCURSTV9FUlJPUigiTm90IGEgdHlwZSAzIHBhY2tldFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmICg0ICogKmNtZHN6ID4gY21kYnVmLT5idWZzeikgewotCQlEUk1fRVJST1IoIlBhY2tldCBzaXplIGxhcmdlciB0aGFuIHNpemUgb2YgZGF0YSBwcm92aWRlZFxuIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXN3aXRjaChjbWRbMF0gJiAweGZmMDApIHsKLQkvKiBYWFggQXJlIHRoZXJlIG9sZCBkcml2ZXJzIG5lZWRpbmcgb3RoZXIgcGFja2V0cz8gKi8KLQotCWNhc2UgUkFERU9OXzNEX0RSQVdfSU1NRDoKLQljYXNlIFJBREVPTl8zRF9EUkFXX1ZCVUY6Ci0JY2FzZSBSQURFT05fM0RfRFJBV19JTkRYOgotCWNhc2UgUkFERU9OX1dBSVRfRk9SX0lETEU6Ci0JY2FzZSBSQURFT05fQ1BfTk9QOgotCWNhc2UgUkFERU9OXzNEX0NMRUFSX1pNQVNLOgotLyoJY2FzZSBSQURFT05fQ1BfTkVYVF9DSEFSOgotCWNhc2UgUkFERU9OX0NQX1BMWV9ORVhUU0NBTjoKLQljYXNlIFJBREVPTl9DUF9TRVRfU0NJU1NPUlM6ICovIC8qIHByb2JhYmx5IHNhZmUgYnV0IHdpbGwgbmV2ZXIgbmVlZCB0aGVtPyAqLwotCQkvKiB0aGVzZSBwYWNrZXRzIGFyZSBzYWZlICovCi0JCWJyZWFrOwotCi0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19JTU1EXzI6Ci0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19WQlVGXzI6Ci0JY2FzZSBSQURFT05fQ1BfM0RfRFJBV19JTkRYXzI6Ci0JY2FzZSBSQURFT05fM0RfQ0xFQVJfSElaOgotCQkvKiBzYWZlIGJ1dCByMjAwIG9ubHkgKi8KLQkJaWYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiAhPSBVQ09ERV9SMjAwKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgM2QgcGFja2V0IGZvciByMTAwLWNsYXNzIGNoaXBcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl8zRF9MT0FEX1ZCUE5UUjoKLQkJY291bnQgPSAoY21kWzBdID4+IDE2KSAmIDB4M2ZmZjsKLQotCQlpZiAoY291bnQgPiAxOCkgeyAvKiAxMiBhcnJheXMgbWF4ICovCi0JCQlEUk1fRVJST1IoIlRvbyBsYXJnZSBwYXlsb2FkIGluIDNEX0xPQURfVkJQTlRSIChjb3VudD0lZClcbiIsCi0JCQkJICBjb3VudCk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCS8qIGNhcmVmdWxseSBjaGVjayBwYWNrZXQgY29udGVudHMgKi8KLQkJbmFycmF5cyA9IGNtZFsxXSAmIH4weGMwMDA7Ci0JCWsgPSAwOwotCQlpID0gMjsKLQkJd2hpbGUgKChrIDwgbmFycmF5cykgJiYgKGkgPCAoY291bnQgKyAyKSkpIHsKLQkJCWkrKzsJCS8qIHNraXAgYXR0cmlidXRlIGZpZWxkICovCi0JCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCQkgICZjbWRbaV0pKSB7Ci0JCQkJRFJNX0VSUk9SCi0JCQkJICAgICgiSW52YWxpZCBvZmZzZXQgKGs9JWQgaT0lZCkgaW4gM0RfTE9BRF9WQlBOVFIgcGFja2V0LlxuIiwKLQkJCQkgICAgIGssIGkpOwotCQkJCXJldHVybiAtRUlOVkFMOwotCQkJfQotCQkJaysrOwotCQkJaSsrOwotCQkJaWYgKGsgPT0gbmFycmF5cykKLQkJCQlicmVhazsKLQkJCS8qIGhhdmUgb25lIG1vcmUgdG8gcHJvY2VzcywgdGhleSBjb21lIGluIHBhaXJzICovCi0JCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsCi0JCQkJCQkJICBmaWxlX3ByaXYsICZjbWRbaV0pKQotCQkJewotCQkJCURSTV9FUlJPUgotCQkJCSAgICAoIkludmFsaWQgb2Zmc2V0IChrPSVkIGk9JWQpIGluIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCi0JCQkJICAgICBrLCBpKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJCWsrKzsKLQkJCWkrKzsKLQkJfQotCQkvKiBkbyB0aGUgY291bnRzIG1hdGNoIHdoYXQgd2UgZXhwZWN0ID8gKi8KLQkJaWYgKChrICE9IG5hcnJheXMpIHx8IChpICE9IChjb3VudCArIDIpKSkgewotCQkJRFJNX0VSUk9SCi0JCQkgICAgKCJNYWxmb3JtZWQgM0RfTE9BRF9WQlBOVFIgcGFja2V0IChrPSVkIGk9JWQgbmFycmF5cz0lZCBjb3VudCsxPSVkKS5cbiIsCi0JCQkgICAgICBrLCBpLCBuYXJyYXlzLCBjb3VudCArIDEpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU06Ci0JCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gIT0gVUNPREVfUjEwMCkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIDNkIHBhY2tldCBmb3IgcjIwMC1jbGFzcyBjaGlwXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LCAmY21kWzFdKSkgewotCQkJCURSTV9FUlJPUigiSW52YWxpZCBybmRyX2dlbl9pbmR4IG9mZnNldFxuIik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl9DUF9JTkRYX0JVRkZFUjoKLQkJaWYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiAhPSBVQ09ERV9SMjAwKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgM2QgcGFja2V0IGZvciByMTAwLWNsYXNzIGNoaXBcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJaWYgKChjbWRbMV0gJiAweDgwMDBmZmZmKSAhPSAweDgwMDAwODEwKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgaW5keF9idWZmZXIgcmVnIGFkZHJlc3MgJTA4WFxuIiwgY21kWzFdKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LCAmY21kWzJdKSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIG9mZnNldCBpcyAlMDhYXG4iLCBjbWRbMl0pOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQkJYnJlYWs7Ci0KLQljYXNlIFJBREVPTl9DTlRMX0hPU1REQVRBX0JMVDoKLQljYXNlIFJBREVPTl9DTlRMX1BBSU5UX01VTFRJOgotCWNhc2UgUkFERU9OX0NOVExfQklUQkxUX01VTFRJOgotCQkvKiBNU0Igb2Ygb3Bjb2RlOiBuZXh0IERXT1JEIEdVSV9DTlRMICovCi0JCWlmIChjbWRbMV0gJiAoUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwKLQkJCSAgICAgIHwgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwpKSB7Ci0JCQlvZmZzZXQgPSBjbWRbMl0gPDwgMTA7Ci0JCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQKLQkJCSAgICAoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJm9mZnNldCkpIHsKLQkJCQlEUk1fRVJST1IoIkludmFsaWQgZmlyc3QgcGFja2V0IG9mZnNldFxuIik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCQljbWRbMl0gPSAoY21kWzJdICYgMHhmZmMwMDAwMCkgfCBvZmZzZXQgPj4gMTA7Ci0JCX0KLQotCQlpZiAoKGNtZFsxXSAmIFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMKSAmJgotCQkgICAgKGNtZFsxXSAmIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMKSkgewotCQkJb2Zmc2V0ID0gY21kWzNdIDw8IDEwOwotCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0Ci0JCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsICZvZmZzZXQpKSB7Ci0JCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHNlY29uZCBwYWNrZXQgb2Zmc2V0XG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQkJCWNtZFszXSA9IChjbWRbM10gJiAweGZmYzAwMDAwKSB8IG9mZnNldCA+PiAxMDsKLQkJfQotCQlicmVhazsKLQotCWRlZmF1bHQ6Ci0JCURSTV9FUlJPUigiSW52YWxpZCBwYWNrZXQgdHlwZSAleFxuIiwgY21kWzBdICYgMHhmZjAwKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIENQIGhhcmR3YXJlIHN0YXRlIHByb2dyYW1taW5nIGZ1bmN0aW9ucwotICovCi0KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCi0JCQkJCSAgICAgc3RydWN0IGRybV9jbGlwX3JlY3QgKiBib3gpCi17Ci0JUklOR19MT0NBTFM7Ci0KLQlEUk1fREVCVUcoIiAgIGJveDogIHgxPSVkIHkxPSVkICB4Mj0lZCB5Mj0lZFxuIiwKLQkJICBib3gtPngxLCBib3gtPnkxLCBib3gtPngyLCBib3gtPnkyKTsKLQotCUJFR0lOX1JJTkcoNCk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfVE9QX0xFRlQsIDApKTsKLQlPVVRfUklORygoYm94LT55MSA8PCAxNikgfCBib3gtPngxKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9XSURUSF9IRUlHSFQsIDApKTsKLQlPVVRfUklORygoKGJveC0+eTIgLSAxKSA8PCAxNikgfCAoYm94LT54MiAtIDEpKTsKLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotLyogRW1pdCAxLjEgc3RhdGUKLSAqLwotc3RhdGljIGludCByYWRlb25fZW1pdF9zdGF0ZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCSAgICAgZHJtX3JhZGVvbl9jb250ZXh0X3JlZ3NfdCAqIGN0eCwKLQkJCSAgICAgZHJtX3JhZGVvbl90ZXh0dXJlX3JlZ3NfdCAqIHRleCwKLQkJCSAgICAgdW5zaWduZWQgaW50IGRpcnR5KQotewotCVJJTkdfTE9DQUxTOwotCURSTV9ERUJVRygiZGlydHk9MHglMDh4XG4iLCBkaXJ0eSk7Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX0NPTlRFWFQpIHsKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgICZjdHgtPnJiM2RfZGVwdGhvZmZzZXQpKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgZGVwdGggYnVmZmVyIG9mZnNldFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJICAmY3R4LT5yYjNkX2NvbG9yb2Zmc2V0KSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlcHRoIGJ1ZmZlciBvZmZzZXRcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlCRUdJTl9SSU5HKDE0KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfTUlTQywgNikpOwotCQlPVVRfUklORyhjdHgtPnBwX21pc2MpOwotCQlPVVRfUklORyhjdHgtPnBwX2ZvZ19jb2xvcik7Ci0JCU9VVF9SSU5HKGN0eC0+cmVfc29saWRfY29sb3IpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfYmxlbmRjbnRsKTsKLQkJT1VUX1JJTkcoY3R4LT5yYjNkX2RlcHRob2Zmc2V0KTsKLQkJT1VUX1JJTkcoY3R4LT5yYjNkX2RlcHRocGl0Y2gpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfenN0ZW5jaWxjbnRsKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQ05UTCwgMikpOwotCQlPVVRfUklORyhjdHgtPnBwX2NudGwpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfY250bCk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9jb2xvcm9mZnNldCk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfQ09MT1JQSVRDSCwgMCkpOwotCQlPVVRfUklORyhjdHgtPnJiM2RfY29sb3JwaXRjaCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVkVSVEZNVCkgewotCQlCRUdJTl9SSU5HKDIpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9DT09SRF9GTVQsIDApKTsKLQkJT1VUX1JJTkcoY3R4LT5zZV9jb29yZF9mbXQpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX0xJTkUpIHsKLQkJQkVHSU5fUklORyg1KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfTElORV9QQVRURVJOLCAxKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cmVfbGluZV9wYXR0ZXJuKTsKLQkJT1VUX1JJTkcoY3R4LT5yZV9saW5lX3N0YXRlKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfTElORV9XSURUSCwgMCkpOwotCQlPVVRfUklORyhjdHgtPnNlX2xpbmVfd2lkdGgpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX0JVTVBNQVApIHsKLQkJQkVHSU5fUklORyg1KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfTFVNX01BVFJJWCwgMCkpOwotCQlPVVRfUklORyhjdHgtPnBwX2x1bV9tYXRyaXgpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9ST1RfTUFUUklYXzAsIDEpKTsKLQkJT1VUX1JJTkcoY3R4LT5wcF9yb3RfbWF0cml4XzApOwotCQlPVVRfUklORyhjdHgtPnBwX3JvdF9tYXRyaXhfMSk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfTUFTS1MpIHsKLQkJQkVHSU5fUklORyg0KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSywgMikpOwotCQlPVVRfUklORyhjdHgtPnJiM2Rfc3RlbmNpbHJlZm1hc2spOwotCQlPVVRfUklORyhjdHgtPnJiM2Rfcm9wY250bCk7Ci0JCU9VVF9SSU5HKGN0eC0+cmIzZF9wbGFuZW1hc2spOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1ZJRVdQT1JUKSB7Ci0JCUJFR0lOX1JJTkcoNyk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1ZQT1JUX1hTQ0FMRSwgNSkpOwotCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3hzY2FsZSk7Ci0JCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfeG9mZnNldCk7Ci0JCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfeXNjYWxlKTsKLQkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF95b2Zmc2V0KTsKLQkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF96c2NhbGUpOwotCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3pvZmZzZXQpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1NFVFVQKSB7Ci0JCUJFR0lOX1JJTkcoNCk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0NOVEwsIDApKTsKLQkJT1VUX1JJTkcoY3R4LT5zZV9jbnRsKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfQ05UTF9TVEFUVVMsIDApKTsKLQkJT1VUX1JJTkcoY3R4LT5zZV9jbnRsX3N0YXR1cyk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfTUlTQykgewotCQlCRUdJTl9SSU5HKDIpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9NSVNDLCAwKSk7Ci0JCU9VVF9SSU5HKGN0eC0+cmVfbWlzYyk7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVEVYMCkgewotCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCSAgJnRleFswXS5wcF90eG9mZnNldCkpIHsKLQkJCURSTV9FUlJPUigiSW52YWxpZCB0ZXh0dXJlIG9mZnNldCBmb3IgdW5pdCAwXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0KLQkJQkVHSU5fUklORyg5KTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfVFhGSUxURVJfMCwgNSkpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdHhmaWx0ZXIpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdHhmb3JtYXQpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdHhvZmZzZXQpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdHhjYmxlbmQpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdHhhYmxlbmQpOwotCQlPVVRfUklORyh0ZXhbMF0ucHBfdGZhY3Rvcik7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8wLCAwKSk7Ci0JCU9VVF9SSU5HKHRleFswXS5wcF9ib3JkZXJfY29sb3IpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1RFWDEpIHsKLQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCQkgICZ0ZXhbMV0ucHBfdHhvZmZzZXQpKSB7Ci0JCQlEUk1fRVJST1IoIkludmFsaWQgdGV4dHVyZSBvZmZzZXQgZm9yIHVuaXQgMVxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCUJFR0lOX1JJTkcoOSk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX1RYRklMVEVSXzEsIDUpKTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3R4ZmlsdGVyKTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3R4Zm9ybWF0KTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3R4b2Zmc2V0KTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3R4Y2JsZW5kKTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3R4YWJsZW5kKTsKLQkJT1VUX1JJTkcodGV4WzFdLnBwX3RmYWN0b3IpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMSwgMCkpOwotCQlPVVRfUklORyh0ZXhbMV0ucHBfYm9yZGVyX2NvbG9yKTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9URVgyKSB7Ci0JCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJICAmdGV4WzJdLnBwX3R4b2Zmc2V0KSkgewotCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHRleHR1cmUgb2Zmc2V0IGZvciB1bml0IDJcbiIpOwotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KLQotCQlCRUdJTl9SSU5HKDkpOwotCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9UWEZJTFRFUl8yLCA1KSk7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90eGZpbHRlcik7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90eGZvcm1hdCk7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90eG9mZnNldCk7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90eGNibGVuZCk7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90eGFibGVuZCk7Ci0JCU9VVF9SSU5HKHRleFsyXS5wcF90ZmFjdG9yKTsKLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQk9SREVSX0NPTE9SXzIsIDApKTsKLQkJT1VUX1JJTkcodGV4WzJdLnBwX2JvcmRlcl9jb2xvcik7Ci0JCUFEVkFOQ0VfUklORygpOwotCX0KLQotCXJldHVybiAwOwotfQotCi0vKiBFbWl0IDEuMiBzdGF0ZQotICovCi1zdGF0aWMgaW50IHJhZGVvbl9lbWl0X3N0YXRlMihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQkgICAgICBkcm1fcmFkZW9uX3N0YXRlX3QgKiBzdGF0ZSkKLXsKLQlSSU5HX0xPQ0FMUzsKLQotCWlmIChzdGF0ZS0+ZGlydHkgJiBSQURFT05fVVBMT0FEX1pCSUFTKSB7Ci0JCUJFR0lOX1JJTkcoMyk7Ci0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1pCSUFTX0ZBQ1RPUiwgMSkpOwotCQlPVVRfUklORyhzdGF0ZS0+Y29udGV4dDIuc2VfemJpYXNfZmFjdG9yKTsKLQkJT1VUX1JJTkcoc3RhdGUtPmNvbnRleHQyLnNlX3piaWFzX2NvbnN0YW50KTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0JfQotCi0JcmV0dXJuIHJhZGVvbl9lbWl0X3N0YXRlKGRldl9wcml2LCBmaWxlX3ByaXYsICZzdGF0ZS0+Y29udGV4dCwKLQkJCQkgc3RhdGUtPnRleCwgc3RhdGUtPmRpcnR5KTsKLX0KLQotLyogTmV3ICgxLjMpIHN0YXRlIG1lY2hhbmlzbS4gIDMgY29tbWFuZHMgKHBhY2tldCwgc2NhbGFyLCB2ZWN0b3IpIGluCi0gKiAxLjMgY21kYnVmZmVycyBhbGxvdyBhbGwgcHJldmlvdXMgc3RhdGUgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsIGFzCi0gKiB0aGUgdGNsIHNjYWxhciBhbmQgdmVjdG9yIGFyZWFzLgotICovCi1zdGF0aWMgc3RydWN0IHsKLQlpbnQgc3RhcnQ7Ci0JaW50IGxlbjsKLQljb25zdCBjaGFyICpuYW1lOwotfSBwYWNrZXRbUkFERU9OX01BWF9TVEFURV9QQUNLRVRTXSA9IHsKLQl7UkFERU9OX1BQX01JU0MsIDcsICJSQURFT05fUFBfTUlTQyJ9LAotCXtSQURFT05fUFBfQ05UTCwgMywgIlJBREVPTl9QUF9DTlRMIn0sCi0Je1JBREVPTl9SQjNEX0NPTE9SUElUQ0gsIDEsICJSQURFT05fUkIzRF9DT0xPUlBJVENIIn0sCi0Je1JBREVPTl9SRV9MSU5FX1BBVFRFUk4sIDIsICJSQURFT05fUkVfTElORV9QQVRURVJOIn0sCi0Je1JBREVPTl9TRV9MSU5FX1dJRFRILCAxLCAiUkFERU9OX1NFX0xJTkVfV0lEVEgifSwKLQl7UkFERU9OX1BQX0xVTV9NQVRSSVgsIDEsICJSQURFT05fUFBfTFVNX01BVFJJWCJ9LAotCXtSQURFT05fUFBfUk9UX01BVFJJWF8wLCAyLCAiUkFERU9OX1BQX1JPVF9NQVRSSVhfMCJ9LAotCXtSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSywgMywgIlJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLIn0sCi0Je1JBREVPTl9TRV9WUE9SVF9YU0NBTEUsIDYsICJSQURFT05fU0VfVlBPUlRfWFNDQUxFIn0sCi0Je1JBREVPTl9TRV9DTlRMLCAyLCAiUkFERU9OX1NFX0NOVEwifSwKLQl7UkFERU9OX1NFX0NOVExfU1RBVFVTLCAxLCAiUkFERU9OX1NFX0NOVExfU1RBVFVTIn0sCi0Je1JBREVPTl9SRV9NSVNDLCAxLCAiUkFERU9OX1JFX01JU0MifSwKLQl7UkFERU9OX1BQX1RYRklMVEVSXzAsIDYsICJSQURFT05fUFBfVFhGSUxURVJfMCJ9LAotCXtSQURFT05fUFBfQk9SREVSX0NPTE9SXzAsIDEsICJSQURFT05fUFBfQk9SREVSX0NPTE9SXzAifSwKLQl7UkFERU9OX1BQX1RYRklMVEVSXzEsIDYsICJSQURFT05fUFBfVFhGSUxURVJfMSJ9LAotCXtSQURFT05fUFBfQk9SREVSX0NPTE9SXzEsIDEsICJSQURFT05fUFBfQk9SREVSX0NPTE9SXzEifSwKLQl7UkFERU9OX1BQX1RYRklMVEVSXzIsIDYsICJSQURFT05fUFBfVFhGSUxURVJfMiJ9LAotCXtSQURFT05fUFBfQk9SREVSX0NPTE9SXzIsIDEsICJSQURFT05fUFBfQk9SREVSX0NPTE9SXzIifSwKLQl7UkFERU9OX1NFX1pCSUFTX0ZBQ1RPUiwgMiwgIlJBREVPTl9TRV9aQklBU19GQUNUT1IifSwKLQl7UkFERU9OX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCwgMTEsICJSQURFT05fU0VfVENMX09VVFBVVF9WVFhfRk1UIn0sCi0Je1JBREVPTl9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCwgMTcsCi0JCSAgICAiUkFERU9OX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEIn0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfMCwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfMCJ9LAotCXtSMjAwX1BQX1RYQ0JMRU5EXzEsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzEifSwKLQl7UjIwMF9QUF9UWENCTEVORF8yLCA0LCAiUjIwMF9QUF9UWENCTEVORF8yIn0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfMywgNCwgIlIyMDBfUFBfVFhDQkxFTkRfMyJ9LAotCXtSMjAwX1BQX1RYQ0JMRU5EXzQsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzQifSwKLQl7UjIwMF9QUF9UWENCTEVORF81LCA0LCAiUjIwMF9QUF9UWENCTEVORF81In0sCi0Je1IyMDBfUFBfVFhDQkxFTkRfNiwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfNiJ9LAotCXtSMjAwX1BQX1RYQ0JMRU5EXzcsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzcifSwKLQl7UjIwMF9TRV9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAsIDYsICJSMjAwX1NFX1RDTF9MSUdIVF9NT0RFTF9DVExfMCJ9LAotCXtSMjAwX1BQX1RGQUNUT1JfMCwgNiwgIlIyMDBfUFBfVEZBQ1RPUl8wIn0sCi0Je1IyMDBfU0VfVlRYX0ZNVF8wLCA0LCAiUjIwMF9TRV9WVFhfRk1UXzAifSwKLQl7UjIwMF9TRV9WQVBfQ05UTCwgMSwgIlIyMDBfU0VfVkFQX0NOVEwifSwKLQl7UjIwMF9TRV9UQ0xfTUFUUklYX1NFTF8wLCA1LCAiUjIwMF9TRV9UQ0xfTUFUUklYX1NFTF8wIn0sCi0Je1IyMDBfU0VfVENMX1RFWF9QUk9DX0NUTF8yLCA1LCAiUjIwMF9TRV9UQ0xfVEVYX1BST0NfQ1RMXzIifSwKLQl7UjIwMF9TRV9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMLCAxLCAiUjIwMF9TRV9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfMCwgNiwgIlIyMDBfUFBfVFhGSUxURVJfMCJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzEsIDYsICJSMjAwX1BQX1RYRklMVEVSXzEifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8yLCA2LCAiUjIwMF9QUF9UWEZJTFRFUl8yIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfMywgNiwgIlIyMDBfUFBfVFhGSUxURVJfMyJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzQsIDYsICJSMjAwX1BQX1RYRklMVEVSXzQifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl81LCA2LCAiUjIwMF9QUF9UWEZJTFRFUl81In0sCi0Je1IyMDBfUFBfVFhPRkZTRVRfMCwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfMCJ9LAotCXtSMjAwX1BQX1RYT0ZGU0VUXzEsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzEifSwKLQl7UjIwMF9QUF9UWE9GRlNFVF8yLCAxLCAiUjIwMF9QUF9UWE9GRlNFVF8yIn0sCi0Je1IyMDBfUFBfVFhPRkZTRVRfMywgMSwgIlIyMDBfUFBfVFhPRkZTRVRfMyJ9LAotCXtSMjAwX1BQX1RYT0ZGU0VUXzQsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzQifSwKLQl7UjIwMF9QUF9UWE9GRlNFVF81LCAxLCAiUjIwMF9QUF9UWE9GRlNFVF81In0sCi0Je1IyMDBfU0VfVlRFX0NOVEwsIDEsICJSMjAwX1NFX1ZURV9DTlRMIn0sCi0Je1IyMDBfU0VfVENMX09VVFBVVF9WVFhfQ09NUF9TRUwsIDEsCi0JICJSMjAwX1NFX1RDTF9PVVRQVVRfVlRYX0NPTVBfU0VMIn0sCi0Je1IyMDBfUFBfVEFNX0RFQlVHMywgMSwgIlIyMDBfUFBfVEFNX0RFQlVHMyJ9LAotCXtSMjAwX1BQX0NOVExfWCwgMSwgIlIyMDBfUFBfQ05UTF9YIn0sCi0Je1IyMDBfUkIzRF9ERVBUSFhZX09GRlNFVCwgMSwgIlIyMDBfUkIzRF9ERVBUSFhZX09GRlNFVCJ9LAotCXtSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwsIDEsICJSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwifSwKLQl7UjIwMF9SRV9TQ0lTU09SX1RMXzAsIDIsICJSMjAwX1JFX1NDSVNTT1JfVExfMCJ9LAotCXtSMjAwX1JFX1NDSVNTT1JfVExfMSwgMiwgIlIyMDBfUkVfU0NJU1NPUl9UTF8xIn0sCi0Je1IyMDBfUkVfU0NJU1NPUl9UTF8yLCAyLCAiUjIwMF9SRV9TQ0lTU09SX1RMXzIifSwKLQl7UjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMsIDEsICJSMjAwX1NFX1ZBUF9DTlRMX1NUQVRVUyJ9LAotCXtSMjAwX1NFX1ZUWF9TVEFURV9DTlRMLCAxLCAiUjIwMF9TRV9WVFhfU1RBVEVfQ05UTCJ9LAotCXtSMjAwX1JFX1BPSU5UU0laRSwgMSwgIlIyMDBfUkVfUE9JTlRTSVpFIn0sCi0Je1IyMDBfU0VfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wLCA0LAotCQkgICAgIlIyMDBfU0VfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wIn0sCi0Je1IyMDBfUFBfQ1VCSUNfRkFDRVNfMCwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfMCJ9LAkvKiA2MSAqLwotCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8wLCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCJ9LCAvKiA2MiAqLwotCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzEsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzEifSwKLQl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMSwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEifSwKLQl7UjIwMF9QUF9DVUJJQ19GQUNFU18yLCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU18yIn0sCi0Je1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzIsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yIn0sCi0Je1IyMDBfUFBfQ1VCSUNfRkFDRVNfMywgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfMyJ9LAotCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8zLCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMyJ9LAotCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzQsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzQifSwKLQl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNCwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQifSwKLQl7UjIwMF9QUF9DVUJJQ19GQUNFU181LCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU181In0sCi0Je1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzUsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81In0sCi0Je1JBREVPTl9QUF9URVhfU0laRV8wLCAyLCAiUkFERU9OX1BQX1RFWF9TSVpFXzAifSwKLQl7UkFERU9OX1BQX1RFWF9TSVpFXzEsIDIsICJSQURFT05fUFBfVEVYX1NJWkVfMSJ9LAotCXtSQURFT05fUFBfVEVYX1NJWkVfMiwgMiwgIlJBREVPTl9QUF9URVhfU0laRV8yIn0sCi0Je1IyMDBfUkIzRF9CTEVORENPTE9SLCAzLCAiUjIwMF9SQjNEX0JMRU5EQ09MT1IifSwKLQl7UjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwsIDEsICJSMjAwX1NFX1RDTF9QT0lOVF9TUFJJVEVfQ05UTCJ9LAotCXtSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCwgMSwgIlJBREVPTl9QUF9DVUJJQ19GQUNFU18wIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDBfMCwgNSwgIlJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDBfMCJ9LAotCXtSQURFT05fUFBfQ1VCSUNfRkFDRVNfMSwgMSwgIlJBREVPTl9QUF9DVUJJQ19GQUNFU18xIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDFfMCwgNSwgIlJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDFfMCJ9LAotCXtSQURFT05fUFBfQ1VCSUNfRkFDRVNfMiwgMSwgIlJBREVPTl9QUF9DVUJJQ19GQUNFU18yIn0sCi0Je1JBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMCwgNSwgIlJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMCJ9LAotCXtSMjAwX1BQX1RSSV9QRVJGLCAyLCAiUjIwMF9QUF9UUklfUEVSRiJ9LAotCXtSMjAwX1BQX0FGU18wLCAzMiwgIlIyMDBfUFBfQUZTXzAifSwgICAgIC8qIDg1ICovCi0Je1IyMDBfUFBfQUZTXzEsIDMyLCAiUjIwMF9QUF9BRlNfMSJ9LAotCXtSMjAwX1BQX1RGQUNUT1JfMCwgOCwgIlIyMDBfQVRGX1RGQUNUT1IifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8wLCA4LCAiUjIwMF9QUF9UWENUTEFMTF8wIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfMSwgOCwgIlIyMDBfUFBfVFhDVExBTExfMSJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzIsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzIifSwKLQl7UjIwMF9QUF9UWEZJTFRFUl8zLCA4LCAiUjIwMF9QUF9UWENUTEFMTF8zIn0sCi0Je1IyMDBfUFBfVFhGSUxURVJfNCwgOCwgIlIyMDBfUFBfVFhDVExBTExfNCJ9LAotCXtSMjAwX1BQX1RYRklMVEVSXzUsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzUifSwKLQl7UjIwMF9WQVBfUFZTX0NOVExfMSwgMiwgIlIyMDBfVkFQX1BWU19DTlRMIn0sCi19OwotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBQZXJmb3JtYW5jZSBtb25pdG9yaW5nIGZ1bmN0aW9ucwotICovCi0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jbGVhcl9ib3goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKLQkJCSAgICAgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgsIGludCByLCBpbnQgZywgaW50IGIpCi17Ci0JdTMyIGNvbG9yOwotCVJJTkdfTE9DQUxTOwotCi0JeCArPSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Ym94ZXNbMF0ueDE7Ci0JeSArPSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Ym94ZXNbMF0ueTE7Ci0KLQlzd2l0Y2ggKGRldl9wcml2LT5jb2xvcl9mbXQpIHsKLQljYXNlIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCNTY1OgotCQljb2xvciA9ICgoKHIgJiAweGY4KSA8PCA4KSB8Ci0JCQkgKChnICYgMHhmYykgPDwgMykgfCAoKGIgJiAweGY4KSA+PiAzKSk7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4ODoKLQlkZWZhdWx0OgotCQljb2xvciA9ICgoKDB4ZmYpIDw8IDI0KSB8IChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYik7Ci0JCWJyZWFrOwotCX0KLQotCUJFR0lOX1JJTkcoNCk7Ci0JUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0RQX1dSSVRFX01BU0ssIDApKTsKLQlPVVRfUklORygweGZmZmZmZmZmKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCUJFR0lOX1JJTkcoNik7Ci0KLQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DTlRMX1BBSU5UX01VTFRJLCA0KSk7Ci0JT1VUX1JJTkcoUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAotCQkgUkFERU9OX0dNQ19CUlVTSF9TT0xJRF9DT0xPUiB8Ci0JCSAoZGV2X3ByaXYtPmNvbG9yX2ZtdCA8PCA4KSB8Ci0JCSBSQURFT05fR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8Ci0JCSBSQURFT05fUk9QM19QIHwgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTKTsKLQotCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAxKSB7Ci0JCU9VVF9SSU5HKGRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQpOwotCX0gZWxzZSB7Ci0JCU9VVF9SSU5HKGRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCk7Ci0JfQotCi0JT1VUX1JJTkcoY29sb3IpOwotCi0JT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7Ci0JT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX3BlcmZvcm1hbmNlX2JveGVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCi17Ci0JLyogQ29sbGFwc2UgdmFyaW91cyB0aGluZ3MgaW50byBhIHdhaXQgZmxhZyAtLSB0cnlpbmcgdG8KLQkgKiBndWVzcyBpZiB1c2Vyc3Bhc2Ugc2xlcHQgLS0gYmV0dGVyIGp1c3QgdG8gaGF2ZSB0aGVtIHRlbGwgdXMuCi0JICovCi0JaWYgKGRldl9wcml2LT5zdGF0cy5sYXN0X2ZyYW1lX3JlYWRzID4gMSB8fAotCSAgICBkZXZfcHJpdi0+c3RhdHMubGFzdF9jbGVhcl9yZWFkcyA+IGRldl9wcml2LT5zdGF0cy5jbGVhcnMpIHsKLQkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCX0KLQotCWlmIChkZXZfcHJpdi0+c3RhdHMuZnJlZWxpc3RfbG9vcHMpIHsKLQkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOwotCX0KLQotCS8qIFB1cnBsZSBib3ggZm9yIHBhZ2UgZmxpcHBpbmcKLQkgKi8KLQlpZiAoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9GTElQKQotCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCA0LCA0LCA4LCA4LCAyNTUsIDAsIDI1NSk7Ci0KLQkvKiBSZWQgYm94IGlmIHdlIGhhdmUgdG8gd2FpdCBmb3IgaWRsZSBhdCBhbnkgcG9pbnQKLQkgKi8KLQlpZiAoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9XQUlUX0lETEUpCi0JCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDE2LCA0LCA4LCA4LCAyNTUsIDAsIDApOwotCi0JLyogQmx1ZSBib3g6IGxvc3QgY29udGV4dD8KLQkgKi8KLQotCS8qIFllbGxvdyBib3ggZm9yIHRleHR1cmUgc3dhcHMKLQkgKi8KLQlpZiAoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9URVhUVVJFX0xPQUQpCi0JCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDQwLCA0LCA4LCA4LCAyNTUsIDI1NSwgMCk7Ci0KLQkvKiBHcmVlbiBib3ggaWYgaGFyZHdhcmUgbmV2ZXIgaWRsZXMgKGFzIGZhciBhcyB3ZSBjYW4gdGVsbCkKLQkgKi8KLQlpZiAoIShkZXZfcHJpdi0+c3RhdHMuYm94ZXMgJiBSQURFT05fQk9YX0RNQV9JRExFKSkKLQkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNjQsIDQsIDgsIDgsIDAsIDI1NSwgMCk7Ci0KLQkvKiBEcmF3IGJhcnMgaW5kaWNhdGluZyBudW1iZXIgb2YgYnVmZmVycyBhbGxvY2F0ZWQKLQkgKiAobm90IGEgZ3JlYXQgbWVhc3VyZSwgZWFzaWx5IGNvbmZ1c2VkKQotCSAqLwotCWlmIChkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMpIHsKLQkJaWYgKGRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcyA+IDEwMCkKLQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcyA9IDEwMDsKLQotCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCA0LCAxNiwKLQkJCQkgZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzLCA0LAotCQkJCSAxOTYsIDEyOCwgMTI4KTsKLQl9Ci0KLQltZW1zZXQoJmRldl9wcml2LT5zdGF0cywgMCwgc2l6ZW9mKGRldl9wcml2LT5zdGF0cykpOwotCi19Ci0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAqIENQIGNvbW1hbmQgZGlzcGF0Y2ggZnVuY3Rpb25zCi0gKi8KLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX2NsZWFyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgZHJtX3JhZGVvbl9jbGVhcl90ICogY2xlYXIsCi0JCQkJICAgICBkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdCAqIGRlcHRoX2JveGVzKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0JZHJtX3JhZGVvbl9kZXB0aF9jbGVhcl90ICpkZXB0aF9jbGVhciA9ICZkZXZfcHJpdi0+ZGVwdGhfY2xlYXI7Ci0JaW50IG5ib3ggPSBzYXJlYV9wcml2LT5uYm94OwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpwYm94ID0gc2FyZWFfcHJpdi0+Ym94ZXM7Ci0JdW5zaWduZWQgaW50IGZsYWdzID0gY2xlYXItPmZsYWdzOwotCXUzMiByYjNkX2NudGwgPSAwLCByYjNkX3N0ZW5jaWxyZWZtYXNrID0gMDsKLQlpbnQgaTsKLQlSSU5HX0xPQ0FMUzsKLQlEUk1fREVCVUcoImZsYWdzID0gMHgleFxuIiwgZmxhZ3MpOwotCi0JZGV2X3ByaXYtPnN0YXRzLmNsZWFycysrOwotCi0JaWYgKGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlID09IDEpIHsKLQkJdW5zaWduZWQgaW50IHRtcCA9IGZsYWdzOwotCi0JCWZsYWdzICY9IH4oUkFERU9OX0ZST05UIHwgUkFERU9OX0JBQ0spOwotCQlpZiAodG1wICYgUkFERU9OX0ZST05UKQotCQkJZmxhZ3MgfD0gUkFERU9OX0JBQ0s7Ci0JCWlmICh0bXAgJiBSQURFT05fQkFDSykKLQkJCWZsYWdzIHw9IFJBREVPTl9GUk9OVDsKLQl9Ci0KLQlpZiAoZmxhZ3MgJiAoUkFERU9OX0ZST05UIHwgUkFERU9OX0JBQ0spKSB7Ci0KLQkJQkVHSU5fUklORyg0KTsKLQotCQkvKiBFbnN1cmUgdGhlIDNEIHN0cmVhbSBpcyBpZGxlIGJlZm9yZSBkb2luZyBhCi0JCSAqIDJEIGZpbGwgdG8gY2xlYXIgdGhlIGZyb250IG9yIGJhY2sgYnVmZmVyLgotCQkgKi8KLQkJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCi0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0RQX1dSSVRFX01BU0ssIDApKTsKLQkJT1VUX1JJTkcoY2xlYXItPmNvbG9yX21hc2spOwotCi0JCUFEVkFOQ0VfUklORygpOwotCi0JCS8qIE1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSAzRCBzdGF0ZSBuZXh0IHRpbWUuCi0JCSAqLwotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3R4X293bmVyID0gMDsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbmJveDsgaSsrKSB7Ci0JCQlpbnQgeCA9IHBib3hbaV0ueDE7Ci0JCQlpbnQgeSA9IHBib3hbaV0ueTE7Ci0JCQlpbnQgdyA9IHBib3hbaV0ueDIgLSB4OwotCQkJaW50IGggPSBwYm94W2ldLnkyIC0geTsKLQotCQkJRFJNX0RFQlVHKCIlZCwlZC0lZCwlZCBmbGFncyAweCV4XG4iLAotCQkJCSAgeCwgeSwgdywgaCwgZmxhZ3MpOwotCi0JCQlpZiAoZmxhZ3MgJiBSQURFT05fRlJPTlQpIHsKLQkJCQlCRUdJTl9SSU5HKDYpOwotCi0JCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMwotCQkJCQkgKFJBREVPTl9DTlRMX1BBSU5UX01VTFRJLCA0KSk7Ci0JCQkJT1VUX1JJTkcoUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAotCQkJCQkgUkFERU9OX0dNQ19CUlVTSF9TT0xJRF9DT0xPUiB8Ci0JCQkJCSAoZGV2X3ByaXYtPgotCQkJCQkgIGNvbG9yX2ZtdCA8PCA4KSB8Ci0JCQkJCSBSQURFT05fR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8Ci0JCQkJCSBSQURFT05fUk9QM19QIHwKLQkJCQkJIFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyk7Ci0KLQkJCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKLQkJCQlPVVRfUklORyhjbGVhci0+Y2xlYXJfY29sb3IpOwotCi0JCQkJT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7Ci0JCQkJT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7Ci0KLQkJCQlBRFZBTkNFX1JJTkcoKTsKLQkJCX0KLQotCQkJaWYgKGZsYWdzICYgUkFERU9OX0JBQ0spIHsKLQkJCQlCRUdJTl9SSU5HKDYpOwotCi0JCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMwotCQkJCQkgKFJBREVPTl9DTlRMX1BBSU5UX01VTFRJLCA0KSk7Ci0JCQkJT1VUX1JJTkcoUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAotCQkJCQkgUkFERU9OX0dNQ19CUlVTSF9TT0xJRF9DT0xPUiB8Ci0JCQkJCSAoZGV2X3ByaXYtPgotCQkJCQkgIGNvbG9yX2ZtdCA8PCA4KSB8Ci0JCQkJCSBSQURFT05fR01DX1NSQ19EQVRBVFlQRV9DT0xPUiB8Ci0JCQkJCSBSQURFT05fUk9QM19QIHwKLQkJCQkJIFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyk7Ci0KLQkJCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOwotCQkJCU9VVF9SSU5HKGNsZWFyLT5jbGVhcl9jb2xvcik7Ci0KLQkJCQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKLQkJCQlPVVRfUklORygodyA8PCAxNikgfCBoKTsKLQotCQkJCUFEVkFOQ0VfUklORygpOwotCQkJfQotCQl9Ci0JfQotCi0JLyogaHlwZXIgeiBjbGVhciAqLwotCS8qIG5vIGRvY3MgYXZhaWxhYmxlLCBiYXNlZCBvbiByZXZlcnNlIGVuZ2VuZWVyaW5nIGJ5IFN0ZXBoYW5lIE1hcmNoZXNpbiAqLwotCWlmICgoZmxhZ3MgJiAoUkFERU9OX0RFUFRIIHwgUkFERU9OX1NURU5DSUwpKQotCSAgICAmJiAoZmxhZ3MgJiBSQURFT05fQ0xFQVJfRkFTVFopKSB7Ci0KLQkJaW50IGk7Ci0JCWludCBkZXB0aHBpeHBlcmxpbmUgPQotCQkgICAgZGV2X3ByaXYtPmRlcHRoX2ZtdCA9PQotCQkgICAgUkFERU9OX0RFUFRIX0ZPUk1BVF8xNkJJVF9JTlRfWiA/IChkZXZfcHJpdi0+ZGVwdGhfcGl0Y2ggLwotCQkJCQkJICAgICAgIDIpIDogKGRldl9wcml2LT4KLQkJCQkJCQkgICAgIGRlcHRoX3BpdGNoIC8gNCk7Ci0KLQkJdTMyIGNsZWFybWFzazsKLQotCQl1MzIgdGVtcFJCM0RfREVQVEhDTEVBUlZBTFVFID0gY2xlYXItPmNsZWFyX2RlcHRoIHwKLQkJICAgICgoY2xlYXItPmRlcHRoX21hc2sgJiAweGZmKSA8PCAyNCk7Ci0KLQkJLyogTWFrZSBzdXJlIHdlIHJlc3RvcmUgdGhlIDNEIHN0YXRlIG5leHQgdGltZS4KLQkJICogd2UgaGF2ZW4ndCB0b3VjaGVkIGFueSAibm9ybWFsIiBzdGF0ZSAtIHN0aWxsIG5lZWQgdGhpcz8KLQkJICovCi0JCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOwotCi0JCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0hBU19ISUVSWikKLQkJICAgICYmIChmbGFncyAmIFJBREVPTl9VU0VfSElFUlopKSB7Ci0JCQkvKiBGSVhNRSA6IHJldmVyc2UgZW5naW5lZXIgdGhhdCBmb3IgUngwMCBjYXJkcyAqLwotCQkJLyogRklYTUUgOiB0aGUgbWFzayBzdXBwb3NlZGx5IGNvbnRhaW5zIGxvdy1yZXMgeiB2YWx1ZXMuIFNvIGNhbid0IHNldAotCQkJICAganVzdCB0byB0aGUgbWF4ICgweGZmPyBvciBhY3R1YWxseSAweDNmZmY/KSwgbmVlZCB0byB0YWtlIHogY2xlYXIKLQkJCSAgIHZhbHVlIGludG8gYWNjb3VudD8gKi8KLQkJCS8qIHBhdHRlcm4gc2VlbXMgdG8gd29yayBmb3IgcjEwMCwgdGhvdWdoIGdldCBzbGlnaHQKLQkJCSAgIHJlbmRlcmluZyBlcnJvcnMgd2l0aCBnbHhnZWFycy4gSWYgaGllcnogaXMgbm90IGVuYWJsZWQgZm9yIHIxMDAsCi0JCQkgICBvbmx5IDQgYml0cyB3aGljaCBpbmRpY2F0ZSBjbGVhciAoMTUsMTYsMzEsMzIsIGFsbCB6ZXJvKSBtYXR0ZXIsIHRoZQotCQkJICAgb3RoZXIgb25lcyBhcmUgaWdub3JlZCwgYW5kIHRoZSBzYW1lIGNsZWFyIG1hc2sgY2FuIGJlIHVzZWQuIFRoYXQncwotCQkJICAgdmVyeSBkaWZmZXJlbnQgYmVoYXZpb3VyIHRoYW4gUjIwMCB3aGljaCBuZWVkcyBkaWZmZXJlbnQgY2xlYXIgbWFzawotCQkJICAgYW5kIGRpZmZlcmVudCBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgaWYgaGllcnogaXMgZW5hYmxlZCBvciBub3QgIT8hCi0JCQkgKi8KLQkJCWNsZWFybWFzayA9ICgweGZmIDw8IDIyKSB8ICgweGZmIDw8IDYpIHwgMHgwMDNmMDAzZjsKLQkJfSBlbHNlIHsKLQkJCS8qIGNsZWFyIG1hc2sgOiBjaG9vc2VzIHRoZSBjbGVhcmluZyBwYXR0ZXJuLgotCQkJICAgcnYyNTA6IGNvdWxkIGJlIHVzZWQgdG8gY2xlYXIgb25seSBwYXJ0cyBvZiBtYWNyb3RpbGVzCi0JCQkgICAoYnV0IHRoYXQgd291bGQgZ2V0IHJlYWxseSBjb21wbGljYXRlZC4uLik/Ci0JCQkgICBiaXQgMCBhbmQgMSAoZWl0aGVyIG9yIGJvdGggb2YgdGhlbSA/IT8hKSBhcmUgdXNlZCB0bwotCQkJICAgbm90IGNsZWFyIHRpbGUgKG9yIG1heWJlIG9uZSBvZiB0aGUgYml0cyBpbmRpY2F0ZXMgaWYgdGhlIHRpbGUgaXMKLQkJCSAgIGNvbXByZXNzZWQgb3Igbm90KSwgYml0IDIgYW5kIDMgdG8gbm90IGNsZWFyIHRpbGUgMSwuLi4sLgotCQkJICAgUGF0dGVybiBpcyBhcyBmb2xsb3dzOgotCQkJICAgfCAwLDEgfCA0LDUgfCA4LDkgfDEyLDEzfDE2LDE3fDIwLDIxfDI0LDI1fDI4LDI5fAotCQkJICAgYml0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0JCQkgICB8IDIsMyB8IDYsNyB8MTAsMTF8MTQsMTV8MTgsMTl8MjIsMjN8MjYsMjd8MzAsMzF8Ci0JCQkgICBydjEwMDogY2xlYXJtYXNrIGNvdmVycyAyeDggNHgxIHRpbGVzLCBidXQgb25lIGNsZWFyIHN0aWxsCi0JCQkgICBjb3ZlcnMgMjU2IHBpeGVscyA/IT8KLQkJCSAqLwotCQkJY2xlYXJtYXNrID0gMHgwOwotCQl9Ci0KLQkJQkVHSU5fUklORyg4KTsKLQkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfREVQVEhDTEVBUlZBTFVFLAotCQkJICAgICB0ZW1wUkIzRF9ERVBUSENMRUFSVkFMVUUpOwotCQkvKiB3aGF0IG9mZnNldCBpcyB0aGlzIGV4YWN0bHkgPyAqLwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfWk1BU0tPRkZTRVQsIDApOwotCQkvKiBuZWVkIGN0bHN0YXQsIG90aGVyd2lzZSBnZXQgc29tZSBzdHJhbmdlIGJsYWNrIGZsaWNrZXJpbmcgKi8KLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pDQUNIRV9DVExTVEFULAotCQkJICAgICBSQURFT05fUkIzRF9aQ19GTFVTSF9BTEwpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbmJveDsgaSsrKSB7Ci0JCQlpbnQgdGlsZW9mZnNldCwgbnJ0aWxlc3gsIG5ydGlsZXN5LCBqOwotCQkJLyogaXQgbG9va3MgbGlrZSByMjAwIG5lZWRzIHJ2LXN0eWxlIGNsZWFycywgYXQgbGVhc3QgaWYgaGllcnogaXMgbm90IGVuYWJsZWQ/ICovCi0JCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9IQVNfSElFUlopCi0JCQkgICAgJiYgIShkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkpIHsKLQkJCQkvKiBGSVhNRSA6IGZpZ3VyZSB0aGlzIG91dCBmb3IgcjIwMCAod2hlbiBoaWVyeiBpcyBlbmFibGVkKS4gT3IKLQkJCQkgICBtYXliZSByMjAwIGFjdHVhbGx5IGRvZXNuJ3QgbmVlZCB0byBwdXQgdGhlIGxvdy1yZXMgeiB2YWx1ZSBpbnRvCi0JCQkJICAgdGhlIHRpbGUgY2FjaGUgbGlrZSByMTAwLCBidXQganVzdCBuZWVkcyB0byBjbGVhciB0aGUgaGktbGV2ZWwgei1idWZmZXI/Ci0JCQkJICAgV29ya3MgZm9yIFIxMDAsIGJvdGggd2l0aCBoaWVyeiBhbmQgd2l0aG91dC4KLQkJCQkgICBSMTAwIHNlZW1zIHRvIG9wZXJhdGUgb24gMngxIDh4OCB0aWxlcywgYnV0Li4uCi0JCQkJICAgb2RkOiBvZmZzZXQvbnJ0aWxlcyBuZWVkIHRvIGJlIDY0IHBpeCAoNCBibG9jaykgYWxpZ25lZD8gUG90ZW50aWFsbHkKLQkJCQkgICBwcm9ibGVtYXRpYyB3aXRoIHJlc29sdXRpb25zIHdoaWNoIGFyZSBub3QgNjQgcGl4IGFsaWduZWQ/ICovCi0JCQkJdGlsZW9mZnNldCA9Ci0JCQkJICAgICgocGJveFtpXS55MSA+PiAzKSAqIGRlcHRocGl4cGVybGluZSArCi0JCQkJICAgICBwYm94W2ldLngxKSA+PiA2OwotCQkJCW5ydGlsZXN4ID0KLQkJCQkgICAgKChwYm94W2ldLngyICYgfjYzKSAtCi0JCQkJICAgICAocGJveFtpXS54MSAmIH42MykpID4+IDQ7Ci0JCQkJbnJ0aWxlc3kgPQotCQkJCSAgICAocGJveFtpXS55MiA+PiAzKSAtIChwYm94W2ldLnkxID4+IDMpOwotCQkJCWZvciAoaiA9IDA7IGogPD0gbnJ0aWxlc3k7IGorKykgewotCQkJCQlCRUdJTl9SSU5HKDQpOwotCQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCi0JCQkJCQkgKFJBREVPTl8zRF9DTEVBUl9aTUFTSywgMikpOwotCQkJCQkvKiBmaXJzdCB0aWxlICovCi0JCQkJCU9VVF9SSU5HKHRpbGVvZmZzZXQgKiA4KTsKLQkJCQkJLyogdGhlIG51bWJlciBvZiB0aWxlcyB0byBjbGVhciAqLwotCQkJCQlPVVRfUklORyhucnRpbGVzeCArIDQpOwotCQkJCQkvKiBjbGVhciBtYXNrIDogY2hvb3NlcyB0aGUgY2xlYXJpbmcgcGF0dGVybi4gKi8KLQkJCQkJT1VUX1JJTkcoY2xlYXJtYXNrKTsKLQkJCQkJQURWQU5DRV9SSU5HKCk7Ci0JCQkJCXRpbGVvZmZzZXQgKz0gZGVwdGhwaXhwZXJsaW5lID4+IDY7Ci0JCQkJfQotCQkJfSBlbHNlIGlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkgewotCQkJCS8qIHdvcmtzIGZvciBydjI1MC4gKi8KLQkJCQkvKiBmaW5kIGZpcnN0IG1hY3JvIHRpbGUgKDh4MiA0eDQgei1waXhlbHMgb24gcnYyNTApICovCi0JCQkJdGlsZW9mZnNldCA9Ci0JCQkJICAgICgocGJveFtpXS55MSA+PiAzKSAqIGRlcHRocGl4cGVybGluZSArCi0JCQkJICAgICBwYm94W2ldLngxKSA+PiA1OwotCQkJCW5ydGlsZXN4ID0KLQkJCQkgICAgKHBib3hbaV0ueDIgPj4gNSkgLSAocGJveFtpXS54MSA+PiA1KTsKLQkJCQlucnRpbGVzeSA9Ci0JCQkJICAgIChwYm94W2ldLnkyID4+IDMpIC0gKHBib3hbaV0ueTEgPj4gMyk7Ci0JCQkJZm9yIChqID0gMDsgaiA8PSBucnRpbGVzeTsgaisrKSB7Ci0JCQkJCUJFR0lOX1JJTkcoNCk7Ci0JCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKLQkJCQkJCSAoUkFERU9OXzNEX0NMRUFSX1pNQVNLLCAyKSk7Ci0JCQkJCS8qIGZpcnN0IHRpbGUgKi8KLQkJCQkJLyoganVkZ2luZyBieSB0aGUgZmlyc3QgdGlsZSBvZmZzZXQgbmVlZGVkLCBjb3VsZCBwb3NzaWJseQotCQkJCQkgICBkaXJlY3RseSBhZGRyZXNzL2NsZWFyIDR4NCB0aWxlcyBpbnN0ZWFkIG9mIDh4MiAqIDR4NAotCQkJCQkgICBtYWNybyB0aWxlcywgdGhvdWdoIHdvdWxkIHN0aWxsIG5lZWQgY2xlYXIgbWFzayBmb3IKLQkJCQkJICAgcmlnaHQvYm90dG9tIGlmIHRydWVseSA0eDQgZ3JhbnVsYXJpdHkgaXMgZGVzaXJlZCA/ICovCi0JCQkJCU9VVF9SSU5HKHRpbGVvZmZzZXQgKiAxNik7Ci0JCQkJCS8qIHRoZSBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgKi8KLQkJCQkJT1VUX1JJTkcobnJ0aWxlc3ggKyAxKTsKLQkJCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uICovCi0JCQkJCU9VVF9SSU5HKGNsZWFybWFzayk7Ci0JCQkJCUFEVkFOQ0VfUklORygpOwotCQkJCQl0aWxlb2Zmc2V0ICs9IGRlcHRocGl4cGVybGluZSA+PiA1OwotCQkJCX0KLQkJCX0gZWxzZSB7CS8qIHJ2IDEwMCAqLwotCQkJCS8qIHJ2MTAwIG1pZ2h0IG5vdCBuZWVkIDY0IHBpeCBhbGlnbm1lbnQsIHdobyBrbm93cyAqLwotCQkJCS8qIG9mZnNldHMgYXJlLCBobW0sIHdlaXJkICovCi0JCQkJdGlsZW9mZnNldCA9Ci0JCQkJICAgICgocGJveFtpXS55MSA+PiA0KSAqIGRlcHRocGl4cGVybGluZSArCi0JCQkJICAgICBwYm94W2ldLngxKSA+PiA2OwotCQkJCW5ydGlsZXN4ID0KLQkJCQkgICAgKChwYm94W2ldLngyICYgfjYzKSAtCi0JCQkJICAgICAocGJveFtpXS54MSAmIH42MykpID4+IDQ7Ci0JCQkJbnJ0aWxlc3kgPQotCQkJCSAgICAocGJveFtpXS55MiA+PiA0KSAtIChwYm94W2ldLnkxID4+IDQpOwotCQkJCWZvciAoaiA9IDA7IGogPD0gbnJ0aWxlc3k7IGorKykgewotCQkJCQlCRUdJTl9SSU5HKDQpOwotCQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCi0JCQkJCQkgKFJBREVPTl8zRF9DTEVBUl9aTUFTSywgMikpOwotCQkJCQlPVVRfUklORyh0aWxlb2Zmc2V0ICogMTI4KTsKLQkJCQkJLyogdGhlIG51bWJlciBvZiB0aWxlcyB0byBjbGVhciAqLwotCQkJCQlPVVRfUklORyhucnRpbGVzeCArIDQpOwotCQkJCQkvKiBjbGVhciBtYXNrIDogY2hvb3NlcyB0aGUgY2xlYXJpbmcgcGF0dGVybi4gKi8KLQkJCQkJT1VUX1JJTkcoY2xlYXJtYXNrKTsKLQkJCQkJQURWQU5DRV9SSU5HKCk7Ci0JCQkJCXRpbGVvZmZzZXQgKz0gZGVwdGhwaXhwZXJsaW5lID4+IDY7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQkJLyogVE9ETyBkb24ndCBhbHdheXMgY2xlYXIgYWxsIGhpLWxldmVsIHogdGlsZXMgKi8KLQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSEFTX0hJRVJaKQotCQkgICAgJiYgKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMjAwKQotCQkgICAgJiYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikpCi0JCQkvKiByMTAwIGFuZCBjYXJkcyB3aXRob3V0IGhpZXJhcmNoaWNhbCB6LWJ1ZmZlciBoYXZlIG5vIGhpZ2gtbGV2ZWwgei1idWZmZXIgKi8KLQkJCS8qIEZJWE1FIDogdGhlIG1hc2sgc3VwcG9zZWRseSBjb250YWlucyBsb3ctcmVzIHogdmFsdWVzLiBTbyBjYW4ndCBzZXQKLQkJCSAgIGp1c3QgdG8gdGhlIG1heCAoMHhmZj8gb3IgYWN0dWFsbHkgMHgzZmZmPyksIG5lZWQgdG8gdGFrZSB6IGNsZWFyCi0JCQkgICB2YWx1ZSBpbnRvIGFjY291bnQ/ICovCi0JCXsKLQkJCUJFR0lOX1JJTkcoNCk7Ci0JCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl8zRF9DTEVBUl9ISVosIDIpKTsKLQkJCU9VVF9SSU5HKDB4MCk7CS8qIEZpcnN0IHRpbGUgKi8KLQkJCU9VVF9SSU5HKDB4M2NjMCk7Ci0JCQlPVVRfUklORygoMHhmZiA8PCAyMikgfCAoMHhmZiA8PCA2KSB8IDB4MDAzZjAwM2YpOwotCQkJQURWQU5DRV9SSU5HKCk7Ci0JCX0KLQl9Ci0KLQkvKiBXZSBoYXZlIHRvIGNsZWFyIHRoZSBkZXB0aCBhbmQvb3Igc3RlbmNpbCBidWZmZXJzIGJ5Ci0JICogcmVuZGVyaW5nIGEgcXVhZCBpbnRvIGp1c3QgdGhvc2UgYnVmZmVycy4gIFRodXMsIHdlIGhhdmUgdG8KLQkgKiBtYWtlIHN1cmUgdGhlIDNEIGVuZ2luZSBpcyBjb25maWd1cmVkIGNvcnJlY3RseS4KLQkgKi8KLQllbHNlIGlmICgoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApICYmCi0JCShmbGFncyAmIChSQURFT05fREVQVEggfCBSQURFT05fU1RFTkNJTCkpKSB7Ci0KLQkJaW50IHRlbXBQUF9DTlRMOwotCQlpbnQgdGVtcFJFX0NOVEw7Ci0JCWludCB0ZW1wUkIzRF9DTlRMOwotCQlpbnQgdGVtcFJCM0RfWlNURU5DSUxDTlRMOwotCQlpbnQgdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0s7Ci0JCWludCB0ZW1wUkIzRF9QTEFORU1BU0s7Ci0JCWludCB0ZW1wU0VfQ05UTDsKLQkJaW50IHRlbXBTRV9WVEVfQ05UTDsKLQkJaW50IHRlbXBTRV9WVFhfRk1UXzA7Ci0JCWludCB0ZW1wU0VfVlRYX0ZNVF8xOwotCQlpbnQgdGVtcFNFX1ZBUF9DTlRMOwotCQlpbnQgdGVtcFJFX0FVWF9TQ0lTU09SX0NOVEw7Ci0KLQkJdGVtcFBQX0NOVEwgPSAwOwotCQl0ZW1wUkVfQ05UTCA9IDA7Ci0KLQkJdGVtcFJCM0RfQ05UTCA9IGRlcHRoX2NsZWFyLT5yYjNkX2NudGw7Ci0KLQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMID0gZGVwdGhfY2xlYXItPnJiM2RfenN0ZW5jaWxjbnRsOwotCQl0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyA9IDB4MDsKLQotCQl0ZW1wU0VfQ05UTCA9IGRlcHRoX2NsZWFyLT5zZV9jbnRsOwotCi0JCS8qIERpc2FibGUgVENMICovCi0KLQkJdGVtcFNFX1ZBUF9DTlRMID0gKAkvKiBTRV9WQVBfQ05UTF9fRk9SQ0VfV19UT19PTkVfTUFTSyB8ICAqLwotCQkJCQkgICgweDkgPDwKLQkJCQkJICAgU0VfVkFQX0NOVExfX1ZGX01BWF9WVFhfTlVNX19TSElGVCkpOwotCi0JCXRlbXBSQjNEX1BMQU5FTUFTSyA9IDB4MDsKLQotCQl0ZW1wUkVfQVVYX1NDSVNTT1JfQ05UTCA9IDB4MDsKLQotCQl0ZW1wU0VfVlRFX0NOVEwgPQotCQkgICAgU0VfVlRFX0NOVExfX1ZUWF9YWV9GTVRfTUFTSyB8IFNFX1ZURV9DTlRMX19WVFhfWl9GTVRfTUFTSzsKLQotCQkvKiBWZXJ0ZXggZm9ybWF0IChYLCBZLCBaLCBXKSAqLwotCQl0ZW1wU0VfVlRYX0ZNVF8wID0KLQkJICAgIFNFX1ZUWF9GTVRfMF9fVlRYX1owX1BSRVNFTlRfTUFTSyB8Ci0JCSAgICBTRV9WVFhfRk1UXzBfX1ZUWF9XMF9QUkVTRU5UX01BU0s7Ci0JCXRlbXBTRV9WVFhfRk1UXzEgPSAweDA7Ci0KLQkJLyoKLQkJICogRGVwdGggYnVmZmVyIHNwZWNpZmljIGVuYWJsZXMKLQkJICovCi0JCWlmIChmbGFncyAmIFJBREVPTl9ERVBUSCkgewotCQkJLyogRW5hYmxlIGRlcHRoIGJ1ZmZlciAqLwotCQkJdGVtcFJCM0RfQ05UTCB8PSBSQURFT05fWl9FTkFCTEU7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBEaXNhYmxlIGRlcHRoIGJ1ZmZlciAqLwotCQkJdGVtcFJCM0RfQ05UTCAmPSB+UkFERU9OX1pfRU5BQkxFOwotCQl9Ci0KLQkJLyoKLQkJICogU3RlbmNpbCBidWZmZXIgc3BlY2lmaWMgZW5hYmxlcwotCQkgKi8KLQkJaWYgKGZsYWdzICYgUkFERU9OX1NURU5DSUwpIHsKLQkJCXRlbXBSQjNEX0NOVEwgfD0gUkFERU9OX1NURU5DSUxfRU5BQkxFOwotCQkJdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0sgPSBjbGVhci0+ZGVwdGhfbWFzazsKLQkJfSBlbHNlIHsKLQkJCXRlbXBSQjNEX0NOVEwgJj0gflJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKLQkJCXRlbXBSQjNEX1NURU5DSUxSRUZNQVNLID0gMHgwMDAwMDAwMDsKLQkJfQotCi0JCWlmIChmbGFncyAmIFJBREVPTl9VU0VfQ09NUF9aQlVGKSB7Ci0JCQl0ZW1wUkIzRF9aU1RFTkNJTENOVEwgfD0gUkFERU9OX1pfQ09NUFJFU1NJT05fRU5BQkxFIHwKLQkJCSAgICBSQURFT05fWl9ERUNPTVBSRVNTSU9OX0VOQUJMRTsKLQkJfQotCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0hJRVJaKSB7Ci0JCQl0ZW1wUkIzRF9aU1RFTkNJTENOVEwgfD0gUkFERU9OX1pfSElFUkFSQ0hZX0VOQUJMRTsKLQkJfQotCi0JCUJFR0lOX1JJTkcoMjYpOwotCQlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7Ci0KLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9QUF9DTlRMLCB0ZW1wUFBfQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSMjAwX1JFX0NOVEwsIHRlbXBSRV9DTlRMKTsKLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX0NOVEwsIHRlbXBSQjNEX0NOVEwpOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfWlNURU5DSUxDTlRMLCB0ZW1wUkIzRF9aU1RFTkNJTENOVEwpOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssCi0JCQkgICAgIHRlbXBSQjNEX1NURU5DSUxSRUZNQVNLKTsKLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1BMQU5FTUFTSywgdGVtcFJCM0RfUExBTkVNQVNLKTsKLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9DTlRMLCB0ZW1wU0VfQ05UTCk7Ci0JCU9VVF9SSU5HX1JFRyhSMjAwX1NFX1ZURV9DTlRMLCB0ZW1wU0VfVlRFX0NOVEwpOwotCQlPVVRfUklOR19SRUcoUjIwMF9TRV9WVFhfRk1UXzAsIHRlbXBTRV9WVFhfRk1UXzApOwotCQlPVVRfUklOR19SRUcoUjIwMF9TRV9WVFhfRk1UXzEsIHRlbXBTRV9WVFhfRk1UXzEpOwotCQlPVVRfUklOR19SRUcoUjIwMF9TRV9WQVBfQ05UTCwgdGVtcFNFX1ZBUF9DTlRMKTsKLQkJT1VUX1JJTkdfUkVHKFIyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCwgdGVtcFJFX0FVWF9TQ0lTU09SX0NOVEwpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQotCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgotCQkgKi8KLQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7Ci0KLQkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgewotCi0JCQkvKiBGdW5ueSB0aGF0IHRoaXMgc2hvdWxkIGJlIHJlcXVpcmVkIC0tCi0JCQkgKiAgc2V0cyB0b3AtbGVmdD8KLQkJCSAqLwotCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOwotCi0JCQlCRUdJTl9SSU5HKDE0KTsKLQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMoUjIwMF8zRF9EUkFXX0lNTURfMiwgMTIpKTsKLQkJCU9VVF9SSU5HKChSQURFT05fUFJJTV9UWVBFX1JFQ1RfTElTVCB8Ci0JCQkJICBSQURFT05fUFJJTV9XQUxLX1JJTkcgfAotCQkJCSAgKDMgPDwgUkFERU9OX05VTV9WRVJUSUNFU19TSElGVCkpKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gxXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMV0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKLQkJCU9VVF9SSU5HKDB4M2Y4MDAwMDApOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDFdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kyXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOwotCQkJT1VUX1JJTkcoMHgzZjgwMDAwMCk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMl0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7Ci0JCQlPVVRfUklORygweDNmODAwMDAwKTsKLQkJCUFEVkFOQ0VfUklORygpOwotCQl9Ci0JfSBlbHNlIGlmICgoZmxhZ3MgJiAoUkFERU9OX0RFUFRIIHwgUkFERU9OX1NURU5DSUwpKSkgewotCi0JCWludCB0ZW1wUkIzRF9aU1RFTkNJTENOVEwgPSBkZXB0aF9jbGVhci0+cmIzZF96c3RlbmNpbGNudGw7Ci0KLQkJcmIzZF9jbnRsID0gZGVwdGhfY2xlYXItPnJiM2RfY250bDsKLQotCQlpZiAoZmxhZ3MgJiBSQURFT05fREVQVEgpIHsKLQkJCXJiM2RfY250bCB8PSBSQURFT05fWl9FTkFCTEU7Ci0JCX0gZWxzZSB7Ci0JCQlyYjNkX2NudGwgJj0gflJBREVPTl9aX0VOQUJMRTsKLQkJfQotCi0JCWlmIChmbGFncyAmIFJBREVPTl9TVEVOQ0lMKSB7Ci0JCQlyYjNkX2NudGwgfD0gUkFERU9OX1NURU5DSUxfRU5BQkxFOwotCQkJcmIzZF9zdGVuY2lscmVmbWFzayA9IGNsZWFyLT5kZXB0aF9tYXNrOwkvKiBtaXNuYW1lZCBmaWVsZCAqLwotCQl9IGVsc2UgewotCQkJcmIzZF9jbnRsICY9IH5SQURFT05fU1RFTkNJTF9FTkFCTEU7Ci0JCQlyYjNkX3N0ZW5jaWxyZWZtYXNrID0gMHgwMDAwMDAwMDsKLQkJfQotCi0JCWlmIChmbGFncyAmIFJBREVPTl9VU0VfQ09NUF9aQlVGKSB7Ci0JCQl0ZW1wUkIzRF9aU1RFTkNJTENOVEwgfD0gUkFERU9OX1pfQ09NUFJFU1NJT05fRU5BQkxFIHwKLQkJCSAgICBSQURFT05fWl9ERUNPTVBSRVNTSU9OX0VOQUJMRTsKLQkJfQotCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0hJRVJaKSB7Ci0JCQl0ZW1wUkIzRF9aU1RFTkNJTENOVEwgfD0gUkFERU9OX1pfSElFUkFSQ0hZX0VOQUJMRTsKLQkJfQotCi0JCUJFR0lOX1JJTkcoMTMpOwotCQlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQ05UTCwgMSkpOwotCQlPVVRfUklORygweDAwMDAwMDAwKTsKLQkJT1VUX1JJTkcocmIzZF9jbnRsKTsKLQotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfWlNURU5DSUxDTlRMLCB0ZW1wUkIzRF9aU1RFTkNJTENOVEwpOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssIHJiM2Rfc3RlbmNpbHJlZm1hc2spOwotCQlPVVRfUklOR19SRUcoUkFERU9OX1JCM0RfUExBTkVNQVNLLCAweDAwMDAwMDAwKTsKLQkJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9DTlRMLCBkZXB0aF9jbGVhci0+c2VfY250bCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCi0JCS8qIE1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSAzRCBzdGF0ZSBuZXh0IHRpbWUuCi0JCSAqLwotCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3R4X293bmVyID0gMDsKLQotCQlmb3IgKGkgPSAwOyBpIDwgbmJveDsgaSsrKSB7Ci0KLQkJCS8qIEZ1bm55IHRoYXQgdGhpcyBzaG91bGQgYmUgcmVxdWlyZWQgLS0KLQkJCSAqICBzZXRzIHRvcC1sZWZ0PwotCQkJICovCi0JCQlyYWRlb25fZW1pdF9jbGlwX3JlY3QoZGV2X3ByaXYsICZzYXJlYV9wcml2LT5ib3hlc1tpXSk7Ci0KLQkJCUJFR0lOX1JJTkcoMTUpOwotCi0JCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl8zRF9EUkFXX0lNTUQsIDEzKSk7Ci0JCQlPVVRfUklORyhSQURFT05fVlRYX1pfUFJFU0VOVCB8Ci0JCQkJIFJBREVPTl9WVFhfUEtDT0xPUl9QUkVTRU5UKTsKLQkJCU9VVF9SSU5HKChSQURFT05fUFJJTV9UWVBFX1JFQ1RfTElTVCB8Ci0JCQkJICBSQURFT05fUFJJTV9XQUxLX1JJTkcgfAotCQkJCSAgUkFERU9OX01BT1NfRU5BQkxFIHwKLQkJCQkgIFJBREVPTl9WVFhfRk1UX1JBREVPTl9NT0RFIHwKLQkJCQkgICgzIDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKSk7Ci0KLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gxXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMV0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKLQkJCU9VVF9SSU5HKDB4MCk7Ci0KLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gxXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMl0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKLQkJCU9VVF9SSU5HKDB4MCk7Ci0KLQkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gyXSk7Ci0JCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMl0pOwotCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKLQkJCU9VVF9SSU5HKDB4MCk7Ci0KLQkJCUFEVkFOQ0VfUklORygpOwotCQl9Ci0JfQotCi0JLyogSW5jcmVtZW50IHRoZSBjbGVhciBjb3VudGVyLiAgVGhlIGNsaWVudC1zaWRlIDNEIGRyaXZlciBtdXN0Ci0JICogd2FpdCBvbiB0aGlzIHZhbHVlIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBjbGVhciBpb2N0bC4gIFdlCi0JICogbmVlZCB0aGlzIGJlY2F1c2UgdGhlIGNhcmQncyBzbyBkYW1uZWQgZmFzdC4uLgotCSAqLwotCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2NsZWFyKys7Ci0KLQlCRUdJTl9SSU5HKDQpOwotCi0JUkFERU9OX0NMRUFSX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9jbGVhcik7Ci0JUkFERU9OX1dBSVRfVU5USUxfSURMRSgpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9zd2FwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0JaW50IG5ib3ggPSBzYXJlYV9wcml2LT5uYm94OwotCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpwYm94ID0gc2FyZWFfcHJpdi0+Ym94ZXM7Ci0JaW50IGk7Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JLyogRG8gc29tZSB0cml2aWFsIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcuLi4KLQkgKi8KLQlpZiAoZGV2X3ByaXYtPmRvX2JveGVzKQotCQlyYWRlb25fY3BfcGVyZm9ybWFuY2VfYm94ZXMoZGV2X3ByaXYpOwotCi0JLyogV2FpdCBmb3IgdGhlIDNEIHN0cmVhbSB0byBpZGxlIGJlZm9yZSBkaXNwYXRjaGluZyB0aGUgYml0Ymx0LgotCSAqIFRoaXMgd2lsbCBwcmV2ZW50IGRhdGEgY29ycnVwdGlvbiBiZXR3ZWVuIHRoZSB0d28gc3RyZWFtcy4KLQkgKi8KLQlCRUdJTl9SSU5HKDIpOwotCi0JUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbmJveDsgaSsrKSB7Ci0JCWludCB4ID0gcGJveFtpXS54MTsKLQkJaW50IHkgPSBwYm94W2ldLnkxOwotCQlpbnQgdyA9IHBib3hbaV0ueDIgLSB4OwotCQlpbnQgaCA9IHBib3hbaV0ueTIgLSB5OwotCi0JCURSTV9ERUJVRygiJWQsJWQtJWQsJWRcbiIsIHgsIHksIHcsIGgpOwotCi0JCUJFR0lOX1JJTkcoOSk7Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fRFBfR1VJX01BU1RFUl9DTlRMLCAwKSk7Ci0JCU9VVF9SSU5HKFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMIHwKLQkJCSBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCQkgUkFERU9OX0dNQ19CUlVTSF9OT05FIHwKLQkJCSAoZGV2X3ByaXYtPmNvbG9yX2ZtdCA8PCA4KSB8Ci0JCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAotCQkJIFJBREVPTl9ST1AzX1MgfAotCQkJIFJBREVPTl9EUF9TUkNfU09VUkNFX01FTU9SWSB8Ci0JCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTIHwgUkFERU9OX0dNQ19XUl9NU0tfRElTKTsKLQotCQkvKiBNYWtlIHRoaXMgd29yayBldmVuIGlmIGZyb250ICYgYmFjayBhcmUgZmxpcHBlZDoKLQkJICovCi0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NSQ19QSVRDSF9PRkZTRVQsIDEpKTsKLQkJaWYgKGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlID09IDApIHsKLQkJCU9VVF9SSU5HKGRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCk7Ci0JCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKLQkJfSBlbHNlIHsKLQkJCU9VVF9SSU5HKGRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQpOwotCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0KTsKLQkJfQotCi0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NSQ19YX1ksIDIpKTsKLQkJT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7Ci0JCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOwotCQlPVVRfUklORygodyA8PCAxNikgfCBoKTsKLQotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci0KLQkvKiBJbmNyZW1lbnQgdGhlIGZyYW1lIGNvdW50ZXIuICBUaGUgY2xpZW50LXNpZGUgM0QgZHJpdmVyIG11c3QKLQkgKiB0aHJvdHRsZSB0aGUgZnJhbWVyYXRlIGJ5IHdhaXRpbmcgZm9yIHRoaXMgdmFsdWUgYmVmb3JlCi0JICogcGVyZm9ybWluZyB0aGUgc3dhcGJ1ZmZlciBpb2N0bC4KLQkgKi8KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSsrOwotCi0JQkVHSU5fUklORyg0KTsKLQotCVJBREVPTl9GUkFNRV9BR0UoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUpOwotCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKLQotCUFEVkFOQ0VfUklORygpOwotfQotCi1zdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fc2FyZWEgKnNhcmVhID0gKHN0cnVjdCBkcm1fc2FyZWEgKikgZGV2X3ByaXYtPnNhcmVhLT5oYW5kbGU7Ci0JaW50IG9mZnNldCA9IChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAxKQotCSAgICA/IGRldl9wcml2LT5mcm9udF9vZmZzZXQgOiBkZXZfcHJpdi0+YmFja19vZmZzZXQ7Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJwZkN1cnJlbnRQYWdlPSVkXG4iLAotCQkgIGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlKTsKLQotCS8qIERvIHNvbWUgdHJpdmlhbCBwZXJmb3JtYW5jZSBtb25pdG9yaW5nLi4uCi0JICovCi0JaWYgKGRldl9wcml2LT5kb19ib3hlcykgewotCQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9GTElQOwotCQlyYWRlb25fY3BfcGVyZm9ybWFuY2VfYm94ZXMoZGV2X3ByaXYpOwotCX0KLQotCS8qIFVwZGF0ZSB0aGUgZnJhbWUgb2Zmc2V0cyBmb3IgYm90aCBDUlRDcwotCSAqLwotCUJFR0lOX1JJTkcoNik7Ci0KLQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9DUlRDX09GRlNFVCwKLQkJICAgICAoKHNhcmVhLT5mcmFtZS55ICogZGV2X3ByaXYtPmZyb250X3BpdGNoICsKLQkJICAgICAgIHNhcmVhLT5mcmFtZS54ICogKGRldl9wcml2LT5jb2xvcl9mbXQgLSAyKSkgJiB+NykKLQkJICAgICArIG9mZnNldCk7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9DUlRDMl9PRkZTRVQsIGRldl9wcml2LT5zYXJlYV9wcml2LT5jcnRjMl9iYXNlCi0JCSAgICAgKyBvZmZzZXQpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci0KLQkvKiBJbmNyZW1lbnQgdGhlIGZyYW1lIGNvdW50ZXIuICBUaGUgY2xpZW50LXNpZGUgM0QgZHJpdmVyIG11c3QKLQkgKiB0aHJvdHRsZSB0aGUgZnJhbWVyYXRlIGJ5IHdhaXRpbmcgZm9yIHRoaXMgdmFsdWUgYmVmb3JlCi0JICogcGVyZm9ybWluZyB0aGUgc3dhcGJ1ZmZlciBpb2N0bC4KLQkgKi8KLQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9mcmFtZSsrOwotCWRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlID0KLQkJMSAtIGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlOwotCi0JQkVHSU5fUklORygyKTsKLQotCVJBREVPTl9GUkFNRV9BR0UoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUpOwotCi0JQURWQU5DRV9SSU5HKCk7Ci19Ci0KLXN0YXRpYyBpbnQgYmFkX3ByaW1fdmVydGV4X25yKGludCBwcmltaXRpdmUsIGludCBucikKLXsKLQlzd2l0Y2ggKHByaW1pdGl2ZSAmIFJBREVPTl9QUklNX1RZUEVfTUFTSykgewotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9OT05FOgotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9QT0lOVDoKLQkJcmV0dXJuIG5yIDwgMTsKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfTElORToKLQkJcmV0dXJuIChuciAmIDEpIHx8IG5yID09IDA7Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFX0xJTkVfU1RSSVA6Ci0JCXJldHVybiBuciA8IDI7Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFX1RSSV9MSVNUOgotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV8zVlJUX1BPSU5UX0xJU1Q6Ci0JY2FzZSBSQURFT05fUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUOgotCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1Q6Ci0JCXJldHVybiBuciAlIDMgfHwgbnIgPT0gMDsKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfVFJJX0ZBTjoKLQljYXNlIFJBREVPTl9QUklNX1RZUEVfVFJJX1NUUklQOgotCQlyZXR1cm4gbnIgPCAzOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAxOwotCX0KLX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotCXVuc2lnbmVkIGludCBzdGFydDsKLQl1bnNpZ25lZCBpbnQgZmluaXNoOwotCXVuc2lnbmVkIGludCBwcmltOwotCXVuc2lnbmVkIGludCBudW12ZXJ0czsKLQl1bnNpZ25lZCBpbnQgb2Zmc2V0OwotCXVuc2lnbmVkIGludCB2Y19mb3JtYXQ7Ci19IGRybV9yYWRlb25fdGNsX3ByaW1fdDsKLQotc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZiwKLQkJCQkgICAgICBkcm1fcmFkZW9uX3RjbF9wcmltX3QgKiBwcmltKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0JaW50IG9mZnNldCA9IGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ICsgYnVmLT5vZmZzZXQgKyBwcmltLT5zdGFydDsKLQlpbnQgbnVtdmVydHMgPSAoaW50KXByaW0tPm51bXZlcnRzOwotCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKLQlpbnQgaSA9IDA7Ci0JUklOR19MT0NBTFM7Ci0KLQlEUk1fREVCVUcoImh3cHJpbSAweCV4IHZmbXQgMHgleCAlZC4uJWQgJWQgdmVydHNcbiIsCi0JCSAgcHJpbS0+cHJpbSwKLQkJICBwcmltLT52Y19mb3JtYXQsIHByaW0tPnN0YXJ0LCBwcmltLT5maW5pc2gsIHByaW0tPm51bXZlcnRzKTsKLQotCWlmIChiYWRfcHJpbV92ZXJ0ZXhfbnIocHJpbS0+cHJpbSwgcHJpbS0+bnVtdmVydHMpKSB7Ci0JCURSTV9FUlJPUigiYmFkIHByaW0gJXggbnVtdmVydHMgJWRcbiIsCi0JCQkgIHByaW0tPnByaW0sIHByaW0tPm51bXZlcnRzKTsKLQkJcmV0dXJuOwotCX0KLQotCWRvIHsKLQkJLyogRW1pdCB0aGUgbmV4dCBjbGlwcmVjdCAqLwotCQlpZiAoaSA8IG5ib3gpIHsKLQkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJnNhcmVhX3ByaXYtPmJveGVzW2ldKTsKLQkJfQotCi0JCS8qIEVtaXQgdGhlIHZlcnRleCBidWZmZXIgcmVuZGVyaW5nIGNvbW1hbmRzICovCi0JCUJFR0lOX1JJTkcoNSk7Ci0KLQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fM0RfUk5EUl9HRU5fSU5EWF9QUklNLCAzKSk7Ci0JCU9VVF9SSU5HKG9mZnNldCk7Ci0JCU9VVF9SSU5HKG51bXZlcnRzKTsKLQkJT1VUX1JJTkcocHJpbS0+dmNfZm9ybWF0KTsKLQkJT1VUX1JJTkcocHJpbS0+cHJpbSB8IFJBREVPTl9QUklNX1dBTEtfTElTVCB8Ci0JCQkgUkFERU9OX0NPTE9SX09SREVSX1JHQkEgfAotCQkJIFJBREVPTl9WVFhfRk1UX1JBREVPTl9NT0RFIHwKLQkJCSAobnVtdmVydHMgPDwgUkFERU9OX05VTV9WRVJUSUNFU19TSElGVCkpOwotCi0JCUFEVkFOQ0VfUklORygpOwotCi0JCWkrKzsKLQl9IHdoaWxlIChpIDwgbmJveCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNjYXJkX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgc3RydWN0IGRybV9idWYgKiBidWYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKLQlSSU5HX0xPQ0FMUzsKLQotCWJ1Zl9wcml2LT5hZ2UgPSArK2Rldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoOwotCi0JLyogRW1pdCB0aGUgdmVydGV4IGJ1ZmZlciBhZ2UgKi8KLQlCRUdJTl9SSU5HKDIpOwotCVJBREVPTl9ESVNQQVRDSF9BR0UoYnVmX3ByaXYtPmFnZSk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQlidWYtPnBlbmRpbmcgPSAxOwotCWJ1Zi0+dXNlZCA9IDA7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKLQkJCQkJc3RydWN0IGRybV9idWYgKiBidWYsIGludCBzdGFydCwgaW50IGVuZCkKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCVJJTkdfTE9DQUxTOwotCURSTV9ERUJVRygiYnVmPSVkIHM9MHgleCBlPTB4JXhcbiIsIGJ1Zi0+aWR4LCBzdGFydCwgZW5kKTsKLQotCWlmIChzdGFydCAhPSBlbmQpIHsKLQkJaW50IG9mZnNldCA9IChkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldAotCQkJICAgICAgKyBidWYtPm9mZnNldCArIHN0YXJ0KTsKLQkJaW50IGR3b3JkcyA9IChlbmQgLSBzdGFydCArIDMpIC8gc2l6ZW9mKHUzMik7Ci0KLQkJLyogSW5kaXJlY3QgYnVmZmVyIGRhdGEgbXVzdCBiZSBhbiBldmVuIG51bWJlciBvZgotCQkgKiBkd29yZHMsIHNvIGlmIHdlJ3ZlIGJlZW4gZ2l2ZW4gYW4gb2RkIG51bWJlciB3ZSBtdXN0Ci0JCSAqIHBhZCB0aGUgZGF0YSB3aXRoIGEgVHlwZS0yIENQIHBhY2tldC4KLQkJICovCi0JCWlmIChkd29yZHMgJiAxKSB7Ci0JCQl1MzIgKmRhdGEgPSAodTMyICopCi0JCQkgICAgKChjaGFyICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlCi0JCQkgICAgICsgYnVmLT5vZmZzZXQgKyBzdGFydCk7Ci0JCQlkYXRhW2R3b3JkcysrXSA9IFJBREVPTl9DUF9QQUNLRVQyOwotCQl9Ci0KLQkJLyogRmlyZSBvZmYgdGhlIGluZGlyZWN0IGJ1ZmZlciAqLwotCQlCRUdJTl9SSU5HKDMpOwotCi0JCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0NQX0lCX0JBU0UsIDEpKTsKLQkJT1VUX1JJTkcob2Zmc2V0KTsKLQkJT1VUX1JJTkcoZHdvcmRzKTsKLQotCQlBRFZBTkNFX1JJTkcoKTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpY2VzKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2J1ZiAqIGVsdF9idWYsCi0JCQkJICAgICAgIGRybV9yYWRlb25fdGNsX3ByaW1fdCAqIHByaW0pCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlpbnQgb2Zmc2V0ID0gZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgKyBwcmltLT5vZmZzZXQ7Ci0JdTMyICpkYXRhOwotCWludCBkd29yZHM7Ci0JaW50IGkgPSAwOwotCWludCBzdGFydCA9IHByaW0tPnN0YXJ0ICsgUkFERU9OX0lOREVYX1BSSU1fT0ZGU0VUOwotCWludCBjb3VudCA9IChwcmltLT5maW5pc2ggLSBzdGFydCkgLyBzaXplb2YodTE2KTsKLQlpbnQgbmJveCA9IHNhcmVhX3ByaXYtPm5ib3g7Ci0KLQlEUk1fREVCVUcoImh3cHJpbSAweCV4IHZmbXQgMHgleCAlZC4uJWQgb2Zmc2V0OiAleCBuciAlZFxuIiwKLQkJICBwcmltLT5wcmltLAotCQkgIHByaW0tPnZjX2Zvcm1hdCwKLQkJICBwcmltLT5zdGFydCwgcHJpbS0+ZmluaXNoLCBwcmltLT5vZmZzZXQsIHByaW0tPm51bXZlcnRzKTsKLQotCWlmIChiYWRfcHJpbV92ZXJ0ZXhfbnIocHJpbS0+cHJpbSwgY291bnQpKSB7Ci0JCURSTV9FUlJPUigiYmFkIHByaW0gJXggY291bnQgJWRcbiIsIHByaW0tPnByaW0sIGNvdW50KTsKLQkJcmV0dXJuOwotCX0KLQotCWlmIChzdGFydCA+PSBwcmltLT5maW5pc2ggfHwgKHByaW0tPnN0YXJ0ICYgMHg3KSkgewotCQlEUk1fRVJST1IoImJ1ZmZlciBwcmltICVkXG4iLCBwcmltLT5wcmltKTsKLQkJcmV0dXJuOwotCX0KLQotCWR3b3JkcyA9IChwcmltLT5maW5pc2ggLSBwcmltLT5zdGFydCArIDMpIC8gc2l6ZW9mKHUzMik7Ci0KLQlkYXRhID0gKHUzMiAqKSAoKGNoYXIgKilkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUgKwotCQkJZWx0X2J1Zi0+b2Zmc2V0ICsgcHJpbS0+c3RhcnQpOwotCi0JZGF0YVswXSA9IENQX1BBQ0tFVDMoUkFERU9OXzNEX1JORFJfR0VOX0lORFhfUFJJTSwgZHdvcmRzIC0gMik7Ci0JZGF0YVsxXSA9IG9mZnNldDsKLQlkYXRhWzJdID0gcHJpbS0+bnVtdmVydHM7Ci0JZGF0YVszXSA9IHByaW0tPnZjX2Zvcm1hdDsKLQlkYXRhWzRdID0gKHByaW0tPnByaW0gfAotCQkgICBSQURFT05fUFJJTV9XQUxLX0lORCB8Ci0JCSAgIFJBREVPTl9DT0xPUl9PUkRFUl9SR0JBIHwKLQkJICAgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUgfAotCQkgICAoY291bnQgPDwgUkFERU9OX05VTV9WRVJUSUNFU19TSElGVCkpOwotCi0JZG8gewotCQlpZiAoaSA8IG5ib3gpCi0JCQlyYWRlb25fZW1pdF9jbGlwX3JlY3QoZGV2X3ByaXYsICZzYXJlYV9wcml2LT5ib3hlc1tpXSk7Ci0KLQkJcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGlyZWN0KGRldiwgZWx0X2J1ZiwKLQkJCQkJICAgIHByaW0tPnN0YXJ0LCBwcmltLT5maW5pc2gpOwotCi0JCWkrKzsKLQl9IHdoaWxlIChpIDwgbmJveCk7Ci0KLX0KLQotI2RlZmluZSBSQURFT05fTUFYX1RFWFRVUkVfU0laRSBSQURFT05fQlVGRkVSX1NJWkUKLQotc3RhdGljIGludCByYWRlb25fY3BfZGlzcGF0Y2hfdGV4dHVyZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKLQkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkgICAgICBkcm1fcmFkZW9uX3RleHR1cmVfdCAqIHRleCwKLQkJCQkgICAgICBkcm1fcmFkZW9uX3RleF9pbWFnZV90ICogaW1hZ2UpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCXUzMiBmb3JtYXQ7Ci0JdTMyICpidWZmZXI7Ci0JY29uc3QgdTggX191c2VyICpkYXRhOwotCWludCBzaXplLCBkd29yZHMsIHRleF93aWR0aCwgYmxpdF93aWR0aCwgc3BpdGNoOwotCXUzMiBoZWlnaHQ7Ci0JaW50IGk7Ci0JdTMyIHRleHBpdGNoLCBtaWNyb3RpbGU7Ci0JdTMyIG9mZnNldDsKLQlSSU5HX0xPQ0FMUzsKLQotCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LCAmdGV4LT5vZmZzZXQpKSB7Ci0JCURSTV9FUlJPUigiSW52YWxpZCBkZXN0aW5hdGlvbiBvZmZzZXRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9URVhUVVJFX0xPQUQ7Ci0KLQkvKiBGbHVzaCB0aGUgcGl4ZWwgY2FjaGUuICBUaGlzIGVuc3VyZXMgbm8gcGl4ZWwgZGF0YSBnZXRzIG1peGVkCi0JICogdXAgd2l0aCB0aGUgdGV4dHVyZSBkYXRhIGZyb20gdGhlIGhvc3QgZGF0YSBibGl0LCBvdGhlcndpc2UKLQkgKiBwYXJ0IG9mIHRoZSB0ZXh0dXJlIGltYWdlIG1heSBiZSBjb3JydXB0ZWQuCi0JICovCi0JQkVHSU5fUklORyg0KTsKLQlSQURFT05fRkxVU0hfQ0FDSEUoKTsKLQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQkvKiBUaGUgY29tcGlsZXIgd29uJ3Qgb3B0aW1pemUgYXdheSBhIGRpdmlzaW9uIGJ5IGEgdmFyaWFibGUsCi0JICogZXZlbiBpZiB0aGUgb25seSBsZWdhbCB2YWx1ZXMgYXJlIHBvd2VycyBvZiB0d28uICBUaHVzLCB3ZSdsbAotCSAqIHVzZSBhIHNoaWZ0IGluc3RlYWQuCi0JICovCi0Jc3dpdGNoICh0ZXgtPmZvcm1hdCkgewotCWNhc2UgUkFERU9OX1RYRk9STUFUX0FSR0I4ODg4OgotCWNhc2UgUkFERU9OX1RYRk9STUFUX1JHQkE4ODg4OgotCQlmb3JtYXQgPSBSQURFT05fQ09MT1JfRk9STUFUX0FSR0I4ODg4OwotCQl0ZXhfd2lkdGggPSB0ZXgtPndpZHRoICogNDsKLQkJYmxpdF93aWR0aCA9IGltYWdlLT53aWR0aCAqIDQ7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1RYRk9STUFUX0FJODg6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjE1NTU6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfUkdCNTY1OgotCWNhc2UgUkFERU9OX1RYRk9STUFUX0FSR0I0NDQ0OgotCWNhc2UgUkFERU9OX1RYRk9STUFUX1ZZVVk0MjI6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfWVZZVTQyMjoKLQkJZm9ybWF0ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I1NjU7Ci0JCXRleF93aWR0aCA9IHRleC0+d2lkdGggKiAyOwotCQlibGl0X3dpZHRoID0gaW1hZ2UtPndpZHRoICogMjsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfSTg6Ci0JY2FzZSBSQURFT05fVFhGT1JNQVRfUkdCMzMyOgotCQlmb3JtYXQgPSBSQURFT05fQ09MT1JfRk9STUFUX0NJODsKLQkJdGV4X3dpZHRoID0gdGV4LT53aWR0aCAqIDE7Ci0JCWJsaXRfd2lkdGggPSBpbWFnZS0+d2lkdGggKiAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fRVJST1IoImludmFsaWQgdGV4dHVyZSBmb3JtYXQgJWRcbiIsIHRleC0+Zm9ybWF0KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCXNwaXRjaCA9IGJsaXRfd2lkdGggPj4gNjsKLQlpZiAoc3BpdGNoID09IDAgJiYgaW1hZ2UtPmhlaWdodCA+IDEpCi0JCXJldHVybiAtRUlOVkFMOwotCi0JdGV4cGl0Y2ggPSB0ZXgtPnBpdGNoOwotCWlmICgodGV4cGl0Y2ggPDwgMjIpICYgUkFERU9OX0RTVF9USUxFX01JQ1JPKSB7Ci0JCW1pY3JvdGlsZSA9IDE7Ci0JCWlmICh0ZXhfd2lkdGggPCA2NCkgewotCQkJdGV4cGl0Y2ggJj0gfihSQURFT05fRFNUX1RJTEVfTUlDUk8gPj4gMjIpOwotCQkJLyogd2UgZ290IHRpbGVkIGNvb3JkaW5hdGVzLCB1bnRpbGUgdGhlbSAqLwotCQkJaW1hZ2UtPnggKj0gMjsKLQkJfQotCX0gZWxzZQotCQltaWNyb3RpbGUgPSAwOwotCi0JRFJNX0RFQlVHKCJ0ZXg9JWR4JWQgYmxpdD0lZFxuIiwgdGV4X3dpZHRoLCB0ZXgtPmhlaWdodCwgYmxpdF93aWR0aCk7Ci0KLQlkbyB7Ci0JCURSTV9ERUJVRygidGV4OiBvZnM9MHgleCBwPSVkIGY9JWQgeD0laGQgeT0laGQgdz0laGQgaD0laGRcbiIsCi0JCQkgIHRleC0+b2Zmc2V0ID4+IDEwLCB0ZXgtPnBpdGNoLCB0ZXgtPmZvcm1hdCwKLQkJCSAgaW1hZ2UtPngsIGltYWdlLT55LCBpbWFnZS0+d2lkdGgsIGltYWdlLT5oZWlnaHQpOwotCi0JCS8qIE1ha2UgYSBjb3B5IG9mIHNvbWUgcGFyYW1ldGVycyBpbiBjYXNlIHdlIGhhdmUgdG8KLQkJICogdXBkYXRlIHRoZW0gZm9yIGEgbXVsdGktcGFzcyB0ZXh0dXJlIGJsaXQuCi0JCSAqLwotCQloZWlnaHQgPSBpbWFnZS0+aGVpZ2h0OwotCQlkYXRhID0gKGNvbnN0IHU4IF9fdXNlciAqKWltYWdlLT5kYXRhOwotCi0JCXNpemUgPSBoZWlnaHQgKiBibGl0X3dpZHRoOwotCi0JCWlmIChzaXplID4gUkFERU9OX01BWF9URVhUVVJFX1NJWkUpIHsKLQkJCWhlaWdodCA9IFJBREVPTl9NQVhfVEVYVFVSRV9TSVpFIC8gYmxpdF93aWR0aDsKLQkJCXNpemUgPSBoZWlnaHQgKiBibGl0X3dpZHRoOwotCQl9IGVsc2UgaWYgKHNpemUgPCA0ICYmIHNpemUgPiAwKSB7Ci0JCQlzaXplID0gNDsKLQkJfSBlbHNlIGlmIChzaXplID09IDApIHsKLQkJCXJldHVybiAwOwotCQl9Ci0KLQkJYnVmID0gcmFkZW9uX2ZyZWVsaXN0X2dldChkZXYpOwotCQlpZiAoMCAmJiAhYnVmKSB7Ci0JCQlyYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7Ci0JCQlidWYgPSByYWRlb25fZnJlZWxpc3RfZ2V0KGRldik7Ci0JCX0KLQkJaWYgKCFidWYpIHsKLQkJCURSTV9ERUJVRygiRUFHQUlOXG4iKTsKLQkJCWlmIChEUk1fQ09QWV9UT19VU0VSKHRleC0+aW1hZ2UsIGltYWdlLCBzaXplb2YoKmltYWdlKSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCQlyZXR1cm4gLUVBR0FJTjsKLQkJfQotCi0JCS8qIERpc3BhdGNoIHRoZSBpbmRpcmVjdCBidWZmZXIuCi0JCSAqLwotCQlidWZmZXIgPQotCQkgICAgKHUzMiAqKSAoKGNoYXIgKilkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUgKyBidWYtPm9mZnNldCk7Ci0JCWR3b3JkcyA9IHNpemUgLyA0OwotCi0jZGVmaW5lIFJBREVPTl9DT1BZX01UKF9idWYsIF9kYXRhLCBfd2lkdGgpIFwKLQlkbyB7IFwKLQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihfYnVmLCBfZGF0YSwgKF93aWR0aCkpKSB7XAotCQkJRFJNX0VSUk9SKCJFRkFVTFQgb24gcGFkLCAlZCBieXRlc1xuIiwgKF93aWR0aCkpOyBcCi0JCQlyZXR1cm4gLUVGQVVMVDsgXAotCQl9IFwKLQl9IHdoaWxlKDApCi0KLQkJaWYgKG1pY3JvdGlsZSkgewotCQkJLyogdGV4dHVyZSBtaWNybyB0aWxpbmcgaW4gdXNlLCBtaW5pbXVtIHRleHR1cmUgd2lkdGggaXMgdGh1cyAxNiBieXRlcy4KLQkJCSAgIGhvd2V2ZXIsIHdlIGNhbm5vdCB1c2UgYmxpdHRlciBkaXJlY3RseSBmb3IgdGV4dHVyZSB3aWR0aCA8IDY0IGJ5dGVzLAotCQkJICAgc2luY2UgbWluaW11bSB0ZXggcGl0Y2ggaXMgNjQgYnl0ZXMgYW5kIHdlIG5lZWQgdGhpcyB0byBtYXRjaAotCQkJICAgdGhlIHRleHR1cmUgd2lkdGgsIG90aGVyd2lzZSB0aGUgYmxpdHRlciB3aWxsIHRpbGUgaXQgd3JvbmcuCi0JCQkgICBUaHVzLCB0aWxpbmcgbWFudWFsbHkgaW4gdGhpcyBjYXNlLiBBZGRpdGlvbmFsbHksIG5lZWQgdG8gc3BlY2lhbAotCQkJICAgY2FzZSB0ZXggaGVpZ2h0ID0gMSwgc2luY2Ugb3VyIGFjdHVhbCBpbWFnZSB3aWxsIGhhdmUgaGVpZ2h0IDIKLQkJCSAgIGFuZCB3ZSBuZWVkIHRvIGVuc3VyZSB3ZSBkb24ndCByZWFkIGJleW9uZCB0aGUgdGV4dHVyZSBzaXplCi0JCQkgICBmcm9tIHVzZXIgc3BhY2UuICovCi0JCQlpZiAodGV4LT5oZWlnaHQgPT0gMSkgewotCQkJCWlmICh0ZXhfd2lkdGggPj0gNjQgfHwgdGV4X3dpZHRoIDw9IDE2KSB7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwKLQkJCQkJCShpbnQpKHRleF93aWR0aCAqIHNpemVvZih1MzIpKSk7Ci0JCQkJfSBlbHNlIGlmICh0ZXhfd2lkdGggPT0gMzIpIHsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCAxNik7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciArIDgsCi0JCQkJCQkgICAgICAgZGF0YSArIDE2LCAxNik7Ci0JCQkJfQotCQkJfSBlbHNlIGlmICh0ZXhfd2lkdGggPj0gNjQgfHwgdGV4X3dpZHRoID09IDE2KSB7Ci0JCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLAotCQkJCQkgICAgICAgKGludCkoZHdvcmRzICogc2l6ZW9mKHUzMikpKTsKLQkJCX0gZWxzZSBpZiAodGV4X3dpZHRoIDwgMTYpIHsKLQkJCQlmb3IgKGkgPSAwOyBpIDwgdGV4LT5oZWlnaHQ7IGkrKykgewotCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsIHRleF93aWR0aCk7Ci0JCQkJCWJ1ZmZlciArPSA0OwotCQkJCQlkYXRhICs9IHRleF93aWR0aDsKLQkJCQl9Ci0JCQl9IGVsc2UgaWYgKHRleF93aWR0aCA9PSAzMikgewotCQkJCS8qIFRPRE86IG1ha2Ugc3VyZSB0aGlzIHdvcmtzIHdoZW4gbm90IGZpdHRpbmcgaW4gb25lIGJ1ZmZlcgotCQkJCSAgIChpLmUuIDMyYnl0ZXMgeCAyMDQ4Li4uKSAqLwotCQkJCWZvciAoaSA9IDA7IGkgPCB0ZXgtPmhlaWdodDsgaSArPSAyKSB7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwgMTYpOwotCQkJCQlkYXRhICs9IDE2OwotCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyA4LCBkYXRhLCAxNik7Ci0JCQkJCWRhdGEgKz0gMTY7Ci0JCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciArIDQsIGRhdGEsIDE2KTsKLQkJCQkJZGF0YSArPSAxNjsKLQkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyICsgMTIsIGRhdGEsIDE2KTsKLQkJCQkJZGF0YSArPSAxNjsKLQkJCQkJYnVmZmVyICs9IDE2OwotCQkJCX0KLQkJCX0KLQkJfSBlbHNlIHsKLQkJCWlmICh0ZXhfd2lkdGggPj0gMzIpIHsKLQkJCQkvKiBUZXh0dXJlIGltYWdlIHdpZHRoIGlzIGxhcmdlciB0aGFuIHRoZSBtaW5pbXVtLCBzbyB3ZQotCQkJCSAqIGNhbiB1cGxvYWQgaXQgZGlyZWN0bHkuCi0JCQkJICovCi0JCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLAotCQkJCQkgICAgICAgKGludCkoZHdvcmRzICogc2l6ZW9mKHUzMikpKTsKLQkJCX0gZWxzZSB7Ci0JCQkJLyogVGV4dHVyZSBpbWFnZSB3aWR0aCBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0sIHNvIHdlCi0JCQkJICogbmVlZCB0byBwYWQgb3V0IGVhY2ggaW1hZ2Ugc2NhbmxpbmUgdG8gdGhlIG1pbmltdW0KLQkJCQkgKiB3aWR0aC4KLQkJCQkgKi8KLQkJCQlmb3IgKGkgPSAwOyBpIDwgdGV4LT5oZWlnaHQ7IGkrKykgewotCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsIHRleF93aWR0aCk7Ci0JCQkJCWJ1ZmZlciArPSA4OwotCQkJCQlkYXRhICs9IHRleF93aWR0aDsKLQkJCQl9Ci0JCQl9Ci0JCX0KLQotI3VuZGVmIFJBREVPTl9DT1BZX01UCi0JCWJ1Zi0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OwotCQlidWYtPnVzZWQgPSBzaXplOwotCQlvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIGJ1Zi0+b2Zmc2V0OwotCQlCRUdJTl9SSU5HKDkpOwotCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSSwgNSkpOwotCQlPVVRfUklORyhSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCB8Ci0JCQkgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAotCQkJIFJBREVPTl9HTUNfQlJVU0hfTk9ORSB8Ci0JCQkgKGZvcm1hdCA8PCA4KSB8Ci0JCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAotCQkJIFJBREVPTl9ST1AzX1MgfAotCQkJIFJBREVPTl9EUF9TUkNfU09VUkNFX01FTU9SWSB8Ci0JCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTIHwgUkFERU9OX0dNQ19XUl9NU0tfRElTKTsKLQkJT1VUX1JJTkcoKHNwaXRjaCA8PCAyMikgfCAob2Zmc2V0ID4+IDEwKSk7Ci0JCU9VVF9SSU5HKCh0ZXhwaXRjaCA8PCAyMikgfCAodGV4LT5vZmZzZXQgPj4gMTApKTsKLQkJT1VUX1JJTkcoMCk7Ci0JCU9VVF9SSU5HKChpbWFnZS0+eCA8PCAxNikgfCBpbWFnZS0+eSk7Ci0JCU9VVF9SSU5HKChpbWFnZS0+d2lkdGggPDwgMTYpIHwgaGVpZ2h0KTsKLQkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQkJQ09NTUlUX1JJTkcoKTsKLQotCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCi0JCS8qIFVwZGF0ZSB0aGUgaW5wdXQgcGFyYW1ldGVycyBmb3IgbmV4dCB0aW1lICovCi0JCWltYWdlLT55ICs9IGhlaWdodDsKLQkJaW1hZ2UtPmhlaWdodCAtPSBoZWlnaHQ7Ci0JCWltYWdlLT5kYXRhID0gKGNvbnN0IHU4IF9fdXNlciAqKWltYWdlLT5kYXRhICsgc2l6ZTsKLQl9IHdoaWxlIChpbWFnZS0+aGVpZ2h0ID4gMCk7Ci0KLQkvKiBGbHVzaCB0aGUgcGl4ZWwgY2FjaGUgYWZ0ZXIgdGhlIGJsaXQgY29tcGxldGVzLiAgVGhpcyBlbnN1cmVzCi0JICogdGhlIHRleHR1cmUgZGF0YSBpcyB3cml0dGVuIG91dCB0byBtZW1vcnkgYmVmb3JlIHJlbmRlcmluZwotCSAqIGNvbnRpbnVlcy4KLQkgKi8KLQlCRUdJTl9SSU5HKDQpOwotCVJBREVPTl9GTFVTSF9DQUNIRSgpOwotCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKLQlBRFZBTkNFX1JJTkcoKTsKLQlDT01NSVRfUklORygpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCB1MzIgKiBzdGlwcGxlKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JaW50IGk7Ci0JUklOR19MT0NBTFM7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JQkVHSU5fUklORygzNSk7Ci0KLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9TVElQUExFX0FERFIsIDApKTsKLQlPVVRfUklORygweDAwMDAwMDAwKTsKLQotCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1JFX1NUSVBQTEVfREFUQSwgMzEpKTsKLQlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgewotCQlPVVRfUklORyhzdGlwcGxlW2ldKTsKLQl9Ci0KLQlBRFZBTkNFX1JJTkcoKTsKLX0KLQotc3RhdGljIHZvaWQgcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhpbnQgc3VyZl9pbmRleCwKLQkJCQkgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCi17Ci0JaWYgKCFkZXZfcHJpdi0+bW1pbykKLQkJcmV0dXJuOwotCi0JcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOwotCi0JUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBzdXJmX2luZGV4LAotCQkgICAgIGRldl9wcml2LT5zdXJmYWNlc1tzdXJmX2luZGV4XS5mbGFncyk7Ci0JUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9MT1dFUl9CT1VORCArIDE2ICogc3VyZl9pbmRleCwKLQkJICAgICBkZXZfcHJpdi0+c3VyZmFjZXNbc3VyZl9pbmRleF0ubG93ZXIpOwotCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKyAxNiAqIHN1cmZfaW5kZXgsCi0JCSAgICAgZGV2X3ByaXYtPnN1cmZhY2VzW3N1cmZfaW5kZXhdLnVwcGVyKTsKLX0KLQotLyogQWxsb2NhdGVzIGEgdmlydHVhbCBzdXJmYWNlCi0gKiBkb2Vzbid0IGFsd2F5cyBhbGxvY2F0ZSBhIHJlYWwgc3VyZmFjZSwgd2lsbCBzdHJldGNoIGFuIGV4aXN0aW5nCi0gKiBzdXJmYWNlIHdoZW4gcG9zc2libGUuCi0gKgotICogTm90ZSB0aGF0IHJlZmNvdW50IGNhbiBiZSBhdCBtb3N0IDIsIHNpbmNlIGR1cmluZyBhIGZyZWUgcmVmY291bnQ9MwotICogbWlnaHQgbWVhbiB3ZSBoYXZlIHRvIGFsbG9jYXRlIGEgbmV3IHN1cmZhY2Ugd2hpY2ggbWlnaHQgbm90IGFsd2F5cwotICogYmUgYXZhaWxhYmxlLgotICogRm9yIGV4YW1wbGUgOiB3ZSBhbGxvY2F0ZSB0aHJlZSBjb250aWdvdXMgc3VyZmFjZXMgQUJDLiBJZiBCIGlzCi0gKiBmcmVlZCwgd2Ugc3VkZGVubHkgbmVlZCB0d28gc3VyZmFjZXMgdG8gc3RvcmUgQSBhbmQgQywgd2hpY2ggbWlnaHQKLSAqIG5vdCBhbHdheXMgYmUgYXZhaWxhYmxlLgotICovCi1zdGF0aWMgaW50IGFsbG9jX3N1cmZhY2UoZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QgKm5ldywKLQkJCSBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0Jc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgKnM7Ci0JaW50IGk7Ci0JaW50IHZpcnRfc3VyZmFjZV9pbmRleDsKLQl1aW50MzJfdCBuZXdfdXBwZXIsIG5ld19sb3dlcjsKLQotCW5ld19sb3dlciA9IG5ldy0+YWRkcmVzczsKLQluZXdfdXBwZXIgPSBuZXdfbG93ZXIgKyBuZXctPnNpemUgLSAxOwotCi0JLyogc2FuaXR5IGNoZWNrICovCi0JaWYgKChuZXdfbG93ZXIgPj0gbmV3X3VwcGVyKSB8fCAobmV3LT5mbGFncyA9PSAwKSB8fCAobmV3LT5zaXplID09IDApIHx8Ci0JICAgICgobmV3X3VwcGVyICYgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKSAhPQotCSAgICAgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKQotCSAgICB8fCAoKG5ld19sb3dlciAmIFJBREVPTl9TVVJGX0FERFJFU1NfRklYRURfTUFTSykgIT0gMCkpCi0JCXJldHVybiAtMTsKLQotCS8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBvdmVybGFwIHdpdGggZXhpc3Rpbmcgc3VyZmFjZXMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7Ci0JCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ICE9IDApICYmCi0JCSAgICAoKChuZXdfbG93ZXIgPj0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSAmJgotCQkgICAgICAobmV3X2xvd2VyIDwgZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyKSkgfHwKLQkJICAgICAoKG5ld19sb3dlciA8IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikgJiYKLQkJICAgICAgKG5ld191cHBlciA+IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikpKSkgewotCQkJcmV0dXJuIC0xOwotCQl9Ci0JfQotCi0JLyogZmluZCBhIHZpcnR1YWwgc3VyZmFjZSAqLwotCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKQotCQlpZiAoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbaV0uZmlsZV9wcml2ID09IDApCi0JCQlicmVhazsKLQlpZiAoaSA9PSAyICogUkFERU9OX01BWF9TVVJGQUNFUykgewotCQlyZXR1cm4gLTE7Ci0JfQotCXZpcnRfc3VyZmFjZV9pbmRleCA9IGk7Ci0KLQkvKiB0cnkgdG8gcmV1c2UgYW4gZXhpc3Rpbmcgc3VyZmFjZSAqLwotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKLQkJLyogZXh0ZW5kIGJlZm9yZSAqLwotCQlpZiAoKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAxKSAmJgotCQkgICAgKG5ldy0+ZmxhZ3MgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzKSAmJgotCQkgICAgKG5ld191cHBlciArIDEgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSkgewotCQkJcyA9ICYoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbdmlydF9zdXJmYWNlX2luZGV4XSk7Ci0JCQlzLT5zdXJmYWNlX2luZGV4ID0gaTsKLQkJCXMtPmxvd2VyID0gbmV3X2xvd2VyOwotCQkJcy0+dXBwZXIgPSBuZXdfdXBwZXI7Ci0JCQlzLT5mbGFncyA9IG5ldy0+ZmxhZ3M7Ci0JCQlzLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7Ci0JCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ucmVmY291bnQrKzsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlciA9IHMtPmxvd2VyOwotCQkJcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhzLT5zdXJmYWNlX2luZGV4LCBkZXZfcHJpdik7Ci0JCQlyZXR1cm4gdmlydF9zdXJmYWNlX2luZGV4OwotCQl9Ci0KLQkJLyogZXh0ZW5kIGFmdGVyICovCi0JCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID09IDEpICYmCi0JCSAgICAobmV3LT5mbGFncyA9PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0uZmxhZ3MpICYmCi0JCSAgICAobmV3X2xvd2VyID09IGRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciArIDEpKSB7Ci0JCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKLQkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOwotCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7Ci0JCQlzLT51cHBlciA9IG5ld191cHBlcjsKLQkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKLQkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCsrOwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyID0gcy0+dXBwZXI7Ci0JCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKLQkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7Ci0JCX0KLQl9Ci0KLQkvKiBva2F5LCB3ZSBuZWVkIGEgbmV3IG9uZSAqLwotCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKLQkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAwKSB7Ci0JCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKLQkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOwotCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7Ci0JCQlzLT51cHBlciA9IG5ld191cHBlcjsKLQkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKLQkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9IDE7Ci0JCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ubG93ZXIgPSBzLT5sb3dlcjsKLQkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciA9IHMtPnVwcGVyOwotCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzID0gcy0+ZmxhZ3M7Ci0JCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKLQkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7Ci0JCX0KLQl9Ci0KLQkvKiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZyAqLwotCXJldHVybiAtMTsKLX0KLQotc3RhdGljIGludCBmcmVlX3N1cmZhY2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCi0JCQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAotCQkJaW50IGxvd2VyKQotewotCXN0cnVjdCByYWRlb25fdmlydF9zdXJmYWNlICpzOwotCWludCBpOwotCS8qIGZpbmQgdGhlIHZpcnR1YWwgc3VyZmFjZSAqLwotCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7Ci0JCXMgPSAmKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW2ldKTsKLQkJaWYgKHMtPmZpbGVfcHJpdikgewotCQkJaWYgKChsb3dlciA9PSBzLT5sb3dlcikgJiYgKGZpbGVfcHJpdiA9PSBzLT5maWxlX3ByaXYpKQotCQkJewotCQkJCWlmIChkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCi0JCQkJICAgIGxvd2VyID09IHMtPmxvd2VyKQotCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCi0JCQkJCSAgICBsb3dlciA9IHMtPnVwcGVyOwotCi0JCQkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KLQkJCQkgICAgdXBwZXIgPT0gcy0+dXBwZXIpCi0JCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KLQkJCQkJICAgIHVwcGVyID0gcy0+bG93ZXI7Ci0KLQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0ucmVmY291bnQtLTsKLQkJCQlpZiAoZGV2X3ByaXYtPnN1cmZhY2VzW3MtPnN1cmZhY2VfaW5kZXhdLgotCQkJCSAgICByZWZjb3VudCA9PSAwKQotCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCi0JCQkJCSAgICBmbGFncyA9IDA7Ci0JCQkJcy0+ZmlsZV9wcml2ID0gTlVMTDsKLQkJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsCi0JCQkJCQkJICBkZXZfcHJpdik7Ci0JCQkJcmV0dXJuIDA7Ci0JCQl9Ci0JCX0KLQl9Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyB2b2lkIHJhZGVvbl9zdXJmYWNlc19yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJCSAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQotewotCWludCBpOwotCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7Ci0JCWlmIChkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5maWxlX3ByaXYgPT0gZmlsZV9wcml2KQotCQkJZnJlZV9zdXJmYWNlKGZpbGVfcHJpdiwgZGV2X3ByaXYsCi0JCQkJICAgICBkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5sb3dlcik7Ci0JfQotfQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gKiBJT0NUTCBmdW5jdGlvbnMKLSAqLwotc3RhdGljIGludCByYWRlb25fc3VyZmFjZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190ICphbGxvYyA9IGRhdGE7Ci0KLQlpZiAoYWxsb2Nfc3VyZmFjZShhbGxvYywgZGV2X3ByaXYsIGZpbGVfcHJpdikgPT0gLTEpCi0JCXJldHVybiAtRUlOVkFMOwotCWVsc2UKLQkJcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX3N1cmZhY2VfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3QgKm1lbWZyZWUgPSBkYXRhOwotCi0JaWYgKGZyZWVfc3VyZmFjZShmaWxlX3ByaXYsIGRldl9wcml2LCBtZW1mcmVlLT5hZGRyZXNzKSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JZWxzZQotCQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfY2xlYXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlkcm1fcmFkZW9uX2NsZWFyX3QgKmNsZWFyID0gZGF0YTsKLQlkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdCBkZXB0aF9ib3hlc1tSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTXTsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKLQkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7Ci0KLQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZkZXB0aF9ib3hlcywgY2xlYXItPmRlcHRoX2JveGVzLAotCQkJICAgICAgIHNhcmVhX3ByaXYtPm5ib3ggKiBzaXplb2YoZGVwdGhfYm94ZXNbMF0pKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlyYWRlb25fY3BfZGlzcGF0Y2hfY2xlYXIoZGV2LCBjbGVhciwgZGVwdGhfYm94ZXMpOwotCi0JQ09NTUlUX1JJTkcoKTsKLQlyZXR1cm4gMDsKLX0KLQotLyogTm90IHN1cmUgd2h5IHRoaXMgaXNuJ3Qgc2V0IGFsbCB0aGUgdGltZToKLSAqLwotc3RhdGljIGludCByYWRlb25fZG9faW5pdF9wYWdlZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCVJJTkdfTE9DQUxTOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JQkVHSU5fUklORyg2KTsKLQlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fQ1JUQ19PRkZTRVRfQ05UTCwgMCkpOwotCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDX09GRlNFVF9DTlRMKSB8Ci0JCSBSQURFT05fQ1JUQ19PRkZTRVRfRkxJUF9DTlRMKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCwgMCkpOwotCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCkgfAotCQkgUkFERU9OX0NSVENfT0ZGU0VUX0ZMSVBfQ05UTCk7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQlkZXZfcHJpdi0+cGFnZV9mbGlwcGluZyA9IDE7Ci0KLQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgIT0gMSkKLQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPSAwOwotCi0JcmV0dXJuIDA7Ci19Ci0KLS8qIFN3YXBwaW5nIGFuZCBmbGlwcGluZyBhcmUgZGlmZmVyZW50IG9wZXJhdGlvbnMsIG5lZWQgZGlmZmVyZW50IGlvY3Rscy4KLSAqIFRoZXkgY2FuICYgc2hvdWxkIGJlIGludGVybWl4ZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSAzZCB3aW5kb3dzLgotICovCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JRFJNX0RFQlVHKCJcbiIpOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0KLQlpZiAoIWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nKQotCQlyYWRlb25fZG9faW5pdF9wYWdlZmxpcChkZXYpOwotCi0JcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoZGV2KTsKLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKLQkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7Ci0KLQlyYWRlb25fY3BfZGlzcGF0Y2hfc3dhcChkZXYpOwotCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOwotCi0JQ09NTUlUX1JJTkcoKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfdmVydGV4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWRybV9yYWRlb25fdmVydGV4X3QgKnZlcnRleCA9IGRhdGE7Ci0JZHJtX3JhZGVvbl90Y2xfcHJpbV90IHByaW07Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgY291bnQ9JWQgZGlzY2FyZD0lZFxuIiwKLQkJICBEUk1fQ1VSUkVOVFBJRCwgdmVydGV4LT5pZHgsIHZlcnRleC0+Y291bnQsIHZlcnRleC0+ZGlzY2FyZCk7Ci0KLQlpZiAodmVydGV4LT5pZHggPCAwIHx8IHZlcnRleC0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAotCQkJICB2ZXJ0ZXgtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWlmICh2ZXJ0ZXgtPnByaW0gPCAwIHx8IHZlcnRleC0+cHJpbSA+IFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QpIHsKLQkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgdmVydGV4LT5wcmltKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQlWQl9BR0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0KLQlidWYgPSBkbWEtPmJ1Zmxpc3RbdmVydGV4LT5pZHhdOwotCi0JaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgewotCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAotCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKGJ1Zi0+cGVuZGluZykgewotCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgotCSAqLwotCWlmICh2ZXJ0ZXgtPmNvdW50KSB7Ci0JCWJ1Zi0+dXNlZCA9IHZlcnRleC0+Y291bnQ7CS8qIG5vdCB1c2VkPyAqLwotCi0JCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgewotCQkJaWYgKHJhZGVvbl9lbWl0X3N0YXRlKGRldl9wcml2LCBmaWxlX3ByaXYsCi0JCQkJCSAgICAgICZzYXJlYV9wcml2LT5jb250ZXh0X3N0YXRlLAotCQkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCi0JCQkJCSAgICAgIHNhcmVhX3ByaXYtPmRpcnR5KSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUgZmFpbGVkXG4iKTsKLQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KLQotCQkJc2FyZWFfcHJpdi0+ZGlydHkgJj0gfihSQURFT05fVVBMT0FEX1RFWDBJTUFHRVMgfAotCQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKLQkJCQkJICAgICAgIFJBREVPTl9VUExPQURfVEVYMklNQUdFUyB8Ci0JCQkJCSAgICAgICBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFKTsKLQkJfQotCi0JCXByaW0uc3RhcnQgPSAwOwotCQlwcmltLmZpbmlzaCA9IHZlcnRleC0+Y291bnQ7CS8qIHVudXNlZCAqLwotCQlwcmltLnByaW0gPSB2ZXJ0ZXgtPnByaW07Ci0JCXByaW0ubnVtdmVydHMgPSB2ZXJ0ZXgtPmNvdW50OwotCQlwcmltLnZjX2Zvcm1hdCA9IGRldl9wcml2LT5zYXJlYV9wcml2LT52Y19mb3JtYXQ7Ci0KLQkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnByaW0pOwotCX0KLQotCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKLQkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKLQl9Ci0KLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9pbmRpY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWRybV9yYWRlb25faW5kaWNlc190ICplbHRzID0gZGF0YTsKLQlkcm1fcmFkZW9uX3RjbF9wcmltX3QgcHJpbTsKLQlpbnQgY291bnQ7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgc3RhcnQ9JWQgZW5kPSVkIGRpc2NhcmQ9JWRcbiIsCi0JCSAgRFJNX0NVUlJFTlRQSUQsIGVsdHMtPmlkeCwgZWx0cy0+c3RhcnQsIGVsdHMtPmVuZCwKLQkJICBlbHRzLT5kaXNjYXJkKTsKLQotCWlmIChlbHRzLT5pZHggPCAwIHx8IGVsdHMtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgewotCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKLQkJCSAgZWx0cy0+aWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKGVsdHMtPnByaW0gPCAwIHx8IGVsdHMtPnByaW0gPiBSQURFT05fUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUKSB7Ci0JCURSTV9FUlJPUigiYnVmZmVyIHByaW0gJWRcbiIsIGVsdHMtPnByaW0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWJ1ZiA9IGRtYS0+YnVmbGlzdFtlbHRzLT5pZHhdOwotCi0JaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgewotCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAotCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKGJ1Zi0+cGVuZGluZykgewotCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGVsdHMtPmlkeCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWNvdW50ID0gKGVsdHMtPmVuZCAtIGVsdHMtPnN0YXJ0KSAvIHNpemVvZih1MTYpOwotCWVsdHMtPnN0YXJ0IC09IFJBREVPTl9JTkRFWF9QUklNX09GRlNFVDsKLQotCWlmIChlbHRzLT5zdGFydCAmIDB4NykgewotCQlEUk1fRVJST1IoIm1pc2FsaWduZWQgYnVmZmVyIDB4JXhcbiIsIGVsdHMtPnN0YXJ0KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWlmIChlbHRzLT5zdGFydCA8IGJ1Zi0+dXNlZCkgewotCQlEUk1fRVJST1IoIm5vIGhlYWRlciAweCV4IC0gMHgleFxuIiwgZWx0cy0+c3RhcnQsIGJ1Zi0+dXNlZCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWJ1Zi0+dXNlZCA9IGVsdHMtPmVuZDsKLQotCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgewotCQlpZiAocmFkZW9uX2VtaXRfc3RhdGUoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkgICAgICAmc2FyZWFfcHJpdi0+Y29udGV4dF9zdGF0ZSwKLQkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCi0JCQkJICAgICAgc2FyZWFfcHJpdi0+ZGlydHkpKSB7Ci0JCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3N0YXRlIGZhaWxlZFxuIik7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCi0JCXNhcmVhX3ByaXYtPmRpcnR5ICY9IH4oUkFERU9OX1VQTE9BRF9URVgwSU1BR0VTIHwKLQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKLQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTIHwKLQkJCQkgICAgICAgUkFERU9OX1JFUVVJUkVfUVVJRVNDRU5DRSk7Ci0JfQotCi0JLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgotCSAqLwotCXByaW0uc3RhcnQgPSBlbHRzLT5zdGFydDsKLQlwcmltLmZpbmlzaCA9IGVsdHMtPmVuZDsKLQlwcmltLnByaW0gPSBlbHRzLT5wcmltOwotCXByaW0ub2Zmc2V0ID0gMDsJLyogb2Zmc2V0IGZyb20gc3RhcnQgb2YgZG1hIGJ1ZmZlcnMgKi8KLQlwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCi0JcHJpbS52Y19mb3JtYXQgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+dmNfZm9ybWF0OwotCi0JcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGljZXMoZGV2LCBidWYsICZwcmltKTsKLQlpZiAoZWx0cy0+ZGlzY2FyZCkgewotCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCX0KLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX3RleHR1cmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlkcm1fcmFkZW9uX3RleHR1cmVfdCAqdGV4ID0gZGF0YTsKLQlkcm1fcmFkZW9uX3RleF9pbWFnZV90IGltYWdlOwotCWludCByZXQ7Ci0KLQlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOwotCi0JaWYgKHRleC0+aW1hZ2UgPT0gTlVMTCkgewotCQlEUk1fRVJST1IoIm51bGwgdGV4dHVyZSBpbWFnZSFcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZpbWFnZSwKLQkJCSAgICAgICAoZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCBfX3VzZXIgKikgdGV4LT5pbWFnZSwKLQkJCSAgICAgICBzaXplb2YoaW1hZ2UpKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCXJldCA9IHJhZGVvbl9jcF9kaXNwYXRjaF90ZXh0dXJlKGRldiwgZmlsZV9wcml2LCB0ZXgsICZpbWFnZSk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zdGlwcGxlX3QgKnN0aXBwbGUgPSBkYXRhOwotCXUzMiBtYXNrWzMyXTsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZtYXNrLCBzdGlwcGxlLT5tYXNrLCAzMiAqIHNpemVvZih1MzIpKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JcmFkZW9uX2NwX2Rpc3BhdGNoX3N0aXBwbGUoZGV2LCBtYXNrKTsKLQotCUNPTU1JVF9SSU5HKCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2NwX2luZGlyZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWRybV9yYWRlb25faW5kaXJlY3RfdCAqaW5kaXJlY3QgPSBkYXRhOwotCVJJTkdfTE9DQUxTOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCURSTV9ERUJVRygiaWR4PSVkIHM9JWQgZT0lZCBkPSVkXG4iLAotCQkgIGluZGlyZWN0LT5pZHgsIGluZGlyZWN0LT5zdGFydCwgaW5kaXJlY3QtPmVuZCwKLQkJICBpbmRpcmVjdC0+ZGlzY2FyZCk7Ci0KLQlpZiAoaW5kaXJlY3QtPmlkeCA8IDAgfHwgaW5kaXJlY3QtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgewotCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKLQkJCSAgaW5kaXJlY3QtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JYnVmID0gZG1hLT5idWZsaXN0W2luZGlyZWN0LT5pZHhdOwotCi0JaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgewotCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAotCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0JaWYgKGJ1Zi0+cGVuZGluZykgewotCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGluZGlyZWN0LT5pZHgpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAoaW5kaXJlY3QtPnN0YXJ0IDwgYnVmLT51c2VkKSB7Ci0JCURSTV9FUlJPUigicmV1c2luZyBpbmRpcmVjdDogc3RhcnQ9MHgleCBhY3R1YWw9MHgleFxuIiwKLQkJCSAgaW5kaXJlY3QtPnN0YXJ0LCBidWYtPnVzZWQpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWJ1Zi0+dXNlZCA9IGluZGlyZWN0LT5lbmQ7Ci0KLQkvKiBXYWl0IGZvciB0aGUgM0Qgc3RyZWFtIHRvIGlkbGUgYmVmb3JlIHRoZSBpbmRpcmVjdCBidWZmZXIKLQkgKiBjb250YWluaW5nIDJEIGFjY2VsZXJhdGlvbiBjb21tYW5kcyBpcyBwcm9jZXNzZWQuCi0JICovCi0JQkVHSU5fUklORygyKTsKLQotCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKLQotCUFEVkFOQ0VfUklORygpOwotCi0JLyogRGlzcGF0Y2ggdGhlIGluZGlyZWN0IGJ1ZmZlciBmdWxsIG9mIGNvbW1hbmRzIGZyb20gdGhlCi0JICogWCBzZXJ2ZXIuICBUaGlzIGlzIGluc2VjdXJlIGFuZCBpcyB0aHVzIG9ubHkgYXZhaWxhYmxlIHRvCi0JICogcHJpdmlsZWdlZCBjbGllbnRzLgotCSAqLwotCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChkZXYsIGJ1ZiwgaW5kaXJlY3QtPnN0YXJ0LCBpbmRpcmVjdC0+ZW5kKTsKLQlpZiAoaW5kaXJlY3QtPmRpc2NhcmQpIHsKLQkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKLQl9Ci0KLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF92ZXJ0ZXgyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOwotCWRybV9yYWRlb25fdmVydGV4Ml90ICp2ZXJ0ZXggPSBkYXRhOwotCWludCBpOwotCXVuc2lnbmVkIGNoYXIgbGFzdHN0YXRlOwotCi0JTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKLQotCURSTV9ERUJVRygicGlkPSVkIGluZGV4PSVkIGRpc2NhcmQ9JWRcbiIsCi0JCSAgRFJNX0NVUlJFTlRQSUQsIHZlcnRleC0+aWR4LCB2ZXJ0ZXgtPmRpc2NhcmQpOwotCi0JaWYgKHZlcnRleC0+aWR4IDwgMCB8fCB2ZXJ0ZXgtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgewotCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKLQkJCSAgdmVydGV4LT5pZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7Ci0JVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCi0JYnVmID0gZG1hLT5idWZsaXN0W3ZlcnRleC0+aWR4XTsKLQotCWlmIChidWYtPmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYpIHsKLQkJRFJNX0VSUk9SKCJwcm9jZXNzICVkIHVzaW5nIGJ1ZmZlciBvd25lZCBieSAlcFxuIiwKLQkJCSAgRFJNX0NVUlJFTlRQSUQsIGJ1Zi0+ZmlsZV9wcml2KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKGJ1Zi0+cGVuZGluZykgewotCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKHNhcmVhX3ByaXYtPm5ib3ggPiBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWZvciAobGFzdHN0YXRlID0gMHhmZiwgaSA9IDA7IGkgPCB2ZXJ0ZXgtPm5yX3ByaW1zOyBpKyspIHsKLQkJZHJtX3JhZGVvbl9wcmltX3QgcHJpbTsKLQkJZHJtX3JhZGVvbl90Y2xfcHJpbV90IHRjbHByaW07Ci0KLQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUigmcHJpbSwgJnZlcnRleC0+cHJpbVtpXSwgc2l6ZW9mKHByaW0pKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCi0JCWlmIChwcmltLnN0YXRlaWR4ICE9IGxhc3RzdGF0ZSkgewotCQkJZHJtX3JhZGVvbl9zdGF0ZV90IHN0YXRlOwotCi0JCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZzdGF0ZSwKLQkJCQkJICAgICAgICZ2ZXJ0ZXgtPnN0YXRlW3ByaW0uc3RhdGVpZHhdLAotCQkJCQkgICAgICAgc2l6ZW9mKHN0YXRlKSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkJCWlmIChyYWRlb25fZW1pdF9zdGF0ZTIoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJnN0YXRlKSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUyIGZhaWxlZFxuIik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0KLQkJCWxhc3RzdGF0ZSA9IHByaW0uc3RhdGVpZHg7Ci0JCX0KLQotCQl0Y2xwcmltLnN0YXJ0ID0gcHJpbS5zdGFydDsKLQkJdGNscHJpbS5maW5pc2ggPSBwcmltLmZpbmlzaDsKLQkJdGNscHJpbS5wcmltID0gcHJpbS5wcmltOwotCQl0Y2xwcmltLnZjX2Zvcm1hdCA9IHByaW0udmNfZm9ybWF0OwotCi0JCWlmIChwcmltLnByaW0gJiBSQURFT05fUFJJTV9XQUxLX0lORCkgewotCQkJdGNscHJpbS5vZmZzZXQgPSBwcmltLm51bXZlcnRzICogNjQ7Ci0JCQl0Y2xwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCi0KLQkJCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpY2VzKGRldiwgYnVmLCAmdGNscHJpbSk7Ci0JCX0gZWxzZSB7Ci0JCQl0Y2xwcmltLm51bXZlcnRzID0gcHJpbS5udW12ZXJ0czsKLQkJCXRjbHByaW0ub2Zmc2V0ID0gMDsJLyogbm90IHVzZWQgKi8KLQotCQkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnRjbHByaW0pOwotCQl9Ci0KLQkJaWYgKHNhcmVhX3ByaXYtPm5ib3ggPT0gMSkKLQkJCXNhcmVhX3ByaXYtPm5ib3ggPSAwOwotCX0KLQotCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKLQkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKLQl9Ci0KLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9lbWl0X3BhY2tldHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKLQkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCSAgICAgICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCi0JCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JaW50IGlkID0gKGludCloZWFkZXIucGFja2V0LnBhY2tldF9pZDsKLQlpbnQgc3osIHJlZzsKLQlpbnQgKmRhdGEgPSAoaW50ICopY21kYnVmLT5idWY7Ci0JUklOR19MT0NBTFM7Ci0KLQlpZiAoaWQgPj0gUkFERU9OX01BWF9TVEFURV9QQUNLRVRTKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXN6ID0gcGFja2V0W2lkXS5sZW47Ci0JcmVnID0gcGFja2V0W2lkXS5zdGFydDsKLQotCWlmIChzeiAqIHNpemVvZihpbnQpID4gY21kYnVmLT5idWZzeikgewotCQlEUk1fRVJST1IoIlBhY2tldCBzaXplIHByb3ZpZGVkIGxhcmdlciB0aGFuIGRhdGEgcHJvdmlkZWRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXRzKGRldl9wcml2LCBmaWxlX3ByaXYsIGlkLCBkYXRhKSkgewotCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JQkVHSU5fUklORyhzeiArIDEpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAocmVnLCAoc3ogLSAxKSkpOwotCU9VVF9SSU5HX1RBQkxFKGRhdGEsIHN6KTsKLQlBRFZBTkNFX1JJTkcoKTsKLQotCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2VtaXRfc2NhbGFycyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3QgaGVhZGVyLAotCQkJCQkgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCWludCBzeiA9IGhlYWRlci5zY2FsYXJzLmNvdW50OwotCWludCBzdGFydCA9IGhlYWRlci5zY2FsYXJzLm9mZnNldDsKLQlpbnQgc3RyaWRlID0gaGVhZGVyLnNjYWxhcnMuc3RyaWRlOwotCVJJTkdfTE9DQUxTOwotCi0JQkVHSU5fUklORygzICsgc3opOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9TQ0FMQVJfSU5EWF9SRUcsIDApKTsKLQlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQpKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHLCBzeiAtIDEpKTsKLQlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOwotCUFEVkFOQ0VfUklORygpOwotCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7Ci0JY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOwotCXJldHVybiAwOwotfQotCi0vKiBHb2QgdGhpcyBpcyB1Z2x5Ci0gKi8KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF9zY2FsYXJzMihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCi0JCQkJCSAgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKLQkJCQkJICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JaW50IHN6ID0gaGVhZGVyLnNjYWxhcnMuY291bnQ7Ci0JaW50IHN0YXJ0ID0gKCh1bnNpZ25lZCBpbnQpaGVhZGVyLnNjYWxhcnMub2Zmc2V0KSArIDB4MTAwOwotCWludCBzdHJpZGUgPSBoZWFkZXIuc2NhbGFycy5zdHJpZGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlCRUdJTl9SSU5HKDMgKyBzeik7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVENMX1NDQUxBUl9JTkRYX1JFRywgMCkpOwotCU9VVF9SSU5HKHN0YXJ0IHwgKHN0cmlkZSA8PCBSQURFT05fU0NBTF9JTkRYX0RXT1JEX1NUUklERV9TSElGVCkpOwotCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1NFX1RDTF9TQ0FMQVJfREFUQV9SRUcsIHN6IC0gMSkpOwotCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0JY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWN0b3JzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKLQkJCQkJICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCi0JCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCi17Ci0JaW50IHN6ID0gaGVhZGVyLnZlY3RvcnMuY291bnQ7Ci0JaW50IHN0YXJ0ID0gaGVhZGVyLnZlY3RvcnMub2Zmc2V0OwotCWludCBzdHJpZGUgPSBoZWFkZXIudmVjdG9ycy5zdHJpZGU7Ci0JUklOR19MT0NBTFM7Ci0KLQlCRUdJTl9SSU5HKDUgKyBzeik7Ci0JT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOwotCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9WRUNUT1JfSU5EWF9SRUcsIDApKTsKLQlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1ZFQ19JTkRYX09DVFdPUkRfU1RSSURFX1NISUZUKSk7Ci0JT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSQURFT05fU0VfVENMX1ZFQ1RPUl9EQVRBX1JFRywgKHN6IC0gMSkpKTsKLQlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOwotCUFEVkFOQ0VfUklORygpOwotCi0JY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKLQljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWNsaW5lYXIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAotCQkJCQkgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKLQkJCQkJICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKLXsKLQlpbnQgc3ogPSBoZWFkZXIudmVjbGluZWFyLmNvdW50ICogNDsKLQlpbnQgc3RhcnQgPSBoZWFkZXIudmVjbGluZWFyLmFkZHJfbG8gfCAoaGVhZGVyLnZlY2xpbmVhci5hZGRyX2hpIDw8IDgpOwotCVJJTkdfTE9DQUxTOwotCi0gICAgICAgIGlmICghc3opCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGlmIChzeiAqIDQgPiBjbWRidWYtPmJ1ZnN6KQotICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwotCi0JQkVHSU5fUklORyg1ICsgc3opOwotCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfVENMX1NUQVRFX0ZMVVNILCAwKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHLCAwKSk7Ci0JT1VUX1JJTkcoc3RhcnQgfCAoMSA8PCBSQURFT05fVkVDX0lORFhfT0NUV09SRF9TVFJJREVfU0hJRlQpKTsKLQlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0RBVEFfUkVHLCAoc3ogLSAxKSkpOwotCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBzeiAqIHNpemVvZihpbnQpOwotCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzaXplb2YoaW50KTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZW1pdF9wYWNrZXQzKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAotCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAotCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0JdW5zaWduZWQgaW50IGNtZHN6OwotCWludCByZXQ7Ci0JUklOR19MT0NBTFM7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0KLQlpZiAoKHJldCA9IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0MyhkZXZfcHJpdiwgZmlsZV9wcml2LAotCQkJCQkJICBjbWRidWYsICZjbWRzeikpKSB7Ci0JCURSTV9FUlJPUigiUGFja2V0IHZlcmlmaWNhdGlvbiBmYWlsZWRcbiIpOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCUJFR0lOX1JJTkcoY21kc3opOwotCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBjbWRzeik7Ci0JQURWQU5DRV9SSU5HKCk7Ci0KLQljbWRidWYtPmJ1ZiArPSBjbWRzeiAqIDQ7Ci0JY21kYnVmLT5idWZzeiAtPSBjbWRzeiAqIDQ7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcmFkZW9uX2VtaXRfcGFja2V0M19jbGlwcmVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKLQkJCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCi0JCQkJCWludCBvcmlnX25ib3gpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7Ci0JdW5zaWduZWQgaW50IGNtZHN6OwotCWludCByZXQ7Ci0Jc3RydWN0IGRybV9jbGlwX3JlY3QgX191c2VyICpib3hlcyA9IGNtZGJ1Zi0+Ym94ZXM7Ci0JaW50IGkgPSAwOwotCVJJTkdfTE9DQUxTOwotCi0JRFJNX0RFQlVHKCJcbiIpOwotCi0JaWYgKChyZXQgPSByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldDMoZGV2X3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJCSAgY21kYnVmLCAmY21kc3opKSkgewotCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0KLQlpZiAoIW9yaWdfbmJveCkKLQkJZ290byBvdXQ7Ci0KLQlkbyB7Ci0JCWlmIChpIDwgY21kYnVmLT5uYm94KSB7Ci0JCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZib3gsICZib3hlc1tpXSwgc2l6ZW9mKGJveCkpKQotCQkJCXJldHVybiAtRUZBVUxUOwotCQkJLyogRklYTUUgVGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCB0aW1lcyByb3VuZAotCQkJICogdGhpcyBsb29wLCBzZW5kIGEgV0FJVF9VTlRJTF8zRF9JRExFIGJlZm9yZQotCQkJICogY2FsbGluZyBlbWl0X2NsaXBfcmVjdCgpLiBUaGlzIGZpeGVzIGEKLQkJCSAqIGxvY2t1cCBvbiBmYXN0IG1hY2hpbmVzIHdoZW4gc2VuZGluZwotCQkJICogc2V2ZXJhbCBjbGlwcmVjdHMgd2l0aCBhIGNtZGJ1ZiwgYXMgd2hlbgotCQkJICogd2F2aW5nIGEgMkQgd2luZG93IG92ZXIgYSAzRAotCQkJICogd2luZG93LiBTb21ldGhpbmcgaW4gdGhlIGNvbW1hbmRzIGZyb20gdXNlcgotCQkJICogc3BhY2Ugc2VlbXMgdG8gaGFuZyB0aGUgY2FyZCB3aGVuIHRoZXkncmUKLQkJCSAqIHNlbnQgc2V2ZXJhbCB0aW1lcyBpbiBhIHJvdy4gVGhhdCB3b3VsZCBiZQotCQkJICogdGhlIGNvcnJlY3QgcGxhY2UgdG8gZml4IGl0IGJ1dCB0aGlzIHdvcmtzCi0JCQkgKiBhcm91bmQgaXQgdW50aWwgSSBjYW4gZmlndXJlIHRoYXQgb3V0IC0gVGltCi0JCQkgKiBTbWl0aCAqLwotCQkJaWYgKGkpIHsKLQkJCQlCRUdJTl9SSU5HKDIpOwotCQkJCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKLQkJCQlBRFZBTkNFX1JJTkcoKTsKLQkJCX0KLQkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJmJveCk7Ci0JCX0KLQotCQlCRUdJTl9SSU5HKGNtZHN6KTsKLQkJT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIGNtZHN6KTsKLQkJQURWQU5DRV9SSU5HKCk7Ci0KLQl9IHdoaWxlICgrK2kgPCBjbWRidWYtPm5ib3gpOwotCWlmIChjbWRidWYtPm5ib3ggPT0gMSkKLQkJY21kYnVmLT5uYm94ID0gMDsKLQotICAgICAgb3V0OgotCWNtZGJ1Zi0+YnVmICs9IGNtZHN6ICogNDsKLQljbWRidWYtPmJ1ZnN6IC09IGNtZHN6ICogNDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fZW1pdF93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgZmxhZ3MpCi17Ci0JZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlSSU5HX0xPQ0FMUzsKLQotCURSTV9ERUJVRygiJXhcbiIsIGZsYWdzKTsKLQlzd2l0Y2ggKGZsYWdzKSB7Ci0JY2FzZSBSQURFT05fV0FJVF8yRDoKLQkJQkVHSU5fUklORygyKTsKLQkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fV0FJVF8zRDoKLQkJQkVHSU5fUklORygyKTsKLQkJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOwotCQlBRFZBTkNFX1JJTkcoKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fV0FJVF8yRCB8IFJBREVPTl9XQUlUXzNEOgotCQlCRUdJTl9SSU5HKDIpOwotCQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7Ci0JCUFEVkFOQ0VfUklORygpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCByYWRlb25fY3BfY21kYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKLQlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gTlVMTDsKLQlpbnQgaWR4OwotCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmID0gZGF0YTsKLQlkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXI7Ci0JaW50IG9yaWdfbmJveCwgb3JpZ19idWZzejsKLQljaGFyICprYnVmID0gTlVMTDsKLQotCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7Ci0KLQlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOwotCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKLQotCWlmIChjbWRidWYtPmJ1ZnN6ID4gNjQgKiAxMDI0IHx8IGNtZGJ1Zi0+YnVmc3ogPCAwKSB7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCS8qIEFsbG9jYXRlIGFuIGluLWtlcm5lbCBhcmVhIGFuZCBjb3B5IGluIHRoZSBjbWRidWYuICBEbyB0aGlzIHRvIGF2b2lkCi0JICogcmFjZXMgYmV0d2VlbiBjaGVja2luZyB2YWx1ZXMgYW5kIHVzaW5nIHRob3NlIHZhbHVlcyBpbiBvdGhlciBjb2RlLAotCSAqIGFuZCBzaW1wbHkgdG8gYXZvaWQgYSBsb3Qgb2YgZnVuY3Rpb24gY2FsbHMgdG8gY29weSBpbiBkYXRhLgotCSAqLwotCW9yaWdfYnVmc3ogPSBjbWRidWYtPmJ1ZnN6OwotCWlmIChvcmlnX2J1ZnN6ICE9IDApIHsKLQkJa2J1ZiA9IGRybV9hbGxvYyhjbWRidWYtPmJ1ZnN6LCBEUk1fTUVNX0RSSVZFUik7Ci0JCWlmIChrYnVmID09IE5VTEwpCi0JCQlyZXR1cm4gLUVOT01FTTsKLQkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihrYnVmLCAodm9pZCBfX3VzZXIgKiljbWRidWYtPmJ1ZiwKLQkJCQkgICAgICAgY21kYnVmLT5idWZzeikpIHsKLQkJCWRybV9mcmVlKGtidWYsIG9yaWdfYnVmc3osIERSTV9NRU1fRFJJVkVSKTsKLQkJCXJldHVybiAtRUZBVUxUOwotCQl9Ci0JCWNtZGJ1Zi0+YnVmID0ga2J1ZjsKLQl9Ci0KLQlvcmlnX25ib3ggPSBjbWRidWYtPm5ib3g7Ci0KLQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IzMDApIHsKLQkJaW50IHRlbXA7Ci0JCXRlbXAgPSByMzAwX2RvX2NwX2NtZGJ1ZihkZXYsIGZpbGVfcHJpdiwgY21kYnVmKTsKLQotCQlpZiAob3JpZ19idWZzeiAhPSAwKQotCQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOwotCi0JCXJldHVybiB0ZW1wOwotCX0KLQotCS8qIG1pY3JvY29kZV92ZXJzaW9uICE9IHIzMDAgKi8KLQl3aGlsZSAoY21kYnVmLT5idWZzeiA+PSBzaXplb2YoaGVhZGVyKSkgewotCi0JCWhlYWRlci5pID0gKihpbnQgKiljbWRidWYtPmJ1ZjsKLQkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGhlYWRlcik7Ci0JCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKGhlYWRlcik7Ci0KLQkJc3dpdGNoIChoZWFkZXIuaGVhZGVyLmNtZF90eXBlKSB7Ci0JCWNhc2UgUkFERU9OX0NNRF9QQUNLRVQ6Ci0JCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUXG4iKTsKLQkJCWlmIChyYWRlb25fZW1pdF9wYWNrZXRzCi0JCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsIGhlYWRlciwgY21kYnVmKSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0cyBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSQURFT05fQ01EX1NDQUxBUlM6Ci0JCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSU1xuIik7Ci0JCQlpZiAocmFkZW9uX2VtaXRfc2NhbGFycyhkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9zY2FsYXJzIGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfVkVDVE9SUzoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNUT1JTXG4iKTsKLQkJCWlmIChyYWRlb25fZW1pdF92ZWN0b3JzKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKLQkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3ZlY3RvcnMgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWNhc2UgUkFERU9OX0NNRF9ETUFfRElTQ0FSRDoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9ETUFfRElTQ0FSRFxuIik7Ci0JCQlpZHggPSBoZWFkZXIuZG1hLmJ1Zl9pZHg7Ci0JCQlpZiAoaWR4IDwgMCB8fCBpZHggPj0gZG1hLT5idWZfY291bnQpIHsKLQkJCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKLQkJCQkJICBpZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0KLQkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpZHhdOwotCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdiB8fCBidWYtPnBlbmRpbmcpIHsKLQkJCQlEUk1fRVJST1IoImJhZCBidWZmZXIgJXAgJXAgJWRcbiIsCi0JCQkJCSAgYnVmLT5maWxlX3ByaXYsIGZpbGVfcHJpdiwKLQkJCQkJICBidWYtPnBlbmRpbmcpOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCi0JCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDM6Ci0JCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUM1xuIik7Ci0JCQlpZiAocmFkZW9uX2VtaXRfcGFja2V0MyhkZXYsIGZpbGVfcHJpdiwgY21kYnVmKSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0MyBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyOwotCQkJfQotCQkJYnJlYWs7Ci0KLQkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDNfQ0xJUDoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9QQUNLRVQzX0NMSVBcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3BhY2tldDNfY2xpcHJlY3QKLQkJCSAgICAoZGV2LCBmaWxlX3ByaXYsIGNtZGJ1Ziwgb3JpZ19uYm94KSkgewotCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0M19jbGlwIGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfU0NBTEFSUzI6Ci0JCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSUzJcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3NjYWxhcnMyKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKLQkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3NjYWxhcnMyIGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQotCQljYXNlIFJBREVPTl9DTURfV0FJVDoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9XQUlUXG4iKTsKLQkJCWlmIChyYWRlb25fZW1pdF93YWl0KGRldiwgaGVhZGVyLndhaXQuZmxhZ3MpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF93YWl0IGZhaWxlZFxuIik7Ci0JCQkJZ290byBlcnI7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBSQURFT05fQ01EX1ZFQ0xJTkVBUjoKLQkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNMSU5FQVJcbiIpOwotCQkJaWYgKHJhZGVvbl9lbWl0X3ZlY2xpbmVhcihkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7Ci0JCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF92ZWNsaW5lYXIgZmFpbGVkXG4iKTsKLQkJCQlnb3RvIGVycjsKLQkJCX0KLQkJCWJyZWFrOwotCi0JCWRlZmF1bHQ6Ci0JCQlEUk1fRVJST1IoImJhZCBjbWRfdHlwZSAlZCBhdCAlcFxuIiwKLQkJCQkgIGhlYWRlci5oZWFkZXIuY21kX3R5cGUsCi0JCQkJICBjbWRidWYtPmJ1ZiAtIHNpemVvZihoZWFkZXIpKTsKLQkJCWdvdG8gZXJyOwotCQl9Ci0JfQotCi0JaWYgKG9yaWdfYnVmc3ogIT0gMCkKLQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOwotCi0JRFJNX0RFQlVHKCJET05FXG4iKTsKLQlDT01NSVRfUklORygpOwotCXJldHVybiAwOwotCi0gICAgICBlcnI6Ci0JaWYgKG9yaWdfYnVmc3ogIT0gMCkKLQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOwotCXJldHVybiAtRUlOVkFMOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fZ2V0cGFyYW1fdCAqcGFyYW0gPSBkYXRhOwotCWludCB2YWx1ZTsKLQotCURSTV9ERUJVRygicGlkPSVkXG4iLCBEUk1fQ1VSUkVOVFBJRCk7Ci0KLQlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgewotCWNhc2UgUkFERU9OX1BBUkFNX0dBUlRfQlVGRkVSX09GRlNFVDoKLQkJdmFsdWUgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldDsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fTEFTVF9GUkFNRToKLQkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfZnJhbWVfcmVhZHMrKzsKLQkJdmFsdWUgPSBHRVRfU0NSQVRDSCgwKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fTEFTVF9ESVNQQVRDSDoKLQkJdmFsdWUgPSBHRVRfU0NSQVRDSCgxKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fTEFTVF9DTEVBUjoKLQkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfY2xlYXJfcmVhZHMrKzsKLQkJdmFsdWUgPSBHRVRfU0NSQVRDSCgyKTsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fSVJRX05SOgotCQl2YWx1ZSA9IGRldi0+aXJxOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9HQVJUX0JBU0U6Ci0JCXZhbHVlID0gZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX1JFR0lTVEVSX0hBTkRMRToKLQkJdmFsdWUgPSBkZXZfcHJpdi0+bW1pby0+b2Zmc2V0OwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9TVEFUVVNfSEFORExFOgotCQl2YWx1ZSA9IGRldl9wcml2LT5yaW5nX3JwdHJfb2Zmc2V0OwotCQlicmVhazsKLSNpZiBCSVRTX1BFUl9MT05HID09IDMyCi0JCS8qCi0JCSAqIFRoaXMgaW9jdGwoKSBkb2Vzbid0IHdvcmsgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGh3X2xvY2sgaXMgYQotCQkgKiBwb2ludGVyIHdoaWNoIGNhbid0IGZpdCBpbnRvIGFuIGludC1zaXplZCB2YXJpYWJsZS4gIEFjY29yZGluZyB0bwotCQkgKiBNaWNoZWwgRMOkbnplciwgdGhlIGlvY3RsKCkgaXMgb25seSB1c2VkIG9uIGVtYmVkZGVkIHBsYXRmb3Jtcywgc28KLQkJICogbm90IHN1cHBvcnRpbmcgaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4gIElmIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkKLQkJICogaXMgbmVlZGVkIG9uIDY0LWJpdCBwbGF0Zm9ybXMsIGEgbmV3IGlvY3RsKCkgd291bGQgaGF2ZSB0byBiZSBhZGRlZCwKLQkJICogc28gYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIHRoZSBlbWJlZGRlZCBwbGF0Zm9ybXMgY2FuIGJlCi0JCSAqIG1haW50YWluZWQuICAtLWRhdmlkbSA0LUZlYi0yMDA0LgotCQkgKi8KLQljYXNlIFJBREVPTl9QQVJBTV9TQVJFQV9IQU5ETEU6Ci0JCS8qIFRoZSBsb2NrIGlzIHRoZSBmaXJzdCBkd29yZCBpbiB0aGUgc2FyZWEuICovCi0JCXZhbHVlID0gKGxvbmcpZGV2LT5sb2NrLmh3X2xvY2s7Ci0JCWJyZWFrOwotI2VuZGlmCi0JY2FzZSBSQURFT05fUEFSQU1fR0FSVF9URVhfSEFORExFOgotCQl2YWx1ZSA9IGRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldDsKLQkJYnJlYWs7Ci0JY2FzZSBSQURFT05fUEFSQU1fU0NSQVRDSF9PRkZTRVQ6Ci0JCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykKLQkJCXJldHVybiAtRUlOVkFMOwotCQl2YWx1ZSA9IFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQ7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX0NBUkRfVFlQRToKLQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQotCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9QQ0lFOwotCQllbHNlIGlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKQotCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9BR1A7Ci0JCWVsc2UKLQkJCXZhbHVlID0gUkFERU9OX0NBUkRfUENJOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9QQVJBTV9WQkxBTktfQ1JUQzoKLQkJdmFsdWUgPSByYWRlb25fdmJsYW5rX2NydGNfZ2V0KGRldik7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1BBUkFNX0ZCX0xPQ0FUSU9OOgotCQl2YWx1ZSA9IHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRldl9wcml2KTsKLQkJYnJlYWs7Ci0JZGVmYXVsdDoKLQkJRFJNX0RFQlVHKCJJbnZhbGlkIHBhcmFtZXRlciAlZFxuIiwgcGFyYW0tPnBhcmFtKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JaWYgKERSTV9DT1BZX1RPX1VTRVIocGFyYW0tPnZhbHVlLCAmdmFsdWUsIHNpemVvZihpbnQpKSkgewotCQlEUk1fRVJST1IoImNvcHlfdG9fdXNlclxuIik7Ci0JCXJldHVybiAtRUZBVUxUOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHJhZGVvbl9jcF9zZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCWRybV9yYWRlb25fc2V0cGFyYW1fdCAqc3AgPSBkYXRhOwotCXN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqcmFkZW9uX3ByaXY7Ci0KLQlzd2l0Y2ggKHNwLT5wYXJhbSkgewotCWNhc2UgUkFERU9OX1NFVFBBUkFNX0ZCX0xPQ0FUSU9OOgotCQlyYWRlb25fcHJpdiA9IGZpbGVfcHJpdi0+ZHJpdmVyX3ByaXY7Ci0JCXJhZGVvbl9wcml2LT5yYWRlb25fZmJfZGVsdGEgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gLQotCQkgICAgc3AtPnZhbHVlOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9TRVRQQVJBTV9TV0lUQ0hfVElMSU5HOgotCQlpZiAoc3AtPnZhbHVlID09IDApIHsKLQkJCURSTV9ERUJVRygiY29sb3IgdGlsaW5nIGRpc2FibGVkXG4iKTsKLQkJCWRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQgJj0gflJBREVPTl9EU1RfVElMRV9NQUNSTzsKLQkJCWRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCAmPSB+UkFERU9OX0RTVF9USUxFX01BQ1JPOwotCQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnRpbGluZ19lbmFibGVkID0gMDsKLQkJfSBlbHNlIGlmIChzcC0+dmFsdWUgPT0gMSkgewotCQkJRFJNX0RFQlVHKCJjb2xvciB0aWxpbmcgZW5hYmxlZFxuIik7Ci0JCQlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0IHw9IFJBREVPTl9EU1RfVElMRV9NQUNSTzsKLQkJCWRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCB8PSBSQURFT05fRFNUX1RJTEVfTUFDUk87Ci0JCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+dGlsaW5nX2VuYWJsZWQgPSAxOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1NFVFBBUkFNX1BDSUdBUlRfTE9DQVRJT046Ci0JCWRldl9wcml2LT5wY2lnYXJ0X29mZnNldCA9IHNwLT52YWx1ZTsKLQkJZGV2X3ByaXYtPnBjaWdhcnRfb2Zmc2V0X3NldCA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgUkFERU9OX1NFVFBBUkFNX05FV19NRU1NQVA6Ci0JCWRldl9wcml2LT5uZXdfbWVtbWFwID0gc3AtPnZhbHVlOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX1RBQkxFX1NJWkU6Ci0JCWRldl9wcml2LT5nYXJ0X2luZm8udGFibGVfc2l6ZSA9IHNwLT52YWx1ZTsKLQkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8udGFibGVfc2l6ZSA8IFJBREVPTl9QQ0lHQVJUX1RBQkxFX1NJWkUpCi0JCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFOwotCQlicmVhazsKLQljYXNlIFJBREVPTl9TRVRQQVJBTV9WQkxBTktfQ1JUQzoKLQkJcmV0dXJuIHJhZGVvbl92YmxhbmtfY3J0Y19zZXQoZGV2LCBzcC0+dmFsdWUpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlEUk1fREVCVUcoIkludmFsaWQgcGFyYW1ldGVyICVkXG4iLCBzcC0+cGFyYW0pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyogV2hlbiBhIGNsaWVudCBkaWVzOgotICogICAgLSBDaGVjayBmb3IgYW5kIGNsZWFuIHVwIGZsaXBwZWQgcGFnZSBzdGF0ZQotICogICAgLSBGcmVlIGFueSBhbGxvY2VkIEdBUlQgbWVtb3J5LgotICogICAgLSBGcmVlIGFueSBhbGxvY2VkIHJhZGVvbiBzdXJmYWNlcy4KLSAqCi0gKiBEUk0gaW5mcmFzdHJ1Y3R1cmUgdGFrZXMgY2FyZSBvZiByZWNsYWltaW5nIGRtYSBidWZmZXJzLgotICovCi12b2lkIHJhZGVvbl9kcml2ZXJfcHJlY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCi17Ci0JaWYgKGRldi0+ZGV2X3ByaXZhdGUpIHsKLQkJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQkJZGV2X3ByaXYtPnBhZ2VfZmxpcHBpbmcgPSAwOwotCQlyYWRlb25fbWVtX3JlbGVhc2UoZmlsZV9wcml2LCBkZXZfcHJpdi0+Z2FydF9oZWFwKTsKLQkJcmFkZW9uX21lbV9yZWxlYXNlKGZpbGVfcHJpdiwgZGV2X3ByaXYtPmZiX2hlYXApOwotCQlyYWRlb25fc3VyZmFjZXNfcmVsZWFzZShmaWxlX3ByaXYsIGRldl9wcml2KTsKLQl9Ci19Ci0KLXZvaWQgcmFkZW9uX2RyaXZlcl9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldikKLXsKLQlpZiAoZGV2LT5kZXZfcHJpdmF0ZSkgewotCQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCi0JCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdiAmJgotCQkgICAgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgIT0gMCkKLQkJCXJhZGVvbl9jcF9kaXNwYXRjaF9mbGlwKGRldik7Ci0JfQotCi0JcmFkZW9uX2RvX3JlbGVhc2UoZGV2KTsKLX0KLQotaW50IHJhZGVvbl9kcml2ZXJfb3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKLXsKLQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqcmFkZW9uX3ByaXY7Ci0KLQlEUk1fREVCVUcoIlxuIik7Ci0JcmFkZW9uX3ByaXYgPQotCSAgICAoc3RydWN0IGRybV9yYWRlb25fZHJpdmVyX2ZpbGVfZmllbGRzICopCi0JICAgIGRybV9hbGxvYyhzaXplb2YoKnJhZGVvbl9wcml2KSwgRFJNX01FTV9GSUxFUyk7Ci0KLQlpZiAoIXJhZGVvbl9wcml2KQotCQlyZXR1cm4gLUVOT01FTTsKLQotCWZpbGVfcHJpdi0+ZHJpdmVyX3ByaXYgPSByYWRlb25fcHJpdjsKLQotCWlmIChkZXZfcHJpdikKLQkJcmFkZW9uX3ByaXYtPnJhZGVvbl9mYl9kZWx0YSA9IGRldl9wcml2LT5mYl9sb2NhdGlvbjsKLQllbHNlCi0JCXJhZGVvbl9wcml2LT5yYWRlb25fZmJfZGVsdGEgPSAwOwotCXJldHVybiAwOwotfQotCi12b2lkIHJhZGVvbl9kcml2ZXJfcG9zdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQotewotCXN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqcmFkZW9uX3ByaXYgPQotCSAgICBmaWxlX3ByaXYtPmRyaXZlcl9wcml2OwotCi0JZHJtX2ZyZWUocmFkZW9uX3ByaXYsIHNpemVvZigqcmFkZW9uX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKLX0KLQotc3RydWN0IGRybV9pb2N0bF9kZXNjIHJhZGVvbl9pb2N0bHNbXSA9IHsKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfSU5JVCwgcmFkZW9uX2NwX2luaXQsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX1NUQVJULCByYWRlb25fY3Bfc3RhcnQsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX1NUT1AsIHJhZGVvbl9jcF9zdG9wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9SRVNFVCwgcmFkZW9uX2NwX3Jlc2V0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9JRExFLCByYWRlb25fY3BfaWRsZSwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9SRVNVTUUsIHJhZGVvbl9jcF9yZXN1bWUsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fUkVTRVQsIHJhZGVvbl9lbmdpbmVfcmVzZXQsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fRlVMTFNDUkVFTiwgcmFkZW9uX2Z1bGxzY3JlZW4sIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU1dBUCwgcmFkZW9uX2NwX3N3YXAsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ0xFQVIsIHJhZGVvbl9jcF9jbGVhciwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9WRVJURVgsIHJhZGVvbl9jcF92ZXJ0ZXgsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fSU5ESUNFUywgcmFkZW9uX2NwX2luZGljZXMsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fVEVYVFVSRSwgcmFkZW9uX2NwX3RleHR1cmUsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU1RJUFBMRSwgcmFkZW9uX2NwX3N0aXBwbGUsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fSU5ESVJFQ1QsIHJhZGVvbl9jcF9pbmRpcmVjdCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fVkVSVEVYMiwgcmFkZW9uX2NwX3ZlcnRleDIsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ01EQlVGLCByYWRlb25fY3BfY21kYnVmLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0dFVFBBUkFNLCByYWRlb25fY3BfZ2V0cGFyYW0sIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fRkxJUCwgcmFkZW9uX2NwX2ZsaXAsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQUxMT0MsIHJhZGVvbl9tZW1fYWxsb2MsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fRlJFRSwgcmFkZW9uX21lbV9mcmVlLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lOSVRfSEVBUCwgcmFkZW9uX21lbV9pbml0X2hlYXAsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lSUV9FTUlULCByYWRlb25faXJxX2VtaXQsIERSTV9BVVRIKSwKLQlEUk1fSU9DVExfREVGKERSTV9SQURFT05fSVJRX1dBSVQsIHJhZGVvbl9pcnFfd2FpdCwgRFJNX0FVVEgpLAotCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TRVRQQVJBTSwgcmFkZW9uX2NwX3NldHBhcmFtLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NVUkZfQUxMT0MsIHJhZGVvbl9zdXJmYWNlX2FsbG9jLCBEUk1fQVVUSCksCi0JRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NVUkZfRlJFRSwgcmFkZW9uX3N1cmZhY2VfZnJlZSwgRFJNX0FVVEgpCi19OwotCi1pbnQgcmFkZW9uX21heF9pb2N0bCA9IERSTV9BUlJBWV9TSVpFKHJhZGVvbl9pb2N0bHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RzMTI4Ni5jIGIvZHJpdmVycy9jaGFyL2RzMTI4Ni5jCmluZGV4IGVhMzVhYjIuLmZiNTg0OTM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZHMxMjg2LmMKKysrIGIvZHJpdmVycy9jaGFyL2RzMTI4Ni5jCkBAIC0yNyw2ICsyNyw3IEBACiAgKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCiAjaW5jbHVkZSA8bGludXgvZHMxMjg2Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMjUyLDYgKzI1Myw3IEBACiAKIHN0YXRpYyBpbnQgZHMxMjg2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZkczEyODZfbG9jayk7CiAKIAlpZiAoZHMxMjg2X3N0YXR1cyAmIFJUQ19JU19PUEVOKQpAQCAtMjYwLDEwICsyNjIsMTIgQEAKIAlkczEyODZfc3RhdHVzIHw9IFJUQ19JU19PUEVOOwogCiAJc3Bpbl91bmxvY2tfaXJxKCZkczEyODZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXRfYnVzeToKIAlzcGluX2xvY2tfaXJxKCZkczEyODZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRUJVU1k7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kczE2MjAuYyBiL2RyaXZlcnMvY2hhci9kczE2MjAuYwppbmRleCAzMzRhZDViLi4zNDI3NWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvZHMxNjIwLmMKKysrIGIvZHJpdmVycy9jaGFyL2RzMTYyMC5jCkBAIC04LDYgKzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jYXBhYmlsaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vbWFjaC10eXBlcy5oPgpAQCAtMjA4LDYgKzIwOSwxMiBAQAogCXRoZXJtLT5oaSA9IGN2dF85X3RvX2ludChkczE2MjBfaW4oVEhFUk1fUkVBRF9USCwgOSkpOwogfQogCitzdGF0aWMgaW50IGRzMTYyMF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CisJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOworfQorCiBzdGF0aWMgc3NpemVfdAogZHMxNjIwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwdHIpCiB7CkBAIC0zMzYsNyArMzQzLDcgQEAKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZHMxNjIwX2ZvcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5vcGVuCQk9IG5vbnNlZWthYmxlX29wZW4sCisJLm9wZW4JCT0gZHMxNjIwX29wZW4sCiAJLnJlYWQJCT0gZHMxNjIwX3JlYWQsCiAJLmlvY3RsCQk9IGRzMTYyMF9pb2N0bCwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHNwNTZrLmMgYi9kcml2ZXJzL2NoYXIvZHNwNTZrLmMKaW5kZXggYTY5YzY1Mi4uYjlhMzBjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2RzcDU2ay5jCisrKyBiL2RyaXZlcnMvY2hhci9kc3A1NmsuYwpAQCAtMzMsNiArMzMsOSBAQAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPGFzbS9hdGFyaWh3Lmg+CiAjaW5jbHVkZSA8YXNtL3RyYXBzLmg+CkBAIC05Miw0OSArOTUsNiBAQAogCX0gXAogfQogCi0vKiBEU1A1NjAwMSBib290c3RyYXAgY29kZSAqLwotc3RhdGljIGNoYXIgYm9vdHN0cmFwW10gPSB7Ci0JMHgwYywgMHgwMCwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDYwLCAweGY0LCAweDAwLCAweDAwLCAweDAwLCAweDRmLCAweDYxLCAweGY0LAotCTB4MDAsIDB4MDAsIDB4N2UsIDB4YTksIDB4MDYsIDB4MmUsIDB4ODAsIDB4MDAsIDB4MDAsIDB4NDcsCi0JMHgwNywgMHhkOCwgMHg4NCwgMHgwNywgMHg1OSwgMHg4NCwgMHgwOCwgMHhmNCwgMHhhOCwgMHgwMCwKLQkweDAwLCAweDA0LCAweDA4LCAweGY0LCAweGJmLCAweDAwLCAweDBjLCAweDAwLCAweDAwLCAweGZlLAotCTB4YjgsIDB4MGEsIDB4ZjAsIDB4ODAsIDB4MDAsIDB4N2UsIDB4YTksIDB4MDgsIDB4ZjQsIDB4YTAsCi0JMHgwMCwgMHgwMCwgMHgwMSwgMHgwOCwgMHhmNCwgMHhiZSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwYSwKLQkweGE5LCAweDgwLCAweDAwLCAweDdlLCAweGFkLCAweDA4LCAweDRlLCAweDJiLCAweDQ0LCAweGY0LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4NDQsIDB4ZjQsIDB4NDUsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgwZSwgMHhhMCwgMHgwMCwgMHgwYSwgMHhhOSwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhiNSwgMHgwOCwKLQkweDUwLCAweDJiLCAweDBhLCAweGE5LCAweDgwLCAweDAwLCAweDdlLCAweGI4LCAweDA4LCAweDQ2LAotCTB4MmIsIDB4NDQsIDB4ZjQsIDB4NDUsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZjAsIDB4YWEsCi0JMHgwMCwgMHg3ZSwgMHhjOSwgMHgyMCwgMHgwMCwgMHg0NSwgMHgwYSwgMHhmMCwgMHhhYSwgMHgwMCwKLQkweDdlLCAweGQwLCAweDA2LCAweGM2LCAweDAwLCAweDAwLCAweDdlLCAweGM2LCAweDBhLCAweGE5LAotCTB4ODAsIDB4MDAsIDB4N2UsIDB4YzQsIDB4MDgsIDB4NTgsIDB4NmIsIDB4MGEsIDB4ZjAsIDB4ODAsCi0JMHgwMCwgMHg3ZSwgMHhhZCwgMHgwNiwgMHhjNiwgMHgwMCwgMHgwMCwgMHg3ZSwgMHhjZCwgMHgwYSwKLQkweGE5LCAweDgwLCAweDAwLCAweDdlLCAweGNiLCAweDA4LCAweDU4LCAweGFiLCAweDBhLCAweGYwLAotCTB4ODAsIDB4MDAsIDB4N2UsIDB4YWQsIDB4MDYsIDB4YzYsIDB4MDAsIDB4MDAsIDB4N2UsIDB4ZDQsCi0JMHgwYSwgMHhhOSwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhkMiwgMHgwOCwgMHg1OCwgMHhlYiwgMHgwYSwKLQkweGYwLCAweDgwLCAweDAwLCAweDdlLCAweGFkfTsKLXN0YXRpYyBpbnQgc2l6ZW9mX2Jvb3RzdHJhcCA9IDM3NTsKLQotCiBzdGF0aWMgc3RydWN0IGRzcDU2a19kZXZpY2UgewogCXVuc2lnbmVkIGxvbmcgaW5fdXNlOwogCWxvbmcgbWF4aW8sIHRpbWVvdXQ7CkBAIC0xNjQsMTggKzEyNCw0MCBAQAogCiBzdGF0aWMgaW50IGRzcDU2a191cGxvYWQodV9jaGFyIF9fdXNlciAqYmluLCBpbnQgbGVuKQogeworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwljb25zdCBjaGFyIGZ3X25hbWVbXSA9ICJkc3A1NmsvYm9vdHN0cmFwLmJpbiI7CisJaW50IGVycjsKIAlpbnQgaTsKLQl1X2NoYXIgKnA7Ci0JCisKIAlkc3A1NmtfcmVzZXQoKTsKLSAgCi0JcCA9IGJvb3RzdHJhcDsKLQlmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mX2Jvb3RzdHJhcC8zOyBpKyspIHsKLQkJLyogdHhfd2FpdCgxMCk7ICovCi0JCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbMV0gPSAqcCsrOwotCQlkc3A1NmtfaG9zdF9pbnRlcmZhY2UuZGF0YS5iWzJdID0gKnArKzsKLQkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlszXSA9ICpwKys7CisKKwlwZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3NpbXBsZSgiZHNwNTZrIiwgMCwgTlVMTCwgMCk7CisJaWYgKElTX0VSUihwZGV2KSkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byByZWdpc3RlciBkZXZpY2UgZm9yIFwiJXNcIlxuIiwKKwkJICAgICAgIGZ3X25hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKIAl9CisJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZwZGV2LT5kZXYpOworCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKHBkZXYpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBpbWFnZSBcIiVzXCIgZXJyICVkXG4iLAorCQkgICAgICAgZndfbmFtZSwgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJaWYgKGZ3LT5zaXplICUgMykgeworCQlwcmludGsoS0VSTl9FUlIgIkJvZ3VzIGxlbmd0aCAlZCBpbiBpbWFnZSBcIiVzXCJcbiIsCisJCSAgICAgICBmdy0+c2l6ZSwgZndfbmFtZSk7CisJCXJlbGVhc2VfZmlybXdhcmUoZncpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplOyBpID0gaSArIDMpIHsKKwkJLyogdHhfd2FpdCgxMCk7ICovCisJCWRzcDU2a19ob3N0X2ludGVyZmFjZS5kYXRhLmJbMV0gPSBmdy0+ZGF0YVtpXTsKKwkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlsyXSA9IGZ3LT5kYXRhW2kgKyAxXTsKKwkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlszXSA9IGZ3LT5kYXRhW2kgKyAyXTsKKwl9CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJZm9yICg7IGkgPCA1MTI7IGkrKykgewogCQkvKiB0eF93YWl0KDEwKTsgKi8KIAkJZHNwNTZrX2hvc3RfaW50ZXJmYWNlLmRhdGEuYlsxXSA9IDA7CkBAIC00MzYsMTMgKzQxOCwxNyBAQAogc3RhdGljIGludCBkc3A1Nmtfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpbnQgZGV2ID0gaW1pbm9yKGlub2RlKSAmIDB4MGY7CisJaW50IHJldCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXN3aXRjaChkZXYpCiAJewogCWNhc2UgRFNQNTZLX0RFVl81NjAwMToKIAotCQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmZHNwNTZrLmluX3VzZSkpCi0JCQlyZXR1cm4gLUVCVVNZOworCQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmZHNwNTZrLmluX3VzZSkpIHsKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWdvdG8gb3V0OworCQl9CiAKIAkJZHNwNTZrLnRpbWVvdXQgPSBUSU1FT1VUOwogCQlkc3A1NmsubWF4aW8gPSBNQVhJTzsKQEAgLTQ1OCwxMCArNDQ0LDExIEBACiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJcmV0dXJuIC1FTk9ERVY7CisJCXJldCA9IC1FTk9ERVY7CiAJfQotCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgZHNwNTZrX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCkBAIC01MzQsMyArNTIxLDQgQEAKIG1vZHVsZV9leGl0KGRzcDU2a19jbGVhbnVwX2RyaXZlcik7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgiZHNwNTZrL2Jvb3RzdHJhcC5iaW4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kdGxrLmMgYi9kcml2ZXJzL2NoYXIvZHRsay5jCmluZGV4IGFiZGU2ZGQuLjZiOTAwYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9kdGxrLmMKKysrIGIvZHJpdmVycy9jaGFyL2R0bGsuYwpAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CS8qIGZvciAtRUJVU1kgKi8KICNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4JLyogZm9yIHJlcXVlc3RfcmVnaW9uICovCiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4JLyogZm9yIGxvb3BzX3Blcl9qaWZmeSAqLworI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CS8qIGN5Y2xlX2tlcm5lbF9sb2NrKCkgKi8KICNpbmNsdWRlIDxhc20vaW8uaD4JCS8qIGZvciBpbmJfcCwgb3V0Yl9wLCBpbmIsIG91dGIsIGV0Yy4gKi8KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgkvKiBmb3IgZ2V0X3VzZXIsIGV0Yy4gKi8KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CQkvKiBmb3Igd2FpdF9xdWV1ZSAqLwpAQCAtMjg4LDEwICsyODksMTIgQEAKIAl9CiB9CiAKKy8qIE5vdGUgdGhhdCBub2JvZHkgZXZlciBzZXRzIGR0bGtfYnVzeS4uLiAqLwogc3RhdGljIGludCBkdGxrX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJVFJBQ0VfVEVYVCgiKGR0bGtfb3BlbiIpOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKIAlzd2l0Y2ggKGltaW5vcihpbm9kZSkpIHsKIAljYXNlIERUTEtfTUlOT1I6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZWZpcnRjLmMgYi9kcml2ZXJzL2NoYXIvZWZpcnRjLmMKaW5kZXggNDkyMzNmNS4uZDU3Y2EzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2VmaXJ0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9lZmlydGMuYwpAQCAtMjgsNiArMjgsNyBAQAogICovCiAKIAorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTI3Miw2ICsyNzMsNyBAQAogCSAqIFdlIGRvIGFjY2VwdCBtdWx0aXBsZSBvcGVuIGZpbGVzIGF0IHRoZSBzYW1lIHRpbWUgYXMgd2UKIAkgKiBzeW5jaHJvbml6ZSBvbiB0aGUgcGVyIGNhbGwgb3BlcmF0aW9uLgogCSAqLworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9nZW5lcmljX252cmFtLmMgYi9kcml2ZXJzL2NoYXIvZ2VuZXJpY19udnJhbS5jCmluZGV4IDIzOThlODYuLmEwMDg2OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9nZW5lcmljX252cmFtLmMKKysrIGIvZHJpdmVycy9jaGFyL2dlbmVyaWNfbnZyYW0uYwpAQCAtMTMzLDcgKzEzMyw3IEBACiAKIGludCBfX2luaXQgbnZyYW1faW5pdCh2b2lkKQogewotCXByaW50ayhLRVJOX0lORk8gIk1hY2ludG9zaCBub24tdm9sYXRpbGUgbWVtb3J5IGRyaXZlciB2JXNcbiIsCisJcHJpbnRrKEtFUk5fSU5GTyAiR2VuZXJpYyBub24tdm9sYXRpbGUgbWVtb3J5IGRyaXZlciB2JXNcbiIsCiAJCU5WUkFNX1ZFUlNJT04pOwogCXJldHVybiBtaXNjX3JlZ2lzdGVyKCZudnJhbV9kZXYpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2dlbnJ0Yy5jIGIvZHJpdmVycy9jaGFyL2dlbnJ0Yy5jCmluZGV4IDY5ZjBhMjkuLmFhYzA5ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9nZW5ydGMuYworKysgYi9kcml2ZXJzL2NoYXIvZ2VucnRjLmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTMzOCwxMiArMzM5LDE2IEBACiAKIHN0YXRpYyBpbnQgZ2VuX3J0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCWlmIChnZW5fcnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKGdlbl9ydGNfc3RhdHVzICYgUlRDX0lTX09QRU4pIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAogCWdlbl9ydGNfc3RhdHVzIHw9IFJUQ19JU19PUEVOOwogCWdlbl9ydGNfaXJxX2RhdGEgPSAwOwogCWlycV9hY3RpdmUgPSAwOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2hwZXQuYyBiL2RyaXZlcnMvY2hhci9ocGV0LmMKaW5kZXggZTdmYjBiYy4uZmIwYTg1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2hwZXQuYworKysgYi9kcml2ZXJzL2NoYXIvaHBldC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tYWpvci5oPgpAQCAtMTkzLDYgKzE5NCw3IEBACiAJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2lycSgmaHBldF9sb2NrKTsKIAogCWZvciAoZGV2cCA9IE5VTEwsIGhwZXRwID0gaHBldHM7IGhwZXRwICYmICFkZXZwOyBocGV0cCA9IGhwZXRwLT5ocF9uZXh0KQpAQCAtMjA3LDYgKzIwOSw3IEBACiAKIAlpZiAoIWRldnApIHsKIAkJc3Bpbl91bmxvY2tfaXJxKCZocGV0X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC0yMTQsNiArMjE3LDcgQEAKIAlkZXZwLT5oZF9pcnFkYXRhID0gMDsKIAlkZXZwLT5oZF9mbGFncyB8PSBIUEVUX09QRU47CiAJc3Bpbl91bmxvY2tfaXJxKCZocGV0X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2h2Y194ZW4uYyBiL2RyaXZlcnMvY2hhci9odmNfeGVuLmMKaW5kZXggZGQ2OGY4NS4uZGIyYWU0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2h2Y194ZW4uYworKysgYi9kcml2ZXJzL2NoYXIvaHZjX3hlbi5jCkBAIC0zOSw5ICszOSwxNCBAQAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgY29uc29sZV9wZm4gPSB+MHVsOworCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB4ZW5jb25zX2ludGVyZmFjZSAqeGVuY29uc19pbnRlcmZhY2Uodm9pZCkKIHsKLQlyZXR1cm4gbWZuX3RvX3ZpcnQoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5tZm4pOworCWlmIChjb25zb2xlX3BmbiA9PSB+MHVsKQorCQlyZXR1cm4gbWZuX3RvX3ZpcnQoeGVuX3N0YXJ0X2luZm8tPmNvbnNvbGUuZG9tVS5tZm4pOworCWVsc2UKKwkJcmV0dXJuIF9fdmEoY29uc29sZV9wZm4gPDwgUEFHRV9TSElGVCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBub3RpZnlfZGFlbW9uKHZvaWQpCkBAIC0xMDEsMjAgKzEwNiwzMiBAQAogewogCXN0cnVjdCBodmNfc3RydWN0ICpocDsKIAotCWlmICghaXNfcnVubmluZ19vbl94ZW4oKSkKLQkJcmV0dXJuIDA7CisJaWYgKCFpc19ydW5uaW5nX29uX3hlbigpIHx8CisJICAgIGlzX2luaXRpYWxfeGVuZG9tYWluKCkgfHwKKwkgICAgIXhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUuZXZ0Y2huKQorCQlyZXR1cm4gLUVOT0RFVjsKIAogCXhlbmNvbnNfaXJxID0gYmluZF9ldnRjaG5fdG9faXJxKHhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUuZXZ0Y2huKTsKIAlpZiAoeGVuY29uc19pcnEgPCAwKQotCQl4ZW5jb25zX2lycSA9IDAgLyogTk9fSVJRICovOworCQl4ZW5jb25zX2lycSA9IDA7IC8qIE5PX0lSUSAqLworCiAJaHAgPSBodmNfYWxsb2MoSFZDX0NPT0tJRSwgeGVuY29uc19pcnEsICZodmNfb3BzLCAyNTYpOwogCWlmIChJU19FUlIoaHApKQogCQlyZXR1cm4gUFRSX0VSUihocCk7CiAKIAlodmMgPSBocDsKKworCWNvbnNvbGVfcGZuID0gbWZuX3RvX3Bmbih4ZW5fc3RhcnRfaW5mby0+Y29uc29sZS5kb21VLm1mbik7CisKIAlyZXR1cm4gMDsKIH0KIAordm9pZCB4ZW5fY29uc29sZV9yZXN1bWUodm9pZCkKK3sKKwlpZiAoeGVuY29uc19pcnEpCisJCXJlYmluZF9ldnRjaG5faXJxKHhlbl9zdGFydF9pbmZvLT5jb25zb2xlLmRvbVUuZXZ0Y2huLCB4ZW5jb25zX2lycSk7Cit9CisKIHN0YXRpYyB2b2lkIF9fZXhpdCB4ZW5fZmluaSh2b2lkKQogewogCWlmIChodmMpCkBAIC0xMzQsMTIgKzE1MSwyOCBAQAogbW9kdWxlX2V4aXQoeGVuX2ZpbmkpOwogY29uc29sZV9pbml0Y2FsbCh4ZW5fY29uc19pbml0KTsKIAorc3RhdGljIHZvaWQgcmF3X2NvbnNvbGVfd3JpdGUoY29uc3QgY2hhciAqc3RyLCBpbnQgbGVuKQoreworCXdoaWxlKGxlbiA+IDApIHsKKwkJaW50IHJjID0gSFlQRVJWSVNPUl9jb25zb2xlX2lvKENPTlNPTEVJT193cml0ZSwgbGVuLCAoY2hhciAqKXN0cik7CisJCWlmIChyYyA8PSAwKQorCQkJYnJlYWs7CisKKwkJc3RyICs9IHJjOworCQlsZW4gLT0gcmM7CisJfQorfQorCisjaWZkZWYgQ09ORklHX0VBUkxZX1BSSU5USwogc3RhdGljIHZvaWQgeGVuYm9vdF93cml0ZV9jb25zb2xlKHN0cnVjdCBjb25zb2xlICpjb25zb2xlLCBjb25zdCBjaGFyICpzdHJpbmcsCiAJCQkJICB1bnNpZ25lZCBsZW4pCiB7CiAJdW5zaWduZWQgaW50IGxpbmVsZW4sIG9mZiA9IDA7CiAJY29uc3QgY2hhciAqcG9zOwogCisJcmF3X2NvbnNvbGVfd3JpdGUoc3RyaW5nLCBsZW4pOworCisJd3JpdGVfY29uc29sZSgwLCAiKGVhcmx5KSAiLCA4KTsKIAl3aGlsZSAob2ZmIDwgbGVuICYmIE5VTEwgIT0gKHBvcyA9IHN0cmNocihzdHJpbmcrb2ZmLCAnXG4nKSkpIHsKIAkJbGluZWxlbiA9IHBvcy1zdHJpbmcrb2ZmOwogCQlpZiAob2ZmICsgbGluZWxlbiA+IGxlbikKQEAgLTE1NSw1ICsxODgsMjMgQEAKIHN0cnVjdCBjb25zb2xlIHhlbmJvb3RfY29uc29sZSA9IHsKIAkubmFtZQkJPSAieGVuYm9vdCIsCiAJLndyaXRlCQk9IHhlbmJvb3Rfd3JpdGVfY29uc29sZSwKLQkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSIHwgQ09OX0JPT1QsCisJLmZsYWdzCQk9IENPTl9QUklOVEJVRkZFUiB8IENPTl9CT09UIHwgQ09OX0FOWVRJTUUsCiB9OworI2VuZGlmCS8qIENPTkZJR19FQVJMWV9QUklOVEsgKi8KKwordm9pZCB4ZW5fcmF3X2NvbnNvbGVfd3JpdGUoY29uc3QgY2hhciAqc3RyKQoreworCXJhd19jb25zb2xlX3dyaXRlKHN0ciwgc3RybGVuKHN0cikpOworfQorCit2b2lkIHhlbl9yYXdfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXN0YXRpYyBjaGFyIGJ1Zls1MTJdOworCXZhX2xpc3QgYXA7CisKKwl2YV9zdGFydChhcCwgZm10KTsKKwl2c25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCXhlbl9yYXdfY29uc29sZV93cml0ZShidWYpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9LY29uZmlnIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9LY29uZmlnCmluZGV4IDhkNmMyMDguLmVmZDBiNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vS2NvbmZpZworKysgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL0tjb25maWcKQEAgLTExMiwzICsxMTIsMTIgQEAKIAogCSAgSWYgdW5zdXJlLCBzYXkgWS4KIAorY29uZmlnIEhXX1JBTkRPTV9WSVJUSU8KKwl0cmlzdGF0ZSAiVmlydElPIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBIV19SQU5ET00gJiYgVklSVElPCisJLS0taGVscC0tLQorCSAgVGhpcyBkcml2ZXIgcHJvdmlkZXMga2VybmVsLXNpZGUgc3VwcG9ydCBmb3IgdGhlIHZpcnR1YWwgUmFuZG9tIE51bWJlcgorCSAgR2VuZXJhdG9yIGhhcmR3YXJlLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCB2aXJ0aW8tcm5nLiAgSWYgdW5zdXJlLCBzYXkgTi4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vTWFrZWZpbGUgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL01ha2VmaWxlCmluZGV4IGM4YjczMDAuLmI0OTQwZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9NYWtlZmlsZQpAQCAtMTEsMyArMTEsNCBAQAogb2JqLSQoQ09ORklHX0hXX1JBTkRPTV9JWFA0WFgpICs9IGl4cDR4eC1ybmcubwogb2JqLSQoQ09ORklHX0hXX1JBTkRPTV9PTUFQKSArPSBvbWFwLXJuZy5vCiBvYmotJChDT05GSUdfSFdfUkFORE9NX1BBU0VNSSkgKz0gcGFzZW1pLXJuZy5vCitvYmotJChDT05GSUdfSFdfUkFORE9NX1ZJUlRJTykgKz0gdmlydGlvLXJuZy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2NvcmUuYyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCmluZGV4IDY2MmQ2MGUuLmU1ZDU4M2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCisrKyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtODYsNiArODcsNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoZmlscC0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCXJldHVybiAtRUlOVkFMOworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vaW50ZWwtcm5nLmMgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL2ludGVsLXJuZy5jCmluZGV4IDVjYzY1MWUuLjI3ZmRjMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vaW50ZWwtcm5nLmMKKysrIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9pbnRlbC1ybmcuYwpAQCAtMjczLDcgKzI3Myw3IEBACiAJaWYgKG1mYyAhPSBJTlRFTF9GV0hfTUFOVUZBQ1RVUkVSX0NPREUgfHwKIAkgICAgKGR2YyAhPSBJTlRFTF9GV0hfREVWSUNFX0NPREVfOE0gJiYKIAkgICAgIGR2YyAhPSBJTlRFTF9GV0hfREVWSUNFX0NPREVfNE0pKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIkZXSCBub3QgZGV0ZWN0ZWRcbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJGV0ggbm90IGRldGVjdGVkXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL3ZpcnRpby1ybmcuYyBiL2RyaXZlcnMvY2hhci9od19yYW5kb20vdmlydGlvLXJuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwZTU2M2UKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL3ZpcnRpby1ybmcuYwpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIFJhbmRvbW5lc3MgZHJpdmVyIGZvciB2aXJ0aW8KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggUnVzdHkgUnVzc2VsbCBJQk0gQ29ycG9yYXRpb24KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSBVU0EKKyAqLworI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L2h3X3JhbmRvbS5oPgorI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC92aXJ0aW8uaD4KKyNpbmNsdWRlIDxsaW51eC92aXJ0aW9fcm5nLmg+CisKKy8qIFRoZSBob3N0IHdpbGwgZmlsbCBhbnkgYnVmZmVyIHdlIGdpdmUgaXQgd2l0aCBzd2VldCwgc3dlZXQgcmFuZG9tbmVzcy4gIFdlCisgKiBnaXZlIGl0IDY0IGJ5dGVzIGF0IGEgdGltZSwgYW5kIHRoZSBod3JuZyBmcmFtZXdvcmsgdGFrZXMgaXQgNCBieXRlcyBhdCBhCisgKiB0aW1lLiAqLworI2RlZmluZSBSQU5ET01fREFUQV9TSVpFIDY0CisKK3N0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlICp2cTsKK3N0YXRpYyB1MzIgKnJhbmRvbV9kYXRhOworc3RhdGljIHVuc2lnbmVkIGludCBkYXRhX2xlZnQ7CitzdGF0aWMgREVDTEFSRV9DT01QTEVUSU9OKGhhdmVfZGF0YSk7CisKK3N0YXRpYyB2b2lkIHJhbmRvbV9yZWN2X2RvbmUoc3RydWN0IHZpcnRxdWV1ZSAqdnEpCit7CisJaW50IGxlbjsKKworCS8qIFdlIG5ldmVyIGdldCBzcHVyaW91cyBjYWxsYmFja3MuICovCisJaWYgKCF2cS0+dnFfb3BzLT5nZXRfYnVmKHZxLCAmbGVuKSkKKwkJQlVHKCk7CisKKwlkYXRhX2xlZnQgPSBsZW4gLyBzaXplb2YocmFuZG9tX2RhdGFbMF0pOworCWNvbXBsZXRlKCZoYXZlX2RhdGEpOworfQorCitzdGF0aWMgdm9pZCByZWdpc3Rlcl9idWZmZXIodm9pZCkKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7CisKKwlzZ19pbml0X29uZSgmc2csIHJhbmRvbV9kYXRhLCBSQU5ET01fREFUQV9TSVpFKTsKKwkvKiBUaGVyZSBzaG91bGQgYWx3YXlzIGJlIHJvb20gZm9yIG9uZSBidWZmZXIuICovCisJaWYgKHZxLT52cV9vcHMtPmFkZF9idWYodnEsICZzZywgMCwgMSwgcmFuZG9tX2RhdGEpICE9IDApCisJCUJVRygpOworCXZxLT52cV9vcHMtPmtpY2sodnEpOworfQorCisvKiBBdCBsZWFzdCB3ZSBkb24ndCB1ZGVsYXkoKSBpbiBhIGxvb3AgbGlrZSBzb21lIG90aGVyIGRyaXZlcnMuICovCitzdGF0aWMgaW50IHZpcnRpb19kYXRhX3ByZXNlbnQoc3RydWN0IGh3cm5nICpybmcsIGludCB3YWl0KQoreworCWlmIChkYXRhX2xlZnQpCisJCXJldHVybiAxOworCisJaWYgKCF3YWl0KQorCQlyZXR1cm4gMDsKKworCXdhaXRfZm9yX2NvbXBsZXRpb24oJmhhdmVfZGF0YSk7CisJcmV0dXJuIDE7Cit9CisKKy8qIHZpcnRpb19kYXRhX3ByZXNlbnQoKSBtdXN0IGhhdmUgc3VjY2VlZGVkIGJlZm9yZSB0aGlzIGlzIGNhbGxlZC4gKi8KK3N0YXRpYyBpbnQgdmlydGlvX2RhdGFfcmVhZChzdHJ1Y3QgaHdybmcgKnJuZywgdTMyICpkYXRhKQoreworCUJVR19PTighZGF0YV9sZWZ0KTsKKworCSpkYXRhID0gcmFuZG9tX2RhdGFbLS1kYXRhX2xlZnRdOworCisJaWYgKCFkYXRhX2xlZnQpIHsKKwkJaW5pdF9jb21wbGV0aW9uKCZoYXZlX2RhdGEpOworCQlyZWdpc3Rlcl9idWZmZXIoKTsKKwl9CisJcmV0dXJuIHNpemVvZigqZGF0YSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgaHdybmcgdmlydGlvX2h3cm5nID0geworCS5uYW1lID0gInZpcnRpbyIsCisJLmRhdGFfcHJlc2VudCA9IHZpcnRpb19kYXRhX3ByZXNlbnQsCisJLmRhdGFfcmVhZCA9IHZpcnRpb19kYXRhX3JlYWQsCit9OworCitzdGF0aWMgaW50IHZpcnRybmdfcHJvYmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCit7CisJaW50IGVycjsKKworCS8qIFdlIGV4cGVjdCBhIHNpbmdsZSB2aXJ0cXVldWUuICovCisJdnEgPSB2ZGV2LT5jb25maWctPmZpbmRfdnEodmRldiwgMCwgcmFuZG9tX3JlY3ZfZG9uZSk7CisJaWYgKElTX0VSUih2cSkpCisJCXJldHVybiBQVFJfRVJSKHZxKTsKKworCWVyciA9IGh3cm5nX3JlZ2lzdGVyKCZ2aXJ0aW9faHdybmcpOworCWlmIChlcnIpIHsKKwkJdmRldi0+Y29uZmlnLT5kZWxfdnEodnEpOworCQlyZXR1cm4gZXJyOworCX0KKworCXJlZ2lzdGVyX2J1ZmZlcigpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB2aXJ0cm5nX3JlbW92ZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikKK3sKKwl2ZGV2LT5jb25maWctPnJlc2V0KHZkZXYpOworCWh3cm5nX3VucmVnaXN0ZXIoJnZpcnRpb19od3JuZyk7CisJdmRldi0+Y29uZmlnLT5kZWxfdnEodnEpOworfQorCitzdGF0aWMgc3RydWN0IHZpcnRpb19kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsKKwl7IFZJUlRJT19JRF9STkcsIFZJUlRJT19ERVZfQU5ZX0lEIH0sCisJeyAwIH0sCit9OworCitzdGF0aWMgc3RydWN0IHZpcnRpb19kcml2ZXIgdmlydGlvX3JuZyA9IHsKKwkuZHJpdmVyLm5hbWUgPQlLQlVJTERfTU9ETkFNRSwKKwkuZHJpdmVyLm93bmVyID0JVEhJU19NT0RVTEUsCisJLmlkX3RhYmxlID0JaWRfdGFibGUsCisJLnByb2JlID0JdmlydHJuZ19wcm9iZSwKKwkucmVtb3ZlID0JX19kZXZleGl0X3AodmlydHJuZ19yZW1vdmUpLAorfTsKKworc3RhdGljIGludCBfX2luaXQgaW5pdCh2b2lkKQoreworCWludCBlcnI7CisKKwlyYW5kb21fZGF0YSA9IGttYWxsb2MoUkFORE9NX0RBVEFfU0laRSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFyYW5kb21fZGF0YSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSByZWdpc3Rlcl92aXJ0aW9fZHJpdmVyKCZ2aXJ0aW9fcm5nKTsKKwlpZiAoZXJyKQorCQlrZnJlZShyYW5kb21fZGF0YSk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGZpbmkodm9pZCkKK3sKKwlrZnJlZShyYW5kb21fZGF0YSk7CisJdW5yZWdpc3Rlcl92aXJ0aW9fZHJpdmVyKCZ2aXJ0aW9fcm5nKTsKK30KK21vZHVsZV9pbml0KGluaXQpOworbW9kdWxlX2V4aXQoZmluaSk7CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUodmlydGlvLCBpZF90YWJsZSk7CitNT0RVTEVfREVTQ1JJUFRJT04oIlZpcnRpbyByYW5kb20gbnVtYmVyIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMi9NYWtlZmlsZSBiL2RyaXZlcnMvY2hhci9pcDIvTWFrZWZpbGUKaW5kZXggNmJmZTI1NC4uOTM5NjE4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL2lwMi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2NoYXIvaXAyL01ha2VmaWxlCkBAIC0yLDcgKzIsNyBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIENvbXB1dG9uZSBJbnRlbGxpUG9ydCBQbHVzIERyaXZlcgogIwogCi1vYmotJChDT05GSUdfQ09NUFVUT05FKSAgICAgICAgICs9IGlwMi5vIGlwMm1haW4ubworb2JqLSQoQ09ORklHX0NPTVBVVE9ORSkgICAgICAgICArPSBpcDIubwogCi1pcDItb2JqcwkJCTo9IGlwMmJhc2UubworaXAyLW9ianMJCQk6PSBpcDJiYXNlLm8gaXAybWFpbi5vCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcDIvZmlwX2Zpcm0uaCBiL2RyaXZlcnMvY2hhci9pcDIvZmlwX2Zpcm0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGM1MjVmYS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2ZpcF9maXJtLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMTQ5ICswLDAgQEAKLS8qIGZpcF9maXJtLmggLSBJbnRlbGxpcG9ydCBJSSBsb2Fkd2FyZSAqLwotLyogLTMxMjMyIGJ5dGVzIHJlYWQgZnJvbSBmZi5sb2QgKi8KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgZmlwX2Zpcm1bXSBfX2luaXRkYXRhID0gewotMHgzQywweDQyLDB4MzcsMHgxOCwweDAyLDB4MDEsMHgwMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4NTcsMHg2NSwweDY0LDB4MjAsMHg0NCwweDY1LDB4NjMsMHgyMCwweDMwLDB4MzEsMHgyMCwweDMxLDB4MzIsMHgzQSwweDMyLDB4MzQsCi0weDNBLDB4MzMsMHgzMCwweDIwLDB4MzEsMHgzOSwweDM5LDB4MzksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHhFOSwweDZDLDB4MEYsMHg0MiwweDY1LDB4NDcsMHg2OSwweDRFLDB4NkUsMHg0OSwweDZFLDB4NDcsMHgyMCwweDZGLDB4NDYsMHgyMCwKLTB4NjMsMHg0RiwweDY0LDB4NDUsMHhDQywweDEzLDB4NUEsMHgxNSwweEU4LDB4MTYsMHg3NiwweDE4LDB4MDQsMHgxQSwweDkyLDB4MUIsCi0weDIwLDB4MUQsMHhBRSwweDFFLDB4M0MsMHgyMCwweENBLDB4MjEsMHg1OCwweDIzLDB4RTYsMHgyNCwweDc0LDB4MjYsMHgwMiwweDI4LAotMHg5MCwweDI5LDB4MUUsMHgyQiwweEFDLDB4MkMsMHgzQSwweDJFLDB4QzgsMHgyRiwweDU2LDB4MzEsMHhFNCwweDMyLDB4NzIsMHgzNCwKLTB4MDAsMHgzNiwweDhFLDB4MzcsMHgxQywweDM5LDB4QUEsMHgzQSwweDM4LDB4M0MsMHhDNiwweDNELDB4NTQsMHgzRiwweEUyLDB4NDAsCi0weDcwLDB4NDIsMHhGRSwweDQzLDB4OEMsMHg0NSwweDFBLDB4NDcsMHhBOCwweDQ4LDB4MzYsMHg0QSwweEM0LDB4NEIsMHg1MiwweDRELAotMHhFMCwweDRFLDB4NkUsMHg1MCwweEZDLDB4NTEsMHg4QSwweDUzLDB4MTgsMHg1NSwweEE2LDB4NTYsMHgzNCwweDU4LDB4QzIsMHg1OSwKLTB4NTAsMHg1QiwweERFLDB4NUMsMHg2QywweDVFLDB4RkEsMHg1RiwweDg4LDB4NjEsMHgxNiwweDYzLDB4QTQsMHg2NCwweDMyLDB4NjYsCi0weEMwLDB4NjcsMHg0RSwweDY5LDB4REMsMHg2QSwweDZBLDB4NkMsMHhGOCwweDZELDB4ODYsMHg2RiwweDE0LDB4NzEsMHhBMiwweDcyLAotMHgzMCwweDc0LDB4QkUsMHg3NSwweDRDLDB4NzcsMHg2QywweDc3LDB4OEMsMHg3NywweEFDLDB4NzcsMHgzMywweERCLDB4OEEsMHhEQywKLTB4NTMsMHgzMywweERCLDB4MjUsMHgwNywweDAwLDB4NzUsMHgwQSwweDhBLDB4MUUsMHgwOCwweDAxLDB4ODMsMHhFMywweDBDLDB4RUIsCi0weDIwLDB4OTAsMHgzQywweDAxLDB4NzUsMHgwQSwweDhBLDB4MUUsMHgwOCwweDAxLDB4ODAsMHhFMywweEMwLDB4RUIsMHgxMiwweDkwLAotMHg4QSwweDFFLDB4MEQsMHgwMSwweDNDLDB4MDIsMHg3NSwweDA2LDB4ODAsMHhFMywweDBDLDB4RUIsMHgwNCwweDkwLDB4ODAsMHhFMywKLTB4QzAsMHg1MywweDUwLDB4OEIsMHgxRSwweEJBLDB4MTMsMHg4RSwweERCLDB4RTgsMHg2QSwweDY1LDB4NTUsMHg4QiwweEVDLDB4NTMsCi0weDFFLDB4MkIsMHhDMCwweDhFLDB4RDgsMHg4QiwweDVFLDB4MDQsMHhDMSwweEUzLDB4MDQsMHgwMywweDVFLDB4MDYsMHhEMSwweEUzLAotMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4OEQsMHg0NywweDJBLDB4MUUsMHg1QSwweDFGLDB4NUIsMHg1RCwweEMzLDB4NTUsMHg4QiwKLTB4RUMsMHg1MywweDFFLDB4MkIsMHhDMCwweDhFLDB4RDgsMHg4QiwweDVFLDB4MDQsMHhDMSwweEUzLDB4MDQsMHgwMywweDVFLDB4MDYsCi0weEQxLDB4RTMsMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4OEQsMHg0NywweDM0LDB4MUUsMHg1QSwweDFGLDB4NUIsMHg1RCwweEMzLAotMHhGQiwweDU1LDB4OEIsMHhFQywweDUzLDB4NTEsMHg1MiwweDU2LDB4NTcsMHgxRSwweDA2LDB4MUUsMHgwNywweDMzLDB4QzAsMHg4RSwKLTB4RDgsMHg4QiwweDVFLDB4MDQsMHgyNiwweDhBLDB4NDcsMHg1OSwweDI1LDB4MDMsMHgwMCwweDhCLDB4RjAsMHhEMSwweEU2LDB4MkUsCi0weDhCLDB4QjQsMHhDNCwweDAwLDB4QzEsMHhFMCwweDA0LDB4MjYsMHgwMiwweDQ3LDB4MUEsMHhEMSwweEUwLDB4OEIsMHhFOCwweDJFLAotMHg4QiwweEFFLDB4NDQsMHgwMCwweDg5LDB4MkMsMHgyNiwweDhBLDB4NDcsMHgxQywweDg4LDB4NDQsMHgwRiwweDI2LDB4OEEsMHg0NywKLTB4MUQsMHg4OCwweDQ0LDB4MTAsMHgyNiwweDhBLDB4NDcsMHgxRSwweDg4LDB4NDQsMHgxMSwweDI2LDB4OEEsMHg0NywweDFGLDB4ODgsCi0weDQ0LDB4MTIsMHgyNiwweDhBLDB4NDcsMHgyMCwweDg4LDB4NDQsMHgxMywweDI2LDB4OEEsMHg0NywweDIzLDB4ODgsMHg0NCwweDE0LAotMHgyNiwweDhBLDB4NDcsMHgyNCwweDg4LDB4NDQsMHgxNSwweDI2LDB4OEEsMHg0NywweDVBLDB4ODgsMHg0NCwweDBFLDB4MzMsMHhDMCwKLTB4ODksMHg0NCwweDA2LDB4ODksMHg0NCwweDA4LDB4ODgsMHg0NCwweDBCLDB4ODgsMHg0NCwweDBBLDB4QjAsMHgyMSwweEI0LDB4NjQsCi0weDg5LDB4NDQsMHgwNCwweDg5LDB4NDQsMHgwMiwweEIwLDB4NTUsMHg4OCwweDQ0LDB4MEQsMHg4OCwweDQ0LDB4MEMsMHhFOCwweDZBLAotMHgwMCwweDcyLDB4NUIsMHhFOCwweEM5LDB4MDAsMHhFOCwweEMxLDB4MTAsMHg4OSwweDQ0LDB4MDgsMHg4MCwweDdDLDB4MEYsMHgwMSwKLTB4NzQsMHgyOSwweEU4LDB4MkIsMHgwMiwweEU4LDB4N0YsMHgwMiwweDgwLDB4N0MsMHgwRiwweDAzLDB4NzQsMHgxRCwweEU4LDB4QTksCi0weDEwLDB4OEIsMHhGOCwweDJCLDB4NDQsMHgwOCwweDNELDB4QTAsMHgwRiwweDcyLDB4MTAsMHg4OSwweDdDLDB4MDgsMHgzMywweEMwLAotMHg4NywweDQ0LDB4MDYsMHg4NSwweEMwLDB4NzUsMHgwNCwweEM2LDB4NDQsMHgwQSwweEZGLDB4OEEsMHg0NCwweDBBLDB4ODQsMHhDMCwKLTB4NzUsMHgwQiwweEI4LDB4MDgsMHgwMCwweEU4LDB4NkEsMHg0QSwweEU4LDB4QTksMHgwMSwweDczLDB4QkYsMHhFOCwweDRGLDB4MDEsCi0weDgxLDB4NjYsMHg0OCwweDdGLDB4RkYsMHg4MywweDY2LDB4N0EsMHhCRiwweEIwLDB4MDIsMHhFOCwweDA0LDB4MEUsMHg4QSwweDQ0LAotMHgwQSwweDk4LDB4MDcsMHgxRiwweDVGLDB4NUUsMHg1QSwweDU5LDB4NUIsMHg1RCwweEMzLDB4ODEsMHg0RSwweDQ4LDB4ODAsMHgwMCwKLTB4QjAsMHg0MCwweEU4LDB4M0QsMHg0QSwweEU4LDB4ODksMHg0MCwweDczLDB4MkEsMHhFOCwweDRELDB4MTAsMHg4QiwweEQ4LDB4QjAsCi0weDA1LDB4RTgsMHgyRSwweDRBLDB4RjYsMHg0NiwweDI3LDB4MDIsMHg3NSwweDFBLDB4RTgsMHgzRCwweDEwLDB4MkIsMHhDMywweDNELAotMHg1OCwweDFCLDB4NzIsMHhFQiwweDgxLDB4NjYsMHg0OCwweDdGLDB4RkYsMHhCMCwweDAyLDB4RTgsMHhDNCwweDBELDB4QzYsMHg0NCwKLTB4MEEsMHgwMSwweEY5LDB4QzMsMHg4MywweDRFLDB4N0EsMHg0MCwweEY4LDB4QzMsMHhGQiwweEIwLDB4MDEsMHhFOCwweDAyLDB4NEEsCi0weEZBLDB4RTgsMHg5OSwweDFFLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweEYwLDB4QjAsMHg0RSwweEU2LDB4MEEsMHhGQiwweEIwLAotMHgwMSwweEU4LDB4RUUsMHg0OSwweEZBLDB4RTgsMHg4NSwweDFFLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweEYwLDB4QzMsMHhGQSwKLTB4RTgsMHg3QSwweDFFLDB4RTQsMHhFQywweDg4LDB4NDQsMHgxNiwweEU0LDB4RTQsMHg4OCwweDQ0LDB4MTcsMHhFNCwweEY4LDB4ODgsCi0weDQ0LDB4MTgsMHhFNCwweEYwLDB4ODgsMHg0NCwweDE5LDB4RTQsMHgxMCwweDg4LDB4NDQsMHgxQSwweEU0LDB4MTIsMHg4OCwweDQ0LAotMHgxQiwweEU0LDB4MTQsMHg4OCwweDQ0LDB4MUMsMHhFNCwweDM0LDB4ODgsMHg0NCwweDFELDB4RTQsMHgzNiwweDg4LDB4NDQsMHgxRSwKLTB4RTQsMHhEOCwweDI0LDB4MDEsMHg4QSwweEUwLDB4RTQsMHhEQSwweDI0LDB4MDIsMHgwQSwweEM0LDB4ODgsMHg0NCwweDFGLDB4OEEsCi0weDQ0LDB4MTAsMHhFOCwweENELDB4MUYsMHg4QSwweDQ0LDB4MTEsMHhFOCwweDM1LDB4MjEsMHg4QSwweDQ0LDB4MTIsMHhFOCwweDg5LAotMHgyMSwweDhBLDB4NDQsMHgxMywweEU4LDB4NDMsMHgyMSwweEM2LDB4ODYsMHhBMSwweDAwLDB4MDAsMHhFNCwweDE0LDB4MjQsMHgxMCwKLTB4RTYsMHgxNCwweEU0LDB4MTIsMHgyNCwweDNELDB4RTYsMHgxMiwweDhBLDB4NDQsMHgxNSwweDNDLDB4MDEsMHg3MiwweDFFLDB4NzcsCi0weDE2LDB4QjAsMHgxMSwweEU2LDB4MzQsMHhCMCwweDEzLDB4RTYsMHgzNiwweEU0LDB4MTQsMHgwQywweDEwLDB4RTYsMHgxNCwweEU0LAotMHgxMiwweDBDLDB4NDAsMHhFNiwweDEyLDB4RUIsMHgwNiwweEU0LDB4MTIsMHgwQywweDAyLDB4RTYsMHgxMiwweDhBLDB4NDQsMHgwRiwKLTB4M0MsMHgwMSwweDc0LDB4MDYsMHgzQywweDAyLDB4NzQsMHgwQSwweEVCLDB4MEUsMHhFNCwweDEyLDB4MEMsMHgwOCwweEU2LDB4MTIsCi0weEVCLDB4MDYsMHhFNCwweDEyLDB4MEMsMHgxMCwweEU2LDB4MTIsMHhFOCwweDJGLDB4RkYsMHg4QSwweDQ0LDB4MTQsMHgzQywweDAyLAotMHg3NSwweDA4LDB4QjAsMHg1NSwweDg4LDB4NDQsMHgwQywweDg4LDB4NDQsMHgwRCwweEIwLDB4MjEsMHhCNCwweDY0LDB4ODksMHg0NCwKLTB4MDQsMHg4OSwweDQ0LDB4MDIsMHhFNCwweDBDLDB4MEMsMHgxMCwweEU2LDB4MEMsMHhFOCwweEVELDB4MzksMHhGQiwweEMzLDB4RTgsCi0weDVGLDB4M0YsMHg3MywweDA4LDB4RkIsMHhCMCwweDBBLDB4RTgsMHgwOCwweDQ5LDB4RUIsMHhGMywweEZBLDB4RTgsMHg5RCwweDFELAotMHg4QSwweDY0LDB4MTYsMHg4QSwweDQ0LDB4MTcsMHg4OSwweDg2LDB4OTQsMHgwMCwweEU2LDB4RTQsMHg4QSwweEM0LDB4RTYsMHhFQywKLTB4OEEsMHg2NCwweDE4LDB4OEEsMHg0NCwweDE5LDB4ODksMHg4NiwweDk2LDB4MDAsMHhFNiwweEYwLDB4OEEsMHhDNCwweEU2LDB4RjgsCi0weDhBLDB4NDQsMHgxQSwweEU2LDB4MTAsMHg4QSwweDQ0LDB4MUIsMHhFNiwweDEyLDB4OEEsMHg0NCwweDFDLDB4RTYsMHgxNCwweDhBLAotMHg0NCwweDFELDB4RTYsMHgzNCwweDhBLDB4NDQsMHgxRSwweEU2LDB4MzYsMHg4QSwweDQ0LDB4MUYsMHhFNiwweEQ4LDB4RTYsMHhEQSwKLTB4RTksMHhCNywweEZFLDB4OTAsMHhGQSwweDhBLDB4NDQsMHgwRSwweEU2LDB4RkUsMHhFNCwweDAyLDB4QTgsMHgwMSwweDc1LDB4MDUsCi0weDMzLDB4QzAsMHhGQiwweEY4LDB4QzMsMHgzMywweEMwLDB4RTQsMHgwMCwweEZCLDB4RjksMHhDMywweDhBLDB4NjQsMHgxNCwweDgwLAotMHhGQywweDAyLDB4NzQsMHgyQiwweEZFLDB4QzAsMHhGRSwweEM3LDB4ODAsMHhGRiwweDRFLDB4NzIsMHgxQywweDc0LDB4MDksMHg4MCwKLTB4RkYsMHg1MCwweDczLDB4MDgsMHhCMCwweDBBLDB4RUIsMHgxNywweEIwLDB4MEQsMHhFQiwweDEzLDB4MDIsMHhEQywweDMyLDB4RkYsCi0weDgwLDB4RkIsMHg3RiwweDdDLDB4MDIsMHhCMywweDIxLDB4OEEsMHhDMywweDNDLDB4N0YsMHg3QywweDAyLDB4QjAsMHgyMSwweEMzLAotMHhGQSwweDgwLDB4N0MsMHgwQiwweDA0LDB4NzYsMHgwMiwweEZCLDB4QzMsMHg4QiwweDQ2LDB4MjQsMHgzRCwweDA4LDB4MDAsMHg3MiwKLTB4RjYsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4QSwweDQ0LDB4MEMsMHg4QiwweDVDLDB4MDIsMHhBQSwweEU4LDB4QUIsCi0weEZGLDB4QUEsMHhFOCwweEE3LDB4RkYsMHhBQSwweEU4LDB4QTMsMHhGRiwweEFBLDB4RTgsMHg5RiwweEZGLDB4ODgsMHg0NCwweDBDLAotMHg4OSwweDVDLDB4MDIsMHg4MCwweDQ0LDB4MEIsMHgwNCwweDg5LDB4N0UsMHgyMiwweDgzLDB4NkUsMHgyNCwweDA0LDB4ODMsMHg0NiwKLTB4MUEsMHgwNCwweDgwLDB4N0UsMHgyNiwweDAyLDB4NzQsMHgwNiwweDgwLDB4NjYsMHgyNiwweEZELDB4RkIsMHhDMywweDYwLDB4QjAsCi0weEZELDB4RTgsMHgwMiwweDNGLDB4NjEsMHhGQiwweEMzLDB4RkEsMHg4MCwweDdDLDB4MEYsMHgwMywweDc1LDB4MDksMHhDNiwweDQ0LAotMHgwQiwweDAwLDB4RTgsMHhFNSwweDM4LDB4RkIsMHhDMywweEM0LDB4N0UsMHgxNCwweDhCLDB4NEUsMHgzQSwweDg1LDB4QzksMHg3NSwKLTB4MzUsMHgyNiwweDhCLDB4MEQsMHg0NywweDQ3LDB4RTMsMHhFQSwweDNCLDB4N0UsMHgwNCwweDc2LDB4MjIsMHhCOCwweDAyLDB4MDAsCi0weDM5LDB4NDYsMHgyRSwweDc3LDB4MDcsMHhDNywweDQ2LDB4MkUsMHgwMCwweDAwLDB4RUIsMHgxMywweDhCLDB4NUUsMHgyQywweDg5LAotMHg1RSwweDA0LDB4MjYsMHhDNywweDA3LDB4MDAsMHgwMCwweDQzLDB4NDMsMHg4OSwweDVFLDB4MkMsMHgyOSwweDQ2LDB4MkUsMHg4NSwKLTB4QzksMHg3OCwweENFLDB4ODksMHg0RSwweDNBLDB4OEEsMHg0NCwweDBELDB4OEIsMHg1QywweDA0LDB4MjYsMHg4QSwweDI1LDB4NDcsCi0weDNBLDB4QzQsMHg3NSwweDE2LDB4RkUsMHg0QywweDBCLDB4RkYsMHg0NCwweDA2LDB4RTgsMHgwRiwweEZGLDB4RTIsMHhFRCwweDg4LAotMHg0NCwweDBELDB4ODksMHg1QywweDA0LDB4ODksMHg0RSwweDNBLDB4RUIsMHhBNywweEM2LDB4NDQsMHgwQSwweEZFLDB4RTgsMHg3OSwKLTB4MzgsMHhGQiwweEMzLDB4OTAsMHhFOCwweEIzLDB4MEQsMHg4QSwweEU4LDB4OEEsMHgwRSwweENCLDB4MTMsMHhCMywweDA3LDB4OEEsCi0weEMxLDB4RUUsMHhFQiwweDAwLDB4RUMsMHgzQSwweEMxLDB4NzUsMHgwOSwweDAyLDB4Q0QsMHhGRSwweENCLDB4NzUsMHhGMCwweEVCLAotMHgwQywweDkwLDB4ODgsMHgwRSwweENCLDB4MTMsMHg4QSwweEU4LDB4QkIsMHhGRiwweEZGLDB4RjksMHhDMywweDg4LDB4MEUsMHhDQiwKLTB4MTMsMHhGOCwweEMzLDB4OTAsMHhCQiwweDNGLDB4M0YsMHg4QSwweDhFLDB4OUUsMHgwMCwweEJBLDB4RkUsMHgwMCwweEVDLDB4OEEsCi0weEU4LDB4MzIsMHhDMSwweDIyLDB4QzMsMHg3NSwweDAyLDB4RjgsMHhDMywweEY5LDB4QzMsMHg5MCwweEU4LDB4RTUsMHhGRiwweDczLAotMHgwMSwweEMzLDB4QkEsMHhEMCwweDAwLDB4QkIsMHgwMywweDAzLDB4OEEsMHg4RSwweDlGLDB4MDAsMHhFQywweDhBLDB4RTgsMHgzMiwKLTB4QzEsMHgyMiwweEMzLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4OTAsMHgzMywweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsCi0weDgwLDB4M0UsMHhDOCwweDEzLDB4MDAsMHg3NSwweDA3LDB4QjAsMHgwQSwweEU4LDB4MjYsMHg0NywweEVCLDB4RjIsMHhGQiwweDMzLAotMHhEQiwweDhBLDB4MUUsMHhDOSwweDEzLDB4NDMsMHg0MywweDgzLDB4RkIsMHg3RSwweDc2LDB4MDcsMHgzMywweERCLDB4QjAsMHgwMiwKLTB4RTgsMHgwRiwweDQ3LDB4MkUsMHg4QiwweEFGLDB4NDQsMHgwMCwweDgzLDB4N0UsMHgwOCwweDAwLDB4NzQsMHhFNywweDg4LDB4MUUsCi0weEM5LDB4MTMsMHhCMCwweDAyLDB4RTgsMHhGQiwweDQ2LDB4RkEsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgxNCwweEU4LAotMHg5NiwweDFCLDB4RTgsMHg3RiwweEZGLDB4NzIsMHgxQywweDMzLDB4RDIsMHg4QSwweDk2LDB4OUYsMHgwMCwweDgzLDB4QzIsMHgwRSwKLTB4RUIsMHgwQywweDkwLDB4RTgsMHg3NywweDFCLDB4RTgsMHg4MywweEZGLDB4NzIsMHgwOCwweEJBLDB4NDgsMHgwMCwweEU4LDB4MzMsCi0weEZGLDB4NzMsMHhBQiwweDIzLDB4Q0IsMHg4OSwweDhFLDB4OUEsMHgwMCwweDg5LDB4OTYsMHg5QywweDAwLDB4RkUsMHg4NiwweEI1LAotMHgwMCwweEM2LDB4MDYsMHhDOCwweDEzLDB4MDAsMHhCMCwweDBBLDB4RTgsMHg2NywweDBBLDB4RkIsMHhFQiwweDg5LDB4MTAsMHgxOCwKLTB4MDgsMHgyOCwweDMzLDB4QzAsMHhBMCwweDA1LDB4MDEsMHg4QSwweEM4LDB4MjQsMHg0MCwweDc1LDB4MjQsMHhDNywweDA2LDB4N0MsCi0weDEyLDB4OEUsMHg0NSwweEM3LDB4MDYsMHg0MiwweDEyLDB4MDEsMHgwMCwweEM2LDB4MDYsMHg1NCwweDEyLDB4MDIsMHhCMCwweDA4LAotMHhGNiwweEMxLDB4MDEsMHg3NCwweDAyLDB4QjAsMHgwNCwweEEzLDB4NDYsMHgxMiwweEEyLDB4NEMsMHgxMiwweEEyLDB4OTQsMHgxMiwKLTB4QzMsMHhDNywweDA2LDB4N0MsMHgxMiwweEI2LDB4NDUsMHhBMCwweDBGLDB4MDEsMHg4NCwweEMwLDB4NzUsMHgwRSwweDZBLDB4MDAsCi0weDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxRSwweDlDLDB4MEUsMHhFOCwweEIxLDB4MEMsMHg5MCwweEM3LDB4MDYsMHg0NCwweDEyLAotMHgwMSwweDAwLDB4QTMsMHg0MiwweDEyLDB4OEIsMHhEOCwweEMxLDB4RTMsMHgwNCwweDg4LDB4MUUsMHg5NCwweDEyLDB4QkUsMHhFMiwKLTB4MDUsMHgyQiwweEYwLDB4OEIsMHhDOCwweDMzLDB4REIsMHg4QiwweEZCLDB4MkUsMHhBQywweDg4LDB4ODUsMHg0OCwweDEyLDB4OEEsCi0weEQ4LDB4MEMsMHgwNSwweEU2LDB4RkUsMHg4QSwweEUwLDB4RUIsMHgwMCwweEU0LDB4RkUsMHgzMiwweEM0LDB4QTgsMHgzRiwweDc0LAotMHgwMywweEU5LDB4OUUsMHgwMCwweEU0LDB4MDAsMHg4OCwweDg1LDB4NTAsMHgxMiwweDhBLDB4RTAsMHgyNCwweDMwLDB4QkEsMHgxMCwKLTB4RkYsMHgzQywweDMwLDB4NzQsMHgxMiwweDgwLDB4RkMsMHgwNCwweDc0LDB4MEEsMHhCQSwweDA0LDB4MDMsMHhGNiwweDA2LDB4MDgsCi0weDAxLDB4RkUsMHg3NCwweDAzLDB4QkEsMHgwOCwweDBGLDB4ODgsMHg5NSwweDRDLDB4MTIsMHgwMiwweEZBLDB4MzIsMHhDMCwweEY2LAotMHhDNCwweDA4LDB4NzQsMHgwMiwweEIwLDB4MDEsMHg4OCwweDg1LDB4NTgsMHgxMiwweDhBLDB4QzQsMHgzQywweDM1LDB4NzQsMHg1QiwKLTB4M0MsMHgzNiwweDc0LDB4NTcsMHgzQywweDM0LDB4NzQsMHg1MywweDNDLDB4MDQsMHg3NCwweDRGLDB4M0MsMHgxNCwweDc0LDB4NEIsCi0weDNDLDB4MTUsMHg3NCwweDQ3LDB4QTgsMHg0MCwweDc0LDB4MjUsMHhDNiwweDg1LDB4NTQsMHgxMiwweDA0LDB4RDEsMHhFNywweEI0LAotMHgwMywweDhBLDB4QzMsMHg4OSwweDg1LDB4NUMsMHgxMiwweDhBLDB4QzMsMHg4QSwweEUzLDB4ODAsMHhDQywweDAxLDB4ODksMHg4NSwKLTB4NjQsMHgxMiwweEQxLDB4RUYsMHg0NywweEUyLDB4MDMsMHhFQiwweDFBLDB4OTAsMHhFOSwweDZDLDB4RkYsMHhDNiwweDg1LDB4NTQsCi0weDEyLDB4MDIsMHhEMSwweEU3LDB4OEEsMHhFNiwweDhBLDB4QzMsMHgwQywweDA0LDB4ODksMHg4NSwweDVDLDB4MTIsMHhEMSwweEVGLAotMHg0NywweEUyLDB4RTcsMHgzMywweEMwLDB4OEEsMHhDNywweEEzLDB4NDYsMHgxMiwweEMzLDB4QzYsMHg4NSwweDU0LDB4MTIsMHgwNiwKLTB4RUIsMHhCQiwweEM2LDB4ODUsMHg1NCwweDEyLDB4MDAsMHgzMywweEMwLDB4ODgsMHg4NSwweDUwLDB4MTIsMHg4OCwweDg1LDB4NEMsCi0weDEyLDB4ODgsMHg4NSwweDU4LDB4MTIsMHhFQiwweEE2LDB4QzcsMHg0NiwweDI2LDB4MDIsMHgxMiwweDhCLDB4NDYsMHgxRSwweDg5LAotMHg0NiwweDAwLDB4ODksMHg0NiwweDIyLDB4OEIsMHg0NiwweDIwLDB4ODksMHg0NiwweDI0LDB4QzcsMHg0NiwweDFBLDB4MDAsMHgwMCwKLTB4QzMsMHhDNywweDQ2LDB4M0MsMHg4MCwweDAwLDB4QzcsMHg0NiwweDM4LDB4MDEsMHgwMCwweDFFLDB4NTYsMHg4QiwweDc2LDB4MzAsCi0weDg5LDB4NzYsMHgwNCwweDg5LDB4NzYsMHgxNCwweDhFLDB4NUUsMHgwNiwweDMzLDB4QzAsMHg4OSwweDA0LDB4NDYsMHg0NiwweDg5LAotMHg3NiwweDJDLDB4ODksMHg0NiwweDNBLDB4OEIsMHg0NiwweDMyLDB4NDgsMHg0OCwweDg5LDB4NDYsMHgyRSwweDVFLDB4MUYsMHhDMywKLTB4MzMsMHhDMCwweDg5LDB4NDYsMHg0OCwweDg5LDB4NDYsMHg0QSwweEM3LDB4NDYsMHg0NiwweEFFLDB4MDEsMHg4OSwweDQ2LDB4NEUsCi0weDhCLDB4NDYsMHg0NCwweDg5LDB4NDYsMHg1MCwweDhCLDB4NDYsMHg0MiwweDg5LDB4NDYsMHg0MCwweDg5LDB4NDYsMHgwOCwweEMzLAotMHgzMywweEMwLDB4ODksMHg0NiwweDc2LDB4ODksMHg0NiwweDc4LDB4QzcsMHg0NiwweDdBLDB4MTAsMHgwMCwweDU2LDB4MUUsMHg4QiwKLTB4NzYsMHg3MCwweDg5LDB4NzYsMHgxMCwweDg5LDB4NzYsMHgwQywweDhFLDB4NUUsMHgxMiwweEM3LDB4MDQsMHgwMCwweDAwLDB4OEIsCi0weDQ2LDB4NzIsMHg4OSwweDQ2LDB4NzQsMHgxRiwweDVFLDB4QzMsMHg4OSwweDU2LDB4MTgsMHg4OSwweDU2LDB4MDIsMHg4OSwweDU2LAotMHgwNiwweDg5LDB4NTYsMHgwQSwweDg5LDB4NTYsMHgwRSwweDg5LDB4NTYsMHgxMiwweDg5LDB4NTYsMHgxNiwweDhCLDB4RDgsMHg0QiwKLTB4NEIsMHhDMSwweEUzLDB4MDIsMHhCRiwweDAyLDB4MDAsMHg4OSwweDdFLDB4MUUsMHgwMywweEZCLDB4ODksMHg3RSwweDMwLDB4MDMsCi0weEZCLDB4ODksMHg3RSwweDQyLDB4MDMsMHhGQiwweDg5LDB4N0UsMHg3MCwweDgzLDB4RUIsMHgwOCwweDg5LDB4NUUsMHgyMCwweDg5LAotMHg1RSwweDMyLDB4ODksMHg1RSwweDQ0LDB4ODksMHg1RSwweDcyLDB4NTAsMHhFOCwweDJCLDB4RkYsMHhFOCwweDcxLDB4RkYsMHhFOCwKLTB4M0YsMHhGRiwweEU4LDB4OEIsMHhGRiwweDU4LDB4QzMsMHhCOCwweDMwLDB4NzUsMHhDMSwweEU4LDB4MDQsMHgwRSwweDVCLDB4MDMsCi0weEMzLDB4QTMsMHhCQSwweDEzLDB4ODMsMHgzRSwweDQyLDB4MTIsMHgwMCwweDc0LDB4MDcsMHg4MCwweDNFLDB4OTQsMHgxMiwweDAwLAotMHg3NSwweDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxRSwweDlDLDB4MEUsMHhFOCwweEJELDB4MEEsMHg5MCwKLTB4QjgsMHgzMCwweDdBLDB4QzEsMHhFOCwweDA0LDB4NDAsMHhBMywweEMwLDB4MTMsMHgyQiwweDA2LDB4MTIsMHgwMSwweEY3LDB4RDgsCi0weDMzLDB4RDIsMHg4QiwweENBLDB4OEEsMHgwRSwweDk0LDB4MTIsMHhGNywweEYxLDB4M0QsMHg4MCwweDAwLDB4NzcsMHgwRSwweDZBLAotMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgyNSwweDlDLDB4MEUsMHhFOCwweDkwLDB4MEEsMHg5MCwweDQ4LDB4M0QsMHhGRiwKLTB4MDcsMHg3MiwweDAzLDB4QjgsMHhGRiwweDA3LDB4QTMsMHhDMiwweDEzLDB4MzMsMHhDOSwweDhBLDB4MEUsMHg5NCwweDEyLDB4MzMsCi0weEY2LDB4QjgsMHgwMCwweDA5LDB4MkUsMHg4QiwweEFDLDB4NDQsMHgwMCwweDg5LDB4NDYsMHg0QywweDQwLDB4NDYsMHg0NiwweEUyLAotMHhGMywweDhBLDB4MEUsMHg5NCwweDEyLDB4MzMsMHhGNiwweDhCLDB4MTYsMHhDMCwweDEzLDB4QTEsMHhDMiwweDEzLDB4MkUsMHg4QiwKLTB4QUMsMHg0NCwweDAwLDB4RTgsMHgyMiwweEZGLDB4MDMsMHhEMCwweDQ2LDB4NDYsMHhFMiwweEYyLDB4QzMsMHgzMywweEMwLDB4MkUsCi0weDhCLDB4QUQsMHg0NCwweDAwLDB4ODksMHg0NiwweDA4LDB4NDcsMHg0NywweEUyLDB4RjQsMHhDMywweDUxLDB4MzMsMHhDMCwweDBBLAotMHhDMiwweDJFLDB4OEIsMHhBRCwweDQ0LDB4MDAsMHg4OSwweDg2LDB4OUUsMHgwMCwweDgxLDB4NEUsMHgzOCwweDAwLDB4MjAsMHg0NywKLTB4NDcsMHhGRSwweEM0LDB4ODAsMHhGQywweDA0LDB4NzIsMHgwNCwweDMyLDB4RTQsMHhGRSwweEMwLDB4RTIsMHhFMywweDU5LDB4ODMsCi0weEU5LDB4MTAsMHg3NCwweDA1LDB4RjcsMHhEOSwweEU4LDB4QzQsMHhGRiwweEMzLDB4NTEsMHgzMywweEMwLDB4MEEsMHhDMiwweDJFLAotMHg4QiwweEFELDB4NDQsMHgwMCwweDg5LDB4ODYsMHg5RSwweDAwLDB4ODMsMHg0RSwweDM4LDB4NDAsMHg0NywweDQ3LDB4ODAsMHhDNCwKLTB4MTAsMHg3OSwweDA0LDB4MzIsMHhFNCwweEZFLDB4QzAsMHhFMiwweEU2LDB4NTksMHg4MywweEU5LDB4MTAsMHg3NCwweDA1LDB4RjcsCi0weEQ5LDB4RTgsMHg5OSwweEZGLDB4QzMsMHhFOCwweEQyLDB4RkYsMHhDMywweDhELDB4MDgsMHg5QywweDA4LDB4Q0EsMHgwOCwweEY1LAotMHgwOCwweDhCLDB4MEUsMHg0MiwweDEyLDB4MzMsMHhGNiwweDUxLDB4NTYsMHgzMywweERCLDB4OEIsMHhDQiwweDhBLDB4OTQsMHg0OCwKLTB4MTIsMHg4QSwweDhDLDB4NEMsMHgxMiwweDhBLDB4OUMsMHg1NCwweDEyLDB4OEIsMHhGRSwweEMxLDB4RTcsMHgwNSwweDg1LDB4REIsCi0weDc1LDB4MDIsMHhCMSwweDEwLDB4MkUsMHhGRiwweDk3LDB4RjksMHgwOCwweDVFLDB4NTksMHg0NiwweEUyLDB4RDksMHhDMywweDAxLAotMHhDQywweDAzLDB4RDAsMHgwMCwweEU4LDB4MDIsMHhEMCwweDAwLDB4RTgsMHgwMSwweEQwLDB4MDAsMHhFOCwweDAwLDB4RDAsMHgwMCwKLTB4RTgsMHgwNCwweEQwLDB4QTgsMHhEQSwweDAwLDB4REMsMHgwMCwweERFLDB4MDEsMHhEOCwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsCi0weENDLDB4MDQsMHhEMCwweEE4LDB4REEsMHgyMCwweERDLDB4MDAsMHhERSwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAwLAotMHhEOCwweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywKLTB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsMHhDQywweDAzLDB4Q0MsMHgwMywweENDLDB4MDMsCi0weENDLDB4MDQsMHhEMCwweDAwLDB4REEsMHgyMCwweERDLDB4MDMsMHhERSwweDAxLDB4RDgsMHgwMywweENDLDB4MDMsMHhDQywweDAzLAotMHhDQywweDAzLDB4Q0MsMHgwMCwweEQ4LDB4MDAsMHhDQywweDAwLDB4RDAsMHgwMCwweDAwLDB4NTYsMHg1MiwweDFFLDB4MEUsMHgxRiwKLTB4QkUsMHgyRiwweDA5LDB4MzMsMHhEMiwweEZDLDB4QUQsMHg4NSwweEMwLDB4NzQsMHgwRCwweDhBLDB4RDQsMHhFRSwweEFELDB4ODUsCi0weEMwLDB4NzQsMHgwNSwweDhBLDB4RDQsMHhFRSwweEVCLDB4RUUsMHgxRiwweDVBLDB4NUUsMHhDMywweEU0LDB4ODAsMHg4NCwweEMwLAotMHg3NCwweDE2LDB4NzgsMHgxNCwweEIwLDB4MjcsMHhFNiwweEZDLDB4QjAsMHgxMSwweEU2LDB4MzQsMHhFNCwweEZDLDB4M0MsMHgyNywKLTB4NzUsMHgwNiwweEU0LDB4MTEsMHg3NSwweDAyLDB4RjgsMHhDMywweEY5LDB4QzMsMHg4MywweEMyLDB4MDYsMHhCMCwweEJGLDB4RUUsCi0weDgzLDB4RUEsMHgwMiwweEIwLDB4MTAsMHhFRSwweDg4LDB4ODYsMHhBRiwweDAwLDB4QjAsMHgxMSwweDgzLDB4QzIsMHgwNCwweEVFLAotMHg4MywweEMyLDB4MDIsMHhFRSwweEIwLDB4MTMsMHg4MywweEMyLDB4MDIsMHhFRSwweDgzLDB4QzIsMHgwMiwweEVFLDB4MkUsMHhBMSwKLTB4NEMsMHgyRCwweDg5LDB4ODYsMHg5NCwweDAwLDB4ODMsMHhFQSwweDBFLDB4RUUsMHg4MywweEMyLDB4MDIsMHg4QSwweEM0LDB4RUUsCi0weDgzLDB4QzIsMHgwNCwweEIwLDB4MDMsMHhFRSwweDg4LDB4ODYsMHhBOCwweDAwLDB4ODMsMHhFQSwweDA0LDB4MzIsMHhDMCwweEVFLAotMHg4MywweEMyLDB4MDIsMHhCMCwweDg5LDB4RUUsMHg4OCwweDg2LDB4QTYsMHgwMCwweDBDLDB4MDYsMHhFRSwweEIwLDB4NDAsMHhCNCwKLTB4MzgsMHg4OSwweDQ2LDB4MUMsMHhDNywweDQ2LDB4MzYsMHgzOCwweDAwLDB4ODMsMHhDMiwweDA0LDB4MzIsMHhDMCwweEVFLDB4ODgsCi0weDg2LDB4QTcsMHgwMCwweEMzLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLDB4ODMsMHhFQSwweDAyLDB4RUMsMHgzQSwweDg2LAotMHhBRiwweDAwLDB4NzUsMHgyNCwweDgzLDB4QzIsMHgwNCwweEVDLDB4M0MsMHgxMSwweDc1LDB4MUMsMHg4MywweEMyLDB4MDYsMHhFQywKLTB4M0MsMHgxMywweDc1LDB4MTQsMHg4MywweEVBLDB4MDgsMHg4QSwweDg2LDB4QTgsMHgwMCwweEVFLDB4ODMsMHhFQSwweDAyLDB4RUMsCi0weDI0LDB4QzAsMHgzQywweEMwLDB4NzUsMHgwMiwweEY4LDB4QzMsMHhGOSwweEMzLDB4MzMsMHhDOSwweDhCLDB4RDEsMHg4QiwweEYxLAotMHg4QSwweDBFLDB4OTQsMHgxMiwweEMxLDB4RTksMHgwMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwKLTB4MjAsMHg3NCwweDBFLDB4OEEsMHg4NiwweDlFLDB4MDAsMHhFNiwweEZFLDB4MzIsMHhDMCwweEU2LDB4ODAsMHg0MiwweEU4LDB4RkEsCi0weEZFLDB4ODMsMHhDNiwweDA4LDB4RTIsMHhFMSwweDg1LDB4RDIsMHg3NCwweDAzLDB4RTgsMHgwNSwweDA4LDB4QzMsMHgzMywweEM5LAotMHg4QiwweEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwKLTB4NzQsMHgwNiwweEU4LDB4NzMsMHgxNiwweEU4LDB4MTIsMHhGRiwweDQ2LDB4NDYsMHhFMiwweEVBLDB4QzMsMHgzMywweEM5LDB4OEIsCi0weEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHhDMSwweEU5LDB4MDIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LAotMHgwMCwweDIwLDB4NzQsMHgxNiwweEU4LDB4NDYsMHgxNiwweEU4LDB4RDIsMHhGRSwweDczLDB4MEUsMHg2QSwweDAwLDB4MUYsMHhDNiwKLTB4MDYsMHg5MywweDEyLDB4MUMsMHg5QywweDBFLDB4RTgsMHhFMywweDA3LDB4OTAsMHg4MywweEM2LDB4MDgsMHhFMiwweEQ5LDB4QzMsCi0weDMzLDB4QzksMHg4QiwweEYxLDB4OEEsMHgwRSwweDk0LDB4MTIsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4RjcsMHg0NiwweDM4LAotMHg0MCwweDAwLDB4NzQsMHgxNiwweEU4LDB4MjEsMHgxNiwweEU4LDB4MkEsMHhGRiwweDczLDB4MEUsMHg2QSwweDAwLDB4MUYsMHhDNiwKLTB4MDYsMHg5MywweDEyLDB4MUMsMHg5QywweDBFLDB4RTgsMHhCMywweDA3LDB4OTAsMHg0NiwweDQ2LDB4RTIsMHhEQSwweEMzLDB4MEMsCi0weDAwLDB4MDAsMHgxMCwweDAwLDB4MTMsMHgxMiwweDAwLDB4MDAsMHgxNCwweDAwLDB4MjgsMHgzQywweDAwLDB4MUIsMHgzRSwweDAwLAotMHgwMCwweDJBLDB4MDAsMHgwMCwweDJDLDB4MDAsMHgwMCwweDQyLDB4MDAsMHgxNCwweEQ4LDB4MDAsMHgwMCwweERBLDB4MDAsMHgwMCwKLTB4MzQsMHgwMCwweDExLDB4MzYsMHgwMCwweDEzLDB4MzgsMHgwMCwweDExLDB4M0EsMHgwMCwweDEzLDB4MDAsMHgwMCwweDU2LDB4NTAsCi0weDUyLDB4QkUsMHgyRiwweDBCLDB4MkUsMHhBRCwweDg1LDB4QzAsMHg3NCwweDA2LDB4OTIsMHgyRSwweEFDLDB4RUUsMHhFQiwweEY0LAotMHg1QSwweDU4LDB4NUUsMHhDMywweDUzLDB4MkUsMHhBMSwweDYwLDB4MjIsMHhFNiwweEU0LDB4RTYsMHhGMCwweDhBLDB4QzQsMHhFNiwKLTB4RUMsMHhFNiwweEY4LDB4RTgsMHhEOCwweEZGLDB4QjAsMHg0QiwweEU2LDB4MTAsMHhCMCwweDUwLDB4RTYsMHgxMiwweEIwLDB4MzgsCi0weEU2LDB4MTQsMHhFOCwweEFFLDB4MTUsMHhCMCwweDQ2LDB4RTYsMHgwQSwweEU4LDB4QTcsMHgxNSwweEIwLDB4MUEsMHhFNiwweDBBLAotMHhFOCwweEEwLDB4MTUsMHhCMCwweDIyLDB4RTYsMHgwQSwweEU4LDB4OTksMHgxNSwweEU4LDB4RkQsMHgwNiwweDhCLDB4RDgsMHhFNCwKLTB4MTYsMHhBOCwweDA0LDB4NzUsMHgxOCwweEU4LDB4RjIsMHgwNiwweDJCLDB4QzMsMHgzRCwweDMyLDB4MDAsMHg3MiwweEYwLDB4NkEsCi0weDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDIzLDB4OUMsMHgwRSwweEU4LDB4MTAsMHgwNywweDkwLDB4RTgsMHhEQSwweDA2LAotMHgyQiwweEMzLDB4M0QsMHgyNCwweDAwLDB4NzcsMHgxQiwweEIwLDB4MzEsMHhFNiwweEZDLDB4NTYsMHg1MSwweDU1LDB4QjksMHgxMCwKLTB4MDAsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLDB4ODEsMHg0RSwweDM4LDB4ODAsMHgwMCwweDQ2LDB4NDYsMHhFMiwweEYyLDB4NUQsCi0weDU5LDB4NUUsMHhFOCwweDY5LDB4RkYsMHhFOCwweDRCLDB4MTUsMHhCMCwweDQ2LDB4RTYsMHgwQSwweEU4LDB4NDQsMHgxNSwweDVCLAotMHhDMywweDMzLDB4RjYsMHg4QiwweDBFLDB4NDIsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwKLTB4MjAsMHg3NCwweDA2LDB4RTgsMHgxNywweDE1LDB4RTgsMHg1QiwweEZGLDB4ODMsMHhDNiwweDIwLDB4RTIsMHhFOSwweEMzLDB4OEIsCi0weEMyLDB4MDUsMHgwNCwweDAwLDB4ODksMHg0NiwweDI4LDB4MkUsMHhBMSwweDRDLDB4MkQsMHg4OSwweDg2LDB4OEUsMHgwMCwweDg5LAotMHg4NiwweDkwLDB4MDAsMHg4OSwweDg2LDB4OTIsMHgwMCwweEM2LDB4ODYsMHhBMywweDAwLDB4MEEsMHhDNiwweDg2LDB4QzMsMHgwMCwKLTB4MDMsMHg1MiwweDgzLDB4QzIsMHgwNCwweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwNiwweEVFLDB4NUEsMHg4MywweEMyLDB4MDIsCi0weEIwLDB4MDUsMHhFRSwweDg4LDB4ODYsMHhBNSwweDAwLDB4QzMsMHhFOCwweDAzLDB4RkYsMHhFOCwweEU1LDB4MTQsMHhCMCwweDQyLAotMHhFNiwweDBBLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDYsMHgyRSwweEExLDB4OUMsMHgyMiwweEVCLDB4MDQsMHgyRSwKLTB4QTEsMHg2QywweDIyLDB4QzcsMHg0NiwweDFDLDB4MEMsMHgwMCwweDg5LDB4ODYsMHg5NCwweDAwLDB4ODksMHg4NiwweDk2LDB4MDAsCi0weDg5LDB4ODYsMHg4RSwweDAwLDB4ODksMHg4NiwweDkwLDB4MDAsMHg4OSwweDg2LDB4OTIsMHgwMCwweEU2LDB4RjAsMHhFNiwweEU0LAotMHg4QSwweEM0LDB4RTYsMHhGOCwweEU2LDB4RUMsMHhDNiwweDg2LDB4QzMsMHgwMCwweDAzLDB4RTgsMHhBNSwweDE0LDB4QjAsMHgxQSwKLTB4RTYsMHgwQSwweEIwLDB4MTAsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhDMywweDMzLDB4QzksMHg4QiwweEYxLDB4OEEsCi0weDBFLDB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgwNiwweEU4LAotMHg3NiwweDE0LDB4RTgsMHg1QSwweEZGLDB4NDYsMHg0NiwweEUyLDB4RUEsMHhDMywweDMzLDB4QzksMHg4QiwweEYxLDB4OEEsMHgwRSwKLTB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhGNywweDQ2LDB4MzgsMHgwMCwweDIwLDB4NzQsMHgwNiwweEU4LDB4NEMsCi0weDE0LDB4RTgsMHg3NCwweEZGLDB4NDYsMHg0NiwweEUyLDB4RUEsMHhDMywweDkwLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc1LAotMHgxNCwweEIwLDB4MDEsMHhCQSwweDA2LDB4MDEsMHhFRSwweDJBLDB4QzAsMHhFRSwweEIwLDB4MDIsMHhFRSwweEIwLDB4MDQsMHhFRSwKLTB4QjgsMHgwMCwweDAyLDB4RUIsMHgwRiwweEJBLDB4MDYsMHgwMSwweEIwLDB4NDAsMHhFRSwweEI4LDB4MDEsMHgwMCwweDhBLDB4MEUsCi0weDBFLDB4MDEsMHhEMywweEUwLDB4QTMsMHg4OCwweDEyLDB4QzMsMHhBMSwweDg4LDB4MTIsMHhBMywweDg0LDB4MTIsMHgyRCwweDIwLAotMHgwMCwweEEzLDB4OEEsMHgxMiwweDJELDB4MjAsMHgwMCwweEEzLDB4ODIsMHgxMiwweEM3LDB4MDYsMHg4NiwweDEyLDB4MjAsMHgwMCwKLTB4QzcsMHgwNiwweDgwLDB4MTIsMHgzMiwweDAwLDB4QzMsMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzQsMHg3NiwweDhCLDB4MEUsCi0weDQyLDB4MTIsMHgzMywweEY2LDB4OEEsMHhBNCwweDU0LDB4MTIsMHg4NCwweEU0LDB4NzQsMHg1RiwweDhBLDB4ODQsMHg0OCwweDEyLAotMHgwQywweDA0LDB4RTYsMHhGRSwweEY2LDB4QzQsMHgwNCwweDc0LDB4MjUsMHhCMCwweDFCLDB4QkEsMHgwMCwweDAwLDB4RUUsMHhFQiwKLTB4MDAsMHgyQSwweEMwLDB4QkEsMHgwMiwweDAwLDB4RUUsMHhFQiwweDAwLDB4QjAsMHgwMywweEVFLDB4RUIsMHgwMCwweDMyLDB4QzAsCi0weEJBLDB4MDIsMHgwMCwweEVFLDB4RUIsMHgwMCwweEJBLDB4MDAsMHgwMCwweEIwLDB4MDAsMHhFRSwweEVCLDB4MkQsMHhCMCwweDFGLAotMHhCQSwweDAwLDB4MDAsMHhFRSwweEVCLDB4MDAsMHgyQSwweEMwLDB4QkEsMHgwMiwweDAwLDB4RUUsMHhFQiwweDAwLDB4QjAsMHgwMywKLTB4RUUsMHhFQiwweDAwLDB4RDEsMHhFNiwweDhBLDB4ODQsMHg1RCwweDEyLDB4RDEsMHhFRSwweEY2LDB4RDAsMHhCQSwweDAyLDB4MDAsCi0weEVFLDB4RUIsMHgwMCwweEJBLDB4MDAsMHgwMCwweEIwLDB4MEEsMHhFRSwweEVCLDB4MDAsMHhFNCwweDA0LDB4RUIsMHgwMCwweEU0LAotMHgwNCwweDQ2LDB4RTIsMHg5MCwweEMzLDB4OTAsMHhCOCwweDE0LDB4MDAsMHhCQSwweDNFLDB4RkYsMHhFRiwweEI4LDB4MDYsMHgwMCwKLTB4QkEsMHgzMiwweEZGLDB4RUYsMHhCOCwweDBGLDB4MDAsMHhCQSwweDM0LDB4RkYsMHhFRiwweEJBLDB4MzYsMHhGRiwweEVGLDB4ODMsCi0weDNFLDB4NDQsMHgxMiwweDAwLDB4NzUsMHgxNiwweEI4LDB4MTEsMHgwMCwweEJBLDB4MzgsMHhGRiwweEVGLDB4QjgsMHgxMiwweDAwLAotMHhCQSwweDNBLDB4RkYsMHhFRiwweEI4LDB4MUIsMHgwMCwweEJBLDB4M0MsMHhGRiwweEVGLDB4QzMsMHhCOCwweDExLDB4MDAsMHhCQSwKLTB4MzgsMHhGRiwweEVGLDB4QjgsMHgxMiwweDAwLDB4QkEsMHgzQSwweEZGLDB4RUYsMHhCOCwweDFCLDB4MDAsMHhCQSwweDNDLDB4RkYsCi0weEVGLDB4QzMsMHhCOCwweEZDLDB4MDAsMHhCQSwweDI4LDB4RkYsMHhFRiwweEZCLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LAotMHgwNywweEI4LDB4Q0MsMHgwMCwweEJBLDB4MjgsMHhGRiwweEVGLDB4QzMsMHgwMCwweEZGLDB4RkYsMHgyMCwweDI0LDB4MjgsMHhGRiwKLTB4MkMsMHhGRiwweEZGLDB4MzAsMHgzNCwweDM4LDB4RkYsMHhGRiwweDNDLDB4OTAsMHgzQywweDBGLDB4NzcsMHgwRSwweEJCLDB4MTksCi0weDBFLDB4MkUsMHhENywweDNDLDB4RkYsMHg3NCwweDA1LDB4OEEsMHhEOCwweEY4LDB4QzMsMHg5MCwweDJBLDB4REIsMHhGOSwweEMzLAotMHg4MywweDNFLDB4NDQsMHgxMiwweDAwLDB4NzQsMHgyNywweEEwLDB4MDYsMHgwMSwweDgwLDB4MjYsMHgwNiwweDAxLDB4MzAsMHg4MCwKLTB4M0UsMHgwNiwweDAxLDB4MzAsMHg3NSwweDE4LDB4QjksMHgwMiwweDAwLDB4QkYsMHhDNCwweDEzLDB4QkEsMHgwNiwweDAxLDB4RUMsCi0weEE4LDB4MjAsMHg3NSwweEY4LDB4QkEsMHgwNCwweDAxLDB4RUQsMHhBQiwweEUyLDB4RjEsMHhFQiwweDE2LDB4OTAsMHhCOSwweDA0LAotMHgwMCwweEJGLDB4QzQsMHgxMywweEJBLDB4MDYsMHgwMSwweEVDLDB4QTgsMHgyMCwweDc1LDB4RjgsMHhCQSwweDA0LDB4MDEsMHhFQywKLTB4QUEsMHhFMiwweEYxLDB4RkEsMHg5MCwweEJFLDB4QzQsMHgxMywweEFELDB4ODAsMHhFNCwweDNGLDB4ODAsMHhGQywweDAyLDB4NzQsCi0weDBFLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgwQSwweDlDLDB4MEUsMHhFOCwweDNFLDB4MDQsMHg5MCwweEFELAotMHgzQywweDBGLDB4NzUsMHhFRCwweDhBLDB4QzQsMHhFOCwweDgxLDB4RkYsMHg3MiwweEU2LDB4ODgsMHgxRSwweDFBLDB4MDEsMHhDNiwKLTB4MDYsMHg4RSwweDEyLDB4MDAsMHhCMCwweDAwLDB4MEEsMHgwNiwweDFBLDB4MDEsMHhCQSwweDAwLDB4MDEsMHhFRSwweEM2LDB4MDYsCi0weDhGLDB4MTIsMHg0MCwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwweDA2LDB4QjgsMHgwQywweDAwLDB4RUIsMHgwNCwweDkwLAotMHhCOCwweDRDLDB4MDAsMHhCQSwweDI4LDB4RkYsMHhFRiwweEMzLDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc1LDB4MDEsMHhDMywKLTB4QTEsMHg1MCwweDEyLDB4MEIsMHgwNiwweDUyLDB4MTIsMHgwQSwweEM0LDB4QTgsMHgwOCwweDc0LDB4RjIsMHhBMCwweDBGLDB4MDEsCi0weDJBLDB4RTQsMHg1MCwweEZGLDB4MzYsMHhCQSwweDEzLDB4MUYsMHhFOCwweDUwLDB4NTYsMHg4MywweEM0LDB4MDIsMHg2QSwweDAwLAotMHgxRiwweDMzLDB4QzAsMHhBMywweEJDLDB4MTMsMHhBMCwweDBGLDB4MDEsMHhBMywweEJFLDB4MTMsMHg4QiwweDFFLDB4QkMsMHgxMywKLTB4OEEsMHg4NywweDUwLDB4MTIsMHhGNiwweDg3LDB4NTAsMHgxMiwweDA4LDB4NzQsMHgwRCwweDI0LDB4MDcsMHg4QSwweEUwLDB4QkUsCi0weENDLDB4MDAsMHhBMCwweEJDLDB4MTMsMHhFOCwweDk0LDB4M0QsMHhGRiwweDA2LDB4QkMsMHgxMywweEZGLDB4MEUsMHhCRSwweDEzLAotMHg3NSwweERBLDB4QzMsMHg5MCwweDFFLDB4MzMsMHhDMCwweDhFLDB4RDgsMHhCMCwweDAxLDB4RTgsMHg1NCwweDNELDB4MUYsMHhDMywKLTB4MzMsMHhDOSwweDhCLDB4RjEsMHg4QSwweDBFLDB4OTQsMHgxMiwweDJFLDB4OEIsMHhBQywweDQ0LDB4MDAsMHhDNywweDQ2LDB4NjIsCi0weDM4LDB4NDQsMHhDNywweDQ2LDB4N0MsMHhGQywweDNCLDB4QzcsMHg0NiwweDdFLDB4RTIsMHgzQiwweEM3LDB4ODYsMHg4MCwweDAwLAotMHhFQywweDNDLDB4RTgsMHhBQiwweDE2LDB4QzYsMHg4NiwweEMwLDB4MDAsMHgxMSwweDgzLDB4N0UsMHgwOCwweDAwLDB4NzQsMHgwNywKLTB4NTEsMHg1NiwweEU4LDB4MzMsMHgzMywweDVFLDB4NTksMHg0NiwweDQ2LDB4RTIsMHhDRCwweEMzLDB4MzMsMHhDOSwweDhCLDB4RjEsCi0weDhCLDB4RjksMHg4QSwweDBFLDB4OTQsMHgxMiwweEMxLDB4RTksMHgwMiwweEUzLDB4MTMsMHgyRSwweDhCLDB4QUMsMHg0NCwweDAwLAotMHg4QSwweDg2LDB4OUUsMHgwMCwweDg4LDB4ODUsMHg2QywweDEyLDB4ODMsMHhDNiwweDA4LDB4NDcsMHhFMiwweEVELDB4QzMsMHhGQSwKLTB4RkMsMHhCMCwweEMwLDB4QkEsMHgwMCwweDAxLDB4RUUsMHgzMywweEMwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHg4RSwweEQwLDB4QkYsCi0weDE2LDB4MDEsMHhCOSwweENDLDB4NzcsMHgyQiwweENGLDB4RDEsMHhFOSwweEYzLDB4QUIsMHhCQywweDQwLDB4MTIsMHhFOCwweEQ5LAotMHgwMiwweEU4LDB4NzAsMHgzQywweEJFLDB4Q0MsMHgwRiwweEU4LDB4RjIsMHgzQywweEY0LDB4OTAsMHgzMywweEMwLDB4OEUsMHhEOCwKLTB4OEUsMHhDMCwweDhFLDB4RDAsMHhGNiwweDA2LDB4MEEsMHgwMSwweDgwLDB4NzQsMHgwQiwweEJFLDB4MzUsMHg1NSwweEU4LDB4REIsCi0weDNDLDB4QjAsMHgwMSwweEU4LDB4QUMsMHgzQywweEU4LDB4QjMsMHgwMCwweEU4LDB4RjYsMHhGNSwweEU4LDB4MDgsMHhGOCwweEU4LAotMHgwRiwweEY5LDB4RTgsMHg4NSwweEZBLDB4RTgsMHhCNiwweEZBLDB4RTgsMHhFRiwweEZDLDB4RTgsMHhDMiwweDEwLDB4RTgsMHgwMywKLTB4M0MsMHhFOCwweEIyLDB4RkQsMHhFOCwweDMwLDB4RkQsMHhFOCwweDU0LDB4MDIsMHhDNiwweDA2LDB4OEYsMHgxMiwweEMwLDB4RTgsCi0weEJCLDB4RkEsMHhFOCwweEVCLDB4RkEsMHhFOCwweEU5LDB4RkIsMHhFOCwweEFGLDB4RkMsMHhFOCwweDhELDB4RkMsMHhFOCwweDFGLAotMHhGRiwweEU4LDB4NTgsMHhGRiwweEU4LDB4REIsMHhGRCwweEU4LDB4MTYsMHhGRSwweDMzLDB4QzAsMHhCRSwweDVBLDB4MDUsMHhFOCwKLTB4OEEsMHgzQywweEU4LDB4QTMsMHhGRSwweEU4LDB4RTAsMHhGQywweEZCLDB4QkUsMHhBNCwweDQ0LDB4RTgsMHg3RCwweDNDLDB4RTksCi0weENBLDB4MkQsMHg1NiwweDk4LDB4OEIsMHhGMCwweDhCLDB4NDIsMHg1MiwweDg1LDB4QzAsMHg3NSwweDI3LDB4QzcsMHg0MiwweDUyLAotMHgwMSwweDAwLDB4NTMsMHgzNiwweDhCLDB4OUMsMHgyQywweDAxLDB4RjYsMHhDMywweDAxLDB4NzUsMHgwQywweDM2LDB4ODksMHg2OCwKLTB4NTIsMHgzNiwweDg5LDB4QUMsMHgyQywweDAxLDB4NUIsMHg1RSwweEMzLDB4MzYsMHg4OSwweEFDLDB4MkMsMHgwMSwweDM2LDB4ODksCi0weEFDLDB4MUMsMHgwMSwweDVCLDB4NUUsMHhDMywweDU2LDB4OTgsMHg4QiwweEYwLDB4MzMsMHhFRCwweDM2LDB4OEIsMHg4NCwweDFDLAotMHgwMSwweEE4LDB4MDEsMHg3NSwweDE1LDB4OEIsMHhFOCwweDMzLDB4QzAsMHg4NywweDQyLDB4NTIsMHgzNiwweDg5LDB4ODQsMHgxQywKLTB4MDEsMHhBOCwweDAxLDB4NzQsMHgwNSwweDM2LDB4ODksMHg4NCwweDJDLDB4MDEsMHg1RSwweEMzLDB4NTYsMHg1MSwweDMzLDB4RjYsCi0weEI4LDB4MDEsMHgwMCwweEI5LDB4MDgsMHgwMCwweDg5LDB4ODQsMHgxQywweDAxLDB4ODksMHg4NCwweDJDLDB4MDEsMHg0NiwweDQ2LAotMHhFMiwweEY0LDB4NTksMHg1RSwweEMzLDB4OTAsMHhCQiwweDAxLDB4MDAsMHg4QiwweEU4LDB4RkYsMHg0RSwweDZFLDB4NzQsMHgwQSwKLTB4OEIsMHhERCwweDhCLDB4NDYsMHg1OCwweEE4LDB4MDEsMHg3NCwweEYwLDB4QzMsMHg4QiwweDQ2LDB4NDgsMHhBOSwweDA4LDB4MDAsCi0weDc0LDB4NDUsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzQsMHgyNywweEU4LDB4NUMsMHgxMCwweDgwLDB4QzIsMHgwNiwweDhBLAotMHg4NiwweEE4LDB4MDAsMHgyNCwweEJGLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwweDYwLDB4QjAsMHhGRSwweEU4LDB4ODYsMHgzMiwKLTB4NjEsMHhCMCwweDAyLDB4RTgsMHg0QywweEZGLDB4OEIsMHg0NiwweDQ4LDB4MjQsMHhGNywweDg5LDB4NDYsMHg0OCwweEVCLDB4MTcsCi0weEU4LDB4MkEsMHgxMCwweDgxLDB4NEUsMHgyNiwweDAwLDB4NDAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LAotMHhBNSwweDAwLDB4RTYsMHgwQywweDhCLDB4NDYsMHg0OCwweEE5LDB4MDQsMHgwMCwweDc0LDB4MTQsMHhCMCwweDAyLDB4RTgsMHgyMSwKLTB4RkYsMHg4QiwweDQ2LDB4NDgsMHgyNCwweEZCLDB4ODksMHg0NiwweDQ4LDB4NjAsMHhCMCwweERGLDB4RTgsMHg0NywweDMyLDB4NjEsCi0weDMzLDB4QzAsMHg4NywweDQ2LDB4NTgsMHhGNiwweEMzLDB4MDEsMHg3NSwweDBCLDB4MzYsMHg4OSwweDQ3LDB4NTgsMHhBOCwweDAxLAotMHg3NSwweDBELDB4RTksMHg3NCwweEZGLDB4QTMsMHgyMiwweDAxLDB4QTgsMHgwMSwweDc1LDB4MDMsMHhFOSwweDZBLDB4RkYsMHg4OSwKLTB4MUUsMHgzMiwweDAxLDB4QzMsMHhCQiwweDAxLDB4MDAsMHg4QiwweEU4LDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwweDc0LDB4MTUsCi0weEU4LDB4RDUsMHgwRiwweDgwLDB4QzIsMHgwQSwweEVDLDB4QTgsMHg0MCwweDc1LDB4MEEsMHg4QiwweERELDB4OEIsMHg0NiwweDU2LAotMHhBOCwweDAxLDB4NzQsMHhFMywweEMzLDB4OEIsMHg0NiwweDI2LDB4ODAsMHhFNCwweEZFLDB4ODAsMHhDQywweDAyLDB4ODksMHg0NiwKLTB4MjYsMHhCMCwweDAyLDB4RTgsMHhCQywweEZFLDB4MzMsMHhDMCwweDg3LDB4NDYsMHg1NiwweEY2LDB4QzMsMHgwMSwweDc1LDB4MEEsCi0weDM2LDB4ODksMHg0NywweDU2LDB4QTgsMHgwMSwweDc1LDB4MEIsMHhFQiwweEJELDB4QTMsMHgyMCwweDAxLDB4QTgsMHgwMSwweDc1LAotMHgwMiwweEVCLDB4QjQsMHg4OSwweDFFLDB4MzAsMHgwMSwweEMzLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMCwKLTB4OTAsMHgxMiwweDg0LDB4QzAsMHg3NSwweDQ5LDB4QTEsMHgyMiwweDAxLDB4QTgsMHgwMSwweDc1LDB4MDMsMHhFOCwweEY2LDB4RkUsCi0weEExLDB4MjAsMHgwMSwweEE4LDB4MDEsMHg3NSwweDAzLDB4RTgsMHg4QSwweEZGLDB4QTEsMHhBQywweDEzLDB4NDgsMHg3OCwweDA1LAotMHg3NCwweDQ1LDB4QTMsMHhBQywweDEzLDB4QTEsMHhBRSwweDEzLDB4NDgsMHg3OCwweDA1LDB4NzQsMHg1MSwweEEzLDB4QUUsMHgxMywKLTB4QTEsMHhCMCwweDEzLDB4NDgsMHg3OCwweDA1LDB4NzQsMHg2MywweEEzLDB4QjAsMHgxMywweEExLDB4N0UsMHgxMiwweDQwLDB4NzgsCi0weDAzLDB4QTMsMHg3RSwweDEyLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweEEwLAotMHg5MSwweDEyLDB4NDAsMHgzQywweDAyLDB4NzIsMHgwQiwweDMzLDB4QzAsMHhBMiwweDkxLDB4MTIsMHhGRiwweDE2LDB4N0MsMHgxMiwKLTB4RUIsMHhBNCwweEEyLDB4OTEsMHgxMiwweEVCLDB4OUYsMHhBMCwweDhFLDB4MTIsMHgzMiwweDA2LDB4OEYsMHgxMiwweEEyLDB4OEUsCi0weDEyLDB4MEEsMHgwNiwweDFBLDB4MDEsMHhCQSwweDAwLDB4MDEsMHhFRSwweEI4LDB4MkMsMHgwMSwweEVCLDB4QTQsMHg4MywweDNFLAotMHg4NCwweDEyLDB4MTAsMHg3MiwweDExLDB4QkEsMHgyOCwweEZGLDB4RUQsMHgwQywweDgxLDB4RUYsMHhFOCwweDUzLDB4MzcsMHhCQSwKLTB4MjgsMHhGRiwweEVELDB4MjQsMHg3RSwweEVGLDB4QjgsMHgwNCwweDAwLDB4RUIsMHg5MiwweEM2LDB4MDYsMHg4RCwweDEyLDB4MDEsCi0weEU4LDB4M0YsMHgzNywweEM2LDB4MDYsMHg4RCwweDEyLDB4MDAsMHhBMSwweEIyLDB4MTMsMHhFQiwweDhCLDB4OTAsMHg4QSwweDFFLAotMHgwQiwweDAxLDB4MkEsMHhGRiwweDZCLDB4QzMsMHgxOSwweEJBLDB4NjIsMHhGRiwweEVGLDB4QjgsMHgwQSwweDAwLDB4QkEsMHg2MCwKLTB4RkYsMHhFRiwweEI4LDB4MDEsMHhFMCwweEJBLDB4NjYsMHhGRiwweEVGLDB4QjgsMHhGRiwweEZGLDB4QkEsMHg1MiwweEZGLDB4RUYsCi0weEI4LDB4MDksMHhDMCwweEJBLDB4NTYsMHhGRiwweEVGLDB4QzcsMHgwNiwweEFDLDB4MTMsMHgyQywweDAxLDB4QzcsMHgwNiwweEFFLAotMHgxMywweDA0LDB4MDAsMHhDNiwweDA2LDB4OTEsMHgxMiwweDAwLDB4QzMsMHg5MCwweDhBLDB4MUUsMHgwQiwweDAxLDB4MkEsMHhGRiwKLTB4NkIsMHhDMywweDA1LDB4RDEsMHhFOCwweEEzLDB4MTgsMHgwMSwweEMzLDB4OTAsMHg1MiwweEJBLDB4NTAsMHhGRiwweEVELDB4NUEsCi0weEMzLDB4OTAsMHg1MywweDUxLDB4OEIsMHgxRSwweDE4LDB4MDEsMHhCOSwweDMyLDB4MDUsMHg5MCwweEUyLDB4RkUsMHg0QiwweDc1LAotMHhGNywweDU5LDB4NUIsMHhDMywweEIwLDB4ODAsMHhCQSwweDAwLDB4MDEsMHgwQSwweDA2LDB4MUEsMHgwMSwweEVFLDB4QzMsMHg5MCwKLTB4QjAsMHg0MCwweEVCLDB4RjIsMHhCMCwweEMwLDB4RUIsMHhFRSwweEIwLDB4MDAsMHhFQiwweEVBLDB4RkEsMHg2MCwweDA2LDB4MUUsCi0weDE2LDB4MkIsMHhEQiwweDhFLDB4REIsMHgyRSwweEExLDB4QkEsMHg0QywweDJFLDB4QTMsMHg5MiwweDRDLDB4QTAsMHg5MywweDEyLAotMHg5OCwweDhCLDB4RTgsMHg4OSwweDI2LDB4MkQsMHg3QSwweDgwLDB4M0UsMHhDQSwweDEzLDB4MDAsMHg3NCwweDAzLDB4RTksMHg2QiwKLTB4NDIsMHhFOCwweEMwLDB4RkYsMHhFOCwweEFCLDB4RkYsMHhFOCwweEE4LDB4RkYsMHhCMCwweDIwLDB4QzYsMHgwNiwweDkwLDB4MTIsCi0weDAwLDB4RkYsMHgxNiwweDdDLDB4MTIsMHg4QiwweEZELDB4ODMsMHhGRiwweDBBLDB4NzIsMHgxMSwweEU4LDB4QjksMHhGRiwweEU4LAotMHg5MCwweEZGLDB4RTgsMHhBQiwweEZGLDB4RTgsMHg4QSwweEZGLDB4ODMsMHhFRiwweDBBLDB4RUIsMHhFQSwweDBCLDB4RkYsMHg3NCwKLTB4MEYsMHhFOCwweEE0LDB4RkYsMHhFOCwweDdCLDB4RkYsMHhFOCwweDlBLDB4RkYsMHhFOCwweDc1LDB4RkYsMHg0RiwweDc1LDB4RjEsCi0weEU4LDB4OTUsMHhGRiwweEU4LDB4NkMsMHhGRiwweEVCLDB4QjksMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkQsMHhFRSwweDg4LAotMHg4NiwweEE1LDB4MDAsMHhDMywweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwMiwweEVFLDB4QzMsMHg4QiwweDc2LDB4MzgsMHhGNywKLTB4QzYsMHgwMSwweDAwLDB4NzQsMHhFRiwweDhCLDB4NEUsMHgzNiwweDhCLDB4NDYsMHgyRSwweDNCLDB4QzEsMHg3MywweDAyLDB4OEIsCi0weEM4LDB4MkIsMHhDMSwweDg5LDB4NDYsMHgyRSwweDAxLDB4NEUsMHgzNCwweEM0LDB4N0UsMHgwNCwweDI2LDB4MDEsMHgwRCwweDhCLAotMHg3RSwweDJDLDB4ODMsMHhFQSwweDA0LDB4RjMsMHg2QywweDhFLDB4QzEsMHg4OSwweDdFLDB4MkMsMHgzQiwweDQ2LDB4M0MsMHg3MiwKLTB4MTIsMHhGNywweEM2LDB4MjAsMHgwMCwweDc1LDB4MEIsMHg4MywweENFLDB4MjAsMHg4OSwweDc2LDB4MzgsMHhCMCwweDAwLDB4RTgsCi0weEEwLDB4RkMsMHhDMywweEY3LDB4QzYsMHgwNCwweDAwLDB4NzQsMHgxQiwweDhCLDB4RDgsMHg4MywweENFLDB4MTAsMHg4OSwweDc2LAotMHgzOCwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweDg4LDB4ODYsMHhBNywweDAwLDB4ODMsMHhDMiwweDA4LDB4RUUsMHg4MywKLTB4RUEsMHgwOCwweDhCLDB4QzMsMHgzRCwweDQwLDB4MDAsMHg3MiwweDAxLDB4QzMsMHg4MSwweDRFLDB4MzgsMHgwMCwweDA0LDB4ODMsCi0weEMyLDB4MDIsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkEsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4QzMsMHg4QSwweDg2LAotMHhBNiwweDAwLDB4MEMsMHgwMiwweEVFLDB4QzMsMHhGNywweDQ2LDB4MzgsMHgwMSwweDAwLDB4NzQsMHhGMSwweDhCLDB4NEUsMHgyRSwKLTB4MzIsMHhEQiwweDhBLDB4QkUsMHhBMywweDAwLDB4ODMsMHhDMiwweDA2LDB4QzQsMHg3NiwweDA0LDB4OEIsMHg3RSwweDJDLDB4ODMsCi0weEY5LDB4MDgsMHg3MiwweDJDLDB4RUMsMHhBOCwweDAxLDB4NzQsMHgxNiwweDhBLDB4RTAsMHg4MywweEVBLDB4MEEsMHhFQywweDgzLAotMHhDMiwweDBBLDB4ODQsMHhFNywweDc1LDB4NTEsMHhBQSwweEZFLDB4QzMsMHg0OSwweDgzLDB4RjksMHgwOCwweDczLDB4RTUsMHgzMiwKLTB4RkYsMHgyNiwweDAxLDB4MUMsMHgwMSwweDVFLDB4MzQsMHg4OSwweDc2LDB4MDQsMHg4OSwweDRFLDB4MkUsMHg4OSwweDdFLDB4MkMsCi0weDNCLDB4NEUsMHgzQywweDcyLDB4MTEsMHhGNiwweDQ2LDB4MzgsMHgyMCwweDc0LDB4MDEsMHhDMywweDgzLDB4NEUsMHgzOCwweDIwLAotMHhCMCwweDAwLDB4RTgsMHhGRCwweEZCLDB4QzMsMHhGNiwweDQ2LDB4MzgsMHgwNCwweDc0LDB4MTUsMHg4MywweDRFLDB4MzgsMHgxMCwKLTB4OEEsMHg4NiwweEE3LDB4MDAsMHgyNCwweEZFLDB4ODgsMHg4NiwweEE3LDB4MDAsMHg4MywweEVBLDB4MDIsMHhFRSwweDgzLDB4QzIsCi0weDAyLDB4M0QsMHg0MCwweDAwLDB4NzIsMHg1RCwweEMzLDB4MzIsMHhGRiwweDI2LDB4MDMsMHgxQywweDg1LDB4REIsMHg3NCwweDA5LAotMHgyNiwweDg5LDB4MUMsMHg4QiwweEY3LDB4NDcsMHg0NywweDQ5LDB4NDksMHg4MCwweEU0LDB4MUUsMHg4MCwweENDLDB4QzAsMHgyNiwKLTB4ODksMHgwNCwweEY2LDB4QzQsMHgxMCwweDc0LDB4MjcsMHg4QiwweDc2LDB4MzgsMHhGNywweEM2LDB4MDAsMHgxMCwweDc0LDB4MEIsCi0weDUwLDB4RkUsMHg4NiwweEIyLDB4MDAsMHhCMCwweDBBLDB4RTgsMHhBOCwweEZCLDB4NTgsMHhGNywweEM2LDB4MDAsMHgwMSwweDc0LAotMHgwRCwweEU4LDB4ODIsMHgyNiwweDhCLDB4NzYsMHgzOCwweDhCLDB4NEUsMHgyRSwweDhCLDB4N0UsMHgwNCwweEFCLDB4OEIsMHhGNywKLTB4MzMsMHhDMCwweEFCLDB4MzIsMHhEQiwweDhBLDB4QkUsMHhBMywweDAwLDB4NDksMHg0OSwweDgzLDB4RjksMHgwOCwweDcyLDB4MTcsCi0weEU5LDB4NDEsMHhGRiwweDgxLDB4NEUsMHgzOCwweDAwLDB4MDQsMHg4MywweEMyLDB4RjgsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LAotMHhGQSwweDg4LDB4ODYsMHhBNSwweDAwLDB4RUUsMHhDMywweEU5LDB4NDUsMHhGRiwweDgzLDB4QzIsMHgwOCwweEVDLDB4ODgsMHg4NiwKLTB4QUEsMHgwMCwweEMwLDB4RTgsMHgwNCwweDhBLDB4RTAsMHg4QSwweEM4LDB4ODYsMHg4NiwweEE5LDB4MDAsMHgzMiwweEUwLDB4OEIsCi0weDVFLDB4M0UsMHg4NCwweEUzLDB4NzQsMHg0RiwweDhBLDB4QzEsMHg4QiwweDRFLDB4MjYsMHhGNiwweEM1LDB4MDQsMHg3NCwweDBDLAotMHhBOCwweDA4LDB4NzQsMHgwNSwweDgwLDB4RTEsMHhCRiwweEVCLDB4MDMsMHg4MCwweEM5LDB4NDAsMHhGNiwweEM1LDB4MDgsMHg3NCwKLTB4MEMsMHhBOCwweDAyLDB4NzQsMHgwNSwweDgwLDB4RTEsMHg3RiwweEVCLDB4MDMsMHg4MCwweEM5LDB4ODAsMHg4OCwweDRFLDB4MjYsCi0weDhCLDB4RjAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDg0LDB4QzksMHg3NCwweDA4LDB4QTgsMHgwMiwweDc0LDB4MTUsMHgyNCwweEZELAotMHhFQiwweDA2LDB4QTgsMHgwMiwweDc1LDB4MEQsMHgwQywweDAyLDB4ODgsMHg4NiwweEE1LDB4MDAsMHg4MywweEVBLDB4MEEsMHhFRSwKLTB4ODMsMHhDMiwweDBBLDB4OEIsMHhDNiwweDg0LDB4RTcsMHg3NSwweDAxLDB4QzMsMHhDNiwweDg2LDB4QkEsMHgwMCwweDAxLDB4QjAsCi0weDBFLDB4RTgsMHhFRSwweEZBLDB4RjcsMHg0NiwweDM4LDB4MDAsMHgwMiwweDc0LDB4RUUsMHg4MywweDdFLDB4MkUsMHgwNiwweDcyLAotMHhFOCwweDhBLDB4QTYsMHhBQSwweDAwLDB4QzQsMHg1RSwweDA0LDB4OEIsMHg3RSwweDJDLDB4QjAsMHhGRiwweEFBLDB4QjAsMHgwMiwKLTB4QUIsMHgyNiwweDgzLDB4MDcsMHgwMywweDgzLDB4NkUsMHgyRSwweDAzLDB4ODksMHg3RSwweDJDLDB4RjYsMHg0NiwweDM4LDB4MjAsCi0weDc0LDB4MDEsMHhDMywweDgzLDB4NEUsMHgzOCwweDIwLDB4QjAsMHgwMCwweEU4LDB4QjYsMHhGQSwweEMzLDB4OTAsMHg4MywweEVBLAotMHgwOCwweEU5LDB4QjQsMHhGRCwweDgzLDB4QzIsMHgwNiwweDhCLDB4NUUsMHgyNiwweEY2LDB4QzMsMHhDMCwweDc1LDB4RUYsMHg4QiwKLTB4NEUsMHgxQywweEVDLDB4ODgsMHg4NiwweEE0LDB4MDAsMHg4MywweEVBLDB4MEEsMHhBOCwweDIwLDB4NzUsMHgwMiwweDhBLDB4Q0QsCi0weDMyLDB4RUQsMHg4QiwweDQ2LDB4MUEsMHgzQiwweEM4LDB4NzMsMHgxOCwweDAxLDB4NEUsMHgyQSwweDJCLDB4QzEsMHg4OSwweDQ2LAotMHgxQSwweEM1LDB4NzYsMHgwMCwweEYzLDB4NkUsMHg4RSwweEQ5LDB4ODksMHg3NiwweDAwLDB4M0QsMHgyMCwweDAwLDB4NzIsMHgzMCwKLTB4QzMsMHg4NSwweEMwLDB4NzQsMHgzMSwweDhCLDB4QzgsMHgwMSwweDQ2LDB4MkEsMHhDNSwweDc2LDB4MDAsMHhGMywweDZFLDB4OEUsCi0weEQ5LDB4ODAsMHhDQiwweDAyLDB4ODksMHg1RSwweDI2LDB4RTgsMHgzMiwweEYxLDB4RjYsMHhDNywweDAxLDB4NzUsMHgxNiwweDgzLAotMHhDMiwweDAyLDB4RTgsMHg1MywweEZELDB4RjYsMHhDNywweDEwLDB4NzUsMHgwQiwweEIwLDB4MDIsMHhFOCwweDQzLDB4RkEsMHhDMywKLTB4RjYsMHhDNywweDAxLDB4NzQsMHhGMCwweEMzLDB4ODAsMHhDQiwweDAyLDB4ODksMHg1RSwweDI2LDB4RjYsMHhDNywweDAxLDB4NzQsCi0weERFLDB4ODMsMHhDMiwweDAyLDB4RTgsMHgzMSwweEZELDB4RjYsMHg4NiwweEE0LDB4MDAsMHg0MCwweDc0LDB4MEIsMHg4MCwweEU3LAotMHhGRSwweDgwLDB4Q0YsMHgwMiwweDg5LDB4NUUsMHgyNiwweEVCLDB4Q0MsMHhCMCwweDA0LDB4RTgsMHgxNCwweEZBLDB4QzMsMHhDMCwKLTB4QzIsMHhDOCwweENBLDB4QzQsMHhDNiwweENDLDB4Q0UsMHhEMCwweEQyLDB4RDgsMHhEQSwweEQ0LDB4RDYsMHhEQywweERFLDB4OTAsCi0weEU5LDB4MEUsMHgwMSwweEU0LDB4QzQsMHg4QSwweEUwLDB4RTQsMHhDNCwweDhCLDB4RDAsMHg4MywweEY5LDB4MDgsMHg3MiwweEYwLAotMHgyNiwweDgzLDB4M0YsMHgwMCwweDc0LDB4MDQsMHg4QiwweERGLDB4NDksMHg0OSwweDhCLDB4RkIsMHg4QSwweERFLDB4ODMsMHhFMywKLTB4MEYsMHgyRSwweDhBLDB4QTcsMHgyRiwweDE2LDB4QUIsMHhGNiwweEM0LDB4MTAsMHg3NCwweDI0LDB4RjcsMHhDNiwweDAwLDB4MTAsCi0weDc0LDB4MEIsMHg1MCwweEZFLDB4ODYsMHhCMiwweDAwLDB4QjAsMHgwQSwweEU4LDB4QzYsMHhGOSwweDU4LDB4RjcsMHhDNiwweDAwLAotMHgwMSwweDc0LDB4MEQsMHhFOCwweEEwLDB4MjQsMHg4QiwweDc2LDB4MzgsMHg4QiwweDRFLDB4MkUsMHg4QiwweDdFLDB4MDQsMHhBQiwKLTB4ODksMHg3RSwweDA0LDB4MzMsMHhDMCwweEFCLDB4NDksMHg0OSwweDg5LDB4NEUsMHgyRSwweDg5LDB4N0UsMHgyQywweDhCLDB4QzEsCi0weEVCLDB4NEUsMHg5MCwweEVCLDB4OUUsMHg5MCwweEU0LDB4RDYsMHg4NCwweEMwLDB4NzksMHg2MywweEU2LDB4RDAsMHg4QSwweEM4LAotMHgyNSwweDAzLDB4MDAsMHgwMywweEQ4LDB4RDEsMHhFMywweDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHg4OCwweDhFLDB4QUUsMHgwMCwKLTB4OEIsMHg0RSwweDJFLDB4QzQsMHg1RSwweDA0LDB4OEIsMHg3RSwweDJDLDB4OEIsMHg3NiwweDM4LDB4RTQsMHg4NiwweDI0LDB4MDcsCi0weDNDLDB4MDMsMHg3NSwweENGLDB4RTQsMHgxQywweDkxLDB4M0IsMHhDMSwweDczLDB4MDIsMHg4QiwweEM4LDB4MkIsMHhDMSwweDg5LAotMHg0NiwweDJFLDB4MDEsMHg0RSwweDM0LDB4MjYsMHgwMSwweDBGLDB4QkEsMHhDNCwweDAwLDB4RjMsMHg2QywweDg5LDB4N0UsMHgyQywKLTB4M0IsMHg0NiwweDNDLDB4NzIsMHgxQywweEY3LDB4QzYsMHgyMCwweDAwLDB4NzUsMHgwQiwweDgzLDB4Q0UsMHgyMCwweDg5LDB4NzYsCi0weDM4LDB4QjAsMHgwMCwweEU4LDB4M0MsMHhGOSwweDhBLDB4ODYsMHhBRSwweDAwLDB4MjQsMHgzRiwweEU2LDB4RDYsMHhDMywweEY5LAotMHhDMywweEY3LDB4QzYsMHgwQSwweDAwLDB4NzQsMHgzNSwweEY3LDB4QzYsMHgxMCwweDAwLDB4NzUsMHgyRiwweDgzLDB4Q0UsMHgxMCwKLTB4ODksMHg3NiwweDM4LDB4RjcsMHhDNiwweDAyLDB4MDAsMHg3NCwweDBFLDB4NTAsMHhFNCwweEQ4LDB4MjQsMHhGRSwweEU2LDB4RDgsCi0weDU4LDB4RjcsMHhDNiwweDA4LDB4MDAsMHg3NCwweDE1LDB4NTAsMHg1MSwweEI5LDB4RTgsMHgwMywweEU0LDB4MEEsMHg4NCwweEMwLAotMHhFMCwweEZBLDB4ODQsMHhDMCwweDc1LDB4MDQsMHhCMCwweDI0LDB4RTYsMHgwQSwweDU5LDB4NTgsMHgzRCwweDQwLDB4MDAsMHg3MywKLTB4QjUsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RUYsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweENFLDB4MTAsCi0weDA0LDB4ODksMHg3NiwweDM4LDB4RUIsMHhBMCwweDAwLDB4MDgsMHgwNCwweDBDLDB4MDEsMHgwOSwweDA1LDB4MEQsMHgwMiwweDBBLAotMHgwNiwweDBFLDB4MDMsMHgwQiwweDA3LDB4MEYsMHgwMCwweDQwLDB4ODAsMHhDMCwweDIwLDB4NjAsMHhBMCwweEUwLDB4MTAsMHg1MCwKLTB4OTAsMHhEMCwweDMwLDB4NzAsMHhCMCwweEYwLDB4RTQsMHhEMiwweEU2LDB4RDAsMHg4QSwweEM4LDB4MjUsMHgwMywweDAwLDB4MDMsCi0weEQ4LDB4RDEsMHhFMywweDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHg4OCwweDhFLDB4QUUsMHgwMCwweEU0LDB4RDgsMHhDMCwweEU4LAotMHgwNCwweDhCLDB4RDgsMHgyRSwweDhBLDB4ODcsMHg2NiwweDE3LDB4OEEsMHhFMCwweDhBLDB4QzgsMHg4NiwweDg2LDB4QTksMHgwMCwKLTB4MzIsMHhFMCwweEU0LDB4OTgsMHg4QiwweDVFLDB4M0UsMHg4NCwweEUzLDB4NzQsMHg1NCwweDhBLDB4QzEsMHg4QiwweDRFLDB4MjYsCi0weEY2LDB4QzUsMHgwNCwweDc0LDB4MEMsMHhBOCwweDA4LDB4NzQsMHgwNSwweDgwLDB4RTEsMHhCRiwweEVCLDB4MDMsMHg4MCwweEM5LAotMHg0MCwweEY2LDB4QzUsMHgwOCwweDc0LDB4MEMsMHhBOCwweDAyLDB4NzQsMHgwNSwweDgwLDB4RTEsMHg3RiwweEVCLDB4MDMsMHg4MCwKLTB4QzksMHg4MCwweDg4LDB4NEUsMHgyNiwweDhCLDB4RjAsMHg4QSwweDg2LDB4QTUsMHgwMCwweEY2LDB4QzEsMHhGRCwweDc0LDB4MDgsCi0weEE4LDB4MDYsMHg3NCwweDE5LDB4MjQsMHhGOSwweEVCLDB4MEYsMHhBOCwweDA2LDB4NzUsMHgxMSwweEY2LDB4QzUsMHgwMSwweDc1LAotMHgwNCwweDBDLDB4MDQsMHhFQiwweDAyLDB4MEMsMHgwMiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDhCLDB4QzYsMHg4NCwKLTB4RTcsMHg3NSwweDA5LDB4OEEsMHg4NiwweEFFLDB4MDAsMHgyNCwweDNGLDB4RTYsMHhEMiwweEMzLDB4QzYsMHg4NiwweEJBLDB4MDAsCi0weDAxLDB4QjAsMHgwRSwweEU4LDB4MUMsMHhGOCwweEY3LDB4NDYsMHgzOCwweDAwLDB4MDIsMHg3NCwweEU2LDB4ODMsMHg3RSwweDJFLAotMHgwNiwweDcyLDB4RTAsMHg4QSwweDg2LDB4QTksMHgwMCwweDhBLDB4RTAsMHg4NiwweDg2LDB4QUEsMHgwMCwweDhBLDB4QzgsMHgzMiwKLTB4QzQsMHg4MCwweEM5LDB4MEIsMHgyMiwweEMxLDB4QzAsMHhFNCwweDA0LDB4MEEsMHhFMCwweEM0LDB4NUUsMHgwNCwweDhCLDB4N0UsCi0weDJDLDB4QjAsMHhGRiwweEFBLDB4QjAsMHgwMiwweEFCLDB4MjYsMHg4MywweDA3LDB4MDMsMHg4MywweDZFLDB4MkUsMHgwMywweDg5LAotMHg3RSwweDJDLDB4RjYsMHg0NiwweDM4LDB4MjAsMHg3NSwweEFCLDB4ODMsMHg0RSwweDM4LDB4MjAsMHhCMCwweDAwLDB4RTgsMHhEMSwKLTB4RjcsMHhFQiwweEEwLDB4OTAsMHhFNCwweDEyLDB4MjQsMHhERiwweEU2LDB4MTIsMHg4MSwweEUzLDB4RkUsMHg5RiwweDg5LDB4NUUsCi0weDI2LDB4ODMsMHg2NiwweDQ4LDB4RjcsMHhFQiwweDczLDB4OTAsMHhGNiwweEM3LDB4MjAsMHg3NSwweEU3LDB4RTQsMHgxMiwweDBDLAotMHgyMCwweEU2LDB4MTIsMHgzMiwweEMwLDB4RTYsMHhDNiwweEIwLDB4ODMsMHhFNiwweEM2LDB4ODAsMHhDRiwweDIwLDB4ODksMHg1RSwKLTB4MjYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhFQiwweDc0LDB4OTAsCi0weEY2LDB4QzcsMHg0MCwweDc1LDB4RDMsMHhFNCwweDEyLDB4MEMsMHgyMCwweEU2LDB4MTIsMHgzMiwweEMwLDB4RTYsMHhDNiwweEIwLAotMHg4MSwweEU2LDB4QzYsMHg4MCwweEU3LDB4REYsMHg4MCwweENCLDB4MDEsMHg4OSwweDVFLDB4MjYsMHhCMCwweDA2LDB4RTgsMHg3MSwKLTB4RjcsMHg5MCwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGOSwweEU2LDB4MEMsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVCLDB4NDMsCi0weEU0LDB4RDQsMHhFNiwweEQwLDB4OEIsMHhGOCwweDI1LDB4MDMsMHgwMCwweDAzLDB4RDgsMHhEMSwweEUzLDB4MkUsMHg4QiwweEFGLAotMHg0NCwweDAwLDB4OEIsMHg1RSwweDI2LDB4RjYsMHhDNywweDYwLDB4NzUsMHhCNiwweEY2LDB4QzMsMHhDMCwweDc1LDB4RDMsMHhCQSwKLTB4QzYsMHgwMCwweDhCLDB4NEUsMHgxQywweDhCLDB4NDYsMHgxQSwweDNCLDB4QzgsMHg3MywweDFFLDB4MDEsMHg0RSwweDJBLDB4MkIsCi0weEMxLDB4ODksMHg0NiwweDFBLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDhFLDB4RDksMHg4OSwweDc2LDB4MDAsMHgzRCwweDIwLAotMHgwMCwweDcyLDB4M0QsMHg4QiwweEM3LDB4MjQsMHgzRiwweEU2LDB4RDQsMHhDMywweDg1LDB4QzAsMHg3NCwweDM5LDB4OEIsMHhDOCwKLTB4MDEsMHg0NiwweDJBLDB4QzUsMHg3NiwweDAwLDB4RjMsMHg2RSwweDhFLDB4RDksMHg4MywweENCLDB4MDIsMHg4OSwweDVFLDB4MjYsCi0weEU4LDB4RDksMHhFRCwweEY2LDB4QzcsMHgwMSwweDc1LDB4MzksMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RjksMHhFNiwweDBDLAotMHg4OCwweDg2LDB4QTUsMHgwMCwweEY2LDB4QzcsMHgxMCwweDc1LDB4Q0EsMHhCMCwweDAyLDB4RTgsMHhFNCwweEY2LDB4RUIsMHhDMywKLTB4RjYsMHhDNywweDAxLDB4NzQsMHhFRiwweEVCLDB4QkMsMHhGNiwweEM3LDB4MDEsMHg3NCwweERDLDB4OEEsMHg4NiwweEE1LDB4MDAsCi0weEE4LDB4MDIsMHg3NCwweDExLDB4ODEsMHhFMywweEZGLDB4RkUsMHg4MSwweENCLDB4MDAsMHgwMiwweDg5LDB4NUUsMHgyNiwweEVCLAotMHhDNywweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGQiwweDBDLDB4MDIsMHhFNiwweDBDLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFQiwKLTB4OTIsMHg5MCwweEZELDB4RjcsMHhERiwweDdGLDB4RkUsMHhGQiwweEVGLDB4QkYsMHgwMCwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwMSwweDA0LDB4MDAsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDAyLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDAxLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDcsMHgwNCwweDA3LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDAzLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDAxLDB4MDQsMHgwMCwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDIsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDEsMHgwNCwweDAwLDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA2LDB4MDQsMHgwNiwweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNywweDA0LDB4MDcsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LAotMHgwNSwweDA0LDB4MDYsMHgwNCwweDA2LDB4MDQsMHgwNSwweDA0LDB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwKLTB4MDUsMHgwNCwweDA3LDB4MDQsMHgwNywweDA0LDB4MDUsMHgwNCwweDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsCi0weDA1LDB4MDQsMHgwNiwweDA0LDB4MDYsMHgwNCwweDA1LDB4MDQsMHgwNSwweDA0LDB4MzMsMHhEQiwweDhBLDB4RDgsMHg4QSwweDg3LAotMHg2QywweDEyLDB4RTYsMHhGRSwweEMxLDB4RTMsMHgwMiwweEU0LDB4Q0UsMHhBOCwweDA0LDB4NzUsMHgwOSwweEE4LDB4MDIsMHg3NCwKLTB4MDMsMHhFOSwweDJDLDB4RkUsMHhGOSwweEMzLDB4NTAsMHg1MywweEU4LDB4Q0IsMHhGQywweDVCLDB4NTgsMHhBOCwweDAyLDB4NzQsCi0weDAzLDB4RTksMHgxQywweEZFLDB4RjgsMHhDMywweDMzLDB4REIsMHg4QSwweEQ4LDB4OEEsMHg4NywweDZDLDB4MTIsMHhFNiwweEZFLAotMHhDMSwweEUzLDB4MDIsMHhFOSwweEQwLDB4RkIsMHg5QSwweDFBLDB4QzYsMHgxQSwweDAwLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEEsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQywweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBBLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEUsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwQSwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDBDLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsCi0weDAyLDB4MDAsMHgwNiwweDAwLDB4MDIsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MEEsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLAotMHgwMiwweDAwLDB4MDYsMHgwMCwweDAyLDB4MDAsMHgwNCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwKLTB4MDIsMHgwMCwweDA2LDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDAyLDB4MDAsMHhDMywweDkwLDB4REEsMHgxNCwweDk0LDB4MTUsCi0weDVDLDB4MTMsMHhFNiwweDEzLDB4REEsMHgxQiwweERBLDB4MUIsMHhFNiwweDEzLDB4REEsMHgxQiwweDhCLDB4OTQsMHg2NCwweDEyLAotMHhDMSwweEU2LDB4MDQsMHhBOCwweDAxLDB4NzQsMHgzNSwweDUwLDB4MzMsMHhDMCwweDhBLDB4QzIsMHhFNiwweEZFLDB4RTQsMHhBMCwKLTB4ODUsMHhDMCwweDc0LDB4MjcsMHg4QiwweEQ4LDB4MkUsMHg4QSwweDlGLDB4REEsMHgxQSwweDUyLDB4NTYsMHgyRSwweDhCLDB4QTgsCi0weDQ0LDB4MDAsMHg4QiwweDU2LDB4MjgsMHhFQywweEE4LDB4MDEsMHg3NSwweDBELDB4ODgsMHg4NiwweEFELDB4MDAsMHgyNCwweDBFLAotMHg4QSwweEQ4LDB4MkUsMHhGRiwweDk3LDB4REMsMHgxQiwweDVFLDB4NUEsMHhFQiwweENELDB4NTgsMHhBOCwweDAyLDB4NzQsMHgzNiwKLTB4ODMsMHhDNiwweDEwLDB4MzMsMHhDMCwweDhBLDB4QzYsMHhFNiwweEZFLDB4RTQsMHhBMCwweDg1LDB4QzAsMHg3NCwweDI3LDB4OEIsCi0weEQ4LDB4MkUsMHg4QSwweDlGLDB4REEsMHgxQSwweDUyLDB4NTYsMHgyRSwweDhCLDB4QTgsMHg0NCwweDAwLDB4OEIsMHg1NiwweDI4LAotMHhFQywweEE4LDB4MDEsMHg3NSwweDBELDB4ODgsMHg4NiwweEFELDB4MDAsMHgyNCwweDBFLDB4OEEsMHhEOCwweDJFLDB4RkYsMHg5NywKLTB4REMsMHgxQiwweDVFLDB4NUEsMHhFQiwweENELDB4QzMsMHg5MCwweDMyLDB4RTQsMHg4QiwweEQ4LDB4OEIsMHhEMCwweDJFLDB4OEEsCi0weDlGLDB4OUEsMHgxOSwweDJFLDB4MjIsMHg5NywweDkyLDB4MTksMHg1NiwweDUyLDB4OEEsMHhDMywweDI0LDB4MDMsMHgwMywweEM2LAotMHg4MCwweEUzLDB4MDQsMHhEMCwweEVCLDB4MkUsMHhGRiwweDk3LDB4RDYsMHgxQSwweDU4LDB4NUUsMHhBOSwweDU1LDB4MDAsMHg3NSwKLTB4RDksMHhDMywweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsCi0weDIyLDB4QzQsMHg3NCwweDA4LDB4MzMsMHhGNiwweEU4LDB4QkYsMHhGRiwweEVCLDB4RUUsMHg5MCwweEU0LDB4MDQsMHgwNywweEU0LAotMHgwNCwweDFGLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwKLTB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgwOCwweEJFLDB4MDQsCi0weDAwLDB4RTgsMHg5NCwweEZGLDB4RUIsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLAotMHgyMiwweEZGLDB4RUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLDB4NUMsMHgxMiwKLTB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgxOCwweDMzLDB4RjYsMHhFOCwweDZCLDB4RkYsMHhBMSwweDYwLDB4MTIsCi0weEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4RTUsMHhCRSwweDA4LDB4MDAsMHhFOCwweDVBLDB4RkYsMHhFQiwweERELAotMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwKLTB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDQsMHgxRiwweEU0LDB4MDQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsCi0weEVGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVFLDB4MTIsMHhFNiwweEZFLAotMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4MTksMHhCRSwweDA0LDB4MDAsMHhFOCwweDFDLDB4RkYsMHhBMSwweDYyLDB4MTIsMHhFNiwKLTB4RkUsMHhFNCwweDAwLDB4MjIsMHhDNCwweDc0LDB4RTQsMHhCRSwweDBDLDB4MDAsMHhFOCwweDBCLDB4RkYsMHhFQiwweERDLDB4QTEsCi0weDYyLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweEExLAotMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDQsMHgxRiwweEU0LDB4MDQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwKLTB4NjEsMHhDRiwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsCi0weDg0LDB4QzQsMHg3NCwweDA4LDB4MzMsMHhGNiwweEU4LDB4NTMsMHhGRSwweEVCLDB4RUUsMHg5MCwweEI4LDB4MDAsMHg4MCwweEJBLAotMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwKLTB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MDgsMHhCRSwweDAyLDB4MDAsMHhFOCwweDJDLDB4RkUsCi0weEVCLDB4RUQsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLAotMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgwOCwKLTB4QkUsMHgwNCwweDAwLDB4RTgsMHgwNiwweEZFLDB4RUIsMHhFRCwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4MDcsCi0weDFGLDB4NjEsMHhDRiwweDkwLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDYyLDB4MTIsMHhFNiwweEZFLAotMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4MDgsMHhCRSwweDA2LDB4MDAsMHhFOCwweEUwLDB4RkQsMHhFQiwweEVELDB4QjgsMHgwMCwKLTB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsCi0weEQ4LDB4QTEsMHg1QywweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHgxOCwweDMzLDB4RjYsMHhFOCwweDM3LAotMHhGRSwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc0LDB4RTUsMHhCRSwweDA0LDB4MDAsMHhFOCwKLTB4QUEsMHhGRCwweEVCLDB4REQsMHhBMSwweDYwLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NSwweEVELDB4QTEsCi0weDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweDFGLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLAotMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsMHg1RSwweDEyLDB4RTYsMHhGRSwKLTB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NCwweDE5LDB4QkUsMHgwNCwweDAwLDB4RTgsMHhFQywweEZELDB4QTEsMHg2MiwweDEyLDB4RTYsCi0weEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweEU0LDB4QkUsMHgwNiwweDAwLDB4RTgsMHg1RiwweEZELDB4RUIsMHhEQywweEExLAotMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzUsMHhFRCwweEExLDB4NUUsMHgxMiwweEU2LDB4RkUsMHhFNCwKLTB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLDB4NjEsMHhDRiwweDYwLDB4MUUsCi0weDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDE4LAotMHgzMywweEY2LDB4RTgsMHgyNywweEZELDB4QTEsMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4MDAsMHgyMiwweEM0LDB4NzQsMHhFNSwKLTB4QkUsMHgwOCwweDAwLDB4RTgsMHg5MiwweEZELDB4RUIsMHhERCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDAwLDB4MjIsCi0weEM0LDB4NzUsMHhFRCwweEU0LDB4MDQsMHgwNywweEU0LDB4MDQsMHgxRiwweEI4LDB4MDAsMHg4MCwweEJBLDB4MjIsMHhGRiwweEVGLAotMHg2MSwweENGLDB4NjAsMHgxRSwweDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHhBMSwweDVFLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwKLTB4ODQsMHhDNCwweDc0LDB4MTksMHhCRSwweDAyLDB4MDAsMHhFOCwweEUyLDB4RkMsMHhBMSwweDYyLDB4MTIsMHhFNiwweEZFLDB4RTQsCi0weDAwLDB4MjIsMHhDNCwweDc0LDB4RTQsMHhCRSwweDBDLDB4MDAsMHhFOCwweDRELDB4RkQsMHhFQiwweERDLDB4QTEsMHg2MiwweDEyLAotMHhFNiwweEZFLDB4RTQsMHgwMCwweDIyLDB4QzQsMHg3NSwweEVELDB4RTQsMHgwNCwweDA3LDB4RTQsMHgwNCwweDFGLDB4QjgsMHgwMCwKLTB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwweEQ4LDB4QTEsCi0weDVDLDB4MTIsMHhFNiwweEZFLDB4RTQsMHg4MCwweDg0LDB4QzQsMHg3NCwweDE4LDB4MzMsMHhGNiwweEU4LDB4OUQsMHhGQywweEExLAotMHg2MCwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHhFNSwweEJFLDB4MDQsMHgwMCwweEU4LDB4OEMsMHhGQywKLTB4RUIsMHhERCwweEExLDB4NjAsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc1LDB4RUQsMHgwNywweDFGLDB4QjgsCi0weDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsMHhEOCwweEExLAotMHg1RSwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHgxOSwweEJFLDB4MDIsMHgwMCwweEU4LDB4NUMsMHhGQywKLTB4QTEsMHg2MiwweDEyLDB4RTYsMHhGRSwweEU0LDB4ODAsMHg4NCwweEM0LDB4NzQsMHhFNCwweEJFLDB4MDYsMHgwMCwweEU4LDB4NEIsCi0weEZDLDB4RUIsMHhEQywweEExLDB4NjIsMHgxMiwweEU2LDB4RkUsMHhFNCwweDgwLDB4ODQsMHhDNCwweDc1LDB4RUQsMHgwNywweDFGLAotMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDYxLDB4Q0YsMHg5MCwweDYwLDB4MUUsMHgwNiwweDJCLDB4QzAsMHg4RSwKLTB4RDgsMHg5MCwweDJBLDB4QzAsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LDB4MDEsMHg3NCwweDE0LDB4MzMsMHhEQiwweEU4LDB4RDUsCi0weEY2LDB4RUIsMHhFRiwweDkwLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLDB4RUYsMHgwNywweDFGLDB4NjEsMHhDRiwweDkwLAotMHhGNiwweDA2LDB4MDUsMHgwMSwweDAxLDB4NzUsMHhFRCwweEIwLDB4MDEsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LDB4MDEsMHg3NCwKLTB4RTMsMHhCQiwweDA0LDB4MDAsMHhFOCwweEFGLDB4RjYsMHhFQiwweEM5LDB4OTAsMHg2MCwweDFFLDB4MDYsMHgyQiwweEMwLDB4OEUsCi0weEQ4LDB4OTAsMHhGQiwweDkwLDB4RkEsMHgyQSwweEMwLDB4RTYsMHhGRSwweEU0LDB4Q0UsMHhBOCwweDAyLDB4NzQsMHgxMywweDMzLAotMHhEQiwweEU4LDB4Q0MsMHhGOCwweEVCLDB4RUMsMHhCOCwweDAwLDB4ODAsMHhCQSwweDIyLDB4RkYsMHhFRiwweDA3LDB4MUYsMHg2MSwKLTB4Q0YsMHg5MCwweEE4LDB4MDQsMHg3NCwweEYwLDB4MzMsMHhEQiwweEU4LDB4NUIsMHhGNywweEVCLDB4RDUsMHg5MCwweDYwLDB4MUUsCi0weDA2LDB4MkIsMHhDMCwweDhFLDB4RDgsMHg5MCwweEZCLDB4OTAsMHhGQSwweEIwLDB4MDEsMHhFNiwweEZFLDB4RTQsMHhDRSwweEE4LAotMHgwMiwweDc0LDB4MTUsMHhCQiwweDA0LDB4MDAsMHhFOCwweDk3LDB4RjgsMHhFQiwweEVCLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwweEE4LDB4MDQsMHg3NCwweEYwLDB4QkIsMHgwNCwweDAwLDB4RTgsCi0weDI0LDB4RjcsMHhFQiwweEQyLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgwOSwweDlDLDB4MEUsMHhFOCwweDZCLAotMHhGMiwweDkwLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgyOSwweDlDLDB4MEUsMHhFOCwweDVELDB4RjIsMHg5MCwKLTB4NzIsMHgyMCwweDcyLDB4MjAsMHg3MiwweDIwLDB4Q0UsMHgxRCwweDkyLDB4MUMsMHhFNiwweDFDLDB4MUEsMHgxRSwweDcyLDB4MjAsCi0weDgyLDB4MUQsMHhBRSwweDFFLDB4MzgsMHgxRiwweDcyLDB4MjAsMHg4MiwweDFELDB4NzIsMHgyMCwweDcyLDB4MjAsMHgzOCwweDFGLAotMHg3MiwweDIwLDB4NzIsMHgyMCwweDcyLDB4MjAsMHhGNCwweDFELDB4QkMsMHgxQywweDM0LDB4MUQsMHg2NCwweDFFLDB4NzIsMHgyMCwKLTB4QTgsMHgxRCwweEYyLDB4MUUsMHg3OCwweDFGLDB4NzIsMHgyMCwweEE4LDB4MUQsMHg3MiwweDIwLDB4NzIsMHgyMCwweDc4LDB4MUYsCi0weEZDLDB4QjksMHg0MCwweDAwLDB4OEMsMHhDQiwweEI4LDB4NjQsMHgyMCwweDJCLDB4RkYsMHhBQiwweDkzLDB4QUIsMHg5MywweEUyLAotMHhGQSwweEM3LDB4MDYsMHg0QywweDAwLDB4QTgsMHgxMSwweDgzLDB4M0UsMHg0NCwweDEyLDB4MDAsMHg3NSwweDIwLDB4QzcsMHgwNiwKLTB4M0MsMHgwMCwweDA4LDB4NEIsMHhDNywweDA2LDB4MzAsMHgwMCwweEJBLDB4MUYsMHhDNywweDA2LDB4MzQsMHgwMCwweEZBLDB4MUYsCi0weEY2LDB4MDYsMHgwNSwweDAxLDB4MDEsMHg3NSwweDA2LDB4QzcsMHgwNiwweDM4LDB4MDAsMHgyRSwweDIwLDB4QzMsMHhDNywweDA2LAotMHgzQywweDAwLDB4NTYsMHg0QiwweDMzLDB4REIsMHg4QSwweDFFLDB4NTQsMHgxMiwweEMxLDB4RTMsMHgwMiwweDAyLDB4MUUsMHg1NiwKLTB4MTIsMHgyRSwweDhCLDB4ODcsMHg4MCwweDIwLDB4QTMsMHgzMCwweDAwLDB4OEEsMHgxRSwweDU1LDB4MTIsMHhDMSwweEUzLDB4MDIsCi0weDAyLDB4MUUsMHg1NywweDEyLDB4MkUsMHg4QiwweDg3LDB4QTAsMHgyMCwweEEzLDB4MzQsMHgwMCwweEMzLDB4OEIsMHg4NiwweDlFLAotMHgwMCwweEU2LDB4RkUsMHg4NiwweEM0LDB4RTYsMHhEMCwweEMzLDB4OEIsMHg4NiwweDlFLDB4MDAsMHhFNiwweEZFLDB4MzMsMHhEMiwKLTB4OEEsMHhENCwweEMzLDB4NTEsMHhCOSwweDEwLDB4MjcsMHhFNCwweDBBLDB4OTAsMHg5MCwweDg0LDB4QzAsMHg3NCwweDA1LDB4RTIsCi0weEY2LDB4NTksMHhGOSwweEMzLDB4NTksMHhGOCwweEMzLDB4ODQsMHhDMCwweDc4LDB4MUUsMHg1MSwweDhBLDB4RTgsMHg4QSwweEM4LAotMHhCOCwweDAxLDB4MDAsMHhEMywweEUwLDB4MDksMHg4NiwweDk4LDB4MDAsMHgzQSwweEFFLDB4QTAsMHgwMCwweDU5LDB4NzUsMHgxMCwKLTB4RTgsMHhBOSwweEU1LDB4ODMsMHg0RSwweDI2LDB4MDIsMHhGOSwweEMzLDB4OTgsMHg4OSwweDg2LDB4OTgsMHgwMCwweEVCLDB4RjAsCi0weEY4LDB4QzMsMHg4NCwweEMwLDB4NzgsMHgxMiwweDUxLDB4OEEsMHhFMCwweDhBLDB4QzgsMHhCOCwweDAxLDB4MDAsMHhEMywweEUwLAotMHg1OSwweEY3LDB4RDAsMHgyMSwweDg2LDB4OTgsMHgwMCwweEMzLDB4QzcsMHg4NiwweDk4LDB4MDAsMHgwMCwweDAwLDB4QzMsMHg4MywKLTB4QzIsMHgwNCwweDhBLDB4ODYsMHhBNiwweDAwLDB4MEMsMHgwNCwweEVFLDB4ODMsMHhFQSwweDA0LDB4QzMsMHhFOCwweDkzLDB4RkYsCi0weDcyLDB4MDQsMHhCMCwweDgyLDB4RTYsMHgwQSwweEMzLDB4OEIsMHg0NiwweDI2LDB4QTgsMHhGRCwweDc0LDB4MTEsMHg4QSwweDg2LAotMHhBNSwweDAwLDB4QTgsMHgwNiwweDc0LDB4MDgsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsMHhGNiwKLTB4QzQsMHgwMSwweDc0LDB4MEEsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkIsMHgwQywweDAyLDB4RUIsMHgwQywweEE4LDB4MDIsCi0weDc1LDB4MEYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDI0LDB4RkQsMHgwQywweDA0LDB4M0EsMHg4NiwweEE1LDB4MDAsMHg3NSwweEQ4LAotMHhDMywweDhBLDB4ODYsMHhBNSwweDAwLDB4RUIsMHhDRiwweEU0LDB4RDgsMHgzMywweERCLDB4OEEsMHhEOCwweEMwLDB4RUIsMHgwNCwKLTB4MkUsMHg4QSwweDlGLDB4NjYsMHgxNywweDg4LDB4OUUsMHhBOSwweDAwLDB4OEIsMHg1RSwweDI2LDB4ODAsMHhFMywweDNGLDB4RjYsCi0weEM3LDB4MDQsMHg3NCwweDA3LDB4QTgsMHgxMCwweDc1LDB4MDMsMHg4MCwweENCLDB4NDAsMHhGNiwweEM3LDB4MDgsMHg3NCwweDA3LAotMHhBOCwweDgwLDB4NzUsMHgwMywweDgwLDB4Q0IsMHg0MCwweDg4LDB4NUUsMHgyNiwweDhBLDB4ODYsMHhBNSwweDAwLDB4RjYsMHhDMywKLTB4RkQsMHg3NCwweDBELDB4QTgsMHgwNiwweDc0LDB4MDgsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4QzMsCi0weEY2LDB4QzcsMHgwMSwweDc0LDB4MDQsMHgwQywweDAyLDB4RUIsMHhGMCwweEY2LDB4QzMsMHgwMiwweDc1LDB4RTksMHgwQywweDA0LAotMHhFQiwweEU3LDB4QzQsMHgwNCwweEM0LDB4MDQsMHg4NSwweDA0LDB4NTksMHgwNCwweDQ4LDB4MDQsMHg0MSwweDA0LDB4QzMsMHgwMywKLTB4ODIsMHgwMywweDQxLDB4MDMsMHg4MiwweDAyLDB4NTcsMHgwMiwweDQxLDB4MDIsMHg4MiwweDAxLDB4NDEsMHgwMSwweDgyLDB4MDAsCi0weDQxLDB4MDAsMHg0RSwweDAyLDB4QUQsMHgwMSwweDU3LDB4MDEsMHgyRCwweDAwLDB4MkIsMHgwMCwweDI3LDB4MDAsMHgyMSwweDAwLAotMHgxNiwweDAwLDB4RjQsMHgwNCwweEY0LDB4MDQsMHhBMywweDA0LDB4NkYsMHgwNCwweDVCLDB4MDQsMHg1MSwweDA0LDB4RjQsMHgwMywKLTB4QTMsMHgwMywweDUxLDB4MDMsMHhBMywweDAyLDB4NkQsMHgwMiwweDUxLDB4MDIsMHhBMywweDAxLDB4NTEsMHgwMSwweEEzLDB4MDAsCi0weDUxLDB4MDAsMHg2MiwweDAyLDB4RDksMHgwMSwweDZELDB4MDEsMHgzOCwweDAwLDB4MzYsMHgwMCwweDMxLDB4MDAsMHgyOSwweDAwLAotMHgxQiwweDAwLDB4NTEsMHg1NywweEJGLDB4MDIsMHgwMCwweEVCLDB4MEYsMHg5MCwweDUxLDB4NTYsMHhCRiwweDAxLDB4MDAsMHhFQiwKLTB4MDcsMHg5MCwweDUxLDB4NTYsMHhCRiwweDAzLDB4MDAsMHg5MCwweDNDLDB4MTksMHg3NiwweDAyLDB4QjAsMHgxNywweDk4LDB4OEIsCi0weEYwLDB4OEEsMHg4MiwweEM0LDB4MDAsMHgyQSwweEU0LDB4OEIsMHhGMCwweDgzLDB4RkUsMHgxOCwweDczLDB4NDYsMHhEMSwweEU2LAotMHgyRSwweDhCLDB4OEMsMHg1MiwweDIyLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDUsMHgyRSwweDhCLDB4OEMsMHg4MiwKLTB4MjIsMHhGNywweEM3LDB4MDIsMHgwMCwweDc0LDB4MTIsMHgzQiwweDhFLDB4OTQsMHgwMCwweDc0LDB4MEMsMHg4OSwweDhFLDB4OTQsCi0weDAwLDB4OEEsMHhDNSwweEU2LDB4RUMsMHg4QSwweEMxLDB4RTYsMHhFNCwweEY3LDB4QzcsMHgwMSwweDAwLDB4NzQsMHgxMiwweDNCLAotMHg4RSwweDk2LDB4MDAsMHg3NCwweDBDLDB4ODksMHg4RSwweDk2LDB4MDAsMHg4QSwweEM1LDB4RTYsMHhGOCwweDhBLDB4QzEsMHhFNiwKLTB4RjAsMHg1RSwweDU5LDB4QzMsMHg3NywweDA2LDB4OEIsMHg4RSwweDhFLDB4MDAsMHhFQiwweEM1LDB4OEIsMHg4RSwweDkwLDB4MDAsCi0weEVCLDB4QkYsMHhENSwweDAzLDB4RjYsMHgwMCwweDNFLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweENBLDB4MDQsMHgzMywweDAxLAotMHg0RCwweDAwLDB4MTQsMHgwMCwweDA1LDB4MDAsMHgwMSwweDAzLDB4MDUsMHgwNywweDA5LDB4MDAsMHgwMSwweDAyLDB4MDMsMHgwNCwKLTB4ODAsMHg4NCwweDFFLDB4MDAsMHhBMCwweDI1LDB4MjYsMHgwMCwweDAwLDB4MDAsMHg2MCwweDhCLDB4RjAsMHgzMywweEZGLDB4MkUsCi0weEExLDB4NTAsMHgyMywweDJFLDB4OEIsMHgxNiwweDUyLDB4MjMsMHhCQiwweDMyLDB4MjMsMHhGNywweDQ2LDB4MzgsMHg4MCwweDAwLAotMHg3NCwweDBDLDB4MkUsMHhBMSwweDU0LDB4MjMsMHgyRSwweDhCLDB4MTYsMHg1NiwweDIzLDB4QkIsMHgzQywweDIzLDB4QjksMHgwNSwKLTB4MDAsMHgyRSwweDNCLDB4MzEsMHg3MywweDBBLDB4NDcsMHg0NywweEUyLDB4RjcsMHhCOCwweEZGLDB4RkYsMHhFQiwweDFELDB4OTAsCi0weEQxLDB4RUYsMHgyRSwweDhBLDB4OEQsMHg0NiwweDIzLDB4MkEsMHhFRCwweEQxLDB4RUEsMHhEMSwweEQ4LDB4RTIsMHhGQSwweEY3LAotMHhGNiwweDA1LDB4MDIsMHgwMCwweEMxLDB4RTgsMHgwMiwweDJFLDB4OEEsMHhBNSwweDRCLDB4MjMsMHgyRSwweEEzLDB4NTgsMHgyMywKLTB4NjEsMHgyRSwweEExLDB4NTgsMHgyMywweEMzLDB4MDgsMHgwMCwweDIwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMiwweDYwLDB4MDksCi0weDA4LDB4MDAsMHgyMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMiwweDAwLAotMHgwMywweDAwLDB4MDQsMHgwMCwweDUyLDB4NTYsMHg1NywweDg1LDB4QzAsMHg3NCwweDA1LDB4M0QsMHgwMSwweDA5LDB4NzYsMHgwMywKLTB4QjgsMHgwMSwweDA5LDB4QkYsMHg1QiwweDAxLDB4RjcsMHg0NiwweDM4LDB4ODAsMHgwMCwweDc0LDB4MDMsMHhCRiwweEIyLDB4MDEsCi0weDMzLDB4RjYsMHgyRSwweDNCLDB4ODQsMHhCNiwweDIzLDB4NzYsMHgwNCwweDQ2LDB4NDYsMHhFQiwweEY1LDB4RjcsMHhFNywweDJFLAotMHg4QiwweEJDLDB4QzAsMHgyMywweDAzLDB4QzcsMHg4MywweEQyLDB4MDAsMHhEMSwweEU3LDB4RjcsMHhGNywweDJFLDB4OEEsMHhBNCwKLTB4Q0EsMHgyMywweDVGLDB4NUUsMHg1QSwweEMzLDB4RTQsMHgzRSwweDgwLDB4QkUsMHhDMywweDAwLDB4MDMsMHg3NSwweDBDLDB4RjcsCi0weDQ2LDB4N0EsMHgyMCwweDAwLDB4NzQsMHgwNSwweDBDLDB4ODAsMHhFNiwweDNFLDB4QzMsMHgyNCwweDdGLDB4RTYsMHgzRSwweEMzLAotMHgyNCwweDAzLDB4ODgsMHg4NiwweEMzLDB4MDAsMHg4QSwweEUwLDB4RTQsMHgxMCwweDI0LDB4RkMsMHgwQSwweEM0LDB4RTYsMHgxMCwKLTB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwweEU4LDB4Q0UsMHhGRiwweEMzLDB4OTAsMHg1NiwweDhCLDB4RjAsMHg4MywweEU2LDB4MDcsCi0weEQxLDB4RTYsMHgyRSwweEZGLDB4QTQsMHg1OCwweDI0LDB4OTAsMHg2OCwweDI0LDB4NkMsMHgyNCwweDcwLDB4MjQsMHg3NCwweDI0LAotMHg3OCwweDI0LDB4ODcsMHgyNCwweDg3LDB4MjQsMHg4NywweDI0LDB4QjQsMHgwMCwweEVCLDB4MEUsMHhCNCwweEMwLDB4RUIsMHgwQSwKLTB4QjQsMHg0MCwweEVCLDB4MDYsMHhCNCwweDIwLDB4RUIsMHgwMiwweEI0LDB4QTAsMHhFNCwweDEwLDB4MjQsMHgxRiwweDBBLDB4QzQsCi0weEU2LDB4MTAsMHg4MCwweDhFLDB4QTEsMHgwMCwweDQyLDB4NUUsMHhDMywweDkwLDB4M0MsMHgwMiwweDc3LDB4MTIsMHg4QSwweEUwLAotMHhFNCwweDEwLDB4MjQsMHhGMywweEMwLDB4RTQsMHgwMiwweDBBLDB4QzQsMHhFNiwweDEwLDB4ODAsMHg4RSwweEExLDB4MDAsMHg0MiwKLTB4QzMsMHg5MCwweDhCLDB4NUUsMHgzOCwweDg0LDB4QzAsMHg3NCwweDFGLDB4M0MsMHgwMiwweDc0LDB4MjAsMHg4MywweENCLDB4MDgsCi0weDhCLDB4NDYsMHgyRSwweDNCLDB4NDYsMHgzQywweDc3LDB4MEMsMHhFOCwweDg4LDB4RkMsMHg3MiwweDA3LDB4QjAsMHgyNCwweEU2LAotMHgwQSwweDgzLDB4Q0IsMHgxMCwweDg5LDB4NUUsMHgzOCwweEMzLDB4ODMsMHhFMywweEY3LDB4RUIsMHhGNywweEY3LDB4QzMsMHgxMCwKLTB4MDAsMHg3NCwweEY1LDB4RTgsMHg2RCwweEZDLDB4NzIsMHhFQywweDhBLDB4ODYsMHhDMCwweDAwLDB4RTYsMHgzOCwweEIwLDB4MjMsCi0weEU2LDB4MEEsMHhFQiwweEUwLDB4OEIsMHg1RSwweDM4LDB4OEIsMHg0NiwweDJFLDB4M0IsMHg0NiwweDNDLDB4RTQsMHhEOCwweDc3LAotMHgwQiwweDI0LDB4RkUsMHg4MCwweENCLDB4MTIsMHhFNiwweEQ4LDB4ODksMHg1RSwweDM4LDB4QzMsMHgwQywweDAxLDB4ODAsMHhDQiwKLTB4MDIsMHhFQiwweEYzLDB4NTAsMHgzMywweERCLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDBGLDB4OEEsMHhEOCwweDJFLDB4OEEsCi0weDg3LDB4NjYsMHgxNywweDhBLDB4REMsMHgyRSwweDhBLDB4QTcsMHg2NiwweDE3LDB4MDksMHg0NiwweDNFLDB4NTgsMHhDMywweDUwLAotMHgzMywweERCLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDBGLDB4OEEsMHhEOCwweDJFLDB4OEEsMHg4NywweDY2LDB4MTcsMHg4QSwKLTB4REMsMHgyRSwweDhBLDB4QTcsMHg2NiwweDE3LDB4RjcsMHhEMCwweDIxLDB4NDYsMHgzRSwweDU4LDB4QzMsMHg4QiwweDQ2LDB4M0UsCi0weDMzLDB4REIsMHg4QSwweEQ4LDB4MEEsMHhEQywweDJFLDB4OEEsMHg4NywweDc2LDB4MTcsMHhFNiwweDJDLDB4OEEsMHhFMCwweEU0LAotMHgyQSwweDI0LDB4MEYsMHgwQSwweEM0LDB4RTYsMHgyQSwweDhBLDB4ODYsMHhBNSwweDAwLDB4ODQsMHhFNCwweDc1LDB4MEQsMHhBOCwKLTB4ODAsMHg3NCwweDExLDB4MjQsMHg3RiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEMzLDB4QTgsMHg4MCwweDc1LDB4MDQsCi0weDBDLDB4ODAsMHhFQiwweEYxLDB4QzMsMHgxRSwweDYwLDB4MzMsMHhDOSwweDMzLDB4RDIsMHgzMywweEY2LDB4OEUsMHhEOSwweDhELAotMHhCRSwweEZELDB4MDAsMHg1NywweDhCLDB4MDUsMHg4NCwweEMwLDB4NzQsMHgxNiwweDhCLDB4RDEsMHg0MiwweDhCLDB4RkUsMHg0RiwKLTB4NzgsMHgwOSwweDM4LDB4QTMsMHhFNCwweDAwLDB4NzQsMHgwOCwweDRGLDB4NzksMHhGNywweDg4LDB4QTIsMHhFNCwweDAwLDB4NDYsCi0weDVGLDB4ODMsMHhDNywweDA5LDB4NDEsMHg4MywweEY5LDB4MTAsMHg3MiwweEQ5LDB4ODksMHhCNiwweDg2LDB4MDAsMHg4OSwweDk2LAotMHg4NCwweDAwLDB4NjEsMHgxRiwweEMzLDB4NTMsMHhDNywweDQ2LDB4NjYsMHgwMCwweDAwLDB4OEIsMHg0NiwweDY0LDB4QTksMHg0MCwKLTB4MDAsMHg3NCwweDBELDB4QjMsMHgwMCwweEE5LDB4ODAsMHgwMCwweDc0LDB4MDIsMHhCMywweDdGLDB4ODgsMHg5RSwweEMxLDB4MDAsCi0weDMyLDB4REIsMHhBOSwweDAyLDB4MDAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDQwLDB4QTksMHgwMCwweDQwLDB4NzQsMHgwMywweDgwLAotMHhDQiwweDAyLDB4QTksMHgwMCwweDgwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMSwweEE5LDB4MzAsMHgxRSwweDc0LDB4MDMsMHg4MCwKLTB4Q0IsMHhCQywweEE5LDB4MDAsMHgyMCwweDc0LDB4MDMsMHg4MCwweENCLDB4MDgsMHhBOSwweDA0LDB4MDEsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4MTAsMHhBOSwweDA4LDB4MDAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDIwLDB4ODgsMHg5RSwweEMyLDB4MDAsMHg1QiwweEMzLAotMHgwNiwweDUxLDB4NTcsMHg1MCwweDE2LDB4MDcsMHg4RCwweEJFLDB4QzQsMHgwMCwweEI5LDB4MUYsMHgwMCwweDMzLDB4QzAsMHhBQSwKLTB4NDAsMHhFMiwweEZDLDB4OEIsMHg4NiwweDkyLDB4MDAsMHg4OSwweDg2LDB4OEUsMHgwMCwweDg5LDB4ODYsMHg5MCwweDAwLDB4NTgsCi0weDVGLDB4NTksMHgwNywweEMzLDB4RTQsMHhEOCwweEMwLDB4RTgsMHgwNCwweDUzLDB4MjUsMHgwRiwweDAwLDB4OEIsMHhEOCwweDJFLAotMHg4QSwweDg3LDB4NjYsMHgxNywweDg4LDB4ODYsMHhBOSwweDAwLDB4NUEsMHhDMywweDA4LDB4ODYsMHhBQywweDAwLDB4QzYsMHg4NiwKLTB4QkEsMHgwMCwweDAxLDB4QjAsMHgwRSwweEU4LDB4RUEsMHhFOSwweEMzLDB4QUQsMHgzNiwweEEzLDB4QjQsMHgxMywweEFELDB4MzYsCi0weEEzLDB4QjYsMHgxMywweEFELDB4MzYsMHhBMywweEI4LDB4MTMsMHg4MywweEU5LDB4MDYsMHgzNiwweEY3LDB4MDYsMHhCNiwweDEzLAotMHgwRiwweDAwLDB4QzMsMHg4QSwweDQ2LDB4MjYsMHhGNywweDQ2LDB4NDgsMHg4MCwweDAwLDB4NzQsMHgwMiwweDBDLDB4MTAsMHg4OCwKLTB4ODYsMHhCRCwweDAwLDB4MzIsMHhDMCwweDgzLDB4N0UsMHgxQSwweDAwLDB4NzUsMHgwRSwweDhCLDB4NUUsMHg0MCwweDQzLDB4ODAsCi0weEUzLDB4RkUsMHgzQiwweDVFLDB4MDgsMHg3NSwweDAyLDB4MEMsMHgwMSwweDgzLDB4N0UsMHgzQSwweDAwLDB4NzUsMHgwRCwweDFFLAotMHhDNSwweDVFLDB4MTQsMHg4QiwweDFGLDB4MUYsMHg4NSwweERCLDB4NzUsMHgwMiwweDBDLDB4MDIsMHhGNywweDQ2LDB4MzgsMHgxMCwKLTB4MDAsMHg3NCwweDAyLDB4MEMsMHgwNCwweDhCLDB4NUUsMHg3QSwweEY3LDB4QzMsMHgwMiwweDAwLDB4NzQsMHgwMiwweDBDLDB4MDgsCi0weEY3LDB4QzMsMHgwNCwweDAwLDB4NzQsMHgwMiwweDBDLDB4MTAsMHhGNywweEMzLDB4MDgsMHgwMCwweDc0LDB4MDIsMHgwQywweDIwLAotMHhGNywweEMzLDB4NDAsMHgwMCwweDc0LDB4MDIsMHgwQywweDQwLDB4ODgsMHg4NiwweEJGLDB4MDAsMHhDMywweDkwLDB4NkEsMHgwMCwKLTB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDBELDB4OUMsMHgwRSwweEU4LDB4RjEsMHhFQiwweDkwLDB4QjAsMHgwMiwweEU2LDB4REEsCi0weEY4LDB4QzMsMHgzMywweEMwLDB4RTYsMHhEQSwweEY4LDB4QzMsMHhCMCwweDAxLDB4RTYsMHhEOCwweEY4LDB4QzMsMHgzMywweEMwLAotMHhFNiwweEQ4LDB4RjgsMHhDMywweEIwLDB4RkYsMHhFOCwweDRFLDB4RkEsMHhFOCwweEExLDB4RkEsMHhGOCwweEMzLDB4QUMsMHg0OSwKLTB4RTgsMHhBRiwweEZCLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4MTUsMHhGRCwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksCi0weEU4LDB4NjcsMHhGRCwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDFGLDB4RkQsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LAotMHhFNiwweDM0LDB4RjgsMHhDMywweEFDLDB4NDksMHhFNiwweDM2LDB4RjgsMHhDMywweEFDLDB4NDksMHgzQywweDAyLDB4NzcsMHgxRiwKLTB4ODQsMHhDMCwweDc1LDB4MUQsMHhFNCwweDE0LDB4MjQsMHhFRiwweEU2LDB4MTQsMHhFNCwweDEyLDB4MjQsMHgzRiwweEU2LDB4MTIsCi0weEU0LDB4MTYsMHhBOCwweDA0LDB4NzQsMHgwOSwweEU4LDB4RUEsMHhGOSwweDcyLDB4MDQsMHhCMCwweDE4LDB4RTYsMHgwQSwweEY4LAotMHhDMywweDhBLDB4RTAsMHhFNCwweDE0LDB4MEMsMHgxMCwweEU2LDB4MTQsMHhFNCwweDEyLDB4MEMsMHhDMCwweEY2LDB4QzQsMHgwMSwKLTB4NzQsMHgwMiwweDI0LDB4N0YsMHhFNiwweDEyLDB4RjgsMHhDMywweEFDLDB4NDksMHhFOCwweDI1LDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4MDAsMHg0MCwweEU4LDB4N0QsMHhGRCwweEU4LDB4QjQsMHhGRCwweEU4LDB4QTgsMHhGRSwweEIwLDB4MDEsMHhFOCwweEI5LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg0MCwweEU4LDB4ODUsMHhGRCwweEU4LDB4QTAsMHhGRCwweEY4LDB4QzMsMHg5MCwKLTB4QjgsMHgwMCwweDEwLDB4RTgsMHg1RCwweEZELDB4RTgsMHg5NCwweEZELDB4RTgsMHg4OCwweEZFLDB4QjAsMHgwOCwweEU4LDB4OTksCi0weEZFLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDEwLDB4RTgsMHg2NSwweEZELDB4RTgsMHg4MCwweEZELDB4RjgsMHhDMywweDkwLAotMHhCOCwweDAwLDB4ODAsMHhFOCwweDNELDB4RkQsMHhFOCwweDc0LDB4RkQsMHhFOCwweDY4LDB4RkUsMHhCMCwweDAyLDB4RTgsMHg3OSwKLTB4RkUsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4ODAsMHhFOCwweDQ1LDB4RkQsMHhFOCwweDYwLDB4RkQsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4MDAsMHgyMCwweEU4LDB4MUQsMHhGRCwweEU4LDB4NTQsMHhGRCwweEU4LDB4NDgsMHhGRSwweEIwLDB4MDQsMHhFOCwweDU5LAotMHhGRSwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHgyMCwweEU4LDB4MjUsMHhGRCwweEU4LDB4NDAsMHhGRCwweEY4LDB4QzMsMHg5MCwKLTB4QUMsMHg0OSwweEU4LDB4NDgsMHgxNCwweEU0LDB4M0MsMHgyNCwweEU3LDB4MEEsMHhDNCwweEU2LDB4M0MsMHhGOCwweEMzLDB4OTAsCi0weEI4LDB4RkMsMHgzQiwweDg5LDB4NDYsMHg3QywweEU0LDB4M0MsMHgwQywweDE4LDB4RTYsMHgzQywweEY4LDB4QzMsMHhFNCwweDEyLAotMHgwQywweDAyLDB4RTYsMHgxMiwweEY4LDB4QzMsMHhFNCwweDEyLDB4MjQsMHhGRCwweEVCLDB4RjYsMHhFOCwweEI1LDB4RkMsMHhGOCwKLTB4QzMsMHg5MCwweDgzLDB4NjYsMHgzOCwweEZELDB4RjgsMHhDMywweEFDLDB4NDksMHhBOCwweDAxLDB4NzQsMHgwNiwweDgzLDB4NEUsCi0weDdBLDB4MjAsMHhFQiwweDA0LDB4ODMsMHg2NiwweDdBLDB4REYsMHhFOCwweENCLDB4RkIsMHhGOCwweEMzLDB4OTAsMHg4QSwweDg2LAotMHhBNSwweDAwLDB4MEMsMHgwMiwweDI0LDB4RkIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweDRFLDB4MjYsMHgwMSwKLTB4MjAsMHhBQywweDQ5LDB4MzIsMHhFNCwweDg5LDB4NDYsMHg2RSwweDgzLDB4NEUsMHg0OCwweDA4LDB4NDksMHg0NiwweEY5LDB4QzMsCi0weDhBLDB4ODYsMHhBNSwweDAwLDB4MEMsMHgwMiwweDI0LDB4RkIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg4MSwweDRFLAotMHgyNiwweDAxLDB4MjAsMHhBQywweEI0LDB4MEEsMHhGNiwweEU0LDB4RUIsMHhEOCwweEU4LDB4RkEsMHgxMywweEU0LDB4M0MsMHgyNCwKLTB4RjgsMHgwQSwweEM0LDB4RTYsMHgzQywweEY4LDB4QzMsMHg5MCwweEFELDB4NDksMHg0OSwweDg5LDB4NDYsMHg2NCwweEE5LDB4MDEsCi0weDAwLDB4NzQsMHgxQiwweDhCLDB4RDgsMHg4MywweEUzLDB4RkEsMHg3NSwweDFBLDB4QTksMHgwNCwweDAwLDB4NzQsMHgwRiwweEU0LAotMHgzRSwweDBDLDB4MDIsMHhFNiwweDNFLDB4QjgsMHgzOCwweDQ0LDB4ODksMHg0NiwweDYyLDB4RjgsMHhDMywweDkwLDB4RTQsMHgzRSwKLTB4MjQsMHhGQywweEVCLDB4RUYsMHhFNCwweDNFLDB4MjQsMHhGQywweEU2LDB4M0UsMHhFOCwweEU4LDB4RkMsMHhCOCwweEFBLDB4NDAsCi0weEVCLDB4RTYsMHhFOCwweDZFLDB4RjgsMHg3MiwweDA1LDB4QjAsMHgxOCwweEU2LDB4MEEsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LAotMHhFOCwweENGLDB4RjksMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHhDRiwweEY5LDB4RjgsMHhDMywweDkwLDB4RTgsMHg2OCwKLTB4RkQsMHg3NSwweDA2LDB4MzIsMHhDMCwweEU2LDB4REEsMHhGOCwweEMzLDB4QjAsMHgwMiwweEU2LDB4REEsMHgzNiwweEEwLDB4QjQsCi0weDEzLDB4MjQsMHgxMCwweDM0LDB4MTAsMHhFOCwweDE2LDB4MDEsMHgzNiwweEExLDB4QjQsMHgxMywweEE5LDB4MDEsMHgwMCwweDc0LAotMHgwNSwweEU4LDB4RkMsMHhGRSwweEVCLDB4MEUsMHhBOSwweDAyLDB4MDAsMHg3NCwweDA0LDB4MzIsMHhDMCwweEVCLDB4MDIsMHhCMCwKLTB4MDEsMHhFOCwweERFLDB4RkUsMHgzNiwweEExLDB4QjQsMHgxMywweEU4LDB4QjUsMHgxMywweEU0LDB4M0MsMHgyNCwweEY4LDB4MEEsCi0weEM0LDB4RTYsMHgzQywweDM2LDB4QTEsMHhCNCwweDEzLDB4QzEsMHhFOCwweDA1LDB4MjUsMHgwMSwweDAwLDB4RTgsMHhGQSwweEZFLAotMHgzNiwweEEwLDB4QjUsMHgxMywweDI0LDB4MTAsMHhFOCwweDU5LDB4RkIsMHgzMiwweEMwLDB4MzYsMHg4QSwweDI2LDB4QjUsMHgxMywKLTB4RjYsMHhDNCwweDA0LDB4NzQsMHgwOSwweEZFLDB4QzAsMHhGNiwweEM0LDB4MDgsMHg3NCwweDAyLDB4RkUsMHhDMCwweEU4LDB4REIsCi0weEZELDB4MzYsMHhBMSwweEI2LDB4MTMsMHgyNSwweDBGLDB4MDAsMHhFOCwweDU3LDB4RjksMHgzNiwweEExLDB4QjYsMHgxMywweEMxLAotMHhFOCwweDA0LDB4MjUsMHgwMywweDAwLDB4RTgsMHhCOCwweEZBLDB4MzYsMHhBMSwweEI2LDB4MTMsMHhDMSwweEU4LDB4MDUsMHgyNSwKLTB4MDIsMHgwMCwweEU4LDB4MDUsMHhGQiwweDM2LDB4QTEsMHhCNiwweDEzLDB4RjYsMHhDNCwweDAxLDB4NzUsMHgwNCwweDMyLDB4QzAsCi0weEVCLDB4MDksMHg4MCwweEU0LDB4MDIsMHhEMCwweEVDLDB4QjAsMHgwMiwweDJBLDB4QzQsMHhFOCwweEFDLDB4RkEsMHgzNiwweEY2LAotMHgwNiwweEI3LDB4MTMsMHg0MCwweDc0LDB4MDUsMHhFOCwweDgzLDB4RkUsMHhFQiwweDAzLDB4RTgsMHg4NCwweEZFLDB4MzYsMHhGNiwKLTB4MDYsMHhCNywweDEzLDB4MjAsMHg3NCwweDA1LDB4RTgsMHg2NSwweEZFLDB4RUIsMHgwMywweEU4LDB4NjgsMHhGRSwweEY4LDB4QzMsCi0weEU0LDB4MTIsMHgwQywweDAxLDB4RTYsMHgxMiwweEY4LDB4QzMsMHhFNCwweDEyLDB4MjQsMHhGRSwweEVCLDB4RjYsMHhFNCwweDE0LAotMHgyNCwweEYwLDB4MEMsMHgwNSwweEU2LDB4MTQsMHhFNCwweDJBLDB4MjQsMHhGMCwweDBDLDB4MDYsMHhFNiwweDJBLDB4RjgsMHhDMywKLTB4RTQsMHgyQSwweDI0LDB4RjAsMHhFNiwweDJBLDB4RTQsMHgxNCwweDI0LDB4RjAsMHgwQywweDA3LDB4RTYsMHgxNCwweEY4LDB4QzMsCi0weEFELDB4NDksMHg0OSwweEU4LDB4NjQsMHhGOSwweDg5LDB4ODYsMHg4RSwweDAwLDB4RjgsMHhDMywweEFELDB4NDksMHg0OSwweEU4LAotMHg1OCwweEY5LDB4ODksMHg4NiwweDkwLDB4MDAsMHhGOCwweEMzLDB4ODMsMHg0RSwweDI2LDB4MDQsMHhFOCwweEE4LDB4RjcsMHhGOCwKLTB4QzMsMHg5MCwweDgzLDB4NjYsMHgyNiwweEZCLDB4RTgsMHg5RSwweEY3LDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweDg0LDB4QzAsCi0weDc1LDB4MEQsMHhFNCwweDEwLDB4MjQsMHhFRiwweEU2LDB4MTAsMHg4MCwweDhFLDB4QTEsMHgwMCwweDQyLDB4RjgsMHhDMywweEU0LAotMHgxMCwweDBDLDB4MTAsMHhFQiwweEYxLDB4OTAsMHhBQywweDQ5LDB4M0MsMHgwMiwweDc2LDB4MDIsMHgzMiwweEMwLDB4QzAsMHhFMCwKLTB4MDQsMHhBOCwweDIwLDB4NzQsMHgwMiwweDBDLDB4MDgsMHgyNCwweDE4LDB4OEEsMHhFMCwweEU0LDB4MTIsMHgyNCwweEU3LDB4MEEsCi0weEM0LDB4RTYsMHgxMiwweDgwLDB4OEUsMHhBMSwweDAwLDB4NDQsMHhGOCwweEMzLDB4QUMsMHg0OSwweDg4LDB4ODYsMHhDMCwweDAwLAotMHhGOCwweEMzLDB4QUMsMHg0OSwweEU2LDB4M0EsMHhGOCwweEMzLDB4QUMsMHg0OSwweDg0LDB4QzAsMHg3NCwweDA4LDB4RTQsMHgxMiwKLTB4MEMsMHgwNCwweEU2LDB4MTIsMHhGOCwweEMzLDB4RTQsMHgxMiwweDI0LDB4RkIsMHhFQiwweEY2LDB4QUMsMHg0OSwweEU4LDB4RDYsCi0weEY2LDB4NzMsMHgwMywweEU4LDB4MjcsMHhGNywweEY4LDB4QzMsMHhFNCwweDEyLDB4QTgsMHgwMiwweDc0LDB4MDQsMHgyNCwweEZELAotMHhFNiwweDEyLDB4QjgsMHhGMCwweDAwLDB4RTgsMHg4NywweEZBLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGMywweEU4LDB4NTcsMHhGNywKLTB4RTgsMHg5QSwweEZBLDB4RjgsMHhDMywweDkwLDB4QjgsMHg4MCwweDAwLDB4RTgsMHg1NywweEZBLDB4ODAsMHg0RSwweDI3LDB4MDgsCi0weEU4LDB4NDQsMHhGNywweEU4LDB4ODcsMHhGQSwweEY4LDB4QzMsMHhCOCwweDgwLDB4MDAsMHhFOCwweDYxLDB4RkEsMHg4MSwweDY2LAotMHgyNiwweEZGLDB4RjcsMHhFOCwweDMxLDB4RjcsMHhFOCwweDc0LDB4RkEsMHhGOCwweEMzLDB4OTAsMHhCOCwweDEwLDB4MDAsMHhFOCwKLTB4MzEsMHhGQSwweDgwLDB4NEUsMHgyNywweDA0LDB4RTgsMHgxRSwweEY3LDB4RTgsMHg2MSwweEZBLDB4RjgsMHhDMywweEI4LDB4MTAsCi0weDAwLDB4RTgsMHgzQiwweEZBLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGQiwweEU4LDB4MEIsMHhGNywweEU4LDB4NEUsMHhGQSwweEY4LAotMHhDMywweDkwLDB4MzMsMHhDMCwweEFDLDB4NDksMHgzQywweDAxLDB4NzMsMHgwNCwweEIwLDB4MDEsMHhFQiwweDA2LDB4M0MsMHgwQywKLTB4NzYsMHgwMiwweEIwLDB4MEMsMHg4OSwweDQ2LDB4MUMsMHhGOCwweEMzLDB4OTAsMHg4MSwweDRFLDB4MjYsMHgwMCwweDIwLDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHgyNCwweEZCLDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4ODMsMHg0RSwweDI2LAotMHgwMSwweEY4LDB4QzMsMHg5MCwweDgxLDB4NEUsMHgyNiwweDAwLDB4NDAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHg1MCwweEU4LDB4MDUsMHhGNiwweDU4LDB4NzIsCi0weDA4LDB4RTYsMHgzOCwweEIwLDB4MjMsMHhFNiwweDBBLDB4RjgsMHhDMywweEY5LDB4QzMsMHg5MCwweEFDLDB4NTAsMHhBRCwweEU4LAotMHg4MiwweEY4LDB4NUEsMHhGNiwweEMyLDB4MDEsMHg3NCwweDEyLDB4MzksMHg4NiwweDk2LDB4MDAsMHg3NCwweDBDLDB4ODksMHg4NiwKLTB4OTYsMHgwMCwweEU2LDB4RjAsMHg4NiwweEUwLDB4RTYsMHhGOCwweDg2LDB4RTAsMHhGNiwweEMyLDB4MDIsMHg3NCwweDEwLDB4MzksCi0weDg2LDB4OTQsMHgwMCwweDc0LDB4MEEsMHg4OSwweDg2LDB4OTQsMHgwMCwweEU2LDB4RTQsMHg4NiwweEUwLDB4RTYsMHhFQywweDgzLAotMHhFOSwweDAzLDB4QzMsMHg5MCwweEU0LDB4MTYsMHg4OCwweDg2LDB4QkMsMHgwMCwweEU4LDB4RTYsMHhGQSwweDMzLDB4REIsMHhFNCwKLTB4MEMsMHhBOCwweDA2LDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwMSwweEE4LDB4MTAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDAyLDB4QTgsCi0weDgwLDB4NzQsMHgwMywweDgwLDB4Q0IsMHgwNCwweEU0LDB4MTIsMHg4QSwweEUwLDB4MjQsMHgxOCwweDBBLDB4RDgsMHhFNCwweERBLAotMHhGNiwweEM0LDB4MDIsMHg3NCwweDA3LDB4QTgsMHg0MCwweDc1LDB4MDMsMHg4MCwweENCLDB4MjAsMHhBOCwweDAyLDB4NzUsMHgwOSwKLTB4RTQsMHgyQSwweEE4LDB4MEYsMHg3NCwweDAzLDB4ODAsMHhDQiwweDQwLDB4RjcsMHg0NiwweDM4LDB4MDIsMHgwMCwweDc0LDB4MDksCi0weEU0LDB4RDgsMHhBOCwweDAxLDB4NzUsMHgwMywweDgwLDB4Q0IsMHg4MCwweDg4LDB4OUUsMHhCRSwweDAwLDB4RkUsMHg4NiwweEI0LAotMHgwMCwweEIwLDB4MEEsMHhFOCwweDVDLDB4RTQsMHhGOCwweEMzLDB4QUMsMHg0OSwweDNDLDB4MDIsMHg3NCwweDQxLDB4NzcsMHgxRiwKLTB4NTAsMHhFOCwweDRGLDB4RjUsMHg1OCwweDcyLDB4MEMsMHg4NCwweEMwLDB4NzQsMHgwQSwweEIwLDB4MTIsMHhFNiwweDBBLDB4ODAsCi0weDRFLDB4MzgsMHgwMSwweEY4LDB4QzMsMHhCMCwweDExLDB4RTYsMHgwQSwweDgwLDB4NjYsMHgzOCwweEZFLDB4RjgsMHhDMywweDhCLAotMHg0NiwweDM4LDB4MjUsMHhGRiwweEY3LDB4ODksMHg0NiwweDM4LDB4QTksMHgwMCwweDA0LDB4NzUsMHhFNiwweDhBLDB4ODYsMHhBNSwKLTB4MDAsMHhBOCwweDEwLDB4NzUsMHhERSwweDBDLDB4MTAsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhGOCwweEMzLDB4ODEsCi0weDRFLDB4MzgsMHgwMCwweDA4LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDEwLDB4NzQsMHhDNywweDI0LDB4RUYsMHhFQiwweEU3LAotMHhBRCwweDQ5LDB4NDksMHgzQywweDAxLDB4NzIsMHgxMSwweDNDLDB4MEMsMHg3NywweDBELDB4NTAsMHg4QSwweEUwLDB4RTQsMHgxNCwKLTB4MjUsMHhGMCwweDBGLDB4MEEsMHhDNCwweEU2LDB4MTQsMHg1OCwweDhBLDB4QzQsMHg4NCwweEMwLDB4NzQsMHgwMiwweEU2LDB4NDIsCi0weEY4LDB4QzMsMHhFOCwweENGLDB4RjksMHhGRSwweDg2LDB4QjksMHgwMCwweEIwLDB4MEUsMHhFOCwweEQ0LDB4RTMsMHhGOCwweEMzLAotMHgzQSwweDg2LDB4QUYsMHgwMCwweDc0LDB4MUYsMHg4OCwweDg2LDB4QUYsMHgwMCwweDhBLDB4RTAsMHg4MCwweEMyLDB4MDYsMHhCMCwKLTB4QkYsMHhFRSwweDgwLDB4RUEsMHgwMiwweDhBLDB4QzQsMHhFRSwweDhBLDB4ODYsMHhBOCwweDAwLDB4ODAsMHhDMiwweDAyLDB4RUUsCi0weDgwLDB4RUEsMHgwNiwweDhBLDB4QzQsMHhDMywweDhCLDB4NDYsMHgzRSwweDg1LDB4QzAsMHg4QSwweDg2LDB4QTUsMHgwMCwweDc0LAotMHgxMiwweEE4LDB4MDgsMHg3NSwweDBELDB4MEMsMHgwOCwweDg4LDB4ODYsMHhBNSwweDAwLDB4ODAsMHhDMiwweDAyLDB4RUUsMHg4MCwKLTB4RUEsMHgwMiwweEMzLDB4QTgsMHgwOCwweDc0LDB4RkIsMHgyNCwweEY3LDB4RUIsMHhFQywweDhCLDB4NDYsMHgyNiwweDg0LDB4QzAsCi0weDc0LDB4MTYsMHg4QSwweDg2LDB4QTUsMHgwMCwweEE4LDB4MDIsMHg3NCwweDBELDB4MjQsMHhGRCwweDg4LDB4ODYsMHhBNSwweDAwLAotMHg4MywweEMyLDB4MDIsMHhFRSwweDgzLDB4RUEsMHgwMiwweEMzLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDAyLDB4NzUsMHhGNywKLTB4MEMsMHgwMiwweEVCLDB4RTgsMHg1MiwweDgzLDB4QzIsMHgwQywweEVDLDB4QzAsMHhFOCwweDA0LDB4ODgsMHg4NiwweEE5LDB4MDAsCi0weDhCLDB4NUUsMHgyNiwweDgwLDB4RTMsMHgzRiwweEY2LDB4QzcsMHgwNCwweDc0LDB4MDcsMHhBOCwweDA4LDB4NzUsMHgwMywweDgwLAotMHhDQiwweDQwLDB4RjYsMHhDNywweDA4LDB4NzQsMHgwNywweEE4LDB4MDIsMHg3NSwweDAzLDB4ODAsMHhDQiwweDgwLDB4ODgsMHg1RSwKLTB4MjYsMHg4QSwweDg2LDB4QTUsMHgwMCwweDg0LDB4REIsMHg3NCwweDEwLDB4QTgsMHgwMiwweDc0LDB4MEEsMHgyNCwweEZELDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweDgzLDB4RUEsMHgwQSwweEVFLDB4NUEsMHhDMywweEE4LDB4MDIsMHg3NSwweEZBLDB4MEMsMHgwMiwweEVCLAotMHhFRSwweDkwLDB4RkYsMHhGRiwweDAwLDB4NDgsMHgwMCwweDMwLDB4QkEsMHgyMCwweEM0LDB4MUEsMHgwMCwweDE4LDB4MDAsMHgxMiwKLTB4MDAsMHgwQywweDAwLDB4MDYsMHgwMCwweDAzLDB4MDAsMHgwMiwweDgwLDB4MDEsMHhDMCwweDAwLDB4NjAsMHgwMCwweDMwLDB4MDAsCi0weDE4LDB4MDAsMHhDRCwweDAxLDB4MDAsMHgwMSwweDgwLDB4MDAsMHgxMCwweDAwLDB4MTAsMHgwMCwweDBFLDB4MDAsMHgwQywweDAwLAotMHgwOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLDB4MDQsMHgwMCwweDAzLDB4MDAsMHgwMiwweDAwLDB4MDEsMHgwMCwKLTB4NTIsMHg1MSwweDU2LDB4M0MsMHgxRSwweDc3LDB4NDcsMHg5OCwweDhCLDB4RjAsMHg4QSwweDgyLDB4QzQsMHgwMCwweDMyLDB4RTQsCi0weDgzLDB4RkUsMHgxOCwweDc0LDB4M0QsMHg4MywweEZFLDB4MTksMHg3NCwweDNFLDB4ODMsMHhGRSwweDFFLDB4NzcsMHgyRiwweEQxLAotMHhFNiwweDJFLDB4OEIsMHg4QywweDMyLDB4MkQsMHgzQiwweDhFLDB4OTQsMHgwMCwweDc0LDB4MjIsMHg4OSwweDhFLDB4OTQsMHgwMCwKLTB4ODMsMHhDMiwweDA2LDB4OEEsMHg4NiwweEE4LDB4MDAsMHg4QSwweEUwLDB4MEMsMHg4MCwweEVFLDB4ODMsMHhFQSwweDA2LDB4OEEsCi0weEMxLDB4RUUsMHg4MywweEMyLDB4MDIsMHg4QSwweEM1LDB4RUUsMHg4MywweEMyLDB4MDQsMHg4QSwweEM0LDB4RUUsMHg1RSwweDU5LAotMHg1QSwweEMzLDB4OEIsMHg4RSwweDhFLDB4MDAsMHhFQiwweENFLDB4OEIsMHg4RSwweDkwLDB4MDAsMHhFQiwweEM4LDB4NTIsMHg1MSwKLTB4M0QsMHgwNSwweDAwLDB4NzcsMHgwMywweEI4LDB4MDUsMHgwMCwweDhCLDB4QzgsMHhCQSwweDAyLDB4MDAsMHhCOCwweDAwLDB4RDAsCi0weEY3LDB4RjEsMHgwNSwweDAxLDB4MDAsMHhEMSwweEU4LDB4NTksMHg1QSwweEMzLDB4OEIsMHg0NiwweDdBLDB4QTgsMHgyMCwweDc0LAotMHgwQiwweDgwLDB4QkUsMHhDMywweDAwLDB4MDMsMHg3NSwweDA0LDB4MEMsMHgwMSwweEVCLDB4MDIsMHgyNCwweEZFLDB4ODksMHg0NiwKLTB4N0EsMHhDMywweDI0LDB4MDMsMHg4OCwweDg2LDB4QzMsMHgwMCwweDhBLDB4QTYsMHhBOCwweDAwLDB4OEEsMHhEQywweDgwLDB4RTQsCi0weEZDLDB4MEEsMHhDNCwweDNBLDB4QzMsMHg3NCwweDBCLDB4ODgsMHg4NiwweEE4LDB4MDAsMHg4MywweEMyLDB4MDYsMHhFRSwweDgzLAotMHhFQSwweDA2LDB4RTgsMHhDNSwweEZGLDB4QzMsMHgwMCwweDA4LDB4MTgsMHgzOCwweDI4LDB4OTAsMHgzQywweDA0LDB4NzcsMHgyMywKLTB4MzIsMHhFNCwweDhCLDB4RDgsMHgyRSwweDhBLDB4ODcsMHgyNiwweDJFLDB4OEEsMHhBNiwweEE4LDB4MDAsMHg4QSwweERDLDB4ODAsCi0weEU0LDB4QzcsMHgwQSwweEM0LDB4M0EsMHhDMywweDc0LDB4MEIsMHg4OCwweDg2LDB4QTgsMHgwMCwweDgzLDB4QzIsMHgwNiwweEVFLAotMHg4MywweEVBLDB4MDYsMHhDMywweDg0LDB4QzAsMHg3NCwweDAyLDB4QjAsMHgwNCwweDhBLDB4QTYsMHhBOCwweDAwLDB4OEEsMHhEQywKLTB4ODAsMHhFNCwweEZCLDB4MEEsMHhDNCwweDNBLDB4QzMsMHg3NCwweDBCLDB4ODgsMHg4NiwweEE4LDB4MDAsMHg4MywweEMyLDB4MDYsCi0weEVFLDB4ODMsMHhFQSwweDA2LDB4QzMsMHg5MCwweDhCLDB4NUUsMHgzOCwweDg0LDB4QzAsMHg3NCwweDM0LDB4M0MsMHgwMiwweDc0LAotMHgzQiwweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHgwNCwweEU4LDB4RTYsMHhGRCwweDhCLDB4NDYsMHgyRSwweDNCLDB4NDYsMHgzQywKLTB4NzcsMHgxQiwweEY3LDB4QzMsMHgwMCwweDA0LDB4NzUsMHgxNSwweDgxLDB4Q0IsMHgwMCwweDA0LDB4ODMsMHhDMiwweDAyLDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDI0LDB4RkEsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4ODMsMHhFQSwweDAyLDB4ODksMHg1RSwweDM4LAotMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4MjQsMHhGQiwweEU4LDB4QjYsMHhGRCwweEVCLDB4RjEsMHhGNywweEMzLDB4MTAsMHgwMCwKLTB4NzQsMHhFRiwweEVCLDB4RUQsMHg4MywweEMyLDB4MEMsMHhFQywweDgzLDB4RUEsMHgwQywweEMwLDB4RTgsMHgwNCwweDg4LDB4ODYsCi0weEE5LDB4MDAsMHhDMywweDkwLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAxLDB4ODgsMHg4NiwweEE3LDB4MDAsMHg4QiwweERBLAotMHg4MCwweEMyLDB4MDgsMHhFRSwweDhCLDB4RDMsMHhGOCwweEMzLDB4OEEsMHg4NiwweEE3LDB4MDAsMHgyNCwweEZFLDB4RUIsMHhFQSwKLTB4OEEsMHg4NiwweEE3LDB4MDAsMHgwQywweDAyLDB4RUIsMHhFMiwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRCwweEVCLDB4REEsCi0weEIwLDB4RkYsMHhFOCwweDUyLDB4RjIsMHhFOCwweDk3LDB4RjIsMHhGOCwweEMzLDB4QUMsMHg0OSwweEU4LDB4NjEsMHhGRSwweEY4LAotMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4RUIsMHhGRSwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDM1LDB4RkYsMHhGOCwKLTB4QzMsMHg5MCwweEFDLDB4NDksMHhFOCwweDA1LDB4RkYsMHhGOCwweEMzLDB4OTAsMHg1MiwweDgzLDB4QzIsMHgwNiwweEIwLDB4QkYsCi0weEVFLDB4NTIsMHg4MywweEMyLDB4MDIsMHhBQywweDQ5LDB4RUUsMHg1QSwweDhBLDB4ODYsMHhBOCwweDAwLDB4RUUsMHg1QSwweEY4LAotMHhDMywweDkwLDB4NTIsMHg4MywweEMyLDB4MDYsMHhCMCwweEJGLDB4RUUsMHg1MiwweDgzLDB4QzIsMHgwNiwweEVCLDB4RTYsMHg5MCwKLTB4QUMsMHg0OSwweDNDLDB4MDIsMHg3NywweDBELDB4ODQsMHhDMCwweDc1LDB4MEIsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4RkQsCi0weEU4LDB4MEQsMHhGRCwweEY4LDB4QzMsMHg1MCwweDhBLDB4ODYsMHhBRiwweDAwLDB4MEMsMHgwMiwweEU4LDB4MDEsMHhGRCwweDVCLAotMHg4MywweEMyLDB4MDgsMHg4QSwweDg2LDB4QTcsMHgwMCwweEY2LDB4QzMsMHgwMSwweDc0LDB4MEMsMHgyNCwweERGLDB4ODgsMHg4NiwKLTB4QTcsMHgwMCwweEVFLDB4ODMsMHhFQSwweDA4LDB4RjgsMHhDMywweDBDLDB4MjAsMHhFQiwweEYyLDB4QUMsMHg0OSwweEU4LDB4RTUsCi0weEZFLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDQwLDB4RTgsMHg2OSwweEY1LDB4RTgsMHhGOSwweEZDLDB4RTgsMHgyNCwweEZGLAotMHhCMCwweDAxLDB4RTgsMHhBNSwweEY2LDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDQwLDB4RTgsMHg3MSwweEY1LDB4RTgsMHhFNSwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4MTAsMHhFOCwweDQ5LDB4RjUsMHhFOCwweEQ5LDB4RkMsMHhFOCwweDA0LDB4RkYsCi0weEIwLDB4MDgsMHhFOCwweDg1LDB4RjYsMHhGOCwweEMzLDB4OTAsMHhCOCwweDAwLDB4MTAsMHhFOCwweDUxLDB4RjUsMHhFOCwweEM1LAotMHhGQywweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg4MCwweEU4LDB4MjksMHhGNSwweEU4LDB4QjksMHhGQywweEU4LDB4RTQsMHhGRSwKLTB4QjAsMHgwMiwweEU4LDB4NjUsMHhGNiwweEY4LDB4QzMsMHg5MCwweEI4LDB4MDAsMHg4MCwweEU4LDB4MzEsMHhGNSwweEU4LDB4QTUsCi0weEZDLDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDIwLDB4RTgsMHgwOSwweEY1LDB4RTgsMHg5OSwweEZDLDB4RTgsMHhDNCwweEZFLAotMHhCMCwweDA0LDB4RTgsMHg0NSwweEY2LDB4RjgsMHhDMywweDkwLDB4QjgsMHgwMCwweDIwLDB4RTgsMHgxMSwweEY1LDB4RTgsMHg4NSwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHgzNCwweDBDLDB4RjgsMHhDMywweDkwLDB4QjgsMHhGQywweDNCLDB4ODksCi0weDQ2LDB4N0MsMHhGOCwweEMzLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgwQywweDgwLDB4RTgsMHg0MywweEZDLDB4RjgsMHhDMywweDkwLAotMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4N0YsMHhFQiwweEYyLDB4OEEsMHg4NiwweEFGLDB4MDAsMHgwQywweDQwLDB4RTgsMHgyRiwKLTB4RkMsMHhGOCwweEMzLDB4OTAsMHg4QSwweDg2LDB4QUYsMHgwMCwweDI0LDB4QkYsMHhFQiwweEYyLDB4QUMsMHg0OSwweEE4LDB4MDEsCi0weDc0LDB4MDcsMHg4MywweDRFLDB4N0EsMHgyMCwweEVCLDB4MDUsMHg5MCwweDgzLDB4NjYsMHg3QSwweERGLDB4RTgsMHg4QSwweEZELAotMHhGOCwweEMzLDB4ODMsMHhDMiwweDA2LDB4OEEsMHg4NiwweEE4LDB4MDAsMHgwQywweDQwLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwKLTB4ODMsMHhFQSwweDA2LDB4QUMsMHg0OSwweDMyLDB4RTQsMHg4OSwweDQ2LDB4NkUsMHg4MywweDRFLDB4MjYsMHgwMSwweDgzLDB4NEUsCi0weDQ4LDB4MDgsMHhCMCwweDA2LDB4RTgsMHhCQiwweERGLDB4NDksMHg0NiwweEY5LDB4QzMsMHg5MCwweDgzLDB4QzIsMHgwNiwweDhBLAotMHg4NiwweEE4LDB4MDAsMHgwQywweDQwLDB4ODgsMHg4NiwweEE4LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwNiwweEFDLDB4QjQsMHgwQSwKLTB4RjYsMHhFNCwweEVCLDB4RDAsMHhFOCwweEUwLDB4MEIsMHhGOCwweEMzLDB4OTAsMHhBRCwweDQ5LDB4NDksMHg4OSwweDQ2LDB4NjQsCi0weEE5LDB4MDEsMHgwMCwweDc0LDB4MTksMHg4QiwweEQ4LDB4ODMsMHhFMywweEZBLDB4NzUsMHgwQSwweEE5LDB4MDQsMHgwMCwweDc0LAotMHgwRCwweEI4LDB4RTIsMHgzRiwweEVCLDB4MEIsMHhFOCwweEVDLDB4RjQsMHhCOCwweEFBLDB4NDAsMHhFQiwweDAzLDB4QjgsMHgzOCwKLTB4NDQsMHg4OSwweDQ2LDB4NjIsMHhGOCwweEMzLDB4OEEsMHg4NiwweEFGLDB4MDAsMHhBOCwweDAyLDB4NzQsMHgwQSwweDI0LDB4RkQsCi0weEU4LDB4OEQsMHhGQiwweDBDLDB4MDIsMHhFOCwweDg4LDB4RkIsMHhGOCwweEMzLDB4QUMsMHg0OSwweEU4LDB4ODEsMHhGQywweEY4LAotMHhDMywweDkwLDB4QUMsMHg0OSwweEU4LDB4NzksMHhGQywweEY4LDB4QzMsMHg5MCwweEU4LDB4NUMsMHhGNSwweDc1LDB4MDUsMHhFOCwKLTB4RTYsMHhGRCwweEY4LDB4QzMsMHhFOCwweENELDB4RkQsMHgzNiwweEEwLDB4QjQsMHgxMywweDI0LDB4MTAsMHgzNCwweDEwLDB4RTgsCi0weDI2LDB4MDEsMHgzNiwweEExLDB4QjQsMHgxMywweEE5LDB4MDEsMHgwMCwweDc0LDB4MDUsMHhFOCwweEZFLDB4RkUsMHhFQiwweDBFLAotMHhBOSwweDAyLDB4MDAsMHg3NCwweDA0LDB4MzIsMHhDMCwweEVCLDB4MDIsMHhCMCwweDAxLDB4RTgsMHhFOCwweEZFLDB4MzYsMHhBMSwKLTB4QjQsMHgxMywweEU4LDB4QUIsMHgwQiwweDM2LDB4QTEsMHhCNCwweDEzLDB4QzEsMHhFOCwweDA1LDB4MjUsMHgwMSwweDAwLDB4RTgsCi0weDBDLDB4RkYsMHgzNiwweEEwLDB4QjUsMHgxMywweDI0LDB4MTAsMHhFOCwweDJCLDB4RkQsMHgzMiwweEMwLDB4MzYsMHg4QSwweDI2LAotMHhCNSwweDEzLDB4RjYsMHhDNCwweDA0LDB4NzQsMHgwOSwweEZFLDB4QzAsMHhGNiwweEM0LDB4MDgsMHg3NCwweDAyLDB4RkUsMHhDMCwKLTB4RTgsMHhFRiwweEZELDB4MzYsMHhBMSwweEI2LDB4MTMsMHgyNSwweDBGLDB4MDAsMHhFOCwweDAzLDB4RkMsMHgzNiwweEExLDB4QjYsCi0weDEzLDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwMywweDAwLDB4RTgsMHg4OCwweEZDLDB4MzYsMHhBMSwweEI2LDB4MTMsMHhDMSwweEU4LAotMHgwNSwweDI1LDB4MDIsMHgwMCwweEU4LDB4Q0QsMHhGQywweDM2LDB4QTEsMHhCNiwweDEzLDB4RjYsMHhDNCwweDAxLDB4NzUsMHgwNCwKLTB4MzIsMHhDMCwweEVCLDB4MDksMHg4MCwweEU0LDB4MDIsMHhEMCwweEVDLDB4QjAsMHgwMiwweDJBLDB4QzQsMHhFOCwweDhDLDB4RkMsCi0weDM2LDB4RjYsMHgwNiwweEI3LDB4MTMsMHg0MCwweDc0LDB4MDUsMHhFOCwweDhELDB4RkUsMHhFQiwweDAzLDB4RTgsMHg5NCwweEZFLAotMHgzNiwweEY2LDB4MDYsMHhCNywweDEzLDB4MjAsMHg3NCwweDA1LDB4RTgsMHg2OSwweEZFLDB4RUIsMHgwMywweEU4LDB4NzAsMHhGRSwKLTB4RjgsMHhDMywweEY4LDB4QzMsMHg4QiwweDQ2LDB4MzgsMHhBOSwweDA0LDB4MDAsMHg3NSwweDIzLDB4MEQsMHgwNCwweDAwLDB4ODksCi0weDQ2LDB4MzgsMHg4MywweEMyLDB4MDgsMHg4QiwweDQ2LDB4MkUsMHgzQiwweDQ2LDB4M0MsMHg3MywweDE0LDB4ODMsMHg0RSwweDM4LAotMHgxMCwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsMHhGRSwweDg4LDB4ODYsMHhBNywweDAwLDB4RUUsMHg4MywweEVBLDB4MDgsMHhGOCwKLTB4QzMsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLDB4MDEsMHhFQiwweEVFLDB4OTAsMHg4QiwweDQ2LDB4MzgsMHhBOSwweDA0LDB4MDAsCi0weDc0LDB4MDYsMHgyNSwweEZCLDB4RkYsMHg4OSwweDQ2LDB4MzgsMHhGOCwweEMzLDB4QUQsMHg0OSwweDQ5LDB4RTgsMHhCRSwweEZCLAotMHg4OSwweDg2LDB4OEUsMHgwMCwweEY4LDB4QzMsMHhBRCwweDQ5LDB4NDksMHhFOCwweEIyLDB4RkIsMHg4OSwweDg2LDB4OTAsMHgwMCwKLTB4RjgsMHhDMywweDgzLDB4NEUsMHgyNiwweDA0LDB4RTgsMHg5MiwweEZBLDB4RjgsMHhDMywweDkwLDB4ODMsMHg2NiwweDI2LDB4RkIsCi0weEU4LDB4ODgsMHhGQSwweEY4LDB4QzMsMHg5MCwweEFDLDB4NDksMHg4NCwweEMwLDB4NzUsMHgwNywweDgwLDB4OEUsMHhBMywweDAwLAotMHgwNCwweEY4LDB4QzMsMHg4MCwweEE2LDB4QTMsMHgwMCwweEZCLDB4RjgsMHhDMywweEFDLDB4NDksMHg4MywweEMyLDB4MDgsMHgzQywKLTB4MDIsMHg3NiwweDAyLDB4MzIsMHhDMCwweDNDLDB4MDEsMHg3NCwweDEyLDB4NzcsMHgwQiwweDhBLDB4ODYsMHhBNywweDAwLDB4MjQsCi0weEVGLDB4ODgsMHg4NiwweEE3LDB4MDAsMHhFRSwweDgzLDB4RUEsMHgwOCwweEY4LDB4QzMsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLAotMHgxMCwweEVCLDB4RUUsMHg5MCwweDUyLDB4ODMsMHhDMiwweDA2LDB4QjAsMHhCRiwweEVFLDB4NTIsMHg4MywweEMyLDB4MDQsMHhBQywKLTB4NDksMHhFRSwweDVBLDB4OEEsMHg4NiwweEE4LDB4MDAsMHhFRSwweDVBLDB4RjgsMHhDMywweDkwLDB4NTIsMHg4MywweEMyLDB4MDYsCi0weEIwLDB4QkYsMHhFRSwweDUyLDB4ODMsMHhDMiwweDA4LDB4RUIsMHhFNiwweDkwLDB4QUMsMHg0OSwweEY4LDB4QzMsMHhBQywweDQ5LAotMHhFOCwweEI0LDB4RUUsMHg3MywweDAzLDB4RTgsMHhGNywweEVFLDB4RjgsMHhDMywweDhBLDB4ODYsMHhBRiwweDAwLDB4MjQsMHg3RiwKLTB4RTgsMHhCRCwweEY5LDB4QjgsMHhGMCwweDAwLDB4RTgsMHg2NiwweEYyLDB4ODEsMHg2NiwweDI2LDB4RkYsMHhGMywweEU4LDB4MjMsCi0weEZBLDB4RTgsMHhEMiwweEY5LDB4RjgsMHhDMywweEI4LDB4ODAsMHgwMCwweEU4LDB4MzcsMHhGMiwweDgwLDB4NEUsMHgyNywweDA4LAotMHhFOCwweDExLDB4RkEsMHhFOCwweEMwLDB4RjksMHhGOCwweEMzLDB4QjgsMHg4MCwweDAwLDB4RTgsMHg0MSwweEYyLDB4ODEsMHg2NiwKLTB4MjYsMHhGRiwweEY3LDB4RTgsMHhGRSwweEY5LDB4RTgsMHhBRCwweEY5LDB4RjgsMHhDMywweDkwLDB4QjgsMHgxMCwweDAwLDB4RTgsCi0weDExLDB4RjIsMHg4MCwweDRFLDB4MjcsMHgwNCwweEU4LDB4RUIsMHhGOSwweEU4LDB4OUEsMHhGOSwweEY4LDB4QzMsMHhCOCwweDEwLAotMHgwMCwweEU4LDB4RkYsMHhGMSwweDgxLDB4NjYsMHgyNiwweEZGLDB4RkIsMHhFOCwweEQ4LDB4RjksMHhGOCwweEMzLDB4QUMsMHg0OSwKLTB4RjgsMHhDMywweDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4MEMsMHg0MCwweDg4LDB4ODYsMHhBOCwweDAwLDB4RUUsCi0weDgzLDB4RUEsMHgwNiwweEY4LDB4QzMsMHg5MCwweDgzLDB4QzIsMHgwNiwweDhBLDB4ODYsMHhBOCwweDAwLDB4MjQsMHhCRiwweEVCLAotMHhFQSwweDkwLDB4QUMsMHg0OSwweDhBLDB4RTAsMHg4MCwweEMyLDB4MEEsMHhFQywweDgwLDB4RUEsMHgwQSwweEE4LDB4MjAsMHg3NCwKLTB4MDUsMHg4QSwweEM0LDB4RUUsMHhGOCwweEMzLDB4MDYsMHg1MSwweDU3LDB4OEIsMHg0RSwweDI0LDB4RTMsMHgzNCwweDQ5LDB4ODksCi0weDRFLDB4MjQsMHhGRiwweDQ2LDB4MUEsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4QSwweEM0LDB4QUEsMHg4OSwweDdFLAotMHgyMiwweDhCLDB4NDYsMHgyNiwweDI0LDB4RkQsMHg4OSwweDQ2LDB4MjYsMHg3NSwweDI5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwKLTB4MDIsMHg3NSwweDIxLDB4ODAsMHhDMiwweDAyLDB4MEMsMHgwMiwweDg4LDB4ODYsMHhBNSwweDAwLDB4RUUsMHg4MCwweEVBLDB4MDIsCi0weEVCLDB4MTIsMHhDNCwweDdFLDB4MDAsMHgzQiwweDdFLDB4MUUsMHg3NiwweDBBLDB4NEYsMHgyNiwweDg4LDB4MjUsMHg4OSwweDdFLAotMHgwMCwweEZGLDB4NDYsMHgxQSwweDVGLDB4NTksMHgwNywweEY4LDB4QzMsMHg5MCwweEFDLDB4QUQsMHg4MywweEU5LDB4MDMsMHg4NSwKLTB4QzAsMHg3NCwweDA1LDB4M0QsMHgwMCwweDIwLDB4NzIsMHgwNSwweEI4LDB4RkYsMHhGRiwweEVCLDB4MDMsMHhDMSwweEUwLDB4MDMsCi0weDNCLDB4ODYsMHg5NCwweDAwLDB4NzQsMHgyNiwweDg5LDB4ODYsMHg5NCwweDAwLDB4OEIsMHhEOCwweDUyLDB4ODMsMHhDMiwweDA2LAotMHg4QSwweDg2LDB4QTgsMHgwMCwweDhBLDB4RTAsMHgwQywweDgwLDB4RUUsMHg4MywweEVBLDB4MDYsMHg4QSwweEMzLDB4RUUsMHg4MywKLTB4QzIsMHgwMiwweDhBLDB4QzcsMHhFRSwweDgzLDB4QzIsMHgwNCwweDhBLDB4QzQsMHhFRSwweDVBLDB4RjgsMHhDMywweEIwLDB4ODgsCi0weDg4LDB4ODYsMHhCQywweDAwLDB4RTgsMHg4QywweEYyLDB4MzMsMHhEQiwweDhBLDB4ODYsMHhBNSwweDAwLDB4QTgsMHgwMiwweDc0LAotMHgwMywweDgwLDB4Q0IsMHgwMSwweEE4LDB4MDUsMHg3NCwweDAzLDB4ODAsMHhDQiwweDAyLDB4QTgsMHgwOCwweDc0LDB4MDMsMHg4MCwKLTB4Q0IsMHgwNCwweEY2LDB4ODYsMHhBNywweDAwLDB4MTAsMHg3NCwweDAzLDB4ODAsMHhDQiwweDEwLDB4OEEsMHg4NiwweEE5LDB4MDAsCi0weEY2LDB4QzMsMHgwNCwweDc1LDB4MEEsMHg4MywweEMyLDB4MEMsMHhFQywweDgzLDB4RUEsMHgwQywweEMwLDB4RTgsMHgwNCwweDhBLAotMHhFMCwweDhBLDB4ODYsMHhBRiwweDAwLDB4QTgsMHg4MCwweDc0LDB4MDgsMHhGNiwweEM0LDB4MDEsMHg3NSwweDAzLDB4ODAsMHhDQiwKLTB4MjAsMHhGNiwweDg2LDB4QTcsMHgwMCwweDAyLDB4NzUsMHgwQSwweEY3LDB4NDYsMHgzOCwweDA0LDB4MDAsMHg3NCwweDAzLDB4ODAsCi0weENCLDB4NDAsMHg4OCwweDlFLDB4QkUsMHgwMCwweEZFLDB4ODYsMHhCNCwweDAwLDB4QjAsMHgwQSwweEU4LDB4RjMsMHhEQiwweEY4LAotMHhDMywweEZFLDB4ODYsMHhCNCwweDAwLDB4QjAsMHgwQSwweEU4LDB4RTgsMHhEQiwweEY4LDB4QzMsMHhBQywweDQ5LDB4M0MsMHgwMiwKLTB4NzQsMHgzNywweDc3LDB4MTAsMHg4NCwweEMwLDB4NzQsMHgwNiwweDgwLDB4NEUsMHgzOCwweDAxLDB4RjgsMHhDMywweDgwLDB4NjYsCi0weDM4LDB4RkUsMHhGOCwweEMzLDB4OEIsMHg0NiwweDM4LDB4MjUsMHhGRiwweEY3LDB4ODksMHg0NiwweDM4LDB4QTksMHgwMCwweDA0LAotMHg3NSwweEVBLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhBOCwweDAxLDB4NzUsMHhFMiwweDBDLDB4MDUsMHg4MywweEMyLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RUUsMHg4MywweEVBLDB4MDIsMHhGOCwweEMzLDB4ODEsMHg0RSwweDM4LDB4MDAsMHgwOCwweDhBLDB4ODYsCi0weEE1LDB4MDAsMHhBOCwweDAxLDB4NzQsMHhDNiwweDI0LDB4RkEsMHhFQiwweEUyLDB4QUQsMHg0OSwweDQ5LDB4RjgsMHhDMywweDkwLAotMHhFOCwweDExLDB4RkEsMHhGRSwweDg2LDB4QjksMHgwMCwweEIwLDB4MEUsMHhFOCwweDg2LDB4REIsMHhGOCwweEMzLDB4QjAsMHhGRiwKLTB4RTgsMHhCRiwweEVDLDB4RjgsMHhDMywweDkwLDB4ODMsMHg2NiwweDdBLDB4RkIsMHhCMCwweDAwLDB4RTgsMHg3MywweERCLDB4RjgsCi0weEMzLDB4OTAsMHhBQywweDQ5LDB4RTgsMHg1MywweEQ5LDB4NzIsMHgxMSwweDM2LDB4ODgsMHgxRSwweDFBLDB4MDEsMHgzNiwweEEwLAotMHg4RSwweDEyLDB4MEEsMHhDMywweDUyLDB4QkEsMHgwMCwweDAxLDB4RUUsMHg1QSwweEY4LDB4QzMsMHhBQywweDQ5LDB4MzIsMHhFNCwKLTB4MzYsMHhBMywweDg2LDB4MTIsMHgwNSwweDA2LDB4MDAsMHgzNiwweDhCLDB4MUUsMHg4OCwweDEyLDB4MkIsMHhEOCwweDM2LDB4ODksCi0weDFFLDB4OEEsMHgxMiwweEY4LDB4QzMsMHg5MCwweEFELDB4OEIsMHhEOCwweEFELDB4ODMsMHhFOSwweDA0LDB4MDMsMHhDMywweDJCLAotMHg0NiwweDc2LDB4ODksMHg0NiwweDc4LDB4RjcsMHg0NiwweDdBLDB4MDIsMHgwMCwweDc0LDB4MEEsMHg4MywweDY2LDB4N0EsMHhGRCwKLTB4QjgsMHgwMCwweDAwLDB4RTgsMHgxQywweERCLDB4RjgsMHhDMywweDA2LDB4MTYsMHgwNywweEFDLDB4NDksMHgyNSwweDBGLDB4MDAsCi0weDZCLDB4QzAsMHgwOSwweDhELDB4QkUsMHhGRCwweDAwLDB4MDMsMHhGOCwweEFDLDB4NDksMHgyNSwweDBGLDB4MDAsMHhBQSwweDg1LAotMHhDMCwweDc0LDB4MDgsMHgyQiwweEM4LDB4NTEsMHg4QiwweEM4LDB4RjMsMHhBNCwweDU5LDB4RTgsMHgyNywweEYwLDB4RTgsMHg0NCwKLTB4MDMsMHgwNywweEY4LDB4QzMsMHgzMywweEMwLDB4QUMsMHg0OSwweDM2LDB4QTMsMHhCMiwweDEzLDB4MzYsMHhBMywweEIwLDB4MTMsCi0weEY4LDB4QzMsMHg4MywweDY2LDB4N0EsMHhFRiwweEU4LDB4MkMsMHgwMywweEY4LDB4QzMsMHg5MCwweDgzLDB4NEUsMHg3QSwweDEwLAotMHhFQiwweEY0LDB4RTgsMHg5QiwweEYwLDB4RjgsMHhDMywweDkwLDB4QUQsMHgzQywweDE5LDB4NzcsMHgwRSwweDNDLDB4MTksMHg3NywKLTB4MEEsMHg4QiwweEY4LDB4ODEsMHhFNywweEZGLDB4MDAsMHg4OCwweEE2LDB4QzQsMHgwMCwweEY4LDB4QzMsMHg5MCwweDgzLDB4NEUsCi0weDI2LDB4MjAsMHhBQywweDQ5LDB4MzIsMHhFNCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4QzEsMHhFMywweDAyLDB4MDMsMHhDMywweDg5LAotMHg0NiwweDZFLDB4ODMsMHg0RSwweDQ4LDB4MDQsMHhCMCwweDA2LDB4RTgsMHg5NywweERBLDB4NDksMHg0NiwweEY5LDB4QzMsMHg5MCwKLTB4RkUsMHg4NiwweEIzLDB4MDAsMHhCMCwweDBBLDB4RTgsMHg4OSwweERBLDB4RjgsMHhDMywweDkwLDB4MzMsMHhDMCwweEFDLDB4NDksCi0weDZCLDB4QzAsMHgwQSwweDg5LDB4ODYsMHg4QSwweDAwLDB4RjgsMHhDMywweDkwLDB4QUMsMHg0OSwweDMyLDB4RTQsMHgzRCwweDBBLAotMHgwMCwweDc3LDB4MDUsMHhCOCwweDBBLDB4MDAsMHhFQiwweDA4LDB4M0QsMHg1QSwweDAwLDB4NzIsMHgwMywweEI4LDB4NUEsMHgwMCwKLTB4NTEsMHhGNywweEQ4LDB4MDUsMHg2NCwweDAwLDB4OEIsMHhDOCwweDhCLDB4NDYsMHg0NCwweEY3LDB4RTEsMHhCOSwweDY0LDB4MDAsCi0weEY3LDB4RjEsMHg4OSwweDQ2LDB4NDYsMHg1OSwweEY4LDB4QzMsMHhBQywweDQ5LDB4RTgsMHg4NSwweEVCLDB4RjgsMHhDMywweDkwLAotMHhBQywweDQ5LDB4ODQsMHhDMCwweDc1LDB4MDcsMHg4MSwweDY2LDB4MzgsMHhGRiwweEZELDB4RjgsMHhDMywweDgxLDB4NEUsMHgzOCwKLTB4MDAsMHgwMiwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsMHg3NSwweDA4LDB4OEEsMHg4NiwweEE5LDB4MDAsMHg4OCwweDg2LDB4QUEsCi0weDAwLDB4RjgsMHhDMywweDkwLDB4NTEsMHg1NiwweEU4LDB4N0YsMHgwQywweDVFLDB4NTksMHhGOCwweEMzLDB4OTAsMHhGRSwweDg2LAotMHhCNiwweDAwLDB4QjAsMHgwQSwweEU4LDB4MEIsMHhEQSwweEY4LDB4QzMsMHg5MCwweEZFLDB4ODYsMHhCNywweDAwLDB4QjAsMHgwQSwKLTB4RTgsMHhGRiwweEQ5LDB4RjgsMHhDMywweDkwLDB4RkUsMHg4NiwweEI4LDB4MDAsMHhCMCwweDBBLDB4RTgsMHhGMywweEQ5LDB4RjgsCi0weEMzLDB4OTAsMHgwMCwweDkwLDB4NTEsMHg1NSwweEFDLDB4MkUsMHhBMiwweDUyLDB4MzYsMHgzMywweEM5LDB4QUQsMHg4QiwweEY5LAotMHhDMSwweEU3LDB4MDUsMHhBOSwweDAxLDB4MDAsMHg3NCwweDIzLDB4MkUsMHg4QiwweEFELDB4NDQsMHgwMCwweDgzLDB4N0UsMHgwOCwKLTB4MDAsMHg3NCwweDE4LDB4MkUsMHg4MCwweDNFLDB4NTIsMHgzNiwweDAxLDB4NzQsMHgwOSwweDYwLDB4QjAsMHgwNCwweEU4LDB4QkIsCi0weDBDLDB4NjEsMHhFQiwweDA3LDB4NjAsMHhCMCwweEZCLDB4RTgsMHhFQywweDBDLDB4NjEsMHg0NywweDQ3LDB4RDEsMHhFOCwweDc1LAotMHhEMiwweDQxLDB4ODMsMHhGOSwweDA0LDB4NzIsMHhDNiwweDVELDB4NTksMHg4MywweEU5LDB4MDUsMHhGNywweDQ2LDB4MzgsMHg0MCwKLTB4MDAsMHg3NCwweDA1LDB4RTgsMHg4NywweEVBLDB4RjgsMHhDMywweEU4LDB4OEQsMHhFQSwweEY4LDB4QzMsMHg5MCwweDM2LDB4QzYsCi0weDA2LDB4QzgsMHgxMywweDAxLDB4RjgsMHhDMywweDMzLDB4QzAsMHhBQywweDQ5LDB4MzYsMHhBMywweDgwLDB4MTIsMHhBQywweDQ5LAotMHgzNiwweDJCLDB4MDYsMHg4OCwweDEyLDB4RjcsMHhEOCwweDM2LDB4QTMsMHg4MiwweDEyLDB4RjgsMHhDMywweDkwLDB4REUsMHgyNiwKLTB4REUsMHgyNiwweEVDLDB4MjYsMHhGMiwweDI2LDB4RjgsMHgyNiwweEZFLDB4MjYsMHgwNCwweDI3LDB4MEUsMHgyNywweDE2LDB4MjcsCi0weDFFLDB4MjcsMHgyNiwweDI3LDB4MkUsMHgyNywweDM0LDB4MjcsMHhCRSwweDM0LDB4QzYsMHgzNCwweEQyLDB4MzQsMHgzQSwweDI3LAotMHg3OCwweDI3LDB4ODAsMHgyNywweDk0LDB4MjcsMHhBMCwweDI3LDB4QjQsMHgyNywweEMwLDB4MjcsMHhENCwweDI3LDB4RTAsMHgyNywKLTB4RjQsMHgyNywweDAwLDB4MjgsMHgxMCwweDI4LDB4RUMsMHgzNCwweERFLDB4MjYsMHgxRSwweDI4LDB4MjYsMHgyOCwweDJDLDB4MjgsCi0weDMyLDB4MjgsMHgzOCwweDI4LDB4NEUsMHgyOCwweDhBLDB4MjgsMHgwNiwweDM1LDB4MjgsMHgzNSwweDk4LDB4MjgsMHhCRSwweDI4LAotMHhEMiwweDI4LDB4REUsMHgyOCwweEU2LDB4MjgsMHg1NCwweDM1LDB4NjIsMHgzNSwweDZDLDB4MzUsMHhFRSwweDI4LDB4QzAsMHgyOSwKLTB4QzgsMHgyOSwweENFLDB4MjksMHhFMCwweDI5LDB4NzIsMHgzNSwweDc4LDB4MzUsMHhGMCwweDI5LDB4RkMsMHgyOSwweDhFLDB4MzUsCi0weDA4LDB4MkEsMHgxMiwweDJBLDB4MUMsMHgyQSwweEIwLDB4MzUsMHgzNiwweDJBLDB4QkMsMHgzNSwweDVBLDB4MkEsMHg2MiwweDJBLAotMHg2OCwweDJBLDB4Q0EsMHgzNSwweDdDLDB4MkEsMHhGOCwweDM1LDB4ODgsMHgyQSwweEE2LDB4MkEsMHhCOCwweDJBLDB4Q0MsMHgyQSwKLTB4REUsMHgyQSwweEYyLDB4MkEsMHgwMCwweDM2LDB4MEEsMHgyQiwweDI0LDB4MkIsMHgyNCwweDM2LDB4MzgsMHgyQiwweDRDLDB4MkIsCi0weDg0LDB4MkIsMHgyRSwweDM2LDB4M0EsMHgzNiwweDQ2LDB4MzYsMHg1NCwweDM2LDB4RTgsMHgyQiwweEFFLDB4MzYsMHg0MCwweDJDLAotMHg2MiwweDJDLDB4QjYsMHgzNiwweDcwLDB4MjgsMHhERSwweDI2LDB4REUsMHgyNiwweEQ0LDB4MkUsMHhFOCwweDJFLDB4RjAsMHgyRSwKLTB4RjgsMHgyRSwweDAwLDB4MkYsMHgwQSwweDJGLDB4MTIsMHgyRiwweDFBLDB4MkYsMHgyMiwweDJGLDB4MkEsMHgyRiwweDQyLDB4MkYsCi0weEJFLDB4MzQsMHhDNiwweDM0LDB4RDIsMHgzNCwweDUwLDB4MkYsMHg4QywweDJGLDB4OTQsMHgyRiwweEE4LDB4MkYsMHhCNCwweDJGLAotMHhDOCwweDJGLDB4RDQsMHgyRiwweEU4LDB4MkYsMHhGNCwweDJGLDB4MDgsMHgzMCwweDE0LDB4MzAsMHgxQywweDMwLDB4RUMsMHgzNCwKLTB4REUsMHgyNiwweDI0LDB4MzAsMHgzMCwweDMwLDB4MzgsMHgzMCwweDQ0LDB4MzAsMHg0QywweDMwLDB4NjIsMHgzMCwweEE0LDB4MzAsCi0weDA2LDB4MzUsMHgyOCwweDM1LDB4QUEsMHgzMCwweENFLDB4MzAsMHhENiwweDMwLDB4RUEsMHgzMCwweEYyLDB4MzAsMHg1NCwweDM1LAotMHg2MiwweDM1LDB4NkMsMHgzNSwweEZBLDB4MzAsMHhDMiwweDMxLDB4QzIsMHgzMSwweEM0LDB4MzEsMHhGQSwweDMxLDB4NzIsMHgzNSwKLTB4NzgsMHgzNSwweDBBLDB4MzIsMHgxNiwweDMyLDB4OEUsMHgzNSwweDIyLDB4MzIsMHgyQywweDMyLDB4MzYsMHgzMiwweEIwLDB4MzUsCi0weDRBLDB4MzIsMHhCQywweDM1LDB4NzQsMHgzMiwweDhDLDB4MzIsMHg5QSwweDMyLDB4Q0EsMHgzNSwweDlFLDB4MzIsMHhGOCwweDM1LAotMHhBQSwweDMyLDB4QzYsMHgzMiwweEQ4LDB4MzIsMHhFQywweDMyLDB4RkUsMHgzMiwweDBFLDB4MzMsMHgwMCwweDM2LDB4MTIsMHgzMywKLTB4MjYsMHgzMywweDI0LDB4MzYsMHgzMiwweDMzLDB4OUEsMHgzMywweERFLDB4MzMsMHgyRSwweDM2LDB4M0EsMHgzNiwweDQ2LDB4MzYsCi0weDU0LDB4MzYsMHg1QywweDM0LDB4QUUsMHgzNiwweEFBLDB4MzQsMHhCMCwweDM0LDB4QjYsMHgzNiwweDhDLDB4MzAsMHhFMywweDI4LAotMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzUsMHgzMiwweEU4LDB4RTMsMHhFOCwweDMzLDB4QzAsMHhBQywweDQ5LDB4M0QsMHg1QiwKLTB4MDAsMHg3NywweDE5LDB4OEIsMHhEOCwweEQxLDB4RTMsMHgyRSwweEZGLDB4OTcsMHhDRSwweDM2LDB4NzIsMHgwQiwweDg1LDB4QzksCi0weDc1LDB4RTgsMHg4QiwweDQ2LDB4NDgsMHhFOCwweDFBLDB4MEMsMHhDMywweDRFLDB4NDEsMHhDMywweDZBLDB4MDAsMHgxRiwweEM2LAotMHgwNiwweDkzLDB4MTIsMHgwQywweDlDLDB4MEUsMHhFOCwweDYzLDB4REEsMHhFOCwweEJDLDB4RTgsMHgzMywweEMwLDB4QUMsMHg0OSwKLTB4M0QsMHg1QiwweDAwLDB4NzcsMHhFNywweDhCLDB4RDgsMHhEMSwweEUzLDB4MkUsMHhGRiwweDk3LDB4ODYsMHgzNywweDcyLDB4RDksCi0weDg1LDB4QzksMHg3NSwweEU4LDB4QzMsMHhGNywweDQ2LDB4N0EsMHgxMCwweDAwLDB4NzUsMHgwRiwweDgzLDB4QkUsMHg4NCwweDAwLAotMHgwMCwweDc0LDB4MDgsMHhCOCwweDQ4LDB4M0EsMHg4OSwweDg2LDB4ODAsMHgwMCwweEMzLDB4ODEsMHhCRSwweDgwLDB4MDAsMHhFQywKLTB4M0MsMHg3NCwweEY3LDB4ODMsMHhCRSwweDg4LDB4MDAsMHgwMCwweDc1LDB4MDUsMHhCOCwweEVDLDB4M0MsMHhFQiwweEU3LDB4RjcsCi0weDQ2LDB4N0EsMHgwOCwweDAwLDB4NzUsMHg0MCwweDFFLDB4NjAsMHg4QiwweDhFLDB4ODgsMHgwMCwweDNCLDB4NEUsMHg3NCwweDc3LAotMHgzMywweDNCLDB4NEUsMHg3OCwweDc3LDB4MkUsMHhDNCwweDdFLDB4MTAsMHg4QiwweERGLDB4MjYsMHgwMywweDNELDB4NDcsMHg0NywKLTB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RCwweEI2LDB4RjQsMHgwMCwweDhCLDB4QzEsMHhGNywweDQ2LDB4N0EsMHgwMSwweDAwLDB4NzUsCi0weDFELDB4RjMsMHhBNCwweDI2LDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEIwLAotMHgwQywweEU4LDB4M0UsMHhENywweDYxLDB4MUYsMHhDNywweDg2LDB4ODgsMHgwMCwweDAwLDB4MDAsMHhFQiwweEFDLDB4RTMsMHhFMywKLTB4NTAsMHg5MCwweEFDLDB4MjQsMHg3RiwweEFBLDB4RTIsMHhGQSwweDU4LDB4RUIsMHhEOCwweDkwLDB4OEIsMHg4RSwweDg4LDB4MDAsCi0weEUzLDB4NDYsMHg4QiwweDlFLDB4OEEsMHgwMCwweDg1LDB4REIsMHg3NCwweDNFLDB4QkEsMHg1MCwweEZGLDB4RUQsMHgyQiwweDg2LAotMHg4MiwweDAwLDB4M0IsMHhDMywweDcyLDB4MzcsMHg4RCwweEI2LDB4RjQsMHgwMCwweEM0LDB4N0UsMHgxMCwweDhCLDB4REYsMHgyNiwKLTB4MDMsMHgzRCwweDQ3LDB4NDcsMHg4QiwweEMxLDB4MTYsMHgxRiwweEY3LDB4NDYsMHg3QSwweDAxLDB4MDAsMHg3NSwweDI0LDB4RjMsCi0weEE0LDB4MjYsMHgwMSwweDA3LDB4MjksMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4QzcsMHg4NiwweDg4LAotMHgwMCwweDAwLDB4MDAsMHhCMCwweDBDLDB4RTgsMHhEQSwweEQ2LDB4ODMsMHg2NiwweDdBLDB4RjcsMHhDMywweEIwLDB4MDAsMHhFOCwKLTB4RDAsMHhENiwweEMzLDB4RTMsMHhEQywweDUwLDB4QUMsMHgyNCwweDdGLDB4QUEsMHhFMiwweEZBLDB4NTgsMHhFQiwweEQyLDB4OTAsCi0weDFFLDB4NjAsMHgzMywweEMwLDB4OEUsMHhEOCwweDhELDB4QjYsMHhGRCwweDAwLDB4OEIsMHg4NiwweDg4LDB4MDAsMHg4QiwweDk2LAotMHg4NCwweDAwLDB4M0EsMHgwNCwweDc1LDB4MTAsMHg4QiwweERFLDB4NDYsMHg4QiwweEM4LDB4OEQsMHhCRSwweEY0LDB4MDAsMHhGMywKLTB4QTYsMHg3NCwweDY2LDB4OEIsMHhGMywweDkwLDB4ODMsMHhDNiwweDA5LDB4NEEsMHg3NSwweEU2LDB4OEQsMHhCNiwweEZELDB4MDAsCi0weDhCLDB4OTYsMHg4NCwweDAwLDB4M0EsMHgwNCwweDczLDB4MTAsMHg4QiwweERFLDB4NDYsMHg4QiwweEM4LDB4OEQsMHhCRSwweEY0LAotMHgwMCwweEYzLDB4QTYsMHg3NCwweDc2LDB4OEIsMHhGMywweDkwLDB4ODMsMHhDNiwweDA5LDB4NEEsMHg3NSwweEU2LDB4OEQsMHhCNiwKLTB4RjQsMHgwMCwweEFDLDB4RjcsMHg0NiwweDdBLDB4MDEsMHgwMCwweDc0LDB4MDIsMHgyNCwweDdGLDB4MUUsMHhDNSwweDVFLDB4MTAsCi0weDhCLDB4MzcsMHg4OCwweDQwLDB4MDIsMHg0NiwweDg5LDB4MzcsMHhGRiwweDRFLDB4NzgsMHhGRiwweDQ2LDB4NzYsMHhGRiwweDRFLAotMHg3NCwweDFGLDB4OEIsMHg4RSwweDg4LDB4MDAsMHg0OSwweDg5LDB4OEUsMHg4OCwweDAwLDB4RTMsMHg0MywweDhELDB4QjYsMHhGNCwKLTB4MDAsMHg4QiwweEZFLDB4NDYsMHhGMywweEE0LDB4RTksMHg3RCwweEZGLDB4QzUsMHg3NiwweDEwLDB4OEIsMHgxQywweDg1LDB4REIsCi0weDc0LDB4MDgsMHgwMywweEYzLDB4ODMsMHhDNiwweDAzLDB4ODMsMHhFNiwweEZFLDB4OEIsMHg4NiwweDg0LDB4MDAsMHgyQiwweEMyLAotMHhCNCwweDgwLDB4ODksMHgwNCwweDQ2LDB4NDYsMHhDNywweDA0LDB4MDAsMHgwMCwweDg5LDB4NzYsMHgxMCwweDgzLDB4NEUsMHg3QSwKLTB4MDQsMHhDNywweDg2LDB4ODgsMHgwMCwweDAwLDB4MDAsMHg2MSwweDFGLDB4RjksMHhDMywweDMzLDB4QzAsMHg2MSwweDFGLDB4QzMsCi0weEIwLDB4ODAsMHg4NCwweEMwLDB4NjEsMHgxRiwweEMzLDB4OTAsMHg4QiwweDRFLDB4NzgsMHgyQiwweDhFLDB4ODgsMHgwMCwweDc2LAotMHgyNywweDg5LDB4QjYsMHg4QywweDAwLDB4OEIsMHg1RSwweDc0LDB4M0IsMHhDQiwweDcyLDB4MDIsMHg4QiwweENCLDB4M0IsMHhDOCwKLTB4NzIsMHgwMiwweDhCLDB4QzgsMHg4QiwweEMxLDB4RTMsMHg0NCwweDMzLDB4RDIsMHg4RSwweEMyLDB4OEIsMHhEMSwweDgzLDB4QkUsCi0weDg4LDB4MDAsMHgwMCwweDc0LDB4MDYsMHhFOSwweDhFLDB4MDAsMHgzMywweEMwLDB4QzMsMHg4QiwweDVFLDB4MTAsMHgwMywweDFGLAotMHg0MywweDQzLDB4NTIsMHhGNywweDQ2LDB4N0EsMHgwMSwweDAwLDB4NzUsMHgyQSwweEFDLDB4OEQsMHhCRSwweEU0LDB4MDAsMHg4QiwKLTB4OEUsMHg4NiwweDAwLDB4RjIsMHhBRSwweDc0LDB4MzQsMHg4OCwweDA3LDB4NDMsMHg0QSwweDc1LDB4RUQsMHg1OCwweDhCLDB4NUUsCi0weDEwLDB4MDEsMHgwNywweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweDhCLDB4QzYsMHgyQiwweDg2LAotMHg4QywweDAwLDB4QzMsMHg5MCwweEFDLDB4OEQsMHhCRSwweEU0LDB4MDAsMHg4QiwweDhFLDB4ODYsMHgwMCwweEYyLDB4QUUsMHg3NCwKLTB4MEEsMHgyNCwweDdGLDB4ODgsMHgwNywweDQzLDB4NEEsMHg3NSwweEVCLDB4RUIsMHhEMiwweDg4LDB4ODYsMHhGNCwweDAwLDB4QzcsCi0weDg2LDB4ODgsMHgwMCwweDAxLDB4MDAsMHg1OCwweDJCLDB4QzIsMHg3NCwweDBFLDB4OEIsMHg1RSwweDEwLDB4MDEsMHgwNywweDI5LAotMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4NDAsMHhFOCwweDk0LDB4RkUsMHg3MiwweEJFLDB4NEEsMHg3NSwKLTB4MTUsMHg4MywweEJFLDB4OEEsMHgwMCwweDAwLDB4NzQsMHhCNCwweEJBLDB4NTAsMHhGRiwweEVELDB4ODksMHg4NiwweDgyLDB4MDAsCi0weDgzLDB4NEUsMHg3QSwweDA4LDB4RUIsMHhBNiwweDhELDB4QkUsMHhGNCwweDAwLDB4MDMsMHhCRSwweDg4LDB4MDAsMHhBNCwweEZGLAotMHg4NiwweDg4LDB4MDAsMHhFOCwweDZBLDB4RkUsMHg3MiwweDk0LDB4NzksMHgwNiwweDRBLDB4NzQsMHg4RiwweEU5LDB4NUIsMHhGRiwKLTB4NEEsMHg3NCwweENFLDB4RUIsMHhFMSwweDkwLDB4NTAsMHhFOCwweDExLDB4Q0MsMHg4QiwweDQ2LDB4NzQsMHgzOSwweDQ2LDB4NzIsCi0weDc0LDB4MjcsMHgxRSwweDU2LDB4NTEsMHgzMywweEM5LDB4QzUsMHg3NiwweDBDLDB4QUQsMHg3NCwweDEwLDB4NzgsMHgwOSwweDAzLAotMHhDOCwweDA1LDB4MDEsMHgwMCwweDI0LDB4RkUsMHgwMywweEYwLDB4M0IsMHg3NiwweDEwLDB4NzYsMHhFRCwweDI5LDB4NEUsMHg3NiwKLTB4MDEsMHg0RSwweDc4LDB4RTgsMHgzNywweENDLDB4NTksMHg1RSwweDFGLDB4NTgsMHhDMywweDkwLDB4QzQsMHg3RSwweDEwLDB4MjYsCi0weDhCLDB4MUQsMHg4MywweEMzLDB4MDMsMHgyNiwweDg5LDB4MUQsMHg0QiwweDAzLDB4RkIsMHhBQiwweDkxLDB4QUEsMHhCOCwweDAzLAotMHgwMCwweDI5LDB4NDYsMHg3OCwweDAxLDB4NDYsMHg3NiwweDI5LDB4NDYsMHg3NCwweEMzLDB4OTAsMHhDNCwweDdFLDB4MTAsMHgyNiwKLTB4OEIsMHgxRCwweDQzLDB4MjYsMHg4OSwweDFELDB4NDMsMHgwMywweEZCLDB4QUEsMHhGRiwweDRFLDB4NzgsMHhGRiwweDQ2LDB4NzYsCi0weEZGLDB4NEUsMHg3NCwweEMzLDB4RTgsMHhFNSwweEZGLDB4QzMsMHg4MCwweDgxLDB4ODQsMHg4NSwweDgyLDB4ODMsMHg4NiwweDg3LAotMHg1MCwweDUzLDB4OEEsMHhEQywweDgzLDB4RTMsMHgwRSwweEQxLDB4RUIsMHgyRSwweDhBLDB4ODcsMHg5OCwweDNCLDB4MDgsMHg4NiwKLTB4QjAsMHgwMCwweEZFLDB4ODYsMHhCMSwweDAwLDB4QjAsMHgwQSwweEU4LDB4ODcsMHhENCwweDVCLDB4NTgsMHhDMywweDUwLDB4OEEsCi0weEM4LDB4QjgsMHhGRiwweDAwLDB4RTgsMHg5NSwweEZGLDB4NTgsMHhDMywweDkwLDB4OEEsMHg4NiwweEJCLDB4MDAsMHhFOCwweEFCLAotMHhGRiwweEMzLDB4RTgsMHhDQiwweEZGLDB4RTgsMHhGMiwweEZGLDB4QzMsMHg5MCwweEU4LDB4QzMsMHhGRiwweEU4LDB4QjQsMHhGRiwKLTB4QzMsMHg5MCwweDMzLDB4QzAsMHhFOCwweDk1LDB4RkYsMHhDMywweEI4LDB4RkYsMHgwMCwweDMzLDB4QzksMHhFOCwweDZDLDB4RkYsCi0weEMzLDB4OTAsMHhCOCwweEZGLDB4MDEsMHhCMSwweDEwLDB4RTgsMHg2MiwweEZGLDB4QzMsMHg5MCwweEMzLDB4RkMsMHgzQiwweEUyLAotMHgzQiwweEYyLDB4M0IsMHhGMiwweDNCLDB4RkMsMHgzQiwweEUyLDB4M0IsMHhFOCwweDNCLDB4RTgsMHgzQiwweEZDLDB4M0IsMHhFMiwKLTB4M0IsMHhFOCwweDNCLDB4RTgsMHgzQiwweEZDLDB4M0IsMHhFMiwweDNCLDB4RTIsMHgzQiwweEUyLDB4M0IsMHgwMCwweDEwLDB4MDAsCi0weDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLAotMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwKLTB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDAsMHg1MSwweDUzLDB4OEIsCi0weDRFLDB4MzgsMHg4MSwweEUxLDB4RkYsMHhFRSwweEE4LDB4MDQsMHg3NCwweDA0LDB4ODEsMHhDOSwweDAwLDB4MDEsMHg4QSwweEUwLAotMHg4MCwweEU0LDB4MDMsMHgyNCwweDE4LDB4RDAsMHhFNCwweDBBLDB4QzQsMHgzMywweERCLDB4OEEsMHhEOCwweDJFLDB4OEIsMHg4NywKLTB4RkQsMHgzQiwweDg5LDB4NDYsMHg3QywweDJFLDB4MEIsMHg4RiwweDFELDB4M0MsMHg4OSwweDRFLDB4MzgsMHhEMSwweEVCLDB4MkUsCi0weDhBLDB4QTcsMHgzRCwweDNDLDB4NUIsMHg1OSwweEMzLDB4QUMsMHg0OSwweDNDLDB4MDEsMHg3MiwweDFELDB4NzQsMHgyMCwweDNDLAotMHgwMywweDcyLDB4MjMsMHg3NCwweDI4LDB4M0MsMHgwOCwweDcyLDB4MkIsMHg3NCwweDMwLDB4M0MsMHgyMCwweDcyLDB4MzcsMHg3NCwKLTB4M0EsMHhCQiwweERBLDB4M0IsMHgzMiwweEU0LDB4ODksMHg1RSwweDdFLDB4QzMsMHhCQiwweEEwLDB4M0IsMHhFQiwweEY1LDB4QkIsCi0weDk0LDB4M0IsMHhCNCwweDAxLDB4RUIsMHhGMCwweEJCLDB4RkMsMHgzQiwweEI0LDB4MDIsMHhFQiwweEU5LDB4QkIsMHhFMiwweDNCLAotMHhCNCwweDAzLDB4RUIsMHhFMiwweEJCLDB4QkUsMHgzQiwweEI0LDB4MDQsMHhFQiwweERCLDB4QkIsMHhDQSwweDNCLDB4QUMsMHg0OSwKLTB4ODgsMHg4NiwweEJCLDB4MDAsMHhFQiwweENFLDB4QkIsMHhEMiwweDNCLDB4RUIsMHhGMywweEJCLDB4RkMsMHgzQiwweEVCLDB4QzQsCi0weEE5LDB4MDQsMHgwMCwweDc1LDB4RDEsMHhBOSwweDA4LDB4MDAsMHg3NSwweERBLDB4RUIsMHhEMSwweDhCLDB4NUUsMHg3NCwweDhCLAotMHg0RSwweDc4LDB4M0IsMHhDQiwweDcyLDB4MDIsMHg4QiwweENCLDB4M0IsMHhDOCwweDcyLDB4MDIsMHg4QiwweEM4LDB4OEIsMHhDMSwKLTB4RTMsMHgyQywweEM0LDB4N0UsMHgxMCwweDhCLDB4REYsMHgyNiwweDAzLDB4M0QsMHg0NywweDQ3LDB4RjcsMHg0NiwweDdBLDB4MDEsCi0weDAwLDB4NzUsMHgxQywweEY3LDB4QzcsMHgwMSwweDAwLDB4NzQsMHgwMiwweDQ5LDB4QTQsMHhEMSwweEU5LDB4RjMsMHhBNSwweDczLAotMHgwMSwweEE0LDB4MjYsMHgwMSwweDA3LDB4MjksMHg0NiwweDc4LDB4MDEsMHg0NiwweDc2LDB4MjksMHg0NiwweDc0LDB4QzMsMHg1MCwKLTB4NTMsMHhCQiwweDdGLDB4N0YsMHhGNywweEM3LDB4MDEsMHgwMCwweDc0LDB4MDUsMHg0OSwweEFDLDB4MjIsMHhDMywweEFBLDB4RDEsCi0weEU5LDB4RTMsMHgxRCwweDlDLDB4QUQsMHgyMywweEMzLDB4QUIsMHg0OSwweDc0LDB4MTQsMHhBRCwweDIzLDB4QzMsMHhBQiwweDQ5LAotMHg3NCwweDBELDB4QUQsMHgyMywweEMzLDB4QUIsMHg0OSwweDc0LDB4MDYsMHhBRCwweDIzLDB4QzMsMHhBQiwweEUyLDB4RTUsMHg5RCwKLTB4NzMsMHgwNCwweEFDLDB4MjIsMHhDMywweEFCLDB4NUIsMHg1OCwweEVCLDB4QjgsMHhFOCwweENFLDB4QzksMHg4QiwweDVFLDB4MzgsCi0weEY3LDB4QzMsMHgxMCwweDA0LDB4NzUsMHgwMSwweEMzLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NCwweDA1LDB4RTgsMHhCOCwweEUzLAotMHhFQiwweDAzLDB4RTgsMHhBOCwweEUzLDB4ODEsMHg2NiwweDM4LDB4RUYsMHhGQiwweEY2LDB4QzMsMHgxMCwweDc0LDB4M0MsMHhGNiwKLTB4QzMsMHgwMiwweDc0LDB4MDYsMHhFNCwweEQ4LDB4MEMsMHgwMSwweEU2LDB4RDgsMHhGNiwweEMzLDB4MDQsMHg3NCwweDExLDB4ODMsCi0weEMyLDB4MDgsMHg4QSwweDg2LDB4QTcsMHgwMCwweDBDLDB4MDEsMHhFRSwweDg4LDB4ODYsMHhBNywweDAwLDB4ODMsMHhFQSwweDA4LAotMHhGNiwweEMzLDB4MDgsMHg3NCwweDBGLDB4RTgsMHg4QiwweEUzLDB4NzIsMHgwQSwweDhBLDB4ODYsMHhDMCwweDAwLDB4RTYsMHgzOCwKLTB4QjAsMHgyMywweEU2LDB4MEEsMHhGNywweEMzLDB4MDAsMHgwNCwweDc1LDB4MDEsMHhDMywweEY3LDB4QzMsMHgwMCwweDA4LDB4NzUsCi0weEY5LDB4OEEsMHg4NiwweEE1LDB4MDAsMHhGNiwweEMzLDB4NDAsMHg3NSwweDBELDB4QTgsMHgxMCwweDc1LDB4RUMsMHgwQywweDEwLAotMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHhDMywweEE4LDB4MDEsMHg3NSwweERGLDB4ODMsMHhDMiwweDAyLDB4MEMsMHgwNSwKLTB4RUUsMHg4OCwweDg2LDB4QTUsMHgwMCwweEMzLDB4QjAsMHgwMCwweEU4LDB4NDcsMHhEMiwweEVCLDB4MEYsMHhCMCwweDAyLDB4RTgsCi0weDkwLDB4MEUsMHhFQiwweDA4LDB4ODMsMHg2NiwweDM4LDB4REYsMHg4MywweDRFLDB4N0EsMHgwMiwweDMzLDB4QzAsMHg4RSwweEQ4LAotMHhGQSwweEEwLDB4OTIsMHgxMiwweDQwLDB4QTIsMHg5MiwweDEyLDB4M0MsMHgwNSwweDcyLDB4MUUsMHhDNiwweDA2LDB4OTIsMHgxMiwKLTB4MDAsMHhGQiwweEIwLDB4MDEsMHhFOCwweDZCLDB4MEUsMHhGQSwweEExLDB4MjYsMHgwMSwweDIzLDB4MDYsMHgyQSwweDAxLDB4QTgsCi0weDAxLDB4NzUsMHgwNywweEU4LDB4RTIsMHgwNywweEU4LDB4NjEsMHgwOSwweDkwLDB4QjAsMHgwMCwweEU4LDB4MzcsMHhEMiwweEZCLAotMHg4NSwweEVELDB4NzQsMHhCOSwweEZBLDB4RjcsMHg0NiwweDdBLDB4NDYsMHgwMCwweDc1LDB4QzAsMHg4QiwweDQ2LDB4NzgsMHgzRCwKLTB4MEEsMHgwMCwweDcyLDB4QjAsMHg4QiwweDRFLDB4NzQsMHg4MywweEY5LDB4NTAsMHg3MiwweDlBLDB4ODMsMHg2NiwweDM4LDB4REYsCi0weEM1LDB4NzYsMHgxNCwweDhCLDB4NDYsMHgzQSwweDg1LDB4QzAsMHg3NSwweDU4LDB4QUQsMHg4NSwweEMwLDB4NzUsMHgwRiwweEU4LAotMHhGOCwweEZFLDB4RjcsMHg0NiwweDdBLDB4MDgsMHgwMCwweDc0LDB4OTMsMHhFOCwweEEwLDB4RkEsMHhFQiwweDhFLDB4M0IsMHg3NiwKLTB4MDQsMHg3NiwweDIxLDB4QjksMHgwMiwweDAwLDB4MzksMHg0RSwweDJFLDB4NzcsMHgwNSwweEM3LDB4NDYsMHgyRSwweDAwLDB4MDAsCi0weDU2LDB4OEIsMHg3NiwweDJDLDB4ODksMHg3NiwweDA0LDB4QzcsMHgwNCwweDAwLDB4MDAsMHg0NiwweDQ2LDB4ODksMHg3NiwweDJDLAotMHgyOSwweDRFLDB4MkUsMHg1RSwweDg1LDB4QzAsMHg3OSwweDE3LDB4RjYsMHhDNCwweDEwLDB4NzQsMHgwNSwweEZGLDB4NTYsMHg3QywKLTB4RUIsMHgwMywweEZGLDB4NTYsMHg3RSwweDg5LDB4NzYsMHgxNCwweEIwLDB4MEMsMHhFOCwweDg1LDB4RDEsMHhFQiwweDg2LDB4ODksCi0weDQ2LDB4M0EsMHhGRiwweDk2LDB4ODAsMHgwMCwweDI5LDB4NDYsMHgzQSwweDg5LDB4NzYsMHgxNCwweEIwLDB4MEMsMHhFOCwweDcxLAotMHhEMSwweEU5LDB4NzEsMHhGRiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTAsMHgwMiwKLTB4MDEsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwKLTB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4QzAsMHhDMCwweEMwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDAwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsCi0weDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLAotMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwweDgwLDB4ODAsMHg4MCwKLTB4ODAsMHg4MCwweDgwLDB4ODAsMHg0RSwweDQxLDB4NzgsMHg0MSwweEQwLDB4NDEsMHhGNCwweDQxLDB4MDYsMHg0MiwweDE4LDB4NDIsCi0weEMzLDB4OTAsMHg4RSwweDQ2LDB4MDIsMHg4QiwweDdFLDB4MjIsMHg4OSwweDdFLDB4NkMsMHg4MCwweDY2LDB4MjcsMHhGRCwweDhCLAotMHg1NiwweDI0LDB4ODMsMHhGQSwweDA0LDB4NzIsMHhFOSwweDgzLDB4RUEsMHgwMiwweDhCLDB4RDksMHgzQiwweENBLDB4NzYsMHgwMiwKLTB4OEIsMHhDQSwweEIwLDB4MEEsMHg1NywweDUxLDB4OEIsMHhGRSwweEYyLDB4QUUsMHg4QiwweEMxLDB4NTksMHg1RiwweDc1LDB4MUUsCi0weDUwLDB4NDAsMHgyQiwweEM4LDB4NzQsMHgwNiwweDJCLDB4RDEsMHgyQiwweEQ5LDB4RjMsMHhBNCwweDU5LDB4NEIsMHg0QSwweDRBLAotMHhCMCwweDBELDB4QUEsMHhBNCwweDNCLDB4Q0EsMHg3NiwweDAyLDB4OEIsMHhDQSwweEUzLDB4MTMsMHhFQiwweEQ0LDB4MkIsMHhEOSwKLTB4RjcsMHhDNiwweDAxLDB4MDAsMHg3NCwweDAyLDB4QTQsMHg0OSwweEQxLDB4RTksMHhGMywweEE1LDB4NzMsMHgwMSwweEE0LDB4ODksCi0weDdFLDB4MjIsMHgyQiwweDdFLDB4NkMsMHgyOSwweDdFLDB4MjQsMHgwMSwweDdFLDB4MUEsMHg4QiwweENCLDB4ODAsMHg3RSwweDI2LAotMHgwMiwweDc0LDB4MDUsMHg4MCwweDY2LDB4MjYsMHhGRCwweEMzLDB4NjAsMHhCMCwweEZELDB4RTgsMHgxOCwweDAzLDB4NjEsMHhDMywKLTB4QzMsMHg5MCwweEU4LDB4N0MsMHgwMiwweDcyLDB4RjksMHg5MCwweDgzLDB4NEUsMHgyNiwweDIwLDB4OEIsMHg0NiwweDZBLDB4ODksCi0weDQ2LDB4NkUsMHg4QiwweDQ2LDB4NDgsMHgwRCwweDA0LDB4MDAsMHgyNSwweEJGLDB4RkYsMHg4OSwweDQ2LDB4NDgsMHhCMCwweDA2LAotMHhFOCwweEJGLDB4Q0YsMHhDMywweDg5LDB4N0UsMHgyMiwweDJCLDB4N0UsMHg2QywweDAxLDB4N0UsMHgxQSwweDI5LDB4N0UsMHgyNCwKLTB4ODAsMHg3RSwweDI2LDB4MDIsMHg3NCwweDA1LDB4ODMsMHg2NiwweDI2LDB4RkQsMHhDMywweDYwLDB4QjAsMHhGRCwweEU4LDB4RDUsCi0weDAyLDB4NjEsMHhDMywweDkwLDB4OEEsMHhCRSwweEMyLDB4MDAsMHhFQiwweDI0LDB4RjcsMHg0NiwweDQ4LDB4NDAsMHgwMCwweDc1LAotMHhCMSwweDhFLDB4NDYsMHgwMiwweDhCLDB4N0UsMHgyMiwweDg5LDB4N0UsMHg2QywweDhCLDB4NTYsMHgyNCwweDgzLDB4RUEsMHgwQSwKLTB4NzgsMHg5RSwweDAzLDB4RDcsMHg4MCwweDY2LDB4MjcsMHhGRCwweDMzLDB4QzAsMHg4QSwweEJFLDB4QzIsMHgwMCwweEUzLDB4QjQsCi0weDNCLDB4RkEsMHg3NywweEIwLDB4QUMsMHg0OSwweDkzLDB4MkUsMHg4QSwweDg3LDB4RDQsMHgzRSwweDkzLDB4MjIsMHhERiwweDc1LAotMHgxNywweEFBLDB4RTMsMHhBMCwweDNCLDB4RkEsMHg3NywweDlDLDB4QUMsMHg0OSwweDkzLDB4MkUsMHg4QSwweDg3LDB4RDQsMHgzRSwKLTB4OTMsMHgyMiwweERGLDB4NzUsMHgwMywweEFBLDB4RUIsMHhENiwweEY2LDB4QzMsMHg3RiwweDc1LDB4MDUsMHhGRiwweDQ2LDB4NjYsCi0weEVCLDB4REYsMHhGNiwweEMzLDB4NDAsMHg3NSwweDBDLDB4OEIsMHhEOCwweDgzLDB4RUIsMHgwOCwweEQxLDB4RTMsMHgyRSwweEZGLAotMHhBNywweEQ0LDB4M0YsMHhGRiwweDQ2LDB4NjYsMHgyQywweDIwLDB4RUIsMHhDNywweDg1LDB4QzAsMHg3NCwweDJDLDB4ODksMHg0NiwKLTB4NkEsMHg4MywweDRFLDB4NDgsMHg0MCwweDg5LDB4N0UsMHgyMiwweDJCLDB4N0UsMHg2QywweDAxLDB4N0UsMHgxQSwweDI5LDB4N0UsCi0weDI0LDB4ODAsMHg3RSwweDI2LDB4MDIsMHg3NCwweDA4LDB4ODMsMHg2NiwweDI2LDB4RkQsMHhFOCwweEEzLDB4MDEsMHhDMywweDYwLAotMHhCMCwweEZELDB4RTgsMHgzMSwweDAyLDB4NjEsMHhFOCwweDk4LDB4MDEsMHhDMywweEU5LDB4NTcsMHhGRiwweDkwLDB4OEIsMHg1RSwKLTB4NjYsMHg0QiwweDc4LDB4MDMsMHg4OSwweDVFLDB4NjYsMHhBQSwweDhCLDB4NUUsMHg2NCwweEY3LDB4QzMsMHgwMCwweDIwLDB4NzUsCi0weDAzLDB4RTksMHg0MCwweEZGLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NCwweDA4LDB4OEEsMHg4NiwweEMxLDB4MDAsMHhBQSwweEU5LAotMHgzMiwweEZGLDB4QjgsMHgzMiwweDAwLDB4RUIsMHhBMywweDkwLDB4OEIsMHg1RSwweDY2LDB4ODksMHg1RSwweDY4LDB4ODMsMHhDMywKLTB4MDgsMHg4MCwweEUzLDB4RjgsMHg4OSwweDVFLDB4NjYsMHg4QiwweDVFLDB4NjQsMHg4MSwweEUzLDB4MDAsMHgxOCwweDgxLDB4RkIsCi0weDAwLDB4MTgsMHg3NCwweDJELDB4QUEsMHg4NSwweERCLDB4NzQsMHgyNSwweEY3LDB4NDYsMHg2NCwweDQwLDB4MDAsMHg3NSwweDE4LAotMHg4MSwweEZCLDB4MDAsMHgxMCwweDc0LDB4MEMsMHg4QiwweDQ2LDB4NjYsMHgyQiwweDQ2LDB4NjgsMHhDMSwweEUwLDB4MDQsMHhFOSwKLTB4NjgsMHhGRiwweEI4LDB4NjQsMHgwMCwweEU5LDB4NjIsMHhGRiwweDhBLDB4ODYsMHhDMSwweDAwLDB4QUEsMHhBQSwweEU5LDB4RTMsCi0weEZFLDB4NTEsMHg4QiwweDRFLDB4NjYsMHgyQiwweDRFLDB4NjgsMHhCMCwweDIwLDB4RjMsMHhBQSwweDU5LDB4RTksMHhENCwweEZFLAotMHg4QiwweDVFLDB4NjYsMHg4OSwweDVFLDB4NjgsMHg4QiwweDVFLDB4NjQsMHhGNywweEMzLDB4MjQsMHgwMCwweDc0LDB4MTAsMHhDNywKLTB4NDYsMHg2NiwweDAwLDB4MDAsMHhGNywweEMzLDB4MDQsMHgwMCwweDc0LDB4MDUsMHhCMCwweDBELDB4QUEsMHhCMCwweDBBLDB4QUEsCi0weEVCLDB4NDgsMHg5MCwweDkwLDB4QUEsMHhGNywweDQ2LDB4NjQsMHgwMCwweDQwLDB4NzQsMHgwNiwweEI4LDB4RDAsMHgwNywweEU5LAotMHgxOCwweEZGLDB4RTksMHg5RiwweEZFLDB4OTAsMHhBQSwweEY3LDB4NDYsMHg2NCwweDAwLDB4ODAsMHg3NCwweDA2LDB4QjgsMHhEMCwKLTB4MDcsMHhFOSwweDA2LDB4RkYsMHhFOSwweDhELDB4RkUsMHg5MCwweDhCLDB4NUUsMHg2NiwweDg5LDB4NUUsMHg2OCwweDg1LDB4REIsCi0weDc1LDB4MEMsMHg4QiwweDVFLDB4NjQsMHhGNywweEMzLDB4MTAsMHgwMCwweDc0LDB4MDYsMHhFOSwweDc2LDB4RkUsMHg4QiwweDVFLAotMHg2NCwweEY3LDB4QzMsMHgwOCwweDAwLDB4NzQsMHgyNywweEIwLDB4MEEsMHhBQSwweEY3LDB4QzMsMHgyMCwweDAwLDB4NzUsMHgxRiwKLTB4RjcsMHhDMywweDAwLDB4MDEsMHg3NSwweDAzLDB4RTksMHg1QiwweEZFLDB4RjcsMHhDMywweDQwLDB4MDAsMHg3NSwweDA2LDB4QjgsCi0weDY0LDB4MDAsMHhFOSwweEM1LDB4RkUsMHg4QSwweDg2LDB4QzEsMHgwMCwweEFBLDB4QUEsMHhFOSwweDQ2LDB4RkUsMHhBQSwweEM3LAotMHg0NiwweDY2LDB4MDAsMHgwMCwweEY3LDB4QzMsMHgwMCwweDA2LDB4NzQsMHhGMSwweEY3LDB4QzMsMHg0MCwweDAwLDB4NzQsMHgxOSwKLTB4OEEsMHg4NiwweEMxLDB4MDAsMHg4MSwweEUzLDB4MDAsMHgwNiwweDgxLDB4RkIsMHgwMCwweDA0LDB4NzIsMHgwNiwweDc2LDB4MDIsCi0weEFBLDB4QUEsMHhBQSwweEFBLDB4QUEsMHhBQSwweEU5LDB4MUIsMHhGRSwweDgxLDB4RTMsMHgwMCwweDA2LDB4ODEsMHhGQiwweDAwLAotMHgwNCwweDcyLDB4MEUsMHg3NiwweDA2LDB4QjgsMHg5NiwweDAwLDB4RTksMHg3RiwweEZFLDB4QjgsMHg2NCwweDAwLDB4RTksMHg3OSwKLTB4RkUsMHg4QiwweDQ2LDB4NjgsMHhFOSwweDczLDB4RkUsMHg5MCwweDM2LDB4OEIsMHgwRSwweERBLDB4MTIsMHg4MywweEY5LDB4MzIsCi0weDczLDB4MUQsMHgxRSwweDA2LDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4OEQsMHg3NiwweDRDLDB4QkYsMHhEQywweDEyLAotMHgwMywweEY5LDB4QTUsMHhBNSwweEE1LDB4ODMsMHhDMSwweDA2LDB4ODksMHgwRSwweERBLDB4MTIsMHgwNywweDFGLDB4QzMsMHhCMCwKLTB4MDgsMHhFOCwweDZFLDB4Q0QsMHhDMywweDkwLDB4ODMsMHg2NiwweDQ4LDB4RkUsMHhFOCwweDkzLDB4QzQsMHhFOCwweEM4LDB4RkYsCi0weEMzLDB4RjYsMHg0NiwweDI3LDB4MDIsMHg3NSwweDBGLDB4OUMsMHhGQSwweDgzLDB4N0UsMHgxQSwweDAwLDB4NzQsMHgwOSwweDgwLAotMHg0RSwweDI3LDB4MDEsMHg5RCwweEY5LDB4QzMsMHhGOCwweEMzLDB4NTAsMHg1MiwweEY3LDB4NDYsMHgzOCwweDQwLDB4MDAsMHg3NCwKLTB4MUQsMHhFOCwweDM0LDB4REUsMHg4MywweEMyLDB4MEEsMHhFQywweEE4LDB4NDAsMHg3NSwweDI3LDB4ODMsMHhFQSwweDA4LDB4OEEsCi0weDg2LDB4QTUsMHgwMCwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEVFLDB4NUEsMHg1OCwweEVCLDB4RDEsMHhFOCwweDBDLAotMHhERSwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGQiwweDBDLDB4MDIsMHg4OCwweDg2LDB4QTUsMHgwMCwweEU2LDB4MEMsMHg1QSwKLTB4NTgsMHhFQiwweEJDLDB4ODAsMHg0RSwweDI3LDB4MDIsMHg1QSwweDU4LDB4OUQsMHhGOCwweEMzLDB4MDgsMHg0NiwweDI2LDB4OUMsCi0weEZBLDB4OEEsMHg4RSwweEE1LDB4MDAsMHhGNywweDQ2LDB4MzgsMHg0MCwweDAwLDB4NzUsMHgxNCwweEY2LDB4QzEsMHgwNiwweDc0LAotMHgyMywweEU4LDB4RDksMHhERCwweDhBLDB4QzEsMHgyNCwweEY5LDB4ODgsMHg4NiwweEE1LDB4MDAsMHhFNiwweDBDLDB4OUQsMHhDMywKLTB4RjYsMHhDMSwweDAyLDB4NzQsMHgwRiwweEU4LDB4RDAsMHhERCwweDgzLDB4QzIsMHgwMiwweDhBLDB4QzEsMHgyNCwweEZELDB4ODgsCi0weDg2LDB4QTUsMHgwMCwweEVFLDB4OUQsMHhDMywweDhCLDB4NUUsMHgyNiwweDIyLDB4QzMsMHg4OCwweDQ2LDB4MjYsMHg3NCwweDAxLAotMHhDMywweDgwLDB4NjYsMHgyNywweEZELDB4OUMsMHhGQSwweDhBLDB4OEUsMHhBNSwweDAwLDB4RjcsMHg0NiwweDM4LDB4NDAsMHgwMCwKLTB4NzUsMHgxNiwweEY2LDB4QzEsMHgwNCwweDc1LDB4MEYsMHhFOCwweDkzLDB4REQsMHg4QSwweEMxLDB4MjQsMHhGRCwweDBDLDB4MDQsCi0weDg4LDB4ODYsMHhBNSwweDAwLDB4RTYsMHgwQywweDlELDB4QzMsMHhGNiwweEMxLDB4MDIsMHg3NSwweEY5LDB4RTgsMHg4OCwweERELAotMHg4MywweEMyLDB4MEEsMHhFQywweEE4LDB4MjAsMHg3NSwweDBFLDB4ODMsMHhFQSwweDA4LDB4OEEsMHhDMSwweDBDLDB4MDIsMHg4OCwKLTB4ODYsMHhBNSwweDAwLDB4RUUsMHg5RCwweEMzLDB4ODMsMHhFQSwweDBBLDB4MzMsMHhDOSwweDhBLDB4NEUsMHgxQywweDhCLDB4NDYsCi0weDFBLDB4M0IsMHhDOCwweDczLDB4MUIsMHgwMSwweDRFLDB4MkEsMHgyQiwweEMxLDB4ODksMHg0NiwweDFBLDB4MUUsMHhDNSwweDc2LAotMHgwMCwweEYzLDB4NkUsMHgxRiwweDg5LDB4NzYsMHgwMCwweDgzLDB4QzIsMHgwMiwweDhBLDB4ODYsMHhBNSwweDAwLDB4RUIsMHhDRCwKLTB4ODUsMHhDMCwweDc0LDB4MTIsMHgwMSwweDQ2LDB4MkEsMHg4QiwweEM4LDB4MUUsMHhDNSwweDc2LDB4MDAsMHhGMywweDZFLDB4MUYsCi0weDg5LDB4NzYsMHgwMCwweDg5LDB4NEUsMHgxQSwweEY2LDB4QzcsMHgwMSwweDc1LDB4MjMsMHg4MCwweENCLDB4MDIsMHg4OSwweDVFLAotMHgyNiwweEU4LDB4MDgsMHhDMywweDgzLDB4QzIsMHgwMiwweDhBLDB4ODYsMHhBNSwweDAwLDB4MjQsMHhGRCwweEVFLDB4ODgsMHg4NiwKLTB4QTUsMHgwMCwweEY2LDB4QzcsMHgxMCwweDc1LDB4MDUsMHhCMCwweDAyLDB4RTgsMHgxNiwweENDLDB4OUQsMHhDMywweDgzLDB4QzIsCi0weDAyLDB4OEEsMHg4NiwweEE1LDB4MDAsMHhFQiwweDg2LDB4OTAsMHg4QiwweEQxLDB4OEIsMHg0NiwweDI0LDB4M0IsMHhDOCwweDc2LAotMHgwMiwweDhCLDB4QzgsMHgyQiwweEQxLDB4MkIsMHhDMSwweDhCLDB4RDksMHhFMywweDIyLDB4ODAsMHg2NiwweDI3LDB4RkQsMHg4RSwKLTB4NDYsMHgwMiwweDhCLDB4N0UsMHgyMiwweEY3LDB4QzYsMHgwMSwweDAwLDB4NzQsMHgwMiwweEE0LDB4NDksMHhEMSwweEU5LDB4RjMsCi0weEE1LDB4NzMsMHgwMSwweEE0LDB4ODksMHg3RSwweDIyLDB4ODksMHg0NiwweDI0LDB4MDEsMHg1RSwweDFBLDB4OEIsMHhDQSwweDgwLAotMHg3RSwweDI2LDB4MDIsMHg3NCwweDA1LDB4ODAsMHg2NiwweDI2LDB4RkQsMHhDMywweDYwLDB4QjAsMHhGRCwweEU4LDB4RjYsMHhGRSwKLTB4NjEsMHhDMywweDUwLDB4RTQsMHgwQSwweDg0LDB4QzAsMHg3NSwweDBBLDB4ODYsMHg4NiwweEExLDB4MDAsMHg4NCwweEMwLDB4NzQsCi0weDBBLDB4RTYsMHgwQSwweDU4LDB4MEMsMHgyMCwweDg5LDB4NDYsMHg0OCwweEY5LDB4QzMsMHg1OCwweDI0LDB4REYsMHg4OSwweDQ2LAotMHg0OCwweEY4LDB4QzMsMHg5MCwweEZCLDB4QjAsMHgwMiwweEU4LDB4RTgsMHgwNywweEZBLDB4RTgsMHgyRSwweDAxLDB4RkIsMHhCMCwKLTB4MDEsMHhFOCwweERFLDB4MDcsMHhGQSwweEIwLDB4MDIsMHhFOCwweEJDLDB4Q0IsMHhGQiwweDg1LDB4RUQsMHg3NCwweEU1LDB4RkEsCi0weDhFLDB4NUUsMHgwQSwweEZCLDB4OTAsMHhGQSwweDhCLDB4NDYsMHg0OCwweDhCLDB4NzYsMHg0MCwweEE4LDB4OEMsMHg3NSwweERFLAotMHhBOCwweDIwLDB4NzQsMHgxQSwweDUwLDB4RTgsMHg1NSwweERDLDB4NTgsMHhFOCwweEE2LDB4RkYsMHg3MywweDEwLDB4QjAsMHgwMiwKLTB4RTgsMHg1RiwweENCLDB4RUIsMHhDOSwweDkwLDB4MjUsMHhGRiwweDAwLDB4OEIsMHhDOCwweEVCLDB4MzYsMHg5MCwweEE4LDB4MDEsCi0weDc1LDB4MjIsMHg0NiwweDgzLDB4RTYsMHhGRSwweDNCLDB4NzYsMHgwOCwweDc0LDB4NzksMHhBRCwweDhBLDB4RkMsMHhCMywweEYwLAotMHgyMiwweEZCLDB4M0EsMHhGQiwweDc0LDB4RTAsMHgzQSwweEJFLDB4QTAsMHgwMCwweDc0LDB4MkUsMHhFOCwweEQyLDB4RkQsMHg3MywKLTB4NzcsMHhFQiwweDlCLDB4OTAsMHg4QSwweEUwLDB4MjQsMHhGQywweDg4LDB4NDYsMHg0OCwweDhCLDB4NEUsMHg0QSwweEY2LDB4QzQsCi0weDAyLDB4NzQsMHgxRCwweEU4LDB4QkIsMHhGRCwweDcyLDB4ODYsMHhFOCwweDEzLDB4RjMsMHg4OSwweDc2LDB4NDAsMHhFMywweDkzLAotMHg4MywweDRFLDB4NDgsMHgwMywweDg5LDB4NEUsMHg0QSwweEU5LDB4NzQsMHhGRiwweDI1LDB4RkYsMHgwRiwweDhCLDB4QzgsMHg5MCwKLTB4OEIsMHg4NiwweDk4LDB4MDAsMHg4NSwweEMwLDB4NzQsMHgxQSwweDUxLDB4OEEsMHg4RSwweEEwLDB4MDAsMHhDMCwweEU5LDB4MDQsCi0weEJBLDB4MDEsMHgwMCwweEQzLDB4RTIsMHg1OSwweDIzLDB4QzIsMHg3NCwweDA4LDB4MDMsMHhGMSwweDg5LDB4NzYsMHg0MCwweEU5LAotMHg2MSwweEZGLDB4RkYsMHg1NiwweDYyLDB4RTMsMHhGNSwweDgzLDB4NEUsMHg0OCwweDAxLDB4ODksMHg0RSwweDRBLDB4ODksMHg3NiwKLTB4NDAsMHhFOSwweDNBLDB4RkYsMHg4MSwweDRFLDB4MjYsMHgwMCwweDEwLDB4OEIsMHg0NiwweDUwLDB4M0IsMHg0NiwweDQ2LDB4NzcsCi0weDAzLDB4RTgsMHg1MiwweEZELDB4RTksMHgyNywweEZGLDB4OTAsMHg4OCwweEJFLDB4QTAsMHgwMCwweEVCLDB4QUMsMHgwQSwweDA2LAotMHg5MCwweDEyLDB4OEEsMHhFMCwweEJBLDB4MDYsMHgwMSwweEIwLDB4MDQsMHhFRSwweEVDLDB4ODQsMHhDMCwweDc1LDB4MTIsMHhCMCwKLTB4MDQsMHhFRSwweDhBLDB4QzQsMHhFRSwweDMyLDB4RTQsMHhBOCwweDgwLDB4NzQsMHgwNiwweEM3LDB4MDYsMHg4NCwweDEyLDB4MDAsCi0weDAwLDB4ODgsMHgyNiwweDkwLDB4MTIsMHhDMywweDBBLDB4MDYsMHg5MCwweDEyLDB4OEEsMHhFMCwweEJBLDB4MDYsMHgwMSwweEVDLAotMHhBOCwweDAxLDB4NzUsMHhFRCwweEJBLDB4MDgsMHgwMSwweDhBLDB4QzQsMHhFRSwweDMyLDB4RTQsMHhBOCwweDgwLDB4NzQsMHhFMSwKLTB4QzcsMHgwNiwweDg0LDB4MTIsMHgwMCwweDAwLDB4ODgsMHgyNiwweDkwLDB4MTIsMHhDMywweDkwLDB4MzYsMHhGNywweDA2LDB4MjQsCi0weDAxLDB4MDEsMHgwMCwweDc1LDB4MzAsMHgzNiwweDhCLDB4MEUsMHhEQSwweDEyLDB4ODAsMHhGOSwweDM2LDB4NzMsMHgyNiwweDMzLAotMHhDMCwweDhFLDB4QzAsMHg4RSwweEQ4LDB4QkYsMHhEQywweDEyLDB4MDMsMHhGOSwweEIwLDB4MDgsMHhFOCwweDc3LDB4Q0EsMHg4NSwKLTB4RUQsMHg3NCwweDBFLDB4OEQsMHg3NiwweDRDLDB4QTUsMHhBNSwweEE1LDB4ODAsMHhDMSwweDA2LDB4ODAsMHhGOSwweDM2LDB4NzIsCi0weEU5LDB4ODksMHgwRSwweERBLDB4MTIsMHhDMywweEMzLDB4OTAsMHhGNywweDA2LDB4MjYsMHgwMSwweDAxLDB4MDAsMHg3NSwweEY2LAotMHg4QiwweDBFLDB4MjAsMHgxMywweDg1LDB4QzksMHg3NSwweEVFLDB4MzMsMHhDMCwweDhFLDB4QzAsMHg4RSwweEQ4LDB4QkYsMHgyNCwKLTB4MTMsMHhCOSwweDM2LDB4MDAsMHhCMCwweDBBLDB4RTgsMHgzRCwweENBLDB4ODUsMHhFRCwweDc1LDB4MDYsMHhFOSwweDEyLDB4MDEsCi0weEU5LDB4MEEsMHgwMSwweDMzLDB4REIsMHg4QSwweDQ2LDB4NEMsMHg4QSwweEE2LDB4QjMsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDBFLAotMHg4OCwweEE2LDB4QjMsMHgwMCwweDBBLDB4REMsMHhCNCwweDBBLDB4QUIsMHg4MywweEU5LDB4MDIsMHg3NiwweEUyLDB4OEEsMHhBNiwKLTB4QjIsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDBFLDB4ODgsMHhBNiwweEIyLDB4MDAsMHgwQSwweERDLDB4QjQsMHgwOCwweEFCLDB4ODMsCi0weEU5LDB4MDIsMHg3NiwweENDLDB4OEEsMHhBNiwweEIxLDB4MDAsMHhGRSwweENDLDB4NzgsMHgxOCwweDhBLDB4QkUsMHhCMCwweDAwLAotMHg3NSwweDA0LDB4ODgsMHhBNiwweEIwLDB4MDAsMHg4OCwweEE2LDB4QjEsMHgwMCwweDBBLDB4REMsMHg4QSwweEU3LDB4QUIsMHg4MywKLTB4RTksMHgwMiwweDc2LDB4QUMsMHg4QSwweEE2LDB4QjQsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDFGLDB4ODgsMHhBNiwweEI0LDB4MDAsCi0weDBBLDB4REMsMHhCNCwweDBCLDB4QUIsMHg4QSwweDg2LDB4QkMsMHgwMCwweDhBLDB4QTYsMHhCRCwweDAwLDB4QUIsMHg4QiwweDg2LAotMHhCRSwweDAwLDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDg4LDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwweEI2LDB4MDAsMHhGRSwKLTB4Q0MsMHg3OCwweDE5LDB4ODgsMHhBNiwweEI2LDB4MDAsMHgwQSwweERDLDB4QjQsMHgwQywweEFCLDB4RTgsMHhEQiwweENCLDB4QUIsCi0weDhCLDB4NDYsMHgyQSwweEFCLDB4ODMsMHhFOSwweDA2LDB4NzYsMHg3NCwweDhBLDB4NDYsMHg0QywweDhBLDB4QTYsMHhCNywweDAwLAotMHhGRSwweENDLDB4NzgsMHgxOSwweDg4LDB4QTYsMHhCNywweDAwLDB4MEEsMHhEQywweEI0LDB4MEQsMHhBQiwweEU4LDB4QkEsMHhDQiwKLTB4QUIsMHg4QiwweDQ2LDB4MzQsMHhBQiwweDgzLDB4RTksMHgwNiwweDc2LDB4NTMsMHg4QSwweDQ2LDB4NEMsMHg4QSwweEE2LDB4QjgsCi0weDAwLDB4RkUsMHhDQywweDc4LDB4MTksMHg4OCwweEE2LDB4QjgsMHgwMCwweDBBLDB4REMsMHhCNCwweDBFLDB4QUIsMHhBMSwweDUwLAotMHgxMiwweEFCLDB4QTEsMHg1MiwweDEyLDB4QUIsMHg4MywweEU5LDB4MDYsMHg3NiwweDMyLDB4OEEsMHg0NiwweDRDLDB4OEEsMHhBNiwKLTB4QjUsMHgwMCwweEZFLDB4Q0MsMHg3OCwweDE4LDB4ODgsMHhBNiwweEI1LDB4MDAsMHgwQSwweERDLDB4QjQsMHgwRiwweEFCLDB4OEIsCi0weDg2LDB4OUEsMHgwMCwweEFCLDB4OEIsMHg4NiwweDlDLDB4MDAsMHhBQiwweDgzLDB4RTksMHgwNiwweDc2LDB4MEYsMHg4NCwweERCLAotMHg3NSwweDAzLDB4RTksMHhFRiwweEZFLDB4QjAsMHgwQSwweEU4LDB4RjgsMHhDOCwweEU5LDB4RTcsMHhGRSwweEIwLDB4MEEsMHhFOCwKLTB4RjAsMHhDOCwweEY3LDB4RDksMHg4MywweEMxLDB4MzYsMHg4QiwweEMxLDB4MEQsMHg4MCwweDAwLDB4ODYsMHhDNCwweEEzLDB4MjIsCi0weDEzLDB4NDEsMHg0MSwweDg5LDB4MEUsMHgyMCwweDEzLDB4QzMsMHhBMSwweDg0LDB4MTIsMHgyQiwweEMxLDB4NzIsMHgxMSwweEEzLAotMHg4NCwweDEyLDB4QkUsMHgyMiwweDEzLDB4RDEsMHhFOSwweEYzLDB4NkYsMHg5MCwweDg5LDB4MEUsMHgyMCwweDEzLDB4RjgsMHhDMywKLTB4RjksMHhDMywweEMzLDB4ODEsMHhFRiwweDZBLDB4MTMsMHg3NCwweEY5LDB4OEIsMHhDNywweDBELDB4ODAsMHgwMCwweDg2LDB4QzQsCi0weEEzLDB4NjgsMHgxMywweDQ3LDB4NDcsMHg4OSwweDNFLDB4NjYsMHgxMywweEMzLDB4RjcsMHgwNiwweDJBLDB4MDEsMHgwMSwweDAwLAotMHg3NSwweEUwLDB4OEIsMHgwRSwweDY2LDB4MTMsMHhFMywweDA3LDB4ODAsMHhGOSwweDIwLDB4NzcsMHhENSwweDQ5LDB4NDksMHgzMywKLTB4QzAsMHg4RSwweEMwLDB4OEUsMHhEOCwweEJGLDB4NkEsMHgxMywweDhCLDB4RjcsMHgwMywweEY5LDB4ODMsMHhDNiwweDM0LDB4M0IsCi0weEZFLDB4NzcsMHhDMCwweEIwLDB4MEUsMHhFOCwweEFFLDB4QzgsMHg4NSwweEVELDB4NzQsMHhCNywweDhBLDB4NDYsMHg0QywweDhBLAotMHhCNiwweEI5LDB4MDAsMHhGRSwweENFLDB4NzgsMHgxNSwweDg4LDB4QjYsMHhCOSwweDAwLDB4OEEsMHhBNiwweEE5LDB4MDAsMHg4MCwKLTB4Q0MsMHhDMCwweEFCLDB4ODQsMHhGNiwweDc0LDB4MDUsMHhCMCwweDBFLDB4RTgsMHg1NiwweEM4LDB4OEEsMHhCNiwweEJBLDB4MDAsCi0weEZFLDB4Q0UsMHg3OCwweENCLDB4OEEsMHg5RSwweEE5LDB4MDAsMHg4QSwweEJFLDB4QUIsMHgwMCwweDhBLDB4NTYsMHgzRiwweDhBLAotMHhGMywweDMyLDB4RjcsMHgwQSwweEI2LDB4QUMsMHgwMCwweEM2LDB4ODYsMHhBQywweDAwLDB4MDAsMHgyMiwweEYyLDB4NzQsMHg0QiwKLTB4RjYsMHhDNiwweDA4LDB4NzQsMHgwRiwweEI0LDB4MDIsMHhGNiwweEMzLDB4MDgsMHg3NSwweDAyLDB4QjQsMHgwMywweEFCLDB4ODAsCi0weEU2LDB4RjcsMHg3NCwweDM3LDB4RjYsMHhDNiwweDAxLDB4NzQsMHgwRiwweEI0LDB4MDAsMHhGNiwweEMzLDB4MDEsMHg3NSwweDAyLAotMHhCNCwweDAxLDB4QUIsMHg4MCwweEU2LDB4RkUsMHg3NCwweDIzLDB4RjYsMHhDNiwweDAyLDB4NzQsMHgwRiwweEI0LDB4MDQsMHhGNiwKLTB4QzMsMHgwMiwweDc1LDB4MDIsMHhCNCwweDA1LDB4QUIsMHg4MCwweEU2LDB4RkQsMHg3NCwweDBGLDB4RjYsMHhDNiwweDA0LDB4NzQsCi0weDBBLDB4QjQsMHgwNiwweEY2LDB4QzMsMHgwNCwweDc1LDB4MDIsMHhCNCwweDA3LDB4QUIsMHhDNiwweDg2LDB4QkEsMHgwMCwweDAwLAotMHg4OCwweDlFLDB4QUIsMHgwMCwweEU5LDB4NTgsMHhGRiwweDkwLDB4QTEsMHg4NCwweDEyLDB4MkIsMHhDMSwweDcyLDB4MTEsMHhBMywKLTB4ODQsMHgxMiwweEJFLDB4NjgsMHgxMywweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg4OSwweDBFLDB4NjYsMHgxMywweEY4LDB4QzMsCi0weEY5LDB4QzMsMHhBMSwweDg0LDB4MTIsMHg0MSwweDQxLDB4MkIsMHhDMSwweDcyLDB4MjMsMHhBMywweDg0LDB4MTIsMHg4QiwweEMxLAotMHg0OCwweDQ4LDB4MzIsMHhFNCwweDBDLDB4ODAsMHg4NiwweEM0LDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4QkUsMHhEQywKLTB4MTIsMHg0OSwweDQ5LDB4RDEsMHhFOSwweEYzLDB4NkYsMHg5MCwweDg5LDB4MEUsMHhEQSwweDEyLDB4RjgsMHhDMywweEY5LDB4QzMsCi0weDhBLDB4QzgsMHg4QSwweDQ2LDB4NEMsMHhCNCwweDAxLDB4ODMsMHhFQiwweDA2LDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLAotMHhCOCwweDAxLDB4MDAsMHhFRiwweDkwLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg4QSwweEMxLDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwKLTB4OTAsMHhFOSwweDk3LDB4MDAsMHhFOSwweEFDLDB4MDAsMHgzMywweEMwLDB4OEUsMHhEOCwweDg5LDB4MUUsMHg4NCwweDEyLDB4QzMsCi0weDM2LDB4OEIsMHgxRSwweDg0LDB4MTIsMHhGQiwweDkwLDB4RkEsMHhCMCwweDBDLDB4RTgsMHg4OSwweEM3LDB4ODUsMHhFRCwweDc0LAotMHhFNiwweEM1LDB4NzYsMHgwQywweDgzLDB4RkIsMHgxNCwweDcyLDB4REIsMHhGQiwweDkwLDB4RkEsMHhBRCwweDg1LDB4QzAsMHg3OCwKLTB4QUYsMHg3NCwweEUyLDB4OEIsMHhGRSwweDAzLDB4RjgsMHgzNiwweDhCLDB4MEUsMHg4NiwweDEyLDB4M0IsMHhDMSwweDc3LDB4MDIsCi0weDhCLDB4QzgsMHg4MywweEVCLDB4MDQsMHgzQiwweEQ5LDB4NzcsMHgwMiwweDhCLDB4Q0IsMHgzMywweEMwLDB4OEEsMHg0NiwweDRDLAotMHhFRiwweDkwLDB4OTAsMHg5MCwweDkwLDB4OTAsMHg4QiwweEMxLDB4RUYsMHg5MCwweDkwLDB4OTAsMHg5MCwweDkwLDB4NDEsMHg4MCwKLTB4RTEsMHhGRSwweDJCLDB4RDksMHg1MSwweEQxLDB4RTksMHhGMywweDZGLDB4OTAsMHg1OSwweDhCLDB4QzcsMHg0MCwweDI0LDB4RkUsCi0weDNCLDB4QzYsMHg3NCwweDI3LDB4MkIsMHhGRSwweDRFLDB4NEUsMHg1MywweDhCLDB4NUUsMHgxMCwweDNCLDB4RjMsMHg3MiwweDEzLAotMHgwMywweDFGLDB4ODMsMHhDMywweDAzLDB4ODAsMHhFMywweEZFLDB4QzcsMHgwNywweDAwLDB4MDAsMHg4MywweDZFLDB4NzQsMHgwMiwKLTB4ODksMHg1RSwweDEwLDB4NUIsMHg4OSwweDNDLDB4ODksMHg3NiwweDBDLDB4RUIsMHg4OSwweDg5LDB4NzYsMHgwQywweDM5LDB4NzYsCi0weDEwLDB4NzcsMHg4MSwweDcyLDB4MDgsMHg4MywweDNDLDB4MDAsMHg3NCwweDAzLDB4RTksMHg3NywweEZGLDB4RTgsMHgwRCwweEJFLAotMHhFOSwweDYyLDB4RkYsMHgzNiwweDg5LDB4MUUsMHg4NCwweDEyLDB4QjAsMHgwQywweEU4LDB4QjUsMHhDNiwweDMzLDB4QzAsMHg4RSwKLTB4RDgsMHhDMywweEExLDB4ODQsMHgxMiwweDNELDB4MTAsMHgwMCwweDcyLDB4NzcsMHhCQSwweDA0LDB4MDEsMHgzQiwweDA2LDB4ODgsCi0weDEyLDB4NzUsMHgwNiwweEM3LDB4MDYsMHg3RSwweDEyLDB4MDAsMHgwMCwweDhCLDB4MEUsMHhEQSwweDEyLDB4RTMsMHgwQiwweEU4LAotMHhEMCwweEZFLDB4NzIsMHg1NywweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweDhCLDB4MEUsMHgyMCwweDEzLDB4RTMsMHgwQiwKLTB4RTgsMHhBNSwweEZELDB4NzIsMHg0NiwweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweDhCLDB4MEUsMHg2NiwweDEzLDB4RTMsCi0weDBCLDB4RTgsMHg5NCwweEZFLDB4NzIsMHgzNSwweEM3LDB4MDYsMHg3RSwweDEyLDB4RkYsMHg3RiwweEExLDB4MjgsMHgwMSwweEE5LAotMHgwMSwweDAwLDB4NzUsMHgwMywweEU4LDB4RjksMHhGRSwweDgwLDB4M0UsMHg4RCwweDEyLDB4MDAsMHg3NSwweDFELDB4QTEsMHg4NCwKLTB4MTIsMHgzRCwweDIwLDB4MDAsMHg3NiwweDE1LDB4M0IsMHgwNiwweDgyLDB4MTIsMHg3NiwweDA5LDB4QTEsMHg3RSwweDEyLDB4M0IsCi0weDA2LDB4ODAsMHgxMiwweDcyLDB4MEMsMHg4MCwweDBFLDB4OTAsMHgxMiwweDgwLDB4QzMsMHhCMCwweDgwLDB4RkYsMHgxNiwweDdDLAotMHgxMiwweEMzLDB4ODAsMHgwRSwweDkwLDB4MTIsMHg0MCwweEMzLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLDB4MTIsMHgxNywKLTB4OUMsMHgwRSwweEU4LDB4QjcsMHhDOCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MjAsMHg5QywweDBFLDB4RTgsCi0weEFBLDB4QzgsMHg2QSwweDAwLDB4MUYsMHhDNiwweDA2LDB4OTMsMHgxMiwweDE2LDB4OUMsMHgwRSwweEU4LDB4OUQsMHhDOCwweDkwLAotMHhCQSwweDA2LDB4MDEsMHhFQywweEE4LDB4MjAsMHg3NSwweENBLDB4RkIsMHg5MCwweEZBLDB4QkEsMHgwNCwweDAxLDB4RUQsMHg5MCwKLTB4OTAsMHg5MCwweDkwLDB4OTAsMHgzQSwweDA2LDB4OTQsMHgxMiwweDc3LDB4QkUsMHgzMywweERCLDB4OEEsMHhEOCwweEQxLDB4RTMsCi0weDJFLDB4OEIsMHhBRiwweDQ0LDB4MDAsMHhDNCwweDdFLDB4MDgsMHg4NSwweEZGLDB4NzQsMHhCOSwweEY2LDB4QzQsMHhDMCwweDc1LAotMHg1NSwweDMyLDB4QzAsMHhDMSwweEUwLDB4MDIsMHg4MCwweEU0LDB4RjAsMHg4QiwweEYwLDB4RUQsMHg5MCwweDkwLDB4OTAsMHg5MCwKLTB4OTAsMHg4NSwweEMwLDB4NzQsMHhCQiwweDhCLDB4QzgsMHg0MSwweDgwLDB4RTEsMHhGRSwweDBCLDB4QzYsMHg4QiwweDVFLDB4NTAsCi0weDRCLDB4NEIsMHgyQiwweEQ5LDB4NzgsMHg5QywweEFCLDB4OEIsMHhDMSwweDQwLDB4NDAsMHgwMSwweDQ2LDB4NEUsMHhEMSwweEU5LAotMHhGMywweDZELDB4OTAsMHg4OSwweDVFLDB4NTAsMHg4OSwweDdFLDB4MDgsMHg4QiwweDQ2LDB4MjYsMHg4MCwweEU0LDB4RUYsMHg4OSwKLTB4NDYsMHgyNiwweEY2LDB4QzQsMHgwMSwweDc1LDB4MEMsMHhGNywweDQ2LDB4NDgsMHgwQywweDAwLDB4NzUsMHgwNSwweEIwLDB4MDIsCi0weEU4LDB4N0YsMHhDNSwweEU5LDB4N0EsMHhGRiwweDg2LDB4QzQsMHg4QiwweEM4LDB4ODMsMHhFMSwweDNGLDB4NDEsMHg4MCwweEUxLAotMHhGRSwweEUzLDB4MEEsMHgzQywweDgwLDB4NzIsMHgwOSwweDI0LDB4M0YsMHhCNCwweEYwLDB4RUIsMHhCMCwweEU5LDB4NjAsMHhGRiwKLTB4MjUsMHgzRiwweDAwLDB4MzMsMHhGRiwweDhFLDB4QzcsMHhCRiwweDk2LDB4MTIsMHg4QiwweEY3LDB4RDEsMHhFOSwweEYzLDB4NkQsCi0weDkwLDB4OEIsMHhDOCwweEU4LDB4NDgsMHhFRCwweEU5LDB4NDcsMHhGRiwweDkwLDB4NkEsMHgwMCwweDFGLDB4QzYsMHgwNiwweDkzLAotMHgxMiwweDFCLDB4OUMsMHgwRSwweEU4LDB4RDUsMHhDNywweDkwLDB4NjAsMHgxRSwweDA2LDB4MzMsMHhDMCwweDhFLDB4RDgsMHg4RSwKLTB4QzAsMHhCQSwweDA2LDB4MDEsMHhFQywweEE4LDB4MDQsMHg3NCwweEUxLDB4QjAsMHgwNiwweEVFLDB4RUMsMHhBMiwweDhDLDB4MTIsCi0weEE4LDB4NDAsMHg3NCwweDExLDB4QTEsMHg4OCwweDEyLDB4QTMsMHg4NCwweDEyLDB4QzYsMHgwNiwweDhELDB4MTIsMHgwMCwweEU4LAotMHg2MCwweEZFLDB4QTAsMHg4QywweDEyLDB4QTgsMHg4MCwweDc0LDB4MDMsMHhFOCwweDA0LDB4RkYsMHhCOCwweDAwLDB4ODAsMHhCQSwKLTB4MjIsMHhGRiwweEVGLDB4MDcsMHgxRiwweDYxLDB4Q0YsMHg5MCwweDZBLDB4MDAsMHgxRiwweEM2LDB4MDYsMHg5MywweDEyLDB4MUIsCi0weDlDLDB4MEUsMHhFOCwweDg3LDB4QzcsMHg5MCwweDYwLDB4MUUsMHgwNiwweDMzLDB4QzAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEJBLAotMHgwNiwweDAxLDB4RUMsMHhBOCwweDA0LDB4NzQsMHhFMSwweEJBLDB4MDgsMHgwMSwweEVDLDB4QTIsMHg4QywweDEyLDB4QTgsMHg0MCwKLTB4NzQsMHgxMSwweEExLDB4ODgsMHgxMiwweEEzLDB4ODQsMHgxMiwweEM2LDB4MDYsMHg4RCwweDEyLDB4MDAsMHhFOCwweDEyLDB4RkUsCi0weEEwLDB4OEMsMHgxMiwweEE4LDB4ODAsMHg3NCwweDAzLDB4RTgsMHhCNiwweEZFLDB4QjgsMHgwMCwweDgwLDB4QkEsMHgyMiwweEZGLAotMHhFRiwweDA3LDB4MUYsMHg2MSwweENGLDB4OTAsMHhFRSwweDg2LDB4RTAsMHhFRSwweDg2LDB4RTAsMHhFQywweDg2LDB4RTAsMHhFQywKLTB4ODYsMHhFMCwweDgwLDB4RTEsMHhGRSwweEYzLDB4NkMsMHg5MCwweDgwLDB4RTEsMHhGRSwweEYzLDB4NkUsMHg5MCwweDA1LDB4MDAsCi0weDc1LDB4NDcsMHhBOCwweDRCLDB4MDUsMHgwMCwweDc1LDB4NDgsMHhBOCwweDRCLDB4MDUsMHgwMCwweEEzLDB4NDgsMHhBOCwweDRCLAotMHgwNSwweDAwLDB4MzUsMHg0OSwweEE4LDB4NEIsMHgwNiwweDAwLDB4OTgsMHg0OCwweDk2LDB4NEIsMHgwNiwweDAwLDB4QkEsMHg0OCwKLTB4OTYsMHg0QiwweDA2LDB4MDAsMHhDMywweDQ4LDB4OTYsMHg0QiwweDA2LDB4MDAsMHhDQiwweDQ4LDB4OTYsMHg0QiwweDA2LDB4MDAsCi0weDIwLDB4NDksMHg5NiwweDRCLDB4MDYsMHgwMCwweDI4LDB4NDksMHg5NiwweDRCLDB4MDYsMHgwMCwweDRFLDB4NEEsMHg5QywweDRCLAotMHgwNiwweDAwLDB4N0IsMHg0QSwweDlDLDB4NEIsMHgwNSwweDAwLDB4OUUsMHg0QSwweEEyLDB4NEIsMHgwNSwweDAwLDB4RUMsMHg0QSwKLTB4QTIsMHg0QiwweDAwLDB4MDAsMHgxRSwweDA2LDB4ODMsMHgzRSwweDQ0LDB4MTIsMHgwMCwweDc0LDB4MDksMHhBMCwweDA2LDB4MDEsCi0weDI0LDB4MzAsMHgzQywweDMwLDB4NzQsMHgxQSwweDhDLDB4QzgsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEJCLDB4QUUsMHg0QiwweDhCLAotMHgwRiwweEUzLDB4MEQsMHg4QiwweDdGLDB4MDIsMHg4QiwweDc3LDB4MDQsMHhGMywweEE0LDB4ODMsMHhDMywweDA2LDB4RUIsMHhFRiwKLTB4MDcsMHgxRiwweEMzLDB4OTAsMHgzMywweEMwLDB4QTMsMHgzRSwweDAxLDB4QjksMHgwQywweDAxLDB4QkUsMHg0MCwweDAxLDB4OEIsCi0weEZFLDB4ODEsMHhDNiwweEI0LDB4MEYsMHg4OSwweDA0LDB4OEIsMHhDNiwweDJCLDB4RjEsMHgzQiwweEM3LDB4NzcsMHhGNiwweEEzLAotMHgzQywweDAxLDB4QzMsMHg5MCwweDFFLDB4MDYsMHg2MCwweDM2LDB4OEIsMHgyRSwweDNFLDB4MDEsMHg4QiwweDVFLDB4MDAsMHgzQiwKLTB4RUIsMHg3NCwweDJCLDB4OEIsMHg3NiwweDAyLDB4ODksMHgxQywweDg5LDB4NzcsMHgwMiwweDM2LDB4QTEsMHgzQywweDAxLDB4ODksCi0weDQ2LDB4MDAsMHgzNiwweDg5LDB4MkUsMHgzQywweDAxLDB4OEIsMHhFQiwweEZGLDB4NEUsMHgwNiwweDc0LDB4MDgsMHg4QiwweDZFLAotMHgwMCwweEZGLDB4NEUsMHgwNiwweDc1LDB4RjgsMHgzNiwweDg5LDB4MkUsMHgzRSwweDAxLDB4OEIsMHg2NiwweDA0LDB4NjEsMHgwNywKLTB4MUYsMHhDMywweDFFLDB4MDYsMHg2MCwweDM2LDB4OEIsMHgyRSwweDNFLDB4MDEsMHg5OCwweDg5LDB4NDYsMHgwNiwweDg5LDB4NjYsCi0weDA0LDB4M0IsMHg2RSwweDAwLDB4NzQsMHgxMCwweDhCLDB4NkUsMHgwMCwweEZGLDB4NEUsMHgwNiwweDc1LDB4RjgsMHgzNiwweDg5LAotMHgyRSwweDNFLDB4MDEsMHg4QiwweDY2LDB4MDQsMHg2MSwweDA3LDB4MUYsMHhDMywweEMzLDB4OTAsMHgxRSwweDA2LDB4NjAsMHg5QywKLTB4RkEsMHgzMywweEVELDB4OEUsMHhERCwweDhCLDB4MkUsMHgzQywweDAxLDB4ODUsMHhFRCwweDc0LDB4M0QsMHg4QiwweDRFLDB4MDAsCi0weDg5LDB4MEUsMHgzQywweDAxLDB4OEIsMHhDQywweDhELDB4QTYsMHgwQSwweDAxLDB4NTYsMHgxRSwweDA2LDB4NjAsMHg4OSwweDY2LAotMHgwNCwweEM3LDB4NDYsMHgwOCwweDBGLDB4MUEsMHhDNywweDQ2LDB4MDYsMHgwMSwweDAwLDB4OEIsMHgxRSwweDNFLDB4MDEsMHg4NSwKLTB4REIsMHg3NCwweDFELDB4OEIsMHhDNSwweDg3LDB4MDcsMHg4OSwweDQ2LDB4MDAsMHg4OSwweDVFLDB4MDIsMHg4QiwweEQ4LDB4ODksCi0weDZGLDB4MDIsMHg4QiwweEUxLDB4OUQsMHg2MSwweDA3LDB4MUYsMHhGOCwweEMzLDB4OUQsMHg2MSwweDA3LDB4MUYsMHhGOSwweEMzLAotMHg4OSwweDJFLDB4M0UsMHgwMSwweDg5LDB4NkUsMHgwMCwweDg5LDB4NkUsMHgwMiwweDg3LDB4RTEsMHg5RCwweDhCLDB4RTEsMHhFQiwKLTB4RTQsMHgwMCwweDBELDB4MEEsMHg1NCwweDY1LDB4NzIsMHg2RCwweDY5LDB4NkUsMHg2MSwweDZDLDB4NzMsMHgyMCwweDczLDB4NzUsCi0weDcwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHg2NSwweDY0LDB4M0EsMHgwRCwweDBBLDB4MzEsMHgyOSwweDIwLDB4NDEsMHg0RSwweDUzLAotMHg0OSwweDIwLDB4NjMsMHg2RiwweDZELDB4NzAsMHg2MSwweDc0LDB4NjksMHg2MiwweDZDLDB4NjUsMHgwRCwweDBBLDB4MzIsMHgyOSwKLTB4MjAsMHg1NywweDc5LDB4NzMsMHg2NSwweDIwLDB4MzMsMHgzMCwweDBELDB4MEEsMHg1MCwweDZDLDB4NjUsMHg2MSwweDczLDB4NjUsCi0weDIwLDB4NzMsMHg2NSwweDZDLDB4NjUsMHg2MywweDc0LDB4M0EsMHgyMCwweDAwLDB4MEQsMHgwQSwweDYzLDB4NkYsMHg2NCwweDY1LAotMHgyMCwweDczLDB4NjUsMHg2NywweDZELDB4NjUsMHg2RSwweDc0LDB4M0QsMHgwMCwweDBELDB4MEEsMHg0RCwweDZGLDB4NkUsMHg2OSwKLTB4NzQsMHg2RiwweDcyLDB4MjAsMHg3NiwweDMyLDB4MkUsMHgzNSwweDBBLDB4MEQsMHgwQSwweDNFLDB4MDAsMHgwRCwweDBBLDB4NTAsCi0weDYxLDB4NzIsMHg2NCwweDZGLDB4NkUsMHgzRiwweDAwLDB4MEQsMHgwQSwweDRFLDB4NkYsMHgyMCwweDYxLDB4NjQsMHg2NCwweDcyLAotMHg2NSwweDczLDB4NzMsMHgyMCwweDczLDB4NzAsMHg2NSwweDYzLDB4NjksMHg2NiwweDY5LDB4NjUsMHg2NCwweDAwLDB4MEQsMHgwQSwKLTB4M0EsMHgwMCwweDBELDB4MEEsMHgwMCwweDRDLDB4NkYsMHg2MywweDNELDB4MDAsMHgwRCwweDBBLDB4NDYsMHg0MSwweDU0LDB4NDEsCi0weDRDLDB4MjAsMHg0NSwweDUyLDB4NTIsMHg0RiwweDUyLDB4M0QsMHgwMCwweDBELDB4MEEsMHg0RCwweDZGLDB4NkUsMHg2OSwweDc0LAotMHg2RiwweDcyLDB4MjAsMHg2MywweDZGLDB4NkQsMHg2RCwweDYxLDB4NkUsMHg2NCwweDczLDB4M0EsMHgyRCwweDBELDB4MEEsMHgyMCwKLTB4MjAsMHgyMCwweDQ0LDB4MkMsMHg2NCwweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsMHg3OCwweDc4LDB4NzgsCi0weDc4LDB4NUQsMHgyMCwweDJELDB4MjAsMHg2NCwweDc1LDB4NkQsMHg3MCwweDIwLDB4NkQsMHg2NSwweDZELDB4NkYsMHg3MiwweDc5LAotMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NEMsMHgyQywweDZDLDB4NUIsMHg1QiwweDc4LDB4NzgsMHg3OCwweDc4LDB4M0EsMHg1RCwKLTB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwweDIwLDB4MkQsMHgyMCwweDY0LDB4NzUsMHg2RCwweDcwLDB4MjAsMHg3MywweDY5LDB4NkUsCi0weDY3LDB4NkMsMHg2NSwweDIwLDB4NkMsMHg2OSwweDZFLDB4NjUsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NDUsMHgyQywweDY1LAotMHg1QiwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsMHgzQSwweDVELDB4NzgsMHg3OCwweDc4LDB4NzgsMHg1RCwweDIwLDB4MkQsMHgyMCwKLTB4NjUsMHg2NCwweDY5LDB4NzQsMHgyMCwweDZELDB4NjUsMHg2RCwweDZGLDB4NzIsMHg3OSwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsCi0weDQ2LDB4MkMsMHg2NiwweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4NUQsMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELAotMHgyMCwweDJELDB4MjAsMHg2NiwweDY5LDB4NkMsMHg2QywweDIwLDB4NkQsMHg2NSwweDZELDB4NkYsMHg3MiwweDc5LDB4MjAsMHg3MCwKLTB4NjEsMHg3MiwweDYxLDB4NjcsMHg3MiwweDYxLDB4NzAsMHg2OCwweDczLDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDQ5LDB4NUIsCi0weDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELAotMHgyMCwweDc3LDB4NkYsMHg3MiwweDY0LDB4MjAsMHg2OSwweDZFLDB4NzAsMHg3NSwweDc0LDB4MjAsMHg2NiwweDcyLDB4NkYsMHg2RCwKLTB4MjAsMHg3MCwweDZGLDB4NzIsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg2OSwweDVCLDB4NzgsMHg3OCwweDc4LDB4NzgsCi0weDVELDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjIsMHg3OSwweDc0LAotMHg2NSwweDIwLDB4NjksMHg2RSwweDcwLDB4NzUsMHg3NCwweDIwLDB4NjYsMHg3MiwweDZGLDB4NkQsMHgyMCwweDcwLDB4NkYsMHg3MiwKLTB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLDB4NEYsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4NzgsMHg3OCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDZGLDB4NzUsMHg3NCwweDcwLDB4NzUsMHg3NCwweDIwLAotMHg3NywweDZGLDB4NzIsMHg2NCwweDIwLDB4NzQsMHg2RiwweDIwLDB4NzAsMHg2RiwweDcyLDB4NzQsMHgwRCwweDBBLDB4MjAsMHgyMCwKLTB4MjAsMHg2RiwweDc4LDB4NzgsMHg3OCwweDc4LDB4MjAsMHg3OCwweDc4LDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyRCwweDIwLDB4NkYsMHg3NSwweDc0LDB4NzAsMHg3NSwweDc0LDB4MjAsMHg2MiwweDc5LDB4NzQsMHg2NSwweDIwLAotMHg3NCwweDZGLDB4MjAsMHg3MCwweDZGLDB4NzIsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg0NywweDVCLDB4NUIsMHg3OCwKLTB4NzgsMHg3OCwweDc4LDB4M0EsMHg1RCwweDc4LDB4NzgsMHg3OCwweDc4LDB4NUQsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjcsCi0weDZGLDB4NzQsMHg2RiwweDIwLDB4NjEsMHg2NCwweDY0LDB4NzIsMHg2NSwweDczLDB4NzMsMHgwRCwweDBBLDB4MjAsMHgyMCwweDIwLAotMHg1NywweDVCLDB4NUIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDNBLDB4NUQsMHg3OCwweDc4LDB4NzgsMHg3OCwweDVELDB4MjAsMHgyMCwKLTB4MjAsMHgyRCwweDIwLDB4NzcsMHg2MSwweDc0LDB4NjMsMHg2OCwweDIwLDB4NjEsMHgyMCwweDc3LDB4NkYsMHg3MiwweDY0LDB4MEQsCi0weDBBLDB4MjAsMHgyMCwweDIwLDB4NDMsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDY5LDB4NkUsMHg3NCwweDY1LDB4NzIsMHg3MiwweDc1LDB4NzAsMHg3NCwKLTB4NzMsMHgyMCwweDZGLDB4NjYsMHg2NiwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg1MywweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjksMHg2RSwweDc0LAotMHg2NSwweDcyLDB4NzIsMHg3NSwweDcwLDB4NzQsMHg3MywweDIwLDB4NkYsMHg2RSwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg3MywKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDJELDB4MjAsMHg3MywweDY5LDB4NkUsMHg2NywweDZDLDB4NjUsMHgyMCwweDczLDB4NzQsMHg2NSwweDcwLDB4MEQsMHgwQSwweDIwLAotMHgyMCwweDIwLDB4NDIsMHg3OCwweDc4LDB4NzgsMHg3OCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4MkQsMHgyMCwweDYyLDB4NzIsMHg2NSwweDYxLDB4NkIsMHg3MCwweDZGLDB4NjksMHg2RSwweDc0LDB4MjAsCi0weDczLDB4NjUsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg2MiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjIsMHg3MiwweDY1LDB4NjEsMHg2QiwKLTB4NzAsMHg2RiwweDY5LDB4NkUsMHg3NCwweDIwLDB4NjMsMHg2QywweDY1LDB4NjEsMHg3MiwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsCi0weDUyLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDJELDB4MjAsMHg3MiwweDY1LDB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDIwLDB4NjIsMHg3MiwweDY1LDB4NjEsMHg2QiwKLTB4NzAsMHg2RiwweDY5LDB4NkUsMHg3NCwweDBELDB4MEEsMHgyMCwweDIwLDB4MjAsMHg3MiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NzIsMHg2NSwweDY3LAotMHg2OSwweDczLDB4NzQsMHg2NSwweDcyLDB4NzMsMHgyMCwweDYxLDB4NzQsMHgyMCwweDYyLDB4NzIsMHg2QiwweDcwLDB4NzQsMHgwRCwKLTB4MEEsMHgyMCwweDIwLDB4MjAsMHg1OCwweDJDLDB4NzgsMHgyMCwweDZFLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyRCwweDIwLDB4NjUsMHg3OCwweDYxLDB4NkQsMHg2OSwweDZFLDB4NjUsMHgyMCwweDYzLAotMHg2OCwweDYxLDB4NkUsMHg2RSwweDY1LDB4NkMsMHgyMCwweDZFLDB4MEQsMHgwQSwweDIwLDB4MjAsMHgyMCwweDQ4LDB4MkMsMHgzRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDJELDB4MjAsCi0weDc0LDB4NjgsMHg2OSwweDczLDB4MjAsMHg2RCwweDY1LDB4NzMsMHg3MywweDYxLDB4NjcsMHg2NSwweDAwLDB4MUIsMHg1QiwweDMyLAotMHg0QSwweDFCLDB4NUIsMHgzMSwweDNCLDB4MzEsMHg0OCwweDQxLDB4NEUsMHg1MywweDQ5LDB4MjAsMHg1NCwweDY1LDB4NzIsMHg2RCwKLTB4NjksMHg2RSwweDYxLDB4NkMsMHgwRCwweDBBLDB4MEEsMHgwMCwweDFCLDB4NUIsMHg0QiwweDAwLDB4MUIsMHg1QiwweDRBLDB4MDAsCi0weDFCLDB4NUIsMHgzMiwweDRBLDB4MUIsMHg1QiwweDMxLDB4M0IsMHgzMSwweDQ4LDB4MDAsMHgxQiwweDVCLDB4NDQsMHgyMCwweDFCLAotMHg1QiwweDQ0LDB4MDAsMHgxQiwweDVCLDB4MzEsMHgzQiwweDM3LDB4MzIsMHg0OCwweDAwLDB4MUIsMHg1QiwweDAwLDB4M0IsMHgwMCwKLTB4NDgsMHgwMCwweDFCLDB4NUIsMHg3MywweDAwLDB4MUIsMHg1QiwweDc1LDB4MDAsMHgxQiwweDdBLDB4MkIsMHgwQiwweDdGLDB4MUIsCi0weDdBLDB4MkUsMHgwQywweDdGLDB4MUIsMHg3QSwweDJELDB4MDgsMHg3RiwweDFCLDB4N0EsMHgyQywweDBBLDB4N0YsMHgxQiwweDdBLAotMHgyMiwweDA4LDB4N0YsMHgxQSwweDU3LDB4NzksMHg3MywweDY1LDB4MjAsMHgzMywweDMwLDB4MjAsMHg1NCwweDY1LDB4NzIsMHg2RCwKLTB4NjksMHg2RSwweDYxLDB4NkMsMHgwRCwweDBBLDB4MDAsMHgxQiwweDU0LDB4MDAsMHgxQiwweDU5LDB4MDAsMHgxQSwweDAwLDB4MUUsCi0weDAwLDB4MDgsMHgyMCwweDA4LDB4MDAsMHgwMCwweDFCLDB4M0QsMHgwMCwweDAwLDB4MDAsMHgxQiwweDQ2LDB4MDAsMHgwRCwweDAwLAotMHgzRiwweDQ0LDB4NjQsMHg0NSwweDY1LDB4NDYsMHg2NiwweDQ3LDB4NjcsMHg0OCwweDY4LDB4NDksMHg2OSwweDRGLDB4NkYsMHg0MywKLTB4NjMsMHg1MywweDczLDB4NDIsMHg2MiwweDUyLDB4NzIsMHg1NywweDc3LDB4NTgsMHg3OCwweDRDLDB4NkMsMHgzQywweDYwLDB4RDQsCi0weDU3LDB4RDQsMHg1NywweDUwLDB4NTgsMHg1MCwweDU4LDB4RDYsMHg1OSwweEQ2LDB4NTksMHhCNCwweDU5LDB4QjQsMHg1OSwweDNDLAotMHg2MCwweDNDLDB4NjAsMHg2QywweDU3LDB4NDgsMHg1NywweDI2LDB4NTcsMHgwNiwweDU3LDB4OTAsMHg1NywweDkwLDB4NTcsMHg5OCwKLTB4NTcsMHg0OCwweDVGLDB4MEMsMHg1RiwweDU4LDB4NUYsMHgzMywweDVGLDB4NDAsMHg1RiwweEEwLDB4NTcsMHhBMCwweDU3LDB4RkUsCi0weDU5LDB4RkUsMHg1OSwweERDLDB4NTcsMHhEQywweDU3LDB4ODgsMHg2MSwweDk4LDB4NjEsMHhDMCwweDYxLDB4Q0MsMHg2MSwweEQ4LAotMHg2MSwweEY2LDB4NjEsMHgwMiwweDYyLDB4MjIsMHg2MiwweEY4LDB4NTYsMHg0QSwweDYyLDB4NTgsMHg2MiwweDYwLDB4NTksMHgyMCwKLTB4MjAsMHg2NiwweDZDLDB4NjEsMHg2NywweDczLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MSwweDc4LDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDYyLDB4NzgsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NzgsMHgzRCwweDAwLDB4MjAsMHgyMCwweDY0LDB4NzgsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NjMsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjQsMHg3MywweDNELDB4MDAsMHgyMCwweDIwLDB4NjUsMHg3MywKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg3MywweDczLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDczLDB4NjksMHgzRCwweDAwLDB4MjAsMHgyMCwweDYyLDB4NzAsMHgzRCwweDAwLDB4MjAsMHgyMCwweDczLDB4NzAsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NjksMHg3MCwweDNELDB4MDAsMHgyMCwweDYzLDB4NjgsMHg2MSwweDZFLDB4NjUsMHg2QywweDNELDB4MDAsMHgyMCwKLTB4MjAsMHgyMCwweDIwLDB4NzMsMHg2NSwweDY3LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsCi0weDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg3NCwweDZGLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg2RCwweDYxLAotMHg3OCwweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDc0LDB4NjksMHg1RiwKLTB4NzMsMHg2OSwweDdBLDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OSwweDVGLDB4NzMsMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzQsCi0weDY5LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY5LDB4NUYsMHg2NiwweDZDLDB4NjcsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NjksMHg1RiwweDc0LDB4NkYsMHg3NCwweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDcwLDB4NjMsMHg2RSwKLTB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NzMsCi0weDc0LDB4NjYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LAotMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDczLDB4NjksMHg3QSwweDNELDB4MDAsMHgyMCwKLTB4NzIsMHg2OSwweDVGLDB4NzQsMHg2RiwweDc0LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OSwweDVGLDB4NkQsMHg2OSwweDZFLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg2NiwweDZDLDB4NjcsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg3NCwweDZGLAotMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjksMHg1RiwweDc0LDB4NjgsMHg3MiwweDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwKLTB4NzMsMHg3NCwweDY2LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OCwweDVGLDB4NzMsMHg3NCwweDcyLDB4M0QsMHgwMCwweDIwLDB4NzQsCi0weDY4LDB4NUYsMHg2MiwweDYxLDB4NzMsMHgzRCwweDAwLDB4MjAsMHg3NCwweDY4LDB4NUYsMHg3MywweDY5LDB4N0EsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NjgsMHg1RiwweDc0LDB4NzIsMHg2NywweDNELDB4MDAsMHgyMCwweDc0LDB4NjgsMHg1RiwweDY2LDB4NkMsMHg2NywKLTB4M0QsMHgwMCwweDIwLDB4NzQsMHg2OCwweDVGLDB4NjMsMHg2RSwweDc0LDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NzMsCi0weDc0LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg3MywweDc0LDB4NjYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LAotMHg1RiwweDYyLDB4NjEsMHg3MywweDNELDB4MDAsMHgyMCwweDcyLDB4NjgsMHg1RiwweDczLDB4NjksMHg3QSwweDNELDB4MDAsMHgyMCwKLTB4NzIsMHg2OCwweDVGLDB4NzMsMHg3MCwweDYxLDB4M0QsMHgwMCwweDIwLDB4NzIsMHg2OCwweDVGLDB4NjEsMHg3MywweDZGLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg3MiwweDZGLDB4NkYsMHgzRCwweDAwLDB4MjAsMHg3MiwweDY4LDB4NUYsMHg2NiwweDZDLAotMHg2NywweDNELDB4MDAsMHgyMCwweDZELDB4NUYsMHg2MywweDYxLDB4NzIsMHg2NSwweDNELDB4MDAsMHgyMCwweDcwLDB4NzQsMHg1RiwKLTB4NjYsMHg2QywweDZGLDB4M0QsMHgwMCwweDIwLDB4NjEsMHg3MywweDVGLDB4NjYsMHg2QywweDZGLDB4M0QsMHgwMCwweDIwLDB4NzIsCi0weDZELDB4NUYsMHg2NiwweDZDLDB4NkYsMHgzRCwweDAwLDB4MjAsMHgyMCwweDIwLDB4NzEsMHg1RiwweDY5LDB4NkUsMHgzRCwweDAwLAotMHgyMCwweDIwLDB4NzEsMHg1RiwweDZGLDB4NzUsMHg3NCwweDNELDB4MDAsMHgyMCwweDcxLDB4NUYsMHg2NCwweDcyLDB4NjEsMHg2RSwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg3MSwweDVGLDB4NzQsMHg2OSwweDZELDB4M0QsMHgwMCwweDIwLDB4MjAsMHgyMCwweDcxLDB4NUYsCi0weDY2LDB4NjMsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLDB4NzMsMHg3NCwweDYxLDB4NzQsMHgzRCwweDAwLDB4MjAsMHg3MSwweDVGLAotMHg2NCwweDYxLDB4NzQsMHg2MSwweDNELDB4MDAsMHgyMCwweDcxLDB4NUYsMHg2RCwweDZGLDB4NjQsMHg2RCwweDNELDB4MDAsMHgyMCwKLTB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwweDZGLDB4M0QsMHgwMCwweDIwLDB4NjgsMHg2MSwweDZFLDB4NjQsMHg1RiwweDYyLDB4M0QsCi0weDAwLDB4MjAsMHg2OCwweDYxLDB4NkUsMHg2NCwweDVGLDB4NjUsMHgzRCwweDAwLDB4MjAsMHg2OCwweDYxLDB4NkUsMHg2NCwweDVGLAotMHg2OSwweDNELDB4MDAsMHgyMCwweDIwLDB4NkYsMHg3MCwweDZGLDB4NzMsMHg3NCwweDNELDB4MDAsMHgyMCwweDIwLDB4NzQsMHg2OSwKLTB4NkQsMHg2NSwweDZGLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg3NSwweDczLDB4NzQsMHg2RCwweDMxLDB4M0QsMHgwMCwweDIwLDB4NjMsCi0weDc1LDB4NzMsMHg3NCwweDZELDB4MzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDc1LDB4NzMsMHg3NCwweDZELDB4NjQsMHgzRCwweDAwLAotMHgyMCwweDc0LDB4NzgsMHg3MiwweDYxLDB4NzQsMHg2NSwweDNELDB4MDAsMHgyMCwweDcyLDB4NzgsMHg3MiwweDYxLDB4NzQsMHg2NSwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NkQsMHg2MSwweDcwLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYxLDB4NjQsCi0weDY0LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjEsMHg2OSwweDczLDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLAotMHg3OCwweDc0LDB4NjEsMHg2NywweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDY1LDB4NjYsMHg3MiwweDNELDB4MDAsMHgyMCwKLTB4NjMsMHg1RiwweDY2LDB4NkMsMHg3MywweDY4LDB4M0QsMHgwMCwweDIwLDB4NzQsMHg3OCwweDZELDB4NjEsMHg3OCwweDczLDB4M0QsCi0weDAwLDB4MjAsMHg3MiwweDY5LDB4NUYsMHg2NSwweDZELDB4NzMsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2QywweDczLAotMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwweDY5LDB4NjUsMHg3MiwweDNELDB4MDAsMHgyMCwweDIwLDB4NjMsMHg1RiwKLTB4NjYsMHg2MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NkQsMHg2MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsCi0weDYzLDB4NUYsMHg2QywweDYzLDB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHgzRCwweDAwLAotMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHg2OSwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NCwweDczLDB4NzMsMHg3MiwKLTB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjksMHg3MywweDcyLDB4M0QsMHgwMCwweDIwLDB4MjAsMHg2MywweDVGLDB4NjMsCi0weDYxLDB4NzIsMHgzRCwweDAwLDB4MjAsMHgyMCwweDYzLDB4NUYsMHg2NSwweDY2LDB4NzIsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLAotMHg2NSwweDcyLDB4NzMsMHg3NCwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg2NSwweDYzLDB4NkUsMHg3NCwweDNELDB4MDAsMHgyMCwKLTB4NjMsMHg1RiwweDYyLDB4NzIsMHg2QiwweDYzLDB4M0QsMHgwMCwweDIwLDB4NjMsMHg1RiwweDYyLDB4NkYsMHg2QiwweDYzLDB4M0QsCi0weDAwLDB4MjAsMHg2MywweDVGLDB4NzIsMHg2NSwweDcwLDB4NkMsMHgzRCwweDAwLDB4MjAsMHg2MywweDVGLDB4NjMsMHg2MywweDczLAotMHg3MiwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg3MywweDc0LDB4NzQsMHgzMSwweDNELDB4MDAsMHgyMCwweDYzLDB4NUYsMHg3MywKLTB4NzQsMHg3NCwweDMyLDB4M0QsMHgwMCwweDJCLDB4QzAsMHg4RSwweEQ4LDB4OEUsMHhDMCwweEU4LDB4QzIsMHgwMCwweEU4LDB4RTUsCi0weDAwLDB4RkEsMHhCRiwweDg0LDB4MDAsMHhDNywweDA1LDB4REMsMHg1NiwweDhDLDB4NEQsMHgwMiwweEJGLDB4MEMsMHgwMCwweEM3LAotMHgwNSwweDZFLDB4NUUsMHg4QywweDRELDB4MDIsMHhCRiwweDA0LDB4MDAsMHhDNywweDA1LDB4QkEsMHg1RSwweDhDLDB4NEQsMHgwMiwKLTB4RTgsMHhGMSwweDAwLDB4OTAsMHhFOCwweDQ5LDB4MDEsMHhFOCwweDE2LDB4MDAsMHhGNCwweDkwLDB4RTgsMHhFNSwweDAwLDB4QkUsCi0weEJBLDB4NEQsMHhFOCwweDA5LDB4MEMsMHhBMCwweDkzLDB4MTIsMHhFOCwweDVELDB4MEMsMHhFOCwweEMyLDB4MDksMHhFQiwweEU0LAotMHhFOCwweEQ1LDB4MEMsMHhFOCwweEM0LDB4MEMsMHgwQSwweEMwLDB4NzQsMHhGNiwweDhCLDB4MUUsMHhGOCwweDc5LDB4M0MsMHgwRCwKLTB4NzQsMHgyRSwweDNDLDB4MDgsMHg3NCwweDE3LDB4M0MsMHg3RiwweDc0LDB4MTMsMHg4MywweEZCLDB4MjAsMHg3RiwweEUxLDB4ODgsCi0weDg3LDB4RDYsMHg3OSwweDQzLDB4ODksMHgxRSwweEY4LDB4NzksMHhFOCwweDc3LDB4MEMsMHhFQiwweEQzLDB4MEIsMHhEQiwweDc0LAotMHhDRiwweDRCLDB4ODksMHgxRSwweEY4LDB4NzksMHg4QiwweDM2LDB4MTYsMHg3QSwweEU4LDB4QzEsMHgwQiwweEVCLDB4QzEsMHg5MCwKLTB4RTgsMHgwMiwweDAwLDB4RUIsMHhCQiwweEM2LDB4ODcsMHhENiwweDc5LDB4MDAsMHgwQiwweERCLDB4NzQsMHgxRSwweEEwLDB4RDYsCi0weDc5LDB4QkYsMHg2MCwweDUxLDB4QjksMHgxRCwweDAwLDB4OEIsMHhEOSwweDA2LDB4MEUsMHgwNywweEYyLDB4QUUsMHgwNywweDc1LAotMHgxNywweDQxLDB4MkIsMHhEOSwweEQxLDB4RTMsMHgyRSwweEZGLDB4OTcsMHg3RCwweDUxLDB4OTAsMHgzMywweEMwLDB4QTMsMHhGOCwKLTB4NzksMHhCRSwweDg5LDB4NEQsMHhFOCwweDg3LDB4MEIsMHhDMywweEJFLDB4OEQsMHg0RCwweEU4LDB4ODAsMHgwQiwweEVCLDB4RUMsCi0weEJBLDB4MDAsMHgwMiwweEIwLDB4OTMsMHhFRSwweEIwLDB4NTUsMHhFRSwweEJBLDB4MTAsMHgwMiwweEIwLDB4OTMsMHhFRSwweEIwLAotMHhBQSwweEVFLDB4QkEsMHgwMCwweDAyLDB4RUMsMHgzQywweDU1LDB4NzUsMHgwOCwweEJBLDB4MTAsMHgwMiwweEVDLDB4M0MsMHhBQSwKLTB4NzQsMHgwMywweEU4LDB4MkYsMHhGNiwweEMzLDB4QkEsMHgwNCwweDAyLDB4QjAsMHgxQSwweEVFLDB4QjAsMHgyMCwweEVFLDB4QjAsCi0weDMwLDB4RUUsMHhCMCwweDQwLDB4RUUsMHhCMCwweDgwLDB4RUUsMHhCQSwweDAwLDB4MDIsMHhCMCwweDEzLDB4RUUsMHhCMCwweDA3LAotMHhFRSwweEJBLDB4MDgsMHgwMiwweEIwLDB4ODAsMHhFRSwweEJBLDB4MDIsMHgwMiwweEIwLDB4QkIsMHhFRSwweEJBLDB4MDQsMHgwMiwKLTB4QjAsMHgwNSwweEVFLDB4QzMsMHhDNiwweDA2LDB4Q0EsMHgxMywweDAxLDB4QzcsMHgwNiwweEY4LDB4NzksMHgwMCwweDAwLDB4QzYsCi0weDA2LDB4RjYsMHg3OSwweDAxLDB4QzcsMHgwNiwweEQwLDB4NzksMHgwMCwweDAwLDB4QzcsMHgwNiwweEQyLDB4NzksMHgwMCwweDAwLAotMHhDNywweDA2LDB4RDQsMHg3OSwweDAwLDB4MDAsMHhDNywweDA2LDB4RkEsMHg3OSwweDAwLDB4MDAsMHhDNywweDA2LDB4RkMsMHg3OSwKLTB4MDAsMHgwMCwweEM3LDB4MDYsMHhGRSwweDc5LDB4MDAsMHgwMCwweEM3LDB4MDYsMHgwMCwweDdBLDB4MDAsMHgwMCwweEM3LDB4MDYsCi0weDAyLDB4N0EsMHhDRSwweDU5LDB4OEMsMHgwRSwweDA0LDB4N0EsMHhDNywweDA2LDB4MDYsMHg3QSwweDAwLDB4MDAsMHhDNywweDA2LAotMHgyNywweDdBLDB4MDAsMHgwMCwweEM2LDB4MDYsMHgyOSwweDdBLDB4MDAsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4QzMsMHg5MCwKLTB4QkUsMHgyMiwweDRELDB4RTgsMHhDOCwweDBBLDB4RTgsMHgzRiwweDAwLDB4MkMsMHgzMSwweDNDLDB4MDEsMHg3NywweEY3LDB4RTgsCi0weDgxLDB4MDksMHg4QiwweDM2LDB4MEMsMHg3QSwweEU4LDB4QjUsMHgwQSwweEJFLDB4NkEsMHg0RCwweEU4LDB4QUYsMHgwQSwweDBFLAotMHg1OCwweEU4LDB4RjgsMHgwQSwweEJFLDB4N0EsMHg0RCwweEU4LDB4QTQsMHgwQSwweEMzLDB4OTAsMHg2MCwweEQxLDB4RTMsMHg4MywKLTB4RkIsMHgxOCwweDczLDB4MTEsMHgxRSwweEJBLDB4MDAsMHgwMCwweDhFLDB4REEsMHgyRSwweEZGLDB4OTcsMHhCNywweDUxLDB4OEIsCi0weEVDLDB4ODksMHg0NiwweDEwLDB4MUYsMHg2MSwweENGLDB4OTAsMHhFOCwweDRGLDB4MEIsMHgwQSwweEMwLDB4NzUsMHgwNSwweEU4LAotMHg1NiwweDBCLDB4RUIsMHhGNCwweEMzLDB4OTAsMHg4MywweDNFLDB4RjgsMHg3OSwweDAxLDB4NzQsMHgxNiwweEJFLDB4RDcsMHg3OSwKLTB4RTgsMHgzMSwweDBBLDB4OEIsMHhEMCwweEFDLDB4M0MsMHgyQywweDc0LDB4MDQsMHgzQywweDIwLDB4NzUsMHgwNSwweEU4LDB4MjMsCi0weDBBLDB4RUUsMHhDMywweEU5LDB4RDIsMHhGRSwweDgzLDB4M0UsMHhGOCwweDc5LDB4MDEsMHg3NCwweEY2LDB4QkUsMHhENywweDc5LAotMHhFOCwweDExLDB4MEEsMHg4QiwweEQwLDB4QUMsMHgzQywweDJDLDB4NzQsMHgwOCwweDNDLDB4MjAsMHg3NCwweDA0LDB4RTksMHhCNywKLTB4RkUsMHg5MCwweEU4LDB4RkYsMHgwOSwweEVGLDB4QzMsMHg5MCwweDhCLDB4MTYsMHgwNiwweDdBLDB4ODMsMHgzRSwweEY4LDB4NzksCi0weDAxLDB4NzQsMHgwQiwweEJFLDB4RDcsMHg3OSwweEU4LDB4RUIsMHgwOSwweDhCLDB4RDAsMHhBMywweDA2LDB4N0EsMHhCMCwweDIwLAotMHhFOCwweDU3LDB4MEIsMHg4QiwweDE2LDB4MDYsMHg3QSwweEVDLDB4RTgsMHg2RiwweDBCLDB4QzMsMHg4QiwweDE2LDB4MDYsMHg3QSwKLTB4ODMsMHgzRSwweEY4LDB4NzksMHgwMSwweDc0LDB4MEIsMHhCRSwweEQ3LDB4NzksMHhFOCwweEM3LDB4MDksMHg4QiwweEQwLDB4QTMsCi0weDA2LDB4N0EsMHhCMCwweDIwLDB4RTgsMHgzMywweDBCLDB4OEIsMHgxNiwweDA2LDB4N0EsMHhFRCwweEU4LDB4NjcsMHgwQiwweEMzLAotMHhGQSwweEM2LDB4MDYsMHhGNiwweDc5LDB4MDAsMHhDMywweDkwLDB4QzYsMHgwNiwweEY2LDB4NzksMHgwMSwweEZCLDB4QzMsMHg5MCwKLTB4MDYsMHhFOCwweDU4LDB4MDksMHhCMCwweDIwLDB4RTgsMHgxMSwweDBCLDB4MjYsMHg4QiwweDA1LDB4RTgsMHg0NywweDBCLDB4QjAsCi0weDA4LDB4RTgsMHgwNiwweDBCLDB4RTgsMHgwMywweDBCLDB4RTgsMHgwMCwweDBCLDB4RTgsMHhGRCwweDBBLDB4QjgsMHgwMSwweDAwLAotMHhFOCwweENGLDB4RjQsMHhCQSwweDAyLDB4MDIsMHhFQywweDI0LDB4MDEsMHg3NSwweDAyLDB4RUIsMHhEQywweEJBLDB4MDYsMHgwMiwKLTB4RUMsMHgwNywweEMzLDB4OTAsMHhDNywweDA2LDB4MDgsMHg3QSwweDEwLDB4MDAsMHhFQiwweDA2LDB4QzcsMHgwNiwweDA4LDB4N0EsCi0weDAxLDB4MDAsMHgwNiwweDhFLDB4MDYsMHhGQywweDc5LDB4OEIsMHgzRSwweEZBLDB4NzksMHhFOCwweDBFLDB4MDksMHhFOCwweDBCLAotMHgwMCwweDg5LDB4M0UsMHhGQSwweDc5LDB4OEMsMHgwNiwweEZDLDB4NzksMHgwNywweEMzLDB4OTAsMHhCRSwweEIyLDB4NEQsMHhFOCwKLTB4N0MsMHgwOSwweDhCLDB4MTYsMHgwOCwweDdBLDB4NTIsMHhFOCwweDJBLDB4MDksMHhFOCwweDBGLDB4MEEsMHhFOCwweDBDLDB4MEEsCi0weDMzLDB4REIsMHhCOSwweDEwLDB4MDAsMHg5MCwweDI2LDB4OEEsMHgwMSwweEU4LDB4QkMsMHgwOSwweEU4LDB4RkQsMHgwOSwweDQzLAotMHhFMiwweEY0LDB4RTgsMHhGNywweDA5LDB4RTgsMHhGNCwweDA5LDB4MzMsMHhEQiwweEI5LDB4MTAsMHgwMCwweDkwLDB4MjYsMHg4QSwKLTB4MDEsMHgzQywweDIwLDB4NzIsMHgwNSwweDNDLDB4N0UsMHg3NiwweDAzLDB4OTAsMHhCMCwweDJFLDB4RTgsMHhFMywweDA5LDB4NDMsCi0weEUyLDB4RUMsMHhCRSwweEIyLDB4NEQsMHhFOCwweDM2LDB4MDksMHg4MywweEM3LDB4MTAsMHg1QSwweDRBLDB4NzUsMHhCNywweEMzLAotMHgwNiwweDhFLDB4MDYsMHgwMCwweDdBLDB4OEIsMHgzRSwweEZFLDB4NzksMHhFOCwweEEwLDB4MDgsMHg4OSwweDNFLDB4RkUsMHg3OSwKLTB4OEMsMHgwNiwweDAwLDB4N0EsMHg1NywweDhCLDB4MzYsMHgwRSwweDdBLDB4RTgsMHgxMiwweDA5LDB4QzcsMHgwNiwweDA4LDB4N0EsCi0weDEwLDB4MDAsMHhCQSwweDAwLDB4MDIsMHhFOCwweEU4LDB4MDAsMHhFOCwweDgxLDB4RkYsMHg1RiwweEJBLDB4MDAsMHgwMCwweEU4LAotMHhERSwweDAwLDB4QkUsMHhCNSwweDRELDB4RTgsMHhGNiwweDA4LDB4OEMsMHhDMCwweEU4LDB4M0YsMHgwOSwweEIwLDB4M0EsMHhFOCwKLTB4OTAsMHgwOSwweDhCLDB4QzcsMHhFOCwweDM1LDB4MDksMHhFOCwweDdFLDB4MDgsMHhFOCwweEMzLDB4MDAsMHg5MCwweEU4LDB4QjcsCi0weDA5LDB4RTgsMHhBNiwweDA5LDB4MEEsMHhDMCwweDc0LDB4RjYsMHgzQywweDBCLDB4NzUsMHgwNiwweDgzLDB4RUYsMHgxMCwweEVCLAotMHgxOSwweDkwLDB4M0MsMHgwQSwweDc1LDB4MDYsMHg4MywweEM3LDB4MTAsMHhFQiwweDBGLDB4OTAsMHgzQywweDBDLDB4NzUsMHgwNCwKLTB4NDcsMHhFQiwweDA3LDB4OTAsMHgzQywweDA4LDB4NzUsMHgyNCwweDRGLDB4OTAsMHg4QiwweDM2LDB4RkUsMHg3OSwweDhCLDB4QzcsCi0weDJCLDB4QzYsMHgzRCwweDAwLDB4MDEsMHg3MiwweEE1LDB4M0QsMHgxMCwweDAxLDB4NzIsMHgwNCwweDgzLDB4RUUsMHgyMCwweDkwLAotMHg4MywweEM2LDB4MTAsMHg4OSwweDM2LDB4RkUsMHg3OSwweDU3LDB4OEIsMHhGRSwweEVCLDB4ODAsMHgzQywweDJFLDB4NzUsMHgwOCwKLTB4QkEsMHgwMSwweDEzLDB4RTgsMHg2QSwweDAwLDB4MDcsMHhDMywweEM2LDB4MDYsMHgwQSwweDdBLDB4MDIsMHgzMiwweEM5LDB4OTAsCi0weDNDLDB4MzAsMHg3MiwweDRDLDB4M0MsMHgzOSwweDc2LDB4MEMsMHgyNCwweDVGLDB4M0MsMHg0MSwweDcyLDB4NDIsMHgzQywweDQ2LAotMHg3NywweDNFLDB4MkMsMHgwNywweDJDLDB4MzAsMHg1MCwweEU4LDB4Q0MsMHgwOCwweDU4LDB4MDIsMHhDOCwweEZFLDB4MEUsMHgwQSwKLTB4N0EsMHg3NCwweDBGLDB4QzAsMHhFMSwweDA0LDB4RTgsMHgyRiwweDA5LDB4RTgsMHgxRSwweDA5LDB4MEEsMHhDMCwweDc0LDB4RjYsCi0weEVCLDB4Q0UsMHgyNiwweDg4LDB4MEQsMHhFOCwweEUwLDB4MDcsMHg4QSwweEQwLDB4RTgsMHgyMywweDAwLDB4OEEsMHhDMSwweDNDLAotMHgyMCwweDcyLDB4MDUsMHgzQywweDdFLDB4NzYsMHgwMywweDkwLDB4QjAsMHgyRSwweEU4LDB4RDUsMHgwOCwweEU5LDB4NzAsMHhGRiwKLTB4RTgsMHhDNSwweDA3LDB4RTgsMHgwQSwweDAwLDB4MjYsMHg4QSwweDA1LDB4RTgsMHg3QywweDA4LDB4RTksMHgxRCwweEZGLDB4OTAsCi0weEY2LDB4MDYsMHgyNiwweDdBLDB4MDIsMHg3NSwweDAyLDB4ODYsMHhGMiwweDUyLDB4OEIsMHgzNiwweDFBLDB4N0EsMHhFOCwweDBELAotMHgwOCwweDVBLDB4NTIsMHg4QSwweEM2LDB4MDIsMHgwNiwweDI0LDB4N0EsMHhGNiwweDA2LDB4MjYsMHg3QSwweDAxLDB4NzUsMHgwNiwKLTB4RTgsMHg5RiwweDA4LDB4RUIsMHgwRCwweDkwLDB4MzIsMHhFNCwweEU4LDB4MEQsMHgwOCwweDhCLDB4MzYsMHgxQywweDdBLDB4RTgsCi0weEVDLDB4MDcsMHg1QSwweDhBLDB4QzIsMHgwMiwweDA2LDB4MjUsMHg3QSwweEY2LDB4MDYsMHgyNiwweDdBLDB4MDEsMHg3NSwweDA2LAotMHhFOCwweDdGLDB4MDgsMHhFQiwweDA2LDB4OTAsMHgzMiwweEU0LDB4RTgsMHhFRCwweDA3LDB4OEIsMHgzNiwweDFFLDB4N0EsMHhFOCwKLTB4Q0MsMHgwNywweEMzLDB4OTAsMHgwNiwweDhFLDB4MDYsMHgwNCwweDdBLDB4OEIsMHgzRSwweDAyLDB4N0EsMHhFOCwweDNDLDB4MDcsCi0weDg5LDB4M0UsMHgwMiwweDdBLDB4OEMsMHgwNiwweDA0LDB4N0EsMHgwNywweEZGLDB4MUUsMHgwMiwweDdBLDB4QzMsMHhCRSwweDk3LAotMHg0RCwweEU4LDB4QUEsMHgwNywweENCLDB4OTAsMHgwNiwweDU3LDB4QkUsMHhENywweDc5LDB4RTgsMHg2NiwweDA3LDB4OEIsMHhEOCwKLTB4RTgsMHg2MSwweDA3LDB4OEIsMHhDOCwweDJCLDB4Q0IsMHg3OCwweDExLDB4OEUsMHhDMywweEJGLDB4MDAsMHgwMCwweEI4LDB4RkYsCi0weEZGLDB4NTEsMHhCOSwweDA4LDB4MDAsMHhGMywweEFCLDB4NTksMHhFMiwweEY3LDB4NUYsMHgwNywweEMzLDB4OTAsMHgwNiwweEJFLAotMHhENywweDc5LDB4RTgsMHgzRiwweDA3LDB4OEIsMHhEOCwweEQxLDB4RTMsMHgyRSwweDhCLDB4OUYsMHg0NCwweDAwLDB4QkUsMHgyNiwKLTB4NTIsMHhFOCwweEYxLDB4MDgsMHg4QiwweEMzLDB4RTgsMHhERCwweDA4LDB4QjgsMHgwMSwweDAwLDB4RTgsMHg3MywweEYyLDB4RTgsCi0weEUwLDB4MDgsMHhCRSwweDJGLDB4NTIsMHhFOCwweERELDB4MDgsMHg4QiwweDQ3LDB4MTgsMHhFOCwweEM4LDB4MDgsMHhCRSwweDc3LAotMHg1MiwweEU4LDB4RDEsMHgwOCwweDhCLDB4NDcsMHgyNiwweEU4LDB4QkMsMHgwOCwweEJFLDB4NTMsMHg1MiwweEU4LDB4QzUsMHgwOCwKLTB4OEIsMHg0NywweDFFLDB4RTgsMHhCMCwweDA4LDB4QkUsMHg1QywweDUyLDB4RTgsMHhCOSwweDA4LDB4OEIsMHg0NywweDIwLDB4RTgsCi0weEE0LDB4MDgsMHhCRSwweDZFLDB4NTIsMHhFOCwweEFELDB4MDgsMHg4QiwweDQ3LDB4MjQsMHhFOCwweDk4LDB4MDgsMHhCRSwweDgwLAotMHg1MiwweEU4LDB4QTEsMHgwOCwweDhCLDB4NDcsMHgyQSwweEU4LDB4OEMsMHgwOCwweEU4LDB4OTUsMHgwOCwweEJFLDB4MzgsMHg1MiwKLTB4RTgsMHg5MiwweDA4LDB4OEIsMHgwNywweEU4LDB4N0UsMHgwOCwweEJFLDB4NDEsMHg1MiwweEU4LDB4ODcsMHgwOCwweDhCLDB4NDcsCi0weDFBLDB4RTgsMHg3MiwweDA4LDB4QkUsMHg0QSwweDUyLDB4RTgsMHg3QiwweDA4LDB4OEIsMHg0NywweDFDLDB4RTgsMHg2NiwweDA4LAotMHhCRSwweDY1LDB4NTIsMHhFOCwweDZGLDB4MDgsMHg4QiwweDQ3LDB4MjIsMHhFOCwweDVBLDB4MDgsMHhFOCwweDYzLDB4MDgsMHhCRSwKLTB4RDEsMHg1MiwweEU4LDB4NjAsMHgwOCwweDhCLDB4NDcsMHgzOCwweEU4LDB4NEIsMHgwOCwweEJFLDB4QUQsMHg1MiwweEU4LDB4NTQsCi0weDA4LDB4OEIsMHg0NywweDMwLDB4RTgsMHgzRiwweDA4LDB4QkUsMHhCNiwweDUyLDB4RTgsMHg0OCwweDA4LDB4OEIsMHg0NywweDMyLAotMHhFOCwweDMzLDB4MDgsMHhCRSwweEE0LDB4NTIsMHhFOCwweDNDLDB4MDgsMHg4QiwweDQ3LDB4MkUsMHhFOCwweDI3LDB4MDgsMHhCRSwKLTB4QkYsMHg1MiwweEU4LDB4MzAsMHgwOCwweDhCLDB4NDcsMHgzNCwweEU4LDB4MUIsMHgwOCwweEU4LDB4MjQsMHgwOCwweEJFLDB4ODksCi0weDUyLDB4RTgsMHgyMSwweDA4LDB4OEIsMHg0NywweDA0LDB4RTgsMHgwQywweDA4LDB4QkUsMHg5MiwweDUyLDB4RTgsMHgxNSwweDA4LAotMHg4QiwweDQ3LDB4MTQsMHhFOCwweDAwLDB4MDgsMHhCRSwweDlCLDB4NTIsMHhFOCwweDA5LDB4MDgsMHg4QiwweDQ3LDB4MkMsMHhFOCwKLTB4RjQsMHgwNywweEJFLDB4QzgsMHg1MiwweEU4LDB4RkQsMHgwNywweDhCLDB4NDcsMHgzNiwweEU4LDB4RTgsMHgwNywweEJFLDB4REEsCi0weDUyLDB4RTgsMHhGMSwweDA3LDB4OEIsMHg0NywweDNBLDB4RTgsMHhEQywweDA3LDB4QkUsMHhFMywweDUyLDB4RTgsMHhFNSwweDA3LAotMHg4QiwweDQ3LDB4M0MsMHhFOCwweEQwLDB4MDcsMHhFOCwweEQ5LDB4MDcsMHhCRSwweDE5LDB4NTMsMHhFOCwweEQ2LDB4MDcsMHg4QiwKLTB4NDcsMHg0OCwweEU4LDB4QzEsMHgwNywweEJFLDB4RkUsMHg1MiwweEU4LDB4Q0EsMHgwNywweDhCLDB4NDcsMHg0MiwweEU4LDB4QjUsCi0weDA3LDB4QkUsMHgwNywweDUzLDB4RTgsMHhCRSwweDA3LDB4OEIsMHg0NywweDQ0LDB4RTgsMHhBOSwweDA3LDB4QkUsMHg3QywweDUzLAotMHhFOCwweEIyLDB4MDcsMHg4QiwweDQ3LDB4NEMsMHhFOCwweDlELDB4MDcsMHhCRSwweDg1LDB4NTMsMHhFOCwweEE2LDB4MDcsMHg4QiwKLTB4NDcsMHg0RSwweEU4LDB4OTEsMHgwNywweEJFLDB4OEUsMHg1MywweEU4LDB4OUEsMHgwNywweDhCLDB4NDcsMHg1MCwweEU4LDB4ODUsCi0weDA3LDB4RTgsMHg4RSwweDA3LDB4QkUsMHgyMiwweDUzLDB4RTgsMHg4QiwweDA3LDB4OEIsMHg0NywweDRBLDB4RTgsMHg3NiwweDA3LAotMHhCRSwweEVDLDB4NTIsMHhFOCwweDdGLDB4MDcsMHg4QiwweDQ3LDB4MDgsMHhFOCwweDZBLDB4MDcsMHhCRSwweEY1LDB4NTIsMHhFOCwKLTB4NzMsMHgwNywweDhCLDB4NDcsMHg0MCwweEU4LDB4NUUsMHgwNywweEJFLDB4MTAsMHg1MywweEU4LDB4NjcsMHgwNywweDhCLDB4NDcsCi0weDQ2LDB4RTgsMHg1MiwweDA3LDB4RTgsMHg1QiwweDA3LDB4QkUsMHg2QSwweDUzLDB4RTgsMHg1OCwweDA3LDB4OEIsMHg0NywweDdBLAotMHhFOCwweDQzLDB4MDcsMHhCRSwweDNELDB4NTMsMHhFOCwweDRDLDB4MDcsMHg4QiwweDQ3LDB4NzAsMHhFOCwweDM3LDB4MDcsMHhCRSwKLTB4NDYsMHg1MywweEU4LDB4NDAsMHgwNywweDhCLDB4NDcsMHg3MiwweEU4LDB4MkIsMHgwNywweEJFLDB4NEYsMHg1MywweEU4LDB4MzQsCi0weDA3LDB4OEIsMHg0NywweDc0LDB4RTgsMHgxRiwweDA3LDB4RTgsMHgyOCwweDA3LDB4QkUsMHgyQiwweDUzLDB4RTgsMHgyNSwweDA3LAotMHg4QiwweDQ3LDB4MEMsMHhFOCwweDEwLDB4MDcsMHhCRSwweDM0LDB4NTMsMHhFOCwweDE5LDB4MDcsMHg4QiwweDQ3LDB4MTAsMHhFOCwKLTB4MDQsMHgwNywweEJFLDB4NTgsMHg1MywweEU4LDB4MEQsMHgwNywweDhCLDB4NDcsMHg3NiwweEU4LDB4RjgsMHgwNiwweEJFLDB4NjEsCi0weDUzLDB4RTgsMHgwMSwweDA3LDB4OEIsMHg0NywweDc4LDB4RTgsMHhFQywweDA2LDB4QkUsMHg3MywweDUzLDB4RTgsMHhGNSwweDA2LAotMHg4QiwweDQ3LDB4M0UsMHhFOCwweEUwLDB4MDYsMHhFOCwweEU5LDB4MDYsMHhCRSwweDk3LDB4NTMsMHhFOCwweEU2LDB4MDYsMHg4QiwKLTB4NDcsMHg1MiwweEU4LDB4RDEsMHgwNiwweEJFLDB4QTAsMHg1MywweEU4LDB4REEsMHgwNiwweDhCLDB4NDcsMHg1NCwweEU4LDB4QzUsCi0weDA2LDB4QkUsMHhBOSwweDUzLDB4RTgsMHhDRSwweDA2LDB4OEIsMHg0NywweDU2LDB4RTgsMHhCOSwweDA2LDB4QkUsMHhCMiwweDUzLAotMHhFOCwweEMyLDB4MDYsMHg4QiwweDQ3LDB4NTgsMHhFOCwweEFELDB4MDYsMHhCRSwweEJCLDB4NTMsMHhFOCwweEI2LDB4MDYsMHg4QiwKLTB4NDcsMHg1QSwweEU4LDB4QTEsMHgwNiwweEJFLDB4QzQsMHg1MywweEU4LDB4QUEsMHgwNiwweDhCLDB4NDcsMHg1QywweEU4LDB4OTUsCi0weDA2LDB4RTgsMHg5RSwweDA2LDB4QkUsMHhDRCwweDUzLDB4RTgsMHg5QiwweDA2LDB4OEIsMHg0NywweDVFLDB4RTgsMHg4NiwweDA2LAotMHhCRSwweEQ2LDB4NTMsMHhFOCwweDhGLDB4MDYsMHg4QiwweDQ3LDB4NjAsMHhFOCwweDdBLDB4MDYsMHhCRSwweERGLDB4NTMsMHhFOCwKLTB4ODMsMHgwNiwweDhCLDB4NDcsMHg2MiwweEU4LDB4NkUsMHgwNiwweEJFLDB4RTgsMHg1MywweEU4LDB4NzcsMHgwNiwweDhCLDB4NDcsCi0weDdDLDB4RTgsMHg2MiwweDA2LDB4QkUsMHhGMSwweDUzLDB4RTgsMHg2QiwweDA2LDB4OEIsMHg0NywweDdFLDB4RTgsMHg1NiwweDA2LAotMHhCRSwweEZBLDB4NTMsMHhFOCwweDVGLDB4MDYsMHg4QiwweDg3LDB4ODAsMHgwMCwweEU4LDB4NDksMHgwNiwweEU4LDB4NTIsMHgwNiwKLTB4QkUsMHg0MiwweDU0LDB4RTgsMHg0RiwweDA2LDB4OEIsMHg4NywweDlFLDB4MDAsMHhFOCwweDM5LDB4MDYsMHhCRSwweDAzLDB4NTQsCi0weEU4LDB4NDIsMHgwNiwweDhCLDB4NDcsMHg2NCwweEU4LDB4MkQsMHgwNiwweEJFLDB4MEMsMHg1NCwweEU4LDB4MzYsMHgwNiwweDhCLAotMHg0NywweDZFLDB4RTgsMHgyMSwweDA2LDB4QkUsMHgxNSwweDU0LDB4RTgsMHgyQSwweDA2LDB4OEIsMHg4NywweDhFLDB4MDAsMHhFOCwKLTB4MTQsMHgwNiwweEJFLDB4MUUsMHg1NCwweEU4LDB4MUQsMHgwNiwweDhCLDB4ODcsMHg5MCwweDAwLDB4RTgsMHgwNywweDA2LDB4QkUsCi0weDI3LDB4NTQsMHhFOCwweDEwLDB4MDYsMHg4QiwweDg3LDB4OTIsMHgwMCwweEU4LDB4RkEsMHgwNSwweEU4LDB4MDMsMHgwNiwweEJFLAotMHgzMCwweDU0LDB4RTgsMHgwMCwweDA2LDB4OEIsMHg4NywweDk0LDB4MDAsMHhFOCwweEVBLDB4MDUsMHhCRSwweDM5LDB4NTQsMHhFOCwKLTB4RjMsMHgwNSwweDhCLDB4ODcsMHg5NiwweDAwLDB4RTgsMHhERCwweDA1LDB4QkUsMHg2RiwweDU0LDB4RTgsMHhFNiwweDA1LDB4OEIsCi0weDg3LDB4OTgsMHgwMCwweEU4LDB4RDAsMHgwNSwweEJFLDB4NUQsMHg1NCwweEU4LDB4RDksMHgwNSwweDhBLDB4ODcsMHhBMCwweDAwLAotMHhFOCwweEE3LDB4MDUsMHhCRSwweDU0LDB4NTQsMHhFOCwweENDLDB4MDUsMHg4QSwweDQ3LDB4MjgsMHhFOCwweDlCLDB4MDUsMHhCRSwKLTB4NjYsMHg1NCwweEU4LDB4QzAsMHgwNSwweDhBLDB4ODcsMHhBMSwweDAwLDB4RTgsMHg4RSwweDA1LDB4RTgsMHhCMywweDA1LDB4QkUsCi0weDc4LDB4NTQsMHhFOCwweEIwLDB4MDUsMHg4QSwweDg3LDB4QTIsMHgwMCwweEU4LDB4N0UsMHgwNSwweEJFLDB4ODEsMHg1NCwweEU4LAotMHhBMywweDA1LDB4OEEsMHg4NywweEEzLDB4MDAsMHhFOCwweDcxLDB4MDUsMHhCRSwweDhBLDB4NTQsMHhFOCwweDk2LDB4MDUsMHg4QSwKLTB4ODcsMHhBNCwweDAwLDB4RTgsMHg2NCwweDA1LDB4QkUsMHg5MywweDU0LDB4RTgsMHg4OSwweDA1LDB4OEEsMHg4NywweEE1LDB4MDAsCi0weEU4LDB4NTcsMHgwNSwweEJFLDB4OUMsMHg1NCwweEU4LDB4N0MsMHgwNSwweDhBLDB4ODcsMHhBNiwweDAwLDB4RTgsMHg0QSwweDA1LAotMHhCRSwweEE1LDB4NTQsMHhFOCwweDZGLDB4MDUsMHg4QSwweDg3LDB4QTcsMHgwMCwweEU4LDB4M0QsMHgwNSwweEJFLDB4QUUsMHg1NCwKLTB4RTgsMHg2MiwweDA1LDB4OEEsMHg4NywweEE4LDB4MDAsMHhFOCwweDMwLDB4MDUsMHhFOCwweDU1LDB4MDUsMHhCRSwweEI3LDB4NTQsCi0weEU4LDB4NTIsMHgwNSwweDhBLDB4ODcsMHhBOSwweDAwLDB4RTgsMHgyMCwweDA1LDB4QkUsMHhDMCwweDU0LDB4RTgsMHg0NSwweDA1LAotMHg4QSwweDg3LDB4QUEsMHgwMCwweEU4LDB4MTMsMHgwNSwweEJFLDB4QzksMHg1NCwweEU4LDB4MzgsMHgwNSwweDhBLDB4ODcsMHhBQiwKLTB4MDAsMHhFOCwweDA2LDB4MDUsMHhCRSwweEQyLDB4NTQsMHhFOCwweDJCLDB4MDUsMHg4QSwweDg3LDB4QUQsMHgwMCwweEU4LDB4RjksCi0weDA0LDB4QkUsMHhEQiwweDU0LDB4RTgsMHgxRSwweDA1LDB4OEEsMHg4NywweEFFLDB4MDAsMHhFOCwweEVDLDB4MDQsMHhCRSwweEU0LAotMHg1NCwweEU4LDB4MTEsMHgwNSwweDhBLDB4ODcsMHhBRiwweDAwLDB4RTgsMHhERiwweDA0LDB4QkUsMHhFRCwweDU0LDB4RTgsMHgwNCwKLTB4MDUsMHg4QSwweDg3LDB4QjAsMHgwMCwweEU4LDB4RDIsMHgwNCwweEU4LDB4RjcsMHgwNCwweEJFLDB4RjYsMHg1NCwweEU4LDB4RjQsCi0weDA0LDB4OEEsMHg4NywweEIxLDB4MDAsMHhFOCwweEMyLDB4MDQsMHhCRSwweEZGLDB4NTQsMHhFOCwweEU3LDB4MDQsMHg4QSwweDg3LAotMHhCMiwweDAwLDB4RTgsMHhCNSwweDA0LDB4QkUsMHgwOCwweDU1LDB4RTgsMHhEQSwweDA0LDB4OEEsMHg4NywweEIzLDB4MDAsMHhFOCwKLTB4QTgsMHgwNCwweEJFLDB4MTEsMHg1NSwweEU4LDB4Q0QsMHgwNCwweDhBLDB4ODcsMHhCQiwweDAwLDB4RTgsMHg5QiwweDA0LDB4RTgsCi0weEMwLDB4MDQsMHhCRSwweDFBLDB4NTUsMHhFOCwweEJELDB4MDQsMHg4QSwweDg3LDB4QkMsMHgwMCwweEU4LDB4OEIsMHgwNCwweEJFLAotMHgyMywweDU1LDB4RTgsMHhCMCwweDA0LDB4OEEsMHg4NywweEJFLDB4MDAsMHhFOCwweDdFLDB4MDQsMHhCRSwweDJDLDB4NTUsMHhFOCwKLTB4QTMsMHgwNCwweDhBLDB4ODcsMHhCRiwweDAwLDB4RTgsMHg3MSwweDA0LDB4RTgsMHg5NiwweDA0LDB4MDcsMHhDMywweDYwLDB4MDYsCi0weDFFLDB4MTYsMHg4QiwweEVDLDB4RkYsMHg0RSwweDE2LDB4RjcsMHg0NiwweDFBLDB4MDAsMHgwMiwweDc0LDB4MDEsMHhGQiwweEI4LAotMHgwMCwweDAwLDB4OEUsMHhEOCwweDhFLDB4QzAsMHg4OSwweDJFLDB4MkQsMHg3QSwweEU4LDB4Q0IsMHgwMCwweDgxLDB4NjYsMHgxQSwKLTB4RkYsMHhGRSwweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHhFOCwweEQ4LDB4MDAsMHhCOCwweDAwLDB4NUYsMHhBMywweDJCLDB4N0EsCi0weEU4LDB4NUQsMHgwMCwweDgwLDB4M0UsMHgyQSwweDdBLDB4MDAsMHg3NCwweDBBLDB4ODEsMHg0RSwweDFBLDB4MDAsMHgwMSwweEM2LAotMHgwNiwweDJBLDB4N0EsMHgwMCwweDE3LDB4MUYsMHgwNywweDYxLDB4Q0YsMHg5MCwweDYwLDB4MDYsMHgxRSwweDE2LDB4OEIsMHhFQywKLTB4RjcsMHg0NiwweDFBLDB4MDAsMHgwMiwweDc0LDB4MDEsMHhGQiwweEI4LDB4MDAsMHgwMCwweDhFLDB4RDgsMHg4RSwweEMwLDB4ODksCi0weDJFLDB4MkQsMHg3QSwweDgxLDB4NjYsMHgxQSwweEZGLDB4RkUsMHhDNiwweDA2LDB4MkEsMHg3QSwweDAwLDB4RTgsMHg5MiwweDAwLAotMHhCOCwweDAwLDB4NUYsMHhBMywweDJCLDB4N0EsMHhFOCwweDE3LDB4MDAsMHg4MCwweDNFLDB4MkEsMHg3QSwweDAwLDB4NzQsMHgwQSwKLTB4ODEsMHg0RSwweDFBLDB4MDAsMHgwMSwweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHgxNywweDFGLDB4MDcsMHg2MSwweENGLDB4OTAsCi0weEI4LDB4RjAsMHgwMCwweEU4LDB4OEMsMHhFRCwweEZGLDB4MjYsMHgyQiwweDdBLDB4QzMsMHg5MCwweDA2LDB4NTMsMHg1NiwweDgwLAotMHgzRSwweDI5LDB4N0EsMHgwMCwweDc0LDB4MDMsMHhFOCwweDNGLDB4MDAsMHhCRSwweEQ3LDB4NzksMHhFOCwweDI1LDB4MDIsMHg4QiwKLTB4RDgsMHhBMywweDI3LDB4N0EsMHgyRSwweDhBLDB4MDcsMHhBMiwweDI5LDB4N0EsMHhCMCwweENDLDB4MkUsMHg4OCwweDA3LDB4NUUsCi0weDVCLDB4MDcsMHhDMywweEM2LDB4MDYsMHgyQSwweDdBLDB4MDAsMHhCOCwweDBBLDB4NUYsMHhBMywweDJCLDB4N0EsMHhDMywweDkwLAotMHg4QiwweDJFLDB4MkQsMHg3QSwweEU4LDB4MkIsMHgwMCwweEMzLDB4QzYsMHgwNiwweDJBLDB4N0EsMHgwMSwweEU4LDB4MDgsMHgwMCwKLTB4QjgsMHgwQSwweDVGLDB4QTMsMHgyQiwweDdBLDB4QzMsMHg5MCwweDU3LDB4ODAsMHgzRSwweDI5LDB4N0EsMHgwMCwweDc0LDB4MEYsCi0weDhCLDB4M0UsMHgyNywweDdBLDB4QTAsMHgyOSwweDdBLDB4MkUsMHg4OCwweDA1LDB4QzYsMHgwNiwweDI5LDB4N0EsMHgwMCwweDVGLAotMHhDMywweDkwLDB4QkUsMHhCMiwweDRELDB4RTgsMHgwNiwweDAyLDB4QkUsMHhEOCwweDUxLDB4RTgsMHgwMCwweDAyLDB4RkYsMHg3NiwKLTB4MTQsMHg1OCwweEU4LDB4NDcsMHgwMiwweEJFLDB4REUsMHg1MSwweEU4LDB4RjMsMHgwMSwweEZGLDB4NzYsMHgwRSwweDU4LDB4RTgsCi0weDNBLDB4MDIsMHhCRSwweEU0LDB4NTEsMHhFOCwweEU2LDB4MDEsMHhGRiwweDc2LDB4MTIsMHg1OCwweEU4LDB4MkQsMHgwMiwweEJFLAotMHhFQSwweDUxLDB4RTgsMHhEOSwweDAxLDB4RkYsMHg3NiwweDEwLDB4NTgsMHhFOCwweDIwLDB4MDIsMHhCRSwweDE0LDB4NTIsMHhFOCwKLTB4Q0MsMHgwMSwweEZGLDB4NzYsMHgwQSwweDU4LDB4RTgsMHgxMywweDAyLDB4QkUsMHgxQSwweDUyLDB4RTgsMHhCRiwweDAxLDB4RkYsCi0weDc2LDB4MEMsMHg1OCwweEU4LDB4MDYsMHgwMiwweEJFLDB4Q0YsMHg1MSwweEU4LDB4QjIsMHgwMSwweEZGLDB4NzYsMHgxQSwweDU4LAotMHhFOCwweEY5LDB4MDEsMHhCRSwweEIyLDB4NEQsMHhFOCwweEE1LDB4MDEsMHhCRSwweEYwLDB4NTEsMHhFOCwweDlGLDB4MDEsMHhGRiwKLTB4NzYsMHgxOCwweDU4LDB4RTgsMHhFNiwweDAxLDB4QkUsMHhGNiwweDUxLDB4RTgsMHg5MiwweDAxLDB4RkYsMHg3NiwweDAyLDB4NTgsCi0weEU4LDB4RDksMHgwMSwweEJFLDB4RkMsMHg1MSwweEU4LDB4ODUsMHgwMSwweEZGLDB4NzYsMHgwNCwweDU4LDB4RTgsMHhDQywweDAxLAotMHhCRSwweDAyLDB4NTIsMHhFOCwweDc4LDB4MDEsMHhGRiwweDc2LDB4MDAsMHg1OCwweEU4LDB4QkYsMHgwMSwweEJFLDB4MDgsMHg1MiwKLTB4RTgsMHg2QiwweDAxLDB4RkYsMHg3NiwweDA2LDB4NTgsMHhFOCwweEIyLDB4MDEsMHhCRSwweDBFLDB4NTIsMHhFOCwweDVFLDB4MDEsCi0weEZGLDB4NzYsMHgwOCwweDU4LDB4RTgsMHhBNSwweDAxLDB4QkUsMHgyMCwweDUyLDB4RTgsMHg1MSwweDAxLDB4RkYsMHg3NiwweDE2LAotMHg1OCwweEU4LDB4OTgsMHgwMSwweEJFLDB4ODksMHg0RCwweEU4LDB4NDQsMHgwMSwweEMzLDB4OTAsMHhCRSwweEM5LDB4NEQsMHhFOCwKLTB4M0MsMHgwMSwweEMzLDB4M0MsMHgwMCwweDc0LDB4MDUsMHgzQywweDAxLDB4NzQsMHg1OSwweEMzLDB4QzcsMHgwNiwweDBDLDB4N0EsCi0weENELDB4NTAsMHhDNywweDA2LDB4MEUsMHg3QSwweEYwLDB4NTAsMHhDNywweDA2LDB4MTAsMHg3QSwweEU4LDB4NTAsMHhDNywweDA2LAotMHgxMiwweDdBLDB4RUMsMHg1MCwweEM3LDB4MDYsMHgxNCwweDdBLDB4RjQsMHg1MCwweEM3LDB4MDYsMHgxNiwweDdBLDB4RkIsMHg1MCwKLTB4QzcsMHgwNiwweDE4LDB4N0EsMHgwMywweDUxLDB4QzcsMHgwNiwweDFBLDB4N0EsMHgwQiwweDUxLDB4QzcsMHgwNiwweDFDLDB4N0EsCi0weDBFLDB4NTEsMHhDNywweDA2LDB4MUUsMHg3QSwweDEwLDB4NTEsMHhDNywweDA2LDB4MjAsMHg3QSwweDEyLDB4NTEsMHhDNywweDA2LAotMHgyMiwweDdBLDB4MTYsMHg1MSwweEM2LDB4MDYsMHgyNCwweDdBLDB4MDEsMHhDNiwweDA2LDB4MjUsMHg3QSwweDAxLDB4QzYsMHgwNiwKLTB4MjYsMHg3QSwweDAzLDB4QzMsMHhDNywweDA2LDB4MEMsMHg3QSwweDFBLDB4NTEsMHhDNywweDA2LDB4MEUsMHg3QSwweDRELDB4NTEsCi0weEM3LDB4MDYsMHgxMCwweDdBLDB4NDcsMHg1MSwweEM3LDB4MDYsMHgxMiwweDdBLDB4NEEsMHg1MSwweEM3LDB4MDYsMHgxNCwweDdBLAotMHg0RiwweDUxLDB4QzcsMHgwNiwweDE2LDB4N0EsMHg1MSwweDUxLDB4QzcsMHgwNiwweDE4LDB4N0EsMHg1NSwweDUxLDB4QzcsMHgwNiwKLTB4MUEsMHg3QSwweDU2LDB4NTEsMHhDNywweDA2LDB4MUMsMHg3QSwweDU5LDB4NTEsMHhDNywweDA2LDB4MUUsMHg3QSwweDVBLDB4NTEsCi0weEM3LDB4MDYsMHgyMCwweDdBLDB4NUIsMHg1MSwweEM3LDB4MDYsMHgyMiwweDdBLDB4NUUsMHg1MSwweEM2LDB4MDYsMHgyNCwweDdBLAotMHgyMCwweEM2LDB4MDYsMHgyNSwweDdBLDB4MjAsMHhDNiwweDA2LDB4MjYsMHg3QSwweDAyLDB4QzMsMHhBMSwweEY4LDB4NzksMHg0OCwKLTB4NzQsMHgxNCwweEJFLDB4RDcsMHg3OSwweEU4LDB4M0MsMHgwMCwweDhCLDB4RjgsMHhBQywweDNDLDB4M0EsMHg3NSwweDA3LDB4OEUsCi0weEM3LDB4RTgsMHgzMCwweDAwLDB4OEIsMHhGOCwweEMzLDB4OTAsMHg4QiwweEM3LDB4MkIsMHgwNiwweEZFLDB4NzksMHg4QSwweEYwLAotMHgyNCwweDBGLDB4OEEsMHhEMCwweDAyLDB4RDAsMHgwMiwweEQwLDB4ODAsMHhDMiwweDBCLDB4QzAsMHhFRSwweDA0LDB4ODAsMHhDNiwKLTB4MDMsMHgwNCwweDNELDB4QzMsMHg4QywweEMwLDB4RTgsMHg5MywweDAwLDB4QjAsMHgzQSwweEU4LDB4RTQsMHgwMCwweDhCLDB4QzcsCi0weEU4LDB4ODksMHgwMCwweEMzLDB4NTEsMHgzMywweEM5LDB4OTAsMHhBQywweDNDLDB4MjAsMHg3NCwweEZCLDB4OTAsMHgwQSwweEMwLAotMHg3NCwweDI2LDB4MkMsMHgzMCwweDcyLDB4MjIsMHgzQywweDA5LDB4NzYsMHgxNCwweDNDLDB4MTEsMHg3MiwweDFBLDB4MkMsMHgwNywKLTB4M0MsMHgwRiwweDc2LDB4MEEsMHgzQywweDJBLDB4NzIsMHgxMCwweDJDLDB4MjAsMHgzQywweDBGLDB4NzcsMHgwQSwweDk4LDB4QzEsCi0weEUxLDB4MDQsMHgwMywweEM4LDB4QUMsMHhFQiwweEQ3LDB4OTAsMHg0RSwweDhCLDB4QzEsMHg1OSwweEMzLDB4OTAsMHgwNiwweDhDLAotMHhDOCwweDhFLDB4QzAsMHhFOCwweDAyLDB4MDAsMHgwNywweEMzLDB4MjYsMHg4QSwweDA0LDB4NDYsMHgwQSwweEMwLDB4NzQsMHgwNiwKLTB4RTgsMHg4RiwweDAwLDB4RUIsMHhGMywweDkwLDB4QzMsMHg5MCwweDBCLDB4QzAsMHg3NCwweDdBLDB4NTEsMHgzMywweEQyLDB4QjksCi0weEU4LDB4MDMsMHhGNywweEYxLDB4OEIsMHhDQSwweEU4LDB4MDMsMHgwMCwweDhCLDB4QzEsMHg1OSwweEJBLDB4NjQsMHgwMCwweEY2LAotMHhGMiwweEU4LDB4MEMsMHgwMCwweDhBLDB4QzQsMHg5OCwweEIyLDB4MEEsMHhGNiwweEYyLDB4RTgsMHgwMiwweDAwLDB4OEEsMHhDNCwKLTB4NTAsMHgwQSwweEYwLDB4NzQsMHgwNSwweDA0LDB4MzAsMHhFOCwweDU4LDB4MDAsMHg1OCwweEMzLDB4ODYsMHhDNCwweEU4LDB4MDcsCi0weDAwLDB4ODYsMHhDNCwweEU4LDB4MDIsMHgwMCwweEMzLDB4OTAsMHhDMSwweEM4LDB4MDQsMHhFOCwweDA4LDB4MDAsMHhDMSwweEMwLAotMHgwNCwweEU4LDB4MDIsMHgwMCwweEMzLDB4OTAsMHg1MywweDUwLDB4MjQsMHgwRiwweEJCLDB4Q0EsMHg2MiwweDJFLDB4RDcsMHhFOCwKLTB4MzAsMHgwMCwweDU4LDB4NUIsMHhDMywweDkwLDB4ODYsMHhDNCwweEU4LDB4MDcsMHgwMCwweDg2LDB4QzQsMHhFOCwweDAyLDB4MDAsCi0weEMzLDB4OTAsMHg1MCwweEI5LDB4MDgsMHgwMCwweDhBLDB4RTAsMHgzMiwweEMwLDB4RDEsMHhDMCwweDA0LDB4MzAsMHhFOCwweDExLAotMHgwMCwweEUyLDB4RjUsMHg1OCwweEMzLDB4OTAsMHhCMCwweDMwLDB4RTgsMHgwNywweDAwLDB4QzMsMHhCMCwweDIwLDB4RTgsMHgwMSwKLTB4MDAsMHhDMywweDU2LDB4OEIsMHgzNiwweEQwLDB4NzksMHg4OCwweDg0LDB4RDAsMHg3NywweDQ2LDB4ODEsMHhFNiwweEZGLDB4MDEsCi0weEZGLDB4MDYsMHhENCwweDc5LDB4ODksMHgzNiwweEQwLDB4NzksMHg4MSwweDNFLDB4RDQsMHg3OSwweEZFLDB4MDEsMHg3NSwweDA4LAotMHg1NiwweEU4LDB4MTQsMHgwMCwweDVFLDB4RUIsMHhGMSwweDkwLDB4NUUsMHhDMywweEJBLDB4MDIsMHgwMiwweEVDLDB4MjQsMHgwMSwKLTB4NzQsMHgwNCwweEJBLDB4MDYsMHgwMiwweEVDLDB4QzMsMHg5MCwweDgwLDB4M0UsMHhGNiwweDc5LDB4MDAsMHg3NCwweDA5LDB4NjAsCi0weEI4LDB4MDEsMHgwMCwweEU4LDB4MkMsMHhFQSwweDYxLDB4OTAsMHhCQSwweDAyLDB4MDIsMHhFQywweEE4LDB4MDQsMHg3NCwweDI4LAotMHg4QiwweDM2LDB4RDIsMHg3OSwweDgzLDB4M0UsMHhENCwweDc5LDB4MDAsMHg3NCwweDFELDB4OEEsMHg4NCwweEQwLDB4NzcsMHg0NiwKLTB4ODEsMHhFNiwweEZGLDB4MDEsMHg4OSwweDM2LDB4RDIsMHg3OSwweEZGLDB4MEUsMHhENCwweDc5LDB4QkEsMHgwNiwweDAyLDB4RUUsCi0weEJBLDB4MDIsMHgwMiwweEVDLDB4QTgsMHgwNCwweDc1LDB4REMsMHhBMSwweEQ0LDB4NzksMHhDMywweDUyLDB4QkEsMHgwNiwweDAyLAotMHhFRSwweDVBLDB4QzMsMHg5MCwweDUyLDB4NTAsMHhCQSwweDAyLDB4MDIsMHhFQywweEE4LDB4MDQsMHg3NCwweDA4LDB4NTgsMHg1QSwKLTB4RTgsMHhFOSwweEZGLDB4RjksMHhDMywweDkwLDB4NTgsMHg1QSwweEY4LDB4QzMsMHg1MiwweDUwLDB4QkEsMHgwMiwweDAyLDB4RUMsCi0weEE4LDB4MDQsMHg3NCwweEZCLDB4NTgsMHg1QSwweEU4LDB4RDMsMHhGRiwweEMzLDB4MzAsMHgzMSwweDMyLDB4MzMsMHgzNCwweDM1LAotMHgzNiwweDM3LDB4MzgsMHgzOSwweDQxLDB4NDIsMHg0MywweDQ0LDB4NDUsMHg0NiwweDUzLDB4NTAsMHg4QSwweEUwLDB4ODAsMHhFNCwKLTB4MEYsMHhCQiwweENBLDB4NjIsMHhDMCwweEU4LDB4MDQsMHgyRSwweEQ3LDB4RTgsMHhDRSwweEZGLDB4OEEsMHhDNCwweDJFLDB4RDcsCi0weEU4LDB4QzcsMHhGRiwweDU4LDB4NUIsMHhDMywweDg2LDB4RTAsMHhFOCwweERGLDB4RkYsMHg4NiwweEUwLDB4RTgsMHhEQSwweEZGLAotMHhDMywweDkwLDB4QkUsMHhCMiwweDRELDB4NTAsMHgyRSwweEFDLDB4M0MsMHgwMCwweDc0LDB4MDUsMHhFOCwweEFCLDB4RkYsMHhFQiwKLTB4RjUsMHg1OCwweEMzLDB4OTAsMHhDOCwweDA4LDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHhCRiwweDA0LDB4MDAsCi0weEM3LDB4NDYsMHhGQywweDAwLDB4MDAsMHhDNywweDQ2LDB4RkEsMHgwMCwweDAwLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDgzLAotMHg3RSwweDA2LDB4MDAsMHg3NSwweDBFLDB4NTYsMHhFOCwweEI2LDB4MEUsMHg1OSwweDBCLDB4QzAsMHg3NSwweDA1LDB4OEIsMHhDNywKLTB4RTksMHg1QiwweDAxLDB4OEIsMHg0NiwweEZDLDB4ODksMHg0NiwweEZFLDB4MEIsMHhGRiwweDc1LDB4MDUsMHhCOCwweDAxLDB4MDAsCi0weEVCLDB4MDIsMHgzMywweEMwLDB4NTAsMHg1NiwweEU4LDB4QTQsMHgwRCwweDU5LDB4NTksMHhCNCwweDAwLDB4ODksMHg0NiwweEZDLAotMHg4QiwweDVFLDB4RkMsMHg4MywweEZCLDB4MDgsMHg3NiwweDAzLDB4RTksMHgyQiwweDAxLDB4RDEsMHhFMywweDJFLDB4RkYsMHhBNywKLTB4QjIsMHg2NCwweEI4LDB4MDMsMHgwMCwweEU5LDB4MjYsMHgwMSwweDgzLDB4N0UsMHhGQSwweDAwLDB4NzQsMHgxNCwweEM3LDB4NDYsCi0weEZBLDB4MDAsMHgwMCwweDhBLDB4NDQsMHg1OCwweDk4LDB4NTAsMHg4QSwweDQ0LDB4NTksMHg5OCwweDUwLDB4RTgsMHhDMiwweDBGLAotMHg1OSwweDU5LDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NCwweDBBLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDU2LDB4RTgsMHg5QiwKLTB4MDgsMHg1OSwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzUsMHgwNSwweDhCLDB4QzcsMHhFOSwweEYxLDB4MDAsMHg4MywweEZGLDB4MDQsCi0weDc1LDB4MDMsMHhFOSwweEU2LDB4MDAsMHg4QiwweEM3LDB4RTksMHhFNCwweDAwLDB4ODMsMHg3RSwweEZFLDB4MDAsMHg3NSwweDAzLAotMHhCRiwweDAyLDB4MDAsMHhFOSwweEQ1LDB4MDAsMHg4MywweDdFLDB4RkUsMHgwMCwweDc1LDB4MDMsMHhCRiwweDAxLDB4MDAsMHhFOSwKLTB4QzksMHgwMCwweDhCLDB4NUUsMHhGRSwweDgzLDB4RkIsMHgwNywweDc2LDB4MDMsMHhFOSwweDg2LDB4MDAsMHhEMSwweEUzLDB4MkUsCi0weEZGLDB4QTcsMHhBMiwweDY0LDB4MzMsMHhGRiwweEU5LDB4N0YsMHgwMCwweEJGLDB4MDQsMHgwMCwweDgwLDB4N0MsMHg1OCwweDBGLAotMHg3NCwweDIyLDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NSwweDFDLDB4RkUsMHg0NCwweDU4LDB4NkEsMHgwOCwweDU2LDB4RTgsMHg3RSwKLTB4MEMsMHg1OSwweDU5LDB4OEEsMHg0NCwweDU4LDB4MDQsMHg4MCwweDUwLDB4NTYsMHhFOCwweDcyLDB4MEMsMHg1OSwweDU5LDB4QzcsCi0weDQ2LDB4RkEsMHgwMSwweDAwLDB4ODMsMHg3RSwweEY4LDB4MDAsMHg3NCwweDBBLDB4QzcsMHg0NiwweEY4LDB4MDAsMHgwMCwweDU2LAotMHhFOCwweDE5LDB4MDgsMHg1OSwweEVCLDB4NDIsMHhCRiwweDA0LDB4MDAsMHg4MCwweDdDLDB4NTgsMHgwMCwweDc0LDB4MjIsMHg4MywKLTB4N0UsMHhGOCwweDAwLDB4NzUsMHgxQywweEZFLDB4NEMsMHg1OCwweDZBLDB4MDgsMHg1NiwweEU4LDB4NDEsMHgwQywweDU5LDB4NTksCi0weDhBLDB4NDQsMHg1OCwweDA0LDB4ODAsMHg1MCwweDU2LDB4RTgsMHgzNSwweDBDLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGQSwweDAxLAotMHgwMCwweDgzLDB4N0UsMHhGOCwweDAwLDB4NzQsMHgwQSwweEM3LDB4NDYsMHhGOCwweDAwLDB4MDAsMHg1NiwweEU4LDB4REMsMHgwNywKLTB4NTksMHhFQiwweDA1LDB4QkYsMHgwNCwweDAwLDB4RUIsMHgwMCwweEVCLDB4MzEsMHhCRiwweDA0LDB4MDAsMHhFQiwweDJDLDB4QzcsCi0weDQ2LDB4RjgsMHgwMSwweDAwLDB4NkEsMHgwOCwweDU2LDB4RTgsMHgwNSwweDBDLDB4NTksMHg1OSwweDgwLDB4N0MsMHg1OCwweDA5LAotMHg3RCwweDA0LDB4QjAsMHgwRiwweEVCLDB4MDIsMHhCMCwweDAwLDB4MDQsMHg4MCwweDUwLDB4NTYsMHhFOCwweEYwLDB4MEIsMHg1OSwKLTB4NTksMHhCRiwweDA0LDB4MDAsMHhFQiwweDA1LDB4QkYsMHgwNCwweDAwLDB4RUIsMHgwMCwweEU5LDB4QTUsMHhGRSwweDVGLDB4NUUsCi0weEM5LDB4QzMsMHhFNCwweDYzLDB4NjMsMHg2NCwweDYzLDB4NjQsMHg2MywweDY0LDB4NjMsMHg2NCwweEU5LDB4NjMsMHgyNiwweDY0LAotMHg1MSwweDY0LDB4NzgsMHg2MywweEJBLDB4NjMsMHhDNiwweDYzLDB4OTYsMHg2NCwweEQyLDB4NjMsMHg2QSwweDY0LDB4NkEsMHg2NCwKLTB4NkYsMHg2NCwweDcyLDB4NjMsMHhDOCwweDA4LDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDc2LDB4MDQsMHg4QiwweDdFLDB4MDgsCi0weDZBLDB4MDEsMHg1NiwweEU4LDB4QTksMHgwQiwweDU5LDB4NTksMHg4QSwweDQ2LDB4MDYsMHhDMCwweEUwLDB4MDYsMHgwNCwweDgwLAotMHg1MCwweDU2LDB4RTgsMHg5QSwweDBCLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGRSwweDAwLDB4MDAsMHg4OSwweDdFLDB4RjgsMHhFQiwKLTB4MDMsMHhGRiwweDQ2LDB4RkUsMHg4QiwweDVFLDB4RjgsMHhGRiwweDQ2LDB4RjgsMHg4MCwweDNGLDB4MDAsMHg3NSwweEYyLDB4ODMsCi0weDdFLDB4RkUsMHgxMCwweDdELDB4MjUsMHhCOCwweDEwLDB4MDAsMHgyQiwweDQ2LDB4RkUsMHhEMSwweEY4LDB4ODksMHg0NiwweEZDLAotMHhDNywweDQ2LDB4RkEsMHgwMCwweDAwLDB4RUIsMHgwQiwweDZBLDB4MjAsMHg1NiwweEU4LDB4NjIsMHgwQiwweDU5LDB4NTksMHhGRiwKLTB4NDYsMHhGQSwweDhCLDB4NDYsMHhGQSwweDNCLDB4NDYsMHhGQywweDdDLDB4RUQsMHhFQiwweDBDLDB4OEIsMHhERiwweDQ3LDB4OEEsCi0weDA3LDB4NTAsMHg1NiwweEU4LDB4NDksMHgwQiwweDU5LDB4NTksMHg4MCwweDNELDB4MDAsMHg3NSwweEVGLDB4NkEsMHgwMiwweDU2LAotMHhFOCwweDNDLDB4MEIsMHg1OSwweDU5LDB4RUIsMHgwMCwweDVGLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwKLTB4NTcsMHg4QiwweDdFLDB4MDQsMHhDNywweDQ2LDB4RkUsMHgwMCwweDAwLDB4QkUsMHgxNCwweDAwLDB4RTksMHgwOSwweDAxLDB4OEIsCi0weDVFLDB4RkUsMHg4MywweEMzLDB4MDQsMHgyQiwweERGLDB4OEEsMHg4NywweEFDLDB4MEIsMHg4OCwweDQ0LDB4NUEsMHhDNiwweDQ0LAotMHg1OCwweDA4LDB4OEEsMHg0NiwweEZFLDB4ODgsMHg0NCwweDU5LDB4QzcsMHg0NCwweDA2LDB4MDAsMHgwMCwweEM2LDB4NDQsMHgxOSwKLTB4MDAsMHhDNiwweDQ0LDB4MUEsMHgwMCwweEM2LDB4NDQsMHgxQiwweDAwLDB4QzYsMHg0NCwweDFELDB4MEQsMHhDNiwweDQ0LDB4MUUsCi0weDAzLDB4QzYsMHg0NCwweDFGLDB4MDAsMHhDNiwweDQ0LDB4MjAsMHgwMCwweEM2LDB4NDQsMHgyMSwweDAwLDB4QzYsMHg0NCwweDVCLAotMHgwMCwweEM2LDB4NDQsMHg1RCwweDAwLDB4QzYsMHg0NCwweDVFLDB4MDAsMHhDNiwweDQ0LDB4NUYsMHgwMCwweEM2LDB4NDQsMHg2MCwKLTB4MDAsMHhDNywweDQ2LDB4RkMsMHgwMCwweDAwLDB4RUIsMHgwRCwweDhCLDB4NUUsMHhGQywweEQxLDB4RTMsMHhDNywweDQwLDB4MzAsCi0weDAwLDB4MDAsMHhGRiwweDQ2LDB4RkMsMHg4MywweDdFLDB4RkMsMHgxMCwweDdDLDB4RUQsMHhDNywweDQ2LDB4RkMsMHgwMCwweDAwLAotMHhFQiwweDBBLDB4OEIsMHg1RSwweEZDLDB4QzYsMHg0MCwweDUwLDB4MDAsMHhGRiwweDQ2LDB4RkMsMHg4MywweDdFLDB4RkMsMHgwNCwKLTB4N0MsMHhGMCwweEM3LDB4NDQsMHg1NCwweDAwLDB4MDAsMHhDNywweDQ0LDB4NTYsMHgwMCwweDAwLDB4OEEsMHg0NCwweDVBLDB4OTgsCi0weEJBLDB4RjgsMHgwMCwweDIzLDB4RDAsMHhCOCwweDA1LDB4MDAsMHgwQiwweEMyLDB4ODksMHg0NiwweEZDLDB4OUMsMHhGQSwweDhBLAotMHg0NiwweEZDLDB4QkEsMHhGRSwweDAwLDB4RUUsMHhCQSwweDAwLDB4MDAsMHhFQywweDlELDB4MjQsMHgwOCwweDg4LDB4NDYsMHhGQywKLTB4ODMsMHg3RSwweEZDLDB4MDAsMHg3NSwweDAyLDB4RUIsMHg0QSwweEZGLDB4NzYsMHhGRSwweEU4LDB4N0EsMHgwQywweDU5LDB4NjgsCi0weDM1LDB4MDIsMHg1NiwweEU4LDB4MzIsMHgwQSwweDU5LDB4NTksMHgwQiwweEMwLDB4NzUsMHgzNCwweDY4LDB4MzgsMHgwMiwweDU2LAotMHhFOCwweDI1LDB4MEEsMHg1OSwweDU5LDB4MEIsMHhDMCwweDc1LDB4MjcsMHg2OCwweDQyLDB4MDIsMHg1NiwweEU4LDB4MTgsMHgwQSwKLTB4NTksMHg1OSwweDBCLDB4QzAsMHg3NSwweDFBLDB4NjgsMHg0QywweDAyLDB4NTYsMHhFOCwweDBCLDB4MEEsMHg1OSwweDU5LDB4MEIsCi0weEMwLDB4NzUsMHgwRCwweDY4LDB4NTYsMHgwMiwweDU2LDB4RTgsMHhGRSwweDA5LDB4NTksMHg1OSwweDBCLDB4QzAsMHg3NCwweDAyLAotMHhFQiwweDAwLDB4RkYsMHg0NiwweEZFLDB4ODMsMHhDNiwweDYyLDB4MzksMHg3RSwweEZFLDB4N0QsMHgwMywweEU5LDB4RUYsMHhGRSwKLTB4RUIsMHgwMCwweDVGLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwOCwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg0NiwweDA0LDB4QkEsCi0weDYyLDB4MDAsMHhGNywweEVBLDB4MDUsMHgxNCwweDAwLDB4OEIsMHhGMCwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzQsMHgwNSwweEI4LAotMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MDgsMHgwMCwweDg5LDB4NDQsMHgwNCwweDhBLDB4NDYsMHgwOCwweDg4LDB4NDQsMHg1QywKLTB4NTYsMHhFOCwweDU5LDB4MDQsMHg1OSwweDhCLDB4RjgsMHg4QiwweEM3LDB4ODksMHg0NCwweDU2LDB4ODksMHg0NCwweDU0LDB4OEEsCi0weDQ0LDB4NUQsMHg4OCwweDQ0LDB4MkYsMHgwQiwweEZGLDB4NzUsMHgxRCwweDY4LDB4QzIsMHgwRiwweDZBLDB4MDEsMHg1NiwweEU4LAotMHgwMiwweEZFLDB4ODMsMHhDNCwweDA2LDB4RUIsMHgwMCwweDZBLDB4MDEsMHg1NiwweEU4LDB4NDcsMHhGQywweDU5LDB4NTksMHgwQiwKLTB4QzAsMHg3NSwweEY0LDB4QkYsMHgwMSwweDAwLDB4ODksMHg3RSwweEZBLDB4QjksMHgwNSwweDAwLDB4QkIsMHhFOSwweDZBLDB4MkUsCi0weDhCLDB4MDcsMHgzQiwweDQ2LDB4RkEsMHg3NCwweDA3LDB4NDMsMHg0MywweEUyLDB4RjQsMHhFOSwweEE0LDB4MDMsMHgyRSwweEZGLAotMHg2NywweDBBLDB4QzcsMHg0NCwweDA2LDB4MDIsMHgwMCwweEM3LDB4NDQsMHgwOCwweEY0LDB4MDgsMHg4QiwweDVFLDB4MDQsMHhEMSwKLTB4RTMsMHg4QiwweDg3LDB4RkMsMHgwOCwweDg5LDB4NDQsMHgwQSwweDMzLDB4QzAsMHg4QiwweEY4LDB4ODksMHg0NCwweDU0LDB4RTksCi0weDgwLDB4MDMsMHg1NiwweEU4LDB4QkIsMHgwNSwweDU5LDB4QkYsMHgwMSwweDAwLDB4OEEsMHg0NCwweDVELDB4ODgsMHg0NCwweDYwLAotMHhFOSwweDZGLDB4MDMsMHg4MywweDdDLDB4MDQsMHgwOCwweDc1LDB4MzAsMHg4MCwweDdDLDB4NUMsMHgwMSwweDc1LDB4MTUsMHg4QSwKLTB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhFNCwweDA4LDB4NTYsMHhFOCwweEY3LDB4MDgsCi0weDU5LDB4NTksMHhFQiwweDEzLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEM0LAotMHgwOCwweDU2LDB4RTgsMHhFMiwweDA4LDB4NTksMHg1OSwweEVCLDB4MkUsMHg4MCwweDdDLDB4NUMsMHgwMSwweDc1LDB4MTUsMHg4QSwKLTB4NDQsMHg1RCwweEI0LDB4MDAsMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHhENCwweDA4LDB4NTYsMHhFOCwweEM3LDB4MDgsCi0weDU5LDB4NTksMHhFQiwweDEzLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEI0LAotMHgwOCwweDU2LDB4RTgsMHhCMiwweDA4LDB4NTksMHg1OSwweDZBLDB4MDEsMHg1NiwweEU4LDB4ODcsMHhGQiwweDU5LDB4NTksMHg4QiwKLTB4RDgsMHg4MywweEZCLDB4MDMsMHg3NywweDJBLDB4RDEsMHhFMywweDJFLDB4RkYsMHhBNywweEUxLDB4NkEsMHhCRiwweDAxLDB4MDAsCi0weDhBLDB4NDQsMHg1RCwweDg4LDB4NDQsMHg1RSwweEVCLDB4MTgsMHg4QSwweDQ0LDB4NUQsMHgwNCwweEZGLDB4MjQsMHgwNywweDg4LAotMHg0NCwweDVELDB4RUIsMHgwQywweDhBLDB4NDQsMHg1RCwweEZFLDB4QzAsMHgyNCwweDA3LDB4ODgsMHg0NCwweDVELDB4RUIsMHgwMCwKLTB4RTksMHhDRiwweDAyLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweEZELDB4MDIsCi0weDU2LDB4RTgsMHg2MywweDA4LDB4NTksMHg1OSwweDY4LDB4MUQsMHgwMywweDU2LDB4RTgsMHg1QSwweDA4LDB4NTksMHg1OSwweDZBLAotMHgwMSwweDU2LDB4RTgsMHgyRiwweEZCLDB4NTksMHg1OSwweDhCLDB4RDgsMHg4MywweEZCLDB4MDMsMHg3NywweDM2LDB4RDEsMHhFMywKLTB4MkUsMHhGRiwweEE3LDB4RDksMHg2QSwweEJGLDB4MDEsMHgwMCwweDhBLDB4NDQsMHg1RCwweDg4LDB4NDQsMHg1RiwweEVCLDB4MjQsCi0weDhBLDB4NDQsMHg1RCwweDA0LDB4RkYsMHg4QSwweDU0LDB4MDQsMHg4MCwweEMyLDB4RkYsMHgyMiwweEMyLDB4ODgsMHg0NCwweDVELAotMHhFQiwweDEyLDB4OEEsMHg0NCwweDVELDB4RkUsMHhDMCwweDhBLDB4NTQsMHgwNCwweDgwLDB4QzIsMHhGRiwweDIyLDB4QzIsMHg4OCwKLTB4NDQsMHg1RCwweEVCLDB4MDAsMHhFOSwweDZCLDB4MDIsMHg4QiwweDVDLDB4MDYsMHg4MywweEMzLDB4RkUsMHhEMSwweEUzLDB4OEIsCi0weDQwLDB4MDgsMHg4OSwweDA0LDB4OEIsMHgxQywweEZGLDB4NzcsMHgwNiwweDZBLDB4MDAsMHg1NiwweEU4LDB4ODUsMHhGQywweDgzLAotMHhDNCwweDA2LDB4OEIsMHg1QywweDA2LDB4NEIsMHhEMSwweEUzLDB4OEIsMHg0MCwweDA4LDB4ODksMHg0NCwweDAyLDB4OEIsMHg1QywKLTB4MDIsMHhGRiwweDc3LDB4MDYsMHg2QSwweDAxLDB4NTYsMHhFOCwweDZBLDB4RkMsMHg4MywweEM0LDB4MDYsMHg2QSwweDAxLDB4NTYsCi0weEU4LDB4QjEsMHhGQSwweDU5LDB4NTksMHg4QiwweEQ4LDB4ODMsMHhGQiwweDAzLDB4NzYsMHgwMywweEU5LDB4MUYsMHgwMiwweEQxLAotMHhFMywweDJFLDB4RkYsMHhBNywweEQxLDB4NkEsMHg4QiwweDVDLDB4MDIsMHg4QiwweDQ3LDB4MDQsMHg4OSwweDQ0LDB4MDIsMHg4QiwKLTB4NUMsMHgwMiwweDgwLDB4M0YsMHg0NCwweDc1LDB4MEQsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHhCNCwweDAwLDB4M0IsCi0weDQ0LDB4MDQsMHg3RCwweEUyLDB4OEIsMHg0NiwweDA0LDB4RDEsMHhFMCwweDhCLDB4MUMsMHgwMywweEQ4LDB4OEIsMHg0NCwweDAyLAotMHg4OSwweDQ3LDB4MDgsMHg4QiwweDVDLDB4MDYsMHg0QiwweEQxLDB4RTMsMHg4QiwweDQ0LDB4MDIsMHg4OSwweDQwLDB4MDgsMHhFOSwKLTB4REUsMHgwMSwweDhCLDB4NUMsMHgwMiwweDhCLDB4NDcsMHgwMiwweDg5LDB4NDQsMHgwMiwweDhCLDB4NUMsMHgwMiwweDgwLDB4M0YsCi0weDQ0LDB4NzUsMHgwRCwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweEI0LDB4MDAsMHgzQiwweDQ0LDB4MDQsMHg3RCwweEUyLAotMHg4QiwweDQ2LDB4MDQsMHhEMSwweEUwLDB4OEIsMHgxQywweDAzLDB4RDgsMHg4QiwweDQ0LDB4MDIsMHg4OSwweDQ3LDB4MDgsMHg4QiwKLTB4NUMsMHgwNiwweDRCLDB4RDEsMHhFMywweDhCLDB4NDQsMHgwMiwweDg5LDB4NDAsMHgwOCwweEU5LDB4QTIsMHgwMSwweEJGLDB4MDEsCi0weDAwLDB4RTksMHg5QywweDAxLDB4OEIsMHg1QywweDAyLDB4OEEsMHgwNywweEI0LDB4MDAsMHg4OSwweDQ2LDB4RjgsMHhCOSwweDBDLAotMHgwMCwweEJCLDB4QTEsMHg2QSwweDJFLDB4OEIsMHgwNywweDNCLDB4NDYsMHhGOCwweDc0LDB4MDcsMHg0MywweDQzLDB4RTIsMHhGNCwKLTB4RTksMHg3NywweDAxLDB4MkUsMHhGRiwweDY3LDB4MTgsMHg4QiwweDQ2LDB4MDQsMHhEMSwweEUwLDB4OEIsMHg1QywweDAyLDB4MDMsCi0weEQ4LDB4OEIsMHg0NywweDA4LDB4OEIsMHg1QywweDA2LDB4RkYsMHg0NCwweDA2LDB4RDEsMHhFMywweDg5LDB4NDAsMHgwOCwweDhCLAotMHgxQywweDgwLDB4N0YsMHgwMSwweDAwLDB4NzQsMHgxMiwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweDhCLDB4MUMsMHg4QSwKLTB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwweERBLDB4ODgsMHg0MCwweDE4LDB4RTksMHg0MCwweDAxLDB4RkYsMHg0QywweDA2LDB4RTksCi0weDNBLDB4MDEsMHg4QiwweDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsMHg1NywweDAxLDB4QjYsMHgwMCwweDhCLAotMHhEQSwweDg4LDB4NDAsMHgxOCwweEU5LDB4MjUsMHgwMSwweDhCLDB4NUMsMHgwMiwweDhBLDB4NDcsMHgwMSwweDhCLDB4MUMsMHg4QSwKLTB4NTcsMHgwMSwweEI2LDB4MDAsMHg4QiwweERBLDB4ODgsMHg0MCwweDE4LDB4RkYsMHg0QywweDA2LDB4RTksMHgwRCwweDAxLDB4OEIsCi0weDVDLDB4MDIsMHg4QSwweDQ3LDB4MDEsMHg4QiwweDFDLDB4OEEsMHg1NywweDAxLDB4QjYsMHgwMCwweDhCLDB4REEsMHgzMCwweDQwLAotMHgxOCwweEU5LDB4RjgsMHgwMCwweEI4LDB4RjAsMHgxMCwweDhCLDB4RjgsMHg4OSwweDQ0LDB4NTQsMHg4QSwweDQ0LDB4NUYsMHg4OCwKLTB4NDQsMHg1RCwweEU5LDB4RTcsMHgwMCwweDhBLDB4NDQsMHgxQywweDk4LDB4M0QsMHgwMiwweDAwLDB4NzQsMHgwNywweDNELDB4MDMsCi0weDAwLDB4NzQsMHgwMiwweEVCLDB4MDcsMHhDNywweDQ2LDB4RkUsMHgwMCwweDAwLDB4RUIsMHgyQiwweDhBLDB4NDQsMHgxQywweDk4LAotMHhEMSwweEUwLDB4OEIsMHhEOCwweEZGLDB4QjcsMHg2OSwweDAyLDB4NTYsMHhFOCwweDZCLDB4MDYsMHg1OSwweDU5LDB4NkEsMHgwMSwKLTB4NTYsMHhFOCwweDQwLDB4RjksMHg1OSwweDU5LDB4ODksMHg0NiwweEZFLDB4ODMsMHg3RSwweEZFLDB4MDAsMHg3NCwweDA2LDB4ODMsCi0weDdFLDB4RkUsMHgwMywweDc1LDB4RTksMHhFQiwweDAwLDB4ODMsMHg3RSwweEZFLDB4MDMsMHg3NCwweDYyLDB4OEEsMHg0NCwweDFDLAotMHg5OCwweEQxLDB4RTAsMHg4QiwweEQ4LDB4RkYsMHhCNywweDZELDB4MDIsMHg1NiwweEU4LDB4M0EsMHgwNiwweDU5LDB4NTksMHg1NiwKLTB4RTgsMHg0RCwweDk3LDB4NTksMHg4OSwweDQ2LDB4RkMsMHg4QiwweDVFLDB4RkMsMHg4MywweEVCLDB4RkUsMHg4MywweEZCLDB4MDMsCi0weDc3LDB4MzMsMHhEMSwweEUzLDB4MkUsMHhGRiwweEE3LDB4OTksMHg2QSwweDY4LDB4QUMsMHgwMiwweDU2LDB4RTgsMHgxNywweDA2LAotMHg1OSwweDU5LDB4RUIsMHgyMywweDY4LDB4OEYsMHgwMiwweDU2LDB4RTgsMHgwQywweDA2LDB4NTksMHg1OSwweEVCLDB4MTgsMHg2OCwKLTB4NzUsMHgwMiwweDU2LDB4RTgsMHgwMSwweDA2LDB4NTksMHg1OSwweEVCLDB4MEQsMHg2OCwweEM2LDB4MDIsMHg1NiwweEU4LDB4RjYsCi0weDA1LDB4NTksMHg1OSwweEVCLDB4MDIsMHhFQiwweDAwLDB4NkEsMHgwMSwweDU2LDB4RTgsMHhDNywweEY4LDB4NTksMHg1OSwweEJGLAotMHgwMSwweDAwLDB4RUIsMHgzOCwweDY4LDB4REQsMHgwMiwweDU2LDB4RTgsMHhEQywweDA1LDB4NTksMHg1OSwweDZBLDB4MDEsMHg1NiwKLTB4RTgsMHhCMSwweEY4LDB4NTksMHg1OSwweEJGLDB4MDEsMHgwMCwweEVCLDB4MjIsMHhCOCwweEQwLDB4MzAsMHg4QiwweEY4LDB4ODksCi0weDQ0LDB4NTQsMHg4QSwweDQ0LDB4NjAsMHg4OCwweDQ0LDB4NUQsMHhFQiwweDEyLDB4QjgsMHhFMCwweDIwLDB4OEIsMHhGOCwweDg5LAotMHg0NCwweDU0LDB4OEEsMHg0NCwweDVFLDB4ODgsMHg0NCwweDVELDB4RUIsMHgwMiwweEVCLDB4MDAsMHhFQiwweDAyLDB4RUIsMHgwMCwKLTB4RUIsMHgwMCwweEU5LDB4NDEsMHhGQywweDVGLDB4NUUsMHhDOSwweEMzLDB4MTksMHg2QSwweDI0LDB4NkEsMHgyRiwweDZBLDB4M0EsCi0weDZBLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDQsMHgwMCwweDQxLDB4MDAsMHg0MiwweDAwLDB4NDMsMHgwMCwweDQ0LAotMHgwMCwweDgwLDB4MDAsMHg4MSwweDAwLDB4ODIsMHgwMCwweEZGLDB4MDAsMHgxNywweDY5LDB4NTQsMHg2QSwweDdBLDB4NkEsMHhBNSwKLTB4NjksMHg1MiwweDY5LDB4OTQsMHg2OSwweDZBLDB4NkEsMHg2NywweDY5LDB4NTIsMHg2OSwweDdGLDB4NjksMHg2NywweDY5LDB4NEMsCi0weDY5LDB4RjQsMHg2OCwweDc2LDB4NjgsMHhCMiwweDY4LDB4RUUsMHg2OCwweEY1LDB4NjcsMHgwMCwweDY4LDB4MTIsMHg2OCwweEY1LAotMHg2NywweDlELDB4NjcsMHhBOCwweDY3LDB4QjQsMHg2NywweDlELDB4NjcsMHgwMCwweDAwLDB4MDEsMHgwMCwweEYwLDB4MTAsMHhFMCwKLTB4MjAsMHhEMCwweDMwLDB4MjcsMHg2OCwweEYyLDB4NjYsMHhDMywweDY3LDB4MjMsMHg2NywweDEyLDB4NjcsMHhDOCwweDA0LDB4MDAsCi0weDAwLDB4NTYsMHg1NywweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1OSwweDk4LDB4ODksMHg0NiwweEZDLDB4NkEsMHgwOSwweDhCLAotMHg0NiwweEZDLDB4MDUsMHg4NCwweDAxLDB4NTAsMHhFOCwweDkzLDB4MDgsMHg1OSwweDU5LDB4OEIsMHhGOCwweDhCLDB4QzcsMHgyNSwKLTB4MDAsMHhGMCwweDNELDB4MDAsMHgxMCwweDc1LDB4NTUsMHg4QiwweEM3LDB4MjUsMHhGMCwweDAwLDB4M0QsMHhGMCwweDAwLDB4NzUsCi0weDRCLDB4OEIsMHhDNywweDI1LDB4MDAsMHgwRiwweEMxLDB4RjgsMHgwOCwweDg5LDB4NDYsMHhGRSwweDhCLDB4NDQsMHgwNCwweDNCLAotMHg0NiwweEZFLDB4N0QsMHgwNSwweDMzLDB4QzAsMHhFOSwweEVGLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwKLTB4MDAsMHgyQiwweEQwLDB4M0IsMHg1NiwweEZFLDB4NzQsMHgwNSwweDMzLDB4QzAsMHhFOSwweERCLDB4MDAsMHhDNywweDQ0LDB4MDIsCi0weDA0LDB4MDksMHg4QSwweDQ2LDB4RkUsMHg4OCwweDQ0LDB4NUYsMHg4OCwweDQ0LDB4NUQsMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLAotMHhDNywweDg3LDB4RkMsMHgwOCwweDA0LDB4MDksMHhCOCwweEYwLDB4MTAsMHhFOSwweEJDLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwMCwKLTB4RjAsMHgzRCwweDAwLDB4MjAsMHg3NSwweDUyLDB4OEIsMHhDNywweDI1LDB4RjAsMHgwMCwweDNELDB4RTAsMHgwMCwweDc1LDB4NDgsCi0weDhCLDB4QzcsMHgyNSwweDAwLDB4MEYsMHhDMSwweEY4LDB4MDgsMHg4OSwweDQ2LDB4RkUsMHg4MywweDdFLDB4RkUsMHgwOCwweDdFLAotMHgwNSwweDMzLDB4QzAsMHhFOSwweDkyLDB4MDAsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwweDAwLDB4MkIsMHhEMCwKLTB4M0IsMHg1NiwweEZFLDB4NzQsMHgwNSwweDMzLDB4QzAsMHhFQiwweDdGLDB4OTAsMHhDNywweDQ0LDB4MDIsMHgwQywweDA5LDB4OEEsCi0weDQ2LDB4RkUsMHg4OCwweDQ0LDB4NUUsMHg4OCwweDQ0LDB4NUQsMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLDB4QzcsMHg4NywweEZDLAotMHgwOCwweDBDLDB4MDksMHhCOCwweEUwLDB4MjAsMHhFQiwweDYwLDB4OEIsMHhDNywweDI1LDB4MDAsMHhGMCwweDNELDB4MDAsMHgzMCwKLTB4NzUsMHg1MiwweDhCLDB4QzcsMHgyNSwweEYwLDB4MDAsMHgzRCwweEQwLDB4MDAsMHg3NSwweDQ4LDB4OEIsMHhDNywweDI1LDB4MDAsCi0weDBGLDB4QzEsMHhGOCwweDA4LDB4ODksMHg0NiwweEZFLDB4OEIsMHg0NCwweDA0LDB4M0IsMHg0NiwweEZFLDB4N0QsMHgwNCwweDMzLAotMHhDMCwweEVCLDB4MzUsMHg4QiwweEM3LDB4MjUsMHgwRiwweDAwLDB4QkEsMHgwRiwweDAwLDB4MkIsMHhEMCwweDNCLDB4NTYsMHhGRSwKLTB4NzQsMHgwNCwweDMzLDB4QzAsMHhFQiwweDIyLDB4QzcsMHg0NCwweDAyLDB4MTQsMHgwOSwweDhBLDB4NDYsMHhGRSwweDg4LDB4NDQsCi0weDYwLDB4ODgsMHg0NCwweDVELDB4OEIsMHg1RSwweEZDLDB4RDEsMHhFMywweEM3LDB4ODcsMHhGQywweDA4LDB4MTQsMHgwOSwweEI4LAotMHhEMCwweDMwLDB4RUIsMHgwNCwweDMzLDB4QzAsMHhFQiwweDAwLDB4NUYsMHg1RSwweEM5LDB4QzMsMHhDOCwweDA2LDB4MDAsMHgwMCwKLTB4NTYsMHg4QiwweDc2LDB4MDQsMHg2QSwweDA4LDB4NTYsMHhFOCwweDM1LDB4MDQsMHg1OSwweDU5LDB4OEEsMHg0NCwweDU4LDB4MDQsCi0weDgwLDB4NTAsMHg1NiwweEU4LDB4MjksMHgwNCwweDU5LDB4NTksMHg4QiwweDQ0LDB4NTQsMHgzQiwweDQ0LDB4NTYsMHg3NSwweDBBLAotMHg4QSwweDQ0LDB4NUQsMHgzQSwweDQ0LDB4MkYsMHg3NSwweDAyLDB4RUIsMHg2NCwweDhCLDB4NDQsMHg1NCwweDg5LDB4NDQsMHg1NiwKLTB4OEIsMHg1QywweDAyLDB4OEEsMHg0NywweDAxLDB4ODgsMHg0NCwweDJGLDB4OEEsMHg0NCwweDVELDB4QjQsMHgwMCwweEMxLDB4RTAsCi0weDA4LDB4OEIsMHg1NCwweDU0LDB4MEIsMHhEMCwweDhBLDB4NDQsMHg1RCwweEI0LDB4MDAsMHhCQiwweDBGLDB4MDAsMHgyQiwweEQ4LAotMHgwQiwweEQzLDB4ODksMHg1NiwweEZFLDB4NkEsMHgxMCwweDhBLDB4NDQsMHg1OSwweDk4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwNSwKLTB4NDAsMHgwMSwweDgzLDB4RDIsMHgwMCwweDUyLDB4NTAsMHhFOCwweDU0LDB4MDgsMHg4MywweEM0LDB4MDYsMHg4OSwweDU2LDB4RkMsCi0weDg5LDB4NDYsMHhGQSwweDhCLDB4NDYsMHhGRSwweDA5LDB4NDYsMHhGQSwweDgzLDB4NEUsMHhGQywweDAwLDB4NkEsMHgxOSwweEZGLAotMHg3NiwweEZDLDB4RkYsMHg3NiwweEZBLDB4RTgsMHg3MywweDA3LDB4ODMsMHhDNCwweDA2LDB4RTgsMHhGRSwweDA3LDB4NUUsMHhDOSwKLTB4QzMsMHhDOCwweDFDLDB4MDAsMHgwMCwweDU2LDB4NTcsMHg4QiwweDVFLDB4MDQsMHg4QSwweDQ3LDB4NTksMHg5OCwweDhCLDB4RjAsCi0weDhCLDB4NUUsMHgwNCwweDhBLDB4NDcsMHg1RCwweEI0LDB4MDAsMHg4OSwweDQ2LDB4RTYsMHg4MywweDdFLDB4RTYsMHgwMCwweDdELAotMHgwQSwweDhCLDB4NUUsMHgwNCwweDhCLDB4NDcsMHgwNCwweDQ4LDB4ODksMHg0NiwweEU2LDB4OEIsMHg1RSwweDA0LDB4OEIsMHg0NywKLTB4MDQsMHgzQiwweDQ2LDB4RTYsMHg3RiwweDA1LDB4QzcsMHg0NiwweEU2LDB4MDAsMHgwMCwweDhCLDB4NUUsMHgwNCwweDhBLDB4NDYsCi0weEU2LDB4ODgsMHg0NywweDVELDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LDB4NDcsMHgwMiwweDIwLAotMHg4QiwweERFLDB4RDEsMHhFMywweDhCLDB4OUYsMHg1OSwweDAyLDB4QzYsMHg0NywweDAzLDB4MzAsMHg4QiwweERFLDB4RDEsMHhFMywKLTB4OEIsMHg5RiwweDYxLDB4MDIsMHhDNiwweDQ3LDB4MDIsMHgyMCwweDhCLDB4REUsMHhEMSwweEUzLDB4OEIsMHg5RiwweDYxLDB4MDIsCi0weEM2LDB4NDcsMHgwMywweDMwLDB4OEIsMHg0NiwweEU2LDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LAotMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweDg4LDB4NTcsMHgwMywweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGQSwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RkEsMHg4MywweDdFLDB4RkEsMHgwMCwweDc0LDB4MTgsMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLAotMHgwMCwweDMzLDB4RDIsMHhGNywweEYzLDB4ODAsMHhDMiwweDMwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwKLTB4ODgsMHg1NywweDAyLDB4OEIsMHg0NiwweEU2LDB4ODksMHg0NiwweEZBLDB4ODMsMHg3RSwweEZBLDB4MDAsMHg3NCwweDE4LDB4OEIsCi0weDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwweEUzLAotMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LDB4NTcsMHgwMywweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGQSwweDMzLDB4RDIsMHhGNywKLTB4RjMsMHg4OSwweDQ2LDB4RkEsMHg4MywweDdFLDB4RkEsMHgwMCwweDc0LDB4MTgsMHg4QiwweDQ2LDB4RkEsMHhCQiwweDBBLDB4MDAsCi0weDMzLDB4RDIsMHhGNywweEYzLDB4ODAsMHhDMiwweDMwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LAotMHg1NywweDAyLDB4OEIsMHg1RSwweEU2LDB4RDEsMHhFMywweEZGLDB4QjcsMHgxMiwweDAyLDB4NkEsMHgwMCwweEZGLDB4NzYsMHgwNCwKLTB4RTgsMHhEMSwweEY2LDB4ODMsMHhDNCwweDA2LDB4NjgsMHhEMywweDBGLDB4NkEsMHgwMSwweEZGLDB4NzYsMHgwNCwweEU4LDB4QzMsCi0weEY2LDB4ODMsMHhDNCwweDA2LDB4RkYsMHg3NiwweEU2LDB4NTYsMHhFOCwweDAxLDB4OTMsMHg1OSwweDU5LDB4ODksMHg1NiwweEYyLAotMHg4OSwweDQ2LDB4RjAsMHhGRiwweDc2LDB4RTYsMHg1NiwweEU4LDB4MTQsMHg5MywweDU5LDB4NTksMHg4OSwweDU2LDB4RUUsMHg4OSwKLTB4NDYsMHhFQywweDlDLDB4RkEsMHhDNCwweDVFLDB4RjAsMHgyNiwweDhCLDB4MDcsMHg4OSwweDQ2LDB4RUEsMHhDNCwweDVFLDB4RUMsCi0weDI2LDB4OEIsMHgwNywweDg5LDB4NDYsMHhFOCwweEJBLDB4NTAsMHhGRiwweEVELDB4ODksMHg0NiwweEZFLDB4OUQsMHhDNywweDQ2LAotMHhFNCwweDAxLDB4MDAsMHhFOCwweEVFLDB4QTAsMHhCQSwweDUwLDB4RkYsMHhFRCwweDg5LDB4NDYsMHhGQywweDhCLDB4NDYsMHhGQywKLTB4MkIsMHg0NiwweEZFLDB4M0QsMHhFOCwweDAzLDB4NzMsMHgwMywweEU5LDB4ODAsMHgwMSwweDlDLDB4RkEsMHhCQSwweDUwLDB4RkYsCi0weEVELDB4ODksMHg0NiwweEZDLDB4OEIsMHg0NiwweEZDLDB4MkIsMHg0NiwweEZFLDB4ODksMHg0NiwweEY4LDB4QzQsMHg1RSwweEYwLAotMHgyNiwweDhCLDB4MDcsMHgyQiwweDQ2LDB4RUEsMHg4OSwweDQ2LDB4RjYsMHhDNCwweDVFLDB4RjAsMHgyNiwweDhCLDB4MDcsMHg4OSwKLTB4NDYsMHhFQSwweEM0LDB4NUUsMHhFQywweDI2LDB4OEIsMHgwNywweDJCLDB4NDYsMHhFOCwweDg5LDB4NDYsMHhGNCwweEM0LDB4NUUsCi0weEVDLDB4MjYsMHg4QiwweDA3LDB4ODksMHg0NiwweEU4LDB4QkEsMHg1MCwweEZGLDB4RUQsMHg4OSwweDQ2LDB4RkUsMHg5RCwweDgxLAotMHg3RSwweEY4LDB4RTgsMHgwMywweDc2LDB4MUMsMHhGRiwweDc2LDB4RjgsMHhGRiwweDc2LDB4RjYsMHhFOCwweDc2LDB4MDEsMHg1OSwKLTB4NTksMHg4OSwweDQ2LDB4RjYsMHhGRiwweDc2LDB4RjgsMHhGRiwweDc2LDB4RjQsMHhFOCwweDY4LDB4MDEsMHg1OSwweDU5LDB4ODksCi0weDQ2LDB4RjQsMHhCRiwweDBFLDB4MDAsMHhFQiwweDE3LDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LAotMHgwMSwweDIwLDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweEM2LDB4MDEsMHgyMCwweDQ3LDB4ODMsMHhGRiwKLTB4MTEsMHg3NiwweEU0LDB4OEIsMHhERSwweEQxLDB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweEM2LDB4NDcsMHgwRCwweDMwLDB4OEIsCi0weERFLDB4RDEsMHhFMywweDhCLDB4OUYsMHg2MSwweDAyLDB4QzYsMHg0NywweDBELDB4MzAsMHg4MywweDdFLDB4RjYsMHgwOSwweDc3LAotMHgwNSwweEI4LDB4MEQsMHgwMCwweEVCLDB4MjYsMHg4MywweDdFLDB4RjYsMHg2MywweDc3LDB4MDUsMHhCOCwweDBFLDB4MDAsMHhFQiwKLTB4MUIsMHg4MSwweDdFLDB4RjYsMHhFNywweDAzLDB4NzcsMHgwNSwweEI4LDB4MEYsMHgwMCwweEVCLDB4MEYsMHg4MSwweDdFLDB4RjYsCi0weDBGLDB4MjcsMHg3NywweDA1LDB4QjgsMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MTEsMHgwMCwweDhCLDB4RjgsMHhFQiwweDI1LAotMHg4QiwweDQ2LDB4RjYsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NTksMHgwMiwweDg4LDB4MTEsMHg0RiwweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGNiwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RjYsMHg4MywweDdFLDB4RjYsMHgwMCwweDc1LDB4RDUsMHg4MywweDdFLDB4RjQsMHgwOSwweDc3LAotMHgwNSwweEI4LDB4MEQsMHgwMCwweEVCLDB4MjYsMHg4MywweDdFLDB4RjQsMHg2MywweDc3LDB4MDUsMHhCOCwweDBFLDB4MDAsMHhFQiwKLTB4MUIsMHg4MSwweDdFLDB4RjQsMHhFNywweDAzLDB4NzcsMHgwNSwweEI4LDB4MEYsMHgwMCwweEVCLDB4MEYsMHg4MSwweDdFLDB4RjQsCi0weDBGLDB4MjcsMHg3NywweDA1LDB4QjgsMHgxMCwweDAwLDB4RUIsMHgwMywweEI4LDB4MTEsMHgwMCwweDhCLDB4RjgsMHhFQiwweDI1LAotMHg4QiwweDQ2LDB4RjQsMHhCQiwweDBBLDB4MDAsMHgzMywweEQyLDB4RjcsMHhGMywweDgwLDB4QzIsMHgzMCwweDhCLDB4REUsMHhEMSwKLTB4RTMsMHg4QiwweDlGLDB4NjEsMHgwMiwweDg4LDB4MTEsMHg0RiwweEJCLDB4MEEsMHgwMCwweDhCLDB4NDYsMHhGNCwweDMzLDB4RDIsCi0weEY3LDB4RjMsMHg4OSwweDQ2LDB4RjQsMHg4MywweDdFLDB4RjQsMHgwMCwweDc1LDB4RDUsMHg4QiwweERFLDB4RDEsMHhFMywweEZGLAotMHhCNywweDU5LDB4MDIsMHhGRiwweDc2LDB4MDQsMHhFOCwweDZFLDB4MDAsMHg1OSwweDU5LDB4OEIsMHhERSwweEQxLDB4RTMsMHhGRiwKLTB4QjcsMHg2MSwweDAyLDB4RkYsMHg3NiwweDA0LDB4RTgsMHg1RSwweDAwLDB4NTksMHg1OSwweDZBLDB4MDAsMHhGRiwweDc2LDB4MDQsCi0weEU4LDB4MzEsMHhGMywweDU5LDB4NTksMHg4QiwweEQ4LDB4ODMsMHhGQiwweDA0LDB4NzcsMHgxRiwweEQxLDB4RTMsMHgyRSwweEZGLAotMHhBNywweDFCLDB4NzAsMHhFQiwweDIyLDB4QzcsMHg0NiwweEU0LDB4MDAsMHgwMCwweEZGLDB4NEUsMHhFNiwweEVCLDB4MEMsMHhDNywKLTB4NDYsMHhFNCwweDAwLDB4MDAsMHhGRiwweDQ2LDB4RTYsMHhFQiwweDAyLDB4RUIsMHgwMCwweDgzLDB4N0UsMHhFNCwweDAwLDB4NzQsCi0weDAzLDB4RTksMHgyQSwweEZFLDB4RTksMHhENCwweEZDLDB4NUYsMHg1RSwweEM5LDB4QzMsMHhGMywweDZGLDB4RjUsMHg2RiwweEZGLAotMHg2RiwweEYzLDB4NkYsMHgwOSwweDcwLDB4NTUsMHg4QiwweEVDLDB4OEIsMHg0NiwweDA0LDB4QjksMHhFOCwweDAzLDB4RjcsMHhFMSwKLTB4OEIsMHg0RSwweDA2LDB4RjcsMHhGMSwweDVELDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwweDhCLDB4NzYsMHgwNiwweEVCLDB4MEUsCi0weDhCLDB4REUsMHg0NiwweDhBLDB4MDcsMHg1MCwweEZGLDB4NzYsMHgwNCwweEU4LDB4MzMsMHgwMCwweDU5LDB4NTksMHg4MCwweDNDLAotMHgwMCwweDc1LDB4RUQsMHhFQiwweDAwLDB4NUUsMHg1RCwweEMzLDB4NTUsMHg4QiwweEVDLDB4NTYsMHg4QiwweDc2LDB4MDYsMHhFQiwKLTB4MTQsMHg4QiwweERFLDB4NDYsMHg4QSwweDA3LDB4NTAsMHhGRiwweDc2LDB4MDQsMHhFOCwweDQ1LDB4MDAsMHg1OSwweDU5LDB4MEIsCi0weEMwLDB4NzQsMHgwMiwweEVCLDB4MDcsMHg4MCwweDNDLDB4MDAsMHg3NSwweEU3LDB4RUIsMHgwMCwweDVFLDB4NUQsMHhDMywweEM4LAotMHgwMiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwweEZFLDB4OUMsMHhGQSwKLTB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLDB4RUUsMHhCQSwweDAyLDB4MDAsMHhFQywweEE4LDB4MDIsMHg3NCwweDA2LDB4OUQsCi0weEU4LDB4OTEsMHg5RSwweEVCLDB4RTksMHhCQSwweDAwLDB4MDAsMHg4QSwweDQ2LDB4MDYsMHhFRSwweDlELDB4RUIsMHgwMCwweDVFLAotMHhDOSwweEMzLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksMHg0NiwKLTB4RkUsMHhFOCwweEU2LDB4QTEsMHg4OSwweDQ2LDB4RkMsMHhFOCwweEUwLDB4QTEsMHgyQiwweDQ2LDB4RkMsMHgzRCwweEI4LDB4MEIsCi0weDc2LDB4MDUsMHhCOCwweDAxLDB4MDAsMHhFQiwweDIzLDB4OUMsMHhGQSwweDhBLDB4NDYsMHhGRSwweEJBLDB4RkUsMHgwMCwweEVFLAotMHhCQSwweDAyLDB4MDAsMHhFQywweEE4LDB4MDIsMHg3NCwweDA2LDB4OUQsMHhFOCwweDQ4LDB4OUUsMHhFQiwweEQ5LDB4QkEsMHgwMCwKLTB4MDAsMHg4QSwweDQ2LDB4MDYsMHhFRSwweDlELDB4MzMsMHhDMCwweEVCLDB4MDAsMHg1RSwweEM5LDB4QzMsMHhDOCwweDA0LDB4MDAsCi0weDAwLDB4NTYsMHg1NywweDhCLDB4NzYsMHgwNCwweDgzLDB4N0UsMHgwNiwweDAwLDB4NzQsMHgwNywweDU2LDB4RTgsMHgwMywweDAxLAotMHg1OSwweEVCLDB4MDUsMHg1NiwweEU4LDB4QTIsMHgwMCwweDU5LDB4ODgsMHg0NiwweEZGLDB4ODAsMHg3RSwweEZGLDB4MDgsMHg3NywKLTB4MDYsMHg4QSwweDQ2LDB4RkYsMHhFOSwweDg0LDB4MDAsMHg4MCwweDdFLDB4RkYsMHgwRiwweDc2LDB4MDMsMHhFQiwweDc5LDB4OTAsCi0weDhBLDB4NDYsMHhGRiwweEI0LDB4MDAsMHgyRCwweDBBLDB4MDAsMHg4QiwweEQ4LDB4ODMsMHhGQiwweDA0LDB4NzcsMHg2NywweEQxLAotMHhFMywweDJFLDB4RkYsMHhBNywweEFGLDB4NzEsMHhCMCwweDAwLDB4RUIsMHg2MSwweDU2LDB4RTgsMHg2QiwweDAwLDB4NTksMHhCNCwKLTB4MDAsMHgyNSwweDBGLDB4MDAsMHg4OSwweDQ2LDB4RkMsMHg1NiwweEU4LDB4NUUsMHgwMCwweDU5LDB4QjQsMHgwMCwweDhCLDB4RjgsCi0weDU2LDB4RTgsMHg1NSwweDAwLDB4NTksMHhCNCwweDAwLDB4QzEsMHhFMCwweDA4LDB4OEIsMHhENywweDAzLDB4RDAsMHg4QiwweEZBLAotMHg4QiwweDVFLDB4RkMsMHhEMSwweEUzLDB4ODksMHg3OCwweDMwLDB4RUIsMHgyRSwweDU2LDB4RTgsMHgzQiwweDAwLDB4NTksMHg4OCwKLTB4NDQsMHg1QiwweEVCLDB4MjQsMHg1NiwweEU4LDB4MzEsMHgwMCwweDU5LDB4ODgsMHg0NCwweDUwLDB4NTYsMHhFOCwweDI5LDB4MDAsCi0weDU5LDB4ODgsMHg0NCwweDUxLDB4NTYsMHhFOCwweDIxLDB4MDAsMHg1OSwweDg4LDB4NDQsMHg1MiwweDU2LDB4RTgsMHgxOSwweDAwLAotMHg1OSwweDg4LDB4NDQsMHg1MywweEVCLDB4MDIsMHhFQiwweDAwLDB4RTksMHg1QiwweEZGLDB4NUYsMHg1RSwweEM5LDB4QzMsMHg0NiwKLTB4NzEsMHhBNiwweDcxLDB4NEEsMHg3MSwweDdBLDB4NzEsMHg4NCwweDcxLDB4QzgsMHgwNCwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsCi0weDA0LDB4OEEsMHg0NCwweDVBLDB4OTgsMHg4OSwweDQ2LDB4RkUsMHg5QywweEZBLDB4OEEsMHg0NiwweEZFLDB4QkEsMHhGRSwweDAwLAotMHhFRSwweEJBLDB4MDIsMHgwMCwweEVDLDB4QTgsMHgwMSwweDc1LDB4MDYsMHg5RCwweEU4LDB4NTcsMHg5RCwweEVCLDB4RTksMHhCQSwKLTB4MDAsMHgwMCwweEVDLDB4ODgsMHg0NiwweEZELDB4OUQsMHg4QSwweDQ2LDB4RkQsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4QzgsCi0weDAyLDB4MDAsMHgwMCwweDU2LDB4OEIsMHg3NiwweDA0LDB4OEEsMHg0NCwweDVBLDB4OTgsMHg4OSwweDQ2LDB4RkUsMHg5QywweEZBLAotMHg4QSwweDQ2LDB4RkUsMHhCQSwweEZFLDB4MDAsMHhFRSwweEJBLDB4MDIsMHgwMCwweEVDLDB4MzIsMHhFNCwweDI0LDB4MDEsMHg5RCwKLTB4NUUsMHhDOSwweEMzLDB4QzgsMHgwNiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNCwweDhBLDB4NDQsMHg1QSwweDk4LDB4ODksCi0weDQ2LDB4RkUsMHhFOCwweDg1LDB4QTAsMHg4OSwweDQ2LDB4RkEsMHhFOCwweDdGLDB4QTAsMHgyQiwweDQ2LDB4RkEsMHgzRCwweEI4LAotMHgwQiwweDc2LDB4MDQsMHhCMCwweDA4LDB4RUIsMHgyNCwweDlDLDB4RkEsMHg4QSwweDQ2LDB4RkUsMHhCQSwweEZFLDB4MDAsMHhFRSwKLTB4QkEsMHgwMiwweDAwLDB4RUMsMHhBOCwweDAxLDB4NzUsMHgwNiwweDlELDB4RTgsMHhFOCwweDlDLDB4RUIsMHhEQSwweEJBLDB4MDAsCi0weDAwLDB4RUMsMHg4OCwweDQ2LDB4RkQsMHg5RCwweDhBLDB4NDYsMHhGRCwweEVCLDB4MDAsMHg1RSwweEM5LDB4QzMsMHg1NSwweDhCLAotMHhFQywweDU2LDB4OEIsMHg1NiwweDA0LDB4OEEsMHg0NiwweDA2LDB4RUUsMHgzMywweEY2LDB4RUIsMHgwMywweDUwLDB4NTgsMHg0NiwKLTB4ODMsMHhGRSwweDE0LDB4N0MsMHhGOCwweDVFLDB4NUQsMHhDMywweEM4LDB4MDIsMHgwMCwweDAwLDB4NTYsMHg4QiwweDU2LDB4MDQsCi0weEVDLDB4ODgsMHg0NiwweEZGLDB4MzMsMHhGNiwweEVCLDB4MDMsMHg1MCwweDU4LDB4NDYsMHg4MywweEZFLDB4MTQsMHg3QywweEY4LAotMHg4QSwweDQ2LDB4RkYsMHhFQiwweDAwLDB4NUUsMHhDOSwweEMzLDB4QzgsMHgwMiwweDAwLDB4MDAsMHg1NiwweDU3LDB4OEIsMHg3NiwKLTB4MDQsMHg4MywweDNFLDB4QjAsMHgwQiwweDAwLDB4NzUsMHgxRiwweEJBLDB4ODgsMHgwMSwweEIwLDB4MDAsMHhFRSwweEJBLDB4ODYsCi0weDAxLDB4QjAsMHgwMCwweEVFLDB4NkEsMHgwOSwweDZBLDB4MDAsMHg2OCwweDMwLDB4MDEsMHhFOCwweDdELDB4MDEsMHg4MywweEM0LAotMHgwNiwweEM3LDB4MDYsMHhCMCwweDBCLDB4MDEsMHgwMCwweDZBLDB4MDksMHg4QiwweEM2LDB4MDUsMHg4MCwweDAxLDB4NTAsMHhFOCwKLTB4REEsMHgwMCwweDU5LDB4NTksMHg4QiwweEY4LDB4OEIsMHhDNywweEMxLDB4RTgsMHgwQywweDI1LDB4MEYsMHgwMCwweDg5LDB4NDYsCi0weEZFLDB4OEIsMHhDNywweEMxLDB4RTgsMHgwOCwweDI1LDB4MEYsMHgwMCwweDhCLDB4NTYsMHhGRSwweDgzLDB4RjIsMHgwQywweDNCLAotMHhDMiwweDc1LDB4MjEsMHg4QiwweEM3LDB4QzEsMHhFOCwweDA0LDB4MjUsMHgwRiwweDAwLDB4OEIsMHg1NiwweEZFLDB4ODMsMHhGMiwKLTB4MDYsMHgzQiwweEMyLDB4NzUsMHgwRiwweDhCLDB4QzcsMHgyNSwweDBGLDB4MDAsMHg4QiwweDU2LDB4RkUsMHg4MywweEYyLDB4MDksCi0weDNCLDB4QzIsMHg3NCwweDBELDB4NkEsMHgwNywweDU2LDB4RTgsMHgzOCwweDAwLDB4NTksMHg1OSwweEM3LDB4NDYsMHhGRSwweDA3LAotMHgwMCwweDhBLDB4NDYsMHhGRSwweDA0LDB4ODAsMHhBMiwweDMzLDB4MDIsMHg4QiwweEM2LDB4QkEsMHg2MiwweDAwLDB4RjcsMHhFQSwKLTB4OEEsMHg1NiwweEZFLDB4OEIsMHhEOCwweDg4LDB4OTcsMHg2QywweDAwLDB4NjgsMHgzMiwweDAyLDB4OEIsMHhDNiwweEJBLDB4NjIsCi0weDAwLDB4RjcsMHhFQSwweDA1LDB4MTQsMHgwMCwweDUwLDB4RTgsMHgwRSwweEZELDB4NTksMHg1OSwweEVCLDB4MDAsMHg1RiwweDVFLAotMHhDOSwweEMzLDB4QzgsMHgwMiwweDAwLDB4MDAsMHg1NiwweDhCLDB4NzYsMHgwNiwweDgzLDB4RTYsMHgwRiwweDhCLDB4QzYsMHhDMSwKLTB4RTAsMHgwQywweDhCLDB4RDYsMHg4MywweEYyLDB4MEMsMHhDMSwweEUyLDB4MDgsMHgwQiwweEMyLDB4OEIsMHhENiwweDgzLDB4RjIsCi0weDA2LDB4QzEsMHhFMiwweDA0LDB4MEIsMHhDMiwweDhCLDB4RDYsMHg4MywweEYyLDB4MDksMHgwQiwweEMyLDB4ODksMHg0NiwweEZFLAotMHg2QSwweDE5LDB4NkEsMHgxMCwweDhCLDB4NDYsMHgwNCwweDk5LDB4MDUsMHg0MCwweDAxLDB4ODMsMHhEMiwweDAwLDB4NTIsMHg1MCwKLTB4RTgsMHg2QiwweDAxLDB4ODMsMHhDNCwweDA2LDB4MEIsMHg0NiwweEZFLDB4ODMsMHhDQSwweDAwLDB4NTIsMHg1MCwweEU4LDB4OUEsCi0weDAwLDB4ODMsMHhDNCwweDA2LDB4RTgsMHgyNSwweDAxLDB4RUIsMHgwMCwweDVFLDB4QzksMHhDMywweDU1LDB4OEIsMHhFQywweDU2LAotMHg1NywweDMzLDB4RkYsMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhBMywweEZFLDB4NTksMHg1OSwweEIxLDB4MTAsMHgyQSwKLTB4NEUsMHgwNiwweEQzLDB4NjYsMHgwNCwweDMzLDB4RjYsMHhFQiwweDJFLDB4ODEsMHg3RSwweDA0LDB4MDAsMHg4MCwweDcyLDB4MDQsCi0weEIwLDB4MDEsMHhFQiwweDAyLDB4QjAsMHgwMCwweDUwLDB4NjgsMHg4OCwweDAxLDB4RTgsMHg4MSwweEZFLDB4NTksMHg1OSwweDZBLAotMHgwMywweDY4LDB4ODYsMHgwMSwweEU4LDB4NzcsMHhGRSwweDU5LDB4NTksMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg2RCwKLTB4RkUsMHg1OSwweDU5LDB4RDEsMHg2NiwweDA0LDB4NDYsMHgzQiwweDc2LDB4MDYsMHg3QywweENELDB4MzMsMHhGNiwweEVCLDB4MjQsCi0weEQxLDB4RTcsMHg2QSwweDAzLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg1NCwweEZFLDB4NTksMHg1OSwweDZBLDB4MDEsMHg2OCwweDg2LAotMHgwMSwweEU4LDB4NEEsMHhGRSwweDU5LDB4NTksMHg2OCwweDg4LDB4MDEsMHhFOCwweDVDLDB4RkUsMHg1OSwweDk4LDB4MjUsMHgwMSwKLTB4MDAsMHgwQiwweEY4LDB4NDYsMHg4MywweEZFLDB4MTAsMHg3QywweEQ3LDB4NkEsMHgwMCwweDY4LDB4ODYsMHgwMSwweEU4LDB4MkQsCi0weEZFLDB4NTksMHg1OSwweDhCLDB4QzcsMHhFQiwweDAwLDB4NUYsMHg1RSwweDVELDB4QzMsMHg1NSwweDhCLDB4RUMsMHg1NiwweDU3LAotMHg4QiwweDdFLDB4MDgsMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHgxMywweEZFLDB4NTksMHg1OSwweEI4LDB4MjAsMHgwMCwKLTB4MkIsMHhDNywweDUwLDB4RkYsMHg3NiwweDA2LDB4RkYsMHg3NiwweDA0LDB4RTgsMHhBMiwweDAwLDB4ODMsMHhDNCwweDA2LDB4ODksCi0weDU2LDB4MDYsMHg4OSwweDQ2LDB4MDQsMHgzMywweEY2LDB4RUIsMHg0NywweDgxLDB4N0UsMHgwNiwweDAwLDB4ODAsMHg3MiwweDBDLAotMHg3NSwweDA2LDB4ODMsMHg3RSwweDA0LDB4MDAsMHg3MiwweDA0LDB4QjAsMHgwMSwweEVCLDB4MDIsMHhCMCwweDAwLDB4NTAsMHg2OCwKLTB4ODgsMHgwMSwweEU4LDB4RDksMHhGRCwweDU5LDB4NTksMHg2QSwweDAzLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhDRiwweEZELDB4NTksCi0weDU5LDB4NkEsMHgwMSwweDY4LDB4ODYsMHgwMSwweEU4LDB4QzUsMHhGRCwweDU5LDB4NTksMHg2QSwweDAxLDB4RkYsMHg3NiwweDA2LAotMHhGRiwweDc2LDB4MDQsMHhFOCwweDU4LDB4MDAsMHg4MywweEM0LDB4MDYsMHg4OSwweDU2LDB4MDYsMHg4OSwweDQ2LDB4MDQsMHg0NiwKLTB4M0IsMHhGNywweDdDLDB4QjUsMHg2QSwweDAwLDB4NjgsMHg4NiwweDAxLDB4RTgsMHhBMiwweEZELDB4NTksMHg1OSwweDZBLDB4MDAsCi0weDY4LDB4ODYsMHgwMSwweEU4LDB4OTgsMHhGRCwweDU5LDB4NTksMHg1RiwweDVFLDB4NUQsMHhDMywweDU1LDB4OEIsMHhFQywweDU2LAotMHg2QSwweDAxLDB4NjgsMHg4NiwweDAxLDB4RTgsMHg4NiwweEZELDB4NTksMHg1OSwweDMzLDB4RjYsMHhFQiwweDAwLDB4NjgsMHg4OCwKLTB4MDEsMHhFOCwweDk0LDB4RkQsMHg1OSwweEE4LDB4MDEsMHg3NSwweDA4LDB4OEIsMHhDNiwweDQ2LDB4M0QsMHg2NCwweDAwLDB4N0MsCi0weEVELDB4NkEsMHgwMCwweDY4LDB4ODYsMHgwMSwweEU4LDB4NjUsMHhGRCwweDU5LDB4NTksMHg1RSwweDVELDB4QzMsMHhDOCwweDA0LAotMHgwMCwweDAwLDB4OEIsMHg0NiwweDA0LDB4OEIsMHg1NiwweDA2LDB4OEIsMHg0RSwweDA4LDB4RTMsMHgwNiwweEQxLDB4RTAsMHhEMSwKLTB4RDIsMHhFMiwweEZBLDB4ODksMHg0NiwweEZDLDB4ODksMHg1NiwweEZFLDB4OEIsMHg1NiwweEZFLDB4OEIsMHg0NiwweEZDLDB4RUIsCi0weDAwLDB4QzksMHhDMywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHg1MCwweDcyLDB4NjUsMHg3NiwweDY5LDB4NkYsMHg3NSwweDczLDB4MjAsMHg0RCwweDY1LDB4NkUsMHg3NSwweDAwLDB4NDIsMHg2NSwKLTB4NjcsMHg2OSwweDZFLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsCi0weDIwLDB4MzAsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMyLAotMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMywweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM0LDB4MDAsMHg1MCwKLTB4NkYsMHg3MiwweDc0LDB4MjAsMHgzNSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM2LDB4MDAsMHg1MCwweDZGLDB4NzIsCi0weDc0LDB4MjAsMHgzNywweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDM4LDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLAotMHgzOSwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLDB4MzAsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwKLTB4MzEsMHgwMCwweDUwLDB4NkYsMHg3MiwweDc0LDB4MjAsMHgzMSwweDMyLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsCi0weDMzLDB4MDAsMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4MzEsMHgzNCwweDAwLDB4NTAsMHg2RiwweDcyLDB4NzQsMHgyMCwweDMxLAotMHgzNSwweDAwLDB4OUMsMHgwMSwweEEzLDB4MDEsMHhBQSwweDAxLDB4QjEsMHgwMSwweEI4LDB4MDEsMHhCRiwweDAxLDB4QzYsMHgwMSwKLTB4Q0QsMHgwMSwweEQ0LDB4MDEsMHhEQiwweDAxLDB4RTIsMHgwMSwweEVBLDB4MDEsMHhGMiwweDAxLDB4RkEsMHgwMSwweDAyLDB4MDIsCi0weDBBLDB4MDIsMHgwOCwweDAwLDB4MDAsMHgwNywweDgxLDB4MDAsMHgwMywweDgwLDB4ODAsMHg4MCwweDlGLDB4OTEsMHg5NSwweDkxLAotMHg5RiwweDAwLDB4MDMsMHg4MSwweDg0LDB4OEUsMHg5NSwweDg0LDB4ODQsMHg4NCwweDg0LDB4MDAsMHgwMywweDgyLDB4ODQsMHg4NCwKLTB4ODQsMHg4NCwweDk1LDB4OEUsMHg4NCwweDAwLDB4MDQsMHg4OCwweDAwLDB4QjIsMHgwQiwweEM2LDB4MEIsMHhEQSwweDBCLDB4RUUsCi0weDBCLDB4MDIsMHgwQywweDE2LDB4MEMsMHgyQSwweDBDLDB4M0UsMHgwQywweDUyLDB4MEMsMHg3NywweDBDLDB4OUMsMHgwQywweEJFLAotMHgwQywweEUwLDB4MEMsMHgwMiwweDBELDB4MDEsMHg4MCwweDIwLDB4NTQsMHg2NSwweDczLDB4NzQsMHgyMCwweDUwLDB4NjEsMHg3MywKLTB4NzMsMHg2NSwweDY0LDB4MjAsMHgxRiwweDIwLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgwMiwweDAwLDB4MDEsCi0weDgwLDB4MjAsMHg0RCwweDY5LDB4NzMsMHg3MywweDY5LDB4NkUsMHg2NywweDIwLDB4NTIsMHg3OCwweDIwLDB4NDQsMHg2MSwweDc0LAotMHg2MSwweDFGLDB4MjAsMHg1MCwweDcyLDB4NjUsMHg3MywweDczLDB4MjAsMHg4MCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0MiwKLTB4NjEsMHg2NCwweDIwLDB4NTIsMHg3OCwweDIwLDB4NDQsMHg2MSwweDc0LDB4NjEsMHgyMCwweDFGLDB4MjAsMHg1MCwweDcyLDB4NjUsCi0weDczLDB4NzMsMHgyMCwweDgwLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDU4LDB4NkQsMHg3NCwweDcyLDB4MjAsMHg0MiwweDc1LAotMHg3MywweDc5LDB4MUYsMHgyMCwweDUwLDB4NzIsMHg2NSwweDczLDB4NzMsMHgyMCwweDgwLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwKLTB4NkUsMHg2RiwweDc0LDB4MjAsMHg2MywweDc1LDB4NzIsMHg3MiwweDY1LDB4NkUsMHg3NCwweDZDLDB4NzksMHgxRiwweDIwLDB4MjAsCi0weDY5LDB4NkQsMHg3MCwweDZDLDB4NjUsMHg2RCwweDY1LDB4NkUsMHg3NCwweDY1LDB4NjQsMHgwMiwweDAwLDB4MjQsMHgwRCwweDJGLAotMHgwRCwweDNBLDB4MEQsMHg0NSwweDBELDB4NTAsMHgwRCwweDVCLDB4MEQsMHg2NiwweDBELDB4NzEsMHgwRCwweDdDLDB4MEQsMHg4NywKLTB4MEQsMHg5MiwweDBELDB4OUQsMHgwRCwweEE4LDB4MEQsMHhCMywweDBELDB4QkUsMHgwRCwweEM5LDB4MEQsMHg1MywweDgwLDB4MkMsCi0weDMyLDB4NTQsMHg0NCwweDIwLDB4NTMsMHg4NiwweDJDLDB4MzMsMHg0NCwweDU0LDB4NTIsMHgyMCwweDUzLDB4ODIsMHgyQywweDMzLAotMHg1MiwweDU0LDB4NTMsMHgyMCwweDFGLDB4NTMsMHg4MSwweDJDLDB4MzIsMHg1MiwweDQ0LDB4MjAsMHg1MywweDg1LDB4MkMsMHgzMiwKLTB4NDMsMHg0NCwweDIwLDB4NTMsMHg4MywweDJDLDB4MzMsMHg0MywweDU0LDB4NTMsMHgyMCwweDUzLDB4ODQsMHgyQywweDMzLDB4NDQsCi0weDUzLDB4NTIsMHgyMCwweDUzLDB4ODcsMHgyQywweDMyLDB4NTIsMHg0OSwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg0NCwweDQzLDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MzAsMHgxRiwweDI3LDB4NTMsMHg4NSwKLTB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksCi0weDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLAotMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMxLDB4MzEsMHgxRiwweDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwKLTB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsCi0weDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDMsMHg1NCwweDUzLDB4MjAsMHgyRCwweDIwLAotMHg3MCwweDY5LDB4NkUsMHgyMCwweDM0LDB4MUYsMHgyNywweDUzLDB4ODMsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwKLTB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NDksMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLAotMHgzMiwweDFGLDB4MjcsMHg1MywweDg3LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwKLTB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsCi0weDIwLDB4MjAsMHg0NCwweDU0LDB4NTIsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM2LDB4MkYsMHgzOCwweDFGLAotMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwKLTB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsCi0weDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzUsMHgxRiwweDI3LDB4NTMsMHg4MiwweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwKLTB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg3OCwweDQ0LDB4MjAsCi0weDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMyLDB4MUYsMHgyNywweDUzLDB4ODEsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLAotMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywKLTB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LDB4NDQsMHgyMCwweDJELDB4MjAsCi0weDcwLDB4NjksMHg2RSwweDIwLDB4MzMsMHgxRiwweDI3LDB4NTMsMHg4MCwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLAotMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwKLTB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NDMsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksCi0weDZFLDB4MjAsMHgzNSwweDFGLDB4MjcsMHg1MywweDg1LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDUzLDB4NTIsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM1LDB4MUYsCi0weDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LAotMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwKLTB4NDMsMHg1NCwweDUzLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMSwweDFGLDB4MjcsMHg1MywweDgzLDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsMHg4OSwweDhBLAotMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwKLTB4MjAsMHgyOCwweDZFLDB4MkUsMHg2MywweDJFLDB4MjksMHgxRiwweDI3LDB4NTMsMHg4NywweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsCi0weDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDg4LDB4ODksMHg4QSwweDhCLDB4OEMsMHg4RCwweDhFLAotMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwKLTB4NkUsMHgyMCwweDMyLDB4MUYsMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzcsMHgxRiwKLTB4MjcsMHg1MywweDgyLDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDkwLDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsCi0weDg3LDB4ODgsMHg4OSwweDhBLDB4OEIsMHg4QywweDhELDB4OEUsMHg4RiwweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHg1MiwweDc4LDB4NDQsMHgyMCwweDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDM2LDB4MUYsMHgyNywweDUzLDB4ODEsMHgyRSwKLTB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4OTAsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4ODgsCi0weDg5LDB4OEEsMHg4QiwweDhDLDB4OEQsMHg4RSwweDhGLDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg1NCwweDc4LAotMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzMsMHgxRiwweDI3LDB4NTMsMHg4MCwweDJFLDB4MzAsMHg1MywKLTB4NEQsMHg4MSwweDgyLDB4NjMsMHg5MCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHg4OCwweDg5LDB4OEEsCi0weDhCLDB4OEMsMHg4RCwweDhFLDB4OEYsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDQ0LDB4NDMsMHg0NCwweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODUsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4NCwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwKLTB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDMsMHg1NCwweDUzLDB4MjAsCi0weDJELDB4MjAsMHg3MCwweDY5LDB4NkUsMHgyMCwweDMxLDB4MUYsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4MywweDJFLAotMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLDB4ODMsMHg4NCwweDg1LDB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwKLTB4MDEsMHg4MCwweDIwLDB4MjAsMHg1MiwweDQ5LDB4MjAsMHgyRCwweDIwLDB4MjgsMHg2RSwweDJFLDB4NjMsMHgyRSwweDI5LDB4MUYsCi0weDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg3LDB4MkUsMHgzMSwweDgxLDB4ODIsMHg2MywweDg4LDB4ODAsMHg4MSwweDgyLAotMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHg0NCwweDU0LDB4NTIsMHgyMCwKLTB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzIsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg2LDB4MkUsCi0weDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzcsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODIsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NzgsMHg0NCwweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODEsMHgyRSwKLTB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDU0LDB4NzgsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLAotMHgzMywweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODAsMHgyRSwweDMwLDB4NTMsMHg0RCwweDgxLDB4ODIsMHg2MywKLTB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsCi0weDQ0LDB4NDMsMHg0NCwweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzIsMHgzMCwweDFGLDB4MjAsMHgyMCwweDIwLAotMHgyMCwweDI3LDB4NTMsMHg4NSwweDJFLDB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwKLTB4ODYsMHg4NywweDI3LDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4NDQsMHg1MywweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsCi0weDY5LDB4NkUsMHgyMCwweDMxLDB4MzEsMHgxRiwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjcsMHg1MywweDg0LDB4MkUsMHgzMSwweDgxLAotMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwweDg3LDB4MjcsMHgwMiwweDAwLDB4MDEsMHg4MCwKLTB4MjAsMHgyMCwweDQzLDB4NTQsMHg1MywweDIwLDB4MkQsMHgyMCwweDcwLDB4NjksMHg2RSwweDIwLDB4MzQsMHgxRiwweDIwLDB4MjAsCi0weDIwLDB4MjAsMHgyNywweDUzLDB4ODMsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LAotMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NDksMHgyMCwweDJELDB4MjAsMHg3MCwKLTB4NjksMHg2RSwweDIwLDB4MzIsMHgzMiwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODcsMHgyRSwweDMxLDB4ODEsCi0weDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLAotMHgyMCwweDIwLDB4NDQsMHg1NCwweDUyLDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNiwweDJGLDB4MzgsMHgxRiwKLTB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODYsMHgyRSwweDMxLDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsCi0weDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDUyLDB4NTQsMHg1MywweDIwLAotMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzNSwweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLDB4ODIsMHgyRSwKLTB4MzEsMHg4MSwweDgyLDB4NjMsMHg4OCwweDgwLDB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDIwLDB4NTIsMHg3OCwweDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMiwweDFGLAotMHgyMCwweDIwLDB4MjAsMHgyMCwweDI3LDB4NTMsMHg4MSwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwKLTB4ODEsMHg4MiwweDgzLDB4ODQsMHg4NSwweDg2LDB4ODcsMHgyNywweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDU0LDB4NzgsCi0weDQ0LDB4MjAsMHgyRCwweDIwLDB4NzAsMHg2OSwweDZFLDB4MjAsMHgzMywweDFGLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyNywweDUzLAotMHg4MCwweDJFLDB4MzAsMHg1MywweDRELDB4ODEsMHg4MiwweDYzLDB4ODgsMHg4MCwweDgxLDB4ODIsMHg4MywweDg0LDB4ODUsMHg4NiwKLTB4ODcsMHgyNywweDAyLDB4MDAsMHg2OCwweDA0LDB4OTYsMHgwNCwweEI2LDB4MDMsMHgzQywweDA0LDB4MEUsMHgwNCwweDg5LDB4MDMsCi0weDVDLDB4MDMsMHhFMiwweDAzLDB4NjAsMHgwOCwweDhBLDB4MDgsMHhCRSwweDA3LDB4MzgsMHgwOCwweDBFLDB4MDgsMHg5NSwweDA3LAotMHg2QywweDA3LDB4RTYsMHgwNywweDFDLDB4MDUsMHg3NCwweDA1LDB4RkEsMHgwNSwweEM0LDB4MDQsMHhGMCwweDA0LDB4Q0MsMHgwNSwKLTB4QTAsMHgwNSwweDQ4LDB4MDUsMHg3OCwweDA2LDB4QzgsMHgwNiwweDQyLDB4MDcsMHgyOCwweDA2LDB4NTAsMHgwNiwweDE4LDB4MDcsCi0weEYwLDB4MDYsMHhBMCwweDA2LDB4MDAsMHgwMCwweEY0LDB4MDgsMHhGNCwweDA4LDB4RDQsMHgwRCwweDA0LDB4MDksMHgwNCwweDA5LAotMHgwNCwweDA5LDB4MDQsMHgwOSwweDQyLDB4MDAsMHgwQywweDA5LDB4MUMsMHgwOSwweEU1LDB4MEQsMHgwMiwweDAwLDB4MTQsMHgwOSwKLTB4MDQsMHgwOSwweEY0LDB4MEQsMHg0MywweDAwLDB4MUMsMHgwOSwweDBDLDB4MDksMHgwNSwweDBFLDB4MDAsMHgwNCwweDA0LDB4MDksCi0weDE0LDB4MDksMHgxMiwweDBFLDB4MkMsMHgwOSwweDJDLDB4MDksMHgyQywweDA5LDB4MkMsMHgwOSwweDAwLDB4MDAsMHgzQywweDA5LAotMHg2QywweDA5LDB4MUUsMHgwRSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHgwMCwweDAxLDB4NEMsMHgwOSwKLTB4MkMsMHgwOSwweDJELDB4MEUsMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4MDAsMHgwMiwweDVDLDB4MDksCi0weDNDLDB4MDksMHgzRCwweDBFLDB4NzQsMHgwOSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDAwLDB4MDMsMHg2QywweDA5LAotMHg0QywweDA5LDB4NEQsMHgwRSwweDc0LDB4MDksMHg3NCwweDA5LDB4NzQsMHgwOSwweDc0LDB4MDksMHhGRiwweDAwLDB4MkMsMHgwOSwKLTB4NUMsMHgwOSwweDAwLDB4MDAsMHgwMCwweDA1LDB4ODQsMHgwOSwweEVDLDB4MDksMHg1RSwweDBFLDB4RjQsMHgwOSwweEY0LDB4MDksCi0weEY0LDB4MDksMHhGNCwweDA5LDB4MDAsMHgwNiwweDk0LDB4MDksMHg3NCwweDA5LDB4NjgsMHgwRSwweEFDLDB4MEEsMHhBQywweDBBLAotMHhBQywweDBBLDB4QUMsMHgwQSwweDAwLDB4MDcsMHhBNCwweDA5LDB4ODQsMHgwOSwweDcyLDB4MEUsMHhCQywweDBBLDB4QkMsMHgwQSwKLTB4QkMsMHgwQSwweEJDLDB4MEEsMHgwMCwweDA4LDB4QjQsMHgwOSwweDk0LDB4MDksMHg3QywweDBFLDB4RDQsMHgwQSwweEQ0LDB4MEEsCi0weEQ0LDB4MEEsMHhENCwweDBBLDB4MDAsMHgwQiwweEM0LDB4MDksMHhBNCwweDA5LDB4ODMsMHgwRSwweEZDLDB4MEEsMHhGQywweDBBLAotMHhGQywweDBBLDB4RkMsMHgwQSwweDAwLDB4MEMsMHhENCwweDA5LDB4QjQsMHgwOSwweDkwLDB4MEUsMHgxNCwweDBCLDB4MTQsMHgwQiwKLTB4MTQsMHgwQiwweDE0LDB4MEIsMHgwMCwweDAyLDB4RTQsMHgwOSwweEM0LDB4MDksMHhBMCwweDBFLDB4MkMsMHgwQiwweDJDLDB4MEIsCi0weDJDLDB4MEIsMHgyQywweDBCLDB4MDQsMHgwMCwweEVDLDB4MDksMHhENCwweDA5LDB4MEUsMHgwMCwweEZGLDB4MDAsMHg3NCwweDA5LAotMHhFNCwweDA5LDB4MDAsMHgwMCwweDgyLDB4MDEsMHhGQywweDA5LDB4QTQsMHgwQSwweEFDLDB4MEUsMHg4MiwweDAyLDB4MDQsMHgwQSwKLTB4RjQsMHgwOSwweEFGLDB4MEUsMHg4MiwweDAzLDB4MEMsMHgwQSwweEZDLDB4MDksMHhCMiwweDBFLDB4ODIsMHgwNCwweDE0LDB4MEEsCi0weDA0LDB4MEEsMHhCNiwweDBFLDB4ODIsMHgwNSwweDFDLDB4MEEsMHgwQywweDBBLDB4QkMsMHgwRSwweDgyLDB4MDYsMHgyNCwweDBBLAotMHgxNCwweDBBLDB4QzAsMHgwRSwweDgyLDB4MDcsMHgyQywweDBBLDB4MUMsMHgwQSwweEM0LDB4MEUsMHg4MiwweDA4LDB4MzQsMHgwQSwKLTB4MjQsMHgwQSwweEM4LDB4MEUsMHg4MiwweDA5LDB4M0MsMHgwQSwweDJDLDB4MEEsMHhDQywweDBFLDB4ODIsMHgwQSwweDQ0LDB4MEEsCi0weDM0LDB4MEEsMHhEMSwweDBFLDB4ODIsMHgxMCwweDRDLDB4MEEsMHgzQywweDBBLDB4RDYsMHgwRSwweDgyLDB4MEIsMHg1NCwweDBBLAotMHg0NCwweDBBLDB4REIsMHgwRSwweDgyLDB4MTEsMHg1QywweDBBLDB4NEMsMHgwQSwweEUwLDB4MEUsMHg4MiwweDBDLDB4NjQsMHgwQSwKLTB4NTQsMHgwQSwweEU1LDB4MEUsMHg4MiwweDEyLDB4NkMsMHgwQSwweDVDLDB4MEEsMHhFQSwweDBFLDB4ODIsMHgwRCwweDc0LDB4MEEsCi0weDY0LDB4MEEsMHhFRiwweDBFLDB4ODIsMHgwRSwweDdDLDB4MEEsMHg2QywweDBBLDB4RjQsMHgwRSwweDgyLDB4MEYsMHg4NCwweDBBLAotMHg3NCwweDBBLDB4RkIsMHgwRSwweDgyLDB4MTMsMHg4QywweDBBLDB4N0MsMHgwQSwweDAyLDB4MEYsMHg4MiwweDE0LDB4OTQsMHgwQSwKLTB4ODQsMHgwQSwweDA5LDB4MEYsMHg4MiwweDE1LDB4OUMsMHgwQSwweDhDLDB4MEEsMHgxMCwweDBGLDB4ODIsMHgxNiwweEE0LDB4MEEsCi0weDk0LDB4MEEsMHgxNywweDBGLDB4ODIsMHgxNywweEY0LDB4MDksMHg5QywweDBBLDB4MUUsMHgwRiwweDgyLDB4MDIsMHhCNCwweDBBLAotMHhCNCwweDBBLDB4MjYsMHgwRiwweDgyLDB4MDMsMHhBQywweDBBLDB4QUMsMHgwQSwweDJELDB4MEYsMHg4MiwweDAwLDB4QzQsMHgwQSwKLTB4Q0MsMHgwQSwweDM0LDB4MEYsMHg4MiwweDAxLDB4Q0MsMHgwQSwweEJDLDB4MEEsMHgzRiwweDBGLDB4ODIsMHgwMiwweEJDLDB4MEEsCi0weEM0LDB4MEEsMHg0RCwweDBGLDB4ODIsMHgwMCwweERDLDB4MEEsMHhGNCwweDBBLDB4NTksMHgwRiwweDgyLDB4MDEsMHhFNCwweDBBLAotMHhENCwweDBBLDB4NjMsMHgwRiwweDgyLDB4MDIsMHhFQywweDBBLDB4REMsMHgwQSwweDZFLDB4MEYsMHg4MiwweDAzLDB4RjQsMHgwQSwKLTB4RTQsMHgwQSwweDdBLDB4MEYsMHg4MiwweDA0LDB4RDQsMHgwQSwweEVDLDB4MEEsMHg4NywweDBGLDB4ODIsMHgwMCwweDA0LDB4MEIsCi0weDBDLDB4MEIsMHg5MywweDBGLDB4ODIsMHgwMSwweDBDLDB4MEIsMHhGQywweDBBLDB4OUIsMHgwRiwweDgyLDB4MDIsMHhGQywweDBBLAotMHgwNCwweDBCLDB4QTcsMHgwRiwweDgyLDB4MDAsMHgxQywweDBCLDB4MjQsMHgwQiwweEIwLDB4MEYsMHg4MiwweDAxLDB4MjQsMHgwQiwKLTB4MTQsMHgwQiwweEI1LDB4MEYsMHg4MiwweDAyLDB4MTQsMHgwQiwweDFDLDB4MEIsMHhCRSwweDBGLDB4NDQsMHgwMCwweDM0LDB4MEIsCi0weEE0LDB4MEIsMHg5QywweDAxLDB4NDQsMHgwMSwweDNDLDB4MEIsMHgyQywweDBCLDB4QTMsMHgwMSwweDQ0LDB4MDIsMHg0NCwweDBCLAotMHgzNCwweDBCLDB4QUEsMHgwMSwweDQ0LDB4MDMsMHg0QywweDBCLDB4M0MsMHgwQiwweEIxLDB4MDEsMHg0NCwweDA0LDB4NTQsMHgwQiwKLTB4NDQsMHgwQiwweEI4LDB4MDEsMHg0NCwweDA1LDB4NUMsMHgwQiwweDRDLDB4MEIsMHhCRiwweDAxLDB4NDQsMHgwNiwweDY0LDB4MEIsCi0weDU0LDB4MEIsMHhDNiwweDAxLDB4NDQsMHgwNywweDZDLDB4MEIsMHg1QywweDBCLDB4Q0QsMHgwMSwweDQ0LDB4MDgsMHg3NCwweDBCLAotMHg2NCwweDBCLDB4RDQsMHgwMSwweDQ0LDB4MDksMHg3QywweDBCLDB4NkMsMHgwQiwweERCLDB4MDEsMHg0NCwweDBBLDB4ODQsMHgwQiwKLTB4NzQsMHgwQiwweEUyLDB4MDEsMHg0NCwweDBCLDB4OEMsMHgwQiwweDdDLDB4MEIsMHhFQSwweDAxLDB4NDQsMHgwQywweDk0LDB4MEIsCi0weDg0LDB4MEIsMHhGMiwweDAxLDB4NDQsMHgwRCwweDlDLDB4MEIsMHg4QywweDBCLDB4RkEsMHgwMSwweDQ0LDB4MEUsMHhBNCwweDBCLAotMHg5NCwweDBCLDB4MDIsMHgwMiwweDQ0LDB4MEYsMHgyQywweDBCLDB4OUMsMHgwQiwweDBBLDB4MDIsMHgxNywweDFGLDB4MEYsMHgyRiwKLTB4MDAsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDc0LDB4NzgsMHgyMCwweDYzLDB4NzAsMHg3MywweDIwLDB4MkEsCi0weDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwweDc0LDB4NzgsMHgyMCwweDYzLAotMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsMHg3OCwweDc4LDB4M0EsMHgyMCwKLTB4NzQsMHg3OCwweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLDB4MDIsMHgwMCwweDAxLDB4ODAsCi0weDc4LDB4NzgsMHgzQSwweDIwLDB4NzQsMHg3OCwweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwweDJBLDB4MkEsMHgyQSwweDJBLAotMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLDB4NzIsMHg2MywweDIwLDB4NjMsMHg3MCwweDczLDB4MjAsMHgyQSwKLTB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLDB4NzIsMHg2MywweDIwLDB4NjMsCi0weDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwweDc4LDB4NzgsMHgzQSwweDIwLAotMHg3MiwweDYzLDB4MjAsMHg2MywweDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsMHgwMiwweDAwLDB4MDEsMHhDMCwKLTB4NzgsMHg3OCwweDNBLDB4MjAsMHg3MiwweDYzLDB4MjAsMHg2MywweDcwLDB4NzMsMHgyMCwweDJBLDB4MkEsMHgyQSwweDJBLDB4MkEsCi0weDAyLDB4MDAsMHgwMSwweDgwLDB4NDksMHg2RSwweDczLDB4NzQsMHg2MSwweDZDLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLAotMHg2MiwweDYxLDB4NjMsMHg2QiwweDFGLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgyMCwweDc0LDB4NkYsMHgyMCwKLTB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0MywweDYxLDB4NjIsMHg2QywweDY1LDB4MjAsCi0weDc0LDB4NkYsMHgyMCwweDUyLDB4NjUsMHg2RCwweDZGLDB4NzQsMHg2NSwweDFGLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLAotMHg4MCwweDIwLDB4NzQsMHg2RiwweDIwLDB4NzMsMHg3NCwweDYxLDB4NzIsMHg3NCwweDAyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHg0QywKLTB4NkYsMHg2MywweDYxLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgyMCwweDFGLDB4MjAsCi0weDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwweDAyLDB4MDAsMHgwMSwweDgwLAotMHg1MiwweDY1LDB4NkQsMHg2RiwweDc0LDB4NjUsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgyMCwKLTB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwweDAyLDB4MDAsCi0weDAxLDB4ODAsMHgyMCwweDQ5LDB4NkUsMHg3NCwweDcyLDB4NkUsMHg2QywweDIwLDB4NEMsMHg2RiwweDZGLDB4NzAsMHg2MiwweDYxLAotMHg2MywweDZCLDB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLDB4MkUsMHgyRSwKLTB4MDIsMHgwMCwweDAxLDB4ODAsMHg1NCwweDcyLDB4NjEsMHg2RSwweDczLDB4NkQsMHg2OSwweDc0LDB4MjAsMHg1MCwweDYxLDB4NzQsCi0weDc0LDB4NjUsMHg3MiwweDZFLDB4MUYsMHgyMCwweDIwLDB4NTIsMHg3NSwweDZFLDB4NkUsMHg2OSwweDZFLDB4NjcsMHgyMCwweDJFLAotMHgyRSwweDJFLDB4MDIsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzAsMHgzQSwweDIwLDB4MjcsMHg0MywweDgwLDB4MDAsMHgwMSwKLTB4ODAsMHgyMCwweDIwLDB4MzEsMHgzQSwweDIwLDB4MjcsMHg0MywweDgxLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDMyLDB4M0EsCi0weDIwLDB4MjcsMHg0MywweDgyLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgyMCwweDMzLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4MywweDAwLAotMHgwMSwweDgwLDB4MjAsMHgyMCwweDM0LDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4NCwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNSwKLTB4M0EsMHgyMCwweDI3LDB4NDMsMHg4NSwweDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNiwweDNBLDB4MjAsMHgyNywweDQzLDB4ODYsCi0weDAwLDB4MDEsMHg4MCwweDIwLDB4MjAsMHgzNywweDNBLDB4MjAsMHgyNywweDQzLDB4ODcsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLAotMHgzOCwweDNBLDB4MjAsMHgyNywweDQzLDB4ODgsMHgwMCwweDAxLDB4ODAsMHgyMCwweDIwLDB4MzksMHgzQSwweDIwLDB4MjcsMHg0MywKLTB4ODksMHgwMCwweDAxLDB4ODAsMHgyMCwweDMxLDB4MzAsMHgzQSwweDIwLDB4MjcsMHg0MywweDhBLDB4MDAsMHgwMSwweDgwLDB4MjAsCi0weDMxLDB4MzEsMHgzQSwweDIwLDB4MjcsMHg0MywweDhCLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgzMSwweDMyLDB4M0EsMHgyMCwweDI3LAotMHg0MywweDhDLDB4MDAsMHgwMSwweDgwLDB4MjAsMHgzMSwweDMzLDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4RCwweDAwLDB4MDEsMHg4MCwKLTB4MjAsMHgzMSwweDM0LDB4M0EsMHgyMCwweDI3LDB4NDMsMHg4RSwweDAwLDB4MDEsMHg4MCwweDIwLDB4MzEsMHgzNSwweDNBLDB4MjAsCi0weDI3LDB4NDMsMHg4RiwweDAwLDB4MkEsMHgyQSwweDIwLDB4NEQsMHg2MSwweDY5LDB4NkUsMHgyMCwweDIwLDB4NEQsMHg2NSwweDZFLAotMHg3NSwweDIwLDB4MkEsMHgyQSwweDAwLDB4NEQsMHg2RiwweDZFLDB4NjksMHg3NCwweDZGLDB4NzIsMHgyMCwweDYxLDB4MjAsMHg1MCwKLTB4NkYsMHg3MiwweDc0LDB4MDAsMHg0RCwweDZGLDB4NkUsMHg2OSwweDc0LDB4NkYsMHg3MiwweDIwLDB4NjEsMHgyMCwweDUzLDB4NjksCi0weDY3LDB4NkUsMHg2MSwweDZDLDB4MDAsMHg0NSwweDczLDB4NzQsMHg2OSwweDZELDB4NjEsMHg3NCwweDY1LDB4MjAsMHg0MywweDUwLAotMHg1MywweDAwLDB4NDQsMHg2OSwweDYxLDB4NjcsMHg2RSwweDZGLDB4NzMsMHg3NCwweDY5LDB4NjMsMHg3MywweDAwLDB4NEMsMHg2RiwKLTB4NjMsMHg2MSwweDZDLDB4MjAsMHg0QywweDZGLDB4NkYsMHg3MCwweDYyLDB4NjEsMHg2MywweDZCLDB4MDAsMHg1MiwweDY1LDB4NkQsCi0weDZGLDB4NzQsMHg2NSwweDIwLDB4NEMsMHg2RiwweDZGLDB4NzAsMHg2MiwweDYxLDB4NjMsMHg2QiwweDAwLDB4NDksMHg2RSwweDc0LAotMHg3MiwweDZFLDB4NkMsMHgyMCwweDRDLDB4NkYsMHg2RiwweDcwLDB4NjIsMHg2MSwweDYzLDB4NkIsMHgwMCwweDU0LDB4NzIsMHg2MSwKLTB4NkUsMHg3MywweDZELDB4NjksMHg3NCwweDIwLDB4NTAsMHg2MSwweDc0LDB4NzQsMHg2NSwweDcyLDB4NkUsMHgwMCwweDQyLDB4NjEsCi0weDc1LDB4NjQsMHgyMCwweDUyLDB4NjEsMHg3NCwweDY1LDB4MDAsMHg0NCwweDYxLDB4NzQsMHg2MSwweDIwLDB4NDIsMHg2OSwweDc0LAotMHg3MywweDAwLDB4NTMsMHg3NCwweDZGLDB4NzAsMHgyMCwweDQyLDB4NjksMHg3NCwweDczLDB4MDAsMHg1MCwweDYxLDB4NzIsMHg2OSwKLTB4NzQsMHg3OSwweDAwLDB4NDQsMHg2MSwweDc0LDB4NjEsMHgyMCwweDUwLDB4NjEsMHg3NCwweDc0LDB4NjUsMHg3MiwweDZFLDB4MDAsCi0weDU0LDB4NzgsMHgyMCwweDQ2LDB4NkMsMHg2RiwweDc3LDB4MjAsMHg0MywweDZGLDB4NkUsMHg3NCwweDcyLDB4NkYsMHg2QywweDAwLAotMHg1MCwweDZGLDB4NzIsMHg3NCwweDIwLDB4NEUsMHg3NSwweDZELDB4NjIsMHg2NSwweDcyLDB4MDAsMHgzNSwweDMwLDB4MDAsMHgzNywKLTB4MzUsMHgwMCwweDMxLDB4MzEsMHgzMCwweDAwLDB4MzEsMHgzMywweDM0LDB4MkUsMHgzNSwweDAwLDB4MzEsMHgzNSwweDMwLDB4MDAsCi0weDMyLDB4MzAsMHgzMCwweDAwLDB4MzMsMHgzMCwweDMwLDB4MDAsMHgzNiwweDMwLDB4MzAsMHgwMCwweDMxLDB4MzIsMHgzMCwweDMwLAotMHgwMCwweDMxLDB4MzgsMHgzMCwweDMwLDB4MDAsMHgzMiwweDMwLDB4MzAsMHgzMCwweDAwLDB4MzIsMHgzNCwweDMwLDB4MzAsMHgwMCwKLTB4MzMsMHgzNiwweDMwLDB4MzAsMHgwMCwweDM0LDB4MzgsMHgzMCwweDMwLDB4MDAsMHgzNywweDMyLDB4MzAsMHgzMCwweDAwLDB4MzksCi0weDM2LDB4MzAsMHgzMCwweDAwLDB4MzEsMHgzOSwweDJDLDB4MzIsMHgzMCwweDMwLDB4MDAsMHgzMywweDM4LDB4MkMsMHgzNCwweDMwLAotMHgzMCwweDAwLDB4MzUsMHgzNiwweDJDLDB4MzAsMHgzMCwweDMwLDB4MDAsMHgzNSwweDM3LDB4MkMsMHgzNiwweDMwLDB4MzAsMHgwMCwKLTB4MzYsMHgzNCwweDJDLDB4MzAsMHgzMCwweDMwLDB4MDAsMHgzNywweDM2LDB4MkMsMHgzOCwweDMwLDB4MzAsMHgwMCwweDMxLDB4MzEsCi0weDM1LDB4MkMsMHgzMiwweDMwLDB4MzAsMHgwMCwweDM3LDB4MjAsMHg2MiwweDY5LDB4NzQsMHg3MywweDAwLDB4MzgsMHgyMCwweDYyLAotMHg2OSwweDc0LDB4NzMsMHgwMCwweDMxLDB4MjAsMHg3MywweDc0LDB4NkYsMHg3MCwweDIwLDB4NjIsMHg2OSwweDc0LDB4MDAsMHgzMSwKLTB4MkUsMHgzNSwweDIwLDB4NzMsMHg3NCwweDZGLDB4NzAsMHgyMCwweDYyLDB4NjksMHg3NCwweDczLDB4MDAsMHgzMiwweDIwLDB4NzMsCi0weDc0LDB4NkYsMHg3MCwweDIwLDB4NjIsMHg2OSwweDc0LDB4NzMsMHgwMCwweDZFLDB4NkYsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LAotMHg3NCwweDc5LDB4MDAsMHg2RiwweDY0LDB4NjQsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LDB4NzQsMHg3OSwweDAwLDB4NjUsMHg3NiwKLTB4NjUsMHg2RSwweDIwLDB4NzAsMHg2MSwweDcyLDB4NjksMHg3NCwweDc5LDB4MDAsMHg3MywweDcwLDB4NjEsMHg2MywweDY1LDB4MjAsCi0weDcwLDB4NjEsMHg3MiwweDY5LDB4NzQsMHg3OSwweDAwLDB4NkQsMHg2MSwweDcyLDB4NkIsMHgyMCwweDcwLDB4NjEsMHg3MiwweDY5LAotMHg3NCwweDc5LDB4MDAsMHg0MywweDZGLDB4NkMsMHg3NSwweDZELDB4NkUsMHg3MywweDAwLDB4NDIsMHg2MSwweDcyLDB4NjIsMHg2NSwKLTB4NzIsMHgyMCwweDUwLDB4NkYsMHg2QywweDY1LDB4MDAsMHg1NSwweDU1LDB4NTUsMHg1NSwweDU1LDB4MkUsMHgyRSwweDJFLDB4MDAsCi0weDRFLDB4NkYsMHg2RSwweDY1LDB4MDAsMHg1OCwweDZGLDB4NkUsMHgyRiwweDU4LDB4NkYsMHg2NiwweDY2LDB4MDAsMHg0MywweDU0LAotMHg1MywweDAwLDB4NTAsMHg3MiwweDY1LDB4NzMsMHg3MywweDIwLDB4ODAsMHgyMCwweDY2LDB4NkYsMHg3MiwweDIwLDB4NkQsMHg2NSwKLTB4NkUsMHg3NSwweDAwLDB4MjgsMHg2MywweDZGLDB4NzUsMHg2RSwweDc0LDB4NjksMHg2RSwweDY3LDB4MkUsMHgyRSwweDJFLDB4MjksCi0weDAwLDB4MDAsMHg2NSwweDRFLDB4NjQsMHgyMCwweDRGLDB4NjYsMHgyMCwweDQzLDB4NkYsMHg0NCwweDY1LDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsCi19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMi9pcDJiYXNlLmMgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYwppbmRleCA0MzVjY2ZjLi44MTU1ZTI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYworKysgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMmJhc2UuYwpAQCAtMjEsMTAgKzIxLDkgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiaXAydHlwZXMuaCIJCQotI2luY2x1ZGUgImZpcF9maXJtLmgiCQkvLyB0aGUgbWVhdAogCiBpbnQKLWlwMl9sb2FkbWFpbihpbnQgKiwgaW50ICAqLCB1bnNpZ25lZCBjaGFyICosIGludCApOyAvLyByZWYgaW50byBpcDJtYWluLmMKK2lwMl9sb2FkbWFpbihpbnQgKiwgaW50ICopOyAvLyByZWYgaW50byBpcDJtYWluLmMKIAogLyogTm90ZTogQWRkIGNvbXBpbGVkIGluIGRlZmF1bHRzIHRvIHRoZXNlIGFycmF5cywgbm90IHRvIHRoZSBzdHJ1Y3R1cmUKIAlpbiBpcDIuaCBhbnkgbG9uZ2VyLiAgVGhhdCBzdHJ1Y3R1cmUgV0lMTCBnZXQgb3ZlcnJpZGRlbgpAQCAtNTIsNyArNTEsNyBAQAogCQlpcnFbMF0gPSBpcnFbMV0gPSBpcnFbMl0gPSBpcnFbM10gPSAwOwogCX0KIAotCXJldHVybiBpcDJfbG9hZG1haW4oaW8saXJxLCh1bnNpZ25lZCBjaGFyICopZmlwX2Zpcm0sc2l6ZW9mKGZpcF9maXJtKSk7CisJcmV0dXJuIGlwMl9sb2FkbWFpbihpbywgaXJxKTsKIH0KIG1vZHVsZV9pbml0KGlwMl9pbml0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMi9pcDJtYWluLmMgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYwppbmRleCA3MDk1N2FjLi45YTIzOTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYworKysgYi9kcml2ZXJzL2NoYXIvaXAyL2lwMm1haW4uYwpAQCAtOTgsNiArOTgsOSBAQAogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9mbGlwLmg+CkBAIC0xNTUsOSArMTU4LDcgQEAKIHN0YXRpYyBjaGFyICpwY0lwbCAgICAJCSA9ICJpcDJpcGwiOwogCiAvLyBjaGVlenkga2x1ZGdlIG9yIGdlbml1cyAtIHlvdSBkZWNpZGU/Ci1pbnQgaXAyX2xvYWRtYWluKGludCAqLCBpbnQgKiwgdW5zaWduZWQgY2hhciAqLCBpbnQpOwotc3RhdGljIHVuc2lnbmVkIGNoYXIgKkZpcF9maXJtd2FyZTsKLXN0YXRpYyBpbnQgRmlwX2Zpcm13YXJlX3NpemU7CitpbnQgaXAyX2xvYWRtYWluKGludCAqLCBpbnQgKik7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIEZ1bmN0aW9uIFByb3RvdHlwZXMgKi8KQEAgLTIwOCw3ICsyMDksNyBAQAogc3RhdGljIGludCBEdW1wVHJhY2VCdWZmZXIoY2hhciBfX3VzZXIgKiwgaW50KTsKIHN0YXRpYyBpbnQgRHVtcEZpZm9CdWZmZXIoIGNoYXIgX191c2VyICosIGludCk7CiAKLXN0YXRpYyB2b2lkIGlwMl9pbml0X2JvYXJkKGludCk7CitzdGF0aWMgdm9pZCBpcDJfaW5pdF9ib2FyZChpbnQsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqKTsKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBmaW5kX2Vpc2FfYm9hcmQoaW50KTsKIAogLyoqKioqKioqKioqKioqKi8KQEAgLTM0NiwyNyArMzQ3LDYgQEAKIH0KIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIEZ1bmN0aW9uOiAgIGluaXRfbW9kdWxlKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiBQYXJhbWV0ZXJzOiBOb25lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogUmV0dXJuczogICAgU3VjY2VzcyAoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLS8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0vKiBEZXNjcmlwdGlvbjogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotLyogVGhpcyBpcyBhIHJlcXVpcmVkIGVudHJ5IHBvaW50IGZvciBhbiBpbnN0YWxsYWJsZSBtb2R1bGUuIEl0IHNpbXBseSBjYWxscyAgKi8KLS8qIHRoZSBkcml2ZXIgaW5pdGlhbGlzYXRpb24gZnVuY3Rpb24gYW5kIHJldHVybnMgd2hhdCBpdCByZXR1cm5zLiAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2lmZGVmIE1PRFVMRQotc3RhdGljIGludCBfX2luaXQKLWlwMl9pbml0X21vZHVsZSh2b2lkKQotewotI2lmZGVmIElQMkRFQlVHX0lOSVQKLQlwcmludGsgKEtFUk5fREVCVUcgIkxvYWRpbmcgbW9kdWxlIC4uLlxuIiApOwotI2VuZGlmCi0gICAgcmV0dXJuIDA7Ci19Ci1tb2R1bGVfaW5pdChpcDJfaW5pdF9tb2R1bGUpOwotI2VuZGlmIC8qIE1PRFVMRSAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogRnVuY3Rpb246ICAgY2xlYW51cF9tb2R1bGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qIFBhcmFtZXRlcnM6IE5vbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiBSZXR1cm5zOiAgICBOb3RoaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtNDk1LDggKzQ3NSwyNyBAQAogLyogU0FfUkFORE9NICAgLSBjYW4gYmUgc291cmNlIGZvciBjZXJ0LiByYW5kb20gbnVtYmVyIGdlbmVyYXRvcnMgKi8KICNkZWZpbmUgSVAyX1NBX0ZMQUdTCTAKIAorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpcm13YXJlICppcDJfcmVxdWVzdF9maXJtd2FyZSh2b2lkKQoreworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKworCXBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKCJpcDIiLCAwLCBOVUxMLCAwKTsKKwlpZiAoSVNfRVJSKHBkZXYpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIHBsYXRmb3JtIGRldmljZSBmb3IgaXAyXG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCWlmIChyZXF1ZXN0X2Zpcm13YXJlKCZmdywgImludGVsbGlwb3J0Mi5iaW4iLCAmcGRldi0+ZGV2KSkgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIGZpcm13YXJlICdpbnRlbGxpcG9ydDIuYmluJ1xuIik7CisJCWZ3ID0gTlVMTDsKKwl9CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocGRldik7CisJcmV0dXJuIGZ3OworfQorCiBpbnQKLWlwMl9sb2FkbWFpbihpbnQgKmlvcCwgaW50ICppcnFwLCB1bnNpZ25lZCBjaGFyICpmaXJtd2FyZSwgaW50IGZpcm1zaXplKSAKK2lwMl9sb2FkbWFpbihpbnQgKmlvcCwgaW50ICppcnFwKQogewogCWludCBpLCBqLCBib3g7CiAJaW50IGVyciA9IDA7CkBAIC01MDQsNiArNTAzLDcgQEAKIAlpMmVCb3JkU3RyUHRyIHBCID0gTlVMTDsKIAlpbnQgcmMgPSAtMTsKIAlzdGF0aWMgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXZfaSA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyA9IE5VTEw7CiAKIAlpcDJ0cmFjZSAoSVRSQ19OT19QT1JULCBJVFJDX0lOSVQsIElUUkNfRU5URVIsIDAgKTsKIApAQCAtNTM3LDkgKzUzNyw2IEBACiAJfQogCXBvbGxfb25seSA9ICFwb2xsX29ubHk7CiAKLQlGaXBfZmlybXdhcmUgPSBmaXJtd2FyZTsKLQlGaXBfZmlybXdhcmVfc2l6ZSA9IGZpcm1zaXplOwotCiAJLyogQW5ub3VuY2Ugb3VyIHByZXNlbmNlICovCiAJcHJpbnRrKCBLRVJOX0lORk8gIiVzIHZlcnNpb24gJXNcbiIsIHBjTmFtZSwgcGNWZXJzaW9uICk7CiAKQEAgLTY1OSwxMCArNjU2LDE4IEBACiAJCX0KIAl9CiAJZm9yICggaSA9IDA7IGkgPCBJUDJfTUFYX0JPQVJEUzsgKytpICkgeworCQkvKiBXZSBkb24ndCB3YW50IHRvIHJlcXVlc3QgdGhlIGZpcm13YXJlIHVubGVzcyB3ZSBoYXZlIGF0CisJCSAgIGxlYXN0IG9uZSBib2FyZCAqLwogCQlpZiAoIGkyQm9hcmRQdHJUYWJsZVtpXSAhPSBOVUxMICkgewotCQkJaXAyX2luaXRfYm9hcmQoIGkgKTsKKwkJCWlmICghZncpCisJCQkJZncgPSBpcDJfcmVxdWVzdF9maXJtd2FyZSgpOworCQkJaWYgKCFmdykKKwkJCQlicmVhazsKKwkJCWlwMl9pbml0X2JvYXJkKGksIGZ3KTsKIAkJfQogCX0KKwlpZiAoZncpCisJCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCiAJaXAydHJhY2UgKElUUkNfTk9fUE9SVCwgSVRSQ19JTklULCAyLCAwICk7CiAKQEAgLTc3OSw4ICs3ODQsNiBAQAogCXJldHVybiBlcnI7CiB9CiAKLUVYUE9SVF9TWU1CT0woaXAyX2xvYWRtYWluKTsKLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIEZ1bmN0aW9uOiAgIGlwMl9pbml0X2JvYXJkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiBQYXJhbWV0ZXJzOiBJbmRleCBvZiBib2FyZCBpbiBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAqLwpAQCAtNzkyLDcgKzc5NSw3IEBACiAvKiBhcmUgcmVwb3J0ZWQgb24gdGhlIGNvbnNvbGUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyB2b2lkCi1pcDJfaW5pdF9ib2FyZCggaW50IGJvYXJkbnVtICkKK2lwMl9pbml0X2JvYXJkKGludCBib2FyZG51bSwgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKIHsKIAlpbnQgaTsKIAlpbnQgbnBvcnRzID0gMCwgbmJveGVzID0gMDsKQEAgLTgxMiw3ICs4MTUsNyBAQAogCQlnb3RvIGVycl9pbml0aWFsaXplOwogCX0KIAotCWlmICggaWlEb3dubG9hZEFsbCAoIHBCLCAobG9hZEhkclN0clB0cilGaXBfZmlybXdhcmUsIDEsIEZpcF9maXJtd2FyZV9zaXplICkKKwlpZiAoIGlpRG93bmxvYWRBbGwgKCBwQiwgKGxvYWRIZHJTdHJQdHIpZnctPmRhdGEsIDEsIGZ3LT5zaXplICkKIAkgICAgIT0gSUlfRE9XTl9HT09EICkgewogCQlwcmludGsgKCBLRVJOX0VSUiAiSVAyOiBmYWlsZWQgdG8gZG93bmxvYWQgbG9hZHdhcmVcbiIgKTsKIAkJZ290byBlcnJfcmVsZWFzZV9yZWdpb247CkBAIC0yOTMxLDQyICsyOTM0LDExIEBACiBzdGF0aWMgaW50CiBpcDJfaXBsX29wZW4oIHN0cnVjdCBpbm9kZSAqcElub2RlLCBzdHJ1Y3QgZmlsZSAqcEZpbGUgKQogewotCXVuc2lnbmVkIGludCBpcGxtaW5vciA9IGltaW5vcihwSW5vZGUpOwotCWkyZUJvcmRTdHJQdHIgcEI7Ci0JaTJDaGFuU3RyUHRyICBwQ2g7CiAKICNpZmRlZiBJUDJERUJVR19JUEwKIAlwcmludGsgKEtFUk5fREVCVUcgIklQMklQTDogb3BlblxuIiApOwogI2VuZGlmCi0KLQlzd2l0Y2goaXBsbWlub3IpIHsKLQkvLyBUaGVzZSBhcmUgdGhlIElQTCBkZXZpY2VzCi0JY2FzZSAwOgotCWNhc2UgNDoKLQljYXNlIDg6Ci0JY2FzZSAxMjoKLQkJYnJlYWs7Ci0KLQkvLyBUaGVzZSBhcmUgdGhlIHN0YXR1cyBkZXZpY2VzCi0JY2FzZSAxOgotCWNhc2UgNToKLQljYXNlIDk6Ci0JY2FzZSAxMzoKLQkJYnJlYWs7Ci0KLQkvLyBUaGVzZSBhcmUgdGhlIGRlYnVnIGRldmljZXMKLQljYXNlIDI6Ci0JY2FzZSA2OgotCWNhc2UgMTA6Ci0JY2FzZSAxNDoKLQkJcEIgPSBpMkJvYXJkUHRyVGFibGVbaXBsbWlub3IgLyA0XTsKLQkJcENoID0gKGkyQ2hhblN0clB0cikgcEItPmkyZUNoYW5uZWxQdHI7Ci0JCWJyZWFrOwotCi0JLy8gVGhpcyBpcyB0aGUgdHJhY2UgZGV2aWNlCi0JY2FzZSAzOgotCQlicmVhazsKLQl9CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2lwMjctcnRjLmMgYi9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYwppbmRleCA4NmU2NTM4Li5lYzlkMDQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYworKysgYi9kcml2ZXJzL2NoYXIvaXAyNy1ydGMuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2JjZC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CkBAIC0xNjMsMTUgKzE2NCwxOCBAQAogCiBzdGF0aWMgaW50IHJ0Y19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrX2lycSgmcnRjX2xvY2spOwogCiAJaWYgKHJ0Y19zdGF0dXMgJiBSVENfSVNfT1BFTikgewogCQlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOwogCX0KIAogCXJ0Y19zdGF0dXMgfD0gUlRDX0lTX09QRU47CiAJc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RldmludGYuYyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfZGV2aW50Zi5jCmluZGV4IDAyNDZhMmI4Li5jMTFhNDA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RldmludGYuYworKysgYi9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX2RldmludGYuYwpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9jb21wYXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiBzdHJ1Y3QgaXBtaV9maWxlX3ByaXZhdGUKIHsKQEAgLTEwMCw3ICsxMDEsOSBAQAogCXN0cnVjdCBpcG1pX2ZpbGVfcHJpdmF0ZSAqcHJpdiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlpbnQgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OwogCisJbG9ja19rZXJuZWwoKTsgLyogY291bGQgcmFjZSBhZ2FpbnN0IG9wZW4oKSBvdGhlcndpc2UgKi8KIAlyZXN1bHQgPSBmYXN5bmNfaGVscGVyKGZkLCBmaWxlLCBvbiwgJnByaXYtPmZhc3luY19xdWV1ZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIChyZXN1bHQpOwogfQpAQCAtMTIxLDYgKzEyNCw3IEBACiAJaWYgKCFwcml2KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJcHJpdi0+ZmlsZSA9IGZpbGU7CiAKIAlydiA9IGlwbWlfY3JlYXRlX3VzZXIoaWZfbnVtLApAQCAtMTI5LDcgKzEzMyw3IEBACiAJCQkgICAgICAmKHByaXYtPnVzZXIpKTsKIAlpZiAocnYpIHsKIAkJa2ZyZWUocHJpdik7Ci0JCXJldHVybiBydjsKKwkJZ290byBvdXQ7CiAJfQogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gcHJpdjsKQEAgLTE0NCw3ICsxNDgsOSBAQAogCXByaXYtPmRlZmF1bHRfcmV0cmllcyA9IC0xOwogCXByaXYtPmRlZmF1bHRfcmV0cnlfdGltZV9tcyA9IDA7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJ2OwogfQogCiBzdGF0aWMgaW50IGlwbWlfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfd2F0Y2hkb2cuYyBiL2RyaXZlcnMvY2hhci9pcG1pL2lwbWlfd2F0Y2hkb2cuYwppbmRleCAxYjlhODcwLi4yMzVmYWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvaXBtaS9pcG1pX3dhdGNoZG9nLmMKKysrIGIvZHJpdmVycy9jaGFyL2lwbWkvaXBtaV93YXRjaGRvZy5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pcG1pLmg+CiAjaW5jbHVkZSA8bGludXgvaXBtaV9zbWkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTc1NSw5ICs3NTYsOCBAQAogCQlydiA9IGlwbWlfaGVhcnRiZWF0KCk7CiAJCWlmIChydikKIAkJCXJldHVybiBydjsKLQkJcmV0dXJuIDE7CiAJfQotCXJldHVybiAwOworCXJldHVybiBsZW47CiB9CiAKIHN0YXRpYyBzc2l6ZV90IGlwbWlfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwKQEAgLTgxOSw2ICs4MTksOCBAQAogCQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmaXBtaV93ZG9nX29wZW4pKQogCQkJcmV0dXJuIC1FQlVTWTsKIAorCQljeWNsZV9rZXJuZWxfbG9jaygpOworCiAJCS8qCiAJCSAqIERvbid0IHN0YXJ0IHRoZSB0aW1lciBub3csIGxldCBpdCBzdGFydCBvbiB0aGUKIAkJICogZmlyc3QgaGVhcnRiZWF0LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2tleWJvYXJkLmMgYi9kcml2ZXJzL2NoYXIva2V5Ym9hcmQuYwppbmRleCA3ZjdlNzk4Li5kOWEwYTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIva2V5Ym9hcmQuYworKysgYi9kcml2ZXJzL2NoYXIva2V5Ym9hcmQuYwpAQCAtNjc3LDEyICs2NzcsNyBAQAogCiBzdGF0aWMgdm9pZCBrX3NlbGYoc3RydWN0IHZjX2RhdGEgKnZjLCB1bnNpZ25lZCBjaGFyIHZhbHVlLCBjaGFyIHVwX2ZsYWcpCiB7Ci0JdW5zaWduZWQgaW50IHVuaTsKLQlpZiAoa2JkLT5rYmRtb2RlID09IFZDX1VOSUNPREUpCi0JCXVuaSA9IHZhbHVlOwotCWVsc2UKLQkJdW5pID0gY29udl84Yml0X3RvX3VuaSh2YWx1ZSk7Ci0Ja191bmljb2RlKHZjLCB1bmksIHVwX2ZsYWcpOworCWtfdW5pY29kZSh2YywgY29udl84Yml0X3RvX3VuaSh2YWx1ZSksIHVwX2ZsYWcpOwogfQogCiBzdGF0aWMgdm9pZCBrX2RlYWQyKHN0cnVjdCB2Y19kYXRhICp2YywgdW5zaWduZWQgY2hhciB2YWx1ZSwgY2hhciB1cF9mbGFnKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2xjZC5jIGIvZHJpdmVycy9jaGFyL2xjZC5jCmluZGV4IDRmZTkyMDYuLjFjMjliMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9sY2QuYworKysgYi9kcml2ZXJzL2NoYXIvbGNkLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tYzE0NjgxOHJ0Yy5oPgogI2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC00MTQsNiArNDE1LDggQEAKIAogc3RhdGljIGludCBsY2Rfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOworCiAJaWYgKCFsY2RfcHJlc2VudCkKIAkJcmV0dXJuIC1FTlhJTzsKIAllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbHAuYyBiL2RyaXZlcnMvY2hhci9scC5jCmluZGV4IDYwYWM2NDIuLjcxYWJiNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9scC5jCisrKyBiL2RyaXZlcnMvY2hhci9scC5jCkBAIC0xMjYsNiArMTI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9wYXJwb3J0Lmg+CiAjdW5kZWYgTFBfU1RBVFMKQEAgLTQ4OSwxNCArNDkwLDIxIEBACiBzdGF0aWMgaW50IGxwX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSkKIHsKIAl1bnNpZ25lZCBpbnQgbWlub3IgPSBpbWlub3IoaW5vZGUpOworCWludCByZXQgPSAwOwogCi0JaWYgKG1pbm9yID49IExQX05PKQotCQlyZXR1cm4gLUVOWElPOwotCWlmICgoTFBfRihtaW5vcikgJiBMUF9FWElTVCkgPT0gMCkKLQkJcmV0dXJuIC1FTlhJTzsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdChMUF9CVVNZX0JJVF9QT1MsICZMUF9GKG1pbm9yKSkpCi0JCXJldHVybiAtRUJVU1k7Ci0KKwlsb2NrX2tlcm5lbCgpOworCWlmIChtaW5vciA+PSBMUF9OTykgeworCQlyZXQgPSAtRU5YSU87CisJCWdvdG8gb3V0OworCX0KKwlpZiAoKExQX0YobWlub3IpICYgTFBfRVhJU1QpID09IDApIHsKKwkJcmV0ID0gLUVOWElPOworCQlnb3RvIG91dDsKKwl9CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoTFBfQlVTWV9CSVRfUE9TLCAmTFBfRihtaW5vcikpKSB7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CisJfQogCS8qIElmIEFCT1JUT1BFTiBpcyBzZXQgYW5kIHRoZSBwcmludGVyIGlzIG9mZmxpbmUgb3Igb3V0IG9mIHBhcGVyLAogCSAgIHdlIG1heSBzdGlsbCB3YW50IHRvIG9wZW4gaXQgdG8gcGVyZm9ybSBpb2N0bCgpcy4gIFRoZXJlZm9yZSB3ZQogCSAgIGhhdmUgY29tbWFuZGVlcmVkIE9fTk9OQkxPQ0ssIGV2ZW4gdGhvdWdoIGl0IGlzIGJlaW5nIHVzZWQgaW4KQEAgLTUxMCwyMSArNTE4LDI1IEBACiAJCWlmIChzdGF0dXMgJiBMUF9QT1VUUEEpIHsKIAkJCXByaW50ayhLRVJOX0lORk8gImxwJWQgb3V0IG9mIHBhcGVyXG4iLCBtaW5vcik7CiAJCQlMUF9GKG1pbm9yKSAmPSB+TFBfQlVTWTsKLQkJCXJldHVybiAtRU5PU1BDOworCQkJcmV0ID0gLUVOT1NQQzsKKwkJCWdvdG8gb3V0OwogCQl9IGVsc2UgaWYgKCEoc3RhdHVzICYgTFBfUFNFTEVDRCkpIHsKIAkJCXByaW50ayhLRVJOX0lORk8gImxwJWQgb2ZmLWxpbmVcbiIsIG1pbm9yKTsKIAkJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQkJcmV0dXJuIC1FSU87CisJCQlyZXQgPSAtRUlPOworCQkJZ290byBvdXQ7CiAJCX0gZWxzZSBpZiAoIShzdGF0dXMgJiBMUF9QRVJST1JQKSkgewogCQkJcHJpbnRrKEtFUk5fRVJSICJscCVkIHByaW50ZXIgZXJyb3JcbiIsIG1pbm9yKTsKIAkJCUxQX0YobWlub3IpICY9IH5MUF9CVVNZOwotCQkJcmV0dXJuIC1FSU87CisJCQlyZXQgPSAtRUlPOworCQkJZ290byBvdXQ7CiAJCX0KIAl9CiAJbHBfdGFibGVbbWlub3JdLmxwX2J1ZmZlciA9IGttYWxsb2MoTFBfQlVGRkVSX1NJWkUsIEdGUF9LRVJORUwpOwogCWlmICghbHBfdGFibGVbbWlub3JdLmxwX2J1ZmZlcikgewogCQlMUF9GKG1pbm9yKSAmPSB+TFBfQlVTWTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OwogCX0KIAkvKiBEZXRlcm1pbmUgaWYgdGhlIHBlcmlwaGVyYWwgc3VwcG9ydHMgRUNQIG1vZGUgKi8KIAlscF9jbGFpbV9wYXJwb3J0X29yX2Jsb2NrICgmbHBfdGFibGVbbWlub3JdKTsKQEAgLTU0MCw3ICs1NTIsOSBAQAogCXBhcnBvcnRfbmVnb3RpYXRlIChscF90YWJsZVttaW5vcl0uZGV2LT5wb3J0LCBJRUVFMTI4NF9NT0RFX0NPTVBBVCk7CiAJbHBfcmVsZWFzZV9wYXJwb3J0ICgmbHBfdGFibGVbbWlub3JdKTsKIAlscF90YWJsZVttaW5vcl0uY3VycmVudF9tb2RlID0gSUVFRTEyODRfTU9ERV9DT01QQVQ7Ci0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgbHBfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL21iY3MuYyBiL2RyaXZlcnMvY2hhci9tYmNzLmMKaW5kZXggZjQ3MTZhZC4uYWNkOGU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21iY3MuYworKysgYi9kcml2ZXJzL2NoYXIvbWJjcy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC91aW8uaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CkBAIC0zODIsMTUgKzM4MywxOSBAQAogCXN0cnVjdCBtYmNzX3NvZnQgKnNvZnQ7CiAJaW50IG1pbm9yOwogCisJbG9ja19rZXJuZWwoKTsKIAltaW5vciA9IGltaW5vcihpcCk7CiAKKwkvKiBOb3RoaW5nIHByb3RlY3RzIGFjY2VzcyB0byB0aGlzIGxpc3QuLi4gKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHNvZnQsICZzb2Z0X2xpc3QsIGxpc3QpIHsKIAkJaWYgKHNvZnQtPm5hc2lkID09IG1pbm9yKSB7CiAJCQlmcC0+cHJpdmF0ZV9kYXRhID0gc29mdC0+Y3hkZXY7CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4gMDsKIAkJfQogCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gLUVOT0RFVjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL21lbS5jIGIvZHJpdmVycy9jaGFyL21lbS5jCmluZGV4IDkzNGZmYWYuLjA3MGUyMmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9tZW0uYworKysgYi9kcml2ZXJzL2NoYXIvbWVtLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8bGludXgvc3BsaWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGZuLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC04ODksNiArODkwLDkgQEAKIAogc3RhdGljIGludCBtZW1vcnlfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQogeworCWludCByZXQgPSAwOworCisJbG9ja19rZXJuZWwoKTsKIAlzd2l0Y2ggKGltaW5vcihpbm9kZSkpIHsKIAkJY2FzZSAxOgogCQkJZmlscC0+Zl9vcCA9ICZtZW1fZm9wczsKQEAgLTkzMiwxMSArOTM2LDEzIEBACiAJCQlicmVhazsKICNlbmRpZgogCQlkZWZhdWx0OgorCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIC1FTlhJTzsKIAl9CiAJaWYgKGZpbHAtPmZfb3AgJiYgZmlscC0+Zl9vcC0+b3BlbikKLQkJcmV0dXJuIGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsZmlscCk7Ci0JcmV0dXJuIDA7CisJCXJldCA9IGZpbHAtPmZfb3AtPm9wZW4oaW5vZGUsZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG1lbW9yeV9mb3BzID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL21pc2MuYyBiL2RyaXZlcnMvY2hhci9taXNjLmMKaW5kZXggZWFhY2UwZC4uNmUxNTYzYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21pc2MuYworKysgYi9kcml2ZXJzL2NoYXIvbWlzYy5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAjaW5jbHVkZSA8bGludXgva21vZC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKIC8qCiAgKiBIZWFkIGVudHJ5IGZvciB0aGUgZG91Ymx5IGxpbmtlZCBtaXNjZGV2aWNlIGxpc3QKQEAgLTExOCw2ICsxMTksNyBAQAogCWludCBlcnIgPSAtRU5PREVWOwogCWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9sZF9mb3BzLCAqbmV3X2ZvcHMgPSBOVUxMOwogCQorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfbG9jaygmbWlzY19tdHgpOwogCQogCWxpc3RfZm9yX2VhY2hfZW50cnkoYywgJm1pc2NfbGlzdCwgbGlzdCkgewpAQCAtMTU1LDYgKzE1Nyw3IEBACiAJZm9wc19wdXQob2xkX2ZvcHMpOwogZmFpbDoKIAltdXRleF91bmxvY2soJm1pc2NfbXR4KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL21veGEuYyBiL2RyaXZlcnMvY2hhci9tb3hhLmMKaW5kZXggZDU3ZDNhNi4uZTIxMzQ2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL21veGEuYworKysgYi9kcml2ZXJzL2NoYXIvbW94YS5jCkBAIC03MjEsNyArNzIxLDcgQEAKIAogc3RhdGljIGludCBtb3hhX2xvYWRfZncoc3RydWN0IG1veGFfYm9hcmRfY29uZiAqYnJkLCBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3KQogewotCXZvaWQgKnB0ciA9IGZ3LT5kYXRhOworCWNvbnN0IHZvaWQgKnB0ciA9IGZ3LT5kYXRhOwogCWNoYXIgcnNuWzY0XTsKIAl1MTYgbGVuc1s1XTsKIAlzaXplX3QgbGVuOwpAQCAtNzM0LDcgKzczNCw3IEBACiAJCXU4IG1vZGVsOwkvKiBDMjE4VD0xLCBDMzIwVD0yLCBDUDIwND0zICovCiAJCXU4IHJlc2VydmVkMls4XTsKIAkJX19sZTE2IGxlbls1XTsKLQl9ICpoZHIgPSBwdHI7CisJfSBjb25zdCAqaGRyID0gcHRyOwogCiAJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUoaGRyLT5sZW4pICE9IEFSUkFZX1NJWkUobGVucykpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbXdhdmUvbXdhdmVkZC5jIGIvZHJpdmVycy9jaGFyL213YXZlL213YXZlZGQuYwppbmRleCA4ZDE0ODIzLi41MDI0M2ZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbXdhdmUvbXdhdmVkZC5jCisrKyBiL2RyaXZlcnMvY2hhci9td2F2ZS9td2F2ZWRkLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF84MjUwLmg+CiAjaW5jbHVkZSAic21hcGkuaCIKQEAgLTEwMCw2ICsxMDEsNyBAQAogCVBSSU5US18yKFRSQUNFX01XQVZFLAogCQkibXdhdmVkZDo6bXdhdmVfb3BlbiwgZXhpdCByZXR1cm4gcmV0dmFsICV4XG4iLCByZXR2YWwpOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvbnZyYW0uYyBiL2RyaXZlcnMvY2hhci9udnJhbS5jCmluZGV4IDk4ZGVjMzguLjE5N2NkN2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9udnJhbS5jCisrKyBiL2RyaXZlcnMvY2hhci9udnJhbS5jCkBAIC0xMDcsNiArMTA3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CkBAIC0zMzMsMTIgKzMzNCwxNCBAQAogc3RhdGljIGludAogbnZyYW1fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9jaygmbnZyYW1fc3RhdGVfbG9jayk7CiAKIAlpZiAoKG52cmFtX29wZW5fY250ICYmIChmaWxlLT5mX2ZsYWdzICYgT19FWENMKSkgfHwKIAkgICAgKG52cmFtX29wZW5fbW9kZSAmIE5WUkFNX0VYQ0wpIHx8CiAJICAgICgoZmlsZS0+Zl9tb2RlICYgMikgJiYgKG52cmFtX29wZW5fbW9kZSAmIE5WUkFNX1dSSVRFKSkpIHsKIAkJc3Bpbl91bmxvY2soJm52cmFtX3N0YXRlX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC0zNDksNiArMzUyLDcgQEAKIAludnJhbV9vcGVuX2NudCsrOwogCiAJc3Bpbl91bmxvY2soJm52cmFtX3N0YXRlX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3BjODczNnhfZ3Bpby5jIGIvZHJpdmVycy9jaGFyL3BjODczNnhfZ3Bpby5jCmluZGV4IGVjZmFmMTguLmI5MzBkZTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9wYzg3MzZ4X2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvcGM4NzM2eF9ncGlvLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L25zY19ncGlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCiAjZGVmaW5lIERFVk5BTUUgInBjODczNnhfZ3BpbyIKQEAgLTIxNyw2ICsyMTgsNyBAQAogCXVuc2lnbmVkIG0gPSBpbWlub3IoaW5vZGUpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9ICZwYzg3MzZ4X2dwaW9fb3BzOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlkZXZfZGJnKCZwZGV2LT5kZXYsICJvcGVuICVkXG4iLCBtKTsKIAogCWlmIChtID49IFBDODczNlhfR1BJT19DVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDAwX2NzLmMgYi9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDAwMF9jcy5jCmluZGV4IDRhOTMzZDQuLjU5Y2EzNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDAwX2NzLmMKKysrIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwMDBfY3MuYwpAQCAtMzIsOCArMzIsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRyZXYuaD4KLSNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CiAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KQEAgLTE0MDUsMTEgKzE0MDYsMTEgQEAKIAlERUJVR1AoMywgZGV2LCAiPC0gc3RvcF9tb25pdG9yXG4iKTsKIH0KIAotc3RhdGljIGludCBjbW1faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCi0JCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCitzdGF0aWMgbG9uZyBjbW1faW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewogCXN0cnVjdCBjbTQwMDBfZGV2ICpkZXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CiAJdW5zaWduZWQgaW50IGlvYmFzZSA9IGRldi0+cF9kZXYtPmlvLkJhc2VQb3J0MTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZTsKIAlzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluazsKIAlpbnQgc2l6ZTsKIAlpbnQgcmM7CkBAIC0xNDI2LDM4ICsxNDI3LDQyIEBACiAJREVCVUdQKDMsIGRldiwgImNtbV9pb2N0bChkZXZpY2U9JWQuJWQpICVzXG4iLCBpbWFqb3IoaW5vZGUpLAogCSAgICAgICBpbWlub3IoaW5vZGUpLCBpb2N0bF9uYW1lc1tfSU9DX05SKGNtZCldKTsKIAorCWxvY2tfa2VybmVsKCk7CisJcmMgPSAtRU5PREVWOwogCWxpbmsgPSBkZXZfdGFibGVbaW1pbm9yKGlub2RlKV07CiAJaWYgKCFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpIHsKIAkJREVCVUdQKDQsIGRldiwgIkRFVl9PSyBmYWxzZVxuIik7Ci0JCXJldHVybiAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAKIAlpZiAodGVzdF9iaXQoSVNfQ01NX0FCU0VOVCwgJmRldi0+ZmxhZ3MpKSB7CiAJCURFQlVHUCg0LCBkZXYsICJDTU1fQUJTRU5UIGZsYWcgc2V0XG4iKTsKLQkJcmV0dXJuIC1FTk9ERVY7CisJCWdvdG8gb3V0OwogCX0KKwlyYyA9IEVJTlZBTDsKIAogCWlmIChfSU9DX1RZUEUoY21kKSAhPSBDTV9JT0NfTUFHSUMpIHsKIAkJREVCVUdQKDQsIGRldiwgImlvY3R5cGUgbWlzbWF0Y2hcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAJfQogCWlmIChfSU9DX05SKGNtZCkgPiBDTV9JT0NfTUFYTlIpIHsKIAkJREVCVUdQKDQsIGRldiwgImlvY25yIG1pc21hdGNoXG4iKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCWdvdG8gb3V0OwogCX0KIAlzaXplID0gX0lPQ19TSVpFKGNtZCk7Ci0JcmMgPSAwOworCXJjID0gLUVGQVVMVDsKIAlERUJVR1AoNCwgZGV2LCAiaW9jZGlyPSUuNHggaW9jcj0lLjR4IGlvY3c9JS40eCBpb2NzaXplPSVkIGNtZD0lLjR4XG4iLAogCSAgICAgIF9JT0NfRElSKGNtZCksIF9JT0NfUkVBRCwgX0lPQ19XUklURSwgc2l6ZSwgY21kKTsKIAogCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19SRUFEKSB7CiAJCWlmICghYWNjZXNzX29rKFZFUklGWV9XUklURSwgYXJncCwgc2l6ZSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKKwkJCWdvdG8gb3V0OwogCX0KIAlpZiAoX0lPQ19ESVIoY21kKSAmIF9JT0NfV1JJVEUpIHsKIAkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1JFQUQsIGFyZ3AsIHNpemUpKQotCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQlnb3RvIG91dDsKIAl9CisJcmMgPSAwOwogCiAJc3dpdGNoIChjbWQpIHsKIAljYXNlIENNX0lPQ0dTVEFUVVM6CkBAIC0xNDc3LDkgKzE0ODIsOSBAQAogCQkJaWYgKHRlc3RfYml0KElTX0JBRF9DQVJELCAmZGV2LT5mbGFncykpCiAJCQkJc3RhdHVzIHw9IENNX0JBRF9DQVJEOwogCQkJaWYgKGNvcHlfdG9fdXNlcihhcmdwLCAmc3RhdHVzLCBzaXplb2YoaW50KSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJcmMgPSAtRUZBVUxUOwogCQl9Ci0JCXJldHVybiAwOworCQlicmVhazsKIAljYXNlIENNX0lPQ0dBVFI6CiAJCURFQlVHUCg0LCBkZXYsICIuLi4gaW4gQ01fSU9DR0FUUlxuIik7CiAJCXsKQEAgLTE0OTIsMjUgKzE0OTcsMjkgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2JpdChJU19BVFJfUFJFU0VOVCwgKHZvaWQgKikmZGV2LT5mbGFncykKIAkJCQkgICE9IDApKSkpIHsKIAkJCQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCQkJCXJldHVybiAtRUFHQUlOOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJCXJjID0gLUVBR0FJTjsKKwkJCQllbHNlCisJCQkJCXJjID0gLUVSRVNUQVJUU1lTOworCQkJCWJyZWFrOwogCQkJfQogCisJCQlyYyA9IC1FRkFVTFQ7CiAJCQlpZiAodGVzdF9iaXQoSVNfQVRSX1ZBTElELCAmZGV2LT5mbGFncykgPT0gMCkgewogCQkJCXRtcCA9IC0xOwogCQkJCWlmIChjb3B5X3RvX3VzZXIoJihhdHJlcS0+YXRyX2xlbiksICZ0bXAsCiAJCQkJCQkgc2l6ZW9mKGludCkpKQotCQkJCQlyZXR1cm4gLUVGQVVMVDsKKwkJCQkJYnJlYWs7CiAJCQl9IGVsc2UgewogCQkJCWlmIChjb3B5X3RvX3VzZXIoYXRyZXEtPmF0ciwgZGV2LT5hdHIsCiAJCQkJCQkgZGV2LT5hdHJfbGVuKSkKLQkJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJCWJyZWFrOwogCiAJCQkJdG1wID0gZGV2LT5hdHJfbGVuOwogCQkJCWlmIChjb3B5X3RvX3VzZXIoJihhdHJlcS0+YXRyX2xlbiksICZ0bXAsIHNpemVvZihpbnQpKSkKLQkJCQkJcmV0dXJuIC1FRkFVTFQ7CisJCQkJCWJyZWFrOwogCQkJfQotCQkJcmV0dXJuIDA7CisJCQlyYyA9IDA7CisJCQlicmVhazsKIAkJfQogCWNhc2UgQ01fSU9DQVJET0ZGOgogCkBAIC0xNTM4LDggKzE1NDcsMTAgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2FuZF9zZXRfYml0KExPQ0tfSU8sICh2b2lkICopJmRldi0+ZmxhZ3MpCiAJCQkJICA9PSAwKSkpKSB7CiAJCQkJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKQotCQkJCQlyZXR1cm4gLUVBR0FJTjsKLQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCQlyYyA9IC1FQUdBSU47CisJCQkJZWxzZQorCQkJCQlyYyA9IC1FUkVTVEFSVFNZUzsKKwkJCQlicmVhazsKIAkJCX0KIAkJCS8qIFNldCBGbGFnczAgPSAweDQyICovCiAJCQlERUJVR1AoNCwgZGV2LCAiU2V0IEZsYWdzMD0weDQyIFxuIik7CkBAIC0xNTU0LDggKzE1NjUsMTAgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2JpdChJU19BVFJfVkFMSUQsICh2b2lkICopJmRldi0+ZmxhZ3MpICE9CiAJCQkJICAwKSkpKSB7CiAJCQkJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKQotCQkJCQlyZXR1cm4gLUVBR0FJTjsKLQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCQlyYyA9IC1FQUdBSU47CisJCQkJZWxzZQorCQkJCQlyYyA9IC1FUkVTVEFSVFNZUzsKKwkJCQlicmVhazsKIAkJCX0KIAkJfQogCQkvKiByZWxlYXNlIGxvY2sgKi8KQEAgLTE1NjgsOCArMTU4MSwxMCBAQAogCQkJc3RydWN0IHB0c3JlcSBrcm5wdHNyZXE7CiAKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigma3JucHRzcmVxLCBhcmdwLAotCQkJCQkgICBzaXplb2Yoc3RydWN0IHB0c3JlcSkpKQotCQkJCXJldHVybiAtRUZBVUxUOworCQkJCQkgICBzaXplb2Yoc3RydWN0IHB0c3JlcSkpKSB7CisJCQkJcmMgPSAtRUZBVUxUOworCQkJCWJyZWFrOworCQkJfQogCiAJCQlyYyA9IDA7CiAJCQlERUJVR1AoNCwgZGV2LCAiLi4uIGluIENNX0lPQ1NQVFNcbiIpOwpAQCAtMTU4MCw4ICsxNTk1LDEwIEBACiAJCQkgICAgICB8fCAodGVzdF9iaXQoSVNfQVRSX1BSRVNFTlQsICh2b2lkICopJmRldi0+ZmxhZ3MpCiAJCQkJICAhPSAwKSkpKSB7CiAJCQkJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKQotCQkJCQlyZXR1cm4gLUVBR0FJTjsKLQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCQlyYyA9IC1FQUdBSU47CisJCQkJZWxzZQorCQkJCQlyYyA9IC1FUkVTVEFSVFNZUzsKKwkJCQlicmVhazsKIAkJCX0KIAkJCS8qIGdldCBJTyBsb2NrICovCiAJCQlpZiAod2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlCkBAIC0xNTkwLDggKzE2MDcsMTAgQEAKIAkJCSAgICAgIHx8ICh0ZXN0X2FuZF9zZXRfYml0KExPQ0tfSU8sICh2b2lkICopJmRldi0+ZmxhZ3MpCiAJCQkJICA9PSAwKSkpKSB7CiAJCQkJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKQotCQkJCQlyZXR1cm4gLUVBR0FJTjsKLQkJCQlyZXR1cm4gLUVSRVNUQVJUU1lTOworCQkJCQlyYyA9IC1FQUdBSU47CisJCQkJZWxzZQorCQkJCQlyYyA9IC1FUkVTVEFSVFNZUzsKKwkJCQlicmVhazsKIAkJCX0KIAogCQkJaWYgKChyYyA9IHNldF9wcm90b2NvbChkZXYsICZrcm5wdHNyZXEpKSAhPSAwKSB7CkBAIC0xNjA0LDcgKzE2MjMsNyBAQAogCQkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZkZXYtPmlvcSk7CiAKIAkJfQotCQlyZXR1cm4gcmM7CisJCWJyZWFrOwogI2lmZGVmIFBDTUNJQV9ERUJVRwogCWNhc2UgQ01fSU9TREJHTFZMOgkvKiBzZXQgZGVidWcgbG9nIGxldmVsICovCiAJCXsKQEAgLTE2MTIsMTggKzE2MzEsMjAgQEAKIAogCQkJb2xkX3BjX2RlYnVnID0gcGNfZGVidWc7CiAJCQlpZiAoY29weV9mcm9tX3VzZXIoJnBjX2RlYnVnLCBhcmdwLCBzaXplb2YoaW50KSkpCi0JCQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQkJCWlmIChvbGRfcGNfZGVidWcgIT0gcGNfZGVidWcpCisJCQkJcmMgPSAtRUZBVUxUOworCQkJZWxzZSBpZiAob2xkX3BjX2RlYnVnICE9IHBjX2RlYnVnKQogCQkJCURFQlVHUCgwLCBkZXYsICJDaGFuZ2VkIGRlYnVnIGxvZyBsZXZlbCAiCiAJCQkJICAgICAgICJ0byAlaVxuIiwgcGNfZGVidWcpOwogCQl9Ci0JCXJldHVybiByYzsKKwkJYnJlYWs7CiAjZW5kaWYKIAlkZWZhdWx0OgogCQlERUJVR1AoNCwgZGV2LCAiLi4uIGluIGRlZmF1bHQgKHVua25vd24gSU9DVEwgY29kZSlcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmMgPSAtRU5PVFRZOwogCX0KK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgaW50IGNtbV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpAQCAtMTYzMSwxNiArMTY1MiwyMiBAQAogCXN0cnVjdCBjbTQwMDBfZGV2ICpkZXY7CiAJc3RydWN0IHBjbWNpYV9kZXZpY2UgKmxpbms7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgcmV0OwogCiAJaWYgKG1pbm9yID49IENNNDAwMF9NQVhfREVWKQogCQlyZXR1cm4gLUVOT0RFVjsKIAorCWxvY2tfa2VybmVsKCk7CiAJbGluayA9IGRldl90YWJsZVttaW5vcl07Ci0JaWYgKGxpbmsgPT0gTlVMTCB8fCAhcGNtY2lhX2Rldl9wcmVzZW50KGxpbmspKQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAobGluayA9PSBOVUxMIHx8ICFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKGxpbmstPm9wZW4pCi0JCXJldHVybiAtRUJVU1k7CisJaWYgKGxpbmstPm9wZW4pIHsKKwkJcmV0ID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAKIAlkZXYgPSBsaW5rLT5wcml2OwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGRldjsKQEAgLTE2NjAsOCArMTY4NywxMCBAQAogCSAqIHZhaWxkID0gYmxvY2sgdW50aWwgdmFsaWQgKG9yIGNhcmQKIAkgKiBpbnNlcnRlZCkKIAkgKi8KLQlpZiAoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spCi0JCXJldHVybiAtRUFHQUlOOworCWlmIChmaWxwLT5mX2ZsYWdzICYgT19OT05CTE9DSykgeworCQlyZXQgPSAtRUFHQUlOOworCQlnb3RvIG91dDsKKwl9CiAKIAlkZXYtPm1kZWxheSA9IFRfNTBNU0VDOwogCkBAIC0xNjcxLDcgKzE3MDAsMTAgQEAKIAlsaW5rLT5vcGVuID0gMTsJCS8qIG9ubHkgb25lIG9wZW4gcGVyIGRldmljZSAqLwogCiAJREVCVUdQKDIsIGRldiwgIjwtIGNtbV9vcGVuXG4iKTsKLQlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJcmV0ID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgY21tX2Nsb3NlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpAQCAtMTg5Nyw3ICsxOTI5LDcgQEAKIAkub3duZXIJPSBUSElTX01PRFVMRSwKIAkucmVhZAk9IGNtbV9yZWFkLAogCS53cml0ZQk9IGNtbV93cml0ZSwKLQkuaW9jdGwJPSBjbW1faW9jdGwsCisJLnVubG9ja2VkX2lvY3RsCT0gY21tX2lvY3RsLAogCS5vcGVuCT0gY21tX29wZW4sCiAJLnJlbGVhc2U9IGNtbV9jbG9zZSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDA0MF9jcy5jIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9jbTQwNDBfY3MuYwppbmRleCAwMzUwODRjLi42MTgxZjhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2NtNDA0MF9jcy5jCisrKyBiL2RyaXZlcnMvY2hhci9wY21jaWEvY200MDQwX2NzLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvd2FpdC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC00NDgsMjMgKzQ0OSwzMCBAQAogCXN0cnVjdCByZWFkZXJfZGV2ICpkZXY7CiAJc3RydWN0IHBjbWNpYV9kZXZpY2UgKmxpbms7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKKwlpbnQgcmV0OwogCiAJaWYgKG1pbm9yID49IENNX01BWF9ERVYpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAlsaW5rID0gZGV2X3RhYmxlW21pbm9yXTsKLQlpZiAobGluayA9PSBOVUxMIHx8ICFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpCi0JCXJldHVybiAtRU5PREVWOworCWlmIChsaW5rID09IE5VTEwgfHwgIXBjbWNpYV9kZXZfcHJlc2VudChsaW5rKSkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKLQlpZiAobGluay0+b3BlbikKLQkJcmV0dXJuIC1FQlVTWTsKKwlpZiAobGluay0+b3BlbikgeworCQlyZXQgPSAtRUJVU1k7CisJCWdvdG8gb3V0OworCX0KIAogCWRldiA9IGxpbmstPnByaXY7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZGV2OwogCiAJaWYgKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSB7CiAJCURFQlVHUCg0LCBkZXYsICJmaWxlcC0+Zl9mbGFncyBPX05PTkJMT0NLIHNldFxuIik7Ci0JCXJldHVybiAtRUFHQUlOOworCQlyZXQgPSAtRUFHQUlOOworCQlnb3RvIG91dDsKIAl9CiAKIAlsaW5rLT5vcGVuID0gMTsKQEAgLTQ3Myw3ICs0ODEsMTAgQEAKIAltb2RfdGltZXIoJmRldi0+cG9sbF90aW1lciwgamlmZmllcyArIFBPTExfUEVSSU9EKTsKIAogCURFQlVHUCgyLCBkZXYsICI8LSBjbTQwNDBfb3BlbiAoc3VjY2Vzc2Z1bGx5KVxuIik7Ci0JcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworCXJldCA9IG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNtNDA0MF9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wY21jaWEvaXB3aXJlbGVzcy9oYXJkd2FyZS5jIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL2hhcmR3YXJlLmMKaW5kZXggZmE5ZDNjOS4uOTI5MTAxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL2hhcmR3YXJlLmMKKysrIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL2hhcmR3YXJlLmMKQEAgLTI1MSwxMCArMjUxLDExIEBACiAJaW50IGluaXRfbG9vcHM7CiAJc3RydWN0IHRpbWVyX2xpc3Qgc2V0dXBfdGltZXI7CiAKKwkvKiBGbGFnIGlmIGh3IGlzIHJlYWR5IHRvIHNlbmQgbmV4dCBwYWNrZXQgKi8KIAlpbnQgdHhfcmVhZHk7Ci0Jc3RydWN0IGxpc3RfaGVhZCB0eF9xdWV1ZVtOTF9OVU1fT0ZfUFJJT1JJVElFU107Ci0JLyogVHJ1ZSBpZiBhbnkgcGFja2V0cyBhcmUgcXVldWVkIGZvciB0cmFuc21pc3Npb24gKi8KKwkvKiBDb3VudCBvZiBwZW5kaW5nIHBhY2tldHMgdG8gYmUgc2VudCAqLwogCWludCB0eF9xdWV1ZWQ7CisJc3RydWN0IGxpc3RfaGVhZCB0eF9xdWV1ZVtOTF9OVU1fT0ZfUFJJT1JJVElFU107CiAKIAlpbnQgcnhfYnl0ZXNfcXVldWVkOwogCXN0cnVjdCBsaXN0X2hlYWQgcnhfcXVldWU7CkBAIC00MDQsNiArNDA1LDggQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZody0+c3BpbmxvY2ssIGZsYWdzKTsKIAorCWh3LT50eF9yZWFkeSA9IDA7CisKIAlpZiAoaHctPmh3X3ZlcnNpb24gPT0gSFdfVkVSU0lPTl8xKSB7CiAJCW91dHcoKHVuc2lnbmVkIHNob3J0KSBsZW5ndGgsIGh3LT5iYXNlX3BvcnQgKyBJT0RXUik7CiAKQEAgLTQ5Miw2ICs0OTUsNyBAQAogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZody0+c3BpbmxvY2ssIGZsYWdzKTsKIAkJbGlzdF9hZGQoJnBhY2tldC0+cXVldWUsICZody0+dHhfcXVldWVbMF0pOworCQlody0+dHhfcXVldWVkKys7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwogCX0gZWxzZSB7CiAJCWlmIChwYWNrZXQtPnBhY2tldF9jYWxsYmFjaykKQEAgLTU4Niw4ICs1OTAsMTAgQEAKIAkJcGFja2V0ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGlwd19yeF9wYWNrZXQpICsKIAkJCQlvbGRfcGFja2V0LT5sZW5ndGggKyBtaW5pbXVtX2ZyZWVfc3BhY2UsCiAJCQkJR0ZQX0FUT01JQyk7Ci0JCWlmICghcGFja2V0KQorCQlpZiAoIXBhY2tldCkgeworCQkJa2ZyZWUob2xkX3BhY2tldCk7CiAJCQlyZXR1cm4gTlVMTDsKKwkJfQogCQltZW1jcHkocGFja2V0LCBvbGRfcGFja2V0LAogCQkJCXNpemVvZihzdHJ1Y3QgaXB3X3J4X3BhY2tldCkKIAkJCQkJKyBvbGRfcGFja2V0LT5sZW5ndGgpOwpAQCAtOTQ5LDEyICs5NTUsMTAgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwotCWlmIChody0+dHhfcXVldWVkICYmIGh3LT50eF9yZWFkeSAhPSAwKSB7CisJaWYgKGh3LT50eF9xdWV1ZWQgJiYgaHctPnR4X3JlYWR5KSB7CiAJCWludCBwcmlvcml0eTsKIAkJc3RydWN0IGlwd190eF9wYWNrZXQgKnBhY2tldCA9IE5VTEw7CiAKLQkJaHctPnR4X3JlYWR5LS07Ci0KIAkJLyogUGljayBhIHBhY2tldCAqLwogCQlmb3IgKHByaW9yaXR5ID0gMDsgcHJpb3JpdHkgPCBwcmlvcml0eV9saW1pdDsgcHJpb3JpdHkrKykgewogCQkJaWYgKCFsaXN0X2VtcHR5KCZody0+dHhfcXVldWVbcHJpb3JpdHldKSkgewpAQCAtOTYzLDYgKzk2Nyw3IEBACiAJCQkJCQlzdHJ1Y3QgaXB3X3R4X3BhY2tldCwKIAkJCQkJCXF1ZXVlKTsKIAorCQkJCWh3LT50eF9xdWV1ZWQtLTsKIAkJCQlsaXN0X2RlbCgmcGFja2V0LT5xdWV1ZSk7CiAKIAkJCQlicmVhazsKQEAgLTk3Myw2ICs5NzgsNyBAQAogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaHctPnNwaW5sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gMDsKIAkJfQorCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwogCiAJCS8qIFNlbmQgKi8KQEAgLTEwNjMsNyArMTA2OSw3IEBACiAJCWlmIChpcnFuICYgSVJfVFhJTlRSKSB7CiAJCQlhY2sgfD0gSVJfVFhJTlRSOwogCQkJc3Bpbl9sb2NrX2lycXNhdmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwotCQkJaHctPnR4X3JlYWR5Kys7CisJCQlody0+dHhfcmVhZHkgPSAxOwogCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaHctPnNwaW5sb2NrLCBmbGFncyk7CiAJCX0KIAkJLyogUmVjZWl2ZWQgZGF0YSAqLwpAQCAtMTE3MCw3ICsxMTc2LDcgQEAKIAlpZiAobWVtcnhkb25lICYgTUVNUlhfUlhfRE9ORSkgewogCQl3cml0ZXcoMCwgJmh3LT5tZW1vcnlfaW5mb19yZWdzLT5tZW1yZWdfcnhfZG9uZSk7CiAJCXNwaW5fbG9ja19pcnFzYXZlKCZody0+c3BpbmxvY2ssIGZsYWdzKTsKLQkJaHctPnR4X3JlYWR5Kys7CisJCWh3LT50eF9yZWFkeSA9IDE7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwogCQl0eCA9IDE7CiAJfQpAQCAtMTIzNCw3ICsxMjQwLDcgQEAKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZody0+c3BpbmxvY2ssIGZsYWdzKTsKIAlsaXN0X2FkZF90YWlsKCZwYWNrZXQtPnF1ZXVlLCAmaHctPnR4X3F1ZXVlW3ByaW9yaXR5XSk7Ci0JaHctPnR4X3F1ZXVlZCA9IDE7CisJaHctPnR4X3F1ZXVlZCsrOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmh3LT5zcGlubG9jaywgZmxhZ3MpOwogCiAJZmx1c2hfcGFja2V0c190b19odyhodyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jIGIvZHJpdmVycy9jaGFyL3BjbWNpYS9pcHdpcmVsZXNzL21haW4uYwppbmRleCAwMGM3Zjg0Li5jYzdkY2VhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvcGNtY2lhL2lwd2lyZWxlc3MvbWFpbi5jCisrKyBiL2RyaXZlcnMvY2hhci9wY21jaWEvaXB3aXJlbGVzcy9tYWluLmMKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kZXZpY2VfaWQuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9wcGRldi5jIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKaW5kZXggM2FhYjgzNy4uZjZlNmFjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3BwZGV2LmMKKysrIGIvZHJpdmVycy9jaGFyL3BwZGV2LmMKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9wcGRldi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2RlZmluZSBQUF9WRVJTSU9OICJwcGRldjogdXNlci1zcGFjZSBwYXJhbGxlbCBwb3J0IGRyaXZlciIKQEAgLTYzOCw2ICs2MzksNyBAQAogCXVuc2lnbmVkIGludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAJc3RydWN0IHBwX3N0cnVjdCAqcHA7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWlmIChtaW5vciA+PSBQQVJQT1JUX01BWCkKIAkJcmV0dXJuIC1FTlhJTzsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Jhdy5jIGIvZHJpdmVycy9jaGFyL3Jhdy5jCmluZGV4IGJiZmEwZTIuLjUwNWZjYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci9yYXcuYworKysgYi9kcml2ZXJzL2NoYXIvcmF3LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTMsNiArNTQsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJnJhd19tdXRleCk7CiAKIAkvKgpAQCAtNzksNiArODEsNyBAQAogCQkJYmRldi0+YmRfaW5vZGUtPmlfbWFwcGluZzsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBiZGV2OwogCW11dGV4X3VubG9jaygmcmF3X211dGV4KTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIG91dDI6CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvcnRjLmMgYi9kcml2ZXJzL2NoYXIvcnRjLmMKaW5kZXggNWY4MGE5ZC4uZmE5MmE4YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3J0Yy5jCisrKyBiL2RyaXZlcnMvY2hhci9ydGMuYwpAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zeXNjdGwuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmNkLmg+CkBAIC02NzgsMTIgKzY3OSwxMyBAQAogCQlpZiAoYXJnICE9ICgxPDx0bXApKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKKwkJcnRjX2ZyZXEgPSBhcmc7CisKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCWlmIChocGV0X3NldF9wZXJpb2RpY19mcmVxKGFyZykpIHsKIAkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJ0Y19sb2NrLCBmbGFncyk7CiAJCQlyZXR1cm4gMDsKIAkJfQotCQlydGNfZnJlcSA9IGFyZzsKIAogCQl2YWwgPSBDTU9TX1JFQUQoUlRDX0ZSRVFfU0VMRUNUKSAmIDB4ZjA7CiAJCXZhbCB8PSAoMTYgLSB0bXApOwpAQCAtNzMzLDYgKzczNSw3IEBACiAgKiBuZWVkZWQgaGVyZS4gT3IgYW55d2hlcmUgZWxzZSBpbiB0aGlzIGRyaXZlci4gKi8KIHN0YXRpYyBpbnQgcnRjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZydGNfbG9jayk7CiAKIAlpZiAocnRjX3N0YXR1cyAmIFJUQ19JU19PUEVOKQpAQCAtNzQyLDEwICs3NDUsMTIgQEAKIAogCXJ0Y19pcnFfZGF0YSA9IDA7CiAJc3Bpbl91bmxvY2tfaXJxKCZydGNfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogCiBvdXRfYnVzeToKIAlzcGluX3VubG9ja19pcnEoJnJ0Y19sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIC1FQlVTWTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3NjeDIwMF9ncGlvLmMgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwppbmRleCA5OWU1MjcyLi4xZDkxMDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYworKysgYi9kcml2ZXJzL2NoYXIvc2N4MjAwX2dwaW8uYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKQEAgLTUxLDYgKzUyLDcgQEAKIAl1bnNpZ25lZCBtID0gaW1pbm9yKGlub2RlKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSAmc2N4MjAwX2dwaW9fb3BzOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlpZiAobSA+PSBNQVhfUElOUykKIAkJcmV0dXJuIC1FSU5WQUw7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3Nuc2MuYyBiL2RyaXZlcnMvY2hhci9zbnNjLmMKaW5kZXggOGZlMDk5YS4uMGI3OTlhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Nuc2MuYworKysgYi9kcml2ZXJzL2NoYXIvc25zYy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9zbi9pby5oPgogI2luY2x1ZGUgPGFzbS9zbi9zbl9zYWwuaD4KICNpbmNsdWRlIDxhc20vc24vbW9kdWxlLmg+CkBAIC0xMDQsNiArMTA1LDcgQEAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBzZDsKIAogCS8qIGhvb2sgdGhpcyBzdWJjaGFubmVsIHVwIHRvIHRoZSBzeXN0ZW0gY29udHJvbGxlciBpbnRlcnJ1cHQgKi8KKwlsb2NrX2tlcm5lbCgpOwogCXJ2ID0gcmVxdWVzdF9pcnEoU0dJX1VBUlRfVkVDVE9SLCBzY2Rydl9pbnRlcnJ1cHQsCiAJCQkgSVJRRl9TSEFSRUQgfCBJUlFGX0RJU0FCTEVELAogCQkJIFNZU0NUTF9CQVNFTkFNRSwgc2QpOwpAQCAtMTExLDkgKzExMywxMCBAQAogCQlpYTY0X3NuX2lydHJfY2xvc2Uoc2QtPnNkX25hc2lkLCBzZC0+c2Rfc3ViY2gpOwogCQlrZnJlZShzZCk7CiAJCXByaW50aygiJXM6IGlycSByZXF1ZXN0IGZhaWxlZCAoJWQpXG4iLCBfX2Z1bmNfXywgcnYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQotCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvc29ueXBpLmMgYi9kcml2ZXJzL2NoYXIvc29ueXBpLmMKaW5kZXggNTg1MzNkZS4uODVlMGViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3NvbnlwaS5jCisrKyBiL2RyaXZlcnMvY2hhci9zb255cGkuYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2tmaWZvLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC05MDYsMTIgKzkwNywxNCBAQAogCiBzdGF0aWMgaW50IHNvbnlwaV9taXNjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZzb255cGlfZGV2aWNlLmxvY2spOwogCS8qIEZsdXNoIGlucHV0IHF1ZXVlIG9uIGZpcnN0IG9wZW4gKi8KIAlpZiAoIXNvbnlwaV9kZXZpY2Uub3Blbl9jb3VudCkKIAkJa2ZpZm9fcmVzZXQoc29ueXBpX2RldmljZS5maWZvKTsKIAlzb255cGlfZGV2aWNlLm9wZW5fY291bnQrKzsKIAltdXRleF91bmxvY2soJnNvbnlwaV9kZXZpY2UubG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdGIwMjE5LmMgYi9kcml2ZXJzL2NoYXIvdGIwMjE5LmMKaW5kZXggNGM0MzFjYi4uNjA2MmI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RiMDIxOS5jCisrKyBiL2RyaXZlcnMvY2hhci90YjAyMTkuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vcmVib290Lmg+CkBAIC0yMzYsNiArMjM3LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgbWlub3I7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzd2l0Y2ggKG1pbm9yKSB7CiAJY2FzZSAwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RsY2xrLmMgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwppbmRleCAzNWU1ODAzLi44ZjIyODRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdGxjbGsuYworKysgYi9kcml2ZXJzL2NoYXIvdGxjbGsuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CkBAIC0yMDQsMTEgKzIwNSwxNCBAQAogewogCWludCByZXN1bHQ7CiAKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdXNlZmxhZ3MpKQotCQlyZXR1cm4gLUVCVVNZOworCWxvY2tfa2VybmVsKCk7CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJnVzZWZsYWdzKSkgeworCQlyZXN1bHQgPSAtRUJVU1k7CiAJCS8qIHRoaXMgbGVnYWN5IGRldmljZSBpcyBhbHdheXMgb25lIHBlciBzeXN0ZW0gYW5kIGl0IGRvZXNuJ3QKIAkJICoga25vdyBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGNvbmN1cnJlbnQgY2xpZW50cy4KIAkJICovCisJCWdvdG8gb3V0OworCX0KIAogCS8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBpbnRlcnJ1cHQgcGVuZGluZyB3aGlsZQogCSAqIGluaXRpYWxpc2luZyBpbnRlcnJ1cHQgaGFuZGxlciAqLwpAQCAtMjE4LDEzICsyMjIsMTQgQEAKIAkgKiB3ZSBjYW4ndCBzaGFyZSB0aGlzIElSUSAqLwogCXJlc3VsdCA9IHJlcXVlc3RfaXJxKHRlbGNsa19pbnRlcnJ1cHQsICZ0bGNsa19pbnRlcnJ1cHQsCiAJCQkgICAgIElSUUZfRElTQUJMRUQsICJ0ZWxjb19jbG9jayIsIHRsY2xrX2ludGVycnVwdCk7Ci0JaWYgKHJlc3VsdCA9PSAtRUJVU1kpIHsKKwlpZiAocmVzdWx0ID09IC1FQlVTWSkKIAkJcHJpbnRrKEtFUk5fRVJSICJ0bGNsazogSW50ZXJydXB0IGNhbid0IGJlIHJlc2VydmVkLlxuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCWluYihUTENMS19SRUc2KTsJLyogQ2xlYXIgaW50ZXJydXB0IGV2ZW50cyAqLworCWVsc2UKKwkJaW5iKFRMQ0xLX1JFRzYpOwkvKiBDbGVhciBpbnRlcnJ1cHQgZXZlbnRzICovCiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGludCB0bGNsa19yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtLmMKaW5kZXggYTVkOGJjYi4uZTFmYzE5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3RwbS90cG0uYworKysgYi9kcml2ZXJzL2NoYXIvdHBtL3RwbS5jCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSAidHBtLmgiCiAKQEAgLTg5Nyw2ICs4OTgsNyBAQAogCWludCByYyA9IDAsIG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzdHJ1Y3QgdHBtX2NoaXAgKmNoaXAgPSBOVUxMLCAqcG9zOwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2soJmRyaXZlcl9sb2NrKTsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmdHBtX2NoaXBfbGlzdCwgbGlzdCkgewpAQCAtOTI2LDE2ICs5MjgsMTkgQEAKIAlpZiAoY2hpcC0+ZGF0YV9idWZmZXIgPT0gTlVMTCkgewogCQljaGlwLT5udW1fb3BlbnMtLTsKIAkJcHV0X2RldmljZShjaGlwLT5kZXYpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAogCWF0b21pY19zZXQoJmNoaXAtPmRhdGFfcGVuZGluZywgMCk7CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX291dDoKIAlzcGluX3VubG9jaygmZHJpdmVyX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh0cG1fb3Blbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdHBtL3RwbV90aXMuYyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCmluZGV4IDEzYTRiZGQuLmM3YTk3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCisrKyBiL2RyaXZlcnMvY2hhci90cG0vdHBtX3Rpcy5jCkBAIC02MjMsNiArNjIzLDcgQEAKIAl7IklGWDAxMDIiLCAwfSwJCS8qIEluZmluZW9uICovCiAJeyJCQ00wMTAxIiwgMH0sCQkvKiBCcm9hZGNvbSAqLwogCXsiTlNDMTIwMCIsIDB9LAkJLyogTmF0aW9uYWwgKi8KKwl7IklDTzAxMDIiLCAwfSwJCS8qIEludGVsICovCiAJLyogQWRkIG5ldyBoZXJlICovCiAJeyIiLCAwfSwJCS8qIFVzZXIgU3BlY2lmaWVkICovCiAJeyIiLCAwfQkJCS8qIFRlcm1pbmF0b3IgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci90dHlfaW8uYyBiL2RyaXZlcnMvY2hhci90dHlfaW8uYwppbmRleCBlOTRiZWUwLi4wNDdhMTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdHR5X2lvLmMKKysrIGIvZHJpdmVycy9jaGFyL3R0eV9pby5jCkBAIC0yNjY1LDcgKzI2NjUsNyBAQAogICoJCSAtPnNpZ2xvY2sgcHJvdGVjdHMgLT5zaWduYWwvLT5zaWdoYW5kCiAgKi8KIAotc3RhdGljIGludCB0dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3N0YXRpYyBpbnQgX190dHlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogCWludCBub2N0dHksIHJldHZhbDsKQEAgLTI3NzksNiArMjc3OSwxOSBAQAogCXJldHVybiAwOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNjYXJ5IGNvZGUgYXZvaWRhbmNlIHdyYXBwZXIgKi8KK3N0YXRpYyBpbnQgdHR5X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CisJcmV0ID0gX190dHlfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CisKKworCiAjaWZkZWYgQ09ORklHX1VOSVg5OF9QVFlTCiAvKioKICAqCXB0bXhfb3BlbgkJLQlvcGVuIGEgdW5peCA5OCBwdHkgbWFzdGVyCkBAIC0yNzkyLDcgKzI4MDUsNyBAQAogICoJCWFsbG9jYXRlZF9wdHlzX2xvY2sgaGFuZGxlcyB0aGUgbGlzdCBvZiBmcmVlIHB0eSBudW1iZXJzCiAgKi8KIAotc3RhdGljIGludCBwdG14X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCitzdGF0aWMgaW50IF9fcHRteF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXN0cnVjdCB0dHlfc3RydWN0ICp0dHk7CiAJaW50IHJldHZhbDsKQEAgLTI4MzEsNiArMjg0NCwxNiBAQAogCWRldnB0c19raWxsX2luZGV4KGluZGV4KTsKIAlyZXR1cm4gcmV0dmFsOwogfQorCitzdGF0aWMgaW50IHB0bXhfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBfX3B0bXhfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7Cit9CiAjZW5kaWYKIAogLyoqCkBAIC0yODg2LDE1ICsyOTA5LDE2IEBACiB7CiAJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZXR2YWw7CisJaW50IHJldHZhbCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXR0eSA9IChzdHJ1Y3QgdHR5X3N0cnVjdCAqKWZpbHAtPnByaXZhdGVfZGF0YTsKIAlpZiAodHR5X3BhcmFub2lhX2NoZWNrKHR0eSwgZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSwgInR0eV9mYXN5bmMiKSkKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0OwogCiAJcmV0dmFsID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZ0dHktPmZhc3luYyk7CiAJaWYgKHJldHZhbCA8PSAwKQotCQlyZXR1cm4gcmV0dmFsOworCQlnb3RvIG91dDsKIAogCWlmIChvbikgewogCQllbnVtIHBpZF90eXBlIHR5cGU7CkBAIC0yOTEyLDEyICsyOTM2LDE1IEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnR0eS0+Y3RybF9sb2NrLCBmbGFncyk7CiAJCXJldHZhbCA9IF9fZl9zZXRvd24oZmlscCwgcGlkLCB0eXBlLCAwKTsKIAkJaWYgKHJldHZhbCkKLQkJCXJldHVybiByZXR2YWw7CisJCQlnb3RvIG91dDsKIAl9IGVsc2UgewogCQlpZiAoIXR0eS0+ZmFzeW5jICYmICF3YWl0cXVldWVfYWN0aXZlKCZ0dHktPnJlYWRfd2FpdCkpCiAJCQl0dHktPm1pbmltdW1fdG9fd2FrZSA9IE5fVFRZX0JVRl9TSVpFOwogCX0KLQlyZXR1cm4gMDsKKwlyZXR2YWwgPSAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0dmFsOwogfQogCiAvKioKQEAgLTMzMjIsNyArMzM0OSw3IEBACiAJCW1zbGVlcF9pbnRlcnJ1cHRpYmxlKGR1cmF0aW9uKTsKIAl0dHktPm9wcy0+YnJlYWtfY3RsKHR0eSwgMCk7CiAJdHR5X3dyaXRlX3VubG9jayh0dHkpOwotCWlmICghc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpCisJaWYgKHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQogCQlyZXR1cm4gLUVJTlRSOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL3R0eV9pb2N0bC5jIGIvZHJpdmVycy9jaGFyL3R0eV9pb2N0bC5jCmluZGV4IGIxYTc1N2EuLjhmODExMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci90dHlfaW9jdGwuYworKysgYi9kcml2ZXJzL2NoYXIvdHR5X2lvY3RsLmMKQEAgLTk4MSwxNiArOTgxLDkgQEAKIGludCBuX3R0eV9pb2N0bChzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJICAgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQogewotCXN0cnVjdCB0dHlfc3RydWN0ICpyZWFsX3R0eTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXR2YWw7CiAKLQlpZiAodHR5LT5kcml2ZXItPnR5cGUgPT0gVFRZX0RSSVZFUl9UWVBFX1BUWSAmJgotCSAgICB0dHktPmRyaXZlci0+c3VidHlwZSA9PSBQVFlfVFlQRV9NQVNURVIpCi0JCXJlYWxfdHR5ID0gdHR5LT5saW5rOwotCWVsc2UKLQkJcmVhbF90dHkgPSB0dHk7Ci0KIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgVENYT05DOgogCQlyZXR2YWwgPSB0dHlfY2hlY2tfY2hhbmdlKHR0eSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdmNfc2NyZWVuLmMgYi9kcml2ZXJzL2NoYXIvdmNfc2NyZWVuLmMKaW5kZXggODNhZWVkZC4uZWViZmFkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3ZjX3NjcmVlbi5jCisrKyBiL2RyaXZlcnMvY2hhci92Y19zY3JlZW4uYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tiZF9rZXJuLmg+CiAjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KQEAgLTQ2MCw5ICs0NjEsMTMgQEAKIHZjc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewogCXVuc2lnbmVkIGludCBjdXJyY29ucyA9IGltaW5vcihpbm9kZSkgJiAxMjc7CisJaW50IHJldCA9IDA7CisJCisJbG9ja19rZXJuZWwoKTsKIAlpZihjdXJyY29ucyAmJiAhdmNfY29uc19hbGxvY2F0ZWQoY3VycmNvbnMtMSkpCi0JCXJldHVybiAtRU5YSU87Ci0JcmV0dXJuIDA7CisJCXJldCA9IC1FTlhJTzsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdmNzX2ZvcHMgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdmlvY29ucy5jIGIvZHJpdmVycy9jaGFyL3Zpb2NvbnMuYwppbmRleCAzZDNlMWMyLi42NWZiODQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvdmlvY29ucy5jCisrKyBiL2RyaXZlcnMvY2hhci92aW9jb25zLmMKQEAgLTcsNyArNyw3IEBACiAgKiAgQXV0aG9yczogRGF2ZSBCb3V0Y2hlciA8Ym91dGNoZXJAdXMuaWJtLmNvbT4KICAqICAgICAgICAgICBSeWFuIEFybm9sZCA8cnlhbmFybkB1cy5pYm0uY29tPgogICogICAgICAgICAgIENvbGluIERldmlsYmlzcyA8ZGV2aWxiaXNAdXMuaWJtLmNvbT4KLSAqICAgICAgICAgICBTdGVwaGVuIFJvdGh3ZWxsIDxzZnJAYXUxLmlibS5jb20+CisgKiAgICAgICAgICAgU3RlcGhlbiBSb3Rod2VsbAogICoKICAqIChDKSBDb3B5cmlnaHQgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBJQk0gQ29ycG9yYXRpb24KICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdmlvdGFwZS5jIGIvZHJpdmVycy9jaGFyL3Zpb3RhcGUuYwppbmRleCA1OGFhZDYzOC4uOTc3ZjdkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3Zpb3RhcGUuYworKysgYi9kcml2ZXJzL2NoYXIvdmlvdGFwZS5jCkBAIC02LDcgKzYsNyBAQAogICogIEF1dGhvcnM6IERhdmUgQm91dGNoZXIgPGJvdXRjaGVyQHVzLmlibS5jb20+CiAgKiAgICAgICAgICAgUnlhbiBBcm5vbGQgPHJ5YW5hcm5AdXMuaWJtLmNvbT4KICAqICAgICAgICAgICBDb2xpbiBEZXZpbGJpc3MgPGRldmlsYmlzQHVzLmlibS5jb20+Ci0gKiAgICAgICAgICAgU3RlcGhlbiBSb3Rod2VsbCA8c2ZyQGF1MS5pYm0uY29tPgorICogICAgICAgICAgIFN0ZXBoZW4gUm90aHdlbGwKICAqCiAgKiAoQykgQ29weXJpZ2h0IDIwMDAtMjAwNCBJQk0gQ29ycG9yYXRpb24KICAqCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pb2N0bHMuaD4KQEAgLTY4Nyw2ICs2ODgsNyBAQAogCWlmIChvcCA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJZ2V0X2Rldl9pbmZvKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUsICZkZXZpKTsKIAogCS8qIE5vdGU6IFdlIGN1cnJlbnRseSBvbmx5IHN1cHBvcnQgb25lIG1vZGUhICovCkBAIC03MTcsNiArNzE5LDcgQEAKIAogZnJlZV9vcDoKIAlmcmVlX29wX3N0cnVjdChvcCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci92cjQxeHhfZ2l1LmMgYi9kcml2ZXJzL2NoYXIvdnI0MXh4X2dpdS5jCmluZGV4IGU1ZWQwOTEuLmZmZTliNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci92cjQxeHhfZ2l1LmMKKysrIGIvZHJpdmVycy9jaGFyL3ZyNDF4eF9naXUuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogCkBAIC01NDcsNiArNTQ4LDcgQEAKIHsKIAl1bnNpZ25lZCBpbnQgcGluOwogCisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlwaW4gPSBpbWlub3IoaW5vZGUpOwogCWlmIChwaW4gPj0gZ2l1X25yX3BpbnMpCiAJCXJldHVybiAtRUJBREY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvdnQuYyBiL2RyaXZlcnMvY2hhci92dC5jCmluZGV4IGZhMWZmYmYuLjkzNWYxYzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY2hhci92dC5jCisrKyBiL2RyaXZlcnMvY2hhci92dC5jCkBAIC00MzQsNyArNDM0LDcgQEAKIAkgICAgICAgICAgICAgIHZjLT52Y19ibGluaywgdmMtPnZjX3VuZGVybGluZSwKIAkgICAgICAgICAgICAgIHZjLT52Y19yZXZlcnNlIF4gdmMtPnZjX2RlY3Njbm0sIHZjLT52Y19pdGFsaWMpOwogCXZjLT52Y192aWRlb19lcmFzZV9jaGFyID0gKGJ1aWxkX2F0dHIodmMsIHZjLT52Y19jb2xvciwgMSwgdmMtPnZjX2JsaW5rLCAwLCB2Yy0+dmNfZGVjc2NubSwgMCkgPDwgOCkgfCAnICc7Ci0JdmMtPnZjX3NjcmxfZXJhc2VfY2hhciA9IChidWlsZF9hdHRyKHZjLCB2Yy0+dmNfZGVmX2NvbG9yLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSkgPDwgOCkgfCAnICc7CisJdmMtPnZjX3NjcmxfZXJhc2VfY2hhciA9IChidWlsZF9hdHRyKHZjLCB2Yy0+dmNfZGVmX2NvbG9yLCAxLCBmYWxzZSwgZmFsc2UsIHZjLT52Y19kZWNzY25tLCBmYWxzZSkgPDwgOCkgfCAnICc7CiB9CiAKIC8qIE5vdGU6IGludmVydGluZyB0aGUgc2NyZWVuIHR3aWNlIHNob3VsZCByZXZlcnQgdG8gdGhlIG9yaWdpbmFsIHN0YXRlICovCkBAIC05MDksNyArOTA5LDcgQEAKIAogCWlmICh2Yy0+dmNfdHR5KSB7CiAJCXN0cnVjdCB3aW5zaXplIHdzLCAqY3dzID0gJnZjLT52Y190dHktPndpbnNpemU7Ci0JCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJCXN0cnVjdCBwaWQgKnBncnAgPSBOVUxMOwogCiAJCW1lbXNldCgmd3MsIDAsIHNpemVvZih3cykpOwogCQl3cy53c19yb3cgPSB2Yy0+dmNfcm93czsKQEAgLTkxNywxMSArOTE3LDE0IEBACiAJCXdzLndzX3lwaXhlbCA9IHZjLT52Y19zY2FuX2xpbmVzOwogCiAJCW11dGV4X2xvY2soJnZjLT52Y190dHktPnRlcm1pb3NfbXV0ZXgpOwotCQlzcGluX2xvY2tfaXJxc2F2ZSgmdmMtPnZjX3R0eS0+Y3RybF9sb2NrLCBmbGFncyk7Ci0JCWlmICgod3Mud3Nfcm93ICE9IGN3cy0+d3Nfcm93IHx8IHdzLndzX2NvbCAhPSBjd3MtPndzX2NvbCkgJiYKLQkJICAgIHZjLT52Y190dHktPnBncnApCisJCXNwaW5fbG9ja19pcnEoJnZjLT52Y190dHktPmN0cmxfbG9jayk7CisJCWlmICgod3Mud3Nfcm93ICE9IGN3cy0+d3Nfcm93IHx8IHdzLndzX2NvbCAhPSBjd3MtPndzX2NvbCkpCisJCQlwZ3JwID0gZ2V0X3BpZCh2Yy0+dmNfdHR5LT5wZ3JwKTsKKwkJc3Bpbl91bmxvY2tfaXJxKCZ2Yy0+dmNfdHR5LT5jdHJsX2xvY2spOworCQlpZiAocGdycCkgewogCQkJa2lsbF9wZ3JwKHZjLT52Y190dHktPnBncnAsIFNJR1dJTkNILCAxKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmMtPnZjX3R0eS0+Y3RybF9sb2NrLCBmbGFncyk7CisJCQlwdXRfcGlkKHBncnApOworCQl9CiAJCSpjd3MgPSB3czsKIAkJbXV0ZXhfdW5sb2NrKCZ2Yy0+dmNfdHR5LT50ZXJtaW9zX211dGV4KTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIveGlsaW54X2h3aWNhcC94aWxpbnhfaHdpY2FwLmMgYi9kcml2ZXJzL2NoYXIveGlsaW54X2h3aWNhcC94aWxpbnhfaHdpY2FwLmMKaW5kZXggM2VkZjFmYy4uMWUxYjgxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jaGFyL3hpbGlueF9od2ljYXAveGlsaW54X2h3aWNhcC5jCisrKyBiL2RyaXZlcnMvY2hhci94aWxpbnhfaHdpY2FwL3hpbGlueF9od2ljYXAuYwpAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgpAQCAtNTA0LDExICs1MDUsMTIgQEAKIAlzdHJ1Y3QgaHdpY2FwX2RydmRhdGEgKmRydmRhdGE7CiAJaW50IHN0YXR1czsKIAorCWxvY2tfa2VybmVsKCk7CiAJZHJ2ZGF0YSA9IGNvbnRhaW5lcl9vZihpbm9kZS0+aV9jZGV2LCBzdHJ1Y3QgaHdpY2FwX2RydmRhdGEsIGNkZXYpOwogCiAJc3RhdHVzID0gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkcnZkYXRhLT5zZW0pOwogCWlmIChzdGF0dXMpCi0JCXJldHVybiBzdGF0dXM7CisJCWdvdG8gb3V0OwogCiAJaWYgKGRydmRhdGEtPmlzX29wZW4pIHsKIAkJc3RhdHVzID0gLUVCVVNZOwpAQCAtNTI4LDYgKzUzMCw4IEBACiAKICBlcnJvcjoKIAltdXRleF91bmxvY2soJmRydmRhdGEtPnNlbSk7Cisgb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nvbm5lY3Rvci9jb25uZWN0b3IuYyBiL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jCmluZGV4IDg1ZTJiYTcuLmJmNDgzMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvY29ubmVjdG9yL2Nvbm5lY3Rvci5jCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9jb25uZWN0b3IuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogCiAjaW5jbHVkZSA8bmV0L3NvY2suaD4KIApAQCAtNDAzLDYgKzQwNSw0MCBAQAogCW11dGV4X3VubG9jaygmbm90aWZ5X2xvY2spOwogfQogCitzdGF0aWMgaW50IGNuX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCit7CisJc3RydWN0IGNuX3F1ZXVlX2RldiAqZGV2ID0gY2Rldi5jYmRldjsKKwlzdHJ1Y3QgY25fY2FsbGJhY2tfZW50cnkgKmNicTsKKworCXNlcV9wcmludGYobSwgIk5hbWUgICAgICAgICAgICBJRFxuIik7CisKKwlzcGluX2xvY2tfYmgoJmRldi0+cXVldWVfbG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNicSwgJmRldi0+cXVldWVfbGlzdCwgY2FsbGJhY2tfZW50cnkpIHsKKwkJc2VxX3ByaW50ZihtLCAiJS0xNXMgJXU6JXVcbiIsCisJCQkgICBjYnEtPmlkLm5hbWUsCisJCQkgICBjYnEtPmlkLmlkLmlkeCwKKwkJCSAgIGNicS0+aWQuaWQudmFsKTsKKwl9CisKKwlzcGluX3VubG9ja19iaCgmZGV2LT5xdWV1ZV9sb2NrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNuX3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgY25fcHJvY19zaG93LCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgY25fZmlsZV9vcHMgPSB7CisJLm93bmVyICAgPSBUSElTX01PRFVMRSwKKwkub3BlbiAgICA9IGNuX3Byb2Nfb3BlbiwKKwkucmVhZCAgICA9IHNlcV9yZWFkLAorCS5sbHNlZWsgID0gc2VxX2xzZWVrLAorCS5yZWxlYXNlID0gc2luZ2xlX3JlbGVhc2UKK307CisKIHN0YXRpYyBpbnQgX19kZXZpbml0IGNuX2luaXQodm9pZCkKIHsKIAlzdHJ1Y3QgY25fZGV2ICpkZXYgPSAmY2RldjsKQEAgLTQzNCw2ICs0NzAsOCBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlwcm9jX25ldF9mb3BzX2NyZWF0ZSgmaW5pdF9uZXQsICJjb25uZWN0b3IiLCBTX0lSVUdPLCAmY25fZmlsZV9vcHMpOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTQ0Myw2ICs0ODEsOCBAQAogCiAJY25fYWxyZWFkeV9pbml0aWFsaXplZCA9IDA7CiAKKwlwcm9jX25ldF9yZW1vdmUoJmluaXRfbmV0LCAiY29ubmVjdG9yIik7CisKIAljbl9kZWxfY2FsbGJhY2soJmRldi0+aWQpOwogCWNuX3F1ZXVlX2ZyZWVfZGV2KGRldi0+Y2JkZXYpOwogCW5ldGxpbmtfa2VybmVsX3JlbGVhc2UoZGV2LT5ubHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEuYyBiL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxLmMKaW5kZXggN2ZjZTAzOC4uMWQ0MTQ5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEuYworKysgYi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcS5jCkBAIC00MTIsNyArNDEyLDcgQEAKIAkJCQlpbnQgcmV0OwogCiAJCQkJbXV0ZXhfdW5sb2NrKCZjcHVmcmVxX2dvdmVybm9yX211dGV4KTsKLQkJCQlyZXQgPSByZXF1ZXN0X21vZHVsZShuYW1lKTsKKwkJCQlyZXQgPSByZXF1ZXN0X21vZHVsZSgiJXMiLCBuYW1lKTsKIAkJCQltdXRleF9sb2NrKCZjcHVmcmVxX2dvdmVybm9yX211dGV4KTsKIAogCQkJCWlmIChyZXQgPT0gMCkKQEAgLTYyNSw3ICs2MjUsNyBAQAogCXVuc2lnbmVkIGludCBmcmVxID0gMDsKIAl1bnNpZ25lZCBpbnQgcmV0OwogCi0JaWYgKCFwb2xpY3ktPmdvdmVybm9yLT5zdG9yZV9zZXRzcGVlZCkKKwlpZiAoIXBvbGljeS0+Z292ZXJub3IgfHwgIXBvbGljeS0+Z292ZXJub3ItPnN0b3JlX3NldHNwZWVkKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXJldCA9IHNzY2FuZihidWYsICIldSIsICZmcmVxKTsKQEAgLTYzOSw3ICs2MzksNyBAQAogCiBzdGF0aWMgc3NpemVfdCBzaG93X3NjYWxpbmdfc2V0c3BlZWQoc3RydWN0IGNwdWZyZXFfcG9saWN5ICpwb2xpY3ksIGNoYXIgKmJ1ZikKIHsKLQlpZiAoIXBvbGljeS0+Z292ZXJub3ItPnNob3dfc2V0c3BlZWQpCisJaWYgKCFwb2xpY3ktPmdvdmVybm9yIHx8ICFwb2xpY3ktPmdvdmVybm9yLT5zaG93X3NldHNwZWVkKQogCQlyZXR1cm4gc3ByaW50ZihidWYsICI8dW5zdXBwb3J0ZWQ+XG4iKTsKIAogCXJldHVybiBwb2xpY3ktPmdvdmVybm9yLT5zaG93X3NldHNwZWVkKHBvbGljeSwgYnVmKTsKQEAgLTkyOCwxMyArOTI4LDEzIEBACiAJcG9saWN5LT51c2VyX3BvbGljeS5wb2xpY3kgPSBwb2xpY3ktPnBvbGljeTsKIAlwb2xpY3ktPnVzZXJfcG9saWN5LmdvdmVybm9yID0gcG9saWN5LT5nb3Zlcm5vcjsKIAotCXVubG9ja19wb2xpY3lfcndzZW1fd3JpdGUoY3B1KTsKLQogCWlmIChyZXQpIHsKIAkJZHByaW50aygic2V0dGluZyBwb2xpY3kgZmFpbGVkXG4iKTsKIAkJZ290byBlcnJfb3V0X3VucmVnaXN0ZXI7CiAJfQogCisJdW5sb2NrX3BvbGljeV9yd3NlbV93cml0ZShjcHUpOworCiAJa29iamVjdF91ZXZlbnQoJnBvbGljeS0+a29iaiwgS09CSl9BREQpOwogCW1vZHVsZV9wdXQoY3B1ZnJlcV9kcml2ZXItPm93bmVyKTsKIAlkcHJpbnRrKCJpbml0aWFsaXphdGlvbiBjb21wbGV0ZVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWZyZXEvZnJlcV90YWJsZS5jIGIvZHJpdmVycy9jcHVmcmVxL2ZyZXFfdGFibGUuYwppbmRleCBhZTZjZDYwLi5iNjRjNmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NwdWZyZXEvZnJlcV90YWJsZS5jCisrKyBiL2RyaXZlcnMvY3B1ZnJlcS9mcmVxX3RhYmxlLmMKQEAgLTIsNiArMiwxMSBAQAogICogbGludXgvZHJpdmVycy9jcHVmcmVxL2ZyZXFfdGFibGUuYwogICoKICAqIENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDMgRG9taW5payBCcm9kb3dza2kKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NwdWlkbGUvY3B1aWRsZS5jIGIvZHJpdmVycy9jcHVpZGxlL2NwdWlkbGUuYwppbmRleCBmYzU1NWE5Li4yMzU1NGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NwdWlkbGUvY3B1aWRsZS5jCisrKyBiL2RyaXZlcnMvY3B1aWRsZS9jcHVpZGxlLmMKQEAgLTM4LDYgKzM4LDggQEAKIHN0YXRpYyB2b2lkIGNwdWlkbGVfa2lja19jcHVzKHZvaWQpIHt9CiAjZW5kaWYKIAorc3RhdGljIGludCBfX2NwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBjcHVpZGxlX2RldmljZSAqZGV2KTsKKwogLyoqCiAgKiBjcHVpZGxlX2lkbGVfY2FsbCAtIHRoZSBtYWluIGlkbGUgbG9vcAogICoKQEAgLTEzOCw2ICsxNDAsMTIgQEAKIAlpZiAoIWRldi0+c3RhdGVfY291bnQpCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKGRldi0+cmVnaXN0ZXJlZCA9PSAwKSB7CisJCXJldCA9IF9fY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UoZGV2KTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCiAJaWYgKChyZXQgPSBjcHVpZGxlX2FkZF9zdGF0ZV9zeXNmcyhkZXYpKSkKIAkJcmV0dXJuIHJldDsKIApAQCAtMjMyLDEwICsyNDAsMTMgQEAKICNlbmRpZiAvKiBDT05GSUdfQVJDSF9IQVNfQ1BVX1JFTEFYICovCiAKIC8qKgotICogY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UgLSByZWdpc3RlcnMgYSBDUFUncyBpZGxlIFBNIGZlYXR1cmUKKyAqIF9fY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UgLSBpbnRlcm5hbCByZWdpc3RlciBmdW5jdGlvbiBjYWxsZWQgYmVmb3JlIHJlZ2lzdGVyCisgKiBhbmQgZW5hYmxlIHJvdXRpbmVzCiAgKiBAZGV2OiB0aGUgY3B1CisgKgorICogY3B1aWRsZV9sb2NrIG11dGV4IG11c3QgYmUgaGVsZCBiZWZvcmUgdGhpcyBpcyBjYWxsZWQKICAqLwotaW50IGNwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBjcHVpZGxlX2RldmljZSAqZGV2KQorc3RhdGljIGludCBfX2NwdWlkbGVfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBjcHVpZGxlX2RldmljZSAqZGV2KQogewogCWludCByZXQ7CiAJc3RydWN0IHN5c19kZXZpY2UgKnN5c19kZXYgPSBnZXRfY3B1X3N5c2RldigodW5zaWduZWQgbG9uZylkZXYtPmNwdSk7CkBAIC0yNDcsMTggKzI1OCwzNCBAQAogCiAJaW5pdF9jb21wbGV0aW9uKCZkZXYtPmtvYmpfdW5yZWdpc3Rlcik7CiAKLQltdXRleF9sb2NrKCZjcHVpZGxlX2xvY2spOwotCiAJcG9sbF9pZGxlX2luaXQoZGV2KTsKIAogCXBlcl9jcHUoY3B1aWRsZV9kZXZpY2VzLCBkZXYtPmNwdSkgPSBkZXY7CiAJbGlzdF9hZGQoJmRldi0+ZGV2aWNlX2xpc3QsICZjcHVpZGxlX2RldGVjdGVkX2RldmljZXMpOwogCWlmICgocmV0ID0gY3B1aWRsZV9hZGRfc3lzZnMoc3lzX2RldikpKSB7Ci0JCW11dGV4X3VubG9jaygmY3B1aWRsZV9sb2NrKTsKIAkJbW9kdWxlX3B1dChjcHVpZGxlX2N1cnJfZHJpdmVyLT5vd25lcik7CiAJCXJldHVybiByZXQ7CiAJfQogCisJZGV2LT5yZWdpc3RlcmVkID0gMTsKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBjcHVpZGxlX3JlZ2lzdGVyX2RldmljZSAtIHJlZ2lzdGVycyBhIENQVSdzIGlkbGUgUE0gZmVhdHVyZQorICogQGRldjogdGhlIGNwdQorICovCitpbnQgY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGNwdWlkbGVfZGV2aWNlICpkZXYpCit7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJmNwdWlkbGVfbG9jayk7CisKKwlpZiAoKHJldCA9IF9fY3B1aWRsZV9yZWdpc3Rlcl9kZXZpY2UoZGV2KSkpIHsKKwkJbXV0ZXhfdW5sb2NrKCZjcHVpZGxlX2xvY2spOworCQlyZXR1cm4gcmV0OworCX0KKwogCWNwdWlkbGVfZW5hYmxlX2RldmljZShkZXYpOwogCWNwdWlkbGVfaW5zdGFsbF9pZGxlX2hhbmRsZXIoKTsKIApAQCAtMjc4LDYgKzMwNSw5IEBACiB7CiAJc3RydWN0IHN5c19kZXZpY2UgKnN5c19kZXYgPSBnZXRfY3B1X3N5c2RldigodW5zaWduZWQgbG9uZylkZXYtPmNwdSk7CiAKKwlpZiAoZGV2LT5yZWdpc3RlcmVkID09IDApCisJCXJldHVybjsKKwogCWNwdWlkbGVfcGF1c2VfYW5kX2xvY2soKTsKIAogCWNwdWlkbGVfZGlzYWJsZV9kZXZpY2UoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL0tjb25maWcgYi9kcml2ZXJzL2NyeXB0by9LY29uZmlnCmluZGV4IDQzYjcxYjYuLmU1MjIxNDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL0tjb25maWcKKysrIGIvZHJpdmVycy9jcnlwdG8vS2NvbmZpZwpAQCAtMTc0LDQgKzE3NCwzMCBAQAogCSAgU2VsZWN0IHRoaXMgb3B0aW9uIGlmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGUgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKIAkgIG9uIHRoZSBISUZOIDc5NXggY3J5cHRvIGFkYXB0ZXJzLgogCitjb25maWcgQ1JZUFRPX0RFVl9UQUxJVE9TCisJdHJpc3RhdGUgIlRhbGl0b3MgRnJlZXNjYWxlIFNlY3VyaXR5IEVuZ2luZSAoU0VDKSIKKwlzZWxlY3QgQ1JZUFRPX0FMR0FQSQorCXNlbGVjdCBDUllQVE9fQVVUSEVOQworCXNlbGVjdCBIV19SQU5ET00KKwlkZXBlbmRzIG9uIEZTTF9TT0MKKwloZWxwCisJICBTYXkgJ1knIGhlcmUgdG8gdXNlIHRoZSBGcmVlc2NhbGUgU2VjdXJpdHkgRW5naW5lIChTRUMpCisJICB0byBvZmZsb2FkIGNyeXB0b2dyYXBoaWMgYWxnb3JpdGhtIGNvbXB1dGF0aW9uLgorCisJICBUaGUgRnJlZXNjYWxlIFNFQyBpcyBwcmVzZW50IG9uIFBvd2VyUVVJQ0MgJ0UnIHByb2Nlc3NvcnMsIHN1Y2gKKwkgIGFzIHRoZSBNUEM4MzQ5RSBhbmQgTVBDODU0OEUuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHRhbGl0b3MuCisKK2NvbmZpZyBDUllQVE9fREVWX0lYUDRYWAorCXRyaXN0YXRlICJEcml2ZXIgZm9yIElYUDR4eCBjcnlwdG8gaGFyZHdhcmUgYWNjZWxlcmF0aW9uIgorCWRlcGVuZHMgb24gQVJDSF9JWFA0WFgKKwlzZWxlY3QgQ1JZUFRPX0RFUworCXNlbGVjdCBDUllQVE9fQUxHQVBJCisJc2VsZWN0IENSWVBUT19BVVRIRU5DCisJc2VsZWN0IENSWVBUT19CTEtDSVBIRVIKKwloZWxwCisJICBEcml2ZXIgZm9yIHRoZSBJWFA0eHggTlBFIGNyeXB0byBlbmdpbmUuCisKIGVuZGlmICMgQ1JZUFRPX0hXCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NyeXB0by9NYWtlZmlsZSBiL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlCmluZGV4IGMwMzI3ZjAuLjczNTU3YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvY3J5cHRvL01ha2VmaWxlCkBAIC0yLDMgKzIsNSBAQAogb2JqLSQoQ09ORklHX0NSWVBUT19ERVZfUEFETE9DS19TSEEpICs9IHBhZGxvY2stc2hhLm8KIG9iai0kKENPTkZJR19DUllQVE9fREVWX0dFT0RFKSArPSBnZW9kZS1hZXMubwogb2JqLSQoQ09ORklHX0NSWVBUT19ERVZfSElGTl83OTVYKSArPSBoaWZuXzc5NXgubworb2JqLSQoQ09ORklHX0NSWVBUT19ERVZfVEFMSVRPUykgKz0gdGFsaXRvcy5vCitvYmotJChDT05GSUdfQ1JZUFRPX0RFVl9JWFA0WFgpICs9IGl4cDR4eF9jcnlwdG8ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vaGlmbl83OTV4LmMgYi9kcml2ZXJzL2NyeXB0by9oaWZuXzc5NXguYwppbmRleCA4MWYzZjk1Li40ZDIyYjIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2NyeXB0by9oaWZuXzc5NXguYworKysgYi9kcml2ZXJzL2NyeXB0by9oaWZuXzc5NXguYwpAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvc2NhdHRlcmxpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+Ci0jaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CiAjaW5jbHVkZSA8bGludXgvaHdfcmFuZG9tLmg+CiAjaW5jbHVkZSA8bGludXgva3RpbWUuaD4KQEAgLTM2OSw3ICszNjgsOSBAQAogI2RlZmluZQlISUZOX0RfRFNUX1JTSVpFCQk4MCo0CiAjZGVmaW5lCUhJRk5fRF9SRVNfUlNJWkUJCTI0KjQKIAotI2RlZmluZSBISUZOX1FVRVVFX0xFTkdUSAkJSElGTl9EX0NNRF9SU0laRS01CisjZGVmaW5lIEhJRk5fRF9EU1RfREFMSUdOCQk0CisKKyNkZWZpbmUgSElGTl9RVUVVRV9MRU5HVEgJCUhJRk5fRF9DTURfUlNJWkUtMQogCiAjZGVmaW5lIEFFU19NSU5fS0VZX1NJWkUJCTE2CiAjZGVmaW5lIEFFU19NQVhfS0VZX1NJWkUJCTMyCkBAIC01MzUsMTAgKzUzNiwxMCBAQAogICovCiBzdHJ1Y3QgaGlmbl9tYWNfY29tbWFuZAogewotCXZvbGF0aWxlIHUxNiAJCW1hc2tzOwotCXZvbGF0aWxlIHUxNiAJCWhlYWRlcl9za2lwOwotCXZvbGF0aWxlIHUxNiAJCXNvdXJjZV9jb3VudDsKLQl2b2xhdGlsZSB1MTYgCQlyZXNlcnZlZDsKKwl2b2xhdGlsZSBfX2xlMTYgCW1hc2tzOworCXZvbGF0aWxlIF9fbGUxNiAJaGVhZGVyX3NraXA7CisJdm9sYXRpbGUgX19sZTE2IAlzb3VyY2VfY291bnQ7CisJdm9sYXRpbGUgX19sZTE2IAlyZXNlcnZlZDsKIH07CiAKICNkZWZpbmUJSElGTl9NQUNfQ01EX0FMR19NQVNLCQkweDAwMDEKQEAgLTU2NCwxMCArNTY1LDEwIEBACiAKIHN0cnVjdCBoaWZuX2NvbXBfY29tbWFuZAogewotCXZvbGF0aWxlIHUxNiAJCW1hc2tzOwotCXZvbGF0aWxlIHUxNiAJCWhlYWRlcl9za2lwOwotCXZvbGF0aWxlIHUxNiAJCXNvdXJjZV9jb3VudDsKLQl2b2xhdGlsZSB1MTYgCQlyZXNlcnZlZDsKKwl2b2xhdGlsZSBfX2xlMTYgCW1hc2tzOworCXZvbGF0aWxlIF9fbGUxNiAJaGVhZGVyX3NraXA7CisJdm9sYXRpbGUgX19sZTE2IAlzb3VyY2VfY291bnQ7CisJdm9sYXRpbGUgX19sZTE2IAlyZXNlcnZlZDsKIH07CiAKICNkZWZpbmUJSElGTl9DT01QX0NNRF9TUkNMRU5fTQkJMHhjMDAwCkBAIC01ODMsMTAgKzU4NCwxMCBAQAogCiBzdHJ1Y3QgaGlmbl9iYXNlX3Jlc3VsdAogewotCXZvbGF0aWxlIHUxNiAJCWZsYWdzOwotCXZvbGF0aWxlIHUxNiAJCXNlc3Npb247Ci0Jdm9sYXRpbGUgdTE2IAkJc3JjX2NudDsJCS8qIDE1OjAgb2Ygc291cmNlIGNvdW50ICovCi0Jdm9sYXRpbGUgdTE2IAkJZHN0X2NudDsJCS8qIDE1OjAgb2YgZGVzdCBjb3VudCAqLworCXZvbGF0aWxlIF9fbGUxNiAJZmxhZ3M7CisJdm9sYXRpbGUgX19sZTE2IAlzZXNzaW9uOworCXZvbGF0aWxlIF9fbGUxNiAJc3JjX2NudDsJCS8qIDE1OjAgb2Ygc291cmNlIGNvdW50ICovCisJdm9sYXRpbGUgX19sZTE2IAlkc3RfY250OwkJLyogMTU6MCBvZiBkZXN0IGNvdW50ICovCiB9OwogCiAjZGVmaW5lCUhJRk5fQkFTRV9SRVNfRFNUT1ZFUlJVTgkweDAyMDAJLyogZGVzdGluYXRpb24gb3ZlcnJ1biAqLwpAQCAtNTk3LDggKzU5OCw4IEBACiAKIHN0cnVjdCBoaWZuX2NvbXBfcmVzdWx0CiB7Ci0Jdm9sYXRpbGUgdTE2IAkJZmxhZ3M7Ci0Jdm9sYXRpbGUgdTE2IAkJY3JjOworCXZvbGF0aWxlIF9fbGUxNgkJZmxhZ3M7CisJdm9sYXRpbGUgX19sZTE2CQljcmM7CiB9OwogCiAjZGVmaW5lCUhJRk5fQ09NUF9SRVNfTENCX00JCTB4ZmYwMAkvKiBsb25naXR1ZGluYWwgY2hlY2sgYnl0ZSAqLwpAQCAtNjA5LDggKzYxMCw4IEBACiAKIHN0cnVjdCBoaWZuX21hY19yZXN1bHQKIHsKLQl2b2xhdGlsZSB1MTYgCQlmbGFnczsKLQl2b2xhdGlsZSB1MTYgCQlyZXNlcnZlZDsKKwl2b2xhdGlsZSBfX2xlMTYgCWZsYWdzOworCXZvbGF0aWxlIF9fbGUxNiAJcmVzZXJ2ZWQ7CiAJLyogZm9sbG93ZWQgYnkgMCwgNiwgOCwgb3IgMTAgdTE2J3Mgb2YgdGhlIE1BQywgdGhlbiBjcnlwdCAqLwogfTsKIApAQCAtNjE5LDggKzYyMCw4IEBACiAKIHN0cnVjdCBoaWZuX2NyeXB0X3Jlc3VsdAogewotCXZvbGF0aWxlIHUxNiAJCWZsYWdzOwotCXZvbGF0aWxlIHUxNiAJCXJlc2VydmVkOworCXZvbGF0aWxlIF9fbGUxNgkJZmxhZ3M7CisJdm9sYXRpbGUgX19sZTE2CQlyZXNlcnZlZDsKIH07CiAKICNkZWZpbmUJSElGTl9DUllQVF9SRVNfU1JDX05PVFpFUk8JMHgwMDAxCS8qIHNvdXJjZSBleHBpcmVkICovCkBAIC02ODYsMTIgKzY4NywxMiBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgaGlmbl93cml0ZV8wKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCB1MzIgcmVnLCB1MzIgdmFsKQogewotCXdyaXRlbCh2YWwsIGRldi0+YmFyWzBdICsgcmVnKTsKKwl3cml0ZWwoKF9fZm9yY2UgdTMyKWNwdV90b19sZTMyKHZhbCksIGRldi0+YmFyWzBdICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGhpZm5fd3JpdGVfMShzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgdTMyIHJlZywgdTMyIHZhbCkKIHsKLQl3cml0ZWwodmFsLCBkZXYtPmJhclsxXSArIHJlZyk7CisJd3JpdGVsKChfX2ZvcmNlIHUzMiljcHVfdG9fbGUzMih2YWwpLCBkZXYtPmJhclsxXSArIHJlZyk7CiB9CiAKIHN0YXRpYyB2b2lkIGhpZm5fd2FpdF9wdWMoc3RydWN0IGhpZm5fZGV2aWNlICpkZXYpCkBAIC04OTQsNyArODk1LDcgQEAKIAljaGFyICpvZmZ0YmwgPSBOVUxMOwogCWludCBpOwogCi0JZm9yIChpID0gMDsgaSA8IHNpemVvZihwY2kyaWQpL3NpemVvZihwY2kyaWRbMF0pOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwY2kyaWQpOyBpKyspIHsKIAkJaWYgKHBjaTJpZFtpXS5wY2lfdmVuZG9yID09IGRldi0+cGRldi0+dmVuZG9yICYmCiAJCQkJcGNpMmlkW2ldLnBjaV9wcm9kID09IGRldi0+cGRldi0+ZGV2aWNlKSB7CiAJCQlvZmZ0YmwgPSBwY2kyaWRbaV0uY2FyZF9pZDsKQEAgLTEwMzcsMTQgKzEwMzgsMTQgQEAKIAloaWZuX3dyaXRlXzAoZGV2LCBISUZOXzBfUFVJRVIsIEhJRk5fUFVJRVJfRFNUT1ZFUik7CiAKIAkvKiB3cml0ZSBhbGwgNCByaW5nIGFkZHJlc3MgcmVnaXN0ZXJzICovCi0JaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DUkFSLCBfX2NwdV90b19sZTMyKGRwdHIgKwotCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgY21kclswXSkpKTsKLQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX1NSQVIsIF9fY3B1X3RvX2xlMzIoZHB0ciArCi0JCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBzcmNyWzBdKSkpOwotCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfRFJBUiwgX19jcHVfdG9fbGUzMihkcHRyICsKLQkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGRzdHJbMF0pKSk7Ci0JaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9SUkFSLCBfX2NwdV90b19sZTMyKGRwdHIgKwotCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgcmVzclswXSkpKTsKKwloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NSQVIsIGRwdHIgKworCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgY21kclswXSkpOworCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfU1JBUiwgZHB0ciArCisJCQkJb2Zmc2V0b2Yoc3RydWN0IGhpZm5fZG1hLCBzcmNyWzBdKSk7CisJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9EUkFSLCBkcHRyICsKKwkJCQlvZmZzZXRvZihzdHJ1Y3QgaGlmbl9kbWEsIGRzdHJbMF0pKTsKKwloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX1JSQVIsIGRwdHIgKworCQkJCW9mZnNldG9mKHN0cnVjdCBoaWZuX2RtYSwgcmVzclswXSkpOwogCiAJbWRlbGF5KDIpOwogI2lmIDAKQEAgLTExNjYsMTA5ICsxMTY3LDE1IEBACiAJcmV0dXJuIGNtZF9sZW47CiB9CiAKLXN0YXRpYyBpbnQgaGlmbl9zZXR1cF9zcmNfZGVzYyhzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCi0JCXVuc2lnbmVkIGludCBvZmZzZXQsIHVuc2lnbmVkIGludCBzaXplKQotewotCXN0cnVjdCBoaWZuX2RtYSAqZG1hID0gKHN0cnVjdCBoaWZuX2RtYSAqKWRldi0+ZGVzY192aXJ0OwotCWludCBpZHg7Ci0JZG1hX2FkZHJfdCBhZGRyOwotCi0JYWRkciA9IHBjaV9tYXBfcGFnZShkZXYtPnBkZXYsIHBhZ2UsIG9mZnNldCwgc2l6ZSwgUENJX0RNQV9UT0RFVklDRSk7Ci0KLQlpZHggPSBkbWEtPnNyY2k7Ci0KLQlkbWEtPnNyY3JbaWR4XS5wID0gX19jcHVfdG9fbGUzMihhZGRyKTsKLQlkbWEtPnNyY3JbaWR4XS5sID0gX19jcHVfdG9fbGUzMihzaXplKSB8IEhJRk5fRF9WQUxJRCB8Ci0JCQlISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTk9JTlZBTElEIHwgSElGTl9EX0xBU1Q7Ci0KLQlpZiAoKytpZHggPT0gSElGTl9EX1NSQ19SU0laRSkgewotCQlkbWEtPnNyY3JbaWR4XS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAotCQkJCUhJRk5fRF9KVU1QIHwKLQkJCQlISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTEFTVCk7Ci0JCWlkeCA9IDA7Ci0JfQotCi0JZG1hLT5zcmNpID0gaWR4OwotCWRtYS0+c3JjdSsrOwotCi0JaWYgKCEoZGV2LT5mbGFncyAmIEhJRk5fRkxBR19TUkNfQlVTWSkpIHsKLQkJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DU1IsIEhJRk5fRE1BQ1NSX1NfQ1RSTF9FTkEpOwotCQlkZXYtPmZsYWdzIHw9IEhJRk5fRkxBR19TUkNfQlVTWTsKLQl9Ci0KLQlyZXR1cm4gc2l6ZTsKLX0KLQotc3RhdGljIHZvaWQgaGlmbl9zZXR1cF9yZXNfZGVzYyhzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKLQotCWRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fVVNFRF9SRVNVTFQgfAotCQkJSElGTl9EX1ZBTElEIHwgSElGTl9EX0xBU1QpOwotCS8qCi0JICogZG1hLT5yZXNyW2RtYS0+cmVzaV0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9NQVhfUkVTVUxUIHwgSElGTl9EX1ZBTElEIHwKLQkgKgkJCQkJSElGTl9EX0xBU1QgfCBISUZOX0RfTk9JTlZBTElEKTsKLQkgKi8KLQotCWlmICgrK2RtYS0+cmVzaSA9PSBISUZOX0RfUkVTX1JTSVpFKSB7Ci0JCWRtYS0+cmVzcltISUZOX0RfUkVTX1JTSVpFXS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAotCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX0xBU1QpOwotCQlkbWEtPnJlc2kgPSAwOwotCX0KLQotCWRtYS0+cmVzdSsrOwotCi0JaWYgKCEoZGV2LT5mbGFncyAmIEhJRk5fRkxBR19SRVNfQlVTWSkpIHsKLQkJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DU1IsIEhJRk5fRE1BQ1NSX1JfQ1RSTF9FTkEpOwotCQlkZXYtPmZsYWdzIHw9IEhJRk5fRkxBR19SRVNfQlVTWTsKLQl9Ci19Ci0KLXN0YXRpYyB2b2lkIGhpZm5fc2V0dXBfZHN0X2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAotCQl1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIHNpemUpCi17Ci0Jc3RydWN0IGhpZm5fZG1hICpkbWEgPSAoc3RydWN0IGhpZm5fZG1hICopZGV2LT5kZXNjX3ZpcnQ7Ci0JaW50IGlkeDsKLQlkbWFfYWRkcl90IGFkZHI7Ci0KLQlhZGRyID0gcGNpX21hcF9wYWdlKGRldi0+cGRldiwgcGFnZSwgb2Zmc2V0LCBzaXplLCBQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCi0JaWR4ID0gZG1hLT5kc3RpOwotCWRtYS0+ZHN0cltpZHhdLnAgPSBfX2NwdV90b19sZTMyKGFkZHIpOwotCWRtYS0+ZHN0cltpZHhdLmwgPSBfX2NwdV90b19sZTMyKHNpemUgfAlISUZOX0RfVkFMSUQgfAotCQkJSElGTl9EX01BU0tET05FSVJRIHwgSElGTl9EX05PSU5WQUxJRCB8IEhJRk5fRF9MQVNUKTsKLQotCWlmICgrK2lkeCA9PSBISUZOX0RfRFNUX1JTSVpFKSB7Ci0JCWRtYS0+ZHN0cltpZHhdLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fRF9WQUxJRCB8Ci0JCQkJSElGTl9EX0pVTVAgfCBISUZOX0RfTUFTS0RPTkVJUlEgfAotCQkJCUhJRk5fRF9MQVNUIHwgSElGTl9EX05PSU5WQUxJRCk7Ci0JCWlkeCA9IDA7Ci0JfQotCWRtYS0+ZHN0aSA9IGlkeDsKLQlkbWEtPmRzdHUrKzsKLQotCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfRFNUX0JVU1kpKSB7Ci0JCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9EX0NUUkxfRU5BKTsKLQkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfRFNUX0JVU1k7Ci0JfQotfQotCi1zdGF0aWMgaW50IGhpZm5fc2V0dXBfZG1hKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqc3BhZ2UsIHVuc2lnbmVkIGludCBzb2ZmLAotCQlzdHJ1Y3QgcGFnZSAqZHBhZ2UsIHVuc2lnbmVkIGludCBkb2ZmLCB1bnNpZ25lZCBpbnQgbmJ5dGVzLCB2b2lkICpwcml2LAotCQlzdHJ1Y3QgaGlmbl9jb250ZXh0ICpjdHgpCitzdGF0aWMgaW50IGhpZm5fc2V0dXBfY21kX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsCisJCXN0cnVjdCBoaWZuX2NvbnRleHQgKmN0eCwgdm9pZCAqcHJpdiwgdW5zaWduZWQgaW50IG5ieXRlcykKIHsKIAlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKIAlpbnQgY21kX2xlbiwgc2FfaWR4OwogCXU4ICpidWYsICpidWZfcG9zOwogCXUxNiBtYXNrOwogCi0JZHByaW50aygiJXM6IHNwYWdlOiAlcCwgc29mZnNldDogJXUsIGRwYWdlOiAlcCwgZG9mZnNldDogJXUsIG5ieXRlczogJXUsIHByaXY6ICVwLCBjdHg6ICVwLlxuIiwKLQkJCWRldi0+bmFtZSwgc3BhZ2UsIHNvZmYsIGRwYWdlLCBkb2ZmLCBuYnl0ZXMsIHByaXYsIGN0eCk7Ci0KLQlzYV9pZHggPSBkbWEtPnJlc2k7Ci0KLQloaWZuX3NldHVwX3NyY19kZXNjKGRldiwgc3BhZ2UsIHNvZmYsIG5ieXRlcyk7Ci0KKwlzYV9pZHggPSBkbWEtPmNtZGk7CiAJYnVmX3BvcyA9IGJ1ZiA9IGRtYS0+Y29tbWFuZF9idWZzW2RtYS0+Y21kaV07CiAKIAltYXNrID0gMDsKQEAgLTEzNzAsMTYgKzEyNzcsMTEzIEBACiAJCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9DX0NUUkxfRU5BKTsKIAkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfQ01EX0JVU1k7CiAJfQotCi0JaGlmbl9zZXR1cF9kc3RfZGVzYyhkZXYsIGRwYWdlLCBkb2ZmLCBuYnl0ZXMpOwotCWhpZm5fc2V0dXBfcmVzX2Rlc2MoZGV2KTsKLQogCXJldHVybiAwOwogCiBlcnJfb3V0OgogCXJldHVybiAtRUlOVkFMOwogfQogCitzdGF0aWMgaW50IGhpZm5fc2V0dXBfc3JjX2Rlc2Moc3RydWN0IGhpZm5fZGV2aWNlICpkZXYsIHN0cnVjdCBwYWdlICpwYWdlLAorCQl1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKwlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKKwlpbnQgaWR4OworCWRtYV9hZGRyX3QgYWRkcjsKKworCWFkZHIgPSBwY2lfbWFwX3BhZ2UoZGV2LT5wZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIFBDSV9ETUFfVE9ERVZJQ0UpOworCisJaWR4ID0gZG1hLT5zcmNpOworCisJZG1hLT5zcmNyW2lkeF0ucCA9IF9fY3B1X3RvX2xlMzIoYWRkcik7CisJZG1hLT5zcmNyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoc2l6ZSB8IEhJRk5fRF9WQUxJRCB8CisJCQlISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTEFTVCk7CisKKwlpZiAoKytpZHggPT0gSElGTl9EX1NSQ19SU0laRSkgeworCQlkbWEtPnNyY3JbaWR4XS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAorCQkJCUhJRk5fRF9KVU1QIHwKKwkJCQlISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTEFTVCk7CisJCWlkeCA9IDA7CisJfQorCisJZG1hLT5zcmNpID0gaWR4OworCWRtYS0+c3JjdSsrOworCisJaWYgKCEoZGV2LT5mbGFncyAmIEhJRk5fRkxBR19TUkNfQlVTWSkpIHsKKwkJaGlmbl93cml0ZV8xKGRldiwgSElGTl8xX0RNQV9DU1IsIEhJRk5fRE1BQ1NSX1NfQ1RSTF9FTkEpOworCQlkZXYtPmZsYWdzIHw9IEhJRk5fRkxBR19TUkNfQlVTWTsKKwl9CisKKwlyZXR1cm4gc2l6ZTsKK30KKworc3RhdGljIHZvaWQgaGlmbl9zZXR1cF9yZXNfZGVzYyhzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKKworCWRtYS0+cmVzcltkbWEtPnJlc2ldLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fVVNFRF9SRVNVTFQgfAorCQkJSElGTl9EX1ZBTElEIHwgSElGTl9EX0xBU1QpOworCS8qCisJICogZG1hLT5yZXNyW2RtYS0+cmVzaV0ubCA9IF9fY3B1X3RvX2xlMzIoSElGTl9NQVhfUkVTVUxUIHwgSElGTl9EX1ZBTElEIHwKKwkgKgkJCQkJSElGTl9EX0xBU1QpOworCSAqLworCisJaWYgKCsrZG1hLT5yZXNpID09IEhJRk5fRF9SRVNfUlNJWkUpIHsKKwkJZG1hLT5yZXNyW0hJRk5fRF9SRVNfUlNJWkVdLmwgPSBfX2NwdV90b19sZTMyKEhJRk5fRF9WQUxJRCB8CisJCQkJSElGTl9EX0pVTVAgfCBISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTEFTVCk7CisJCWRtYS0+cmVzaSA9IDA7CisJfQorCisJZG1hLT5yZXN1Kys7CisKKwlpZiAoIShkZXYtPmZsYWdzICYgSElGTl9GTEFHX1JFU19CVVNZKSkgeworCQloaWZuX3dyaXRlXzEoZGV2LCBISUZOXzFfRE1BX0NTUiwgSElGTl9ETUFDU1JfUl9DVFJMX0VOQSk7CisJCWRldi0+ZmxhZ3MgfD0gSElGTl9GTEFHX1JFU19CVVNZOworCX0KK30KKworc3RhdGljIHZvaWQgaGlmbl9zZXR1cF9kc3RfZGVzYyhzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiwgc3RydWN0IHBhZ2UgKnBhZ2UsCisJCXVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgc2l6ZSkKK3sKKwlzdHJ1Y3QgaGlmbl9kbWEgKmRtYSA9IChzdHJ1Y3QgaGlmbl9kbWEgKilkZXYtPmRlc2NfdmlydDsKKwlpbnQgaWR4OworCWRtYV9hZGRyX3QgYWRkcjsKKworCWFkZHIgPSBwY2lfbWFwX3BhZ2UoZGV2LT5wZGV2LCBwYWdlLCBvZmZzZXQsIHNpemUsIFBDSV9ETUFfRlJPTURFVklDRSk7CisKKwlpZHggPSBkbWEtPmRzdGk7CisJZG1hLT5kc3RyW2lkeF0ucCA9IF9fY3B1X3RvX2xlMzIoYWRkcik7CisJZG1hLT5kc3RyW2lkeF0ubCA9IF9fY3B1X3RvX2xlMzIoc2l6ZSB8CUhJRk5fRF9WQUxJRCB8CisJCQlISUZOX0RfTUFTS0RPTkVJUlEgfCBISUZOX0RfTEFTVCk7CisKKwlpZiAoKytpZHggPT0gSElGTl9EX0RTVF9SU0laRSkgeworCQlkbWEtPmRzdHJbaWR4XS5sID0gX19jcHVfdG9fbGUzMihISUZOX0RfVkFMSUQgfAorCQkJCUhJRk5fRF9KVU1QIHwgSElGTl9EX01BU0tET05FSVJRIHwKKwkJCQlISUZOX0RfTEFTVCk7CisJCWlkeCA9IDA7CisJfQorCWRtYS0+ZHN0aSA9IGlkeDsKKwlkbWEtPmRzdHUrKzsKKworCWlmICghKGRldi0+ZmxhZ3MgJiBISUZOX0ZMQUdfRFNUX0JVU1kpKSB7CisJCWhpZm5fd3JpdGVfMShkZXYsIEhJRk5fMV9ETUFfQ1NSLCBISUZOX0RNQUNTUl9EX0NUUkxfRU5BKTsKKwkJZGV2LT5mbGFncyB8PSBISUZOX0ZMQUdfRFNUX0JVU1k7CisJfQorfQorCitzdGF0aWMgaW50IGhpZm5fc2V0dXBfZG1hKHN0cnVjdCBoaWZuX2RldmljZSAqZGV2LCBzdHJ1Y3QgcGFnZSAqc3BhZ2UsIHVuc2lnbmVkIGludCBzb2ZmLAorCQlzdHJ1Y3QgcGFnZSAqZHBhZ2UsIHVuc2lnbmVkIGludCBkb2ZmLCB1bnNpZ25lZCBpbnQgbmJ5dGVzLCB2b2lkICpwcml2LAorCQlzdHJ1Y3QgaGlmbl9jb250ZXh0ICpjdHgpCit7CisJZHByaW50aygiJXM6IHNwYWdlOiAlcCwgc29mZnNldDogJXUsIGRwYWdlOiAlcCwgZG9mZnNldDogJXUsIG5ieXRlczogJXUsIHByaXY6ICVwLCBjdHg6ICVwLlxuIiwKKwkJCWRldi0+bmFtZSwgc3BhZ2UsIHNvZmYsIGRwYWdlLCBkb2ZmLCBuYnl0ZXMsIHByaXYsIGN0eCk7CisKKwloaWZuX3NldHVwX3NyY19kZXNjKGRldiwgc3BhZ2UsIHNvZmYsIG5ieXRlcyk7CisJaGlmbl9zZXR1cF9jbWRfZGVzYyhkZXYsIGN0eCwgcHJpdiwgbmJ5dGVzKTsKKwloaWZuX3NldHVwX2RzdF9kZXNjKGRldiwgZHBhZ2UsIGRvZmYsIG5ieXRlcyk7CisJaGlmbl9zZXR1cF9yZXNfZGVzYyhkZXYpOworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGFibGtjaXBoZXJfd2Fsa19pbml0KHN0cnVjdCBhYmxrY2lwaGVyX3dhbGsgKncsCiAJCWludCBudW0sIGdmcF90IGdmcF9mbGFncykKIHsKQEAgLTE0MzEsNyArMTQzNSw3IEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJd2hpbGUgKHNpemUpIHsKLQkJY29weSA9IG1pbihkcmVzdCwgc3JjLT5sZW5ndGgpOworCQljb3B5ID0gbWluKGRyZXN0LCBtaW4oc2l6ZSwgc3JjLT5sZW5ndGgpKTsKIAogCQlzYWRkciA9IGttYXBfYXRvbWljKHNnX3BhZ2Uoc3JjKSwgS01fU09GVElSUTEpOwogCQltZW1jcHkoZGFkZHIsIHNhZGRyICsgc3JjLT5vZmZzZXQsIGNvcHkpOwpAQCAtMTQ1OCwxMCArMTQ2Miw2IEBACiBzdGF0aWMgaW50IGFibGtjaXBoZXJfd2FsayhzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpyZXEsCiAJCXN0cnVjdCBhYmxrY2lwaGVyX3dhbGsgKncpCiB7Ci0JdW5zaWduZWQgYmxvY2tzaXplID0KLQkJY3J5cHRvX2FibGtjaXBoZXJfYmxvY2tzaXplKGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpKTsKLQl1bnNpZ25lZCBhbGlnbm1hc2sgPQotCQljcnlwdG9fYWJsa2NpcGhlcl9hbGlnbm1hc2soY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSkpOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLCAqZHN0LCAqdDsKIAl2b2lkICpkYWRkcjsKIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gcmVxLT5uYnl0ZXMsIG9mZnNldCwgY29weSwgZGlmZjsKQEAgLTE0NzcsMTYgKzE0NzcsMTQgQEAKIAkJZHN0ID0gJnJlcS0+ZHN0W2lkeF07CiAKIAkJZHByaW50aygiXG4lczogc2xlbjogJXUsIGRsZW46ICV1LCBzb2ZmOiAldSwgZG9mZjogJXUsIG9mZnNldDogJXUsICIKLQkJCQkiYmxvY2tzaXplOiAldSwgbmJ5dGVzOiAldS5cbiIsCisJCQkJIm5ieXRlczogJXUuXG4iLAogCQkJCV9fZnVuY19fLCBzcmMtPmxlbmd0aCwgZHN0LT5sZW5ndGgsIHNyYy0+b2Zmc2V0LAotCQkJCWRzdC0+b2Zmc2V0LCBvZmZzZXQsIGJsb2Nrc2l6ZSwgbmJ5dGVzKTsKKwkJCQlkc3QtPm9mZnNldCwgb2Zmc2V0LCBuYnl0ZXMpOwogCi0JCWlmIChzcmMtPmxlbmd0aCAmIChibG9ja3NpemUgLSAxKSB8fAotCQkJCXNyYy0+b2Zmc2V0ICYgKGFsaWdubWFzayAtIDEpIHx8Ci0JCQkJZHN0LT5sZW5ndGggJiAoYmxvY2tzaXplIC0gMSkgfHwKLQkJCQlkc3QtPm9mZnNldCAmIChhbGlnbm1hc2sgLSAxKSB8fAotCQkJCW9mZnNldCkgewotCQkJdW5zaWduZWQgc2xlbiA9IHNyYy0+bGVuZ3RoIC0gb2Zmc2V0OworCQlpZiAoIUlTX0FMSUdORUQoZHN0LT5vZmZzZXQsIEhJRk5fRF9EU1RfREFMSUdOKSB8fAorCQkgICAgIUlTX0FMSUdORUQoZHN0LT5sZW5ndGgsIEhJRk5fRF9EU1RfREFMSUdOKSB8fAorCQkgICAgb2Zmc2V0KSB7CisJCQl1bnNpZ25lZCBzbGVuID0gbWluKHNyYy0+bGVuZ3RoIC0gb2Zmc2V0LCBuYnl0ZXMpOwogCQkJdW5zaWduZWQgZGxlbiA9IFBBR0VfU0laRTsKIAogCQkJdCA9ICZ3LT5jYWNoZVtpZHhdOwpAQCAtMTQ5OCw4ICsxNDk2LDggQEAKIAogCQkJaWR4ICs9IGVycjsKIAotCQkJY29weSA9IHNsZW4gJiB+KGJsb2Nrc2l6ZSAtIDEpOwotCQkJZGlmZiA9IHNsZW4gJiAoYmxvY2tzaXplIC0gMSk7CisJCQljb3B5ID0gc2xlbiAmIH4oSElGTl9EX0RTVF9EQUxJR04gLSAxKTsKKwkJCWRpZmYgPSBzbGVuICYgKEhJRk5fRF9EU1RfREFMSUdOIC0gMSk7CiAKIAkJCWlmIChkbGVuIDwgbmJ5dGVzKSB7CiAJCQkJLyoKQEAgLTE1MDcsNyArMTUwNSw3IEBACiAJCQkJICogdG8gcHV0IHRoZXJlIGFkZGl0aW9uYWwgYmxvY2tzaXplZCBjaHVuaywKIAkJCQkgKiBzbyB3ZSBtYXJrIHRoYXQgcGFnZSBhcyBjb250YWluaW5nIG9ubHkKIAkJCQkgKiBibG9ja3NpemUgYWxpZ25lZCBjaHVua3M6Ci0JCQkJICogCXQtPmxlbmd0aCA9IChzbGVuICYgfihibG9ja3NpemUgLSAxKSk7CisJCQkJICogCXQtPmxlbmd0aCA9IChzbGVuICYgfihISUZOX0RfRFNUX0RBTElHTiAtIDEpKTsKIAkJCQkgKiBhbmQgaW5jcmVhc2UgbnVtYmVyIG9mIGJ5dGVzIHRvIGJlIHByb2Nlc3NlZAogCQkJCSAqIGluIG5leHQgY2h1bms6CiAJCQkJICogCW5ieXRlcyArPSBkaWZmOwpAQCAtMTU0NCw3ICsxNTQyLDcgQEAKIAogCQkJa3VubWFwX2F0b21pYyhkYWRkciwgS01fU09GVElSUTApOwogCQl9IGVsc2UgewotCQkJbmJ5dGVzIC09IHNyYy0+bGVuZ3RoOworCQkJbmJ5dGVzIC09IG1pbihzcmMtPmxlbmd0aCwgbmJ5dGVzKTsKIAkJCWlkeCsrOwogCQl9CiAKQEAgLTE1NjMsMTQgKzE1NjEsMTAgQEAKIAlzdHJ1Y3QgaGlmbl9jb250ZXh0ICpjdHggPSBjcnlwdG9fdGZtX2N0eChyZXEtPmJhc2UudGZtKTsKIAlzdHJ1Y3QgaGlmbl9kZXZpY2UgKmRldiA9IGN0eC0+ZGV2OwogCXN0cnVjdCBwYWdlICpzcGFnZSwgKmRwYWdlOwotCXVuc2lnbmVkIGxvbmcgc29mZiwgZG9mZiwgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBzb2ZmLCBkb2ZmLCBkbGVuLCBmbGFnczsKIAl1bnNpZ25lZCBpbnQgbmJ5dGVzID0gcmVxLT5uYnl0ZXMsIGlkeCA9IDAsIGxlbjsKIAlpbnQgZXJyID0gLUVJTlZBTCwgc2dfbnVtOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLCAqZHN0LCAqdDsKLQl1bnNpZ25lZCBibG9ja3NpemUgPQotCQljcnlwdG9fYWJsa2NpcGhlcl9ibG9ja3NpemUoY3J5cHRvX2FibGtjaXBoZXJfcmVxdGZtKHJlcSkpOwotCXVuc2lnbmVkIGFsaWdubWFzayA9Ci0JCWNyeXB0b19hYmxrY2lwaGVyX2FsaWdubWFzayhjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKSk7CiAKIAlpZiAoY3R4LT5pdiAmJiAhY3R4LT5pdnNpemUgJiYgY3R4LT5tb2RlICE9IEFDUllQVE9fTU9ERV9FQ0IpCiAJCWdvdG8gZXJyX291dF9leGl0OwpAQCAtMTU3OCwxNyArMTU3MiwxNCBAQAogCWN0eC0+d2Fsay5mbGFncyA9IDA7CiAKIAl3aGlsZSAobmJ5dGVzKSB7Ci0JCXNyYyA9ICZyZXEtPnNyY1tpZHhdOwogCQlkc3QgPSAmcmVxLT5kc3RbaWR4XTsKKwkJZGxlbiA9IG1pbihkc3QtPmxlbmd0aCwgbmJ5dGVzKTsKIAotCQlpZiAoc3JjLT5sZW5ndGggJiAoYmxvY2tzaXplIC0gMSkgfHwKLQkJCQlzcmMtPm9mZnNldCAmIChhbGlnbm1hc2sgLSAxKSB8fAotCQkJCWRzdC0+bGVuZ3RoICYgKGJsb2Nrc2l6ZSAtIDEpIHx8Ci0JCQkJZHN0LT5vZmZzZXQgJiAoYWxpZ25tYXNrIC0gMSkpIHsKKwkJaWYgKCFJU19BTElHTkVEKGRzdC0+b2Zmc2V0LCBISUZOX0RfRFNUX0RBTElHTikgfHwKKwkJICAgICFJU19BTElHTkVEKGRsZW4sIEhJRk5fRF9EU1RfREFMSUdOKSkKIAkJCWN0eC0+d2Fsay5mbGFncyB8PSBBU1lOQ19GTEFHU19NSVNBTElHTkVEOwotCQl9CiAKLQkJbmJ5dGVzIC09IHNyYy0+bGVuZ3RoOworCQluYnl0ZXMgLT0gZGxlbjsKIAkJaWR4Kys7CiAJfQogCkBAIC0xNjAyLDcgKzE1OTMsMTAgQEAKIAlpZHggPSAwOwogCiAJc2dfbnVtID0gYWJsa2NpcGhlcl93YWxrKHJlcSwgJmN0eC0+d2Fsayk7Ci0KKwlpZiAoc2dfbnVtIDwgMCkgeworCQllcnIgPSBzZ19udW07CisJCWdvdG8gZXJyX291dF9leGl0OworCX0KIAlhdG9taWNfc2V0KCZjdHgtPnNnX251bSwgc2dfbnVtKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmxvY2ssIGZsYWdzKTsKQEAgLTE2NDAsNyArMTYzNCw3IEBACiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycl9vdXQ7CiAKLQkJbmJ5dGVzIC09IGxlbjsKKwkJbmJ5dGVzIC09IG1pbihsZW4sIG5ieXRlcyk7CiAJfQogCiAJZGV2LT5hY3RpdmUgPSBISUZOX0RFRkFVTFRfQUNUSVZFX05VTTsKQEAgLTE2NTEsNyArMTY0NSw3IEBACiBlcnJfb3V0OgogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+bG9jaywgZmxhZ3MpOwogZXJyX291dF9leGl0OgotCWlmIChlcnIgJiYgcHJpbnRrX3JhdGVsaW1pdCgpKQorCWlmIChlcnIpCiAJCWRwcmludGsoIiVzOiBpdjogJXAgWyVkXSwga2V5OiAlcCBbJWRdLCBtb2RlOiAldSwgb3A6ICV1LCAiCiAJCQkJInR5cGU6ICV1LCBlcnI6ICVkLlxuIiwKIAkJCWRldi0+bmFtZSwgY3R4LT5pdiwgY3R4LT5pdnNpemUsCkBAIC0xNzQ1LDggKzE3MzksNyBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXdoaWxlIChzaXplKSB7Ci0KLQkJY29weSA9IG1pbihkc3QtPmxlbmd0aCwgc3Jlc3QpOworCQljb3B5ID0gbWluKHNyZXN0LCBtaW4oZHN0LT5sZW5ndGgsIHNpemUpKTsKIAogCQlkYWRkciA9IGttYXBfYXRvbWljKHNnX3BhZ2UoZHN0KSwgS01fSVJRMCk7CiAJCW1lbWNweShkYWRkciArIGRzdC0+b2Zmc2V0ICsgb2Zmc2V0LCBzYWRkciwgY29weSk7CkBAIC0xODAzLDcgKzE3OTYsNyBAQAogCQkJCQlzZ19wYWdlKGRzdCksIGRzdC0+bGVuZ3RoLCBuYnl0ZXMpOwogCiAJCQkJaWYgKCF0LT5sZW5ndGgpIHsKLQkJCQkJbmJ5dGVzIC09IGRzdC0+bGVuZ3RoOworCQkJCQluYnl0ZXMgLT0gbWluKGRzdC0+bGVuZ3RoLCBuYnl0ZXMpOwogCQkJCQlpZHgrKzsKIAkJCQkJY29udGludWU7CiAJCQkJfQpAQCAtMjIwMiw5ICsyMTk1LDkgQEAKIAkJcmV0dXJuIGVycjsKIAogCWlmIChkZXYtPnN0YXJ0ZWQgPCBISUZOX1FVRVVFX0xFTkdUSCAmJglkZXYtPnF1ZXVlLnFsZW4pCi0JCWVyciA9IGhpZm5fcHJvY2Vzc19xdWV1ZShkZXYpOworCQloaWZuX3Byb2Nlc3NfcXVldWUoZGV2KTsKIAotCXJldHVybiBlcnI7CisJcmV0dXJuIC1FSU5QUk9HUkVTUzsKIH0KIAogLyoKQEAgLTIzNjQsNyArMjM1Nyw3IEBACiAJICogM0RFUyBFQ0IsIENCQywgQ0ZCIGFuZCBPRkIgbW9kZXMuCiAJICovCiAJewotCQkubmFtZSA9ICJjZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImhpZm4tM2RlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImNmYihkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAiY2ZiLTNkZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCkBAIC0yMzc0LDcgKzIzNjcsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJvZmIoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImhpZm4tM2RlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gIm9mYihkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAib2ZiLTNkZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCkBAIC0yMzg0LDggKzIzNzcsOSBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJjYmMoZGVzM19lZGUpIiwgLmRydl9uYW1lID0gImhpZm4tM2RlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gImNiYyhkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAiY2JjLTNkZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKKwkJCS5pdnNpemUJCT0JSElGTl9JVl9MRU5HVEgsCiAJCQkubWluX2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fM0RFU19LRVlfTEVOR1RILAogCQkJLnNldGtleQkJPQloaWZuX3NldGtleSwKQEAgLTIzOTQsNyArMjM4OCw3IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImVjYihkZXMzX2VkZSkiLCAuZHJ2X25hbWUgPSAiaGlmbi0zZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiZWNiKGRlczNfZWRlKSIsIC5kcnZfbmFtZSA9ICJlY2ItM2RlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JSElGTl8zREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOXzNERVNfS0VZX0xFTkdUSCwKQEAgLTI0MDgsNyArMjQwMiw3IEBACiAJICogREVTIEVDQiwgQ0JDLCBDRkIgYW5kIE9GQiBtb2Rlcy4KIAkgKi8KIAl7Ci0JCS5uYW1lID0gImNmYihkZXMpIiwgLmRydl9uYW1lID0gImhpZm4tZGVzIiwgLmJzaXplID0gOCwKKwkJLm5hbWUgPSAiY2ZiKGRlcykiLCAuZHJ2X25hbWUgPSAiY2ZiLWRlcyIsIC5ic2l6ZSA9IDgsCiAJCS5hYmxrY2lwaGVyID0gewogCQkJLm1pbl9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCkBAIC0yNDE4LDcgKzI0MTIsNyBAQAogCQl9LAogCX0sCiAJewotCQkubmFtZSA9ICJvZmIoZGVzKSIsIC5kcnZfbmFtZSA9ICJoaWZuLWRlcyIsIC5ic2l6ZSA9IDgsCisJCS5uYW1lID0gIm9mYihkZXMpIiwgLmRydl9uYW1lID0gIm9mYi1kZXMiLCAuYnNpemUgPSA4LAogCQkuYWJsa2NpcGhlciA9IHsKIAkJCS5taW5fa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkubWF4X2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILApAQCAtMjQyOCw4ICsyNDIyLDkgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAiY2JjKGRlcykiLCAuZHJ2X25hbWUgPSAiaGlmbi1kZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJjYmMoZGVzKSIsIC5kcnZfbmFtZSA9ICJjYmMtZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CisJCQkuaXZzaXplCQk9CUhJRk5fSVZfTEVOR1RILAogCQkJLm1pbl9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKIAkJCS5tYXhfa2V5c2l6ZQk9CUhJRk5fREVTX0tFWV9MRU5HVEgsCiAJCQkuc2V0a2V5CQk9CWhpZm5fc2V0a2V5LApAQCAtMjQzOCw3ICsyNDMzLDcgQEAKIAkJfSwKIAl9LAogCXsKLQkJLm5hbWUgPSAiZWNiKGRlcykiLCAuZHJ2X25hbWUgPSAiaGlmbi1kZXMiLCAuYnNpemUgPSA4LAorCQkubmFtZSA9ICJlY2IoZGVzKSIsIC5kcnZfbmFtZSA9ICJlY2ItZGVzIiwgLmJzaXplID0gOCwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlISUZOX0RFU19LRVlfTEVOR1RILAogCQkJLm1heF9rZXlzaXplCT0JSElGTl9ERVNfS0VZX0xFTkdUSCwKQEAgLTI0NTIsNyArMjQ0Nyw3IEBACiAJICogQUVTIEVDQiwgQ0JDLCBDRkIgYW5kIE9GQiBtb2Rlcy4KIAkgKi8KIAl7Ci0JCS5uYW1lID0gImVjYihhZXMpIiwgLmRydl9uYW1lID0gImhpZm4tYWVzIiwgLmJzaXplID0gMTYsCisJCS5uYW1lID0gImVjYihhZXMpIiwgLmRydl9uYW1lID0gImVjYi1hZXMiLCAuYnNpemUgPSAxNiwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlBRVNfTUlOX0tFWV9TSVpFLAogCQkJLm1heF9rZXlzaXplCT0JQUVTX01BWF9LRVlfU0laRSwKQEAgLTI0NjIsOCArMjQ1Nyw5IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImNiYyhhZXMpIiwgLmRydl9uYW1lID0gImhpZm4tYWVzIiwgLmJzaXplID0gMTYsCisJCS5uYW1lID0gImNiYyhhZXMpIiwgLmRydl9uYW1lID0gImNiYy1hZXMiLCAuYnNpemUgPSAxNiwKIAkJLmFibGtjaXBoZXIgPSB7CisJCQkuaXZzaXplCQk9CUhJRk5fQUVTX0lWX0xFTkdUSCwKIAkJCS5taW5fa2V5c2l6ZQk9CUFFU19NSU5fS0VZX1NJWkUsCiAJCQkubWF4X2tleXNpemUJPQlBRVNfTUFYX0tFWV9TSVpFLAogCQkJLnNldGtleQkJPQloaWZuX3NldGtleSwKQEAgLTI0NzIsNyArMjQ2OCw3IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gImNmYihhZXMpIiwgLmRydl9uYW1lID0gImhpZm4tYWVzIiwgLmJzaXplID0gMTYsCisJCS5uYW1lID0gImNmYihhZXMpIiwgLmRydl9uYW1lID0gImNmYi1hZXMiLCAuYnNpemUgPSAxNiwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlBRVNfTUlOX0tFWV9TSVpFLAogCQkJLm1heF9rZXlzaXplCT0JQUVTX01BWF9LRVlfU0laRSwKQEAgLTI0ODIsNyArMjQ3OCw3IEBACiAJCX0sCiAJfSwKIAl7Ci0JCS5uYW1lID0gIm9mYihhZXMpIiwgLmRydl9uYW1lID0gImhpZm4tYWVzIiwgLmJzaXplID0gMTYsCisJCS5uYW1lID0gIm9mYihhZXMpIiwgLmRydl9uYW1lID0gIm9mYi1hZXMiLCAuYnNpemUgPSAxNiwKIAkJLmFibGtjaXBoZXIgPSB7CiAJCQkubWluX2tleXNpemUJPQlBRVNfTUlOX0tFWV9TSVpFLAogCQkJLm1heF9rZXlzaXplCT0JQUVTX01BWF9LRVlfU0laRSwKQEAgLTI1MTQsMTUgKzI1MTAsMTQgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlzbnByaW50ZihhbGctPmFsZy5jcmFfbmFtZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgdC0+bmFtZSk7Ci0Jc25wcmludGYoYWxnLT5hbGcuY3JhX2RyaXZlcl9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLCB0LT5kcnZfbmFtZSk7CisJc25wcmludGYoYWxnLT5hbGcuY3JhX2RyaXZlcl9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMtJXMiLAorCQkgdC0+ZHJ2X25hbWUsIGRldi0+bmFtZSk7CiAKIAlhbGctPmFsZy5jcmFfcHJpb3JpdHkgPSAzMDA7CiAJYWxnLT5hbGcuY3JhX2ZsYWdzID0gQ1JZUFRPX0FMR19UWVBFX0FCTEtDSVBIRVIgfCBDUllQVE9fQUxHX0FTWU5DOwogCWFsZy0+YWxnLmNyYV9ibG9ja3NpemUgPSB0LT5ic2l6ZTsKIAlhbGctPmFsZy5jcmFfY3R4c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaGlmbl9jb250ZXh0KTsKLQlhbGctPmFsZy5jcmFfYWxpZ25tYXNrID0gMTU7Ci0JaWYgKHQtPmJzaXplID09IDgpCi0JCWFsZy0+YWxnLmNyYV9hbGlnbm1hc2sgPSAzOworCWFsZy0+YWxnLmNyYV9hbGlnbm1hc2sgPSAwOwogCWFsZy0+YWxnLmNyYV90eXBlID0gJmNyeXB0b19hYmxrY2lwaGVyX3R5cGU7CiAJYWxnLT5hbGcuY3JhX21vZHVsZSA9IFRISVNfTU9EVUxFOwogCWFsZy0+YWxnLmNyYV91LmFibGtjaXBoZXIgPSB0LT5hYmxrY2lwaGVyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vaXhwNHh4X2NyeXB0by5jIGIvZHJpdmVycy9jcnlwdG8vaXhwNHh4X2NyeXB0by5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYTEwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2NyeXB0by9peHA0eHhfY3J5cHRvLmMKQEAgLTAsMCArMSwxNTA2IEBACisvKgorICogSW50ZWwgSVhQNHh4IE5QRS1DIGNyeXB0byBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ2hyaXN0aWFuIEhvaG5zdGFlZHQgPGNob2huc3RhZWR0QGlubm9taW5hdGUuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiB1bmRlciB0aGUgdGVybXMgb2YgdmVyc2lvbiAyIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYXBvb2wuaD4KKyNpbmNsdWRlIDxsaW51eC9jcnlwdG8uaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorCisjaW5jbHVkZSA8Y3J5cHRvL2N0ci5oPgorI2luY2x1ZGUgPGNyeXB0by9kZXMuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWVzLmg+CisjaW5jbHVkZSA8Y3J5cHRvL3NoYS5oPgorI2luY2x1ZGUgPGNyeXB0by9hbGdhcGkuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWVhZC5oPgorI2luY2x1ZGUgPGNyeXB0by9hdXRoZW5jLmg+CisjaW5jbHVkZSA8Y3J5cHRvL3NjYXR0ZXJ3YWxrLmg+CisKKyNpbmNsdWRlIDxhc20vYXJjaC9ucGUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9xbWdyLmg+CisKKyNkZWZpbmUgTUFYX0tFWUxFTiAzMgorCisvKiBoYXNoOiBjZmd3b3JkICsgMiAqIGRpZ2VzdGxlbjsgY3J5cHQ6IGtleWxlbiArIGNmZ3dvcmQgKi8KKyNkZWZpbmUgTlBFX0NUWF9MRU4gODAKKyNkZWZpbmUgQUVTX0JMT0NLMTI4IDE2CisKKyNkZWZpbmUgTlBFX09QX0hBU0hfVkVSSUZZICAgMHgwMQorI2RlZmluZSBOUEVfT1BfQ0NNX0VOQUJMRSAgICAweDA0CisjZGVmaW5lIE5QRV9PUF9DUllQVF9FTkFCTEUgIDB4MDgKKyNkZWZpbmUgTlBFX09QX0hBU0hfRU5BQkxFICAgMHgxMAorI2RlZmluZSBOUEVfT1BfTk9UX0lOX1BMQUNFICAweDIwCisjZGVmaW5lIE5QRV9PUF9ITUFDX0RJU0FCTEUgIDB4NDAKKyNkZWZpbmUgTlBFX09QX0NSWVBUX0VOQ1JZUFQgMHg4MAorCisjZGVmaW5lIE5QRV9PUF9DQ01fR0VOX01JQyAgIDB4Y2MKKyNkZWZpbmUgTlBFX09QX0hBU0hfR0VOX0lDViAgMHg1MAorI2RlZmluZSBOUEVfT1BfRU5DX0dFTl9LRVkgICAweGM5CisKKyNkZWZpbmUgTU9EX0VDQiAgICAgMHgwMDAwCisjZGVmaW5lIE1PRF9DVFIgICAgIDB4MTAwMAorI2RlZmluZSBNT0RfQ0JDX0VOQyAweDIwMDAKKyNkZWZpbmUgTU9EX0NCQ19ERUMgMHgzMDAwCisjZGVmaW5lIE1PRF9DQ01fRU5DIDB4NDAwMAorI2RlZmluZSBNT0RfQ0NNX0RFQyAweDUwMDAKKworI2RlZmluZSBLRVlMRU5fMTI4ICA0CisjZGVmaW5lIEtFWUxFTl8xOTIgIDYKKyNkZWZpbmUgS0VZTEVOXzI1NiAgOAorCisjZGVmaW5lIENJUEhfREVDUiAgIDB4MDAwMAorI2RlZmluZSBDSVBIX0VOQ1IgICAweDA0MDAKKworI2RlZmluZSBNT0RfREVTICAgICAweDAwMDAKKyNkZWZpbmUgTU9EX1RERUEyICAgMHgwMTAwCisjZGVmaW5lIE1PRF8zREVTICAgMHgwMjAwCisjZGVmaW5lIE1PRF9BRVMgICAgIDB4MDgwMAorI2RlZmluZSBNT0RfQUVTMTI4ICAoMHgwODAwIHwgS0VZTEVOXzEyOCkKKyNkZWZpbmUgTU9EX0FFUzE5MiAgKDB4MDkwMCB8IEtFWUxFTl8xOTIpCisjZGVmaW5lIE1PRF9BRVMyNTYgICgweDBhMDAgfCBLRVlMRU5fMjU2KQorCisjZGVmaW5lIE1BWF9JVkxFTiAgIDE2CisjZGVmaW5lIE5QRV9JRCAgICAgIDIgIC8qIE5QRSBDICovCisjZGVmaW5lIE5QRV9RTEVOICAgIDE2CisvKiBTcGFjZSBmb3IgcmVnaXN0ZXJpbmcgd2hlbiB0aGUgZmlyc3QKKyAqIE5QRV9RTEVOIGNyeXB0X2N0bCBhcmUgYnVzeSAqLworI2RlZmluZSBOUEVfUUxFTl9UT1RBTCA2NAorCisjZGVmaW5lIFNFTkRfUUlEICAgIDI5CisjZGVmaW5lIFJFQ1ZfUUlEICAgIDMwCisKKyNkZWZpbmUgQ1RMX0ZMQUdfVU5VU0VECQkweDAwMDAKKyNkZWZpbmUgQ1RMX0ZMQUdfVVNFRAkJMHgxMDAwCisjZGVmaW5lIENUTF9GTEFHX1BFUkZPUk1fQUJMSwkweDAwMDEKKyNkZWZpbmUgQ1RMX0ZMQUdfR0VOX0lDVgkweDAwMDIKKyNkZWZpbmUgQ1RMX0ZMQUdfR0VOX1JFVkFFUwkweDAwMDQKKyNkZWZpbmUgQ1RMX0ZMQUdfUEVSRk9STV9BRUFECTB4MDAwOAorI2RlZmluZSBDVExfRkxBR19NQVNLCQkweDAwMGYKKworI2RlZmluZSBITUFDX0lQQURfVkFMVUUgICAweDM2CisjZGVmaW5lIEhNQUNfT1BBRF9WQUxVRSAgIDB4NUMKKyNkZWZpbmUgSE1BQ19QQURfQkxPQ0tMRU4gU0hBMV9CTE9DS19TSVpFCisKKyNkZWZpbmUgTUQ1X0RJR0VTVF9TSVpFICAgMTYKKworc3RydWN0IGJ1ZmZlcl9kZXNjIHsKKwl1MzIgcGh5c19uZXh0OworCXUxNiBidWZfbGVuOworCXUxNiBwa3RfbGVuOworCXUzMiBwaHlzX2FkZHI7CisJdTMyIF9fcmVzZXJ2ZWRbNF07CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpuZXh0OworfTsKKworc3RydWN0IGNyeXB0X2N0bCB7CisJdTggbW9kZTsJCS8qIE5QRV9PUF8qICBvcGVyYXRpb24gbW9kZSAqLworCXU4IGluaXRfbGVuOworCXUxNiByZXNlcnZlZDsKKwl1OCBpdltNQVhfSVZMRU5dOwkvKiBJViBmb3IgQ0JDIG1vZGUgb3IgQ1RSIElWIGZvciBDVFIgbW9kZSAqLworCXUzMiBpY3ZfcmV2X2FlczsJLyogaWN2IG9yIHJldiBhZXMgKi8KKwl1MzIgc3JjX2J1ZjsKKwl1MzIgZHN0X2J1ZjsKKwl1MTYgYXV0aF9vZmZzOwkJLyogQXV0aGVudGljYXRpb24gc3RhcnQgb2Zmc2V0ICovCisJdTE2IGF1dGhfbGVuOwkJLyogQXV0aGVudGljYXRpb24gZGF0YSBsZW5ndGggKi8KKwl1MTYgY3J5cHRfb2ZmczsJCS8qIENyeXB0aW9uIHN0YXJ0IG9mZnNldCAqLworCXUxNiBjcnlwdF9sZW47CQkvKiBDcnlwdGlvbiBkYXRhIGxlbmd0aCAqLworCXUzMiBhYWRBZGRyOwkJLyogQWRkaXRpb25hbCBBdXRoIERhdGEgQWRkciBmb3IgQ0NNIG1vZGUgKi8KKwl1MzIgY3J5cHRvX2N0eDsJCS8qIE5QRSBDcnlwdG8gUGFyYW0gc3RydWN0dXJlIGFkZHJlc3MgKi8KKworCS8qIFVzZWQgYnkgSG9zdDogNCo0IGJ5dGVzKi8KKwl1bnNpZ25lZCBjdGxfZmxhZ3M7CisJdW5pb24geworCQlzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICphYmxrX3JlcTsKKwkJc3RydWN0IGFlYWRfcmVxdWVzdCAqYWVhZF9yZXE7CisJCXN0cnVjdCBjcnlwdG9fdGZtICp0Zm07CisJfSBkYXRhOworCXN0cnVjdCBidWZmZXJfZGVzYyAqcmVnaXN0X2J1ZjsKKwl1OCAqcmVnaXN0X3B0cjsKK307CisKK3N0cnVjdCBhYmxrX2N0eCB7CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpzcmM7CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpkc3Q7CisJdW5zaWduZWQgc3JjX25lbnRzOworCXVuc2lnbmVkIGRzdF9uZW50czsKK307CisKK3N0cnVjdCBhZWFkX2N0eCB7CisJc3RydWN0IGJ1ZmZlcl9kZXNjICpidWZmZXI7CisJdW5zaWduZWQgc2hvcnQgYXNzb2NfbmVudHM7CisJdW5zaWduZWQgc2hvcnQgc3JjX25lbnRzOworCXN0cnVjdCBzY2F0dGVybGlzdCBpdmxpc3Q7CisJLyogdXNlZCB3aGVuIHRoZSBobWFjIGlzIG5vdCBvbiBvbmUgc2cgZW50cnkgKi8KKwl1OCAqaG1hY192aXJ0OworCWludCBlbmNyeXB0OworfTsKKworc3RydWN0IGl4X2hhc2hfYWxnbyB7CisJdTMyIGNmZ3dvcmQ7CisJdW5zaWduZWQgY2hhciAqaWN2OworfTsKKworc3RydWN0IGl4X3NhX2RpciB7CisJdW5zaWduZWQgY2hhciAqbnBlX2N0eDsKKwlkbWFfYWRkcl90IG5wZV9jdHhfcGh5czsKKwlpbnQgbnBlX2N0eF9pZHg7CisJdTggbnBlX21vZGU7Cit9OworCitzdHJ1Y3QgaXhwX2N0eCB7CisJc3RydWN0IGl4X3NhX2RpciBlbmNyeXB0OworCXN0cnVjdCBpeF9zYV9kaXIgZGVjcnlwdDsKKwlpbnQgYXV0aGtleV9sZW47CisJdTggYXV0aGtleVtNQVhfS0VZTEVOXTsKKwlpbnQgZW5ja2V5X2xlbjsKKwl1OCBlbmNrZXlbTUFYX0tFWUxFTl07CisJdTggc2FsdFtNQVhfSVZMRU5dOworCXU4IG5vbmNlW0NUUl9SRkMzNjg2X05PTkNFX1NJWkVdOworCXVuc2lnbmVkIHNhbHRlZDsKKwlhdG9taWNfdCBjb25maWd1cmluZzsKKwlzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOworfTsKKworc3RydWN0IGl4cF9hbGcgeworCXN0cnVjdCBjcnlwdG9fYWxnIGNyeXB0bzsKKwljb25zdCBzdHJ1Y3QgaXhfaGFzaF9hbGdvICpoYXNoOworCXUzMiBjZmdfZW5jOworCXUzMiBjZmdfZGVjOworCisJaW50IHJlZ2lzdGVyZWQ7Cit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyBoYXNoX2FsZ19tZDUgPSB7CisJLmNmZ3dvcmQJPSAweEFBMDEwMDA0LAorCS5pY3YJCT0gIlx4MDFceDIzXHg0NVx4NjdceDg5XHhBQlx4Q0RceEVGIgorCQkJICAiXHhGRVx4RENceEJBXHg5OFx4NzZceDU0XHgzMlx4MTAiLAorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaXhfaGFzaF9hbGdvIGhhc2hfYWxnX3NoYTEgPSB7CisJLmNmZ3dvcmQJPSAweDAwMDAwMDA1LAorCS5pY3YJCT0gIlx4NjdceDQ1XHgyM1x4MDFceEVGXHhDRFx4QUJceDg5XHg5OFx4QkEiCisJCQkgICJceERDXHhGRVx4MTBceDMyXHg1NFx4NzZceEMzXHhEMlx4RTFceEYwIiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgbnBlICpucGVfYzsKK3N0YXRpYyBzdHJ1Y3QgZG1hX3Bvb2wgKmJ1ZmZlcl9wb29sID0gTlVMTDsKK3N0YXRpYyBzdHJ1Y3QgZG1hX3Bvb2wgKmN0eF9wb29sID0gTlVMTDsKKworc3RhdGljIHN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0X3ZpcnQgPSBOVUxMOworc3RhdGljIGRtYV9hZGRyX3QgY3J5cHRfcGh5czsKKworc3RhdGljIGludCBzdXBwb3J0X2FlcyA9IDE7CisKK3N0YXRpYyB2b2lkIGRldl9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm47Cit9CisKKyNkZWZpbmUgRFJJVkVSX05BTUUgIml4cDR4eF9jcnlwdG8iCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBwc2V1ZG9fZGV2ID0geworCS5uYW1lID0gRFJJVkVSX05BTUUsCisJLmlkICAgPSAwLAorCS5udW1fcmVzb3VyY2VzID0gMCwKKwkuZGV2ICA9IHsKKwkJLmNvaGVyZW50X2RtYV9tYXNrID0gRE1BXzMyQklUX01BU0ssCisJCS5yZWxlYXNlID0gZGV2X3JlbGVhc2UsCisJfQorfTsKKworc3RhdGljIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZwc2V1ZG9fZGV2LmRldjsKKworc3RhdGljIGlubGluZSBkbWFfYWRkcl90IGNyeXB0X3ZpcnQycGh5cyhzdHJ1Y3QgY3J5cHRfY3RsICp2aXJ0KQoreworCXJldHVybiBjcnlwdF9waHlzICsgKHZpcnQgLSBjcnlwdF92aXJ0KSAqIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdF9waHlzMnZpcnQoZG1hX2FkZHJfdCBwaHlzKQoreworCXJldHVybiBjcnlwdF92aXJ0ICsgKHBoeXMgLSBjcnlwdF9waHlzKSAvIHNpemVvZihzdHJ1Y3QgY3J5cHRfY3RsKTsKK30KKworc3RhdGljIGlubGluZSB1MzIgY2lwaGVyX2NmZ19lbmMoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHRmbS0+X19jcnRfYWxnLCBzdHJ1Y3QgaXhwX2FsZyxjcnlwdG8pLT5jZmdfZW5jOworfQorCitzdGF0aWMgaW5saW5lIHUzMiBjaXBoZXJfY2ZnX2RlYyhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXJldHVybiBjb250YWluZXJfb2YodGZtLT5fX2NydF9hbGcsIHN0cnVjdCBpeHBfYWxnLGNyeXB0byktPmNmZ19kZWM7Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyAqaXhfaGFzaChzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXJldHVybiBjb250YWluZXJfb2YodGZtLT5fX2NydF9hbGcsIHN0cnVjdCBpeHBfYWxnLCBjcnlwdG8pLT5oYXNoOworfQorCitzdGF0aWMgaW50IHNldHVwX2NyeXB0X2Rlc2Modm9pZCkKK3sKKwlCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCBjcnlwdF9jdGwpICE9IDY0KTsKKwljcnlwdF92aXJ0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwKKwkJCU5QRV9RTEVOICogc2l6ZW9mKHN0cnVjdCBjcnlwdF9jdGwpLAorCQkJJmNyeXB0X3BoeXMsIEdGUF9LRVJORUwpOworCWlmICghY3J5cHRfdmlydCkKKwkJcmV0dXJuIC1FTk9NRU07CisJbWVtc2V0KGNyeXB0X3ZpcnQsIDAsIE5QRV9RTEVOICogc2l6ZW9mKHN0cnVjdCBjcnlwdF9jdGwpKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHNwaW5sb2NrX3QgZGVzY19sb2NrOworc3RhdGljIHN0cnVjdCBjcnlwdF9jdGwgKmdldF9jcnlwdF9kZXNjKHZvaWQpCit7CisJaW50IGk7CisJc3RhdGljIGludCBpZHggPSAwOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGVzY19sb2NrLCBmbGFncyk7CisKKwlpZiAodW5saWtlbHkoIWNyeXB0X3ZpcnQpKQorCQlzZXR1cF9jcnlwdF9kZXNjKCk7CisJaWYgKHVubGlrZWx5KCFjcnlwdF92aXJ0KSkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCWkgPSBpZHg7CisJaWYgKGNyeXB0X3ZpcnRbaV0uY3RsX2ZsYWdzID09IENUTF9GTEFHX1VOVVNFRCkgeworCQlpZiAoKytpZHggPj0gTlBFX1FMRU4pCisJCQlpZHggPSAwOworCQljcnlwdF92aXJ0W2ldLmN0bF9mbGFncyA9IENUTF9GTEFHX1VTRUQ7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2NfbG9jaywgZmxhZ3MpOworCQlyZXR1cm4gY3J5cHRfdmlydCAraTsKKwl9IGVsc2UgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorfQorCitzdGF0aWMgc3BpbmxvY2tfdCBlbWVyZ19sb2NrOworc3RhdGljIHN0cnVjdCBjcnlwdF9jdGwgKmdldF9jcnlwdF9kZXNjX2VtZXJnKHZvaWQpCit7CisJaW50IGk7CisJc3RhdGljIGludCBpZHggPSBOUEVfUUxFTjsKKwlzdHJ1Y3QgY3J5cHRfY3RsICpkZXNjOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlkZXNjID0gZ2V0X2NyeXB0X2Rlc2MoKTsKKwlpZiAoZGVzYykKKwkJcmV0dXJuIGRlc2M7CisJaWYgKHVubGlrZWx5KCFjcnlwdF92aXJ0KSkKKwkJcmV0dXJuIE5VTEw7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW1lcmdfbG9jaywgZmxhZ3MpOworCWkgPSBpZHg7CisJaWYgKGNyeXB0X3ZpcnRbaV0uY3RsX2ZsYWdzID09IENUTF9GTEFHX1VOVVNFRCkgeworCQlpZiAoKytpZHggPj0gTlBFX1FMRU5fVE9UQUwpCisJCQlpZHggPSBOUEVfUUxFTjsKKwkJY3J5cHRfdmlydFtpXS5jdGxfZmxhZ3MgPSBDVExfRkxBR19VU0VEOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbWVyZ19sb2NrLCBmbGFncyk7CisJCXJldHVybiBjcnlwdF92aXJ0ICtpOworCX0gZWxzZSB7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVtZXJnX2xvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorfQorCitzdGF0aWMgdm9pZCBmcmVlX2J1Zl9jaGFpbihzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZiwgdTMyIHBoeXMpCit7CisJd2hpbGUgKGJ1ZikgeworCQlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZjE7CisJCXUzMiBwaHlzMTsKKworCQlidWYxID0gYnVmLT5uZXh0OworCQlwaHlzMSA9IGJ1Zi0+cGh5c19uZXh0OworCQlkbWFfcG9vbF9mcmVlKGJ1ZmZlcl9wb29sLCBidWYsIHBoeXMpOworCQlidWYgPSBidWYxOworCQlwaHlzID0gcGh5czE7CisJfQorfQorCitzdGF0aWMgc3RydWN0IHRhc2tsZXRfc3RydWN0IGNyeXB0b19kb25lX3Rhc2tsZXQ7CisKK3N0YXRpYyB2b2lkIGZpbmlzaF9zY2F0dGVyZWRfaG1hYyhzdHJ1Y3QgY3J5cHRfY3RsICpjcnlwdCkKK3sKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEgPSBjcnlwdC0+ZGF0YS5hZWFkX3JlcTsKKwlzdHJ1Y3QgYWVhZF9jdHggKnJlcV9jdHggPSBhZWFkX3JlcXVlc3RfY3R4KHJlcSk7CisJc3RydWN0IGNyeXB0b19hZWFkICp0Zm0gPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlpbnQgYXV0aHNpemUgPSBjcnlwdG9fYWVhZF9hdXRoc2l6ZSh0Zm0pOworCWludCBkZWNyeXB0bGVuID0gcmVxLT5jcnlwdGxlbiAtIGF1dGhzaXplOworCisJaWYgKHJlcV9jdHgtPmVuY3J5cHQpIHsKKwkJc2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5KHJlcV9jdHgtPmhtYWNfdmlydCwKKwkJCXJlcS0+c3JjLCBkZWNyeXB0bGVuLCBhdXRoc2l6ZSwgMSk7CisJfQorCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIHJlcV9jdHgtPmhtYWNfdmlydCwgY3J5cHQtPmljdl9yZXZfYWVzKTsKK30KKworc3RhdGljIHZvaWQgb25lX3BhY2tldChkbWFfYWRkcl90IHBoeXMpCit7CisJc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQ7CisJc3RydWN0IGl4cF9jdHggKmN0eDsKKwlpbnQgZmFpbGVkOworCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIHNyY19kaXJlY3Rpb24gPSBETUFfQklESVJFQ1RJT05BTDsKKworCWZhaWxlZCA9IHBoeXMgJiAweDEgPyAtRUJBRE1TRyA6IDA7CisJcGh5cyAmPSB+MHgzOworCWNyeXB0ID0gY3J5cHRfcGh5czJ2aXJ0KHBoeXMpOworCisJc3dpdGNoIChjcnlwdC0+Y3RsX2ZsYWdzICYgQ1RMX0ZMQUdfTUFTSykgeworCWNhc2UgQ1RMX0ZMQUdfUEVSRk9STV9BRUFEOiB7CisJCXN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSA9IGNyeXB0LT5kYXRhLmFlYWRfcmVxOworCQlzdHJ1Y3QgYWVhZF9jdHggKnJlcV9jdHggPSBhZWFkX3JlcXVlc3RfY3R4KHJlcSk7CisJCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+YXNzb2MsIHJlcV9jdHgtPmFzc29jX25lbnRzLAorCQkJCURNQV9UT19ERVZJQ0UpOworCQlkbWFfdW5tYXBfc2coZGV2LCAmcmVxX2N0eC0+aXZsaXN0LCAxLCBETUFfQklESVJFQ1RJT05BTCk7CisJCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+c3JjLCByZXFfY3R4LT5zcmNfbmVudHMsCisJCQkJRE1BX0JJRElSRUNUSU9OQUwpOworCisJCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPmJ1ZmZlciwgY3J5cHQtPnNyY19idWYpOworCQlpZiAocmVxX2N0eC0+aG1hY192aXJ0KSB7CisJCQlmaW5pc2hfc2NhdHRlcmVkX2htYWMoY3J5cHQpOworCQl9CisJCXJlcS0+YmFzZS5jb21wbGV0ZSgmcmVxLT5iYXNlLCBmYWlsZWQpOworCQlicmVhazsKKwl9CisJY2FzZSBDVExfRkxBR19QRVJGT1JNX0FCTEs6IHsKKwkJc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxID0gY3J5cHQtPmRhdGEuYWJsa19yZXE7CisJCXN0cnVjdCBhYmxrX2N0eCAqcmVxX2N0eCA9IGFibGtjaXBoZXJfcmVxdWVzdF9jdHgocmVxKTsKKwkJaW50IG5lbnRzOworCQlpZiAocmVxX2N0eC0+ZHN0KSB7CisJCQluZW50cyA9IHJlcV9jdHgtPmRzdF9uZW50czsKKwkJCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+ZHN0LCBuZW50cywgRE1BX0ZST01fREVWSUNFKTsKKwkJCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPmRzdCwgY3J5cHQtPmRzdF9idWYpOworCQkJc3JjX2RpcmVjdGlvbiA9IERNQV9UT19ERVZJQ0U7CisJCX0KKwkJbmVudHMgPSByZXFfY3R4LT5zcmNfbmVudHM7CisJCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+c3JjLCBuZW50cywgc3JjX2RpcmVjdGlvbik7CisJCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPnNyYywgY3J5cHQtPnNyY19idWYpOworCQlyZXEtPmJhc2UuY29tcGxldGUoJnJlcS0+YmFzZSwgZmFpbGVkKTsKKwkJYnJlYWs7CisJfQorCWNhc2UgQ1RMX0ZMQUdfR0VOX0lDVjoKKwkJY3R4ID0gY3J5cHRvX3RmbV9jdHgoY3J5cHQtPmRhdGEudGZtKTsKKwkJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgY3J5cHQtPnJlZ2lzdF9wdHIsCisJCQkJY3J5cHQtPnJlZ2lzdF9idWYtPnBoeXNfYWRkcik7CisJCWRtYV9wb29sX2ZyZWUoYnVmZmVyX3Bvb2wsIGNyeXB0LT5yZWdpc3RfYnVmLCBjcnlwdC0+c3JjX2J1Zik7CisJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJCWNvbXBsZXRlKCZjdHgtPmNvbXBsZXRpb24pOworCQlicmVhazsKKwljYXNlIENUTF9GTEFHX0dFTl9SRVZBRVM6CisJCWN0eCA9IGNyeXB0b190Zm1fY3R4KGNyeXB0LT5kYXRhLnRmbSk7CisJCSoodTMyKiljdHgtPmRlY3J5cHQubnBlX2N0eCAmPSBjcHVfdG9fYmUzMih+Q0lQSF9FTkNSKTsKKwkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmN0eC0+Y29uZmlndXJpbmcpKQorCQkJY29tcGxldGUoJmN0eC0+Y29tcGxldGlvbik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCUJVRygpOworCX0KKwljcnlwdC0+Y3RsX2ZsYWdzID0gQ1RMX0ZMQUdfVU5VU0VEOworfQorCitzdGF0aWMgdm9pZCBpcnFoYW5kbGVyKHZvaWQgKl91bnVzZWQpCit7CisJdGFza2xldF9zY2hlZHVsZSgmY3J5cHRvX2RvbmVfdGFza2xldCk7Cit9CisKK3N0YXRpYyB2b2lkIGNyeXB0b19kb25lX2FjdGlvbih1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlpbnQgaTsKKworCWZvcihpPTA7IGk8NDsgaSsrKSB7CisJCWRtYV9hZGRyX3QgcGh5cyA9IHFtZ3JfZ2V0X2VudHJ5KFJFQ1ZfUUlEKTsKKwkJaWYgKCFwaHlzKQorCQkJcmV0dXJuOworCQlvbmVfcGFja2V0KHBoeXMpOworCX0KKwl0YXNrbGV0X3NjaGVkdWxlKCZjcnlwdG9fZG9uZV90YXNrbGV0KTsKK30KKworc3RhdGljIGludCBpbml0X2l4cF9jcnlwdG8odm9pZCkKK3sKKwlpbnQgcmV0ID0gLUVOT0RFVjsKKworCWlmICghICggfigqSVhQNFhYX0VYUF9DRkcyKSAmIChJWFA0WFhfRkVBVFVSRV9IQVNIIHwKKwkJCQlJWFA0WFhfRkVBVFVSRV9BRVMgfCBJWFA0WFhfRkVBVFVSRV9ERVMpKSkgeworCQlwcmludGsoS0VSTl9FUlIgIml4cF9jcnlwdG86IE5vIEhXIGNyeXB0byBhdmFpbGFibGVcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwlucGVfYyA9IG5wZV9yZXF1ZXN0KE5QRV9JRCk7CisJaWYgKCFucGVfYykKKwkJcmV0dXJuIHJldDsKKworCWlmICghbnBlX3J1bm5pbmcobnBlX2MpKSB7CisJCW5wZV9sb2FkX2Zpcm13YXJlKG5wZV9jLCBucGVfbmFtZShucGVfYyksIGRldik7CisJfQorCisJLyogYnVmZmVyX3Bvb2wgd2lsbCBhbHNvIGJlIHVzZWQgdG8gc29tZXRpbWVzIHN0b3JlIHRoZSBobWFjLAorCSAqIHNvIGFzc3VyZSBpdCBpcyBsYXJnZSBlbm91Z2gKKwkgKi8KKwlCVUlMRF9CVUdfT04oU0hBMV9ESUdFU1RfU0laRSA+IHNpemVvZihzdHJ1Y3QgYnVmZmVyX2Rlc2MpKTsKKwlidWZmZXJfcG9vbCA9IGRtYV9wb29sX2NyZWF0ZSgiYnVmZmVyIiwgZGV2LAorCQkJc2l6ZW9mKHN0cnVjdCBidWZmZXJfZGVzYyksIDMyLCAwKTsKKwlyZXQgPSAtRU5PTUVNOworCWlmICghYnVmZmVyX3Bvb2wpIHsKKwkJZ290byBlcnI7CisJfQorCWN0eF9wb29sID0gZG1hX3Bvb2xfY3JlYXRlKCJjb250ZXh0IiwgZGV2LAorCQkJTlBFX0NUWF9MRU4sIDE2LCAwKTsKKwlpZiAoIWN0eF9wb29sKSB7CisJCWdvdG8gZXJyOworCX0KKwlyZXQgPSBxbWdyX3JlcXVlc3RfcXVldWUoU0VORF9RSUQsIE5QRV9RTEVOX1RPVEFMLCAwLCAwKTsKKwlpZiAocmV0KQorCQlnb3RvIGVycjsKKwlyZXQgPSBxbWdyX3JlcXVlc3RfcXVldWUoUkVDVl9RSUQsIE5QRV9RTEVOLCAwLCAwKTsKKwlpZiAocmV0KSB7CisJCXFtZ3JfcmVsZWFzZV9xdWV1ZShTRU5EX1FJRCk7CisJCWdvdG8gZXJyOworCX0KKwlxbWdyX3NldF9pcnEoUkVDVl9RSUQsIFFVRVVFX0lSUV9TUkNfTk9UX0VNUFRZLCBpcnFoYW5kbGVyLCBOVUxMKTsKKwl0YXNrbGV0X2luaXQoJmNyeXB0b19kb25lX3Rhc2tsZXQsIGNyeXB0b19kb25lX2FjdGlvbiwgMCk7CisKKwlxbWdyX2VuYWJsZV9pcnEoUkVDVl9RSUQpOworCXJldHVybiAwOworZXJyOgorCWlmIChjdHhfcG9vbCkKKwkJZG1hX3Bvb2xfZGVzdHJveShjdHhfcG9vbCk7CisJaWYgKGJ1ZmZlcl9wb29sKQorCQlkbWFfcG9vbF9kZXN0cm95KGJ1ZmZlcl9wb29sKTsKKwlucGVfcmVsZWFzZShucGVfYyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcmVsZWFzZV9peHBfY3J5cHRvKHZvaWQpCit7CisJcW1ncl9kaXNhYmxlX2lycShSRUNWX1FJRCk7CisJdGFza2xldF9raWxsKCZjcnlwdG9fZG9uZV90YXNrbGV0KTsKKworCXFtZ3JfcmVsZWFzZV9xdWV1ZShTRU5EX1FJRCk7CisJcW1ncl9yZWxlYXNlX3F1ZXVlKFJFQ1ZfUUlEKTsKKworCWRtYV9wb29sX2Rlc3Ryb3koY3R4X3Bvb2wpOworCWRtYV9wb29sX2Rlc3Ryb3koYnVmZmVyX3Bvb2wpOworCisJbnBlX3JlbGVhc2UobnBlX2MpOworCisJaWYgKGNyeXB0X3ZpcnQpIHsKKwkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LAorCQkJTlBFX1FMRU5fVE9UQUwgKiBzaXplb2YoIHN0cnVjdCBjcnlwdF9jdGwpLAorCQkJY3J5cHRfdmlydCwgY3J5cHRfcGh5cyk7CisJfQorCXJldHVybjsKK30KKworc3RhdGljIHZvaWQgcmVzZXRfc2FfZGlyKHN0cnVjdCBpeF9zYV9kaXIgKmRpcikKK3sKKwltZW1zZXQoZGlyLT5ucGVfY3R4LCAwLCBOUEVfQ1RYX0xFTik7CisJZGlyLT5ucGVfY3R4X2lkeCA9IDA7CisJZGlyLT5ucGVfbW9kZSA9IDA7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF9zYV9kaXIoc3RydWN0IGl4X3NhX2RpciAqZGlyKQoreworCWRpci0+bnBlX2N0eCA9IGRtYV9wb29sX2FsbG9jKGN0eF9wb29sLCBHRlBfS0VSTkVMLCAmZGlyLT5ucGVfY3R4X3BoeXMpOworCWlmICghZGlyLT5ucGVfY3R4KSB7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlyZXNldF9zYV9kaXIoZGlyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZnJlZV9zYV9kaXIoc3RydWN0IGl4X3NhX2RpciAqZGlyKQoreworCW1lbXNldChkaXItPm5wZV9jdHgsIDAsIE5QRV9DVFhfTEVOKTsKKwlkbWFfcG9vbF9mcmVlKGN0eF9wb29sLCBkaXItPm5wZV9jdHgsIGRpci0+bnBlX2N0eF9waHlzKTsKK30KKworc3RhdGljIGludCBpbml0X3RmbShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCWludCByZXQ7CisKKwlhdG9taWNfc2V0KCZjdHgtPmNvbmZpZ3VyaW5nLCAwKTsKKwlyZXQgPSBpbml0X3NhX2RpcigmY3R4LT5lbmNyeXB0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldCA9IGluaXRfc2FfZGlyKCZjdHgtPmRlY3J5cHQpOworCWlmIChyZXQpIHsKKwkJZnJlZV9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaW5pdF90Zm1fYWJsayhzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtKQoreworCXRmbS0+Y3J0X2FibGtjaXBoZXIucmVxc2l6ZSA9IHNpemVvZihzdHJ1Y3QgYWJsa19jdHgpOworCXJldHVybiBpbml0X3RmbSh0Zm0pOworfQorCitzdGF0aWMgaW50IGluaXRfdGZtX2FlYWQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwl0Zm0tPmNydF9hZWFkLnJlcXNpemUgPSBzaXplb2Yoc3RydWN0IGFlYWRfY3R4KTsKKwlyZXR1cm4gaW5pdF90Zm0odGZtKTsKK30KKworc3RhdGljIHZvaWQgZXhpdF90Zm0oc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwlmcmVlX3NhX2RpcigmY3R4LT5lbmNyeXB0KTsKKwlmcmVlX3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKK30KKworc3RhdGljIGludCByZWdpc3Rlcl9jaGFpbl92YXIoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgdTggeHBhZCwgdTMyIHRhcmdldCwKKwkJaW50IGluaXRfbGVuLCB1MzIgY3R4X2FkZHIsIGNvbnN0IHU4ICprZXksIGludCBrZXlfbGVuKQoreworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCXN0cnVjdCBjcnlwdF9jdGwgKmNyeXB0OworCXN0cnVjdCBidWZmZXJfZGVzYyAqYnVmOworCWludCBpOworCXU4ICpwYWQ7CisJdTMyIHBhZF9waHlzLCBidWZfcGh5czsKKworCUJVSUxEX0JVR19PTihOUEVfQ1RYX0xFTiA8IEhNQUNfUEFEX0JMT0NLTEVOKTsKKwlwYWQgPSBkbWFfcG9vbF9hbGxvYyhjdHhfcG9vbCwgR0ZQX0tFUk5FTCwgJnBhZF9waHlzKTsKKwlpZiAoIXBhZCkKKwkJcmV0dXJuIC1FTk9NRU07CisJYnVmID0gZG1hX3Bvb2xfYWxsb2MoYnVmZmVyX3Bvb2wsIEdGUF9LRVJORUwsICZidWZfcGh5cyk7CisJaWYgKCFidWYpIHsKKwkJZG1hX3Bvb2xfZnJlZShjdHhfcG9vbCwgcGFkLCBwYWRfcGh5cyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwljcnlwdCA9IGdldF9jcnlwdF9kZXNjX2VtZXJnKCk7CisJaWYgKCFjcnlwdCkgeworCQlkbWFfcG9vbF9mcmVlKGN0eF9wb29sLCBwYWQsIHBhZF9waHlzKTsKKwkJZG1hX3Bvb2xfZnJlZShidWZmZXJfcG9vbCwgYnVmLCBidWZfcGh5cyk7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCW1lbWNweShwYWQsIGtleSwga2V5X2xlbik7CisJbWVtc2V0KHBhZCArIGtleV9sZW4sIDAsIEhNQUNfUEFEX0JMT0NLTEVOIC0ga2V5X2xlbik7CisJZm9yIChpID0gMDsgaSA8IEhNQUNfUEFEX0JMT0NLTEVOOyBpKyspIHsKKwkJcGFkW2ldIF49IHhwYWQ7CisJfQorCisJY3J5cHQtPmRhdGEudGZtID0gdGZtOworCWNyeXB0LT5yZWdpc3RfcHRyID0gcGFkOworCWNyeXB0LT5yZWdpc3RfYnVmID0gYnVmOworCisJY3J5cHQtPmF1dGhfb2ZmcyA9IDA7CisJY3J5cHQtPmF1dGhfbGVuID0gSE1BQ19QQURfQkxPQ0tMRU47CisJY3J5cHQtPmNyeXB0b19jdHggPSBjdHhfYWRkcjsKKwljcnlwdC0+c3JjX2J1ZiA9IGJ1Zl9waHlzOworCWNyeXB0LT5pY3ZfcmV2X2FlcyA9IHRhcmdldDsKKwljcnlwdC0+bW9kZSA9IE5QRV9PUF9IQVNIX0dFTl9JQ1Y7CisJY3J5cHQtPmluaXRfbGVuID0gaW5pdF9sZW47CisJY3J5cHQtPmN0bF9mbGFncyB8PSBDVExfRkxBR19HRU5fSUNWOworCisJYnVmLT5uZXh0ID0gMDsKKwlidWYtPmJ1Zl9sZW4gPSBITUFDX1BBRF9CTE9DS0xFTjsKKwlidWYtPnBrdF9sZW4gPSAwOworCWJ1Zi0+cGh5c19hZGRyID0gcGFkX3BoeXM7CisKKwlhdG9taWNfaW5jKCZjdHgtPmNvbmZpZ3VyaW5nKTsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNldHVwX2F1dGgoc3RydWN0IGNyeXB0b190Zm0gKnRmbSwgaW50IGVuY3J5cHQsIHVuc2lnbmVkIGF1dGhzaXplLAorCQljb25zdCB1OCAqa2V5LCBpbnQga2V5X2xlbiwgdW5zaWduZWQgZGlnZXN0X2xlbikKK3sKKwl1MzIgaXRhcmdldCwgb3RhcmdldCwgbnBlX2N0eF9hZGRyOworCXVuc2lnbmVkIGNoYXIgKmNpbmZvOworCWludCBpbml0X2xlbiwgcmV0ID0gMDsKKwl1MzIgY2Znd29yZDsKKwlzdHJ1Y3QgaXhfc2FfZGlyICpkaXI7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJY29uc3Qgc3RydWN0IGl4X2hhc2hfYWxnbyAqYWxnbzsKKworCWRpciA9IGVuY3J5cHQgPyAmY3R4LT5lbmNyeXB0IDogJmN0eC0+ZGVjcnlwdDsKKwljaW5mbyA9IGRpci0+bnBlX2N0eCArIGRpci0+bnBlX2N0eF9pZHg7CisJYWxnbyA9IGl4X2hhc2godGZtKTsKKworCS8qIHdyaXRlIGNmZyB3b3JkIHRvIGNyeXB0aW5mbyAqLworCWNmZ3dvcmQgPSBhbGdvLT5jZmd3b3JkIHwgKCBhdXRoc2l6ZSA8PCA2KTsgLyogKGF1dGhzaXplLzQpIDw8IDggKi8KKwkqKHUzMiopY2luZm8gPSBjcHVfdG9fYmUzMihjZmd3b3JkKTsKKwljaW5mbyArPSBzaXplb2YoY2Znd29yZCk7CisKKwkvKiB3cml0ZSBJQ1YgdG8gY3J5cHRpbmZvICovCisJbWVtY3B5KGNpbmZvLCBhbGdvLT5pY3YsIGRpZ2VzdF9sZW4pOworCWNpbmZvICs9IGRpZ2VzdF9sZW47CisKKwlpdGFyZ2V0ID0gZGlyLT5ucGVfY3R4X3BoeXMgKyBkaXItPm5wZV9jdHhfaWR4CisJCQkJKyBzaXplb2YoYWxnby0+Y2Znd29yZCk7CisJb3RhcmdldCA9IGl0YXJnZXQgKyBkaWdlc3RfbGVuOworCWluaXRfbGVuID0gY2luZm8gLSAoZGlyLT5ucGVfY3R4ICsgZGlyLT5ucGVfY3R4X2lkeCk7CisJbnBlX2N0eF9hZGRyID0gZGlyLT5ucGVfY3R4X3BoeXMgKyBkaXItPm5wZV9jdHhfaWR4OworCisJZGlyLT5ucGVfY3R4X2lkeCArPSBpbml0X2xlbjsKKwlkaXItPm5wZV9tb2RlIHw9IE5QRV9PUF9IQVNIX0VOQUJMRTsKKworCWlmICghZW5jcnlwdCkKKwkJZGlyLT5ucGVfbW9kZSB8PSBOUEVfT1BfSEFTSF9WRVJJRlk7CisKKwlyZXQgPSByZWdpc3Rlcl9jaGFpbl92YXIodGZtLCBITUFDX09QQURfVkFMVUUsIG90YXJnZXQsCisJCQlpbml0X2xlbiwgbnBlX2N0eF9hZGRyLCBrZXksIGtleV9sZW4pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJcmV0dXJuIHJlZ2lzdGVyX2NoYWluX3Zhcih0Zm0sIEhNQUNfSVBBRF9WQUxVRSwgaXRhcmdldCwKKwkJCWluaXRfbGVuLCBucGVfY3R4X2FkZHIsIGtleSwga2V5X2xlbik7Cit9CisKK3N0YXRpYyBpbnQgZ2VuX3Jldl9hZXNfa2V5KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQ7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b190Zm1fY3R4KHRmbSk7CisJc3RydWN0IGl4X3NhX2RpciAqZGlyID0gJmN0eC0+ZGVjcnlwdDsKKworCWNyeXB0ID0gZ2V0X2NyeXB0X2Rlc2NfZW1lcmcoKTsKKwlpZiAoIWNyeXB0KSB7CisJCXJldHVybiAtRUFHQUlOOworCX0KKwkqKHUzMiopZGlyLT5ucGVfY3R4IHw9IGNwdV90b19iZTMyKENJUEhfRU5DUik7CisKKwljcnlwdC0+ZGF0YS50Zm0gPSB0Zm07CisJY3J5cHQtPmNyeXB0X29mZnMgPSAwOworCWNyeXB0LT5jcnlwdF9sZW4gPSBBRVNfQkxPQ0sxMjg7CisJY3J5cHQtPnNyY19idWYgPSAwOworCWNyeXB0LT5jcnlwdG9fY3R4ID0gZGlyLT5ucGVfY3R4X3BoeXM7CisJY3J5cHQtPmljdl9yZXZfYWVzID0gZGlyLT5ucGVfY3R4X3BoeXMgKyBzaXplb2YodTMyKTsKKwljcnlwdC0+bW9kZSA9IE5QRV9PUF9FTkNfR0VOX0tFWTsKKwljcnlwdC0+aW5pdF9sZW4gPSBkaXItPm5wZV9jdHhfaWR4OworCWNyeXB0LT5jdGxfZmxhZ3MgfD0gQ1RMX0ZMQUdfR0VOX1JFVkFFUzsKKworCWF0b21pY19pbmMoJmN0eC0+Y29uZmlndXJpbmcpOworCXFtZ3JfcHV0X2VudHJ5KFNFTkRfUUlELCBjcnlwdF92aXJ0MnBoeXMoY3J5cHQpKTsKKwlCVUdfT04ocW1ncl9zdGF0X292ZXJmbG93KFNFTkRfUUlEKSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2V0dXBfY2lwaGVyKHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0sIGludCBlbmNyeXB0LAorCQljb25zdCB1OCAqa2V5LCBpbnQga2V5X2xlbikKK3sKKwl1OCAqY2luZm87CisJdTMyIGNpcGhlcl9jZmc7CisJdTMyIGtleWxlbl9jZmcgPSAwOworCXN0cnVjdCBpeF9zYV9kaXIgKmRpcjsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX3RmbV9jdHgodGZtKTsKKwl1MzIgKmZsYWdzID0gJnRmbS0+Y3J0X2ZsYWdzOworCisJZGlyID0gZW5jcnlwdCA/ICZjdHgtPmVuY3J5cHQgOiAmY3R4LT5kZWNyeXB0OworCWNpbmZvID0gZGlyLT5ucGVfY3R4OworCisJaWYgKGVuY3J5cHQpIHsKKwkJY2lwaGVyX2NmZyA9IGNpcGhlcl9jZmdfZW5jKHRmbSk7CisJCWRpci0+bnBlX21vZGUgfD0gTlBFX09QX0NSWVBUX0VOQ1JZUFQ7CisJfSBlbHNlIHsKKwkJY2lwaGVyX2NmZyA9IGNpcGhlcl9jZmdfZGVjKHRmbSk7CisJfQorCWlmIChjaXBoZXJfY2ZnICYgTU9EX0FFUykgeworCQlzd2l0Y2ggKGtleV9sZW4pIHsKKwkJCWNhc2UgMTY6IGtleWxlbl9jZmcgPSBNT0RfQUVTMTI4IHwgS0VZTEVOXzEyODsgYnJlYWs7CisJCQljYXNlIDI0OiBrZXlsZW5fY2ZnID0gTU9EX0FFUzE5MiB8IEtFWUxFTl8xOTI7IGJyZWFrOworCQkJY2FzZSAzMjoga2V5bGVuX2NmZyA9IE1PRF9BRVMyNTYgfCBLRVlMRU5fMjU2OyBicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJKmZsYWdzIHw9IENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOOworCQkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWNpcGhlcl9jZmcgfD0ga2V5bGVuX2NmZzsKKwl9IGVsc2UgaWYgKGNpcGhlcl9jZmcgJiBNT0RfM0RFUykgeworCQljb25zdCB1MzIgKksgPSAoY29uc3QgdTMyICopa2V5OworCQlpZiAodW5saWtlbHkoISgoS1swXSBeIEtbMl0pIHwgKEtbMV0gXiBLWzNdKSkgfHwKKwkJCSAgICAgISgoS1syXSBeIEtbNF0pIHwgKEtbM10gXiBLWzVdKSkpKQorCQl7CisJCQkqZmxhZ3MgfD0gQ1JZUFRPX1RGTV9SRVNfQkFEX0tFWV9TQ0hFRDsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJfSBlbHNlIHsKKwkJdTMyIHRtcFtERVNfRVhQS0VZX1dPUkRTXTsKKwkJaWYgKGRlc19la2V5KHRtcCwga2V5KSA9PSAwKSB7CisJCQkqZmxhZ3MgfD0gQ1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7CisJCX0KKwl9CisJLyogd3JpdGUgY2ZnIHdvcmQgdG8gY3J5cHRpbmZvICovCisJKih1MzIqKWNpbmZvID0gY3B1X3RvX2JlMzIoY2lwaGVyX2NmZyk7CisJY2luZm8gKz0gc2l6ZW9mKGNpcGhlcl9jZmcpOworCisJLyogd3JpdGUgY2lwaGVyIGtleSB0byBjcnlwdGluZm8gKi8KKwltZW1jcHkoY2luZm8sIGtleSwga2V5X2xlbik7CisJLyogTlBFIHdhbnRzIGtleWxlbiBzZXQgdG8gREVTM19FREVfS0VZX1NJWkUgZXZlbiBmb3Igc2luZ2xlIERFUyAqLworCWlmIChrZXlfbGVuIDwgREVTM19FREVfS0VZX1NJWkUgJiYgIShjaXBoZXJfY2ZnICYgTU9EX0FFUykpIHsKKwkJbWVtc2V0KGNpbmZvICsga2V5X2xlbiwgMCwgREVTM19FREVfS0VZX1NJWkUgLWtleV9sZW4pOworCQlrZXlfbGVuID0gREVTM19FREVfS0VZX1NJWkU7CisJfQorCWRpci0+bnBlX2N0eF9pZHggPSBzaXplb2YoY2lwaGVyX2NmZykgKyBrZXlfbGVuOworCWRpci0+bnBlX21vZGUgfD0gTlBFX09QX0NSWVBUX0VOQUJMRTsKKwlpZiAoKGNpcGhlcl9jZmcgJiBNT0RfQUVTKSAmJiAhZW5jcnlwdCkgeworCQlyZXR1cm4gZ2VuX3Jldl9hZXNfa2V5KHRmbSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNvdW50X3NnKHN0cnVjdCBzY2F0dGVybGlzdCAqc2csIGludCBuYnl0ZXMpCit7CisJaW50IGk7CisJZm9yIChpID0gMDsgbmJ5dGVzID4gMDsgaSsrLCBzZyA9IHNnX25leHQoc2cpKQorCQluYnl0ZXMgLT0gc2ctPmxlbmd0aDsKKwlyZXR1cm4gaTsKK30KKworc3RhdGljIHN0cnVjdCBidWZmZXJfZGVzYyAqY2hhaW51cF9idWZmZXJzKHN0cnVjdCBzY2F0dGVybGlzdCAqc2csCisJCQl1bnNpZ25lZCBuYnl0ZXMsIHN0cnVjdCBidWZmZXJfZGVzYyAqYnVmLCBnZnBfdCBmbGFncykKK3sKKwlpbnQgbmVudHMgPSAwOworCisJd2hpbGUgKG5ieXRlcyA+IDApIHsKKwkJc3RydWN0IGJ1ZmZlcl9kZXNjICpuZXh0X2J1ZjsKKwkJdTMyIG5leHRfYnVmX3BoeXM7CisJCXVuc2lnbmVkIGxlbiA9IG1pbihuYnl0ZXMsIHNnX2RtYV9sZW4oc2cpKTsKKworCQluZW50cysrOworCQluYnl0ZXMgLT0gbGVuOworCQlpZiAoIWJ1Zi0+cGh5c19hZGRyKSB7CisJCQlidWYtPnBoeXNfYWRkciA9IHNnX2RtYV9hZGRyZXNzKHNnKTsKKwkJCWJ1Zi0+YnVmX2xlbiA9IGxlbjsKKwkJCWJ1Zi0+bmV4dCA9IE5VTEw7CisJCQlidWYtPnBoeXNfbmV4dCA9IDA7CisJCQlnb3RvIG5leHQ7CisJCX0KKwkJLyogVHdvIGNvbnNlY3V0aXZlIGNodW5rcyBvbiBvbmUgcGFnZSBtYXkgYmUgaGFuZGxlZCBieSB0aGUgb2xkCisJCSAqIGJ1ZmZlciBkZXNjcmlwdG9yLCBpbmNyZWFzZWQgYnkgdGhlIGxlbmd0aCBvZiB0aGUgbmV3IG9uZQorCQkgKi8KKwkJaWYgKHNnX2RtYV9hZGRyZXNzKHNnKSA9PSBidWYtPnBoeXNfYWRkciArIGJ1Zi0+YnVmX2xlbikgeworCQkJYnVmLT5idWZfbGVuICs9IGxlbjsKKwkJCWdvdG8gbmV4dDsKKwkJfQorCQluZXh0X2J1ZiA9IGRtYV9wb29sX2FsbG9jKGJ1ZmZlcl9wb29sLCBmbGFncywgJm5leHRfYnVmX3BoeXMpOworCQlpZiAoIW5leHRfYnVmKQorCQkJcmV0dXJuIE5VTEw7CisJCWJ1Zi0+bmV4dCA9IG5leHRfYnVmOworCQlidWYtPnBoeXNfbmV4dCA9IG5leHRfYnVmX3BoeXM7CisKKwkJYnVmID0gbmV4dF9idWY7CisJCWJ1Zi0+bmV4dCA9IE5VTEw7CisJCWJ1Zi0+cGh5c19uZXh0ID0gMDsKKwkJYnVmLT5waHlzX2FkZHIgPSBzZ19kbWFfYWRkcmVzcyhzZyk7CisJCWJ1Zi0+YnVmX2xlbiA9IGxlbjsKK25leHQ6CisJCWlmIChuYnl0ZXMgPiAwKSB7CisJCQlzZyA9IHNnX25leHQoc2cpOworCQl9CisJfQorCXJldHVybiBidWY7Cit9CisKK3N0YXRpYyBpbnQgYWJsa19zZXRrZXkoc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5X2xlbikKK3sKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FibGtjaXBoZXJfY3R4KHRmbSk7CisJdTMyICpmbGFncyA9ICZ0Zm0tPmJhc2UuY3J0X2ZsYWdzOworCWludCByZXQ7CisKKwlpbml0X2NvbXBsZXRpb24oJmN0eC0+Y29tcGxldGlvbik7CisJYXRvbWljX2luYygmY3R4LT5jb25maWd1cmluZyk7CisKKwlyZXNldF9zYV9kaXIoJmN0eC0+ZW5jcnlwdCk7CisJcmVzZXRfc2FfZGlyKCZjdHgtPmRlY3J5cHQpOworCisJY3R4LT5lbmNyeXB0Lm5wZV9tb2RlID0gTlBFX09QX0hNQUNfRElTQUJMRTsKKwljdHgtPmRlY3J5cHQubnBlX21vZGUgPSBOUEVfT1BfSE1BQ19ESVNBQkxFOworCisJcmV0ID0gc2V0dXBfY2lwaGVyKCZ0Zm0tPmJhc2UsIDAsIGtleSwga2V5X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0gc2V0dXBfY2lwaGVyKCZ0Zm0tPmJhc2UsIDEsIGtleSwga2V5X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlpZiAoKmZsYWdzICYgQ1JZUFRPX1RGTV9SRVNfV0VBS19LRVkpIHsKKwkJaWYgKCpmbGFncyAmIENSWVBUT19URk1fUkVRX1dFQUtfS0VZKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQl9IGVsc2UgeworCQkJKmZsYWdzICY9IH5DUllQVE9fVEZNX1JFU19XRUFLX0tFWTsKKwkJfQorCX0KK291dDoKKwlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJmN0eC0+Y29uZmlndXJpbmcpKQorCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZjdHgtPmNvbXBsZXRpb24pOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWJsa19yZmMzNjg2X3NldGtleShzdHJ1Y3QgY3J5cHRvX2FibGtjaXBoZXIgKnRmbSwgY29uc3QgdTggKmtleSwKKwkJdW5zaWduZWQgaW50IGtleV9sZW4pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hYmxrY2lwaGVyX2N0eCh0Zm0pOworCisJLyogdGhlIG5vbmNlIGlzIHN0b3JlZCBpbiBieXRlcyBhdCBlbmQgb2Yga2V5ICovCisJaWYgKGtleV9sZW4gPCBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW1lbWNweShjdHgtPm5vbmNlLCBrZXkgKyAoa2V5X2xlbiAtIENUUl9SRkMzNjg2X05PTkNFX1NJWkUpLAorCQkJQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSk7CisKKwlrZXlfbGVuIC09IENUUl9SRkMzNjg2X05PTkNFX1NJWkU7CisJcmV0dXJuIGFibGtfc2V0a2V5KHRmbSwga2V5LCBrZXlfbGVuKTsKK30KKworc3RhdGljIGludCBhYmxrX3BlcmZvcm0oc3RydWN0IGFibGtjaXBoZXJfcmVxdWVzdCAqcmVxLCBpbnQgZW5jcnlwdCkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FibGtjaXBoZXIgKnRmbSA9IGNyeXB0b19hYmxrY2lwaGVyX3JlcXRmbShyZXEpOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWJsa2NpcGhlcl9jdHgodGZtKTsKKwl1bnNpZ25lZCBpdnNpemUgPSBjcnlwdG9fYWJsa2NpcGhlcl9pdnNpemUodGZtKTsKKwlpbnQgcmV0ID0gLUVOT01FTTsKKwlzdHJ1Y3QgaXhfc2FfZGlyICpkaXI7CisJc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQ7CisJdW5zaWduZWQgaW50IG5ieXRlcyA9IHJlcS0+bmJ5dGVzLCBuZW50czsKKwllbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBzcmNfZGlyZWN0aW9uID0gRE1BX0JJRElSRUNUSU9OQUw7CisJc3RydWN0IGFibGtfY3R4ICpyZXFfY3R4ID0gYWJsa2NpcGhlcl9yZXF1ZXN0X2N0eChyZXEpOworCWdmcF90IGZsYWdzID0gcmVxLT5iYXNlLmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfTUFZX1NMRUVQID8KKwkJCQlHRlBfS0VSTkVMIDogR0ZQX0FUT01JQzsKKworCWlmIChxbWdyX3N0YXRfZnVsbChTRU5EX1FJRCkpCisJCXJldHVybiAtRUFHQUlOOworCWlmIChhdG9taWNfcmVhZCgmY3R4LT5jb25maWd1cmluZykpCisJCXJldHVybiAtRUFHQUlOOworCisJZGlyID0gZW5jcnlwdCA/ICZjdHgtPmVuY3J5cHQgOiAmY3R4LT5kZWNyeXB0OworCisJY3J5cHQgPSBnZXRfY3J5cHRfZGVzYygpOworCWlmICghY3J5cHQpCisJCXJldHVybiByZXQ7CisKKwljcnlwdC0+ZGF0YS5hYmxrX3JlcSA9IHJlcTsKKwljcnlwdC0+Y3J5cHRvX2N0eCA9IGRpci0+bnBlX2N0eF9waHlzOworCWNyeXB0LT5tb2RlID0gZGlyLT5ucGVfbW9kZTsKKwljcnlwdC0+aW5pdF9sZW4gPSBkaXItPm5wZV9jdHhfaWR4OworCisJY3J5cHQtPmNyeXB0X29mZnMgPSAwOworCWNyeXB0LT5jcnlwdF9sZW4gPSBuYnl0ZXM7CisKKwlCVUdfT04oaXZzaXplICYmICFyZXEtPmluZm8pOworCW1lbWNweShjcnlwdC0+aXYsIHJlcS0+aW5mbywgaXZzaXplKTsKKwlpZiAocmVxLT5zcmMgIT0gcmVxLT5kc3QpIHsKKwkJY3J5cHQtPm1vZGUgfD0gTlBFX09QX05PVF9JTl9QTEFDRTsKKwkJbmVudHMgPSBjb3VudF9zZyhyZXEtPmRzdCwgbmJ5dGVzKTsKKwkJLyogVGhpcyB3YXMgbmV2ZXIgdGVzdGVkIGJ5IEludGVsCisJCSAqIGZvciBtb3JlIHRoYW4gb25lIGRzdCBidWZmZXIsIEkgdGhpbmsuICovCisJCUJVR19PTihuZW50cyAhPSAxKTsKKwkJcmVxX2N0eC0+ZHN0X25lbnRzID0gbmVudHM7CisJCWRtYV9tYXBfc2coZGV2LCByZXEtPmRzdCwgbmVudHMsIERNQV9GUk9NX0RFVklDRSk7CisJCXJlcV9jdHgtPmRzdCA9IGRtYV9wb29sX2FsbG9jKGJ1ZmZlcl9wb29sLCBmbGFncywmY3J5cHQtPmRzdF9idWYpOworCQlpZiAoIXJlcV9jdHgtPmRzdCkKKwkJCWdvdG8gdW5tYXBfc2dfZGVzdDsKKwkJcmVxX2N0eC0+ZHN0LT5waHlzX2FkZHIgPSAwOworCQlpZiAoIWNoYWludXBfYnVmZmVycyhyZXEtPmRzdCwgbmJ5dGVzLCByZXFfY3R4LT5kc3QsIGZsYWdzKSkKKwkJCWdvdG8gZnJlZV9idWZfZGVzdDsKKwkJc3JjX2RpcmVjdGlvbiA9IERNQV9UT19ERVZJQ0U7CisJfSBlbHNlIHsKKwkJcmVxX2N0eC0+ZHN0ID0gTlVMTDsKKwkJcmVxX2N0eC0+ZHN0X25lbnRzID0gMDsKKwl9CisJbmVudHMgPSBjb3VudF9zZyhyZXEtPnNyYywgbmJ5dGVzKTsKKwlyZXFfY3R4LT5zcmNfbmVudHMgPSBuZW50czsKKwlkbWFfbWFwX3NnKGRldiwgcmVxLT5zcmMsIG5lbnRzLCBzcmNfZGlyZWN0aW9uKTsKKworCXJlcV9jdHgtPnNyYyA9IGRtYV9wb29sX2FsbG9jKGJ1ZmZlcl9wb29sLCBmbGFncywgJmNyeXB0LT5zcmNfYnVmKTsKKwlpZiAoIXJlcV9jdHgtPnNyYykKKwkJZ290byB1bm1hcF9zZ19zcmM7CisJcmVxX2N0eC0+c3JjLT5waHlzX2FkZHIgPSAwOworCWlmICghY2hhaW51cF9idWZmZXJzKHJlcS0+c3JjLCBuYnl0ZXMsIHJlcV9jdHgtPnNyYywgZmxhZ3MpKQorCQlnb3RvIGZyZWVfYnVmX3NyYzsKKworCWNyeXB0LT5jdGxfZmxhZ3MgfD0gQ1RMX0ZMQUdfUEVSRk9STV9BQkxLOworCXFtZ3JfcHV0X2VudHJ5KFNFTkRfUUlELCBjcnlwdF92aXJ0MnBoeXMoY3J5cHQpKTsKKwlCVUdfT04ocW1ncl9zdGF0X292ZXJmbG93KFNFTkRfUUlEKSk7CisJcmV0dXJuIC1FSU5QUk9HUkVTUzsKKworZnJlZV9idWZfc3JjOgorCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPnNyYywgY3J5cHQtPnNyY19idWYpOwordW5tYXBfc2dfc3JjOgorCWRtYV91bm1hcF9zZyhkZXYsIHJlcS0+c3JjLCByZXFfY3R4LT5zcmNfbmVudHMsIHNyY19kaXJlY3Rpb24pOworZnJlZV9idWZfZGVzdDoKKwlpZiAocmVxLT5zcmMgIT0gcmVxLT5kc3QpIHsKKwkJZnJlZV9idWZfY2hhaW4ocmVxX2N0eC0+ZHN0LCBjcnlwdC0+ZHN0X2J1Zik7Cit1bm1hcF9zZ19kZXN0OgorCQlkbWFfdW5tYXBfc2coZGV2LCByZXEtPnNyYywgcmVxX2N0eC0+ZHN0X25lbnRzLAorCQkJRE1BX0ZST01fREVWSUNFKTsKKwl9CisJY3J5cHQtPmN0bF9mbGFncyA9IENUTF9GTEFHX1VOVVNFRDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGFibGtfZW5jcnlwdChzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGFibGtfcGVyZm9ybShyZXEsIDEpOworfQorCitzdGF0aWMgaW50IGFibGtfZGVjcnlwdChzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpyZXEpCit7CisJcmV0dXJuIGFibGtfcGVyZm9ybShyZXEsIDApOworfQorCitzdGF0aWMgaW50IGFibGtfcmZjMzY4Nl9jcnlwdChzdHJ1Y3QgYWJsa2NpcGhlcl9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19hYmxrY2lwaGVyICp0Zm0gPSBjcnlwdG9fYWJsa2NpcGhlcl9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgaXhwX2N0eCAqY3R4ID0gY3J5cHRvX2FibGtjaXBoZXJfY3R4KHRmbSk7CisJdTggaXZbQ1RSX1JGQzM2ODZfQkxPQ0tfU0laRV07CisJdTggKmluZm8gPSByZXEtPmluZm87CisJaW50IHJldDsKKworCS8qIHNldCB1cCBjb3VudGVyIGJsb2NrICovCisgICAgICAgIG1lbWNweShpdiwgY3R4LT5ub25jZSwgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSk7CisJbWVtY3B5KGl2ICsgQ1RSX1JGQzM2ODZfTk9OQ0VfU0laRSwgaW5mbywgQ1RSX1JGQzM2ODZfSVZfU0laRSk7CisKKwkvKiBpbml0aWFsaXplIGNvdW50ZXIgcG9ydGlvbiBvZiBjb3VudGVyIGJsb2NrICovCisJKihfX2JlMzIgKikoaXYgKyBDVFJfUkZDMzY4Nl9OT05DRV9TSVpFICsgQ1RSX1JGQzM2ODZfSVZfU0laRSkgPQorCQljcHVfdG9fYmUzMigxKTsKKworCXJlcS0+aW5mbyA9IGl2OworCXJldCA9IGFibGtfcGVyZm9ybShyZXEsIDEpOworCXJlcS0+aW5mbyA9IGluZm87CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBobWFjX2luY29uc2lzdGVudChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCB1bnNpZ25lZCBzdGFydCwKKwkJdW5zaWduZWQgaW50IG5ieXRlcykKK3sKKwlpbnQgb2Zmc2V0ID0gMDsKKworCWlmICghbmJ5dGVzKQorCQlyZXR1cm4gMDsKKworCWZvciAoOzspIHsKKwkJaWYgKHN0YXJ0IDwgb2Zmc2V0ICsgc2ctPmxlbmd0aCkKKwkJCWJyZWFrOworCisJCW9mZnNldCArPSBzZy0+bGVuZ3RoOworCQlzZyA9IHNnX25leHQoc2cpOworCX0KKwlyZXR1cm4gKHN0YXJ0ICsgbmJ5dGVzID4gb2Zmc2V0ICsgc2ctPmxlbmd0aCk7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9wZXJmb3JtKHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSwgaW50IGVuY3J5cHQsCisJCWludCBjcnlwdG9mZnNldCwgaW50IGVmZl9jcnlwdGxlbiwgdTggKml2KQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtID0gY3J5cHRvX2FlYWRfcmVxdGZtKHJlcSk7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCXVuc2lnbmVkIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZSh0Zm0pOworCXVuc2lnbmVkIGF1dGhzaXplID0gY3J5cHRvX2FlYWRfYXV0aHNpemUodGZtKTsKKwlpbnQgcmV0ID0gLUVOT01FTTsKKwlzdHJ1Y3QgaXhfc2FfZGlyICpkaXI7CisJc3RydWN0IGNyeXB0X2N0bCAqY3J5cHQ7CisJdW5zaWduZWQgaW50IGNyeXB0bGVuLCBuZW50czsKKwlzdHJ1Y3QgYnVmZmVyX2Rlc2MgKmJ1ZjsKKwlzdHJ1Y3QgYWVhZF9jdHggKnJlcV9jdHggPSBhZWFkX3JlcXVlc3RfY3R4KHJlcSk7CisJZ2ZwX3QgZmxhZ3MgPSByZXEtPmJhc2UuZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9NQVlfU0xFRVAgPworCQkJCUdGUF9LRVJORUwgOiBHRlBfQVRPTUlDOworCisJaWYgKHFtZ3Jfc3RhdF9mdWxsKFNFTkRfUUlEKSkKKwkJcmV0dXJuIC1FQUdBSU47CisJaWYgKGF0b21pY19yZWFkKCZjdHgtPmNvbmZpZ3VyaW5nKSkKKwkJcmV0dXJuIC1FQUdBSU47CisKKwlpZiAoZW5jcnlwdCkgeworCQlkaXIgPSAmY3R4LT5lbmNyeXB0OworCQljcnlwdGxlbiA9IHJlcS0+Y3J5cHRsZW47CisJfSBlbHNlIHsKKwkJZGlyID0gJmN0eC0+ZGVjcnlwdDsKKwkJLyogcmVxLT5jcnlwdGxlbiBpbmNsdWRlcyB0aGUgYXV0aHNpemUgd2hlbiBkZWNyeXB0aW5nICovCisJCWNyeXB0bGVuID0gcmVxLT5jcnlwdGxlbiAtYXV0aHNpemU7CisJCWVmZl9jcnlwdGxlbiAtPSBhdXRoc2l6ZTsKKwl9CisJY3J5cHQgPSBnZXRfY3J5cHRfZGVzYygpOworCWlmICghY3J5cHQpCisJCXJldHVybiByZXQ7CisKKwljcnlwdC0+ZGF0YS5hZWFkX3JlcSA9IHJlcTsKKwljcnlwdC0+Y3J5cHRvX2N0eCA9IGRpci0+bnBlX2N0eF9waHlzOworCWNyeXB0LT5tb2RlID0gZGlyLT5ucGVfbW9kZTsKKwljcnlwdC0+aW5pdF9sZW4gPSBkaXItPm5wZV9jdHhfaWR4OworCisJY3J5cHQtPmNyeXB0X29mZnMgPSBjcnlwdG9mZnNldDsKKwljcnlwdC0+Y3J5cHRfbGVuID0gZWZmX2NyeXB0bGVuOworCisJY3J5cHQtPmF1dGhfb2ZmcyA9IDA7CisJY3J5cHQtPmF1dGhfbGVuID0gcmVxLT5hc3NvY2xlbiArIGl2c2l6ZSArIGNyeXB0bGVuOworCUJVR19PTihpdnNpemUgJiYgIXJlcS0+aXYpOworCW1lbWNweShjcnlwdC0+aXYsIHJlcS0+aXYsIGl2c2l6ZSk7CisKKwlpZiAocmVxLT5zcmMgIT0gcmVxLT5kc3QpIHsKKwkJQlVHKCk7IC8qIC1FTk9UU1VQIGJlY2F1c2Ugb2YgbXkgbGF6eW5lc3MgKi8KKwl9CisKKwlyZXFfY3R4LT5idWZmZXIgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsICZjcnlwdC0+c3JjX2J1Zik7CisJaWYgKCFyZXFfY3R4LT5idWZmZXIpCisJCWdvdG8gb3V0OworCXJlcV9jdHgtPmJ1ZmZlci0+cGh5c19hZGRyID0gMDsKKwkvKiBBU1NPQyBkYXRhICovCisJbmVudHMgPSBjb3VudF9zZyhyZXEtPmFzc29jLCByZXEtPmFzc29jbGVuKTsKKwlyZXFfY3R4LT5hc3NvY19uZW50cyA9IG5lbnRzOworCWRtYV9tYXBfc2coZGV2LCByZXEtPmFzc29jLCBuZW50cywgRE1BX1RPX0RFVklDRSk7CisJYnVmID0gY2hhaW51cF9idWZmZXJzKHJlcS0+YXNzb2MsIHJlcS0+YXNzb2NsZW4sIHJlcV9jdHgtPmJ1ZmZlcixmbGFncyk7CisJaWYgKCFidWYpCisJCWdvdG8gdW5tYXBfc2dfYXNzb2M7CisJLyogSVYgKi8KKwlzZ19pbml0X3RhYmxlKCZyZXFfY3R4LT5pdmxpc3QsIDEpOworCXNnX3NldF9idWYoJnJlcV9jdHgtPml2bGlzdCwgaXYsIGl2c2l6ZSk7CisJZG1hX21hcF9zZyhkZXYsICZyZXFfY3R4LT5pdmxpc3QsIDEsIERNQV9CSURJUkVDVElPTkFMKTsKKwlidWYgPSBjaGFpbnVwX2J1ZmZlcnMoJnJlcV9jdHgtPml2bGlzdCwgaXZzaXplLCBidWYsIGZsYWdzKTsKKwlpZiAoIWJ1ZikKKwkJZ290byB1bm1hcF9zZ19pdjsKKwlpZiAodW5saWtlbHkoaG1hY19pbmNvbnNpc3RlbnQocmVxLT5zcmMsIGNyeXB0bGVuLCBhdXRoc2l6ZSkpKSB7CisJCS8qIFRoZSAxMiBobWFjIGJ5dGVzIGFyZSBzY2F0dGVyZWQsCisJCSAqIHdlIG5lZWQgdG8gY29weSB0aGVtIGludG8gYSBzYWZlIGJ1ZmZlciAqLworCQlyZXFfY3R4LT5obWFjX3ZpcnQgPSBkbWFfcG9vbF9hbGxvYyhidWZmZXJfcG9vbCwgZmxhZ3MsCisJCQkJJmNyeXB0LT5pY3ZfcmV2X2Flcyk7CisJCWlmICh1bmxpa2VseSghcmVxX2N0eC0+aG1hY192aXJ0KSkKKwkJCWdvdG8gdW5tYXBfc2dfaXY7CisJCWlmICghZW5jcnlwdCkgeworCQkJc2NhdHRlcndhbGtfbWFwX2FuZF9jb3B5KHJlcV9jdHgtPmhtYWNfdmlydCwKKwkJCQlyZXEtPnNyYywgY3J5cHRsZW4sIGF1dGhzaXplLCAwKTsKKwkJfQorCQlyZXFfY3R4LT5lbmNyeXB0ID0gZW5jcnlwdDsKKwl9IGVsc2UgeworCQlyZXFfY3R4LT5obWFjX3ZpcnQgPSBOVUxMOworCX0KKwkvKiBDcnlwdCAqLworCW5lbnRzID0gY291bnRfc2cocmVxLT5zcmMsIGNyeXB0bGVuICsgYXV0aHNpemUpOworCXJlcV9jdHgtPnNyY19uZW50cyA9IG5lbnRzOworCWRtYV9tYXBfc2coZGV2LCByZXEtPnNyYywgbmVudHMsIERNQV9CSURJUkVDVElPTkFMKTsKKwlidWYgPSBjaGFpbnVwX2J1ZmZlcnMocmVxLT5zcmMsIGNyeXB0bGVuICsgYXV0aHNpemUsIGJ1ZiwgZmxhZ3MpOworCWlmICghYnVmKQorCQlnb3RvIHVubWFwX3NnX3NyYzsKKwlpZiAoIXJlcV9jdHgtPmhtYWNfdmlydCkgeworCQljcnlwdC0+aWN2X3Jldl9hZXMgPSBidWYtPnBoeXNfYWRkciArIGJ1Zi0+YnVmX2xlbiAtIGF1dGhzaXplOworCX0KKwljcnlwdC0+Y3RsX2ZsYWdzIHw9IENUTF9GTEFHX1BFUkZPUk1fQUVBRDsKKwlxbWdyX3B1dF9lbnRyeShTRU5EX1FJRCwgY3J5cHRfdmlydDJwaHlzKGNyeXB0KSk7CisJQlVHX09OKHFtZ3Jfc3RhdF9vdmVyZmxvdyhTRU5EX1FJRCkpOworCXJldHVybiAtRUlOUFJPR1JFU1M7Cit1bm1hcF9zZ19zcmM6CisJZG1hX3VubWFwX3NnKGRldiwgcmVxLT5zcmMsIHJlcV9jdHgtPnNyY19uZW50cywgRE1BX0JJRElSRUNUSU9OQUwpOworCWlmIChyZXFfY3R4LT5obWFjX3ZpcnQpIHsKKwkJZG1hX3Bvb2xfZnJlZShidWZmZXJfcG9vbCwgcmVxX2N0eC0+aG1hY192aXJ0LAorCQkJCWNyeXB0LT5pY3ZfcmV2X2Flcyk7CisJfQordW5tYXBfc2dfaXY6CisJZG1hX3VubWFwX3NnKGRldiwgJnJlcV9jdHgtPml2bGlzdCwgMSwgRE1BX0JJRElSRUNUSU9OQUwpOwordW5tYXBfc2dfYXNzb2M6CisJZG1hX3VubWFwX3NnKGRldiwgcmVxLT5hc3NvYywgcmVxX2N0eC0+YXNzb2NfbmVudHMsIERNQV9UT19ERVZJQ0UpOworCWZyZWVfYnVmX2NoYWluKHJlcV9jdHgtPmJ1ZmZlciwgY3J5cHQtPnNyY19idWYpOworb3V0OgorCWNyeXB0LT5jdGxfZmxhZ3MgPSBDVExfRkxBR19VTlVTRUQ7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhZWFkX3NldHVwKHN0cnVjdCBjcnlwdG9fYWVhZCAqdGZtLCB1bnNpZ25lZCBpbnQgYXV0aHNpemUpCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCXUzMiAqZmxhZ3MgPSAmdGZtLT5iYXNlLmNydF9mbGFnczsKKwl1bnNpZ25lZCBkaWdlc3RfbGVuID0gY3J5cHRvX2FlYWRfYWxnKHRmbSktPm1heGF1dGhzaXplOworCWludCByZXQ7CisKKwlpZiAoIWN0eC0+ZW5ja2V5X2xlbiAmJiAhY3R4LT5hdXRoa2V5X2xlbikKKwkJcmV0dXJuIDA7CisJaW5pdF9jb21wbGV0aW9uKCZjdHgtPmNvbXBsZXRpb24pOworCWF0b21pY19pbmMoJmN0eC0+Y29uZmlndXJpbmcpOworCisJcmVzZXRfc2FfZGlyKCZjdHgtPmVuY3J5cHQpOworCXJlc2V0X3NhX2RpcigmY3R4LT5kZWNyeXB0KTsKKworCXJldCA9IHNldHVwX2NpcGhlcigmdGZtLT5iYXNlLCAwLCBjdHgtPmVuY2tleSwgY3R4LT5lbmNrZXlfbGVuKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKwlyZXQgPSBzZXR1cF9jaXBoZXIoJnRmbS0+YmFzZSwgMSwgY3R4LT5lbmNrZXksIGN0eC0+ZW5ja2V5X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0gc2V0dXBfYXV0aCgmdGZtLT5iYXNlLCAwLCBhdXRoc2l6ZSwgY3R4LT5hdXRoa2V5LAorCQkJY3R4LT5hdXRoa2V5X2xlbiwgZGlnZXN0X2xlbik7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0gc2V0dXBfYXV0aCgmdGZtLT5iYXNlLCAxLCBhdXRoc2l6ZSwgIGN0eC0+YXV0aGtleSwKKwkJCWN0eC0+YXV0aGtleV9sZW4sIGRpZ2VzdF9sZW4pOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJaWYgKCpmbGFncyAmIENSWVBUT19URk1fUkVTX1dFQUtfS0VZKSB7CisJCWlmICgqZmxhZ3MgJiBDUllQVE9fVEZNX1JFUV9XRUFLX0tFWSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gb3V0OworCQl9IGVsc2UgeworCQkJKmZsYWdzICY9IH5DUllQVE9fVEZNX1JFU19XRUFLX0tFWTsKKwkJfQorCX0KK291dDoKKwlpZiAoIWF0b21pY19kZWNfYW5kX3Rlc3QoJmN0eC0+Y29uZmlndXJpbmcpKQorCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZjdHgtPmNvbXBsZXRpb24pOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9zZXRhdXRoc2l6ZShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgdW5zaWduZWQgaW50IGF1dGhzaXplKQoreworCWludCBtYXggPSBjcnlwdG9fYWVhZF9hbGcodGZtKS0+bWF4YXV0aHNpemUgPj4gMjsKKworCWlmICgoYXV0aHNpemU+PjIpIDwgMSB8fCAoYXV0aHNpemU+PjIpID4gbWF4IHx8IChhdXRoc2l6ZSAmIDMpKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlyZXR1cm4gYWVhZF9zZXR1cCh0Zm0sIGF1dGhzaXplKTsKK30KKworc3RhdGljIGludCBhZWFkX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgY29uc3QgdTggKmtleSwKKwkJCXVuc2lnbmVkIGludCBrZXlsZW4pCit7CisJc3RydWN0IGl4cF9jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eCh0Zm0pOworCXN0cnVjdCBydGF0dHIgKnJ0YSA9IChzdHJ1Y3QgcnRhdHRyICopa2V5OworCXN0cnVjdCBjcnlwdG9fYXV0aGVuY19rZXlfcGFyYW0gKnBhcmFtOworCisJaWYgKCFSVEFfT0socnRhLCBrZXlsZW4pKQorCQlnb3RvIGJhZGtleTsKKwlpZiAocnRhLT5ydGFfdHlwZSAhPSBDUllQVE9fQVVUSEVOQ19LRVlBX1BBUkFNKQorCQlnb3RvIGJhZGtleTsKKwlpZiAoUlRBX1BBWUxPQUQocnRhKSA8IHNpemVvZigqcGFyYW0pKQorCQlnb3RvIGJhZGtleTsKKworCXBhcmFtID0gUlRBX0RBVEEocnRhKTsKKwljdHgtPmVuY2tleV9sZW4gPSBiZTMyX3RvX2NwdShwYXJhbS0+ZW5ja2V5bGVuKTsKKworCWtleSArPSBSVEFfQUxJR04ocnRhLT5ydGFfbGVuKTsKKwlrZXlsZW4gLT0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisKKwlpZiAoa2V5bGVuIDwgY3R4LT5lbmNrZXlfbGVuKQorCQlnb3RvIGJhZGtleTsKKworCWN0eC0+YXV0aGtleV9sZW4gPSBrZXlsZW4gLSBjdHgtPmVuY2tleV9sZW47CisJbWVtY3B5KGN0eC0+ZW5ja2V5LCBrZXkgKyBjdHgtPmF1dGhrZXlfbGVuLCBjdHgtPmVuY2tleV9sZW4pOworCW1lbWNweShjdHgtPmF1dGhrZXksIGtleSwgY3R4LT5hdXRoa2V5X2xlbik7CisKKwlyZXR1cm4gYWVhZF9zZXR1cCh0Zm0sIGNyeXB0b19hZWFkX2F1dGhzaXplKHRmbSkpOworYmFka2V5OgorCWN0eC0+ZW5ja2V5X2xlbiA9IDA7CisJY3J5cHRvX2FlYWRfc2V0X2ZsYWdzKHRmbSwgQ1JZUFRPX1RGTV9SRVNfQkFEX0tFWV9MRU4pOworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IGFlYWRfZW5jcnlwdChzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEpCit7CisJdW5zaWduZWQgaXZzaXplID0gY3J5cHRvX2FlYWRfaXZzaXplKGNyeXB0b19hZWFkX3JlcXRmbShyZXEpKTsKKwlyZXR1cm4gYWVhZF9wZXJmb3JtKHJlcSwgMSwgcmVxLT5hc3NvY2xlbiArIGl2c2l6ZSwKKwkJCXJlcS0+Y3J5cHRsZW4sIHJlcS0+aXYpOworfQorCitzdGF0aWMgaW50IGFlYWRfZGVjcnlwdChzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEpCit7CisJdW5zaWduZWQgaXZzaXplID0gY3J5cHRvX2FlYWRfaXZzaXplKGNyeXB0b19hZWFkX3JlcXRmbShyZXEpKTsKKwlyZXR1cm4gYWVhZF9wZXJmb3JtKHJlcSwgMCwgcmVxLT5hc3NvY2xlbiArIGl2c2l6ZSwKKwkJCXJlcS0+Y3J5cHRsZW4sIHJlcS0+aXYpOworfQorCitzdGF0aWMgaW50IGFlYWRfZ2l2ZW5jcnlwdChzdHJ1Y3QgYWVhZF9naXZjcnlwdF9yZXF1ZXN0ICpyZXEpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICp0Zm0gPSBhZWFkX2dpdmNyeXB0X3JlcXRmbShyZXEpOworCXN0cnVjdCBpeHBfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgodGZtKTsKKwl1bnNpZ25lZCBsZW4sIGl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZSh0Zm0pOworCV9fYmU2NCBzZXE7CisKKwkvKiBjb3BpZWQgZnJvbSBlc2VxaXYuYyAqLworCWlmICghY3R4LT5zYWx0ZWQpIHsKKwkJZ2V0X3JhbmRvbV9ieXRlcyhjdHgtPnNhbHQsIGl2c2l6ZSk7CisJCWN0eC0+c2FsdGVkID0gMTsKKwl9CisJbWVtY3B5KHJlcS0+YXJlcS5pdiwgY3R4LT5zYWx0LCBpdnNpemUpOworCWxlbiA9IGl2c2l6ZTsKKwlpZiAoaXZzaXplID4gc2l6ZW9mKHU2NCkpIHsKKwkJbWVtc2V0KHJlcS0+Z2l2LCAwLCBpdnNpemUgLSBzaXplb2YodTY0KSk7CisJCWxlbiA9IHNpemVvZih1NjQpOworCX0KKwlzZXEgPSBjcHVfdG9fYmU2NChyZXEtPnNlcSk7CisJbWVtY3B5KHJlcS0+Z2l2ICsgaXZzaXplIC0gbGVuLCAmc2VxLCBsZW4pOworCXJldHVybiBhZWFkX3BlcmZvcm0oJnJlcS0+YXJlcSwgMSwgcmVxLT5hcmVxLmFzc29jbGVuLAorCQkJcmVxLT5hcmVxLmNyeXB0bGVuICtpdnNpemUsIHJlcS0+Z2l2KTsKK30KKworc3RhdGljIHN0cnVjdCBpeHBfYWxnIGl4cDR4eF9hbGdvc1tdID0geworeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJjYmMoZGVzKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gREVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gREVTX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gREVTX0tFWV9TSVpFLAorCQkJLml2c2l6ZQkJPSBERVNfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfREVDIHwgS0VZTEVOXzE5MiwKKworfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJlY2IoZGVzKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gREVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gREVTX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gREVTX0tFWV9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9ERVMgfCBNT0RfRUNCIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9ERVMgfCBNT0RfRUNCIHwgS0VZTEVOXzE5MiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY2JjKGRlczNfZWRlKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFibGtjaXBoZXIgPSB7CisJCQkubWluX2tleXNpemUJPSBERVMzX0VERV9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IERFUzNfRURFX0tFWV9TSVpFLAorCQkJLml2c2l6ZQkJPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLmdlbml2CQk9ICJlc2VxaXYiLAorCQkJfQorCQl9CisJfSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EXzNERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImVjYihkZXMzX2VkZSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gREVTM19FREVfS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBERVMzX0VERV9LRVlfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfM0RFUyB8IE1PRF9FQ0IgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EXzNERVMgfCBNT0RfRUNCIHwgS0VZTEVOXzE5MiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiY2JjKGFlcykiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IEFFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWJsa2NpcGhlciA9IHsKKwkJCS5taW5fa2V5c2l6ZQk9IEFFU19NSU5fS0VZX1NJWkUsCisJCQkubWF4X2tleXNpemUJPSBBRVNfTUFYX0tFWV9TSVpFLAorCQkJLml2c2l6ZQkJPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5nZW5pdgkJPSAiZXNlcWl2IiwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NCQ19FTkMsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfQUVTIHwgTU9EX0NCQ19ERUMsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImVjYihhZXMpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFibGtjaXBoZXIgPSB7CisJCQkubWluX2tleXNpemUJPSBBRVNfTUlOX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gQUVTX01BWF9LRVlfU0laRSwKKwkJCX0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0VDQiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9BRVMgfCBNT0RfRUNCLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJjdHIoYWVzKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gQUVTX0JMT0NLX1NJWkUsCisJCS5jcmFfdQkJPSB7IC5hYmxrY2lwaGVyID0geworCQkJLm1pbl9rZXlzaXplCT0gQUVTX01JTl9LRVlfU0laRSwKKwkJCS5tYXhfa2V5c2l6ZQk9IEFFU19NQVhfS0VZX1NJWkUsCisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLmdlbml2CQk9ICJlc2VxaXYiLAorCQkJfQorCQl9CisJfSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ1RSLAorCS5jZmdfZGVjID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DVFIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gInJmYzM2ODYoY3RyKGFlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFibGtjaXBoZXIgPSB7CisJCQkubWluX2tleXNpemUJPSBBRVNfTUlOX0tFWV9TSVpFLAorCQkJLm1heF9rZXlzaXplCT0gQUVTX01BWF9LRVlfU0laRSwKKwkJCS5pdnNpemUJCT0gQUVTX0JMT0NLX1NJWkUsCisJCQkuZ2VuaXYJCT0gImVzZXFpdiIsCisJCQkuc2V0a2V5CQk9IGFibGtfcmZjMzY4Nl9zZXRrZXksCisJCQkuZW5jcnlwdAk9IGFibGtfcmZjMzY4Nl9jcnlwdCwKKwkJCS5kZWNyeXB0CT0gYWJsa19yZmMzNjg2X2NyeXB0IH0KKwkJfQorCX0sCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NUUiwKKwkuY2ZnX2RlYyA9IENJUEhfRU5DUiB8IE1PRF9BRVMgfCBNT0RfQ1RSLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMobWQ1KSxjYmMoZGVzKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWVhZCA9IHsKKwkJCS5pdnNpemUJCT0gREVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUJPSBNRDVfRElHRVNUX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5oYXNoID0gJmhhc2hfYWxnX21kNSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0VOQyB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfREVTIHwgTU9EX0NCQ19ERUMgfCBLRVlMRU5fMTkyLAorfSwgeworCS5jcnlwdG8JPSB7CisJCS5jcmFfbmFtZQk9ICJhdXRoZW5jKGhtYWMobWQ1KSxjYmMoZGVzM19lZGUpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUJPSBNRDVfRElHRVNUX1NJWkUsCisJCQl9CisJCX0KKwl9LAorCS5oYXNoID0gJmhhc2hfYWxnX21kNSwKKwkuY2ZnX2VuYyA9IENJUEhfRU5DUiB8IE1PRF8zREVTIHwgTU9EX0NCQ19FTkMgfCBLRVlMRU5fMTkyLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EXzNERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImF1dGhlbmMoaG1hYyhzaGExKSxjYmMoZGVzKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IERFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWVhZCA9IHsKKwkJCS5pdnNpemUJCT0gREVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUJPSBTSEExX0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19zaGExLAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0RFUyB8IE1PRF9DQkNfRU5DIHwgS0VZTEVOXzE5MiwKKwkuY2ZnX2RlYyA9IENJUEhfREVDUiB8IE1PRF9ERVMgfCBNT0RfQ0JDX0RFQyB8IEtFWUxFTl8xOTIsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImF1dGhlbmMoaG1hYyhzaGExKSxjYmMoZGVzM19lZGUpKSIsCisJCS5jcmFfYmxvY2tzaXplCT0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUJPSBTSEExX0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19zaGExLAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EXzNERVMgfCBNT0RfQ0JDX0VOQyB8IEtFWUxFTl8xOTIsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfM0RFUyB8IE1PRF9DQkNfREVDIHwgS0VZTEVOXzE5MiwKK30sIHsKKwkuY3J5cHRvCT0geworCQkuY3JhX25hbWUJPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGFlcykpIiwKKwkJLmNyYV9ibG9ja3NpemUJPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmNyYV91CQk9IHsgLmFlYWQgPSB7CisJCQkuaXZzaXplCQk9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplCT0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19tZDUsCisJLmNmZ19lbmMgPSBDSVBIX0VOQ1IgfCBNT0RfQUVTIHwgTU9EX0NCQ19FTkMsCisJLmNmZ19kZWMgPSBDSVBIX0RFQ1IgfCBNT0RfQUVTIHwgTU9EX0NCQ19ERUMsCit9LCB7CisJLmNyeXB0bwk9IHsKKwkJLmNyYV9uYW1lCT0gImF1dGhlbmMoaG1hYyhzaGExKSxjYmMoYWVzKSkiLAorCQkuY3JhX2Jsb2Nrc2l6ZQk9IEFFU19CTE9DS19TSVpFLAorCQkuY3JhX3UJCT0geyAuYWVhZCA9IHsKKwkJCS5pdnNpemUJCT0gQUVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUJPSBTSEExX0RJR0VTVF9TSVpFLAorCQkJfQorCQl9CisJfSwKKwkuaGFzaCA9ICZoYXNoX2FsZ19zaGExLAorCS5jZmdfZW5jID0gQ0lQSF9FTkNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfRU5DLAorCS5jZmdfZGVjID0gQ0lQSF9ERUNSIHwgTU9EX0FFUyB8IE1PRF9DQkNfREVDLAorfSB9OworCisjZGVmaW5lIElYUF9QT1NURklYICItaXhwNHh4Igorc3RhdGljIGludCBfX2luaXQgaXhwX21vZHVsZV9pbml0KHZvaWQpCit7CisJaW50IG51bSA9IEFSUkFZX1NJWkUoaXhwNHh4X2FsZ29zKTsKKwlpbnQgaSxlcnIgOworCisJaWYgKHBsYXRmb3JtX2RldmljZV9yZWdpc3RlcigmcHNldWRvX2RldikpCisJCXJldHVybiAtRU5PREVWOworCisJc3Bpbl9sb2NrX2luaXQoJmRlc2NfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmVtZXJnX2xvY2spOworCisJZXJyID0gaW5pdF9peHBfY3J5cHRvKCk7CisJaWYgKGVycikgeworCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcigmcHNldWRvX2Rldik7CisJCXJldHVybiBlcnI7CisJfQorCWZvciAoaT0wOyBpPCBudW07IGkrKykgeworCQlzdHJ1Y3QgY3J5cHRvX2FsZyAqY3JhID0gJml4cDR4eF9hbGdvc1tpXS5jcnlwdG87CisKKwkJaWYgKHNucHJpbnRmKGNyYS0+Y3JhX2RyaXZlcl9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLAorCQkJIiVzIklYUF9QT1NURklYLCBjcmEtPmNyYV9uYW1lKSA+PQorCQkJQ1JZUFRPX01BWF9BTEdfTkFNRSkKKwkJeworCQkJY29udGludWU7CisJCX0KKwkJaWYgKCFzdXBwb3J0X2FlcyAmJiAoaXhwNHh4X2FsZ29zW2ldLmNmZ19lbmMgJiBNT0RfQUVTKSkgeworCQkJY29udGludWU7CisJCX0KKwkJaWYgKCFpeHA0eHhfYWxnb3NbaV0uaGFzaCkgeworCQkJLyogYmxvY2sgY2lwaGVycyAqLworCQkJY3JhLT5jcmFfdHlwZSA9ICZjcnlwdG9fYWJsa2NpcGhlcl90eXBlOworCQkJY3JhLT5jcmFfZmxhZ3MgPSBDUllQVE9fQUxHX1RZUEVfQUJMS0NJUEhFUiB8CisJCQkJCSBDUllQVE9fQUxHX0FTWU5DOworCQkJaWYgKCFjcmEtPmNyYV9hYmxrY2lwaGVyLnNldGtleSkKKwkJCQljcmEtPmNyYV9hYmxrY2lwaGVyLnNldGtleSA9IGFibGtfc2V0a2V5OworCQkJaWYgKCFjcmEtPmNyYV9hYmxrY2lwaGVyLmVuY3J5cHQpCisJCQkJY3JhLT5jcmFfYWJsa2NpcGhlci5lbmNyeXB0ID0gYWJsa19lbmNyeXB0OworCQkJaWYgKCFjcmEtPmNyYV9hYmxrY2lwaGVyLmRlY3J5cHQpCisJCQkJY3JhLT5jcmFfYWJsa2NpcGhlci5kZWNyeXB0ID0gYWJsa19kZWNyeXB0OworCQkJY3JhLT5jcmFfaW5pdCA9IGluaXRfdGZtX2FibGs7CisJCX0gZWxzZSB7CisJCQkvKiBhdXRoZW5jICovCisJCQljcmEtPmNyYV90eXBlID0gJmNyeXB0b19hZWFkX3R5cGU7CisJCQljcmEtPmNyYV9mbGFncyA9IENSWVBUT19BTEdfVFlQRV9BRUFEIHwKKwkJCQkJIENSWVBUT19BTEdfQVNZTkM7CisJCQljcmEtPmNyYV9hZWFkLnNldGtleSA9IGFlYWRfc2V0a2V5OworCQkJY3JhLT5jcmFfYWVhZC5zZXRhdXRoc2l6ZSA9IGFlYWRfc2V0YXV0aHNpemU7CisJCQljcmEtPmNyYV9hZWFkLmVuY3J5cHQgPSBhZWFkX2VuY3J5cHQ7CisJCQljcmEtPmNyYV9hZWFkLmRlY3J5cHQgPSBhZWFkX2RlY3J5cHQ7CisJCQljcmEtPmNyYV9hZWFkLmdpdmVuY3J5cHQgPSBhZWFkX2dpdmVuY3J5cHQ7CisJCQljcmEtPmNyYV9pbml0ID0gaW5pdF90Zm1fYWVhZDsKKwkJfQorCQljcmEtPmNyYV9jdHhzaXplID0gc2l6ZW9mKHN0cnVjdCBpeHBfY3R4KTsKKwkJY3JhLT5jcmFfbW9kdWxlID0gVEhJU19NT0RVTEU7CisJCWNyYS0+Y3JhX2FsaWdubWFzayA9IDM7CisJCWNyYS0+Y3JhX3ByaW9yaXR5ID0gMzAwOworCQljcmEtPmNyYV9leGl0ID0gZXhpdF90Zm07CisJCWlmIChjcnlwdG9fcmVnaXN0ZXJfYWxnKGNyYSkpCisJCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byByZWdpc3RlciAnJXMnXG4iLAorCQkJCWNyYS0+Y3JhX25hbWUpOworCQllbHNlCisJCQlpeHA0eHhfYWxnb3NbaV0ucmVnaXN0ZXJlZCA9IDE7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgaXhwX21vZHVsZV9leGl0KHZvaWQpCit7CisJaW50IG51bSA9IEFSUkFZX1NJWkUoaXhwNHh4X2FsZ29zKTsKKwlpbnQgaTsKKworCWZvciAoaT0wOyBpPCBudW07IGkrKykgeworCQlpZiAoaXhwNHh4X2FsZ29zW2ldLnJlZ2lzdGVyZWQpCisJCQljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJml4cDR4eF9hbGdvc1tpXS5jcnlwdG8pOworCX0KKwlyZWxlYXNlX2l4cF9jcnlwdG8oKTsKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcigmcHNldWRvX2Rldik7Cit9CisKK21vZHVsZV9pbml0KGl4cF9tb2R1bGVfaW5pdCk7Cittb2R1bGVfZXhpdChpeHBfbW9kdWxlX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQVVUSE9SKCJDaHJpc3RpYW4gSG9obnN0YWVkdCA8Y2hvaG5zdGFlZHRAaW5ub21pbmF0ZS5jb20+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIklYUDR4eCBoYXJkd2FyZSBjcnlwdG8iKTsKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1hZXMuYyBiL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMKaW5kZXggYmIzMGViOS4uNTRhMmExNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1hZXMuYworKysgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLWFlcy5jCkBAIC0zODUsMTIgKzM4NSwxMiBAQAogCWludCByZXQ7CiAKIAlpZiAoIWNwdV9oYXNfeGNyeXB0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIlZJQSBQYWRMb2NrIG5vdCBkZXRlY3RlZC5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBub3QgZGV0ZWN0ZWQuXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCiAJaWYgKCFjcHVfaGFzX3hjcnlwdF9lbmFibGVkKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIlZJQSBQYWRMb2NrIGRldGVjdGVkLCBidXQgbm90IGVuYWJsZWQuIEhtbSwgc3RyYW5nZS4uLlxuIik7CisJCXByaW50ayhLRVJOX05PVElDRSBQRlggIlZJQSBQYWRMb2NrIGRldGVjdGVkLCBidXQgbm90IGVuYWJsZWQuIEhtbSwgc3RyYW5nZS4uLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1zaGEuYyBiL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMKaW5kZXggYzY2NmI0ZS4uNDBkNTY4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1zaGEuYworKysgYi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLXNoYS5jCkBAIC0yNTQsMTIgKzI1NCwxMiBAQAogCWludCByYyA9IC1FTk9ERVY7CiAKIAlpZiAoIWNwdV9oYXNfcGhlKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIlZJQSBQYWRMb2NrIEhhc2ggRW5naW5lIG5vdCBkZXRlY3RlZC5cbiIpOworCQlwcmludGsoS0VSTl9OT1RJQ0UgUEZYICJWSUEgUGFkTG9jayBIYXNoIEVuZ2luZSBub3QgZGV0ZWN0ZWQuXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCiAJaWYgKCFjcHVfaGFzX3BoZV9lbmFibGVkKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBQRlggIlZJQSBQYWRMb2NrIGRldGVjdGVkLCBidXQgbm90IGVuYWJsZWQuIEhtbSwgc3RyYW5nZS4uLlxuIik7CisJCXByaW50ayhLRVJOX05PVElDRSBQRlggIlZJQSBQYWRMb2NrIGRldGVjdGVkLCBidXQgbm90IGVuYWJsZWQuIEhtbSwgc3RyYW5nZS4uLlxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTk0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmMKQEAgLTAsMCArMSwxNTk3IEBACisvKgorICogdGFsaXRvcyAtIEZyZWVzY2FsZSBJbnRlZ3JhdGVkIFNlY3VyaXR5IEVuZ2luZSAoU0VDKSBkZXZpY2UgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA4IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuCisgKgorICogU2NhdHRlcmxpc3QgQ3J5cHRvIEFQSSBnbHVlIGNvZGUgY29waWVkIGZyb20gZmlsZXMgd2l0aCB0aGUgZm9sbG93aW5nOgorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDcgSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgorICoKKyAqIENyeXB0byBhbGdvcml0aG0gcmVnaXN0cmF0aW9uIGNvZGUgY29waWVkIGZyb20gaGlmbiBkcml2ZXI6CisgKiAyMDA3KyBDb3B5cmlnaHQgKGMpIEV2Z2VuaXkgUG9seWFrb3YgPGpvaG5wb2xAMmthLm1pcHQucnU+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CisjaW5jbHVkZSA8bGludXgvaHdfcmFuZG9tLmg+CisjaW5jbHVkZSA8bGludXgvb2ZfcGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9ydG5ldGxpbmsuaD4KKworI2luY2x1ZGUgPGNyeXB0by9hbGdhcGkuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWVzLmg+CisjaW5jbHVkZSA8Y3J5cHRvL2Rlcy5oPgorI2luY2x1ZGUgPGNyeXB0by9zaGEuaD4KKyNpbmNsdWRlIDxjcnlwdG8vYWVhZC5oPgorI2luY2x1ZGUgPGNyeXB0by9hdXRoZW5jLmg+CisKKyNpbmNsdWRlICJ0YWxpdG9zLmgiCisKKyNkZWZpbmUgVEFMSVRPU19USU1FT1VUIDEwMDAwMAorI2RlZmluZSBUQUxJVE9TX01BWF9EQVRBX0xFTiA2NTUzNQorCisjZGVmaW5lIERFU0NfVFlQRShkZXNjX2hkcikgKChiZTMyX3RvX2NwdShkZXNjX2hkcikgPj4gMykgJiAweDFmKQorI2RlZmluZSBQUklNQVJZX0VVKGRlc2NfaGRyKSAoKGJlMzJfdG9fY3B1KGRlc2NfaGRyKSA+PiAyOCkgJiAweGYpCisjZGVmaW5lIFNFQ09OREFSWV9FVShkZXNjX2hkcikgKChiZTMyX3RvX2NwdShkZXNjX2hkcikgPj4gMTYpICYgMHhmKQorCisvKiBkZXNjcmlwdG9yIHBvaW50ZXIgZW50cnkgKi8KK3N0cnVjdCB0YWxpdG9zX3B0ciB7CisJX19iZTE2IGxlbjsJLyogbGVuZ3RoICovCisJdTggal9leHRlbnQ7CS8qIGp1bXAgdG8gc2cgbGluayB0YWJsZSBhbmQvb3IgZXh0ZW50ICovCisJdTggZXB0cjsJLyogZXh0ZW5kZWQgYWRkcmVzcyAqLworCV9fYmUzMiBwdHI7CS8qIGFkZHJlc3MgKi8KK307CisKKy8qIGRlc2NyaXB0b3IgKi8KK3N0cnVjdCB0YWxpdG9zX2Rlc2MgeworCV9fYmUzMiBoZHI7CQkJLyogaGVhZGVyIGhpZ2ggYml0cyAqLworCV9fYmUzMiBoZHJfbG87CQkJLyogaGVhZGVyIGxvdyBiaXRzICovCisJc3RydWN0IHRhbGl0b3NfcHRyIHB0cls3XTsJLyogcHRyL2xlbiBwYWlyIGFycmF5ICovCit9OworCisvKioKKyAqIHRhbGl0b3NfcmVxdWVzdCAtIGRlc2NyaXB0b3Igc3VibWlzc2lvbiByZXF1ZXN0CisgKiBAZGVzYzogZGVzY3JpcHRvciBwb2ludGVyIChrZXJuZWwgdmlydHVhbCkKKyAqIEBkbWFfZGVzYzogZGVzY3JpcHRvcidzIHBoeXNpY2FsIGJ1cyBhZGRyZXNzCisgKiBAY2FsbGJhY2s6IHdob20gdG8gY2FsbCB3aGVuIGRlc2NyaXB0b3IgcHJvY2Vzc2luZyBpcyBkb25lCisgKiBAY29udGV4dDogY2FsbGVyIGNvbnRleHQgKG9wdGlvbmFsKQorICovCitzdHJ1Y3QgdGFsaXRvc19yZXF1ZXN0IHsKKwlzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgZG1hX2Rlc2M7CisJdm9pZCAoKmNhbGxiYWNrKSAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLAorCSAgICAgICAgICAgICAgICAgIHZvaWQgKmNvbnRleHQsIGludCBlcnJvcik7CisJdm9pZCAqY29udGV4dDsKK307CisKK3N0cnVjdCB0YWxpdG9zX3ByaXZhdGUgeworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldjsKKwl2b2lkIF9faW9tZW0gKnJlZzsKKwlpbnQgaXJxOworCisJLyogU0VDIHZlcnNpb24gZ2VvbWV0cnkgKGZyb20gZGV2aWNlIHRyZWUgbm9kZSkgKi8KKwl1bnNpZ25lZCBpbnQgbnVtX2NoYW5uZWxzOworCXVuc2lnbmVkIGludCBjaGZpZm9fbGVuOworCXVuc2lnbmVkIGludCBleGVjX3VuaXRzOworCXVuc2lnbmVkIGludCBkZXNjX3R5cGVzOworCisJLyogbmV4dCBjaGFubmVsIHRvIGJlIGFzc2lnbmVkIG5leHQgaW5jb21pbmcgZGVzY3JpcHRvciAqLworCWF0b21pY190IGxhc3RfY2hhbjsKKworCS8qIHBlci1jaGFubmVsIHJlcXVlc3QgZmlmbyAqLworCXN0cnVjdCB0YWxpdG9zX3JlcXVlc3QgKipmaWZvOworCisJLyoKKwkgKiBsZW5ndGggb2YgdGhlIHJlcXVlc3QgZmlmbworCSAqIGZpZm9fbGVuIGlzIGNoZmlmb19sZW4gcm91bmRlZCB1cCB0byBuZXh0IHBvd2VyIG9mIDIKKwkgKiBzbyB3ZSBjYW4gdXNlIGJpdHdpc2Ugb3BzIHRvIHdyYXAKKwkgKi8KKwl1bnNpZ25lZCBpbnQgZmlmb19sZW47CisKKwkvKiBwZXItY2hhbm5lbCBpbmRleCB0byBuZXh0IGZyZWUgZGVzY3JpcHRvciByZXF1ZXN0ICovCisJaW50ICpoZWFkOworCisJLyogcGVyLWNoYW5uZWwgaW5kZXggdG8gbmV4dCBpbi1wcm9ncmVzcy9kb25lIGRlc2NyaXB0b3IgcmVxdWVzdCAqLworCWludCAqdGFpbDsKKworCS8qIHBlci1jaGFubmVsIHJlcXVlc3Qgc3VibWlzc2lvbiAoaGVhZCkgYW5kIHJlbGVhc2UgKHRhaWwpIGxvY2tzICovCisJc3BpbmxvY2tfdCAqaGVhZF9sb2NrOworCXNwaW5sb2NrX3QgKnRhaWxfbG9jazsKKworCS8qIHJlcXVlc3QgY2FsbGJhY2sgdGFza2xldCAqLworCXN0cnVjdCB0YXNrbGV0X3N0cnVjdCBkb25lX3Rhc2s7CisJc3RydWN0IHRhc2tsZXRfc3RydWN0IGVycm9yX3Rhc2s7CisKKwkvKiBsaXN0IG9mIHJlZ2lzdGVyZWQgYWxnb3JpdGhtcyAqLworCXN0cnVjdCBsaXN0X2hlYWQgYWxnX2xpc3Q7CisKKwkvKiBod3JuZyBkZXZpY2UgKi8KKwlzdHJ1Y3QgaHdybmcgcm5nOworfTsKKworLyoKKyAqIG1hcCB2aXJ0dWFsIHNpbmdsZSAoY29udGlndW91cykgcG9pbnRlciB0byBoL3cgZGVzY3JpcHRvciBwb2ludGVyCisgKi8KK3N0YXRpYyB2b2lkIG1hcF9zaW5nbGVfdGFsaXRvc19wdHIoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCB0YWxpdG9zX3B0ciAqdGFsaXRvc19wdHIsCisJCQkJICAgdW5zaWduZWQgc2hvcnQgbGVuLCB2b2lkICpkYXRhLAorCQkJCSAgIHVuc2lnbmVkIGNoYXIgZXh0ZW50LAorCQkJCSAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcikKK3sKKwl0YWxpdG9zX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYobGVuKTsKKwl0YWxpdG9zX3B0ci0+cHRyID0gY3B1X3RvX2JlMzIoZG1hX21hcF9zaW5nbGUoZGV2LCBkYXRhLCBsZW4sIGRpcikpOworCXRhbGl0b3NfcHRyLT5qX2V4dGVudCA9IGV4dGVudDsKK30KKworLyoKKyAqIHVubWFwIGJ1cyBzaW5nbGUgKGNvbnRpZ3VvdXMpIGgvdyBkZXNjcmlwdG9yIHBvaW50ZXIKKyAqLworc3RhdGljIHZvaWQgdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVjdCB0YWxpdG9zX3B0ciAqdGFsaXRvc19wdHIsCisJCQkJICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpCit7CisJZG1hX3VubWFwX3NpbmdsZShkZXYsIGJlMzJfdG9fY3B1KHRhbGl0b3NfcHRyLT5wdHIpLAorCQkJIGJlMTZfdG9fY3B1KHRhbGl0b3NfcHRyLT5sZW4pLCBkaXIpOworfQorCitzdGF0aWMgaW50IHJlc2V0X2NoYW5uZWwoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgY2gpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gVEFMSVRPU19USU1FT1VUOworCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCksIFRBTElUT1NfQ0NDUl9SRVNFVCk7CisKKwl3aGlsZSAoKGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19DQ0NSKGNoKSkgJiBUQUxJVE9TX0NDQ1JfUkVTRVQpCisJICAgICAgICYmIC0tdGltZW91dCkKKwkJY3B1X3JlbGF4KCk7CisKKwlpZiAodGltZW91dCA9PSAwKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc2V0IGNoYW5uZWwgJWRcbiIsIGNoKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJLyogc2V0IGRvbmUgd3JpdGViYWNrIGFuZCBJUlEgKi8KKwlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19DQ0NSX0xPKGNoKSwgVEFMSVRPU19DQ0NSX0xPX0NEV0UgfAorCQkgIFRBTElUT1NfQ0NDUl9MT19DRElFKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJlc2V0X2RldmljZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gVEFMSVRPU19USU1FT1VUOworCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfTUNSLCBUQUxJVE9TX01DUl9TV1IpOworCisJd2hpbGUgKChpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTUNSKSAmIFRBTElUT1NfTUNSX1NXUikKKwkgICAgICAgJiYgLS10aW1lb3V0KQorCQljcHVfcmVsYXgoKTsKKworCWlmICh0aW1lb3V0ID09IDApIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVzZXQgZGV2aWNlXG4iKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBSZXNldCBhbmQgaW5pdGlhbGl6ZSB0aGUgZGV2aWNlCisgKi8KK3N0YXRpYyBpbnQgaW5pdF9kZXZpY2Uoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlpbnQgY2gsIGVycjsKKworCS8qCisJICogTWFzdGVyIHJlc2V0CisJICogZXJyYXRhIGRvY3VtZW50YXRpb246IHdhcm5pbmc6IGNlcnRhaW4gU0VDIGludGVycnVwdHMKKwkgKiBhcmUgbm90IGZ1bGx5IGNsZWFyZWQgYnkgd3JpdGluZyB0aGUgTUNSOlNXUiBiaXQsCisJICogc2V0IGJpdCB0d2ljZSB0byBjb21wbGV0ZWx5IHJlc2V0CisJICovCisJZXJyID0gcmVzZXRfZGV2aWNlKGRldik7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHJlc2V0X2RldmljZShkZXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwkvKiByZXNldCBjaGFubmVscyAqLworCWZvciAoY2ggPSAwOyBjaCA8IHByaXYtPm51bV9jaGFubmVsczsgY2grKykgeworCQllcnIgPSByZXNldF9jaGFubmVsKGRldiwgY2gpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwkvKiBlbmFibGUgY2hhbm5lbCBkb25lIGFuZCBlcnJvciBpbnRlcnJ1cHRzICovCisJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfSU1SLCBUQUxJVE9TX0lNUl9JTklUKTsKKwlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19JTVJfTE8sIFRBTElUT1NfSU1SX0xPX0lOSVQpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogdGFsaXRvc19zdWJtaXQgLSBzdWJtaXRzIGEgZGVzY3JpcHRvciB0byB0aGUgZGV2aWNlIGZvciBwcm9jZXNzaW5nCisgKiBAZGV2Ogl0aGUgU0VDIGRldmljZSB0byBiZSB1c2VkCisgKiBAZGVzYzoJdGhlIGRlc2NyaXB0b3IgdG8gYmUgcHJvY2Vzc2VkIGJ5IHRoZSBkZXZpY2UKKyAqIEBjYWxsYmFjazoJd2hvbSB0byBjYWxsIHdoZW4gcHJvY2Vzc2luZyBpcyBjb21wbGV0ZQorICogQGNvbnRleHQ6CWEgaGFuZGxlIGZvciB1c2UgYnkgY2FsbGVyIChvcHRpb25hbCkKKyAqCisgKiBkZXNjIG11c3QgY29udGFpbiB2YWxpZCBkbWEtbWFwcGVkIChidXMgcGh5c2ljYWwpIGFkZHJlc3MgcG9pbnRlcnMuCisgKiBjYWxsYmFjayBtdXN0IGNoZWNrIGVyciBhbmQgZmVlZGJhY2sgaW4gZGVzY3JpcHRvciBoZWFkZXIKKyAqIGZvciBkZXZpY2UgcHJvY2Vzc2luZyBzdGF0dXMuCisgKi8KK3N0YXRpYyBpbnQgdGFsaXRvc19zdWJtaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdGFsaXRvc19kZXNjICpkZXNjLAorCQkJICB2b2lkICgqY2FsbGJhY2spKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJICAgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkJCQkJICAgdm9pZCAqY29udGV4dCwgaW50IGVycm9yKSwKKwkJCSAgdm9pZCAqY29udGV4dCkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHRhbGl0b3NfcmVxdWVzdCAqcmVxdWVzdDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBjaDsKKwlpbnQgaGVhZDsKKworCS8qIHNlbGVjdCBkb25lIG5vdGlmaWNhdGlvbiAqLworCWRlc2MtPmhkciB8PSBERVNDX0hEUl9ET05FX05PVElGWTsKKworCS8qIGVtdWxhdGUgU0VDJ3Mgcm91bmQtcm9iaW4gY2hhbm5lbCBmaWZvIHBvbGxpbmcgc2NoZW1lICovCisJY2ggPSBhdG9taWNfaW5jX3JldHVybigmcHJpdi0+bGFzdF9jaGFuKSAmIChwcml2LT5udW1fY2hhbm5lbHMgLSAxKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5oZWFkX2xvY2tbY2hdLCBmbGFncyk7CisKKwloZWFkID0gcHJpdi0+aGVhZFtjaF07CisJcmVxdWVzdCA9ICZwcml2LT5maWZvW2NoXVtoZWFkXTsKKworCWlmIChyZXF1ZXN0LT5kZXNjKSB7CisJCS8qIHJlcXVlc3QgcXVldWUgaXMgZnVsbCAqLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5oZWFkX2xvY2tbY2hdLCBmbGFncyk7CisJCXJldHVybiAtRUFHQUlOOworCX0KKworCS8qIG1hcCBkZXNjcmlwdG9yIGFuZCBzYXZlIGNhbGxlciBkYXRhICovCisJcmVxdWVzdC0+ZG1hX2Rlc2MgPSBkbWFfbWFwX3NpbmdsZShkZXYsIGRlc2MsIHNpemVvZigqZGVzYyksCisJCQkJCSAgIERNQV9CSURJUkVDVElPTkFMKTsKKwlyZXF1ZXN0LT5jYWxsYmFjayA9IGNhbGxiYWNrOworCXJlcXVlc3QtPmNvbnRleHQgPSBjb250ZXh0OworCisJLyogaW5jcmVtZW50IGZpZm8gaGVhZCAqLworCXByaXYtPmhlYWRbY2hdID0gKHByaXYtPmhlYWRbY2hdICsgMSkgJiAocHJpdi0+Zmlmb19sZW4gLSAxKTsKKworCXNtcF93bWIoKTsKKwlyZXF1ZXN0LT5kZXNjID0gZGVzYzsKKworCS8qIEdPISAqLworCXdtYigpOworCW91dF9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfRkZfTE8oY2gpLCByZXF1ZXN0LT5kbWFfZGVzYyk7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5oZWFkX2xvY2tbY2hdLCBmbGFncyk7CisKKwlyZXR1cm4gLUVJTlBST0dSRVNTOworfQorCisvKgorICogcHJvY2VzcyB3aGF0IHdhcyBkb25lLCBub3RpZnkgY2FsbGJhY2sgb2YgZXJyb3IgaWYgbm90CisgKi8KK3N0YXRpYyB2b2lkIGZsdXNoX2NoYW5uZWwoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgY2gsIGludCBlcnJvciwgaW50IHJlc2V0X2NoKQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgdGFsaXRvc19yZXF1ZXN0ICpyZXF1ZXN0LCBzYXZlZF9yZXE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgdGFpbCwgc3RhdHVzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPnRhaWxfbG9ja1tjaF0sIGZsYWdzKTsKKworCXRhaWwgPSBwcml2LT50YWlsW2NoXTsKKwl3aGlsZSAocHJpdi0+Zmlmb1tjaF1bdGFpbF0uZGVzYykgeworCQlyZXF1ZXN0ID0gJnByaXYtPmZpZm9bY2hdW3RhaWxdOworCisJCS8qIGRlc2NyaXB0b3JzIHdpdGggdGhlaXIgZG9uZSBiaXRzIHNldCBkb24ndCBnZXQgdGhlIGVycm9yICovCisJCXJtYigpOworCQlpZiAoKHJlcXVlc3QtPmRlc2MtPmhkciAmIERFU0NfSERSX0RPTkUpID09IERFU0NfSERSX0RPTkUpCisJCQlzdGF0dXMgPSAwOworCQllbHNlCisJCQlpZiAoIWVycm9yKQorCQkJCWJyZWFrOworCQkJZWxzZQorCQkJCXN0YXR1cyA9IGVycm9yOworCisJCWRtYV91bm1hcF9zaW5nbGUoZGV2LCByZXF1ZXN0LT5kbWFfZGVzYywKKwkJCXNpemVvZihzdHJ1Y3QgdGFsaXRvc19kZXNjKSwgRE1BX0JJRElSRUNUSU9OQUwpOworCisJCS8qIGNvcHkgZW50cmllcyBzbyB3ZSBjYW4gY2FsbCBjYWxsYmFjayBvdXRzaWRlIGxvY2sgKi8KKwkJc2F2ZWRfcmVxLmRlc2MgPSByZXF1ZXN0LT5kZXNjOworCQlzYXZlZF9yZXEuY2FsbGJhY2sgPSByZXF1ZXN0LT5jYWxsYmFjazsKKwkJc2F2ZWRfcmVxLmNvbnRleHQgPSByZXF1ZXN0LT5jb250ZXh0OworCisJCS8qIHJlbGVhc2UgcmVxdWVzdCBlbnRyeSBpbiBmaWZvICovCisJCXNtcF93bWIoKTsKKwkJcmVxdWVzdC0+ZGVzYyA9IE5VTEw7CisKKwkJLyogaW5jcmVtZW50IGZpZm8gdGFpbCAqLworCQlwcml2LT50YWlsW2NoXSA9ICh0YWlsICsgMSkgJiAocHJpdi0+Zmlmb19sZW4gLSAxKTsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT50YWlsX2xvY2tbY2hdLCBmbGFncyk7CisJCXNhdmVkX3JlcS5jYWxsYmFjayhkZXYsIHNhdmVkX3JlcS5kZXNjLCBzYXZlZF9yZXEuY29udGV4dCwKKwkJCQkgICBzdGF0dXMpOworCQkvKiBjaGFubmVsIG1heSByZXN1bWUgcHJvY2Vzc2luZyBpbiBzaW5nbGUgZGVzYyBlcnJvciBjYXNlICovCisJCWlmIChlcnJvciAmJiAhcmVzZXRfY2ggJiYgc3RhdHVzID09IGVycm9yKQorCQkJcmV0dXJuOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+dGFpbF9sb2NrW2NoXSwgZmxhZ3MpOworCQl0YWlsID0gcHJpdi0+dGFpbFtjaF07CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJpdi0+dGFpbF9sb2NrW2NoXSwgZmxhZ3MpOworfQorCisvKgorICogcHJvY2VzcyBjb21wbGV0ZWQgcmVxdWVzdHMgZm9yIGNoYW5uZWxzIHRoYXQgaGF2ZSBkb25lIHN0YXR1cworICovCitzdGF0aWMgdm9pZCB0YWxpdG9zX2RvbmUodW5zaWduZWQgbG9uZyBkYXRhKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IChzdHJ1Y3QgZGV2aWNlICopZGF0YTsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IGNoOworCisJZm9yIChjaCA9IDA7IGNoIDwgcHJpdi0+bnVtX2NoYW5uZWxzOyBjaCsrKQorCQlmbHVzaF9jaGFubmVsKGRldiwgY2gsIDAsIDApOworfQorCisvKgorICogbG9jYXRlIGN1cnJlbnQgKG9mZmVuZGluZykgZGVzY3JpcHRvcgorICovCitzdGF0aWMgc3RydWN0IHRhbGl0b3NfZGVzYyAqY3VycmVudF9kZXNjKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IGNoKQoreworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlpbnQgdGFpbCA9IHByaXYtPnRhaWxbY2hdOworCWRtYV9hZGRyX3QgY3VyX2Rlc2M7CisKKwljdXJfZGVzYyA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19DRFBSX0xPKGNoKSk7CisKKwl3aGlsZSAocHJpdi0+Zmlmb1tjaF1bdGFpbF0uZG1hX2Rlc2MgIT0gY3VyX2Rlc2MpIHsKKwkJdGFpbCA9ICh0YWlsICsgMSkgJiAocHJpdi0+Zmlmb19sZW4gLSAxKTsKKwkJaWYgKHRhaWwgPT0gcHJpdi0+dGFpbFtjaF0pIHsKKwkJCWRldl9lcnIoZGV2LCAiY291bGRuJ3QgbG9jYXRlIGN1cnJlbnQgZGVzY3JpcHRvclxuIik7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCX0KKworCXJldHVybiBwcml2LT5maWZvW2NoXVt0YWlsXS5kZXNjOworfQorCisvKgorICogdXNlciBkaWFnbm9zdGljczsgcmVwb3J0IHJvb3QgY2F1c2Ugb2YgZXJyb3IgYmFzZWQgb24gZXhlY3V0aW9uIHVuaXQgc3RhdHVzCisgKi8KK3N0YXRpYyB2b2lkIHJlcG9ydF9ldV9lcnJvcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGludCBjaCwgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IGk7CisKKwlzd2l0Y2ggKGRlc2MtPmhkciAmIERFU0NfSERSX1NFTDBfTUFTSykgeworCWNhc2UgREVTQ19IRFJfU0VMMF9BRkVVOgorCQlkZXZfZXJyKGRldiwgIkFGRVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUZFVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQUZFVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfREVVOgorCQlkZXZfZXJyKGRldiwgIkRFVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19ERVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0RFVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfTURFVUE6CisJY2FzZSBERVNDX0hEUl9TRUwwX01ERVVCOgorCQlkZXZfZXJyKGRldiwgIk1ERVVJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfTURFVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfUk5HOgorCQlkZXZfZXJyKGRldiwgIlJOR1VJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfUEtFVToKKwkJZGV2X2VycihkZXYsICJQS0VVSVNSIDB4JTA4eF8lMDh4XG4iLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1BLRVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1BLRVVJU1JfTE8pKTsKKwkJYnJlYWs7CisJY2FzZSBERVNDX0hEUl9TRUwwX0FFU1U6CisJCWRldl9lcnIoZGV2LCAiQUVTVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19BRVNVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19BRVNVSVNSX0xPKSk7CisJCWJyZWFrOworCWNhc2UgREVTQ19IRFJfU0VMMF9DUkNVOgorCQlkZXZfZXJyKGRldiwgIkNSQ1VJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ1JDVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ1JDVUlTUl9MTykpOworCQlicmVhazsKKwljYXNlIERFU0NfSERSX1NFTDBfS0VVOgorCQlkZXZfZXJyKGRldiwgIktFVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19LRVVJU1IpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0tFVUlTUl9MTykpOworCQlicmVhazsKKwl9CisKKwlzd2l0Y2ggKGRlc2MtPmhkciAmIERFU0NfSERSX1NFTDFfTUFTSykgeworCWNhc2UgREVTQ19IRFJfU0VMMV9NREVVQToKKwljYXNlIERFU0NfSERSX1NFTDFfTURFVUI6CisJCWRldl9lcnIoZGV2LCAiTURFVUlTUiAweCUwOHhfJTA4eFxuIiwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19NREVVSVNSKSwKKwkJCWluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19NREVVSVNSX0xPKSk7CisJCWJyZWFrOworCWNhc2UgREVTQ19IRFJfU0VMMV9DUkNVOgorCQlkZXZfZXJyKGRldiwgIkNSQ1VJU1IgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ1JDVUlTUiksCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ1JDVUlTUl9MTykpOworCQlicmVhazsKKwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorCQlkZXZfZXJyKGRldiwgIkRFU0NCVUYgMHglMDh4XyUwOHhcbiIsCisJCQlpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfREVTQ0JVRihjaCkgKyA4KmkpLAorCQkJaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0RFU0NCVUZfTE8oY2gpICsgOCppKSk7Cit9CisKKy8qCisgKiByZWNvdmVyIGZyb20gZXJyb3IgaW50ZXJydXB0cworICovCitzdGF0aWMgdm9pZCB0YWxpdG9zX2Vycm9yKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKWRhdGE7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGludCB0aW1lb3V0ID0gVEFMSVRPU19USU1FT1VUOworCWludCBjaCwgZXJyb3IsIHJlc2V0X2RldiA9IDAsIHJlc2V0X2NoID0gMDsKKwl1MzIgaXNyLCBpc3JfbG8sIHYsIHZfbG87CisKKwlpc3IgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfSVNSKTsKKwlpc3JfbG8gPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfSVNSX0xPKTsKKworCWZvciAoY2ggPSAwOyBjaCA8IHByaXYtPm51bV9jaGFubmVsczsgY2grKykgeworCQkvKiBza2lwIGNoYW5uZWxzIHdpdGhvdXQgZXJyb3JzICovCisJCWlmICghKGlzciAmICgxIDw8IChjaCAqIDIgKyAxKSkpKQorCQkJY29udGludWU7CisKKwkJZXJyb3IgPSAtRUlOVkFMOworCisJCXYgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NQU1IoY2gpKTsKKwkJdl9sbyA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19DQ1BTUl9MTyhjaCkpOworCisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19ET0YpIHsKKwkJCWRldl9lcnIoZGV2LCAiZG91YmxlIGZldGNoIGZpZm8gb3ZlcmZsb3cgZXJyb3JcbiIpOworCQkJZXJyb3IgPSAtRUFHQUlOOworCQkJcmVzZXRfY2ggPSAxOworCQl9CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TT0YpIHsKKwkJCS8qIGgvdyBkcm9wcGVkIGRlc2NyaXB0b3IgKi8KKwkJCWRldl9lcnIoZGV2LCAic2luZ2xlIGZldGNoIGZpZm8gb3ZlcmZsb3cgZXJyb3JcbiIpOworCQkJZXJyb3IgPSAtRUFHQUlOOworCQl9CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19NRFRFKQorCQkJZGV2X2VycihkZXYsICJtYXN0ZXIgZGF0YSB0cmFuc2ZlciBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19TR0RMWikKKwkJCWRldl9lcnIoZGV2LCAicy9nIGRhdGEgbGVuZ3RoIHplcm8gZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fRlBaKQorCQkJZGV2X2VycihkZXYsICJmZXRjaCBwb2ludGVyIHplcm8gZXJyb3JcbiIpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fSURIKQorCQkJZGV2X2VycihkZXYsICJpbGxlZ2FsIGRlc2NyaXB0b3IgaGVhZGVyIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX0lFVSkKKwkJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBleGVjdXRpb24gdW5pdCBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19FVSkKKwkJCXJlcG9ydF9ldV9lcnJvcihkZXYsIGNoLCBjdXJyZW50X2Rlc2MoZGV2LCBjaCkpOworCQlpZiAodl9sbyAmIFRBTElUT1NfQ0NQU1JfTE9fR0IpCisJCQlkZXZfZXJyKGRldiwgImdhdGhlciBib3VuZGFyeSBlcnJvclxuIik7CisJCWlmICh2X2xvICYgVEFMSVRPU19DQ1BTUl9MT19HUkwpCisJCQlkZXZfZXJyKGRldiwgImdhdGhlciByZXR1cm4vbGVuZ3RoIGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX1NCKQorCQkJZGV2X2VycihkZXYsICJzY2F0dGVyIGJvdW5kYXJ5IGVycm9yXG4iKTsKKwkJaWYgKHZfbG8gJiBUQUxJVE9TX0NDUFNSX0xPX1NSTCkKKwkJCWRldl9lcnIoZGV2LCAic2NhdHRlciByZXR1cm4vbGVuZ3RoIGVycm9yXG4iKTsKKworCQlmbHVzaF9jaGFubmVsKGRldiwgY2gsIGVycm9yLCByZXNldF9jaCk7CisKKwkJaWYgKHJlc2V0X2NoKSB7CisJCQlyZXNldF9jaGFubmVsKGRldiwgY2gpOworCQl9IGVsc2UgeworCQkJc2V0Yml0czMyKHByaXYtPnJlZyArIFRBTElUT1NfQ0NDUihjaCksCisJCQkJICBUQUxJVE9TX0NDQ1JfQ09OVCk7CisJCQlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19DQ0NSX0xPKGNoKSwgMCk7CisJCQl3aGlsZSAoKGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19DQ0NSKGNoKSkgJgorCQkJICAgICAgIFRBTElUT1NfQ0NDUl9DT05UKSAmJiAtLXRpbWVvdXQpCisJCQkJY3B1X3JlbGF4KCk7CisJCQlpZiAodGltZW91dCA9PSAwKSB7CisJCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVzdGFydCBjaGFubmVsICVkXG4iLAorCQkJCQljaCk7CisJCQkJcmVzZXRfZGV2ID0gMTsKKwkJCX0KKwkJfQorCX0KKwlpZiAocmVzZXRfZGV2IHx8IGlzciAmIH5UQUxJVE9TX0lTUl9DSEVSUiB8fCBpc3JfbG8pIHsKKwkJZGV2X2VycihkZXYsICJkb25lIG92ZXJmbG93LCBpbnRlcm5hbCB0aW1lIG91dCwgb3Igcm5ndSBlcnJvcjogIgorCQkgICAgICAgICJJU1IgMHglMDh4XyUwOHhcbiIsIGlzciwgaXNyX2xvKTsKKworCQkvKiBwdXJnZSByZXF1ZXN0IHF1ZXVlcyAqLworCQlmb3IgKGNoID0gMDsgY2ggPCBwcml2LT5udW1fY2hhbm5lbHM7IGNoKyspCisJCQlmbHVzaF9jaGFubmVsKGRldiwgY2gsIC1FSU8sIDEpOworCisJCS8qIHJlc2V0IGFuZCByZWluaXRpYWxpemUgdGhlIGRldmljZSAqLworCQlpbml0X2RldmljZShkZXYpOworCX0KK30KKworc3RhdGljIGlycXJldHVybl90IHRhbGl0b3NfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gZGF0YTsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdTMyIGlzciwgaXNyX2xvOworCisJaXNyID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUik7CisJaXNyX2xvID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lTUl9MTyk7CisKKwkvKiBhY2sgKi8KKwlvdXRfYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lDUiwgaXNyKTsKKwlvdXRfYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX0lDUl9MTywgaXNyX2xvKTsKKworCWlmICh1bmxpa2VseSgoaXNyICYgflRBTElUT1NfSVNSX0NIRE9ORSkgfHwgaXNyX2xvKSkKKwkJdGFsaXRvc19lcnJvcigodW5zaWduZWQgbG9uZylkYXRhKTsKKwllbHNlCisJCWlmIChsaWtlbHkoaXNyICYgVEFMSVRPU19JU1JfQ0hET05FKSkKKwkJCXRhc2tsZXRfc2NoZWR1bGUoJnByaXYtPmRvbmVfdGFzayk7CisKKwlyZXR1cm4gKGlzciB8fCBpc3JfbG8pID8gSVJRX0hBTkRMRUQgOiBJUlFfTk9ORTsKK30KKworLyoKKyAqIGh3cm5nCisgKi8KK3N0YXRpYyBpbnQgdGFsaXRvc19ybmdfZGF0YV9wcmVzZW50KHN0cnVjdCBod3JuZyAqcm5nLCBpbnQgd2FpdCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAoc3RydWN0IGRldmljZSAqKXJuZy0+cHJpdjsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdTMyIG9mbDsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAyMDsgaSsrKSB7CisJCW9mbCA9IGluX2JlMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVU1JfTE8pICYKKwkJICAgICAgVEFMSVRPU19STkdVU1JfTE9fT0ZMOworCQlpZiAob2ZsIHx8ICF3YWl0KQorCQkJYnJlYWs7CisJCXVkZWxheSgxMCk7CisJfQorCisJcmV0dXJuICEhb2ZsOworfQorCitzdGF0aWMgaW50IHRhbGl0b3Nfcm5nX2RhdGFfcmVhZChzdHJ1Y3QgaHdybmcgKnJuZywgdTMyICpkYXRhKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IChzdHJ1Y3QgZGV2aWNlICopcm5nLT5wcml2OworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCS8qIHJuZyBmaWZvIHJlcXVpcmVzIDY0LWJpdCBhY2Nlc3NlcyAqLworCSpkYXRhID0gaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VfRklGTyk7CisJKmRhdGEgPSBpbl9iZTMyKHByaXYtPnJlZyArIFRBTElUT1NfUk5HVV9GSUZPX0xPKTsKKworCXJldHVybiBzaXplb2YodTMyKTsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3JuZ19pbml0KHN0cnVjdCBod3JuZyAqcm5nKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9IChzdHJ1Y3QgZGV2aWNlICopcm5nLT5wcml2OworCXN0cnVjdCB0YWxpdG9zX3ByaXZhdGUgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBpbnQgdGltZW91dCA9IFRBTElUT1NfVElNRU9VVDsKKworCXNldGJpdHMzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VSQ1JfTE8sIFRBTElUT1NfUk5HVVJDUl9MT19TUik7CisJd2hpbGUgKCEoaW5fYmUzMihwcml2LT5yZWcgKyBUQUxJVE9TX1JOR1VTUl9MTykgJiBUQUxJVE9TX1JOR1VTUl9MT19SRCkKKwkgICAgICAgJiYgLS10aW1lb3V0KQorCQljcHVfcmVsYXgoKTsKKwlpZiAodGltZW91dCA9PSAwKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlc2V0IHJuZyBod1xuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCS8qIHN0YXJ0IGdlbmVyYXRpbmcgKi8KKwlzZXRiaXRzMzIocHJpdi0+cmVnICsgVEFMSVRPU19STkdVRFNSX0xPLCAwKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRhbGl0b3NfcmVnaXN0ZXJfcm5nKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlwcml2LT5ybmcubmFtZQkJPSBkZXZfZHJpdmVyX3N0cmluZyhkZXYpLAorCXByaXYtPnJuZy5pbml0CQk9IHRhbGl0b3Nfcm5nX2luaXQsCisJcHJpdi0+cm5nLmRhdGFfcHJlc2VudAk9IHRhbGl0b3Nfcm5nX2RhdGFfcHJlc2VudCwKKwlwcml2LT5ybmcuZGF0YV9yZWFkCT0gdGFsaXRvc19ybmdfZGF0YV9yZWFkLAorCXByaXYtPnJuZy5wcml2CQk9ICh1bnNpZ25lZCBsb25nKWRldjsKKworCXJldHVybiBod3JuZ19yZWdpc3RlcigmcHJpdi0+cm5nKTsKK30KKworc3RhdGljIHZvaWQgdGFsaXRvc191bnJlZ2lzdGVyX3JuZyhzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJaHdybmdfdW5yZWdpc3RlcigmcHJpdi0+cm5nKTsKK30KKworLyoKKyAqIGNyeXB0byBhbGcKKyAqLworI2RlZmluZSBUQUxJVE9TX0NSQV9QUklPUklUWQkJMzAwMAorI2RlZmluZSBUQUxJVE9TX01BWF9LRVlfU0laRQkJNjQKKyNkZWZpbmUgVEFMSVRPU19NQVhfSVZfTEVOR1RICQkxNiAvKiBtYXggb2YgQUVTX0JMT0NLX1NJWkUsIERFUzNfRURFX0JMT0NLX1NJWkUgKi8KKworI2RlZmluZSBNRDVfRElHRVNUX1NJWkUgICAxNgorCitzdHJ1Y3QgdGFsaXRvc19jdHggeworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwlfX2JlMzIgZGVzY19oZHJfdGVtcGxhdGU7CisJdTgga2V5W1RBTElUT1NfTUFYX0tFWV9TSVpFXTsKKwl1OCBpdltUQUxJVE9TX01BWF9JVl9MRU5HVEhdOworCXVuc2lnbmVkIGludCBrZXlsZW47CisJdW5zaWduZWQgaW50IGVuY2tleWxlbjsKKwl1bnNpZ25lZCBpbnQgYXV0aGtleWxlbjsKKwl1bnNpZ25lZCBpbnQgYXV0aHNpemU7Cit9OworCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZShzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMsCisJCQkJCQkgdW5zaWduZWQgaW50IGF1dGhzaXplKQoreworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCisJY3R4LT5hdXRoc2l6ZSA9IGF1dGhzaXplOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9hdXRoZW5jX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMsCisJCQkJCSAgICBjb25zdCB1OCAqa2V5LCB1bnNpZ25lZCBpbnQga2V5bGVuKQoreworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBydGF0dHIgKnJ0YSA9ICh2b2lkICopa2V5OworCXN0cnVjdCBjcnlwdG9fYXV0aGVuY19rZXlfcGFyYW0gKnBhcmFtOworCXVuc2lnbmVkIGludCBhdXRoa2V5bGVuOworCXVuc2lnbmVkIGludCBlbmNrZXlsZW47CisKKwlpZiAoIVJUQV9PSyhydGEsIGtleWxlbikpCisJCWdvdG8gYmFka2V5OworCisJaWYgKHJ0YS0+cnRhX3R5cGUgIT0gQ1JZUFRPX0FVVEhFTkNfS0VZQV9QQVJBTSkKKwkJZ290byBiYWRrZXk7CisKKwlpZiAoUlRBX1BBWUxPQUQocnRhKSA8IHNpemVvZigqcGFyYW0pKQorCQlnb3RvIGJhZGtleTsKKworCXBhcmFtID0gUlRBX0RBVEEocnRhKTsKKwllbmNrZXlsZW4gPSBiZTMyX3RvX2NwdShwYXJhbS0+ZW5ja2V5bGVuKTsKKworCWtleSArPSBSVEFfQUxJR04ocnRhLT5ydGFfbGVuKTsKKwlrZXlsZW4gLT0gUlRBX0FMSUdOKHJ0YS0+cnRhX2xlbik7CisKKwlpZiAoa2V5bGVuIDwgZW5ja2V5bGVuKQorCQlnb3RvIGJhZGtleTsKKworCWF1dGhrZXlsZW4gPSBrZXlsZW4gLSBlbmNrZXlsZW47CisKKwlpZiAoa2V5bGVuID4gVEFMSVRPU19NQVhfS0VZX1NJWkUpCisJCWdvdG8gYmFka2V5OworCisJbWVtY3B5KCZjdHgtPmtleSwga2V5LCBrZXlsZW4pOworCisJY3R4LT5rZXlsZW4gPSBrZXlsZW47CisJY3R4LT5lbmNrZXlsZW4gPSBlbmNrZXlsZW47CisJY3R4LT5hdXRoa2V5bGVuID0gYXV0aGtleWxlbjsKKworCXJldHVybiAwOworCitiYWRrZXk6CisJY3J5cHRvX2FlYWRfc2V0X2ZsYWdzKGF1dGhlbmMsIENSWVBUT19URk1fUkVTX0JBRF9LRVlfTEVOKTsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworLyoKKyAqIGlwc2VjX2VzcF9lZGVzYyAtIHMvdy1leHRlbmRlZCBpcHNlY19lc3AgZGVzY3JpcHRvcgorICogQHNyY19uZW50czogbnVtYmVyIG9mIHNlZ21lbnRzIGluIGlucHV0IHNjYXR0ZXJsaXN0CisgKiBAZHN0X25lbnRzOiBudW1iZXIgb2Ygc2VnbWVudHMgaW4gb3V0cHV0IHNjYXR0ZXJsaXN0CisgKiBAZG1hX2xlbjogbGVuZ3RoIG9mIGRtYSBtYXBwZWQgbGlua190Ymwgc3BhY2UKKyAqIEBkbWFfbGlua190Ymw6IGJ1cyBwaHlzaWNhbCBhZGRyZXNzIG9mIGxpbmtfdGJsCisgKiBAZGVzYzogaC93IGRlc2NyaXB0b3IKKyAqIEBsaW5rX3RibDogaW5wdXQgYW5kIG91dHB1dCBoL3cgbGluayB0YWJsZXMgKGlmIHtzcmMsZHN0fV9uZW50cyA+IDEpCisgKgorICogaWYgZGVjcnlwdGluZyAod2l0aCBhdXRoY2hlY2spLCBvciBlaXRoZXIgb25lIG9mIHNyY19uZW50cyBvciBkc3RfbmVudHMKKyAqIGlzIGdyZWF0ZXIgdGhhbiAxLCBhbiBpbnRlZ3JpdHkgY2hlY2sgdmFsdWUgaXMgY29uY2F0ZW5hdGVkIHRvIHRoZSBlbmQKKyAqIG9mIGxpbmtfdGJsIGRhdGEKKyAqLworc3RydWN0IGlwc2VjX2VzcF9lZGVzYyB7CisJaW50IHNyY19uZW50czsKKwlpbnQgZHN0X25lbnRzOworCWludCBkbWFfbGVuOworCWRtYV9hZGRyX3QgZG1hX2xpbmtfdGJsOworCXN0cnVjdCB0YWxpdG9zX2Rlc2MgZGVzYzsKKwlzdHJ1Y3QgdGFsaXRvc19wdHIgbGlua190YmxbMF07Cit9OworCitzdGF0aWMgdm9pZCBpcHNlY19lc3BfdW5tYXAoc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgIHN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjLAorCQkJICAgIHN0cnVjdCBhZWFkX3JlcXVlc3QgKmFyZXEpCit7CisJdW5tYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmVkZXNjLT5kZXNjLnB0cls2XSwgRE1BX0ZST01fREVWSUNFKTsKKwl1bm1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZWRlc2MtPmRlc2MucHRyWzNdLCBETUFfVE9fREVWSUNFKTsKKwl1bm1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZWRlc2MtPmRlc2MucHRyWzJdLCBETUFfVE9fREVWSUNFKTsKKwl1bm1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZWRlc2MtPmRlc2MucHRyWzBdLCBETUFfVE9fREVWSUNFKTsKKworCWRtYV91bm1hcF9zZyhkZXYsIGFyZXEtPmFzc29jLCAxLCBETUFfVE9fREVWSUNFKTsKKworCWlmIChhcmVxLT5zcmMgIT0gYXJlcS0+ZHN0KSB7CisJCWRtYV91bm1hcF9zZyhkZXYsIGFyZXEtPnNyYywgZWRlc2MtPnNyY19uZW50cyA/IDogMSwKKwkJCSAgICAgRE1BX1RPX0RFVklDRSk7CisJCWRtYV91bm1hcF9zZyhkZXYsIGFyZXEtPmRzdCwgZWRlc2MtPmRzdF9uZW50cyA/IDogMSwKKwkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKKwl9IGVsc2UgeworCQlkbWFfdW5tYXBfc2coZGV2LCBhcmVxLT5zcmMsIGVkZXNjLT5zcmNfbmVudHMgPyA6IDEsCisJCQkgICAgIERNQV9CSURJUkVDVElPTkFMKTsKKwl9CisKKwlpZiAoZWRlc2MtPmRtYV9sZW4pCisJCWRtYV91bm1hcF9zaW5nbGUoZGV2LCBlZGVzYy0+ZG1hX2xpbmtfdGJsLCBlZGVzYy0+ZG1hX2xlbiwKKwkJCQkgRE1BX0JJRElSRUNUSU9OQUwpOworfQorCisvKgorICogaXBzZWNfZXNwIGRlc2NyaXB0b3IgY2FsbGJhY2tzCisgKi8KK3N0YXRpYyB2b2lkIGlwc2VjX2VzcF9lbmNyeXB0X2RvbmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsIHZvaWQgKmNvbnRleHQsCisJCQkJICAgaW50IGVycikKK3sKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxID0gY29udGV4dDsKKwlzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYyA9CisJCSBjb250YWluZXJfb2YoZGVzYywgc3RydWN0IGlwc2VjX2VzcF9lZGVzYywgZGVzYyk7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJdm9pZCAqaWN2ZGF0YTsKKworCWlwc2VjX2VzcF91bm1hcChkZXYsIGVkZXNjLCBhcmVxKTsKKworCS8qIGNvcHkgdGhlIGdlbmVyYXRlZCBJQ1YgdG8gZHN0ICovCisJaWYgKGVkZXNjLT5kbWFfbGVuKSB7CisJCWljdmRhdGEgPSAmZWRlc2MtPmxpbmtfdGJsW2VkZXNjLT5zcmNfbmVudHMgKworCQkJCQkgICBlZGVzYy0+ZHN0X25lbnRzICsgMV07CisJCXNnID0gc2dfbGFzdChhcmVxLT5kc3QsIGVkZXNjLT5kc3RfbmVudHMpOworCQltZW1jcHkoKGNoYXIgKilzZ192aXJ0KHNnKSArIHNnLT5sZW5ndGggLSBjdHgtPmF1dGhzaXplLAorCQkgICAgICAgaWN2ZGF0YSwgY3R4LT5hdXRoc2l6ZSk7CisJfQorCisJa2ZyZWUoZWRlc2MpOworCisJYWVhZF9yZXF1ZXN0X2NvbXBsZXRlKGFyZXEsIGVycik7Cit9CisKK3N0YXRpYyB2b2lkIGlwc2VjX2VzcF9kZWNyeXB0X2RvbmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCB0YWxpdG9zX2Rlc2MgKmRlc2MsIHZvaWQgKmNvbnRleHQsCisJCQkJICAgaW50IGVycikKK3sKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXEgPSBjb250ZXh0OworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjID0KKwkJIGNvbnRhaW5lcl9vZihkZXNjLCBzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjLCBkZXNjKTsKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMgPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXZvaWQgKmljdmRhdGE7CisKKwlpcHNlY19lc3BfdW5tYXAoZGV2LCBlZGVzYywgcmVxKTsKKworCWlmICghZXJyKSB7CisJCS8qIGF1dGggY2hlY2sgKi8KKwkJaWYgKGVkZXNjLT5kbWFfbGVuKQorCQkJaWN2ZGF0YSA9ICZlZGVzYy0+bGlua190YmxbZWRlc2MtPnNyY19uZW50cyArCisJCQkJCQkgICBlZGVzYy0+ZHN0X25lbnRzICsgMV07CisJCWVsc2UKKwkJCWljdmRhdGEgPSAmZWRlc2MtPmxpbmtfdGJsWzBdOworCisJCXNnID0gc2dfbGFzdChyZXEtPmRzdCwgZWRlc2MtPmRzdF9uZW50cyA/IDogMSk7CisJCWVyciA9IG1lbWNtcChpY3ZkYXRhLCAoY2hhciAqKXNnX3ZpcnQoc2cpICsgc2ctPmxlbmd0aCAtCisJCQkgICAgIGN0eC0+YXV0aHNpemUsIGN0eC0+YXV0aHNpemUpID8gLUVCQURNU0cgOiAwOworCX0KKworCWtmcmVlKGVkZXNjKTsKKworCWFlYWRfcmVxdWVzdF9jb21wbGV0ZShyZXEsIGVycik7Cit9CisKKy8qCisgKiBjb252ZXJ0IHNjYXR0ZXJsaXN0IHRvIFNFQyBoL3cgbGluayB0YWJsZSBmb3JtYXQKKyAqIHN0b3AgYXQgY3J5cHRsZW4gYnl0ZXMKKyAqLworc3RhdGljIGludCBzZ190b19saW5rX3RibChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnLCBpbnQgc2dfY291bnQsCisJCQkgICBpbnQgY3J5cHRsZW4sIHN0cnVjdCB0YWxpdG9zX3B0ciAqbGlua190YmxfcHRyKQoreworCWludCBuX3NnID0gc2dfY291bnQ7CisKKwl3aGlsZSAobl9zZy0tKSB7CisJCWxpbmtfdGJsX3B0ci0+cHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3Moc2cpKTsKKwkJbGlua190YmxfcHRyLT5sZW4gPSBjcHVfdG9fYmUxNihzZ19kbWFfbGVuKHNnKSk7CisJCWxpbmtfdGJsX3B0ci0+al9leHRlbnQgPSAwOworCQlsaW5rX3RibF9wdHIrKzsKKwkJY3J5cHRsZW4gLT0gc2dfZG1hX2xlbihzZyk7CisJCXNnID0gc2dfbmV4dChzZyk7CisJfQorCisJLyogYWRqdXN0IChkZWNyZWFzZSkgbGFzdCBvbmUgKG9yIHR3bykgZW50cnkncyBsZW4gdG8gY3J5cHRsZW4gKi8KKwlsaW5rX3RibF9wdHItLTsKKwl3aGlsZSAobGlua190YmxfcHRyLT5sZW4gPD0gKC1jcnlwdGxlbikpIHsKKwkJLyogRW1wdHkgdGhpcyBlbnRyeSwgYW5kIG1vdmUgdG8gcHJldmlvdXMgb25lICovCisJCWNyeXB0bGVuICs9IGJlMTZfdG9fY3B1KGxpbmtfdGJsX3B0ci0+bGVuKTsKKwkJbGlua190YmxfcHRyLT5sZW4gPSAwOworCQlzZ19jb3VudC0tOworCQlsaW5rX3RibF9wdHItLTsKKwl9CisJbGlua190YmxfcHRyLT5sZW4gPSBjcHVfdG9fYmUxNihiZTE2X3RvX2NwdShsaW5rX3RibF9wdHItPmxlbikKKwkJCQkJKyBjcnlwdGxlbik7CisKKwkvKiB0YWcgZW5kIG9mIGxpbmsgdGFibGUgKi8KKwlsaW5rX3RibF9wdHItPmpfZXh0ZW50ID0gREVTQ19QVFJfTE5LVEJMX1JFVFVSTjsKKworCXJldHVybiBzZ19jb3VudDsKK30KKworLyoKKyAqIGZpbGwgaW4gYW5kIHN1Ym1pdCBpcHNlY19lc3AgZGVzY3JpcHRvcgorICovCitzdGF0aWMgaW50IGlwc2VjX2VzcChzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjICplZGVzYywgc3RydWN0IGFlYWRfcmVxdWVzdCAqYXJlcSwKKwkJICAgICB1OCAqZ2l2LCB1NjQgc2VxLAorCQkgICAgIHZvaWQgKCpjYWxsYmFjaykgKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICAgICAgc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYywKKwkJCQkgICAgICAgdm9pZCAqY29udGV4dCwgaW50IGVycm9yKSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmFlYWQgPSBjcnlwdG9fYWVhZF9yZXF0Zm0oYXJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYWVhZCk7CisJc3RydWN0IGRldmljZSAqZGV2ID0gY3R4LT5kZXY7CisJc3RydWN0IHRhbGl0b3NfZGVzYyAqZGVzYyA9ICZlZGVzYy0+ZGVzYzsKKwl1bnNpZ25lZCBpbnQgY3J5cHRsZW4gPSBhcmVxLT5jcnlwdGxlbjsKKwl1bnNpZ25lZCBpbnQgYXV0aHNpemUgPSBjdHgtPmF1dGhzaXplOworCXVuc2lnbmVkIGludCBpdnNpemU7CisJaW50IHNnX2NvdW50OworCisJLyogaG1hYyBrZXkgKi8KKwltYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmRlc2MtPnB0clswXSwgY3R4LT5hdXRoa2V5bGVuLCAmY3R4LT5rZXksCisJCQkgICAgICAgMCwgRE1BX1RPX0RFVklDRSk7CisJLyogaG1hYyBkYXRhICovCisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbMV0sIHNnX3ZpcnQoYXJlcS0+c3JjKSAtCisJCQkgICAgICAgc2dfdmlydChhcmVxLT5hc3NvYyksIHNnX3ZpcnQoYXJlcS0+YXNzb2MpLCAwLAorCQkJICAgICAgIERNQV9UT19ERVZJQ0UpOworCS8qIGNpcGhlciBpdiAqLworCWl2c2l6ZSA9IGNyeXB0b19hZWFkX2l2c2l6ZShhZWFkKTsKKwltYXBfc2luZ2xlX3RhbGl0b3NfcHRyKGRldiwgJmRlc2MtPnB0clsyXSwgaXZzaXplLCBnaXYgPzogYXJlcS0+aXYsIDAsCisJCQkgICAgICAgRE1BX1RPX0RFVklDRSk7CisKKwkvKiBjaXBoZXIga2V5ICovCisJbWFwX3NpbmdsZV90YWxpdG9zX3B0cihkZXYsICZkZXNjLT5wdHJbM10sIGN0eC0+ZW5ja2V5bGVuLAorCQkJICAgICAgIChjaGFyICopJmN0eC0+a2V5ICsgY3R4LT5hdXRoa2V5bGVuLCAwLAorCQkJICAgICAgIERNQV9UT19ERVZJQ0UpOworCisJLyoKKwkgKiBjaXBoZXIgaW4KKwkgKiBtYXAgYW5kIGFkanVzdCBjaXBoZXIgbGVuIHRvIGFlYWQgcmVxdWVzdCBjcnlwdGxlbi4KKwkgKiBleHRlbnQgaXMgYnl0ZXMgb2YgSE1BQyBwb3N0cGVuZGVkIHRvIGNpcGhlcnRleHQsCisJICogdHlwaWNhbGx5IDEyIGZvciBpcHNlYworCSAqLworCWRlc2MtPnB0cls0XS5sZW4gPSBjcHVfdG9fYmUxNihjcnlwdGxlbik7CisJZGVzYy0+cHRyWzRdLmpfZXh0ZW50ID0gYXV0aHNpemU7CisKKwlpZiAoYXJlcS0+c3JjID09IGFyZXEtPmRzdCkKKwkJc2dfY291bnQgPSBkbWFfbWFwX3NnKGRldiwgYXJlcS0+c3JjLCBlZGVzYy0+c3JjX25lbnRzID8gOiAxLAorCQkJCSAgICAgIERNQV9CSURJUkVDVElPTkFMKTsKKwllbHNlCisJCXNnX2NvdW50ID0gZG1hX21hcF9zZyhkZXYsIGFyZXEtPnNyYywgZWRlc2MtPnNyY19uZW50cyA/IDogMSwKKwkJCQkgICAgICBETUFfVE9fREVWSUNFKTsKKworCWlmIChzZ19jb3VudCA9PSAxKSB7CisJCWRlc2MtPnB0cls0XS5wdHIgPSBjcHVfdG9fYmUzMihzZ19kbWFfYWRkcmVzcyhhcmVxLT5zcmMpKTsKKwl9IGVsc2UgeworCQlzZ19jb3VudCA9IHNnX3RvX2xpbmtfdGJsKGFyZXEtPnNyYywgc2dfY291bnQsIGNyeXB0bGVuLAorCQkJCQkgICZlZGVzYy0+bGlua190YmxbMF0pOworCQlpZiAoc2dfY291bnQgPiAxKSB7CisJCQlkZXNjLT5wdHJbNF0ual9leHRlbnQgfD0gREVTQ19QVFJfTE5LVEJMX0pVTVA7CisJCQlkZXNjLT5wdHJbNF0ucHRyID0gY3B1X3RvX2JlMzIoZWRlc2MtPmRtYV9saW5rX3RibCk7CisJCQlkbWFfc3luY19zaW5nbGVfZm9yX2RldmljZShjdHgtPmRldiwgZWRlc2MtPmRtYV9saW5rX3RibCwKKwkJCQkJCSAgIGVkZXNjLT5kbWFfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7CisJCX0gZWxzZSB7CisJCQkvKiBPbmx5IG9uZSBzZWdtZW50IG5vdywgc28gbm8gbGluayB0YmwgbmVlZGVkICovCisJCQlkZXNjLT5wdHJbNF0ucHRyID0gY3B1X3RvX2JlMzIoc2dfZG1hX2FkZHJlc3MoYXJlcS0+c3JjKSk7CisJCX0KKwl9CisKKwkvKiBjaXBoZXIgb3V0ICovCisJZGVzYy0+cHRyWzVdLmxlbiA9IGNwdV90b19iZTE2KGNyeXB0bGVuKTsKKwlkZXNjLT5wdHJbNV0ual9leHRlbnQgPSBhdXRoc2l6ZTsKKworCWlmIChhcmVxLT5zcmMgIT0gYXJlcS0+ZHN0KSB7CisJCXNnX2NvdW50ID0gZG1hX21hcF9zZyhkZXYsIGFyZXEtPmRzdCwgZWRlc2MtPmRzdF9uZW50cyA/IDogMSwKKwkJCQkgICAgICBETUFfRlJPTV9ERVZJQ0UpOworCX0KKworCWlmIChzZ19jb3VudCA9PSAxKSB7CisJCWRlc2MtPnB0cls1XS5wdHIgPSBjcHVfdG9fYmUzMihzZ19kbWFfYWRkcmVzcyhhcmVxLT5kc3QpKTsKKwl9IGVsc2UgeworCQlzdHJ1Y3QgdGFsaXRvc19wdHIgKmxpbmtfdGJsX3B0ciA9CisJCQkmZWRlc2MtPmxpbmtfdGJsW2VkZXNjLT5zcmNfbmVudHNdOworCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCisJCWRlc2MtPnB0cls1XS5wdHIgPSBjcHVfdG9fYmUzMigoc3RydWN0IHRhbGl0b3NfcHRyICopCisJCQkJCSAgICAgICBlZGVzYy0+ZG1hX2xpbmtfdGJsICsKKwkJCQkJICAgICAgIGVkZXNjLT5zcmNfbmVudHMpOworCQlpZiAoYXJlcS0+c3JjID09IGFyZXEtPmRzdCkgeworCQkJbWVtY3B5KGxpbmtfdGJsX3B0ciwgJmVkZXNjLT5saW5rX3RibFswXSwKKwkJCSAgICAgICBlZGVzYy0+c3JjX25lbnRzICogc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3B0cikpOworCQl9IGVsc2UgeworCQkJc2dfY291bnQgPSBzZ190b19saW5rX3RibChhcmVxLT5kc3QsIHNnX2NvdW50LCBjcnlwdGxlbiwKKwkJCQkJCSAgbGlua190YmxfcHRyKTsKKwkJfQorCQlsaW5rX3RibF9wdHIgKz0gc2dfY291bnQgLSAxOworCisJCS8qIGhhbmRsZSBjYXNlIHdoZXJlIHNnX2xhc3QgY29udGFpbnMgdGhlIElDViBleGNsdXNpdmVseSAqLworCQlzZyA9IHNnX2xhc3QoYXJlcS0+ZHN0LCBlZGVzYy0+ZHN0X25lbnRzKTsKKwkJaWYgKHNnLT5sZW5ndGggPT0gY3R4LT5hdXRoc2l6ZSkKKwkJCWxpbmtfdGJsX3B0ci0tOworCisJCWxpbmtfdGJsX3B0ci0+al9leHRlbnQgPSAwOworCQlsaW5rX3RibF9wdHIrKzsKKwkJbGlua190YmxfcHRyLT5qX2V4dGVudCA9IERFU0NfUFRSX0xOS1RCTF9SRVRVUk47CisJCWxpbmtfdGJsX3B0ci0+bGVuID0gY3B1X3RvX2JlMTYoYXV0aHNpemUpOworCisJCS8qIGljdiBkYXRhIGZvbGxvd3MgbGluayB0YWJsZXMgKi8KKwkJbGlua190YmxfcHRyLT5wdHIgPSBjcHVfdG9fYmUzMigoc3RydWN0IHRhbGl0b3NfcHRyICopCisJCQkJCQllZGVzYy0+ZG1hX2xpbmtfdGJsICsKKwkJCQkJICAgICAgICBlZGVzYy0+c3JjX25lbnRzICsKKwkJCQkJCWVkZXNjLT5kc3RfbmVudHMgKyAxKTsKKworCQlkZXNjLT5wdHJbNV0ual9leHRlbnQgfD0gREVTQ19QVFJfTE5LVEJMX0pVTVA7CisJCWRtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKGN0eC0+ZGV2LCBlZGVzYy0+ZG1hX2xpbmtfdGJsLAorCQkJCQkgICBlZGVzYy0+ZG1hX2xlbiwgRE1BX0JJRElSRUNUSU9OQUwpOworCX0KKworCS8qIGl2IG91dCAqLworCW1hcF9zaW5nbGVfdGFsaXRvc19wdHIoZGV2LCAmZGVzYy0+cHRyWzZdLCBpdnNpemUsIGN0eC0+aXYsIDAsCisJCQkgICAgICAgRE1BX0ZST01fREVWSUNFKTsKKworCXJldHVybiB0YWxpdG9zX3N1Ym1pdChkZXYsIGRlc2MsIGNhbGxiYWNrLCBhcmVxKTsKK30KKworCisvKgorICogZGVyaXZlIG51bWJlciBvZiBlbGVtZW50cyBpbiBzY2F0dGVybGlzdAorICovCitzdGF0aWMgaW50IHNnX2NvdW50KHN0cnVjdCBzY2F0dGVybGlzdCAqc2dfbGlzdCwgaW50IG5ieXRlcykKK3sKKwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnID0gc2dfbGlzdDsKKwlpbnQgc2dfbmVudHMgPSAwOworCisJd2hpbGUgKG5ieXRlcykgeworCQlzZ19uZW50cysrOworCQluYnl0ZXMgLT0gc2ctPmxlbmd0aDsKKwkJc2cgPSBzZ19uZXh0KHNnKTsKKwl9CisKKwlyZXR1cm4gc2dfbmVudHM7Cit9CisKKy8qCisgKiBhbGxvY2F0ZSBhbmQgbWFwIHRoZSBpcHNlY19lc3AgZXh0ZW5kZWQgZGVzY3JpcHRvcgorICovCitzdGF0aWMgc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqaXBzZWNfZXNwX2VkZXNjX2FsbG9jKHN0cnVjdCBhZWFkX3JlcXVlc3QgKmFyZXEsCisJCQkJCQkgICAgIGludCBpY3Zfc3Rhc2hpbmcpCit7CisJc3RydWN0IGNyeXB0b19hZWFkICphdXRoZW5jID0gY3J5cHRvX2FlYWRfcmVxdGZtKGFyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjOworCWludCBzcmNfbmVudHMsIGRzdF9uZW50cywgYWxsb2NfbGVuLCBkbWFfbGVuOworCisJaWYgKGFyZXEtPmNyeXB0bGVuICsgY3R4LT5hdXRoc2l6ZSA+IFRBTElUT1NfTUFYX0RBVEFfTEVOKSB7CisJCWRldl9lcnIoY3R4LT5kZXYsICJjcnlwdGxlbiBleGNlZWRzIGgvdyBtYXggbGltaXRcbiIpOworCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwl9CisKKwlzcmNfbmVudHMgPSBzZ19jb3VudChhcmVxLT5zcmMsIGFyZXEtPmNyeXB0bGVuICsgY3R4LT5hdXRoc2l6ZSk7CisJc3JjX25lbnRzID0gKHNyY19uZW50cyA9PSAxKSA/IDAgOiBzcmNfbmVudHM7CisKKwlpZiAoYXJlcS0+ZHN0ID09IGFyZXEtPnNyYykgeworCQlkc3RfbmVudHMgPSBzcmNfbmVudHM7CisJfSBlbHNlIHsKKwkJZHN0X25lbnRzID0gc2dfY291bnQoYXJlcS0+ZHN0LCBhcmVxLT5jcnlwdGxlbiArIGN0eC0+YXV0aHNpemUpOworCQlkc3RfbmVudHMgPSAoZHN0X25lbnRzID09IDEpID8gMCA6IHNyY19uZW50czsKKwl9CisKKwkvKgorCSAqIGFsbG9jYXRlIHNwYWNlIGZvciBiYXNlIGVkZXNjIHBsdXMgdGhlIGxpbmsgdGFibGVzLAorCSAqIGFsbG93aW5nIGZvciBhIHNlcGFyYXRlIGVudHJ5IGZvciB0aGUgZ2VuZXJhdGVkIElDViAoKyAxKSwKKwkgKiBhbmQgdGhlIElDViBkYXRhIGl0c2VsZgorCSAqLworCWFsbG9jX2xlbiA9IHNpemVvZihzdHJ1Y3QgaXBzZWNfZXNwX2VkZXNjKTsKKwlpZiAoc3JjX25lbnRzIHx8IGRzdF9uZW50cykgeworCQlkbWFfbGVuID0gKHNyY19uZW50cyArIGRzdF9uZW50cyArIDEpICoKKwkJCQkgc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3B0cikgKyBjdHgtPmF1dGhzaXplOworCQlhbGxvY19sZW4gKz0gZG1hX2xlbjsKKwl9IGVsc2UgeworCQlkbWFfbGVuID0gMDsKKwkJYWxsb2NfbGVuICs9IGljdl9zdGFzaGluZyA/IGN0eC0+YXV0aHNpemUgOiAwOworCX0KKworCWVkZXNjID0ga21hbGxvYyhhbGxvY19sZW4sIEdGUF9ETUEpOworCWlmICghZWRlc2MpIHsKKwkJZGV2X2VycihjdHgtPmRldiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBlZGVzY3JpcHRvclxuIik7CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCX0KKworCWVkZXNjLT5zcmNfbmVudHMgPSBzcmNfbmVudHM7CisJZWRlc2MtPmRzdF9uZW50cyA9IGRzdF9uZW50czsKKwllZGVzYy0+ZG1hX2xlbiA9IGRtYV9sZW47CisJZWRlc2MtPmRtYV9saW5rX3RibCA9IGRtYV9tYXBfc2luZ2xlKGN0eC0+ZGV2LCAmZWRlc2MtPmxpbmtfdGJsWzBdLAorCQkJCQkgICAgIGVkZXNjLT5kbWFfbGVuLCBETUFfQklESVJFQ1RJT05BTCk7CisKKwlyZXR1cm4gZWRlc2M7Cit9CisKK3N0YXRpYyBpbnQgYWVhZF9hdXRoZW5jX2VuY3J5cHQoc3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxKQoreworCXN0cnVjdCBjcnlwdG9fYWVhZCAqYXV0aGVuYyA9IGNyeXB0b19hZWFkX3JlcXRmbShyZXEpOworCXN0cnVjdCB0YWxpdG9zX2N0eCAqY3R4ID0gY3J5cHRvX2FlYWRfY3R4KGF1dGhlbmMpOworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjOworCisJLyogYWxsb2NhdGUgZXh0ZW5kZWQgZGVzY3JpcHRvciAqLworCWVkZXNjID0gaXBzZWNfZXNwX2VkZXNjX2FsbG9jKHJlcSwgMCk7CisJaWYgKElTX0VSUihlZGVzYykpCisJCXJldHVybiBQVFJfRVJSKGVkZXNjKTsKKworCS8qIHNldCBlbmNyeXB0ICovCisJZWRlc2MtPmRlc2MuaGRyID0gY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSB8IERFU0NfSERSX01PREUwX0VOQ1JZUFQ7CisKKwlyZXR1cm4gaXBzZWNfZXNwKGVkZXNjLCByZXEsIE5VTEwsIDAsIGlwc2VjX2VzcF9lbmNyeXB0X2RvbmUpOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19kZWNyeXB0KHN0cnVjdCBhZWFkX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMgPSBjcnlwdG9fYWVhZF9yZXF0Zm0ocmVxKTsKKwlzdHJ1Y3QgdGFsaXRvc19jdHggKmN0eCA9IGNyeXB0b19hZWFkX2N0eChhdXRoZW5jKTsKKwl1bnNpZ25lZCBpbnQgYXV0aHNpemUgPSBjdHgtPmF1dGhzaXplOworCXN0cnVjdCBpcHNlY19lc3BfZWRlc2MgKmVkZXNjOworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisJdm9pZCAqaWN2ZGF0YTsKKworCXJlcS0+Y3J5cHRsZW4gLT0gYXV0aHNpemU7CisKKwkvKiBhbGxvY2F0ZSBleHRlbmRlZCBkZXNjcmlwdG9yICovCisJZWRlc2MgPSBpcHNlY19lc3BfZWRlc2NfYWxsb2MocmVxLCAxKTsKKwlpZiAoSVNfRVJSKGVkZXNjKSkKKwkJcmV0dXJuIFBUUl9FUlIoZWRlc2MpOworCisJLyogc3Rhc2ggaW5jb21pbmcgSUNWIGZvciBsYXRlciBjbXAgd2l0aCBJQ1YgZ2VuZXJhdGVkIGJ5IHRoZSBoL3cgKi8KKwlpZiAoZWRlc2MtPmRtYV9sZW4pCisJCWljdmRhdGEgPSAmZWRlc2MtPmxpbmtfdGJsW2VkZXNjLT5zcmNfbmVudHMgKworCQkJCQkgICBlZGVzYy0+ZHN0X25lbnRzICsgMV07CisJZWxzZQorCQlpY3ZkYXRhID0gJmVkZXNjLT5saW5rX3RibFswXTsKKworCXNnID0gc2dfbGFzdChyZXEtPnNyYywgZWRlc2MtPnNyY19uZW50cyA/IDogMSk7CisKKwltZW1jcHkoaWN2ZGF0YSwgKGNoYXIgKilzZ192aXJ0KHNnKSArIHNnLT5sZW5ndGggLSBjdHgtPmF1dGhzaXplLAorCSAgICAgICBjdHgtPmF1dGhzaXplKTsKKworCS8qIGRlY3J5cHQgKi8KKwllZGVzYy0+ZGVzYy5oZHIgPSBjdHgtPmRlc2NfaGRyX3RlbXBsYXRlIHwgREVTQ19IRFJfRElSX0lOQk9VTkQ7CisKKwlyZXR1cm4gaXBzZWNfZXNwKGVkZXNjLCByZXEsIE5VTEwsIDAsIGlwc2VjX2VzcF9kZWNyeXB0X2RvbmUpOworfQorCitzdGF0aWMgaW50IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0KAorCXN0cnVjdCBhZWFkX2dpdmNyeXB0X3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICphcmVxID0gJnJlcS0+YXJlcTsKKwlzdHJ1Y3QgY3J5cHRvX2FlYWQgKmF1dGhlbmMgPSBjcnlwdG9fYWVhZF9yZXF0Zm0oYXJlcSk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fYWVhZF9jdHgoYXV0aGVuYyk7CisJc3RydWN0IGlwc2VjX2VzcF9lZGVzYyAqZWRlc2M7CisKKwkvKiBhbGxvY2F0ZSBleHRlbmRlZCBkZXNjcmlwdG9yICovCisJZWRlc2MgPSBpcHNlY19lc3BfZWRlc2NfYWxsb2MoYXJlcSwgMCk7CisJaWYgKElTX0VSUihlZGVzYykpCisJCXJldHVybiBQVFJfRVJSKGVkZXNjKTsKKworCS8qIHNldCBlbmNyeXB0ICovCisJZWRlc2MtPmRlc2MuaGRyID0gY3R4LT5kZXNjX2hkcl90ZW1wbGF0ZSB8IERFU0NfSERSX01PREUwX0VOQ1JZUFQ7CisKKwltZW1jcHkocmVxLT5naXYsIGN0eC0+aXYsIGNyeXB0b19hZWFkX2l2c2l6ZShhdXRoZW5jKSk7CisKKwlyZXR1cm4gaXBzZWNfZXNwKGVkZXNjLCBhcmVxLCByZXEtPmdpdiwgcmVxLT5zZXEsCisJCQkgaXBzZWNfZXNwX2VuY3J5cHRfZG9uZSk7Cit9CisKK3N0cnVjdCB0YWxpdG9zX2FsZ190ZW1wbGF0ZSB7CisJY2hhciBuYW1lW0NSWVBUT19NQVhfQUxHX05BTUVdOworCWNoYXIgZHJpdmVyX25hbWVbQ1JZUFRPX01BWF9BTEdfTkFNRV07CisJdW5zaWduZWQgaW50IGJsb2Nrc2l6ZTsKKwlzdHJ1Y3QgYWVhZF9hbGcgYWVhZDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJX19iZTMyIGRlc2NfaGRyX3RlbXBsYXRlOworfTsKKworc3RhdGljIHN0cnVjdCB0YWxpdG9zX2FsZ190ZW1wbGF0ZSBkcml2ZXJfYWxnc1tdID0geworCS8qIHNpbmdsZS1wYXNzIGlwc2VjX2VzcCBkZXNjcmlwdG9yICovCisJeworCQkubmFtZSA9ICJhdXRoZW5jKGhtYWMoc2hhMSksY2JjKGFlcykpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1zaGExLWNiYy1hZXMtdGFsaXRvcyIsCisJCS5ibG9ja3NpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJLmFlYWQgPSB7CisJCQkuc2V0a2V5ID0gYWVhZF9hdXRoZW5jX3NldGtleSwKKwkJCS5zZXRhdXRoc2l6ZSA9IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZSwKKwkJCS5lbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2VuY3J5cHQsCisJCQkuZGVjcnlwdCA9IGFlYWRfYXV0aGVuY19kZWNyeXB0LAorCQkJLmdpdmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCwKKwkJCS5nZW5pdiA9ICI8YnVpbHQtaW4+IiwKKwkJCS5pdnNpemUgPSBBRVNfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IFNIQTFfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9BRVNVIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfQUVTVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1NIQTFfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKHNoYTEpLGNiYyhkZXMzX2VkZSkpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1zaGExLWNiYy0zZGVzLXRhbGl0b3MiLAorCQkuYmxvY2tzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJLmFlYWQgPSB7CisJCQkuc2V0a2V5ID0gYWVhZF9hdXRoZW5jX3NldGtleSwKKwkJCS5zZXRhdXRoc2l6ZSA9IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZSwKKwkJCS5lbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2VuY3J5cHQsCisJCQkuZGVjcnlwdCA9IGFlYWRfYXV0aGVuY19kZWNyeXB0LAorCQkJLmdpdmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCwKKwkJCS5nZW5pdiA9ICI8YnVpbHQtaW4+IiwKKwkJCS5pdnNpemUgPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplID0gU0hBMV9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0RFVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0RFVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfM0RFUyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfU0hBMV9ITUFDLAorCX0sCisJeworCQkubmFtZSA9ICJhdXRoZW5jKGhtYWMoc2hhMjU2KSxjYmMoYWVzKSkiLAorCQkuZHJpdmVyX25hbWUgPSAiYXV0aGVuYy1obWFjLXNoYTI1Ni1jYmMtYWVzLXRhbGl0b3MiLAorCQkuYmxvY2tzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gQUVTX0JMT0NLX1NJWkUsCisJCQkubWF4YXV0aHNpemUgPSBTSEEyNTZfRElHRVNUX1NJWkUsCisJCQl9LAorCQkuZGVzY19oZHJfdGVtcGxhdGUgPSBERVNDX0hEUl9UWVBFX0lQU0VDX0VTUCB8CisJCQkgICAgICAgICAgICAgREVTQ19IRFJfU0VMMF9BRVNVIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfQUVTVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9TRUwxX01ERVVBIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9JTklUIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9QQUQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1NIQTI1Nl9ITUFDLAorCX0sCisJeworCQkubmFtZSA9ICJhdXRoZW5jKGhtYWMoc2hhMjU2KSxjYmMoZGVzM19lZGUpKSIsCisJCS5kcml2ZXJfbmFtZSA9ICJhdXRoZW5jLWhtYWMtc2hhMjU2LWNiYy0zZGVzLXRhbGl0b3MiLAorCQkuYmxvY2tzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJLmFlYWQgPSB7CisJCQkuc2V0a2V5ID0gYWVhZF9hdXRoZW5jX3NldGtleSwKKwkJCS5zZXRhdXRoc2l6ZSA9IGFlYWRfYXV0aGVuY19zZXRhdXRoc2l6ZSwKKwkJCS5lbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2VuY3J5cHQsCisJCQkuZGVjcnlwdCA9IGFlYWRfYXV0aGVuY19kZWNyeXB0LAorCQkJLmdpdmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZ2l2ZW5jcnlwdCwKKwkJCS5nZW5pdiA9ICI8YnVpbHQtaW4+IiwKKwkJCS5pdnNpemUgPSBERVMzX0VERV9CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplID0gU0hBMjU2X0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfREVVIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTBfREVVX0NCQyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0RFVV8zREVTIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTZfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGFlcykpIiwKKwkJLmRyaXZlcl9uYW1lID0gImF1dGhlbmMtaG1hYy1tZDUtY2JjLWFlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkuYWVhZCA9IHsKKwkJCS5zZXRrZXkgPSBhZWFkX2F1dGhlbmNfc2V0a2V5LAorCQkJLnNldGF1dGhzaXplID0gYWVhZF9hdXRoZW5jX3NldGF1dGhzaXplLAorCQkJLmVuY3J5cHQgPSBhZWFkX2F1dGhlbmNfZW5jcnlwdCwKKwkJCS5kZWNyeXB0ID0gYWVhZF9hdXRoZW5jX2RlY3J5cHQsCisJCQkuZ2l2ZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19naXZlbmNyeXB0LAorCQkJLmdlbml2ID0gIjxidWlsdC1pbj4iLAorCQkJLml2c2l6ZSA9IEFFU19CTE9DS19TSVpFLAorCQkJLm1heGF1dGhzaXplID0gTUQ1X0RJR0VTVF9TSVpFLAorCQkJfSwKKwkJLmRlc2NfaGRyX3RlbXBsYXRlID0gREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AgfAorCQkJICAgICAgICAgICAgIERFU0NfSERSX1NFTDBfQUVTVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0FFU1VfQ0JDIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfU0VMMV9NREVVQSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfSU5JVCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfUEFEIHwKKwkJICAgICAgICAgICAgICAgICAgICAgREVTQ19IRFJfTU9ERTFfTURFVV9NRDVfSE1BQywKKwl9LAorCXsKKwkJLm5hbWUgPSAiYXV0aGVuYyhobWFjKG1kNSksY2JjKGRlczNfZWRlKSkiLAorCQkuZHJpdmVyX25hbWUgPSAiYXV0aGVuYy1obWFjLW1kNS1jYmMtM2Rlcy10YWxpdG9zIiwKKwkJLmJsb2Nrc2l6ZSA9IERFUzNfRURFX0JMT0NLX1NJWkUsCisJCS5hZWFkID0geworCQkJLnNldGtleSA9IGFlYWRfYXV0aGVuY19zZXRrZXksCisJCQkuc2V0YXV0aHNpemUgPSBhZWFkX2F1dGhlbmNfc2V0YXV0aHNpemUsCisJCQkuZW5jcnlwdCA9IGFlYWRfYXV0aGVuY19lbmNyeXB0LAorCQkJLmRlY3J5cHQgPSBhZWFkX2F1dGhlbmNfZGVjcnlwdCwKKwkJCS5naXZlbmNyeXB0ID0gYWVhZF9hdXRoZW5jX2dpdmVuY3J5cHQsCisJCQkuZ2VuaXYgPSAiPGJ1aWx0LWluPiIsCisJCQkuaXZzaXplID0gREVTM19FREVfQkxPQ0tfU0laRSwKKwkJCS5tYXhhdXRoc2l6ZSA9IE1ENV9ESUdFU1RfU0laRSwKKwkJCX0sCisJCS5kZXNjX2hkcl90ZW1wbGF0ZSA9IERFU0NfSERSX1RZUEVfSVBTRUNfRVNQIHwKKwkJCSAgICAgICAgICAgICBERVNDX0hEUl9TRUwwX0RFVSB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUwX0RFVV9DQkMgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMF9ERVVfM0RFUyB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX1NFTDFfTURFVUEgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX0lOSVQgfAorCQkgICAgICAgICAgICAgICAgICAgICBERVNDX0hEUl9NT0RFMV9NREVVX1BBRCB8CisJCSAgICAgICAgICAgICAgICAgICAgIERFU0NfSERSX01PREUxX01ERVVfTUQ1X0hNQUMsCisJfQorfTsKKworc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyB7CisJc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJX19iZTMyIGRlc2NfaGRyX3RlbXBsYXRlOworCXN0cnVjdCBjcnlwdG9fYWxnIGNyeXB0b19hbGc7Cit9OworCitzdGF0aWMgaW50IHRhbGl0b3NfY3JhX2luaXQoc3RydWN0IGNyeXB0b190Zm0gKnRmbSkKK3sKKwlzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnID0gdGZtLT5fX2NydF9hbGc7CisJc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZyAqdGFsaXRvc19hbGcgPQorCQkgY29udGFpbmVyX29mKGFsZywgc3RydWN0IHRhbGl0b3NfY3J5cHRvX2FsZywgY3J5cHRvX2FsZyk7CisJc3RydWN0IHRhbGl0b3NfY3R4ICpjdHggPSBjcnlwdG9fdGZtX2N0eCh0Zm0pOworCisJLyogdXBkYXRlIGNvbnRleHQgd2l0aCBwdHIgdG8gZGV2ICovCisJY3R4LT5kZXYgPSB0YWxpdG9zX2FsZy0+ZGV2OworCS8qIGNvcHkgZGVzY3JpcHRvciBoZWFkZXIgdGVtcGxhdGUgdmFsdWUgKi8KKwljdHgtPmRlc2NfaGRyX3RlbXBsYXRlID0gdGFsaXRvc19hbGctPmRlc2NfaGRyX3RlbXBsYXRlOworCisJLyogcmFuZG9tIGZpcnN0IElWICovCisJZ2V0X3JhbmRvbV9ieXRlcyhjdHgtPml2LCBUQUxJVE9TX01BWF9JVl9MRU5HVEgpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBnaXZlbiB0aGUgYWxnJ3MgZGVzY3JpcHRvciBoZWFkZXIgdGVtcGxhdGUsIGRldGVybWluZSB3aGV0aGVyIGRlc2NyaXB0b3IKKyAqIHR5cGUgYW5kIHByaW1hcnkvc2Vjb25kYXJ5IGV4ZWN1dGlvbiB1bml0cyByZXF1aXJlZCBtYXRjaCB0aGUgaHcKKyAqIGNhcGFiaWxpdGllcyBkZXNjcmlwdGlvbiBwcm92aWRlZCBpbiB0aGUgZGV2aWNlIHRyZWUgbm9kZS4KKyAqLworc3RhdGljIGludCBod19zdXBwb3J0cyhzdHJ1Y3QgZGV2aWNlICpkZXYsIF9fYmUzMiBkZXNjX2hkcl90ZW1wbGF0ZSkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50IHJldDsKKworCXJldCA9ICgxIDw8IERFU0NfVFlQRShkZXNjX2hkcl90ZW1wbGF0ZSkgJiBwcml2LT5kZXNjX3R5cGVzKSAmJgorCSAgICAgICgxIDw8IFBSSU1BUllfRVUoZGVzY19oZHJfdGVtcGxhdGUpICYgcHJpdi0+ZXhlY191bml0cyk7CisKKwlpZiAoU0VDT05EQVJZX0VVKGRlc2NfaGRyX3RlbXBsYXRlKSkKKwkJcmV0ID0gcmV0ICYmICgxIDw8IFNFQ09OREFSWV9FVShkZXNjX2hkcl90ZW1wbGF0ZSkKKwkJICAgICAgICAgICAgICAmIHByaXYtPmV4ZWNfdW5pdHMpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBfX2RldmV4aXQgdGFsaXRvc19yZW1vdmUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYpCit7CisJc3RydWN0IGRldmljZSAqZGV2ID0gJm9mZGV2LT5kZXY7CisJc3RydWN0IHRhbGl0b3NfcHJpdmF0ZSAqcHJpdiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgKnRfYWxnLCAqbjsKKwlpbnQgaTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh0X2FsZywgbiwgJnByaXYtPmFsZ19saXN0LCBlbnRyeSkgeworCQljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJnRfYWxnLT5jcnlwdG9fYWxnKTsKKwkJbGlzdF9kZWwoJnRfYWxnLT5lbnRyeSk7CisJCWtmcmVlKHRfYWxnKTsKKwl9CisKKwlpZiAoaHdfc3VwcG9ydHMoZGV2LCBERVNDX0hEUl9TRUwwX1JORykpCisJCXRhbGl0b3NfdW5yZWdpc3Rlcl9ybmcoZGV2KTsKKworCWtmcmVlKHByaXYtPnRhaWwpOworCWtmcmVlKHByaXYtPmhlYWQpOworCisJaWYgKHByaXYtPmZpZm8pCisJCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fY2hhbm5lbHM7IGkrKykKKwkJCWtmcmVlKHByaXYtPmZpZm9baV0pOworCisJa2ZyZWUocHJpdi0+Zmlmbyk7CisJa2ZyZWUocHJpdi0+aGVhZF9sb2NrKTsKKwlrZnJlZShwcml2LT50YWlsX2xvY2spOworCisJaWYgKHByaXYtPmlycSAhPSBOT19JUlEpIHsKKwkJZnJlZV9pcnEocHJpdi0+aXJxLCBkZXYpOworCQlpcnFfZGlzcG9zZV9tYXBwaW5nKHByaXYtPmlycSk7CisJfQorCisJdGFza2xldF9raWxsKCZwcml2LT5kb25lX3Rhc2spOworCXRhc2tsZXRfa2lsbCgmcHJpdi0+ZXJyb3JfdGFzayk7CisKKwlpb3VubWFwKHByaXYtPnJlZyk7CisKKwlkZXZfc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKKworCWtmcmVlKHByaXYpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0YWxpdG9zX2FsZ19hbGxvYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCQkgICAgc3RydWN0IHRhbGl0b3NfYWxnX3RlbXBsYXRlCisJCQkJCQkgICAgICAgICAgICp0ZW1wbGF0ZSkKK3sKKwlzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnICp0X2FsZzsKKwlzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnOworCisJdF9hbGcgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGFsaXRvc19jcnlwdG9fYWxnKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCF0X2FsZykKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlhbGcgPSAmdF9hbGctPmNyeXB0b19hbGc7CisKKwlzbnByaW50ZihhbGctPmNyYV9uYW1lLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLCB0ZW1wbGF0ZS0+bmFtZSk7CisJc25wcmludGYoYWxnLT5jcmFfZHJpdmVyX25hbWUsIENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIsCisJCSB0ZW1wbGF0ZS0+ZHJpdmVyX25hbWUpOworCWFsZy0+Y3JhX21vZHVsZSA9IFRISVNfTU9EVUxFOworCWFsZy0+Y3JhX2luaXQgPSB0YWxpdG9zX2NyYV9pbml0OworCWFsZy0+Y3JhX3ByaW9yaXR5ID0gVEFMSVRPU19DUkFfUFJJT1JJVFk7CisJYWxnLT5jcmFfZmxhZ3MgPSBDUllQVE9fQUxHX1RZUEVfQUVBRCB8IENSWVBUT19BTEdfQVNZTkM7CisJYWxnLT5jcmFfYmxvY2tzaXplID0gdGVtcGxhdGUtPmJsb2Nrc2l6ZTsKKwlhbGctPmNyYV9hbGlnbm1hc2sgPSAwOworCWFsZy0+Y3JhX3R5cGUgPSAmY3J5cHRvX2FlYWRfdHlwZTsKKwlhbGctPmNyYV9jdHhzaXplID0gc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX2N0eCk7CisJYWxnLT5jcmFfdS5hZWFkID0gdGVtcGxhdGUtPmFlYWQ7CisKKwl0X2FsZy0+ZGVzY19oZHJfdGVtcGxhdGUgPSB0ZW1wbGF0ZS0+ZGVzY19oZHJfdGVtcGxhdGU7CisJdF9hbGctPmRldiA9IGRldjsKKworCXJldHVybiB0X2FsZzsKK30KKworc3RhdGljIGludCB0YWxpdG9zX3Byb2JlKHN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2LAorCQkJIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoKQoreworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZvZmRldi0+ZGV2OworCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAgPSBvZmRldi0+bm9kZTsKKwlzdHJ1Y3QgdGFsaXRvc19wcml2YXRlICpwcml2OworCWNvbnN0IHVuc2lnbmVkIGludCAqcHJvcDsKKwlpbnQgaSwgZXJyOworCisJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB0YWxpdG9zX3ByaXZhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYpCisJCXJldHVybiAtRU5PTUVNOworCisJZGV2X3NldF9kcnZkYXRhKGRldiwgcHJpdik7CisKKwlwcml2LT5vZmRldiA9IG9mZGV2OworCisJdGFza2xldF9pbml0KCZwcml2LT5kb25lX3Rhc2ssIHRhbGl0b3NfZG9uZSwgKHVuc2lnbmVkIGxvbmcpZGV2KTsKKwl0YXNrbGV0X2luaXQoJnByaXYtPmVycm9yX3Rhc2ssIHRhbGl0b3NfZXJyb3IsICh1bnNpZ25lZCBsb25nKWRldik7CisKKwlwcml2LT5pcnEgPSBpcnFfb2ZfcGFyc2VfYW5kX21hcChucCwgMCk7CisKKwlpZiAocHJpdi0+aXJxID09IE5PX0lSUSkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBtYXAgaXJxXG4iKTsKKwkJZXJyID0gLUVJTlZBTDsKKwkJZ290byBlcnJfb3V0OworCX0KKworCS8qIGdldCB0aGUgaXJxIGxpbmUgKi8KKwllcnIgPSByZXF1ZXN0X2lycShwcml2LT5pcnEsIHRhbGl0b3NfaW50ZXJydXB0LCAwLAorCQkJICBkZXZfZHJpdmVyX3N0cmluZyhkZXYpLCBkZXYpOworCWlmIChlcnIpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gcmVxdWVzdCBpcnEgJWRcbiIsIHByaXYtPmlycSk7CisJCWlycV9kaXNwb3NlX21hcHBpbmcocHJpdi0+aXJxKTsKKwkJcHJpdi0+aXJxID0gTk9fSVJROworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJcHJpdi0+cmVnID0gb2ZfaW9tYXAobnAsIDApOworCWlmICghcHJpdi0+cmVnKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIG9mX2lvbWFwXG4iKTsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCS8qIGdldCBTRUMgdmVyc2lvbiBjYXBhYmlsaXRpZXMgZnJvbSBkZXZpY2UgdHJlZSAqLworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJmc2wsbnVtLWNoYW5uZWxzIiwgTlVMTCk7CisJaWYgKHByb3ApCisJCXByaXYtPm51bV9jaGFubmVscyA9ICpwcm9wOworCisJcHJvcCA9IG9mX2dldF9wcm9wZXJ0eShucCwgImZzbCxjaGFubmVsLWZpZm8tbGVuIiwgTlVMTCk7CisJaWYgKHByb3ApCisJCXByaXYtPmNoZmlmb19sZW4gPSAqcHJvcDsKKworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJmc2wsZXhlYy11bml0cy1tYXNrIiwgTlVMTCk7CisJaWYgKHByb3ApCisJCXByaXYtPmV4ZWNfdW5pdHMgPSAqcHJvcDsKKworCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJmc2wsZGVzY3JpcHRvci10eXBlcy1tYXNrIiwgTlVMTCk7CisJaWYgKHByb3ApCisJCXByaXYtPmRlc2NfdHlwZXMgPSAqcHJvcDsKKworCWlmICghaXNfcG93ZXJfb2ZfMihwcml2LT5udW1fY2hhbm5lbHMpIHx8ICFwcml2LT5jaGZpZm9fbGVuIHx8CisJICAgICFwcml2LT5leGVjX3VuaXRzIHx8ICFwcml2LT5kZXNjX3R5cGVzKSB7CisJCWRldl9lcnIoZGV2LCAiaW52YWxpZCBwcm9wZXJ0eSBkYXRhIGluIGRldmljZSB0cmVlIG5vZGVcbiIpOworCQllcnIgPSAtRUlOVkFMOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJb2Zfbm9kZV9wdXQobnApOworCW5wID0gTlVMTDsKKworCXByaXYtPmhlYWRfbG9jayA9IGttYWxsb2Moc2l6ZW9mKHNwaW5sb2NrX3QpICogcHJpdi0+bnVtX2NoYW5uZWxzLAorCQkJCSAgR0ZQX0tFUk5FTCk7CisJcHJpdi0+dGFpbF9sb2NrID0ga21hbGxvYyhzaXplb2Yoc3BpbmxvY2tfdCkgKiBwcml2LT5udW1fY2hhbm5lbHMsCisJCQkJICBHRlBfS0VSTkVMKTsKKwlpZiAoIXByaXYtPmhlYWRfbG9jayB8fCAhcHJpdi0+dGFpbF9sb2NrKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIGZpZm8gbG9ja3NcbiIpOworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJZm9yIChpID0gMDsgaSA8IHByaXYtPm51bV9jaGFubmVsczsgaSsrKSB7CisJCXNwaW5fbG9ja19pbml0KCZwcml2LT5oZWFkX2xvY2tbaV0pOworCQlzcGluX2xvY2tfaW5pdCgmcHJpdi0+dGFpbF9sb2NrW2ldKTsKKwl9CisKKwlwcml2LT5maWZvID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRhbGl0b3NfcmVxdWVzdCAqKSAqCisJCQkgICAgIHByaXYtPm51bV9jaGFubmVscywgR0ZQX0tFUk5FTCk7CisJaWYgKCFwcml2LT5maWZvKSB7CisJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlcXVlc3QgZmlmb1xuIik7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyX291dDsKKwl9CisKKwlwcml2LT5maWZvX2xlbiA9IHJvdW5kdXBfcG93X29mX3R3byhwcml2LT5jaGZpZm9fbGVuKTsKKworCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fY2hhbm5lbHM7IGkrKykgeworCQlwcml2LT5maWZvW2ldID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHRhbGl0b3NfcmVxdWVzdCkgKgorCQkJCQlwcml2LT5maWZvX2xlbiwgR0ZQX0tFUk5FTCk7CisJCWlmICghcHJpdi0+Zmlmb1tpXSkgeworCQkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gYWxsb2NhdGUgcmVxdWVzdCBmaWZvICVkXG4iLCBpKTsKKwkJCWVyciA9IC1FTk9NRU07CisJCQlnb3RvIGVycl9vdXQ7CisJCX0KKwl9CisKKwlwcml2LT5oZWFkID0ga3phbGxvYyhzaXplb2YoaW50KSAqIHByaXYtPm51bV9jaGFubmVscywgR0ZQX0tFUk5FTCk7CisJcHJpdi0+dGFpbCA9IGt6YWxsb2Moc2l6ZW9mKGludCkgKiBwcml2LT5udW1fY2hhbm5lbHMsIEdGUF9LRVJORUwpOworCWlmICghcHJpdi0+aGVhZCB8fCAhcHJpdi0+dGFpbCkgeworCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZXF1ZXN0IGluZGV4IHNwYWNlXG4iKTsKKwkJZXJyID0gLUVOT01FTTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCS8qIHJlc2V0IGFuZCBpbml0aWFsaXplIHRoZSBoL3cgKi8KKwllcnIgPSBpbml0X2RldmljZShkZXYpOworCWlmIChlcnIpIHsKKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBkZXZpY2VcbiIpOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJLyogcmVnaXN0ZXIgdGhlIFJORywgaWYgYXZhaWxhYmxlICovCisJaWYgKGh3X3N1cHBvcnRzKGRldiwgREVTQ19IRFJfU0VMMF9STkcpKSB7CisJCWVyciA9IHRhbGl0b3NfcmVnaXN0ZXJfcm5nKGRldik7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIHJlZ2lzdGVyIGh3cm5nOiAlZFxuIiwgZXJyKTsKKwkJCWdvdG8gZXJyX291dDsKKwkJfSBlbHNlCisJCQlkZXZfaW5mbyhkZXYsICJod3JuZ1xuIik7CisJfQorCisJLyogcmVnaXN0ZXIgY3J5cHRvIGFsZ29yaXRobXMgdGhlIGRldmljZSBzdXBwb3J0cyAqLworCUlOSVRfTElTVF9IRUFEKCZwcml2LT5hbGdfbGlzdCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkcml2ZXJfYWxncyk7IGkrKykgeworCQlpZiAoaHdfc3VwcG9ydHMoZGV2LCBkcml2ZXJfYWxnc1tpXS5kZXNjX2hkcl90ZW1wbGF0ZSkpIHsKKwkJCXN0cnVjdCB0YWxpdG9zX2NyeXB0b19hbGcgKnRfYWxnOworCisJCQl0X2FsZyA9IHRhbGl0b3NfYWxnX2FsbG9jKGRldiwgJmRyaXZlcl9hbGdzW2ldKTsKKwkJCWlmIChJU19FUlIodF9hbGcpKSB7CisJCQkJZXJyID0gUFRSX0VSUih0X2FsZyk7CisJCQkJZ290byBlcnJfb3V0OworCQkJfQorCisJCQllcnIgPSBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZ0X2FsZy0+Y3J5cHRvX2FsZyk7CisJCQlpZiAoZXJyKSB7CisJCQkJZGV2X2VycihkZXYsICIlcyBhbGcgcmVnaXN0cmF0aW9uIGZhaWxlZFxuIiwKKwkJCQkJdF9hbGctPmNyeXB0b19hbGcuY3JhX2RyaXZlcl9uYW1lKTsKKwkJCQlrZnJlZSh0X2FsZyk7CisJCQl9IGVsc2UgeworCQkJCWxpc3RfYWRkX3RhaWwoJnRfYWxnLT5lbnRyeSwgJnByaXYtPmFsZ19saXN0KTsKKwkJCQlkZXZfaW5mbyhkZXYsICIlc1xuIiwKKwkJCQkJIHRfYWxnLT5jcnlwdG9fYWxnLmNyYV9kcml2ZXJfbmFtZSk7CisJCQl9CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKKworZXJyX291dDoKKwl0YWxpdG9zX3JlbW92ZShvZmRldik7CisJaWYgKG5wKQorCQlvZl9ub2RlX3B1dChucCk7CisKKwlyZXR1cm4gZXJyOworfQorCitzdGF0aWMgc3RydWN0IG9mX2RldmljZV9pZCB0YWxpdG9zX21hdGNoW10gPSB7CisJeworCQkuY29tcGF0aWJsZSA9ICJmc2wsc2VjMi4wIiwKKwl9LAorCXt9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRhbGl0b3NfbWF0Y2gpOworCitzdGF0aWMgc3RydWN0IG9mX3BsYXRmb3JtX2RyaXZlciB0YWxpdG9zX2RyaXZlciA9IHsKKwkubmFtZSA9ICJ0YWxpdG9zIiwKKwkubWF0Y2hfdGFibGUgPSB0YWxpdG9zX21hdGNoLAorCS5wcm9iZSA9IHRhbGl0b3NfcHJvYmUsCisJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKHRhbGl0b3NfcmVtb3ZlKSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHRhbGl0b3NfaW5pdCh2b2lkKQoreworCXJldHVybiBvZl9yZWdpc3Rlcl9wbGF0Zm9ybV9kcml2ZXIoJnRhbGl0b3NfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KHRhbGl0b3NfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCB0YWxpdG9zX2V4aXQodm9pZCkKK3sKKwlvZl91bnJlZ2lzdGVyX3BsYXRmb3JtX2RyaXZlcigmdGFsaXRvc19kcml2ZXIpOworfQorbW9kdWxlX2V4aXQodGFsaXRvc19leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FVVEhPUigiS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiRnJlZXNjYWxlIGludGVncmF0ZWQgc2VjdXJpdHkgZW5naW5lIChTRUMpIGRyaXZlciIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5oIGIvZHJpdmVycy9jcnlwdG8vdGFsaXRvcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0OGE0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2NyeXB0by90YWxpdG9zLmgKQEAgLTAsMCArMSwxOTkgQEAKKy8qCisgKiBGcmVlc2NhbGUgU0VDICh0YWxpdG9zKSBkZXZpY2UgcmVnaXN0ZXIgYW5kIGRlc2NyaXB0b3IgaGVhZGVyIGRlZmluZXMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisvKgorICogVEFMSVRPU194eHhfTE8gYWRkcmVzc2VzIHBvaW50IHRvIHRoZSBsb3cgZGF0YSBiaXRzICgzMi02Mykgb2YgdGhlIHJlZ2lzdGVyCisgKi8KKworLyogZ2xvYmFsIHJlZ2lzdGVyIG9mZnNldCBhZGRyZXNzZXMgKi8KKyNkZWZpbmUgVEFMSVRPU19NQ1IJCQkweDEwMzAgIC8qIG1hc3RlciBjb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIFRBTElUT1NfTUNSX0xPCQkJMHgxMDM4CisjZGVmaW5lICAgVEFMSVRPU19NQ1JfU1dSCQkweDEgICAgIC8qIHMvdyByZXNldCAqLworI2RlZmluZSBUQUxJVE9TX0lNUgkJCTB4MTAwOCAgLyogaW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0lNUl9JTklUCQkweDEwZmZmIC8qIGVuYWJsZSBjaGFubmVsIElSUXMgKi8KKyNkZWZpbmUgVEFMSVRPU19JTVJfTE8JCQkweDEwMEMKKyNkZWZpbmUgICBUQUxJVE9TX0lNUl9MT19JTklUCQkweDIwMDAwIC8qIGFsbG93IFJOR1UgZXJyb3IgSVJRcyAqLworI2RlZmluZSBUQUxJVE9TX0lTUgkJCTB4MTAxMCAgLyogaW50ZXJydXB0IHN0YXR1cyByZWdpc3RlciAqLworI2RlZmluZSAgIFRBTElUT1NfSVNSX0NIRVJSCQkweGFhICAgIC8qIGNoYW5uZWwgZXJyb3JzIG1hc2sgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0lTUl9DSERPTkUJCTB4NTUgICAgLyogY2hhbm5lbCBkb25lIG1hc2sgKi8KKyNkZWZpbmUgVEFMSVRPU19JU1JfTE8JCQkweDEwMTQKKyNkZWZpbmUgVEFMSVRPU19JQ1IJCQkweDEwMTggIC8qIGludGVycnVwdCBjbGVhciByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX0lDUl9MTwkJCTB4MTAxQworCisvKiBjaGFubmVsIHJlZ2lzdGVyIGFkZHJlc3Mgc3RyaWRlICovCisjZGVmaW5lIFRBTElUT1NfQ0hfU1RSSURFCQkweDEwMAorCisvKiBjaGFubmVsIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgICovCisjZGVmaW5lIFRBTElUT1NfQ0NDUihjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTA4KQorI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9DT05UCQkweDIgICAgLyogY2hhbm5lbCBjb250aW51ZSAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9SRVNFVAkJMHgxICAgIC8qIGNoYW5uZWwgcmVzZXQgKi8KKyNkZWZpbmUgVEFMSVRPU19DQ0NSX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExMGMpCisjZGVmaW5lICAgVEFMSVRPU19DQ0NSX0xPX0NEV0UJCTB4MTAgICAvKiBjaGFuLiBkb25lIHdyaXRlYmFjayBlbmFiLiAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NDUl9MT19OVAkJMHg0ICAgIC8qIG5vdGlmaWNhdGlvbiB0eXBlICovCisjZGVmaW5lICAgVEFMSVRPU19DQ0NSX0xPX0NESUUJCTB4MiAgICAvKiBjaGFubmVsIGRvbmUgSVJRIGVuYWJsZSAqLworCisvKiBDQ1BTUjogY2hhbm5lbCBwb2ludGVyIHN0YXR1cyByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX0NDUFNSKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExMTApCisjZGVmaW5lIFRBTElUT1NfQ0NQU1JfTE8oY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTExNCkKKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0RPRgkJMHg4MDAwIC8qIGRvdWJsZSBGRiB3cml0ZSBvZmxvdyBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fU09GCQkweDQwMDAgLyogc2luZ2xlIEZGIHdyaXRlIG9mbG93IGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19NRFRFCQkweDIwMDAgLyogbWFzdGVyIGRhdGEgdHJhbnNmZXIgZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX1NHRExaCTB4MTAwMCAvKiBzL2cgZGF0YSBsZW4gemVybyBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fRlBaCQkweDA4MDAgLyogZmV0Y2ggcHRyIHplcm8gZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0lESAkJMHgwNDAwIC8qIGlsbGVnYWwgZGVzYyBoZHIgZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0lFVQkJMHgwMjAwIC8qIGludmFsaWQgRVUgZXJyb3IgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0VVCQkweDAxMDAgLyogRVUgZXJyb3IgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgICBUQUxJVE9TX0NDUFNSX0xPX0dCCQkweDAwODAgLyogZ2F0aGVyIGJvdW5kYXJ5IGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19HUkwJCTB4MDA0MCAvKiBnYXRoZXIgcmV0dXJuL2xlbmd0aCBlcnJvciAqLworI2RlZmluZSAgIFRBTElUT1NfQ0NQU1JfTE9fU0IJCTB4MDAyMCAvKiBzY2F0dGVyIGJvdW5kYXJ5IGVycm9yICovCisjZGVmaW5lICAgVEFMSVRPU19DQ1BTUl9MT19TUkwJCTB4MDAxMCAvKiBzY2F0dGVyIHJldHVybi9sZW5ndGggZXJyb3IgKi8KKworLyogY2hhbm5lbCBmZXRjaCBmaWZvIHJlZ2lzdGVyICovCisjZGVmaW5lIFRBTElUT1NfRkYoY2gpCQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExNDgpCisjZGVmaW5lIFRBTElUT1NfRkZfTE8oY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTE0YykKKworLyogY3VycmVudCBkZXNjcmlwdG9yIHBvaW50ZXIgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVEFMSVRPU19DRFBSKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExNDApCisjZGVmaW5lIFRBTElUT1NfQ0RQUl9MTyhjaCkJCShjaCAqIFRBTElUT1NfQ0hfU1RSSURFICsgMHgxMTQ0KQorCisvKiBkZXNjcmlwdG9yIGJ1ZmZlciByZWdpc3RlciAqLworI2RlZmluZSBUQUxJVE9TX0RFU0NCVUYoY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTE4MCkKKyNkZWZpbmUgVEFMSVRPU19ERVNDQlVGX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExODQpCisKKy8qIGdhdGhlciBsaW5rIHRhYmxlICovCisjZGVmaW5lIFRBTElUT1NfR0FUSEVSKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExYzApCisjZGVmaW5lIFRBTElUT1NfR0FUSEVSX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExYzQpCisKKy8qIHNjYXR0ZXIgbGluayB0YWJsZSAqLworI2RlZmluZSBUQUxJVE9TX1NDQVRURVIoY2gpCQkoY2ggKiBUQUxJVE9TX0NIX1NUUklERSArIDB4MTFlMCkKKyNkZWZpbmUgVEFMSVRPU19TQ0FUVEVSX0xPKGNoKQkJKGNoICogVEFMSVRPU19DSF9TVFJJREUgKyAweDExZTQpCisKKy8qIGV4ZWN1dGlvbiB1bml0IGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXJzICovCisjZGVmaW5lIFRBTElUT1NfREVVSVNSCQkJMHgyMDMwIC8qIERFUyB1bml0ICovCisjZGVmaW5lIFRBTElUT1NfREVVSVNSX0xPCQkweDIwMzQKKyNkZWZpbmUgVEFMSVRPU19BRVNVSVNSCQkJMHg0MDMwIC8qIEFFUyB1bml0ICovCisjZGVmaW5lIFRBTElUT1NfQUVTVUlTUl9MTwkJMHg0MDM0CisjZGVmaW5lIFRBTElUT1NfTURFVUlTUgkJCTB4NjAzMCAvKiBtZXNzYWdlIGRpZ2VzdCB1bml0ICovCisjZGVmaW5lIFRBTElUT1NfTURFVUlTUl9MTwkJMHg2MDM0CisjZGVmaW5lIFRBTElUT1NfQUZFVUlTUgkJCTB4ODAzMCAvKiBhcmM0IHVuaXQgKi8KKyNkZWZpbmUgVEFMSVRPU19BRkVVSVNSX0xPCQkweDgwMzQKKyNkZWZpbmUgVEFMSVRPU19STkdVSVNSCQkJMHhhMDMwIC8qIHJhbmRvbSBudW1iZXIgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VJU1JfTE8JCTB4YTAzNAorI2RlZmluZSBUQUxJVE9TX1JOR1VTUgkJCTB4YTAyOCAvKiBybmcgc3RhdHVzICovCisjZGVmaW5lIFRBTElUT1NfUk5HVVNSX0xPCQkweGEwMmMKKyNkZWZpbmUgICBUQUxJVE9TX1JOR1VTUl9MT19SRAkJMHgxCS8qIHJlc2V0IGRvbmUgKi8KKyNkZWZpbmUgICBUQUxJVE9TX1JOR1VTUl9MT19PRkwJCTB4ZmYwMDAwLyogb3V0cHV0IEZJRk8gbGVuZ3RoICovCisjZGVmaW5lIFRBTElUT1NfUk5HVURTUgkJCTB4YTAxMAkvKiBkYXRhIHNpemUgKi8KKyNkZWZpbmUgVEFMSVRPU19STkdVRFNSX0xPCQkweGEwMTQKKyNkZWZpbmUgVEFMSVRPU19STkdVX0ZJRk8JCTB4YTgwMAkvKiBvdXRwdXQgRklGTyAqLworI2RlZmluZSBUQUxJVE9TX1JOR1VfRklGT19MTwkJMHhhODA0CS8qIG91dHB1dCBGSUZPICovCisjZGVmaW5lIFRBTElUT1NfUk5HVVJDUgkJCTB4YTAxOAkvKiByZXNldCBjb250cm9sICovCisjZGVmaW5lIFRBTElUT1NfUk5HVVJDUl9MTwkJMHhhMDFjCisjZGVmaW5lICAgVEFMSVRPU19STkdVUkNSX0xPX1NSCQkweDEJLyogc29mdHdhcmUgcmVzZXQgKi8KKyNkZWZpbmUgVEFMSVRPU19QS0VVSVNSCQkJMHhjMDMwIC8qIHB1YmxpYyBrZXkgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX1BLRVVJU1JfTE8JCTB4YzAzNAorI2RlZmluZSBUQUxJVE9TX0tFVUlTUgkJCTB4ZTAzMCAvKiBrYXN1bWkgdW5pdCAqLworI2RlZmluZSBUQUxJVE9TX0tFVUlTUl9MTwkJMHhlMDM0CisjZGVmaW5lIFRBTElUT1NfQ1JDVUlTUgkJCTB4ZjAzMCAvKiBjeWNsaWMgcmVkdW5kYW5jeSBjaGVjayB1bml0Ki8KKyNkZWZpbmUgVEFMSVRPU19DUkNVSVNSX0xPCQkweGYwMzQKKworLyoKKyAqIHRhbGl0b3MgZGVzY3JpcHRvciBoZWFkZXIgKGhkcikgYml0cworICovCisKKy8qIHdyaXR0ZW4gYmFjayB3aGVuIGRvbmUgKi8KKyNkZWZpbmUgREVTQ19IRFJfRE9ORQkJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHhmZjAwMDAwMCkKKworLyogcHJpbWFyeSBleGVjdXRpb24gdW5pdCBzZWxlY3QgKi8KKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9NQVNLCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4ZjAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfQUZFVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDEwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0RFVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDIwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX01ERVVBCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MzAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfTURFVUIJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHhiMDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9STkcJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg0MDAwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMF9QS0VVCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4NTAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDBfQUVTVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDYwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0tFVQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDcwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwwX0NSQ1UJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHg4MDAwMDAwMCkKKworLyogcHJpbWFyeSBleGVjdXRpb24gdW5pdCBtb2RlIChNT0RFMCkgYW5kIGRlcml2YXRpdmVzICovCisjZGVmaW5lCURFU0NfSERSX01PREUwX0VOQ1JZUFQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDEwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfQUVTVV9DQkMJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDIwMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfREVVX0NCQwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwNDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9ERVVfM0RFUwkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMjAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX0lOSVQJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAxMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX0hNQUMJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwODAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX1BBRAkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwNDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX01ENQkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMjAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX1NIQTI1NglfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAxMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX01ERVVfU0hBMQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwMDAwMDApCisjZGVmaW5lCURFU0NfSERSX01PREUwX01ERVVfTUQ1X0hNQUMJKERFU0NfSERSX01PREUwX01ERVVfTUQ1IHwgXAorCQkJCQkgREVTQ19IRFJfTU9ERTBfTURFVV9ITUFDKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMF9NREVVX1NIQTI1Nl9ITUFDCShERVNDX0hEUl9NT0RFMF9NREVVX1NIQTI1NiB8IFwKKwkJCQkJIERFU0NfSERSX01PREUwX01ERVVfSE1BQykKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTBfTURFVV9TSEExX0hNQUMJKERFU0NfSERSX01PREUwX01ERVVfU0hBMSB8IFwKKwkJCQkJIERFU0NfSERSX01PREUwX01ERVVfSE1BQykKKworLyogc2Vjb25kYXJ5IGV4ZWN1dGlvbiB1bml0IHNlbGVjdCAoU0VMMSkgKi8KKyNkZWZpbmUJREVTQ19IRFJfU0VMMV9NQVNLCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDB4MDAwZjAwMDApCisjZGVmaW5lCURFU0NfSERSX1NFTDFfTURFVUEJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAzMDAwMCkKKyNkZWZpbmUJREVTQ19IRFJfU0VMMV9NREVVQgkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMGIwMDAwKQorI2RlZmluZQlERVNDX0hEUl9TRUwxX0NSQ1UJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDA4MDAwMCkKKworLyogc2Vjb25kYXJ5IGV4ZWN1dGlvbiB1bml0IG1vZGUgKE1PREUxKSBhbmQgZGVyaXZhdGl2ZXMgKi8KKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9JTklUCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMTAwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9ITUFDCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDgwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9QQUQJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDQwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9NRDUJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDIwMCkKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTYJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMDAwMTAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMV9NREVVX1NIQTEJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMDAwMDAwKQorI2RlZmluZQlERVNDX0hEUl9NT0RFMV9NREVVX01ENV9ITUFDCShERVNDX0hEUl9NT0RFMV9NREVVX01ENSB8IFwKKwkJCQkJIERFU0NfSERSX01PREUxX01ERVVfSE1BQykKKyNkZWZpbmUJREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTZfSE1BQwkoREVTQ19IRFJfTU9ERTFfTURFVV9TSEEyNTYgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMV9NREVVX0hNQUMpCisjZGVmaW5lCURFU0NfSERSX01PREUxX01ERVVfU0hBMV9ITUFDCShERVNDX0hEUl9NT0RFMV9NREVVX1NIQTEgfCBcCisJCQkJCSBERVNDX0hEUl9NT0RFMV9NREVVX0hNQUMpCisKKy8qIGRpcmVjdGlvbiBvZiBvdmVyYWxsIGRhdGEgZmxvdyAoRElSKSAqLworI2RlZmluZQlERVNDX0hEUl9ESVJfSU5CT1VORAkJX19jb25zdGFudF9jcHVfdG9fYmUzMigweDAwMDAwMDAyKQorCisvKiByZXF1ZXN0IGRvbmUgbm90aWZpY2F0aW9uIChETikgKi8KKyNkZWZpbmUJREVTQ19IRFJfRE9ORV9OT1RJRlkJCV9fY29uc3RhbnRfY3B1X3RvX2JlMzIoMHgwMDAwMDAwMSkKKworLyogZGVzY3JpcHRvciB0eXBlcyAqLworI2RlZmluZSBERVNDX0hEUl9UWVBFX0FFU1VfQ1RSX05PTlNOT09QCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDAgPDwgMykKKyNkZWZpbmUgREVTQ19IRFJfVFlQRV9JUFNFQ19FU1AJCQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDEgPDwgMykKKyNkZWZpbmUgREVTQ19IRFJfVFlQRV9DT01NT05fTk9OU05PT1BfTk9fQUZFVQlfX2NvbnN0YW50X2NwdV90b19iZTMyKDIgPDwgMykKKyNkZWZpbmUgREVTQ19IRFJfVFlQRV9ITUFDX1NOT09QX05PX0FGRVUJX19jb25zdGFudF9jcHVfdG9fYmUzMig0IDw8IDMpCisKKy8qIGxpbmsgdGFibGUgZXh0ZW50IGZpZWxkIGJpdHMgKi8KKyNkZWZpbmUgREVTQ19QVFJfTE5LVEJMX0pVTVAJCQkweDgwCisjZGVmaW5lIERFU0NfUFRSX0xOS1RCTF9SRVRVUk4JCQkweDAyCisjZGVmaW5lIERFU0NfUFRSX0xOS1RCTF9ORVhUCQkJMHgwMQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFjL21wYzg1eHhfZWRhYy5jIGIvZHJpdmVycy9lZGFjL21wYzg1eHhfZWRhYy5jCmluZGV4IDA2NTczMmQuLmQ0OTM2MWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2VkYWMvbXBjODV4eF9lZGFjLmMKKysrIGIvZHJpdmVycy9lZGFjL21wYzg1eHhfZWRhYy5jCkBAIC0yMCw3ICsyMCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgotI2luY2x1ZGUgPGFzbS9tcGM4NXh4Lmg+CiAjaW5jbHVkZSAiZWRhY19tb2R1bGUuaCIKICNpbmNsdWRlICJlZGFjX2NvcmUuaCIKICNpbmNsdWRlICJtcGM4NXh4X2VkYWMuaCIKQEAgLTQzLDggKzQyLDYgQEAKIHN0YXRpYyB1MzIgb3JpZ19sMl9lcnJfZGlzYWJsZTsKIHN0YXRpYyB1MzIgb3JpZ19oaWQxOwogCi1zdGF0aWMgY29uc3QgY2hhciAqbXBjODV4eF9jdGxfbmFtZSA9ICJNUEM4NXh4IjsKLQogLyoqKioqKioqKioqKioqKioqKioqKioqKiBNQyBTWVNGUyBwYXJ0cyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogc3RhdGljIHNzaXplX3QgbXBjODV4eF9tY19pbmplY3RfZGF0YV9oaV9zaG93KHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvS2NvbmZpZyBiL2RyaXZlcnMvZmlyZXdpcmUvS2NvbmZpZwppbmRleCBmYjRkMzkxLi43NmYyNjcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2ZpcmV3aXJlL0tjb25maWcKKysrIGIvZHJpdmVycy9maXJld2lyZS9LY29uZmlnCkBAIC0xLDI4ICsxLDI2IEBACi1jb21tZW50ICJBbiBhbHRlcm5hdGl2ZSBGaXJlV2lyZSBzdGFjayBpcyBhdmFpbGFibGUgd2l0aCBFWFBFUklNRU5UQUw9eSIKK2NvbW1lbnQgIkEgbmV3IGFsdGVybmF0aXZlIEZpcmVXaXJlIHN0YWNrIGlzIGF2YWlsYWJsZSB3aXRoIEVYUEVSSU1FTlRBTD15IgogCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMPW4KIAorY29tbWVudCAiRW5hYmxlIG9ubHkgb25lIG9mIHRoZSB0d28gc3RhY2tzLCB1bmxlc3MgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIgorCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCisKIGNvbmZpZyBGSVJFV0lSRQotCXRyaXN0YXRlICJJRUVFIDEzOTQgKEZpcmVXaXJlKSBzdXBwb3J0IC0gYWx0ZXJuYXRpdmUgc3RhY2ssIEVYUEVSSU1FTlRBTCIKKwl0cmlzdGF0ZSAiTmV3IEZpcmVXaXJlIHN0YWNrLCBFWFBFUklNRU5UQUwiCiAJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKIAlzZWxlY3QgQ1JDX0lUVV9UCiAJaGVscAogCSAgVGhpcyBpcyB0aGUgIkp1anUiIEZpcmVXaXJlIHN0YWNrLCBhIG5ldyBhbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbgogCSAgZGVzaWduZWQgZm9yIHJvYnVzdG5lc3MgYW5kIHNpbXBsaWNpdHkuICBZb3UgY2FuIGJ1aWxkIGVpdGhlciB0aGlzCi0JICBzdGFjaywgb3IgdGhlIGNsYXNzaWMgc3RhY2sgKHRoZSBpZWVlMTM5NCBkcml2ZXIsIG9oY2kxMzk0IGV0Yy4pCi0JICBvciBib3RoLiAgUGxlYXNlIHJlYWQgaHR0cDovL3dpa2kubGludXgxMzk0Lm9yZy9KdWp1TWlncmF0aW9uIGJlZm9yZQotCSAgeW91IGVuYWJsZSB0aGUgbmV3IHN0YWNrLgorCSAgc3RhY2ssIG9yIHRoZSBvbGQgc3RhY2sgKHRoZSBpZWVlMTM5NCBkcml2ZXIsIG9oY2kxMzk0IGV0Yy4pIG9yIGJvdGguCisJICBQbGVhc2UgcmVhZCBodHRwOi8vd2lraS5saW51eDEzOTQub3JnL0p1anVNaWdyYXRpb24gYmVmb3JlIHlvdQorCSAgZW5hYmxlIHRoZSBuZXcgc3RhY2suCiAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZQogCSAgY2FsbGVkIGZpcmV3aXJlLWNvcmUuICBJdCBmdW5jdGlvbmFsbHkgcmVwbGFjZXMgaWVlZTEzOTQsIHJhdzEzOTQsCiAJICBhbmQgdmlkZW8xMzk0LgogCi0gICAgICAgICAgTk9URToKLQotCSAgWW91IHNob3VsZCBvbmx5IGJ1aWxkIE9ORSBvZiB0aGUgc3RhY2tzLCB1bmxlc3MgeW91IFJFQUxMWSBrbm93IHdoYXQKLQkgIHlvdSBhcmUgZG9pbmcuCi0KIGNvbmZpZyBGSVJFV0lSRV9PSENJCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIE9IQ0kgRmlyZVdpcmUgaG9zdCBjb250cm9sbGVycyIKKwl0cmlzdGF0ZSAiT0hDSS0xMzk0IGNvbnRyb2xsZXJzIgogCWRlcGVuZHMgb24gUENJICYmIEZJUkVXSVJFCiAJaGVscAogCSAgRW5hYmxlIHRoaXMgZHJpdmVyIGlmIHlvdSBoYXZlIGEgRmlyZVdpcmUgY29udHJvbGxlciBiYXNlZApAQCAtMzMsMTIgKzMxLDEyIEBACiAJICBjYWxsZWQgZmlyZXdpcmUtb2hjaS4gIEl0IHJlcGxhY2VzIG9oY2kxMzk0IG9mIHRoZSBjbGFzc2ljIElFRUUgMTM5NAogCSAgc3RhY2suCiAKLSAgICAgICAgICBOT1RFOgorCSAgTk9URToKIAotCSAgWW91IHNob3VsZCBvbmx5IGJ1aWxkIG9oY2kxMzk0IG9yIGZpcmV3aXJlLW9oY2ksIGJ1dCBub3QgYm90aC4KLQkgIElmIHlvdSBuZXZlcnRoZWxlc3Mgd2FudCB0byBpbnN0YWxsIGJvdGgsIHlvdSBzaG91bGQgY29uZmlndXJlIHRoZW0KLQkgIG9ubHkgYXMgbW9kdWxlcyBhbmQgYmxhY2tsaXN0IHRoZSBkcml2ZXIocykgd2hpY2ggeW91IGRvbid0IHdhbnQgdG8KLQkgIGhhdmUgYXV0by1sb2FkZWQuICBBZGQgZWl0aGVyCisJICBZb3Ugc2hvdWxkIG9ubHkgYnVpbGQgZWl0aGVyIGZpcmV3aXJlLW9oY2kgb3IgdGhlIG9sZCBvaGNpMTM5NCBkcml2ZXIsCisJICBidXQgbm90IGJvdGguICBJZiB5b3UgbmV2ZXJ0aGVsZXNzIHdhbnQgdG8gaW5zdGFsbCBib3RoLCB5b3Ugc2hvdWxkCisJICBjb25maWd1cmUgdGhlbSBvbmx5IGFzIG1vZHVsZXMgYW5kIGJsYWNrbGlzdCB0aGUgZHJpdmVyKHMpIHdoaWNoIHlvdQorCSAgZG9uJ3Qgd2FudCB0byBoYXZlIGF1dG8tbG9hZGVkLiAgQWRkIGVpdGhlcgogCiAJICAgICAgYmxhY2tsaXN0IGZpcmV3aXJlLW9oY2kKIAkgIG9yCkBAIC02MCw3ICs1OCw3IEBACiAJZGVmYXVsdCB5CiAKIGNvbmZpZyBGSVJFV0lSRV9TQlAyCi0JdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHN0b3JhZ2UgZGV2aWNlcyAoU0JQLTIgcHJvdG9jb2wgZHJpdmVyKSIKKwl0cmlzdGF0ZSAiU3RvcmFnZSBkZXZpY2VzIChTQlAtMiBwcm90b2NvbCkiCiAJZGVwZW5kcyBvbiBGSVJFV0lSRSAmJiBTQ1NJCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB5b3UgdG8gdXNlIFNCUC0yIGRldmljZXMgY29ubmVjdGVkIHRvIGEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvZnctY2Rldi5jIGIvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKaW5kZXggZGRhMTQwMS4uYzYzOTkxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKKysrIGIvZHJpdmVycy9maXJld2lyZS9mdy1jZGV2LmMKQEAgLTIwNSw2ICsyMDUsNyBAQAogCXJldHVybiBkZXF1ZXVlX2V2ZW50KGNsaWVudCwgYnVmZmVyLCBjb3VudCk7CiB9CiAKKy8qIGNhbGxlciBtdXN0IGhvbGQgY2FyZC0+bG9jayBzbyB0aGF0IG5vZGUgcG9pbnRlcnMgY2FuIGJlIGRlcmVmZXJlbmNlZCBoZXJlICovCiBzdGF0aWMgdm9pZAogZmlsbF9idXNfcmVzZXRfZXZlbnQoc3RydWN0IGZ3X2NkZXZfZXZlbnRfYnVzX3Jlc2V0ICpldmVudCwKIAkJICAgICBzdHJ1Y3QgY2xpZW50ICpjbGllbnQpCkBAIC0yMTQsNyArMjE1LDYgQEAKIAlldmVudC0+Y2xvc3VyZQkgICAgID0gY2xpZW50LT5idXNfcmVzZXRfY2xvc3VyZTsKIAlldmVudC0+dHlwZSAgICAgICAgICA9IEZXX0NERVZfRVZFTlRfQlVTX1JFU0VUOwogCWV2ZW50LT5nZW5lcmF0aW9uICAgID0gY2xpZW50LT5kZXZpY2UtPmdlbmVyYXRpb247Ci0Jc21wX3JtYigpOyAgICAgICAgICAgLyogbm9kZV9pZCBtdXN0IG5vdCBiZSBvbGRlciB0aGFuIGdlbmVyYXRpb24gKi8KIAlldmVudC0+bm9kZV9pZCAgICAgICA9IGNsaWVudC0+ZGV2aWNlLT5ub2RlX2lkOwogCWV2ZW50LT5sb2NhbF9ub2RlX2lkID0gY2FyZC0+bG9jYWxfbm9kZS0+bm9kZV9pZDsKIAlldmVudC0+Ym1fbm9kZV9pZCAgICA9IDA7IC8qIEZJWE1FOiBXZSBkb24ndCB0cmFjayB0aGUgQk0uICovCkBAIC0yNzQsNiArMjc0LDcgQEAKIHsKIAlzdHJ1Y3QgZndfY2Rldl9nZXRfaW5mbyAqZ2V0X2luZm8gPSBidWZmZXI7CiAJc3RydWN0IGZ3X2NkZXZfZXZlbnRfYnVzX3Jlc2V0IGJ1c19yZXNldDsKKwlzdHJ1Y3QgZndfY2FyZCAqY2FyZCA9IGNsaWVudC0+ZGV2aWNlLT5jYXJkOwogCXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAogCWNsaWVudC0+dmVyc2lvbiA9IGdldF9pbmZvLT52ZXJzaW9uOwpAQCAtMjk5LDEzICszMDAsMTcgQEAKIAljbGllbnQtPmJ1c19yZXNldF9jbG9zdXJlID0gZ2V0X2luZm8tPmJ1c19yZXNldF9jbG9zdXJlOwogCWlmIChnZXRfaW5mby0+YnVzX3Jlc2V0ICE9IDApIHsKIAkJdm9pZCBfX3VzZXIgKnVwdHIgPSB1NjRfdG9fdXB0cihnZXRfaW5mby0+YnVzX3Jlc2V0KTsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAorCQlzcGluX2xvY2tfaXJxc2F2ZSgmY2FyZC0+bG9jaywgZmxhZ3MpOwogCQlmaWxsX2J1c19yZXNldF9ldmVudCgmYnVzX3Jlc2V0LCBjbGllbnQpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjYXJkLT5sb2NrLCBmbGFncyk7CisKIAkJaWYgKGNvcHlfdG9fdXNlcih1cHRyLCAmYnVzX3Jlc2V0LCBzaXplb2YoYnVzX3Jlc2V0KSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAl9CiAKLQlnZXRfaW5mby0+Y2FyZCA9IGNsaWVudC0+ZGV2aWNlLT5jYXJkLT5pbmRleDsKKwlnZXRfaW5mby0+Y2FyZCA9IGNhcmQtPmluZGV4OwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2ZpcmV3aXJlL2Z3LW9oY2kuYyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCmluZGV4IDRmMDJjNTUuLjBiNjYzMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCisrKyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctb2hjaS5jCkBAIC0yNjUsMjcgKzI2NSwyNSBAQAogCSAgICAhKGV2dCAmIE9IQ0kxMzk0X2J1c1Jlc2V0KSkKIAkJcmV0dXJuOwogCi0JcHJpbnRrKEtFUk5fREVCVUcgS0JVSUxEX01PRE5BTUUgIjogSVJRICIKLQkgICAgICAgIiUwOHglcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXMlc1xuIiwKLQkgICAgICAgZXZ0LAotCSAgICAgICBldnQgJiBPSENJMTM5NF9zZWxmSURDb21wbGV0ZQk/ICIgc2VsZklEIgkJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfUlFQa3QJCT8gIiBBUl9yZXEiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9SU1BrdAkJPyAiIEFSX3Jlc3AiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZXFUeENvbXBsZXRlCT8gIiBBVF9yZXEiCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZXNwVHhDb21wbGV0ZQk/ICIgQVRfcmVzcCIJCTogIiIsCi0JICAgICAgIGV2dCAmIE9IQ0kxMzk0X2lzb2NoUngJCT8gIiBJUiIJCQk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9pc29jaFR4CQk/ICIgSVQiCQkJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfcG9zdGVkV3JpdGVFcnIJPyAiIHBvc3RlZFdyaXRlRXJyIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9jeWNsZVRvb0xvbmcJPyAiIGN5Y2xlVG9vTG9uZyIJOiAiIiwKLQkgICAgICAgZXZ0ICYgT0hDSTEzOTRfY3ljbGU2NFNlY29uZHMJPyAiIGN5Y2xlNjRTZWNvbmRzIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9yZWdBY2Nlc3NGYWlsCT8gIiByZWdBY2Nlc3NGYWlsIgk6ICIiLAotCSAgICAgICBldnQgJiBPSENJMTM5NF9idXNSZXNldAkJPyAiIGJ1c1Jlc2V0IgkJOiAiIiwKLQkgICAgICAgZXZ0ICYgfihPSENJMTM5NF9zZWxmSURDb21wbGV0ZSB8IE9IQ0kxMzk0X1JRUGt0IHwKLQkJICAgICAgIE9IQ0kxMzk0X1JTUGt0IHwgT0hDSTEzOTRfcmVxVHhDb21wbGV0ZSB8Ci0JCSAgICAgICBPSENJMTM5NF9yZXNwVHhDb21wbGV0ZSB8IE9IQ0kxMzk0X2lzb2NoUnggfAotCQkgICAgICAgT0hDSTEzOTRfaXNvY2hUeCB8IE9IQ0kxMzk0X3Bvc3RlZFdyaXRlRXJyIHwKLQkJICAgICAgIE9IQ0kxMzk0X2N5Y2xlVG9vTG9uZyB8IE9IQ0kxMzk0X2N5Y2xlNjRTZWNvbmRzIHwKLQkJICAgICAgIE9IQ0kxMzk0X3JlZ0FjY2Vzc0ZhaWwgfCBPSENJMTM5NF9idXNSZXNldCkKKwlmd19ub3RpZnkoIklSUSAlMDh4JXMlcyVzJXMlcyVzJXMlcyVzJXMlcyVzJXNcbiIsIGV2dCwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfc2VsZklEQ29tcGxldGUJPyAiIHNlbGZJRCIJCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X1JRUGt0CQk/ICIgQVJfcmVxIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfUlNQa3QJCT8gIiBBUl9yZXNwIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfcmVxVHhDb21wbGV0ZQk/ICIgQVRfcmVxIgkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfcmVzcFR4Q29tcGxldGUJPyAiIEFUX3Jlc3AiCQk6ICIiLAorCSAgICBldnQgJiBPSENJMTM5NF9pc29jaFJ4CQk/ICIgSVIiCQkJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfaXNvY2hUeAkJPyAiIElUIgkJCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X3Bvc3RlZFdyaXRlRXJyCT8gIiBwb3N0ZWRXcml0ZUVyciIJOiAiIiwKKwkgICAgZXZ0ICYgT0hDSTEzOTRfY3ljbGVUb29Mb25nCQk/ICIgY3ljbGVUb29Mb25nIgk6ICIiLAorCSAgICBldnQgJiBPSENJMTM5NF9jeWNsZTY0U2Vjb25kcwk/ICIgY3ljbGU2NFNlY29uZHMiCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X3JlZ0FjY2Vzc0ZhaWwJPyAiIHJlZ0FjY2Vzc0ZhaWwiCTogIiIsCisJICAgIGV2dCAmIE9IQ0kxMzk0X2J1c1Jlc2V0CQk/ICIgYnVzUmVzZXQiCQk6ICIiLAorCSAgICBldnQgJiB+KE9IQ0kxMzk0X3NlbGZJRENvbXBsZXRlIHwgT0hDSTEzOTRfUlFQa3QgfAorCQkgICAgT0hDSTEzOTRfUlNQa3QgfCBPSENJMTM5NF9yZXFUeENvbXBsZXRlIHwKKwkJICAgIE9IQ0kxMzk0X3Jlc3BUeENvbXBsZXRlIHwgT0hDSTEzOTRfaXNvY2hSeCB8CisJCSAgICBPSENJMTM5NF9pc29jaFR4IHwgT0hDSTEzOTRfcG9zdGVkV3JpdGVFcnIgfAorCQkgICAgT0hDSTEzOTRfY3ljbGVUb29Mb25nIHwgT0hDSTEzOTRfY3ljbGU2NFNlY29uZHMgfAorCQkgICAgT0hDSTEzOTRfcmVnQWNjZXNzRmFpbCB8IE9IQ0kxMzk0X2J1c1Jlc2V0KQogCQkJCQkJPyAiID8iCQkJOiAiIik7CiB9CiAKQEAgLTMwOCwyMyArMzA2LDIyIEBACiAJaWYgKGxpa2VseSghKHBhcmFtX2RlYnVnICYgT0hDSV9QQVJBTV9ERUJVR19TRUxGSURTKSkpCiAJCXJldHVybjsKIAotCXByaW50ayhLRVJOX0RFQlVHIEtCVUlMRF9NT0ROQU1FICI6ICVkIHNlbGZJRHMsIGdlbmVyYXRpb24gJWQsICIKLQkgICAgICAgImxvY2FsIG5vZGUgSUQgJTA0eFxuIiwgc2VsZl9pZF9jb3VudCwgZ2VuZXJhdGlvbiwgbm9kZV9pZCk7CisJZndfbm90aWZ5KCIlZCBzZWxmSURzLCBnZW5lcmF0aW9uICVkLCBsb2NhbCBub2RlIElEICUwNHhcbiIsCisJCSAgc2VsZl9pZF9jb3VudCwgZ2VuZXJhdGlvbiwgbm9kZV9pZCk7CiAKIAlmb3IgKDsgc2VsZl9pZF9jb3VudC0tOyArK3MpCiAJCWlmICgoKnMgJiAxIDw8IDIzKSA9PSAwKQotCQkJcHJpbnRrKEtFUk5fREVCVUcgInNlbGZJRCAwOiAlMDh4LCBwaHkgJWQgWyVjJWMlY10gIgotCQkJICAgICAgICIlcyBnYz0lZCAlcyAlcyVzJXNcbiIsCi0JCQkgICAgICAgKnMsICpzID4+IDI0ICYgNjMsIF9wKHMsIDYpLCBfcChzLCA0KSwgX3AocywgMiksCi0JCQkgICAgICAgc3BlZWRbKnMgPj4gMTQgJiAzXSwgKnMgPj4gMTYgJiA2MywKLQkJCSAgICAgICBwb3dlclsqcyA+PiA4ICYgN10sICpzID4+IDIyICYgMSA/ICJMIiA6ICIiLAotCQkJICAgICAgICpzID4+IDExICYgMSA/ICJjIiA6ICIiLCAqcyAmIDIgPyAiaSIgOiAiIik7CisJCQlmd19ub3RpZnkoInNlbGZJRCAwOiAlMDh4LCBwaHkgJWQgWyVjJWMlY10gIgorCQkJICAgICIlcyBnYz0lZCAlcyAlcyVzJXNcbiIsCisJCQkgICAgKnMsICpzID4+IDI0ICYgNjMsIF9wKHMsIDYpLCBfcChzLCA0KSwgX3AocywgMiksCisJCQkgICAgc3BlZWRbKnMgPj4gMTQgJiAzXSwgKnMgPj4gMTYgJiA2MywKKwkJCSAgICBwb3dlclsqcyA+PiA4ICYgN10sICpzID4+IDIyICYgMSA/ICJMIiA6ICIiLAorCQkJICAgICpzID4+IDExICYgMSA/ICJjIiA6ICIiLCAqcyAmIDIgPyAiaSIgOiAiIik7CiAJCWVsc2UKLQkJCXByaW50ayhLRVJOX0RFQlVHICJzZWxmSUQgbjogJTA4eCwgcGh5ICVkICIKLQkJCSAgICAgICAiWyVjJWMlYyVjJWMlYyVjJWNdXG4iLAotCQkJICAgICAgICpzLCAqcyA+PiAyNCAmIDYzLAotCQkJICAgICAgIF9wKHMsIDE2KSwgX3AocywgMTQpLCBfcChzLCAxMiksIF9wKHMsIDEwKSwKLQkJCSAgICAgICBfcChzLCAgOCksIF9wKHMsICA2KSwgX3AocywgIDQpLCBfcChzLCAgMikpOworCQkJZndfbm90aWZ5KCJzZWxmSUQgbjogJTA4eCwgcGh5ICVkIFslYyVjJWMlYyVjJWMlYyVjXVxuIiwKKwkJCSAgICAqcywgKnMgPj4gMjQgJiA2MywKKwkJCSAgICBfcChzLCAxNiksIF9wKHMsIDE0KSwgX3AocywgMTIpLCBfcChzLCAxMCksCisJCQkgICAgX3AocywgIDgpLCBfcChzLCAgNiksIF9wKHMsICA0KSwgX3AocywgIDIpKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmV2dHNbXSA9IHsKQEAgLTM3MywxNSArMzcwLDE0IEBACiAJCQlldnQgPSAweDFmOwogCiAJaWYgKGV2dCA9PSBPSENJMTM5NF9ldnRfYnVzX3Jlc2V0KSB7Ci0JCXByaW50ayhLRVJOX0RFQlVHICJBJWMgZXZ0X2J1c19yZXNldCwgZ2VuZXJhdGlvbiAlZFxuIiwKLQkJICAgICAgIGRpciwgKGhlYWRlclsyXSA+PiAxNikgJiAweGZmKTsKKwkJZndfbm90aWZ5KCJBJWMgZXZ0X2J1c19yZXNldCwgZ2VuZXJhdGlvbiAlZFxuIiwKKwkJICAgIGRpciwgKGhlYWRlclsyXSA+PiAxNikgJiAweGZmKTsKIAkJcmV0dXJuOwogCX0KIAogCWlmIChoZWFkZXJbMF0gPT0gfmhlYWRlclsxXSkgewotCQlwcmludGsoS0VSTl9ERUJVRyAiQSVjICVzLCAlcywgJTA4eFxuIiwKLQkJICAgICAgIGRpciwgZXZ0c1tldnRdLCBwaHlzW2hlYWRlclswXSA+PiAzMCAmIDB4M10sCi0JCSAgICAgICBoZWFkZXJbMF0pOworCQlmd19ub3RpZnkoIkElYyAlcywgJXMsICUwOHhcbiIsCisJCSAgICBkaXIsIGV2dHNbZXZ0XSwgcGh5c1toZWFkZXJbMF0gPj4gMzAgJiAweDNdLCBoZWFkZXJbMF0pOwogCQlyZXR1cm47CiAJfQogCkBAIC00MDAsMjQgKzM5NiwyMyBAQAogCiAJc3dpdGNoICh0Y29kZSkgewogCWNhc2UgMHhlOiBjYXNlIDB4YToKLQkJcHJpbnRrKEtFUk5fREVCVUcgIkElYyAlcywgJXNcbiIsCi0JCSAgICAgICBkaXIsIGV2dHNbZXZ0XSwgdGNvZGVzW3Rjb2RlXSk7CisJCWZ3X25vdGlmeSgiQSVjICVzLCAlc1xuIiwgZGlyLCBldnRzW2V2dF0sIHRjb2Rlc1t0Y29kZV0pOwogCQlicmVhazsKIAljYXNlIDB4MDogY2FzZSAweDE6IGNhc2UgMHg0OiBjYXNlIDB4NTogY2FzZSAweDk6Ci0JCXByaW50ayhLRVJOX0RFQlVHICJBJWMgc3BkICV4IHRsICUwMngsICIKLQkJICAgICAgICIlMDR4IC0+ICUwNHgsICVzLCAiCi0JCSAgICAgICAiJXMsICUwNHglMDh4JXNcbiIsCi0JCSAgICAgICBkaXIsIHNwZWVkLCBoZWFkZXJbMF0gPj4gMTAgJiAweDNmLAotCQkgICAgICAgaGVhZGVyWzFdID4+IDE2LCBoZWFkZXJbMF0gPj4gMTYsIGV2dHNbZXZ0XSwKLQkJICAgICAgIHRjb2Rlc1t0Y29kZV0sIGhlYWRlclsxXSAmIDB4ZmZmZiwgaGVhZGVyWzJdLCBzcGVjaWZpYyk7CisJCWZ3X25vdGlmeSgiQSVjIHNwZCAleCB0bCAlMDJ4LCAiCisJCSAgICAiJTA0eCAtPiAlMDR4LCAlcywgIgorCQkgICAgIiVzLCAlMDR4JTA4eCVzXG4iLAorCQkgICAgZGlyLCBzcGVlZCwgaGVhZGVyWzBdID4+IDEwICYgMHgzZiwKKwkJICAgIGhlYWRlclsxXSA+PiAxNiwgaGVhZGVyWzBdID4+IDE2LCBldnRzW2V2dF0sCisJCSAgICB0Y29kZXNbdGNvZGVdLCBoZWFkZXJbMV0gJiAweGZmZmYsIGhlYWRlclsyXSwgc3BlY2lmaWMpOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9ERUJVRyAiQSVjIHNwZCAleCB0bCAlMDJ4LCAiCi0JCSAgICAgICAiJTA0eCAtPiAlMDR4LCAlcywgIgotCQkgICAgICAgIiVzJXNcbiIsCi0JCSAgICAgICBkaXIsIHNwZWVkLCBoZWFkZXJbMF0gPj4gMTAgJiAweDNmLAotCQkgICAgICAgaGVhZGVyWzFdID4+IDE2LCBoZWFkZXJbMF0gPj4gMTYsIGV2dHNbZXZ0XSwKLQkJICAgICAgIHRjb2Rlc1t0Y29kZV0sIHNwZWNpZmljKTsKKwkJZndfbm90aWZ5KCJBJWMgc3BkICV4IHRsICUwMngsICIKKwkJICAgICIlMDR4IC0+ICUwNHgsICVzLCAiCisJCSAgICAiJXMlc1xuIiwKKwkJICAgIGRpciwgc3BlZWQsIGhlYWRlclswXSA+PiAxMCAmIDB4M2YsCisJCSAgICBoZWFkZXJbMV0gPj4gMTYsIGhlYWRlclswXSA+PiAxNiwgZXZ0c1tldnRdLAorCQkgICAgdGNvZGVzW3Rjb2RlXSwgc3BlY2lmaWMpOwogCX0KIH0KIApAQCAtNTQ4LDYgKzU0MywxMSBAQAogCQlwLmhlYWRlcl9sZW5ndGggPSAxMjsKIAkJcC5wYXlsb2FkX2xlbmd0aCA9IDA7CiAJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJLyogRklYTUU6IFN0b3AgY29udGV4dCwgZGlzY2FyZCBldmVyeXRoaW5nLCBhbmQgcmVzdGFydD8gKi8KKwkJcC5oZWFkZXJfbGVuZ3RoID0gMDsKKwkJcC5wYXlsb2FkX2xlbmd0aCA9IDA7CiAJfQogCiAJcC5wYXlsb2FkID0gKHZvaWQgKikgYnVmZmVyICsgcC5oZWFkZXJfbGVuZ3RoOwpAQCAtMTQ2OCw2ICsxNDY4LDkgQEAKIAlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfSENDb250cm9sQ2xlYXIsCiAJCSAgT0hDSTEzOTRfSENDb250cm9sX25vQnl0ZVN3YXBEYXRhKTsKIAorCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9TZWxmSURCdWZmZXIsIG9oY2ktPnNlbGZfaWRfYnVzKTsKKwlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfTGlua0NvbnRyb2xDbGVhciwKKwkJICBPSENJMTM5NF9MaW5rQ29udHJvbF9yY3ZQaHlQa3QpOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9MaW5rQ29udHJvbFNldCwKIAkJICBPSENJMTM5NF9MaW5rQ29udHJvbF9yY3ZTZWxmSUQgfAogCQkgIE9IQ0kxMzk0X0xpbmtDb250cm9sX2N5Y2xlVGltZXJFbmFibGUgfApAQCAtMTQ4MSw3ICsxNDg0LDYgQEAKIAlhcl9jb250ZXh0X3J1bigmb2hjaS0+YXJfcmVxdWVzdF9jdHgpOwogCWFyX2NvbnRleHRfcnVuKCZvaGNpLT5hcl9yZXNwb25zZV9jdHgpOwogCi0JcmVnX3dyaXRlKG9oY2ksIE9IQ0kxMzk0X1NlbGZJREJ1ZmZlciwgb2hjaS0+c2VsZl9pZF9idXMpOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9QaHlVcHBlckJvdW5kLCAweDAwMDEwMDAwKTsKIAlyZWdfd3JpdGUob2hjaSwgT0hDSTEzOTRfSW50RXZlbnRDbGVhciwgfjApOwogCXJlZ193cml0ZShvaGNpLCBPSENJMTM5NF9JbnRNYXNrQ2xlYXIsIH4wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlyZXdpcmUvZnctc2JwMi5jIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKaW5kZXggYjI0NThiYi4uMjI3ZDJlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKKysrIGIvZHJpdmVycy9maXJld2lyZS9mdy1zYnAyLmMKQEAgLTEwNTEsNyArMTA1MSw4IEBACiAJCQlicmVhazsKIAogCQljYXNlIFNCUDJfQ1NSX0xPR0lDQUxfVU5JVF9ESVJFQ1RPUlk6Ci0JCQlpZiAoc2JwMl9zY2FuX2xvZ2ljYWxfdW5pdF9kaXIodGd0LCBjaS5wICsgdmFsdWUpIDwgMCkKKwkJCS8qIEFkanVzdCBmb3IgdGhlIGluY3JlbWVudCBpbiB0aGUgaXRlcmF0b3IgKi8KKwkJCWlmIChzYnAyX3NjYW5fbG9naWNhbF91bml0X2Rpcih0Z3QsIGNpLnAgLSAxICsgdmFsdWUpIDwgMCkKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAkJCWJyZWFrOwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2ZpcmV3aXJlL2Z3LXRyYW5zYWN0aW9uLmMgYi9kcml2ZXJzL2ZpcmV3aXJlL2Z3LXRyYW5zYWN0aW9uLmMKaW5kZXggY2NmMGU0Yy4uMDNhZThhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJld2lyZS9mdy10cmFuc2FjdGlvbi5jCisrKyBiL2RyaXZlcnMvZmlyZXdpcmUvZnctdHJhbnNhY3Rpb24uYwpAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CkBAIC0yOTcsMzcgKzI5OCw1NSBAQAogc3RydWN0IGZ3X3BoeV9wYWNrZXQgewogCXN0cnVjdCBmd19wYWNrZXQgcGFja2V0OwogCXN0cnVjdCBjb21wbGV0aW9uIGRvbmU7CisJc3RydWN0IGtyZWYga3JlZjsKIH07CiAKLXN0YXRpYyB2b2lkCi10cmFuc21pdF9waHlfcGFja2V0X2NhbGxiYWNrKHN0cnVjdCBmd19wYWNrZXQgKnBhY2tldCwKLQkJCSAgICAgc3RydWN0IGZ3X2NhcmQgKmNhcmQsIGludCBzdGF0dXMpCitzdGF0aWMgdm9pZCBwaHlfcGFja2V0X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCit7CisJc3RydWN0IGZ3X3BoeV9wYWNrZXQgKnAgPQorCQkJY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCBmd19waHlfcGFja2V0LCBrcmVmKTsKKwlrZnJlZShwKTsKK30KKworc3RhdGljIHZvaWQgdHJhbnNtaXRfcGh5X3BhY2tldF9jYWxsYmFjayhzdHJ1Y3QgZndfcGFja2V0ICpwYWNrZXQsCisJCQkJCSBzdHJ1Y3QgZndfY2FyZCAqY2FyZCwgaW50IHN0YXR1cykKIHsKIAlzdHJ1Y3QgZndfcGh5X3BhY2tldCAqcCA9CiAJCQljb250YWluZXJfb2YocGFja2V0LCBzdHJ1Y3QgZndfcGh5X3BhY2tldCwgcGFja2V0KTsKIAogCWNvbXBsZXRlKCZwLT5kb25lKTsKKwlrcmVmX3B1dCgmcC0+a3JlZiwgcGh5X3BhY2tldF9yZWxlYXNlKTsKIH0KIAogdm9pZCBmd19zZW5kX3BoeV9jb25maWcoc3RydWN0IGZ3X2NhcmQgKmNhcmQsCiAJCQlpbnQgbm9kZV9pZCwgaW50IGdlbmVyYXRpb24sIGludCBnYXBfY291bnQpCiB7Ci0Jc3RydWN0IGZ3X3BoeV9wYWNrZXQgcDsKKwlzdHJ1Y3QgZndfcGh5X3BhY2tldCAqcDsKKwlsb25nIHRpbWVvdXQgPSBESVZfUk9VTkRfVVAoSFosIDEwKTsKIAl1MzIgZGF0YSA9IFBIWV9JREVOVElGSUVSKFBIWV9QQUNLRVRfQ09ORklHKSB8CiAJCSAgIFBIWV9DT05GSUdfUk9PVF9JRChub2RlX2lkKSB8CiAJCSAgIFBIWV9DT05GSUdfR0FQX0NPVU5UKGdhcF9jb3VudCk7CiAKLQlwLnBhY2tldC5oZWFkZXJbMF0gPSBkYXRhOwotCXAucGFja2V0LmhlYWRlclsxXSA9IH5kYXRhOwotCXAucGFja2V0LmhlYWRlcl9sZW5ndGggPSA4OwotCXAucGFja2V0LnBheWxvYWRfbGVuZ3RoID0gMDsKLQlwLnBhY2tldC5zcGVlZCA9IFNDT0RFXzEwMDsKLQlwLnBhY2tldC5nZW5lcmF0aW9uID0gZ2VuZXJhdGlvbjsKLQlwLnBhY2tldC5jYWxsYmFjayA9IHRyYW5zbWl0X3BoeV9wYWNrZXRfY2FsbGJhY2s7Ci0JaW5pdF9jb21wbGV0aW9uKCZwLmRvbmUpOworCXAgPSBrbWFsbG9jKHNpemVvZigqcCksIEdGUF9LRVJORUwpOworCWlmIChwID09IE5VTEwpCisJCXJldHVybjsKIAotCWNhcmQtPmRyaXZlci0+c2VuZF9yZXF1ZXN0KGNhcmQsICZwLnBhY2tldCk7Ci0Jd2FpdF9mb3JfY29tcGxldGlvbigmcC5kb25lKTsKKwlwLT5wYWNrZXQuaGVhZGVyWzBdID0gZGF0YTsKKwlwLT5wYWNrZXQuaGVhZGVyWzFdID0gfmRhdGE7CisJcC0+cGFja2V0LmhlYWRlcl9sZW5ndGggPSA4OworCXAtPnBhY2tldC5wYXlsb2FkX2xlbmd0aCA9IDA7CisJcC0+cGFja2V0LnNwZWVkID0gU0NPREVfMTAwOworCXAtPnBhY2tldC5nZW5lcmF0aW9uID0gZ2VuZXJhdGlvbjsKKwlwLT5wYWNrZXQuY2FsbGJhY2sgPSB0cmFuc21pdF9waHlfcGFja2V0X2NhbGxiYWNrOworCWluaXRfY29tcGxldGlvbigmcC0+ZG9uZSk7CisJa3JlZl9zZXQoJnAtPmtyZWYsIDIpOworCisJY2FyZC0+ZHJpdmVyLT5zZW5kX3JlcXVlc3QoY2FyZCwgJnAtPnBhY2tldCk7CisJdGltZW91dCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmcC0+ZG9uZSwgdGltZW91dCk7CisJa3JlZl9wdXQoJnAtPmtyZWYsIHBoeV9wYWNrZXRfcmVsZWFzZSk7CisKKwkvKiB3aWxsIGxlYWsgcCBpZiB0aGUgY2FsbGJhY2sgaXMgbmV2ZXIgZXhlY3V0ZWQgKi8KKwlXQVJOX09OKHRpbWVvdXQgPT0gMCk7CiB9CiAKIHZvaWQgZndfZmx1c2hfdHJhbnNhY3Rpb25zKHN0cnVjdCBmd19jYXJkICpjYXJkKQpAQCAtNTcyLDcgKzU5MSw4IEBACiAJCWJyZWFrOwogCiAJZGVmYXVsdDoKLQkJQlVHKCk7CisJCWZ3X2Vycm9yKCJFUlJPUiAtIGNvcnJ1cHQgcmVxdWVzdCByZWNlaXZlZCAtICUwOHggJTA4eCAlMDh4XG4iLAorCQkJIHAtPmhlYWRlclswXSwgcC0+aGVhZGVyWzFdLCBwLT5oZWFkZXJbMl0pOwogCQlyZXR1cm4gTlVMTDsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZyBiL2RyaXZlcnMvZmlybXdhcmUvS2NvbmZpZwppbmRleCBkYzJjZWM2Li5lYmI5ZTUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL0tjb25maWcKKysrIGIvZHJpdmVycy9maXJtd2FyZS9LY29uZmlnCkBAIC0yNiw2ICsyNiwxNiBAQAogCSAga2VybmVsLiBTYXkgTiBpZiB5b3Ugd2FudCBFREQgZW5hYmxlZCBieSBkZWZhdWx0LiBFREQgY2FuIGJlIGR5bmFtaWNhbGx5IHNldAogCSAgdXNpbmcgdGhlIGtlcm5lbCBwYXJhbWV0ZXIgJ2VkZD17b258c2tpcG1icnxvZmZ9Jy4KIAorY29uZmlnIEZJUk1XQVJFX01FTU1BUAorICAgIGJvb2wgIkFkZCBmaXJtd2FyZS1wcm92aWRlZCBtZW1vcnkgbWFwIHRvIHN5c2ZzIiBpZiBFTUJFRERFRAorICAgIGRlZmF1bHQgKFg4Nl82NCB8fCBYODZfMzIpCisgICAgaGVscAorICAgICAgQWRkIHRoZSBmaXJtd2FyZS1wcm92aWRlZCAodW5tb2RpZmllZCkgbWVtb3J5IG1hcCB0byAvc3lzL2Zpcm13YXJlL21lbW1hcC4KKyAgICAgIFRoYXQgbWVtb3J5IG1hcCBpcyB1c2VkIGZvciBleGFtcGxlIGJ5IGtleGVjIHRvIHNldCB1cCBwYXJhbWV0ZXIgYXJlYQorICAgICAgZm9yIHRoZSBuZXh0IGtlcm5lbCwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KKworICAgICAgU2VlIGFsc28gRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1maXJtd2FyZS1tZW1tYXAuCisKIGNvbmZpZyBFRklfVkFSUwogCXRyaXN0YXRlICJFRkkgVmFyaWFibGUgU3VwcG9ydCB2aWEgc3lzZnMiCiAJZGVwZW5kcyBvbiBFRkkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvTWFrZWZpbGUgYi9kcml2ZXJzL2Zpcm13YXJlL01ha2VmaWxlCmluZGV4IDRjOTE0NzEuLjFjM2MxNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9maXJtd2FyZS9NYWtlZmlsZQpAQCAtMTAsMyArMTAsNCBAQAogb2JqLSQoQ09ORklHX0RNSUlEKQkJKz0gZG1pLWlkLm8KIG9iai0kKENPTkZJR19JU0NTSV9JQkZUX0ZJTkQpCSs9IGlzY3NpX2liZnRfZmluZC5vCiBvYmotJChDT05GSUdfSVNDU0lfSUJGVCkJKz0gaXNjc2lfaWJmdC5vCitvYmotJChDT05GSUdfRklSTVdBUkVfTUVNTUFQKQkrPSBtZW1tYXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9kZWxsX3JidS5jIGIvZHJpdmVycy9maXJtd2FyZS9kZWxsX3JidS5jCmluZGV4IDZhOGIxZTAuLjc0MzBlMjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvZGVsbF9yYnUuYworKysgYi9kcml2ZXJzL2Zpcm13YXJlL2RlbGxfcmJ1LmMKQEAgLTIyMCw3ICsyMjAsNyBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyBpbnQgcGFja2V0aXplX2RhdGEodm9pZCAqZGF0YSwgc2l6ZV90IGxlbmd0aCkKK3N0YXRpYyBpbnQgcGFja2V0aXplX2RhdGEoY29uc3QgdTggKmRhdGEsIHNpemVfdCBsZW5ndGgpCiB7CiAJaW50IHJjID0gMDsKIAlpbnQgZG9uZSA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMgYi9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMKaW5kZXggYzVlM2VkNy4uNDU1NTc1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9maXJtd2FyZS9kbWlfc2Nhbi5jCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvZG1pX3NjYW4uYwpAQCAtOCw2ICs4LDExIEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGFzbS9kbWkuaD4KIAorLyoKKyAqIERNSSBzdGFuZHMgZm9yICJEZXNrdG9wIE1hbmFnZW1lbnQgSW50ZXJmYWNlIi4gIEl0IGlzIHBhcnQKKyAqIG9mIGFuZCBhbiBhbnRlY2VkZW50IHRvLCBTTUJJT1MsIHdoaWNoIHN0YW5kcyBmb3IgU3lzdGVtCisgKiBNYW5hZ2VtZW50IEJJT1MuICBTZWUgZnVydGhlcjogaHR0cDovL3d3dy5kbXRmLm9yZy9zdGFuZGFyZHMKKyAqLwogc3RhdGljIGNoYXIgZG1pX2VtcHR5X3N0cmluZ1tdID0gIiAgICAgICAgIjsKIAogc3RhdGljIGNvbnN0IGNoYXIgKiBfX2luaXQgZG1pX3N0cmluZ19ub3NhdmUoY29uc3Qgc3RydWN0IGRtaV9oZWFkZXIgKmRtLCB1OCBzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9lZGQuYyBiL2RyaXZlcnMvZmlybXdhcmUvZWRkLmMKaW5kZXggNzQ0MDExOTguLjllNGY1OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZmlybXdhcmUvZWRkLmMKKysrIGIvZHJpdmVycy9maXJtd2FyZS9lZGQuYwpAQCAtNzUzLDcgKzc1Myw3IEBACiAKIAlpZiAoIWVkZF9udW1fZGV2aWNlcygpKSB7CiAJCXByaW50ayhLRVJOX0lORk8gIkVERCBpbmZvcm1hdGlvbiBub3QgYXZhaWxhYmxlLlxuIik7Ci0JCXJldHVybiAxOworCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKIAllZGRfa3NldCA9IGtzZXRfY3JlYXRlX2FuZF9hZGQoImVkZCIsIE5VTEwsIGZpcm13YXJlX2tvYmopOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9maXJtd2FyZS9tZW1tYXAuYyBiL2RyaXZlcnMvZmlybXdhcmUvbWVtbWFwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIzMzk5YwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZmlybXdhcmUvbWVtbWFwLmMKQEAgLTAsMCArMSwyMDUgQEAKKy8qCisgKiBsaW51eC9kcml2ZXJzL2Zpcm13YXJlL21lbW1hcC5jCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNVU0UgTElOVVggUHJvZHVjdHMgR21iSAorICogIGJ5IEJlcm5oYXJkIFdhbGxlIDxid2FsbGVAc3VzZS5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2Mi4wIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS1tYXAuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKworLyoKKyAqIERhdGEgdHlwZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworLyoKKyAqIEZpcm13YXJlIG1hcCBlbnRyeS4gQmVjYXVzZSBmaXJtd2FyZSBtZW1vcnkgbWFwcyBhcmUgZmxhdCBhbmQgbm90CisgKiBoaWVyYXJjaGljYWwsIGl0J3Mgb2sgdG8gb3JnYW5pc2UgdGhlbSBpbiBhIGxpbmtlZCBsaXN0LiBObyBwYXJlbnQKKyAqIGluZm9ybWF0aW9uIGlzIG5lY2Vzc2FyeSBhcyBmb3IgdGhlIHJlc291cmNlIHRyZWUuCisgKi8KK3N0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgeworCXJlc291cmNlX3NpemVfdAkJc3RhcnQ7CS8qIHN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UgKi8KKwlyZXNvdXJjZV9zaXplX3QJCWVuZDsJLyogZW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKGluY2wuKSAqLworCWNvbnN0IGNoYXIJCSp0eXBlOwkvKiB0eXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CS8qIGVudHJ5IGZvciB0aGUgbGlua2VkIGxpc3QgKi8KKwlzdHJ1Y3Qga29iamVjdAkJa29iajsgICAvKiBrb2JqZWN0IGZvciBlYWNoIGVudHJ5ICovCit9OworCisvKgorICogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHNzaXplX3QgbWVtbWFwX2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpOworc3RhdGljIHNzaXplX3Qgc3RhcnRfc2hvdyhzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKK3N0YXRpYyBzc2l6ZV90IGVuZF9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpOworc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpOworCisvKgorICogU3RhdGljIGRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSB7CisJc3RydWN0IGF0dHJpYnV0ZSBhdHRyOworCXNzaXplX3QgKCpzaG93KShzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeSwgY2hhciAqYnVmKTsKK307CisKK3N0cnVjdCBtZW1tYXBfYXR0cmlidXRlIG1lbW1hcF9zdGFydF9hdHRyID0gX19BVFRSX1JPKHN0YXJ0KTsKK3N0cnVjdCBtZW1tYXBfYXR0cmlidXRlIG1lbW1hcF9lbmRfYXR0ciAgID0gX19BVFRSX1JPKGVuZCk7CitzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSBtZW1tYXBfdHlwZV9hdHRyICA9IF9fQVRUUl9STyh0eXBlKTsKKworLyoKKyAqIFRoZXNlIGFyZSBkZWZhdWx0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgYWRkZWQgZm9yIGV2ZXJ5IG1lbW1hcCBlbnRyeS4KKyAqLworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKmRlZl9hdHRyc1tdID0geworCSZtZW1tYXBfc3RhcnRfYXR0ci5hdHRyLAorCSZtZW1tYXBfZW5kX2F0dHIuYXR0ciwKKwkmbWVtbWFwX3R5cGVfYXR0ci5hdHRyLAorCU5VTEwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzZnNfb3BzIG1lbW1hcF9hdHRyX29wcyA9IHsKKwkuc2hvdyA9IG1lbW1hcF9hdHRyX3Nob3csCit9OworCitzdGF0aWMgc3RydWN0IGtvYmpfdHlwZSBtZW1tYXBfa3R5cGUgPSB7CisJLnN5c2ZzX29wcwk9ICZtZW1tYXBfYXR0cl9vcHMsCisJLmRlZmF1bHRfYXR0cnMJPSBkZWZfYXR0cnMsCit9OworCisvKgorICogUmVnaXN0cmF0aW9uIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisvKgorICogRmlybXdhcmUgbWVtb3J5IG1hcCBlbnRyaWVzCisgKi8KK3N0YXRpYyBMSVNUX0hFQUQobWFwX2VudHJpZXMpOworCisvKioKKyAqIENvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiBmaXJtd2FyZV9tYXBfYWRkKCkgYW5kIGZpcm13YXJlX21hcF9hZGRfZWFybHkoKQorICogd2hpY2ggZXhwZWN0cyBhIHByZS1hbGxvY2F0ZWQgc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeS4KKyAqCisgKiBAc3RhcnQ6IFN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW5kOiAgIEVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsdXNpdmUpLgorICogQHR5cGU6ICBUeXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW50cnk6IFByZS1hbGxvY2F0ZWQgKGVpdGhlciBrbWFsbG9jKCkgb3IgYm9vdG1lbSBhbGxvY2F0b3IpLCB1bmluaXRpYWxpc2VkCisgKiAgICAgICAgIGVudHJ5LgorICovCitzdGF0aWMgaW50IGZpcm13YXJlX21hcF9hZGRfZW50cnkocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkJCSAgY29uc3QgY2hhciAqdHlwZSwKKwkJCQkgIHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5KQoreworCUJVR19PTihzdGFydCA+IGVuZCk7CisKKwllbnRyeS0+c3RhcnQgPSBzdGFydDsKKwllbnRyeS0+ZW5kID0gZW5kOworCWVudHJ5LT50eXBlID0gdHlwZTsKKwlJTklUX0xJU1RfSEVBRCgmZW50cnktPmxpc3QpOworCWtvYmplY3RfaW5pdCgmZW50cnktPmtvYmosICZtZW1tYXBfa3R5cGUpOworCisJbGlzdF9hZGRfdGFpbCgmZW50cnktPmxpc3QsICZtYXBfZW50cmllcyk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlZSA8bGludXgvZmlybXdhcmUtbWFwLmg+IGZvciBkb2N1bWVudGF0aW9uLgorICovCitpbnQgZmlybXdhcmVfbWFwX2FkZChyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCisJCSAgICAgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSksIEdGUF9BVE9NSUMpOworCVdBUk5fT04oIWVudHJ5KTsKKwlpZiAoIWVudHJ5KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJldHVybiBmaXJtd2FyZV9tYXBfYWRkX2VudHJ5KHN0YXJ0LCBlbmQsIHR5cGUsIGVudHJ5KTsKK30KKworLyoKKyAqIFNlZSA8bGludXgvZmlybXdhcmUtbWFwLmg+IGZvciBkb2N1bWVudGF0aW9uLgorICovCitpbnQgX19pbml0IGZpcm13YXJlX21hcF9hZGRfZWFybHkocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkJCSAgY29uc3QgY2hhciAqdHlwZSkKK3sKKwlzdHJ1Y3QgZmlybXdhcmVfbWFwX2VudHJ5ICplbnRyeTsKKworCWVudHJ5ID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkpKTsKKwlXQVJOX09OKCFlbnRyeSk7CisJaWYgKCFlbnRyeSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gZmlybXdhcmVfbWFwX2FkZF9lbnRyeShzdGFydCwgZW5kLCB0eXBlLCBlbnRyeSk7Cit9CisKKy8qCisgKiBTeXNmcyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKK3N0YXRpYyBzc2l6ZV90IHN0YXJ0X3Nob3coc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnksIGNoYXIgKmJ1ZikKK3sKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIweCVsbHhcbiIsIGVudHJ5LT5zdGFydCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGVuZF9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiMHglbGx4XG4iLCBlbnRyeS0+ZW5kKTsKK30KKworc3RhdGljIHNzaXplX3QgdHlwZV9zaG93KHN0cnVjdCBmaXJtd2FyZV9tYXBfZW50cnkgKmVudHJ5LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiJXNcbiIsIGVudHJ5LT50eXBlKTsKK30KKworI2RlZmluZSB0b19tZW1tYXBfYXR0cihfYXR0cikgY29udGFpbmVyX29mKF9hdHRyLCBzdHJ1Y3QgbWVtbWFwX2F0dHJpYnV0ZSwgYXR0cikKKyNkZWZpbmUgdG9fbWVtbWFwX2VudHJ5KG9iaikgY29udGFpbmVyX29mKG9iaiwgc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSwga29iaikKKworc3RhdGljIHNzaXplX3QgbWVtbWFwX2F0dHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAqa29iaiwKKwkJCQlzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCit7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnkgPSB0b19tZW1tYXBfZW50cnkoa29iaik7CisJc3RydWN0IG1lbW1hcF9hdHRyaWJ1dGUgKm1lbW1hcF9hdHRyID0gdG9fbWVtbWFwX2F0dHIoYXR0cik7CisKKwlyZXR1cm4gbWVtbWFwX2F0dHItPnNob3coZW50cnksIGJ1Zik7Cit9CisKKy8qCisgKiBJbml0aWFsaXNlcyBzdHVmZiBhbmQgYWRkcyB0aGUgZW50cmllcyBpbiB0aGUgbWFwX2VudHJpZXMgbGlzdCB0bworICogc3lzZnMuIEltcG9ydGFudCBpcyB0aGF0IGZpcm13YXJlX21hcF9hZGQoKSBhbmQgZmlybXdhcmVfbWFwX2FkZF9lYXJseSgpCisgKiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbGF0ZV9pbml0Y2FsbC4KKyAqLworc3RhdGljIGludCBfX2luaXQgbWVtbWFwX2luaXQodm9pZCkKK3sKKwlpbnQgaSA9IDA7CisJc3RydWN0IGZpcm13YXJlX21hcF9lbnRyeSAqZW50cnk7CisJc3RydWN0IGtzZXQgKm1lbW1hcF9rc2V0OworCisJbWVtbWFwX2tzZXQgPSBrc2V0X2NyZWF0ZV9hbmRfYWRkKCJtZW1tYXAiLCBOVUxMLCBmaXJtd2FyZV9rb2JqKTsKKwlXQVJOX09OKCFtZW1tYXBfa3NldCk7CisJaWYgKCFtZW1tYXBfa3NldCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmbWFwX2VudHJpZXMsIGxpc3QpIHsKKwkJZW50cnktPmtvYmoua3NldCA9IG1lbW1hcF9rc2V0OworCQlrb2JqZWN0X2FkZCgmZW50cnktPmtvYmosIE5VTEwsICIlZCIsIGkrKyk7CisJfQorCisJcmV0dXJuIDA7Cit9CitsYXRlX2luaXRjYWxsKG1lbW1hcF9pbml0KTsKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL0tjb25maWcgYi9kcml2ZXJzL2dwaW8vS2NvbmZpZwppbmRleCBiYmQyODM0Li4wMDhjMzhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vS2NvbmZpZworKysgYi9kcml2ZXJzL2dwaW8vS2NvbmZpZwpAQCAtMjgsMTIgKzI4LDE4IEBACiBjb21tZW50ICJJMkMgR1BJTyBleHBhbmRlcnM6IgogCiBjb25maWcgR1BJT19QQ0E5NTNYCi0JdHJpc3RhdGUgIlBDQTk1M3ggSS9PIHBvcnRzIgorCXRyaXN0YXRlICJQQ0E5NTN4LCBQQ0E5NTV4LCBhbmQgTUFYNzMxMCBJL08gcG9ydHMiCiAJZGVwZW5kcyBvbiBJMkMKIAloZWxwCi0JICBTYXkgeWVzIGhlcmUgdG8gc3VwcG9ydCB0aGUgUENBOTUzNCAoOC1iaXQpLCBQQ0E5NTM1ICgxNi1iaXQpLAotCSAgUENBOTUzNiAoNC1iaXQpLCBQQ0E5NTM3ICg0LWJpdCksIFBDQTk1MzggKDgtYml0KSwgYW5kIFBDQTk1MzkKLQkgICgxNi1iaXQpIEkvTyBwb3J0cy4gVGhlc2UgcGFydHMgYXJlIG1hZGUgYnkgTlhQIGFuZCBUSS4KKwkgIFNheSB5ZXMgaGVyZSB0byBwcm92aWRlIGFjY2VzcyB0byBzZXZlcmFsIHJlZ2lzdGVyLW9yaWVudGVkCisJICBTTUJ1cyBJL08gZXhwYW5kZXJzLCBtYWRlIG1vc3RseSBieSBOWFAgb3IgVEkuICBDb21wYXRpYmxlCisJICBtb2RlbHMgaW5jbHVkZToKKworCSAgNCBiaXRzOglwY2E5NTM2LCBwY2E5NTM3CisKKwkgIDggYml0czoJbWF4NzMxMCwgcGNhOTUzNCwgcGNhOTUzOCwgcGNhOTU1NCwgcGNhOTU1NworCisJICAxNiBiaXRzOglwY2E5NTM1LCBwY2E5NTM5LCBwY2E5NTU1CiAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHBjYTk1M3guCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jIGIvZHJpdmVycy9ncGlvL2dwaW9saWIuYwppbmRleCA3ZjEzOGM2Li5iZWFmNmIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vZ3Bpb2xpYi5jCisrKyBiL2RyaXZlcnMvZ3Bpby9ncGlvbGliLmMKQEAgLTEyNyw3ICsxMjcsNyBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CiAKLQlpZiAoIWdwaW9faXNfdmFsaWQoc3RhcnQpIHx8ICFncGlvX2lzX3ZhbGlkKHN0YXJ0ICsgbmdwaW8pKQorCWlmICghZ3Bpb19pc192YWxpZChzdGFydCkgfHwgIWdwaW9faXNfdmFsaWQoc3RhcnQgKyBuZ3BpbyAtIDEpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZncGlvX2xvY2ssIGZsYWdzKTsKQEAgLTE3MCw3ICsxNzAsNyBAQAogCXVuc2lnbmVkCWlkOwogCWludAkJYmFzZSA9IGNoaXAtPmJhc2U7CiAKLQlpZiAoKCFncGlvX2lzX3ZhbGlkKGJhc2UpIHx8ICFncGlvX2lzX3ZhbGlkKGJhc2UgKyBjaGlwLT5uZ3BpbykpCisJaWYgKCghZ3Bpb19pc192YWxpZChiYXNlKSB8fCAhZ3Bpb19pc192YWxpZChiYXNlICsgY2hpcC0+bmdwaW8gLSAxKSkKIAkJCSYmIGJhc2UgPj0gMCkgewogCQlzdGF0dXMgPSAtRUlOVkFMOwogCQlnb3RvIGZhaWw7CkBAIC0yMDcsNyArMjA3LDcgQEAKIAkvKiBmYWlsdXJlcyBoZXJlIGNhbiBtZWFuIHN5c3RlbXMgd29uJ3QgYm9vdC4uLiAqLwogCWlmIChzdGF0dXMpCiAJCXByX2VycigiZ3Bpb2NoaXBfYWRkOiBncGlvcyAlZC4uJWQgKCVzKSBub3QgcmVnaXN0ZXJlZFxuIiwKLQkJCWNoaXAtPmJhc2UsIGNoaXAtPmJhc2UgKyBjaGlwLT5uZ3BpbywKKwkJCWNoaXAtPmJhc2UsIGNoaXAtPmJhc2UgKyBjaGlwLT5uZ3BpbyAtIDEsCiAJCQljaGlwLT5sYWJlbCA/IDogImdlbmVyaWMiKTsKIAlyZXR1cm4gc3RhdHVzOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlvL21jcDIzczA4LmMgYi9kcml2ZXJzL2dwaW8vbWNwMjNzMDguYwppbmRleCA3ZmI1YjlkLi43ZjkyZmRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vbWNwMjNzMDguYworKysgYi9kcml2ZXJzL2dwaW8vbWNwMjNzMDguYwpAQCAtMTY4LDcgKzE2OCw3IEBACiB7CiAJc3RydWN0IG1jcDIzczA4CSptY3A7CiAJY2hhcgkJYmFuazsKLQl1bnNpZ25lZAl0OworCWludAkJdDsKIAl1bnNpZ25lZAltYXNrOwogCiAJbWNwID0gY29udGFpbmVyX29mKGNoaXAsIHN0cnVjdCBtY3AyM3MwOCwgY2hpcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwaW8vcGNhOTUzeC5jIGIvZHJpdmVycy9ncGlvL3BjYTk1M3guYwppbmRleCA5M2Y5MTY3Li5hMzgwNzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwaW8vcGNhOTUzeC5jCisrKyBiL2RyaXZlcnMvZ3Bpby9wY2E5NTN4LmMKQEAgLTMwLDkgKzMwLDEwIEBACiAJeyAicGNhOTUzNyIsIDQsIH0sCiAJeyAicGNhOTUzOCIsIDgsIH0sCiAJeyAicGNhOTUzOSIsIDE2LCB9LAorCXsgInBjYTk1NTQiLCA4LCB9LAogCXsgInBjYTk1NTUiLCAxNiwgfSwKIAl7ICJwY2E5NTU3IiwgOCwgfSwKLQkvKiBSRVZJU0lUIHNldmVyYWwgcGNhOTU1eCBwYXJ0cyBzaG91bGQgd29yayBoZXJlIHRvbyAqLworCXsgIm1heDczMTAiLCA4LCB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBwY2E5NTN4X2lkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU1NjZjZgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L01ha2VmaWxlCkBAIC0wLDAgKzEgQEAKK29iai15CQkJKz0gZHJtLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vS2NvbmZpZwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL0tjb25maWcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWY5YTk3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlCkBAIC0wLDAgKzEsMjYgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KKworZHJtLXkgICAgICAgOj0JZHJtX2F1dGgubyBkcm1fYnVmcy5vIGRybV9jb250ZXh0Lm8gZHJtX2RtYS5vIGRybV9kcmF3YWJsZS5vIFwKKwkJZHJtX2Rydi5vIGRybV9mb3BzLm8gZHJtX2lvY3RsLm8gZHJtX2lycS5vIFwKKwkJZHJtX2xvY2subyBkcm1fbWVtb3J5Lm8gZHJtX3Byb2MubyBkcm1fc3R1Yi5vIGRybV92bS5vIFwKKwkJZHJtX2FncHN1cHBvcnQubyBkcm1fc2NhdHRlci5vIGF0aV9wY2lnYXJ0Lm8gZHJtX3BjaS5vIFwKKwkJZHJtX3N5c2ZzLm8gZHJtX2hhc2h0YWIubyBkcm1fc21hbi5vIGRybV9tbS5vCisKK2RybS0kKENPTkZJR19DT01QQVQpICs9IGRybV9pb2MzMi5vCisKK29iai0kKENPTkZJR19EUk0pCSs9IGRybS5vCitvYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngvCitvYmotJChDT05GSUdfRFJNX1IxMjgpCSs9IHIxMjgvCitvYmotJChDT05GSUdfRFJNX1JBREVPTikrPSByYWRlb24vCitvYmotJChDT05GSUdfRFJNX01HQSkJKz0gbWdhLworb2JqLSQoQ09ORklHX0RSTV9JODEwKQkrPSBpODEwLworb2JqLSQoQ09ORklHX0RSTV9JODMwKQkrPSBpODMwLworb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS8KK29iai0kKENPTkZJR19EUk1fU0lTKSAgICs9IHNpcy8KK29iai0kKENPTkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS8KK29iai0kKENPTkZJR19EUk1fVklBKQkrPXZpYS8KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9SRUFETUUuZHJtIGIvZHJpdmVycy9ncHUvZHJtL1JFQURNRS5kcm0Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vUkVBRE1FLmRybQpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL1JFQURNRS5kcm0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jIGIvZHJpdmVycy9ncHUvZHJtL2F0aV9wY2lnYXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUzM2QwYwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hdGlfcGNpZ2FydC5jCkBAIC0wLDAgKzEsMTgxIEBACisvKioKKyAqIFxmaWxlIGF0aV9wY2lnYXJ0LmMKKyAqIEFUSSBQQ0kgR0FSVCBzdXBwb3J0CisgKgorICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworLyoKKyAqIENyZWF0ZWQ6IFdlZCBEZWMgMTMgMjE6NTI6MTkgMjAwMCBieSBnYXJldGhAdmFsaW51eC5jb20KKyAqCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSAiZHJtUC5oIgorCisjIGRlZmluZSBBVElfUENJR0FSVF9QQUdFX1NJWkUJCTQwOTYJLyoqPCBQQ0kgR0FSVCBwYWdlIHNpemUgKi8KKworc3RhdGljIGludCBkcm1fYXRpX2FsbG9jX3BjaWdhcnRfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICpnYXJ0X2luZm8pCit7CisJZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUgPSBkcm1fcGNpX2FsbG9jKGRldiwgZ2FydF9pbmZvLT50YWJsZV9zaXplLAorCQkJCQkJUEFHRV9TSVpFLAorCQkJCQkJZ2FydF9pbmZvLT50YWJsZV9tYXNrKTsKKwlpZiAoZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZHJtX2F0aV9mcmVlX3BjaWdhcnRfdGFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgICAgc3RydWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICpnYXJ0X2luZm8pCit7CisJZHJtX3BjaV9mcmVlKGRldiwgZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUpOworCWdhcnRfaW5mby0+dGFibGVfaGFuZGxlID0gTlVMTDsKK30KKworaW50IGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqZ2FydF9pbmZvKQoreworCXN0cnVjdCBkcm1fc2dfbWVtICplbnRyeSA9IGRldi0+c2c7CisJdW5zaWduZWQgbG9uZyBwYWdlczsKKwlpbnQgaTsKKwlpbnQgbWF4X3BhZ2VzOworCisJLyogd2UgbmVlZCB0byBzdXBwb3J0IGxhcmdlIG1lbW9yeSBjb25maWd1cmF0aW9ucyAqLworCWlmICghZW50cnkpIHsKKwkJRFJNX0VSUk9SKCJubyBzY2F0dGVyL2dhdGhlciBtZW1vcnkhXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaWYgKGdhcnRfaW5mby0+YnVzX2FkZHIpIHsKKworCQltYXhfcGFnZXMgPSAoZ2FydF9pbmZvLT50YWJsZV9zaXplIC8gc2l6ZW9mKHUzMikpOworCQlwYWdlcyA9IChlbnRyeS0+cGFnZXMgPD0gbWF4X3BhZ2VzKQorCQkgID8gZW50cnktPnBhZ2VzIDogbWF4X3BhZ2VzOworCisJCWZvciAoaSA9IDA7IGkgPCBwYWdlczsgaSsrKSB7CisJCQlpZiAoIWVudHJ5LT5idXNhZGRyW2ldKQorCQkJCWJyZWFrOworCQkJcGNpX3VubWFwX3BhZ2UoZGV2LT5wZGV2LCBlbnRyeS0+YnVzYWRkcltpXSwKKwkJCQkJIFBBR0VfU0laRSwgUENJX0RNQV9UT0RFVklDRSk7CisJCX0KKworCQlpZiAoZ2FydF9pbmZvLT5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9NQUlOKQorCQkJZ2FydF9pbmZvLT5idXNfYWRkciA9IDA7CisJfQorCisJaWYgKGdhcnRfaW5mby0+Z2FydF90YWJsZV9sb2NhdGlvbiA9PSBEUk1fQVRJX0dBUlRfTUFJTiAmJgorCSAgICBnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZSkgeworCQlkcm1fYXRpX2ZyZWVfcGNpZ2FydF90YWJsZShkZXYsIGdhcnRfaW5mbyk7CisJfQorCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKTsKKworaW50IGRybV9hdGlfcGNpZ2FydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqZ2FydF9pbmZvKQoreworCXN0cnVjdCBkcm1fc2dfbWVtICplbnRyeSA9IGRldi0+c2c7CisJdm9pZCAqYWRkcmVzcyA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBwYWdlczsKKwl1MzIgKnBjaV9nYXJ0LCBwYWdlX2Jhc2U7CisJZG1hX2FkZHJfdCBidXNfYWRkcmVzcyA9IDA7CisJaW50IGksIGosIHJldCA9IDA7CisJaW50IG1heF9wYWdlczsKKworCWlmICghZW50cnkpIHsKKwkJRFJNX0VSUk9SKCJubyBzY2F0dGVyL2dhdGhlciBtZW1vcnkhXG4iKTsKKwkJZ290byBkb25lOworCX0KKworCWlmIChnYXJ0X2luZm8tPmdhcnRfdGFibGVfbG9jYXRpb24gPT0gRFJNX0FUSV9HQVJUX01BSU4pIHsKKwkJRFJNX0RFQlVHKCJQQ0k6IG5vIHRhYmxlIGluIFZSQU06IHVzaW5nIG5vcm1hbCBSQU1cbiIpOworCisJCXJldCA9IGRybV9hdGlfYWxsb2NfcGNpZ2FydF90YWJsZShkZXYsIGdhcnRfaW5mbyk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9FUlJPUigiY2Fubm90IGFsbG9jYXRlIFBDSSBHQVJUIHBhZ2UhXG4iKTsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCisJCWFkZHJlc3MgPSBnYXJ0X2luZm8tPnRhYmxlX2hhbmRsZS0+dmFkZHI7CisJCWJ1c19hZGRyZXNzID0gZ2FydF9pbmZvLT50YWJsZV9oYW5kbGUtPmJ1c2FkZHI7CisJfSBlbHNlIHsKKwkJYWRkcmVzcyA9IGdhcnRfaW5mby0+YWRkcjsKKwkJYnVzX2FkZHJlc3MgPSBnYXJ0X2luZm8tPmJ1c19hZGRyOworCQlEUk1fREVCVUcoIlBDSTogR2FydCBUYWJsZTogVlJBTSAlMDhMWCBtYXBwZWQgYXQgJTA4bFhcbiIsCisJCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpYnVzX2FkZHJlc3MsCisJCQkgICh1bnNpZ25lZCBsb25nKWFkZHJlc3MpOworCX0KKworCXBjaV9nYXJ0ID0gKHUzMiAqKSBhZGRyZXNzOworCisJbWF4X3BhZ2VzID0gKGdhcnRfaW5mby0+dGFibGVfc2l6ZSAvIHNpemVvZih1MzIpKTsKKwlwYWdlcyA9IChlbnRyeS0+cGFnZXMgPD0gbWF4X3BhZ2VzKQorCSAgICA/IGVudHJ5LT5wYWdlcyA6IG1heF9wYWdlczsKKworCW1lbXNldChwY2lfZ2FydCwgMCwgbWF4X3BhZ2VzICogc2l6ZW9mKHUzMikpOworCisJZm9yIChpID0gMDsgaSA8IHBhZ2VzOyBpKyspIHsKKwkJLyogd2UgbmVlZCB0byBzdXBwb3J0IGxhcmdlIG1lbW9yeSBjb25maWd1cmF0aW9ucyAqLworCQllbnRyeS0+YnVzYWRkcltpXSA9IHBjaV9tYXBfcGFnZShkZXYtPnBkZXYsIGVudHJ5LT5wYWdlbGlzdFtpXSwKKwkJCQkJCSAwLCBQQUdFX1NJWkUsIFBDSV9ETUFfVE9ERVZJQ0UpOworCQlpZiAoZW50cnktPmJ1c2FkZHJbaV0gPT0gMCkgeworCQkJRFJNX0VSUk9SKCJ1bmFibGUgdG8gbWFwIFBDSUdBUlQgcGFnZXMhXG4iKTsKKwkJCWRybV9hdGlfcGNpZ2FydF9jbGVhbnVwKGRldiwgZ2FydF9pbmZvKTsKKwkJCWFkZHJlc3MgPSBOVUxMOworCQkJYnVzX2FkZHJlc3MgPSAwOworCQkJZ290byBkb25lOworCQl9CisJCXBhZ2VfYmFzZSA9ICh1MzIpIGVudHJ5LT5idXNhZGRyW2ldOworCisJCWZvciAoaiA9IDA7IGogPCAoUEFHRV9TSVpFIC8gQVRJX1BDSUdBUlRfUEFHRV9TSVpFKTsgaisrKSB7CisJCQlzd2l0Y2goZ2FydF9pbmZvLT5nYXJ0X3JlZ19pZikgeworCQkJY2FzZSBEUk1fQVRJX0dBUlRfSUdQOgorCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKChwYWdlX2Jhc2UpIHwgMHhjKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRFJNX0FUSV9HQVJUX1BDSUU6CisJCQkJKnBjaV9nYXJ0ID0gY3B1X3RvX2xlMzIoKHBhZ2VfYmFzZSA+PiA4KSB8IDB4Yyk7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJY2FzZSBEUk1fQVRJX0dBUlRfUENJOgorCQkJCSpwY2lfZ2FydCA9IGNwdV90b19sZTMyKHBhZ2VfYmFzZSk7CisJCQkJYnJlYWs7CisJCQl9CisJCQlwY2lfZ2FydCsrOworCQkJcGFnZV9iYXNlICs9IEFUSV9QQ0lHQVJUX1BBR0VfU0laRTsKKwkJfQorCX0KKwlyZXQgPSAxOworCisjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorCXdiaW52ZCgpOworI2Vsc2UKKwltYigpOworI2VuZGlmCisKKyAgICAgIGRvbmU6CisJZ2FydF9pbmZvLT5hZGRyID0gYWRkcmVzczsKKwlnYXJ0X2luZm8tPmJ1c19hZGRyID0gYnVzX2FkZHJlc3M7CisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0aV9wY2lnYXJ0X2luaXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fYWdwc3VwcG9ydC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hZ3BzdXBwb3J0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2FncHN1cHBvcnQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9hZ3BzdXBwb3J0LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2F1dGguYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9hdXRoLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXV0aC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9idWZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2J1ZnMuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fYnVmcy5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2J1ZnMuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb250ZXh0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2NvbnRleHQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9jb250ZXh0LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2RyYXdhYmxlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RyYXdhYmxlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX2RyYXdhYmxlLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHJhd2FibGUuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY0MTM4NwotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTAsMCArMSw1NDAgQEAKKy8qKgorICogXGZpbGUgZHJtX2Rydi5jCisgKiBHZW5lcmljIGRyaXZlciB0ZW1wbGF0ZQorICoKKyAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KKyAqCisgKiBUbyB1c2UgdGhpcyB0ZW1wbGF0ZSwgeW91IG11c3QgYXQgbGVhc3QgZGVmaW5lIHRoZSBmb2xsb3dpbmcgKHNhbXBsZXMKKyAqIGdpdmVuIGZvciB0aGUgTUdBIGRyaXZlcik6CisgKgorICogXGNvZGUKKyAqICNkZWZpbmUgRFJJVkVSX0FVVEhPUgkiVkEgTGludXggU3lzdGVtcywgSW5jLiIKKyAqCisgKiAjZGVmaW5lIERSSVZFUl9OQU1FCQkibWdhIgorICogI2RlZmluZSBEUklWRVJfREVTQwkJIk1hdHJveCBHMjAwL0c0MDAiCisgKiAjZGVmaW5lIERSSVZFUl9EQVRFCQkiMjAwMDExMjciCisgKgorICogI2RlZmluZSBkcm1feAkJbWdhXyMjeAorICogXGVuZGNvZGUKKyAqLworCisvKgorICogQ3JlYXRlZDogVGh1IE5vdiAyMyAwMzoxMDo1MCAyMDAwIGJ5IGdhcmV0aEB2YWxpbnV4LmNvbQorICoKKyAqIENvcHlyaWdodCAxOTk5LCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm1fY29yZS5oIgorCitzdGF0aWMgaW50IGRybV92ZXJzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKy8qKiBJb2N0bCB0YWJsZSAqLworc3RhdGljIHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7CisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfVkVSU0lPTiwgZHJtX3ZlcnNpb24sIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9VTklRVUUsIGRybV9nZXR1bmlxdWUsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9NQUdJQywgZHJtX2dldG1hZ2ljLCAwKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9JUlFfQlVTSUQsIGRybV9pcnFfYnlfYnVzaWQsIERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX01BUCwgZHJtX2dldG1hcCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX0NMSUVOVCwgZHJtX2dldGNsaWVudCwgMCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1NUQVRTLCBkcm1fZ2V0c3RhdHMsIDApLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9WRVJTSU9OLCBkcm1fc2V0dmVyc2lvbiwgRFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NFVF9VTklRVUUsIGRybV9zZXR1bmlxdWUsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQkxPQ0ssIGRybV9ub29wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1VOQkxPQ0ssIGRybV9ub29wLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FVVEhfTUFHSUMsIGRybV9hdXRobWFnaWMsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfTUFQLCBkcm1fYWRkbWFwX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1JNX01BUCwgZHJtX3JtbWFwX2lvY3RsLCBEUk1fQVVUSCksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TRVRfU0FSRUFfQ1RYLCBkcm1fc2V0c2FyZWFjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfR0VUX1NBUkVBX0NUWCwgZHJtX2dldHNhcmVhY3R4LCBEUk1fQVVUSCksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BRERfQ1RYLCBkcm1fYWRkY3R4LCBEUk1fQVVUSHxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9STV9DVFgsIGRybV9ybWN0eCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RfQ1RYLCBkcm1fbW9kY3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0dFVF9DVFgsIGRybV9nZXRjdHgsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TV0lUQ0hfQ1RYLCBkcm1fc3dpdGNoY3R4LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX05FV19DVFgsIGRybV9uZXdjdHgsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfUkVTX0NUWCwgZHJtX3Jlc2N0eCwgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUREX0RSQVcsIGRybV9hZGRkcmF3LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1JNX0RSQVcsIGRybV9ybWRyYXcsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9MT0NLLCBkcm1fbG9jaywgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1VOTE9DSywgZHJtX3VubG9jaywgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfRklOSVNILCBkcm1fbm9vcCwgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUREX0JVRlMsIGRybV9hZGRidWZzLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01BUktfQlVGUywgZHJtX21hcmtidWZzLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0lORk9fQlVGUywgZHJtX2luZm9idWZzLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTUFQX0JVRlMsIGRybV9tYXBidWZzLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfRlJFRV9CVUZTLCBkcm1fZnJlZWJ1ZnMsIERSTV9BVVRIKSwKKwkvKiBUaGUgRFJNX0lPQ1RMX0RNQSBpb2N0bCBzaG91bGQgYmUgZGVmaW5lZCBieSB0aGUgZHJpdmVyLiAqLworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0RNQSwgTlVMTCwgRFJNX0FVVEgpLAorCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQ09OVFJPTCwgZHJtX2NvbnRyb2wsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisKKyNpZiBfX09TX0hBU19BR1AKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfQUNRVUlSRSwgZHJtX2FncF9hY3F1aXJlX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9SRUxFQVNFLCBkcm1fYWdwX3JlbGVhc2VfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0VOQUJMRSwgZHJtX2FncF9lbmFibGVfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX0lORk8sIGRybV9hZ3BfaW5mb19pb2N0bCwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9BTExPQywgZHJtX2FncF9hbGxvY19pb2N0bCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9BR1BfRlJFRSwgZHJtX2FncF9mcmVlX2lvY3RsLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX0FHUF9CSU5ELCBkcm1fYWdwX2JpbmRfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfQUdQX1VOQklORCwgZHJtX2FncF91bmJpbmRfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisjZW5kaWYKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NHX0FMTE9DLCBkcm1fc2dfYWxsb2NfaW9jdGwsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU0dfRlJFRSwgZHJtX3NnX2ZyZWUsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisKKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgZHJtX3dhaXRfdmJsYW5rLCAwKSwKKworCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1VQREFURV9EUkFXLCBkcm1fdXBkYXRlX2RyYXdhYmxlX2luZm8sIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCit9OworCisjZGVmaW5lIERSTV9DT1JFX0lPQ1RMX0NPVU5UCUFSUkFZX1NJWkUoIGRybV9pb2N0bHMgKQorCisvKioKKyAqIFRha2UgZG93biB0aGUgRFJNIGRldmljZS4KKyAqCisgKiBccGFyYW0gZGV2IERSTSBkZXZpY2Ugc3RydWN0dXJlLgorICoKKyAqIEZyZWVzIGV2ZXJ5IHJlc291cmNlIGluIFxwIGRldi4KKyAqCisgKiBcc2EgZHJtX2RldmljZQorICovCitpbnQgZHJtX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX21hZ2ljX2VudHJ5ICpwdCwgKm5leHQ7CisJc3RydWN0IGRybV9tYXBfbGlzdCAqcl9saXN0LCAqbGlzdF90OworCXN0cnVjdCBkcm1fdm1hX2VudHJ5ICp2bWEsICp2bWFfdGVtcDsKKwlpbnQgaTsKKworCURSTV9ERUJVRygiXG4iKTsKKworCWlmIChkZXYtPmRyaXZlci0+bGFzdGNsb3NlKQorCQlkZXYtPmRyaXZlci0+bGFzdGNsb3NlKGRldik7CisJRFJNX0RFQlVHKCJkcml2ZXIgbGFzdGNsb3NlIGNvbXBsZXRlZFxuIik7CisKKwlpZiAoZGV2LT51bmlxdWUpIHsKKwkJZHJtX2ZyZWUoZGV2LT51bmlxdWUsIHN0cmxlbihkZXYtPnVuaXF1ZSkgKyAxLCBEUk1fTUVNX0RSSVZFUik7CisJCWRldi0+dW5pcXVlID0gTlVMTDsKKwkJZGV2LT51bmlxdWVfbGVuID0gMDsKKwl9CisKKwlpZiAoZGV2LT5pcnFfZW5hYmxlZCkKKwkJZHJtX2lycV91bmluc3RhbGwoZGV2KTsKKworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCS8qIEZyZWUgZHJhd2FibGUgaW5mb3JtYXRpb24gbWVtb3J5ICovCisJZHJtX2RyYXdhYmxlX2ZyZWVfYWxsKGRldik7CisJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKKworCS8qIENsZWFyIHBpZCBsaXN0ICovCisJaWYgKGRldi0+bWFnaWNmcmVlLm5leHQpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHB0LCBuZXh0LCAmZGV2LT5tYWdpY2ZyZWUsIGhlYWQpIHsKKwkJCWxpc3RfZGVsKCZwdC0+aGVhZCk7CisJCQlkcm1faHRfcmVtb3ZlX2l0ZW0oJmRldi0+bWFnaWNsaXN0LCAmcHQtPmhhc2hfaXRlbSk7CisJCQlkcm1fZnJlZShwdCwgc2l6ZW9mKCpwdCksIERSTV9NRU1fTUFHSUMpOworCQl9CisJCWRybV9odF9yZW1vdmUoJmRldi0+bWFnaWNsaXN0KTsKKwl9CisKKwkvKiBDbGVhciBBR1AgaW5mb3JtYXRpb24gKi8KKwlpZiAoZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmIGRldi0+YWdwKSB7CisJCXN0cnVjdCBkcm1fYWdwX21lbSAqZW50cnksICp0ZW1wZTsKKworCQkvKiBSZW1vdmUgQUdQIHJlc291cmNlcywgYnV0IGxlYXZlIGRldi0+YWdwCisJCSAgIGludGFjdCB1bnRpbCBkcnZfY2xlYW51cCBpcyBjYWxsZWQuICovCisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwgdGVtcGUsICZkZXYtPmFncC0+bWVtb3J5LCBoZWFkKSB7CisJCQlpZiAoZW50cnktPmJvdW5kKQorCQkJCWRybV91bmJpbmRfYWdwKGVudHJ5LT5tZW1vcnkpOworCQkJZHJtX2ZyZWVfYWdwKGVudHJ5LT5tZW1vcnksIGVudHJ5LT5wYWdlcyk7CisJCQlkcm1fZnJlZShlbnRyeSwgc2l6ZW9mKCplbnRyeSksIERSTV9NRU1fQUdQTElTVFMpOworCQl9CisJCUlOSVRfTElTVF9IRUFEKCZkZXYtPmFncC0+bWVtb3J5KTsKKworCQlpZiAoZGV2LT5hZ3AtPmFjcXVpcmVkKQorCQkJZHJtX2FncF9yZWxlYXNlKGRldik7CisKKwkJZGV2LT5hZ3AtPmFjcXVpcmVkID0gMDsKKwkJZGV2LT5hZ3AtPmVuYWJsZWQgPSAwOworCX0KKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TRykgJiYgZGV2LT5zZykgeworCQlkcm1fc2dfY2xlYW51cChkZXYtPnNnKTsKKwkJZGV2LT5zZyA9IE5VTEw7CisJfQorCisJLyogQ2xlYXIgdm1hIGxpc3QgKG9ubHkgYnVpbHQgZm9yIGRlYnVnZ2luZykgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2bWFfdGVtcCwgJmRldi0+dm1hbGlzdCwgaGVhZCkgeworCQlsaXN0X2RlbCgmdm1hLT5oZWFkKTsKKwkJZHJtX2ZyZWUodm1hLCBzaXplb2YoKnZtYSksIERSTV9NRU1fVk1BUyk7CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJfbGlzdCwgbGlzdF90LCAmZGV2LT5tYXBsaXN0LCBoZWFkKSB7CisJCWlmICghKHJfbGlzdC0+bWFwLT5mbGFncyAmIF9EUk1fRFJJVkVSKSkgeworCQkJZHJtX3JtbWFwX2xvY2tlZChkZXYsIHJfbGlzdC0+bWFwKTsKKwkJCXJfbGlzdCA9IE5VTEw7CisJCX0KKwl9CisKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9ETUFfUVVFVUUpICYmIGRldi0+cXVldWVsaXN0KSB7CisJCWZvciAoaSA9IDA7IGkgPCBkZXYtPnF1ZXVlX2NvdW50OyBpKyspIHsKKwkJCWlmIChkZXYtPnF1ZXVlbGlzdFtpXSkgeworCQkJCWRybV9mcmVlKGRldi0+cXVldWVsaXN0W2ldLAorCQkJCQkgc2l6ZW9mKCpkZXYtPnF1ZXVlbGlzdFswXSksCisJCQkJCSBEUk1fTUVNX1FVRVVFUyk7CisJCQkJZGV2LT5xdWV1ZWxpc3RbaV0gPSBOVUxMOworCQkJfQorCQl9CisJCWRybV9mcmVlKGRldi0+cXVldWVsaXN0LAorCQkJIGRldi0+cXVldWVfc2xvdHMgKiBzaXplb2YoKmRldi0+cXVldWVsaXN0KSwKKwkJCSBEUk1fTUVNX1FVRVVFUyk7CisJCWRldi0+cXVldWVsaXN0ID0gTlVMTDsKKwl9CisJZGV2LT5xdWV1ZV9jb3VudCA9IDA7CisKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9IQVZFX0RNQSkpCisJCWRybV9kbWFfdGFrZWRvd24oZGV2KTsKKworCWlmIChkZXYtPmxvY2suaHdfbG9jaykgeworCQlkZXYtPnNpZ2RhdGEubG9jayA9IGRldi0+bG9jay5od19sb2NrID0gTlVMTDsJLyogU0hNIHJlbW92ZWQgKi8KKwkJZGV2LT5sb2NrLmZpbGVfcHJpdiA9IE5VTEw7CisJCXdha2VfdXBfaW50ZXJydXB0aWJsZSgmZGV2LT5sb2NrLmxvY2tfcXVldWUpOworCX0KKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKKworCURSTV9ERUJVRygibGFzdGNsb3NlIGNvbXBsZXRlZFxuIik7CisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogTW9kdWxlIGluaXRpYWxpemF0aW9uLiBDYWxsZWQgdmlhIGluaXRfbW9kdWxlIGF0IG1vZHVsZSBsb2FkIHRpbWUsIG9yIHZpYQorICogbGludXgvaW5pdC9tYWluLmMgKHRoaXMgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQpLgorICoKKyAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogSW5pdGlhbGl6ZXMgYW4gYXJyYXkgb2YgZHJtX2RldmljZSBzdHJ1Y3R1cmVzLCBhbmQgYXR0ZW1wdHMgdG8KKyAqIGluaXRpYWxpemUgYWxsIGF2YWlsYWJsZSBkZXZpY2VzLCB1c2luZyBjb25zZWN1dGl2ZSBtaW5vcnMsIHJlZ2lzdGVyaW5nIHRoZQorICogc3R1YnMgYW5kIGluaXRpYWxpemluZyB0aGUgQUdQIGRldmljZS4KKyAqCisgKiBFeHBhbmRzIHRoZSBcYyBEUklWRVJfUFJFSU5JVCBhbmQgXGMgRFJJVkVSX1BPU1RfSU5JVCBtYWNyb3MgYmVmb3JlIGFuZAorICogYWZ0ZXIgdGhlIGluaXRpYWxpemF0aW9uIGZvciBkcml2ZXIgY3VzdG9taXphdGlvbi4KKyAqLworaW50IGRybV9pbml0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpCit7CisJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBOVUxMOworCXN0cnVjdCBwY2lfZGV2aWNlX2lkICpwaWQ7CisJaW50IGk7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlmb3IgKGkgPSAwOyBkcml2ZXItPnBjaV9kcml2ZXIuaWRfdGFibGVbaV0udmVuZG9yICE9IDA7IGkrKykgeworCQlwaWQgPSAoc3RydWN0IHBjaV9kZXZpY2VfaWQgKikmZHJpdmVyLT5wY2lfZHJpdmVyLmlkX3RhYmxlW2ldOworCisJCXBkZXYgPSBOVUxMOworCQkvKiBwYXNzIGJhY2sgaW4gcGRldiB0byBhY2NvdW50IGZvciBtdWx0aXBsZSBpZGVudGljYWwgY2FyZHMgKi8KKwkJd2hpbGUgKChwZGV2ID0KKwkJCXBjaV9nZXRfc3Vic3lzKHBpZC0+dmVuZG9yLCBwaWQtPmRldmljZSwgcGlkLT5zdWJ2ZW5kb3IsCisJCQkJICAgICAgIHBpZC0+c3ViZGV2aWNlLCBwZGV2KSkgIT0gTlVMTCkgeworCQkJLyogc3RlYWx0aCBtb2RlIHJlcXVpcmVzIGEgbWFudWFsIHByb2JlICovCisJCQlwY2lfZGV2X2dldChwZGV2KTsKKwkJCWRybV9nZXRfZGV2KHBkZXYsIHBpZCwgZHJpdmVyKTsKKwkJfQorCX0KKwlyZXR1cm4gMDsKK30KKworRVhQT1JUX1NZTUJPTChkcm1faW5pdCk7CisKKy8qKgorICogQ2FsbGVkIHZpYSBjbGVhbnVwX21vZHVsZSgpIGF0IG1vZHVsZSB1bmxvYWQgdGltZS4KKyAqCisgKiBDbGVhbnMgdXAgYWxsIERSTSBkZXZpY2UsIGNhbGxpbmcgZHJtX2xhc3RjbG9zZSgpLgorICoKKyAqIFxzYSBkcm1faW5pdAorICovCitzdGF0aWMgdm9pZCBkcm1fY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlEUk1fREVCVUcoIlxuIik7CisKKwlpZiAoIWRldikgeworCQlEUk1fRVJST1IoImNsZWFudXAgY2FsbGVkIG5vIGRldlxuIik7CisJCXJldHVybjsKKwl9CisKKwlkcm1fbGFzdGNsb3NlKGRldik7CisKKwlpZiAoZHJtX2NvcmVfaGFzX01UUlIoZGV2KSAmJiBkcm1fY29yZV9oYXNfQUdQKGRldikgJiYKKwkgICAgZGV2LT5hZ3AgJiYgZGV2LT5hZ3AtPmFncF9tdHJyID49IDApIHsKKwkJaW50IHJldHZhbDsKKwkJcmV0dmFsID0gbXRycl9kZWwoZGV2LT5hZ3AtPmFncF9tdHJyLAorCQkJCSAgZGV2LT5hZ3AtPmFncF9pbmZvLmFwZXJfYmFzZSwKKwkJCQkgIGRldi0+YWdwLT5hZ3BfaW5mby5hcGVyX3NpemUgKiAxMDI0ICogMTAyNCk7CisJCURSTV9ERUJVRygibXRycl9kZWw9JWRcbiIsIHJldHZhbCk7CisJfQorCisJaWYgKGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJiBkZXYtPmFncCkgeworCQlkcm1fZnJlZShkZXYtPmFncCwgc2l6ZW9mKCpkZXYtPmFncCksIERSTV9NRU1fQUdQTElTVFMpOworCQlkZXYtPmFncCA9IE5VTEw7CisJfQorCisJaWYgKGRldi0+ZHJpdmVyLT51bmxvYWQpCisJCWRldi0+ZHJpdmVyLT51bmxvYWQoZGV2KTsKKworCWRybV9odF9yZW1vdmUoJmRldi0+bWFwX2hhc2gpOworCWRybV9jdHhiaXRtYXBfY2xlYW51cChkZXYpOworCisJZHJtX3B1dF9taW5vcigmZGV2LT5wcmltYXJ5KTsKKwlpZiAoZHJtX3B1dF9kZXYoZGV2KSkKKwkJRFJNX0VSUk9SKCJDYW5ub3QgdW5sb2FkIG1vZHVsZVxuIik7Cit9CisKK2ludCBkcm1fbWlub3JzX2NsZWFudXAoaW50IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBwdHI7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKKwlzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyID0gZGF0YTsKKworCWRldiA9IG1pbm9yLT5kZXY7CisJaWYgKG1pbm9yLT5kZXYtPmRyaXZlciAhPSBkcml2ZXIpCisJCXJldHVybiAwOworCisJaWYgKG1pbm9yLT50eXBlICE9IERSTV9NSU5PUl9MRUdBQ1kpCisJCXJldHVybiAwOworCisJaWYgKGRldikKKwkJcGNpX2Rldl9wdXQoZGV2LT5wZGV2KTsKKwlkcm1fY2xlYW51cChkZXYpOworCXJldHVybiAxOworfQorCit2b2lkIGRybV9leGl0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpCit7CisJRFJNX0RFQlVHKCJcbiIpOworCisJaWRyX2Zvcl9lYWNoKCZkcm1fbWlub3JzX2lkciwgJmRybV9taW5vcnNfY2xlYW51cCwgZHJpdmVyKTsKKworCURSTV9JTkZPKCJNb2R1bGUgdW5sb2FkZWRcbiIpOworfQorCitFWFBPUlRfU1lNQk9MKGRybV9leGl0KTsKKworLyoqIEZpbGUgb3BlcmF0aW9ucyBzdHJ1Y3R1cmUgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRybV9zdHViX2ZvcHMgPSB7CisJLm93bmVyID0gVEhJU19NT0RVTEUsCisJLm9wZW4gPSBkcm1fc3R1Yl9vcGVuCit9OworCitzdGF0aWMgaW50IF9faW5pdCBkcm1fY29yZV9pbml0KHZvaWQpCit7CisJaW50IHJldCA9IC1FTk9NRU07CisKKwlpZHJfaW5pdCgmZHJtX21pbm9yc19pZHIpOworCisJaWYgKHJlZ2lzdGVyX2NocmRldihEUk1fTUFKT1IsICJkcm0iLCAmZHJtX3N0dWJfZm9wcykpCisJCWdvdG8gZXJyX3AxOworCisJZHJtX2NsYXNzID0gZHJtX3N5c2ZzX2NyZWF0ZShUSElTX01PRFVMRSwgImRybSIpOworCWlmIChJU19FUlIoZHJtX2NsYXNzKSkgeworCQlwcmludGsoS0VSTl9FUlIgIkRSTTogRXJyb3IgY3JlYXRpbmcgZHJtIGNsYXNzLlxuIik7CisJCXJldCA9IFBUUl9FUlIoZHJtX2NsYXNzKTsKKwkJZ290byBlcnJfcDI7CisJfQorCisJZHJtX3Byb2Nfcm9vdCA9IHByb2NfbWtkaXIoImRyaSIsIE5VTEwpOworCWlmICghZHJtX3Byb2Nfcm9vdCkgeworCQlEUk1fRVJST1IoIkNhbm5vdCBjcmVhdGUgL3Byb2MvZHJpXG4iKTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gZXJyX3AzOworCX0KKworCWRybV9tZW1faW5pdCgpOworCisJRFJNX0lORk8oIkluaXRpYWxpemVkICVzICVkLiVkLiVkICVzXG4iLAorCQkgQ09SRV9OQU1FLCBDT1JFX01BSk9SLCBDT1JFX01JTk9SLCBDT1JFX1BBVENITEVWRUwsIENPUkVfREFURSk7CisJcmV0dXJuIDA7CitlcnJfcDM6CisJZHJtX3N5c2ZzX2Rlc3Ryb3koKTsKK2Vycl9wMjoKKwl1bnJlZ2lzdGVyX2NocmRldihEUk1fTUFKT1IsICJkcm0iKTsKKworCWlkcl9kZXN0cm95KCZkcm1fbWlub3JzX2lkcik7CitlcnJfcDE6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGRybV9jb3JlX2V4aXQodm9pZCkKK3sKKwlyZW1vdmVfcHJvY19lbnRyeSgiZHJpIiwgTlVMTCk7CisJZHJtX3N5c2ZzX2Rlc3Ryb3koKTsKKworCXVucmVnaXN0ZXJfY2hyZGV2KERSTV9NQUpPUiwgImRybSIpOworCisJaWRyX2Rlc3Ryb3koJmRybV9taW5vcnNfaWRyKTsKK30KKworbW9kdWxlX2luaXQoZHJtX2NvcmVfaW5pdCk7Cittb2R1bGVfZXhpdChkcm1fY29yZV9leGl0KTsKKworLyoqCisgKiBHZXQgdmVyc2lvbiBpbmZvcm1hdGlvbgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUuCisgKiBccGFyYW0gZmlscCBmaWxlIHBvaW50ZXIuCisgKiBccGFyYW0gY21kIGNvbW1hbmQuCisgKiBccGFyYW0gYXJnIHVzZXIgYXJndW1lbnQsIHBvaW50aW5nIHRvIGEgZHJtX3ZlcnNpb24gc3RydWN0dXJlLgorICogXHJldHVybiB6ZXJvIG9uIHN1Y2Nlc3Mgb3IgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogRmlsbHMgaW4gdGhlIHZlcnNpb24gaW5mb3JtYXRpb24gaW4gXHAgYXJnLgorICovCitzdGF0aWMgaW50IGRybV92ZXJzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX3ZlcnNpb24gKnZlcnNpb24gPSBkYXRhOworCWludCBsZW47CisKKwl2ZXJzaW9uLT52ZXJzaW9uX21ham9yID0gZGV2LT5kcml2ZXItPm1ham9yOworCXZlcnNpb24tPnZlcnNpb25fbWlub3IgPSBkZXYtPmRyaXZlci0+bWlub3I7CisJdmVyc2lvbi0+dmVyc2lvbl9wYXRjaGxldmVsID0gZGV2LT5kcml2ZXItPnBhdGNobGV2ZWw7CisJRFJNX0NPUFkodmVyc2lvbi0+bmFtZSwgZGV2LT5kcml2ZXItPm5hbWUpOworCURSTV9DT1BZKHZlcnNpb24tPmRhdGUsIGRldi0+ZHJpdmVyLT5kYXRlKTsKKwlEUk1fQ09QWSh2ZXJzaW9uLT5kZXNjLCBkZXYtPmRyaXZlci0+ZGVzYyk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBDYWxsZWQgd2hlbmV2ZXIgYSBwcm9jZXNzIHBlcmZvcm1zIGFuIGlvY3RsIG9uIC9kZXYvZHJtLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUuCisgKiBccGFyYW0gZmlsZV9wcml2IERSTSBmaWxlIHByaXZhdGUuCisgKiBccGFyYW0gY21kIGNvbW1hbmQuCisgKiBccGFyYW0gYXJnIHVzZXIgYXJndW1lbnQuCisgKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBudW1iZXIgb24gZmFpbHVyZS4KKyAqCisgKiBMb29rcyB1cCB0aGUgaW9jdGwgZnVuY3Rpb24gaW4gdGhlIDo6aW9jdGxzIHRhYmxlLCBjaGVja2luZyBmb3Igcm9vdAorICogcHJldmlsZWdlcyBpZiBzbyByZXF1aXJlZCwgYW5kIGRpc3BhdGNoZXMgdG8gdGhlIHJlc3BlY3RpdmUgZnVuY3Rpb24uCisgKi8KK2ludCBkcm1faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCisJICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCit7CisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZpbGVfcHJpdi0+bWlub3ItPmRldjsKKwlzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgKmlvY3RsOworCWRybV9pb2N0bF90ICpmdW5jOworCXVuc2lnbmVkIGludCBuciA9IERSTV9JT0NUTF9OUihjbWQpOworCWludCByZXRjb2RlID0gLUVJTlZBTDsKKwljaGFyICprZGF0YSA9IE5VTEw7CisKKwlhdG9taWNfaW5jKCZkZXYtPmlvY3RsX2NvdW50KTsKKwlhdG9taWNfaW5jKCZkZXYtPmNvdW50c1tfRFJNX1NUQVRfSU9DVExTXSk7CisJKytmaWxlX3ByaXYtPmlvY3RsX2NvdW50OworCisJRFJNX0RFQlVHKCJwaWQ9JWQsIGNtZD0weCUwMngsIG5yPTB4JTAyeCwgZGV2IDB4JWx4LCBhdXRoPSVkXG4iLAorCQkgIHRhc2tfcGlkX25yKGN1cnJlbnQpLCBjbWQsIG5yLAorCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmRldmljZSksCisJCSAgZmlsZV9wcml2LT5hdXRoZW50aWNhdGVkKTsKKworCWlmICgobnIgPj0gRFJNX0NPUkVfSU9DVExfQ09VTlQpICYmCisJICAgICgobnIgPCBEUk1fQ09NTUFORF9CQVNFKSB8fCAobnIgPj0gRFJNX0NPTU1BTkRfRU5EKSkpCisJCWdvdG8gZXJyX2kxOworCWlmICgobnIgPj0gRFJNX0NPTU1BTkRfQkFTRSkgJiYgKG5yIDwgRFJNX0NPTU1BTkRfRU5EKSAmJgorCSAgICAobnIgPCBEUk1fQ09NTUFORF9CQVNFICsgZGV2LT5kcml2ZXItPm51bV9pb2N0bHMpKQorCQlpb2N0bCA9ICZkZXYtPmRyaXZlci0+aW9jdGxzW25yIC0gRFJNX0NPTU1BTkRfQkFTRV07CisJZWxzZSBpZiAoKG5yID49IERSTV9DT01NQU5EX0VORCkgfHwgKG5yIDwgRFJNX0NPTU1BTkRfQkFTRSkpIHsKKwkJaW9jdGwgPSAmZHJtX2lvY3Rsc1tucl07CisJCWNtZCA9IGlvY3RsLT5jbWQ7CisJfSBlbHNlCisJCWdvdG8gZXJyX2kxOworCisJLyogRG8gbm90IHRydXN0IHVzZXJzcGFjZSwgdXNlIG91ciBvd24gZGVmaW5pdGlvbiAqLworCWZ1bmMgPSBpb2N0bC0+ZnVuYzsKKwkvKiBpcyB0aGVyZSBhIGxvY2FsIG92ZXJyaWRlPyAqLworCWlmICgobnIgPT0gRFJNX0lPQ1RMX05SKERSTV9JT0NUTF9ETUEpKSAmJiBkZXYtPmRyaXZlci0+ZG1hX2lvY3RsKQorCQlmdW5jID0gZGV2LT5kcml2ZXItPmRtYV9pb2N0bDsKKworCWlmICghZnVuYykgeworCQlEUk1fREVCVUcoIm5vIGZ1bmN0aW9uXG4iKTsKKwkJcmV0Y29kZSA9IC1FSU5WQUw7CisJfSBlbHNlIGlmICgoKGlvY3RsLT5mbGFncyAmIERSTV9ST09UX09OTFkpICYmICFjYXBhYmxlKENBUF9TWVNfQURNSU4pKSB8fAorCQkgICAoKGlvY3RsLT5mbGFncyAmIERSTV9BVVRIKSAmJiAhZmlsZV9wcml2LT5hdXRoZW50aWNhdGVkKSB8fAorCQkgICAoKGlvY3RsLT5mbGFncyAmIERSTV9NQVNURVIpICYmICFmaWxlX3ByaXYtPm1hc3RlcikpIHsKKwkJcmV0Y29kZSA9IC1FQUNDRVM7CisJfSBlbHNlIHsKKwkJaWYgKGNtZCAmIChJT0NfSU4gfCBJT0NfT1VUKSkgeworCQkJa2RhdGEgPSBrbWFsbG9jKF9JT0NfU0laRShjbWQpLCBHRlBfS0VSTkVMKTsKKwkJCWlmICgha2RhdGEpIHsKKwkJCQlyZXRjb2RlID0gLUVOT01FTTsKKwkJCQlnb3RvIGVycl9pMTsKKwkJCX0KKwkJfQorCisJCWlmIChjbWQgJiBJT0NfSU4pIHsKKwkJCWlmIChjb3B5X2Zyb21fdXNlcihrZGF0YSwgKHZvaWQgX191c2VyICopYXJnLAorCQkJCQkgICBfSU9DX1NJWkUoY21kKSkgIT0gMCkgeworCQkJCXJldGNvZGUgPSAtRUZBVUxUOworCQkJCWdvdG8gZXJyX2kxOworCQkJfQorCQl9CisJCXJldGNvZGUgPSBmdW5jKGRldiwga2RhdGEsIGZpbGVfcHJpdik7CisKKwkJaWYgKChyZXRjb2RlID09IDApICYmIChjbWQgJiBJT0NfT1VUKSkgeworCQkJaWYgKGNvcHlfdG9fdXNlcigodm9pZCBfX3VzZXIgKilhcmcsIGtkYXRhLAorCQkJCQkgX0lPQ19TSVpFKGNtZCkpICE9IDApCisJCQkJcmV0Y29kZSA9IC1FRkFVTFQ7CisJCX0KKwl9CisKKyAgICAgIGVycl9pMToKKwlpZiAoa2RhdGEpCisJCWtmcmVlKGtkYXRhKTsKKwlhdG9taWNfZGVjKCZkZXYtPmlvY3RsX2NvdW50KTsKKwlpZiAocmV0Y29kZSkKKwkJRFJNX0RFQlVHKCJyZXQgPSAleFxuIiwgcmV0Y29kZSk7CisJcmV0dXJuIHJldGNvZGU7Cit9CisKK0VYUE9SVF9TWU1CT0woZHJtX2lvY3RsKTsKKworZHJtX2xvY2FsX21hcF90ICpkcm1fZ2V0c2FyZWEoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX21hcF9saXN0ICplbnRyeTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZkZXYtPm1hcGxpc3QsIGhlYWQpIHsKKwkJaWYgKGVudHJ5LT5tYXAgJiYgZW50cnktPm1hcC0+dHlwZSA9PSBfRFJNX1NITSAmJgorCQkgICAgKGVudHJ5LT5tYXAtPmZsYWdzICYgX0RSTV9DT05UQUlOU19MT0NLKSkgeworCQkJcmV0dXJuIGVudHJ5LT5tYXA7CisJCX0KKwl9CisJcmV0dXJuIE5VTEw7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9nZXRzYXJlYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZm9wcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1MWE1M2YKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwpAQCAtMCwwICsxLDQ3MSBAQAorLyoqCisgKiBcZmlsZSBkcm1fZm9wcy5jCisgKiBGaWxlIG9wZXJhdGlvbnMgZm9yIERSTQorICoKKyAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKiBcYXV0aG9yIERhcnlsbCBTdHJhdXNzIDxkYXJ5bGxAdmFsaW51eC5jb20+CisgKiBcYXV0aG9yIEdhcmV0aCBIdWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KKyAqLworCisvKgorICogQ3JlYXRlZDogTW9uIEphbiAgNCAwODo1ODozMSAxOTk5IGJ5IGZhaXRoQHZhbGludXguY29tCisgKgorICogQ29weXJpZ2h0IDE5OTkgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vubnl2YWxlLCBDYWxpZm9ybmlhLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVkEgTElOVVggU1lTVEVNUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisjaW5jbHVkZSAiZHJtUC5oIgorI2luY2x1ZGUgImRybV9zYXJlYS5oIgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgorCitzdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKKworc3RhdGljIGludCBkcm1fc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX2xvY2FsX21hcF90ICptYXA7CisJaW50IGk7CisJaW50IHJldDsKKwl1MzIgc2FyZWFwYWdlOworCisJaWYgKGRldi0+ZHJpdmVyLT5maXJzdG9wZW4pIHsKKwkJcmV0ID0gZGV2LT5kcml2ZXItPmZpcnN0b3BlbihkZXYpOworCQlpZiAocmV0ICE9IDApCisJCQlyZXR1cm4gcmV0OworCX0KKworCWRldi0+bWFnaWNmcmVlLm5leHQgPSBOVUxMOworCisJLyogcHJlYnVpbGQgdGhlIFNBUkVBICovCisJc2FyZWFwYWdlID0gbWF4X3QodW5zaWduZWQsIFNBUkVBX01BWCwgUEFHRV9TSVpFKTsKKwlpID0gZHJtX2FkZG1hcChkZXYsIDAsIHNhcmVhcGFnZSwgX0RSTV9TSE0sIF9EUk1fQ09OVEFJTlNfTE9DSywgJm1hcCk7CisJaWYgKGkgIT0gMCkKKwkJcmV0dXJuIGk7CisKKwlhdG9taWNfc2V0KCZkZXYtPmlvY3RsX2NvdW50LCAwKTsKKwlhdG9taWNfc2V0KCZkZXYtPnZtYV9jb3VudCwgMCk7CisJZGV2LT5idWZfdXNlID0gMDsKKwlhdG9taWNfc2V0KCZkZXYtPmJ1Zl9hbGxvYywgMCk7CisKKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9IQVZFX0RNQSkpIHsKKwkJaSA9IGRybV9kbWFfc2V0dXAoZGV2KTsKKwkJaWYgKGkgPCAwKQorCQkJcmV0dXJuIGk7CisJfQorCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGV2LT5jb3VudHMpOyBpKyspCisJCWF0b21pY19zZXQoJmRldi0+Y291bnRzW2ldLCAwKTsKKworCWRybV9odF9jcmVhdGUoJmRldi0+bWFnaWNsaXN0LCBEUk1fTUFHSUNfSEFTSF9PUkRFUik7CisJSU5JVF9MSVNUX0hFQUQoJmRldi0+bWFnaWNmcmVlKTsKKworCWRldi0+c2lnZGF0YS5sb2NrID0gTlVMTDsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmxvY2subG9ja19xdWV1ZSk7CisJZGV2LT5xdWV1ZV9jb3VudCA9IDA7CisJZGV2LT5xdWV1ZV9yZXNlcnZlZCA9IDA7CisJZGV2LT5xdWV1ZV9zbG90cyA9IDA7CisJZGV2LT5xdWV1ZWxpc3QgPSBOVUxMOworCWRldi0+aXJxX2VuYWJsZWQgPSAwOworCWRldi0+Y29udGV4dF9mbGFnID0gMDsKKwlkZXYtPmludGVycnVwdF9mbGFnID0gMDsKKwlkZXYtPmRtYV9mbGFnID0gMDsKKwlkZXYtPmxhc3RfY29udGV4dCA9IDA7CisJZGV2LT5sYXN0X3N3aXRjaCA9IDA7CisJZGV2LT5sYXN0X2NoZWNrZWQgPSAwOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldi0+Y29udGV4dF93YWl0KTsKKwlkZXYtPmlmX3ZlcnNpb24gPSAwOworCisJZGV2LT5jdHhfc3RhcnQgPSAwOworCWRldi0+bGNrX3N0YXJ0ID0gMDsKKworCWRldi0+YnVmX2FzeW5jID0gTlVMTDsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmJ1Zl9yZWFkZXJzKTsKKwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXYtPmJ1Zl93cml0ZXJzKTsKKworCURSTV9ERUJVRygiXG4iKTsKKworCS8qCisJICogVGhlIGtlcm5lbCdzIGNvbnRleHQgY291bGQgYmUgY3JlYXRlZCBoZXJlLCBidXQgaXMgbm93IGNyZWF0ZWQKKwkgKiBpbiBkcm1fZG1hX2VucXVldWUuICBUaGlzIGlzIG1vcmUgcmVzb3VyY2UtZWZmaWNpZW50IGZvcgorCSAqIGhhcmR3YXJlIHRoYXQgZG9lcyBub3QgZG8gRE1BLCBidXQgbWF5IG1lYW4gdGhhdAorCSAqIGRybV9zZWxlY3RfcXVldWUgZmFpbHMgYmV0d2VlbiB0aGUgdGltZSB0aGUgaW50ZXJydXB0IGlzCisJICogaW5pdGlhbGl6ZWQgYW5kIHRoZSB0aW1lIHRoZSBxdWV1ZXMgYXJlIGluaXRpYWxpemVkLgorCSAqLworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogT3BlbiBmaWxlLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUKKyAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlci4KKyAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogU2VhcmNoZXMgdGhlIERSTSBkZXZpY2Ugd2l0aCB0aGUgc2FtZSBtaW5vciBudW1iZXIsIGNhbGxzIG9wZW5faGVscGVyKCksIGFuZAorICogaW5jcmVtZW50cyB0aGUgZGV2aWNlIG9wZW4gY291bnQuIElmIHRoZSBvcGVuIGNvdW50IHdhcyBwcmV2aW91cyBhdCB6ZXJvLAorICogaS5lLiwgaXQncyB0aGUgZmlyc3QgdGhhdCB0aGUgZGV2aWNlIGlzIG9wZW4sIHRoZW4gY2FsbHMgc2V0dXAoKS4KKyAqLworaW50IGRybV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBOVUxMOworCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7CisJc3RydWN0IGRybV9taW5vciAqbWlub3I7CisJaW50IHJldGNvZGUgPSAwOworCisJbWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKKwlpZiAoIW1pbm9yKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmICghKGRldiA9IG1pbm9yLT5kZXYpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCXJldGNvZGUgPSBkcm1fb3Blbl9oZWxwZXIoaW5vZGUsIGZpbHAsIGRldik7CisJaWYgKCFyZXRjb2RlKSB7CisJCWF0b21pY19pbmMoJmRldi0+Y291bnRzW19EUk1fU1RBVF9PUEVOU10pOworCQlzcGluX2xvY2soJmRldi0+Y291bnRfbG9jayk7CisJCWlmICghZGV2LT5vcGVuX2NvdW50KyspIHsKKwkJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCQkJcmV0dXJuIGRybV9zZXR1cChkZXYpOworCQl9CisJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCX0KKworCXJldHVybiByZXRjb2RlOworfQorRVhQT1JUX1NZTUJPTChkcm1fb3Blbik7CisKKy8qKgorICogRmlsZSBcYyBvcGVuIG9wZXJhdGlvbi4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgorICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgorICoKKyAqIFB1dHMgdGhlIGRldi0+Zm9wcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZXZpY2UgbWlub3IgbnVtYmVyIGludG8KKyAqIFxwIGZpbHAsIGNhbGwgdGhlIFxjIG9wZW4gbWV0aG9kLCBhbmQgcmVzdG9yZSB0aGUgZmlsZSBvcGVyYXRpb25zLgorICovCitpbnQgZHJtX3N0dWJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vcjsKKwlpbnQgbWlub3JfaWQgPSBpbWlub3IoaW5vZGUpOworCWludCBlcnIgPSAtRU5PREVWOworCWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9sZF9mb3BzOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJLyogQktMIHB1c2hkb3duOiBub3RlIHRoYXQgbm90aGluZyBlbHNlIHNlcmlhbGl6ZXMgaWRyX2ZpbmQoKSAqLworCWxvY2tfa2VybmVsKCk7CisJbWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKKwlpZiAoIW1pbm9yKQorCQlnb3RvIG91dDsKKworCWlmICghKGRldiA9IG1pbm9yLT5kZXYpKQorCQlnb3RvIG91dDsKKworCW9sZF9mb3BzID0gZmlscC0+Zl9vcDsKKwlmaWxwLT5mX29wID0gZm9wc19nZXQoJmRldi0+ZHJpdmVyLT5mb3BzKTsKKwlpZiAoZmlscC0+Zl9vcC0+b3BlbiAmJiAoZXJyID0gZmlscC0+Zl9vcC0+b3Blbihpbm9kZSwgZmlscCkpKSB7CisJCWZvcHNfcHV0KGZpbHAtPmZfb3ApOworCQlmaWxwLT5mX29wID0gZm9wc19nZXQob2xkX2ZvcHMpOworCX0KKwlmb3BzX3B1dChvbGRfZm9wcyk7CisKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIGVycjsKK30KKworLyoqCisgKiBDaGVjayB3aGV0aGVyIERSSSB3aWxsIHJ1biBvbiB0aGlzIENQVS4KKyAqCisgKiBccmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBEUkkgd2lsbCBydW4gb24gdGhpcyBDUFUsIG9yIHplcm8gb3RoZXJ3aXNlLgorICovCitzdGF0aWMgaW50IGRybV9jcHVfdmFsaWQodm9pZCkKK3sKKyNpZiBkZWZpbmVkKF9faTM4Nl9fKQorCWlmIChib290X2NwdV9kYXRhLng4NiA9PSAzKQorCQlyZXR1cm4gMDsJLyogTm8gY21weGNoZyBvbiBhIDM4NiAqLworI2VuZGlmCisjaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fc3BhcmNfdjlfXykKKwlyZXR1cm4gMDsJCS8qIE5vIGNtcHhjaGcgYmVmb3JlIHY5IHNwYXJjLiAqLworI2VuZGlmCisJcmV0dXJuIDE7Cit9CisKKy8qKgorICogQ2FsbGVkIHdoZW5ldmVyIGEgcHJvY2VzcyBvcGVucyAvZGV2L2RybS4KKyAqCisgKiBccGFyYW0gaW5vZGUgZGV2aWNlIGlub2RlLgorICogXHBhcmFtIGZpbHAgZmlsZSBwb2ludGVyLgorICogXHBhcmFtIGRldiBkZXZpY2UuCisgKiBccmV0dXJuIHplcm8gb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIG51bWJlciBvbiBmYWlsdXJlLgorICoKKyAqIENyZWF0ZXMgYW5kIGluaXRpYWxpemVzIGEgZHJtX2ZpbGUgc3RydWN0dXJlIGZvciB0aGUgZmlsZSBwcml2YXRlIGRhdGEgaW4gXHAKKyAqIGZpbHAgYW5kIGFkZCBpdCBpbnRvIHRoZSBkb3VibGUgbGlua2VkIGxpc3QgaW4gXHAgZGV2LgorICovCitzdGF0aWMgaW50IGRybV9vcGVuX2hlbHBlcihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCSAgIHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWludCBtaW5vcl9pZCA9IGltaW5vcihpbm9kZSk7CisJc3RydWN0IGRybV9maWxlICpwcml2OworCWludCByZXQ7CisKKwlpZiAoZmlscC0+Zl9mbGFncyAmIE9fRVhDTCkKKwkJcmV0dXJuIC1FQlVTWTsJLyogTm8gZXhjbHVzaXZlIG9wZW5zICovCisJaWYgKCFkcm1fY3B1X3ZhbGlkKCkpCisJCXJldHVybiAtRUlOVkFMOworCisJRFJNX0RFQlVHKCJwaWQgPSAlZCwgbWlub3IgPSAlZFxuIiwgdGFza19waWRfbnIoY3VycmVudCksIG1pbm9yX2lkKTsKKworCXByaXYgPSBkcm1fYWxsb2Moc2l6ZW9mKCpwcml2KSwgRFJNX01FTV9GSUxFUyk7CisJaWYgKCFwcml2KQorCQlyZXR1cm4gLUVOT01FTTsKKworCW1lbXNldChwcml2LCAwLCBzaXplb2YoKnByaXYpKTsKKwlmaWxwLT5wcml2YXRlX2RhdGEgPSBwcml2OworCXByaXYtPmZpbHAgPSBmaWxwOworCXByaXYtPnVpZCA9IGN1cnJlbnQtPmV1aWQ7CisJcHJpdi0+cGlkID0gdGFza19waWRfbnIoY3VycmVudCk7CisJcHJpdi0+bWlub3IgPSBpZHJfZmluZCgmZHJtX21pbm9yc19pZHIsIG1pbm9yX2lkKTsKKwlwcml2LT5pb2N0bF9jb3VudCA9IDA7CisJLyogZm9yIGNvbXBhdGliaWxpdHkgcm9vdCBpcyBhbHdheXMgYXV0aGVudGljYXRlZCAqLworCXByaXYtPmF1dGhlbnRpY2F0ZWQgPSBjYXBhYmxlKENBUF9TWVNfQURNSU4pOworCXByaXYtPmxvY2tfY291bnQgPSAwOworCisJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmxoZWFkKTsKKworCWlmIChkZXYtPmRyaXZlci0+b3BlbikgeworCQlyZXQgPSBkZXYtPmRyaXZlci0+b3BlbihkZXYsIHByaXYpOworCQlpZiAocmV0IDwgMCkKKwkJCWdvdG8gb3V0X2ZyZWU7CisJfQorCisJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmIChsaXN0X2VtcHR5KCZkZXYtPmZpbGVsaXN0KSkKKwkJcHJpdi0+bWFzdGVyID0gMTsKKworCWxpc3RfYWRkKCZwcml2LT5saGVhZCwgJmRldi0+ZmlsZWxpc3QpOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisjaWZkZWYgX19hbHBoYV9fCisJLyoKKwkgKiBEZWZhdWx0IHRoZSBob3NlCisJICovCisJaWYgKCFkZXYtPmhvc2UpIHsKKwkJc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7CisJCXBjaV9kZXYgPSBwY2lfZ2V0X2NsYXNzKFBDSV9DTEFTU19ESVNQTEFZX1ZHQSA8PCA4LCBOVUxMKTsKKwkJaWYgKHBjaV9kZXYpIHsKKwkJCWRldi0+aG9zZSA9IHBjaV9kZXYtPnN5c2RhdGE7CisJCQlwY2lfZGV2X3B1dChwY2lfZGV2KTsKKwkJfQorCQlpZiAoIWRldi0+aG9zZSkgeworCQkJc3RydWN0IHBjaV9idXMgKmIgPSBwY2lfYnVzX2IocGNpX3Jvb3RfYnVzZXMubmV4dCk7CisJCQlpZiAoYikKKwkJCQlkZXYtPmhvc2UgPSBiLT5zeXNkYXRhOworCQl9CisJfQorI2VuZGlmCisKKwlyZXR1cm4gMDsKKyAgICAgIG91dF9mcmVlOgorCWRybV9mcmVlKHByaXYsIHNpemVvZigqcHJpdiksIERSTV9NRU1fRklMRVMpOworCWZpbHAtPnByaXZhdGVfZGF0YSA9IE5VTEw7CisJcmV0dXJuIHJldDsKK30KKworLyoqIE5vLW9wLiAqLworaW50IGRybV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG9uKQoreworCXN0cnVjdCBkcm1fZmlsZSAqcHJpdiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcHJpdi0+bWlub3ItPmRldjsKKwlpbnQgcmV0Y29kZTsKKworCURSTV9ERUJVRygiZmQgPSAlZCwgZGV2aWNlID0gMHglbHhcbiIsIGZkLAorCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KHByaXYtPm1pbm9yLT5kZXZpY2UpKTsKKwlyZXRjb2RlID0gZmFzeW5jX2hlbHBlcihmZCwgZmlscCwgb24sICZkZXYtPmJ1Zl9hc3luYyk7CisJaWYgKHJldGNvZGUgPCAwKQorCQlyZXR1cm4gcmV0Y29kZTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2Zhc3luYyk7CisKKy8qKgorICogUmVsZWFzZSBmaWxlLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUKKyAqIFxwYXJhbSBmaWxlX3ByaXYgRFJNIGZpbGUgcHJpdmF0ZS4KKyAqIFxyZXR1cm4gemVybyBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgbnVtYmVyIG9uIGZhaWx1cmUuCisgKgorICogSWYgdGhlIGhhcmR3YXJlIGxvY2sgaXMgaGVsZCB0aGVuIGZyZWUgaXQsIGFuZCB0YWtlIGl0IGFnYWluIGZvciB0aGUga2VybmVsCisgKiBjb250ZXh0IHNpbmNlIGl0J3MgbmVjZXNzYXJ5IHRvIHJlY2xhaW0gYnVmZmVycy4gVW5saW5rIHRoZSBmaWxlIHByaXZhdGUKKyAqIGRhdGEgZnJvbSBpdHMgbGlzdCBhbmQgZnJlZSBpdC4gRGVjcmVhc2VzIHRoZSBvcGVuIGNvdW50IGFuZCBpZiBpdCByZWFjaGVzCisgKiB6ZXJvIGNhbGxzIGRybV9sYXN0Y2xvc2UoKS4KKyAqLworaW50IGRybV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQoreworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7CisJaW50IHJldGNvZGUgPSAwOworCisJbG9ja19rZXJuZWwoKTsKKworCURSTV9ERUJVRygib3Blbl9jb3VudCA9ICVkXG4iLCBkZXYtPm9wZW5fY291bnQpOworCisJaWYgKGRldi0+ZHJpdmVyLT5wcmVjbG9zZSkKKwkJZGV2LT5kcml2ZXItPnByZWNsb3NlKGRldiwgZmlsZV9wcml2KTsKKworCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJICogQmVnaW4gaW5saW5lIGRybV9yZWxlYXNlCisJICovCisKKwlEUk1fREVCVUcoInBpZCA9ICVkLCBkZXZpY2UgPSAweCVseCwgb3Blbl9jb3VudCA9ICVkXG4iLAorCQkgIHRhc2tfcGlkX25yKGN1cnJlbnQpLAorCQkgIChsb25nKW9sZF9lbmNvZGVfZGV2KGZpbGVfcHJpdi0+bWlub3ItPmRldmljZSksCisJCSAgZGV2LT5vcGVuX2NvdW50KTsKKworCWlmIChkZXYtPmRyaXZlci0+cmVjbGFpbV9idWZmZXJzX2xvY2tlZCAmJiBkZXYtPmxvY2suaHdfbG9jaykgeworCQlpZiAoZHJtX2lfaGF2ZV9od19sb2NrKGRldiwgZmlsZV9wcml2KSkgeworCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOworCQl9IGVsc2UgeworCQkJdW5zaWduZWQgbG9uZyBlbmR0aW1lID0gamlmZmllcyArIDMgKiBEUk1fSFo7CisJCQlpbnQgbG9ja2VkID0gMDsKKworCQkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7CisKKwkJCS8qCisJCQkgKiBXYWl0IGZvciBhIHdoaWxlLgorCQkJICovCisKKwkJCWRveworCQkJCXNwaW5fbG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKKwkJCQlsb2NrZWQgPSBkZXYtPmxvY2suaWRsZV9oYXNfbG9jazsKKwkJCQlzcGluX3VubG9ja19iaCgmZGV2LT5sb2NrLnNwaW5sb2NrKTsKKwkJCQlpZiAobG9ja2VkKQorCQkJCQlicmVhazsKKwkJCQlzY2hlZHVsZSgpOworCQkJfSB3aGlsZSAoIXRpbWVfYWZ0ZXJfZXEoamlmZmllcywgZW5kdGltZSkpOworCisJCQlpZiAoIWxvY2tlZCkgeworCQkJCURSTV9FUlJPUigicmVjbGFpbV9idWZmZXJzX2xvY2tlZCgpIGRlYWRsb2NrLiBQbGVhc2UgcmV3b3JrIHRoaXNcbiIKKwkJCQkJICAiXHRkcml2ZXIgdG8gdXNlIHJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkKCkgaW5zdGVhZC5cbiIKKwkJCQkJICAiXHRJIHdpbGwgZ28gb24gcmVjbGFpbWluZyB0aGUgYnVmZmVycyBhbnl3YXkuXG4iKTsKKwkJCX0KKworCQkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQoZGV2LCBmaWxlX3ByaXYpOworCQkJZHJtX2lkbGVsb2NrX3JlbGVhc2UoJmRldi0+bG9jayk7CisJCX0KKwl9CisKKwlpZiAoZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19pZGxlbG9ja2VkICYmIGRldi0+bG9jay5od19sb2NrKSB7CisKKwkJZHJtX2lkbGVsb2NrX3Rha2UoJmRldi0+bG9jayk7CisJCWRldi0+ZHJpdmVyLT5yZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZChkZXYsIGZpbGVfcHJpdik7CisJCWRybV9pZGxlbG9ja19yZWxlYXNlKCZkZXYtPmxvY2spOworCisJfQorCisJaWYgKGRybV9pX2hhdmVfaHdfbG9jayhkZXYsIGZpbGVfcHJpdikpIHsKKwkJRFJNX0RFQlVHKCJGaWxlICVwIHJlbGVhc2VkLCBmcmVlaW5nIGxvY2sgZm9yIGNvbnRleHQgJWRcbiIsCisJCQkgIGZpbHAsIF9EUk1fTE9DS0lOR19DT05URVhUKGRldi0+bG9jay5od19sb2NrLT5sb2NrKSk7CisKKwkJZHJtX2xvY2tfZnJlZSgmZGV2LT5sb2NrLAorCQkJICAgICAgX0RSTV9MT0NLSU5HX0NPTlRFWFQoZGV2LT5sb2NrLmh3X2xvY2stPmxvY2spKTsKKwl9CisKKworCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0hBVkVfRE1BKSAmJgorCSAgICAhZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVyc19sb2NrZWQpIHsKKwkJZGV2LT5kcml2ZXItPnJlY2xhaW1fYnVmZmVycyhkZXYsIGZpbGVfcHJpdik7CisJfQorCisJZHJtX2Zhc3luYygtMSwgZmlscCwgMCk7CisKKwltdXRleF9sb2NrKCZkZXYtPmN0eGxpc3RfbXV0ZXgpOworCWlmICghbGlzdF9lbXB0eSgmZGV2LT5jdHhsaXN0KSkgeworCQlzdHJ1Y3QgZHJtX2N0eF9saXN0ICpwb3MsICpuOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwb3MsIG4sICZkZXYtPmN0eGxpc3QsIGhlYWQpIHsKKwkJCWlmIChwb3MtPnRhZyA9PSBmaWxlX3ByaXYgJiYKKwkJCSAgICBwb3MtPmhhbmRsZSAhPSBEUk1fS0VSTkVMX0NPTlRFWFQpIHsKKwkJCQlpZiAoZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcikKKwkJCQkJZGV2LT5kcml2ZXItPmNvbnRleHRfZHRvcihkZXYsCisJCQkJCQkJCSAgcG9zLT5oYW5kbGUpOworCisJCQkJZHJtX2N0eGJpdG1hcF9mcmVlKGRldiwgcG9zLT5oYW5kbGUpOworCisJCQkJbGlzdF9kZWwoJnBvcy0+aGVhZCk7CisJCQkJZHJtX2ZyZWUocG9zLCBzaXplb2YoKnBvcyksIERSTV9NRU1fQ1RYTElTVCk7CisJCQkJLS1kZXYtPmN0eF9jb3VudDsKKwkJCX0KKwkJfQorCX0KKwltdXRleF91bmxvY2soJmRldi0+Y3R4bGlzdF9tdXRleCk7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKGZpbGVfcHJpdi0+cmVtb3ZlX2F1dGhfb25fY2xvc2UgPT0gMSkgeworCQlzdHJ1Y3QgZHJtX2ZpbGUgKnRlbXA7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZW1wLCAmZGV2LT5maWxlbGlzdCwgbGhlYWQpCisJCQl0ZW1wLT5hdXRoZW50aWNhdGVkID0gMDsKKwl9CisJbGlzdF9kZWwoJmZpbGVfcHJpdi0+bGhlYWQpOworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCisJaWYgKGRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UpCisJCWRldi0+ZHJpdmVyLT5wb3N0Y2xvc2UoZGV2LCBmaWxlX3ByaXYpOworCWRybV9mcmVlKGZpbGVfcHJpdiwgc2l6ZW9mKCpmaWxlX3ByaXYpLCBEUk1fTUVNX0ZJTEVTKTsKKworCS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisJICogRW5kIGlubGluZSBkcm1fcmVsZWFzZQorCSAqLworCisJYXRvbWljX2luYygmZGV2LT5jb3VudHNbX0RSTV9TVEFUX0NMT1NFU10pOworCXNwaW5fbG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwlpZiAoIS0tZGV2LT5vcGVuX2NvdW50KSB7CisJCWlmIChhdG9taWNfcmVhZCgmZGV2LT5pb2N0bF9jb3VudCkgfHwgZGV2LT5ibG9ja2VkKSB7CisJCQlEUk1fRVJST1IoIkRldmljZSBidXN5OiAlZCAlZFxuIiwKKwkJCQkgIGF0b21pY19yZWFkKCZkZXYtPmlvY3RsX2NvdW50KSwgZGV2LT5ibG9ja2VkKTsKKwkJCXNwaW5fdW5sb2NrKCZkZXYtPmNvdW50X2xvY2spOworCQkJdW5sb2NrX2tlcm5lbCgpOworCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQorCQlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOworCQlyZXR1cm4gZHJtX2xhc3RjbG9zZShkZXYpOworCX0KKwlzcGluX3VubG9jaygmZGV2LT5jb3VudF9sb2NrKTsKKworCXVubG9ja19rZXJuZWwoKTsKKworCXJldHVybiByZXRjb2RlOworfQorRVhQT1JUX1NZTUJPTChkcm1fcmVsZWFzZSk7CisKKy8qKiBOby1vcC4gKi8KK3Vuc2lnbmVkIGludCBkcm1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICp3YWl0KQoreworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1fcG9sbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9oYXNodGFiLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2hhc2h0YWIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1faGFzaHRhYi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2hhc2h0YWIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1faW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jMzIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1faW9jMzIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9pb2MzMi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9pb2N0bC5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1faXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX2xvY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9sb2NrLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fbG9jay5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21lbW9yeS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTc3MDEyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tZW1vcnkuYwpAQCAtMCwwICsxLDE4NiBAQAorLyoqCisgKiBcZmlsZSBkcm1fbWVtb3J5LmMKKyAqIE1lbW9yeSBtYW5hZ2VtZW50IHdyYXBwZXJzIGZvciBEUk0KKyAqCisgKiBcYXV0aG9yIFJpY2thcmQgRS4gKFJpaykgRmFpdGggPGZhaXRoQHZhbGludXguY29tPgorICogXGF1dGhvciBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworLyoKKyAqIENyZWF0ZWQ6IFRodSBGZWIgIDQgMTQ6MDA6MzQgMTk5OSBieSBmYWl0aEB2YWxpbnV4LmNvbQorICoKKyAqIENvcHlyaWdodCAxOTk5IFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIFN1bm55dmFsZSwgQ2FsaWZvcm5pYS4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KKyNpbmNsdWRlICJkcm1QLmgiCisKKyNpZmRlZiBERUJVR19NRU1PUlkKKyNpbmNsdWRlICJkcm1fbWVtb3J5X2RlYnVnLmgiCisjZWxzZQorCisvKiogTm8tb3AuICovCit2b2lkIGRybV9tZW1faW5pdCh2b2lkKQoreworfQorCisvKioKKyAqIENhbGxlZCB3aGVuICIvcHJvYy9kcmkvJWRldiUvbWVtIiBpcyByZWFkLgorICoKKyAqIFxwYXJhbSBidWYgb3V0cHV0IGJ1ZmZlci4KKyAqIFxwYXJhbSBzdGFydCBzdGFydCBvZiBvdXRwdXQgZGF0YS4KKyAqIFxwYXJhbSBvZmZzZXQgcmVxdWVzdGVkIHN0YXJ0IG9mZnNldC4KKyAqIFxwYXJhbSBsZW4gcmVxdWVzdGVkIG51bWJlciBvZiBieXRlcy4KKyAqIFxwYXJhbSBlb2Ygd2hldGhlciB0aGVyZSBpcyBubyBtb3JlIGRhdGEgdG8gcmV0dXJuLgorICogXHBhcmFtIGRhdGEgcHJpdmF0ZSBkYXRhLgorICogXHJldHVybiBudW1iZXIgb2Ygd3JpdHRlbiBieXRlcy4KKyAqCisgKiBOby1vcC4KKyAqLworaW50IGRybV9tZW1faW5mbyhjaGFyICpidWYsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LAorCQkgaW50IGxlbiwgaW50ICplb2YsIHZvaWQgKmRhdGEpCit7CisJcmV0dXJuIDA7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBrbWFsbG9jKCkgYW5kIGtmcmVlKCkgKi8KK3ZvaWQgKmRybV9yZWFsbG9jKHZvaWQgKm9sZHB0LCBzaXplX3Qgb2xkc2l6ZSwgc2l6ZV90IHNpemUsIGludCBhcmVhKQoreworCXZvaWQgKnB0OworCisJaWYgKCEocHQgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpKSkKKwkJcmV0dXJuIE5VTEw7CisJaWYgKG9sZHB0ICYmIG9sZHNpemUpIHsKKwkJbWVtY3B5KHB0LCBvbGRwdCwgb2xkc2l6ZSk7CisJCWtmcmVlKG9sZHB0KTsKKwl9CisJcmV0dXJuIHB0OworfQorCisjaWYgX19PU19IQVNfQUdQCitzdGF0aWMgdm9pZCAqYWdwX3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwl1bnNpZ25lZCBsb25nICpwaHlzX2FkZHJfbWFwLCBpLCBudW1fcGFnZXMgPQorCSAgICBQQUdFX0FMSUdOKHNpemUpIC8gUEFHRV9TSVpFOworCXN0cnVjdCBkcm1fYWdwX21lbSAqYWdwbWVtOworCXN0cnVjdCBwYWdlICoqcGFnZV9tYXA7CisJdm9pZCAqYWRkcjsKKworCXNpemUgPSBQQUdFX0FMSUdOKHNpemUpOworCisjaWZkZWYgX19hbHBoYV9fCisJb2Zmc2V0IC09IGRldi0+aG9zZS0+bWVtX3NwYWNlLT5zdGFydDsKKyNlbmRpZgorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShhZ3BtZW0sICZkZXYtPmFncC0+bWVtb3J5LCBoZWFkKQorCQlpZiAoYWdwbWVtLT5ib3VuZCA8PSBvZmZzZXQKKwkJICAgICYmIChhZ3BtZW0tPmJvdW5kICsgKGFncG1lbS0+cGFnZXMgPDwgUEFHRV9TSElGVCkpID49CisJCSAgICAob2Zmc2V0ICsgc2l6ZSkpCisJCQlicmVhazsKKwlpZiAoIWFncG1lbSkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKgorCSAqIE9LLCB3ZSdyZSBtYXBwaW5nIEFHUCBzcGFjZSBvbiBhIGNoaXBzZXQvcGxhdGZvcm0gb24gd2hpY2ggbWVtb3J5IGFjY2Vzc2VzIGJ5CisJICogdGhlIENQVSBkbyBub3QgZ2V0IHJlbWFwcGVkIGJ5IHRoZSBHQVJULiAgV2UgZml4IHRoaXMgYnkgdXNpbmcgdGhlIGtlcm5lbCdzCisJICogcGFnZS10YWJsZSBpbnN0ZWFkICh0aGF0J3MgcHJvYmFibHkgZmFzdGVyIGFueWhvdy4uLikuCisJICovCisJLyogbm90ZTogdXNlIHZtYWxsb2MoKSBiZWNhdXNlIG51bV9wYWdlcyBjb3VsZCBiZSBsYXJnZS4uLiAqLworCXBhZ2VfbWFwID0gdm1hbGxvYyhudW1fcGFnZXMgKiBzaXplb2Yoc3RydWN0IHBhZ2UgKikpOworCWlmICghcGFnZV9tYXApCisJCXJldHVybiBOVUxMOworCisJcGh5c19hZGRyX21hcCA9CisJICAgIGFncG1lbS0+bWVtb3J5LT5tZW1vcnkgKyAob2Zmc2V0IC0gYWdwbWVtLT5ib3VuZCkgLyBQQUdFX1NJWkU7CisJZm9yIChpID0gMDsgaSA8IG51bV9wYWdlczsgKytpKQorCQlwYWdlX21hcFtpXSA9IHBmbl90b19wYWdlKHBoeXNfYWRkcl9tYXBbaV0gPj4gUEFHRV9TSElGVCk7CisJYWRkciA9IHZtYXAocGFnZV9tYXAsIG51bV9wYWdlcywgVk1fSU9SRU1BUCwgUEFHRV9BR1ApOworCXZmcmVlKHBhZ2VfbWFwKTsKKworCXJldHVybiBhZGRyOworfQorCisvKiogV3JhcHBlciBhcm91bmQgYWdwX2FsbG9jYXRlX21lbW9yeSgpICovCitEUk1fQUdQX01FTSAqZHJtX2FsbG9jX2FncChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IHBhZ2VzLCB1MzIgdHlwZSkKK3sKKwlyZXR1cm4gZHJtX2FncF9hbGxvY2F0ZV9tZW1vcnkoZGV2LT5hZ3AtPmJyaWRnZSwgcGFnZXMsIHR5cGUpOworfQorCisvKiogV3JhcHBlciBhcm91bmQgYWdwX2ZyZWVfbWVtb3J5KCkgKi8KK2ludCBkcm1fZnJlZV9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIGludCBwYWdlcykKK3sKKwlyZXR1cm4gZHJtX2FncF9mcmVlX21lbW9yeShoYW5kbGUpID8gMCA6IC1FSU5WQUw7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBhZ3BfYmluZF9tZW1vcnkoKSAqLworaW50IGRybV9iaW5kX2FncChEUk1fQUdQX01FTSAqIGhhbmRsZSwgdW5zaWduZWQgaW50IHN0YXJ0KQoreworCXJldHVybiBkcm1fYWdwX2JpbmRfbWVtb3J5KGhhbmRsZSwgc3RhcnQpOworfQorCisvKiogV3JhcHBlciBhcm91bmQgYWdwX3VuYmluZF9tZW1vcnkoKSAqLworaW50IGRybV91bmJpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlKQoreworCXJldHVybiBkcm1fYWdwX3VuYmluZF9tZW1vcnkoaGFuZGxlKTsKK30KKworI2Vsc2UgIC8qICBfX09TX0hBU19BR1AgICovCitzdGF0aWMgaW5saW5lIHZvaWQgKmFncF9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplLAorCQkJICAgICAgc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJcmV0dXJuIE5VTEw7Cit9CisKKyNlbmRpZgkJCQkvKiBhZ3AgKi8KKworI2VuZGlmCQkJCS8qIGRlYnVnX21lbW9yeSAqLworCit2b2lkIGRybV9jb3JlX2lvcmVtYXAoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpZiAoZHJtX2NvcmVfaGFzX0FHUChkZXYpICYmCisJICAgIGRldi0+YWdwICYmIGRldi0+YWdwLT5jYW50X3VzZV9hcGVydHVyZSAmJiBtYXAtPnR5cGUgPT0gX0RSTV9BR1ApCisJCW1hcC0+aGFuZGxlID0gYWdwX3JlbWFwKG1hcC0+b2Zmc2V0LCBtYXAtPnNpemUsIGRldik7CisJZWxzZQorCQltYXAtPmhhbmRsZSA9IGlvcmVtYXAobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9jb3JlX2lvcmVtYXApOworCit2b2lkIGRybV9jb3JlX2lvcmVtYXBfd2Moc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwltYXAtPmhhbmRsZSA9IGlvcmVtYXBfd2MobWFwLT5vZmZzZXQsIG1hcC0+c2l6ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9jb3JlX2lvcmVtYXBfd2MpOwordm9pZCBkcm1fY29yZV9pb3JlbWFwZnJlZShzdHJ1Y3QgZHJtX21hcCAqbWFwLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWlmICghbWFwLT5oYW5kbGUgfHwgIW1hcC0+c2l6ZSkKKwkJcmV0dXJuOworCisJaWYgKGRybV9jb3JlX2hhc19BR1AoZGV2KSAmJgorCSAgICBkZXYtPmFncCAmJiBkZXYtPmFncC0+Y2FudF91c2VfYXBlcnR1cmUgJiYgbWFwLT50eXBlID09IF9EUk1fQUdQKQorCQl2dW5tYXAobWFwLT5oYW5kbGUpOworCWVsc2UKKwkJaW91bm1hcChtYXAtPmhhbmRsZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9jb3JlX2lvcmVtYXBmcmVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX21tLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3BjaS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9wY2kuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9wY2kuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fcHJvYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9jLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3Byb2MuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9wcm9jLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3NjYXR0ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2NhdHRlci5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9zY2F0dGVyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2NhdHRlci5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9zbWFuLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3NtYW4uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc21hbi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vZHJtX3NtYW4uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fc3R1Yi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zdHViLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3N0dWIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2RybV9zdHViLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjIxMWEwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCkBAIC0wLDAgKzEsMjA4IEBACisKKy8qCisgKiBkcm1fc3lzZnMuYyAtIE1vZGlmaWNhdGlvbnMgdG8gZHJtX3N5c2ZzX2NsYXNzLmMgdG8gc3VwcG9ydAorICogICAgICAgICAgICAgICBleHRyYSBzeXNmcyBhdHRyaWJ1dGUgZnJvbSBEUk0uIE5vcm1hbCBkcm1fc3lzZnNfY2xhc3MKKyAqICAgICAgICAgICAgICAgZG9lcyBub3QgYWxsb3cgYWRkaW5nIGF0dHJpYnV0ZXMuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA0IEpvbiBTbWlybCA8am9uc21pcmxAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDQgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4KKyAqIENvcHlyaWdodCAoYykgMjAwMy0yMDA0IElCTSBDb3JwLgorICoKKyAqIFRoaXMgZmlsZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjIKKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tkZXZfdC5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorCisjaW5jbHVkZSAiZHJtX2NvcmUuaCIKKyNpbmNsdWRlICJkcm1QLmgiCisKKyNkZWZpbmUgdG9fZHJtX21pbm9yKGQpIGNvbnRhaW5lcl9vZihkLCBzdHJ1Y3QgZHJtX21pbm9yLCBrZGV2KQorCisvKioKKyAqIGRybV9zeXNmc19zdXNwZW5kIC0gRFJNIGNsYXNzIHN1c3BlbmQgaG9vaworICogQGRldjogTGludXggZGV2aWNlIHRvIHN1c3BlbmQKKyAqIEBzdGF0ZTogcG93ZXIgc3RhdGUgdG8gZW50ZXIKKyAqCisgKiBKdXN0IGZpZ3VyZXMgb3V0IHdoYXQgdGhlIGFjdHVhbCBzdHJ1Y3QgZHJtX2RldmljZSBhc3NvY2lhdGVkIHdpdGgKKyAqIEBkZXYgaXMgYW5kIGNhbGxzIGl0cyBzdXNwZW5kIGhvb2ssIGlmIHByZXNlbnQuCisgKi8KK3N0YXRpYyBpbnQgZHJtX3N5c2ZzX3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IGRybV9taW5vciAqZHJtX21pbm9yID0gdG9fZHJtX21pbm9yKGRldik7CisJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkcm1fbWlub3ItPmRldjsKKworCWlmIChkcm1fZGV2LT5kcml2ZXItPnN1c3BlbmQpCisJCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPnN1c3BlbmQoZHJtX2Rldiwgc3RhdGUpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogZHJtX3N5c2ZzX3Jlc3VtZSAtIERSTSBjbGFzcyByZXN1bWUgaG9vaworICogQGRldjogTGludXggZGV2aWNlIHRvIHJlc3VtZQorICoKKyAqIEp1c3QgZmlndXJlcyBvdXQgd2hhdCB0aGUgYWN0dWFsIHN0cnVjdCBkcm1fZGV2aWNlIGFzc29jaWF0ZWQgd2l0aAorICogQGRldiBpcyBhbmQgY2FsbHMgaXRzIHJlc3VtZSBob29rLCBpZiBwcmVzZW50LgorICovCitzdGF0aWMgaW50IGRybV9zeXNmc19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQoreworCXN0cnVjdCBkcm1fbWlub3IgKmRybV9taW5vciA9IHRvX2RybV9taW5vcihkZXYpOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2ID0gZHJtX21pbm9yLT5kZXY7CisKKwlpZiAoZHJtX2Rldi0+ZHJpdmVyLT5yZXN1bWUpCisJCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPnJlc3VtZShkcm1fZGV2KTsKKworCXJldHVybiAwOworfQorCisvKiBEaXNwbGF5IHRoZSB2ZXJzaW9uIG9mIGRybV9jb3JlLiBUaGlzIGRvZXNuJ3Qgd29yayByaWdodCBpbiBjdXJyZW50IGRlc2lnbiAqLworc3RhdGljIHNzaXplX3QgdmVyc2lvbl9zaG93KHN0cnVjdCBjbGFzcyAqZGV2LCBjaGFyICpidWYpCit7CisJcmV0dXJuIHNwcmludGYoYnVmLCAiJXMgJWQuJWQuJWQgJXNcbiIsIENPUkVfTkFNRSwgQ09SRV9NQUpPUiwKKwkJICAgICAgIENPUkVfTUlOT1IsIENPUkVfUEFUQ0hMRVZFTCwgQ09SRV9EQVRFKTsKK30KKworc3RhdGljIENMQVNTX0FUVFIodmVyc2lvbiwgU19JUlVHTywgdmVyc2lvbl9zaG93LCBOVUxMKTsKKworLyoqCisgKiBkcm1fc3lzZnNfY3JlYXRlIC0gY3JlYXRlIGEgc3RydWN0IGRybV9zeXNmc19jbGFzcyBzdHJ1Y3R1cmUKKyAqIEBvd25lcjogcG9pbnRlciB0byB0aGUgbW9kdWxlIHRoYXQgaXMgdG8gIm93biIgdGhpcyBzdHJ1Y3QgZHJtX3N5c2ZzX2NsYXNzCisgKiBAbmFtZTogcG9pbnRlciB0byBhIHN0cmluZyBmb3IgdGhlIG5hbWUgb2YgdGhpcyBjbGFzcy4KKyAqCisgKiBUaGlzIGlzIHVzZWQgdG8gY3JlYXRlIERSTSBjbGFzcyBwb2ludGVyIHRoYXQgY2FuIHRoZW4gYmUgdXNlZAorICogaW4gY2FsbHMgdG8gZHJtX3N5c2ZzX2RldmljZV9hZGQoKS4KKyAqCisgKiBOb3RlLCB0aGUgcG9pbnRlciBjcmVhdGVkIGhlcmUgaXMgdG8gYmUgZGVzdHJveWVkIHdoZW4gZmluaXNoZWQgYnkgbWFraW5nIGEKKyAqIGNhbGwgdG8gZHJtX3N5c2ZzX2Rlc3Ryb3koKS4KKyAqLworc3RydWN0IGNsYXNzICpkcm1fc3lzZnNfY3JlYXRlKHN0cnVjdCBtb2R1bGUgKm93bmVyLCBjaGFyICpuYW1lKQoreworCXN0cnVjdCBjbGFzcyAqY2xhc3M7CisJaW50IGVycjsKKworCWNsYXNzID0gY2xhc3NfY3JlYXRlKG93bmVyLCBuYW1lKTsKKwlpZiAoSVNfRVJSKGNsYXNzKSkgeworCQllcnIgPSBQVFJfRVJSKGNsYXNzKTsKKwkJZ290byBlcnJfb3V0OworCX0KKworCWNsYXNzLT5zdXNwZW5kID0gZHJtX3N5c2ZzX3N1c3BlbmQ7CisJY2xhc3MtPnJlc3VtZSA9IGRybV9zeXNmc19yZXN1bWU7CisKKwllcnIgPSBjbGFzc19jcmVhdGVfZmlsZShjbGFzcywgJmNsYXNzX2F0dHJfdmVyc2lvbik7CisJaWYgKGVycikKKwkJZ290byBlcnJfb3V0X2NsYXNzOworCisJcmV0dXJuIGNsYXNzOworCitlcnJfb3V0X2NsYXNzOgorCWNsYXNzX2Rlc3Ryb3koY2xhc3MpOworZXJyX291dDoKKwlyZXR1cm4gRVJSX1BUUihlcnIpOworfQorCisvKioKKyAqIGRybV9zeXNmc19kZXN0cm95IC0gZGVzdHJveXMgRFJNIGNsYXNzCisgKgorICogRGVzdHJveSB0aGUgRFJNIGRldmljZSBjbGFzcy4KKyAqLwordm9pZCBkcm1fc3lzZnNfZGVzdHJveSh2b2lkKQoreworCWlmICgoZHJtX2NsYXNzID09IE5VTEwpIHx8IChJU19FUlIoZHJtX2NsYXNzKSkpCisJCXJldHVybjsKKwljbGFzc19yZW1vdmVfZmlsZShkcm1fY2xhc3MsICZjbGFzc19hdHRyX3ZlcnNpb24pOworCWNsYXNzX2Rlc3Ryb3koZHJtX2NsYXNzKTsKK30KKworc3RhdGljIHNzaXplX3Qgc2hvd19kcmkoc3RydWN0IGRldmljZSAqZGV2aWNlLCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCWNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgZHJtX21pbm9yICpkcm1fbWlub3IgPSB0b19kcm1fbWlub3IoZGV2aWNlKTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRybV9taW5vci0+ZGV2OworCWlmIChkcm1fZGV2LT5kcml2ZXItPmRyaV9saWJyYXJ5X25hbWUpCisJCXJldHVybiBkcm1fZGV2LT5kcml2ZXItPmRyaV9saWJyYXJ5X25hbWUoZHJtX2RldiwgYnVmKTsKKwlyZXR1cm4gc25wcmludGYoYnVmLCBQQUdFX1NJWkUsICIlc1xuIiwgZHJtX2Rldi0+ZHJpdmVyLT5wY2lfZHJpdmVyLm5hbWUpOworfQorCitzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2aWNlX2F0dHJzW10gPSB7CisJX19BVFRSKGRyaV9saWJyYXJ5X25hbWUsIFNfSVJVR08sIHNob3dfZHJpLCBOVUxMKSwKK307CisKKy8qKgorICogZHJtX3N5c2ZzX2RldmljZV9yZWxlYXNlIC0gZG8gbm90aGluZworICogQGRldjogTGludXggZGV2aWNlCisgKgorICogTm9ybWFsbHksIHRoaXMgd291bGQgZnJlZSB0aGUgRFJNIGRldmljZSBhc3NvY2lhdGVkIHdpdGggQGRldiwgYWxvbmcKKyAqIHdpdGggY2xlYW5pbmcgdXAgYW55IG90aGVyIHN0dWZmLiAgQnV0IHdlIGRvIHRoYXQgaW4gdGhlIERSTSBjb3JlLCBzbworICogdGhpcyBmdW5jdGlvbiBjYW4ganVzdCByZXR1cm4gYW5kIGhvcGUgdGhhdCB0aGUgY29yZSBkb2VzIGl0cyBqb2IuCisgKi8KK3N0YXRpYyB2b2lkIGRybV9zeXNmc19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJcmV0dXJuOworfQorCisvKioKKyAqIGRybV9zeXNmc19kZXZpY2VfYWRkIC0gYWRkcyBhIGNsYXNzIGRldmljZSB0byBzeXNmcyBmb3IgYSBjaGFyYWN0ZXIgZHJpdmVyCisgKiBAZGV2OiBEUk0gZGV2aWNlIHRvIGJlIGFkZGVkCisgKiBAaGVhZDogRFJNIGhlYWQgaW4gcXVlc3Rpb24KKyAqCisgKiBBZGQgYSBEUk0gZGV2aWNlIHRvIHRoZSBEUk0ncyBkZXZpY2UgbW9kZWwgY2xhc3MuICBXZSB1c2UgQGRldidzIFBDSSBkZXZpY2UKKyAqIGFzIHRoZSBwYXJlbnQgZm9yIHRoZSBMaW51eCBkZXZpY2UsIGFuZCBtYWtlIHN1cmUgaXQgaGFzIGEgZmlsZSBjb250YWluaW5nCisgKiB0aGUgZHJpdmVyIHdlJ3JlIHVzaW5nIChmb3IgdXNlcnNwYWNlIGNvbXBhdGliaWxpdHkpLgorICovCitpbnQgZHJtX3N5c2ZzX2RldmljZV9hZGQoc3RydWN0IGRybV9taW5vciAqbWlub3IpCit7CisJaW50IGVycjsKKwlpbnQgaSwgajsKKwljaGFyICptaW5vcl9zdHI7CisKKwltaW5vci0+a2Rldi5wYXJlbnQgPSAmbWlub3ItPmRldi0+cGRldi0+ZGV2OworCW1pbm9yLT5rZGV2LmNsYXNzID0gZHJtX2NsYXNzOworCW1pbm9yLT5rZGV2LnJlbGVhc2UgPSBkcm1fc3lzZnNfZGV2aWNlX3JlbGVhc2U7CisJbWlub3ItPmtkZXYuZGV2dCA9IG1pbm9yLT5kZXZpY2U7CisJbWlub3Jfc3RyID0gImNhcmQlZCI7CisKKwlzbnByaW50ZihtaW5vci0+a2Rldi5idXNfaWQsIEJVU19JRF9TSVpFLCBtaW5vcl9zdHIsIG1pbm9yLT5pbmRleCk7CisKKwllcnIgPSBkZXZpY2VfcmVnaXN0ZXIoJm1pbm9yLT5rZGV2KTsKKwlpZiAoZXJyKSB7CisJCURSTV9FUlJPUigiZGV2aWNlIGFkZCBmYWlsZWQ6ICVkXG4iLCBlcnIpOworCQlnb3RvIGVycl9vdXQ7CisJfQorCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGV2aWNlX2F0dHJzKTsgaSsrKSB7CisJCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZSgmbWlub3ItPmtkZXYsICZkZXZpY2VfYXR0cnNbaV0pOworCQlpZiAoZXJyKQorCQkJZ290byBlcnJfb3V0X2ZpbGVzOworCX0KKworCXJldHVybiAwOworCitlcnJfb3V0X2ZpbGVzOgorCWlmIChpID4gMCkKKwkJZm9yIChqID0gMDsgaiA8IGk7IGorKykKKwkJCWRldmljZV9yZW1vdmVfZmlsZSgmbWlub3ItPmtkZXYsICZkZXZpY2VfYXR0cnNbaV0pOworCWRldmljZV91bnJlZ2lzdGVyKCZtaW5vci0+a2Rldik7CitlcnJfb3V0OgorCisJcmV0dXJuIGVycjsKK30KKworLyoqCisgKiBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZSAtIHJlbW92ZSBEUk0gZGV2aWNlCisgKiBAZGV2OiBEUk0gZGV2aWNlIHRvIHJlbW92ZQorICoKKyAqIFRoaXMgY2FsbCB1bnJlZ2lzdGVycyBhbmQgY2xlYW5zIHVwIGEgY2xhc3MgZGV2aWNlIHRoYXQgd2FzIGNyZWF0ZWQgd2l0aCBhCisgKiBjYWxsIHRvIGRybV9zeXNmc19kZXZpY2VfYWRkKCkKKyAqLwordm9pZCBkcm1fc3lzZnNfZGV2aWNlX3JlbW92ZShzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldmljZV9hdHRycyk7IGkrKykKKwkJZGV2aWNlX3JlbW92ZV9maWxlKCZtaW5vci0+a2RldiwgJmRldmljZV9hdHRyc1tpXSk7CisJZGV2aWNlX3VucmVnaXN0ZXIoJm1pbm9yLT5rZGV2KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ZtLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3ZtLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9kcm1fdm0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k4MTAvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mzg0NGVjCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCitpODEwLXkgOj0gaTgxMF9kcnYubyBpODEwX2RtYS5vCisKK29iai0kKENPTkZJR19EUk1fSTgxMCkJKz0gaTgxMC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MTBfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2RtYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MTBfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pODEwL2k4MTBfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgxMF9kcnYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODEwX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k4MTAvaTgxMF9kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODEwX2Rydi5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgxMC9pODEwX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTgzMC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2NDJlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9NYWtlZmlsZQpAQCAtMCwwICsxLDggQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK2k4MzAteSA6PSBpODMwX2Rydi5vIGk4MzBfZG1hLm8gaTgzMF9pcnEubworCitvYmotJChDT05GSUdfRFJNX0k4MzApICs9IGk4MzAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTgzMF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pODMwL2k4MzBfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTgzMF9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODMwX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k4MzAvaTgzMF9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODMwX2lycS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vaTgzMC9pODMwX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5ZTYwNDYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCitpOTE1LXkgOj0gaTkxNV9kcnYubyBpOTE1X2RtYS5vIGk5MTVfaXJxLm8gaTkxNV9tZW0ubworCitpOTE1LSQoQ09ORklHX0NPTVBBVCkgICArPSBpOTE1X2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9JOTE1KSAgKz0gaTkxNS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYWVkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0wLDAgKzEsNjA1IEBACisvKiBpOTE1X2Rydi5jIC0tIGk4MzAsaTg0NSxpODU1LGk4NjUsaTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCisgKi8KKy8qCisgKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJpOTE1X2RybS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKyNpbmNsdWRlICJkcm1fcGNpaWRzLmgiCisKK3N0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKKwlpOTE1X1BDSV9JRFMKK307CisKK2VudW0gcGlwZSB7CisgICAgUElQRV9BID0gMCwKKyAgICBQSVBFX0IsCit9OworCitzdGF0aWMgYm9vbCBpOTE1X3BpcGVfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJaWYgKHBpcGUgPT0gUElQRV9BKQorCQlyZXR1cm4gKEk5MTVfUkVBRChEUExMX0EpICYgRFBMTF9WQ09fRU5BQkxFKTsKKwllbHNlCisJCXJldHVybiAoSTkxNV9SRUFEKERQTExfQikgJiBEUExMX1ZDT19FTkFCTEUpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3NhdmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKKwl1MzIgKmFycmF5OworCWludCBpOworCisJaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQorCQlyZXR1cm47CisKKwlpZiAocGlwZSA9PSBQSVBFX0EpCisJCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOworCWVsc2UKKwkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7CisKKwlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJYXJyYXlbaV0gPSBJOTE1X1JFQUQocmVnICsgKGkgPDwgMikpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3Jlc3RvcmVfcGFsZXR0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGxvbmcgcmVnID0gKHBpcGUgPT0gUElQRV9BID8gUEFMRVRURV9BIDogUEFMRVRURV9CKTsKKwl1MzIgKmFycmF5OworCWludCBpOworCisJaWYgKCFpOTE1X3BpcGVfZW5hYmxlZChkZXYsIHBpcGUpKQorCQlyZXR1cm47CisKKwlpZiAocGlwZSA9PSBQSVBFX0EpCisJCWFycmF5ID0gZGV2X3ByaXYtPnNhdmVfcGFsZXR0ZV9hOworCWVsc2UKKwkJYXJyYXkgPSBkZXZfcHJpdi0+c2F2ZV9wYWxldHRlX2I7CisKKwlmb3IoaSA9IDA7IGkgPCAyNTY7IGkrKykKKwkJSTkxNV9XUklURShyZWcgKyAoaSA8PCAyKSwgYXJyYXlbaV0pOworfQorCitzdGF0aWMgdTggaTkxNV9yZWFkX2luZGV4ZWQodTE2IGluZGV4X3BvcnQsIHUxNiBkYXRhX3BvcnQsIHU4IHJlZykKK3sKKwlvdXRiKHJlZywgaW5kZXhfcG9ydCk7CisJcmV0dXJuIGluYihkYXRhX3BvcnQpOworfQorCitzdGF0aWMgdTggaTkxNV9yZWFkX2FyKHUxNiBzdDAxLCB1OCByZWcsIHUxNiBwYWxldHRlX2VuYWJsZSkKK3sKKwlpbmIoc3QwMSk7CisJb3V0YihwYWxldHRlX2VuYWJsZSB8IHJlZywgVkdBX0FSX0lOREVYKTsKKwlyZXR1cm4gaW5iKFZHQV9BUl9EQVRBX1JFQUQpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X3dyaXRlX2FyKHU4IHN0MDEsIHU4IHJlZywgdTggdmFsLCB1MTYgcGFsZXR0ZV9lbmFibGUpCit7CisJaW5iKHN0MDEpOworCW91dGIocGFsZXR0ZV9lbmFibGUgfCByZWcsIFZHQV9BUl9JTkRFWCk7CisJb3V0Yih2YWwsIFZHQV9BUl9EQVRBX1dSSVRFKTsKK30KKworc3RhdGljIHZvaWQgaTkxNV93cml0ZV9pbmRleGVkKHUxNiBpbmRleF9wb3J0LCB1MTYgZGF0YV9wb3J0LCB1OCByZWcsIHU4IHZhbCkKK3sKKwlvdXRiKHJlZywgaW5kZXhfcG9ydCk7CisJb3V0Yih2YWwsIGRhdGFfcG9ydCk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfc2F2ZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKKworCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLworCWRldl9wcml2LT5zYXZlREFDTUFTSyA9IGluYihWR0FfREFDTUFTSyk7CisJLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLworCW91dGIoMCwgVkdBX0RBQ1JYKTsKKwkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KKwlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZURBQ0RBVEFbaV0gPSBpbmIoVkdBX0RBQ0RBVEEpOworCisJLyogTVNSIGJpdHMgKi8KKwlkZXZfcHJpdi0+c2F2ZU1TUiA9IGluYihWR0FfTVNSX1JFQUQpOworCWlmIChkZXZfcHJpdi0+c2F2ZU1TUiAmIFZHQV9NU1JfQ0dBX01PREUpIHsKKwkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfQ0dBOworCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfQ0dBOworCQlzdDAxID0gVkdBX1NUMDFfQ0dBOworCX0gZWxzZSB7CisJCWNyX2luZGV4ID0gVkdBX0NSX0lOREVYX01EQTsKKwkJY3JfZGF0YSA9IFZHQV9DUl9EQVRBX01EQTsKKwkJc3QwMSA9IFZHQV9TVDAxX01EQTsKKwl9CisKKwkvKiBDUlQgY29udHJvbGxlciByZWdzICovCisJaTkxNV93cml0ZV9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCAweDExLAorCQkJICAgaTkxNV9yZWFkX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEpICYKKwkJCSAgICh+MHg4MCkpOworCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZUNSW2ldID0KKwkJCWk5MTVfcmVhZF9pbmRleGVkKGNyX2luZGV4LCBjcl9kYXRhLCBpKTsKKwkvKiBNYWtlIHN1cmUgd2UgZG9uJ3QgdHVybiBvZmYgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KKwlkZXZfcHJpdi0+c2F2ZUNSWzB4MTFdICY9IH4weDgwOworCisJLyogQXR0cmlidXRlIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCisJaW5iKHN0MDEpOworCWRldl9wcml2LT5zYXZlQVJfSU5ERVggPSBpbmIoVkdBX0FSX0lOREVYKTsKKwlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKKwkJZGV2X3ByaXYtPnNhdmVBUltpXSA9IGk5MTVfcmVhZF9hcihzdDAxLCBpLCAwKTsKKwlpbmIoc3QwMSk7CisJb3V0YihkZXZfcHJpdi0+c2F2ZUFSX0lOREVYLCBWR0FfQVJfSU5ERVgpOworCWluYihzdDAxKTsKKworCS8qIEdyYXBoaWNzIGNvbnRyb2xsZXIgcmVnaXN0ZXJzICovCisJZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKwkJZGV2X3ByaXYtPnNhdmVHUltpXSA9CisJCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCBpKTsKKworCWRldl9wcml2LT5zYXZlR1JbMHgxMF0gPQorCQlpOTE1X3JlYWRfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDEwKTsKKwlkZXZfcHJpdi0+c2F2ZUdSWzB4MTFdID0KKwkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMSk7CisJZGV2X3ByaXYtPnNhdmVHUlsweDE4XSA9CisJCWk5MTVfcmVhZF9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgpOworCisJLyogU2VxdWVuY2VyIHJlZ2lzdGVycyAqLworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCisJCWRldl9wcml2LT5zYXZlU1JbaV0gPQorCQkJaTkxNV9yZWFkX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSk7Cit9CisKK3N0YXRpYyB2b2lkIGk5MTVfcmVzdG9yZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCXUxNiBjcl9pbmRleCwgY3JfZGF0YSwgc3QwMTsKKworCS8qIE1TUiBiaXRzICovCisJb3V0YihkZXZfcHJpdi0+c2F2ZU1TUiwgVkdBX01TUl9XUklURSk7CisJaWYgKGRldl9wcml2LT5zYXZlTVNSICYgVkdBX01TUl9DR0FfTU9ERSkgeworCQljcl9pbmRleCA9IFZHQV9DUl9JTkRFWF9DR0E7CisJCWNyX2RhdGEgPSBWR0FfQ1JfREFUQV9DR0E7CisJCXN0MDEgPSBWR0FfU1QwMV9DR0E7CisJfSBlbHNlIHsKKwkJY3JfaW5kZXggPSBWR0FfQ1JfSU5ERVhfTURBOworCQljcl9kYXRhID0gVkdBX0NSX0RBVEFfTURBOworCQlzdDAxID0gVkdBX1NUMDFfTURBOworCX0KKworCS8qIFNlcXVlbmNlciByZWdpc3RlcnMsIGRvbid0IHdyaXRlIFNSMDcgKi8KKwlmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKQorCQlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX1NSX0lOREVYLCBWR0FfU1JfREFUQSwgaSwKKwkJCQkgICBkZXZfcHJpdi0+c2F2ZVNSW2ldKTsKKworCS8qIENSVCBjb250cm9sbGVyIHJlZ3MgKi8KKwkvKiBFbmFibGUgQ1IgZ3JvdXAgMCB3cml0ZXMgKi8KKwlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIDB4MTEsIGRldl9wcml2LT5zYXZlQ1JbMHgxMV0pOworCWZvciAoaSA9IDA7IGkgPD0gMHgyNDsgaSsrKQorCQlpOTE1X3dyaXRlX2luZGV4ZWQoY3JfaW5kZXgsIGNyX2RhdGEsIGksIGRldl9wcml2LT5zYXZlQ1JbaV0pOworCisJLyogR3JhcGhpY3MgY29udHJvbGxlciByZWdzICovCisJZm9yIChpID0gMDsgaSA8IDk7IGkrKykKKwkJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIGksCisJCQkJICAgZGV2X3ByaXYtPnNhdmVHUltpXSk7CisKKwlpOTE1X3dyaXRlX2luZGV4ZWQoVkdBX0dSX0lOREVYLCBWR0FfR1JfREFUQSwgMHgxMCwKKwkJCSAgIGRldl9wcml2LT5zYXZlR1JbMHgxMF0pOworCWk5MTVfd3JpdGVfaW5kZXhlZChWR0FfR1JfSU5ERVgsIFZHQV9HUl9EQVRBLCAweDExLAorCQkJICAgZGV2X3ByaXYtPnNhdmVHUlsweDExXSk7CisJaTkxNV93cml0ZV9pbmRleGVkKFZHQV9HUl9JTkRFWCwgVkdBX0dSX0RBVEEsIDB4MTgsCisJCQkgICBkZXZfcHJpdi0+c2F2ZUdSWzB4MThdKTsKKworCS8qIEF0dHJpYnV0ZSBjb250cm9sbGVyIHJlZ2lzdGVycyAqLworCWluYihzdDAxKTsKKwlmb3IgKGkgPSAwOyBpIDw9IDB4MTQ7IGkrKykKKwkJaTkxNV93cml0ZV9hcihzdDAxLCBpLCBkZXZfcHJpdi0+c2F2ZUFSW2ldLCAwKTsKKwlpbmIoc3QwMSk7IC8qIHN3aXRjaCBiYWNrIHRvIGluZGV4IG1vZGUgKi8KKwlvdXRiKGRldl9wcml2LT5zYXZlQVJfSU5ERVggfCAweDIwLCBWR0FfQVJfSU5ERVgpOworCWluYihzdDAxKTsKKworCS8qIFZHQSBjb2xvciBwYWxldHRlIHJlZ2lzdGVycyAqLworCW91dGIoZGV2X3ByaXYtPnNhdmVEQUNNQVNLLCBWR0FfREFDTUFTSyk7CisJLyogREFDQ1JYIGF1dG9tYXRpY2FsbHkgaW5jcmVtZW50cyBkdXJpbmcgcmVhZCAqLworCW91dGIoMCwgVkdBX0RBQ1dYKTsKKwkvKiBSZWFkIDMgYnl0ZXMgb2YgY29sb3IgZGF0YSBmcm9tIGVhY2ggaW5kZXggKi8KKwlmb3IgKGkgPSAwOyBpIDwgMjU2ICogMzsgaSsrKQorCQlvdXRiKGRldl9wcml2LT5zYXZlREFDREFUQVtpXSwgVkdBX0RBQ0RBVEEpOworCit9CisKK3N0YXRpYyBpbnQgaTkxNV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCisJaWYgKCFkZXYgfHwgIWRldl9wcml2KSB7CisJCXByaW50ayhLRVJOX0VSUiAiZGV2OiAlcCwgZGV2X3ByaXY6ICVwXG4iLCBkZXYsIGRldl9wcml2KTsKKwkJcHJpbnRrKEtFUk5fRVJSICJEUk0gbm90IGluaXRpYWxpemVkLCBhYm9ydGluZyBzdXNwZW5kLlxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlmIChzdGF0ZS5ldmVudCA9PSBQTV9FVkVOVF9QUkVUSEFXKQorCQlyZXR1cm4gMDsKKworCXBjaV9zYXZlX3N0YXRlKGRldi0+cGRldik7CisJcGNpX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsICZkZXZfcHJpdi0+c2F2ZUxCQik7CisKKwkvKiBEaXNwbGF5IGFyYml0cmF0aW9uIGNvbnRyb2wgKi8KKwlkZXZfcHJpdi0+c2F2ZURTUEFSQiA9IEk5MTVfUkVBRChEU1BBUkIpOworCisJLyogUGlwZSAmIHBsYW5lIEEgaW5mbyAqLworCWRldl9wcml2LT5zYXZlUElQRUFDT05GID0gSTkxNV9SRUFEKFBJUEVBQ09ORik7CisJZGV2X3ByaXYtPnNhdmVQSVBFQVNSQyA9IEk5MTVfUkVBRChQSVBFQVNSQyk7CisJZGV2X3ByaXYtPnNhdmVGUEEwID0gSTkxNV9SRUFEKEZQQTApOworCWRldl9wcml2LT5zYXZlRlBBMSA9IEk5MTVfUkVBRChGUEExKTsKKwlkZXZfcHJpdi0+c2F2ZURQTExfQSA9IEk5MTVfUkVBRChEUExMX0EpOworCWlmIChJU19JOTY1RyhkZXYpKQorCQlkZXZfcHJpdi0+c2F2ZURQTExfQV9NRCA9IEk5MTVfUkVBRChEUExMX0FfTUQpOworCWRldl9wcml2LT5zYXZlSFRPVEFMX0EgPSBJOTE1X1JFQUQoSFRPVEFMX0EpOworCWRldl9wcml2LT5zYXZlSEJMQU5LX0EgPSBJOTE1X1JFQUQoSEJMQU5LX0EpOworCWRldl9wcml2LT5zYXZlSFNZTkNfQSA9IEk5MTVfUkVBRChIU1lOQ19BKTsKKwlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9BID0gSTkxNV9SRUFEKFZUT1RBTF9BKTsKKwlkZXZfcHJpdi0+c2F2ZVZCTEFOS19BID0gSTkxNV9SRUFEKFZCTEFOS19BKTsKKwlkZXZfcHJpdi0+c2F2ZVZTWU5DX0EgPSBJOTE1X1JFQUQoVlNZTkNfQSk7CisJZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKKworCWRldl9wcml2LT5zYXZlRFNQQUNOVFIgPSBJOTE1X1JFQUQoRFNQQUNOVFIpOworCWRldl9wcml2LT5zYXZlRFNQQVNUUklERSA9IEk5MTVfUkVBRChEU1BBU1RSSURFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEFTSVpFID0gSTkxNV9SRUFEKERTUEFTSVpFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEFQT1MgPSBJOTE1X1JFQUQoRFNQQVBPUyk7CisJZGV2X3ByaXYtPnNhdmVEU1BBQkFTRSA9IEk5MTVfUkVBRChEU1BBQkFTRSk7CisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJZGV2X3ByaXYtPnNhdmVEU1BBU1VSRiA9IEk5MTVfUkVBRChEU1BBU1VSRik7CisJCWRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYgPSBJOTE1X1JFQUQoRFNQQVRJTEVPRkYpOworCX0KKwlpOTE1X3NhdmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7CisJZGV2X3ByaXYtPnNhdmVQSVBFQVNUQVQgPSBJOTE1X1JFQUQoSTkxNVJFR19QSVBFQVNUQVQpOworCisJLyogUGlwZSAmIHBsYW5lIEIgaW5mbyAqLworCWRldl9wcml2LT5zYXZlUElQRUJDT05GID0gSTkxNV9SRUFEKFBJUEVCQ09ORik7CisJZGV2X3ByaXYtPnNhdmVQSVBFQlNSQyA9IEk5MTVfUkVBRChQSVBFQlNSQyk7CisJZGV2X3ByaXYtPnNhdmVGUEIwID0gSTkxNV9SRUFEKEZQQjApOworCWRldl9wcml2LT5zYXZlRlBCMSA9IEk5MTVfUkVBRChGUEIxKTsKKwlkZXZfcHJpdi0+c2F2ZURQTExfQiA9IEk5MTVfUkVBRChEUExMX0IpOworCWlmIChJU19JOTY1RyhkZXYpKQorCQlkZXZfcHJpdi0+c2F2ZURQTExfQl9NRCA9IEk5MTVfUkVBRChEUExMX0JfTUQpOworCWRldl9wcml2LT5zYXZlSFRPVEFMX0IgPSBJOTE1X1JFQUQoSFRPVEFMX0IpOworCWRldl9wcml2LT5zYXZlSEJMQU5LX0IgPSBJOTE1X1JFQUQoSEJMQU5LX0IpOworCWRldl9wcml2LT5zYXZlSFNZTkNfQiA9IEk5MTVfUkVBRChIU1lOQ19CKTsKKwlkZXZfcHJpdi0+c2F2ZVZUT1RBTF9CID0gSTkxNV9SRUFEKFZUT1RBTF9CKTsKKwlkZXZfcHJpdi0+c2F2ZVZCTEFOS19CID0gSTkxNV9SRUFEKFZCTEFOS19CKTsKKwlkZXZfcHJpdi0+c2F2ZVZTWU5DX0IgPSBJOTE1X1JFQUQoVlNZTkNfQik7CisJZGV2X3ByaXYtPnNhdmVCQ0xSUEFUX0EgPSBJOTE1X1JFQUQoQkNMUlBBVF9BKTsKKworCWRldl9wcml2LT5zYXZlRFNQQkNOVFIgPSBJOTE1X1JFQUQoRFNQQkNOVFIpOworCWRldl9wcml2LT5zYXZlRFNQQlNUUklERSA9IEk5MTVfUkVBRChEU1BCU1RSSURFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEJTSVpFID0gSTkxNV9SRUFEKERTUEJTSVpFKTsKKwlkZXZfcHJpdi0+c2F2ZURTUEJQT1MgPSBJOTE1X1JFQUQoRFNQQlBPUyk7CisJZGV2X3ByaXYtPnNhdmVEU1BCQkFTRSA9IEk5MTVfUkVBRChEU1BCQkFTRSk7CisJaWYgKElTX0k5NjVHTShkZXYpIHx8IElTX0lHRF9HTShkZXYpKSB7CisJCWRldl9wcml2LT5zYXZlRFNQQlNVUkYgPSBJOTE1X1JFQUQoRFNQQlNVUkYpOworCQlkZXZfcHJpdi0+c2F2ZURTUEJUSUxFT0ZGID0gSTkxNV9SRUFEKERTUEJUSUxFT0ZGKTsKKwl9CisJaTkxNV9zYXZlX3BhbGV0dGUoZGV2LCBQSVBFX0IpOworCWRldl9wcml2LT5zYXZlUElQRUJTVEFUID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUJTVEFUKTsKKworCS8qIENSVCBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlQURQQSA9IEk5MTVfUkVBRChBRFBBKTsKKworCS8qIExWRFMgc3RhdGUgKi8KKwlkZXZfcHJpdi0+c2F2ZVBQX0NPTlRST0wgPSBJOTE1X1JFQUQoUFBfQ09OVFJPTCk7CisJZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MgPSBJOTE1X1JFQUQoUEZJVF9QR01fUkFUSU9TKTsKKwlkZXZfcHJpdi0+c2F2ZUJMQ19QV01fQ1RMID0gSTkxNV9SRUFEKEJMQ19QV01fQ1RMKTsKKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJZGV2X3ByaXYtPnNhdmVCTENfUFdNX0NUTDIgPSBJOTE1X1JFQUQoQkxDX1BXTV9DVEwyKTsKKwlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKKwkJZGV2X3ByaXYtPnNhdmVMVkRTID0gSTkxNV9SRUFEKExWRFMpOworCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikpCisJCWRldl9wcml2LT5zYXZlUEZJVF9DT05UUk9MID0gSTkxNV9SRUFEKFBGSVRfQ09OVFJPTCk7CisJZGV2X3ByaXYtPnNhdmVMVkRTUFBfT04gPSBJOTE1X1JFQUQoTFZEU1BQX09OKTsKKwlkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PRkYgPSBJOTE1X1JFQUQoTFZEU1BQX09GRik7CisJZGV2X3ByaXYtPnNhdmVQUF9DWUNMRSA9IEk5MTVfUkVBRChQUF9DWUNMRSk7CisKKwkvKiBGSVhNRTogc2F2ZSBUViAmIFNEVk8gc3RhdGUgKi8KKworCS8qIEZCQyBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlRkJDX0NGQl9CQVNFID0gSTkxNV9SRUFEKEZCQ19DRkJfQkFTRSk7CisJZGV2X3ByaXYtPnNhdmVGQkNfTExfQkFTRSA9IEk5MTVfUkVBRChGQkNfTExfQkFTRSk7CisJZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTDIgPSBJOTE1X1JFQUQoRkJDX0NPTlRST0wyKTsKKwlkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MID0gSTkxNV9SRUFEKEZCQ19DT05UUk9MKTsKKworCS8qIEludGVycnVwdCBzdGF0ZSAqLworCWRldl9wcml2LT5zYXZlSUlSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOworCWRldl9wcml2LT5zYXZlSUVSID0gSTkxNV9SRUFEKEk5MTVSRUdfSU5UX0VOQUJMRV9SKTsKKwlkZXZfcHJpdi0+c2F2ZUlNUiA9IEk5MTVfUkVBRChJOTE1UkVHX0lOVF9NQVNLX1IpOworCisJLyogVkdBIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMCA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMCk7CisJZGV2X3ByaXYtPnNhdmVWQ0xLX0RJVklTT1JfVkdBMSA9IEk5MTVfUkVBRChWQ0xLX0RJVklTT1JfVkdBMSk7CisJZGV2X3ByaXYtPnNhdmVWQ0xLX1BPU1RfRElWID0gSTkxNV9SRUFEKFZDTEtfUE9TVF9ESVYpOworCWRldl9wcml2LT5zYXZlVkdBQ05UUkwgPSBJOTE1X1JFQUQoVkdBQ05UUkwpOworCisJLyogQ2xvY2sgZ2F0aW5nIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVEX1NUQVRFID0gSTkxNV9SRUFEKERfU1RBVEUpOworCWRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCA9IEk5MTVfUkVBRChEU1BDTEtfR0FURV9EKTsKKworCS8qIENhY2hlIG1vZGUgc3RhdGUgKi8KKwlkZXZfcHJpdi0+c2F2ZUNBQ0hFX01PREVfMCA9IEk5MTVfUkVBRChDQUNIRV9NT0RFXzApOworCisJLyogTWVtb3J5IEFyYml0cmF0aW9uIHN0YXRlICovCisJZGV2X3ByaXYtPnNhdmVNSV9BUkJfU1RBVEUgPSBJOTE1X1JFQUQoTUlfQVJCX1NUQVRFKTsKKworCS8qIFNjcmF0Y2ggc3BhY2UgKi8KKwlmb3IgKGkgPSAwOyBpIDwgMTY7IGkrKykgeworCQlkZXZfcHJpdi0+c2F2ZVNXRjBbaV0gPSBJOTE1X1JFQUQoU1dGMCArIChpIDw8IDIpKTsKKwkJZGV2X3ByaXYtPnNhdmVTV0YxW2ldID0gSTkxNV9SRUFEKFNXRjEwICsgKGkgPDwgMikpOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorCQlkZXZfcHJpdi0+c2F2ZVNXRjJbaV0gPSBJOTE1X1JFQUQoU1dGMzAgKyAoaSA8PCAyKSk7CisKKwlpOTE1X3NhdmVfdmdhKGRldik7CisKKwlpZiAoc3RhdGUuZXZlbnQgPT0gUE1fRVZFTlRfU1VTUEVORCkgeworCQkvKiBTaHV0IGRvd24gdGhlIGRldmljZSAqLworCQlwY2lfZGlzYWJsZV9kZXZpY2UoZGV2LT5wZGV2KTsKKwkJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EM2hvdCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaTkxNV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWludCBpOworCisJcGNpX3NldF9wb3dlcl9zdGF0ZShkZXYtPnBkZXYsIFBDSV9EMCk7CisJcGNpX3Jlc3RvcmVfc3RhdGUoZGV2LT5wZGV2KTsKKwlpZiAocGNpX2VuYWJsZV9kZXZpY2UoZGV2LT5wZGV2KSkKKwkJcmV0dXJuIC0xOworCXBjaV9zZXRfbWFzdGVyKGRldi0+cGRldik7CisKKwlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBMQkIsIGRldl9wcml2LT5zYXZlTEJCKTsKKworCUk5MTVfV1JJVEUoRFNQQVJCLCBkZXZfcHJpdi0+c2F2ZURTUEFSQik7CisKKwkvKiBQaXBlICYgcGxhbmUgQSBpbmZvICovCisJLyogUHJpbWUgdGhlIGNsb2NrICovCisJaWYgKGRldl9wcml2LT5zYXZlRFBMTF9BICYgRFBMTF9WQ09fRU5BQkxFKSB7CisJCUk5MTVfV1JJVEUoRFBMTF9BLCBkZXZfcHJpdi0+c2F2ZURQTExfQSAmCisJCQkgICB+RFBMTF9WQ09fRU5BQkxFKTsKKwkJdWRlbGF5KDE1MCk7CisJfQorCUk5MTVfV1JJVEUoRlBBMCwgZGV2X3ByaXYtPnNhdmVGUEEwKTsKKwlJOTE1X1dSSVRFKEZQQTEsIGRldl9wcml2LT5zYXZlRlBBMSk7CisJLyogQWN0dWFsbHkgZW5hYmxlIGl0ICovCisJSTkxNV9XUklURShEUExMX0EsIGRldl9wcml2LT5zYXZlRFBMTF9BKTsKKwl1ZGVsYXkoMTUwKTsKKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJSTkxNV9XUklURShEUExMX0FfTUQsIGRldl9wcml2LT5zYXZlRFBMTF9BX01EKTsKKwl1ZGVsYXkoMTUwKTsKKworCS8qIFJlc3RvcmUgbW9kZSAqLworCUk5MTVfV1JJVEUoSFRPVEFMX0EsIGRldl9wcml2LT5zYXZlSFRPVEFMX0EpOworCUk5MTVfV1JJVEUoSEJMQU5LX0EsIGRldl9wcml2LT5zYXZlSEJMQU5LX0EpOworCUk5MTVfV1JJVEUoSFNZTkNfQSwgZGV2X3ByaXYtPnNhdmVIU1lOQ19BKTsKKwlJOTE1X1dSSVRFKFZUT1RBTF9BLCBkZXZfcHJpdi0+c2F2ZVZUT1RBTF9BKTsKKwlJOTE1X1dSSVRFKFZCTEFOS19BLCBkZXZfcHJpdi0+c2F2ZVZCTEFOS19BKTsKKwlJOTE1X1dSSVRFKFZTWU5DX0EsIGRldl9wcml2LT5zYXZlVlNZTkNfQSk7CisJSTkxNV9XUklURShCQ0xSUEFUX0EsIGRldl9wcml2LT5zYXZlQkNMUlBBVF9BKTsKKworCS8qIFJlc3RvcmUgcGxhbmUgaW5mbyAqLworCUk5MTVfV1JJVEUoRFNQQVNJWkUsIGRldl9wcml2LT5zYXZlRFNQQVNJWkUpOworCUk5MTVfV1JJVEUoRFNQQVBPUywgZGV2X3ByaXYtPnNhdmVEU1BBUE9TKTsKKwlJOTE1X1dSSVRFKFBJUEVBU1JDLCBkZXZfcHJpdi0+c2F2ZVBJUEVBU1JDKTsKKwlJOTE1X1dSSVRFKERTUEFCQVNFLCBkZXZfcHJpdi0+c2F2ZURTUEFCQVNFKTsKKwlJOTE1X1dSSVRFKERTUEFTVFJJREUsIGRldl9wcml2LT5zYXZlRFNQQVNUUklERSk7CisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJSTkxNV9XUklURShEU1BBU1VSRiwgZGV2X3ByaXYtPnNhdmVEU1BBU1VSRik7CisJCUk5MTVfV1JJVEUoRFNQQVRJTEVPRkYsIGRldl9wcml2LT5zYXZlRFNQQVRJTEVPRkYpOworCX0KKworCUk5MTVfV1JJVEUoUElQRUFDT05GLCBkZXZfcHJpdi0+c2F2ZVBJUEVBQ09ORik7CisKKwlpOTE1X3Jlc3RvcmVfcGFsZXR0ZShkZXYsIFBJUEVfQSk7CisJLyogRW5hYmxlIHRoZSBwbGFuZSAqLworCUk5MTVfV1JJVEUoRFNQQUNOVFIsIGRldl9wcml2LT5zYXZlRFNQQUNOVFIpOworCUk5MTVfV1JJVEUoRFNQQUJBU0UsIEk5MTVfUkVBRChEU1BBQkFTRSkpOworCisJLyogUGlwZSAmIHBsYW5lIEIgaW5mbyAqLworCWlmIChkZXZfcHJpdi0+c2F2ZURQTExfQiAmIERQTExfVkNPX0VOQUJMRSkgeworCQlJOTE1X1dSSVRFKERQTExfQiwgZGV2X3ByaXYtPnNhdmVEUExMX0IgJgorCQkJICAgfkRQTExfVkNPX0VOQUJMRSk7CisJCXVkZWxheSgxNTApOworCX0KKwlJOTE1X1dSSVRFKEZQQjAsIGRldl9wcml2LT5zYXZlRlBCMCk7CisJSTkxNV9XUklURShGUEIxLCBkZXZfcHJpdi0+c2F2ZUZQQjEpOworCS8qIEFjdHVhbGx5IGVuYWJsZSBpdCAqLworCUk5MTVfV1JJVEUoRFBMTF9CLCBkZXZfcHJpdi0+c2F2ZURQTExfQik7CisJdWRlbGF5KDE1MCk7CisJaWYgKElTX0k5NjVHKGRldikpCisJCUk5MTVfV1JJVEUoRFBMTF9CX01ELCBkZXZfcHJpdi0+c2F2ZURQTExfQl9NRCk7CisJdWRlbGF5KDE1MCk7CisKKwkvKiBSZXN0b3JlIG1vZGUgKi8KKwlJOTE1X1dSSVRFKEhUT1RBTF9CLCBkZXZfcHJpdi0+c2F2ZUhUT1RBTF9CKTsKKwlJOTE1X1dSSVRFKEhCTEFOS19CLCBkZXZfcHJpdi0+c2F2ZUhCTEFOS19CKTsKKwlJOTE1X1dSSVRFKEhTWU5DX0IsIGRldl9wcml2LT5zYXZlSFNZTkNfQik7CisJSTkxNV9XUklURShWVE9UQUxfQiwgZGV2X3ByaXYtPnNhdmVWVE9UQUxfQik7CisJSTkxNV9XUklURShWQkxBTktfQiwgZGV2X3ByaXYtPnNhdmVWQkxBTktfQik7CisJSTkxNV9XUklURShWU1lOQ19CLCBkZXZfcHJpdi0+c2F2ZVZTWU5DX0IpOworCUk5MTVfV1JJVEUoQkNMUlBBVF9CLCBkZXZfcHJpdi0+c2F2ZUJDTFJQQVRfQik7CisKKwkvKiBSZXN0b3JlIHBsYW5lIGluZm8gKi8KKwlJOTE1X1dSSVRFKERTUEJTSVpFLCBkZXZfcHJpdi0+c2F2ZURTUEJTSVpFKTsKKwlJOTE1X1dSSVRFKERTUEJQT1MsIGRldl9wcml2LT5zYXZlRFNQQlBPUyk7CisJSTkxNV9XUklURShQSVBFQlNSQywgZGV2X3ByaXYtPnNhdmVQSVBFQlNSQyk7CisJSTkxNV9XUklURShEU1BCQkFTRSwgZGV2X3ByaXYtPnNhdmVEU1BCQkFTRSk7CisJSTkxNV9XUklURShEU1BCU1RSSURFLCBkZXZfcHJpdi0+c2F2ZURTUEJTVFJJREUpOworCWlmIChJU19JOTY1RyhkZXYpKSB7CisJCUk5MTVfV1JJVEUoRFNQQlNVUkYsIGRldl9wcml2LT5zYXZlRFNQQlNVUkYpOworCQlJOTE1X1dSSVRFKERTUEJUSUxFT0ZGLCBkZXZfcHJpdi0+c2F2ZURTUEJUSUxFT0ZGKTsKKwl9CisKKwlJOTE1X1dSSVRFKFBJUEVCQ09ORiwgZGV2X3ByaXYtPnNhdmVQSVBFQkNPTkYpOworCisJaTkxNV9yZXN0b3JlX3BhbGV0dGUoZGV2LCBQSVBFX0IpOworCS8qIEVuYWJsZSB0aGUgcGxhbmUgKi8KKwlJOTE1X1dSSVRFKERTUEJDTlRSLCBkZXZfcHJpdi0+c2F2ZURTUEJDTlRSKTsKKwlJOTE1X1dSSVRFKERTUEJCQVNFLCBJOTE1X1JFQUQoRFNQQkJBU0UpKTsKKworCS8qIENSVCBzdGF0ZSAqLworCUk5MTVfV1JJVEUoQURQQSwgZGV2X3ByaXYtPnNhdmVBRFBBKTsKKworCS8qIExWRFMgc3RhdGUgKi8KKwlpZiAoSVNfSTk2NUcoZGV2KSkKKwkJSTkxNV9XUklURShCTENfUFdNX0NUTDIsIGRldl9wcml2LT5zYXZlQkxDX1BXTV9DVEwyKTsKKwlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKKwkJSTkxNV9XUklURShMVkRTLCBkZXZfcHJpdi0+c2F2ZUxWRFMpOworCWlmICghSVNfSTgzMChkZXYpICYmICFJU184NDVHKGRldikpCisJCUk5MTVfV1JJVEUoUEZJVF9DT05UUk9MLCBkZXZfcHJpdi0+c2F2ZVBGSVRfQ09OVFJPTCk7CisKKwlJOTE1X1dSSVRFKFBGSVRfUEdNX1JBVElPUywgZGV2X3ByaXYtPnNhdmVQRklUX1BHTV9SQVRJT1MpOworCUk5MTVfV1JJVEUoQkxDX1BXTV9DVEwsIGRldl9wcml2LT5zYXZlQkxDX1BXTV9DVEwpOworCUk5MTVfV1JJVEUoTFZEU1BQX09OLCBkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PTik7CisJSTkxNV9XUklURShMVkRTUFBfT0ZGLCBkZXZfcHJpdi0+c2F2ZUxWRFNQUF9PRkYpOworCUk5MTVfV1JJVEUoUFBfQ1lDTEUsIGRldl9wcml2LT5zYXZlUFBfQ1lDTEUpOworCUk5MTVfV1JJVEUoUFBfQ09OVFJPTCwgZGV2X3ByaXYtPnNhdmVQUF9DT05UUk9MKTsKKworCS8qIEZJWE1FOiByZXN0b3JlIFRWICYgU0RWTyBzdGF0ZSAqLworCisJLyogRkJDIGluZm8gKi8KKwlJOTE1X1dSSVRFKEZCQ19DRkJfQkFTRSwgZGV2X3ByaXYtPnNhdmVGQkNfQ0ZCX0JBU0UpOworCUk5MTVfV1JJVEUoRkJDX0xMX0JBU0UsIGRldl9wcml2LT5zYXZlRkJDX0xMX0JBU0UpOworCUk5MTVfV1JJVEUoRkJDX0NPTlRST0wyLCBkZXZfcHJpdi0+c2F2ZUZCQ19DT05UUk9MMik7CisJSTkxNV9XUklURShGQkNfQ09OVFJPTCwgZGV2X3ByaXYtPnNhdmVGQkNfQ09OVFJPTCk7CisKKwkvKiBWR0Egc3RhdGUgKi8KKwlJOTE1X1dSSVRFKFZHQUNOVFJMLCBkZXZfcHJpdi0+c2F2ZVZHQUNOVFJMKTsKKwlJOTE1X1dSSVRFKFZDTEtfRElWSVNPUl9WR0EwLCBkZXZfcHJpdi0+c2F2ZVZDTEtfRElWSVNPUl9WR0EwKTsKKwlJOTE1X1dSSVRFKFZDTEtfRElWSVNPUl9WR0ExLCBkZXZfcHJpdi0+c2F2ZVZDTEtfRElWSVNPUl9WR0ExKTsKKwlJOTE1X1dSSVRFKFZDTEtfUE9TVF9ESVYsIGRldl9wcml2LT5zYXZlVkNMS19QT1NUX0RJVik7CisJdWRlbGF5KDE1MCk7CisKKwkvKiBDbG9jayBnYXRpbmcgc3RhdGUgKi8KKwlJOTE1X1dSSVRFIChEX1NUQVRFLCBkZXZfcHJpdi0+c2F2ZURfU1RBVEUpOworCUk5MTVfV1JJVEUgKERTUENMS19HQVRFX0QsIGRldl9wcml2LT5zYXZlRFNQQ0xLX0dBVEVfRCk7CisKKwkvKiBDYWNoZSBtb2RlIHN0YXRlICovCisJSTkxNV9XUklURSAoQ0FDSEVfTU9ERV8wLCBkZXZfcHJpdi0+c2F2ZUNBQ0hFX01PREVfMCB8IDB4ZmZmZjAwMDApOworCisJLyogTWVtb3J5IGFyYml0cmF0aW9uIHN0YXRlICovCisJSTkxNV9XUklURSAoTUlfQVJCX1NUQVRFLCBkZXZfcHJpdi0+c2F2ZU1JX0FSQl9TVEFURSB8IDB4ZmZmZjAwMDApOworCisJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKKwkJSTkxNV9XUklURShTV0YwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMFtpXSk7CisJCUk5MTVfV1JJVEUoU1dGMTAgKyAoaSA8PCAyKSwgZGV2X3ByaXYtPnNhdmVTV0YxW2krN10pOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQorCQlJOTE1X1dSSVRFKFNXRjMwICsgKGkgPDwgMiksIGRldl9wcml2LT5zYXZlU1dGMltpXSk7CisKKwlpOTE1X3Jlc3RvcmVfdmdhKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGRyaXZlciA9IHsKKwkvKiBkb24ndCB1c2UgbXRycidzIGhlcmUsIHRoZSBYc2VydmVyIG9yIHVzZXIgc3BhY2UgYXBwIHNob3VsZAorCSAqIGRlYWwgd2l0aCB0aGVtIGZvciBpbnRlbCBoYXJkd2FyZS4KKwkgKi8KKwkuZHJpdmVyX2ZlYXR1cmVzID0KKwkgICAgRFJJVkVSX1VTRV9BR1AgfCBEUklWRVJfUkVRVUlSRV9BR1AgfCAvKiBEUklWRVJfVVNFX01UUlIgfCovCisJICAgIERSSVZFUl9IQVZFX0lSUSB8IERSSVZFUl9JUlFfU0hBUkVEIHwgRFJJVkVSX0lSUV9WQkwgfAorCSAgICBEUklWRVJfSVJRX1ZCTDIsCisJLmxvYWQgPSBpOTE1X2RyaXZlcl9sb2FkLAorCS51bmxvYWQgPSBpOTE1X2RyaXZlcl91bmxvYWQsCisJLmxhc3RjbG9zZSA9IGk5MTVfZHJpdmVyX2xhc3RjbG9zZSwKKwkucHJlY2xvc2UgPSBpOTE1X2RyaXZlcl9wcmVjbG9zZSwKKwkuc3VzcGVuZCA9IGk5MTVfc3VzcGVuZCwKKwkucmVzdW1lID0gaTkxNV9yZXN1bWUsCisJLmRldmljZV9pc19hZ3AgPSBpOTE1X2RyaXZlcl9kZXZpY2VfaXNfYWdwLAorCS52Ymxhbmtfd2FpdCA9IGk5MTVfZHJpdmVyX3ZibGFua193YWl0LAorCS52Ymxhbmtfd2FpdDIgPSBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdDIsCisJLmlycV9wcmVpbnN0YWxsID0gaTkxNV9kcml2ZXJfaXJxX3ByZWluc3RhbGwsCisJLmlycV9wb3N0aW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbCwKKwkuaXJxX3VuaW5zdGFsbCA9IGk5MTVfZHJpdmVyX2lycV91bmluc3RhbGwsCisJLmlycV9oYW5kbGVyID0gaTkxNV9kcml2ZXJfaXJxX2hhbmRsZXIsCisJLnJlY2xhaW1fYnVmZmVycyA9IGRybV9jb3JlX3JlY2xhaW1fYnVmZmVycywKKwkuZ2V0X21hcF9vZnMgPSBkcm1fY29yZV9nZXRfbWFwX29mcywKKwkuZ2V0X3JlZ19vZnMgPSBkcm1fY29yZV9nZXRfcmVnX29mcywKKwkuaW9jdGxzID0gaTkxNV9pb2N0bHMsCisJLmZvcHMgPSB7CisJCSAub3duZXIgPSBUSElTX01PRFVMRSwKKwkJIC5vcGVuID0gZHJtX29wZW4sCisJCSAucmVsZWFzZSA9IGRybV9yZWxlYXNlLAorCQkgLmlvY3RsID0gZHJtX2lvY3RsLAorCQkgLm1tYXAgPSBkcm1fbW1hcCwKKwkJIC5wb2xsID0gZHJtX3BvbGwsCisJCSAuZmFzeW5jID0gZHJtX2Zhc3luYywKKyNpZmRlZiBDT05GSUdfQ09NUEFUCisJCSAuY29tcGF0X2lvY3RsID0gaTkxNV9jb21wYXRfaW9jdGwsCisjZW5kaWYKKwl9LAorCisJLnBjaV9kcml2ZXIgPSB7CisJCSAubmFtZSA9IERSSVZFUl9OQU1FLAorCQkgLmlkX3RhYmxlID0gcGNpaWRsaXN0LAorCX0sCisKKwkubmFtZSA9IERSSVZFUl9OQU1FLAorCS5kZXNjID0gRFJJVkVSX0RFU0MsCisJLmRhdGUgPSBEUklWRVJfREFURSwKKwkubWFqb3IgPSBEUklWRVJfTUFKT1IsCisJLm1pbm9yID0gRFJJVkVSX01JTk9SLAorCS5wYXRjaGxldmVsID0gRFJJVkVSX1BBVENITEVWRUwsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBpOTE1X2luaXQodm9pZCkKK3sKKwlkcml2ZXIubnVtX2lvY3RscyA9IGk5MTVfbWF4X2lvY3RsOworCXJldHVybiBkcm1faW5pdCgmZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGk5MTVfZXhpdCh2b2lkKQoreworCWRybV9leGl0KCZkcml2ZXIpOworfQorCittb2R1bGVfaW5pdChpOTE1X2luaXQpOworbW9kdWxlX2V4aXQoaTkxNV9leGl0KTsKKworTU9EVUxFX0FVVEhPUihEUklWRVJfQVVUSE9SKTsKK01PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7CitNT0RVTEVfTElDRU5TRSgiR1BMIGFuZCBhZGRpdGlvbmFsIHJpZ2h0cyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczMjZkOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTAsMCArMSwxMTQyIEBACisvKiBpOTE1X2Rydi5oIC0tIFByaXZhdGUgaGVhZGVyIGZvciB0aGUgSTkxNSBkcml2ZXIgLSotIGxpbnV4LWMgLSotCisgKi8KKy8qCisgKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBfSTkxNV9EUlZfSF8KKyNkZWZpbmUgX0k5MTVfRFJWX0hfCisKKy8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKKyAqLworCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJUdW5nc3RlbiBHcmFwaGljcywgSW5jLiIKKworI2RlZmluZSBEUklWRVJfTkFNRQkJImk5MTUiCisjZGVmaW5lIERSSVZFUl9ERVNDCQkiSW50ZWwgR3JhcGhpY3MiCisjZGVmaW5lIERSSVZFUl9EQVRFCQkiMjAwNjAxMTkiCisKKy8qIEludGVyZmFjZSBoaXN0b3J5OgorICoKKyAqIDEuMTogT3JpZ2luYWwuCisgKiAxLjI6IEFkZCBQb3dlciBNYW5hZ2VtZW50CisgKiAxLjM6IEFkZCB2Ymxhbmsgc3VwcG9ydAorICogMS40OiBGaXggY21kYnVmZmVyIHBhdGgsIGFkZCBoZWFwIGRlc3Ryb3kKKyAqIDEuNTogQWRkIHZibGFuayBwaXBlIGNvbmZpZ3VyYXRpb24KKyAqIDEuNjogLSBOZXcgaW9jdGwgZm9yIHNjaGVkdWxpbmcgYnVmZmVyIHN3YXBzIG9uIHZlcnRpY2FsIGJsYW5rCisgKiAgICAgIC0gU3VwcG9ydCB2ZXJ0aWNhbCBibGFuayBvbiBzZWNvbmRhcnkgZGlzcGxheSBwaXBlCisgKi8KKyNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCisjZGVmaW5lIERSSVZFUl9NSU5PUgkJNgorI2RlZmluZSBEUklWRVJfUEFUQ0hMRVZFTAkwCisKK3R5cGVkZWYgc3RydWN0IF9kcm1faTkxNV9yaW5nX2J1ZmZlciB7CisJaW50IHRhaWxfbWFzazsKKwl1bnNpZ25lZCBsb25nIFN0YXJ0OworCXVuc2lnbmVkIGxvbmcgRW5kOworCXVuc2lnbmVkIGxvbmcgU2l6ZTsKKwl1OCAqdmlydHVhbF9zdGFydDsKKwlpbnQgaGVhZDsKKwlpbnQgdGFpbDsKKwlpbnQgc3BhY2U7CisJZHJtX2xvY2FsX21hcF90IG1hcDsKK30gZHJtX2k5MTVfcmluZ19idWZmZXJfdDsKKworc3RydWN0IG1lbV9ibG9jayB7CisJc3RydWN0IG1lbV9ibG9jayAqbmV4dDsKKwlzdHJ1Y3QgbWVtX2Jsb2NrICpwcmV2OworCWludCBzdGFydDsKKwlpbnQgc2l6ZTsKKwlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdjsgLyogTlVMTDogZnJlZSwgLTE6IGhlYXAsIG90aGVyOiByZWFsIGZpbGVzICovCit9OworCit0eXBlZGVmIHN0cnVjdCBfZHJtX2k5MTVfdmJsX3N3YXAgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwlkcm1fZHJhd2FibGVfdCBkcndfaWQ7CisJdW5zaWduZWQgaW50IHBpcGU7CisJdW5zaWduZWQgaW50IHNlcXVlbmNlOworfSBkcm1faTkxNV92Ymxfc3dhcF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKKwlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOworCWRybV9sb2NhbF9tYXBfdCAqbW1pb19tYXA7CisKKwlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2OworCWRybV9pOTE1X3JpbmdfYnVmZmVyX3QgcmluZzsKKworCWRybV9kbWFfaGFuZGxlX3QgKnN0YXR1c19wYWdlX2RtYWg7CisJdm9pZCAqaHdfc3RhdHVzX3BhZ2U7CisJZG1hX2FkZHJfdCBkbWFfc3RhdHVzX3BhZ2U7CisJdW5zaWduZWQgbG9uZyBjb3VudGVyOworCXVuc2lnbmVkIGludCBzdGF0dXNfZ2Z4X2FkZHI7CisJZHJtX2xvY2FsX21hcF90IGh3c19tYXA7CisKKwl1bnNpZ25lZCBpbnQgY3BwOworCWludCBiYWNrX29mZnNldDsKKwlpbnQgZnJvbnRfb2Zmc2V0OworCWludCBjdXJyZW50X3BhZ2U7CisJaW50IHBhZ2VfZmxpcHBpbmc7CisJaW50IHVzZV9taV9iYXRjaGJ1ZmZlcl9zdGFydDsKKworCXdhaXRfcXVldWVfaGVhZF90IGlycV9xdWV1ZTsKKwlhdG9taWNfdCBpcnFfcmVjZWl2ZWQ7CisJYXRvbWljX3QgaXJxX2VtaXR0ZWQ7CisKKwlpbnQgdGV4X2xydV9sb2dfZ3JhbnVsYXJpdHk7CisJaW50IGFsbG93X2JhdGNoYnVmZmVyOworCXN0cnVjdCBtZW1fYmxvY2sgKmFncF9oZWFwOworCXVuc2lnbmVkIGludCBzcjAxLCBhZHBhLCBwcGNyLCBkdm9iLCBkdm9jLCBsdmRzOworCWludCB2YmxhbmtfcGlwZTsKKworCXNwaW5sb2NrX3Qgc3dhcHNfbG9jazsKKwlkcm1faTkxNV92Ymxfc3dhcF90IHZibF9zd2FwczsKKwl1bnNpZ25lZCBpbnQgc3dhcHNfcGVuZGluZzsKKworCS8qIFJlZ2lzdGVyIHN0YXRlICovCisJdTggc2F2ZUxCQjsKKwl1MzIgc2F2ZURTUEFDTlRSOworCXUzMiBzYXZlRFNQQkNOVFI7CisJdTMyIHNhdmVEU1BBUkI7CisJdTMyIHNhdmVQSVBFQUNPTkY7CisJdTMyIHNhdmVQSVBFQkNPTkY7CisJdTMyIHNhdmVQSVBFQVNSQzsKKwl1MzIgc2F2ZVBJUEVCU1JDOworCXUzMiBzYXZlRlBBMDsKKwl1MzIgc2F2ZUZQQTE7CisJdTMyIHNhdmVEUExMX0E7CisJdTMyIHNhdmVEUExMX0FfTUQ7CisJdTMyIHNhdmVIVE9UQUxfQTsKKwl1MzIgc2F2ZUhCTEFOS19BOworCXUzMiBzYXZlSFNZTkNfQTsKKwl1MzIgc2F2ZVZUT1RBTF9BOworCXUzMiBzYXZlVkJMQU5LX0E7CisJdTMyIHNhdmVWU1lOQ19BOworCXUzMiBzYXZlQkNMUlBBVF9BOworCXUzMiBzYXZlUElQRUFTVEFUOworCXUzMiBzYXZlRFNQQVNUUklERTsKKwl1MzIgc2F2ZURTUEFTSVpFOworCXUzMiBzYXZlRFNQQVBPUzsKKwl1MzIgc2F2ZURTUEFCQVNFOworCXUzMiBzYXZlRFNQQVNVUkY7CisJdTMyIHNhdmVEU1BBVElMRU9GRjsKKwl1MzIgc2F2ZVBGSVRfUEdNX1JBVElPUzsKKwl1MzIgc2F2ZUJMQ19QV01fQ1RMOworCXUzMiBzYXZlQkxDX1BXTV9DVEwyOworCXUzMiBzYXZlRlBCMDsKKwl1MzIgc2F2ZUZQQjE7CisJdTMyIHNhdmVEUExMX0I7CisJdTMyIHNhdmVEUExMX0JfTUQ7CisJdTMyIHNhdmVIVE9UQUxfQjsKKwl1MzIgc2F2ZUhCTEFOS19COworCXUzMiBzYXZlSFNZTkNfQjsKKwl1MzIgc2F2ZVZUT1RBTF9COworCXUzMiBzYXZlVkJMQU5LX0I7CisJdTMyIHNhdmVWU1lOQ19COworCXUzMiBzYXZlQkNMUlBBVF9COworCXUzMiBzYXZlUElQRUJTVEFUOworCXUzMiBzYXZlRFNQQlNUUklERTsKKwl1MzIgc2F2ZURTUEJTSVpFOworCXUzMiBzYXZlRFNQQlBPUzsKKwl1MzIgc2F2ZURTUEJCQVNFOworCXUzMiBzYXZlRFNQQlNVUkY7CisJdTMyIHNhdmVEU1BCVElMRU9GRjsKKwl1MzIgc2F2ZVZDTEtfRElWSVNPUl9WR0EwOworCXUzMiBzYXZlVkNMS19ESVZJU09SX1ZHQTE7CisJdTMyIHNhdmVWQ0xLX1BPU1RfRElWOworCXUzMiBzYXZlVkdBQ05UUkw7CisJdTMyIHNhdmVBRFBBOworCXUzMiBzYXZlTFZEUzsKKwl1MzIgc2F2ZUxWRFNQUF9PTjsKKwl1MzIgc2F2ZUxWRFNQUF9PRkY7CisJdTMyIHNhdmVEVk9BOworCXUzMiBzYXZlRFZPQjsKKwl1MzIgc2F2ZURWT0M7CisJdTMyIHNhdmVQUF9PTjsKKwl1MzIgc2F2ZVBQX09GRjsKKwl1MzIgc2F2ZVBQX0NPTlRST0w7CisJdTMyIHNhdmVQUF9DWUNMRTsKKwl1MzIgc2F2ZVBGSVRfQ09OVFJPTDsKKwl1MzIgc2F2ZV9wYWxldHRlX2FbMjU2XTsKKwl1MzIgc2F2ZV9wYWxldHRlX2JbMjU2XTsKKwl1MzIgc2F2ZUZCQ19DRkJfQkFTRTsKKwl1MzIgc2F2ZUZCQ19MTF9CQVNFOworCXUzMiBzYXZlRkJDX0NPTlRST0w7CisJdTMyIHNhdmVGQkNfQ09OVFJPTDI7CisJdTMyIHNhdmVJRVI7CisJdTMyIHNhdmVJSVI7CisJdTMyIHNhdmVJTVI7CisJdTMyIHNhdmVDQUNIRV9NT0RFXzA7CisJdTMyIHNhdmVEX1NUQVRFOworCXUzMiBzYXZlRFNQQ0xLX0dBVEVfRDsKKwl1MzIgc2F2ZU1JX0FSQl9TVEFURTsKKwl1MzIgc2F2ZVNXRjBbMTZdOworCXUzMiBzYXZlU1dGMVsxNl07CisJdTMyIHNhdmVTV0YyWzNdOworCXU4IHNhdmVNU1I7CisJdTggc2F2ZVNSWzhdOworCXU4IHNhdmVHUlsyNV07CisJdTggc2F2ZUFSX0lOREVYOworCXU4IHNhdmVBUlsyMV07CisJdTggc2F2ZURBQ01BU0s7CisJdTggc2F2ZURBQ0RBVEFbMjU2KjNdOyAvKiAyNTYgMy1ieXRlIGNvbG9ycyAqLworCXU4IHNhdmVDUlszN107Cit9IGRybV9pOTE1X3ByaXZhdGVfdDsKKworZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1X2lvY3Rsc1tdOworZXh0ZXJuIGludCBpOTE1X21heF9pb2N0bDsKKworCQkJCS8qIGk5MTVfZG1hLmMgKi8KK2V4dGVybiB2b2lkIGk5MTVfa2VybmVsX2xvc3RfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgbG9uZyBmbGFncyk7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqKTsKK2V4dGVybiB2b2lkIGk5MTVfZHJpdmVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfZHJpdmVyX2RldmljZV9pc19hZ3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGxvbmcgaTkxNV9jb21wYXRfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CisKKy8qIGk5MTVfaXJxLmMgKi8KK2V4dGVybiBpbnQgaTkxNV9pcnFfZW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgaTkxNV9pcnFfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIGludCBpOTE1X2RyaXZlcl92Ymxhbmtfd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKTsKK2V4dGVybiBpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworZXh0ZXJuIGlycXJldHVybl90IGk5MTVfZHJpdmVyX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUyk7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgaTkxNV9kcml2ZXJfaXJxX3VuaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldik7CitleHRlcm4gaW50IGk5MTVfdmJsYW5rX3BpcGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBpOTE1X3ZibGFua19waXBlX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgaTkxNV92Ymxhbmtfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworLyogaTkxNV9tZW0uYyAqLworZXh0ZXJuIGludCBpOTE1X21lbV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfbWVtX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGk5MTVfbWVtX2luaXRfaGVhcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBpOTE1X21lbV9kZXN0cm95X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgaTkxNV9tZW1fdGFrZWRvd24oc3RydWN0IG1lbV9ibG9jayAqKmhlYXApOworZXh0ZXJuIHZvaWQgaTkxNV9tZW1fcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHN0cnVjdCBtZW1fYmxvY2sgKmhlYXApOworCisjZGVmaW5lIEk5MTVfUkVBRChyZWcpICAgICAgICAgIERSTV9SRUFEMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSkKKyNkZWZpbmUgSTkxNV9XUklURShyZWcsdmFsKSAgICAgRFJNX1dSSVRFMzIoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCisjZGVmaW5lIEk5MTVfUkVBRDE2KHJlZykJRFJNX1JFQUQxNihkZXZfcHJpdi0+bW1pb19tYXAsIChyZWcpKQorI2RlZmluZSBJOTE1X1dSSVRFMTYocmVnLHZhbCkJRFJNX1dSSVRFMTYoZGV2X3ByaXYtPm1taW9fbWFwLCAocmVnKSwgKHZhbCkpCisKKyNkZWZpbmUgSTkxNV9WRVJCT1NFIDAKKworI2RlZmluZSBSSU5HX0xPQ0FMUwl1bnNpZ25lZCBpbnQgb3V0cmluZywgcmluZ21hc2ssIG91dGNvdW50OyBcCisgICAgICAgICAgICAgICAgICAgICAgICB2b2xhdGlsZSBjaGFyICp2aXJ0OworCisjZGVmaW5lIEJFR0lOX0xQX1JJTkcobikgZG8gewkJCQlcCisJaWYgKEk5MTVfVkVSQk9TRSkJCQkJXAorCQlEUk1fREVCVUcoIkJFR0lOX0xQX1JJTkcoJWQpXG4iLCAobikpOwlcCisJaWYgKGRldl9wcml2LT5yaW5nLnNwYWNlIDwgKG4pKjQpCQlcCisJCWk5MTVfd2FpdF9yaW5nKGRldiwgKG4pKjQsIF9fZnVuY19fKTsJCVwKKwlvdXRjb3VudCA9IDA7CQkJCQlcCisJb3V0cmluZyA9IGRldl9wcml2LT5yaW5nLnRhaWw7CQkJXAorCXJpbmdtYXNrID0gZGV2X3ByaXYtPnJpbmcudGFpbF9tYXNrOwkJXAorCXZpcnQgPSBkZXZfcHJpdi0+cmluZy52aXJ0dWFsX3N0YXJ0OwkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBPVVRfUklORyhuKSBkbyB7CQkJCQlcCisJaWYgKEk5MTVfVkVSQk9TRSkgRFJNX0RFQlVHKCIgICBPVVRfUklORyAleFxuIiwgKGludCkobikpOwlcCisJKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikodmlydCArIG91dHJpbmcpID0gKG4pOwlcCisgICAgICAgIG91dGNvdW50Kys7CQkJCQkJXAorCW91dHJpbmcgKz0gNDsJCQkJCQlcCisJb3V0cmluZyAmPSByaW5nbWFzazsJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgQURWQU5DRV9MUF9SSU5HKCkgZG8gewkJCQkJCVwKKwlpZiAoSTkxNV9WRVJCT1NFKSBEUk1fREVCVUcoIkFEVkFOQ0VfTFBfUklORyAleFxuIiwgb3V0cmluZyk7CVwKKwlkZXZfcHJpdi0+cmluZy50YWlsID0gb3V0cmluZzsJCQkJCVwKKwlkZXZfcHJpdi0+cmluZy5zcGFjZSAtPSBvdXRjb3VudCAqIDQ7CQkJCVwKKwlJOTE1X1dSSVRFKExQX1JJTkcgKyBSSU5HX1RBSUwsIG91dHJpbmcpOwkJCVwKK30gd2hpbGUoMCkKKworZXh0ZXJuIGludCBpOTE1X3dhaXRfcmluZyhzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IG4sIGNvbnN0IGNoYXIgKmNhbGxlcik7CisKKy8qIEV4dGVuZGVkIGNvbmZpZyBzcGFjZSAqLworI2RlZmluZSBMQkIgMHhmNAorCisvKiBWR0Egc3R1ZmYgKi8KKworI2RlZmluZSBWR0FfU1QwMV9NREEgMHgzYmEKKyNkZWZpbmUgVkdBX1NUMDFfQ0dBIDB4M2RhCisKKyNkZWZpbmUgVkdBX01TUl9XUklURSAweDNjMgorI2RlZmluZSBWR0FfTVNSX1JFQUQgMHgzY2MKKyNkZWZpbmUgICBWR0FfTVNSX01FTV9FTiAoMTw8MSkKKyNkZWZpbmUgICBWR0FfTVNSX0NHQV9NT0RFICgxPDwwKQorCisjZGVmaW5lIFZHQV9TUl9JTkRFWCAweDNjNAorI2RlZmluZSBWR0FfU1JfREFUQSAweDNjNQorCisjZGVmaW5lIFZHQV9BUl9JTkRFWCAweDNjMAorI2RlZmluZSAgIFZHQV9BUl9WSURfRU4gKDE8PDUpCisjZGVmaW5lIFZHQV9BUl9EQVRBX1dSSVRFIDB4M2MwCisjZGVmaW5lIFZHQV9BUl9EQVRBX1JFQUQgMHgzYzEKKworI2RlZmluZSBWR0FfR1JfSU5ERVggMHgzY2UKKyNkZWZpbmUgVkdBX0dSX0RBVEEgMHgzY2YKKy8qIEdSMDUgKi8KKyNkZWZpbmUgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9TSElGVCAzCisjZGVmaW5lICAgICBWR0FfR1JfTUVNX1JFQURfTU9ERV9QTEFORSAxCisvKiBHUjA2ICovCisjZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX01BU0sgMHhjCisjZGVmaW5lICAgVkdBX0dSX01FTV9NT0RFX1NISUZUIDIKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0FGRkZGIDAKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0EwMDAwX0JGRkZGIDEKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0I3RkZGIDIKKyNkZWZpbmUgICBWR0FfR1JfTUVNX0IwMDAwX0JGRkZGIDMKKworI2RlZmluZSBWR0FfREFDTUFTSyAweDNjNgorI2RlZmluZSBWR0FfREFDUlggMHgzYzcKKyNkZWZpbmUgVkdBX0RBQ1dYIDB4M2M4CisjZGVmaW5lIFZHQV9EQUNEQVRBIDB4M2M5CisKKyNkZWZpbmUgVkdBX0NSX0lOREVYX01EQSAweDNiNAorI2RlZmluZSBWR0FfQ1JfREFUQV9NREEgMHgzYjUKKyNkZWZpbmUgVkdBX0NSX0lOREVYX0NHQSAweDNkNAorI2RlZmluZSBWR0FfQ1JfREFUQV9DR0EgMHgzZDUKKworI2RlZmluZSBHRlhfT1BfVVNFUl9JTlRFUlJVUFQJCSgoMDw8MjkpfCgyPDwyMykpCisjZGVmaW5lIEdGWF9PUF9CUkVBS1BPSU5UX0lOVEVSUlVQVAkoKDA8PDI5KXwoMTw8MjMpKQorI2RlZmluZSBDTURfUkVQT1JUX0hFQUQJCQkoNzw8MjMpCisjZGVmaW5lIENNRF9TVE9SRV9EV09SRF9JRFgJCSgoMHgyMTw8MjMpIHwgMHgxKQorI2RlZmluZSBDTURfT1BfQkFUQ0hfQlVGRkVSICAoKDB4MDw8MjkpfCgweDMwPDwyMyl8MHgxKQorCisjZGVmaW5lIElOU1RfUEFSU0VSX0NMSUVOVCAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgSU5TVF9PUF9GTFVTSCAgICAgICAgMHgwMjAwMDAwMAorI2RlZmluZSBJTlNUX0ZMVVNIX01BUF9DQUNIRSAweDAwMDAwMDAxCisKKyNkZWZpbmUgQkIxX1NUQVJUX0FERFJfTUFTSyAgICh+MHg3KQorI2RlZmluZSBCQjFfUFJPVEVDVEVEICAgICAgICAgKDE8PDApCisjZGVmaW5lIEJCMV9VTlBST1RFQ1RFRCAgICAgICAoMDw8MCkKKyNkZWZpbmUgQkIyX0VORF9BRERSX01BU0sgICAgICh+MHg3KQorCisvKiBGcmFtZWJ1ZmZlciBjb21wcmVzc2lvbiAqLworI2RlZmluZSBGQkNfQ0ZCX0JBU0UJCTB4MDMyMDAgLyogNGsgcGFnZSBhbGlnbmVkICovCisjZGVmaW5lIEZCQ19MTF9CQVNFCQkweDAzMjA0IC8qIDRrIHBhZ2UgYWxpZ25lZCAqLworI2RlZmluZSBGQkNfQ09OVFJPTAkJMHgwMzIwOAorI2RlZmluZSAgIEZCQ19DVExfRU4JCSgxPDwzMSkKKyNkZWZpbmUgICBGQkNfQ1RMX1BFUklPRElDCSgxPDwzMCkKKyNkZWZpbmUgICBGQkNfQ1RMX0lOVEVSVkFMX1NISUZUICgxNikKKyNkZWZpbmUgICBGQkNfQ1RMX1VOQ09NUFJFU1NJQkxFICgxPDwxNCkKKyNkZWZpbmUgICBGQkNfQ1RMX1NUUklERV9TSElGVAkoNSkKKyNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFTk8JKDE8PDApCisjZGVmaW5lIEZCQ19DT01NQU5ECQkweDAzMjBjCisjZGVmaW5lICAgRkJDX0NNRF9DT01QUkVTUwkoMTw8MCkKKyNkZWZpbmUgRkJDX1NUQVRVUwkJMHgwMzIxMAorI2RlZmluZSAgIEZCQ19TVEFUX0NPTVBSRVNTSU5HCSgxPDwzMSkKKyNkZWZpbmUgICBGQkNfU1RBVF9DT01QUkVTU0VECSgxPDwzMCkKKyNkZWZpbmUgICBGQkNfU1RBVF9NT0RJRklFRAkoMTw8MjkpCisjZGVmaW5lICAgRkJDX1NUQVRfQ1VSUkVOVF9MSU5FCSgxPDwwKQorI2RlZmluZSBGQkNfQ09OVFJPTDIJCTB4MDMyMTQKKyNkZWZpbmUgICBGQkNfQ1RMX0ZFTkNFX0RCTAkoMDw8NCkKKyNkZWZpbmUgICBGQkNfQ1RMX0lETEVfSU1NCSgwPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9GVUxMCSgxPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9MSU5FCSgyPDwyKQorI2RlZmluZSAgIEZCQ19DVExfSURMRV9ERUJVRwkoMzw8MikKKyNkZWZpbmUgICBGQkNfQ1RMX0NQVV9GRU5DRQkoMTw8MSkKKyNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQQkoMDw8MCkKKyNkZWZpbmUgICBGQkNfQ1RMX1BMQU5FQgkoMTw8MCkKKyNkZWZpbmUgRkJDX0ZFTkNFX09GRgkJMHgwMzIxYgorCisjZGVmaW5lIEZCQ19MTF9TSVpFCQkoMTUzNikKKyNkZWZpbmUgRkJDX0xMX1BBRAkJKDMyKQorCisvKiBJbnRlcnJ1cHQgYml0czoKKyAqLworI2RlZmluZSBVU0VSX0lOVF9GTEFHICAgICgxPDwxKQorI2RlZmluZSBWU1lOQ19QSVBFQl9GTEFHICgxPDw1KQorI2RlZmluZSBWU1lOQ19QSVBFQV9GTEFHICgxPDw3KQorI2RlZmluZSBIV0JfT09NX0ZMQUcgICAgICgxPDwxMykgLyogYmlubmVyIG91dCBvZiBtZW1vcnkgKi8KKworI2RlZmluZSBJOTE1UkVHX0hXU1RBTQkJMHgwMjA5OAorI2RlZmluZSBJOTE1UkVHX0lOVF9JREVOVElUWV9SCTB4MDIwYTQKKyNkZWZpbmUgSTkxNVJFR19JTlRfTUFTS19SCTB4MDIwYTgKKyNkZWZpbmUgSTkxNVJFR19JTlRfRU5BQkxFX1IJMHgwMjBhMAorCisjZGVmaW5lIEk5MTVSRUdfUElQRUFTVEFUCTB4NzAwMjQKKyNkZWZpbmUgSTkxNVJFR19QSVBFQlNUQVQJMHg3MTAyNAorCisjZGVmaW5lIEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEUJKDFVTDw8MTcpCisjZGVmaW5lIEk5MTVfVkJMQU5LX0NMRUFSCQkoMVVMPDwxKQorCisjZGVmaW5lIFNSWF9JTkRFWAkJMHgzYzQKKyNkZWZpbmUgU1JYX0RBVEEJCTB4M2M1CisjZGVmaW5lIFNSMDEJCQkxCisjZGVmaW5lIFNSMDFfU0NSRUVOX09GRgkJKDE8PDUpCisKKyNkZWZpbmUgUFBDUgkJCTB4NjEyMDQKKyNkZWZpbmUgUFBDUl9PTgkJCSgxPDwwKQorCisjZGVmaW5lIERWT0IJCQkweDYxMTQwCisjZGVmaW5lIERWT0JfT04JCQkoMTw8MzEpCisjZGVmaW5lIERWT0MJCQkweDYxMTYwCisjZGVmaW5lIERWT0NfT04JCQkoMTw8MzEpCisjZGVmaW5lIExWRFMJCQkweDYxMTgwCisjZGVmaW5lIExWRFNfT04JCQkoMTw8MzEpCisKKyNkZWZpbmUgQURQQQkJCTB4NjExMDAKKyNkZWZpbmUgQURQQV9EUE1TX01BU0sJCSh+KDM8PDEwKSkKKyNkZWZpbmUgQURQQV9EUE1TX09OCQkoMDw8MTApCisjZGVmaW5lIEFEUEFfRFBNU19TVVNQRU5ECSgxPDwxMCkKKyNkZWZpbmUgQURQQV9EUE1TX1NUQU5EQlkJKDI8PDEwKQorI2RlZmluZSBBRFBBX0RQTVNfT0ZGCQkoMzw8MTApCisKKyNkZWZpbmUgTk9QSUQgICAgICAgICAgICAgICAgICAgMHgyMDk0CisjZGVmaW5lIExQX1JJTkcJCQkweDIwMzAKKyNkZWZpbmUgSFBfUklORwkJCTB4MjA0MAorLyogVGhlIGJpbm5lciBoYXMgaXRzIG93biByaW5nIGJ1ZmZlcjoKKyAqLworI2RlZmluZSBIV0JfUklORwkJMHgyNDAwCisKKyNkZWZpbmUgUklOR19UQUlMCQkweDAwCisjZGVmaW5lIFRBSUxfQUREUgkJMHgwMDFGRkZGOAorI2RlZmluZSBSSU5HX0hFQUQJCTB4MDQKKyNkZWZpbmUgSEVBRF9XUkFQX0NPVU5UCQkweEZGRTAwMDAwCisjZGVmaW5lIEhFQURfV1JBUF9PTkUJCTB4MDAyMDAwMDAKKyNkZWZpbmUgSEVBRF9BRERSCQkweDAwMUZGRkZDCisjZGVmaW5lIFJJTkdfU1RBUlQJCTB4MDgKKyNkZWZpbmUgU1RBUlRfQUREUgkJMHgweEZGRkZGMDAwCisjZGVmaW5lIFJJTkdfTEVOCQkweDBDCisjZGVmaW5lIFJJTkdfTlJfUEFHRVMJCTB4MDAxRkYwMDAKKyNkZWZpbmUgUklOR19SRVBPUlRfTUFTSwkweDAwMDAwMDA2CisjZGVmaW5lIFJJTkdfUkVQT1JUXzY0SwkJMHgwMDAwMDAwMgorI2RlZmluZSBSSU5HX1JFUE9SVF8xMjhLCTB4MDAwMDAwMDQKKyNkZWZpbmUgUklOR19OT19SRVBPUlQJCTB4MDAwMDAwMDAKKyNkZWZpbmUgUklOR19WQUxJRF9NQVNLCQkweDAwMDAwMDAxCisjZGVmaW5lIFJJTkdfVkFMSUQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgUklOR19JTlZBTElECQkweDAwMDAwMDAwCisKKy8qIEluc3RydWN0aW9uIHBhcnNlciBlcnJvciByZWc6CisgKi8KKyNkZWZpbmUgSVBFSVIJCQkweDIwODgKKworLyogU2NyYXRjaCBwYWQgZGVidWcgMCByZWc6CisgKi8KKyNkZWZpbmUgU0NQRDAJCQkweDIwOWMKKworLyogRXJyb3Igc3RhdHVzIHJlZzoKKyAqLworI2RlZmluZSBFU1IJCQkweDIwYjgKKworLyogU2Vjb25kYXJ5IERNQSBmZXRjaCBhZGRyZXNzIGRlYnVnIHJlZzoKKyAqLworI2RlZmluZSBETUFfRkFERF9TCQkweDIwZDQKKworLyogTWVtb3J5IEludGVyZmFjZSBBcmJpdHJhdGlvbiBTdGF0ZQorICovCisjZGVmaW5lIE1JX0FSQl9TVEFURQkJMHgyMGU0CisKKy8qIENhY2hlIG1vZGUgMCByZWcuCisgKiAgLSBNYW5pcHVsYXRpbmcgcmVuZGVyIGNhY2hlIGJlaGF2aW91ciBpcyBjZW50cmFsCisgKiAgICB0byB0aGUgY29uY2VwdCBvZiB6b25lIHJlbmRlcmluZywgdHVuaW5nIHRoaXMgcmVnIGNhbiBoZWxwIGF2b2lkCisgKiAgICB1bm5lY2Vzc2FyeSByZW5kZXIgY2FjaGUgcmVhZHMgYW5kIGV2ZW4gd3JpdGVzIChmb3Igei9zdGVuY2lsKQorICogICAgYXQgYmVnaW5uaW5nIGFuZCBlbmQgb2Ygc2NlbmUuCisgKgorICogLSBUbyBjaGFuZ2UgYSBiaXQsIHdyaXRlIHRvIHRoaXMgcmVnIHdpdGggYSBtYXNrIGJpdCBzZXQgYW5kIHRoZQorICogYml0IG9mIGludGVyZXN0IGVpdGhlciBzZXQgb3IgY2xlYXJlZC4gIEVHOiAoQklUPDwxNikgfCBCSVQgdG8gc2V0LgorICovCisjZGVmaW5lIENhY2hlX01vZGVfMAkJMHgyMTIwCisjZGVmaW5lIENBQ0hFX01PREVfMAkJMHgyMTIwCisjZGVmaW5lIENNMF9NQVNLX1NISUZUICAgICAgICAgIDE2CisjZGVmaW5lIENNMF9JWl9PUFRfRElTQUJMRSAgICAgICgxPDw2KQorI2RlZmluZSBDTTBfWlJfT1BUX0RJU0FCTEUgICAgICAoMTw8NSkKKyNkZWZpbmUgQ00wX0RFUFRIX0VWSUNUX0RJU0FCTEUgKDE8PDQpCisjZGVmaW5lIENNMF9DT0xPUl9FVklDVF9ESVNBQkxFICgxPDwzKQorI2RlZmluZSBDTTBfREVQVEhfV1JJVEVfRElTQUJMRSAoMTw8MSkKKyNkZWZpbmUgQ00wX1JDX09QX0ZMVVNIX0RJU0FCTEUgKDE8PDApCisKKworLyogR3JhcGhpY3MgZmx1c2ggY29udHJvbC4gIEEgQ1BVIHdyaXRlIGZsdXNoZXMgdGhlIEdXQiBvZiBhbGwgd3JpdGVzLgorICogVGhlIGRhdGEgaXMgZGlzY2FyZGVkLgorICovCisjZGVmaW5lIEdGWF9GTFNIX0NOVEwJCTB4MjE3MAorCisvKiBCaW5uZXIgY29udHJvbC4gIERlZmluZXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBiaW4gcG9pbnRlciBsaXN0OgorICovCisjZGVmaW5lIEJJTkNUTAkJCTB4MjQyMAorI2RlZmluZSBCQ19NQVNLCQkJKDEgPDwgOSkKKworLyogQmlubmVkIHNjZW5lIGluZm8uCisgKi8KKyNkZWZpbmUgQklOU0NFTkUJCTB4MjQyOAorI2RlZmluZSBCU19PUF9MT0FECQkoMSA8PCA4KQorI2RlZmluZSBCU19NQVNLCQkJKDEgPDwgMjIpCisKKy8qIEJpbiBjb21tYW5kIHBhcnNlciBkZWJ1ZyByZWc6CisgKi8KKyNkZWZpbmUgQkNQRAkJCTB4MjQ4MAorCisvKiBCaW4gbWVtb3J5IGNvbnRyb2wgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJNQ0QJCQkweDI0ODQKKworLyogQmluIGRhdGEgY2FjaGUgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJEQ0QJCQkweDI0ODgKKworLyogQmlubmVyIHBvaW50ZXIgY2FjaGUgZGVidWcgcmVnOgorICovCisjZGVmaW5lIEJQQ0QJCQkweDI0OGMKKworLyogQmlubmVyIHNjcmF0Y2ggcGFkIGRlYnVnIHJlZzoKKyAqLworI2RlZmluZSBCSU5TS1BECQkJMHgyNGYwCisKKy8qIEhXQiBzY3JhdGNoIHBhZCBkZWJ1ZyByZWc6CisgKi8KKyNkZWZpbmUgSFdCU0tQRAkJCTB4MjRmNAorCisvKiBCaW5uZXIgbWVtb3J5IHBvb2wgcmVnOgorICovCisjZGVmaW5lIEJNUF9CVUZGRVIJCTB4MjQzMAorI2RlZmluZSBCTVBfUEFHRV9TSVpFXzRLCSgwIDw8IDEwKQorI2RlZmluZSBCTVBfQlVGRkVSX1NJWkVfU0hJRlQJMQorI2RlZmluZSBCTVBfRU5BQkxFCQkoMSA8PCAwKQorCisvKiBHZXQvcHV0IG1lbW9yeSBmcm9tIHRoZSBiaW5uZXIgbWVtb3J5IHBvb2w6CisgKi8KKyNkZWZpbmUgQk1QX0dFVAkJCTB4MjQzOAorI2RlZmluZSBCTVBfUFVUCQkJMHgyNDQwCisjZGVmaW5lIEJNUF9PRkZTRVRfU0hJRlQJNQorCisvKiAzRCBzdGF0ZSBwYWNrZXRzOgorICovCisjZGVmaW5lIEdGWF9PUF9SQVNURVJfUlVMRVMgICAgKCgweDM8PDI5KXwoMHg3PDwyNCkpCisKKyNkZWZpbmUgR0ZYX09QX1NDSVNTT1IgICAgICAgICAoKDB4Mzw8MjkpfCgweDFjPDwyNCl8KDB4MTA8PDE5KSkKKyNkZWZpbmUgU0NfVVBEQVRFX1NDSVNTT1IgICAgICAgKDB4MTw8MSkKKyNkZWZpbmUgU0NfRU5BQkxFX01BU0sgICAgICAgICAgKDB4MTw8MCkKKyNkZWZpbmUgU0NfRU5BQkxFICAgICAgICAgICAgICAgKDB4MTw8MCkKKworI2RlZmluZSBHRlhfT1BfTE9BRF9JTkRJUkVDVCAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg3PDwxNikpCisKKyNkZWZpbmUgR0ZYX09QX1NDSVNTT1JfSU5GTyAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwoMHgxKSkKKyNkZWZpbmUgU0NJX1lNSU5fTUFTSyAgICAgICgweGZmZmY8PDE2KQorI2RlZmluZSBTQ0lfWE1JTl9NQVNLICAgICAgKDB4ZmZmZjw8MCkKKyNkZWZpbmUgU0NJX1lNQVhfTUFTSyAgICAgICgweGZmZmY8PDE2KQorI2RlZmluZSBTQ0lfWE1BWF9NQVNLICAgICAgKDB4ZmZmZjw8MCkKKworI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9FTkFCTEUJICgoMHgzPDwyOSl8KDB4MWM8PDI0KXwoMHgxMDw8MTkpKQorI2RlZmluZSBHRlhfT1BfU0NJU1NPUl9SRUNUCSAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODE8PDE2KXwxKQorI2RlZmluZSBHRlhfT1BfQ09MT1JfRkFDVE9SICAgICAgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDE8PDE2KXwweDApCisjZGVmaW5lIEdGWF9PUF9TVElQUExFICAgICAgICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODM8PDE2KSkKKyNkZWZpbmUgR0ZYX09QX01BUF9JTkZPICAgICAgICAgICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwweDQpCisjZGVmaW5lIEdGWF9PUF9ERVNUQlVGRkVSX1ZBUlMgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODU8PDE2KXwweDApCisjZGVmaW5lIEdGWF9PUF9EUkFXUkVDVF9JTkZPICAgICAoKDB4Mzw8MjkpfCgweDFkPDwyNCl8KDB4ODA8PDE2KXwoMHgzKSkKKworI2RlZmluZSBHRlhfT1BfRFJBV1JFQ1RfSU5GT19JOTY1ICgoMHg3OTAwPDwxNil8MHgyKQorCisjZGVmaW5lIFNSQ19DT1BZX0JMVF9DTUQgICAgICAgICAgICAgICAgKCgyPDwyOSl8KDB4NDM8PDIyKXw0KQorI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfQ01ECQkoKDI8PDI5KXwoMHg1Mzw8MjIpfDYpCisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9BTFBIQQkoMTw8MjEpCisjZGVmaW5lIFhZX1NSQ19DT1BZX0JMVF9XUklURV9SR0IJKDE8PDIwKQorI2RlZmluZSBYWV9TUkNfQ09QWV9CTFRfU1JDX1RJTEVECSgxPDwxNSkKKyNkZWZpbmUgWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRAkoMTw8MTEpCisKKyNkZWZpbmUgTUlfQkFUQ0hfQlVGRkVSCQkoKDB4MzA8PDIzKXwxKQorI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfU1RBUlQJKDB4MzE8PDIzKQorI2RlZmluZSBNSV9CQVRDSF9CVUZGRVJfRU5ECSgweEE8PDIzKQorI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFCSgxKQorI2RlZmluZSBNSV9CQVRDSF9OT05fU0VDVVJFX0k5NjUgKDE8PDgpCisKKyNkZWZpbmUgTUlfV0FJVF9GT1JfRVZFTlQgICAgICAgKCgweDM8PDIzKSkKKyNkZWZpbmUgTUlfV0FJVF9GT1JfUExBTkVfQl9GTElQICAgICAgKDE8PDYpCisjZGVmaW5lIE1JX1dBSVRfRk9SX1BMQU5FX0FfRkxJUCAgICAgICgxPDwyKQorI2RlZmluZSBNSV9XQUlUX0ZPUl9QTEFORV9BX1NDQU5MSU5FUyAoMTw8MSkKKworI2RlZmluZSBNSV9MT0FEX1NDQU5fTElORVNfSU5DTCAgKCgweDEyPDwyMykpCisKKyNkZWZpbmUgQ01EX09QX0RJU1BMQVlCVUZGRVJfSU5GTyAoKDB4MDw8MjkpfCgweDE0PDwyMyl8MikKKyNkZWZpbmUgQVNZTkNfRkxJUCAgICAgICAgICAgICAgICAoMTw8MjIpCisjZGVmaW5lIERJU1BMQVlfUExBTkVfQSAgICAgICAgICAgKDA8PDIwKQorI2RlZmluZSBESVNQTEFZX1BMQU5FX0IgICAgICAgICAgICgxPDwyMCkKKworLyogRGlzcGxheSByZWdzICovCisjZGVmaW5lIERTUEFDTlRSICAgICAgICAgICAgICAgIDB4NzAxODAKKyNkZWZpbmUgRFNQQkNOVFIgICAgICAgICAgICAgICAgMHg3MTE4MAorI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfTUFTSyAgICAgICAgICAgICAgICAgKDE8PDI0KQorCisvKiBEZWZpbmUgdGhlIHJlZ2lvbiBvZiBpbnRlcmVzdCBmb3IgdGhlIGJpbm5lcjoKKyAqLworI2RlZmluZSBDTURfT1BfQklOX0NPTlRST0wJICgoMHgzPDwyOSl8KDB4MWQ8PDI0KXwoMHg4NDw8MTYpfDQpCisKKyNkZWZpbmUgQ01EX09QX0RFU1RCVUZGRVJfSU5GTwkgKCgweDM8PDI5KXwoMHgxZDw8MjQpfCgweDhlPDwxNil8MSkKKworI2RlZmluZSBDTURfTUlfRkxVU0ggICAgICAgICAoMHgwNCA8PCAyMykKKyNkZWZpbmUgTUlfTk9fV1JJVEVfRkxVU0ggICAgKDEgPDwgMikKKyNkZWZpbmUgTUlfUkVBRF9GTFVTSCAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgTUlfRVhFX0ZMVVNIICAgICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgTUlfRU5EX1NDRU5FICAgICAgICAgKDEgPDwgNCkgLyogZmx1c2ggYmlubmVyIGFuZCBpbmNyIHNjZW5lIGNvdW50ICovCisjZGVmaW5lIE1JX1NDRU5FX0NPVU5UICAgICAgICgxIDw8IDMpIC8qIGp1c3QgaW5jcmVtZW50IHNjZW5lIGNvdW50ICovCisKKyNkZWZpbmUgQlJFQURDUlVNQl9CSVRTIDMxCisjZGVmaW5lIEJSRUFEQ1JVTUJfTUFTSyAoKDFVIDw8IEJSRUFEQ1JVTUJfQklUUykgLSAxKQorCisjZGVmaW5lIFJFQURfQlJFQURDUlVNQihkZXZfcHJpdikgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpWzVdKQorI2RlZmluZSBSRUFEX0hXU1AoZGV2X3ByaXYsIHJlZykgICgoKHZvbGF0aWxlIHUzMiopKGRldl9wcml2LT5od19zdGF0dXNfcGFnZSkpW3JlZ10pCisKKyNkZWZpbmUgQkxDX1BXTV9DVEwJCTB4NjEyNTQKKyNkZWZpbmUgQkFDS0xJR0hUX01PRFVMQVRJT05fRlJFUV9TSElGVAkJKDE3KQorCisjZGVmaW5lIEJMQ19QV01fQ1RMMgkJMHg2MTI1MAorLyoqCisgKiBUaGlzIGlzIHRoZSBtb3N0IHNpZ25pZmljYW50IDE1IGJpdHMgb2YgdGhlIG51bWJlciBvZiBiYWNrbGlnaHQgY3ljbGVzIGluIGEKKyAqIGNvbXBsZXRlIGN5Y2xlIG9mIHRoZSBtb2R1bGF0ZWQgYmFja2xpZ2h0IGNvbnRyb2wuCisgKgorICogVGhlIGFjdHVhbCB2YWx1ZSBpcyB0aGlzIGZpZWxkIG11bHRpcGxpZWQgYnkgdHdvLgorICovCisjZGVmaW5lIEJBQ0tMSUdIVF9NT0RVTEFUSU9OX0ZSRVFfTUFTSwkJKDB4N2ZmZiA8PCAxNykKKyNkZWZpbmUgQkxNX0xFR0FDWV9NT0RFCQkJCSgxIDw8IDE2KQorLyoqCisgKiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgY3ljbGVzIG91dCBvZiB0aGUgYmFja2xpZ2h0IG1vZHVsYXRpb24gY3ljbGUgZm9yIHdoaWNoCisgKiB0aGUgYmFja2xpZ2h0IGlzIG9uLgorICoKKyAqIFRoaXMgZmllbGQgbXVzdCBiZSBubyBncmVhdGVyIHRoYW4gdGhlIG51bWJlciBvZiBjeWNsZXMgaW4gdGhlIGNvbXBsZXRlCisgKiBiYWNrbGlnaHQgbW9kdWxhdGlvbiBjeWNsZS4KKyAqLworI2RlZmluZSBCQUNLTElHSFRfRFVUWV9DWUNMRV9TSElGVAkJKDApCisjZGVmaW5lIEJBQ0tMSUdIVF9EVVRZX0NZQ0xFX01BU0sJCSgweGZmZmYpCisKKyNkZWZpbmUgSTkxNV9HQ0ZHQwkJCTB4ZjAKKyNkZWZpbmUgSTkxNV9MT1dfRlJFUVVFTkNZX0VOQUJMRQkJKDEgPDwgNykKKyNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLXzE5MF8yMDBfTUhaCQkoMCA8PCA0KQorI2RlZmluZSBJOTE1X0RJU1BMQVlfQ0xPQ0tfMzMzX01IWgkJKDQgPDwgNCkKKyNkZWZpbmUgSTkxNV9ESVNQTEFZX0NMT0NLX01BU0sJCQkoNyA8PCA0KQorCisjZGVmaW5lIEk4NTVfSFBMTENDCQkJMHhjMAorI2RlZmluZSBJODU1X0NMT0NLX0NPTlRST0xfTUFTSwkJCSgzIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTMzXzIwMAkJCSgwIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzIwMAkJCSgxIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTAwXzEzMwkJCSgyIDw8IDApCisjZGVmaW5lIEk4NTVfQ0xPQ0tfMTY2XzI1MAkJCSgzIDw8IDApCisKKy8qIHAzMTcsIDMxOQorICovCisjZGVmaW5lIFZDTEsyX1ZDT19NICAgICAgICAweDYwMDggLyogdHJlYXQgYXMgMTYgYml0PyAoaW5jbHVkZXMgbXNicykgKi8KKyNkZWZpbmUgVkNMSzJfVkNPX04gICAgICAgIDB4NjAwYQorI2RlZmluZSBWQ0xLMl9WQ09fRElWX1NFTCAgMHg2MDEyCisKKyNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTAgICAweDYwMDAKKyNkZWZpbmUgVkNMS19ESVZJU09SX1ZHQTEgICAweDYwMDQKKyNkZWZpbmUgVkNMS19QT1NUX0RJVgkgICAgMHg2MDEwCisvKiogU2VsZWN0cyBhIHBvc3QgZGl2aXNvciBvZiA0IGluc3RlYWQgb2YgMi4gKi8KKyMgZGVmaW5lIFZHQTFfUERfUDJfRElWXzQJKDEgPDwgMTUpCisvKiogT3ZlcnJpZGVzIHRoZSBwMiBwb3N0IGRpdmlzb3IgZmllbGQgKi8KKyMgZGVmaW5lIFZHQTFfUERfUDFfRElWXzIJKDEgPDwgMTMpCisjIGRlZmluZSBWR0ExX1BEX1AxX1NISUZUCTgKKy8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCisjIGRlZmluZSBWR0ExX1BEX1AxX01BU0sJKDB4MWYgPDwgOCkKKy8qKiBTZWxlY3RzIGEgcG9zdCBkaXZpc29yIG9mIDQgaW5zdGVhZCBvZiAyLiAqLworIyBkZWZpbmUgVkdBMF9QRF9QMl9ESVZfNAkoMSA8PCA3KQorLyoqIE92ZXJyaWRlcyB0aGUgcDIgcG9zdCBkaXZpc29yIGZpZWxkICovCisjIGRlZmluZSBWR0EwX1BEX1AxX0RJVl8yCSgxIDw8IDUpCisjIGRlZmluZSBWR0EwX1BEX1AxX1NISUZUCTAKKy8qKiBQMSB2YWx1ZSBpcyAyIGdyZWF0ZXIgdGhhbiB0aGlzIGZpZWxkICovCisjIGRlZmluZSBWR0EwX1BEX1AxX01BU0sJKDB4MWYgPDwgMCkKKworLyogUENJIEQgc3RhdGUgY29udHJvbCByZWdpc3RlciAqLworI2RlZmluZSBEX1NUQVRFCQkweDYxMDQKKyNkZWZpbmUgRFNQQ0xLX0dBVEVfRAkweDYyMDAKKworLyogSTgzMCBDUlRDIHJlZ2lzdGVycyAqLworI2RlZmluZSBIVE9UQUxfQQkweDYwMDAwCisjZGVmaW5lIEhCTEFOS19BCTB4NjAwMDQKKyNkZWZpbmUgSFNZTkNfQQkJMHg2MDAwOAorI2RlZmluZSBWVE9UQUxfQQkweDYwMDBjCisjZGVmaW5lIFZCTEFOS19BCTB4NjAwMTAKKyNkZWZpbmUgVlNZTkNfQQkJMHg2MDAxNAorI2RlZmluZSBQSVBFQVNSQwkweDYwMDFjCisjZGVmaW5lIEJDTFJQQVRfQQkweDYwMDIwCisjZGVmaW5lIFZTWU5DU0hJRlRfQQkweDYwMDI4CisKKyNkZWZpbmUgSFRPVEFMX0IJMHg2MTAwMAorI2RlZmluZSBIQkxBTktfQgkweDYxMDA0CisjZGVmaW5lIEhTWU5DX0IJCTB4NjEwMDgKKyNkZWZpbmUgVlRPVEFMX0IJMHg2MTAwYworI2RlZmluZSBWQkxBTktfQgkweDYxMDEwCisjZGVmaW5lIFZTWU5DX0IJCTB4NjEwMTQKKyNkZWZpbmUgUElQRUJTUkMJMHg2MTAxYworI2RlZmluZSBCQ0xSUEFUX0IJMHg2MTAyMAorI2RlZmluZSBWU1lOQ1NISUZUX0IJMHg2MTAyOAorCisjZGVmaW5lIFBQX1NUQVRVUwkweDYxMjAwCisjIGRlZmluZSBQUF9PTgkJCQkJKDEgPDwgMzEpCisvKioKKyAqIEluZGljYXRlcyB0aGF0IGFsbCBkZXBlbmRlbmNpZXMgb2YgdGhlIHBhbmVsIGFyZSBvbjoKKyAqCisgKiAtIFBMTCBlbmFibGVkCisgKiAtIHBpcGUgZW5hYmxlZAorICogLSBMVkRTL0RWT0IvRFZPQyBvbgorICovCisjIGRlZmluZSBQUF9SRUFEWQkJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIFBQX1NFUVVFTkNFX05PTkUJCQkoMCA8PCAyOCkKKyMgZGVmaW5lIFBQX1NFUVVFTkNFX09OCQkJCSgxIDw8IDI4KQorIyBkZWZpbmUgUFBfU0VRVUVOQ0VfT0ZGCQkJKDIgPDwgMjgpCisjIGRlZmluZSBQUF9TRVFVRU5DRV9NQVNLCQkJMHgzMDAwMDAwMAorI2RlZmluZSBQUF9DT05UUk9MCTB4NjEyMDQKKyMgZGVmaW5lIFBPV0VSX1RBUkdFVF9PTgkJCSgxIDw8IDApCisKKyNkZWZpbmUgTFZEU1BQX09OICAgICAgIDB4NjEyMDgKKyNkZWZpbmUgTFZEU1BQX09GRiAgICAgIDB4NjEyMGMKKyNkZWZpbmUgUFBfQ1lDTEUgICAgICAgIDB4NjEyMTAKKworI2RlZmluZSBQRklUX0NPTlRST0wJMHg2MTIzMAorIyBkZWZpbmUgUEZJVF9FTkFCTEUJCQkJKDEgPDwgMzEpCisjIGRlZmluZSBQRklUX1BJUEVfTUFTSwkJCQkoMyA8PCAyOSkKKyMgZGVmaW5lIFBGSVRfUElQRV9TSElGVAkJCTI5CisjIGRlZmluZSBWRVJUX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgMTApCisjIGRlZmluZSBWRVJUX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDEwKQorIyBkZWZpbmUgVkVSVF9JTlRFUlBfTUFTSwkJCSgzIDw8IDEwKQorIyBkZWZpbmUgVkVSVF9BVVRPX1NDQUxFCQkJKDEgPDwgOSkKKyMgZGVmaW5lIEhPUklaX0lOVEVSUF9ESVNBQkxFCQkJKDAgPDwgNikKKyMgZGVmaW5lIEhPUklaX0lOVEVSUF9CSUxJTkVBUgkJCSgxIDw8IDYpCisjIGRlZmluZSBIT1JJWl9JTlRFUlBfTUFTSwkJCSgzIDw8IDYpCisjIGRlZmluZSBIT1JJWl9BVVRPX1NDQUxFCQkJKDEgPDwgNSkKKyMgZGVmaW5lIFBBTkVMXzhUTzZfRElUSEVSX0VOQUJMRQkJKDEgPDwgMykKKworI2RlZmluZSBQRklUX1BHTV9SQVRJT1MJMHg2MTIzNAorIyBkZWZpbmUgUEZJVF9WRVJUX1NDQUxFX01BU0sJCQkweGZmZjAwMDAwCisjIGRlZmluZSBQRklUX0hPUklaX1NDQUxFX01BU0sJCQkweDAwMDBmZmYwCisKKyNkZWZpbmUgUEZJVF9BVVRPX1JBVElPUwkweDYxMjM4CisKKworI2RlZmluZSBEUExMX0EJCTB4MDYwMTQKKyNkZWZpbmUgRFBMTF9CCQkweDA2MDE4CisjIGRlZmluZSBEUExMX1ZDT19FTkFCTEUJCQkoMSA8PCAzMSkKKyMgZGVmaW5lIERQTExfRFZPX0hJR0hfU1BFRUQJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIERQTExfU1lOQ0xPQ0tfRU5BQkxFCQkJKDEgPDwgMjkpCisjIGRlZmluZSBEUExMX1ZHQV9NT0RFX0RJUwkJCSgxIDw8IDI4KQorIyBkZWZpbmUgRFBMTEJfTU9ERV9EQUNfU0VSSUFMCQkJKDEgPDwgMjYpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExCX01PREVfTFZEUwkJCSgyIDw8IDI2KSAvKiBpOTE1ICovCisjIGRlZmluZSBEUExMX01PREVfTUFTSwkJCQkoMyA8PCAyNikKKyMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfMTAJKDAgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfREFDX1NFUklBTF9QMl9DTE9DS19ESVZfNQkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExCX0xWRFNfUDJfQ0xPQ0tfRElWXzE0CQkoMCA8PCAyNCkgLyogaTkxNSAqLworIyBkZWZpbmUgRFBMTEJfTFZEU19QMl9DTE9DS19ESVZfNwkJKDEgPDwgMjQpIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfUDJfQ0xPQ0tfRElWX01BU0sJCQkweDAzMDAwMDAwIC8qIGk5MTUgKi8KKyMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTSwkJMHgwMGZmMDAwMCAvKiBpOTE1ICovCisvKioKKyAqICBUaGUgaTgzMCBnZW5lcmF0aW9uLCBpbiBEQUMvc2VyaWFsIG1vZGUsIGRlZmluZXMgcDEgYXMgdHdvIHBsdXMgdGhpcworICogYml0ZmllbGQsIG9yIGp1c3QgMiBpZiBQTExfUDFfRElWSURFX0JZX1RXTyBpcyBzZXQuCisgKi8KKyMgZGVmaW5lIERQTExfRlBBMDFfUDFfUE9TVF9ESVZfTUFTS19JODMwCTB4MDAxZjAwMDAKKy8qKgorICogVGhlIGk4MzAgZ2VuZXJhdGlvbiwgaW4gTFZEUyBtb2RlLCBkZWZpbmVzIFAxIGFzIHRoZSBiaXQgbnVtYmVyIHNldCB3aXRoaW4KKyAqIHRoaXMgZmllbGQgKG9ubHkgb25lIGJpdCBtYXkgYmUgc2V0KS4KKyAqLworIyBkZWZpbmUgRFBMTF9GUEEwMV9QMV9QT1NUX0RJVl9NQVNLX0k4MzBfTFZEUwkweDAwM2YwMDAwCisjIGRlZmluZSBEUExMX0ZQQTAxX1AxX1BPU1RfRElWX1NISUZUCQkxNgorIyBkZWZpbmUgUExMX1AyX0RJVklERV9CWV80CQkJKDEgPDwgMjMpIC8qIGk4MzAsIHJlcXVpcmVkIGluIERWTyBub24tZ2FuZyAqLworIyBkZWZpbmUgUExMX1AxX0RJVklERV9CWV9UV08JCQkoMSA8PCAyMSkgLyogaTgzMCAqLworIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9EUkVGQ0xLCQkJKDAgPDwgMTMpCisjIGRlZmluZSBQTExfUkVGX0lOUFVUX1RWQ0xLSU5BCQkJKDEgPDwgMTMpIC8qIGk4MzAgKi8KKyMgZGVmaW5lIFBMTF9SRUZfSU5QVVRfVFZDTEtJTkJDCQkoMiA8PCAxMykgLyogU0RWTyBUVkNMS0lOICovCisjIGRlZmluZSBQTExCX1JFRl9JTlBVVF9TUFJFQURTUEVDVFJVTUlOCSgzIDw8IDEzKQorIyBkZWZpbmUgUExMX1JFRl9JTlBVVF9NQVNLCQkJKDMgPDwgMTMpCisjIGRlZmluZSBQTExfTE9BRF9QVUxTRV9QSEFTRV9TSElGVAkJOQorLyoKKyAqIFBhcmFsbGVsIHRvIFNlcmlhbCBMb2FkIFB1bHNlIHBoYXNlIHNlbGVjdGlvbi4KKyAqIFNlbGVjdHMgdGhlIHBoYXNlIGZvciB0aGUgMTBYIERQTEwgY2xvY2sgZm9yIHRoZSBQQ0llCisgKiBkaWdpdGFsIGRpc3BsYXkgcG9ydC4gVGhlIHJhbmdlIGlzIDQgdG8gMTM7IDEwIG9yIG1vcmUKKyAqIGlzIGp1c3QgYSBmbGlwIGRlbGF5LiBUaGUgZGVmYXVsdCBpcyA2CisgKi8KKyMgZGVmaW5lIFBMTF9MT0FEX1BVTFNFX1BIQVNFX01BU0sJCSgweGYgPDwgUExMX0xPQURfUFVMU0VfUEhBU0VfU0hJRlQpCisjIGRlZmluZSBESVNQTEFZX1JBVEVfU0VMRUNUX0ZQQTEJCSgxIDw8IDgpCisKKy8qKgorICogU0RWTyBtdWx0aXBsaWVyIGZvciA5NDVHL0dNLiBOb3QgdXNlZCBvbiA5NjUuCisgKgorICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSworICovCisjIGRlZmluZSBTRFZPX01VTFRJUExJRVJfTUFTSwkJCTB4MDAwMDAwZmYKKyMgZGVmaW5lIFNEVk9fTVVMVElQTElFUl9TSElGVF9ISVJFUwkJNAorIyBkZWZpbmUgU0RWT19NVUxUSVBMSUVSX1NISUZUX1ZHQQkJMAorCisvKiogQGRlZmdyb3VwIERQTExfTUQKKyAqIEB7CisgKi8KKy8qKiBQaXBlIEEgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLworI2RlZmluZSBEUExMX0FfTUQJCTB4MDYwMWMKKy8qKiBQaXBlIEIgU0RWTy9VREkgY2xvY2sgbXVsdGlwbGllci9kaXZpZGVyIHJlZ2lzdGVyIGZvciBHOTY1LiAqLworI2RlZmluZSBEUExMX0JfTUQJCTB4MDYwMjAKKy8qKgorICogVURJIHBpeGVsIGRpdmlkZXIsIGNvbnRyb2xsaW5nIGhvdyBtYW55IHBpeGVscyBhcmUgc3R1ZmZlZCBpbnRvIGEgcGFja2V0LgorICoKKyAqIFZhbHVlIGlzIHBpeGVscyBtaW51cyAxLiAgTXVzdCBiZSBzZXQgdG8gMSBwaXhlbCBmb3IgU0RWTy4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLCQkweDNmMDAwMDAwCisjIGRlZmluZSBEUExMX01EX1VESV9ESVZJREVSX1NISUZUCQkyNAorLyoqIFVESSBwaXhlbCBkaXZpZGVyIGZvciBWR0EsIHNhbWUgYXMgRFBMTF9NRF9VRElfRElWSURFUl9NQVNLLiAqLworIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfTUFTSwkJMHgwMDNmMDAwMAorIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX0RJVklERVJfU0hJRlQJCTE2CisvKioKKyAqIFNEVk8vVURJIHBpeGVsIG11bHRpcGxpZXIuCisgKgorICogU0RWTyByZXF1aXJlcyB0aGF0IHRoZSBidXMgY2xvY2sgcmF0ZSBiZSBiZXR3ZWVuIDEgYW5kIDIgR2h6LCBhbmQgdGhlIGJ1cworICogY2xvY2sgcmF0ZSBpcyAxMCB0aW1lcyB0aGUgRFBMTCBjbG9jay4gIEF0IGxvdyByZXNvbHV0aW9uL3JlZnJlc2ggcmF0ZQorICogbW9kZXMsIHRoZSBidXMgcmF0ZSB3b3VsZCBiZSBiZWxvdyB0aGUgbGltaXRzLCBzbyBTRFZPIGFsbG93cyBmb3Igc3R1ZmZpbmcKKyAqIGR1bW15IGJ5dGVzIGluIHRoZSBkYXRhc3RyZWFtIGF0IGFuIGluY3JlYXNlZCBjbG9jayByYXRlLCB3aXRoIGJvdGggc2lkZXMgb2YKKyAqIHRoZSBsaW5rIGtub3dpbmcgaG93IG1hbnkgYnl0ZXMgYXJlIGZpbGwuCisgKgorICogU28sIGZvciBhIG1vZGUgd2l0aCBhIGRvdGNsb2NrIG9mIDY1TWh6LCB3ZSB3b3VsZCB3YW50IHRvIGRvdWJsZSB0aGUgY2xvY2sKKyAqIHJhdGUgdG8gMTMwTWh6IHRvIGdldCBhIGJ1cyByYXRlIG9mIDEuMzBHaHouICBUaGUgRFBMTCBjbG9jayByYXRlIHdvdWxkIGJlCisgKiBzZXQgdG8gMTMwTWh6LCBhbmQgdGhlIFNEVk8gbXVsdGlwbGllciBzZXQgdG8gMnggaW4gdGhpcyByZWdpc3RlciBhbmQKKyAqIHRocm91Z2ggYW4gU0RWTyBjb21tYW5kLgorICoKKyAqIFRoaXMgcmVnaXN0ZXIgZmllbGQgaGFzIHZhbHVlcyBvZiBtdWx0aXBsaWNhdGlvbiBmYWN0b3IgbWludXMgMSwgd2l0aAorICogYSBtYXhpbXVtIG11bHRpcGxpZXIgb2YgNSBmb3IgU0RWTy4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9VRElfTVVMVElQTElFUl9NQVNLCQkweDAwMDAzZjAwCisjIGRlZmluZSBEUExMX01EX1VESV9NVUxUSVBMSUVSX1NISUZUCQk4CisvKiogU0RWTy9VREkgcGl4ZWwgbXVsdGlwbGllciBmb3IgVkdBLCBzYW1lIGFzIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSy4KKyAqIFRoaXMgYmVzdCBiZSBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgKDMpIG9yIHRoZSBDUlQgd29uJ3Qgd29yay4gTm8sCisgKiBJIGRvbid0IGVudGlyZWx5IHVuZGVyc3RhbmQgd2hhdCB0aGlzIGRvZXMuLi4KKyAqLworIyBkZWZpbmUgRFBMTF9NRF9WR0FfVURJX01VTFRJUExJRVJfTUFTSwkweDAwMDAwMDNmCisjIGRlZmluZSBEUExMX01EX1ZHQV9VRElfTVVMVElQTElFUl9TSElGVAkwCisvKiogQH0gKi8KKworI2RlZmluZSBEUExMX1RFU1QJCTB4NjA2YworIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl8xCQkJKDAgPDwgMjIpCisjIGRlZmluZSBEUExMQl9URVNUX1NEVk9fRElWXzIJCQkoMSA8PCAyMikKKyMgZGVmaW5lIERQTExCX1RFU1RfU0RWT19ESVZfNAkJCSgyIDw8IDIyKQorIyBkZWZpbmUgRFBMTEJfVEVTVF9TRFZPX0RJVl9NQVNLCQkoMyA8PCAyMikKKyMgZGVmaW5lIERQTExCX1RFU1RfTl9CWVBBU1MJCQkoMSA8PCAxOSkKKyMgZGVmaW5lIERQTExCX1RFU1RfTV9CWVBBU1MJCQkoMSA8PCAxOCkKKyMgZGVmaW5lIERQTExCX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDE2KQorIyBkZWZpbmUgRFBMTEFfVEVTVF9OX0JZUEFTUwkJCSgxIDw8IDMpCisjIGRlZmluZSBEUExMQV9URVNUX01fQllQQVNTCQkJKDEgPDwgMikKKyMgZGVmaW5lIERQTExBX0lOUFVUX0JVRkZFUl9FTkFCTEUJCSgxIDw8IDApCisKKyNkZWZpbmUgQURQQQkJCTB4NjExMDAKKyNkZWZpbmUgQURQQV9EQUNfRU5BQkxFCQkoMTw8MzEpCisjZGVmaW5lIEFEUEFfREFDX0RJU0FCTEUJMAorI2RlZmluZSBBRFBBX1BJUEVfU0VMRUNUX01BU0sJKDE8PDMwKQorI2RlZmluZSBBRFBBX1BJUEVfQV9TRUxFQ1QJMAorI2RlZmluZSBBRFBBX1BJUEVfQl9TRUxFQ1QJKDE8PDMwKQorI2RlZmluZSBBRFBBX1VTRV9WR0FfSFZQT0xBUklUWSAoMTw8MTUpCisjZGVmaW5lIEFEUEFfU0VUU19IVlBPTEFSSVRZCTAKKyNkZWZpbmUgQURQQV9WU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDExKQorI2RlZmluZSBBRFBBX1ZTWU5DX0NOVExfRU5BQkxFCTAKKyNkZWZpbmUgQURQQV9IU1lOQ19DTlRMX0RJU0FCTEUgKDE8PDEwKQorI2RlZmluZSBBRFBBX0hTWU5DX0NOVExfRU5BQkxFCTAKKyNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfSElHSAkoMTw8NCkKKyNkZWZpbmUgQURQQV9WU1lOQ19BQ1RJVkVfTE9XCTAKKyNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfSElHSAkoMTw8MykKKyNkZWZpbmUgQURQQV9IU1lOQ19BQ1RJVkVfTE9XCTAKKworI2RlZmluZSBGUEEwCQkweDA2MDQwCisjZGVmaW5lIEZQQTEJCTB4MDYwNDQKKyNkZWZpbmUgRlBCMAkJMHgwNjA0OAorI2RlZmluZSBGUEIxCQkweDA2MDRjCisjIGRlZmluZSBGUF9OX0RJVl9NQVNLCQkJCTB4MDAzZjAwMDAKKyMgZGVmaW5lIEZQX05fRElWX1NISUZUCQkJCTE2CisjIGRlZmluZSBGUF9NMV9ESVZfTUFTSwkJCQkweDAwMDAzZjAwCisjIGRlZmluZSBGUF9NMV9ESVZfU0hJRlQJCQk4CisjIGRlZmluZSBGUF9NMl9ESVZfTUFTSwkJCQkweDAwMDAwMDNmCisjIGRlZmluZSBGUF9NMl9ESVZfU0hJRlQJCQkwCisKKworI2RlZmluZSBQT1JUX0hPVFBMVUdfRU4JCTB4NjExMTAKKyMgZGVmaW5lIFNEVk9CX0hPVFBMVUdfSU5UX0VOCQkJKDEgPDwgMjYpCisjIGRlZmluZSBTRFZPQ19IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDI1KQorIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfRU4JCQkoMSA8PCAxOCkKKyMgZGVmaW5lIENSVF9IT1RQTFVHX0lOVF9FTgkJCSgxIDw8IDkpCisjIGRlZmluZSBDUlRfSE9UUExVR19GT1JDRV9ERVRFQ1QJCSgxIDw8IDMpCisKKyNkZWZpbmUgUE9SVF9IT1RQTFVHX1NUQVQJMHg2MTExNAorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfSU5UX1NUQVRVUwkJCSgxIDw8IDExKQorIyBkZWZpbmUgVFZfSE9UUExVR19JTlRfU1RBVFVTCQkJKDEgPDwgMTApCisjIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX01BU0sJCSgzIDw8IDgpCisjIGRlZmluZSBDUlRfSE9UUExVR19NT05JVE9SX0NPTE9SCQkoMyA8PCA4KQorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9NT05PCQkoMiA8PCA4KQorIyBkZWZpbmUgQ1JUX0hPVFBMVUdfTU9OSVRPUl9OT05FCQkoMCA8PCA4KQorIyBkZWZpbmUgU0RWT0NfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA3KQorIyBkZWZpbmUgU0RWT0JfSE9UUExVR19JTlRfU1RBVFVTCQkoMSA8PCA2KQorCisjZGVmaW5lIFNEVk9CCQkJMHg2MTE0MAorI2RlZmluZSBTRFZPQwkJCTB4NjExNjAKKyNkZWZpbmUgU0RWT19FTkFCTEUJCQkJKDEgPDwgMzEpCisjZGVmaW5lIFNEVk9fUElQRV9CX1NFTEVDVAkJCSgxIDw8IDMwKQorI2RlZmluZSBTRFZPX1NUQUxMX1NFTEVDVAkJCSgxIDw8IDI5KQorI2RlZmluZSBTRFZPX0lOVEVSUlVQVF9FTkFCTEUJCQkoMSA8PCAyNikKKy8qKgorICogOTE1Ry9HTSBTRFZPIHBpeGVsIG11bHRpcGxpZXIuCisgKgorICogUHJvZ3JhbW1lZCB2YWx1ZSBpcyBtdWx0aXBsaWVyIC0gMSwgdXAgdG8gNXguCisgKgorICogXHNhIERQTExfTURfVURJX01VTFRJUExJRVJfTUFTSworICovCisjZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9NQVNLCQkJKDcgPDwgMjMpCisjZGVmaW5lIFNEVk9fUE9SVF9NVUxUSVBMWV9TSElGVAkJMjMKKyNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfTUFTSwkJCSgxNSA8PCAxOSkKKyNkZWZpbmUgU0RWT19QSEFTRV9TRUxFQ1RfREVGQVVMVAkJKDYgPDwgMTkpCisjZGVmaW5lIFNEVk9fQ0xPQ0tfT1VUUFVUX0lOVkVSVAkJKDEgPDwgMTgpCisjZGVmaW5lIFNEVk9DX0dBTkdfTU9ERQkJCQkoMSA8PCAxNikKKyNkZWZpbmUgU0RWT19CT1JERVJfRU5BQkxFCQkJKDEgPDwgNykKKyNkZWZpbmUgU0RWT0JfUENJRV9DT05DVVJSRU5DWQkJCSgxIDw8IDMpCisjZGVmaW5lIFNEVk9fREVURUNURUQJCQkJKDEgPDwgMikKKy8qIEJpdHMgdG8gYmUgcHJlc2VydmVkIHdoZW4gd3JpdGluZyAqLworI2RlZmluZSBTRFZPQl9QUkVTRVJWRV9NQVNLCQkJKCgxIDw8IDE3KSB8ICgxIDw8IDE2KSB8ICgxIDw8IDE0KSkKKyNkZWZpbmUgU0RWT0NfUFJFU0VSVkVfTUFTSwkJCSgxIDw8IDE3KQorCisvKiogQGRlZmdyb3VwIExWRFMKKyAqIEB7CisgKi8KKy8qKgorICogVGhpcyByZWdpc3RlciBjb250cm9scyB0aGUgTFZEUyBvdXRwdXQgZW5hYmxlLCBwaXBlIHNlbGVjdGlvbiwgYW5kIGRhdGEKKyAqIGZvcm1hdCBzZWxlY3Rpb24uCisgKgorICogQWxsIG9mIHRoZSBjbG9jay9kYXRhIHBhaXJzIGFyZSBmb3JjZSBwb3dlcmVkIGRvd24gYnkgcG93ZXIgc2VxdWVuY2luZy4KKyAqLworI2RlZmluZSBMVkRTCQkJMHg2MTE4MAorLyoqCisgKiBFbmFibGVzIHRoZSBMVkRTIHBvcnQuICBUaGlzIGJpdCBtdXN0IGJlIHNldCBiZWZvcmUgRFBMTHMgYXJlIGVuYWJsZWQsIGFzCisgKiB0aGUgRFBMTCBzZW1hbnRpY3MgY2hhbmdlIHdoZW4gdGhlIExWRFMgaXMgYXNzaWduZWQgdG8gdGhhdCBwaXBlLgorICovCisjIGRlZmluZSBMVkRTX1BPUlRfRU4JCQkoMSA8PCAzMSkKKy8qKiBTZWxlY3RzIHBpcGUgQiBmb3IgTFZEUyBkYXRhLiAgTXVzdCBiZSBzZXQgb24gcHJlLTk2NS4gKi8KKyMgZGVmaW5lIExWRFNfUElQRUJfU0VMRUNUCQkoMSA8PCAzMCkKKworLyoqCisgKiBFbmFibGVzIHRoZSBBMC1BMiBkYXRhIHBhaXJzIGFuZCBDTEtBLCBjb250YWluaW5nIDE4IGJpdHMgb2YgY29sb3IgZGF0YSBwZXIKKyAqIHBpeGVsLgorICovCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9NQVNLCSgzIDw8IDgpCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9ET1dOCSgwIDw8IDgpCisjIGRlZmluZSBMVkRTX0EwQTJfQ0xLQV9QT1dFUl9VUAkoMyA8PCA4KQorLyoqCisgKiBDb250cm9scyB0aGUgQTMgZGF0YSBwYWlyLCB3aGljaCBjb250YWlucyB0aGUgYWRkaXRpb25hbCBMU0JzIGZvciAyNCBiaXQKKyAqIG1vZGUuICBPbmx5IGVuYWJsZWQgaWYgTFZEU19BMEEyX0NMS0FfUE9XRVJfVVAgYWxzbyBpbmRpY2F0ZXMgaXQgc2hvdWxkIGJlCisgKiBvbi4KKyAqLworIyBkZWZpbmUgTFZEU19BM19QT1dFUl9NQVNLCQkoMyA8PCA2KQorIyBkZWZpbmUgTFZEU19BM19QT1dFUl9ET1dOCQkoMCA8PCA2KQorIyBkZWZpbmUgTFZEU19BM19QT1dFUl9VUAkJKDMgPDwgNikKKy8qKgorICogQ29udHJvbHMgdGhlIENMS0IgcGFpci4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgc2V0IHdoZW4gTFZEU19CMEIzX1BPV0VSX1VQCisgKiBpcyBzZXQuCisgKi8KKyMgZGVmaW5lIExWRFNfQ0xLQl9QT1dFUl9NQVNLCQkoMyA8PCA0KQorIyBkZWZpbmUgTFZEU19DTEtCX1BPV0VSX0RPV04JCSgwIDw8IDQpCisjIGRlZmluZSBMVkRTX0NMS0JfUE9XRVJfVVAJCSgzIDw8IDQpCisKKy8qKgorICogQ29udHJvbHMgdGhlIEIwLUIzIGRhdGEgcGFpcnMuICBUaGlzIG11c3QgYmUgc2V0IHRvIG1hdGNoIHRoZSBEUExMIHAyCisgKiBzZXR0aW5nIGZvciB3aGV0aGVyIHdlIGFyZSBpbiBkdWFsLWNoYW5uZWwgbW9kZS4gIFRoZSBCMyBwYWlyIHdpbGwKKyAqIGFkZGl0aW9uYWxseSBvbmx5IGJlIHBvd2VyZWQgdXAgd2hlbiBMVkRTX0EzX1BPV0VSX1VQIGlzIHNldC4KKyAqLworIyBkZWZpbmUgTFZEU19CMEIzX1BPV0VSX01BU0sJCSgzIDw8IDIpCisjIGRlZmluZSBMVkRTX0IwQjNfUE9XRVJfRE9XTgkJKDAgPDwgMikKKyMgZGVmaW5lIExWRFNfQjBCM19QT1dFUl9VUAkJKDMgPDwgMikKKworI2RlZmluZSBQSVBFQUNPTkYgMHg3MDAwOAorI2RlZmluZSBQSVBFQUNPTkZfRU5BQkxFCSgxPDwzMSkKKyNkZWZpbmUgUElQRUFDT05GX0RJU0FCTEUJMAorI2RlZmluZSBQSVBFQUNPTkZfRE9VQkxFX1dJREUJKDE8PDMwKQorI2RlZmluZSBJOTY1X1BJUEVDT05GX0FDVElWRQkoMTw8MzApCisjZGVmaW5lIFBJUEVBQ09ORl9TSU5HTEVfV0lERQkwCisjZGVmaW5lIFBJUEVBQ09ORl9QSVBFX1VOTE9DS0VEIDAKKyNkZWZpbmUgUElQRUFDT05GX1BJUEVfTE9DS0VECSgxPDwyNSkKKyNkZWZpbmUgUElQRUFDT05GX1BBTEVUVEUJMAorI2RlZmluZSBQSVBFQUNPTkZfR0FNTUEJCSgxPDwyNCkKKyNkZWZpbmUgUElQRUNPTkZfRk9SQ0VfQk9SREVSCSgxPDwyNSkKKyNkZWZpbmUgUElQRUNPTkZfUFJPR1JFU1NJVkUJKDAgPDwgMjEpCisjZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9XX0ZJRUxEX0lORElDQVRJT04JKDYgPDwgMjEpCisjZGVmaW5lIFBJUEVDT05GX0lOVEVSTEFDRV9GSUVMRF8wX09OTFkJCSg3IDw8IDIxKQorCisjZGVmaW5lIERTUEFSQgkgIDB4NzAwMzAKKyNkZWZpbmUgRFNQQVJCX0NTVEFSVF9NQVNLCSgweDdmIDw8IDcpCisjZGVmaW5lIERTUEFSQl9DU1RBUlRfU0hJRlQJNworI2RlZmluZSBEU1BBUkJfQlNUQVJUX01BU0sJKDB4N2YpCQkgCisjZGVmaW5lIERTUEFSQl9CU1RBUlRfU0hJRlQJMAorCisjZGVmaW5lIFBJUEVCQ09ORiAweDcxMDA4CisjZGVmaW5lIFBJUEVCQ09ORl9FTkFCTEUJKDE8PDMxKQorI2RlZmluZSBQSVBFQkNPTkZfRElTQUJMRQkwCisjZGVmaW5lIFBJUEVCQ09ORl9ET1VCTEVfV0lERQkoMTw8MzApCisjZGVmaW5lIFBJUEVCQ09ORl9ESVNBQkxFCTAKKyNkZWZpbmUgUElQRUJDT05GX0dBTU1BCQkoMTw8MjQpCisjZGVmaW5lIFBJUEVCQ09ORl9QQUxFVFRFCTAKKworI2RlZmluZSBQSVBFQkdDTUFYUkVECQkweDcxMDEwCisjZGVmaW5lIFBJUEVCR0NNQVhHUkVFTgkJMHg3MTAxNAorI2RlZmluZSBQSVBFQkdDTUFYQkxVRQkJMHg3MTAxOAorI2RlZmluZSBQSVBFQlNUQVQJCTB4NzEwMjQKKyNkZWZpbmUgUElQRUJGUkFNRUhJR0gJCTB4NzEwNDAKKyNkZWZpbmUgUElQRUJGUkFNRVBJWEVMCQkweDcxMDQ0CisKKyNkZWZpbmUgRFNQQUNOVFIJCTB4NzAxODAKKyNkZWZpbmUgRFNQQkNOVFIJCTB4NzExODAKKyNkZWZpbmUgRElTUExBWV9QTEFORV9FTkFCTEUJCQkoMTw8MzEpCisjZGVmaW5lIERJU1BMQVlfUExBTkVfRElTQUJMRQkJCTAKKyNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0VOQUJMRQkJCSgxPDwzMCkKKyNkZWZpbmUgRElTUFBMQU5FX0dBTU1BX0RJU0FCTEUJCQkwCisjZGVmaW5lIERJU1BQTEFORV9QSVhGT1JNQVRfTUFTSwkJKDB4Zjw8MjYpCisjZGVmaW5lIERJU1BQTEFORV84QlBQCQkJCSgweDI8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMTVfMTZCUFAJCQkoMHg0PDwyNikKKyNkZWZpbmUgRElTUFBMQU5FXzE2QlBQCQkJCSgweDU8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMzJCUFBfTk9fQUxQSEEJCSgweDY8PDI2KQorI2RlZmluZSBESVNQUExBTkVfMzJCUFAJCQkJKDB4Nzw8MjYpCisjZGVmaW5lIERJU1BQTEFORV9TVEVSRU9fRU5BQkxFCQkJKDE8PDI1KQorI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX0RJU0FCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX1NFTF9QSVBFX01BU0sJCQkoMTw8MjQpCisjZGVmaW5lIERJU1BQTEFORV9TRUxfUElQRV9BCQkJMAorI2RlZmluZSBESVNQUExBTkVfU0VMX1BJUEVfQgkJCSgxPDwyNCkKKyNkZWZpbmUgRElTUFBMQU5FX1NSQ19LRVlfRU5BQkxFCQkoMTw8MjIpCisjZGVmaW5lIERJU1BQTEFORV9TUkNfS0VZX0RJU0FCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX0xJTkVfRE9VQkxFCQkJKDE8PDIwKQorI2RlZmluZSBESVNQUExBTkVfTk9fTElORV9ET1VCTEUJCTAKKyNkZWZpbmUgRElTUFBMQU5FX1NURVJFT19QT0xBUklUWV9GSVJTVAkJMAorI2RlZmluZSBESVNQUExBTkVfU1RFUkVPX1BPTEFSSVRZX1NFQ09ORAkoMTw8MTgpCisvKiBwbGFuZSBCIG9ubHkgKi8KKyNkZWZpbmUgRElTUFBMQU5FX0FMUEhBX1RSQU5TX0VOQUJMRQkJKDE8PDE1KQorI2RlZmluZSBESVNQUExBTkVfQUxQSEFfVFJBTlNfRElTQUJMRQkJMAorI2RlZmluZSBESVNQUExBTkVfU1BSSVRFX0FCT1ZFX0RJU1BMQVlBCQkwCisjZGVmaW5lIERJU1BQTEFORV9TUFJJVEVfQUJPVkVfT1ZFUkxBWQkJKDEpCisKKyNkZWZpbmUgRFNQQUJBU0UJCTB4NzAxODQKKyNkZWZpbmUgRFNQQVNUUklERQkJMHg3MDE4OAorCisjZGVmaW5lIERTUEJCQVNFCQkweDcxMTg0CisjZGVmaW5lIERTUEJBRERSCQlEU1BCQkFTRQorI2RlZmluZSBEU1BCU1RSSURFCQkweDcxMTg4CisKKyNkZWZpbmUgRFNQQUtFWVZBTAkJMHg3MDE5NAorI2RlZmluZSBEU1BBS0VZTUFTSwkJMHg3MDE5OAorCisjZGVmaW5lIERTUEFQT1MJCQkweDcwMThDIC8qIHJlc2VydmVkICovCisjZGVmaW5lIERTUEFTSVpFCQkweDcwMTkwCisjZGVmaW5lIERTUEJQT1MJCQkweDcxMThDCisjZGVmaW5lIERTUEJTSVpFCQkweDcxMTkwCisKKyNkZWZpbmUgRFNQQVNVUkYJCTB4NzAxOUMKKyNkZWZpbmUgRFNQQVRJTEVPRkYJCTB4NzAxQTQKKworI2RlZmluZSBEU1BCU1VSRgkJMHg3MTE5QworI2RlZmluZSBEU1BCVElMRU9GRgkJMHg3MTFBNAorCisjZGVmaW5lIFZHQUNOVFJMCQkweDcxNDAwCisjIGRlZmluZSBWR0FfRElTUF9ESVNBQkxFCQkJKDEgPDwgMzEpCisjIGRlZmluZSBWR0FfMlhfTU9ERQkJCQkoMSA8PCAzMCkKKyMgZGVmaW5lIFZHQV9QSVBFX0JfU0VMRUNUCQkJKDEgPDwgMjkpCisKKy8qCisgKiBTb21lIEJJT1Mgc2NyYXRjaCBhcmVhIHJlZ2lzdGVycy4gIFRoZSA4NDUgKGFuZCA4MzA/KSBzdG9yZSB0aGUgYW1vdW50CisgKiBvZiB2aWRlbyBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBCSU9TIGluIFNXRjEuCisgKi8KKworI2RlZmluZSBTV0YwCQkJMHg3MTQxMAorCisvKgorICogODU1IHNjcmF0Y2ggcmVnaXN0ZXJzLgorICovCisjZGVmaW5lIFNXRjEwCQkJMHg3MDQxMAorCisjZGVmaW5lIFNXRjMwCQkJMHg3MjQxNAorCisvKgorICogT3ZlcmxheSByZWdpc3RlcnMuICBUaGVzZSBhcmUgb3ZlcmxheSByZWdpc3RlcnMgYWNjZXNzZWQgdmlhIE1NSU8uCisgKiBUaG9zZSBsb2FkZWQgdmlhIHRoZSBvdmVybGF5IHJlZ2lzdGVyIHBhZ2UgYXJlIGRlZmluZWQgaW4gaTgzMF92aWRlby5jLgorICovCisjZGVmaW5lIE9WQURECQkJMHgzMDAwMAorCisjZGVmaW5lIERPVlNUQQkJCTB4MzAwMDgKKyNkZWZpbmUgT0NfQlVGCQkJKDB4Mzw8MjApCisKKyNkZWZpbmUgT0dBTUM1CQkJMHgzMDAxMAorI2RlZmluZSBPR0FNQzQJCQkweDMwMDE0CisjZGVmaW5lIE9HQU1DMwkJCTB4MzAwMTgKKyNkZWZpbmUgT0dBTUMyCQkJMHgzMDAxYworI2RlZmluZSBPR0FNQzEJCQkweDMwMDIwCisjZGVmaW5lIE9HQU1DMAkJCTB4MzAwMjQKKy8qCisgKiBQYWxldHRlIHJlZ2lzdGVycworICovCisjZGVmaW5lIFBBTEVUVEVfQQkJMHgwYTAwMAorI2RlZmluZSBQQUxFVFRFX0IJCTB4MGE4MDAKKworI2RlZmluZSBJU19JODMwKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU3NykKKyNkZWZpbmUgSVNfODQ1RyhkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1NjIpCisjZGVmaW5lIElTX0k4NVgoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgzNTgyKQorI2RlZmluZSBJU19JODU1KGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MzU4MikKKyNkZWZpbmUgSVNfSTg2NUcoZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyNTcyKQorCisjZGVmaW5lIElTX0k5MTVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjU4MiB8fCAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OGEpCisjZGVmaW5lIElTX0k5MTVHTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDI1OTIpCisjZGVmaW5lIElTX0k5NDVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjc3MikKKyNkZWZpbmUgSVNfSTk0NUdNKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjdBMiB8fFwKKwkJICAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI3QUUpCisjZGVmaW5lIElTX0k5NjVHKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4Mjk3MiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5ODIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOTkyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlBMiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBMDIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTEyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkE0MiB8fCBcCisJCSAgICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJFMDIgfHwgXAorCQkgICAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyRTEyIHx8IFwKKwkJICAgICAgIChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkUyMikKKworI2RlZmluZSBJU19JOTY1R00oZGV2KSAoKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyQTAyKQorCisjZGVmaW5lIElTX0lHRF9HTShkZXYpICgoZGV2KS0+cGNpX2RldmljZSA9PSAweDJBNDIpCisKKyNkZWZpbmUgSVNfRzRYKGRldikgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MkUwMiB8fCBcCisJCSAgICAgKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyRTEyIHx8IFwKKwkJICAgICAoZGV2KS0+cGNpX2RldmljZSA9PSAweDJFMjIpCisKKyNkZWZpbmUgSVNfRzMzKGRldikgICAgKChkZXYpLT5wY2lfZGV2aWNlID09IDB4MjlDMiB8fAlcCisJCQkoZGV2KS0+cGNpX2RldmljZSA9PSAweDI5QjIgfHwJXAorCQkJKGRldiktPnBjaV9kZXZpY2UgPT0gMHgyOUQyKQorCisjZGVmaW5lIElTX0k5WFgoZGV2KSAoSVNfSTkxNUcoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBJU19JOTQ1RyhkZXYpIHx8IFwKKwkJICAgICAgSVNfSTk0NUdNKGRldikgfHwgSVNfSTk2NUcoZGV2KSB8fCBJU19HMzMoZGV2KSkKKworI2RlZmluZSBJU19NT0JJTEUoZGV2KSAoSVNfSTgzMChkZXYpIHx8IElTX0k4NVgoZGV2KSB8fCBJU19JOTE1R00oZGV2KSB8fCBcCisJCQlJU19JOTQ1R00oZGV2KSB8fCBJU19JOTY1R00oZGV2KSB8fCBJU19JR0RfR00oZGV2KSkKKworI2RlZmluZSBJOTE1X05FRURfR0ZYX0hXUyhkZXYpIChJU19HMzMoZGV2KSB8fCBJU19JR0RfR00oZGV2KSB8fCBJU19HNFgoZGV2KSkKKworI2RlZmluZSBQUklNQVJZX1JJTkdCVUZGRVJfU0laRSAgICAgICAgICgxMjgqMTAyNCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfaW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaW9jMzIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pOTE1X2lvYzMyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaW9jMzIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYwMzYxMQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTAsMCArMSw2MjMgQEAKKy8qIGk5MTVfaXJxLmMgLS0gSVJRIHN1cHBvcnQgZm9yIHRoZSBJOTE1IC0qLSBsaW51eC1jIC0qLQorICovCisvKgorICogQ29weXJpZ2h0IDIwMDMgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworICogd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bworICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCisgKiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKKyAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCisgKiBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKKyAqIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5HRU1FTlQuCisgKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBHUkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFCisgKiBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJpOTE1X2RybS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKyNkZWZpbmUgVVNFUl9JTlRfRkxBRyAoMTw8MSkKKyNkZWZpbmUgVlNZTkNfUElQRUJfRkxBRyAoMTw8NSkKKyNkZWZpbmUgVlNZTkNfUElQRUFfRkxBRyAoMTw8NykKKworI2RlZmluZSBNQVhfTk9QSUQgKCh1MzIpfjApCisKKy8qKgorICogRW1pdCBibGl0cyBmb3Igc2NoZWR1bGVkIGJ1ZmZlciBzd2Fwcy4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIEhXIGxvY2sgaGVsZC4KKyAqLworc3RhdGljIHZvaWQgaTkxNV92YmxhbmtfdGFza2xldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCAqdG1wLCBoaXRzLCAqaGl0OworCWludCBuaGl0cywgbnJlY3RzLCBzbGljZVsyXSwgdXBwZXJbMl0sIGxvd2VyWzJdLCBpOworCXVuc2lnbmVkIGNvdW50ZXJbMl0gPSB7IGF0b21pY19yZWFkKCZkZXYtPnZibF9yZWNlaXZlZCksCisJCQkJYXRvbWljX3JlYWQoJmRldi0+dmJsX3JlY2VpdmVkMikgfTsKKwlzdHJ1Y3QgZHJtX2RyYXdhYmxlX2luZm8gKmRydzsKKwlkcm1faTkxNV9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJdTMyIGNwcCA9IGRldl9wcml2LT5jcHA7CisJdTMyIGNtZCA9IChjcHAgPT0gNCkgPyAoWFlfU1JDX0NPUFlfQkxUX0NNRCB8CisJCQkJWFlfU1JDX0NPUFlfQkxUX1dSSVRFX0FMUEhBIHwKKwkJCQlYWV9TUkNfQ09QWV9CTFRfV1JJVEVfUkdCKQorCQkJICAgICA6IFhZX1NSQ19DT1BZX0JMVF9DTUQ7CisJdTMyIHNyY19waXRjaCA9IHNhcmVhX3ByaXYtPnBpdGNoICogY3BwOworCXUzMiBkc3RfcGl0Y2ggPSBzYXJlYV9wcml2LT5waXRjaCAqIGNwcDsKKwl1MzIgcm9wY3BwID0gKDB4Y2MgPDwgMTYpIHwgKChjcHAgLSAxKSA8PCAyNCk7CisJUklOR19MT0NBTFM7CisKKwlpZiAoSVNfSTk2NUcoZGV2KSAmJiBzYXJlYV9wcml2LT5mcm9udF90aWxlZCkgeworCQljbWQgfD0gWFlfU1JDX0NPUFlfQkxUX0RTVF9USUxFRDsKKwkJZHN0X3BpdGNoID4+PSAyOworCX0KKwlpZiAoSVNfSTk2NUcoZGV2KSAmJiBzYXJlYV9wcml2LT5iYWNrX3RpbGVkKSB7CisJCWNtZCB8PSBYWV9TUkNfQ09QWV9CTFRfU1JDX1RJTEVEOworCQlzcmNfcGl0Y2ggPj49IDI7CisJfQorCisJRFJNX0RFQlVHKCJcbiIpOworCisJSU5JVF9MSVNUX0hFQUQoJmhpdHMpOworCisJbmhpdHMgPSBucmVjdHMgPSAwOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwkvKiBGaW5kIGJ1ZmZlciBzd2FwcyBzY2hlZHVsZWQgZm9yIHRoaXMgdmVydGljYWwgYmxhbmsgKi8KKwlsaXN0X2Zvcl9lYWNoX3NhZmUobGlzdCwgdG1wLCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKSB7CisJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnZibF9zd2FwID0KKwkJCWxpc3RfZW50cnkobGlzdCwgZHJtX2k5MTVfdmJsX3N3YXBfdCwgaGVhZCk7CisKKwkJaWYgKChjb3VudGVyW3ZibF9zd2FwLT5waXBlXSAtIHZibF9zd2FwLT5zZXF1ZW5jZSkgPiAoMTw8MjMpKQorCQkJY29udGludWU7CisKKwkJbGlzdF9kZWwobGlzdCk7CisJCWRldl9wcml2LT5zd2Fwc19wZW5kaW5nLS07CisKKwkJc3Bpbl91bmxvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwkJc3Bpbl9sb2NrKCZkZXYtPmRyd19sb2NrKTsKKworCQlkcncgPSBkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCB2Ymxfc3dhcC0+ZHJ3X2lkKTsKKworCQlpZiAoIWRydykgeworCQkJc3Bpbl91bmxvY2soJmRldi0+ZHJ3X2xvY2spOworCQkJZHJtX2ZyZWUodmJsX3N3YXAsIHNpemVvZigqdmJsX3N3YXApLCBEUk1fTUVNX0RSSVZFUik7CisJCQlzcGluX2xvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJbGlzdF9mb3JfZWFjaChoaXQsICZoaXRzKSB7CisJCQlkcm1faTkxNV92Ymxfc3dhcF90ICpzd2FwX2NtcCA9CisJCQkJbGlzdF9lbnRyeShoaXQsIGRybV9pOTE1X3ZibF9zd2FwX3QsIGhlYWQpOworCQkJc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvICpkcndfY21wID0KKwkJCQlkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwX2NtcC0+ZHJ3X2lkKTsKKworCQkJaWYgKGRyd19jbXAgJiYKKwkJCSAgICBkcndfY21wLT5yZWN0c1swXS55MSA+IGRydy0+cmVjdHNbMF0ueTEpIHsKKwkJCQlsaXN0X2FkZF90YWlsKGxpc3QsIGhpdCk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlzcGluX3VubG9jaygmZGV2LT5kcndfbG9jayk7CisKKwkJLyogTGlzdCBvZiBoaXRzIHdhcyBlbXB0eSwgb3Igd2UgcmVhY2hlZCB0aGUgZW5kIG9mIGl0ICovCisJCWlmIChoaXQgPT0gJmhpdHMpCisJCQlsaXN0X2FkZF90YWlsKGxpc3QsIGhpdHMucHJldik7CisKKwkJbmhpdHMrKzsKKworCQlzcGluX2xvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwl9CisKKwlpZiAobmhpdHMgPT0gMCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCQlyZXR1cm47CisJfQorCisJc3Bpbl91bmxvY2soJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKworCWk5MTVfa2VybmVsX2xvc3RfY29udGV4dChkZXYpOworCisJaWYgKElTX0k5NjVHKGRldikpIHsKKwkJQkVHSU5fTFBfUklORyg0KTsKKworCQlPVVRfUklORyhHRlhfT1BfRFJBV1JFQ1RfSU5GT19JOTY1KTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKCgoc2FyZWFfcHJpdi0+d2lkdGggLSAxKSAmIDB4ZmZmZikgfCAoKHNhcmVhX3ByaXYtPmhlaWdodCAtIDEpIDw8IDE2KSk7CisJCU9VVF9SSU5HKDApOworCQlBRFZBTkNFX0xQX1JJTkcoKTsKKwl9IGVsc2UgeworCQlCRUdJTl9MUF9SSU5HKDYpOworCisJCU9VVF9SSU5HKEdGWF9PUF9EUkFXUkVDVF9JTkZPKTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKDApOworCQlPVVRfUklORyhzYXJlYV9wcml2LT53aWR0aCB8IHNhcmVhX3ByaXYtPmhlaWdodCA8PCAxNik7CisJCU9VVF9SSU5HKHNhcmVhX3ByaXYtPndpZHRoIHwgc2FyZWFfcHJpdi0+aGVpZ2h0IDw8IDE2KTsKKwkJT1VUX1JJTkcoMCk7CisKKwkJQURWQU5DRV9MUF9SSU5HKCk7CisJfQorCisJc2FyZWFfcHJpdi0+Y3R4T3duZXIgPSBEUk1fS0VSTkVMX0NPTlRFWFQ7CisKKwl1cHBlclswXSA9IHVwcGVyWzFdID0gMDsKKwlzbGljZVswXSA9IG1heChzYXJlYV9wcml2LT5waXBlQV9oIC8gbmhpdHMsIDEpOworCXNsaWNlWzFdID0gbWF4KHNhcmVhX3ByaXYtPnBpcGVCX2ggLyBuaGl0cywgMSk7CisJbG93ZXJbMF0gPSBzYXJlYV9wcml2LT5waXBlQV95ICsgc2xpY2VbMF07CisJbG93ZXJbMV0gPSBzYXJlYV9wcml2LT5waXBlQl95ICsgc2xpY2VbMF07CisKKwlzcGluX2xvY2soJmRldi0+ZHJ3X2xvY2spOworCisJLyogRW1pdCBibGl0cyBmb3IgYnVmZmVyIHN3YXBzLCBwYXJ0aXRpb25pbmcgYm90aCBvdXRwdXRzIGludG8gYXMgbWFueQorCSAqIHNsaWNlcyBhcyB0aGVyZSBhcmUgYnVmZmVyIHN3YXBzIHNjaGVkdWxlZCBpbiBvcmRlciB0byBhdm9pZCB0ZWFyaW5nCisJICogKGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgYSBzaW5nbGUgYnVmZmVyIHN3YXAgd291bGQgYWx3YXlzCisJICogY29tcGxldGUgYmVmb3JlIHNjYW5vdXQgc3RhcnRzKS4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpKysgPCBuaGl0czsKKwkgICAgIHVwcGVyWzBdID0gbG93ZXJbMF0sIGxvd2VyWzBdICs9IHNsaWNlWzBdLAorCSAgICAgdXBwZXJbMV0gPSBsb3dlclsxXSwgbG93ZXJbMV0gKz0gc2xpY2VbMV0pIHsKKwkJaWYgKGkgPT0gbmhpdHMpCisJCQlsb3dlclswXSA9IGxvd2VyWzFdID0gc2FyZWFfcHJpdi0+aGVpZ2h0OworCisJCWxpc3RfZm9yX2VhY2goaGl0LCAmaGl0cykgeworCQkJZHJtX2k5MTVfdmJsX3N3YXBfdCAqc3dhcF9oaXQgPQorCQkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKwkJCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpyZWN0OworCQkJaW50IG51bV9yZWN0cywgcGlwZTsKKwkJCXVuc2lnbmVkIHNob3J0IHRvcCwgYm90dG9tOworCisJCQlkcncgPSBkcm1fZ2V0X2RyYXdhYmxlX2luZm8oZGV2LCBzd2FwX2hpdC0+ZHJ3X2lkKTsKKworCQkJaWYgKCFkcncpCisJCQkJY29udGludWU7CisKKwkJCXJlY3QgPSBkcnctPnJlY3RzOworCQkJcGlwZSA9IHN3YXBfaGl0LT5waXBlOworCQkJdG9wID0gdXBwZXJbcGlwZV07CisJCQlib3R0b20gPSBsb3dlcltwaXBlXTsKKworCQkJZm9yIChudW1fcmVjdHMgPSBkcnctPm51bV9yZWN0czsgbnVtX3JlY3RzLS07IHJlY3QrKykgeworCQkJCWludCB5MSA9IG1heChyZWN0LT55MSwgdG9wKTsKKwkJCQlpbnQgeTIgPSBtaW4ocmVjdC0+eTIsIGJvdHRvbSk7CisKKwkJCQlpZiAoeTEgPj0geTIpCisJCQkJCWNvbnRpbnVlOworCisJCQkJQkVHSU5fTFBfUklORyg4KTsKKworCQkJCU9VVF9SSU5HKGNtZCk7CisJCQkJT1VUX1JJTkcocm9wY3BwIHwgZHN0X3BpdGNoKTsKKwkJCQlPVVRfUklORygoeTEgPDwgMTYpIHwgcmVjdC0+eDEpOworCQkJCU9VVF9SSU5HKCh5MiA8PCAxNikgfCByZWN0LT54Mik7CisJCQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+ZnJvbnRfb2Zmc2V0KTsKKwkJCQlPVVRfUklORygoeTEgPDwgMTYpIHwgcmVjdC0+eDEpOworCQkJCU9VVF9SSU5HKHNyY19waXRjaCk7CisJCQkJT1VUX1JJTkcoc2FyZWFfcHJpdi0+YmFja19vZmZzZXQpOworCisJCQkJQURWQU5DRV9MUF9SSU5HKCk7CisJCQl9CisJCX0KKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUoaGl0LCB0bXAsICZoaXRzKSB7CisJCWRybV9pOTE1X3ZibF9zd2FwX3QgKnN3YXBfaGl0ID0KKwkJCWxpc3RfZW50cnkoaGl0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKworCQlsaXN0X2RlbChoaXQpOworCisJCWRybV9mcmVlKHN3YXBfaGl0LCBzaXplb2YoKnN3YXBfaGl0KSwgRFJNX01FTV9EUklWRVIpOworCX0KK30KKworaXJxcmV0dXJuX3QgaTkxNV9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAoc3RydWN0IGRybV9kZXZpY2UgKikgYXJnOworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX2k5MTVfcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTE2IHRlbXA7CisJdTMyIHBpcGVhX3N0YXRzLCBwaXBlYl9zdGF0czsKKworCXBpcGVhX3N0YXRzID0gSTkxNV9SRUFEKEk5MTVSRUdfUElQRUFTVEFUKTsKKwlwaXBlYl9zdGF0cyA9IEk5MTVfUkVBRChJOTE1UkVHX1BJUEVCU1RBVCk7CisKKwl0ZW1wID0gSTkxNV9SRUFEMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUik7CisKKwl0ZW1wICY9IChVU0VSX0lOVF9GTEFHIHwgVlNZTkNfUElQRUFfRkxBRyB8IFZTWU5DX1BJUEVCX0ZMQUcpOworCisJRFJNX0RFQlVHKCIlcyBmbGFnPSUwOHhcbiIsIF9fRlVOQ1RJT05fXywgdGVtcCk7CisKKwlpZiAodGVtcCA9PSAwKQorCQlyZXR1cm4gSVJRX05PTkU7CisKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUiwgdGVtcCk7CisJKHZvaWQpIEk5MTVfUkVBRDE2KEk5MTVSRUdfSU5UX0lERU5USVRZX1IpOworCURSTV9SRUFETUVNT1JZQkFSUklFUigpOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2ggPSBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpOworCisJaWYgKHRlbXAgJiBVU0VSX0lOVF9GTEFHKQorCQlEUk1fV0FLRVVQKCZkZXZfcHJpdi0+aXJxX3F1ZXVlKTsKKworCWlmICh0ZW1wICYgKFZTWU5DX1BJUEVBX0ZMQUcgfCBWU1lOQ19QSVBFQl9GTEFHKSkgeworCQlpbnQgdmJsYW5rX3BpcGUgPSBkZXZfcHJpdi0+dmJsYW5rX3BpcGU7CisKKwkJaWYgKCh2YmxhbmtfcGlwZSAmCisJCSAgICAgKERSTV9JOTE1X1ZCTEFOS19QSVBFX0EgfCBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkKKwkJICAgID09IChEUk1fSTkxNV9WQkxBTktfUElQRV9BIHwgRFJNX0k5MTVfVkJMQU5LX1BJUEVfQikpIHsKKwkJCWlmICh0ZW1wICYgVlNZTkNfUElQRUFfRkxBRykKKwkJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7CisJCQlpZiAodGVtcCAmIFZTWU5DX1BJUEVCX0ZMQUcpCisJCQkJYXRvbWljX2luYygmZGV2LT52YmxfcmVjZWl2ZWQyKTsKKwkJfSBlbHNlIGlmICgoKHRlbXAgJiBWU1lOQ19QSVBFQV9GTEFHKSAmJgorCQkJICAgICh2YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0EpKSB8fAorCQkJICAgKCh0ZW1wICYgVlNZTkNfUElQRUJfRkxBRykgJiYKKwkJCSAgICAodmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkpCisJCQlhdG9taWNfaW5jKCZkZXYtPnZibF9yZWNlaXZlZCk7CisKKwkJRFJNX1dBS0VVUCgmZGV2LT52YmxfcXVldWUpOworCQlkcm1fdmJsX3NlbmRfc2lnbmFscyhkZXYpOworCisJCWlmIChkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA+IDApCisJCQlkcm1fbG9ja2VkX3Rhc2tsZXQoZGV2LCBpOTE1X3ZibGFua190YXNrbGV0KTsKKwkJSTkxNV9XUklURShJOTE1UkVHX1BJUEVBU1RBVCwKKwkJCXBpcGVhX3N0YXRzfEk5MTVfVkJMQU5LX0lOVEVSUlVQVF9FTkFCTEV8CisJCQlJOTE1X1ZCTEFOS19DTEVBUik7CisJCUk5MTVfV1JJVEUoSTkxNVJFR19QSVBFQlNUQVQsCisJCQlwaXBlYl9zdGF0c3xJOTE1X1ZCTEFOS19JTlRFUlJVUFRfRU5BQkxFfAorCQkJSTkxNV9WQkxBTktfQ0xFQVIpOworCX0KKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBpOTE1X2VtaXRfaXJxKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCVJJTkdfTE9DQUxTOworCisJaTkxNV9rZXJuZWxfbG9zdF9jb250ZXh0KGRldik7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9lbnF1ZXVlID0gKytkZXZfcHJpdi0+Y291bnRlcjsKKworCWlmIChkZXZfcHJpdi0+Y291bnRlciA+IDB4N0ZGRkZGRkZVTCkKKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZW5xdWV1ZSA9IGRldl9wcml2LT5jb3VudGVyID0gMTsKKworCUJFR0lOX0xQX1JJTkcoNik7CisJT1VUX1JJTkcoQ01EX1NUT1JFX0RXT1JEX0lEWCk7CisJT1VUX1JJTkcoMjApOworCU9VVF9SSU5HKGRldl9wcml2LT5jb3VudGVyKTsKKwlPVVRfUklORygwKTsKKwlPVVRfUklORygwKTsKKwlPVVRfUklORyhHRlhfT1BfVVNFUl9JTlRFUlJVUFQpOworCUFEVkFOQ0VfTFBfUklORygpOworCisJcmV0dXJuIGRldl9wcml2LT5jb3VudGVyOworfQorCitzdGF0aWMgaW50IGk5MTVfd2FpdF9pcnEoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBpcnFfbnIpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCURSTV9ERUJVRygiaXJxX25yPSVkIGJyZWFkY3J1bWI9JWRcbiIsIGlycV9uciwKKwkJICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpKTsKKworCWlmIChSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpID49IGlycV9ucikKKwkJcmV0dXJuIDA7CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGVyZl9ib3hlcyB8PSBJOTE1X0JPWF9XQUlUOworCisJRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+aXJxX3F1ZXVlLCAzICogRFJNX0haLAorCQkgICAgUkVBRF9CUkVBRENSVU1CKGRldl9wcml2KSA+PSBpcnFfbnIpOworCisJaWYgKHJldCA9PSAtRUJVU1kpIHsKKwkJRFJNX0VSUk9SKCJFQlVTWSAtLSByZWM6ICVkIGVtaXR0ZWQ6ICVkXG4iLAorCQkJICBSRUFEX0JSRUFEQ1JVTUIoZGV2X3ByaXYpLCAoaW50KWRldl9wcml2LT5jb3VudGVyKTsKKwl9CisKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCA9IFJFQURfQlJFQURDUlVNQihkZXZfcHJpdik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlLAorCQkJCSAgICAgIGF0b21pY190ICpjb3VudGVyKQoreworCWRybV9pOTE1X3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGludCBjdXJfdmJsYW5rOworCWludCByZXQgPSAwOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJRFJNX1dBSVRfT04ocmV0LCBkZXYtPnZibF9xdWV1ZSwgMyAqIERSTV9IWiwKKwkJICAgICgoKGN1cl92YmxhbmsgPSBhdG9taWNfcmVhZChjb3VudGVyKSkKKwkJCS0gKnNlcXVlbmNlKSA8PSAoMTw8MjMpKSk7CisKKwkqc2VxdWVuY2UgPSBjdXJfdmJsYW5rOworCisJcmV0dXJuIHJldDsKK30KKworCitpbnQgaTkxNV9kcml2ZXJfdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKK3sKKwlyZXR1cm4gaTkxNV9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgJmRldi0+dmJsX3JlY2VpdmVkKTsKK30KKworaW50IGk5MTVfZHJpdmVyX3ZibGFua193YWl0MihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgKnNlcXVlbmNlKQoreworCXJldHVybiBpOTE1X2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCAmZGV2LT52YmxfcmVjZWl2ZWQyKTsKK30KKworLyogTmVlZHMgdGhlIGxvY2sgYXMgaXQgdG91Y2hlcyB0aGUgcmluZy4KKyAqLworaW50IGk5MTVfaXJxX2VtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1faTkxNV9pcnFfZW1pdF90ICplbWl0ID0gZGF0YTsKKwlpbnQgcmVzdWx0OworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJlc3VsdCA9IGk5MTVfZW1pdF9pcnEoZGV2KTsKKworCWlmIChEUk1fQ09QWV9UT19VU0VSKGVtaXQtPmlycV9zZXEsICZyZXN1bHQsIHNpemVvZihpbnQpKSkgeworCQlEUk1fRVJST1IoImNvcHlfdG9fdXNlclxuIik7CisJCXJldHVybiAtRUZBVUxUOworCX0KKworCXJldHVybiAwOworfQorCisvKiBEb2Vzbid0IG5lZWQgdGhlIGhhcmR3YXJlIGxvY2suCisgKi8KK2ludCBpOTE1X2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfaXJxX3dhaXRfdCAqaXJxd2FpdCA9IGRhdGE7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gaTkxNV93YWl0X2lycShkZXYsIGlycXdhaXQtPmlycV9zZXEpOworfQorCitzdGF0aWMgdm9pZCBpOTE1X2VuYWJsZV9pbnRlcnJ1cHQgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MTYgZmxhZzsKKworCWZsYWcgPSAwOworCWlmIChkZXZfcHJpdi0+dmJsYW5rX3BpcGUgJiBEUk1fSTkxNV9WQkxBTktfUElQRV9BKQorCQlmbGFnIHw9IFZTWU5DX1BJUEVBX0ZMQUc7CisJaWYgKGRldl9wcml2LT52YmxhbmtfcGlwZSAmIERSTV9JOTE1X1ZCTEFOS19QSVBFX0IpCisJCWZsYWcgfD0gVlNZTkNfUElQRUJfRkxBRzsKKworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgVVNFUl9JTlRfRkxBRyB8IGZsYWcpOworfQorCisvKiBTZXQgdGhlIHZibGFuayBtb25pdG9yIHBpcGUKKyAqLworaW50IGk5MTVfdmJsYW5rX3BpcGVfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfdmJsYW5rX3BpcGVfdCAqcGlwZSA9IGRhdGE7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocGlwZS0+cGlwZSAmIH4oRFJNX0k5MTVfVkJMQU5LX1BJUEVfQXxEUk1fSTkxNV9WQkxBTktfUElQRV9CKSkgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIGludmFsaWQgcGlwZSAweCV4XG4iLCBwaXBlLT5waXBlKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGV2X3ByaXYtPnZibGFua19waXBlID0gcGlwZS0+cGlwZTsKKworCWk5MTVfZW5hYmxlX2ludGVycnVwdCAoZGV2KTsKKworCXJldHVybiAwOworfQorCitpbnQgaTkxNV92YmxhbmtfcGlwZV9nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1faTkxNV92YmxhbmtfcGlwZV90ICpwaXBlID0gZGF0YTsKKwl1MTYgZmxhZzsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWZsYWcgPSBJOTE1X1JFQUQoSTkxNVJFR19JTlRfRU5BQkxFX1IpOworCXBpcGUtPnBpcGUgPSAwOworCWlmIChmbGFnICYgVlNZTkNfUElQRUFfRkxBRykKKwkJcGlwZS0+cGlwZSB8PSBEUk1fSTkxNV9WQkxBTktfUElQRV9BOworCWlmIChmbGFnICYgVlNZTkNfUElQRUJfRkxBRykKKwkJcGlwZS0+cGlwZSB8PSBEUk1fSTkxNV9WQkxBTktfUElQRV9COworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogU2NoZWR1bGUgYnVmZmVyIHN3YXAgYXQgZ2l2ZW4gdmVydGljYWwgYmxhbmsuCisgKi8KK2ludCBpOTE1X3ZibGFua19zd2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX2k5MTVfdmJsYW5rX3N3YXBfdCAqc3dhcCA9IGRhdGE7CisJZHJtX2k5MTVfdmJsX3N3YXBfdCAqdmJsX3N3YXA7CisJdW5zaWduZWQgaW50IHBpcGUsIHNlcXR5cGUsIGN1cnNlcTsKKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOworCXN0cnVjdCBsaXN0X2hlYWQgKmxpc3Q7CisKKwlpZiAoIWRldl9wcml2KSB7CisJCURSTV9FUlJPUigiJXMgY2FsbGVkIHdpdGggbm8gaW5pdGlhbGl6YXRpb25cbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGRldl9wcml2LT5zYXJlYV9wcml2LT5yb3RhdGlvbikgeworCQlEUk1fREVCVUcoIlJvdGF0aW9uIG5vdCBzdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoc3dhcC0+c2VxdHlwZSAmIH4oX0RSTV9WQkxBTktfUkVMQVRJVkUgfCBfRFJNX1ZCTEFOS19BQlNPTFVURSB8CisJCQkgICAgIF9EUk1fVkJMQU5LX1NFQ09OREFSWSB8IF9EUk1fVkJMQU5LX05FWFRPTk1JU1MpKSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBzZXF1ZW5jZSB0eXBlIDB4JXhcbiIsIHN3YXAtPnNlcXR5cGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlwaXBlID0gKHN3YXAtPnNlcXR5cGUgJiBfRFJNX1ZCTEFOS19TRUNPTkRBUlkpID8gMSA6IDA7CisKKwlzZXF0eXBlID0gc3dhcC0+c2VxdHlwZSAmIChfRFJNX1ZCTEFOS19SRUxBVElWRSB8IF9EUk1fVkJMQU5LX0FCU09MVVRFKTsKKworCWlmICghKGRldl9wcml2LT52YmxhbmtfcGlwZSAmICgxIDw8IHBpcGUpKSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgcGlwZSAlZFxuIiwgcGlwZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwlpZiAoIWRybV9nZXRfZHJhd2FibGVfaW5mbyhkZXYsIHN3YXAtPmRyYXdhYmxlKSkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisJCURSTV9ERUJVRygiSW52YWxpZCBkcmF3YWJsZSBJRCAlZFxuIiwgc3dhcC0+ZHJhd2FibGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmRyd19sb2NrLCBpcnFmbGFncyk7CisKKwljdXJzZXEgPSBhdG9taWNfcmVhZChwaXBlID8gJmRldi0+dmJsX3JlY2VpdmVkMiA6ICZkZXYtPnZibF9yZWNlaXZlZCk7CisKKwlpZiAoc2VxdHlwZSA9PSBfRFJNX1ZCTEFOS19SRUxBVElWRSkKKwkJc3dhcC0+c2VxdWVuY2UgKz0gY3Vyc2VxOworCisJaWYgKChjdXJzZXEgLSBzd2FwLT5zZXF1ZW5jZSkgPD0gKDE8PDIzKSkgeworCQlpZiAoc3dhcC0+c2VxdHlwZSAmIF9EUk1fVkJMQU5LX05FWFRPTk1JU1MpIHsKKwkJCXN3YXAtPnNlcXVlbmNlID0gY3Vyc2VxICsgMTsKKwkJfSBlbHNlIHsKKwkJCURSTV9ERUJVRygiTWlzc2VkIHRhcmdldCBzZXF1ZW5jZVxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCisJbGlzdF9mb3JfZWFjaChsaXN0LCAmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKSB7CisJCXZibF9zd2FwID0gbGlzdF9lbnRyeShsaXN0LCBkcm1faTkxNV92Ymxfc3dhcF90LCBoZWFkKTsKKworCQlpZiAodmJsX3N3YXAtPmRyd19pZCA9PSBzd2FwLT5kcmF3YWJsZSAmJgorCQkgICAgdmJsX3N3YXAtPnBpcGUgPT0gcGlwZSAmJgorCQkgICAgdmJsX3N3YXAtPnNlcXVlbmNlID09IHN3YXAtPnNlcXVlbmNlKSB7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+c3dhcHNfbG9jaywgaXJxZmxhZ3MpOworCQkJRFJNX0RFQlVHKCJBbHJlYWR5IHNjaGVkdWxlZFxuIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlpZiAoZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcgPj0gMTAwKSB7CisJCURSTV9ERUJVRygiVG9vIG1hbnkgc3dhcHMgcXVldWVkXG4iKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisKKwl2Ymxfc3dhcCA9IGRybV9jYWxsb2MoMSwgc2l6ZW9mKCp2Ymxfc3dhcCksIERSTV9NRU1fRFJJVkVSKTsKKworCWlmICghdmJsX3N3YXApIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IHRvIHF1ZXVlIHN3YXBcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwl2Ymxfc3dhcC0+ZHJ3X2lkID0gc3dhcC0+ZHJhd2FibGU7CisJdmJsX3N3YXAtPnBpcGUgPSBwaXBlOworCXZibF9zd2FwLT5zZXF1ZW5jZSA9IHN3YXAtPnNlcXVlbmNlOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlsaXN0X2FkZF90YWlsKCZ2Ymxfc3dhcC0+aGVhZCwgJmRldl9wcml2LT52Ymxfc3dhcHMuaGVhZCk7CisJZGV2X3ByaXYtPnN3YXBzX3BlbmRpbmcrKzsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5zd2Fwc19sb2NrLCBpcnFmbGFncyk7CisKKwlyZXR1cm4gMDsKK30KKworLyogZHJtX2RtYS5oIGhvb2tzCisqLwordm9pZCBpOTE1X2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJSTkxNV9XUklURTE2KEk5MTVSRUdfSFdTVEFNLCAweGZmZmUpOworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9NQVNLX1IsIDB4MCk7CisJSTkxNV9XUklURTE2KEk5MTVSRUdfSU5UX0VOQUJMRV9SLCAweDApOworfQorCit2b2lkIGk5MTVfZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1faTkxNV9wcml2YXRlX3QgKmRldl9wcml2ID0gKGRybV9pOTE1X3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5zd2Fwc19sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmZGV2X3ByaXYtPnZibF9zd2Fwcy5oZWFkKTsKKwlkZXZfcHJpdi0+c3dhcHNfcGVuZGluZyA9IDA7CisKKwlpZiAoIWRldl9wcml2LT52YmxhbmtfcGlwZSkKKwkJZGV2X3ByaXYtPnZibGFua19waXBlID0gRFJNX0k5MTVfVkJMQU5LX1BJUEVfQTsKKwlpOTE1X2VuYWJsZV9pbnRlcnJ1cHQoZGV2KTsKKwlEUk1fSU5JVF9XQUlUUVVFVUUoJmRldl9wcml2LT5pcnFfcXVldWUpOworfQorCit2b2lkIGk5MTVfZHJpdmVyX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX2k5MTVfcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1faTkxNV9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MTYgdGVtcDsKKworCWlmICghZGV2X3ByaXYpCisJCXJldHVybjsKKworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0hXU1RBTSwgMHhmZmZmKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfTUFTS19SLCAweGZmZmYpOworCUk5MTVfV1JJVEUxNihJOTE1UkVHX0lOVF9FTkFCTEVfUiwgMHgwKTsKKworCXRlbXAgPSBJOTE1X1JFQUQxNihJOTE1UkVHX0lOVF9JREVOVElUWV9SKTsKKwlJOTE1X1dSSVRFMTYoSTkxNVJFR19JTlRfSURFTlRJVFlfUiwgdGVtcCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k5MTVfbWVtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k5MTVfbWVtLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfbWVtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2EvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNjg0NzgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL01ha2VmaWxlCkBAIC0wLDAgKzEsMTEgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK21nYS15IDo9IG1nYV9kcnYubyBtZ2FfZG1hLm8gbWdhX3N0YXRlLm8gbWdhX3dhcnAubyBtZ2FfaXJxLm8KKworbWdhLSQoQ09ORklHX0NPTVBBVCkgKz0gbWdhX2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9NR0EpCSs9IG1nYS5vCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZG1hLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vbWdhX2RtYS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kbWEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pb2MzMi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9pb2MzMi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX2lycS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfaXJxLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vbWdhX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vbWdhL21nYV9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL21nYV91Y29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfdWNvZGUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9tZ2FfdWNvZGUuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL21nYS9tZ2FfdWNvZGUuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2Ffd2FycC5jIGIvZHJpdmVycy9ncHUvZHJtL21nYS9tZ2Ffd2FycC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL21nYV93YXJwLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9tZ2EvbWdhX3dhcnAuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3IxMjgvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2M3MmFlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvTWFrZWZpbGUKQEAgLTAsMCArMSwxMCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQorcjEyOC15ICAgOj0gcjEyOF9kcnYubyByMTI4X2NjZS5vIHIxMjhfc3RhdGUubyByMTI4X2lycS5vCisKK3IxMjgtJChDT05GSUdfQ09NUEFUKSAgICs9IHIxMjhfaW9jMzIubworCitvYmotJChDT05GSUdfRFJNX1IxMjgpCSs9IHIxMjgubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2NjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9jY2UuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yMTI4X2NjZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2NjZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3IxMjhfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9pb2MzMi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9yMTI4L3IxMjhfaXJxLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9pcnEuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3IxMjgvcjEyOF9pcnEuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yMTI4X3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X3N0YXRlLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vcjEyOC9yMTI4X3N0YXRlLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlYjUyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCkBAIC0wLDAgKzEsMTAgQEAKKyMKKyMgTWFrZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZQorIyBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KKworY2NmbGFncy15IDo9IC1JaW5jbHVkZS9kcm0KK3JhZGVvbi15IDo9IHJhZGVvbl9kcnYubyByYWRlb25fY3AubyByYWRlb25fc3RhdGUubyByYWRlb25fbWVtLm8gcmFkZW9uX2lycS5vIHIzMDBfY21kYnVmLm8KKworcmFkZW9uLSQoQ09ORklHX0NPTVBBVCkgKz0gcmFkZW9uX2lvYzMyLm8KKworb2JqLSQoQ09ORklHX0RSTV9SQURFT04pKz0gcmFkZW9uLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjMwMF9jbWRidWYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDJkZjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX2NtZGJ1Zi5jCkBAIC0wLDAgKzEsMTA3MSBAQAorLyogcjMwMF9jbWRidWYuYyAtLSBDb21tYW5kIGJ1ZmZlciBlbWlzc2lvbiBmb3IgUjMwMCAtKi0gbGludXgtYyAtKi0KKyAqCisgKiBDb3B5cmlnaHQgKEMpIFRoZSBXZWF0aGVyIENoYW5uZWwsIEluYy4gIDIwMDIuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQgTmljb2xhaSBIYWVobmxlLgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgV2VhdGhlciBDaGFubmVsIChUTSkgZnVuZGVkIFR1bmdzdGVuIEdyYXBoaWNzIHRvIGRldmVsb3AgdGhlCisgKiBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIFJhZGVvbiA4NTAwIGRyaXZlciB1bmRlciB0aGUgWEZyZWU4NiBsaWNlbnNlLgorICogVGhpcyBub3RpY2UgbXVzdCBiZSBwcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBOaWNvbGFpIEhhZWhubGUgPHByZWZlY3RfQGdteC5uZXQ+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorI2luY2x1ZGUgInIzMDBfcmVnLmgiCisKKyNkZWZpbmUgUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTCQk0CisKKy8qIFZhbHVlcyBmb3IgUjMwMF9SRV9DTElQUkVDVF9DTlRMIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIGNsaXByZWN0cworICovCitzdGF0aWMgY29uc3QgaW50IHIzMDBfY2xpcHJlY3RfY250bFs0XSA9IHsKKwkweEFBQUEsCisJMHhFRUVFLAorCTB4RkVGRSwKKwkweEZGRkUKK307CisKKy8qKgorICogRW1pdCB1cCB0byBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMgY2xpcHJlY3RzIGZyb20gdGhlIGdpdmVuIGNvbW1hbmQKKyAqIGJ1ZmZlciwgc3RhcnRpbmcgd2l0aCBpbmRleCBuLgorICovCitzdGF0aWMgaW50IHIzMDBfZW1pdF9jbGlwcmVjdHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLCBpbnQgbikKK3sKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7CisJaW50IG5yOworCWludCBpOworCVJJTkdfTE9DQUxTOworCisJbnIgPSBjbWRidWYtPm5ib3ggLSBuOworCWlmIChuciA+IFIzMDBfU0lNVUxUQU5FT1VTX0NMSVBSRUNUUykKKwkJbnIgPSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFM7CisKKwlEUk1fREVCVUcoIiVpIGNsaXByZWN0c1xuIiwgbnIpOworCisJaWYgKG5yKSB7CisJCUJFR0lOX1JJTkcoNiArIG5yICogMik7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9DTElQUkVDVF9UTF8wLCBuciAqIDIgLSAxKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IG5yOyArK2kpIHsKKwkJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVJfVU5DSEVDS0VECisJCQkgICAgKCZib3gsICZjbWRidWYtPmJveGVzW24gKyBpXSwgc2l6ZW9mKGJveCkpKSB7CisJCQkJRFJNX0VSUk9SKCJjb3B5IGNsaXByZWN0IGZhdWx0ZWRcbiIpOworCQkJCXJldHVybiAtRUZBVUxUOworCQkJfQorCisJCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgeworCQkJCWJveC54MSA9IChib3gueDEpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MSA9IChib3gueTEpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC54MiA9IChib3gueDIpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MiA9IChib3gueTIpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJfSBlbHNlIHsKKwkJCQlib3gueDEgPSAoYm94LngxICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCQkJCWJveC55MSA9IChib3gueTEgKyBSMzAwX0NMSVBSRUNUX09GRlNFVCkgJgorCQkJCQlSMzAwX0NMSVBSRUNUX01BU0s7CisJCQkJYm94LngyID0gKGJveC54MiArIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUKSAmCisJCQkJCVIzMDBfQ0xJUFJFQ1RfTUFTSzsKKwkJCQlib3gueTIgPSAoYm94LnkyICsgUjMwMF9DTElQUkVDVF9PRkZTRVQpICYKKwkJCQkJUjMwMF9DTElQUkVDVF9NQVNLOworCisJCQl9CisJCQlPVVRfUklORygoYm94LngxIDw8IFIzMDBfQ0xJUFJFQ1RfWF9TSElGVCkgfAorCQkJCSAoYm94LnkxIDw8IFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCkpOworCQkJT1VUX1JJTkcoKGJveC54MiA8PCBSMzAwX0NMSVBSRUNUX1hfU0hJRlQpIHwKKwkJCQkgKGJveC55MiA8PCBSMzAwX0NMSVBSRUNUX1lfU0hJRlQpKTsKKworCQl9CisKKwkJT1VUX1JJTkdfUkVHKFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCwgcjMwMF9jbGlwcmVjdF9jbnRsW25yIC0gMV0pOworCisJCS8qIFRPRE8vU0VDVVJJVFk6IEZvcmNlIHNjaXNzb3JzIHRvIGEgc2FmZSB2YWx1ZSwgb3RoZXJ3aXNlIHRoZQorCQkgKiBjbGllbnQgbWlnaHQgYmUgYWJsZSB0byB0cmFtcGxlIG92ZXIgbWVtb3J5LgorCQkgKiBUaGUgaW1wYWN0IHNob3VsZCBiZSB2ZXJ5IGxpbWl0ZWQsIGJ1dCBJJ2QgcmF0aGVyIGJlIHNhZmUgdGhhbgorCQkgKiBzb3JyeS4KKwkJICovCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SRV9TQ0lTU09SU19UTCwgMSkpOworCQlPVVRfUklORygwKTsKKwkJT1VUX1JJTkcoUjMwMF9TQ0lTU09SU19YX01BU0sgfCBSMzAwX1NDSVNTT1JTX1lfTUFTSyk7CisJCUFEVkFOQ0VfUklORygpOworCX0gZWxzZSB7CisJCS8qIFdoeSB3ZSBhbGxvdyB6ZXJvIGNsaXByZWN0IHJlbmRlcmluZzoKKwkJICogVGhlcmUgYXJlIHNvbWUgY29tbWFuZHMgaW4gYSBjb21tYW5kIGJ1ZmZlciB0aGF0IG11c3QgYmUgc3VibWl0dGVkCisJCSAqIGV2ZW4gd2hlbiB0aGVyZSBhcmUgbm8gY2xpcHJlY3RzLCBlLmcuIERNQSBidWZmZXIgZGlzY2FyZAorCQkgKiBvciBzdGF0ZSBzZXR0aW5nICh0aG91Z2ggc3RhdGUgc2V0dGluZyBjb3VsZCBiZSBhdm9pZGVkIGJ5CisJCSAqIHNpbXVsYXRpbmcgYSBsb3NzIG9mIGNvbnRleHQpLgorCQkgKgorCQkgKiBOb3cgc2luY2UgdGhlIGNtZGJ1ZiBpbnRlcmZhY2UgaXMgc28gY2hhb3RpYyByaWdodCBub3cgKGFuZCBpcworCQkgKiBib3VuZCB0byByZW1haW4gdGhhdCB3YXkgZm9yIGEgYml0IHVudGlsIHRoaW5ncyBzZXR0bGUgZG93biksCisJCSAqIGl0IGlzIGJhc2ljYWxseSBpbXBvc3NpYmxlIHRvIGZpbHRlciBvdXQgdGhlIGNvbW1hbmRzIHRoYXQgYXJlCisJCSAqIG5lY2Vzc2FyeSBhbmQgdGhvc2UgdGhhdCBhcmVuJ3QuCisJCSAqCisJCSAqIFNvIEkgY2hvb3NlIHRoZSBzYWZlIHdheSBhbmQgZG9uJ3QgZG8gYW55IGZpbHRlcmluZyBhdCBhbGw7CisJCSAqIGluc3RlYWQsIEkgc2ltcGx5IHNldCB1cCB0aGUgZW5naW5lIHNvIHRoYXQgYWxsIHJlbmRlcmluZworCQkgKiBjYW4ndCBwcm9kdWNlIGFueSBmcmFnbWVudHMuCisJCSAqLworCQlCRUdJTl9SSU5HKDIpOworCQlPVVRfUklOR19SRUcoUjMwMF9SRV9DTElQUkVDVF9DTlRMLCAwKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1OCByMzAwX3JlZ19mbGFnc1sweDEwMDAwID4+IDJdOworCit2b2lkIHIzMDBfaW5pdF9yZWdfZmxhZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlpbnQgaTsKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCisJbWVtc2V0KHIzMDBfcmVnX2ZsYWdzLCAwLCAweDEwMDAwID4+IDIpOworI2RlZmluZSBBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LG1hcmspIFwKKwkJZm9yKGk9KChyZWcpPj4yKTtpPCgocmVnKT4+MikrKGNvdW50KTtpKyspXAorCQkJcjMwMF9yZWdfZmxhZ3NbaV18PShtYXJrKTsKKworI2RlZmluZSBNQVJLX1NBRkUJCTEKKyNkZWZpbmUgTUFSS19DSEVDS19PRkZTRVQJMgorCisjZGVmaW5lIEFERF9SQU5HRShyZWcsIGNvdW50KQlBRERfUkFOR0VfTUFSSyhyZWcsIGNvdW50LCBNQVJLX1NBRkUpCisKKwkvKiB0aGVzZSBtYXRjaCBjbWR1Y3MoKSBjb21tYW5kIGluIHIzMDBfZHJpdmVyL3IzMDAvcjMwMF9jbWRidWYuYyAqLworCUFERF9SQU5HRShSMzAwX1NFX1ZQT1JUX1hTQ0FMRSwgNik7CisJQUREX1JBTkdFKFIzMDBfVkFQX0NOVEwsIDEpOworCUFERF9SQU5HRShSMzAwX1NFX1ZURV9DTlRMLCAyKTsKKwlBRERfUkFOR0UoMHgyMTM0LCAyKTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfQ05UTF9TVEFUVVMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9JTlBVVF9DTlRMXzAsIDIpOworCUFERF9SQU5HRSgweDIxREMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9VTktOT1dOXzIyMUMsIDEpOworCUFERF9SQU5HRShSMzAwX1ZBUF9DTElQX1hfMCwgNCk7CisJQUREX1JBTkdFKFIzMDBfVkFQX1BWU19XQUlUSURMRSwgMSk7CisJQUREX1JBTkdFKFIzMDBfVkFQX1VOS05PV05fMjI4OCwgMSk7CisJQUREX1JBTkdFKFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAsIDIpOworCUFERF9SQU5HRShSMzAwX1ZBUF9QVlNfQ05UTF8xLCAzKTsKKwlBRERfUkFOR0UoUjMwMF9HQl9FTkFCTEUsIDEpOworCUFERF9SQU5HRShSMzAwX0dCX01TUE9TMCwgNSk7CisJQUREX1JBTkdFKFIzMDBfVFhfQ05UTCwgMSk7CisJQUREX1JBTkdFKFIzMDBfVFhfRU5BQkxFLCAxKTsKKwlBRERfUkFOR0UoMHg0MjAwLCA0KTsKKwlBRERfUkFOR0UoMHg0MjE0LCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9QT0lOVFNJWkUsIDEpOworCUFERF9SQU5HRSgweDQyMzAsIDMpOworCUFERF9SQU5HRShSMzAwX1JFX0xJTkVfQ05ULCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9VTks0MjM4LCAxKTsKKwlBRERfUkFOR0UoMHg0MjYwLCAzKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9TSEFERSwgNCk7CisJQUREX1JBTkdFKFIzMDBfUkVfUE9MWUdPTl9NT0RFLCA1KTsKKwlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19DTlRMLCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiwgNCk7CisJQUREX1JBTkdFKFIzMDBfUkVfT0NDTFVTSU9OX0NOVEwsIDEpOworCUFERF9SQU5HRShSMzAwX1JFX0NVTExfQ05UTCwgMSk7CisJQUREX1JBTkdFKDB4NDJDMCwgMik7CisJQUREX1JBTkdFKFIzMDBfUlNfQ05UTF8wLCAyKTsKKworCUFERF9SQU5HRShSMzAwX1NDX0hZUEVSWiwgMik7CisJQUREX1JBTkdFKDB4NDNFOCwgMSk7CisKKwlBRERfUkFOR0UoMHg0NkE0LCA1KTsKKworCUFERF9SQU5HRShSMzAwX1JFX0ZPR19TVEFURSwgMSk7CisJQUREX1JBTkdFKFIzMDBfRk9HX0NPTE9SX1IsIDMpOworCUFERF9SQU5HRShSMzAwX1BQX0FMUEhBX1RFU1QsIDIpOworCUFERF9SQU5HRSgweDRCRDgsIDEpOworCUFERF9SQU5HRShSMzAwX1BGU19QQVJBTV8wX1gsIDY0KTsKKwlBRERfUkFOR0UoMHg0RTAwLCAxKTsKKwlBRERfUkFOR0UoUjMwMF9SQjNEX0NCTEVORCwgMik7CisJQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUk1BU0ssIDEpOworCUFERF9SQU5HRShSMzAwX1JCM0RfQkxFTkRfQ09MT1IsIDMpOworCUFERF9SQU5HRV9NQVJLKFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAsIDEsIE1BUktfQ0hFQ0tfT0ZGU0VUKTsJLyogY2hlY2sgb2Zmc2V0ICovCisJQUREX1JBTkdFKFIzMDBfUkIzRF9DT0xPUlBJVENIMCwgMSk7CisJQUREX1JBTkdFKDB4NEU1MCwgOSk7CisJQUREX1JBTkdFKDB4NEU4OCwgMSk7CisJQUREX1JBTkdFKDB4NEVBMCwgMik7CisJQUREX1JBTkdFKFIzMDBfWkJfQ05UTCwgMyk7CisJQUREX1JBTkdFKFIzMDBfWkJfRk9STUFULCA0KTsKKwlBRERfUkFOR0VfTUFSSyhSMzAwX1pCX0RFUFRIT0ZGU0VULCAxLCBNQVJLX0NIRUNLX09GRlNFVCk7CS8qIGNoZWNrIG9mZnNldCAqLworCUFERF9SQU5HRShSMzAwX1pCX0RFUFRIUElUQ0gsIDEpOworCUFERF9SQU5HRShSMzAwX1pCX0RFUFRIQ0xFQVJWQUxVRSwgMSk7CisJQUREX1JBTkdFKFIzMDBfWkJfWk1BU0tfT0ZGU0VULCAxMyk7CisKKwlBRERfUkFOR0UoUjMwMF9UWF9GSUxURVJfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX0ZJTFRFUjFfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX1NJWkVfMCwgMTYpOworCUFERF9SQU5HRShSMzAwX1RYX0ZPUk1BVF8wLCAxNik7CisJQUREX1JBTkdFKFIzMDBfVFhfUElUQ0hfMCwgMTYpOworCS8qIFRleHR1cmUgb2Zmc2V0IGlzIGRhbmdlcm91cyBhbmQgbmVlZHMgbW9yZSBjaGVja2luZyAqLworCUFERF9SQU5HRV9NQVJLKFIzMDBfVFhfT0ZGU0VUXzAsIDE2LCBNQVJLX0NIRUNLX09GRlNFVCk7CisJQUREX1JBTkdFKFIzMDBfVFhfQ0hST01BX0tFWV8wLCAxNik7CisJQUREX1JBTkdFKFIzMDBfVFhfQk9SREVSX0NPTE9SXzAsIDE2KTsKKworCS8qIFNwb3JhZGljIHJlZ2lzdGVycyB1c2VkIGFzIHByaW1pdGl2ZXMgYXJlIGVtaXR0ZWQgKi8KKwlBRERfUkFOR0UoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCwgMSk7CisJQUREX1JBTkdFKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAxKTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8wLCA4KTsKKwlBRERfUkFOR0UoUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8wLCA4KTsKKworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+PSBDSElQX1JWNTE1KSB7CisJCUFERF9SQU5HRShSNTAwX1ZBUF9JTkRFWF9PRkZTRVQsIDEpOworCQlBRERfUkFOR0UoUjUwMF9VU19DT05GSUcsIDIpOworCQlBRERfUkFOR0UoUjUwMF9VU19DT0RFX0FERFIsIDMpOworCQlBRERfUkFOR0UoUjUwMF9VU19GQ19DVFJMLCAxKTsKKwkJQUREX1JBTkdFKFI1MDBfUlNfSVBfMCwgMTYpOworCQlBRERfUkFOR0UoUjUwMF9SU19JTlNUXzAsIDE2KTsKKwkJQUREX1JBTkdFKFI1MDBfUkIzRF9DT0xPUl9DTEVBUl9WQUxVRV9BUiwgMik7CisJCUFERF9SQU5HRShSNTAwX1JCM0RfQ09OU1RBTlRfQ09MT1JfQVIsIDIpOworCQlBRERfUkFOR0UoUjUwMF9aQl9GSUZPX1NJWkUsIDIpOworCX0gZWxzZSB7CisJCUFERF9SQU5HRShSMzAwX1BGU19DTlRMXzAsIDMpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfTk9ERV8wLCA0KTsKKwkJQUREX1JBTkdFKFIzMDBfUEZTX1RFWElfMCwgNjQpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfSU5TVFIwXzAsIDY0KTsKKwkJQUREX1JBTkdFKFIzMDBfUEZTX0lOU1RSMV8wLCA2NCk7CisJCUFERF9SQU5HRShSMzAwX1BGU19JTlNUUjJfMCwgNjQpOworCQlBRERfUkFOR0UoUjMwMF9QRlNfSU5TVFIzXzAsIDY0KTsKKwkJQUREX1JBTkdFKFIzMDBfUlNfSU5URVJQXzAsIDgpOworCQlBRERfUkFOR0UoUjMwMF9SU19ST1VURV8wLCA4KTsKKworCX0KK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfY2hlY2tfcmFuZ2UodW5zaWduZWQgcmVnLCBpbnQgY291bnQpCit7CisJaW50IGk7CisJaWYgKHJlZyAmIH4weGZmZmYpCisJCXJldHVybiAtMTsKKwlmb3IgKGkgPSAocmVnID4+IDIpOyBpIDwgKHJlZyA+PiAyKSArIGNvdW50OyBpKyspCisJCWlmIChyMzAwX3JlZ19mbGFnc1tpXSAhPSBNQVJLX1NBRkUpCisJCQlyZXR1cm4gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9jYXJlZnVsbHlfY2hlY2tlZF9wYWNrZXQwKGRybV9yYWRlb25fcHJpdmF0ZV90ICoKKwkJCQkJCQkgIGRldl9wcml2LAorCQkJCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90CisJCQkJCQkJICAqIGNtZGJ1ZiwKKwkJCQkJCQkgIGRybV9yMzAwX2NtZF9oZWFkZXJfdAorCQkJCQkJCSAgaGVhZGVyKQoreworCWludCByZWc7CisJaW50IHN6OworCWludCBpOworCWludCB2YWx1ZXNbNjRdOworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucGFja2V0MC5jb3VudDsKKwlyZWcgPSAoaGVhZGVyLnBhY2tldDAucmVnaGkgPDwgOCkgfCBoZWFkZXIucGFja2V0MC5yZWdsbzsKKworCWlmICgoc3ogPiA2NCkgfHwgKHN6IDwgMCkpIHsKKwkJRFJNX0VSUk9SCisJCSAgICAoIkNhbm5vdCBlbWl0IG1vcmUgdGhhbiA2NCB2YWx1ZXMgYXQgYSB0aW1lIChyZWc9JTA0eCBzej0lZClcbiIsCisJCSAgICAgcmVnLCBzeik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgc3o7IGkrKykgeworCQl2YWx1ZXNbaV0gPSAoKGludCAqKWNtZGJ1Zi0+YnVmKVtpXTsKKwkJc3dpdGNoIChyMzAwX3JlZ19mbGFnc1socmVnID4+IDIpICsgaV0pIHsKKwkJY2FzZSBNQVJLX1NBRkU6CisJCQlicmVhazsKKwkJY2FzZSBNQVJLX0NIRUNLX09GRlNFVDoKKwkJCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgKHUzMikgdmFsdWVzW2ldKSkgeworCQkJCURSTV9FUlJPUgorCQkJCSAgICAoIk9mZnNldCBmYWlsZWQgcmFuZ2UgY2hlY2sgKHJlZz0lMDR4IHN6PSVkKVxuIiwKKwkJCQkgICAgIHJlZywgc3opOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlEUk1fRVJST1IoIlJlZ2lzdGVyICUwNHggZmFpbGVkIGNoZWNrIGFzIGZsYWc9JTAyeFxuIiwKKwkJCQkgIHJlZyArIGkgKiA0LCByMzAwX3JlZ19mbGFnc1socmVnID4+IDIpICsgaV0pOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9CisKKwlCRUdJTl9SSU5HKDEgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChyZWcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKHZhbHVlcywgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogRW1pdHMgYSBwYWNrZXQwIHNldHRpbmcgYXJiaXRyYXJ5IHJlZ2lzdGVycy4KKyAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1Zi4KKyAqCisgKiBOb3RlIHRoYXQgY2hlY2tzIGFyZSBwZXJmb3JtZWQgb24gY29udGVudHMgYW5kIGFkZHJlc3NlcyBvZiB0aGUgcmVnaXN0ZXJzCisgKi8KK3N0YXRpYyBfX2lubGluZV9fIGludCByMzAwX2VtaXRfcGFja2V0MChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCWludCByZWc7CisJaW50IHN6OworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucGFja2V0MC5jb3VudDsKKwlyZWcgPSAoaGVhZGVyLnBhY2tldDAucmVnaGkgPDwgOCkgfCBoZWFkZXIucGFja2V0MC5yZWdsbzsKKworCWlmICghc3opCisJCXJldHVybiAwOworCisJaWYgKHN6ICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKHJlZyArIHN6ICogNCA+PSAweDEwMDAwKSB7CisJCURSTV9FUlJPUigiTm8gc3VjaCByZWdpc3RlcnMgaW4gaGFyZHdhcmUgcmVnPSUwNHggc3o9JWRcbiIsIHJlZywKKwkJCSAgc3opOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocjMwMF9jaGVja19yYW5nZShyZWcsIHN6KSkgeworCQkvKiBnbyBhbmQgY2hlY2sgZXZlcnl0aGluZyAqLworCQlyZXR1cm4gcjMwMF9lbWl0X2NhcmVmdWxseV9jaGVja2VkX3BhY2tldDAoZGV2X3ByaXYsIGNtZGJ1ZiwKKwkJCQkJCQkgICBoZWFkZXIpOworCX0KKwkvKiB0aGUgcmVzdCBvZiB0aGUgZGF0YSBpcyBzYWZlIHRvIGVtaXQsIHdoYXRldmVyIHRoZSB2YWx1ZXMgdGhlIHVzZXIgcGFzc2VkICovCisKKwlCRUdJTl9SSU5HKDEgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChyZWcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKiljbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogVXBsb2FkcyB1c2VyLXN1cHBsaWVkIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9ucyBvciBwYXJhbWV0ZXJzIG9udG8KKyAqIHRoZSBncmFwaGljcyBjYXJkLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3ZwdShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCSAgICBkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCWludCBzejsKKwlpbnQgYWRkcjsKKwlSSU5HX0xPQ0FMUzsKKworCXN6ID0gaGVhZGVyLnZwdS5jb3VudDsKKwlhZGRyID0gKGhlYWRlci52cHUuYWRyaGkgPDwgOCkgfCBoZWFkZXIudnB1LmFkcmxvOworCisJaWYgKCFzeikKKwkJcmV0dXJuIDA7CisJaWYgKHN6ICogMTYgPiBjbWRidWYtPmJ1ZnN6KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCUJFR0lOX1JJTkcoNSArIHN6ICogNCk7CisJLyogV2FpdCBmb3IgVkFQIHRvIGNvbWUgdG8gc2Vuc2VzLi4gKi8KKwkvKiB0aGVyZSBpcyBubyBuZWVkIHRvIGVtaXQgaXQgbXVsdGlwbGUgdGltZXMsIChvbmx5IG9uY2UgYmVmb3JlIFZBUCBpcyBwcm9ncmFtbWVkLAorCSAgIGJ1dCB0aGlzIG9wdGltaXphdGlvbiBpcyBmb3IgbGF0ZXIgKi8KKwlPVVRfUklOR19SRUcoUjMwMF9WQVBfUFZTX1dBSVRJRExFLCAwKTsKKwlPVVRfUklOR19SRUcoUjMwMF9WQVBfUFZTX1VQTE9BRF9BRERSRVNTLCBhZGRyKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFIzMDBfVkFQX1BWU19VUExPQURfREFUQSwgc3ogKiA0IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKiljbWRidWYtPmJ1Ziwgc3ogKiA0KTsKKworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiAxNjsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogMTY7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKiBFbWl0IGEgY2xlYXIgcGFja2V0IGZyb20gdXNlcnNwYWNlLgorICogQ2FsbGVkIGJ5IHIzMDBfZW1pdF9wYWNrZXQzLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2NsZWFyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkgICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwlSSU5HX0xPQ0FMUzsKKworCWlmICg4ICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORygxMCk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSMjAwXzNEX0RSQVdfSU1NRF8yLCA4KSk7CisJT1VUX1JJTkcoUjMwMF9QUklNX1RZUEVfUE9JTlQgfCBSMzAwX1BSSU1fV0FMS19SSU5HIHwKKwkJICgxIDw8IFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKwlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIDgpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gOCAqIDQ7CisJY21kYnVmLT5idWZzeiAtPSA4ICogNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0XzNkX2xvYWRfdmJwbnRyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmLAorCQkJCQkgICAgICAgdTMyIGhlYWRlcikKK3sKKwlpbnQgY291bnQsIGksIGs7CisjZGVmaW5lIE1BWF9BUlJBWV9QQUNLRVQgIDY0CisJdTMyIHBheWxvYWRbTUFYX0FSUkFZX1BBQ0tFVF07CisJdTMyIG5hcnJheXM7CisJUklOR19MT0NBTFM7CisKKwljb3VudCA9IChoZWFkZXIgPj4gMTYpICYgMHgzZmZmOworCisJaWYgKChjb3VudCArIDEpID4gTUFYX0FSUkFZX1BBQ0tFVCkgeworCQlEUk1fRVJST1IoIlRvbyBsYXJnZSBwYXlsb2FkIGluIDNEX0xPQURfVkJQTlRSIChjb3VudD0lZClcbiIsCisJCQkgIGNvdW50KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCW1lbXNldChwYXlsb2FkLCAwLCBNQVhfQVJSQVlfUEFDS0VUICogNCk7CisJbWVtY3B5KHBheWxvYWQsIGNtZGJ1Zi0+YnVmICsgNCwgKGNvdW50ICsgMSkgKiA0KTsKKworCS8qIGNhcmVmdWxseSBjaGVjayBwYWNrZXQgY29udGVudHMgKi8KKworCW5hcnJheXMgPSBwYXlsb2FkWzBdOworCWsgPSAwOworCWkgPSAxOworCXdoaWxlICgoayA8IG5hcnJheXMpICYmIChpIDwgKGNvdW50ICsgMSkpKSB7CisJCWkrKzsJCS8qIHNraXAgYXR0cmlidXRlIGZpZWxkICovCisJCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgcGF5bG9hZFtpXSkpIHsKKwkJCURSTV9FUlJPUgorCQkJICAgICgiT2Zmc2V0IGZhaWxlZCByYW5nZSBjaGVjayAoaz0lZCBpPSVkKSB3aGlsZSBwcm9jZXNzaW5nIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCisJCQkgICAgIGssIGkpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJaysrOworCQlpKys7CisJCWlmIChrID09IG5hcnJheXMpCisJCQlicmVhazsKKwkJLyogaGF2ZSBvbmUgbW9yZSB0byBwcm9jZXNzLCB0aGV5IGNvbWUgaW4gcGFpcnMgKi8KKwkJaWYgKCFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBwYXlsb2FkW2ldKSkgeworCQkJRFJNX0VSUk9SCisJCQkgICAgKCJPZmZzZXQgZmFpbGVkIHJhbmdlIGNoZWNrIChrPSVkIGk9JWQpIHdoaWxlIHByb2Nlc3NpbmcgM0RfTE9BRF9WQlBOVFIgcGFja2V0LlxuIiwKKwkJCSAgICAgaywgaSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlrKys7CisJCWkrKzsKKwl9CisJLyogZG8gdGhlIGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdCA/ICovCisJaWYgKChrICE9IG5hcnJheXMpIHx8IChpICE9IChjb3VudCArIDEpKSkgeworCQlEUk1fRVJST1IKKwkJICAgICgiTWFsZm9ybWVkIDNEX0xPQURfVkJQTlRSIHBhY2tldCAoaz0lZCBpPSVkIG5hcnJheXM9JWQgY291bnQrMT0lZCkuXG4iLAorCQkgICAgIGssIGksIG5hcnJheXMsIGNvdW50ICsgMSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGFsbCBjbGVhciwgb3V0cHV0IHBhY2tldCAqLworCisJQkVHSU5fUklORyhjb3VudCArIDIpOworCU9VVF9SSU5HKGhlYWRlcik7CisJT1VUX1JJTkdfVEFCTEUocGF5bG9hZCwgY291bnQgKyAxKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IChjb3VudCArIDIpICogNDsKKwljbWRidWYtPmJ1ZnN6IC09IChjb3VudCArIDIpICogNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2JpdGJsdF9tdWx0aShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJdTMyICpjbWQgPSAodTMyICopIGNtZGJ1Zi0+YnVmOworCWludCBjb3VudCwgcmV0OworCVJJTkdfTE9DQUxTOworCisJY291bnQ9KGNtZFswXT4+MTYpICYgMHgzZmZmOworCisJaWYgKGNtZFswXSAmIDB4ODAwMCkgeworCQl1MzIgb2Zmc2V0OworCisJCWlmIChjbWRbMV0gJiAoUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwKKwkJCSAgICAgIHwgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwpKSB7CisJCQlvZmZzZXQgPSBjbWRbMl0gPDwgMTA7CisJCQlyZXQgPSAhcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2Zmc2V0KTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoIkludmFsaWQgYml0Ymx0IGZpcnN0IG9mZnNldCBpcyAlMDhYXG4iLCBvZmZzZXQpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQl9CisKKwkJaWYgKChjbWRbMV0gJiBSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCkgJiYKKwkJICAgIChjbWRbMV0gJiBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKKwkJCW9mZnNldCA9IGNtZFszXSA8PCAxMDsKKwkJCXJldCA9ICFyYWRlb25fY2hlY2tfb2Zmc2V0KGRldl9wcml2LCBvZmZzZXQpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigiSW52YWxpZCBiaXRibHQgc2Vjb25kIG9mZnNldCBpcyAlMDhYXG4iLCBvZmZzZXQpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCisJCX0KKwl9CisKKwlCRUdJTl9SSU5HKGNvdW50KzIpOworCU9VVF9SSU5HKGNtZFswXSk7CisJT1VUX1JJTkdfVEFCTEUoKGludCAqKShjbWRidWYtPmJ1ZiArIDQpLCBjb3VudCArIDEpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gKGNvdW50KzIpKjQ7CisJY21kYnVmLT5idWZzeiAtPSAoY291bnQrMikqNDsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X2luZHhfYnVmZmVyKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwl1MzIgKmNtZCA9ICh1MzIgKikgY21kYnVmLT5idWY7CisJaW50IGNvdW50LCByZXQ7CisJUklOR19MT0NBTFM7CisKKwljb3VudD0oY21kWzBdPj4xNikgJiAweDNmZmY7CisKKwlpZiAoKGNtZFsxXSAmIDB4ODAwMGZmZmYpICE9IDB4ODAwMDA4MTApIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIHJlZyBhZGRyZXNzICUwOFhcbiIsIGNtZFsxXSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXQgPSAhcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgY21kWzJdKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciBvZmZzZXQgaXMgJTA4WFxuIiwgY21kWzJdKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhjb3VudCsyKTsKKwlPVVRfUklORyhjbWRbMF0pOworCU9VVF9SSU5HX1RBQkxFKChpbnQgKikoY21kYnVmLT5idWYgKyA0KSwgY291bnQgKyAxKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IChjb3VudCsyKSo0OworCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50KzIpKjQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHIzMDBfZW1pdF9yYXdfcGFja2V0Myhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwl1MzIgaGVhZGVyOworCWludCBjb3VudDsKKwlSSU5HX0xPQ0FMUzsKKworCWlmICg0ID4gY21kYnVmLT5idWZzeikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBGaXhtZSAhISBUaGlzIHNpbXBseSBlbWl0cyBhIHBhY2tldCB3aXRob3V0IG11Y2ggY2hlY2tpbmcuCisJICAgV2UgbmVlZCB0byBiZSBzbWFydGVyLiAqLworCisJLyogb2J0YWluIGZpcnN0IHdvcmQgLSBhY3R1YWwgcGFja2V0MyBoZWFkZXIgKi8KKwloZWFkZXIgPSAqKHUzMiAqKSBjbWRidWYtPmJ1ZjsKKworCS8qIElzIGl0IHBhY2tldCAzID8gKi8KKwlpZiAoKGhlYWRlciA+PiAzMCkgIT0gMHgzKSB7CisJCURSTV9FUlJPUigiTm90IGEgcGFja2V0MyBoZWFkZXIgKDB4JTA4eClcbiIsIGhlYWRlcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWNvdW50ID0gKGhlYWRlciA+PiAxNikgJiAweDNmZmY7CisKKwkvKiBDaGVjayBhZ2FpbiBub3cgdGhhdCB3ZSBrbm93IGhvdyBtdWNoIGRhdGEgdG8gZXhwZWN0ICovCisJaWYgKChjb3VudCArIDIpICogNCA+IGNtZGJ1Zi0+YnVmc3opIHsKKwkJRFJNX0VSUk9SCisJCSAgICAoIkV4cGVjdGVkIHBhY2tldDMgb2YgbGVuZ3RoICVkIGJ1dCBoYXZlIG9ubHkgJWQgYnl0ZXMgbGVmdFxuIiwKKwkJICAgICAoY291bnQgKyAyKSAqIDQsIGNtZGJ1Zi0+YnVmc3opOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBJcyBpdCBhIHBhY2tldCB0eXBlIHdlIGtub3cgYWJvdXQgPyAqLworCXN3aXRjaCAoaGVhZGVyICYgMHhmZjAwKSB7CisJY2FzZSBSQURFT05fM0RfTE9BRF9WQlBOVFI6CS8qIGxvYWQgdmVydGV4IGFycmF5IHBvaW50ZXJzICovCisJCXJldHVybiByMzAwX2VtaXRfM2RfbG9hZF92YnBudHIoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKworCWNhc2UgUkFERU9OX0NOVExfQklUQkxUX01VTFRJOgorCQlyZXR1cm4gcjMwMF9lbWl0X2JpdGJsdF9tdWx0aShkZXZfcHJpdiwgY21kYnVmKTsKKworCWNhc2UgUkFERU9OX0NQX0lORFhfQlVGRkVSOgkvKiBEUkFXX0lORFhfMiB3aXRob3V0IElORFhfQlVGRkVSIHNlZW1zIHRvIGxvY2sgdXAgdGhlIGdwdSAqLworCQlyZXR1cm4gcjMwMF9lbWl0X2luZHhfYnVmZmVyKGRldl9wcml2LCBjbWRidWYpOworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU1NRF8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIHVzaW5nIGluLXBhY2tldCB2ZXJ0ZXggZGF0YSAqLworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfVkJVRl8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIG9mIHZlcnRleCBidWZmZXJzIHNldHVwIGVsc2V3aGVyZSAqLworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU5EWF8yOgkvKiB0cmlnZ2VycyBkcmF3aW5nIHVzaW5nIGluZGljZXMgdG8gdmVydGV4IGJ1ZmZlciAqLworCWNhc2UgUkFERU9OX1dBSVRfRk9SX0lETEU6CisJY2FzZSBSQURFT05fQ1BfTk9QOgorCQkvKiB0aGVzZSBwYWNrZXRzIGFyZSBzYWZlICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9FUlJPUigiVW5rbm93biBwYWNrZXQzIGhlYWRlciAoMHglMDh4KVxuIiwgaGVhZGVyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhjb3VudCArIDIpOworCU9VVF9SSU5HKGhlYWRlcik7CisJT1VUX1JJTkdfVEFCTEUoKGludCAqKShjbWRidWYtPmJ1ZiArIDQpLCBjb3VudCArIDEpOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gKGNvdW50ICsgMikgKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gKGNvdW50ICsgMikgKiA0OworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogRW1pdCBhIHJlbmRlcmluZyBwYWNrZXQzIGZyb20gdXNlcnNwYWNlLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcjMwMF9lbWl0X3BhY2tldDMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQlkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZiwKKwkJCQkJZHJtX3IzMDBfY21kX2hlYWRlcl90IGhlYWRlcikKK3sKKwlpbnQgbjsKKwlpbnQgcmV0OworCWNoYXIgKm9yaWdfYnVmID0gY21kYnVmLT5idWY7CisJaW50IG9yaWdfYnVmc3ogPSBjbWRidWYtPmJ1ZnN6OworCisJLyogVGhpcyBpcyBhIGRvLXdoaWxlLWxvb3Agc28gdGhhdCB3ZSBydW4gdGhlIGludGVyaW9yIGF0IGxlYXN0IG9uY2UsCisJICogZXZlbiBpZiBjbWRidWYtPm5ib3ggaXMgMC4gQ29tcGFyZSByMzAwX2VtaXRfY2xpcHJlY3RzIGZvciByYXRpb25hbGUuCisJICovCisJbiA9IDA7CisJZG8geworCQlpZiAoY21kYnVmLT5uYm94ID4gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTKSB7CisJCQlyZXQgPSByMzAwX2VtaXRfY2xpcHJlY3RzKGRldl9wcml2LCBjbWRidWYsIG4pOworCQkJaWYgKHJldCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQljbWRidWYtPmJ1ZiA9IG9yaWdfYnVmOworCQkJY21kYnVmLT5idWZzeiA9IG9yaWdfYnVmc3o7CisJCX0KKworCQlzd2l0Y2ggKGhlYWRlci5wYWNrZXQzLnBhY2tldCkgeworCQljYXNlIFIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVI6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVJcbiIpOworCQkJcmV0ID0gcjMwMF9lbWl0X2NsZWFyKGRldl9wcml2LCBjbWRidWYpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X2NsZWFyIGZhaWxlZFxuIik7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUEFDS0VUM19SQVc6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1BBQ0tFVDNfUkFXXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9yYXdfcGFja2V0MyhkZXZfcHJpdiwgY21kYnVmKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9yYXdfcGFja2V0MyBmYWlsZWRcbiIpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCQlicmVhazsKKworCQlkZWZhdWx0OgorCQkJRFJNX0VSUk9SKCJiYWQgcGFja2V0MyB0eXBlICVpIGF0ICVwXG4iLAorCQkJCSAgaGVhZGVyLnBhY2tldDMucGFja2V0LAorCQkJCSAgY21kYnVmLT5idWYgLSBzaXplb2YoaGVhZGVyKSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCW4gKz0gUjMwMF9TSU1VTFRBTkVPVVNfQ0xJUFJFQ1RTOworCX0gd2hpbGUgKG4gPCBjbWRidWYtPm5ib3gpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFNvbWUgb2YgdGhlIFIzMDAgY2hpcHMgc2VlbSB0byBiZSBleHRyZW1lbHkgdG91Y2h5IGFib3V0IHRoZSB0d28gcmVnaXN0ZXJzCisgKiB0aGF0IGFyZSBjb25maWd1cmVkIGluIHIzMDBfcGFjaWZ5LgorICogQW1vbmcgdGhlIHdvcnN0IG9mZmVuZGVycyBzZWVtcyB0byBiZSB0aGUgUjMwMCBORCAoMHg0RTQ0KTogV2hlbiB1c2Vyc3BhY2UKKyAqIHNlbmRzIGEgY29tbWFuZCBidWZmZXIgdGhhdCBjb250YWlucyBvbmx5IHN0YXRlIHNldHRpbmcgY29tbWFuZHMgYW5kIGEKKyAqIHZlcnRleCBwcm9ncmFtL3BhcmFtZXRlciB1cGxvYWQgc2VxdWVuY2UsIHRoaXMgd2lsbCBldmVudHVhbGx5IGxlYWQgdG8gYQorICogbG9ja3VwLCB1bmxlc3MgdGhlIHNlcXVlbmNlIGlzIGJyYWNrZXRlZCBieSBjYWxscyB0byByMzAwX3BhY2lmeS4KKyAqIFNvIHdlIHNob3VsZCB0YWtlIGdyZWF0IGNhcmUgdG8gKmFsd2F5cyogY2FsbCByMzAwX3BhY2lmeSBiZWZvcmUKKyAqICphbnl0aGluZyogM0QgcmVsYXRlZCwgYW5kIGFnYWluIGFmdGVyd2FyZHMuIFRoaXMgaXMgd2hhdCB0aGUKKyAqIGNhbGwgYnJhY2tldCBpbiByMzAwX2RvX2NwX2NtZGJ1ZiBpcyBmb3IuCisgKi8KKworLyoqCisgKiBFbWl0IHRoZSBzZXF1ZW5jZSB0byBwYWNpZnkgUjMwMC4KKyAqLworc3RhdGljIF9faW5saW5lX18gdm9pZCByMzAwX3BhY2lmeShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDYpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIDApKTsKKwlPVVRfUklORyhSMzAwX1JCM0RfRFNUQ0FDSEVfVU5LTk9XTl8wQSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1pCX1pDQUNIRV9DVExTVEFULCAwKSk7CisJT1VUX1JJTkcoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVF9aQ19GTFVTSF9GTFVTSF9BTkRfRlJFRXwKKwkJIFIzMDBfWkJfWkNBQ0hFX0NUTFNUQVRfWkNfRlJFRV9GUkVFKTsKKwlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DUF9OT1AsIDApKTsKKwlPVVRfUklORygweDApOworCUFEVkFOQ0VfUklORygpOworfQorCisvKioKKyAqIENhbGxlZCBieSByMzAwX2RvX2NwX2NtZGJ1ZiB0byB1cGRhdGUgdGhlIGludGVybmFsIGJ1ZmZlciBhZ2UgYW5kIHN0YXRlLgorICogVGhlIGFjdHVhbCBhZ2UgZW1pdCBpcyBkb25lIGJ5IHIzMDBfZG9fY3BfY21kYnVmLCB3aGljaCBpcyB3aHkgeW91IG11c3QKKyAqIGJlIGNhcmVmdWwgYWJvdXQgaG93IHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLgorICovCitzdGF0aWMgdm9pZCByMzAwX2Rpc2NhcmRfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBzdHJ1Y3QgZHJtX2J1ZiAqIGJ1ZikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOworCisJYnVmX3ByaXYtPmFnZSA9ICsrZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2g7CisJYnVmLT5wZW5kaW5nID0gMTsKKwlidWYtPnVzZWQgPSAwOworfQorCitzdGF0aWMgdm9pZCByMzAwX2NtZF93YWl0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCit7CisJdTMyIHdhaXRfdW50aWw7CisJUklOR19MT0NBTFM7CisKKwlpZiAoIWhlYWRlci53YWl0LmZsYWdzKQorCQlyZXR1cm47CisKKwl3YWl0X3VudGlsID0gMDsKKworCXN3aXRjaChoZWFkZXIud2FpdC5mbGFncykgeworCWNhc2UgUjMwMF9XQUlUXzJEOgorCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRTsKKwkJYnJlYWs7CisJY2FzZSBSMzAwX1dBSVRfM0Q6CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFOworCQlicmVhazsKKwljYXNlIFIzMDBfTkVXX1dBSVRfMkRfM0Q6CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8yRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEU7CisJCWJyZWFrOworCWNhc2UgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTjoKKwkJd2FpdF91bnRpbCA9IFJBREVPTl9XQUlUXzJEX0lETEV8UkFERU9OX1dBSVRfMkRfSURMRUNMRUFOOworCQlicmVhazsKKwljYXNlIFIzMDBfTkVXX1dBSVRfM0RfM0RfQ0xFQU46CisJCXdhaXRfdW50aWwgPSBSQURFT05fV0FJVF8zRF9JRExFfFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTjsKKwkJYnJlYWs7CisJY2FzZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOXzNEXzNEX0NMRUFOOgorCQl3YWl0X3VudGlsID0gUkFERU9OX1dBSVRfMkRfSURMRXxSQURFT05fV0FJVF8yRF9JRExFQ0xFQU47CisJCXdhaXRfdW50aWwgfD0gUkFERU9OX1dBSVRfM0RfSURMRXxSQURFT05fV0FJVF8zRF9JRExFQ0xFQU47CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9CisKKwlCRUdJTl9SSU5HKDIpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1dBSVRfVU5USUwsIDApKTsKKwlPVVRfUklORyh3YWl0X3VudGlsKTsKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIGludCByMzAwX3NjcmF0Y2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyKQoreworCXUzMiAqcmVmX2FnZV9iYXNlOworCXUzMiBpLCBidWZfaWR4LCBoX3BlbmRpbmc7CisJUklOR19MT0NBTFM7CisKKwlpZiAoY21kYnVmLT5idWZzeiA8CisJICAgIChzaXplb2YodTY0KSArIGhlYWRlci5zY3JhdGNoLm5fYnVmcyAqIHNpemVvZihidWZfaWR4KSkpIHsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGhlYWRlci5zY3JhdGNoLnJlZyA+PSA1KSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSsrOworCisJcmVmX2FnZV9iYXNlID0gICh1MzIgKikodW5zaWduZWQgbG9uZykqKCh1aW50NjRfdCAqKWNtZGJ1Zi0+YnVmKTsKKworCWNtZGJ1Zi0+YnVmICs9IHNpemVvZih1NjQpOworCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKHU2NCk7CisKKwlmb3IgKGk9MDsgaSA8IGhlYWRlci5zY3JhdGNoLm5fYnVmczsgaSsrKSB7CisJCWJ1Zl9pZHggPSAqKHUzMiAqKWNtZGJ1Zi0+YnVmOworCQlidWZfaWR4ICo9IDI7IC8qIDggYnl0ZXMgcGVyIGJ1ZiAqLworCisJCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHgsICZkZXZfcHJpdi0+c2NyYXRjaF9hZ2VzW2hlYWRlci5zY3JhdGNoLnJlZ10sIHNpemVvZih1MzIpKSkgeworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZoX3BlbmRpbmcsIHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCBzaXplb2YodTMyKSkpIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJaWYgKGhfcGVuZGluZyA9PSAwKSB7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWhfcGVuZGluZy0tOworCisJCWlmIChEUk1fQ09QWV9UT19VU0VSKHJlZl9hZ2VfYmFzZSArIGJ1Zl9pZHggKyAxLCAmaF9wZW5kaW5nLCBzaXplb2YodTMyKSkpIHsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGJ1Zl9pZHgpOworCQljbWRidWYtPmJ1ZnN6IC09IHNpemVvZihidWZfaWR4KTsKKwl9CisKKwlCRUdJTl9SSU5HKDIpOworCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fU0NSQVRDSF9SRUcwICsgaGVhZGVyLnNjcmF0Y2gucmVnICogNCwgMCApICk7CisJT1VUX1JJTkcoIGRldl9wcml2LT5zY3JhdGNoX2FnZXNbaGVhZGVyLnNjcmF0Y2gucmVnXSApOworCUFEVkFOQ0VfUklORygpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogVXBsb2FkcyB1c2VyLXN1cHBsaWVkIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9ucyBvciBwYXJhbWV0ZXJzIG9udG8KKyAqIHRoZSBncmFwaGljcyBjYXJkLgorICogQ2FsbGVkIGJ5IHIzMDBfZG9fY3BfY21kYnVmLgorICovCitzdGF0aWMgaW5saW5lIGludCByMzAwX2VtaXRfcjUwMGZwKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQkJICAgICAgIGRybV9yMzAwX2NtZF9oZWFkZXJfdCBoZWFkZXIpCit7CisJaW50IHN6OworCWludCBhZGRyOworCWludCB0eXBlOworCWludCBjbGFtcDsKKwlpbnQgc3RyaWRlOworCVJJTkdfTE9DQUxTOworCisJc3ogPSBoZWFkZXIucjUwMGZwLmNvdW50OworCS8qIGFkZHJlc3MgaXMgOSBiaXRzIDAgLSA4LCBiaXQgMSBvZiBmbGFncyBpcyBwYXJ0IG9mIGFkZHJlc3MgKi8KKwlhZGRyID0gKChoZWFkZXIucjUwMGZwLmFkcmhpX2ZsYWdzICYgMSkgPDwgOCkgfCBoZWFkZXIucjUwMGZwLmFkcmxvOworCisJdHlwZSA9ICEhKGhlYWRlci5yNTAwZnAuYWRyaGlfZmxhZ3MgJiBSNTAwRlBfQ09OU1RBTlRfVFlQRSk7CisJY2xhbXAgPSAhIShoZWFkZXIucjUwMGZwLmFkcmhpX2ZsYWdzICYgUjUwMEZQX0NPTlNUQU5UX0NMQU1QKTsKKworCWFkZHIgfD0gKHR5cGUgPDwgMTYpOworCWFkZHIgfD0gKGNsYW1wIDw8IDE3KTsKKworCXN0cmlkZSA9IHR5cGUgPyA0IDogNjsKKworCURSTV9ERUJVRygicjUwMGZwICVkICVkIHR5cGU6ICVkXG4iLCBzeiwgYWRkciwgdHlwZSk7CisJaWYgKCFzeikKKwkJcmV0dXJuIDA7CisJaWYgKHN6ICogc3RyaWRlICogNCA+IGNtZGJ1Zi0+YnVmc3opCisJCXJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORygzICsgc3ogKiBzdHJpZGUpOworCU9VVF9SSU5HX1JFRyhSNTAwX0dBX1VTX1ZFQ1RPUl9JTkRFWCwgYWRkcik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSNTAwX0dBX1VTX1ZFQ1RPUl9EQVRBLCBzeiAqIHN0cmlkZSAtIDEpKTsKKwlPVVRfUklOR19UQUJMRSgoaW50ICopY21kYnVmLT5idWYsIHN6ICogc3RyaWRlKTsKKworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiBzdHJpZGUgKiA0OworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzdHJpZGUgKiA0OworCisJcmV0dXJuIDA7Cit9CisKKworLyoqCisgKiBQYXJzZXMgYW5kIHZhbGlkYXRlcyBhIHVzZXItc3VwcGxpZWQgY29tbWFuZCBidWZmZXIgYW5kIGVtaXRzIGFwcHJvcHJpYXRlCisgKiBjb21tYW5kcyBvbiB0aGUgRE1BIHJpbmcgYnVmZmVyLgorICogQ2FsbGVkIGJ5IHRoZSBpb2N0bCBoYW5kbGVyIGZ1bmN0aW9uIHJhZGVvbl9jcF9jbWRidWYuCisgKi8KK2ludCByMzAwX2RvX2NwX2NtZGJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCXN0cnVjdCBkcm1fYnVmICpidWYgPSBOVUxMOworCWludCBlbWl0X2Rpc3BhdGNoX2FnZSA9IDA7CisJaW50IHJldCA9IDA7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwkvKiBTZWUgdGhlIGNvbW1lbnQgYWJvdmUgcjMwMF9lbWl0X2JlZ2luM2QgZm9yIHdoeSB0aGlzIGNhbGwgbXVzdCBiZSBoZXJlLAorCSAqIGFuZCB3aGF0IHRoZSBjbGVhbnVwIGdvdG9zIGFyZSBmb3IuICovCisJcjMwMF9wYWNpZnkoZGV2X3ByaXYpOworCisJaWYgKGNtZGJ1Zi0+bmJveCA8PSBSMzAwX1NJTVVMVEFORU9VU19DTElQUkVDVFMpIHsKKwkJcmV0ID0gcjMwMF9lbWl0X2NsaXByZWN0cyhkZXZfcHJpdiwgY21kYnVmLCAwKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gY2xlYW51cDsKKwl9CisKKwl3aGlsZSAoY21kYnVmLT5idWZzeiA+PSBzaXplb2YoZHJtX3IzMDBfY21kX2hlYWRlcl90KSkgeworCQlpbnQgaWR4OworCQlkcm1fcjMwMF9jbWRfaGVhZGVyX3QgaGVhZGVyOworCisJCWhlYWRlci51ID0gKih1bnNpZ25lZCBpbnQgKiljbWRidWYtPmJ1ZjsKKworCQljbWRidWYtPmJ1ZiArPSBzaXplb2YoaGVhZGVyKTsKKwkJY21kYnVmLT5idWZzeiAtPSBzaXplb2YoaGVhZGVyKTsKKworCQlzd2l0Y2ggKGhlYWRlci5oZWFkZXIuY21kX3R5cGUpIHsKKwkJY2FzZSBSMzAwX0NNRF9QQUNLRVQwOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9QQUNLRVQwXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9wYWNrZXQwKGRldl9wcml2LCBjbWRidWYsIGhlYWRlcik7CisJCQlpZiAocmV0KSB7CisJCQkJRFJNX0VSUk9SKCJyMzAwX2VtaXRfcGFja2V0MCBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfVlBVOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9WUFVcbiIpOworCQkJcmV0ID0gcjMwMF9lbWl0X3ZwdShkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3ZwdSBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUEFDS0VUMzoKKwkJCURSTV9ERUJVRygiUjMwMF9DTURfUEFDS0VUM1xuIik7CisJCQlyZXQgPSByMzAwX2VtaXRfcGFja2V0MyhkZXZfcHJpdiwgY21kYnVmLCBoZWFkZXIpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigicjMwMF9lbWl0X3BhY2tldDMgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGNsZWFudXA7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFIzMDBfQ01EX0VORDNEOgorCQkJRFJNX0RFQlVHKCJSMzAwX0NNRF9FTkQzRFxuIik7CisJCQkvKiBUT0RPOgorCQkJICAgSWRlYWxseSB1c2Vyc3BhY2UgZHJpdmVyIHNob3VsZCBub3QgbmVlZCB0byBpc3N1ZSB0aGlzIGNhbGwsCisJCQkgICBpLmUuIHRoZSBkcm0gZHJpdmVyIHNob3VsZCBpc3N1ZSBpdCBhdXRvbWF0aWNhbGx5IGFuZCBwcmV2ZW50CisJCQkgICBsb2NrdXBzLgorCisJCQkgICBJbiBwcmFjdGljZSwgd2UgZG8gbm90IHVuZGVyc3RhbmQgd2h5IHRoaXMgY2FsbCBpcyBuZWVkZWQgYW5kIHdoYXQKKwkJCSAgIGl0IGRvZXMgKGV4Y2VwdCBmb3Igc29tZSB2YWd1ZSBndWVzc2VzIHRoYXQgaXQgaGFzIHRvIGRvIHdpdGggY2FjaGUKKwkJCSAgIGNvaGVyZW5jZSkgYW5kIHNvIHRoZSB1c2VyIHNwYWNlIGRyaXZlciBkb2VzIGl0LgorCisJCQkgICBPbmNlIHdlIGFyZSBzdXJlIHdoaWNoIHVzZXMgcHJldmVudCBsb2NrdXBzIHRoZSBjb2RlIGNvdWxkIGJlIG1vdmVkCisJCQkgICBpbnRvIHRoZSBrZXJuZWwgYW5kIHRoZSB1c2Vyc3BhY2UgZHJpdmVyIHdpbGwgbm90CisJCQkgICBuZWVkIHRvIHVzZSB0aGlzIGNvbW1hbmQuCisKKwkJCSAgIE5vdGUgdGhhdCBpc3N1aW5nIHRoaXMgY29tbWFuZCBkb2VzIG5vdCBodXJ0IGFueXRoaW5nCisJCQkgICBleGNlcHQsIHBvc3NpYmx5LCBwZXJmb3JtYW5jZSAqLworCQkJcjMwMF9wYWNpZnkoZGV2X3ByaXYpOworCQkJYnJlYWs7CisKKwkJY2FzZSBSMzAwX0NNRF9DUF9ERUxBWToKKwkJCS8qIHNpbXBsZSBlbm91Z2gsIHdlIGNhbiBkbyBpdCBoZXJlICovCisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX0NQX0RFTEFZXG4iKTsKKwkJCXsKKwkJCQlpbnQgaTsKKwkJCQlSSU5HX0xPQ0FMUzsKKworCQkJCUJFR0lOX1JJTkcoaGVhZGVyLmRlbGF5LmNvdW50KTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgaGVhZGVyLmRlbGF5LmNvdW50OyBpKyspCisJCQkJCU9VVF9SSU5HKFJBREVPTl9DUF9QQUNLRVQyKTsKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfRE1BX0RJU0NBUkQ6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfRE1BX0RJU0NBUkRcbiIpOworCQkJaWR4ID0gaGVhZGVyLmRtYS5idWZfaWR4OworCQkJaWYgKGlkeCA8IDAgfHwgaWR4ID49IGRtYS0+YnVmX2NvdW50KSB7CisJCQkJRFJNX0VSUk9SKCJidWZmZXIgaW5kZXggJWQgKG9mICVkIG1heClcbiIsCisJCQkJCSAgaWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJZ290byBjbGVhbnVwOworCQkJfQorCisJCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaWR4XTsKKwkJCWlmIChidWYtPmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYgfHwgYnVmLT5wZW5kaW5nKSB7CisJCQkJRFJNX0VSUk9SKCJiYWQgYnVmZmVyICVwICVwICVkXG4iLAorCQkJCQkgIGJ1Zi0+ZmlsZV9wcml2LCBmaWxlX3ByaXYsCisJCQkJCSAgYnVmLT5wZW5kaW5nKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKworCQkJZW1pdF9kaXNwYXRjaF9hZ2UgPSAxOworCQkJcjMwMF9kaXNjYXJkX2J1ZmZlcihkZXYsIGJ1Zik7CisJCQlicmVhazsKKworCQljYXNlIFIzMDBfQ01EX1dBSVQ6CisJCQlEUk1fREVCVUcoIlIzMDBfQ01EX1dBSVRcbiIpOworCQkJcjMwMF9jbWRfd2FpdChkZXZfcHJpdiwgaGVhZGVyKTsKKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfU0NSQVRDSDoKKwkJCURSTV9ERUJVRygiUjMwMF9DTURfU0NSQVRDSFxuIik7CisJCQlyZXQgPSByMzAwX3NjcmF0Y2goZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfc2NyYXRjaCBmYWlsZWRcbiIpOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUjMwMF9DTURfUjUwMEZQOgorCQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDwgQ0hJUF9SVjUxNSkgeworCQkJCURSTV9FUlJPUigiQ2FsbGluZyByNTAwIGNvbW1hbmQgb24gcjMwMCBjYXJkXG4iKTsKKwkJCQlyZXQgPSAtRUlOVkFMOworCQkJCWdvdG8gY2xlYW51cDsKKwkJCX0KKwkJCURSTV9ERUJVRygiUjMwMF9DTURfUjUwMEZQXG4iKTsKKwkJCXJldCA9IHIzMDBfZW1pdF9yNTAwZnAoZGV2X3ByaXYsIGNtZGJ1ZiwgaGVhZGVyKTsKKwkJCWlmIChyZXQpIHsKKwkJCQlEUk1fRVJST1IoInIzMDBfZW1pdF9yNTAwZnAgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGNsZWFudXA7CisJCQl9CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCURSTV9FUlJPUigiYmFkIGNtZF90eXBlICVpIGF0ICVwXG4iLAorCQkJCSAgaGVhZGVyLmhlYWRlci5jbWRfdHlwZSwKKwkJCQkgIGNtZGJ1Zi0+YnVmIC0gc2l6ZW9mKGhlYWRlcikpOworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gY2xlYW51cDsKKwkJfQorCX0KKworCURSTV9ERUJVRygiRU5EXG4iKTsKKworICAgICAgY2xlYW51cDoKKwlyMzAwX3BhY2lmeShkZXZfcHJpdik7CisKKwkvKiBXZSBlbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIGFnZSBoZXJlLCBvdXRzaWRlIHRoZSBwYWNpZmllciAiYnJhY2tldHMiCisJICogZm9yIHR3byByZWFzb25zOgorCSAqICAoMSkgVGhpcyBtYXkgY29hbGVzY2UgbXVsdGlwbGUgYWdlIGVtaXNzaW9ucyBpbnRvIGEgc2luZ2xlIG9uZSBhbmQKKwkgKiAgKDIpIG1vcmUgaW1wb3J0YW50bHksIHNvbWUgY2hpcHMgbG9jayB1cCBoYXJkIHdoZW4gc2NyYXRjaCByZWdpc3RlcnMKKwkgKiAgICAgIGFyZSB3cml0dGVuIGluc2lkZSB0aGUgcGFjaWZpZXIgYnJhY2tldC4KKwkgKi8KKwlpZiAoZW1pdF9kaXNwYXRjaF9hZ2UpIHsKKwkJUklOR19MT0NBTFM7CisKKwkJLyogRW1pdCB0aGUgdmVydGV4IGJ1ZmZlciBhZ2UgKi8KKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX0RJU1BBVENIX0FHRShkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaCk7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMzAwX3JlZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2ODAyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3IzMDBfcmVnLmgKQEAgLTAsMCArMSwxNzcyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworQ29weXJpZ2h0IChDKSAyMDA0LTIwMDUgTmljb2xhaSBIYWVobmxlIGV0IGFsLgorCitQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKK3RvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KK29uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWIKK2xpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCit0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAorVEhFIEFVVEhPUihTKSBBTkQvT1IgVEhFSVIgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAorREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCitPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCitVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfUjMwMF9SRUdfSAorI2RlZmluZSBfUjMwMF9SRUdfSAorCisjZGVmaW5lIFIzMDBfTUNfSU5JVF9NSVNDX0xBVF9USU1FUgkweDE4MAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19DUFJfSU5JVF9MQVRfU0hJRlQJMAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19WRl9JTklUX0xBVF9TSElGVAk0CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AwUl9JTklUX0xBVF9TSElGVAk4CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0RJU1AxUl9JTklUX0xBVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19GSVhFRF9JTklUX0xBVF9TSElGVAkxNgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19FMlJfSU5JVF9MQVRfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfU0FNRV9QQUdFX1BSSU9fU0hJRlQJMjQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfSU5JVF9MQVRfU0hJRlQJMjgKKworI2RlZmluZSBSMzAwX01DX0lOSVRfR0ZYX0xBVF9USU1FUgkweDE1NAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QwUl9JTklUX0xBVF9TSElGVAkwCisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX0czRDFSX0lOSVRfTEFUX1NISUZUCTQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfRzNEMlJfSU5JVF9MQVRfU0hJRlQJOAorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19HM0QzUl9JTklUX0xBVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9NQ19NSVNDX19NQ19UWDBSX0lOSVRfTEFUX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX01DX01JU0NfX01DX1RYMVJfSU5JVF9MQVRfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQlJfSU5JVF9MQVRfU0hJRlQJMjQKKyMJZGVmaW5lIFIzMDBfTUNfTUlTQ19fTUNfR0xPQldfRlVMTF9MQVRfU0hJRlQJMjgKKworLyoKKyAqIFRoaXMgZmlsZSBjb250YWlucyByZWdpc3RlcnMgYW5kIGNvbnN0YW50cyBmb3IgdGhlIFIzMDAuIFRoZXkgaGF2ZSBiZWVuCisgKiBmb3VuZCBtb3N0bHkgYnkgZXhhbWluaW5nIGNvbW1hbmQgYnVmZmVycyBjYXB0dXJlZCB1c2luZyBnbHh0ZXN0LCBhcyB3ZWxsCisgKiBhcyBieSBleHRyYXBvbGF0aW5nIHNvbWUga25vd24gcmVnaXN0ZXJzIGFuZCBjb25zdGFudHMgZnJvbSB0aGUgUjIwMC4KKyAqIEkgYW0gZmFpcmx5IGNlcnRhaW4gdGhhdCB0aGV5IGFyZSBjb3JyZWN0IHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlCisgKiBpbiBjb21tZW50cy4KKyAqLworCisjZGVmaW5lIFIzMDBfU0VfVlBPUlRfWFNDQUxFICAgICAgICAgICAgICAgIDB4MUQ5OAorI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1hPRkZTRVQgICAgICAgICAgICAgICAweDFEOUMKKyNkZWZpbmUgUjMwMF9TRV9WUE9SVF9ZU0NBTEUgICAgICAgICAgICAgICAgMHgxREEwCisjZGVmaW5lIFIzMDBfU0VfVlBPUlRfWU9GRlNFVCAgICAgICAgICAgICAgIDB4MURBNAorI2RlZmluZSBSMzAwX1NFX1ZQT1JUX1pTQ0FMRSAgICAgICAgICAgICAgICAweDFEQTgKKyNkZWZpbmUgUjMwMF9TRV9WUE9SVF9aT0ZGU0VUICAgICAgICAgICAgICAgMHgxREFDCisKKworLyoKKyAqIFZlcnRleCBBcnJheSBQcm9jZXNzaW5nIChWQVApIENvbnRyb2wKKyAqIFN0b2xlbiBmcm9tIHIyMDAgY29kZSBmcm9tIENocmlzdG9waCBCcmlsbCAoSXQncyBhIGd1ZXNzISkKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9DTlRMCTB4MjA4MAorCisvKiBUaGlzIHJlZ2lzdGVyIGlzIHdyaXR0ZW4gZGlyZWN0bHkgYW5kIGFsc28gc3RhcnRzIGRhdGEgc2VjdGlvbgorICogaW4gbWFueSAzZCBDUF9QQUNLRVQzJ3MKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9WRl9DTlRMCTB4MjA4NAorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9UWVBFX19TSElGVCAgICAgICAgICAgICAgMAorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTk9ORSAgICAgICAgICAgICAgICAgICAgICgwPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9JTlRTICAgICAgICAgICAgICAgICAgICgxPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORVMgICAgICAgICAgICAgICAgICAgICgyPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9TVFJJUCAgICAgICAgICAgICAgICgzPDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVTICAgICAgICAgICAgICAgICg0PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfRkFOICAgICAgICAgICAgICg1PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fVFJJQU5HTEVfU1RSSVAgICAgICAgICAgICg2PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fTElORV9MT09QICAgICAgICAgICAgICAgICgxMjw8MCkKKyMJZGVmaW5lICBSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTM8PDApCisjCWRlZmluZSAgUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9RVUFEX1NUUklQICAgICAgICAgICAgICAgKDE0PDwwKQorIwlkZWZpbmUgIFIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fUE9MWUdPTiAgICAgICAgICAgICAgICAgICgxNTw8MCkKKworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX19TSElGVCAgICAgICAgICAgICAgNAorCS8qIFN0YXRlIGJhc2VkIC0gZGlyZWN0IHdyaXRlcyB0byByZWdpc3RlcnMgdHJpZ2dlciB2ZXJ0ZXgKKyAgICAgICAgICAgZ2VuZXJhdGlvbiAqLworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1NUQVRFX0JBU0VEICAgICAgICAgKDA8PDQpCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19QUklNX1dBTEtfSU5ESUNFUyAgICAgICAgICAgICAoMTw8NCkKKyMJZGVmaW5lCVIzMDBfVkFQX1ZGX0NOVExfX1BSSU1fV0FMS19WRVJURVhfTElTVCAgICAgICAgICgyPDw0KQorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJJTV9XQUxLX1ZFUlRFWF9FTUJFRERFRCAgICAgKDM8PDQpCisKKwkvKiBJIGRvbid0IHRoaW5rIEkgc2F3IHRoZXNlIHRocmVlIHVzZWQuLiAqLworIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fQ09MT1JfT1JERVJfX1NISUZUICAgICAgICAgICAgNgorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fVENMX09VVFBVVF9DVExfRU5BX19TSElGVCAgICAgOQorIwlkZWZpbmUJUjMwMF9WQVBfVkZfQ05UTF9fUFJPR19TVFJFQU1fRU5BX19TSElGVCAgICAgICAgMTAKKworCS8qIGluZGV4IHNpemUgLSB3aGVuIG5vdCBzZXQgdGhlIGluZGljZXMgYXJlIGFzc3VtZWQgdG8gYmUgMTYgYml0ICovCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19JTkRFWF9TSVpFXzMyYml0ICAgICAgICAgICAgICAoMTw8MTEpCisJLyogbnVtYmVyIG9mIHZlcnRpY2VzICovCisjCWRlZmluZQlSMzAwX1ZBUF9WRl9DTlRMX19OVU1fVkVSVElDRVNfX1NISUZUICAgICAgICAgICAxNgorCisvKiBCRUdJTjogV2lsZCBndWVzc2VzICovCisjZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzAgICAgICAgICAgIDB4MjA5MAorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUE9TX1BSRVNFTlQgICAgICgxPDwwKQorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfUFJFU0VOVCAgICgxPDwxKQorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fQ09MT1JfMV9QUkVTRU5UICgxPDwyKSAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVCAoMTw8MykgIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8wX19DT0xPUl8zX1BSRVNFTlQgKDE8PDQpICAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMF9fUFRfU0laRV9QUkVTRU5UICgxPDwxNikgLyogR1VFU1MgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xICAgICAgICAgICAweDIwOTQKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKKwkgICBvZiBjb21wb25lbnRzICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVCAwCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVCAzCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVCA2CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVCA5CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVCAxMgorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfT1VUUFVUX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQgMTUKKyMgICAgICAgZGVmaW5lIFIzMDBfVkFQX09VVFBVVF9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUIDE4CisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9PVVRQVVRfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVCAyMQorLyogRU5EOiBXaWxkIGd1ZXNzZXMgKi8KKworI2RlZmluZSBSMzAwX1NFX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgMHgyMGIwCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9YX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDAyCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDA0CisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9ZX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDA4CisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX1NDQUxFX0VOQSAgICAgICAgICAgICAgICAweDAwMDAwMDEwCisjCWRlZmluZSAgICAgUjMwMF9WUE9SVF9aX09GRlNFVF9FTkEgICAgICAgICAgICAgICAweDAwMDAwMDIwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfWFlfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMTAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfWl9GTVQgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfRk1UICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfVzBfTk9STUFMSVpFICAgICAgICAgICAgICAgICAweDAwMDAwODAwCisjCWRlZmluZSAgICAgUjMwMF9WVFhfU1RfREVOT1JNQUxJWkVEICAgICAgICAgICAgICAweDAwMDAxMDAwCisKKy8qIEJFR0lOOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAtIGxvdHMgb2YgdW5jZXJ0YWludGllcyAqLworCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgMHgyMTQwCisjCWRlZmluZSBSMzAwX1ZDX05PX1NXQVAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9WQ18xNkJJVF9TV0FQICAgICAgICAgICAgICAgKDEgPDwgMCkKKyMJZGVmaW5lIFIzMDBfVkNfMzJCSVRfU1dBUCAgICAgICAgICAgICAgICgyIDw8IDApCisjCWRlZmluZSBSMzAwX1ZBUF9UQ0xfQllQQVNTCQkoMSA8PCA4KQorCisvKiBnYXAgKi8KKworLyogV2hlcmUgZG8gd2UgZ2V0IG91ciB2ZXJ0ZXggZGF0YT8KKyAqCisgKiBWZXJ0ZXggZGF0YSBlaXRoZXIgY29tZXMgZWl0aGVyIGZyb20gaW1tZWRpYXRlIG1vZGUgcmVnaXN0ZXJzIG9yIGZyb20KKyAqIHZlcnRleCBhcnJheXMuCisgKiBUaGVyZSBhcHBlYXJzIHRvIGJlIG5vIG1peGVkIG1vZGUgKHRob3VnaCB3ZSBjYW4gZm9yY2UgdGhlIHBpdGNoIG9mCisgKiB2ZXJ0ZXggYXJyYXlzIHRvIDAsIGVmZmVjdGl2ZWx5IHJldXNpbmcgdGhlIHNhbWUgZWxlbWVudCBvdmVyIGFuZCBvdmVyCisgKiBhZ2FpbikuCisgKgorICogSW1tZWRpYXRlIG1vZGUgaXMgY29udHJvbGxlZCBieSB0aGUgSU5QVVRfQ05UTCByZWdpc3RlcnMuIEkgYW0gbm90IHN1cmUKKyAqIGlmIHRoZXNlIHJlZ2lzdGVycyBpbmZsdWVuY2UgdmVydGV4IGFycmF5IHByb2Nlc3NpbmcuCisgKgorICogVmVydGV4IGFycmF5cyBhcmUgY29udHJvbGxlZCB2aWEgdGhlIDNEX0xPQURfVkJQTlRSIHBhY2tldDMuCisgKgorICogSW4gYm90aCBjYXNlcywgdmVydGV4IGF0dHJpYnV0ZXMgYXJlIHRoZW4gcGFzc2VkIHRocm91Z2ggSU5QVVRfUk9VVEUuCisgKgorICogQmVnaW5uaW5nIHdpdGggSU5QVVRfUk9VVEVfMF8wIGlzIGEgbGlzdCBvZiBXT1JEcyB0aGF0IHJvdXRlIHZlcnRleCBkYXRhCisgKiBpbnRvIHRoZSB2ZXJ0ZXggcHJvY2Vzc29yJ3MgaW5wdXQgcmVnaXN0ZXJzLgorICogVGhlIGZpcnN0IHdvcmQgcm91dGVzIHRoZSBmaXJzdCBpbnB1dCwgdGhlIHNlY29uZCB3b3JkIHRoZSBzZWNvbmQsIGV0Yy4KKyAqIFRoZSBjb3JyZXNwb25kaW5nIGlucHV0IGlzIHJvdXRlZCBpbnRvIHRoZSByZWdpc3RlciB3aXRoIHRoZSBnaXZlbiBpbmRleC4KKyAqIFRoZSBsaXN0IGlzIGVuZGVkIGJ5IGEgd29yZCB3aXRoIElOUFVUX1JPVVRFX0VORCBzZXQuCisgKgorICogQWx3YXlzIHNldCBDT01QT05FTlRTXzQgaW4gaW1tZWRpYXRlIG1vZGUuCisgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzAgICAgICAgICAgICAweDIxNTAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU18xICAgICAoMCA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTXzIgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX0NPTVBPTkVOVFNfMyAgICAgKDIgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfQ09NUE9ORU5UU180ICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9DT01QT05FTlRTX1JHQkEgICg0IDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV9JRFhfU0hJRlQgICAgOAorIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfSURYX01BU0sgICAgICgzMSA8PCA4KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfRU5EICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9JTU1FRElBVEVfTU9ERSAgICgwIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVCAgICAgICAgICAgICgxIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9VTlNJR05FRF9CWVRFICAgICgyIDw8IDE0KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9GTE9BVF9DT0xPUiAgICAgICgzIDw8IDE0KSAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzEgICAgICAgICAgICAweDIxNTQKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF8yICAgICAgICAgICAgMHgyMTU4CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfMyAgICAgICAgICAgIDB4MjE1QworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzQgICAgICAgICAgICAweDIxNjAKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMF81ICAgICAgICAgICAgMHgyMTY0CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzBfNiAgICAgICAgICAgIDB4MjE2OAorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8wXzcgICAgICAgICAgICAweDIxNkMKKworLyogZ2FwICovCisKKy8qIE5vdGVzOgorICogIC0gYWx3YXlzIHNldCB1cCB0byBwcm9kdWNlIGF0IGxlYXN0IHR3byBhdHRyaWJ1dGVzOgorICogICAgaWYgdmVydGV4IHByb2dyYW0gdXNlcyBvbmx5IHBvc2l0aW9uLCBmZ2xyeCB3aWxsIHNldCBub3JtYWwsIHRvbworICogIC0gSU5QVVRfQ05UTF8wX0NPTE9SIGFuZCBJTlBVVF9DTlRMX0NPTE9SIGJpdHMgYXJlIGFsd2F5cyBlcXVhbC4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9DTlRMXzAgICAgICAgICAgICAgICAweDIxODAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF8wX0NPTE9SICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX0NOVExfMSAgICAgICAgICAgICAgIDB4MjE4NAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1BPUyAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9OT1JNQUwgICAgICAgICAgICAweDAwMDAwMDAyCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfQ09MT1IgICAgICAgICAgICAgMHgwMDAwMDAwNAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMCAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzEgICAgICAgICAgICAgICAweDAwMDAwODAwCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEMyICAgICAgICAgICAgICAgMHgwMDAwMTAwMCAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDMyAgICAgICAgICAgICAgIDB4MDAwMDIwMDAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzQgICAgICAgICAgICAgICAweDAwMDA0MDAwIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX0NOVExfVEM1ICAgICAgICAgICAgICAgMHgwMDAwODAwMCAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9DTlRMX1RDNiAgICAgICAgICAgICAgIDB4MDAwMTAwMDAgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfQ05UTF9UQzcgICAgICAgICAgICAgICAweDAwMDIwMDAwIC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBXb3JkcyBwYXJhbGxlbCB0byBJTlBVVF9ST1VURV8wOyBBbGwgd29yZHMgdGhhdCBhcmUgYWN0aXZlIGluIElOUFVUX1JPVVRFXzAKKyAqIGFyZSBzZXQgdG8gYSBzd2l6emxpbmcgYml0IHBhdHRlcm4sIG90aGVyIHdvcmRzIGFyZSAwLgorICoKKyAqIEluIGltbWVkaWF0ZSBtb2RlLCB0aGUgcGF0dGVybiBpcyBhbHdheXMgc2V0IHRvIHh5encuIEluIHZlcnRleCBhcnJheQorICogbW9kZSwgdGhlIHN3aXp6bGluZyBwYXR0ZXJuIGlzIGUuZy4gdXNlZCB0byBzZXQgencgY29tcG9uZW50cyBpbiB0ZXh0dXJlCisgKiBjb29yZGluYXRlcyB3aXRoIG9ubHkgdHdlbyBjb21wb25lbnRzLgorICovCisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMCAgICAgICAgICAgIDB4MjFFMAorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfWCAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9ZICAgIDEKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX1ogICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfVyAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1NFTEVDVF9aRVJPIDQKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfU0VMRUNUX09ORSAgNQorIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9TRUxFQ1RfTUFTSyA3CisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1hfU0hJRlQgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfWV9TSElGVCAgICAgMworIyAgICAgICBkZWZpbmUgUjMwMF9JTlBVVF9ST1VURV9aX1NISUZUICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0lOUFVUX1JPVVRFX1dfU0hJRlQgICAgIDkKKyMgICAgICAgZGVmaW5lIFIzMDBfSU5QVVRfUk9VVEVfRU5BQkxFICAgICAgKDE1IDw8IDEyKQorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzEgICAgICAgICAgICAweDIxRTQKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV8yICAgICAgICAgICAgMHgyMUU4CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfMyAgICAgICAgICAgIDB4MjFFQworI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzQgICAgICAgICAgICAweDIxRjAKKyNkZWZpbmUgUjMwMF9WQVBfSU5QVVRfUk9VVEVfMV81ICAgICAgICAgICAgMHgyMUY0CisjZGVmaW5lIFIzMDBfVkFQX0lOUFVUX1JPVVRFXzFfNiAgICAgICAgICAgIDB4MjFGOAorI2RlZmluZSBSMzAwX1ZBUF9JTlBVVF9ST1VURV8xXzcgICAgICAgICAgICAweDIxRkMKKworLyogRU5EOiBWZXJ0ZXggZGF0YSBhc3NlbWJseSAqLworCisvKiBnYXAgKi8KKworLyogQkVHSU46IFVwbG9hZCB2ZXJ0ZXggcHJvZ3JhbSBhbmQgZGF0YSAqLworCisvKgorICogVGhlIHByb2dyYW1tYWJsZSB2ZXJ0ZXggc2hhZGVyIHVuaXQgaGFzIGEgbWVtb3J5IGJhbmsgb2YgdW5rbm93biBzaXplCisgKiB0aGF0IGNhbiBiZSB3cml0dGVuIHRvIGluIDE2IGJ5dGUgdW5pdHMgYnkgd3JpdGluZyB0aGUgYWRkcmVzcyBpbnRvCisgKiBVUExPQURfQUREUkVTUywgZm9sbG93ZWQgYnkgZGF0YSBpbiBVUExPQURfREFUQSAobXVsdGlwbGVzIG9mIDQgRFdPUkRzKS4KKyAqCisgKiBQb2ludGVycyBpbnRvIHRoZSBtZW1vcnkgYmFuayBhcmUgYWx3YXlzIGluIG11bHRpcGxlcyBvZiAxNiBieXRlcy4KKyAqCisgKiBUaGUgbWVtb3J5IGJhbmsgaXMgZGl2aWRlZCBpbnRvIGFyZWFzIHdpdGggZml4ZWQgbWVhbmluZy4KKyAqCisgKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QUk9HUkFNOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbnMuCisgKiBOYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGRyaXZlcnMgZnJvbSBBVEkgc3VnZ2VzdCBzaXplIDI1NiAoaS5lLiA0S0IpLAorICogd2hlcmVhcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KKyAqCisgKiBTdGFydGluZyBhdCBhZGRyZXNzIFVQTE9BRF9QQVJBTUVURVJTOiBWZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgorICogTmF0aXZlIHJlcG9ydGVkIGxpbWl0cyBhbmQgdGhlIFZQSSBsYXlvdXQgc3VnZ2VzdCBzaXplIDI1Niwgd2hlcmVhcworICogZGlmZmVyZW5jZSBiZXR3ZWVuIGtub3duIGFkZHJlc3NlcyBzdWdnZXN0cyBzaXplIDUxMi4KKyAqCisgKiBBdCBhZGRyZXNzIFVQTE9BRF9QT0lOVFNJWkUgaXMgYSB2ZWN0b3IgKDAsIDAsIHBzLCAwKSwgd2hlcmUgcHMgaXMgdGhlCisgKiBmbG9hdGluZyBwb2ludCBwb2ludHNpemUuIFRoZSBleGFjdCBwdXJwb3NlIG9mIHRoaXMgc3RhdGUgaXMgdW5jZXJ0YWluLAorICogYXMgdGhlcmUgaXMgYWxzbyB0aGUgUjMwMF9SRV9QT0lOVFNJWkUgcmVnaXN0ZXIuCisgKgorICogTXVsdGlwbGUgdmVydGV4IHByb2dyYW1zIGFuZCBwYXJhbWV0ZXIgc2V0cyBjYW4gYmUgbG9hZGVkIGF0IG9uY2UsCisgKiB3aGljaCBjb3VsZCBleHBsYWluIHRoZSBzaXplIGRpc2NyZXBhbmN5LgorICovCisjZGVmaW5lIFIzMDBfVkFQX1BWU19VUExPQURfQUREUkVTUyAgICAgICAgIDB4MjIwMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfVVBMT0FEX1BST0dSQU0gICAgICAgICAgIDB4MDAwMDAwMDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUFZTX1VQTE9BRF9QQVJBTUVURVJTICAgICAgICAweDAwMDAwMjAwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19VUExPQURfUE9JTlRTSVpFICAgICAgICAgMHgwMDAwMDQwNgorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1ZBUF9QVlNfVVBMT0FEX0RBVEEgICAgICAgICAgICAweDIyMDgKKworLyogRU5EOiBVcGxvYWQgdmVydGV4IHByb2dyYW0gYW5kIGRhdGEgKi8KKworLyogZ2FwICovCisKKy8qIEkgZG8gbm90IGtub3cgdGhlIHB1cnBvc2Ugb2YgdGhpcyByZWdpc3Rlci4gSG93ZXZlciwgSSBkbyBrbm93IHRoYXQKKyAqIGl0IGlzIHNldCB0byAyMjFDX0NMRUFSIGZvciBjbGVhciBvcGVyYXRpb25zIGFuZCB0byAyMjFDX05PUk1BTAorICogZm9yIG5vcm1hbCByZW5kZXJpbmcuCisgKi8KKyNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjFDICAgICAgICAgICAgICAgMHgyMjFDCisjICAgICAgIGRlZmluZSBSMzAwXzIyMUNfTk9STUFMICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMAorIyAgICAgICBkZWZpbmUgUjMwMF8yMjFDX0NMRUFSICAgICAgICAgICAgICAgICAgIDB4MDAwMUMwMDAKKworLyogVGhlc2Ugc2VlbSB0byBiZSBwZXItcGl4ZWwgYW5kIHBlci12ZXJ0ZXggWCBhbmQgWSBjbGlwcGluZyBwbGFuZXMuIFRoZSBmaXJzdAorICogcGxhbmUgaXMgcGVyLXBpeGVsIGFuZCB0aGUgc2Vjb25kIHBsYW5lIGlzIHBlci12ZXJ0ZXguCisgKgorICogVGhpcyB3YXMgZGV0ZXJtaW5lZCBieSBleHBlcmltZW50YXRpb24gYWxvbmUgYnV0IEkgYmVsaWV2ZSBpdCBpcyBjb3JyZWN0LgorICoKKyAqIFRoZXNlIHJlZ2lzdGVycyBhcmUgY2FsbGVkIFhfUVVBRDBfMV9GTCB0byBYX1FVQUQwXzRfRkwgYnkgZ2x4dGVzdC4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9DTElQX1hfMCAgICAgICAgICAgICAgICAgICAweDIyMjAKKyNkZWZpbmUgUjMwMF9WQVBfQ0xJUF9YXzEgICAgICAgICAgICAgICAgICAgMHgyMjI0CisjZGVmaW5lIFIzMDBfVkFQX0NMSVBfWV8wICAgICAgICAgICAgICAgICAgIDB4MjIyOAorI2RlZmluZSBSMzAwX1ZBUF9DTElQX1lfMSAgICAgICAgICAgICAgICAgICAweDIyMzAKKworLyogZ2FwICovCisKKy8qIFNvbWV0aW1lcywgRU5EX09GX1BLVCBhbmQgMHgyMjg0PTAgYXJlIHRoZSBvbmx5IGNvbW1hbmRzIHNlbnQgYmV0d2VlbgorICogcmVuZGVyaW5nIGNvbW1hbmRzIGFuZCBvdmVyd3JpdGluZyB2ZXJ0ZXggcHJvZ3JhbSBwYXJhbWV0ZXJzLgorICogVGhlcmVmb3JlLCBJIHN1c3BlY3Qgd3JpdGluZyB6ZXJvIHRvIDB4MjI4NCBzeW5jaHJvbml6ZXMgdGhlIGVuZ2luZSBhbmQKKyAqIGF2b2lkcyBidWdzIGNhdXNlZCBieSBzdGlsbCBydW5uaW5nIHNoYWRlcnMgcmVhZGluZyBiYWQgZGF0YSBmcm9tIG1lbW9yeS4KKyAqLworI2RlZmluZSBSMzAwX1ZBUF9QVlNfV0FJVElETEUgICAgICAgICAgICAgICAweDIyODQgLyogR1VFU1MgKi8KKworLyogQWJzb2x1dGVseSBubyBjbHVlIHdoYXQgdGhpcyByZWdpc3RlciBpcyBhYm91dC4gKi8KKyNkZWZpbmUgUjMwMF9WQVBfVU5LTk9XTl8yMjg4ICAgICAgICAgICAgICAgMHgyMjg4CisjICAgICAgIGRlZmluZSBSMzAwXzIyODhfUjMwMCAgICAgICAgICAgICAgICAgICAgMHgwMDc1MDAwMCAvKiAtLSBuaCAqLworIyAgICAgICBkZWZpbmUgUjMwMF8yMjg4X1JWMzUwICAgICAgICAgICAgICAgICAgIDB4MDAwMEZGRkYgLyogLS0gVmxhZGltaXIgKi8KKworLyogZ2FwICovCisKKy8qIEFkZHJlc3NlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIHZlcnRleCBwcm9ncmFtIGluc3RydWN0aW9uIGFyZWEgb2YgdGhlCisgKiBtZW1vcnkgYmFuay4gUFJPR1JBTV9FTkQgcG9pbnRzIHRvIHRoZSBsYXN0IGluc3RydWN0aW9uIG9mIHRoZSBhY3RpdmUKKyAqIHByb2dyYW0KKyAqCisgKiBUaGUgbWVhbmluZyBvZiB0aGUgdHdvIFVOS05PV04gZmllbGRzIGlzIG9idmlvdXNseSBub3Qga25vd24uIEhvd2V2ZXIsCisgKiBleHBlcmltZW50cyBzbyBmYXIgaGF2ZSBzaG93biB0aGF0IGJvdGggKm11c3QqIHBvaW50IHRvIGFuIGluc3RydWN0aW9uCisgKiBpbnNpZGUgdGhlIHZlcnRleCBwcm9ncmFtLCBvdGhlcndpc2UgdGhlIEdQVSBsb2NrcyB1cC4KKyAqCisgKiBmZ2xyeCB1c3VhbGx5IHNldHMgQ05UTF8zX1VOS05PV04gdG8gdGhlIGVuZCBvZiB0aGUgcHJvZ3JhbSBhbmQKKyAqIFIzMDBfUFZTX0NOVExfMV9QT1NfRU5EX1NISUZUIHBvaW50cyB0byBpbnN0cnVjdGlvbiB3aGVyZSBsYXN0IHdyaXRlIHRvCisgKiBwb3NpdGlvbiB0YWtlcyBwbGFjZS4KKyAqCisgKiBNb3N0IGxpa2VseSB0aGlzIGlzIHVzZWQgdG8gaWdub3JlIHJlc3Qgb2YgdGhlIHByb2dyYW0gaW4gY2FzZXMKKyAqIHdoZXJlIGdyb3VwIG9mIHZlcnRzIGFyZW50IHZpc2libGUuIEZvciBzb21lIHJlYXNvbiB0aGlzICJzZWN0aW9uIgorICogaXMgc29tZXRpbWVzIGFjY2VwdGVkIG90aGVyIGluc3RydWN0aW9uIHRoYXQgaGF2ZSBubyByZWxhdGlvbnNoaXAgd2l0aAorICogcG9zaXRpb24gY2FsY3VsYXRpb25zLgorICovCisjZGVmaW5lIFIzMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAgIDB4MjJEMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8xX1BST0dSQU1fU1RBUlRfU0hJRlQgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUE9TX0VORF9TSElGVCAgICAgICAgIDEwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzFfUFJPR1JBTV9FTkRfU0hJRlQgICAgIDIwCisvKiBBZGRyZXNzZXMgYXJlIHJlbGF0aXZlIHRoZSB0aGUgdmVydGV4IHByb2dyYW0gcGFyYW1ldGVycyBhcmVhLiAqLworI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8yICAgICAgICAgICAgICAgICAweDIyRDQKKyMgICAgICAgZGVmaW5lIFIzMDBfUFZTX0NOVExfMl9QQVJBTV9PRkZTRVRfU0hJRlQgMAorIyAgICAgICBkZWZpbmUgUjMwMF9QVlNfQ05UTF8yX1BBUkFNX0NPVU5UX1NISUZUICAxNgorI2RlZmluZSBSMzAwX1ZBUF9QVlNfQ05UTF8zCSAgICAgICAgICAgMHgyMkQ4CisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOX1NISUZUIDEwCisjICAgICAgIGRlZmluZSBSMzAwX1BWU19DTlRMXzNfUFJPR1JBTV9VTktOT1dOMl9TSElGVCAwCisKKy8qIFRoZSBlbnRpcmUgcmFuZ2UgZnJvbSAweDIzMDAgdG8gMHgyQUMgaW5jbHVzaXZlIHNlZW1zIHRvIGJlIHVzZWQgZm9yCisgKiBpbW1lZGlhdGUgdmVydGljZXMKKyAqLworI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUiAgICAgICAgICAgICAgICAweDI0NjQKKyNkZWZpbmUgUjMwMF9WQVBfVlRYX0NPTE9SX0cgICAgICAgICAgICAgICAgMHgyNDY4CisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9DT0xPUl9CICAgICAgICAgICAgICAgIDB4MjQ2QworI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8xICAgICAgICAgICAgICAweDI0OTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgyKigpICovCisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzEgICAgICAgICAgICAgIDB4MjQ5NAorI2RlZmluZSBSMzAwX1ZBUF9WVFhfQ09MT1JfUEtEICAgICAgICAgICAgICAweDI0OUMgLyogUkdCQSAqLworI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWF8yICAgICAgICAgICAgICAweDI0QTAgLyogdXNlZCBmb3IgZ2xWZXJ0ZXgzKigpICovCisjZGVmaW5lIFIzMDBfVkFQX1ZUWF9QT1NfMF9ZXzIgICAgICAgICAgICAgIDB4MjRBNAorI2RlZmluZSBSMzAwX1ZBUF9WVFhfUE9TXzBfWl8yICAgICAgICAgICAgICAweDI0QTgKKy8qIHdyaXRlIDAgdG8gaW5kaWNhdGUgZW5kIG9mIHBhY2tldD8gKi8KKyNkZWZpbmUgUjMwMF9WQVBfVlRYX0VORF9PRl9QS1QgICAgICAgICAgICAgMHgyNEFDCisKKy8qIGdhcCAqLworCisvKiBUaGVzZSBhcmUgdmFsdWVzIGZyb20gcjMwMF9yZWcvcjMwMF9yZWcuaCAtIHRoZXkgYXJlIGtub3duIHRvIGJlIGNvcnJlY3QKKyAqIGFuZCBhcmUgaGVyZSBzbyB3ZSBjYW4gdXNlIG9uZSByZWdpc3RlciBmaWxlIGluc3RlYWQgb2Ygc2V2ZXJhbAorICogLSBWbGFkaW1pcgorICovCisjZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzAJMHg0MDAwCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QT1NfUFJFU0VOVAkoMTw8MCkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzBfUFJFU0VOVAkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzFfUFJFU0VOVAkoMTw8MikKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzJfUFJFU0VOVAkoMTw8MykKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SXzNfUFJFU0VOVAkoMTw8NCkKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzBfX0NPTE9SX1NQQUNFCSgweGY8PDUpCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8wX19QVF9TSVpFX1BSRVNFTlQJKDB4MTw8MTYpCisKKyNkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMQkweDQwMDQKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMyBiaXRzIHdpZGUsIHNwZWNpZmllcyBudW1iZXIKKwkgICBvZiBjb21wb25lbnRzICovCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMF9DT01QX0NOVF9TSElGVAkwCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMV9DT01QX0NOVF9TSElGVAkzCisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfMl9DT01QX0NOVF9TSElGVAk2CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfM19DT01QX0NOVF9TSElGVAk5CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfNF9DT01QX0NOVF9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9HQl9WQVBfUkFTVEVSX1ZUWF9GTVRfMV9fVEVYXzVfQ09NUF9DTlRfU0hJRlQJMTUKKyMJZGVmaW5lIFIzMDBfR0JfVkFQX1JBU1RFUl9WVFhfRk1UXzFfX1RFWF82X0NPTVBfQ05UX1NISUZUCTE4CisjCWRlZmluZSBSMzAwX0dCX1ZBUF9SQVNURVJfVlRYX0ZNVF8xX19URVhfN19DT01QX0NOVF9TSElGVAkyMQorCisvKiBVTkszMCBzZWVtcyB0byBlbmFibGVzIHBvaW50IHRvIHF1YWQgdHJhbnNmb3JtYXRpb24gb24gdGV4dHVyZXMKKyAqIChvciBzb21ldGhpbmcgY2xvc2VseSByZWxhdGVkIHRvIHRoYXQpLgorICogVGhpcyBiaXQgaXMgcmF0aGVyIGZhdGFsIGF0IHRoZSB0aW1lIGJlaW5nIGR1ZSB0byBsYWNraW5ncyBhdCBwaXhlbAorICogc2hhZGVyIHNpZGUKKyAqLworI2RlZmluZSBSMzAwX0dCX0VOQUJMRQkweDQwMDgKKyMJZGVmaW5lIFIzMDBfR0JfUE9JTlRfU1RVRkZfRU5BQkxFCSgxPDwwKQorIwlkZWZpbmUgUjMwMF9HQl9MSU5FX1NUVUZGX0VOQUJMRQkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfR0JfVFJJQU5HTEVfU1RVRkZfRU5BQkxFCSgxPDwyKQorIwlkZWZpbmUgUjMwMF9HQl9TVEVOQ0lMX0FVVE9fRU5BQkxFCSgxPDw0KQorIwlkZWZpbmUgUjMwMF9HQl9VTkszMQkJCSgxPDwzMSkKKwkvKiBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgMiBiaXRzIHdpZGUgKi8KKyNkZWZpbmUgUjMwMF9HQl9URVhfUkVQTElDQVRFCTAKKyNkZWZpbmUgUjMwMF9HQl9URVhfU1QJCTEKKyNkZWZpbmUgUjMwMF9HQl9URVhfU1RSCQkyCisjCWRlZmluZSBSMzAwX0dCX1RFWDBfU09VUkNFX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX0dCX1RFWDFfU09VUkNFX1NISUZUCTE4CisjCWRlZmluZSBSMzAwX0dCX1RFWDJfU09VUkNFX1NISUZUCTIwCisjCWRlZmluZSBSMzAwX0dCX1RFWDNfU09VUkNFX1NISUZUCTIyCisjCWRlZmluZSBSMzAwX0dCX1RFWDRfU09VUkNFX1NISUZUCTI0CisjCWRlZmluZSBSMzAwX0dCX1RFWDVfU09VUkNFX1NISUZUCTI2CisjCWRlZmluZSBSMzAwX0dCX1RFWDZfU09VUkNFX1NISUZUCTI4CisjCWRlZmluZSBSMzAwX0dCX1RFWDdfU09VUkNFX1NISUZUCTMwCisKKy8qIE1TUE9TIC0gcG9zaXRpb25zIGZvciBtdWx0aXNhbXBsZSBhbnRpYWxpYXNpbmcgKD8pICovCisjZGVmaW5lIFIzMDBfR0JfTVNQT1MwCTB4NDAxMAorCS8qIHNoaWZ0cyAtIGVhY2ggb2YgdGhlIGZpZWxkcyBpcyA0IGJpdHMgKi8KKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19YMF9TSElGVAkwCisjCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTBfU0hJRlQJNAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gxX1NISUZUCTgKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU19ZMV9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TX1gyX1NISUZUCTE2CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMF9fTVNfWTJfU0hJRlQJMjAKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MwX19NU0JEMF9ZCQkyNAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzBfX01TQkQwX1gJCTI4CisKKyNkZWZpbmUgUjMwMF9HQl9NU1BPUzEJMHg0MDE0CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWDNfU0hJRlQJMAorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1kzX1NISUZUCTQKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNF9TSElGVAk4CisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNfWTRfU0hJRlQJMTIKKyMJZGVmaW5lIFIzMDBfR0JfTVNQT1MxX19NU19YNV9TSElGVAkxNgorIwlkZWZpbmUgUjMwMF9HQl9NU1BPUzFfX01TX1k1X1NISUZUCTIwCisjCWRlZmluZSBSMzAwX0dCX01TUE9TMV9fTVNCRDEJCTI0CisKKworI2RlZmluZSBSMzAwX0dCX1RJTEVfQ09ORklHCTB4NDAxOAorIwlkZWZpbmUgUjMwMF9HQl9USUxFX0VOQUJMRQkoMTw8MCkKKyMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1JWMzAwCTAKKyMJZGVmaW5lIFIzMDBfR0JfVElMRV9QSVBFX0NPVU5UX1IzMDAJKDM8PDEpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfUElQRV9DT1VOVF9SNDIwCSg3PDwxKQorIwlkZWZpbmUgUjMwMF9HQl9USUxFX1BJUEVfQ09VTlRfUlY0MTAJKDM8PDEpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV84CQkwCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8xNgkJKDE8PDQpCisjCWRlZmluZSBSMzAwX0dCX1RJTEVfU0laRV8zMgkJKDI8PDQpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMQkJKDA8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMgkJKDE8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfNAkJKDI8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfOAkJKDM8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTYJCSg0PDw2KQorIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9TSVpFXzMyCQkoNTw8NikKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfU0laRV82NAkJKDY8PDYpCisjCWRlZmluZSBSMzAwX0dCX1NVUEVSX1NJWkVfMTI4CQkoNzw8NikKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfWF9TSElGVAkJOQkvKiAzIGJpdHMgd2lkZSAqLworIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9ZX1NISUZUCQkxMgkvKiAzIGJpdHMgd2lkZSAqLworIwlkZWZpbmUgUjMwMF9HQl9TVVBFUl9USUxFX0EJCTAKKyMJZGVmaW5lIFIzMDBfR0JfU1VQRVJfVElMRV9CCQkoMTw8MTUpCisjCWRlZmluZSBSMzAwX0dCX1NVQlBJWEVMXzFfMTIJCTAKKyMJZGVmaW5lIFIzMDBfR0JfU1VCUElYRUxfMV8xNgkJKDE8PDE2KQorCisjZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFCTB4NDAyNAorCS8qIGVhY2ggb2YgdGhlIGZvbGxvd2luZyBpcyAyIGJpdHMgd2lkZSAqLworI2RlZmluZSBSMzAwX0dCX0ZJRk9fU0laRV8zMgkwCisjZGVmaW5lIFIzMDBfR0JfRklGT19TSVpFXzY0CTEKKyNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMTI4CTIKKyNkZWZpbmUgUjMwMF9HQl9GSUZPX1NJWkVfMjU2CTMKKyMJZGVmaW5lIFIzMDBfU0NfSUZJRk9fU0laRV9TSElGVAkwCisjCWRlZmluZSBSMzAwX1NDX1RaRklGT19TSVpFX1NISUZUCTIKKyMJZGVmaW5lIFIzMDBfU0NfQkZJRk9fU0laRV9TSElGVAk0CisKKyMJZGVmaW5lIFIzMDBfVVNfT0ZJRk9fU0laRV9TSElGVAkxMgorIwlkZWZpbmUgUjMwMF9VU19XRklGT19TSVpFX1NISUZUCTE0CisJLyogdGhlIGZvbGxvd2luZyB1c2UgdGhlIHNhbWUgY29uc3RhbnRzIGFzIGFib3ZlLCBidXQgbWVhbmluZyBpcworCSAgIGlzIHRpbWVzIDIgKGkuZS4gaW5zdGVhZCBvZiAzMiB3b3JkcyBpdCBtZWFucyA2NCAqLworIwlkZWZpbmUgUjMwMF9SU19URklGT19TSVpFX1NISUZUCTYKKyMJZGVmaW5lIFIzMDBfUlNfQ0ZJRk9fU0laRV9TSElGVAk4CisjCWRlZmluZSBSMzAwX1VTX1JBTV9TSVpFX1NISUZUCQkxMAorCS8qIHdhdGVybWFya3MsIDMgYml0cyB3aWRlICovCisjCWRlZmluZSBSMzAwX1JTX0hJR0hXQVRFUl9DT0xfU0hJRlQJMTYKKyMJZGVmaW5lIFIzMDBfUlNfSElHSFdBVEVSX1RFWF9TSElGVAkxOQorIwlkZWZpbmUgUjMwMF9PRklGT19ISUdIV0FURVJfU0hJRlQJMjIJLyogdHdvIGJpdHMgb25seSAqLworIwlkZWZpbmUgUjMwMF9DVUJFX0ZJRk9fSElHSFdBVEVSX0NPTF9TSElGVAkyNAorCisjZGVmaW5lIFIzMDBfR0JfU0VMRUNUCTB4NDAxQworIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MwQQkJMAorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MxQQkJMQorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MyQQkJMgorIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUX0MzQQkJMworIwlkZWZpbmUgUjMwMF9HQl9GT0dfU0VMRUNUXzFfMV9XCTQKKyMJZGVmaW5lIFIzMDBfR0JfRk9HX1NFTEVDVF9aCQk1CisjCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF9aCQkwCisjCWRlZmluZSBSMzAwX0dCX0RFUFRIX1NFTEVDVF8xXzFfVwkoMTw8MykKKyMJZGVmaW5lIFIzMDBfR0JfV19TRUxFQ1RfMV9XCQkwCisjCWRlZmluZSBSMzAwX0dCX1dfU0VMRUNUXzEJCSgxPDw0KQorCisjZGVmaW5lIFIzMDBfR0JfQUFfQ09ORklHCQkweDQwMjAKKyMJZGVmaW5lIFIzMDBfQUFfRElTQUJMRQkJCTB4MDAKKyMJZGVmaW5lIFIzMDBfQUFfRU5BQkxFCQkJMHgwMQorIwlkZWZpbmUgUjMwMF9BQV9TVUJTQU1QTEVTXzIJCTAKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU18zCQkoMTw8MSkKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU180CQkoMjw8MSkKKyMJZGVmaW5lIFIzMDBfQUFfU1VCU0FNUExFU182CQkoMzw8MSkKKworLyogZ2FwICovCisKKy8qIFplcm8gdG8gZmx1c2ggY2FjaGVzLiAqLworI2RlZmluZSBSMzAwX1RYX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAweDQxMDAKKyNkZWZpbmUgUjMwMF9UWF9GTFVTSCAgICAgICAgICAgICAgICAgICAgICAgMHgwCisKKy8qIFRoZSB1cHBlciBlbmFibGUgYml0cyBhcmUgZ3Vlc3NlZCwgYmFzZWQgb24gZmdscnggcmVwb3J0ZWQgbGltaXRzLiAqLworI2RlZmluZSBSMzAwX1RYX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAweDQxMDQKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMSAgICAgICAgICAgICAgICAgICgxIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV8yICAgICAgICAgICAgICAgICAgKDEgPDwgMikKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzMgICAgICAgICAgICAgICAgICAoMSA8PCAzKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNCAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV81ICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzYgICAgICAgICAgICAgICAgICAoMSA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfNyAgICAgICAgICAgICAgICAgICgxIDw8IDcpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0VOQUJMRV84ICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfRU5BQkxFXzkgICAgICAgICAgICAgICAgICAoMSA8PCA5KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTEgICAgICAgICAgICAgICAgICgxIDw8IDExKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTIgICAgICAgICAgICAgICAgICgxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTMgICAgICAgICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTQgICAgICAgICAgICAgICAgICgxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9FTkFCTEVfMTUgICAgICAgICAgICAgICAgICgxIDw8IDE1KQorCisvKiBUaGUgcG9pbnRzaXplIGlzIGdpdmVuIGluIG11bHRpcGxlcyBvZiA2LiBUaGUgcG9pbnRzaXplIGNhbiBiZQorICogZW5vcm1vdXM6IENsZWFyKCkgcmVuZGVycyBhIHNpbmdsZSBwb2ludCB0aGF0IGZpbGxzIHRoZSBlbnRpcmUKKyAqIGZyYW1lYnVmZmVyLgorICovCisjZGVmaW5lIFIzMDBfUkVfUE9JTlRTSVpFICAgICAgICAgICAgICAgICAgIDB4NDIxQworIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfWV9TSElGVCAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1lfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1BPSU5UU0laRV9YX1NISUZUICAgICAgICAgICAgMTYKKyMgICAgICAgZGVmaW5lIFIzMDBfUE9JTlRTSVpFX1hfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDE2KSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9QT0lOVFNJWkVfTUFYICAgICAgICAgICAgIChSMzAwX1BPSU5UU0laRV9ZX01BU0sgLyA2KQorCisvKiBUaGUgbGluZSB3aWR0aCBpcyBnaXZlbiBpbiBtdWx0aXBsZXMgb2YgNi4KKyAqIEluIGRlZmF1bHQgbW9kZSBsaW5lcyBhcmUgY2xhc3NpZmllZCBhcyB2ZXJ0aWNhbCBsaW5lcy4KKyAqIEhPOiBob3Jpem9udGFsCisgKiBWRTogdmVydGljYWwgb3IgaG9yaXpvbnRhbAorICogSE8gJiBWRTogbm8gY2xhc3NpZmljYXRpb24KKyAqLworI2RlZmluZSBSMzAwX1JFX0xJTkVfQ05UICAgICAgICAgICAgICAgICAgICAgIDB4NDIzNAorIyAgICAgICBkZWZpbmUgUjMwMF9MSU5FU0laRV9TSElGVCAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORVNJWkVfTUFTSyAgICAgICAgICAgICAoMHhGRkZGIDw8IDApIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0xJTkVTSVpFX01BWCAgICAgICAgICAgICAoUjMwMF9MSU5FU0laRV9NQVNLIC8gNikKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfSE8gICAgICAgICAgICAgICAoMSA8PCAxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfTElORV9DTlRfVkUgICAgICAgICAgICAgICAoMSA8PCAxNykKKworLyogU29tZSBzb3J0IG9mIHNjYWxlIG9yIGNsYW1wIHZhbHVlIGZvciB0ZXhjb29yZGxlc3MgdGV4dHVyZXMuICovCisjZGVmaW5lIFIzMDBfUkVfVU5LNDIzOCAgICAgICAgICAgICAgICAgICAgICAgMHg0MjM4CisKKy8qIFNvbWV0aGluZyBzaGFkZSByZWxhdGVkICovCisjZGVmaW5lIFIzMDBfUkVfU0hBREUgICAgICAgICAgICAgICAgICAgICAgICAgMHg0Mjc0CisKKyNkZWZpbmUgUjMwMF9SRV9TSEFERV9NT0RFTCAgICAgICAgICAgICAgICAgICAweDQyNzgKKyMJZGVmaW5lIFIzMDBfUkVfU0hBREVfTU9ERUxfU01PT1RIICAgICAweDNhYWFhCisjCWRlZmluZSBSMzAwX1JFX1NIQURFX01PREVMX0ZMQVQgICAgICAgMHgzOTU5NQorCisvKiBEYW5nZXJvdXMgKi8KKyNkZWZpbmUgUjMwMF9SRV9QT0xZR09OX01PREUgICAgICAgICAgICAgICAgICAweDQyODgKKyMJZGVmaW5lIFIzMDBfUE1fRU5BQkxFRCAgICAgICAgICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9QT0lOVCAgICAgICAgICAgICgwIDw8IDApCisjCWRlZmluZSBSMzAwX1BNX0JBQ0tfUE9JTlQgICAgICAgICAgICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfUE1fRlJPTlRfTElORSAgICAgICAgICAgICAoMSA8PCA0KQorIwlkZWZpbmUgUjMwMF9QTV9GUk9OVF9GSUxMICAgICAgICAgICAgICgxIDw8IDUpCisjCWRlZmluZSBSMzAwX1BNX0JBQ0tfTElORSAgICAgICAgICAgICAgKDEgPDwgNykKKyMJZGVmaW5lIFIzMDBfUE1fQkFDS19GSUxMICAgICAgICAgICAgICAoMSA8PCA4KQorCisvKiBGb2cgcGFyYW1ldGVycyAqLworI2RlZmluZSBSMzAwX1JFX0ZPR19TQ0FMRSAgICAgICAgICAgICAgICAgICAgIDB4NDI5NAorI2RlZmluZSBSMzAwX1JFX0ZPR19TVEFSVCAgICAgICAgICAgICAgICAgICAgIDB4NDI5OAorCisvKiBOb3Qgc3VyZSB3aHkgdGhlcmUgYXJlIGR1cGxpY2F0ZSBvZiBmYWN0b3IgYW5kIGNvbnN0YW50IHZhbHVlcy4KKyAqIE15IGJlc3QgZ3Vlc3Mgc28gZmFyIGlzIHRoYXQgdGhlcmUgYXJlIHNlcGFyYXRlIHpiaWFzZXMgZm9yIHRlc3QgYW5kIHdyaXRlLgorICogT3JkZXJpbmcgbWlnaHQgYmUgd3JvbmcuCisgKiBTb21lIG9mIHRoZSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IGZnbCBoYXMgYSBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBvZiB6YmlhcworICogdmlhIHBpeGVsIHNoYWRlcnMuCisgKi8KKyNkZWZpbmUgUjMwMF9SRV9aQklBU19DTlRMICAgICAgICAgICAgICAgICAgICAweDQyQTAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQTQKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19UX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQTgKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0ZBQ1RPUiAgICAgICAgICAgICAgICAweDQyQUMKKyNkZWZpbmUgUjMwMF9SRV9aQklBU19XX0NPTlNUQU5UICAgICAgICAgICAgICAweDQyQjAKKworLyogVGhpcyByZWdpc3RlciBuZWVkcyB0byBiZSBzZXQgdG8gKDE8PDEpIGZvciBSVjM1MCB0byBjb3JyZWN0bHkKKyAqIHBlcmZvcm0gZGVwdGggdGVzdCAoc2VlIC0tdmItdHJpYW5nbGVzIGluIHIzMDBfZGVtbykKKyAqIERvbid0IGtub3cgYWJvdXQgb3RoZXIgY2hpcHMuIC0gVmxhZGltaXIKKyAqIFRoaXMgaXMgc2V0IHRvIDMgd2hlbiBHTF9QT0xZR09OX09GRlNFVF9GSUxMIGlzIG9uLgorICogTXkgZ3Vlc3MgaXMgdGhhdCB0aGVyZSBhcmUgdHdvIGJpdHMgZm9yIGVhY2ggemJpYXMgcHJpbWl0aXZlCisgKiAoRklMTCwgTElORSwgUE9JTlQpLgorICogIE9uZSB0byBlbmFibGUgZGVwdGggdGVzdCBhbmQgb25lIGZvciBkZXB0aCB3cml0ZS4KKyAqIFlldCB0aGlzIGRvZXNudCBleHBsYWluIHdoeSBkZXB0aCB3cml0ZXMgd29yayAuLi4KKyAqLworI2RlZmluZSBSMzAwX1JFX09DQ0xVU0lPTl9DTlRMCQkgICAgMHg0MkI0CisjCWRlZmluZSBSMzAwX09DQ0xVU0lPTl9PTgkJKDE8PDEpCisKKyNkZWZpbmUgUjMwMF9SRV9DVUxMX0NOVEwgICAgICAgICAgICAgICAgICAgMHg0MkI4CisjICAgICAgIGRlZmluZSBSMzAwX0NVTExfRlJPTlQgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ1VMTF9CQUNLICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUk9OVF9GQUNFX0NDVyAgICAgICAgICAgICAgICgwIDw8IDIpCisjICAgICAgIGRlZmluZSBSMzAwX0ZST05UX0ZBQ0VfQ1cgICAgICAgICAgICAgICAgKDEgPDwgMikKKworCisvKiBCRUdJTjogUmFzdGVyaXphdGlvbiAvIEludGVycG9sYXRvcnMgLSBtYW55IGd1ZXNzZXMgKi8KKworLyogMF9VTktOT1dOXzE4IGhhcyBhbHdheXMgYmVlbiBzZXQgZXhjZXB0IGZvciBjbGVhciBvcGVyYXRpb25zLgorICogVENfQ05UIGlzIHRoZSBudW1iZXIgb2YgaW5jb21pbmcgdGV4dHVyZSBjb29yZGluYXRlIHNldHMgKGkuZS4gaXQgZGVwZW5kcworICogb24gdGhlIHZlcnRleCBwcm9ncmFtLCAqbm90KiB0aGUgZnJhZ21lbnQgcHJvZ3JhbSkKKyAqLworI2RlZmluZSBSMzAwX1JTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgICAweDQzMDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfQ05UTF9UQ19DTlRfU0hJRlQgICAgICAgICAyCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0NOVExfVENfQ05UX01BU0sgICAgICAgICAgKDcgPDwgMikKKwkvKiBudW1iZXIgb2YgY29sb3IgaW50ZXJwb2xhdG9ycyB1c2VkICovCisjCWRlZmluZSBSMzAwX1JTX0NOVExfQ0lfQ05UX1NISUZUICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9SU19DTlRMXzBfVU5LTk9XTl8xOCAgICAgICAgICgxIDw8IDE4KQorCS8qIEd1ZXNzOiBSU19DTlRMXzEgaG9sZHMgdGhlIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgUlNfUk9VVEVfbgorCSAgIHJlZ2lzdGVyLiAqLworI2RlZmluZSBSMzAwX1JTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgICAweDQzMDQKKworLyogZ2FwICovCisKKy8qIE9ubHkgdXNlZCBmb3IgdGV4dHVyZSBjb29yZGluYXRlcy4KKyAqIFVzZSB0aGUgc291cmNlIGZpZWxkIHRvIHJvdXRlIHRleHR1cmUgY29vcmRpbmF0ZSBpbnB1dCBmcm9tIHRoZQorICogdmVydGV4IHByb2dyYW0gdG8gdGhlIGRlc2lyZWQgaW50ZXJwb2xhdG9yLiBOb3RlIHRoYXQgdGhlIHNvdXJjZQorICogZmllbGQgaXMgcmVsYXRpdmUgdG8gdGhlIG91dHB1dHMgdGhlIHZlcnRleCBwcm9ncmFtICphY3R1YWxseSoKKyAqIHdyaXRlcy4gSWYgYSB2ZXJ0ZXggcHJvZ3JhbSBvbmx5IHdyaXRlcyB0ZXhjb29yZFsxXSwgdGhpcyB3aWxsCisgKiBiZSBzb3VyY2UgaW5kZXggMC4KKyAqIFNldCBJTlRFUlBfVVNFRCBvbiBhbGwgaW50ZXJwb2xhdG9ycyB0aGF0IHByb2R1Y2UgZGF0YSB1c2VkIGJ5CisgKiB0aGUgZnJhZ21lbnQgcHJvZ3JhbS4gSU5URVJQX1VTRUQgbG9va3MgbGlrZSBhIHN3aXp6bGluZyBtYXNrLAorICogYnV0IEkgaGF2ZW4ndCBzZWVuIGl0IHVzZWQgdGhhdCB3YXkuCisgKgorICogTm90ZTogVGhlIF9VTktOT1dOIGNvbnN0YW50cyBhcmUgYWx3YXlzIHNldCBpbiB0aGVpciByZXNwZWN0aXZlCisgKiByZWdpc3Rlci4gSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgbmVjZXNzYXJ5LgorICovCisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzAgICAgICAgICAgICAgICAgICAgIDB4NDMxMAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF8xICAgICAgICAgICAgICAgICAgICAweDQzMTQKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQXzFfVU5LTk9XTiAgICAgICAgICAweDQwCisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzIgICAgICAgICAgICAgICAgICAgIDB4NDMxOAorIyAgICAgICBkZWZpbmUgUjMwMF9SU19JTlRFUlBfMl9VTktOT1dOICAgICAgICAgIDB4ODAKKyNkZWZpbmUgUjMwMF9SU19JTlRFUlBfMyAgICAgICAgICAgICAgICAgICAgMHg0MzFDCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF8zX1VOS05PV04gICAgICAgICAgMHhDMAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF80ICAgICAgICAgICAgICAgICAgICAweDQzMjAKKyNkZWZpbmUgUjMwMF9SU19JTlRFUlBfNSAgICAgICAgICAgICAgICAgICAgMHg0MzI0CisjZGVmaW5lIFIzMDBfUlNfSU5URVJQXzYgICAgICAgICAgICAgICAgICAgIDB4NDMyOAorI2RlZmluZSBSMzAwX1JTX0lOVEVSUF83ICAgICAgICAgICAgICAgICAgICAweDQzMkMKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1NSQ19TSElGVCAgICAgICAgICAyCisjICAgICAgIGRlZmluZSBSMzAwX1JTX0lOVEVSUF9TUkNfTUFTSyAgICAgICAgICAgKDcgPDwgMikKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfSU5URVJQX1VTRUQgICAgICAgICAgICAgICAweDAwRDEwMDAwCisKKy8qIFRoZXNlIERXT1JEcyBjb250cm9sIGhvdyB2ZXJ0ZXggZGF0YSBpcyByb3V0ZWQgaW50byBmcmFnbWVudCBwcm9ncmFtCisgKiByZWdpc3RlcnMsIGFmdGVyIGludGVycG9sYXRvcnMuCisgKi8KKyNkZWZpbmUgUjMwMF9SU19ST1VURV8wICAgICAgICAgICAgICAgICAgICAgMHg0MzMwCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfMSAgICAgICAgICAgICAgICAgICAgIDB4NDMzNAorI2RlZmluZSBSMzAwX1JTX1JPVVRFXzIgICAgICAgICAgICAgICAgICAgICAweDQzMzgKKyNkZWZpbmUgUjMwMF9SU19ST1VURV8zICAgICAgICAgICAgICAgICAgICAgMHg0MzNDIC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfNCAgICAgICAgICAgICAgICAgICAgIDB4NDM0MCAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JTX1JPVVRFXzUgICAgICAgICAgICAgICAgICAgICAweDQzNDQgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SU19ST1VURV82ICAgICAgICAgICAgICAgICAgICAgMHg0MzQ4IC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUlNfUk9VVEVfNyAgICAgICAgICAgICAgICAgICAgIDB4NDM0QyAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF8xICAgICAxCisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfMiAgICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzMgICAgIDMKKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF80ICAgICA0CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX1NPVVJDRV9JTlRFUlBfNSAgICAgNSAvKiBHVUVTUyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV9TT1VSQ0VfSU5URVJQXzYgICAgIDYgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfU09VUkNFX0lOVEVSUF83ICAgICA3IC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0VOQUJMRSAgICAgICAgICAgICAgKDEgPDwgMykgLyogR1VFU1MgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfUlNfUk9VVEVfREVTVF9TSElGVCAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFX0RFU1RfTUFTSyAgICAgICAgICAgKDMxIDw8IDYpIC8qIEdVRVNTICovCisKKy8qIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGNvbG9yOiBXaGVuIHRoZSBmcmFnbWVudCBwcm9ncmFtIHVzZXMgY29sb3IsCisgKiB0aGUgUk9VVEVfMF9DT0xPUiBiaXQgaXMgc2V0IGFuZCBST1VURV8wX0NPTE9SX0RFU1QgY29udGFpbnMgdGhlCisgKiBjb2xvciByZWdpc3RlciBpbmRleC4KKyAqCisgKiBBcHBlcmVudGx5IHlvdSBtYXkgc2V0IHRoZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1IgYml0LCBidXQgbm90IHByb3ZpZGUgYW55CisgKiBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVCB2YWx1ZTsgdGhpcyBzZXR1cCBpcyB1c2VkIGZvciBjbGVhcmluZyB0aGUgc3RhdGUuCisgKiBTZWUgcjMwMF9pb2N0bC5jOnIzMDBFbWl0Q2xlYXJTdGF0ZS4gSSdtIG5vdCBzdXJlIGlmIHRoaXMgc2V0dXAgaXMgc3RyaWN0bHkKKyAqIGNvcnJlY3Qgb3Igbm90LiAtIE9saXZlci4KKyAqLworIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SICAgICAgICAgICAgICgxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9SU19ST1VURV8wX0NPTE9SX0RFU1RfU0hJRlQgIDE3CisjICAgICAgIGRlZmluZSBSMzAwX1JTX1JPVVRFXzBfQ09MT1JfREVTVF9NQVNLICAgKDMxIDw8IDE3KSAvKiBHVUVTUyAqLworLyogQXMgYWJvdmUsIGJ1dCBmb3Igc2Vjb25kYXJ5IGNvbG9yICovCisjCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX0NPTE9SMSAgICAgICAgICAgICgxIDw8IDE0KQorIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9TSElGVCAxNworIwkJZGVmaW5lIFIzMDBfUlNfUk9VVEVfMV9DT0xPUjFfREVTVF9NQVNLICAoMzEgPDwgMTcpCisjCQlkZWZpbmUgUjMwMF9SU19ST1VURV8xX1VOS05PV04xMSAgICAgICAgICgxIDw8IDExKQorLyogRU5EOiBSYXN0ZXJpemF0aW9uIC8gSW50ZXJwb2xhdG9ycyAtIG1hbnkgZ3Vlc3NlcyAqLworCisvKiBIaWVyYXJjaGljYWwgWiBFbmFibGUgKi8KKyNkZWZpbmUgUjMwMF9TQ19IWVBFUlogICAgICAgICAgICAgICAgICAgMHg0M2E0CisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9ESVNBQkxFICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfRU5BQkxFICAgICAgKDEgPDwgMCkKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX01JTiAgICAgICAgICgwIDw8IDEpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9NQVggICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzI1NiAgICAgKDAgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8xMjggICAgICgxIDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9BREpfNjQgICAgICAoMiA8PCAyKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzMyICAgICAgKDMgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8xNiAgICAgICg0IDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9BREpfOCAgICAgICAoNSA8PCAyKQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfQURKXzQgICAgICAgKDYgPDwgMikKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0FESl8yICAgICAgICg3IDw8IDIpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9IWl9aME1JTl9OTyAoMCA8PCA1KQorIwlkZWZpbmUgUjMwMF9TQ19IWVBFUlpfSFpfWjBNSU4gICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfU0NfSFlQRVJaX0haX1owTUFYX05PICgwIDw8IDYpCisjCWRlZmluZSBSMzAwX1NDX0hZUEVSWl9IWl9aME1BWCAgICAoMSA8PCA2KQorCisjZGVmaW5lIFIzMDBfU0NfRURHRVJVTEUgICAgICAgICAgICAgICAgIDB4NDNhOAorCisvKiBCRUdJTjogU2Npc3NvcnMgYW5kIGNsaXByZWN0cyAqLworCisvKiBUaGVyZSBhcmUgZm91ciBjbGlwcGluZyByZWN0YW5nbGVzLiBUaGVpciBjb3JuZXIgY29vcmRpbmF0ZXMgYXJlIGluY2x1c2l2ZS4KKyAqIEV2ZXJ5IHBpeGVsIGlzIGFzc2lnbmVkIGEgbnVtYmVyIGZyb20gMCBhbmQgMTUgYnkgc2V0dGluZyBiaXRzIDAtMyBkZXBlbmRpbmcKKyAqIG9uIHdoZXRoZXIgdGhlIHBpeGVsIGlzIGluc2lkZSBjbGlwcmVjdHMgMC0zLCByZXNwZWN0aXZlbHkuIEZvciBleGFtcGxlLAorICogaWYgYSBwaXhlbCBpcyBpbnNpZGUgY2xpcHJlY3RzIDAgYW5kIDEsIGJ1dCBvdXRzaWRlIDIgYW5kIDMsIGl0IGlzIGFzc2lnbmVkCisgKiB0aGUgbnVtYmVyIDMgKGJpbmFyeSAwMDExKS4KKyAqIElmZiB0aGUgYml0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBpeGVsJ3MgbnVtYmVyIGluIFJFX0NMSVBSRUNUX0NOVEwgaXMgc2V0LAorICogdGhlIHBpeGVsIGlzIHJhc3Rlcml6ZWQuCisgKgorICogSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlcmUgaXMgYSBzY2lzc29ycyByZWN0YW5nbGUuIE9ubHkgcGl4ZWxzIGluc2lkZSB0aGUKKyAqIHNjaXNzb3JzIHJlY3RhbmdsZSBhcmUgZHJhd24uIChjb29yZGluYXRlcyBhcmUgaW5jbHVzaXZlKQorICoKKyAqIEZvciBzb21lIHJlYXNvbiwgdGhlIHRvcC1sZWZ0IGNvcm5lciBvZiB0aGUgZnJhbWVidWZmZXIgaXMgYXQgKDE0NDAsIDE0NDApCisgKiBmb3IgdGhlIHB1cnBvc2Ugb2YgY2xpcHBpbmcgYW5kIHNjaXNzb3JzLgorICovCisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMCAgICAgICAgICAgICAgIDB4NDNCMAorI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzAgICAgICAgICAgICAgICAweDQzQjQKKyNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9UTF8xICAgICAgICAgICAgICAgMHg0M0I4CisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQlJfMSAgICAgICAgICAgICAgIDB4NDNCQworI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX1RMXzIgICAgICAgICAgICAgICAweDQzQzAKKyNkZWZpbmUgUjMwMF9SRV9DTElQUkVDVF9CUl8yICAgICAgICAgICAgICAgMHg0M0M0CisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfVExfMyAgICAgICAgICAgICAgIDB4NDNDOAorI2RlZmluZSBSMzAwX1JFX0NMSVBSRUNUX0JSXzMgICAgICAgICAgICAgICAweDQzQ0MKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX01BU0sgICAgICAgICAgICAgICAgMHgxRkZGCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBSRUNUX1hfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUFJFQ1RfWV9TSElGVCAgICAgICAgICAgICAxMworIyAgICAgICBkZWZpbmUgUjMwMF9DTElQUkVDVF9ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCisjZGVmaW5lIFIzMDBfUkVfQ0xJUFJFQ1RfQ05UTCAgICAgICAgICAgICAgIDB4NDNEMAorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQX09VVCAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMCAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8xICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzEwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8yMCAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzIxICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMjEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKKyMgICAgICAgZGVmaW5lIFIzMDBfQ0xJUF8zICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9DTElQXzMwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzEwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIwICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCisjICAgICAgIGRlZmluZSBSMzAwX0NMSVBfMzIxMCAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCisKKy8qIGdhcCAqLworCisjZGVmaW5lIFIzMDBfUkVfU0NJU1NPUlNfVEwgICAgICAgICAgICAgICAgIDB4NDNFMAorI2RlZmluZSBSMzAwX1JFX1NDSVNTT1JTX0JSICAgICAgICAgICAgICAgICAweDQzRTQKKyMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfT0ZGU0VUICAgICAgICAgICAgICAxNDQwCisjICAgICAgIGRlZmluZSBSMzAwX1NDSVNTT1JTX1hfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19YX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfU0NJU1NPUlNfWV9TSElGVCAgICAgICAgICAgICAxMworIyAgICAgICBkZWZpbmUgUjMwMF9TQ0lTU09SU19ZX01BU0sgICAgICAgICAgICAgICgweDFGRkYgPDwgMTMpCisvKiBFTkQ6IFNjaXNzb3JzIGFuZCBjbGlwcmVjdHMgKi8KKworLyogQkVHSU46IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLworCisvKgorICogVGhlIHRleHR1cmUgc3BlY2lmaWNhdGlvbiBkd29yZHMgYXJlIGdyb3VwZWQgYnkgbWVhbmluZyBhbmQgbm90IGJ5IHRleHR1cmUKKyAqIHVuaXQuIFRoaXMgbWVhbnMgdGhhdCBlLmcuIHRoZSBvZmZzZXQgZm9yIHRleHR1cmUgaW1hZ2UgdW5pdCBOIGlzIGZvdW5kIGluCisgKiByZWdpc3RlciBUWF9PRkZTRVRfMCArICg0Kk4pCisgKi8KKyNkZWZpbmUgUjMwMF9UWF9GSUxURVJfMCAgICAgICAgICAgICAgICAgICAgMHg0NDAwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1JFUEVBVCAgICAgICAgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NSVJST1JFRCAgICAgICAgICAgICAgICAgIDEKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfQ0xBTVAgICAgICAgICAgICAgICAgICAgICA0CisjICAgICAgIGRlZmluZSBSMzAwX1RYX0NMQU1QX1RPX0VER0UgICAgICAgICAgICAgMgorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9DTEFNUF9UT19CT1JERVIgICAgICAgICAgIDYKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9TX1NISUZUICAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfU19NQVNLICAgICAgICAgICAgICAgKDcgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9UX1NISUZUICAgICAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfVF9NQVNLICAgICAgICAgICAgICAgKDcgPDwgMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfV1JBUF9RX1NISUZUICAgICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dSQVBfUV9NQVNLICAgICAgICAgICAgICAgKDcgPDwgNikKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFHX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCA5KQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQUdfRklMVEVSX0xJTkVBUiAgICAgICAgICgyIDw8IDkpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX01BR19GSUxURVJfTUFTSyAgICAgICAgICAgKDMgPDwgOSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUICAgICAgICAoMSA8PCAxMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVIgICAgICAgICAoMiA8PCAxMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9ORUFSRVNUX01JUF9ORUFSRVNUICAgICAgICg1ICA8PCAgMTEpCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfTkVBUkVTVF9NSVBfTElORUFSICAgICAgICAoOSAgPDwgIDExKQorIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0xJTkVBUl9NSVBfTkVBUkVTVCAgICAgICAgKDYgIDw8ICAxMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9MSU5FQVJfTUlQX0xJTkVBUiAgICAgICAgICgxMCA8PCAgMTEpCisKKy8qIE5PVEU6IE5FQVJFU1QgZG9lc250IHNlZW0gdG8gZXhpc3QuCisgKiBJbSBub3Qgc2V0aW5nIE1BR19GSUxURVJfTUFTSyBhbmQgKDMgPDwgMTEpIG9uIGZvciBhbGwKKyAqIGFuaXNvdHJvcHkgbW9kZXMgYmVjYXVzZSB0aGF0IHdvdWxkIHZvaWQgc2VsZWN0ZWQgbWFnIGZpbHRlcgorICovCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVCAgICAgICAgICAgICAoMCA8PCAxMykKKyMJZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9BTklTT19MSU5FQVIgICAgICAgICAgICAgICgwIDw8IDEzKQorIwlkZWZpbmUgUjMwMF9UWF9NSU5fRklMVEVSX0FOSVNPX05FQVJFU1RfTUlQX05FQVJFU1QgKDEgPDwgMTMpCisjCWRlZmluZSBSMzAwX1RYX01JTl9GSUxURVJfQU5JU09fTkVBUkVTVF9NSVBfTElORUFSICAoMiA8PCAxMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUlOX0ZJTFRFUl9NQVNLICAgKCAoMTUgPDwgMTEpIHwgKDMgPDwgMTMpICkKKyMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzFfVE9fMSAgKDAgPDwgMjEpCisjCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18yX1RPXzEgICgyIDw8IDIxKQorIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fNF9UT18xICAoNCA8PCAyMSkKKyMJZGVmaW5lIFIzMDBfVFhfTUFYX0FOSVNPXzhfVE9fMSAgKDYgPDwgMjEpCisjCWRlZmluZSBSMzAwX1RYX01BWF9BTklTT18xNl9UT18xICg4IDw8IDIxKQorIwlkZWZpbmUgUjMwMF9UWF9NQVhfQU5JU09fTUFTSyAgICAoMTQgPDwgMjEpCisKKyNkZWZpbmUgUjMwMF9UWF9GSUxURVIxXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDQwCisjCWRlZmluZSBSMzAwX0NIUk9NQV9LRVlfTU9ERV9ESVNBQkxFICAgIDAKKyMJZGVmaW5lIFIzMDBfQ0hST01BX0tFWV9GT1JDRQkgICAgICAgMQorIwlkZWZpbmUgUjMwMF9DSFJPTUFfS0VZX0JMRU5EICAgICAgICAgICAyCisjCWRlZmluZSBSMzAwX01DX1JPVU5EX05PUk1BTCAgICAgICAgICAgICgwPDwyKQorIwlkZWZpbmUgUjMwMF9NQ19ST1VORF9NUEVHNCAgICAgICAgICAgICAoMTw8MikKKyMJZGVmaW5lIFIzMDBfTE9EX0JJQVNfTUFTSwkgICAgMHgxZmZmCisjCWRlZmluZSBSMzAwX0VER0VfQU5JU09fRURHRV9ESUFHICAgICAgICgwPDwxMykKKyMJZGVmaW5lIFIzMDBfRURHRV9BTklTT19FREdFX09OTFkgICAgICAgKDE8PDEzKQorIwlkZWZpbmUgUjMwMF9NQ19DT09SRF9UUlVOQ0FURV9ESVNBQkxFICAoMDw8MTQpCisjCWRlZmluZSBSMzAwX01DX0NPT1JEX1RSVU5DQVRFX01QRUcgICAgICgxPDwxNCkKKyMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfMF84ICAgICAgICAgICAgKDA8PDE1KQorIwlkZWZpbmUgUjMwMF9UWF9UUklfUEVSRl8xXzggICAgICAgICAgICAoMTw8MTUpCisjCWRlZmluZSBSMzAwX1RYX1RSSV9QRVJGXzFfNCAgICAgICAgICAgICgyPDwxNSkKKyMJZGVmaW5lIFIzMDBfVFhfVFJJX1BFUkZfM184ICAgICAgICAgICAgKDM8PDE1KQorIwlkZWZpbmUgUjMwMF9BTklTT19USFJFU0hPTERfTUFTSyAgICAgICAoNzw8MTcpCisKKyNkZWZpbmUgUjMwMF9UWF9TSVpFXzAgICAgICAgICAgICAgICAgICAgICAgMHg0NDgwCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1dJRFRITUFTS19TSElGVCAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9XSURUSE1BU0tfTUFTSyAgICAgICAgICAgICgyMDQ3IDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1RYX0hFSUdIVE1BU0tfU0hJRlQgICAgICAgICAgMTEKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfSEVJR0hUTUFTS19NQVNLICAgICAgICAgICAoMjA0NyA8PCAxMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfVU5LMjMgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhfTUFYX01JUF9MRVZFTF9TSElGVCAgICAgICAyNgorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9NQVhfTUlQX0xFVkVMX01BU0sgICAgICAgICgweGYgPDwgMjYpCisjICAgICAgIGRlZmluZSBSMzAwX1RYX1NJWkVfUFJPSkVDVEVEICAgICAgICAgICAgKDE8PDMwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWF9TSVpFX1RYUElUQ0hfRU4gICAgICAgICAgICgxPDwzMSkKKyNkZWZpbmUgUjMwMF9UWF9GT1JNQVRfMCAgICAgICAgICAgICAgICAgICAgMHg0NEMwCisJLyogVGhlIGludGVycHJldGF0aW9uIG9mIHRoZSBmb3JtYXQgd29yZCBieSBXbGFkaW1pciB2YW4gZGVyIExhYW4gKi8KKwkvKiBUaGUgWCwgWSwgWiBhbmQgVyByZWZlciB0byB0aGUgbGF5b3V0IG9mIHRoZSBjb21wb25lbnRzLgorCSAgIFRoZXkgYXJlIGdpdmVuIG1lYW5pbmdzIGFzIFIsIEcsIEIgYW5kIEFscGhhIGJ5IHRoZSBzd2l6emxlCisJICAgc3BlY2lmaWNhdGlvbiAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWDgJCSAgICAweDAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gxNgkJICAgIDB4MQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTRYNAkJICAgIDB4MgorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWThYOAkJICAgIDB4MworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWTE2WDE2CQkgICAgMHg0CisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aM1kzWDIJCSAgICAweDUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1o1WTZYNQkJICAgIDB4NgorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfWjZZNVg1CQkgICAgMHg3CisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9aMTFZMTFYMTAJCSAgICAweDgKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oxMFkxMVgxMQkJICAgIDB4OQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzRaNFk0WDQJCSAgICAweEEKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cxWjVZNVg1CQkgICAgMHhCCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9XOFo4WThYOAkJICAgIDB4QworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzJaMTBZMTBYMTAJICAgIDB4RAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfVzE2WjE2WTE2WDE2CSAgICAweEUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDEJCSAgICAweEYKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0RYVDMJCSAgICAweDEwCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9EWFQ1CQkgICAgMHgxMQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRDNETUZUX0N4VjhVOAkgICAgMHgxMiAgICAgLyogbm8gc3dpenpsZSAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQThSOEc4QjgJCSAgICAweDEzICAgICAvKiBubyBzd2l6emxlICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9COEc4X0I4RzgJCSAgICAweDE0ICAgICAvKiBubyBzd2l6emxlICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9HOFI4X0c4QjgJCSAgICAweDE1ICAgICAvKiBubyBzd2l6emxlICovCisJLyogMHgxNiAtIHNvbWUgMTYgYml0IGdyZWVuIGZvcm1hdC4uID8/ICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9VTksyNQkJICAgKDEgPDwgMjUpIC8qIG5vIHN3aXp6bGUgKi8KKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NVQklDX01BUAkJICAgKDEgPDwgMjYpCisKKwkvKiBnYXAgKi8KKwkvKiBGbG9hdGluZyBwb2ludCBmb3JtYXRzICovCisJLyogTm90ZSAtIGhhcmR3YXJlIHN1cHBvcnRzIGJvdGggMTYgYW5kIDMyIGJpdCBmbG9hdGluZyBwb2ludCAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2CQkgICAgMHgxOAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfSTE2QTE2CQkgICAgMHgxOQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfRkxfUjE2RzE2QjE2QTE2CSAgICAweDFBCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzIJCSAgICAweDFCCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9JMzJBMzIJCSAgICAweDFDCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9GTF9SMzJHMzJCMzJBMzIJICAgIDB4MUQKKwkvKiBhbHBoYSBtb2RlcywgY29udmVuaWVuY2UgbW9zdGx5ICovCisJLyogaWYgeW91IGhhdmUgYWxwaGEsIHBpY2sgY29uc3RhbnQgYXBwcm9wcmlhdGUgdG8gdGhlCisJICAgbnVtYmVyIG9mIGNoYW5uZWxzICgxIGZvciBJOCwgMiBmb3IgSThBOCwgNCBmb3IgUjhHOEI4QTgsIGV0YyAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfMUNICQkgICAgMHgwMDAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FMUEhBXzJDSAkJICAgIDB4MjAwCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9BTFBIQV80Q0gJCSAgICAweDYwMAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQUxQSEFfTk9ORQkgICAgMHhBMDAKKwkvKiBTd2l6emxpbmcgKi8KKwkvKiBjb25zdGFudHMgKi8KKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1gJCTAKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1kJCTEKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1oJCTIKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1cJCTMKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1pFUk8JNAorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfT05FCTUKKwkvKiAyLjAqWiwgZXZlcnl0aGluZyBhYm92ZSAxLjAgaXMgc2V0IHRvIDAuMCAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ1VUX1oJNgorCS8qIDIuMCpXLCBldmVyeXRoaW5nIGFib3ZlIDEuMCBpcyBzZXQgdG8gMC4wICovCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DVVRfVwk3CisKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0JfU0hJRlQJMTgKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0dfU0hJRlQJMTUKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1JfU0hJRlQJMTIKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0FfU0hJRlQJOQorCS8qIENvbnZlbmllbmNlIG1hY3JvIHRvIHRha2UgY2FyZSBvZiBsYXlvdXQgYW5kIHN3aXp6bGluZyAqLworIwlkZWZpbmUgUjMwMF9FQVNZX1RYX0ZPUk1BVChCLCBHLCBSLCBBLCBGTVQpCSgJCVwKKwkJKChSMzAwX1RYX0ZPUk1BVF8jI0IpPDxSMzAwX1RYX0ZPUk1BVF9CX1NISUZUKQkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNHKTw8UjMwMF9UWF9GT1JNQVRfR19TSElGVCkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNSKTw8UjMwMF9UWF9GT1JNQVRfUl9TSElGVCkJXAorCQl8ICgoUjMwMF9UWF9GT1JNQVRfIyNBKTw8UjMwMF9UWF9GT1JNQVRfQV9TSElGVCkJXAorCQl8IChSMzAwX1RYX0ZPUk1BVF8jI0ZNVCkJCQkJXAorCQkpCisJLyogVGhlc2UgY2FuIGJlIE9SZWQgd2l0aCByZXN1bHQgb2YgUjMwMF9FQVNZX1RYX0ZPUk1BVCgpCisJICAgV2UgZG9uJ3QgcmVhbGx5IGtub3cgd2hhdCB0aGV5IGRvLiBUYWtlIHZhbHVlcyBmcm9tIGEKKyAgICAgICAgICAgY29uc3RhbnQgY29sb3IgPyAqLworIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfWAkJKDE8PDUpCisjCWRlZmluZSBSMzAwX1RYX0ZPUk1BVF9DT05TVF9ZCQkoMjw8NSkKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX0NPTlNUX1oJCSg0PDw1KQorIwlkZWZpbmUgUjMwMF9UWF9GT1JNQVRfQ09OU1RfVwkJKDg8PDUpCisKKyMJZGVmaW5lIFIzMDBfVFhfRk9STUFUX1lVVl9NT0RFCQkweDAwODAwMDAwCisKKyNkZWZpbmUgUjMwMF9UWF9QSVRDSF8wCQkJICAgIDB4NDUwMCAvKiBvYnZpb3VzIG1pc3NpbmcgaW4gZ2FwICovCisjZGVmaW5lIFIzMDBfVFhfT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgIDB4NDU0MAorCS8qIEJFR0lOOiBHdWVzcyBmcm9tIFIyMDAgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9OT19TV0FQICAgICAgICAgICAoMCA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fRU5ESUFOX0JZVEVfU1dBUCAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19FTkRJQU5fV09SRF9TV0FQICAgICAgICAgKDIgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX0VORElBTl9IQUxGRFdfU1dBUCAgICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9UWE9fTUFDUk9fVElMRSAgICAgICAgICAgICAgICgxIDw8IDIpCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19NSUNST19USUxFICAgICAgICAgICAgICAgKDEgPDwgMykKKyMgICAgICAgZGVmaW5lIFIzMDBfVFhPX09GRlNFVF9NQVNLICAgICAgICAgICAgICAweGZmZmZmZmUwCisjICAgICAgIGRlZmluZSBSMzAwX1RYT19PRkZTRVRfU0hJRlQgICAgICAgICAgICAgNQorCS8qIEVORDogR3Vlc3MgZnJvbSBSMjAwICovCisKKy8qIDMyIGJpdCBjaHJvbWEga2V5ICovCisjZGVmaW5lIFIzMDBfVFhfQ0hST01BX0tFWV8wICAgICAgICAgICAgICAgICAgICAgIDB4NDU4MAorLyogZmYwMGZmMDAgPT0geyAwLCAxLjAsIDAsIDEuMCB9ICovCisjZGVmaW5lIFIzMDBfVFhfQk9SREVSX0NPTE9SXzAgICAgICAgICAgICAgIDB4NDVDMAorCisvKiBFTkQ6IFRleHR1cmUgc3BlY2lmaWNhdGlvbiAqLworCisvKiBCRUdJTjogRnJhZ21lbnQgcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KKworLyogRnJhZ21lbnQgcHJvZ3JhbXMgYXJlIHdyaXR0ZW4gZGlyZWN0bHkgaW50byByZWdpc3RlciBzcGFjZS4KKyAqIFRoZXJlIGFyZSBzZXBhcmF0ZSBpbnN0cnVjdGlvbiBzdHJlYW1zIGZvciB0ZXh0dXJlIGluc3RydWN0aW9ucyBhbmQgQUxVCisgKiBpbnN0cnVjdGlvbnMuCisgKiBJbiBvcmRlciB0byBzeW5jaHJvbml6ZSB0aGVzZSBzdHJlYW1zLCB0aGUgcHJvZ3JhbSBpcyBkaXZpZGVkIGludG8gdXAKKyAqIHRvIDQgbm9kZXMuIEVhY2ggbm9kZSBiZWdpbnMgd2l0aCBhIG51bWJlciBvZiBURVggb3BlcmF0aW9ucywgZm9sbG93ZWQKKyAqIGJ5IGEgbnVtYmVyIG9mIEFMVSBvcGVyYXRpb25zLgorICogVGhlIGZpcnN0IG5vZGUgY2FuIGhhdmUgemVybyBURVggb3BzLCBhbGwgc3Vic2VxdWVudCBub2RlcyBtdXN0IGhhdmUgYXQKKyAqIGxlYXN0CisgKiBvbmUgVEVYIG9wcy4KKyAqIEFsbCBub2RlcyBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIEFMVSBvcC4KKyAqCisgKiBUaGUgaW5kZXggb2YgdGhlIGxhc3Qgbm9kZSBpcyBzdG9yZWQgaW4gUEZTX0NOVExfMDogQSB2YWx1ZSBvZiAwIG1lYW5zCisgKiAxIG5vZGUsIGEgdmFsdWUgb2YgMyBtZWFucyA0IG5vZGVzLgorICogVGhlIHRvdGFsIGFtb3VudCBvZiBpbnN0cnVjdGlvbnMgaXMgZGVmaW5lZCBpbiBQRlNfQ05UTF8yLiBUaGUgb2Zmc2V0cyBhcmUKKyAqIG9mZnNldHMgaW50byB0aGUgcmVzcGVjdGl2ZSBpbnN0cnVjdGlvbiBzdHJlYW1zLCB3aGlsZSAqX0VORCBwb2ludHMgdG8gdGhlCisgKiBsYXN0IGluc3RydWN0aW9uIHJlbGF0aXZlIHRvIHRoaXMgb2Zmc2V0LgorICovCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMCAgICAgICAgICAgICAgICAgICAgIDB4NDYwMAorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9MQVNUX05PREVTX1NISUZUICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfTEFTVF9OT0RFU19NQVNLICAgICAoMyA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9GSVJTVF9OT0RFX0hBU19URVggICgxIDw8IDMpCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMSAgICAgICAgICAgICAgICAgICAgIDB4NDYwNAorLyogVGhlcmUgaXMgYW4gdW5zaGlmdGVkIHZhbHVlIGhlcmUgd2hpY2ggaGFzIHNvIGZhciBhbHdheXMgYmVlbiBlcXVhbCB0byB0aGUKKyAqIGluZGV4IG9mIHRoZSBoaWdoZXN0IHVzZWQgdGVtcG9yYXJ5IHJlZ2lzdGVyLgorICovCisjZGVmaW5lIFIzMDBfUEZTX0NOVExfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYwOAorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfQ05UTF9BTFVfT0ZGU0VUX1NISUZUICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX09GRlNFVF9NQVNLICAgICAoNjMgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfQUxVX0VORF9TSElGVCAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX0FMVV9FTkRfTUFTSyAgICAgICAgKDYzIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9PRkZTRVRfU0hJRlQgICAgMTIKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX09GRlNFVF9NQVNLICAgICAoMzEgPDwgMTIpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19DTlRMX1RFWF9FTkRfU0hJRlQgICAgICAgMTgKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX0NOVExfVEVYX0VORF9NQVNLICAgICAgICAoMzEgPDwgMTgpIC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBOb2RlcyBhcmUgc3RvcmVkIGJhY2t3YXJkcy4gVGhlIGxhc3QgYWN0aXZlIG5vZGUgaXMgYWx3YXlzIHN0b3JlZCBpbgorICogUEZTX05PREVfMy4KKyAqIEV4YW1wbGU6IEluIGEgMi1ub2RlIHByb2dyYW0sIE5PREVfMCBhbmQgTk9ERV8xIGFyZSBzZXQgdG8gMC4gVGhlCisgKiBmaXJzdCBub2RlIGlzIHN0b3JlZCBpbiBOT0RFXzIsIHRoZSBzZWNvbmQgbm9kZSBpcyBzdG9yZWQgaW4gTk9ERV8zLgorICoKKyAqIE9mZnNldHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBtYXN0ZXIgb2Zmc2V0IGZyb20gUEZTX0NOVExfMi4KKyAqLworI2RlZmluZSBSMzAwX1BGU19OT0RFXzAgICAgICAgICAgICAgICAgICAgICAweDQ2MTAKKyNkZWZpbmUgUjMwMF9QRlNfTk9ERV8xICAgICAgICAgICAgICAgICAgICAgMHg0NjE0CisjZGVmaW5lIFIzMDBfUEZTX05PREVfMiAgICAgICAgICAgICAgICAgICAgIDB4NDYxOAorI2RlZmluZSBSMzAwX1BGU19OT0RFXzMgICAgICAgICAgICAgICAgICAgICAweDQ2MUMKKyMgICAgICAgZGVmaW5lIFIzMDBfUEZTX05PREVfQUxVX09GRlNFVF9TSElGVCAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9PRkZTRVRfTUFTSyAgICAgKDYzIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX0FMVV9FTkRfU0hJRlQgICAgICAgNgorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9BTFVfRU5EX01BU0sgICAgICAgICg2MyA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfT0ZGU0VUX1NISUZUICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9PRkZTRVRfTUFTSyAgICAgKDMxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9QRlNfTk9ERV9URVhfRU5EX1NISUZUICAgICAgIDE3CisjICAgICAgIGRlZmluZSBSMzAwX1BGU19OT0RFX1RFWF9FTkRfTUFTSyAgICAgICAgKDMxIDw8IDE3KQorIwkJZGVmaW5lIFIzMDBfUEZTX05PREVfT1VUUFVUX0NPTE9SICAgICAgICAoMSA8PCAyMikKKyMJCWRlZmluZSBSMzAwX1BGU19OT0RFX09VVFBVVF9ERVBUSCAgICAgICAgKDEgPDwgMjMpCisKKy8qIFRFWAorICogQXMgZmFyIGFzIEkgY2FuIHRlbGwsIHRleHR1cmUgaW5zdHJ1Y3Rpb25zIGNhbm5vdCB3cml0ZSBpbnRvIG91dHB1dAorICogcmVnaXN0ZXJzIGRpcmVjdGx5LiBBIHN1YnNlcXVlbnQgQUxVIGluc3RydWN0aW9uIGlzIGFsd2F5cyBuZWNlc3NhcnksCisgKiBldmVuIGlmIGl0J3MganVzdCBNQUQgbzAsIHIwLCAxLCAwCisgKi8KKyNkZWZpbmUgUjMwMF9QRlNfVEVYSV8wICAgICAgICAgICAgICAgICAgICAgMHg0NjIwCisjCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19TSElGVCAgICAgICAgICAgICAgMAorIwlkZWZpbmUgUjMwMF9GUElUWF9TUkNfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAwKQorCS8qIEdVRVNTICovCisjCWRlZmluZSBSMzAwX0ZQSVRYX1NSQ19DT05TVCAgICAgICAgICAgICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfRlBJVFhfRFNUX1NISUZUICAgICAgICAgICAgICA2CisjCWRlZmluZSBSMzAwX0ZQSVRYX0RTVF9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDYpCisjCWRlZmluZSBSMzAwX0ZQSVRYX0lNQUdFX1NISUZUICAgICAgICAgICAgMTEKKwkvKiBHVUVTUyBiYXNlZCBvbiBsYXlvdXQgYW5kIG5hdGl2ZSBsaW1pdHMgKi8KKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJVFhfSU1BR0VfTUFTSyAgICAgICAgICAgICAoMTUgPDwgMTEpCisvKiBVbnN1cmUgaWYgdGhlc2UgYXJlIG9wY29kZXMsIG9yIHNvbWUga2luZCBvZiBiaXRmaWVsZCwgYnV0IHRoaXMgaXMgaG93CisgKiB0aGV5IHdlcmUgc2V0IHdoZW4gSSBjaGVja2VkCisgKi8KKyMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX1NISUZUCQkxNQorIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVEVYCTEKKyMJCWRlZmluZSBSMzAwX0ZQSVRYX09QX0tJTAkyCisjCQlkZWZpbmUgUjMwMF9GUElUWF9PUF9UWFAJMworIwkJZGVmaW5lIFIzMDBfRlBJVFhfT1BfVFhCCTQKKyMJZGVmaW5lIFIzMDBfRlBJVFhfT1BDT0RFX01BU0sgICAgICAgICAgICg3IDw8IDE1KQorCisvKiBBTFUKKyAqIFRoZSBBTFUgaW5zdHJ1Y3Rpb25zIHJlZ2lzdGVyIGJsb2NrcyBhcmUgZW51bWVyYXRlZCBhY2NvcmRpbmcgdG8gdGhlIG9yZGVyCisgKiBpbiB3aGljaCBmZ2xyeC4gSSBhc3N1bWUgdGhlcmUgaXMgc3BhY2UgZm9yIDY0IGluc3RydWN0aW9ucywgc2luY2UKKyAqIGVhY2ggYmxvY2sgaGFzIHNwYWNlIGZvciBhIG1heGltdW0gb2YgNjQgRFdPUkRzLCBhbmQgdGhpcyBtYXRjaGVzIHJlcG9ydGVkCisgKiBuYXRpdmUgbGltaXRzLgorICoKKyAqIFRoZSBiYXNpYyBmdW5jdGlvbmFsIGJsb2NrIHNlZW1zIHRvIGJlIG9uZSBNQUQgZm9yIGVhY2ggY29sb3IgYW5kIGFscGhhLAorICogYW5kIGFuIGFkZGVyIHRoYXQgYWRkcyBhbGwgY29tcG9uZW50cyBhZnRlciB0aGUgTVVMLgorICogIC0gQURELCBNVUwsIE1BRCBldGMuOiB1c2UgTUFEIHdpdGggYXBwcm9wcmlhdGUgbmV1dHJhbCBvcGVyYW5kcworICogIC0gRFA0OiBVc2UgT1VUQ19EUDQsIE9VVEFfRFA0CisgKiAgLSBEUDM6IFVzZSBPVVRDX0RQMywgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCisgKiAgLSBEUEg6IFVzZSBPVVRDX0RQNCwgT1VUQV9EUDQsIGFwcHJvcHJpYXRlIGFscGhhIG9wZXJhbmRzCisgKiAgLSBDTVBIOiBJZiBBUkcyID4gMC41LCByZXR1cm4gQVJHMCwgZWxzZSByZXR1cm4gQVJHMQorICogIC0gQ01QOiBJZiBBUkcyIDwgMCwgcmV0dXJuIEFSRzEsIGVsc2UgcmV0dXJuIEFSRzAKKyAqICAtIEZMUjogdXNlIEZSQytNQUQKKyAqICAtIFhQRDogdXNlIE1BRCtNQUQKKyAqICAtIFNHRSwgU0xUOiB1c2UgTUFEK0NNUAorICogIC0gUlNROiB1c2UgQUJTIG1vZGlmaWVyIGZvciBhcmd1bWVudAorICogIC0gVXNlIE9VVENfUkVQTF9BTFBIQSB0byB3cml0ZSByZXN1bHRzIG9mIGFuIGFscGhhLW9ubHkgb3BlcmF0aW9uCisgKiAgICAoZS5nLiBSQ1ApIGludG8gY29sb3IgcmVnaXN0ZXIKKyAqICAtIGFwcGFyZW50bHksIHRoZXJlJ3Mgbm8gcXVpY2sgRFNUIG9wZXJhdGlvbgorICogIC0gZmdscnggc2V0IEZQSTJfVU5LTk9XTl8zMSBvbiBhICJNQUQgZnJhZ21lbnQuY29sb3IsIHRtcDAsIHRtcDEsIHRtcDIiCisgKiAgLSBmZ2xyeCBzZXQgRlBJMl9VTktOT1dOXzMxIG9uIGEgIk1BWCByMiwgcjEsIGMwIgorICogIC0gZmdscnggb25jZSBzZXQgRlBJMF9VTktOT1dOXzMxIG9uIGEgIkZSQyByMSwgcjEiCisgKgorICogT3BlcmFuZCBzZWxlY3Rpb24KKyAqIEZpcnN0IHN0YWdlIHNlbGVjdHMgdGhyZWUgc291cmNlcyBmcm9tIHRoZSBhdmFpbGFibGUgcmVnaXN0ZXJzIGFuZAorICogY29uc3RhbnQgcGFyYW1ldGVycy4gVGhpcyBpcyBkZWZpbmVkIGluIElOU1RSMSAoY29sb3IpIGFuZCBJTlNUUjMgKGFscGhhKS4KKyAqIGZnbHJ4IHNvcnRzIHRoZSB0aHJlZSBzb3VyY2UgZmllbGRzOiBSZWdpc3RlcnMgYmVmb3JlIGNvbnN0YW50cywKKyAqIGxvd2VyIGluZGljZXMgYmVmb3JlIGhpZ2hlciBpbmRpY2VzOyBJIGRvIG5vdCBrbm93IHdoZXRoZXIgdGhpcyBpcworICogbmVjZXNzYXJ5LgorICoKKyAqIGZnbHJ4IGZpbGxzIHVudXNlZCBzb3VyY2VzIHdpdGggInJlYWQgY29uc3RhbnQgMCIKKyAqIEFjY29yZGluZyB0byBzcGVjcywgeW91IGNhbm5vdCBzZWxlY3QgbW9yZSB0aGFuIHR3byBkaWZmZXJlbnQgY29uc3RhbnRzLgorICoKKyAqIFNlY29uZCBzdGFnZSBzZWxlY3RzIHRoZSBvcGVyYW5kcyBmcm9tIHRoZSBzb3VyY2VzLiBUaGlzIGlzIGRlZmluZWQgaW4KKyAqIElOU1RSMCAoY29sb3IpIGFuZCBJTlNUUjIgKGFscGhhKS4gWW91IGNhbiBhbHNvIHNlbGVjdCB0aGUgc3BlY2lhbCBjb25zdGFudHMKKyAqIHplcm8gYW5kIG9uZS4KKyAqIFN3aXp6bGluZyBhbmQgbmVnYXRpb24gaGFwcGVucyBpbiB0aGlzIHN0YWdlLCBhcyB3ZWxsLgorICoKKyAqIEltcG9ydGFudDogQ29sb3IgYW5kIGFscGhhIHNlZW0gdG8gYmUgbW9zdGx5IHNlcGFyYXRlLCBpLmUuIHRoZWlyIHNvdXJjZXMKKyAqIHNlbGVjdGlvbiBhcHBlYXJzIHRvIGJlIGZ1bGx5IGluZGVwZW5kZW50ICh0aGUgcmVnaXN0ZXIgc3RvcmFnZSBpcyBwcm9iYWJseQorICogcGh5c2ljYWxseSBzcGxpdCBpbnRvIGEgY29sb3IgYW5kIGFuIGFscGhhIHNlY3Rpb24pLgorICogSG93ZXZlciAoYmVjYXVzZSBvZiB0aGUgYXBwYXJlbnQgcGh5c2ljYWwgc3BsaXQpLCB0aGVyZSBpcyBzb21lIGludGVyYWN0aW9uCisgKiBXUlQgc3dpenpsaW5nLiBJZiwgZm9yIGV4YW1wbGUsIHlvdSB3YW50IHRvIGxvYWQgYW4gUiBjb21wb25lbnQgaW50byBhbgorICogQWxwaGEgb3BlcmFuZCwgdGhpcyBSIGNvbXBvbmVudCBpcyB0YWtlbiBmcm9tIGEgKmNvbG9yKiBzb3VyY2UsIG5vdCBmcm9tCisgKiBhbiBhbHBoYSBzb3VyY2UuIFRoZSBjb3JyZXNwb25kaW5nIHJlZ2lzdGVyIGRvZXNuJ3QgZXZlbiBoYXZlIHRvIGFwcGVhciBpbgorICogdGhlIGFscGhhIHNvdXJjZXMgbGlzdC4gKEkgaG9wZSB0aGlzIGFsbCBtYWtlcyBzZW5zZSB0byB5b3UpCisgKgorICogRGVzdGluYXRpb24gc2VsZWN0aW9uCisgKiBUaGUgZGVzdGluYXRpb24gcmVnaXN0ZXIgaW5kZXggaXMgaW4gRlBJMSAoY29sb3IpIGFuZCBGUEkzIChhbHBoYSkKKyAqIHRvZ2V0aGVyIHdpdGggZW5hYmxlIGJpdHMuCisgKiBUaGVyZSBhcmUgc2VwYXJhdGUgZW5hYmxlIGJpdHMgZm9yIHdyaXRpbmcgaW50byB0ZW1wb3JhcnkgcmVnaXN0ZXJzCisgKiAoRFNUQ19SRUdfKiAvRFNUQV9SRUcpIGFuZCBhbmQgcHJvZ3JhbSBvdXRwdXQgcmVnaXN0ZXJzIChEU1RDX09VVFBVVF8qCisgKiAvRFNUQV9PVVRQVVQpLiBZb3UgY2FuIHdyaXRlIHRvIGJvdGggYXQgb25jZSwgb3Igbm90IHdyaXRlIGF0IGFsbCAodGhlCisgKiBzYW1lIGluZGV4IG11c3QgYmUgdXNlZCBmb3IgYm90aCkuCisgKgorICogTm90ZTogVGhlcmUgaXMgYSBzcGVjaWFsIGZvcm0gZm9yIExSUAorICogIC0gQXJndW1lbnQgb3JkZXIgaXMgdGhlIHNhbWUgYXMgaW4gQVJCX2ZyYWdtZW50X3Byb2dyYW0uCisgKiAgLSBPcGVyYXRpb24gaXMgTUFECisgKiAgLSBBUkcxIGlzIHNldCB0byBBUkdDX1NSQzFDX0xSUC9BUkdDX1NSQzFBX0xSUAorICogIC0gU2V0IEZQSTAvRlBJMl9TUEVDSUFMX0xSUAorICogQXJiaXRyYXJ5IExSUCAoaW5jbHVkaW5nIHN1cHBvcnQgZm9yIHN3aXp6bGluZykgcmVxdWlyZXMgdmFuaWxsYSBNQUQrTUFECisgKi8KKyNkZWZpbmUgUjMwMF9QRlNfSU5TVFIxXzAgICAgICAgICAgICAgICAgICAgMHg0NkMwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMENfU0hJRlQgICAgICAgICAgICAgMAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzBDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDUpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMUNfU0hJRlQgICAgICAgICAgICAgNgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA2KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzFDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDExKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX1NISUZUICAgICAgICAgICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTFfU1JDMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQzJDX0NPTlNUICAgICAgICAgICAgICgxIDw8IDE3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX1NSQ19NQVNLICAgICAgICAgICAgICAgIDB4MDAwM2ZmZmYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1NISUZUICAgICAgICAgICAgICAxOAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkxX0RTVENfTUFTSyAgICAgICAgICAgICAgICgzMSA8PCAxOCkKKyMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19SRUdfTUFTS19TSElGVCAgICAgMjMKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19YICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19ZICAgICAgICAgICAgICAoMSA8PCAyNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX1JFR19aICAgICAgICAgICAgICAoMSA8PCAyNSkKKyMJCWRlZmluZSBSMzAwX0ZQSTFfRFNUQ19PVVRQVVRfTUFTS19TSElGVCAgMjYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9YICAgICAgICAgICAoMSA8PCAyNikKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9ZICAgICAgICAgICAoMSA8PCAyNykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMV9EU1RDX09VVFBVVF9aICAgICAgICAgICAoMSA8PCAyOCkKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjNfMCAgICAgICAgICAgICAgICAgICAweDQ3QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMwQV9TSElGVCAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMEFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgNSkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMxQV9TSElGVCAgICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMUFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTEpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfU0hJRlQgICAgICAgICAgICAgMTIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJM19TUkMyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDMkFfQ09OU1QgICAgICAgICAgICAgKDEgPDwgMTcpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfU1JDX01BU0sgICAgICAgICAgICAgICAgMHgwMDAzZmZmZgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfU0hJRlQgICAgICAgICAgICAgIDE4CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTNfRFNUQV9NQVNLICAgICAgICAgICAgICAgKDMxIDw8IDE4KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfUkVHICAgICAgICAgICAgICAgICgxIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkzX0RTVEFfT1VUUFVUICAgICAgICAgICAgICgxIDw8IDI0KQorIwkJZGVmaW5lIFIzMDBfRlBJM19EU1RBX0RFUFRIICAgICAgICAgICAgICAoMSA8PCAyNykKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjBfMCAgICAgICAgICAgICAgICAgICAweDQ4QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1hZWiAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMwQ19YWFggICAgICAgICAgMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMENfWVlZICAgICAgICAgIDIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1paWiAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19YWVogICAgICAgICAgNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWFhYICAgICAgICAgIDUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzFDX1lZWSAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQ19aWlogICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMkNfWFlaICAgICAgICAgIDgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1hYWCAgICAgICAgICA5CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWVkgICAgICAgICAgMTAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJDX1paWiAgICAgICAgICAxMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMEEgICAgICAgICAgICAgIDEyCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMxQSAgICAgICAgICAgICAgMTMKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzJBICAgICAgICAgICAgICAxNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfTFJQICAgICAgICAgIDE1CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19aRVJPICAgICAgICAgICAgICAgMjAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX09ORSAgICAgICAgICAgICAgICAyMQorCS8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19IQUxGICAgICAgICAgICAgICAgMjIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1laWCAgICAgICAgICAyMworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWVpYICAgICAgICAgIDI0CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19ZWlggICAgICAgICAgMjUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDX1pYWSAgICAgICAgICAyNgorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNfWlhZICAgICAgICAgIDI3CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ19aWFkgICAgICAgICAgMjgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkdDX1NSQzBDQV9XWlkgICAgICAgICAyOQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSR0NfU1JDMUNBX1daWSAgICAgICAgIDMwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHQ19TUkMyQ0FfV1pZICAgICAgICAgMzEKKworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX1NISUZUICAgICAgICAgICAgIDAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19NQVNLICAgICAgICAgICAgICAoMzEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9BUkcwQ19ORUcgICAgICAgICAgICAgICAoMSA8PCA1KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzBDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMUNfU0hJRlQgICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzFDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDEzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX1NISUZUICAgICAgICAgICAgIDE0CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTBfQVJHMkNfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDE0KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX05FRyAgICAgICAgICAgICAgICgxIDw8IDE5KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX0FSRzJDX0FCUyAgICAgICAgICAgICAgICgxIDw8IDIwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX1NQRUNJQUxfTFJQICAgICAgICAgICAgICgxIDw8IDIxKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFEICAgICAgICAgICAgICAgICgwIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFAzICAgICAgICAgICAgICAgICgxIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRFA0ICAgICAgICAgICAgICAgICgyIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUlOICAgICAgICAgICAgICAgICg0IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfTUFYICAgICAgICAgICAgICAgICg1IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QSCAgICAgICAgICAgICAgICg3IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfQ01QICAgICAgICAgICAgICAgICg4IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfRlJDICAgICAgICAgICAgICAgICg5IDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkwX09VVENfUkVQTF9BTFBIQSAgICAgICAgICgxMCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9PVVRDX1NBVCAgICAgICAgICAgICAgICAoMSA8PCAzMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMF9JTlNFUlRfTk9QICAgICAgICAgICAgICAoMSA8PCAzMSkKKworI2RlZmluZSBSMzAwX1BGU19JTlNUUjJfMCAgICAgICAgICAgICAgICAgICAweDQ5QzAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBDX1ggICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMwQ19ZICAgICAgICAgICAgMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMENfWiAgICAgICAgICAgIDIKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzFDX1ggICAgICAgICAgICAzCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQ19ZICAgICAgICAgICAgNAorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUNfWiAgICAgICAgICAgIDUKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJDX1ggICAgICAgICAgICA2CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMyQ19ZICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMkNfWiAgICAgICAgICAgIDgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzBBICAgICAgICAgICAgICA5CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9TUkMxQSAgICAgICAgICAgICAgMTAKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX1NSQzJBICAgICAgICAgICAgICAxMQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSR0FfU1JDMUFfTFJQICAgICAgICAgIDE1CisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9aRVJPICAgICAgICAgICAgICAgMTYKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkdBX09ORSAgICAgICAgICAgICAgICAxNworCS8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHQV9IQUxGICAgICAgICAgICAgICAgMTgKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcwQV9TSElGVCAgICAgICAgICAgICAwCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTUFTSyAgICAgICAgICAgICAgKDMxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMEFfTkVHICAgICAgICAgICAgICAgKDEgPDwgNSkKKwkvKiBHVUVTUyAqLworIwlkZWZpbmUgUjMwMF9GUEkyX0FSRzBBX0FCUwkJICgxIDw8IDYpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfU0hJRlQgICAgICAgICAgICAgNworIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX01BU0sgICAgICAgICAgICAgICgzMSA8PCA3KQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX0FSRzFBX05FRyAgICAgICAgICAgICAgICgxIDw8IDEyKQorCS8qIEdVRVNTICovCisjCWRlZmluZSBSMzAwX0ZQSTJfQVJHMUFfQUJTCQkgKDEgPDwgMTMpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfU0hJRlQgICAgICAgICAgICAgMTQKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9NQVNLICAgICAgICAgICAgICAoMzEgPDwgMTQpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfQVJHMkFfTkVHICAgICAgICAgICAgICAgKDEgPDwgMTkpCisJLyogR1VFU1MgKi8KKyMJZGVmaW5lIFIzMDBfRlBJMl9BUkcyQV9BQlMJCSAoMSA8PCAyMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9TUEVDSUFMX0xSUCAgICAgICAgICAgICAoMSA8PCAyMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BRCAgICAgICAgICAgICAgICAoMCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0RQNCAgICAgICAgICAgICAgICAoMSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01JTiAgICAgICAgICAgICAgICAoMiA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX01BWCAgICAgICAgICAgICAgICAoMyA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0NNUCAgICAgICAgICAgICAgICAoNiA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0ZSQyAgICAgICAgICAgICAgICAoNyA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0VYMiAgICAgICAgICAgICAgICAoOCA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX0xHMiAgICAgICAgICAgICAgICAoOSA8PCAyMykKKyMgICAgICAgZGVmaW5lIFIzMDBfRlBJMl9PVVRBX1JDUCAgICAgICAgICAgICAgICAoMTAgPDwgMjMpCisjICAgICAgIGRlZmluZSBSMzAwX0ZQSTJfT1VUQV9SU1EgICAgICAgICAgICAgICAgKDExIDw8IDIzKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX09VVEFfU0FUICAgICAgICAgICAgICAgICgxIDw8IDMwKQorIyAgICAgICBkZWZpbmUgUjMwMF9GUEkyX1VOS05PV05fMzEgICAgICAgICAgICAgICgxIDw8IDMxKQorLyogRU5EOiBGcmFnbWVudCBwcm9ncmFtIGluc3RydWN0aW9uIHNldCAqLworCisvKiBGb2cgc3RhdGUgYW5kIGNvbG9yICovCisjZGVmaW5lIFIzMDBfUkVfRk9HX1NUQVRFICAgICAgICAgICAgICAgICAgIDB4NEJDMAorIyAgICAgICBkZWZpbmUgUjMwMF9GT0dfRU5BQkxFICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjCWRlZmluZSBSMzAwX0ZPR19NT0RFX0xJTkVBUiAgICAgICAgICAgICAgKDAgPDwgMSkKKyMJZGVmaW5lIFIzMDBfRk9HX01PREVfRVhQICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9GT0dfTU9ERV9FWFAyICAgICAgICAgICAgICAgICgyIDw8IDEpCisjCWRlZmluZSBSMzAwX0ZPR19NT0RFX01BU0sgICAgICAgICAgICAgICAgKDMgPDwgMSkKKyNkZWZpbmUgUjMwMF9GT0dfQ09MT1JfUiAgICAgICAgICAgICAgICAgICAgMHg0QkM4CisjZGVmaW5lIFIzMDBfRk9HX0NPTE9SX0cgICAgICAgICAgICAgICAgICAgIDB4NEJDQworI2RlZmluZSBSMzAwX0ZPR19DT0xPUl9CICAgICAgICAgICAgICAgICAgICAweDRCRDAKKworI2RlZmluZSBSMzAwX1BQX0FMUEhBX1RFU1QgICAgICAgICAgICAgICAgICAweDRCRDQKKyMgICAgICAgZGVmaW5lIFIzMDBfUkVGX0FMUEhBX01BU0sgICAgICAgICAgICAgICAweDAwMDAwMGZmCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRkFJTCAgICAgICAgICAgICAgKDAgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9MRVNTICAgICAgICAgICAgICAoMSA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0xFUVVBTCAgICAgICAgICAgICgzIDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRVFVQUwgICAgICAgICAgICAgKDIgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9HRVFVQUwgICAgICAgICAgICAoNiA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX0dSRUFURVIgICAgICAgICAgICg0IDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfTkVRVUFMICAgICAgICAgICAgKDUgPDwgOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfQUxQSEFfVEVTVF9QQVNTICAgICAgICAgICAgICAoNyA8PCA4KQorIyAgICAgICBkZWZpbmUgUjMwMF9BTFBIQV9URVNUX09QX01BU0sgICAgICAgICAgICg3IDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0FMUEhBX1RFU1RfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTEpCisKKy8qIGdhcCAqLworCisvKiBGcmFnbWVudCBwcm9ncmFtIHBhcmFtZXRlcnMgaW4gNy4xNiBmbG9hdGluZyBwb2ludCAqLworI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1ggICAgICAgICAgICAgICAgICAweDRDMDAKKyNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMF9ZICAgICAgICAgICAgICAgICAgMHg0QzA0CisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzBfWiAgICAgICAgICAgICAgICAgIDB4NEMwOAorI2RlZmluZSBSMzAwX1BGU19QQVJBTV8wX1cgICAgICAgICAgICAgICAgICAweDRDMEMKKy8qIEdVRVNTOiBQQVJBTV8zMSBpcyBsYXN0LCBiYXNlZCBvbiBuYXRpdmUgbGltaXRzIHJlcG9ydGVkIGJ5IGZnbHJ4ICovCisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1ggICAgICAgICAgICAgICAgIDB4NERGMAorI2RlZmluZSBSMzAwX1BGU19QQVJBTV8zMV9ZICAgICAgICAgICAgICAgICAweDRERjQKKyNkZWZpbmUgUjMwMF9QRlNfUEFSQU1fMzFfWiAgICAgICAgICAgICAgICAgMHg0REY4CisjZGVmaW5lIFIzMDBfUEZTX1BBUkFNXzMxX1cgICAgICAgICAgICAgICAgIDB4NERGQworCisvKiBOb3RlczoKKyAqIC0gQUZBSUsgZmdscnggYWx3YXlzIHNldHMgQkxFTkRfVU5LTk9XTiB3aGVuIGJsZW5kaW5nIGlzIHVzZWQgaW4KKyAqICAgdGhlIGFwcGxpY2F0aW9uCisgKiAtIEFGQUlLIGZnbHJ4IGFsd2F5cyBzZXRzIEJMRU5EX05PX1NFUEFSQVRFIHdoZW4gQ0JMRU5EIGFuZCBBQkxFTkQKKyAqICAgIGFyZSBzZXQgdG8gdGhlIHNhbWUKKyAqICAgZnVuY3Rpb24gKGJvdGggcmVnaXN0ZXJzIGFyZSBhbHdheXMgc2V0IHVwIGNvbXBsZXRlbHkgaW4gYW55IGNhc2UpCisgKiAtIE1vc3QgYmxlbmQgZmxhZ3MgYXJlIHNpbXBseSBjb3BpZWQgZnJvbSBSMjAwIGFuZCBub3QgdGVzdGVkIHlldAorICovCisjZGVmaW5lIFIzMDBfUkIzRF9DQkxFTkQgICAgICAgICAgICAgICAgICAgIDB4NEUwNAorI2RlZmluZSBSMzAwX1JCM0RfQUJMRU5EICAgICAgICAgICAgICAgICAgICAweDRFMDgKKy8qIHRoZSBmb2xsb3dpbmcgb25seSBhcHBlYXIgaW4gQ0JMRU5EICovCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX1VOS05PV04gICAgICAgICAgICAgICAgICAgICgzIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX05PX1NFUEFSQVRFICAgICAgICAgICAgICAgICgxIDw8IDMpCisvKiB0aGUgZm9sbG93aW5nIGFyZSBzaGFyZWQgYmV0d2VlbiBDQkxFTkQgYW5kIEFCTEVORCAqLworIyAgICAgICBkZWZpbmUgUjMwMF9GQ05fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAoMyAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX0FERF9DTEFNUCAgICAgICAgICAgICAgICgwICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fQUREX05PQ0xBTVAgICAgICAgICAgICAgKDEgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9TVUJfQ0xBTVAgICAgICAgICAgICAgICAoMiAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1NVQl9OT0NMQU1QICAgICAgICAgICAgICgzICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fTUlOICAgICAgICAgICAgICAgICAgICAgKDQgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9DT01CX0ZDTl9NQVggICAgICAgICAgICAgICAgICAgICAoNSAgPDwgMTIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTUJfRkNOX1JTVUJfQ0xBTVAgICAgICAgICAgICAgICg2ICA8PCAxMikKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09NQl9GQ05fUlNVQl9OT0NMQU1QICAgICAgICAgICAgKDcgIDw8IDEyKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9aRVJPICAgICAgICAgICAgICAgICAgICAoMzIpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORSAgICAgICAgICAgICAgICAgICAgICgzMykKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfU1JDX0NPTE9SICAgICAgICAgICAgICAgKDM0KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfU1JDX0NPTE9SICAgICAoMzUpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0RTVF9DT0xPUiAgICAgICAgICAgICAgICgzNikKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0RTVF9DT0xPUiAgICAgKDM3KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9TUkNfQUxQSEEgICAgICAgICAgICAgICAoMzgpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX09ORV9NSU5VU19TUkNfQUxQSEEgICAgICgzOSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfRFNUX0FMUEhBICAgICAgICAgICAgICAgKDQwKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfRFNUX0FMUEhBICAgICAoNDEpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX1NSQ19BTFBIQV9TQVRVUkFURSAgICAgICg0MikKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfQ09OU1RfQ09MT1IgICAgICAgICAgICAgKDQzKQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9HTF9PTkVfTUlOVVNfQ09OU1RfQ09MT1IgICAoNDQpCisjICAgICAgIGRlZmluZSBSMzAwX0JMRU5EX0dMX0NPTlNUX0FMUEhBICAgICAgICAgICAgICg0NSkKKyMgICAgICAgZGVmaW5lIFIzMDBfQkxFTkRfR0xfT05FX01JTlVTX0NPTlNUX0FMUEhBICAgKDQ2KQorIyAgICAgICBkZWZpbmUgUjMwMF9CTEVORF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAoNjMpCisjICAgICAgIGRlZmluZSBSMzAwX1NSQ19CTEVORF9TSElGVCAgICAgICAgICAgICAgICAgICgxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfRFNUX0JMRU5EX1NISUZUICAgICAgICAgICAgICAgICAgKDI0KQorI2RlZmluZSBSMzAwX1JCM0RfQkxFTkRfQ09MT1IgICAgICAgICAgICAgICAweDRFMTAKKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9STUFTSyAgICAgICAgICAgICAgICAgMHg0RTBDCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQiAgICAgICAgICAgICAgICAgKDE8PDApCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfRyAgICAgICAgICAgICAgICAgKDE8PDEpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfUiAgICAgICAgICAgICAgICAgKDE8PDIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9STUFTSzBfQSAgICAgICAgICAgICAgICAgKDE8PDMpCisKKy8qIGdhcCAqLworCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDAgICAgICAgICAgICAgIDB4NEUyOAorIyAgICAgICBkZWZpbmUgUjMwMF9DT0xPUk9GRlNFVF9NQVNLICAgICAgICAgICAgIDB4RkZGRkZGRjAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9ST0ZGU0VUMSAgICAgICAgICAgICAgMHg0RTJDIC8qIEdVRVNTICovCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUk9GRlNFVDIgICAgICAgICAgICAgIDB4NEUzMCAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JPRkZTRVQzICAgICAgICAgICAgICAweDRFMzQgLyogR1VFU1MgKi8KKworLyogZ2FwICovCisKKy8qIEJpdCAxNjogTGFyZ2VyIHRpbGVzCisgKiBCaXQgMTc6IDR4MiB0aWxlcworICogQml0IDE4OiBFeHRyZW1lbHkgd2VpcmQgdGlsZSBsaWtlLCBidXQgc29tZSBwaXhlbHMgZHVwbGljYXRlZD8KKyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDAgICAgICAgICAgICAgICAweDRFMzgKKyMgICAgICAgZGVmaW5lIFIzMDBfQ09MT1JQSVRDSF9NQVNLICAgICAgICAgICAgICAweDAwMDAxRkY4IC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX1RJTEVfRU5BQkxFICAgICAgICAgICAgKDEgPDwgMTYpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX01JQ1JPVElMRV9FTkFCTEUgICAgICAgKDEgPDwgMTcpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9OT19TV0FQICAgICAgICAgKDAgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0VORElBTl9EV09SRF9TV0FQICAgICAgKDIgPDwgMTgpIC8qIEdVRVNTICovCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9SR0I1NjUgICAgICAgICAgKDIgPDwgMjIpCisjICAgICAgIGRlZmluZSBSMzAwX0NPTE9SX0ZPUk1BVF9BUkdCODg4OCAgICAgICAgKDMgPDwgMjIpCisjZGVmaW5lIFIzMDBfUkIzRF9DT0xPUlBJVENIMSAgICAgICAgICAgICAgIDB4NEUzQyAvKiBHVUVTUyAqLworI2RlZmluZSBSMzAwX1JCM0RfQ09MT1JQSVRDSDIgICAgICAgICAgICAgICAweDRFNDAgLyogR1VFU1MgKi8KKyNkZWZpbmUgUjMwMF9SQjNEX0NPTE9SUElUQ0gzICAgICAgICAgICAgICAgMHg0RTQ0IC8qIEdVRVNTICovCisKKy8qIGdhcCAqLworCisvKiBHdWVzcyBieSBWbGFkaW1pci4KKyAqIFNldCB0byAwQSBiZWZvcmUgM0Qgb3BlcmF0aW9ucywgc2V0IHRvIDAyIGFmdGVyd2FyZHMuCisgKi8KKy8qI2RlZmluZSBSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCAgICAgICAgICAweDRFNEMqLworIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMDIgICAgICAgICAgICAgMHgwMDAwMDAwMgorIyAgICAgICBkZWZpbmUgUjMwMF9SQjNEX0RTVENBQ0hFX1VOS05PV05fMEEgICAgICAgICAgICAgMHgwMDAwMDAwQQorCisvKiBnYXAgKi8KKy8qIFRoZXJlIHNlZW1zIHRvIGJlIG5vICJ3cml0ZSBvbmx5IiBzZXR0aW5nLCBzbyB1c2UgWi10ZXN0ID0gQUxXQVlTCisgKiBmb3IgdGhpcy4KKyAqIEJpdCAoMTw8OCkgaXMgdGhlICJ0ZXN0IiBiaXQuIHNvIHBsYWluIHdyaXRlIGlzIDYgIC0gdmQKKyAqLworI2RlZmluZSBSMzAwX1pCX0NOVEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NEYwMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMX0VOQUJMRQkJICgxIDw8IDApCisjCWRlZmluZSBSMzAwX1pfRU5BQkxFCQkgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9aX1dSSVRFX0VOQUJMRQkJICgxIDw8IDIpCisjCWRlZmluZSBSMzAwX1pfU0lHTkVEX0NPTVBBUkUJCSAoMSA8PCAzKQorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMX0ZST05UX0JBQ0sJCSAoMSA8PCA0KQorCisjZGVmaW5lIFIzMDBfWkJfWlNURU5DSUxDTlRMICAgICAgICAgICAgICAgICAgIDB4NGYwNAorCS8qIGZ1bmN0aW9ucyAqLworIwlkZWZpbmUgUjMwMF9aU19ORVZFUgkJCTAKKyMJZGVmaW5lIFIzMDBfWlNfTEVTUwkJCTEKKyMJZGVmaW5lIFIzMDBfWlNfTEVRVUFMCQkJMgorIwlkZWZpbmUgUjMwMF9aU19FUVVBTAkJCTMKKyMJZGVmaW5lIFIzMDBfWlNfR0VRVUFMCQkJNAorIwlkZWZpbmUgUjMwMF9aU19HUkVBVEVSCQkJNQorIwlkZWZpbmUgUjMwMF9aU19OT1RFUVVBTAkJCTYKKyMJZGVmaW5lIFIzMDBfWlNfQUxXQVlTCQkJNworIyAgICAgICBkZWZpbmUgUjMwMF9aU19NQVNLICAgICAgICAgICAgICAgICAgICAgNworCS8qIG9wZXJhdGlvbnMgKi8KKyMJZGVmaW5lIFIzMDBfWlNfS0VFUAkJCTAKKyMJZGVmaW5lIFIzMDBfWlNfWkVSTwkJCTEKKyMJZGVmaW5lIFIzMDBfWlNfUkVQTEFDRQkJCTIKKyMJZGVmaW5lIFIzMDBfWlNfSU5DUgkJCTMKKyMJZGVmaW5lIFIzMDBfWlNfREVDUgkJCTQKKyMJZGVmaW5lIFIzMDBfWlNfSU5WRVJUCQkJNQorIwlkZWZpbmUgUjMwMF9aU19JTkNSX1dSQVAJCTYKKyMJZGVmaW5lIFIzMDBfWlNfREVDUl9XUkFQCQk3CisjCWRlZmluZSBSMzAwX1pfRlVOQ19TSElGVAkJMAorCS8qIGZyb250IGFuZCBiYWNrIHJlZmVyIHRvIG9wZXJhdGlvbnMgZG9uZSBmb3IgZnJvbnQKKwkgICBhbmQgYmFjayBmYWNlcywgaS5lLiBzZXBhcmF0ZSBzdGVuY2lsIGZ1bmN0aW9uIHN1cHBvcnQgKi8KKyMJZGVmaW5lIFIzMDBfU19GUk9OVF9GVU5DX1NISUZUCSAgICAgICAgMworIwlkZWZpbmUgUjMwMF9TX0ZST05UX1NGQUlMX09QX1NISUZUCTYKKyMJZGVmaW5lIFIzMDBfU19GUk9OVF9aUEFTU19PUF9TSElGVAk5CisjCWRlZmluZSBSMzAwX1NfRlJPTlRfWkZBSUxfT1BfU0hJRlQgICAgICAxMgorIwlkZWZpbmUgUjMwMF9TX0JBQ0tfRlVOQ19TSElGVCAgICAgICAgICAgMTUKKyMJZGVmaW5lIFIzMDBfU19CQUNLX1NGQUlMX09QX1NISUZUICAgICAgIDE4CisjCWRlZmluZSBSMzAwX1NfQkFDS19aUEFTU19PUF9TSElGVCAgICAgICAyMQorIwlkZWZpbmUgUjMwMF9TX0JBQ0tfWkZBSUxfT1BfU0hJRlQgICAgICAgMjQKKworI2RlZmluZSBSMzAwX1pCX1NURU5DSUxSRUZNQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjA4CisjCWRlZmluZSBSMzAwX1NURU5DSUxSRUZfU0hJRlQgICAgICAgMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMUkVGX01BU0sgICAgICAgIDB4MDAwMDAwZmYKKyMJZGVmaW5lIFIzMDBfU1RFTkNJTE1BU0tfU0hJRlQgICAgICA4CisjCWRlZmluZSBSMzAwX1NURU5DSUxNQVNLX01BU0sgICAgICAgMHgwMDAwZmYwMAorIwlkZWZpbmUgUjMwMF9TVEVOQ0lMV1JJVEVNQVNLX1NISUZUIDE2CisjCWRlZmluZSBSMzAwX1NURU5DSUxXUklURU1BU0tfTUFTSyAgMHgwMGZmMDAwMAorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1pCX0ZPUk1BVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjEwCisjCWRlZmluZSBSMzAwX0RFUFRIRk9STUFUXzE2QklUX0lOVF9aICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfREVQVEhGT1JNQVRfMTZCSVRfMTNFMyAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9ERVBUSEZPUk1BVF8yNEJJVF9JTlRfWl84QklUX1NURU5DSUwgICAoMiA8PCAwKQorLyogcmVzZXJ2ZWQgdXAgdG8gKDE1IDw8IDApICovCisjCWRlZmluZSBSMzAwX0lOVkVSVF8xM0UzX0xFQURJTkdfT05FUyAgKDAgPDwgNCkKKyMJZGVmaW5lIFIzMDBfSU5WRVJUXzEzRTNfTEVBRElOR19aRVJPUyAoMSA8PCA0KQorCisjZGVmaW5lIFIzMDBfWkJfWlRPUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0RjE0CisjCWRlZmluZSBSMzAwX1pUT1BfRElTQUJMRSAgICAgICAgICAgICAgICAgKDAgPDwgMCkKKyMJZGVmaW5lIFIzMDBfWlRPUF9FTkFCTEUgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorCisvKiBnYXAgKi8KKworI2RlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUICAgICAgICAgICAgMHg0ZjE4CisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZMVVNIX05PX0VGRkVDVCAgICAgICgwIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZMVVNIX0ZMVVNIX0FORF9GUkVFICgxIDw8IDApCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZSRUVfTk9fRUZGRUNUICAgICAgICgwIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0ZSRUVfRlJFRSAgICAgICAgICAgICgxIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1pCX1pDQUNIRV9DVExTVEFUX1pDX0JVU1lfSURMRSAgICAgICAgICAgICgwIDw8IDMxKQorIyAgICAgICBkZWZpbmUgUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVF9aQ19CVVNZX0JVU1kgICAgICAgICAgICAoMSA8PCAzMSkKKworI2RlZmluZSBSMzAwX1pCX0JXX0NOVEwgICAgICAgICAgICAgICAgICAgICAweDRmMWMKKyMJZGVmaW5lIFIzMDBfSElaX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PCAwKQorIwlkZWZpbmUgUjMwMF9ISVpfRU5BQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisjCWRlZmluZSBSMzAwX0hJWl9NSU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMSkKKyMJZGVmaW5lIFIzMDBfSElaX01BWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQorIwlkZWZpbmUgUjMwMF9GQVNUX0ZJTExfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IDIpCisjCWRlZmluZSBSMzAwX0ZBU1RfRklMTF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKKyMJZGVmaW5lIFIzMDBfUkRfQ09NUF9ESVNBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PCAzKQorIwlkZWZpbmUgUjMwMF9SRF9DT01QX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCisjCWRlZmluZSBSMzAwX1dSX0NPTVBfRElTQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgNCkKKyMJZGVmaW5lIFIzMDBfV1JfQ09NUF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQorIwlkZWZpbmUgUjMwMF9aQl9DQl9DTEVBUl9STVcgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IDUpCisjCWRlZmluZSBSMzAwX1pCX0NCX0NMRUFSX0NBQ0hFX0xJTkVBUiAgICAgICAgICAgICAgICAgKDEgPDwgNSkKKyMJZGVmaW5lIFIzMDBfRk9SQ0VfQ09NUFJFU1NFRF9TVEVOQ0lMX1ZBTFVFX0RJU0FCTEUgICAoMCA8PCA2KQorIwlkZWZpbmUgUjMwMF9GT1JDRV9DT01QUkVTU0VEX1NURU5DSUxfVkFMVUVfRU5BQkxFICAgICgxIDw8IDYpCisKKyMJZGVmaW5lIFI1MDBfWkVRVUFMX09QVElNSVpFX0VOQUJMRSAgICAgICAgICAgICAgICAgICAoMCA8PCA3KQorIwlkZWZpbmUgUjUwMF9aRVFVQUxfT1BUSU1JWkVfRElTQUJMRSAgICAgICAgICAgICAgICAgICgxIDw8IDcpCisjCWRlZmluZSBSNTAwX1NFUVVBTF9PUFRJTUlaRV9FTkFCTEUgICAgICAgICAgICAgICAgICAgKDAgPDwgOCkKKyMJZGVmaW5lIFI1MDBfU0VRVUFMX09QVElNSVpFX0RJU0FCTEUgICAgICAgICAgICAgICAgICAoMSA8PCA4KQorCisjCWRlZmluZSBSNTAwX0JNQVNLX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMTApCisjCWRlZmluZSBSNTAwX0JNQVNLX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCisjCWRlZmluZSBSNTAwX0hJWl9FUVVBTF9SRUpFQ1RfRElTQUJMRSAgICAgICAgICAgICAgICAgKDAgPDwgMTEpCisjCWRlZmluZSBSNTAwX0hJWl9FUVVBTF9SRUpFQ1RfRU5BQkxFICAgICAgICAgICAgICAgICAgKDEgPDwgMTEpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU19ESVNBQkxFICAgICAgICAgICAgICAgICAgKDAgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18xICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18yICAgICAgICAgICAgICAgICAgICAgICAgKDIgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU18zICAgICAgICAgICAgICAgICAgICAgICAgKDMgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU180ICAgICAgICAgICAgICAgICAgICAgICAgKDQgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9FWFBfQklUU181ICAgICAgICAgICAgICAgICAgICAgICAgKDUgPDwgMTIpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9JTlZFUlRfTEVBRElOR19PTkVTICAgICAgICAgICAgICAgKDAgPDwgMTUpCisjCWRlZmluZSBSNTAwX0hJWl9GUF9JTlZFUlRfTEVBRElOR19aRVJPUyAgICAgICAgICAgICAgKDEgPDwgMTUpCisjCWRlZmluZSBSNTAwX1RJTEVfT1ZFUldSSVRFX1JFQ09NUFJFU1NJT05fRU5BQkxFICAgICAgKDAgPDwgMTYpCisjCWRlZmluZSBSNTAwX1RJTEVfT1ZFUldSSVRFX1JFQ09NUFJFU1NJT05fRElTQUJMRSAgICAgKDEgPDwgMTYpCisjCWRlZmluZSBSNTAwX0NPTlRJR1VPVVNfNlhBQV9TQU1QTEVTX0VOQUJMRSAgICAgICAgICAgKDAgPDwgMTcpCisjCWRlZmluZSBSNTAwX0NPTlRJR1VPVVNfNlhBQV9TQU1QTEVTX0RJU0FCTEUgICAgICAgICAgKDEgPDwgMTcpCisjCWRlZmluZSBSNTAwX1BFUV9QQUNLSU5HX0RJU0FCTEUgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgMTgpCisjCWRlZmluZSBSNTAwX1BFUV9QQUNLSU5HX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTgpCisjCWRlZmluZSBSNTAwX0NPVkVSRURfUFRSX01BU0tJTkdfRElTQUJMRSAgICAgICAgICAgICAgKDAgPDwgMTgpCisjCWRlZmluZSBSNTAwX0NPVkVSRURfUFRSX01BU0tJTkdfRU5BQkxFICAgICAgICAgICAgICAgKDEgPDwgMTgpCisKKworLyogZ2FwICovCisKKy8qIFogQnVmZmVyIEFkZHJlc3MgT2Zmc2V0LgorICogQml0cyAzMSB0byA1IGFyZSB1c2VkIGZvciBhbGlnbmVkIFogYnVmZmVyIGFkZHJlc3Mgb2Zmc2V0IGZvciBtYWNybyB0aWxlcy4KKyAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIT0ZGU0VUICAgICAgICAgICAgICAgMHg0ZjIwCisKKy8qIFogQnVmZmVyIFBpdGNoIGFuZCBFbmRpYW4gQ29udHJvbCAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIUElUQ0ggICAgICAgICAgICAgICAgMHg0ZjI0CisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRIUElUQ0hfTUFTSyAgICAgICAgICAgICAgMHgwMDAwM0ZGQworIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSE1BQ1JPVElMRV9ESVNBQkxFICAgICAgKDAgPDwgMTYpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRITUFDUk9USUxFX0VOQUJMRSAgICAgICAoMSA8PCAxNikKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhNSUNST1RJTEVfTElORUFSICAgICAgICgwIDw8IDE3KQorIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSE1JQ1JPVElMRV9USUxFRCAgICAgICAgKDEgPDwgMTcpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRITUlDUk9USUxFX1RJTEVEX1NRVUFSRSAoMiA8PCAxNykKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhFTkRJQU5fTk9fU1dBUCAgICAgICAgICgwIDw8IDE4KQorIyAgICAgICBkZWZpbmUgUjMwMF9ERVBUSEVORElBTl9XT1JEX1NXQVAgICAgICAgKDEgPDwgMTgpCisjICAgICAgIGRlZmluZSBSMzAwX0RFUFRIRU5ESUFOX0RXT1JEX1NXQVAgICAgICAoMiA8PCAxOCkKKyMgICAgICAgZGVmaW5lIFIzMDBfREVQVEhFTkRJQU5fSEFMRl9EV09SRF9TV0FQICgzIDw8IDE4KQorCisvKiBaIEJ1ZmZlciBDbGVhciBWYWx1ZSAqLworI2RlZmluZSBSMzAwX1pCX0RFUFRIQ0xFQVJWQUxVRSAgICAgICAgICAgICAgICAgIDB4NGYyOAorCisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfT0ZGU0VUCQkJIDB4NGYzMAorI2RlZmluZSBSMzAwX1pCX1pNQVNLX1BJVENICQkJIDB4NGYzNAorI2RlZmluZSBSMzAwX1pCX1pNQVNLX1dSSU5ERVgJCQkgMHg0ZjM4CisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfRFdPUkQJCQkgMHg0ZjNjCisjZGVmaW5lIFIzMDBfWkJfWk1BU0tfUkRJTkRFWAkJCSAweDRmNDAKKworLyogSGllcmFyY2hpY2FsIFogTWVtb3J5IE9mZnNldCAqLworI2RlZmluZSBSMzAwX1pCX0hJWl9PRkZTRVQgICAgICAgICAgICAgICAgICAgICAgIDB4NGY0NAorCisvKiBIaWVyYXJjaGljYWwgWiBXcml0ZSBJbmRleCAqLworI2RlZmluZSBSMzAwX1pCX0hJWl9XUklOREVYICAgICAgICAgICAgICAgICAgICAgIDB4NGY0OAorCisvKiBIaWVyYXJjaGljYWwgWiBEYXRhICovCisjZGVmaW5lIFIzMDBfWkJfSElaX0RXT1JEICAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjRjCisKKy8qIEhpZXJhcmNoaWNhbCBaIFJlYWQgSW5kZXggKi8KKyNkZWZpbmUgUjMwMF9aQl9ISVpfUkRJTkRFWCAgICAgICAgICAgICAgICAgICAgICAweDRmNTAKKworLyogSGllcmFyY2hpY2FsIFogUGl0Y2ggKi8KKyNkZWZpbmUgUjMwMF9aQl9ISVpfUElUQ0ggICAgICAgICAgICAgICAgICAgICAgICAweDRmNTQKKworLyogWiBCdWZmZXIgWiBQYXNzIENvdW50ZXIgRGF0YSAqLworI2RlZmluZSBSMzAwX1pCX1pQQVNTX0RBVEEgICAgICAgICAgICAgICAgICAgICAgIDB4NGY1OAorCisvKiBaIEJ1ZmZlciBaIFBhc3MgQ291bnRlciBBZGRyZXNzICovCisjZGVmaW5lIFIzMDBfWkJfWlBBU1NfQUREUiAgICAgICAgICAgICAgICAgICAgICAgMHg0ZjVjCisKKy8qIERlcHRoIGJ1ZmZlciBYIGFuZCBZIGNvb3JkaW5hdGUgb2Zmc2V0ICovCisjZGVmaW5lIFIzMDBfWkJfREVQVEhYWV9PRkZTRVQgICAgICAgICAgICAgICAgICAgMHg0ZjYwCisjCWRlZmluZSBSMzAwX0RFUFRIWF9PRkZTRVRfU0hJRlQgIDEKKyMJZGVmaW5lIFIzMDBfREVQVEhYX09GRlNFVF9NQVNLICAgMHgwMDAwMDdGRQorIwlkZWZpbmUgUjMwMF9ERVBUSFlfT0ZGU0VUX1NISUZUICAxNworIwlkZWZpbmUgUjMwMF9ERVBUSFlfT0ZGU0VUX01BU0sgICAweDA3RkUwMDAwCisKKy8qIFNldHMgdGhlIGZpZm8gc2l6ZXMgKi8KKyNkZWZpbmUgUjUwMF9aQl9GSUZPX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAweDRmZDAKKyMJZGVmaW5lIFI1MDBfT1BfRklGT19TSVpFX0ZVTEwgICAoMCA8PCAwKQorIwlkZWZpbmUgUjUwMF9PUF9GSUZPX1NJWkVfSEFMRiAgICgxIDw8IDApCisjCWRlZmluZSBSNTAwX09QX0ZJRk9fU0laRV9RVUFURVIgKDIgPDwgMCkKKyMJZGVmaW5lIFI1MDBfT1BfRklGT19TSVpFX0VJR1RIUyAoNCA8PCAwKQorCisvKiBTdGVuY2lsIFJlZmVyZW5jZSBWYWx1ZSBhbmQgTWFzayBmb3IgYmFja2ZhY2luZyBxdWFkcyAqLworLyogUjMwMF9aQl9TVEVOQ0lMUkVGTUFTSyBoYW5kbGVzIGZyb250IGZhY2UgKi8KKyNkZWZpbmUgUjUwMF9aQl9TVEVOQ0lMUkVGTUFTS19CRiAgICAgICAgICAgICAgICAweDRmZDQKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTFJFRl9TSElGVCAgICAgICAwCisjCWRlZmluZSBSNTAwX1NURU5DSUxSRUZfTUFTSyAgICAgICAgMHgwMDAwMDBmZgorIwlkZWZpbmUgUjUwMF9TVEVOQ0lMTUFTS19TSElGVCAgICAgIDgKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTE1BU0tfTUFTSyAgICAgICAweDAwMDBmZjAwCisjCWRlZmluZSBSNTAwX1NURU5DSUxXUklURU1BU0tfU0hJRlQgMTYKKyMJZGVmaW5lIFI1MDBfU1RFTkNJTFdSSVRFTUFTS19NQVNLICAweDAwZmYwMDAwCisKKy8qIEJFR0lOOiBWZXJ0ZXggcHJvZ3JhbSBpbnN0cnVjdGlvbiBzZXQgKi8KKworLyogRXZlcnkgaW5zdHJ1Y3Rpb24gaXMgZm91ciBkd29yZHMgbG9uZzoKKyAqICBEV09SRCAwOiBvdXRwdXQgYW5kIG9wY29kZQorICogIERXT1JEIDE6IGZpcnN0IGFyZ3VtZW50CisgKiAgRFdPUkQgMjogc2Vjb25kIGFyZ3VtZW50CisgKiAgRFdPUkQgMzogdGhpcmQgYXJndW1lbnQKKyAqCisgKiBOb3RlczoKKyAqICAtIEFCUyByLCBhIGlzIGltcGxlbWVudGVkIGFzIE1BWCByLCBhLCAtYQorICogIC0gTU9WIGlzIGltcGxlbWVudGVkIGFzIEFERCB0byB6ZXJvCisgKiAgLSBYUEQgaXMgaW1wbGVtZW50ZWQgYXMgTVVMICsgTUFECisgKiAgLSBGTFIgaXMgaW1wbGVtZW50ZWQgYXMgRlJDICsgQURECisgKiAgLSBhcHBhcmVudGx5LCBmZ2xyeCB0cmllcyB0byBzY2hlZHVsZSBpbnN0cnVjdGlvbnMgc28gdGhhdCB0aGVyZSBpcyBhdAorICogICAgbGVhc3Qgb25lIGluc3RydWN0aW9uIGJldHdlZW4gdGhlIHdyaXRlIHRvIGEgdGVtcG9yYXJ5IGFuZCB0aGUgZmlyc3QKKyAqICAgIHJlYWQgZnJvbSBzYWlkIHRlbXBvcmFyeTsgaG93ZXZlciwgdmlvbGF0aW9ucyBvZiB0aGlzIHNjaGVkdWxpbmcgYXJlCisgKiAgICBhbGxvd2VkCisgKiAgLSByZWdpc3RlciBpbmRpY2VzIHNlZW0gdG8gYmUgdW5yZWxhdGVkIHdpdGggT3BlbkdMIGFsaWFzaW5nIHRvCisgKiAgICBjb252ZW50aW9uYWwgc3RhdGUKKyAqICAtIG9ubHkgb25lIGF0dHJpYnV0ZSBhbmQgb25lIHBhcmFtZXRlciBjYW4gYmUgbG9hZGVkIGF0IGEgdGltZTsgaG93ZXZlciwKKyAqICAgIHRoZSBzYW1lIGF0dHJpYnV0ZS9wYXJhbWV0ZXIgY2FuIGJlIHVzZWQgZm9yIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQKKyAqICAtIHRoZSBzZWNvbmQgc29mdHdhcmUgYXJndW1lbnQgZm9yIFBPVyBpcyB0aGUgdGhpcmQgaGFyZHdhcmUgYXJndW1lbnQKKyAqICAgIChubyBpZGVhIHdoeSkKKyAqICAtIE1BRCB3aXRoIG9ubHkgdGVtcG9yYXJpZXMgYXMgaW5wdXQgc2VlbXMgdG8gdXNlIFZQSV9PVVRfU0VMRUNUX01BRF8yCisgKgorICogVGhlcmUgaXMgc29tZSBtYWdpYyBzdXJyb3VuZGluZyBMSVQ6CisgKiAgIFRoZSBzaW5nbGUgYXJndW1lbnQgaXMgcmVwbGljYXRlZCBhY3Jvc3MgYWxsIHRocmVlIGlucHV0cywgYnV0IHN3aXp6bGVkOgorICogICAgIEZpcnN0IGFyZ3VtZW50OiB4eXp5CisgKiAgICAgU2Vjb25kIGFyZ3VtZW50OiB4eXp4CisgKiAgICAgVGhpcmQgYXJndW1lbnQ6IHh5encKKyAqICAgV2hlbmV2ZXIgdGhlIHJlc3VsdCBpcyB1c2VkIGxhdGVyIGluIHRoZSBmcmFnbWVudCBwcm9ncmFtLCBmZ2xyeCBmb3JjZXMKKyAqICAgeCBhbmQgdyB0byBiZSAxLjAgaW4gdGhlIGlucHV0IHNlbGVjdGlvbjsgSSBkb24ndCBrbm93IHdoZXRoZXIgdGhpcyBpcworICogICBzdHJpY3RseSBuZWNlc3NhcnkKKyAqLworI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfRE9UICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01VTCAgICAgICAgICAgICAgICAgICAgICgyIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9BREQgICAgICAgICAgICAgICAgICAgICAoMyA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFEICAgICAgICAgICAgICAgICAgICAgKDQgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0RTVCAgICAgICAgICAgICAgICAgICAgICg1IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9GUkMgICAgICAgICAgICAgICAgICAgICAoNiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTUFYICAgICAgICAgICAgICAgICAgICAgKDcgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX01JTiAgICAgICAgICAgICAgICAgICAgICg4IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9TR0UgICAgICAgICAgICAgICAgICAgICAoOSA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfU0xUICAgICAgICAgICAgICAgICAgICAgKDEwIDw8IDApCisJLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHZlY3RvcihzY2FsYXIsIHZlY3RvcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyICAgICAgICAgICAgICAgICAgICgxMiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfQVJMICAgICAgICAgICAgICAgICAgICAgKDEzIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9FWFAgICAgICAgICAgICAgICAgICAgICAoNjUgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0xPRyAgICAgICAgICAgICAgICAgICAgICg2NiA8PCAwKQorCS8qIFVzZWQgaW4gZm9nIGNvbXB1dGF0aW9ucywgc2NhbGFyKHNjYWxhcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzY3ICAgICAgICAgICAgICAgICAgICg2NyA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTElUICAgICAgICAgICAgICAgICAgICAgKDY4IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9QT1cgICAgICAgICAgICAgICAgICAgICAoNjkgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1JDUCAgICAgICAgICAgICAgICAgICAgICg3MCA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfUlNRICAgICAgICAgICAgICAgICAgICAgKDcyIDw8IDApCisJLyogVXNlZCBpbiBHTF9QT0lOVF9ESVNUQU5DRV9BVFRFTlVBVElPTl9BUkIsIHNjYWxhcihzY2FsYXIpICovCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9VTks3MyAgICAgICAgICAgICAgICAgICAoNzMgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX0VYMiAgICAgICAgICAgICAgICAgICAgICg3NSA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfT1BfTEcyICAgICAgICAgICAgICAgICAgICAgKDc2IDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX09VVF9PUF9NQURfMiAgICAgICAgICAgICAgICAgICAoMTI4IDw8IDApCisJLyogYWxsIHRlbXBzLCB2ZWN0b3Ioc2NhbGFyLCB2ZWN0b3IsIHZlY3RvcikgKi8KKyNkZWZpbmUgUjMwMF9WUElfT1VUX09QX1VOSzEyOSAgICAgICAgICAgICAgICAgICgxMjkgPDwgMCkKKworI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX1RFTVBPUkFSWSAgICAgICAgKDAgPDwgOCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19DTEFTU19BRERSICAgICAgICAgICAgICgxIDw8IDgpCisjZGVmaW5lIFIzMDBfVlBJX09VVF9SRUdfQ0xBU1NfUkVTVUxUICAgICAgICAgICAoMiA8PCA4KQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgKDMxIDw8IDgpCisKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgIDEzCisJLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLworI2RlZmluZSBSMzAwX1ZQSV9PVVRfUkVHX0lOREVYX01BU0sgICAgICAgICAgICAgKDMxIDw8IDEzKQorCisjZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9YICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMCkKKyNkZWZpbmUgUjMwMF9WUElfT1VUX1dSSVRFX1kgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQorI2RlZmluZSBSMzAwX1ZQSV9PVVRfV1JJVEVfWiAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjIpCisjZGVmaW5lIFIzMDBfVlBJX09VVF9XUklURV9XICAgICAgICAgICAgICAgICAgICAoMSA8PCAyMykKKworI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfVEVNUE9SQVJZICAgICAgICAgKDAgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX0FUVFJJQlVURSAgICAgICAgICgxIDw8IDApCisjZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19DTEFTU19QQVJBTUVURVIgICAgICAgICAoMiA8PCAwKQorI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfQ0xBU1NfTk9ORSAgICAgICAgICAgICAgKDkgPDwgMCkKKyNkZWZpbmUgUjMwMF9WUElfSU5fUkVHX0NMQVNTX01BU0sgICAgICAgICAgICAgICgzMSA8PCAwKQorCisjZGVmaW5lIFIzMDBfVlBJX0lOX1JFR19JTkRFWF9TSElGVCAgICAgICAgICAgICA1CisJLyogR1VFU1MgYmFzZWQgb24gZmdscnggbmF0aXZlIGxpbWl0cyAqLworI2RlZmluZSBSMzAwX1ZQSV9JTl9SRUdfSU5ERVhfTUFTSyAgICAgICAgICAgICAgKDI1NSA8PCA1KQorCisvKiBUaGUgUjMwMCBjYW4gc2VsZWN0IGNvbXBvbmVudHMgZnJvbSB0aGUgaW5wdXQgcmVnaXN0ZXIgYXJiaXRyYXJpbHkuCisgKiBVc2UgdGhlIGZvbGxvd2luZyBjb25zdGFudHMsIHNoaWZ0ZWQgYnkgdGhlIGNvbXBvbmVudCBzaGlmdCB5b3UKKyAqIHdhbnQgdG8gc2VsZWN0CisgKi8KKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1ggICAgMAorI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWSAgICAxCisjZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9aICAgIDIKKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX1cgICAgMworI2RlZmluZSBSMzAwX1ZQSV9JTl9TRUxFQ1RfWkVSTyA0CisjZGVmaW5lIFIzMDBfVlBJX0lOX1NFTEVDVF9PTkUgIDUKKyNkZWZpbmUgUjMwMF9WUElfSU5fU0VMRUNUX01BU0sgNworCisjZGVmaW5lIFIzMDBfVlBJX0lOX1hfU0hJRlQgICAgICAgICAgICAgICAgICAgICAxMworI2RlZmluZSBSMzAwX1ZQSV9JTl9ZX1NISUZUICAgICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgUjMwMF9WUElfSU5fWl9TSElGVCAgICAgICAgICAgICAgICAgICAgIDE5CisjZGVmaW5lIFIzMDBfVlBJX0lOX1dfU0hJRlQgICAgICAgICAgICAgICAgICAgICAyMgorCisjZGVmaW5lIFIzMDBfVlBJX0lOX05FR19YICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNSkKKyNkZWZpbmUgUjMwMF9WUElfSU5fTkVHX1kgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI2KQorI2RlZmluZSBSMzAwX1ZQSV9JTl9ORUdfWiAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCisjZGVmaW5lIFIzMDBfVlBJX0lOX05FR19XICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKKy8qIEVORDogVmVydGV4IHByb2dyYW0gaW5zdHJ1Y3Rpb24gc2V0ICovCisKKy8qIEJFR0lOOiBQYWNrZXQgMyBjb21tYW5kcyAqLworCisvKiBBIHByaW1pdGl2ZSBlbWlzc2lvbiBkd29yZC4gKi8KKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTk9ORSAgICAgICAgICAgICAgICAgICAgICgwIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1BPSU5UICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FICAgICAgICAgICAgICAgICAgICAgKDIgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfTElORV9TVFJJUCAgICAgICAgICAgICAgICgzIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9MSVNUICAgICAgICAgICAgICAgICAoNCA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9UUklfRkFOICAgICAgICAgICAgICAgICAgKDUgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfVFJJX1NUUklQICAgICAgICAgICAgICAgICg2IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1RSSV9UWVBFMiAgICAgICAgICAgICAgICAoNyA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9SRUNUX0xJU1QgICAgICAgICAgICAgICAgKDggPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUICAgICAgICAgICg5IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUICAgICAgICAgICAoMTAgPDwgMCkKKwkvKiBHVUVTUyAoYmFzZWQgb24gcjIwMCkgKi8KKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUE9JTlRfU1BSSVRFUyAgICAgICAgICAgICgxMSA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9MSU5FX0xPT1AgICAgICAgICAgICAgICAgKDEyIDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX1FVQURTICAgICAgICAgICAgICAgICAgICAoMTMgPDwgMCkKKyNkZWZpbmUgUjMwMF9QUklNX1RZUEVfUVVBRF9TVFJJUCAgICAgICAgICAgICAgICgxNCA8PCAwKQorI2RlZmluZSBSMzAwX1BSSU1fVFlQRV9QT0xZR09OICAgICAgICAgICAgICAgICAgKDE1IDw8IDApCisjZGVmaW5lIFIzMDBfUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgICAweEYKKyNkZWZpbmUgUjMwMF9QUklNX1dBTEtfSU5EICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFIzMDBfUFJJTV9XQUxLX0xJU1QgICAgICAgICAgICAgICAgICAgICAoMiA8PCA0KQorI2RlZmluZSBSMzAwX1BSSU1fV0FMS19SSU5HICAgICAgICAgICAgICAgICAgICAgKDMgPDwgNCkKKyNkZWZpbmUgUjMwMF9QUklNX1dBTEtfTUFTSyAgICAgICAgICAgICAgICAgICAgICgzIDw8IDQpCisJLyogR1VFU1MgKGJhc2VkIG9uIHIyMDApICovCisjZGVmaW5lIFIzMDBfUFJJTV9DT0xPUl9PUkRFUl9CR1JBICAgICAgICAgICAgICAoMCA8PCA2KQorI2RlZmluZSBSMzAwX1BSSU1fQ09MT1JfT1JERVJfUkdCQSAgICAgICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgUjMwMF9QUklNX05VTV9WRVJUSUNFU19TSElGVCAgICAgICAgICAgIDE2CisjZGVmaW5lIFIzMDBfUFJJTV9OVU1fVkVSVElDRVNfTUFTSyAgICAgICAgICAgICAweGZmZmYKKworLyogRHJhdyBhIHByaW1pdGl2ZSBmcm9tIHZlcnRleCBkYXRhIGluIGFycmF5cyBsb2FkZWQgdmlhIDNEX0xPQURfVkJQTlRSLgorICogVHdvIHBhcmFtZXRlciBkd29yZHM6CisgKiAwLiBUaGUgZmlyc3QgcGFyYW1ldGVyIGFwcGVhcnMgdG8gYmUgYWx3YXlzIDAKKyAqIDEuIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgc3RhbmRhcmQgcHJpbWl0aXZlIGVtaXNzaW9uIGR3b3JkLgorICovCisjZGVmaW5lIFIzMDBfUEFDS0VUM18zRF9EUkFXX1ZCVUYgICAgICAgICAgIDB4MDAwMDI4MDAKKworLyogU3BlY2lmeSB0aGUgZnVsbCBzZXQgb2YgdmVydGV4IGFycmF5cyBhcyAoYWRkcmVzcywgc3RyaWRlKS4KKyAqIFRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdGhlIG51bWJlciBvZiB2ZXJ0ZXggYXJyYXlzIHNwZWNpZmllZC4KKyAqIFRoZSByZXN0IG9mIHRoZSBjb21tYW5kIGlzIGEgdmFyaWFibGUgbGVuZ3RoIGxpc3Qgb2YgYmxvY2tzLCB3aGVyZQorICogZWFjaCBibG9jayBpcyB0aHJlZSBkd29yZHMgbG9uZyBhbmQgc3BlY2lmaWVzIHR3byBhcnJheXMuCisgKiBUaGUgZmlyc3QgZHdvcmQgb2YgYSBibG9jayBpcyBzcGxpdCBpbnRvIHR3byB3b3JkcywgdGhlIGxvd2VyIHNpZ25pZmljYW50CisgKiB3b3JkIHJlZmVycyB0byB0aGUgZmlyc3QgYXJyYXksIHRoZSBtb3JlIHNpZ25pZmljYW50IHdvcmQgdG8gdGhlIHNlY29uZAorICogYXJyYXkgaW4gdGhlIGJsb2NrLgorICogVGhlIGxvdyBieXRlIG9mIGVhY2ggd29yZCBjb250YWlucyB0aGUgc2l6ZSBvZiBhbiBhcnJheSBlbnRyeSBpbiBkd29yZHMsCisgKiB0aGUgaGlnaCBieXRlIGNvbnRhaW5zIHRoZSBzdHJpZGUgb2YgdGhlIGFycmF5LgorICogVGhlIHNlY29uZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBmaXJzdCBhcnJheSwKKyAqIHRoZSB0aGlyZCBkd29yZCBvZiBhIGJsb2NrIGNvbnRhaW5zIHRoZSBwb2ludGVyIHRvIHRoZSBzZWNvbmQgYXJyYXkuCisgKiBOb3RlIHRoYXQgaWYgdGhlIHRvdGFsIG51bWJlciBvZiBhcnJheXMgaXMgb2RkLCB0aGUgdGhpcmQgZHdvcmQgb2YKKyAqIHRoZSBsYXN0IGJsb2NrIGlzIG9taXR0ZWQuCisgKi8KKyNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0xPQURfVkJQTlRSICAgICAgICAgMHgwMDAwMkYwMAorCisjZGVmaW5lIFIzMDBfUEFDS0VUM19JTkRYX0JVRkZFUiAgICAgICAgICAgIDB4MDAwMDMzMDAKKyMgICAgZGVmaW5lIFIzMDBfRUJfVU5LMV9TSElGVCAgICAgICAgICAgICAgICAgICAgICAyNAorIyAgICBkZWZpbmUgUjMwMF9FQl9VTksxICAgICAgICAgICAgICAgICAgICAoMHg4MDw8MjQpCisjICAgIGRlZmluZSBSMzAwX0VCX1VOSzIgICAgICAgICAgICAgICAgICAgICAgICAweDA4MTAKKyNkZWZpbmUgUjMwMF9QQUNLRVQzXzNEX0RSQVdfVkJVRl8yICAgICAgICAgMHgwMDAwMzQwMAorI2RlZmluZSBSMzAwX1BBQ0tFVDNfM0RfRFJBV19JTkRYXzIgICAgICAgICAweDAwMDAzNjAwCisKKy8qIEVORDogUGFja2V0IDMgY29tbWFuZHMgKi8KKworCisvKiBDb2xvciBmb3JtYXRzIGZvciAyZCBwYWNrZXRzCisgKi8KKyNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQ0k4CTIKKyNkZWZpbmUgUjMwMF9DUF9DT0xPUl9GT1JNQVRfQVJHQjE1NTUJMworI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9SR0I1NjUJNAorI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2CisjZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjMzMgk3CisjZGVmaW5lIFIzMDBfQ1BfQ09MT1JfRk9STUFUX1JHQjgJOQorI2RlZmluZSBSMzAwX0NQX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQorCisvKgorICogQ1AgdHlwZS0zIHBhY2tldHMKKyAqLworI2RlZmluZSBSMzAwX0NQX0NNRF9CSVRCTFRfTVVMVEkJMHhDMDAwOUIwMAorCisjZGVmaW5lIFI1MDBfVkFQX0lOREVYX09GRlNFVAkJMHgyMDhjCisKKyNkZWZpbmUgUjUwMF9HQV9VU19WRUNUT1JfSU5ERVggICAgICAgICAweDQyNTAKKyNkZWZpbmUgUjUwMF9HQV9VU19WRUNUT1JfREFUQSAgICAgICAgICAweDQyNTQKKworI2RlZmluZSBSNTAwX1JTX0lQXzAgICAgICAgICAgICAgICAgICAgIDB4NDA3NAorI2RlZmluZSBSNTAwX1JTX0lOU1RfMCAgICAgICAgICAgICAgICAgIDB4NDMyMAorCisjZGVmaW5lIFI1MDBfVVNfQ09ORklHICAgICAgICAgICAgICAgICAgMHg0NjAwCisKKyNkZWZpbmUgUjUwMF9VU19GQ19DVFJMCQkJMHg0NjI0CisjZGVmaW5lIFI1MDBfVVNfQ09ERV9BRERSCQkweDQ2MzAKKworI2RlZmluZSBSNTAwX1JCM0RfQ09MT1JfQ0xFQVJfVkFMVUVfQVIgIDB4NDZjMAorI2RlZmluZSBSNTAwX1JCM0RfQ09OU1RBTlRfQ09MT1JfQVIgICAgIDB4NGVmOAorCisjZW5kaWYgLyogX1IzMDBfUkVHX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZGU4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jcC5jCkBAIC0wLDAgKzEsMTc3MyBAQAorLyogcmFkZW9uX2NwLmMgLS0gQ1Agc3VwcG9ydCBmb3IgUmFkZW9uIC0qLSBsaW51eC1jIC0qLSAqLworLyoKKyAqIENvcHlyaWdodCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCisgKiBDb3B5cmlnaHQgMjAwNyBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+CisgKiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorI2luY2x1ZGUgInIzMDBfcmVnLmgiCisKKyNpbmNsdWRlICJyYWRlb25fbWljcm9jb2RlLmgiCisKKyNkZWZpbmUgUkFERU9OX0ZJRk9fREVCVUcJMAorCitzdGF0aWMgaW50IHJhZGVvbl9kb19jbGVhbnVwX2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKKworc3RhdGljIHUzMiBSNTAwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwl1MzIgcmV0OworCVJBREVPTl9XUklURShSNTIwX01DX0lORF9JTkRFWCwgMHg3ZjAwMDAgfCAoYWRkciAmIDB4ZmYpKTsKKwlyZXQgPSBSQURFT05fUkVBRChSNTIwX01DX0lORF9EQVRBKTsKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB1MzIgUlM0ODBfUkVBRF9NQ0lORChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIGludCBhZGRyKQoreworCXUzMiByZXQ7CisJUkFERU9OX1dSSVRFKFJTNDgwX05CX01DX0lOREVYLCBhZGRyICYgMHhmZik7CisJcmV0ID0gUkFERU9OX1JFQUQoUlM0ODBfTkJfTUNfREFUQSk7CisJUkFERU9OX1dSSVRFKFJTNDgwX05CX01DX0lOREVYLCAweGZmKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIFJTNjkwX1JFQURfTUNJTkQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwl1MzIgcmV0OworCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgKGFkZHIgJiBSUzY5MF9NQ19JTkRFWF9NQVNLKSk7CisJcmV0ID0gUkFERU9OX1JFQUQoUlM2OTBfTUNfREFUQSk7CisJUkFERU9OX1dSSVRFKFJTNjkwX01DX0lOREVYLCBSUzY5MF9NQ19JTkRFWF9NQVNLKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdTMyIElHUF9SRUFEX01DSU5EKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgaW50IGFkZHIpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApCisJCXJldHVybiBSUzY5MF9SRUFEX01DSU5EKGRldl9wcml2LCBhZGRyKTsKKwllbHNlCisJCXJldHVybiBSUzQ4MF9SRUFEX01DSU5EKGRldl9wcml2LCBhZGRyKTsKK30KKwordTMyIHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKK3sKKworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTE1KQorCQlyZXR1cm4gUjUwMF9SRUFEX01DSU5EKGRldl9wcml2LCBSVjUxNV9NQ19GQl9MT0NBVElPTik7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJcmV0dXJuIFJTNjkwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNjkwX01DX0ZCX0xPQ0FUSU9OKTsKKwllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpCisJCXJldHVybiBSNTAwX1JFQURfTUNJTkQoZGV2X3ByaXYsIFI1MjBfTUNfRkJfTE9DQVRJT04pOworCWVsc2UKKwkJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9NQ19GQl9MT0NBVElPTik7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHUzMiBmYl9sb2MpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkKKwkJUlM2OTBfV1JJVEVfTUNJTkQoUlM2OTBfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPiBDSElQX1JWNTE1KQorCQlSNTAwX1dSSVRFX01DSU5EKFI1MjBfTUNfRkJfTE9DQVRJT04sIGZiX2xvYyk7CisJZWxzZQorCQlSQURFT05fV1JJVEUoUkFERU9OX01DX0ZCX0xPQ0FUSU9OLCBmYl9sb2MpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwgdTMyIGFncF9sb2MpCit7CisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MTUpCisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfQUdQX0xPQ0FUSU9OLCBhZ3BfbG9jKTsKKwllbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQorCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfTE9DQVRJT04sIGFncF9sb2MpOworCWVsc2UgaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID4gQ0hJUF9SVjUxNSkKKwkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7CisJZWxzZQorCQlSQURFT05fV1JJVEUoUkFERU9OX01DX0FHUF9MT0NBVElPTiwgYWdwX2xvYyk7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl93cml0ZV9hZ3BfYmFzZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsIHU2NCBhZ3BfYmFzZSkKK3sKKwl1MzIgYWdwX2Jhc2VfaGkgPSB1cHBlcl8zMl9iaXRzKGFncF9iYXNlKTsKKwl1MzIgYWdwX2Jhc2VfbG8gPSBhZ3BfYmFzZSAmIDB4ZmZmZmZmZmY7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkgeworCQlSNTAwX1dSSVRFX01DSU5EKFJWNTE1X01DX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCVI1MDBfV1JJVEVfTUNJTkQoUlY1MTVfTUNfQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0gZWxzZSBpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzY5MCkgeworCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfQkFTRSwgYWdwX2Jhc2VfbG8pOworCQlSUzY5MF9XUklURV9NQ0lORChSUzY5MF9NQ19BR1BfQkFTRV8yLCBhZ3BfYmFzZV9oaSk7CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA+IENISVBfUlY1MTUpIHsKKwkJUjUwMF9XUklURV9NQ0lORChSNTIwX01DX0FHUF9CQVNFLCBhZ3BfYmFzZV9sbyk7CisJCVI1MDBfV1JJVEVfTUNJTkQoUjUyMF9NQ19BR1BfQkFTRV8yLCBhZ3BfYmFzZV9oaSk7CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNDgwKSB7CisJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKKwkJUkFERU9OX1dSSVRFKFJTNDgwX0FHUF9CQVNFXzIsIDApOworCX0gZWxzZSB7CisJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0UsIGFncF9iYXNlX2xvKTsKKwkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjIwMCkKKwkJCVJBREVPTl9XUklURShSQURFT05fQUdQX0JBU0VfMiwgYWdwX2Jhc2VfaGkpOworCX0KK30KKworc3RhdGljIGludCBSQURFT05fUkVBRF9QTEwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIGludCBhZGRyKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisKKwlSQURFT05fV1JJVEU4KFJBREVPTl9DTE9DS19DTlRMX0lOREVYLCBhZGRyICYgMHgxZik7CisJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9DTE9DS19DTlRMX0RBVEEpOworfQorCitzdGF0aWMgdTMyIFJBREVPTl9SRUFEX1BDSUUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LCBpbnQgYWRkcikKK3sKKwlSQURFT05fV1JJVEU4KFJBREVPTl9QQ0lFX0lOREVYLCBhZGRyICYgMHhmZik7CisJcmV0dXJuIFJBREVPTl9SRUFEKFJBREVPTl9QQ0lFX0RBVEEpOworfQorCisjaWYgUkFERU9OX0ZJRk9fREVCVUcKK3N0YXRpYyB2b2lkIHJhZGVvbl9zdGF0dXMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlwcmludGsoIiVzOlxuIiwgX19mdW5jX18pOworCXByaW50aygiUkJCTV9TVEFUVVMgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKSk7CisJcHJpbnRrKCJDUF9SQl9SVFBSID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKSk7CisJcHJpbnRrKCJDUF9SQl9XVFBSID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9XUFRSKSk7CisJcHJpbnRrKCJBSUNfQ05UTCA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX0NOVEwpKTsKKwlwcmludGsoIkFJQ19TVEFUID0gMHglMDh4XG4iLAorCSAgICAgICAodW5zaWduZWQgaW50KVJBREVPTl9SRUFEKFJBREVPTl9BSUNfU1RBVCkpOworCXByaW50aygiQUlDX1BUX0JBU0UgPSAweCUwOHhcbiIsCisJICAgICAgICh1bnNpZ25lZCBpbnQpUkFERU9OX1JFQUQoUkFERU9OX0FJQ19QVF9CQVNFKSk7CisJcHJpbnRrKCJUTEJfQUREUiA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1RMQl9BRERSKSk7CisJcHJpbnRrKCJUTEJfREFUQSA9IDB4JTA4eFxuIiwKKwkgICAgICAgKHVuc2lnbmVkIGludClSQURFT05fUkVBRChSQURFT05fQUlDX1RMQl9EQVRBKSk7Cit9CisjZW5kaWYKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogRW5naW5lLCBGSUZPIGNvbnRyb2wKKyAqLworCitzdGF0aWMgaW50IHJhZGVvbl9kb19waXhjYWNoZV9mbHVzaChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCXUzMiB0bXA7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgeworCQl0bXAgPSBSQURFT05fUkVBRChSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFUKTsKKwkJdG1wIHw9IFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTDsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIHRtcCk7CisKKwkJZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQkJaWYgKCEoUkFERU9OX1JFQUQoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCkKKwkJCSAgICAgICYgUkFERU9OX1JCM0RfRENfQlVTWSkpIHsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJCURSTV9VREVMQVkoMSk7CisJCX0KKwl9IGVsc2UgeworCQkvKiAzRCAqLworCQl0bXAgPSBSQURFT05fUkVBRChSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCk7CisJCXRtcCB8PSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEw7CisJCVJBREVPTl9XUklURShSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgdG1wKTsKKworCQkvKiAyRCAqLworCQl0bXAgPSBSQURFT05fUkVBRChSMzAwX0RTVENBQ0hFX0NUTFNUQVQpOworCQl0bXAgfD0gUkFERU9OX1JCM0RfRENfRkxVU0hfQUxMOworCQlSQURFT05fV1JJVEUoUjMwMF9EU1RDQUNIRV9DVExTVEFULCB0bXApOworCisJCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJCWlmICghKFJBREVPTl9SRUFEKFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVCkKKwkJCSAgJiBSQURFT05fUkIzRF9EQ19CVVNZKSkgeworCQkJCXJldHVybiAwOworCQkJfQorCQkJRFJNX1VERUxBWSgxKTsKKwkJfQorCX0KKworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKwlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2RvX3dhaXRfZm9yX2ZpZm8oZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IGVudHJpZXMpCit7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+c3RhdHMuYm94ZXMgfD0gUkFERU9OX0JPWF9XQUlUX0lETEU7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCWludCBzbG90cyA9IChSQURFT05fUkVBRChSQURFT05fUkJCTV9TVEFUVVMpCisJCQkgICAgICYgUkFERU9OX1JCQk1fRklGT0NOVF9NQVNLKTsKKwkJaWYgKHNsb3RzID49IGVudHJpZXMpCisJCQlyZXR1cm4gMDsKKwkJRFJNX1VERUxBWSgxKTsKKwl9CisKKyNpZiBSQURFT05fRklGT19ERUJVRworCURSTV9FUlJPUigiZmFpbGVkIVxuIik7CisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisjZW5kaWYKKwlyZXR1cm4gLUVCVVNZOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJaW50IGksIHJldDsKKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCXJldCA9IHJhZGVvbl9kb193YWl0X2Zvcl9maWZvKGRldl9wcml2LCA2NCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBkZXZfcHJpdi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJaWYgKCEoUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU1RBVFVTKQorCQkgICAgICAmIFJBREVPTl9SQkJNX0FDVElWRSkpIHsKKwkJCXJhZGVvbl9kb19waXhjYWNoZV9mbHVzaChkZXZfcHJpdik7CisJCQlyZXR1cm4gMDsKKwkJfQorCQlEUk1fVURFTEFZKDEpOworCX0KKworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKwlyYWRlb25fc3RhdHVzKGRldl9wcml2KTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9pbml0X3BpcGVzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdikKK3sKKwl1aW50MzJfdCBnYl90aWxlX2NvbmZpZywgZ2JfcGlwZV9zZWwgPSAwOworCisJLyogUlM0eHgvUlM2eHgvUjR4eC9SNXh4ICovCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID49IENISVBfUjQyMCkgeworCQlnYl9waXBlX3NlbCA9IFJBREVPTl9SRUFEKFI0MDBfR0JfUElQRV9TRUxFQ1QpOworCQlkZXZfcHJpdi0+bnVtX2diX3BpcGVzID0gKChnYl9waXBlX3NlbCA+PiAxMikgJiAweDMpICsgMTsKKwl9IGVsc2UgeworCQkvKiBSM3h4ICovCisJCWlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzAwKSB8fAorCQkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjM1MCkpIHsKKwkJCWRldl9wcml2LT5udW1fZ2JfcGlwZXMgPSAyOworCQl9IGVsc2UgeworCQkJLyogUjNWeHggKi8KKwkJCWRldl9wcml2LT5udW1fZ2JfcGlwZXMgPSAxOworCQl9CisJfQorCURSTV9JTkZPKCJOdW0gcGlwZXM6ICVkXG4iLCBkZXZfcHJpdi0+bnVtX2diX3BpcGVzKTsKKworCWdiX3RpbGVfY29uZmlnID0gKFIzMDBfRU5BQkxFX1RJTElORyB8IFIzMDBfVElMRV9TSVpFXzE2IC8qfCBSMzAwX1NVQlBJWEVMXzFfMTYqLyk7CisKKwlzd2l0Y2ggKGRldl9wcml2LT5udW1fZ2JfcGlwZXMpIHsKKwljYXNlIDI6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SMzAwOyBicmVhazsKKwljYXNlIDM6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SNDIwXzNQOyBicmVhazsKKwljYXNlIDQ6IGdiX3RpbGVfY29uZmlnIHw9IFIzMDBfUElQRV9DT1VOVF9SNDIwOyBicmVhazsKKwlkZWZhdWx0OgorCWNhc2UgMTogZ2JfdGlsZV9jb25maWcgfD0gUjMwMF9QSVBFX0NPVU5UX1JWMzUwOyBicmVhazsKKwl9CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SVjUxNSkgeworCQlSQURFT05fV1JJVEVfUExMKFI1MDBfRFlOX1NDTEtfUFdNRU1fUElQRSwgKDEgfCAoKGdiX3BpcGVfc2VsID4+IDgpICYgMHhmKSA8PCA0KSk7CisJCVJBREVPTl9XUklURShSNTAwX1NVX1JFR19ERVNULCAoKDEgPDwgZGV2X3ByaXYtPm51bV9nYl9waXBlcykgLSAxKSk7CisJfQorCVJBREVPTl9XUklURShSMzAwX0dCX1RJTEVfQ09ORklHLCBnYl90aWxlX2NvbmZpZyk7CisJcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworCVJBREVPTl9XUklURShSMzAwX0RTVF9QSVBFX0NPTkZJRywgUkFERU9OX1JFQUQoUjMwMF9EU1RfUElQRV9DT05GSUcpIHwgUjMwMF9QSVBFX0FVVE9fQ09ORklHKTsKKwlSQURFT05fV1JJVEUoUjMwMF9SQjJEX0RTVENBQ0hFX01PREUsIChSQURFT05fUkVBRChSMzAwX1JCMkRfRFNUQ0FDSEVfTU9ERSkgfAorCQkJCQkgICAgICAgUjMwMF9EQ19BVVRPRkxVU0hfRU5BQkxFIHwKKwkJCQkJICAgICAgIFIzMDBfRENfRENfRElTQUJMRV9JR05PUkVfUEUpKTsKKworCit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENQIGNvbnRyb2wsIGluaXRpYWxpemF0aW9uCisgKi8KKworLyogTG9hZCB0aGUgbWljcm9jb2RlIGZvciB0aGUgQ1AgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9sb2FkX21pY3JvY29kZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCWludCBpOworCURSTV9ERUJVRygiXG4iKTsKKworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKworCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0FERFIsIDApOworCWlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMTAwKSB8fAorCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjEwMCkgfHwKKwkgICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYyMDApIHx8CisJICAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTMTAwKSB8fAorCSAgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SUzIwMCkpIHsKKwkJRFJNX0lORk8oIkxvYWRpbmcgUjEwMCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUjEwMF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSMTAwX2NwX21pY3JvY29kZVtpXVswXSk7CisJCX0KKwl9IGVsc2UgaWYgKCgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1IyMDApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWMjUwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjI4MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlMzMDApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFIyMDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFIyMDBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjIwMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzAwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SMzUwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjM1MCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlYzODApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNDgwKSkgeworCQlEUk1fSU5GTygiTG9hZGluZyBSMzAwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSMzAwX2NwX21pY3JvY29kZVtpXVsxXSk7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBTCwKKwkJCQkgICAgIFIzMDBfY3BfbWljcm9jb2RlW2ldWzBdKTsKKwkJfQorCX0gZWxzZSBpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjQyMCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY0MTApKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFI0MDAgTWljcm9jb2RlXG4iKTsKKwkJZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CisJCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX01FX1JBTV9EQVRBSCwKKwkJCQkgICAgIFI0MjBfY3BfbWljcm9jb2RlW2ldWzFdKTsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFMLAorCQkJCSAgICAgUjQyMF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSB7CisJCURSTV9JTkZPKCJMb2FkaW5nIFJTNjkwIE1pY3JvY29kZVxuIik7CisJCWZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgeworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUgsCisJCQkJICAgICBSUzY5MF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSUzY5MF9jcF9taWNyb2NvZGVbaV1bMF0pOworCQl9CisJfSBlbHNlIGlmICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjUxNSkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUjUyMCkgfHwKKwkJICAgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlY1MzApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1I1ODApIHx8CisJCSAgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JWNTYwKSB8fAorCQkgICAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPT0gQ0hJUF9SVjU3MCkpIHsKKwkJRFJNX0lORk8oIkxvYWRpbmcgUjUwMCBNaWNyb2NvZGVcbiIpOworCQlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKKwkJCVJBREVPTl9XUklURShSQURFT05fQ1BfTUVfUkFNX0RBVEFILAorCQkJCSAgICAgUjUyMF9jcF9taWNyb2NvZGVbaV1bMV0pOworCQkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9NRV9SQU1fREFUQUwsCisJCQkJICAgICBSNTIwX2NwX21pY3JvY29kZVtpXVswXSk7CisJCX0KKwl9Cit9CisKKy8qIEZsdXNoIGFueSBwZW5kaW5nIGNvbW1hbmRzIHRvIHRoZSBDUC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBqdXN0CisgKiBwcmlvciB0byBhIHdhaXQgZm9yIGlkbGUsIGFzIGl0IGluZm9ybXMgdGhlIGVuZ2luZSB0aGF0IHRoZSBjb21tYW5kCisgKiBzdHJlYW0gaXMgZW5kaW5nLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3BfZmx1c2goZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlEUk1fREVCVUcoIlxuIik7CisjaWYgMAorCXUzMiB0bXA7CisKKwl0bXAgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfV1BUUikgfCAoMSA8PCAzMSk7CisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCB0bXApOworI2VuZGlmCit9CisKKy8qIFdhaXQgZm9yIHRoZSBDUCB0byBnbyBpZGxlLgorICovCitpbnQgcmFkZW9uX2RvX2NwX2lkbGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlCRUdJTl9SSU5HKDYpOworCisJUkFERU9OX1BVUkdFX0NBQ0hFKCk7CisJUkFERU9OX1BVUkdFX1pDQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworfQorCisvKiBTdGFydCB0aGUgQ29tbWFuZCBQcm9jZXNzb3IuCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9zdGFydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygiXG4iKTsKKworCXJhZGVvbl9kb193YWl0X2Zvcl9pZGxlKGRldl9wcml2KTsKKworCVJBREVPTl9XUklURShSQURFT05fQ1BfQ1NRX0NOVEwsIGRldl9wcml2LT5jcF9tb2RlKTsKKworCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMTsKKworCUJFR0lOX1JJTkcoNik7CisKKwlSQURFT05fUFVSR0VfQ0FDSEUoKTsKKwlSQURFT05fUFVSR0VfWkNBQ0hFKCk7CisJUkFERU9OX1dBSVRfVU5USUxfSURMRSgpOworCisJQURWQU5DRV9SSU5HKCk7CisJQ09NTUlUX1JJTkcoKTsKK30KKworLyogUmVzZXQgdGhlIENvbW1hbmQgUHJvY2Vzc29yLiAgVGhpcyB3aWxsIG5vdCBmbHVzaCBhbnkgcGVuZGluZworICogY29tbWFuZHMsIHNvIHlvdSBtdXN0IHdhaXQgZm9yIHRoZSBDUCBjb21tYW5kIHN0cmVhbSB0byBjb21wbGV0ZQorICogYmVmb3JlIGNhbGxpbmcgdGhpcyByb3V0aW5lLgorICovCitzdGF0aWMgdm9pZCByYWRlb25fZG9fY3BfcmVzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwl1MzIgY3VyX3JlYWRfcHRyOworCURSTV9ERUJVRygiXG4iKTsKKworCWN1cl9yZWFkX3B0ciA9IFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSKTsKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1dQVFIsIGN1cl9yZWFkX3B0cik7CisJU0VUX1JJTkdfSEVBRChkZXZfcHJpdiwgY3VyX3JlYWRfcHRyKTsKKwlkZXZfcHJpdi0+cmluZy50YWlsID0gY3VyX3JlYWRfcHRyOworfQorCisvKiBTdG9wIHRoZSBDb21tYW5kIFByb2Nlc3Nvci4gIFRoaXMgd2lsbCBub3QgZmx1c2ggYW55IHBlbmRpbmcKKyAqIGNvbW1hbmRzLCBzbyB5b3UgbXVzdCBmbHVzaCB0aGUgY29tbWFuZCBzdHJlYW0gYW5kIHdhaXQgZm9yIHRoZSBDUAorICogdG8gZ28gaWRsZSBiZWZvcmUgY2FsbGluZyB0aGlzIHJvdXRpbmUuCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9kb19jcF9zdG9wKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJRFJNX0RFQlVHKCJcbiIpOworCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9DU1FfQ05UTCwgUkFERU9OX0NTUV9QUklESVNfSU5ERElTKTsKKworCWRldl9wcml2LT5jcF9ydW5uaW5nID0gMDsKK30KKworLyogUmVzZXQgdGhlIGVuZ2luZS4gIFRoaXMgd2lsbCBzdG9wIHRoZSBDUCBpZiBpdCBpcyBydW5uaW5nLgorICovCitzdGF0aWMgaW50IHJhZGVvbl9kb19lbmdpbmVfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgY2xvY2tfY250bF9pbmRleCA9IDAsIG1jbGtfY250bCA9IDAsIHJiYm1fc29mdF9yZXNldDsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlyYWRlb25fZG9fcGl4Y2FjaGVfZmx1c2goZGV2X3ByaXYpOworCisJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spIDw9IENISVBfUlY0MTApIHsKKwkJLyogbWF5IG5lZWQgc29tZXRoaW5nIHNpbWlsYXIgZm9yIG5ld2VyIGNoaXBzICovCisJCWNsb2NrX2NudGxfaW5kZXggPSBSQURFT05fUkVBRChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCk7CisJCW1jbGtfY250bCA9IFJBREVPTl9SRUFEX1BMTChkZXYsIFJBREVPTl9NQ0xLX0NOVEwpOworCisJCVJBREVPTl9XUklURV9QTEwoUkFERU9OX01DTEtfQ05UTCwgKG1jbGtfY250bCB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fTUNMS0EgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DTEtCIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9ZQ0xLQSB8CisJCQkJCQkgICAgUkFERU9OX0ZPUkNFT05fWUNMS0IgfAorCQkJCQkJICAgIFJBREVPTl9GT1JDRU9OX01DIHwKKwkJCQkJCSAgICBSQURFT05fRk9SQ0VPTl9BSUMpKTsKKwl9CisKKwlyYmJtX3NvZnRfcmVzZXQgPSBSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKKworCVJBREVPTl9XUklURShSQURFT05fUkJCTV9TT0ZUX1JFU0VULCAocmJibV9zb2Z0X3Jlc2V0IHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9ISSB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX1NFIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkUgfAorCQkJCQkgICAgICBSQURFT05fU09GVF9SRVNFVF9QUCB8CisJCQkJCSAgICAgIFJBREVPTl9TT0ZUX1JFU0VUX0UyIHwKKwkJCQkJICAgICAgUkFERU9OX1NPRlRfUkVTRVRfUkIpKTsKKwlSQURFT05fUkVBRChSQURFT05fUkJCTV9TT0ZUX1JFU0VUKTsKKwlSQURFT05fV1JJVEUoUkFERU9OX1JCQk1fU09GVF9SRVNFVCwgKHJiYm1fc29mdF9yZXNldCAmCisJCQkJCSAgICAgIH4oUkFERU9OX1NPRlRfUkVTRVRfQ1AgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfSEkgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfU0UgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkUgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUFAgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfRTIgfAorCQkJCQkJUkFERU9OX1NPRlRfUkVTRVRfUkIpKSk7CisJUkFERU9OX1JFQUQoUkFERU9OX1JCQk1fU09GVF9SRVNFVCk7CisKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjQxMCkgeworCQlSQURFT05fV1JJVEVfUExMKFJBREVPTl9NQ0xLX0NOVEwsIG1jbGtfY250bCk7CisJCVJBREVPTl9XUklURShSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwgY2xvY2tfY250bF9pbmRleCk7CisJCVJBREVPTl9XUklURShSQURFT05fUkJCTV9TT0ZUX1JFU0VULCByYmJtX3NvZnRfcmVzZXQpOworCX0KKworCS8qIHNldHVwIHRoZSByYXN0ZXIgcGlwZXMgKi8KKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPj0gQ0hJUF9SMzAwKQorCSAgICByYWRlb25faW5pdF9waXBlcyhkZXZfcHJpdik7CisKKwkvKiBSZXNldCB0aGUgQ1AgcmluZyAqLworCXJhZGVvbl9kb19jcF9yZXNldChkZXZfcHJpdik7CisKKwkvKiBUaGUgQ1AgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcgYWZ0ZXIgYW4gZW5naW5lIHJlc2V0ICovCisJZGV2X3ByaXYtPmNwX3J1bm5pbmcgPSAwOworCisJLyogUmVzZXQgYW55IHBlbmRpbmcgdmVydGV4LCBpbmRpcmVjdCBidWZmZXJzICovCisJcmFkZW9uX2ZyZWVsaXN0X3Jlc2V0KGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgIGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYpCit7CisJdTMyIHJpbmdfc3RhcnQsIGN1cl9yZWFkX3B0cjsKKwl1MzIgdG1wOworCisJLyogSW5pdGlhbGl6ZSB0aGUgbWVtb3J5IGNvbnRyb2xsZXIuIFdpdGggbmV3IG1lbW9yeSBtYXAsIHRoZSBmYiBsb2NhdGlvbgorCSAqIGlzIG5vdCBjaGFuZ2VkLCBpdCBzaG91bGQgaGF2ZSBiZWVuIHByb3Blcmx5IGluaXRpYWxpemVkIGFscmVhZHkuIFBhcnQKKwkgKiBvZiB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBjb2RlIGJlbG93IGlzIGJvZ3VzLCBhc3N1bWluZyB0aGUgR0FSVCBpcworCSAqIGFsd2F5cyBhcHBlbmRlZCB0byB0aGUgZmIgd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBjYXNlCisJICovCisJaWYgKCFkZXZfcHJpdi0+bmV3X21lbW1hcCkKKwkJcmFkZW9uX3dyaXRlX2ZiX2xvY2F0aW9uKGRldl9wcml2LAorCQkJICAgICAoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSkgJiAweGZmZmYwMDAwKQorCQkJICAgICB8IChkZXZfcHJpdi0+ZmJfbG9jYXRpb24gPj4gMTYpKTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCXJhZGVvbl93cml0ZV9hZ3BfYmFzZShkZXZfcHJpdiwgZGV2LT5hZ3AtPmJhc2UpOworCisJCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsCisJCQkgICAgICgoKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IC0gMSArCisJCQkJZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmYwMDAwKSB8CisJCQkgICAgICAoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgPj4gMTYpKSk7CisKKwkJcmluZ19zdGFydCA9IChkZXZfcHJpdi0+Y3BfcmluZy0+b2Zmc2V0CisJCQkgICAgICAtIGRldi0+YWdwLT5iYXNlCisJCQkgICAgICArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwl9IGVsc2UKKyNlbmRpZgorCQlyaW5nX3N0YXJ0ID0gKGRldl9wcml2LT5jcF9yaW5nLT5vZmZzZXQKKwkJCSAgICAgIC0gKHVuc2lnbmVkIGxvbmcpZGV2LT5zZy0+dmlydHVhbAorCQkJICAgICAgKyBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX0JBU0UsIHJpbmdfc3RhcnQpOworCisJLyogU2V0IHRoZSB3cml0ZSBwb2ludGVyIGRlbGF5ICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSX0RFTEFZLCAwKTsKKworCS8qIEluaXRpYWxpemUgdGhlIHJpbmcgYnVmZmVyJ3MgcmVhZCBhbmQgd3JpdGUgcG9pbnRlcnMgKi8KKwljdXJfcmVhZF9wdHIgPSBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfUlBUUik7CisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9XUFRSLCBjdXJfcmVhZF9wdHIpOworCVNFVF9SSU5HX0hFQUQoZGV2X3ByaXYsIGN1cl9yZWFkX3B0cik7CisJZGV2X3ByaXYtPnJpbmcudGFpbCA9IGN1cl9yZWFkX3B0cjsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfUlBUUl9BRERSLAorCQkJICAgICBkZXZfcHJpdi0+cmluZ19ycHRyLT5vZmZzZXQKKwkJCSAgICAgLSBkZXYtPmFncC0+YmFzZSArIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJc3RydWN0IGRybV9zZ19tZW0gKmVudHJ5ID0gZGV2LT5zZzsKKwkJdW5zaWduZWQgbG9uZyB0bXBfb2ZzLCBwYWdlX29mczsKKworCQl0bXBfb2ZzID0gZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0IC0KKwkJCQkodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsOworCQlwYWdlX29mcyA9IHRtcF9vZnMgPj4gUEFHRV9TSElGVDsKKworCQlSQURFT05fV1JJVEUoUkFERU9OX0NQX1JCX1JQVFJfQUREUiwgZW50cnktPmJ1c2FkZHJbcGFnZV9vZnNdKTsKKwkJRFJNX0RFQlVHKCJyaW5nIHJwdHI6IG9mZnNldD0weCUwOGx4IGhhbmRsZT0weCUwOGx4XG4iLAorCQkJICAodW5zaWduZWQgbG9uZyllbnRyeS0+YnVzYWRkcltwYWdlX29mc10sCisJCQkgIGVudHJ5LT5oYW5kbGUgKyB0bXBfb2ZzKTsKKwl9CisKKwkvKiBTZXQgcmluZyBidWZmZXIgc2l6ZSAqLworI2lmZGVmIF9fQklHX0VORElBTgorCVJBREVPTl9XUklURShSQURFT05fQ1BfUkJfQ05UTCwKKwkJICAgICBSQURFT05fQlVGX1NXQVBfMzJCSVQgfAorCQkgICAgIChkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPDwgMTgpIHwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGVfbDJxdyA8PCA4KSB8CisJCSAgICAgZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3KTsKKyNlbHNlCisJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9DTlRMLAorCQkgICAgIChkZXZfcHJpdi0+cmluZy5mZXRjaF9zaXplX2wyb3cgPDwgMTgpIHwKKwkJICAgICAoZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGVfbDJxdyA8PCA4KSB8CisJCSAgICAgZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3KTsKKyNlbmRpZgorCisJLyogU3RhcnQgd2l0aCBhc3N1bWluZyB0aGF0IHdyaXRlYmFjayBkb2Vzbid0IHdvcmsgKi8KKwlkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzID0gMDsKKworCS8qIEluaXRpYWxpemUgdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgcG9pbnRlci4gIFRoaXMgd2lsbCBjYXVzZQorCSAqIHRoZSBzY3JhdGNoIHJlZ2lzdGVyIHZhbHVlcyB0byBiZSB3cml0dGVuIG91dCB0byBtZW1vcnkKKwkgKiB3aGVuZXZlciB0aGV5IGFyZSB1cGRhdGVkLgorCSAqCisJICogV2Ugc2ltcGx5IHB1dCB0aGlzIGJlaGluZCB0aGUgcmluZyByZWFkIHBvaW50ZXIsIHRoaXMgd29ya3MKKwkgKiB3aXRoIFBDSSBHQVJUIGFzIHdlbGwgYXMgKHdoYXRldmVyIGtpbmQgb2YpIEFHUCBHQVJUCisJICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX0FERFIsIFJBREVPTl9SRUFEKFJBREVPTl9DUF9SQl9SUFRSX0FERFIpCisJCSAgICAgKyBSQURFT05fU0NSQVRDSF9SRUdfT0ZGU0VUKTsKKworCWRldl9wcml2LT5zY3JhdGNoID0gKChfX3ZvbGF0aWxlX18gdTMyICopCisJCQkgICAgIGRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSArCisJCQkgICAgIChSQURFT05fU0NSQVRDSF9SRUdfT0ZGU0VUIC8gc2l6ZW9mKHUzMikpKTsKKworCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9VTVNLLCAweDcpOworCisJLyogVHVybiBvbiBidXMgbWFzdGVyaW5nICovCisJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0JVU19DTlRMKSAmIH5SQURFT05fQlVTX01BU1RFUl9ESVM7CisJUkFERU9OX1dSSVRFKFJBREVPTl9CVVNfQ05UTCwgdG1wKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lID0gZGV2X3ByaXYtPnNjcmF0Y2hbMF0gPSAwOworCVJBREVPTl9XUklURShSQURFT05fTEFTVF9GUkFNRV9SRUcsIGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKworCWRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gZGV2X3ByaXYtPnNjcmF0Y2hbMV0gPSAwOworCVJBREVPTl9XUklURShSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcsCisJCSAgICAgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZGlzcGF0Y2gpOworCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIgPSBkZXZfcHJpdi0+c2NyYXRjaFsyXSA9IDA7CisJUkFERU9OX1dSSVRFKFJBREVPTl9MQVNUX0NMRUFSX1JFRywgZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIpOworCisJcmFkZW9uX2RvX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYpOworCisJLyogU3luYyBldmVyeXRoaW5nIHVwICovCisJUkFERU9OX1dSSVRFKFJBREVPTl9JU1lOQ19DTlRMLAorCQkgICAgIChSQURFT05fSVNZTkNfQU5ZMkRfSURMRTNEIHwKKwkJICAgICAgUkFERU9OX0lTWU5DX0FOWTNEX0lETEUyRCB8CisJCSAgICAgIFJBREVPTl9JU1lOQ19XQUlUX0lETEVHVUkgfAorCQkgICAgICBSQURFT05fSVNZTkNfQ1BTQ1JBVENIX0lETEVHVUkpKTsKKworfQorCitzdGF0aWMgdm9pZCByYWRlb25fdGVzdF93cml0ZWJhY2soZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdikKK3sKKwl1MzIgdG1wOworCisJLyogV3JpdGViYWNrIGRvZXNuJ3Qgc2VlbSB0byB3b3JrIGV2ZXJ5d2hlcmUsIHRlc3QgaXQgaGVyZSBhbmQgcG9zc2libHkKKwkgKiBlbmFibGUgaXQgaWYgaXQgYXBwZWFycyB0byB3b3JrCisJICovCisJRFJNX1dSSVRFMzIoZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoMSksIDApOworCVJBREVPTl9XUklURShSQURFT05fU0NSQVRDSF9SRUcxLCAweGRlYWRiZWVmKTsKKworCWZvciAodG1wID0gMDsgdG1wIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgdG1wKyspIHsKKwkJaWYgKERSTV9SRUFEMzIoZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoMSkpID09CisJCSAgICAweGRlYWRiZWVmKQorCQkJYnJlYWs7CisJCURSTV9VREVMQVkoMSk7CisJfQorCisJaWYgKHRtcCA8IGRldl9wcml2LT51c2VjX3RpbWVvdXQpIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDE7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgdGVzdCBzdWNjZWVkZWQgaW4gJWQgdXNlY3NcbiIsIHRtcCk7CisJfSBlbHNlIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgdGVzdCBmYWlsZWRcbiIpOworCX0KKwlpZiAocmFkZW9uX25vX3diID09IDEpIHsKKwkJZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA9IDA7CisJCURSTV9JTkZPKCJ3cml0ZWJhY2sgZm9yY2VkIG9mZlxuIik7CisJfQorCisJaWYgKCFkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzKSB7CisJCS8qIERpc2FibGUgd3JpdGViYWNrIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGJ1cyBtYXN0ZXIgdHJhbnNmZXIgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9DUF9SQl9DTlRMLCBSQURFT05fUkVBRChSQURFT05fQ1BfUkJfQ05UTCkgfAorCQkJICAgICBSQURFT05fUkJfTk9fVVBEQVRFKTsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9TQ1JBVENIX1VNU0ssIDApOworCX0KK30KKworLyogRW5hYmxlIG9yIGRpc2FibGUgSUdQIEdBUlQgb24gdGhlIGNoaXAgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9zZXRfaWdwZ2FydChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LCBpbnQgb24pCit7CisJdTMyIHRlbXA7CisKKwlpZiAob24pIHsKKwkJRFJNX0RFQlVHKCJwcm9ncmFtbWluZyBpZ3AgZ2FydCAlMDhYICUwOGxYICUwOFhcbiIsCisJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0LAorCQkJICAobG9uZylkZXZfcHJpdi0+Z2FydF9pbmZvLmJ1c19hZGRyLAorCQkJICBkZXZfcHJpdi0+Z2FydF9zaXplKTsKKworCQl0ZW1wID0gSUdQX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNDgwX01DX01JU0NfQ05UTCk7CisJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKQorCQkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX01DX01JU0NfQ05UTCwgKFJTNDgwX0dBUlRfSU5ERVhfUkVHX0VOIHwKKwkJCQkJCQkgICAgIFJTNjkwX0JMT0NLX0dGWF9EM19FTikpOworCQllbHNlCisJCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfTUNfTUlTQ19DTlRMLCBSUzQ4MF9HQVJUX0lOREVYX1JFR19FTik7CisKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIChSUzQ4MF9HQVJUX0VOIHwKKwkJCQkJCQkgICAgICAgUlM0ODBfVkFfU0laRV8zMk1CKSk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0ZFQVRVUkVfSUQpOworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9GRUFUVVJFX0lELCAoUlM0ODBfSEFOR19FTiB8CisJCQkJCQkJUlM0ODBfVExCX0VOQUJMRSB8CisJCQkJCQkJUlM0ODBfR1RXX0xBQ19FTiB8CisJCQkJCQkJUlM0ODBfMUxFVkVMX0dBUlQpKTsKKworCQl0ZW1wID0gZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciAmIDB4ZmZmZmYwMDA7CisJCXRlbXAgfD0gKHVwcGVyXzMyX2JpdHMoZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcikgJiAweGZmKSA8PCA0OworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfR0FSVF9CQVNFLCB0ZW1wKTsKKworCQl0ZW1wID0gSUdQX1JFQURfTUNJTkQoZGV2X3ByaXYsIFJTNDgwX0FHUF9NT0RFX0NOVEwpOworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfQUdQX01PREVfQ05UTCwgKCgxIDw8IFJTNDgwX1JFUV9UWVBFX1NOT09QX1NISUZUKSB8CisJCQkJCQkgICAgICBSUzQ4MF9SRVFfVFlQRV9TTk9PUF9ESVMpKTsKKworCQlyYWRlb25fd3JpdGVfYWdwX2Jhc2UoZGV2X3ByaXYsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKworCQlkZXZfcHJpdi0+Z2FydF9zaXplID0gMzIqMTAyNCoxMDI0OworCQl0ZW1wID0gKCgoZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgLSAxICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJgorCQkJIDB4ZmZmZjAwMDApIHwgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID4+IDE2KSk7CisKKwkJcmFkZW9uX3dyaXRlX2FncF9sb2NhdGlvbihkZXZfcHJpdiwgdGVtcCk7CisKKwkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFKTsKKwkJSUdQX1dSSVRFX01DSU5EKFJTNDgwX0FHUF9BRERSRVNTX1NQQUNFX1NJWkUsIChSUzQ4MF9HQVJUX0VOIHwKKwkJCQkJCQkgICAgICAgUlM0ODBfVkFfU0laRV8zMk1CKSk7CisKKwkJZG8geworCQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMKTsKKwkJCWlmICgodGVtcCAmIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSkgPT0gMCkKKwkJCQlicmVhazsKKwkJCURSTV9VREVMQVkoMSk7CisJCX0gd2hpbGUgKDEpOworCisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMLAorCQkJCVJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSk7CisKKwkJZG8geworCQkJdGVtcCA9IElHUF9SRUFEX01DSU5EKGRldl9wcml2LCBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMKTsKKwkJCWlmICgodGVtcCAmIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSkgPT0gMCkKKwkJCQlicmVhazsKKwkJCURSTV9VREVMQVkoMSk7CisJCX0gd2hpbGUgKDEpOworCisJCUlHUF9XUklURV9NQ0lORChSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMLCAwKTsKKwl9IGVsc2UgeworCQlJR1BfV1JJVEVfTUNJTkQoUlM0ODBfQUdQX0FERFJFU1NfU1BBQ0VfU0laRSwgMCk7CisJfQorfQorCitzdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWVnYXJ0KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBvbikKK3sKKwl1MzIgdG1wID0gUkFERU9OX1JFQURfUENJRShkZXZfcHJpdiwgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMKTsKKwlpZiAob24pIHsKKworCQlEUk1fREVCVUcoInByb2dyYW1taW5nIHBjaWUgJTA4WCAlMDhsWCAlMDhYXG4iLAorCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCwKKwkJCSAgKGxvbmcpZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkciwKKwkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSk7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0RJU0NBUkRfUkRfQUREUl9MTywKKwkJCQkgIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwkJUkFERU9OX1dSSVRFX1BDSUUoUkFERU9OX1BDSUVfVFhfR0FSVF9CQVNFLAorCQkJCSAgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfU1RBUlRfTE8sCisJCQkJICBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0xPLAorCQkJCSAgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQgKworCQkJCSAgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpOworCisJCXJhZGVvbl93cml0ZV9hZ3BfbG9jYXRpb24oZGV2X3ByaXYsIDB4ZmZmZmZmYzApOyAvKiA/PyAqLworCisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKKwkJCQkgIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4pOworCX0gZWxzZSB7CisJCVJBREVPTl9XUklURV9QQ0lFKFJBREVPTl9QQ0lFX1RYX0dBUlRfQ05UTCwKKwkJCQkgIHRtcCAmIH5SQURFT05fUENJRV9UWF9HQVJUX0VOKTsKKwl9Cit9CisKKy8qIEVuYWJsZSBvciBkaXNhYmxlIFBDSSBHQVJUIG9uIHRoZSBjaGlwICovCitzdGF0aWMgdm9pZCByYWRlb25fc2V0X3BjaWdhcnQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwgaW50IG9uKQoreworCXUzMiB0bXA7CisKKwlpZiAoKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fRkFNSUxZX01BU0spID09IENISVBfUlM2OTApIHx8CisJICAgIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfSUdQR0FSVCkpIHsKKwkJcmFkZW9uX3NldF9pZ3BnYXJ0KGRldl9wcml2LCBvbik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpIHsKKwkJcmFkZW9uX3NldF9wY2llZ2FydChkZXZfcHJpdiwgb24pOworCQlyZXR1cm47CisJfQorCisJdG1wID0gUkFERU9OX1JFQUQoUkFERU9OX0FJQ19DTlRMKTsKKworCWlmIChvbikgeworCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19DTlRMLAorCQkJICAgICB0bXAgfCBSQURFT05fUENJR0FSVF9UUkFOU0xBVEVfRU4pOworCisJCS8qIHNldCBQQ0kgR0FSVCBwYWdlLXRhYmxlIGJhc2UgYWRkcmVzcworCQkgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfUFRfQkFTRSwgZGV2X3ByaXYtPmdhcnRfaW5mby5idXNfYWRkcik7CisKKwkJLyogc2V0IGFkZHJlc3MgcmFuZ2UgZm9yIFBDSSBhZGRyZXNzIHRyYW5zbGF0ZQorCQkgKi8KKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfTE9fQUREUiwgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCQlSQURFT05fV1JJVEUoUkFERU9OX0FJQ19ISV9BRERSLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydAorCQkJICAgICArIGRldl9wcml2LT5nYXJ0X3NpemUgLSAxKTsKKworCQkvKiBUdXJuIG9mZiBBR1AgYXBlcnR1cmUgLS0gaXMgdGhpcyByZXF1aXJlZCBmb3IgUENJIEdBUlQ/CisJCSAqLworCQlyYWRlb25fd3JpdGVfYWdwX2xvY2F0aW9uKGRldl9wcml2LCAweGZmZmZmZmMwKTsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BR1BfQ09NTUFORCwgMCk7CS8qIGNsZWFyIEFHUF9DT01NQU5EICovCisJfSBlbHNlIHsKKwkJUkFERU9OX1dSSVRFKFJBREVPTl9BSUNfQ05UTCwKKwkJCSAgICAgdG1wICYgflJBREVPTl9QQ0lHQVJUX1RSQU5TTEFURV9FTik7CisJfQorfQorCitzdGF0aWMgaW50IHJhZGVvbl9kb19pbml0X2NwKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBkcm1fcmFkZW9uX2luaXRfdCAqIGluaXQpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIGlmIHdlIHJlcXVpcmUgbmV3IG1lbW9yeSBtYXAgYnV0IHdlIGRvbid0IGhhdmUgaXQgZmFpbCAqLworCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX05FV19NRU1NQVApICYmICFkZXZfcHJpdi0+bmV3X21lbW1hcCkgeworCQlEUk1fRVJST1IoIkNhbm5vdCBpbml0aWFsaXNlIERSTSBvbiB0aGlzIGNhcmRcblRoaXMgY2FyZCByZXF1aXJlcyBhIG5ldyBYLm9yZyBERFggZm9yIDNEXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGluaXQtPmlzX3BjaSAmJiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpIHsKKwkJRFJNX0RFQlVHKCJGb3JjaW5nIEFHUCBjYXJkIHRvIFBDSSBtb2RlXG4iKTsKKwkJZGV2X3ByaXYtPmZsYWdzICY9IH5SQURFT05fSVNfQUdQOworCX0gZWxzZSBpZiAoIShkZXZfcHJpdi0+ZmxhZ3MgJiAoUkFERU9OX0lTX0FHUCB8IFJBREVPTl9JU19QQ0kgfCBSQURFT05fSVNfUENJRSkpCisJCSAgICYmICFpbml0LT5pc19wY2kpIHsKKwkJRFJNX0RFQlVHKCJSZXN0b3JpbmcgQUdQIGZsYWdcbiIpOworCQlkZXZfcHJpdi0+ZmxhZ3MgfD0gUkFERU9OX0lTX0FHUDsKKwl9CisKKwlpZiAoKCEoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkpICYmICFkZXYtPnNnKSB7CisJCURSTV9FUlJPUigiUENJIEdBUlQgbWVtb3J5IG5vdCBhbGxvY2F0ZWQhXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGV2X3ByaXYtPnVzZWNfdGltZW91dCA9IGluaXQtPnVzZWNfdGltZW91dDsKKwlpZiAoZGV2X3ByaXYtPnVzZWNfdGltZW91dCA8IDEgfHwKKwkgICAgZGV2X3ByaXYtPnVzZWNfdGltZW91dCA+IFJBREVPTl9NQVhfVVNFQ19USU1FT1VUKSB7CisJCURSTV9ERUJVRygiVElNRU9VVCBwcm9ibGVtIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEVuYWJsZSB2Ymxhbmsgb24gQ1JUQzEgZm9yIG9sZGVyIFggc2VydmVycworCSAqLworCWRldl9wcml2LT52YmxhbmtfY3J0YyA9IERSTV9SQURFT05fVkJMQU5LX0NSVEMxOworCisJc3dpdGNoKGluaXQtPmZ1bmMpIHsKKwljYXNlIFJBREVPTl9JTklUX1IyMDBfQ1A6CisJCWRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9IFVDT0RFX1IyMDA7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX0lOSVRfUjMwMF9DUDoKKwkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjMwMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID0gVUNPREVfUjEwMDsKKwl9CisKKwlkZXZfcHJpdi0+ZG9fYm94ZXMgPSAwOworCWRldl9wcml2LT5jcF9tb2RlID0gaW5pdC0+Y3BfbW9kZTsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgYW55dGhpbmcgb3RoZXIgdGhhbiBidXMtbWFzdGVyaW5nIHJpbmcgbW9kZSwKKwkgKiBidXQgdGhlIHJpbmcgY2FuIGJlIGluIGVpdGhlciBBR1Agb3IgUENJIHNwYWNlIGZvciB0aGUgcmluZworCSAqIHJlYWQgcG9pbnRlci4KKwkgKi8KKwlpZiAoKGluaXQtPmNwX21vZGUgIT0gUkFERU9OX0NTUV9QUklCTV9JTkRESVMpICYmCisJICAgIChpbml0LT5jcF9tb2RlICE9IFJBREVPTl9DU1FfUFJJQk1fSU5EQk0pKSB7CisJCURSTV9ERUJVRygiQkFEIGNwX21vZGUgKCV4KSFcbiIsIGluaXQtPmNwX21vZGUpOworCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2ggKGluaXQtPmZiX2JwcCkgeworCWNhc2UgMTY6CisJCWRldl9wcml2LT5jb2xvcl9mbXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKKwkJYnJlYWs7CisJY2FzZSAzMjoKKwlkZWZhdWx0OgorCQlkZXZfcHJpdi0+Y29sb3JfZm10ID0gUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4ODsKKwkJYnJlYWs7CisJfQorCWRldl9wcml2LT5mcm9udF9vZmZzZXQgPSBpbml0LT5mcm9udF9vZmZzZXQ7CisJZGV2X3ByaXYtPmZyb250X3BpdGNoID0gaW5pdC0+ZnJvbnRfcGl0Y2g7CisJZGV2X3ByaXYtPmJhY2tfb2Zmc2V0ID0gaW5pdC0+YmFja19vZmZzZXQ7CisJZGV2X3ByaXYtPmJhY2tfcGl0Y2ggPSBpbml0LT5iYWNrX3BpdGNoOworCisJc3dpdGNoIChpbml0LT5kZXB0aF9icHApIHsKKwljYXNlIDE2OgorCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8xNkJJVF9JTlRfWjsKKwkJYnJlYWs7CisJY2FzZSAzMjoKKwlkZWZhdWx0OgorCQlkZXZfcHJpdi0+ZGVwdGhfZm10ID0gUkFERU9OX0RFUFRIX0ZPUk1BVF8yNEJJVF9JTlRfWjsKKwkJYnJlYWs7CisJfQorCWRldl9wcml2LT5kZXB0aF9vZmZzZXQgPSBpbml0LT5kZXB0aF9vZmZzZXQ7CisJZGV2X3ByaXYtPmRlcHRoX3BpdGNoID0gaW5pdC0+ZGVwdGhfcGl0Y2g7CisKKwkvKiBIYXJkd2FyZSBzdGF0ZSBmb3IgZGVwdGggY2xlYXJzLiAgUmVtb3ZlIHRoaXMgaWYvd2hlbiB3ZSBubworCSAqIGxvbmdlciBjbGVhciB0aGUgZGVwdGggYnVmZmVyIHdpdGggYSAzRCByZWN0YW5nbGUuICBIYXJkLWNvZGUKKwkgKiBhbGwgdmFsdWVzIHRvIHByZXZlbnQgdW53YW50ZWQgM0Qgc3RhdGUgZnJvbSBzbGlwcGluZyB0aHJvdWdoCisJICogYW5kIHNjcmV3aW5nIHdpdGggdGhlIGNsZWFyIG9wZXJhdGlvbi4KKwkgKi8KKwlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF9jbnRsID0gKFJBREVPTl9QTEFORV9NQVNLX0VOQUJMRSB8CisJCQkJCSAgIChkZXZfcHJpdi0+Y29sb3JfZm10IDw8IDEwKSB8CisJCQkJCSAgIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0KKwkJCQkJICAgIFVDT0RFX1IxMDAgPyBSQURFT05fWkJMT0NLMTYgOiAwKSk7CisKKwlkZXZfcHJpdi0+ZGVwdGhfY2xlYXIucmIzZF96c3RlbmNpbGNudGwgPQorCSAgICAoZGV2X3ByaXYtPmRlcHRoX2ZtdCB8CisJICAgICBSQURFT05fWl9URVNUX0FMV0FZUyB8CisJICAgICBSQURFT05fU1RFTkNJTF9URVNUX0FMV0FZUyB8CisJICAgICBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRSB8CisJICAgICBSQURFT05fU1RFTkNJTF9aUEFTU19SRVBMQUNFIHwKKwkgICAgIFJBREVPTl9TVEVOQ0lMX1pGQUlMX1JFUExBQ0UgfCBSQURFT05fWl9XUklURV9FTkFCTEUpOworCisJZGV2X3ByaXYtPmRlcHRoX2NsZWFyLnNlX2NudGwgPSAoUkFERU9OX0ZGQUNFX0NVTExfQ1cgfAorCQkJCQkgUkFERU9OX0JGQUNFX1NPTElEIHwKKwkJCQkJIFJBREVPTl9GRkFDRV9TT0xJRCB8CisJCQkJCSBSQURFT05fRkxBVF9TSEFERV9WVFhfTEFTVCB8CisJCQkJCSBSQURFT05fRElGRlVTRV9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9TUEVDVUxBUl9TSEFERV9GTEFUIHwKKwkJCQkJIFJBREVPTl9GT0dfU0hBREVfRkxBVCB8CisJCQkJCSBSQURFT05fVlRYX1BJWF9DRU5URVJfT0dMIHwKKwkJCQkJIFJBREVPTl9ST1VORF9NT0RFX1RSVU5DIHwKKwkJCQkJIFJBREVPTl9ST1VORF9QUkVDXzhUSF9QSVgpOworCisKKwlkZXZfcHJpdi0+cmluZ19vZmZzZXQgPSBpbml0LT5yaW5nX29mZnNldDsKKwlkZXZfcHJpdi0+cmluZ19ycHRyX29mZnNldCA9IGluaXQtPnJpbmdfcnB0cl9vZmZzZXQ7CisJZGV2X3ByaXYtPmJ1ZmZlcnNfb2Zmc2V0ID0gaW5pdC0+YnVmZmVyc19vZmZzZXQ7CisJZGV2X3ByaXYtPmdhcnRfdGV4dHVyZXNfb2Zmc2V0ID0gaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQ7CisKKwlkZXZfcHJpdi0+c2FyZWEgPSBkcm1fZ2V0c2FyZWEoZGV2KTsKKwlpZiAoIWRldl9wcml2LT5zYXJlYSkgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIHNhcmVhIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5jcF9yaW5nID0gZHJtX2NvcmVfZmluZG1hcChkZXYsIGluaXQtPnJpbmdfb2Zmc2V0KTsKKwlpZiAoIWRldl9wcml2LT5jcF9yaW5nKSB7CisJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgY3AgcmluZyByZWdpb24hXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWRldl9wcml2LT5yaW5nX3JwdHIgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+cmluZ19ycHRyX29mZnNldCk7CisJaWYgKCFkZXZfcHJpdi0+cmluZ19ycHRyKSB7CisJCURSTV9FUlJPUigiY291bGQgbm90IGZpbmQgcmluZyByZWFkIHBvaW50ZXIhXG4iKTsKKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWRldi0+YWdwX2J1ZmZlcl90b2tlbiA9IGluaXQtPmJ1ZmZlcnNfb2Zmc2V0OworCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+YnVmZmVyc19vZmZzZXQpOworCWlmICghZGV2LT5hZ3BfYnVmZmVyX21hcCkgeworCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIGRtYSBidWZmZXIgcmVnaW9uIVxuIik7CisJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChpbml0LT5nYXJ0X3RleHR1cmVzX29mZnNldCkgeworCQlkZXZfcHJpdi0+Z2FydF90ZXh0dXJlcyA9CisJCSAgICBkcm1fY29yZV9maW5kbWFwKGRldiwgaW5pdC0+Z2FydF90ZXh0dXJlc19vZmZzZXQpOworCQlpZiAoIWRldl9wcml2LT5nYXJ0X3RleHR1cmVzKSB7CisJCQlEUk1fRVJST1IoImNvdWxkIG5vdCBmaW5kIEdBUlQgdGV4dHVyZSByZWdpb24hXG4iKTsKKwkJCXJhZGVvbl9kb19jbGVhbnVwX2NwKGRldik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCX0KKworCWRldl9wcml2LT5zYXJlYV9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fc2FyZWFfdCAqKSAoKHU4ICopIGRldl9wcml2LT5zYXJlYS0+aGFuZGxlICsKKwkJCQkgICAgaW5pdC0+c2FyZWFfcHJpdl9vZmZzZXQpOworCisjaWYgX19PU19IQVNfQUdQCisJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19BR1ApIHsKKwkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKKwkJZHJtX2NvcmVfaW9yZW1hcChkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOworCQlkcm1fY29yZV9pb3JlbWFwKGRldi0+YWdwX2J1ZmZlcl9tYXAsIGRldik7CisJCWlmICghZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSB8fAorCQkgICAgIWRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSB8fAorCQkgICAgIWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZSkgeworCQkJRFJNX0VSUk9SKCJjb3VsZCBub3QgZmluZCBpb3JlbWFwIGFncCByZWdpb25zIVxuIik7CisJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwl9IGVsc2UKKyNlbmRpZgorCXsKKwkJZGV2X3ByaXYtPmNwX3JpbmctPmhhbmRsZSA9ICh2b2lkICopZGV2X3ByaXYtPmNwX3JpbmctPm9mZnNldDsKKwkJZGV2X3ByaXYtPnJpbmdfcnB0ci0+aGFuZGxlID0KKwkJICAgICh2b2lkICopZGV2X3ByaXYtPnJpbmdfcnB0ci0+b2Zmc2V0OworCQlkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUgPQorCQkgICAgKHZvaWQgKilkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQ7CisKKwkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlICVwXG4iLAorCQkJICBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlKTsKKwkJRFJNX0RFQlVHKCJkZXZfcHJpdi0+cmluZ19ycHRyLT5oYW5kbGUgJXBcbiIsCisJCQkgIGRldl9wcml2LT5yaW5nX3JwdHItPmhhbmRsZSk7CisJCURSTV9ERUJVRygiZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICVwXG4iLAorCQkJICBkZXYtPmFncF9idWZmZXJfbWFwLT5oYW5kbGUpOworCX0KKworCWRldl9wcml2LT5mYl9sb2NhdGlvbiA9IChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYpIDw8IDE2OworCWRldl9wcml2LT5mYl9zaXplID0KKwkJKChyYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkZXZfcHJpdikgJiAweGZmZmYwMDAwdSkgKyAweDEwMDAwKQorCQktIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKKworCWRldl9wcml2LT5mcm9udF9waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+ZnJvbnRfcGl0Y2ggLyA2NCkgPDwgMjIpIHwKKwkJCQkJKChkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0CisJCQkJCSAgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7CisKKwlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgPSAoKChkZXZfcHJpdi0+YmFja19waXRjaCAvIDY0KSA8PCAyMikgfAorCQkJCSAgICAgICAoKGRldl9wcml2LT5iYWNrX29mZnNldAorCQkJCQkgKyBkZXZfcHJpdi0+ZmJfbG9jYXRpb24pID4+IDEwKSk7CisKKwlkZXZfcHJpdi0+ZGVwdGhfcGl0Y2hfb2Zmc2V0ID0gKCgoZGV2X3ByaXYtPmRlcHRoX3BpdGNoIC8gNjQpIDw8IDIyKSB8CisJCQkJCSgoZGV2X3ByaXYtPmRlcHRoX29mZnNldAorCQkJCQkgICsgZGV2X3ByaXYtPmZiX2xvY2F0aW9uKSA+PiAxMCkpOworCisJZGV2X3ByaXYtPmdhcnRfc2l6ZSA9IGluaXQtPmdhcnRfc2l6ZTsKKworCS8qIE5ldyBsZXQncyBzZXQgdGhlIG1lbW9yeSBtYXAgLi4uICovCisJaWYgKGRldl9wcml2LT5uZXdfbWVtbWFwKSB7CisJCXUzMiBiYXNlID0gMDsKKworCQlEUk1fSU5GTygiU2V0dGluZyBHQVJUIGxvY2F0aW9uIGJhc2VkIG9uIG5ldyBtZW1vcnkgbWFwXG4iKTsKKworCQkvKiBJZiB1c2luZyBBR1AsIHRyeSB0byBsb2NhdGUgdGhlIEFHUCBhcGVydHVyZSBhdCB0aGUgc2FtZQorCQkgKiBsb2NhdGlvbiBpbiB0aGUgY2FyZCBhbmQgb24gdGhlIGJ1cywgdGhvdWdoIHdlIGhhdmUgdG8KKwkJICogYWxpZ24gaXQgZG93bi4KKwkJICovCisjaWYgX19PU19IQVNfQUdQCisJCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCQliYXNlID0gZGV2LT5hZ3AtPmJhc2U7CisJCQkvKiBDaGVjayBpZiB2YWxpZCAqLworCQkJaWYgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSAtIDEpID49IGRldl9wcml2LT5mYl9sb2NhdGlvbiAmJgorCQkJICAgIGJhc2UgPCAoZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsgZGV2X3ByaXYtPmZiX3NpemUgLSAxKSkgeworCQkJCURSTV9JTkZPKCJDYW4ndCB1c2UgQUdQIGJhc2UgQDB4JTA4bHgsIHdvbid0IGZpdFxuIiwKKwkJCQkJIGRldi0+YWdwLT5iYXNlKTsKKwkJCQliYXNlID0gMDsKKwkJCX0KKwkJfQorI2VuZGlmCisJCS8qIElmIG5vdCBvciBpZiBBR1AgaXMgYXQgMCAoTWFjcyksIHRyeSB0byBwdXQgaXQgZWxzZXdoZXJlICovCisJCWlmIChiYXNlID09IDApIHsKKwkJCWJhc2UgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb24gKyBkZXZfcHJpdi0+ZmJfc2l6ZTsKKwkJCWlmIChiYXNlIDwgZGV2X3ByaXYtPmZiX2xvY2F0aW9uIHx8CisJCQkgICAgKChiYXNlICsgZGV2X3ByaXYtPmdhcnRfc2l6ZSkgJiAweGZmZmZmZmZmdWwpIDwgYmFzZSkKKwkJCQliYXNlID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uCisJCQkJCS0gZGV2X3ByaXYtPmdhcnRfc2l6ZTsKKwkJfQorCQlkZXZfcHJpdi0+Z2FydF92bV9zdGFydCA9IGJhc2UgJiAweGZmYzAwMDAwdTsKKwkJaWYgKGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ICE9IGJhc2UpCisJCQlEUk1fSU5GTygiR0FSVCBhbGlnbmVkIGRvd24gZnJvbSAweCUwOHggdG8gMHglMDh4XG4iLAorCQkJCSBiYXNlLCBkZXZfcHJpdi0+Z2FydF92bV9zdGFydCk7CisJfSBlbHNlIHsKKwkJRFJNX0lORk8oIlNldHRpbmcgR0FSVCBsb2NhdGlvbiBiYXNlZCBvbiBvbGQgbWVtb3J5IG1hcFxuIik7CisJCWRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uICsKKwkJCVJBREVPTl9SRUFEKFJBREVPTl9DT05GSUdfQVBFUl9TSVpFKTsKKwl9CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkKKwkJZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQgPSAoZGV2LT5hZ3BfYnVmZmVyX21hcC0+b2Zmc2V0CisJCQkJCQkgLSBkZXYtPmFncC0+YmFzZQorCQkJCQkJICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCWVsc2UKKyNlbmRpZgorCQlkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCA9IChkZXYtPmFncF9idWZmZXJfbWFwLT5vZmZzZXQKKwkJCQkJLSAodW5zaWduZWQgbG9uZylkZXYtPnNnLT52aXJ0dWFsCisJCQkJCSsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQpOworCisJRFJNX0RFQlVHKCJkZXZfcHJpdi0+Z2FydF9zaXplICVkXG4iLCBkZXZfcHJpdi0+Z2FydF9zaXplKTsKKwlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0IDB4JXhcbiIsIGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0KTsKKwlEUk1fREVCVUcoImRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0IDB4JWx4XG4iLAorCQkgIGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0KTsKKworCWRldl9wcml2LT5yaW5nLnN0YXJ0ID0gKHUzMiAqKSBkZXZfcHJpdi0+Y3BfcmluZy0+aGFuZGxlOworCWRldl9wcml2LT5yaW5nLmVuZCA9ICgodTMyICopIGRldl9wcml2LT5jcF9yaW5nLT5oYW5kbGUKKwkJCSAgICAgICsgaW5pdC0+cmluZ19zaXplIC8gc2l6ZW9mKHUzMikpOworCWRldl9wcml2LT5yaW5nLnNpemUgPSBpbml0LT5yaW5nX3NpemU7CisJZGV2X3ByaXYtPnJpbmcuc2l6ZV9sMnF3ID0gZHJtX29yZGVyKGluaXQtPnJpbmdfc2l6ZSAvIDgpOworCisJZGV2X3ByaXYtPnJpbmcucnB0cl91cGRhdGUgPSAvKiBpbml0LT5ycHRyX3VwZGF0ZSAqLyA0MDk2OworCWRldl9wcml2LT5yaW5nLnJwdHJfdXBkYXRlX2wycXcgPSBkcm1fb3JkZXIoIC8qIGluaXQtPnJwdHJfdXBkYXRlICovIDQwOTYgLyA4KTsKKworCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemUgPSAvKiBpbml0LT5mZXRjaF9zaXplICovIDMyOworCWRldl9wcml2LT5yaW5nLmZldGNoX3NpemVfbDJvdyA9IGRybV9vcmRlciggLyogaW5pdC0+ZmV0Y2hfc2l6ZSAqLyAzMiAvIDE2KTsKKwlkZXZfcHJpdi0+cmluZy50YWlsX21hc2sgPSAoZGV2X3ByaXYtPnJpbmcuc2l6ZSAvIHNpemVvZih1MzIpKSAtIDE7CisKKwlkZXZfcHJpdi0+cmluZy5oaWdoX21hcmsgPSBSQURFT05fUklOR19ISUdIX01BUks7CisKKyNpZiBfX09TX0hBU19BR1AKKwlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgeworCQkvKiBUdXJuIG9mZiBQQ0kgR0FSVCAqLworCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOworCX0gZWxzZQorI2VuZGlmCisJeworCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX21hc2sgPSBETUFfQklUX01BU0soMzIpOworCQkvKiBpZiB3ZSBoYXZlIGFuIG9mZnNldCBzZXQgZnJvbSB1c2Vyc3BhY2UgKi8KKwkJaWYgKGRldl9wcml2LT5wY2lnYXJ0X29mZnNldF9zZXQpIHsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPQorCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9sb2NhdGlvbjsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5vZmZzZXQgPQorCQkJICAgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCArIGRldl9wcml2LT5mYl9hcGVyX29mZnNldDsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZy5zaXplID0KKwkJCSAgICBkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemU7CisKKwkJCWRybV9jb3JlX2lvcmVtYXBfd2MoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9CisJCQkgICAgZGV2X3ByaXYtPmdhcnRfaW5mby5tYXBwaW5nLmhhbmRsZTsKKworCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQorCQkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF9yZWdfaWYgPSBEUk1fQVRJX0dBUlRfUENJRTsKKwkJCWVsc2UKKwkJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfcmVnX2lmID0gRFJNX0FUSV9HQVJUX1BDSTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uZ2FydF90YWJsZV9sb2NhdGlvbiA9CisJCQkgICAgRFJNX0FUSV9HQVJUX0ZCOworCisJCQlEUk1fREVCVUcoIlNldHRpbmcgcGh5c19wY2lfZ2FydCB0byAlcCAlMDhsWFxuIiwKKwkJCQkgIGRldl9wcml2LT5nYXJ0X2luZm8uYWRkciwKKwkJCQkgIGRldl9wcml2LT5wY2lnYXJ0X29mZnNldCk7CisJCX0gZWxzZSB7CisJCQlpZiAoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0lHUEdBUlQpCisJCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9JR1A7CisJCQllbHNlCisJCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3JlZ19pZiA9IERSTV9BVElfR0FSVF9QQ0k7CisJCQlkZXZfcHJpdi0+Z2FydF9pbmZvLmdhcnRfdGFibGVfbG9jYXRpb24gPQorCQkJICAgIERSTV9BVElfR0FSVF9NQUlOOworCQkJZGV2X3ByaXYtPmdhcnRfaW5mby5hZGRyID0gTlVMTDsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIgPSAwOworCQkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSB7CisJCQkJRFJNX0VSUk9SCisJCQkJICAgICgiQ2Fubm90IHVzZSBQQ0kgRXhwcmVzcyB3aXRob3V0IEdBUlQgaW4gRkIgbWVtb3J5XG4iKTsKKwkJCQlyYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQl9CisKKwkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfaW5pdChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkgeworCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gaW5pdCBQQ0kgR0FSVCFcbiIpOworCQkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJLyogVHVybiBvbiBQQ0kgR0FSVCAqLworCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDEpOworCX0KKworCXJhZGVvbl9jcF9sb2FkX21pY3JvY29kZShkZXZfcHJpdik7CisJcmFkZW9uX2NwX2luaXRfcmluZ19idWZmZXIoZGV2LCBkZXZfcHJpdik7CisKKwlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCisJcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworCXJhZGVvbl90ZXN0X3dyaXRlYmFjayhkZXZfcHJpdik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZG9fY2xlYW51cF9jcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIE1ha2Ugc3VyZSBpbnRlcnJ1cHRzIGFyZSBkaXNhYmxlZCBoZXJlIGJlY2F1c2UgdGhlIHVuaW5zdGFsbCBpb2N0bAorCSAqIG1heSBub3QgaGF2ZSBiZWVuIGNhbGxlZCBmcm9tIHVzZXJzcGFjZSBhbmQgYWZ0ZXIgZGV2X3ByaXZhdGUKKwkgKiBpcyBmcmVlZCwgaXQncyB0b28gbGF0ZS4KKwkgKi8KKwlpZiAoZGV2LT5pcnFfZW5hYmxlZCkKKwkJZHJtX2lycV91bmluc3RhbGwoZGV2KTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCWlmIChkZXZfcHJpdi0+Y3BfcmluZyAhPSBOVUxMKSB7CisJCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+Y3BfcmluZywgZGV2KTsKKwkJCWRldl9wcml2LT5jcF9yaW5nID0gTlVMTDsKKwkJfQorCQlpZiAoZGV2X3ByaXYtPnJpbmdfcnB0ciAhPSBOVUxMKSB7CisJCQlkcm1fY29yZV9pb3JlbWFwZnJlZShkZXZfcHJpdi0+cmluZ19ycHRyLCBkZXYpOworCQkJZGV2X3ByaXYtPnJpbmdfcnB0ciA9IE5VTEw7CisJCX0KKwkJaWYgKGRldi0+YWdwX2J1ZmZlcl9tYXAgIT0gTlVMTCkgeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoZGV2LT5hZ3BfYnVmZmVyX21hcCwgZGV2KTsKKwkJCWRldi0+YWdwX2J1ZmZlcl9tYXAgPSBOVUxMOworCQl9CisJfSBlbHNlCisjZW5kaWYKKwl7CisKKwkJaWYgKGRldl9wcml2LT5nYXJ0X2luZm8uYnVzX2FkZHIpIHsKKwkJCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCisJCQlyYWRlb25fc2V0X3BjaWdhcnQoZGV2X3ByaXYsIDApOworCQkJaWYgKCFkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChkZXYsICZkZXZfcHJpdi0+Z2FydF9pbmZvKSkKKwkJCQlEUk1fRVJST1IoImZhaWxlZCB0byBjbGVhbnVwIFBDSSBHQVJUIVxuIik7CisJCX0KKworCQlpZiAoZGV2X3ByaXYtPmdhcnRfaW5mby5nYXJ0X3RhYmxlX2xvY2F0aW9uID09IERSTV9BVElfR0FSVF9GQikKKwkJeworCQkJZHJtX2NvcmVfaW9yZW1hcGZyZWUoJmRldl9wcml2LT5nYXJ0X2luZm8ubWFwcGluZywgZGV2KTsKKwkJCWRldl9wcml2LT5nYXJ0X2luZm8uYWRkciA9IDA7CisJCX0KKwl9CisJLyogb25seSBjbGVhciB0byB0aGUgc3RhcnQgb2YgZmxhZ3MgKi8KKwltZW1zZXQoZGV2X3ByaXYsIDAsIG9mZnNldG9mKGRybV9yYWRlb25fcHJpdmF0ZV90LCBmbGFncykpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFRoaXMgY29kZSB3aWxsIHJlaW5pdCB0aGUgUmFkZW9uIENQIGhhcmR3YXJlIGFmdGVyIGEgcmVzdW1lIGZyb20gZGlzYy4KKyAqIEFGQUlLLCBpdCB3b3VsZCBiZSB2ZXJ5IGRpZmZpY3VsdCB0byBwaWNrbGUgdGhlIHN0YXRlIGF0IHN1c3BlbmQgdGltZSwgc28KKyAqIGhlcmUgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIFJhZGVvbiBoYXJkd2FyZSBpbml0aWFsaXNhdGlvbiBpcyByZS1kb25lIHdpdGhvdXQKKyAqIGFmZmVjdGluZyBydW5uaW5nIGFwcGxpY2F0aW9ucy4KKyAqCisgKiBDaGFybCBQLiBCb3RoYSA8aHR0cDovL2NwYm90aGEubmV0PgorICovCitzdGF0aWMgaW50IHJhZGVvbl9kb19yZXN1bWVfY3Aoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJDYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCURSTV9ERUJVRygiU3RhcnRpbmcgcmFkZW9uX2RvX3Jlc3VtZV9jcCgpXG4iKTsKKworI2lmIF9fT1NfSEFTX0FHUAorCWlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKSB7CisJCS8qIFR1cm4gb2ZmIFBDSSBHQVJUICovCisJCXJhZGVvbl9zZXRfcGNpZ2FydChkZXZfcHJpdiwgMCk7CisJfSBlbHNlCisjZW5kaWYKKwl7CisJCS8qIFR1cm4gb24gUENJIEdBUlQgKi8KKwkJcmFkZW9uX3NldF9wY2lnYXJ0KGRldl9wcml2LCAxKTsKKwl9CisKKwlyYWRlb25fY3BfbG9hZF9taWNyb2NvZGUoZGV2X3ByaXYpOworCXJhZGVvbl9jcF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZGV2X3ByaXYpOworCisJcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7CisKKwlEUk1fREVCVUcoInJhZGVvbl9kb19yZXN1bWVfY3AoKSBjb21wbGV0ZVxuIik7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25faW5pdF90ICppbml0ID0gZGF0YTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoaW5pdC0+ZnVuYyA9PSBSQURFT05fSU5JVF9SMzAwX0NQKQorCQlyMzAwX2luaXRfcmVnX2ZsYWdzKGRldik7CisKKwlzd2l0Y2ggKGluaXQtPmZ1bmMpIHsKKwljYXNlIFJBREVPTl9JTklUX0NQOgorCWNhc2UgUkFERU9OX0lOSVRfUjIwMF9DUDoKKwljYXNlIFJBREVPTl9JTklUX1IzMDBfQ1A6CisJCXJldHVybiByYWRlb25fZG9faW5pdF9jcChkZXYsIGluaXQpOworCWNhc2UgUkFERU9OX0NMRUFOVVBfQ1A6CisJCXJldHVybiByYWRlb25fZG9fY2xlYW51cF9jcChkZXYpOworCX0KKworCXJldHVybiAtRUlOVkFMOworfQorCitpbnQgcmFkZW9uX2NwX3N0YXJ0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCWlmIChkZXZfcHJpdi0+Y3BfcnVubmluZykgeworCQlEUk1fREVCVUcoIndoaWxlIENQIHJ1bm5pbmdcbiIpOworCQlyZXR1cm4gMDsKKwl9CisJaWYgKGRldl9wcml2LT5jcF9tb2RlID09IFJBREVPTl9DU1FfUFJJRElTX0lORERJUykgeworCQlEUk1fREVCVUcoImNhbGxlZCB3aXRoIGJvZ3VzIENQIG1vZGUgKCVkKVxuIiwKKwkJCSAgZGV2X3ByaXYtPmNwX21vZGUpOworCQlyZXR1cm4gMDsKKwl9CisKKwlyYWRlb25fZG9fY3Bfc3RhcnQoZGV2X3ByaXYpOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFN0b3AgdGhlIENQLiAgVGhlIGVuZ2luZSBtdXN0IGhhdmUgYmVlbiBpZGxlZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiByb3V0aW5lLgorICovCitpbnQgcmFkZW9uX2NwX3N0b3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2NwX3N0b3BfdCAqc3RvcCA9IGRhdGE7CisJaW50IHJldDsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdi0+Y3BfcnVubmluZykKKwkJcmV0dXJuIDA7CisKKwkvKiBGbHVzaCBhbnkgcGVuZGluZyBDUCBjb21tYW5kcy4gIFRoaXMgZW5zdXJlcyBhbnkgb3V0c3RhbmRpbmcKKwkgKiBjb21tYW5kcyBhcmUgZXhlY3R1dGVkIGJ5IHRoZSBlbmdpbmUgYmVmb3JlIHdlIHR1cm4gaXQgb2ZmLgorCSAqLworCWlmIChzdG9wLT5mbHVzaCkgeworCQlyYWRlb25fZG9fY3BfZmx1c2goZGV2X3ByaXYpOworCX0KKworCS8qIElmIHdlIGZhaWwgdG8gbWFrZSB0aGUgZW5naW5lIGdvIGlkbGUsIHdlIHJldHVybiBhbiBlcnJvcgorCSAqIGNvZGUgc28gdGhhdCB0aGUgRFJNIGlvY3RsIHdyYXBwZXIgY2FuIHRyeSBhZ2Fpbi4KKwkgKi8KKwlpZiAoc3RvcC0+aWRsZSkgeworCQlyZXQgPSByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCS8qIEZpbmFsbHksIHdlIGNhbiB0dXJuIG9mZiB0aGUgQ1AuICBJZiB0aGUgZW5naW5lIGlzbid0IGlkbGUsCisJICogd2Ugd2lsbCBnZXQgc29tZSBkcm9wcGVkIHRyaWFuZ2xlcyBhcyB0aGV5IHdvbid0IGJlIGZ1bGx5CisJICogcmVuZGVyZWQgYmVmb3JlIHRoZSBDUCBpcyBzaHV0IGRvd24uCisJICovCisJcmFkZW9uX2RvX2NwX3N0b3AoZGV2X3ByaXYpOworCisJLyogUmVzZXQgdGhlIGVuZ2luZSAqLworCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKworCXJldHVybiAwOworfQorCit2b2lkIHJhZGVvbl9kb19yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGksIHJldDsKKworCWlmIChkZXZfcHJpdikgeworCQlpZiAoZGV2X3ByaXYtPmNwX3J1bm5pbmcpIHsKKwkJCS8qIFN0b3AgdGhlIGNwICovCisJCQl3aGlsZSAoKHJldCA9IHJhZGVvbl9kb19jcF9pZGxlKGRldl9wcml2KSkgIT0gMCkgeworCQkJCURSTV9ERUJVRygicmFkZW9uX2RvX2NwX2lkbGUgJWRcbiIsIHJldCk7CisjaWZkZWYgX19saW51eF9fCisJCQkJc2NoZWR1bGUoKTsKKyNlbHNlCisJCQkJdHNsZWVwKCZyZXQsIFBaRVJPLCAicmRucmVsIiwgMSk7CisjZW5kaWYKKwkJCX0KKwkJCXJhZGVvbl9kb19jcF9zdG9wKGRldl9wcml2KTsKKwkJCXJhZGVvbl9kb19lbmdpbmVfcmVzZXQoZGV2KTsKKwkJfQorCisJCS8qIERpc2FibGUgKmFsbCogaW50ZXJydXB0cyAqLworCQlpZiAoZGV2X3ByaXYtPm1taW8pCS8qIHJlbW92ZSB0aGlzIGFmdGVyIHBlcm1hbmVudCBhZGRtYXBzICovCisJCQlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7CisKKwkJaWYgKGRldl9wcml2LT5tbWlvKSB7CS8qIHJlbW92ZSBhbGwgc3VyZmFjZXMgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJCQlSQURFT05fV1JJVEUoUkFERU9OX1NVUkZBQ0UwX0lORk8gKyAxNiAqIGksIDApOworCQkJCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfTE9XRVJfQk9VTkQgKworCQkJCQkgICAgIDE2ICogaSwgMCk7CisJCQkJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9VUFBFUl9CT1VORCArCisJCQkJCSAgICAgMTYgKiBpLCAwKTsKKwkJCX0KKwkJfQorCisJCS8qIEZyZWUgbWVtb3J5IGhlYXAgc3RydWN0dXJlcyAqLworCQlyYWRlb25fbWVtX3Rha2Vkb3duKCYoZGV2X3ByaXYtPmdhcnRfaGVhcCkpOworCQlyYWRlb25fbWVtX3Rha2Vkb3duKCYoZGV2X3ByaXYtPmZiX2hlYXApKTsKKworCQkvKiBkZWFsbG9jYXRlIGtlcm5lbCByZXNvdXJjZXMgKi8KKwkJcmFkZW9uX2RvX2NsZWFudXBfY3AoZGV2KTsKKwl9Cit9CisKKy8qIEp1c3QgcmVzZXQgdGhlIENQIHJpbmcuICBDYWxsZWQgYXMgcGFydCBvZiBhbiBYIFNlcnZlciBlbmdpbmUgcmVzZXQuCisgKi8KK2ludCByYWRlb25fY3BfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fREVCVUcoImNhbGxlZCBiZWZvcmUgaW5pdCBkb25lXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmFkZW9uX2RvX2NwX3Jlc2V0KGRldl9wcml2KTsKKworCS8qIFRoZSBDUCBpcyBubyBsb25nZXIgcnVubmluZyBhZnRlciBhbiBlbmdpbmUgcmVzZXQgKi8KKwlkZXZfcHJpdi0+Y3BfcnVubmluZyA9IDA7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCXJldHVybiByYWRlb25fZG9fY3BfaWRsZShkZXZfcHJpdik7Cit9CisKKy8qIEFkZGVkIGJ5IENoYXJsIFAuIEJvdGhhIHRvIGNhbGwgcmFkZW9uX2RvX3Jlc3VtZV9jcCgpLgorICovCitpbnQgcmFkZW9uX2NwX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKworCXJldHVybiByYWRlb25fZG9fcmVzdW1lX2NwKGRldik7Cit9CisKK2ludCByYWRlb25fZW5naW5lX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCURSTV9ERUJVRygiXG4iKTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlyZXR1cm4gcmFkZW9uX2RvX2VuZ2luZV9yZXNldChkZXYpOworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBGdWxsc2NyZWVuIG1vZGUKKyAqLworCisvKiBLVzogRGVwcmVjYXRlZCB0byBzYXkgdGhlIGxlYXN0OgorICovCitpbnQgcmFkZW9uX2Z1bGxzY3JlZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJcmV0dXJuIDA7Cit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEZyZWVsaXN0IG1hbmFnZW1lbnQKKyAqLworCisvKiBPcmlnaW5hbCBjb21tZW50OiBGSVhNRTogUk9UQVRFX0JVRlMgaXMgYSBoYWNrIHRvIGN5Y2xlIHRocm91Z2gKKyAqICAgYnVmcyB1bnRpbCBmcmVlbGlzdCBjb2RlIGlzIHVzZWQuICBOb3RlIHRoaXMgaGlkZXMgYSBwcm9ibGVtIHdpdGgKKyAqICAgdGhlIHNjcmF0Y2ggcmVnaXN0ZXIgKiAodXNlZCB0byBrZWVwIHRyYWNrIG9mIGxhc3QgYnVmZmVyCisgKiAgIGNvbXBsZXRlZCkgYmVpbmcgd3JpdHRlbiB0byBiZWZvcmUgKiB0aGUgbGFzdCBidWZmZXIgaGFzIGFjdHVhbGx5CisgKiAgIGNvbXBsZXRlZCByZW5kZXJpbmcuCisgKgorICogS1c6ICBJdCdzIGFsc28gYSBnb29kIHdheSB0byBmaW5kIGZyZWUgYnVmZmVycyBxdWlja2x5LgorICoKKyAqIEtXOiBJZGVhbGx5IHRoaXMgbG9vcCB3b3VsZG4ndCBleGlzdCwgYW5kIGZyZWVsaXN0X2dldCB3b3VsZG4ndAorICogc2xlZXAuICBIb3dldmVyLCBidWdzIGluIG9sZGVyIHZlcnNpb25zIG9mIHJhZGVvbl9hY2NlbC5jIG1lYW4gdGhhdAorICogd2UgZXNzZW50aWFsbHkgaGF2ZSB0byBkbyB0aGlzLCBlbHNlIG9sZCBjbGllbnRzIHdpbGwgYnJlYWsuCisgKgorICogSG93ZXZlciwgaXQgZG9lcyBsZWF2ZSBvcGVuIGEgcG90ZW50aWFsIGRlYWRsb2NrIHdoZXJlIGFsbCB0aGUKKyAqIGJ1ZmZlcnMgYXJlIGhlbGQgYnkgb3RoZXIgY2xpZW50cywgd2hpY2ggY2FuJ3QgcmVsZWFzZSB0aGVtIGJlY2F1c2UKKyAqIHRoZXkgY2FuJ3QgZ2V0IHRoZSBsb2NrLgorICovCisKK3N0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2J1Zl9wcml2X3QgKmJ1Zl9wcml2OworCXN0cnVjdCBkcm1fYnVmICpidWY7CisJaW50IGksIHQ7CisJaW50IHN0YXJ0OworCisJaWYgKCsrZGV2X3ByaXYtPmxhc3RfYnVmID49IGRtYS0+YnVmX2NvdW50KQorCQlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCisJc3RhcnQgPSBkZXZfcHJpdi0+bGFzdF9idWY7CisKKwlmb3IgKHQgPSAwOyB0IDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgdCsrKSB7CisJCXUzMiBkb25lX2FnZSA9IEdFVF9TQ1JBVENIKDEpOworCQlEUk1fREVCVUcoImRvbmVfYWdlID0gJWRcbiIsIGRvbmVfYWdlKTsKKwkJZm9yIChpID0gc3RhcnQ7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7CisJCQlidWYgPSBkbWEtPmJ1Zmxpc3RbaV07CisJCQlidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7CisJCQlpZiAoYnVmLT5maWxlX3ByaXYgPT0gTlVMTCB8fCAoYnVmLT5wZW5kaW5nICYmCisJCQkJCQkgICAgICAgYnVmX3ByaXYtPmFnZSA8PQorCQkJCQkJICAgICAgIGRvbmVfYWdlKSkgeworCQkJCWRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcysrOworCQkJCWJ1Zi0+cGVuZGluZyA9IDA7CisJCQkJcmV0dXJuIGJ1ZjsKKwkJCX0KKwkJCXN0YXJ0ID0gMDsKKwkJfQorCisJCWlmICh0KSB7CisJCQlEUk1fVURFTEFZKDEpOworCQkJZGV2X3ByaXYtPnN0YXRzLmZyZWVsaXN0X2xvb3BzKys7CisJCX0KKwl9CisKKwlEUk1fREVCVUcoInJldHVybmluZyBOVUxMIVxuIik7CisJcmV0dXJuIE5VTEw7Cit9CisKKyNpZiAwCitzdHJ1Y3QgZHJtX2J1ZiAqcmFkZW9uX2ZyZWVsaXN0X2dldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdjsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWludCBpLCB0OworCWludCBzdGFydDsKKwl1MzIgZG9uZV9hZ2UgPSBEUk1fUkVBRDMyKGRldl9wcml2LT5yaW5nX3JwdHIsIFJBREVPTl9TQ1JBVENIT0ZGKDEpKTsKKworCWlmICgrK2Rldl9wcml2LT5sYXN0X2J1ZiA+PSBkbWEtPmJ1Zl9jb3VudCkKKwkJZGV2X3ByaXYtPmxhc3RfYnVmID0gMDsKKworCXN0YXJ0ID0gZGV2X3ByaXYtPmxhc3RfYnVmOworCWRldl9wcml2LT5zdGF0cy5mcmVlbGlzdF9sb29wcysrOworCisJZm9yICh0ID0gMDsgdCA8IDI7IHQrKykgeworCQlmb3IgKGkgPSBzdGFydDsgaSA8IGRtYS0+YnVmX2NvdW50OyBpKyspIHsKKwkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpXTsKKwkJCWJ1Zl9wcml2ID0gYnVmLT5kZXZfcHJpdmF0ZTsKKwkJCWlmIChidWYtPmZpbGVfcHJpdiA9PSAwIHx8IChidWYtPnBlbmRpbmcgJiYKKwkJCQkJCSAgICBidWZfcHJpdi0+YWdlIDw9CisJCQkJCQkgICAgZG9uZV9hZ2UpKSB7CisJCQkJZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzKys7CisJCQkJYnVmLT5wZW5kaW5nID0gMDsKKwkJCQlyZXR1cm4gYnVmOworCQkJfQorCQl9CisJCXN0YXJ0ID0gMDsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKyNlbmRpZgorCit2b2lkIHJhZGVvbl9mcmVlbGlzdF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYSA9IGRldi0+ZG1hOworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGk7CisKKwlkZXZfcHJpdi0+bGFzdF9idWYgPSAwOworCWZvciAoaSA9IDA7IGkgPCBkbWEtPmJ1Zl9jb3VudDsgaSsrKSB7CisJCXN0cnVjdCBkcm1fYnVmICpidWYgPSBkbWEtPmJ1Zmxpc3RbaV07CisJCWRybV9yYWRlb25fYnVmX3ByaXZfdCAqYnVmX3ByaXYgPSBidWYtPmRldl9wcml2YXRlOworCQlidWZfcHJpdi0+YWdlID0gMDsKKwl9Cit9CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIENQIGNvbW1hbmQgc3VibWlzc2lvbgorICovCisKK2ludCByYWRlb25fd2FpdF9yaW5nKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBuKQoreworCWRybV9yYWRlb25fcmluZ19idWZmZXJfdCAqcmluZyA9ICZkZXZfcHJpdi0+cmluZzsKKwlpbnQgaTsKKwl1MzIgbGFzdF9oZWFkID0gR0VUX1JJTkdfSEVBRChkZXZfcHJpdik7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CisJCXUzMiBoZWFkID0gR0VUX1JJTkdfSEVBRChkZXZfcHJpdik7CisKKwkJcmluZy0+c3BhY2UgPSAoaGVhZCAtIHJpbmctPnRhaWwpICogc2l6ZW9mKHUzMik7CisJCWlmIChyaW5nLT5zcGFjZSA8PSAwKQorCQkJcmluZy0+c3BhY2UgKz0gcmluZy0+c2l6ZTsKKwkJaWYgKHJpbmctPnNwYWNlID4gbikKKwkJCXJldHVybiAwOworCisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCQlpZiAoaGVhZCAhPSBsYXN0X2hlYWQpCisJCQlpID0gMDsKKwkJbGFzdF9oZWFkID0gaGVhZDsKKworCQlEUk1fVURFTEFZKDEpOworCX0KKworCS8qIEZJWE1FOiBUaGlzIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkIGluIHRoZSBCRUdJTl9SSU5HIG1hY3JvISAqLworI2lmIFJBREVPTl9GSUZPX0RFQlVHCisJcmFkZW9uX3N0YXR1cyhkZXZfcHJpdik7CisJRFJNX0VSUk9SKCJmYWlsZWQhXG4iKTsKKyNlbmRpZgorCXJldHVybiAtRUJVU1k7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2dldF9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCSBzdHJ1Y3QgZHJtX2RtYSAqIGQpCit7CisJaW50IGk7CisJc3RydWN0IGRybV9idWYgKmJ1ZjsKKworCWZvciAoaSA9IGQtPmdyYW50ZWRfY291bnQ7IGkgPCBkLT5yZXF1ZXN0X2NvdW50OyBpKyspIHsKKwkJYnVmID0gcmFkZW9uX2ZyZWVsaXN0X2dldChkZXYpOworCQlpZiAoIWJ1ZikKKwkJCXJldHVybiAtRUJVU1k7CS8qIE5PVEU6IGJyb2tlbiBjbGllbnQgKi8KKworCQlidWYtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKworCQlpZiAoRFJNX0NPUFlfVE9fVVNFUigmZC0+cmVxdWVzdF9pbmRpY2VzW2ldLCAmYnVmLT5pZHgsCisJCQkJICAgICBzaXplb2YoYnVmLT5pZHgpKSkKKwkJCXJldHVybiAtRUZBVUxUOworCQlpZiAoRFJNX0NPUFlfVE9fVVNFUigmZC0+cmVxdWVzdF9zaXplc1tpXSwgJmJ1Zi0+dG90YWwsCisJCQkJICAgICBzaXplb2YoYnVmLT50b3RhbCkpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJZC0+Z3JhbnRlZF9jb3VudCsrOworCX0KKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9jcF9idWZmZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXN0cnVjdCBkcm1fZGV2aWNlX2RtYSAqZG1hID0gZGV2LT5kbWE7CisJaW50IHJldCA9IDA7CisJc3RydWN0IGRybV9kbWEgKmQgPSBkYXRhOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCS8qIFBsZWFzZSBkb24ndCBzZW5kIHVzIGJ1ZmZlcnMuCisJICovCisJaWYgKGQtPnNlbmRfY291bnQgIT0gMCkgeworCQlEUk1fRVJST1IoIlByb2Nlc3MgJWQgdHJ5aW5nIHRvIHNlbmQgJWQgYnVmZmVycyB2aWEgZHJtRE1BXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgZC0+c2VuZF9jb3VudCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFdlJ2xsIHNlbmQgeW91IGJ1ZmZlcnMuCisJICovCisJaWYgKGQtPnJlcXVlc3RfY291bnQgPCAwIHx8IGQtPnJlcXVlc3RfY291bnQgPiBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoIlByb2Nlc3MgJWQgdHJ5aW5nIHRvIGdldCAlZCBidWZmZXJzIChvZiAlZCBtYXgpXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgZC0+cmVxdWVzdF9jb3VudCwgZG1hLT5idWZfY291bnQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkLT5ncmFudGVkX2NvdW50ID0gMDsKKworCWlmIChkLT5yZXF1ZXN0X2NvdW50KSB7CisJCXJldCA9IHJhZGVvbl9jcF9nZXRfYnVmZmVycyhkZXYsIGZpbGVfcHJpdiwgZCk7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworaW50IHJhZGVvbl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdjsKKwlpbnQgcmV0ID0gMDsKKworCWRldl9wcml2ID0gZHJtX2FsbG9jKHNpemVvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCksIERSTV9NRU1fRFJJVkVSKTsKKwlpZiAoZGV2X3ByaXYgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltZW1zZXQoZGV2X3ByaXYsIDAsIHNpemVvZihkcm1fcmFkZW9uX3ByaXZhdGVfdCkpOworCWRldi0+ZGV2X3ByaXZhdGUgPSAodm9pZCAqKWRldl9wcml2OworCWRldl9wcml2LT5mbGFncyA9IGZsYWdzOworCisJc3dpdGNoIChmbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgeworCWNhc2UgQ0hJUF9SMTAwOgorCWNhc2UgQ0hJUF9SVjIwMDoKKwljYXNlIENISVBfUjIwMDoKKwljYXNlIENISVBfUjMwMDoKKwljYXNlIENISVBfUjM1MDoKKwljYXNlIENISVBfUjQyMDoKKwljYXNlIENISVBfUlY0MTA6CisJY2FzZSBDSElQX1JWNTE1OgorCWNhc2UgQ0hJUF9SNTIwOgorCWNhc2UgQ0hJUF9SVjU3MDoKKwljYXNlIENISVBfUjU4MDoKKwkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9IQVNfSElFUlo7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8qIGFsbCBvdGhlciBjaGlwcyBoYXZlIG5vIGhpZXJhcmNoaWNhbCB6IGJ1ZmZlciAqLworCQlicmVhazsKKwl9CisKKwlpZiAoZHJtX2RldmljZV9pc19hZ3AoZGV2KSkKKwkJZGV2X3ByaXYtPmZsYWdzIHw9IFJBREVPTl9JU19BR1A7CisJZWxzZSBpZiAoZHJtX2RldmljZV9pc19wY2llKGRldikpCisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfUENJRTsKKwllbHNlCisJCWRldl9wcml2LT5mbGFncyB8PSBSQURFT05fSVNfUENJOworCisJRFJNX0RFQlVHKCIlcyBjYXJkIGRldGVjdGVkXG4iLAorCQkgICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0lTX0FHUCkgPyAiQUdQIiA6ICgoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKSA/ICJQQ0lFIiA6ICJQQ0kiKSkpKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBDcmVhdGUgbWFwcGluZ3MgZm9yIHJlZ2lzdGVycyBhbmQgZnJhbWVidWZmZXIgc28gdXNlcmxhbmQgZG9lc24ndCBuZWNlc3NhcmlseQorICogaGF2ZSB0byBmaW5kIHRoZW0uCisgKi8KK2ludCByYWRlb25fZHJpdmVyX2ZpcnN0b3BlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWludCByZXQ7CisJZHJtX2xvY2FsX21hcF90ICptYXA7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCWRldl9wcml2LT5nYXJ0X2luZm8udGFibGVfc2l6ZSA9IFJBREVPTl9QQ0lHQVJUX1RBQkxFX1NJWkU7CisKKwlyZXQgPSBkcm1fYWRkbWFwKGRldiwgZHJtX2dldF9yZXNvdXJjZV9zdGFydChkZXYsIDIpLAorCQkJIGRybV9nZXRfcmVzb3VyY2VfbGVuKGRldiwgMiksIF9EUk1fUkVHSVNURVJTLAorCQkJIF9EUk1fUkVBRF9PTkxZLCAmZGV2X3ByaXYtPm1taW8pOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWRldl9wcml2LT5mYl9hcGVyX29mZnNldCA9IGRybV9nZXRfcmVzb3VyY2Vfc3RhcnQoZGV2LCAwKTsKKwlyZXQgPSBkcm1fYWRkbWFwKGRldiwgZGV2X3ByaXYtPmZiX2FwZXJfb2Zmc2V0LAorCQkJIGRybV9nZXRfcmVzb3VyY2VfbGVuKGRldiwgMCksIF9EUk1fRlJBTUVfQlVGRkVSLAorCQkJIF9EUk1fV1JJVEVfQ09NQklOSU5HLCAmbWFwKTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworaW50IHJhZGVvbl9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCURSTV9ERUJVRygiXG4iKTsKKwlkcm1fZnJlZShkZXZfcHJpdiwgc2l6ZW9mKCpkZXZfcHJpdiksIERSTV9NRU1fRFJJVkVSKTsKKworCWRldi0+ZGV2X3ByaXZhdGUgPSBOVUxMOworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9yYWRlb25fZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmMGVjYTkKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuaApAQCAtMCwwICsxLDE0MDYgQEAKKy8qIHJhZGVvbl9kcnYuaCAtLSBQcml2YXRlIGhlYWRlciBmb3IgcmFkZW9uIGRyaXZlciAtKi0gbGludXgtYyAtKi0KKyAqCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKyNpZm5kZWYgX19SQURFT05fRFJWX0hfXworI2RlZmluZSBfX1JBREVPTl9EUlZfSF9fCisKKy8qIEdlbmVyYWwgY3VzdG9taXphdGlvbjoKKyAqLworCisjZGVmaW5lIERSSVZFUl9BVVRIT1IJCSJHYXJldGggSHVnaGVzLCBLZWl0aCBXaGl0d2VsbCwgb3RoZXJzLiIKKworI2RlZmluZSBEUklWRVJfTkFNRQkJInJhZGVvbiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MJCSJBVEkgUmFkZW9uIgorI2RlZmluZSBEUklWRVJfREFURQkJIjIwMDgwNTI4IgorCisvKiBJbnRlcmZhY2UgaGlzdG9yeToKKyAqCisgKiAxLjEgLSA/PworICogMS4yIC0gQWRkIHZlcnRleDIgaW9jdGwgKGtlaXRoKQorICogICAgIC0gQWRkIHN0ZW5jaWwgY2FwYWJpbGl0eSB0byBjbGVhciBpb2N0bCAoZ2FyZXRoLCBrZWl0aCkKKyAqICAgICAtIEluY3JlYXNlIE1BWF9URVhUVVJFX0xFVkVMUyAoYnJpYW4pCisgKiAxLjMgLSBBZGQgY21kYnVmIGlvY3RsIChrZWl0aCkKKyAqICAgICAtIEFkZCBzdXBwb3J0IGZvciBuZXcgcmFkZW9uIHBhY2tldHMgKGtlaXRoKQorICogICAgIC0gQWRkIGdldHBhcmFtIGlvY3RsIChrZWl0aCkKKyAqICAgICAtIEFkZCBmbGlwLWJ1ZmZlcnMgaW9jdGwsIGRlcHJlY2F0ZSBmdWxsc2NyZWVuIGZvbyAoa2VpdGgpLgorICogMS40IC0gQWRkIHNjcmF0Y2ggcmVnaXN0ZXJzIHRvIGdldF9wYXJhbSBpb2N0bC4KKyAqIDEuNSAtIEFkZCByMjAwIHBhY2tldHMgdG8gY21kYnVmIGlvY3RsCisgKiAgICAgLSBBZGQgcjIwMCBmdW5jdGlvbiB0byBpbml0IGlvY3RsCisgKiAgICAgLSBBZGQgJ3NjYWxhcjInIGluc3RydWN0aW9uIHRvIGNtZGJ1ZgorICogMS42IC0gQWRkIHN0YXRpYyBHQVJUIG1lbW9yeSBtYW5hZ2VyCisgKiAgICAgICBBZGQgaXJxIGhhbmRsZXIgKHdvbid0IGJlIHR1cm5lZCBvbiB1bmxlc3MgWCBzZXJ2ZXIga25vd3MgdG8pCisgKiAgICAgICBBZGQgaXJxIGlvY3RscyBhbmQgaXJxX2FjdGl2ZSBnZXRwYXJhbS4KKyAqICAgICAgIEFkZCB3YWl0IGNvbW1hbmQgZm9yIGNtZGJ1ZiBpb2N0bAorICogICAgICAgQWRkIEdBUlQgb2Zmc2V0IHF1ZXJ5IGZvciBnZXRwYXJhbQorICogMS43IC0gQWRkIHN1cHBvcnQgZm9yIGN1YmUgbWFwIHJlZ2lzdGVyczogUjIwMF9QUF9DVUJJQ19GQUNFU19bMC4uNV0KKyAqICAgICAgIGFuZCBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV9bMC4uNV0uCisgKiAgICAgICBBZGRlZCBwYWNrZXRzIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU19bMC4uNV0gYW5kCisgKiAgICAgICBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19bMC4uNV0uICAoYnJpYW4pCisgKiAxLjggLSBSZW1vdmUgbmVlZCB0byBjYWxsIGNsZWFudXAgaW9jdGxzIG9uIGxhc3QgY2xpZW50IGV4aXQgKGtlaXRoKQorICogICAgICAgQWRkICdHRVQnIHF1ZXJpZXMgZm9yIHN0YXJ0aW5nIGFkZGl0aW9uYWwgY2xpZW50cyBvbiBkaWZmZXJlbnQgVlQncy4KKyAqIDEuOSAtIEFkZCBEUk1fSU9DVExfUkFERU9OX0NQX1JFU1VNRSBpb2N0bC4KKyAqICAgICAgIEFkZCB0ZXh0dXJlIHJlY3RhbmdsZSBzdXBwb3J0IGZvciByMTAwLgorICogMS4xMC0gQWRkIFNFVFBBUkFNIGlvY3RsOyBmaXJzdCBwYXJhbWV0ZXIgdG8gc2V0IGlzIEZCX0xPQ0FUSU9OLCB3aGljaAorICogICAgICAgY2xpZW50cyB1c2UgdG8gdGVsbCB0aGUgRFJNIHdoZXJlIHRoZXkgdGhpbmsgdGhlIGZyYW1lYnVmZmVyIGlzCisgKiAgICAgICBsb2NhdGVkIGluIHRoZSBjYXJkJ3MgYWRkcmVzcyBzcGFjZQorICogMS4xMS0gQWRkIHBhY2tldCBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SIHRvIHN1cHBvcnQgR0xfRVhUX2JsZW5kX2NvbG9yCisgKiAgICAgICBhbmQgR0xfRVhUX2JsZW5kX1tmdW5jfGVxdWF0aW9uXV9zZXBhcmF0ZSBvbiByMjAwCisgKiAxLjEyLSBBZGQgUjMwMCBDUCBtaWNyb2NvZGUgc3VwcG9ydCAtIHRoaXMganVzdCBsb2FkcyB0aGUgQ1Agb24gcjMwMAorICogICAgICAgKE5vIDNEIHN1cHBvcnQgeWV0IC0ganVzdCBtaWNyb2NvZGUgbG9hZGluZykuCisgKiAxLjEzLSBBZGQgcGFja2V0IFIyMDBfRU1JVF9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgZm9yIEFSQl9wb2ludF9wYXJhbWV0ZXJzCisgKiAgICAgLSBBZGQgaHlwZXJ6IHN1cHBvcnQsIGFkZCBoeXBlcnogZmxhZ3MgdG8gY2xlYXIgaW9jdGwuCisgKiAxLjE0LSBBZGQgc3VwcG9ydCBmb3IgY29sb3IgdGlsaW5nCisgKiAgICAgLSBBZGQgUjEwMC9SMjAwIHN1cmZhY2UgYWxsb2NhdGlvbi9mcmVlIHN1cHBvcnQKKyAqIDEuMTUtIEFkZCBzdXBwb3J0IGZvciB0ZXh0dXJlIG1pY3JvIHRpbGluZworICogICAgIC0gQWRkIHN1cHBvcnQgZm9yIHIxMDAgY3ViZSBtYXBzCisgKiAxLjE2LSBBZGQgUjIwMF9FTUlUX1BQX1RSSV9QRVJGX0NOVEwgcGFja2V0IHRvIHN1cHBvcnQgYnJpbGluZWFyCisgKiAgICAgICB0ZXh0dXJlIGZpbHRlcmluZyBvbiByMjAwCisgKiAxLjE3LSBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBSMzAwICgzRCkuCisgKiAxLjE4LSBBZGQgc3VwcG9ydCBmb3IgR0xfQVRJX2ZyYWdtZW50X3NoYWRlciwgbmV3IHBhY2tldHMKKyAqICAgICAgIFIyMDBfRU1JVF9QUF9BRlNfMC8xLCBSMjAwX0VNSVRfUFBfVFhDVExBTExfMC01IChyZXBsYWNlcworICogICAgICAgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzAtNSwgMiBtb3JlIHJlZ3MpIGFuZCBSMjAwX0VNSVRfQVRGX1RGQUNUT1IKKyAqICAgICAgIChyZXBsYWNlcyBSMjAwX0VNSVRfVEZBQ1RPUl8wICg4IGNvbnN0cyBpbnN0ZWFkIG9mIDYpCisgKiAxLjE5LSBBZGQgc3VwcG9ydCBmb3IgZ2FydCB0YWJsZSBpbiBGQiBtZW1vcnkgYW5kIFBDSUUgcjMwMAorICogMS4yMC0gQWRkIHN1cHBvcnQgZm9yIHIzMDAgdGV4cmVjdAorICogMS4yMS0gQWRkIHN1cHBvcnQgZm9yIGNhcmQgdHlwZSBnZXRwYXJhbQorICogMS4yMi0gQWRkIHN1cHBvcnQgZm9yIHRleHR1cmUgY2FjaGUgZmx1c2hlcyAoUjMwMF9UWF9DTlRMKQorICogMS4yMy0gQWRkIG5ldyByYWRlb24gbWVtb3J5IG1hcCB3b3JrIGZyb20gYmVuaAorICogMS4yNC0gQWRkIGdlbmVyYWwtcHVycG9zZSBwYWNrZXQgZm9yIG1hbmlwdWxhdGluZyBzY3JhdGNoIHJlZ2lzdGVycyAocjMwMCkKKyAqIDEuMjUtIEFkZCBzdXBwb3J0IGZvciByMjAwIHZlcnRleCBwcm9ncmFtcyAoUjIwMF9FTUlUX1ZBUF9QVlNfQ05UTCwKKyAqICAgICAgIG5ldyBwYWNrZXQgdHlwZSkKKyAqIDEuMjYtIEFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBzaXplIFBDSShFKSBnYXJ0IGFwZXJ0dXJlCisgKiAxLjI3LSBBZGQgc3VwcG9ydCBmb3IgSUdQIEdBUlQKKyAqIDEuMjgtIEFkZCBzdXBwb3J0IGZvciBWQkwgb24gQ1JUQzIKKyAqIDEuMjktIFI1MDAgM0QgY21kIGJ1ZmZlciBzdXBwb3J0CisgKi8KKyNkZWZpbmUgRFJJVkVSX01BSk9SCQkxCisjZGVmaW5lIERSSVZFUl9NSU5PUgkJMjkKKyNkZWZpbmUgRFJJVkVSX1BBVENITEVWRUwJMAorCisvKgorICogUmFkZW9uIGNoaXAgZmFtaWxpZXMKKyAqLworZW51bSByYWRlb25fZmFtaWx5IHsKKwlDSElQX1IxMDAsCisJQ0hJUF9SVjEwMCwKKwlDSElQX1JTMTAwLAorCUNISVBfUlYyMDAsCisJQ0hJUF9SUzIwMCwKKwlDSElQX1IyMDAsCisJQ0hJUF9SVjI1MCwKKwlDSElQX1JTMzAwLAorCUNISVBfUlYyODAsCisJQ0hJUF9SMzAwLAorCUNISVBfUjM1MCwKKwlDSElQX1JWMzUwLAorCUNISVBfUlYzODAsCisJQ0hJUF9SNDIwLAorCUNISVBfUlY0MTAsCisJQ0hJUF9SUzQ4MCwKKwlDSElQX1JTNjkwLAorCUNISVBfUlY1MTUsCisJQ0hJUF9SNTIwLAorCUNISVBfUlY1MzAsCisJQ0hJUF9SVjU2MCwKKwlDSElQX1JWNTcwLAorCUNISVBfUjU4MCwKKwlDSElQX0xBU1QsCit9OworCitlbnVtIHJhZGVvbl9jcF9taWNyb2NvZGVfdmVyc2lvbiB7CisJVUNPREVfUjEwMCwKKwlVQ09ERV9SMjAwLAorCVVDT0RFX1IzMDAsCit9OworCisvKgorICogQ2hpcCBmbGFncworICovCitlbnVtIHJhZGVvbl9jaGlwX2ZsYWdzIHsKKwlSQURFT05fRkFNSUxZX01BU0sgPSAweDAwMDBmZmZmVUwsCisJUkFERU9OX0ZMQUdTX01BU0sgPSAweGZmZmYwMDAwVUwsCisJUkFERU9OX0lTX01PQklMSVRZID0gMHgwMDAxMDAwMFVMLAorCVJBREVPTl9JU19JR1AgPSAweDAwMDIwMDAwVUwsCisJUkFERU9OX1NJTkdMRV9DUlRDID0gMHgwMDA0MDAwMFVMLAorCVJBREVPTl9JU19BR1AgPSAweDAwMDgwMDAwVUwsCisJUkFERU9OX0hBU19ISUVSWiA9IDB4MDAxMDAwMDBVTCwKKwlSQURFT05fSVNfUENJRSA9IDB4MDAyMDAwMDBVTCwKKwlSQURFT05fTkVXX01FTU1BUCA9IDB4MDA0MDAwMDBVTCwKKwlSQURFT05fSVNfUENJID0gMHgwMDgwMDAwMFVMLAorCVJBREVPTl9JU19JR1BHQVJUID0gMHgwMTAwMDAwMFVMLAorfTsKKworI2RlZmluZSBHRVRfUklOR19IRUFEKGRldl9wcml2KQkoZGV2X3ByaXYtPndyaXRlYmFja193b3JrcyA/IFwKKyAgICAgICAgRFJNX1JFQUQzMiggIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCApIDogUkFERU9OX1JFQUQoUkFERU9OX0NQX1JCX1JQVFIpKQorI2RlZmluZSBTRVRfUklOR19IRUFEKGRldl9wcml2LHZhbCkJRFJNX1dSSVRFMzIoIChkZXZfcHJpdiktPnJpbmdfcnB0ciwgMCwgKHZhbCkgKQorCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2ZyZWVsaXN0IHsKKwl1bnNpZ25lZCBpbnQgYWdlOworCXN0cnVjdCBkcm1fYnVmICpidWY7CisJc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKm5leHQ7CisJc3RydWN0IGRybV9yYWRlb25fZnJlZWxpc3QgKnByZXY7Cit9IGRybV9yYWRlb25fZnJlZWxpc3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9yaW5nX2J1ZmZlciB7CisJdTMyICpzdGFydDsKKwl1MzIgKmVuZDsKKwlpbnQgc2l6ZTsKKwlpbnQgc2l6ZV9sMnF3OworCisJaW50IHJwdHJfdXBkYXRlOyAvKiBEb3VibGUgV29yZHMgKi8KKwlpbnQgcnB0cl91cGRhdGVfbDJxdzsgLyogbG9nMiBRdWFkIFdvcmRzICovCisKKwlpbnQgZmV0Y2hfc2l6ZTsgLyogRG91YmxlIFdvcmRzICovCisJaW50IGZldGNoX3NpemVfbDJvdzsgLyogbG9nMiBPY3QgV29yZHMgKi8KKworCXUzMiB0YWlsOworCXUzMiB0YWlsX21hc2s7CisJaW50IHNwYWNlOworCisJaW50IGhpZ2hfbWFyazsKK30gZHJtX3JhZGVvbl9yaW5nX2J1ZmZlcl90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgeworCXUzMiByYjNkX2NudGw7CisJdTMyIHJiM2RfenN0ZW5jaWxjbnRsOworCXUzMiBzZV9jbnRsOworfSBkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3Q7CisKK3N0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyB7CisJaW50NjRfdCByYWRlb25fZmJfZGVsdGE7Cit9OworCitzdHJ1Y3QgbWVtX2Jsb2NrIHsKKwlzdHJ1Y3QgbWVtX2Jsb2NrICpuZXh0OworCXN0cnVjdCBtZW1fYmxvY2sgKnByZXY7CisJaW50IHN0YXJ0OworCWludCBzaXplOworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OyAvKiBOVUxMOiBmcmVlLCAtMTogaGVhcCwgb3RoZXI6IHJlYWwgZmlsZXMgKi8KK307CisKK3N0cnVjdCByYWRlb25fc3VyZmFjZSB7CisJaW50IHJlZmNvdW50OworCXUzMiBsb3dlcjsKKwl1MzIgdXBwZXI7CisJdTMyIGZsYWdzOworfTsKKworc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgeworCWludCBzdXJmYWNlX2luZGV4OworCXUzMiBsb3dlcjsKKwl1MzIgdXBwZXI7CisJdTMyIGZsYWdzOworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OworfTsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9wcml2YXRlIHsKKwlkcm1fcmFkZW9uX3JpbmdfYnVmZmVyX3QgcmluZzsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXY7CisKKwl1MzIgZmJfbG9jYXRpb247CisJdTMyIGZiX3NpemU7CisJaW50IG5ld19tZW1tYXA7CisKKwlpbnQgZ2FydF9zaXplOworCXUzMiBnYXJ0X3ZtX3N0YXJ0OworCXVuc2lnbmVkIGxvbmcgZ2FydF9idWZmZXJzX29mZnNldDsKKworCWludCBjcF9tb2RlOworCWludCBjcF9ydW5uaW5nOworCisJZHJtX3JhZGVvbl9mcmVlbGlzdF90ICpoZWFkOworCWRybV9yYWRlb25fZnJlZWxpc3RfdCAqdGFpbDsKKwlpbnQgbGFzdF9idWY7CisJdm9sYXRpbGUgdTMyICpzY3JhdGNoOworCWludCB3cml0ZWJhY2tfd29ya3M7CisKKwlpbnQgdXNlY190aW1lb3V0OworCisJaW50IG1pY3JvY29kZV92ZXJzaW9uOworCisJc3RydWN0IHsKKwkJdTMyIGJveGVzOworCQlpbnQgZnJlZWxpc3RfdGltZW91dHM7CisJCWludCBmcmVlbGlzdF9sb29wczsKKwkJaW50IHJlcXVlc3RlZF9idWZzOworCQlpbnQgbGFzdF9mcmFtZV9yZWFkczsKKwkJaW50IGxhc3RfY2xlYXJfcmVhZHM7CisJCWludCBjbGVhcnM7CisJCWludCB0ZXh0dXJlX3VwbG9hZHM7CisJfSBzdGF0czsKKworCWludCBkb19ib3hlczsKKwlpbnQgcGFnZV9mbGlwcGluZzsKKworCXUzMiBjb2xvcl9mbXQ7CisJdW5zaWduZWQgaW50IGZyb250X29mZnNldDsKKwl1bnNpZ25lZCBpbnQgZnJvbnRfcGl0Y2g7CisJdW5zaWduZWQgaW50IGJhY2tfb2Zmc2V0OworCXVuc2lnbmVkIGludCBiYWNrX3BpdGNoOworCisJdTMyIGRlcHRoX2ZtdDsKKwl1bnNpZ25lZCBpbnQgZGVwdGhfb2Zmc2V0OworCXVuc2lnbmVkIGludCBkZXB0aF9waXRjaDsKKworCXUzMiBmcm9udF9waXRjaF9vZmZzZXQ7CisJdTMyIGJhY2tfcGl0Y2hfb2Zmc2V0OworCXUzMiBkZXB0aF9waXRjaF9vZmZzZXQ7CisKKwlkcm1fcmFkZW9uX2RlcHRoX2NsZWFyX3QgZGVwdGhfY2xlYXI7CisKKwl1bnNpZ25lZCBsb25nIHJpbmdfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgcmluZ19ycHRyX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIGJ1ZmZlcnNfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgZ2FydF90ZXh0dXJlc19vZmZzZXQ7CisKKwlkcm1fbG9jYWxfbWFwX3QgKnNhcmVhOworCWRybV9sb2NhbF9tYXBfdCAqbW1pbzsKKwlkcm1fbG9jYWxfbWFwX3QgKmNwX3Jpbmc7CisJZHJtX2xvY2FsX21hcF90ICpyaW5nX3JwdHI7CisJZHJtX2xvY2FsX21hcF90ICpnYXJ0X3RleHR1cmVzOworCisJc3RydWN0IG1lbV9ibG9jayAqZ2FydF9oZWFwOworCXN0cnVjdCBtZW1fYmxvY2sgKmZiX2hlYXA7CisKKwkvKiBTVyBpbnRlcnJ1cHQgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCBzd2lfcXVldWU7CisJYXRvbWljX3Qgc3dpX2VtaXR0ZWQ7CisJaW50IHZibGFua19jcnRjOworCXVpbnQzMl90IGlycV9lbmFibGVfcmVnOworCWludCBpcnFfZW5hYmxlZDsKKwl1aW50MzJfdCByNTAwX2Rpc3BfaXJxX3JlZzsKKworCXN0cnVjdCByYWRlb25fc3VyZmFjZSBzdXJmYWNlc1tSQURFT05fTUFYX1NVUkZBQ0VTXTsKKwlzdHJ1Y3QgcmFkZW9uX3ZpcnRfc3VyZmFjZSB2aXJ0X3N1cmZhY2VzWzIgKiBSQURFT05fTUFYX1NVUkZBQ0VTXTsKKworCXVuc2lnbmVkIGxvbmcgcGNpZ2FydF9vZmZzZXQ7CisJdW5zaWduZWQgaW50IHBjaWdhcnRfb2Zmc2V0X3NldDsKKwlzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gZ2FydF9pbmZvOworCisJdTMyIHNjcmF0Y2hfYWdlc1s1XTsKKworCS8qIHN0YXJ0aW5nIGZyb20gaGVyZSBvbiwgZGF0YSBpcyBwcmVzZXJ2ZWQgYWNjcm9zcyBhbiBvcGVuICovCisJdWludDMyX3QgZmxhZ3M7CQkvKiBzZWUgcmFkZW9uX2NoaXBfZmxhZ3MgKi8KKwl1bnNpZ25lZCBsb25nIGZiX2FwZXJfb2Zmc2V0OworCisJaW50IG51bV9nYl9waXBlczsKK30gZHJtX3JhZGVvbl9wcml2YXRlX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fYnVmX3ByaXYgeworCXUzMiBhZ2U7Cit9IGRybV9yYWRlb25fYnVmX3ByaXZfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9rY21kX2J1ZmZlciB7CisJaW50IGJ1ZnN6OworCWNoYXIgKmJ1ZjsKKwlpbnQgbmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBfX3VzZXIgKmJveGVzOworfSBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3Q7CisKK2V4dGVybiBpbnQgcmFkZW9uX25vX3diOworZXh0ZXJuIHN0cnVjdCBkcm1faW9jdGxfZGVzYyByYWRlb25faW9jdGxzW107CitleHRlcm4gaW50IHJhZGVvbl9tYXhfaW9jdGw7CisKKy8qIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGhhcmR3YXJlIGFkZHJlc3MgaXMgaW5zaWRlIHRoZSBmcmFtZWJ1ZmZlciBvciB0aGUKKyAqIEdBUlQgYXJlYS4KKyAqLworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19vZmZzZXQoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQkgIHU2NCBvZmYpCit7CisJdTMyIGZiX3N0YXJ0ID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uOworCXUzMiBmYl9lbmQgPSBmYl9zdGFydCArIGRldl9wcml2LT5mYl9zaXplIC0gMTsKKwl1MzIgZ2FydF9zdGFydCA9IGRldl9wcml2LT5nYXJ0X3ZtX3N0YXJ0OworCXUzMiBnYXJ0X2VuZCA9IGdhcnRfc3RhcnQgKyBkZXZfcHJpdi0+Z2FydF9zaXplIC0gMTsKKworCXJldHVybiAoKG9mZiA+PSBmYl9zdGFydCAmJiBvZmYgPD0gZmJfZW5kKSB8fAorCQkob2ZmID49IGdhcnRfc3RhcnQgJiYgb2ZmIDw9IGdhcnRfZW5kKSk7Cit9CisKKwkJCQkvKiByYWRlb25fY3AuYyAqLworZXh0ZXJuIGludCByYWRlb25fY3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9jcF9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9jcF9zdG9wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX2lkbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCByYWRlb25fY3BfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2VuZ2luZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IHJhZGVvbl9mdWxsc2NyZWVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2NwX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHUzMiByYWRlb25fcmVhZF9mYl9sb2NhdGlvbihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpOworCitleHRlcm4gdm9pZCByYWRlb25fZnJlZWxpc3RfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHN0cnVjdCBkcm1fYnVmICpyYWRlb25fZnJlZWxpc3RfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKKworZXh0ZXJuIGludCByYWRlb25fd2FpdF9yaW5nKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsIGludCBuKTsKKworZXh0ZXJuIGludCByYWRlb25fZG9fY3BfaWRsZShkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KTsKKworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ByZWluaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncyk7CitleHRlcm4gaW50IHJhZGVvbl9wcmVzZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCByYWRlb25fbWVtX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX21lbV9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX21lbV9pbml0X2hlYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX21lbV90YWtlZG93bihzdHJ1Y3QgbWVtX2Jsb2NrICoqaGVhcCk7CitleHRlcm4gdm9pZCByYWRlb25fbWVtX3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgICAgc3RydWN0IG1lbV9ibG9jayAqaGVhcCk7CisKKwkJCQkvKiByYWRlb25faXJxLmMgKi8KK2V4dGVybiBpbnQgcmFkZW9uX2lycV9lbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworZXh0ZXJuIHZvaWQgcmFkZW9uX2RvX3JlbGVhc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJCSAgICAgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfdmJsYW5rX3dhaXQyKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJCSAgICAgIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpOworZXh0ZXJuIGlycXJldHVybl90IHJhZGVvbl9kcml2ZXJfaXJxX2hhbmRsZXIoRFJNX0lSUV9BUkdTKTsKK2V4dGVybiB2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KTsKK2V4dGVybiB2b2lkIHJhZGVvbl9lbmFibGVfaW50ZXJydXB0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfZ2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCByYWRlb25fdmJsYW5rX2NydGNfc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludDY0X3QgdmFsdWUpOworCitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKTsKK2V4dGVybiBpbnQgcmFkZW9uX2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IHJhZGVvbl9kcml2ZXJfZmlyc3RvcGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wcmVjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9wb3N0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHApOworZXh0ZXJuIHZvaWQgcmFkZW9uX2RyaXZlcl9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpOworZXh0ZXJuIGludCByYWRlb25fZHJpdmVyX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fZmlsZSAqIGZpbHBfcHJpdik7CitleHRlcm4gbG9uZyByYWRlb25fY29tcGF0X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJCXVuc2lnbmVkIGxvbmcgYXJnKTsKKworLyogcjMwMF9jbWRidWYuYyAqLworZXh0ZXJuIHZvaWQgcjMwMF9pbml0X3JlZ19mbGFncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCByMzAwX2RvX2NwX2NtZGJ1ZihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqIGNtZGJ1Zik7CisKKy8qIEZsYWdzIGZvciBzdGF0cy5ib3hlcworICovCisjZGVmaW5lIFJBREVPTl9CT1hfRE1BX0lETEUgICAgICAweDEKKyNkZWZpbmUgUkFERU9OX0JPWF9SSU5HX0ZVTEwgICAgIDB4MgorI2RlZmluZSBSQURFT05fQk9YX0ZMSVAgICAgICAgICAgMHg0CisjZGVmaW5lIFJBREVPTl9CT1hfV0FJVF9JRExFICAgICAweDgKKyNkZWZpbmUgUkFERU9OX0JPWF9URVhUVVJFX0xPQUQgIDB4MTAKKworLyogUmVnaXN0ZXIgZGVmaW5pdGlvbnMsIHJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgYW5kIGRybUFkZE1hcCBjb25zdGFudHMKKyAqIGZvciBSYWRlb24ga2VybmVsIGRyaXZlci4KKyAqLworCisjZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORAkJMHgwZjYwCisjZGVmaW5lIFJBREVPTl9BR1BfQ09NTUFORF9QQ0lfQ09ORklHICAgMHgwMDYwCS8qIG9mZnNldCBpbiBQQ0kgY29uZmlnICovCisjCWRlZmluZSBSQURFT05fQUdQX0VOQUJMRQkoMTw8OCkKKyNkZWZpbmUgUkFERU9OX0FVWF9TQ0lTU09SX0NOVEwJCTB4MjZmMAorIwlkZWZpbmUgUkFERU9OX0VYQ0xVU0lWRV9TQ0lTU09SXzAJKDEgPDwgMjQpCisjCWRlZmluZSBSQURFT05fRVhDTFVTSVZFX1NDSVNTT1JfMQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9FWENMVVNJVkVfU0NJU1NPUl8yCSgxIDw8IDI2KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMF9FTkFCTEUJCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMV9FTkFCTEUJCSgxIDw8IDI5KQorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfMl9FTkFCTEUJCSgxIDw8IDMwKQorCisjZGVmaW5lIFJBREVPTl9CVVNfQ05UTAkJCTB4MDAzMAorIwlkZWZpbmUgUkFERU9OX0JVU19NQVNURVJfRElTCQkoMSA8PCA2KQorCisjZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0RBVEEJCTB4MDAwYworIwlkZWZpbmUgUkFERU9OX1BMTF9XUl9FTgkJCSgxIDw8IDcpCisjZGVmaW5lIFJBREVPTl9DTE9DS19DTlRMX0lOREVYCQkweDAwMDgKKyNkZWZpbmUgUkFERU9OX0NPTkZJR19BUEVSX1NJWkUJCTB4MDEwOAorI2RlZmluZSBSQURFT05fQ09ORklHX01FTVNJWkUJCTB4MDBmOAorI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVQJCTB4MDIyNAorI2RlZmluZSBSQURFT05fQ1JUQ19PRkZTRVRfQ05UTAkJMHgwMjI4CisjCWRlZmluZSBSQURFT05fQ1JUQ19USUxFX0VOCQkoMSA8PCAxNSkKKyMJZGVmaW5lIFJBREVPTl9DUlRDX09GRlNFVF9GTElQX0NOVEwJKDEgPDwgMTYpCisjZGVmaW5lIFJBREVPTl9DUlRDMl9PRkZTRVQJCTB4MDMyNAorI2RlZmluZSBSQURFT05fQ1JUQzJfT0ZGU0VUX0NOVEwJMHgwMzI4CisKKyNkZWZpbmUgUkFERU9OX1BDSUVfSU5ERVggICAgICAgICAgICAgICAweDAwMzAKKyNkZWZpbmUgUkFERU9OX1BDSUVfREFUQSAgICAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DTlRMCTB4MTAKKyMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU4JCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1VOTUFQUEVEX0FDQ0VTU19QQVNTX1RIUlUgKDAgPDwgMSkKKyMJZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfVU5NQVBQRURfQUNDRVNTX0NMQU1QX0xPICAoMSA8PCAxKQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9VTk1BUFBFRF9BQ0NFU1NfRElTQ0FSRCAgICgzIDw8IDEpCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX01PREVfMzJfMTI4X0NBQ0hFCSgwIDw8IDMpCisjCWRlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX01PREVfOF80XzEyOF9DQUNIRQkoMSA8PCAzKQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9DSEtfUldfVkFMSURfRU4gICAgICAoMSA8PCA1KQorIwlkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9JTlZBTElEQVRFX1RMQgkoMSA8PCA4KQorI2RlZmluZSBSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfTE8gMHgxMQorI2RlZmluZSBSQURFT05fUENJRV9UWF9ESVNDQVJEX1JEX0FERFJfSEkgMHgxMgorI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX0JBU0UJMHgxMworI2RlZmluZSBSQURFT05fUENJRV9UWF9HQVJUX1NUQVJUX0xPCTB4MTQKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9TVEFSVF9ISQkweDE1CisjZGVmaW5lIFJBREVPTl9QQ0lFX1RYX0dBUlRfRU5EX0xPCTB4MTYKKyNkZWZpbmUgUkFERU9OX1BDSUVfVFhfR0FSVF9FTkRfSEkJMHgxNworCisjZGVmaW5lIFJTNDgwX05CX01DX0lOREVYICAgICAgICAgICAgICAgMHgxNjgKKyMJZGVmaW5lIFJTNDgwX05CX01DX0lORF9XUl9FTgkoMSA8PCA4KQorI2RlZmluZSBSUzQ4MF9OQl9NQ19EQVRBICAgICAgICAgICAgICAgIDB4MTZjCisKKyNkZWZpbmUgUlM2OTBfTUNfSU5ERVggICAgICAgICAgICAgICAgICAweDc4CisjICAgZGVmaW5lIFJTNjkwX01DX0lOREVYX01BU0sgICAgICAgICAgMHgxZmYKKyMgICBkZWZpbmUgUlM2OTBfTUNfSU5ERVhfV1JfRU4gICAgICAgICAoMSA8PCA5KQorIyAgIGRlZmluZSBSUzY5MF9NQ19JTkRFWF9XUl9BQ0sgICAgICAgIDB4N2YKKyNkZWZpbmUgUlM2OTBfTUNfREFUQSAgICAgICAgICAgICAgICAgICAweDdjCisKKy8qIE1DIGluZGlyZWN0IHJlZ2lzdGVycyAqLworI2RlZmluZSBSUzQ4MF9NQ19NSVNDX0NOVEwgICAgICAgICAgICAgIDB4MTgKKyMJZGVmaW5lIFJTNDgwX0RJU0FCTEVfR1RXCSgxIDw8IDEpCisvKiBzd2l0Y2ggYmV0d2VlbiBNQ0lORCBHQVJUIGFuZCBNTSBHQVJUIHJlZ2lzdGVycy4gMCA9IG1tZ2FydCwgMSA9IG1jaW5kIGdhcnQgKi8KKyMJZGVmaW5lIFJTNDgwX0dBUlRfSU5ERVhfUkVHX0VOCSgxIDw8IDEyKQorIwlkZWZpbmUgUlM2OTBfQkxPQ0tfR0ZYX0QzX0VOCSgxIDw8IDE0KQorI2RlZmluZSBSUzQ4MF9LOF9GQl9MT0NBVElPTiAgICAgICAgICAgIDB4MWUKKyNkZWZpbmUgUlM0ODBfR0FSVF9GRUFUVVJFX0lEICAgICAgICAgICAweDJiCisjCWRlZmluZSBSUzQ4MF9IQU5HX0VOCSAgICAgICAgKDEgPDwgMTEpCisjCWRlZmluZSBSUzQ4MF9UTEJfRU5BQkxFCSAgICAgICAgKDEgPDwgMTgpCisjCWRlZmluZSBSUzQ4MF9QMlBfRU5BQkxFCSAgICAgICAgKDEgPDwgMTkpCisjCWRlZmluZSBSUzQ4MF9HVFdfTEFDX0VOCSAgICAgICAgKDEgPDwgMjUpCisjCWRlZmluZSBSUzQ4MF8yTEVWRUxfR0FSVAkoMCA8PCAzMCkKKyMJZGVmaW5lIFJTNDgwXzFMRVZFTF9HQVJUCSgxIDw8IDMwKQorIwlkZWZpbmUgUlM0ODBfUERDX0VOCSAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIFJTNDgwX0dBUlRfQkFTRSAgICAgICAgICAgICAgICAgMHgyYworI2RlZmluZSBSUzQ4MF9HQVJUX0NBQ0hFX0NOVFJMICAgICAgICAgIDB4MmUKKyMJZGVmaW5lIFJTNDgwX0dBUlRfQ0FDSEVfSU5WQUxJREFURSAoMSA8PCAwKSAvKiB3YWl0IGZvciBpdCB0byBjbGVhciAqLworI2RlZmluZSBSUzQ4MF9BR1BfQUREUkVTU19TUEFDRV9TSVpFICAgIDB4MzgKKyMJZGVmaW5lIFJTNDgwX0dBUlRfRU4JICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUlM0ODBfVkFfU0laRV8zMk1CCSgwIDw8IDEpCisjCWRlZmluZSBSUzQ4MF9WQV9TSVpFXzY0TUIJKDEgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMTI4TUIJKDIgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMjU2TUIJKDMgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfNTEyTUIJKDQgPDwgMSkKKyMJZGVmaW5lIFJTNDgwX1ZBX1NJWkVfMUdCCSg1IDw8IDEpCisjCWRlZmluZSBSUzQ4MF9WQV9TSVpFXzJHQgkoNiA8PCAxKQorI2RlZmluZSBSUzQ4MF9BR1BfTU9ERV9DTlRMICAgICAgICAgICAgIDB4MzkKKyMJZGVmaW5lIFJTNDgwX1BPU1RfR0FSVF9RX1NJWkUJKDEgPDwgMTgpCisjCWRlZmluZSBSUzQ4MF9OT05HQVJUX1NOT09QCSgxIDw8IDE5KQorIwlkZWZpbmUgUlM0ODBfQUdQX1JEX0JVRl9TSVpFCSgxIDw8IDIwKQorIwlkZWZpbmUgUlM0ODBfUkVRX1RZUEVfU05PT1BfU0hJRlQgMjIKKyMJZGVmaW5lIFJTNDgwX1JFUV9UWVBFX1NOT09QX01BU0sgIDB4MworIwlkZWZpbmUgUlM0ODBfUkVRX1RZUEVfU05PT1BfRElTCSgxIDw8IDI0KQorI2RlZmluZSBSUzQ4MF9NQ19NSVNDX1VNQV9DTlRMICAgICAgICAgIDB4NWYKKyNkZWZpbmUgUlM0ODBfTUNfTUNMS19DTlRMICAgICAgICAgICAgICAweDdhCisjZGVmaW5lIFJTNDgwX01DX1VNQV9EVUFMQ0hfQ05UTCAgICAgICAgMHg4NgorCisjZGVmaW5lIFJTNjkwX01DX0ZCX0xPQ0FUSU9OICAgICAgICAgICAgMHgxMDAKKyNkZWZpbmUgUlM2OTBfTUNfQUdQX0xPQ0FUSU9OICAgICAgICAgICAweDEwMQorI2RlZmluZSBSUzY5MF9NQ19BR1BfQkFTRSAgICAgICAgICAgICAgIDB4MTAyCisjZGVmaW5lIFJTNjkwX01DX0FHUF9CQVNFXzIgICAgICAgICAgICAgMHgxMDMKKworI2RlZmluZSBSNTIwX01DX0lORF9JTkRFWCAweDcwCisjZGVmaW5lIFI1MjBfTUNfSU5EX1dSX0VOICgxIDw8IDI0KQorI2RlZmluZSBSNTIwX01DX0lORF9EQVRBICAweDc0CisKKyNkZWZpbmUgUlY1MTVfTUNfRkJfTE9DQVRJT04gMHgwMQorI2RlZmluZSBSVjUxNV9NQ19BR1BfTE9DQVRJT04gMHgwMgorI2RlZmluZSBSVjUxNV9NQ19BR1BfQkFTRSAgICAgMHgwMworI2RlZmluZSBSVjUxNV9NQ19BR1BfQkFTRV8yICAgMHgwNAorCisjZGVmaW5lIFI1MjBfTUNfRkJfTE9DQVRJT04gMHgwNAorI2RlZmluZSBSNTIwX01DX0FHUF9MT0NBVElPTiAweDA1CisjZGVmaW5lIFI1MjBfTUNfQUdQX0JBU0UgICAgIDB4MDYKKyNkZWZpbmUgUjUyMF9NQ19BR1BfQkFTRV8yICAgMHgwNworCisjZGVmaW5lIFJBREVPTl9NUFBfVEJfQ09ORklHCQkweDAxYzAKKyNkZWZpbmUgUkFERU9OX01FTV9DTlRMCQkJMHgwMTQwCisjZGVmaW5lIFJBREVPTl9NRU1fU0RSQU1fTU9ERV9SRUcJMHgwMTU4CisjZGVmaW5lIFJBREVPTl9BR1BfQkFTRV8yCQkweDAxNWMgLyogcjIwMCsgb25seSAqLworI2RlZmluZSBSUzQ4MF9BR1BfQkFTRV8yCQkweDAxNjQKKyNkZWZpbmUgUkFERU9OX0FHUF9CQVNFCQkJMHgwMTcwCisKKy8qIHBpcGUgY29uZmlnIHJlZ3MgKi8KKyNkZWZpbmUgUjQwMF9HQl9QSVBFX1NFTEVDVCAgICAgICAgICAgICAweDQwMmMKKyNkZWZpbmUgUjUwMF9EWU5fU0NMS19QV01FTV9QSVBFICAgICAgICAweDAwMGQgLyogUExMICovCisjZGVmaW5lIFI1MDBfU1VfUkVHX0RFU1QgICAgICAgICAgICAgICAgMHg0MmM4CisjZGVmaW5lIFIzMDBfR0JfVElMRV9DT05GSUcgICAgICAgICAgICAgMHg0MDE4CisjICAgICAgIGRlZmluZSBSMzAwX0VOQUJMRV9USUxJTkcgICAgICAgKDEgPDwgMCkKKyMgICAgICAgZGVmaW5lIFIzMDBfUElQRV9DT1VOVF9SVjM1MCAgICAoMCA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9QSVBFX0NPVU5UX1IzMDAgICAgICgzIDw8IDEpCisjICAgICAgIGRlZmluZSBSMzAwX1BJUEVfQ09VTlRfUjQyMF8zUCAgKDYgPDwgMSkKKyMgICAgICAgZGVmaW5lIFIzMDBfUElQRV9DT1VOVF9SNDIwICAgICAoNyA8PCAxKQorIyAgICAgICBkZWZpbmUgUjMwMF9USUxFX1NJWkVfOCAgICAgICAgICgwIDw8IDQpCisjICAgICAgIGRlZmluZSBSMzAwX1RJTEVfU0laRV8xNiAgICAgICAgKDEgPDwgNCkKKyMgICAgICAgZGVmaW5lIFIzMDBfVElMRV9TSVpFXzMyICAgICAgICAoMiA8PCA0KQorIyAgICAgICBkZWZpbmUgUjMwMF9TVUJQSVhFTF8xXzEyICAgICAgICgwIDw8IDE2KQorIyAgICAgICBkZWZpbmUgUjMwMF9TVUJQSVhFTF8xXzE2ICAgICAgICgxIDw8IDE2KQorI2RlZmluZSBSMzAwX0RTVF9QSVBFX0NPTkZJRyAgICAgICAgICAgIDB4MTcwYworIyAgICAgICBkZWZpbmUgUjMwMF9QSVBFX0FVVE9fQ09ORklHICAgICgxIDw8IDMxKQorI2RlZmluZSBSMzAwX1JCMkRfRFNUQ0FDSEVfTU9ERSAgICAgICAgIDB4MzQyOAorIyAgICAgICBkZWZpbmUgUjMwMF9EQ19BVVRPRkxVU0hfRU5BQkxFICgxIDw8IDgpCisjICAgICAgIGRlZmluZSBSMzAwX0RDX0RDX0RJU0FCTEVfSUdOT1JFX1BFICgxIDw8IDE3KQorCisjZGVmaW5lIFJBREVPTl9SQjNEX0NPTE9ST0ZGU0VUCQkweDFjNDAKKyNkZWZpbmUgUkFERU9OX1JCM0RfQ09MT1JQSVRDSAkJMHgxYzQ4CisKKyNkZWZpbmUJUkFERU9OX1NSQ19YX1kJCQkweDE1OTAKKworI2RlZmluZSBSQURFT05fRFBfR1VJX01BU1RFUl9DTlRMCTB4MTQ2YworIwlkZWZpbmUgUkFERU9OX0dNQ19TUkNfUElUQ0hfT0ZGU0VUX0NOVEwJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMCSgxIDw8IDEpCisjCWRlZmluZSBSQURFT05fR01DX0JSVVNIX1NPTElEX0NPTE9SCSgxMyA8PCA0KQorIwlkZWZpbmUgUkFERU9OX0dNQ19CUlVTSF9OT05FCQkoMTUgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUXzE2QlBQCQkoNCA8PCA4KQorIwlkZWZpbmUgUkFERU9OX0dNQ19EU1RfMjRCUFAJCSg1IDw8IDgpCisjCWRlZmluZSBSQURFT05fR01DX0RTVF8zMkJQUAkJKDYgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9HTUNfRFNUX0RBVEFUWVBFX1NISUZUCTgKKyMJZGVmaW5lIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SCSgzIDw8IDEyKQorIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfTUVNT1JZCSgyIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX0RQX1NSQ19TT1VSQ0VfSE9TVF9EQVRBCSgzIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0dNQ19XUl9NU0tfRElTCQkoMSA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9ST1AzX1MJCQkweDAwY2MwMDAwCisjCWRlZmluZSBSQURFT05fUk9QM19QCQkJMHgwMGYwMDAwMAorI2RlZmluZSBSQURFT05fRFBfV1JJVEVfTUFTSwkJMHgxNmNjCisjZGVmaW5lIFJBREVPTl9TUkNfUElUQ0hfT0ZGU0VUCQkweDE0MjgKKyNkZWZpbmUgUkFERU9OX0RTVF9QSVRDSF9PRkZTRVQJCTB4MTQyYworI2RlZmluZSBSQURFT05fRFNUX1BJVENIX09GRlNFVF9DCTB4MWM4MAorIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX0xJTkVBUgkJKDAgPDwgMzApCisjCWRlZmluZSBSQURFT05fRFNUX1RJTEVfTUFDUk8JCSgxIDw8IDMwKQorIwlkZWZpbmUgUkFERU9OX0RTVF9USUxFX01JQ1JPCQkoMiA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9EU1RfVElMRV9CT1RICQkoMyA8PCAzMCkKKworI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUcwCQkweDE1ZTAKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHMQkJMHgxNWU0CisjZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzIJCTB4MTVlOAorI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUczCQkweDE1ZWMKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfUkVHNAkJMHgxNWYwCisjZGVmaW5lIFJBREVPTl9TQ1JBVENIX1JFRzUJCTB4MTVmNAorI2RlZmluZSBSQURFT05fU0NSQVRDSF9VTVNLCQkweDA3NzAKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hfQUREUgkJMHgwNzc0CisKKyNkZWZpbmUgUkFERU9OX1NDUkFUQ0hPRkYoIHggKQkJKFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQgKyA0Kih4KSkKKworI2RlZmluZSBHRVRfU0NSQVRDSCggeCApCShkZXZfcHJpdi0+d3JpdGViYWNrX3dvcmtzCQkJXAorCQkJCT8gRFJNX1JFQUQzMiggZGV2X3ByaXYtPnJpbmdfcnB0ciwgUkFERU9OX1NDUkFUQ0hPRkYoeCkgKSBcCisJCQkJOiBSQURFT05fUkVBRCggUkFERU9OX1NDUkFUQ0hfUkVHMCArIDQqKHgpICkgKQorCisjZGVmaW5lIFJBREVPTl9HRU5fSU5UX0NOVEwJCTB4MDA0MAorIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX01BU0sJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0sJCSgxIDw8IDkpCisjCWRlZmluZSBSQURFT05fR1VJX0lETEVfSU5UX0VOQUJMRQkoMSA8PCAxOSkKKyMJZGVmaW5lIFJBREVPTl9TV19JTlRfRU5BQkxFCQkoMSA8PCAyNSkKKworI2RlZmluZSBSQURFT05fR0VOX0lOVF9TVEFUVVMJCTB4MDA0NAorIwlkZWZpbmUgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fQ1JUQ19WQkxBTktfU1RBVF9BQ0sJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVAkJKDEgPDwgOSkKKyMJZGVmaW5lIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVF9BQ0sJKDEgPDwgOSkKKyMJZGVmaW5lIFJBREVPTl9HVUlfSURMRV9JTlRfVEVTVF9BQ0sgICAgICgxIDw8IDE5KQorIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9URVNUCQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9TV19JTlRfVEVTVF9BQ0sJCSgxIDw8IDI1KQorIwlkZWZpbmUgUkFERU9OX1NXX0lOVF9GSVJFCQkoMSA8PCAyNikKKworI2RlZmluZSBSQURFT05fSE9TVF9QQVRIX0NOVEwJCTB4MDEzMAorIwlkZWZpbmUgUkFERU9OX0hEUF9TT0ZUX1JFU0VUCQkoMSA8PCAyNikKKyMJZGVmaW5lIFJBREVPTl9IRFBfV0NfVElNRU9VVF9NQVNLCSg3IDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0hEUF9XQ19USU1FT1VUXzI4QkNMSwkoNyA8PCAyOCkKKworI2RlZmluZSBSQURFT05fSVNZTkNfQ05UTAkJMHgxNzI0CisjCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZMkRfSURMRTNECSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fSVNZTkNfQU5ZM0RfSURMRTJECSgxIDw8IDEpCisjCWRlZmluZSBSQURFT05fSVNZTkNfVFJJRzJEX0lETEUzRAkoMSA8PCAyKQorIwlkZWZpbmUgUkFERU9OX0lTWU5DX1RSSUczRF9JRExFMkQJKDEgPDwgMykKKyMJZGVmaW5lIFJBREVPTl9JU1lOQ19XQUlUX0lETEVHVUkJKDEgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9JU1lOQ19DUFNDUkFUQ0hfSURMRUdVSQkoMSA8PCA1KQorCisjZGVmaW5lIFJBREVPTl9SQkJNX0dVSUNOVEwJCTB4MTcyYworIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQX05PTkUJKDAgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9IT1NUX0RBVEFfU1dBUF8xNkJJVAkoMSA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0hPU1RfREFUQV9TV0FQXzMyQklUCSgyIDw8IDApCisjCWRlZmluZSBSQURFT05fSE9TVF9EQVRBX1NXQVBfSERXCSgzIDw8IDApCisKKyNkZWZpbmUgUkFERU9OX01DX0FHUF9MT0NBVElPTgkJMHgwMTRjCisjZGVmaW5lIFJBREVPTl9NQ19GQl9MT0NBVElPTgkJMHgwMTQ4CisjZGVmaW5lIFJBREVPTl9NQ0xLX0NOVEwJCTB4MDAxMgorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0EJCSgxIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUNMS0IJCSgxIDw8IDE3KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0EJCSgxIDw8IDE4KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fWUNMS0IJCSgxIDw8IDE5KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fTUMJCSgxIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFT05fQUlDCQkoMSA8PCAyMSkKKworI2RlZmluZSBSQURFT05fUFBfQk9SREVSX0NPTE9SXzAJMHgxZDQwCisjZGVmaW5lIFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMQkweDFkNDQKKyNkZWZpbmUgUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yCTB4MWQ0OAorI2RlZmluZSBSQURFT05fUFBfQ05UTAkJCTB4MWMzOAorIwlkZWZpbmUgUkFERU9OX1NDSVNTT1JfRU5BQkxFCQkoMSA8PCAgMSkKKyNkZWZpbmUgUkFERU9OX1BQX0xVTV9NQVRSSVgJCTB4MWQwMAorI2RlZmluZSBSQURFT05fUFBfTUlTQwkJCTB4MWMxNAorI2RlZmluZSBSQURFT05fUFBfUk9UX01BVFJJWF8wCQkweDFkNTgKKyNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzAJCTB4MWM1NAorI2RlZmluZSBSQURFT05fUFBfVFhPRkZTRVRfMAkJMHgxYzVjCisjZGVmaW5lIFJBREVPTl9QUF9UWEZJTFRFUl8xCQkweDFjNmMKKyNkZWZpbmUgUkFERU9OX1BQX1RYRklMVEVSXzIJCTB4MWM4NAorCisjZGVmaW5lIFIzMDBfUkIyRF9EU1RDQUNIRV9DVExTVEFUCTB4MzQyYyAvKiB1c2UgUjMwMF9EU1RDQUNIRV9DVExTVEFUICovCisjZGVmaW5lIFIzMDBfRFNUQ0FDSEVfQ1RMU1RBVAkJMHgxNzE0CisjCWRlZmluZSBSMzAwX1JCMkRfRENfRkxVU0gJCSgzIDw8IDApCisjCWRlZmluZSBSMzAwX1JCMkRfRENfRlJFRQkJKDMgPDwgMikKKyMJZGVmaW5lIFIzMDBfUkIyRF9EQ19GTFVTSF9BTEwJCTB4ZgorIwlkZWZpbmUgUjMwMF9SQjJEX0RDX0JVU1kJCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkIzRF9DTlRMCQkweDFjM2MKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9CTEVORF9FTkFCTEUJKDEgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9QTEFORV9NQVNLX0VOQUJMRQkJKDEgPDwgMSkKKyMJZGVmaW5lIFJBREVPTl9ESVRIRVJfRU5BQkxFCQkoMSA8PCAyKQorIwlkZWZpbmUgUkFERU9OX1JPVU5EX0VOQUJMRQkJKDEgPDwgMykKKyMJZGVmaW5lIFJBREVPTl9TQ0FMRV9ESVRIRVJfRU5BQkxFCSgxIDw8IDQpCisjCWRlZmluZSBSQURFT05fRElUSEVSX0lOSVQJCSgxIDw8IDUpCisjCWRlZmluZSBSQURFT05fUk9QX0VOQUJMRQkJKDEgPDwgNikKKyMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX0VOQUJMRQkJKDEgPDwgNykKKyMJZGVmaW5lIFJBREVPTl9aX0VOQUJMRQkJCSgxIDw8IDgpCisjCWRlZmluZSBSQURFT05fWkJMT0NLMTYJCQkoMSA8PCAxNSkKKyNkZWZpbmUgUkFERU9OX1JCM0RfREVQVEhPRkZTRVQJCTB4MWMyNAorI2RlZmluZSBSQURFT05fUkIzRF9ERVBUSENMRUFSVkFMVUUJMHgzMjMwCisjZGVmaW5lIFJBREVPTl9SQjNEX0RFUFRIUElUQ0gJCTB4MWMyOAorI2RlZmluZSBSQURFT05fUkIzRF9QTEFORU1BU0sJCTB4MWQ4NAorI2RlZmluZSBSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSwkweDFkN2MKKyNkZWZpbmUgUkFERU9OX1JCM0RfWkNBQ0hFX01PREUJCTB4MzI1MAorI2RlZmluZSBSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVAkweDMyNTQKKyMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0ZMVVNICQkoMSA8PCAwKQorIwlkZWZpbmUgUkFERU9OX1JCM0RfWkNfRlJFRQkJKDEgPDwgMikKKyMJZGVmaW5lIFJBREVPTl9SQjNEX1pDX0ZMVVNIX0FMTAkJMHg1CisjCWRlZmluZSBSQURFT05fUkIzRF9aQ19CVVNZCQkoMSA8PCAzMSkKKyNkZWZpbmUgUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCAgICAgICAgICAgICAgICAgIDB4NGYxOAorIwlkZWZpbmUgUjMwMF9aQ19GTFVTSAkJICAgICAgICAoMSA8PCAwKQorIwlkZWZpbmUgUjMwMF9aQ19GUkVFCQkgICAgICAgICgxIDw8IDEpCisjCWRlZmluZSBSMzAwX1pDX0ZMVVNIX0FMTAkJMHgzCisjCWRlZmluZSBSMzAwX1pDX0JVU1kJCSAgICAgICAgKDEgPDwgMzEpCisjZGVmaW5lIFJBREVPTl9SQjNEX0RTVENBQ0hFX0NUTFNUQVQJMHgzMjVjCisjCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSAkJKDMgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9SQjNEX0RDX0ZSRUUJCSgzIDw8IDIpCisjCWRlZmluZSBSQURFT05fUkIzRF9EQ19GTFVTSF9BTEwJCTB4ZgorIwlkZWZpbmUgUkFERU9OX1JCM0RfRENfQlVTWQkJKDEgPDwgMzEpCisjZGVmaW5lIFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFUICAgICAgICAgICAgICAweDRlNGMKKyMJZGVmaW5lIFIzMDBfUkIzRF9EQ19GSU5JU0gJCSgxIDw8IDQpCisjZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKKyMJZGVmaW5lIFJBREVPTl9aX1RFU1RfTUFTSwkJKDcgPDwgNCkKKyMJZGVmaW5lIFJBREVPTl9aX1RFU1RfQUxXQVlTCQkoNyA8PCA0KQorIwlkZWZpbmUgUkFERU9OX1pfSElFUkFSQ0hZX0VOQUJMRQkoMSA8PCA4KQorIwlkZWZpbmUgUkFERU9OX1NURU5DSUxfVEVTVF9BTFdBWVMJKDcgPDwgMTIpCisjCWRlZmluZSBSQURFT05fU1RFTkNJTF9TX0ZBSUxfUkVQTEFDRQkoMiA8PCAxNikKKyMJZGVmaW5lIFJBREVPTl9TVEVOQ0lMX1pQQVNTX1JFUExBQ0UJKDIgPDwgMjApCisjCWRlZmluZSBSQURFT05fU1RFTkNJTF9aRkFJTF9SRVBMQUNFCSgyIDw8IDI0KQorIwlkZWZpbmUgUkFERU9OX1pfQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDI4KQorIwlkZWZpbmUgUkFERU9OX0ZPUkNFX1pfRElSVFkJCSgxIDw8IDI5KQorIwlkZWZpbmUgUkFERU9OX1pfV1JJVEVfRU5BQkxFCQkoMSA8PCAzMCkKKyMJZGVmaW5lIFJBREVPTl9aX0RFQ09NUFJFU1NJT05fRU5BQkxFCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkJCTV9TT0ZUX1JFU0VUCQkweDAwZjAKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0NQCQkoMSA8PCAgMCkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hJCQkoMSA8PCAgMSkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1NFCQkoMSA8PCAgMikKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JFCQkoMSA8PCAgMykKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1BQCQkoMSA8PCAgNCkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0UyCQkoMSA8PCAgNSkKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX1JCCQkoMSA8PCAgNikKKyMJZGVmaW5lIFJBREVPTl9TT0ZUX1JFU0VUX0hEUAkJKDEgPDwgIDcpCisvKgorICogICA2OjAgIEF2YWlsYWJsZSBzbG90cyBpbiB0aGUgRklGTworICogICA4ICAgIEhvc3QgSW50ZXJmYWNlIGFjdGl2ZQorICogICA5ICAgIENQIHJlcXVlc3QgYWN0aXZlCisgKiAgIDEwICAgRklGTyByZXF1ZXN0IGFjdGl2ZQorICogICAxMSAgIEhvc3QgSW50ZXJmYWNlIHJldHJ5IGFjdGl2ZQorICogICAxMiAgIENQIHJldHJ5IGFjdGl2ZQorICogICAxMyAgIEZJRk8gcmV0cnkgYWN0aXZlCisgKiAgIDE0ICAgRklGTyBwaXBlbGluZSBidXN5CisgKiAgIDE1ICAgRXZlbnQgZW5naW5lIGJ1c3kKKyAqICAgMTYgICBDUCBjb21tYW5kIHN0cmVhbSBidXN5CisgKiAgIDE3ICAgMkQgZW5naW5lIGJ1c3kKKyAqICAgMTggICAyRCBwb3J0aW9uIG9mIHJlbmRlciBiYWNrZW5kIGJ1c3kKKyAqICAgMjAgICAzRCBzZXR1cCBlbmdpbmUgYnVzeQorICogICAyNiAgIEdBIGVuZ2luZSBidXN5CisgKiAgIDI3ICAgQ0JBIDJEIGVuZ2luZSBidXN5CisgKiAgIDMxICAgMkQgZW5naW5lIGJ1c3kgb3IgM0QgZW5naW5lIGJ1c3kgb3IgRklGTyBub3QgZW1wdHkgb3IgQ1AgYnVzeSBvcgorICogICAgICAgICAgIGNvbW1hbmQgc3RyZWFtIHF1ZXVlIG5vdCBlbXB0eSBvciBSaW5nIEJ1ZmZlciBub3QgZW1wdHkKKyAqLworI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MGU0MAorLyogU2FtZSBhcyB0aGUgcHJldmlvdXMgUkFERU9OX1JCQk1fU1RBVFVTOyB0aGlzIGlzIGEgbWlycm9yIG9mIHRoYXQgcmVnaXN0ZXIuICAqLworLyogI2RlZmluZSBSQURFT05fUkJCTV9TVEFUVVMJCTB4MTc0MCAqLworLyogYml0cyA2OjAgYXJlIGR3b3JkIHNsb3RzIGF2YWlsYWJsZSBpbiB0aGUgY21kIGZpZm8gKi8KKyMJZGVmaW5lIFJBREVPTl9SQkJNX0ZJRk9DTlRfTUFTSwkJMHgwMDdmCisjCWRlZmluZSBSQURFT05fSElSUV9PTl9SQkIJKDEgPDwgIDgpCisjCWRlZmluZSBSQURFT05fQ1BSUV9PTl9SQkIJKDEgPDwgIDkpCisjCWRlZmluZSBSQURFT05fQ0ZSUV9PTl9SQkIJKDEgPDwgMTApCisjCWRlZmluZSBSQURFT05fSElSUV9JTl9SVEJVRgkoMSA8PCAxMSkKKyMJZGVmaW5lIFJBREVPTl9DUFJRX0lOX1JUQlVGCSgxIDw8IDEyKQorIwlkZWZpbmUgUkFERU9OX0NGUlFfSU5fUlRCVUYJKDEgPDwgMTMpCisjCWRlZmluZSBSQURFT05fUElQRV9CVVNZCQkoMSA8PCAxNCkKKyMJZGVmaW5lIFJBREVPTl9FTkdfRVZfQlVTWQkoMSA8PCAxNSkKKyMJZGVmaW5lIFJBREVPTl9DUF9DTURTVFJNX0JVU1kJKDEgPDwgMTYpCisjCWRlZmluZSBSQURFT05fRTJfQlVTWQkJKDEgPDwgMTcpCisjCWRlZmluZSBSQURFT05fUkIyRF9CVVNZCQkoMSA8PCAxOCkKKyMJZGVmaW5lIFJBREVPTl9SQjNEX0JVU1kJCSgxIDw8IDE5KSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVkFQX0JVU1kJCSgxIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX1JFX0JVU1kJCSgxIDw8IDIxKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVEFNX0JVU1kJCSgxIDw8IDIyKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fVERNX0JVU1kJCSgxIDw8IDIzKSAvKiBub3QgdXNlZCBvbiByMzAwICovCisjCWRlZmluZSBSQURFT05fUEJfQlVTWQkJKDEgPDwgMjQpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl9USU1fQlVTWQkJKDEgPDwgMjUpIC8qIG5vdCB1c2VkIG9uIHIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl9HQV9CVVNZCQkoMSA8PCAyNikKKyMJZGVmaW5lIFJBREVPTl9DQkEyRF9CVVNZCSgxIDw8IDI3KQorIwlkZWZpbmUgUkFERU9OX1JCQk1fQUNUSVZFCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fUkVfTElORV9QQVRURVJOCQkweDFjZDAKKyNkZWZpbmUgUkFERU9OX1JFX01JU0MJCQkweDI2YzQKKyNkZWZpbmUgUkFERU9OX1JFX1RPUF9MRUZUCQkweDI2YzAKKyNkZWZpbmUgUkFERU9OX1JFX1dJRFRIX0hFSUdIVAkJMHgxYzQ0CisjZGVmaW5lIFJBREVPTl9SRV9TVElQUExFX0FERFIJCTB4MWNjOAorI2RlZmluZSBSQURFT05fUkVfU1RJUFBMRV9EQVRBCQkweDFjY2MKKworI2RlZmluZSBSQURFT05fU0NJU1NPUl9UTF8wCQkweDFjZDgKKyNkZWZpbmUgUkFERU9OX1NDSVNTT1JfQlJfMAkJMHgxY2RjCisjZGVmaW5lIFJBREVPTl9TQ0lTU09SX1RMXzEJCTB4MWNlMAorI2RlZmluZSBSQURFT05fU0NJU1NPUl9CUl8xCQkweDFjZTQKKyNkZWZpbmUgUkFERU9OX1NDSVNTT1JfVExfMgkJMHgxY2U4CisjZGVmaW5lIFJBREVPTl9TQ0lTU09SX0JSXzIJCTB4MWNlYworI2RlZmluZSBSQURFT05fU0VfQ09PUkRfRk1UCQkweDFjNTAKKyNkZWZpbmUgUkFERU9OX1NFX0NOVEwJCQkweDFjNGMKKyMJZGVmaW5lIFJBREVPTl9GRkFDRV9DVUxMX0NXCQkoMCA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0JGQUNFX1NPTElECQkoMyA8PCAxKQorIwlkZWZpbmUgUkFERU9OX0ZGQUNFX1NPTElECQkoMyA8PCAzKQorIwlkZWZpbmUgUkFERU9OX0ZMQVRfU0hBREVfVlRYX0xBU1QJKDMgPDwgNikKKyMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0ZMQVQJKDEgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9ESUZGVVNFX1NIQURFX0dPVVJBVUQJKDIgPDwgOCkKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9GTEFUCQkoMSA8PCAxMCkKKyMJZGVmaW5lIFJBREVPTl9BTFBIQV9TSEFERV9HT1VSQVVECSgyIDw8IDEwKQorIwlkZWZpbmUgUkFERU9OX1NQRUNVTEFSX1NIQURFX0ZMQVQJKDEgPDwgMTIpCisjCWRlZmluZSBSQURFT05fU1BFQ1VMQVJfU0hBREVfR09VUkFVRAkoMiA8PCAxMikKKyMJZGVmaW5lIFJBREVPTl9GT0dfU0hBREVfRkxBVAkJKDEgPDwgMTQpCisjCWRlZmluZSBSQURFT05fRk9HX1NIQURFX0dPVVJBVUQJCSgyIDw8IDE0KQorIwlkZWZpbmUgUkFERU9OX1ZQT1JUX1hZX1hGT1JNX0VOQUJMRQkoMSA8PCAyNCkKKyMJZGVmaW5lIFJBREVPTl9WUE9SVF9aX1hGT1JNX0VOQUJMRQkoMSA8PCAyNSkKKyMJZGVmaW5lIFJBREVPTl9WVFhfUElYX0NFTlRFUl9PR0wJKDEgPDwgMjcpCisjCWRlZmluZSBSQURFT05fUk9VTkRfTU9ERV9UUlVOQwkJKDAgPDwgMjgpCisjCWRlZmluZSBSQURFT05fUk9VTkRfUFJFQ184VEhfUElYCSgxIDw8IDMwKQorI2RlZmluZSBSQURFT05fU0VfQ05UTF9TVEFUVVMJCTB4MjE0MAorI2RlZmluZSBSQURFT05fU0VfTElORV9XSURUSAkJMHgxZGI4CisjZGVmaW5lIFJBREVPTl9TRV9WUE9SVF9YU0NBTEUJCTB4MWQ5OAorI2RlZmluZSBSQURFT05fU0VfWkJJQVNfRkFDVE9SCQkweDFkYjAKKyNkZWZpbmUgUkFERU9OX1NFX1RDTF9NQVRFUklBTF9FTU1JU1NJVkVfUkVEIDB4MjIxMAorI2RlZmluZSBSQURFT05fU0VfVENMX09VVFBVVF9WVFhfRk1UICAgICAgICAgMHgyMjU0CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHICAgICAgICAweDIyMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9PQ1RXT1JEX1NUUklERV9TSElGVCAgMTYKKyMgICAgICAgZGVmaW5lIFJBREVPTl9WRUNfSU5EWF9EV09SRF9DT1VOVF9TSElGVCAgICAgMjgKKyNkZWZpbmUgUkFERU9OX1NFX1RDTF9WRUNUT1JfREFUQV9SRUcgICAgICAgMHgyMjA0CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0lORFhfUkVHICAgICAgIDB4MjIwOAorIyAgICAgICBkZWZpbmUgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQgIDE2CisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHICAgICAgIDB4MjIwQworI2RlZmluZSBSQURFT05fU1VSRkFDRV9BQ0NFU1NfRkxBR1MJMHgwYmY4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFX0FDQ0VTU19DTFIJMHgwYmZjCisjZGVmaW5lIFJBREVPTl9TVVJGQUNFX0NOVEwJCTB4MGIwMAorIwlkZWZpbmUgUkFERU9OX1NVUkZfVFJBTlNMQVRJT05fRElTCSgxIDw8IDgpCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX01BU0sJKDMgPDwgMjApCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0xJVFRMRQkoMCA8PCAyMCkKKyMJZGVmaW5lIFJBREVPTl9OT05TVVJGX0FQMF9TV1BfQklHMTYJKDEgPDwgMjApCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDBfU1dQX0JJRzMyCSgyIDw8IDIwKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9NQVNLCSgzIDw8IDIyKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9MSVRUTEUJKDAgPDwgMjIpCisjCWRlZmluZSBSQURFT05fTk9OU1VSRl9BUDFfU1dQX0JJRzE2CSgxIDw8IDIyKQorIwlkZWZpbmUgUkFERU9OX05PTlNVUkZfQVAxX1NXUF9CSUczMgkoMiA8PCAyMikKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0lORk8JCTB4MGIwYworIwlkZWZpbmUgUkFERU9OX1NVUkZfUElUQ0hTRUxfTUFTSwkoMHgxZmYgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9TVVJGX1RJTEVfTU9ERV9NQVNLCSgzIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01BQ1JPCSgwIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFX01JQ1JPCSgxIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1NVUkZfVElMRV9NT0RFXzMyQklUX1oJKDIgPDwgMTYpCisjCWRlZmluZSBSQURFT05fU1VSRl9USUxFX01PREVfMTZCSVRfWgkoMyA8PCAxNikKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UwX0xPV0VSX0JPVU5ECTB4MGIwNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQJMHgwYjA4CisjCWRlZmluZSBSQURFT05fU1VSRl9BRERSRVNTX0ZJWEVEX01BU0sJKDB4M2ZmIDw8IDApCisjZGVmaW5lIFJBREVPTl9TVVJGQUNFMV9JTkZPCQkweDBiMWMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UxX0xPV0VSX0JPVU5ECTB4MGIxNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTFfVVBQRVJfQk9VTkQJMHgwYjE4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFMl9JTkZPCQkweDBiMmMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UyX0xPV0VSX0JPVU5ECTB4MGIyNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTJfVVBQRVJfQk9VTkQJMHgwYjI4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFM19JTkZPCQkweDBiM2MKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0UzX0xPV0VSX0JPVU5ECTB4MGIzNAorI2RlZmluZSBSQURFT05fU1VSRkFDRTNfVVBQRVJfQk9VTkQJMHgwYjM4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNF9JTkZPCQkweDBiNGMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U0X0xPV0VSX0JPVU5ECTB4MGI0NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTRfVVBQRVJfQk9VTkQJMHgwYjQ4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNV9JTkZPCQkweDBiNWMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U1X0xPV0VSX0JPVU5ECTB4MGI1NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTVfVVBQRVJfQk9VTkQJMHgwYjU4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFNl9JTkZPCQkweDBiNmMKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U2X0xPV0VSX0JPVU5ECTB4MGI2NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTZfVVBQRVJfQk9VTkQJMHgwYjY4CisjZGVmaW5lIFJBREVPTl9TVVJGQUNFN19JTkZPCQkweDBiN2MKKyNkZWZpbmUgUkFERU9OX1NVUkZBQ0U3X0xPV0VSX0JPVU5ECTB4MGI3NAorI2RlZmluZSBSQURFT05fU1VSRkFDRTdfVVBQRVJfQk9VTkQJMHgwYjc4CisjZGVmaW5lIFJBREVPTl9TV19TRU1BUEhPUkUJCTB4MDEzYworCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMCQkweDE3MjAKKyMJZGVmaW5lIFJBREVPTl9XQUlUX0NSVENfUEZMSVAJCSgxIDw8IDApCisjCWRlZmluZSBSQURFT05fV0FJVF8yRF9JRExFCQkoMSA8PCAxNCkKKyMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEUJCSgxIDw8IDE1KQorIwlkZWZpbmUgUkFERU9OX1dBSVRfMkRfSURMRUNMRUFOCQkoMSA8PCAxNikKKyMJZGVmaW5lIFJBREVPTl9XQUlUXzNEX0lETEVDTEVBTgkJKDEgPDwgMTcpCisjCWRlZmluZSBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTgkoMSA8PCAxOCkKKworI2RlZmluZSBSQURFT05fUkIzRF9aTUFTS09GRlNFVAkJMHgzMjM0CisjZGVmaW5lIFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTAkweDFjMmMKKyMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1oJKDAgPDwgMCkKKyMJZGVmaW5lIFJBREVPTl9ERVBUSF9GT1JNQVRfMjRCSVRfSU5UX1oJKDIgPDwgMCkKKworLyogQ1AgcmVnaXN0ZXJzICovCisjZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fQUREUgkJMHgwN2Q0CisjZGVmaW5lIFJBREVPTl9DUF9NRV9SQU1fUkFERFIJCTB4MDdkOAorI2RlZmluZSBSQURFT05fQ1BfTUVfUkFNX0RBVEFICQkweDA3ZGMKKyNkZWZpbmUgUkFERU9OX0NQX01FX1JBTV9EQVRBTAkJMHgwN2UwCisKKyNkZWZpbmUgUkFERU9OX0NQX1JCX0JBU0UJCTB4MDcwMAorI2RlZmluZSBSQURFT05fQ1BfUkJfQ05UTAkJMHgwNzA0CisjCWRlZmluZSBSQURFT05fQlVGX1NXQVBfMzJCSVQJCSgyIDw8IDE2KQorIwlkZWZpbmUgUkFERU9OX1JCX05PX1VQREFURQkJKDEgPDwgMjcpCisjZGVmaW5lIFJBREVPTl9DUF9SQl9SUFRSX0FERFIJCTB4MDcwYworI2RlZmluZSBSQURFT05fQ1BfUkJfUlBUUgkJMHgwNzEwCisjZGVmaW5lIFJBREVPTl9DUF9SQl9XUFRSCQkweDA3MTQKKworI2RlZmluZSBSQURFT05fQ1BfUkJfV1BUUl9ERUxBWQkJMHgwNzE4CisjCWRlZmluZSBSQURFT05fUFJFX1dSSVRFX1RJTUVSX1NISUZUCTAKKyMJZGVmaW5lIFJBREVPTl9QUkVfV1JJVEVfTElNSVRfU0hJRlQJMjMKKworI2RlZmluZSBSQURFT05fQ1BfSUJfQkFTRQkJMHgwNzM4CisKKyNkZWZpbmUgUkFERU9OX0NQX0NTUV9DTlRMCQkweDA3NDAKKyMJZGVmaW5lIFJBREVPTl9DU1FfQ05UX1BSSU1BUllfTUFTSwkoMHhmZiA8PCAwKQorIwlkZWZpbmUgUkFERU9OX0NTUV9QUklESVNfSU5ERElTCQkoMCA8PCAyOCkKKyMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORERJUwkJKDEgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lORERJUwkJKDIgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSVBJT19JTkRCTQkJKDMgPDwgMjgpCisjCWRlZmluZSBSQURFT05fQ1NRX1BSSUJNX0lOREJNCQkoNCA8PCAyOCkKKyMJZGVmaW5lIFJBREVPTl9DU1FfUFJJUElPX0lORFBJTwkJKDE1IDw8IDI4KQorCisjZGVmaW5lIFJBREVPTl9BSUNfQ05UTAkJCTB4MDFkMAorIwlkZWZpbmUgUkFERU9OX1BDSUdBUlRfVFJBTlNMQVRFX0VOCSgxIDw8IDApCisjZGVmaW5lIFJBREVPTl9BSUNfU1RBVAkJCTB4MDFkNAorI2RlZmluZSBSQURFT05fQUlDX1BUX0JBU0UJCTB4MDFkOAorI2RlZmluZSBSQURFT05fQUlDX0xPX0FERFIJCTB4MDFkYworI2RlZmluZSBSQURFT05fQUlDX0hJX0FERFIJCTB4MDFlMAorI2RlZmluZSBSQURFT05fQUlDX1RMQl9BRERSCQkweDAxZTQKKyNkZWZpbmUgUkFERU9OX0FJQ19UTEJfREFUQQkJMHgwMWU4CisKKy8qIENQIGNvbW1hbmQgcGFja2V0cyAqLworI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMAkJMHgwMDAwMDAwMAorIwlkZWZpbmUgUkFERU9OX09ORV9SRUdfV1IJCSgxIDw8IDE1KQorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMQkJMHg0MDAwMDAwMAorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMgkJMHg4MDAwMDAwMAorI2RlZmluZSBSQURFT05fQ1BfUEFDS0VUMwkJMHhDMDAwMDAwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05PUCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMTAwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX05FWFRfQ0hBUiAgICAgICAgICAgICAgMHgwMDAwMTkwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1BMWV9ORVhUU0NBTiAgICAgICAgICAgMHgwMDAwMUQwMAorIyAgICAgICBkZWZpbmUgUkFERU9OX0NQX1NFVF9TQ0lTU09SUyAgICAgICAgICAgMHgwMDAwMUUwMAorCSAgICAgLyogR0VOX0lORFhfUFJJTSBpcyB1bnN1cHBvcnRlZCBzdGFydGluZyB3aXRoIFIzMDAgKi8KKyMJZGVmaW5lIFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0JMHgwMDAwMjMwMAorIwlkZWZpbmUgUkFERU9OX1dBSVRfRk9SX0lETEUJCTB4MDAwMDI2MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX1ZCVUYJCTB4MDAwMDI4MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lNTUQJCTB4MDAwMDI5MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9EUkFXX0lORFgJCTB4MDAwMDJBMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF9MT0FEX1BBTEVUVEUgICAgICAgICAgIDB4MDAwMDJDMDAKKyMJZGVmaW5lIFJBREVPTl8zRF9MT0FEX1ZCUE5UUgkJMHgwMDAwMkYwMAorIwlkZWZpbmUgUkFERU9OX01QRUdfSURDVF9NQUNST0JMT0NLCTB4MDAwMDMwMDAKKyMJZGVmaW5lIFJBREVPTl9NUEVHX0lEQ1RfTUFDUk9CTE9DS19SRVYJMHgwMDAwMzEwMAorIwlkZWZpbmUgUkFERU9OXzNEX0NMRUFSX1pNQVNLCQkweDAwMDAzMjAwCisjCWRlZmluZSBSQURFT05fQ1BfSU5EWF9CVUZGRVIJCTB4MDAwMDMzMDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX1ZCVUZfMiAgICAgICAgIDB4MDAwMDM0MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lNTURfMiAgICAgICAgIDB4MDAwMDM1MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9EUkFXX0lORFhfMiAgICAgICAgIDB4MDAwMDM2MDAKKyMJZGVmaW5lIFJBREVPTl8zRF9DTEVBUl9ISVoJCTB4MDAwMDM3MDAKKyMgICAgICAgZGVmaW5lIFJBREVPTl9DUF8zRF9DTEVBUl9DTUFTSyAgICAgICAgIDB4MDAwMDM4MDIKKyMJZGVmaW5lIFJBREVPTl9DTlRMX0hPU1REQVRBX0JMVAkJMHgwMDAwOTQwMAorIwlkZWZpbmUgUkFERU9OX0NOVExfUEFJTlRfTVVMVEkJCTB4MDAwMDlBMDAKKyMJZGVmaW5lIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSQkJMHgwMDAwOUIwMAorIwlkZWZpbmUgUkFERU9OX0NOVExfU0VUX1NDSVNTT1JTCQkweEMwMDAxRTAwCisKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVF9NQVNLCQkweEMwMDAwMDAwCisjZGVmaW5lIFJBREVPTl9DUF9QQUNLRVRfQ09VTlRfTUFTSwkweDNmZmYwMDAwCisjZGVmaW5lIFJBREVPTl9DUF9QQUNLRVQwX1JFR19NQVNLCTB4MDAwMDA3ZmYKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMF9NQVNLCTB4MDAwMDA3ZmYKKyNkZWZpbmUgUkFERU9OX0NQX1BBQ0tFVDFfUkVHMV9NQVNLCTB4MDAzZmY4MDAKKworI2RlZmluZSBSQURFT05fVlRYX1pfUFJFU0VOVAkJCSgxIDw8IDMxKQorI2RlZmluZSBSQURFT05fVlRYX1BLQ09MT1JfUFJFU0VOVAkJKDEgPDwgMykKKworI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX05PTkUJCQkoMCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1BPSU5UCQkJKDEgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FCQkJKDIgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9MSU5FX1NUUklQCQkoMyA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9MSVNUCQkoNCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9GQU4JCSg1IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfVFJJX1NUUklQCQkoNiA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX1RSSV9UWVBFMgkJKDcgPDwgMCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QJCSg4IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUCSg5IDw8IDApCisjZGVmaW5lIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QJCSgxMCA8PCAwKQorI2RlZmluZSBSQURFT05fUFJJTV9UWVBFX01BU0sgICAgICAgICAgICAgICAgICAgMHhmCisjZGVmaW5lIFJBREVPTl9QUklNX1dBTEtfSU5ECQkJKDEgPDwgNCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19MSVNUCQkJKDIgPDwgNCkKKyNkZWZpbmUgUkFERU9OX1BSSU1fV0FMS19SSU5HCQkJKDMgPDwgNCkKKyNkZWZpbmUgUkFERU9OX0NPTE9SX09SREVSX0JHUkEJCQkoMCA8PCA2KQorI2RlZmluZSBSQURFT05fQ09MT1JfT1JERVJfUkdCQQkJCSgxIDw8IDYpCisjZGVmaW5lIFJBREVPTl9NQU9TX0VOQUJMRQkJCSgxIDw8IDcpCisjZGVmaW5lIFJBREVPTl9WVFhfRk1UX1IxMjhfTU9ERQkJKDAgPDwgOCkKKyNkZWZpbmUgUkFERU9OX1ZUWF9GTVRfUkFERU9OX01PREUJCSgxIDw8IDgpCisjZGVmaW5lIFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQJCTE2CisKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9DSTgJCTIKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCMTU1NQkzCisjZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCNTY1CTQKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCODg4OAk2CisjZGVmaW5lIFJBREVPTl9DT0xPUl9GT1JNQVRfUkdCMzMyCTcKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9SR0I4CTkKKyNkZWZpbmUgUkFERU9OX0NPTE9SX0ZPUk1BVF9BUkdCNDQ0NAkxNQorCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9JOAkJMAorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfQUk4OAkJMQorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfUkdCMzMyCQkyCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NQkzCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9SR0I1NjUJCTQKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I0NDQ0CTUKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0FSR0I4ODg4CTYKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1JHQkE4ODg4CTcKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1k4CQk4CisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9WWVVZNDIyICAgICAgICAgMTAKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX1lWWVU0MjIgICAgICAgICAxMQorI2RlZmluZSBSQURFT05fVFhGT1JNQVRfRFhUMSAgICAgICAgICAgIDEyCisjZGVmaW5lIFJBREVPTl9UWEZPUk1BVF9EWFQyMyAgICAgICAgICAgMTQKKyNkZWZpbmUgUkFERU9OX1RYRk9STUFUX0RYVDQ1ICAgICAgICAgICAxNQorCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMCAgICAgICAgICAgICAgICAweDJmMDAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF8xICAgICAgICAgICAgICAgIDB4MmYxMAorI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzIgICAgICAgICAgICAgICAgMHgyZjIwCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfMyAgICAgICAgICAgICAgICAweDJmMzAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF80ICAgICAgICAgICAgICAgIDB4MmY0MAorI2RlZmluZSBSMjAwX1BQX1RYQ0JMRU5EXzUgICAgICAgICAgICAgICAgMHgyZjUwCisjZGVmaW5lIFIyMDBfUFBfVFhDQkxFTkRfNiAgICAgICAgICAgICAgICAweDJmNjAKKyNkZWZpbmUgUjIwMF9QUF9UWENCTEVORF83ICAgICAgICAgICAgICAgIDB4MmY3MAorI2RlZmluZSBSMjAwX1NFX1RDTF9MSUdIVF9NT0RFTF9DVExfMCAgICAgMHgyMjY4CisjZGVmaW5lIFIyMDBfUFBfVEZBQ1RPUl8wICAgICAgICAgICAgICAgICAweDJlZTAKKyNkZWZpbmUgUjIwMF9TRV9WVFhfRk1UXzAgICAgICAgICAgICAgICAgIDB4MjA4OAorI2RlZmluZSBSMjAwX1NFX1ZBUF9DTlRMICAgICAgICAgICAgICAgICAgMHgyMDgwCisjZGVmaW5lIFIyMDBfU0VfVENMX01BVFJJWF9TRUxfMCAgICAgICAgICAweDIyMzAKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfVEVYX1BST0NfQ1RMXzIgICAgICAgIDB4MjJhOAorI2RlZmluZSBSMjAwX1NFX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEwgICAgMHgyMmMwCisjZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfNSAgICAgICAgICAgICAgICAweDJjYTAKKyNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl80ICAgICAgICAgICAgICAgIDB4MmM4MAorI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzMgICAgICAgICAgICAgICAgMHgyYzYwCisjZGVmaW5lIFIyMDBfUFBfVFhGSUxURVJfMiAgICAgICAgICAgICAgICAweDJjNDAKKyNkZWZpbmUgUjIwMF9QUF9UWEZJTFRFUl8xICAgICAgICAgICAgICAgIDB4MmMyMAorI2RlZmluZSBSMjAwX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgMHgyYzAwCisjZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfNSAgICAgICAgICAgICAgICAweDJkNzgKKyNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF80ICAgICAgICAgICAgICAgIDB4MmQ2MAorI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzMgICAgICAgICAgICAgICAgMHgyZDQ4CisjZGVmaW5lIFIyMDBfUFBfVFhPRkZTRVRfMiAgICAgICAgICAgICAgICAweDJkMzAKKyNkZWZpbmUgUjIwMF9QUF9UWE9GRlNFVF8xICAgICAgICAgICAgICAgIDB4MmQxOAorI2RlZmluZSBSMjAwX1BQX1RYT0ZGU0VUXzAgICAgICAgICAgICAgICAgMHgyZDAwCisKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18wICAgICAgICAgICAgIDB4MmMxOAorI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgyYzM4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfMiAgICAgICAgICAgICAweDJjNTgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19GQUNFU18zICAgICAgICAgICAgIDB4MmM3OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX0ZBQ0VTXzQgICAgICAgICAgICAgMHgyYzk4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfRkFDRVNfNSAgICAgICAgICAgICAweDJjYjgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCAgICAgICAgIDB4MmQwNAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8wICAgICAgICAgMHgyZDA4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzAgICAgICAgICAweDJkMGMKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMCAgICAgICAgIDB4MmQxMAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8wICAgICAgICAgMHgyZDE0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEgICAgICAgICAweDJkMWMKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfMSAgICAgICAgIDB4MmQyMAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM18xICAgICAgICAgMHgyZDI0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzEgICAgICAgICAweDJkMjgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfMSAgICAgICAgIDB4MmQyYworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yICAgICAgICAgMHgyZDM0CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzIgICAgICAgICAweDJkMzgKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfMiAgICAgICAgIDB4MmQzYworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF8yICAgICAgICAgMHgyZDQwCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzIgICAgICAgICAweDJkNDQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMyAgICAgICAgIDB4MmQ0YworI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMl8zICAgICAgICAgMHgyZDUwCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YzXzMgICAgICAgICAweDJkNTQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjRfMyAgICAgICAgIDB4MmQ1OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNV8zICAgICAgICAgMHgyZDVjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQgICAgICAgICAweDJkNjQKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjJfNCAgICAgICAgIDB4MmQ2OAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GM180ICAgICAgICAgMHgyZDZjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y0XzQgICAgICAgICAweDJkNzAKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjVfNCAgICAgICAgIDB4MmQ3NAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81ICAgICAgICAgMHgyZDdjCisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YyXzUgICAgICAgICAweDJkODAKKyNkZWZpbmUgUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjNfNSAgICAgICAgIDB4MmQ4NAorI2RlZmluZSBSMjAwX1BQX0NVQklDX09GRlNFVF9GNF81ICAgICAgICAgMHgyZDg4CisjZGVmaW5lIFIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0Y1XzUgICAgICAgICAweDJkOGMKKworI2RlZmluZSBSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwgICAgICAgICAgMHgyNmYwCisjZGVmaW5lIFIyMDBfU0VfVlRFX0NOVEwgICAgICAgICAgICAgICAgICAweDIwYjAKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCAgIDB4MjI1MAorI2RlZmluZSBSMjAwX1BQX1RBTV9ERUJVRzMgICAgICAgICAgICAgICAgMHgyZDljCisjZGVmaW5lIFIyMDBfUFBfQ05UTF9YICAgICAgICAgICAgICAgICAgICAweDJjYzQKKyNkZWZpbmUgUjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMgICAgICAgICAgIDB4MjE0MAorI2RlZmluZSBSMjAwX1JFX1NDSVNTT1JfVExfMCAgICAgICAgICAgICAgMHgxY2Q4CisjZGVmaW5lIFIyMDBfUkVfU0NJU1NPUl9UTF8xICAgICAgICAgICAgICAweDFjZTAKKyNkZWZpbmUgUjIwMF9SRV9TQ0lTU09SX1RMXzIgICAgICAgICAgICAgIDB4MWNlOAorI2RlZmluZSBSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQgICAgICAgICAgMHgxZDYwCisjZGVmaW5lIFIyMDBfUkVfQVVYX1NDSVNTT1JfQ05UTCAgICAgICAgICAweDI2ZjAKKyNkZWZpbmUgUjIwMF9TRV9WVFhfU1RBVEVfQ05UTCAgICAgICAgICAgIDB4MjE4MAorI2RlZmluZSBSMjAwX1JFX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgMHgyNjQ4CisjZGVmaW5lIFIyMDBfU0VfVENMX0lOUFVUX1ZUWF9WRUNUT1JfQUREUl8wIDB4MjI1NAorCisjZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8wICAgICAgICAgICAgICAgIDB4MWQwNAkvKiBOUE9UICovCisjZGVmaW5lIFJBREVPTl9QUF9URVhfU0laRV8xICAgICAgICAgICAgICAgIDB4MWQwYworI2RlZmluZSBSQURFT05fUFBfVEVYX1NJWkVfMiAgICAgICAgICAgICAgICAweDFkMTQKKworI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAweDFkMjQKKyNkZWZpbmUgUkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgMHgxZDI4CisjZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgIDB4MWQyYworI2RlZmluZSBSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAgICAgICAgICAweDFkZDAJLyogYml0cyBbMzE6NV0gKi8KKyNkZWZpbmUgUkFERU9OX1BQX0NVQklDX09GRlNFVF9UMV8wICAgICAgICAgMHgxZTAwCisjZGVmaW5lIFJBREVPTl9QUF9DVUJJQ19PRkZTRVRfVDJfMCAgICAgICAgIDB4MWUxNAorCisjZGVmaW5lIFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0ggICAgICAgICAgIDB4MjI4NAorCisjZGVmaW5lIFNFX1ZBUF9DTlRMX19UQ0xfRU5BX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgU0VfVkFQX0NOVExfX0ZPUkNFX1dfVE9fT05FX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBTRV9WQVBfQ05UTF9fVkZfTUFYX1ZUWF9OVU1fX1NISUZUICAgICAgICAgICAgICAgICAweDAwMDAwMDEyCisjZGVmaW5lIFNFX1ZURV9DTlRMX19WVFhfWFlfRk1UX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKKyNkZWZpbmUgU0VfVlRFX0NOVExfX1ZUWF9aX0ZNVF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAorI2RlZmluZSBTRV9WVFhfRk1UXzBfX1ZUWF9aMF9QUkVTRU5UX01BU0sgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCisjZGVmaW5lIFNFX1ZUWF9GTVRfMF9fVlRYX1cwX1BSRVNFTlRfTUFTSyAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgU0VfVlRYX0ZNVF8wX19WVFhfQ09MT1JfMF9GTVRfX1NISUZUICAgICAgICAgICAgICAgMHgwMDAwMDAwYgorI2RlZmluZSBSMjAwXzNEX0RSQVdfSU1NRF8yICAgICAgMHhDMDAwMzUwMAorI2RlZmluZSBSMjAwX1NFX1ZUWF9GTVRfMSAgICAgICAgICAgICAgICAgMHgyMDhjCisjZGVmaW5lIFIyMDBfUkVfQ05UTCAgICAgICAgICAgICAgICAgICAgICAweDFjNTAKKworI2RlZmluZSBSMjAwX1JCM0RfQkxFTkRDT0xPUiAgICAgICAgICAgICAgMHgzMjE4CisKKyNkZWZpbmUgUjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgICAgIDB4MjJjNAorCisjZGVmaW5lIFIyMDBfUFBfVFJJX1BFUkYgMHgyY2Y4CisKKyNkZWZpbmUgUjIwMF9QUF9BRlNfMCAgICAgICAgICAgICAgICAgICAgIDB4MmY4MAorI2RlZmluZSBSMjAwX1BQX0FGU18xICAgICAgICAgICAgICAgICAgICAgMHgyZjAwCS8qIHNhbWUgYXMgdHhjYmxlbmRfMCAqLworCisjZGVmaW5lIFIyMDBfVkFQX1BWU19DTlRMXzEgICAgICAgICAgICAgICAweDIyRDAKKworI2RlZmluZSBSNTAwX0QxQ1JUQ19TVEFUVVMgMHg2MDljCisjZGVmaW5lIFI1MDBfRDJDUlRDX1NUQVRVUyAweDY4OWMKKyNkZWZpbmUgUjUwMF9DUlRDX1ZfQkxBTksgKDE8PDApCisKKyNkZWZpbmUgUjUwMF9EMUNSVENfRlJBTUVfQ09VTlQgMHg2MGE0CisjZGVmaW5lIFI1MDBfRDJDUlRDX0ZSQU1FX0NPVU5UIDB4NjhhNAorCisjZGVmaW5lIFI1MDBfRDFNT0RFX1ZfQ09VTlRFUiAweDY1MzAKKyNkZWZpbmUgUjUwMF9EMk1PREVfVl9DT1VOVEVSIDB4NmQzMAorCisjZGVmaW5lIFI1MDBfRDFNT0RFX1ZCTEFOS19TVEFUVVMgMHg2NTM0CisjZGVmaW5lIFI1MDBfRDJNT0RFX1ZCTEFOS19TVEFUVVMgMHg2ZDM0CisjZGVmaW5lIFI1MDBfVkJMQU5LX09DQ1VSRUQgKDE8PDApCisjZGVmaW5lIFI1MDBfVkJMQU5LX0FDSyAgICAgKDE8PDQpCisjZGVmaW5lIFI1MDBfVkJMQU5LX1NUQVQgICAgKDE8PDEyKQorI2RlZmluZSBSNTAwX1ZCTEFOS19JTlQgICAgICgxPDwxNikKKworI2RlZmluZSBSNTAwX0R4TU9ERV9JTlRfTUFTSyAweDY1NDAKKyNkZWZpbmUgUjUwMF9EMU1PREVfSU5UX01BU0sgKDE8PDApCisjZGVmaW5lIFI1MDBfRDJNT0RFX0lOVF9NQVNLICgxPDw4KQorCisjZGVmaW5lIFI1MDBfRElTUF9JTlRFUlJVUFRfU1RBVFVTIDB4N2VkYworI2RlZmluZSBSNTAwX0QxX1ZCTEFOS19JTlRFUlJVUFQgKDEgPDwgNCkKKyNkZWZpbmUgUjUwMF9EMl9WQkxBTktfSU5URVJSVVBUICgxIDw8IDUpCisKKy8qIENvbnN0YW50cyAqLworI2RlZmluZSBSQURFT05fTUFYX1VTRUNfVElNRU9VVAkJMTAwMDAwCS8qIDEwMCBtcyAqLworCisjZGVmaW5lIFJBREVPTl9MQVNUX0ZSQU1FX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMAorI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSF9SRUcJUkFERU9OX1NDUkFUQ0hfUkVHMQorI2RlZmluZSBSQURFT05fTEFTVF9DTEVBUl9SRUcJCVJBREVPTl9TQ1JBVENIX1JFRzIKKyNkZWZpbmUgUkFERU9OX0xBU1RfU1dJX1JFRwkJUkFERU9OX1NDUkFUQ0hfUkVHMworI2RlZmluZSBSQURFT05fTEFTVF9ESVNQQVRDSAkJMQorCisjZGVmaW5lIFJBREVPTl9NQVhfVkJfQUdFCQkweDdmZmZmZmZmCisjZGVmaW5lIFJBREVPTl9NQVhfVkJfVkVSVFMJCSgweGZmZmYpCisKKyNkZWZpbmUgUkFERU9OX1JJTkdfSElHSF9NQVJLCQkxMjgKKworI2RlZmluZSBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFICAgICAgKDMyKjEwMjQpCisKKyNkZWZpbmUgUkFERU9OX1JFQUQocmVnKQlEUk1fUkVBRDMyKCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKKyNkZWZpbmUgUkFERU9OX1dSSVRFKHJlZyx2YWwpCURSTV9XUklURTMyKCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKKyNkZWZpbmUgUkFERU9OX1JFQUQ4KHJlZykJRFJNX1JFQUQ4KCAgZGV2X3ByaXYtPm1taW8sIChyZWcpICkKKyNkZWZpbmUgUkFERU9OX1dSSVRFOChyZWcsdmFsKQlEUk1fV1JJVEU4KCBkZXZfcHJpdi0+bW1pbywgKHJlZyksICh2YWwpICkKKworI2RlZmluZSBSQURFT05fV1JJVEVfUExMKGFkZHIsIHZhbCkJCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJUkFERU9OX1dSSVRFOChSQURFT05fQ0xPQ0tfQ05UTF9JTkRFWCwJCQkJXAorCQkgICAgICAgKChhZGRyKSAmIDB4MWYpIHwgUkFERU9OX1BMTF9XUl9FTiApOwkJXAorCVJBREVPTl9XUklURShSQURFT05fQ0xPQ0tfQ05UTF9EQVRBLCAodmFsKSk7CQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fV1JJVEVfUENJRShhZGRyLCB2YWwpCQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCVJBREVPTl9XUklURTgoUkFERU9OX1BDSUVfSU5ERVgsCQkJCVwKKwkJCSgoYWRkcikgJiAweGZmKSk7CQkJCVwKKwlSQURFT05fV1JJVEUoUkFERU9OX1BDSUVfREFUQSwgKHZhbCkpOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUjUwMF9XUklURV9NQ0lORChhZGRyLCB2YWwpCQkJCQlcCitkbyB7CQkJCQkJCQlcCisJUkFERU9OX1dSSVRFKFI1MjBfTUNfSU5EX0lOREVYLCAweGZmMDAwMCB8ICgoYWRkcikgJiAweGZmKSk7CVwKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfREFUQSwgKHZhbCkpOwkJCVwKKwlSQURFT05fV1JJVEUoUjUyMF9NQ19JTkRfSU5ERVgsIDApOwlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJTNDgwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCkJCQkJXAorZG8gewkJCQkJCQkJCVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfSU5ERVgsCQkJCVwKKwkJCSgoYWRkcikgJiAweGZmKSB8IFJTNDgwX05CX01DX0lORF9XUl9FTik7CVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfREFUQSwgKHZhbCkpOwkJCVwKKwlSQURFT05fV1JJVEUoUlM0ODBfTkJfTUNfSU5ERVgsIDB4ZmYpOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUlM2OTBfV1JJVEVfTUNJTkQoYWRkciwgdmFsKQkJCQkJXAorZG8gewkJCQkJCQkJXAorCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfV1JfRU4gfCAoKGFkZHIpICYgUlM2OTBfTUNfSU5ERVhfTUFTSykpOwlcCisJUkFERU9OX1dSSVRFKFJTNjkwX01DX0RBVEEsIHZhbCk7CQkJXAorCVJBREVPTl9XUklURShSUzY5MF9NQ19JTkRFWCwgUlM2OTBfTUNfSU5ERVhfV1JfQUNLKTsJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBJR1BfV1JJVEVfTUNJTkQoYWRkciwgdmFsKQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA9PSBDSElQX1JTNjkwKSAgICAgICBcCisJCVJTNjkwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCk7CQkJCVwKKwllbHNlCQkJCQkJCQlcCisJCVJTNDgwX1dSSVRFX01DSU5EKGFkZHIsIHZhbCk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgQ1BfUEFDS0VUMCggcmVnLCBuICkJCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQwIHwgKChuKSA8PCAxNikgfCAoKHJlZykgPj4gMikpCisjZGVmaW5lIENQX1BBQ0tFVDBfVEFCTEUoIHJlZywgbiApCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQwIHwgUkFERU9OX09ORV9SRUdfV1IgfCAoKG4pIDw8IDE2KSB8ICgocmVnKSA+PiAyKSkKKyNkZWZpbmUgQ1BfUEFDS0VUMSggcmVnMCwgcmVnMSApCQkJCQlcCisJKFJBREVPTl9DUF9QQUNLRVQxIHwgKCgocmVnMSkgPj4gMikgPDwgMTUpIHwgKChyZWcwKSA+PiAyKSkKKyNkZWZpbmUgQ1BfUEFDS0VUMigpCQkJCQkJCVwKKwkoUkFERU9OX0NQX1BBQ0tFVDIpCisjZGVmaW5lIENQX1BBQ0tFVDMoIHBrdCwgbiApCQkJCQkJXAorCShSQURFT05fQ1BfUEFDS0VUMyB8IChwa3QpIHwgKChuKSA8PCAxNikpCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIEVuZ2luZSBjb250cm9sIGhlbHBlciBtYWNyb3MKKyAqLworCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKSBkbyB7CQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKKwlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKKwkJICAgUkFERU9OX1dBSVRfSE9TVF9JRExFQ0xFQU4pICk7CQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCkgZG8gewkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9XQUlUX1VOVElMLCAwICkgKTsJCQlcCisJT1VUX1JJTkcoIChSQURFT05fV0FJVF8zRF9JRExFQ0xFQU4gfAkJCQlcCisJCSAgIFJBREVPTl9XQUlUX0hPU1RfSURMRUNMRUFOKSApOwkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX1dBSVRfVU5USUxfSURMRSgpIGRvIHsJCQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX1dBSVRfVU5USUwsIDAgKSApOwkJCVwKKwlPVVRfUklORyggKFJBREVPTl9XQUlUXzJEX0lETEVDTEVBTiB8CQkJCVwKKwkJICAgUkFERU9OX1dBSVRfM0RfSURMRUNMRUFOIHwJCQkJXAorCQkgICBSQURFT05fV0FJVF9IT1NUX0lETEVDTEVBTikgKTsJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9XQUlUX1VOVElMX1BBR0VfRkxJUFBFRCgpIGRvIHsJCQkJXAorCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fV0FJVF9VTlRJTCwgMCApICk7CQkJXAorCU9VVF9SSU5HKCBSQURFT05fV0FJVF9DUlRDX1BGTElQICk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX0ZMVVNIX0NBQ0hFKCkgZG8gewkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWMjgwKSB7CVwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwKSk7CVwKKwkJT1VUX1JJTkcoUkFERU9OX1JCM0RfRENfRkxVU0gpOwkJCQlcCisJfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSMzAwX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX0RDX0ZMVVNIKTsJCQkJXAorCX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9QVVJHRV9DQUNIRSgpIGRvIHsJCQkJCVwKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgewlcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfRFNUQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX0RDX0ZMVVNIX0FMTCk7CQkJXAorCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9SQjNEX0RTVENBQ0hFX0NUTFNUQVQsIDApKTsJXAorCQlPVVRfUklORyhSQURFT05fUkIzRF9EQ19GTFVTSF9BTEwpOwkJCVwKKwl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fRkxVU0hfWkNBQ0hFKCkgZG8gewkJCQkJXAorCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0ZBTUlMWV9NQVNLKSA8PSBDSElQX1JWMjgwKSB7CVwKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFJBREVPTl9SQjNEX1pDX0ZMVVNIKTsJCQkJXAorCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUjMwMF9aQl9aQ0FDSEVfQ1RMU1RBVCwgMCkpOwlcCisJCU9VVF9SSU5HKFIzMDBfWkNfRkxVU0gpOwkJCQlcCisJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX1BVUkdFX1pDQUNIRSgpIGRvIHsJCQkJCVwKKwlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9GQU1JTFlfTUFTSykgPD0gQ0hJUF9SVjI4MCkgewlcCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfWkNBQ0hFX0NUTFNUQVQsIDApKTsJXAorCQlPVVRfUklORyhSQURFT05fUkIzRF9aQ19GTFVTSF9BTEwpOwkJCVwKKwl9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQlPVVRfUklORyhDUF9QQUNLRVQwKFIzMDBfUkIzRF9EU1RDQUNIRV9DVExTVEFULCAwKSk7CVwKKwkJT1VUX1JJTkcoUjMwMF9aQ19GTFVTSF9BTEwpOwkJCQlcCisJfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30gd2hpbGUgKDApCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqIE1pc2MgaGVscGVyIG1hY3JvcworICovCisKKy8qIFBlcmZib3ggZnVuY3Rpb25hbGl0eSBvbmx5LgorICovCisjZGVmaW5lIFJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTiggZGV2X3ByaXYgKQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCWlmICghKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfRE1BX0lETEUpKSB7CQlcCisJCXUzMiBoZWFkID0gR0VUX1JJTkdfSEVBRCggZGV2X3ByaXYgKTsJCQlcCisJCWlmIChoZWFkID09IGRldl9wcml2LT5yaW5nLnRhaWwpCQkJXAorCQkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfRE1BX0lETEU7CVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKCBkZXZfcHJpdiApCQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CQlcCisJaWYgKCBzYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID49IFJBREVPTl9NQVhfVkJfQUdFICkgewkJXAorCQlpbnQgX19yZXQgPSByYWRlb25fZG9fY3BfaWRsZSggZGV2X3ByaXYgKTsJCVwKKwkJaWYgKCBfX3JldCApIHJldHVybiBfX3JldDsJCQkJXAorCQlzYXJlYV9wcml2LT5sYXN0X2Rpc3BhdGNoID0gMDsJCQkJXAorCQlyYWRlb25fZnJlZWxpc3RfcmVzZXQoIGRldiApOwkJCQlcCisJfQkJCQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBSQURFT05fRElTUEFUQ0hfQUdFKCBhZ2UgKSBkbyB7CQkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIFJBREVPTl9MQVNUX0RJU1BBVENIX1JFRywgMCApICk7CQlcCisJT1VUX1JJTkcoIGFnZSApOwkJCQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgUkFERU9OX0ZSQU1FX0FHRSggYWdlICkgZG8gewkJCQkJXAorCU9VVF9SSU5HKCBDUF9QQUNLRVQwKCBSQURFT05fTEFTVF9GUkFNRV9SRUcsIDAgKSApOwkJXAorCU9VVF9SSU5HKCBhZ2UgKTsJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIFJBREVPTl9DTEVBUl9BR0UoIGFnZSApIGRvIHsJCQkJCVwKKwlPVVRfUklORyggQ1BfUEFDS0VUMCggUkFERU9OX0xBU1RfQ0xFQVJfUkVHLCAwICkgKTsJCVwKKwlPVVRfUklORyggYWdlICk7CQkJCQkJXAorfSB3aGlsZSAoMCkKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogUmluZyBjb250cm9sCisgKi8KKworI2RlZmluZSBSQURFT05fVkVSQk9TRQkwCisKKyNkZWZpbmUgUklOR19MT0NBTFMJaW50IHdyaXRlLCBfbnI7IHVuc2lnbmVkIGludCBtYXNrOyB1MzIgKnJpbmc7CisKKyNkZWZpbmUgQkVHSU5fUklORyggbiApIGRvIHsJCQkJCQlcCisJaWYgKCBSQURFT05fVkVSQk9TRSApIHsJCQkJCQlcCisJCURSTV9JTkZPKCAiQkVHSU5fUklORyggJWQgKVxuIiwgKG4pKTsJCQlcCisJfQkJCQkJCQkJXAorCWlmICggZGV2X3ByaXYtPnJpbmcuc3BhY2UgPD0gKG4pICogc2l6ZW9mKHUzMikgKSB7CQlcCisgICAgICAgICAgICAgICAgQ09NTUlUX1JJTkcoKTsJCQkJCQlcCisJCXJhZGVvbl93YWl0X3JpbmcoIGRldl9wcml2LCAobikgKiBzaXplb2YodTMyKSApOwlcCisJfQkJCQkJCQkJXAorCV9uciA9IG47IGRldl9wcml2LT5yaW5nLnNwYWNlIC09IChuKSAqIHNpemVvZih1MzIpOwkJXAorCXJpbmcgPSBkZXZfcHJpdi0+cmluZy5zdGFydDsJCQkJCVwKKwl3cml0ZSA9IGRldl9wcml2LT5yaW5nLnRhaWw7CQkJCQlcCisJbWFzayA9IGRldl9wcml2LT5yaW5nLnRhaWxfbWFzazsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBBRFZBTkNFX1JJTkcoKSBkbyB7CQkJCQkJXAorCWlmICggUkFERU9OX1ZFUkJPU0UgKSB7CQkJCQkJXAorCQlEUk1fSU5GTyggIkFEVkFOQ0VfUklORygpIHdyPTB4JTA2eCB0YWlsPTB4JTA2eFxuIiwJXAorCQkJICB3cml0ZSwgZGV2X3ByaXYtPnJpbmcudGFpbCApOwkJCVwKKwl9CQkJCQkJCQlcCisJaWYgKCgoZGV2X3ByaXYtPnJpbmcudGFpbCArIF9ucikgJiBtYXNrKSAhPSB3cml0ZSkgewkJXAorCQlEUk1fRVJST1IoCQkJCQkJXAorCQkJIkFEVkFOQ0VfUklORygpOiBtaXNtYXRjaDogbnI6ICV4IHdyaXRlOiAleCBsaW5lOiAlZFxuIiwJXAorCQkJKChkZXZfcHJpdi0+cmluZy50YWlsICsgX25yKSAmIG1hc2spLAkJXAorCQkJd3JpdGUsIF9fTElORV9fKTsJCQkJCQlcCisJfSBlbHNlCQkJCQkJCQlcCisJCWRldl9wcml2LT5yaW5nLnRhaWwgPSB3cml0ZTsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBDT01NSVRfUklORygpIGRvIHsJCQkJCQlcCisJLyogRmx1c2ggd3JpdGVzIHRvIHJpbmcgKi8JCQkJCVwKKwlEUk1fTUVNT1JZQkFSUklFUigpOwkJCQkJCVwKKwlHRVRfUklOR19IRUFEKCBkZXZfcHJpdiApOwkJCQkJXAorCVJBREVPTl9XUklURSggUkFERU9OX0NQX1JCX1dQVFIsIGRldl9wcml2LT5yaW5nLnRhaWwgKTsJCVwKKwkvKiByZWFkIGZyb20gUENJIGJ1cyB0byBlbnN1cmUgY29ycmVjdCBwb3N0aW5nICovCQlcCisJUkFERU9OX1JFQUQoIFJBREVPTl9DUF9SQl9SUFRSICk7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgT1VUX1JJTkcoIHggKSBkbyB7CQkJCQkJXAorCWlmICggUkFERU9OX1ZFUkJPU0UgKSB7CQkJCQkJXAorCQlEUk1fSU5GTyggIiAgIE9VVF9SSU5HKCAweCUwOHggKSBhdCAweCV4XG4iLAkJXAorCQkJICAgKHVuc2lnbmVkIGludCkoeCksIHdyaXRlICk7CQkJXAorCX0JCQkJCQkJCVwKKwlyaW5nW3dyaXRlKytdID0gKHgpOwkJCQkJCVwKKwl3cml0ZSAmPSBtYXNrOwkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIE9VVF9SSU5HX1JFRyggcmVnLCB2YWwgKSBkbyB7CQkJCQlcCisJT1VUX1JJTkcoIENQX1BBQ0tFVDAoIHJlZywgMCApICk7CQkJCVwKKwlPVVRfUklORyggdmFsICk7CQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBPVVRfUklOR19UQUJMRSggdGFiLCBzeiApIGRvIHsJCQkJCVwKKwlpbnQgX3NpemUgPSAoc3opOwkJCQkJXAorCWludCAqX3RhYiA9IChpbnQgKikodGFiKTsJCQkJXAorCQkJCQkJCQlcCisJaWYgKHdyaXRlICsgX3NpemUgPiBtYXNrKSB7CQkJCVwKKwkJaW50IF9pID0gKG1hc2srMSkgLSB3cml0ZTsJCQlcCisJCV9zaXplIC09IF9pOwkJCQkJXAorCQl3aGlsZSAoX2kgPiAwICkgewkJCQlcCisJCQkqKGludCAqKShyaW5nICsgd3JpdGUpID0gKl90YWIrKzsJXAorCQkJd3JpdGUrKzsJCQkJXAorCQkJX2ktLTsJCQkJCVwKKwkJfQkJCQkJCVwKKwkJd3JpdGUgPSAwOwkJCQkJXAorCQlfdGFiICs9IF9pOwkJCQkJXAorCX0JCQkJCQkJXAorCXdoaWxlIChfc2l6ZSA+IDApIHsJCQkJCVwKKwkJKihyaW5nICsgd3JpdGUpID0gKl90YWIrKzsJCQlcCisJCXdyaXRlKys7CQkJCQlcCisJCV9zaXplLS07CQkJCQlcCisJfQkJCQkJCQlcCisJd3JpdGUgJj0gbWFzazsJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZW5kaWYJCQkJLyogX19SQURFT05fRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9yYWRlb25faW9jMzIuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lvYzMyLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcmFkZW9uX2lvYzMyLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lvYzMyLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faXJxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU0MGQxOQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2lycS5jCkBAIC0wLDAgKzEsMzIwIEBACisvKiByYWRlb25faXJxLmMgLS0gSVJRIGhhbmRsaW5nIGZvciByYWRlb24gLSotIGxpbnV4LWMgLSotICovCisvKgorICogQ29weXJpZ2h0IChDKSBUaGUgV2VhdGhlciBDaGFubmVsLCBJbmMuICAyMDAyLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGUgV2VhdGhlciBDaGFubmVsIChUTSkgZnVuZGVkIFR1bmdzdGVuIEdyYXBoaWNzIHRvIGRldmVsb3AgdGhlCisgKiBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIFJhZGVvbiA4NTAwIGRyaXZlciB1bmRlciB0aGUgWEZyZWU4NiBsaWNlbnNlLgorICogVGhpcyBub3RpY2UgbXVzdCBiZSBwcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgICBLZWl0aCBXaGl0d2VsbCA8a2VpdGhAdHVuZ3N0ZW5ncmFwaGljcy5jb20+CisgKiAgICBNaWNoZWwgRMOkbnplciA8bWljaGVsQGRhZW56ZXIubmV0PgorICovCisKKyNpbmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2RybS5oIgorI2luY2x1ZGUgInJhZGVvbl9kcnYuaCIKKworc3RhdGljIF9faW5saW5lX18gdTMyIHJhZGVvbl9hY2tub3dsZWRnZV9pcnFzKGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkJCSAgICAgIHUzMiBtYXNrKQoreworCXUzMiBpcnFzID0gUkFERU9OX1JFQUQoUkFERU9OX0dFTl9JTlRfU1RBVFVTKSAmIG1hc2s7CisJaWYgKGlycXMpCisJCVJBREVPTl9XUklURShSQURFT05fR0VOX0lOVF9TVEFUVVMsIGlycXMpOworCXJldHVybiBpcnFzOworfQorCisvKiBJbnRlcnJ1cHRzIC0gVXNlZCBmb3IgZGV2aWNlIHN5bmNocm9uaXphdGlvbiBhbmQgZmx1c2hpbmcgaW4gdGhlCisgKiBmb2xsb3dpbmcgY2lyY3Vtc3RhbmNlczoKKyAqCisgKiAtIEV4Y2x1c2l2ZSBGQiBhY2Nlc3Mgd2l0aCBodyBpZGxlOgorICogICAgLSBXYWl0IGZvciBHVUkgSWRsZSAoPykgaW50ZXJydXB0LCB0aGVuIGRvIG5vcm1hbCBmbHVzaC4KKyAqCisgKiAtIEZyYW1lIHRocm90dGxpbmcsIE5WX2ZlbmNlOgorICogICAgLSBEcm9wIG1hcmtlciBpcnEncyBpbnRvIGNvbW1hbmQgc3RyZWFtIGFoZWFkIG9mIHRpbWUuCisgKiAgICAtIFdhaXQgb24gaXJxJ3Mgd2l0aCBsb2NrICpub3QgaGVsZCoKKyAqICAgIC0gQ2hlY2sgZWFjaCBmb3IgdGVybWluYXRpb24gY29uZGl0aW9uCisgKgorICogLSBJbnRlcm5hbGx5IGluIGNwX2dldGJ1ZmZlciwgZXRjOgorICogICAgLSBhcyBhYm92ZSwgYnV0IHdhaXQgd2l0aCBsb2NrIGhlbGQ/Pz8KKyAqCisgKiBOT1RFOiBUaGVzZSBmdW5jdGlvbnMgYXJlIG1pc2xlYWRpbmdseSBuYW1lZCAtLSB0aGUgaXJxJ3MgYXJlbid0CisgKiB0aWVkIHRvIGRtYSBhdCBhbGwsIHRoaXMgaXMganVzdCBhIGhhbmdvdmVyIGZyb20gZHJpIHByZWhpc3RvcnkuCisgKi8KKworaXJxcmV0dXJuX3QgcmFkZW9uX2RyaXZlcl9pcnFfaGFuZGxlcihEUk1fSVJRX0FSR1MpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgZHJtX2RldmljZSAqKSBhcmc7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdTMyIHN0YXQ7CisKKwkvKiBPbmx5IGNvbnNpZGVyIHRoZSBiaXRzIHdlJ3JlIGludGVyZXN0ZWQgaW4gLSBvdGhlcnMgY291bGQgYmUgdXNlZAorCSAqIG91dHNpZGUgdGhlIERSTQorCSAqLworCXN0YXQgPSByYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkZXZfcHJpdiwgKFJBREVPTl9TV19JTlRfVEVTVF9BQ0sgfAorCQkJCQkJICBSQURFT05fQ1JUQ19WQkxBTktfU1RBVCB8CisJCQkJCQkgIFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVCkpOworCWlmICghc3RhdCkKKwkJcmV0dXJuIElSUV9OT05FOworCisJc3RhdCAmPSBkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWc7CisKKwkvKiBTVyBpbnRlcnJ1cHQgKi8KKwlpZiAoc3RhdCAmIFJBREVPTl9TV19JTlRfVEVTVCkgeworCQlEUk1fV0FLRVVQKCZkZXZfcHJpdi0+c3dpX3F1ZXVlKTsKKwl9CisKKwkvKiBWQkxBTksgaW50ZXJydXB0ICovCisJaWYgKHN0YXQgJiAoUkFERU9OX0NSVENfVkJMQU5LX1NUQVR8UkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKSkgeworCQlpbnQgdmJsYW5rX2NydGMgPSBkZXZfcHJpdi0+dmJsYW5rX2NydGM7CisKKwkJaWYgKCh2YmxhbmtfY3J0YyAmCisJCSAgICAgKERSTV9SQURFT05fVkJMQU5LX0NSVEMxIHwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSA9PQorCQkgICAgKERSTV9SQURFT05fVkJMQU5LX0NSVEMxIHwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSB7CisJCQlpZiAoc3RhdCAmIFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUKQorCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKKwkJCWlmIChzdGF0ICYgUkFERU9OX0NSVEMyX1ZCTEFOS19TVEFUKQorCQkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkMik7CisJCX0gZWxzZSBpZiAoKChzdGF0ICYgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQpICYmCisJCQkgICAodmJsYW5rX2NydGMgJiBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMSkpIHx8CisJCQkgICAoKHN0YXQgJiBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpICYmCisJCQkgICAgKHZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpKSkKKwkJCWF0b21pY19pbmMoJmRldi0+dmJsX3JlY2VpdmVkKTsKKworCQlEUk1fV0FLRVVQKCZkZXYtPnZibF9xdWV1ZSk7CisJCWRybV92Ymxfc2VuZF9zaWduYWxzKGRldik7CisJfQorCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9lbWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXVuc2lnbmVkIGludCByZXQ7CisJUklOR19MT0NBTFM7CisKKwlhdG9taWNfaW5jKCZkZXZfcHJpdi0+c3dpX2VtaXR0ZWQpOworCXJldCA9IGF0b21pY19yZWFkKCZkZXZfcHJpdi0+c3dpX2VtaXR0ZWQpOworCisJQkVHSU5fUklORyg0KTsKKwlPVVRfUklOR19SRUcoUkFERU9OX0xBU1RfU1dJX1JFRywgcmV0KTsKKwlPVVRfUklOR19SRUcoUkFERU9OX0dFTl9JTlRfU1RBVFVTLCBSQURFT05fU1dfSU5UX0ZJUkUpOworCUFEVkFOQ0VfUklORygpOworCUNPTU1JVF9SSU5HKCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHJhZGVvbl93YWl0X2lycShzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwgaW50IHN3aV9ucikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQorCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCWlmIChSQURFT05fUkVBRChSQURFT05fTEFTVF9TV0lfUkVHKSA+PSBzd2lfbnIpCisJCXJldHVybiAwOworCisJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfV0FJVF9JRExFOworCisJRFJNX1dBSVRfT04ocmV0LCBkZXZfcHJpdi0+c3dpX3F1ZXVlLCAzICogRFJNX0haLAorCQkgICAgUkFERU9OX1JFQUQoUkFERU9OX0xBU1RfU1dJX1JFRykgPj0gc3dpX25yKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2RyaXZlcl92YmxhbmtfZG9fd2FpdChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkJdW5zaWduZWQgaW50ICpzZXF1ZW5jZSwgaW50IGNydGMpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgaW50IGN1cl92Ymxhbms7CisJaW50IHJldCA9IDA7CisJaW50IGFjayA9IDA7CisJYXRvbWljX3QgKmNvdW50ZXI7CisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGNydGMgPT0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpIHsKKwkJY291bnRlciA9ICZkZXYtPnZibF9yZWNlaXZlZDsKKwkJYWNrIHw9IFJBREVPTl9DUlRDX1ZCTEFOS19TVEFUOworCX0gZWxzZSBpZiAoY3J0YyA9PSBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikgeworCQljb3VudGVyID0gJmRldi0+dmJsX3JlY2VpdmVkMjsKKwkJYWNrIHw9IFJBREVPTl9DUlRDMl9WQkxBTktfU1RBVDsKKwl9IGVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyYWRlb25fYWNrbm93bGVkZ2VfaXJxcyhkZXZfcHJpdiwgYWNrKTsKKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKworCS8qIEFzc3VtZSB0aGF0IHRoZSB1c2VyIGhhcyBtaXNzZWQgdGhlIGN1cnJlbnQgc2VxdWVuY2UgbnVtYmVyCisJICogYnkgYWJvdXQgYSBkYXkgcmF0aGVyIHRoYW4gc2hlIHdhbnRzIHRvIHdhaXQgZm9yIHllYXJzCisJICogdXNpbmcgdmVydGljYWwgYmxhbmtzLi4uCisJICovCisJRFJNX1dBSVRfT04ocmV0LCBkZXYtPnZibF9xdWV1ZSwgMyAqIERSTV9IWiwKKwkJICAgICgoKGN1cl92YmxhbmsgPSBhdG9taWNfcmVhZChjb3VudGVyKSkKKwkJICAgICAgLSAqc2VxdWVuY2UpIDw9ICgxIDw8IDIzKSkpOworCisJKnNlcXVlbmNlID0gY3VyX3ZibGFuazsKKworCXJldHVybiByZXQ7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX3ZibGFua193YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCAqc2VxdWVuY2UpCit7CisJcmV0dXJuIHJhZGVvbl9kcml2ZXJfdmJsYW5rX2RvX3dhaXQoZGV2LCBzZXF1ZW5jZSwgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEpOworfQorCitpbnQgcmFkZW9uX2RyaXZlcl92Ymxhbmtfd2FpdDIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSkKK3sKKwlyZXR1cm4gcmFkZW9uX2RyaXZlcl92YmxhbmtfZG9fd2FpdChkZXYsIHNlcXVlbmNlLCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMik7Cit9CisKKy8qIE5lZWRzIHRoZSBsb2NrIGFzIGl0IHRvdWNoZXMgdGhlIHJpbmcuCisgKi8KK2ludCByYWRlb25faXJxX2VtaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX2lycV9lbWl0X3QgKmVtaXQgPSBkYXRhOworCWludCByZXN1bHQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKCFkZXZfcHJpdikgeworCQlEUk1fRVJST1IoImNhbGxlZCB3aXRoIG5vIGluaXRpYWxpemF0aW9uXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmVzdWx0ID0gcmFkZW9uX2VtaXRfaXJxKGRldik7CisKKwlpZiAoRFJNX0NPUFlfVE9fVVNFUihlbWl0LT5pcnFfc2VxLCAmcmVzdWx0LCBzaXplb2YoaW50KSkpIHsKKwkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogRG9lc24ndCBuZWVkIHRoZSBoYXJkd2FyZSBsb2NrLgorICovCitpbnQgcmFkZW9uX2lycV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9pcnFfd2FpdF90ICppcnF3YWl0ID0gZGF0YTsKKworCWlmICghZGV2X3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBubyBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiByYWRlb25fd2FpdF9pcnEoZGV2LCBpcnF3YWl0LT5pcnFfc2VxKTsKK30KKwordm9pZCByYWRlb25fZW5hYmxlX2ludGVycnVwdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCisJZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnID0gUkFERU9OX1NXX0lOVF9FTkFCTEU7CisJaWYgKGRldl9wcml2LT52YmxhbmtfY3J0YyAmIERSTV9SQURFT05fVkJMQU5LX0NSVEMxKQorCQlkZXZfcHJpdi0+aXJxX2VuYWJsZV9yZWcgfD0gUkFERU9OX0NSVENfVkJMQU5LX01BU0s7CisKKwlpZiAoZGV2X3ByaXYtPnZibGFua19jcnRjICYgRFJNX1JBREVPTl9WQkxBTktfQ1JUQzIpCisJCWRldl9wcml2LT5pcnFfZW5hYmxlX3JlZyB8PSBSQURFT05fQ1JUQzJfVkJMQU5LX01BU0s7CisKKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgZGV2X3ByaXYtPmlycV9lbmFibGVfcmVnKTsKKwlkZXZfcHJpdi0+aXJxX2VuYWJsZWQgPSAxOworfQorCisvKiBkcm1fZG1hLmggaG9va3MKKyovCit2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0KKwkgICAgKGRybV9yYWRlb25fcHJpdmF0ZV90ICopIGRldi0+ZGV2X3ByaXZhdGU7CisKKwkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7CisKKwkvKiBDbGVhciBiaXRzIGlmIHRoZXkncmUgYWxyZWFkeSBoaWdoICovCisJcmFkZW9uX2Fja25vd2xlZGdlX2lycXMoZGV2X3ByaXYsIChSQURFT05fU1dfSU5UX1RFU1RfQUNLIHwKKwkJCQkJICAgUkFERU9OX0NSVENfVkJMQU5LX1NUQVQgfAorCQkJCQkgICBSQURFT05fQ1JUQzJfVkJMQU5LX1NUQVQpKTsKK30KKwordm9pZCByYWRlb25fZHJpdmVyX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPQorCSAgICAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKworCWF0b21pY19zZXQoJmRldl9wcml2LT5zd2lfZW1pdHRlZCwgMCk7CisJRFJNX0lOSVRfV0FJVFFVRVVFKCZkZXZfcHJpdi0+c3dpX3F1ZXVlKTsKKworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7Cit9CisKK3ZvaWQgcmFkZW9uX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9CisJICAgIChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCWlmICghZGV2X3ByaXYpCisJCXJldHVybjsKKworCWRldl9wcml2LT5pcnFfZW5hYmxlZCA9IDA7CisKKwkvKiBEaXNhYmxlICphbGwqIGludGVycnVwdHMgKi8KKwlSQURFT05fV1JJVEUoUkFERU9OX0dFTl9JTlRfQ05UTCwgMCk7Cit9CisKKworaW50IHJhZGVvbl92YmxhbmtfY3J0Y19nZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSAoZHJtX3JhZGVvbl9wcml2YXRlX3QgKikgZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgZmxhZzsKKwl1MzIgdmFsdWU7CisKKwlmbGFnID0gUkFERU9OX1JFQUQoUkFERU9OX0dFTl9JTlRfQ05UTCk7CisJdmFsdWUgPSAwOworCisJaWYgKGZsYWcgJiBSQURFT05fQ1JUQ19WQkxBTktfTUFTSykKKwkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzE7CisKKwlpZiAoZmxhZyAmIFJBREVPTl9DUlRDMl9WQkxBTktfTUFTSykKKwkJdmFsdWUgfD0gRFJNX1JBREVPTl9WQkxBTktfQ1JUQzI7CisJcmV0dXJuIHZhbHVlOworfQorCitpbnQgcmFkZW9uX3ZibGFua19jcnRjX3NldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQ2NF90IHZhbHVlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqKSBkZXYtPmRldl9wcml2YXRlOworCWlmICh2YWx1ZSAmIH4oRFJNX1JBREVPTl9WQkxBTktfQ1JUQzEgfCBEUk1fUkFERU9OX1ZCTEFOS19DUlRDMikpIHsKKwkJRFJNX0VSUk9SKCJjYWxsZWQgd2l0aCBpbnZhbGlkIGNydGMgMHgleFxuIiwgKHVuc2lnbmVkIGludCl2YWx1ZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlkZXZfcHJpdi0+dmJsYW5rX2NydGMgPSAodW5zaWduZWQgaW50KXZhbHVlOworCXJhZGVvbl9lbmFibGVfaW50ZXJydXB0KGRldik7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21lbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3JhZGVvbl9tZW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWVtLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21pY3JvY29kZS5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbWljcm9jb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM0OGM5ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX21pY3JvY29kZS5oCkBAIC0wLDAgKzEsMTg0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIoUykgQU5EL09SIElUUyBTVVBQTElFUlMgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KKyAqIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgorICogV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpZm5kZWYgUkFERU9OX01JQ1JPQ09ERV9ICisjZGVmaW5lIFJBREVPTl9NSUNST0NPREVfSAorCisvKiBwcm9kdWN0aW9uIHJhZGVvbiB1Y29kZSByMXh4LXI2eHggKi8KK3N0YXRpYyBjb25zdCB1MzIgUjEwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NmY1YjRkNGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGM0YzQyN2YsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWI1NjhhOTIsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNhMDljNmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YWQ0YzRjNGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNlMWFmM2QsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDhhZmFmYWYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDY0YzRjZGMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGNkMTBkMTAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzYyZjI0MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMTIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzYyZjI4MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDJjOTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZjAwMDEsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4MzMzYTM3MzAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3ZWYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjEsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwMDAwMTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDM3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4ZmZmZmZmZmYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MTAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc2NzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMzAsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMzAsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDE2MDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwOTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NjRjMDYwM2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwODAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDQwMDI1MWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNDksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTEwNTUsIDB4MDAwMDAwMTQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDQwMDI1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwNGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNjU1YjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NDQwMWIwZTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFjMTEwZTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjY2NjcwNjYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwYzI1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1NjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDEwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxMDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA4MDAwNmMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwZjkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZTAwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwOGYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwNWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGMwMDM1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNTEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNzg1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwN2UsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDc1NjMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MjAwMDcwNzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwNzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODMsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MDAwMDc1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwODMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTUsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwNTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGM2MDc1NjIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMDcwZTUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYTgsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwMDIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc4MzIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDJjOTcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwNzcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDc1MWIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZTUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYzYsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYzksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4ODA0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMDgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDE0MDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwY2QsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MjBjMDcwMDAsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDAwY2YsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDA4MDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDA4MDc1MWQsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3NWMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI3NWQsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDFlMDA4MzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NjQ2NDYxNGQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Njk2ODc0MjAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwNzMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDIzOTQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjIwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4N2E2ODVlNWQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWQ1ZDU1ODgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Njg2NTkxOTcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWRhMTlmNzgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWQ1ZDVkNWQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NWRlZTVkNTAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZjJhY2FjYWMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTc1ZGY5ZTksIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YjFkZDBlMTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTJhZmFmYWYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4NDUyZjIzMmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4NDUyZjI3MmQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwZjAwMDEsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDB4M2U0ZDRhMzcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc3ZWYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMjAsIDB4MDAwMDAwMWEgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDB4MDAwMDAwMWUgfSwKKyAgICB7IDB4MDAwMDAwMTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzgwMmEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwMTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDM3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDc3ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc3ZTEsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4ZmZmZmZmZmYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MTAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDdmMDA3ZjAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwMmEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDY3ZTAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI2NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMzgwMmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI3NDMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc2NzgsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMmYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwMzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwMzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDE2MDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwOTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NjRjMDYwNTEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwODAwMDAsIDB4MDAwMDAwMTYgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDQwMDI1MWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ODAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjc1ODEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNWEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMTEwNjQsIDB4MDAwMDAwMTQgfSwKKyAgICB7IDB4MDAwMDAwNjQsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDQwMDI1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDUwNWUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDFlNjU1YjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4NDQwMWIwZjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFjMTEwZjAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjY2NjcwNzEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwYzI1NjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNzEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1NjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwNjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDEwNzQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxMDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA4MDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwZjkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZTAwZmYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDAwOTQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMDAwNjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGMwMDM1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNDkwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNTEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDFlNzg1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwODcsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDc1NjMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MjAwMDcwN2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDUwN2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzcsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOGEsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDA2MDc1ZjAsIDB4MDAwMDAwMjEgfSwKKyAgICB7IDB4MDAwMDc1ZjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTc1MGUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAyMDc1MGYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwOGQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc1NzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NzIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1NjgsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOTgsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwNTgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MGM2MDc1NjIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwOWEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA2MDAwOTksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMDcwZjEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYTcsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwYTksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDQwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwOTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwZDgwMDIsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc4MjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDE2NjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjcxY2MsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDI4NmYxY2QsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwYjcsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYmUsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MzgwNjcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwYTAwYmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwNzcwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjAwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDEyMDc1MWIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1MGIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMTAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwZjEsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZDEsIDB4MDAwMDAwMWMgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYTksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwNjEwYWEsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4ODQ0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZDQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4ODA0MDc1YmQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODAwMDc1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4ODA0MDc1YmMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAxMDgwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDE0MDAwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2MDAwZDgsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MjBjMDcwMDAsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDAwZGEsIDB4MDAwMDAwMTIgfSwKKyAgICB7IDB4MDA4MDAwMDAsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDA4MDc1MWQsIDB4MDAwMDAwMDYgfSwKKyAgICB7IDB4MDAwMDI1YmIsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDQwZDQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc3NWMsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI3NWQsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc5OTksIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDBhMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDA2NjEwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQ2MDI5OWIsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4MDAwMDQwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDFlMDA4MzAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MjEwMDcwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDUwMDAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMzgwNTYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDI1ZTAsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMzgwZWQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDQwMDczOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDc4YzQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4YzUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc4YzYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDc5MjQsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjUsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDc5MjYsIDB4MDAwMDAwMDIgfSwKKyAgICB7IDB4MDAwMDAwZjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjMwMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYWUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwYjIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4Njc1NTRiNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE0YTQ0NzUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NTU1MjdkODMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE4YzhiNjUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFlZjRhZjYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFlMTRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZTQ5Nzk3OTcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZGI0YWViZGQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4OWNjYzRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDE5ODk4OTgsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGEwZjlhZDYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwNDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDMsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjY2U4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwM2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDQ1MWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwNTEsIDB4MDAwMDAwMjggfSwKKyAgICB7IDB4MDAwMDAwNTEsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDgwMDQ1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGEwNGIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDNjY2E1YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDU0MzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NGNjY2UwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgyNzQ1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1NjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MDIwNjEsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAyMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDEwMDAwNjQsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAxZjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYzAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDAwODAsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwODIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MTgwMDY1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwOTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYTIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwMGU1NjMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxNGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwN2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MThjMGU1NjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODYsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDBjMDAwODUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwNzAwZTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwOTQsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAxMjAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAxMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MmUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDJjY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2UxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwZGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTQsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwYTYsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwYWQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NzAwY2UwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwYTksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwZWUwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MGU1MWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA4MGU1MGEsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1MGIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNzAwZTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDg4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwYzIwOTQsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwYzIwOTUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDg4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMDAwYzMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMTAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI4MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwYzcsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4NDE4MGUwMDAsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDAwYzksIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDEwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDEwMGU1MWQsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDgwYzMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGYzY2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzY2YsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzZDIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzZDMsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzOWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzOWUsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDNjMDA4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDQ1ZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNzAwZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMGUzOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4YzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZTQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZWIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDJjMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZjMsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZjAsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDgwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4YzAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxZDAwMTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYTAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDUwMGEwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUjQyMF9jcF9taWNyb2NvZGVbXVsyXSA9IHsKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwOTksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwOWQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NGE1NTRiNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE0YTQ0NjcsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NTU1MjZmNzUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGE3ZTdkNjUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ZDlkM2RmZjYsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGFjNTRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4Yzg4MjgyODIsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YmY0YWNmYzEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4ODdiMDRhNGEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4YjU4MzgzODMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4NGEwZjg1YmEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4YjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4NTcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMWUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwYzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMjgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYwNDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmEsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmMsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMmUsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzIsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYxODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOTMsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzYsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwZDAwMzgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGYzOGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDMsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjY2U4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ4MDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwM2EsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MjAwMDQ1MWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQ1ODAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2U1ODEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNDcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwNTEsIDB4MDAwMDAwMjggfSwKKyAgICB7IDB4MDAwMDAwNTEsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDgwMDQ1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGEwNGIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTIsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDNjY2E1YjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDU0MzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NGNjY2UwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgyNzQ1NjUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNWUsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDgwMDQ1NjQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDA4MDIwNjEsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAyMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDEwMDAwNjQsIDB4MDAwMDAwMTAgfSwKKyAgICB7IDB4MDAxZjIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYzAwZmYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDAwNzIsIDB4MDAwMDAwMzAgfSwKKyAgICB7IDB4MDAwMDAwNTUsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGU1ZjksIDB4MDAwMDAwYzIgfSwKKyAgICB7IDB4MDAwMDAwNjksIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAxNGU1MGUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MGU1MGYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwNmMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU1NzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NzIsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1NjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDAwYjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MThjMGU1NjIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwNzgsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDBjMDAwNzcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwNzAwYzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwODAsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1YmMsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4MjEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4MmUsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDJjY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2UxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwZGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOGYsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4MDBjMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwOGMsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDAwOTEsIDB4MDAwMDAwMjAgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwOTgsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NzAwY2UwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxNDAwOTQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwZWUwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI0MGU1MWIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDA4MGU1MGEsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1MGIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNzAwYzcsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYTQsIDB4MDAwMDAwMzggfSwKKyAgICB7IDB4MDA4MGU1YmQsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAwMGU1YmIsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDA4MGU1YmMsIDB4MDAwMDAwMDUgfSwKKyAgICB7IDB4MDAyMTAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDI4MDAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjMDAwYWIsIDB4MDAwMDAwMTggfSwKKyAgICB7IDB4NDE4MGUwMDAsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDAwYWQsIDB4MDAwMDAwMjQgfSwKKyAgICB7IDB4MDEwMDAwMDAsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDEwMGU1MWQsIDB4MDAwMDAwMGMgfSwKKyAgICB7IDB4MDAwMDQ1YmIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDgwYTcsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGYzY2UsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzY2YsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzZDIsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzZDMsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGYzOWQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDE0MGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDBjYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDhjMDUzOWUsIDB4MDAwMDAwNDAgfSwKKyAgICB7IDB4MDAwMDgwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDNjMDA4MzAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4NDIwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MjAwMDQ1ZTAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU1ZTEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMDAwMDEsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwNzAwYzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMGUzOTQsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGU4YzQsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzUsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU4YzYsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwYzgsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGU5MjgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MjksIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMGU5MmEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwY2YsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDJjMDIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwNjAwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZDcsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZDQsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMDgwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4YzAwMGUwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwMGUxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwMGUxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZGUsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwZGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDAwMGEwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAxOWUxY2MsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYjAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDUwMGEwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDgwMDQxY2QsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwY2EwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDB4MDAwYzIwMDAsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxZDAwMTgsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAxYTAwMDEsIDB4MDAwMDAwMDQgfSwKKyAgICB7IDB4MDAwMDAwZmIsIDB4MDAwMDAwMzQgfSwKKyAgICB7IDB4MDAwMDAwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDB4MDUwMGEwNGEsIDB4MDAwMDAwMDggfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKKyAgICB7IDAwMDAwMDAwMDAsIDAwMDAwMDAwMDAgfSwKK307CisKK3N0YXRpYyBjb25zdCB1MzIgUlM2MDBfY3BfbWljcm9jb2RlW11bMl0gPSB7CisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMGEwLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDAwMGE0LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDRhNTU0YjRhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhNGE0NDY3LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDU1NTI2Zjc1LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhN2U3ZDY1LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhZTc0YWY2LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhZDM0YTRhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGQ2ODk4OTg5LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGNkNGFkZGNmLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDhlYmU0YWUyLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweGMzOGE4YThhLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDRhMGY4Y2M4LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGNhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDEyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlOGI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlOGI2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDE4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFhLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFjLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODU3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDFlLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDIwLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODI1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDIyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBlODMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMGMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMGMxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDI4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMDQxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJhLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJjLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDJlLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDMwLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTg3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDMyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzkzLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM2LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzhhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGQwMDM4LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMDBmMzhlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDQzLCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwY2NlODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0ODAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDNhLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBhMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDIwMDA0NTFkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlNTgxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0NTgwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlNTgxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDQ3LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBhMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDIyMDUxLCAweDAwMDAwMDI4IH0sCisgICAgeyAweDAwMDAwMDUxLCAweDAwMDAwMDI0IH0sCisgICAgeyAweDA4MDA0NTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBhMDRiLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTY1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDUyLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAzY2NhNWI0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA1NDMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDIyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDRjY2NlMDVlLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4Mjc0NTY1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDVlLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDA0NTY0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDU1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwODAyMDYxLCAweDAwMDAwMDEwIH0sCisgICAgeyAweDAwMjAyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMGZmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxMDAwMDY0LCAweDAwMDAwMDEwIH0sCisgICAgeyAweDAwMWYyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWMwMGZmLCAweDAwMDAwMDA0IH0sCisgICAgeyAwMDAwMDAwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDAwMDcyLCAweDAwMDAwMDMwIH0sCisgICAgeyAweDAwMDAwMDU1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTc2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTc3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDY5LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwYzBlNWY5LCAweDAwMDAwMGMyIH0sCisgICAgeyAweDAwMDAwMDY5LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMTRlNTBlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwNDBlNTBmLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwYzAwMDZjLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlNTcwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTcxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTcyLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNTY4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDc2LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwMGIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDE4YzBlNTYyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDc4LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwYzAwMDc3LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDcwMGQ1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDg0LCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGNhMDg2LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDA0NWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDBlNWJjLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlNWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNWJjLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMTIwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMTIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWIwMDAyLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlODIxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlODJlLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAyY2NhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGNlMWNjLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA1MGRlMWNkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDk2LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDAwYzBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMDkzLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDAwMDk4LCAweDAwMDAwMDIwIH0sCisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMDlmLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGNhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTYwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDcwMGNlMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMTQwMDliLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAyNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQwMGVlMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyNDAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyNDBlNTFiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwODBlNTBhLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwODBlNTBiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMjIwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDcwMGQ1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGIyLCAweDAwMDAwMDM4IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4ODBlNWJkLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMGMyMDg2LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4MDBlNWJiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMGMyMDg3LCAweDAwMDAwMDMwIH0sCisgICAgeyAweDA4ODBlNWJjLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMDAwMGI1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwODBlNWJkLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMDBlNWJiLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwODBlNWJjLCAweDAwMDAwMDA1IH0sCisgICAgeyAweDAwMjEwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAyODAwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwYzAwMGI5LCAweDAwMDAwMDE4IH0sCisgICAgeyAweDQxODBlMDAwLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDAwMGJiLCAweDAwMDAwMDI0IH0sCisgICAgeyAweDAxMDAwMDAwLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAxMDBlNTFkLCAweDAwMDAwMDBjIH0sCisgICAgeyAweDAwMDA0NWJiLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDA4MGI1LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBmM2NlLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1M2NmLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBmM2QyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1M2QzLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBmMzlkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAxNDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwY2MyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4YzA1MzllLCAweDAwMDAwMDQwIH0sCisgICAgeyAweDAwMDA4MDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAzYzAwODMwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDQyMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBhMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDIwMDA0NWUwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlNWUxLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDAwMDAxLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDcwMGQyLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDBlMzk0LCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDBlOGM0LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOGM1LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOGM2LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI5LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTJhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGQ2LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDBlOTI4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTI5LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlOTJhLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGRkLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwZTAwMTE2LCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMDcwMGUxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDA4MDA0MDFjLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDIwMDA1MGU3LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDBlMDFkLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGU0LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAyYzAyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDYwMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGViLCAweDAwMDAwMDM0IH0sCisgICAgeyAweDAwMDAwMGU4LCAweDAwMDAwMDA4IH0sCisgICAgeyAweDAwMDA4MDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweGMwMDBlMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAweDAwMGMyMDAwLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWQwMDE4LCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMWEwMDAxLCAweDAwMDAwMDA0IH0sCisgICAgeyAweDAwMDAwMGZiLCAweDAwMDAwMDM0IH0sCisgICAgeyAweDAwMDAwMDRhLCAweDAwMDAwMDA4IH0sCisgICAgeyAweDA1MDBhMDRhLCAweDAwMDAwMDA4IH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCisgICAgeyAwMDAwMDAwMDAwLCAwMDAwMDAwMDAwIH0sCit9OworCitzdGF0aWMgY29uc3QgdTMyIFJTNjkwX2NwX21pY3JvY29kZVtdWzJdID0geworICAgIHsgMHgwMDAwMDBkZCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBkZiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBhMCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDBhNCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0YTU1NGI0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTRhNDQ2NywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg1NTUyNmY3NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTdlN2Q2NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWQ3NGFmNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWM5NGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjYzg5ODk4OSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjMzRhZDNjNSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg4ZTRhNGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YThhOGE4YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTBmOGM0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjA0MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM5MywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4YSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4ZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0MywgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGNjZTgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDAzYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgyMDAwNDUxZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjA1MSwgMHgwMDAwMDAyOCB9LAorICAgIHsgMHgwMDAwMDA1MSwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwODAwNDUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwYTA0YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1MiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2NjYTViNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTQzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0Y2NjZTA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODI3NDU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDU2NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwMjA2MSwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDIwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTAwMDA2NCwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDFmMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFjMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwMDA3MiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwZTVmOSwgMHgwMDAwMDBjMiB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDE0ZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDA2YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2OCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMDBiMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgxOGMwZTU2MiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3OCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMGMwMDA3NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDA3MDBjYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4NCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTA4NiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDEyMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDEyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyZSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmNjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTBkZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA5NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA5MywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5OCwgMHgwMDAwMDAyMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5ZiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg3MDBjZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDA5YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDBlZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDEwMDAwMCwgMHgwMDAwMDAyYyB9LAorICAgIHsgMHgwMDAwNDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwODAwNDVjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI0MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNGQwYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwZTUxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDgwZTUwYSwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTUwYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBjYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBiNywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDBjMjA4NiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDBjMjA4NywgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwMDBiYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIxMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjgwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDBiZSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHg0MTgwZTAwMCwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwMDBjMCwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwMTAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMTAwZTUxZCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwODBiYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2MwMDgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgyMDAwNDVlMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTVlMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDAwMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwZTM5NCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZThjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjYywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkMywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMmMwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBkOCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwODAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHhjMDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDI1MDAxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDIzMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI1MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBlNiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDI0NDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDVjOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDI0MDAwNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNGQwYiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFkMDAxOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFhMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwNTAwYTA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorfTsKKworc3RhdGljIGNvbnN0IHUzMiBSNTIwX2NwX21pY3JvY29kZVtdWzJdID0geworICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5ZCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0YTU1NGI0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTRhNDQ2NywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg1NTUyNmY3NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTdlN2Q2NSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhlMGRhZTZmNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YWM1NGE0YSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhjODgyODI4MiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhiZjRhY2ZjMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg4N2IwNGFkNSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHhiNTgzODM4MywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHg0YTBmODViYSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZThiNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTg1NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAxZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgyNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjBjMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyYywgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAyZSwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzMiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjE4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM5MywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzNiwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4YSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBkMDAzOCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZjM4ZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0MywgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGNjZTgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDgwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDAzYSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgyMDAwNDUxZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDU4MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTU4MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA0NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjA1MSwgMHgwMDAwMDAyOCB9LAorICAgIHsgMHgwMDAwMDA1MSwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwODAwNDUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwYTA0YiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1MiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwM2NjYTViNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTQzMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAyMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0Y2NjZTA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODI3NDU2NSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1ZSwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwODAwNDU2NCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDgwMjA2MSwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDIwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTAwMDA2NCwgMHgwMDAwMDAxMCB9LAorICAgIHsgMHgwMDFmMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFjMDBmZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwMDA3MiwgMHgwMDAwMDAzMCB9LAorICAgIHsgMHgwMDAwMDA1NSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3NiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3NywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwZTVmOSwgMHgwMDAwMDBjMiB9LAorICAgIHsgMHgwMDAwMDA2OSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDE0ZTUwZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwZTUwZiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDA2YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTU3MCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU3MiwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTU2OCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3NiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMDBiMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgxOGMwZTU2MiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA3OCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMGMwMDA3NywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDA3MDBjNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4MCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTViYywgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTgyMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTgyZSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmNjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTBkZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4ZiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHgwMGMwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDA4YywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwMDA5MSwgMHgwMDAwMDAyMCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDA5OCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg3MDBjZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDE0MDA5NCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDBlZTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjQwZTUxYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDgwZTUwYSwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTUwYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIyMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBjNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBhNCwgMHgwMDAwMDAzOCB9LAorICAgIHsgMHgwMDgwZTViZCwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDAwZTViYiwgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDgwZTViYywgMHgwMDAwMDAwNSB9LAorICAgIHsgMHgwMDIxMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMjgwMDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGMwMDBhYiwgMHgwMDAwMDAxOCB9LAorICAgIHsgMHg0MTgwZTAwMCwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwMDBhZCwgMHgwMDAwMDAyNCB9LAorICAgIHsgMHgwMTAwMDAwMCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMTAwZTUxZCwgMHgwMDAwMDAwYyB9LAorICAgIHsgMHgwMDAwNDViYiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwODBhNywgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZjNjZSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTNjZiwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZjNkMiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTNkMywgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZjM5ZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMTQwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMGNjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwOGMwNTM5ZSwgMHgwMDAwMDA0MCB9LAorICAgIHsgMHgwMDAwODAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwM2MwMDgzMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHg0MjAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgyMDAwNDVlMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTVlMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDAwMSwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwZTM5NCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZThjNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZThjNiwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjOCwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwZTkyOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyOSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTkyYSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBjZiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHhkZWFkYmVlZiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwMDExNiwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDA3MDBkMywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNTBlNywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA3MDBkNCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDAxYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwZTAxZCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMmMwMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDA2MDAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBkZSwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBkYiwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwODAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHhjMDAwZTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDAwZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTAwZTFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBlNSwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDBlMSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwMDAwYTAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDE5ZTFjYywgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFiMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwNTAwYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwODAwNDFjZCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDBjYTAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMHgwMDBjMjAwMCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFkMDAxOCwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDFhMDAwMSwgMHgwMDAwMDAwNCB9LAorICAgIHsgMHgwMDAwMDBmYiwgMHgwMDAwMDAzNCB9LAorICAgIHsgMHgwMDAwMDA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMHgwNTAwYTA0YSwgMHgwMDAwMDAwOCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorICAgIHsgMDAwMDAwMDAwMCwgMDAwMDAwMDAwMCB9LAorfTsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zdGF0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExYzE0NmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zdGF0ZS5jCkBAIC0wLDAgKzEsMzIwMyBAQAorLyogcmFkZW9uX3N0YXRlLmMgLS0gU3RhdGUgc3VwcG9ydCBmb3IgUmFkZW9uIC0qLSBsaW51eC1jIC0qLSAqLworLyoKKyAqIENvcHlyaWdodCAyMDAwIFZBIExpbnV4IFN5c3RlbXMsIEluYy4sIEZyZW1vbnQsIENhbGlmb3JuaWEuCisgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBQUkVDSVNJT04gSU5TSUdIVCBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyAqIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICogICAgS2V2aW4gRS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+CisgKi8KKworI2luY2x1ZGUgImRybVAuaCIKKyNpbmNsdWRlICJkcm0uaCIKKyNpbmNsdWRlICJkcm1fc2FyZWEuaCIKKyNpbmNsdWRlICJyYWRlb25fZHJtLmgiCisjaW5jbHVkZSAicmFkZW9uX2Rydi5oIgorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBjbGllbnQgc3RhdGUgY2hlY2tpbmcgYW5kIGZpeHVwCisgKi8KKworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRybV9yYWRlb25fcHJpdmF0ZV90ICoKKwkJCQkJCSAgICBkZXZfcHJpdiwKKwkJCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKiBmaWxlX3ByaXYsCisJCQkJCQkgICAgdTMyICpvZmZzZXQpCit7CisJdTY0IG9mZiA9ICpvZmZzZXQ7CisJdTMyIGZiX2VuZCA9IGRldl9wcml2LT5mYl9sb2NhdGlvbiArIGRldl9wcml2LT5mYl9zaXplIC0gMTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJLyogSHJtIC4uLiB0aGUgc3Rvcnkgb2YgdGhlIG9mZnNldCAuLi4gU28gdGhpcyBmdW5jdGlvbiBjb252ZXJ0cworCSAqIHRoZSB2YXJpb3VzIGlkZWFzIG9mIHdoYXQgdXNlcmxhbmQgY2xpZW50cyBtaWdodCBoYXZlIGZvciBhbgorCSAqIG9mZnNldCBpbiB0aGUgY2FyZCBhZGRyZXNzIHNwYWNlIGludG8gYW4gb2Zmc2V0IGludG8gdGhlIGNhcmQKKwkgKiBhZGRyZXNzIHNwYWNlIDopIFNvIHdpdGggYSBzYW5lIGNsaWVudCwgaXQgc2hvdWxkIGp1c3Qga2VlcAorCSAqIHRoZSB2YWx1ZSBpbnRhY3QgYW5kIGp1c3QgZG8gc29tZSBib3VuZGFyeSBjaGVja2luZy4gSG93ZXZlciwKKwkgKiBub3QgYWxsIGNsaWVudHMgYXJlIHNhbmUuIFNvbWUgb2xkZXIgY2xpZW50cyBwYXNzIHVzIDAgYmFzZWQKKwkgKiBvZmZzZXRzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgZnJhbWVidWZmZXIgYW5kIHNvbWUgbWF5CisJICogYXNzdW1lIHRoZSBBR1AgYXBlcnR1cmUgaXQgYXBwZW5kZWQgdG8gdGhlIGZyYW1lYnVmZmVyLCBzbyB3ZQorCSAqIHRyeSB0byBkZXRlY3QgdGhvc2UgY2FzZXMgYW5kIGZpeCB0aGVtIHVwLgorCSAqCisJICogTm90ZTogSXQgbWlnaHQgYmUgYSBnb29kIGlkZWEgaGVyZSB0byBtYWtlIHN1cmUgdGhlIG9mZnNldCBsYW5kcworCSAqIGluIHNvbWUgImFsbG93ZWQiIGFyZWEgdG8gcHJvdGVjdCB0aGluZ3MgbGlrZSB0aGUgUENJRSBHQVJULi4uCisJICovCisKKwkvKiBGaXJzdCwgdGhlIGJlc3QgY2FzZSwgdGhlIG9mZnNldCBhbHJlYWR5IGxhbmRzIGluIGVpdGhlciB0aGUKKwkgKiBmcmFtZWJ1ZmZlciBvciB0aGUgR0FSVCBtYXBwZWQgc3BhY2UKKwkgKi8KKwlpZiAocmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgb2ZmKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBPaywgdGhhdCBkaWRuJ3QgaGFwcGVuLi4uIG5vdyBjaGVjayBpZiB3ZSBoYXZlIGEgemVybyBiYXNlZAorCSAqIG9mZnNldCB0aGF0IGZpdHMgaW4gdGhlIGZyYW1lYnVmZmVyICsgZ2FydCBzcGFjZSwgYXBwbHkgdGhlCisJICogbWFnaWMgb2Zmc2V0IHdlIGdldCBmcm9tIFNFVFBBUkFNIG9yIGNhbGN1bGF0ZWQgZnJvbSBmYl9sb2NhdGlvbgorCSAqLworCWlmIChvZmYgPCAoZGV2X3ByaXYtPmZiX3NpemUgKyBkZXZfcHJpdi0+Z2FydF9zaXplKSkgeworCQlyYWRlb25fcHJpdiA9IGZpbGVfcHJpdi0+ZHJpdmVyX3ByaXY7CisJCW9mZiArPSByYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhOworCX0KKworCS8qIEZpbmFsbHksIGFzc3VtZSB3ZSBhaW1lZCBhdCBhIEdBUlQgb2Zmc2V0IGlmIGJleW9uZCB0aGUgZmIgKi8KKwlpZiAob2ZmID4gZmJfZW5kKQorCQlvZmYgPSBvZmYgLSBmYl9lbmQgLSAxICsgZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7CisKKwkvKiBOb3cgcmVjaGVjayBhbmQgZmFpbCBpZiBvdXQgb2YgYm91bmRzICovCisJaWYgKHJhZGVvbl9jaGVja19vZmZzZXQoZGV2X3ByaXYsIG9mZikpIHsKKwkJRFJNX0RFQlVHKCJvZmZzZXQgZml4ZWQgdXAgdG8gMHgleFxuIiwgKHVuc2lnbmVkIGludClvZmYpOworCQkqb2Zmc2V0ID0gb2ZmOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKgorCQkJCQkJICAgICBkZXZfcHJpdiwKKwkJCQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkJCQkgICAgIGludCBpZCwgdTMyICpkYXRhKQoreworCXN3aXRjaCAoaWQpIHsKKworCWNhc2UgUkFERU9OX0VNSVRfUFBfTUlTQzoKKwkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCSAgICAmZGF0YVsoUkFERU9OX1JCM0RfREVQVEhPRkZTRVQgLSBSQURFT05fUFBfTUlTQykgLyA0XSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBkZXB0aCBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fRU1JVF9QUF9DTlRMOgorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJICAgICZkYXRhWyhSQURFT05fUkIzRF9DT0xPUk9GRlNFVCAtIFJBREVPTl9QUF9DTlRMKSAvIDRdKSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGNvbG91ciBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF8xOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhPRkZTRVRfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWE9GRlNFVF80OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzU6CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmZGF0YVswXSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBSMjAwIHRleHR1cmUgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fRU1JVF9QUF9UWEZJTFRFUl8wOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfVFhGSUxURVJfMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzI6CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkgICAgJmRhdGFbKFJBREVPTl9QUF9UWE9GRlNFVF8wIC0gUkFERU9OX1BQX1RYRklMVEVSXzApIC8gNF0pKSB7CisJCQlEUk1fRVJST1IoIkludmFsaWQgUjEwMCB0ZXh0dXJlIG9mZnNldFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlicmVhazsKKworCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzE6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18yOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzQ6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU181OnsKKwkJCWludCBpOworCQkJZm9yIChpID0gMDsgaSA8IDU7IGkrKykgeworCQkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwKKwkJCQkJCQkJICBmaWxlX3ByaXYsCisJCQkJCQkJCSAgJmRhdGFbaV0pKSB7CisJCQkJCURSTV9FUlJPUgorCQkJCQkgICAgKCJJbnZhbGlkIFIyMDAgY3ViaWMgdGV4dHVyZSBvZmZzZXRcbiIpOworCQkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCQl9CisJCQl9CisJCQlicmVhazsKKwkJfQorCisJY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QwOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDI6eworCQkJaW50IGk7CisJCQlmb3IgKGkgPSAwOyBpIDwgNTsgaSsrKSB7CisJCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LAorCQkJCQkJCQkgIGZpbGVfcHJpdiwKKwkJCQkJCQkJICAmZGF0YVtpXSkpIHsKKwkJCQkJRFJNX0VSUk9SCisJCQkJCSAgICAoIkludmFsaWQgUjEwMCBjdWJpYyB0ZXh0dXJlIG9mZnNldFxuIik7CisJCQkJCXJldHVybiAtRUlOVkFMOworCQkJCX0KKwkJCX0KKwkJfQorCQlicmVhazsKKworCWNhc2UgUjIwMF9FTUlUX1ZBUF9DVEw6eworCQkJUklOR19MT0NBTFM7CisJCQlCRUdJTl9SSU5HKDIpOworCQkJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOworCQkJQURWQU5DRV9SSU5HKCk7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFJBREVPTl9FTUlUX1JCM0RfQ09MT1JQSVRDSDoKKwljYXNlIFJBREVPTl9FTUlUX1JFX0xJTkVfUEFUVEVSTjoKKwljYXNlIFJBREVPTl9FTUlUX1NFX0xJTkVfV0lEVEg6CisJY2FzZSBSQURFT05fRU1JVF9QUF9MVU1fTUFUUklYOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfUk9UX01BVFJJWF8wOgorCWNhc2UgUkFERU9OX0VNSVRfUkIzRF9TVEVOQ0lMUkVGTUFTSzoKKwljYXNlIFJBREVPTl9FTUlUX1NFX1ZQT1JUX1hTQ0FMRToKKwljYXNlIFJBREVPTl9FTUlUX1NFX0NOVEw6CisJY2FzZSBSQURFT05fRU1JVF9TRV9DTlRMX1NUQVRVUzoKKwljYXNlIFJBREVPTl9FTUlUX1JFX01JU0M6CisJY2FzZSBSQURFT05fRU1JVF9QUF9CT1JERVJfQ09MT1JfMDoKKwljYXNlIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8xOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQk9SREVSX0NPTE9SXzI6CisJY2FzZSBSQURFT05fRU1JVF9TRV9aQklBU19GQUNUT1I6CisJY2FzZSBSQURFT05fRU1JVF9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQ6CisJY2FzZSBSQURFT05fRU1JVF9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8wOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzE6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfMjoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF8zOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzQ6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDQkxFTkRfNToKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENCTEVORF82OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzc6CisJY2FzZSBSMjAwX0VNSVRfVENMX0xJR0hUX01PREVMX0NUTF8wOgorCWNhc2UgUjIwMF9FTUlUX1RGQUNUT1JfMDoKKwljYXNlIFIyMDBfRU1JVF9WVFhfRk1UXzA6CisJY2FzZSBSMjAwX0VNSVRfTUFUUklYX1NFTEVDVF8wOgorCWNhc2UgUjIwMF9FTUlUX1RFWF9QUk9DX0NUTF8yOgorCWNhc2UgUjIwMF9FTUlUX1RDTF9VQ1BfVkVSVF9CTEVORF9DVEw6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl8xOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhGSUxURVJfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWEZJTFRFUl80OgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzU6CisJY2FzZSBSMjAwX0VNSVRfVlRFX0NOVEw6CisJY2FzZSBSMjAwX0VNSVRfT1VUUFVUX1ZUWF9DT01QX1NFTDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UQU1fREVCVUczOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NOVExfWDoKKwljYXNlIFIyMDBfRU1JVF9SQjNEX0RFUFRIWFlfT0ZGU0VUOgorCWNhc2UgUjIwMF9FTUlUX1JFX0FVWF9TQ0lTU09SX0NOVEw6CisJY2FzZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8wOgorCWNhc2UgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMToKKwljYXNlIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzI6CisJY2FzZSBSMjAwX0VNSVRfU0VfVkFQX0NOVExfU1RBVFVTOgorCWNhc2UgUjIwMF9FTUlUX1NFX1ZUWF9TVEFURV9DTlRMOgorCWNhc2UgUjIwMF9FTUlUX1JFX1BPSU5UU0laRToKKwljYXNlIFIyMDBfRU1JVF9UQ0xfSU5QVVRfVlRYX1ZFQ1RPUl9BRERSXzA6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMDoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18xOgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzI6CisJY2FzZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMzoKKwljYXNlIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU180OgorCWNhc2UgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzU6CisJY2FzZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8wOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMToKKwljYXNlIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzI6CisJY2FzZSBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SOgorCWNhc2UgUjIwMF9FTUlUX1RDTF9QT0lOVF9TUFJJVEVfQ05UTDoKKwljYXNlIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzA6CisJY2FzZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18xOgorCWNhc2UgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMjoKKwljYXNlIFIyMDBfRU1JVF9QUF9UUklfUEVSRl9DTlRMOgorCWNhc2UgUjIwMF9FTUlUX1BQX0FGU18wOgorCWNhc2UgUjIwMF9FTUlUX1BQX0FGU18xOgorCWNhc2UgUjIwMF9FTUlUX0FURl9URkFDVE9SOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzA6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMToKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8yOgorCWNhc2UgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzM6CisJY2FzZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfNDoKKwljYXNlIFIyMDBfRU1JVF9QUF9UWENUTEFMTF81OgorCWNhc2UgUjIwMF9FTUlUX1ZBUF9QVlNfQ05UTDoKKwkJLyogVGhlc2UgcGFja2V0cyBkb24ndCBjb250YWluIG1lbW9yeSBvZmZzZXRzICovCisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJRFJNX0VSUk9SKCJVbmtub3duIHN0YXRlIHBhY2tldCBJRCAlZFxuIiwgaWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0Myhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqCisJCQkJCQkgICAgIGRldl9wcml2LAorCQkJCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkJCSAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICoKKwkJCQkJCSAgICAgY21kYnVmLAorCQkJCQkJICAgICB1bnNpZ25lZCBpbnQgKmNtZHN6KQoreworCXUzMiAqY21kID0gKHUzMiAqKSBjbWRidWYtPmJ1ZjsKKwl1MzIgb2Zmc2V0LCBuYXJyYXlzOworCWludCBjb3VudCwgaSwgazsKKworCSpjbWRzeiA9IDIgKyAoKGNtZFswXSAmIFJBREVPTl9DUF9QQUNLRVRfQ09VTlRfTUFTSykgPj4gMTYpOworCisJaWYgKChjbWRbMF0gJiAweGMwMDAwMDAwKSAhPSBSQURFT05fQ1BfUEFDS0VUMykgeworCQlEUk1fRVJST1IoIk5vdCBhIHR5cGUgMyBwYWNrZXRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoNCAqICpjbWRzeiA+IGNtZGJ1Zi0+YnVmc3opIHsKKwkJRFJNX0VSUk9SKCJQYWNrZXQgc2l6ZSBsYXJnZXIgdGhhbiBzaXplIG9mIGRhdGEgcHJvdmlkZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlzd2l0Y2goY21kWzBdICYgMHhmZjAwKSB7CisJLyogWFhYIEFyZSB0aGVyZSBvbGQgZHJpdmVycyBuZWVkaW5nIG90aGVyIHBhY2tldHM/ICovCisKKwljYXNlIFJBREVPTl8zRF9EUkFXX0lNTUQ6CisJY2FzZSBSQURFT05fM0RfRFJBV19WQlVGOgorCWNhc2UgUkFERU9OXzNEX0RSQVdfSU5EWDoKKwljYXNlIFJBREVPTl9XQUlUX0ZPUl9JRExFOgorCWNhc2UgUkFERU9OX0NQX05PUDoKKwljYXNlIFJBREVPTl8zRF9DTEVBUl9aTUFTSzoKKy8qCWNhc2UgUkFERU9OX0NQX05FWFRfQ0hBUjoKKwljYXNlIFJBREVPTl9DUF9QTFlfTkVYVFNDQU46CisJY2FzZSBSQURFT05fQ1BfU0VUX1NDSVNTT1JTOiAqLyAvKiBwcm9iYWJseSBzYWZlIGJ1dCB3aWxsIG5ldmVyIG5lZWQgdGhlbT8gKi8KKwkJLyogdGhlc2UgcGFja2V0cyBhcmUgc2FmZSAqLworCQlicmVhazsKKworCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU1NRF8yOgorCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfVkJVRl8yOgorCWNhc2UgUkFERU9OX0NQXzNEX0RSQVdfSU5EWF8yOgorCWNhc2UgUkFERU9OXzNEX0NMRUFSX0hJWjoKKwkJLyogc2FmZSBidXQgcjIwMCBvbmx5ICovCisJCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gIT0gVUNPREVfUjIwMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIDNkIHBhY2tldCBmb3IgcjEwMC1jbGFzcyBjaGlwXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fM0RfTE9BRF9WQlBOVFI6CisJCWNvdW50ID0gKGNtZFswXSA+PiAxNikgJiAweDNmZmY7CisKKwkJaWYgKGNvdW50ID4gMTgpIHsgLyogMTIgYXJyYXlzIG1heCAqLworCQkJRFJNX0VSUk9SKCJUb28gbGFyZ2UgcGF5bG9hZCBpbiAzRF9MT0FEX1ZCUE5UUiAoY291bnQ9JWQpXG4iLAorCQkJCSAgY291bnQpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBjYXJlZnVsbHkgY2hlY2sgcGFja2V0IGNvbnRlbnRzICovCisJCW5hcnJheXMgPSBjbWRbMV0gJiB+MHhjMDAwOworCQlrID0gMDsKKwkJaSA9IDI7CisJCXdoaWxlICgoayA8IG5hcnJheXMpICYmIChpIDwgKGNvdW50ICsgMikpKSB7CisJCQlpKys7CQkvKiBza2lwIGF0dHJpYnV0ZSBmaWVsZCAqLworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCQkJICAmY21kW2ldKSkgeworCQkJCURSTV9FUlJPUgorCQkJCSAgICAoIkludmFsaWQgb2Zmc2V0IChrPSVkIGk9JWQpIGluIDNEX0xPQURfVkJQTlRSIHBhY2tldC5cbiIsCisJCQkJICAgICBrLCBpKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKwkJCWsrKzsKKwkJCWkrKzsKKwkJCWlmIChrID09IG5hcnJheXMpCisJCQkJYnJlYWs7CisJCQkvKiBoYXZlIG9uZSBtb3JlIHRvIHByb2Nlc3MsIHRoZXkgY29tZSBpbiBwYWlycyAqLworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LAorCQkJCQkJCSAgZmlsZV9wcml2LCAmY21kW2ldKSkKKwkJCXsKKwkJCQlEUk1fRVJST1IKKwkJCQkgICAgKCJJbnZhbGlkIG9mZnNldCAoaz0lZCBpPSVkKSBpbiAzRF9MT0FEX1ZCUE5UUiBwYWNrZXQuXG4iLAorCQkJCSAgICAgaywgaSk7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQlrKys7CisJCQlpKys7CisJCX0KKwkJLyogZG8gdGhlIGNvdW50cyBtYXRjaCB3aGF0IHdlIGV4cGVjdCA/ICovCisJCWlmICgoayAhPSBuYXJyYXlzKSB8fCAoaSAhPSAoY291bnQgKyAyKSkpIHsKKwkJCURSTV9FUlJPUgorCQkJICAgICgiTWFsZm9ybWVkIDNEX0xPQURfVkJQTlRSIHBhY2tldCAoaz0lZCBpPSVkIG5hcnJheXM9JWQgY291bnQrMT0lZCkuXG4iLAorCQkJICAgICAgaywgaSwgbmFycmF5cywgY291bnQgKyAxKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fM0RfUk5EUl9HRU5fSU5EWF9QUklNOgorCQlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uICE9IFVDT0RFX1IxMDApIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCAzZCBwYWNrZXQgZm9yIHIyMDAtY2xhc3MgY2hpcFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJmNtZFsxXSkpIHsKKwkJCQlEUk1fRVJST1IoIkludmFsaWQgcm5kcl9nZW5faW5keCBvZmZzZXRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fQ1BfSU5EWF9CVUZGRVI6CisJCWlmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gIT0gVUNPREVfUjIwMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIDNkIHBhY2tldCBmb3IgcjEwMC1jbGFzcyBjaGlwXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWlmICgoY21kWzFdICYgMHg4MDAwZmZmZikgIT0gMHg4MDAwMDgxMCkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGluZHhfYnVmZmVyIHJlZyBhZGRyZXNzICUwOFhcbiIsIGNtZFsxXSk7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJmNtZFsyXSkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBpbmR4X2J1ZmZlciBvZmZzZXQgaXMgJTA4WFxuIiwgY21kWzJdKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisJCWJyZWFrOworCisJY2FzZSBSQURFT05fQ05UTF9IT1NUREFUQV9CTFQ6CisJY2FzZSBSQURFT05fQ05UTF9QQUlOVF9NVUxUSToKKwljYXNlIFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSToKKwkJLyogTVNCIG9mIG9wY29kZTogbmV4dCBEV09SRCBHVUlfQ05UTCAqLworCQlpZiAoY21kWzFdICYgKFJBREVPTl9HTUNfU1JDX1BJVENIX09GRlNFVF9DTlRMCisJCQkgICAgICB8IFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMKSkgeworCQkJb2Zmc2V0ID0gY21kWzJdIDw8IDEwOworCQkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0CisJCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsICZvZmZzZXQpKSB7CisJCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGZpcnN0IHBhY2tldCBvZmZzZXRcbiIpOworCQkJCXJldHVybiAtRUlOVkFMOworCQkJfQorCQkJY21kWzJdID0gKGNtZFsyXSAmIDB4ZmZjMDAwMDApIHwgb2Zmc2V0ID4+IDEwOworCQl9CisKKwkJaWYgKChjbWRbMV0gJiBSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCkgJiYKKwkJICAgIChjbWRbMV0gJiBSQURFT05fR01DX0RTVF9QSVRDSF9PRkZTRVRfQ05UTCkpIHsKKwkJCW9mZnNldCA9IGNtZFszXSA8PCAxMDsKKwkJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldAorCQkJICAgIChkZXZfcHJpdiwgZmlsZV9wcml2LCAmb2Zmc2V0KSkgeworCQkJCURSTV9FUlJPUigiSW52YWxpZCBzZWNvbmQgcGFja2V0IG9mZnNldFxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCQljbWRbM10gPSAoY21kWzNdICYgMHhmZmMwMDAwMCkgfCBvZmZzZXQgPj4gMTA7CisJCX0KKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlEUk1fRVJST1IoIkludmFsaWQgcGFja2V0IHR5cGUgJXhcbiIsIGNtZFswXSAmIDB4ZmYwMCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBoYXJkd2FyZSBzdGF0ZSBwcm9ncmFtbWluZyBmdW5jdGlvbnMKKyAqLworCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIHJhZGVvbl9lbWl0X2NsaXBfcmVjdChkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAorCQkJCQkgICAgIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICogYm94KQoreworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCIgICBib3g6ICB4MT0lZCB5MT0lZCAgeDI9JWQgeTI9JWRcbiIsCisJCSAgYm94LT54MSwgYm94LT55MSwgYm94LT54MiwgYm94LT55Mik7CisKKwlCRUdJTl9SSU5HKDQpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX1RPUF9MRUZULCAwKSk7CisJT1VUX1JJTkcoKGJveC0+eTEgPDwgMTYpIHwgYm94LT54MSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfV0lEVEhfSEVJR0hULCAwKSk7CisJT1VUX1JJTkcoKChib3gtPnkyIC0gMSkgPDwgMTYpIHwgKGJveC0+eDIgLSAxKSk7CisJQURWQU5DRV9SSU5HKCk7Cit9CisKKy8qIEVtaXQgMS4xIHN0YXRlCisgKi8KK3N0YXRpYyBpbnQgcmFkZW9uX2VtaXRfc3RhdGUoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkgICAgIGRybV9yYWRlb25fY29udGV4dF9yZWdzX3QgKiBjdHgsCisJCQkgICAgIGRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3QgKiB0ZXgsCisJCQkgICAgIHVuc2lnbmVkIGludCBkaXJ0eSkKK3sKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoImRpcnR5PTB4JTA4eFxuIiwgZGlydHkpOworCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9DT05URVhUKSB7CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmY3R4LT5yYjNkX2RlcHRob2Zmc2V0KSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlcHRoIGJ1ZmZlciBvZmZzZXRcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgJmN0eC0+cmIzZF9jb2xvcm9mZnNldCkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCBkZXB0aCBidWZmZXIgb2Zmc2V0XG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJQkVHSU5fUklORygxNCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX01JU0MsIDYpKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9taXNjKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9mb2dfY29sb3IpOworCQlPVVRfUklORyhjdHgtPnJlX3NvbGlkX2NvbG9yKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2JsZW5kY250bCk7CisJCU9VVF9SSU5HKGN0eC0+cmIzZF9kZXB0aG9mZnNldCk7CisJCU9VVF9SSU5HKGN0eC0+cmIzZF9kZXB0aHBpdGNoKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3pzdGVuY2lsY250bCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0NOVEwsIDIpKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9jbnRsKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2NudGwpOworCQlPVVRfUklORyhjdHgtPnJiM2RfY29sb3JvZmZzZXQpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SQjNEX0NPTE9SUElUQ0gsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX2NvbG9ycGl0Y2gpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1ZFUlRGTVQpIHsKKwkJQkVHSU5fUklORygyKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfQ09PUkRfRk1ULCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY29vcmRfZm10KTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9MSU5FKSB7CisJCUJFR0lOX1JJTkcoNSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JFX0xJTkVfUEFUVEVSTiwgMSkpOworCQlPVVRfUklORyhjdHgtPnJlX2xpbmVfcGF0dGVybik7CisJCU9VVF9SSU5HKGN0eC0+cmVfbGluZV9zdGF0ZSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0xJTkVfV0lEVEgsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV9saW5lX3dpZHRoKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9CVU1QTUFQKSB7CisJCUJFR0lOX1JJTkcoNSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0xVTV9NQVRSSVgsIDApKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9sdW1fbWF0cml4KTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfUk9UX01BVFJJWF8wLCAxKSk7CisJCU9VVF9SSU5HKGN0eC0+cHBfcm90X21hdHJpeF8wKTsKKwkJT1VUX1JJTkcoY3R4LT5wcF9yb3RfbWF0cml4XzEpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX01BU0tTKSB7CisJCUJFR0lOX1JJTkcoNCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssIDIpKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3N0ZW5jaWxyZWZtYXNrKTsKKwkJT1VUX1JJTkcoY3R4LT5yYjNkX3JvcGNudGwpOworCQlPVVRfUklORyhjdHgtPnJiM2RfcGxhbmVtYXNrKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9WSUVXUE9SVCkgeworCQlCRUdJTl9SSU5HKDcpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9WUE9SVF9YU0NBTEUsIDUpKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF94c2NhbGUpOworCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3hvZmZzZXQpOworCQlPVVRfUklORyhjdHgtPnNlX3Zwb3J0X3lzY2FsZSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfeW9mZnNldCk7CisJCU9VVF9SSU5HKGN0eC0+c2VfdnBvcnRfenNjYWxlKTsKKwkJT1VUX1JJTkcoY3R4LT5zZV92cG9ydF96b2Zmc2V0KTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9TRVRVUCkgeworCQlCRUdJTl9SSU5HKDQpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9DTlRMLCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY250bCk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX0NOVExfU1RBVFVTLCAwKSk7CisJCU9VVF9SSU5HKGN0eC0+c2VfY250bF9zdGF0dXMpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX01JU0MpIHsKKwkJQkVHSU5fUklORygyKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUkVfTUlTQywgMCkpOworCQlPVVRfUklORyhjdHgtPnJlX21pc2MpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlpZiAoZGlydHkgJiBSQURFT05fVVBMT0FEX1RFWDApIHsKKwkJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCQkgICZ0ZXhbMF0ucHBfdHhvZmZzZXQpKSB7CisJCQlEUk1fRVJST1IoIkludmFsaWQgdGV4dHVyZSBvZmZzZXQgZm9yIHVuaXQgMFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCUJFR0lOX1JJTkcoOSk7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX1RYRklMVEVSXzAsIDUpKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4ZmlsdGVyKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4Zm9ybWF0KTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4b2Zmc2V0KTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4Y2JsZW5kKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3R4YWJsZW5kKTsKKwkJT1VUX1JJTkcodGV4WzBdLnBwX3RmYWN0b3IpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9CT1JERVJfQ09MT1JfMCwgMCkpOworCQlPVVRfUklORyh0ZXhbMF0ucHBfYm9yZGVyX2NvbG9yKTsKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJaWYgKGRpcnR5ICYgUkFERU9OX1VQTE9BRF9URVgxKSB7CisJCWlmIChyYWRlb25fY2hlY2tfYW5kX2ZpeHVwX29mZnNldChkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICAmdGV4WzFdLnBwX3R4b2Zmc2V0KSkgeworCQkJRFJNX0VSUk9SKCJJbnZhbGlkIHRleHR1cmUgb2Zmc2V0IGZvciB1bml0IDFcbiIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlCRUdJTl9SSU5HKDkpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9QUF9UWEZJTFRFUl8xLCA1KSk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGZpbHRlcik7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGZvcm1hdCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eG9mZnNldCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGNibGVuZCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90eGFibGVuZCk7CisJCU9VVF9SSU5HKHRleFsxXS5wcF90ZmFjdG9yKTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfQk9SREVSX0NPTE9SXzEsIDApKTsKKwkJT1VUX1JJTkcodGV4WzFdLnBwX2JvcmRlcl9jb2xvcik7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCWlmIChkaXJ0eSAmIFJBREVPTl9VUExPQURfVEVYMikgeworCQlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9vZmZzZXQoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgJnRleFsyXS5wcF90eG9mZnNldCkpIHsKKwkJCURSTV9FUlJPUigiSW52YWxpZCB0ZXh0dXJlIG9mZnNldCBmb3IgdW5pdCAyXG4iKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJQkVHSU5fUklORyg5KTsKKwkJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fUFBfVFhGSUxURVJfMiwgNSkpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhmaWx0ZXIpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhmb3JtYXQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhvZmZzZXQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhjYmxlbmQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdHhhYmxlbmQpOworCQlPVVRfUklORyh0ZXhbMl0ucHBfdGZhY3Rvcik7CisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yLCAwKSk7CisJCU9VVF9SSU5HKHRleFsyXS5wcF9ib3JkZXJfY29sb3IpOworCQlBRFZBTkNFX1JJTkcoKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogRW1pdCAxLjIgc3RhdGUKKyAqLworc3RhdGljIGludCByYWRlb25fZW1pdF9zdGF0ZTIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJICAgICAgZHJtX3JhZGVvbl9zdGF0ZV90ICogc3RhdGUpCit7CisJUklOR19MT0NBTFM7CisKKwlpZiAoc3RhdGUtPmRpcnR5ICYgUkFERU9OX1VQTE9BRF9aQklBUykgeworCQlCRUdJTl9SSU5HKDMpOworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9aQklBU19GQUNUT1IsIDEpKTsKKwkJT1VUX1JJTkcoc3RhdGUtPmNvbnRleHQyLnNlX3piaWFzX2ZhY3Rvcik7CisJCU9VVF9SSU5HKHN0YXRlLT5jb250ZXh0Mi5zZV96Ymlhc19jb25zdGFudCk7CisJCUFEVkFOQ0VfUklORygpOworCX0KKworCXJldHVybiByYWRlb25fZW1pdF9zdGF0ZShkZXZfcHJpdiwgZmlsZV9wcml2LCAmc3RhdGUtPmNvbnRleHQsCisJCQkJIHN0YXRlLT50ZXgsIHN0YXRlLT5kaXJ0eSk7Cit9CisKKy8qIE5ldyAoMS4zKSBzdGF0ZSBtZWNoYW5pc20uICAzIGNvbW1hbmRzIChwYWNrZXQsIHNjYWxhciwgdmVjdG9yKSBpbgorICogMS4zIGNtZGJ1ZmZlcnMgYWxsb3cgYWxsIHByZXZpb3VzIHN0YXRlIHRvIGJlIHVwZGF0ZWQgYXMgd2VsbCBhcworICogdGhlIHRjbCBzY2FsYXIgYW5kIHZlY3RvciBhcmVhcy4KKyAqLworc3RhdGljIHN0cnVjdCB7CisJaW50IHN0YXJ0OworCWludCBsZW47CisJY29uc3QgY2hhciAqbmFtZTsKK30gcGFja2V0W1JBREVPTl9NQVhfU1RBVEVfUEFDS0VUU10gPSB7CisJe1JBREVPTl9QUF9NSVNDLCA3LCAiUkFERU9OX1BQX01JU0MifSwKKwl7UkFERU9OX1BQX0NOVEwsIDMsICJSQURFT05fUFBfQ05UTCJ9LAorCXtSQURFT05fUkIzRF9DT0xPUlBJVENILCAxLCAiUkFERU9OX1JCM0RfQ09MT1JQSVRDSCJ9LAorCXtSQURFT05fUkVfTElORV9QQVRURVJOLCAyLCAiUkFERU9OX1JFX0xJTkVfUEFUVEVSTiJ9LAorCXtSQURFT05fU0VfTElORV9XSURUSCwgMSwgIlJBREVPTl9TRV9MSU5FX1dJRFRIIn0sCisJe1JBREVPTl9QUF9MVU1fTUFUUklYLCAxLCAiUkFERU9OX1BQX0xVTV9NQVRSSVgifSwKKwl7UkFERU9OX1BQX1JPVF9NQVRSSVhfMCwgMiwgIlJBREVPTl9QUF9ST1RfTUFUUklYXzAifSwKKwl7UkFERU9OX1JCM0RfU1RFTkNJTFJFRk1BU0ssIDMsICJSQURFT05fUkIzRF9TVEVOQ0lMUkVGTUFTSyJ9LAorCXtSQURFT05fU0VfVlBPUlRfWFNDQUxFLCA2LCAiUkFERU9OX1NFX1ZQT1JUX1hTQ0FMRSJ9LAorCXtSQURFT05fU0VfQ05UTCwgMiwgIlJBREVPTl9TRV9DTlRMIn0sCisJe1JBREVPTl9TRV9DTlRMX1NUQVRVUywgMSwgIlJBREVPTl9TRV9DTlRMX1NUQVRVUyJ9LAorCXtSQURFT05fUkVfTUlTQywgMSwgIlJBREVPTl9SRV9NSVNDIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8wLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzAifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8wLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8wIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8xLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzEifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8xIn0sCisJe1JBREVPTl9QUF9UWEZJTFRFUl8yLCA2LCAiUkFERU9OX1BQX1RYRklMVEVSXzIifSwKKwl7UkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yLCAxLCAiUkFERU9OX1BQX0JPUkRFUl9DT0xPUl8yIn0sCisJe1JBREVPTl9TRV9aQklBU19GQUNUT1IsIDIsICJSQURFT05fU0VfWkJJQVNfRkFDVE9SIn0sCisJe1JBREVPTl9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQsIDExLCAiUkFERU9OX1NFX1RDTF9PVVRQVVRfVlRYX0ZNVCJ9LAorCXtSQURFT05fU0VfVENMX01BVEVSSUFMX0VNTUlTU0lWRV9SRUQsIDE3LAorCQkgICAgIlJBREVPTl9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzAsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzAifSwKKwl7UjIwMF9QUF9UWENCTEVORF8xLCA0LCAiUjIwMF9QUF9UWENCTEVORF8xIn0sCisJe1IyMDBfUFBfVFhDQkxFTkRfMiwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfMiJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzMsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzMifSwKKwl7UjIwMF9QUF9UWENCTEVORF80LCA0LCAiUjIwMF9QUF9UWENCTEVORF80In0sCisJe1IyMDBfUFBfVFhDQkxFTkRfNSwgNCwgIlIyMDBfUFBfVFhDQkxFTkRfNSJ9LAorCXtSMjAwX1BQX1RYQ0JMRU5EXzYsIDQsICJSMjAwX1BQX1RYQ0JMRU5EXzYifSwKKwl7UjIwMF9QUF9UWENCTEVORF83LCA0LCAiUjIwMF9QUF9UWENCTEVORF83In0sCisJe1IyMDBfU0VfVENMX0xJR0hUX01PREVMX0NUTF8wLCA2LCAiUjIwMF9TRV9UQ0xfTElHSFRfTU9ERUxfQ1RMXzAifSwKKwl7UjIwMF9QUF9URkFDVE9SXzAsIDYsICJSMjAwX1BQX1RGQUNUT1JfMCJ9LAorCXtSMjAwX1NFX1ZUWF9GTVRfMCwgNCwgIlIyMDBfU0VfVlRYX0ZNVF8wIn0sCisJe1IyMDBfU0VfVkFQX0NOVEwsIDEsICJSMjAwX1NFX1ZBUF9DTlRMIn0sCisJe1IyMDBfU0VfVENMX01BVFJJWF9TRUxfMCwgNSwgIlIyMDBfU0VfVENMX01BVFJJWF9TRUxfMCJ9LAorCXtSMjAwX1NFX1RDTF9URVhfUFJPQ19DVExfMiwgNSwgIlIyMDBfU0VfVENMX1RFWF9QUk9DX0NUTF8yIn0sCisJe1IyMDBfU0VfVENMX1VDUF9WRVJUX0JMRU5EX0NUTCwgMSwgIlIyMDBfU0VfVENMX1VDUF9WRVJUX0JMRU5EX0NUTCJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzAsIDYsICJSMjAwX1BQX1RYRklMVEVSXzAifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl8xLCA2LCAiUjIwMF9QUF9UWEZJTFRFUl8xIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMiwgNiwgIlIyMDBfUFBfVFhGSUxURVJfMiJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzMsIDYsICJSMjAwX1BQX1RYRklMVEVSXzMifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl80LCA2LCAiUjIwMF9QUF9UWEZJTFRFUl80In0sCisJe1IyMDBfUFBfVFhGSUxURVJfNSwgNiwgIlIyMDBfUFBfVFhGSUxURVJfNSJ9LAorCXtSMjAwX1BQX1RYT0ZGU0VUXzAsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzAifSwKKwl7UjIwMF9QUF9UWE9GRlNFVF8xLCAxLCAiUjIwMF9QUF9UWE9GRlNFVF8xIn0sCisJe1IyMDBfUFBfVFhPRkZTRVRfMiwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfMiJ9LAorCXtSMjAwX1BQX1RYT0ZGU0VUXzMsIDEsICJSMjAwX1BQX1RYT0ZGU0VUXzMifSwKKwl7UjIwMF9QUF9UWE9GRlNFVF80LCAxLCAiUjIwMF9QUF9UWE9GRlNFVF80In0sCisJe1IyMDBfUFBfVFhPRkZTRVRfNSwgMSwgIlIyMDBfUFBfVFhPRkZTRVRfNSJ9LAorCXtSMjAwX1NFX1ZURV9DTlRMLCAxLCAiUjIwMF9TRV9WVEVfQ05UTCJ9LAorCXtSMjAwX1NFX1RDTF9PVVRQVVRfVlRYX0NPTVBfU0VMLCAxLAorCSAiUjIwMF9TRV9UQ0xfT1VUUFVUX1ZUWF9DT01QX1NFTCJ9LAorCXtSMjAwX1BQX1RBTV9ERUJVRzMsIDEsICJSMjAwX1BQX1RBTV9ERUJVRzMifSwKKwl7UjIwMF9QUF9DTlRMX1gsIDEsICJSMjAwX1BQX0NOVExfWCJ9LAorCXtSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQsIDEsICJSMjAwX1JCM0RfREVQVEhYWV9PRkZTRVQifSwKKwl7UjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMLCAxLCAiUjIwMF9SRV9BVVhfU0NJU1NPUl9DTlRMIn0sCisJe1IyMDBfUkVfU0NJU1NPUl9UTF8wLCAyLCAiUjIwMF9SRV9TQ0lTU09SX1RMXzAifSwKKwl7UjIwMF9SRV9TQ0lTU09SX1RMXzEsIDIsICJSMjAwX1JFX1NDSVNTT1JfVExfMSJ9LAorCXtSMjAwX1JFX1NDSVNTT1JfVExfMiwgMiwgIlIyMDBfUkVfU0NJU1NPUl9UTF8yIn0sCisJe1IyMDBfU0VfVkFQX0NOVExfU1RBVFVTLCAxLCAiUjIwMF9TRV9WQVBfQ05UTF9TVEFUVVMifSwKKwl7UjIwMF9TRV9WVFhfU1RBVEVfQ05UTCwgMSwgIlIyMDBfU0VfVlRYX1NUQVRFX0NOVEwifSwKKwl7UjIwMF9SRV9QT0lOVFNJWkUsIDEsICJSMjAwX1JFX1BPSU5UU0laRSJ9LAorCXtSMjAwX1NFX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCwgNCwKKwkJICAgICJSMjAwX1NFX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCJ9LAorCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzAsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzAifSwJLyogNjEgKi8KKwl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMCwgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzAifSwgLyogNjIgKi8KKwl7UjIwMF9QUF9DVUJJQ19GQUNFU18xLCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU18xIn0sCisJe1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzEsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8xIn0sCisJe1IyMDBfUFBfQ1VCSUNfRkFDRVNfMiwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfMiJ9LAorCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV8yLCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMiJ9LAorCXtSMjAwX1BQX0NVQklDX0ZBQ0VTXzMsIDEsICJSMjAwX1BQX0NVQklDX0ZBQ0VTXzMifSwKKwl7UjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfMywgNSwgIlIyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzMifSwKKwl7UjIwMF9QUF9DVUJJQ19GQUNFU180LCAxLCAiUjIwMF9QUF9DVUJJQ19GQUNFU180In0sCisJe1IyMDBfUFBfQ1VCSUNfT0ZGU0VUX0YxXzQsIDUsICJSMjAwX1BQX0NVQklDX09GRlNFVF9GMV80In0sCisJe1IyMDBfUFBfQ1VCSUNfRkFDRVNfNSwgMSwgIlIyMDBfUFBfQ1VCSUNfRkFDRVNfNSJ9LAorCXtSMjAwX1BQX0NVQklDX09GRlNFVF9GMV81LCA1LCAiUjIwMF9QUF9DVUJJQ19PRkZTRVRfRjFfNSJ9LAorCXtSQURFT05fUFBfVEVYX1NJWkVfMCwgMiwgIlJBREVPTl9QUF9URVhfU0laRV8wIn0sCisJe1JBREVPTl9QUF9URVhfU0laRV8xLCAyLCAiUkFERU9OX1BQX1RFWF9TSVpFXzEifSwKKwl7UkFERU9OX1BQX1RFWF9TSVpFXzIsIDIsICJSQURFT05fUFBfVEVYX1NJWkVfMiJ9LAorCXtSMjAwX1JCM0RfQkxFTkRDT0xPUiwgMywgIlIyMDBfUkIzRF9CTEVORENPTE9SIn0sCisJe1IyMDBfU0VfVENMX1BPSU5UX1NQUklURV9DTlRMLCAxLCAiUjIwMF9TRV9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzAsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMCJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QwXzAifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzEsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMSJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QxXzAifSwKKwl7UkFERU9OX1BQX0NVQklDX0ZBQ0VTXzIsIDEsICJSQURFT05fUFBfQ1VCSUNfRkFDRVNfMiJ9LAorCXtSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QyXzAsIDUsICJSQURFT05fUFBfQ1VCSUNfT0ZGU0VUX1QyXzAifSwKKwl7UjIwMF9QUF9UUklfUEVSRiwgMiwgIlIyMDBfUFBfVFJJX1BFUkYifSwKKwl7UjIwMF9QUF9BRlNfMCwgMzIsICJSMjAwX1BQX0FGU18wIn0sICAgICAvKiA4NSAqLworCXtSMjAwX1BQX0FGU18xLCAzMiwgIlIyMDBfUFBfQUZTXzEifSwKKwl7UjIwMF9QUF9URkFDVE9SXzAsIDgsICJSMjAwX0FURl9URkFDVE9SIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMCwgOCwgIlIyMDBfUFBfVFhDVExBTExfMCJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzEsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzEifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl8yLCA4LCAiUjIwMF9QUF9UWENUTEFMTF8yIn0sCisJe1IyMDBfUFBfVFhGSUxURVJfMywgOCwgIlIyMDBfUFBfVFhDVExBTExfMyJ9LAorCXtSMjAwX1BQX1RYRklMVEVSXzQsIDgsICJSMjAwX1BQX1RYQ1RMQUxMXzQifSwKKwl7UjIwMF9QUF9UWEZJTFRFUl81LCA4LCAiUjIwMF9QUF9UWENUTEFMTF81In0sCisJe1IyMDBfVkFQX1BWU19DTlRMXzEsIDIsICJSMjAwX1ZBUF9QVlNfQ05UTCJ9LAorfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICogUGVyZm9ybWFuY2UgbW9uaXRvcmluZyBmdW5jdGlvbnMKKyAqLworCitzdGF0aWMgdm9pZCByYWRlb25fY2xlYXJfYm94KGRybV9yYWRlb25fcHJpdmF0ZV90ICogZGV2X3ByaXYsCisJCQkgICAgIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLCBpbnQgciwgaW50IGcsIGludCBiKQoreworCXUzMiBjb2xvcjsKKwlSSU5HX0xPQ0FMUzsKKworCXggKz0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmJveGVzWzBdLngxOworCXkgKz0gZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmJveGVzWzBdLnkxOworCisJc3dpdGNoIChkZXZfcHJpdi0+Y29sb3JfZm10KSB7CisJY2FzZSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NToKKwkJY29sb3IgPSAoKChyICYgMHhmOCkgPDwgOCkgfAorCQkJICgoZyAmIDB4ZmMpIDw8IDMpIHwgKChiICYgMHhmOCkgPj4gMykpOworCQlicmVhazsKKwljYXNlIFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg6CisJZGVmYXVsdDoKKwkJY29sb3IgPSAoKCgweGZmKSA8PCAyNCkgfCAociA8PCAxNikgfCAoZyA8PCA4KSB8IGIpOworCQlicmVhazsKKwl9CisKKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9EUF9XUklURV9NQVNLLCAwKSk7CisJT1VUX1JJTkcoMHhmZmZmZmZmZik7CisJQURWQU5DRV9SSU5HKCk7CisKKwlCRUdJTl9SSU5HKDYpOworCisJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkgKGRldl9wcml2LT5jb2xvcl9mbXQgPDwgOCkgfAorCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkgUkFERU9OX1JPUDNfUCB8IFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyk7CisKKwlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMSkgeworCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKKwl9IGVsc2UgeworCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOworCX0KKworCU9VVF9SSU5HKGNvbG9yKTsKKworCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOworCisJQURWQU5DRV9SSU5HKCk7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9wZXJmb3JtYW5jZV9ib3hlcyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCS8qIENvbGxhcHNlIHZhcmlvdXMgdGhpbmdzIGludG8gYSB3YWl0IGZsYWcgLS0gdHJ5aW5nIHRvCisJICogZ3Vlc3MgaWYgdXNlcnNwYXNlIHNsZXB0IC0tIGJldHRlciBqdXN0IHRvIGhhdmUgdGhlbSB0ZWxsIHVzLgorCSAqLworCWlmIChkZXZfcHJpdi0+c3RhdHMubGFzdF9mcmFtZV9yZWFkcyA+IDEgfHwKKwkgICAgZGV2X3ByaXYtPnN0YXRzLmxhc3RfY2xlYXJfcmVhZHMgPiBkZXZfcHJpdi0+c3RhdHMuY2xlYXJzKSB7CisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKwl9CisKKwlpZiAoZGV2X3ByaXYtPnN0YXRzLmZyZWVsaXN0X2xvb3BzKSB7CisJCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1dBSVRfSURMRTsKKwl9CisKKwkvKiBQdXJwbGUgYm94IGZvciBwYWdlIGZsaXBwaW5nCisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfRkxJUCkKKwkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNCwgNCwgOCwgOCwgMjU1LCAwLCAyNTUpOworCisJLyogUmVkIGJveCBpZiB3ZSBoYXZlIHRvIHdhaXQgZm9yIGlkbGUgYXQgYW55IHBvaW50CisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfV0FJVF9JRExFKQorCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCAxNiwgNCwgOCwgOCwgMjU1LCAwLCAwKTsKKworCS8qIEJsdWUgYm94OiBsb3N0IGNvbnRleHQ/CisJICovCisKKwkvKiBZZWxsb3cgYm94IGZvciB0ZXh0dXJlIHN3YXBzCisJICovCisJaWYgKGRldl9wcml2LT5zdGF0cy5ib3hlcyAmIFJBREVPTl9CT1hfVEVYVFVSRV9MT0FEKQorCQlyYWRlb25fY2xlYXJfYm94KGRldl9wcml2LCA0MCwgNCwgOCwgOCwgMjU1LCAyNTUsIDApOworCisJLyogR3JlZW4gYm94IGlmIGhhcmR3YXJlIG5ldmVyIGlkbGVzIChhcyBmYXIgYXMgd2UgY2FuIHRlbGwpCisJICovCisJaWYgKCEoZGV2X3ByaXYtPnN0YXRzLmJveGVzICYgUkFERU9OX0JPWF9ETUFfSURMRSkpCisJCXJhZGVvbl9jbGVhcl9ib3goZGV2X3ByaXYsIDY0LCA0LCA4LCA4LCAwLCAyNTUsIDApOworCisJLyogRHJhdyBiYXJzIGluZGljYXRpbmcgbnVtYmVyIG9mIGJ1ZmZlcnMgYWxsb2NhdGVkCisJICogKG5vdCBhIGdyZWF0IG1lYXN1cmUsIGVhc2lseSBjb25mdXNlZCkKKwkgKi8KKwlpZiAoZGV2X3ByaXYtPnN0YXRzLnJlcXVlc3RlZF9idWZzKSB7CisJCWlmIChkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMgPiAxMDApCisJCQlkZXZfcHJpdi0+c3RhdHMucmVxdWVzdGVkX2J1ZnMgPSAxMDA7CisKKwkJcmFkZW9uX2NsZWFyX2JveChkZXZfcHJpdiwgNCwgMTYsCisJCQkJIGRldl9wcml2LT5zdGF0cy5yZXF1ZXN0ZWRfYnVmcywgNCwKKwkJCQkgMTk2LCAxMjgsIDEyOCk7CisJfQorCisJbWVtc2V0KCZkZXZfcHJpdi0+c3RhdHMsIDAsIHNpemVvZihkZXZfcHJpdi0+c3RhdHMpKTsKKworfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDUCBjb21tYW5kIGRpc3BhdGNoIGZ1bmN0aW9ucworICovCisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9jbGVhcihzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkgICAgIGRybV9yYWRlb25fY2xlYXJfdCAqIGNsZWFyLAorCQkJCSAgICAgZHJtX3JhZGVvbl9jbGVhcl9yZWN0X3QgKiBkZXB0aF9ib3hlcykKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWRybV9yYWRlb25fZGVwdGhfY2xlYXJfdCAqZGVwdGhfY2xlYXIgPSAmZGV2X3ByaXYtPmRlcHRoX2NsZWFyOworCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcGJveCA9IHNhcmVhX3ByaXYtPmJveGVzOworCXVuc2lnbmVkIGludCBmbGFncyA9IGNsZWFyLT5mbGFnczsKKwl1MzIgcmIzZF9jbnRsID0gMCwgcmIzZF9zdGVuY2lscmVmbWFzayA9IDA7CisJaW50IGk7CisJUklOR19MT0NBTFM7CisJRFJNX0RFQlVHKCJmbGFncyA9IDB4JXhcbiIsIGZsYWdzKTsKKworCWRldl9wcml2LT5zdGF0cy5jbGVhcnMrKzsKKworCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAxKSB7CisJCXVuc2lnbmVkIGludCB0bXAgPSBmbGFnczsKKworCQlmbGFncyAmPSB+KFJBREVPTl9GUk9OVCB8IFJBREVPTl9CQUNLKTsKKwkJaWYgKHRtcCAmIFJBREVPTl9GUk9OVCkKKwkJCWZsYWdzIHw9IFJBREVPTl9CQUNLOworCQlpZiAodG1wICYgUkFERU9OX0JBQ0spCisJCQlmbGFncyB8PSBSQURFT05fRlJPTlQ7CisJfQorCisJaWYgKGZsYWdzICYgKFJBREVPTl9GUk9OVCB8IFJBREVPTl9CQUNLKSkgeworCisJCUJFR0lOX1JJTkcoNCk7CisKKwkJLyogRW5zdXJlIHRoZSAzRCBzdHJlYW0gaXMgaWRsZSBiZWZvcmUgZG9pbmcgYQorCQkgKiAyRCBmaWxsIHRvIGNsZWFyIHRoZSBmcm9udCBvciBiYWNrIGJ1ZmZlci4KKwkJICovCisJCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9EUF9XUklURV9NQVNLLCAwKSk7CisJCU9VVF9SSU5HKGNsZWFyLT5jb2xvcl9tYXNrKTsKKworCQlBRFZBTkNFX1JJTkcoKTsKKworCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgorCQkgKi8KKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQkJaW50IHggPSBwYm94W2ldLngxOworCQkJaW50IHkgPSBwYm94W2ldLnkxOworCQkJaW50IHcgPSBwYm94W2ldLngyIC0geDsKKwkJCWludCBoID0gcGJveFtpXS55MiAtIHk7CisKKwkJCURSTV9ERUJVRygiJWQsJWQtJWQsJWQgZmxhZ3MgMHgleFxuIiwKKwkJCQkgIHgsIHksIHcsIGgsIGZsYWdzKTsKKworCQkJaWYgKGZsYWdzICYgUkFERU9OX0ZST05UKSB7CisJCQkJQkVHSU5fUklORyg2KTsKKworCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKKwkJCQkJIChSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCQkJCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJCQkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkJCQkgKGRldl9wcml2LT4KKwkJCQkJICBjb2xvcl9mbXQgPDwgOCkgfAorCQkJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJCQkgUkFERU9OX1JPUDNfUCB8CisJCQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMpOworCisJCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7CisJCQkJT1VUX1JJTkcoY2xlYXItPmNsZWFyX2NvbG9yKTsKKworCQkJCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCQkJCU9VVF9SSU5HKCh3IDw8IDE2KSB8IGgpOworCisJCQkJQURWQU5DRV9SSU5HKCk7CisJCQl9CisKKwkJCWlmIChmbGFncyAmIFJBREVPTl9CQUNLKSB7CisJCQkJQkVHSU5fUklORyg2KTsKKworCQkJCU9VVF9SSU5HKENQX1BBQ0tFVDMKKwkJCQkJIChSQURFT05fQ05UTF9QQUlOVF9NVUxUSSwgNCkpOworCQkJCU9VVF9SSU5HKFJBREVPTl9HTUNfRFNUX1BJVENIX09GRlNFVF9DTlRMIHwKKwkJCQkJIFJBREVPTl9HTUNfQlJVU0hfU09MSURfQ09MT1IgfAorCQkJCQkgKGRldl9wcml2LT4KKwkJCQkJICBjb2xvcl9mbXQgPDwgOCkgfAorCQkJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJCQkgUkFERU9OX1JPUDNfUCB8CisJCQkJCSBSQURFT05fR01DX0NMUl9DTVBfQ05UTF9ESVMpOworCisJCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmJhY2tfcGl0Y2hfb2Zmc2V0KTsKKwkJCQlPVVRfUklORyhjbGVhci0+Y2xlYXJfY29sb3IpOworCisJCQkJT1VUX1JJTkcoKHggPDwgMTYpIHwgeSk7CisJCQkJT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7CisKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIGh5cGVyIHogY2xlYXIgKi8KKwkvKiBubyBkb2NzIGF2YWlsYWJsZSwgYmFzZWQgb24gcmV2ZXJzZSBlbmdlbmVlcmluZyBieSBTdGVwaGFuZSBNYXJjaGVzaW4gKi8KKwlpZiAoKGZsYWdzICYgKFJBREVPTl9ERVBUSCB8IFJBREVPTl9TVEVOQ0lMKSkKKwkgICAgJiYgKGZsYWdzICYgUkFERU9OX0NMRUFSX0ZBU1RaKSkgeworCisJCWludCBpOworCQlpbnQgZGVwdGhwaXhwZXJsaW5lID0KKwkJICAgIGRldl9wcml2LT5kZXB0aF9mbXQgPT0KKwkJICAgIFJBREVPTl9ERVBUSF9GT1JNQVRfMTZCSVRfSU5UX1ogPyAoZGV2X3ByaXYtPmRlcHRoX3BpdGNoIC8KKwkJCQkJCSAgICAgICAyKSA6IChkZXZfcHJpdi0+CisJCQkJCQkJICAgICBkZXB0aF9waXRjaCAvIDQpOworCisJCXUzMiBjbGVhcm1hc2s7CisKKwkJdTMyIHRlbXBSQjNEX0RFUFRIQ0xFQVJWQUxVRSA9IGNsZWFyLT5jbGVhcl9kZXB0aCB8CisJCSAgICAoKGNsZWFyLT5kZXB0aF9tYXNrICYgMHhmZikgPDwgMjQpOworCisJCS8qIE1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSAzRCBzdGF0ZSBuZXh0IHRpbWUuCisJCSAqIHdlIGhhdmVuJ3QgdG91Y2hlZCBhbnkgIm5vcm1hbCIgc3RhdGUgLSBzdGlsbCBuZWVkIHRoaXM/CisJCSAqLworCQlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3R4X293bmVyID0gMDsKKworCQlpZiAoKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9IQVNfSElFUlopCisJCSAgICAmJiAoZmxhZ3MgJiBSQURFT05fVVNFX0hJRVJaKSkgeworCQkJLyogRklYTUUgOiByZXZlcnNlIGVuZ2luZWVyIHRoYXQgZm9yIFJ4MDAgY2FyZHMgKi8KKwkJCS8qIEZJWE1FIDogdGhlIG1hc2sgc3VwcG9zZWRseSBjb250YWlucyBsb3ctcmVzIHogdmFsdWVzLiBTbyBjYW4ndCBzZXQKKwkJCSAgIGp1c3QgdG8gdGhlIG1heCAoMHhmZj8gb3IgYWN0dWFsbHkgMHgzZmZmPyksIG5lZWQgdG8gdGFrZSB6IGNsZWFyCisJCQkgICB2YWx1ZSBpbnRvIGFjY291bnQ/ICovCisJCQkvKiBwYXR0ZXJuIHNlZW1zIHRvIHdvcmsgZm9yIHIxMDAsIHRob3VnaCBnZXQgc2xpZ2h0CisJCQkgICByZW5kZXJpbmcgZXJyb3JzIHdpdGggZ2x4Z2VhcnMuIElmIGhpZXJ6IGlzIG5vdCBlbmFibGVkIGZvciByMTAwLAorCQkJICAgb25seSA0IGJpdHMgd2hpY2ggaW5kaWNhdGUgY2xlYXIgKDE1LDE2LDMxLDMyLCBhbGwgemVybykgbWF0dGVyLCB0aGUKKwkJCSAgIG90aGVyIG9uZXMgYXJlIGlnbm9yZWQsIGFuZCB0aGUgc2FtZSBjbGVhciBtYXNrIGNhbiBiZSB1c2VkLiBUaGF0J3MKKwkJCSAgIHZlcnkgZGlmZmVyZW50IGJlaGF2aW91ciB0aGFuIFIyMDAgd2hpY2ggbmVlZHMgZGlmZmVyZW50IGNsZWFyIG1hc2sKKwkJCSAgIGFuZCBkaWZmZXJlbnQgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyIGlmIGhpZXJ6IGlzIGVuYWJsZWQgb3Igbm90ICE/IQorCQkJICovCisJCQljbGVhcm1hc2sgPSAoMHhmZiA8PCAyMikgfCAoMHhmZiA8PCA2KSB8IDB4MDAzZjAwM2Y7CisJCX0gZWxzZSB7CisJCQkvKiBjbGVhciBtYXNrIDogY2hvb3NlcyB0aGUgY2xlYXJpbmcgcGF0dGVybi4KKwkJCSAgIHJ2MjUwOiBjb3VsZCBiZSB1c2VkIHRvIGNsZWFyIG9ubHkgcGFydHMgb2YgbWFjcm90aWxlcworCQkJICAgKGJ1dCB0aGF0IHdvdWxkIGdldCByZWFsbHkgY29tcGxpY2F0ZWQuLi4pPworCQkJICAgYml0IDAgYW5kIDEgKGVpdGhlciBvciBib3RoIG9mIHRoZW0gPyE/ISkgYXJlIHVzZWQgdG8KKwkJCSAgIG5vdCBjbGVhciB0aWxlIChvciBtYXliZSBvbmUgb2YgdGhlIGJpdHMgaW5kaWNhdGVzIGlmIHRoZSB0aWxlIGlzCisJCQkgICBjb21wcmVzc2VkIG9yIG5vdCksIGJpdCAyIGFuZCAzIHRvIG5vdCBjbGVhciB0aWxlIDEsLi4uLC4KKwkJCSAgIFBhdHRlcm4gaXMgYXMgZm9sbG93czoKKwkJCSAgIHwgMCwxIHwgNCw1IHwgOCw5IHwxMiwxM3wxNiwxN3wyMCwyMXwyNCwyNXwyOCwyOXwKKwkJCSAgIGJpdHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkJICAgfCAyLDMgfCA2LDcgfDEwLDExfDE0LDE1fDE4LDE5fDIyLDIzfDI2LDI3fDMwLDMxfAorCQkJICAgcnYxMDA6IGNsZWFybWFzayBjb3ZlcnMgMng4IDR4MSB0aWxlcywgYnV0IG9uZSBjbGVhciBzdGlsbAorCQkJICAgY292ZXJzIDI1NiBwaXhlbHMgPyE/CisJCQkgKi8KKwkJCWNsZWFybWFzayA9IDB4MDsKKwkJfQorCisJCUJFR0lOX1JJTkcoOCk7CisJCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX0RFUFRIQ0xFQVJWQUxVRSwKKwkJCSAgICAgdGVtcFJCM0RfREVQVEhDTEVBUlZBTFVFKTsKKwkJLyogd2hhdCBvZmZzZXQgaXMgdGhpcyBleGFjdGx5ID8gKi8KKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pNQVNLT0ZGU0VULCAwKTsKKwkJLyogbmVlZCBjdGxzdGF0LCBvdGhlcndpc2UgZ2V0IHNvbWUgc3RyYW5nZSBibGFjayBmbGlja2VyaW5nICovCisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9aQ0FDSEVfQ1RMU1RBVCwKKwkJCSAgICAgUkFERU9OX1JCM0RfWkNfRkxVU0hfQUxMKTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQkJaW50IHRpbGVvZmZzZXQsIG5ydGlsZXN4LCBucnRpbGVzeSwgajsKKwkJCS8qIGl0IGxvb2tzIGxpa2UgcjIwMCBuZWVkcyBydi1zdHlsZSBjbGVhcnMsIGF0IGxlYXN0IGlmIGhpZXJ6IGlzIG5vdCBlbmFibGVkPyAqLworCQkJaWYgKChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSEFTX0hJRVJaKQorCQkJICAgICYmICEoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApKSB7CisJCQkJLyogRklYTUUgOiBmaWd1cmUgdGhpcyBvdXQgZm9yIHIyMDAgKHdoZW4gaGllcnogaXMgZW5hYmxlZCkuIE9yCisJCQkJICAgbWF5YmUgcjIwMCBhY3R1YWxseSBkb2Vzbid0IG5lZWQgdG8gcHV0IHRoZSBsb3ctcmVzIHogdmFsdWUgaW50bworCQkJCSAgIHRoZSB0aWxlIGNhY2hlIGxpa2UgcjEwMCwgYnV0IGp1c3QgbmVlZHMgdG8gY2xlYXIgdGhlIGhpLWxldmVsIHotYnVmZmVyPworCQkJCSAgIFdvcmtzIGZvciBSMTAwLCBib3RoIHdpdGggaGllcnogYW5kIHdpdGhvdXQuCisJCQkJICAgUjEwMCBzZWVtcyB0byBvcGVyYXRlIG9uIDJ4MSA4eDggdGlsZXMsIGJ1dC4uLgorCQkJCSAgIG9kZDogb2Zmc2V0L25ydGlsZXMgbmVlZCB0byBiZSA2NCBwaXggKDQgYmxvY2spIGFsaWduZWQ/IFBvdGVudGlhbGx5CisJCQkJICAgcHJvYmxlbWF0aWMgd2l0aCByZXNvbHV0aW9ucyB3aGljaCBhcmUgbm90IDY0IHBpeCBhbGlnbmVkPyAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gMykgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNjsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgICgocGJveFtpXS54MiAmIH42MykgLQorCQkJCSAgICAgKHBib3hbaV0ueDEgJiB+NjMpKSA+PiA0OworCQkJCW5ydGlsZXN5ID0KKwkJCQkgICAgKHBib3hbaV0ueTIgPj4gMykgLSAocGJveFtpXS55MSA+PiAzKTsKKwkJCQlmb3IgKGogPSAwOyBqIDw9IG5ydGlsZXN5OyBqKyspIHsKKwkJCQkJQkVHSU5fUklORyg0KTsKKwkJCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMworCQkJCQkJIChSQURFT05fM0RfQ0xFQVJfWk1BU0ssIDIpKTsKKwkJCQkJLyogZmlyc3QgdGlsZSAqLworCQkJCQlPVVRfUklORyh0aWxlb2Zmc2V0ICogOCk7CisJCQkJCS8qIHRoZSBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgKi8KKwkJCQkJT1VUX1JJTkcobnJ0aWxlc3ggKyA0KTsKKwkJCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uICovCisJCQkJCU9VVF9SSU5HKGNsZWFybWFzayk7CisJCQkJCUFEVkFOQ0VfUklORygpOworCQkJCQl0aWxlb2Zmc2V0ICs9IGRlcHRocGl4cGVybGluZSA+PiA2OworCQkJCX0KKwkJCX0gZWxzZSBpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IyMDApIHsKKwkJCQkvKiB3b3JrcyBmb3IgcnYyNTAuICovCisJCQkJLyogZmluZCBmaXJzdCBtYWNybyB0aWxlICg4eDIgNHg0IHotcGl4ZWxzIG9uIHJ2MjUwKSAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gMykgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNTsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgIChwYm94W2ldLngyID4+IDUpIC0gKHBib3hbaV0ueDEgPj4gNSk7CisJCQkJbnJ0aWxlc3kgPQorCQkJCSAgICAocGJveFtpXS55MiA+PiAzKSAtIChwYm94W2ldLnkxID4+IDMpOworCQkJCWZvciAoaiA9IDA7IGogPD0gbnJ0aWxlc3k7IGorKykgeworCQkJCQlCRUdJTl9SSU5HKDQpOworCQkJCQlPVVRfUklORyhDUF9QQUNLRVQzCisJCQkJCQkgKFJBREVPTl8zRF9DTEVBUl9aTUFTSywgMikpOworCQkJCQkvKiBmaXJzdCB0aWxlICovCisJCQkJCS8qIGp1ZGdpbmcgYnkgdGhlIGZpcnN0IHRpbGUgb2Zmc2V0IG5lZWRlZCwgY291bGQgcG9zc2libHkKKwkJCQkJICAgZGlyZWN0bHkgYWRkcmVzcy9jbGVhciA0eDQgdGlsZXMgaW5zdGVhZCBvZiA4eDIgKiA0eDQKKwkJCQkJICAgbWFjcm8gdGlsZXMsIHRob3VnaCB3b3VsZCBzdGlsbCBuZWVkIGNsZWFyIG1hc2sgZm9yCisJCQkJCSAgIHJpZ2h0L2JvdHRvbSBpZiB0cnVlbHkgNHg0IGdyYW51bGFyaXR5IGlzIGRlc2lyZWQgPyAqLworCQkJCQlPVVRfUklORyh0aWxlb2Zmc2V0ICogMTYpOworCQkJCQkvKiB0aGUgbnVtYmVyIG9mIHRpbGVzIHRvIGNsZWFyICovCisJCQkJCU9VVF9SSU5HKG5ydGlsZXN4ICsgMSk7CisJCQkJCS8qIGNsZWFyIG1hc2sgOiBjaG9vc2VzIHRoZSBjbGVhcmluZyBwYXR0ZXJuLiAqLworCQkJCQlPVVRfUklORyhjbGVhcm1hc2spOworCQkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCQkJdGlsZW9mZnNldCArPSBkZXB0aHBpeHBlcmxpbmUgPj4gNTsKKwkJCQl9CisJCQl9IGVsc2UgewkvKiBydiAxMDAgKi8KKwkJCQkvKiBydjEwMCBtaWdodCBub3QgbmVlZCA2NCBwaXggYWxpZ25tZW50LCB3aG8ga25vd3MgKi8KKwkJCQkvKiBvZmZzZXRzIGFyZSwgaG1tLCB3ZWlyZCAqLworCQkJCXRpbGVvZmZzZXQgPQorCQkJCSAgICAoKHBib3hbaV0ueTEgPj4gNCkgKiBkZXB0aHBpeHBlcmxpbmUgKworCQkJCSAgICAgcGJveFtpXS54MSkgPj4gNjsKKwkJCQlucnRpbGVzeCA9CisJCQkJICAgICgocGJveFtpXS54MiAmIH42MykgLQorCQkJCSAgICAgKHBib3hbaV0ueDEgJiB+NjMpKSA+PiA0OworCQkJCW5ydGlsZXN5ID0KKwkJCQkgICAgKHBib3hbaV0ueTIgPj4gNCkgLSAocGJveFtpXS55MSA+PiA0KTsKKwkJCQlmb3IgKGogPSAwOyBqIDw9IG5ydGlsZXN5OyBqKyspIHsKKwkJCQkJQkVHSU5fUklORyg0KTsKKwkJCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMworCQkJCQkJIChSQURFT05fM0RfQ0xFQVJfWk1BU0ssIDIpKTsKKwkJCQkJT1VUX1JJTkcodGlsZW9mZnNldCAqIDEyOCk7CisJCQkJCS8qIHRoZSBudW1iZXIgb2YgdGlsZXMgdG8gY2xlYXIgKi8KKwkJCQkJT1VUX1JJTkcobnJ0aWxlc3ggKyA0KTsKKwkJCQkJLyogY2xlYXIgbWFzayA6IGNob29zZXMgdGhlIGNsZWFyaW5nIHBhdHRlcm4uICovCisJCQkJCU9VVF9SSU5HKGNsZWFybWFzayk7CisJCQkJCUFEVkFOQ0VfUklORygpOworCQkJCQl0aWxlb2Zmc2V0ICs9IGRlcHRocGl4cGVybGluZSA+PiA2OworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8qIFRPRE8gZG9uJ3QgYWx3YXlzIGNsZWFyIGFsbCBoaS1sZXZlbCB6IHRpbGVzICovCisJCWlmICgoZGV2X3ByaXYtPmZsYWdzICYgUkFERU9OX0hBU19ISUVSWikKKwkJICAgICYmIChkZXZfcHJpdi0+bWljcm9jb2RlX3ZlcnNpb24gPT0gVUNPREVfUjIwMCkKKwkJICAgICYmIChmbGFncyAmIFJBREVPTl9VU0VfSElFUlopKQorCQkJLyogcjEwMCBhbmQgY2FyZHMgd2l0aG91dCBoaWVyYXJjaGljYWwgei1idWZmZXIgaGF2ZSBubyBoaWdoLWxldmVsIHotYnVmZmVyICovCisJCQkvKiBGSVhNRSA6IHRoZSBtYXNrIHN1cHBvc2VkbHkgY29udGFpbnMgbG93LXJlcyB6IHZhbHVlcy4gU28gY2FuJ3Qgc2V0CisJCQkgICBqdXN0IHRvIHRoZSBtYXggKDB4ZmY/IG9yIGFjdHVhbGx5IDB4M2ZmZj8pLCBuZWVkIHRvIHRha2UgeiBjbGVhcgorCQkJICAgdmFsdWUgaW50byBhY2NvdW50PyAqLworCQl7CisJCQlCRUdJTl9SSU5HKDQpOworCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fM0RfQ0xFQVJfSElaLCAyKSk7CisJCQlPVVRfUklORygweDApOwkvKiBGaXJzdCB0aWxlICovCisJCQlPVVRfUklORygweDNjYzApOworCQkJT1VUX1JJTkcoKDB4ZmYgPDwgMjIpIHwgKDB4ZmYgPDwgNikgfCAweDAwM2YwMDNmKTsKKwkJCUFEVkFOQ0VfUklORygpOworCQl9CisJfQorCisJLyogV2UgaGF2ZSB0byBjbGVhciB0aGUgZGVwdGggYW5kL29yIHN0ZW5jaWwgYnVmZmVycyBieQorCSAqIHJlbmRlcmluZyBhIHF1YWQgaW50byBqdXN0IHRob3NlIGJ1ZmZlcnMuICBUaHVzLCB3ZSBoYXZlIHRvCisJICogbWFrZSBzdXJlIHRoZSAzRCBlbmdpbmUgaXMgY29uZmlndXJlZCBjb3JyZWN0bHkuCisJICovCisJZWxzZSBpZiAoKGRldl9wcml2LT5taWNyb2NvZGVfdmVyc2lvbiA9PSBVQ09ERV9SMjAwKSAmJgorCQkoZmxhZ3MgJiAoUkFERU9OX0RFUFRIIHwgUkFERU9OX1NURU5DSUwpKSkgeworCisJCWludCB0ZW1wUFBfQ05UTDsKKwkJaW50IHRlbXBSRV9DTlRMOworCQlpbnQgdGVtcFJCM0RfQ05UTDsKKwkJaW50IHRlbXBSQjNEX1pTVEVOQ0lMQ05UTDsKKwkJaW50IHRlbXBSQjNEX1NURU5DSUxSRUZNQVNLOworCQlpbnQgdGVtcFJCM0RfUExBTkVNQVNLOworCQlpbnQgdGVtcFNFX0NOVEw7CisJCWludCB0ZW1wU0VfVlRFX0NOVEw7CisJCWludCB0ZW1wU0VfVlRYX0ZNVF8wOworCQlpbnQgdGVtcFNFX1ZUWF9GTVRfMTsKKwkJaW50IHRlbXBTRV9WQVBfQ05UTDsKKwkJaW50IHRlbXBSRV9BVVhfU0NJU1NPUl9DTlRMOworCisJCXRlbXBQUF9DTlRMID0gMDsKKwkJdGVtcFJFX0NOVEwgPSAwOworCisJCXRlbXBSQjNEX0NOVEwgPSBkZXB0aF9jbGVhci0+cmIzZF9jbnRsOworCisJCXRlbXBSQjNEX1pTVEVOQ0lMQ05UTCA9IGRlcHRoX2NsZWFyLT5yYjNkX3pzdGVuY2lsY250bDsKKwkJdGVtcFJCM0RfU1RFTkNJTFJFRk1BU0sgPSAweDA7CisKKwkJdGVtcFNFX0NOVEwgPSBkZXB0aF9jbGVhci0+c2VfY250bDsKKworCQkvKiBEaXNhYmxlIFRDTCAqLworCisJCXRlbXBTRV9WQVBfQ05UTCA9ICgJLyogU0VfVkFQX0NOVExfX0ZPUkNFX1dfVE9fT05FX01BU0sgfCAgKi8KKwkJCQkJICAoMHg5IDw8CisJCQkJCSAgIFNFX1ZBUF9DTlRMX19WRl9NQVhfVlRYX05VTV9fU0hJRlQpKTsKKworCQl0ZW1wUkIzRF9QTEFORU1BU0sgPSAweDA7CisKKwkJdGVtcFJFX0FVWF9TQ0lTU09SX0NOVEwgPSAweDA7CisKKwkJdGVtcFNFX1ZURV9DTlRMID0KKwkJICAgIFNFX1ZURV9DTlRMX19WVFhfWFlfRk1UX01BU0sgfCBTRV9WVEVfQ05UTF9fVlRYX1pfRk1UX01BU0s7CisKKwkJLyogVmVydGV4IGZvcm1hdCAoWCwgWSwgWiwgVykgKi8KKwkJdGVtcFNFX1ZUWF9GTVRfMCA9CisJCSAgICBTRV9WVFhfRk1UXzBfX1ZUWF9aMF9QUkVTRU5UX01BU0sgfAorCQkgICAgU0VfVlRYX0ZNVF8wX19WVFhfVzBfUFJFU0VOVF9NQVNLOworCQl0ZW1wU0VfVlRYX0ZNVF8xID0gMHgwOworCisJCS8qCisJCSAqIERlcHRoIGJ1ZmZlciBzcGVjaWZpYyBlbmFibGVzCisJCSAqLworCQlpZiAoZmxhZ3MgJiBSQURFT05fREVQVEgpIHsKKwkJCS8qIEVuYWJsZSBkZXB0aCBidWZmZXIgKi8KKwkJCXRlbXBSQjNEX0NOVEwgfD0gUkFERU9OX1pfRU5BQkxFOworCQl9IGVsc2UgeworCQkJLyogRGlzYWJsZSBkZXB0aCBidWZmZXIgKi8KKwkJCXRlbXBSQjNEX0NOVEwgJj0gflJBREVPTl9aX0VOQUJMRTsKKwkJfQorCisJCS8qCisJCSAqIFN0ZW5jaWwgYnVmZmVyIHNwZWNpZmljIGVuYWJsZXMKKwkJICovCisJCWlmIChmbGFncyAmIFJBREVPTl9TVEVOQ0lMKSB7CisJCQl0ZW1wUkIzRF9DTlRMIHw9IFJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKKwkJCXRlbXBSQjNEX1NURU5DSUxSRUZNQVNLID0gY2xlYXItPmRlcHRoX21hc2s7CisJCX0gZWxzZSB7CisJCQl0ZW1wUkIzRF9DTlRMICY9IH5SQURFT05fU1RFTkNJTF9FTkFCTEU7CisJCQl0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyA9IDB4MDAwMDAwMDA7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0NPTVBfWkJVRikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0NPTVBSRVNTSU9OX0VOQUJMRSB8CisJCQkgICAgUkFERU9OX1pfREVDT01QUkVTU0lPTl9FTkFCTEU7CisJCX0KKwkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0hJRVJBUkNIWV9FTkFCTEU7CisJCX0KKworCQlCRUdJTl9SSU5HKDI2KTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCisJCU9VVF9SSU5HX1JFRyhSQURFT05fUFBfQ05UTCwgdGVtcFBQX0NOVEwpOworCQlPVVRfUklOR19SRUcoUjIwMF9SRV9DTlRMLCB0ZW1wUkVfQ05UTCk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9DTlRMLCB0ZW1wUkIzRF9DTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTCwgdGVtcFJCM0RfWlNURU5DSUxDTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLAorCQkJICAgICB0ZW1wUkIzRF9TVEVOQ0lMUkVGTUFTSyk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fUkIzRF9QTEFORU1BU0ssIHRlbXBSQjNEX1BMQU5FTUFTSyk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfQ05UTCwgdGVtcFNFX0NOVEwpOworCQlPVVRfUklOR19SRUcoUjIwMF9TRV9WVEVfQ05UTCwgdGVtcFNFX1ZURV9DTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVlRYX0ZNVF8wLCB0ZW1wU0VfVlRYX0ZNVF8wKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVlRYX0ZNVF8xLCB0ZW1wU0VfVlRYX0ZNVF8xKTsKKwkJT1VUX1JJTkdfUkVHKFIyMDBfU0VfVkFQX0NOVEwsIHRlbXBTRV9WQVBfQ05UTCk7CisJCU9VVF9SSU5HX1JFRyhSMjAwX1JFX0FVWF9TQ0lTU09SX0NOVEwsIHRlbXBSRV9BVVhfU0NJU1NPUl9DTlRMKTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwkJLyogTWFrZSBzdXJlIHdlIHJlc3RvcmUgdGhlIDNEIHN0YXRlIG5leHQgdGltZS4KKwkJICovCisJCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOworCisJCWZvciAoaSA9IDA7IGkgPCBuYm94OyBpKyspIHsKKworCQkJLyogRnVubnkgdGhhdCB0aGlzIHNob3VsZCBiZSByZXF1aXJlZCAtLQorCQkJICogIHNldHMgdG9wLWxlZnQ/CisJCQkgKi8KKwkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJnNhcmVhX3ByaXYtPmJveGVzW2ldKTsKKworCQkJQkVHSU5fUklORygxNCk7CisJCQlPVVRfUklORyhDUF9QQUNLRVQzKFIyMDBfM0RfRFJBV19JTU1EXzIsIDEyKSk7CisJCQlPVVRfUklORygoUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QgfAorCQkJCSAgUkFERU9OX1BSSU1fV0FMS19SSU5HIHwKKwkJCQkgICgzIDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTFdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDNmODAwMDAwKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1gxXSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ZMl0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfREVQVEhdKTsKKwkJCU9VVF9SSU5HKDB4M2Y4MDAwMDApOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWDJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX1kyXSk7CisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9ERVBUSF0pOworCQkJT1VUX1JJTkcoMHgzZjgwMDAwMCk7CisJCQlBRFZBTkNFX1JJTkcoKTsKKwkJfQorCX0gZWxzZSBpZiAoKGZsYWdzICYgKFJBREVPTl9ERVBUSCB8IFJBREVPTl9TVEVOQ0lMKSkpIHsKKworCQlpbnQgdGVtcFJCM0RfWlNURU5DSUxDTlRMID0gZGVwdGhfY2xlYXItPnJiM2RfenN0ZW5jaWxjbnRsOworCisJCXJiM2RfY250bCA9IGRlcHRoX2NsZWFyLT5yYjNkX2NudGw7CisKKwkJaWYgKGZsYWdzICYgUkFERU9OX0RFUFRIKSB7CisJCQlyYjNkX2NudGwgfD0gUkFERU9OX1pfRU5BQkxFOworCQl9IGVsc2UgeworCQkJcmIzZF9jbnRsICY9IH5SQURFT05fWl9FTkFCTEU7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fU1RFTkNJTCkgeworCQkJcmIzZF9jbnRsIHw9IFJBREVPTl9TVEVOQ0lMX0VOQUJMRTsKKwkJCXJiM2Rfc3RlbmNpbHJlZm1hc2sgPSBjbGVhci0+ZGVwdGhfbWFzazsJLyogbWlzbmFtZWQgZmllbGQgKi8KKwkJfSBlbHNlIHsKKwkJCXJiM2RfY250bCAmPSB+UkFERU9OX1NURU5DSUxfRU5BQkxFOworCQkJcmIzZF9zdGVuY2lscmVmbWFzayA9IDB4MDAwMDAwMDA7CisJCX0KKworCQlpZiAoZmxhZ3MgJiBSQURFT05fVVNFX0NPTVBfWkJVRikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0NPTVBSRVNTSU9OX0VOQUJMRSB8CisJCQkgICAgUkFERU9OX1pfREVDT01QUkVTU0lPTl9FTkFCTEU7CisJCX0KKwkJaWYgKGZsYWdzICYgUkFERU9OX1VTRV9ISUVSWikgeworCQkJdGVtcFJCM0RfWlNURU5DSUxDTlRMIHw9IFJBREVPTl9aX0hJRVJBUkNIWV9FTkFCTEU7CisJCX0KKworCQlCRUdJTl9SSU5HKDEzKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1BQX0NOVEwsIDEpKTsKKwkJT1VUX1JJTkcoMHgwMDAwMDAwMCk7CisJCU9VVF9SSU5HKHJiM2RfY250bCk7CisKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1pTVEVOQ0lMQ05UTCwgdGVtcFJCM0RfWlNURU5DSUxDTlRMKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1NURU5DSUxSRUZNQVNLLCByYjNkX3N0ZW5jaWxyZWZtYXNrKTsKKwkJT1VUX1JJTkdfUkVHKFJBREVPTl9SQjNEX1BMQU5FTUFTSywgMHgwMDAwMDAwMCk7CisJCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfQ05UTCwgZGVwdGhfY2xlYXItPnNlX2NudGwpOworCQlBRFZBTkNFX1JJTkcoKTsKKworCQkvKiBNYWtlIHN1cmUgd2UgcmVzdG9yZSB0aGUgM0Qgc3RhdGUgbmV4dCB0aW1lLgorCQkgKi8KKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmN0eF9vd25lciA9IDA7CisKKwkJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCisJCQkvKiBGdW5ueSB0aGF0IHRoaXMgc2hvdWxkIGJlIHJlcXVpcmVkIC0tCisJCQkgKiAgc2V0cyB0b3AtbGVmdD8KKwkJCSAqLworCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOworCisJCQlCRUdJTl9SSU5HKDE1KTsKKworCQkJT1VUX1JJTkcoQ1BfUEFDS0VUMyhSQURFT05fM0RfRFJBV19JTU1ELCAxMykpOworCQkJT1VUX1JJTkcoUkFERU9OX1ZUWF9aX1BSRVNFTlQgfAorCQkJCSBSQURFT05fVlRYX1BLQ09MT1JfUFJFU0VOVCk7CisJCQlPVVRfUklORygoUkFERU9OX1BSSU1fVFlQRV9SRUNUX0xJU1QgfAorCQkJCSAgUkFERU9OX1BSSU1fV0FMS19SSU5HIHwKKwkJCQkgIFJBREVPTl9NQU9TX0VOQUJMRSB8CisJCQkJICBSQURFT05fVlRYX0ZNVF9SQURFT05fTU9ERSB8CisJCQkJICAoMyA8PCBSQURFT05fTlVNX1ZFUlRJQ0VTX1NISUZUKSkpOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTFdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMV0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlPVVRfUklORyhkZXB0aF9ib3hlc1tpXS51aVtDTEVBUl9YMl0pOworCQkJT1VUX1JJTkcoZGVwdGhfYm94ZXNbaV0udWlbQ0xFQVJfWTJdKTsKKwkJCU9VVF9SSU5HKGRlcHRoX2JveGVzW2ldLnVpW0NMRUFSX0RFUFRIXSk7CisJCQlPVVRfUklORygweDApOworCisJCQlBRFZBTkNFX1JJTkcoKTsKKwkJfQorCX0KKworCS8qIEluY3JlbWVudCB0aGUgY2xlYXIgY291bnRlci4gIFRoZSBjbGllbnQtc2lkZSAzRCBkcml2ZXIgbXVzdAorCSAqIHdhaXQgb24gdGhpcyB2YWx1ZSBiZWZvcmUgcGVyZm9ybWluZyB0aGUgY2xlYXIgaW9jdGwuICBXZQorCSAqIG5lZWQgdGhpcyBiZWNhdXNlIHRoZSBjYXJkJ3Mgc28gZGFtbmVkIGZhc3QuLi4KKwkgKi8KKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9jbGVhcisrOworCisJQkVHSU5fUklORyg0KTsKKworCVJBREVPTl9DTEVBUl9BR0UoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfY2xlYXIpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfc3dhcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWludCBuYm94ID0gc2FyZWFfcHJpdi0+bmJveDsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqcGJveCA9IHNhcmVhX3ByaXYtPmJveGVzOworCWludCBpOworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygiXG4iKTsKKworCS8qIERvIHNvbWUgdHJpdmlhbCBwZXJmb3JtYW5jZSBtb25pdG9yaW5nLi4uCisJICovCisJaWYgKGRldl9wcml2LT5kb19ib3hlcykKKwkJcmFkZW9uX2NwX3BlcmZvcm1hbmNlX2JveGVzKGRldl9wcml2KTsKKworCS8qIFdhaXQgZm9yIHRoZSAzRCBzdHJlYW0gdG8gaWRsZSBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGJpdGJsdC4KKwkgKiBUaGlzIHdpbGwgcHJldmVudCBkYXRhIGNvcnJ1cHRpb24gYmV0d2VlbiB0aGUgdHdvIHN0cmVhbXMuCisJICovCisJQkVHSU5fUklORygyKTsKKworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCisJZm9yIChpID0gMDsgaSA8IG5ib3g7IGkrKykgeworCQlpbnQgeCA9IHBib3hbaV0ueDE7CisJCWludCB5ID0gcGJveFtpXS55MTsKKwkJaW50IHcgPSBwYm94W2ldLngyIC0geDsKKwkJaW50IGggPSBwYm94W2ldLnkyIC0geTsKKworCQlEUk1fREVCVUcoIiVkLCVkLSVkLCVkXG4iLCB4LCB5LCB3LCBoKTsKKworCQlCRUdJTl9SSU5HKDkpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX0RQX0dVSV9NQVNURVJfQ05UTCwgMCkpOworCQlPVVRfUklORyhSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCB8CisJCQkgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAorCQkJIFJBREVPTl9HTUNfQlJVU0hfTk9ORSB8CisJCQkgKGRldl9wcml2LT5jb2xvcl9mbXQgPDwgOCkgfAorCQkJIFJBREVPTl9HTUNfU1JDX0RBVEFUWVBFX0NPTE9SIHwKKwkJCSBSQURFT05fUk9QM19TIHwKKwkJCSBSQURFT05fRFBfU1JDX1NPVVJDRV9NRU1PUlkgfAorCQkJIFJBREVPTl9HTUNfQ0xSX0NNUF9DTlRMX0RJUyB8IFJBREVPTl9HTUNfV1JfTVNLX0RJUyk7CisKKwkJLyogTWFrZSB0aGlzIHdvcmsgZXZlbiBpZiBmcm9udCAmIGJhY2sgYXJlIGZsaXBwZWQ6CisJCSAqLworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TUkNfUElUQ0hfT0ZGU0VULCAxKSk7CisJCWlmIChkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9PSAwKSB7CisJCQlPVVRfUklORyhkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQpOworCQkJT1VUX1JJTkcoZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCk7CisJCX0gZWxzZSB7CisJCQlPVVRfUklORyhkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0KTsKKwkJCU9VVF9SSU5HKGRldl9wcml2LT5iYWNrX3BpdGNoX29mZnNldCk7CisJCX0KKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TUkNfWF9ZLCAyKSk7CisJCU9VVF9SSU5HKCh4IDw8IDE2KSB8IHkpOworCQlPVVRfUklORygoeCA8PCAxNikgfCB5KTsKKwkJT1VUX1JJTkcoKHcgPDwgMTYpIHwgaCk7CisKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorCisJLyogSW5jcmVtZW50IHRoZSBmcmFtZSBjb3VudGVyLiAgVGhlIGNsaWVudC1zaWRlIDNEIGRyaXZlciBtdXN0CisJICogdGhyb3R0bGUgdGhlIGZyYW1lcmF0ZSBieSB3YWl0aW5nIGZvciB0aGlzIHZhbHVlIGJlZm9yZQorCSAqIHBlcmZvcm1pbmcgdGhlIHN3YXBidWZmZXIgaW9jdGwuCisJICovCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUrKzsKKworCUJFR0lOX1JJTkcoNCk7CisKKwlSQURFT05fRlJBTUVfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKwlSQURFT05fV0FJVF9VTlRJTF8yRF9JRExFKCk7CisKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3NhcmVhICpzYXJlYSA9IChzdHJ1Y3QgZHJtX3NhcmVhICopIGRldl9wcml2LT5zYXJlYS0+aGFuZGxlOworCWludCBvZmZzZXQgPSAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPT0gMSkKKwkgICAgPyBkZXZfcHJpdi0+ZnJvbnRfb2Zmc2V0IDogZGV2X3ByaXYtPmJhY2tfb2Zmc2V0OworCVJJTkdfTE9DQUxTOworCURSTV9ERUJVRygicGZDdXJyZW50UGFnZT0lZFxuIiwKKwkJICBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSk7CisKKwkvKiBEbyBzb21lIHRyaXZpYWwgcGVyZm9ybWFuY2UgbW9uaXRvcmluZy4uLgorCSAqLworCWlmIChkZXZfcHJpdi0+ZG9fYm94ZXMpIHsKKwkJZGV2X3ByaXYtPnN0YXRzLmJveGVzIHw9IFJBREVPTl9CT1hfRkxJUDsKKwkJcmFkZW9uX2NwX3BlcmZvcm1hbmNlX2JveGVzKGRldl9wcml2KTsKKwl9CisKKwkvKiBVcGRhdGUgdGhlIGZyYW1lIG9mZnNldHMgZm9yIGJvdGggQ1JUQ3MKKwkgKi8KKwlCRUdJTl9SSU5HKDYpOworCisJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOworCU9VVF9SSU5HX1JFRyhSQURFT05fQ1JUQ19PRkZTRVQsCisJCSAgICAgKChzYXJlYS0+ZnJhbWUueSAqIGRldl9wcml2LT5mcm9udF9waXRjaCArCisJCSAgICAgICBzYXJlYS0+ZnJhbWUueCAqIChkZXZfcHJpdi0+Y29sb3JfZm10IC0gMikpICYgfjcpCisJCSAgICAgKyBvZmZzZXQpOworCU9VVF9SSU5HX1JFRyhSQURFT05fQ1JUQzJfT0ZGU0VULCBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+Y3J0YzJfYmFzZQorCQkgICAgICsgb2Zmc2V0KTsKKworCUFEVkFOQ0VfUklORygpOworCisJLyogSW5jcmVtZW50IHRoZSBmcmFtZSBjb3VudGVyLiAgVGhlIGNsaWVudC1zaWRlIDNEIGRyaXZlciBtdXN0CisJICogdGhyb3R0bGUgdGhlIGZyYW1lcmF0ZSBieSB3YWl0aW5nIGZvciB0aGlzIHZhbHVlIGJlZm9yZQorCSAqIHBlcmZvcm1pbmcgdGhlIHN3YXBidWZmZXIgaW9jdGwuCisJICovCisJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPmxhc3RfZnJhbWUrKzsKKwlkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZSA9CisJCTEgLSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+cGZDdXJyZW50UGFnZTsKKworCUJFR0lOX1JJTkcoMik7CisKKwlSQURFT05fRlJBTUVfQUdFKGRldl9wcml2LT5zYXJlYV9wcml2LT5sYXN0X2ZyYW1lKTsKKworCUFEVkFOQ0VfUklORygpOworfQorCitzdGF0aWMgaW50IGJhZF9wcmltX3ZlcnRleF9ucihpbnQgcHJpbWl0aXZlLCBpbnQgbnIpCit7CisJc3dpdGNoIChwcmltaXRpdmUgJiBSQURFT05fUFJJTV9UWVBFX01BU0spIHsKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfTk9ORToKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfUE9JTlQ6CisJCXJldHVybiBuciA8IDE7CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX0xJTkU6CisJCXJldHVybiAobnIgJiAxKSB8fCBuciA9PSAwOworCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9MSU5FX1NUUklQOgorCQlyZXR1cm4gbnIgPCAyOworCWNhc2UgUkFERU9OX1BSSU1fVFlQRV9UUklfTElTVDoKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfM1ZSVF9QT0lOVF9MSVNUOgorCWNhc2UgUkFERU9OX1BSSU1fVFlQRV8zVlJUX0xJTkVfTElTVDoKKwljYXNlIFJBREVPTl9QUklNX1RZUEVfUkVDVF9MSVNUOgorCQlyZXR1cm4gbnIgJSAzIHx8IG5yID09IDA7CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX1RSSV9GQU46CisJY2FzZSBSQURFT05fUFJJTV9UWVBFX1RSSV9TVFJJUDoKKwkJcmV0dXJuIG5yIDwgMzsKKwlkZWZhdWx0OgorCQlyZXR1cm4gMTsKKwl9Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgc3RhcnQ7CisJdW5zaWduZWQgaW50IGZpbmlzaDsKKwl1bnNpZ25lZCBpbnQgcHJpbTsKKwl1bnNpZ25lZCBpbnQgbnVtdmVydHM7CisJdW5zaWduZWQgaW50IG9mZnNldDsKKwl1bnNpZ25lZCBpbnQgdmNfZm9ybWF0OworfSBkcm1fcmFkZW9uX3RjbF9wcmltX3Q7CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF92ZXJ0ZXgoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgc3RydWN0IGRybV9idWYgKiBidWYsCisJCQkJICAgICAgZHJtX3JhZGVvbl90Y2xfcHJpbV90ICogcHJpbSkKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc2FyZWFfdCAqc2FyZWFfcHJpdiA9IGRldl9wcml2LT5zYXJlYV9wcml2OworCWludCBvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIGJ1Zi0+b2Zmc2V0ICsgcHJpbS0+c3RhcnQ7CisJaW50IG51bXZlcnRzID0gKGludClwcmltLT5udW12ZXJ0czsKKwlpbnQgbmJveCA9IHNhcmVhX3ByaXYtPm5ib3g7CisJaW50IGkgPSAwOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJod3ByaW0gMHgleCB2Zm10IDB4JXggJWQuLiVkICVkIHZlcnRzXG4iLAorCQkgIHByaW0tPnByaW0sCisJCSAgcHJpbS0+dmNfZm9ybWF0LCBwcmltLT5zdGFydCwgcHJpbS0+ZmluaXNoLCBwcmltLT5udW12ZXJ0cyk7CisKKwlpZiAoYmFkX3ByaW1fdmVydGV4X25yKHByaW0tPnByaW0sIHByaW0tPm51bXZlcnRzKSkgeworCQlEUk1fRVJST1IoImJhZCBwcmltICV4IG51bXZlcnRzICVkXG4iLAorCQkJICBwcmltLT5wcmltLCBwcmltLT5udW12ZXJ0cyk7CisJCXJldHVybjsKKwl9CisKKwlkbyB7CisJCS8qIEVtaXQgdGhlIG5leHQgY2xpcHJlY3QgKi8KKwkJaWYgKGkgPCBuYm94KSB7CisJCQlyYWRlb25fZW1pdF9jbGlwX3JlY3QoZGV2X3ByaXYsICZzYXJlYV9wcml2LT5ib3hlc1tpXSk7CisJCX0KKworCQkvKiBFbWl0IHRoZSB2ZXJ0ZXggYnVmZmVyIHJlbmRlcmluZyBjb21tYW5kcyAqLworCQlCRUdJTl9SSU5HKDUpOworCisJCU9VVF9SSU5HKENQX1BBQ0tFVDMoUkFERU9OXzNEX1JORFJfR0VOX0lORFhfUFJJTSwgMykpOworCQlPVVRfUklORyhvZmZzZXQpOworCQlPVVRfUklORyhudW12ZXJ0cyk7CisJCU9VVF9SSU5HKHByaW0tPnZjX2Zvcm1hdCk7CisJCU9VVF9SSU5HKHByaW0tPnByaW0gfCBSQURFT05fUFJJTV9XQUxLX0xJU1QgfAorCQkJIFJBREVPTl9DT0xPUl9PUkRFUl9SR0JBIHwKKwkJCSBSQURFT05fVlRYX0ZNVF9SQURFT05fTU9ERSB8CisJCQkgKG51bXZlcnRzIDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKworCQlBRFZBTkNFX1JJTkcoKTsKKworCQlpKys7CisJfSB3aGlsZSAoaSA8IG5ib3gpOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsIHN0cnVjdCBkcm1fYnVmICogYnVmKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9idWZfcHJpdl90ICpidWZfcHJpdiA9IGJ1Zi0+ZGV2X3ByaXZhdGU7CisJUklOR19MT0NBTFM7CisKKwlidWZfcHJpdi0+YWdlID0gKytkZXZfcHJpdi0+c2FyZWFfcHJpdi0+bGFzdF9kaXNwYXRjaDsKKworCS8qIEVtaXQgdGhlIHZlcnRleCBidWZmZXIgYWdlICovCisJQkVHSU5fUklORygyKTsKKwlSQURFT05fRElTUEFUQ0hfQUdFKGJ1Zl9wcml2LT5hZ2UpOworCUFEVkFOQ0VfUklORygpOworCisJYnVmLT5wZW5kaW5nID0gMTsKKwlidWYtPnVzZWQgPSAwOworfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfaW5kaXJlY3Qoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJCXN0cnVjdCBkcm1fYnVmICogYnVmLCBpbnQgc3RhcnQsIGludCBlbmQpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlSSU5HX0xPQ0FMUzsKKwlEUk1fREVCVUcoImJ1Zj0lZCBzPTB4JXggZT0weCV4XG4iLCBidWYtPmlkeCwgc3RhcnQsIGVuZCk7CisKKwlpZiAoc3RhcnQgIT0gZW5kKSB7CisJCWludCBvZmZzZXQgPSAoZGV2X3ByaXYtPmdhcnRfYnVmZmVyc19vZmZzZXQKKwkJCSAgICAgICsgYnVmLT5vZmZzZXQgKyBzdGFydCk7CisJCWludCBkd29yZHMgPSAoZW5kIC0gc3RhcnQgKyAzKSAvIHNpemVvZih1MzIpOworCisJCS8qIEluZGlyZWN0IGJ1ZmZlciBkYXRhIG11c3QgYmUgYW4gZXZlbiBudW1iZXIgb2YKKwkJICogZHdvcmRzLCBzbyBpZiB3ZSd2ZSBiZWVuIGdpdmVuIGFuIG9kZCBudW1iZXIgd2UgbXVzdAorCQkgKiBwYWQgdGhlIGRhdGEgd2l0aCBhIFR5cGUtMiBDUCBwYWNrZXQuCisJCSAqLworCQlpZiAoZHdvcmRzICYgMSkgeworCQkJdTMyICpkYXRhID0gKHUzMiAqKQorCQkJICAgICgoY2hhciAqKWRldi0+YWdwX2J1ZmZlcl9tYXAtPmhhbmRsZQorCQkJICAgICArIGJ1Zi0+b2Zmc2V0ICsgc3RhcnQpOworCQkJZGF0YVtkd29yZHMrK10gPSBSQURFT05fQ1BfUEFDS0VUMjsKKwkJfQorCisJCS8qIEZpcmUgb2ZmIHRoZSBpbmRpcmVjdCBidWZmZXIgKi8KKwkJQkVHSU5fUklORygzKTsKKworCQlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUF9JQl9CQVNFLCAxKSk7CisJCU9VVF9SSU5HKG9mZnNldCk7CisJCU9VVF9SSU5HKGR3b3Jkcyk7CisKKwkJQURWQU5DRV9SSU5HKCk7CisJfQorfQorCitzdGF0aWMgdm9pZCByYWRlb25fY3BfZGlzcGF0Y2hfaW5kaWNlcyhzdHJ1Y3QgZHJtX2RldmljZSAqIGRldiwKKwkJCQkgICAgICAgc3RydWN0IGRybV9idWYgKiBlbHRfYnVmLAorCQkJCSAgICAgICBkcm1fcmFkZW9uX3RjbF9wcmltX3QgKiBwcmltKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJaW50IG9mZnNldCA9IGRldl9wcml2LT5nYXJ0X2J1ZmZlcnNfb2Zmc2V0ICsgcHJpbS0+b2Zmc2V0OworCXUzMiAqZGF0YTsKKwlpbnQgZHdvcmRzOworCWludCBpID0gMDsKKwlpbnQgc3RhcnQgPSBwcmltLT5zdGFydCArIFJBREVPTl9JTkRFWF9QUklNX09GRlNFVDsKKwlpbnQgY291bnQgPSAocHJpbS0+ZmluaXNoIC0gc3RhcnQpIC8gc2l6ZW9mKHUxNik7CisJaW50IG5ib3ggPSBzYXJlYV9wcml2LT5uYm94OworCisJRFJNX0RFQlVHKCJod3ByaW0gMHgleCB2Zm10IDB4JXggJWQuLiVkIG9mZnNldDogJXggbnIgJWRcbiIsCisJCSAgcHJpbS0+cHJpbSwKKwkJICBwcmltLT52Y19mb3JtYXQsCisJCSAgcHJpbS0+c3RhcnQsIHByaW0tPmZpbmlzaCwgcHJpbS0+b2Zmc2V0LCBwcmltLT5udW12ZXJ0cyk7CisKKwlpZiAoYmFkX3ByaW1fdmVydGV4X25yKHByaW0tPnByaW0sIGNvdW50KSkgeworCQlEUk1fRVJST1IoImJhZCBwcmltICV4IGNvdW50ICVkXG4iLCBwcmltLT5wcmltLCBjb3VudCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoc3RhcnQgPj0gcHJpbS0+ZmluaXNoIHx8IChwcmltLT5zdGFydCAmIDB4NykpIHsKKwkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgcHJpbS0+cHJpbSk7CisJCXJldHVybjsKKwl9CisKKwlkd29yZHMgPSAocHJpbS0+ZmluaXNoIC0gcHJpbS0+c3RhcnQgKyAzKSAvIHNpemVvZih1MzIpOworCisJZGF0YSA9ICh1MzIgKikgKChjaGFyICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICsKKwkJCWVsdF9idWYtPm9mZnNldCArIHByaW0tPnN0YXJ0KTsKKworCWRhdGFbMF0gPSBDUF9QQUNLRVQzKFJBREVPTl8zRF9STkRSX0dFTl9JTkRYX1BSSU0sIGR3b3JkcyAtIDIpOworCWRhdGFbMV0gPSBvZmZzZXQ7CisJZGF0YVsyXSA9IHByaW0tPm51bXZlcnRzOworCWRhdGFbM10gPSBwcmltLT52Y19mb3JtYXQ7CisJZGF0YVs0XSA9IChwcmltLT5wcmltIHwKKwkJICAgUkFERU9OX1BSSU1fV0FMS19JTkQgfAorCQkgICBSQURFT05fQ09MT1JfT1JERVJfUkdCQSB8CisJCSAgIFJBREVPTl9WVFhfRk1UX1JBREVPTl9NT0RFIHwKKwkJICAgKGNvdW50IDw8IFJBREVPTl9OVU1fVkVSVElDRVNfU0hJRlQpKTsKKworCWRvIHsKKwkJaWYgKGkgPCBuYm94KQorCQkJcmFkZW9uX2VtaXRfY2xpcF9yZWN0KGRldl9wcml2LCAmc2FyZWFfcHJpdi0+Ym94ZXNbaV0pOworCisJCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChkZXYsIGVsdF9idWYsCisJCQkJCSAgICBwcmltLT5zdGFydCwgcHJpbS0+ZmluaXNoKTsKKworCQlpKys7CisJfSB3aGlsZSAoaSA8IG5ib3gpOworCit9CisKKyNkZWZpbmUgUkFERU9OX01BWF9URVhUVVJFX1NJWkUgUkFERU9OX0JVRkZFUl9TSVpFCisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2Rpc3BhdGNoX3RleHR1cmUoc3RydWN0IGRybV9kZXZpY2UgKiBkZXYsCisJCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQkJICAgICAgZHJtX3JhZGVvbl90ZXh0dXJlX3QgKiB0ZXgsCisJCQkJICAgICAgZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCAqIGltYWdlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9idWYgKmJ1ZjsKKwl1MzIgZm9ybWF0OworCXUzMiAqYnVmZmVyOworCWNvbnN0IHU4IF9fdXNlciAqZGF0YTsKKwlpbnQgc2l6ZSwgZHdvcmRzLCB0ZXhfd2lkdGgsIGJsaXRfd2lkdGgsIHNwaXRjaDsKKwl1MzIgaGVpZ2h0OworCWludCBpOworCXUzMiB0ZXhwaXRjaCwgbWljcm90aWxlOworCXUzMiBvZmZzZXQsIGJ5dGVfb2Zmc2V0OworCVJJTkdfTE9DQUxTOworCisJaWYgKHJhZGVvbl9jaGVja19hbmRfZml4dXBfb2Zmc2V0KGRldl9wcml2LCBmaWxlX3ByaXYsICZ0ZXgtPm9mZnNldCkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGRlc3RpbmF0aW9uIG9mZnNldFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldl9wcml2LT5zdGF0cy5ib3hlcyB8PSBSQURFT05fQk9YX1RFWFRVUkVfTE9BRDsKKworCS8qIEZsdXNoIHRoZSBwaXhlbCBjYWNoZS4gIFRoaXMgZW5zdXJlcyBubyBwaXhlbCBkYXRhIGdldHMgbWl4ZWQKKwkgKiB1cCB3aXRoIHRoZSB0ZXh0dXJlIGRhdGEgZnJvbSB0aGUgaG9zdCBkYXRhIGJsaXQsIG90aGVyd2lzZQorCSAqIHBhcnQgb2YgdGhlIHRleHR1cmUgaW1hZ2UgbWF5IGJlIGNvcnJ1cHRlZC4KKwkgKi8KKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9GTFVTSF9DQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMX0lETEUoKTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCS8qIFRoZSBjb21waWxlciB3b24ndCBvcHRpbWl6ZSBhd2F5IGEgZGl2aXNpb24gYnkgYSB2YXJpYWJsZSwKKwkgKiBldmVuIGlmIHRoZSBvbmx5IGxlZ2FsIHZhbHVlcyBhcmUgcG93ZXJzIG9mIHR3by4gIFRodXMsIHdlJ2xsCisJICogdXNlIGEgc2hpZnQgaW5zdGVhZC4KKwkgKi8KKwlzd2l0Y2ggKHRleC0+Zm9ybWF0KSB7CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjg4ODg6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfUkdCQTg4ODg6CisJCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQVJHQjg4ODg7CisJCXRleF93aWR0aCA9IHRleC0+d2lkdGggKiA0OworCQlibGl0X3dpZHRoID0gaW1hZ2UtPndpZHRoICogNDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQUk4ODoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9BUkdCMTU1NToKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0I1NjU6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfQVJHQjQ0NDQ6CisJY2FzZSBSQURFT05fVFhGT1JNQVRfVllVWTQyMjoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9ZVllVNDIyOgorCQlmb3JtYXQgPSBSQURFT05fQ09MT1JfRk9STUFUX1JHQjU2NTsKKwkJdGV4X3dpZHRoID0gdGV4LT53aWR0aCAqIDI7CisJCWJsaXRfd2lkdGggPSBpbWFnZS0+d2lkdGggKiAyOworCQlicmVhazsKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9JODoKKwljYXNlIFJBREVPTl9UWEZPUk1BVF9SR0IzMzI6CisJCWZvcm1hdCA9IFJBREVPTl9DT0xPUl9GT1JNQVRfQ0k4OworCQl0ZXhfd2lkdGggPSB0ZXgtPndpZHRoICogMTsKKwkJYmxpdF93aWR0aCA9IGltYWdlLT53aWR0aCAqIDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9FUlJPUigiaW52YWxpZCB0ZXh0dXJlIGZvcm1hdCAlZFxuIiwgdGV4LT5mb3JtYXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJc3BpdGNoID0gYmxpdF93aWR0aCA+PiA2OworCWlmIChzcGl0Y2ggPT0gMCAmJiBpbWFnZS0+aGVpZ2h0ID4gMSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwl0ZXhwaXRjaCA9IHRleC0+cGl0Y2g7CisJaWYgKCh0ZXhwaXRjaCA8PCAyMikgJiBSQURFT05fRFNUX1RJTEVfTUlDUk8pIHsKKwkJbWljcm90aWxlID0gMTsKKwkJaWYgKHRleF93aWR0aCA8IDY0KSB7CisJCQl0ZXhwaXRjaCAmPSB+KFJBREVPTl9EU1RfVElMRV9NSUNSTyA+PiAyMik7CisJCQkvKiB3ZSBnb3QgdGlsZWQgY29vcmRpbmF0ZXMsIHVudGlsZSB0aGVtICovCisJCQlpbWFnZS0+eCAqPSAyOworCQl9CisJfSBlbHNlCisJCW1pY3JvdGlsZSA9IDA7CisKKwkvKiB0aGlzIG1pZ2h0IGZhaWwgZm9yIHplcm8tc2l6ZWQgdXBsb2FkcyAtIGFyZSB0aG9zZSBpbGxlZ2FsPyAqLworCWlmICghcmFkZW9uX2NoZWNrX29mZnNldChkZXZfcHJpdiwgdGV4LT5vZmZzZXQgKyBpbWFnZS0+aGVpZ2h0ICoKKwkJCQlibGl0X3dpZHRoIC0gMSkpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIGZpbmFsIGRlc3RpbmF0aW9uIG9mZnNldFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCURSTV9ERUJVRygidGV4PSVkeCVkIGJsaXQ9JWRcbiIsIHRleF93aWR0aCwgdGV4LT5oZWlnaHQsIGJsaXRfd2lkdGgpOworCisJZG8geworCQlEUk1fREVCVUcoInRleDogb2ZzPTB4JXggcD0lZCBmPSVkIHg9JWhkIHk9JWhkIHc9JWhkIGg9JWhkXG4iLAorCQkJICB0ZXgtPm9mZnNldCA+PiAxMCwgdGV4LT5waXRjaCwgdGV4LT5mb3JtYXQsCisJCQkgIGltYWdlLT54LCBpbWFnZS0+eSwgaW1hZ2UtPndpZHRoLCBpbWFnZS0+aGVpZ2h0KTsKKworCQkvKiBNYWtlIGEgY29weSBvZiBzb21lIHBhcmFtZXRlcnMgaW4gY2FzZSB3ZSBoYXZlIHRvCisJCSAqIHVwZGF0ZSB0aGVtIGZvciBhIG11bHRpLXBhc3MgdGV4dHVyZSBibGl0LgorCQkgKi8KKwkJaGVpZ2h0ID0gaW1hZ2UtPmhlaWdodDsKKwkJZGF0YSA9IChjb25zdCB1OCBfX3VzZXIgKilpbWFnZS0+ZGF0YTsKKworCQlzaXplID0gaGVpZ2h0ICogYmxpdF93aWR0aDsKKworCQlpZiAoc2l6ZSA+IFJBREVPTl9NQVhfVEVYVFVSRV9TSVpFKSB7CisJCQloZWlnaHQgPSBSQURFT05fTUFYX1RFWFRVUkVfU0laRSAvIGJsaXRfd2lkdGg7CisJCQlzaXplID0gaGVpZ2h0ICogYmxpdF93aWR0aDsKKwkJfSBlbHNlIGlmIChzaXplIDwgNCAmJiBzaXplID4gMCkgeworCQkJc2l6ZSA9IDQ7CisJCX0gZWxzZSBpZiAoc2l6ZSA9PSAwKSB7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWJ1ZiA9IHJhZGVvbl9mcmVlbGlzdF9nZXQoZGV2KTsKKwkJaWYgKDAgJiYgIWJ1ZikgeworCQkJcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworCQkJYnVmID0gcmFkZW9uX2ZyZWVsaXN0X2dldChkZXYpOworCQl9CisJCWlmICghYnVmKSB7CisJCQlEUk1fREVCVUcoIkVBR0FJTlxuIik7CisJCQlpZiAoRFJNX0NPUFlfVE9fVVNFUih0ZXgtPmltYWdlLCBpbWFnZSwgc2l6ZW9mKCppbWFnZSkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJcmV0dXJuIC1FQUdBSU47CisJCX0KKworCQkvKiBEaXNwYXRjaCB0aGUgaW5kaXJlY3QgYnVmZmVyLgorCQkgKi8KKwkJYnVmZmVyID0KKwkJICAgICh1MzIgKikgKChjaGFyICopZGV2LT5hZ3BfYnVmZmVyX21hcC0+aGFuZGxlICsgYnVmLT5vZmZzZXQpOworCQlkd29yZHMgPSBzaXplIC8gNDsKKworI2RlZmluZSBSQURFT05fQ09QWV9NVChfYnVmLCBfZGF0YSwgX3dpZHRoKSBcCisJZG8geyBcCisJCWlmIChEUk1fQ09QWV9GUk9NX1VTRVIoX2J1ZiwgX2RhdGEsIChfd2lkdGgpKSkge1wKKwkJCURSTV9FUlJPUigiRUZBVUxUIG9uIHBhZCwgJWQgYnl0ZXNcbiIsIChfd2lkdGgpKTsgXAorCQkJcmV0dXJuIC1FRkFVTFQ7IFwKKwkJfSBcCisJfSB3aGlsZSgwKQorCisJCWlmIChtaWNyb3RpbGUpIHsKKwkJCS8qIHRleHR1cmUgbWljcm8gdGlsaW5nIGluIHVzZSwgbWluaW11bSB0ZXh0dXJlIHdpZHRoIGlzIHRodXMgMTYgYnl0ZXMuCisJCQkgICBob3dldmVyLCB3ZSBjYW5ub3QgdXNlIGJsaXR0ZXIgZGlyZWN0bHkgZm9yIHRleHR1cmUgd2lkdGggPCA2NCBieXRlcywKKwkJCSAgIHNpbmNlIG1pbmltdW0gdGV4IHBpdGNoIGlzIDY0IGJ5dGVzIGFuZCB3ZSBuZWVkIHRoaXMgdG8gbWF0Y2gKKwkJCSAgIHRoZSB0ZXh0dXJlIHdpZHRoLCBvdGhlcndpc2UgdGhlIGJsaXR0ZXIgd2lsbCB0aWxlIGl0IHdyb25nLgorCQkJICAgVGh1cywgdGlsaW5nIG1hbnVhbGx5IGluIHRoaXMgY2FzZS4gQWRkaXRpb25hbGx5LCBuZWVkIHRvIHNwZWNpYWwKKwkJCSAgIGNhc2UgdGV4IGhlaWdodCA9IDEsIHNpbmNlIG91ciBhY3R1YWwgaW1hZ2Ugd2lsbCBoYXZlIGhlaWdodCAyCisJCQkgICBhbmQgd2UgbmVlZCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVhZCBiZXlvbmQgdGhlIHRleHR1cmUgc2l6ZQorCQkJICAgZnJvbSB1c2VyIHNwYWNlLiAqLworCQkJaWYgKHRleC0+aGVpZ2h0ID09IDEpIHsKKwkJCQlpZiAodGV4X3dpZHRoID49IDY0IHx8IHRleF93aWR0aCA8PSAxNikgeworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsCisJCQkJCQkoaW50KSh0ZXhfd2lkdGggKiBzaXplb2YodTMyKSkpOworCQkJCX0gZWxzZSBpZiAodGV4X3dpZHRoID09IDMyKSB7CisJCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwgMTYpOworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyA4LAorCQkJCQkJICAgICAgIGRhdGEgKyAxNiwgMTYpOworCQkJCX0KKwkJCX0gZWxzZSBpZiAodGV4X3dpZHRoID49IDY0IHx8IHRleF93aWR0aCA9PSAxNikgeworCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwKKwkJCQkJICAgICAgIChpbnQpKGR3b3JkcyAqIHNpemVvZih1MzIpKSk7CisJCQl9IGVsc2UgaWYgKHRleF93aWR0aCA8IDE2KSB7CisJCQkJZm9yIChpID0gMDsgaSA8IHRleC0+aGVpZ2h0OyBpKyspIHsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCB0ZXhfd2lkdGgpOworCQkJCQlidWZmZXIgKz0gNDsKKwkJCQkJZGF0YSArPSB0ZXhfd2lkdGg7CisJCQkJfQorCQkJfSBlbHNlIGlmICh0ZXhfd2lkdGggPT0gMzIpIHsKKwkJCQkvKiBUT0RPOiBtYWtlIHN1cmUgdGhpcyB3b3JrcyB3aGVuIG5vdCBmaXR0aW5nIGluIG9uZSBidWZmZXIKKwkJCQkgICAoaS5lLiAzMmJ5dGVzIHggMjA0OC4uLikgKi8KKwkJCQlmb3IgKGkgPSAwOyBpIDwgdGV4LT5oZWlnaHQ7IGkgKz0gMikgeworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIsIGRhdGEsIDE2KTsKKwkJCQkJZGF0YSArPSAxNjsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyICsgOCwgZGF0YSwgMTYpOworCQkJCQlkYXRhICs9IDE2OworCQkJCQlSQURFT05fQ09QWV9NVChidWZmZXIgKyA0LCBkYXRhLCAxNik7CisJCQkJCWRhdGEgKz0gMTY7CisJCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciArIDEyLCBkYXRhLCAxNik7CisJCQkJCWRhdGEgKz0gMTY7CisJCQkJCWJ1ZmZlciArPSAxNjsKKwkJCQl9CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAodGV4X3dpZHRoID49IDMyKSB7CisJCQkJLyogVGV4dHVyZSBpbWFnZSB3aWR0aCBpcyBsYXJnZXIgdGhhbiB0aGUgbWluaW11bSwgc28gd2UKKwkJCQkgKiBjYW4gdXBsb2FkIGl0IGRpcmVjdGx5LgorCQkJCSAqLworCQkJCVJBREVPTl9DT1BZX01UKGJ1ZmZlciwgZGF0YSwKKwkJCQkJICAgICAgIChpbnQpKGR3b3JkcyAqIHNpemVvZih1MzIpKSk7CisJCQl9IGVsc2UgeworCQkJCS8qIFRleHR1cmUgaW1hZ2Ugd2lkdGggaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtLCBzbyB3ZQorCQkJCSAqIG5lZWQgdG8gcGFkIG91dCBlYWNoIGltYWdlIHNjYW5saW5lIHRvIHRoZSBtaW5pbXVtCisJCQkJICogd2lkdGguCisJCQkJICovCisJCQkJZm9yIChpID0gMDsgaSA8IHRleC0+aGVpZ2h0OyBpKyspIHsKKwkJCQkJUkFERU9OX0NPUFlfTVQoYnVmZmVyLCBkYXRhLCB0ZXhfd2lkdGgpOworCQkJCQlidWZmZXIgKz0gODsKKwkJCQkJZGF0YSArPSB0ZXhfd2lkdGg7CisJCQkJfQorCQkJfQorCQl9CisKKyN1bmRlZiBSQURFT05fQ09QWV9NVAorCQlieXRlX29mZnNldCA9IChpbWFnZS0+eSAmIH4yMDQ3KSAqIGJsaXRfd2lkdGg7CisJCWJ1Zi0+ZmlsZV9wcml2ID0gZmlsZV9wcml2OworCQlidWYtPnVzZWQgPSBzaXplOworCQlvZmZzZXQgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldCArIGJ1Zi0+b2Zmc2V0OworCQlCRUdJTl9SSU5HKDkpOworCQlPVVRfUklORyhDUF9QQUNLRVQzKFJBREVPTl9DTlRMX0JJVEJMVF9NVUxUSSwgNSkpOworCQlPVVRfUklORyhSQURFT05fR01DX1NSQ19QSVRDSF9PRkZTRVRfQ05UTCB8CisJCQkgUkFERU9OX0dNQ19EU1RfUElUQ0hfT0ZGU0VUX0NOVEwgfAorCQkJIFJBREVPTl9HTUNfQlJVU0hfTk9ORSB8CisJCQkgKGZvcm1hdCA8PCA4KSB8CisJCQkgUkFERU9OX0dNQ19TUkNfREFUQVRZUEVfQ09MT1IgfAorCQkJIFJBREVPTl9ST1AzX1MgfAorCQkJIFJBREVPTl9EUF9TUkNfU09VUkNFX01FTU9SWSB8CisJCQkgUkFERU9OX0dNQ19DTFJfQ01QX0NOVExfRElTIHwgUkFERU9OX0dNQ19XUl9NU0tfRElTKTsKKwkJT1VUX1JJTkcoKHNwaXRjaCA8PCAyMikgfCAob2Zmc2V0ID4+IDEwKSk7CisJCU9VVF9SSU5HKCh0ZXhwaXRjaCA8PCAyMikgfCAoKHRleC0+b2Zmc2V0ID4+IDEwKSArIChieXRlX29mZnNldCA+PiAxMCkpKTsKKwkJT1VUX1JJTkcoMCk7CisJCU9VVF9SSU5HKChpbWFnZS0+eCA8PCAxNikgfCAoaW1hZ2UtPnkgJSAyMDQ4KSk7CisJCU9VVF9SSU5HKChpbWFnZS0+d2lkdGggPDwgMTYpIHwgaGVpZ2h0KTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJQ09NTUlUX1JJTkcoKTsKKworCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCisJCS8qIFVwZGF0ZSB0aGUgaW5wdXQgcGFyYW1ldGVycyBmb3IgbmV4dCB0aW1lICovCisJCWltYWdlLT55ICs9IGhlaWdodDsKKwkJaW1hZ2UtPmhlaWdodCAtPSBoZWlnaHQ7CisJCWltYWdlLT5kYXRhID0gKGNvbnN0IHU4IF9fdXNlciAqKWltYWdlLT5kYXRhICsgc2l6ZTsKKwl9IHdoaWxlIChpbWFnZS0+aGVpZ2h0ID4gMCk7CisKKwkvKiBGbHVzaCB0aGUgcGl4ZWwgY2FjaGUgYWZ0ZXIgdGhlIGJsaXQgY29tcGxldGVzLiAgVGhpcyBlbnN1cmVzCisJICogdGhlIHRleHR1cmUgZGF0YSBpcyB3cml0dGVuIG91dCB0byBtZW1vcnkgYmVmb3JlIHJlbmRlcmluZworCSAqIGNvbnRpbnVlcy4KKwkgKi8KKwlCRUdJTl9SSU5HKDQpOworCVJBREVPTl9GTFVTSF9DQUNIRSgpOworCVJBREVPTl9XQUlUX1VOVElMXzJEX0lETEUoKTsKKwlBRFZBTkNFX1JJTkcoKTsKKwlDT01NSVRfUklORygpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9jcF9kaXNwYXRjaF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCB1MzIgKiBzdGlwcGxlKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJaW50IGk7CisJUklOR19MT0NBTFM7CisJRFJNX0RFQlVHKCJcbiIpOworCisJQkVHSU5fUklORygzNSk7CisKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9SRV9TVElQUExFX0FERFIsIDApKTsKKwlPVVRfUklORygweDAwMDAwMDAwKTsKKworCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1JFX1NUSVBQTEVfREFUQSwgMzEpKTsKKwlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykgeworCQlPVVRfUklORyhzdGlwcGxlW2ldKTsKKwl9CisKKwlBRFZBTkNFX1JJTkcoKTsKK30KKworc3RhdGljIHZvaWQgcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhpbnQgc3VyZl9pbmRleCwKKwkJCQkgICAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYpCit7CisJaWYgKCFkZXZfcHJpdi0+bW1pbykKKwkJcmV0dXJuOworCisJcmFkZW9uX2RvX2NwX2lkbGUoZGV2X3ByaXYpOworCisJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9JTkZPICsgMTYgKiBzdXJmX2luZGV4LAorCQkgICAgIGRldl9wcml2LT5zdXJmYWNlc1tzdXJmX2luZGV4XS5mbGFncyk7CisJUkFERU9OX1dSSVRFKFJBREVPTl9TVVJGQUNFMF9MT1dFUl9CT1VORCArIDE2ICogc3VyZl9pbmRleCwKKwkJICAgICBkZXZfcHJpdi0+c3VyZmFjZXNbc3VyZl9pbmRleF0ubG93ZXIpOworCVJBREVPTl9XUklURShSQURFT05fU1VSRkFDRTBfVVBQRVJfQk9VTkQgKyAxNiAqIHN1cmZfaW5kZXgsCisJCSAgICAgZGV2X3ByaXYtPnN1cmZhY2VzW3N1cmZfaW5kZXhdLnVwcGVyKTsKK30KKworLyogQWxsb2NhdGVzIGEgdmlydHVhbCBzdXJmYWNlCisgKiBkb2Vzbid0IGFsd2F5cyBhbGxvY2F0ZSBhIHJlYWwgc3VyZmFjZSwgd2lsbCBzdHJldGNoIGFuIGV4aXN0aW5nCisgKiBzdXJmYWNlIHdoZW4gcG9zc2libGUuCisgKgorICogTm90ZSB0aGF0IHJlZmNvdW50IGNhbiBiZSBhdCBtb3N0IDIsIHNpbmNlIGR1cmluZyBhIGZyZWUgcmVmY291bnQ9MworICogbWlnaHQgbWVhbiB3ZSBoYXZlIHRvIGFsbG9jYXRlIGEgbmV3IHN1cmZhY2Ugd2hpY2ggbWlnaHQgbm90IGFsd2F5cworICogYmUgYXZhaWxhYmxlLgorICogRm9yIGV4YW1wbGUgOiB3ZSBhbGxvY2F0ZSB0aHJlZSBjb250aWdvdXMgc3VyZmFjZXMgQUJDLiBJZiBCIGlzCisgKiBmcmVlZCwgd2Ugc3VkZGVubHkgbmVlZCB0d28gc3VyZmFjZXMgdG8gc3RvcmUgQSBhbmQgQywgd2hpY2ggbWlnaHQKKyAqIG5vdCBhbHdheXMgYmUgYXZhaWxhYmxlLgorICovCitzdGF0aWMgaW50IGFsbG9jX3N1cmZhY2UoZHJtX3JhZGVvbl9zdXJmYWNlX2FsbG9jX3QgKm5ldywKKwkJCSBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJc3RydWN0IHJhZGVvbl92aXJ0X3N1cmZhY2UgKnM7CisJaW50IGk7CisJaW50IHZpcnRfc3VyZmFjZV9pbmRleDsKKwl1aW50MzJfdCBuZXdfdXBwZXIsIG5ld19sb3dlcjsKKworCW5ld19sb3dlciA9IG5ldy0+YWRkcmVzczsKKwluZXdfdXBwZXIgPSBuZXdfbG93ZXIgKyBuZXctPnNpemUgLSAxOworCisJLyogc2FuaXR5IGNoZWNrICovCisJaWYgKChuZXdfbG93ZXIgPj0gbmV3X3VwcGVyKSB8fCAobmV3LT5mbGFncyA9PSAwKSB8fCAobmV3LT5zaXplID09IDApIHx8CisJICAgICgobmV3X3VwcGVyICYgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKSAhPQorCSAgICAgUkFERU9OX1NVUkZfQUREUkVTU19GSVhFRF9NQVNLKQorCSAgICB8fCAoKG5ld19sb3dlciAmIFJBREVPTl9TVVJGX0FERFJFU1NfRklYRURfTUFTSykgIT0gMCkpCisJCXJldHVybiAtMTsKKworCS8qIG1ha2Ugc3VyZSB0aGVyZSBpcyBubyBvdmVybGFwIHdpdGggZXhpc3Rpbmcgc3VyZmFjZXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ICE9IDApICYmCisJCSAgICAoKChuZXdfbG93ZXIgPj0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSAmJgorCQkgICAgICAobmV3X2xvd2VyIDwgZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyKSkgfHwKKwkJICAgICAoKG5ld19sb3dlciA8IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikgJiYKKwkJICAgICAgKG5ld191cHBlciA+IGRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlcikpKSkgeworCQkJcmV0dXJuIC0xOworCQl9CisJfQorCisJLyogZmluZCBhIHZpcnR1YWwgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKQorCQlpZiAoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbaV0uZmlsZV9wcml2ID09IDApCisJCQlicmVhazsKKwlpZiAoaSA9PSAyICogUkFERU9OX01BWF9TVVJGQUNFUykgeworCQlyZXR1cm4gLTE7CisJfQorCXZpcnRfc3VyZmFjZV9pbmRleCA9IGk7CisKKwkvKiB0cnkgdG8gcmV1c2UgYW4gZXhpc3Rpbmcgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJLyogZXh0ZW5kIGJlZm9yZSAqLworCQlpZiAoKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAxKSAmJgorCQkgICAgKG5ldy0+ZmxhZ3MgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzKSAmJgorCQkgICAgKG5ld191cHBlciArIDEgPT0gZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmxvd2VyKSkgeworCQkJcyA9ICYoZGV2X3ByaXYtPnZpcnRfc3VyZmFjZXNbdmlydF9zdXJmYWNlX2luZGV4XSk7CisJCQlzLT5zdXJmYWNlX2luZGV4ID0gaTsKKwkJCXMtPmxvd2VyID0gbmV3X2xvd2VyOworCQkJcy0+dXBwZXIgPSBuZXdfdXBwZXI7CisJCQlzLT5mbGFncyA9IG5ldy0+ZmxhZ3M7CisJCQlzLT5maWxlX3ByaXYgPSBmaWxlX3ByaXY7CisJCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ucmVmY291bnQrKzsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5sb3dlciA9IHMtPmxvd2VyOworCQkJcmFkZW9uX2FwcGx5X3N1cmZhY2VfcmVncyhzLT5zdXJmYWNlX2luZGV4LCBkZXZfcHJpdik7CisJCQlyZXR1cm4gdmlydF9zdXJmYWNlX2luZGV4OworCQl9CisKKwkJLyogZXh0ZW5kIGFmdGVyICovCisJCWlmICgoZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnJlZmNvdW50ID09IDEpICYmCisJCSAgICAobmV3LT5mbGFncyA9PSBkZXZfcHJpdi0+c3VyZmFjZXNbaV0uZmxhZ3MpICYmCisJCSAgICAobmV3X2xvd2VyID09IGRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciArIDEpKSB7CisJCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKKwkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOworCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7CisJCQlzLT51cHBlciA9IG5ld191cHBlcjsKKwkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKKwkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCsrOworCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLnVwcGVyID0gcy0+dXBwZXI7CisJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKKwkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7CisJCX0KKwl9CisKKwkvKiBva2F5LCB3ZSBuZWVkIGEgbmV3IG9uZSAqLworCWZvciAoaSA9IDA7IGkgPCBSQURFT05fTUFYX1NVUkZBQ0VTOyBpKyspIHsKKwkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9PSAwKSB7CisJCQlzID0gJihkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1t2aXJ0X3N1cmZhY2VfaW5kZXhdKTsKKwkJCXMtPnN1cmZhY2VfaW5kZXggPSBpOworCQkJcy0+bG93ZXIgPSBuZXdfbG93ZXI7CisJCQlzLT51cHBlciA9IG5ld191cHBlcjsKKwkJCXMtPmZsYWdzID0gbmV3LT5mbGFnczsKKwkJCXMtPmZpbGVfcHJpdiA9IGZpbGVfcHJpdjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS5yZWZjb3VudCA9IDE7CisJCQlkZXZfcHJpdi0+c3VyZmFjZXNbaV0ubG93ZXIgPSBzLT5sb3dlcjsKKwkJCWRldl9wcml2LT5zdXJmYWNlc1tpXS51cHBlciA9IHMtPnVwcGVyOworCQkJZGV2X3ByaXYtPnN1cmZhY2VzW2ldLmZsYWdzID0gcy0+ZmxhZ3M7CisJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsIGRldl9wcml2KTsKKwkJCXJldHVybiB2aXJ0X3N1cmZhY2VfaW5kZXg7CisJCX0KKwl9CisKKwkvKiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZyAqLworCXJldHVybiAtMTsKK30KKworc3RhdGljIGludCBmcmVlX3N1cmZhY2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJCQlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2LAorCQkJaW50IGxvd2VyKQoreworCXN0cnVjdCByYWRlb25fdmlydF9zdXJmYWNlICpzOworCWludCBpOworCS8qIGZpbmQgdGhlIHZpcnR1YWwgc3VyZmFjZSAqLworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCXMgPSAmKGRldl9wcml2LT52aXJ0X3N1cmZhY2VzW2ldKTsKKwkJaWYgKHMtPmZpbGVfcHJpdikgeworCQkJaWYgKChsb3dlciA9PSBzLT5sb3dlcikgJiYgKGZpbGVfcHJpdiA9PSBzLT5maWxlX3ByaXYpKQorCQkJeworCQkJCWlmIChkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJICAgIGxvd2VyID09IHMtPmxvd2VyKQorCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJCSAgICBsb3dlciA9IHMtPnVwcGVyOworCisJCQkJaWYgKGRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KKwkJCQkgICAgdXBwZXIgPT0gcy0+dXBwZXIpCisJCQkJCWRldl9wcml2LT5zdXJmYWNlc1tzLT5zdXJmYWNlX2luZGV4XS4KKwkJCQkJICAgIHVwcGVyID0gcy0+bG93ZXI7CisKKwkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0ucmVmY291bnQtLTsKKwkJCQlpZiAoZGV2X3ByaXYtPnN1cmZhY2VzW3MtPnN1cmZhY2VfaW5kZXhdLgorCQkJCSAgICByZWZjb3VudCA9PSAwKQorCQkJCQlkZXZfcHJpdi0+c3VyZmFjZXNbcy0+c3VyZmFjZV9pbmRleF0uCisJCQkJCSAgICBmbGFncyA9IDA7CisJCQkJcy0+ZmlsZV9wcml2ID0gTlVMTDsKKwkJCQlyYWRlb25fYXBwbHlfc3VyZmFjZV9yZWdzKHMtPnN1cmZhY2VfaW5kZXgsCisJCQkJCQkJICBkZXZfcHJpdik7CisJCQkJcmV0dXJuIDA7CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkIHJhZGVvbl9zdXJmYWNlc19yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJCSAgICBkcm1fcmFkZW9uX3ByaXZhdGVfdCAqIGRldl9wcml2KQoreworCWludCBpOworCWZvciAoaSA9IDA7IGkgPCAyICogUkFERU9OX01BWF9TVVJGQUNFUzsgaSsrKSB7CisJCWlmIChkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5maWxlX3ByaXYgPT0gZmlsZV9wcml2KQorCQkJZnJlZV9zdXJmYWNlKGZpbGVfcHJpdiwgZGV2X3ByaXYsCisJCQkJICAgICBkZXZfcHJpdi0+dmlydF9zdXJmYWNlc1tpXS5sb3dlcik7CisJfQorfQorCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBJT0NUTCBmdW5jdGlvbnMKKyAqLworc3RhdGljIGludCByYWRlb25fc3VyZmFjZV9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190ICphbGxvYyA9IGRhdGE7CisKKwlpZiAoYWxsb2Nfc3VyZmFjZShhbGxvYywgZGV2X3ByaXYsIGZpbGVfcHJpdikgPT0gLTEpCisJCXJldHVybiAtRUlOVkFMOworCWVsc2UKKwkJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX3N1cmZhY2VfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fc3VyZmFjZV9mcmVlX3QgKm1lbWZyZWUgPSBkYXRhOworCisJaWYgKGZyZWVfc3VyZmFjZShmaWxlX3ByaXYsIGRldl9wcml2LCBtZW1mcmVlLT5hZGRyZXNzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJZWxzZQorCQlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfY2xlYXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKKwlkcm1fcmFkZW9uX2NsZWFyX3QgKmNsZWFyID0gZGF0YTsKKwlkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdCBkZXB0aF9ib3hlc1tSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTXTsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKKwkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZkZXB0aF9ib3hlcywgY2xlYXItPmRlcHRoX2JveGVzLAorCQkJICAgICAgIHNhcmVhX3ByaXYtPm5ib3ggKiBzaXplb2YoZGVwdGhfYm94ZXNbMF0pKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlyYWRlb25fY3BfZGlzcGF0Y2hfY2xlYXIoZGV2LCBjbGVhciwgZGVwdGhfYm94ZXMpOworCisJQ09NTUlUX1JJTkcoKTsKKwlyZXR1cm4gMDsKK30KKworLyogTm90IHN1cmUgd2h5IHRoaXMgaXNuJ3Qgc2V0IGFsbCB0aGUgdGltZToKKyAqLworc3RhdGljIGludCByYWRlb25fZG9faW5pdF9wYWdlZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqIGRldikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJQkVHSU5fUklORyg2KTsKKwlSQURFT05fV0FJVF9VTlRJTF8zRF9JRExFKCk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fQ1JUQ19PRkZTRVRfQ05UTCwgMCkpOworCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDX09GRlNFVF9DTlRMKSB8CisJCSBSQURFT05fQ1JUQ19PRkZTRVRfRkxJUF9DTlRMKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCwgMCkpOworCU9VVF9SSU5HKFJBREVPTl9SRUFEKFJBREVPTl9DUlRDMl9PRkZTRVRfQ05UTCkgfAorCQkgUkFERU9OX0NSVENfT0ZGU0VUX0ZMSVBfQ05UTCk7CisJQURWQU5DRV9SSU5HKCk7CisKKwlkZXZfcHJpdi0+cGFnZV9mbGlwcGluZyA9IDE7CisKKwlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgIT0gMSkKKwkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnBmQ3VycmVudFBhZ2UgPSAwOworCisJcmV0dXJuIDA7Cit9CisKKy8qIFN3YXBwaW5nIGFuZCBmbGlwcGluZyBhcmUgZGlmZmVyZW50IG9wZXJhdGlvbnMsIG5lZWQgZGlmZmVyZW50IGlvY3Rscy4KKyAqIFRoZXkgY2FuICYgc2hvdWxkIGJlIGludGVybWl4ZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSAzZCB3aW5kb3dzLgorICovCitzdGF0aWMgaW50IHJhZGVvbl9jcF9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJRFJNX0RFQlVHKCJcbiIpOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisKKwlpZiAoIWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nKQorCQlyYWRlb25fZG9faW5pdF9wYWdlZmxpcChkZXYpOworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX2ZsaXAoZGV2KTsKKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX3N3YXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NhcmVhX3QgKnNhcmVhX3ByaXYgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdjsKKwlEUk1fREVCVUcoIlxuIik7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChzYXJlYV9wcml2LT5uYm94ID4gUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUykKKwkJc2FyZWFfcHJpdi0+bmJveCA9IFJBREVPTl9OUl9TQVJFQV9DTElQUkVDVFM7CisKKwlyYWRlb25fY3BfZGlzcGF0Y2hfc3dhcChkZXYpOworCWRldl9wcml2LT5zYXJlYV9wcml2LT5jdHhfb3duZXIgPSAwOworCisJQ09NTUlUX1JJTkcoKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfdmVydGV4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25fdmVydGV4X3QgKnZlcnRleCA9IGRhdGE7CisJZHJtX3JhZGVvbl90Y2xfcHJpbV90IHByaW07CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgY291bnQ9JWQgZGlzY2FyZD0lZFxuIiwKKwkJICBEUk1fQ1VSUkVOVFBJRCwgdmVydGV4LT5pZHgsIHZlcnRleC0+Y291bnQsIHZlcnRleC0+ZGlzY2FyZCk7CisKKwlpZiAodmVydGV4LT5pZHggPCAwIHx8IHZlcnRleC0+aWR4ID49IGRtYS0+YnVmX2NvdW50KSB7CisJCURSTV9FUlJPUigiYnVmZmVyIGluZGV4ICVkIChvZiAlZCBtYXgpXG4iLAorCQkJICB2ZXJ0ZXgtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmICh2ZXJ0ZXgtPnByaW0gPCAwIHx8IHZlcnRleC0+cHJpbSA+IFJBREVPTl9QUklNX1RZUEVfM1ZSVF9MSU5FX0xJU1QpIHsKKwkJRFJNX0VSUk9SKCJidWZmZXIgcHJpbSAlZFxuIiwgdmVydGV4LT5wcmltKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJUklOR19TUEFDRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKwlWQl9BR0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisKKwlidWYgPSBkbWEtPmJ1Zmxpc3RbdmVydGV4LT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgorCSAqLworCWlmICh2ZXJ0ZXgtPmNvdW50KSB7CisJCWJ1Zi0+dXNlZCA9IHZlcnRleC0+Y291bnQ7CS8qIG5vdCB1c2VkPyAqLworCisJCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgeworCQkJaWYgKHJhZGVvbl9lbWl0X3N0YXRlKGRldl9wcml2LCBmaWxlX3ByaXYsCisJCQkJCSAgICAgICZzYXJlYV9wcml2LT5jb250ZXh0X3N0YXRlLAorCQkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCisJCQkJCSAgICAgIHNhcmVhX3ByaXYtPmRpcnR5KSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUgZmFpbGVkXG4iKTsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKwkJCX0KKworCQkJc2FyZWFfcHJpdi0+ZGlydHkgJj0gfihSQURFT05fVVBMT0FEX1RFWDBJTUFHRVMgfAorCQkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKKwkJCQkJICAgICAgIFJBREVPTl9VUExPQURfVEVYMklNQUdFUyB8CisJCQkJCSAgICAgICBSQURFT05fUkVRVUlSRV9RVUlFU0NFTkNFKTsKKwkJfQorCisJCXByaW0uc3RhcnQgPSAwOworCQlwcmltLmZpbmlzaCA9IHZlcnRleC0+Y291bnQ7CS8qIHVudXNlZCAqLworCQlwcmltLnByaW0gPSB2ZXJ0ZXgtPnByaW07CisJCXByaW0ubnVtdmVydHMgPSB2ZXJ0ZXgtPmNvdW50OworCQlwcmltLnZjX2Zvcm1hdCA9IGRldl9wcml2LT5zYXJlYV9wcml2LT52Y19mb3JtYXQ7CisKKwkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnByaW0pOworCX0KKworCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9pbmRpY2VzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25faW5kaWNlc190ICplbHRzID0gZGF0YTsKKwlkcm1fcmFkZW9uX3RjbF9wcmltX3QgcHJpbTsKKwlpbnQgY291bnQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJRFJNX0RFQlVHKCJwaWQ9JWQgaW5kZXg9JWQgc3RhcnQ9JWQgZW5kPSVkIGRpc2NhcmQ9JWRcbiIsCisJCSAgRFJNX0NVUlJFTlRQSUQsIGVsdHMtPmlkeCwgZWx0cy0+c3RhcnQsIGVsdHMtPmVuZCwKKwkJICBlbHRzLT5kaXNjYXJkKTsKKworCWlmIChlbHRzLT5pZHggPCAwIHx8IGVsdHMtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgZWx0cy0+aWR4LCBkbWEtPmJ1Zl9jb3VudCAtIDEpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGVsdHMtPnByaW0gPCAwIHx8IGVsdHMtPnByaW0gPiBSQURFT05fUFJJTV9UWVBFXzNWUlRfTElORV9MSVNUKSB7CisJCURSTV9FUlJPUigiYnVmZmVyIHByaW0gJWRcbiIsIGVsdHMtPnByaW0pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWJ1ZiA9IGRtYS0+YnVmbGlzdFtlbHRzLT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGVsdHMtPmlkeCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWNvdW50ID0gKGVsdHMtPmVuZCAtIGVsdHMtPnN0YXJ0KSAvIHNpemVvZih1MTYpOworCWVsdHMtPnN0YXJ0IC09IFJBREVPTl9JTkRFWF9QUklNX09GRlNFVDsKKworCWlmIChlbHRzLT5zdGFydCAmIDB4NykgeworCQlEUk1fRVJST1IoIm1pc2FsaWduZWQgYnVmZmVyIDB4JXhcbiIsIGVsdHMtPnN0YXJ0KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWlmIChlbHRzLT5zdGFydCA8IGJ1Zi0+dXNlZCkgeworCQlEUk1fRVJST1IoIm5vIGhlYWRlciAweCV4IC0gMHgleFxuIiwgZWx0cy0+c3RhcnQsIGJ1Zi0+dXNlZCk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWJ1Zi0+dXNlZCA9IGVsdHMtPmVuZDsKKworCWlmIChzYXJlYV9wcml2LT5kaXJ0eSAmIH5SQURFT05fVVBMT0FEX0NMSVBSRUNUUykgeworCQlpZiAocmFkZW9uX2VtaXRfc3RhdGUoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkgICAgICAmc2FyZWFfcHJpdi0+Y29udGV4dF9zdGF0ZSwKKwkJCQkgICAgICBzYXJlYV9wcml2LT50ZXhfc3RhdGUsCisJCQkJICAgICAgc2FyZWFfcHJpdi0+ZGlydHkpKSB7CisJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3N0YXRlIGZhaWxlZFxuIik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXNhcmVhX3ByaXYtPmRpcnR5ICY9IH4oUkFERU9OX1VQTE9BRF9URVgwSU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgxSU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1VQTE9BRF9URVgySU1BR0VTIHwKKwkJCQkgICAgICAgUkFERU9OX1JFUVVJUkVfUVVJRVNDRU5DRSk7CisJfQorCisJLyogQnVpbGQgdXAgYSBwcmltX3QgcmVjb3JkOgorCSAqLworCXByaW0uc3RhcnQgPSBlbHRzLT5zdGFydDsKKwlwcmltLmZpbmlzaCA9IGVsdHMtPmVuZDsKKwlwcmltLnByaW0gPSBlbHRzLT5wcmltOworCXByaW0ub2Zmc2V0ID0gMDsJLyogb2Zmc2V0IGZyb20gc3RhcnQgb2YgZG1hIGJ1ZmZlcnMgKi8KKwlwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCisJcHJpbS52Y19mb3JtYXQgPSBkZXZfcHJpdi0+c2FyZWFfcHJpdi0+dmNfZm9ybWF0OworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX2luZGljZXMoZGV2LCBidWYsICZwcmltKTsKKwlpZiAoZWx0cy0+ZGlzY2FyZCkgeworCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCX0KKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX3RleHR1cmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3RleHR1cmVfdCAqdGV4ID0gZGF0YTsKKwlkcm1fcmFkZW9uX3RleF9pbWFnZV90IGltYWdlOworCWludCByZXQ7CisKKwlMT0NLX1RFU1RfV0lUSF9SRVRVUk4oZGV2LCBmaWxlX3ByaXYpOworCisJaWYgKHRleC0+aW1hZ2UgPT0gTlVMTCkgeworCQlEUk1fRVJST1IoIm51bGwgdGV4dHVyZSBpbWFnZSFcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZpbWFnZSwKKwkJCSAgICAgICAoZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCBfX3VzZXIgKikgdGV4LT5pbWFnZSwKKwkJCSAgICAgICBzaXplb2YoaW1hZ2UpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCXJldCA9IHJhZGVvbl9jcF9kaXNwYXRjaF90ZXh0dXJlKGRldiwgZmlsZV9wcml2LCB0ZXgsICZpbWFnZSk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9zdGlwcGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zdGlwcGxlX3QgKnN0aXBwbGUgPSBkYXRhOworCXUzMiBtYXNrWzMyXTsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZtYXNrLCBzdGlwcGxlLT5tYXNrLCAzMiAqIHNpemVvZih1MzIpKSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCisJcmFkZW9uX2NwX2Rpc3BhdGNoX3N0aXBwbGUoZGV2LCBtYXNrKTsKKworCUNPTU1JVF9SSU5HKCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2NwX2luZGlyZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25faW5kaXJlY3RfdCAqaW5kaXJlY3QgPSBkYXRhOworCVJJTkdfTE9DQUxTOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCURSTV9ERUJVRygiaWR4PSVkIHM9JWQgZT0lZCBkPSVkXG4iLAorCQkgIGluZGlyZWN0LT5pZHgsIGluZGlyZWN0LT5zdGFydCwgaW5kaXJlY3QtPmVuZCwKKwkJICBpbmRpcmVjdC0+ZGlzY2FyZCk7CisKKwlpZiAoaW5kaXJlY3QtPmlkeCA8IDAgfHwgaW5kaXJlY3QtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgaW5kaXJlY3QtPmlkeCwgZG1hLT5idWZfY291bnQgLSAxKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJYnVmID0gZG1hLT5idWZsaXN0W2luZGlyZWN0LT5pZHhdOworCisJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdikgeworCQlEUk1fRVJST1IoInByb2Nlc3MgJWQgdXNpbmcgYnVmZmVyIG93bmVkIGJ5ICVwXG4iLAorCQkJICBEUk1fQ1VSUkVOVFBJRCwgYnVmLT5maWxlX3ByaXYpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIGluZGlyZWN0LT5pZHgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAoaW5kaXJlY3QtPnN0YXJ0IDwgYnVmLT51c2VkKSB7CisJCURSTV9FUlJPUigicmV1c2luZyBpbmRpcmVjdDogc3RhcnQ9MHgleCBhY3R1YWw9MHgleFxuIiwKKwkJCSAgaW5kaXJlY3QtPnN0YXJ0LCBidWYtPnVzZWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWJ1Zi0+dXNlZCA9IGluZGlyZWN0LT5lbmQ7CisKKwkvKiBXYWl0IGZvciB0aGUgM0Qgc3RyZWFtIHRvIGlkbGUgYmVmb3JlIHRoZSBpbmRpcmVjdCBidWZmZXIKKwkgKiBjb250YWluaW5nIDJEIGFjY2VsZXJhdGlvbiBjb21tYW5kcyBpcyBwcm9jZXNzZWQuCisJICovCisJQkVHSU5fUklORygyKTsKKworCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKworCUFEVkFOQ0VfUklORygpOworCisJLyogRGlzcGF0Y2ggdGhlIGluZGlyZWN0IGJ1ZmZlciBmdWxsIG9mIGNvbW1hbmRzIGZyb20gdGhlCisJICogWCBzZXJ2ZXIuICBUaGlzIGlzIGluc2VjdXJlIGFuZCBpcyB0aHVzIG9ubHkgYXZhaWxhYmxlIHRvCisJICogcHJpdmlsZWdlZCBjbGllbnRzLgorCSAqLworCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpcmVjdChkZXYsIGJ1ZiwgaW5kaXJlY3QtPnN0YXJ0LCBpbmRpcmVjdC0+ZW5kKTsKKwlpZiAoaW5kaXJlY3QtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF92ZXJ0ZXgyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJZHJtX3JhZGVvbl9zYXJlYV90ICpzYXJlYV9wcml2ID0gZGV2X3ByaXYtPnNhcmVhX3ByaXY7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmOworCWRybV9yYWRlb25fdmVydGV4Ml90ICp2ZXJ0ZXggPSBkYXRhOworCWludCBpOworCXVuc2lnbmVkIGNoYXIgbGFzdHN0YXRlOworCisJTE9DS19URVNUX1dJVEhfUkVUVVJOKGRldiwgZmlsZV9wcml2KTsKKworCURSTV9ERUJVRygicGlkPSVkIGluZGV4PSVkIGRpc2NhcmQ9JWRcbiIsCisJCSAgRFJNX0NVUlJFTlRQSUQsIHZlcnRleC0+aWR4LCB2ZXJ0ZXgtPmRpc2NhcmQpOworCisJaWYgKHZlcnRleC0+aWR4IDwgMCB8fCB2ZXJ0ZXgtPmlkeCA+PSBkbWEtPmJ1Zl9jb3VudCkgeworCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCSAgdmVydGV4LT5pZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCVJJTkdfU1BBQ0VfVEVTVF9XSVRIX1JFVFVSTihkZXZfcHJpdik7CisJVkJfQUdFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCisJYnVmID0gZG1hLT5idWZsaXN0W3ZlcnRleC0+aWR4XTsKKworCWlmIChidWYtPmZpbGVfcHJpdiAhPSBmaWxlX3ByaXYpIHsKKwkJRFJNX0VSUk9SKCJwcm9jZXNzICVkIHVzaW5nIGJ1ZmZlciBvd25lZCBieSAlcFxuIiwKKwkJCSAgRFJNX0NVUlJFTlRQSUQsIGJ1Zi0+ZmlsZV9wcml2KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGJ1Zi0+cGVuZGluZykgeworCQlEUk1fRVJST1IoInNlbmRpbmcgcGVuZGluZyBidWZmZXIgJWRcbiIsIHZlcnRleC0+aWR4KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHNhcmVhX3ByaXYtPm5ib3ggPiBSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZvciAobGFzdHN0YXRlID0gMHhmZiwgaSA9IDA7IGkgPCB2ZXJ0ZXgtPm5yX3ByaW1zOyBpKyspIHsKKwkJZHJtX3JhZGVvbl9wcmltX3QgcHJpbTsKKwkJZHJtX3JhZGVvbl90Y2xfcHJpbV90IHRjbHByaW07CisKKwkJaWYgKERSTV9DT1BZX0ZST01fVVNFUigmcHJpbSwgJnZlcnRleC0+cHJpbVtpXSwgc2l6ZW9mKHByaW0pKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmIChwcmltLnN0YXRlaWR4ICE9IGxhc3RzdGF0ZSkgeworCQkJZHJtX3JhZGVvbl9zdGF0ZV90IHN0YXRlOworCisJCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZzdGF0ZSwKKwkJCQkJICAgICAgICZ2ZXJ0ZXgtPnN0YXRlW3ByaW0uc3RhdGVpZHhdLAorCQkJCQkgICAgICAgc2l6ZW9mKHN0YXRlKSkpCisJCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJCWlmIChyYWRlb25fZW1pdF9zdGF0ZTIoZGV2X3ByaXYsIGZpbGVfcHJpdiwgJnN0YXRlKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfc3RhdGUyIGZhaWxlZFxuIik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisKKwkJCWxhc3RzdGF0ZSA9IHByaW0uc3RhdGVpZHg7CisJCX0KKworCQl0Y2xwcmltLnN0YXJ0ID0gcHJpbS5zdGFydDsKKwkJdGNscHJpbS5maW5pc2ggPSBwcmltLmZpbmlzaDsKKwkJdGNscHJpbS5wcmltID0gcHJpbS5wcmltOworCQl0Y2xwcmltLnZjX2Zvcm1hdCA9IHByaW0udmNfZm9ybWF0OworCisJCWlmIChwcmltLnByaW0gJiBSQURFT05fUFJJTV9XQUxLX0lORCkgeworCQkJdGNscHJpbS5vZmZzZXQgPSBwcmltLm51bXZlcnRzICogNjQ7CisJCQl0Y2xwcmltLm51bXZlcnRzID0gUkFERU9OX01BWF9WQl9WRVJUUzsJLyogZHVoICovCisKKwkJCXJhZGVvbl9jcF9kaXNwYXRjaF9pbmRpY2VzKGRldiwgYnVmLCAmdGNscHJpbSk7CisJCX0gZWxzZSB7CisJCQl0Y2xwcmltLm51bXZlcnRzID0gcHJpbS5udW12ZXJ0czsKKwkJCXRjbHByaW0ub2Zmc2V0ID0gMDsJLyogbm90IHVzZWQgKi8KKworCQkJcmFkZW9uX2NwX2Rpc3BhdGNoX3ZlcnRleChkZXYsIGJ1ZiwgJnRjbHByaW0pOworCQl9CisKKwkJaWYgKHNhcmVhX3ByaXYtPm5ib3ggPT0gMSkKKwkJCXNhcmVhX3ByaXYtPm5ib3ggPSAwOworCX0KKworCWlmICh2ZXJ0ZXgtPmRpc2NhcmQpIHsKKwkJcmFkZW9uX2NwX2Rpc2NhcmRfYnVmZmVyKGRldiwgYnVmKTsKKwl9CisKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9lbWl0X3BhY2tldHMoZHJtX3JhZGVvbl9wcml2YXRlX3QgKiBkZXZfcHJpdiwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCSAgICAgICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCisJCQkgICAgICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IGlkID0gKGludCloZWFkZXIucGFja2V0LnBhY2tldF9pZDsKKwlpbnQgc3osIHJlZzsKKwlpbnQgKmRhdGEgPSAoaW50ICopY21kYnVmLT5idWY7CisJUklOR19MT0NBTFM7CisKKwlpZiAoaWQgPj0gUkFERU9OX01BWF9TVEFURV9QQUNLRVRTKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXN6ID0gcGFja2V0W2lkXS5sZW47CisJcmVnID0gcGFja2V0W2lkXS5zdGFydDsKKworCWlmIChzeiAqIHNpemVvZihpbnQpID4gY21kYnVmLT5idWZzeikgeworCQlEUk1fRVJST1IoIlBhY2tldCBzaXplIHByb3ZpZGVkIGxhcmdlciB0aGFuIGRhdGEgcHJvdmlkZWRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlpZiAocmFkZW9uX2NoZWNrX2FuZF9maXh1cF9wYWNrZXRzKGRldl9wcml2LCBmaWxlX3ByaXYsIGlkLCBkYXRhKSkgeworCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJQkVHSU5fUklORyhzeiArIDEpOworCU9VVF9SSU5HKENQX1BBQ0tFVDAocmVnLCAoc3ogLSAxKSkpOworCU9VVF9SSU5HX1RBQkxFKGRhdGEsIHN6KTsKKwlBRFZBTkNFX1JJTkcoKTsKKworCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7CisJY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgcmFkZW9uX2VtaXRfc2NhbGFycyhkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3QgaGVhZGVyLAorCQkJCQkgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQoreworCWludCBzeiA9IGhlYWRlci5zY2FsYXJzLmNvdW50OworCWludCBzdGFydCA9IGhlYWRlci5zY2FsYXJzLm9mZnNldDsKKwlpbnQgc3RyaWRlID0gaGVhZGVyLnNjYWxhcnMuc3RyaWRlOworCVJJTkdfTE9DQUxTOworCisJQkVHSU5fUklORygzICsgc3opOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9TQ0FMQVJfSU5EWF9SRUcsIDApKTsKKwlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1NDQUxfSU5EWF9EV09SRF9TVFJJREVfU0hJRlQpKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfU0NBTEFSX0RBVEFfUkVHLCBzeiAtIDEpKTsKKwlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCWNtZGJ1Zi0+YnVmICs9IHN6ICogc2l6ZW9mKGludCk7CisJY21kYnVmLT5idWZzeiAtPSBzeiAqIHNpemVvZihpbnQpOworCXJldHVybiAwOworfQorCisvKiBHb2QgdGhpcyBpcyB1Z2x5CisgKi8KK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF9zY2FsYXJzMihkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYsCisJCQkJCSAgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKKwkJCQkJICAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IHN6ID0gaGVhZGVyLnNjYWxhcnMuY291bnQ7CisJaW50IHN0YXJ0ID0gKCh1bnNpZ25lZCBpbnQpaGVhZGVyLnNjYWxhcnMub2Zmc2V0KSArIDB4MTAwOworCWludCBzdHJpZGUgPSBoZWFkZXIuc2NhbGFycy5zdHJpZGU7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDMgKyBzeik7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMChSQURFT05fU0VfVENMX1NDQUxBUl9JTkRYX1JFRywgMCkpOworCU9VVF9SSU5HKHN0YXJ0IHwgKHN0cmlkZSA8PCBSQURFT05fU0NBTF9JTkRYX0RXT1JEX1NUUklERV9TSElGVCkpOworCU9VVF9SSU5HKENQX1BBQ0tFVDBfVEFCTEUoUkFERU9OX1NFX1RDTF9TQ0FMQVJfREFUQV9SRUcsIHN6IC0gMSkpOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7CisJQURWQU5DRV9SSU5HKCk7CisJY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWN0b3JzKGRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiwKKwkJCQkJICBkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXIsCisJCQkJCSAgZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYpCit7CisJaW50IHN6ID0gaGVhZGVyLnZlY3RvcnMuY291bnQ7CisJaW50IHN0YXJ0ID0gaGVhZGVyLnZlY3RvcnMub2Zmc2V0OworCWludCBzdHJpZGUgPSBoZWFkZXIudmVjdG9ycy5zdHJpZGU7CisJUklOR19MT0NBTFM7CisKKwlCRUdJTl9SSU5HKDUgKyBzeik7CisJT1VUX1JJTkdfUkVHKFJBREVPTl9TRV9UQ0xfU1RBVEVfRkxVU0gsIDApOworCU9VVF9SSU5HKENQX1BBQ0tFVDAoUkFERU9OX1NFX1RDTF9WRUNUT1JfSU5EWF9SRUcsIDApKTsKKwlPVVRfUklORyhzdGFydCB8IChzdHJpZGUgPDwgUkFERU9OX1ZFQ19JTkRYX09DVFdPUkRfU1RSSURFX1NISUZUKSk7CisJT1VUX1JJTkcoQ1BfUEFDS0VUMF9UQUJMRShSQURFT05fU0VfVENMX1ZFQ1RPUl9EQVRBX1JFRywgKHN6IC0gMSkpKTsKKwlPVVRfUklOR19UQUJMRShjbWRidWYtPmJ1Ziwgc3opOworCUFEVkFOQ0VfUklORygpOworCisJY21kYnVmLT5idWYgKz0gc3ogKiBzaXplb2YoaW50KTsKKwljbWRidWYtPmJ1ZnN6IC09IHN6ICogc2l6ZW9mKGludCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCByYWRlb25fZW1pdF92ZWNsaW5lYXIoZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2LAorCQkJCQkgIGRybV9yYWRlb25fY21kX2hlYWRlcl90IGhlYWRlciwKKwkJCQkJICBkcm1fcmFkZW9uX2tjbWRfYnVmZmVyX3QgKmNtZGJ1ZikKK3sKKwlpbnQgc3ogPSBoZWFkZXIudmVjbGluZWFyLmNvdW50ICogNDsKKwlpbnQgc3RhcnQgPSBoZWFkZXIudmVjbGluZWFyLmFkZHJfbG8gfCAoaGVhZGVyLnZlY2xpbmVhci5hZGRyX2hpIDw8IDgpOworCVJJTkdfTE9DQUxTOworCisgICAgICAgIGlmICghc3opCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChzeiAqIDQgPiBjbWRidWYtPmJ1ZnN6KQorICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisJQkVHSU5fUklORyg1ICsgc3opOworCU9VVF9SSU5HX1JFRyhSQURFT05fU0VfVENMX1NUQVRFX0ZMVVNILCAwKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0lORFhfUkVHLCAwKSk7CisJT1VUX1JJTkcoc3RhcnQgfCAoMSA8PCBSQURFT05fVkVDX0lORFhfT0NUV09SRF9TVFJJREVfU0hJRlQpKTsKKwlPVVRfUklORyhDUF9QQUNLRVQwX1RBQkxFKFJBREVPTl9TRV9UQ0xfVkVDVE9SX0RBVEFfUkVHLCAoc3ogLSAxKSkpOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBzeik7CisJQURWQU5DRV9SSU5HKCk7CisKKwljbWRidWYtPmJ1ZiArPSBzeiAqIHNpemVvZihpbnQpOworCWNtZGJ1Zi0+YnVmc3ogLT0gc3ogKiBzaXplb2YoaW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZW1pdF9wYWNrZXQzKHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LAorCQkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAorCQkJICAgICAgIGRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmKQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJdW5zaWduZWQgaW50IGNtZHN6OworCWludCByZXQ7CisJUklOR19MT0NBTFM7CisKKwlEUk1fREVCVUcoIlxuIik7CisKKwlpZiAoKHJldCA9IHJhZGVvbl9jaGVja19hbmRfZml4dXBfcGFja2V0MyhkZXZfcHJpdiwgZmlsZV9wcml2LAorCQkJCQkJICBjbWRidWYsICZjbWRzeikpKSB7CisJCURSTV9FUlJPUigiUGFja2V0IHZlcmlmaWNhdGlvbiBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKworCUJFR0lOX1JJTkcoY21kc3opOworCU9VVF9SSU5HX1RBQkxFKGNtZGJ1Zi0+YnVmLCBjbWRzeik7CisJQURWQU5DRV9SSU5HKCk7CisKKwljbWRidWYtPmJ1ZiArPSBjbWRzeiAqIDQ7CisJY21kYnVmLT5idWZzeiAtPSBjbWRzeiAqIDQ7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmFkZW9uX2VtaXRfcGFja2V0M19jbGlwcmVjdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKKwkJCQkJZHJtX3JhZGVvbl9rY21kX2J1ZmZlcl90ICpjbWRidWYsCisJCQkJCWludCBvcmlnX25ib3gpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3g7CisJdW5zaWduZWQgaW50IGNtZHN6OworCWludCByZXQ7CisJc3RydWN0IGRybV9jbGlwX3JlY3QgX191c2VyICpib3hlcyA9IGNtZGJ1Zi0+Ym94ZXM7CisJaW50IGkgPSAwOworCVJJTkdfTE9DQUxTOworCisJRFJNX0RFQlVHKCJcbiIpOworCisJaWYgKChyZXQgPSByYWRlb25fY2hlY2tfYW5kX2ZpeHVwX3BhY2tldDMoZGV2X3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJCSAgY21kYnVmLCAmY21kc3opKSkgeworCQlEUk1fRVJST1IoIlBhY2tldCB2ZXJpZmljYXRpb24gZmFpbGVkXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoIW9yaWdfbmJveCkKKwkJZ290byBvdXQ7CisKKwlkbyB7CisJCWlmIChpIDwgY21kYnVmLT5uYm94KSB7CisJCQlpZiAoRFJNX0NPUFlfRlJPTV9VU0VSKCZib3gsICZib3hlc1tpXSwgc2l6ZW9mKGJveCkpKQorCQkJCXJldHVybiAtRUZBVUxUOworCQkJLyogRklYTUUgVGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCB0aW1lcyByb3VuZAorCQkJICogdGhpcyBsb29wLCBzZW5kIGEgV0FJVF9VTlRJTF8zRF9JRExFIGJlZm9yZQorCQkJICogY2FsbGluZyBlbWl0X2NsaXBfcmVjdCgpLiBUaGlzIGZpeGVzIGEKKwkJCSAqIGxvY2t1cCBvbiBmYXN0IG1hY2hpbmVzIHdoZW4gc2VuZGluZworCQkJICogc2V2ZXJhbCBjbGlwcmVjdHMgd2l0aCBhIGNtZGJ1ZiwgYXMgd2hlbgorCQkJICogd2F2aW5nIGEgMkQgd2luZG93IG92ZXIgYSAzRAorCQkJICogd2luZG93LiBTb21ldGhpbmcgaW4gdGhlIGNvbW1hbmRzIGZyb20gdXNlcgorCQkJICogc3BhY2Ugc2VlbXMgdG8gaGFuZyB0aGUgY2FyZCB3aGVuIHRoZXkncmUKKwkJCSAqIHNlbnQgc2V2ZXJhbCB0aW1lcyBpbiBhIHJvdy4gVGhhdCB3b3VsZCBiZQorCQkJICogdGhlIGNvcnJlY3QgcGxhY2UgdG8gZml4IGl0IGJ1dCB0aGlzIHdvcmtzCisJCQkgKiBhcm91bmQgaXQgdW50aWwgSSBjYW4gZmlndXJlIHRoYXQgb3V0IC0gVGltCisJCQkgKiBTbWl0aCAqLworCQkJaWYgKGkpIHsKKwkJCQlCRUdJTl9SSU5HKDIpOworCQkJCVJBREVPTl9XQUlUX1VOVElMXzNEX0lETEUoKTsKKwkJCQlBRFZBTkNFX1JJTkcoKTsKKwkJCX0KKwkJCXJhZGVvbl9lbWl0X2NsaXBfcmVjdChkZXZfcHJpdiwgJmJveCk7CisJCX0KKworCQlCRUdJTl9SSU5HKGNtZHN6KTsKKwkJT1VUX1JJTkdfVEFCTEUoY21kYnVmLT5idWYsIGNtZHN6KTsKKwkJQURWQU5DRV9SSU5HKCk7CisKKwl9IHdoaWxlICgrK2kgPCBjbWRidWYtPm5ib3gpOworCWlmIChjbWRidWYtPm5ib3ggPT0gMSkKKwkJY21kYnVmLT5uYm94ID0gMDsKKworICAgICAgb3V0OgorCWNtZGJ1Zi0+YnVmICs9IGNtZHN6ICogNDsKKwljbWRidWYtPmJ1ZnN6IC09IGNtZHN6ICogNDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fZW1pdF93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICogZGV2LCBpbnQgZmxhZ3MpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlSSU5HX0xPQ0FMUzsKKworCURSTV9ERUJVRygiJXhcbiIsIGZsYWdzKTsKKwlzd2l0Y2ggKGZsYWdzKSB7CisJY2FzZSBSQURFT05fV0FJVF8yRDoKKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfMkRfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fV0FJVF8zRDoKKwkJQkVHSU5fUklORygyKTsKKwkJUkFERU9OX1dBSVRfVU5USUxfM0RfSURMRSgpOworCQlBRFZBTkNFX1JJTkcoKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fV0FJVF8yRCB8IFJBREVPTl9XQUlUXzNEOgorCQlCRUdJTl9SSU5HKDIpOworCQlSQURFT05fV0FJVF9VTlRJTF9JRExFKCk7CisJCUFEVkFOQ0VfUklORygpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3BfY21kYnVmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9kZXZpY2VfZG1hICpkbWEgPSBkZXYtPmRtYTsKKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmID0gTlVMTDsKKwlpbnQgaWR4OworCWRybV9yYWRlb25fa2NtZF9idWZmZXJfdCAqY21kYnVmID0gZGF0YTsKKwlkcm1fcmFkZW9uX2NtZF9oZWFkZXJfdCBoZWFkZXI7CisJaW50IG9yaWdfbmJveCwgb3JpZ19idWZzejsKKwljaGFyICprYnVmID0gTlVMTDsKKworCUxPQ0tfVEVTVF9XSVRIX1JFVFVSTihkZXYsIGZpbGVfcHJpdik7CisKKwlSSU5HX1NQQUNFX1RFU1RfV0lUSF9SRVRVUk4oZGV2X3ByaXYpOworCVZCX0FHRV9URVNUX1dJVEhfUkVUVVJOKGRldl9wcml2KTsKKworCWlmIChjbWRidWYtPmJ1ZnN6ID4gNjQgKiAxMDI0IHx8IGNtZGJ1Zi0+YnVmc3ogPCAwKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIEFsbG9jYXRlIGFuIGluLWtlcm5lbCBhcmVhIGFuZCBjb3B5IGluIHRoZSBjbWRidWYuICBEbyB0aGlzIHRvIGF2b2lkCisJICogcmFjZXMgYmV0d2VlbiBjaGVja2luZyB2YWx1ZXMgYW5kIHVzaW5nIHRob3NlIHZhbHVlcyBpbiBvdGhlciBjb2RlLAorCSAqIGFuZCBzaW1wbHkgdG8gYXZvaWQgYSBsb3Qgb2YgZnVuY3Rpb24gY2FsbHMgdG8gY29weSBpbiBkYXRhLgorCSAqLworCW9yaWdfYnVmc3ogPSBjbWRidWYtPmJ1ZnN6OworCWlmIChvcmlnX2J1ZnN6ICE9IDApIHsKKwkJa2J1ZiA9IGRybV9hbGxvYyhjbWRidWYtPmJ1ZnN6LCBEUk1fTUVNX0RSSVZFUik7CisJCWlmIChrYnVmID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJaWYgKERSTV9DT1BZX0ZST01fVVNFUihrYnVmLCAodm9pZCBfX3VzZXIgKiljbWRidWYtPmJ1ZiwKKwkJCQkgICAgICAgY21kYnVmLT5idWZzeikpIHsKKwkJCWRybV9mcmVlKGtidWYsIG9yaWdfYnVmc3osIERSTV9NRU1fRFJJVkVSKTsKKwkJCXJldHVybiAtRUZBVUxUOworCQl9CisJCWNtZGJ1Zi0+YnVmID0ga2J1ZjsKKwl9CisKKwlvcmlnX25ib3ggPSBjbWRidWYtPm5ib3g7CisKKwlpZiAoZGV2X3ByaXYtPm1pY3JvY29kZV92ZXJzaW9uID09IFVDT0RFX1IzMDApIHsKKwkJaW50IHRlbXA7CisJCXRlbXAgPSByMzAwX2RvX2NwX2NtZGJ1ZihkZXYsIGZpbGVfcHJpdiwgY21kYnVmKTsKKworCQlpZiAob3JpZ19idWZzeiAhPSAwKQorCQkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCisJCXJldHVybiB0ZW1wOworCX0KKworCS8qIG1pY3JvY29kZV92ZXJzaW9uICE9IHIzMDAgKi8KKwl3aGlsZSAoY21kYnVmLT5idWZzeiA+PSBzaXplb2YoaGVhZGVyKSkgeworCisJCWhlYWRlci5pID0gKihpbnQgKiljbWRidWYtPmJ1ZjsKKwkJY21kYnVmLT5idWYgKz0gc2l6ZW9mKGhlYWRlcik7CisJCWNtZGJ1Zi0+YnVmc3ogLT0gc2l6ZW9mKGhlYWRlcik7CisKKwkJc3dpdGNoIChoZWFkZXIuaGVhZGVyLmNtZF90eXBlKSB7CisJCWNhc2UgUkFERU9OX0NNRF9QQUNLRVQ6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF9wYWNrZXRzCisJCQkgICAgKGRldl9wcml2LCBmaWxlX3ByaXYsIGhlYWRlciwgY21kYnVmKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0cyBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1NDQUxBUlM6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSU1xuIik7CisJCQlpZiAocmFkZW9uX2VtaXRfc2NhbGFycyhkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF9zY2FsYXJzIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfVkVDVE9SUzoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNUT1JTXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF92ZWN0b3JzKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKKwkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3ZlY3RvcnMgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKwkJCWJyZWFrOworCisJCWNhc2UgUkFERU9OX0NNRF9ETUFfRElTQ0FSRDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9ETUFfRElTQ0FSRFxuIik7CisJCQlpZHggPSBoZWFkZXIuZG1hLmJ1Zl9pZHg7CisJCQlpZiAoaWR4IDwgMCB8fCBpZHggPj0gZG1hLT5idWZfY291bnQpIHsKKwkJCQlEUk1fRVJST1IoImJ1ZmZlciBpbmRleCAlZCAob2YgJWQgbWF4KVxuIiwKKwkJCQkJICBpZHgsIGRtYS0+YnVmX2NvdW50IC0gMSk7CisJCQkJZ290byBlcnI7CisJCQl9CisKKwkJCWJ1ZiA9IGRtYS0+YnVmbGlzdFtpZHhdOworCQkJaWYgKGJ1Zi0+ZmlsZV9wcml2ICE9IGZpbGVfcHJpdiB8fCBidWYtPnBlbmRpbmcpIHsKKwkJCQlEUk1fRVJST1IoImJhZCBidWZmZXIgJXAgJXAgJWRcbiIsCisJCQkJCSAgYnVmLT5maWxlX3ByaXYsIGZpbGVfcHJpdiwKKwkJCQkJICBidWYtPnBlbmRpbmcpOworCQkJCWdvdG8gZXJyOworCQkJfQorCisJCQlyYWRlb25fY3BfZGlzY2FyZF9idWZmZXIoZGV2LCBidWYpOworCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDM6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfUEFDS0VUM1xuIik7CisJCQlpZiAocmFkZW9uX2VtaXRfcGFja2V0MyhkZXYsIGZpbGVfcHJpdiwgY21kYnVmKSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0MyBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQkJYnJlYWs7CisKKwkJY2FzZSBSQURFT05fQ01EX1BBQ0tFVDNfQ0xJUDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9QQUNLRVQzX0NMSVBcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3BhY2tldDNfY2xpcHJlY3QKKwkJCSAgICAoZGV2LCBmaWxlX3ByaXYsIGNtZGJ1Ziwgb3JpZ19uYm94KSkgeworCQkJCURSTV9FUlJPUigicmFkZW9uX2VtaXRfcGFja2V0M19jbGlwIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfU0NBTEFSUzI6CisJCQlEUk1fREVCVUcoIlJBREVPTl9DTURfU0NBTEFSUzJcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3NjYWxhcnMyKGRldl9wcml2LCBoZWFkZXIsIGNtZGJ1ZikpIHsKKwkJCQlEUk1fRVJST1IoInJhZGVvbl9lbWl0X3NjYWxhcnMyIGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKworCQljYXNlIFJBREVPTl9DTURfV0FJVDoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9XQUlUXG4iKTsKKwkJCWlmIChyYWRlb25fZW1pdF93YWl0KGRldiwgaGVhZGVyLndhaXQuZmxhZ3MpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF93YWl0IGZhaWxlZFxuIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCQlicmVhazsKKwkJY2FzZSBSQURFT05fQ01EX1ZFQ0xJTkVBUjoKKwkJCURSTV9ERUJVRygiUkFERU9OX0NNRF9WRUNMSU5FQVJcbiIpOworCQkJaWYgKHJhZGVvbl9lbWl0X3ZlY2xpbmVhcihkZXZfcHJpdiwgaGVhZGVyLCBjbWRidWYpKSB7CisJCQkJRFJNX0VSUk9SKCJyYWRlb25fZW1pdF92ZWNsaW5lYXIgZmFpbGVkXG4iKTsKKwkJCQlnb3RvIGVycjsKKwkJCX0KKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlEUk1fRVJST1IoImJhZCBjbWRfdHlwZSAlZCBhdCAlcFxuIiwKKwkJCQkgIGhlYWRlci5oZWFkZXIuY21kX3R5cGUsCisJCQkJICBjbWRidWYtPmJ1ZiAtIHNpemVvZihoZWFkZXIpKTsKKwkJCWdvdG8gZXJyOworCQl9CisJfQorCisJaWYgKG9yaWdfYnVmc3ogIT0gMCkKKwkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCisJRFJNX0RFQlVHKCJET05FXG4iKTsKKwlDT01NSVRfUklORygpOworCXJldHVybiAwOworCisgICAgICBlcnI6CisJaWYgKG9yaWdfYnVmc3ogIT0gMCkKKwkJZHJtX2ZyZWUoa2J1Ziwgb3JpZ19idWZzeiwgRFJNX01FTV9EUklWRVIpOworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IHJhZGVvbl9jcF9nZXRwYXJhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlkcm1fcmFkZW9uX3ByaXZhdGVfdCAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCWRybV9yYWRlb25fZ2V0cGFyYW1fdCAqcGFyYW0gPSBkYXRhOworCWludCB2YWx1ZTsKKworCURSTV9ERUJVRygicGlkPSVkXG4iLCBEUk1fQ1VSUkVOVFBJRCk7CisKKwlzd2l0Y2ggKHBhcmFtLT5wYXJhbSkgeworCWNhc2UgUkFERU9OX1BBUkFNX0dBUlRfQlVGRkVSX09GRlNFVDoKKwkJdmFsdWUgPSBkZXZfcHJpdi0+Z2FydF9idWZmZXJzX29mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9GUkFNRToKKwkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfZnJhbWVfcmVhZHMrKzsKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgwKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9ESVNQQVRDSDoKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgxKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTEFTVF9DTEVBUjoKKwkJZGV2X3ByaXYtPnN0YXRzLmxhc3RfY2xlYXJfcmVhZHMrKzsKKwkJdmFsdWUgPSBHRVRfU0NSQVRDSCgyKTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fSVJRX05SOgorCQl2YWx1ZSA9IGRldi0+aXJxOworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9HQVJUX0JBU0U6CisJCXZhbHVlID0gZGV2X3ByaXYtPmdhcnRfdm1fc3RhcnQ7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX1JFR0lTVEVSX0hBTkRMRToKKwkJdmFsdWUgPSBkZXZfcHJpdi0+bW1pby0+b2Zmc2V0OworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9TVEFUVVNfSEFORExFOgorCQl2YWx1ZSA9IGRldl9wcml2LT5yaW5nX3JwdHJfb2Zmc2V0OworCQlicmVhazsKKyNpZiBCSVRTX1BFUl9MT05HID09IDMyCisJCS8qCisJCSAqIFRoaXMgaW9jdGwoKSBkb2Vzbid0IHdvcmsgb24gNjQtYml0IHBsYXRmb3JtcyBiZWNhdXNlIGh3X2xvY2sgaXMgYQorCQkgKiBwb2ludGVyIHdoaWNoIGNhbid0IGZpdCBpbnRvIGFuIGludC1zaXplZCB2YXJpYWJsZS4gIEFjY29yZGluZyB0bworCQkgKiBNaWNoZWwgRMOkbnplciwgdGhlIGlvY3RsKCkgaXMgb25seSB1c2VkIG9uIGVtYmVkZGVkIHBsYXRmb3Jtcywgc28KKwkJICogbm90IHN1cHBvcnRpbmcgaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbS4gIElmIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkKKwkJICogaXMgbmVlZGVkIG9uIDY0LWJpdCBwbGF0Zm9ybXMsIGEgbmV3IGlvY3RsKCkgd291bGQgaGF2ZSB0byBiZSBhZGRlZCwKKwkJICogc28gYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIHRoZSBlbWJlZGRlZCBwbGF0Zm9ybXMgY2FuIGJlCisJCSAqIG1haW50YWluZWQuICAtLWRhdmlkbSA0LUZlYi0yMDA0LgorCQkgKi8KKwljYXNlIFJBREVPTl9QQVJBTV9TQVJFQV9IQU5ETEU6CisJCS8qIFRoZSBsb2NrIGlzIHRoZSBmaXJzdCBkd29yZCBpbiB0aGUgc2FyZWEuICovCisJCXZhbHVlID0gKGxvbmcpZGV2LT5sb2NrLmh3X2xvY2s7CisJCWJyZWFrOworI2VuZGlmCisJY2FzZSBSQURFT05fUEFSQU1fR0FSVF9URVhfSEFORExFOgorCQl2YWx1ZSA9IGRldl9wcml2LT5nYXJ0X3RleHR1cmVzX29mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fU0NSQVRDSF9PRkZTRVQ6CisJCWlmICghZGV2X3ByaXYtPndyaXRlYmFja193b3JrcykKKwkJCXJldHVybiAtRUlOVkFMOworCQl2YWx1ZSA9IFJBREVPTl9TQ1JBVENIX1JFR19PRkZTRVQ7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX0NBUkRfVFlQRToKKwkJaWYgKGRldl9wcml2LT5mbGFncyAmIFJBREVPTl9JU19QQ0lFKQorCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9QQ0lFOworCQllbHNlIGlmIChkZXZfcHJpdi0+ZmxhZ3MgJiBSQURFT05fSVNfQUdQKQorCQkJdmFsdWUgPSBSQURFT05fQ0FSRF9BR1A7CisJCWVsc2UKKwkJCXZhbHVlID0gUkFERU9OX0NBUkRfUENJOworCQlicmVhazsKKwljYXNlIFJBREVPTl9QQVJBTV9WQkxBTktfQ1JUQzoKKwkJdmFsdWUgPSByYWRlb25fdmJsYW5rX2NydGNfZ2V0KGRldik7CisJCWJyZWFrOworCWNhc2UgUkFERU9OX1BBUkFNX0ZCX0xPQ0FUSU9OOgorCQl2YWx1ZSA9IHJhZGVvbl9yZWFkX2ZiX2xvY2F0aW9uKGRldl9wcml2KTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fUEFSQU1fTlVNX0dCX1BJUEVTOgorCQl2YWx1ZSA9IGRldl9wcml2LT5udW1fZ2JfcGlwZXM7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCURSTV9ERUJVRygiSW52YWxpZCBwYXJhbWV0ZXIgJWRcbiIsIHBhcmFtLT5wYXJhbSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChEUk1fQ09QWV9UT19VU0VSKHBhcmFtLT52YWx1ZSwgJnZhbHVlLCBzaXplb2YoaW50KSkpIHsKKwkJRFJNX0VSUk9SKCJjb3B5X3RvX3VzZXJcbiIpOworCQlyZXR1cm4gLUVGQVVMVDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCByYWRlb25fY3Bfc2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlkcm1fcmFkZW9uX3NldHBhcmFtX3QgKnNwID0gZGF0YTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJc3dpdGNoIChzcC0+cGFyYW0pIHsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9GQl9MT0NBVElPTjoKKwkJcmFkZW9uX3ByaXYgPSBmaWxlX3ByaXYtPmRyaXZlcl9wcml2OworCQlyYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhID0gZGV2X3ByaXYtPmZiX2xvY2F0aW9uIC0KKwkJICAgIHNwLT52YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fU1dJVENIX1RJTElORzoKKwkJaWYgKHNwLT52YWx1ZSA9PSAwKSB7CisJCQlEUk1fREVCVUcoImNvbG9yIHRpbGluZyBkaXNhYmxlZFxuIik7CisJCQlkZXZfcHJpdi0+ZnJvbnRfcGl0Y2hfb2Zmc2V0ICY9IH5SQURFT05fRFNUX1RJTEVfTUFDUk87CisJCQlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgJj0gflJBREVPTl9EU1RfVElMRV9NQUNSTzsKKwkJCWRldl9wcml2LT5zYXJlYV9wcml2LT50aWxpbmdfZW5hYmxlZCA9IDA7CisJCX0gZWxzZSBpZiAoc3AtPnZhbHVlID09IDEpIHsKKwkJCURSTV9ERUJVRygiY29sb3IgdGlsaW5nIGVuYWJsZWRcbiIpOworCQkJZGV2X3ByaXYtPmZyb250X3BpdGNoX29mZnNldCB8PSBSQURFT05fRFNUX1RJTEVfTUFDUk87CisJCQlkZXZfcHJpdi0+YmFja19waXRjaF9vZmZzZXQgfD0gUkFERU9OX0RTVF9USUxFX01BQ1JPOworCQkJZGV2X3ByaXYtPnNhcmVhX3ByaXYtPnRpbGluZ19lbmFibGVkID0gMTsKKwkJfQorCQlicmVhazsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9QQ0lHQVJUX0xPQ0FUSU9OOgorCQlkZXZfcHJpdi0+cGNpZ2FydF9vZmZzZXQgPSBzcC0+dmFsdWU7CisJCWRldl9wcml2LT5wY2lnYXJ0X29mZnNldF9zZXQgPSAxOworCQlicmVhazsKKwljYXNlIFJBREVPTl9TRVRQQVJBTV9ORVdfTUVNTUFQOgorCQlkZXZfcHJpdi0+bmV3X21lbW1hcCA9IHNwLT52YWx1ZTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9UQUJMRV9TSVpFOgorCQlkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPSBzcC0+dmFsdWU7CisJCWlmIChkZXZfcHJpdi0+Z2FydF9pbmZvLnRhYmxlX3NpemUgPCBSQURFT05fUENJR0FSVF9UQUJMRV9TSVpFKQorCQkJZGV2X3ByaXYtPmdhcnRfaW5mby50YWJsZV9zaXplID0gUkFERU9OX1BDSUdBUlRfVEFCTEVfU0laRTsKKwkJYnJlYWs7CisJY2FzZSBSQURFT05fU0VUUEFSQU1fVkJMQU5LX0NSVEM6CisJCXJldHVybiByYWRlb25fdmJsYW5rX2NydGNfc2V0KGRldiwgc3AtPnZhbHVlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHKCJJbnZhbGlkIHBhcmFtZXRlciAlZFxuIiwgc3AtPnBhcmFtKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIFdoZW4gYSBjbGllbnQgZGllczoKKyAqICAgIC0gQ2hlY2sgZm9yIGFuZCBjbGVhbiB1cCBmbGlwcGVkIHBhZ2Ugc3RhdGUKKyAqICAgIC0gRnJlZSBhbnkgYWxsb2NlZCBHQVJUIG1lbW9yeS4KKyAqICAgIC0gRnJlZSBhbnkgYWxsb2NlZCByYWRlb24gc3VyZmFjZXMuCisgKgorICogRFJNIGluZnJhc3RydWN0dXJlIHRha2VzIGNhcmUgb2YgcmVjbGFpbWluZyBkbWEgYnVmZmVycy4KKyAqLwordm9pZCByYWRlb25fZHJpdmVyX3ByZWNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCWlmIChkZXYtPmRldl9wcml2YXRlKSB7CisJCWRybV9yYWRlb25fcHJpdmF0ZV90ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJCWRldl9wcml2LT5wYWdlX2ZsaXBwaW5nID0gMDsKKwkJcmFkZW9uX21lbV9yZWxlYXNlKGZpbGVfcHJpdiwgZGV2X3ByaXYtPmdhcnRfaGVhcCk7CisJCXJhZGVvbl9tZW1fcmVsZWFzZShmaWxlX3ByaXYsIGRldl9wcml2LT5mYl9oZWFwKTsKKwkJcmFkZW9uX3N1cmZhY2VzX3JlbGVhc2UoZmlsZV9wcml2LCBkZXZfcHJpdik7CisJfQorfQorCit2b2lkIHJhZGVvbl9kcml2ZXJfbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+ZGV2X3ByaXZhdGUpIHsKKwkJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCQlpZiAoZGV2X3ByaXYtPnNhcmVhX3ByaXYgJiYKKwkJICAgIGRldl9wcml2LT5zYXJlYV9wcml2LT5wZkN1cnJlbnRQYWdlICE9IDApCisJCQlyYWRlb25fY3BfZGlzcGF0Y2hfZmxpcChkZXYpOworCX0KKworCXJhZGVvbl9kb19yZWxlYXNlKGRldik7Cit9CisKK2ludCByYWRlb25fZHJpdmVyX29wZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJZHJtX3JhZGVvbl9wcml2YXRlX3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2OworCisJRFJNX0RFQlVHKCJcbiIpOworCXJhZGVvbl9wcml2ID0KKwkgICAgKHN0cnVjdCBkcm1fcmFkZW9uX2RyaXZlcl9maWxlX2ZpZWxkcyAqKQorCSAgICBkcm1fYWxsb2Moc2l6ZW9mKCpyYWRlb25fcHJpdiksIERSTV9NRU1fRklMRVMpOworCisJaWYgKCFyYWRlb25fcHJpdikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmaWxlX3ByaXYtPmRyaXZlcl9wcml2ID0gcmFkZW9uX3ByaXY7CisKKwlpZiAoZGV2X3ByaXYpCisJCXJhZGVvbl9wcml2LT5yYWRlb25fZmJfZGVsdGEgPSBkZXZfcHJpdi0+ZmJfbG9jYXRpb247CisJZWxzZQorCQlyYWRlb25fcHJpdi0+cmFkZW9uX2ZiX2RlbHRhID0gMDsKKwlyZXR1cm4gMDsKK30KKwordm9pZCByYWRlb25fZHJpdmVyX3Bvc3RjbG9zZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlzdHJ1Y3QgZHJtX3JhZGVvbl9kcml2ZXJfZmlsZV9maWVsZHMgKnJhZGVvbl9wcml2ID0KKwkgICAgZmlsZV9wcml2LT5kcml2ZXJfcHJpdjsKKworCWRybV9mcmVlKHJhZGVvbl9wcml2LCBzaXplb2YoKnJhZGVvbl9wcml2KSwgRFJNX01FTV9GSUxFUyk7Cit9CisKK3N0cnVjdCBkcm1faW9jdGxfZGVzYyByYWRlb25faW9jdGxzW10gPSB7CisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NQX0lOSVQsIHJhZGVvbl9jcF9pbml0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9TVEFSVCwgcmFkZW9uX2NwX3N0YXJ0LCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9DUF9TVE9QLCByYWRlb25fY3Bfc3RvcCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfUkVTRVQsIHJhZGVvbl9jcF9yZXNldCwgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9PVF9PTkxZKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfSURMRSwgcmFkZW9uX2NwX2lkbGUsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fQ1BfUkVTVU1FLCByYWRlb25fY3BfcmVzdW1lLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1JFU0VULCByYWRlb25fZW5naW5lX3Jlc2V0LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZVTExTQ1JFRU4sIHJhZGVvbl9mdWxsc2NyZWVuLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NXQVAsIHJhZGVvbl9jcF9zd2FwLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NMRUFSLCByYWRlb25fY3BfY2xlYXIsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fVkVSVEVYLCByYWRlb25fY3BfdmVydGV4LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lORElDRVMsIHJhZGVvbl9jcF9pbmRpY2VzLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1RFWFRVUkUsIHJhZGVvbl9jcF90ZXh0dXJlLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1NUSVBQTEUsIHJhZGVvbl9jcF9zdGlwcGxlLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lORElSRUNULCByYWRlb25fY3BfaW5kaXJlY3QsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX1ZFUlRFWDIsIHJhZGVvbl9jcF92ZXJ0ZXgyLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0NNREJVRiwgcmFkZW9uX2NwX2NtZGJ1ZiwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9HRVRQQVJBTSwgcmFkZW9uX2NwX2dldHBhcmFtLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZMSVAsIHJhZGVvbl9jcF9mbGlwLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0FMTE9DLCByYWRlb25fbWVtX2FsbG9jLCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0ZSRUUsIHJhZGVvbl9tZW1fZnJlZSwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JTklUX0hFQVAsIHJhZGVvbl9tZW1faW5pdF9oZWFwLCBEUk1fQVVUSHxEUk1fTUFTVEVSfERSTV9ST09UX09OTFkpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9JUlFfRU1JVCwgcmFkZW9uX2lycV9lbWl0LCBEUk1fQVVUSCksCisJRFJNX0lPQ1RMX0RFRihEUk1fUkFERU9OX0lSUV9XQUlULCByYWRlb25faXJxX3dhaXQsIERSTV9BVVRIKSwKKwlEUk1fSU9DVExfREVGKERSTV9SQURFT05fU0VUUEFSQU0sIHJhZGVvbl9jcF9zZXRwYXJhbSwgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TVVJGX0FMTE9DLCByYWRlb25fc3VyZmFjZV9hbGxvYywgRFJNX0FVVEgpLAorCURSTV9JT0NUTF9ERUYoRFJNX1JBREVPTl9TVVJGX0ZSRUUsIHJhZGVvbl9zdXJmYWNlX2ZyZWUsIERSTV9BVVRIKQorfTsKKworaW50IHJhZGVvbl9tYXhfaW9jdGwgPSBEUk1fQVJSQVlfU0laRShyYWRlb25faW9jdGxzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2UvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4Zjg0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL01ha2VmaWxlCkBAIC0wLDAgKzEsOSBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgPSAtSWluY2x1ZGUvZHJtCitzYXZhZ2UteSA6PSBzYXZhZ2VfZHJ2Lm8gc2F2YWdlX2JjaS5vIHNhdmFnZV9zdGF0ZS5vCisKK29iai0kKENPTkZJR19EUk1fU0FWQUdFKSs9IHNhdmFnZS5vCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jIGIvZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfYmNpLmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2JjaS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9iY2kuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJ2LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9zYXZhZ2Uvc2F2YWdlX2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9kcnYuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3NhdmFnZS9zYXZhZ2VfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2F2YWdlX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3NhdmFnZV9zdGF0ZS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2F2YWdlL3NhdmFnZV9zdGF0ZS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2lzL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NDFjMDYxCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9NYWtlZmlsZQpAQCAtMCwwICsxLDEwIEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA9IC1JaW5jbHVkZS9kcm0KK3Npcy15IDo9IHNpc19kcnYubyBzaXNfbW0ubworCitvYmotJChDT05GSUdfRFJNX1NJUykgICArPSBzaXMubworCisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfZHJ2LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2lzX2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vc2lzL3Npc19kcnYuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS9zaXMvc2lzX2Rydi5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3Npc19tbS5jIGIvZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9zaXNfbW0uYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3Npcy9zaXNfbW0uYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzc5ZjI5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvTWFrZWZpbGUKQEAgLTAsMCArMSw4IEBACisjCisjIE1ha2VmaWxlIGZvciB0aGUgZHJtIGRldmljZSBkcml2ZXIuICBUaGlzIGRyaXZlciBwcm92aWRlcyBzdXBwb3J0IGZvciB0aGUKKyMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBpbiBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCisKK2NjZmxhZ3MteSA6PSAtSWluY2x1ZGUvZHJtCit0ZGZ4LXkgOj0gdGRmeF9kcnYubworCitvYmotJChDT05GSUdfRFJNX1RERlgpCSs9IHRkZngubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3RkZngvdGRmeF9kcnYuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS90ZGZ4X2Rydi5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdGRmeC90ZGZ4X2Rydi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3RkZnhfZHJ2LmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS90ZGZ4L3RkZnhfZHJ2LmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92aWEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1OWUyNTgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL01ha2VmaWxlCkBAIC0wLDAgKzEsOCBAQAorIworIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCisjIERpcmVjdCBSZW5kZXJpbmcgSW5mcmFzdHJ1Y3R1cmUgKERSSSkgaW4gWEZyZWU4NiA0LjEuMCBhbmQgaGlnaGVyLgorCitjY2ZsYWdzLXkgOj0gLUlpbmNsdWRlL2RybQordmlhLXkgICAgOj0gdmlhX2lycS5vIHZpYV9kcnYubyB2aWFfbWFwLm8gdmlhX21tLm8gdmlhX2RtYS5vIHZpYV92ZXJpZmllci5vIHZpYV92aWRlby5vIHZpYV9kbWFibGl0Lm8KKworb2JqLSQoQ09ORklHX0RSTV9WSUEpCSs9dmlhLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfM2RfcmVnLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhXzNkX3JlZy5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV8zZF9yZWcuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfZG1hLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2RtYS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kbWFibGl0LmggYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kbWFibGl0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2RtYWJsaXQuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZG1hYmxpdC5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2Rydi5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcnYuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfZHJ2LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX2Rydi5oCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9kcnYuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9pcnEuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfaXJxLmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX2lycS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYyBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX21hcC5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tYXAuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfbWFwLmMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV9tbS5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV9tbS5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV92ZXJpZmllci5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuYwpyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3ZpYS92aWFfdmVyaWZpZXIuYwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS92aWFfdmVyaWZpZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vdmlhX3ZlcmlmaWVyLmgKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92aWEvdmlhX3ZlcmlmaWVyLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vdmlhX3ZpZGVvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3ZpYV92aWRlby5jCnJlbmFtZSB0byBkcml2ZXJzL2dwdS9kcm0vdmlhL3ZpYV92aWRlby5jCmRpZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWRyYXcuYyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCmluZGV4IDFjYTZmNDYuLjJmZGU2YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaGlkL2hpZHJhdy5jCisrKyBiL2RyaXZlcnMvaGlkL2hpZHJhdy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9oaWQuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9oaWRyYXcuaD4KIApAQCAtMTU3LDYgKzE1OCw3IEBACiAJc3RydWN0IGhpZHJhd19saXN0ICpsaXN0OwogCWludCBlcnIgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoIShsaXN0ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGhpZHJhd19saXN0KSwgR0ZQX0tFUk5FTCkpKSB7CiAJCWVyciA9IC1FTk9NRU07CiAJCWdvdG8gb3V0OwpAQCAtMTgzLDYgKzE4NSw3IEBACiBvdXRfdW5sb2NrOgogCXNwaW5fdW5sb2NrKCZtaW5vcnNfbG9jayk7CiBvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiAKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vS2NvbmZpZyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwppbmRleCA0ZGM3NmJjLi4wMGZmNTMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL0tjb25maWcKKysrIGIvZHJpdmVycy9od21vbi9LY29uZmlnCkBAIC0zMzAsNiArMzMwLDIwIEBACiAJICBzZW5zb3IgaW5zaWRlIHlvdXIgQ1BVLiBTdXBwb3J0ZWQgYWxsIGFyZSBhbGwga25vd24gdmFyaWFudHMKIAkgIG9mIEludGVsIENvcmUgZmFtaWx5LgogCitjb25maWcgU0VOU09SU19JQk1BRU0KKwl0cmlzdGF0ZSAiSUJNIEFjdGl2ZSBFbmVyZ3kgTWFuYWdlciB0ZW1wZXJhdHVyZS9wb3dlciBzZW5zb3JzIGFuZCBjb250cm9sIgorCXNlbGVjdCBJUE1JX1NJCisJZGVwZW5kcyBvbiBJUE1JX0hBTkRMRVIKKwloZWxwCisJICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdGhlIHRlbXBlcmF0dXJlIGFuZAorCSAgcG93ZXIgc2Vuc29ycyBhbmQgY2FwcGluZyBoYXJkd2FyZSBpbiB2YXJpb3VzIElCTSBTeXN0ZW0gWAorCSAgc2VydmVycyB0aGF0IHN1cHBvcnQgQWN0aXZlIEVuZXJneSBNYW5hZ2VyLiAgVGhpcyBpbmNsdWRlcworCSAgdGhlIHgzMzUwLCB4MzU1MCwgeDM2NTAsIHgzNjU1LCB4Mzc1NSwgeDM4NTAgTTIsIHgzOTUwIE0yLAorCSAgYW5kIGNlcnRhaW4gSFMyeC9MUzJ4L1FTMnggYmxhZGVzLgorCisJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCisJICB3aWxsIGJlIGNhbGxlZCBpYm1hZW0uCisKIGNvbmZpZyBTRU5TT1JTX0lCTVBFWAogCXRyaXN0YXRlICJJQk0gUG93ZXJFeGVjdXRpdmUgdGVtcGVyYXR1cmUvcG93ZXIgc2Vuc29ycyIKIAlzZWxlY3QgSVBNSV9TSQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKaW5kZXggM2JkYjA1YS4uZDA5ODY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCkBAIC00MSw2ICs0MSw3IEBACiBvYmotJChDT05GSUdfU0VOU09SU19HTDUyMFNNKQkrPSBnbDUyMHNtLm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0hEQVBTKQkrPSBoZGFwcy5vCiBvYmotJChDT05GSUdfU0VOU09SU19JNUtfQU1CKQkrPSBpNWtfYW1iLm8KK29iai0kKENPTkZJR19TRU5TT1JTX0lCTUFFTSkJKz0gaWJtYWVtLm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0lCTVBFWCkJKz0gaWJtcGV4Lm8KIG9iai0kKENPTkZJR19TRU5TT1JTX0lUODcpCSs9IGl0ODcubwogb2JqLSQoQ09ORklHX1NFTlNPUlNfSzhURU1QKQkrPSBrOHRlbXAubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hYml0dWd1cnUzLmMgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydTMuYwppbmRleCBlZDMzZmRkLi5mMDBmNDk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydTMuYworKysgYi9kcml2ZXJzL2h3bW9uL2FiaXR1Z3VydTMuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2h3bW9uLmg+CiAjaW5jbHVkZSA8bGludXgvaHdtb24tc3lzZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWkuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAogLyogdUd1cnUzIGJhbmsgYWRkcmVzc2VzICovCkBAIC0zMjMsNyArMzI0LDcgQEAKIAkJeyAiQVVYMSBGYW4iLAkJMzYsIDIsIDYwLCAxLCAwIH0sCiAJCXsgTlVMTCwgMCwgMCwgMCwgMCwgMCB9IH0KIAl9LAotCXsgMHgwMDEzLCAidW5rbm93biIsIHsKKwl7IDB4MDAxMywgIkFiaXQgQVc4RCIsIHsKIAkJeyAiQ1BVIENvcmUiLAkJIDAsIDAsIDEwLCAxLCAwIH0sCiAJCXsgIkREUiIsCQkgMSwgMCwgMTAsIDEsIDAgfSwKIAkJeyAiRERSIFZUVCIsCQkgMiwgMCwgMTAsIDEsIDAgfSwKQEAgLTM0OSw2ICszNTAsNyBAQAogCQl7ICJBVVgyIEZhbiIsCQkzNiwgMiwgNjAsIDEsIDAgfSwKIAkJeyAiQVVYMyBGYW4iLAkJMzcsIDIsIDYwLCAxLCAwIH0sCiAJCXsgIkFVWDQgRmFuIiwJCTM4LCAyLCA2MCwgMSwgMCB9LAorCQl7ICJBVVg1IEZhbiIsCQkzOSwgMiwgNjAsIDEsIDAgfSwKIAkJeyBOVUxMLCAwLCAwLCAwLCAwLCAwIH0gfQogCX0sCiAJeyAweDAwMTQsICJBYml0IEFCOSBQcm8iLCB7CkBAIC0xMTExLDExICsxMTEzLDEyIEBACiB7CiAJLyogU2VlIGlmIHRoZXJlIGlzIGFuIHVndXJ1MyB0aGVyZS4gQW4gaWRsZSB1R3VydTMgd2lsbCBob2xkIDB4MDAgb3IKIAkgICAweDA4IGF0IERBVEEgYW5kIDB4QUMgYXQgQ01ELiBTb21ldGltZXMgdGhlIHVHdXJ1MyB3aWxsIGhvbGQgMHgwNQotCSAgIGF0IENNRCBpbnN0ZWFkLCB3aHkgaXMgdW5rbm93bi4gU28gd2UgdGVzdCBmb3IgMHgwNSB0b28uICovCisJICAgb3IgMHg1NSBhdCBDTUQgaW5zdGVhZCwgd2h5IGlzIHVua25vd24uICovCiAJdTggZGF0YV92YWwgPSBpbmJfcChBQklUX1VHVVJVM19CQVNFICsgQUJJVF9VR1VSVTNfREFUQSk7CiAJdTggY21kX3ZhbCA9IGluYl9wKEFCSVRfVUdVUlUzX0JBU0UgKyBBQklUX1VHVVJVM19DTUQpOwogCWlmICgoKGRhdGFfdmFsID09IDB4MDApIHx8IChkYXRhX3ZhbCA9PSAweDA4KSkgJiYKLQkJCSgoY21kX3ZhbCA9PSAweEFDKSB8fCAoY21kX3ZhbCA9PSAweDA1KSkpCisJCQkoKGNtZF92YWwgPT0gMHhBQykgfHwgKGNtZF92YWwgPT0gMHgwNSkgfHwKKwkJCSAoY21kX3ZhbCA9PSAweDU1KSkpCiAJCXJldHVybiBBQklUX1VHVVJVM19CQVNFOwogCiAJQUJJVF9VR1VSVTNfREVCVUcoIm5vIEFiaXQgdUd1cnUzIGZvdW5kLCBkYXRhID0gMHglMDJYLCBjbWQgPSAiCkBAIC0xMTM4LDYgKzExNDEsMTUgQEAKIAlpbnQgYWRkcmVzcywgZXJyOwogCXN0cnVjdCByZXNvdXJjZSByZXMgPSB7IC5mbGFncyA9IElPUkVTT1VSQ0VfSU8gfTsKIAorI2lmZGVmIENPTkZJR19ETUkKKwljb25zdCBjaGFyICpib2FyZF92ZW5kb3IgPSBkbWlfZ2V0X3N5c3RlbV9pbmZvKERNSV9CT0FSRF9WRU5ET1IpOworCisJLyogc2FmZXR5IGNoZWNrLCByZWZ1c2UgdG8gbG9hZCBvbiBub24gQWJpdCBtb3RoZXJib2FyZHMgKi8KKwlpZiAoIWZvcmNlICYmICghYm9hcmRfdmVuZG9yIHx8CisJCQlzdHJjbXAoYm9hcmRfdmVuZG9yLCAiaHR0cDovL3d3dy5hYml0LmNvbS50dy8iKSkpCisJCXJldHVybiAtRU5PREVWOworI2VuZGlmCisKIAlhZGRyZXNzID0gYWJpdHVndXJ1M19kZXRlY3QoKTsKIAlpZiAoYWRkcmVzcyA8IDApCiAJCXJldHVybiBhZGRyZXNzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9hZHQ3NDczLmMgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NzMuYwppbmRleCBjMTAwOWQ2Li45M2RiZjVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2FkdDc0NzMuYworKysgYi9kcml2ZXJzL2h3bW9uL2FkdDc0NzMuYwpAQCAtMzA5LDYgKzMwOSw5IEBACiAJCQkJCQlBRFQ3NDczX1JFR19QV01fQkhWUihpKSk7CiAJfQogCisJaSA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIEFEVDc0NzNfUkVHX0NGRzQpOworCWRhdGEtPm1heF9kdXR5X2F0X292ZXJoZWF0ID0gISEoaSAmIEFEVDc0NzNfQ0ZHNF9NQVhfRFVUWV9BVF9PVlQpOworCiAJZGF0YS0+bGltaXRzX2xhc3RfdXBkYXRlZCA9IGxvY2FsX2ppZmZpZXM7CiAJZGF0YS0+bGltaXRzX3ZhbGlkID0gMTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9oZGFwcy5jIGIvZHJpdmVycy9od21vbi9oZGFwcy5jCmluZGV4IGJhYjVmZDIuLjUwZjIyNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vaGRhcHMuYworKysgYi9kcml2ZXJzL2h3bW9uL2hkYXBzLmMKQEAgLTUxNSwxNiArNTE1LDI0IEBACiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFI1MCIpLAogCUhEQVBTX0RNSV9NQVRDSF9OT1JNQUwoIklCTSIsICJUaGlua1BhZCBSNTEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgUjUyIiksCisJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFI2MWkiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgUjYxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MXAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQxIiksCiAJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiSUJNIiwgIlRoaW5rUGFkIFQ0MnAiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgVDQyIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFQ0MyIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgVDYxcCIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBUNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWDQwIiksCiAJSERBUFNfRE1JX01BVENIX05PUk1BTCgiSUJNIiwgIlRoaW5rUGFkIFg0MSIpLAogCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjAiKSwKKwlIREFQU19ETUlfTUFUQ0hfSU5WRVJUKCJMRU5PVk8iLCAiVGhpbmtQYWQgWDYxcyIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBYNjEiKSwKIAlIREFQU19ETUlfTUFUQ0hfTk9STUFMKCJJQk0iLCAiVGhpbmtQYWQgWjYwbSIpLAorCUhEQVBTX0RNSV9NQVRDSF9JTlZFUlQoIkxFTk9WTyIsICJUaGlua1BhZCBaNjFtIiksCisJSERBUFNfRE1JX01BVENIX0lOVkVSVCgiTEVOT1ZPIiwgIlRoaW5rUGFkIFo2MXAiKSwKIAl7IC5pZGVudCA9IE5VTEwgfQogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9pNWtfYW1iLmMgYi9kcml2ZXJzL2h3bW9uL2k1a19hbWIuYwppbmRleCA2YWM1YzZmLi5mOWUyZWQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2k1a19hbWIuYworKysgYi9kcml2ZXJzL2h3bW9uL2k1a19hbWIuYwpAQCAtMTExLDYgKzExMSw3IEBACiAJdm9pZCBfX2lvbWVtICphbWJfbW1pbzsKIAlzdHJ1Y3QgaTVrX2RldmljZV9hdHRyaWJ1dGUgKmF0dHJzOwogCXVuc2lnbmVkIGludCBudW1fYXR0cnM7CisJdW5zaWduZWQgbG9uZyBjaGlwc2V0X2lkOwogfTsKIAogc3RhdGljIHNzaXplX3Qgc2hvd19uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCkBAIC0zODIsNyArMzgzLDggQEAKIAlyZXR1cm4gcmVzOwogfQogCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBpNWtfZmluZF9hbWJfcmVnaXN0ZXJzKHN0cnVjdCBpNWtfYW1iX2RhdGEgKmRhdGEpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBpNWtfZmluZF9hbWJfcmVnaXN0ZXJzKHN0cnVjdCBpNWtfYW1iX2RhdGEgKmRhdGEsCisJCQkJCSAgICB1bnNpZ25lZCBsb25nIGRldmlkKQogewogCXN0cnVjdCBwY2lfZGV2ICpwY2lkZXY7CiAJdTMyIHZhbDMyOwpAQCAtMzkwLDcgKzM5Miw3IEBACiAKIAkvKiBGaW5kIEFNQiByZWdpc3RlciBtZW1vcnkgc3BhY2UgKi8KIAlwY2lkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lEX0lOVEVMLAotCQkJCVBDSV9ERVZJQ0VfSURfSU5URUxfNTAwMF9FUlIsCisJCQkJZGV2aWQsCiAJCQkJTlVMTCk7CiAJaWYgKCFwY2lkZXYpCiAJCXJldHVybiAtRU5PREVWOwpAQCAtNDA5LDYgKzQxMSw4IEBACiAJCWdvdG8gb3V0OwogCX0KIAorCWRhdGEtPmNoaXBzZXRfaWQgPSBkZXZpZDsKKwogCXJlcyA9IDA7CiBvdXQ6CiAJcGNpX2Rldl9wdXQocGNpZGV2KTsKQEAgLTQ0MSwxMCArNDQ1LDMwIEBACiAJcmV0dXJuIHJlczsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgaTVrX2NoYW5uZWxfcGNpX2lkKHN0cnVjdCBpNWtfYW1iX2RhdGEgKmRhdGEsCisJCQkJCXVuc2lnbmVkIGxvbmcgY2hhbm5lbCkKK3sKKwlzd2l0Y2ggKGRhdGEtPmNoaXBzZXRfaWQpIHsKKwljYXNlIFBDSV9ERVZJQ0VfSURfSU5URUxfNTAwMF9FUlI6CisJCXJldHVybiBQQ0lfREVWSUNFX0lEX0lOVEVMXzUwMDBfRkJEMCArIGNoYW5uZWw7CisJY2FzZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzU0MDBfRVJSOgorCQlyZXR1cm4gUENJX0RFVklDRV9JRF9JTlRFTF81NDAwX0ZCRDAgKyBjaGFubmVsOworCWRlZmF1bHQ6CisJCUJVRygpOworCX0KK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY2hpcHNldF9pZHNbXSA9IHsKKwlQQ0lfREVWSUNFX0lEX0lOVEVMXzUwMDBfRVJSLAorCVBDSV9ERVZJQ0VfSURfSU5URUxfNTQwMF9FUlIsCisJMAorfTsKKwogc3RhdGljIGludCBfX2RldmluaXQgaTVrX2FtYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBpNWtfYW1iX2RhdGEgKmRhdGE7CiAJc3RydWN0IHJlc291cmNlICpyZXNvOworCWludCBpOwogCWludCByZXMgPSAtRU5PREVWOwogCiAJZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CkBAIC00NTIsMTkgKzQ3NiwyNCBAQAogCQlyZXR1cm4gLUVOT01FTTsKIAogCS8qIEZpZ3VyZSBvdXQgd2hlcmUgdGhlIEFNQiByZWdpc3RlcnMgbGl2ZSAqLwotCXJlcyA9IGk1a19maW5kX2FtYl9yZWdpc3RlcnMoZGF0YSk7CisJaSA9IDA7CisJZG8geworCQlyZXMgPSBpNWtfZmluZF9hbWJfcmVnaXN0ZXJzKGRhdGEsIGNoaXBzZXRfaWRzW2ldKTsKKwkJaSsrOworCX0gd2hpbGUgKHJlcyAmJiBjaGlwc2V0X2lkc1tpXSk7CisKIAlpZiAocmVzKQogCQlnb3RvIGVycjsKIAogCS8qIENvcHkgdGhlIERJTU0gcHJlc2VuY2UgbWFwIGZvciB0aGUgZmlyc3QgdHdvIGNoYW5uZWxzICovCiAJcmVzID0gaTVrX2NoYW5uZWxfcHJvYmUoJmRhdGEtPmFtYl9wcmVzZW50WzBdLAotCQkJCVBDSV9ERVZJQ0VfSURfSU5URUxfNTAwMF9GQkQwKTsKKwkJCQlpNWtfY2hhbm5lbF9wY2lfaWQoZGF0YSwgMCkpOwogCWlmIChyZXMpCiAJCWdvdG8gZXJyOwogCiAJLyogQ29weSB0aGUgRElNTSBwcmVzZW5jZSBtYXAgZm9yIHRoZSBvcHRpb25hbCBzZWNvbmQgdHdvIGNoYW5uZWxzICovCiAJaTVrX2NoYW5uZWxfcHJvYmUoJmRhdGEtPmFtYl9wcmVzZW50WzJdLAotCQkJICBQQ0lfREVWSUNFX0lEX0lOVEVMXzUwMDBfRkJEMSk7CisJCQkgIGk1a19jaGFubmVsX3BjaV9pZChkYXRhLCAxKSk7CiAKIAkvKiBTZXQgdXAgcmVzb3VyY2UgcmVnaW9ucyAqLwogCXJlc28gPSByZXF1ZXN0X21lbV9yZWdpb24oZGF0YS0+YW1iX2Jhc2UsIGRhdGEtPmFtYl9sZW4sIERSVk5BTUUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9pYm1hZW0uYyBiL2RyaXZlcnMvaHdtb24vaWJtYWVtLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk0MTZlNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvaHdtb24vaWJtYWVtLmMKQEAgLTAsMCArMSwxMTExIEBACisvKgorICogQSBod21vbiBkcml2ZXIgZm9yIHRoZSBJQk0gQWN0aXZlIEVuZXJneSBNYW5hZ2VyIHRlbXBlcmF0dXJlL3Bvd2VyIHNlbnNvcnMKKyAqIGFuZCBjYXBwaW5nIGZ1bmN0aW9uYWxpdHkuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSUJNCisgKgorICogQXV0aG9yOiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0B1cy5pYm0uY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaW5jbHVkZSA8bGludXgvaXBtaS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2h3bW9uLmg+CisjaW5jbHVkZSA8bGludXgvaHdtb24tc3lzZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9rZGV2X3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2lkci5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZS5oPgorCisjZGVmaW5lIFJFRlJFU0hfSU5URVJWQUwJKEhaKQorI2RlZmluZSBJUE1JX1RJTUVPVVQJCSgzMCAqIEhaKQorI2RlZmluZSBEUlZOQU1FCQkJImFlbSIKKworI2RlZmluZSBBRU1fTkVURk4JCTB4MkUKKworI2RlZmluZSBBRU1fRklORF9GV19DTUQJCTB4ODAKKyNkZWZpbmUgQUVNX0VMRU1FTlRfQ01ECQkweDgxCisjZGVmaW5lIEFFTV9GV19JTlNUQU5DRV9DTUQJMHg4MgorCisjZGVmaW5lIEFFTV9SRUFEX0VMRU1FTlRfQ0ZHCTB4ODAKKyNkZWZpbmUgQUVNX1JFQURfQlVGRkVSCQkweDgxCisjZGVmaW5lIEFFTV9SRUFEX1JFR0lTVEVSCTB4ODIKKyNkZWZpbmUgQUVNX1dSSVRFX1JFR0lTVEVSCTB4ODMKKyNkZWZpbmUgQUVNX1NFVF9SRUdfTUFTSwkweDg0CisjZGVmaW5lIEFFTV9DTEVBUl9SRUdfTUFTSwkweDg1CisjZGVmaW5lIEFFTV9SRUFEX0VMRU1FTlRfQ0ZHMgkweDg2CisKKyNkZWZpbmUgQUVNX0NPTlRST0xfRUxFTUVOVAkwCisjZGVmaW5lIEFFTV9FTkVSR1lfRUxFTUVOVAkxCisjZGVmaW5lIEFFTV9DTE9DS19FTEVNRU5UCTQKKyNkZWZpbmUgQUVNX1BPV0VSX0NBUF9FTEVNRU5UCTcKKyNkZWZpbmUgQUVNX0VYSEFVU1RfRUxFTUVOVAk5CisjZGVmaW5lIEFFTV9QT1dFUl9FTEVNRU5UCTEwCisKKyNkZWZpbmUgQUVNX01PRFVMRV9UWVBFX0lECTB4MDAwMQorCisjZGVmaW5lIEFFTTJfTlVNX0VORVJHWV9SRUdTCTIKKyNkZWZpbmUgQUVNMl9OVU1fUENBUF9SRUdTCTYKKyNkZWZpbmUgQUVNMl9OVU1fVEVNUF9SRUdTCTIKKyNkZWZpbmUgQUVNMl9OVU1fU0VOU09SUwkxNAorCisjZGVmaW5lIEFFTTFfTlVNX0VORVJHWV9SRUdTCTEKKyNkZWZpbmUgQUVNMV9OVU1fU0VOU09SUwkzCisKKy8qIEFFTSAyLnggaGFzIG1vcmUgZW5lcmd5IHJlZ2lzdGVycyAqLworI2RlZmluZSBBRU1fTlVNX0VORVJHWV9SRUdTCUFFTTJfTlVNX0VORVJHWV9SRUdTCisvKiBBRU0gMi54IG5lZWRzIG1vcmUgc2Vuc29yIGZpbGVzICovCisjZGVmaW5lIEFFTV9OVU1fU0VOU09SUwkJQUVNMl9OVU1fU0VOU09SUworCisjZGVmaW5lIFBPV0VSX0NBUAkJMAorI2RlZmluZSBQT1dFUl9DQVBfTUFYX0hPVFBMVUcJMQorI2RlZmluZSBQT1dFUl9DQVBfTUFYCQkyCisjZGVmaW5lCVBPV0VSX0NBUF9NSU5fV0FSTklORwkzCisjZGVmaW5lIFBPV0VSX0NBUF9NSU4JCTQKKyNkZWZpbmUJUE9XRVJfQVVYCQk1CisKKyNkZWZpbmUgQUVNX0RFRkFVTFRfUE9XRVJfSU5URVJWQUwgMTAwMAorI2RlZmluZSBBRU1fTUlOX1BPV0VSX0lOVEVSVkFMCTIwMAorI2RlZmluZSBVSl9QRVJfTUoJCTEwMDBMCisKK3N0YXRpYyBERUZJTkVfSURSKGFlbV9pZHIpOworc3RhdGljIERFRklORV9TUElOTE9DSyhhZW1faWRyX2xvY2spOworCitzdGF0aWMgc3RydWN0IGRldmljZV9kcml2ZXIgYWVtX2RyaXZlciA9IHsKKwkubmFtZSA9IERSVk5BTUUsCisJLmJ1cyA9ICZwbGF0Zm9ybV9idXNfdHlwZSwKK307CisKK3N0cnVjdCBhZW1faXBtaV9kYXRhIHsKKwlzdHJ1Y3QgY29tcGxldGlvbglyZWFkX2NvbXBsZXRlOworCXN0cnVjdCBpcG1pX2FkZHIJYWRkcmVzczsKKwlpcG1pX3VzZXJfdAkJdXNlcjsKKwlpbnQJCQlpbnRlcmZhY2U7CisKKwlzdHJ1Y3Qga2VybmVsX2lwbWlfbXNnCXR4X21lc3NhZ2U7CisJbG9uZwkJCXR4X21zZ2lkOworCisJdm9pZAkJCSpyeF9tc2dfZGF0YTsKKwl1bnNpZ25lZCBzaG9ydAkJcnhfbXNnX2xlbjsKKwl1bnNpZ25lZCBjaGFyCQlyeF9yZXN1bHQ7CisJaW50CQkJcnhfcmVjdl90eXBlOworCisJc3RydWN0IGRldmljZQkJKmJtY19kZXZpY2U7Cit9OworCitzdHJ1Y3QgYWVtX3JvX3NlbnNvcl90ZW1wbGF0ZSB7CisJY2hhciAqbGFiZWw7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLAorCQkJY2hhciAqYnVmKTsKKwlpbnQgaW5kZXg7Cit9OworCitzdHJ1Y3QgYWVtX3J3X3NlbnNvcl90ZW1wbGF0ZSB7CisJY2hhciAqbGFiZWw7CisJc3NpemVfdCAoKnNob3cpKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLAorCQkJY2hhciAqYnVmKTsKKwlzc2l6ZV90ICgqc2V0KShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCSAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwKKwkJICAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKKwlpbnQgaW5kZXg7Cit9OworCitzdHJ1Y3QgYWVtX2RhdGEgeworCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKKworCXN0cnVjdCBkZXZpY2UJCSpod21vbl9kZXY7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZQkqcGRldjsKKwlzdHJ1Y3QgbXV0ZXgJCWxvY2s7CisJY2hhcgkJCXZhbGlkOworCXVuc2lnbmVkIGxvbmcJCWxhc3RfdXBkYXRlZDsJLyogSW4gamlmZmllcyAqLworCXU4CQkJdmVyX21ham9yOworCXU4CQkJdmVyX21pbm9yOworCXU4CQkJbW9kdWxlX2hhbmRsZTsKKwlpbnQJCQlpZDsKKwlzdHJ1Y3QgYWVtX2lwbWlfZGF0YQlpcG1pOworCisJLyogRnVuY3Rpb24gdG8gdXBkYXRlIHNlbnNvcnMgKi8KKwl2b2lkICgqdXBkYXRlKShzdHJ1Y3QgYWVtX2RhdGEgKmRhdGEpOworCisJLyoKKwkgKiBBRU0gMS54IHNlbnNvcnM6CisJICogQXZhaWxhYmxlIHNlbnNvcnM6CisJICogRW5lcmd5IG1ldGVyCisJICogUG93ZXIgbWV0ZXIKKwkgKgorCSAqIEFFTSAyLnggc2Vuc29yczoKKwkgKiBUd28gZW5lcmd5IG1ldGVycworCSAqIFR3byBwb3dlciBtZXRlcnMKKwkgKiBUd28gdGVtcGVyYXR1cmUgc2Vuc29ycworCSAqIFNpeCBwb3dlciBjYXAgcmVnaXN0ZXJzCisJICovCisKKwkvKiBzeXNmcyBhdHRycyAqLworCXN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZQlzZW5zb3JzW0FFTV9OVU1fU0VOU09SU107CisKKwkvKiBlbmVyZ3kgdXNlIGluIG1KICovCisJdTY0CQkJZW5lcmd5W0FFTV9OVU1fRU5FUkdZX1JFR1NdOworCisJLyogcG93ZXIgc2FtcGxpbmcgaW50ZXJ2YWwgaW4gbXMgKi8KKwl1bnNpZ25lZCBsb25nCQlwb3dlcl9wZXJpb2RbQUVNX05VTV9FTkVSR1lfUkVHU107CisKKwkvKiBFdmVyeXRoaW5nIHBhc3QgaGVyZSBpcyBmb3IgQUVNMiBvbmx5ICovCisKKwkvKiBwb3dlciBjYXBzIGluIGRXICovCisJdTE2CQkJcGNhcFtBRU0yX05VTV9QQ0FQX1JFR1NdOworCisJLyogZXhoYXVzdCB0ZW1wZXJhdHVyZSBpbiBDICovCisJdTgJCQl0ZW1wW0FFTTJfTlVNX1RFTVBfUkVHU107Cit9OworCisvKiBEYXRhIHN0cnVjdHVyZXMgcmV0dXJuZWQgYnkgdGhlIEFFTSBmaXJtd2FyZSAqLworc3RydWN0IGFlbV9pYW5hX2lkIHsKKwl1OAkJCWJ5dGVzWzNdOworfTsKK3N0YXRpYyBzdHJ1Y3QgYWVtX2lhbmFfaWQgc3lzdGVtX3hfaWQgPSB7CisJLmJ5dGVzID0gezB4NEQsIDB4NEYsIDB4MDB9Cit9OworCisvKiBUaGVzZSBhcmUgdXNlZCB0byBmaW5kIEFFTTEgaW5zdGFuY2VzICovCitzdHJ1Y3QgYWVtX2ZpbmRfZmlybXdhcmVfcmVxIHsKKwlzdHJ1Y3QgYWVtX2lhbmFfaWQJaWQ7CisJdTgJCQlyc3ZkOworCV9fYmUxNgkJCWluZGV4OworCV9fYmUxNgkJCW1vZHVsZV90eXBlX2lkOworfSBfX3BhY2tlZDsKKworc3RydWN0IGFlbV9maW5kX2Zpcm13YXJlX3Jlc3AgeworCXN0cnVjdCBhZW1faWFuYV9pZAlpZDsKKwl1OAkJCW51bV9pbnN0YW5jZXM7Cit9IF9fcGFja2VkOworCisvKiBUaGVzZSBhcmUgdXNlZCB0byBmaW5kIEFFTTIgaW5zdGFuY2VzICovCitzdHJ1Y3QgYWVtX2ZpbmRfaW5zdGFuY2VfcmVxIHsKKwlzdHJ1Y3QgYWVtX2lhbmFfaWQJaWQ7CisJdTgJCQlpbnN0YW5jZV9udW1iZXI7CisJX19iZTE2CQkJbW9kdWxlX3R5cGVfaWQ7Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgYWVtX2ZpbmRfaW5zdGFuY2VfcmVzcCB7CisJc3RydWN0IGFlbV9pYW5hX2lkCWlkOworCXU4CQkJbnVtX2luc3RhbmNlczsKKwl1OAkJCW1ham9yOworCXU4CQkJbWlub3I7CisJdTgJCQltb2R1bGVfaGFuZGxlOworCXUxNgkJCXJlY29yZF9pZDsKK30gX19wYWNrZWQ7CisKKy8qIFRoZXNlIGFyZSB1c2VkIHRvIHF1ZXJ5IHNlbnNvcnMgKi8KK3N0cnVjdCBhZW1fcmVhZF9zZW5zb3JfcmVxIHsKKwlzdHJ1Y3QgYWVtX2lhbmFfaWQJaWQ7CisJdTgJCQltb2R1bGVfaGFuZGxlOworCXU4CQkJZWxlbWVudDsKKwl1OAkJCXN1YmNvbW1hbmQ7CisJdTgJCQlyZWc7CisJdTgJCQlyeF9idWZfc2l6ZTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBhZW1fcmVhZF9zZW5zb3JfcmVzcCB7CisJc3RydWN0IGFlbV9pYW5hX2lkCWlkOworCXU4CQkJYnl0ZXNbMF07Cit9IF9fcGFja2VkOworCisvKiBEYXRhIHN0cnVjdHVyZXMgdG8gdGFsayB0byB0aGUgSVBNSSBsYXllciAqLworc3RydWN0IGFlbV9kcml2ZXJfZGF0YSB7CisJc3RydWN0IGxpc3RfaGVhZAlhZW1fZGV2aWNlczsKKwlzdHJ1Y3QgaXBtaV9zbWlfd2F0Y2hlcglibWNfZXZlbnRzOworCXN0cnVjdCBpcG1pX3VzZXJfaG5kbAlpcG1pX2huZGxyczsKK307CisKK3N0YXRpYyB2b2lkIGFlbV9yZWdpc3Rlcl9ibWMoaW50IGlmYWNlLCBzdHJ1Y3QgZGV2aWNlICpkZXYpOworc3RhdGljIHZvaWQgYWVtX2JtY19nb25lKGludCBpZmFjZSk7CitzdGF0aWMgdm9pZCBhZW1fbXNnX2hhbmRsZXIoc3RydWN0IGlwbWlfcmVjdl9tc2cgKm1zZywgdm9pZCAqdXNlcl9tc2dfZGF0YSk7CisKK3N0YXRpYyB2b2lkIGFlbV9yZW1vdmVfc2Vuc29ycyhzdHJ1Y3QgYWVtX2RhdGEgKmRhdGEpOworc3RhdGljIGludCBhZW1faW5pdF9hZW0xKHN0cnVjdCBhZW1faXBtaV9kYXRhICpwcm9iZSk7CitzdGF0aWMgaW50IGFlbV9pbml0X2FlbTIoc3RydWN0IGFlbV9pcG1pX2RhdGEgKnByb2JlKTsKK3N0YXRpYyBpbnQgYWVtMV9maW5kX3NlbnNvcnMoc3RydWN0IGFlbV9kYXRhICpkYXRhKTsKK3N0YXRpYyBpbnQgYWVtMl9maW5kX3NlbnNvcnMoc3RydWN0IGFlbV9kYXRhICpkYXRhKTsKK3N0YXRpYyB2b2lkIHVwZGF0ZV9hZW0xX3NlbnNvcnMoc3RydWN0IGFlbV9kYXRhICpkYXRhKTsKK3N0YXRpYyB2b2lkIHVwZGF0ZV9hZW0yX3NlbnNvcnMoc3RydWN0IGFlbV9kYXRhICpkYXRhKTsKKworc3RhdGljIHN0cnVjdCBhZW1fZHJpdmVyX2RhdGEgZHJpdmVyX2RhdGEgPSB7CisJLmFlbV9kZXZpY2VzID0gTElTVF9IRUFEX0lOSVQoZHJpdmVyX2RhdGEuYWVtX2RldmljZXMpLAorCS5ibWNfZXZlbnRzID0geworCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwkJLm5ld19zbWkgPSBhZW1fcmVnaXN0ZXJfYm1jLAorCQkuc21pX2dvbmUgPSBhZW1fYm1jX2dvbmUsCisJfSwKKwkuaXBtaV9obmRscnMgPSB7CisJCS5pcG1pX3JlY3ZfaG5kbCA9IGFlbV9tc2dfaGFuZGxlciwKKwl9LAorfTsKKworLyogRnVuY3Rpb25zIHRvIHRhbGsgdG8gdGhlIElQTUkgbGF5ZXIgKi8KKworLyogSW5pdGlhbGl6ZSBJUE1JIGFkZHJlc3MsIG1lc3NhZ2UgYnVmZmVycyBhbmQgdXNlciBkYXRhICovCitzdGF0aWMgaW50IGFlbV9pbml0X2lwbWlfZGF0YShzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqZGF0YSwgaW50IGlmYWNlLAorCQkJICAgICAgc3RydWN0IGRldmljZSAqYm1jKQoreworCWludCBlcnI7CisKKwlpbml0X2NvbXBsZXRpb24oJmRhdGEtPnJlYWRfY29tcGxldGUpOworCWRhdGEtPmJtY19kZXZpY2UgPSBibWM7CisKKwkvKiBJbml0aWFsaXplIElQTUkgYWRkcmVzcyAqLworCWRhdGEtPmFkZHJlc3MuYWRkcl90eXBlID0gSVBNSV9TWVNURU1fSU5URVJGQUNFX0FERFJfVFlQRTsKKwlkYXRhLT5hZGRyZXNzLmNoYW5uZWwgPSBJUE1JX0JNQ19DSEFOTkVMOworCWRhdGEtPmFkZHJlc3MuZGF0YVswXSA9IDA7CisJZGF0YS0+aW50ZXJmYWNlID0gaWZhY2U7CisKKwkvKiBJbml0aWFsaXplIG1lc3NhZ2UgYnVmZmVycyAqLworCWRhdGEtPnR4X21zZ2lkID0gMDsKKwlkYXRhLT50eF9tZXNzYWdlLm5ldGZuID0gQUVNX05FVEZOOworCisJLyogQ3JlYXRlIElQTUkgbWVzc2FnaW5nIGludGVyZmFjZSB1c2VyICovCisJZXJyID0gaXBtaV9jcmVhdGVfdXNlcihkYXRhLT5pbnRlcmZhY2UsICZkcml2ZXJfZGF0YS5pcG1pX2huZGxycywKKwkJCSAgICAgICBkYXRhLCAmZGF0YS0+dXNlcik7CisJaWYgKGVyciA8IDApIHsKKwkJZGV2X2VycihibWMsICJVbmFibGUgdG8gcmVnaXN0ZXIgdXNlciB3aXRoIElQTUkgIgorCQkJImludGVyZmFjZSAlZFxuIiwgZGF0YS0+aW50ZXJmYWNlKTsKKwkJcmV0dXJuIC1FQUNDRVM7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIFNlbmQgYW4gSVBNSSBjb21tYW5kICovCitzdGF0aWMgaW50IGFlbV9zZW5kX21lc3NhZ2Uoc3RydWN0IGFlbV9pcG1pX2RhdGEgKmRhdGEpCit7CisJaW50IGVycjsKKworCWVyciA9IGlwbWlfdmFsaWRhdGVfYWRkcigmZGF0YS0+YWRkcmVzcywgc2l6ZW9mKGRhdGEtPmFkZHJlc3MpKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKKworCWRhdGEtPnR4X21zZ2lkKys7CisJZXJyID0gaXBtaV9yZXF1ZXN0X3NldHRpbWUoZGF0YS0+dXNlciwgJmRhdGEtPmFkZHJlc3MsIGRhdGEtPnR4X21zZ2lkLAorCQkJCSAgICZkYXRhLT50eF9tZXNzYWdlLCBkYXRhLCAwLCAwLCAwKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDE7CisKKwlyZXR1cm4gMDsKK291dDE6CisJZGV2X2VycihkYXRhLT5ibWNfZGV2aWNlLCAicmVxdWVzdF9zZXR0aW1lPSV4XG4iLCBlcnIpOworCXJldHVybiBlcnI7CitvdXQ6CisJZGV2X2VycihkYXRhLT5ibWNfZGV2aWNlLCAidmFsaWRhdGVfYWRkcj0leFxuIiwgZXJyKTsKKwlyZXR1cm4gZXJyOworfQorCisvKiBEaXNwYXRjaCBJUE1JIG1lc3NhZ2VzIHRvIGNhbGxlcnMgKi8KK3N0YXRpYyB2b2lkIGFlbV9tc2dfaGFuZGxlcihzdHJ1Y3QgaXBtaV9yZWN2X21zZyAqbXNnLCB2b2lkICp1c2VyX21zZ19kYXRhKQoreworCXVuc2lnbmVkIHNob3J0IHJ4X2xlbjsKKwlzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqZGF0YSA9IHVzZXJfbXNnX2RhdGE7CisKKwlpZiAobXNnLT5tc2dpZCAhPSBkYXRhLT50eF9tc2dpZCkgeworCQlkZXZfZXJyKGRhdGEtPmJtY19kZXZpY2UsICJNaXNtYXRjaCBiZXR3ZWVuIHJlY2VpdmVkIG1zZ2lkICIKKwkJCSIoJTAyeCkgYW5kIHRyYW5zbWl0dGVkIG1zZ2lkICglMDJ4KSFcbiIsCisJCQkoaW50KW1zZy0+bXNnaWQsCisJCQkoaW50KWRhdGEtPnR4X21zZ2lkKTsKKwkJaXBtaV9mcmVlX3JlY3ZfbXNnKG1zZyk7CisJCXJldHVybjsKKwl9CisKKwlkYXRhLT5yeF9yZWN2X3R5cGUgPSBtc2ctPnJlY3ZfdHlwZTsKKwlpZiAobXNnLT5tc2cuZGF0YV9sZW4gPiAwKQorCQlkYXRhLT5yeF9yZXN1bHQgPSBtc2ctPm1zZy5kYXRhWzBdOworCWVsc2UKKwkJZGF0YS0+cnhfcmVzdWx0ID0gSVBNSV9VTktOT1dOX0VSUl9DT01QTEVUSU9OX0NPREU7CisKKwlpZiAobXNnLT5tc2cuZGF0YV9sZW4gPiAxKSB7CisJCXJ4X2xlbiA9IG1zZy0+bXNnLmRhdGFfbGVuIC0gMTsKKwkJaWYgKGRhdGEtPnJ4X21zZ19sZW4gPCByeF9sZW4pCisJCQlyeF9sZW4gPSBkYXRhLT5yeF9tc2dfbGVuOworCQlkYXRhLT5yeF9tc2dfbGVuID0gcnhfbGVuOworCQltZW1jcHkoZGF0YS0+cnhfbXNnX2RhdGEsIG1zZy0+bXNnLmRhdGEgKyAxLCBkYXRhLT5yeF9tc2dfbGVuKTsKKwl9IGVsc2UKKwkJZGF0YS0+cnhfbXNnX2xlbiA9IDA7CisKKwlpcG1pX2ZyZWVfcmVjdl9tc2cobXNnKTsKKwljb21wbGV0ZSgmZGF0YS0+cmVhZF9jb21wbGV0ZSk7Cit9CisKKy8qIElEIGZ1bmN0aW9ucyAqLworCisvKiBPYnRhaW4gYW4gaWQgKi8KK3N0YXRpYyBpbnQgYWVtX2lkcl9nZXQoaW50ICppZCkKK3sKKwlpbnQgaSwgZXJyOworCithZ2FpbjoKKwlpZiAodW5saWtlbHkoIWlkcl9wcmVfZ2V0KCZhZW1faWRyLCBHRlBfS0VSTkVMKSkpCisJCXJldHVybiAtRU5PTUVNOworCisJc3Bpbl9sb2NrKCZhZW1faWRyX2xvY2spOworCWVyciA9IGlkcl9nZXRfbmV3KCZhZW1faWRyLCBOVUxMLCAmaSk7CisJc3Bpbl91bmxvY2soJmFlbV9pZHJfbG9jayk7CisKKwlpZiAodW5saWtlbHkoZXJyID09IC1FQUdBSU4pKQorCQlnb3RvIGFnYWluOworCWVsc2UgaWYgKHVubGlrZWx5KGVycikpCisJCXJldHVybiBlcnI7CisKKwkqaWQgPSBpICYgTUFYX0lEX01BU0s7CisJcmV0dXJuIDA7Cit9CisKKy8qIFJlbGVhc2UgYW4gb2JqZWN0IElEICovCitzdGF0aWMgdm9pZCBhZW1faWRyX3B1dChpbnQgaWQpCit7CisJc3Bpbl9sb2NrKCZhZW1faWRyX2xvY2spOworCWlkcl9yZW1vdmUoJmFlbV9pZHIsIGlkKTsKKwlzcGluX3VubG9jaygmYWVtX2lkcl9sb2NrKTsKK30KKworLyogU2Vuc29yIHN1cHBvcnQgZnVuY3Rpb25zICovCisKKy8qIFJlYWQgYSBzZW5zb3IgdmFsdWUgKi8KK3N0YXRpYyBpbnQgYWVtX3JlYWRfc2Vuc29yKHN0cnVjdCBhZW1fZGF0YSAqZGF0YSwgdTggZWx0LCB1OCByZWcsCisJCQkgICB2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCWludCByc19zaXplLCByZXM7CisJc3RydWN0IGFlbV9yZWFkX3NlbnNvcl9yZXEgcnNfcmVxOworCXN0cnVjdCBhZW1fcmVhZF9zZW5zb3JfcmVzcCAqcnNfcmVzcDsKKwlzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqaXBtaSA9ICZkYXRhLT5pcG1pOworCisJLyogQUVNIHJlZ2lzdGVycyBhcmUgMSwgMiwgNCBvciA4IGJ5dGVzICovCisJc3dpdGNoIChzaXplKSB7CisJY2FzZSAxOgorCWNhc2UgMjoKKwljYXNlIDQ6CisJY2FzZSA4OgorCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyc19yZXEuaWQgPSBzeXN0ZW1feF9pZDsKKwlyc19yZXEubW9kdWxlX2hhbmRsZSA9IGRhdGEtPm1vZHVsZV9oYW5kbGU7CisJcnNfcmVxLmVsZW1lbnQgPSBlbHQ7CisJcnNfcmVxLnN1YmNvbW1hbmQgPSBBRU1fUkVBRF9SRUdJU1RFUjsKKwlyc19yZXEucmVnID0gcmVnOworCXJzX3JlcS5yeF9idWZfc2l6ZSA9IHNpemU7CisKKwlpcG1pLT50eF9tZXNzYWdlLmNtZCA9IEFFTV9FTEVNRU5UX0NNRDsKKwlpcG1pLT50eF9tZXNzYWdlLmRhdGEgPSAoY2hhciAqKSZyc19yZXE7CisJaXBtaS0+dHhfbWVzc2FnZS5kYXRhX2xlbiA9IHNpemVvZihyc19yZXEpOworCisJcnNfc2l6ZSA9IHNpemVvZigqcnNfcmVzcCkgKyBzaXplOworCXJzX3Jlc3AgPSBremFsbG9jKHJzX3NpemUsIEdGUF9LRVJORUwpOworCWlmICghcnNfcmVzcCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpcG1pLT5yeF9tc2dfZGF0YSA9IHJzX3Jlc3A7CisJaXBtaS0+cnhfbXNnX2xlbiA9IHJzX3NpemU7CisKKwlhZW1fc2VuZF9tZXNzYWdlKGlwbWkpOworCisJcmVzID0gd2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZpcG1pLT5yZWFkX2NvbXBsZXRlLCBJUE1JX1RJTUVPVVQpOworCWlmICghcmVzKQorCQlyZXR1cm4gLUVUSU1FRE9VVDsKKworCWlmIChpcG1pLT5yeF9yZXN1bHQgfHwgaXBtaS0+cnhfbXNnX2xlbiAhPSByc19zaXplIHx8CisJICAgIG1lbWNtcCgmcnNfcmVzcC0+aWQsICZzeXN0ZW1feF9pZCwgc2l6ZW9mKHN5c3RlbV94X2lkKSkpIHsKKwkJa2ZyZWUocnNfcmVzcCk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKworCXN3aXRjaCAoc2l6ZSkgeworCWNhc2UgMTogeworCQl1OCAqeCA9IGJ1ZjsKKwkJKnggPSByc19yZXNwLT5ieXRlc1swXTsKKwkJYnJlYWs7CisJfQorCWNhc2UgMjogeworCQl1MTYgKnggPSBidWY7CisJCSp4ID0gYmUxNl90b19jcHVwKChfX2JlMTYgKilyc19yZXNwLT5ieXRlcyk7CisJCWJyZWFrOworCX0KKwljYXNlIDQ6IHsKKwkJdTMyICp4ID0gYnVmOworCQkqeCA9IGJlMzJfdG9fY3B1cCgoX19iZTMyICopcnNfcmVzcC0+Ynl0ZXMpOworCQlicmVhazsKKwl9CisJY2FzZSA4OiB7CisJCXU2NCAqeCA9IGJ1ZjsKKwkJKnggPSBiZTY0X3RvX2NwdXAoKF9fYmU2NCAqKXJzX3Jlc3AtPmJ5dGVzKTsKKwkJYnJlYWs7CisJfQorCX0KKworCXJldHVybiAwOworfQorCisvKiBVcGRhdGUgQUVNIGVuZXJneSByZWdpc3RlcnMgKi8KK3N0YXRpYyB2b2lkIHVwZGF0ZV9hZW1fZW5lcmd5KHN0cnVjdCBhZW1fZGF0YSAqZGF0YSkKK3sKKwlhZW1fcmVhZF9zZW5zb3IoZGF0YSwgQUVNX0VORVJHWV9FTEVNRU5ULCAwLCAmZGF0YS0+ZW5lcmd5WzBdLCA4KTsKKwlpZiAoZGF0YS0+dmVyX21ham9yIDwgMikKKwkJcmV0dXJuOworCWFlbV9yZWFkX3NlbnNvcihkYXRhLCBBRU1fRU5FUkdZX0VMRU1FTlQsIDEsICZkYXRhLT5lbmVyZ3lbMV0sIDgpOworfQorCisvKiBVcGRhdGUgYWxsIEFFTTEgc2Vuc29ycyAqLworc3RhdGljIHZvaWQgdXBkYXRlX2FlbTFfc2Vuc29ycyhzdHJ1Y3QgYWVtX2RhdGEgKmRhdGEpCit7CisJbXV0ZXhfbG9jaygmZGF0YS0+bG9jayk7CisJaWYgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGRhdGEtPmxhc3RfdXBkYXRlZCArIFJFRlJFU0hfSU5URVJWQUwpICYmCisJICAgIGRhdGEtPnZhbGlkKQorCQlnb3RvIG91dDsKKworCXVwZGF0ZV9hZW1fZW5lcmd5KGRhdGEpOworb3V0OgorCW11dGV4X3VubG9jaygmZGF0YS0+bG9jayk7Cit9CisKKy8qIFVwZGF0ZSBhbGwgQUVNMiBzZW5zb3JzICovCitzdGF0aWMgdm9pZCB1cGRhdGVfYWVtMl9zZW5zb3JzKHN0cnVjdCBhZW1fZGF0YSAqZGF0YSkKK3sKKwlpbnQgaTsKKworCW11dGV4X2xvY2soJmRhdGEtPmxvY2spOworCWlmICh0aW1lX2JlZm9yZShqaWZmaWVzLCBkYXRhLT5sYXN0X3VwZGF0ZWQgKyBSRUZSRVNIX0lOVEVSVkFMKSAmJgorCSAgICBkYXRhLT52YWxpZCkKKwkJZ290byBvdXQ7CisKKwl1cGRhdGVfYWVtX2VuZXJneShkYXRhKTsKKwlhZW1fcmVhZF9zZW5zb3IoZGF0YSwgQUVNX0VYSEFVU1RfRUxFTUVOVCwgMCwgJmRhdGEtPnRlbXBbMF0sIDEpOworCWFlbV9yZWFkX3NlbnNvcihkYXRhLCBBRU1fRVhIQVVTVF9FTEVNRU5ULCAxLCAmZGF0YS0+dGVtcFsxXSwgMSk7CisKKwlmb3IgKGkgPSBQT1dFUl9DQVA7IGkgPD0gUE9XRVJfQVVYOyBpKyspCisJCWFlbV9yZWFkX3NlbnNvcihkYXRhLCBBRU1fUE9XRVJfQ0FQX0VMRU1FTlQsIGksCisJCQkJJmRhdGEtPnBjYXBbaV0sIDIpOworb3V0OgorCW11dGV4X3VubG9jaygmZGF0YS0+bG9jayk7Cit9CisKKy8qIERlbGV0ZSBhbiBBRU0gaW5zdGFuY2UgKi8KK3N0YXRpYyB2b2lkIGFlbV9kZWxldGUoc3RydWN0IGFlbV9kYXRhICpkYXRhKQoreworCWxpc3RfZGVsKCZkYXRhLT5saXN0KTsKKwlhZW1fcmVtb3ZlX3NlbnNvcnMoZGF0YSk7CisJaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIoZGF0YS0+aHdtb25fZGV2KTsKKwlpcG1pX2Rlc3Ryb3lfdXNlcihkYXRhLT5pcG1pLnVzZXIpOworCWRldl9zZXRfZHJ2ZGF0YSgmZGF0YS0+cGRldi0+ZGV2LCBOVUxMKTsKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihkYXRhLT5wZGV2KTsKKwlhZW1faWRyX3B1dChkYXRhLT5pZCk7CisJa2ZyZWUoZGF0YSk7Cit9CisKKy8qIFByb2JlIGZ1bmN0aW9ucyBmb3IgQUVNMSBkZXZpY2VzICovCisKKy8qIFJldHJpZXZlIHZlcnNpb24gYW5kIG1vZHVsZSBoYW5kbGUgZm9yIGFuIEFFTTEgaW5zdGFuY2UgKi8KK3N0YXRpYyBpbnQgYWVtX2ZpbmRfYWVtMV9jb3VudChzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqZGF0YSkKK3sKKwlpbnQgcmVzOworCXN0cnVjdCBhZW1fZmluZF9maXJtd2FyZV9yZXEJZmZfcmVxOworCXN0cnVjdCBhZW1fZmluZF9maXJtd2FyZV9yZXNwCWZmX3Jlc3A7CisKKwlmZl9yZXEuaWQgPSBzeXN0ZW1feF9pZDsKKwlmZl9yZXEuaW5kZXggPSAwOworCWZmX3JlcS5tb2R1bGVfdHlwZV9pZCA9IGNwdV90b19iZTE2KEFFTV9NT0RVTEVfVFlQRV9JRCk7CisKKwlkYXRhLT50eF9tZXNzYWdlLmNtZCA9IEFFTV9GSU5EX0ZXX0NNRDsKKwlkYXRhLT50eF9tZXNzYWdlLmRhdGEgPSAoY2hhciAqKSZmZl9yZXE7CisJZGF0YS0+dHhfbWVzc2FnZS5kYXRhX2xlbiA9IHNpemVvZihmZl9yZXEpOworCisJZGF0YS0+cnhfbXNnX2RhdGEgPSAmZmZfcmVzcDsKKwlkYXRhLT5yeF9tc2dfbGVuID0gc2l6ZW9mKGZmX3Jlc3ApOworCisJYWVtX3NlbmRfbWVzc2FnZShkYXRhKTsKKworCXJlcyA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZGF0YS0+cmVhZF9jb21wbGV0ZSwgSVBNSV9USU1FT1VUKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisKKwlpZiAoZGF0YS0+cnhfcmVzdWx0IHx8IGRhdGEtPnJ4X21zZ19sZW4gIT0gc2l6ZW9mKGZmX3Jlc3ApIHx8CisJICAgIG1lbWNtcCgmZmZfcmVzcC5pZCwgJnN5c3RlbV94X2lkLCBzaXplb2Yoc3lzdGVtX3hfaWQpKSkKKwkJcmV0dXJuIC1FTk9FTlQ7CisKKwlyZXR1cm4gZmZfcmVzcC5udW1faW5zdGFuY2VzOworfQorCisvKiBGaW5kIGFuZCBpbml0aWFsaXplIG9uZSBBRU0xIGluc3RhbmNlICovCitzdGF0aWMgaW50IGFlbV9pbml0X2FlbTFfaW5zdChzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqcHJvYmUsIHU4IG1vZHVsZV9oYW5kbGUpCit7CisJc3RydWN0IGFlbV9kYXRhICpkYXRhOworCWludCBpOworCWludCByZXMgPSAtRU5PTUVNOworCisJZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpkYXRhKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhKQorCQlyZXR1cm4gcmVzOworCW11dGV4X2luaXQoJmRhdGEtPmxvY2spOworCisJLyogQ29weSBpbnN0YW5jZSBkYXRhICovCisJZGF0YS0+dmVyX21ham9yID0gMTsKKwlkYXRhLT52ZXJfbWlub3IgPSAwOworCWRhdGEtPm1vZHVsZV9oYW5kbGUgPSBtb2R1bGVfaGFuZGxlOworCWZvciAoaSA9IDA7IGkgPCBBRU0xX05VTV9FTkVSR1lfUkVHUzsgaSsrKQorCQlkYXRhLT5wb3dlcl9wZXJpb2RbaV0gPSBBRU1fREVGQVVMVF9QT1dFUl9JTlRFUlZBTDsKKworCS8qIENyZWF0ZSBzdWItZGV2aWNlIGZvciB0aGlzIGZ3IGluc3RhbmNlICovCisJaWYgKGFlbV9pZHJfZ2V0KCZkYXRhLT5pZCkpCisJCWdvdG8gaWRfZXJyOworCisJZGF0YS0+cGRldiA9IHBsYXRmb3JtX2RldmljZV9hbGxvYyhEUlZOQU1FLCBkYXRhLT5pZCk7CisJaWYgKCFkYXRhLT5wZGV2KQorCQlnb3RvIGRldl9lcnI7CisJZGF0YS0+cGRldi0+ZGV2LmRyaXZlciA9ICZhZW1fZHJpdmVyOworCisJcmVzID0gcGxhdGZvcm1fZGV2aWNlX2FkZChkYXRhLT5wZGV2KTsKKwlpZiAocmVzKQorCQlnb3RvIGlwbWlfZXJyOworCisJZGV2X3NldF9kcnZkYXRhKCZkYXRhLT5wZGV2LT5kZXYsIGRhdGEpOworCisJLyogU2V0IHVwIElQTUkgaW50ZXJmYWNlICovCisJaWYgKGFlbV9pbml0X2lwbWlfZGF0YSgmZGF0YS0+aXBtaSwgcHJvYmUtPmludGVyZmFjZSwKKwkJCSAgICAgICBwcm9iZS0+Ym1jX2RldmljZSkpCisJCWdvdG8gaXBtaV9lcnI7CisKKwkvKiBSZWdpc3RlciB3aXRoIGh3bW9uICovCisJZGF0YS0+aHdtb25fZGV2ID0gaHdtb25fZGV2aWNlX3JlZ2lzdGVyKCZkYXRhLT5wZGV2LT5kZXYpOworCisJaWYgKElTX0VSUihkYXRhLT5od21vbl9kZXYpKSB7CisJCWRldl9lcnIoJmRhdGEtPnBkZXYtPmRldiwgIlVuYWJsZSB0byByZWdpc3RlciBod21vbiAiCisJCQkiZGV2aWNlIGZvciBJUE1JIGludGVyZmFjZSAlZFxuIiwKKwkJCXByb2JlLT5pbnRlcmZhY2UpOworCQlnb3RvIGh3bW9uX3JlZ19lcnI7CisJfQorCisJZGF0YS0+dXBkYXRlID0gdXBkYXRlX2FlbTFfc2Vuc29yczsKKworCS8qIEZpbmQgc2Vuc29ycyAqLworCWlmIChhZW0xX2ZpbmRfc2Vuc29ycyhkYXRhKSkKKwkJZ290byBzZW5zb3JfZXJyOworCisJLyogQWRkIHRvIG91ciBsaXN0IG9mIEFFTSBkZXZpY2VzICovCisJbGlzdF9hZGRfdGFpbCgmZGF0YS0+bGlzdCwgJmRyaXZlcl9kYXRhLmFlbV9kZXZpY2VzKTsKKworCWRldl9pbmZvKGRhdGEtPmlwbWkuYm1jX2RldmljZSwgIkZvdW5kIEFFTSB2JWQuJWQgYXQgMHglWFxuIiwKKwkJIGRhdGEtPnZlcl9tYWpvciwgZGF0YS0+dmVyX21pbm9yLAorCQkgZGF0YS0+bW9kdWxlX2hhbmRsZSk7CisJcmV0dXJuIDA7CisKK3NlbnNvcl9lcnI6CisJaHdtb25fZGV2aWNlX3VucmVnaXN0ZXIoZGF0YS0+aHdtb25fZGV2KTsKK2h3bW9uX3JlZ19lcnI6CisJaXBtaV9kZXN0cm95X3VzZXIoZGF0YS0+aXBtaS51c2VyKTsKK2lwbWlfZXJyOgorCWRldl9zZXRfZHJ2ZGF0YSgmZGF0YS0+cGRldi0+ZGV2LCBOVUxMKTsKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihkYXRhLT5wZGV2KTsKK2Rldl9lcnI6CisJYWVtX2lkcl9wdXQoZGF0YS0+aWQpOworaWRfZXJyOgorCWtmcmVlKGRhdGEpOworCisJcmV0dXJuIHJlczsKK30KKworLyogRmluZCBhbmQgaW5pdGlhbGl6ZSBhbGwgQUVNMSBpbnN0YW5jZXMgKi8KK3N0YXRpYyBpbnQgYWVtX2luaXRfYWVtMShzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqcHJvYmUpCit7CisJaW50IG51bSwgaSwgZXJyOworCisJbnVtID0gYWVtX2ZpbmRfYWVtMV9jb3VudChwcm9iZSk7CisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCWVyciA9IGFlbV9pbml0X2FlbTFfaW5zdChwcm9iZSwgaSk7CisJCWlmIChlcnIpIHsKKwkJCWRldl9lcnIocHJvYmUtPmJtY19kZXZpY2UsCisJCQkJIkVycm9yICVkIGluaXRpYWxpemluZyBBRU0xIDB4JVhcbiIsCisJCQkJZXJyLCBpKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogUHJvYmUgZnVuY3Rpb25zIGZvciBBRU0yIGRldmljZXMgKi8KKworLyogUmV0cmlldmUgdmVyc2lvbiBhbmQgbW9kdWxlIGhhbmRsZSBmb3IgYW4gQUVNMiBpbnN0YW5jZSAqLworc3RhdGljIGludCBhZW1fZmluZF9hZW0yKHN0cnVjdCBhZW1faXBtaV9kYXRhICpkYXRhLAorCQkJICAgIHN0cnVjdCBhZW1fZmluZF9pbnN0YW5jZV9yZXNwICpmaV9yZXNwLAorCQkJICAgIGludCBpbnN0YW5jZV9udW0pCit7CisJaW50IHJlczsKKwlzdHJ1Y3QgYWVtX2ZpbmRfaW5zdGFuY2VfcmVxIGZpX3JlcTsKKworCWZpX3JlcS5pZCA9IHN5c3RlbV94X2lkOworCWZpX3JlcS5pbnN0YW5jZV9udW1iZXIgPSBpbnN0YW5jZV9udW07CisJZmlfcmVxLm1vZHVsZV90eXBlX2lkID0gY3B1X3RvX2JlMTYoQUVNX01PRFVMRV9UWVBFX0lEKTsKKworCWRhdGEtPnR4X21lc3NhZ2UuY21kID0gQUVNX0ZXX0lOU1RBTkNFX0NNRDsKKwlkYXRhLT50eF9tZXNzYWdlLmRhdGEgPSAoY2hhciAqKSZmaV9yZXE7CisJZGF0YS0+dHhfbWVzc2FnZS5kYXRhX2xlbiA9IHNpemVvZihmaV9yZXEpOworCisJZGF0YS0+cnhfbXNnX2RhdGEgPSBmaV9yZXNwOworCWRhdGEtPnJ4X21zZ19sZW4gPSBzaXplb2YoKmZpX3Jlc3ApOworCisJYWVtX3NlbmRfbWVzc2FnZShkYXRhKTsKKworCXJlcyA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmZGF0YS0+cmVhZF9jb21wbGV0ZSwgSVBNSV9USU1FT1VUKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIC1FVElNRURPVVQ7CisKKwlpZiAoZGF0YS0+cnhfcmVzdWx0IHx8IGRhdGEtPnJ4X21zZ19sZW4gIT0gc2l6ZW9mKCpmaV9yZXNwKSB8fAorCSAgICBtZW1jbXAoJmZpX3Jlc3AtPmlkLCAmc3lzdGVtX3hfaWQsIHNpemVvZihzeXN0ZW1feF9pZCkpKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCXJldHVybiAwOworfQorCisvKiBGaW5kIGFuZCBpbml0aWFsaXplIG9uZSBBRU0yIGluc3RhbmNlICovCitzdGF0aWMgaW50IGFlbV9pbml0X2FlbTJfaW5zdChzdHJ1Y3QgYWVtX2lwbWlfZGF0YSAqcHJvYmUsCisJCQkgICAgICBzdHJ1Y3QgYWVtX2ZpbmRfaW5zdGFuY2VfcmVzcCAqZmlfcmVzcCkKK3sKKwlzdHJ1Y3QgYWVtX2RhdGEgKmRhdGE7CisJaW50IGk7CisJaW50IHJlcyA9IC1FTk9NRU07CisKKwlkYXRhID0ga3phbGxvYyhzaXplb2YoKmRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWRhdGEpCisJCXJldHVybiByZXM7CisJbXV0ZXhfaW5pdCgmZGF0YS0+bG9jayk7CisKKwkvKiBDb3B5IGluc3RhbmNlIGRhdGEgKi8KKwlkYXRhLT52ZXJfbWFqb3IgPSBmaV9yZXNwLT5tYWpvcjsKKwlkYXRhLT52ZXJfbWlub3IgPSBmaV9yZXNwLT5taW5vcjsKKwlkYXRhLT5tb2R1bGVfaGFuZGxlID0gZmlfcmVzcC0+bW9kdWxlX2hhbmRsZTsKKwlmb3IgKGkgPSAwOyBpIDwgQUVNMl9OVU1fRU5FUkdZX1JFR1M7IGkrKykKKwkJZGF0YS0+cG93ZXJfcGVyaW9kW2ldID0gQUVNX0RFRkFVTFRfUE9XRVJfSU5URVJWQUw7CisKKwkvKiBDcmVhdGUgc3ViLWRldmljZSBmb3IgdGhpcyBmdyBpbnN0YW5jZSAqLworCWlmIChhZW1faWRyX2dldCgmZGF0YS0+aWQpKQorCQlnb3RvIGlkX2VycjsKKworCWRhdGEtPnBkZXYgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoRFJWTkFNRSwgZGF0YS0+aWQpOworCWlmICghZGF0YS0+cGRldikKKwkJZ290byBkZXZfZXJyOworCWRhdGEtPnBkZXYtPmRldi5kcml2ZXIgPSAmYWVtX2RyaXZlcjsKKworCXJlcyA9IHBsYXRmb3JtX2RldmljZV9hZGQoZGF0YS0+cGRldik7CisJaWYgKHJlcykKKwkJZ290byBpcG1pX2VycjsKKworCWRldl9zZXRfZHJ2ZGF0YSgmZGF0YS0+cGRldi0+ZGV2LCBkYXRhKTsKKworCS8qIFNldCB1cCBJUE1JIGludGVyZmFjZSAqLworCWlmIChhZW1faW5pdF9pcG1pX2RhdGEoJmRhdGEtPmlwbWksIHByb2JlLT5pbnRlcmZhY2UsCisJCQkgICAgICAgcHJvYmUtPmJtY19kZXZpY2UpKQorCQlnb3RvIGlwbWlfZXJyOworCisJLyogUmVnaXN0ZXIgd2l0aCBod21vbiAqLworCWRhdGEtPmh3bW9uX2RldiA9IGh3bW9uX2RldmljZV9yZWdpc3RlcigmZGF0YS0+cGRldi0+ZGV2KTsKKworCWlmIChJU19FUlIoZGF0YS0+aHdtb25fZGV2KSkgeworCQlkZXZfZXJyKCZkYXRhLT5wZGV2LT5kZXYsICJVbmFibGUgdG8gcmVnaXN0ZXIgaHdtb24gIgorCQkJImRldmljZSBmb3IgSVBNSSBpbnRlcmZhY2UgJWRcbiIsCisJCQlwcm9iZS0+aW50ZXJmYWNlKTsKKwkJZ290byBod21vbl9yZWdfZXJyOworCX0KKworCWRhdGEtPnVwZGF0ZSA9IHVwZGF0ZV9hZW0yX3NlbnNvcnM7CisKKwkvKiBGaW5kIHNlbnNvcnMgKi8KKwlpZiAoYWVtMl9maW5kX3NlbnNvcnMoZGF0YSkpCisJCWdvdG8gc2Vuc29yX2VycjsKKworCS8qIEFkZCB0byBvdXIgbGlzdCBvZiBBRU0gZGV2aWNlcyAqLworCWxpc3RfYWRkX3RhaWwoJmRhdGEtPmxpc3QsICZkcml2ZXJfZGF0YS5hZW1fZGV2aWNlcyk7CisKKwlkZXZfaW5mbyhkYXRhLT5pcG1pLmJtY19kZXZpY2UsICJGb3VuZCBBRU0gdiVkLiVkIGF0IDB4JVhcbiIsCisJCSBkYXRhLT52ZXJfbWFqb3IsIGRhdGEtPnZlcl9taW5vciwKKwkJIGRhdGEtPm1vZHVsZV9oYW5kbGUpOworCXJldHVybiAwOworCitzZW5zb3JfZXJyOgorCWh3bW9uX2RldmljZV91bnJlZ2lzdGVyKGRhdGEtPmh3bW9uX2Rldik7Citod21vbl9yZWdfZXJyOgorCWlwbWlfZGVzdHJveV91c2VyKGRhdGEtPmlwbWkudXNlcik7CitpcG1pX2VycjoKKwlkZXZfc2V0X2RydmRhdGEoJmRhdGEtPnBkZXYtPmRldiwgTlVMTCk7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoZGF0YS0+cGRldik7CitkZXZfZXJyOgorCWFlbV9pZHJfcHV0KGRhdGEtPmlkKTsKK2lkX2VycjoKKwlrZnJlZShkYXRhKTsKKworCXJldHVybiByZXM7Cit9CisKKy8qIEZpbmQgYW5kIGluaXRpYWxpemUgYWxsIEFFTTIgaW5zdGFuY2VzICovCitzdGF0aWMgaW50IGFlbV9pbml0X2FlbTIoc3RydWN0IGFlbV9pcG1pX2RhdGEgKnByb2JlKQoreworCXN0cnVjdCBhZW1fZmluZF9pbnN0YW5jZV9yZXNwIGZpX3Jlc3A7CisJaW50IGVycjsKKwlpbnQgaSA9IDA7CisKKwl3aGlsZSAoIWFlbV9maW5kX2FlbTIocHJvYmUsICZmaV9yZXNwLCBpKSkgeworCQlpZiAoZmlfcmVzcC5tYWpvciAhPSAyKSB7CisJCQlkZXZfZXJyKHByb2JlLT5ibWNfZGV2aWNlLCAiVW5rbm93biBBRU0gdiVkOyBwbGVhc2UgIgorCQkJCSJyZXBvcnQgdGhpcyB0byB0aGUgbWFpbnRhaW5lci5cbiIsCisJCQkJZmlfcmVzcC5tYWpvcik7CisJCQlpKys7CisJCQljb250aW51ZTsKKwkJfQorCQllcnIgPSBhZW1faW5pdF9hZW0yX2luc3QocHJvYmUsICZmaV9yZXNwKTsKKwkJaWYgKGVycikgeworCQkJZGV2X2Vycihwcm9iZS0+Ym1jX2RldmljZSwKKwkJCQkiRXJyb3IgJWQgaW5pdGlhbGl6aW5nIEFFTTIgMHglWFxuIiwKKwkJCQllcnIsIGZpX3Jlc3AubW9kdWxlX2hhbmRsZSk7CisJCQlyZXR1cm4gZXJyOworCQl9CisJCWkrKzsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogUHJvYmUgYSBCTUMgZm9yIEFFTSBmaXJtd2FyZSBpbnN0YW5jZXMgKi8KK3N0YXRpYyB2b2lkIGFlbV9yZWdpc3Rlcl9ibWMoaW50IGlmYWNlLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGFlbV9pcG1pX2RhdGEgcHJvYmU7CisKKwlpZiAoYWVtX2luaXRfaXBtaV9kYXRhKCZwcm9iZSwgaWZhY2UsIGRldikpCisJCXJldHVybjsKKworCS8qIElnbm9yZSBwcm9iZSBlcnJvcnM7IHRoZXkgd29uJ3QgY2F1c2UgcHJvYmxlbXMgKi8KKwlhZW1faW5pdF9hZW0xKCZwcm9iZSk7CisJYWVtX2luaXRfYWVtMigmcHJvYmUpOworCisJaXBtaV9kZXN0cm95X3VzZXIocHJvYmUudXNlcik7Cit9CisKKy8qIEhhbmRsZSBCTUMgZGVsZXRpb24gKi8KK3N0YXRpYyB2b2lkIGFlbV9ibWNfZ29uZShpbnQgaWZhY2UpCit7CisJc3RydWN0IGFlbV9kYXRhICpwMSwgKm5leHQxOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHAxLCBuZXh0MSwgJmRyaXZlcl9kYXRhLmFlbV9kZXZpY2VzLCBsaXN0KQorCQlpZiAocDEtPmlwbWkuaW50ZXJmYWNlID09IGlmYWNlKQorCQkJYWVtX2RlbGV0ZShwMSk7Cit9CisKKy8qIHN5c2ZzIHN1cHBvcnQgZnVuY3Rpb25zICovCisKKy8qIEFFTSBkZXZpY2UgbmFtZSAqLworc3RhdGljIHNzaXplX3Qgc2hvd19uYW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCisJCQkgY2hhciAqYnVmKQoreworCXN0cnVjdCBhZW1fZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJXMlZFxuIiwgRFJWTkFNRSwgZGF0YS0+dmVyX21ham9yKTsKK30KK3N0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIobmFtZSwgU19JUlVHTywgc2hvd19uYW1lLCBOVUxMLCAwKTsKKworLyogQUVNIGRldmljZSB2ZXJzaW9uICovCitzdGF0aWMgc3NpemVfdCBzaG93X3ZlcnNpb24oc3RydWN0IGRldmljZSAqZGV2LAorCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpkZXZhdHRyLAorCQkJICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgYWVtX2RhdGEgKmRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkLiVkXG4iLCBkYXRhLT52ZXJfbWFqb3IsIGRhdGEtPnZlcl9taW5vcik7Cit9CitzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHZlcnNpb24sIFNfSVJVR08sIHNob3dfdmVyc2lvbiwgTlVMTCwgMCk7CisKKy8qIERpc3BsYXkgcG93ZXIgdXNlICovCitzdGF0aWMgc3NpemVfdCBhZW1fc2hvd19wb3dlcihzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwKKwkJCSAgICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIoZGV2YXR0cik7CisJc3RydWN0IGFlbV9kYXRhICpkYXRhID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJdTY0IGJlZm9yZSwgYWZ0ZXIsIGRlbHRhLCB0aW1lOworCXNpZ25lZCBsb25nIGxlZnRvdmVyOworCXN0cnVjdCB0aW1lc3BlYyBiLCBhOworCisJbXV0ZXhfbG9jaygmZGF0YS0+bG9jayk7CisJdXBkYXRlX2FlbV9lbmVyZ3koZGF0YSk7CisJZ2V0bnN0aW1lb2ZkYXkoJmIpOworCWJlZm9yZSA9IGRhdGEtPmVuZXJneVthdHRyLT5pbmRleF07CisKKwlsZWZ0b3ZlciA9IHNjaGVkdWxlX3RpbWVvdXRfaW50ZXJydXB0aWJsZSgKKwkJCW1zZWNzX3RvX2ppZmZpZXMoZGF0YS0+cG93ZXJfcGVyaW9kW2F0dHItPmluZGV4XSkKKwkJICAgKTsKKwlpZiAobGVmdG92ZXIpIHsKKwkJbXV0ZXhfdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwkJcmV0dXJuIDA7CisJfQorCisJdXBkYXRlX2FlbV9lbmVyZ3koZGF0YSk7CisJZ2V0bnN0aW1lb2ZkYXkoJmEpOworCWFmdGVyID0gZGF0YS0+ZW5lcmd5W2F0dHItPmluZGV4XTsKKwltdXRleF91bmxvY2soJmRhdGEtPmxvY2spOworCisJdGltZSA9IHRpbWVzcGVjX3RvX25zKCZhKSAtIHRpbWVzcGVjX3RvX25zKCZiKTsKKwlkZWx0YSA9IChhZnRlciAtIGJlZm9yZSkgKiBVSl9QRVJfTUo7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx1XG4iLAorCQkodW5zaWduZWQgbG9uZyBsb25nKWRpdjY0X3U2NChkZWx0YSAqIE5TRUNfUEVSX1NFQywgdGltZSkpOworfQorCisvKiBEaXNwbGF5IGVuZXJneSB1c2UgKi8KK3N0YXRpYyBzc2l6ZV90IGFlbV9zaG93X2VuZXJneShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCisJCQkgICAgICAgY2hhciAqYnVmKQoreworCXN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciA9IHRvX3NlbnNvcl9kZXZfYXR0cihkZXZhdHRyKTsKKwlzdHJ1Y3QgYWVtX2RhdGEgKmEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwlhLT51cGRhdGUoYSk7CisKKwlyZXR1cm4gc3ByaW50ZihidWYsICIlbGx1XG4iLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylhLT5lbmVyZ3lbYXR0ci0+aW5kZXhdICogMTAwMCk7Cit9CisKKy8qIERpc3BsYXkgcG93ZXIgaW50ZXJ2YWwgcmVnaXN0ZXJzICovCitzdGF0aWMgc3NpemVfdCBhZW1fc2hvd19wb3dlcl9wZXJpb2Qoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCisJCQkJICAgICBjaGFyICpidWYpCit7CisJc3RydWN0IHNlbnNvcl9kZXZpY2VfYXR0cmlidXRlICphdHRyID0gdG9fc2Vuc29yX2Rldl9hdHRyKGRldmF0dHIpOworCXN0cnVjdCBhZW1fZGF0YSAqYSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWEtPnVwZGF0ZShhKTsKKworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVsdVxuIiwgYS0+cG93ZXJfcGVyaW9kW2F0dHItPmluZGV4XSk7Cit9CisKKy8qIFNldCBwb3dlciBpbnRlcnZhbCByZWdpc3RlcnMgKi8KK3N0YXRpYyBzc2l6ZV90IGFlbV9zZXRfcG93ZXJfcGVyaW9kKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCisJCQkJICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQoreworCXN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciA9IHRvX3NlbnNvcl9kZXZfYXR0cihkZXZhdHRyKTsKKwlzdHJ1Y3QgYWVtX2RhdGEgKmEgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRlbXA7CisJaW50IHJlczsKKworCXJlcyA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ0ZW1wKTsKKwlpZiAocmVzKQorCQlyZXR1cm4gcmVzOworCisJaWYgKHRlbXAgPCBBRU1fTUlOX1BPV0VSX0lOVEVSVkFMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW11dGV4X2xvY2soJmEtPmxvY2spOworCWEtPnBvd2VyX3BlcmlvZFthdHRyLT5pbmRleF0gPSB0ZW1wOworCW11dGV4X3VubG9jaygmYS0+bG9jayk7CisKKwlyZXR1cm4gY291bnQ7Cit9CisKKy8qIERpc2NvdmVyIHNlbnNvcnMgb24gYW4gQUVNIGRldmljZSAqLworc3RhdGljIGludCBhZW1fcmVnaXN0ZXJfc2Vuc29ycyhzdHJ1Y3QgYWVtX2RhdGEgKmRhdGEsCisJCQkJc3RydWN0IGFlbV9yb19zZW5zb3JfdGVtcGxhdGUgKnJvLAorCQkJCXN0cnVjdCBhZW1fcndfc2Vuc29yX3RlbXBsYXRlICpydykKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmZGF0YS0+cGRldi0+ZGV2OworCXN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqc2Vuc29ycyA9IGRhdGEtPnNlbnNvcnM7CisJaW50IGVycjsKKworCS8qIFNldCB1cCByZWFkLW9ubHkgc2Vuc29ycyAqLworCXdoaWxlIChyby0+bGFiZWwpIHsKKwkJc2Vuc29ycy0+ZGV2X2F0dHIuYXR0ci5uYW1lID0gcm8tPmxhYmVsOworCQlzZW5zb3JzLT5kZXZfYXR0ci5hdHRyLm1vZGUgPSBTX0lSVUdPOworCQlzZW5zb3JzLT5kZXZfYXR0ci5zaG93ID0gcm8tPnNob3c7CisJCXNlbnNvcnMtPmluZGV4ID0gcm8tPmluZGV4OworCisJCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZzZW5zb3JzLT5kZXZfYXR0cik7CisJCWlmIChlcnIpIHsKKwkJCXNlbnNvcnMtPmRldl9hdHRyLmF0dHIubmFtZSA9IE5VTEw7CisJCQlnb3RvIGVycm9yOworCQl9CisJCXNlbnNvcnMrKzsKKwkJcm8rKzsKKwl9CisKKwkvKiBTZXQgdXAgcmVhZC13cml0ZSBzZW5zb3JzICovCisJd2hpbGUgKHJ3LT5sYWJlbCkgeworCQlzZW5zb3JzLT5kZXZfYXR0ci5hdHRyLm5hbWUgPSBydy0+bGFiZWw7CisJCXNlbnNvcnMtPmRldl9hdHRyLmF0dHIubW9kZSA9IFNfSVJVR08gfCBTX0lXVVNSOworCQlzZW5zb3JzLT5kZXZfYXR0ci5zaG93ID0gcnctPnNob3c7CisJCXNlbnNvcnMtPmRldl9hdHRyLnN0b3JlID0gcnctPnNldDsKKwkJc2Vuc29ycy0+aW5kZXggPSBydy0+aW5kZXg7CisKKwkJZXJyID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJnNlbnNvcnMtPmRldl9hdHRyKTsKKwkJaWYgKGVycikgeworCQkJc2Vuc29ycy0+ZGV2X2F0dHIuYXR0ci5uYW1lID0gTlVMTDsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKwkJc2Vuc29ycysrOworCQlydysrOworCX0KKworCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZzZW5zb3JfZGV2X2F0dHJfbmFtZS5kZXZfYXR0cik7CisJaWYgKGVycikKKwkJZ290byBlcnJvcjsKKwllcnIgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGV2LCAmc2Vuc29yX2Rldl9hdHRyX3ZlcnNpb24uZGV2X2F0dHIpOworCXJldHVybiBlcnI7CisKK2Vycm9yOgorCWFlbV9yZW1vdmVfc2Vuc29ycyhkYXRhKTsKKwlyZXR1cm4gZXJyOworfQorCisvKiBzeXNmcyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3IgQUVNMiBzZW5zb3JzICovCisKKy8qIERpc3BsYXkgdGVtcGVyYXR1cmUgdXNlICovCitzdGF0aWMgc3NpemVfdCBhZW0yX3Nob3dfdGVtcChzdHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2YXR0ciwKKwkJCSAgICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIoZGV2YXR0cik7CisJc3RydWN0IGFlbV9kYXRhICphID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJYS0+dXBkYXRlKGEpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIGEtPnRlbXBbYXR0ci0+aW5kZXhdICogMTAwMCk7Cit9CisKKy8qIERpc3BsYXkgcG93ZXItY2FwcGluZyByZWdpc3RlcnMgKi8KK3N0YXRpYyBzc2l6ZV90IGFlbTJfc2hvd19wY2FwX3ZhbHVlKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmRldmF0dHIsCisJCQkJICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKmF0dHIgPSB0b19zZW5zb3JfZGV2X2F0dHIoZGV2YXR0cik7CisJc3RydWN0IGFlbV9kYXRhICphID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJYS0+dXBkYXRlKGEpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJXVcbiIsIGEtPnBjYXBbYXR0ci0+aW5kZXhdICogMTAwMDAwKTsKK30KKworLyogUmVtb3ZlIHNlbnNvcnMgYXR0YWNoZWQgdG8gYW4gQUVNIGRldmljZSAqLworc3RhdGljIHZvaWQgYWVtX3JlbW92ZV9zZW5zb3JzKHN0cnVjdCBhZW1fZGF0YSAqZGF0YSkKK3sKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBRU1fTlVNX1NFTlNPUlM7IGkrKykgeworCQlpZiAoIWRhdGEtPnNlbnNvcnNbaV0uZGV2X2F0dHIuYXR0ci5uYW1lKQorCQkJY29udGludWU7CisJCWRldmljZV9yZW1vdmVfZmlsZSgmZGF0YS0+cGRldi0+ZGV2LAorCQkJCSAgICZkYXRhLT5zZW5zb3JzW2ldLmRldl9hdHRyKTsKKwl9CisKKwlkZXZpY2VfcmVtb3ZlX2ZpbGUoJmRhdGEtPnBkZXYtPmRldiwKKwkJCSAgICZzZW5zb3JfZGV2X2F0dHJfbmFtZS5kZXZfYXR0cik7CisJZGV2aWNlX3JlbW92ZV9maWxlKCZkYXRhLT5wZGV2LT5kZXYsCisJCQkgICAmc2Vuc29yX2Rldl9hdHRyX3ZlcnNpb24uZGV2X2F0dHIpOworfQorCisvKiBTZW5zb3IgcHJvYmUgZnVuY3Rpb25zICovCisKKy8qIERlc2NyaXB0aW9uIG9mIEFFTTEgc2Vuc29ycyAqLworc3RhdGljIHN0cnVjdCBhZW1fcm9fc2Vuc29yX3RlbXBsYXRlIGFlbTFfcm9fc2Vuc29yc1tdID0geworeyJlbmVyZ3kxX2lucHV0IiwgIGFlbV9zaG93X2VuZXJneSwgMH0sCit7InBvd2VyMV9hdmVyYWdlIiwgYWVtX3Nob3dfcG93ZXIsICAwfSwKK3tOVUxMLAkJICAgTlVMTCwJICAgIDB9LAorfTsKKworc3RhdGljIHN0cnVjdCBhZW1fcndfc2Vuc29yX3RlbXBsYXRlIGFlbTFfcndfc2Vuc29yc1tdID0geworeyJwb3dlcjFfYXZlcmFnZV9pbnRlcnZhbCIsIGFlbV9zaG93X3Bvd2VyX3BlcmlvZCwgYWVtX3NldF9wb3dlcl9wZXJpb2QsIDB9LAore05VTEwsCQkJICAgIE5VTEwsICAgICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgIDB9LAorfTsKKworLyogRGVzY3JpcHRpb24gb2YgQUVNMiBzZW5zb3JzICovCitzdGF0aWMgc3RydWN0IGFlbV9yb19zZW5zb3JfdGVtcGxhdGUgYWVtMl9yb19zZW5zb3JzW10gPSB7Cit7ImVuZXJneTFfaW5wdXQiLAkgIGFlbV9zaG93X2VuZXJneSwJMH0sCit7ImVuZXJneTJfaW5wdXQiLAkgIGFlbV9zaG93X2VuZXJneSwJMX0sCit7InBvd2VyMV9hdmVyYWdlIiwJICBhZW1fc2hvd19wb3dlciwJMH0sCit7InBvd2VyMl9hdmVyYWdlIiwJICBhZW1fc2hvd19wb3dlciwJMX0sCit7InRlbXAxX2lucHV0IiwJCSAgYWVtMl9zaG93X3RlbXAsCTB9LAoreyJ0ZW1wMl9pbnB1dCIsCQkgIGFlbTJfc2hvd190ZW1wLAkxfSwKKworeyJwb3dlcjRfYXZlcmFnZSIsCSAgYWVtMl9zaG93X3BjYXBfdmFsdWUsCVBPV0VSX0NBUF9NQVhfSE9UUExVR30sCit7InBvd2VyNV9hdmVyYWdlIiwJICBhZW0yX3Nob3dfcGNhcF92YWx1ZSwJUE9XRVJfQ0FQX01BWH0sCit7InBvd2VyNl9hdmVyYWdlIiwJICBhZW0yX3Nob3dfcGNhcF92YWx1ZSwJUE9XRVJfQ0FQX01JTl9XQVJOSU5HfSwKK3sicG93ZXI3X2F2ZXJhZ2UiLAkgIGFlbTJfc2hvd19wY2FwX3ZhbHVlLAlQT1dFUl9DQVBfTUlOfSwKKworeyJwb3dlcjNfYXZlcmFnZSIsIAkgIGFlbTJfc2hvd19wY2FwX3ZhbHVlLAlQT1dFUl9BVVh9LAoreyJwb3dlcl9jYXAiLAkJICBhZW0yX3Nob3dfcGNhcF92YWx1ZSwJUE9XRVJfQ0FQfSwKK3tOVUxMLCAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgIDB9LAorfTsKKworc3RhdGljIHN0cnVjdCBhZW1fcndfc2Vuc29yX3RlbXBsYXRlIGFlbTJfcndfc2Vuc29yc1tdID0geworeyJwb3dlcjFfYXZlcmFnZV9pbnRlcnZhbCIsIGFlbV9zaG93X3Bvd2VyX3BlcmlvZCwgYWVtX3NldF9wb3dlcl9wZXJpb2QsIDB9LAoreyJwb3dlcjJfYXZlcmFnZV9pbnRlcnZhbCIsIGFlbV9zaG93X3Bvd2VyX3BlcmlvZCwgYWVtX3NldF9wb3dlcl9wZXJpb2QsIDF9LAore05VTEwsCQkJICAgIE5VTEwsICAgICAgICAgICAgICAgICAgTlVMTCwgICAgICAgICAgICAgICAgIDB9LAorfTsKKworLyogU2V0IHVwIEFFTTEgc2Vuc29yIGF0dHJzICovCitzdGF0aWMgaW50IGFlbTFfZmluZF9zZW5zb3JzKHN0cnVjdCBhZW1fZGF0YSAqZGF0YSkKK3sKKwlyZXR1cm4gYWVtX3JlZ2lzdGVyX3NlbnNvcnMoZGF0YSwgYWVtMV9yb19zZW5zb3JzLCBhZW0xX3J3X3NlbnNvcnMpOworfQorCisvKiBTZXQgdXAgQUVNMiBzZW5zb3IgYXR0cnMgKi8KK3N0YXRpYyBpbnQgYWVtMl9maW5kX3NlbnNvcnMoc3RydWN0IGFlbV9kYXRhICpkYXRhKQoreworCXJldHVybiBhZW1fcmVnaXN0ZXJfc2Vuc29ycyhkYXRhLCBhZW0yX3JvX3NlbnNvcnMsIGFlbTJfcndfc2Vuc29ycyk7Cit9CisKKy8qIE1vZHVsZSBpbml0L2V4aXQgcm91dGluZXMgKi8KKworc3RhdGljIGludCBfX2luaXQgYWVtX2luaXQodm9pZCkKK3sKKwlpbnQgcmVzOworCisJcmVzID0gZHJpdmVyX3JlZ2lzdGVyKCZhZW1fZHJpdmVyKTsKKwlpZiAocmVzKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgcmVnaXN0ZXIgYWVtIGRyaXZlclxuIik7CisJCXJldHVybiByZXM7CisJfQorCisJcmVzID0gaXBtaV9zbWlfd2F0Y2hlcl9yZWdpc3RlcigmZHJpdmVyX2RhdGEuYm1jX2V2ZW50cyk7CisJaWYgKHJlcykKKwkJZ290byBpcG1pX3JlZ19lcnI7CisJcmV0dXJuIDA7CisKK2lwbWlfcmVnX2VycjoKKwlkcml2ZXJfdW5yZWdpc3RlcigmYWVtX2RyaXZlcik7CisJcmV0dXJuIHJlczsKKworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYWVtX2V4aXQodm9pZCkKK3sKKwlzdHJ1Y3QgYWVtX2RhdGEgKnAxLCAqbmV4dDE7CisKKwlpcG1pX3NtaV93YXRjaGVyX3VucmVnaXN0ZXIoJmRyaXZlcl9kYXRhLmJtY19ldmVudHMpOworCWRyaXZlcl91bnJlZ2lzdGVyKCZhZW1fZHJpdmVyKTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocDEsIG5leHQxLCAmZHJpdmVyX2RhdGEuYWVtX2RldmljZXMsIGxpc3QpCisJCWFlbV9kZWxldGUocDEpOworfQorCitNT0RVTEVfQVVUSE9SKCJEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0B1cy5pYm0uY29tPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJJQk0gQWN0aXZlIEVuZXJneSBNYW5hZ2VyIHBvd2VyL3RlbXAgc2Vuc29yIGRyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCittb2R1bGVfaW5pdChhZW1faW5pdCk7Cittb2R1bGVfZXhpdChhZW1fZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2xtNzUuYyBiL2RyaXZlcnMvaHdtb24vbG03NS5jCmluZGV4IGZhNzY5NjkuLmRlNjk4ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaHdtb24vbG03NS5jCisrKyBiL2RyaXZlcnMvaHdtb24vbG03NS5jCkBAIC0yNTEsMTAgKzI1MSwxMyBAQAogICAgdGhlIFNNQnVzIHN0YW5kYXJkLiAqLwogc3RhdGljIGludCBsbTc1X3JlYWRfdmFsdWUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggcmVnKQogeworCWludCB2YWx1ZTsKKwogCWlmIChyZWcgPT0gTE03NV9SRUdfQ09ORikKIAkJcmV0dXJuIGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIHJlZyk7Ci0JZWxzZQotCQlyZXR1cm4gc3dhYjE2KGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0YShjbGllbnQsIHJlZykpOworCisJdmFsdWUgPSBpMmNfc21idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCByZWcpOworCXJldHVybiAodmFsdWUgPCAwKSA/IHZhbHVlIDogc3dhYjE2KHZhbHVlKTsKIH0KIAogc3RhdGljIGludCBsbTc1X3dyaXRlX3ZhbHVlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHU4IHJlZywgdTE2IHZhbHVlKQpAQCAtMjg3LDkgKzI5MCwxNiBAQAogCQlpbnQgaTsKIAkJZGV2X2RiZygmY2xpZW50LT5kZXYsICJTdGFydGluZyBsbTc1IHVwZGF0ZVxuIik7CiAKLQkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0YS0+dGVtcCk7IGkrKykKLQkJCWRhdGEtPnRlbXBbaV0gPSBsbTc1X3JlYWRfdmFsdWUoY2xpZW50LAotCQkJCQkJCUxNNzVfUkVHX1RFTVBbaV0pOworCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkYXRhLT50ZW1wKTsgaSsrKSB7CisJCQlpbnQgc3RhdHVzOworCisJCQlzdGF0dXMgPSBsbTc1X3JlYWRfdmFsdWUoY2xpZW50LCBMTTc1X1JFR19URU1QW2ldKTsKKwkJCWlmIChzdGF0dXMgPCAwKQorCQkJCWRldl9kYmcoJmNsaWVudC0+ZGV2LCAicmVnICVkLCBlcnIgJWRcbiIsCisJCQkJCQlMTTc1X1JFR19URU1QW2ldLCBzdGF0dXMpOworCQkJZWxzZQorCQkJCWRhdGEtPnRlbXBbaV0gPSBzdGF0dXM7CisJCX0KIAkJZGF0YS0+bGFzdF91cGRhdGVkID0gamlmZmllczsKIAkJZGF0YS0+dmFsaWQgPSAxOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vbG04NS5jIGIvZHJpdmVycy9od21vbi9sbTg1LmMKaW5kZXggMTgyZmU2YS4uZWU1ZWNhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9od21vbi9sbTg1LmMKKysrIGIvZHJpdmVycy9od21vbi9sbTg1LmMKQEAgLTE5MiwyMyArMTkyLDIwIEBACiB7CiAJaW50IGk7CiAKLQlpZiAoIHJhbmdlIDwgbG04NV9yYW5nZV9tYXBbMF0gKSB7IAotCQlyZXR1cm4gMCA7Ci0JfSBlbHNlIGlmICggcmFuZ2UgPiBsbTg1X3JhbmdlX21hcFsxNV0gKSB7CisJaWYgKHJhbmdlID49IGxtODVfcmFuZ2VfbWFwWzE1XSkKIAkJcmV0dXJuIDE1IDsKLQl9IGVsc2UgeyAgLyogZmluZCBjbG9zZXN0IG1hdGNoICovCi0JCWZvciAoIGkgPSAxNCA7IGkgPj0gMCA7IC0taSApIHsKLQkJCWlmICggcmFuZ2UgPiBsbTg1X3JhbmdlX21hcFtpXSApIHsgLyogcmFuZ2UgYnJhY2tldGVkICovCi0JCQkJaWYgKChsbTg1X3JhbmdlX21hcFtpKzFdIC0gcmFuZ2UpIDwgCi0JCQkJCShyYW5nZSAtIGxtODVfcmFuZ2VfbWFwW2ldKSkgewotCQkJCQlpKys7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCX0KKworCS8qIEZpbmQgdGhlIGNsb3Nlc3QgbWF0Y2ggKi8KKwlmb3IgKGkgPSAxNDsgaSA+PSAwOyAtLWkpIHsKKwkJaWYgKHJhbmdlID49IGxtODVfcmFuZ2VfbWFwW2ldKSB7CisJCQlpZiAoKGxtODVfcmFuZ2VfbWFwW2kgKyAxXSAtIHJhbmdlKSA8CisJCQkJCShyYW5nZSAtIGxtODVfcmFuZ2VfbWFwW2ldKSkKKwkJCQlyZXR1cm4gaSArIDE7CisJCQlyZXR1cm4gaTsKIAkJfQogCX0KLQlyZXR1cm4oIGkgJiAweDBmICk7CisKKwlyZXR1cm4gMDsKIH0KICNkZWZpbmUgUkFOR0VfRlJPTV9SRUcodmFsKSAobG04NV9yYW5nZV9tYXBbKHZhbCkmMHgwZl0pCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLXB4YS5jCmluZGV4IGViNjlmYmEuLmRkZTZjZTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcHhhLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1weGEuYwpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2kyYy5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+Ci0jaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KIAogc3RydWN0IHB4YV9pMmMgewogCXNwaW5sb2NrX3QJCWxvY2s7CkBAIC05NDUsMzIgKzk0NCw2IEBACiAJLmZ1bmN0aW9uYWxpdHkJPSBpMmNfcHhhX2Z1bmN0aW9uYWxpdHksCiB9OwogCi1zdGF0aWMgdm9pZCBpMmNfcHhhX2VuYWJsZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JaWYgKGNwdV9pc19weGEyN3goKSkgewotCQlzd2l0Y2ggKGRldi0+aWQpIHsKLQkJY2FzZSAwOgotCQkJcHhhX2dwaW9fbW9kZShHUElPMTE3X0kyQ1NDTF9NRCk7Ci0JCQlweGFfZ3Bpb19tb2RlKEdQSU8xMThfSTJDU0RBX01EKTsKLQkJCWJyZWFrOwotCQljYXNlIDE6Ci0JCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCQkJUENGUiB8PSBQQ0ZSX1BJMkNFTjsKLQkJCWxvY2FsX2lycV9lbmFibGUoKTsKLQkJCWJyZWFrOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBpMmNfcHhhX2Rpc2FibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQotewotCWlmIChjcHVfaXNfcHhhMjd4KCkgJiYgZGV2LT5pZCA9PSAxKSB7Ci0JCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JCVBDRlIgJj0gflBDRlJfUEkyQ0VOOwotCQlsb2NhbF9pcnFfZW5hYmxlKCk7Ci0JfQotfQotCiAjZGVmaW5lIHJlc19sZW4ocikJCSgociktPmVuZCAtIChyKS0+c3RhcnQgKyAxKQogc3RhdGljIGludCBpMmNfcHhhX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIHsKQEAgLTEwMzYsNyArMTAwOSw2IEBACiAjZW5kaWYKIAogCWNsa19lbmFibGUoaTJjLT5jbGspOwotCWkyY19weGFfZW5hYmxlKGRldik7CiAKIAlpZiAocGxhdCkgewogCQlpMmMtPmFkYXAuY2xhc3MgPSBwbGF0LT5jbGFzczsKQEAgLTEwODAsNyArMTA1Miw2IEBACiAJCWZyZWVfaXJxKGlycSwgaTJjKTsKIGVyZXFpcnE6CiAJY2xrX2Rpc2FibGUoaTJjLT5jbGspOwotCWkyY19weGFfZGlzYWJsZShkZXYpOwogCWlvdW5tYXAoaTJjLT5yZWdfYmFzZSk7CiBlcmVtYXA6CiAJY2xrX3B1dChpMmMtPmNsayk7CkBAIC0xMTAzLDcgKzEwNzQsNiBAQAogCiAJY2xrX2Rpc2FibGUoaTJjLT5jbGspOwogCWNsa19wdXQoaTJjLT5jbGspOwotCWkyY19weGFfZGlzYWJsZShkZXYpOwogCiAJaW91bm1hcChpMmMtPnJlZ19iYXNlKTsKIAlyZWxlYXNlX21lbV9yZWdpb24oaTJjLT5pb2Jhc2UsIGkyYy0+aW9zaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtczNjMjQxMC5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKaW5kZXggMTMwNWVmMS4uOWU4Yzg3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKKysrIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1zM2MyNDEwLmMKQEAgLTI5MCwxMiArMjkwLDEyIEBACiAJCSAqIGJ1cywgb3Igc3RhcnRlZCBhIG5ldyBpMmMgbWVzc2FnZQogCQkgKi8KIAkJCi0JCWlmIChpaWNzdGF0ICAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUICYmCisJCWlmIChpaWNzdGF0ICYgUzNDMjQxMF9JSUNTVEFUX0xBU1RCSVQgJiYKIAkJICAgICEoaTJjLT5tc2ctPmZsYWdzICYgSTJDX01fSUdOT1JFX05BSykpIHsKIAkJCS8qIGFjayB3YXMgbm90IHJlY2VpdmVkLi4uICovCiAKIAkJCWRldl9kYmcoaTJjLT5kZXYsICJhY2sgd2FzIG5vdCByZWNlaXZlZFxuIik7Ci0JCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgLUVSRU1PVEVJTyk7CisJCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgLUVOWElPKTsKIAkJCWdvdG8gb3V0X2FjazsKIAkJfQogCkBAIC0zMDUsNyArMzA1LDcgQEAKIAkJCWkyYy0+c3RhdGUgPSBTVEFURV9XUklURTsKIAogCQkvKiB0ZXJtaW5hdGUgdGhlIHRyYW5zZmVyIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8KLQkJICogKHVzZWQgYnkgdGhlIGkyYyBwcm9iZSB0byBmaW5kIGRldmljZXMgKi8KKwkJICogYXMgdGhpcyBpcyB1c2VkIGJ5IHRoZSBpMmMgcHJvYmUgdG8gZmluZCBkZXZpY2VzLiAqLwogCiAJCWlmIChpc19sYXN0bXNnKGkyYykgJiYgaTJjLT5tc2ctPmxlbiA9PSAwKSB7CiAJCQlzM2MyNHh4X2kyY19zdG9wKGkyYywgMCk7CkBAIC0zMjMsNyArMzIzLDE3IEBACiAJCSAqIGVuZCBvZiB0aGUgbWVzc2FnZSwgYW5kIGlmIHNvLCB3b3JrIG91dCB3aGF0IHRvIGRvCiAJCSAqLwogCisJCWlmICghKGkyYy0+bXNnLT5mbGFncyAmIEkyQ19NX0lHTk9SRV9OQUspKSB7CisJCQlpZiAoaWljc3RhdCAmIFMzQzI0MTBfSUlDU1RBVF9MQVNUQklUKSB7CisJCQkJZGV2X2RiZyhpMmMtPmRldiwgIldSSVRFOiBObyBBY2tcbiIpOworCisJCQkJczNjMjR4eF9pMmNfc3RvcChpMmMsIC1FQ09OTlJFRlVTRUQpOworCQkJCWdvdG8gb3V0X2FjazsKKwkJCX0KKwkJfQorCiAJcmV0cnlfd3JpdGU6CisKIAkJaWYgKCFpc19tc2dlbmQoaTJjKSkgewogCQkJYnl0ZSA9IGkyYy0+bXNnLT5idWZbaTJjLT5tc2dfcHRyKytdOwogCQkJd3JpdGViKGJ5dGUsIGkyYy0+cmVncyArIFMzQzI0MTBfSUlDRFMpOwpAQCAtMzc3LDE3ICszODcsNiBAQAogCQkgKiBnb2luZyB0byBkbyBhbnkgbW9yZSByZWFkL3dyaXRlCiAJCSAqLwogCi0JCWlmICghKGkyYy0+bXNnLT5mbGFncyAmIEkyQ19NX0lHTk9SRV9OQUspICYmCi0JCSAgICAhKGlzX21zZ2xhc3QoaTJjKSAmJiBpc19sYXN0bXNnKGkyYykpKSB7Ci0KLQkJCWlmIChpaWNzdGF0ICYgUzNDMjQxMF9JSUNTVEFUX0xBU1RCSVQpIHsKLQkJCQlkZXZfZGJnKGkyYy0+ZGV2LCAiUkVBRDogTm8gQWNrXG4iKTsKLQotCQkJCXMzYzI0eHhfaTJjX3N0b3AoaTJjLCAtRUNPTk5SRUZVU0VEKTsKLQkJCQlnb3RvIG91dF9hY2s7Ci0JCQl9Ci0JCX0KLQogCQlieXRlID0gcmVhZGIoaTJjLT5yZWdzICsgUzNDMjQxMF9JSUNEUyk7CiAJCWkyYy0+bXNnLT5idWZbaTJjLT5tc2dfcHRyKytdID0gYnl0ZTsKIApAQCAtOTQ5LDMgKzk0OCw0IEBACiBNT0RVTEVfQVVUSE9SKCJCZW4gRG9va3MsIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDEwLWkyYyIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDQwLWkyYyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pMmMvY2hpcHMvaXNwMTMwMV9vbWFwLmMgYi9kcml2ZXJzL2kyYy9jaGlwcy9pc3AxMzAxX29tYXAuYwppbmRleCBiMWI0NWRkLi4wM2EzM2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9jaGlwcy9pc3AxMzAxX29tYXAuYworKysgYi9kcml2ZXJzL2kyYy9jaGlwcy9pc3AxMzAxX29tYXAuYwpAQCAtNzIsNyArNzIsNyBAQAogfTsKIAogCi0vKiBiaXRzIGluIE9UR19DVFJMX1JFRyAqLworLyogYml0cyBpbiBPVEdfQ1RSTCAqLwogCiAjZGVmaW5lCU9UR19YQ0VJVl9PVVRQVVRTIFwKIAkoT1RHX0FTRVNTVkxEfE9UR19CU0VTU0VORHxPVEdfQlNFU1NWTER8T1RHX1ZCVVNWTER8T1RHX0lEKQpAQCAtMTg2LDggKzE4Niw4IEBACiAKIC8qIG9wZXJhdGlvbmFsIHJlZ2lzdGVycyAqLwogI2RlZmluZQlJU1AxMzAxX01PREVfQ09OVFJPTF8xCQkweDA0CS8qIHU4IHJlYWQsIHNldCwgKzEgY2xlYXIgKi8KLSMJZGVmaW5lCU1DMV9TUEVFRF9SRUcJCSgxIDw8IDApCi0jCWRlZmluZQlNQzFfU1VTUEVORF9SRUcJCSgxIDw8IDEpCisjCWRlZmluZQlNQzFfU1BFRUQJCSgxIDw8IDApCisjCWRlZmluZQlNQzFfU1VTUEVORAkJKDEgPDwgMSkKICMJZGVmaW5lCU1DMV9EQVRfU0UwCQkoMSA8PCAyKQogIwlkZWZpbmUJTUMxX1RSQU5TUEFSRU5UCQkoMSA8PCAzKQogIwlkZWZpbmUJTUMxX0JESVNfQUNPTl9FTgkoMSA8PCA0KQpAQCAtMjc0LDcgKzI3NCw3IEBACiAJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfVU5ERUZJTkVEOwogCiAJLy8gaXNwMTMwMV9zZXRfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzIsIE1DMl9HTE9CQUxfUFdSX0ROKTsKLQlpc3AxMzAxX3NldF9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwgTUMxX1NVU1BFTkRfUkVHKTsKKwlpc3AxMzAxX3NldF9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwgTUMxX1NVU1BFTkQpOwogCiAJaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9PVEdfQ09OVFJPTF8xLCBPVEcxX0lEX1BVTExET1dOKTsKIAlpc3AxMzAxX2NsZWFyX2JpdHMoaXNwLCBJU1AxMzAxX01PREVfQ09OVFJPTF8xLCBNQzFfREFUX1NFMCk7CkBAIC0yODMsNyArMjgzLDcgQEAKIHN0YXRpYyB2b2lkIHBvd2VyX3VwKHN0cnVjdCBpc3AxMzAxICppc3ApCiB7CiAJLy8gaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMiwgTUMyX0dMT0JBTF9QV1JfRE4pOwotCWlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsIE1DMV9TVVNQRU5EX1JFRyk7CisJaXNwMTMwMV9jbGVhcl9iaXRzKGlzcCwgSVNQMTMwMV9NT0RFX0NPTlRST0xfMSwgTUMxX1NVU1BFTkQpOwogCiAJLyogZG8gdGhpcyBvbmx5IHdoZW4gY3B1IGlzIGRyaXZpbmcgdHJhbnNjZWl2ZXIsCiAJICogc28gaG9zdCB3b24ndCBzZWUgYSBsb3cgc3BlZWQgZGV2aWNlLi4uCkBAIC0zNjAsNiArMzYwLDggQEAKIC8qIGNhbGxlZCBmcm9tIGlycSBoYW5kbGVycyAqLwogc3RhdGljIHZvaWQgYV9pZGxlKHN0cnVjdCBpc3AxMzAxICppc3AsIGNvbnN0IGNoYXIgKnRhZykKIHsKKwl1MzIgbDsKKwogCWlmIChpc3AtPm90Zy5zdGF0ZSA9PSBPVEdfU1RBVEVfQV9JRExFKQogCQlyZXR1cm47CiAKQEAgLTM3MywxMyArMzc1LDE3IEBACiAJCWdhZGdldF9zdXNwZW5kKGlzcCk7CiAJfQogCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0FfSURMRTsKLQlpc3AtPmxhc3Rfb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUcgPSBPVEdfQ1RSTF9SRUcgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisJaXNwLT5sYXN0X290Z19jdHJsID0gbDsKIAlwcl9kZWJ1ZygiICAtLT4gJXMvJXNcbiIsIHN0YXRlX25hbWUoaXNwKSwgdGFnKTsKIH0KIAogLyogY2FsbGVkIGZyb20gaXJxIGhhbmRsZXJzICovCiBzdGF0aWMgdm9pZCBiX2lkbGUoc3RydWN0IGlzcDEzMDEgKmlzcCwgY29uc3QgY2hhciAqdGFnKQogeworCXUzMiBsOworCiAJaWYgKGlzcC0+b3RnLnN0YXRlID09IE9UR19TVEFURV9CX0lETEUpCiAJCXJldHVybjsKIApAQCAtMzkzLDcgKzM5OSw5IEBACiAJCWdhZGdldF9zdXNwZW5kKGlzcCk7CiAJfQogCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfSURMRTsKLQlpc3AtPmxhc3Rfb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUcgPSBPVEdfQ1RSTF9SRUcgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfWENFSVZfT1VUUFVUUzsKKwlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisJaXNwLT5sYXN0X290Z19jdHJsID0gbDsKIAlwcl9kZWJ1ZygiICAtLT4gJXMvJXNcbiIsIHN0YXRlX25hbWUoaXNwKSwgdGFnKTsKIH0KIApAQCAtNDA2LDcgKzQxNCw3IEBACiAJdTgJc3JjID0gaXNwMTMwMV9nZXRfdTgoaXNwLCBJU1AxMzAxX0lOVEVSUlVQVF9TT1VSQ0UpOwogCiAJcHJfZGVidWcoIm90ZzogJTA2eCwgJXMgJXMsIG90Zy8lMDJ4IHN0YXQvJTAyeC4lMDJ4XG4iLAotCQlPVEdfQ1RSTF9SRUcsIGxhYmVsLCBzdGF0ZV9uYW1lKGlzcCksCisJCW9tYXBfcmVhZGwoT1RHX0NUUkwpLCBsYWJlbCwgc3RhdGVfbmFtZShpc3ApLAogCQljdHJsLCBzdGF0dXMsIHNyYyk7CiAJLyogbW9kZSBjb250cm9sIGFuZCBpcnEgZW5hYmxlcyBkb24ndCBjaGFuZ2UgbXVjaCAqLwogI2VuZGlmCkBAIC00MjksNyArNDM3LDcgQEAKIHN0YXRpYyB2b2lkIGNoZWNrX3N0YXRlKHN0cnVjdCBpc3AxMzAxICppc3AsIGNvbnN0IGNoYXIgKnRhZykKIHsKIAllbnVtIHVzYl9vdGdfc3RhdGUJc3RhdGUgPSBPVEdfU1RBVEVfVU5ERUZJTkVEOwotCXU4CQkJZnNtID0gT1RHX1RFU1RfUkVHICYgMHgwZmY7CisJdTgJCQlmc20gPSBvbWFwX3JlYWR3KE9UR19URVNUKSAmIDB4MGZmOwogCXVuc2lnbmVkCQlleHRyYSA9IDA7CiAKIAlzd2l0Y2ggKGZzbSkgewpAQCAtNDk0LDcgKzUwMiw4IEBACiAJaWYgKGlzcC0+b3RnLnN0YXRlID09IHN0YXRlICYmICFleHRyYSkKIAkJcmV0dXJuOwogCXByX2RlYnVnKCJvdGc6ICVzIEZTTSAlcy8lMDJ4LCAlcywgJTA2eFxuIiwgdGFnLAotCQlzdGF0ZV9zdHJpbmcoc3RhdGUpLCBmc20sIHN0YXRlX25hbWUoaXNwKSwgT1RHX0NUUkxfUkVHKTsKKwkJc3RhdGVfc3RyaW5nKHN0YXRlKSwgZnNtLCBzdGF0ZV9uYW1lKGlzcCksCisJCW9tYXBfcmVhZGwoT1RHX0NUUkwpKTsKIH0KIAogI2Vsc2UKQEAgLTUwOCwxMCArNTE3LDExIEBACiB7CiAJdTMyCW90Z19jdHJsOwogCi0Jb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUcKLQkJCSYgT1RHX0NUUkxfTUFTSwotCQkJJiB+T1RHX1hDRUlWX0lOUFVUUwotCQkJJiB+KE9UR19JRHxPVEdfQVNFU1NWTER8T1RHX1ZCVVNWTEQpOworCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfQ1RSTF9NQVNLOworCW90Z19jdHJsICY9IH5PVEdfWENFSVZfSU5QVVRTOworCW90Z19jdHJsICY9IH4oT1RHX0lEfE9UR19BU0VTU1ZMRHxPVEdfVkJVU1ZMRCk7CisKKwogCWlmIChpbnRfc3JjICYgSU5UUl9TRVNTX1ZMRCkKIAkJb3RnX2N0cmwgfD0gT1RHX0FTRVNTVkxEOwogCWVsc2UgaWYgKGlzcC0+b3RnLnN0YXRlID09IE9UR19TVEFURV9BX1dBSVRfVkZBTEwpIHsKQEAgLTUzNCw3ICs1NDQsNyBAQAogCQkJcmV0dXJuOwogCQl9CiAJfQotCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiB9CiAKIC8qIG91dHB1dHMgZnJvbSBJU1AxMzAxX09UR19TVEFUVVMgKi8KQEAgLTU0MiwxNSArNTUyLDE0IEBACiB7CiAJdTMyCW90Z19jdHJsOwogCi0Jb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUcKLQkJCSYgT1RHX0NUUkxfTUFTSwotCQkJJiB+T1RHX1hDRUlWX0lOUFVUUwotCQkJJiB+KE9UR19CU0VTU1ZMRHxPVEdfQlNFU1NFTkQpOworCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfQ1RSTF9NQVNLOworCW90Z19jdHJsICY9IH5PVEdfWENFSVZfSU5QVVRTOworCW90Z19jdHJsICY9IH4oT1RHX0JTRVNTVkxEIHwgT1RHX0JTRVNTRU5EKTsKIAlpZiAob3RnX3N0YXR1cyAmIE9UR19CX1NFU1NfVkxEKQogCQlvdGdfY3RybCB8PSBPVEdfQlNFU1NWTEQ7CiAJZWxzZSBpZiAob3RnX3N0YXR1cyAmIE9UR19CX1NFU1NfRU5EKQogCQlvdGdfY3RybCB8PSBPVEdfQlNFU1NFTkQ7Ci0JT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIH0KIAogLyogaW5wdXRzIGdvaW5nIHRvIElTUDEzMDEgKi8KQEAgLTU1OSw3ICs1NjgsNyBAQAogCXUzMglvdGdfY3RybCwgb3RnX2NoYW5nZTsKIAl1OAlzZXQgPSBPVEcxX0RNX1BVTExET1dOLCBjbHIgPSBPVEcxX0RNX1BVTExVUDsKIAotCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJb3RnX2NoYW5nZSA9IG90Z19jdHJsIF4gaXNwLT5sYXN0X290Z19jdHJsOwogCWlzcC0+bGFzdF9vdGdfY3RybCA9IG90Z19jdHJsOwogCW90Z19jdHJsID0gb3RnX2N0cmwgJiBPVEdfWENFSVZfSU5QVVRTOwpAQCAtNjM5LDYgKzY0OCw4IEBACiAKIAkvKiBITlAgc3dpdGNoIHRvIGhvc3Qgb3IgcGVyaXBoZXJhbDsgYW5kIFNSUCAqLwogCWlmIChvdGdfY2hhbmdlICYgT1RHX1BVTExVUCkgeworCQl1MzIgbDsKKwogCQlzd2l0Y2ggKGlzcC0+b3RnLnN0YXRlKSB7CiAJCWNhc2UgT1RHX1NUQVRFX0JfSURMRToKIAkJCWlmIChjbHIgJiBPVEcxX0RQX1BVTExVUCkKQEAgLTY1NSw3ICs2NjYsOSBAQAogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJCX0KLQkJT1RHX0NUUkxfUkVHIHw9IE9UR19QVUxMVVA7CisJCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKKwkJbCB8PSBPVEdfUFVMTFVQOworCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CiAJfQogCiAJY2hlY2tfc3RhdGUoaXNwLCBfX2Z1bmNfXyk7CkBAIC02NjQsMjAgKzY3NywyMCBAQAogCiBzdGF0aWMgaXJxcmV0dXJuX3Qgb21hcF9vdGdfaXJxKGludCBpcnEsIHZvaWQgKl9pc3ApCiB7Ci0JdTE2CQlvdGdfaXJxID0gT1RHX0lSUV9TUkNfUkVHOworCXUxNgkJb3RnX2lycSA9IG9tYXBfcmVhZHcoT1RHX0lSUV9TUkMpOwogCXUzMgkJb3RnX2N0cmw7CiAJaW50CQlyZXQgPSBJUlFfTk9ORTsKIAlzdHJ1Y3QgaXNwMTMwMQkqaXNwID0gX2lzcDsKIAogCS8qIHVwZGF0ZSBJU1AxMzAxIHRyYW5zY2lldmVyIGZyb20gT1RHIGNvbnRyb2xsZXIgKi8KIAlpZiAob3RnX2lycSAmIE9QUlRfQ0hHKSB7Ci0JCU9UR19JUlFfU1JDX1JFRyA9IE9QUlRfQ0hHOworCQlvbWFwX3dyaXRldyhPUFJUX0NIRywgT1RHX0lSUV9TUkMpOwogCQlpc3AxMzAxX2RlZmVyX3dvcmsoaXNwLCBXT1JLX1VQREFURV9JU1ApOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIFNSUCB0byBiZWNvbWUgYl9wZXJpcGhlcmFsIGZhaWxlZCAqLwogCX0gZWxzZSBpZiAob3RnX2lycSAmIEJfU1JQX1RNUk9VVCkgewotCQlwcl9kZWJ1Zygib3RnOiBCX1NSUF9USU1FT1VULCAlMDZ4XG4iLCBPVEdfQ1RSTF9SRUcpOworCQlwcl9kZWJ1Zygib3RnOiBCX1NSUF9USU1FT1VULCAlMDZ4XG4iLCBvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAJCW5vdHJlc3BvbmRpbmcoaXNwKTsKIAogCQkvKiBnYWRnZXQgZHJpdmVycyB0aGF0IGNhcmUgc2hvdWxkIG1vbml0b3IgYWxsIGtpbmRzIG9mCkBAIC02ODcsMzEgKzcwMCwzMSBAQAogCQlpZiAoaXNwLT5vdGcuc3RhdGUgPT0gT1RHX1NUQVRFX0JfU1JQX0lOSVQpCiAJCQliX2lkbGUoaXNwLCAic3JwX3RpbWVvdXQiKTsKIAotCQlPVEdfSVJRX1NSQ19SRUcgPSBCX1NSUF9UTVJPVVQ7CisJCW9tYXBfd3JpdGV3KEJfU1JQX1RNUk9VVCwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIEhOUCB0byBiZWNvbWUgYl9ob3N0IGZhaWxlZCAqLwogCX0gZWxzZSBpZiAob3RnX2lycSAmIEJfSE5QX0ZBSUwpIHsKIAkJcHJfZGVidWcoIm90ZzogJXMgQl9ITlBfRkFJTCwgJTA2eFxuIiwKLQkJCQlzdGF0ZV9uYW1lKGlzcCksIE9UR19DVFJMX1JFRyk7CisJCQkJc3RhdGVfbmFtZShpc3ApLCBvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAJCW5vdHJlc3BvbmRpbmcoaXNwKTsKIAotCQlvdGdfY3RybCA9IE9UR19DVFJMX1JFRzsKKwkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJb3RnX2N0cmwgfD0gT1RHX0JVU0RST1A7CiAJCW90Z19jdHJsICY9IE9UR19DVFJMX01BU0sgJiB+T1RHX1hDRUlWX0lOUFVUUzsKLQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAKIAkJLyogc3Vic2V0IG9mIGJfcGVyaXBoZXJhbCgpLi4uICovCiAJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfUEVSSVBIRVJBTDsKIAkJcHJfZGVidWcoIiAgLS0+IGJfcGVyaXBoZXJhbFxuIik7CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gQl9ITlBfRkFJTDsKKwkJb21hcF93cml0ZXcoQl9ITlBfRkFJTCwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIGRldGVjdCBTUlAgZnJvbSBCLWRldmljZSAuLi4gKi8KIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBBX1NSUF9ERVRFQ1QpIHsKIAkJcHJfZGVidWcoIm90ZzogJXMgU1JQX0RFVEVDVCwgJTA2eFxuIiwKLQkJCQlzdGF0ZV9uYW1lKGlzcCksIE9UR19DVFJMX1JFRyk7CisJCQkJc3RhdGVfbmFtZShpc3ApLCBvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAKIAkJaXNwMTMwMV9kZWZlcl93b3JrKGlzcCwgV09SS19VUERBVEVfT1RHKTsKIAkJc3dpdGNoIChpc3AtPm90Zy5zdGF0ZSkgewpAQCAtNzE5LDQ5ICs3MzIsNDkgQEAKIAkJCWlmICghaXNwLT5vdGcuaG9zdCkKIAkJCQlicmVhazsKIAkJCWlzcDEzMDFfZGVmZXJfd29yayhpc3AsIFdPUktfSE9TVF9SRVNVTUUpOwotCQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQkJb3RnX2N0cmwgfD0gT1RHX0FfQlVTUkVROwogCQkJb3RnX2N0cmwgJj0gfihPVEdfQlVTRFJPUHxPVEdfQl9CVVNSRVEpCiAJCQkJCSYgfk9UR19YQ0VJVl9JTlBVVFMKIAkJCQkJJiBPVEdfQ1RSTF9NQVNLOwotCQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJCQlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAkJfQogCi0JCU9UR19JUlFfU1JDX1JFRyA9IEFfU1JQX0RFVEVDVDsKKwkJb21hcF93cml0ZXcoQV9TUlBfREVURUNULCBPVEdfSVJRX1NSQyk7CiAJCXJldCA9IElSUV9IQU5ETEVEOwogCiAJLyogdGltZXIgZXhwaXJlZDogIFQoYV93YWl0X2Jjb24pIGFuZCBtYXliZSBUKGFfd2FpdF92cmlzZSkKIAkgKiB3ZSBkb24ndCB0cmFjayB0aGVtIHNlcGFyYXRlbHkKIAkgKi8KIAl9IGVsc2UgaWYgKG90Z19pcnEgJiBBX1JFUV9UTVJPVVQpIHsKLQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCXByX2luZm8oIm90ZzogQkNPTl9UTU9VVCBmcm9tICVzLCAlMDZ4XG4iLAogCQkJCXN0YXRlX25hbWUoaXNwKSwgb3RnX2N0cmwpOwogCQlub3RyZXNwb25kaW5nKGlzcCk7CiAKIAkJb3RnX2N0cmwgfD0gT1RHX0JVU0RST1A7CiAJCW90Z19jdHJsICY9IH5PVEdfQV9CVVNSRVEgJiBPVEdfQ1RSTF9NQVNLICYgfk9UR19YQ0VJVl9JTlBVVFM7Ci0JCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsOworCQlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9BX1dBSVRfVkZBTEw7CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gQV9SRVFfVE1ST1VUOworCQlvbWFwX3dyaXRldyhBX1JFUV9UTVJPVVQsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkvKiBBLXN1cHBsaWVkIHZvbHRhZ2UgZmVsbCB0b28gbG93OyBvdmVyY3VycmVudCAqLwogCX0gZWxzZSBpZiAob3RnX2lycSAmIEFfVkJVU19FUlIpIHsKLQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJCXByaW50ayhLRVJOX0VSUiAib3RnOiAlcywgVkJVU19FUlIgJTA0eCBjdHJsICUwNnhcbiIsCiAJCQlzdGF0ZV9uYW1lKGlzcCksIG90Z19pcnEsIG90Z19jdHJsKTsKIAogCQlvdGdfY3RybCB8PSBPVEdfQlVTRFJPUDsKIAkJb3RnX2N0cmwgJj0gfk9UR19BX0JVU1JFUSAmIE9UR19DVFJMX01BU0sgJiB+T1RHX1hDRUlWX0lOUFVUUzsKLQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJCW9tYXBfd3JpdGVsKG90Z19jdHJsLCBPVEdfQ1RSTCk7CiAJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0FfVkJVU19FUlI7CiAKLQkJT1RHX0lSUV9TUkNfUkVHID0gQV9WQlVTX0VSUjsKKwkJb21hcF93cml0ZXcoQV9WQlVTX0VSUiwgT1RHX0lSUV9TUkMpOwogCQlyZXQgPSBJUlFfSEFORExFRDsKIAogCS8qIHN3aXRjaCBkcml2ZXI7IHRoZSB0cmFuc2NpZXZlciBjb2RlIGFjdGl2YXRlcyBpdCwKQEAgLTc3MCw3ICs3ODMsNyBAQAogCX0gZWxzZSBpZiAob3RnX2lycSAmIERSSVZFUl9TV0lUQ0gpIHsKIAkJaW50CWtpY2sgPSAwOwogCi0JCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCQlvdGdfY3RybCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCQlwcmludGsoS0VSTl9OT1RJQ0UgIm90ZzogJXMsIFNXSVRDSCB0byAlcywgY3RybCAlMDZ4XG4iLAogCQkJCXN0YXRlX25hbWUoaXNwKSwKIAkJCQkob3RnX2N0cmwgJiBPVEdfRFJJVkVSX1NFTCkKQEAgLTc5Myw3ICs4MDYsNyBAQAogCQl9IGVsc2UgewogCQkJaWYgKCEob3RnX2N0cmwgJiBPVEdfSUQpKSB7CiAJCQkJb3RnX2N0cmwgJj0gT1RHX0NUUkxfTUFTSyAmIH5PVEdfWENFSVZfSU5QVVRTOwotCQkJCU9UR19DVFJMX1JFRyA9IG90Z19jdHJsIHwgT1RHX0FfQlVTUkVROworCQkJCW9tYXBfd3JpdGVsKG90Z19jdHJsIHwgT1RHX0FfQlVTUkVRLCBPVEdfQ1RSTCk7CiAJCQl9CiAKIAkJCWlmIChpc3AtPm90Zy5ob3N0KSB7CkBAIC04MTgsNyArODMxLDcgQEAKIAkJCX0KIAkJfQogCi0JCU9UR19JUlFfU1JDX1JFRyA9IERSSVZFUl9TV0lUQ0g7CisJCW9tYXBfd3JpdGV3KERSSVZFUl9TV0lUQ0gsIE9UR19JUlFfU1JDKTsKIAkJcmV0ID0gSVJRX0hBTkRMRUQ7CiAKIAkJaWYgKGtpY2spCkBAIC04MzQsMTIgKzg0NywxNSBAQAogCiBzdGF0aWMgaW50IG90Z19pbml0KHN0cnVjdCBpc3AxMzAxICppc3ApCiB7CisJdTMyIGw7CisKIAlpZiAoIW90Z19kZXYpCiAJCXJldHVybiAtRU5PREVWOwogCiAJZHVtcF9yZWdzKGlzcCwgX19mdW5jX18pOwogCS8qIHNvbWUgb2YgdGhlc2UgdmFsdWVzIGFyZSBib2FyZC1zcGVjaWZpYy4uLiAqLwotCU9UR19TWVNDT05fMl9SRUcgfD0gT1RHX0VOCisJbCA9IG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8yKTsKKwlsIHw9IE9UR19FTgogCQkvKiBmb3IgQi1kZXZpY2U6ICovCiAJCXwgU1JQX0dQREFUQQkJLyogOW1zZWMgQmRldiBEKyBwdWxzZSAqLwogCQl8IFNSUF9HUERWQlVTCQkvKiBkaXNjaGFyZ2UgYWZ0ZXIgVkJVUyBwdWxzZSAqLwpAQCAtODQ5LDE4ICs4NjUsMjIgQEAKIAkJfCBTUlBfRFBXCQkvKiBkZXRlY3QgMTY3K25zIFNSUCBwdWxzZXMgKi8KIAkJfCBTUlBfREFUQSB8IFNSUF9WQlVTCS8qIGFjY2VwdCBib3RoIGtpbmRzIG9mIFNSUCBwdWxzZSAqLwogCQk7CisJb21hcF93cml0ZWwobCwgT1RHX1NZU0NPTl8yKTsKIAogCXVwZGF0ZV9vdGcxKGlzcCwgaXNwMTMwMV9nZXRfdTgoaXNwLCBJU1AxMzAxX0lOVEVSUlVQVF9TT1VSQ0UpKTsKIAl1cGRhdGVfb3RnMihpc3AsIGlzcDEzMDFfZ2V0X3U4KGlzcCwgSVNQMTMwMV9PVEdfU1RBVFVTKSk7CiAKIAljaGVja19zdGF0ZShpc3AsIF9fZnVuY19fKTsKIAlwcl9kZWJ1Zygib3RnOiAlcywgJXMgJTA2eFxuIiwKLQkJCXN0YXRlX25hbWUoaXNwKSwgX19mdW5jX18sIE9UR19DVFJMX1JFRyk7CisJCQlzdGF0ZV9uYW1lKGlzcCksIF9fZnVuY19fLCBvbWFwX3JlYWRsKE9UR19DVFJMKSk7CiAKLQlPVEdfSVJRX0VOX1JFRyA9IERSSVZFUl9TV0lUQ0ggfCBPUFJUX0NIRworCW9tYXBfd3JpdGV3KERSSVZFUl9TV0lUQ0ggfCBPUFJUX0NIRwogCQkJfCBCX1NSUF9UTVJPVVQgfCBCX0hOUF9GQUlMCi0JCQl8IEFfVkJVU19FUlIgfCBBX1NSUF9ERVRFQ1QgfCBBX1JFUV9UTVJPVVQ7Ci0JT1RHX1NZU0NPTl8yX1JFRyB8PSBPVEdfRU47CisJCQl8IEFfVkJVU19FUlIgfCBBX1NSUF9ERVRFQ1QgfCBBX1JFUV9UTVJPVVQsIE9UR19JUlFfRU4pOworCisJbCA9IG9tYXBfcmVhZGwoT1RHX1NZU0NPTl8yKTsKKwlsIHw9IE9UR19FTjsKKwlvbWFwX3dyaXRlbChsLCBPVEdfU1lTQ09OXzIpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC05MjcsNyArOTQ3LDExIEBACiAKIHN0YXRpYyB2b2lkIGJfcGVyaXBoZXJhbChzdHJ1Y3QgaXNwMTMwMSAqaXNwKQogewotCU9UR19DVFJMX1JFRyA9IE9UR19DVFJMX1JFRyAmIE9UR19YQ0VJVl9PVVRQVVRTOworCXUzMiBsOworCisJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX1hDRUlWX09VVFBVVFM7CisJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOworCiAJdXNiX2dhZGdldF92YnVzX2Nvbm5lY3QoaXNwLT5vdGcuZ2FkZ2V0KTsKIAogI2lmZGVmCUNPTkZJR19VU0JfT1RHCkBAIC05OTksNiArMTAyMyw4IEBACiAJCQlpc3BfYnN0YXQgPSAwOwogCQl9CiAJfSBlbHNlIHsKKwkJdTMyIGw7CisKIAkJLyogaWYgdXNlciB1bnBsdWdnZWQgbWluaS1BIGVuZCBvZiBjYWJsZSwKIAkJICogZG9uJ3QgYnlwYXNzIEFfV0FJVF9WRkFMTC4KIAkJICovCkBAIC0xMDE5LDggKzEwNDUsOSBAQAogCQkJCWlzcDEzMDFfY2xlYXJfYml0cyhpc3AsIElTUDEzMDFfTU9ERV9DT05UUk9MXzEsCiAJCQkJCQlNQzFfQkRJU19BQ09OX0VOKTsKIAkJCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9CX0lETEU7Ci0JCQkJT1RHX0NUUkxfUkVHICY9IE9UR19DVFJMX1JFRyAmIE9UR19DVFJMX01BU0sKLQkJCQkJCSYgfk9UR19DVFJMX0JJVFM7CisJCQkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX0NUUkxfTUFTSzsKKwkJCQlsICY9IH5PVEdfQ1RSTF9CSVRTOworCQkJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgT1RHX1NUQVRFX0JfSURMRToKIAkJCQlicmVhazsKQEAgLTEwNDYsNyArMTA3Myw4IEBACiAJCQkvKiBGQUxMVEhST1VHSCAqLwogCQljYXNlIE9UR19TVEFURV9CX1NSUF9JTklUOgogCQkJYl9pZGxlKGlzcCwgX19mdW5jX18pOwotCQkJT1RHX0NUUkxfUkVHICY9IE9UR19DVFJMX1JFRyAmIE9UR19YQ0VJVl9PVVRQVVRTOworCQkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpICYgT1RHX1hDRUlWX09VVFBVVFM7CisJCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CiAJCQkvKiBGQUxMVEhST1VHSCAqLwogCQljYXNlIE9UR19TVEFURV9CX0lETEU6CiAJCQlpZiAoaXNwLT5vdGcuZ2FkZ2V0ICYmIChpc3BfYnN0YXQgJiBPVEdfQl9TRVNTX1ZMRCkpIHsKQEAgLTExMzAsMTEgKzExNTgsMTEgQEAKIAkJCWNhc2UgT1RHX1NUQVRFX0FfV0FJVF9WUklTRToKIAkJCQlpc3AtPm90Zy5zdGF0ZSA9IE9UR19TVEFURV9BX0hPU1Q7CiAJCQkJcHJfZGVidWcoIiAgLS0+IGFfaG9zdFxuIik7Ci0JCQkJb3RnX2N0cmwgPSBPVEdfQ1RSTF9SRUc7CisJCQkJb3RnX2N0cmwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKTsKIAkJCQlvdGdfY3RybCB8PSBPVEdfQV9CVVNSRVE7CiAJCQkJb3RnX2N0cmwgJj0gfihPVEdfQlVTRFJPUHxPVEdfQl9CVVNSRVEpCiAJCQkJCQkmIE9UR19DVFJMX01BU0s7Ci0JCQkJT1RHX0NUUkxfUkVHID0gb3RnX2N0cmw7CisJCQkJb21hcF93cml0ZWwob3RnX2N0cmwsIE9UR19DVFJMKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgT1RHX1NUQVRFX0JfV0FJVF9BQ09OOgogCQkJCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfSE9TVDsKQEAgLTEyNzQsNyArMTMwMiw3IEBACiAJCXJldHVybiAtRU5PREVWOwogCiAJaWYgKCFob3N0KSB7Ci0JCU9UR19JUlFfRU5fUkVHID0gMDsKKwkJb21hcF93cml0ZXcoMCwgT1RHX0lSUV9FTik7CiAJCXBvd2VyX2Rvd24oaXNwKTsKIAkJaXNwLT5vdGcuaG9zdCA9IDA7CiAJCXJldHVybiAwOwpAQCAtMTMyNSwxMiArMTM1MywxMyBAQAogaXNwMTMwMV9zZXRfcGVyaXBoZXJhbChzdHJ1Y3Qgb3RnX3RyYW5zY2VpdmVyICpvdGcsIHN0cnVjdCB1c2JfZ2FkZ2V0ICpnYWRnZXQpCiB7CiAJc3RydWN0IGlzcDEzMDEJKmlzcCA9IGNvbnRhaW5lcl9vZihvdGcsIHN0cnVjdCBpc3AxMzAxLCBvdGcpOworCXUzMiBsOwogCiAJaWYgKCFvdGcgfHwgaXNwICE9IHRoZV90cmFuc2NlaXZlcikKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAlpZiAoIWdhZGdldCkgewotCQlPVEdfSVJRX0VOX1JFRyA9IDA7CisJCW9tYXBfd3JpdGV3KDAsIE9UR19JUlFfRU4pOwogCQlpZiAoIWlzcC0+b3RnLmRlZmF1bHRfYSkKIAkJCWVuYWJsZV92YnVzX2RyYXcoaXNwLCAwKTsKIAkJdXNiX2dhZGdldF92YnVzX2Rpc2Nvbm5lY3QoaXNwLT5vdGcuZ2FkZ2V0KTsKQEAgLTEzNTEsOSArMTM4MCwxMSBAQAogCWlzcC0+b3RnLmdhZGdldCA9IGdhZGdldDsKIAkvLyBGSVhNRSB1cGRhdGUgaXRzIHJlZmNvdW50CiAKLQlPVEdfQ1RSTF9SRUcgPSAoT1RHX0NUUkxfUkVHICYgT1RHX0NUUkxfTUFTSwotCQkJCSYgfihPVEdfWENFSVZfT1VUUFVUU3xPVEdfQ1RSTF9CSVRTKSkKLQkJCXwgT1RHX0lEOworCWwgPSBvbWFwX3JlYWRsKE9UR19DVFJMKSAmIE9UR19DVFJMX01BU0s7CisJbCAmPSB+KE9UR19YQ0VJVl9PVVRQVVRTfE9UR19DVFJMX0JJVFMpOworCWwgfD0gT1RHX0lEOworCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwogCXBvd2VyX3VwKGlzcCk7CiAJaXNwLT5vdGcuc3RhdGUgPSBPVEdfU1RBVEVfQl9JRExFOwogCkBAIC0xNDA1LDE2ICsxNDM2LDE3IEBACiAJCQl8fCBpc3AtPm90Zy5zdGF0ZSAhPSBPVEdfU1RBVEVfQl9JRExFKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCW90Z19jdHJsID0gT1RHX0NUUkxfUkVHOworCW90Z19jdHJsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CiAJaWYgKCEob3RnX2N0cmwgJiBPVEdfQlNFU1NFTkQpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCW90Z19jdHJsIHw9IE9UR19CX0JVU1JFUTsKIAlvdGdfY3RybCAmPSB+T1RHX0FfQlVTUkVRICYgT1RHX0NUUkxfTUFTSzsKLQlPVEdfQ1RSTF9SRUcgPSBvdGdfY3RybDsKKwlvbWFwX3dyaXRlbChvdGdfY3RybCwgT1RHX0NUUkwpOwogCWlzcC0+b3RnLnN0YXRlID0gT1RHX1NUQVRFX0JfU1JQX0lOSVQ7CiAKLQlwcl9kZWJ1Zygib3RnOiBTUlAsICVzIC4uLiAlMDZ4XG4iLCBzdGF0ZV9uYW1lKGlzcCksIE9UR19DVFJMX1JFRyk7CisJcHJfZGVidWcoIm90ZzogU1JQLCAlcyAuLi4gJTA2eFxuIiwgc3RhdGVfbmFtZShpc3ApLAorCQkJb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogI2lmZGVmCUNPTkZJR19VU0JfT1RHCiAJY2hlY2tfc3RhdGUoaXNwLCBfX2Z1bmNfXyk7CiAjZW5kaWYKQEAgLTE0MjYsNiArMTQ1OCw3IEBACiB7CiAjaWZkZWYJQ09ORklHX1VTQl9PVEcKIAlzdHJ1Y3QgaXNwMTMwMQkqaXNwID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGlzcDEzMDEsIG90Zyk7CisJdTMyIGw7CiAKIAlpZiAoIWRldiB8fCBpc3AgIT0gdGhlX3RyYW5zY2VpdmVyKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTE0NTIsNyArMTQ4NSw5IEBACiAjZW5kaWYKIAkJLyogY2FsbGVyIG11c3Qgc3VzcGVuZCB0aGVuIGNsZWFyIEFfQlVTUkVRICovCiAJCXVzYl9nYWRnZXRfdmJ1c19jb25uZWN0KGlzcC0+b3RnLmdhZGdldCk7Ci0JCU9UR19DVFJMX1JFRyB8PSBPVEdfQV9TRVRCX0hOUEVOOworCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJCWwgfD0gT1RHX0FfU0VUQl9ITlBFTjsKKwkJb21hcF93cml0ZWwobCwgT1RHX0NUUkwpOwogCiAJCWJyZWFrOwogCWNhc2UgT1RHX1NUQVRFX0FfUEVSSVBIRVJBTDoKQEAgLTE0NjIsNyArMTQ5Nyw3IEBACiAJCXJldHVybiAtRUlMU0VROwogCX0KIAlwcl9kZWJ1Zygib3RnOiBITlAgJXMsICUwNnggLi4uXG4iLAotCQlzdGF0ZV9uYW1lKGlzcCksIE9UR19DVFJMX1JFRyk7CisJCXN0YXRlX25hbWUoaXNwKSwgb21hcF9yZWFkbChPVEdfQ1RSTCkpOwogCWNoZWNrX3N0YXRlKGlzcCwgX19mdW5jX18pOwogCXJldHVybiAwOwogI2Vsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2kyYy1kZXYuYyBiL2RyaXZlcnMvaTJjL2kyYy1kZXYuYwppbmRleCBkMzRjMTRjLi4wMDZhNTg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2kyYy9pMmMtZGV2LmMKKysrIGIvZHJpdmVycy9pMmMvaTJjLWRldi5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgogI2luY2x1ZGUgPGxpbnV4L2kyYy1kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBpMmNkZXZfZHJpdmVyOwpAQCAtNDQxLDE0ICs0NDIsMjAgQEAKIAlzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50OwogCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcDsKIAlzdHJ1Y3QgaTJjX2RldiAqaTJjX2RldjsKKwlpbnQgcmV0ID0gMDsKIAorCWxvY2tfa2VybmVsKCk7CiAJaTJjX2RldiA9IGkyY19kZXZfZ2V0X2J5X21pbm9yKG1pbm9yKTsKLQlpZiAoIWkyY19kZXYpCi0JCXJldHVybiAtRU5PREVWOworCWlmICghaTJjX2RldikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKIAlhZGFwID0gaTJjX2dldF9hZGFwdGVyKGkyY19kZXYtPmFkYXAtPm5yKTsKLQlpZiAoIWFkYXApCi0JCXJldHVybiAtRU5PREVWOworCWlmICghYWRhcCkgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKIAkvKiBUaGlzIGNyZWF0ZXMgYW4gYW5vbnltb3VzIGkyY19jbGllbnQsIHdoaWNoIG1heSBsYXRlciBiZQogCSAqIHBvaW50ZWQgdG8gc29tZSBhZGRyZXNzIHVzaW5nIEkyQ19TTEFWRSBvciBJMkNfU0xBVkVfRk9SQ0UuCkBAIC00NjAsNyArNDY3LDggQEAKIAljbGllbnQgPSBremFsbG9jKHNpemVvZigqY2xpZW50KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGllbnQpIHsKIAkJaTJjX3B1dF9hZGFwdGVyKGFkYXApOwotCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CiAJfQogCXNucHJpbnRmKGNsaWVudC0+bmFtZSwgSTJDX05BTUVfU0laRSwgImkyYy1kZXYgJWQiLCBhZGFwLT5ucik7CiAJY2xpZW50LT5kcml2ZXIgPSAmaTJjZGV2X2RyaXZlcjsKQEAgLTQ2OCw3ICs0NzYsOSBAQAogCWNsaWVudC0+YWRhcHRlciA9IGFkYXA7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gY2xpZW50OwogCi0JcmV0dXJuIDA7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaTJjZGV2X3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9LY29uZmlnIGIvZHJpdmVycy9pZGUvS2NvbmZpZwppbmRleCBiNGYzYWVmLi4xNjA3NTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9LY29uZmlnCisrKyBiL2RyaXZlcnMvaWRlL0tjb25maWcKQEAgLTEwMjgsNiArMTAyOCw3IEBACiAKIGNvbmZpZyBCTEtfREVWX0hEX09OTFkKIAlib29sICJPbGQgaGFyZCBkaXNrIChNRk0vUkxML0lERSkgZHJpdmVyIgorCWRlcGVuZHMgb24gIUFSTSB8fCBBUkNIX1JQQyB8fCBBUkNIX1NIQVJLIHx8IEJST0tFTgogCWhlbHAKIAkgIFRoZXJlIGFyZSB0d28gZHJpdmVycyBmb3IgTUZNL1JMTC9JREUgaGFyZCBkaXNrcy4gTW9zdCBwZW9wbGUgdXNlCiAJICB0aGUgbmV3ZXIgZW5oYW5jZWQgZHJpdmVyLCBidXQgdGhpcyBvbGQgb25lIGlzIHN0aWxsIGFyb3VuZCBmb3IgdHdvCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9hcm0vYmFzdC1pZGUuYyBiL2RyaXZlcnMvaWRlL2FybS9iYXN0LWlkZS5jCmluZGV4IDcxM2NlZjIuLjhlOGMyODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2FybS9iYXN0LWlkZS5jCisrKyBiL2RyaXZlcnMvaWRlL2FybS9iYXN0LWlkZS5jCkBAIC00Miw2ICs0Miw3IEBACiAKIAlody5pb19wb3J0cy5jdGxfYWRkciA9IGF1eCArICg2ICogMHgyMCk7CiAJaHcuaXJxID0gaXJxOworCWh3LmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIAogCWh3aWYgPSBpZGVfZmluZF9wb3J0KCk7CiAJaWYgKGh3aWYgPT0gTlVMTCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2FybS9pZGVfYXJtLmMgYi9kcml2ZXJzL2lkZS9hcm0vaWRlX2FybS5jCmluZGV4IDQyNjNmZmQuLjJmMzExZGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2FybS9pZGVfYXJtLmMKKysrIGIvZHJpdmVycy9pZGUvYXJtL2lkZV9hcm0uYwpAQCAtNDksNiArNDksNyBAQAogCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOwogCWlkZV9zdGRfaW5pdF9wb3J0cygmaHcsIGJhc2UsIGN0bCk7CiAJaHcuaXJxID0gSURFX0FSTV9JUlE7CisJaHcuY2hpcHNldCA9IGlkZV9nZW5lcmljOwogCiAJaHdpZiA9IGlkZV9maW5kX3BvcnQoKTsKIAlpZiAoaHdpZikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvYXJtL3BhbG1fYmszNzEwLmMgYi9kcml2ZXJzL2lkZS9hcm0vcGFsbV9iazM3MTAuYwppbmRleCA5NjM3OGViLi4yZjJiNGY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9hcm0vcGFsbV9iazM3MTAuYworKysgYi9kcml2ZXJzL2lkZS9hcm0vcGFsbV9iazM3MTAuYwpAQCAtNzYsNyArNzYsNyBAQAogCiAjaW5jbHVkZSAiLi4vaWRlLXRpbWluZy5oIgogCi1zdGF0aWMgbG9uZyBpZGVfcGFsbV9jbGs7CitzdGF0aWMgdW5zaWduZWQgaWRlY2xrX3BlcmlvZDsgLyogaW4gbmFub3NlY29uZHMgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwYWxtX2JrMzcxMF91ZG1hdGltaW5nIHBhbG1fYmszNzEwX3VkbWF0aW1pbmdzWzZdID0gewogCXsxNjAsIDI0MH0sCQkvKiBVRE1BIE1vZGUgMCAqLwpAQCAtODYsOCArODYsNiBAQAogCXs4NSwgIDYwfSwJCS8qIFVETUEgTW9kZSA0ICovCiB9OwogCi1zdGF0aWMgc3RydWN0IGNsayAqaWRlY2xrcDsKLQogc3RhdGljIHZvaWQgcGFsbV9iazM3MTBfc2V0dWRtYW1vZGUodm9pZCBfX2lvbWVtICpiYXNlLCB1bnNpZ25lZCBpbnQgZGV2LAogCQkJCSAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKQEAgLTk3LDEwICs5NSwxMCBAQAogCiAJLyogRE1BIERhdGEgU2V0dXAgKi8KIAl0MCA9IERJVl9ST1VORF9VUChwYWxtX2JrMzcxMF91ZG1hdGltaW5nc1ttb2RlXS5jeWNsZXRpbWUsCi0JCQkgIGlkZV9wYWxtX2NsaykgLSAxOwotCXRlbnYgPSBESVZfUk9VTkRfVVAoMjAsIGlkZV9wYWxtX2NsaykgLSAxOworCQkJICBpZGVjbGtfcGVyaW9kKSAtIDE7CisJdGVudiA9IERJVl9ST1VORF9VUCgyMCwgaWRlY2xrX3BlcmlvZCkgLSAxOwogCXRycCA9IERJVl9ST1VORF9VUChwYWxtX2JrMzcxMF91ZG1hdGltaW5nc1ttb2RlXS5ycHRpbWUsCi0JCQkgICBpZGVfcGFsbV9jbGspIC0gMTsKKwkJCSAgIGlkZWNsa19wZXJpb2QpIC0gMTsKIAogCS8qIHVkbWF0aW0gUmVnaXN0ZXIgKi8KIAl2YWwxNiA9IHJlYWR3KGJhc2UgKyBCSzM3MTBfVURNQVRJTSkgJiAoZGV2ID8gMHhGRjBGIDogMHhGRkYwKTsKQEAgLTE0MSw4ICsxMzksOCBAQAogCWN5Y2xldGltZSA9IG1heF90KGludCwgdC0+Y3ljbGUsIG1pbl9jeWNsZSk7CiAKIAkvKiBETUEgRGF0YSBTZXR1cCAqLwotCXQwID0gRElWX1JPVU5EX1VQKGN5Y2xldGltZSwgaWRlX3BhbG1fY2xrKTsKLQl0ZCA9IERJVl9ST1VORF9VUCh0LT5hY3RpdmUsIGlkZV9wYWxtX2Nsayk7CisJdDAgPSBESVZfUk9VTkRfVVAoY3ljbGV0aW1lLCBpZGVjbGtfcGVyaW9kKTsKKwl0ZCA9IERJVl9ST1VORF9VUCh0LT5hY3RpdmUsIGlkZWNsa19wZXJpb2QpOwogCXRrdyA9IHQwIC0gdGQgLSAxOwogCXRkIC09IDE7CiAKQEAgLTE2OCw5ICsxNjYsOSBAQAogCXN0cnVjdCBpZGVfdGltaW5nICp0OwogCiAJLyogUElPIERhdGEgU2V0dXAgKi8KLQl0MCA9IERJVl9ST1VORF9VUChjeWNsZXRpbWUsIGlkZV9wYWxtX2Nsayk7CisJdDAgPSBESVZfUk9VTkRfVVAoY3ljbGV0aW1lLCBpZGVjbGtfcGVyaW9kKTsKIAl0MiA9IERJVl9ST1VORF9VUChpZGVfdGltaW5nX2ZpbmRfbW9kZShYRkVSX1BJT18wICsgbW9kZSktPmFjdGl2ZSwKLQkJCSAgaWRlX3BhbG1fY2xrKTsKKwkJCSAgaWRlY2xrX3BlcmlvZCk7CiAKIAl0MmkgPSB0MCAtIHQyIC0gMTsKIAl0MiAtPSAxOwpAQCAtMTkyLDggKzE5MCw4IEBACiAKIAkvKiBUQVNLRklMRSBTZXR1cCAqLwogCXQgPSBpZGVfdGltaW5nX2ZpbmRfbW9kZShYRkVSX1BJT18wICsgbW9kZSk7Ci0JdDAgPSBESVZfUk9VTkRfVVAodC0+Y3ljOGIsIGlkZV9wYWxtX2Nsayk7Ci0JdDIgPSBESVZfUk9VTkRfVVAodC0+YWN0OGIsIGlkZV9wYWxtX2Nsayk7CisJdDAgPSBESVZfUk9VTkRfVVAodC0+Y3ljOGIsIGlkZWNsa19wZXJpb2QpOworCXQyID0gRElWX1JPVU5EX1VQKHQtPmFjdDhiLCBpZGVjbGtfcGVyaW9kKTsKIAogCXQyaSA9IHQwIC0gdDIgLSAxOwogCXQyIC09IDE7CkBAIC0zNTAsMjIgKzM0OCwyMiBAQAogCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBwYWxtX2JrMzcxMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewotCXN0cnVjdCBjbGsgKmNsa3A7CisJc3RydWN0IGNsayAqY2xrOwogCXN0cnVjdCByZXNvdXJjZSAqbWVtLCAqaXJxOwogCWlkZV9od2lmX3QgKmh3aWY7Ci0Jdm9pZCBfX2lvbWVtICpiYXNlOwotCWludCBwcmliYXNlLCBpOworCXVuc2lnbmVkIGxvbmcgYmFzZSwgcmF0ZTsKKwlpbnQgaTsKIAlod19yZWdzX3QgaHc7CiAJdTggaWR4WzRdID0geyAweGZmLCAweGZmLCAweGZmLCAweGZmIH07CiAKLQljbGtwID0gY2xrX2dldChOVUxMLCAiSURFQ0xLIik7Ci0JaWYgKElTX0VSUihjbGtwKSkKKwljbGsgPSBjbGtfZ2V0KE5VTEwsICJJREVDTEsiKTsKKwlpZiAoSVNfRVJSKGNsaykpCiAJCXJldHVybiAtRU5PREVWOwogCi0JaWRlY2xrcCA9IGNsa3A7Ci0JY2xrX2VuYWJsZShpZGVjbGtwKTsKLQlpZGVfcGFsbV9jbGsgPSBjbGtfZ2V0X3JhdGUoaWRlY2xrcCkvMTAwMDAwOwotCWlkZV9wYWxtX2NsayA9ICgxMDAwMC9pZGVfcGFsbV9jbGspICsgMTsKKwljbGtfZW5hYmxlKGNsayk7CisJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspOworCWlkZWNsa19wZXJpb2QgPSAxMDAwMDAwMDAwVUwgLyByYXRlOworCiAJLyogUmVnaXN0ZXIgdGhlIElERSBpbnRlcmZhY2Ugd2l0aCBMaW51eCBBVEEgSW50ZXJmYWNlICovCiAJbWVtc2V0KCZodywgMCwgc2l6ZW9mKGh3KSk7CiAKQEAgLTM3NCwyMiArMzcyLDI3IEBACiAJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGdldCBtZW1vcnkgcmVnaW9uIHJlc291cmNlXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQorCiAJaXJxID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfSVJRLCAwKTsKIAlpZiAoaXJxID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gZ2V0IElSUSByZXNvdXJjZVxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCWJhc2UgPSAodm9pZCAqKW1lbS0+c3RhcnQ7CisJaWYgKHJlcXVlc3RfbWVtX3JlZ2lvbihtZW0tPnN0YXJ0LCBtZW0tPmVuZCAtIG1lbS0+c3RhcnQgKyAxLAorCQkJICAgICAgICJwYWxtX2JrMzcxMCIpID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gcmVxdWVzdCBtZW1vcnkgcmVnaW9uXG4iKTsKKwkJcmV0dXJuIC1FQlVTWTsKKwl9CisKKwliYXNlID0gSU9fQUREUkVTUyhtZW0tPnN0YXJ0KTsKIAogCS8qIENvbmZpZ3VyZSB0aGUgUGFsbSBDaGlwIGNvbnRyb2xsZXIgKi8KLQlwYWxtX2JrMzcxMF9jaGlwaW5pdChiYXNlKTsKKwlwYWxtX2JrMzcxMF9jaGlwaW5pdCgodm9pZCBfX2lvbWVtICopYmFzZSk7CiAKLQlwcmliYXNlID0gbWVtLT5zdGFydCArIElERV9QQUxNX0FUQV9QUklfUkVHX09GRlNFVDsKIAlmb3IgKGkgPSAwOyBpIDwgSURFX05SX1BPUlRTIC0gMjsgaSsrKQotCQlody5pb19wb3J0c19hcnJheVtpXSA9IHByaWJhc2UgKyBpOwotCWh3LmlvX3BvcnRzLmN0bF9hZGRyID0gbWVtLT5zdGFydCArCi0JCQlJREVfUEFMTV9BVEFfUFJJX0NUTF9PRkZTRVQ7CisJCWh3LmlvX3BvcnRzX2FycmF5W2ldID0gYmFzZSArIElERV9QQUxNX0FUQV9QUklfUkVHX09GRlNFVCArIGk7CisJaHcuaW9fcG9ydHMuY3RsX2FkZHIgPSBiYXNlICsgSURFX1BBTE1fQVRBX1BSSV9DVExfT0ZGU0VUOwogCWh3LmlycSA9IGlycS0+c3RhcnQ7CiAJaHcuY2hpcHNldCA9IGlkZV9wYWxtMzcxMDsKIApAQCAtNDA5LDkgKzQxMiw2IEBACiAKIAlpZGVfZGV2aWNlX2FkZChpZHgsICZwYWxtX2JrMzcxMF9wb3J0X2luZm8pOwogCi0JaWYgKCFod2lmLT5wcmVzZW50KQotCQlnb3RvIG91dDsKLQogCXJldHVybiAwOwogb3V0OgogCXByaW50ayhLRVJOX1dBUk5JTkcgIlBhbG0gQ2hpcCBCSzM3MTAgSURFIFJlZ2lzdGVyIEZhaWxcbiIpOwpAQCAtNDM3LDQgKzQzNywzIEBACiAKIG1vZHVsZV9pbml0KHBhbG1fYmszNzEwX2luaXQpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtZ2VuZXJpYy5jIGIvZHJpdmVycy9pZGUvaWRlLWdlbmVyaWMuYwppbmRleCBhNjA3M2UyLi4yZDkyMjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1nZW5lcmljLmMKQEAgLTIyLDYgKzIyLDEwIEBACiAKICNkZWZpbmUgRFJWX05BTUUJImlkZV9nZW5lcmljIgogCitzdGF0aWMgaW50IHByb2JlX21hc2sgPSAweDAzOworbW9kdWxlX3BhcmFtKHByb2JlX21hc2ssIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHByb2JlX21hc2ssICJwcm9iZSBtYXNrIGZvciBsZWdhY3kgSVNBIElERSBwb3J0cyIpOworCiBzdGF0aWMgc3NpemVfdCBzdG9yZV9hZGQoc3RydWN0IGNsYXNzICpjbHMsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IG4pCiB7CiAJaWRlX2h3aWZfdCAqaHdpZjsKQEAgLTg5LDYgKzkzLDkgQEAKIAl1OCBpZHhbTUFYX0hXSUZTXTsKIAlpbnQgaTsKIAorCXByaW50ayhLRVJOX0lORk8gRFJWX05BTUUgIjogcGxlYXNlIHVzZSBcInByb2JlX21hc2s9MHgzZlwiIG1vZHVsZSAiCisJCQkgInBhcmFtZXRlciBmb3IgcHJvYmluZyBhbGwgbGVnYWN5IElTQSBJREUgcG9ydHNcbiIpOworCiAJZm9yIChpID0gMDsgaSA8IE1BWF9IV0lGUzsgaSsrKSB7CiAJCWlkZV9od2lmX3QgKmh3aWY7CiAJCXVuc2lnbmVkIGxvbmcgaW9fYWRkciA9IGlkZV9kZWZhdWx0X2lvX2Jhc2UoaSk7CkBAIC05Niw3ICsxMDMsNyBAQAogCiAJCWlkeFtpXSA9IDB4ZmY7CiAKLQkJaWYgKGlvX2FkZHIpIHsKKwkJaWYgKChwcm9iZV9tYXNrICYgKDEgPDwgaSkpICYmIGlvX2FkZHIpIHsKIAkJCWlmICghcmVxdWVzdF9yZWdpb24oaW9fYWRkciwgOCwgRFJWX05BTUUpKSB7CiAJCQkJcHJpbnRrKEtFUk5fRVJSICIlczogSS9PIHJlc291cmNlIDB4JWxYLTB4JWxYICIKIAkJCQkJCSJub3QgZnJlZS5cbiIsCkBAIC0xMjUsNiArMTMyLDcgQEAKIAkJCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOwogCQkJaWRlX3N0ZF9pbml0X3BvcnRzKCZodywgaW9fYWRkciwgaW9fYWRkciArIDB4MjA2KTsKIAkJCWh3LmlycSA9IGlkZV9kZWZhdWx0X2lycShpb19hZGRyKTsKKwkJCWh3LmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIAkJCWlkZV9pbml0X3BvcnRfaHcoaHdpZiwgJmh3KTsKIAogCQkJaWR4W2ldID0gaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2lkZS1wbnAuYyBiL2RyaXZlcnMvaWRlL2lkZS1wbnAuYwppbmRleCA2YTg5NTNmLi5hZGJkMDE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtcG5wLmMKKysrIGIvZHJpdmVycy9pZGUvaWRlLXBucC5jCkBAIC01NSw2ICs1NSw3IEBACiAJbWVtc2V0KCZodywgMCwgc2l6ZW9mKGh3KSk7CiAJaWRlX3N0ZF9pbml0X3BvcnRzKCZodywgYmFzZSwgY3RsKTsKIAlody5pcnEgPSBwbnBfaXJxKGRldiwgMCk7CisJaHcuY2hpcHNldCA9IGlkZV9nZW5lcmljOwogCiAJaHdpZiA9IGlkZV9maW5kX3BvcnQoKTsKIAlpZiAoaHdpZikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLXByb2JlLmMgYi9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYwppbmRleCA2NTVlYzdlLi4yNmU2OGI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYwpAQCAtNjQ2LDggKzY0Niw2IEBACiAJCWdvdG8gb3V0OwogCX0KIAotCWdldF9kZXZpY2UoJmh3aWYtPmdlbmRldik7Ci0KIAlod2lmLT5wb3J0ZGV2ID0gZGV2aWNlX2NyZWF0ZV9kcnZkYXRhKGlkZV9wb3J0X2NsYXNzLCAmaHdpZi0+Z2VuZGV2LAogCQkJCQkgICAgICBNS0RFVigwLCAwKSwgaHdpZiwgaHdpZi0+bmFtZSk7CiAJaWYgKElTX0VSUihod2lmLT5wb3J0ZGV2KSkgewpAQCAtMTIyMCwxNiArMTIxOCwxMiBAQAogCWNvbXBsZXRlKCZkcml2ZS0+Z2VuZGV2X3JlbF9jb21wKTsKIH0KIAotI2lmbmRlZiBpZGVfZGVmYXVsdF9pcnEKLSNkZWZpbmUgaWRlX2RlZmF1bHRfaXJxKGlycSkgMAotI2VuZGlmCi0KIHN0YXRpYyBpbnQgaHdpZl9pbml0KGlkZV9od2lmX3QgKmh3aWYpCiB7CiAJaW50IG9sZF9pcnE7CiAKIAlpZiAoIWh3aWYtPmlycSkgewotCQlod2lmLT5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKKwkJaHdpZi0+aXJxID0gX19pZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKIAkJaWYgKCFod2lmLT5pcnEpIHsKIAkJCXByaW50aygiJXM6IERJU0FCTEVELCBOTyBJUlFcbiIsIGh3aWYtPm5hbWUpOwogCQkJcmV0dXJuIDA7CkBAIC0xMjU5LDcgKzEyNTMsNyBAQAogCSAqCUl0IGZhaWxlZCB0byBpbml0aWFsaXNlLiBGaW5kIHRoZSBkZWZhdWx0IElSUSBmb3IgCiAJICoJdGhpcyBwb3J0IGFuZCB0cnkgdGhhdC4KIAkgKi8KLQlod2lmLT5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKKwlod2lmLT5pcnEgPSBfX2lkZV9kZWZhdWx0X2lycShod2lmLT5pb19wb3J0cy5kYXRhX2FkZHIpOwogCWlmICghaHdpZi0+aXJxKSB7CiAJCXByaW50aygiJXM6IERpc2FibGVkIHVuYWJsZSB0byBnZXQgSVJRICVkLlxuIiwKIAkJCWh3aWYtPm5hbWUsIG9sZF9pcnEpOwpAQCAtMTMzMyw4ICsxMzI3LDcgQEAKIHN0YXRpYyB2b2lkIGlkZV9pbml0X3BvcnQoaWRlX2h3aWZfdCAqaHdpZiwgdW5zaWduZWQgaW50IHBvcnQsCiAJCQkgIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9pbmZvICpkKQogewotCWlmIChkLT5jaGlwc2V0ICE9IGlkZV9ldHJheDEwMCkKLQkJaHdpZi0+Y2hhbm5lbCA9IHBvcnQ7CisJaHdpZi0+Y2hhbm5lbCA9IHBvcnQ7CiAKIAlpZiAoZC0+Y2hpcHNldCkKIAkJaHdpZi0+Y2hpcHNldCA9IGQtPmNoaXBzZXQ7CkBAIC0xNTE5LDcgKzE1MTIsNyBAQAogCQkJY29udGludWU7CiAJCX0KIAotCQlpZiAoZC0+Y2hpcHNldCAhPSBpZGVfZXRyYXgxMDAgJiYgKGkgJiAxKSAmJiBtYXRlKSB7CisJCWlmICgoaSAmIDEpICYmIG1hdGUpIHsKIAkJCWh3aWYtPm1hdGUgPSBtYXRlOwogCQkJbWF0ZS0+bWF0ZSA9IGh3aWY7CiAJCX0KQEAgLTE2NjUsNiArMTY1OCw3IEBACiAKIAlpZGVfc3RkX2luaXRfcG9ydHMoaHcsIGJhc2UsIGN0bCk7CiAJaHctPmlycSA9IGlycTsKKwlody0+Y2hpcHNldCA9IGQtPmNoaXBzZXQ7CiAKIAlod2lmID0gaWRlX2ZpbmRfcG9ydF9zbG90KGQpOwogCWlmIChod2lmKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtcHJvYy5jIGIvZHJpdmVycy9pZGUvaWRlLXByb2MuYwppbmRleCA4ZDZhZDgxLi44YWY4OGJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtcHJvYy5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1wcm9jLmMKQEAgLTYzLDcgKzYzLDYgQEAKIAljYXNlIGlkZV9wbWFjOgkJbmFtZSA9ICJtYWMtaW8iOwlicmVhazsKIAljYXNlIGlkZV9hdTF4eHg6CW5hbWUgPSAiYXUxeHh4IjsJYnJlYWs7CiAJY2FzZSBpZGVfcGFsbTM3MTA6ICAgICAgbmFtZSA9ICJwYWxtMzcxMCI7ICAgICAgYnJlYWs7Ci0JY2FzZSBpZGVfZXRyYXgxMDA6CW5hbWUgPSAiZXRyYXgxMDAiOwlicmVhazsKIAljYXNlIGlkZV9hY29ybjoJCW5hbWUgPSAiYWNvcm4iOwkJYnJlYWs7CiAJZGVmYXVsdDoJCW5hbWUgPSAiKHVua25vd24pIjsJYnJlYWs7CiAJfQpAQCAtNzcsNyArNzYsNyBAQAogCWlkZV9od2lmX3QJKmh3aWYgPSAoaWRlX2h3aWZfdCAqKSBkYXRhOwogCWludAkJbGVuOwogCi0JaWYgKGh3aWYgJiYgaHdpZi0+bWF0ZSAmJiBod2lmLT5tYXRlLT5wcmVzZW50KQorCWlmIChod2lmICYmIGh3aWYtPm1hdGUpCiAJCWxlbiA9IHNwcmludGYocGFnZSwgIiVzXG4iLCBod2lmLT5tYXRlLT5uYW1lKTsKIAllbHNlCiAJCWxlbiA9IHNwcmludGYocGFnZSwgIihub25lKVxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jIGIvZHJpdmVycy9pZGUvaWRlLXRhcGUuYwppbmRleCAxZTFmMjYzLi5hM2QyMjgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtdGFwZS5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS10YXBlLmMKQEAgLTI0MjEsOSArMjQyMSwxMiBAQAogCWlmIChpID49IE1BWF9IV0lGUyAqIE1BWF9EUklWRVMpCiAJCXJldHVybiAtRU5YSU87CiAKKwlsb2NrX2tlcm5lbCgpOwogCXRhcGUgPSBpZGVfdGFwZV9jaHJkZXZfZ2V0KGkpOwotCWlmICghdGFwZSkKKwlpZiAoIXRhcGUpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOworCX0KIAogCWRlYnVnX2xvZyhEQkdfQ0hSREVWLCAiRW50ZXIgJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtMjQ4MiwxMCArMjQ4NSwxMiBAQAogCQkJfQogCQl9CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogb3V0X3B1dF90YXBlOgogCWlkZV90YXBlX3B1dCh0YXBlKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldHZhbDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvaWRlLXRhc2tmaWxlLmMgYi9kcml2ZXJzL2lkZS9pZGUtdGFza2ZpbGUuYwppbmRleCAwYzkwOGNhLi5hYjU0NWZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9pZGUtdGFza2ZpbGUuYworKysgYi9kcml2ZXJzL2lkZS9pZGUtdGFza2ZpbGUuYwpAQCAtMjI1LDEwICsyMjUsMTAgQEAKIAl1OCBzdGF0OwogCiAJLyoKLQkgKiBMYXN0IHNlY3RvciB3YXMgdHJhbnNmZXJlZCwgd2FpdCB1bnRpbCBkcml2ZSBpcyByZWFkeS4KLQkgKiBUaGlzIGNhbiB0YWtlIHVwIHRvIDEwIHVzZWMsIGJ1dCB3ZSB3aWxsIHdhaXQgbWF4IDEgbXMuCisJICogTGFzdCBzZWN0b3Igd2FzIHRyYW5zZmVyZWQsIHdhaXQgdW50aWwgZGV2aWNlIGlzIHJlYWR5LiAgVGhpcyBjYW4KKwkgKiB0YWtlIHVwIHRvIDYgbXMgb24gc29tZSBBVEFQSSBkZXZpY2VzLCBzbyB3ZSB3aWxsIHdhaXQgbWF4IDEwIG1zLgogCSAqLwotCWZvciAocmV0cmllcyA9IDA7IHJldHJpZXMgPCAxMDA7IHJldHJpZXMrKykgeworCWZvciAocmV0cmllcyA9IDA7IHJldHJpZXMgPCAxMDAwOyByZXRyaWVzKyspIHsKIAkJc3RhdCA9IGlkZV9yZWFkX3N0YXR1cyhkcml2ZSk7CiAKIAkJaWYgKHN0YXQgJiBCVVNZX1NUQVQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9pZGUuYyBiL2RyaXZlcnMvaWRlL2lkZS5jCmluZGV4IGM3NThkY2IuLjMwMDQzMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2lkZS5jCisrKyBiL2RyaXZlcnMvaWRlL2lkZS5jCkBAIC0zMTUsMTMgKzMxNSwxNCBAQAogCiAJQlVHX09OKGluX2ludGVycnVwdCgpKTsKIAlCVUdfT04oaXJxc19kaXNhYmxlZCgpKTsKLQltdXRleF9sb2NrKCZpZGVfY2ZnX210eCk7Ci0Jc3Bpbl9sb2NrX2lycSgmaWRlX2xvY2spOwotCWlmICghaHdpZi0+cHJlc2VudCkKLQkJZ290byBhYm9ydDsKLQlfX2lkZV9wb3J0X3VucmVnaXN0ZXJfZGV2aWNlcyhod2lmKTsKLQlod2lmLT5wcmVzZW50ID0gMDsKIAorCW11dGV4X2xvY2soJmlkZV9jZmdfbXR4KTsKKworCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKKwlpZiAoaHdpZi0+cHJlc2VudCkgeworCQlfX2lkZV9wb3J0X3VucmVnaXN0ZXJfZGV2aWNlcyhod2lmKTsKKwkJaHdpZi0+cHJlc2VudCA9IDA7CisJfQogCXNwaW5fdW5sb2NrX2lycSgmaWRlX2xvY2spOwogCiAJaWRlX3Byb2NfdW5yZWdpc3Rlcl9wb3J0KGh3aWYpOwpAQCAtMzUxLDE2ICszNTIsMTUgQEAKIAlibGtfdW5yZWdpc3Rlcl9yZWdpb24oTUtERVYoaHdpZi0+bWFqb3IsIDApLCBNQVhfRFJJVkVTPDxQQVJUTl9CSVRTKTsKIAlrZnJlZShod2lmLT5zZ190YWJsZSk7CiAJdW5yZWdpc3Rlcl9ibGtkZXYoaHdpZi0+bWFqb3IsIGh3aWYtPm5hbWUpOwotCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKIAogCWlmIChod2lmLT5kbWFfYmFzZSkKIAkJaWRlX3JlbGVhc2VfZG1hX2VuZ2luZShod2lmKTsKIAorCXNwaW5fbG9ja19pcnEoJmlkZV9sb2NrKTsKIAkvKiByZXN0b3JlIGh3aWYgZGF0YSB0byBwcmlzdGluZSBzdGF0dXMgKi8KIAlpZGVfaW5pdF9wb3J0X2RhdGEoaHdpZiwgaHdpZi0+aW5kZXgpOwotCi1hYm9ydDoKIAlzcGluX3VubG9ja19pcnEoJmlkZV9sb2NrKTsKKwogCW11dGV4X3VubG9jaygmaWRlX2NmZ19tdHgpOwogfQogCkBAIC0xMDk0LDEzICsxMDk0LDYgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwoaWRlX2J1c190eXBlKTsKIAotc3RhdGljIHZvaWQgaWRlX3BvcnRfY2xhc3NfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpwb3J0ZGV2KQotewotCWlkZV9od2lmX3QgKmh3aWYgPSBkZXZfZ2V0X2RydmRhdGEocG9ydGRldik7Ci0KLQlwdXRfZGV2aWNlKCZod2lmLT5nZW5kZXYpOwotfQotCiBpbnQgaWRlX3ZsYl9jbGs7CiBFWFBPUlRfU1lNQk9MX0dQTChpZGVfdmxiX2Nsayk7CiAKQEAgLTEzMDUsNyArMTI5OCw2IEBACiAJCXJldCA9IFBUUl9FUlIoaWRlX3BvcnRfY2xhc3MpOwogCQlnb3RvIG91dF9wb3J0X2NsYXNzOwogCX0KLQlpZGVfcG9ydF9jbGFzcy0+ZGV2X3JlbGVhc2UgPSBpZGVfcG9ydF9jbGFzc19yZWxlYXNlOwogCiAJaW5pdF9pZGVfZGF0YSgpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvYnVkZGhhLmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvYnVkZGhhLmMKaW5kZXggNWM3MzBlNC4uOWExZDI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L2J1ZGRoYS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9idWRkaGEuYwpAQCAtMTM4LDYgKzEzOCw4IEBACiAKIAlody0+aXJxID0gSVJRX0FNSUdBX1BPUlRTOwogCWh3LT5hY2tfaW50ciA9IGFja19pbnRyOworCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIH0KIAogICAgIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9sZWdhY3kvZmFsY29uaWRlLmMgYi9kcml2ZXJzL2lkZS9sZWdhY3kvZmFsY29uaWRlLmMKaW5kZXggOWU0NDlhMC4uYWYxMTAyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L2ZhbGNvbmlkZS5jCisrKyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9mYWxjb25pZGUuYwpAQCAtODEsNiArODEsOCBAQAogCiAJaHctPmlycSA9IElSUV9NRlBfSURFOwogCWh3LT5hY2tfaW50ciA9IE5VTEw7CisKKwlody0+Y2hpcHNldCA9IGlkZV9nZW5lcmljOwogfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9nYXlsZS5jIGIvZHJpdmVycy9pZGUvbGVnYWN5L2dheWxlLmMKaW5kZXggYTljMjU5My4uZmVkN2Q4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvbGVnYWN5L2dheWxlLmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L2dheWxlLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pZGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvem9ycm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9hbWlnYWh3Lmg+CkBAIC02Miw3ICs2MywxMCBAQAogCQkJCQkgICAgICAgR0FZTEVfTlVNX0hXSUZTLTEpCiAjZGVmaW5lIEdBWUxFX0hBU19DT05UUk9MX1JFRwkoIWlkZV9kb3VibGVyKQogI2RlZmluZSBHQVlMRV9JREVSRUdfU0laRQkoaWRlX2RvdWJsZXIgPyAweDEwMDAgOiAweDIwMDApCisKIGludCBpZGVfZG91YmxlciA9IDA7CS8qIHN1cHBvcnQgSURFIGRvdWJsZXJzPyAqLworRVhQT1JUX1NZTUJPTF9HUEwoaWRlX2RvdWJsZXIpOworCiBtb2R1bGVfcGFyYW1fbmFtZWQoZG91YmxlciwgaWRlX2RvdWJsZXIsIGJvb2wsIDApOwogTU9EVUxFX1BBUk1fREVTQyhkb3VibGVyLCAiZW5hYmxlIHN1cHBvcnQgZm9yIElERSBkb3VibGVycyIpOwogI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lERURPVUJMRVIgKi8KQEAgLTExMiw2ICsxMTYsOCBAQAogCiAJaHctPmlycSA9IElSUV9BTUlHQV9QT1JUUzsKIAlody0+YWNrX2ludHIgPSBhY2tfaW50cjsKKworCWh3LT5jaGlwc2V0ID0gaWRlX2dlbmVyaWM7CiB9CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvbGVnYWN5L2lkZS1jcy5jIGIvZHJpdmVycy9pZGUvbGVnYWN5L2lkZS1jcy5jCmluZGV4IGFhMmVhM2QuLjhkYmY0ZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9pZGUtY3MuYworKysgYi9kcml2ZXJzL2lkZS9sZWdhY3kvaWRlLWNzLmMKQEAgLTYzLDExICs2MywxMSBAQAogCiAjZGVmaW5lIElOVF9NT0RVTEVfUEFSTShuLCB2KSBzdGF0aWMgaW50IG4gPSB2OyBtb2R1bGVfcGFyYW0obiwgaW50LCAwKQogCi0jaWZkZWYgUENNQ0lBX0RFQlVHCi1JTlRfTU9EVUxFX1BBUk0ocGNfZGVidWcsIFBDTUNJQV9ERUJVRyk7CisjaWZkZWYgQ09ORklHX1BDTUNJQV9ERUJVRworSU5UX01PRFVMRV9QQVJNKHBjX2RlYnVnLCAwKTsKICNkZWZpbmUgREVCVUcobiwgYXJncy4uLikgaWYgKHBjX2RlYnVnPihuKSkgcHJpbnRrKEtFUk5fREVCVUcgYXJncykKLXN0YXRpYyBjaGFyICp2ZXJzaW9uID0KLSJpZGUtY3MuYyAxLjMgMjAwMi8xMC8yNiAwNTo0NTozMSAoRGF2aWQgSGluZHMpIjsKKy8qc3RhdGljIGNoYXIgKnZlcnNpb24gPQorImlkZS1jcy5jIDEuMyAyMDAyLzEwLzI2IDA1OjQ1OjMxIChEYXZpZCBIaW5kcykiOyovCiAjZWxzZQogI2RlZmluZSBERUJVRyhuLCBhcmdzLi4uKQogI2VuZGlmCkBAIC0xMzUsMTMgKzEzNSwxNyBAQAogewogICAgIGlkZV9pbmZvX3QgKmluZm8gPSBsaW5rLT5wcml2OwogICAgIGlkZV9od2lmX3QgKmh3aWYgPSBpbmZvLT5od2lmOworICAgIHVuc2lnbmVkIGxvbmcgZGF0YV9hZGRyLCBjdGxfYWRkcjsKIAogICAgIERFQlVHKDAsICJpZGVfZGV0YWNoKDB4JXApXG4iLCBsaW5rKTsKIAorICAgIGRhdGFfYWRkciA9IGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkcjsKKyAgICBjdGxfYWRkciAgPSBod2lmLT5pb19wb3J0cy5jdGxfYWRkcjsKKwogICAgIGlkZV9yZWxlYXNlKGxpbmspOwogCi0gICAgcmVsZWFzZV9yZWdpb24oaHdpZi0+aW9fcG9ydHMuY3RsX2FkZHIsIDEpOwotICAgIHJlbGVhc2VfcmVnaW9uKGh3aWYtPmlvX3BvcnRzLmRhdGFfYWRkciwgOCk7CisgICAgcmVsZWFzZV9yZWdpb24oY3RsX2FkZHIsIDEpOworICAgIHJlbGVhc2VfcmVnaW9uKGRhdGFfYWRkciwgOCk7CiAKICAgICBrZnJlZShpbmZvKTsKIH0gLyogaWRlX2RldGFjaCAqLwpAQCAtMTk0LDYgKzE5OCwxNiBAQAogICAgIGlmIChod2lmLT5wcmVzZW50KQogCXJldHVybiBod2lmOwogCisgICAgLyogcmV0cnkgcmVnaXN0cmF0aW9uIGluIGNhc2UgZGV2aWNlIGlzIHN0aWxsIHNwaW5uaW5nIHVwICovCisgICAgZm9yIChpID0gMDsgaSA8IDEwOyBpKyspIHsKKwltc2xlZXAoMTAwKTsKKwlpZGVfcG9ydF9zY2FuKGh3aWYpOworCWlmIChod2lmLT5wcmVzZW50KQorCSAgICByZXR1cm4gaHdpZjsKKyAgICB9CisKKyAgICByZXR1cm4gaHdpZjsKKwogb3V0X3JlbGVhc2U6CiAgICAgcmVsZWFzZV9yZWdpb24oY3RsLCAxKTsKICAgICByZWxlYXNlX3JlZ2lvbihpbywgOCk7CkBAIC0yMjIsNyArMjM2LDcgQEAKIAljaXN0cGxfY2Z0YWJsZV9lbnRyeV90IGRmbHQ7CiAgICAgfSAqc3RrID0gTlVMTDsKICAgICBjaXN0cGxfY2Z0YWJsZV9lbnRyeV90ICpjZmc7Ci0gICAgaW50IGksIHBhc3MsIGxhc3RfcmV0ID0gMCwgbGFzdF9mbiA9IDAsIGlzX2ttZSA9IDA7CisgICAgaW50IHBhc3MsIGxhc3RfcmV0ID0gMCwgbGFzdF9mbiA9IDAsIGlzX2ttZSA9IDA7CiAgICAgdW5zaWduZWQgbG9uZyBpb19iYXNlLCBjdGxfYmFzZTsKICAgICBpZGVfaHdpZl90ICpod2lmOwogCkBAIC0zMTksMzAgKzMzMywxNSBAQAogICAgIGlmIChpc19rbWUpCiAJb3V0YigweDgxLCBjdGxfYmFzZSsxKTsKIAotICAgIC8qIHJldHJ5IHJlZ2lzdHJhdGlvbiBpbiBjYXNlIGRldmljZSBpcyBzdGlsbCBzcGlubmluZyB1cCAqLwotICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0JaHdpZiA9IGlkZWNzX3JlZ2lzdGVyKGlvX2Jhc2UsIGN0bF9iYXNlLCBsaW5rLT5pcnEuQXNzaWduZWRJUlEsIGxpbmspOwotCWlmIChod2lmKQotCSAgICBicmVhazsKLQlpZiAobGluay0+aW8uTnVtUG9ydHMxID09IDB4MjApIHsKKyAgICAgaHdpZiA9IGlkZWNzX3JlZ2lzdGVyKGlvX2Jhc2UsIGN0bF9iYXNlLCBsaW5rLT5pcnEuQXNzaWduZWRJUlEsIGxpbmspOworICAgICBpZiAoaHdpZiA9PSBOVUxMICYmIGxpbmstPmlvLk51bVBvcnRzMSA9PSAweDIwKSB7CiAJICAgIG91dGIoMHgwMiwgY3RsX2Jhc2UgKyAweDEwKTsKIAkgICAgaHdpZiA9IGlkZWNzX3JlZ2lzdGVyKGlvX2Jhc2UgKyAweDEwLCBjdGxfYmFzZSArIDB4MTAsCiAJCQkJICBsaW5rLT5pcnEuQXNzaWduZWRJUlEsIGxpbmspOwotCSAgICBpZiAoaHdpZikgewotCQlpb19iYXNlICs9IDB4MTA7Ci0JCWN0bF9iYXNlICs9IDB4MTA7Ci0JCWJyZWFrOwotCSAgICB9Ci0JfQotCW1zbGVlcCgxMDApOwogICAgIH0KIAotICAgIGlmIChod2lmID09IE5VTEwpIHsKLQlwcmludGsoS0VSTl9OT1RJQ0UgImlkZS1jczogaWRlX3JlZ2lzdGVyKCkgYXQgMHglM2x4ICYgMHglM2x4IgotCSAgICAgICAiLCBpcnEgJXUgZmFpbGVkXG4iLCBpb19iYXNlLCBjdGxfYmFzZSwKLQkgICAgICAgbGluay0+aXJxLkFzc2lnbmVkSVJRKTsKKyAgICBpZiAoaHdpZiA9PSBOVUxMKQogCWdvdG8gZmFpbGVkOwotICAgIH0KIAogICAgIGluZm8tPm5kZXYgPSAxOwogICAgIHNwcmludGYoaW5mby0+bm9kZS5kZXZfbmFtZSwgImhkJWMiLCAnYScgKyBod2lmLT5pbmRleCAqIDIpOwpAQCAtMzc2LDcgKzM3NSw3IEBACiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi12b2lkIGlkZV9yZWxlYXNlKHN0cnVjdCBwY21jaWFfZGV2aWNlICpsaW5rKQorc3RhdGljIHZvaWQgaWRlX3JlbGVhc2Uoc3RydWN0IHBjbWNpYV9kZXZpY2UgKmxpbmspCiB7CiAgICAgaWRlX2luZm9fdCAqaW5mbyA9IGxpbmstPnByaXY7CiAgICAgaWRlX2h3aWZfdCAqaHdpZiA9IGluZm8tPmh3aWY7CkBAIC00MTEsNiArNDEwLDcgQEAKIAlQQ01DSUFfREVWSUNFX01BTkZfQ0FSRCgweDAwMWMsIDB4MDAwMSksCS8qIE1pdHN1YmlzaGkgQ0ZBICovCiAJUENNQ0lBX0RFVklDRV9NQU5GX0NBUkQoMHgwMDMyLCAweDA3MDQpLAogCVBDTUNJQV9ERVZJQ0VfTUFORl9DQVJEKDB4MDA0NSwgMHgwNDAxKSwJLyogU2FuRGlzayBDRkEgKi8KKwlQQ01DSUFfREVWSUNFX01BTkZfQ0FSRCgweDAwNGYsIDB4MDAwMCksCS8qIEtpbmdzdG9uICovCiAJUENNQ0lBX0RFVklDRV9NQU5GX0NBUkQoMHgwMDk4LCAweDAwMDApLAkvKiBUb3NoaWJhICovCiAJUENNQ0lBX0RFVklDRV9NQU5GX0NBUkQoMHgwMGE0LCAweDAwMmQpLAogCVBDTUNJQV9ERVZJQ0VfTUFORl9DQVJEKDB4MDBjZSwgMHgwMDAwKSwJLyogU2Ftc3VuZyAqLwpAQCAtNDQwLDYgKzQ0MCw3IEBACiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIklPIERBVEEiLCAiUENJREUiLCAweDU0N2U2NmRjLCAweDVjNWFiMTQ5KSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiSU8gREFUQSIsICJQQ0lERUlJIiwgMHg1NDdlNjZkYywgMHhiMzY2MjY3NCksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIkxPT0tNRUVUIiwgIkNCSURFMiAgICAgICIsIDB4ZTM3YmUyYjUsIDB4ODY3MTA0M2IpLAorCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJNLVN5c3RlbXMiLCAiQ0YzMDAiLCAweDdlZDJhZDg3LCAweDdlOWU3OGVlKSwKIAlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiTS1TeXN0ZW1zIiwgIkNGNTAwIiwgMHg3ZWQyYWQ4NywgMHg3YTEzMDQ1YyksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMigiTmluamFBVEEtIiwgMHhlYmUwYmQ3OSksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlBDTUNJQSIsICJDRC1ST00iLCAweDI4MWYxYzVkLCAweDY2NTM2NTkxKSwKQEAgLTQ1MCw2ICs0NTEsNyBAQAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJTTUkgVkVORE9SIiwgIlNNSSBQUk9EVUNUIiwgMHgzMDg5NmM5MiwgMHg3MDNjYzVmNiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRPU0hJQkEiLCAiTUsyMDAxTVBMIiwgMHhiNDU4NWExYSwgMHgzNDg5ZTAwMyksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMSgiVFJBTlNDRU5EICAgIDUxMk0gICAiLCAweGQwOTA5NDQzKSwKKwlQQ01DSUFfREVWSUNFX1BST0RfSUQxMigiVFJBTlNDRU5EIiwgIlRTMUdDRjQ1IiwgMHg3MDliMWJmMSwgMHhmNjhiNmYzMiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzFHQ0Y4MCIsIDB4NzA5YjFiZjEsIDB4MmE1NGQ0YjEpLAogCVBDTUNJQV9ERVZJQ0VfUFJPRF9JRDEyKCJUUkFOU0NFTkQiLCAiVFMyR0NGMTIwIiwgMHg3MDliMWJmMSwgMHg5NjlhYTRmMiksCiAJUENNQ0lBX0RFVklDRV9QUk9EX0lEMTIoIlRSQU5TQ0VORCIsICJUUzRHQ0YxMjAiLCAweDcwOWIxYmYxLCAweGY1NGE5MWM4KSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9tYWNpZGUuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9tYWNpZGUuYwppbmRleCBjYWEyNjMyLi4yZTg0MjkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9sZWdhY3kvbWFjaWRlLmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L21hY2lkZS5jCkBAIC03OCw2ICs3OCw4IEBACiAKIAlody0+aXJxID0gaXJxOwogCWh3LT5hY2tfaW50ciA9IGFja19pbnRyOworCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKm1hY19pZGVfbmFtZVtdID0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL2xlZ2FjeS9xNDBpZGUuYyBiL2RyaXZlcnMvaWRlL2xlZ2FjeS9xNDBpZGUuYwppbmRleCA2ZjUzNWQwLi44ZmY2ZTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9sZWdhY3kvcTQwaWRlLmMKKysrIGIvZHJpdmVycy9pZGUvbGVnYWN5L3E0MGlkZS5jCkBAIC03MCw2ICs3MCw4IEBACiAKIAlody0+aXJxID0gaXJxOwogCWh3LT5hY2tfaW50ciA9IGFja19pbnRyOworCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKIH0KIAogc3RhdGljIHZvaWQgcTQwaWRlX2lucHV0X2RhdGEoaWRlX2RyaXZlX3QgKmRyaXZlLCBzdHJ1Y3QgcmVxdWVzdCAqcnEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMgYi9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMKaW5kZXggYWFmMzgxMC4uYjM4YTE5ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9jbWQ2NDAuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvY21kNjQwLmMKQEAgLTc0Nyw5ICs3NDcsMTEgQEAKIAogCWlkZV9zdGRfaW5pdF9wb3J0cygmaHdbMF0sIDB4MWYwLCAweDNmNik7CiAJaHdbMF0uaXJxID0gMTQ7CisJaHdbMF0uY2hpcHNldCA9IGlkZV9jbWQ2NDA7CiAKIAlpZGVfc3RkX2luaXRfcG9ydHMoJmh3WzFdLCAweDE3MCwgMHgzNzYpOwogCWh3WzFdLmlycSA9IDE1OworCWh3WzFdLmNoaXBzZXQgPSBpZGVfY21kNjQwOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiY21kNjQwOiBidWdneSBjbWQ2NDAlYyBpbnRlcmZhY2Ugb24gJXMsIGNvbmZpZz0weCUwMngiCiAJCQkgIlxuIiwgJ2EnICsgY21kNjQwX2NoaXBfdmVyc2lvbiAtIDEsIGJ1c190eXBlLCBjZnIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2RlbGtpbl9jYi5jIGIvZHJpdmVycy9pZGUvcGNpL2RlbGtpbl9jYi5jCmluZGV4IGI5ZTQ1NzkuLmFmMGYzMDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWRlL3BjaS9kZWxraW5fY2IuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvZGVsa2luX2NiLmMKQEAgLTQ3LDEzICs0NywxOCBAQAogCS5xdWlya3Byb2MJCT0gaWRlX3VuZGVjb2RlZF9zbGF2ZSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaWRlX3BvcnRfaW5mbyBkZWxraW5fY2JfcG9ydF9pbmZvID0geworCS5wb3J0X29wcwkJPSAmZGVsa2luX2NiX3BvcnRfb3BzLAorCS5ob3N0X2ZsYWdzCQk9IElERV9IRkxBR19JT18zMkJJVCB8IElERV9IRkxBR19VTk1BU0tfSVJRUyB8CisJCQkJICBJREVfSEZMQUdfTk9fRE1BLAorfTsKKwogc3RhdGljIGludCBfX2RldmluaXQKIGRlbGtpbl9jYl9wcm9iZSAoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogewogCXVuc2lnbmVkIGxvbmcgYmFzZTsKIAlod19yZWdzX3QgaHc7CiAJaWRlX2h3aWZfdCAqaHdpZiA9IE5VTEw7Ci0JaWRlX2RyaXZlX3QgKmRyaXZlOwogCWludCBpLCByYzsKIAl1OCBpZHhbNF0gPSB7IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4ZmYgfTsKIApAQCAtNzksNiArODQsNyBAQAogCW1lbXNldCgmaHcsIDAsIHNpemVvZihodykpOwogCWlkZV9zdGRfaW5pdF9wb3J0cygmaHcsIGJhc2UgKyAweDEwLCBiYXNlICsgMHgxZSk7CiAJaHcuaXJxID0gZGV2LT5pcnE7CisJaHcuZGV2ID0gJmRldi0+ZGV2OwogCWh3LmNoaXBzZXQgPSBpZGVfcGNpOwkJLyogdGhpcyBlbmFibGVzIElSUSBzaGFyaW5nICovCiAKIAlod2lmID0gaWRlX2ZpbmRfcG9ydCgpOwpAQCAtODksMjYgKzk1LDE2IEBACiAKIAlpZGVfaW5pdF9wb3J0X2RhdGEoaHdpZiwgaSk7CiAJaWRlX2luaXRfcG9ydF9odyhod2lmLCAmaHcpOwotCWh3aWYtPnBvcnRfb3BzID0gJmRlbGtpbl9jYl9wb3J0X29wczsKIAogCWlkeFswXSA9IGk7CiAKLQlpZGVfZGV2aWNlX2FkZChpZHgsIE5VTEwpOwotCi0JaWYgKCFod2lmLT5wcmVzZW50KQotCQlnb3RvIG91dF9kaXNhYmxlOworCWlkZV9kZXZpY2VfYWRkKGlkeCwgJmRlbGtpbl9jYl9wb3J0X2luZm8pOwogCiAJcGNpX3NldF9kcnZkYXRhKGRldiwgaHdpZik7Ci0JaHdpZi0+ZGV2ID0gJmRldi0+ZGV2OwotCWRyaXZlID0gJmh3aWYtPmRyaXZlc1swXTsKLQlpZiAoZHJpdmUtPnByZXNlbnQpIHsKLQkJZHJpdmUtPmlvXzMyYml0ID0gMTsKLQkJZHJpdmUtPnVubWFzayAgID0gMTsKLQl9CisKIAlyZXR1cm4gMDsKIAogb3V0X2Rpc2FibGU6Ci0JcHJpbnRrKEtFUk5fRVJSICJkZWxraW5fY2I6IG5vIElERSBkZXZpY2VzIGZvdW5kXG4iKTsKIAlwY2lfcmVsZWFzZV9yZWdpb25zKGRldik7CiAJcGNpX2Rpc2FibGVfZGV2aWNlKGRldik7CiAJcmV0dXJuIC1FTk9ERVY7CkBAIC0xMzksMTQgKzEzNSwxMiBAQAogCS5yZW1vdmUJCT0gZGVsa2luX2NiX3JlbW92ZSwKIH07CiAKLXN0YXRpYyBpbnQKLWRlbGtpbl9jYl9pbml0ICh2b2lkKQorc3RhdGljIGludCBfX2luaXQgZGVsa2luX2NiX2luaXQodm9pZCkKIHsKIAlyZXR1cm4gcGNpX3JlZ2lzdGVyX2RyaXZlcigmZHJpdmVyKTsKIH0KIAotc3RhdGljIHZvaWQKLWRlbGtpbl9jYl9leGl0ICh2b2lkKQorc3RhdGljIHZvaWQgX19leGl0IGRlbGtpbl9jYl9leGl0KHZvaWQpCiB7CiAJcGNpX3VucmVnaXN0ZXJfZHJpdmVyKCZkcml2ZXIpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL2l0ODIxMy5jIGIvZHJpdmVycy9pZGUvcGNpL2l0ODIxMy5jCmluZGV4IDkwNTNjODc3Li4yYjcxYmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wY2kvaXQ4MjEzLmMKKysrIGIvZHJpdmVycy9pZGUvcGNpL2l0ODIxMy5jCkBAIC0xODQsOCArMTg0LDcgQEAKIAogc3RhdGljIGludCBfX2RldmluaXQgaXQ4MjEzX2luaXRfb25lKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkKIHsKLQlpZGVfc2V0dXBfcGNpX2RldmljZShkZXYsICZpdDgyMTNfY2hpcHNldHNbaWQtPmRyaXZlcl9kYXRhXSk7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGlkZV9zZXR1cF9wY2lfZGV2aWNlKGRldiwgJml0ODIxM19jaGlwc2V0c1tpZC0+ZHJpdmVyX2RhdGFdKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGl0ODIxM19wY2lfdGJsW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lkZS9wY2kvbnM4NzQxNS5jIGIvZHJpdmVycy9pZGUvcGNpL25zODc0MTUuYwppbmRleCBmZWM0OTU1Li5hN2E0MWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wY2kvbnM4NzQxNS5jCisrKyBiL2RyaXZlcnMvaWRlL3BjaS9uczg3NDE1LmMKQEAgLTIyNSwxMCArMjI1LDYgQEAKIAlyZXR1cm4gMTsKIH0KIAotI2lmbmRlZiBpZGVfZGVmYXVsdF9pcnEKLSNkZWZpbmUgaWRlX2RlZmF1bHRfaXJxKGlycSkgMAotI2VuZGlmCi0KIHN0YXRpYyB2b2lkIF9fZGV2aW5pdCBpbml0X2h3aWZfbnM4NzQxNSAoaWRlX2h3aWZfdCAqaHdpZikKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqZGV2ID0gdG9fcGNpX2Rldihod2lmLT5kZXYpOwpAQCAtMjg4LDcgKzI4NCw3IEBACiAJfQogCiAJaWYgKCF1c2luZ19pbnRhKQotCQlod2lmLT5pcnEgPSBpZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKKwkJaHdpZi0+aXJxID0gX19pZGVfZGVmYXVsdF9pcnEoaHdpZi0+aW9fcG9ydHMuZGF0YV9hZGRyKTsKIAllbHNlIGlmICghaHdpZi0+aXJxICYmIGh3aWYtPm1hdGUgJiYgaHdpZi0+bWF0ZS0+aXJxKQogCQlod2lmLT5pcnEgPSBod2lmLT5tYXRlLT5pcnE7CS8qIHNoYXJlIElSUSB3aXRoIG1hdGUgKi8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL29wdGk2MjEuYyBiL2RyaXZlcnMvaWRlL3BjaS9vcHRpNjIxLmMKaW5kZXggNmU5OTA4MC4uNzI1YzgwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL29wdGk2MjEuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvb3B0aTYyMS5jCkBAIC04MSw4ICs4MSw2IEBACiAgKiAwLjUgZG9lc24ndCB3b3JrLgogICovCiAKLSNkZWZpbmUgT1BUSTYyMV9ERUJVRwkJLyogZGVmaW5lIGZvciBkZWJ1ZyBtZXNzYWdlcyAqLwotCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTkyLDI4ICs5MCw2IEBACiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIAotLy8jZGVmaW5lIE9QVEk2MjFfTUFYX1BJTyAzCi0vKiBJbiBmYWN0LCBJIGRvIG5vdCBoYXZlIGFueSBQSU8gNCBkcml2ZQotICogKGFkZHJlc3M6IDI1IG5zLCBkYXRhOiA3MCBucywgcmVjb3Zlcnk6IDM1IG5zKSwKLSAqIGJ1dCBPUFRpIDgyQzYyMSBpcyBwcm9ncmFtbWFibGUgYW5kIGl0IGNhbiBkbyAobWluaW1hbCB2YWx1ZXMpOgotICogb24gNDBNSHogUENJIGJ1cyAocHVsc2UgMjUgbnMpOgotICogIGFkZHJlc3M6IDI1IG5zLCBkYXRhOiAyNSBucywgcmVjb3Zlcnk6IDUwIG5zOwotICogb24gMjBNSHogUENJIGJ1cyAocHVsc2UgNTAgbnMpOgotICogIGFkZHJlc3M6IDUwIG5zLCBkYXRhOiA1MCBucywgcmVjb3Zlcnk6IDEwMCBucy4KLSAqLwotCi0vKiAjZGVmaW5lIFJFQURfUFJFRkVUQ0ggMCAqLwotLyogVW5jb21tZW50IGZvciBkaXNhYmxlIHJlYWQgcHJlZmV0Y2guCi0gKiBUaGVyZSBpcyBzb21lIHJlYWRwcmVmZXRjaCBjYXBhdGliaWxpdHkgaW4gaGRwYXJtLAotICogYnV0IHdoZW4gSSB0eXBlIGhkcGFybSAtUCAxIC9kZXYvaGRhLCBJIGdvdCBlcnJvcnMKLSAqIGFuZCB0aWxsIHJlc2V0IGRyaXZlIGlzIGluYWNjZXNzaWJsZS4KLSAqIFRoaXMgKGh3KSByZWFkIHByZWZldGNoIGlzIHNhZmUgb24gbXkgZHJpdmUuCi0gKi8KLQotI2lmbmRlZiBSRUFEX1BSRUZFVENICi0jZGVmaW5lIFJFQURfUFJFRkVUQ0ggMHg0MCAvKiByZWFkIHByZWZldGNoIGlzIGVuYWJsZWQgKi8KLSNlbmRpZiAvKiBlbHNlIHJlYWQgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgKi8KLQogI2RlZmluZSBSRUFEX1JFRyAwCS8qIGluZGV4IG9mIFJlYWQgY3ljbGUgdGltaW5nIHJlZ2lzdGVyICovCiAjZGVmaW5lIFdSSVRFX1JFRyAxCS8qIGluZGV4IG9mIFdyaXRlIGN5Y2xlIHRpbWluZyByZWdpc3RlciAqLwogI2RlZmluZSBDTlRSTF9SRUcgMwkvKiBpbmRleCBvZiBDb250cm9sIHJlZ2lzdGVyICovCkBAIC0xMjIsNTEgKzk4LDggQEAKIAogc3RhdGljIGludCByZWdfYmFzZTsKIAotI2RlZmluZSBQSU9fTk9UX0VYSVNUIDI1NAotI2RlZmluZSBQSU9fRE9OVF9LTk9XIDI1NQotCiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9wdGk2MjFfbG9jayk7CiAKLS8qIHRoZXJlIGFyZSBzdG9yZWQgcGlvIG51bWJlcnMgZnJvbSBvdGhlciBjYWxscyBvZiBvcHRpNjIxX3NldF9waW9fbW9kZSAqLwotc3RhdGljIHZvaWQgY29tcHV0ZV9waW9zKGlkZV9kcml2ZV90ICpkcml2ZSwgY29uc3QgdTggcGlvKQotLyogU3RvcmUgdmFsdWVzIGludG8gZHJpdmUtPmRyaXZlX2RhdGEKLSAqCXNlY29uZF9jb250ciAtIDAgZm9yIHByaW1hcnkgY29udHJvbGxlciwgMSBmb3Igc2Vjb25kYXJ5Ci0gKglzbGF2ZV9kcml2ZSAtIDAgLT4gcGlvIGlzIGZvciBtYXN0ZXIsIDEgLT4gcGlvIGlzIGZvciBzbGF2ZQotICoJcGlvIC0gUElPIG1vZGUgZm9yIHNlbGVjdGVkIGRyaXZlIChmb3Igb3RoZXIgd2UgZG9uJ3Qga25vdykKLSAqLwotewotCWludCBkOwotCWlkZV9od2lmX3QgKmh3aWYgPSBIV0lGKGRyaXZlKTsKLQotCWRyaXZlLT5kcml2ZV9kYXRhID0gcGlvOwotCi0JZm9yIChkID0gMDsgZCA8IDI7ICsrZCkgewotCQlkcml2ZSA9ICZod2lmLT5kcml2ZXNbZF07Ci0JCWlmIChkcml2ZS0+cHJlc2VudCkgewotCQkJaWYgKGRyaXZlLT5kcml2ZV9kYXRhID09IFBJT19ET05UX0tOT1cpCi0JCQkJZHJpdmUtPmRyaXZlX2RhdGEgPSBpZGVfZ2V0X2Jlc3RfcGlvX21vZGUoZHJpdmUsIDI1NSwgMyk7Ci0jaWZkZWYgT1BUSTYyMV9ERUJVRwotCQkJcHJpbnRrKCIlczogU2VsZWN0ZWQgUElPIG1vZGUgJWRcbiIsCi0JCQkJZHJpdmUtPm5hbWUsIGRyaXZlLT5kcml2ZV9kYXRhKTsKLSNlbmRpZgotCQl9IGVsc2UgewotCQkJZHJpdmUtPmRyaXZlX2RhdGEgPSBQSU9fTk9UX0VYSVNUOwotCQl9Ci0JfQotfQotCi1zdGF0aWMgaW50IGNtcHRfY2xrKGludCB0aW1lLCBpbnQgYnVzX3NwZWVkKQotLyogUmV0dXJucyAocm91bmRlZCB1cCkgdGltZSBpbiBjbG9ja3MgZm9yIHRpbWUgaW4gbnMsCi0gKiB3aXRoIGJ1c19zcGVlZCBpbiBNSHouCi0gKiBFeGFtcGxlOiBidXNfc3BlZWQgPSA0MCBNSHosIHRpbWUgPSA4MCBucwotICogMTAwMC80MCA9IDI1IG5zIChjbGsgdmFsdWUpLAotICogODAvMjUgPSAzLjIsIHJvdW5kZWQgdXAgdG8gNCAoSSBob3BlIDstKSkuCi0gKiBVc2UgaWRlYnVzPXh4IHRvIHNlbGVjdCByaWdodCBmcmVxdWVuY3kuCi0gKi8KLXsKLQlyZXR1cm4gKCh0aW1lKmJ1c19zcGVlZCs5OTkpLzEwMDApOwotfQotCiAvKiBXcml0ZSB2YWx1ZSB0byByZWdpc3RlciByZWcsIGJhc2Ugb2YgcmVnaXN0ZXIKICAqIGlzIGF0IHJlZ19iYXNlICgweDFmMCBwcmltYXJ5LCAweDE3MCBzZWNvbmRhcnksCiAgKiBpZiBub3QgY2hhbmdlZCBieSBQQ0kgY29uZmlndXJhdGlvbikuCkBAIC0xOTksODMgKzEzMiwyOSBAQAogCXJldHVybiByZXQ7CiB9CiAKLXR5cGVkZWYgc3RydWN0IHBpb19jbG9ja3NfcyB7Ci0JaW50CWFkZHJlc3NfdGltZTsJLyogQWRkcmVzcyBzZXR1cCAoY2xvY2tzKSAqLwotCWludAlkYXRhX3RpbWU7CS8qIEFjdGl2ZS9kYXRhIHB1bHNlIChjbG9ja3MpICovCi0JaW50CXJlY292ZXJ5X3RpbWU7CS8qIFJlY292ZXJ5IHRpbWUgKGNsb2NrcykgKi8KLX0gcGlvX2Nsb2Nrc190OwotCi1zdGF0aWMgdm9pZCBjb21wdXRlX2Nsb2NrcyhpbnQgcGlvLCBwaW9fY2xvY2tzX3QgKmNsa3MpCi17Ci0JaWYgKHBpbyAhPSBQSU9fTk9UX0VYSVNUKSB7Ci0JCWludCBhZHJfc2V0dXAsIGRhdGFfcGxzOwotCQlpbnQgYnVzX3NwZWVkID0gaWRlX3BjaV9jbGsgPyBpZGVfcGNpX2NsayA6IHN5c3RlbV9idXNfY2xvY2soKTsKLQotCQlhZHJfc2V0dXAgPSBpZGVfcGlvX3RpbWluZ3NbcGlvXS5zZXR1cF90aW1lOwotCQlkYXRhX3BscyA9IGlkZV9waW9fdGltaW5nc1twaW9dLmFjdGl2ZV90aW1lOwotCQljbGtzLT5hZGRyZXNzX3RpbWUgPSBjbXB0X2NsayhhZHJfc2V0dXAsIGJ1c19zcGVlZCk7Ci0JCWNsa3MtPmRhdGFfdGltZSA9IGNtcHRfY2xrKGRhdGFfcGxzLCBidXNfc3BlZWQpOwotCQljbGtzLT5yZWNvdmVyeV90aW1lID0gY21wdF9jbGsoaWRlX3Bpb190aW1pbmdzW3Bpb10uY3ljbGVfdGltZQotCQkJLSBhZHJfc2V0dXAtZGF0YV9wbHMsIGJ1c19zcGVlZCk7Ci0JCWlmIChjbGtzLT5hZGRyZXNzX3RpbWUgPCAxKQotCQkJY2xrcy0+YWRkcmVzc190aW1lID0gMTsKLQkJaWYgKGNsa3MtPmFkZHJlc3NfdGltZSA+IDQpCi0JCQljbGtzLT5hZGRyZXNzX3RpbWUgPSA0OwotCQlpZiAoY2xrcy0+ZGF0YV90aW1lIDwgMSkKLQkJCWNsa3MtPmRhdGFfdGltZSA9IDE7Ci0JCWlmIChjbGtzLT5kYXRhX3RpbWUgPiAxNikKLQkJCWNsa3MtPmRhdGFfdGltZSA9IDE2OwotCQlpZiAoY2xrcy0+cmVjb3ZlcnlfdGltZSA8IDIpCi0JCQljbGtzLT5yZWNvdmVyeV90aW1lID0gMjsKLQkJaWYgKGNsa3MtPnJlY292ZXJ5X3RpbWUgPiAxNykKLQkJCWNsa3MtPnJlY292ZXJ5X3RpbWUgPSAxNzsKLQl9IGVsc2UgewotCQljbGtzLT5hZGRyZXNzX3RpbWUgPSAxOwotCQljbGtzLT5kYXRhX3RpbWUgPSAxOwotCQljbGtzLT5yZWNvdmVyeV90aW1lID0gMjsKLQkJLyogbWluaW1hbCB2YWx1ZXMgKi8KLQl9Ci19Ci0KIHN0YXRpYyB2b2lkIG9wdGk2MjFfc2V0X3Bpb19tb2RlKGlkZV9kcml2ZV90ICpkcml2ZSwgY29uc3QgdTggcGlvKQogewotCS8qIHByaW1hcnkgYW5kIHNlY29uZGFyeSBkcml2ZXMgc2hhcmUgc29tZSByZWdpc3RlcnMsCi0JICogc28gd2UgaGF2ZSB0byBwcm9ncmFtIGJvdGggZHJpdmVzCi0JICovCisJaWRlX2h3aWZfdCAqaHdpZiA9IGRyaXZlLT5od2lmOworCWlkZV9kcml2ZV90ICpwYWlyID0gaWRlX2dldF9wYWlyZWRfZHJpdmUoZHJpdmUpOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdTggcGlvMSA9IDAsIHBpbzIgPSAwOwotCXBpb19jbG9ja3NfdCBmaXJzdCwgc2Vjb25kOwotCWludCBheCwgZHJkeTsKLQl1OCBjeWNsZTEsIGN5Y2xlMiwgbWlzYzsKLQlpZGVfaHdpZl90ICpod2lmID0gSFdJRihkcml2ZSk7CisJdTggdGltLCBtaXNjLCBhZGRyX3BpbyA9IHBpbywgY2xrOwogCi0JLyogc2V0cyBkcml2ZS0+ZHJpdmVfZGF0YSBmb3IgYm90aCBkcml2ZXMgKi8KLQljb21wdXRlX3Bpb3MoZHJpdmUsIHBpbyk7Ci0JcGlvMSA9IGh3aWYtPmRyaXZlc1swXS5kcml2ZV9kYXRhOwotCXBpbzIgPSBod2lmLT5kcml2ZXNbMV0uZHJpdmVfZGF0YTsKKwkvKiBEUkRZIGlzIGRlZmF1bHQgMiAoYnkgT1BUaSBEYXRhYm9vaykgKi8KKwlzdGF0aWMgY29uc3QgdTggYWRkcl90aW1pbmdzWzJdWzVdID0geworCQl7IDB4MjAsIDB4MTAsIDB4MDAsIDB4MDAsIDB4MDAgfSwJLyogMzMgTUh6ICovCisJCXsgMHgxMCwgMHgxMCwgMHgwMCwgMHgwMCwgMHgwMCB9LAkvKiAyNSBNSHogKi8KKwl9OworCXN0YXRpYyBjb25zdCB1OCBkYXRhX3JlY190aW1pbmdzWzJdWzVdID0geworCQl7IDB4NWIsIDB4NDUsIDB4MzIsIDB4MjEsIDB4MjAgfSwJLyogMzMgTUh6ICovCisJCXsgMHg0OCwgMHgzNCwgMHgyMSwgMHgxMCwgMHgxMCB9CS8qIDI1IE1IeiAqLworCX07CiAKLQljb21wdXRlX2Nsb2NrcyhwaW8xLCAmZmlyc3QpOwotCWNvbXB1dGVfY2xvY2tzKHBpbzIsICZzZWNvbmQpOworCWRyaXZlLT5kcml2ZV9kYXRhID0gWEZFUl9QSU9fMCArIHBpbzsKIAotCS8qIGF4ID0gbWF4KGExLGEyKSAqLwotCWF4ID0gKGZpcnN0LmFkZHJlc3NfdGltZSA8IHNlY29uZC5hZGRyZXNzX3RpbWUpID8gc2Vjb25kLmFkZHJlc3NfdGltZSA6IGZpcnN0LmFkZHJlc3NfdGltZTsKLQotCWRyZHkgPSAyOyAvKiBEUkRZIGlzIGRlZmF1bHQgMiAoYnkgT1BUaSBEYXRhYm9vaykgKi8KLQotCWN5Y2xlMSA9ICgoZmlyc3QuZGF0YV90aW1lLTEpPDw0KSAgfCAoZmlyc3QucmVjb3ZlcnlfdGltZS0yKTsKLQljeWNsZTIgPSAoKHNlY29uZC5kYXRhX3RpbWUtMSk8PDQpIHwgKHNlY29uZC5yZWNvdmVyeV90aW1lLTIpOwotCW1pc2MgPSBSRUFEX1BSRUZFVENIIHwgKChheC0xKTw8NCkgfCAoKGRyZHktMik8PDEpOwotCi0jaWZkZWYgT1BUSTYyMV9ERUJVRwotCXByaW50aygiJXM6IG1hc3RlcjogYWRkcmVzczogJWQsIGRhdGE6ICVkLCAiCi0JCSJyZWNvdmVyeTogJWQsIGRyZHk6ICVkIFtjbGtdXG4iLAotCQlod2lmLT5uYW1lLCBheCwgZmlyc3QuZGF0YV90aW1lLAotCQlmaXJzdC5yZWNvdmVyeV90aW1lLCBkcmR5KTsKLQlwcmludGsoIiVzOiBzbGF2ZTogIGFkZHJlc3M6ICVkLCBkYXRhOiAlZCwgIgotCQkicmVjb3Zlcnk6ICVkLCBkcmR5OiAlZCBbY2xrXVxuIiwKLQkJaHdpZi0+bmFtZSwgYXgsIHNlY29uZC5kYXRhX3RpbWUsCi0JCXNlY29uZC5yZWNvdmVyeV90aW1lLCBkcmR5KTsKLSNlbmRpZgorCWlmIChwYWlyLT5wcmVzZW50KSB7CisJCWlmIChwYWlyLT5kcml2ZV9kYXRhICYmIHBhaXItPmRyaXZlX2RhdGEgPCBkcml2ZS0+ZHJpdmVfZGF0YSkKKwkJCWFkZHJfcGlvID0gcGFpci0+ZHJpdmVfZGF0YSAtIFhGRVJfUElPXzA7CisJfQogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJm9wdGk2MjFfbG9jaywgZmxhZ3MpOwogCkBAIC0yODksMjQgKzE2OCwyMSBAQAogCSh2b2lkKWluYihyZWdfYmFzZSArIENOVFJMX1JFRyk7CiAJLyogaWYgcmVhZHMgMHhjMCwgbm8gaW50ZXJmYWNlIGV4aXN0PyAqLwogCXJlYWRfcmVnKENOVFJMX1JFRyk7Ci0JLyogcmVhZCB2ZXJzaW9uLCBwcm9iYWJseSAwICovCi0JcmVhZF9yZWcoU1RSQVBfUkVHKTsKIAotCS8qIHByb2dyYW0gcHJpbWFyeSBkcml2ZSAqLwotCS8qIHNlbGVjdCBJbmRleC0wIGZvciBSZWdpc3Rlci1BICovCi0Jd3JpdGVfcmVnKDAsIE1JU0NfUkVHKTsKLQkvKiBzZXQgcmVhZCBjeWNsZSB0aW1pbmdzICovCi0Jd3JpdGVfcmVnKGN5Y2xlMSwgUkVBRF9SRUcpOwotCS8qIHNldCB3cml0ZSBjeWNsZSB0aW1pbmdzICovCi0Jd3JpdGVfcmVnKGN5Y2xlMSwgV1JJVEVfUkVHKTsKKwkvKiBjaGVjayBDTEsgc3BlZWQgKi8KKwljbGsgPSByZWFkX3JlZyhTVFJBUF9SRUcpICYgMTsKIAotCS8qIHByb2dyYW0gc2Vjb25kYXJ5IGRyaXZlICovCi0JLyogc2VsZWN0IEluZGV4LTEgZm9yIFJlZ2lzdGVyLUIgKi8KLQl3cml0ZV9yZWcoMSwgTUlTQ19SRUcpOworCXByaW50ayhLRVJOX0lORk8gIiVzOiBDTEsgPSAlZCBNSHpcbiIsIGh3aWYtPm5hbWUsIGNsayA/IDI1IDogMzMpOworCisJdGltICA9IGRhdGFfcmVjX3RpbWluZ3NbY2xrXVtwaW9dOworCW1pc2MgPSBhZGRyX3RpbWluZ3NbY2xrXVthZGRyX3Bpb107CisKKwkvKiBzZWxlY3QgSW5kZXgtMC8xIGZvciBSZWdpc3Rlci1BL0IgKi8KKwl3cml0ZV9yZWcoZHJpdmUtPnNlbGVjdC5iLnVuaXQsIE1JU0NfUkVHKTsKIAkvKiBzZXQgcmVhZCBjeWNsZSB0aW1pbmdzICovCi0Jd3JpdGVfcmVnKGN5Y2xlMiwgUkVBRF9SRUcpOworCXdyaXRlX3JlZyh0aW0sIFJFQURfUkVHKTsKIAkvKiBzZXQgd3JpdGUgY3ljbGUgdGltaW5ncyAqLwotCXdyaXRlX3JlZyhjeWNsZTIsIFdSSVRFX1JFRyk7CisJd3JpdGVfcmVnKHRpbSwgV1JJVEVfUkVHKTsKIAogCS8qIHVzZSBSZWdpc3Rlci1BIGZvciBkcml2ZSAwICovCiAJLyogdXNlIFJlZ2lzdGVyLUIgZm9yIGRyaXZlIDEgKi8KQEAgLTMxOSw0NSArMTk1LDI2IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmb3B0aTYyMV9sb2NrLCBmbGFncyk7CiB9CiAKLXN0YXRpYyB2b2lkIF9fZGV2aW5pdCBvcHRpNjIxX3BvcnRfaW5pdF9kZXZzKGlkZV9od2lmX3QgKmh3aWYpCi17Ci0JaHdpZi0+ZHJpdmVzWzBdLmRyaXZlX2RhdGEgPSBQSU9fRE9OVF9LTk9XOwotCWh3aWYtPmRyaXZlc1sxXS5kcml2ZV9kYXRhID0gUElPX0RPTlRfS05PVzsKLX0KLQogc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9vcHMgb3B0aTYyMV9wb3J0X29wcyA9IHsKLQkucG9ydF9pbml0X2RldnMJCT0gb3B0aTYyMV9wb3J0X2luaXRfZGV2cywKIAkuc2V0X3Bpb19tb2RlCQk9IG9wdGk2MjFfc2V0X3Bpb19tb2RlLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9pbmZvIG9wdGk2MjFfY2hpcHNldHNbXSBfX2RldmluaXRkYXRhID0gewotCXsJLyogMCAqLwotCQkubmFtZQkJPSAiT1BUSTYyMSIsCi0JCS5lbmFibGViaXRzCT0geyB7MHg0NSwgMHg4MCwgMHgwMH0sIHsweDQwLCAweDA4LCAweDAwfSB9LAotCQkucG9ydF9vcHMJPSAmb3B0aTYyMV9wb3J0X29wcywKLQkJLmhvc3RfZmxhZ3MJPSBJREVfSEZMQUdfVFJVU1RfQklPU19GT1JfRE1BLAotCQkucGlvX21hc2sJPSBBVEFfUElPMywKLQkJLnN3ZG1hX21hc2sJPSBBVEFfU1dETUEyLAotCQkubXdkbWFfbWFzawk9IEFUQV9NV0RNQTIsCi0JfSwgewkvKiAxICovCi0JCS5uYW1lCQk9ICJPUFRJNjIxWCIsCi0JCS5lbmFibGViaXRzCT0geyB7MHg0NSwgMHg4MCwgMHgwMH0sIHsweDQwLCAweDA4LCAweDAwfSB9LAotCQkucG9ydF9vcHMJPSAmb3B0aTYyMV9wb3J0X29wcywKLQkJLmhvc3RfZmxhZ3MJPSBJREVfSEZMQUdfVFJVU1RfQklPU19GT1JfRE1BLAotCQkucGlvX21hc2sJPSBBVEFfUElPMywKLQkJLnN3ZG1hX21hc2sJPSBBVEFfU1dETUEyLAotCQkubXdkbWFfbWFzawk9IEFUQV9NV0RNQTIsCi0JfQorc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9pbmZvIG9wdGk2MjFfY2hpcHNldCBfX2RldmluaXRkYXRhID0geworCS5uYW1lCQk9ICJPUFRJNjIxL1giLAorCS5lbmFibGViaXRzCT0geyB7MHg0NSwgMHg4MCwgMHgwMH0sIHsweDQwLCAweDA4LCAweDAwfSB9LAorCS5wb3J0X29wcwk9ICZvcHRpNjIxX3BvcnRfb3BzLAorCS5ob3N0X2ZsYWdzCT0gSURFX0hGTEFHX05PX0RNQSwKKwkucGlvX21hc2sJPSBBVEFfUElPNCwKIH07CiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IG9wdGk2MjFfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKmRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQogewotCXJldHVybiBpZGVfc2V0dXBfcGNpX2RldmljZShkZXYsICZvcHRpNjIxX2NoaXBzZXRzW2lkLT5kcml2ZXJfZGF0YV0pOworCXJldHVybiBpZGVfc2V0dXBfcGNpX2RldmljZShkZXYsICZvcHRpNjIxX2NoaXBzZXQpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgb3B0aTYyMV9wY2lfdGJsW10gPSB7CiAJeyBQQ0lfVkRFVklDRShPUFRJLCBQQ0lfREVWSUNFX0lEX09QVElfODJDNjIxKSwgMCB9LAotCXsgUENJX1ZERVZJQ0UoT1BUSSwgUENJX0RFVklDRV9JRF9PUFRJXzgyQzgyNSksIDEgfSwKKwl7IFBDSV9WREVWSUNFKE9QVEksIFBDSV9ERVZJQ0VfSURfT1BUSV84MkM4MjUpLCAwIH0sCiAJeyAwLCB9LAogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBvcHRpNjIxX3BjaV90YmwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcGNpL3NpczU1MTMuYyBiL2RyaXZlcnMvaWRlL3BjaS9zaXM1NTEzLmMKaW5kZXggNGIwYjg1ZC4uZTEyN2ViMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcGNpL3NpczU1MTMuYworKysgYi9kcml2ZXJzL2lkZS9wY2kvc2lzNTUxMy5jCkBAIC01NjksNiArNTY5LDExIEBACiB7CiAJc3RydWN0IGlkZV9wb3J0X2luZm8gZCA9IHNpczU1MTNfY2hpcHNldDsKIAl1OCB1ZG1hX3JhdGVzW10gPSB7IDB4MDAsIDB4MDAsIDB4MDcsIDB4MWYsIDB4M2YsIDB4M2YsIDB4N2YsIDB4N2YgfTsKKwlpbnQgcmM7CisKKwlyYyA9IHBjaV9lbmFibGVfZGV2aWNlKGRldik7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAKIAlpZiAoc2lzX2ZpbmRfZmFtaWx5KGRldikgPT0gMCkKIAkJcmV0dXJuIC1FTk9UU1VQUDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWRlL3BwYy9tcGM4eHguYyBiL2RyaXZlcnMvaWRlL3BwYy9tcGM4eHguYwppbmRleCBmMGU2MzhkLi4yMzZmOWMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lkZS9wcGMvbXBjOHh4LmMKKysrIGIvZHJpdmVycy9pZGUvcHBjL21wYzh4eC5jCkBAIC0zMDMsNiArMzAzLDggQEAKIAlwY21wLT5wY21jX3BlciA9IDB4MTAwMDAwID4+ICgxNiAqIF9zbG90Xyk7CiAjZW5kaWYJLyogQ09ORklHX0lERV84eHhfUENDQVJEICovCiAKKwlody0+Y2hpcHNldCA9IGlkZV9nZW5lcmljOworCiAJcmV0dXJuIDA7CiB9CiAjZW5kaWYgLyogQ09ORklHX0lERV84eHhfUENDQVJEIHx8IENPTkZJR19JREVfOHh4X0RJUkVDVCAqLwpAQCAtMzc3LDYgKzM3OSw4IEBACiAJKChpbW1hcF90ICopIElNQVBfQUREUiktPmltX3NpdV9jb25mLnNjX3NpZWwgfD0KIAkJCSgweDgwMDAwMDAwID4+IGlvcG9ydF9kc2NbZGF0YV9wb3J0XS5pcnEpOwogCisJaHctPmNoaXBzZXQgPSBpZGVfZ2VuZXJpYzsKKwogCXJldHVybiAwOwogfQogI2VuZGlmCS8qIENPTkZJR19JREVfOHh4X0RJUkVDVCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZGUvcHBjL3BtYWMuYyBiL2RyaXZlcnMvaWRlL3BwYy9wbWFjLmMKaW5kZXggNDhhYTAxOS4uYmEyZDU4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pZGUvcHBjL3BtYWMuYworKysgYi9kcml2ZXJzL2lkZS9wcGMvcG1hYy5jCkBAIC01OSw3ICs1OSw2IEBACiAJaW50CQkJCWlycTsKIAlpbnQJCQkJa2luZDsKIAlpbnQJCQkJYWFwbF9idXNfaWQ7Ci0JdW5zaWduZWQJCQljYWJsZV84MCA6IDE7CiAJdW5zaWduZWQJCQltZWRpYWJheSA6IDE7CiAJdW5zaWduZWQJCQlicm9rZW5fZG1hIDogMTsKIAl1bnNpZ25lZAkJCWJyb2tlbl9kbWFfd2FybiA6IDE7CkBAIC05MTgsMTAgKzkxNyw0MCBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTggcG1hY19pZGVfY2FibGVfZGV0ZWN0KGlkZV9od2lmX3QgKmh3aWYpCit7CisJcG1hY19pZGVfaHdpZl90ICpwbWlmID0gKHBtYWNfaWRlX2h3aWZfdCAqKWlkZV9nZXRfaHdpZmRhdGEoaHdpZik7CisJc3RydWN0IGRldmljZV9ub2RlICpucCA9IHBtaWYtPm5vZGU7CisJY29uc3QgY2hhciAqY2FibGUgPSBvZl9nZXRfcHJvcGVydHkobnAsICJjYWJsZS10eXBlIiwgTlVMTCk7CisKKwkvKiBHZXQgY2FibGUgdHlwZSBmcm9tIGRldmljZS10cmVlLiAqLworCWlmIChjYWJsZSAmJiAhc3RybmNtcChjYWJsZSwgIjgwLSIsIDMpKQorCQlyZXR1cm4gQVRBX0NCTF9QQVRBODA7CisKKwkvKgorCSAqIEc1J3Mgc2VlbSB0byBoYXZlIGluY29ycmVjdCBjYWJsZSB0eXBlIGluIGRldmljZS10cmVlLgorCSAqIExldCdzIGFzc3VtZSB0aGV5IGhhdmUgYSA4MCBjb25kdWN0b3IgY2FibGUsIHRoaXMgc2VlbQorCSAqIHRvIGJlIGFsd2F5cyB0aGUgY2FzZSB1bmxlc3MgdGhlIHVzZXIgbXVja2VkIGFyb3VuZC4KKwkgKi8KKwlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJLMi1VQVRBIikgfHwKKwkgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzaGFzdGEtYXRhIikpCisJCXJldHVybiBBVEFfQ0JMX1BBVEE4MDsKKworCXJldHVybiBBVEFfQ0JMX1BBVEE0MDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9vcHMgcG1hY19pZGVfYXRhNl9wb3J0X29wcyA9IHsKIAkuc2V0X3Bpb19tb2RlCQk9IHBtYWNfaWRlX3NldF9waW9fbW9kZSwKIAkuc2V0X2RtYV9tb2RlCQk9IHBtYWNfaWRlX3NldF9kbWFfbW9kZSwKIAkuc2VsZWN0cHJvYwkJPSBwbWFjX2lkZV9rYXVhaV9zZWxlY3Rwcm9jLAorCS5jYWJsZV9kZXRlY3QJCT0gcG1hY19pZGVfY2FibGVfZGV0ZWN0LAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9vcHMgcG1hY19pZGVfYXRhNF9wb3J0X29wcyA9IHsKKwkuc2V0X3Bpb19tb2RlCQk9IHBtYWNfaWRlX3NldF9waW9fbW9kZSwKKwkuc2V0X2RtYV9tb2RlCQk9IHBtYWNfaWRlX3NldF9kbWFfbW9kZSwKKwkuc2VsZWN0cHJvYwkJPSBwbWFjX2lkZV9zZWxlY3Rwcm9jLAorCS5jYWJsZV9kZXRlY3QJCT0gcG1hY19pZGVfY2FibGVfZGV0ZWN0LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpZGVfcG9ydF9vcHMgcG1hY19pZGVfcG9ydF9vcHMgPSB7CkBAIC05NDksMTAgKzk3OCw3IEBACiAKIC8qCiAgKiBTZXR1cCwgcmVnaXN0ZXIgJiBwcm9iZSBhbiBJREUgY2hhbm5lbCBkcml2ZW4gYnkgdGhpcyBkcml2ZXIsIHRoaXMgaXMKLSAqIGNhbGxlZCBieSBvbmUgb2YgdGhlIDIgcHJvYmUgZnVuY3Rpb25zIChtYWNpbyBvciBQQ0kpLiBOb3RlIHRoYXQgYSBjaGFubmVsCi0gKiB0aGF0IGVuZHMgdXAgYmVlaW5nIGZyZWUgb2YgYW55IGRldmljZSBpcyBub3Qga2VwdCBhcm91bmQgYnkgdGhpcyBkcml2ZXIKLSAqIChpdCBpcyBrZXB0IGluIDIuNCkuIFRoaXMgaW50cm9kdWNlIGFuIGludGVyZmFjZSBudW1iZXJpbmcgY2hhbmdlIG9uIHNvbWUKLSAqIHJhcmUgbWFjaGluZXMgdW5mb3J0dW5hdGVseSwgYnV0IGl0J3MgYmV0dGVyIHRoaXMgd2F5LgorICogY2FsbGVkIGJ5IG9uZSBvZiB0aGUgMiBwcm9iZSBmdW5jdGlvbnMgKG1hY2lvIG9yIFBDSSkuCiAgKi8KIHN0YXRpYyBpbnQgX19kZXZpbml0CiBwbWFjX2lkZV9zZXR1cF9kZXZpY2UocG1hY19pZGVfaHdpZl90ICpwbWlmLCBpZGVfaHdpZl90ICpod2lmLCBod19yZWdzX3QgKmh3KQpAQCAtOTYyLDcgKzk4OCw2IEBACiAJdTggaWR4WzRdID0geyAweGZmLCAweGZmLCAweGZmLCAweGZmIH07CiAJc3RydWN0IGlkZV9wb3J0X2luZm8gZCA9IHBtYWNfcG9ydF9pbmZvOwogCi0JcG1pZi0+Y2FibGVfODAgPSAwOwogCXBtaWYtPmJyb2tlbl9kbWEgPSBwbWlmLT5icm9rZW5fZG1hX3dhcm4gPSAwOwogCWlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgInNoYXN0YS1hdGEiKSkgewogCQlwbWlmLT5raW5kID0gY29udHJvbGxlcl9zaF9hdGE2OwpAQCAtOTc5LDYgKzEwMDQsNyBAQAogCX0gZWxzZSBpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJrZXlsYXJnby1hdGEiKSkgewogCQlpZiAoc3RyY21wKG5wLT5uYW1lLCAiYXRhLTQiKSA9PSAwKSB7CiAJCQlwbWlmLT5raW5kID0gY29udHJvbGxlcl9rbF9hdGE0OworCQkJZC5wb3J0X29wcyA9ICZwbWFjX2lkZV9hdGE0X3BvcnRfb3BzOwogCQkJZC51ZG1hX21hc2sgPSBBVEFfVURNQTQ7CiAJCX0gZWxzZQogCQkJcG1pZi0+a2luZCA9IGNvbnRyb2xsZXJfa2xfYXRhMzsKQEAgLTk5MiwyMiArMTAxOCw2IEBACiAJYmlkcCA9IG9mX2dldF9wcm9wZXJ0eShucCwgIkFBUEwsYnVzLWlkIiwgTlVMTCk7CiAJcG1pZi0+YWFwbF9idXNfaWQgPSAgYmlkcCA/ICpiaWRwIDogMDsKIAotCS8qIEdldCBjYWJsZSB0eXBlIGZyb20gZGV2aWNlLXRyZWUgKi8KLQlpZiAocG1pZi0+a2luZCA9PSBjb250cm9sbGVyX2tsX2F0YTQgfHwgcG1pZi0+a2luZCA9PSBjb250cm9sbGVyX3VuX2F0YTYKLQkgICAgfHwgcG1pZi0+a2luZCA9PSBjb250cm9sbGVyX2syX2F0YTYKLQkgICAgfHwgcG1pZi0+a2luZCA9PSBjb250cm9sbGVyX3NoX2F0YTYpIHsKLQkJY29uc3QgY2hhciogY2FibGUgPSBvZl9nZXRfcHJvcGVydHkobnAsICJjYWJsZS10eXBlIiwgTlVMTCk7Ci0JCWlmIChjYWJsZSAmJiAhc3RybmNtcChjYWJsZSwgIjgwLSIsIDMpKQotCQkJcG1pZi0+Y2FibGVfODAgPSAxOwotCX0KLQkvKiBHNSdzIHNlZW0gdG8gaGF2ZSBpbmNvcnJlY3QgY2FibGUgdHlwZSBpbiBkZXZpY2UtdHJlZS4gTGV0J3MgYXNzdW1lCi0JICogdGhleSBoYXZlIGEgODAgY29uZHVjdG9yIGNhYmxlLCB0aGlzIHNlZW0gdG8gYmUgYWx3YXlzIHRoZSBjYXNlIHVubGVzcwotCSAqIHRoZSB1c2VyIG11Y2tlZCBhcm91bmQKLQkgKi8KLQlpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJLMi1VQVRBIikgfHwKLQkgICAgb2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJzaGFzdGEtYXRhIikpCi0JCXBtaWYtPmNhYmxlXzgwID0gMTsKLQogCS8qIE9uIEthdWFpLXR5cGUgY29udHJvbGxlcnMsIHdlIG1ha2Ugc3VyZSB0aGUgRkNSIGlzIGNvcnJlY3QgKi8KIAlpZiAocG1pZi0+a2F1YWlfZmNyKQogCQl3cml0ZWwoS0FVQUlfRkNSX1VBVEFfTUFHSUMgfApAQCAtMTA1Myw3ICsxMDYzLDYgQEAKIAogCWh3aWYtPmh3aWZfZGF0YSA9IHBtaWY7CiAJaWRlX2luaXRfcG9ydF9odyhod2lmLCBodyk7Ci0JaHdpZi0+Y2JsID0gcG1pZi0+Y2FibGVfODAgPyBBVEFfQ0JMX1BBVEE4MCA6IEFUQV9DQkxfUEFUQTQwOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiaWRlJWQ6IEZvdW5kIEFwcGxlICVzIGNvbnRyb2xsZXIsIGJ1cyBJRCAlZCVzLCBpcnEgJWRcbiIsCiAJICAgICAgIGh3aWYtPmluZGV4LCBtb2RlbF9uYW1lW3BtaWYtPmtpbmRdLCBwbWlmLT5hYXBsX2J1c19pZCwKQEAgLTEwNzAsMTEgKzEwNzksNiBAQAogCQl9CiAJfQogCi0jaWZkZWYgQ09ORklHX0JMS19ERVZfSURFRE1BX1BNQUMKLQlpZiAocG1pZi0+Y2FibGVfODAgPT0gMCkKLQkJZC51ZG1hX21hc2sgJj0gQVRBX1VETUEyOwotI2VuZGlmCi0KIAlpZHhbMF0gPSBod2lmLT5pbmRleDsKIAogCWlkZV9kZXZpY2VfYWRkKGlkeCwgJmQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pZWVlMTM5NC9LY29uZmlnIGIvZHJpdmVycy9pZWVlMTM5NC9LY29uZmlnCmluZGV4IDU0NTY2M2UuLjk1ZjQ1ZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaWVlZTEzOTQvS2NvbmZpZworKysgYi9kcml2ZXJzL2llZWUxMzk0L0tjb25maWcKQEAgLTQsNyArNCw3IEBACiBzb3VyY2UgImRyaXZlcnMvZmlyZXdpcmUvS2NvbmZpZyIKIAogY29uZmlnIElFRUUxMzk0Ci0JdHJpc3RhdGUgIklFRUUgMTM5NCAoRmlyZVdpcmUpIHN1cHBvcnQiCisJdHJpc3RhdGUgIlN0YWJsZSBGaXJlV2lyZSBzdGFjayIKIAlkZXBlbmRzIG9uIFBDSSB8fCBCUk9LRU4KIAloZWxwCiAJICBJRUVFIDEzOTQgZGVzY3JpYmVzIGEgaGlnaCBwZXJmb3JtYW5jZSBzZXJpYWwgYnVzLCB3aGljaCBpcyBhbHNvCkBAIC0xOSwzMCArMTksNDUgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIGllZWUxMzk0LgogCi1jb21tZW50ICJTdWJzeXN0ZW0gT3B0aW9ucyIKLQlkZXBlbmRzIG9uIElFRUUxMzk0Ci0KLWNvbmZpZyBJRUVFMTM5NF9WRVJCT1NFREVCVUcKLQlib29sICJFeGNlc3NpdmUgZGVidWdnaW5nIG91dHB1dCIKLQlkZXBlbmRzIG9uIElFRUUxMzk0Citjb25maWcgSUVFRTEzOTRfT0hDSTEzOTQKKwl0cmlzdGF0ZSAiT0hDSS0xMzk0IGNvbnRyb2xsZXJzIgorCWRlcGVuZHMgb24gUENJICYmIElFRUUxMzk0CiAJaGVscAotCSAgSWYgeW91IHNheSBZIGhlcmUsIHlvdSB3aWxsIGdldCB2ZXJ5IHZlcmJvc2UgZGVidWdnaW5nIGxvZ3MgZnJvbQotCSAgdGhlIHN1YnN5c3RlbSB3aGljaCBpbmNsdWRlcyBhIGR1bXAgb2YgdGhlIGhlYWRlciBvZiBldmVyeSBzZW50Ci0JICBhbmQgcmVjZWl2ZWQgcGFja2V0LiAgVGhpcyBjYW4gYW1vdW50IHRvIGEgaGlnaCBhbW91bnQgb2YgZGF0YQotCSAgY29sbGVjdGVkIGluIGEgdmVyeSBzaG9ydCB0aW1lIHdoaWNoIGlzIHVzdWFsbHkgYWxzbyBzYXZlZCB0bwotCSAgZGlzayBieSB0aGUgc3lzdGVtIGxvZ2dpbmcgZGFlbW9ucy4KKwkgIEVuYWJsZSB0aGlzIGRyaXZlciBpZiB5b3UgaGF2ZSBhbiBJRUVFIDEzOTQgY29udHJvbGxlciBiYXNlZCBvbiB0aGUKKwkgIE9IQ0ktMTM5NCBzcGVjaWZpY2F0aW9uLiBUaGUgY3VycmVudCBkcml2ZXIgaXMgb25seSB0ZXN0ZWQgd2l0aCBPSENJCisJICBjaGlwc2V0cyBtYWRlIGJ5IFRleGFzIEluc3RydW1lbnRzIGFuZCBORUMuIE1vc3QgdGhpcmQtcGFydHkgdmVuZG9ycworCSAgdXNlIG9uZSBvZiB0aGVzZSBjaGlwc2V0cy4gIEl0IHNob3VsZCB3b3JrIHdpdGggYW55IE9IQ0ktMTM5NAorCSAgY29tcGxpYW50IGNhcmQsIGhvd2V2ZXIuCiAKLQkgIFNheSBZIGlmIHlvdSByZWFsbHkgd2FudCBvciBuZWVkIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0LCBldmVyeW9uZQotCSAgZWxzZSBzYXlzIE4uCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBzYXkgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBvaGNpMTM5NC4KIAotY29tbWVudCAiQ29udHJvbGxlcnMiCi0JZGVwZW5kcyBvbiBJRUVFMTM5NAorCSAgTk9URToKIAotY29tbWVudCAiVGV4YXMgSW5zdHJ1bWVudHMgUENJTHlueCByZXF1aXJlcyBJMkMiCisJICBZb3Ugc2hvdWxkIG9ubHkgYnVpbGQgZWl0aGVyIG9oY2kxMzk0IG9yIHRoZSBuZXcgZmlyZXdpcmUtb2hjaSBkcml2ZXIsCisJICBidXQgbm90IGJvdGguICBJZiB5b3UgbmV2ZXJ0aGVsZXNzIHdhbnQgdG8gaW5zdGFsbCBib3RoLCB5b3Ugc2hvdWxkCisJICBjb25maWd1cmUgdGhlbSBvbmx5IGFzIG1vZHVsZXMgYW5kIGJsYWNrbGlzdCB0aGUgZHJpdmVyKHMpIHdoaWNoIHlvdQorCSAgZG9uJ3Qgd2FudCB0byBoYXZlIGF1dG8tbG9hZGVkLiAgQWRkIGVpdGhlcgorCisJICAgICAgYmxhY2tsaXN0IGZpcmV3aXJlLW9oY2kKKwkgIG9yCisJICAgICAgYmxhY2tsaXN0IG9oY2kxMzk0CisJICAgICAgYmxhY2tsaXN0IHZpZGVvMTM5NAorCSAgICAgIGJsYWNrbGlzdCBkdjEzOTQKKworCSAgdG8gL2V0Yy9tb2Rwcm9iZS5jb25mIG9yIC9ldGMvbW9kcHJvYmUuZC8qIGFuZCB1cGRhdGUgbW9kcHJvYmUuY29uZgorCSAgZGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uLiAgVGhlIGxhdHRlciB0d28gbW9kdWxlcyBzaG91bGQgYmUKKwkgIGJsYWNrbGlzdGVkIHRvZ2V0aGVyIHdpdGggb2hjaTEzOTQgYmVjYXVzZSB0aGV5IGRlcGVuZCBvbiBvaGNpMTM5NC4KKworCSAgSWYgeW91IGhhdmUgYW4gb2xkIG1vZHByb2JlIHdoaWNoIGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBibGFja2xpc3QKKwkgIGRpcmVjdGl2ZSwgdXNlICJpbnN0YWxsIG1vZHVsZW5hbWUgL2Jpbi90cnVlIiBmb3IgdGhlIG1vZHVsZXMgdG8gYmUKKwkgIGJsYWNrbGlzdGVkLgorCitjb21tZW50ICJQQ0lMeW54IGNvbnRyb2xsZXIgcmVxdWlyZXMgSTJDIgogCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgSTJDPW4KIAogY29uZmlnIElFRUUxMzk0X1BDSUxZTlgKLQl0cmlzdGF0ZSAiVGV4YXMgSW5zdHJ1bWVudHMgUENJTHlueCBzdXBwb3J0IgorCXRyaXN0YXRlICJQQ0lMeW54IGNvbnRyb2xsZXIiCiAJZGVwZW5kcyBvbiBQQ0kgJiYgSUVFRTEzOTQgJiYgSTJDCiAJc2VsZWN0IEkyQ19BTEdPQklUCiAJaGVscApAQCAtNTcsMzUgKzcyLDExIEBACiAJICBQb3dlck1hY3MgRzMgQiZXIGNvbnRhaW4gdGhlIFBDSUx5bnggY29udHJvbGxlci4gIFRoZXJlZm9yZQogCSAgYWxtb3N0IGV2ZXJ5Ym9keSBjYW4gc2F5IE4gaGVyZS4KIAotY29uZmlnIElFRUUxMzk0X09IQ0kxMzk0Ci0JdHJpc3RhdGUgIk9IQ0ktMTM5NCBzdXBwb3J0IgotCWRlcGVuZHMgb24gUENJICYmIElFRUUxMzk0Ci0JaGVscAotCSAgRW5hYmxlIHRoaXMgZHJpdmVyIGlmIHlvdSBoYXZlIGFuIElFRUUgMTM5NCBjb250cm9sbGVyIGJhc2VkIG9uIHRoZQotCSAgT0hDSS0xMzk0IHNwZWNpZmljYXRpb24uIFRoZSBjdXJyZW50IGRyaXZlciBpcyBvbmx5IHRlc3RlZCB3aXRoIE9IQ0kKLQkgIGNoaXBzZXRzIG1hZGUgYnkgVGV4YXMgSW5zdHJ1bWVudHMgYW5kIE5FQy4gTW9zdCB0aGlyZC1wYXJ0eSB2ZW5kb3JzCi0JICB1c2Ugb25lIG9mIHRoZXNlIGNoaXBzZXRzLiAgSXQgc2hvdWxkIHdvcmsgd2l0aCBhbnkgT0hDSS0xMzk0Ci0JICBjb21wbGlhbnQgY2FyZCwgaG93ZXZlci4KLQotCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgc2F5IE0gaGVyZTogdGhlCi0JICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgb2hjaTEzOTQuCi0KLWNvbW1lbnQgIlByb3RvY29scyIKLQlkZXBlbmRzIG9uIElFRUUxMzk0Ci0KLWNvbmZpZyBJRUVFMTM5NF9WSURFTzEzOTQKLQl0cmlzdGF0ZSAiT0hDSS0xMzk0IFZpZGVvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBJRUVFMTM5NCAmJiBJRUVFMTM5NF9PSENJMTM5NAotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdmlkZW8gZGV2aWNlIHVzYWdlIGZvciBPSENJLTEzOTQgY2FyZHMuICBFbmFibGUKLQkgIHRoaXMgb3B0aW9uIG9ubHkgaWYgeW91IGhhdmUgYW4gSUVFRSAxMzk0IHZpZGVvIGRldmljZSBjb25uZWN0ZWQgdG8KLQkgIGFuIE9IQ0ktMTM5NCBjYXJkLgotCiBjb21tZW50ICJTQlAtMiBzdXBwb3J0IChmb3Igc3RvcmFnZSBkZXZpY2VzKSByZXF1aXJlcyBTQ1NJIgogCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgU0NTST1uCiAKIGNvbmZpZyBJRUVFMTM5NF9TQlAyCi0JdHJpc3RhdGUgIlNCUC0yIHN1cHBvcnQgKEhhcmRkaXNrcyBldGMuKSIKKwl0cmlzdGF0ZSAiU3RvcmFnZSBkZXZpY2VzIChTQlAtMiBwcm90b2NvbCkiCiAJZGVwZW5kcyBvbiBJRUVFMTM5NCAmJiBTQ1NJCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB5b3UgdG8gdXNlIFNCUC0yIGRldmljZXMgY29ubmVjdGVkIHRvIGFuIElFRUUKQEAgLTEyNywyNCArMTE4LDQ3IEBACiAKIAkgIFRoZSBtb2R1bGUgaXMgY2FsbGVkIGV0aDEzOTQgYWx0aG91Z2ggaXQgZG9lcyBub3QgZW11bGF0ZSBFdGhlcm5ldC4KIAorY29uZmlnIElFRUUxMzk0X1JBV0lPCisJdHJpc3RhdGUgInJhdzEzOTQgdXNlcnNwYWNlIGludGVyZmFjZSIKKwlkZXBlbmRzIG9uIElFRUUxMzk0CisJaGVscAorCSAgVGhpcyBvcHRpb24gYWRkcyBzdXBwb3J0IGZvciB0aGUgcmF3MTM5NCBkZXZpY2UgZmlsZSB3aGljaCBlbmFibGVzCisJICBkaXJlY3QgY29tbXVuaWNhdGlvbiBvZiB1c2VyIHByb2dyYW1zIHdpdGggSUVFRSAxMzk0IGRldmljZXMKKwkgIChpc29jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzKS4gIEFsbW9zdCBhbGwgYXBwbGljYXRpb24gcHJvZ3JhbXMKKwkgIHdoaWNoIGFjY2VzcyBGaXJlV2lyZSByZXF1aXJlIHRoaXMgb3B0aW9uLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBzYXkgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUKKwkgIGNhbGxlZCByYXcxMzk0LgorCitjb25maWcgSUVFRTEzOTRfVklERU8xMzk0CisJdHJpc3RhdGUgInZpZGVvMTM5NCB1c2Vyc3BhY2UgaW50ZXJmYWNlIgorCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgSUVFRTEzOTRfT0hDSTEzOTQKKwloZWxwCisJICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIHRoZSB2aWRlbzEzOTQgZGV2aWNlIGZpbGVzIHdoaWNoIGVuYWJsZQorCSAgaXNvY2hyb25vdXMgY29tbXVuaWNhdGlvbiBvZiB1c2VyIHByb2dyYW1zIHdpdGggSUVFRSAxMzk0IGRldmljZXMsCisJICBlc3BlY2lhbGx5IHZpZGVvIGNhcHR1cmUgb3IgZXhwb3J0LiAgVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCBieSBhbGwKKwkgIGxpYmRjMTM5NCBiYXNlZCBwcm9ncmFtcyBhbmQgYnkgc2V2ZXJhbCBvdGhlciBwcm9ncmFtcywgaW4gYWRkaXRpb24gdG8KKwkgIHRoZSByYXcxMzk0IGludGVyZmFjZS4gIEl0IGlzIGdlbmVyYWxseSBub3QgcmVxdWlyZWQgZm9yIERWIGNhcHR1cmUuCisKKwkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIHNheSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZQorCSAgY2FsbGVkIHZpZGVvMTM5NC4KKwogY29uZmlnIElFRUUxMzk0X0RWMTM5NAotCXRyaXN0YXRlICJPSENJLURWIEkvTyBzdXBwb3J0IChkZXByZWNhdGVkKSIKKwl0cmlzdGF0ZSAiZHYxMzk0IHVzZXJzcGFjZSBpbnRlcmZhY2UgKGRlcHJlY2F0ZWQpIgogCWRlcGVuZHMgb24gSUVFRTEzOTQgJiYgSUVFRTEzOTRfT0hDSTEzOTQKIAloZWxwCiAJICBUaGUgZHYxMzk0IGRyaXZlciBpcyB1bnN1cHBvcnRlZCBhbmQgbWF5IGJlIHJlbW92ZWQgZnJvbSBMaW51eCBpbiBhCiAJICBmdXR1cmUgcmVsZWFzZS4gIEl0cyBmdW5jdGlvbmFsaXR5IGlzIG5vdyBwcm92aWRlZCBieSByYXcxMzk0IHRvZ2V0aGVyCiAJICB3aXRoIGxpYnJhcmllcyBzdWNoIGFzIGxpYmllYzYxODgzLgogCi1jb25maWcgSUVFRTEzOTRfUkFXSU8KLQl0cmlzdGF0ZSAiUmF3IElFRUUxMzk0IEkvTyBzdXBwb3J0IgorY29uZmlnIElFRUUxMzk0X1ZFUkJPU0VERUJVRworCWJvb2wgIkV4Y2Vzc2l2ZSBkZWJ1Z2dpbmcgb3V0cHV0IgogCWRlcGVuZHMgb24gSUVFRTEzOTQKIAloZWxwCi0JICBUaGlzIG9wdGlvbiBhZGRzIHN1cHBvcnQgZm9yIHRoZSByYXcxMzk0IGRldmljZSBmaWxlIHdoaWNoIGVuYWJsZXMKLQkgIGRpcmVjdCBjb21tdW5pY2F0aW9uIG9mIHVzZXIgcHJvZ3JhbXMgd2l0aCB0aGUgSUVFRSAxMzk0IGJ1cyBhbmQgdGh1cwotCSAgd2l0aCB0aGUgYXR0YWNoZWQgcGVyaXBoZXJhbHMuICBBbG1vc3QgYWxsIGFwcGxpY2F0aW9uIHByb2dyYW1zIHdoaWNoCi0JICBhY2Nlc3MgRmlyZVdpcmUgcmVxdWlyZSB0aGlzIG9wdGlvbi4KKwkgIElmIHlvdSBzYXkgWSBoZXJlLCB5b3Ugd2lsbCBnZXQgdmVyeSB2ZXJib3NlIGRlYnVnZ2luZyBsb2dzIGZyb20gdGhlCisJICBpZWVlMTM5NCBkcml2ZXJzLCBpbmNsdWRpbmcgc2VudCBhbmQgcmVjZWl2ZWQgcGFja2V0IGhlYWRlcnMuICBUaGlzCisJICB3aWxsIHF1aWNrbHkgcmVzdWx0IGluIGxhcmdlIGFtb3VudHMgb2YgZGF0YSBzZW50IHRvIHRoZSBzeXN0ZW0gbG9nLgogCi0JICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBzYXkgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUKLQkgIGNhbGxlZCByYXcxMzk0LgorCSAgU2F5IFkgaWYgeW91IHJlYWxseSBuZWVkIHRoZSBkZWJ1Z2dpbmcgb3V0cHV0LiAgRXZlcnlvbmUgZWxzZSBzYXlzIE4uCiAKIGVuZG1lbnUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYwppbmRleCA3ODFlYTU5Li4wOWEyYmVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jCkBAIC00LDI4ICs0LDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSwgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSW50ZWwgQ29ycG9yYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLSAqIFRoaXMgU29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgb25lIG9mIHRoZSBmb2xsb3dpbmcgbGljZW5zZXM6CisgKiBUaGlzIHNvZnR3YXJlIGlzIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYSBjaG9pY2Ugb2Ygb25lIG9mIHR3bworICogbGljZW5zZXMuICBZb3UgbWF5IGNob29zZSB0byBiZSBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorICogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIsIGF2YWlsYWJsZSBmcm9tIHRoZSBmaWxlCisgKiBDT1BZSU5HIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLCBvciB0aGUKKyAqIE9wZW5JQi5vcmcgQlNEIGxpY2Vuc2UgYmVsb3c6CiAgKgotICogMSkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiQ29tbW9uIFB1YmxpYyBMaWNlbnNlIDEuMCIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2NwbC5waHAuCisgKiAgICAgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvcgorICogICAgIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZworICogICAgIGNvbmRpdGlvbnMgYXJlIG1ldDoKICAqCi0gKiAyKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJUaGUgQlNEIExpY2Vuc2UiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lci4KICAqCi0gKiAzKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBWZXJzaW9uIDIiIGEKLSAqICAgIGNvcHkgb2Ygd2hpY2ggaXMgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5waHAuCisgKiAgICAgIC0gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICAgICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIExpY2Vuc2VlIGhhcyB0aGUgcmlnaHQgdG8gY2hvb3NlIG9uZSBvZiB0aGUgYWJvdmUgbGljZW5zZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSBhbmQgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMuCi0gKgotICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIGJvdGggdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgpAQCAtMTAwLDYgKzEwNSw3IEBACiAJbWVtY3B5KGRldl9hZGRyLT5icm9hZGNhc3QsIGRldi0+YnJvYWRjYXN0LCBNQVhfQUREUl9MRU4pOwogCWlmIChkc3RfZGV2X2FkZHIpCiAJCW1lbWNweShkZXZfYWRkci0+ZHN0X2Rldl9hZGRyLCBkc3RfZGV2X2FkZHIsIE1BWF9BRERSX0xFTik7CisJZGV2X2FkZHItPnNyY19kZXYgPSBkZXY7CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHJkbWFfY29weV9hZGRyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FnZW50LmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZ2VudC5oCmluZGV4IGZiOWVkMTQuLjY2NjkyODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FnZW50LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWdlbnQuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogYWdlbnQuaCAxMzg5IDIwMDQtMTItMjcgMjI6NTY6NDdaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBfX0FHRU5UX0hfCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY2FjaGUuYwppbmRleCBlODVmNzAxLi42ODg4MzU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jYWNoZS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NhY2hlLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGNhY2hlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbS5jCmluZGV4IGE0N2ZlNjQuLjU1NzM4ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY20uYwpAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogY20uYyA0MzExIDIwMDUtMTItMDUgMTg6NDI6MDFaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9jbWEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCmluZGV4IDY3MWYxMzcuLmFlMTFkNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NtYS5jCkBAIC00LDI5ICs0LDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwNSwgTWVsbGFub3ggVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9jb21wbGV0aW9uLmg+CkBAIC0xMjYsOCArMTMwLDcgQEAKIAogCXN0cnVjdCBjb21wbGV0aW9uCWNvbXA7CiAJYXRvbWljX3QJCXJlZmNvdW50OwotCXdhaXRfcXVldWVfaGVhZF90CXdhaXRfcmVtb3ZlOwotCWF0b21pY190CQlkZXZfcmVtb3ZlOworCXN0cnVjdCBtdXRleAkJaGFuZGxlcl9tdXRleDsKIAogCWludAkJCWJhY2tsb2c7CiAJaW50CQkJdGltZW91dF9tczsKQEAgLTM1MSwyNiArMzU0LDE1IEBACiAJCWNvbXBsZXRlKCZpZF9wcml2LT5jb21wKTsKIH0KIAotc3RhdGljIGludCBjbWFfZGlzYWJsZV9yZW1vdmUoc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdiwKK3N0YXRpYyBpbnQgY21hX2Rpc2FibGVfY2FsbGJhY2soc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdiwKIAkJCSAgICAgIGVudW0gY21hX3N0YXRlIHN0YXRlKQogewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IHJldDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZpZF9wcml2LT5sb2NrLCBmbGFncyk7Ci0JaWYgKGlkX3ByaXYtPnN0YXRlID09IHN0YXRlKSB7Ci0JCWF0b21pY19pbmMoJmlkX3ByaXYtPmRldl9yZW1vdmUpOwotCQlyZXQgPSAwOwotCX0gZWxzZQotCQlyZXQgPSAtRUlOVkFMOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlkX3ByaXYtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBjbWFfZW5hYmxlX3JlbW92ZShzdHJ1Y3QgcmRtYV9pZF9wcml2YXRlICppZF9wcml2KQotewotCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZpZF9wcml2LT5kZXZfcmVtb3ZlKSkKLQkJd2FrZV91cCgmaWRfcHJpdi0+d2FpdF9yZW1vdmUpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCWlmIChpZF9wcml2LT5zdGF0ZSAhPSBzdGF0ZSkgeworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgY21hX2hhc19jbV9kZXYoc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSAqaWRfcHJpdikKQEAgLTM5NSw4ICszODcsNyBAQAogCW11dGV4X2luaXQoJmlkX3ByaXYtPnFwX211dGV4KTsKIAlpbml0X2NvbXBsZXRpb24oJmlkX3ByaXYtPmNvbXApOwogCWF0b21pY19zZXQoJmlkX3ByaXYtPnJlZmNvdW50LCAxKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZpZF9wcml2LT53YWl0X3JlbW92ZSk7Ci0JYXRvbWljX3NldCgmaWRfcHJpdi0+ZGV2X3JlbW92ZSwgMCk7CisJbXV0ZXhfaW5pdCgmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJSU5JVF9MSVNUX0hFQUQoJmlkX3ByaXYtPmxpc3Rlbl9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmaWRfcHJpdi0+bWNfbGlzdCk7CiAJZ2V0X3JhbmRvbV9ieXRlcygmaWRfcHJpdi0+c2VxX251bSwgc2l6ZW9mIGlkX3ByaXYtPnNlcV9udW0pOwpAQCAtOTIzLDcgKzkxNCw3IEBACiAJc3RydWN0IHJkbWFfY21fZXZlbnQgZXZlbnQ7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC05NzAsNyArOTYxLDcgQEAKIAkJZXZlbnQucGFyYW0uY29ubi5wcml2YXRlX2RhdGFfbGVuID0gSUJfQ01fUkVKX1BSSVZBVEVfREFUQV9TSVpFOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZCIsCisJCXByaW50ayhLRVJOX0VSUiAiUkRNQSBDTUE6IHVuZXhwZWN0ZWQgSUIgQ00gZXZlbnQ6ICVkXG4iLAogCQkgICAgICAgaWJfZXZlbnQtPmV2ZW50KTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtOTgwLDEyICs5NzEsMTIgQEAKIAkJLyogRGVzdHJveSB0aGUgQ00gSUQgYnkgcmV0dXJuaW5nIGEgbm9uLXplcm8gdmFsdWUuICovCiAJCWlkX3ByaXYtPmNtX2lkLmliID0gTlVMTDsKIAkJY21hX2V4Y2goaWRfcHJpdiwgQ01BX0RFU1RST1lJTkcpOwotCQljbWFfZW5hYmxlX3JlbW92ZShpZF9wcml2KTsKKwkJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybiByZXQ7CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtOTk4LDYgKzk4OSw3IEBACiAJdW5pb24gY21hX2lwX2FkZHIgKnNyYywgKmRzdDsKIAlfX2JlMTYgcG9ydDsKIAl1OCBpcF92ZXI7CisJaW50IHJldDsKIAogCWlmIChjbWFfZ2V0X25ldF9pbmZvKGliX2V2ZW50LT5wcml2YXRlX2RhdGEsIGxpc3Rlbl9pZC0+cHMsCiAJCQkgICAgICZpcF92ZXIsICZwb3J0LCAmc3JjLCAmZHN0KSkKQEAgLTEwMjIsMTAgKzEwMTQsMTEgQEAKIAlpZiAocnQtPm51bV9wYXRocyA9PSAyKQogCQlydC0+cGF0aF9yZWNbMV0gPSAqaWJfZXZlbnQtPnBhcmFtLnJlcV9yY3ZkLmFsdGVybmF0ZV9wYXRoOwogCi0JaWJfYWRkcl9zZXRfc2dpZCgmcnQtPmFkZHIuZGV2X2FkZHIsICZydC0+cGF0aF9yZWNbMF0uc2dpZCk7CiAJaWJfYWRkcl9zZXRfZGdpZCgmcnQtPmFkZHIuZGV2X2FkZHIsICZydC0+cGF0aF9yZWNbMF0uZGdpZCk7Ci0JaWJfYWRkcl9zZXRfcGtleSgmcnQtPmFkZHIuZGV2X2FkZHIsIGJlMTZfdG9fY3B1KHJ0LT5wYXRoX3JlY1swXS5wa2V5KSk7Ci0JcnQtPmFkZHIuZGV2X2FkZHIuZGV2X3R5cGUgPSBSRE1BX05PREVfSUJfQ0E7CisJcmV0ID0gcmRtYV90cmFuc2xhdGVfaXAoJmlkLT5yb3V0ZS5hZGRyLnNyY19hZGRyLAorCQkJCSZpZC0+cm91dGUuYWRkci5kZXZfYWRkcik7CisJaWYgKHJldCkKKwkJZ290byBkZXN0cm95X2lkOwogCiAJaWRfcHJpdiA9IGNvbnRhaW5lcl9vZihpZCwgc3RydWN0IHJkbWFfaWRfcHJpdmF0ZSwgaWQpOwogCWlkX3ByaXYtPnN0YXRlID0gQ01BX0NPTk5FQ1Q7CkBAIC0xMDk1LDcgKzEwODgsNyBAQAogCWludCBvZmZzZXQsIHJldDsKIAogCWxpc3Rlbl9pZCA9IGNtX2lkLT5jb250ZXh0OwotCWlmIChjbWFfZGlzYWJsZV9yZW1vdmUobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2sobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwpAQCAtMTExNiw3ICsxMTA5LDcgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JYXRvbWljX2luYygmY29ubl9pZC0+ZGV2X3JlbW92ZSk7CisJbXV0ZXhfbG9ja19uZXN0ZWQoJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgsIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsKIAltdXRleF9sb2NrKCZsb2NrKTsKIAlyZXQgPSBjbWFfYWNxdWlyZV9kZXYoY29ubl9pZCk7CiAJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKQEAgLTExMzgsNyArMTEzMSw3IEBACiAJCSAgICAhY21hX2lzX3VkX3BzKGNvbm5faWQtPmlkLnBzKSkKIAkJCWliX3NlbmRfY21fbXJhKGNtX2lkLCBDTUFfQ01fTVJBX1NFVFRJTkcsIE5VTEwsIDApOwogCQltdXRleF91bmxvY2soJmxvY2spOwotCQljbWFfZW5hYmxlX3JlbW92ZShjb25uX2lkKTsKKwkJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC0xMTQ3LDExICsxMTQwLDExIEBACiAKIHJlbGVhc2VfY29ubl9pZDoKIAljbWFfZXhjaChjb25uX2lkLCBDTUFfREVTVFJPWUlORyk7Ci0JY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKIAlyZG1hX2Rlc3Ryb3lfaWQoJmNvbm5faWQtPmlkKTsKIAogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGxpc3Rlbl9pZCk7CisJbXV0ZXhfdW5sb2NrKCZsaXN0ZW5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEyMTcsNyArMTIxMCw3IEBACiAJc3RydWN0IHNvY2thZGRyX2luICpzaW47CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC0xMjYxLDEyICsxMjU0LDEyIEBACiAJCS8qIERlc3Ryb3kgdGhlIENNIElEIGJ5IHJldHVybmluZyBhIG5vbi16ZXJvIHZhbHVlLiAqLwogCQlpZF9wcml2LT5jbV9pZC5pdyA9IE5VTEw7CiAJCWNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVNUUk9ZSU5HKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZCgmaWRfcHJpdi0+aWQpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTI4Miw3ICsxMjc1LDcgQEAKIAlzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgYXR0cjsKIAogCWxpc3Rlbl9pZCA9IGNtX2lkLT5jb250ZXh0OwotCWlmIChjbWFfZGlzYWJsZV9yZW1vdmUobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2sobGlzdGVuX2lkLCBDTUFfTElTVEVOKSkKIAkJcmV0dXJuIC1FQ09OTkFCT1JURUQ7CiAKIAkvKiBDcmVhdGUgYSBuZXcgUkRNQSBpZCBmb3IgdGhlIG5ldyBJVyBDTSBJRCAqLwpAQCAtMTI5NCwxOSArMTI4NywxOSBAQAogCQlnb3RvIG91dDsKIAl9CiAJY29ubl9pZCA9IGNvbnRhaW5lcl9vZihuZXdfY21faWQsIHN0cnVjdCByZG1hX2lkX3ByaXZhdGUsIGlkKTsKLQlhdG9taWNfaW5jKCZjb25uX2lkLT5kZXZfcmVtb3ZlKTsKKwltdXRleF9sb2NrX25lc3RlZCgmY29ubl9pZC0+aGFuZGxlcl9tdXRleCwgU0lOR0xFX0RFUFRIX05FU1RJTkcpOwogCWNvbm5faWQtPnN0YXRlID0gQ01BX0NPTk5FQ1Q7CiAKIAlkZXYgPSBpcF9kZXZfZmluZCgmaW5pdF9uZXQsIGl3X2V2ZW50LT5sb2NhbF9hZGRyLnNpbl9hZGRyLnNfYWRkcik7CiAJaWYgKCFkZXYpIHsKIAkJcmV0ID0gLUVBRERSTk9UQVZBSUw7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQobmV3X2NtX2lkKTsKIAkJZ290byBvdXQ7CiAJfQogCXJldCA9IHJkbWFfY29weV9hZGRyKCZjb25uX2lkLT5pZC5yb3V0ZS5hZGRyLmRldl9hZGRyLCBkZXYsIE5VTEwpOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzE1LDcgKzEzMDgsNyBAQAogCXJldCA9IGNtYV9hY3F1aXJlX2Rldihjb25uX2lkKTsKIAltdXRleF91bmxvY2soJmxvY2spOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzMxLDcgKzEzMjQsNyBAQAogCiAJcmV0ID0gaWJfcXVlcnlfZGV2aWNlKGNvbm5faWQtPmlkLmRldmljZSwgJmF0dHIpOwogCWlmIChyZXQpIHsKLQkJY21hX2VuYWJsZV9yZW1vdmUoY29ubl9pZCk7CisJCW11dGV4X3VubG9jaygmY29ubl9pZC0+aGFuZGxlcl9tdXRleCk7CiAJCXJkbWFfZGVzdHJveV9pZChuZXdfY21faWQpOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMzQ3LDE0ICsxMzQwLDE3IEBACiAJCS8qIFVzZXIgd2FudHMgdG8gZGVzdHJveSB0aGUgQ00gSUQgKi8KIAkJY29ubl9pZC0+Y21faWQuaXcgPSBOVUxMOwogCQljbWFfZXhjaChjb25uX2lkLCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGNvbm5faWQpOworCQltdXRleF91bmxvY2soJmNvbm5faWQtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmNvbm5faWQtPmlkKTsKKwkJZ290byBvdXQ7CiAJfQogCisJbXV0ZXhfdW5sb2NrKCZjb25uX2lkLT5oYW5kbGVyX211dGV4KTsKKwogb3V0OgogCWlmIChkZXYpCiAJCWRldl9wdXQoZGV2KTsKLQljbWFfZW5hYmxlX3JlbW92ZShsaXN0ZW5faWQpOworCW11dGV4X3VubG9jaygmbGlzdGVuX2lkLT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xNDQ2LDcgKzE0NDIsNyBAQAogCXJldCA9IHJkbWFfbGlzdGVuKGlkLCBpZF9wcml2LT5iYWNrbG9nKTsKIAlpZiAocmV0KQogCQlwcmludGsoS0VSTl9XQVJOSU5HICJSRE1BIENNQTogY21hX2xpc3Rlbl9vbl9kZXYsIGVycm9yICVkLCAiCi0JCSAgICAgICAibGlzdGVuaW5nIG9uIGRldmljZSAlcyIsIHJldCwgY21hX2Rldi0+ZGV2aWNlLT5uYW1lKTsKKwkJICAgICAgICJsaXN0ZW5pbmcgb24gZGV2aWNlICVzXG4iLCByZXQsIGNtYV9kZXYtPmRldmljZS0+bmFtZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNtYV9saXN0ZW5fb25fYWxsKHN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYpCkBAIC0xNTg2LDcgKzE1ODIsNyBAQAogCXN0cnVjdCByZG1hX2lkX3ByaXZhdGUgKmlkX3ByaXYgPSB3b3JrLT5pZDsKIAlpbnQgZGVzdHJveSA9IDA7CiAKLQlhdG9taWNfaW5jKCZpZF9wcml2LT5kZXZfcmVtb3ZlKTsKKwltdXRleF9sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlpZiAoIWNtYV9jb21wX2V4Y2goaWRfcHJpdiwgd29yay0+b2xkX3N0YXRlLCB3b3JrLT5uZXdfc3RhdGUpKQogCQlnb3RvIG91dDsKIApAQCAtMTU5NSw3ICsxNTkxLDcgQEAKIAkJZGVzdHJveSA9IDE7CiAJfQogb3V0OgotCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJY21hX2RlcmVmX2lkKGlkX3ByaXYpOwogCWlmIChkZXN0cm95KQogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKQEAgLTE3NTgsNyArMTc1NCw3IEBACiAJc3RydWN0IHJkbWFfY21fZXZlbnQgZXZlbnQ7CiAKIAltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YgZXZlbnQpOwotCWF0b21pY19pbmMoJmlkX3ByaXYtPmRldl9yZW1vdmUpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCiAJLyoKIAkgKiBHcmFiIG11dGV4IHRvIGJsb2NrIHJkbWFfZGVzdHJveV9pZCgpIGZyb20gcmVtb3ZpbmcgdGhlIGRldmljZSB3aGlsZQpAQCAtMTc4NywxMyArMTc4MywxMyBAQAogCiAJaWYgKGlkX3ByaXYtPmlkLmV2ZW50X2hhbmRsZXIoJmlkX3ByaXYtPmlkLCAmZXZlbnQpKSB7CiAJCWNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVNUUk9ZSU5HKTsKLQkJY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJCW11dGV4X3VubG9jaygmaWRfcHJpdi0+aGFuZGxlcl9tdXRleCk7CiAJCWNtYV9kZXJlZl9pZChpZF9wcml2KTsKIAkJcmRtYV9kZXN0cm95X2lkKCZpZF9wcml2LT5pZCk7CiAJCXJldHVybjsKIAl9CiBvdXQ6Ci0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAljbWFfZGVyZWZfaWQoaWRfcHJpdik7CiB9CiAKQEAgLTIxMjAsNyArMjExNiw3IEBACiAJc3RydWN0IGliX2NtX3NpZHJfcmVwX2V2ZW50X3BhcmFtICpyZXAgPSAmaWJfZXZlbnQtPnBhcmFtLnNpZHJfcmVwX3JjdmQ7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9DT05ORUNUKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0NPTk5FQ1QpKQogCQlyZXR1cm4gMDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CkBAIC0yMTUxLDcgKzIxNDcsNyBAQAogCQlldmVudC5zdGF0dXMgPSAwOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgIlJETUEgQ01BOiB1bmV4cGVjdGVkIElCIENNIGV2ZW50OiAlZCIsCisJCXByaW50ayhLRVJOX0VSUiAiUkRNQSBDTUE6IHVuZXhwZWN0ZWQgSUIgQ00gZXZlbnQ6ICVkXG4iLAogCQkgICAgICAgaWJfZXZlbnQtPmV2ZW50KTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMjE2MSwxMiArMjE1NywxMiBAQAogCQkvKiBEZXN0cm95IHRoZSBDTSBJRCBieSByZXR1cm5pbmcgYSBub24temVybyB2YWx1ZS4gKi8KIAkJaWRfcHJpdi0+Y21faWQuaWIgPSBOVUxMOwogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKIAkJcmV0dXJuIHJldDsKIAl9CiBvdXQ6Ci0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yNTY0LDggKzI1NjAsOCBAQAogCWludCByZXQ7CiAKIAlpZF9wcml2ID0gbWMtPmlkX3ByaXY7Ci0JaWYgKGNtYV9kaXNhYmxlX3JlbW92ZShpZF9wcml2LCBDTUFfQUREUl9CT1VORCkgJiYKLQkgICAgY21hX2Rpc2FibGVfcmVtb3ZlKGlkX3ByaXYsIENNQV9BRERSX1JFU09MVkVEKSkKKwlpZiAoY21hX2Rpc2FibGVfY2FsbGJhY2soaWRfcHJpdiwgQ01BX0FERFJfQk9VTkQpICYmCisJICAgIGNtYV9kaXNhYmxlX2NhbGxiYWNrKGlkX3ByaXYsIENNQV9BRERSX1JFU09MVkVEKSkKIAkJcmV0dXJuIDA7CiAKIAltdXRleF9sb2NrKCZpZF9wcml2LT5xcF9tdXRleCk7CkBAIC0yNTkwLDEyICsyNTg2LDEyIEBACiAJcmV0ID0gaWRfcHJpdi0+aWQuZXZlbnRfaGFuZGxlcigmaWRfcHJpdi0+aWQsICZldmVudCk7CiAJaWYgKHJldCkgewogCQljbWFfZXhjaChpZF9wcml2LCBDTUFfREVTVFJPWUlORyk7Ci0JCWNtYV9lbmFibGVfcmVtb3ZlKGlkX3ByaXYpOworCQltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCQlyZG1hX2Rlc3Ryb3lfaWQoJmlkX3ByaXYtPmlkKTsKIAkJcmV0dXJuIDA7CiAJfQogCi0JY21hX2VuYWJsZV9yZW1vdmUoaWRfcHJpdik7CisJbXV0ZXhfdW5sb2NrKCZpZF9wcml2LT5oYW5kbGVyX211dGV4KTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjc1NCw2ICsyNzUwLDcgQEAKIHsKIAlzdHJ1Y3QgcmRtYV9jbV9ldmVudCBldmVudDsKIAllbnVtIGNtYV9zdGF0ZSBzdGF0ZTsKKwlpbnQgcmV0ID0gMDsKIAogCS8qIFJlY29yZCB0aGF0IHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBkZXZpY2UgKi8KIAlzdGF0ZSA9IGNtYV9leGNoKGlkX3ByaXYsIENNQV9ERVZJQ0VfUkVNT1ZBTCk7CkBAIC0yNzYxLDE1ICsyNzU4LDE4IEBACiAJCXJldHVybiAwOwogCiAJY21hX2NhbmNlbF9vcGVyYXRpb24oaWRfcHJpdiwgc3RhdGUpOwotCXdhaXRfZXZlbnQoaWRfcHJpdi0+d2FpdF9yZW1vdmUsICFhdG9taWNfcmVhZCgmaWRfcHJpdi0+ZGV2X3JlbW92ZSkpOworCW11dGV4X2xvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOwogCiAJLyogQ2hlY2sgZm9yIGRlc3RydWN0aW9uIGZyb20gYW5vdGhlciBjYWxsYmFjay4gKi8KIAlpZiAoIWNtYV9jb21wKGlkX3ByaXYsIENNQV9ERVZJQ0VfUkVNT1ZBTCkpCi0JCXJldHVybiAwOworCQlnb3RvIG91dDsKIAogCW1lbXNldCgmZXZlbnQsIDAsIHNpemVvZiBldmVudCk7CiAJZXZlbnQuZXZlbnQgPSBSRE1BX0NNX0VWRU5UX0RFVklDRV9SRU1PVkFMOwotCXJldHVybiBpZF9wcml2LT5pZC5ldmVudF9oYW5kbGVyKCZpZF9wcml2LT5pZCwgJmV2ZW50KTsKKwlyZXQgPSBpZF9wcml2LT5pZC5ldmVudF9oYW5kbGVyKCZpZF9wcml2LT5pZCwgJmV2ZW50KTsKK291dDoKKwltdXRleF91bmxvY2soJmlkX3ByaXYtPmhhbmRsZXJfbXV0ZXgpOworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIGNtYV9wcm9jZXNzX3JlbW92ZShzdHJ1Y3QgY21hX2RldmljZSAqY21hX2RldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2NvcmVfcHJpdi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKaW5kZXggN2FkNDdhNC4uMDVhYzM2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvY29yZV9wcml2LmgKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGNvcmVfcHJpdi5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaWZuZGVmIF9DT1JFX1BSSVZfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZGV2aWNlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwppbmRleCA1YWM1ZmZlLi43OTEzYjgwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9kZXZpY2UuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogZGV2aWNlLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9mbXJfcG9vbC5jCmluZGV4IDEyODZkYzEuLjQ1MDcwNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2Ztcl9wb29sLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvZm1yX3Bvb2wuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogZm1yX3Bvb2wuYyAyNzMwIDIwMDUtMDYtMjggMTY6NDM6MDNaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWQuYwppbmRleCBmYmUxNmQ1Li4xYWRmMmVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWQuYwpAQCAtNzQ3LDcgKzc0Nyw5IEBACiAJCWJyZWFrOwogCWNhc2UgSUJfTUFEX1JFU1VMVF9TVUNDRVNTIHwgSUJfTUFEX1JFU1VMVF9DT05TVU1FRDoKIAkJa21lbV9jYWNoZV9mcmVlKGliX21hZF9jYWNoZSwgbWFkX3ByaXYpOwotCQlicmVhazsKKwkJa2ZyZWUobG9jYWwpOworCQlyZXQgPSAxOworCQlnb3RvIG91dDsKIAljYXNlIElCX01BRF9SRVNVTFRfU1VDQ0VTUzoKIAkJLyogVHJlYXQgbGlrZSBhbiBpbmNvbWluZyByZWNlaXZlIE1BRCAqLwogCQlwb3J0X3ByaXYgPSBpYl9nZXRfbWFkX3BvcnQobWFkX2FnZW50X3ByaXYtPmFnZW50LmRldmljZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9wcml2LmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcHJpdi5oCmluZGV4IDhiNzUwMTAuLjA1Y2UzMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9wcml2LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3ByaXYuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbWFkX3ByaXYuaCA1NTk2IDIwMDYtMDMtMDMgMDE6MDA6MDdaIHNlYW4uaGVmdHkgJAogICovCiAKICNpZm5kZWYgX19JQl9NQURfUFJJVl9IX18KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5jCmluZGV4IGE1ZTJhMzEuLmQwZWY3ZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbWFkX3JtcHAuYyAxOTIxIDIwMDUtMDMtMDIgMjI6NTg6NDRaIHNlYW4uaGVmdHkgJAogICovCiAKICNpbmNsdWRlICJtYWRfcHJpdi5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL21hZF9ybXBwLmgKaW5kZXggZjA2MTZmZC4uM2QzMzZiZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvbWFkX3JtcHAuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9tYWRfcm1wcC5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtYWRfcm1wcC5oIDE5MjEgMjAwNS0wMi0yNSAyMjo1ODo0NFogc2Vhbi5oZWZ0eSAkCiAgKi8KIAogI2lmbmRlZiBfX01BRF9STVBQX0hfXwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvcGFja2VyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYwppbmRleCBjOTcyZDcyLi4wMTliZDRiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9wYWNrZXIuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogcGFja2VyLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zYV9xdWVyeS5jCmluZGV4IGNmNDc0ZWMuLjEzNDFkZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3NhX3F1ZXJ5LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc2FfcXVlcnkuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogc2FfcXVlcnkuYyAyODExIDIwMDUtMDctMDYgMTg6MTE6NDNaIGhhbHIgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTM2MSw3ICszNTksNyBAQAogewogCXN0cnVjdCBpYl9zYV9wb3J0ICpwb3J0ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpYl9zYV9wb3J0LCB1cGRhdGVfdGFzayk7Ci0Jc3RydWN0IGliX3NhX3NtX2FoICpuZXdfYWgsICpvbGRfYWg7CisJc3RydWN0IGliX3NhX3NtX2FoICpuZXdfYWg7CiAJc3RydWN0IGliX3BvcnRfYXR0ciBwb3J0X2F0dHI7CiAJc3RydWN0IGliX2FoX2F0dHIgICBhaF9hdHRyOwogCkBAIC0zOTcsMTIgKzM5NSw5IEBACiAJfQogCiAJc3Bpbl9sb2NrX2lycSgmcG9ydC0+YWhfbG9jayk7Ci0Jb2xkX2FoID0gcG9ydC0+c21fYWg7CiAJcG9ydC0+c21fYWggPSBuZXdfYWg7CiAJc3Bpbl91bmxvY2tfaXJxKCZwb3J0LT5haF9sb2NrKTsKIAotCWlmIChvbGRfYWgpCi0JCWtyZWZfcHV0KCZvbGRfYWgtPnJlZiwgZnJlZV9zbV9haCk7CiB9CiAKIHN0YXRpYyB2b2lkIGliX3NhX2V2ZW50KHN0cnVjdCBpYl9ldmVudF9oYW5kbGVyICpoYW5kbGVyLCBzdHJ1Y3QgaWJfZXZlbnQgKmV2ZW50KQpAQCAtNDEzLDggKzQwOCwxNyBAQAogCSAgICBldmVudC0+ZXZlbnQgPT0gSUJfRVZFTlRfUEtFWV9DSEFOR0UgfHwKIAkgICAgZXZlbnQtPmV2ZW50ID09IElCX0VWRU5UX1NNX0NIQU5HRSAgIHx8CiAJICAgIGV2ZW50LT5ldmVudCA9PSBJQl9FVkVOVF9DTElFTlRfUkVSRUdJU1RFUikgewotCQlzdHJ1Y3QgaWJfc2FfZGV2aWNlICpzYV9kZXY7Ci0JCXNhX2RldiA9IGNvbnRhaW5lcl9vZihoYW5kbGVyLCB0eXBlb2YoKnNhX2RldiksIGV2ZW50X2hhbmRsZXIpOworCQl1bnNpZ25lZCBsb25nIGZsYWdzOworCQlzdHJ1Y3QgaWJfc2FfZGV2aWNlICpzYV9kZXYgPQorCQkJY29udGFpbmVyX29mKGhhbmRsZXIsIHR5cGVvZigqc2FfZGV2KSwgZXZlbnRfaGFuZGxlcik7CisJCXN0cnVjdCBpYl9zYV9wb3J0ICpwb3J0ID0KKwkJCSZzYV9kZXYtPnBvcnRbZXZlbnQtPmVsZW1lbnQucG9ydF9udW0gLSBzYV9kZXYtPnN0YXJ0X3BvcnRdOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5haF9sb2NrLCBmbGFncyk7CisJCWlmIChwb3J0LT5zbV9haCkKKwkJCWtyZWZfcHV0KCZwb3J0LT5zbV9haC0+cmVmLCBmcmVlX3NtX2FoKTsKKwkJcG9ydC0+c21fYWggPSBOVUxMOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5haF9sb2NrLCBmbGFncyk7CiAKIAkJc2NoZWR1bGVfd29yaygmc2FfZGV2LT5wb3J0W2V2ZW50LT5lbGVtZW50LnBvcnRfbnVtIC0KIAkJCQkJICAgIHNhX2Rldi0+c3RhcnRfcG9ydF0udXBkYXRlX3Rhc2spOwpAQCAtNTE5LDYgKzUyMywxMCBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcXVlcnktPnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKKwlpZiAoIXF1ZXJ5LT5wb3J0LT5zbV9haCkgeworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZxdWVyeS0+cG9ydC0+YWhfbG9jaywgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CiAJa3JlZl9nZXQoJnF1ZXJ5LT5wb3J0LT5zbV9haC0+cmVmKTsKIAlxdWVyeS0+c21fYWggPSBxdWVyeS0+cG9ydC0+c21fYWg7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVlcnktPnBvcnQtPmFoX2xvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9zeXNmcy5jCmluZGV4IDk1NzU2NTUuLjRkMTA0MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3N5c2ZzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvc3lzZnMuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogc3lzZnMuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgImNvcmVfcHJpdi5oIgpAQCAtNjY1LDYgKzY2MywxMjAgQEAKIAkuZGV2X3VldmVudCA9IGliX2RldmljZV91ZXZlbnQsCiB9OwogCisvKiBTaG93IGEgZ2l2ZW4gYW4gYXR0cmlidXRlIGluIHRoZSBzdGF0aXN0aWNzIGdyb3VwICovCitzdGF0aWMgc3NpemVfdCBzaG93X3Byb3RvY29sX3N0YXQoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2aWNlLAorCQkJICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYsCisJCQkgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBpYl9kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihkZXZpY2UsIHN0cnVjdCBpYl9kZXZpY2UsIGRldik7CisJdW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyBzdGF0czsKKwlzc2l6ZV90IHJldDsKKworCXJldCA9IGRldi0+Z2V0X3Byb3RvY29sX3N0YXRzKGRldiwgJnN0YXRzKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJWxsdVxuIiwKKwkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpICgodTY0ICopICZzdGF0cylbb2Zmc2V0XSk7Cit9CisKKy8qIGdlbmVyYXRlIGEgcmVhZC1vbmx5IGl3YXJwIHN0YXRpc3RpY3MgYXR0cmlidXRlICovCisjZGVmaW5lIElXX1NUQVRTX0VOVFJZKG5hbWUpCQkJCQkJXAorc3RhdGljIHNzaXplX3Qgc2hvd18jI25hbWUoc3RydWN0IGRldmljZSAqZGV2aWNlLAkJCVwKKwkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjaGFyICpidWYpCVwKK3sJCQkJCQkJCQlcCisJcmV0dXJuIHNob3dfcHJvdG9jb2xfc3RhdChkZXZpY2UsIGF0dHIsIGJ1ZiwJCQlcCisJCQkJICBvZmZzZXRvZihzdHJ1Y3QgaXdfcHJvdG9jb2xfc3RhdHMsIG5hbWUpIC8gXAorCQkJCSAgc2l6ZW9mICh1NjQpKTsJCQlcCit9CQkJCQkJCQkJXAorc3RhdGljIERFVklDRV9BVFRSKG5hbWUsIFNfSVJVR08sIHNob3dfIyNuYW1lLCBOVUxMKQorCitJV19TVEFUU19FTlRSWShpcEluUmVjZWl2ZXMpOworSVdfU1RBVFNfRU5UUlkoaXBJbkhkckVycm9ycyk7CitJV19TVEFUU19FTlRSWShpcEluVG9vQmlnRXJyb3JzKTsKK0lXX1NUQVRTX0VOVFJZKGlwSW5Ob1JvdXRlcyk7CitJV19TVEFUU19FTlRSWShpcEluQWRkckVycm9ycyk7CitJV19TVEFUU19FTlRSWShpcEluVW5rbm93blByb3Rvcyk7CitJV19TVEFUU19FTlRSWShpcEluVHJ1bmNhdGVkUGt0cyk7CitJV19TVEFUU19FTlRSWShpcEluRGlzY2FyZHMpOworSVdfU1RBVFNfRU5UUlkoaXBJbkRlbGl2ZXJzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0Rm9yd0RhdGFncmFtcyk7CitJV19TVEFUU19FTlRSWShpcE91dFJlcXVlc3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0RGlzY2FyZHMpOworSVdfU1RBVFNfRU5UUlkoaXBPdXROb1JvdXRlcyk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtVGltZW91dCk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtUmVxZHMpOworSVdfU1RBVFNfRU5UUlkoaXBSZWFzbU9Lcyk7CitJV19TVEFUU19FTlRSWShpcFJlYXNtRmFpbHMpOworSVdfU1RBVFNfRU5UUlkoaXBGcmFnT0tzKTsKK0lXX1NUQVRTX0VOVFJZKGlwRnJhZ0ZhaWxzKTsKK0lXX1NUQVRTX0VOVFJZKGlwRnJhZ0NyZWF0ZXMpOworSVdfU1RBVFNfRU5UUlkoaXBJbk1jYXN0UGt0cyk7CitJV19TVEFUU19FTlRSWShpcE91dE1jYXN0UGt0cyk7CitJV19TVEFUU19FTlRSWShpcEluQmNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKGlwT3V0QmNhc3RQa3RzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcFJ0b0FsZ29yaXRobSk7CitJV19TVEFUU19FTlRSWSh0Y3BSdG9NaW4pOworSVdfU1RBVFNfRU5UUlkodGNwUnRvTWF4KTsKK0lXX1NUQVRTX0VOVFJZKHRjcE1heENvbm4pOworSVdfU1RBVFNfRU5UUlkodGNwQWN0aXZlT3BlbnMpOworSVdfU1RBVFNfRU5UUlkodGNwUGFzc2l2ZU9wZW5zKTsKK0lXX1NUQVRTX0VOVFJZKHRjcEF0dGVtcHRGYWlscyk7CitJV19TVEFUU19FTlRSWSh0Y3BFc3RhYlJlc2V0cyk7CitJV19TVEFUU19FTlRSWSh0Y3BDdXJyRXN0YWIpOworSVdfU1RBVFNfRU5UUlkodGNwSW5TZWdzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcE91dFNlZ3MpOworSVdfU1RBVFNfRU5UUlkodGNwUmV0cmFuc1NlZ3MpOworSVdfU1RBVFNfRU5UUlkodGNwSW5FcnJzKTsKK0lXX1NUQVRTX0VOVFJZKHRjcE91dFJzdHMpOworCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqaXdfcHJvdG9fc3RhdHNfYXR0cnNbXSA9IHsKKwkmZGV2X2F0dHJfaXBJblJlY2VpdmVzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5IZHJFcnJvcnMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblRvb0JpZ0Vycm9ycy5hdHRyLAorCSZkZXZfYXR0cl9pcEluTm9Sb3V0ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkFkZHJFcnJvcnMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblVua25vd25Qcm90b3MuYXR0ciwKKwkmZGV2X2F0dHJfaXBJblRydW5jYXRlZFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkRpc2NhcmRzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5EZWxpdmVycy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dEZvcndEYXRhZ3JhbXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBPdXRSZXF1ZXN0cy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dERpc2NhcmRzLmF0dHIsCisJJmRldl9hdHRyX2lwT3V0Tm9Sb3V0ZXMuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbVRpbWVvdXQuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbVJlcWRzLmF0dHIsCisJJmRldl9hdHRyX2lwUmVhc21PS3MuYXR0ciwKKwkmZGV2X2F0dHJfaXBSZWFzbUZhaWxzLmF0dHIsCisJJmRldl9hdHRyX2lwRnJhZ09Lcy5hdHRyLAorCSZkZXZfYXR0cl9pcEZyYWdGYWlscy5hdHRyLAorCSZkZXZfYXR0cl9pcEZyYWdDcmVhdGVzLmF0dHIsCisJJmRldl9hdHRyX2lwSW5NY2FzdFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBPdXRNY2FzdFBrdHMuYXR0ciwKKwkmZGV2X2F0dHJfaXBJbkJjYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl9pcE91dEJjYXN0UGt0cy5hdHRyLAorCSZkZXZfYXR0cl90Y3BSdG9BbGdvcml0aG0uYXR0ciwKKwkmZGV2X2F0dHJfdGNwUnRvTWluLmF0dHIsCisJJmRldl9hdHRyX3RjcFJ0b01heC5hdHRyLAorCSZkZXZfYXR0cl90Y3BNYXhDb25uLmF0dHIsCisJJmRldl9hdHRyX3RjcEFjdGl2ZU9wZW5zLmF0dHIsCisJJmRldl9hdHRyX3RjcFBhc3NpdmVPcGVucy5hdHRyLAorCSZkZXZfYXR0cl90Y3BBdHRlbXB0RmFpbHMuYXR0ciwKKwkmZGV2X2F0dHJfdGNwRXN0YWJSZXNldHMuYXR0ciwKKwkmZGV2X2F0dHJfdGNwQ3VyckVzdGFiLmF0dHIsCisJJmRldl9hdHRyX3RjcEluU2Vncy5hdHRyLAorCSZkZXZfYXR0cl90Y3BPdXRTZWdzLmF0dHIsCisJJmRldl9hdHRyX3RjcFJldHJhbnNTZWdzLmF0dHIsCisJJmRldl9hdHRyX3RjcEluRXJycy5hdHRyLAorCSZkZXZfYXR0cl90Y3BPdXRSc3RzLmF0dHIsCisJTlVMTAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgaXdfc3RhdHNfZ3JvdXAgPSB7CisJLm5hbWUJPSAicHJvdG9fc3RhdHMiLAorCS5hdHRycwk9IGl3X3Byb3RvX3N0YXRzX2F0dHJzLAorfTsKKwogaW50IGliX2RldmljZV9yZWdpc3Rlcl9zeXNmcyhzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UpCiB7CiAJc3RydWN0IGRldmljZSAqY2xhc3NfZGV2ID0gJmRldmljZS0+ZGV2OwpAQCAtNzA3LDYgKzgxOSwxMiBAQAogCQl9CiAJfQogCisJaWYgKGRldmljZS0+bm9kZV90eXBlID09IFJETUFfTk9ERV9STklDICYmIGRldmljZS0+Z2V0X3Byb3RvY29sX3N0YXRzKSB7CisJCXJldCA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmY2xhc3NfZGV2LT5rb2JqLCAmaXdfc3RhdHNfZ3JvdXApOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfcHV0OworCX0KKwogCXJldHVybiAwOwogCiBlcnJfcHV0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYwppbmRleCBkN2E2ODgxLi45NDk0MDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y20uYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdWNtLmMgNDMxMSAyMDA1LTEyLTA1IDE4OjQyOjAxWiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgpAQCAtNDUsNiArNDMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC0xMTU5LDYgKzExNTgsNyBAQAogewogCXN0cnVjdCBpYl91Y21fZmlsZSAqZmlsZTsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZmlsZSA9IGttYWxsb2Moc2l6ZW9mKCpmaWxlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFmaWxlKQogCQlyZXR1cm4gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VjbWEuYwppbmRleCBjYTRjZjNhLi4xOTVmOTczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91Y21hLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdWNtYS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW4uaD4KICNpbmNsdWRlIDxsaW51eC9pbjYuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPHJkbWEvcmRtYV91c2VyX2NtLmg+CiAjaW5jbHVkZSA8cmRtYS9pYl9tYXJzaGFsbC5oPgpAQCAtMTE1Niw2ICsxMTU3LDcgQEAKIAlpZiAoIWZpbGUpCiAJCXJldHVybiAtRU5PTUVNOwogCisJbG9ja19rZXJuZWwoKTsKIAlJTklUX0xJU1RfSEVBRCgmZmlsZS0+ZXZlbnRfbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmZpbGUtPmN0eF9saXN0KTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmaWxlLT5wb2xsX3dhaXQpOwpAQCAtMTE2Myw2ICsxMTY1LDcgQEAKIAogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGZpbGU7CiAJZmlsZS0+ZmlscCA9IGZpbHA7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91ZF9oZWFkZXIuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCmluZGV4IDk5N2MwN2QuLjhlYzc4NzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VkX2hlYWRlci5jCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1ZF9oZWFkZXIuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91bWVtLmMKaW5kZXggZmU3OGY3ZC4uNmY3YzA5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdW1lbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VtZW0uYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzX21lbS5jIDI3NDMgMjAwNS0wNi0yOCAyMjoyNzo1OVogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTE1MCw3ICsxNDgsNyBAQAogCXJldCA9IDA7CiAJd2hpbGUgKG5wYWdlcykgewogCQlyZXQgPSBnZXRfdXNlcl9wYWdlcyhjdXJyZW50LCBjdXJyZW50LT5tbSwgY3VyX2Jhc2UsCi0JCQkJICAgICBtaW5fdChpbnQsIG5wYWdlcywKKwkJCQkgICAgIG1pbl90KHVuc2lnbmVkIGxvbmcsIG5wYWdlcywKIAkJCQkJICAgUEFHRV9TSVpFIC8gc2l6ZW9mIChzdHJ1Y3QgcGFnZSAqKSksCiAJCQkJICAgICAxLCAhdW1lbS0+d3JpdGFibGUsIHBhZ2VfbGlzdCwgdm1hX2xpc3QpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXNlcl9tYWQuYwppbmRleCA4NDBlZGU5Li4yNjhhMmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91c2VyX21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3VzZXJfbWFkLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IHVzZXJfbWFkLmMgNTU5NiAyMDA2LTAzLTAzIDAxOjAwOjA3WiBzZWFuLmhlZnR5ICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC03NzcsNiArNzc1LDE5IEBACiB9CiAjZW5kaWYKIAorLyoKKyAqIGliX3VtYWRfb3BlbigpIGRvZXMgbm90IG5lZWQgdGhlIEJLTDoKKyAqCisgKiAgLSB1bWFkX3BvcnRbXSBhY2Nlc3NlcyBhcmUgcHJvdGVjdGVkIGJ5IHBvcnRfbG9jaywgdGhlCisgKiAgICBpYl91bWFkX3BvcnQgc3RydWN0dXJlcyBhcmUgcHJvcGVybHkgcmVmZXJlbmNlIGNvdW50ZWQsIGFuZAorICogICAgZXZlcnl0aGluZyBlbHNlIGlzIHB1cmVseSBsb2NhbCB0byB0aGUgZmlsZSBiZWluZyBjcmVhdGVkLCBzbworICogICAgcmFjZXMgYWdhaW5zdCBvdGhlciBvcGVuIGNhbGxzIGFyZSBub3QgYSBwcm9ibGVtOworICogIC0gdGhlIGlvY3RsIG1ldGhvZCBkb2VzIG5vdCBhZmZlY3QgYW55IGdsb2JhbCBzdGF0ZSBvdXRzaWRlIG9mIHRoZQorICogICAgZmlsZSBzdHJ1Y3R1cmUgYmVpbmcgb3BlcmF0ZWQgb247CisgKiAgLSB0aGUgcG9ydCBpcyBhZGRlZCB0byB1bWFkX3BvcnRbXSBhcyB0aGUgbGFzdCBwYXJ0IG9mIG1vZHVsZQorICogICAgaW5pdGlhbGl6YXRpb24gc28gdGhlIG9wZW4gbWV0aG9kIHdpbGwgZWl0aGVyIGltbWVkaWF0ZWx5IHJ1bgorICogICAgLUVOWElPLCBvciBhbGwgcmVxdWlyZWQgaW5pdGlhbGl6YXRpb24gd2lsbCBiZSBkb25lLgorICovCiBzdGF0aWMgaW50IGliX3VtYWRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3QgaWJfdW1hZF9wb3J0ICpwb3J0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzLmggYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAppbmRleCAzNzZhNTdjLi5iM2VhOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnMuaApAQCAtMzIsOCArMzIsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogdXZlcmJzLmggMjU1OSAyMDA1LTA2LTA2IDE5OjQzOjE2WiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgVVZFUkJTX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19jbWQuYwppbmRleCAyYzNiZmY1Li41NmZlYWI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfY21kLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX2NtZC5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1dmVyYnNfY21kLmMgMjcwOCAyMDA1LTA2LTI0IDE3OjI3OjIxWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CkBAIC05MTksNyArOTE3LDcgQEAKIAkJcmVzcC0+d2NbaV0ub3Bjb2RlIAkgICA9IHdjW2ldLm9wY29kZTsKIAkJcmVzcC0+d2NbaV0udmVuZG9yX2VyciAJICAgPSB3Y1tpXS52ZW5kb3JfZXJyOwogCQlyZXNwLT53Y1tpXS5ieXRlX2xlbiAJICAgPSB3Y1tpXS5ieXRlX2xlbjsKLQkJcmVzcC0+d2NbaV0uaW1tX2RhdGEgCSAgID0gKF9fdTMyIF9fZm9yY2UpIHdjW2ldLmltbV9kYXRhOworCQlyZXNwLT53Y1tpXS5leC5pbW1fZGF0YSAgICA9IChfX3UzMiBfX2ZvcmNlKSB3Y1tpXS5leC5pbW1fZGF0YTsKIAkJcmVzcC0+d2NbaV0ucXBfbnVtIAkgICA9IHdjW2ldLnFwLT5xcF9udW07CiAJCXJlc3AtPndjW2ldLnNyY19xcCAJICAgPSB3Y1tpXS5zcmNfcXA7CiAJCXJlc3AtPndjW2ldLndjX2ZsYWdzIAkgICA9IHdjW2ldLndjX2ZsYWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3V2ZXJic19tYWluLmMKaW5kZXggZjgwNmRhMS4uYWVlZTg1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdXZlcmJzX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS91dmVyYnNfbWFpbi5jCkBAIC0zMiw4ICszMiw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB1dmVyYnNfbWFpbi5jIDI3MzMgMjAwNS0wNi0yOCAxOToxNDozNFogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC00MjMsNyArNDIxLDcgQEAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmZpbGUtPmFzeW5jX2ZpbGUtPmxvY2ssIGZsYWdzKTsKLQlpZiAoIWZpbGUtPmFzeW5jX2ZpbGUtPmlzX2Nsb3NlZCkgeworCWlmIChmaWxlLT5hc3luY19maWxlLT5pc19jbG9zZWQpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZmlsZS0+YXN5bmNfZmlsZS0+bG9jaywgZmxhZ3MpOwogCQlyZXR1cm47CiAJfQpAQCAtNjEwLDYgKzYwOCwxOCBAQAogCQlyZXR1cm4gZmlsZS0+ZGV2aWNlLT5pYl9kZXYtPm1tYXAoZmlsZS0+dWNvbnRleHQsIHZtYSk7CiB9CiAKKy8qCisgKiBpYl91dmVyYnNfb3BlbigpIGRvZXMgbm90IG5lZWQgdGhlIEJLTDoKKyAqCisgKiAgLSBkZXZfdGFibGVbXSBhY2Nlc3NlcyBhcmUgcHJvdGVjdGVkIGJ5IG1hcF9sb2NrLCB0aGUKKyAqICAgIGliX3V2ZXJic19kZXZpY2Ugc3RydWN0dXJlcyBhcmUgcHJvcGVybHkgcmVmZXJlbmNlIGNvdW50ZWQsIGFuZAorICogICAgZXZlcnl0aGluZyBlbHNlIGlzIHB1cmVseSBsb2NhbCB0byB0aGUgZmlsZSBiZWluZyBjcmVhdGVkLCBzbworICogICAgcmFjZXMgYWdhaW5zdCBvdGhlciBvcGVuIGNhbGxzIGFyZSBub3QgYSBwcm9ibGVtOworICogIC0gdGhlcmUgaXMgbm8gaW9jdGwgbWV0aG9kIHRvIHJhY2UgYWdhaW5zdDsKKyAqICAtIHRoZSBkZXZpY2UgaXMgYWRkZWQgdG8gZGV2X3RhYmxlW10gYXMgdGhlIGxhc3QgcGFydCBvZiBtb2R1bGUKKyAqICAgIGluaXRpYWxpemF0aW9uLCB0aGUgb3BlbiBtZXRob2Qgd2lsbCBlaXRoZXIgaW1tZWRpYXRlbHkgcnVuCisgKiAgICAtRU5YSU8sIG9yIGFsbCByZXF1aXJlZCBpbml0aWFsaXphdGlvbiB3aWxsIGJlIGRvbmUuCisgKi8KIHN0YXRpYyBpbnQgaWJfdXZlcmJzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCiB7CiAJc3RydWN0IGliX3V2ZXJic19kZXZpY2UgKmRldjsKQEAgLTY1MSw3ICs2NjEsNiBAQAogCiBlcnI6CiAJa3JlZl9wdXQoJmRldi0+cmVmLCBpYl91dmVyYnNfcmVsZWFzZV9kZXYpOwotCiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL3ZlcmJzLmMKaW5kZXggMDUwNDIwOC4uYTdkYTliZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvY29yZS92ZXJicy5jCkBAIC0zNCw4ICszNCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiB2ZXJicy5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KQEAgLTMxNyw3ICszMTUsNiBAQAogfSBxcF9zdGF0ZV90YWJsZVtJQl9RUFNfRVJSICsgMV1bSUJfUVBTX0VSUiArIDFdID0gewogCVtJQl9RUFNfUkVTRVRdID0gewogCQlbSUJfUVBTX1JFU0VUXSA9IHsgLnZhbGlkID0gMSB9LAotCQlbSUJfUVBTX0VSUl0gICA9IHsgLnZhbGlkID0gMSB9LAogCQlbSUJfUVBTX0lOSVRdICA9IHsKIAkJCS52YWxpZCA9IDEsCiAJCQkucmVxX3BhcmFtID0gewpAQCAtNzU1LDYgKzc1Miw1MiBAQAogfQogRVhQT1JUX1NZTUJPTChpYl9kZXJlZ19tcik7CiAKK3N0cnVjdCBpYl9tciAqaWJfYWxsb2NfZmFzdF9yZWdfbXIoc3RydWN0IGliX3BkICpwZCwgaW50IG1heF9wYWdlX2xpc3RfbGVuKQoreworCXN0cnVjdCBpYl9tciAqbXI7CisKKwlpZiAoIXBkLT5kZXZpY2UtPmFsbG9jX2Zhc3RfcmVnX21yKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1lTKTsKKworCW1yID0gcGQtPmRldmljZS0+YWxsb2NfZmFzdF9yZWdfbXIocGQsIG1heF9wYWdlX2xpc3RfbGVuKTsKKworCWlmICghSVNfRVJSKG1yKSkgeworCQltci0+ZGV2aWNlICA9IHBkLT5kZXZpY2U7CisJCW1yLT5wZCAgICAgID0gcGQ7CisJCW1yLT51b2JqZWN0ID0gTlVMTDsKKwkJYXRvbWljX2luYygmcGQtPnVzZWNudCk7CisJCWF0b21pY19zZXQoJm1yLT51c2VjbnQsIDApOworCX0KKworCXJldHVybiBtcjsKK30KK0VYUE9SVF9TWU1CT0woaWJfYWxsb2NfZmFzdF9yZWdfbXIpOworCitzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICppYl9hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3Qoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQkJCSAgaW50IG1heF9wYWdlX2xpc3RfbGVuKQoreworCXN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKnBhZ2VfbGlzdDsKKworCWlmICghZGV2aWNlLT5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QpCisJCXJldHVybiBFUlJfUFRSKC1FTk9TWVMpOworCisJcGFnZV9saXN0ID0gZGV2aWNlLT5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QoZGV2aWNlLCBtYXhfcGFnZV9saXN0X2xlbik7CisKKwlpZiAoIUlTX0VSUihwYWdlX2xpc3QpKSB7CisJCXBhZ2VfbGlzdC0+ZGV2aWNlID0gZGV2aWNlOworCQlwYWdlX2xpc3QtPm1heF9wYWdlX2xpc3RfbGVuID0gbWF4X3BhZ2VfbGlzdF9sZW47CisJfQorCisJcmV0dXJuIHBhZ2VfbGlzdDsKK30KK0VYUE9SVF9TWU1CT0woaWJfYWxsb2NfZmFzdF9yZWdfcGFnZV9saXN0KTsKKwordm9pZCBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdChzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpCit7CisJcGFnZV9saXN0LT5kZXZpY2UtPmZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KHBhZ2VfbGlzdCk7Cit9CitFWFBPUlRfU1lNQk9MKGliX2ZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KTsKKwogLyogTWVtb3J5IHdpbmRvd3MgKi8KIAogc3RydWN0IGliX213ICppYl9hbGxvY19tdyhzdHJ1Y3QgaWJfcGQgKnBkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3JuaWMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9hbXNvMTEwMC9jMl9ybmljLmMKaW5kZXggOWEwNTRjNi4uZGQwNWM0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2Ftc28xMTAwL2MyX3JuaWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvYW1zbzExMDAvYzJfcm5pYy5jCkBAIC00NTQsOSArNDU0LDggQEAKIAkgICAgKElCX0RFVklDRV9SRVNJWkVfTUFYX1dSIHwKIAkgICAgIElCX0RFVklDRV9DVVJSX1FQX1NUQVRFX01PRCB8CiAJICAgICBJQl9ERVZJQ0VfU1lTX0lNQUdFX0dVSUQgfAotCSAgICAgSUJfREVWSUNFX1pFUk9fU1RBRyB8Ci0JICAgICBJQl9ERVZJQ0VfTUVNX1dJTkRPVyB8Ci0JICAgICBJQl9ERVZJQ0VfU0VORF9XX0lOVik7CisJICAgICBJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkgfAorCSAgICAgSUJfREVWSUNFX01FTV9XSU5ET1cpOwogCiAJLyogQWxsb2NhdGUgdGhlIHFwdHJfYXJyYXkgKi8KIAljMmRldi0+cXB0cl9hcnJheSA9IHZtYWxsb2MoQzJfTUFYX0NRUyAqIHNpemVvZih2b2lkICopKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX2hhbC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKaW5kZXggM2Y0NDFmYy4uZjZkNTc0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmMKQEAgLTE0NSw3ICsxNDUsOSBAQAogCX0KIAl3cWUgPSAoc3RydWN0IHQzX21vZGlmeV9xcF93ciAqKSBza2JfcHV0KHNrYiwgc2l6ZW9mKCp3cWUpKTsKIAltZW1zZXQod3FlLCAwLCBzaXplb2YoKndxZSkpOwotCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9RUF9NT0QsIDMsIDAsIHFwaWQsIDcpOworCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9RUF9NT0QsCisJCSAgICAgICBUM19DT01QTEVUSU9OX0ZMQUcgfCBUM19OT1RJRllfRkxBRywgMCwgcXBpZCwgNywKKwkJICAgICAgIFQzX1NPUEVPUCk7CiAJd3FlLT5mbGFncyA9IGNwdV90b19iZTMyKE1PRFFQX1dSSVRFX0VDKTsKIAlzZ2VfY21kID0gcXBpZCA8PCA4IHwgMzsKIAl3cWUtPnNnZV9jbWQgPSBjcHVfdG9fYmU2NChzZ2VfY21kKTsKQEAgLTI3Niw3ICsyNzgsNyBAQAogCWlmICghd3EtPnFwaWQpCiAJCXJldHVybiAtRU5PTUVNOwogCi0Jd3EtPnJxID0ga3phbGxvYyhkZXB0aCAqIHNpemVvZih1NjQpLCBHRlBfS0VSTkVMKTsKKwl3cS0+cnEgPSBremFsbG9jKGRlcHRoICogc2l6ZW9mKHN0cnVjdCB0M19zd3JxKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF3cS0+cnEpCiAJCWdvdG8gZXJyMTsKIApAQCAtMzAwLDYgKzMwMiw3IEBACiAJaWYgKCFrZXJuZWxfZG9tYWluKQogCQl3cS0+dWRiID0gKHU2NClyZGV2X3AtPnJuaWNfaW5mby51ZGJlbGxfcGh5c2Jhc2UgKwogCQkJCQkod3EtPnFwaWQgPDwgcmRldl9wLT5xcHNoaWZ0KTsKKwl3cS0+cmRldiA9IHJkZXZfcDsKIAlQREJHKCIlcyBxcGlkIDB4JXggZG9vcmJlbGwgMHglcCB1ZGIgMHglbGx4XG4iLCBfX2Z1bmNfXywKIAkgICAgIHdxLT5xcGlkLCB3cS0+ZG9vcmJlbGwsICh1bnNpZ25lZCBsb25nIGxvbmcpIHdxLT51ZGIpOwogCXJldHVybiAwOwpAQCAtNTU4LDcgKzU2MSw3IEBACiAJd3FlID0gKHN0cnVjdCB0M19tb2RpZnlfcXBfd3IgKikgc2tiX3B1dChza2IsIHNpemVvZigqd3FlKSk7CiAJbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKCp3cWUpKTsKIAlidWlsZF9md19yaXdyaCgoc3RydWN0IGZ3X3Jpd3JoICopIHdxZSwgVDNfV1JfUVBfTU9ELCAwLCAwLAotCQkgICAgICAgVDNfQ1RMX1FQX1RJRCwgNyk7CisJCSAgICAgICBUM19DVExfUVBfVElELCA3LCBUM19TT1BFT1ApOwogCXdxZS0+ZmxhZ3MgPSBjcHVfdG9fYmUzMihNT0RRUF9XUklURV9FQyk7CiAJc2dlX2NtZCA9ICgzVUxMIDw8IDU2KSB8IEZXX1JJX1NHRUVDX1NUQVJUIDw8IDggfCAzOwogCXdxZS0+c2dlX2NtZCA9IGNwdV90b19iZTY0KHNnZV9jbWQpOwpAQCAtNjc0LDcgKzY3Nyw3IEBACiAJCWJ1aWxkX2Z3X3Jpd3JoKChzdHJ1Y3QgZndfcml3cmggKikgd3FlLCBUM19XUl9CUCwgZmxhZywKIAkJCSAgICAgICBRX0dFTkJJVChyZGV2X3AtPmN0cmxfcXAud3B0ciwKIAkJCQkJVDNfQ1RSTF9RUF9TSVpFX0xPRzIpLCBUM19DVFJMX1FQX0lELAotCQkJICAgICAgIHdyX2xlbik7CisJCQkgICAgICAgd3JfbGVuLCBUM19TT1BFT1ApOwogCQlpZiAoZmxhZyA9PSBUM19DT01QTEVUSU9OX0ZMQUcpCiAJCQlyaW5nX2Rvb3JiZWxsKHJkZXZfcC0+Y3RybF9xcC5kb29yYmVsbCwgVDNfQ1RSTF9RUF9JRCk7CiAJCWxlbiAtPSA5NjsKQEAgLTgxNiw2ICs4MTksMTMgQEAKIAkJCSAgICAgMCwgMCk7CiB9CiAKK2ludCBjeGlvX2FsbG9jYXRlX3N0YWcoc3RydWN0IGN4aW9fcmRldiAqcmRldl9wLCB1MzIgKnN0YWcsIHUzMiBwZGlkLCB1MzIgcGJsX3NpemUsIHUzMiBwYmxfYWRkcikKK3sKKwkqc3RhZyA9IFQzX1NUQUdfVU5TRVQ7CisJcmV0dXJuIF9fY3hpb190cHRfb3AocmRldl9wLCAwLCBzdGFnLCAwLCBwZGlkLCBUUFRfTk9OX1NIQVJFRF9NUiwKKwkJCSAgICAgMCwgMCwgMFVMTCwgMCwgMCwgcGJsX3NpemUsIHBibF9hZGRyKTsKK30KKwogaW50IGN4aW9fcmRtYV9pbml0KHN0cnVjdCBjeGlvX3JkZXYgKnJkZXZfcCwgc3RydWN0IHQzX3JkbWFfaW5pdF9hdHRyICphdHRyKQogewogCXN0cnVjdCB0M19yZG1hX2luaXRfd3IgKndxZTsKQEAgLTEyNTcsMTMgKzEyNjcsMTYgQEAKIAkJd3EtPnNxX3JwdHIgPSBDUUVfV1JJRF9TUV9XUFRSKCpod19jcWUpOwogCQlQREJHKCIlcyBjb21wbGV0aW5nIHNxIGlkeCAlbGRcbiIsIF9fZnVuY19fLAogCQkgICAgIFFfUFRSMklEWCh3cS0+c3FfcnB0ciwgd3EtPnNxX3NpemVfbG9nMikpOwotCQkqY29va2llID0gKHdxLT5zcSArCi0JCQkgICBRX1BUUjJJRFgod3EtPnNxX3JwdHIsIHdxLT5zcV9zaXplX2xvZzIpKS0+d3JfaWQ7CisJCSpjb29raWUgPSB3cS0+c3FbUV9QVFIySURYKHdxLT5zcV9ycHRyLCB3cS0+c3Ffc2l6ZV9sb2cyKV0ud3JfaWQ7CiAJCXdxLT5zcV9ycHRyKys7CiAJfSBlbHNlIHsKIAkJUERCRygiJXMgY29tcGxldGluZyBycSBpZHggJWxkXG4iLCBfX2Z1bmNfXywKIAkJICAgICBRX1BUUjJJRFgod3EtPnJxX3JwdHIsIHdxLT5ycV9zaXplX2xvZzIpKTsKLQkJKmNvb2tpZSA9ICood3EtPnJxICsgUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKSk7CisJCSpjb29raWUgPSB3cS0+cnFbUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKV0ud3JfaWQ7CisJCWlmICh3cS0+cnFbUV9QVFIySURYKHdxLT5ycV9ycHRyLCB3cS0+cnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIpCisJCQljeGlvX2hhbF9wYmxwb29sX2ZyZWUod3EtPnJkZXYsCisJCQkJd3EtPnJxW1FfUFRSMklEWCh3cS0+cnFfcnB0ciwKKwkJCQl3cS0+cnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIsIFQzX1NUQUcwX1BCTF9TSVpFKTsKIAkJd3EtPnJxX3JwdHIrKzsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX2hhbC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKaW5kZXggNmUxMjhmNi4uNjU2ZmU0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9faGFsLmgKQEAgLTQ1LDE1ICs0NSwxNyBAQAogI2RlZmluZSBUM19DVFJMX1FQX1NJWkVfTE9HMiAgOAogI2RlZmluZSBUM19DVFJMX0NRX0lEICAgIDAKIAotLyogVEJEICovCiAjZGVmaW5lIFQzX01BWF9OVU1fUkkgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfTlVNX1FQICgxPDwxNSkKICNkZWZpbmUgVDNfTUFYX05VTV9DUSAoMTw8MTUpCiAjZGVmaW5lIFQzX01BWF9OVU1fUEQgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfUEJMX1NJWkUgMjU2CiAjZGVmaW5lIFQzX01BWF9SUV9TSVpFIDEwMjQKKyNkZWZpbmUgVDNfTUFYX1FQX0RFUFRIIChUM19NQVhfUlFfU0laRS0xKQorI2RlZmluZSBUM19NQVhfQ1FfREVQVEggODE5MgogI2RlZmluZSBUM19NQVhfTlVNX1NUQUcgKDE8PDE1KQogI2RlZmluZSBUM19NQVhfTVJfU0laRSAweDEwMDAwMDAwMFVMTAorI2RlZmluZSBUM19QQUdFU0laRV9NQVNLIDB4ZmZmZjAwMCAgLyogNEtCLTEyOE1CICovCiAKICNkZWZpbmUgVDNfU1RBR19VTlNFVCAweGZmZmZmZmZmCiAKQEAgLTE2NSw2ICsxNjcsNyBAQAogaW50IGN4aW9fZGVyZWdfbWVtKHN0cnVjdCBjeGlvX3JkZXYgKnJkZXYsIHUzMiBzdGFnLCB1MzIgcGJsX3NpemUsCiAJCSAgIHUzMiBwYmxfYWRkcik7CiBpbnQgY3hpb19hbGxvY2F0ZV93aW5kb3coc3RydWN0IGN4aW9fcmRldiAqcmRldiwgdTMyICogc3RhZywgdTMyIHBkaWQpOworaW50IGN4aW9fYWxsb2NhdGVfc3RhZyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCB1MzIgKnN0YWcsIHUzMiBwZGlkLCB1MzIgcGJsX3NpemUsIHUzMiBwYmxfYWRkcik7CiBpbnQgY3hpb19kZWFsbG9jYXRlX3dpbmRvdyhzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2LCB1MzIgc3RhZyk7CiBpbnQgY3hpb19yZG1hX2luaXQoc3RydWN0IGN4aW9fcmRldiAqcmRldiwgc3RydWN0IHQzX3JkbWFfaW5pdF9hdHRyICphdHRyKTsKIHZvaWQgY3hpb19yZWdpc3Rlcl9ldl9jYihjeGlvX2hhbF9ldl9jYWxsYmFja19mdW5jX3QgZXZfY2IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9fd3IuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9jeGlvX3dyLmgKaW5kZXggZjFhMjVhOC4uMDQ2MThmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2N4aW9fd3IuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvY3hpb193ci5oCkBAIC0zOSw2ICszOSw5IEBACiAKICNkZWZpbmUgVDNfTUFYX1NHRSAgICAgIDQKICNkZWZpbmUgVDNfTUFYX0lOTElORQk2NAorI2RlZmluZSBUM19TVEFHMF9QQkxfU0laRSAoMiAqIFQzX01BWF9TR0UgPDwgMykKKyNkZWZpbmUgVDNfU1RBRzBfTUFYX1BCRV9MRU4gKDEyOCAqIDEwMjQgKiAxMDI0KQorI2RlZmluZSBUM19TVEFHMF9QQUdFX1NISUZUIDE1CiAKICNkZWZpbmUgUV9FTVBUWShycHRyLHdwdHIpICgocnB0cik9PSh3cHRyKSkKICNkZWZpbmUgUV9GVUxMKHJwdHIsd3B0cixzaXplX2xvZzIpICAoICgoKHdwdHIpLShycHRyKSk+PihzaXplX2xvZzIpKSAmJiBcCkBAIC03Miw3ICs3NSw4IEBACiAJVDNfV1JfQklORCA9IEZXX1dST1BDT0RFX1JJX0JJTkRfTVcsCiAJVDNfV1JfUkNWID0gRldfV1JPUENPREVfUklfUkVDRUlWRSwKIAlUM19XUl9JTklUID0gRldfV1JPUENPREVfUklfUkRNQV9JTklULAotCVQzX1dSX1FQX01PRCA9IEZXX1dST1BDT0RFX1JJX01PRElGWV9RUAorCVQzX1dSX1FQX01PRCA9IEZXX1dST1BDT0RFX1JJX01PRElGWV9RUCwKKwlUM19XUl9GQVNUUkVHID0gRldfV1JPUENPREVfUklfRkFTVFJFR0lTVEVSX01SCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAogZW51bSB0M19yZG1hX29wY29kZSB7CkBAIC04OSw3ICs5Myw4IEBACiAJVDNfRkFTVF9SRUdJU1RFUiwKIAlUM19MT0NBTF9JTlYsCiAJVDNfUVBfTU9ELAotCVQzX0JZUEFTUworCVQzX0JZUEFTUywKKwlUM19SRE1BX1JFQURfUkVRX1dJVEhfSU5WLAogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAKIHN0YXRpYyBpbmxpbmUgZW51bSB0M19yZG1hX29wY29kZSB3cjJvcGNvZGUoZW51bSB0M193cl9vcGNvZGUgd3JvcCkKQEAgLTEwMyw2ICsxMDgsNyBAQAogCQljYXNlIFQzX1dSX0JJTkQ6IHJldHVybiBUM19CSU5EX01XOwogCQljYXNlIFQzX1dSX0lOSVQ6IHJldHVybiBUM19SRE1BX0lOSVQ7CiAJCWNhc2UgVDNfV1JfUVBfTU9EOiByZXR1cm4gVDNfUVBfTU9EOworCQljYXNlIFQzX1dSX0ZBU1RSRUc6IHJldHVybiBUM19GQVNUX1JFR0lTVEVSOwogCQlkZWZhdWx0OiBicmVhazsKIAl9CiAJcmV0dXJuIC0xOwpAQCAtMTcwLDExICsxNzYsNTQgQEAKIAlzdHJ1Y3QgdDNfc2dlIHNnbFtUM19NQVhfU0dFXTsJLyogNCsgKi8KIH07CiAKKyNkZWZpbmUgVDNfTUFYX0ZBU1RSRUdfREVQVEggMjQKKyNkZWZpbmUgVDNfTUFYX0ZBU1RSRUdfRlJBRyAxMAorCitzdHJ1Y3QgdDNfZmFzdHJlZ193ciB7CisJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLworCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLworCV9fYmUzMiBzdGFnOwkJLyogMiAqLworCV9fYmUzMiBsZW47CisJX19iZTMyIHZhX2Jhc2VfaGk7CS8qIDMgKi8KKwlfX2JlMzIgdmFfYmFzZV9sb19mYm87CisJX19iZTMyIHBhZ2VfdHlwZV9wZXJtczsgLyogNCAqLworCV9fYmUzMiByZXNlcnZlZDE7CisJX19iZTY0IHBibF9hZGRyc1swXTsJLyogNSsgKi8KK307CisKKy8qCisgKiBJZiBhIGZhc3RyZWcgd3Igc3BhbnMgbXVsdGlwbGUgd3FlcywgdGhlbiB0aGUgMm5kIGZyYWdtZW50IGxvb2sgbGlrZSB0aGlzLgorICovCitzdHJ1Y3QgdDNfcGJsX2ZyYWcgeworCXN0cnVjdCBmd19yaXdyaCB3cmg7CS8qIDAgKi8KKwlfX2JlNjQgcGJsX2FkZHJzWzE0XTsJLyogMS4uMTQgKi8KK307CisKKyNkZWZpbmUgU19GUl9QQUdFX0NPVU5UCQkyNAorI2RlZmluZSBNX0ZSX1BBR0VfQ09VTlQJCTB4ZmYKKyNkZWZpbmUgVl9GUl9QQUdFX0NPVU5UKHgpCSgoeCkgPDwgU19GUl9QQUdFX0NPVU5UKQorI2RlZmluZSBHX0ZSX1BBR0VfQ09VTlQoeCkJKCgoKHgpID4+IFNfRlJfUEFHRV9DT1VOVCkpICYgTV9GUl9QQUdFX0NPVU5UKQorCisjZGVmaW5lIFNfRlJfUEFHRV9TSVpFCQkxNgorI2RlZmluZSBNX0ZSX1BBR0VfU0laRQkJMHgxZgorI2RlZmluZSBWX0ZSX1BBR0VfU0laRSh4KQkoKHgpIDw8IFNfRlJfUEFHRV9TSVpFKQorI2RlZmluZSBHX0ZSX1BBR0VfU0laRSh4KQkoKCgoeCkgPj4gU19GUl9QQUdFX1NJWkUpKSAmIE1fRlJfUEFHRV9TSVpFKQorCisjZGVmaW5lIFNfRlJfVFlQRQkJOAorI2RlZmluZSBNX0ZSX1RZUEUJCTB4MQorI2RlZmluZSBWX0ZSX1RZUEUoeCkJCSgoeCkgPDwgU19GUl9UWVBFKQorI2RlZmluZSBHX0ZSX1RZUEUoeCkJCSgoKCh4KSA+PiBTX0ZSX1RZUEUpKSAmIE1fRlJfVFlQRSkKKworI2RlZmluZSBTX0ZSX1BFUk1TCQkwCisjZGVmaW5lIE1fRlJfUEVSTVMJCTB4ZmYKKyNkZWZpbmUgVl9GUl9QRVJNUyh4KQkJKCh4KSA8PCBTX0ZSX1BFUk1TKQorI2RlZmluZSBHX0ZSX1BFUk1TKHgpCQkoKCgoeCkgPj4gU19GUl9QRVJNUykpICYgTV9GUl9QRVJNUykKKwogc3RydWN0IHQzX2xvY2FsX2ludl93ciB7CiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwogCV9fYmUzMiBzdGFnOwkJLyogMiAqLwotCV9fYmUzMiByZXNlcnZlZDM7CisJX19iZTMyIHJlc2VydmVkOwogfTsKIAogc3RydWN0IHQzX3JkbWFfd3JpdGVfd3IgewpAQCAtMTkzLDcgKzI0Miw4IEBACiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwogCXU4IHJkbWFvcDsJCS8qIDIgKi8KLQl1OCByZXNlcnZlZFszXTsKKwl1OCBsb2NhbF9pbnY7CisJdTggcmVzZXJ2ZWRbMl07CiAJX19iZTMyIHJlbV9zdGFnOwogCV9fYmU2NCByZW1fdG87CQkvKiAzICovCiAJX19iZTMyIGxvY2FsX3N0YWc7CS8qIDQgKi8KQEAgLTIwMSwxOCArMjUxLDYgQEAKIAlfX2JlNjQgbG9jYWxfdG87CS8qIDUgKi8KIH07CiAKLWVudW0gdDNfYWRkcl90eXBlIHsKLQlUM19WQV9CQVNFRF9UTyA9IDB4MCwKLQlUM19aRVJPX0JBU0VEX1RPID0gMHgxCi19IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLQotZW51bSB0M19tZW1fcGVybXMgewotCVQzX01FTV9BQ0NFU1NfTE9DQUxfUkVBRCA9IDB4MSwKLQlUM19NRU1fQUNDRVNTX0xPQ0FMX1dSSVRFID0gMHgyLAotCVQzX01FTV9BQ0NFU1NfUkVNX1JFQUQgPSAweDQsCi0JVDNfTUVNX0FDQ0VTU19SRU1fV1JJVEUgPSAweDgKLX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCiBzdHJ1Y3QgdDNfYmluZF9td193ciB7CiAJc3RydWN0IGZ3X3Jpd3JoIHdyaDsJLyogMCAqLwogCXVuaW9uIHQzX3dyaWQgd3JpZDsJLyogMSAqLwpAQCAtMzM2LDYgKzM3NCwxMSBAQAogCV9fYmU2NCBnZW5iaXQ7CiB9OwogCitzdHJ1Y3QgdDNfd3FfaW5fZXJyIHsKKwl1NjQgZmxpdFsxM107CisJdTY0IGVycjsKK307CisKIGVudW0gcmRtYV9pbml0X3dyX2ZsYWdzIHsKIAlNUEFfSU5JVElBVE9SID0gKDE8PDApLAogCVBSSVZfUVAgPSAoMTw8MSksCkBAIC0zNDYsMTMgKzM4OSwxNiBAQAogCXN0cnVjdCB0M19yZG1hX3dyaXRlX3dyIHdyaXRlOwogCXN0cnVjdCB0M19yZG1hX3JlYWRfd3IgcmVhZDsKIAlzdHJ1Y3QgdDNfcmVjZWl2ZV93ciByZWN2OworCXN0cnVjdCB0M19mYXN0cmVnX3dyIGZhc3RyZWc7CisJc3RydWN0IHQzX3BibF9mcmFnIHBibF9mcmFnOwogCXN0cnVjdCB0M19sb2NhbF9pbnZfd3IgbG9jYWxfaW52OwogCXN0cnVjdCB0M19iaW5kX213X3dyIGJpbmQ7CiAJc3RydWN0IHQzX2J5cGFzc193ciBieXBhc3M7CiAJc3RydWN0IHQzX3JkbWFfaW5pdF93ciBpbml0OwogCXN0cnVjdCB0M19tb2RpZnlfcXBfd3IgcXBfbW9kOwogCXN0cnVjdCB0M19nZW5iaXQgZ2VuYml0OwotCXU2NCBmbGl0WzE2XTsKKwlzdHJ1Y3QgdDNfd3FfaW5fZXJyIHdxX2luX2VycjsKKwlfX2JlNjQgZmxpdFsxNl07CiB9OwogCiAjZGVmaW5lIFQzX1NRX0NRRV9GTElUCSAgMTMKQEAgLTM2NiwxMiArNDEyLDE4IEBACiAJcmV0dXJuIEdfRldfUklXUl9PUChiZTMyX3RvX2NwdSh3cWUtPm9wX3Nlb3BfZmxhZ3MpKTsKIH0KIAorZW51bSB0M193cl9oZHJfYml0cyB7CisJVDNfRU9QID0gMSwKKwlUM19TT1AgPSAyLAorCVQzX1NPUEVPUCA9IFQzX0VPUHxUM19TT1AsCit9OworCiBzdGF0aWMgaW5saW5lIHZvaWQgYnVpbGRfZndfcml3cmgoc3RydWN0IGZ3X3Jpd3JoICp3cWUsIGVudW0gdDNfd3Jfb3Bjb2RlIG9wLAogCQkJCSAgZW51bSB0M193cl9mbGFncyBmbGFncywgdTggZ2VuYml0LCB1MzIgdGlkLAotCQkJCSAgdTggbGVuKQorCQkJCSAgdTggbGVuLCB1OCBzb3Blb3ApCiB7CiAJd3FlLT5vcF9zZW9wX2ZsYWdzID0gY3B1X3RvX2JlMzIoVl9GV19SSVdSX09QKG9wKSB8Ci0JCQkJCSBWX0ZXX1JJV1JfU09QRU9QKE1fRldfUklXUl9TT1BFT1ApIHwKKwkJCQkJIFZfRldfUklXUl9TT1BFT1Aoc29wZW9wKSB8CiAJCQkJCSBWX0ZXX1JJV1JfRkxBR1MoZmxhZ3MpKTsKIAl3bWIoKTsKIAl3cWUtPmdlbl90aWRfbGVuID0gY3B1X3RvX2JlMzIoVl9GV19SSVdSX0dFTihnZW5iaXQpIHwKQEAgLTQwNCw2ICs0NTYsNyBAQAogfTsKIAogZW51bSB0cHRfbWVtX3Blcm0geworCVRQVF9NV19CSU5EID0gMHgxMCwKIAlUUFRfTE9DQUxfUkVBRCA9IDB4OCwKIAlUUFRfTE9DQUxfV1JJVEUgPSAweDQsCiAJVFBUX1JFTU9URV9SRUFEID0gMHgyLApAQCAtNjE1LDYgKzY2OCwxMSBAQAogCWludAkJCXNpZ25hbGVkOwogfTsKIAorc3RydWN0IHQzX3N3cnEgeworCV9fdTY0CQkJd3JfaWQ7CisJX191MzIJCQlwYmxfYWRkcjsKK307CisKIC8qCiAgKiBBIFQzIFdRIGltcGxlbWVudHMgYm90aCB0aGUgU1EgYW5kIFJRLgogICovCkBAIC02MzEsMTQgKzY4OSwxNSBAQAogCXUzMiBzcV93cHRyOwkJCS8qIHNxX3dwdHIgLSBzcV9ycHRyID09IGNvdW50IG9mICovCiAJdTMyIHNxX3JwdHI7CQkJLyogcGVuZGluZyB3cnMgKi8KIAl1MzIgc3Ffc2l6ZV9sb2cyOwkJLyogc3Egc2l6ZSAqLwotCXU2NCAqcnE7CQkJLyogU1cgUlEgKGhvbGRzIGNvbnN1bWVyIHdyX2lkcyAqLworCXN0cnVjdCB0M19zd3JxICpycTsJCS8qIFNXIFJRIChob2xkcyBjb25zdW1lciB3cl9pZHMgKi8KIAl1MzIgcnFfd3B0cjsJCQkvKiBycV93cHRyIC0gcnFfcnB0ciA9PSBjb3VudCBvZiAqLwogCXUzMiBycV9ycHRyOwkJCS8qIHBlbmRpbmcgd3JzICovCi0JdTY0ICpycV9vbGRlc3Rfd3I7CQkvKiBvbGRlc3Qgd3Igb24gdGhlIFNXIFJRICovCisJc3RydWN0IHQzX3N3cnEgKnJxX29sZGVzdF93cjsJLyogb2xkZXN0IHdyIG9uIHRoZSBTVyBSUSAqLwogCXUzMiBycV9zaXplX2xvZzI7CQkvKiBycSBzaXplICovCiAJdTMyIHJxX2FkZHI7CQkJLyogcnEgYWRhcHRlciBhZGRyZXNzICovCiAJdm9pZCBfX2lvbWVtICpkb29yYmVsbDsJCS8qIGtlcm5lbCBkYiAqLwogCXU2NCB1ZGI7CQkJLyogdXNlciBkYiBpZiBhbnkgKi8KKwlzdHJ1Y3QgY3hpb19yZGV2ICpyZGV2OwogfTsKIAogc3RydWN0IHQzX2NxIHsKQEAgLTY1OSw3ICs3MTgsNyBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgY3hpb19zZXRfd3FfaW5fZXJyb3Ioc3RydWN0IHQzX3dxICp3cSkKIHsKLQl3cS0+cXVldWUtPmZsaXRbMTNdID0gMTsKKwl3cS0+cXVldWUtPndxX2luX2Vyci5lcnIgPSAxOwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0M19jcWUgKmN4aW9fbmV4dF9od19jcWUoc3RydWN0IHQzX2NxICpjcSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5jCmluZGV4IDcxNTU0ZWEuLjQ0ODljODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guYwpAQCAtNzEsMTggKzcxLDE2IEBACiAJaWRyX2luaXQoJnJuaWNwLT5tbWlkcik7CiAJc3Bpbl9sb2NrX2luaXQoJnJuaWNwLT5sb2NrKTsKIAotCXJuaWNwLT5hdHRyLnZlbmRvcl9pZCA9IDB4MTY4OwotCXJuaWNwLT5hdHRyLnZlbmRvcl9wYXJ0X2lkID0gNzsKIAlybmljcC0+YXR0ci5tYXhfcXBzID0gVDNfTUFYX05VTV9RUCAtIDMyOwotCXJuaWNwLT5hdHRyLm1heF93cnMgPSAoMVVMIDw8IDI0KSAtIDE7CisJcm5pY3AtPmF0dHIubWF4X3dycyA9IFQzX01BWF9RUF9ERVBUSDsKIAlybmljcC0+YXR0ci5tYXhfc2dlX3Blcl93ciA9IFQzX01BWF9TR0U7CiAJcm5pY3AtPmF0dHIubWF4X3NnZV9wZXJfcmRtYV93cml0ZV93ciA9IFQzX01BWF9TR0U7CiAJcm5pY3AtPmF0dHIubWF4X2NxcyA9IFQzX01BWF9OVU1fQ1EgLSAxOwotCXJuaWNwLT5hdHRyLm1heF9jcWVzX3Blcl9jcSA9ICgxVUwgPDwgMjQpIC0gMTsKKwlybmljcC0+YXR0ci5tYXhfY3Flc19wZXJfY3EgPSBUM19NQVhfQ1FfREVQVEg7CiAJcm5pY3AtPmF0dHIubWF4X21lbV9yZWdzID0gY3hpb19udW1fc3RhZ3MoJnJuaWNwLT5yZGV2KTsKIAlybmljcC0+YXR0ci5tYXhfcGh5c19idWZfZW50cmllcyA9IFQzX01BWF9QQkxfU0laRTsKIAlybmljcC0+YXR0ci5tYXhfcGRzID0gVDNfTUFYX05VTV9QRCAtIDE7Ci0Jcm5pY3AtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzayA9IDB4N0ZGRjsJLyogNEtCLTEyOE1CICovCisJcm5pY3AtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzayA9IFQzX1BBR0VTSVpFX01BU0s7CiAJcm5pY3AtPmF0dHIubWF4X21yX3NpemUgPSBUM19NQVhfTVJfU0laRTsKIAlybmljcC0+YXR0ci5jYW5fcmVzaXplX3dxID0gMDsKIAlybmljcC0+YXR0ci5tYXhfcmRtYV9yZWFkc19wZXJfcXAgPSA4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoLmgKaW5kZXggZDI0MDlhNS4uMzc3MzQ1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2guaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaC5oCkBAIC00OCw4ICs0OCw2IEBACiBzdHJ1Y3QgaXdjaF9tcjsKIAogc3RydWN0IGl3Y2hfcm5pY19hdHRyaWJ1dGVzIHsKLQl1MzIgdmVuZG9yX2lkOwotCXUzMiB2ZW5kb3JfcGFydF9pZDsKIAl1MzIgbWF4X3FwczsKIAl1MzIgbWF4X3dyczsJCQkJLyogTWF4IGZvciBhbnkgU1EvUlEgKi8KIAl1MzIgbWF4X3NnZV9wZXJfd3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfY3EuYwppbmRleCA0ZWU4Y2NkLi5jZjU0NzRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX2NxLmMKQEAgLTgxLDYgKzgxLDcgQEAKIAl3Yy0+d3JfaWQgPSBjb29raWU7CiAJd2MtPnFwID0gJnFocC0+aWJxcDsKIAl3Yy0+dmVuZG9yX2VyciA9IENRRV9TVEFUVVMoY3FlKTsKKwl3Yy0+d2NfZmxhZ3MgPSAwOwogCiAJUERCRygiJXMgcXBpZCAweCV4IHR5cGUgJWQgb3Bjb2RlICVkIHN0YXR1cyAweCV4IHdyaWQgaGkgMHgleCAiCiAJICAgICAibG8gMHgleCBjb29raWUgMHglbGx4XG4iLCBfX2Z1bmNfXywKQEAgLTk0LDYgKzk1LDExIEBACiAJCWVsc2UKIAkJCXdjLT5ieXRlX2xlbiA9IDA7CiAJCXdjLT5vcGNvZGUgPSBJQl9XQ19SRUNWOworCQlpZiAoQ1FFX09QQ09ERShjcWUpID09IFQzX1NFTkRfV0lUSF9JTlYgfHwKKwkJICAgIENRRV9PUENPREUoY3FlKSA9PSBUM19TRU5EX1dJVEhfU0VfSU5WKSB7CisJCQl3Yy0+ZXguaW52YWxpZGF0ZV9ya2V5ID0gQ1FFX1dSSURfU1RBRyhjcWUpOworCQkJd2MtPndjX2ZsYWdzIHw9IElCX1dDX1dJVEhfSU5WQUxJREFURTsKKwkJfQogCX0gZWxzZSB7CiAJCXN3aXRjaCAoQ1FFX09QQ09ERShjcWUpKSB7CiAJCWNhc2UgVDNfUkRNQV9XUklURToKQEAgLTEwNSwxNyArMTExLDIwIEBACiAJCQlicmVhazsKIAkJY2FzZSBUM19TRU5EOgogCQljYXNlIFQzX1NFTkRfV0lUSF9TRToKKwkJY2FzZSBUM19TRU5EX1dJVEhfSU5WOgorCQljYXNlIFQzX1NFTkRfV0lUSF9TRV9JTlY6CiAJCQl3Yy0+b3Bjb2RlID0gSUJfV0NfU0VORDsKIAkJCWJyZWFrOwogCQljYXNlIFQzX0JJTkRfTVc6CiAJCQl3Yy0+b3Bjb2RlID0gSUJfV0NfQklORF9NVzsKIAkJCWJyZWFrOwogCi0JCS8qIHRoZXNlIGFyZW4ndCBzdXBwb3J0ZWQgeWV0ICovCi0JCWNhc2UgVDNfU0VORF9XSVRIX0lOVjoKLQkJY2FzZSBUM19TRU5EX1dJVEhfU0VfSU5WOgogCQljYXNlIFQzX0xPQ0FMX0lOVjoKKwkJCXdjLT5vcGNvZGUgPSBJQl9XQ19MT0NBTF9JTlY7CisJCQlicmVhazsKIAkJY2FzZSBUM19GQVNUX1JFR0lTVEVSOgorCQkJd2MtPm9wY29kZSA9IElCX1dDX0ZBU1RfUkVHX01SOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlwcmludGsoS0VSTl9FUlIgTU9EICJVbmV4cGVjdGVkIG9wY29kZSAlZCAiCiAJCQkgICAgICAgImluIHRoZSBDUUUgcmVjZWl2ZWQgZm9yIFFQSUQ9MHglMHhcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuYwppbmRleCA4OTM0MTc4Li5iODk2NDBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmMKQEAgLTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJpd2NoX3Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiaXdjaF9jbS5oIgogI2luY2x1ZGUgIml3Y2hfdXNlci5oIgorI2luY2x1ZGUgImNvbW1vbi5oIgogCiBzdGF0aWMgaW50IGl3Y2hfbW9kaWZ5X3BvcnQoc3RydWN0IGliX2RldmljZSAqaWJkZXYsCiAJCQkgICAgdTggcG9ydCwgaW50IHBvcnRfbW9kaWZ5X21hc2ssCkBAIC03NDcsNiArNzQ4LDcgQEAKIAltaHAtPmF0dHIudHlwZSA9IFRQVF9NVzsKIAltaHAtPmF0dHIuc3RhZyA9IHN0YWc7CiAJbW1pZCA9IChzdGFnKSA+PiA4OworCW1ocC0+aWJtdy5ya2V5ID0gc3RhZzsKIAlpbnNlcnRfaGFuZGxlKHJocCwgJnJocC0+bW1pZHIsIG1ocCwgbW1pZCk7CiAJUERCRygiJXMgbW1pZCAweCV4IG1ocCAlcCBzdGFnIDB4JXhcbiIsIF9fZnVuY19fLCBtbWlkLCBtaHAsIHN0YWcpOwogCXJldHVybiAmKG1ocC0+aWJtdyk7CkBAIC03NjgsNiArNzcwLDY4IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgaWJfbXIgKml3Y2hfYWxsb2NfZmFzdF9yZWdfbXIoc3RydWN0IGliX3BkICpwZCwgaW50IHBibF9kZXB0aCkKK3sKKwlzdHJ1Y3QgaXdjaF9kZXYgKnJocDsKKwlzdHJ1Y3QgaXdjaF9wZCAqcGhwOworCXN0cnVjdCBpd2NoX21yICptaHA7CisJdTMyIG1taWQ7CisJdTMyIHN0YWcgPSAwOworCWludCByZXQ7CisKKwlwaHAgPSB0b19pd2NoX3BkKHBkKTsKKwlyaHAgPSBwaHAtPnJocDsKKwltaHAgPSBremFsbG9jKHNpemVvZigqbWhwKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFtaHApCisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisJbWhwLT5yaHAgPSByaHA7CisJcmV0ID0gaXdjaF9hbGxvY19wYmwobWhwLCBwYmxfZGVwdGgpOworCWlmIChyZXQpIHsKKwkJa2ZyZWUobWhwKTsKKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKKwl9CisJbWhwLT5hdHRyLnBibF9zaXplID0gcGJsX2RlcHRoOworCXJldCA9IGN4aW9fYWxsb2NhdGVfc3RhZygmcmhwLT5yZGV2LCAmc3RhZywgcGhwLT5wZGlkLAorCQkJCSBtaHAtPmF0dHIucGJsX3NpemUsIG1ocC0+YXR0ci5wYmxfYWRkcik7CisJaWYgKHJldCkgeworCQlpd2NoX2ZyZWVfcGJsKG1ocCk7CisJCWtmcmVlKG1ocCk7CisJCXJldHVybiBFUlJfUFRSKHJldCk7CisJfQorCW1ocC0+YXR0ci5wZGlkID0gcGhwLT5wZGlkOworCW1ocC0+YXR0ci50eXBlID0gVFBUX05PTl9TSEFSRURfTVI7CisJbWhwLT5hdHRyLnN0YWcgPSBzdGFnOworCW1ocC0+YXR0ci5zdGF0ZSA9IDE7CisJbW1pZCA9IChzdGFnKSA+PiA4OworCW1ocC0+aWJtci5ya2V5ID0gbWhwLT5pYm1yLmxrZXkgPSBzdGFnOworCWluc2VydF9oYW5kbGUocmhwLCAmcmhwLT5tbWlkciwgbWhwLCBtbWlkKTsKKwlQREJHKCIlcyBtbWlkIDB4JXggbWhwICVwIHN0YWcgMHgleFxuIiwgX19mdW5jX18sIG1taWQsIG1ocCwgc3RhZyk7CisJcmV0dXJuICYobWhwLT5pYm1yKTsKK30KKworc3RhdGljIHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKml3Y2hfYWxsb2NfZmFzdHJlZ19wYmwoCisJCQkJCXN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCQkJaW50IHBhZ2VfbGlzdF9sZW4pCit7CisJc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqcGFnZV9saXN0OworCisJcGFnZV9saXN0ID0ga21hbGxvYyhzaXplb2YgKnBhZ2VfbGlzdCArIHBhZ2VfbGlzdF9sZW4gKiBzaXplb2YodTY0KSwKKwkJCSAgICBHRlBfS0VSTkVMKTsKKwlpZiAoIXBhZ2VfbGlzdCkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisKKwlwYWdlX2xpc3QtPnBhZ2VfbGlzdCA9ICh1NjQgKikocGFnZV9saXN0ICsgMSk7CisJcGFnZV9saXN0LT5tYXhfcGFnZV9saXN0X2xlbiA9IHBhZ2VfbGlzdF9sZW47CisKKwlyZXR1cm4gcGFnZV9saXN0OworfQorCitzdGF0aWMgdm9pZCBpd2NoX2ZyZWVfZmFzdHJlZ19wYmwoc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqcGFnZV9saXN0KQoreworCWtmcmVlKHBhZ2VfbGlzdCk7Cit9CisKIHN0YXRpYyBpbnQgaXdjaF9kZXN0cm95X3FwKHN0cnVjdCBpYl9xcCAqaWJfcXApCiB7CiAJc3RydWN0IGl3Y2hfZGV2ICpyaHA7CkBAIC04NDMsNiArOTA3LDE1IEBACiAJICovCiAJc3FzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKGF0dHJzLT5jYXAubWF4X3NlbmRfd3IpOwogCXdxc2l6ZSA9IHJvdW5kdXBfcG93X29mX3R3byhycXNpemUgKyBzcXNpemUpOworCisJLyoKKwkgKiBLZXJuZWwgdXNlcnMgbmVlZCBtb3JlIHdxIHNwYWNlIGZvciBmYXN0cmVnIFdScyB3aGljaCBjYW4gdGFrZQorCSAqIDIgV1IgZnJhZ21lbnRzLgorCSAqLworCXVjb250ZXh0ID0gcGQtPnVvYmplY3QgPyB0b19pd2NoX3Vjb250ZXh0KHBkLT51b2JqZWN0LT5jb250ZXh0KSA6IE5VTEw7CisJaWYgKCF1Y29udGV4dCAmJiB3cXNpemUgPCAocnFzaXplICsgKDIgKiBzcXNpemUpKSkKKwkJd3FzaXplID0gcm91bmR1cF9wb3dfb2ZfdHdvKHJxc2l6ZSArCisJCQkJcm91bmR1cF9wb3dfb2ZfdHdvKGF0dHJzLT5jYXAubWF4X3NlbmRfd3IgKiAyKSk7CiAJUERCRygiJXMgd3FzaXplICVkIHNxc2l6ZSAlZCBycXNpemUgJWRcbiIsIF9fZnVuY19fLAogCSAgICAgd3FzaXplLCBzcXNpemUsIHJxc2l6ZSk7CiAJcWhwID0ga3phbGxvYyhzaXplb2YoKnFocCksIEdGUF9LRVJORUwpOwpAQCAtODUxLDcgKzkyNCw2IEBACiAJcWhwLT53cS5zaXplX2xvZzIgPSBpbG9nMih3cXNpemUpOwogCXFocC0+d3EucnFfc2l6ZV9sb2cyID0gaWxvZzIocnFzaXplKTsKIAlxaHAtPndxLnNxX3NpemVfbG9nMiA9IGlsb2cyKHNxc2l6ZSk7Ci0JdWNvbnRleHQgPSBwZC0+dW9iamVjdCA/IHRvX2l3Y2hfdWNvbnRleHQocGQtPnVvYmplY3QtPmNvbnRleHQpIDogTlVMTDsKIAlpZiAoY3hpb19jcmVhdGVfcXAoJnJocC0+cmRldiwgIXVkYXRhLCAmcWhwLT53cSwKIAkJCSAgIHVjb250ZXh0ID8gJnVjb250ZXh0LT51Y3R4IDogJnJocC0+cmRldi51Y3R4KSkgewogCQlrZnJlZShxaHApOwpAQCAtOTM1LDEwICsxMDA3LDEwIEBACiAJcWhwLT5pYnFwLnFwX251bSA9IHFocC0+d3EucXBpZDsKIAlpbml0X3RpbWVyKCYocWhwLT50aW1lcikpOwogCVBEQkcoIiVzIHNxX251bV9lbnRyaWVzICVkLCBycV9udW1fZW50cmllcyAlZCAiCi0JICAgICAicXBpZCAweCUweCBxaHAgJXAgZG1hX2FkZHIgMHglbGx4IHNpemUgJWRcbiIsCisJICAgICAicXBpZCAweCUweCBxaHAgJXAgZG1hX2FkZHIgMHglbGx4IHNpemUgJWQgcnFfYWRkciAweCV4XG4iLAogCSAgICAgX19mdW5jX18sIHFocC0+YXR0ci5zcV9udW1fZW50cmllcywgcWhwLT5hdHRyLnJxX251bV9lbnRyaWVzLAogCSAgICAgcWhwLT53cS5xcGlkLCBxaHAsICh1bnNpZ25lZCBsb25nIGxvbmcpIHFocC0+d3EuZG1hX2FkZHIsCi0JICAgICAxIDw8IHFocC0+d3Euc2l6ZV9sb2cyKTsKKwkgICAgIDEgPDwgcWhwLT53cS5zaXplX2xvZzIsIHFocC0+d3EucnFfYWRkcik7CiAJcmV0dXJuICZxaHAtPmlicXA7CiB9CiAKQEAgLTEwMjMsNiArMTA5NSwyOSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgdTY0IGZ3X3ZlcnNfc3RyaW5nX3RvX3U2NChzdHJ1Y3QgaXdjaF9kZXYgKml3Y2hfZGV2KQoreworCXN0cnVjdCBldGh0b29sX2RydmluZm8gaW5mbzsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CisJY2hhciAqY3AsICpuZXh0OworCXVuc2lnbmVkIGZ3X21haiwgZndfbWluLCBmd19taWM7CisKKwlydG5sX2xvY2soKTsKKwlsbGRldi0+ZXRodG9vbF9vcHMtPmdldF9kcnZpbmZvKGxsZGV2LCAmaW5mbyk7CisJcnRubF91bmxvY2soKTsKKworCW5leHQgPSBpbmZvLmZ3X3ZlcnNpb24gKyAxOworCWNwID0gc3Ryc2VwKCZuZXh0LCAiLiIpOworCXNzY2FuZihjcCwgIiVpIiwgJmZ3X21haik7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWluKTsKKwljcCA9IHN0cnNlcCgmbmV4dCwgIi4iKTsKKwlzc2NhbmYoY3AsICIlaSIsICZmd19taWMpOworCisJcmV0dXJuICgoKHU2NClmd19tYWogJiAweGZmZmYpIDw8IDMyKSB8ICgoZndfbWluICYgMHhmZmZmKSA8PCAxNikgfAorCSAgICAgICAoZndfbWljICYgMHhmZmZmKTsKK30KKwogc3RhdGljIGludCBpd2NoX3F1ZXJ5X2RldmljZShzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwKIAkJCSAgICAgc3RydWN0IGliX2RldmljZV9hdHRyICpwcm9wcykKIHsKQEAgLTEwMzMsNyArMTEyOCwxMCBAQAogCWRldiA9IHRvX2l3Y2hfZGV2KGliZGV2KTsKIAltZW1zZXQocHJvcHMsIDAsIHNpemVvZiAqcHJvcHMpOwogCW1lbWNweSgmcHJvcHMtPnN5c19pbWFnZV9ndWlkLCBkZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2LT5kZXZfYWRkciwgNik7CisJcHJvcHMtPmh3X3ZlciA9IGRldi0+cmRldi50M2NkZXZfcC0+dHlwZTsKKwlwcm9wcy0+ZndfdmVyID0gZndfdmVyc19zdHJpbmdfdG9fdTY0KGRldik7CiAJcHJvcHMtPmRldmljZV9jYXBfZmxhZ3MgPSBkZXYtPmRldmljZV9jYXBfZmxhZ3M7CisJcHJvcHMtPnBhZ2Vfc2l6ZV9jYXAgPSBkZXYtPmF0dHIubWVtX3Bnc2l6ZXNfYml0bWFzazsKIAlwcm9wcy0+dmVuZG9yX2lkID0gKHUzMilkZXYtPnJkZXYucm5pY19pbmZvLnBkZXYtPnZlbmRvcjsKIAlwcm9wcy0+dmVuZG9yX3BhcnRfaWQgPSAodTMyKWRldi0+cmRldi5ybmljX2luZm8ucGRldi0+ZGV2aWNlOwogCXByb3BzLT5tYXhfbXJfc2l6ZSA9IGRldi0+YXR0ci5tYXhfbXJfc2l6ZTsKQEAgLTEwNDgsNiArMTE0Niw3IEBACiAJcHJvcHMtPm1heF9tciA9IGRldi0+YXR0ci5tYXhfbWVtX3JlZ3M7CiAJcHJvcHMtPm1heF9wZCA9IGRldi0+YXR0ci5tYXhfcGRzOwogCXByb3BzLT5sb2NhbF9jYV9hY2tfZGVsYXkgPSAwOworCXByb3BzLT5tYXhfZmFzdF9yZWdfcGFnZV9saXN0X2xlbiA9IFQzX01BWF9GQVNUUkVHX0RFUFRIOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDg4LDYgKzExODcsMjggQEAKIAlyZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPnR5cGUpOwogfQogCitzdGF0aWMgaW50IGZ3X3N1cHBvcnRzX2Zhc3RyZWcoc3RydWN0IGl3Y2hfZGV2ICppd2NoX2RldikKK3sKKwlzdHJ1Y3QgZXRodG9vbF9kcnZpbmZvIGluZm87CisJc3RydWN0IG5ldF9kZXZpY2UgKmxsZGV2ID0gaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2OworCWNoYXIgKmNwLCAqbmV4dDsKKwl1bnNpZ25lZCBmd19tYWosIGZ3X21pbjsKKworCXJ0bmxfbG9jaygpOworCWxsZGV2LT5ldGh0b29sX29wcy0+Z2V0X2RydmluZm8obGxkZXYsICZpbmZvKTsKKwlydG5sX3VubG9jaygpOworCisJbmV4dCA9IGluZm8uZndfdmVyc2lvbisxOworCWNwID0gc3Ryc2VwKCZuZXh0LCAiLiIpOworCXNzY2FuZihjcCwgIiVpIiwgJmZ3X21haik7CisJY3AgPSBzdHJzZXAoJm5leHQsICIuIik7CisJc3NjYW5mKGNwLCAiJWkiLCAmZndfbWluKTsKKworCVBEQkcoIiVzIG1haiAldSBtaW4gJXVcbiIsIF9fZnVuY19fLCBmd19tYWosIGZ3X21pbik7CisKKwlyZXR1cm4gZndfbWFqID4gNiB8fCAoZndfbWFqID09IDYgJiYgZndfbWluID4gMCk7Cit9CisKIHN0YXRpYyBzc2l6ZV90IHNob3dfZndfdmVyKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAlzdHJ1Y3QgaXdjaF9kZXYgKml3Y2hfZGV2ID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IGl3Y2hfZGV2LApAQCAtMTA5Niw3ICsxMjE3LDkgQEAKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbGxkZXYgPSBpd2NoX2Rldi0+cmRldi50M2NkZXZfcC0+bGxkZXY7CiAKIAlQREJHKCIlcyBkZXYgMHglcFxuIiwgX19mdW5jX18sIGRldik7CisJcnRubF9sb2NrKCk7CiAJbGxkZXYtPmV0aHRvb2xfb3BzLT5nZXRfZHJ2aW5mbyhsbGRldiwgJmluZm8pOworCXJ0bmxfdW5sb2NrKCk7CiAJcmV0dXJuIHNwcmludGYoYnVmLCAiJXNcbiIsIGluZm8uZndfdmVyc2lvbik7CiB9CiAKQEAgLTExMDksNyArMTIzMiw5IEBACiAJc3RydWN0IG5ldF9kZXZpY2UgKmxsZGV2ID0gaXdjaF9kZXYtPnJkZXYudDNjZGV2X3AtPmxsZGV2OwogCiAJUERCRygiJXMgZGV2IDB4JXBcbiIsIF9fZnVuY19fLCBkZXYpOworCXJ0bmxfbG9jaygpOwogCWxsZGV2LT5ldGh0b29sX29wcy0+Z2V0X2RydmluZm8obGxkZXYsICZpbmZvKTsKKwlydG5sX3VubG9jaygpOwogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4iLCBpbmZvLmRyaXZlcik7CiB9CiAKQEAgLTExMjMsNiArMTI0OCw2MSBAQAogCQkgICAgICAgaXdjaF9kZXYtPnJkZXYucm5pY19pbmZvLnBkZXYtPmRldmljZSk7CiB9CiAKK3N0YXRpYyBpbnQgaXdjaF9nZXRfbWliKHN0cnVjdCBpYl9kZXZpY2UgKmliZGV2LAorCQkJdW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyAqc3RhdHMpCit7CisJc3RydWN0IGl3Y2hfZGV2ICpkZXY7CisJc3RydWN0IHRwX21pYl9zdGF0cyBtOworCWludCByZXQ7CisKKwlQREJHKCIlcyBpYmRldiAlcFxuIiwgX19mdW5jX18sIGliZGV2KTsKKwlkZXYgPSB0b19pd2NoX2RldihpYmRldik7CisJcmV0ID0gZGV2LT5yZGV2LnQzY2Rldl9wLT5jdGwoZGV2LT5yZGV2LnQzY2Rldl9wLCBSRE1BX0dFVF9NSUIsICZtKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVOT1NZUzsKKworCW1lbXNldChzdGF0cywgMCwgc2l6ZW9mICpzdGF0cyk7CisJc3RhdHMtPml3LmlwSW5SZWNlaXZlcyA9ICgodTY0KSBtLmlwSW5SZWNlaXZlX2hpIDw8IDMyKSArCisJCQkJbS5pcEluUmVjZWl2ZV9sbzsKKwlzdGF0cy0+aXcuaXBJbkhkckVycm9ycyA9ICgodTY0KSBtLmlwSW5IZHJFcnJvcnNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBJbkhkckVycm9yc19sbzsKKwlzdGF0cy0+aXcuaXBJbkFkZHJFcnJvcnMgPSAoKHU2NCkgbS5pcEluQWRkckVycm9yc19oaSA8PCAzMikgKworCQkJCSAgIG0uaXBJbkFkZHJFcnJvcnNfbG87CisJc3RhdHMtPml3LmlwSW5Vbmtub3duUHJvdG9zID0gKCh1NjQpIG0uaXBJblVua25vd25Qcm90b3NfaGkgPDwgMzIpICsKKwkJCQkgICAgICBtLmlwSW5Vbmtub3duUHJvdG9zX2xvOworCXN0YXRzLT5pdy5pcEluRGlzY2FyZHMgPSAoKHU2NCkgbS5pcEluRGlzY2FyZHNfaGkgPDwgMzIpICsKKwkJCQkgbS5pcEluRGlzY2FyZHNfbG87CisJc3RhdHMtPml3LmlwSW5EZWxpdmVycyA9ICgodTY0KSBtLmlwSW5EZWxpdmVyc19oaSA8PCAzMikgKworCQkJCSBtLmlwSW5EZWxpdmVyc19sbzsKKwlzdGF0cy0+aXcuaXBPdXRSZXF1ZXN0cyA9ICgodTY0KSBtLmlwT3V0UmVxdWVzdHNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXRSZXF1ZXN0c19sbzsKKwlzdGF0cy0+aXcuaXBPdXREaXNjYXJkcyA9ICgodTY0KSBtLmlwT3V0RGlzY2FyZHNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXREaXNjYXJkc19sbzsKKwlzdGF0cy0+aXcuaXBPdXROb1JvdXRlcyA9ICgodTY0KSBtLmlwT3V0Tm9Sb3V0ZXNfaGkgPDwgMzIpICsKKwkJCQkgIG0uaXBPdXROb1JvdXRlc19sbzsKKwlzdGF0cy0+aXcuaXBSZWFzbVRpbWVvdXQgPSAodTY0KSBtLmlwUmVhc21UaW1lb3V0OworCXN0YXRzLT5pdy5pcFJlYXNtUmVxZHMgPSAodTY0KSBtLmlwUmVhc21SZXFkczsKKwlzdGF0cy0+aXcuaXBSZWFzbU9LcyA9ICh1NjQpIG0uaXBSZWFzbU9LczsKKwlzdGF0cy0+aXcuaXBSZWFzbUZhaWxzID0gKHU2NCkgbS5pcFJlYXNtRmFpbHM7CisJc3RhdHMtPml3LnRjcEFjdGl2ZU9wZW5zID0gKHU2NCkgbS50Y3BBY3RpdmVPcGVuczsKKwlzdGF0cy0+aXcudGNwUGFzc2l2ZU9wZW5zID0gKHU2NCkgbS50Y3BQYXNzaXZlT3BlbnM7CisJc3RhdHMtPml3LnRjcEF0dGVtcHRGYWlscyA9ICh1NjQpIG0udGNwQXR0ZW1wdEZhaWxzOworCXN0YXRzLT5pdy50Y3BFc3RhYlJlc2V0cyA9ICh1NjQpIG0udGNwRXN0YWJSZXNldHM7CisJc3RhdHMtPml3LnRjcE91dFJzdHMgPSAodTY0KSBtLnRjcE91dFJzdHM7CisJc3RhdHMtPml3LnRjcEN1cnJFc3RhYiA9ICh1NjQpIG0udGNwQ3VyckVzdGFiOworCXN0YXRzLT5pdy50Y3BJblNlZ3MgPSAoKHU2NCkgbS50Y3BJblNlZ3NfaGkgPDwgMzIpICsKKwkJCSAgICAgIG0udGNwSW5TZWdzX2xvOworCXN0YXRzLT5pdy50Y3BPdXRTZWdzID0gKCh1NjQpIG0udGNwT3V0U2Vnc19oaSA8PCAzMikgKworCQkJICAgICAgIG0udGNwT3V0U2Vnc19sbzsKKwlzdGF0cy0+aXcudGNwUmV0cmFuc1NlZ3MgPSAoKHU2NCkgbS50Y3BSZXRyYW5zU2VnX2hpIDw8IDMyKSArCisJCQkJICBtLnRjcFJldHJhbnNTZWdfbG87CisJc3RhdHMtPml3LnRjcEluRXJycyA9ICgodTY0KSBtLnRjcEluRXJyc19oaSA8PCAzMikgKworCQkJICAgICAgbS50Y3BJbkVycnNfbG87CisJc3RhdHMtPml3LnRjcFJ0b01pbiA9ICh1NjQpIG0udGNwUnRvTWluOworCXN0YXRzLT5pdy50Y3BSdG9NYXggPSAodTY0KSBtLnRjcFJ0b01heDsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIERFVklDRV9BVFRSKGh3X3JldiwgU19JUlVHTywgc2hvd19yZXYsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGZ3X3ZlciwgU19JUlVHTywgc2hvd19md192ZXIsIE5VTEwpOwogc3RhdGljIERFVklDRV9BVFRSKGhjYV90eXBlLCBTX0lSVUdPLCBzaG93X2hjYSwgTlVMTCk7CkBAIC0xMTMyLDcgKzEzMTIsNyBAQAogCSZkZXZfYXR0cl9od19yZXYsCiAJJmRldl9hdHRyX2Z3X3ZlciwKIAkmZGV2X2F0dHJfaGNhX3R5cGUsCi0JJmRldl9hdHRyX2JvYXJkX2lkCisJJmRldl9hdHRyX2JvYXJkX2lkLAogfTsKIAogaW50IGl3Y2hfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBpd2NoX2RldiAqZGV2KQpAQCAtMTE0NSw4ICsxMzI1LDEyIEBACiAJbWVtc2V0KCZkZXYtPmliZGV2Lm5vZGVfZ3VpZCwgMCwgc2l6ZW9mKGRldi0+aWJkZXYubm9kZV9ndWlkKSk7CiAJbWVtY3B5KCZkZXYtPmliZGV2Lm5vZGVfZ3VpZCwgZGV2LT5yZGV2LnQzY2Rldl9wLT5sbGRldi0+ZGV2X2FkZHIsIDYpOwogCWRldi0+aWJkZXYub3duZXIgPSBUSElTX01PRFVMRTsKLQlkZXYtPmRldmljZV9jYXBfZmxhZ3MgPQotCSAgICAoSUJfREVWSUNFX1pFUk9fU1RBRyB8IElCX0RFVklDRV9NRU1fV0lORE9XKTsKKwlkZXYtPmRldmljZV9jYXBfZmxhZ3MgPSBJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkgfCBJQl9ERVZJQ0VfTUVNX1dJTkRPVzsKKworCS8qIGN4Z2IzIHN1cHBvcnRzIFNUYWcgMC4gKi8KKwlkZXYtPmliZGV2LmxvY2FsX2RtYV9sa2V5ID0gMDsKKwlpZiAoZndfc3VwcG9ydHNfZmFzdHJlZyhkZXYpKQorCQlkZXYtPmRldmljZV9jYXBfZmxhZ3MgfD0gSUJfREVWSUNFX01FTV9NR1RfRVhURU5TSU9OUzsKIAogCWRldi0+aWJkZXYudXZlcmJzX2NtZF9tYXNrID0KIAkgICAgKDF1bGwgPDwgSUJfVVNFUl9WRVJCU19DTURfR0VUX0NPTlRFWFQpIHwKQEAgLTExOTgsMTUgKzEzODIsMTYgQEAKIAlkZXYtPmliZGV2LmFsbG9jX213ID0gaXdjaF9hbGxvY19tdzsKIAlkZXYtPmliZGV2LmJpbmRfbXcgPSBpd2NoX2JpbmRfbXc7CiAJZGV2LT5pYmRldi5kZWFsbG9jX213ID0gaXdjaF9kZWFsbG9jX213OwotCisJZGV2LT5pYmRldi5hbGxvY19mYXN0X3JlZ19tciA9IGl3Y2hfYWxsb2NfZmFzdF9yZWdfbXI7CisJZGV2LT5pYmRldi5hbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QgPSBpd2NoX2FsbG9jX2Zhc3RyZWdfcGJsOworCWRldi0+aWJkZXYuZnJlZV9mYXN0X3JlZ19wYWdlX2xpc3QgPSBpd2NoX2ZyZWVfZmFzdHJlZ19wYmw7CiAJZGV2LT5pYmRldi5hdHRhY2hfbWNhc3QgPSBpd2NoX211bHRpY2FzdF9hdHRhY2g7CiAJZGV2LT5pYmRldi5kZXRhY2hfbWNhc3QgPSBpd2NoX211bHRpY2FzdF9kZXRhY2g7CiAJZGV2LT5pYmRldi5wcm9jZXNzX21hZCA9IGl3Y2hfcHJvY2Vzc19tYWQ7Ci0KIAlkZXYtPmliZGV2LnJlcV9ub3RpZnlfY3EgPSBpd2NoX2FybV9jcTsKIAlkZXYtPmliZGV2LnBvc3Rfc2VuZCA9IGl3Y2hfcG9zdF9zZW5kOwogCWRldi0+aWJkZXYucG9zdF9yZWN2ID0gaXdjaF9wb3N0X3JlY2VpdmU7Ci0KKwlkZXYtPmliZGV2LmdldF9wcm90b2NvbF9zdGF0cyA9IGl3Y2hfZ2V0X21pYjsKIAogCWRldi0+aWJkZXYuaXdjbSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpd19jbV92ZXJicyksIEdGUF9LRVJORUwpOwogCWlmICghZGV2LT5pYmRldi5pd2NtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3Byb3ZpZGVyLmgKaW5kZXggODM2MTYzZi4uZjVjZWNhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcHJvdmlkZXIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9wcm92aWRlci5oCkBAIC0yOTYsMTQgKzI5Niw2IEBACiAJICAgICAgIFRQVF9MT0NBTF9SRUFEOwogfQogCi1zdGF0aWMgaW5saW5lIHUzMiBpd2NoX2liX3RvX213YmluZF9hY2Nlc3MoaW50IGFjYykKLXsKLQlyZXR1cm4gKGFjYyAmIElCX0FDQ0VTU19SRU1PVEVfV1JJVEUgPyBUM19NRU1fQUNDRVNTX1JFTV9XUklURSA6IDApIHwKLQkgICAgICAgKGFjYyAmIElCX0FDQ0VTU19SRU1PVEVfUkVBRCA/IFQzX01FTV9BQ0NFU1NfUkVNX1JFQUQgOiAwKSB8Ci0JICAgICAgIChhY2MgJiBJQl9BQ0NFU1NfTE9DQUxfV1JJVEUgPyBUM19NRU1fQUNDRVNTX0xPQ0FMX1dSSVRFIDogMCkgfAotCSAgICAgICBUM19NRU1fQUNDRVNTX0xPQ0FMX1JFQUQ7Ci19Ci0KIGVudW0gaXdjaF9tbWlkX3N0YXRlIHsKIAlJV0NIX1NUQUdfU1RBVEVfVkFMSUQsCiAJSVdDSF9TVEFHX1NUQVRFX0lOVkFMSUQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjMvaXdjaF9xcC5jCmluZGV4IDc5ZGJlNWIuLjlhM2JlM2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9jeGdiMy9pd2NoX3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2IzL2l3Y2hfcXAuYwpAQCAtMzMsMTAgKzMzLDExIEBACiAjaW5jbHVkZSAiaXdjaC5oIgogI2luY2x1ZGUgIml3Y2hfY20uaCIKICNpbmNsdWRlICJjeGlvX2hhbC5oIgorI2luY2x1ZGUgImN4aW9fcmVzb3VyY2UuaCIKIAogI2RlZmluZSBOT19TVVBQT1JUIC0xCiAKLXN0YXRpYyBpbnQgaXdjaF9idWlsZF9yZG1hX3NlbmQodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorc3RhdGljIGludCBidWlsZF9yZG1hX3NlbmQodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAogCQkJCXU4ICogZmxpdF9jbnQpCiB7CiAJaW50IGk7CkBAIC00NCw1OSArNDUsNDQgQEAKIAogCXN3aXRjaCAod3ItPm9wY29kZSkgewogCWNhc2UgSUJfV1JfU0VORDoKLQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCWlmICh3ci0+c2VuZF9mbGFncyAmIElCX1NFTkRfU09MSUNJVEVEKQogCQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkRfV0lUSF9TRTsKIAkJZWxzZQogCQkJd3FlLT5zZW5kLnJkbWFvcCA9IFQzX1NFTkQ7CiAJCXdxZS0+c2VuZC5yZW1fc3RhZyA9IDA7CiAJCWJyZWFrOwotI2lmIDAJCQkJLyogTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgKi8KLQljYXNlIFRZUEVfU0VORF9JTlZBTElEQVRFOgotCWNhc2UgVFlQRV9TRU5EX0lOVkFMSURBVEVfSU1NRURJQVRFOgotCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORF9XSVRIX0lOVjsKLQkJd3FlLT5zZW5kLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLnJkbWEucmtleSk7CisJY2FzZSBJQl9XUl9TRU5EX1dJVEhfSU5WOgorCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX1NPTElDSVRFRCkKKwkJCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfU0VfSU5WOworCQllbHNlCisJCQl3cWUtPnNlbmQucmRtYW9wID0gVDNfU0VORF9XSVRIX0lOVjsKKwkJd3FlLT5zZW5kLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPmV4LmludmFsaWRhdGVfcmtleSk7CiAJCWJyZWFrOwotCWNhc2UgVFlQRV9TRU5EX1NFX0lOVkFMSURBVEU6Ci0JCXdxZS0+c2VuZC5yZG1hb3AgPSBUM19TRU5EX1dJVEhfU0VfSU5WOwotCQl3cWUtPnNlbmQucmVtX3N0YWcgPSBjcHVfdG9fYmUzMih3ci0+d3IucmRtYS5ya2V5KTsKLQkJYnJlYWs7Ci0jZW5kaWYKIAlkZWZhdWx0OgotCQlicmVhazsKKwkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmICh3ci0+bnVtX3NnZSA+IFQzX01BWF9TR0UpCiAJCXJldHVybiAtRUlOVkFMOwogCXdxZS0+c2VuZC5yZXNlcnZlZFswXSA9IDA7CiAJd3FlLT5zZW5kLnJlc2VydmVkWzFdID0gMDsKIAl3cWUtPnNlbmQucmVzZXJ2ZWRbMl0gPSAwOwotCWlmICh3ci0+b3Bjb2RlID09IElCX1dSX1NFTkRfV0lUSF9JTU0pIHsKLQkJcGxlbiA9IDQ7Ci0JCXdxZS0+c2VuZC5zZ2xbMF0uc3RhZyA9IHdyLT5leC5pbW1fZGF0YTsKLQkJd3FlLT5zZW5kLnNnbFswXS5sZW4gPSBfX2NvbnN0YW50X2NwdV90b19iZTMyKDApOwotCQl3cWUtPnNlbmQubnVtX3NnbGUgPSBfX2NvbnN0YW50X2NwdV90b19iZTMyKDApOwotCQkqZmxpdF9jbnQgPSA1OwotCX0gZWxzZSB7Ci0JCXBsZW4gPSAwOwotCQlmb3IgKGkgPSAwOyBpIDwgd3ItPm51bV9zZ2U7IGkrKykgewotCQkJaWYgKChwbGVuICsgd3ItPnNnX2xpc3RbaV0ubGVuZ3RoKSA8IHBsZW4pIHsKLQkJCQlyZXR1cm4gLUVNU0dTSVpFOwotCQkJfQotCQkJcGxlbiArPSB3ci0+c2dfbGlzdFtpXS5sZW5ndGg7Ci0JCQl3cWUtPnNlbmQuc2dsW2ldLnN0YWcgPQotCQkJICAgIGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxrZXkpOwotCQkJd3FlLT5zZW5kLnNnbFtpXS5sZW4gPQotCQkJICAgIGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7Ci0JCQl3cWUtPnNlbmQuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQod3ItPnNnX2xpc3RbaV0uYWRkcik7Ci0JCX0KLQkJd3FlLT5zZW5kLm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOwotCQkqZmxpdF9jbnQgPSA0ICsgKCh3ci0+bnVtX3NnZSkgPDwgMSk7CisJcGxlbiA9IDA7CisJZm9yIChpID0gMDsgaSA8IHdyLT5udW1fc2dlOyBpKyspIHsKKwkJaWYgKChwbGVuICsgd3ItPnNnX2xpc3RbaV0ubGVuZ3RoKSA8IHBsZW4pCisJCQlyZXR1cm4gLUVNU0dTSVpFOworCisJCXBsZW4gKz0gd3ItPnNnX2xpc3RbaV0ubGVuZ3RoOworCQl3cWUtPnNlbmQuc2dsW2ldLnN0YWcgPSBjcHVfdG9fYmUzMih3ci0+c2dfbGlzdFtpXS5sa2V5KTsKKwkJd3FlLT5zZW5kLnNnbFtpXS5sZW4gPSBjcHVfdG9fYmUzMih3ci0+c2dfbGlzdFtpXS5sZW5ndGgpOworCQl3cWUtPnNlbmQuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQod3ItPnNnX2xpc3RbaV0uYWRkcik7CiAJfQorCXdxZS0+c2VuZC5udW1fc2dsZSA9IGNwdV90b19iZTMyKHdyLT5udW1fc2dlKTsKKwkqZmxpdF9jbnQgPSA0ICsgKCh3ci0+bnVtX3NnZSkgPDwgMSk7CiAJd3FlLT5zZW5kLnBsZW4gPSBjcHVfdG9fYmUzMihwbGVuKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpd2NoX2J1aWxkX3JkbWFfd3JpdGUodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorc3RhdGljIGludCBidWlsZF9yZG1hX3dyaXRlKHVuaW9uIHQzX3dyICp3cWUsIHN0cnVjdCBpYl9zZW5kX3dyICp3ciwKIAkJCQkgdTggKmZsaXRfY250KQogewogCWludCBpOwpAQCAtMTM3LDE1ICsxMjMsMTggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpd2NoX2J1aWxkX3JkbWFfcmVhZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCitzdGF0aWMgaW50IGJ1aWxkX3JkbWFfcmVhZCh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCiAJCQkJdTggKmZsaXRfY250KQogewogCWlmICh3ci0+bnVtX3NnZSA+IDEpCiAJCXJldHVybiAtRUlOVkFMOwogCXdxZS0+cmVhZC5yZG1hb3AgPSBUM19SRUFEX1JFUTsKKwlpZiAod3ItPm9wY29kZSA9PSBJQl9XUl9SRE1BX1JFQURfV0lUSF9JTlYpCisJCXdxZS0+cmVhZC5sb2NhbF9pbnYgPSAxOworCWVsc2UKKwkJd3FlLT5yZWFkLmxvY2FsX2ludiA9IDA7CiAJd3FlLT5yZWFkLnJlc2VydmVkWzBdID0gMDsKIAl3cWUtPnJlYWQucmVzZXJ2ZWRbMV0gPSAwOwotCXdxZS0+cmVhZC5yZXNlcnZlZFsyXSA9IDA7CiAJd3FlLT5yZWFkLnJlbV9zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLnJkbWEucmtleSk7CiAJd3FlLT5yZWFkLnJlbV90byA9IGNwdV90b19iZTY0KHdyLT53ci5yZG1hLnJlbW90ZV9hZGRyKTsKIAl3cWUtPnJlYWQubG9jYWxfc3RhZyA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0WzBdLmxrZXkpOwpAQCAtMTU1LDYgKzE0NCw1NyBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGJ1aWxkX2Zhc3RyZWcodW5pb24gdDNfd3IgKndxZSwgc3RydWN0IGliX3NlbmRfd3IgKndyLAorCQkJCXU4ICpmbGl0X2NudCwgaW50ICp3cl9jbnQsIHN0cnVjdCB0M193cSAqd3EpCit7CisJaW50IGk7CisJX19iZTY0ICpwOworCisJaWYgKHdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3RfbGVuID4gVDNfTUFYX0ZBU1RSRUdfREVQVEgpCisJCXJldHVybiAtRUlOVkFMOworCSp3cl9jbnQgPSAxOworCXdxZS0+ZmFzdHJlZy5zdGFnID0gY3B1X3RvX2JlMzIod3ItPndyLmZhc3RfcmVnLnJrZXkpOworCXdxZS0+ZmFzdHJlZy5sZW4gPSBjcHVfdG9fYmUzMih3ci0+d3IuZmFzdF9yZWcubGVuZ3RoKTsKKwl3cWUtPmZhc3RyZWcudmFfYmFzZV9oaSA9IGNwdV90b19iZTMyKHdyLT53ci5mYXN0X3JlZy5pb3ZhX3N0YXJ0ID4+IDMyKTsKKwl3cWUtPmZhc3RyZWcudmFfYmFzZV9sb19mYm8gPQorCQkJCWNwdV90b19iZTMyKHdyLT53ci5mYXN0X3JlZy5pb3ZhX3N0YXJ0ICYgMHhmZmZmZmZmZik7CisJd3FlLT5mYXN0cmVnLnBhZ2VfdHlwZV9wZXJtcyA9IGNwdV90b19iZTMyKAorCQlWX0ZSX1BBR0VfQ09VTlQod3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW4pIHwKKwkJVl9GUl9QQUdFX1NJWkUod3ItPndyLmZhc3RfcmVnLnBhZ2Vfc2hpZnQtMTIpIHwKKwkJVl9GUl9UWVBFKFRQVF9WQVRPKSB8CisJCVZfRlJfUEVSTVMoaXdjaF9pYl90b190cHRfYWNjZXNzKHdyLT53ci5mYXN0X3JlZy5hY2Nlc3NfZmxhZ3MpKSk7CisJcCA9ICZ3cWUtPmZhc3RyZWcucGJsX2FkZHJzWzBdOworCWZvciAoaSA9IDA7IGkgPCB3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0X2xlbjsgaSsrLCBwKyspIHsKKworCQkvKiBJZiB3ZSBuZWVkIGEgMm5kIFdSLCB0aGVuIHNldCBpdCB1cCAqLworCQlpZiAoaSA9PSBUM19NQVhfRkFTVFJFR19GUkFHKSB7CisJCQkqd3JfY250ID0gMjsKKwkJCXdxZSA9ICh1bmlvbiB0M193ciAqKSh3cS0+cXVldWUgKworCQkJCVFfUFRSMklEWCgod3EtPndwdHIrMSksIHdxLT5zaXplX2xvZzIpKTsKKwkJCWJ1aWxkX2Z3X3Jpd3JoKCh2b2lkICopd3FlLCBUM19XUl9GQVNUUkVHLCAwLAorCQkJICAgICAgIFFfR0VOQklUKHdxLT53cHRyICsgMSwgd3EtPnNpemVfbG9nMiksCisJCQkgICAgICAgMCwgMSArIHdyLT53ci5mYXN0X3JlZy5wYWdlX2xpc3RfbGVuIC0gVDNfTUFYX0ZBU1RSRUdfRlJBRywKKwkJCSAgICAgICBUM19FT1ApOworCisJCQlwID0gJndxZS0+cGJsX2ZyYWcucGJsX2FkZHJzWzBdOworCQl9CisJCSpwID0gY3B1X3RvX2JlNjQoKHU2NCl3ci0+d3IuZmFzdF9yZWcucGFnZV9saXN0LT5wYWdlX2xpc3RbaV0pOworCX0KKwkqZmxpdF9jbnQgPSA1ICsgd3ItPndyLmZhc3RfcmVnLnBhZ2VfbGlzdF9sZW47CisJaWYgKCpmbGl0X2NudCA+IDE1KQorCQkqZmxpdF9jbnQgPSAxNTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBidWlsZF9pbnZfc3RhZyh1bmlvbiB0M193ciAqd3FlLCBzdHJ1Y3QgaWJfc2VuZF93ciAqd3IsCisJCQkJdTggKmZsaXRfY250KQoreworCXdxZS0+bG9jYWxfaW52LnN0YWcgPSBjcHVfdG9fYmUzMih3ci0+ZXguaW52YWxpZGF0ZV9ya2V5KTsKKwl3cWUtPmxvY2FsX2ludi5yZXNlcnZlZCA9IDA7CisJKmZsaXRfY250ID0gc2l6ZW9mKHN0cnVjdCB0M19sb2NhbF9pbnZfd3IpID4+IDM7CisJcmV0dXJuIDA7Cit9CisKIC8qCiAgKiBUQkQ6IHRoaXMgaXMgZ29pbmcgdG8gYmUgbW92ZWQgdG8gZmlybXdhcmUuIE1pc3NpbmcgcGRpZC9xcGlkIGNoZWNrIGZvciBub3cuCiAgKi8KQEAgLTIwNSwyMyArMjQ1LDEwNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGl3Y2hfYnVpbGRfcmRtYV9yZWN2KHN0cnVjdCBpd2NoX2RldiAqcmhwLCB1bmlvbiB0M193ciAqd3FlLAorc3RhdGljIGludCBidWlsZF9yZG1hX3JlY3Yoc3RydWN0IGl3Y2hfcXAgKnFocCwgdW5pb24gdDNfd3IgKndxZSwKIAkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IpCiB7Ci0JaW50IGk7Ci0JaWYgKHdyLT5udW1fc2dlID4gVDNfTUFYX1NHRSkKLQkJcmV0dXJuIC1FSU5WQUw7CisJaW50IGksIGVyciA9IDA7CisJdTMyIHBibF9hZGRyW1QzX01BWF9TR0VdOworCXU4IHBhZ2Vfc2l6ZVtUM19NQVhfU0dFXTsKKworCWVyciA9IGl3Y2hfc2dsMnBibF9tYXAocWhwLT5yaHAsIHdyLT5zZ19saXN0LCB3ci0+bnVtX3NnZSwgcGJsX2FkZHIsCisJCQkgICAgICAgcGFnZV9zaXplKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXdxZS0+cmVjdi5wYWdlc3pbMF0gPSBwYWdlX3NpemVbMF07CisJd3FlLT5yZWN2LnBhZ2VzelsxXSA9IHBhZ2Vfc2l6ZVsxXTsKKwl3cWUtPnJlY3YucGFnZXN6WzJdID0gcGFnZV9zaXplWzJdOworCXdxZS0+cmVjdi5wYWdlc3pbM10gPSBwYWdlX3NpemVbM107CiAJd3FlLT5yZWN2Lm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOwogCWZvciAoaSA9IDA7IGkgPCB3ci0+bnVtX3NnZTsgaSsrKSB7CiAJCXdxZS0+cmVjdi5zZ2xbaV0uc3RhZyA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxrZXkpOwogCQl3cWUtPnJlY3Yuc2dsW2ldLmxlbiA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7Ci0JCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKKworCQkvKiB0byBpbiB0aGUgV1FFID09IHRoZSBvZmZzZXQgaW50byB0aGUgcGFnZSAqLworCQl3cWUtPnJlY3Yuc2dsW2ldLnRvID0gY3B1X3RvX2JlNjQoKCh1MzIpIHdyLT5zZ19saXN0W2ldLmFkZHIpICUKKwkJCQkoMVVMIDw8ICgxMiArIHBhZ2Vfc2l6ZVtpXSkpKTsKKworCQkvKiBwYmxfYWRkciBpcyB0aGUgYWRhcHRlcnMgYWRkcmVzcyBpbiB0aGUgUEJMICovCisJCXdxZS0+cmVjdi5wYmxfYWRkcltpXSA9IGNwdV90b19iZTMyKHBibF9hZGRyW2ldKTsKIAl9CiAJZm9yICg7IGkgPCBUM19NQVhfU0dFOyBpKyspIHsKIAkJd3FlLT5yZWN2LnNnbFtpXS5zdGFnID0gMDsKIAkJd3FlLT5yZWN2LnNnbFtpXS5sZW4gPSAwOwogCQl3cWUtPnJlY3Yuc2dsW2ldLnRvID0gMDsKKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gMDsKIAl9CisJcWhwLT53cS5ycVtRX1BUUjJJRFgocWhwLT53cS5ycV93cHRyLAorCQkJICAgICBxaHAtPndxLnJxX3NpemVfbG9nMildLndyX2lkID0gd3ItPndyX2lkOworCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwKKwkJCSAgICAgcWhwLT53cS5ycV9zaXplX2xvZzIpXS5wYmxfYWRkciA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYnVpbGRfemVyb19zdGFnX3JlY3Yoc3RydWN0IGl3Y2hfcXAgKnFocCwgdW5pb24gdDNfd3IgKndxZSwKKwkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IpCit7CisJaW50IGk7CisJdTMyIHBibF9hZGRyOworCXUzMiBwYmxfb2Zmc2V0OworCisKKwkvKgorCSAqIFRoZSBUMyBIVyByZXF1aXJlcyB0aGUgUEJMIGluIHRoZSBIVyByZWN2IGRlc2NyaXB0b3IgdG8gcmVmZXJlbmNlCisJICogYSBQQkwgZW50cnkuICBTbyB3ZSBhbGxvY2F0ZSB0aGUgbWF4IG5lZWRlZCBQQkwgbWVtb3J5IGhlcmUgYW5kIHBhc3MKKwkgKiBpdCB0byB0aGUgdVAgaW4gdGhlIHJlY3YgV1IuICBUaGUgdVAgd2lsbCBidWlsZCB0aGUgUEJMIGFuZCBzZXR1cAorCSAqIHRoZSBIVyByZWN2IGRlc2NyaXB0b3IuCisJICovCisJcGJsX2FkZHIgPSBjeGlvX2hhbF9wYmxwb29sX2FsbG9jKCZxaHAtPnJocC0+cmRldiwgVDNfU1RBRzBfUEJMX1NJWkUpOworCWlmICghcGJsX2FkZHIpCisJCXJldHVybiAtRU5PTUVNOworCisJLyoKKwkgKiBDb21wdXRlIHRoZSA4QiBhbGlnbmVkIG9mZnNldC4KKwkgKi8KKwlwYmxfb2Zmc2V0ID0gKHBibF9hZGRyIC0gcWhwLT5yaHAtPnJkZXYucm5pY19pbmZvLnBibF9iYXNlKSA+PiAzOworCisJd3FlLT5yZWN2Lm51bV9zZ2xlID0gY3B1X3RvX2JlMzIod3ItPm51bV9zZ2UpOworCisJZm9yIChpID0gMDsgaSA8IHdyLT5udW1fc2dlOyBpKyspIHsKKworCQkvKgorCQkgKiBVc2UgYSAxMjhNQiBwYWdlIHNpemUuIFRoaXMgYW5kIGFuIGltcG9zZWQgMTI4TUIKKwkJICogc2dlIGxlbmd0aCBsaW1pdCBhbGxvd3MgdXMgdG8gcmVxdWlyZSBvbmx5IGEgMi1lbnRyeSBIVworCQkgKiBQQkwgZm9yIGVhY2ggU0dFLiAgVGhpcyByZXN0cmljdGlvbiBpcyBhY2NlcHRhYmxlIHNpbmNlCisJCSAqIHNpbmNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhbGxvY2F0ZSAxMjhNQiBvZiBjb250aWd1b3VzCisJCSAqIERNQSBjb2hlcmVudCBtZW1vcnkhCisJCSAqLworCQlpZiAod3ItPnNnX2xpc3RbaV0ubGVuZ3RoID4gVDNfU1RBRzBfTUFYX1BCRV9MRU4pCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJd3FlLT5yZWN2LnBhZ2VzeltpXSA9IFQzX1NUQUcwX1BBR0VfU0hJRlQ7CisKKwkJLyoKKwkJICogVDMgcmVzdHJpY3RzIGEgcmVjdiB0byBhbGwgemVyby1zdGFnIG9yIGFsbCBub24temVyby1zdGFnLgorCQkgKi8KKwkJaWYgKHdyLT5zZ19saXN0W2ldLmxrZXkgIT0gMCkKKwkJCXJldHVybiAtRUlOVkFMOworCQl3cWUtPnJlY3Yuc2dsW2ldLnN0YWcgPSAwOworCQl3cWUtPnJlY3Yuc2dsW2ldLmxlbiA9IGNwdV90b19iZTMyKHdyLT5zZ19saXN0W2ldLmxlbmd0aCk7CisJCXdxZS0+cmVjdi5zZ2xbaV0udG8gPSBjcHVfdG9fYmU2NCh3ci0+c2dfbGlzdFtpXS5hZGRyKTsKKwkJd3FlLT5yZWN2LnBibF9hZGRyW2ldID0gY3B1X3RvX2JlMzIocGJsX29mZnNldCk7CisJCXBibF9vZmZzZXQgKz0gMjsKKwl9CisJZm9yICg7IGkgPCBUM19NQVhfU0dFOyBpKyspIHsKKwkJd3FlLT5yZWN2LnBhZ2VzeltpXSA9IDA7CisJCXdxZS0+cmVjdi5zZ2xbaV0uc3RhZyA9IDA7CisJCXdxZS0+cmVjdi5zZ2xbaV0ubGVuID0gMDsKKwkJd3FlLT5yZWN2LnNnbFtpXS50byA9IDA7CisJCXdxZS0+cmVjdi5wYmxfYWRkcltpXSA9IDA7CisJfQorCXFocC0+d3EucnFbUV9QVFIySURYKHFocC0+d3EucnFfd3B0ciwKKwkJCSAgICAgcWhwLT53cS5ycV9zaXplX2xvZzIpXS53cl9pZCA9IHdyLT53cl9pZDsKKwlxaHAtPndxLnJxW1FfUFRSMklEWChxaHAtPndxLnJxX3dwdHIsCisJCQkgICAgIHFocC0+d3EucnFfc2l6ZV9sb2cyKV0ucGJsX2FkZHIgPSBwYmxfYWRkcjsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjI5LDcgKzM1Miw3IEBACiAJCSAgICAgIHN0cnVjdCBpYl9zZW5kX3dyICoqYmFkX3dyKQogewogCWludCBlcnIgPSAwOwotCXU4IHQzX3dyX2ZsaXRfY250OworCXU4IHVuaW5pdGlhbGl6ZWRfdmFyKHQzX3dyX2ZsaXRfY250KTsKIAllbnVtIHQzX3dyX29wY29kZSB0M193cl9vcGNvZGUgPSAwOwogCWVudW0gdDNfd3JfZmxhZ3MgdDNfd3JfZmxhZ3M7CiAJc3RydWN0IGl3Y2hfcXAgKnFocDsKQEAgLTIzOCw2ICszNjEsNyBAQAogCXUzMiBudW1fd3JzOwogCXVuc2lnbmVkIGxvbmcgZmxhZzsKIAlzdHJ1Y3QgdDNfc3dzcSAqc3FwOworCWludCB3cl9jbnQgPSAxOwogCiAJcWhwID0gdG9faXdjaF9xcChpYnFwKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmcWhwLT5sb2NrLCBmbGFnKTsKQEAgLTI2MiwzMyArMzg2LDQ1IEBACiAJCXQzX3dyX2ZsYWdzID0gMDsKIAkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9TT0xJQ0lURUQpCiAJCQl0M193cl9mbGFncyB8PSBUM19TT0xJQ0lURURfRVZFTlRfRkxBRzsKLQkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9GRU5DRSkKLQkJCXQzX3dyX2ZsYWdzIHw9IFQzX1JFQURfRkVOQ0VfRkxBRzsKIAkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9TSUdOQUxFRCkKIAkJCXQzX3dyX2ZsYWdzIHw9IFQzX0NPTVBMRVRJT05fRkxBRzsKIAkJc3FwID0gcWhwLT53cS5zcSArCiAJCSAgICAgIFFfUFRSMklEWChxaHAtPndxLnNxX3dwdHIsIHFocC0+d3Euc3Ffc2l6ZV9sb2cyKTsKIAkJc3dpdGNoICh3ci0+b3Bjb2RlKSB7CiAJCWNhc2UgSUJfV1JfU0VORDoKLQkJY2FzZSBJQl9XUl9TRU5EX1dJVEhfSU1NOgorCQljYXNlIElCX1dSX1NFTkRfV0lUSF9JTlY6CisJCQlpZiAod3ItPnNlbmRfZmxhZ3MgJiBJQl9TRU5EX0ZFTkNFKQorCQkJCXQzX3dyX2ZsYWdzIHw9IFQzX1JFQURfRkVOQ0VfRkxBRzsKIAkJCXQzX3dyX29wY29kZSA9IFQzX1dSX1NFTkQ7Ci0JCQllcnIgPSBpd2NoX2J1aWxkX3JkbWFfc2VuZCh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOworCQkJZXJyID0gYnVpbGRfcmRtYV9zZW5kKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CiAJCQlicmVhazsKIAkJY2FzZSBJQl9XUl9SRE1BX1dSSVRFOgogCQljYXNlIElCX1dSX1JETUFfV1JJVEVfV0lUSF9JTU06CiAJCQl0M193cl9vcGNvZGUgPSBUM19XUl9XUklURTsKLQkJCWVyciA9IGl3Y2hfYnVpbGRfcmRtYV93cml0ZSh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOworCQkJZXJyID0gYnVpbGRfcmRtYV93cml0ZSh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOwogCQkJYnJlYWs7CiAJCWNhc2UgSUJfV1JfUkRNQV9SRUFEOgorCQljYXNlIElCX1dSX1JETUFfUkVBRF9XSVRIX0lOVjoKIAkJCXQzX3dyX29wY29kZSA9IFQzX1dSX1JFQUQ7CiAJCQl0M193cl9mbGFncyA9IDA7IC8qIFQzIHJlYWRzIGFyZSBhbHdheXMgc2lnbmFsZWQgKi8KLQkJCWVyciA9IGl3Y2hfYnVpbGRfcmRtYV9yZWFkKHdxZSwgd3IsICZ0M193cl9mbGl0X2NudCk7CisJCQllcnIgPSBidWlsZF9yZG1hX3JlYWQod3FlLCB3ciwgJnQzX3dyX2ZsaXRfY250KTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCQlzcXAtPnJlYWRfbGVuID0gd3FlLT5yZWFkLmxvY2FsX2xlbjsKIAkJCWlmICghcWhwLT53cS5vbGRlc3RfcmVhZCkKIAkJCQlxaHAtPndxLm9sZGVzdF9yZWFkID0gc3FwOwogCQkJYnJlYWs7CisJCWNhc2UgSUJfV1JfRkFTVF9SRUdfTVI6CisJCQl0M193cl9vcGNvZGUgPSBUM19XUl9GQVNUUkVHOworCQkJZXJyID0gYnVpbGRfZmFzdHJlZyh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQsCisJCQkJCQkgJndyX2NudCwgJnFocC0+d3EpOworCQkJYnJlYWs7CisJCWNhc2UgSUJfV1JfTE9DQUxfSU5WOgorCQkJaWYgKHdyLT5zZW5kX2ZsYWdzICYgSUJfU0VORF9GRU5DRSkKKwkJCQl0M193cl9mbGFncyB8PSBUM19MT0NBTF9GRU5DRV9GTEFHOworCQkJdDNfd3Jfb3Bjb2RlID0gVDNfV1JfSU5WX1NUQUc7CisJCQllcnIgPSBidWlsZF9pbnZfc3RhZyh3cWUsIHdyLCAmdDNfd3JfZmxpdF9jbnQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlQREJHKCIlcyBwb3N0IG9mIHR5cGU9JWQgVEJEIVxuIiwgX19mdW5jX18sCiAJCQkgICAgIHdyLT5vcGNvZGUpOwpAQCAtMzA3LDE0ICs0NDMsMTUgQEAKIAogCQlidWlsZF9md19yaXdyaCgodm9pZCAqKSB3cWUsIHQzX3dyX29wY29kZSwgdDNfd3JfZmxhZ3MsCiAJCQkgICAgICAgUV9HRU5CSVQocWhwLT53cS53cHRyLCBxaHAtPndxLnNpemVfbG9nMiksCi0JCQkgICAgICAgMCwgdDNfd3JfZmxpdF9jbnQpOworCQkJICAgICAgIDAsIHQzX3dyX2ZsaXRfY250LAorCQkJICAgICAgICh3cl9jbnQgPT0gMSkgPyBUM19TT1BFT1AgOiBUM19TT1ApOwogCQlQREJHKCIlcyBjb29raWUgMHglbGx4IHdxIGlkeCAweCV4IHN3c3EgaWR4ICVsZCBvcGNvZGUgJWRcbiIsCiAJCSAgICAgX19mdW5jX18sICh1bnNpZ25lZCBsb25nIGxvbmcpIHdyLT53cl9pZCwgaWR4LAogCQkgICAgIFFfUFRSMklEWChxaHAtPndxLnNxX3dwdHIsIHFocC0+d3Euc3Ffc2l6ZV9sb2cyKSwKIAkJICAgICBzcXAtPm9wY29kZSk7CiAJCXdyID0gd3ItPm5leHQ7CiAJCW51bV93cnMtLTsKLQkJKysocWhwLT53cS53cHRyKTsKKwkJcWhwLT53cS53cHRyICs9IHdyX2NudDsKIAkJKysocWhwLT53cS5zcV93cHRyKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcWhwLT5sb2NrLCBmbGFnKTsKQEAgLTM0NSwyMSArNDgyLDI3IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAl3aGlsZSAod3IpIHsKKwkJaWYgKHdyLT5udW1fc2dlID4gVDNfTUFYX1NHRSkgeworCQkJZXJyID0gLUVJTlZBTDsKKwkJCSpiYWRfd3IgPSB3cjsKKwkJCWJyZWFrOworCQl9CiAJCWlkeCA9IFFfUFRSMklEWChxaHAtPndxLndwdHIsIHFocC0+d3Euc2l6ZV9sb2cyKTsKIAkJd3FlID0gKHVuaW9uIHQzX3dyICopIChxaHAtPndxLnF1ZXVlICsgaWR4KTsKIAkJaWYgKG51bV93cnMpCi0JCQllcnIgPSBpd2NoX2J1aWxkX3JkbWFfcmVjdihxaHAtPnJocCwgd3FlLCB3cik7CisJCQlpZiAod3ItPnNnX2xpc3RbMF0ubGtleSkKKwkJCQllcnIgPSBidWlsZF9yZG1hX3JlY3YocWhwLCB3cWUsIHdyKTsKKwkJCWVsc2UKKwkJCQllcnIgPSBidWlsZF96ZXJvX3N0YWdfcmVjdihxaHAsIHdxZSwgd3IpOwogCQllbHNlCiAJCQllcnIgPSAtRU5PTUVNOwogCQlpZiAoZXJyKSB7CiAJCQkqYmFkX3dyID0gd3I7CiAJCQlicmVhazsKIAkJfQotCQlxaHAtPndxLnJxW1FfUFRSMklEWChxaHAtPndxLnJxX3dwdHIsIHFocC0+d3EucnFfc2l6ZV9sb2cyKV0gPQotCQkJd3ItPndyX2lkOwogCQlidWlsZF9md19yaXdyaCgodm9pZCAqKSB3cWUsIFQzX1dSX1JDViwgVDNfQ09NUExFVElPTl9GTEFHLAogCQkJICAgICAgIFFfR0VOQklUKHFocC0+d3Eud3B0ciwgcWhwLT53cS5zaXplX2xvZzIpLAotCQkJICAgICAgIDAsIHNpemVvZihzdHJ1Y3QgdDNfcmVjZWl2ZV93cikgPj4gMyk7CisJCQkgICAgICAgMCwgc2l6ZW9mKHN0cnVjdCB0M19yZWNlaXZlX3dyKSA+PiAzLCBUM19TT1BFT1ApOwogCQlQREJHKCIlcyBjb29raWUgMHglbGx4IGlkeCAweCV4IHJxX3dwdHIgMHgleCByd19ycHRyIDB4JXggIgogCQkgICAgICJ3cWUgJXAgXG4iLCBfX2Z1bmNfXywgKHVuc2lnbmVkIGxvbmcgbG9uZykgd3ItPndyX2lkLAogCQkgICAgIGlkeCwgcWhwLT53cS5ycV93cHRyLCBxaHAtPndxLnJxX3JwdHIsIHdxZSk7CkBAIC00MTksMTAgKzU2MiwxMCBAQAogCXNnbC5sa2V5ID0gbXdfYmluZC0+bXItPmxrZXk7CiAJc2dsLmxlbmd0aCA9IG13X2JpbmQtPmxlbmd0aDsKIAl3cWUtPmJpbmQucmVzZXJ2ZWQgPSAwOwotCXdxZS0+YmluZC50eXBlID0gVDNfVkFfQkFTRURfVE87CisJd3FlLT5iaW5kLnR5cGUgPSBUUFRfVkFUTzsKIAogCS8qIFRCRDogY2hlY2sgcGVybXMgKi8KLQl3cWUtPmJpbmQucGVybXMgPSBpd2NoX2liX3RvX213YmluZF9hY2Nlc3MobXdfYmluZC0+bXdfYWNjZXNzX2ZsYWdzKTsKKwl3cWUtPmJpbmQucGVybXMgPSBpd2NoX2liX3RvX3RwdF9hY2Nlc3MobXdfYmluZC0+bXdfYWNjZXNzX2ZsYWdzKTsKIAl3cWUtPmJpbmQubXJfc3RhZyA9IGNwdV90b19iZTMyKG13X2JpbmQtPm1yLT5sa2V5KTsKIAl3cWUtPmJpbmQubXdfc3RhZyA9IGNwdV90b19iZTMyKG13LT5ya2V5KTsKIAl3cWUtPmJpbmQubXdfbGVuID0gY3B1X3RvX2JlMzIobXdfYmluZC0+bGVuZ3RoKTsKQEAgLTQzMCw3ICs1NzMsNyBAQAogCWVyciA9IGl3Y2hfc2dsMnBibF9tYXAocmhwLCAmc2dsLCAxLCAmcGJsX2FkZHIsICZwYWdlX3NpemUpOwogCWlmIChlcnIpIHsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcWhwLT5sb2NrLCBmbGFnKTsKLQkgICAgICAgIHJldHVybiBlcnI7CisJCXJldHVybiBlcnI7CiAJfQogCXdxZS0+c2VuZC53cmlkLmlkMC5oaSA9IHFocC0+d3Euc3Ffd3B0cjsKIAlzcXAgPSBxaHAtPndxLnNxICsgUV9QVFIySURYKHFocC0+d3Euc3Ffd3B0ciwgcWhwLT53cS5zcV9zaXplX2xvZzIpOwpAQCAtNDQxLDEwICs1ODQsOSBAQAogCXNxcC0+c2lnbmFsZWQgPSAobXdfYmluZC0+c2VuZF9mbGFncyAmIElCX1NFTkRfU0lHTkFMRUQpOwogCXdxZS0+YmluZC5tcl9wYmxfYWRkciA9IGNwdV90b19iZTMyKHBibF9hZGRyKTsKIAl3cWUtPmJpbmQubXJfcGFnZXN6ID0gcGFnZV9zaXplOwotCXdxZS0+ZmxpdFtUM19TUV9DT09LSUVfRkxJVF0gPSBtd19iaW5kLT53cl9pZDsKIAlidWlsZF9md19yaXdyaCgodm9pZCAqKXdxZSwgVDNfV1JfQklORCwgdDNfd3JfZmxhZ3MsCiAJCSAgICAgICBRX0dFTkJJVChxaHAtPndxLndwdHIsIHFocC0+d3Euc2l6ZV9sb2cyKSwgMCwKLQkJCSAgICAgICAgc2l6ZW9mKHN0cnVjdCB0M19iaW5kX213X3dyKSA+PiAzKTsKKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgdDNfYmluZF9td193cikgPj4gMywgVDNfU09QRU9QKTsKIAkrKyhxaHAtPndxLndwdHIpOwogCSsrKHFocC0+d3Euc3Ffd3B0cik7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcWhwLT5sb2NrLCBmbGFnKTsKQEAgLTc1OCw3ICs5MDAsOCBAQAogCWluaXRfYXR0ci5xcF9kbWFfc2l6ZSA9ICgxVUwgPDwgcWhwLT53cS5zaXplX2xvZzIpOwogCWluaXRfYXR0ci5ycWVfY291bnQgPSBpd2NoX3JxZXNfcG9zdGVkKHFocCk7CiAJaW5pdF9hdHRyLmZsYWdzID0gcWhwLT5hdHRyLm1wYV9hdHRyLmluaXRpYXRvciA/IE1QQV9JTklUSUFUT1IgOiAwOwotCWluaXRfYXR0ci5mbGFncyB8PSBjYXBhYmxlKENBUF9ORVRfQklORF9TRVJWSUNFKSA/IFBSSVZfUVAgOiAwOworCWlmICghcWhwLT5pYnFwLnVvYmplY3QpCisJCWluaXRfYXR0ci5mbGFncyB8PSBQUklWX1FQOwogCWlmIChwZWVyMnBlZXIpIHsKIAkJaW5pdF9hdHRyLnJ0cl90eXBlID0gUlRSX1JFQUQ7CiAJCWlmIChpbml0X2F0dHIub3JkID09IDAgJiYgcWhwLT5hdHRyLm1wYV9hdHRyLmluaXRpYXRvcikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfaXJxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2lycS5jCmluZGV4IGNlMWFiMDUuLjA3OTJkOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfaXJxLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9pcnEuYwpAQCAtNTMxLDcgKzUzMSw3IEBACiB7CiAJc3RydWN0IGVoY2FfZXEgKmVxID0gJnNoY2EtPmVxOwogCXN0cnVjdCBlaGNhX2VxZV9jYWNoZV9lbnRyeSAqZXFlX2NhY2hlID0gZXEtPmVxZV9jYWNoZTsKLQl1NjQgZXFlX3ZhbHVlOworCXU2NCBlcWVfdmFsdWUsIHJldDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBlcWVfY250LCBpOwogCWludCBlcV9lbXB0eSA9IDA7CkBAIC01ODMsOCArNTgzLDEzIEBACiAJCQllaGNhX2RiZygmc2hjYS0+aWJfZGV2aWNlLAogCQkJCSAiTm8gZXFlIGZvdW5kIGZvciBpcnEgZXZlbnQiKTsKIAkJZ290byB1bmxvY2tfaXJxX3NwaW5sb2NrOwotCX0gZWxzZSBpZiAoIWlzX2lycSkKKwl9IGVsc2UgaWYgKCFpc19pcnEpIHsKKwkJcmV0ID0gaGlwel9oX2VvaShlcS0+aXN0KTsKKwkJaWYgKHJldCAhPSBIX1NVQ0NFU1MpCisJCQllaGNhX2Vycigmc2hjYS0+aWJfZGV2aWNlLAorCQkJCSAiYmFkIHJldHVybiBjb2RlIEVPSSAtcmMgPSAlbGRcbiIsIHJldCk7CiAJCWVoY2FfZGJnKCZzaGNhLT5pYl9kZXZpY2UsICJkZWFkbWFuIGZvdW5kICV4IGVxZSIsIGVxZV9jbnQpOworCX0KIAlpZiAodW5saWtlbHkoZXFlX2NudCA9PSBFSENBX0VRRV9DQUNIRV9TSVpFKSkKIAkJZWhjYV9kYmcoJnNoY2EtPmliX2RldmljZSwgInRvbyBtYW55IGVxZXMgZm9yIG9uZSBpcnEgZXZlbnQiKTsKIAkvKiBlbmFibGUgaXJxIGZvciBuZXcgcGFja2V0cyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9tYWluLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX21haW4uYwppbmRleCA0ODIxMDNlLi41OTg4NDRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX21haW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9laGNhX21haW4uYwpAQCAtOTIzLDYgKzkyMyw3IEBACiAJfSwKIAl7fSwKIH07CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaGNhX2RldmljZV90YWJsZSk7CiAKIHN0YXRpYyBzdHJ1Y3Qgb2ZfcGxhdGZvcm1fZHJpdmVyIGVoY2FfZHJpdmVyID0gewogCS5uYW1lICAgICAgICA9ICJlaGNhIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2VoY2FfcmVxcy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9yZXFzLmMKaW5kZXggYmJlMDQzNi4uZGQ5YmM2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9yZXFzLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9yZXFzLmMKQEAgLTQyMSw4ICs0MjEsMTAgQEAKIAlpbnQgcmV0ID0gMDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JaWYgKHVubGlrZWx5KG15X3FwLT5zdGF0ZSAhPSBJQl9RUFNfUlRTKSkgewotCQllaGNhX2VycihxcC0+ZGV2aWNlLCAiUVAgbm90IGluIFJUUyBzdGF0ZSAgcXBuPSV4IiwgcXAtPnFwX251bSk7CisJLyogUmVqZWN0IFdSIGlmIFFQIGlzIGluIFJFU0VULCBJTklUIG9yIFJUUiBzdGF0ZSAqLworCWlmICh1bmxpa2VseShteV9xcC0+c3RhdGUgPCBJQl9RUFNfUlRTKSkgeworCQllaGNhX2VycihxcC0+ZGV2aWNlLCAiSW52YWxpZCBRUCBzdGF0ZSAgcXBfc3RhdGU9JWQgcXBuPSV4IiwKKwkJCSBteV9xcC0+c3RhdGUsIHFwLT5xcF9udW0pOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKQEAgLTU0Miw4ICs1NDQsMTYgQEAKIAkJICAgc3RydWN0IGliX3JlY3Zfd3IgKnJlY3Zfd3IsCiAJCSAgIHN0cnVjdCBpYl9yZWN2X3dyICoqYmFkX3JlY3Zfd3IpCiB7Ci0JcmV0dXJuIGludGVybmFsX3Bvc3RfcmVjdihjb250YWluZXJfb2YocXAsIHN0cnVjdCBlaGNhX3FwLCBpYl9xcCksCi0JCQkJICBxcC0+ZGV2aWNlLCByZWN2X3dyLCBiYWRfcmVjdl93cik7CisJc3RydWN0IGVoY2FfcXAgKm15X3FwID0gY29udGFpbmVyX29mKHFwLCBzdHJ1Y3QgZWhjYV9xcCwgaWJfcXApOworCisJLyogUmVqZWN0IFdSIGlmIFFQIGlzIGluIFJFU0VUIHN0YXRlICovCisJaWYgKHVubGlrZWx5KG15X3FwLT5zdGF0ZSA9PSBJQl9RUFNfUkVTRVQpKSB7CisJCWVoY2FfZXJyKHFwLT5kZXZpY2UsICJJbnZhbGlkIFFQIHN0YXRlICBxcF9zdGF0ZT0lZCBxcG49JXgiLAorCQkJIG15X3FwLT5zdGF0ZSwgcXAtPnFwX251bSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiBpbnRlcm5hbF9wb3N0X3JlY3YobXlfcXAsIHFwLT5kZXZpY2UsIHJlY3Zfd3IsIGJhZF9yZWN2X3dyKTsKIH0KIAogaW50IGVoY2FfcG9zdF9zcnFfcmVjdihzdHJ1Y3QgaWJfc3JxICpzcnEsCkBAIC02NzksNyArNjg5LDcgQEAKIAl3Yy0+ZGxpZF9wYXRoX2JpdHMgPSBjcWUtPmRsaWQ7CiAJd2MtPnNyY19xcCA9IGNxZS0+cmVtb3RlX3FwX251bWJlcjsKIAl3Yy0+d2NfZmxhZ3MgPSBjcWUtPndfY29tcGxldGlvbl9mbGFnczsKLQl3Yy0+aW1tX2RhdGEgPSBjcHVfdG9fYmUzMihjcWUtPmltbWVkaWF0ZV9kYXRhKTsKKwl3Yy0+ZXguaW1tX2RhdGEgPSBjcHVfdG9fYmUzMihjcWUtPmltbWVkaWF0ZV9kYXRhKTsKIAl3Yy0+c2wgPSBjcWUtPnNlcnZpY2VfbGV2ZWw7CiAKIHBvbGxfY3Ffb25lX2V4aXQwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvaGNwX2lmLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuYwppbmRleCA1MjQ1ZTEzLi40MTVkM2E0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuYwpAQCAtOTMzLDMgKzkzMywxMyBAQAogCQkJCSAgICAgICByX2NiLAogCQkJCSAgICAgICAwLCAwLCAwLCAwKTsKIH0KKwordTY0IGhpcHpfaF9lb2koaW50IGlycSkKK3sKKwl1bnNpZ25lZCBsb25nIHhpcnI7CisKKwlpb3N5bmMoKTsKKwl4aXJyID0gKDB4ZmZVTEwgPDwgMjQpIHwgaXJxOworCisJcmV0dXJuIHBscGFyX2hjYWxsX25vcmV0cyhIX0VPSSwgeGlycik7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvZWhjYS9oY3BfaWYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5oCmluZGV4IDYwY2UwMmIuLjJjM2M2ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9laGNhL2hjcF9pZi5oCkBAIC0yNjAsNSArMjYwLDYgQEAKIAkJICAgICAgY29uc3QgdTY0IHJlc3NvdXJjZV9oYW5kbGUsCiAJCSAgICAgIHZvaWQgKnJibG9jaywKIAkJICAgICAgdW5zaWduZWQgbG9uZyAqYnl0ZV9jb3VudCk7Cit1NjQgaGlwel9oX2VvaShpbnQgaXJxKTsKIAogI2VuZGlmIC8qIF9fSENQX0lGX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2NxLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfY3EuYwppbmRleCBhMDNiZDI4Li5kMzg1ZTQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfY3EuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfY3EuYwpAQCAtODIsNyArODIsNyBAQAogCQl3Yy0+dXF1ZXVlW2hlYWRdLm9wY29kZSA9IGVudHJ5LT5vcGNvZGU7CiAJCXdjLT51cXVldWVbaGVhZF0udmVuZG9yX2VyciA9IGVudHJ5LT52ZW5kb3JfZXJyOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLmJ5dGVfbGVuID0gZW50cnktPmJ5dGVfbGVuOwotCQl3Yy0+dXF1ZXVlW2hlYWRdLmltbV9kYXRhID0gKF9fdTMyIF9fZm9yY2UpZW50cnktPmltbV9kYXRhOworCQl3Yy0+dXF1ZXVlW2hlYWRdLmV4LmltbV9kYXRhID0gKF9fdTMyIF9fZm9yY2UpIGVudHJ5LT5leC5pbW1fZGF0YTsKIAkJd2MtPnVxdWV1ZVtoZWFkXS5xcF9udW0gPSBlbnRyeS0+cXAtPnFwX251bTsKIAkJd2MtPnVxdWV1ZVtoZWFkXS5zcmNfcXAgPSBlbnRyeS0+c3JjX3FwOwogCQl3Yy0+dXF1ZXVlW2hlYWRdLndjX2ZsYWdzID0gZW50cnktPndjX2ZsYWdzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2ZpbGVfb3BzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfZmlsZV9vcHMuYwppbmRleCBiNDcyYjE1Li4zNWYzMDFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfZmlsZV9vcHMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfZmlsZV9vcHMuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0uaD4KICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CiAKICNpbmNsdWRlICJpcGF0aF9rZXJuZWwuaCIKQEAgLTE4MTUsNiArMTgxNiw3IEBACiBzdGF0aWMgaW50IGlwYXRoX29wZW4oc3RydWN0IGlub2RlICppbiwgc3RydWN0IGZpbGUgKmZwKQogewogCS8qIFRoZSByZWFsIHdvcmsgaXMgcGVyZm9ybWVkIGxhdGVyIGluIGlwYXRoX2Fzc2lnbl9wb3J0KCkgKi8KKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWZwLT5wcml2YXRlX2RhdGEgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgaXBhdGhfZmlsZWRhdGEpLCBHRlBfS0VSTkVMKTsKIAlyZXR1cm4gZnAtPnByaXZhdGVfZGF0YSA/IDAgOiAtRU5PTUVNOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2liYTcyMjAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9pYmE3MjIwLmMKaW5kZXggOGVlZTc4My4uZmI3MDcxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2liYTcyMjAuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfaWJhNzIyMC5jCkBAIC0yMjI4LDggKzIyMjgsOCBAQAogCQkweGZmZmZmZmZmLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsCiAJCTB4NDAwMDAwMDEsIDB4MTM4OCwgMHgxNWUsIC8qIHJlc3QgMCdzICovCiAJCX07Ci0JZGNudCA9IHNpemVvZihtYWRwYXlsb2FkX3N0YXJ0KS9zaXplb2YobWFkcGF5bG9hZF9zdGFydFswXSk7Ci0JaGNudCA9IHNpemVvZihoZHIpL3NpemVvZihoZHJbMF0pOworCWRjbnQgPSBBUlJBWV9TSVpFKG1hZHBheWxvYWRfc3RhcnQpOworCWhjbnQgPSBBUlJBWV9TSVpFKGhkcik7CiAJaWYgKCFzd2FwcGVkKSB7CiAJCS8qIGZvciBtYWludGFpbmFiaWxpdHksIGRvIGl0IGF0IHJ1bnRpbWUgKi8KIAkJZm9yIChpID0gMDsgaSA8IGhjbnQ7IGkrKykgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2tlcm5lbC5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2tlcm5lbC5oCmluZGV4IDU5YThiMjUuLjBiZDhiY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9rZXJuZWwuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfa2VybmVsLmgKQEAgLTIzMiw2ICsyMzIsMTEgQEAKICNkZWZpbmUgSVBBVEhfU0RNQV9UWFJFUV9TX0FCT1JURUQgICAyCiAjZGVmaW5lIElQQVRIX1NETUFfVFhSRVFfU19TSFVURE9XTiAgMwogCisjZGVmaW5lIElQQVRIX1NETUFfU1RBVFVTX1NDT1JFX0JPQVJEX0RSQUlOX0lOX1BST0cJKDF1bGwgPDwgNjMpCisjZGVmaW5lIElQQVRIX1NETUFfU1RBVFVTX0FCT1JUX0lOX1BST0cJCQkoMXVsbCA8PCA2MikKKyNkZWZpbmUgSVBBVEhfU0RNQV9TVEFUVVNfSU5URVJOQUxfU0RNQV9FTkFCTEUJCSgxdWxsIDw8IDYxKQorI2RlZmluZSBJUEFUSF9TRE1BX1NUQVRVU19TQ0JfRU1QVFkJCQkoMXVsbCA8PCAzMCkKKwogLyogbWF4IGR3b3JkcyBpbiBzbWFsbCBidWZmZXIgcGFja2V0ICovCiAjZGVmaW5lIElQQVRIX1NNQUxMQlVGX0RXT1JEUyAoZGQtPmlwYXRoX3Bpb3NpemUyayA+PiAyKQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfbWFkLmMKaW5kZXggMWZmNDZhZS4uYmU0ZmM5YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9tYWQuYwpAQCAtMTExLDkgKzExMSw5IEBACiAJbmlwLT5yZXZpc2lvbiA9IGNwdV90b19iZTMyKChtYWpyZXYgPDwgMTYpIHwgbWlucmV2KTsKIAluaXAtPmxvY2FsX3BvcnRfbnVtID0gcG9ydDsKIAl2ZW5kb3IgPSBkZC0+aXBhdGhfdmVuZG9yaWQ7Ci0JbmlwLT52ZW5kb3JfaWRbMF0gPSAwOwotCW5pcC0+dmVuZG9yX2lkWzFdID0gdmVuZG9yID4+IDg7Ci0JbmlwLT52ZW5kb3JfaWRbMl0gPSB2ZW5kb3I7CisJbmlwLT52ZW5kb3JfaWRbMF0gPSBJUEFUSF9TUkNfT1VJXzE7CisJbmlwLT52ZW5kb3JfaWRbMV0gPSBJUEFUSF9TUkNfT1VJXzI7CisJbmlwLT52ZW5kb3JfaWRbMl0gPSBJUEFUSF9TUkNfT1VJXzM7CiAKIAlyZXR1cm4gcmVwbHkoc21wKTsKIH0KQEAgLTE0OTIsNiArMTQ5MiwxMCBAQAogCQkJZ290byBiYWlsOwogCQl9CiAKKwljYXNlIElCX01HTVRfTUVUSE9EX1RSQVA6CisJY2FzZSBJQl9NR01UX01FVEhPRF9SRVBPUlQ6CisJY2FzZSBJQl9NR01UX01FVEhPRF9SRVBPUlRfUkVTUDoKKwljYXNlIElCX01HTVRfTUVUSE9EX1RSQVBfUkVQUkVTUzoKIAljYXNlIElCX01HTVRfTUVUSE9EX0dFVF9SRVNQOgogCQkvKgogCQkgKiBUaGUgaWJfbWFkIG1vZHVsZSB3aWxsIGNhbGwgdXMgdG8gcHJvY2VzcyByZXNwb25zZXMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9yYy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKaW5kZXggMTA4ZGY2Ni4uOTc3MTA1MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3JjLmMKQEAgLTE3MDMsMTEgKzE3MDMsMTEgQEAKIAljYXNlIE9QKFNFTkRfTEFTVF9XSVRIX0lNTUVESUFURSk6CiAJc2VuZF9sYXN0X2ltbToKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UgewogCQkJLyogSW1tZWRpYXRlIGRhdGEgY29tZXMgYWZ0ZXIgQlRIICovCi0JCQl3Yy5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9IG9oZHItPnUuaW1tX2RhdGE7CiAJCX0KIAkJaGRyc2l6ZSArPSA0OwogCQl3Yy53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3J1Yy5jCmluZGV4IGE0YjU1MjEuLmFmMDUxZjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9ydWMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfcnVjLmMKQEAgLTMzMSw3ICszMzEsNyBAQAogCXN3aXRjaCAod3FlLT53ci5vcGNvZGUpIHsKIAljYXNlIElCX1dSX1NFTkRfV0lUSF9JTU06CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gd3FlLT53ci5leC5pbW1fZGF0YTsKKwkJd2MuZXguaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOwogCQkvKiBGQUxMVEhST1VHSCAqLwogCWNhc2UgSUJfV1JfU0VORDoKIAkJaWYgKCFpcGF0aF9nZXRfcndxZShxcCwgMCkpCkBAIC0zNDIsNyArMzQyLDcgQEAKIAkJaWYgKHVubGlrZWx5KCEocXAtPnFwX2FjY2Vzc19mbGFncyAmIElCX0FDQ0VTU19SRU1PVEVfV1JJVEUpKSkKIAkJCWdvdG8gaW52X2VycjsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJd2MuaW1tX2RhdGEgPSB3cWUtPndyLmV4LmltbV9kYXRhOworCQl3Yy5leC5pbW1fZGF0YSA9IHdxZS0+d3IuZXguaW1tX2RhdGE7CiAJCWlmICghaXBhdGhfZ2V0X3J3cWUocXAsIDEpKQogCQkJZ290byBybnJfbmFrOwogCQkvKiBGQUxMVEhST1VHSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3NkbWEuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF9zZG1hLmMKaW5kZXggMzY5NzQ0OS4uZWFiYTAzMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3NkbWEuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfc2RtYS5jCkBAIC0yNjMsMTQgKzI2MywxMCBAQAogCQlod3N0YXR1cyA9IGlwYXRoX3JlYWRfa3JlZzY0KGRkLAogCQkJCWRkLT5pcGF0aF9rcmVncy0+a3Jfc2VuZGRtYXN0YXR1cyk7CiAKLQkJaWYgKC8qIFNjb3JlQm9hcmREcmFpbkluUHJvZyAqLwotCQkgICAgdGVzdF9iaXQoNjMsICZod3N0YXR1cykgfHwKLQkJICAgIC8qIEFib3J0SW5Qcm9nICovCi0JCSAgICB0ZXN0X2JpdCg2MiwgJmh3c3RhdHVzKSB8fAotCQkgICAgLyogSW50ZXJuYWxTRG1hRW5hYmxlICovCi0JCSAgICB0ZXN0X2JpdCg2MSwgJmh3c3RhdHVzKSB8fAotCQkgICAgLyogU2NiRW1wdHkgKi8KLQkJICAgICF0ZXN0X2JpdCgzMCwgJmh3c3RhdHVzKSkgeworCQlpZiAoKGh3c3RhdHVzICYgKElQQVRIX1NETUFfU1RBVFVTX1NDT1JFX0JPQVJEX0RSQUlOX0lOX1BST0cgfAorCQkJCSBJUEFUSF9TRE1BX1NUQVRVU19BQk9SVF9JTl9QUk9HCSAgICAgfAorCQkJCSBJUEFUSF9TRE1BX1NUQVRVU19JTlRFUk5BTF9TRE1BX0VOQUJMRSkpIHx8CisJCSAgICAhKGh3c3RhdHVzICYgSVBBVEhfU0RNQV9TVEFUVVNfU0NCX0VNUFRZKSkgewogCQkJaWYgKGRkLT5pcGF0aF9zZG1hX3Jlc2V0X3dhaXQgPiAwKSB7CiAJCQkJLyogbm90IGRvbmUgc2h1dHRpbmcgZG93biBzZG1hICovCiAJCQkJLS1kZC0+aXBhdGhfc2RtYV9yZXNldF93YWl0OwpAQCAtMzQ1LDcgKzM0MSw3IEBACiAJICogc3RhdGUgY2hhbmdlCiAJICovCiAJaWYgKGppZmZpZXMgPiBkZC0+aXBhdGhfc2RtYV9hYm9ydF9qaWZmaWVzKSB7Ci0JCWlwYXRoX2RiZygibG9vcGluZyB3aXRoIHN0YXR1cyAweCUwMTZsbHhcbiIsCisJCWlwYXRoX2RiZygibG9vcGluZyB3aXRoIHN0YXR1cyAweCUwOGx4XG4iLAogCQkJICBkZC0+aXBhdGhfc2RtYV9zdGF0dXMpOwogCQlkZC0+aXBhdGhfc2RtYV9hYm9ydF9qaWZmaWVzID0gamlmZmllcyArIDUgKiBIWjsKIAl9CkBAIC02MTUsNyArNjExLDcgQEAKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGQtPmlwYXRoX3NkbWFfbG9jaywgZmxhZ3MpOwogCWlmICghbmVlZGVkKSB7Ci0JCWlwYXRoX2RiZygiaW52YWxpZCBhdHRlbXB0IHRvIHJlc3RhcnQgU0RNQSwgc3RhdHVzIDB4JTAxNmxseFxuIiwKKwkJaXBhdGhfZGJnKCJpbnZhbGlkIGF0dGVtcHQgdG8gcmVzdGFydCBTRE1BLCBzdGF0dXMgMHglMDhseFxuIiwKIAkJCWRkLT5pcGF0aF9zZG1hX3N0YXR1cyk7CiAJCWdvdG8gYmFpbDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF91Yy5jCmluZGV4IDdmZDE4ZTguLjgyY2M1ODggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF91Yy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9pcGF0aF91Yy5jCkBAIC0zNzksMTEgKzM3OSwxMSBAQAogCWNhc2UgT1AoU0VORF9MQVNUX1dJVEhfSU1NRURJQVRFKToKIAlzZW5kX2xhc3RfaW1tOgogCQlpZiAoaGVhZGVyX2luX2RhdGEpIHsKLQkJCXdjLmltbV9kYXRhID0gKihfX2JlMzIgKikgZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gKihfX2JlMzIgKikgZGF0YTsKIAkJCWRhdGEgKz0gc2l6ZW9mKF9fYmUzMik7CiAJCX0gZWxzZSB7CiAJCQkvKiBJbW1lZGlhdGUgZGF0YSBjb21lcyBhZnRlciBCVEggKi8KLQkJCXdjLmltbV9kYXRhID0gb2hkci0+dS5pbW1fZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gb2hkci0+dS5pbW1fZGF0YTsKIAkJfQogCQloZHJzaXplICs9IDQ7CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07CkBAIC00MDcsMTIgKzQwNywxMSBAQAogCQkJZGV2LT5uX3BrdF9kcm9wcysrOwogCQkJZ290byBkb25lOwogCQl9Ci0JCS8qIFhYWCBOZWVkIHRvIGZyZWUgU0dFcyAqLworCQl3Yy5vcGNvZGUgPSBJQl9XQ19SRUNWOwogCWxhc3RfaW1tOgogCQlpcGF0aF9jb3B5X3NnZSgmcXAtPnJfc2dlLCBkYXRhLCB0bGVuKTsKIAkJd2Mud3JfaWQgPSBxcC0+cl93cl9pZDsKIAkJd2Muc3RhdHVzID0gSUJfV0NfU1VDQ0VTUzsKLQkJd2Mub3Bjb2RlID0gSUJfV0NfUkVDVjsKIAkJd2MucXAgPSAmcXAtPmlicXA7CiAJCXdjLnNyY19xcCA9IHFwLT5yZW1vdGVfcXBuOwogCQl3Yy5zbGlkID0gcXAtPnJlbW90ZV9haF9hdHRyLmRsaWQ7CkBAIC00ODQsMTEgKzQ4MywxMSBAQAogCWNhc2UgT1AoUkRNQV9XUklURV9MQVNUX1dJVEhfSU1NRURJQVRFKToKIAlyZG1hX2xhc3RfaW1tOgogCQlpZiAoaGVhZGVyX2luX2RhdGEpIHsKLQkJCXdjLmltbV9kYXRhID0gKihfX2JlMzIgKikgZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gKihfX2JlMzIgKikgZGF0YTsKIAkJCWRhdGEgKz0gc2l6ZW9mKF9fYmUzMik7CiAJCX0gZWxzZSB7CiAJCQkvKiBJbW1lZGlhdGUgZGF0YSBjb21lcyBhZnRlciBCVEggKi8KLQkJCXdjLmltbV9kYXRhID0gb2hkci0+dS5pbW1fZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gb2hkci0+dS5pbW1fZGF0YTsKIAkJfQogCQloZHJzaXplICs9IDQ7CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07CkBAIC01MTQsNiArNTEzLDcgQEAKIAkJCWdvdG8gZG9uZTsKIAkJfQogCQl3Yy5ieXRlX2xlbiA9IHFwLT5yX2xlbjsKKwkJd2Mub3Bjb2RlID0gSUJfV0NfUkVDVl9SRE1BX1dJVEhfSU1NOwogCQlnb3RvIGxhc3RfaW1tOwogCiAJY2FzZSBPUChSRE1BX1dSSVRFX0xBU1QpOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3VkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwppbmRleCA3N2NhOGNhLi4zNmFhMjQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdWQuYwpAQCAtOTYsNyArOTYsNyBAQAogCiAJaWYgKHN3cWUtPndyLm9wY29kZSA9PSBJQl9XUl9TRU5EX1dJVEhfSU1NKSB7CiAJCXdjLndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCXdjLmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CisJCXdjLmV4LmltbV9kYXRhID0gc3dxZS0+d3IuZXguaW1tX2RhdGE7CiAJfQogCiAJLyoKQEAgLTQ5MiwxNCArNDkyLDE0IEBACiAJaWYgKHFwLT5pYnFwLnFwX251bSA+IDEgJiYKIAkgICAgb3Bjb2RlID09IElCX09QQ09ERV9VRF9TRU5EX09OTFlfV0lUSF9JTU1FRElBVEUpIHsKIAkJaWYgKGhlYWRlcl9pbl9kYXRhKSB7Ci0JCQl3Yy5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CisJCQl3Yy5leC5pbW1fZGF0YSA9ICooX19iZTMyICopIGRhdGE7CiAJCQlkYXRhICs9IHNpemVvZihfX2JlMzIpOwogCQl9IGVsc2UKLQkJCXdjLmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKKwkJCXdjLmV4LmltbV9kYXRhID0gb2hkci0+dS51ZC5pbW1fZGF0YTsKIAkJd2Mud2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKIAkJaGRyc2l6ZSArPSBzaXplb2YodTMyKTsKIAl9IGVsc2UgaWYgKG9wY29kZSA9PSBJQl9PUENPREVfVURfU0VORF9PTkxZKSB7Ci0JCXdjLmltbV9kYXRhID0gMDsKKwkJd2MuZXguaW1tX2RhdGEgPSAwOwogCQl3Yy53Y19mbGFncyA9IDA7CiAJfSBlbHNlIHsKIAkJZGV2LT5uX3BrdF9kcm9wcysrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwppbmRleCBlMGVjNTQwLi45ZTIzYWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgvaXBhdGhfdmVyYnMuYwpAQCAtMTQ5NCw5ICsxNDk0LDExIEBACiAKIAlwcm9wcy0+ZGV2aWNlX2NhcF9mbGFncyA9IElCX0RFVklDRV9CQURfUEtFWV9DTlRSIHwKIAkJSUJfREVWSUNFX0JBRF9RS0VZX0NOVFIgfCBJQl9ERVZJQ0VfU0hVVERPV05fUE9SVCB8Ci0JCUlCX0RFVklDRV9TWVNfSU1BR0VfR1VJRDsKKwkJSUJfREVWSUNFX1NZU19JTUFHRV9HVUlEIHwgSUJfREVWSUNFX1JDX1JOUl9OQUtfR0VOIHwKKwkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UIHwgSUJfREVWSUNFX1NSUV9SRVNJWkU7CiAJcHJvcHMtPnBhZ2Vfc2l6ZV9jYXAgPSBQQUdFX1NJWkU7Ci0JcHJvcHMtPnZlbmRvcl9pZCA9IGRldi0+ZGQtPmlwYXRoX3ZlbmRvcmlkOworCXByb3BzLT52ZW5kb3JfaWQgPQorCQlJUEFUSF9TUkNfT1VJXzEgPDwgMTYgfCBJUEFUSF9TUkNfT1VJXzIgPDwgOCB8IElQQVRIX1NSQ19PVUlfMzsKIAlwcm9wcy0+dmVuZG9yX3BhcnRfaWQgPSBkZXYtPmRkLT5pcGF0aF9kZXZpY2VpZDsKIAlwcm9wcy0+aHdfdmVyID0gZGV2LT5kZC0+aXBhdGhfcGNpcmV2OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvY3EuYwppbmRleCA0NTIxMzE5Li4yOTlmMjA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L2NxLmMKQEAgLTY2MywxOCArNjYzLDE4IEBACiAKIAkJc3dpdGNoIChjcWUtPm93bmVyX3NyX29wY29kZSAmIE1MWDRfQ1FFX09QQ09ERV9NQVNLKSB7CiAJCWNhc2UgTUxYNF9SRUNWX09QQ09ERV9SRE1BX1dSSVRFX0lNTToKLQkJCXdjLT5vcGNvZGUgICA9IElCX1dDX1JFQ1ZfUkRNQV9XSVRIX0lNTTsKLQkJCXdjLT53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwotCQkJd2MtPmltbV9kYXRhID0gY3FlLT5pbW1lZF9yc3NfaW52YWxpZDsKKwkJCXdjLT5vcGNvZGUJPSBJQl9XQ19SRUNWX1JETUFfV0lUSF9JTU07CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJY2FzZSBNTFg0X1JFQ1ZfT1BDT0RFX1NFTkQ6CiAJCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwogCQkJd2MtPndjX2ZsYWdzID0gMDsKIAkJCWJyZWFrOwogCQljYXNlIE1MWDRfUkVDVl9PUENPREVfU0VORF9JTU06Ci0JCQl3Yy0+b3Bjb2RlICAgPSBJQl9XQ19SRUNWOwotCQkJd2MtPndjX2ZsYWdzID0gSUJfV0NfV0lUSF9JTU07Ci0JCQl3Yy0+aW1tX2RhdGEgPSBjcWUtPmltbWVkX3Jzc19pbnZhbGlkOworCQkJd2MtPm9wY29kZQk9IElCX1dDX1JFQ1Y7CisJCQl3Yy0+d2NfZmxhZ3MJPSBJQl9XQ19XSVRIX0lNTTsKKwkJCXdjLT5leC5pbW1fZGF0YSA9IGNxZS0+aW1tZWRfcnNzX2ludmFsaWQ7CiAJCQlicmVhazsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCmluZGV4IDRjMWU3MmYuLmNkY2EzYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21hZC5jCkBAIC0yNTUsNyArMjU1LDggQEAKIAkJCXJldHVybiBJQl9NQURfUkVTVUxUX1NVQ0NFU1M7CiAJfSBlbHNlIGlmIChpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBJQl9NR01UX0NMQVNTX1BFUkZfTUdNVCB8fAogCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzEgICB8fAotCQkgICBpbl9tYWQtPm1hZF9oZHIubWdtdF9jbGFzcyA9PSBNTFg0X0lCX1ZFTkRPUl9DTEFTUzIpIHsKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gTUxYNF9JQl9WRU5ET1JfQ0xBU1MyICAgfHwKKwkJICAgaW5fbWFkLT5tYWRfaGRyLm1nbXRfY2xhc3MgPT0gSUJfTUdNVF9DTEFTU19DT05HX01HTVQpIHsKIAkJaWYgKGluX21hZC0+bWFkX2hkci5tZXRob2QgICE9IElCX01HTVRfTUVUSE9EX0dFVCAmJgogCQkgICAgaW5fbWFkLT5tYWRfaGRyLm1ldGhvZCAgIT0gSUJfTUdNVF9NRVRIT0RfU0VUKQogCQkJcmV0dXJuIElCX01BRF9SRVNVTFRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21haW4uYwppbmRleCA0ZDYxZTMyLi5iY2Y1MDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFpbi5jCkBAIC05MCw3ICs5MCw4IEBACiAJcHJvcHMtPmRldmljZV9jYXBfZmxhZ3MgICAgPSBJQl9ERVZJQ0VfQ0hBTkdFX1BIWV9QT1JUIHwKIAkJSUJfREVWSUNFX1BPUlRfQUNUSVZFX0VWRU5UCQl8CiAJCUlCX0RFVklDRV9TWVNfSU1BR0VfR1VJRAkJfAotCQlJQl9ERVZJQ0VfUkNfUk5SX05BS19HRU47CisJCUlCX0RFVklDRV9SQ19STlJfTkFLX0dFTgkJfAorCQlJQl9ERVZJQ0VfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9QS0VZX0NOVFIpCiAJCXByb3BzLT5kZXZpY2VfY2FwX2ZsYWdzIHw9IElCX0RFVklDRV9CQURfUEtFWV9DTlRSOwogCWlmIChkZXYtPmRldi0+Y2Fwcy5mbGFncyAmIE1MWDRfREVWX0NBUF9GTEFHX0JBRF9RS0VZX0NOVFIpCkBAIC00MzcsNyArNDM4LDkgQEAKIHN0YXRpYyBpbnQgbWx4NF9pYl9tY2dfYXR0YWNoKHN0cnVjdCBpYl9xcCAqaWJxcCwgdW5pb24gaWJfZ2lkICpnaWQsIHUxNiBsaWQpCiB7CiAJcmV0dXJuIG1seDRfbXVsdGljYXN0X2F0dGFjaCh0b19tZGV2KGlicXAtPmRldmljZSktPmRldiwKLQkJCQkgICAgICZ0b19tcXAoaWJxcCktPm1xcCwgZ2lkLT5yYXcpOworCQkJCSAgICAgJnRvX21xcChpYnFwKS0+bXFwLCBnaWQtPnJhdywKKwkJCQkgICAgICEhKHRvX21xcChpYnFwKS0+ZmxhZ3MgJgorCQkJCQlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykpOwogfQogCiBzdGF0aWMgaW50IG1seDRfaWJfbWNnX2RldGFjaChzdHJ1Y3QgaWJfcXAgKmlicXAsIHVuaW9uIGliX2dpZCAqZ2lkLCB1MTYgbGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWx4NF9pYi5oCmluZGV4IDVjZjk5NDcuLmM0Y2Y1YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L21seDRfaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tbHg0X2liLmgKQEAgLTEwMSw3ICsxMDEsOCBAQAogfTsKIAogZW51bSBtbHg0X2liX3FwX2ZsYWdzIHsKLQlNTFg0X0lCX1FQX0xTTwkJPSAxIDw8IDAKKwlNTFg0X0lCX1FQX0xTTwkJCQk9IDEgPDwgMCwKKwlNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSwk9IDEgPDwgMSwKIH07CiAKIHN0cnVjdCBtbHg0X2liX3FwIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9xcC5jCmluZGV4IDhlMDJlY2YuLjg5ZWI2Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg0L3FwLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvcXAuYwpAQCAtMTI5LDkgKzEyOSwxMCBAQAogCWludCBpbmQ7CiAJdm9pZCAqYnVmOwogCV9fYmUzMiBzdGFtcDsKKwlzdHJ1Y3QgbWx4NF93cWVfY3RybF9zZWcgKmN0cmw7CiAKLQlzID0gcm91bmR1cChzaXplLCAxVSA8PCBxcC0+c3Eud3FlX3NoaWZ0KTsKIAlpZiAocXAtPnNxX21heF93cWVzX3Blcl93ciA+IDEpIHsKKwkJcyA9IHJvdW5kdXAoc2l6ZSwgMVUgPDwgcXAtPnNxLndxZV9zaGlmdCk7CiAJCWZvciAoaSA9IDA7IGkgPCBzOyBpICs9IDY0KSB7CiAJCQlpbmQgPSAoaSA+PiBxcC0+c3Eud3FlX3NoaWZ0KSArIG47CiAJCQlzdGFtcCA9IGluZCAmIHFwLT5zcS53cWVfY250ID8gY3B1X3RvX2JlMzIoMHg3ZmZmZmZmZikgOgpAQCAtMTQxLDcgKzE0Miw4IEBACiAJCQkqd3FlID0gc3RhbXA7CiAJCX0KIAl9IGVsc2UgewotCQlidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCWN0cmwgPSBidWYgPSBnZXRfc2VuZF93cWUocXAsIG4gJiAocXAtPnNxLndxZV9jbnQgLSAxKSk7CisJCXMgPSAoY3RybC0+ZmVuY2Vfc2l6ZSAmIDB4M2YpIDw8IDQ7CiAJCWZvciAoaSA9IDY0OyBpIDwgczsgaSArPSA2NCkgewogCQkJd3FlID0gYnVmICsgaTsKIAkJCSp3cWUgPSBjcHVfdG9fYmUzMigweGZmZmZmZmZmKTsKQEAgLTMzMyw2ICszMzUsOSBAQAogCQljYXAtPm1heF9pbmxpbmVfZGF0YSArIHNpemVvZiAoc3RydWN0IG1seDRfd3FlX2lubGluZV9zZWcpKSArCiAJCXNlbmRfd3FlX292ZXJoZWFkKHR5cGUsIHFwLT5mbGFncyk7CiAKKwlpZiAocyA+IGRldi0+ZGV2LT5jYXBzLm1heF9zcV9kZXNjX3N6KQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCS8qCiAJICogSGVybW9uIHN1cHBvcnRzIHNocmlua2luZyBXUUVzLCBzdWNoIHRoYXQgYSBzaW5nbGUgd29yawogCSAqIHJlcXVlc3QgY2FuIGluY2x1ZGUgbXVsdGlwbGUgdW5pdHMgb2YgMSA8PCB3cWVfc2hpZnQuICBUaGlzCkBAIC0zNzIsOSArMzc3LDYgQEAKIAkJcXAtPnNxLndxZV9zaGlmdCA9IGlsb2cyKHJvdW5kdXBfcG93X29mX3R3byhzKSk7CiAKIAlmb3IgKDs7KSB7Ci0JCWlmICgxIDw8IHFwLT5zcS53cWVfc2hpZnQgPiBkZXYtPmRldi0+Y2Fwcy5tYXhfc3FfZGVzY19zeikKLQkJCXJldHVybiAtRUlOVkFMOwotCiAJCXFwLT5zcV9tYXhfd3Flc19wZXJfd3IgPSBESVZfUk9VTkRfVVAocywgMVUgPDwgcXAtPnNxLndxZV9zaGlmdCk7CiAKIAkJLyoKQEAgLTM5NSw3ICszOTcsOCBAQAogCQkrK3FwLT5zcS53cWVfc2hpZnQ7CiAJfQogCi0JcXAtPnNxLm1heF9ncyA9ICgocXAtPnNxX21heF93cWVzX3Blcl93ciA8PCBxcC0+c3Eud3FlX3NoaWZ0KSAtCisJcXAtPnNxLm1heF9ncyA9IChtaW4oZGV2LT5kZXYtPmNhcHMubWF4X3NxX2Rlc2Nfc3osCisJCQkgICAgIChxcC0+c3FfbWF4X3dxZXNfcGVyX3dyIDw8IHFwLT5zcS53cWVfc2hpZnQpKSAtCiAJCQkgc2VuZF93cWVfb3ZlcmhlYWQodHlwZSwgcXAtPmZsYWdzKSkgLwogCQlzaXplb2YgKHN0cnVjdCBtbHg0X3dxZV9kYXRhX3NlZyk7CiAKQEAgLTQxMSw3ICs0MTQsOSBAQAogCiAJY2FwLT5tYXhfc2VuZF93ciAgPSBxcC0+c3EubWF4X3Bvc3QgPQogCQkocXAtPnNxLndxZV9jbnQgLSBxcC0+c3Ffc3BhcmVfd3FlcykgLyBxcC0+c3FfbWF4X3dxZXNfcGVyX3dyOwotCWNhcC0+bWF4X3NlbmRfc2dlID0gcXAtPnNxLm1heF9nczsKKwljYXAtPm1heF9zZW5kX3NnZSA9IG1pbihxcC0+c3EubWF4X2dzLAorCQkJCW1pbihkZXYtPmRldi0+Y2Fwcy5tYXhfc3Ffc2csCisJCQkJICAgIGRldi0+ZGV2LT5jYXBzLm1heF9ycV9zZykpOwogCS8qIFdlIGRvbid0IHN1cHBvcnQgaW5saW5lIHNlbmRzIGZvciBrZXJuZWwgUVBzICh5ZXQpICovCiAJY2FwLT5tYXhfaW5saW5lX2RhdGEgPSAwOwogCkBAIC00NDksMTkgKzQ1NCw4IEBACiAJc3Bpbl9sb2NrX2luaXQoJnFwLT5ycS5sb2NrKTsKIAogCXFwLT5zdGF0ZQkgPSBJQl9RUFNfUkVTRVQ7Ci0JcXAtPmF0b21pY19yZF9lbiA9IDA7Ci0JcXAtPnJlc3BfZGVwdGggICA9IDA7Ci0KLQlxcC0+cnEuaGVhZAkgICAgPSAwOwotCXFwLT5ycS50YWlsCSAgICA9IDA7Ci0JcXAtPnNxLmhlYWQJICAgID0gMDsKLQlxcC0+c3EudGFpbAkgICAgPSAwOwotCXFwLT5zcV9uZXh0X3dxZSAgICAgPSAwOwotCiAJaWYgKGluaXRfYXR0ci0+c3Ffc2lnX3R5cGUgPT0gSUJfU0lHTkFMX0FMTF9XUikKIAkJcXAtPnNxX3NpZ25hbF9iaXRzID0gY3B1X3RvX2JlMzIoTUxYNF9XUUVfQ1RSTF9DUV9VUERBVEUpOwotCWVsc2UKLQkJcXAtPnNxX3NpZ25hbF9iaXRzID0gMDsKIAogCWVyciA9IHNldF9ycV9zaXplKGRldiwgJmluaXRfYXR0ci0+Y2FwLCAhIXBkLT51b2JqZWN0LCAhIWluaXRfYXR0ci0+c3JxLCBxcCk7CiAJaWYgKGVycikKQEAgLTUwNiw2ICs1MDAsOSBAQAogCX0gZWxzZSB7CiAJCXFwLT5zcV9ub19wcmVmZXRjaCA9IDA7CiAKKwkJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykKKwkJCXFwLT5mbGFncyB8PSBNTFg0X0lCX1FQX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSzsKKwogCQlpZiAoaW5pdF9hdHRyLT5jcmVhdGVfZmxhZ3MgJiBJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPKQogCQkJcXAtPmZsYWdzIHw9IE1MWDRfSUJfUVBfTFNPOwogCkBAIC02NzksMTAgKzY3NiwxNSBAQAogCXN0cnVjdCBtbHg0X2liX3FwICpxcDsKIAlpbnQgZXJyOwogCi0JLyogV2Ugb25seSBzdXBwb3J0IExTTywgYW5kIG9ubHkgZm9yIGtlcm5lbCBVRCBRUHMuICovCi0JaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgfklCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08pCisJLyoKKwkgKiBXZSBvbmx5IHN1cHBvcnQgTFNPIGFuZCBtdWx0aWNhc3QgbG9vcGJhY2sgYmxvY2tpbmcsIGFuZAorCSAqIG9ubHkgZm9yIGtlcm5lbCBVRCBRUHMuCisJICovCisJaWYgKGluaXRfYXR0ci0+Y3JlYXRlX2ZsYWdzICYgfihJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPIHwKKwkJCQkJSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSykpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwotCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmIElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU08gJiYKKworCWlmIChpbml0X2F0dHItPmNyZWF0ZV9mbGFncyAmJgogCSAgICAocGQtPnVvYmplY3QgfHwgaW5pdF9hdHRyLT5xcF90eXBlICE9IElCX1FQVF9VRCkpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwogCkBAIC02OTEsNyArNjkzLDcgQEAKIAljYXNlIElCX1FQVF9VQzoKIAljYXNlIElCX1FQVF9VRDoKIAl7Ci0JCXFwID0ga21hbGxvYyhzaXplb2YgKnFwLCBHRlBfS0VSTkVMKTsKKwkJcXAgPSBremFsbG9jKHNpemVvZiAqcXAsIEdGUF9LRVJORUwpOwogCQlpZiAoIXFwKQogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKQEAgLTcxMiw3ICs3MTQsNyBAQAogCQlpZiAocGQtPnVvYmplY3QpCiAJCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKIAotCQlzcXAgPSBrbWFsbG9jKHNpemVvZiAqc3FwLCBHRlBfS0VSTkVMKTsKKwkJc3FwID0ga3phbGxvYyhzaXplb2YgKnNxcCwgR0ZQX0tFUk5FTCk7CiAJCWlmICghc3FwKQogCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CiAKQEAgLTkwMyw3ICs5MDUsOCBAQAogCQkJICAgICAgIGF0dHItPnBhdGhfbXR1KTsKIAkJCWdvdG8gb3V0OwogCQl9Ci0JCWNvbnRleHQtPm10dV9tc2dtYXggPSAoYXR0ci0+cGF0aF9tdHUgPDwgNSkgfCAzMTsKKwkJY29udGV4dC0+bXR1X21zZ21heCA9IChhdHRyLT5wYXRoX210dSA8PCA1KSB8CisJCQlpbG9nMihkZXYtPmRldi0+Y2Fwcy5tYXhfbXNnX3N6KTsKIAl9CiAKIAlpZiAocXAtPnJxLndxZV9jbnQpCkBAIC0xMDYwLDYgKzEwNjMsOCBAQAogCQlmb3IgKGkgPSAwOyBpIDwgcXAtPnNxLndxZV9jbnQ7ICsraSkgewogCQkJY3RybCA9IGdldF9zZW5kX3dxZShxcCwgaSk7CiAJCQljdHJsLT5vd25lcl9vcGNvZGUgPSBjcHVfdG9fYmUzMigxIDw8IDMxKTsKKwkJCWlmIChxcC0+c3FfbWF4X3dxZXNfcGVyX3dyID09IDEpCisJCQkJY3RybC0+ZmVuY2Vfc2l6ZSA9IDEgPDwgKHFwLT5zcS53cWVfc2hpZnQgLSA0KTsKIAogCQkJc3RhbXBfc2VuZF93cWUocXAsIGksIDEgPDwgcXAtPnNxLndxZV9zaGlmdCk7CiAJCX0KQEAgLTExMjQsMjMgKzExMjksNiBAQAogCXJldHVybiBlcnI7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWJfcXBfYXR0ciBtbHg0X2liX3FwX2F0dHIgPSB7IC5wb3J0X251bSA9IDEgfTsKLXN0YXRpYyBjb25zdCBpbnQgbWx4NF9pYl9xcF9hdHRyX21hc2tfdGFibGVbSUJfUVBUX1VEICsgMV0gPSB7Ci0JCVtJQl9RUFRfVURdICA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUE9SVAkJCXwKLQkJCQlJQl9RUF9RS0VZKSwKLQkJW0lCX1FQVF9VQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCQlJQl9RUF9QT1JUCQkJfAotCQkJCUlCX1FQX0FDQ0VTU19GTEFHUyksCi0JCVtJQl9RUFRfUkNdICA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQkJSUJfUVBfUE9SVAkJCXwKLQkJCQlJQl9RUF9BQ0NFU1NfRkxBR1MpLAotCQlbSUJfUVBUX1NNSV0gPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJCUlCX1FQX1FLRVkpLAotCQlbSUJfUVBUX0dTSV0gPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJCUlCX1FQX1FLRVkpLAotfTsKLQogaW50IG1seDRfaWJfbW9kaWZ5X3FwKHN0cnVjdCBpYl9xcCAqaWJxcCwgc3RydWN0IGliX3FwX2F0dHIgKmF0dHIsCiAJCSAgICAgIGludCBhdHRyX21hc2ssIHN0cnVjdCBpYl91ZGF0YSAqdWRhdGEpCiB7CkBAIC0xMTgzLDE1ICsxMTcxLDYgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKGN1cl9zdGF0ZSA9PSBJQl9RUFNfUkVTRVQgJiYgbmV3X3N0YXRlID09IElCX1FQU19FUlIpIHsKLQkJZXJyID0gX19tbHg0X2liX21vZGlmeV9xcChpYnFwLCAmbWx4NF9pYl9xcF9hdHRyLAotCQkJCQkgIG1seDRfaWJfcXBfYXR0cl9tYXNrX3RhYmxlW2licXAtPnFwX3R5cGVdLAotCQkJCQkgIElCX1FQU19SRVNFVCwgSUJfUVBTX0lOSVQpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JCWN1cl9zdGF0ZSA9IElCX1FQU19JTklUOwotCX0KLQogCWVyciA9IF9fbWx4NF9pYl9tb2RpZnlfcXAoaWJxcCwgYXR0ciwgYXR0cl9tYXNrLCBjdXJfc3RhdGUsIG5ld19zdGF0ZSk7CiAKIG91dDoKQEAgLTE0NTcsNyArMTQzNiw3IEBACiAJdW5zaWduZWQgaW5kOwogCWludCB1bmluaXRpYWxpemVkX3ZhcihzdGFtcCk7CiAJaW50IHVuaW5pdGlhbGl6ZWRfdmFyKHNpemUpOwotCXVuc2lnbmVkIHNlZ2xlbjsKKwl1bnNpZ25lZCB1bmluaXRpYWxpemVkX3ZhcihzZWdsZW4pOwogCWludCBpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnFwLT5zcS5sb2NrLCBmbGFncyk7CkBAIC0xODYyLDYgKzE4NDEsMTMgQEAKIAogCXFwX2luaXRfYXR0ci0+Y2FwCSAgICAgPSBxcF9hdHRyLT5jYXA7CiAKKwlxcF9pbml0X2F0dHItPmNyZWF0ZV9mbGFncyA9IDA7CisJaWYgKHFwLT5mbGFncyAmIE1MWDRfSUJfUVBfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLKQorCQlxcF9pbml0X2F0dHItPmNyZWF0ZV9mbGFncyB8PSBJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLOworCisJaWYgKHFwLT5mbGFncyAmIE1MWDRfSUJfUVBfTFNPKQorCQlxcF9pbml0X2F0dHItPmNyZWF0ZV9mbGFncyB8PSBJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPOworCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZxcC0+bXV0ZXgpOwogCXJldHVybiBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYWxsb2NhdG9yLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYWxsb2NhdG9yLmMKaW5kZXggYTc2MzA2Ny4uYzVjY2MyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2FsbG9jYXRvci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9hbGxvY2F0b3IuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfYWxsb2NhdG9yLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2F2LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYXYuYwppbmRleCA0YjExMWE4Li4zMmY2YzYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYXYuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfYXYuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfYXYuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NhdGFzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY2F0YXMuYwppbmRleCBlOTQ4MTU4Li5jYzQ0MGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY2F0YXMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY2F0YXMuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgpAQCAtMTI4LDcgKzEyNiw2IEBACiBzdGF0aWMgdm9pZCBwb2xsX2NhdGFzKHVuc2lnbmVkIGxvbmcgZGV2X3B0cikKIHsKIAlzdHJ1Y3QgbXRoY2FfZGV2ICpkZXYgPSAoc3RydWN0IG10aGNhX2RldiAqKSBkZXZfcHRyOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZGV2LT5jYXRhc19lcnIuc2l6ZTsgKytpKQpAQCAtMTM3LDEzICsxMzQsOCBAQAogCQkJcmV0dXJuOwogCQl9CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2F0YXNfbG9jaywgZmxhZ3MpOwotCWlmICghZGV2LT5jYXRhc19lcnIuc3RvcCkKLQkJbW9kX3RpbWVyKCZkZXYtPmNhdGFzX2Vyci50aW1lciwKLQkJCSAgamlmZmllcyArIE1USENBX0NBVEFTX1BPTExfSU5URVJWQUwpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhdGFzX2xvY2ssIGZsYWdzKTsKLQotCXJldHVybjsKKwltb2RfdGltZXIoJmRldi0+Y2F0YXNfZXJyLnRpbWVyLAorCQkgIHJvdW5kX2ppZmZpZXMoamlmZmllcyArIE1USENBX0NBVEFTX1BPTExfSU5URVJWQUwpKTsKIH0KIAogdm9pZCBtdGhjYV9zdGFydF9jYXRhc19wb2xsKHN0cnVjdCBtdGhjYV9kZXYgKmRldikKQEAgLTE1MSw3ICsxNDMsNiBAQAogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAogCWluaXRfdGltZXIoJmRldi0+Y2F0YXNfZXJyLnRpbWVyKTsKLQlkZXYtPmNhdGFzX2Vyci5zdG9wID0gMDsKIAlkZXYtPmNhdGFzX2Vyci5tYXAgID0gTlVMTDsKIAogCWFkZHIgPSBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5wZGV2LCAwKSArCkBAIC0xODIsMTAgKzE3Myw2IEBACiAKIHZvaWQgbXRoY2Ffc3RvcF9jYXRhc19wb2xsKHN0cnVjdCBtdGhjYV9kZXYgKmRldikKIHsKLQlzcGluX2xvY2tfaXJxKCZjYXRhc19sb2NrKTsKLQlkZXYtPmNhdGFzX2Vyci5zdG9wID0gMTsKLQlzcGluX3VubG9ja19pcnEoJmNhdGFzX2xvY2spOwotCiAJZGVsX3RpbWVyX3N5bmMoJmRldi0+Y2F0YXNfZXJyLnRpbWVyKTsKIAogCWlmIChkZXYtPmNhdGFzX2Vyci5tYXApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuYwppbmRleCA1NGQyMzBlLi5jMzNlMWM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9jbWQuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRpb24uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jbWQuaAppbmRleCA4OTI4Y2E0Li42ZWZkMzI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY21kLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NtZC5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9jbWQuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9DTURfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NvbmZpZ19yZWcuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jb25maWdfcmVnLmgKaW5kZXggYWZhNTZiZi4uNzU2NzFmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2NvbmZpZ19yZWcuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY29uZmlnX3JlZy5oCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9jb25maWdfcmVnLmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgTVRIQ0FfQ09ORklHX1JFR19ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfY3EuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jcS5jCmluZGV4IDIwNDAxZDIuLmQ5ZjQ3MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jcS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9jcS5jCkBAIC0zMiw4ICszMiw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9jcS5jIDEzNjkgMjAwNC0xMi0yMCAxNjoxNzowN1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgpAQCAtNjIyLDEzICs2MjAsMTMgQEAKIAkJY2FzZSBJQl9PUENPREVfU0VORF9MQVNUX1dJVEhfSU1NRURJQVRFOgogCQljYXNlIElCX09QQ09ERV9TRU5EX09OTFlfV0lUSF9JTU1FRElBVEU6CiAJCQllbnRyeS0+d2NfZmxhZ3MgPSBJQl9XQ19XSVRIX0lNTTsKLQkJCWVudHJ5LT5pbW1fZGF0YSA9IGNxZS0+aW1tX2V0eXBlX3BrZXlfZWVjOworCQkJZW50cnktPmV4LmltbV9kYXRhID0gY3FlLT5pbW1fZXR5cGVfcGtleV9lZWM7CiAJCQllbnRyeS0+b3Bjb2RlID0gSUJfV0NfUkVDVjsKIAkJCWJyZWFrOwogCQljYXNlIElCX09QQ09ERV9SRE1BX1dSSVRFX0xBU1RfV0lUSF9JTU1FRElBVEU6CiAJCWNhc2UgSUJfT1BDT0RFX1JETUFfV1JJVEVfT05MWV9XSVRIX0lNTUVESUFURToKIAkJCWVudHJ5LT53Y19mbGFncyA9IElCX1dDX1dJVEhfSU1NOwotCQkJZW50cnktPmltbV9kYXRhID0gY3FlLT5pbW1fZXR5cGVfcGtleV9lZWM7CisJCQllbnRyeS0+ZXguaW1tX2RhdGEgPSBjcWUtPmltbV9ldHlwZV9wa2V5X2VlYzsKIAkJCWVudHJ5LT5vcGNvZGUgPSBJQl9XQ19SRUNWX1JETUFfV0lUSF9JTU07CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kZXYuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kZXYuaAppbmRleCA3YmMzMmY4Li5lZTRkMDczIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZGV2LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2Rldi5oCkBAIC0zMiw4ICszMiw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9kZXYuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9ERVZfSApAQCAtMjc5LDcgKzI3Nyw2IEBACiBzdHJ1Y3QgbXRoY2FfY2F0YXNfZXJyIHsKIAl1NjQJCQlhZGRyOwogCXUzMiBfX2lvbWVtCSAgICAgICAqbWFwOwotCXVuc2lnbmVkIGxvbmcJCXN0b3A7CiAJdTMyCQkJc2l6ZTsKIAlzdHJ1Y3QgdGltZXJfbGlzdAl0aW1lcjsKIAlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfZG9vcmJlbGwuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kb29yYmVsbC5oCmluZGV4IGIzNzRkYzMuLjE0ZjUxZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kb29yYmVsbC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9kb29yYmVsbC5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9kb29yYmVsbC5oIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9lcS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2VxLmMKaW5kZXggOGJkZTdmOS4uNGUzNmFhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2VxLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX2VxLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX2VxLmMgMTM4MiAyMDA0LTEyLTI0IDAyOjIxOjAyWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21hZC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21hZC5jCmluZGV4IDhiN2U4M2UuLjY0MDQ0OTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWQuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFkLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX21hZC5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21haW4uYwppbmRleCA5ZWJhZGQ2Li5mYjlmOTFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWFpbi5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tYWluLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX21haW4uYyAxMzk2IDIwMDQtMTItMjggMDQ6MTA6MjdaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNDUsNiArNDMsNyBAQAogI2luY2x1ZGUgIm10aGNhX2NtZC5oIgogI2luY2x1ZGUgIm10aGNhX3Byb2ZpbGUuaCIKICNpbmNsdWRlICJtdGhjYV9tZW1mcmVlLmgiCisjaW5jbHVkZSAibXRoY2Ffd3FlLmgiCiAKIE1PRFVMRV9BVVRIT1IoIlJvbGFuZCBEcmVpZXIiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTWVsbGFub3ggSW5maW5pQmFuZCBIQ0EgbG93LWxldmVsIGRyaXZlciIpOwpAQCAtMjAwLDcgKzE5OSwxOCBAQAogCW1kZXYtPmxpbWl0cy5naWRfdGFibGVfbGVuICAJPSBkZXZfbGltLT5tYXhfZ2lkczsKIAltZGV2LT5saW1pdHMucGtleV90YWJsZV9sZW4gCT0gZGV2X2xpbS0+bWF4X3BrZXlzOwogCW1kZXYtPmxpbWl0cy5sb2NhbF9jYV9hY2tfZGVsYXkgPSBkZXZfbGltLT5sb2NhbF9jYV9hY2tfZGVsYXk7Ci0JbWRldi0+bGltaXRzLm1heF9zZyAgICAgICAgICAgICA9IGRldl9saW0tPm1heF9zZzsKKwkvKgorCSAqIE5lZWQgdG8gYWxsb3cgZm9yIHdvcnN0IGNhc2Ugc2VuZCBXUUUgb3ZlcmhlYWQgYW5kIGNoZWNrCisJICogd2hldGhlciBtYXhfZGVzY19zeiBpbXBvc2VzIGEgbG93ZXIgbGltaXQgdGhhbiBtYXhfc2c7IFVECisJICogc2VuZCBoYXMgdGhlIGJpZ2dlc3Qgb3ZlcmhlYWQuCisJICovCisJbWRldi0+bGltaXRzLm1heF9zZwkJPSBtaW5fdChpbnQsIGRldl9saW0tPm1heF9zZywKKwkJCQkJICAgICAgKGRldl9saW0tPm1heF9kZXNjX3N6IC0KKwkJCQkJICAgICAgIHNpemVvZiAoc3RydWN0IG10aGNhX25leHRfc2VnKSAtCisJCQkJCSAgICAgICAobXRoY2FfaXNfbWVtZnJlZShtZGV2KSA/CisJCQkJCQlzaXplb2YgKHN0cnVjdCBtdGhjYV9hcmJlbF91ZF9zZWcpIDoKKwkJCQkJCXNpemVvZiAoc3RydWN0IG10aGNhX3Rhdm9yX3VkX3NlZykpKSAvCisJCQkJCQlzaXplb2YgKHN0cnVjdCBtdGhjYV9kYXRhX3NlZykpOwogCW1kZXYtPmxpbWl0cy5tYXhfd3FlcyAgICAgICAgICAgPSBkZXZfbGltLT5tYXhfcXBfc3o7CiAJbWRldi0+bGltaXRzLm1heF9xcF9pbml0X3JkbWEgICA9IGRldl9saW0tPm1heF9yZXF1ZXN0ZXJfcGVyX3FwOwogCW1kZXYtPmxpbWl0cy5yZXNlcnZlZF9xcHMgICAgICAgPSBkZXZfbGltLT5yZXNlcnZlZF9xcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWNnLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWNnLmMKaW5kZXggYThhZDA3Mi4uM2Y1Zjk0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21jZy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tY2cuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfbWNnLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5jCmluZGV4IGIyMjQwNzkuLjFmN2QxYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuYwpAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW0uaD4KQEAgLTEwOSw3ICsxMDcsMTEgQEAKIHsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAotCXBhZ2UgPSBhbGxvY19wYWdlcyhnZnBfbWFzaywgb3JkZXIpOworCS8qCisJICogVXNlIF9fR0ZQX1pFUk8gYmVjYXVzZSBidWdneSBmaXJtd2FyZSBhc3N1bWVzIElDTSBwYWdlcyBhcmUKKwkgKiBjbGVhcmVkLCBhbmQgc3VidGxlIGZhaWx1cmVzIGFyZSBzZWVuIGlmIHRoZXkgYXJlbid0LgorCSAqLworCXBhZ2UgPSBhbGxvY19wYWdlcyhnZnBfbWFzayB8IF9fR0ZQX1pFUk8sIG9yZGVyKTsKIAlpZiAoIXBhZ2UpCiAJCXJldHVybiAtRU5PTUVNOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21lbWZyZWUuaAppbmRleCBhMWFiMDY4Li5kYTliOGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfbWVtZnJlZS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tZW1mcmVlLmgKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9NRU1GUkVFX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9tci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21yLmMKaW5kZXggODIwMjA1ZC4uODQ4OWIxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21yLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX21yLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX21yLmMgMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcGQuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wZC5jCmluZGV4IGMxZTk1MDcuLjI2NmYxNGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wZC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wZC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9wZC5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5jCmluZGV4IDYwNWE4ZDUuLmQxNjhjMjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuYwpAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvZmlsZS5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb2ZpbGUuaAppbmRleCBlNzZjYjYyLi42MmIwMDljIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvZmlsZS5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm9maWxlLmgKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3Byb2ZpbGUuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9QUk9GSUxFX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRlci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMKaW5kZXggYmUzNGY5OS4uODdhZDg4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMKQEAgLTMyLDggKzMyLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3Byb3ZpZGVyLmMgNDg1OSAyMDA2LTAxLTA5IDIxOjU1OjEwWiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxyZG1hL2liX3NtaS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuaAppbmRleCA5MzRiZjk1Li5jNjIxZjg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogbXRoY2FfcHJvdmlkZXIuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9QUk9WSURFUl9ICmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcXAuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9xcC5jCmluZGV4IDA5ZGMzNjEuLmY1MDgxYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9xcC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9xcC5jCkBAIC0zMSw4ICszMSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9xcC5jIDEzNTUgMjAwNC0xMi0xNyAxNToyMzo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CkBAIC04NTAsMjMgKzg0OCw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIGNvbnN0IHN0cnVjdCBpYl9xcF9hdHRyIGR1bW15X2luaXRfYXR0ciA9IHsgLnBvcnRfbnVtID0gMSB9Owotc3RhdGljIGNvbnN0IGludCBkdW1teV9pbml0X2F0dHJfbWFza1tdID0gewotCVtJQl9RUFRfVURdICA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQlJQl9RUF9QT1JUCQkJfAotCQkJSUJfUVBfUUtFWSksCi0JW0lCX1FQVF9VQ10gID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1BPUlQJCQl8Ci0JCQlJQl9RUF9BQ0NFU1NfRkxBR1MpLAotCVtJQl9RUFRfUkNdICA9IChJQl9RUF9QS0VZX0lOREVYCQl8Ci0JCQlJQl9RUF9QT1JUCQkJfAotCQkJSUJfUVBfQUNDRVNTX0ZMQUdTKSwKLQlbSUJfUVBUX1NNSV0gPSAoSUJfUVBfUEtFWV9JTkRFWAkJfAotCQkJSUJfUVBfUUtFWSksCi0JW0lCX1FQVF9HU0ldID0gKElCX1FQX1BLRVlfSU5ERVgJCXwKLQkJCUlCX1FQX1FLRVkpLAotfTsKLQogaW50IG10aGNhX21vZGlmeV9xcChzdHJ1Y3QgaWJfcXAgKmlicXAsIHN0cnVjdCBpYl9xcF9hdHRyICphdHRyLCBpbnQgYXR0cl9tYXNrLAogCQkgICAgc3RydWN0IGliX3VkYXRhICp1ZGF0YSkKIHsKQEAgLTkyOCwxNSArOTA5LDYgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKGN1cl9zdGF0ZSA9PSBJQl9RUFNfUkVTRVQgJiYgbmV3X3N0YXRlID09IElCX1FQU19FUlIpIHsKLQkJZXJyID0gX19tdGhjYV9tb2RpZnlfcXAoaWJxcCwgJmR1bW15X2luaXRfYXR0ciwKLQkJCQkJZHVtbXlfaW5pdF9hdHRyX21hc2tbaWJxcC0+cXBfdHlwZV0sCi0JCQkJCUlCX1FQU19SRVNFVCwgSUJfUVBTX0lOSVQpOwotCQlpZiAoZXJyKQotCQkJZ290byBvdXQ7Ci0JCWN1cl9zdGF0ZSA9IElCX1FQU19JTklUOwotCX0KLQogCWVyciA9IF9fbXRoY2FfbW9kaWZ5X3FwKGlicXAsIGF0dHIsIGF0dHJfbWFzaywgY3VyX3N0YXRlLCBuZXdfc3RhdGUpOwogCiBvdXQ6CkBAIC0xMjc3LDEwICsxMjQ5LDEwIEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJLyoKLQkgKiBGb3IgTUxYIHRyYW5zcG9ydCB3ZSBuZWVkIDIgZXh0cmEgUy9HIGVudHJpZXM6CisJICogRm9yIE1MWCB0cmFuc3BvcnQgd2UgbmVlZCAyIGV4dHJhIHNlbmQgZ2F0aGVyIGVudHJpZXM6CiAJICogb25lIGZvciB0aGUgaGVhZGVyIGFuZCBvbmUgZm9yIHRoZSBjaGVja3N1bSBhdCB0aGUgZW5kCiAJICovCi0JaWYgKHFwLT50cmFuc3BvcnQgPT0gTUxYICYmIGNhcC0+bWF4X3JlY3Zfc2dlICsgMiA+IGRldi0+bGltaXRzLm1heF9zZykKKwlpZiAocXAtPnRyYW5zcG9ydCA9PSBNTFggJiYgY2FwLT5tYXhfc2VuZF9zZ2UgKyAyID4gZGV2LT5saW1pdHMubWF4X3NnKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWlmIChtdGhjYV9pc19tZW1mcmVlKGRldikpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9yZXNldC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Jlc2V0LmMKaW5kZXggOTE5MzRmMi4uYWNiNjgxN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9yZXNldC5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9yZXNldC5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV9yZXNldC5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3NycS5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3NycS5jCmluZGV4IGE1ZmZmZjYuLjRmYWJlNjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9zcnEuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffc3JxLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IG10aGNhX3NycS5jIDMwNDcgMjAwNS0wOC0xMCAwMzo1OTozNVogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Vhci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Vhci5jCmluZGV4IDhiNzI4NDguLmNhNTkwMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91YXIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdWFyLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQkCiAgKi8KIAogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CQkvKiBQQUdFX1NISUZUICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdXNlci5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3VzZXIuaAppbmRleCBlMTI2MmM5Li41ZmU1NmU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfdXNlci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV91c2VyLmgKQEAgLTI5LDcgKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9VU0VSX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV93cWUuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV93cWUuaAppbmRleCBiMzU1MWE4Li4zNDFhNWFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2Ffd3FlLmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3dxZS5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBtdGhjYV93cWUuaCAzMDQ3IDIwMDUtMDgtMTAgMDM6NTk6MzVaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBNVEhDQV9XUUVfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmMKaW5kZXggYTRlOTI2OS4uZDI4ODRlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5jCkBAIC0zMjgsNyArMzI4LDcgQEAKIAkJc2V0X3dxZV8zMmJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfV1FFX0lEX0lEWCwgbmVzcXAtPmh3cXAucXBfaWQpOwogCQl1NjR0ZW1wID0gKHU2NCluZXNxcC0+bmVzcXBfY29udGV4dF9wYmFzZTsKIAkJc2V0X3dxZV82NGJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfUVBfV1FFX0NPTlRFWFRfTE9XX0lEWCwgdTY0dGVtcCk7Ci0JCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwkJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5oIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXMuaAppbmRleCA2MWI0NmU5Li4zOWJkODk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lcy5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzLmgKQEAgLTk0LDkgKzk0LDYgQEAKIAogI2RlZmluZSBNQVhfRFBDX0lURVJBVElPTlMgICAgICAgICAgICAgICAxMjgKIAotI2RlZmluZSBORVNfQ1FQX1JFUVVFU1RfTk9fRE9PUkJFTExfUklORyAwCi0jZGVmaW5lIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMICAgIDEKLQogI2RlZmluZSBORVNfRFJWX09QVF9FTkFCTEVfTVBBX1ZFUl8wICAgICAweDAwMDAwMDAxCiAjZGVmaW5lIE5FU19EUlZfT1BUX0RJU0FCTEVfTVBBX0NSQyAgICAgIDB4MDAwMDAwMDIKICNkZWZpbmUgTkVTX0RSVl9PUFRfRElTQUJMRV9GSVJTVF9XUklURSAgMHgwMDAwMDAwNApAQCAtNTM4LDcgKzUzNSwxMSBAQAogdm9pZCBuZXNfd3JpdGVfMTBHX3BoeV9yZWcoc3RydWN0IG5lc19kZXZpY2UgKiwgdTE2LCB1OCwgdTE2LCB1MTYpOwogdm9pZCBuZXNfcmVhZF8xMEdfcGh5X3JlZyhzdHJ1Y3QgbmVzX2RldmljZSAqLCB1OCwgdTgsIHUxNik7CiBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpuZXNfZ2V0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICopOwotdm9pZCBuZXNfcG9zdF9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICosIGludCk7Cit2b2lkIG5lc19mcmVlX2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCisJCQkgIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0KTsKK3ZvaWQgbmVzX3B1dF9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2LAorCQkJIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0KTsKK3ZvaWQgbmVzX3Bvc3RfY3FwX3JlcXVlc3Qoc3RydWN0IG5lc19kZXZpY2UgKiwgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqKTsKIGludCBuZXNfYXJwX3RhYmxlKHN0cnVjdCBuZXNfZGV2aWNlICosIHUzMiwgdTggKiwgdTMyKTsKIHZvaWQgbmVzX21oX2ZpeCh1bnNpZ25lZCBsb25nKTsKIHZvaWQgbmVzX2NsYyh1bnNpZ25lZCBsb25nKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19jbS5jCmluZGV4IDlhNGI0MGYuLjZhYTUzMWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2NtLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfY20uYwpAQCAtMTYwMyw3ICsxNjAzLDYgQEAKIAkJCXJldHVybiBOVUxMOwogCQl9CiAKLQkJbWVtc2V0KGxpc3RlbmVyLCAwLCBzaXplb2Yoc3RydWN0IG5lc19jbV9saXN0ZW5lcikpOwogCQlsaXN0ZW5lci0+bG9jX2FkZHIgPSBodG9ubChjbV9pbmZvLT5sb2NfYWRkcik7CiAJCWxpc3RlbmVyLT5sb2NfcG9ydCA9IGh0b25zKGNtX2luZm8tPmxvY19wb3J0KTsKIAkJbGlzdGVuZXItPnJldXNlZF9ub2RlID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5jCmluZGV4IGQzMjc4ZjEuLjg1ZjI2ZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuYwpAQCAtMzk4LDcgKzM5OCw3IEBACiAJbmVzYWRhcHRlci0+YmFzZV9wZCA9IDE7CiAKIAluZXNhZGFwdGVyLT5kZXZpY2VfY2FwX2ZsYWdzID0KLQkJSUJfREVWSUNFX1pFUk9fU1RBRyB8IElCX0RFVklDRV9NRU1fV0lORE9XOworCQlJQl9ERVZJQ0VfTE9DQUxfRE1BX0xLRVkgfCBJQl9ERVZJQ0VfTUVNX1dJTkRPVzsKIAogCW5lc2FkYXB0ZXItPmFsbG9jYXRlZF9xcHMgPSAodW5zaWduZWQgbG9uZyAqKSYoKCh1bnNpZ25lZCBjaGFyICopbmVzYWRhcHRlcikKIAkJCVsoc2l6ZW9mKHN0cnVjdCBuZXNfYWRhcHRlcikrKHNpemVvZih1bnNpZ25lZCBsb25nKS0xKSkmKH4oc2l6ZW9mKHVuc2lnbmVkIGxvbmcpLTEpKV0pOwpAQCAtMjcxMCwzOSArMjcxMCwxMSBAQAogCQkJCQliYXJyaWVyKCk7CiAJCQkJCWNxcF9yZXF1ZXN0LT5yZXF1ZXN0X2RvbmUgPSAxOwogCQkJCQl3YWtlX3VwKCZjcXBfcmVxdWVzdC0+d2FpdHEpOwotCQkJCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1FQLCAiQ1FQIHJlcXVlc3QgJXAgKG9wY29kZSAweCUwMlgpIGZyZWVkLlxuIiwKLQkJCQkJCQkJY3FwX3JlcXVlc3QsCi0JCQkJCQkJCWxlMzJfdG9fY3B1KGNxcF9yZXF1ZXN0LT5jcXBfd3FlLndxZV93b3Jkc1tORVNfQ1FQX1dRRV9PUENPREVfSURYXSkmMHgzZik7Ci0JCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQkJCQl9IGVsc2UgewotCQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQl9Ci0JCQkJCX0KLQkJCQl9IGVsc2UgaWYgKGNxcF9yZXF1ZXN0LT5jYWxsYmFjaykgewotCQkJCQkvKiBFbnZva2UgdGhlIGNhbGxiYWNrIHJvdXRpbmUgKi8KLQkJCQkJY3FwX3JlcXVlc3QtPmNxcF9jYWxsYmFjayhuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKLQkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQkJCX0gZWxzZSB7Ci0JCQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJfQorCQkJCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQkJCX0gZWxzZSB7Ci0JCQkJCW5lc19kZWJ1ZyhORVNfREJHX0NRUCwgIkNRUCByZXF1ZXN0ICVwIChvcGNvZGUgMHglMDJYKSBmcmVlZC5cbiIsCi0JCQkJCQkJY3FwX3JlcXVlc3QsCi0JCQkJCQkJbGUzMl90b19jcHUoY3FwX3JlcXVlc3QtPmNxcF93cWUud3FlX3dvcmRzW05FU19DUVBfV1FFX09QQ09ERV9JRFhdKSAmIDB4M2YpOwotCQkJCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCQkJfSBlbHNlIHsKLQkJCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQl9CisJCQkJCWlmIChjcXBfcmVxdWVzdC0+Y2FsbGJhY2spCisJCQkJCQljcXBfcmVxdWVzdC0+Y3FwX2NhbGxiYWNrKG5lc2RldiwgY3FwX3JlcXVlc3QpOworCQkJCQluZXNfZnJlZV9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJCQl9CiAJCQl9IGVsc2UgewogCQkJCXdha2VfdXAoJm5lc2Rldi0+Y3FwLndhaXRxKTsKQEAgLTMxNDksNyArMzEyMSw2IEBACiB7CiAJc3RydWN0IG5lc19kZXZpY2UgKm5lc2RldiA9IG5lc3ZuaWMtPm5lc2RldjsKIAlzdHJ1Y3QgbmVzX2h3X2NxcF93cWUgKmNxcF93cWU7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdDsKIAlpbnQgcmV0ID0gMDsKIAl1MTYgbWFqb3JfY29kZTsKQEAgLTMxNzYsNyArMzE0Nyw3IEBACiAJbmVzX2RlYnVnKE5FU19EQkdfUVAsICJXYWl0aW5nIGZvciBDUVAgY29tcGxldGlvbiBmb3IgQVBCVlQuXG4iKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJaWYgKGFkZF9wb3J0ID09IE5FU19NQU5BR0VfQVBCVlRfQUREKQogCQlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoY3FwX3JlcXVlc3QtPndhaXRxLCAoY3FwX3JlcXVlc3QtPnJlcXVlc3RfZG9uZSAhPSAwKSwKQEAgLTMxODQsMTUgKzMxNTUsOSBAQAogCW5lc19kZWJ1ZyhORVNfREJHX1FQLCAiQ29tcGxldGVkLCByZXQ9JXUsICBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYXG4iLAogCQkJcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCW1ham9yX2NvZGUgPSBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZTsKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJfSBlbHNlIHsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQl9Ci0JfQorCisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKKwogCWlmICghcmV0KQogCQlyZXR1cm4gLUVUSU1FOwogCWVsc2UgaWYgKG1ham9yX2NvZGUpCkBAIC0zMjUyLDcgKzMyMTcsNyBAQAogCQkJbmVzZGV2LT5jcXAuc3FfaGVhZCwgbmVzZGV2LT5jcXAuc3FfdGFpbCk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDEpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIH0KIAogCkBAIC0zMjYyLDcgKzMyMjcsNiBAQAogdm9pZCBmbHVzaF93cWVzKHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsIHN0cnVjdCBuZXNfcXAgKm5lc3FwLAogCQl1MzIgd2hpY2hfd3EsIHUzMiB3YWl0X2NvbXBsZXRpb24pCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdDsKIAlzdHJ1Y3QgbmVzX2h3X2NxcF93cWUgKmNxcF93cWU7CiAJaW50IHJldDsKQEAgLTMyODUsNyArMzI0OSw3IEBACiAJCQljcHVfdG9fbGUzMihORVNfQ1FQX0ZMVVNIX1dRRVMgfCB3aGljaF93cSk7CiAJY3FwX3dxZS0+d3FlX3dvcmRzW05FU19DUVBfV1FFX0lEX0lEWF0gPSBjcHVfdG9fbGUzMihuZXNxcC0+aHdxcC5xcF9pZCk7CiAKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAlpZiAod2FpdF9jb21wbGV0aW9uKSB7CiAJCS8qIFdhaXQgZm9yIENRUCAqLwpAQCAtMzI5NCwxNCArMzI1OCw2IEBACiAJCW5lc19kZWJ1ZyhORVNfREJHX1FQLCAiRmx1c2ggU1EgUVAgV1FFcyBjb21wbGV0ZWQsIHJldD0ldSwiCiAJCQkJIiBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYXG4iLAogCQkJCXJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsIGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQorCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCX0KIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmggYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc19ody5oCmluZGV4IDc0NWJmOTQuLjdiODFlMGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX2h3LmgKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfaHcuaApAQCAtMTE3Miw3ICsxMTcyLDcgQEAKIAl1MzIgICAgbWNycV9xcF9pZDsKIAlzdHJ1Y3QgbmVzX3Vjb250ZXh0ICptY3JxX3Vjb250ZXh0OwogCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QqICgqZ2V0X2NxcF9yZXF1ZXN0KShzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2KTsKLQl2b2lkICgqcG9zdF9jcXBfcmVxdWVzdCkoc3RydWN0IG5lc19kZXZpY2UqLCBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICosIGludCk7CisJdm9pZCAoKnBvc3RfY3FwX3JlcXVlc3QpKHN0cnVjdCBuZXNfZGV2aWNlKiwgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqKTsKIAlpbnQgKCptY3JxX21jYXN0X2ZpbHRlcikoIHN0cnVjdCBuZXNfdm5pYyogbmVzdm5pYywgX191OCogZG1pX2FkZHIgKTsKIAlzdHJ1Y3QgbmV0X2RldmljZV9zdGF0cyBuZXRzdGF0czsKIAkvKiB1c2VkIHRvIHB1dCB0aGUgbmV0ZGV2IG9uIHRoZSBhZGFwdGVycyBsb2dpY2FsIHBvcnQgbGlzdCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdXRpbHMuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3V0aWxzLmMKaW5kZXggZmU4M2QxYi4uZmI4Y2JkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdXRpbHMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc191dGlscy5jCkBAIC01NjcsMTIgKzU2NywzNiBAQAogCXJldHVybiBjcXBfcmVxdWVzdDsKIH0KIAordm9pZCBuZXNfZnJlZV9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2LAorCQkJICBzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbmVzX2RlYnVnKE5FU19EQkdfQ1FQLCAiQ1FQIHJlcXVlc3QgJXAgKG9wY29kZSAweCUwMlgpIGZyZWVkLlxuIiwKKwkJICBjcXBfcmVxdWVzdCwKKwkJICBsZTMyX3RvX2NwdShjcXBfcmVxdWVzdC0+Y3FwX3dxZS53cWVfd29yZHNbTkVTX0NRUF9XUUVfT1BDT0RFX0lEWF0pICYgMHgzZik7CisKKwlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKKwkJa2ZyZWUoY3FwX3JlcXVlc3QpOworCX0gZWxzZSB7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7CisJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKKwl9Cit9CisKK3ZvaWQgbmVzX3B1dF9jcXBfcmVxdWVzdChzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2LAorCQkJIHN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0KQoreworCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKQorCQluZXNfZnJlZV9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKK30KIAogLyoqCiAgKiBuZXNfcG9zdF9jcXBfcmVxdWVzdAogICovCiB2b2lkIG5lc19wb3N0X2NxcF9yZXF1ZXN0KHN0cnVjdCBuZXNfZGV2aWNlICpuZXNkZXYsCi0JCXN0cnVjdCBuZXNfY3FwX3JlcXVlc3QgKmNxcF9yZXF1ZXN0LCBpbnQgcmluZ19kb29yYmVsbCkKKwkJCSAgc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3QpCiB7CiAJc3RydWN0IG5lc19od19jcXBfd3FlICpjcXBfd3FlOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC02MDAsMTAgKzYyNCw5IEBACiAJCQkJbmVzZGV2LT5jcXAuc3FfaGVhZCwgbmVzZGV2LT5jcXAuc3FfdGFpbCwgbmVzZGV2LT5jcXAuc3Ffc2l6ZSwKIAkJCQljcXBfcmVxdWVzdC0+d2FpdGluZywgYXRvbWljX3JlYWQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpOwogCQliYXJyaWVyKCk7Ci0JCWlmIChyaW5nX2Rvb3JiZWxsKSB7Ci0JCQkvKiBSaW5nIGRvb3JiZWxsICgxIFdRRXMpICovCi0JCQluZXNfd3JpdGUzMihuZXNkZXYtPnJlZ3MrTkVTX1dRRV9BTExPQywgMHgwMTgwMDAwMCB8IG5lc2Rldi0+Y3FwLnFwX2lkKTsKLQkJfQorCisJCS8qIFJpbmcgZG9vcmJlbGwgKDEgV1FFcykgKi8KKwkJbmVzX3dyaXRlMzIobmVzZGV2LT5yZWdzK05FU19XUUVfQUxMT0MsIDB4MDE4MDAwMDAgfCBuZXNkZXYtPmNxcC5xcF9pZCk7CiAKIAkJYmFycmllcigpOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9uZXNfdmVyYnMuYwppbmRleCA5OWIzYzRhLi5lMzkzOWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9uZXMvbmVzX3ZlcmJzLmMKQEAgLTU1LDcgKzU1LDYgQEAKICAqIG5lc19hbGxvY19tdwogICovCiBzdGF0aWMgc3RydWN0IGliX213ICpuZXNfYWxsb2NfbXcoc3RydWN0IGliX3BkICppYnBkKSB7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlzdHJ1Y3QgbmVzX3BkICpuZXNwZCA9IHRvX25lc3BkKGlicGQpOwogCXN0cnVjdCBuZXNfdm5pYyAqbmVzdm5pYyA9IHRvX25lc3ZuaWMoaWJwZC0+ZGV2aWNlKTsKIAlzdHJ1Y3QgbmVzX2RldmljZSAqbmVzZGV2ID0gbmVzdm5pYy0+bmVzZGV2OwpAQCAtMTE5LDcgKzExOCw3IEBACiAJc2V0X3dxZV8zMmJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfU1RBR19XUUVfU1RBR19JRFgsIHN0YWcpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoY3FwX3JlcXVlc3QtPndhaXRxLCAoY3FwX3JlcXVlc3QtPnJlcXVlc3RfZG9uZSAhPSAwKSwKQEAgLTEyOCwxNSArMTI3LDcgQEAKIAkJCSIgQ1FQIE1ham9yOk1pbm9yIGNvZGVzID0gMHglMDRYOjB4JTA0WC5cbiIsCiAJCQlzdGFnLCByZXQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLCBjcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7CiAJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KKwkJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAkJa2ZyZWUobmVzbXIpOwogCQluZXNfZnJlZV9yZXNvdXJjZShuZXNhZGFwdGVyLCBuZXNhZGFwdGVyLT5hbGxvY2F0ZWRfbXJzLCBzdGFnX2luZGV4KTsKIAkJaWYgKCFyZXQpIHsKQEAgLTE0NCwxNyArMTM1LDggQEAKIAkJfSBlbHNlIHsKIAkJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQogCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJbmVzbXItPmlibXcucmtleSA9IHN0YWc7CiAJbmVzbXItPm1vZGUgPSBJV05FU19NRU1SRUdfVFlQRV9NVzsKQEAgLTE3OCw3ICsxNjAsNiBAQAogCXN0cnVjdCBuZXNfaHdfY3FwX3dxZSAqY3FwX3dxZTsKIAlzdHJ1Y3QgbmVzX2NxcF9yZXF1ZXN0ICpjcXBfcmVxdWVzdDsKIAlpbnQgZXJyID0gMDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCByZXQ7CiAKIAkvKiBEZWFsbG9jYXRlIHRoZSB3aW5kb3cgd2l0aCB0aGUgYWRhcHRlciAqLwpAQCAtMTk0LDcgKzE3NSw3IEBACiAJc2V0X3dxZV8zMmJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfU1RBR19XUUVfU1RBR19JRFgsIGlibXctPnJrZXkpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAluZXNfZGVidWcoTkVTX0RCR19NUiwgIldhaXRpbmcgZm9yIGRlYWxsb2NhdGUgU1RhZyAweCUwOFggdG8gY29tcGxldGUuXG4iLApAQCAtMjA0LDMyICsxODUsMTIgQEAKIAluZXNfZGVidWcoTkVTX0RCR19NUiwgIkRlYWxsb2NhdGUgU1RhZyBjb21wbGV0ZWQsIHdhaXRfZXZlbnRfdGltZW91dCByZXQgPSAldSwiCiAJCQkiIENRUCBNYWpvcjpNaW5vciBjb2RlcyA9IDB4JTA0WDoweCUwNFguXG4iLAogCQkJcmV0LCBjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwotCWlmICgoIXJldCkgfHwgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKSkgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9Ci0JCWlmICghcmV0KSB7Ci0JCQllcnIgPSAtRVRJTUU7Ci0JCX0gZWxzZSB7Ci0JCQllcnIgPSAtRUlPOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCX0KKwlpZiAoIXJldCkKKwkJZXJyID0gLUVUSU1FOworCWVsc2UgaWYgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKQorCQllcnIgPSAtRUlPOworCisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9tcnMsCiAJCQkoaWJtdy0+cmtleSAmIDB4MGZmZmZmMDApID4+IDgpOwpAQCAtNTE2LDcgKzQ3Nyw3IEBACiAJCQkobmVzZm1yLT5uZXNtci5wYmxzX3VzZWQtMSkgOiBuZXNmbXItPm5lc21yLnBibHNfdXNlZCk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCXJldCA9IHdhaXRfZXZlbnRfdGltZW91dChjcXBfcmVxdWVzdC0+d2FpdHEsIChjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lICE9IDApLApAQCAtNTI2LDI5ICs0ODcsMTEgQEAKIAkJCXN0YWcsIHJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsIGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKIAogCWlmICgoIXJldCkgfHwgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKSkgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CisJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCXJldCA9ICghcmV0KSA/IC1FVElNRSA6IC1FSU87CiAJCWdvdG8gZmFpbGVkX2xlYWZfdnBibF9wYWdlc19hbGxvYzsKLQl9IGVsc2UgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CiAJfQotCisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAluZXNmbXItPm5lc21yLmliZm1yLmxrZXkgPSBzdGFnOwogCW5lc2Ztci0+bmVzbXIuaWJmbXIucmtleSA9IHN0YWc7CiAJbmVzZm1yLT5hdHRyID0gKmliZm1yX2F0dHI7CkBAIC0xNDc0LDcgKzE0MTcsNyBAQAogCQkJc2V0X3dxZV82NGJpdF92YWx1ZShjcXBfd3FlLT53cWVfd29yZHMsIE5FU19DUVBfUVBfV1FFX0NPTlRFWFRfTE9XX0lEWCwgdTY0dGVtcCk7CiAKIAkJCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JCQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJCQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCQkJLyogV2FpdCBmb3IgQ1FQICovCiAJCQluZXNfZGVidWcoTkVTX0RCR19RUCwgIldhaXRpbmcgZm9yIGNyZWF0ZSBpV0FSUCBRUCV1IHRvIGNvbXBsZXRlLlxuIiwKQEAgLTE0ODcsMTUgKzE0MzAsNyBAQAogCQkJCQluZXNxcC0+aHdxcC5xcF9pZCwgcmV0LCBuZXNkZXYtPmNxcC5zcV9oZWFkLCBuZXNkZXYtPmNxcC5zcV90YWlsLAogCQkJCQljcXBfcmVxdWVzdC0+bWFqb3JfY29kZSwgY3FwX3JlcXVlc3QtPm1pbm9yX2NvZGUpOwogCQkJaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQkJCX0gZWxzZSB7Ci0JCQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJfQotCQkJCX0KKwkJCQluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCQkJCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9xcHMsIHFwX251bSk7CiAJCQkJbmVzX2ZyZWVfcXBfbWVtKG5lc2RldiwgbmVzcXAsdmlydF93cXMpOwogCQkJCWtmcmVlKG5lc3FwLT5hbGxvY2F0ZWRfYnVmZmVyKTsKQEAgLTE1MDQsMTggKzE0MzksMTAgQEAKIAkJCQl9IGVsc2UgewogCQkJCQlyZXR1cm4gRVJSX1BUUigtRUlPKTsKIAkJCQl9Ci0JCQl9IGVsc2UgewotCQkJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJCQl9IGVsc2UgewotCQkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJCX0KLQkJCQl9CiAJCQl9CiAKKwkJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisKIAkJCWlmIChpYnBkLT51b2JqZWN0KSB7CiAJCQkJdXJlc3AubW1hcF9zcV9kYl9pbmRleCA9IG5lc3FwLT5tbWFwX3NxX2RiX2luZGV4OwogCQkJCXVyZXNwLmFjdHVhbF9zcV9zaXplID0gc3Ffc2l6ZTsKQEAgLTE4MTcsNyArMTc0NCw3IEBACiAJCQljcHVfdG9fbGUzMigoKHUzMikoKHU2NHRlbXApID4+IDMzKSkgJiAweDdGRkZGRkZGKTsKIAogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJXYWl0aW5nIGZvciBjcmVhdGUgaVdBUlAgQ1EldSB0byBjb21wbGV0ZS5cbiIsCkBAIC0xODI3LDMyICsxNzU0LDE1IEBACiAJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJDcmVhdGUgaVdBUlAgQ1EldSBjb21wbGV0ZWQsIHdhaXRfZXZlbnRfdGltZW91dCByZXQgPSAlZC5cbiIsCiAJCQluZXNjcS0+aHdfY3EuY3FfbnVtYmVyLCByZXQpOwogCWlmICgoIXJldCkgfHwgKGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlKSkgewotCQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQkJa2ZyZWUoY3FwX3JlcXVlc3QpOwotCQkJfSBlbHNlIHsKLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJCWxpc3RfYWRkX3RhaWwoJmNxcF9yZXF1ZXN0LT5saXN0LCAmbmVzZGV2LT5jcXBfYXZhaWxfcmVxcyk7Ci0JCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJfQotCQl9CisJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAJCWlmICghY29udGV4dCkKIAkJCXBjaV9mcmVlX2NvbnNpc3RlbnQobmVzZGV2LT5wY2lkZXYsIG5lc2NxLT5jcV9tZW1fc2l6ZSwgbWVtLAogCQkJCQluZXNjcS0+aHdfY3EuY3FfcGJhc2UpOwogCQluZXNfZnJlZV9yZXNvdXJjZShuZXNhZGFwdGVyLCBuZXNhZGFwdGVyLT5hbGxvY2F0ZWRfY3FzLCBjcV9udW0pOwogCQlrZnJlZShuZXNjcSk7CiAJCXJldHVybiBFUlJfUFRSKC1FSU8pOwotCX0gZWxzZSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KIAl9CisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCWlmIChjb250ZXh0KSB7CiAJCS8qIGZyZWUgdGhlIG5lc3BibCAqLwpAQCAtMTkzMSw3ICsxODQxLDcgQEAKIAkJKG5lc2NxLT5od19jcS5jcV9udW1iZXIgfCAoKHUzMilQQ0lfRlVOQyhuZXNkZXYtPnBjaWRldi0+ZGV2Zm4pIDw8IDE2KSkpOwogCW5lc19mcmVlX3Jlc291cmNlKG5lc2FkYXB0ZXIsIG5lc2FkYXB0ZXItPmFsbG9jYXRlZF9jcXMsIG5lc2NxLT5od19jcS5jcV9udW1iZXIpOwogCWF0b21pY19zZXQoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCwgMik7Ci0JbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCwgTkVTX0NRUF9SRVFVRVNUX1JJTkdfRE9PUkJFTEwpOworCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOwogCiAJLyogV2FpdCBmb3IgQ1FQICovCiAJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJXYWl0aW5nIGZvciBkZXN0cm95IGlXQVJQIENRJXUgdG8gY29tcGxldGUuXG4iLApAQCAtMTk0MiwzNyArMTg1MiwxOCBAQAogCQkJIiBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYLlxuIiwKIAkJCW5lc2NxLT5od19jcS5jcV9udW1iZXIsIHJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsCiAJCQljcXBfcmVxdWVzdC0+bWlub3JfY29kZSk7Ci0JaWYgKCghcmV0KSB8fCAoY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUpKSB7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KLQkJaWYgKCFyZXQpIHsKLQkJCW5lc19kZWJ1ZyhORVNfREJHX0NRLCAiaVdBUlAgQ1EldSBkZXN0cm95IHRpbWVvdXQgZXhwaXJlZFxuIiwKKwlpZiAoIXJldCkgeworCQluZXNfZGVidWcoTkVTX0RCR19DUSwgImlXQVJQIENRJXUgZGVzdHJveSB0aW1lb3V0IGV4cGlyZWRcbiIsCiAJCQkJCW5lc2NxLT5od19jcS5jcV9udW1iZXIpOwotCQkJcmV0ID0gLUVUSU1FOwotCQl9IGVsc2UgewotCQkJbmVzX2RlYnVnKE5FU19EQkdfQ1EsICJpV0FSUCBDUSV1IGRlc3Ryb3kgZmFpbGVkXG4iLAorCQlyZXQgPSAtRVRJTUU7CisJfSBlbHNlIGlmIChjcXBfcmVxdWVzdC0+bWFqb3JfY29kZSkgeworCQluZXNfZGVidWcoTkVTX0RCR19DUSwgImlXQVJQIENRJXUgZGVzdHJveSBmYWlsZWRcbiIsCiAJCQkJCW5lc2NxLT5od19jcS5jcV9udW1iZXIpOwotCQkJcmV0ID0gLUVJTzsKLQkJfQorCQlyZXQgPSAtRUlPOwogCX0gZWxzZSB7CiAJCXJldCA9IDA7Ci0JCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQpKSB7Ci0JCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCQl9IGVsc2UgewotCQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQl9Ci0JCX0KIAl9CisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCWlmIChuZXNjcS0+Y3FfbWVtX3NpemUpCiAJCXBjaV9mcmVlX2NvbnNpc3RlbnQobmVzZGV2LT5wY2lkZXYsIG5lc2NxLT5jcV9tZW1fc2l6ZSwKQEAgLTIwOTYsNyArMTk4Nyw3IEBACiAJYmFycmllcigpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAlyZXQgPSB3YWl0X2V2ZW50X3RpbWVvdXQoY3FwX3JlcXVlc3QtPndhaXRxLCAoMCAhPSBjcXBfcmVxdWVzdC0+cmVxdWVzdF9kb25lKSwKQEAgLTIxMDUsMTUgKzE5OTYsOCBAQAogCQkJIiBDUVAgTWFqb3I6TWlub3IgY29kZXMgPSAweCUwNFg6MHglMDRYLlxuIiwKIAkJCXN0YWcsIHJldCwgY3FwX3JlcXVlc3QtPm1ham9yX2NvZGUsIGNxcF9yZXF1ZXN0LT5taW5vcl9jb2RlKTsKIAltYWpvcl9jb2RlID0gY3FwX3JlcXVlc3QtPm1ham9yX2NvZGU7Ci0JaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJaWYgKGNxcF9yZXF1ZXN0LT5keW5hbWljKSB7Ci0JCQlrZnJlZShjcXBfcmVxdWVzdCk7Ci0JCX0gZWxzZSB7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQkJbGlzdF9hZGRfdGFpbCgmY3FwX3JlcXVlc3QtPmxpc3QsICZuZXNkZXYtPmNxcF9hdmFpbF9yZXFzKTsKLQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJfQotCX0KKwluZXNfcHV0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QpOworCiAJaWYgKCFyZXQpCiAJCXJldHVybiAtRVRJTUU7CiAJZWxzZSBpZiAobWFqb3JfY29kZSkKQEAgLTI0NTYsMTAgKzIzNDAsOCBAQAogCQkJCQkJaWYgKChwYWdlX2NvdW50IT0wKSYmKHBhZ2VfY291bnQ8PDEyKS0ocmVnaW9uLT5vZmZzZXQmKDQwOTYtMSkpPj1yZWdpb24tPmxlbmd0aCkKIAkJCQkJCQlnb3RvIGVub3VnaF9wYWdlczsKIAkJCQkJCWlmICgocGFnZV9jb3VudCYweDAxRkYpID09IDApIHsKLQkJCQkJCQlpZiAocGFnZV9jb3VudD4oMTAyNCo1MTIpKSB7CisJCQkJCQkJaWYgKHBhZ2VfY291bnQgPj0gMTAyNCAqIDUxMikgewogCQkJCQkJCQlpYl91bWVtX3JlbGVhc2UocmVnaW9uKTsKLQkJCQkJCQkJcGNpX2ZyZWVfY29uc2lzdGVudChuZXNkZXYtPnBjaWRldiwgNDA5NiwgdnBibC5wYmxfdmJhc2UsCi0JCQkJCQkJCQkJdnBibC5wYmxfcGJhc2UpOwogCQkJCQkJCQluZXNfZnJlZV9yZXNvdXJjZShuZXNhZGFwdGVyLAogCQkJCQkJCQkJCW5lc2FkYXB0ZXItPmFsbG9jYXRlZF9tcnMsIHN0YWdfaW5kZXgpOwogCQkJCQkJCQlrZnJlZShuZXNtcik7CkBAIC0yNzU2LDcgKzI2MzgsNyBAQAogCXNldF93cWVfMzJiaXRfdmFsdWUoY3FwX3dxZS0+d3FlX3dvcmRzLCBORVNfQ1FQX1NUQUdfV1FFX1NUQUdfSURYLCBpYl9tci0+cmtleSk7CiAKIAlhdG9taWNfc2V0KCZjcXBfcmVxdWVzdC0+cmVmY291bnQsIDIpOwotCW5lc19wb3N0X2NxcF9yZXF1ZXN0KG5lc2RldiwgY3FwX3JlcXVlc3QsIE5FU19DUVBfUkVRVUVTVF9SSU5HX0RPT1JCRUxMKTsKKwluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKIAogCS8qIFdhaXQgZm9yIENRUCAqLwogCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiV2FpdGluZyBmb3IgZGVhbGxvY2F0ZSBTVGFnIDB4JTA4WCBjb21wbGV0ZWRcbiIsIGliX21yLT5ya2V5KTsKQEAgLTI3NzMsMTUgKzI2NTUsOSBAQAogCiAJbWFqb3JfY29kZSA9IGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlOwogCW1pbm9yX2NvZGUgPSBjcXBfcmVxdWVzdC0+bWlub3JfY29kZTsKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50KSkgewotCQlpZiAoY3FwX3JlcXVlc3QtPmR5bmFtaWMpIHsKLQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJfSBlbHNlIHsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZuZXNkZXYtPmNxcC5sb2NrLCBmbGFncyk7Ci0JCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbmVzZGV2LT5jcXAubG9jaywgZmxhZ3MpOwotCQl9Ci0JfQorCisJbmVzX3B1dF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0KTsKKwogCWlmICghcmV0KSB7CiAJCW5lc19kZWJ1ZyhORVNfREJHX01SLCAiVGltZW91dCB3YWl0aW5nIHRvIGRlc3Ryb3kgU1RhZywiCiAJCQkJIiBpYl9tcj0lcCwgcmtleSA9IDB4JTA4WFxuIiwKQEAgLTI5MDYsNyArMjc4Miw2IEBACiAJLyogc3RydWN0IGl3X2NtX2lkICpjbV9pZCA9IG5lc3FwLT5jbV9pZDsgKi8KIAkvKiBzdHJ1Y3QgaXdfY21fZXZlbnQgY21fZXZlbnQ7ICovCiAJc3RydWN0IG5lc19jcXBfcmVxdWVzdCAqY3FwX3JlcXVlc3Q7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmV0OwogCXUxNiBtYWpvcl9jb2RlOwogCkBAIC0yOTM0LDcgKzI4MDksNyBAQAogCXNldF93cWVfNjRiaXRfdmFsdWUoY3FwX3dxZS0+d3FlX3dvcmRzLCBORVNfQ1FQX1FQX1dRRV9DT05URVhUX0xPV19JRFgsICh1NjQpbmVzcXAtPm5lc3FwX2NvbnRleHRfcGJhc2UpOwogCiAJYXRvbWljX3NldCgmY3FwX3JlcXVlc3QtPnJlZmNvdW50LCAyKTsKLQluZXNfcG9zdF9jcXBfcmVxdWVzdChuZXNkZXYsIGNxcF9yZXF1ZXN0LCBORVNfQ1FQX1JFUVVFU1RfUklOR19ET09SQkVMTCk7CisJbmVzX3Bvc3RfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CiAKIAkvKiBXYWl0IGZvciBDUVAgKi8KIAlpZiAod2FpdF9jb21wbGV0aW9uKSB7CkBAIC0yOTUyLDE1ICsyODI3LDkgQEAKIAkJCQkJbmVzcXAtPmh3cXAucXBfaWQsIGNxcF9yZXF1ZXN0LT5tYWpvcl9jb2RlLAogCQkJCQljcXBfcmVxdWVzdC0+bWlub3JfY29kZSwgbmV4dF9pd2FycF9zdGF0ZSk7CiAJCX0KLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmNxcF9yZXF1ZXN0LT5yZWZjb3VudCkpIHsKLQkJCWlmIChjcXBfcmVxdWVzdC0+ZHluYW1pYykgewotCQkJCWtmcmVlKGNxcF9yZXF1ZXN0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJc3Bpbl9sb2NrX2lycXNhdmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCQlsaXN0X2FkZF90YWlsKCZjcXBfcmVxdWVzdC0+bGlzdCwgJm5lc2Rldi0+Y3FwX2F2YWlsX3JlcXMpOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm5lc2Rldi0+Y3FwLmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQorCisJCW5lc19wdXRfY3FwX3JlcXVlc3QobmVzZGV2LCBjcXBfcmVxdWVzdCk7CisKIAkJaWYgKCFyZXQpCiAJCQlyZXR1cm4gLUVUSU1FOwogCQllbHNlIGlmIChtYWpvcl9jb2RlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9LY29uZmlnIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9LY29uZmlnCmluZGV4IDFmNzZiYWQuLjY5MTUyNWNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL0tjb25maWcKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9LY29uZmlnCkBAIC0xLDYgKzEsNyBAQAogY29uZmlnIElORklOSUJBTkRfSVBPSUIKIAl0cmlzdGF0ZSAiSVAtb3Zlci1JbmZpbmlCYW5kIgogCWRlcGVuZHMgb24gTkVUREVWSUNFUyAmJiBJTkVUICYmIChJUFY2IHx8IElQVjY9bikKKwlzZWxlY3QgSU5FVF9MUk8KIAktLS1oZWxwLS0tCiAJICBTdXBwb3J0IGZvciB0aGUgSVAtb3Zlci1JbmZpbmlCYW5kIHByb3RvY29sIChJUG9JQikuIFRoaXMKIAkgIHRyYW5zcG9ydHMgSVAgcGFja2V0cyBvdmVyIEluZmluaUJhbmQgc28geW91IGNhbiB1c2UgeW91ciBJQgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYi5oIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYi5oCmluZGV4IGNhMTI2ZmMuLmIwZmZjOWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWIuaAorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liLmgKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liLmggMTM1OCAyMDA0LTEyLTE3IDIyOjAwOjExWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgX0lQT0lCX0gKQEAgLTUyLDkgKzUwLDE2IEBACiAjaW5jbHVkZSA8cmRtYS9pYl92ZXJicy5oPgogI2luY2x1ZGUgPHJkbWEvaWJfcGFjay5oPgogI2luY2x1ZGUgPHJkbWEvaWJfc2EuaD4KKyNpbmNsdWRlIDxsaW51eC9pbmV0X2xyby5oPgogCiAvKiBjb25zdGFudHMgKi8KIAorZW51bSBpcG9pYl9mbHVzaF9sZXZlbCB7CisJSVBPSUJfRkxVU0hfTElHSFQsCisJSVBPSUJfRkxVU0hfTk9STUFMLAorCUlQT0lCX0ZMVVNIX0hFQVZZCit9OworCiBlbnVtIHsKIAlJUE9JQl9FTkNBUF9MRU4JCSAgPSA0LAogCkBAIC02NSw4ICs3MCw4IEBACiAJSVBPSUJfQ01fQlVGX1NJWkUJICA9IElQT0lCX0NNX01UVSAgKyBJUE9JQl9FTkNBUF9MRU4sCiAJSVBPSUJfQ01fSEVBRF9TSVpFCSAgPSBJUE9JQl9DTV9CVUZfU0laRSAlIFBBR0VfU0laRSwKIAlJUE9JQl9DTV9SWF9TRwkJICA9IEFMSUdOKElQT0lCX0NNX0JVRl9TSVpFLCBQQUdFX1NJWkUpIC8gUEFHRV9TSVpFLAotCUlQT0lCX1JYX1JJTkdfU0laRQkgID0gMTI4LAotCUlQT0lCX1RYX1JJTkdfU0laRQkgID0gNjQsCisJSVBPSUJfUlhfUklOR19TSVpFCSAgPSAyNTYsCisJSVBPSUJfVFhfUklOR19TSVpFCSAgPSAxMjgsCiAJSVBPSUJfTUFYX1FVRVVFX1NJWkUJICA9IDgxOTIsCiAJSVBPSUJfTUlOX1FVRVVFX1NJWkUJICA9IDIsCiAJSVBPSUJfQ01fTUFYX0NPTk5fUVAJICA9IDQwOTYsCkBAIC04NCw3ICs4OSw2IEBACiAJSVBPSUJfRkxBR19TVUJJTlRFUkZBQ0UJICA9IDUsCiAJSVBPSUJfTUNBU1RfUlVOCQkgID0gNiwKIAlJUE9JQl9TVE9QX1JFQVBFUgkgID0gNywKLQlJUE9JQl9NQ0FTVF9TVEFSVEVECSAgPSA4LAogCUlQT0lCX0ZMQUdfQURNSU5fQ00JICA9IDksCiAJSVBPSUJfRkxBR19VTUNBU1QJICA9IDEwLAogCUlQT0lCX0ZMQUdfQ1NVTQkJICA9IDExLApAQCAtOTYsNyArMTAwLDExIEBACiAJSVBPSUJfTUNBU1RfRkxBR19CVVNZCSAgPSAyLAkvKiBqb2luaW5nIG9yIGFscmVhZHkgam9pbmVkICovCiAJSVBPSUJfTUNBU1RfRkxBR19BVFRBQ0hFRCA9IDMsCiAKKwlJUE9JQl9NQVhfTFJPX0RFU0NSSVBUT1JTID0gOCwKKwlJUE9JQl9MUk9fTUFYX0FHR1IgCSAgPSA2NCwKKwogCU1BWF9TRU5EX0NRRQkJICA9IDE2LAorCUlQT0lCX0NNX0NPUFlCUkVBSwkgID0gMjU2LAogfTsKIAogI2RlZmluZQlJUE9JQl9PUF9SRUNWICAgKDF1bCA8PCAzMSkKQEAgLTE0OSw2ICsxNTcsMTEgQEAKIAl1NjQJCW1hcHBpbmdbTUFYX1NLQl9GUkFHUyArIDFdOwogfTsKIAorc3RydWN0IGlwb2liX2NtX3R4X2J1ZiB7CisJc3RydWN0IHNrX2J1ZmYgKnNrYjsKKwl1NjQJCW1hcHBpbmc7Cit9OworCiBzdHJ1Y3QgaWJfY21faWQ7CiAKIHN0cnVjdCBpcG9pYl9jbV9kYXRhIHsKQEAgLTIwNyw3ICsyMjAsNyBAQAogCXN0cnVjdCBuZXRfZGV2aWNlICAgKmRldjsKIAlzdHJ1Y3QgaXBvaWJfbmVpZ2ggICpuZWlnaDsKIAlzdHJ1Y3QgaXBvaWJfcGF0aCAgICpwYXRoOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3Jpbmc7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmluZzsKIAl1bnNpZ25lZAkgICAgIHR4X2hlYWQ7CiAJdW5zaWduZWQJICAgICB0eF90YWlsOwogCXVuc2lnbmVkIGxvbmcJICAgICBmbGFnczsKQEAgLTI0OSw2ICsyNjIsMTEgQEAKIAl1MTYgICAgIG1heF9jb2FsZXNjZWRfZnJhbWVzOwogfTsKIAorc3RydWN0IGlwb2liX2xybyB7CisJc3RydWN0IG5ldF9scm9fbWdyIGxyb19tZ3I7CisJc3RydWN0IG5ldF9scm9fZGVzYyBscm9fZGVzY1tJUE9JQl9NQVhfTFJPX0RFU0NSSVBUT1JTXTsKK307CisKIC8qCiAgKiBEZXZpY2UgcHJpdmF0ZSBsb2NraW5nOiB0eF9sb2NrIHByb3RlY3RzIG1lbWJlcnMgdXNlZCBpbiBUWCBmYXN0CiAgKiBwYXRoIChhbmQgd2UgdXNlIExMVFggc28gdXBwZXIgbGF5ZXJzIGRvbid0IGRvIGV4dHJhIGxvY2tpbmcpLgpAQCAtMjY0LDcgKzI4Miw2IEBACiAKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0Jc3RydWN0IG11dGV4IG1jYXN0X211dGV4OwogCXN0cnVjdCBtdXRleCB2bGFuX211dGV4OwogCiAJc3RydWN0IHJiX3Jvb3QgIHBhdGhfdHJlZTsKQEAgLTI3NiwxMCArMjkzLDExIEBACiAKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIHBrZXlfcG9sbF90YXNrOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgbWNhc3RfdGFzazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfdGFzazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfbGlnaHQ7CisJc3RydWN0IHdvcmtfc3RydWN0IGZsdXNoX25vcm1hbDsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZmx1c2hfaGVhdnk7CiAJc3RydWN0IHdvcmtfc3RydWN0IHJlc3RhcnRfdGFzazsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGFoX3JlYXBfdGFzazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcGtleV9ldmVudF90YXNrOwogCiAJc3RydWN0IGliX2RldmljZSAqY2E7CiAJdTgJCSAgcG9ydDsKQEAgLTMzNSw2ICszNTMsOCBAQAogCWludAloY2FfY2FwczsKIAlzdHJ1Y3QgaXBvaWJfZXRodG9vbF9zdCBldGh0b29sOwogCXN0cnVjdCB0aW1lcl9saXN0IHBvbGxfdGltZXI7CisKKwlzdHJ1Y3QgaXBvaWJfbHJvIGxybzsKIH07CiAKIHN0cnVjdCBpcG9pYl9haCB7CkBAIC0zNTksNiArMzc5LDcgQEAKIAogCXN0cnVjdCByYl9ub2RlCSAgICAgIHJiX25vZGU7CiAJc3RydWN0IGxpc3RfaGVhZCAgICAgIGxpc3Q7CisJaW50ICAJCSAgICAgIHZhbGlkOwogfTsKIAogc3RydWN0IGlwb2liX25laWdoIHsKQEAgLTQyMywxMSArNDQ0LDE0IEBACiAJCXN0cnVjdCBpcG9pYl9haCAqYWRkcmVzcywgdTMyIHFwbik7CiB2b2lkIGlwb2liX3JlYXBfYWgoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIAordm9pZCBpcG9pYl9tYXJrX3BhdGhzX2ludmFsaWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiB2b2lkIGlwb2liX2ZsdXNoX3BhdGhzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogc3RydWN0IGlwb2liX2Rldl9wcml2ICppcG9pYl9pbnRmX2FsbG9jKGNvbnN0IGNoYXIgKmZvcm1hdCk7CiAKIGludCBpcG9pYl9pYl9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfZGV2aWNlICpjYSwgaW50IHBvcnQpOwotdm9pZCBpcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2xpZ2h0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7Cit2b2lkIGlwb2liX2liX2Rldl9mbHVzaF9ub3JtYWwoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7CiB2b2lkIGlwb2liX3BrZXlfZXZlbnQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIHZvaWQgaXBvaWJfaWJfZGV2X2NsZWFudXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKQEAgLTQ2Niw5ICs0OTAsNyBAQAogI2VuZGlmCiAKIGludCBpcG9pYl9tY2FzdF9hdHRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsCi0JCSAgICAgICB1bmlvbiBpYl9naWQgKm1naWQpOwotaW50IGlwb2liX21jYXN0X2RldGFjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWxpZCwKLQkJICAgICAgIHVuaW9uIGliX2dpZCAqbWdpZCk7CisJCSAgICAgICB1bmlvbiBpYl9naWQgKm1naWQsIGludCBzZXRfcWtleSk7CiAKIGludCBpcG9pYl9pbml0X3FwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogaW50IGlwb2liX3RyYW5zcG9ydF9kZXZfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfZGV2aWNlICpjYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMKaW5kZXggOTdlNjdkMy4uMGYyZDMwNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9jbS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfY20uYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZCQKICAqLwogCiAjaW5jbHVkZSA8cmRtYS9pYl9jbS5oPgpAQCAtMTEzLDE4ICsxMTEsMjAgQEAKIH0KIAogc3RhdGljIGludCBpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCi0JCQkJCXN0cnVjdCBpcG9pYl9jbV9yeCAqcngsIGludCBpZCkKKwkJCQkJc3RydWN0IGlwb2liX2NtX3J4ICpyeCwKKwkJCQkJc3RydWN0IGliX3JlY3Zfd3IgKndyLAorCQkJCQlzdHJ1Y3QgaWJfc2dlICpzZ2UsIGludCBpZCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpYl9yZWN2X3dyICpiYWRfd3I7CiAJaW50IGksIHJldDsKIAotCXByaXYtPmNtLnJ4X3dyLndyX2lkID0gaWQgfCBJUE9JQl9PUF9DTSB8IElQT0lCX09QX1JFQ1Y7CisJd3ItPndyX2lkID0gaWQgfCBJUE9JQl9PUF9DTSB8IElQT0lCX09QX1JFQ1Y7CiAKIAlmb3IgKGkgPSAwOyBpIDwgSVBPSUJfQ01fUlhfU0c7ICsraSkKLQkJcHJpdi0+Y20ucnhfc2dlW2ldLmFkZHIgPSByeC0+cnhfcmluZ1tpZF0ubWFwcGluZ1tpXTsKKwkJc2dlW2ldLmFkZHIgPSByeC0+cnhfcmluZ1tpZF0ubWFwcGluZ1tpXTsKIAotCXJldCA9IGliX3Bvc3RfcmVjdihyeC0+cXAsICZwcml2LT5jbS5yeF93ciwgJmJhZF93cik7CisJcmV0ID0gaWJfcG9zdF9yZWN2KHJ4LT5xcCwgd3IsICZiYWRfd3IpOwogCWlmICh1bmxpa2VseShyZXQpKSB7CiAJCWlwb2liX3dhcm4ocHJpdiwgInBvc3QgcmVjdiBmYWlsZWQgZm9yIGJ1ZiAlZCAoJWQpXG4iLCBpZCwgcmV0KTsKIAkJaXBvaWJfY21fZG1hX3VubWFwX3J4KHByaXYsIElQT0lCX0NNX1JYX1NHIC0gMSwKQEAgLTMyMiwxMCArMzIyLDMzIEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIGlwb2liX2NtX2luaXRfcnhfd3Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgaWJfcmVjdl93ciAqd3IsCisJCQkJc3RydWN0IGliX3NnZSAqc2dlKQoreworCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCisJCXNnZVtpXS5sa2V5ID0gcHJpdi0+bXItPmxrZXk7CisKKwlzZ2VbMF0ubGVuZ3RoID0gSVBPSUJfQ01fSEVBRF9TSVpFOworCWZvciAoaSA9IDE7IGkgPCBwcml2LT5jbS5udW1fZnJhZ3M7ICsraSkKKwkJc2dlW2ldLmxlbmd0aCA9IFBBR0VfU0laRTsKKworCXdyLT5uZXh0ICAgID0gTlVMTDsKKwl3ci0+c2dfbGlzdCA9IHByaXYtPmNtLnJ4X3NnZTsKKwl3ci0+bnVtX3NnZSA9IHByaXYtPmNtLm51bV9mcmFnczsKK30KKwogc3RhdGljIGludCBpcG9pYl9jbV9ub25zcnFfaW5pdF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgaWJfY21faWQgKmNtX2lkLAogCQkJCSAgIHN0cnVjdCBpcG9pYl9jbV9yeCAqcngpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgaWJfcmVjdl93ciB3cjsKKwkJc3RydWN0IGliX3NnZSBzZ2VbSVBPSUJfQ01fUlhfU0ddOworCX0gKnQ7CiAJaW50IHJldDsKIAlpbnQgaTsKIApAQCAtMzMzLDYgKzM1NiwxNCBAQAogCWlmICghcngtPnJ4X3JpbmcpCiAJCXJldHVybiAtRU5PTUVNOwogCisJdCA9IGttYWxsb2Moc2l6ZW9mICp0LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXQpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnJfZnJlZTsKKwl9CisKKwlpcG9pYl9jbV9pbml0X3J4X3dyKGRldiwgJnQtPndyLCB0LT5zZ2UpOworCiAJc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7CiAKIAlpZiAocHJpdi0+Y20ubm9uc3JxX2Nvbm5fcXAgPj0gaXBvaWJfbWF4X2Nvbm5fcXApIHsKQEAgLTM1MSw4ICszODIsOCBAQAogCQkJaXBvaWJfd2Fybihwcml2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlY2VpdmUgYnVmZmVyICVkXG4iLCBpKTsKIAkJCQlyZXQgPSAtRU5PTUVNOwogCQkJCWdvdG8gZXJyX2NvdW50OwotCQkJfQotCQlyZXQgPSBpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcngsIGkpOworCQl9CisJCXJldCA9IGlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEoZGV2LCByeCwgJnQtPndyLCB0LT5zZ2UsIGkpOwogCQlpZiAocmV0KSB7CiAJCQlpcG9pYl93YXJuKHByaXYsICJpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxICIKIAkJCQkgICAiZmFpbGVkIGZvciBidWYgJWRcbiIsIGkpOwpAQCAtMzYzLDYgKzM5NCw4IEBACiAKIAlyeC0+cmVjdl9jb3VudCA9IGlwb2liX3JlY3ZxX3NpemU7CiAKKwlrZnJlZSh0KTsKKwogCXJldHVybiAwOwogCiBlcnJfY291bnQ6CkBAIC0zNzEsNiArNDA0LDcgQEAKIAlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOwogCiBlcnJfZnJlZToKKwlrZnJlZSh0KTsKIAlpcG9pYl9jbV9mcmVlX3J4X3JpbmcoZGV2LCByeC0+cnhfcmluZyk7CiAKIAlyZXR1cm4gcmV0OwpAQCAtNTI1LDYgKzU1OSw3IEBACiAJdTY0IG1hcHBpbmdbSVBPSUJfQ01fUlhfU0ddOwogCWludCBmcmFnczsKIAlpbnQgaGFzX3NycTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqc21hbGxfc2tiOwogCiAJaXBvaWJfZGJnX2RhdGEocHJpdiwgImNtIHJlY3YgY29tcGxldGlvbjogaWQgJWQsIHN0YXR1czogJWRcbiIsCiAJCSAgICAgICB3cl9pZCwgd2MtPnN0YXR1cyk7CkBAIC01NzksNiArNjE0LDIzIEBACiAJCX0KIAl9CiAKKwlpZiAod2MtPmJ5dGVfbGVuIDwgSVBPSUJfQ01fQ09QWUJSRUFLKSB7CisJCWludCBkbGVuID0gd2MtPmJ5dGVfbGVuOworCisJCXNtYWxsX3NrYiA9IGRldl9hbGxvY19za2IoZGxlbiArIDEyKTsKKwkJaWYgKHNtYWxsX3NrYikgeworCQkJc2tiX3Jlc2VydmUoc21hbGxfc2tiLCAxMik7CisJCQlpYl9kbWFfc3luY19zaW5nbGVfZm9yX2NwdShwcml2LT5jYSwgcnhfcmluZ1t3cl9pZF0ubWFwcGluZ1swXSwKKwkJCQkJCSAgIGRsZW4sIERNQV9GUk9NX0RFVklDRSk7CisJCQlza2JfY29weV9mcm9tX2xpbmVhcl9kYXRhKHNrYiwgc21hbGxfc2tiLT5kYXRhLCBkbGVuKTsKKwkJCWliX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKHByaXYtPmNhLCByeF9yaW5nW3dyX2lkXS5tYXBwaW5nWzBdLAorCQkJCQkJICAgICAgZGxlbiwgRE1BX0ZST01fREVWSUNFKTsKKwkJCXNrYl9wdXQoc21hbGxfc2tiLCBkbGVuKTsKKwkJCXNrYiA9IHNtYWxsX3NrYjsKKwkJCWdvdG8gY29waWVkOworCQl9CisJfQorCiAJZnJhZ3MgPSBQQUdFX0FMSUdOKHdjLT5ieXRlX2xlbiAtIG1pbih3Yy0+Ynl0ZV9sZW4sCiAJCQkJCSAgICAgICh1bnNpZ25lZClJUE9JQl9DTV9IRUFEX1NJWkUpKSAvIFBBR0VfU0laRTsKIApAQCAtNjAxLDYgKzY1Myw3IEBACiAKIAlza2JfcHV0X2ZyYWdzKHNrYiwgSVBPSUJfQ01fSEVBRF9TSVpFLCB3Yy0+Ynl0ZV9sZW4sIG5ld3NrYik7CiAKK2NvcGllZDoKIAlza2ItPnByb3RvY29sID0gKChzdHJ1Y3QgaXBvaWJfaGVhZGVyICopIHNrYi0+ZGF0YSktPnByb3RvOwogCXNrYl9yZXNldF9tYWNfaGVhZGVyKHNrYik7CiAJc2tiX3B1bGwoc2tiLCBJUE9JQl9FTkNBUF9MRU4pOwpAQCAtNjIwLDcgKzY3MywxMCBAQAogCQkJaXBvaWJfd2Fybihwcml2LCAiaXBvaWJfY21fcG9zdF9yZWNlaXZlX3NycSBmYWlsZWQgIgogCQkJCSAgICJmb3IgYnVmICVkXG4iLCB3cl9pZCk7CiAJfSBlbHNlIHsKLQkJaWYgKHVubGlrZWx5KGlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEoZGV2LCBwLCB3cl9pZCkpKSB7CisJCWlmICh1bmxpa2VseShpcG9pYl9jbV9wb3N0X3JlY2VpdmVfbm9uc3JxKGRldiwgcCwKKwkJCQkJCQkgICZwcml2LT5jbS5yeF93ciwKKwkJCQkJCQkgIHByaXYtPmNtLnJ4X3NnZSwKKwkJCQkJCQkgIHdyX2lkKSkpIHsKIAkJCS0tcC0+cmVjdl9jb3VudDsKIAkJCWlwb2liX3dhcm4ocHJpdiwgImlwb2liX2NtX3Bvc3RfcmVjZWl2ZV9ub25zcnEgZmFpbGVkICIKIAkJCQkgICAiZm9yIGJ1ZiAlZFxuIiwgd3JfaWQpOwpAQCAtNjQ3LDcgKzcwMyw3IEBACiB2b2lkIGlwb2liX2NtX3NlbmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlwb2liX2NtX3R4ICp0eCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3JlcTsKKwlzdHJ1Y3QgaXBvaWJfY21fdHhfYnVmICp0eF9yZXE7CiAJdTY0IGFkZHI7CiAKIAlpZiAodW5saWtlbHkoc2tiLT5sZW4gPiB0eC0+bXR1KSkgewpAQCAtNjc4LDcgKzczNCw3IEBACiAJCXJldHVybjsKIAl9CiAKLQl0eF9yZXEtPm1hcHBpbmdbMF0gPSBhZGRyOworCXR4X3JlcS0+bWFwcGluZyA9IGFkZHI7CiAKIAlpZiAodW5saWtlbHkocG9zdF9zZW5kKHByaXYsIHR4LCB0eC0+dHhfaGVhZCAmIChpcG9pYl9zZW5kcV9zaXplIC0gMSksCiAJCQkgICAgICAgYWRkciwgc2tiLT5sZW4pKSkgewpAQCAtNzAzLDcgKzc1OSw3IEBACiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXBvaWJfY21fdHggKnR4ID0gd2MtPnFwLT5xcF9jb250ZXh0OwogCXVuc2lnbmVkIGludCB3cl9pZCA9IHdjLT53cl9pZCAmIH5JUE9JQl9PUF9DTTsKLQlzdHJ1Y3QgaXBvaWJfdHhfYnVmICp0eF9yZXE7CisJc3RydWN0IGlwb2liX2NtX3R4X2J1ZiAqdHhfcmVxOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAlpcG9pYl9kYmdfZGF0YShwcml2LCAiY20gc2VuZCBjb21wbGV0aW9uOiBpZCAlZCwgc3RhdHVzOiAlZFxuIiwKQEAgLTcxNyw3ICs3NzMsNyBAQAogCiAJdHhfcmVxID0gJnR4LT50eF9yaW5nW3dyX2lkXTsKIAotCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZ1swXSwgdHhfcmVxLT5za2ItPmxlbiwgRE1BX1RPX0RFVklDRSk7CisJaWJfZG1hX3VubWFwX3NpbmdsZShwcml2LT5jYSwgdHhfcmVxLT5tYXBwaW5nLCB0eF9yZXEtPnNrYi0+bGVuLCBETUFfVE9fREVWSUNFKTsKIAogCS8qIEZJWE1FOiBpcyB0aGlzIHJpZ2h0PyBTaG91bGRuJ3Qgd2Ugb25seSBpbmNyZW1lbnQgb24gc3VjY2Vzcz8gKi8KIAkrK2Rldi0+c3RhdHMudHhfcGFja2V0czsKQEAgLTEwODcsNyArMTE0Myw3IEBACiBzdGF0aWMgdm9pZCBpcG9pYl9jbV90eF9kZXN0cm95KHN0cnVjdCBpcG9pYl9jbV90eCAqcCkKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihwLT5kZXYpOwotCXN0cnVjdCBpcG9pYl90eF9idWYgKnR4X3JlcTsKKwlzdHJ1Y3QgaXBvaWJfY21fdHhfYnVmICp0eF9yZXE7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBsb25nIGJlZ2luOwogCkBAIC0xMTE1LDcgKzExNzEsNyBAQAogCiAJd2hpbGUgKChpbnQpIHAtPnR4X3RhaWwgLSAoaW50KSBwLT50eF9oZWFkIDwgMCkgewogCQl0eF9yZXEgPSAmcC0+dHhfcmluZ1twLT50eF90YWlsICYgKGlwb2liX3NlbmRxX3NpemUgLSAxKV07Ci0JCWliX2RtYV91bm1hcF9zaW5nbGUocHJpdi0+Y2EsIHR4X3JlcS0+bWFwcGluZ1swXSwgdHhfcmVxLT5za2ItPmxlbiwKKwkJaWJfZG1hX3VubWFwX3NpbmdsZShwcml2LT5jYSwgdHhfcmVxLT5tYXBwaW5nLCB0eF9yZXEtPnNrYi0+bGVuLAogCQkJCSAgICBETUFfVE9fREVWSUNFKTsKIAkJZGV2X2tmcmVlX3NrYl9hbnkodHhfcmVxLT5za2IpOwogCQkrK3AtPnR4X3RhaWw7CkBAIC0xMzg0LDcgKzE0NDAsOSBAQAogCQlpcG9pYl93YXJuKHByaXYsICJlbmFibGluZyBjb25uZWN0ZWQgbW9kZSAiCiAJCQkgICAid2lsbCBjYXVzZSBtdWx0aWNhc3QgcGFja2V0IGRyb3BzXG4iKTsKIAorCQlydG5sX2xvY2soKTsKIAkJZGV2LT5mZWF0dXJlcyAmPSB+KE5FVElGX0ZfSVBfQ1NVTSB8IE5FVElGX0ZfU0cgfCBORVRJRl9GX1RTTyk7CisJCXJ0bmxfdW5sb2NrKCk7CiAJCXByaXYtPnR4X3dyLnNlbmRfZmxhZ3MgJj0gfklCX1NFTkRfSVBfQ1NVTTsKIAogCQlpcG9pYl9mbHVzaF9wYXRocyhkZXYpOwpAQCAtMTM5MywxNCArMTQ1MSwxNiBAQAogCiAJaWYgKCFzdHJjbXAoYnVmLCAiZGF0YWdyYW1cbiIpKSB7CiAJCWNsZWFyX2JpdChJUE9JQl9GTEFHX0FETUlOX0NNLCAmcHJpdi0+ZmxhZ3MpOwotCQlkZXYtPm10dSA9IG1pbihwcml2LT5tY2FzdF9tdHUsIGRldi0+bXR1KTsKLQkJaXBvaWJfZmx1c2hfcGF0aHMoZGV2KTsKIAorCQlydG5sX2xvY2soKTsKIAkJaWYgKHRlc3RfYml0KElQT0lCX0ZMQUdfQ1NVTSwgJnByaXYtPmZsYWdzKSkgewogCQkJZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX0lQX0NTVU0gfCBORVRJRl9GX1NHOwogCQkJaWYgKHByaXYtPmhjYV9jYXBzICYgSUJfREVWSUNFX1VEX1RTTykKIAkJCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPOwogCQl9CisJCWRldl9zZXRfbXR1KGRldiwgbWluKHByaXYtPm1jYXN0X210dSwgZGV2LT5tdHUpKTsKKwkJcnRubF91bmxvY2soKTsKKwkJaXBvaWJfZmx1c2hfcGF0aHMoZGV2KTsKIAogCQlyZXR1cm4gY291bnQ7CiAJfQpAQCAtMTQ4NSwxNSArMTU0NSw3IEBACiAJCXByaXYtPmNtLm51bV9mcmFncyAgPSBJUE9JQl9DTV9SWF9TRzsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Y20ubnVtX2ZyYWdzOyArK2kpCi0JCXByaXYtPmNtLnJ4X3NnZVtpXS5sa2V5CT0gcHJpdi0+bXItPmxrZXk7Ci0KLQlwcml2LT5jbS5yeF9zZ2VbMF0ubGVuZ3RoID0gSVBPSUJfQ01fSEVBRF9TSVpFOwotCWZvciAoaSA9IDE7IGkgPCBwcml2LT5jbS5udW1fZnJhZ3M7ICsraSkKLQkJcHJpdi0+Y20ucnhfc2dlW2ldLmxlbmd0aCA9IFBBR0VfU0laRTsKLQlwcml2LT5jbS5yeF93ci5uZXh0ID0gTlVMTDsKLQlwcml2LT5jbS5yeF93ci5zZ19saXN0ID0gcHJpdi0+Y20ucnhfc2dlOwotCXByaXYtPmNtLnJ4X3dyLm51bV9zZ2UgPSBwcml2LT5jbS5udW1fZnJhZ3M7CisJaXBvaWJfY21faW5pdF9yeF93cihkZXYsICZwcml2LT5jbS5yeF93ciwgcHJpdi0+Y20ucnhfc2dlKTsKIAogCWlmIChpcG9pYl9jbV9oYXNfc3JxKGRldikpIHsKIAkJZm9yIChpID0gMDsgaSA8IGlwb2liX3JlY3ZxX3NpemU7ICsraSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9ldGh0b29sLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYwppbmRleCAxMDI3OWI3Li42NmFmNWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2V0aHRvb2wuYwpAQCAtODYsMTEgKzg2LDU3IEBACiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBjb25zdCBjaGFyIGlwb2liX3N0YXRzX2tleXNbXVtFVEhfR1NUUklOR19MRU5dID0geworCSJMUk8gYWdncmVnYXRlZCIsICJMUk8gZmx1c2hlZCIsCisJIkxSTyBhdmcgYWdnciIsICJMUk8gbm8gZGVzYyIKK307CisKK3N0YXRpYyB2b2lkIGlwb2liX2dldF9zdHJpbmdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHUzMiBzdHJpbmdzZXQsIHU4ICpkYXRhKQoreworCXN3aXRjaCAoc3RyaW5nc2V0KSB7CisJY2FzZSBFVEhfU1NfU1RBVFM6CisJCW1lbWNweShkYXRhLCAqaXBvaWJfc3RhdHNfa2V5cywJc2l6ZW9mKGlwb2liX3N0YXRzX2tleXMpKTsKKwkJYnJlYWs7CisJfQorfQorCitzdGF0aWMgaW50IGlwb2liX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzc2V0KQoreworCXN3aXRjaCAoc3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQlyZXR1cm4gQVJSQVlfU0laRShpcG9pYl9zdGF0c19rZXlzKTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJfQorfQorCitzdGF0aWMgdm9pZCBpcG9pYl9nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCXN0cnVjdCBldGh0b29sX3N0YXRzICpzdGF0cywgdWludDY0X3QgKmRhdGEpCit7CisJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlpbnQgaW5kZXggPSAwOworCisJLyogR2V0IExSTyBzdGF0aXN0aWNzICovCisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmFnZ3JlZ2F0ZWQ7CisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmZsdXNoZWQ7CisJaWYgKHByaXYtPmxyby5scm9fbWdyLnN0YXRzLmZsdXNoZWQpCisJCWRhdGFbaW5kZXgrK10gPSBwcml2LT5scm8ubHJvX21nci5zdGF0cy5hZ2dyZWdhdGVkIC8KKwkJCQlwcml2LT5scm8ubHJvX21nci5zdGF0cy5mbHVzaGVkOworCWVsc2UKKwkJZGF0YVtpbmRleCsrXSA9IDA7CisJZGF0YVtpbmRleCsrXSA9IHByaXYtPmxyby5scm9fbWdyLnN0YXRzLm5vX2Rlc2M7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgaXBvaWJfZXRodG9vbF9vcHMgPSB7CiAJLmdldF9kcnZpbmZvCQk9IGlwb2liX2dldF9kcnZpbmZvLAogCS5nZXRfdHNvCQk9IGV0aHRvb2xfb3BfZ2V0X3RzbywKIAkuZ2V0X2NvYWxlc2NlCQk9IGlwb2liX2dldF9jb2FsZXNjZSwKIAkuc2V0X2NvYWxlc2NlCQk9IGlwb2liX3NldF9jb2FsZXNjZSwKKwkuZ2V0X2ZsYWdzCQk9IGV0aHRvb2xfb3BfZ2V0X2ZsYWdzLAorCS5zZXRfZmxhZ3MJCT0gZXRodG9vbF9vcF9zZXRfZmxhZ3MsCisJLmdldF9zdHJpbmdzCQk9IGlwb2liX2dldF9zdHJpbmdzLAorCS5nZXRfc3NldF9jb3VudAkJPSBpcG9pYl9nZXRfc3NldF9jb3VudCwKKwkuZ2V0X2V0aHRvb2xfc3RhdHMJPSBpcG9pYl9nZXRfZXRodG9vbF9zdGF0cywKIH07CiAKIHZvaWQgaXBvaWJfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2ZzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2ZzLmMKaW5kZXggOGI4ODJiYi4uOTYxYzU4NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9mcy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfZnMuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXBvaWJfZnMuYyAxMzg5IDIwMDQtMTItMjcgMjI6NTY6NDdaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9pYi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9pYi5jCmluZGV4IGY0MjliY2UuLjY2Y2FmYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfaWIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2liLmMKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX2liLmMgMTM4NiAyMDA0LTEyLTI3IDE2OjIzOjE3WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgpAQCAtMjkwLDcgKzI4OCwxMCBAQAogCWlmICh0ZXN0X2JpdChJUE9JQl9GTEFHX0NTVU0sICZwcml2LT5mbGFncykgJiYgbGlrZWx5KHdjLT5jc3VtX29rKSkKIAkJc2tiLT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKIAotCW5ldGlmX3JlY2VpdmVfc2tiKHNrYik7CisJaWYgKGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX0xSTykKKwkJbHJvX3JlY2VpdmVfc2tiKCZwcml2LT5scm8ubHJvX21nciwgc2tiLCBOVUxMKTsKKwllbHNlCisJCW5ldGlmX3JlY2VpdmVfc2tiKHNrYik7CiAKIHJlcG9zdDoKIAlpZiAodW5saWtlbHkoaXBvaWJfaWJfcG9zdF9yZWNlaXZlKGRldiwgd3JfaWQpKSkKQEAgLTQ0Miw2ICs0NDMsOSBAQAogCX0KIAogCWlmIChkb25lIDwgYnVkZ2V0KSB7CisJCWlmIChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9MUk8pCisJCQlscm9fZmx1c2hfYWxsKCZwcml2LT5scm8ubHJvX21ncik7CisKIAkJbmV0aWZfcnhfY29tcGxldGUoZGV2LCBuYXBpKTsKIAkJaWYgKHVubGlrZWx5KGliX3JlcV9ub3RpZnlfY3EocHJpdi0+cmVjdl9jcSwKIAkJCQkJICAgICAgSUJfQ1FfTkVYVF9DT01QIHwKQEAgLTg5OCw3ICs5MDIsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBfX2lwb2liX2liX2Rldl9mbHVzaChzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYsIGludCBwa2V5X2V2ZW50KQorc3RhdGljIHZvaWQgX19pcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2LAorCQkJCWVudW0gaXBvaWJfZmx1c2hfbGV2ZWwgbGV2ZWwpCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpjcHJpdjsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gcHJpdi0+ZGV2OwpAQCAtOTExLDcgKzkxNiw3IEBACiAJICogdGhlIHBhcmVudCBpcyBkb3duLgogCSAqLwogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3ByaXYsICZwcml2LT5jaGlsZF9pbnRmcywgbGlzdCkKLQkJX19pcG9pYl9pYl9kZXZfZmx1c2goY3ByaXYsIHBrZXlfZXZlbnQpOworCQlfX2lwb2liX2liX2Rldl9mbHVzaChjcHJpdiwgbGV2ZWwpOwogCiAJbXV0ZXhfdW5sb2NrKCZwcml2LT52bGFuX211dGV4KTsKIApAQCAtOTI1LDcgKzkzMCw3IEBACiAJCXJldHVybjsKIAl9CiAKLQlpZiAocGtleV9ldmVudCkgeworCWlmIChsZXZlbCA9PSBJUE9JQl9GTFVTSF9IRUFWWSkgewogCQlpZiAoaWJfZmluZF9wa2V5KHByaXYtPmNhLCBwcml2LT5wb3J0LCBwcml2LT5wa2V5LCAmbmV3X2luZGV4KSkgewogCQkJY2xlYXJfYml0KElQT0lCX1BLRVlfQVNTSUdORUQsICZwcml2LT5mbGFncyk7CiAJCQlpcG9pYl9pYl9kZXZfZG93bihkZXYsIDApOwpAQCAtOTQzLDExICs5NDgsMTUgQEAKIAkJcHJpdi0+cGtleV9pbmRleCA9IG5ld19pbmRleDsKIAl9CiAKLQlpcG9pYl9kYmcocHJpdiwgImZsdXNoaW5nXG4iKTsKKwlpZiAobGV2ZWwgPT0gSVBPSUJfRkxVU0hfTElHSFQpIHsKKwkJaXBvaWJfbWFya19wYXRoc19pbnZhbGlkKGRldik7CisJCWlwb2liX21jYXN0X2Rldl9mbHVzaChkZXYpOworCX0KIAotCWlwb2liX2liX2Rldl9kb3duKGRldiwgMCk7CisJaWYgKGxldmVsID49IElQT0lCX0ZMVVNIX05PUk1BTCkKKwkJaXBvaWJfaWJfZGV2X2Rvd24oZGV2LCAwKTsKIAotCWlmIChwa2V5X2V2ZW50KSB7CisJaWYgKGxldmVsID09IElQT0lCX0ZMVVNIX0hFQVZZKSB7CiAJCWlwb2liX2liX2Rldl9zdG9wKGRldiwgMCk7CiAJCWlwb2liX2liX2Rldl9vcGVuKGRldik7CiAJfQpAQCAtOTU3LDI3ICs5NjYsMzQgQEAKIAkgKiB3ZSBnZXQgaGVyZSwgZG9uJ3QgYnJpbmcgaXQgYmFjayB1cCBpZiBpdCdzIG5vdCBjb25maWd1cmVkIHVwCiAJICovCiAJaWYgKHRlc3RfYml0KElQT0lCX0ZMQUdfQURNSU5fVVAsICZwcml2LT5mbGFncykpIHsKLQkJaXBvaWJfaWJfZGV2X3VwKGRldik7CisJCWlmIChsZXZlbCA+PSBJUE9JQl9GTFVTSF9OT1JNQUwpCisJCQlpcG9pYl9pYl9kZXZfdXAoZGV2KTsKIAkJaXBvaWJfbWNhc3RfcmVzdGFydF90YXNrKCZwcml2LT5yZXN0YXJ0X3Rhc2spOwogCX0KIH0KIAotdm9pZCBpcG9pYl9pYl9kZXZfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQordm9pZCBpcG9pYl9pYl9kZXZfZmx1c2hfbGlnaHQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9Ci0JCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYsIGZsdXNoX3Rhc2spOworCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwb2liX2Rldl9wcml2LCBmbHVzaF9saWdodCk7CiAKLQlpcG9pYl9kYmcocHJpdiwgIkZsdXNoaW5nICVzXG4iLCBwcml2LT5kZXYtPm5hbWUpOwotCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIDApOworCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIElQT0lCX0ZMVVNIX0xJR0hUKTsKIH0KIAotdm9pZCBpcG9pYl9wa2V5X2V2ZW50KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX25vcm1hbChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgcGtleV9ldmVudF90YXNrKTsKKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcG9pYl9kZXZfcHJpdiwgZmx1c2hfbm9ybWFsKTsKIAotCWlwb2liX2RiZyhwcml2LCAiRmx1c2hpbmcgJXMgYW5kIHJlc3RhcnRpbmcgaXRzIFFQXG4iLCBwcml2LT5kZXYtPm5hbWUpOwotCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIDEpOworCV9faXBvaWJfaWJfZGV2X2ZsdXNoKHByaXYsIElQT0lCX0ZMVVNIX05PUk1BTCk7Cit9CisKK3ZvaWQgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPQorCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwb2liX2Rldl9wcml2LCBmbHVzaF9oZWF2eSk7CisKKwlfX2lwb2liX2liX2Rldl9mbHVzaChwcml2LCBJUE9JQl9GTFVTSF9IRUFWWSk7CiB9CiAKIHZvaWQgaXBvaWJfaWJfZGV2X2NsZWFudXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbWFpbi5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKaW5kZXggMjQ0MjA5MC4uOGJlOWVhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tYWluLmMKQEAgLTMwLDggKzMwLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlwb2liX21haW4uYyAxMzc3IDIwMDQtMTItMjMgMTk6NTc6MTJaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgImlwb2liLmgiCkBAIC02Miw2ICs2MCwxNSBAQAogbW9kdWxlX3BhcmFtX25hbWVkKHJlY3ZfcXVldWVfc2l6ZSwgaXBvaWJfcmVjdnFfc2l6ZSwgaW50LCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MocmVjdl9xdWV1ZV9zaXplLCAiTnVtYmVyIG9mIGRlc2NyaXB0b3JzIGluIHJlY2VpdmUgcXVldWUiKTsKIAorc3RhdGljIGludCBscm87Cittb2R1bGVfcGFyYW0obHJvLCBib29sLCAwNDQ0KTsKK01PRFVMRV9QQVJNX0RFU0MobHJvLCAgIkVuYWJsZSBMUk8gKExhcmdlIFJlY2VpdmUgT2ZmbG9hZCkiKTsKKworc3RhdGljIGludCBscm9fbWF4X2FnZ3IgPSBJUE9JQl9MUk9fTUFYX0FHR1I7Cittb2R1bGVfcGFyYW0obHJvX21heF9hZ2dyLCBpbnQsIDA2NDQpOworTU9EVUxFX1BBUk1fREVTQyhscm9fbWF4X2FnZ3IsICJMUk86IE1heCBwYWNrZXRzIHRvIGJlIGFnZ3JlZ2F0ZWQgIgorCQkiKGRlZmF1bHQgPSA2NCkiKTsKKwogI2lmZGVmIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHCiBpbnQgaXBvaWJfZGVidWdfbGV2ZWw7CiAKQEAgLTM1MCw2ICszNTcsMjMgQEAKIAogI2VuZGlmIC8qIENPTkZJR19JTkZJTklCQU5EX0lQT0lCX0RFQlVHICovCiAKK3ZvaWQgaXBvaWJfbWFya19wYXRoc19pbnZhbGlkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGlwb2liX2Rldl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgaXBvaWJfcGF0aCAqcGF0aCwgKnRwOworCisJc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGF0aCwgdHAsICZwcml2LT5wYXRoX2xpc3QsIGxpc3QpIHsKKwkJaXBvaWJfZGJnKHByaXYsICJtYXJrIHBhdGggTElEIDB4JTA0eCBHSUQgIiBJUE9JQl9HSURfRk1UICIgaW52YWxpZFxuIiwKKwkJCWJlMTZfdG9fY3B1KHBhdGgtPnBhdGhyZWMuZGxpZCksCisJCQlJUE9JQl9HSURfQVJHKHBhdGgtPnBhdGhyZWMuZGdpZCkpOworCQlwYXRoLT52YWxpZCA9ICAwOworCX0KKworCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+bG9jayk7Cit9CisKIHZvaWQgaXBvaWJfZmx1c2hfcGF0aHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtMzg2LDYgKzQxMCw3IEBACiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHBhdGgtPmRldjsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpcG9pYl9haCAqYWggPSBOVUxMOworCXN0cnVjdCBpcG9pYl9haCAqb2xkX2FoOwogCXN0cnVjdCBpcG9pYl9uZWlnaCAqbmVpZ2gsICp0bjsKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIHNrcXVldWU7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKQEAgLTQwOSw2ICs0MzQsNyBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKIAorCW9sZF9haCAgID0gcGF0aC0+YWg7CiAJcGF0aC0+YWggPSBhaDsKIAogCWlmIChhaCkgewpAQCAtNDIxLDYgKzQ0NywxNyBAQAogCQkJX19za2JfcXVldWVfdGFpbCgmc2txdWV1ZSwgc2tiKTsKIAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobmVpZ2gsIHRuLCAmcGF0aC0+bmVpZ2hfbGlzdCwgbGlzdCkgeworCQkJaWYgKG5laWdoLT5haCkgeworCQkJCVdBUk5fT04obmVpZ2gtPmFoICE9IG9sZF9haCk7CisJCQkJLyoKKwkJCQkgKiBEcm9wcGluZyB0aGUgYWggcmVmZXJlbmNlIGluc2lkZQorCQkJCSAqIHByaXYtPmxvY2sgaXMgc2FmZSBoZXJlLCBiZWNhdXNlIHdlCisJCQkJICogd2lsbCBob2xkIG9uZSBtb3JlIHJlZmVyZW5jZSBmcm9tCisJCQkJICogdGhlIG9yaWdpbmFsIHZhbHVlIG9mIHBhdGgtPmFoIChpZQorCQkJCSAqIG9sZF9haCkuCisJCQkJICovCisJCQkJaXBvaWJfcHV0X2FoKG5laWdoLT5haCk7CisJCQl9CiAJCQlrcmVmX2dldCgmcGF0aC0+YWgtPnJlZik7CiAJCQluZWlnaC0+YWggPSBwYXRoLT5haDsKIAkJCW1lbWNweSgmbmVpZ2gtPmRnaWQucmF3LCAmcGF0aC0+cGF0aHJlYy5kZ2lkLnJhdywKQEAgLTQ0Myw2ICs0ODAsNyBAQAogCQkJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZuZWlnaC0+cXVldWUpKSkKIAkJCQlfX3NrYl9xdWV1ZV90YWlsKCZza3F1ZXVlLCBza2IpOwogCQl9CisJCXBhdGgtPnZhbGlkID0gMTsKIAl9CiAKIAlwYXRoLT5xdWVyeSA9IE5VTEw7CkBAIC00NTAsNiArNDg4LDkgQEAKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnByaXYtPmxvY2ssIGZsYWdzKTsKIAorCWlmIChvbGRfYWgpCisJCWlwb2liX3B1dF9haChvbGRfYWgpOworCiAJd2hpbGUgKChza2IgPSBfX3NrYl9kZXF1ZXVlKCZza3F1ZXVlKSkpIHsKIAkJc2tiLT5kZXYgPSBkZXY7CiAJCWlmIChkZXZfcXVldWVfeG1pdChza2IpKQpAQCAtNjIzLDggKzY2NCw5IEBACiAJc3Bpbl9sb2NrKCZwcml2LT5sb2NrKTsKIAogCXBhdGggPSBfX3BhdGhfZmluZChkZXYsIHBoZHItPmh3YWRkciArIDQpOwotCWlmICghcGF0aCkgewotCQlwYXRoID0gcGF0aF9yZWNfY3JlYXRlKGRldiwgcGhkci0+aHdhZGRyICsgNCk7CisJaWYgKCFwYXRoIHx8ICFwYXRoLT52YWxpZCkgeworCQlpZiAoIXBhdGgpCisJCQlwYXRoID0gcGF0aF9yZWNfY3JlYXRlKGRldiwgcGhkci0+aHdhZGRyICsgNCk7CiAJCWlmIChwYXRoKSB7CiAJCQkvKiBwdXQgcHNldWRvaGVhZGVyIGJhY2sgb24gZm9yIG5leHQgdGltZSAqLwogCQkJc2tiX3B1c2goc2tiLCBzaXplb2YgKnBoZHIpOwpAQCAtOTM4LDYgKzk4MCw1NCBAQAogCS5jcmVhdGUJPSBpcG9pYl9oYXJkX2hlYWRlciwKIH07CiAKK3N0YXRpYyBpbnQgZ2V0X3NrYl9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdm9pZCAqKmlwaGRyLAorCQkgICAgICAgdm9pZCAqKnRjcGgsIHU2NCAqaGRyX2ZsYWdzLCB2b2lkICpwcml2KQoreworCXVuc2lnbmVkIGludCBpcF9sZW47CisJc3RydWN0IGlwaGRyICppcGg7CisKKwlpZiAodW5saWtlbHkoc2tiLT5wcm90b2NvbCAhPSBodG9ucyhFVEhfUF9JUCkpKQorCQlyZXR1cm4gLTE7CisKKwkvKgorCSAqIEluIHRoZSBmdXR1cmUgd2UgbWF5IGFkZCBhbiBlbHNlIGNsYXVzZSB0aGF0IHZlcmlmaWVzIHRoZQorCSAqIGNoZWNrc3VtIGFuZCBhbGxvd3MgZGV2aWNlcyB3aGljaCBkbyBub3QgY2FsY3VsYXRlIGNoZWNrc3VtCisJICogdG8gdXNlIExSTy4KKwkgKi8KKwlpZiAodW5saWtlbHkoc2tiLT5pcF9zdW1tZWQgIT0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlkpKQorCQlyZXR1cm4gLTE7CisKKwkvKiBDaGVjayBmb3Igbm9uLVRDUCBwYWNrZXQgKi8KKwlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwlpcGggPSBpcF9oZHIoc2tiKTsKKwlpZiAoaXBoLT5wcm90b2NvbCAhPSBJUFBST1RPX1RDUCkKKwkJcmV0dXJuIC0xOworCisJaXBfbGVuID0gaXBfaGRybGVuKHNrYik7CisJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgaXBfbGVuKTsKKwkqdGNwaCA9IHRjcF9oZHIoc2tiKTsKKworCS8qIGNoZWNrIGlmIElQIGhlYWRlciBhbmQgVENQIGhlYWRlciBhcmUgY29tcGxldGUgKi8KKwlpZiAobnRvaHMoaXBoLT50b3RfbGVuKSA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKKwkJcmV0dXJuIC0xOworCisJKmhkcl9mbGFncyA9IExST19JUFY0IHwgTFJPX1RDUDsKKwkqaXBoZHIgPSBpcGg7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaXBvaWJfbHJvX3NldHVwKHN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdikKK3sKKwlwcml2LT5scm8ubHJvX21nci5tYXhfYWdncgkgPSBscm9fbWF4X2FnZ3I7CisJcHJpdi0+bHJvLmxyb19tZ3IubWF4X2Rlc2MJID0gSVBPSUJfTUFYX0xST19ERVNDUklQVE9SUzsKKwlwcml2LT5scm8ubHJvX21nci5scm9fYXJyCSA9IHByaXYtPmxyby5scm9fZGVzYzsKKwlwcml2LT5scm8ubHJvX21nci5nZXRfc2tiX2hlYWRlciA9IGdldF9za2JfaGRyOworCXByaXYtPmxyby5scm9fbWdyLmZlYXR1cmVzCSA9IExST19GX05BUEk7CisJcHJpdi0+bHJvLmxyb19tZ3IuZGV2CQkgPSBwcml2LT5kZXY7CisJcHJpdi0+bHJvLmxyb19tZ3IuaXBfc3VtbWVkX2FnZ3IgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKK30KKwogc3RhdGljIHZvaWQgaXBvaWJfc2V0dXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwpAQCAtOTc3LDEwICsxMDY3LDExIEBACiAKIAlwcml2LT5kZXYgPSBkZXY7CiAKKwlpcG9pYl9scm9fc2V0dXAocHJpdik7CisKIAlzcGluX2xvY2tfaW5pdCgmcHJpdi0+bG9jayk7CiAJc3Bpbl9sb2NrX2luaXQoJnByaXYtPnR4X2xvY2spOwogCi0JbXV0ZXhfaW5pdCgmcHJpdi0+bWNhc3RfbXV0ZXgpOwogCW11dGV4X2luaXQoJnByaXYtPnZsYW5fbXV0ZXgpOwogCiAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPnBhdGhfbGlzdCk7CkBAIC05ODksOSArMTA4MCwxMCBAQAogCUlOSVRfTElTVF9IRUFEKCZwcml2LT5tdWx0aWNhc3RfbGlzdCk7CiAKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cGtleV9wb2xsX3Rhc2ssIGlwb2liX3BrZXlfcG9sbCk7Ci0JSU5JVF9XT1JLKCZwcml2LT5wa2V5X2V2ZW50X3Rhc2ssIGlwb2liX3BrZXlfZXZlbnQpOwogCUlOSVRfREVMQVlFRF9XT1JLKCZwcml2LT5tY2FzdF90YXNrLCAgIGlwb2liX21jYXN0X2pvaW5fdGFzayk7Ci0JSU5JVF9XT1JLKCZwcml2LT5mbHVzaF90YXNrLCAgIGlwb2liX2liX2Rldl9mbHVzaCk7CisJSU5JVF9XT1JLKCZwcml2LT5mbHVzaF9saWdodCwgICBpcG9pYl9pYl9kZXZfZmx1c2hfbGlnaHQpOworCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfbm9ybWFsLCAgIGlwb2liX2liX2Rldl9mbHVzaF9ub3JtYWwpOworCUlOSVRfV09SSygmcHJpdi0+Zmx1c2hfaGVhdnksICAgaXBvaWJfaWJfZGV2X2ZsdXNoX2hlYXZ5KTsKIAlJTklUX1dPUksoJnByaXYtPnJlc3RhcnRfdGFzaywgaXBvaWJfbWNhc3RfcmVzdGFydF90YXNrKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+YWhfcmVhcF90YXNrLCBpcG9pYl9yZWFwX2FoKTsKIH0KQEAgLTExNTQsNiArMTI0Niw5IEBACiAJCXByaXYtPmRldi0+ZmVhdHVyZXMgfD0gTkVUSUZfRl9TRyB8IE5FVElGX0ZfSVBfQ1NVTTsKIAl9CiAKKwlpZiAobHJvKQorCQlwcml2LT5kZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTFJPOworCiAJLyoKIAkgKiBTZXQgdGhlIGZ1bGwgbWVtYmVyc2hpcCBiaXQsIHNvIHRoYXQgd2Ugam9pbiB0aGUgcmlnaHQKIAkgKiBicm9hZGNhc3QgZ3JvdXAsIGV0Yy4KQEAgLTEzMDQsNiArMTM5OSwxMiBAQAogCWlwb2liX21heF9jb25uX3FwID0gbWluKGlwb2liX21heF9jb25uX3FwLCBJUE9JQl9DTV9NQVhfQ09OTl9RUCk7CiAjZW5kaWYKIAorCS8qCisJICogV2hlbiBjb3B5aW5nIHNtYWxsIHJlY2VpdmVkIHBhY2tldHMsIHdlIG9ubHkgY29weSBmcm9tIHRoZQorCSAqIGxpbmVhciBkYXRhIHBhcnQgb2YgdGhlIFNLQiwgc28gd2UgcmVseSBvbiB0aGlzIGNvbmRpdGlvbi4KKwkgKi8KKwlCVUlMRF9CVUdfT04oSVBPSUJfQ01fQ09QWUJSRUFLID4gSVBPSUJfQ01fSEVBRF9TSVpFKTsKKwogCXJldCA9IGlwb2liX3JlZ2lzdGVyX2RlYnVnZnMoKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tdWx0aWNhc3QuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfbXVsdGljYXN0LmMKaW5kZXggZDAwYTJjMS4uMWZjYzlhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl9tdWx0aWNhc3QuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX211bHRpY2FzdC5jCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpcG9pYl9tdWx0aWNhc3QuYyAxMzYyIDIwMDQtMTItMTggMTU6NTY6MjlaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgpAQCAtMTg4LDE0ICsxODYsMjIgQEAKIAlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXN0cnVjdCBpcG9pYl9haCAqYWg7CiAJaW50IHJldDsKKwlpbnQgc2V0X3FrZXkgPSAwOwogCiAJbWNhc3QtPm1jbWVtYmVyID0gKm1jbWVtYmVyOwogCiAJLyogU2V0IHRoZSBjYWNoZWQgUV9LZXkgYmVmb3JlIHdlIGF0dGFjaCBpZiBpdCdzIHRoZSBicm9hZGNhc3QgZ3JvdXAgKi8KIAlpZiAoIW1lbWNtcChtY2FzdC0+bWNtZW1iZXIubWdpZC5yYXcsIHByaXYtPmRldi0+YnJvYWRjYXN0ICsgNCwKIAkJICAgIHNpemVvZiAodW5pb24gaWJfZ2lkKSkpIHsKKwkJc3Bpbl9sb2NrX2lycSgmcHJpdi0+bG9jayk7CisJCWlmICghcHJpdi0+YnJvYWRjYXN0KSB7CisJCQlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOworCQkJcmV0dXJuIC1FQUdBSU47CisJCX0KIAkJcHJpdi0+cWtleSA9IGJlMzJfdG9fY3B1KHByaXYtPmJyb2FkY2FzdC0+bWNtZW1iZXIucWtleSk7CisJCXNwaW5fdW5sb2NrX2lycSgmcHJpdi0+bG9jayk7CiAJCXByaXYtPnR4X3dyLndyLnVkLnJlbW90ZV9xa2V5ID0gcHJpdi0+cWtleTsKKwkJc2V0X3FrZXkgPSAxOwogCX0KIAogCWlmICghdGVzdF9iaXQoSVBPSUJfTUNBU1RfRkxBR19TRU5ET05MWSwgJm1jYXN0LT5mbGFncykpIHsKQEAgLTIwOCw3ICsyMTQsNyBAQAogCQl9CiAKIAkJcmV0ID0gaXBvaWJfbWNhc3RfYXR0YWNoKGRldiwgYmUxNl90b19jcHUobWNhc3QtPm1jbWVtYmVyLm1saWQpLAotCQkJCQkgJm1jYXN0LT5tY21lbWJlci5tZ2lkKTsKKwkJCQkJICZtY2FzdC0+bWNtZW1iZXIubWdpZCwgc2V0X3FrZXkpOwogCQlpZiAocmV0IDwgMCkgewogCQkJaXBvaWJfd2Fybihwcml2LCAiY291bGRuJ3QgYXR0YWNoIFFQIHRvIG11bHRpY2FzdCBncm91cCAiCiAJCQkJICAgSVBPSUJfR0lEX0ZNVCAiXG4iLApAQCAtNTY5LDggKzU3NSwxMSBAQAogCiAJcHJpdi0+bWNhc3RfbXR1ID0gSVBPSUJfVURfTVRVKGliX210dV9lbnVtX3RvX2ludChwcml2LT5icm9hZGNhc3QtPm1jbWVtYmVyLm10dSkpOwogCi0JaWYgKCFpcG9pYl9jbV9hZG1pbl9lbmFibGVkKGRldikpCi0JCWRldi0+bXR1ID0gbWluKHByaXYtPm1jYXN0X210dSwgcHJpdi0+YWRtaW5fbXR1KTsKKwlpZiAoIWlwb2liX2NtX2FkbWluX2VuYWJsZWQoZGV2KSkgeworCQlydG5sX2xvY2soKTsKKwkJZGV2X3NldF9tdHUoZGV2LCBtaW4ocHJpdi0+bWNhc3RfbXR1LCBwcml2LT5hZG1pbl9tdHUpKTsKKwkJcnRubF91bmxvY2soKTsKKwl9CiAKIAlpcG9pYl9kYmdfbWNhc3QocHJpdiwgInN1Y2Nlc3NmdWxseSBqb2luZWQgYWxsIG11bHRpY2FzdCBncm91cHNcbiIpOwogCkBAIC01ODgsMTAgKzU5Nyw2IEBACiAJCXF1ZXVlX2RlbGF5ZWRfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5tY2FzdF90YXNrLCAwKTsKIAltdXRleF91bmxvY2soJm1jYXN0X211dGV4KTsKIAotCXNwaW5fbG9ja19pcnEoJnByaXYtPmxvY2spOwotCXNldF9iaXQoSVBPSUJfTUNBU1RfU1RBUlRFRCwgJnByaXYtPmZsYWdzKTsKLQlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOwotCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYwMSwxMCArNjA2LDYgQEAKIAogCWlwb2liX2RiZ19tY2FzdChwcml2LCAic3RvcHBpbmcgbXVsdGljYXN0IHRocmVhZFxuIik7CiAKLQlzcGluX2xvY2tfaXJxKCZwcml2LT5sb2NrKTsKLQljbGVhcl9iaXQoSVBPSUJfTUNBU1RfU1RBUlRFRCwgJnByaXYtPmZsYWdzKTsKLQlzcGluX3VubG9ja19pcnEoJnByaXYtPmxvY2spOwotCiAJbXV0ZXhfbG9jaygmbWNhc3RfbXV0ZXgpOwogCWNsZWFyX2JpdChJUE9JQl9NQ0FTVF9SVU4sICZwcml2LT5mbGFncyk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+bWNhc3RfdGFzayk7CkBAIC02MjksMTAgKzYzMCwxMCBAQAogCQkJCUlQT0lCX0dJRF9BUkcobWNhc3QtPm1jbWVtYmVyLm1naWQpKTsKIAogCQkvKiBSZW1vdmUgb3Vyc2VsdmVzIGZyb20gdGhlIG11bHRpY2FzdCBncm91cCAqLwotCQlyZXQgPSBpcG9pYl9tY2FzdF9kZXRhY2goZGV2LCBiZTE2X3RvX2NwdShtY2FzdC0+bWNtZW1iZXIubWxpZCksCi0JCQkJCSAmbWNhc3QtPm1jbWVtYmVyLm1naWQpOworCQlyZXQgPSBpYl9kZXRhY2hfbWNhc3QocHJpdi0+cXAsICZtY2FzdC0+bWNtZW1iZXIubWdpZCwKKwkJCQkgICAgICBiZTE2X3RvX2NwdShtY2FzdC0+bWNtZW1iZXIubWxpZCkpOwogCQlpZiAocmV0KQotCQkJaXBvaWJfd2Fybihwcml2LCAiaXBvaWJfbWNhc3RfZGV0YWNoIGZhaWxlZCAocmVzdWx0ID0gJWQpXG4iLCByZXQpOworCQkJaXBvaWJfd2Fybihwcml2LCAiaWJfZGV0YWNoX21jYXN0IGZhaWxlZCAocmVzdWx0ID0gJWQpXG4iLCByZXQpOwogCX0KIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92ZXJicy5jCmluZGV4IDg3NjZkMjkuLjY4MzI1MTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXBvaWIvaXBvaWJfdmVyYnMuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZlcmJzLmMKQEAgLTI5LDI0ICsyOSwxNyBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXBvaWJfdmVyYnMuYyAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2luY2x1ZGUgImlwb2liLmgiCiAKLWludCBpcG9pYl9tY2FzdF9hdHRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsIHVuaW9uIGliX2dpZCAqbWdpZCkKK2ludCBpcG9pYl9tY2FzdF9hdHRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsIHVuaW9uIGliX2dpZCAqbWdpZCwgaW50IHNldF9xa2V5KQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7Ci0Jc3RydWN0IGliX3FwX2F0dHIgKnFwX2F0dHI7CisJc3RydWN0IGliX3FwX2F0dHIgKnFwX2F0dHIgPSBOVUxMOwogCWludCByZXQ7CiAJdTE2IHBrZXlfaW5kZXg7CiAKLQlyZXQgPSAtRU5PTUVNOwotCXFwX2F0dHIgPSBrbWFsbG9jKHNpemVvZiAqcXBfYXR0ciwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFxcF9hdHRyKQotCQlnb3RvIG91dDsKLQogCWlmIChpYl9maW5kX3BrZXkocHJpdi0+Y2EsIHByaXYtPnBvcnQsIHByaXYtPnBrZXksICZwa2V5X2luZGV4KSkgewogCQljbGVhcl9iaXQoSVBPSUJfUEtFWV9BU1NJR05FRCwgJnByaXYtPmZsYWdzKTsKIAkJcmV0ID0gLUVOWElPOwpAQCAtNTQsMTggKzQ3LDIzIEBACiAJfQogCXNldF9iaXQoSVBPSUJfUEtFWV9BU1NJR05FRCwgJnByaXYtPmZsYWdzKTsKIAotCS8qIHNldCBjb3JyZWN0IFFLZXkgZm9yIFFQICovCi0JcXBfYXR0ci0+cWtleSA9IHByaXYtPnFrZXk7Ci0JcmV0ID0gaWJfbW9kaWZ5X3FwKHByaXYtPnFwLCBxcF9hdHRyLCBJQl9RUF9RS0VZKTsKLQlpZiAocmV0KSB7Ci0JCWlwb2liX3dhcm4ocHJpdiwgImZhaWxlZCB0byBtb2RpZnkgUVAsIHJldCA9ICVkXG4iLCByZXQpOwotCQlnb3RvIG91dDsKKwlpZiAoc2V0X3FrZXkpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJcXBfYXR0ciA9IGttYWxsb2Moc2l6ZW9mICpxcF9hdHRyLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFxcF9hdHRyKQorCQkJZ290byBvdXQ7CisKKwkJLyogc2V0IGNvcnJlY3QgUUtleSBmb3IgUVAgKi8KKwkJcXBfYXR0ci0+cWtleSA9IHByaXYtPnFrZXk7CisJCXJldCA9IGliX21vZGlmeV9xcChwcml2LT5xcCwgcXBfYXR0ciwgSUJfUVBfUUtFWSk7CisJCWlmIChyZXQpIHsKKwkJCWlwb2liX3dhcm4ocHJpdiwgImZhaWxlZCB0byBtb2RpZnkgUVAsIHJldCA9ICVkXG4iLCByZXQpOworCQkJZ290byBvdXQ7CisJCX0KIAl9CiAKIAkvKiBhdHRhY2ggUVAgdG8gbXVsdGljYXN0IGdyb3VwICovCi0JbXV0ZXhfbG9jaygmcHJpdi0+bWNhc3RfbXV0ZXgpOwogCXJldCA9IGliX2F0dGFjaF9tY2FzdChwcml2LT5xcCwgbWdpZCwgbWxpZCk7Ci0JbXV0ZXhfdW5sb2NrKCZwcml2LT5tY2FzdF9tdXRleCk7CiAJaWYgKHJldCkKIAkJaXBvaWJfd2Fybihwcml2LCAiZmFpbGVkIHRvIGF0dGFjaCB0byBtdWx0aWNhc3QgZ3JvdXAsIHJldCA9ICVkXG4iLCByZXQpOwogCkBAIC03NCwyMCArNzIsNiBAQAogCXJldHVybiByZXQ7CiB9CiAKLWludCBpcG9pYl9tY2FzdF9kZXRhY2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IG1saWQsIHVuaW9uIGliX2dpZCAqbWdpZCkKLXsKLQlzdHJ1Y3QgaXBvaWJfZGV2X3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwotCWludCByZXQ7Ci0KLQltdXRleF9sb2NrKCZwcml2LT5tY2FzdF9tdXRleCk7Ci0JcmV0ID0gaWJfZGV0YWNoX21jYXN0KHByaXYtPnFwLCBtZ2lkLCBtbGlkKTsKLQltdXRleF91bmxvY2soJnByaXYtPm1jYXN0X211dGV4KTsKLQlpZiAocmV0KQotCQlpcG9pYl93YXJuKHByaXYsICJpYl9kZXRhY2hfbWNhc3QgZmFpbGVkIChyZXN1bHQgPSAlZClcbiIsIHJldCk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCiBpbnQgaXBvaWJfaW5pdF9xcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCXN0cnVjdCBpcG9pYl9kZXZfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CkBAIC0yMDEsNyArMTg1LDEwIEBACiAJaW5pdF9hdHRyLnJlY3ZfY3EgPSBwcml2LT5yZWN2X2NxOwogCiAJaWYgKHByaXYtPmhjYV9jYXBzICYgSUJfREVWSUNFX1VEX1RTTykKLQkJaW5pdF9hdHRyLmNyZWF0ZV9mbGFncyA9IElCX1FQX0NSRUFURV9JUE9JQl9VRF9MU087CisJCWluaXRfYXR0ci5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTzsKKworCWlmIChwcml2LT5oY2FfY2FwcyAmIElCX0RFVklDRV9CTE9DS19NVUxUSUNBU1RfTE9PUEJBQ0spCisJCWluaXRfYXR0ci5jcmVhdGVfZmxhZ3MgfD0gSUJfUVBfQ1JFQVRFX0JMT0NLX01VTFRJQ0FTVF9MT09QQkFDSzsKIAogCWlmIChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9TRykKIAkJaW5pdF9hdHRyLmNhcC5tYXhfc2VuZF9zZ2UgPSBNQVhfU0tCX0ZSQUdTICsgMTsKQEAgLTI4OSwxNSArMjc2LDE3IEBACiAJaWYgKHJlY29yZC0+ZWxlbWVudC5wb3J0X251bSAhPSBwcml2LT5wb3J0KQogCQlyZXR1cm47CiAKLQlpZiAocmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9QT1JUX0VSUiAgICB8fAotCSAgICByZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1BPUlRfQUNUSVZFIHx8Ci0JICAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfTElEX0NIQU5HRSAgfHwKLQkgICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9TTV9DSEFOR0UgICB8fAorCWlwb2liX2RiZyhwcml2LCAiRXZlbnQgJWQgb24gZGV2aWNlICVzIHBvcnQgJWRcbiIsIHJlY29yZC0+ZXZlbnQsCisJCSAgcmVjb3JkLT5kZXZpY2UtPm5hbWUsIHJlY29yZC0+ZWxlbWVudC5wb3J0X251bSk7CisKKwlpZiAocmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9TTV9DSEFOR0UgfHwKIAkgICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9DTElFTlRfUkVSRUdJU1RFUikgewotCQlpcG9pYl9kYmcocHJpdiwgIlBvcnQgc3RhdGUgY2hhbmdlIGV2ZW50XG4iKTsKLQkJcXVldWVfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5mbHVzaF90YXNrKTsKKwkJcXVldWVfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5mbHVzaF9saWdodCk7CisJfSBlbHNlIGlmIChyZWNvcmQtPmV2ZW50ID09IElCX0VWRU5UX1BPUlRfRVJSIHx8CisJCSAgIHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfUE9SVF9BQ1RJVkUgfHwKKwkJICAgcmVjb3JkLT5ldmVudCA9PSBJQl9FVkVOVF9MSURfQ0hBTkdFKSB7CisJCXF1ZXVlX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+Zmx1c2hfbm9ybWFsKTsKIAl9IGVsc2UgaWYgKHJlY29yZC0+ZXZlbnQgPT0gSUJfRVZFTlRfUEtFWV9DSEFOR0UpIHsKLQkJaXBvaWJfZGJnKHByaXYsICJQX0tleSBjaGFuZ2UgZXZlbnQgb24gcG9ydDolZFxuIiwgcHJpdi0+cG9ydCk7Ci0JCXF1ZXVlX3dvcmsoaXBvaWJfd29ya3F1ZXVlLCAmcHJpdi0+cGtleV9ldmVudF90YXNrKTsKKwkJcXVldWVfd29yayhpcG9pYl93b3JrcXVldWUsICZwcml2LT5mbHVzaF9oZWF2eSk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pcG9pYi9pcG9pYl92bGFuLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYwppbmRleCAxY2RiNWNmLi5iMDhlYjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX3ZsYW4uYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaXBvaWJfdmxhbi5jIDEzNDkgMjAwNC0xMi0xNiAyMTowOTo0M1ogcm9sYW5kICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuYwppbmRleCBhZWI1OGNhLi4zNTZmYWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmMKQEAgLTQyLDkgKzQyLDYgQEAKICAqCVpoZW55dSBXYW5nCiAgKiBNb2RpZmllZCBieToKICAqICAgICAgRXJleiBaaWxiZXIKLSAqCi0gKgotICogJElkOiBpc2NzaV9pc2VyLmMgNjk2NSAyMDA2LTA1LTA3IDExOjM2OjIwWiBvZ2VybGl0eiAkCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5oIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzY3NpX2lzZXIuaAppbmRleCBhOGMxYjMwLi4wZTEwNzAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNjc2lfaXNlci5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2NzaV9pc2VyLmgKQEAgLTM2LDggKzM2LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlzY3NpX2lzZXIuaCA3MDUxIDIwMDYtMDUtMTAgMTI6Mjk6MTFaIG9nZXJsaXR6ICQKICAqLwogI2lmbmRlZiBfX0lTQ1NJX0lTRVJfSF9fCiAjZGVmaW5lIF9fSVNDU0lfSVNFUl9IX18KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX2luaXRpYXRvci5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfaW5pdGlhdG9yLmMKaW5kZXggMDhkYzgxYy4uMzFhZDQ5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfaW5pdGlhdG9yLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfaW5pdGlhdG9yLmMKQEAgLTI4LDggKzI4LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlzZXJfaW5pdGlhdG9yLmMgNjk2NCAyMDA2LTA1LTA3IDExOjExOjQzWiBvZ2VybGl0eiAkCiAgKi8KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl9tZW1vcnkuYyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX21lbW9yeS5jCmluZGV4IGNhYzUwYzQuLjgxZTQ5Y2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX21lbW9yeS5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX21lbW9yeS5jCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpc2VyX21lbW9yeS5jIDY5NjQgMjAwNi0wNS0wNyAxMToxMTo0M1ogb2dlcmxpdHogJAogICovCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl92ZXJicy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3VscC9pc2VyL2lzZXJfdmVyYnMuYwppbmRleCBkMTljZmU2Li43N2NhYmVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lzZXIvaXNlcl92ZXJicy5jCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvaXNlci9pc2VyX3ZlcmJzLmMKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGlzZXJfdmVyYnMuYyA3MDUxIDIwMDYtMDUtMTAgMTI6Mjk6MTFaIG9nZXJsaXR6ICQKICAqLwogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL3VscC9zcnAvaWJfc3JwLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuYwppbmRleCA0MzUxNDU3Li5lZDdjNWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuYwpAQCAtMjgsOCArMjgsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfc3JwLmMgMzkzMiAyMDA1LTExLTAxIDE3OjE5OjI5WiByb2xhbmQgJAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTQ5LDggKzQ3LDYgQEAKICNpbmNsdWRlIDxzY3NpL3NycC5oPgogI2luY2x1ZGUgPHNjc2kvc2NzaV90cmFuc3BvcnRfc3JwLmg+CiAKLSNpbmNsdWRlIDxyZG1hL2liX2NhY2hlLmg+Ci0KICNpbmNsdWRlICJpYl9zcnAuaCIKIAogI2RlZmluZSBEUlZfTkFNRQkiaWJfc3JwIgpAQCAtMTgzLDEwICsxNzksMTAgQEAKIAlpZiAoIWF0dHIpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JcmV0ID0gaWJfZmluZF9jYWNoZWRfcGtleSh0YXJnZXQtPnNycF9ob3N0LT5zcnBfZGV2LT5kZXYsCi0JCQkJICB0YXJnZXQtPnNycF9ob3N0LT5wb3J0LAotCQkJCSAgYmUxNl90b19jcHUodGFyZ2V0LT5wYXRoLnBrZXkpLAotCQkJCSAgJmF0dHItPnBrZXlfaW5kZXgpOworCXJldCA9IGliX2ZpbmRfcGtleSh0YXJnZXQtPnNycF9ob3N0LT5zcnBfZGV2LT5kZXYsCisJCQkgICB0YXJnZXQtPnNycF9ob3N0LT5wb3J0LAorCQkJICAgYmUxNl90b19jcHUodGFyZ2V0LT5wYXRoLnBrZXkpLAorCQkJICAgJmF0dHItPnBrZXlfaW5kZXgpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCkBAIC0xODgzLDggKzE4NzksNyBAQAogCWlmIChyZXQpCiAJCWdvdG8gZXJyOwogCi0JaWJfZ2V0X2NhY2hlZF9naWQoaG9zdC0+c3JwX2Rldi0+ZGV2LCBob3N0LT5wb3J0LCAwLAotCQkJICAmdGFyZ2V0LT5wYXRoLnNnaWQpOworCWliX3F1ZXJ5X2dpZChob3N0LT5zcnBfZGV2LT5kZXYsIGhvc3QtPnBvcnQsIDAsICZ0YXJnZXQtPnBhdGguc2dpZCk7CiAKIAlzaG9zdF9wcmludGsoS0VSTl9ERUJVRywgdGFyZ2V0LT5zY3NpX2hvc3QsIFBGWAogCQkgICAgICJuZXcgdGFyZ2V0OiBpZF9leHQgJTAxNmxseCBpb2NfZ3VpZCAlMDE2bGx4IHBrZXkgJTA0eCAiCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL3NycC9pYl9zcnAuaCBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5oCmluZGV4IDYzZDJhZTcuLmUxODViOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5oCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC91bHAvc3JwL2liX3NycC5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9zcnAuaCAzOTMyIDIwMDUtMTEtMDEgMTc6MTk6MjlaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBJQl9TUlBfSApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9mZi1jb3JlLmMgYi9kcml2ZXJzL2lucHV0L2ZmLWNvcmUuYwppbmRleCBlZWJjNzI0Li43MmM2M2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2ZmLWNvcmUuYworKysgYi9kcml2ZXJzL2lucHV0L2ZmLWNvcmUuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogCiAvKgogICogQ2hlY2sgdGhhdCB0aGUgZWZmZWN0X2lkIGlzIGEgdmFsaWQgZWZmZWN0IGFuZCB3aGV0aGVyIHRoZSB1c2VyCkBAIC0xNjYsOCArMTY3LDEwIEBACiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKKwlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCWZmLT5lZmZlY3RzW2lkXSA9ICplZmZlY3Q7CiAJZmYtPmVmZmVjdF9vd25lcnNbaWRdID0gZmlsZTsKKwlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAKICBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZmZi0+bXV0ZXgpOwpAQCAtMTg5LDE1ICsxOTIsMjEgQEAKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAorCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAJZmYtPnBsYXliYWNrKGRldiwgZWZmZWN0X2lkLCAwKTsKKwlmZi0+ZWZmZWN0X293bmVyc1tlZmZlY3RfaWRdID0gTlVMTDsKKwlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAKIAlpZiAoZmYtPmVyYXNlKSB7CiAJCWVycm9yID0gZmYtPmVyYXNlKGRldiwgZWZmZWN0X2lkKTsKLQkJaWYgKGVycm9yKQotCQkJcmV0dXJuIGVycm9yOwotCX0KKwkJaWYgKGVycm9yKSB7CisJCQlzcGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOworCQkJZmYtPmVmZmVjdF9vd25lcnNbZWZmZWN0X2lkXSA9IGZpbGU7CisJCQlzcGluX3VubG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAKLQlmZi0+ZWZmZWN0X293bmVyc1tlZmZlY3RfaWRdID0gTlVMTDsKKwkJCXJldHVybiBlcnJvcjsKKwkJfQorCX0KIAogCXJldHVybiAwOwogfQpAQCAtMjYzLDggKzI3Miw2IEBACiAJaWYgKHR5cGUgIT0gRVZfRkYpCiAJCXJldHVybiAwOwogCi0JbXV0ZXhfbG9jaygmZmYtPm11dGV4KTsKLQogCXN3aXRjaCAoY29kZSkgewogCWNhc2UgRkZfR0FJTjoKIAkJaWYgKCF0ZXN0X2JpdChGRl9HQUlOLCBkZXYtPmZmYml0KSB8fCB2YWx1ZSA+IDB4ZmZmZikKQEAgLTI4Niw3ICsyOTMsNiBAQAogCQlicmVhazsKIAl9CiAKLQltdXRleF91bmxvY2soJmZmLT5tdXRleCk7CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpbnB1dF9mZl9ldmVudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2lucHV0LmMgYi9kcml2ZXJzL2lucHV0L2lucHV0LmMKaW5kZXggMjcwMDZmYy4uNDA4ZGYwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9pbnB1dC5jCisrKyBiL2RyaXZlcnMvaW5wdXQvaW5wdXQuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvcmN1cGRhdGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiBNT0RVTEVfQVVUSE9SKCJWb2p0ZWNoIFBhdmxpayA8dm9qdGVjaEBzdXNlLmN6PiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJJbnB1dCBjb3JlIik7CkBAIC0xNTg4LDEzICsxNTg5LDE3IEBACiAKIHN0YXRpYyBpbnQgaW5wdXRfb3Blbl9maWxlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewotCXN0cnVjdCBpbnB1dF9oYW5kbGVyICpoYW5kbGVyID0gaW5wdXRfdGFibGVbaW1pbm9yKGlub2RlKSA+PiA1XTsKKwlzdHJ1Y3QgaW5wdXRfaGFuZGxlciAqaGFuZGxlcjsKIAljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpvbGRfZm9wcywgKm5ld19mb3BzID0gTlVMTDsKIAlpbnQgZXJyOwogCisJbG9ja19rZXJuZWwoKTsKIAkvKiBObyBsb2FkLW9uLWRlbWFuZCBoZXJlPyAqLwotCWlmICghaGFuZGxlciB8fCAhKG5ld19mb3BzID0gZm9wc19nZXQoaGFuZGxlci0+Zm9wcykpKQotCQlyZXR1cm4gLUVOT0RFVjsKKwloYW5kbGVyID0gaW5wdXRfdGFibGVbaW1pbm9yKGlub2RlKSA+PiA1XTsKKwlpZiAoIWhhbmRsZXIgfHwgIShuZXdfZm9wcyA9IGZvcHNfZ2V0KGhhbmRsZXItPmZvcHMpKSkgeworCQllcnIgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CiAKIAkvKgogCSAqIFRoYXQncyBfcmVhbGx5XyBvZGQuIFVzdWFsbHkgTlVMTCAtPm9wZW4gbWVhbnMgIm5vdGhpbmcgc3BlY2lhbCIsCkBAIC0xNjAyLDcgKzE2MDcsOCBAQAogCSAqLwogCWlmICghbmV3X2ZvcHMtPm9wZW4pIHsKIAkJZm9wc19wdXQobmV3X2ZvcHMpOwotCQlyZXR1cm4gLUVOT0RFVjsKKwkJZXJyID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CiAJfQogCW9sZF9mb3BzID0gZmlsZS0+Zl9vcDsKIAlmaWxlLT5mX29wID0gbmV3X2ZvcHM7CkBAIC0xNjE0LDYgKzE2MjAsOCBAQAogCQlmaWxlLT5mX29wID0gZm9wc19nZXQob2xkX2ZvcHMpOwogCX0KIAlmb3BzX3B1dChvbGRfZm9wcyk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXRrYmQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvYXRrYmQuYwppbmRleCA0YTk1YWRjLi5hZjU4YTZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL2F0a2JkLmMKKysrIGIvZHJpdmVycy9pbnB1dC9rZXlib2FyZC9hdGtiZC5jCkBAIC04MDcsNiArODA3LDggQEAKIHN0YXRpYyB2b2lkIGF0a2JkX2NsZWFudXAoc3RydWN0IHNlcmlvICpzZXJpbykKIHsKIAlzdHJ1Y3QgYXRrYmQgKmF0a2JkID0gc2VyaW9fZ2V0X2RydmRhdGEoc2VyaW8pOworCisJYXRrYmRfZGlzYWJsZShhdGtiZCk7CiAJcHMyX2NvbW1hbmQoJmF0a2JkLT5wczJkZXYsIE5VTEwsIEFUS0JEX0NNRF9SRVNFVF9CQVQpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L2tleWJvYXJkL3B4YTI3eF9rZXlwYWQuYyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhMjd4X2tleXBhZC5jCmluZGV4IDNkZWEwYzUuLjQ1NzY3ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhMjd4X2tleXBhZC5jCisrKyBiL2RyaXZlcnMvaW5wdXQva2V5Ym9hcmQvcHhhMjd4X2tleXBhZC5jCkBAIC0xMzYsNiArMTM2LDkgQEAKIAkJc2V0X2JpdChjb2RlLCBpbnB1dF9kZXYtPmtleWJpdCk7CiAJfQogCisJZm9yIChpID0gMDsgaSA8IHBkYXRhLT5kaXJlY3Rfa2V5X251bTsgaSsrKQorCQlzZXRfYml0KHBkYXRhLT5kaXJlY3Rfa2V5X21hcFtpXSwgaW5wdXRfZGV2LT5rZXliaXQpOworCiAJa2V5cGFkLT5yb3RhcnlfdXBfa2V5WzBdID0gcGRhdGEtPnJvdGFyeTBfdXBfa2V5OwogCWtleXBhZC0+cm90YXJ5X3VwX2tleVsxXSA9IHBkYXRhLT5yb3RhcnkxX3VwX2tleTsKIAlrZXlwYWQtPnJvdGFyeV9kb3duX2tleVswXSA9IHBkYXRhLT5yb3RhcnkwX2Rvd25fa2V5OwpAQCAtMTQzLDE3ICsxNDYsMjEgQEAKIAlrZXlwYWQtPnJvdGFyeV9yZWxfY29kZVswXSA9IHBkYXRhLT5yb3RhcnkwX3JlbF9jb2RlOwogCWtleXBhZC0+cm90YXJ5X3JlbF9jb2RlWzFdID0gcGRhdGEtPnJvdGFyeTFfcmVsX2NvZGU7CiAKLQlpZiAocGRhdGEtPnJvdGFyeTBfdXBfa2V5ICYmIHBkYXRhLT5yb3RhcnkwX2Rvd25fa2V5KSB7Ci0JCXNldF9iaXQocGRhdGEtPnJvdGFyeTBfdXBfa2V5LCBpbnB1dF9kZXYtPmtleWJpdCk7Ci0JCXNldF9iaXQocGRhdGEtPnJvdGFyeTBfZG93bl9rZXksIGlucHV0X2Rldi0+a2V5Yml0KTsKLQl9IGVsc2UKLQkJc2V0X2JpdChwZGF0YS0+cm90YXJ5MF9yZWxfY29kZSwgaW5wdXRfZGV2LT5yZWxiaXQpOworCWlmIChwZGF0YS0+ZW5hYmxlX3JvdGFyeTApIHsKKwkJaWYgKHBkYXRhLT5yb3RhcnkwX3VwX2tleSAmJiBwZGF0YS0+cm90YXJ5MF9kb3duX2tleSkgeworCQkJc2V0X2JpdChwZGF0YS0+cm90YXJ5MF91cF9rZXksIGlucHV0X2Rldi0+a2V5Yml0KTsKKwkJCXNldF9iaXQocGRhdGEtPnJvdGFyeTBfZG93bl9rZXksIGlucHV0X2Rldi0+a2V5Yml0KTsKKwkJfSBlbHNlCisJCQlzZXRfYml0KHBkYXRhLT5yb3RhcnkwX3JlbF9jb2RlLCBpbnB1dF9kZXYtPnJlbGJpdCk7CisJfQogCi0JaWYgKHBkYXRhLT5yb3RhcnkxX3VwX2tleSAmJiBwZGF0YS0+cm90YXJ5MV9kb3duX2tleSkgewotCQlzZXRfYml0KHBkYXRhLT5yb3RhcnkxX3VwX2tleSwgaW5wdXRfZGV2LT5rZXliaXQpOwotCQlzZXRfYml0KHBkYXRhLT5yb3RhcnkxX2Rvd25fa2V5LCBpbnB1dF9kZXYtPmtleWJpdCk7Ci0JfSBlbHNlCi0JCXNldF9iaXQocGRhdGEtPnJvdGFyeTFfcmVsX2NvZGUsIGlucHV0X2Rldi0+cmVsYml0KTsKKwlpZiAocGRhdGEtPmVuYWJsZV9yb3RhcnkxKSB7CisJCWlmIChwZGF0YS0+cm90YXJ5MV91cF9rZXkgJiYgcGRhdGEtPnJvdGFyeTFfZG93bl9rZXkpIHsKKwkJCXNldF9iaXQocGRhdGEtPnJvdGFyeTFfdXBfa2V5LCBpbnB1dF9kZXYtPmtleWJpdCk7CisJCQlzZXRfYml0KHBkYXRhLT5yb3RhcnkxX2Rvd25fa2V5LCBpbnB1dF9kZXYtPmtleWJpdCk7CisJCX0gZWxzZQorCQkJc2V0X2JpdChwZGF0YS0+cm90YXJ5MV9yZWxfY29kZSwgaW5wdXRfZGV2LT5yZWxiaXQpOworCX0KIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbG9va3VwX21hdHJpeF9rZXljb2RlKApAQCAtNDg0LDggKzQ5MSwxMyBAQAogCWtleXBhZC0+aW5wdXRfZGV2ID0gaW5wdXRfZGV2OwogCWlucHV0X3NldF9kcnZkYXRhKGlucHV0X2Rldiwga2V5cGFkKTsKIAotCWlucHV0X2Rldi0+ZXZiaXRbMF0gPSBCSVRfTUFTSyhFVl9LRVkpIHwgQklUX01BU0soRVZfUkVQKSB8Ci0JCUJJVF9NQVNLKEVWX1JFTCk7CisJaW5wdXRfZGV2LT5ldmJpdFswXSA9IEJJVF9NQVNLKEVWX0tFWSkgfCBCSVRfTUFTSyhFVl9SRVApOworCWlmICgoa2V5cGFkLT5wZGF0YS0+ZW5hYmxlX3JvdGFyeTAgJiYKKwkJCWtleXBhZC0+cGRhdGEtPnJvdGFyeTBfcmVsX2NvZGUpIHx8CisJICAgIChrZXlwYWQtPnBkYXRhLT5lbmFibGVfcm90YXJ5MSAmJgorCQkJa2V5cGFkLT5wZGF0YS0+cm90YXJ5MV9yZWxfY29kZSkpIHsKKwkJaW5wdXRfZGV2LT5ldmJpdFswXSB8PSBCSVRfTUFTSyhFVl9SRUwpOworCX0KIAogCXB4YTI3eF9rZXlwYWRfYnVpbGRfa2V5Y29kZShrZXlwYWQpOwogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGtleXBhZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvS2NvbmZpZyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9LY29uZmlnCmluZGV4IDNhZDhiZDkuLjQzMjY5OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9LY29uZmlnCkBAIC0xNSw3ICsxNSw2IEBACiBjb25maWcgSU5QVVRfUENTUEtSCiAJdHJpc3RhdGUgIlBDIFNwZWFrZXIgc3VwcG9ydCIKIAlkZXBlbmRzIG9uIFBDU1BLUl9QTEFURk9STQotCWRlcGVuZHMgb24gU05EX1BDU1A9bgogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdGhlIHN0YW5kYXJkIFBDIFNwZWFrZXIgdG8gYmUgdXNlZCBmb3IKIAkgIGJlbGxzIGFuZCB3aGlzdGxlcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQvbWlzYy9hcGFuZWwuYyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9hcGFuZWwuYwppbmRleCA5NTMxZDhjLi5kODJmN2Y3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvYXBhbmVsLmMKKysrIGIvZHJpdmVycy9pbnB1dC9taXNjL2FwYW5lbC5jCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW8uaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbnB1dC1wb2xsZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L21pc2MvaHBfc2RjX3J0Yy5jIGIvZHJpdmVycy9pbnB1dC9taXNjL2hwX3NkY19ydGMuYwppbmRleCA0NWU1ZDA1Li40OWQ4YWJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21pc2MvaHBfc2RjX3J0Yy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvbWlzYy9ocF9zZGNfcnRjLmMKQEAgLTM1LDYgKzM1LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2hwX3NkYy5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTQwOCw2ICs0MDksNyBAQAogCiBzdGF0aWMgaW50IGhwX3NkY19ydGNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogICAgICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9taXNjL3VpbnB1dC5jIGIvZHJpdmVycy9pbnB1dC9taXNjL3VpbnB1dC5jCmluZGV4IGE1NmFkNGIuLjJiY2ZhMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbWlzYy91aW5wdXQuYworKysgYi9kcml2ZXJzL2lucHV0L21pc2MvdWlucHV0LmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC91aW5wdXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiBzdGF0aWMgaW50IHVpbnB1dF9kZXZfZXZlbnQoc3RydWN0IGlucHV0X2RldiAqZGV2LCB1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50IGNvZGUsIGludCB2YWx1ZSkKIHsKQEAgLTIyMiw2ICsyMjMsNyBAQAogCWlmICghbmV3ZGV2KQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJbXV0ZXhfaW5pdCgmbmV3ZGV2LT5tdXRleCk7CiAJc3Bpbl9sb2NrX2luaXQoJm5ld2Rldi0+cmVxdWVzdHNfbG9jayk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmbmV3ZGV2LT5yZXF1ZXN0c193YWl0cSk7CkBAIC0yMjksNiArMjMxLDcgQEAKIAluZXdkZXYtPnN0YXRlID0gVUlTVF9ORVdfREVWSUNFOwogCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gbmV3ZGV2OworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZS9hcHBsZXRvdWNoLmMgYi9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYwppbmRleCA4ZGQzOTQyLi5jZTZmZGVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL2FwcGxldG91Y2guYwpAQCAtNTg5LDYgKzU4OSwyMSBAQAogCWRldi0+b3BlbiA9IDA7CiB9CiAKK3N0YXRpYyBpbnQgYXRwX2hhbmRsZV9nZXlzZXIoc3RydWN0IGF0cCAqZGV2KQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gZGV2LT51ZGV2OworCisJaWYgKCFhdHBfaXNfZm91bnRhaW4oZGV2KSkgeworCQkvKiBzd2l0Y2ggdG8gcmF3IHNlbnNvciBtb2RlICovCisJCWlmIChhdHBfZ2V5c2VyX2luaXQodWRldikpCisJCQlyZXR1cm4gLUVJTzsKKworCQlwcmludGsoS0VSTl9JTkZPICJhcHBsZXRvdWNoOiBHZXlzZXIgbW9kZSBpbml0aWFsaXplZC5cbiIpOworCX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGF0cF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaWZhY2UsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKIHsKIAlzdHJ1Y3QgYXRwICpkZXY7CkBAIC02MzMsMTQgKzY0OCw2IEBACiAJZWxzZQogCQlkZXYtPmRhdGFsZW4gPSA4MTsKIAotCWlmICghYXRwX2lzX2ZvdW50YWluKGRldikpIHsKLQkJLyogc3dpdGNoIHRvIHJhdyBzZW5zb3IgbW9kZSAqLwotCQlpZiAoYXRwX2dleXNlcl9pbml0KHVkZXYpKQotCQkJZ290byBlcnJfZnJlZV9kZXZzOwotCi0JCXByaW50ayhLRVJOX0lORk8gImFwcGxldG91Y2g6IEdleXNlciBtb2RlIGluaXRpYWxpemVkLlxuIik7Ci0JfQotCiAJZGV2LT51cmIgPSB1c2JfYWxsb2NfdXJiKDAsIEdGUF9LRVJORUwpOwogCWlmICghZGV2LT51cmIpCiAJCWdvdG8gZXJyX2ZyZWVfZGV2czsKQEAgLTY1NCw2ICs2NjEsMTAgQEAKIAkJCSB1c2JfcmN2aW50cGlwZSh1ZGV2LCBpbnRfaW5fZW5kcG9pbnRBZGRyKSwKIAkJCSBkZXYtPmRhdGEsIGRldi0+ZGF0YWxlbiwgYXRwX2NvbXBsZXRlLCBkZXYsIDEpOwogCisJZXJyb3IgPSBhdHBfaGFuZGxlX2dleXNlcihkZXYpOworCWlmIChlcnJvcikKKwkJZ290byBlcnJfZnJlZV9idWZmZXI7CisKIAl1c2JfbWFrZV9wYXRoKHVkZXYsIGRldi0+cGh5cywgc2l6ZW9mKGRldi0+cGh5cykpOwogCXN0cmxjYXQoZGV2LT5waHlzLCAiL2lucHV0MCIsIHNpemVvZihkZXYtPnBoeXMpKTsKIApAQCAtNzQ0LDYgKzc1NSwyMCBAQAogCXByaW50ayhLRVJOX0lORk8gImlucHV0OiBhcHBsZXRvdWNoIGRpc2Nvbm5lY3RlZFxuIik7CiB9CiAKK3N0YXRpYyBpbnQgYXRwX3JlY292ZXIoc3RydWN0IGF0cCAqZGV2KQoreworCWludCBlcnJvcjsKKworCWVycm9yID0gYXRwX2hhbmRsZV9nZXlzZXIoZGV2KTsKKwlpZiAoZXJyb3IpCisJCXJldHVybiBlcnJvcjsKKworCWlmIChkZXYtPm9wZW4gJiYgdXNiX3N1Ym1pdF91cmIoZGV2LT51cmIsIEdGUF9BVE9NSUMpKQorCQlyZXR1cm4gLUVJTzsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IGF0cF9zdXNwZW5kKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppZmFjZSwgcG1fbWVzc2FnZV90IG1lc3NhZ2UpCiB7CiAJc3RydWN0IGF0cCAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpZmFjZSk7CkBAIC03NjQsMTIgKzc4OSwyMCBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF0cF9yZXNldF9yZXN1bWUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmlmYWNlKQoreworCXN0cnVjdCBhdHAgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaWZhY2UpOworCisJcmV0dXJuIGF0cF9yZWNvdmVyKGRldik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBhdHBfZHJpdmVyID0gewogCS5uYW1lCQk9ICJhcHBsZXRvdWNoIiwKIAkucHJvYmUJCT0gYXRwX3Byb2JlLAogCS5kaXNjb25uZWN0CT0gYXRwX2Rpc2Nvbm5lY3QsCiAJLnN1c3BlbmQJPSBhdHBfc3VzcGVuZCwKIAkucmVzdW1lCQk9IGF0cF9yZXN1bWUsCisJLnJlc2V0X3Jlc3VtZQk9IGF0cF9yZXNldF9yZXN1bWUsCiAJLmlkX3RhYmxlCT0gYXRwX3RhYmxlLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9tb3VzZWRldi5jIGIvZHJpdmVycy9pbnB1dC9tb3VzZWRldi5jCmluZGV4IGI5ODk3NDguLjgxMzdlNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQvbW91c2VkZXYuYworKysgYi9kcml2ZXJzL2lucHV0L21vdXNlZGV2LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNkZWZpbmUgTU9VU0VERVZfTUlYCQkzMQogCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTU0NSwxNiArNTQ2LDIxIEBACiAJaWYgKGkgPj0gTU9VU0VERVZfTUlOT1JTKQogCQlyZXR1cm4gLUVOT0RFVjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZXJyb3IgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm1vdXNlZGV2X3RhYmxlX211dGV4KTsKLQlpZiAoZXJyb3IpCisJaWYgKGVycm9yKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycm9yOworCX0KIAltb3VzZWRldiA9IG1vdXNlZGV2X3RhYmxlW2ldOwogCWlmIChtb3VzZWRldikKIAkJZ2V0X2RldmljZSgmbW91c2VkZXYtPmRldik7CiAJbXV0ZXhfdW5sb2NrKCZtb3VzZWRldl90YWJsZV9tdXRleCk7CiAKLQlpZiAoIW1vdXNlZGV2KQorCWlmICghbW91c2VkZXYpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAljbGllbnQgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW91c2VkZXZfY2xpZW50KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjbGllbnQpIHsKQEAgLTU3Myw2ICs1NzksNyBAQAogCQlnb3RvIGVycl9mcmVlX2NsaWVudDsKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGNsaWVudDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKICBlcnJfZnJlZV9jbGllbnQ6CkBAIC01ODAsNiArNTg3LDcgQEAKIAlrZnJlZShjbGllbnQpOwogIGVycl9wdXRfbW91c2VkZXY6CiAJcHV0X2RldmljZSgmbW91c2VkZXYtPmRldik7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaCBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIteDg2aWE2NGlvLmgKaW5kZXggNWVjZTlmNS4uNzhlYjc4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaAorKysgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oCkBAIC0xOTMsNiArMTkzLDEzIEBACiAJCX0sCiAJfSwKIAl7CisJCS5pZGVudCA9ICJGdWppdHN1LVNpZW1lbnMgQW1pbG8gUHJvIDIwMzAiLAorCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkZVSklUU1UgU0lFTUVOUyIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJBTUlMTyBQUk8gVjIwMzAiKSwKKwkJfSwKKwl9LAorCXsKIAkJLyoKIAkJICogTm8gZGF0YSBpcyBjb21pbmcgZnJvbSB0aGUgdG91Y2hzY3JlZW4gdW5sZXNzIEtCQwogCQkgKiBpcyBpbiBsZWdhY3kgbW9kZS4KQEAgLTMzMSw2ICszMzgsMTMgQEAKIAkJfSwKIAl9LAogCXsKKwkJLmlkZW50ID0gIkFjZXIgVHJhdmVsTWF0ZSA2NjAiLAorCQkubWF0Y2hlcyA9IHsKKwkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkFjZXIiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVHJhdmVsTWF0ZSA2NjAiKSwKKwkJfSwKKwl9LAorCXsKIAkJLmlkZW50ID0gIkFjZXIgVHJhdmVsTWF0ZSAyNDkwIiwKIAkJLm1hdGNoZXMgPSB7CiAJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJBY2VyIiksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMKaW5kZXggNjVhNzRjZi4uMTcwZjcxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5jCisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYwpAQCAtODg1LDYgKzg4NSwyMCBAQAogCiAjdW5kZWYgREVMQVkKIAorI2lmZGVmIENPTkZJR19YODYKK3N0YXRpYyB2b2lkIGk4MDQyX2RyaXRla19lbmFibGUodm9pZCkKK3sKKwljaGFyIHBhcmFtID0gMHg5MDsKKwlpbnQgZXJyb3I7CisKKwllcnJvciA9IGk4MDQyX2NvbW1hbmQoJnBhcmFtLCAweDEwNTkpOworCWlmIChlcnJvcikKKwkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIkZhaWxlZCB0byBlbmFibGUgRFJJVEVLIGV4dGVuc2lvbjogJWRcbiIsCisJCQllcnJvcik7Cit9CisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19QTQogLyoKICAqIEhlcmUgd2UgdHJ5IHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIEJJT1Mgc2V0dGluZ3MuIFdlIG9ubHkgd2FudCB0bwpAQCAtOTM4LDEwICs5NTIsMjAgQEAKIAlpODA0Ml9jdHIgfD0gSTgwNDJfQ1RSX0FVWERJUyB8IEk4MDQyX0NUUl9LQkRESVM7CiAJaTgwNDJfY3RyICY9IH4oSTgwNDJfQ1RSX0FVWElOVCB8IEk4MDQyX0NUUl9LQkRJTlQpOwogCWlmIChpODA0Ml9jb21tYW5kKCZpODA0Ml9jdHIsIEk4MDQyX0NNRF9DVExfV0NUUikpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJpODA0MjogQ2FuJ3Qgd3JpdGUgQ1RSIHRvIHJlc3VtZVxuIik7Ci0JCXJldHVybiAtRUlPOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJpODA0MjogQ2FuJ3Qgd3JpdGUgQ1RSIHRvIHJlc3VtZSwgcmV0cnlpbmcuLi5cbiIpOworCQltc2xlZXAoNTApOworCQlpZiAoaTgwNDJfY29tbWFuZCgmaTgwNDJfY3RyLCBJODA0Ml9DTURfQ1RMX1dDVFIpKSB7CisJCQlwcmludGsoS0VSTl9FUlIgImk4MDQyOiBDVFIgd3JpdGUgcmV0cnkgZmFpbGVkXG4iKTsKKwkJCXJldHVybiAtRUlPOworCQl9CiAJfQogCisKKyNpZmRlZiBDT05GSUdfWDg2CisJaWYgKGk4MDQyX2RyaXRlaykKKwkJaTgwNDJfZHJpdGVrX2VuYWJsZSgpOworI2VuZGlmCisKIAlpZiAoaTgwNDJfbXV4X3ByZXNlbnQpIHsKIAkJaWYgKGk4MDQyX3NldF9tdXhfbW9kZSgxLCBOVUxMKSB8fCBpODA0Ml9lbmFibGVfbXV4X3BvcnRzKCkpCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HCkBAIC0xMTYwLDYgKzExODQsMTEgQEAKIAlpZiAoZXJyb3IpCiAJCXJldHVybiBlcnJvcjsKIAorI2lmZGVmIENPTkZJR19YODYKKwlpZiAoaTgwNDJfZHJpdGVrKQorCQlpODA0Ml9kcml0ZWtfZW5hYmxlKCk7CisjZW5kaWYKKwogCWlmICghaTgwNDJfbm9hdXgpIHsKIAkJZXJyb3IgPSBpODA0Ml9zZXR1cF9hdXgoKTsKIAkJaWYgKGVycm9yICYmIGVycm9yICE9IC1FTk9ERVYgJiYgZXJyb3IgIT0gLUVCVVNZKQpAQCAtMTE3MSwxNCArMTIwMCw2IEBACiAJCWlmIChlcnJvcikKIAkJCWdvdG8gb3V0X2ZhaWw7CiAJfQotI2lmZGVmIENPTkZJR19YODYKLQlpZiAoaTgwNDJfZHJpdGVrKSB7Ci0JCWNoYXIgcGFyYW0gPSAweDkwOwotCQllcnJvciA9IGk4MDQyX2NvbW1hbmQoJnBhcmFtLCAweDEwNTkpOwotCQlpZiAoZXJyb3IpCi0JCQlnb3RvIG91dF9mYWlsOwotCX0KLSNlbmRpZgogLyoKICAqIE9rLCBldmVyeXRoaW5nIGlzIHJlYWR5LCBsZXQncyByZWdpc3RlciBhbGwgc2VyaW8gcG9ydHMKICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1dC9zZXJpby9zZXJpb19yYXcuYyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vc2VyaW9fcmF3LmMKaW5kZXggMDQwMzYyMi4uYzkzOTdjOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9zZXJpb19yYXcuYworKysgYi9kcml2ZXJzL2lucHV0L3NlcmlvL3NlcmlvX3Jhdy5jCkBAIC0xMCw2ICsxMCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpby5oPgpAQCAtODEsOSArODIsMTAgQEAKIAlzdHJ1Y3Qgc2VyaW9fcmF3X2xpc3QgKmxpc3Q7CiAJaW50IHJldHZhbCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXJldHZhbCA9IG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmc2VyaW9fcmF3X211dGV4KTsKIAlpZiAocmV0dmFsKQotCQlyZXR1cm4gcmV0dmFsOworCQlnb3RvIG91dF9ia2w7CiAKIAlpZiAoIShzZXJpb19yYXcgPSBzZXJpb19yYXdfbG9jYXRlKGltaW5vcihpbm9kZSkpKSkgewogCQlyZXR2YWwgPSAtRU5PREVWOwpAQCAtMTA4LDYgKzExMCw4IEBACiAKIG91dDoKIAltdXRleF91bmxvY2soJnNlcmlvX3Jhd19tdXRleCk7CitvdXRfYmtsOgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RhYmxldC9ndGNvLmMgYi9kcml2ZXJzL2lucHV0L3RhYmxldC9ndGNvLmMKaW5kZXggYzVhODY2MS4uMWU3NDhlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90YWJsZXQvZ3Rjby5jCisrKyBiL2RyaXZlcnMvaW5wdXQvdGFibGV0L2d0Y28uYwpAQCAtODMwLDcgKzgzMCw3IEBACiAJc3RydWN0IGd0Y28gICAgICAgICAgICAgKmd0Y287CiAJc3RydWN0IGlucHV0X2RldiAgICAgICAgKmlucHV0X2RldjsKIAlzdHJ1Y3QgaGlkX2Rlc2NyaXB0b3IgICAqaGlkX2Rlc2M7Ci0JY2hhciAgICAgICAgICAgICAgICAgICAgKnJlcG9ydCA9IE5VTEw7CisJY2hhciAgICAgICAgICAgICAgICAgICAgKnJlcG9ydDsKIAlpbnQgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSAwLCByZXRyeTsKIAlpbnQJCQllcnJvcjsKIAlzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmVuZHBvaW50OwpAQCAtOTE2LDEyICs5MTYsMTYgQEAKIAkJCQkJIGxlMTZfdG9fY3B1KGhpZF9kZXNjLT53RGVzY3JpcHRvckxlbmd0aCksCiAJCQkJCSA1MDAwKTsgLyogNSBzZWNzICovCiAKLQkJaWYgKHJlc3VsdCA9PSBsZTE2X3RvX2NwdShoaWRfZGVzYy0+d0Rlc2NyaXB0b3JMZW5ndGgpKQorCQlkYmcoInVzYl9jb250cm9sX21zZyByZXN1bHQ6ICVkIiwgcmVzdWx0KTsKKwkJaWYgKHJlc3VsdCA9PSBsZTE2X3RvX2NwdShoaWRfZGVzYy0+d0Rlc2NyaXB0b3JMZW5ndGgpKSB7CisJCQlwYXJzZV9oaWRfcmVwb3J0X2Rlc2NyaXB0b3IoZ3RjbywgcmVwb3J0LCByZXN1bHQpOwogCQkJYnJlYWs7CisJCX0KIAl9CiAKKwlrZnJlZShyZXBvcnQpOworCiAJLyogSWYgd2UgZGlkbid0IGdldCB0aGUgcmVwb3J0LCBmYWlsICovCi0JZGJnKCJ1c2JfY29udHJvbF9tc2cgcmVzdWx0OiA6JWQiLCByZXN1bHQpOwogCWlmIChyZXN1bHQgIT0gbGUxNl90b19jcHUoaGlkX2Rlc2MtPndEZXNjcmlwdG9yTGVuZ3RoKSkgewogCQllcnIoIkZhaWxlZCB0byBnZXQgSElEIFJlcG9ydCBEZXNjcmlwdG9yIG9mIHNpemU6ICVkIiwKIAkJICAgIGhpZF9kZXNjLT53RGVzY3JpcHRvckxlbmd0aCk7CkBAIC05MjksMTIgKzkzMyw2IEBACiAJCWdvdG8gZXJyX2ZyZWVfdXJiOwogCX0KIAotCS8qIE5vdyB3ZSBwYXJzZSB0aGUgcmVwb3J0ICovCi0JcGFyc2VfaGlkX3JlcG9ydF9kZXNjcmlwdG9yKGd0Y28sIHJlcG9ydCwgcmVzdWx0KTsKLQotCS8qIE5vdyB3ZSBkZWxldGUgaXQgKi8KLQlrZnJlZShyZXBvcnQpOwotCiAJLyogQ3JlYXRlIGEgZGV2aWNlIGZpbGUgbm9kZSAqLwogCXVzYl9tYWtlX3BhdGgoZ3Rjby0+dXNiZGV2LCBndGNvLT51c2JwYXRoLCBzaXplb2YoZ3Rjby0+dXNicGF0aCkpOwogCXN0cmxjYXQoZ3Rjby0+dXNicGF0aCwgIi9pbnB1dDAiLCBzaXplb2YoZ3Rjby0+dXNicGF0aCkpOwpAQCAtOTg4LDcgKzk4Niw2IEBACiAJdXNiX2J1ZmZlcl9mcmVlKGd0Y28tPnVzYmRldiwgUkVQT1JUX01BWF9TSVpFLAogCQkJZ3Rjby0+YnVmZmVyLCBndGNvLT5idWZfZG1hKTsKICBlcnJfZnJlZV9kZXZzOgotCWtmcmVlKHJlcG9ydCk7CiAJaW5wdXRfZnJlZV9kZXZpY2UoaW5wdXRfZGV2KTsKIAlrZnJlZShndGNvKTsKIAlyZXR1cm4gZXJyb3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dtOTcxMy5jIGIvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi93bTk3MTMuYwppbmRleCAwMTI3OGJkLi44Mzg0NTg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dtOTcxMy5jCisrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vd205NzEzLmMKQEAgLTg1LDYgKzg1LDE1IEBACiBNT0RVTEVfUEFSTV9ERVNDKGRlbGF5LCAiU2V0IGFkYyBzYW1wbGUgZGVsYXkuIik7CiAKIC8qCisgKiBTZXQgZml2ZV93aXJlID0gMSB0byB1c2UgYSA1IHdpcmUgdG91Y2hzY3JlZW4uCisgKgorICogTk9URTogRml2ZSB3aXJlIG1vZGUgZG9lcyBub3QgYWxsb3cgZm9yIHJlYWRiYWNrIG9mIHByZXNzdXJlLgorICovCitzdGF0aWMgaW50IGZpdmVfd2lyZTsKK21vZHVsZV9wYXJhbShmaXZlX3dpcmUsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKGZpdmVfd2lyZSwgIlNldCB0byAnMScgdG8gdXNlIDUtd2lyZSB0b3VjaHNjcmVlbi4iKTsKKworLyoKICAqIFNldCBhZGMgbWFzayBmdW5jdGlvbi4KICAqCiAgKiBTb3VyY2VzIG9mIGdsaXRjaCBub2lzZSwgc3VjaCBhcyBzaWduYWxzIGRyaXZpbmcgYW4gTENEIGRpc3BsYXksIG1heSBmZWVkCkBAIC0xNjIsNiArMTcxLDE5IEBACiAJCQkgNjQwMDAgLyBycHUpOwogCX0KIAorCS8qIEZpdmUgd2lyZSBwYW5lbD8gKi8KKwlpZiAoZml2ZV93aXJlKSB7CisJCWRpZzMgfD0gV005NzEzXzQ1VzsKKwkJZGV2X2luZm8od20tPmRldiwgInNldHRpbmcgNS13aXJlIHRvdWNoc2NyZWVuIG1vZGUuIik7CisKKwkJaWYgKHBpbCkgeworCQkJZGV2X3dhcm4od20tPmRldiwKKwkJCQkgIlByZXNzdXJlIG1lYXN1cmVtZW50IG5vdCBzdXBwb3J0ZWQgaW4gNSAiCisJCQkJICJ3aXJlIG1vZGUsIGRpc2FibGluZ1xuIik7CisJCQlwaWwgPSAwOworCQl9CisJfQorCiAJLyogdG91Y2hwYW5lbCBwcmVzc3VyZSAqLwogCWlmIChwaWwgPT0gMikgewogCQlkaWczIHw9IFdNOTcxMl9QSUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dtOTd4eC1jb3JlLmMgYi9kcml2ZXJzL2lucHV0L3RvdWNoc2NyZWVuL3dtOTd4eC1jb3JlLmMKaW5kZXggZTljN2VhNC4uY2RjMjRhZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC90b3VjaHNjcmVlbi93bTk3eHgtY29yZS5jCisrKyBiL2RyaXZlcnMvaW5wdXQvdG91Y2hzY3JlZW4vd205N3h4LWNvcmUuYwpAQCAtNjA4LDYgKzYwOCwxNyBAQAogCQlnb3RvIGFsbG9jX2VycjsKIAl9CiAKKwkvKiBzZXQgdXAgcGh5c2ljYWwgY2hhcmFjdGVyaXN0aWNzICovCisJd20tPmNvZGVjLT5waHlfaW5pdCh3bSk7CisKKwkvKiBsb2FkIGdwaW8gY2FjaGUgKi8KKwl3bS0+Z3Bpb1swXSA9IHdtOTd4eF9yZWdfcmVhZCh3bSwgQUM5N19HUElPX0NGRyk7CisJd20tPmdwaW9bMV0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfR1BJT19QT0xBUklUWSk7CisJd20tPmdwaW9bMl0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfR1BJT19TVElDS1kpOworCXdtLT5ncGlvWzNdID0gd205N3h4X3JlZ19yZWFkKHdtLCBBQzk3X0dQSU9fV0FLRVVQKTsKKwl3bS0+Z3Bpb1s0XSA9IHdtOTd4eF9yZWdfcmVhZCh3bSwgQUM5N19HUElPX1NUQVRVUyk7CisJd20tPmdwaW9bNV0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfTUlTQ19BRkUpOworCiAJd20tPmlucHV0X2RldiA9IGlucHV0X2FsbG9jYXRlX2RldmljZSgpOwogCWlmICh3bS0+aW5wdXRfZGV2ID09IE5VTEwpIHsKIAkJcmV0ID0gLUVOT01FTTsKQEAgLTYxNiw2ICs2MjcsNyBAQAogCiAJLyogc2V0IHVwIHRvdWNoIGNvbmZpZ3VyYXRpb24gKi8KIAl3bS0+aW5wdXRfZGV2LT5uYW1lID0gIndtOTd4eCB0b3VjaHNjcmVlbiI7CisJd20tPmlucHV0X2Rldi0+cGh5cyA9ICJ3bTk3eHgiOwogCXdtLT5pbnB1dF9kZXYtPm9wZW4gPSB3bTk3eHhfdHNfaW5wdXRfb3BlbjsKIAl3bS0+aW5wdXRfZGV2LT5jbG9zZSA9IHdtOTd4eF90c19pbnB1dF9jbG9zZTsKIAlzZXRfYml0KEVWX0FCUywgd20tPmlucHV0X2Rldi0+ZXZiaXQpOwpAQCAtNjM0LDE3ICs2NDYsNiBAQAogCWlmIChyZXQgPCAwKQogCQlnb3RvIGRldl9hbGxvY19lcnI7CiAKLQkvKiBzZXQgdXAgcGh5c2ljYWwgY2hhcmFjdGVyaXN0aWNzICovCi0Jd20tPmNvZGVjLT5waHlfaW5pdCh3bSk7Ci0KLQkvKiBsb2FkIGdwaW8gY2FjaGUgKi8KLQl3bS0+Z3Bpb1swXSA9IHdtOTd4eF9yZWdfcmVhZCh3bSwgQUM5N19HUElPX0NGRyk7Ci0Jd20tPmdwaW9bMV0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfR1BJT19QT0xBUklUWSk7Ci0Jd20tPmdwaW9bMl0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfR1BJT19TVElDS1kpOwotCXdtLT5ncGlvWzNdID0gd205N3h4X3JlZ19yZWFkKHdtLCBBQzk3X0dQSU9fV0FLRVVQKTsKLQl3bS0+Z3Bpb1s0XSA9IHdtOTd4eF9yZWdfcmVhZCh3bSwgQUM5N19HUElPX1NUQVRVUyk7Ci0Jd20tPmdwaW9bNV0gPSB3bTk3eHhfcmVnX3JlYWQod20sIEFDOTdfTUlTQ19BRkUpOwotCiAJLyogcmVnaXN0ZXIgb3VyIGJhdHRlcnkgZGV2aWNlICovCiAJd20tPmJhdHRlcnlfZGV2ID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJ3bTk3eHgtYmF0dGVyeSIsIC0xKTsKIAlpZiAoIXdtLT5iYXR0ZXJ5X2RldikgewpAQCAtODAxLDcgKzgwMiw3IEBACiBFWFBPUlRfU1lNQk9MX0dQTCh3bTk3eHhfdW5yZWdpc3Rlcl9tYWNoX29wcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlX2RyaXZlciB3bTk3eHhfZHJpdmVyID0gewotCS5uYW1lID0JCSJhYzk3IiwKKwkubmFtZSA9CQkid205N3h4LXRzIiwKIAkuYnVzID0JCSZhYzk3X2J1c190eXBlLAogCS5vd25lciA9CVRISVNfTU9EVUxFLAogCS5wcm9iZSA9CXdtOTd4eF9wcm9iZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5wdXQveGVuLWtiZGZyb250LmMgYi9kcml2ZXJzL2lucHV0L3hlbi1rYmRmcm9udC5jCmluZGV4IDBmNDdmNDYuLjljZTNiM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5wdXQveGVuLWtiZGZyb250LmMKKysrIGIvZHJpdmVycy9pbnB1dC94ZW4ta2JkZnJvbnQuYwpAQCAtNjYsNiArNjYsOSBAQAogCQljYXNlIFhFTktCRF9UWVBFX01PVElPTjoKIAkJCWlucHV0X3JlcG9ydF9yZWwoZGV2LCBSRUxfWCwgZXZlbnQtPm1vdGlvbi5yZWxfeCk7CiAJCQlpbnB1dF9yZXBvcnRfcmVsKGRldiwgUkVMX1ksIGV2ZW50LT5tb3Rpb24ucmVsX3kpOworCQkJaWYgKGV2ZW50LT5tb3Rpb24ucmVsX3opCisJCQkJaW5wdXRfcmVwb3J0X3JlbChkZXYsIFJFTF9XSEVFTCwKKwkJCQkJCSAtZXZlbnQtPm1vdGlvbi5yZWxfeik7CiAJCQlicmVhazsKIAkJY2FzZSBYRU5LQkRfVFlQRV9LRVk6CiAJCQlkZXYgPSBOVUxMOwpAQCAtODQsNiArODcsOSBAQAogCQljYXNlIFhFTktCRF9UWVBFX1BPUzoKIAkJCWlucHV0X3JlcG9ydF9hYnMoZGV2LCBBQlNfWCwgZXZlbnQtPnBvcy5hYnNfeCk7CiAJCQlpbnB1dF9yZXBvcnRfYWJzKGRldiwgQUJTX1ksIGV2ZW50LT5wb3MuYWJzX3kpOworCQkJaWYgKGV2ZW50LT5wb3MucmVsX3opCisJCQkJaW5wdXRfcmVwb3J0X3JlbChkZXYsIFJFTF9XSEVFTCwKKwkJCQkJCSAtZXZlbnQtPnBvcy5yZWxfeik7CiAJCQlicmVhazsKIAkJfQogCQlpZiAoZGV2KQpAQCAtMTUyLDcgKzE1OCw3IEBACiAJcHRyLT5ldmJpdFswXSA9IEJJVChFVl9LRVkpIHwgQklUKEVWX1JFTCkgfCBCSVQoRVZfQUJTKTsKIAlmb3IgKGkgPSBCVE5fTEVGVDsgaSA8PSBCVE5fVEFTSzsgaSsrKQogCQlzZXRfYml0KGksIHB0ci0+a2V5Yml0KTsKLQlwdHItPnJlbGJpdFswXSA9IEJJVChSRUxfWCkgfCBCSVQoUkVMX1kpOworCXB0ci0+cmVsYml0WzBdID0gQklUKFJFTF9YKSB8IEJJVChSRUxfWSkgfCBCSVQoUkVMX1dIRUVMKTsKIAlpbnB1dF9zZXRfYWJzX3BhcmFtcyhwdHIsIEFCU19YLCAwLCBYRU5GQl9XSURUSCwgMCwgMCk7CiAJaW5wdXRfc2V0X2Fic19wYXJhbXMocHRyLCBBQlNfWSwgMCwgWEVORkJfSEVJR0hULCAwLCAwKTsKIApAQCAtMjk0LDYgKzMwMCwxNiBAQAogCQkgKi8KIAkJaWYgKGRldi0+c3RhdGUgIT0gWGVuYnVzU3RhdGVDb25uZWN0ZWQpCiAJCQlnb3RvIEluaXRXYWl0OyAvKiBubyBJbml0V2FpdCBzZWVuIHlldCwgZnVkZ2UgaXQgKi8KKworCQkvKiBTZXQgaW5wdXQgYWJzIHBhcmFtcyB0byBtYXRjaCBiYWNrZW5kIHNjcmVlbiByZXMgKi8KKwkJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBpbmZvLT54YmRldi0+b3RoZXJlbmQsCisJCQkJICJ3aWR0aCIsICIlZCIsICZ2YWwpID4gMCkKKwkJCWlucHV0X3NldF9hYnNfcGFyYW1zKGluZm8tPnB0ciwgQUJTX1gsIDAsIHZhbCwgMCwgMCk7CisKKwkJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBpbmZvLT54YmRldi0+b3RoZXJlbmQsCisJCQkJICJoZWlnaHQiLCAiJWQiLCAmdmFsKSA+IDApCisJCQlpbnB1dF9zZXRfYWJzX3BhcmFtcyhpbmZvLT5wdHIsIEFCU19ZLCAwLCB2YWwsIDAsIDApOworCiAJCWJyZWFrOwogCiAJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CkBAIC0zMzcsNCArMzUzLDYgQEAKIG1vZHVsZV9pbml0KHhlbmtiZF9pbml0KTsKIG1vZHVsZV9leGl0KHhlbmtiZF9jbGVhbnVwKTsKIAorTU9EVUxFX0RFU0NSSVBUSU9OKCJYZW4gdmlydHVhbCBrZXlib2FyZC9wb2ludGVyIGRldmljZSBmcm9udGVuZCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTKCJ4ZW46dmtiZCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jIGIvZHJpdmVycy9pc2RuL2NhcGkvY2FwaS5jCmluZGV4IDZjYTBiYjkuLjIwOTUxNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9jYXBpL2NhcGkuYworKysgYi9kcml2ZXJzL2lzZG4vY2FwaS9jYXBpLmMKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KICNpZmRlZiBDT05GSUdfSVNETl9DQVBJX01JRERMRVdBUkUKQEAgLTk4MywxMyArOTg0LDE3IEBACiBzdGF0aWMgaW50CiBjYXBpX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJaW50IHJldDsKKwkKKwlsb2NrX2tlcm5lbCgpOwogCWlmIChmaWxlLT5wcml2YXRlX2RhdGEpCi0JCXJldHVybiAtRUVYSVNUOwotCi0JaWYgKChmaWxlLT5wcml2YXRlX2RhdGEgPSBjYXBpZGV2X2FsbG9jKCkpID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwotCi0JcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOworCQlyZXQgPSAtRUVYSVNUOworCWVsc2UgaWYgKChmaWxlLT5wcml2YXRlX2RhdGEgPSBjYXBpZGV2X2FsbG9jKCkpID09IE5VTEwpCisJCXJldCA9IC1FTk9NRU07CisJZWxzZQorCQlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFtbnQuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhbW50LmMKaW5kZXggYzkwOTI4OS4uMWU4NWY3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFtbnQuYworKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YW1udC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAKICNpbmNsdWRlICJwbGF0Zm9ybS5oIgpAQCAtMTI3LDE0ICsxMjgsMTkgQEAKIAogc3RhdGljIGludCBtYWludF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vLCBzdHJ1Y3QgZmlsZSAqZmlsZXApCiB7CisJaW50IHJldDsKKworCWxvY2tfa2VybmVsKCk7CiAJLyogb25seSBvbmUgb3BlbiBpcyBhbGxvd2VkLCBzbyB3ZSB0ZXN0CiAJICAgaXQgYXRvbWljYWxseSAqLwogCWlmICh0ZXN0X2FuZF9zZXRfYml0KDAsICZvcGVuZWQpKQotCQlyZXR1cm4gKC1FQlVTWSk7Ci0KLQlmaWxlcC0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKLQotCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlubywgZmlsZXApOworCQlyZXQgPSAtRUJVU1k7CisJZWxzZSB7CisJCWZpbGVwLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCQlyZXQgPSBub25zZWVrYWJsZV9vcGVuKGlubywgZmlsZXApOworCX0KKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBtYWludF9jbG9zZShzdHJ1Y3QgaW5vZGUgKmlubywgc3RydWN0IGZpbGUgKmZpbGVwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzaS5jIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzaS5jCmluZGV4IDc4ZjE0MWUuLmY0OTY5ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc2kuYworKysgYi9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNpLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogI2luY2x1ZGUgInBsYXRmb3JtLmgiCkBAIC00MDAsNiArNDAxLDcgQEAKIAogc3RhdGljIGludCB1bV9pZGlfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAoMCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc21haW4uYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc21haW4uYwppbmRleCA1ZmNiZGNjLi5mYmJjYjI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNtYWluLmMKKysrIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzbWFpbi5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgInBsYXRmb3JtLmgiCiAjdW5kZWYgSURfTUFTSwpAQCAtNTgwLDYgKzU4MSw3IEBACiAgKi8KIHN0YXRpYyBpbnQgZGl2YXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAoMCk7CiB9CiAKQEAgLTgwNiw3ICs4MDgsNiBAQAogCiAJaWYgKCFjcmVhdGVfZGl2YXNfcHJvYygpKSB7CiAjaWZkZWYgTU9EVUxFCi0JCXJlbW92ZV9kaXZhc19wcm9jKCk7CiAJCWRpdmFzX3VucmVnaXN0ZXJfY2hyZGV2KCk7CiAJCWRpdmFzZnVuY19leGl0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc3Byb2MuYyBiL2RyaXZlcnMvaXNkbi9oYXJkd2FyZS9laWNvbi9kaXZhc3Byb2MuYwppbmRleCBmYWU4OTU4Li4wNDA4MjcyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaGFyZHdhcmUvZWljb24vZGl2YXNwcm9jLmMKKysrIGIvZHJpdmVycy9pc2RuL2hhcmR3YXJlL2VpY29uL2RpdmFzcHJvYy5jCkBAIC0xMjUsOCArMTI1LDggQEAKIAogaW50IGNyZWF0ZV9kaXZhc19wcm9jKHZvaWQpCiB7Ci0JcHJvY19jcmVhdGUoZGl2YXNfcHJvY19uYW1lLCBTX0lGUkVHIHwgU19JUlVHTywgcHJvY19uZXRfZWljb24sCi0JCSAgICAmZGl2YXNfZm9wcyk7CisJZGl2YXNfcHJvY19lbnRyeSA9IHByb2NfY3JlYXRlKGRpdmFzX3Byb2NfbmFtZSwgU19JRlJFRyB8IFNfSVJVR08sCisJCQkJCXByb2NfbmV0X2VpY29uLCAmZGl2YXNfZm9wcyk7CiAJaWYgKCFkaXZhc19wcm9jX2VudHJ5KQogCQlyZXR1cm4gKDApOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2lzZG4vaHlzZG4vaHljYXBpLmMgYi9kcml2ZXJzL2lzZG4vaHlzZG4vaHljYXBpLmMKaW5kZXggZDM5OTlhOC4uNTNmNmFkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pc2RuL2h5c2RuL2h5Y2FwaS5jCisrKyBiL2RyaXZlcnMvaXNkbi9oeXNkbi9oeWNhcGkuYwpAQCAtNDYyLDExICs0NjIsMTEgQEAKIAkJZGVmYXVsdDogcyA9ICI/Pz8iOyBicmVhazsKIAl9CiAJbGVuICs9IHNwcmludGYocGFnZStsZW4sICIlLTE2cyAlc1xuIiwgInR5cGUiLCBzKTsKLQlpZiAoKHMgPSBjaW5mby0+dmVyc2lvbltWRVJfRFJJVkVSXSkgIT0gMCkKKwlpZiAoKHMgPSBjaW5mby0+dmVyc2lvbltWRVJfRFJJVkVSXSkgIT0gTlVMTCkKIAkJbGVuICs9IHNwcmludGYocGFnZStsZW4sICIlLTE2cyAlc1xuIiwgInZlcl9kcml2ZXIiLCBzKTsKLQlpZiAoKHMgPSBjaW5mby0+dmVyc2lvbltWRVJfQ0FSRFRZUEVdKSAhPSAwKQorCWlmICgocyA9IGNpbmZvLT52ZXJzaW9uW1ZFUl9DQVJEVFlQRV0pICE9IE5VTEwpCiAJCWxlbiArPSBzcHJpbnRmKHBhZ2UrbGVuLCAiJS0xNnMgJXNcbiIsICJ2ZXJfY2FyZHR5cGUiLCBzKTsKLQlpZiAoKHMgPSBjaW5mby0+dmVyc2lvbltWRVJfU0VSSUFMXSkgIT0gMCkKKwlpZiAoKHMgPSBjaW5mby0+dmVyc2lvbltWRVJfU0VSSUFMXSkgIT0gTlVMTCkKIAkJbGVuICs9IHNwcmludGYocGFnZStsZW4sICIlLTE2cyAlc1xuIiwgInZlcl9zZXJpYWwiLCBzKTsKICAgICAKIAlsZW4gKz0gc3ByaW50ZihwYWdlK2xlbiwgIiUtMTZzICVzXG4iLCAiY2FyZG5hbWUiLCBjaW5mby0+Y2FyZG5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL2h5c2RuL2h5c2RuX3Byb2Njb25mLmMgYi9kcml2ZXJzL2lzZG4vaHlzZG4vaHlzZG5fcHJvY2NvbmYuYwppbmRleCAxNTkwNmQwLi40ODQyOTliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaHlzZG4vaHlzZG5fcHJvY2NvbmYuYworKysgYi9kcml2ZXJzL2lzZG4vaHlzZG4vaHlzZG5fcHJvY2NvbmYuYwpAQCAtMjA3LDMwICsyMDcsMTcgQEAKIC8qIHJlYWQgY29uZiBmaWxlIC0+IG91dHB1dCBjYXJkIGluZm8gZGF0YSAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiBzdGF0aWMgc3NpemVfdAotaHlzZG5fY29uZl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqIG9mZikKK2h5c2RuX2NvbmZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKm9mZikKIHsKIAljaGFyICpjcDsKLQlpbnQgaTsKIAotCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7Ci0JCWlmICghKGNwID0gZmlsZS0+cHJpdmF0ZV9kYXRhKSkKLQkJCXJldHVybiAoLUVGQVVMVCk7CS8qIHNob3VsZCBuZXZlciBoYXBwZW4gKi8KLQkJaSA9IHN0cmxlbihjcCk7CS8qIGdldCB0b3RhbCBzdHJpbmcgbGVuZ3RoICovCi0JCWlmICgqb2ZmIDwgaSkgewotCQkJLyogc3RpbGwgYnl0ZXMgdG8gdHJhbnNmZXIgKi8KLQkJCWNwICs9ICpvZmY7CS8qIHBvaW50IHRvIGRlc2lyZWQgZGF0YSBvZmZzZXQgKi8KLQkJCWkgLT0gKm9mZjsJLyogcmVtYWluaW5nIGxlbmd0aCAqLwotCQkJaWYgKGkgPiBjb3VudCkKLQkJCQlpID0gY291bnQ7CS8qIGxpbWl0IGxlbmd0aCB0byB0cmFuc2ZlciAqLwotCQkJaWYgKGNvcHlfdG9fdXNlcihidWYsIGNwLCBpKSkKLQkJCQlyZXR1cm4gKC1FRkFVTFQpOwkvKiBjb3B5IGVycm9yICovCi0JCQkqb2ZmICs9IGk7CS8qIGFkanVzdCBvZmZzZXQgKi8KLQkJfSBlbHNlCi0JCQlyZXR1cm4gKDApOwotCX0gZWxzZQotCQlyZXR1cm4gKC1FUEVSTSk7CS8qIG5vIHBlcm1pc3Npb24gdG8gcmVhZCAqLworCWlmICghKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpKQorCQlyZXR1cm4gLUVQRVJNOwkvKiBubyBwZXJtaXNzaW9uIHRvIHJlYWQgKi8KIAotCXJldHVybiAoaSk7CisJaWYgKCEoY3AgPSBmaWxlLT5wcml2YXRlX2RhdGEpKQorCQlyZXR1cm4gLUVGQVVMVDsJLyogc2hvdWxkIG5ldmVyIGhhcHBlbiAqLworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKGJ1ZiwgY291bnQsIG9mZiwgY3AsIHN0cmxlbihjcCkpOwogfQkJCQkvKiBoeXNkbl9jb25mX3JlYWQgKi8KIAogLyoqKioqKioqKioqKioqKioqKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9jb21tb24uYyBiL2RyaXZlcnMvaXNkbi9pNGwvaXNkbl9jb21tb24uYwppbmRleCAwZjNjNjZkLi43MTg4YzU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vaTRsL2lzZG5fY29tbW9uLmMKKysrIGIvZHJpdmVycy9pc2RuL2k0bC9pc2RuX2NvbW1vbi5jCkBAIC0xNzMyLDcgKzE3MzIsNyBAQAogCWludCBjaGlkeDsKIAlpbnQgcmV0dmFsID0gLUVOT0RFVjsKIAotCisJbG9ja19rZXJuZWwoKTsKIAlpZiAobWlub3IgPT0gSVNETl9NSU5PUl9TVEFUVVMpIHsKIAkJaW5mb3N0cnVjdCAqcDsKIApAQCAtMTc4Myw2ICsxNzgzLDcgQEAKICNlbmRpZgogIG91dDoKIAlub25zZWVrYWJsZV9vcGVuKGlubywgZmlsZXApOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0dmFsOwogfQogCkBAIC0xOTc3LDggKzE5NzgsMTAgQEAKIAlpZiAoIXNrYikKIAkJcmV0dXJuIC1FTk9NRU07CiAJc2tiX3Jlc2VydmUoc2tiLCBobCk7Ci0JaWYgKGNvcHlfZnJvbV91c2VyKHNrYl9wdXQoc2tiLCBsZW4pLCBidWYsIGxlbikpCisJaWYgKGNvcHlfZnJvbV91c2VyKHNrYl9wdXQoc2tiLCBsZW4pLCBidWYsIGxlbikpIHsKKwkJZGV2X2tmcmVlX3NrYihza2IpOwogCQlyZXR1cm4gLUVGQVVMVDsKKwl9CiAJcmV0ID0gZGV2LT5kcnZbZHJ2aWR4XS0+aW50ZXJmYWNlLT53cml0ZWJ1Zl9za2IoZHJ2aWR4LCBjaGFuLCAxLCBza2IpOwogCWlmIChyZXQgPD0gMCkKIAkJZGV2X2tmcmVlX3NrYihza2IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pc2RuL3NjL2lvY3RsLmMgYi9kcml2ZXJzL2lzZG4vc2MvaW9jdGwuYwppbmRleCA3ODE3ZDIyLi4xMDgxMDkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2lzZG4vc2MvaW9jdGwuYworKysgYi9kcml2ZXJzL2lzZG4vc2MvaW9jdGwuYwpAQCAtMjI2LDYgKzIyNiw3IEBACiAJCSAqLwogCQlpZiAoY29weV9mcm9tX3VzZXIoc3BpZCwgZGF0YS0+ZGF0YXB0ciwgU0NJT0NfU1BJRFNJWkUpKSB7CiAJCQlrZnJlZShyY3Ztc2cpOworCQkJa2ZyZWUoc3BpZCk7CiAJCQlyZXR1cm4gLUVGQVVMVDsKIAkJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xndWVzdC9LY29uZmlnIGIvZHJpdmVycy9sZ3Vlc3QvS2NvbmZpZwppbmRleCA2YjhkYmI5Li43NmYyYjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC9LY29uZmlnCisrKyBiL2RyaXZlcnMvbGd1ZXN0L0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgTEdVRVNUCiAJdHJpc3RhdGUgIkxpbnV4IGh5cGVydmlzb3IgZXhhbXBsZSBjb2RlIgotCWRlcGVuZHMgb24gWDg2XzMyICYmIEVYUEVSSU1FTlRBTCAmJiAhWDg2X1BBRSAmJiBGVVRFWCAmJiAhKFg4Nl9WSVNXUyB8fCBYODZfVk9ZQUdFUikKKwlkZXBlbmRzIG9uIFg4Nl8zMiAmJiBFWFBFUklNRU5UQUwgJiYgIVg4Nl9QQUUgJiYgRlVURVggJiYgIVg4Nl9WT1lBR0VSCiAJc2VsZWN0IEhWQ19EUklWRVIKIAktLS1oZWxwLS0tCiAJICBUaGlzIGlzIGEgdmVyeSBzaW1wbGUgbW9kdWxlIHdoaWNoIGFsbG93cyB5b3UgdG8gcnVuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2xndWVzdC9sZy5oIGIvZHJpdmVycy9sZ3Vlc3QvbGcuaAppbmRleCAwMDViZDA0Li41ZmFlZmVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2xndWVzdC9sZy5oCisrKyBiL2RyaXZlcnMvbGd1ZXN0L2xnLmgKQEAgLTEzNiw3ICsxMzYsNiBAQAogICogZmlyc3Qgc3RlcCBpbiB0aGUgbWlncmF0aW9uIHRvIHRoZSBrZXJuZWwgdHlwZXMuICBwdGVfcGZuIGlzIGFscmVhZHkgZGVmaW5lZAogICogaW4gdGhlIGtlcm5lbC4gKi8KICNkZWZpbmUgcGdkX2ZsYWdzKHgpCShwZ2RfdmFsKHgpICYgflBBR0VfTUFTSykKLSNkZWZpbmUgcHRlX2ZsYWdzKHgpCShwdGVfdmFsKHgpICYgflBBR0VfTUFTSykKICNkZWZpbmUgcGdkX3Bmbih4KQkocGdkX3ZhbCh4KSA+PiBQQUdFX1NISUZUKQogCiAvKiBpbnRlcnJ1cHRzX2FuZF90cmFwcy5jOiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZ3Vlc3QvbGd1ZXN0X2RldmljZS5jIGIvZHJpdmVycy9sZ3Vlc3QvbGd1ZXN0X2RldmljZS5jCmluZGV4IDgwODAyNDkuLjFhOGRlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbGd1ZXN0L2xndWVzdF9kZXZpY2UuYworKysgYi9kcml2ZXJzL2xndWVzdC9sZ3Vlc3RfZGV2aWNlLmMKQEAgLTIwLDE0ICsyMCwxMSBAQAogLyogVGhlIHBvaW50ZXIgdG8gb3VyIChwYWdlKSBvZiBkZXZpY2UgZGVzY3JpcHRpb25zLiAqLwogc3RhdGljIHZvaWQgKmxndWVzdF9kZXZpY2VzOwogCi0vKiBVbmlxdWUgbnVtYmVyaW5nIGZvciBsZ3Vlc3QgZGV2aWNlcy4gKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgZGV2X2luZGV4OwotCiAvKiBGb3IgR3Vlc3RzLCBkZXZpY2UgbWVtb3J5IGNhbiBiZSB1c2VkIGFzIG5vcm1hbCBtZW1vcnksIHNvIHdlIGNhc3QgYXdheSB0aGUKICAqIF9faW9tZW0gdG8gcXVpZXRlbiBzcGFyc2UuICovCiBzdGF0aWMgaW5saW5lIHZvaWQgKmxndWVzdF9tYXAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgcGFnZXMpCiB7Ci0JcmV0dXJuIChfX2ZvcmNlIHZvaWQgKilpb3JlbWFwKHBoeXNfYWRkciwgUEFHRV9TSVpFKnBhZ2VzKTsKKwlyZXR1cm4gKF9fZm9yY2Ugdm9pZCAqKWlvcmVtYXBfY2FjaGUocGh5c19hZGRyLCBQQUdFX1NJWkUqcGFnZXMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgbGd1ZXN0X3VubWFwKHZvaWQgKmFkZHIpCkBAIC0zMjUsOCArMzIyLDEwIEBACiAgKiBBcyBBbmRyZXcgVHJpZGdlbGwgc2F5cywgIlVudGVzdGVkIGNvZGUgaXMgYnVnZ3kgY29kZSIuCiAgKgogICogSXQncyB3b3J0aCByZWFkaW5nIHRoaXMgY2FyZWZ1bGx5OiB3ZSBzdGFydCB3aXRoIGEgcG9pbnRlciB0byB0aGUgbmV3IGRldmljZQotICogZGVzY3JpcHRvciBpbiB0aGUgImxndWVzdF9kZXZpY2VzIiBwYWdlLiAqLwotc3RhdGljIHZvaWQgYWRkX2xndWVzdF9kZXZpY2Uoc3RydWN0IGxndWVzdF9kZXZpY2VfZGVzYyAqZCkKKyAqIGRlc2NyaXB0b3IgaW4gdGhlICJsZ3Vlc3RfZGV2aWNlcyIgcGFnZSwgYW5kIHRoZSBvZmZzZXQgaW50byB0aGUgZGV2aWNlCisgKiBkZXNjcmlwdG9yIHBhZ2Ugc28gd2UgY2FuIHVuaXF1ZWx5IGlkZW50aWZ5IGl0IGlmIHRoaW5ncyBnbyBiYWRseSB3cm9uZy4gKi8KK3N0YXRpYyB2b2lkIGFkZF9sZ3Vlc3RfZGV2aWNlKHN0cnVjdCBsZ3Vlc3RfZGV2aWNlX2Rlc2MgKmQsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0KQogewogCXN0cnVjdCBsZ3Vlc3RfZGV2aWNlICpsZGV2OwogCkBAIC0zMzQsMTggKzMzMywxNCBAQAogCSAqIGl0LiAqLwogCWxkZXYgPSBremFsbG9jKHNpemVvZigqbGRldiksIEdGUF9LRVJORUwpOwogCWlmICghbGRldikgewotCQlwcmludGsoS0VSTl9FTUVSRyAiQ2Fubm90IGFsbG9jYXRlIGxndWVzdCBkZXYgJXVcbiIsCi0JCSAgICAgICBkZXZfaW5kZXgrKyk7CisJCXByaW50ayhLRVJOX0VNRVJHICJDYW5ub3QgYWxsb2NhdGUgbGd1ZXN0IGRldiAldSB0eXBlICV1XG4iLAorCQkgICAgICAgb2Zmc2V0LCBkLT50eXBlKTsKIAkJcmV0dXJuOwogCX0KIAogCS8qIFRoaXMgZGV2aWNlcycgcGFyZW50IGlzIHRoZSBsZ3Vlc3QvIGRpci4gKi8KIAlsZGV2LT52ZGV2LmRldi5wYXJlbnQgPSAmbGd1ZXN0X3Jvb3Q7CiAJLyogV2UgaGF2ZSBhIHVuaXF1ZSBkZXZpY2UgaW5kZXggdGhhbmtzIHRvIHRoZSBkZXZfaW5kZXggY291bnRlci4gKi8KLQlsZGV2LT52ZGV2LmluZGV4ID0gZGV2X2luZGV4Kys7Ci0JLyogVGhlIGRldmljZSB0eXBlIGNvbWVzIHN0cmFpZ2h0IGZyb20gdGhlIGRlc2NyaXB0b3IuICBUaGVyZSdzIGFsc28gYQotCSAqIGRldmljZSB2ZW5kb3IgZmllbGQgaW4gdGhlIHZpcnRpb19kZXZpY2Ugc3RydWN0LCB3aGljaCB3ZSBsZWF2ZSBhcwotCSAqIDAuICovCiAJbGRldi0+dmRldi5pZC5kZXZpY2UgPSBkLT50eXBlOwogCS8qIFdlIGhhdmUgYSBzaW1wbGUgc2V0IG9mIHJvdXRpbmVzIGZvciBxdWVyeWluZyB0aGUgZGV2aWNlJ3MKIAkgKiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGFuZCBzZXR0aW5nIGl0cyBzdGF0dXMuICovCkBAIC0zNTcsOCArMzUyLDggQEAKIAkgKiB2aXJ0aW9fZGV2aWNlIGFuZCBjYWxscyBkZXZpY2VfcmVnaXN0ZXIoKS4gIFRoaXMgbWFrZXMgdGhlIGJ1cwogCSAqIGluZnJhc3RydWN0dXJlIGxvb2sgZm9yIGEgbWF0Y2hpbmcgZHJpdmVyLiAqLwogCWlmIChyZWdpc3Rlcl92aXJ0aW9fZGV2aWNlKCZsZGV2LT52ZGV2KSAhPSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGxndWVzdCBkZXZpY2UgJXVcbiIsCi0JCSAgICAgICBsZGV2LT52ZGV2LmluZGV4KTsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIgbGd1ZXN0IGRldiAldSB0eXBlICV1XG4iLAorCQkgICAgICAgb2Zmc2V0LCBkLT50eXBlKTsKIAkJa2ZyZWUobGRldik7CiAJfQogfQpAQCAtMzc5LDcgKzM3NCw3IEBACiAJCQlicmVhazsKIAogCQlwcmludGsoIkRldmljZSBhdCAlaSBoYXMgc2l6ZSAldVxuIiwgaSwgZGVzY19zaXplKGQpKTsKLQkJYWRkX2xndWVzdF9kZXZpY2UoZCk7CisJCWFkZF9sZ3Vlc3RfZGV2aWNlKGQsIGkpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9sZ3Vlc3QveDg2L2NvcmUuYyBiL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3JlLmMKaW5kZXggNTEyNmQ1ZC4uMmU1NTRhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9sZ3Vlc3QveDg2L2NvcmUuYworKysgYi9kcml2ZXJzL2xndWVzdC94ODYvY29yZS5jCkBAIC0xNzYsNyArMTc2LDcgQEAKIAkgKiB3ZSBzZXQgaXQgbm93LCBzbyB3ZSBjYW4gdHJhcCBhbmQgcGFzcyB0aGF0IHRyYXAgdG8gdGhlIEd1ZXN0IGlmIGl0CiAJICogdXNlcyB0aGUgRlBVLiAqLwogCWlmIChjcHUtPnRzKQotCQlsZ3Vlc3Rfc2V0X3RzKCk7CisJCXVubGF6eV9mcHUoY3VycmVudCk7CiAKIAkvKiBTWVNFTlRFUiBpcyBhbiBvcHRpbWl6ZWQgd2F5IG9mIGRvaW5nIHN5c3RlbSBjYWxscy4gIFdlIGNhbid0IGFsbG93CiAJICogaXQgYmVjYXVzZSBpdCBhbHdheXMganVtcHMgdG8gcHJpdmlsZWdlIGxldmVsIDAuICBBIG5vcm1hbCBHdWVzdApAQCAtMTk2LDYgKzE5NiwxMCBAQAogCSAqIHRyYXAgbWFkZSB0aGUgc3dpdGNoZXIgY29kZSBjb21lIGJhY2ssIGFuZCBhbiBlcnJvciBjb2RlIHdoaWNoIHNvbWUKIAkgKiB0cmFwcyBzZXQuICAqLwogCisJIC8qIFJlc3RvcmUgU1lTRU5URVIgaWYgaXQncyBzdXBwb3NlZCB0byBiZSBvbi4gKi8KKwkgaWYgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9TRVApKQorCQl3cm1zcihNU1JfSUEzMl9TWVNFTlRFUl9DUywgX19LRVJORUxfQ1MsIDApOworCiAJLyogSWYgdGhlIEd1ZXN0IHBhZ2UgZmF1bHRlZCwgdGhlbiB0aGUgY3IyIHJlZ2lzdGVyIHdpbGwgdGVsbCB1cyB0aGUKIAkgKiBiYWQgdmlydHVhbCBhZGRyZXNzLiAgV2UgaGF2ZSB0byBncmFiIHRoaXMgbm93LCBiZWNhdXNlIG9uY2Ugd2UKIAkgKiByZS1lbmFibGUgaW50ZXJydXB0cyBhbiBpbnRlcnJ1cHQgY291bGQgZmF1bHQgYW5kIHRodXMgb3ZlcndyaXRlCkBAIC0yMDMsMTMgKzIwNywxMiBAQAogCWlmIChjcHUtPnJlZ3MtPnRyYXBudW0gPT0gMTQpCiAJCWNwdS0+YXJjaC5sYXN0X3BhZ2VmYXVsdCA9IHJlYWRfY3IyKCk7CiAJLyogU2ltaWxhcmx5LCBpZiB3ZSB0b29rIGEgdHJhcCBiZWNhdXNlIHRoZSBHdWVzdCB1c2VkIHRoZSBGUFUsCi0JICogd2UgaGF2ZSB0byByZXN0b3JlIHRoZSBGUFUgaXQgZXhwZWN0cyB0byBzZWUuICovCisJICogd2UgaGF2ZSB0byByZXN0b3JlIHRoZSBGUFUgaXQgZXhwZWN0cyB0byBzZWUuCisJICogbWF0aF9zdGF0ZV9yZXN0b3JlKCkgbWF5IHNsZWVwIGFuZCB3ZSBtYXkgZXZlbiBtb3ZlIG9mZiB0bworCSAqIGEgZGlmZmVyZW50IENQVS4gU28gYWxsIHRoZSBjcml0aWNhbCBzdHVmZiBzaG91bGQgYmUgZG9uZQorCSAqIGJlZm9yZSB0aGlzLiAgKi8KIAllbHNlIGlmIChjcHUtPnJlZ3MtPnRyYXBudW0gPT0gNykKIAkJbWF0aF9zdGF0ZV9yZXN0b3JlKCk7Ci0KLQkvKiBSZXN0b3JlIFNZU0VOVEVSIGlmIGl0J3Mgc3VwcG9zZWQgdG8gYmUgb24uICovCi0JaWYgKGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9TRVApKQotCQl3cm1zcihNU1JfSUEzMl9TWVNFTlRFUl9DUywgX19LRVJORUxfQ1MsIDApOwogfQogCiAvKkg6MTMwIE5vdyB3ZSd2ZSBleGFtaW5lZCB0aGUgaHlwZXJjYWxsIGNvZGU7IG91ciBHdWVzdCBjYW4gbWFrZSByZXF1ZXN0cy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL2FkYi5jIGIvZHJpdmVycy9tYWNpbnRvc2gvYWRiLmMKaW5kZXggZGJhYWQzOS4uNDBjNzBiYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvYWRiLmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvYWRiLmMKQEAgLTY0NCwxMiArNjQ0LDE4IEBACiBzdGF0aWMgaW50IGFkYl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogewogCXN0cnVjdCBhZGJkZXZfc3RhdGUgKnN0YXRlOworCWludCByZXQgPSAwOwogCi0JaWYgKGltaW5vcihpbm9kZSkgPiAwIHx8IGFkYl9jb250cm9sbGVyID09IE5VTEwpCi0JCXJldHVybiAtRU5YSU87CisJbG9ja19rZXJuZWwoKTsKKwlpZiAoaW1pbm9yKGlub2RlKSA+IDAgfHwgYWRiX2NvbnRyb2xsZXIgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5YSU87CisJCWdvdG8gb3V0OworCX0KIAlzdGF0ZSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBhZGJkZXZfc3RhdGUpLCBHRlBfS0VSTkVMKTsKLQlpZiAoc3RhdGUgPT0gMCkKLQkJcmV0dXJuIC1FTk9NRU07CisJaWYgKHN0YXRlID09IDApIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHN0YXRlOwogCXNwaW5fbG9ja19pbml0KCZzdGF0ZS0+bG9jayk7CiAJYXRvbWljX3NldCgmc3RhdGUtPm5fcGVuZGluZywgMCk7CkBAIC02NTcsNyArNjYzLDkgQEAKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzdGF0ZS0+d2FpdF9xdWV1ZSk7CiAJc3RhdGUtPmludXNlID0gMTsKIAotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGFkYl9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvYW5zLWxjZC5jIGIvZHJpdmVycy9tYWNpbnRvc2gvYW5zLWxjZC5jCmluZGV4IDczYzUwYmMuLjZhODIyMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWFjaW50b3NoL2Fucy1sY2QuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9hbnMtbGNkLmMKQEAgLTMsNiArMyw3IEBACiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTExOSw2ICsxMjAsNyBAQAogc3RhdGljIGludAogYW5zbGNkX29wZW4oIHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbGUgKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL21lZGlhYmF5LmMgYi9kcml2ZXJzL21hY2ludG9zaC9tZWRpYWJheS5jCmluZGV4IDgyYWRkMjYuLjgxOGFiYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWFjaW50b3NoL21lZGlhYmF5LmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvbWVkaWFiYXkuYwpAQCAtODQsNyArODQsNyBAQAogCWludAkJCQljZF9pcnE7CiAJaW50CQkJCWNkX3JldHJ5OwogI2VuZGlmCi0jaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JREVfUE1BQykgfHwgZGVmaW5lZChDT05GSUdfTUFDX0ZMT1BQWSkKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lERV9QTUFDKQogCWludCAJCQkJY2RfaW5kZXg7CiAjZW5kaWYKIH07CkBAIC00MTcsNiArNDE3LDcgQEAKIAl9CiB9CiAKKyNpZmRlZiBDT05GSUdfQkxLX0RFVl9JREVfUE1BQwogaW50IGNoZWNrX21lZGlhX2JheShzdHJ1Y3QgZGV2aWNlX25vZGUgKndoaWNoX2JheSwgaW50IHdoYXQpCiB7CiAJaW50CWk7CkBAIC00MzIsNyArNDMzLDYgQEAKIH0KIEVYUE9SVF9TWU1CT0woY2hlY2tfbWVkaWFfYmF5KTsKIAotI2lmZGVmIENPTkZJR19CTEtfREVWX0lERV9QTUFDCiBpbnQgY2hlY2tfbWVkaWFfYmF5X2J5X2Jhc2UodW5zaWduZWQgbG9uZyBiYXNlLCBpbnQgd2hhdCkKIHsKIAlpbnQJaTsKQEAgLTU1Niw3ICs1NTYsOCBAQAogCQkJCXByaW50aygibWVkaWFiYXkgJWQsIHJlZ2lzdGVyaW5nIElERS4uLlxuIiwgaSk7CiAJCQkJcG11X3N1c3BlbmQoKTsKIAkJCQlpZGVfcG9ydF9zY2FuKGJheS0+Y2RfcG9ydCk7Ci0JCQkJYmF5LT5jZF9pbmRleCA9IGJheS0+Y2RfcG9ydC0+aW5kZXg7CisJCQkJaWYgKGJheS0+Y2RfcG9ydC0+cHJlc2VudCkKKwkJCQkJYmF5LT5jZF9pbmRleCA9IGJheS0+Y2RfcG9ydC0+aW5kZXg7CiAJCQkJcG11X3Jlc3VtZSgpOwogCQkJfQogCQkJaWYgKGJheS0+Y2RfaW5kZXggPT0gLTEpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL3NtdS5jIGIvZHJpdmVycy9tYWNpbnRvc2gvc211LmMKaW5kZXggNzdhZDE5Mi4uMzJjYjAyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvc211LmMKKysrIGIvZHJpdmVycy9tYWNpbnRvc2gvc211LmMKQEAgLTE5LDYgKzE5LDcgQEAKICAqICAgIHRoZSB1c2VybGFuZCBpbnRlcmZhY2UKICAqLwogCisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgpAQCAtNDgzLDEyICs0ODQsMTUgQEAKIAogCWlmIChzbXVfY21kYnVmX2FicyA9PSAwKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiU01VOiBDb21tYW5kIGJ1ZmZlciBub3QgYWxsb2NhdGVkICFcbiIpOworCQlvZl9ub2RlX3B1dChucCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCXNtdSA9IGFsbG9jX2Jvb3RtZW0oc2l6ZW9mKHN0cnVjdCBzbXVfZGV2aWNlKSk7Ci0JaWYgKHNtdSA9PSBOVUxMKQorCWlmIChzbXUgPT0gTlVMTCkgeworCQlvZl9ub2RlX3B1dChucCk7CiAJCXJldHVybiAtRU5PTUVNOworCX0KIAltZW1zZXQoc211LCAwLCBzaXplb2YoKnNtdSkpOwogCiAJc3Bpbl9sb2NrX2luaXQoJnNtdS0+bG9jayk7CkBAIC0xMDgzLDEwICsxMDg3LDEyIEBACiAJcHAtPm1vZGUgPSBzbXVfZmlsZV9jb21tYW5kczsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcC0+d2FpdCk7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZzbXVfY2xpc3RfbG9jaywgZmxhZ3MpOwogCWxpc3RfYWRkKCZwcC0+bGlzdCwgJnNtdV9jbGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc211X2NsaXN0X2xvY2ssIGZsYWdzKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcDsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX2FkdDc0NnguYyBiL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX2FkdDc0NnguYwppbmRleCA1NGY0OTQyLi41MzY2ZGM5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvdGhlcm1fYWR0NzQ2eC5jCisrKyBiL2RyaXZlcnMvbWFjaW50b3NoL3RoZXJtX2FkdDc0NnguYwpAQCAtNTYyLDE4ICs1NjIsMjQgQEAKIAkJdGhlcm1fdHlwZSA9IEFEVDc0NjA7CiAJZWxzZSBpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsICJhZHQ3NDY3IikpCiAJCXRoZXJtX3R5cGUgPSBBRFQ3NDY3OwotCWVsc2UKKwllbHNlIHsKKwkJb2Zfbm9kZV9wdXQobnApOwogCQlyZXR1cm4gLUVOT0RFVjsKKwl9CiAKIAlwcm9wID0gb2ZfZ2V0X3Byb3BlcnR5KG5wLCAiaHdzZW5zb3ItcGFyYW1zLXZlcnNpb24iLCBOVUxMKTsKIAlwcmludGsoS0VSTl9JTkZPICJhZHQ3NDZ4OiB2ZXJzaW9uICVkICglc3N1cHBvcnRlZClcbiIsICpwcm9wLAogCQkJICgqcHJvcCA9PSAxKT8iIjoidW4iKTsKLQlpZiAoKnByb3AgIT0gMSkKKwlpZiAoKnByb3AgIT0gMSkgeworCQlvZl9ub2RlX3B1dChucCk7CiAJCXJldHVybiAtRU5PREVWOworCX0KIAogCXByb3AgPSBvZl9nZXRfcHJvcGVydHkobnAsICJyZWciLCBOVUxMKTsKLQlpZiAoIXByb3ApCisJaWYgKCFwcm9wKSB7CisJCW9mX25vZGVfcHV0KG5wKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJLyogbG9vayBmb3IgYnVzIGVpdGhlciBieSBwYXRoIG9yIHVzaW5nICJyZWciICovCiAJaWYgKHN0cnN0cihucC0+ZnVsbF9uYW1lLCAiL2kyYy1idXNAIikgIT0gTlVMTCkgewpAQCAtNjEwLDYgKzYxNiw3IEBACiAJCiAJaWYgKG9mX2RldiA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgcmVnaXN0ZXIgdGVtcGVyYXR1cmVzIGRldmljZSAhXG4iKTsKKwkJb2Zfbm9kZV9wdXQobnApOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJCmRpZmYgLS1naXQgYS9kcml2ZXJzL21hY2ludG9zaC92aWEtcG11LmMgYi9kcml2ZXJzL21hY2ludG9zaC92aWEtcG11LmMKaW5kZXggZDYzNjVhOS4uZDUyNGRjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tYWNpbnRvc2gvdmlhLXBtdS5jCisrKyBiL2RyaXZlcnMvbWFjaW50b3NoL3ZpYS1wbXUuYwpAQCAtMTgsNiArMTgsNyBAQAogICoKICAqLwogI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtMjA0Nyw2ICsyMDQ4LDcgQEAKIAlwcC0+cmJfZ2V0ID0gcHAtPnJiX3B1dCA9IDA7CiAJc3Bpbl9sb2NrX2luaXQoJnBwLT5sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZwcC0+d2FpdCk7CisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmYWxsX3B2dF9sb2NrLCBmbGFncyk7CiAjaWYgZGVmaW5lZChDT05GSUdfSU5QVVRfQURCSElEKSAmJiBkZWZpbmVkKENPTkZJR19QTUFDX0JBQ0tMSUdIVCkKIAlwcC0+YmFja2xpZ2h0X2xvY2tlciA9IDA7CkBAIC0yMDU0LDYgKzIwNTYsNyBAQAogCWxpc3RfYWRkKCZwcC0+bGlzdCwgJmFsbF9wbXVfcHZ0KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZhbGxfcHZ0X2xvY2ssIGZsYWdzKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBwcDsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvYml0bWFwLmMgYi9kcml2ZXJzL21kL2JpdG1hcC5jCmluZGV4IGMxNGRhY2QuLmIyNjkyN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvYml0bWFwLmMKKysrIGIvZHJpdmVycy9tZC9iaXRtYXAuYwpAQCAtMjAzLDE3ICsyMDMsNiBAQAogICogYml0bWFwIGZpbGUgaGFuZGxpbmcgLSByZWFkIGFuZCB3cml0ZSB0aGUgYml0bWFwIGZpbGUgYW5kIGl0cyBzdXBlcmJsb2NrCiAgKi8KIAotLyogY29weSB0aGUgcGF0aG5hbWUgb2YgYSBmaWxlIHRvIGEgYnVmZmVyICovCi1jaGFyICpmaWxlX3BhdGgoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQotewotCWlmICghYnVmKQotCQlyZXR1cm4gTlVMTDsKLQotCWJ1ZiA9IGRfcGF0aCgmZmlsZS0+Zl9wYXRoLCBidWYsIGNvdW50KTsKLQotCXJldHVybiBJU19FUlIoYnVmKSA/IE5VTEwgOiBidWY7Ci19Ci0KIC8qCiAgKiBiYXNpYyBwYWdlIEkvTyBvcGVyYXRpb25zCiAgKi8KQEAgLTcyMSwxMSArNzEwLDEzIEBACiAJCWlmIChiaXRtYXAtPmZpbGUpIHsKIAkJCXBhdGggPSBrbWFsbG9jKFBBR0VfU0laRSwgR0ZQX0tFUk5FTCk7CiAJCQlpZiAocGF0aCkKLQkJCQlwdHIgPSBmaWxlX3BhdGgoYml0bWFwLT5maWxlLCBwYXRoLCBQQUdFX1NJWkUpOworCQkJCXB0ciA9IGRfcGF0aCgmYml0bWFwLT5maWxlLT5mX3BhdGgsIHBhdGgsCisJCQkJCSAgICAgUEFHRV9TSVpFKTsKKwogCiAJCQlwcmludGsoS0VSTl9BTEVSVAogCQkJICAgICAgIiVzOiBraWNraW5nIGZhaWxlZCBiaXRtYXAgZmlsZSAlcyBmcm9tIGFycmF5IVxuIiwKLQkJCSAgICAgIGJtbmFtZShiaXRtYXApLCBwdHIgPyBwdHIgOiAiIik7CisJCQkgICAgICBibW5hbWUoYml0bWFwKSwgSVNfRVJSKHB0cikgPyAiIiA6IHB0cik7CiAKIAkJCWtmcmVlKHBhdGgpOwogCQl9IGVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tY3J5cHQuYyBiL2RyaXZlcnMvbWQvZG0tY3J5cHQuYwppbmRleCA4MzVkZWYxLi5hYjZhNjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2RtLWNyeXB0LmMKKysrIGIvZHJpdmVycy9tZC9kbS1jcnlwdC5jCkBAIC00MzIsNiArNDMyLDcgQEAKIAkJY2FzZSAwOgogCQkJYXRvbWljX2RlYygmY3R4LT5wZW5kaW5nKTsKIAkJCWN0eC0+c2VjdG9yKys7CisJCQljb25kX3Jlc2NoZWQoKTsKIAkJCWNvbnRpbnVlOwogCiAJCS8qIGVycm9yICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2xpbmVhci5jIGIvZHJpdmVycy9tZC9saW5lYXIuYwppbmRleCAxMDc0ODI0Li42YTg2NmQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21kL2xpbmVhci5jCisrKyBiL2RyaXZlcnMvbWQvbGluZWFyLmMKQEAgLTUwLDE3ICs1MCwxOSBAQAogLyoqCiAgKglsaW5lYXJfbWVyZ2VhYmxlX2J2ZWMgLS0gdGVsbCBiaW8gbGF5ZXIgaWYgdHdvIHJlcXVlc3RzIGNhbiBiZSBtZXJnZWQKICAqCUBxOiByZXF1ZXN0IHF1ZXVlCi0gKglAYmlvOiB0aGUgYnVmZmVyIGhlYWQgdGhhdCdzIGJlZW4gYnVpbHQgdXAgc28gZmFyCisgKglAYnZtOiBwcm9wZXJ0aWVzIG9mIG5ldyBiaW8KICAqCUBiaW92ZWM6IHRoZSByZXF1ZXN0IHRoYXQgY291bGQgYmUgbWVyZ2VkIHRvIGl0LgogICoKICAqCVJldHVybiBhbW91bnQgb2YgYnl0ZXMgd2UgY2FuIHRha2UgYXQgdGhpcyBvZmZzZXQKICAqLwotc3RhdGljIGludCBsaW5lYXJfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKK3N0YXRpYyBpbnQgbGluZWFyX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCSBzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhICpidm0sCisJCQkJIHN0cnVjdCBiaW9fdmVjICpiaW92ZWMpCiB7CiAJbWRkZXZfdCAqbWRkZXYgPSBxLT5xdWV1ZWRhdGE7CiAJZGV2X2luZm9fdCAqZGV2MDsKLQl1bnNpZ25lZCBsb25nIG1heHNlY3RvcnMsIGJpb19zZWN0b3JzID0gYmlvLT5iaV9zaXplID4+IDk7Ci0Jc2VjdG9yX3Qgc2VjdG9yID0gYmlvLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChiaW8tPmJpX2JkZXYpOworCXVuc2lnbmVkIGxvbmcgbWF4c2VjdG9ycywgYmlvX3NlY3RvcnMgPSBidm0tPmJpX3NpemUgPj4gOTsKKwlzZWN0b3JfdCBzZWN0b3IgPSBidm0tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJ2bS0+YmlfYmRldik7CiAKIAlkZXYwID0gd2hpY2hfZGV2KG1kZGV2LCBzZWN0b3IpOwogCW1heHNlY3RvcnMgPSAoZGV2MC0+c2l6ZSA8PCAxKSAtIChzZWN0b3IgLSAoZGV2MC0+b2Zmc2V0PDwxKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL21kLmMgYi9kcml2ZXJzL21kL21kLmMKaW5kZXggODNlYjc4Yi4uMjU4MGFjMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9tZC5jCisrKyBiL2RyaXZlcnMvbWQvbWQuYwpAQCAtNzQsNiArNzQsOCBAQAogCiBzdGF0aWMgdm9pZCBtZF9wcmludF9kZXZpY2VzKHZvaWQpOwogCitzdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQocmVzeW5jX3dhaXQpOworCiAjZGVmaW5lIE1EX0JVRyh4Li4uKSB7IHByaW50aygibWQ6IGJ1ZyBpbiBmaWxlICVzLCBsaW5lICVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18pOyBtZF9wcmludF9kZXZpY2VzKCk7IH0KIAogLyoKQEAgLTI3NCw2ICsyNzYsNyBAQAogCWF0b21pY19zZXQoJm5ldy0+YWN0aXZlLCAxKTsKIAlzcGluX2xvY2tfaW5pdCgmbmV3LT53cml0ZV9sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZuZXctPnNiX3dhaXQpOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJm5ldy0+cmVjb3Zlcnlfd2FpdCk7CiAJbmV3LT5yZXNoYXBlX3Bvc2l0aW9uID0gTWF4U2VjdG9yOwogCW5ldy0+cmVzeW5jX21heCA9IE1heFNlY3RvcjsKIAluZXctPmxldmVsID0gTEVWRUxfTk9ORTsKQEAgLTMwMTMsNiArMzAxNiwzNiBAQAogc3RhdGljIHN0cnVjdCBtZF9zeXNmc19lbnRyeSBtZF9kZWdyYWRlZCA9IF9fQVRUUl9STyhkZWdyYWRlZCk7CiAKIHN0YXRpYyBzc2l6ZV90CitzeW5jX2ZvcmNlX3BhcmFsbGVsX3Nob3cobWRkZXZfdCAqbWRkZXYsIGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIHNwcmludGYocGFnZSwgIiVkXG4iLCBtZGRldi0+cGFyYWxsZWxfcmVzeW5jKTsKK30KKworc3RhdGljIHNzaXplX3QKK3N5bmNfZm9yY2VfcGFyYWxsZWxfc3RvcmUobWRkZXZfdCAqbWRkZXYsIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGxlbikKK3sKKwlsb25nIG47CisKKwlpZiAoc3RyaWN0X3N0cnRvbChidWYsIDEwLCAmbikpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKG4gIT0gMCAmJiBuICE9IDEpCisJCXJldHVybiAtRUlOVkFMOworCisJbWRkZXYtPnBhcmFsbGVsX3Jlc3luYyA9IG47CisKKwlpZiAobWRkZXYtPnN5bmNfdGhyZWFkKQorCQl3YWtlX3VwKCZyZXN5bmNfd2FpdCk7CisKKwlyZXR1cm4gbGVuOworfQorCisvKiBmb3JjZSBwYXJhbGxlbCByZXN5bmMsIGV2ZW4gd2l0aCBzaGFyZWQgYmxvY2sgZGV2aWNlcyAqLworc3RhdGljIHN0cnVjdCBtZF9zeXNmc19lbnRyeSBtZF9zeW5jX2ZvcmNlX3BhcmFsbGVsID0KK19fQVRUUihzeW5jX2ZvcmNlX3BhcmFsbGVsLCBTX0lSVUdPfFNfSVdVU1IsCisgICAgICAgc3luY19mb3JjZV9wYXJhbGxlbF9zaG93LCBzeW5jX2ZvcmNlX3BhcmFsbGVsX3N0b3JlKTsKKworc3RhdGljIHNzaXplX3QKIHN5bmNfc3BlZWRfc2hvdyhtZGRldl90ICptZGRldiwgY2hhciAqcGFnZSkKIHsKIAl1bnNpZ25lZCBsb25nIHJlc3luYywgZHQsIGRiOwpAQCAtMzE4Nyw2ICszMjIwLDcgQEAKIAkmbWRfc3luY19taW4uYXR0ciwKIAkmbWRfc3luY19tYXguYXR0ciwKIAkmbWRfc3luY19zcGVlZC5hdHRyLAorCSZtZF9zeW5jX2ZvcmNlX3BhcmFsbGVsLmF0dHIsCiAJJm1kX3N5bmNfY29tcGxldGVkLmF0dHIsCiAJJm1kX21heF9zeW5jLmF0dHIsCiAJJm1kX3N1c3BlbmRfbG8uYXR0ciwKQEAgLTM2OTEsNiArMzcyNSw4IEBACiAKIAkJCW1vZHVsZV9wdXQobWRkZXYtPnBlcnMtPm93bmVyKTsKIAkJCW1kZGV2LT5wZXJzID0gTlVMTDsKKwkJCS8qIHRlbGwgdXNlcnNwYWNlIHRvIGhhbmRsZSAnaW5hY3RpdmUnICovCisJCQlzeXNmc19ub3RpZnkoJm1kZGV2LT5rb2JqLCBOVUxMLCAiYXJyYXlfc3RhdGUiKTsKIAogCQkJc2V0X2NhcGFjaXR5KGRpc2ssIDApOwogCQkJbWRkZXYtPmNoYW5nZWQgPSAxOwpAQCAtMzg2MSw4ICszODk3LDEwIEBACiAKIAkJbWRfcHJvYmUoZGV2LCBOVUxMLCBOVUxMKTsKIAkJbWRkZXYgPSBtZGRldl9maW5kKGRldik7Ci0JCWlmICghbWRkZXYpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAKKwkJaWYgKCFtZGRldiB8fCAhbWRkZXYtPmdlbmRpc2spIHsKKwkJCWlmIChtZGRldikKKwkJCQltZGRldl9wdXQobWRkZXYpOworCQkJcHJpbnRrKEtFUk5fRVJSCiAJCQkJIm1kOiBjYW5ub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBtZCBkcml2ZS5cbiIpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTM5ODcsOCArNDAyNSw4IEBACiAJaWYgKCFidWYpCiAJCWdvdG8gb3V0OwogCi0JcHRyID0gZmlsZV9wYXRoKG1kZGV2LT5iaXRtYXAtPmZpbGUsIGJ1Ziwgc2l6ZW9mKGZpbGUtPnBhdGhuYW1lKSk7Ci0JaWYgKCFwdHIpCisJcHRyID0gZF9wYXRoKCZtZGRldi0+Yml0bWFwLT5maWxlLT5mX3BhdGgsIGJ1Ziwgc2l6ZW9mKGZpbGUtPnBhdGhuYW1lKSk7CisJaWYgKElTX0VSUihwdHIpKQogCQlnb3RvIG91dDsKIAogCXN0cmNweShmaWxlLT5wYXRobmFtZSwgcHRyKTsKQEAgLTUzOTksNyArNTQzNyw3IEBACiAJYXRvbWljX3N1YihibG9ja3MsICZtZGRldi0+cmVjb3ZlcnlfYWN0aXZlKTsKIAl3YWtlX3VwKCZtZGRldi0+cmVjb3Zlcnlfd2FpdCk7CiAJaWYgKCFvaykgewotCQlzZXRfYml0KE1EX1JFQ09WRVJZX0VSUiwgJm1kZGV2LT5yZWNvdmVyeSk7CisJCXNldF9iaXQoTURfUkVDT1ZFUllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSk7CiAJCW1kX3dha2V1cF90aHJlYWQobWRkZXYtPnRocmVhZCk7CiAJCS8vIHN0b3AgcmVjb3ZlcnksIHNpZ25hbCBkb19zeW5jIC4uLi4KIAl9CkBAIC01NDM1LDggKzU0NzMsMTEgQEAKIAkJCW1kX3dha2V1cF90aHJlYWQobWRkZXYtPnRocmVhZCk7CiAJCX0KIAkJc3Bpbl91bmxvY2tfaXJxKCZtZGRldi0+d3JpdGVfbG9jayk7CisJCXN5c2ZzX25vdGlmeSgmbWRkZXYtPmtvYmosIE5VTEwsICJhcnJheV9zdGF0ZSIpOwogCX0KLQl3YWl0X2V2ZW50KG1kZGV2LT5zYl93YWl0LCBtZGRldi0+ZmxhZ3M9PTApOworCXdhaXRfZXZlbnQobWRkZXYtPnNiX3dhaXQsCisJCSAgICF0ZXN0X2JpdChNRF9DSEFOR0VfQ0xFQU4sICZtZGRldi0+ZmxhZ3MpICYmCisJCSAgICF0ZXN0X2JpdChNRF9DSEFOR0VfUEVORElORywgJm1kZGV2LT5mbGFncykpOwogfQogCiB2b2lkIG1kX3dyaXRlX2VuZChtZGRldl90ICptZGRldikKQEAgLTU0NzEsMTMgKzU1MTIsMTcgQEAKIAkJCW1kZGV2LT5zYWZlbW9kZSA9IDE7CiAJCXNwaW5fdW5sb2NrX2lycSgmbWRkZXYtPndyaXRlX2xvY2spOwogCQltZF91cGRhdGVfc2IobWRkZXYsIDApOworCisJCXN5c2ZzX25vdGlmeSgmbWRkZXYtPmtvYmosIE5VTEwsICJhcnJheV9zdGF0ZSIpOworCQkvKiB3YWl0IGZvciB0aGUgZGlydHkgc3RhdGUgdG8gYmUgcmVjb3JkZWQgaW4gdGhlIG1ldGFkYXRhICovCisJCXdhaXRfZXZlbnQobWRkZXYtPnNiX3dhaXQsCisJCQkgICAhdGVzdF9iaXQoTURfQ0hBTkdFX0NMRUFOLCAmbWRkZXYtPmZsYWdzKSAmJgorCQkJICAgIXRlc3RfYml0KE1EX0NIQU5HRV9QRU5ESU5HLCAmbWRkZXYtPmZsYWdzKSk7CiAJfSBlbHNlCiAJCXNwaW5fdW5sb2NrX2lycSgmbWRkZXYtPndyaXRlX2xvY2spOwogfQogRVhQT1JUX1NZTUJPTF9HUEwobWRfYWxsb3dfd3JpdGUpOwogCi1zdGF0aWMgREVDTEFSRV9XQUlUX1FVRVVFX0hFQUQocmVzeW5jX3dhaXQpOwotCiAjZGVmaW5lIFNZTkNfTUFSS1MJMTAKICNkZWZpbmUJU1lOQ19NQVJLX1NURVAJKDMqSFopCiB2b2lkIG1kX2RvX3N5bmMobWRkZXZfdCAqbWRkZXYpCkBAIC01NTQxLDggKzU1ODYsOSBAQAogCQlmb3JfZWFjaF9tZGRldihtZGRldjIsIHRtcCkgewogCQkJaWYgKG1kZGV2MiA9PSBtZGRldikKIAkJCQljb250aW51ZTsKLQkJCWlmIChtZGRldjItPmN1cnJfcmVzeW5jICYmIAotCQkJICAgIG1hdGNoX21kZGV2X3VuaXRzKG1kZGV2LG1kZGV2MikpIHsKKwkJCWlmICghbWRkZXYtPnBhcmFsbGVsX3Jlc3luYworCQkJJiYgIG1kZGV2Mi0+Y3Vycl9yZXN5bmMKKwkJCSYmICBtYXRjaF9tZGRldl91bml0cyhtZGRldiwgbWRkZXYyKSkgewogCQkJCURFRklORV9XQUlUKHdxKTsKIAkJCQlpZiAobWRkZXYgPCBtZGRldjIgJiYgbWRkZXYtPmN1cnJfcmVzeW5jID09IDIpIHsKIAkJCQkJLyogYXJiaXRyYXJpbHkgeWllbGQgKi8KQEAgLTU2MjIsNyArNTY2OCw2IEBACiAJCXdpbmRvdy8yLCh1bnNpZ25lZCBsb25nIGxvbmcpIG1heF9zZWN0b3JzLzIpOwogCiAJYXRvbWljX3NldCgmbWRkZXYtPnJlY292ZXJ5X2FjdGl2ZSwgMCk7Ci0JaW5pdF93YWl0cXVldWVfaGVhZCgmbWRkZXYtPnJlY292ZXJ5X3dhaXQpOwogCWxhc3RfY2hlY2sgPSAwOwogCiAJaWYgKGo+MikgewpAQCAtNTY0Nyw3ICs1NjkyLDcgQEAKIAkJc2VjdG9ycyA9IG1kZGV2LT5wZXJzLT5zeW5jX3JlcXVlc3QobWRkZXYsIGosICZza2lwcGVkLAogCQkJCQkJICBjdXJyc3BlZWQgPCBzcGVlZF9taW4obWRkZXYpKTsKIAkJaWYgKHNlY3RvcnMgPT0gMCkgewotCQkJc2V0X2JpdChNRF9SRUNPVkVSWV9FUlIsICZtZGRldi0+cmVjb3ZlcnkpOworCQkJc2V0X2JpdChNRF9SRUNPVkVSWV9JTlRSLCAmbWRkZXYtPnJlY292ZXJ5KTsKIAkJCWdvdG8gb3V0OwogCQl9CiAKQEAgLTU2NzAsOCArNTcxNSw3IEBACiAKIAkJbGFzdF9jaGVjayA9IGlvX3NlY3RvcnM7CiAKLQkJaWYgKHRlc3RfYml0KE1EX1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpIHx8Ci0JCSAgICB0ZXN0X2JpdChNRF9SRUNPVkVSWV9FUlIsICZtZGRldi0+cmVjb3ZlcnkpKQorCQlpZiAodGVzdF9iaXQoTURfUkVDT1ZFUllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSkpCiAJCQlicmVhazsKIAogCXJlcGVhdDoKQEAgLTU3MjUsOCArNTc2OSw3IEBACiAJLyogdGVsbCBwZXJzb25hbGl0eSB0aGF0IHdlIGFyZSBmaW5pc2hlZCAqLwogCW1kZGV2LT5wZXJzLT5zeW5jX3JlcXVlc3QobWRkZXYsIG1heF9zZWN0b3JzLCAmc2tpcHBlZCwgMSk7CiAKLQlpZiAoIXRlc3RfYml0KE1EX1JFQ09WRVJZX0VSUiwgJm1kZGV2LT5yZWNvdmVyeSkgJiYKLQkgICAgIXRlc3RfYml0KE1EX1JFQ09WRVJZX0NIRUNLLCAmbWRkZXYtPnJlY292ZXJ5KSAmJgorCWlmICghdGVzdF9iaXQoTURfUkVDT1ZFUllfQ0hFQ0ssICZtZGRldi0+cmVjb3ZlcnkpICYmCiAJICAgIG1kZGV2LT5jdXJyX3Jlc3luYyA+IDIpIHsKIAkJaWYgKHRlc3RfYml0KE1EX1JFQ09WRVJZX1NZTkMsICZtZGRldi0+cmVjb3ZlcnkpKSB7CiAJCQlpZiAodGVzdF9iaXQoTURfUkVDT1ZFUllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSkpIHsKQEAgLTU3OTUsNyArNTgzOCwxMCBAQAogCQl9CiAKIAlpZiAobWRkZXYtPmRlZ3JhZGVkKSB7Ci0JCXJkZXZfZm9yX2VhY2gocmRldiwgcnRtcCwgbWRkZXYpCisJCXJkZXZfZm9yX2VhY2gocmRldiwgcnRtcCwgbWRkZXYpIHsKKwkJCWlmIChyZGV2LT5yYWlkX2Rpc2sgPj0gMCAmJgorCQkJICAgICF0ZXN0X2JpdChJbl9zeW5jLCAmcmRldi0+ZmxhZ3MpKQorCQkJCXNwYXJlcysrOwogCQkJaWYgKHJkZXYtPnJhaWRfZGlzayA8IDAKIAkJCSAgICAmJiAhdGVzdF9iaXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpKSB7CiAJCQkJcmRldi0+cmVjb3Zlcnlfb2Zmc2V0ID0gMDsKQEAgLTU4MTMsNiArNTg1OSw3IEBACiAJCQkJfSBlbHNlCiAJCQkJCWJyZWFrOwogCQkJfQorCQl9CiAJfQogCXJldHVybiBzcGFyZXM7CiB9CkBAIC01ODI2LDcgKzU4NzMsNyBAQAogICogdG8gZG8gdGhhdCBhcyBuZWVkZWQuCiAgKiBXaGVuIGl0IGlzIGRldGVybWluZWQgdGhhdCByZXN5bmMgaXMgbmVlZGVkLCB3ZSBzZXQgTURfUkVDT1ZFUllfUlVOTklORyBpbgogICogIi0+cmVjb3ZlcnkiIGFuZCBjcmVhdGUgYSB0aHJlYWQgYXQgLT5zeW5jX3RocmVhZC4KLSAqIFdoZW4gdGhlIHRocmVhZCBmaW5pc2hlcyBpdCBzZXRzIE1EX1JFQ09WRVJZX0RPTkUgKGFuZCBtaWdodCBzZXQgTURfUkVDT1ZFUllfRVJSKQorICogV2hlbiB0aGUgdGhyZWFkIGZpbmlzaGVzIGl0IHNldHMgTURfUkVDT1ZFUllfRE9ORQogICogYW5kIHdha2V1cHMgdXAgdGhpcyB0aHJlYWQgd2hpY2ggd2lsbCByZWFwIHRoZSB0aHJlYWQgYW5kIGZpbmlzaCB1cC4KICAqIFRoaXMgdGhyZWFkIGFsc28gcmVtb3ZlcyBhbnkgZmF1bHR5IGRldmljZXMgKHdpdGggbnJfcGVuZGluZyA9PSAwKS4KICAqCkBAIC01OTAxLDggKzU5NDgsNyBAQAogCQkJLyogcmVzeW5jIGhhcyBmaW5pc2hlZCwgY29sbGVjdCByZXN1bHQgKi8KIAkJCW1kX3VucmVnaXN0ZXJfdGhyZWFkKG1kZGV2LT5zeW5jX3RocmVhZCk7CiAJCQltZGRldi0+c3luY190aHJlYWQgPSBOVUxMOwotCQkJaWYgKCF0ZXN0X2JpdChNRF9SRUNPVkVSWV9FUlIsICZtZGRldi0+cmVjb3ZlcnkpICYmCi0JCQkgICAgIXRlc3RfYml0KE1EX1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpKSB7CisJCQlpZiAoIXRlc3RfYml0KE1EX1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpKSB7CiAJCQkJLyogc3VjY2Vzcy4uLiovCiAJCQkJLyogYWN0aXZhdGUgYW55IHNwYXJlcyAqLwogCQkJCW1kZGV2LT5wZXJzLT5zcGFyZV9hY3RpdmUobWRkZXYpOwpAQCAtNTkyNiw3ICs1OTcyLDYgQEAKIAkJICogbWlnaHQgYmUgbGVmdCBzZXQKIAkJICovCiAJCWNsZWFyX2JpdChNRF9SRUNPVkVSWV9ORUVERUQsICZtZGRldi0+cmVjb3ZlcnkpOwotCQljbGVhcl9iaXQoTURfUkVDT1ZFUllfRVJSLCAmbWRkZXYtPnJlY292ZXJ5KTsKIAkJY2xlYXJfYml0KE1EX1JFQ09WRVJZX0lOVFIsICZtZGRldi0+cmVjb3ZlcnkpOwogCQljbGVhcl9iaXQoTURfUkVDT1ZFUllfRE9ORSwgJm1kZGV2LT5yZWNvdmVyeSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvbXVsdGlwYXRoLmMgYi9kcml2ZXJzL21kL211bHRpcGF0aC5jCmluZGV4IDRmNGQxZjMuLmU5NjgxMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvbXVsdGlwYXRoLmMKKysrIGIvZHJpdmVycy9tZC9tdWx0aXBhdGguYwpAQCAtMzI3LDcgKzMyNyw4IEBACiAJaWYgKHJkZXYpIHsKIAkJaWYgKHRlc3RfYml0KEluX3N5bmMsICZyZGV2LT5mbGFncykgfHwKIAkJICAgIGF0b21pY19yZWFkKCZyZGV2LT5ucl9wZW5kaW5nKSkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJob3QtcmVtb3ZlLWRpc2ssIHNsb3QgJWQgaXMgaWRlbnRpZmllZCIJCQkJIiBidXQgaXMgc3RpbGwgb3BlcmF0aW9uYWwhXG4iLCBudW1iZXIpOworCQkJcHJpbnRrKEtFUk5fRVJSICJob3QtcmVtb3ZlLWRpc2ssIHNsb3QgJWQgaXMgaWRlbnRpZmllZCIKKwkJCSAgICAgICAiIGJ1dCBpcyBzdGlsbCBvcGVyYXRpb25hbCFcbiIsIG51bWJlcik7CiAJCQllcnIgPSAtRUJVU1k7CiAJCQlnb3RvIGFib3J0OwogCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQwLmMgYi9kcml2ZXJzL21kL3JhaWQwLmMKaW5kZXggOTE0YzA0ZC4uYmNiYjgyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9yYWlkMC5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDAuYwpAQCAtMjQxLDE4ICsyNDEsMjAgQEAKIC8qKgogICoJcmFpZDBfbWVyZ2VhYmxlX2J2ZWMgLS0gdGVsbCBiaW8gbGF5ZXIgaWYgYSB0d28gcmVxdWVzdHMgY2FuIGJlIG1lcmdlZAogICoJQHE6IHJlcXVlc3QgcXVldWUKLSAqCUBiaW86IHRoZSBidWZmZXIgaGVhZCB0aGF0J3MgYmVlbiBidWlsdCB1cCBzbyBmYXIKKyAqCUBidm06IHByb3BlcnRpZXMgb2YgbmV3IGJpbwogICoJQGJpb3ZlYzogdGhlIHJlcXVlc3QgdGhhdCBjb3VsZCBiZSBtZXJnZWQgdG8gaXQuCiAgKgogICoJUmV0dXJuIGFtb3VudCBvZiBieXRlcyB3ZSBjYW4gYWNjZXB0IGF0IHRoaXMgb2Zmc2V0CiAgKi8KLXN0YXRpYyBpbnQgcmFpZDBfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb192ZWMgKmJpb3ZlYykKK3N0YXRpYyBpbnQgcmFpZDBfbWVyZ2VhYmxlX2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsCisJCQkJc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqYnZtLAorCQkJCXN0cnVjdCBiaW9fdmVjICpiaW92ZWMpCiB7CiAJbWRkZXZfdCAqbWRkZXYgPSBxLT5xdWV1ZWRhdGE7Ci0Jc2VjdG9yX3Qgc2VjdG9yID0gYmlvLT5iaV9zZWN0b3IgKyBnZXRfc3RhcnRfc2VjdChiaW8tPmJpX2JkZXYpOworCXNlY3Rvcl90IHNlY3RvciA9IGJ2bS0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYnZtLT5iaV9iZGV2KTsKIAlpbnQgbWF4OwogCXVuc2lnbmVkIGludCBjaHVua19zZWN0b3JzID0gbWRkZXYtPmNodW5rX3NpemUgPj4gOTsKLQl1bnNpZ25lZCBpbnQgYmlvX3NlY3RvcnMgPSBiaW8tPmJpX3NpemUgPj4gOTsKKwl1bnNpZ25lZCBpbnQgYmlvX3NlY3RvcnMgPSBidm0tPmJpX3NpemUgPj4gOTsKIAogCW1heCA9ICAoY2h1bmtfc2VjdG9ycyAtICgoc2VjdG9yICYgKGNodW5rX3NlY3RvcnMgLSAxKSkgKyBiaW9fc2VjdG9ycykpIDw8IDk7CiAJaWYgKG1heCA8IDApIG1heCA9IDA7IC8qIGJpb19hZGQgY2Fubm90IGhhbmRsZSBhIG5lZ2F0aXZlIHJldHVybiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMS5jIGIvZHJpdmVycy9tZC9yYWlkMS5jCmluZGV4IGFjNDA5YjcuLmM2MTBiOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDEuYworKysgYi9kcml2ZXJzL21kL3JhaWQxLmMKQEAgLTc3Myw3ICs3NzMsNyBAQAogCXIxYmlvX3QgKnIxX2JpbzsKIAlzdHJ1Y3QgYmlvICpyZWFkX2JpbzsKIAlpbnQgaSwgdGFyZ2V0cyA9IDAsIGRpc2tzOwotCXN0cnVjdCBiaXRtYXAgKmJpdG1hcCA9IG1kZGV2LT5iaXRtYXA7CisJc3RydWN0IGJpdG1hcCAqYml0bWFwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IGJpb19saXN0IGJsOwogCXN0cnVjdCBwYWdlICoqYmVoaW5kX3BhZ2VzID0gTlVMTDsKQEAgLTgwMiw2ICs4MDIsOCBAQAogCiAJd2FpdF9iYXJyaWVyKGNvbmYpOwogCisJYml0bWFwID0gbWRkZXYtPmJpdG1hcDsKKwogCWRpc2tfc3RhdF9pbmMobWRkZXYtPmdlbmRpc2ssIGlvc1tyd10pOwogCWRpc2tfc3RhdF9hZGQobWRkZXYtPmdlbmRpc2ssIHNlY3RvcnNbcnddLCBiaW9fc2VjdG9ycyhiaW8pKTsKIApAQCAtMTAyNSw3ICsxMDI3LDcgQEAKIAkJLyoKIAkJICogaWYgcmVjb3ZlcnkgaXMgcnVubmluZywgbWFrZSBzdXJlIGl0IGFib3J0cy4KIAkJICovCi0JCXNldF9iaXQoTURfUkVDT1ZFUllfRVJSLCAmbWRkZXYtPnJlY292ZXJ5KTsKKwkJc2V0X2JpdChNRF9SRUNPVkVSWV9JTlRSLCAmbWRkZXYtPnJlY292ZXJ5KTsKIAl9IGVsc2UKIAkJc2V0X2JpdChGYXVsdHksICZyZGV2LT5mbGFncyk7CiAJc2V0X2JpdChNRF9DSEFOR0VfREVWUywgJm1kZGV2LT5mbGFncyk7CkBAIC0xMTQ2LDYgKzExNDgsMTQgQEAKIAkJCWVyciA9IC1FQlVTWTsKIAkJCWdvdG8gYWJvcnQ7CiAJCX0KKwkJLyogT25seSByZW1vdmUgbm9uLWZhdWx0eSBkZXZpY2VzIGlzIHJlY292ZXJ5CisJCSAqIGlzIG5vdCBwb3NzaWJsZS4KKwkJICovCisJCWlmICghdGVzdF9iaXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpICYmCisJCSAgICBtZGRldi0+ZGVncmFkZWQgPCBjb25mLT5yYWlkX2Rpc2tzKSB7CisJCQllcnIgPSAtRUJVU1k7CisJCQlnb3RvIGFib3J0OworCQl9CiAJCXAtPnJkZXYgPSBOVUxMOwogCQlzeW5jaHJvbml6ZV9yY3UoKTsKIAkJaWYgKGF0b21pY19yZWFkKCZyZGV2LT5ucl9wZW5kaW5nKSkgewpAQCAtMTI4Miw2ICsxMjkyLDcgQEAKIAkJCQkJcmRldl9kZWNfcGVuZGluZyhjb25mLT5taXJyb3JzW2ldLnJkZXYsIG1kZGV2KTsKIAkJCQl9IGVsc2UgewogCQkJCQkvKiBmaXh1cCB0aGUgYmlvIGZvciByZXVzZSAqLworCQkJCQlpbnQgc2l6ZTsKIAkJCQkJc2Jpby0+YmlfdmNudCA9IHZjbnQ7CiAJCQkJCXNiaW8tPmJpX3NpemUgPSByMV9iaW8tPnNlY3RvcnMgPDwgOTsKIAkJCQkJc2Jpby0+YmlfaWR4ID0gMDsKQEAgLTEyOTUsMTAgKzEzMDYsMjAgQEAKIAkJCQkJc2Jpby0+Ymlfc2VjdG9yID0gcjFfYmlvLT5zZWN0b3IgKwogCQkJCQkJY29uZi0+bWlycm9yc1tpXS5yZGV2LT5kYXRhX29mZnNldDsKIAkJCQkJc2Jpby0+YmlfYmRldiA9IGNvbmYtPm1pcnJvcnNbaV0ucmRldi0+YmRldjsKLQkJCQkJZm9yIChqID0gMDsgaiA8IHZjbnQgOyBqKyspCi0JCQkJCQltZW1jcHkocGFnZV9hZGRyZXNzKHNiaW8tPmJpX2lvX3ZlY1tqXS5idl9wYWdlKSwKKwkJCQkJc2l6ZSA9IHNiaW8tPmJpX3NpemU7CisJCQkJCWZvciAoaiA9IDA7IGogPCB2Y250IDsgaisrKSB7CisJCQkJCQlzdHJ1Y3QgYmlvX3ZlYyAqYmk7CisJCQkJCQliaSA9ICZzYmlvLT5iaV9pb192ZWNbal07CisJCQkJCQliaS0+YnZfb2Zmc2V0ID0gMDsKKwkJCQkJCWlmIChzaXplID4gUEFHRV9TSVpFKQorCQkJCQkJCWJpLT5idl9sZW4gPSBQQUdFX1NJWkU7CisJCQkJCQllbHNlCisJCQkJCQkJYmktPmJ2X2xlbiA9IHNpemU7CisJCQkJCQlzaXplIC09IFBBR0VfU0laRTsKKwkJCQkJCW1lbWNweShwYWdlX2FkZHJlc3MoYmktPmJ2X3BhZ2UpLAogCQkJCQkJICAgICAgIHBhZ2VfYWRkcmVzcyhwYmlvLT5iaV9pb192ZWNbal0uYnZfcGFnZSksCiAJCQkJCQkgICAgICAgUEFHRV9TSVpFKTsKKwkJCQkJfQogCiAJCQkJfQogCQkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkMTAuYyBiL2RyaXZlcnMvbWQvcmFpZDEwLmMKaW5kZXggODUzNmVkZS4uMjJiYjJiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9yYWlkMTAuYworKysgYi9kcml2ZXJzL21kL3JhaWQxMC5jCkBAIC00MzksMjYgKzQzOSwyNyBAQAogLyoqCiAgKglyYWlkMTBfbWVyZ2VhYmxlX2J2ZWMgLS0gdGVsbCBiaW8gbGF5ZXIgaWYgYSB0d28gcmVxdWVzdHMgY2FuIGJlIG1lcmdlZAogICoJQHE6IHJlcXVlc3QgcXVldWUKLSAqCUBiaW86IHRoZSBidWZmZXIgaGVhZCB0aGF0J3MgYmVlbiBidWlsdCB1cCBzbyBmYXIKKyAqCUBidm06IHByb3BlcnRpZXMgb2YgbmV3IGJpbwogICoJQGJpb3ZlYzogdGhlIHJlcXVlc3QgdGhhdCBjb3VsZCBiZSBtZXJnZWQgdG8gaXQuCiAgKgogICoJUmV0dXJuIGFtb3VudCBvZiBieXRlcyB3ZSBjYW4gYWNjZXB0IGF0IHRoaXMgb2Zmc2V0CiAgKiAgICAgIElmIG5lYXJfY29waWVzID09IHJhaWRfZGlzaywgdGhlcmUgYXJlIG5vIHN0cmlwaW5nIGlzc3VlcywKICAqICAgICAgYnV0IGluIHRoYXQgY2FzZSwgdGhlIGZ1bmN0aW9uIGlzbid0IGNhbGxlZCBhdCBhbGwuCiAgKi8KLXN0YXRpYyBpbnQgcmFpZDEwX21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sCi0JCQkJc3RydWN0IGJpb192ZWMgKmJpb192ZWMpCitzdGF0aWMgaW50IHJhaWQxMF9tZXJnZWFibGVfYnZlYyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKKwkJCQkgc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqYnZtLAorCQkJCSBzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQogewogCW1kZGV2X3QgKm1kZGV2ID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHNlY3RvciA9IGJpby0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYmlvLT5iaV9iZGV2KTsKKwlzZWN0b3JfdCBzZWN0b3IgPSBidm0tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJ2bS0+YmlfYmRldik7CiAJaW50IG1heDsKIAl1bnNpZ25lZCBpbnQgY2h1bmtfc2VjdG9ycyA9IG1kZGV2LT5jaHVua19zaXplID4+IDk7Ci0JdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYmlvLT5iaV9zaXplID4+IDk7CisJdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYnZtLT5iaV9zaXplID4+IDk7CiAKIAltYXggPSAgKGNodW5rX3NlY3RvcnMgLSAoKHNlY3RvciAmIChjaHVua19zZWN0b3JzIC0gMSkpICsgYmlvX3NlY3RvcnMpKSA8PCA5OwogCWlmIChtYXggPCAwKSBtYXggPSAwOyAvKiBiaW9fYWRkIGNhbm5vdCBoYW5kbGUgYSBuZWdhdGl2ZSByZXR1cm4gKi8KLQlpZiAobWF4IDw9IGJpb192ZWMtPmJ2X2xlbiAmJiBiaW9fc2VjdG9ycyA9PSAwKQotCQlyZXR1cm4gYmlvX3ZlYy0+YnZfbGVuOworCWlmIChtYXggPD0gYmlvdmVjLT5idl9sZW4gJiYgYmlvX3NlY3RvcnMgPT0gMCkKKwkJcmV0dXJuIGJpb3ZlYy0+YnZfbGVuOwogCWVsc2UKIAkJcmV0dXJuIG1heDsKIH0KQEAgLTEwMjAsNyArMTAyMSw3IEBACiAJCS8qCiAJCSAqIGlmIHJlY292ZXJ5IGlzIHJ1bm5pbmcsIG1ha2Ugc3VyZSBpdCBhYm9ydHMuCiAJCSAqLwotCQlzZXRfYml0KE1EX1JFQ09WRVJZX0VSUiwgJm1kZGV2LT5yZWNvdmVyeSk7CisJCXNldF9iaXQoTURfUkVDT1ZFUllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSk7CiAJfQogCXNldF9iaXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpOwogCXNldF9iaXQoTURfQ0hBTkdFX0RFVlMsICZtZGRldi0+ZmxhZ3MpOwpAQCAtMTE3MSw2ICsxMTcyLDE0IEBACiAJCQllcnIgPSAtRUJVU1k7CiAJCQlnb3RvIGFib3J0OwogCQl9CisJCS8qIE9ubHkgcmVtb3ZlIGZhdWx0eSBkZXZpY2VzIGluIHJlY292ZXJ5CisJCSAqIGlzIG5vdCBwb3NzaWJsZS4KKwkJICovCisJCWlmICghdGVzdF9iaXQoRmF1bHR5LCAmcmRldi0+ZmxhZ3MpICYmCisJCSAgICBlbm91Z2goY29uZikpIHsKKwkJCWVyciA9IC1FQlVTWTsKKwkJCWdvdG8gYWJvcnQ7CisJCX0KIAkJcC0+cmRldiA9IE5VTEw7CiAJCXN5bmNocm9uaXplX3JjdSgpOwogCQlpZiAoYXRvbWljX3JlYWQoJnJkZXYtPm5yX3BlbmRpbmcpKSB7CkBAIC0xMjM3LDYgKzEyNDYsNyBAQAogCiAJaWYgKCF1cHRvZGF0ZSkKIAkJbWRfZXJyb3IobWRkZXYsIGNvbmYtPm1pcnJvcnNbZF0ucmRldik7CisKIAl1cGRhdGVfaGVhZF9wb3MoaSwgcjEwX2Jpbyk7CiAKIAl3aGlsZSAoYXRvbWljX2RlY19hbmRfdGVzdCgmcjEwX2Jpby0+cmVtYWluaW5nKSkgewpAQCAtMTg0NCw3ICsxODU0LDggQEAKIAkJCQkJaWYgKHJiMikKIAkJCQkJCWF0b21pY19kZWMoJnJiMi0+cmVtYWluaW5nKTsKIAkJCQkJcjEwX2JpbyA9IHJiMjsKLQkJCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KE1EX1JFQ09WRVJZX0VSUiwgJm1kZGV2LT5yZWNvdmVyeSkpCisJCQkJCWlmICghdGVzdF9hbmRfc2V0X2JpdChNRF9SRUNPVkVSWV9JTlRSLAorCQkJCQkJCSAgICAgICZtZGRldi0+cmVjb3ZlcnkpKQogCQkJCQkJcHJpbnRrKEtFUk5fSU5GTyAicmFpZDEwOiAlczogaW5zdWZmaWNpZW50IHdvcmtpbmcgZGV2aWNlcyBmb3IgcmVjb3ZlcnkuXG4iLAogCQkJCQkJICAgICAgIG1kbmFtZShtZGRldikpOwogCQkJCQlicmVhazsKQEAgLTIxMjcsNiArMjEzOCw4IEBACiAJCSAgICAhdGVzdF9iaXQoSW5fc3luYywgJmRpc2stPnJkZXYtPmZsYWdzKSkgewogCQkJZGlzay0+aGVhZF9wb3NpdGlvbiA9IDA7CiAJCQltZGRldi0+ZGVncmFkZWQrKzsKKwkJCWlmIChkaXNrLT5yZGV2KQorCQkJCWNvbmYtPmZ1bGxzeW5jID0gMTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9yYWlkNS5jIGIvZHJpdmVycy9tZC9yYWlkNS5jCmluZGV4IDkzZmRlNDguLjljZTcxNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWQvcmFpZDUuYworKysgYi9kcml2ZXJzL21kL3JhaWQ1LmMKQEAgLTk0LDYgKzk0LDggQEAKICNkZWZpbmUgX19pbmxpbmVfXwogI2VuZGlmCiAKKyNkZWZpbmUgcHJpbnRrX3JsKGFyZ3MuLi4pICgodm9pZCkgKHByaW50a19yYXRlbGltaXQoKSAmJiBwcmludGsoYXJncykpKQorCiAjaWYgIVJBSUQ2X1VTRV9FTVBUWV9aRVJPX1BBR0UKIC8qIEluIC5ic3Mgc28gaXQncyB6ZXJvZWQgKi8KIGNvbnN0IGNoYXIgcmFpZDZfZW1wdHlfemVyb19wYWdlW1BBR0VfU0laRV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgyNTYpKSk7CkBAIC0xMTQzLDEwICsxMTQ1LDEyIEBACiAJCXNldF9iaXQoUjVfVVBUT0RBVEUsICZzaC0+ZGV2W2ldLmZsYWdzKTsKIAkJaWYgKHRlc3RfYml0KFI1X1JlYWRFcnJvciwgJnNoLT5kZXZbaV0uZmxhZ3MpKSB7CiAJCQlyZGV2ID0gY29uZi0+ZGlza3NbaV0ucmRldjsKLQkJCXByaW50ayhLRVJOX0lORk8gInJhaWQ1OiVzOiByZWFkIGVycm9yIGNvcnJlY3RlZCAoJWx1IHNlY3RvcnMgYXQgJWxsdSBvbiAlcylcbiIsCi0JCQkgICAgICAgbWRuYW1lKGNvbmYtPm1kZGV2KSwgU1RSSVBFX1NFQ1RPUlMsCi0JCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2gtPnNlY3RvciArIHJkZXYtPmRhdGFfb2Zmc2V0KSwKLQkJCSAgICAgICBiZGV2bmFtZShyZGV2LT5iZGV2LCBiKSk7CisJCQlwcmludGtfcmwoS0VSTl9JTkZPICJyYWlkNTolczogcmVhZCBlcnJvciBjb3JyZWN0ZWQiCisJCQkJICAiICglbHUgc2VjdG9ycyBhdCAlbGx1IG9uICVzKVxuIiwKKwkJCQkgIG1kbmFtZShjb25mLT5tZGRldiksIFNUUklQRV9TRUNUT1JTLAorCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2gtPnNlY3RvcgorCQkJCQkJICAgICAgICsgcmRldi0+ZGF0YV9vZmZzZXQpLAorCQkJCSAgYmRldm5hbWUocmRldi0+YmRldiwgYikpOwogCQkJY2xlYXJfYml0KFI1X1JlYWRFcnJvciwgJnNoLT5kZXZbaV0uZmxhZ3MpOwogCQkJY2xlYXJfYml0KFI1X1JlV3JpdGUsICZzaC0+ZGV2W2ldLmZsYWdzKTsKIAkJfQpAQCAtMTE2MCwxNiArMTE2NCwyMiBAQAogCQljbGVhcl9iaXQoUjVfVVBUT0RBVEUsICZzaC0+ZGV2W2ldLmZsYWdzKTsKIAkJYXRvbWljX2luYygmcmRldi0+cmVhZF9lcnJvcnMpOwogCQlpZiAoY29uZi0+bWRkZXYtPmRlZ3JhZGVkKQotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAicmFpZDU6JXM6IHJlYWQgZXJyb3Igbm90IGNvcnJlY3RhYmxlIChzZWN0b3IgJWxsdSBvbiAlcykuXG4iLAotCQkJICAgICAgIG1kbmFtZShjb25mLT5tZGRldiksCi0JCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2gtPnNlY3RvciArIHJkZXYtPmRhdGFfb2Zmc2V0KSwKLQkJCSAgICAgICBiZG4pOworCQkJcHJpbnRrX3JsKEtFUk5fV0FSTklORworCQkJCSAgInJhaWQ1OiVzOiByZWFkIGVycm9yIG5vdCBjb3JyZWN0YWJsZSAiCisJCQkJICAiKHNlY3RvciAlbGx1IG9uICVzKS5cbiIsCisJCQkJICBtZG5hbWUoY29uZi0+bWRkZXYpLAorCQkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZykoc2gtPnNlY3RvcgorCQkJCQkJICAgICAgICsgcmRldi0+ZGF0YV9vZmZzZXQpLAorCQkJCSAgYmRuKTsKIAkJZWxzZSBpZiAodGVzdF9iaXQoUjVfUmVXcml0ZSwgJnNoLT5kZXZbaV0uZmxhZ3MpKQogCQkJLyogT2gsIG5vISEhICovCi0JCQlwcmludGsoS0VSTl9XQVJOSU5HICJyYWlkNTolczogcmVhZCBlcnJvciBOT1QgY29ycmVjdGVkISEgKHNlY3RvciAlbGx1IG9uICVzKS5cbiIsCi0JCQkgICAgICAgbWRuYW1lKGNvbmYtPm1kZGV2KSwKLQkJCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKShzaC0+c2VjdG9yICsgcmRldi0+ZGF0YV9vZmZzZXQpLAotCQkJICAgICAgIGJkbik7CisJCQlwcmludGtfcmwoS0VSTl9XQVJOSU5HCisJCQkJICAicmFpZDU6JXM6IHJlYWQgZXJyb3IgTk9UIGNvcnJlY3RlZCEhICIKKwkJCQkgICIoc2VjdG9yICVsbHUgb24gJXMpLlxuIiwKKwkJCQkgIG1kbmFtZShjb25mLT5tZGRldiksCisJCQkJICAodW5zaWduZWQgbG9uZyBsb25nKShzaC0+c2VjdG9yCisJCQkJCQkgICAgICAgKyByZGV2LT5kYXRhX29mZnNldCksCisJCQkJICBiZG4pOwogCQllbHNlIGlmIChhdG9taWNfcmVhZCgmcmRldi0+cmVhZF9lcnJvcnMpCiAJCQkgPiBjb25mLT5tYXhfbnJfc3RyaXBlcykKIAkJCXByaW50ayhLRVJOX1dBUk5JTkcKQEAgLTEyNTgsNyArMTI2OCw3IEBACiAJCQkvKgogCQkJICogaWYgcmVjb3Zlcnkgd2FzIHJ1bm5pbmcsIG1ha2Ugc3VyZSBpdCBhYm9ydHMuCiAJCQkgKi8KLQkJCXNldF9iaXQoTURfUkVDT1ZFUllfRVJSLCAmbWRkZXYtPnJlY292ZXJ5KTsKKwkJCXNldF9iaXQoTURfUkVDT1ZFUllfSU5UUiwgJm1kZGV2LT5yZWNvdmVyeSk7CiAJCX0KIAkJc2V0X2JpdChGYXVsdHksICZyZGV2LT5mbGFncyk7CiAJCXByaW50ayAoS0VSTl9BTEVSVApAQCAtMTk5Miw2ICsyMDAyLDcgQEAKIAkJICogaGF2ZSBxdWllc2NlZC4KIAkJICovCiAJCWlmICgocy0+dXB0b2RhdGUgPT0gZGlza3MgLSAxKSAmJgorCQkgICAgKHMtPmZhaWxlZCAmJiBkaXNrX2lkeCA9PSBzLT5mYWlsZWRfbnVtKSAmJgogCQkgICAgIXRlc3RfYml0KFNUUklQRV9PUF9DSEVDSywgJnNoLT5vcHMucGVuZGluZykpIHsKIAkJCXNldF9iaXQoU1RSSVBFX09QX0NPTVBVVEVfQkxLLCAmc2gtPm9wcy5wZW5kaW5nKTsKIAkJCXNldF9iaXQoUjVfV2FudGNvbXB1dGUsICZkZXYtPmZsYWdzKTsKQEAgLTIwMDYsMTIgKzIwMTcsNyBAQAogCQkJICovCiAJCQlzLT51cHRvZGF0ZSsrOwogCQkJcmV0dXJuIDA7IC8qIHVwdG9kYXRlICsgY29tcHV0ZSA9PSBkaXNrcyAqLwotCQl9IGVsc2UgaWYgKChzLT51cHRvZGF0ZSA8IGRpc2tzIC0gMSkgJiYKLQkJCXRlc3RfYml0KFI1X0luc3luYywgJmRldi0+ZmxhZ3MpKSB7Ci0JCQkvKiBOb3RlOiB3ZSBob2xkIG9mZiBjb21wdXRlIG9wZXJhdGlvbnMgd2hpbGUgY2hlY2tzIGFyZQotCQkJICogaW4gZmxpZ2h0LCBidXQgd2Ugc3RpbGwgcHJlZmVyICdjb21wdXRlJyBvdmVyICdyZWFkJwotCQkJICogaGVuY2Ugd2Ugb25seSByZWFkIGlmICh1cHRvZGF0ZSA8ICogZGlza3MtMSkKLQkJCSAqLworCQl9IGVsc2UgaWYgKHRlc3RfYml0KFI1X0luc3luYywgJmRldi0+ZmxhZ3MpKSB7CiAJCQlzZXRfYml0KFI1X0xPQ0tFRCwgJmRldi0+ZmxhZ3MpOwogCQkJc2V0X2JpdChSNV9XYW50cmVhZCwgJmRldi0+ZmxhZ3MpOwogCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KFNUUklQRV9PUF9JTywgJnNoLT5vcHMucGVuZGluZykpCkBAIC0yMDc3LDcgKzIwODMsOSBAQAogCQkJLyogd2Ugd291bGQgbGlrZSB0byBnZXQgdGhpcyBibG9jaywgcG9zc2libHkKIAkJCSAqIGJ5IGNvbXB1dGluZyBpdCwgYnV0IHdlIG1pZ2h0IG5vdCBiZSBhYmxlIHRvCiAJCQkgKi8KLQkJCWlmIChzLT51cHRvZGF0ZSA9PSBkaXNrcy0xKSB7CisJCQlpZiAoKHMtPnVwdG9kYXRlID09IGRpc2tzIC0gMSkgJiYKKwkJCSAgICAocy0+ZmFpbGVkICYmIChpID09IHI2cy0+ZmFpbGVkX251bVswXSB8fAorCQkJCQkgICBpID09IHI2cy0+ZmFpbGVkX251bVsxXSkpKSB7CiAJCQkJcHJfZGVidWcoIkNvbXB1dGluZyBzdHJpcGUgJWxsdSBibG9jayAlZFxuIiwKIAkJCQkgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZylzaC0+c2VjdG9yLCBpKTsKIAkJCQljb21wdXRlX2Jsb2NrXzEoc2gsIGksIDApOwpAQCAtMjYzNSw2ICsyNjQzLDcgQEAKIAlzdHJ1Y3QgcjVkZXYgKmRldjsKIAl1bnNpZ25lZCBsb25nIHBlbmRpbmcgPSAwOwogCW1ka19yZGV2X3QgKmJsb2NrZWRfcmRldiA9IE5VTEw7CisJaW50IHByZXhvcjsKIAogCW1lbXNldCgmcywgMCwgc2l6ZW9mKHMpKTsKIAlwcl9kZWJ1ZygiaGFuZGxpbmcgc3RyaXBlICVsbHUsIHN0YXRlPSUjbHggY250PSVkLCBwZF9pZHg9JWQgIgpAQCAtMjc2NCw5ICsyNzczLDExIEBACiAJLyogbGVhdmUgcHJleG9yIHNldCB1bnRpbCBwb3N0eG9yIGlzIGRvbmUsIGFsbG93cyB1cyB0byBkaXN0aW5ndWlzaAogCSAqIGEgcm13IGZyb20gYSByY3cgZHVyaW5nIGJpb2RyYWluCiAJICovCisJcHJleG9yID0gMDsKIAlpZiAodGVzdF9iaXQoU1RSSVBFX09QX1BSRVhPUiwgJnNoLT5vcHMuY29tcGxldGUpICYmCiAJCXRlc3RfYml0KFNUUklQRV9PUF9QT1NUWE9SLCAmc2gtPm9wcy5jb21wbGV0ZSkpIHsKIAorCQlwcmV4b3IgPSAxOwogCQljbGVhcl9iaXQoU1RSSVBFX09QX1BSRVhPUiwgJnNoLT5vcHMuY29tcGxldGUpOwogCQljbGVhcl9iaXQoU1RSSVBFX09QX1BSRVhPUiwgJnNoLT5vcHMuYWNrKTsKIAkJY2xlYXJfYml0KFNUUklQRV9PUF9QUkVYT1IsICZzaC0+b3BzLnBlbmRpbmcpOwpAQCAtMjgwMCw2ICsyODExLDggQEAKIAkJCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoCiAJCQkJICAgIFNUUklQRV9PUF9JTywgJnNoLT5vcHMucGVuZGluZykpCiAJCQkJCXNoLT5vcHMuY291bnQrKzsKKwkJCQlpZiAocHJleG9yKQorCQkJCQljb250aW51ZTsKIAkJCQlpZiAoIXRlc3RfYml0KFI1X0luc3luYywgJmRldi0+ZmxhZ3MpIHx8CiAJCQkJICAgIChpID09IHNoLT5wZF9pZHggJiYgcy5mYWlsZWQgPT0gMCkpCiAJCQkJCXNldF9iaXQoU1RSSVBFX0lOU1lOQywgJnNoLT5zdGF0ZSk7CkBAIC0yODgwLDYgKzI4OTMsOCBAQAogCiAJCWZvciAoaSA9IGNvbmYtPnJhaWRfZGlza3M7IGktLTsgKSB7CiAJCQlzZXRfYml0KFI1X1dhbnR3cml0ZSwgJnNoLT5kZXZbaV0uZmxhZ3MpOworCQkJc2V0X2JpdChSNV9MT0NLRUQsICZkZXYtPmZsYWdzKTsKKwkJCXMubG9ja2VkKys7CiAJCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoU1RSSVBFX09QX0lPLCAmc2gtPm9wcy5wZW5kaW5nKSkKIAkJCQlzaC0+b3BzLmNvdW50Kys7CiAJCX0KQEAgLTI4OTMsNiArMjkwOCw3IEBACiAJCQljb25mLT5yYWlkX2Rpc2tzKTsKIAkJcy5sb2NrZWQgKz0gaGFuZGxlX3dyaXRlX29wZXJhdGlvbnM1KHNoLCAxLCAxKTsKIAl9IGVsc2UgaWYgKHMuZXhwYW5kZWQgJiYKKwkJICAgcy5sb2NrZWQgPT0gMCAmJgogCQkhdGVzdF9iaXQoU1RSSVBFX09QX1BPU1RYT1IsICZzaC0+b3BzLnBlbmRpbmcpKSB7CiAJCWNsZWFyX2JpdChTVFJJUEVfRVhQQU5EX1JFQURZLCAmc2gtPnN0YXRlKTsKIAkJYXRvbWljX2RlYygmY29uZi0+cmVzaGFwZV9zdHJpcGVzKTsKQEAgLTMyOTgsMTUgKzMzMTQsMTcgQEAKIC8qIFdlIHdhbnQgcmVhZCByZXF1ZXN0cyB0byBhbGlnbiB3aXRoIGNodW5rcyB3aGVyZSBwb3NzaWJsZSwKICAqIGJ1dCB3cml0ZSByZXF1ZXN0cyBkb24ndCBuZWVkIHRvLgogICovCi1zdGF0aWMgaW50IHJhaWQ1X21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW9fdmVjICpiaW92ZWMpCitzdGF0aWMgaW50IHJhaWQ1X21lcmdlYWJsZV9idmVjKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAorCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwKKwkJCQlzdHJ1Y3QgYmlvX3ZlYyAqYmlvdmVjKQogewogCW1kZGV2X3QgKm1kZGV2ID0gcS0+cXVldWVkYXRhOwotCXNlY3Rvcl90IHNlY3RvciA9IGJpby0+Ymlfc2VjdG9yICsgZ2V0X3N0YXJ0X3NlY3QoYmlvLT5iaV9iZGV2KTsKKwlzZWN0b3JfdCBzZWN0b3IgPSBidm0tPmJpX3NlY3RvciArIGdldF9zdGFydF9zZWN0KGJ2bS0+YmlfYmRldik7CiAJaW50IG1heDsKIAl1bnNpZ25lZCBpbnQgY2h1bmtfc2VjdG9ycyA9IG1kZGV2LT5jaHVua19zaXplID4+IDk7Ci0JdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYmlvLT5iaV9zaXplID4+IDk7CisJdW5zaWduZWQgaW50IGJpb19zZWN0b3JzID0gYnZtLT5iaV9zaXplID4+IDk7CiAKLQlpZiAoYmlvX2RhdGFfZGlyKGJpbykgPT0gV1JJVEUpCisJaWYgKChidm0tPmJpX3J3ICYgMSkgPT0gV1JJVEUpCiAJCXJldHVybiBiaW92ZWMtPmJ2X2xlbjsgLyogYWx3YXlzIGFsbG93IHdyaXRlcyB0byBiZSBtZXJnZWFibGUgKi8KIAogCW1heCA9ICAoY2h1bmtfc2VjdG9ycyAtICgoc2VjdG9yICYgKGNodW5rX3NlY3RvcnMgLSAxKSkgKyBiaW9fc2VjdG9ycykpIDw8IDk7CkBAIC00Mjg3LDcgKzQzMDUsOSBAQAogCQkJCSIgZGlzayAlZFxuIiwgYmRldm5hbWUocmRldi0+YmRldixiKSwKIAkJCQlyYWlkX2Rpc2spOwogCQkJd29ya2luZ19kaXNrcysrOwotCQl9CisJCX0gZWxzZQorCQkJLyogQ2Fubm90IHJlbHkgb24gYml0bWFwIHRvIGNvbXBsZXRlIHJlY292ZXJ5ICovCisJCQljb25mLT5mdWxsc3luYyA9IDE7CiAJfQogCiAJLyoKQEAgLTQ1NjQsNiArNDU4NCwxNCBAQAogCQkJZXJyID0gLUVCVVNZOwogCQkJZ290byBhYm9ydDsKIAkJfQorCQkvKiBPbmx5IHJlbW92ZSBub24tZmF1bHR5IGRldmljZXMgaWYgcmVjb3ZlcnkKKwkJICogaXNuJ3QgcG9zc2libGUuCisJCSAqLworCQlpZiAoIXRlc3RfYml0KEZhdWx0eSwgJnJkZXYtPmZsYWdzKSAmJgorCQkgICAgbWRkZXYtPmRlZ3JhZGVkIDw9IGNvbmYtPm1heF9kZWdyYWRlZCkgeworCQkJZXJyID0gLUVCVVNZOworCQkJZ290byBhYm9ydDsKKwkJfQogCQlwLT5yZGV2ID0gTlVMTDsKIAkJc3luY2hyb25pemVfcmN1KCk7CiAJCWlmIChhdG9taWNfcmVhZCgmcmRldi0+bnJfcGVuZGluZykpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvTWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL01ha2VmaWxlCmluZGV4IGNjMTFjNGMuLjA5YTgyOWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9tZWRpYS9NYWtlZmlsZQpAQCAtMiwxMiArMiw3IEBACiAjIE1ha2VmaWxlIGZvciB0aGUga2VybmVsIG11bHRpbWVkaWEgZGV2aWNlIGRyaXZlcnMuCiAjCiAKLW9iai15IDo9IGNvbW1vbi8KLQotb2JqLSQoQ09ORklHX1ZJREVPX01FRElBKSArPSBjb21tb24vCi0KLSMgU2luY2UgaHlicmlkIGRldmljZXMgYXJlIGhlcmUsIHNob3VsZCBiZSBjb21waWxlZCBpZiBEVkIgYW5kL29yIFY0TAotb2JqLSQoQ09ORklHX1ZJREVPX01FRElBKSArPSB2aWRlby8KK29iai15ICs9IGNvbW1vbi8gdmlkZW8vCiAKIG9iai0kKENPTkZJR19WSURFT19ERVYpICs9IHJhZGlvLwogb2JqLSQoQ09ORklHX0RWQl9DT1JFKSAgKz0gZHZiLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vaXIta2V5bWFwcy5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vaXIta2V5bWFwcy5jCmluZGV4IGEzNDg1ODEuLjhmYTkxZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL2lyLWtleW1hcHMuYworKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi9pci1rZXltYXBzLmMKQEAgLTIyMDEsMyArMjIwMSw0MSBAQAogCVsweDI1XSA9IEtFWV9QT1dFUiwJCS8qIHBvd2VyICovCiB9OwogRVhQT1JUX1NZTUJPTF9HUEwoaXJfY29kZXNfcG93ZXJjb2xvcl9yZWFsX2FuZ2VsKTsKKworSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfYXZlcm1lZGlhX2ExNmRbSVJfS0VZVEFCX1NJWkVdID0geworCVsweDIwXSA9IEtFWV9MSVNULAorCVsweDAwXSA9IEtFWV9QT1dFUiwKKwlbMHgyOF0gPSBLRVlfMSwKKwlbMHgxOF0gPSBLRVlfMiwKKwlbMHgzOF0gPSBLRVlfMywKKwlbMHgyNF0gPSBLRVlfNCwKKwlbMHgxNF0gPSBLRVlfNSwKKwlbMHgzNF0gPSBLRVlfNiwKKwlbMHgyY10gPSBLRVlfNywKKwlbMHgxY10gPSBLRVlfOCwKKwlbMHgzY10gPSBLRVlfOSwKKwlbMHgxMl0gPSBLRVlfU1VCVElUTEUsCisJWzB4MjJdID0gS0VZXzAsCisJWzB4MzJdID0gS0VZX1JFV0lORCwKKwlbMHgzYV0gPSBLRVlfU0hVRkZMRSwKKwlbMHgwMl0gPSBLRVlfUFJJTlQsCisJWzB4MTFdID0gS0VZX0NIQU5ORUxET1dOLAorCVsweDMxXSA9IEtFWV9DSEFOTkVMVVAsCisJWzB4MGNdID0gS0VZX1pPT00sCisJWzB4MWVdID0gS0VZX1ZPTFVNRURPV04sCisJWzB4M2VdID0gS0VZX1ZPTFVNRVVQLAorCVsweDBhXSA9IEtFWV9NVVRFLAorCVsweDA0XSA9IEtFWV9BVURJTywKKwlbMHgyNl0gPSBLRVlfUkVDT1JELAorCVsweDA2XSA9IEtFWV9QTEFZLAorCVsweDM2XSA9IEtFWV9TVE9QLAorCVsweDE2XSA9IEtFWV9QQVVTRSwKKwlbMHgyZV0gPSBLRVlfUkVXSU5ELAorCVsweDBlXSA9IEtFWV9GQVNURk9SV0FSRCwKKwlbMHgzMF0gPSBLRVlfVEVYVCwKKwlbMHgyMV0gPSBLRVlfR1JFRU4sCisJWzB4MDFdID0gS0VZX0JMVUUsCisJWzB4MDhdID0gS0VZX0VQRywKKwlbMHgyYV0gPSBLRVlfTUVOVSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChpcl9jb2Rlc19hdmVybWVkaWFfYTE2ZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvS2NvbmZpZyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9LY29uZmlnCmluZGV4IGQ2MjA2NTQuLjg1NDgyOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9LY29uZmlnCkBAIC0yMSw2ICsyMSw3IEBACiAJdHJpc3RhdGUKIAlkZWZhdWx0IFZJREVPX01FRElBICYmIEkyQwogCWRlcGVuZHMgb24gVklERU9fTUVESUEgJiYgSTJDCisJc2VsZWN0IEZXX0xPQURFUiBpZiAhTUVESUFfVFVORVJfQ1VTVE9NSVpFICYmIEhPVFBMVUcKIAlzZWxlY3QgTUVESUFfVFVORVJfWEMyMDI4IGlmICFNRURJQV9UVU5FUl9DVVNUT01JWkUgJiYgSE9UUExVRwogCXNlbGVjdCBNRURJQV9UVU5FUl9YQzUwMDAgaWYgIU1FRElBX1RVTkVSX0NVU1RPTUlaRSAmJiBIT1RQTFVHCiAJc2VsZWN0IE1FRElBX1RVTkVSX01UMjBYWCBpZiAhTUVESUFfVFVORVJfQ1VTVE9NSVpFCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvbXhsNTAwNXMuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9teGw1MDA1cy5jCmluZGV4IDVkMDViNTMuLjBkYzJiZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9teGw1MDA1cy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy9teGw1MDA1cy5jCkBAIC0xMDEsNyArMTAxLDcgQEAKIAlNWExfUUFNLAogCU1YTF9BTkFMT0dfQ0FCTEUsCiAJTVhMX0FOQUxPR19PVEEKLX0gdHVuZXJfbW9kdV90eXBlOworfTsKIAogLyogTVhMNTAwNSBUdW5lciBSZWdpc3RlciBTdHJ1Y3QgKi8KIHN0cnVjdCBUdW5lclJlZyB7CkBAIC0xOTQsNyArMTk0LDcgQEAKIAlSRlNZTl9ESVZNLCAgICAgICAgICAgICAgICAvKiA4OCAqLwogCUROX0JZUEFTU19BR0NfSTJDICAgICAgICAgIC8qIDg5ICovCiAjZW5kaWYKLX0gTVhMNTAwNV9Db250cm9sTmFtZTsKK307CiAKIC8qCiAgKiBUaGUgZm9sbG93aW5nIGNvbnRleHQgaXMgc291cmNlIGNvZGUgcHJvdmlkZWQgYnkgTWF4TGluZWFyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWNvbW1vbi5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWNvbW1vbi5jCmluZGV4IDQyYjVmNWQuLjZmYjViNDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1jb21tb24uYworKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhMTgyNzEtY29tbW9uLmMKQEAgLTY0OCwxMSArNjQ4LDE5IEBACiAJdW5zaWduZWQgY2hhciAqcmVncyA9IHByaXYtPnRkYTE4MjcxX3JlZ3M7CiAJdTggdmFsOwogCi0JdGRhMTgyNzFfbG9va3VwX21hcChmZSwgUkZfQ0FMLCBmcmVxLCAmdmFsKTsKKwlpbnQgcmV0ID0gdGRhMTgyNzFfbG9va3VwX21hcChmZSwgUkZfQ0FMLCBmcmVxLCAmdmFsKTsKKwkvKiBUaGUgVERBMTgyNzFIRC9DMSByZl9jYWwgbWFwIGxvb2t1cCBpcyBleHBlY3RlZCB0byBnbyBvdXQgb2YgcmFuZ2UKKwkgKiBmb3IgZnJlcXVlbmNpZXMgYWJvdmUgNjEuMSBNSHouICBJbiB0aGVzZSBjYXNlcywgdGhlIGludGVybmFsIFJGCisJICogdHJhY2tpbmcgZmlsdGVycyBjYWxpYnJhdGlvbiBtZWNoYW5pc20gaXMgdXNlZC4KKwkgKgorCSAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gd2FybiB0aGUgdXNlciBhYm91dCB0aGlzLgorCSAqLworCWlmIChyZXQgPCAwKQorCQlnb3RvIGZhaWw7CiAKIAlyZWdzW1JfRUIxNF0gPSB2YWw7Ci0KLQlyZXR1cm4gMDsKK2ZhaWw6CisJcmV0dXJuIHJldDsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGExODI3MS1mZS5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKaW5kZXggODljMDFmYi4uOTMwNjNjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTE4MjcxLWZlLmMKQEAgLTQ1LDYgKzQ1LDIxIEBACiAJCQkJCSAgIFREQTE4MjcxX01BSU5fUExMLCBmb3JjZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCB0ZGExODI3MV9zZXRfaWZfbm90Y2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCit7CisJc3RydWN0IHRkYTE4MjcxX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKKwl1bnNpZ25lZCBjaGFyICpyZWdzID0gcHJpdi0+dGRhMTgyNzFfcmVnczsKKworCXN3aXRjaCAocHJpdi0+bW9kZSkgeworCWNhc2UgVERBMTgyNzFfQU5BTE9HOgorCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLworCQlicmVhazsKKwljYXNlIFREQTE4MjcxX0RJR0lUQUw6CisJCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KKwkJYnJlYWs7CisJfQorfQorCiBzdGF0aWMgaW50IHRkYTE4MjcxX2NoYW5uZWxfY29uZmlndXJhdGlvbihzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwKIAkJCQkJICBzdHJ1Y3QgdGRhMTgyNzFfc3RkX21hcF9pdGVtICptYXAsCiAJCQkJCSAgdTMyIGZyZXEsIHUzMiBidykKQEAgLTYwLDI1ICs3NSwxOCBAQAogCXJlZ3NbUl9FUDNdICAmPSB+MHgxZjsgLyogY2xlYXIgc3RkIGJpdHMgKi8KIAlyZWdzW1JfRVAzXSAgfD0gKG1hcC0+YWdjX21vZGUgPDwgMykgfCBtYXAtPnN0ZDsKIAotCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KLQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKKwlpZiAocHJpdi0+aWQgPT0gVERBMTgyNzFIREMyKSB7CisJCS8qIHNldCByZmFnYyB0byBoaWdoIHNwZWVkIG1vZGUgKi8KKwkJcmVnc1tSX0VQM10gJj0gfjB4MDQ7CisJfQogCiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAJcmVnc1tSX0VQNF0gIHw9IChtYXAtPmlmX2x2bCA8PCAyKTsKIAotCXN3aXRjaCAocHJpdi0+bW9kZSkgewotCWNhc2UgVERBMTgyNzFfQU5BTE9HOgotCQlyZWdzW1JfTVBEXSAgJj0gfjB4ODA7IC8qIElGIG5vdGNoID0gMCAqLwotCQlicmVhazsKLQljYXNlIFREQTE4MjcxX0RJR0lUQUw6Ci0JCXJlZ3NbUl9NUERdICB8PSAweDgwOyAvKiBJRiBub3RjaCA9IDEgKi8KLQkJYnJlYWs7Ci0JfQotCiAJLyogdXBkYXRlIEZNX1JGbiAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHg4MDsKIAlyZWdzW1JfRVA0XSAgfD0gbWFwLT5mbV9yZm4gPDwgNzsKQEAgLTk1LDYgKzEwMyw5IEBACiAJLyogZGlzYWJsZSBQb3dlciBMZXZlbCBJbmRpY2F0b3IgKi8KIAlyZWdzW1JfRVAxXSAgfD0gMHg0MDsKIAorCS8qIG1ha2Ugc3VyZSB0aGVybW9tZXRlciBpcyBvZmYgKi8KKwlyZWdzW1JfVE1dICAgJj0gfjB4MTA7CisKIAkvKiBmcmVxdWVuY3kgZGVwZW5kZW50IHBhcmFtZXRlcnMgKi8KIAogCXRkYTE4MjcxX2NhbGNfaXJfbWVhc3VyZShmZSwgJmZyZXEpOwpAQCAtMTM1LDYgKzE0Niw3IEBACiAJc3dpdGNoIChwcml2LT5yb2xlKSB7CiAJY2FzZSBUREExODI3MV9NQVNURVI6CiAJCXRkYTE4MjcxX2NhbGNfbWFpbl9wbGwoZmUsIE4pOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgNCk7CiAJCWJyZWFrOwogCWNhc2UgVERBMTgyNzFfU0xBVkU6CkBAIC0xNDIsNiArMTU0LDcgQEAKIAkJdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9DUEQsIDQpOwogCiAJCXJlZ3NbUl9NUERdID0gcmVnc1tSX0NQRF0gJiAweDdmOworCQl0ZGExODI3MV9zZXRfaWZfbm90Y2goZmUpOwogCQl0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX01QRCwgMSk7CiAJCWJyZWFrOwogCX0KQEAgLTE2MCwxMiArMTczLDE0IEBACiAKIAltc2xlZXAoMjApOwogCi0JLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCi0JaWYgKG1hcC0+Zm1fcmZuKQotCQlyZWdzW1JfRVAzXSAmPSB+MHgwNDsKLQllbHNlCi0JCXJlZ3NbUl9FUDNdIHw9IDB4MDQ7Ci0JcmV0ID0gdGRhMTgyNzFfd3JpdGVfcmVncyhmZSwgUl9FUDMsIDEpOworCWlmIChwcml2LT5pZCA9PSBUREExODI3MUhEQzIpIHsKKwkJLyogc2V0IHJmYWdjIHRvIG5vcm1hbCBzcGVlZCBtb2RlICovCisJCWlmIChtYXAtPmZtX3JmbikKKwkJCXJlZ3NbUl9FUDNdICY9IH4weDA0OworCQllbHNlCisJCQlyZWdzW1JfRVAzXSB8PSAweDA0OworCQlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMSk7CisJfQogZmFpbDoKIAlyZXR1cm4gcmV0OwogfQpAQCAtNTA3LDcgKzUyMiw3IEBACiAJLyogc2V0IGNhbCBtb2RlIHRvIG5vcm1hbCAqLwogCXJlZ3NbUl9FUDRdICAmPSB+MHgwMzsKIAotCS8qIHVwZGF0ZSBJRiBvdXRwdXQgbGV2ZWwgJiBJRiBub3RjaCBmcmVxdWVuY3kgKi8KKwkvKiB1cGRhdGUgSUYgb3V0cHV0IGxldmVsICovCiAJcmVnc1tSX0VQNF0gICY9IH4weDFjOyAvKiBjbGVhciBpZiBsZXZlbCBiaXRzICovCiAKIAlyZXQgPSB0ZGExODI3MV93cml0ZV9yZWdzKGZlLCBSX0VQMywgMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhODI3eC5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RkYTgyN3guYwppbmRleCBkMzBkMmM5Li44NTU1ZDljIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGRhODI3eC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZGE4Mjd4LmMKQEAgLTQxOCwxMyArNDE4LDEzIEBACiAJdW5zaWduZWQgY2hhciBidWZbXSA9IHsweDIyLCAweDAxfTsKIAlpbnQgYXJnOwogCWludCBncF9mdW5jOwotCXN0cnVjdCBpMmNfbXNnIG1zZyA9IHsgLmFkZHIgPSBwcml2LT5jZmctPnN3aXRjaF9hZGRyLCAuZmxhZ3MgPSAwLAotCQkJICAgICAgIC5idWYgPSBidWYsIC5sZW4gPSBzaXplb2YoYnVmKSB9OworCXN0cnVjdCBpMmNfbXNnIG1zZyA9IHsgLmZsYWdzID0gMCwgLmJ1ZiA9IGJ1ZiwgLmxlbiA9IHNpemVvZihidWYpIH07CiAKIAlpZiAoTlVMTCA9PSBwcml2LT5jZmcpIHsKIAkJZHByaW50aygidGRhODI3eF9jb25maWcgbm90IGRlZmluZWQsIGNhbm5vdCBzZXQgTE5BIGdhaW4hXG4iKTsKIAkJcmV0dXJuOwogCX0KKwltc2cuYWRkciA9IHByaXYtPmNmZy0+c3dpdGNoX2FkZHI7CiAJaWYgKHByaXYtPmNmZy0+Y29uZmlnKSB7CiAJCWlmIChoaWdoKQogCQkJZHByaW50aygic2V0dGluZyBMTkEgdG8gaGlnaCBnYWluXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZWE1NzYxLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdGVhNTc2MS5jCmluZGV4IGI5M2NkZWYuLmIyM2RhZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90ZWE1NzYxLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3RlYTU3NjEuYwpAQCAtMjk1LDcgKzI5NSw3IEBACiB7CiAJc3RydWN0IHRlYTU3NjFfcHJpdiAqcHJpdiA9IE5VTEw7CiAKLQlpZiAodGVhNTc2MV9hdXRvZGV0ZWN0aW9uKGkyY19hZGFwLCBpMmNfYWRkcikgPT0gRUlOVkFMKQorCWlmICh0ZWE1NzYxX2F1dG9kZXRlY3Rpb24oaTJjX2FkYXAsIGkyY19hZGRyKSAhPSAwKQogCQlyZXR1cm4gTlVMTDsKIAogCXByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGVhNTc2MV9wcml2KSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXItaTJjLmggYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXItaTJjLmgKaW5kZXggM2FkNmM4ZS4uY2IxYzcxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLWkyYy5oCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90dW5lci1pMmMuaApAQCAtMTcwLDQgKzE3MCwxMiBAQAogCV9fcmV0OwkJCQkJCQkJXAogfSkKIAorI2RlZmluZSBoeWJyaWRfdHVuZXJfcmVwb3J0X2luc3RhbmNlX2NvdW50KHN0YXRlKQkJCVwKKyh7CQkJCQkJCQkJXAorCWludCBfX3JldCA9IDA7CQkJCQkJCVwKKwlpZiAoc3RhdGUpCQkJCQkJCVwKKwkJX19yZXQgPSBzdGF0ZS0+aTJjX3Byb3BzLmNvdW50OwkJCQlcCisJX19yZXQ7CQkJCQkJCQlcCit9KQorCiAjZW5kaWYgLyogX19UVU5FUl9JMkNfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXItc2ltcGxlLmMgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXItc2ltcGxlLmMKaW5kZXggYmU4ZDkwMy4uMjY2YzI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLXNpbXBsZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90dW5lci1zaW1wbGUuYwpAQCAtMTAxOCw4ICsxMDE4LDEwIEBACiAJCQlmZS0+b3BzLmkyY19nYXRlX2N0cmwoZmUsIDEpOwogCiAJCWlmICgxICE9IGkyY190cmFuc2ZlcihpMmNfYWRhcCwgJm1zZywgMSkpCi0JCQl0dW5lcl93YXJuKCJ1bmFibGUgdG8gcHJvYmUgJXMsIHByb2NlZWRpbmcgYW55d2F5LiIsCi0JCQkJICAgdHVuZXJzW3R5cGVdLm5hbWUpOworCQkJcHJpbnRrKEtFUk5fV0FSTklORyAidHVuZXItc2ltcGxlICVkLSUwNHg6ICIKKwkJCSAgICAgICAidW5hYmxlIHRvIHByb2JlICVzLCBwcm9jZWVkaW5nIGFueXdheS4iLAorCQkJICAgICAgIGkyY19hZGFwdGVyX2lkKGkyY19hZGFwKSwgaTJjX2FkZHIsCisJCQkgICAgICAgdHVuZXJzW3R5cGVdLm5hbWUpOwogCiAJCWlmIChmZS0+b3BzLmkyY19nYXRlX2N0cmwpCiAJCQlmZS0+b3BzLmkyY19nYXRlX2N0cmwoZmUsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLXhjMjAyOC5jIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3R1bmVyLXhjMjAyOC5jCmluZGV4IDllOTAwM2MuLjMwZWIwN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy90dW5lci14YzIwMjguYworKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMvdHVuZXIteGMyMDI4LmMKQEAgLTQ2LDcgKzQ2LDcgQEAKIE1PRFVMRV9QQVJNX0RFU0MoZmlybXdhcmVfbmFtZSwgIkZpcm13YXJlIGZpbGUgbmFtZS4gQWxsb3dzIG92ZXJyaWRpbmcgdGhlICIKIAkJCQkiZGVmYXVsdCBmaXJtd2FyZSBuYW1lXG4iKTsKIAotc3RhdGljIExJU1RfSEVBRCh4YzIwMjhfbGlzdCk7CitzdGF0aWMgTElTVF9IRUFEKGh5YnJpZF90dW5lcl9pbnN0YW5jZV9saXN0KTsKIHN0YXRpYyBERUZJTkVfTVVURVgoeGMyMDI4X2xpc3RfbXV0ZXgpOwogCiAvKiBzdHJ1Y3QgZm9yIHN0b3JpbmcgZmlybXdhcmUgdGFibGUgKi8KQEAgLTY4LDEyICs2OCwxMSBAQAogfTsKIAogc3RydWN0IHhjMjAyOF9kYXRhIHsKLQlzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICB4YzIwMjhfbGlzdDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICBoeWJyaWRfdHVuZXJfaW5zdGFuY2VfbGlzdDsKIAlzdHJ1Y3QgdHVuZXJfaTJjX3Byb3BzICBpMmNfcHJvcHM7CiAJaW50ICAgICAgICAgICAgICAgICAgICAgKCp0dW5lcl9jYWxsYmFjaykgKHZvaWQgKmRldiwKIAkJCQkJCSAgIGludCBjb21tYW5kLCBpbnQgYXJnKTsKIAl2b2lkCQkJKnZpZGVvX2RldjsKLQlpbnQJCQljb3VudDsKIAlfX3UzMgkJCWZyZXF1ZW5jeTsKIAogCXN0cnVjdCBmaXJtd2FyZV9kZXNjcmlwdGlvbiAqZmlybTsKQEAgLTI1NSw3ICsyNTQsNyBAQAogewogCXN0cnVjdCB4YzIwMjhfZGF0YSAgICAqcHJpdiA9IGZlLT50dW5lcl9wcml2OwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgICA9IE5VTEw7Ci0JdW5zaWduZWQgY2hhciAgICAgICAgICpwLCAqZW5kcDsKKwljb25zdCB1bnNpZ25lZCBjaGFyICAgKnAsICplbmRwOwogCWludCAgICAgICAgICAgICAgICAgICByYyA9IDA7CiAJaW50CQkgICAgICBuLCBuX2FycmF5OwogCWNoYXIJCSAgICAgIG5hbWVbMzNdOwpAQCAtMTA3MiwyMCArMTA3MSwxOSBAQAogCiAJbXV0ZXhfbG9jaygmeGMyMDI4X2xpc3RfbXV0ZXgpOwogCi0JcHJpdi0+Y291bnQtLTsKLQotCWlmICghcHJpdi0+Y291bnQpIHsKLQkJbGlzdF9kZWwoJnByaXYtPnhjMjAyOF9saXN0KTsKLQorCS8qIG9ubHkgcGVyZm9ybSBmaW5hbCBjbGVhbnVwIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdGFuY2UgKi8KKwlpZiAoaHlicmlkX3R1bmVyX3JlcG9ydF9pbnN0YW5jZV9jb3VudChwcml2KSA9PSAxKSB7CiAJCWtmcmVlKHByaXYtPmN0cmwuZm5hbWUpOwotCiAJCWZyZWVfZmlybXdhcmUocHJpdik7Ci0JCWtmcmVlKHByaXYpOwotCQlmZS0+dHVuZXJfcHJpdiA9IE5VTEw7CiAJfQogCisJaWYgKHByaXYpCisJCWh5YnJpZF90dW5lcl9yZWxlYXNlX3N0YXRlKHByaXYpOworCiAJbXV0ZXhfdW5sb2NrKCZ4YzIwMjhfbGlzdF9tdXRleCk7CiAKKwlmZS0+dHVuZXJfcHJpdiA9IE5VTEw7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTE1MCw3ICsxMTQ4LDcgQEAKIAkJCQkgICBzdHJ1Y3QgeGMyMDI4X2NvbmZpZyAqY2ZnKQogewogCXN0cnVjdCB4YzIwMjhfZGF0YSAqcHJpdjsKLQl2b2lkICAgICAgICAgICAgICAgKnZpZGVvX2RldjsKKwlpbnQgaW5zdGFuY2U7CiAKIAlpZiAoZGVidWcpCiAJCXByaW50ayhLRVJOX0RFQlVHICJ4YzIwMjg6IFhjdjIwMjgvMzAyOCBpbml0IGNhbGxlZCFcbiIpOwpAQCAtMTE2Myw0OSArMTE2MSw0MSBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKLQl2aWRlb19kZXYgPSBjZmctPmkyY19hZGFwLT5hbGdvX2RhdGE7Ci0KLQlpZiAoZGVidWcpCi0JCXByaW50ayhLRVJOX0RFQlVHICJ4YzIwMjg6IHZpZGVvX2RldiA9JXBcbiIsIHZpZGVvX2Rldik7Ci0KIAltdXRleF9sb2NrKCZ4YzIwMjhfbGlzdF9tdXRleCk7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHByaXYsICZ4YzIwMjhfbGlzdCwgeGMyMDI4X2xpc3QpIHsKLQkJaWYgKCZwcml2LT5pMmNfcHJvcHMuYWRhcC0+ZGV2ID09ICZjZmctPmkyY19hZGFwLT5kZXYpIHsKLQkJCXZpZGVvX2RldiA9IE5VTEw7Ci0JCQlpZiAoZGVidWcpCi0JCQkJcHJpbnRrKEtFUk5fREVCVUcgInhjMjAyODogcmV1c2luZyBkZXZpY2VcbiIpOwotCi0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICh2aWRlb19kZXYpIHsKLQkJcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7Ci0JCWlmIChwcml2ID09IE5VTEwpIHsKLQkJCW11dGV4X3VubG9jaygmeGMyMDI4X2xpc3RfbXV0ZXgpOwotCQkJcmV0dXJuIE5VTEw7Ci0JCX0KLQotCQlwcml2LT5pMmNfcHJvcHMuYWRkciA9IGNmZy0+aTJjX2FkZHI7Ci0JCXByaXYtPmkyY19wcm9wcy5hZGFwID0gY2ZnLT5pMmNfYWRhcDsKLQkJcHJpdi0+aTJjX3Byb3BzLm5hbWUgPSAieGMyMDI4IjsKLQotCQlwcml2LT52aWRlb19kZXYgPSB2aWRlb19kZXY7CisJaW5zdGFuY2UgPSBoeWJyaWRfdHVuZXJfcmVxdWVzdF9zdGF0ZShzdHJ1Y3QgeGMyMDI4X2RhdGEsIHByaXYsCisJCQkJCSAgICAgIGh5YnJpZF90dW5lcl9pbnN0YW5jZV9saXN0LAorCQkJCQkgICAgICBjZmctPmkyY19hZGFwLCBjZmctPmkyY19hZGRyLAorCQkJCQkgICAgICAieGMyMDI4Iik7CisJc3dpdGNoIChpbnN0YW5jZSkgeworCWNhc2UgMDoKKwkJLyogbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSAqLworCQlnb3RvIGZhaWw7CisJCWJyZWFrOworCWNhc2UgMToKKwkJLyogbmV3IHR1bmVyIGluc3RhbmNlICovCiAJCXByaXYtPnR1bmVyX2NhbGxiYWNrID0gY2ZnLT5jYWxsYmFjazsKIAkJcHJpdi0+Y3RybC5tYXhfbGVuID0gMTM7CiAKIAkJbXV0ZXhfaW5pdCgmcHJpdi0+bG9jayk7CiAKLQkJbGlzdF9hZGRfdGFpbCgmcHJpdi0+eGMyMDI4X2xpc3QsICZ4YzIwMjhfbGlzdCk7CisJCS8qIGFuYWxvZyBzaWRlICh0dW5lci1jb3JlKSB1c2VzIGkyY19hZGFwLT5hbGdvX2RhdGEuCisJCSAqIGRpZ2l0YWwgc2lkZSBpcyBub3QgZ3VhcmFudGVlZCB0byBoYXZlIGFsZ29fZGF0YSBkZWZpbmVkLgorCQkgKgorCQkgKiBkaWdpdGFsIHNpZGUgd2lsbCBhbHdheXMgaGF2ZSBmZS0+ZHZiIGRlZmluZWQuCisJCSAqIGFuYWxvZyBzaWRlICh0dW5lci1jb3JlKSBkb2Vzbid0ICh5ZXQpIGRlZmluZSBmZS0+ZHZiLgorCQkgKi8KKwkJcHJpdi0+dmlkZW9fZGV2ID0gKChmZS0+ZHZiKSAmJiAoZmUtPmR2Yi0+cHJpdikpID8KKwkJCQkgICBmZS0+ZHZiLT5wcml2IDogY2ZnLT5pMmNfYWRhcC0+YWxnb19kYXRhOworCisJCWZlLT50dW5lcl9wcml2ID0gcHJpdjsKKwkJYnJlYWs7CisJY2FzZSAyOgorCQkvKiBleGlzdGluZyB0dW5lciBpbnN0YW5jZSAqLworCQlmZS0+dHVuZXJfcHJpdiA9IHByaXY7CisJCWJyZWFrOwogCX0KIAotCWZlLT50dW5lcl9wcml2ID0gcHJpdjsKLQlwcml2LT5jb3VudCsrOwotCi0JaWYgKGRlYnVnKQotCQlwcmludGsoS0VSTl9ERUJVRyAieGMyMDI4OiB1c2FnZSBjb3VudCBpcyAlaVxuIiwgcHJpdi0+Y291bnQpOwotCiAJbWVtY3B5KCZmZS0+b3BzLnR1bmVyX29wcywgJnhjMjAyOF9kdmJfdHVuZXJfb3BzLAogCSAgICAgICBzaXplb2YoeGMyMDI4X2R2Yl90dW5lcl9vcHMpKTsKIApAQCAtMTIxNyw2ICsxMjA3LDExIEBACiAJbXV0ZXhfdW5sb2NrKCZ4YzIwMjhfbGlzdF9tdXRleCk7CiAKIAlyZXR1cm4gZmU7CitmYWlsOgorCW11dGV4X3VubG9jaygmeGMyMDI4X2xpc3RfbXV0ZXgpOworCisJeGMyMDI4X2R2Yl9yZWxlYXNlKGZlKTsKKwlyZXR1cm4gTlVMTDsKIH0KIAogRVhQT1JUX1NZTUJPTCh4YzIwMjhfYXR0YWNoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDAuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3R1bmVycy94YzUwMDAuYwppbmRleCBjZWFlNmRiLi40ODc4ZDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwLmMKKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMC5jCkBAIC0xNzcsNiArMTc3LDcgQEAKIAl7IkZNIFJhZGlvLUlOUFVUMSIsICAgMHgwMjA4LCAweDkwMDJ9CiB9OwogCitzdGF0aWMgaW50ICB4YzUwMDBfaXNfZmlybXdhcmVfbG9hZGVkKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKTsKIHN0YXRpYyBpbnQgIHhjNTAwMF93cml0ZXJlZ3Moc3RydWN0IHhjNTAwMF9wcml2ICpwcml2LCB1OCAqYnVmLCB1OCBsZW4pOwogc3RhdGljIGludCAgeGM1MDAwX3JlYWRyZWdzKHN0cnVjdCB4YzUwMDBfcHJpdiAqcHJpdiwgdTggKmJ1ZiwgdTggbGVuKTsKIHN0YXRpYyB2b2lkIHhjNTAwMF9UdW5lclJlc2V0KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKTsKQEAgLTI3Nyw3ICsyNzgsNyBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbnQgeGNfbG9hZF9pMmNfc2VxdWVuY2Uoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIHU4IGkyY19zZXF1ZW5jZVtdKQorc3RhdGljIGludCB4Y19sb2FkX2kyY19zZXF1ZW5jZShzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwgY29uc3QgdTggKmkyY19zZXF1ZW5jZSkKIHsKIAlzdHJ1Y3QgeGM1MDAwX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKIApAQCAtMzUyLDcgKzM1Myw3IEBACiAKIHN0YXRpYyBpbnQgeGNfc2h1dGRvd24oc3RydWN0IHhjNTAwMF9wcml2ICpwcml2KQogewotCXJldHVybiAwOworCXJldHVybiBYQ19SRVNVTFRfU1VDQ0VTUzsKIAkvKiBGaXhtZTogY2Fubm90IGJyaW5nIHR1bmVyIGJhY2sgYWxpdmUgb25jZSBzaHV0ZG93bgogCSAqICAgICAgICB3aXRob3V0IHJlbG9hZGluZyB0aGUgZHJpdmVyIG1vZHVsZXMuCiAJICogICAgcmV0dXJuIHhjX3dyaXRlX3JlZyhwcml2LCBYUkVHX1BPV0VSX0RPV04sIDApOwpAQCAtNjg1LDYgKzY4NiwyNSBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHhjNTAwMF9pc19maXJtd2FyZV9sb2FkZWQoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUpCit7CisJc3RydWN0IHhjNTAwMF9wcml2ICpwcml2ID0gZmUtPnR1bmVyX3ByaXY7CisJaW50IHJldDsKKwl1MTYgaWQ7CisKKwlyZXQgPSB4YzUwMDBfcmVhZHJlZyhwcml2LCBYUkVHX1BST0RVQ1RfSUQsICZpZCk7CisJaWYgKHJldCA9PSBYQ19SRVNVTFRfU1VDQ0VTUykgeworCQlpZiAoaWQgPT0gWENfUFJPRFVDVF9JRF9GV19OT1RfTE9BREVEKQorCQkJcmV0ID0gWENfUkVTVUxUX1JFU0VUX0ZBSUxVUkU7CisJCWVsc2UKKwkJCXJldCA9IFhDX1JFU1VMVF9TVUNDRVNTOworCX0KKworCWRwcmludGsoMSwgIiVzKCkgcmV0dXJucyAlcyBpZCA9IDB4JXhcbiIsIF9fZnVuY19fLAorCQlyZXQgPT0gWENfUkVTVUxUX1NVQ0NFU1MgPyAiVHJ1ZSIgOiAiRmFsc2UiLCBpZCk7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGludCB4Y19sb2FkX2Z3X2FuZF9pbml0X3R1bmVyKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKTsKIAogc3RhdGljIGludCB4YzUwMDBfc2V0X2FuYWxvZ19wYXJhbXMoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsCkBAIC02OTMsNyArNzEzLDcgQEAKIAlzdHJ1Y3QgeGM1MDAwX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKIAlpbnQgcmV0OwogCi0JaWYocHJpdi0+Zndsb2FkZWQgPT0gMCkKKwlpZiAoeGM1MDAwX2lzX2Zpcm13YXJlX2xvYWRlZChmZSkgIT0gWENfUkVTVUxUX1NVQ0NFU1MpCiAJCXhjX2xvYWRfZndfYW5kX2luaXRfdHVuZXIoZmUpOwogCiAJZHByaW50aygxLCAiJXMoKSBmcmVxdWVuY3k9JWQgKGluIHVuaXRzIG9mIDYyLjVraHopXG4iLApAQCAtODA4LDExICs4MjgsMTAgQEAKIAlzdHJ1Y3QgeGM1MDAwX3ByaXYgKnByaXYgPSBmZS0+dHVuZXJfcHJpdjsKIAlpbnQgcmV0ID0gMDsKIAotCWlmIChwcml2LT5md2xvYWRlZCA9PSAwKSB7CisJaWYgKHhjNTAwMF9pc19maXJtd2FyZV9sb2FkZWQoZmUpICE9IFhDX1JFU1VMVF9TVUNDRVNTKSB7CiAJCXJldCA9IHhjNTAwMF9md3VwbG9hZChmZSk7CiAJCWlmIChyZXQgIT0gWENfUkVTVUxUX1NVQ0NFU1MpCiAJCQlyZXR1cm4gcmV0OwotCQlwcml2LT5md2xvYWRlZCA9IDE7CiAJfQogCiAJLyogU3RhcnQgdGhlIHR1bmVyIHNlbGYtY2FsaWJyYXRpb24gcHJvY2VzcyAqLwpAQCAtODUyLDcgKzg3MSw2IEBACiAJCXJldHVybiAtRVJFTU9URUlPOwogCX0KIAllbHNlIHsKLQkJLyogcHJpdi0+Zndsb2FkZWQgPSAwOyAqLwogCQlyZXR1cm4gWENfUkVTVUxUX1NVQ0NFU1M7CiAJfQogfQpAQCAtOTMzLDcgKzk1MSw2IEBACiAJCQljZmctPmkyY19hZGRyZXNzKTsKIAkJcHJpbnRrKEtFUk5fSU5GTwogCQkJInhjNTAwMDogRmlybXdhcmUgaGFzIGJlZW4gbG9hZGVkIHByZXZpb3VzbHlcbiIpOwotCQlwcml2LT5md2xvYWRlZCA9IDE7CiAJCWJyZWFrOwogCWNhc2UgWENfUFJPRFVDVF9JRF9GV19OT1RfTE9BREVEOgogCQlwcmludGsoS0VSTl9JTkZPCkBAIC05NDEsNyArOTU4LDYgQEAKIAkJCWNmZy0+aTJjX2FkZHJlc3MpOwogCQlwcmludGsoS0VSTl9JTkZPCiAJCQkieGM1MDAwOiBGaXJtd2FyZSBoYXMgbm90IGJlZW4gbG9hZGVkIHByZXZpb3VzbHlcbiIpOwotCQlwcml2LT5md2xvYWRlZCA9IDA7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXByaW50ayhLRVJOX0VSUgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21tb24vdHVuZXJzL3hjNTAwMF9wcml2LmggYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwX3ByaXYuaAppbmRleCBlY2ViZmU0Li5hNzJhOTg4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwX3ByaXYuaAorKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMveGM1MDAwX3ByaXYuaApAQCAtMzAsNyArMzAsNiBAQAogCXUzMiBiYW5kd2lkdGg7CiAJdTggIHZpZGVvX3N0YW5kYXJkOwogCXU4ICByZl9tb2RlOwotCXU4ICBmd2xvYWRlZDsKIAogCXZvaWQgKmRldnB0cjsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9iMmMyL2ZsZXhjb3AtdXNiLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9iMmMyL2ZsZXhjb3AtdXNiLmMKaW5kZXggNDQ5ZmI1Yy4uYWUwZDc2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvYjJjMi9mbGV4Y29wLXVzYi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2IyYzIvZmxleGNvcC11c2IuYwpAQCAtMzc5LDcgKzM3OSw3IEBACiAKIHN0YXRpYyBpbnQgZmxleGNvcF91c2JfdHJhbnNmZXJfaW5pdChzdHJ1Y3QgZmxleGNvcF91c2IgKmZjX3VzYikKIHsKLQl1MTYgZnJhbWVfc2l6ZSA9IGZjX3VzYi0+dWludGYtPmN1cl9hbHRzZXR0aW5nLT5lbmRwb2ludFswXS5kZXNjLndNYXhQYWNrZXRTaXplOworCXUxNiBmcmFtZV9zaXplID0gbGUxNl90b19jcHUoZmNfdXNiLT51aW50Zi0+Y3VyX2FsdHNldHRpbmctPmVuZHBvaW50WzBdLmRlc2Mud01heFBhY2tldFNpemUpOwogCWludCBidWZzaXplID0gQjJDMl9VU0JfTlVNX0lTT19VUkIgKiBCMkMyX1VTQl9GUkFNRVNfUEVSX0lTTyAqIGZyYW1lX3NpemUsaSxqLHJldDsKIAlpbnQgYnVmZmVyX29mZnNldCA9IDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2NpbmVyZ3lUMi9jaW5lcmd5VDIuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2NpbmVyZ3lUMi9jaW5lcmd5VDIuYwppbmRleCBmNTAxMGU4Li5hODI0ZjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9jaW5lcmd5VDIvY2luZXJneVQyLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvY2luZXJneVQyL2NpbmVyZ3lUMi5jCkBAIC04MiwyMiArODIsMjIgQEAKIAogc3RydWN0IGR2YnRfc2V0X3BhcmFtZXRlcnNfbXNnIHsKIAl1aW50OF90IGNtZDsKLQl1aW50MzJfdCBmcmVxOworCV9fbGUzMiBmcmVxOwogCXVpbnQ4X3QgYmFuZHdpZHRoOwotCXVpbnQxNl90IHRwczsKKwlfX2xlMTYgdHBzOwogCXVpbnQ4X3QgZmxhZ3M7CiB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogCiBzdHJ1Y3QgZHZidF9nZXRfc3RhdHVzX21zZyB7Ci0JdWludDMyX3QgZnJlcTsKKwlfX2xlMzIgZnJlcTsKIAl1aW50OF90IGJhbmR3aWR0aDsKLQl1aW50MTZfdCB0cHM7CisJX19sZTE2IHRwczsKIAl1aW50OF90IGZsYWdzOwotCXVpbnQxNl90IGdhaW47CisJX19sZTE2IGdhaW47CiAJdWludDhfdCBzbnI7Ci0JdWludDMyX3Qgdml0ZXJiaV9lcnJvcl9yYXRlOwotCXVpbnQzMl90IHJzX2Vycm9yX3JhdGU7Ci0JdWludDMyX3QgdW5jb3JyZWN0ZWRfYmxvY2tfY291bnQ7CisJX19sZTMyIHZpdGVyYmlfZXJyb3JfcmF0ZTsKKwlfX2xlMzIgcnNfZXJyb3JfcmF0ZTsKKwlfX2xlMzIgdW5jb3JyZWN0ZWRfYmxvY2tfY291bnQ7CiAJdWludDhfdCBsb2NrX2JpdHM7CiAJdWludDhfdCBwcmV2X2xvY2tfYml0czsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CkBAIC0xMzYsNiArMTM2LDcgQEAKIAl3YWl0X3F1ZXVlX2hlYWRfdCBwb2xsX3dxOwogCWludCBwZW5kaW5nX2ZlX2V2ZW50czsKIAlpbnQgZGlzY29ubmVjdF9wZW5kaW5nOworCXVuc2lnbmVkIGludCB1bmNvcnJlY3RlZF9ibG9ja19jb3VudDsKIAlhdG9taWNfdCBpbnVzZTsKIAogCXZvaWQgKnN0cmVhbWJ1ZjsKQEAgLTE0Nyw3ICsxNDgsNyBAQAogCWNoYXIgcGh5c1s2NF07CiAJc3RydWN0IGRlbGF5ZWRfd29yayByY19xdWVyeV93b3JrOwogCWludCByY19pbnB1dF9ldmVudDsKLQl1MzIgcmNfbGFzdF9jb2RlOworCV9fbGUzMiByY19sYXN0X2NvZGU7CiAJdW5zaWduZWQgbG9uZyBsYXN0X2V2ZW50X2ppZmZpZXM7CiAjZW5kaWYKIH07CkBAIC0xNjAsNyArMTYxLDcgQEAKIAogc3RydWN0IGNpbmVyZ3l0Ml9yY19ldmVudCB7CiAJY2hhciB0eXBlOwotCXVpbnQzMl90IHZhbHVlOworCV9fbGUzMiB2YWx1ZTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0YXRpYyBjb25zdCB1aW50MzJfdCByY19rZXlzW10gPSB7CkBAIC02MTksOCArNjIwLDExIEBACiAJewogCQl1aW50MzJfdCB1bmNfY291bnQ7CiAKLQkJdW5jX2NvdW50ID0gc3RhdC0+dW5jb3JyZWN0ZWRfYmxvY2tfY291bnQ7Ci0JCXN0YXQtPnVuY29ycmVjdGVkX2Jsb2NrX2NvdW50ID0gMDsKKwkJaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmY2luZXJneXQyLT5zZW0pKQorCQkJcmV0dXJuIC1FUkVTVEFSVFNZUzsKKwkJdW5jX2NvdW50ID0gY2luZXJneXQyLT51bmNvcnJlY3RlZF9ibG9ja19jb3VudDsKKwkJY2luZXJneXQyLT51bmNvcnJlY3RlZF9ibG9ja19jb3VudCA9IDA7CisJCW11dGV4X3VubG9jaygmY2luZXJneXQyLT5zZW0pOwogCiAJCS8qIFVOQyBhcmUgYWxyZWFkeSBjb252ZXJ0ZWQgdG8gaG9zdCBieXRlIG9yZGVyLi4uICovCiAJCXJldHVybiBwdXRfdXNlcih1bmNfY291bnQsKF9fdTMyIF9fdXNlciAqKSBhcmcpOwpAQCAtNzY5LDcgKzc3Myw3IEBACiAJCQkJaW5wdXRfc3luYyhjaW5lcmd5dDItPnJjX2lucHV0X2Rldik7CiAJCQkJY2luZXJneXQyLT5yY19pbnB1dF9ldmVudCA9IEtFWV9NQVg7CiAJCQl9Ci0JCQljaW5lcmd5dDItPnJjX2xhc3RfY29kZSA9IH4wOworCQkJY2luZXJneXQyLT5yY19sYXN0X2NvZGUgPSBjcHVfdG9fbGUzMih+MCk7CiAJCX0KIAkJZ290byBvdXQ7CiAJfQpAQCAtNzgwLDcgKzc4NCw3IEBACiAJCQluLCBsZTMyX3RvX2NwdShyY19ldmVudHNbbl0udmFsdWUpLCByY19ldmVudHNbbl0udHlwZSk7CiAKIAkJaWYgKHJjX2V2ZW50c1tuXS50eXBlID09IENJTkVSR1lUMl9SQ19FVkVOVF9UWVBFX05FQyAmJgotCQkgICAgcmNfZXZlbnRzW25dLnZhbHVlID09IH4wKSB7CisJCSAgICByY19ldmVudHNbbl0udmFsdWUgPT0gY3B1X3RvX2xlMzIofjApKSB7CiAJCQkvKiBrZXlyZXBlYXQgYml0IC0+IGp1c3QgcmVwZWF0IGxhc3QgcmNfaW5wdXRfZXZlbnQgKi8KIAkJfSBlbHNlIHsKIAkJCWNpbmVyZ3l0Mi0+cmNfaW5wdXRfZXZlbnQgPSBLRVlfTUFYOwpAQCAtNzk1LDcgKzc5OSw3IEBACiAKIAkJaWYgKGNpbmVyZ3l0Mi0+cmNfaW5wdXRfZXZlbnQgIT0gS0VZX01BWCkgewogCQkJaWYgKHJjX2V2ZW50c1tuXS52YWx1ZSA9PSBjaW5lcmd5dDItPnJjX2xhc3RfY29kZSAmJgotCQkJICAgIGNpbmVyZ3l0Mi0+cmNfbGFzdF9jb2RlICE9IH4wKSB7CisJCQkgICAgY2luZXJneXQyLT5yY19sYXN0X2NvZGUgIT0gY3B1X3RvX2xlMzIofjApKSB7CiAJCQkJLyogZW1pdCBhIGtleS11cCBzbyB0aGUgZG91YmxlIGV2ZW50IGlzIHJlY29nbml6ZWQgKi8KIAkJCQlkcHJpbnRrKDEsICJyY19pbnB1dF9ldmVudD0lZCBVUFxuIiwgY2luZXJneXQyLT5yY19pbnB1dF9ldmVudCk7CiAJCQkJaW5wdXRfcmVwb3J0X2tleShjaW5lcmd5dDItPnJjX2lucHV0X2RldiwKQEAgLTgyOSw3ICs4MzMsNyBAQAogCXVzYl9tYWtlX3BhdGgoY2luZXJneXQyLT51ZGV2LCBjaW5lcmd5dDItPnBoeXMsIHNpemVvZihjaW5lcmd5dDItPnBoeXMpKTsKIAlzdHJsY2F0KGNpbmVyZ3l0Mi0+cGh5cywgIi9pbnB1dDAiLCBzaXplb2YoY2luZXJneXQyLT5waHlzKSk7CiAJY2luZXJneXQyLT5yY19pbnB1dF9ldmVudCA9IEtFWV9NQVg7Ci0JY2luZXJneXQyLT5yY19sYXN0X2NvZGUgPSB+MDsKKwljaW5lcmd5dDItPnJjX2xhc3RfY29kZSA9IGNwdV90b19sZTMyKH4wKTsKIAlJTklUX0RFTEFZRURfV09SSygmY2luZXJneXQyLT5yY19xdWVyeV93b3JrLCBjaW5lcmd5dDJfcXVlcnlfcmMpOwogCiAJaW5wdXRfZGV2LT5uYW1lID0gRFJJVkVSX05BTUUgIiByZW1vdGUgY29udHJvbCI7CkBAIC04NDAsOCArODQ0LDggQEAKIAlpbnB1dF9kZXYtPmtleWNvZGVzaXplID0gMDsKIAlpbnB1dF9kZXYtPmtleWNvZGVtYXggPSAwOwogCWlucHV0X2Rldi0+aWQuYnVzdHlwZSA9IEJVU19VU0I7Ci0JaW5wdXRfZGV2LT5pZC52ZW5kb3IgPSBjaW5lcmd5dDItPnVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3I7Ci0JaW5wdXRfZGV2LT5pZC5wcm9kdWN0ID0gY2luZXJneXQyLT51ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdDsKKwlpbnB1dF9kZXYtPmlkLnZlbmRvciA9IGxlMTZfdG9fY3B1KGNpbmVyZ3l0Mi0+dWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcik7CisJaW5wdXRfZGV2LT5pZC5wcm9kdWN0ID0gbGUxNl90b19jcHUoY2luZXJneXQyLT51ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCk7CiAJaW5wdXRfZGV2LT5pZC52ZXJzaW9uID0gMTsKIAlpbnB1dF9kZXYtPmRldi5wYXJlbnQgPSAmY2luZXJneXQyLT51ZGV2LT5kZXY7CiAKQEAgLTg4OSwxOCArODkzLDE2IEBACiAJY2hhciBjbWQgW10gPSB7IENJTkVSR1lUMl9FUDFfR0VUX1RVTkVSX1NUQVRVUyB9OwogCXN0cnVjdCBkdmJ0X2dldF9zdGF0dXNfbXNnICpzID0gJmNpbmVyZ3l0Mi0+c3RhdHVzOwogCXVpbnQ4X3QgbG9ja19iaXRzOwotCXVpbnQzMl90IHVuYzsKIAogCWlmIChjaW5lcmd5dDItPmRpc2Nvbm5lY3RfcGVuZGluZyB8fCBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmNpbmVyZ3l0Mi0+c2VtKSkKIAkJcmV0dXJuOwogCi0JdW5jID0gcy0+dW5jb3JyZWN0ZWRfYmxvY2tfY291bnQ7CiAJbG9ja19iaXRzID0gcy0+bG9ja19iaXRzOwogCiAJY2luZXJneXQyX2NvbW1hbmQoY2luZXJneXQyLCBjbWQsIHNpemVvZihjbWQpLCAoY2hhciAqKSBzLCBzaXplb2YoKnMpKTsKIAotCXVuYyArPSBsZTMyX3RvX2NwdShzLT51bmNvcnJlY3RlZF9ibG9ja19jb3VudCk7Ci0Jcy0+dW5jb3JyZWN0ZWRfYmxvY2tfY291bnQgPSB1bmM7CisJY2luZXJneXQyLT51bmNvcnJlY3RlZF9ibG9ja19jb3VudCArPQorCQlsZTMyX3RvX2NwdShzLT51bmNvcnJlY3RlZF9ibG9ja19jb3VudCk7CiAKIAlpZiAobG9ja19iaXRzICE9IHMtPmxvY2tfYml0cykgewogCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmNpbmVyZ3l0Mi0+cG9sbF93cSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJfbmV0LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJfbmV0LmMKaW5kZXggNTZkODcxYy4uYzIzMzRhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZHZiX25ldC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi1jb3JlL2R2Yl9uZXQuYwpAQCAtMTY4LDcgKzE2OCw3IEBACiAgKiAgc3RvbGVuIGZyb20gZXRoLmMgb3V0IG9mIHRoZSBsaW51eCBrZXJuZWwsIGhhY2tlZCBmb3IgZHZiLWRldmljZQogICogIGJ5IE1pY2hhZWwgSG9senQgPGtqdUBkZWJpYW4ub3JnPgogICovCi1zdGF0aWMgdW5zaWduZWQgc2hvcnQgZHZiX25ldF9ldGhfdHlwZV90cmFucyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorc3RhdGljIF9fYmUxNiBkdmJfbmV0X2V0aF90eXBlX3RyYW5zKHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZXRoaGRyICpldGg7CkBAIC0yNzcsMTAgKzI3NywxMCBAQAogCQkJaWYoZXh0X2xlbiA+PSAwKSB7CiAJCQkJcC0+dWxlX25leHRfaGRyICs9IGV4dF9sZW47CiAJCQkJaWYgKCFwLT51bGVfYnJpZGdlZCkgewotCQkJCQlwLT51bGVfc25kdV90eXBlID0gbnRvaHMoKih1bnNpZ25lZCBzaG9ydCAqKXAtPnVsZV9uZXh0X2hkcik7CisJCQkJCXAtPnVsZV9zbmR1X3R5cGUgPSBudG9ocygqKF9fYmUxNiAqKXAtPnVsZV9uZXh0X2hkcik7CiAJCQkJCXAtPnVsZV9uZXh0X2hkciArPSAyOwogCQkJCX0gZWxzZSB7Ci0JCQkJCXAtPnVsZV9zbmR1X3R5cGUgPSBudG9ocygqKHVuc2lnbmVkIHNob3J0ICopKHAtPnVsZV9uZXh0X2hkciArICgocC0+dWxlX2RiaXQgPyAyIDogMykgKiBFVEhfQUxFTikpKTsKKwkJCQkJcC0+dWxlX3NuZHVfdHlwZSA9IG50b2hzKCooX19iZTE2ICopKHAtPnVsZV9uZXh0X2hkciArICgocC0+dWxlX2RiaXQgPyAyIDogMykgKiBFVEhfQUxFTikpKTsKIAkJCQkJLyogVGhpcyBhc3N1cmVzIHRoZSBleHRlbnNpb24gaGFuZGxpbmcgbG9vcCB3aWxsIHRlcm1pbmF0ZS4gKi8KIAkJCQl9CiAJCQl9CkBAIC0yOTQsNyArMjk0LDcgQEAKIAkJaWYgKHVsZV9vcHRpb25hbF9leHRfaGFuZGxlcnNbaHR5cGVdKQogCQkJKHZvaWQpdWxlX29wdGlvbmFsX2V4dF9oYW5kbGVyc1todHlwZV0oIHAgKTsKIAkJcC0+dWxlX25leHRfaGRyICs9IGV4dF9sZW47Ci0JCXAtPnVsZV9zbmR1X3R5cGUgPSBudG9ocyggKih1bnNpZ25lZCBzaG9ydCAqKShwLT51bGVfbmV4dF9oZHItMikgKTsKKwkJcC0+dWxlX3NuZHVfdHlwZSA9IG50b2hzKCAqKF9fYmUxNiAqKShwLT51bGVfbmV4dF9oZHItMikgKTsKIAkJLyoKIAkJICogbm90ZTogdGhlIGxlbmd0aCBvZiB0aGUgbmV4dCBoZWFkZXIgdHlwZSBpcyBpbmNsdWRlZCBpbiB0aGUKIAkJICogbGVuZ3RoIG9mIFRISVMgb3B0aW9uYWwgZXh0ZW5zaW9uIGhlYWRlcgpAQCAtNTk0LDggKzU5NCw4IEBACiAJCS8qIENoZWNrIGZvciBjb21wbGV0ZSBwYXlsb2FkLiAqLwogCQlpZiAocHJpdi0+dWxlX3NuZHVfcmVtYWluIDw9IDApIHsKIAkJCS8qIENoZWNrIENSQzMyLCB3ZSd2ZSBnb3QgaXQgaW4gb3VyIHNrYiBhbHJlYWR5LiAqLwotCQkJdW5zaWduZWQgc2hvcnQgdWxlbiA9IGh0b25zKHByaXYtPnVsZV9zbmR1X2xlbik7Ci0JCQl1bnNpZ25lZCBzaG9ydCB1dHlwZSA9IGh0b25zKHByaXYtPnVsZV9zbmR1X3R5cGUpOworCQkJX19iZTE2IHVsZW4gPSBodG9ucyhwcml2LT51bGVfc25kdV9sZW4pOworCQkJX19iZTE2IHV0eXBlID0gaHRvbnMocHJpdi0+dWxlX3NuZHVfdHlwZSk7CiAJCQljb25zdCB1OCAqdGFpbDsKIAkJCXN0cnVjdCBrdmVjIGlvdlszXSA9IHsKIAkJCQl7ICZ1bGVuLCBzaXplb2YgdWxlbiB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLWNvcmUvZHZiZGV2LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwppbmRleCA4YjU2ZDkyLi5lMjA4YTYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZS9kdmJkZXYuYwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJkdmJkZXYuaCIKIAogc3RhdGljIGludCBkdmJkZXZfZGVidWc7CkBAIC03NCw2ICs3NSw3IEBACiB7CiAJc3RydWN0IGR2Yl9kZXZpY2UgKmR2YmRldjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZHZiZGV2ID0gZHZiZGV2X2ZpbmRfZGV2aWNlIChpbWlub3IoaW5vZGUpKTsKIAogCWlmIChkdmJkZXYgJiYgZHZiZGV2LT5mb3BzKSB7CkBAIC05MCw4ICs5MiwxMCBAQAogCQkJZmlsZS0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKIAkJfQogCQlmb3BzX3B1dChvbGRfZm9wcyk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycjsKIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRU5PREVWOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL0tjb25maWcKaW5kZXggY2Y0NTg0ZS4uZjAwYTBlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9LY29uZmlnCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvS2NvbmZpZwpAQCAtMSw2ICsxLDYgQEAKIGNvbmZpZyBEVkJfVVNCCiAJdHJpc3RhdGUgIlN1cHBvcnQgZm9yIHZhcmlvdXMgVVNCIERWQiBkZXZpY2VzIgotCWRlcGVuZHMgb24gRFZCX0NPUkUgJiYgVVNCICYmIEkyQworCWRlcGVuZHMgb24gRFZCX0NPUkUgJiYgVVNCICYmIEkyQyAmJiBJTlBVVAogCWRlcGVuZHMgb24gSE9UUExVRwkjIGR1ZSB0byBGV19MT0FERVIKIAlzZWxlY3QgRldfTE9BREVSCiAJaGVscApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9jeHVzYi5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9jeHVzYi5jCmluZGV4IDcyMGZjZDEuLjAyODYxNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvY3h1c2IuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2N4dXNiLmMKQEAgLTI0LDYgKzI0LDcgQEAKICAqIHNlZSBEb2N1bWVudGF0aW9uL2R2Yi9SRUFETUUuZHZiLXVzYiBmb3IgbW9yZSBpbmZvcm1hdGlvbgogICovCiAjaW5jbHVkZSA8bWVkaWEvdHVuZXIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAKICNpbmNsdWRlICJjeHVzYi5oIgogCkBAIC03MDAsMTIgKzcwMSwyNiBAQAogCiAJCWlmIChmdy0+ZGF0YVtpZG9mZl0gPT0gKFVTQl9WSURfRFZJQ08gJiAweGZmKSAmJgogCQkgICAgZnctPmRhdGFbaWRvZmYgKyAxXSA9PSBVU0JfVklEX0RWSUNPID4+IDgpIHsKLQkJCWZ3LT5kYXRhW2lkb2ZmICsgMl0gPQorCQkJc3RydWN0IGZpcm13YXJlIG5ld19mdzsKKwkJCXU4ICpuZXdfZndfZGF0YSA9IHZtYWxsb2MoZnctPnNpemUpOworCQkJaW50IHJldDsKKworCQkJaWYgKCFuZXdfZndfZGF0YSkKKwkJCQlyZXR1cm4gLUVOT01FTTsKKworCQkJbWVtY3B5KG5ld19md19kYXRhLCBmdy0+ZGF0YSwgZnctPnNpemUpOworCQkJbmV3X2Z3LnNpemUgPSBmdy0+c2l6ZTsKKwkJCW5ld19mdy5kYXRhID0gbmV3X2Z3X2RhdGE7CisKKwkJCW5ld19md19kYXRhW2lkb2ZmICsgMl0gPQogCQkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSArIDE7Ci0JCQlmdy0+ZGF0YVtpZG9mZiArIDNdID0KKwkJCW5ld19md19kYXRhW2lkb2ZmICsgM10gPQogCQkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSA+PiA4OwogCi0JCQlyZXR1cm4gdXNiX2N5cHJlc3NfbG9hZF9maXJtd2FyZSh1ZGV2LCBmdywgQ1lQUkVTU19GWDIpOworCQkJcmV0ID0gdXNiX2N5cHJlc3NfbG9hZF9maXJtd2FyZSh1ZGV2LCAmbmV3X2Z3LAorCQkJCQkJCUNZUFJFU1NfRlgyKTsKKwkJCXZmcmVlKG5ld19md19kYXRhKTsKKwkJCXJldHVybiByZXQ7CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZGliMDcwMF9kZXZpY2VzLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2RpYjA3MDBfZGV2aWNlcy5jCmluZGV4IDM0NjIyMzguLmM0ZDQwZmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZGliMDcwMF9kZXZpY2VzLmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9kaWIwNzAwX2RldmljZXMuYwpAQCAtMTExLDggKzExMSw4IEBACiAJc3RydWN0IGkyY19hZGFwdGVyICp0dW5faTJjID0gZGliMzAwMG1jX2dldF90dW5lcl9pMmNfbWFzdGVyKGFkYXAtPmZlLCAxKTsKIAlzOCBhOwogCWludCBpZjE9MTIyMDsKLQlpZiAoYWRhcC0+ZGV2LT51ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yICA9PSBVU0JfVklEX0hBVVBQQVVHRSAmJgotCQlhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0ID09IFVTQl9QSURfSEFVUFBBVUdFX05PVkFfVF81MDBfMikgeworCWlmIChhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IgID09IGNwdV90b19sZTE2KFVTQl9WSURfSEFVUFBBVUdFKSAmJgorCQlhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0ID09IGNwdV90b19sZTE2KFVTQl9QSURfSEFVUFBBVUdFX05PVkFfVF81MDBfMikpIHsKIAkJaWYgKCFlZXByb21fcmVhZChwcmltX2kyYywweDU5ICsgYWRhcC0+aWQsJmEpKSBpZjE9MTIyMCthOwogCX0KIAlyZXR1cm4gZHZiX2F0dGFjaChtdDIwNjBfYXR0YWNoLGFkYXAtPmZlLCB0dW5faTJjLCZicmlzdG9sX210MjA2MF9jb25maWdbYWRhcC0+aWRdLApAQCAtNDAyLDggKzQwMiw4IEBACiB7CiAJc3RydWN0IHVzYl9kZXZpY2VfZGVzY3JpcHRvciAqZGVzYyA9ICZhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3I7CiAKLQlpZiAoZGVzYy0+aWRWZW5kb3IgID09IFVTQl9WSURfUElOTkFDTEUgJiYKLQkgICAgZGVzYy0+aWRQcm9kdWN0ID09IFVTQl9QSURfUElOTkFDTEVfRVhQUkVTU0NBUkRfMzIwQ1gpCisJaWYgKGRlc2MtPmlkVmVuZG9yICA9PSBjcHVfdG9fbGUxNihVU0JfVklEX1BJTk5BQ0xFKSAmJgorCSAgICBkZXNjLT5pZFByb2R1Y3QgPT0gY3B1X3RvX2xlMTYoVVNCX1BJRF9QSU5OQUNMRV9FWFBSRVNTQ0FSRF8zMjBDWCkpCiAJZGliMDcwMF9zZXRfZ3BpbyhhZGFwLT5kZXYsIEdQSU82LCBHUElPX09VVCwgMCk7CiAJZWxzZQogCWRpYjA3MDBfc2V0X2dwaW8oYWRhcC0+ZGV2LCBHUElPNiwgR1BJT19PVVQsIDEpOwpAQCAtODQ1LDggKzg0NSw4IEBACiAJc3RydWN0IGkyY19hZGFwdGVyICp0dW5faTJjOwogCXM4IGE7CiAJaW50IGlmMT0xMjIwOwotCWlmIChhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IgID09IFVTQl9WSURfSEFVUFBBVUdFICYmCi0JCWFkYXAtPmRldi0+dWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QgPT0gVVNCX1BJRF9IQVVQUEFVR0VfTk9WQV9UX1NUSUNLKSB7CisJaWYgKGFkYXAtPmRldi0+dWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvciAgPT0gY3B1X3RvX2xlMTYoVVNCX1ZJRF9IQVVQUEFVR0UpICYmCisJCWFkYXAtPmRldi0+dWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QgPT0gY3B1X3RvX2xlMTYoVVNCX1BJRF9IQVVQUEFVR0VfTk9WQV9UX1NUSUNLKSkgewogCQlpZiAoIWVlcHJvbV9yZWFkKHByaW1faTJjLDB4NTgsJmEpKSBpZjE9MTIyMCthOwogCX0KIAlpZiAoc3QtPmlzX2RpYjcwMDBwYykKQEAgLTk5MCwxMSArOTkwLDEyIEBACiAvKiBTVEs3MDcwUCAqLwogc3RhdGljIGludCBzdGs3MDcwcF9mcm9udGVuZF9hdHRhY2goc3RydWN0IGR2Yl91c2JfYWRhcHRlciAqYWRhcCkKIHsKLQlpZiAoYWRhcC0+ZGV2LT51ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yICA9PSBVU0JfVklEX1BJTk5BQ0xFICYmCi0JYWRhcC0+ZGV2LT51ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCA9PSBVU0JfUElEX1BJTk5BQ0xFX1BDVFY3MkUpCi0JZGliMDcwMF9zZXRfZ3BpbyhhZGFwLT5kZXYsIEdQSU82LCBHUElPX09VVCwgMCk7CisJc3RydWN0IHVzYl9kZXZpY2VfZGVzY3JpcHRvciAqcCA9ICZhZGFwLT5kZXYtPnVkZXYtPmRlc2NyaXB0b3I7CisJaWYgKHAtPmlkVmVuZG9yICA9PSBjcHVfdG9fbGUxNihVU0JfVklEX1BJTk5BQ0xFKSAmJgorCSAgICBwLT5pZFByb2R1Y3QgPT0gY3B1X3RvX2xlMTYoVVNCX1BJRF9QSU5OQUNMRV9QQ1RWNzJFKSkKKwkJZGliMDcwMF9zZXRfZ3BpbyhhZGFwLT5kZXYsIEdQSU82LCBHUElPX09VVCwgMCk7CiAJZWxzZQotCWRpYjA3MDBfc2V0X2dwaW8oYWRhcC0+ZGV2LCBHUElPNiwgR1BJT19PVVQsIDEpOworCQlkaWIwNzAwX3NldF9ncGlvKGFkYXAtPmRldiwgR1BJTzYsIEdQSU9fT1VULCAxKTsKIAltc2xlZXAoMTApOwogCWRpYjA3MDBfc2V0X2dwaW8oYWRhcC0+ZGV2LCBHUElPOSwgR1BJT19PVVQsIDEpOwogCWRpYjA3MDBfc2V0X2dwaW8oYWRhcC0+ZGV2LCBHUElPNCwgR1BJT19PVVQsIDEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9kdmItdXNiLWZpcm13YXJlLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2R2Yi11c2ItZmlybXdhcmUuYwppbmRleCBlMTExMmUzLi43MzNhN2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2R2Yi11c2ItZmlybXdhcmUuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2R2Yi11c2ItZmlybXdhcmUuYwpAQCAtMTI3LDcgKzEyNyw3IEBACiAJaWYgKCgqcG9zICsgaHgtPmxlbiArIDQpID49IGZ3LT5zaXplKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWh4LT5hZGRyID0gbGUxNl90b19jcHUoICooKHUxNiAqKSAmYlsxXSkgKTsKKwloeC0+YWRkciA9IGJbMV0gfCAoYlsyXSA8PCA4KTsKIAloeC0+dHlwZSA9IGJbM107CiAKIAlpZiAoaHgtPnR5cGUgPT0gMHgwNCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9nbDg2MS5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9nbDg2MS5jCmluZGV4IDBhOGFjNjQuLjAzN2Y3ZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ2w4NjEuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dsODYxLmMKQEAgLTQ3LDYgKzQ3LDggQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCisJbXNsZWVwKDEpOyAvKiBhdm9pZCBJMkMgZXJyb3JzICovCisKIAlyZXR1cm4gdXNiX2NvbnRyb2xfbXNnKGQtPnVkZXYsIHVzYl9yY3ZjdHJscGlwZShkLT51ZGV2LCAwKSwgcmVxLCB0eXBlLAogCQkJICAgICAgIHZhbHVlLCBpbmRleCwgcmJ1ZiwgcmxlbiwgMjAwMCk7CiB9CkBAIC05MiwxNiArOTQsNiBAQAogfTsKIAogLyogQ2FsbGJhY2tzIGZvciBEVkIgVVNCICovCi1zdGF0aWMgaW50IGdsODYxX2lkZW50aWZ5X3N0YXRlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LAotCQkJCXN0cnVjdCBkdmJfdXNiX2RldmljZV9wcm9wZXJ0aWVzICpwcm9wcywKLQkJCQlzdHJ1Y3QgZHZiX3VzYl9kZXZpY2VfZGVzY3JpcHRpb24gKipkZXNjLAotCQkJCWludCAqY29sZCkKLXsKLQkqY29sZCA9IDA7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHN0cnVjdCB6bDEwMzUzX2NvbmZpZyBnbDg2MV96bDEwMzUzX2NvbmZpZyA9IHsKIAkuZGVtb2RfYWRkcmVzcyA9IDB4MGYsCiAJLm5vX3R1bmVyID0gMSwKQEAgLTE3Miw3ICsxNjQsNiBAQAogCiAJLnNpemVfb2ZfcHJpdiAgICAgPSAwLAogCi0JLmlkZW50aWZ5X3N0YXRlICAgPSBnbDg2MV9pZGVudGlmeV9zdGF0ZSwKIAkubnVtX2FkYXB0ZXJzID0gMSwKIAkuYWRhcHRlciA9IHt7CiAKQEAgLTE5NCwxMyArMTg1LDE1IEBACiAKIAkubnVtX2RldmljZV9kZXNjcyA9IDIsCiAJLmRldmljZXMgPSB7Ci0JCXsgICAiTVNJIE1lZ2EgU2t5IDU1ODAxIERWQi1UIFVTQjIuMCIsCi0JCQl7ICZnbDg2MV90YWJsZVswXSwgTlVMTCB9LAotCQkJeyBOVUxMIH0sCisJCXsKKwkJCS5uYW1lID0gIk1TSSBNZWdhIFNreSA1NTgwMSBEVkItVCBVU0IyLjAiLAorCQkJLmNvbGRfaWRzID0geyBOVUxMIH0sCisJCQkud2FybV9pZHMgPSB7ICZnbDg2MV90YWJsZVswXSwgTlVMTCB9LAogCQl9LAotCQl7ICAgIkEtTElOSyBEVFUgRFZCLVQgVVNCMi4wIiwKLQkJCXsgJmdsODYxX3RhYmxlWzFdLCBOVUxMIH0sCi0JCQl7IE5VTEwgfSwKKwkJeworCQkJLm5hbWUgPSAiQS1MSU5LIERUVSBEVkItVCBVU0IyLjAiLAorCQkJLmNvbGRfaWRzID0geyBOVUxMIH0sCisJCQkud2FybV9pZHMgPSB7ICZnbDg2MV90YWJsZVsxXSwgTlVMTCB9LAogCQl9LAogCX0KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dwOHBzay5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9ncDhwc2suYwppbmRleCA5YTk0MmFmLi5kOTY1YTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL2dwOHBzay5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvZ3A4cHNrLmMKQEAgLTg2LDcgKzg2LDggQEAKIHsKIAlpbnQgcmV0OwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCXU4ICpwdHIsICpidWY7CisJY29uc3QgdTggKnB0cjsKKwl1OCAqYnVmOwogCWlmICgocmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGJjbTQ1MDBfZmlybXdhcmUsCiAJCQkJCSZkLT51ZGV2LT5kZXYpKSAhPSAwKSB7CiAJCWVycigiZGlkIG5vdCBmaW5kIHRoZSBiY200NTAwIGZpcm13YXJlIGZpbGUuICglcykgIgpAQCAtMTQ2LDI0ICsxNDcsMjQgQEAKIAkJaWYgKGdwX3Byb2R1Y3RfaWQgPT0gVVNCX1BJRF9HRU5QSVhfOFBTS19SRVZfMV9XQVJNKQogCQkJaWYgKCEgKHN0YXR1cyAmIGJtOHBza0ZXX0xvYWRlZCkpIC8qIEJDTTQ1MDAgZmlybXdhcmUgbG9hZGVkICovCiAJCQkJaWYoZ3A4cHNrX2xvYWRfYmNtNDUwMGZ3KGQpKQotCQkJCQlyZXR1cm4gRUlOVkFMOworCQkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQlpZiAoISAoc3RhdHVzICYgYm1JbnRlcnNpbE9uKSkgLyogTE5CIFBvd2VyICovCiAJCQlpZiAoZ3A4cHNrX3VzYl9pbl9vcChkLCBTVEFSVF9JTlRFUlNJTCwgMSwgMCwKIAkJCQkJJmJ1ZiwgMSkpCi0JCQkJcmV0dXJuIEVJTlZBTDsKKwkJCQlyZXR1cm4gLUVJTlZBTDsKIAogCQkvKiBTZXQgRFZCIG1vZGUgdG8gMSAqLwogCQlpZiAoZ3BfcHJvZHVjdF9pZCA9PSBVU0JfUElEX0dFTlBJWF84UFNLX1JFVl8xX1dBUk0pCiAJCQlpZiAoZ3A4cHNrX3VzYl9vdXRfb3AoZCwgU0VUX0RWQl9NT0RFLCAxLCAwLCBOVUxMLCAwKSkKLQkJCQlyZXR1cm4gRUlOVkFMOworCQkJCXJldHVybiAtRUlOVkFMOwogCQkvKiBBYm9ydCBwb3NzaWJsZSBUUyAoaWYgcHJldmlvdXMgdHVuZSBjcmFzaGVkKSAqLwogCQlpZiAoZ3A4cHNrX3VzYl9vdXRfb3AoZCwgQVJNX1RSQU5TRkVSLCAwLCAwLCBOVUxMLCAwKSkKLQkJCXJldHVybiBFSU5WQUw7CisJCQlyZXR1cm4gLUVJTlZBTDsKIAl9IGVsc2UgewogCQkvKiBUdXJuIG9mZiBMTkIgcG93ZXIgKi8KIAkJaWYgKGdwOHBza191c2JfaW5fb3AoZCwgU1RBUlRfSU5URVJTSUwsIDAsIDAsICZidWYsIDEpKQotCQkJcmV0dXJuIEVJTlZBTDsKKwkJCXJldHVybiAtRUlOVkFMOwogCQkvKiBUdXJuIG9mZiA4cHNrIHBvd2VyICovCiAJCWlmIChncDhwc2tfdXNiX2luX29wKGQsIEJPT1RfOFBTSywgMCwgMCwgJmJ1ZiwgMSkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvbTkyMHguYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvbTkyMHguYwppbmRleCBhMTJlNmY3Li41NDYyNmEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL205MjB4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9tOTIweC5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSAicXQxMDEwLmgiCiAjaW5jbHVkZSAidGRhMTAwNHguaCIKICNpbmNsdWRlICJ0ZGE4Mjd4LmgiCisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogCiAvKiBkZWJ1ZyAqLwogc3RhdGljIGludCBkdmJfdXNiX205MjB4X2RlYnVnOwpAQCAtMzQ3LDEzICszNDgsMTMgQEAKIAogCWZvciAocGFzcyA9IDA7IHBhc3MgPCAyOyBwYXNzKyspIHsKIAkJZm9yIChpID0gMDsgaSArIChzaXplb2YodTE2KSAqIDMpIDwgZnctPnNpemU7KSB7Ci0JCQl2YWx1ZSA9IGxlMTZfdG9fY3B1KCoodTE2ICopKGZ3LT5kYXRhICsgaSkpOworCQkJdmFsdWUgPSBnZXRfdW5hbGlnbmVkX2xlMTYoZnctPmRhdGEgKyBpKTsKIAkJCWkgKz0gc2l6ZW9mKHUxNik7CiAKLQkJCWluZGV4ID0gbGUxNl90b19jcHUoKih1MTYgKikoZnctPmRhdGEgKyBpKSk7CisJCQlpbmRleCA9IGdldF91bmFsaWduZWRfbGUxNihmdy0+ZGF0YSArIGkpOwogCQkJaSArPSBzaXplb2YodTE2KTsKIAotCQkJc2l6ZSA9IGxlMTZfdG9fY3B1KCoodTE2ICopKGZ3LT5kYXRhICsgaSkpOworCQkJc2l6ZSA9IGdldF91bmFsaWduZWRfbGUxNihmdy0+ZGF0YSArIGkpOwogCQkJaSArPSBzaXplb2YodTE2KTsKIAogCQkJaWYgKHBhc3MgPT0gMSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi91bXQtMDEwLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYwppbmRleCA5ZTc2NTNiLi4xMThhYWIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9kdmItdXNiL3VtdC0wMTAuYwpAQCAtMTA3LDcgKzEwNyw3IEBACiAJCQkvKiBwYXJhbWV0ZXIgZm9yIHRoZSBNUEVHMi1kYXRhIHRyYW5zZmVyICovCiAJCQkuc3RyZWFtID0gewogCQkJCS50eXBlID0gVVNCX0JVTEssCi0JCQkJLmNvdW50ID0gMjAsCisJCQkJLmNvdW50ID0gTUFYX05PX1VSQlNfRk9SX0RBVEFfU1RSRUFNLAogCQkJCS5lbmRwb2ludCA9IDB4MDYsCiAJCQkJLnUgPSB7CiAJCQkJCS5idWxrID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2F1ODUyMi5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2F1ODUyMi5jCmluZGV4IDA4NGEyODAuLjAzOTAwZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9hdTg1MjIuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYXU4NTIyLmMKQEAgLTQ2MywxMCArNDYzLDEzIEBACiAJCQkgICAgICAgc3RydWN0IGR2Yl9mcm9udGVuZF9wYXJhbWV0ZXJzICpwKQogewogCXN0cnVjdCBhdTg1MjJfc3RhdGUgKnN0YXRlID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CisJaW50IHJldCA9IC1FSU5WQUw7CiAKIAlkcHJpbnRrKCIlcyhmcmVxdWVuY3k9JWQpXG4iLCBfX2Z1bmNfXywgcC0+ZnJlcXVlbmN5KTsKIAotCXN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9IHAtPmZyZXF1ZW5jeTsKKwlpZiAoKHN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9PSBwLT5mcmVxdWVuY3kpICYmCisJICAgIChzdGF0ZS0+Y3VycmVudF9tb2R1bGF0aW9uID09IHAtPnUudnNiLm1vZHVsYXRpb24pKQorCQlyZXR1cm4gMDsKIAogCWF1ODUyMl9lbmFibGVfbW9kdWxhdGlvbihmZSwgcC0+dS52c2IubW9kdWxhdGlvbik7CiAKQEAgLTQ3NiwxMSArNDc5LDE2IEBACiAJaWYgKGZlLT5vcHMudHVuZXJfb3BzLnNldF9wYXJhbXMpIHsKIAkJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkKIAkJCWZlLT5vcHMuaTJjX2dhdGVfY3RybChmZSwgMSk7Ci0JCWZlLT5vcHMudHVuZXJfb3BzLnNldF9wYXJhbXMoZmUsIHApOworCQlyZXQgPSBmZS0+b3BzLnR1bmVyX29wcy5zZXRfcGFyYW1zKGZlLCBwKTsKIAkJaWYgKGZlLT5vcHMuaTJjX2dhdGVfY3RybCkKIAkJCWZlLT5vcHMuaTJjX2dhdGVfY3RybChmZSwgMCk7CiAJfQogCisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlzdGF0ZS0+Y3VycmVudF9mcmVxdWVuY3kgPSBwLT5mcmVxdWVuY3k7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNDk4LDYgKzUwNiwxNiBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGF1ODUyMl9zbGVlcChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3sKKwlzdHJ1Y3QgYXU4NTIyX3N0YXRlICpzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OworCWRwcmludGsoIiVzKClcbiIsIF9fZnVuY19fKTsKKworCXN0YXRlLT5jdXJyZW50X2ZyZXF1ZW5jeSA9IDA7CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBhdTg1MjJfcmVhZF9zdGF0dXMoc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsIGZlX3N0YXR1c190ICpzdGF0dXMpCiB7CiAJc3RydWN0IGF1ODUyMl9zdGF0ZSAqc3RhdGUgPSBmZS0+ZGVtb2R1bGF0b3JfcHJpdjsKQEAgLTUwOSwxMCArNTI3LDggQEAKIAlpZiAoc3RhdGUtPmN1cnJlbnRfbW9kdWxhdGlvbiA9PSBWU0JfOCkgewogCQlkcHJpbnRrKCIlcygpIENoZWNraW5nIFZTQl84XG4iLCBfX2Z1bmNfXyk7CiAJCXJlZyA9IGF1ODUyMl9yZWFkcmVnKHN0YXRlLCAweDQwODgpOwotCQlpZiAocmVnICYgMHgwMSkKLQkJCSpzdGF0dXMgfD0gRkVfSEFTX1ZJVEVSQkk7Ci0JCWlmIChyZWcgJiAweDAyKQotCQkJKnN0YXR1cyB8PSBGRV9IQVNfTE9DSyB8IEZFX0hBU19TWU5DOworCQlpZiAoKHJlZyAmIDB4MDMpID09IDB4MDMpCisJCQkqc3RhdHVzIHw9IEZFX0hBU19MT0NLIHwgRkVfSEFTX1NZTkMgfCBGRV9IQVNfVklURVJCSTsKIAl9IGVsc2UgewogCQlkcHJpbnRrKCIlcygpIENoZWNraW5nIFFBTVxuIiwgX19mdW5jX18pOwogCQlyZWcgPSBhdTg1MjJfcmVhZHJlZyhzdGF0ZSwgMHg0NTQxKTsKQEAgLTY3Miw2ICs2ODgsNyBAQAogCX0sCiAKIAkuaW5pdCAgICAgICAgICAgICAgICAgPSBhdTg1MjJfaW5pdCwKKwkuc2xlZXAgICAgICAgICAgICAgICAgPSBhdTg1MjJfc2xlZXAsCiAJLmkyY19nYXRlX2N0cmwgICAgICAgID0gYXU4NTIyX2kyY19nYXRlX2N0cmwsCiAJLnNldF9mcm9udGVuZCAgICAgICAgID0gYXU4NTIyX3NldF9mcm9udGVuZCwKIAkuZ2V0X2Zyb250ZW5kICAgICAgICAgPSBhdTg1MjJfZ2V0X2Zyb250ZW5kLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2JjbTM1MTAuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9iY20zNTEwLmMKaW5kZXggZDI2OGU2NS4uY2Y1ZTU3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2JjbTM1MTAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvYmNtMzUxMC5jCkBAIC01OTAsNyArNTkwLDggQEAKICAqLwogI2RlZmluZSBCQ00zNTEwX0RFRkFVTFRfRklSTVdBUkUgImR2Yi1mZS1iY20zNTEwLTAxLmZ3IgogCi1zdGF0aWMgaW50IGJjbTM1MTBfd3JpdGVfcmFtKHN0cnVjdCBiY20zNTEwX3N0YXRlICpzdCwgdTE2IGFkZHIsIHU4ICpiLCB1MTYgbGVuKQorc3RhdGljIGludCBiY20zNTEwX3dyaXRlX3JhbShzdHJ1Y3QgYmNtMzUxMF9zdGF0ZSAqc3QsIHUxNiBhZGRyLCBjb25zdCB1OCAqYiwKKwkJCSAgICAgdTE2IGxlbikKIHsKIAlpbnQgcmV0ID0gMCxpOwogCWJjbTM1MTBfcmVnaXN0ZXJfdmFsdWUgdkgsIHZMLHZEOwpAQCAtNjE0LDcgKzYxNSw3IEBACiAJc3RydWN0IGJjbTM1MTBfc3RhdGUqIHN0ID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAl1MTYgYWRkcixsZW47Ci0JdTggICpiOworCWNvbnN0IHU4ICpiOwogCWludCByZXQsaTsKIAogCWRlYl9pbmZvKCJyZXF1ZXN0aW5nIGZpcm13YXJlXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9kaWIwMDcwLmggYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvZGliMDA3MC5oCmluZGV4IDc4NmUzN2QuLjNlZWRmZGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9kaWIwMDcwLmgKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2RpYjAwNzAuaApAQCAtMzcsNyArMzcsMjAgQEAKIAl1OCBmbGlwX2NoaXA7CiB9OwogCi1leHRlcm4gc3RydWN0IGR2Yl9mcm9udGVuZCAqIGRpYjAwNzBfYXR0YWNoKHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlLCBzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyYywgc3RydWN0IGRpYjAwNzBfY29uZmlnICpjZmcpOworI2lmIGRlZmluZWQoQ09ORklHX0RWQl9UVU5FUl9ESUIwMDcwKSB8fCAoZGVmaW5lZChDT05GSUdfRFZCX1RVTkVSX0RJQjAwNzBfTU9EVUxFKSAmJiBkZWZpbmVkKE1PRFVMRSkpCitleHRlcm4gc3RydWN0IGR2Yl9mcm9udGVuZCAqZGliMDA3MF9hdHRhY2goc3RydWN0IGR2Yl9mcm9udGVuZCAqZmUsCisJCQkJCSAgIHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjLAorCQkJCQkgICBzdHJ1Y3QgZGliMDA3MF9jb25maWcgKmNmZyk7CisjZWxzZQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHZiX2Zyb250ZW5kICpkaWIwMDcwX2F0dGFjaChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSwKKwkJCQkJCSAgc3RydWN0IGkyY19hZGFwdGVyICppMmMsCisJCQkJCQkgIHN0cnVjdCBkaWIwMDcwX2NvbmZpZyAqY2ZnKQoreworCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBkcml2ZXIgZGlzYWJsZWQgYnkgS2NvbmZpZ1xuIiwgX19mdW5jX18pOworCXJldHVybiBOVUxMOworfQorI2VuZGlmCisKIGV4dGVybiB2b2lkIGRpYjAwNzBfY3RybF9hZ2NfZmlsdGVyKHN0cnVjdCBkdmJfZnJvbnRlbmQgKiwgdWludDhfdCBvcGVuKTsKIGV4dGVybiB1MTYgZGliMDA3MF93YmRfb2Zmc2V0KHN0cnVjdCBkdmJfZnJvbnRlbmQgKik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9kaWI3MDAwcC5oIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2RpYjcwMDBwLmgKaW5kZXggMDgxYmQ4MS4uMDdjNGQxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2RpYjcwMDBwLmgKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL2RpYjcwMDBwLmgKQEAgLTM3LDcgKzM3LDIwIEBACiAKICNkZWZpbmUgREVGQVVMVF9ESUI3MDAwUF9JMkNfQUREUkVTUyAxOAogCi1leHRlcm4gc3RydWN0IGR2Yl9mcm9udGVuZCAqIGRpYjcwMDBwX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmkyY19hZGFwLCB1OCBpMmNfYWRkciwgc3RydWN0IGRpYjcwMDBwX2NvbmZpZyAqY2ZnKTsKKyNpZiBkZWZpbmVkKENPTkZJR19EVkJfRElCNzAwMFApIHx8IChkZWZpbmVkKENPTkZJR19EVkJfRElCNzAwMFBfTU9EVUxFKSAmJiBkZWZpbmVkKE1PRFVMRSkpCitleHRlcm4gc3RydWN0IGR2Yl9mcm9udGVuZCAqZGliNzAwMHBfYXR0YWNoKHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjX2FkYXAsCisJCQkJCSAgICB1OCBpMmNfYWRkciwKKwkJCQkJICAgIHN0cnVjdCBkaWI3MDAwcF9jb25maWcgKmNmZyk7CisjZWxzZQorc3RhdGljIGlubGluZSBzdHJ1Y3QgZHZiX2Zyb250ZW5kICpkaWI3MDAwcF9hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICppMmNfYWRhcCwKKwkJCQkJCSAgIHU4IGkyY19hZGRyLAorCQkJCQkJICAgc3RydWN0IGRpYjcwMDBwX2NvbmZpZyAqY2ZnKQoreworCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBkcml2ZXIgZGlzYWJsZWQgYnkgS2NvbmZpZ1xuIiwgX19mdW5jX18pOworCXJldHVybiBOVUxMOworfQorI2VuZGlmCisKIGV4dGVybiBpbnQgZGliNzAwMHBfaTJjX2VudW1lcmF0aW9uKHN0cnVjdCBpMmNfYWRhcHRlciAqaTJjLCBpbnQgbm9fb2ZfZGVtb2RzLCB1OCBkZWZhdWx0X2FkZHIsIHN0cnVjdCBkaWI3MDAwcF9jb25maWcgY2ZnW10pOwogCiBleHRlcm4gc3RydWN0IGkyY19hZGFwdGVyICogZGliNzAwMHBfZ2V0X2kyY19tYXN0ZXIoc3RydWN0IGR2Yl9mcm9udGVuZCAqLCBlbnVtIGRpYngwMDBfaTJjX2ludGVyZmFjZSwgaW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9ueHQyMDB4LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvbnh0MjAweC5jCmluZGV4IDIzZDAyMjguLmFmMjk4MzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9ueHQyMDB4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL254dDIwMHguYwpAQCAtOTMsNyArOTMsOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG54dDIwMHhfd3JpdGVieXRlcyAoc3RydWN0IG54dDIwMHhfc3RhdGUqIHN0YXRlLCB1OCByZWcsIHU4ICpidWYsIHU4IGxlbikKK3N0YXRpYyBpbnQgbnh0MjAweF93cml0ZWJ5dGVzIChzdHJ1Y3Qgbnh0MjAweF9zdGF0ZSogc3RhdGUsIHU4IHJlZywKKwkJCSAgICAgICBjb25zdCB1OCAqYnVmLCB1OCBsZW4pCiB7CiAJdTggYnVmMiBbbGVuKzFdOwogCWludCBlcnI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTEzMi5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL29yNTExMzIuYwppbmRleCBjN2I1Nzg1Li41ZWQzMjU0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTEzMi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9vcjUxMTMyLmMKQEAgLTEyNiw3ICsxMjYsNyBAQAogCQkgICAgICAgcmVnLCBlcnIpOwogCQlyZXR1cm4gLUVSRU1PVEVJTzsKIAl9Ci0JcmV0dXJuIGxlMTZfdG9fY3B1cCgodTE2KilidWYpOworCXJldHVybiBidWZbMF0gfCAoYnVmWzFdIDw8IDgpOwogfQogCiBzdGF0aWMgaW50IG9yNTExMzJfbG9hZF9maXJtd2FyZSAoc3RydWN0IGR2Yl9mcm9udGVuZCogZmUsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCkBAIC0xNDAsOSArMTQwLDkgQEAKIAlkcHJpbnRrKCJGaXJtd2FyZSBpcyAlWmQgYnl0ZXNcbiIsZnctPnNpemUpOwogCiAJLyogR2V0IHNpemUgb2YgZmlybXdhcmUgQSBhbmQgQiAqLwotCWZpcm13YXJlQXNpemUgPSBsZTMyX3RvX2NwdSgqKCh1MzIqKWZ3LT5kYXRhKSk7CisJZmlybXdhcmVBc2l6ZSA9IGxlMzJfdG9fY3B1KCooKF9fbGUzMiopZnctPmRhdGEpKTsKIAlkcHJpbnRrKCJGaXJtd2FyZUEgaXMgJWkgYnl0ZXNcbiIsZmlybXdhcmVBc2l6ZSk7Ci0JZmlybXdhcmVCc2l6ZSA9IGxlMzJfdG9fY3B1KCooKHUzMiopKGZ3LT5kYXRhKzQpKSk7CisJZmlybXdhcmVCc2l6ZSA9IGxlMzJfdG9fY3B1KCooKF9fbGUzMiopKGZ3LT5kYXRhKzQpKSk7CiAJZHByaW50aygiRmlybXdhcmVCIGlzICVpIGJ5dGVzXG4iLGZpcm13YXJlQnNpemUpOwogCiAJLyogVXBsb2FkIGZpcm13YXJlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTIxMS5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL29yNTEyMTEuYwppbmRleCA3ZWFhNDc2Li42YWZlMTJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvb3I1MTIxMS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9vcjUxMjExLmMKQEAgLTY5LDcgKzY5LDcgQEAKIAl1MzIgY3VycmVudF9mcmVxdWVuY3k7CiB9OwogCi1zdGF0aWMgaW50IGkyY193cml0ZWJ5dGVzIChzdHJ1Y3Qgb3I1MTIxMV9zdGF0ZSogc3RhdGUsIHU4IHJlZywgdTggKmJ1ZiwKK3N0YXRpYyBpbnQgaTJjX3dyaXRlYnl0ZXMgKHN0cnVjdCBvcjUxMjExX3N0YXRlKiBzdGF0ZSwgdTggcmVnLCBjb25zdCB1OCAqYnVmLAogCQkJICAgaW50IGxlbikKIHsKIAlpbnQgZXJyOwpAQCAtNzcsNyArNzcsNyBAQAogCW1zZy5hZGRyCT0gcmVnOwogCW1zZy5mbGFncwk9IDA7CiAJbXNnLmxlbgkJPSBsZW47Ci0JbXNnLmJ1ZgkJPSBidWY7CisJbXNnLmJ1ZgkJPSAodTggKilidWY7CiAKIAlpZiAoKGVyciA9IGkyY190cmFuc2ZlciAoc3RhdGUtPmkyYywgJm1zZywgMSkpICE9IDEpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAib3I1MTIxMTogaTJjX3dyaXRlYnl0ZXMgZXJyb3IgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3MC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3MC5jCmluZGV4IGFhNzhhYTEuLjFjOWE5YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4NzAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODcwLmMKQEAgLTk4LDcgKzk4LDcgQEAKIHN0YXRpYyBpbnQgc3A4ODcwX2Zpcm13YXJlX3VwbG9hZCAoc3RydWN0IHNwODg3MF9zdGF0ZSogc3RhdGUsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CiAJc3RydWN0IGkyY19tc2cgbXNnOwotCWNoYXIgKmZ3X2J1ZiA9IGZ3LT5kYXRhOworCWNvbnN0IGNoYXIgKmZ3X2J1ZiA9IGZ3LT5kYXRhOwogCWludCBmd19wb3M7CiAJdTggdHhfYnVmWzI1NV07CiAJaW50IHR4X2xlbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4N3guYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zcDg4N3guYwppbmRleCA0OWY1NTg3Li40NTQzNjA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3A4ODd4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3NwODg3eC5jCkBAIC0xNDAsNyArMTQwLDcgQEAKIAl1OCBidWYgW0JMT0NLU0laRSsyXTsKIAlpbnQgaTsKIAlpbnQgZndfc2l6ZSA9IGZ3LT5zaXplOwotCXVuc2lnbmVkIGNoYXIgKm1lbSA9IGZ3LT5kYXRhOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1lbSA9IGZ3LT5kYXRhOwogCiAJZHByaW50aygiJXNcbiIsIF9fZnVuY19fKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3N0djAyOTkuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy9zdHYwMjk5LmMKaW5kZXggMTc1NTYxOC4uMzU0MzViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3N0djAyOTkuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvc3R2MDI5OS5jCkBAIC02Myw2ICs2Myw3IEBACiAJdTMyIHN5bWJvbF9yYXRlOwogCWZlX2NvZGVfcmF0ZV90IGZlY19pbm5lcjsKIAlpbnQgZXJybW9kZTsKKwl1MzIgdWNibG9ja3M7CiB9OwogCiAjZGVmaW5lIFNUQVRVU19CRVIgMApAQCAtNTAxLDggKzUwMiwxMCBAQAogewogCXN0cnVjdCBzdHYwMjk5X3N0YXRlKiBzdGF0ZSA9IGZlLT5kZW1vZHVsYXRvcl9wcml2OwogCi0JaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19CRVIpIHJldHVybiAwOwotCSpiZXIgPSAoc3R2MDI5OV9yZWFkcmVnIChzdGF0ZSwgMHgxZCkgPDwgOCkgfCBzdHYwMjk5X3JlYWRyZWcgKHN0YXRlLCAweDFlKTsKKwlpZiAoc3RhdGUtPmVycm1vZGUgIT0gU1RBVFVTX0JFUikKKwkJcmV0dXJuIC1FTk9TWVM7CisKKwkqYmVyID0gc3R2MDI5OV9yZWFkcmVnKHN0YXRlLCAweDFlKSB8IChzdHYwMjk5X3JlYWRyZWcoc3RhdGUsIDB4MWQpIDw8IDgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC01NDAsOCArNTQzLDEyIEBACiB7CiAJc3RydWN0IHN0djAyOTlfc3RhdGUqIHN0YXRlID0gZmUtPmRlbW9kdWxhdG9yX3ByaXY7CiAKLQlpZiAoc3RhdGUtPmVycm1vZGUgIT0gU1RBVFVTX1VDQkxPQ0tTKSAqdWNibG9ja3MgPSAwOwotCWVsc2UgKnVjYmxvY2tzID0gKHN0djAyOTlfcmVhZHJlZyAoc3RhdGUsIDB4MWQpIDw8IDgpIHwgc3R2MDI5OV9yZWFkcmVnIChzdGF0ZSwgMHgxZSk7CisJaWYgKHN0YXRlLT5lcnJtb2RlICE9IFNUQVRVU19VQ0JMT0NLUykKKwkJcmV0dXJuIC1FTk9TWVM7CisKKwlzdGF0ZS0+dWNibG9ja3MgKz0gc3R2MDI5OV9yZWFkcmVnKHN0YXRlLCAweDFlKTsKKwlzdGF0ZS0+dWNibG9ja3MgKz0gKHN0djAyOTlfcmVhZHJlZyhzdGF0ZSwgMHgxZCkgPDwgOCk7CisJKnVjYmxvY2tzID0gc3RhdGUtPnVjYmxvY2tzOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwMjMuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCmluZGV4IDA3MjdiODAuLmM2ZmY1YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDAyMy5jCkBAIC0xMTYsOSArMTE2LDEyIEBACiAJaW50IHJldDsKIAogCXJldCA9IGkyY190cmFuc2ZlciAoc3RhdGUtPmkyYywgbXNnLCAyKTsKLQlpZiAocmV0ICE9IDIpCi0JCXByaW50aygiRFZCOiBUREExMDAyMzogJXM6IHJlYWRyZWcgZXJyb3IgKHJldCA9PSAlaSlcbiIsCi0JCQkJIF9fZnVuY19fLCByZXQpOworCWlmIChyZXQgIT0gMikgeworCQlpbnQgbnVtID0gc3RhdGUtPmZyb250ZW5kLmR2YiA/IHN0YXRlLT5mcm9udGVuZC5kdmItPm51bSA6IC0xOworCQlwcmludGsoS0VSTl9FUlIgIkRWQjogVERBMTAwMjMoJWQpOiAlczogcmVhZHJlZyBlcnJvciAiCisJCQkiKHJlZyA9PSAweCUwMngsIHJldCA9PSAlaSlcbiIsCisJCQludW0sIF9fZnVuY19fLCByZWcsIHJldCk7CisJfQogCXJldHVybiBiMVswXTsKIH0KIApAQCAtMTI5LDExICsxMzIsMTIgQEAKIAlpbnQgcmV0OwogCiAJcmV0ID0gaTJjX3RyYW5zZmVyIChzdGF0ZS0+aTJjLCAmbXNnLCAxKTsKLQlpZiAocmV0ICE9IDEpCi0JCXByaW50aygiRFZCOiBUREExMDAyMyglZCk6ICVzLCB3cml0ZXJlZyBlcnJvciAiCisJaWYgKHJldCAhPSAxKSB7CisJCWludCBudW0gPSBzdGF0ZS0+ZnJvbnRlbmQuZHZiID8gc3RhdGUtPmZyb250ZW5kLmR2Yi0+bnVtIDogLTE7CisJCXByaW50ayhLRVJOX0VSUiAiRFZCOiBUREExMDAyMyglZCk6ICVzLCB3cml0ZXJlZyBlcnJvciAiCiAJCQkiKHJlZyA9PSAweCUwMngsIHZhbCA9PSAweCUwMngsIHJldCA9PSAlaSlcbiIsCi0JCQlzdGF0ZS0+ZnJvbnRlbmQuZHZiLT5udW0sIF9fZnVuY19fLCByZWcsIGRhdGEsIHJldCk7Ci0KKwkJCW51bSwgX19mdW5jX18sIHJlZywgZGF0YSwgcmV0KTsKKwl9CiAJcmV0dXJuIChyZXQgIT0gMSkgPyAtRVJFTU9URUlPIDogMDsKIH0KIApAQCAtNDY0LDcgKzQ2OCw3IEBACiAJaW50IGk7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwotCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDIzX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJc3RhdGUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgdGRhMTAwMjNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoc3RhdGUgPT0gTlVMTCkgZ290byBlcnJvcjsKIAogCS8qIHNldHVwIHRoZSBzdGF0ZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi9mcm9udGVuZHMvdGRhMTAwNDguYwppbmRleCAwOTBmYjdkLi4wYWI4ZDg2YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDQ4LmMKQEAgLTIzMyw3ICsyMzMsNyBAQAogfQogCiBzdGF0aWMgaW50IHRkYTEwMDQ4X3dyaXRlcmVnYnVsayhzdHJ1Y3QgdGRhMTAwNDhfc3RhdGUgKnN0YXRlLCB1OCByZWcsCi0JdTggKmRhdGEsIHUxNiBsZW4pCisJCQkJIGNvbnN0IHU4ICpkYXRhLCB1MTYgbGVuKQogewogCWludCByZXQgPSAtRVJFTU9URUlPOwogCXN0cnVjdCBpMmNfbXNnIG1zZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL2Zyb250ZW5kcy90ZGExMDA0eC5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKaW5kZXggNDk5NzM4NC4uMTQ2NWZmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzL3RkYTEwMDR4LmMKQEAgLTMxNyw3ICszMTcsNyBAQAogfQogCiBzdGF0aWMgaW50IHRkYTEwMDR4X2RvX3VwbG9hZChzdHJ1Y3QgdGRhMTAwNHhfc3RhdGUgKnN0YXRlLAotCQkJICAgICAgdW5zaWduZWQgY2hhciAqbWVtLCB1bnNpZ25lZCBpbnQgbGVuLAorCQkJICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbWVtLCB1bnNpZ25lZCBpbnQgbGVuLAogCQkJICAgICAgdTggZHNwQ29kZUNvdW50ZXJSZWcsIHU4IGRzcENvZGVJblJlZykKIHsKIAl1OCBidWZbNjVdOwpAQCAtMTI0OCwxMSArMTI0OCwxNCBAQAogCQkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyKiBpMmMpCiB7CiAJc3RydWN0IHRkYTEwMDR4X3N0YXRlICpzdGF0ZTsKKwlpbnQgaWQ7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDR4X3N0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZSkKKwlpZiAoIXN0YXRlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgYWxvY2F0ZSBtZW1vcnkgZm9yIHRkYTEwMDQ1IHN0YXRlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CisJfQogCiAJLyogc2V0dXAgdGhlIHN0YXRlICovCiAJc3RhdGUtPmNvbmZpZyA9IGNvbmZpZzsKQEAgLTEyNjAsNyArMTI2MywxNSBAQAogCXN0YXRlLT5kZW1vZF90eXBlID0gVERBMTAwNFhfREVNT0RfVERBMTAwNDU7CiAKIAkvKiBjaGVjayBpZiB0aGUgZGVtb2QgaXMgdGhlcmUgKi8KLQlpZiAodGRhMTAwNHhfcmVhZF9ieXRlKHN0YXRlLCBUREExMDA0WF9DSElQSUQpICE9IDB4MjUpIHsKKwlpZCA9IHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKTsKKwlpZiAoaWQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAidGRhMTAwNDU6IGNoaXAgaXMgbm90IGFuc3dlcmluZy4gR2l2aW5nIHVwLlxuIik7CisJCWtmcmVlKHN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJaWYgKGlkICE9IDB4MjUpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJJbnZhbGlkIHRkYTEwMDR4IElEID0gMHglMDJ4LiBDYW4ndCBwcm9jZWVkXG4iLCBpZCk7CiAJCWtmcmVlKHN0YXRlKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMTMwNywxMSArMTMxOCwxNCBAQAogCQkJCSAgICAgc3RydWN0IGkyY19hZGFwdGVyKiBpMmMpCiB7CiAJc3RydWN0IHRkYTEwMDR4X3N0YXRlICpzdGF0ZTsKKwlpbnQgaWQ7CiAKIAkvKiBhbGxvY2F0ZSBtZW1vcnkgZm9yIHRoZSBpbnRlcm5hbCBzdGF0ZSAqLwogCXN0YXRlID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHRkYTEwMDR4X3N0YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFzdGF0ZSkKKwlpZiAoIXN0YXRlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQ2FuJ3QgYWxvY2F0ZSBtZW1vcnkgZm9yIHRkYTEwMDQ2IHN0YXRlXG4iKTsKIAkJcmV0dXJuIE5VTEw7CisJfQogCiAJLyogc2V0dXAgdGhlIHN0YXRlICovCiAJc3RhdGUtPmNvbmZpZyA9IGNvbmZpZzsKQEAgLTEzMTksNyArMTMzMywxNCBAQAogCXN0YXRlLT5kZW1vZF90eXBlID0gVERBMTAwNFhfREVNT0RfVERBMTAwNDY7CiAKIAkvKiBjaGVjayBpZiB0aGUgZGVtb2QgaXMgdGhlcmUgKi8KLQlpZiAodGRhMTAwNHhfcmVhZF9ieXRlKHN0YXRlLCBUREExMDA0WF9DSElQSUQpICE9IDB4NDYpIHsKKwlpZCA9IHRkYTEwMDR4X3JlYWRfYnl0ZShzdGF0ZSwgVERBMTAwNFhfQ0hJUElEKTsKKwlpZiAoaWQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAidGRhMTAwNDY6IGNoaXAgaXMgbm90IGFuc3dlcmluZy4gR2l2aW5nIHVwLlxuIik7CisJCWtmcmVlKHN0YXRlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCWlmIChpZCAhPSAweDQ2KSB7CisJCXByaW50ayhLRVJOX0VSUiAiSW52YWxpZCB0ZGExMDA0eCBJRCA9IDB4JTAyeC4gQ2FuJ3QgcHJvY2VlZFxuIiwgaWQpOwogCQlrZnJlZShzdGF0ZSk7CiAJCXJldHVybiBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9LY29uZmlnCmluZGV4IGQ0MzM5YjEuLjA3NjQzZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvS2NvbmZpZwpAQCAtMTAxLDYgKzEwMSw3IEBACiBjb25maWcgRFZCX0JVREdFVF9DSQogCXRyaXN0YXRlICJCdWRnZXQgY2FyZHMgd2l0aCBvbmJvYXJkIENJIGNvbm5lY3RvciIKIAlkZXBlbmRzIG9uIERWQl9CVURHRVRfQ09SRSAmJiBJMkMKKwlkZXBlbmRzIG9uIElOUFVUICMgZHVlIHRvIElSCiAJc2VsZWN0IERWQl9TVFYwMjk3IGlmICFEVkJfRkVfQ1VTVE9NSVNFCiAJc2VsZWN0IERWQl9TVFYwMjk5IGlmICFEVkJfRkVfQ1VTVE9NSVNFCiAJc2VsZWN0IERWQl9UREExMDA0WCBpZiAhRFZCX0ZFX0NVU1RPTUlTRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTAuYwppbmRleCA3NDdlN2YxLi5mMDVkNDNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTAuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTAuYwpAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KIAogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KIApAQCAtMTQ2MSw5ICsxNDYyLDkgQEAKIAlwdHIgKz0gNDsKIAogCS8qIGNoZWNrIGRwcmFtIGZpbGUgKi8KLQljcmMgPSBudG9obCgqKHUzMiopIHB0cik7CisJY3JjID0gZ2V0X3VuYWxpZ25lZF9iZTMyKHB0cik7CiAJcHRyICs9IDQ7Ci0JbGVuID0gbnRvaGwoKih1MzIqKSBwdHIpOworCWxlbiA9IGdldF91bmFsaWduZWRfYmUzMihwdHIpOwogCXB0ciArPSA0OwogCWlmIChsZW4gPj0gNTEyKSB7CiAJCXByaW50aygiZHZiLXR0cGNpOiBkcHJhbSBmaWxlIGlzIHdheSB0b28gYmlnLlxuIik7CkBAIC0xNDc4LDkgKzE0NzksOSBAQAogCXB0ciArPSBsZW47CiAKIAkvKiBjaGVjayByb290IGZpbGUgKi8KLQljcmMgPSBudG9obCgqKHUzMiopIHB0cik7CisJY3JjID0gZ2V0X3VuYWxpZ25lZF9iZTMyKHB0cik7CiAJcHRyICs9IDQ7Ci0JbGVuID0gbnRvaGwoKih1MzIqKSBwdHIpOworCWxlbiA9IGdldF91bmFsaWduZWRfYmUzMihwdHIpOwogCXB0ciArPSA0OwogCiAJaWYgKGxlbiA8PSAyMDAwMDAgfHwgbGVuID49IDMwMDAwMCB8fApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2F2LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTBfYXYuYwppbmRleCAzZTZiNjUwLi5lYzU1YTk2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2F2LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvdHRwY2kvYXY3MTEwX2F2LmMKQEAgLTk2NSw4ICs5NjUsOSBAQAogCiBzdGF0aWMgaW50IHBsYXlfaWZyYW1lKHN0cnVjdCBhdjcxMTAgKmF2NzExMCwgY2hhciBfX3VzZXIgKmJ1ZiwgdW5zaWduZWQgaW50IGxlbiwgaW50IG5vbmJsb2NrKQogewotCWludCBpLCBuOworCXVuc2lnbmVkIGksIG47CiAJaW50IHByb2dyZXNzaXZlID0gMDsKKwlpbnQgbWF0Y2ggPSAwOwogCiAJZHByaW50aygyLCAiYXY3MTEwOiVwLCBcbiIsIGF2NzExMCk7CiAKQEAgLTk3NSwxMiArOTc2LDMxIEBACiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBsZW4gLSA1OyBpKyspIHsKLQkJLyogZ2V0IHByb2dyZXNzaXZlIGZsYWcgZnJvbSBwaWN0dXJlIGV4dGVuc2lvbiAqLwotCQlpZiAoYnVmW2ldID09IDB4MDAgJiYgYnVmW2krMV0gPT0gMHgwMCAmJgotCQkgICAgYnVmW2krMl0gPT0gMHgwMSAmJiAodW5zaWduZWQgY2hhcilidWZbaSszXSA9PSAweGI1ICYmCi0JCSAgICAoYnVmW2krNF0gJiAweGYwKSA9PSAweDEwKQotCQkJcHJvZ3Jlc3NpdmUgPSBidWZbaSs1XSAmIDB4MDg7CisJLyogc2VhcmNoIGluIGJ1ZiBmb3IgaW5zdGFuY2VzIG9mIDAwIDAwIDAxIGI1IDE/ICovCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisJCXVuc2lnbmVkIGNoYXIgYzsKKwkJaWYgKGdldF91c2VyKGMsIGJ1ZiArIGkpKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisJCWlmIChtYXRjaCA9PSA1KSB7CisJCQlwcm9ncmVzc2l2ZSA9IGMgJiAweDA4OworCQkJbWF0Y2ggPSAwOworCQl9CisJCWlmIChjID09IDB4MDApIHsKKwkJCW1hdGNoID0gKG1hdGNoID09IDEgfHwgbWF0Y2ggPT0gMikgPyAyIDogMTsKKwkJCWNvbnRpbnVlOworCQl9CisJCXN3aXRjaCAobWF0Y2grKykgeworCQljYXNlIDI6IGlmIChjID09IDB4MDEpCisJCQkJY29udGludWU7CisJCQlicmVhazsKKwkJY2FzZSAzOiBpZiAoYyA9PSAweGI1KQorCQkJCWNvbnRpbnVlOworCQkJYnJlYWs7CisJCWNhc2UgNDogaWYgKChjICYgMHhmMCkgPT0gMHgxMCkKKwkJCQljb250aW51ZTsKKwkJCWJyZWFrOworCQl9CisJCW1hdGNoID0gMDsKIAl9CiAKIAkvKiBzZXR0aW5nIG4gYWx3YXlzID4gMSwgZml4ZXMgcHJvYmxlbXMgd2hlbiBwbGF5aW5nIHN0aWxsZnJhbWVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi90dHBjaS9hdjcxMTBfaHcuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL2F2NzExMF9ody5jCmluZGV4IDlkODEwNzQuLjNhM2Y1MjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL2F2NzExMF9ody5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0cGNpL2F2NzExMF9ody5jCkBAIC00MjcsNiArNDI3LDcgQEAKIAkJCWlmIChlcnIpIHsKIAkJCQlwcmludGsoS0VSTl9FUlIgIiVzOiB0aW1lb3V0IHdhaXRpbmcgb24gYnVzeSAlcyBRVUVVRVxuIiwKIAkJCQkJX19mdW5jX18sIHR5cGUpOworCQkJCWF2NzExMC0+YXJtX2Vycm9ycysrOwogCQkJCXJldHVybiAtRVRJTUVET1VUOwogCQkJfQogCQkJbXNsZWVwKDEpOwpAQCAtODUzLDEwICs4NTQsOCBAQAogCiBzdGF0aWMgaW5saW5lIGludCBXYWl0VW50aWxCbXBMb2FkZWQoc3RydWN0IGF2NzExMCAqYXY3MTEwKQogewotCWludCByZXQgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChhdjcxMTAtPmJtcHEsCisJaW50IHJldCA9IHdhaXRfZXZlbnRfdGltZW91dChhdjcxMTAtPmJtcHEsCiAJCQkJYXY3MTEwLT5ibXBfc3RhdGUgIT0gQk1QX0xPQURJTkcsIDEwKkhaKTsKLQlpZiAocmV0ID09IC1FUkVTVEFSVFNZUykKLQkJcmV0dXJuIHJldDsKIAlpZiAocmV0ID09IDApIHsKIAkJcHJpbnRrKCJkdmItdHRwY2k6IHdhcm5pbmc6IHRpbWVvdXQgd2FpdGluZyBpbiBMb2FkQml0bWFwOiAlZCwgJWRcbiIsCiAJCSAgICAgICByZXQsIGF2NzExMC0+Ym1wX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItYnVkZ2V0LmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWJ1ZGdldC5jCmluZGV4IDczMmNlNGQuLmJjMjA0M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItYnVkZ2V0LmMKKysrIGIvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItYnVkZ2V0L2R2Yi10dHVzYi1idWRnZXQuYwpAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogI2luY2x1ZGUgImR2Yl9mcm9udGVuZC5oIgogI2luY2x1ZGUgImRteGRldi5oIgpAQCAtMjg1LDEzICsyODYsMTkgQEAKIAlyZXR1cm4gaTsKIH0KIAotI2luY2x1ZGUgImR2Yi10dHVzYi1kc3Bib290Y29kZS5oIgotCiBzdGF0aWMgaW50IHR0dXNiX2Jvb3RfZHNwKHN0cnVjdCB0dHVzYiAqdHR1c2IpCiB7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAlpbnQgaSwgZXJyOwogCXU4IGJbNDBdOwogCisJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsICJ0dHVzYi1idWRnZXQvZHNwYm9vdGNvZGUuYmluIiwKKwkJCSAgICAgICAmdHR1c2ItPmRldi0+ZGV2KTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAidHR1c2ItYnVkZ2V0OiBmYWlsZWQgdG8gcmVxdWVzdCBmaXJtd2FyZVxuIik7CisJCXJldHVybiBlcnI7CisJfQorCiAJLyogQm9vdEJsb2NrICovCiAJYlswXSA9IDB4YWE7CiAJYlsyXSA9IDB4MTM7CkBAIC0yOTksOCArMzA2LDggQEAKIAogCS8qIHVwbG9hZCBkc3AgY29kZSBpbiAzMiBieXRlIHN0ZXBzICgzNiBkaWRuJ3Qgd29yayBmb3IgbWUgLi4uKSAqLwogCS8qIDMyIGlzIG1heCBwYWNrZXQgc2l6ZSwgbm8gbWVzc2FnZXMgc2hvdWxkIGJlIHNwbGl0dGVkLiAqLwotCWZvciAoaSA9IDA7IGkgPCBzaXplb2YoZHNwX2Jvb3Rjb2RlKTsgaSArPSAyOCkgewotCQltZW1jcHkoJmJbNF0sICZkc3BfYm9vdGNvZGVbaV0sIDI4KTsKKwlmb3IgKGkgPSAwOyBpIDwgZnctPnNpemU7IGkgKz0gMjgpIHsKKwkJbWVtY3B5KCZiWzRdLCAmZnctPmRhdGFbaV0sIDI4KTsKIAogCQliWzFdID0gKyt0dHVzYi0+YzsKIApAQCAtNTUyLDcgKzU1OSw3IEBACiAJdTE2IGNzdW0gPSAwLCBjYzsKIAlpbnQgaTsKIAlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICs9IDIpCi0JCWNzdW0gXj0gbGUxNl90b19jcHVwKCh1MTYgKikgKG11eHBhY2sgKyBpKSk7CisJCWNzdW0gXj0gbGUxNl90b19jcHVwKChfX2xlMTYgKikgKG11eHBhY2sgKyBpKSk7CiAJaWYgKGNzdW0pIHsKIAkJcHJpbnRrKCIlczogbXV4cGFjayB3aXRoIGluY29ycmVjdCBjaGVja3N1bSwgaWdub3JpbmdcbiIsCiAJCSAgICAgICBfX2Z1bmNfXyk7CkBAIC0xODIwLDMgKzE4MjcsNCBAQAogTU9EVUxFX0FVVEhPUigiSG9sZ2VyIFdhZWNodGxlciA8aG9sZ2VyQGNvbnZlcmdlbmNlLmRlPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJUVFVTQiBEVkIgRHJpdmVyIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfRklSTVdBUkUoInR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItZHNwYm9vdGNvZGUuaCBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWJ1ZGdldC9kdmItdHR1c2ItZHNwYm9vdGNvZGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGMzY2Q1NC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1idWRnZXQvZHZiLXR0dXNiLWRzcGJvb3Rjb2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQ0ICswLDAgQEAKLQotI2luY2x1ZGUgPGFzbS90eXBlcy5oPgotCi1zdGF0aWMgdTggZHNwX2Jvb3Rjb2RlIFtdID0gewotCTB4MDgsIDB4YWEsIDB4MDAsIDB4MTgsIDB4MDAsIDB4MDMsIDB4MDgsIDB4MDAsCi0JMHgwMCwgMHgxMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg4MCwgMHgxOCwgMHg1ZiwKLQkweDAwLCAweDAwLCAweDAxLCAweDgwLCAweDc3LCAweDE4LCAweDJhLCAweGViLAotCTB4NmIsIDB4ZjgsIDB4MDAsIDB4MTgsIDB4MDMsIDB4ZmYsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwgMHhmNywgMHhiOCwgMHhmNywgMHhiZSwKLQkweGY2LCAweGI5LCAweGY0LCAweGEwLCAweGY2LCAweGI3LCAweGY2LCAweGI1LAotCTB4ZjYsIDB4YjYsIDB4ZjAsIDB4MjAsIDB4MTksIDB4ZGYsIDB4ZjEsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHhmOCwgMHg0ZCwgMHgwMSwgMHhhYiwgMHhmNiwgMHhiOCwKLQkweGYwLCAweDIwLCAweDE5LCAweGRmLCAweGYwLCAweDczLCAweDAxLCAweGE1LAotCTB4N2UsIDB4ZjgsIDB4MDAsIDB4MTIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0NywgMHhmOCwgMHgwMCwgMHgxMSwgMHg3ZSwgMHg5MiwgMHgwMCwgMHhmOCwKLQkweDAwLCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweDdlLCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NmMsIDB4ODksCi0JMHgwMSwgMHg5YSwgMHhmNywgMHhiOCwgMHhlZSwgMHhmYywgMHhmMCwgMHgyMCwKLQkweGZmLCAweGZmLCAweGYxLCAweDAwLCAweDAwLCAweDAxLCAweGY4LCAweDRkLAotCTB4MDEsIDB4YmYsIDB4ZjIsIDB4NzMsIDB4MDEsIDB4YjksIDB4NGUsIDB4MDIsCi0JMHhmNCwgMHg5NSwgMHhmNSwgMHhlMywgMHg1NiwgMHgwMiwgMHg3ZSwgMHgwMCwKLQkweDExLCAweDAwLCAweGZhLCAweDRjLCAweDAxLCAweGI3LCAweDZiLCAweDAzLAotCTB4MDAsIDB4MDEsIDB4ZjYsIDB4YjgsIDB4ZWUsIDB4MDQsIDB4ZjAsIDB4NzQsCi0JMHgwZCwgMHhhNywgMHhmMCwgMHg3NCwgMHgwMSwgMHhjNSwgMHg0YSwgMHgxMSwKLQkweDRhLCAweDE2LCAweDcyLCAweDExLCAweDJhLCAweGU2LCAweDEwLCAweGY4LAotCTB4MDAsIDB4MTEsIDB4ZmEsIDB4NDUsIDB4MDEsIDB4ZGIsIDB4ZjQsIDB4OTUsCi0JMHhlZSwgMHhmZiwgMHg0OCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgyYSwgMHhjNiwKLQkweDg4LCAweDE2LCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweGVlLAotCTB4ZmYsIDB4ZmYsIDB4ZjQsIDB4ZTMsIDB4NmMsIDB4ZTksIDB4ZmYsIDB4ZmYsCi0JMHgwMSwgMHhkNSwgMHgxMCwgMHhmOCwgMHgyYSwgMHhlNywgMHhmOCwgMHg0NSwKLQkweDAxLCAweGUyLCAweDEwLCAweGY4LCAweDJhLCAweGU3LCAweGY0LCAweGUzLAotCTB4ZjAsIDB4NzQsIDB4MDEsIDB4ZmYsIDB4ZWUsIDB4MDEsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNywgMHhiOCwgMHhlOSwgMHgyMCwKLQkweDRhLCAweDExLCAweDA5LCAweGY4LCAweDJhLCAweGU2LCAweGY4LCAweDRlLAotCTB4MDEsIDB4ZjMsIDB4ZjIsIDB4NzMsIDB4MDEsIDB4ZmQsIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMSwgMHg3MiwgMHgxMSwgMHgyYSwgMHhlNiwgMHg0OSwgMHgxMSwKLQkweDgwLCAweGUxLCAweDJhLCAweGM2LCAweGYzLCAweDAwLCAweDAwLCAweDAxLAotCTB4ZTgsIDB4MDAsIDB4ODEsIDB4ZjgsIDB4MmEsIDB4ZTYsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwgMHhmMCwgMHg3MywgMHgwMiwgMHgwMCwKLQkweDEwLCAweGY4LCAweDJhLCAweDBmLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4MDIsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4MTAsCi0JMHg3MywgMHgwOCwgMHgwMCwgMHgwOSwgMHg0MCwgMHhmOCwgMHgyYSwgMHgxNSwKLQkweDgyLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4MDMsIDB4ZTgsIDB4ZjUsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MDIsIDB4MjEsCi0JMHg3MSwgMHhmOCwgMHgyYSwgMHgxMCwgMHgyYSwgMHgxNSwgMHg1NiwgMHhmOCwKLQkweDJhLCAweDBjLCAweGYwLCAweGUzLCAweDRlLCAweGY4LCAweDJhLCAweDE2LAotCTB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MmEsIDB4MGMsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHg0YSwgMHgwNiwgMHg0YSwgMHgwNywgMHg0YSwgMHgxZCwKLQkweDY4LCAweGY4LCAweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsCi0JMHhmZiwgMHhmYywgMHg2YiwgMHhmOCwgMHgyYSwgMHgwZiwgMHgwMCwgMHgwMSwKLQkweDhhLCAweDFkLCAweDhhLCAweDA3LCAweDhhLCAweDA2LCAweGY0LCAweGViLAotCTB4ZWUsIDB4ZmQsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4MGYsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxOSwgMHg0YywKLQkweGY0LCAweDk1LCAweGU4LCAweDAwLCAweDgwLCAweGY4LCAweDJhLCAweDExLAotCTB4ZjksIDB4ODAsIDB4MTksIDB4MDcsIDB4ODAsIDB4ZjgsIDB4MmEsIDB4MGUsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg2NiwgMHg3NiwgMHgwMCwgMHgyYSwgMHgxMiwKLQkweDEwLCAweGY4LCAweDJhLCAweDExLCAweGY5LCAweDgwLCAweDE4LCAweGUzLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4MGUsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NjYsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHgwZSwgMHhmOSwgMHg4MCwgMHgxNiwgMHg4NywKLQkweGVlLCAweDAzLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGY2LCAweGI4LAotCTB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ODAsIDB4MDAsIDB4MTEsIDB4ZjgsCi0JMHgyYSwgMHg1YSwgMHhmOCwgMHg0ZCwgMHgwMiwgMHg5MywgMHgxMSwgMHhmOCwKLQkweDJhLCAweDlmLCAweGY4LCAweDRjLCAweDAyLCAweDdjLCAweDc3LCAweDEyLAotCTB4MmEsIDB4MzksIDB4NDksIDB4MTIsIDB4MDEsIDB4ZjgsIDB4MmEsIDB4OWYsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHg4MSwKLQkweDAwLCAweDExLCAweDZjLCAweGUxLCAweGZmLCAweGFiLCAweDAyLCAweDkzLAotCTB4NmIsIDB4ZjgsIDB4MmEsIDB4OWYsIDB4MDAsIDB4MDEsIDB4ZTksIDB4MDUsCi0JMHgwMSwgMHhlMiwgMHgwMCwgMHgwMywgMHg4MSwgMHhmOCwgMHgyYSwgMHhhMCwKLQkweGYwLCAweDczLCAweDAyLCAweDk1LCAweDcyLCAweDExLCAweDJhLCAweDlmLAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ZTEsIDB4MmEsIDB4MzksIDB4NmIsIDB4ZjgsCi0JMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMSwgMHgxMSwgMHhmOCwgMHgyYSwgMHg5ZiwKLQkweDA5LCAweGY4LCAweDJhLCAweGEwLCAweGY4LCAweDRjLCAweDAyLCAweDkzLAotCTB4NzYsIDB4ZjgsIDB4MmEsIDB4NWEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHg5ZiwgMHgwMCwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhMCwKLQkweDAwLCAweDAwLCAweDg4LCAweDExLCAweGY0LCAweDk1LCAweDQ4LCAweDExLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YSwgMHhmOCwgMHg0NCwgMHgwMiwgMHhiMiwKLQkweDc2LCAweGY4LCAweDJhLCAweDVhLCAweDAwLCAweDAxLCAweGYwLCAweDc0LAotCTB4MDIsIDB4NTgsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHg4MCwgMHgwMCwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwMiwgMHhiMiwKLQkweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAwLCAweGZmLCAweDgwLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsIDB4MTgsIDB4ZDYsCi0JMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwKLQkweDRhLCAweDA4LCAweDRhLCAweDA5LCAweDRhLCAweDBhLCAweDRhLCAweDBiLAotCTB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsIDB4NGEsIDB4MTAsIDB4NGEsIDB4MTEsCi0JMHg0YSwgMHgxMiwgMHg0YSwgMHgxMywgMHg0YSwgMHgxNCwgMHg0YSwgMHgxNSwKLQkweDRhLCAweDE2LCAweDRhLCAweDE3LCAweDRhLCAweDE3LCAweDRhLCAweDE5LAotCTB4NGEsIDB4MGUsIDB4NGEsIDB4MDYsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWEsCi0JMHg0YSwgMHgxZCwgMHg0YSwgMHgxYiwgMHg0YSwgMHgxYywgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHg0OCwgMHgxOCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweGVlLCAweGZkLAotCTB4ZjAsIDB4NzQsIDB4MDIsIDB4NTgsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHg4MCwgMHgwMCwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDAyLCAweGVmLCAweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAwLCAweGZmLAotCTB4ODAsIDB4MDAsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsCi0JMHgxOCwgMHhkNiwgMHhlZSwgMHgwMywgMHg4YSwgMHgxOCwgMHhmNCwgMHg5NSwKLQkweDhhLCAweDFjLCAweDhhLCAweDFiLCAweDhhLCAweDFkLCAweDhhLCAweDFhLAotCTB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGUsIDB4OGEsIDB4MTksCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxNSwKLQkweDhhLCAweDE0LCAweDhhLCAweDEzLCAweDhhLCAweDEyLCAweDhhLCAweDExLAotCTB4OGEsIDB4MTAsIDB4OGEsIDB4MGQsIDB4OGEsIDB4MGMsIDB4OGEsIDB4MGIsCi0JMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwgMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwKLQkweDRhLCAweDExLCAweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLAotCTB4MDAsIDB4NTUsIDB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsCi0JMHgwMCwgMHgwMSwgMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwKLQkweDAwLCAweDAyLCAweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHgwMCwgMHhhYSwgMHhmMCwgMHg3NCwgMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4NmYsIDB4ZjgsIDB4MmEsIDB4OWUsCi0JMHgwYywgMHg4OCwgMHhlOCwgMHhmZiwgMHgxOCwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDFhLCAweGY4LCAweDJhLCAweDllLCAweGYwLCAweDMwLCAweDFmLCAweGZmLAotCTB4ODAsIDB4ZjgsIDB4MmEsIDB4OWUsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDU1LCAweDc3LCAweDEyLCAweDJhLCAweDE4LCAweDExLCAweGUyLAotCTB4MDAsIDB4MDEsIDB4ODEsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4MTEsIDB4ZTIsCi0JMHgwMCwgMHgwMiwgMHg4MSwgMHhlMSwgMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAzLCAweDAwLCAweDAyLCAweDQ4LCAweDA4LCAweDZmLCAweGUxLAotCTB4MDAsIDB4MDQsIDB4MGMsIDB4OTgsIDB4ZjAsIDB4MzAsIDB4MDAsIDB4ZmYsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwNSwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MzksCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwgMHgyYSwgMHgxOCwKLQkweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLCAweDAwLCAweDAxLAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwNCwgMHg0OCwgMHgxMSwKLQkweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4NzcsIDB4MTMsIDB4MmEsIDB4NzYsIDB4ZTksIDB4MDAsIDB4ZTUsIDB4OTgsCi0JMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwgMHg0OCwgMHgwYiwKLQkweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLCAweDAzLCAweDcxLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4OTgsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmMCwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTQsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MTUsCi0JMHg0OSwgMHgxMSwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMiwgMHg4OSwgMHgxMSwKLQkweGU3LCAweDgyLCAweDZkLCAweGVhLCAweDAwLCAweDA0LCAweGU3LCAweDgzLAotCTB4NmQsIDB4ZWIsIDB4MDAsIDB4MGEsIDB4NzcsIDB4MWEsIDB4MDAsIDB4MDUsCi0JMHhmMCwgMHg3MiwgMHgwMywgMHhhYSwgMHgxMSwgMHg4MSwgMHhmMiwgMHhlOCwKLQkweDgwLCAweDgyLCAweGU5LCAweGZmLCAweDE5LCAweGUxLCAweDAwLCAweDAxLAotCTB4ZjEsIDB4YTAsIDB4ODEsIDB4OTIsIDB4MTEsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHhmMiwgMHhlOCwgMHg4MCwgMHg4MywgMHhlOSwgMHhmZiwgMHgxOSwgMHhlMSwKLQkweDAwLCAweDBkLCAweGYxLCAweGEwLCAweDgxLCAweDkzLCAweDZkLCAweGU5LAotCTB4MDAsIDB4MDIsIDB4NDgsIDB4MTgsIDB4NDksIDB4MTgsIDB4NzAsIDB4MDAsCi0JMHgwMCwgMHgxNSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHhmMywgMHgwMCwKLQkweDAwLCAweDBhLCAweDgwLCAweDAxLCAweDgxLCAweDAyLCAweGYyLCAweDc0LAotCTB4MGUsIDB4NTQsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTQsIDB4ZWUsIDB4MTAsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmMCwgMHg3NCwKLQkweDBjLCAweDVlLCAweDgwLCAweGY4LCAweDJhLCAweDVjLCAweDc3LCAweDEyLAotCTB4MmEsIDB4MzksIDB4NzYsIDB4ODIsIDB4MDAsIDB4NTUsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgxOCwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4MCwgMHhlMiwKLQkweDAwLCAweDAxLCAweDEwLCAweGUxLCAweDAwLCAweDAyLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDIsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MWMsCi0JMHhmNiwgMHhiOCwgMHg1NiwgMHhmOCwgMHgyYSwgMHgxNiwgMHhmMCwgMHhmMCwKLQkweGYwLCAweGY4LCAweDgwLCAweGUyLCAweDAwLCAweDA3LCAweDU2LCAweGY4LAotCTB4MmEsIDB4MTYsIDB4ZjEsIDB4ZjAsIDB4ZTgsIDB4ZmYsIDB4ZjIsIDB4ODAsCi0JMHg4MCwgMHhlMiwgMHgwMCwgMHgwNiwgMHg1NiwgMHhmOCwgMHgyYSwgMHgxNiwKLQkweGYxLCAweGY4LCAweGU4LCAweGZmLCAweGYyLCAweDgwLCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDUsIDB4NTcsIDB4ZjgsIDB4MmEsIDB4MTYsIDB4ZTgsIDB4ZmYsCi0JMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwNCwgMHg1NiwgMHhmOCwKLQkweDI3LCAweDZjLCAweGYwLCAweGYwLCAweGYwLCAweGY4LCAweDgwLCAweGUyLAotCTB4MDAsIDB4MGIsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NmMsIDB4ZjEsIDB4ZjAsCi0JMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwgMHgwMCwgMHgwYSwKLQkweDU2LCAweGY4LCAweDI3LCAweDZjLCAweGYxLCAweGY4LCAweGU4LCAweGZmLAotCTB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MDksIDB4ZTgsIDB4ZmYsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg2YywgMHhmMiwgMHg4MCwgMHg4MCwgMHhlMiwKLQkweDAwLCAweDA4LCAweDU2LCAweGY4LCAweDI3LCAweDZhLCAweGYwLCAweGYwLAotCTB4ZjAsIDB4ZjgsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MGYsIDB4NTYsIDB4ZjgsCi0JMHgyNywgMHg2YSwgMHhmMSwgMHhmMCwgMHhlOCwgMHhmZiwgMHhmMiwgMHg4MCwKLQkweDgwLCAweGUyLCAweDAwLCAweDBlLCAweDU2LCAweGY4LCAweDI3LCAweDZhLAotCTB4ZjEsIDB4ZjgsIDB4ZTgsIDB4ZmYsIDB4ZjIsIDB4ODAsIDB4ODAsIDB4ZTIsCi0JMHgwMCwgMHgwZCwgMHg1NywgMHhmOCwgMHgyNywgMHg2YSwgMHhlOCwgMHhmZiwKLQkweGYyLCAweDgwLCAweDgwLCAweGUyLCAweDAwLCAweDBjLCAweDc2LCAweGUyLAotCTB4MDAsIDB4MTMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MTIsCi0JMHgwMCwgMHgwMCwgMHg2ZiwgMHhmOCwgMHgyYSwgMHg1YywgMHgwYywgMHg1OCwKLQkweDgwLCAweGUyLCAweDAwLCAweDExLCAweGU4LCAweGZmLCAweDE4LCAweGY4LAotCTB4MmEsIDB4NWMsIDB4ODAsIDB4ZTIsIDB4MDAsIDB4MTAsIDB4NzYsIDB4ZTIsCi0JMHgwMCwgMHgxNywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwgMHgwMCwgMHgxNiwKLQkweDAwLCAweDAwLCAweDZmLCAweGY4LCAweDJhLCAweDllLCAweDBjLCAweDU4LAotCTB4ODAsIDB4ZTIsIDB4MDAsIDB4MTUsIDB4ZTgsIDB4ZmYsIDB4MTgsIDB4ZjgsCi0JMHgyYSwgMHg5ZSwgMHg4MCwgMHhlMiwgMHgwMCwgMHgxNCwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDFiLCAweDAwLCAweDAwLCAweDc2LCAweGUyLCAweDAwLCAweDFhLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MTksIDB4MDAsIDB4MDAsCi0JMHg3MCwgMHhlMiwgMHgwMCwgMHgxOCwgMHgyNywgMHg2ZSwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDFmLCAweDAwLCAweDAwLCAweDc2LCAweGUyLCAweDAwLCAweDFlLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTIsIDB4MDAsIDB4MWQsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMiwgMHgwMCwgMHgxYywgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMiwKLQkweDAwLCAweDIwLCAweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHgzOCwgMHhmOCwgMHg0NSwgMHgwNCwgMHhlZCwKLQkweDc3LCAweDEyLCAweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAyLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDgsCi0JMHg2ZCwgMHhlOSwgMHhmZiwgMHhkZiwgMHhmNiwgMHhhOSwgMHhmOCwgMHgyMCwKLQkweDA0LCAweDc1LCAweGYwLCAweDczLCAweDA0LCAweDdkLCAweGYwLCAweDEwLAotCTB4MDAsIDB4MjEsIDB4ZjAsIDB4MDAsIDB4MWEsIDB4ODMsIDB4NDgsIDB4MDgsCi0JMHg3ZSwgMHhmOCwgMHgwMCwgMHgwOCwgMHhmNCwgMHhlMiwgMHhmMCwgMHg3NCwKLQkweDAzLCAweDBhLCAweGYwLCAweDczLCAweDA0LCAweGVhLCAweDQ4LCAweDEyLAotCTB4ZjIsIDB4NzQsIDB4MDMsIDB4MjMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsCi0JMHhmMiwgMHg3NCwgMHgwMywgMHgzNiwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweDc3LCAweDExLCAweDJhLCAweDE4LAotCTB4ZTgsIDB4ZmYsIDB4NmYsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4MGQsIDB4NDgsCi0JMHgxOCwgMHhlMSwgMHgwMCwgMHgwNSwgMHhmMiwgMHg3NCwgMHgwOSwgMHg2OSwKLQkweGY0LCAweDk1LCAweGYyLCAweGEwLCAweGYwLCAweDc0LCAweDAzLCAweDM2LAotCTB4ZjAsIDB4NzMsIDB4MDQsIDB4ZWEsIDB4NzcsIDB4MTEsIDB4MmEsIDB4MTgsCi0JMHhlOCwgMHhmZiwgMHg2ZiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwZCwgMHg0OCwKLQkweDE4LCAweGUxLCAweDAwLCAweDA1LCAweGYyLCAweDc0LCAweDA5LCAweDQxLAotCTB4ZjQsIDB4OTUsIDB4ZjIsIDB4YTAsIDB4ZjAsIDB4NzQsIDB4MDMsIDB4MzYsCi0JMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHhmMCwgMHg3NCwgMHgwMywgMHg1NywKLQkweGYwLCAweDczLCAweDA0LCAweGVhLCAweDEwLCAweGY4LCAweDJhLCAweDFjLAotCTB4ZjAsIDB4NzQsIDB4MTIsIDB4YTQsIDB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwKLQkweDQ4LCAweDEyLCAweGYyLCAweDc0LCAweDAzLCAweDgwLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHgxMCwgMHhmOCwKLQkweDJhLCAweDFjLCAweGYwLCAweDc0LCAweDEyLCAweGM1LCAweGYyLCAweDc0LAotCTB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZjAsIDB4NzMsCi0JMHgwNCwgMHhlYSwgMHg3NywgMHgxMSwgMHgyYSwgMHgxOCwgMHhlOCwgMHhmZiwKLQkweDZmLCAweGUxLCAweDAwLCAweDA2LCAweDBkLCAweDQ4LCAweDE4LCAweGUxLAotCTB4MDAsIDB4MDcsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHhmMiwgMHhhMCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxMiwgMHg4MCwgMHgwMSwKLQkweDEwLCAweGUxLCAweDAwLCAweDA0LCAweGYwLCAweDc0LCAweDBlLCAweDdhLAotCTB4ZjIsIDB4NzQsIDB4MDMsIDB4MzYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHhmMCwgMHg3MywgMHgwNCwgMHhlYSwgMHhmMCwgMHg3NCwgMHgwMywgMHhiYywKLQkweDc2LCAweGY4LCAweDJhLCAweDM4LCAweDAwLCAweDAwLCAweGVlLCAweDAyLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwKLQkweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwOSwKLQkweDQ4LCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTMsIDB4MmEsIDB4ODYsIDB4ZTksIDB4MDAsCi0JMHhlNSwgMHg5OCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwKLQkweDQ4LCAweDBiLCAweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLAotCTB4MDUsIDB4MGEsIDB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsCi0JMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LAotCTB4NzcsIDB4MTMsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTMsIDB4MDAsIDB4MDEsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMywgMHgwMCwgMHgwMiwKLQkweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDEzLCAweGUzLCAweDAwLCAweDAzLAotCTB4ODEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4NDgsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHgwMCwgMHhmOCwgMHg0ZCwgMHgwNSwgMHg0NCwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDA0LCAweDg4LCAweDEyLCAweDQ4LCAweDEzLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHhlNSwgMHg5OCwgMHg2ZCwgMHg5MSwgMHhmNiwgMHhiOCwgMHg0OCwgMHgxMSwKLQkweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLCAweDA1LCAweDNhLAotCTB4ZjAsIDB4MjAsIDB4MmEsIDB4MzksIDB4NDksIDB4MTEsIDB4ZjUsIDB4MDAsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA0LCAweDAwLCAweGFhLCAweGYwLCAweDc0LCAweDAyLCAweDk4LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsCi0JMHgyYSwgMHgzOSwgMHg3NiwgMHg4MSwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMiwKLQkweDJhLCAweDE4LCAweDEwLCAweGUyLCAweDAwLCAweDAxLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDIsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgwYywKLQkweDQ4LCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTMsIDB4MmEsIDB4N2EsIDB4ZTksIDB4MDAsCi0JMHhlNSwgMHg5OCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHhmNiwgMHhiOCwKLQkweDQ4LCAweDBiLCAweDA4LCAweGY4LCAweDJhLCAweDNjLCAweGY4LCAweDQzLAotCTB4MDUsIDB4NmEsIDB4NzYsIDB4ODIsIDB4MDAsIDB4YWEsIDB4ZjAsIDB4NzQsCi0JMHgwMiwgMHg5OCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDc3LCAweDExLCAweDJhLCAweDM5LCAweDc2LCAweDgxLCAweDAwLCAweDU1LAotCTB4NzcsIDB4MTIsIDB4MmEsIDB4MTgsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MDEsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwMSwgMHgxMCwgMHhlMiwgMHgwMCwgMHgwMiwKLQkweDgwLCAweGUxLCAweDAwLCAweDAyLCAweDc2LCAweGUxLCAweDAwLCAweDAzLAotCTB4MDAsIDB4MTksIDB4NDgsIDB4MTEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsCi0JMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMywgMHgyYSwgMHg1ZCwKLQkweGU5LCAweDAwLCAweGU1LCAweDk4LCAweGYzLCAweDAwLCAweDAwLCAweDAxLAotCTB4ZjYsIDB4YjgsIDB4NDgsIDB4MGIsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4M2MsCi0JMHhmOCwgMHg0MywgMHgwNSwgMHg5MywgMHg3NiwgMHg4MiwgMHgwMCwgMHhhYSwKLQkweGYwLCAweDc0LCAweDAyLCAweDk4LCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4MzgsCi0JMHhmOCwgMHg0NCwgMHgwNSwgMHhlMywgMHgxMCwgMHhmOCwgMHgyYSwgMHhhMSwKLQkweGY4LCAweDQ0LCAweDA1LCAweGJhLCAweDZjLCAweGUxLCAweGZmLCAweDU2LAotCTB4MDUsIDB4ZTMsIDB4NzIsIDB4MTIsIDB4MmEsIDB4YTEsIDB4ZjQsIDB4OTUsCi0JMHg3MCwgMHhlMiwgMHgyYSwgMHgxOCwgMHgwMCwgMHgxMSwgMHg2YiwgMHhmOCwKLQkweDJhLCAweGExLCAweDAwLCAweDAxLCAweGYwLCAweDczLCAweDA1LCAweGUzLAotCTB4NzIsIDB4MTIsIDB4MmEsIDB4YTEsIDB4ZjQsIDB4OTUsIDB4NzAsIDB4ZTIsCi0JMHgyYSwgMHgxOCwgMHgwMCwgMHgxMSwgMHgxMCwgMHhmOCwgMHgyYSwgMHhhMSwKLQkweGYwLCAweDAwLCAweDAwLCAweDAxLCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmUsIDB4ZTIsIDB4ZmYsIDB4ZmMsIDB4MDUsIDB4ZDEsCi0JMHg3MywgMHgxMiwgMHgyYSwgMHhhMSwgMHg0OCwgMHgxMSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDA1LCAweDgwLCAweGY4LCAweDJhLCAweGEyLCAweDEwLCAweGY4LAotCTB4MmEsIDB4YTEsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4YTIsIDB4ZjgsIDB4NDQsCi0JMHgwNSwgMHhlMywgMHg2YywgMHhlMSwgMHhmZiwgMHhhYiwgMHgwNSwgMHhkZCwKLQkweDc2LCAweGY4LCAweDJhLCAweDM4LCAweDAwLCAweDAxLCAweDc2LCAweGY4LAotCTB4MmEsIDB4YTEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTIsCi0JMHgwMCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHhmNCwgMHg5NSwKLQkweDRhLCAweDA4LCAweDRhLCAweDA5LCAweDRhLCAweDBhLCAweDRhLCAweDBiLAotCTB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsIDB4NGEsIDB4MTAsIDB4NGEsIDB4MTEsCi0JMHg0YSwgMHgxMiwgMHg0YSwgMHgxMywgMHg0YSwgMHgxNCwgMHg0YSwgMHgxNSwKLQkweDRhLCAweDE2LCAweDRhLCAweDE3LCAweDRhLCAweDE3LCAweDRhLCAweDE5LAotCTB4NGEsIDB4MGUsIDB4NGEsIDB4MDYsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWEsCi0JMHg0YSwgMHgxZCwgMHg0YSwgMHgxYiwgMHg0YSwgMHgxYywgMHg2OCwgMHhmOCwKLQkweDAwLCAweDA3LCAweDdkLCAweDNmLCAweDY5LCAweGY4LCAweDAwLCAweDA3LAotCTB4NDAsIDB4MDAsIDB4NjgsIDB4ZjgsIDB4MDAsIDB4MWQsIDB4ZmYsIDB4ZmMsCi0JMHg0OCwgMHgxOCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxOCwgMHhmZiwgMHhmZSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweGVlLCAweGZmLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4NWIsIDB4ZjksIDB4ODAsIDB4MTgsIDB4MDQsCi0JMHhmMCwgMHg3NCwgMHgwNSwgMHhhMiwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxOCwKLQkweGY0LCAweDk1LCAweDhhLCAweDFjLCAweDhhLCAweDFiLCAweDhhLCAweDFkLAotCTB4OGEsIDB4MWEsIDB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGUsCi0JMHg4YSwgMHgxOSwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwKLQkweDhhLCAweDE1LCAweDhhLCAweDE0LCAweDhhLCAweDEzLCAweDhhLCAweDEyLAotCTB4OGEsIDB4MTEsIDB4OGEsIDB4MTAsIDB4OGEsIDB4MGQsIDB4OGEsIDB4MGMsCi0JMHg4YSwgMHgwYiwgMHg4YSwgMHgwYSwgMHg4YSwgMHgwOSwgMHg4YSwgMHgwOCwKLQkweGY0LCAweGViLCAweGVlLCAweGZkLCAweDc2LCAweGY4LCAweDJhLCAweDM4LAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4NWEsIDB4MDAsIDB4MDAsCi0JMHhlOCwgMHgwMSwgMHg0ZSwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNywgMHhkNiwKLQkweGY0LCAweDk1LCAweGU4LCAweDAxLCAweDgwLCAweGY4LCAweDJhLCAweDViLAotCTB4NzYsIDB4MDAsIDB4MmEsIDB4OGYsIDB4ZjksIDB4ODAsIDB4MTYsIDB4YWEsCi0JMHgxMCwgMHhmOCwgMHgyYSwgMHg1YiwgMHhmOSwgMHg4MCwgMHgxNywgMHg1YywKLQkweDEwLCAweGY4LCAweDJhLCAweDViLCAweGY5LCAweDgwLCAweDE3LCAweDZmLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4NjYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWEsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHg4NywgMHhmNCwgMHg5NSwgMHhlOCwgMHgxYSwKLQkweGZiLCAweDgwLCAweDE2LCAweDY2LCAweGY0LCAweDk1LCAweGU4LCAweDFiLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4ODcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MWIsCi0JMHhlZSwgMHgwMywgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDEzLCAweDAyLCAweDg4LCAweDExLCAweGU4LCAweDAwLCAweGY4LCAweDRkLAotCTB4MDYsIDB4NmEsIDB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MWEsCi0JMHhmNCwgMHg5NSwgMHhmMCwgMHg3MiwgMHgwNiwgMHg2OSwgMHgxYywgMHg5MSwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLAotCTB4MTIsIDB4MDMsIDB4MTEsIDB4MDIsIDB4ZjgsIDB4NDUsIDB4MDYsIDB4NzksCi0JMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwgMHg4OCwgMHgxYSwgMHhmNCwgMHg5NSwKLQkweGYwLCAweDcyLCAweDA2LCAweDc4LCAweDgxLCAweDkxLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzEsIDB4MDIsCi0JMHgwMCwgMHgxMSwgMHgxMSwgMHgwMywgMHg2MSwgMHhmOCwgMHgwMCwgMHgxMSwKLQkweDAwLCAweDAxLCAweGY4LCAweDMwLCAweDA2LCAweDkxLCAweGY2LCAweGI4LAotCTB4NmYsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4MGMsIDB4MWYsIDB4ODgsIDB4MTEsCi0JMHhmMywgMHhlOCwgMHhlOCwgMHhmZiwgMHgxOCwgMHg4MSwgMHhmMSwgMHhhMCwKLQkweDgxLCAweDgxLCAweGYwLCAweDczLCAweDA2LCAweDlkLCAweGY2LCAweGI4LAotCTB4NmYsIDB4ZjgsIDB4MDAsIDB4MTEsIDB4MGMsIDB4MWYsIDB4ODgsIDB4MTEsCi0JMHhmMywgMHgzMCwgMHgwMCwgMHhmZiwgMHhmMCwgMHgyMCwgMHhmZiwgMHgwMCwKLQkweDE4LCAweDgxLCAweGYxLCAweGEwLCAweDgxLCAweDgxLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4MTEsIDB4MDIsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDA2LCAweGIxLCAweDQ5LCAweDBiLCAweGY2LCAweDFmLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZjIsIDB4NzMsCi0JMHgwNiwgMHhiOCwgMHhmMCwgMHgzMCwgMHgwMCwgMHhmZiwgMHg0OSwgMHgwYiwKLQkweGY2LCAweDFmLCAweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4MTIsIDB4ODEsIDB4ZjQsIDB4NzgsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMiwKLQkweDEzLCAweDAzLCAweDg4LCAweDExLCAweGU4LCAweDAwLCAweGY4LCAweDRkLAotCTB4MDYsIDB4Y2MsIDB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ODksIDB4MWEsCi0JMHhmNCwgMHg5NSwgMHhmMCwgMHg3MiwgMHgwNiwgMHhjYiwgMHgxMSwgMHg5MiwKLQkweGYyLCAweGMwLCAweDgxLCAweDkxLCAweDhhLCAweDExLCAweGZjLCAweDAwLAotCTB4ODgsIDB4MTIsIDB4MTIsIDB4MDIsIDB4NzEsIDB4MDEsIDB4MDAsIDB4MTMsCi0JMHhmOCwgMHg0NSwgMHgwNiwgMHhkYiwgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMSwKLQkweDg4LCAweDFhLCAweGY0LCAweDk1LCAweGYwLCAweDcyLCAweDA2LCAweGRhLAotCTB4ZTUsIDB4OTgsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsCi0JMHg4OCwgMHgxMSwgMHgxMSwgMHgwNCwgMHgxMCwgMHgwNiwgMHg3MSwgMHgwNSwKLQkweDAwLCAweDEyLCAweDYxLCAweGY4LCAweDAwLCAweDEyLCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MjAsIDB4MDYsIDB4ZWEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmNiwgMHhiOCwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHg2ZiwgMHhmOCwKLQkweDAwLCAweDEyLCAweDBmLCAweDFmLCAweDQ4LCAweDA4LCAweDgxLCAweDAwLAotCTB4ZjQsIDB4N2YsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4NzQsIDB4MDYsIDB4YmEsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZlLCAweDg4LCAweDEyLAotCTB4MTEsIDB4MDQsIDB4MTAsIDB4MDYsIDB4NzEsIDB4MDUsIDB4MDAsIDB4MTMsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgxMywgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDA3LCAweDA5LCAweGYwLCAweDAwLCAweDAwLCAweDAxLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4ODgsIDB4MTEsIDB4ZjYsIDB4YjgsIDB4NmYsIDB4ZjgsCi0JMHgwMCwgMHgxMywgMHgwZiwgMHgxZiwgMHg4MSwgMHgwMCwgMHg0OCwgMHgxMSwKLQkweGY0LCAweDdmLCAweDgwLCAweDAxLCAweGYyLCAweDc0LCAweDA2LCAweGNlLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MTIsIDB4NDgsIDB4MTEsIDB4ZjAsIDB4MzAsCi0JMHhmZiwgMHhmZSwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LCAweGVlLCAweGZjLAotCTB4ZjQsIDB4OTUsIDB4ODAsIDB4MDIsIDB4NzEsIDB4MDgsIDB4MDAsIDB4MTYsCi0JMHgxMCwgMHgwOSwgMHg3MSwgMHgwYiwgMHgwMCwgMHgxNywgMHg4MCwgMHgwMywKLQkweDcxLCAweDBhLCAweDAwLCAweDExLCAweDQ4LCAweDE3LCAweGY4LCAweDQ1LAotCTB4MDcsIDB4M2YsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTEsIDB4MTAsIDB4MDMsCi0JMHhmMCwgMHg3NCwgMHgwNiwgMHg5ZiwgMHg4MCwgMHgwMSwgMHg3MCwgMHgwMCwKLQkweDAwLCAweDE2LCAweDEwLCAweDAyLCAweGYwLCAweDc0LCAweDA2LCAweDdiLAotCTB4NmQsIDB4OTEsIDB4NmQsIDB4OTYsIDB4NmMsIDB4ZWYsIDB4ZmYsIDB4ZmYsCi0JMHgwNywgMHgyZiwgMHhlZSwgMHgwNCwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZlLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTgsIDB4MDgsIDB4ZjgsIDB4MmEsIDB4ZTksCi0JMHhmOCwgMHg0NSwgMHgwNywgMHg2NCwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDYyLCAweGY4LCAweDJhLCAweGU5LCAweDAwLCAweDVlLCAweGYyLCAweDc0LAotCTB4MTIsIDB4MGIsIDB4ZjAsIDB4MDAsIDB4MzAsIDB4NDAsIDB4NzIsIDB4MTEsCi0JMHgyYSwgMHhlOSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwZiwgMHhmNSwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA3LCAweDYxLCAweDZiLCAweGY4LCAweDJhLCAweGU5LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MDcsIDB4NjQsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHhlOSwgMHgwMCwgMHgwMCwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGU4LCAweDAwLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDgsIDB4ZTgsIDB4MDAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwOSwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZjLCAweDNmLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MGQsIDB4ZjAsIDB4MjAsIDB4MGMsIDB4MzAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwYywgMHg3NiwgMHhmOCwKLQkweDJhLCAweGU4LCAweDAwLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGU5LAotCTB4MDAsIDB4MDAsIDB4NmMsIDB4ODEsIDB4MDcsIDB4OTIsIDB4NzYsIDB4ZjgsCi0JMHgyYSwgMHhlYSwgMHgwMCwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNiwgMHg3NiwKLQkweGY0LCAweDk1LCAweGU4LCAweDEwLCAweGU4LCAweDAwLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4ZjAsIDB4NzMsIDB4MDcsIDB4YTgsCi0JMHg3NiwgMHhmOCwgMHgyYSwgMHhlYSwgMHgwMCwgMHgwMSwgMHhmYiwgMHg4MCwKLQkweDE2LCAweDY2LCAweGY0LCAweDk1LCAweGU4LCAweDEwLCAweGZiLCAweDgwLAotCTB4MTYsIDB4ODcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MTAsIDB4ZTgsIDB4MDAsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwMCwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZmLCAweGZmLCAweDc1LCAweGY4LAotCTB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHhmNCwgMHg5NSwgMHg0YSwgMHgwOCwgMHg0YSwgMHgwOSwgMHg0YSwgMHgwYSwKLQkweDRhLCAweDA2LCAweDRhLCAweDA3LCAweDRhLCAweDFkLCAweDY4LCAweGY4LAotCTB4MDAsIDB4MDcsIDB4N2QsIDB4M2YsIDB4NjksIDB4ZjgsIDB4MDAsIDB4MDcsCi0JMHg0MCwgMHgwMCwgMHg2OCwgMHhmOCwgMHgwMCwgMHgxZCwgMHhmZiwgMHhmYywKLQkweDEwLCAweGY4LCAweDJhLCAweGVhLCAweGY4LCAweDQ1LCAweDA3LCAweGUxLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4ZTgsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHgzMCwgMHgwMCwgMHgwZiwgMHg4MCwgMHhmOCwgMHgyYSwgMHhlOCwKLQkweDEwLCAweGY4LCAweDJhLCAweGU4LCAweGY4LCAweDQ0LCAweDA3LCAweGQ2LAotCTB4ZjYsIDB4YjgsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4MjAsIDB4ZmMsIDB4M2YsCi0JMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwgMHgwMCwgMHgwZCwgMHhmMCwgMHgyMCwKLQkweDBjLCAweDMwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDBjLAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDAsCi0JMHhmNiwgMHhiOCwgMHhmNCwgMHg5NSwgMHhmMCwgMHgyMCwgMHhmZiwgMHhmZiwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAwLCAweDhhLCAweDFkLAotCTB4OGEsIDB4MDcsIDB4OGEsIDB4MDYsIDB4OGEsIDB4MGEsIDB4OGEsIDB4MDksCi0JMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwgMHhlZSwgMHhmZiwgMHhmMiwgMHg3NCwKLQkweDA3LCAweDY3LCAweGY0LCAweDk1LCAweGU4LCAweDAxLCAweGVlLCAweDAxLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWQsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg3ZCwgMHgzZiwgMHg2OSwgMHhmOCwgMHgwMCwgMHgwNywKLQkweDQwLCAweDAwLCAweDY4LCAweGY4LCAweDAwLCAweDFkLCAweGZmLCAweGZjLAotCTB4OGEsIDB4MWQsIDB4OGEsIDB4MDcsIDB4ZjQsIDB4ZWIsIDB4NGEsIDB4MTEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgyOCwgMHg3NiwgMHg4MSwgMHgyNCwgMHgwMCwKLQkweGU4LCAweDAwLCAweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLAotCTB4ZjIsIDB4NzQsIDB4MDcsIDB4NjcsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgxZCwgMHg2OCwgMHg4MSwgMHgwMCwgMHg3ZiwKLQkweGY2LCAweGI4LCAweGY0LCAweDk1LCAweGYwLCAweDIwLCAweGZmLCAweDgwLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4MWQsIDB4ZjAsIDB4MzAsIDB4MDEsIDB4MDAsCi0JMHgxYSwgMHg4MSwgMHg4MCwgMHg4MSwgMHhmMCwgMHg3NCwgMHgwYSwgMHgzMywKLQkweGYwLCAweDc0LCAweDExLCAweGFjLCAweGY5LCAweDgwLCAweDEzLCAweDI1LAotCTB4ZjksIDB4ODAsIDB4MTYsIDB4NTMsIDB4ZjksIDB4ODAsIDB4MTcsIDB4ODIsCi0JMHhmMCwgMHg3NCwgMHgwNiwgMHgyZiwgMHhmOSwgMHg4MCwgMHgxNCwgMHhiMiwKLQkweGY5LCAweDgwLCAweDE5LCAweDEwLCAweGYwLCAweDc0LCAweDBkLCAweGUzLAotCTB4ZjAsIDB4NzQsIDB4MDcsIDB4ZTgsIDB4ZjAsIDB4NzQsIDB4MDIsIDB4MzYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHg2MCwgMHhmOCwKLQkweDI3LCAweDdiLCAweGZmLCAweGZmLCAweGY4LCAweDMwLCAweDA4LCAweDM5LAotCTB4NzEsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4MjcsIDB4NzksIDB4NjAsIDB4ZjgsCi0JMHgyNywgMHg3OSwgMHhmZiwgMHhmZiwgMHhmOCwgMHgzMCwgMHgwOCwgMHhiMiwKLQkweDEwLCAweGY4LCAweDI5LCAweDg2LCAweDA4LCAweGY4LCAweDI3LCAweDc5LAotCTB4ZjAsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDA4LCAweDU4LCAweDEwLCAweGY4LCAweDI3LCAweDc5LCAweDA4LCAweGY4LAotCTB4MjcsIDB4N2EsIDB4ZjAsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA4LCAweDYzLCAweDc2LCAweGY4LCAweDI3LCAweDc5LAotCTB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4ZmYsIDB4ZmYsCi0JMHhmNywgMHhiOCwgMHhmMiwgMHg3MywgMHgwOCwgMHhkOSwgMHhmMCwgMHgyMCwKLQkweGZmLCAweGZmLCAweGY2LCAweGI4LCAweDU2LCAweGY4LCAweDI3LCAweDc0LAotCTB4ZjAsIDB4ZjksIDB4ODgsIDB4MTEsIDB4NTYsIDB4ZjgsIDB4MjcsIDB4NzIsCi0JMHhmMCwgMHhmOSwgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweGU3LCAweDIwLCAweGY0LCAweGE5LCAweGY4LCAweDMwLCAweDA4LCAweDhmLAotCTB4ZjEsIDB4MjAsIDB4MjcsIDB4N2MsIDB4NDgsIDB4MTEsIDB4ZjYsIDB4MDAsCi0JMHg4OCwgMHgxMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHgxMCwgMHg4MywKLQkweDA4LCAweGY4LCAweDI3LCAweDc5LCAweGYwLCAweDMwLCAweDdmLCAweGZmLAotCTB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4NDAsIDB4MDAsCi0JMHhmNSwgMHhhYiwgMHhmOCwgMHgzMCwgMHgwOCwgMHg4ZiwgMHg2ZCwgMHg5MSwKLQkweDQ4LCAweDExLCAweGYwLCAweDMwLCAweDAxLCAweGZmLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZTcsIDB4MjAsIDB4ZjcsIDB4YTksIDB4ZjgsIDB4MzAsCi0JMHgwOCwgMHg3NCwgMHg2ZCwgMHg4OSwgMHg0OCwgMHgxMSwgMHhmMCwgMHgzMCwKLQkweDAxLCAweGZmLCAweGYwLCAweGU3LCAweGY0LCAweDk1LCAweDQ4LCAweDA4LAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NzQsIDB4NDgsIDB4MDgsIDB4ZjEsIDB4ZjksCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwKLQkweDI3LCAweDdjLCAweDI3LCAweDdhLCAweDYwLCAweGY4LCAweDI3LCAweDdiLAotCTB4ZmYsIDB4ZmYsIDB4ZjgsIDB4MzAsIDB4MDgsIDB4YWIsIDB4NDgsIDB4MDgsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3MiwgMHg3NiwgMHhmOCwgMHgyNywgMHg3YiwKLQkweGZmLCAweGZmLCAweDc2LCAweGY4LCAweDI3LCAweDc5LCAweGZmLCAweGZmLAotCTB4ZjIsIDB4NzMsIDB4MDgsIDB4ZDksIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg0NCwgMHhmOCwgMHgyNywgMHg3MywgMHg0MCwgMHhmOCwgMHgyNywgMHg3NSwKLQkweDgyLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweDc3LCAweDEwLAotCTB4ODAsIDB4MDAsIDB4ZjYsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MDgsIDB4ZDgsCi0JMHhmNiwgMHhiOCwgMHgxMCwgMHhmOCwgMHgyNywgMHg3MywgMHhmMCwgMHgwMCwKLQkweDgwLCAweDAwLCAweDQ4LCAweDA4LCAweDRlLCAweGY4LCAweDI3LCAweDc0LAotCTB4NDgsIDB4MDgsIDB4ZjAsIDB4ZjksIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgyNywgMHg3YywgMHgyNywgMHg3YSwKLQkweGY3LCAweGI4LCAweDU3LCAweGY4LCAweDI3LCAweDc0LCAweGYwLCAweDYyLAotCTB4ZmYsIDB4ZmYsIDB4ZjAsIDB4NDAsIDB4ZmYsIDB4ODAsIDB4ZjIsIDB4ODAsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3NCwgMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGVlLCAweGZiLAotCTB4MTEsIDB4ZjgsIDB4MjcsIDB4NzEsIDB4MDksIDB4ZjgsIDB4MjcsIDB4NzMsCi0JMHg4OSwgMHgxMSwgMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweGY2LCAweGE5LCAweGY4LCAweDIwLCAweDA4LCAweGVkLCAweGYyLCAweDczLAotCTB4MDksIDB4MGUsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZjYsIDB4MjAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHg0MSwgMHhmMCwgMHg3NCwgMHgxMiwgMHhlZSwKLQkweDg4LCAweDE2LCAweGY0LCAweDk1LCAweGY3LCAweGI4LCAweDZkLCAweDk2LAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTYsIDB4ZjgsIDB4NDcsIDB4MDksIDB4MGEsCi0JMHhlNywgMHg2MSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwKLQkweDAwLCAweDgwLCAweDc2LCAweDAyLCAweDAwLCAweGZmLCAweDc2LCAweDAzLAotCTB4MDAsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsCi0JMHhlOCwgMHgwMCwgMHg2YywgMHhlOSwgMHhmZiwgMHhmZiwgMHgwOCwgMHhmYiwKLQkweDczLCAweDE2LCAweDAwLCAweDBlLCAweGYwLCAweDY2LCAweDAwLCAweDQxLAotCTB4ZWUsIDB4MDUsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMywKLQkweGY2LCAweGI4LCAweDc3LCAweDExLCAweDdmLCAweGZmLCAweDU3LCAweGY4LAotCTB4MjcsIDB4NzIsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4ODAsIDB4ZjAsIDB4MDAsCi0JMHg4MCwgMHgwMCwgMHg4OCwgMHgxMSwgMHhmNiwgMHg0MCwgMHhmMCwgMHhlMCwKLQkweGYxLCAweGYxLCAweGU4LCAweDAxLCAweGYyLCAweDgwLCAweDgwLCAweGY4LAotCTB4MjcsIDB4NzgsIDB4NzcsIDB4MTIsIDB4ODAsIDB4MDAsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHg0OCwgMHgxMiwgMHhmMiwgMHg4MCwgMHg4OCwgMHgxMiwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgyLCAweDA5LCAweDM4LAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHg3MywgMHgwOSwgMHgzZCwgMHhmMCwgMHgyMCwgMHg4MCwgMHgwMSwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDcwLCAweDgxLAotCTB4MDAsIDB4MTMsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhmMCwgMHgzMCwgMHg3ZiwgMHhmZiwgMHgxMSwgMHhmOCwgMHgyOSwgMHg4NiwKLQkweGY1LCAweDIwLCAweGYzLCAweDMwLCAweDdmLCAweGZmLCAweDg5LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4NDAsIDB4MDAsIDB4ZjYsIDB4YTksCi0JMHhmOCwgMHgyMCwgMHgwOSwgMHg1NCwgMHhmMiwgMHg3MywgMHgwOSwgMHg2NywKLQkweGY0LCAweDk1LCAweGU4LCAweDAyLCAweDZmLCAweGY4LCAweDI3LCAweDdhLAotCTB4MGQsIDB4MjAsIDB4ZjMsIDB4MzAsIDB4N2YsIDB4ZmYsIDB4ODksIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwKLQkweGY4LCAweDIwLCAweDA5LCAweDY0LCAweGYyLCAweDczLCAweDA5LCAweDY3LAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsIDB4ODAsIDB4ZjgsIDB4MjcsIDB4N2IsCi0JMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDExLCAweGY4LCAweDI5LCAweDg2LCAweGY1LCAweDIwLCAweGYzLCAweDMwLAotCTB4N2YsIDB4ZmYsIDB4ODksIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHg0MCwgMHgwMCwgMHhmNiwgMHhhOSwgMHhmOCwgMHgyMCwgMHgwOSwgMHg3YSwKLQkweGYyLCAweDczLCAweDA5LCAweDhkLCAweGY0LCAweDk1LCAweGU4LCAweDAyLAotCTB4NmYsIDB4ZjgsIDB4MjcsIDB4N2EsIDB4MGQsIDB4MjAsIDB4ZjMsIDB4MzAsCi0JMHg3ZiwgMHhmZiwgMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDQwLCAweDAwLCAweGY2LCAweGE5LCAweGY4LCAweDIwLCAweDA5LCAweDhhLAotCTB4ZjIsIDB4NzMsIDB4MDksIDB4OGQsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDEsCi0JMHg4MCwgMHhmOCwgMHgyNywgMHg3OSwgMHhlOCwgMHgwMCwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGY0LCAweDk1LCAweDcxLCAweDAyLAotCTB4MDAsIDB4MTIsIDB4ODgsIDB4MTEsIDB4ZjYsIDB4YjgsIDB4NTcsIDB4ZjgsCi0JMHgyNywgMHg3MiwgMHhmMCwgMHgyMCwgMHg3ZiwgMHhmZiwgMHhmMiwgMHg4MCwKLQkweGYwLCAweDAwLCAweDgwLCAweDAwLCAweDgwLCAweDgxLCAweDU3LCAweGY4LAotCTB4MjcsIDB4NzIsIDB4ZTgsIDB4MDEsIDB4ZjMsIDB4ZjEsIDB4ZjIsIDB4ODAsCi0JMHg4MCwgMHhmOCwgMHgyNywgMHg3OCwgMHg3NywgMHgxMSwgMHg4MCwgMHgwMCwKLQkweDQ4LCAweDExLCAweDU3LCAweGY4LCAweDI3LCAweDcyLCAweGYyLCAweDgwLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsCi0JMHgwOSwgMHhiNSwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGYwLCAweDczLCAweDA5LCAweGJhLCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDEsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHg0NSwgMHhmOCwgMHgyNywgMHg3MSwgMHg0MywgMHhmOCwgMHgyNywgMHg3MywKLQkweDgzLCAweGY4LCAweDAwLCAweDExLCAweGY0LCAweDk1LCAweGU3LCAweDIwLAotCTB4ZjYsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MDksIDB4YzksIDB4ZjIsIDB4NzMsCi0JMHgwOSwgMHhlNCwgMHg3NywgMHgxMiwgMHgwMCwgMHgwMCwgMHg1NywgMHhmOCwKLQkweDI3LCAweDcyLCAweGYwLCAweDIwLCAweDdmLCAweGZmLCAweGYyLCAweDgwLAotCTB4NDksIDB4MTIsIDB4ZjUsIDB4MDAsIDB4ZjMsIDB4MDAsIDB4ODAsIDB4MDAsCi0JMHg2MSwgMHhmOCwgMHgwMCwgMHgwYiwgMHg4MCwgMHgwMCwgMHhmOCwgMHgzMCwKLQkweDA5LCAweGRjLCAweGYxLCAweDIwLCAweDgwLCAweDAwLCAweGY1LCAweDIwLAotCTB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTIsIDB4NmYsIDB4ZjgsCi0JMHgyNywgMHg3MywgMHgwZCwgMHgwMCwgMHhmNCwgMHg5NSwgMHg0OSwgMHgwYiwKLQkweDRmLCAweGY4LCAweDI3LCAweDcyLCAweDhhLCAweDExLCAweGZlLCAweDAwLAotCTB4NDgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsCi0JMHg0YSwgMHgxNywgMHhlZSwgMHhmYywgMHhmNCwgMHg5NSwgMHg3MSwgMHgwOCwKLQkweDAwLCAweDE2LCAweDg4LCAweDE3LCAweGYwLCAweDc0LCAweDA4LCAweDMwLAotCTB4NDgsIDB4MTgsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTYsIDB4ZjIsIDB4NzQsCi0JMHgwOSwgMHg4ZiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgxLCAweDBhLCAweDBhLAotCTB4ZjIsIDB4NzQsIDB4MDgsIDB4ZGIsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTYsCi0JMHg0OCwgMHgxOCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwgMHhmMiwgMHg3NCwKLQkweDA5LCAweDhmLCAweGYwLCAweDAwLCAweDAwLCAweDAyLCAweDg4LCAweDExLAotCTB4MTAsIDB4MDIsIDB4NzAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4ODAsIDB4MDAsCi0JMHhmMiwgMHg3NCwgMHgwNiwgMHhjZSwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweDQ5LCAweDExLCAweDQ4LCAweDE3LCAweGY2LCAweDAwLCAweDg4LCAweDE3LAotCTB4ZTcsIDB4NjAsIDB4ZjUsIDB4YTksIDB4ZjgsIDB4MjAsIDB4MGEsIDB4MmQsCi0JMHg0OCwgMHgxNiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMSwgMHg0OCwgMHgxOCwKLQkweDcwLCAweDAwLCAweDAwLCAweDExLCAweGYyLCAweDc0LCAweDA5LCAweDhmLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ODgsIDB4MTEsIDB4NzAsIDB4MDEsCi0JMHgwMCwgMHgxMSwgMHgxMCwgMHgwMiwgMHg4MCwgMHgwMCwgMHhmMiwgMHg3NCwKLQkweDA2LCAweGNlLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweGVlLCAweDA0LAotCTB4NDgsIDB4MTYsIDB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsCi0JMHhmYywgMHgwMCwgMHhlZSwgMHhmZCwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwKLQkweDI3LCAweDcwLCAweGU4LCAweDAwLCAweDRlLCAweGY4LCAweDI3LCAweDcyLAotCTB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsIDB4MjcsIDB4NzQsIDB4ZTgsIDB4MDAsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg3NiwgMHg3NiwgMHhmOCwgMHgyNywgMHg3OSwKLQkweGZmLCAweGZmLCAweDc2LCAweGY4LCAweDI3LCAweDdhLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZjgsIDB4MjcsIDB4N2IsIDB4ZmYsIDB4ZmYsIDB4NzYsIDB4ZjgsCi0JMHgyNywgMHg3OCwgMHgwMCwgMHgwMCwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwKLQkweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDc2LCAweDAwLCAweDAwLCAweDAwLAotCTB4NzYsIDB4MDEsIDB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MTIsIDB4ZGMsCi0JMHhmMCwgMHgyMCwgMHgyNywgMHg3YywgMHhlZSwgMHgwMywgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGVlLCAweGZjLCAweGY0LCAweDk1LCAweDRlLCAweDAwLAotCTB4NzcsIDB4MTIsIDB4N2YsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4NDksIDB4MTIsCi0JMHhmMSwgMHg4MCwgMHhmMywgMHgwMCwgMHg4MCwgMHgwMCwgMHg4OSwgMHgxMiwKLQkweGYwLCAweGUwLCAweGYxLCAweGYxLCAweDRmLCAweDAyLCAweGU5LCAweDAxLAotCTB4ZjQsIDB4OTUsIDB4NDgsIDB4MGIsIDB4ZjUsIDB4NDAsIDB4NTYsIDB4MDIsCi0JMHhmMSwgMHg4MCwgMHg4MSwgMHhmOCwgMHgyNywgMHg3OCwgMHg3NywgMHgxMSwKLQkweDgwLCAweDAwLCAweDU2LCAweDAwLCAweDQ5LCAweDExLCAweGYxLCAweDgwLAotCTB4ODksIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsCi0JMHgwYSwgMHg4MSwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGYwLCAweDczLCAweDBhLCAweDg2LCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDEsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHgxMCwgMHg4MiwgMHhlZSwgMHgwNCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweGVlLCAweGZlLCAweGY0LCAweDk1LCAweDRlLCAweDAwLAotCTB4NzcsIDB4MTEsIDB4N2YsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4NDksIDB4MTEsCi0JMHhmMSwgMHg4MCwgMHhmMywgMHgwMCwgMHg4MCwgMHgwMCwgMHg4OSwgMHgxMSwKLQkweGYwLCAweGUwLCAweGYxLCAweGYxLCAweGU4LCAweDAxLCAweGYyLCAweDgwLAotCTB4ODAsIDB4ZjgsIDB4MjcsIDB4NzgsIDB4NTYsIDB4MDAsIDB4ZjEsIDB4MjAsCi0JMHg4MCwgMHgwMCwgMHhmMSwgMHg4MCwgMHhmNCwgMHg5NSwgMHg0OSwgMHgwYiwKLQkweGY4LCAweDRkLCAweDBhLCAweGFiLCAweGYwLCAweDIwLCAweDgwLCAweDAxLAotCTB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsCi0JMHgwYSwgMHhhZiwgMHhlOCwgMHgwMCwgMHg3NSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDAxLCAweGVlLCAweDAyLCAweDQ4LCAweDExLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTIsIDB4MTMsIDB4MDIsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgwMCwgMHhmOCwgMHg0ZCwgMHgwYSwgMHhjYiwKLQkweGYzLCAweDEwLCAweDAwLCAweDAxLCAweDg5LCAweDFhLCAweGY0LCAweDk1LAotCTB4ZjAsIDB4NzIsIDB4MGEsIDB4Y2EsIDB4NDgsIDB4MTEsIDB4MWMsIDB4ZjgsCi0JMHgyOSwgMHg3ZSwgMHg4OCwgMHgxMSwgMHgxMSwgMHhmOCwgMHgyOSwgMHg3ZSwKLQkweGYyLCAweDAwLCAweDAwLCAweDAxLCAweDgwLCAweGY4LCAweDI5LCAweDdlLAotCTB4ODEsIDB4OTIsIDB4NDgsIDB4MTEsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwMiwgMHgwMCwgMHgxMSwKLQkweDg4LCAweDEyLCAweGY2LCAweGI4LCAweGYwLCAweDIwLCAweDdmLCAweGZmLAotCTB4NTcsIDB4ZjgsIDB4MjcsIDB4NzAsIDB4ZjIsIDB4ODAsIDB4ZjAsIDB4MDAsCi0JMHg4MCwgMHgwMCwgMHg4MCwgMHg4MiwgMHg1NywgMHhmOCwgMHgyNywgMHg3MCwKLQkweGU4LCAweDAxLCAweGYzLCAweGYxLCAweGYyLCAweDgwLCAweDgwLCAweGY4LAotCTB4MjcsIDB4NzgsIDB4NzcsIDB4MTIsIDB4ODAsIDB4MDAsIDB4NDgsIDB4MTIsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg3MCwgMHhmMiwgMHg4MCwgMHg4OCwgMHgxMiwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgyLCAweDBhLCAweGY0LAotCTB4ZTgsIDB4MDAsIDB4NzUsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsCi0JMHhmMCwgMHg3MywgMHgwYSwgMHhmOSwgMHhmMCwgMHgyMCwgMHg4MCwgMHgwMSwKLQkweDc1LCAweGY4LCAweDAwLCAweDA4LCAweDAwLCAweDAxLCAweDQ1LCAweGY4LAotCTB4MjcsIDB4NzUsIDB4ZTcsIDB4MTAsIDB4NDMsIDB4ZjgsIDB4MjcsIDB4NzEsCi0JMHg4MywgMHhmOCwgMHgwMCwgMHgxMiwgMHg2ZCwgMHhlOCwgMHgwMCwgMHgwNCwKLQkweDZkLCAweDhhLCAweGY2LCAweGFhLCAweGY4LCAweDMwLCAweDBiLCAweDBhLAotCTB4ZjIsIDB4NzMsIDB4MGIsIDB4MjUsIDB4NzcsIDB4MTEsIDB4MDAsIDB4MDAsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg3MCwgMHhmMCwgMHgyMCwgMHg3ZiwgMHhmZiwKLQkweGYyLCAweDgwLCAweDQ5LCAweDExLCAweGY1LCAweDAwLCAweGYzLCAweDAwLAotCTB4ODAsIDB4MDAsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsIDB4ODAsIDB4MDAsCi0JMHhmOCwgMHgzMCwgMHgwYiwgMHgxZCwgMHhmMSwgMHgyMCwgMHg4MCwgMHgwMCwKLQkweGY1LCAweDIwLCAweDg5LCAweDExLCAweGY0LCAweDk1LCAweDQ4LCAweDExLAotCTB4NmYsIDB4ZjgsIDB4MjcsIDB4NzEsIDB4MGQsIDB4MDAsIDB4ZjQsIDB4OTUsCi0JMHg0OSwgMHgwYiwgMHg0ZiwgMHhmOCwgMHgyNywgMHg3MCwgMHg0OCwgMHgxMSwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZjAsIDB4ODgsIDB4MTcsIDB4MTAsIDB4MTcsCi0JMHg4MCwgMHgwNSwgMHgxMCwgMHgxNiwgMHg4MCwgMHgwNiwgMHgxMCwgMHgxNSwKLQkweDgwLCAweDA3LCAweDcxLCAweDE0LCAweDAwLCAweDExLCAweDEwLCAweDA1LAotCTB4ZjAsIDB4MzAsIDB4MDAsIDB4MDEsIDB4ODgsIDB4MTAsIDB4MTAsIDB4MDYsCi0JMHhmMCwgMHgzMCwgMHgwMCwgMHgwMSwgMHg4MCwgMHgwOCwgMHg0OSwgMHgxMSwKLQkweDEwLCAweDA1LCAweGY2LCAweDAxLCAweDgwLCAweDA5LCAweDEwLCAweDA2LAotCTB4NjEsIDB4ZjgsIDB4MDAsIDB4MDgsIDB4MDAsIDB4MDEsIDB4ZjgsIDB4MjAsCi0JMHgwYiwgMHg0YiwgMHgxMCwgMHgwOSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDgwLCAweDA5LCAweDcxLCAweDA4LCAweDAwLCAweDEyLCAweGY0LCAweGFhLAotCTB4ZjgsIDB4MzAsIDB4MGIsIDB4NTQsIDB4MTAsIDB4MDksIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg4MCwgMHgwOSwgMHgxMiwgMHgwOSwgMHg0OSwgMHgxMSwKLQkweGY0LCAweDdmLCAweDgwLCAweDA5LCAweGY2LCAweDIwLCAweDgwLCAweDBhLAotCTB4NTYsIDB4ZjgsIDB4MjcsIDB4NzAsIDB4NGUsIDB4MGMsIDB4MTAsIDB4MDksCi0JMHg4MCwgMHgwMCwgMHg0OCwgMHgxOCwgMHhmMiwgMHg3NCwgMHgwYSwgMHhjZSwKLQkweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDg4LCAweDE2LCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmMsIDB4ODYsIDB4MGIsIDB4NmQsIDB4ZjIsIDB4NzMsCi0JMHgwYywgMHg1OSwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwgMHhmNiwgMHhiOCwKLQkweGY0LCAweDk1LCAweDU2LCAweDBjLCAweGYwLCAweGY5LCAweDg4LCAweDEyLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NzAsIDB4ZTIsIDB4MjcsIDB4N2MsCi0JMHgyOSwgMHg4NiwgMHhlOCwgMHgwMCwgMHg4MCwgMHgwZSwgMHg0OCwgMHgxMSwKLQkweGY4LCAweDQ1LCAweDBiLCAweGNjLCAweDc3LCAweDEwLCAweDAwLCAweDAxLAotCTB4ZjQsIDB4YTksIDB4ZjgsIDB4MzAsIDB4MGIsIDB4ODksIDB4NmMsIDB4ZTEsCi0JMHhmZiwgMHhmZCwgMHgwYiwgMHg4YiwgMHgxMCwgMHhlNywgMHgwMCwgMHgwMiwKLQkweDgwLCAweDBlLCAweGYwLCAweDczLCAweDBiLCAweDhiLCAweDEwLCAweDg3LAotCTB4ODAsIDB4MGUsIDB4ZTcsIDB4MTAsIDB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsCi0JMHgwYiwgMHhiMiwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwKLQkweDAwLCAweDE2LCAweDEwLCAweDA0LCAweGYwLCAweDc0LCAweDA2LCAweGNlLAotCTB4NDgsIDB4MTcsIDB4NDksIDB4MTYsIDB4ZjYsIDB4MDAsIDB4ODgsIDB4MTcsCi0JMHg0OCwgMHgxMSwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMSwgMHgxMCwgMHgwOSwKLQkweGY2LCAweDIwLCAweDgwLCAweDAwLCAweDQ4LCAweDE4LCAweGYyLCAweDc0LAotCTB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDQsIDB4ODgsIDB4MTYsCi0JMHgxMCwgMHgwNCwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwKLQkweDAwLCAweDExLCAweGYwLCAweDc0LCAweDA2LCAweGNlLCAweDQ4LCAweDExLAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4MDQsIDB4ZjAsIDB4NzMsIDB4MGIsIDB4YmMsCi0JMHg3MCwgMHgwMCwgMHgwMCwgMHgxNywgMHg3MCwgMHgwMSwgMHgwMCwgMHgxMSwKLQkweDEwLCAweDA0LCAweGYwLCAweDc0LCAweDA2LCAweGNlLCAweDQ4LCAweDExLAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4MDQsIDB4NDksIDB4MTEsIDB4NDgsIDB4MTYsCi0JMHhmNiwgMHgyMCwgMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweDZjLCAweDg2LCAweDBiLCAweGNjLCAweDEwLCAweDBhLCAweDgwLCAweDAwLAotCTB4NDgsIDB4MTgsIDB4ZjIsIDB4NzQsIDB4MGEsIDB4Y2UsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwNCwgMHg4OCwgMHgxNiwgMHgxMiwgMHgwYSwgMHhmOCwgMHg0NSwKLQkweDBjLCAweDMzLCAweDcxLCAweDBhLCAweDAwLCAweDEwLCAweGY0LCAweGFlLAotCTB4ZjgsIDB4MzAsIDB4MGMsIDB4MWMsIDB4NDgsIDB4MTYsIDB4ZjAsIDB4ZTEsCi0JMHg4OCwgMHgxMSwgMHgxMiwgMHgwOCwgMHhmOCwgMHg0NSwgMHgwYiwgMHhkYiwKLQkweDZkLCAweDg5LCAweDEyLCAweDA3LCAweGY4LCAweDQ1LCAweDBiLCAweGU5LAotCTB4MTAsIDB4MDcsIDB4ODAsIDB4MDAsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTEsCi0JMHgxMCwgMHgwNiwgMHg4MCwgMHgwMSwgMHgxMCwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDA2LCAweGRjLCAweGYwLCAweDczLCAweDBiLCAweGVmLCAweDQ4LCAweDExLAotCTB4NmYsIDB4MDAsIDB4MGMsIDB4OWYsIDB4MTAsIDB4MDQsIDB4ZjAsIDB4NzQsCi0JMHgwYSwgMHhiMywgMHgxMSwgMHgwZSwgMHhmMSwgMHhjMCwgMHg4MSwgMHgwZSwKLQkweDEwLCAweDA2LCAweDQ5LCAweDExLCAweGY2LCAweDAwLCAweDgwLCAweDA2LAotCTB4MTAsIDB4MDUsIDB4ZjYsIDB4MjAsIDB4ODgsIDB4MTEsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg0OCwgMHgwOCwgMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwKLQkweDQ4LCAweDE4LCAweGYyLCAweDc0LCAweDBhLCAweGNlLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDQsIDB4MTIsIDB4MDcsIDB4ZjgsIDB4NDUsIDB4MGMsIDB4MTEsCi0JMHgxMCwgMHgwNywgMHg4MCwgMHgwMCwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxMSwKLQkweDEwLCAweDA2LCAweDgwLCAweDAxLCAweDEwLCAweDA0LCAweGYwLCAweDc0LAotCTB4MDYsIDB4ZGMsIDB4ZjAsIDB4NzMsIDB4MGMsIDB4MTcsIDB4NDgsIDB4MTEsCi0JMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwgMHgxMCwgMHgwNCwgMHhmMCwgMHg3NCwKLQkweDBhLCAweGIzLCAweDExLCAweDBlLCAweGYxLCAweGMwLCAweDgxLCAweDBlLAotCTB4ZjAsIDB4NzMsIDB4MGMsIDB4MzMsIDB4MTIsIDB4MDcsIDB4ZjgsIDB4NDUsCi0JMHgwYywgMHgyYSwgMHgxMCwgMHgwNywgMHg4MCwgMHgwMCwgMHgxMCwgMHgwNiwKLQkweDgwLCAweDAxLCAweDEwLCAweDA1LCAweDgwLCAweDAyLCAweDEwLCAweDA0LAotCTB4ZjAsIDB4NzQsIDB4MDYsIDB4ZGMsIDB4ZjAsIDB4NzMsIDB4MGMsIDB4MzAsCi0JMHgxMiwgMHgwNSwgMHg2ZiwgMHgwMCwgMHgwYywgMHg5ZiwgMHgxMCwgMHgwNCwKLQkweGYwLCAweDc0LCAweDBhLCAweGIzLCAweDExLCAweDBlLCAweGYxLCAweGMwLAotCTB4ODEsIDB4MGUsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NDgsIDB4MTgsCi0JMHhmMiwgMHg3NCwgMHgwYSwgMHhjZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwKLQkweDcxLCAweDA0LCAweDAwLCAweDExLCAweDcwLCAweDgxLCAweDI5LCAweDg2LAotCTB4MTAsIDB4MGUsIDB4MWMsIDB4ZjgsIDB4MjksIDB4ODYsIDB4ODAsIDB4MGUsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMSwgMHg0OCwgMHgxOCwgMHhmMiwgMHg3NCwKLQkweDBhLCAweGNlLCAweGYwLCAweDAwLCAweDAwLCAweDA0LCAweDEwLCAweDBlLAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTEsIDB4ODAsIDB4ODEsIDB4MTAsIDB4ZjgsCi0JMHgyOSwgMHg4NiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHhmMCwgMHgzMCwKLQkweDdmLCAweGZmLCAweDgwLCAweGY4LCAweDI5LCAweDg2LCAweDEwLCAweDA5LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MDksIDB4ZWUsIDB4MTAsCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDEwLCAweGY4LCAweDI3LCAweDc1LCAweDA4LCAweGY4LCAweDI3LCAweDcxLAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDEsIDB4NDgsIDB4MDgsIDB4ZmMsIDB4MDAsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHhlZSwgMHhmZiwgMHhmNCwgMHg5NSwKLQkweDcxLCAweDA0LCAweDAwLCAweDE2LCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NDgsIDB4MDgsIDB4NGUsIDB4ZjgsIDB4MjksIDB4N2MsIDB4NmQsIDB4ZWUsCi0JMHhmZiwgMHhmZCwgMHg0OCwgMHgxNiwgMHhmOCwgMHg0NSwgMHgwYywgMHg5OSwKLQkweDU2LCAweGY4LCAweDI5LCAweDdjLCAweGYwLCAweDc0LCAweDBhLCAweDVhLAotCTB4ODgsIDB4MTEsIDB4MTAsIDB4ZjgsIDB4MjksIDB4N2QsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg0OCwgMHgwOCwgMHg0ZSwgMHhmOCwgMHgyOSwgMHg3YywKLQkweDEwLCAweGY4LCAweDI5LCAweDgyLCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4YTksCi0JMHhmYSwgMHgzMCwgMHgwYywgMHg5NiwgMHg4MCwgMHhmOCwgMHgyOSwgMHg4MiwKLQkweDU2LCAweGY4LCAweDI5LCAweDgwLCAweGYwLCAweDAwLCAweDAwLCAweDAxLAotCTB4NGUsIDB4ZjgsIDB4MjksIDB4ODAsIDB4NzMsIDB4MTEsIDB4MjksIDB4ODIsCi0JMHg2YywgMHhlZSwgMHhmZiwgMHhmZiwgMHgwYywgMHg3NiwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDE2LCAweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLAotCTB4NzYsIDB4ZjgsIDB4MjksIDB4ODQsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsCi0JMHgyOSwgMHg4NSwgMHgwMCwgMHgwMSwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwKLQkweDJhLCAweDBjLCAweDc2LCAweGY4LCAweDI5LCAweDg2LCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZjgsIDB4MjksIDB4ODcsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsCi0JMHgyOSwgMHg4OCwgMHg3NiwgMHg4MSwgMHhhYSwgMHhhYSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAxLCAweGFhLCAweGFhLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhlZSwgMHhmYywgMHhmNCwgMHg5NSwgMHg3MSwgMHgwNiwgMHgwMCwgMHgxNCwKLQkweDcxLCAweDA3LCAweDAwLCAweDEzLCAweDcxLCAweDA4LCAweDAwLCAweDEyLAotCTB4NzEsIDB4MDksIDB4MDAsIDB4MTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4ZmYsCi0JMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgwZCwgMHg0NCwgMHg0OSwgMHgxMywKLQkweDUzLCAweGY4LCAweDJhLCAweDBjLCAweDRmLCAweGY4LCAweDJhLCAweDBjLAotCTB4NzMsIDB4MTIsIDB4MDAsIDB4MGUsIDB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsCi0JMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMSwKLQkweDcxLCAweGUxLCAweDI0LCAweDAwLCAweDAwLCAweDExLCAweGY0LCAweGE5LAotCTB4ZjgsIDB4MzAsIDB4MGQsIDB4MTcsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MDIsCi0JMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgwYywgMHhlYywgMHg3NywgMHgxMSwKLQkweDI5LCAweDhhLCAweDc2LCAweDgxLCAweDAwLCAweDAwLCAweGU4LCAweDAwLAotCTB4NzcsIDB4MTQsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTMsIDB4MDAsIDB4MDAsCi0JMHhmMCwgMHg3MywgMHgwZCwgMHg0OCwgMHg2YywgMHg4MywgMHgwYywgMHhmYSwKLQkweDc3LCAweDExLCAweDI5LCAweDhhLCAweDQ4LCAweDEyLCAweGYwLCAweGU4LAotCTB4ZjAsIDB4NDAsIDB4ODAsIDB4MDAsIDB4ODAsIDB4ODEsIDB4ZTgsIDB4MDAsCi0JMHg3NywgMHgxNCwgMHgwMCwgMHgwMCwgMHhmMCwgMHg3MywgMHgwZCwgMHg0OCwKLQkweDQ5LCAweDEzLCAweGYzLCAweDQwLCAweDgwLCAweDAwLCAweDgxLCAweGY4LAotCTB4MjksIDB4OGEsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTUsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwZCwgMHgwNywgMHg2OSwgMHhmOCwgMHgyOSwgMHg4YSwKLQkweDQwLCAweDAwLCAweDYxLCAweGY4LCAweDAwLCAweDE0LCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MjAsIDB4MGQsIDB4MGYsIDB4NjksIDB4ZjgsIDB4MjksIDB4OGEsCi0JMHgyMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgyOSwgMHg4YSwgMHg0OSwgMHgxMiwKLQkweGYzLCAweGU4LCAweDFiLCAweDgxLCAweDgxLCAweDgxLCAweGYwLCAweDczLAotCTB4MGQsIDB4NDgsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODQsIDB4ZjgsIDB4NGMsCi0JMHgwZCwgMHgzNywgMHg3NywgMHgxMSwgMHgyOSwgMHg4OCwgMHg3NiwgMHg4MSwKLQkweGFhLCAweGFhLCAweDExLCAweGY4LCAweDI5LCAweDg1LCAweGYzLCAweDEwLAotCTB4MDAsIDB4MDEsIDB4ZjMsIDB4NDAsIDB4YWEsIDB4MDAsIDB4ODEsIDB4ZTEsCi0JMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgwMSwKLQkweDcwLCAweDAyLCAweDAwLCAweDE0LCAweDcwLCAweDAzLCAweDAwLCAweDEzLAotCTB4ZjIsIDB4NzQsIDB4MGIsIDB4MjgsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg3MSwgMHhmOCwgMHgyOSwgMHg4NSwgMHgyOSwgMHg4NCwgMHhmMCwgMHg3MywKLQkweDBkLCAweDczLCAweDc2LCAweDAwLCAweDAwLCAweDAwLCAweDgwLCAweDAxLAotCTB4NzYsIDB4MDIsIDB4MDAsIDB4MDAsIDB4NzAsIDB4MDMsIDB4MDAsIDB4MTMsCi0JMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwgMHhlOCwgMHgwMCwKLQkweGYwLCAweDczLCAweDBkLCAweDczLCAweDc3LCAweDExLCAweDI5LCAweDhhLAotCTB4NzAsIDB4ODEsIDB4MDAsIDB4MTMsIDB4MTEsIDB4ZjgsIDB4MjksIDB4ODQsCi0JMHhmOCwgMHg0YywgMHgwZCwgMHg2OCwgMHg3NywgMHgxMSwgMHgyOSwgMHg4OCwKLQkweDc2LCAweDgxLCAweGFhLCAweGFhLCAweDExLCAweGY4LCAweDI5LCAweDg1LAotCTB4ZjMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ZjMsIDB4NDAsIDB4YWEsIDB4MDAsCi0JMHg4MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMywKLQkweDgwLCAweDAxLCAweDcwLCAweDAyLCAweDAwLCAweDE0LCAweDcwLCAweDAzLAotCTB4MDAsIDB4MTMsIDB4ZjIsIDB4NzQsIDB4MGIsIDB4MjgsIDB4ZjQsIDB4OTUsCi0JMHg0OCwgMHgxMSwgMHg3MSwgMHhmOCwgMHgyOSwgMHg4NSwgMHgyOSwgMHg4NCwKLQkweGYwLCAweDczLCAweDBkLCAweDczLCAweDc2LCAweDAwLCAweDAwLCAweDAxLAotCTB4ODAsIDB4MDEsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTQsIDB4NzAsIDB4MDMsCi0JMHgwMCwgMHgxMywgMHhmMiwgMHg3NCwgMHgwYiwgMHgyOCwgMHhmNCwgMHg5NSwKLQkweDQ4LCAweDExLCAweDZiLCAweGY4LCAweDI5LCAweDg0LCAweGZmLCAweGZmLAotCTB4ZWUsIDB4MDQsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHhmNSwgMHg0MCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgwYiwgMHhmNCwgMHg3OCwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweGUxLAotCTB4ZmYsIDB4YjksIDB4MGQsIDB4ODgsIDB4ZjIsIDB4NzMsIDB4MGQsIDB4YTUsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHg2MCwgMHhmMiwgMHgwMCwgMHgwMCwgMHgwNiwKLQkweDYxLCAweGY4LCAweDAwLCAweDExLCAweDAwLCAweDIwLCAweGY4LCAweDMwLAotCTB4MGQsIDB4OTgsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDEsCi0JMHhmOCwgMHgyMCwgMHgwZCwgMHhhMywgMHhmMiwgMHgwMCwgMHgwMCwgMHgwNywKLQkweGYwLCAweDczLCAweDBkLCAweGEzLCAweDYxLCAweGY4LCAweDAwLCAweDBiLAotCTB4MDAsIDB4MDEsIDB4ZjgsIDB4MjAsIDB4MGQsIDB4YTEsIDB4ZjIsIDB4NzMsCi0JMHgwZCwgMHhhMywgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDAyLCAweDQ4LCAweDA4LCAweGY0LCAweDdmLCAweDhhLCAweDExLAotCTB4ZmMsIDB4MDAsIDB4ZWUsIDB4ZmYsIDB4ZjAsIDB4NzQsIDB4MDcsIDB4ZmQsCi0JMHhmMCwgMHg3NCwgMHgwNywgMHg0NCwgMHhmMCwgMHg3NCwgMHgwZCwgMHhiNCwKLQkweGYwLCAweDc0LCAweDAyLCAweDA1LCAweGYwLCAweDc0LCAweDA0LCAweDYwLAotCTB4ZjAsIDB4NzMsIDB4MGQsIDB4YWEsIDB4ZWUsIDB4ZmQsIDB4MTAsIDB4ZjgsCi0JMHgyYSwgMHhhMywgMHhmOCwgMHg0NCwgMHgwZCwgMHhjYiwgMHgxMCwgMHhmOCwKLQkweDJhLCAweGE0LCAweGY4LCAweDQ1LCAweDBkLCAweGQ3LCAweDc2LCAweDAwLAotCTB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsIDB4MDksIDB4ZTgsIDB4ZjAsIDB4MjAsCi0JMHgyMiwgMHgwMCwgMHg3NiwgMHhmOCwgMHgyYSwgMHhhNCwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGY4LCAweDJhLCAweGE3LCAweDAwLCAweDAwLCAweGYwLCAweDczLAotCTB4MGQsIDB4ZDcsIDB4NzYsIDB4MDAsIDB4MDIsIDB4MDAsIDB4ZjIsIDB4NzQsCi0JMHgwOSwgMHhlOCwgMHhmMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHg3NiwgMHhmOCwKLQkweDJhLCAweGEzLCAweDAwLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGE3LAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzQsIDB4MGMsIDB4NWUsIDB4ZjAsIDB4ZTAsCi0JMHhmMCwgMHgxMCwgMHgzYSwgMHg5OCwgMHhmOCwgMHg0NywgMHgwZCwgMHhlMSwKLQkweDc2LCAweGY4LCAweDI3LCAweDZlLCAweDAwLCAweDAwLCAweGVlLCAweDAzLAotCTB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmUsIDB4NzcsIDB4MTEsCi0JMHgyMCwgMHgwMCwgMHg3NiwgMHgwMCwgMHhhYSwgMHhhYSwgMHg3NiwgMHgwMSwKLQkweDAyLCAweDAwLCAweGYyLCAweDc0LCAweDA2LCAweDZjLCAweGY0LCAweDk1LAotCTB4NDgsIDB4MTEsIDB4NzYsIDB4MDAsIDB4NTUsIDB4NTUsIDB4NzYsIDB4MDEsCi0JMHgwMiwgMHgwMCwgMHg0OCwgMHgxMSwgMHhmMiwgMHg3NCwgMHgwNiwgMHg2YywKLQkweGYwLCAweDAwLCAweDAyLCAweDAwLCAweDc2LCAweGY4LCAweDJhLCAweGEzLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZjgsIDB4MmEsIDB4YTQsIDB4MDAsIDB4MDAsCi0JMHhlOCwgMHgwMCwgMHg0ZSwgMHgwMCwgMHhmYiwgMHg4MCwgMHgxNSwgMHgzZSwKLQkweGY0LCAweDk1LCAweGU4LCAweDA0LCAweDgwLCAweGY4LCAweDJhLCAweGE1LAotCTB4NzYsIDB4MDAsIDB4MmEsIDB4YTgsIDB4ZjksIDB4ODAsIDB4MTQsIDB4ODcsCi0JMHg3NiwgMHgwMCwgMHgyYSwgMHhhZCwgMHhmYiwgMHg4MCwgMHgxMywgMHg2MiwKLQkweGY0LCAweDk1LCAweGU4LCAweDAyLCAweDEwLCAweGY4LCAweDJhLCAweGE1LAotCTB4ZjksIDB4ODAsIDB4MTQsIDB4NjMsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4NjYsCi0JMHhmNCwgMHg5NSwgMHhlOCwgMHgxYywgMHhmYiwgMHg4MCwgMHgxNiwgMHg4NywKLQkweGY0LCAweDk1LCAweGU4LCAweDFjLCAweGU4LCAweDAxLCAweDRlLCAweDAwLAotCTB4ZmIsIDB4ODAsIDB4MTcsIDB4ZDYsIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHg4MCwgMHhmOCwgMHgyYSwgMHhhNiwgMHg3NiwgMHgwMCwgMHgyYSwgMHhiNywKLQkweGY5LCAweDgwLCAweDE2LCAweGFhLCAweDEwLCAweGY4LCAweDJhLCAweGE2LAotCTB4ZjksIDB4ODAsIDB4MTcsIDB4NWMsIDB4MTAsIDB4ZjgsIDB4MmEsIDB4YTYsCi0JMHhmOSwgMHg4MCwgMHgxNywgMHg2ZiwgMHhlZSwgMHgwMiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweGY0LCAweDk1LCAweDRhLCAweDA4LCAweDRhLCAweDA5LAotCTB4NGEsIDB4MGEsIDB4NGEsIDB4MDcsIDB4NGEsIDB4MWQsIDB4NjgsIDB4ZjgsCi0JMHgwMCwgMHgwNywgMHg3ZCwgMHgzZiwgMHg2OSwgMHhmOCwgMHgwMCwgMHgwNywKLQkweDQwLCAweDAwLCAweDY4LCAweGY4LCAweDAwLCAweDFkLCAweGZmLCAweGZjLAotCTB4MTAsIDB4ZjgsIDB4MmEsIDB4YTcsIDB4ZjgsIDB4NDQsIDB4MGUsIDB4NGIsCi0JMHg3NiwgMHhmOCwgMHgyYSwgMHhhMywgMHgwMCwgMHgwMSwgMHhmMCwgMHg3MywKLQkweDBlLCAweDRlLCAweDc2LCAweGY4LCAweDJhLCAweGE0LCAweDAwLCAweDAxLAotCTB4OGEsIDB4MWQsIDB4OGEsIDB4MDcsIDB4OGEsIDB4MGEsIDB4OGEsIDB4MDksCi0JMHg4YSwgMHgwOCwgMHhmNCwgMHhlYiwgMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwKLQkweDRhLCAweDE3LCAweGVlLCAweGZlLCAweDg4LCAweDBlLCAweDcxLCAweDA4LAotCTB4MDAsIDB4MTYsIDB4NzEsIDB4MDYsIDB4MDAsIDB4MTcsIDB4MTEsIDB4MDcsCi0JMHhmMCwgMHg2NiwgMHgwMCwgMHgwZCwgMHhmMCwgMHgwMCwgMHgyNSwgMHhhMCwKLQkweDg4LCAweDExLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweDgxLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MDYsIDB4Y2UsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg3NiwgMHgwMSwgMHgwMCwgMHgwNiwgMHg3MCwgMHgwMCwgMHgwMCwgMHgxNiwKLQkweDQ4LCAweDExLCAweGYyLCAweDc0LCAweDA2LCAweGNlLCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDcsIDB4NzAsIDB4ODEsIDB4MDAsIDB4MTcsIDB4ZWUsIDB4MDIsCi0JMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweDRhLCAweDExLCAweDg4LCAweDBlLCAweDcxLCAweDAyLCAweDAwLCAweDEyLAotCTB4MTEsIDB4MDMsIDB4ZjAsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjAsIDB4MDAsCi0JMHgyNCwgMHgwMCwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MCwgMHg4MSwKLQkweDAwLCAweDEyLCAweDZlLCAweGUyLCAweGZmLCAweGZlLCAweDBlLCAweDhkLAotCTB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsIDB4ZTgsIDB4MDEsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHhmZiwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGMsCi0JMHgwMCwgMHgwMCwgMHg4MSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweGVlLCAweGZjLCAweDg4LCAweDBlLAotCTB4ZjQsIDB4OTUsIDB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjMsIDB4MDAsCi0JMHgyNCwgMHgwMCwgMHg4OSwgMHgxMSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwKLQkweDc2LCAweGUxLCAweDAwLCAweDBjLCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgwMSwgMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwKLQkweDAwLCAweDAwLCAweDgwLCAweDAyLCAweDc2LCAweDAzLCAweDAwLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsIDB4ZTgsIDB4MDAsCi0JMHhlZSwgMHgwNCwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwKLQkweDg4LCAweDE5LCAweGY0LCAweDk1LCAweDczLCAweDE5LCAweDAwLCAweDBlLAotCTB4ZjEsIDB4NjYsIDB4MDAsIDB4MGQsIDB4ZjIsIDB4MDAsIDB4MjQsIDB4MDAsCi0JMHg3NywgMHgxNSwgMHgyNSwgMHhhMCwgMHg3NywgMHgxNCwgMHgwMCwgMHgwMCwKLQkweDc3LCAweDFhLCAweDAwLCAweDFmLCAweGYwLCAweDcyLCAweDBmLCAweDE0LAotCTB4ZjYsIDB4YjgsIDB4NDksIDB4MTksIDB4MDksIDB4ODUsIDB4ZjgsIDB4NGMsCi0JMHgwZiwgMHgxMywgMHhmMSwgMHgwMCwgMHgwMCwgMHgwNSwgMHg4OSwgMHgxMSwKLQkweDQ5LCAweDE1LCAweGYzLCAweDAwLCAweDAwLCAweDAxLCAweDg5LCAweDEzLAotCTB4NDksIDB4MTUsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODksIDB4MTIsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTAsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MCwgMHgwZiwgMHgxMywKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDEwLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODAsIDB4MGYsIDB4MTMsCi0JMHgxMSwgMHg5MywgMHgxZCwgMHg5MSwgMHgxOSwgMHg5MiwgMHg4OSwgMHgxMCwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDZjLCAweDgwLCAweDBmLCAweDEzLAotCTB4MTEsIDB4OTMsIDB4MWQsIDB4OTEsIDB4MTksIDB4OTIsIDB4ODksIDB4MTAsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg2YywgMHg4MCwgMHgwZiwgMHgxMywKLQkweDExLCAweDkzLCAweDFkLCAweDkxLCAweDE5LCAweDkyLCAweDg5LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ODEsIDB4MGYsIDB4MTMsCi0JMHg2ZCwgMHg5NCwgMHg2ZCwgMHhlZCwgMHgwMCwgMHgwZCwgMHg0OCwgMHgxNCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZjgsIDB4ODgsIDB4MTcsIDB4MTAsIDB4MGQsCi0JMHg4MCwgMHgwNCwgMHgxMCwgMHgwYywgMHg4MCwgMHgwNSwgMHg3MSwgMHgwZSwKLQkweDAwLCAweDE2LCAweDczLCAweDE3LCAweDAwLCAweDBlLCAweGYwLCAweDY2LAotCTB4MDAsIDB4MGQsIDB4ZjAsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ODgsIDB4MTEsCi0JMHgxMCwgMHhmOCwgMHgyNywgMHg2MywgMHhmOCwgMHg0NSwgMHgwZiwgMHgzMiwKLQkweGYyLCAweDc0LCAweDBlLCAweDlmLCAweGY0LCAweDk1LCAweDQ4LCAweDE3LAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NjAsIDB4ZjgsIDB4NDQsIDB4MGYsIDB4M2QsCi0JMHg2MCwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwKLQkweDBmLCAweDZkLCAweGYwLCAweDczLCAweDExLCAweDMzLCAweDEwLCAweDA0LAotCTB4ODAsIDB4MDAsIDB4MTAsIDB4MDUsIDB4ZjAsIDB4NzQsIDB4MDYsIDB4OWYsCi0JMHgxMSwgMHgwNCwgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwgMHg4MSwgMHgwNCwKLQkweDZkLCAweDhlLCAweDc3LCAweDEwLCAweDAwLCAweDAxLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsCi0JMHgwZiwgMHg2MiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMiwgMHhmNCwgMHhhYSwKLQkweGY4LCAweDMwLCAweDBmLCAweDZkLCAweDQ1LCAweGUxLCAweDAwLCAweDBiLAotCTB4ODgsIDB4MTAsIDB4NDMsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4ODMsIDB4ZjgsCi0JMHgwMCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhhYSwKLQkweGY4LCAweDMwLCAweDBmLCAweDZkLCAweGYwLCAweDczLCAweDBmLCAweDk2LAotCTB4ZjUsIDB4MDAsIDB4ODEsIDB4MDQsIDB4NDksIDB4MTYsIDB4ZjUsIDB4MjAsCi0JMHg4OSwgMHgxNiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwYywgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDQ4LCAweDE2LAotCTB4ZjgsIDB4NDUsIDB4MTEsIDB4MzMsIDB4ZjcsIDB4YjgsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwMiwgMHgwMCwgMHgxMiwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxMiwKLQkweGYwLCAweDEwLCAweDAwLCAweDAzLCAweGY4LCAweDQ2LCAweDBmLCAweDhjLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTIsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDMsCi0JMHhmOCwgMHg0NSwgMHgxMCwgMHgxNiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwMSwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDBmLCAweDljLCAweDc3LCAweDEwLAotCTB4MDAsIDB4MDIsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MGYsIDB4YTgsCi0JMHhmMCwgMHg3MywgMHgwZiwgMHg5NiwgMHg3NywgMHgxMCwgMHgwMCwgMHgwNCwKLQkweGY0LCAweGFhLCAweGY4LCAweDMwLCAweDEwLCAweGI3LCAweDc3LCAweDEwLAotCTB4MDAsIDB4MDUsIDB4ZjQsIDB4YWEsIDB4ZjgsIDB4MzAsIDB4MTAsIDB4YmMsCi0JMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweGYwLCAweDczLCAweDExLCAweDMxLCAweDc2LCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAyLCAweDAwLCAweDAyLCAweDExLCAweGUxLCAweDAwLCAweDBjLAotCTB4ZTgsIDB4MDMsIDB4ZjYsIDB4MjAsIDB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHgwMCwgMHgwMywgMHhmNSwgMHhhYSwgMHhmOCwgMHgzMCwKLQkweDBmLCAweGI2LCAweDZiLCAweGY4LCAweDI3LCAweDZmLCAweDAwLCAweDAxLAotCTB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWUsCi0JMHhmOCwgMHgyMCwgMHgwZiwgMHhiZCwgMHg0OCwgMHgxNiwgMHg4MCwgMHgwNiwKLQkweDg4LCAweDEzLCAweGY0LCAweDk1LCAweDc3LCAweDEwLCAweDAwLCAweDAzLAotCTB4ZjYsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MGYsIDB4YzgsIDB4NmIsIDB4ZjgsCi0JMHgyNywgMHg2ZiwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwNiwgMHhmOCwgMHg0NSwKLQkweDEwLCAweDAwLCAweDEwLCAweGUxLCAweDAwLCAweDA0LCAweDgwLCAweDAwLAotCTB4MTAsIDB4MDUsIDB4ODAsIDB4MDEsIDB4MTAsIDB4MDQsIDB4ODAsIDB4MDIsCi0JMHgxMCwgMHgwNiwgMHg4MCwgMHgwMywgMHg0OCwgMHgxMSwgMHhmMiwgMHg3NCwKLQkweDA3LCAweDFlLCAweGYwLCAweDAwLCAweDAwLCAweDA1LCAweDEwLCAweDA2LAotCTB4MDAsIDB4ZTEsIDB4MDAsIDB4MDQsIDB4ODAsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHgxMCwgMHgwNiwgMHgwMCwgMHhlMSwgMHgwMCwgMHgwYywgMHg4MCwgMHhlMSwKLQkweDAwLCAweDBjLCAweDg4LCAweDEyLCAweDExLCAweDA2LCAweDEwLCAweDA0LAotCTB4ZjYsIDB4MDAsIDB4ODAsIDB4MDQsIDB4NDgsIDB4MTYsIDB4ZjYsIDB4MjAsCi0JMHg4OCwgMHgxNiwgMHg4OSwgMHgxMywgMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwKLQkweDAwLCAweDAzLCAweGY2LCAweGFiLCAweGY4LCAweDIwLCAweDBmLCAweGY1LAotCTB4NmIsIDB4ZjgsIDB4MjcsIDB4NmYsIDB4MDAsIDB4MDEsIDB4NzcsIDB4MTAsCi0JMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMywKLQkweGY2LCAweGFiLCAweGY4LCAweDIwLCAweDEwLCAweDAwLCAweDZiLCAweGY4LAotCTB4MjcsIDB4NmYsIDB4MDAsIDB4MDEsIDB4NmMsIDB4ZTIsIDB4ZmYsIDB4ZmQsCi0JMHgxMSwgMHgzMSwgMHhmNiwgMHhiOCwgMHg2ZiwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDBjLCAweDQ4LCAweDZmLCAweGUxLCAweDAwLCAweDA2LCAweDBjLCAweDE4LAotCTB4ZjAsIDB4MzAsIDB4MGYsIDB4ZmYsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDMsCi0JMHg4MCwgMHhlMSwgMHgwMCwgMHgwYiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDAzLCAweDQ4LCAweDE2LCAweGY4LCAweDQ1LCAweDExLCAweDMzLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwYiwgMHg0OSwgMHgxMiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxMywKLQkweGU4LCAweDBjLCAweGY2LCAweDIwLCAweDg4LCAweDEwLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWIsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4MjcsCi0JMHg0OCwgMHgxMywgMHg4MCwgMHgwNiwgMHg4OCwgMHgxMCwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweGY1LCAweGFlLCAweGY4LCAweDIwLCAweDEwLCAweDMwLAotCTB4NzAsIDB4MDYsIDB4MDAsIDB4MTYsIDB4MTIsIDB4MDYsIDB4ZjgsIDB4NDUsCi0JMHgxMCwgMHg1ZiwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwNCwgMHg4MCwgMHgwMCwKLQkweDEwLCAweDA1LCAweDgwLCAweDAxLCAweDEwLCAweDA0LCAweDgwLCAweDAyLAotCTB4MTAsIDB4MDYsIDB4ODAsIDB4MDMsIDB4NDgsIDB4MTEsIDB4ZjIsIDB4NzQsCi0JMHgwNywgMHgxZSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNSwgMHgxMCwgMHgwNiwKLQkweDAwLCAweGUxLCAweDAwLCAweDA0LCAweDgwLCAweGUxLCAweDAwLCAweDA0LAotCTB4MTAsIDB4MDYsIDB4MDAsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4ODAsIDB4ZTEsCi0JMHgwMCwgMHgwYywgMHg4OCwgMHgxMiwgMHgxMSwgMHgwNiwgMHgxMCwgMHgwNCwKLQkweGY2LCAweDAwLCAweDgwLCAweDA0LCAweDQ4LCAweDE2LCAweGY2LCAweDIwLAotCTB4ODgsIDB4MTYsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMywgMHhmNiwgMHhhYiwKLQkweGY4LCAweDIwLCAweDEwLCAweDVmLCAweDZiLCAweGY4LCAweDI3LCAweDZmLAotCTB4MDAsIDB4MDEsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsIDB4ZjYsIDB4YWEsCi0JMHhmOCwgMHgyMCwgMHgxMCwgMHg2YiwgMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwKLQkweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweDcxLCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MTIsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsIDB4ZjQsIDB4YWEsCi0JMHhmOCwgMHgzMCwgMHgxMCwgMHg3YywgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDBiLCAweDAwLCAweDEzLCAweGY2LCAweGFiLAotCTB4ZjgsIDB4MzAsIDB4MTAsIDB4YjQsIDB4ZTcsIDB4MzAsIDB4ZjcsIDB4YWEsCi0JMHhmOCwgMHgzMCwgMHgxMCwgMHhiNCwgMHhmMiwgMHg3NCwgMHgwZSwgMHhjMSwKLQkweGY0LCAweDk1LCAweDQ4LCAweDE3LCAweDg4LCAweDEyLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NmMsIDB4ODIsIDB4MTAsIDB4OGQsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDA1LCAweGYwLCAweDczLCAweDEwLCAweGI0LCAweDc2LCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MDQsIDB4NzcsIDB4MTAsIDB4MDAsIDB4MGMsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwYiwgMHgwMCwgMHgxMiwgMHhmNSwgMHhhYSwKLQkweGY4LCAweDIwLCAweDEwLCAweDlhLCAweGYwLCAweDczLCAweDEwLCAweDljLAotCTB4NzcsIDB4MTIsIDB4MDAsIDB4MGMsIDB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHg3MCwgMHgwMSwgMHgwMCwgMHgxMiwgMHg3MCwgMHgwMiwgMHgwMCwgMHgxNywKLQkweDc2LCAweDAzLCAweDAwLCAweDAxLCAweDQ4LCAweDExLCAweGYyLCAweDc0LAotCTB4MGMsIDB4YjksIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMCwgMHgwMCwgMHgwYywKLQkweDcxLCAweGUxLCAweDAwLCAweDBiLCAweDAwLCAweDEyLCAweGY2LCAweGFhLAotCTB4ZjgsIDB4MjAsIDB4MTEsIDB4MWMsIDB4NDgsIDB4MTYsIDB4ZjgsIDB4NDUsCi0JMHgxMSwgMHgzMywgMHg2MCwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwNSwKLQkweGY4LCAweDIwLCAweDEwLCAweGRmLCAweDEwLCAweGUxLCAweDAwLCAweDBiLAotCTB4MDgsIDB4ZTEsIDB4MDAsIDB4MGMsIDB4MTEsIDB4ZTEsIDB4MDAsIDB4MDQsCi0JMHhmOCwgMHg0ZCwgMHgxMCwgMHhjNywgMHg2YiwgMHhmOCwgMHgyNywgMHg2ZiwKLQkweDAwLCAweDAxLCAweDg4LCAweDEwLCAweGY0LCAweDk1LCAweGY0LCAweDk1LAotCTB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4Y2YsIDB4NDgsIDB4MTYsCi0JMHhmNCwgMHg5NSwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwgMHgxMSwgMHgxNiwKLQkweDZmLCAweGUxLCAweDAwLCAweDBjLCAweDBkLCAweDAwLCAweDgxLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MTEsIDB4MDQsIDB4ZjUsIDB4MDAsIDB4ODEsIDB4MDQsCi0JMHg0OSwgMHgxNiwgMHhmNSwgMHgyMCwgMHg4OSwgMHgxNiwgMHhmMCwgMHg3MywKLQkweDExLCAweDBlLCAweDEwLCAweGUxLCAweDAwLCAweDBiLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MDAsIDB4MTIsIDB4ODgsIDB4MTAsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNiwgMHhhYSwgMHhmOCwgMHgzMCwgMHgxMSwgMHgxNiwKLQkweDQ5LCAweDEyLCAweGY2LCAweDIwLCAweDg4LCAweDEwLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjUsIDB4YWUsIDB4ZjgsIDB4MjAsIDB4MTAsIDB4ZjMsCi0JMHg0OCwgMHgxNiwgMHg4MCwgMHgwNiwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwKLQkweDExLCAweDE2LCAweDEwLCAweDA0LCAweDcwLCAweDAyLCAweDAwLCAweDE3LAotCTB4ODAsIDB4MDAsIDB4NzYsIDB4MDMsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDYsCi0JMHg4MCwgMHgwMSwgMHgxMCwgMHgwNSwgMHhmMCwgMHg3NCwgMHgwYywgMHhiOSwKLQkweDEwLCAweDA2LCAweDAwLCAweGUxLCAweDAwLCAweDBjLCAweDgwLCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MTEsIDB4MDYsIDB4MTAsIDB4MDQsIDB4ZjYsIDB4MDAsCi0JMHg4MCwgMHgwNCwgMHg0OCwgMHgxNiwgMHhmNiwgMHgyMCwgMHg4OCwgMHgxNiwKLQkweDEwLCAweGUxLCAweDAwLCAweDBjLCAweDA4LCAweGUxLCAweDAwLCAweDBiLAotCTB4ZjgsIDB4NDUsIDB4MTEsIDB4MWMsIDB4ZjAsIDB4NzMsIDB4MTEsIDB4MzEsCi0JMHhmMiwgMHg3NCwgMHgwZSwgMHg5ZiwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxNywKLQkweGYwLCAweDczLCAweDExLCAweDMzLCAweDc2LCAweGUxLCAweDAwLCAweDBjLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4MDAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMSwgMHgxMCwgMHgwNCwKLQkweDgwLCAweDAwLCAweDEwLCAweDA1LCAweGYwLCAweDc0LCAweDA2LCAweDlmLAotCTB4ODgsIDB4MTIsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsIDB4MDAsIDB4ZmYsCi0JMHhmNCwgMHhhYSwgMHhmOCwgMHgzMCwgMHgxMSwgMHgzMywgMHg2YywgMHg4NiwKLQkweDBmLCAweDcwLCAweGVlLCAweDA4LCAweDhhLCAweDE3LCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmMsCi0JMHhmNCwgMHg5NSwgMHg3MSwgMHgwNiwgMHgwMCwgMHgxMiwgMHg4OCwgMHgxMSwKLQkweDczLCAweDEyLCAweDAwLCAweDBlLCAweGYxLCAweDY2LCAweDAwLCAweDBkLAotCTB4ZjMsIDB4MDAsIDB4MjQsIDB4MDAsIDB4ODksIDB4MTQsIDB4MTMsIDB4ODEsCi0JMHhmNywgMHg3YSwgMHhmMywgMHgzMCwgMHgwMCwgMHgwMSwgMHg4MSwgMHhmOCwKLQkweDI3LCAweDYwLCAweDEzLCAweGUxLCAweDAwLCAweDAxLCAweGY3LCAweDdjLAotCTB4ZjMsIDB4MzAsIDB4MDAsIDB4MDMsIDB4ODEsIDB4ZjgsIDB4MjcsIDB4NjEsCi0JMHhlOSwgMHgwZiwgMHgxOSwgMHhlMSwgMHgwMCwgMHgwMSwgMHg4MSwgMHhmOCwKLQkweDI3LCAweDYyLCAweDcxLCAweGU0LCAweDAwLCAweDAzLCAweDAwLCAweDEzLAotCTB4ZjYsIDB4YjgsIDB4NDksIDB4MTMsIDB4ZjMsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHhmMywgMHgzMCwgMHgwMCwgMHgwZiwgMHg0OSwgMHgwYiwgMHgwOSwgMHhmOCwKLQkweDI3LCAweDYyLCAweGY4LCAweDRkLCAweDExLCAweDc1LCAweDc3LCAweDEwLAotCTB4MDAsIDB4ZmYsIDB4ZjQsIDB4YWIsIDB4ZjgsIDB4MzAsIDB4MTEsIDB4NzUsCi0JMHg1NywgMHhmOCwgMHgyNywgMHg2YywgMHhmMywgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRmLCAweGY4LCAweDI3LCAweDZjLCAweDc2LCAweGY4LCAweDI3LCAweDYzLAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MTEsIDB4NzgsIDB4NzYsIDB4ZjgsCi0JMHgyNywgMHg2MywgMHgwMCwgMHgwMCwgMHg3MCwgMHhlNCwgMHgwMCwgMHgwMywKLQkweDI3LCAweDYyLCAweDc2LCAweGY4LCAweDI3LCAweDY0LCAweDAwLCAweDAwLAotCTB4MTEsIDB4ZjgsIDB4MjcsIDB4NjEsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MGIsCi0JMHgwMCwgMHgwMiwgMHhmOCwgMHgyMCwgMHgxMSwgMHg4ZCwgMHhlOSwgMHgwMSwKLQkweDZmLCAweGUxLCAweDAwLCAweDAyLCAweDBmLCAweDE4LCAweDgxLCAweGY4LAotCTB4MjcsIDB4NjQsIDB4MTEsIDB4ZjgsIDB4MjcsIDB4NjEsIDB4NjEsIDB4ZjgsCi0JMHgwMCwgMHgwYiwgMHgwMCwgMHgwMSwgMHhmOCwgMHgyMCwgMHgxMSwgMHhhOSwKLQkweDEwLCAweGY4LCAweDI3LCAweDY0LCAweGYxLCAweDAwLCAweDAwLCAweDA0LAotCTB4ODksIDB4MTMsIDB4ZTksIDB4YjgsIDB4ZjUsIDB4MjAsIDB4ODEsIDB4ZjgsCi0JMHgyNywgMHg2NSwgMHg2MCwgMHg4NCwgMHgwMCwgMHgwMiwgMHhmOCwgMHgyMCwKLQkweDExLCAweGE5LCAweDcwLCAweDAwLCAweDAwLCAweDExLCAweDcwLCAweDAxLAotCTB4MDAsIDB4MTMsIDB4NzAsIDB4MDIsIDB4MjcsIDB4NjUsIDB4ZjIsIDB4NzQsCi0JMHgwZiwgMHgxOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMiwgMHhlZSwgMHgwNCwKLQkweDhhLCAweDExLCAweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LAotCTB4NGEsIDB4MTcsIDB4ZWUsIDB4ZmMsIDB4ZTgsIDB4MDAsIDB4NGUsIDB4ZjgsCi0JMHgyNywgMHg2NiwgMHhlOCwgMHgwMCwgMHg0ZSwgMHhmOCwgMHgyNywgMHg2OCwKLQkweGU4LCAweDAwLCAweDRlLCAweGY4LCAweDI3LCAweDZjLCAweGU4LCAweDAwLAotCTB4NGUsIDB4ZjgsIDB4MjcsIDB4NmEsIDB4NzcsIDB4MTIsIDB4MjcsIDB4NDAsCi0JMHg3NywgMHgxMSwgMHgyNCwgMHgwMCwgMHg3NywgMHgxYSwgMHgwMCwgMHgxZiwKLQkweGYwLCAweDcyLCAweDExLCAweGRiLCAweDcwLCAweDkyLCAweDAwLCAweDExLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweGZmLCAweDc2LCAweGUxLAotCTB4MDAsIDB4MGMsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwKLQkweDZkLCAweGU5LCAweDAwLCAweDBkLCAweGYwLCAweDIwLCAweDI1LCAweGEwLAotCTB4ZjEsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODksIDB4MTEsIDB4ZjEsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHg4MSwgMHgwMiwgMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDE3LCAweDAwLCAweDIwLCAweDc2LCAweDg2LCAweDAwLCAweGZmLAotCTB4NzYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NzYsIDB4MDEsIDB4MDAsIDB4MDYsCi0JMHgxMCwgMHgwMiwgMHhmMCwgMHg3NCwgMHgwNiwgMHg2YywgMHg3NiwgMHgwMCwKLQkweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweGYyLCAweDc0LAotCTB4MDYsIDB4NmMsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsIDB4MTAsIDB4MDIsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwZCwgMHg4MCwgMHgwMiwgMHg2ZCwgMHhlOSwKLQkweDAwLCAweDBkLCAweDZkLCAweGVlLCAweDAwLCAweDBkLCAweDZjLCAweGVmLAotCTB4ZmYsIDB4ZmYsIDB4MTEsIDB4ZTgsIDB4ZjAsIDB4NzQsIDB4MGMsIDB4OWQsCi0JMHhlZSwgMHgwNCwgMHg4YSwgMHgxNywgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGZjLCAweDAwLCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweDRhLCAweDE3LAotCTB4ZWUsIDB4ZmEsIDB4ODgsIDB4MTEsIDB4MTAsIDB4MGEsIDB4NDksIDB4MTEsCi0JMHhmOCwgMHg0ZCwgMHgxMiwgMHg5ZiwgMHg0OCwgMHgwOCwgMHhmOCwgMHg0NSwKLQkweDEyLCAweDlmLCAweDgwLCAweDA0LCAweDEyLCAweDgxLCAweGY1LCAweDc4LAotCTB4ODksIDB4MTIsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4NmMsIDB4ZTIsCi0JMHhmZiwgMHhiOSwgMHgxMiwgMHg4YSwgMHg2MSwgMHhmOCwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDgwLCAweGY4LCAweDMwLCAweDEyLCAweDhhLCAweDEzLCAweGUxLAotCTB4MDAsIDB4MDEsIDB4ZjAsIDB4ZTgsIDB4ZjcsIDB4NzgsIDB4ZjEsIDB4YTAsCi0JMHhmMiwgMHgzMCwgMHgxZiwgMHhmZiwgMHg4OCwgMHgxNywgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEyLCAweDI0LCAweDAwLCAweDc3LCAweDE2LCAweDAwLCAweDAwLAotCTB4NzcsIDB4MTMsIDB4MDAsIDB4MjAsIDB4ZjYsIDB4YjgsIDB4NDgsIDB4MTcsCi0JMHgwOCwgMHhlMiwgMHgwMCwgMHgwMSwgMHhmOCwgMHg0NSwgMHgxMiwgMHg0MiwKLQkweDZkLCAweGVhLCAweDAwLCAweDBkLCAweDZkLCAweDk2LCAweDZjLCAweGViLAotCTB4ZmYsIDB4ZmYsIDB4MTIsIDB4MzQsIDB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg2YSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRlLCAweGY4LCAweDI3LCAweDZhLCAweDYwLCAweDgyLCAweDAwLCAweDAxLAotCTB4ZjgsIDB4MzAsIDB4MTIsIDB4NTQsIDB4NzAsIDB4MDAsIDB4MDAsIDB4MTYsCi0JMHhmMiwgMHg3NCwgMHgxMSwgMHgzOCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwKLQkweGYwLCAweDczLCAweDEyLCAweDkwLCAweDcwLCAweDAwLCAweDAwLCAweDE2LAotCTB4ZjIsIDB4NzQsIDB4MTEsIDB4MzgsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHg3MiwgMHgxMCwgMHgyYSwgMHg5ZSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhhZiwKLQkweGY4LCAweDMwLCAweDEyLCAweDZlLCAweDc2LCAweDAwLCAweDAwLCAweDAwLAotCTB4NzYsIDB4MDEsIDB4MDAsIDB4YmMsIDB4NzAsIDB4MDIsIDB4MDAsIDB4MTYsCi0JMHg3NiwgMHgwMywgMHgwMCwgMHgwMCwgMHhmMiwgMHg3NCwgMHgwYywgMHhiOSwKLQkweGY0LCAweDk1LCAweDQ4LCAweDExLCAweGYwLCAweDczLCAweDEyLCAweDkwLAotCTB4MTAsIDB4ZjgsIDB4MjcsIDB4NmUsIDB4ZjgsIDB4NDQsIDB4MTIsIDB4OTAsCi0JMHg3NiwgMHgwMCwgMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwgMHgwMCwgMHhiYywKLQkweDcwLCAweDAyLCAweDAwLCAweDE2LCAweDc2LCAweDAzLCAweDAwLCAweDAwLAotCTB4ZjIsIDB4NzQsIDB4MGMsIDB4YjksIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTEsCi0JMHhmMCwgMHg3NCwgMHgwYywgMHg1ZSwgMHhmMCwgMHhlMCwgMHhmMCwgMHgxMCwKLQkweDEzLCAweDg4LCAweGY4LCAweDQyLCAweDEyLCAweDkwLCAweDc2LCAweGY4LAotCTB4MjcsIDB4NmUsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4NzMsIDB4MTIsIDB4OTAsCi0JMHg1NiwgMHhmOCwgMHgyNywgMHg2NiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDRlLCAweGY4LCAweDI3LCAweDY2LCAweDZkLCAweGU5LCAweDAwLCAweDVlLAotCTB4NTYsIDB4ZjgsIDB4MjcsIDB4NjgsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHg0ZSwgMHhmOCwgMHgyNywgMHg2OCwgMHg3MSwgMHgwNCwgMHgwMCwgMHgxMiwKLQkweDZlLCAweGVhLCAweGZmLCAweGZmLCAweDEyLCAweDE4LCAweDcwLCAweDA0LAotCTB4MDAsIDB4MTIsIDB4ZWUsIDB4MDYsIDB4OGEsIDB4MTcsIDB4OGEsIDB4MTYsCi0JMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwgMHg0YSwgMHgxMSwgMHhlZSwgMHhmZSwKLQkweDg4LCAweDBlLCAweGY0LCAweDk1LCAweGYwLCAweDY2LCAweDAwLCAweDBkLAotCTB4ZjAsIDB4MDAsIDB4MjUsIDB4YTAsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg3NiwgMHg4MSwgMHgwMCwgMHhmZiwgMHg3NiwgMHgwMCwKLQkweDAwLCAweDAwLCAweDc2LCAweDAxLCAweDAwLCAweDA2LCAweGYyLCAweDc0LAotCTB4MDYsIDB4NmMsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4NzYsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHgwMSwgMHgwMCwgMHgwNiwgMHg0OCwgMHgxMSwKLQkweGYyLCAweDc0LCAweDA2LCAweDZjLCAweGYwLCAweDAwLCAweDAwLCAweDA3LAotCTB4ZWUsIDB4MDIsIDB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHg4OCwgMHgwZSwgMHhmNCwgMHg5NSwgMHhmMCwgMHg2NiwgMHgwMCwgMHgwZCwKLQkweGYwLCAweDAwLCAweDI0LCAweDAwLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAzLCAweDAwLCAweGZmLAotCTB4OGEsIDB4MTEsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHgxMywgMHgwMywgMHg4OCwgMHgxMSwgMHhmYSwgMHg0ZCwgMHgxMiwgMHhlYywKLQkweDcxLCAweDAyLCAweDAwLCAweDEyLCAweGYzLCAweDEwLCAweDAwLCAweDAxLAotCTB4ODksIDB4MWEsIDB4ZjQsIDB4OTUsIDB4ZjAsIDB4NzIsIDB4MTIsIDB4ZWIsCi0JMHg3MCwgMHg5MSwgMHgwMCwgMHgxMiwgMHg4YSwgMHgxMSwgMHhmYywgMHgwMCwKLQkweGY0LCAweDk1LCAweDRhLCAweDBiLCAweDRhLCAweDBjLCAweDRhLCAweDBkLAotCTB4ZjcsIDB4YjgsIDB4ZWUsIDB4ZmUsIDB4MTAsIDB4ZjgsIDB4MDAsIDB4MDgsCi0JMHgxMSwgMHgwNiwgMHhmMSwgMHhjMCwgMHg4MywgMHgwMCwgMHhmNCwgMHg4NSwKLQkweDExLCAweDA2LCAweGY3LCAweDg1LCAweDgxLCAweDA2LCAweGY2LCAweGI4LAotCTB4ZWMsIDB4MGYsIDB4MWUsIDB4MDYsIDB4NjEsIDB4MDAsIDB4ODAsIDB4MDAsCi0JMHhmOCwgMHgyMCwgMHgxMywgMHgwNSwgMHhmNCwgMHg4NCwgMHhlZSwgMHgwMiwKLQkweDhhLCAweDBkLCAweDhhLCAweDBjLCAweDhhLCAweDBiLCAweGZjLCAweDAwLAotCTB4ZjQsIDB4OTUsIDB4NGEsIDB4MGIsIDB4NGEsIDB4MGMsIDB4NGEsIDB4MGQsCi0JMHhlZSwgMHhmZSwgMHhmNywgMHhiOCwgMHg4MCwgMHgwMCwgMHgxMCwgMHhmOCwKLQkweDAwLCAweDA4LCAweGY0LCAweDg1LCAweDExLCAweDA2LCAweGY3LCAweDg1LAotCTB4ODEsIDB4MDYsIDB4ZjYsIDB4YjgsIDB4ZWMsIDB4MGYsIDB4MWUsIDB4MDYsCi0JMHhmMCwgMHhmMCwgMHg2MSwgMHgwMCwgMHg4MCwgMHgwMCwgMHhmOCwgMHgyMCwKLQkweDEzLCAweDIwLCAweGY0LCAweDg0LCAweGVlLCAweDAyLCAweDhhLCAweDBkLAotCTB4OGEsIDB4MGMsIDB4OGEsIDB4MGIsIDB4ZmMsIDB4MDAsIDB4NGEsIDB4MTEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHg3NiwgMHg4MSwgMHgyZSwgMHhlYywKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweGVlLCAweGZmLCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTEsIDB4ZWUsIDB4MDEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDEsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4NjIsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4NzYsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHg5MiwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweDk0LCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4YjAsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4YjMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhiZSwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweGJmLCAweDAwLCAweDAwLCAweDc2LCAweGUxLAotCTB4MDAsIDB4YzEsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4YzMsCi0JMHgwMCwgMHgwMCwgMHg3NiwgMHhlMSwgMHgwMCwgMHhjNSwgMHgwMCwgMHgwMCwKLQkweDc2LCAweGUxLCAweDAwLCAweGM3LCAweDAwLCAweDAwLCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHg0YSwgMHgxNywgMHhlZSwgMHhmZiwKLQkweGY0LCAweDk1LCAweDcxLCAweDA2LCAweDAwLCAweDE2LCAweGZiLCAweDgwLAotCTB4MTYsIDB4YTIsIDB4ODgsIDB4MTcsIDB4ZjQsIDB4OTUsIDB4ZjcsIDB4YjgsCi0JMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywgMHhmMCwgMHgxMCwgMHgwMCwgMHgwMiwKLQkweGZhLCAweDQ2LCAweDEzLCAweDg4LCAweDc3LCAweDExLCAweDAwLCAweDAwLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTcsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDIsCi0JMHhmOCwgMHg0NSwgMHgxMywgMHhmOSwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywKLQkweGY4LCAweDQ1LCAweDE0LCAweDM5LCAweDEwLCAweGY4LCAweDAwLCAweDE3LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MDEsIDB4ZjgsIDB4NDUsIDB4MTQsIDB4MWYsCi0JMHhmMCwgMHg3MywgMHgxNCwgMHg1MiwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxNywKLQkweGYwLCAweDEwLCAweDAwLCAweDAzLCAweGY4LCAweDQ1LCAweDEzLCAweGQzLAotCTB4MTAsIDB4ZjgsIDB4MDAsIDB4MTcsIDB4ZjAsIDB4MTAsIDB4MDAsIDB4MDYsCi0JMHhmOCwgMHg0NCwgMHgxNCwgMHg1MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwKLQkweDcxLCAweDgyLCAweDAwLCAweDE0LCAweDYxLCAweGU0LCAweDAwLCAweDA3LAotCTB4MDAsIDB4NDAsIDB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsIDB4NDksIDB4MTQsCi0JMHg0OCwgMHgxNywgMHhmNiwgMHgwMCwgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEzLCAweDAwLCAweDU1LCAweDc3LCAweDExLCAweDAwLCAweDU3LAotCTB4NmQsIDB4ZWEsIDB4MDAsIDB4M2IsIDB4ZTUsIDB4MDEsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNiwgMHg4MCwgMHg4MSwgMHg0OCwgMHgxNCwgMHgwMCwgMHhmOCwKLQkweDAwLCAweDE3LCAweDg4LCAweDEyLCAweGY0LCAweDk1LCAweDc3LCAweDExLAotCTB4MDAsIDB4NTUsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4NDAsIDB4ODAsIDB4ODEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwNywKLQkweDgwLCAweDgxLCAweDc3LCAweDExLCAweDAwLCAweDU1LCAweDEwLCAweGUyLAotCTB4MDAsIDB4NDUsIDB4ODAsIDB4ODEsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDgsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHg1NywgMHg4MCwgMHg4MSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDU1LCAweDEwLCAweGUyLCAweDAwLCAweDRhLCAweDgwLCAweDgxLAotCTB4NzcsIDB4MTEsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDksCi0JMHg4MCwgMHg4MSwgMHhmMiwgMHg3MywgMHgxNCwgMHg1MiwgMHg3NywgMHgxMSwKLQkweDAzLCAweGMwLCAweDc3LCAweDEyLCAweDAwLCAweDdiLCAweDEwLCAweDgyLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4ODgsIDB4MTMsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHg5NiwgMHgxYiwgMHhmOCwgMHgzMCwgMHgxNCwgMHg1MiwKLQkweDEwLCAweGUzLCAweDAwLCAweDM1LCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwNCwgMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwKLQkweDEwLCAweGUzLCAweDAwLCAweDM3LCAweDgwLCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDUsIDB4ODAsIDB4ODIsCi0JMHg0OCwgMHgxMSwgMHhmMCwgMHg0MCwgMHgwMCwgMHgxMCwgMHhmMiwgMHg3MywKLQkweDE0LCAweDUwLCAweGYwLCAweDQwLCAweDAwLCAweDIwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4N2IsIDB4MTAsIDB4ODIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDcsCi0JMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg5NiwgMHgwZCwKLQkweGY4LCAweDMwLCAweDE0LCAweDUyLCAweDEwLCAweGUyLCAweDAwLCAweDM0LAotCTB4NzcsIDB4MTMsIDB4MDAsIDB4NTUsIDB4ODAsIDB4ODMsIDB4NzcsIDB4MTMsCi0JMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMiwgMHg4MCwgMHg4MywKLQkweDEwLCAweGUyLCAweDAwLCAweDM2LCAweDc3LCAweDEyLCAweDAwLCAweDU1LAotCTB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTcsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwMywgMHg4MCwgMHg4MiwgMHg0OCwgMHgxMSwgMHhmMCwgMHg0MCwKLQkweDAwLCAweDA0LCAweGYyLCAweDczLCAweDE0LCAweDUwLCAweGYwLCAweDQwLAotCTB4MDAsIDB4MDgsIDB4NzcsIDB4MTIsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODIsCi0JMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywgMHg4OCwgMHgxMiwgMHhmNCwgMHg5NSwKLQkweGY0LCAweDk1LCAweDk2LCAweDBlLCAweGY4LCAweDMwLCAweDE0LCAweDUyLAotCTB4MTAsIDB4ZTIsIDB4MDAsIDB4MzMsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsCi0JMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NywgMHgxMCwgMHhlNiwKLQkweDAwLCAweDAxLCAweDgwLCAweDgyLCAweDQ4LCAweDExLCAweGYyLCAweDczLAotCTB4MTQsIDB4NTAsIDB4ZjAsIDB4NDAsIDB4MDAsIDB4MDIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg3YiwgMHgxMCwgMHg4MiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNywKLQkweDg4LCAweDEyLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDk2LCAweDBmLAotCTB4ZjgsIDB4MzAsIDB4MTQsIDB4NTIsIDB4MTAsIDB4ZTIsIDB4MDAsIDB4MzIsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwgMHg3NywgMHgxMywgMHgwMCwgMHg1NywKLQkweDgwLCAweDgyLCAweDQ4LCAweDExLCAweGU3LCAweDYyLCAweGYwLCAweDQwLAotCTB4MDAsIDB4MDEsIDB4ZTUsIDB4MDEsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwgMHg0OCwgMHgxMSwgMHg3MSwgMHg4MiwKLQkweDAwLCAweDEyLCAweDFhLCAweGUyLCAweDAwLCAweDA3LCAweDgwLCAweGUyLAotCTB4MDAsIDB4MDcsIDB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4ZWUsIDB4MDEsCi0JMHg4YSwgMHgxNywgMHg0OCwgMHgxMSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweDc3LCAweDBlLAotCTB4MDAsIDB4MDUsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsIDB4ZTgsIDB4MDQsCi0JMHhmNiwgMHhiOCwgMHgyOCwgMHhlMSwgMHgwMCwgMHgwMiwgMHhlZSwgMHhmZiwKLQkweDgwLCAweDgyLCAweDc3LCAweDEyLCAweDAwLCAweDU3LCAweGYwLCAweDIwLAotCTB4ODAsIDB4MDAsIDB4ZWUsIDB4MDEsIDB4MWEsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NywgMHg4MCwgMHg4MiwgMHhlOCwgMHgwMSwgMHgzMiwgMHhlMSwKLQkweDAwLCAweDAyLCAweGY1LCAweDgyLCAweDc3LCAweDExLCAweDAwLCAweDU0LAotCTB4ZjYsIDB4OTMsIDB4MTgsIDB4ODEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTQsCi0JMHhmMiwgMHhhMCwgMHg4MCwgMHg4MSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGY0LCAweDk1LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTEsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsCi0JMHg4OCwgMHgxNiwgMHhmNCwgMHg5NSwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NSwKLQkweDEwLCAweGU2LCAweDAwLCAweDAzLCAweDgwLCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4NzcsIDB4MTMsCi0JMHgwMCwgMHg1NiwgMHg4MCwgMHg4MiwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NiwKLQkweDEwLCAweGUxLCAweDAwLCAweDAzLCAweDgwLCAweDgyLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDQsIDB4NzcsIDB4MTIsIDB4MDAsIDB4NTYsIDB4ODAsIDB4ODIsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHg1NiwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDgwLCAweDgyLCAweGU3LCAweDEyLCAweGU1LCAweDAxLCAweGY5LCAweDgwLAotCTB4MTYsIDB4OWEsIDB4OGEsIDB4MTYsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHg0YSwgMHgxNywgMHhlZSwgMHhmOSwKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDc2LCAweDAwLCAweDAwLCAweDE2LAotCTB4NzYsIDB4MDEsIDB4MDAsIDB4MTcsIDB4NzYsIDB4MDIsIDB4MDAsIDB4MWEsCi0JMHg3NiwgMHgwMywgMHgwMCwgMHgxYiwgMHg3NiwgMHgwNCwgMHgwMCwgMHgxYywKLQkweDc2LCAweDA1LCAweDAwLCAweDFkLCAweDcxLCAweDgxLCAweDAwLCAweDE3LAotCTB4NzEsIDB4ZTcsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTEsIDB4MTAsIDB4ODEsCi0JMHhmOCwgMHg0NCwgMHgxNCwgMHhkZiwgMHhmOSwgMHg4MCwgMHgxNiwgMHg1MywKLQkweGY2LCAweGI4LCAweGZiLCAweDgwLCAweDE1LCAweDg1LCAweGYwLCAweDIwLAotCTB4ZmYsIDB4ZmYsIDB4ZjYsIDB4YjgsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4MDgsCi0JMHhmMCwgMHgyMCwgMHhmZiwgMHhmZiwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwKLQkweDcxLCAweDgxLCAweDAwLCAweDE3LCAweDc2LCAweGU3LCAweDAwLCAweDA2LAotCTB4MDAsIDB4MDEsIDB4NDgsIDB4MTcsIDB4NzcsIDB4MTYsIDB4MDAsIDB4MDAsCi0JMHg3NywgMHgxMCwgMHgwMCwgMHgwNCwgMHg3NywgMHgxNSwgMHgwMCwgMHgwMywKLQkweDc3LCAweDE0LCAweDAwLCAweDAyLCAweDc3LCAweDEzLCAweDAwLCAweDAxLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MzksIDB4NzYsIDB4ZTcsIDB4MDAsIDB4MDgsCi0JMHgwMCwgMHgxZiwgMHg3NiwgMHhlNywgMHgwMCwgMHgwNywgMHgwMCwgMHgwMCwKLQkweDg4LCAweDBlLCAweDc3LCAweDFhLCAweDAwLCAweDA1LCAweDQ4LCAweDE3LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDksIDB4ODgsIDB4MTIsIDB4NDgsIDB4MTgsCi0JMHg4OCwgMHgxOSwgMHhlOCwgMHgwMCwgMHhmMCwgMHg3MiwgMHgxNSwgMHgyYywKLQkweDczLCAweDE5LCAweDAwLCAweDExLCAweDc2LCAweDgyLCAweDAwLCAweDAwLAotCTB4MTEsIDB4OTEsIDB4NzMsIDB4MTEsIDB4MDAsIDB4MTksIDB4NzAsIDB4ZTIsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHgxNiwgMHg3MCwgMHhlMiwgMHgwMCwgMHgwNCwKLQkweDAwLCAweDEzLCAweDcwLCAweGUyLCAweDAwLCAweDA1LCAweDAwLCAweDE0LAotCTB4ODEsIDB4ZTIsIDB4MDAsIDB4MDEsIDB4NzAsIDB4ZTIsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxNSwgMHg3MCwgMHhlMiwgMHgwMCwgMHgwNywgMHgwMCwgMHgxMCwKLQkweDgwLCAweGUyLCAweDAwLCAweDAyLCAweDczLCAweDBlLCAweDAwLCAweDExLAotCTB4ZjEsIDB4MDAsIDB4MDAsIDB4MWUsIDB4NmQsIDB4ZWUsIDB4MDAsIDB4MDUsCi0JMHg2ZCwgMHhlYiwgMHgwMCwgMHgwNSwgMHg2ZCwgMHhlYywgMHgwMCwgMHgwNSwKLQkweDZkLCAweGVkLCAweDAwLCAweDA1LCAweDZkLCAweGU4LCAweDAwLCAweDA1LAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4ODEsIDB4OTEsIDB4NmQsIDB4ZWEsCi0JMHgwMCwgMHgwOCwgMHg3MywgMHgxMSwgMHgwMCwgMHgwZSwgMHhlZSwgMHgwNywKLQkweDc2LCAweGU3LCAweDAwLCAweDQxLCAweDAwLCAweDI0LCAweDc2LCAweGU3LAotCTB4MDAsIDB4NDYsIDB4MDAsIDB4MjUsIDB4NzYsIDB4ZTcsIDB4MDAsIDB4NGIsCi0JMHgwMCwgMHgyNiwgMHg3NiwgMHhlNywgMHgwMCwgMHg1MCwgMHgwMCwgMHgyNywKLQkweDhhLCAweDE3LCAweDhhLCAweDE2LCAweDhhLCAweDExLCAweGY0LCAweGU0LAotCTB4NGEsIDB4MTEsIDB4NGEsIDB4MTYsIDB4ZWUsIDB4ZmUsIDB4ODgsIDB4MTEsCi0JMHg1NiwgMHgwNiwgMHg0ZSwgMHgwMCwgMHhmOSwgMHg4MCwgMHgxNiwgMHhhMiwKLQkweGY3LCAweGI4LCAweDEwLCAweGY4LCAweDAwLCAweDExLCAweGYwLCAweDEwLAotCTB4ZmYsIDB4ZmYsIDB4ZmEsIDB4NDUsIDB4MTUsIDB4NjAsIDB4NzcsIDB4MTYsCi0JMHhmZiwgMHhmZiwgMHg3NywgMHgxMiwgMHgwMCwgMHg3YiwgMHg0OSwgMHgxMSwKLQkweDEwLCAweDgyLCAweGY2LCAweDAzLCAweGYwLCAweDAwLCAweDAwLCAweDA5LAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsCi0JMHhmOCwgMHg0NCwgMHgxNSwgMHg3MSwgMHhmMiwgMHg3MywgMHgxNSwgMHg3MSwKLQkweGY0LCAweDk1LCAweGU3LCAweDE2LCAweDc3LCAweDExLCAweDAwLCAweDdiLAotCTB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDksIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMiwgMHgwMCwgMHgwNiwgMHgxMCwgMHg4MSwKLQkweGY4LCAweDQ1LCAweDE1LCAweDVjLCAweDZlLCAweGVhLCAweGZmLCAweGZmLAotCTB4MTUsIDB4NjksIDB4NmQsIDB4ZTksIDB4MDAsIDB4MDgsIDB4NzYsIDB4ODYsCi0JMHgwMCwgMHgwMSwgMHhlOSwgMHgwMSwgMHg1NiwgMHgwMCwgMHhmMSwgMHg4MCwKLQkweDEwLCAweGY4LCAweDAwLCAweDBiLCAweGY4LCAweDQ1LCAweDE1LCAweDdlLAotCTB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjQsIDB4OTUsIDB4NDgsIDB4MTYsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMiwgMHg0OCwgMHgxNiwKLQkweDhhLCAweDE2LCAweDhhLCAweDExLCAweGY0LCAweGU0LCAweDRhLCAweDExLAotCTB4ZWUsIDB4ZmYsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHg3NywgMHgxMCwgMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwKLQkweGY4LCAweDMwLCAweDE1LCAweGM0LCAweDEwLCAweGUxLCAweDAwLCAweDAzLAotCTB4NzcsIDB4MTIsIDB4MDAsIDB4NTUsIDB4ODAsIDB4ODIsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTYsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzcsIDB4MTIsCi0JMHgwMCwgMHg1NiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMiwKLQkweDAwLCAweDU2LCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4MDgsIDB4MzIsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHg3NywgMHgxMiwgMHgwMCwgMHg1NCwgMHhlOCwgMHgwMSwKLQkweGY0LCAweDgyLCAweGY0LCAweDkzLCAweDE4LCAweDgyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4NTQsIDB4ZjAsIDB4NDAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4ODIsCi0JMHgxMCwgMHhlMSwgMHgwMCwgMHgwMSwgMHhmOSwgMHg4MCwgMHgxNiwgMHg3NiwKLQkweDEwLCAweGUxLCAweDAwLCAweDAxLCAweGY5LCAweDgwLCAweDE2LCAweDY2LAotCTB4ZjAsIDB4NzMsIDB4MTYsIDB4MDMsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHg3MSwgMHg4MSwgMHgwMCwgMHgxMSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNywKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDksIDB4ZjksIDB4ODAsIDB4MTUsIDB4ODUsIDB4NzcsIDB4MTEsCi0JMHgwMCwgMHg3YiwgMHg3MSwgMHg4MSwgMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA5LCAweGZiLCAweDgwLCAweDE1LCAweDg1LCAweGYwLCAweDAwLAotCTB4MDAsIDB4MDgsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsCi0JMHgwMCwgMHgxMSwgMHgxMCwgMHhlMSwgMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwKLQkweDE1LCAweDg1LCAweGYwLCAweDAwLCAweDAwLCAweDEwLCAweDc3LCAweDExLAotCTB4MDAsIDB4N2IsIDB4NzEsIDB4ODEsIDB4MDAsIDB4MTEsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwOSwgMHhmYiwgMHg4MCwgMHgxNSwgMHg4NSwgMHhmMCwgMHgwMCwKLQkweDAwLCAweDE4LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDcxLCAweDgxLAotCTB4MDAsIDB4MTEsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDksIDB4ZmIsIDB4ODAsCi0JMHgxNSwgMHg4NSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgyMCwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDcxLCAweDgxLCAweDAwLCAweDExLCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDksIDB4ZmIsIDB4ODAsIDB4MTUsIDB4ODUsIDB4ZjAsIDB4MDAsCi0JMHgwMCwgMHgyOCwgMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwKLQkweDhhLCAweDExLCAweGY0LCAweGU0LCAweDRhLCAweDExLCAweGVlLCAweGZmLAotCTB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMCwgMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwKLQkweDE2LCAweDQxLCAweDc3LCAweDExLCAweDAwLCAweDU1LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MWUsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwgMHgwMCwgMHg1NiwgMHg3NiwgMHg4MSwKLQkweDAwLCAweDAwLCAweDc3LCAweDExLCAweDAwLCAweDU2LCAweDc2LCAweDgxLAotCTB4MDAsIDB4MDAsIDB4NzcsIDB4MTEsIDB4MDAsIDB4NTYsIDB4ZjIsIDB4NzMsCi0JMHgxNiwgMHg0ZSwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMCwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDcxLCAweDgxLCAweDAwLCAweDExLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDcsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHgxMCwgMHhlMSwgMHgwMCwgMHgzOSwgMHhmOSwgMHg4MCwgMHgxNiwgMHgwOCwKLQkweGY5LCAweDgwLCAweDE2LCAweDlhLCAweGVlLCAweDAxLCAweDhhLCAweDExLAotCTB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwNCwgMHg4OCwgMHgxMSwKLQkweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweDgxLCAweGZhLCAweDQ0LAotCTB4MTYsIDB4NjMsIDB4ZjQsIDB4OTUsIDB4ZWUsIDB4ZmYsIDB4NzYsIDB4ODEsCi0JMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwKLQkweGYwLCAweDEwLCAweDAwLCAweDEwLCAweDRhLCAweDExLCAweDMyLCAweGY4LAotCTB4MDAsIDB4MDgsIDB4ZWUsIDB4ZmYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4MDEsCi0JMHhlOCwgMHgwMSwgMHhlZSwgMHgwMSwgMHhmNCwgMHg4MiwgMHgxYSwgMHg4MSwKLQkweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweGU0LAotCTB4ZjAsIDB4MTAsIDB4MDAsIDB4MTAsIDB4NGEsIDB4MTEsIDB4MzIsIDB4ZjgsCi0JMHgwMCwgMHgwOCwgMHhlZSwgMHhmZiwgMHhlOCwgMHgwMSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDAwLCAweGY0LCAweDgyLCAweGVlLCAweDAxLCAweGY0LCAweDkzLAotCTB4MTgsIDB4ODEsIDB4ODAsIDB4ODEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHhmMCwgMHgxMCwgMHgwMCwgMHgxMCwKLQkweDc3LCAweDExLCAweDAwLCAweDAwLCAweDMyLCAweGY4LCAweDAwLCAweDA4LAotCTB4ZWUsIDB4ZmYsIDB4MTEsIDB4ODEsIDB4ZTgsIDB4MDEsIDB4ZWUsIDB4MDEsCi0JMHg3NywgMHgxMSwgMHgwMCwgMHgwMCwgMHhmNCwgMHg4MiwgMHhmMiwgMHhhMCwKLQkweDgwLCAweDgxLCAweDhhLCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweGU0LAotCTB4ZjIsIDB4NzMsIDB4MTYsIDB4OWUsIDB4ZjYsIDB4YmIsIDB4ZjQsIDB4OTUsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwKLQkweGYyLCAweDczLCAweDE2LCAweGE2LCAweGY3LCAweGJiLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwgMHhmNCwgMHg5NSwgMHg3MSwgMHgwNCwKLQkweDAwLCAweDE2LCAweGZiLCAweDgwLCAweDE2LCAweGEyLCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwZSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwZSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwZCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwKLQkweDEwLCAweGU2LCAweDAwLCAweDBkLCAweDgwLCAweDgyLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGMsCi0JMHgxMCwgMHhlNiwgMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGIsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwYiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwKLQkweDgwLCAweDgyLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MGEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwYSwgMHg4MCwgMHg4MiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDksIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDksIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA4LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsCi0JMHgwMCwgMHgwOCwgMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA3LCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDcsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsCi0JMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDA2LCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4MTAsIDB4ZTYsIDB4MDAsIDB4MDYsIDB4ODAsIDB4ODIsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDA1LCAweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLAotCTB4MTAsIDB4ZTYsIDB4MDAsIDB4MDUsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwNCwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDQsIDB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMywgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDEwLCAweGU2LCAweDAwLCAweDAzLAotCTB4ODAsIDB4ODIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwMiwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMSwgMHgxMCwgMHhlNiwgMHgwMCwgMHgwMSwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDgwLCAweDgyLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMywgMHhlNywgMHg2MiwKLQkweGU1LCAweDAxLCAweGY5LCAweDgwLCAweDE2LCAweDlhLCAweDhhLCAweDE2LAotCTB4OGEsIDB4MTEsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwKLQkweDAwLCAweDEyLCAweGVlLCAweGZmLCAweDc2LCAweDgyLCAweDAwLCAweDAwLAotCTB4ZWUsIDB4MDEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTEsCi0JMHg2OSwgMHg4MSwgMHgwMCwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHhlZSwgMHhmZiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDExLCAweDY5LCAweDgxLAotCTB4MDAsIDB4MDEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwgMHgwMCwgMHg3YiwgMHgxMCwgMHg4MSwKLQkweGYwLCAweDAwLCAweDAwLCAweDk0LCAweDg4LCAweDExLCAweGY0LCAweDk1LAotCTB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZmEsIDB4NDQsIDB4MTcsIDB4OWMsCi0JMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwgMHhmOSwgMHg4MCwgMHgxNiwgMHg1MywKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGYwLCAweDAwLAotCTB4MDAsIDB4OTQsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsCi0JMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwgMHhlZSwgMHgwMSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDc2LCAweGUxLCAweDAwLCAweDAyLAotCTB4MDAsIDB4MjEsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MjAsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgyMywgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDIyLCAweDc2LCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MzgsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MDcsIDB4MDAsIDB4MzksCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwOCwgMHgwMCwgMHgxNSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDA5LCAweDAwLCAweDE0LCAweDc2LCAweGUxLCAweDAwLCAweDBhLAotCTB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGIsIDB4MDAsIDB4NDEsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgwYywgMHgwMCwgMHg0MCwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDBkLCAweDAwLCAweDQzLCAweDc2LCAweGUxLCAweDAwLCAweDBlLAotCTB4MDAsIDB4NDIsIDB4NzYsIDB4ZTEsIDB4MDAsIDB4MGYsIDB4MDAsIDB4NDgsCi0JMHg3NiwgMHhlMSwgMHgwMCwgMHgxMCwgMHgwMCwgMHg0OSwgMHg3NiwgMHhlMSwKLQkweDAwLCAweDExLCAweDAwLCAweDFiLCAweDc2LCAweGUxLCAweDAwLCAweDEyLAotCTB4MDAsIDB4MWEsIDB4OGEsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsCi0JMHg0YSwgMHgxMSwgMHhlZSwgMHhmZCwgMHg4OCwgMHgxMSwgMHg1NiwgMHgwNiwKLQkweDRlLCAweDAwLCAweGY5LCAweDgwLCAweDE2LCAweGEyLCAweDc3LCAweDEyLAotCTB4MDAsIDB4N2IsIDB4NzcsIDB4MGUsIDB4MDAsIDB4MDksIDB4MTAsIDB4ODIsCi0JMHgyOCwgMHhmOCwgMHgwMCwgMHgxMSwgMHhmMCwgMHgwMCwgMHgwMCwgMHg5NSwKLQkweDg4LCAweDExLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDEwLCAweDgxLAotCTB4ZjgsIDB4NDUsIDB4MTcsIDB4ZjAsIDB4ZjIsIDB4NzMsIDB4MTcsIDB4ZmQsCi0JMHg3NywgMHgxMSwgMHhmZiwgMHhmZiwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwKLQkweGU5LCAweDAxLCAweDU2LCAweDAwLCAweGYxLCAweDgwLCAweDEwLCAweGY4LAotCTB4MDAsIDB4MGIsIDB4ZjgsIDB4NDUsIDB4MTcsIDB4ZmQsIDB4ZmIsIDB4ODAsCi0JMHgxOCwgMHgxMCwgMHhmNCwgMHg5NSwgMHg0OCwgMHgxMSwgMHhmOSwgMHg4MCwKLQkweDE2LCAweDlhLCAweGVlLCAweDAzLCAweDQ4LCAweDExLCAweDhhLCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMSwKLQkweDAwLCAweDExLCAweGVlLCAweDAxLCAweDEwLCAweDgxLCAweDhhLCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4ZTQsIDB4NGEsIDB4MTEsIDB4ZWUsIDB4ZmYsCi0JMHhmYiwgMHg4MCwgMHgxNiwgMHhhMiwgMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweDc3LCAweDEwLCAweGZmLCAweGZmLCAweGY0LCAweGE5LCAweGY4LCAweDMwLAotCTB4MTgsIDB4YzMsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDEsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDIsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAzLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDA0LCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwNSwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwNiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAxLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDcsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDIwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MDgsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDA1LCAweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDA5LAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwKLQkweDc2LCAweDgyLCAweDAwLCAweDBhLCAweDcxLCAweGUxLCAweDAwLCAweDA2LAotCTB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsCi0JMHgwMCwgMHgwNSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwYiwKLQkweDcxLCAweGUxLCAweDAwLCAweDA2LCAweDAwLCAweDEyLCAweDc2LCAweDgyLAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsCi0JMHg3NiwgMHg4MiwgMHgwMCwgMHgwYywgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDAwLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDUsIDB4MDAsIDB4MTIsIDB4NzYsIDB4ODIsIDB4MDAsIDB4MGQsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwNiwgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4MDAsIDB4MGUsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDYsCi0JMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwgMHgwMCwgMHgwMCwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA3LCAweGY5LCAweDgwLCAweDE2LCAweDc2LCAweDEwLCAweGUxLAotCTB4MDAsIDB4MDgsIDB4ZjksIDB4ODAsIDB4MTYsIDB4NzYsIDB4MTAsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHhmOSwgMHg4MCwgMHgxNiwgMHg2NiwgMHgxMCwgMHhlMSwKLQkweDAwLCAweDA4LCAweGY5LCAweDgwLCAweDE2LCAweDY2LCAweGYwLCAweDczLAotCTB4MTgsIDB4ZDEsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsIDB4MTAsIDB4ODEsCi0JMHhmYiwgMHg4MCwgMHgxOCwgMHgxMCwgMHhmMCwgMHgwMCwgMHgwMCwgMHg5NSwKLQkweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGZiLCAweDgwLAotCTB4MTgsIDB4MTAsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4OWUsIDB4ZjksIDB4ODAsCi0JMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwgMHhmNCwgMHhlNCwKLQkweDRhLCAweDExLCAweDg4LCAweDExLCAweGVlLCAweGZmLCAweGY0LCAweDk1LAotCTB4MTAsIDB4MDQsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MTEsCi0JMHhlZSwgMHgwMSwgMHg4MCwgMHg4MSwgMHg4YSwgMHgxMSwgMHhmNCwgMHg5NSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDRhLCAweDE2LCAweGY0LCAweDk1LAotCTB4NzEsIDB4MDQsIDB4MDAsIDB4MTYsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsCi0JMHg4OCwgMHgxMSwgMHhmNCwgMHg5NSwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDEyLCAweDc2LCAweDgyLCAweDAwLCAweDEwLCAweDEwLCAweGU2LAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MTIsCi0JMHg4MCwgMHg4MiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwNCwgMHgwMCwgMHgxMiwKLQkweDEwLCAweGU2LCAweDAwLCAweDAyLCAweDgwLCAweDgyLCAweGU3LCAweDYyLAotCTB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTMsIDB4ZTUsIDB4MDEsCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweDg4LCAweDExLCAweGVlLCAweGZmLAotCTB4ZWUsIDB4MDEsIDB4MTAsIDB4ZTEsIDB4MDAsIDB4MDEsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg3NywgMHgxMSwKLQkweDAwLCAweDdiLCAweDEwLCAweDgxLCAweGYwLCAweDAwLCAweDAwLCAweGIzLAotCTB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsCi0JMHhmYSwgMHg0NCwgMHgxOSwgMHgyYSwgMHhmNCwgMHg5NSwgMHhlZSwgMHhmZiwKLQkweGY5LCAweDgwLCAweDE2LCAweDUzLCAweDc3LCAweDExLCAweDAwLCAweDdiLAotCTB4MTAsIDB4ODEsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjMsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHg3NiwgMHg4MSwgMHgwMCwgMHgwMSwKLQkweGVlLCAweDAxLCAweDc2LCAweGUxLCAweDAwLCAweDAxLCAweDAwLCAweDAwLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTMsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHgyNiwgMHg3NiwgMHhlMSwgMHgwMCwgMHgwNCwKLQkweDAwLCAweDI1LCAweDc2LCAweGUxLCAweDAwLCAweDA1LCAweDAwLCAweDI0LAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MDAsIDB4NzYsIDB4ZTEsCi0JMHgwMCwgMHgwNywgMHgwMCwgMHgxNywgMHg3NiwgMHhlMSwgMHgwMCwgMHgwOCwKLQkweDAwLCAweDMyLCAweDc2LCAweGUxLCAweDAwLCAweDA5LCAweDAwLCAweDMxLAotCTB4NzYsIDB4ZTEsIDB4MDAsIDB4MGEsIDB4MDAsIDB4MzAsIDB4OGEsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNCwgMHhlNCwgMHg0YSwgMHgxMSwgMHg0YSwgMHgxNiwKLQkweDRhLCAweDE3LCAweGVlLCAweGZmLCAweGY0LCAweDk1LCAweDcxLCAweDA2LAotCTB4MDAsIDB4MTcsIDB4ZmIsIDB4ODAsIDB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsCi0JMHhmNCwgMHg5NSwgMHhmNywgMHhiOCwgMHgxMCwgMHhmOCwgMHgwMCwgMHgxMSwKLQkweGYwLCAweDEwLCAweGZmLCAweGZmLCAweGZhLCAweDQ1LCAweDE5LCAweDczLAotCTB4NzcsIDB4MTYsIDB4ZmYsIDB4ZmYsIDB4NzcsIDB4MTIsIDB4MDAsIDB4N2IsCi0JMHg3NywgMHgwZSwgMHgwMCwgMHgwNSwgMHgxMCwgMHg4MiwgMHgyOCwgMHhmOCwKLQkweDAwLCAweDExLCAweGYwLCAweDAwLCAweDAwLCAweGI0LCAweDg4LCAweDExLAotCTB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4MTAsIDB4ODEsIDB4ZjgsIDB4NDQsCi0JMHgxOSwgMHg4NCwgMHhmMiwgMHg3MywgMHgxOSwgMHg4NCwgMHhmNCwgMHg5NSwKLQkweGU3LCAweDE2LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLAotCTB4ZjAsIDB4MDAsIDB4MDAsIDB4YjQsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsCi0JMHg3NywgMHgxMiwgMHgwMCwgMHgwMiwgMHgxMCwgMHg4MSwgMHhmOCwgMHg0NSwKLQkweDE5LCAweDZmLCAweDZlLCAweGVhLCAweGZmLCAweGZmLCAweDE5LCAweDdjLAotCTB4NmQsIDB4ZTksIDB4MDAsIDB4MDUsIDB4NjEsIDB4ZjgsIDB4MDAsIDB4MTcsCi0JMHgwMCwgMHgwMSwgMHhmYSwgMHgyMCwgMHgxOSwgMHg4ZiwgMHg3NiwgMHg4NiwKLQkweDAwLCAweDAxLCAweGZiLCAweDgwLCAweDE5LCAweDk3LCAweGY0LCAweDk1LAotCTB4NDgsIDB4MTYsIDB4ZjksIDB4ODAsIDB4MTYsIDB4OWEsIDB4ZWUsIDB4MDEsCi0JMHg4YSwgMHgxNywgMHg0OCwgMHgxNiwgMHg4YSwgMHgxNiwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDRhLCAweDExLCAweGVlLCAweGZmLCAweGZiLCAweDgwLAotCTB4MTYsIDB4YTIsIDB4ODgsIDB4MTEsIDB4ZjQsIDB4OTUsIDB4NzcsIDB4MTAsCi0JMHhmZiwgMHhmZiwgMHhmNCwgMHhhOSwgMHhmOCwgMHgzMCwgMHgxOSwgMHhjYywKLQkweDcxLCAweGUxLCAweDAwLCAweDAyLCAweDAwLCAweDEyLCAweDY5LCAweDgyLAotCTB4MDAsIDB4MTAsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsCi0JMHg2OCwgMHg4MiwgMHhmNywgMHhmZiwgMHg3MSwgMHhlMSwgMHgwMCwgMHgwMiwKLQkweDAwLCAweDEyLCAweDY4LCAweDgyLCAweGZiLCAweGZmLCAweDcxLCAweGUxLAotCTB4MDAsIDB4MDIsIDB4MDAsIDB4MTIsIDB4NjgsIDB4ODIsIDB4ZmYsIDB4ZjAsCi0JMHg3MSwgMHhlMSwgMHgwMCwgMHgwMywgMHgwMCwgMHgxMiwgMHg3NiwgMHg4MiwKLQkweGZmLCAweGZmLCAweDcxLCAweGUxLCAweDAwLCAweDA0LCAweDAwLCAweDEyLAotCTB4NzYsIDB4ODIsIDB4ZmYsIDB4ZmYsIDB4NzEsIDB4ZTEsIDB4MDAsIDB4MDIsCi0JMHgwMCwgMHgxMiwgMHg2OSwgMHg4MiwgMHgwMCwgMHgyMCwgMHg3MSwgMHhlMSwKLQkweDAwLCAweDAyLCAweDAwLCAweDExLCAweGYyLCAweDczLCAweDE5LCAweGRhLAotCTB4NjgsIDB4ODEsIDB4ZmYsIDB4ZWYsIDB4NzcsIDB4MTEsIDB4MDAsIDB4N2IsCi0JMHgxMCwgMHg4MSwgMHhmYiwgMHg4MCwgMHgxOSwgMHg5NywgMHhmMCwgMHgwMCwKLQkweDAwLCAweGI0LCAweDc3LCAweDExLCAweDAwLCAweDdiLCAweDEwLCAweDgxLAotCTB4ZmIsIDB4ODAsIDB4MTksIDB4OTcsIDB4ZjAsIDB4MDAsIDB4MDAsIDB4YjksCi0JMHhmOSwgMHg4MCwgMHgxNiwgMHg5YSwgMHhlZSwgMHgwMSwgMHg4YSwgMHgxMSwKLQkweGY0LCAweGU0LCAweDAwLCAweGE0LCAweDAwLCAweDAwLCAweDE5LCAweGRmLAotCTB4MDAsIDB4MDEsIDB4MmEsIDB4ZTYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgyYSwgMHhlNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgyYSwgMHgxMiwKLQkweDBjLCAweDAxLCAweGMzLCAweDRmLCAweDAwLCAweDAwLCAweDAwLCAweDAxLAotCTB4MmEsIDB4MTUsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MmEsIDB4MTYsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxOSwgMHgyYSwgMHg1ZCwKLQkweDAwLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDcwLCAweDAwLCAweDc5LAotCTB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjgsCi0JMHgwMCwgMHg3NCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NCwgMHgwMCwgMHg2NSwKLQkweDAwLCAweDYzLCAweDAwLCAweDY4LCAweDAwLCAweDZlLCAweDAwLCAweDZmLAotCTB4MDAsIDB4NTQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NmUsCi0JMHgwMCwgMHg2NCwgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg0NywKLQkweDAwLCAweDAwLCAweDAwLCAweDA0LCAweDJhLCAweDc2LCAweDAwLCAweDMwLAotCTB4MDAsIDB4MmUsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MGMsCi0JMHgyYSwgMHg3YSwgMHgwMCwgMHg0NiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2MiwKLQkweDAwLCAweDIwLCAweDAwLCAweDMyLCAweDAwLCAweDM3LCAweDAwLCAweDIwLAotCTB4MDAsIDB4MzIsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzEsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwOSwgMHgyYSwgMHg4NiwgMHgwMCwgMHgzMSwKLQkweDAwLCAweDM0LCAweDAwLCAweDNhLCAweDAwLCAweDMzLCAweDAwLCAweDM1LAotCTB4MDAsIDB4M2EsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwZiwgMHgyYSwgMHg4ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAxLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDJhLCAweDllLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4MmEsIDB4OWYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsCi0JMHgyYSwgMHhhMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgyYSwgMHhhMSwKLQkweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDJhLCAweGEyLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDEsIDB4MjksIDB4N2UsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsCi0JMHgyOSwgMHg4MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwKLQkweDI5LCAweDgyLCAweGZmLCAweGZmLCAweDAwLCAweDAxLCAweDJhLCAweGE3LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDUsIDB4MmEsIDB4YTgsIDB4NzEsIDB4NDEsCi0JMHgyMCwgMHgwMCwgMHgyMCwgMHgwMCwgMHgwMCwgMHgyMywgMHgwNCwgMHgwMCwKLQkweDAwLCAweDBhLCAweDJhLCAweGFkLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDBmLCAweDJhLCAweGI3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDAsIDB4MDAsIDB4YTAsIDB4ODIsIDB4NDAsCi0JMHgwMCwgMHgwOCwgMHgzMCwgMHg3ZiwgMHgwMCwgMHg4MCwgMHgwMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MjcsIDB4NmUsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMSwgMHgyNywgMHg2ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDA5LCAweDAwLCAweDAwLCAweDFhLCAweDgzLCAweDA0LCAweGU4LAotCTB4MDQsIDB4Y2YsIDB4MDQsIDB4YzUsIDB4MDQsIDB4YmEsIDB4MDQsIDB4YjAsCi0JMHgwNCwgMHhhYywgMHgwNCwgMHg5YywgMHgwNCwgMHg4YywgMHgwNCwgMHg4MSwKLQkweDAwLCAweDc4LCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhhYSwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwMiwgMHgyMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDcsIDB4ZWYsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwNywgMHhlZiwgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA1LCAweGU1LCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweGYyLCAweDczLAotCTB4MDIsIDB4YjUsIDB4ZjQsIDB4OTUsIDB4ZjQsIDB4OTUsIDB4ZjIsIDB4NzMsCi0JMHgwZSwgMHgzMywgMHhmNCwgMHg5NSwgMHhmNCwgMHg5NSwgMHhmMiwgMHg3MywKLQkweDA3LCAweGVmLCAweGY0LCAweDk1LCAweGY0LCAweDk1LCAweDAwLCAweDAwLAotfTsKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL0tjb25maWcgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvS2NvbmZpZwppbmRleCAwNzEyODk5Li5hMjNjYzBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvS2NvbmZpZworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvS2NvbmZpZwpAQCAtMSw2ICsxLDYgQEAKIGNvbmZpZyBEVkJfVFRVU0JfREVDCiAJdHJpc3RhdGUgIlRlY2hub3RyZW5kL0hhdXBwYXVnZSBVU0IgREVDIGRldmljZXMiCi0JZGVwZW5kcyBvbiBEVkJfQ09SRSAmJiBVU0IKKwlkZXBlbmRzIG9uIERWQl9DT1JFICYmIFVTQiAmJiBJTlBVVAogCWRlcGVuZHMgb24gSE9UUExVRwkjIGR1ZSB0byBGV19MT0FERVIKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IENSQzMyCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JfZGVjLmMgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JfZGVjLmMKaW5kZXggNDJlZWUwNC4uZGU1ODI5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiX2RlYy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWRlYy90dHVzYl9kZWMuYwpAQCAtMzQzLDcgKzM0Myw3IEBACiAJdTggY1tDT01NQU5EX1BBQ0tFVF9TSVpFXTsKIAlpbnQgY19sZW5ndGg7CiAJaW50IHJlc3VsdDsKLQl1bnNpZ25lZCBpbnQgdG1wOworCV9fYmUzMiB0bXA7CiAKIAlkcHJpbnRrKCIlc1xuIiwgX19mdW5jX18pOwogCkBAIC0zOTgsOSArMzk4LDkgQEAKIAkJICAgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwKIAkJICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZiB9OwogCi0JdTE2IHBjciA9IGh0b25zKGRlYy0+cGlkW0RNWF9QRVNfUENSXSk7Ci0JdTE2IGF1ZGlvID0gaHRvbnMoZGVjLT5waWRbRE1YX1BFU19BVURJT10pOwotCXUxNiB2aWRlbyA9IGh0b25zKGRlYy0+cGlkW0RNWF9QRVNfVklERU9dKTsKKwlfX2JlMTYgcGNyID0gaHRvbnMoZGVjLT5waWRbRE1YX1BFU19QQ1JdKTsKKwlfX2JlMTYgYXVkaW8gPSBodG9ucyhkZWMtPnBpZFtETVhfUEVTX0FVRElPXSk7CisJX19iZTE2IHZpZGVvID0gaHRvbnMoZGVjLT5waWRbRE1YX1BFU19WSURFT10pOwogCiAJZHByaW50aygiJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtNDM1LDcgKzQzNSw3IEBACiAJY2FzZSAweDAxOiB7CQkvKiBWaWRlb1N0cmVhbSAqLwogCQlpbnQgcHJlYnl0ZXMgPSBwdmFbNV0gJiAweDAzOwogCQlpbnQgcG9zdGJ5dGVzID0gKHB2YVs1XSAmIDB4MGMpID4+IDI7Ci0JCXUxNiB2X3Blc19wYXlsb2FkX2xlbmd0aDsKKwkJX19iZTE2IHZfcGVzX3BheWxvYWRfbGVuZ3RoOwogCiAJCWlmIChvdXRwdXRfcHZhKSB7CiAJCQlkZWMtPnZpZGVvX2ZpbHRlci0+ZmVlZC0+Y2IudHMocHZhLCBsZW5ndGgsIE5VTEwsIDAsCkBAIC0xMDA2LDcgKzEwMDYsNyBAQAogCQkgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKIAkJICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCiAJCSAgICAweDAwIH07Ci0JdTE2IHBpZDsKKwlfX2JlMTYgcGlkOwogCXU4IGNbQ09NTUFORF9QQUNLRVRfU0laRV07CiAJaW50IGNfbGVuZ3RoOwogCWludCByZXN1bHQ7CkBAIC0xMjc1LDEyICsxMjc1LDEzIEBACiAJdTggYjFbXSA9IHsgMHg2MSB9OwogCXU4ICpiOwogCWNoYXIgaWRzdHJpbmdbMjFdOwotCXU4ICpmaXJtd2FyZSA9IE5VTEw7CisJY29uc3QgdTggKmZpcm13YXJlID0gTlVMTDsKIAlzaXplX3QgZmlybXdhcmVfc2l6ZSA9IDA7CiAJdTE2IGZpcm13YXJlX2NzdW0gPSAwOwotCXUxNiBmaXJtd2FyZV9jc3VtX25zOwotCXUzMiBmaXJtd2FyZV9zaXplX25sOwotCXUzMiBjcmMzMl9jc3VtLCBjcmMzMl9jaGVjaywgdG1wOworCV9fYmUxNiBmaXJtd2FyZV9jc3VtX25zOworCV9fYmUzMiBmaXJtd2FyZV9zaXplX25sOworCXUzMiBjcmMzMl9jc3VtLCBjcmMzMl9jaGVjazsKKwlfX2JlMzIgdG1wOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZndfZW50cnkgPSBOVUxMOwogCiAJZHByaW50aygiJXNcbiIsIF9fZnVuY19fKTsKQEAgLTEzMDYsNyArMTMwNyw3IEBACiAJICAgdmFsaWQuICovCiAJY3JjMzJfY3N1bSA9IGNyYzMyKH4wTCwgZmlybXdhcmUsIDU2KSBeIH4wTDsKIAltZW1jcHkoJnRtcCwgJmZpcm13YXJlWzU2XSwgNCk7Ci0JY3JjMzJfY2hlY2sgPSBodG9ubCh0bXApOworCWNyYzMyX2NoZWNrID0gbnRvaGwodG1wKTsKIAlpZiAoY3JjMzJfY3N1bSAhPSBjcmMzMl9jaGVjaykgewogCQlwcmludGsoIiVzOiBjcmMzMiBjaGVjayBvZiBEU1AgY29kZSBmYWlsZWQgKGNhbGN1bGF0ZWQgIgogCQkgICAgICAgIjB4JTA4eCAhPSAweCUwOHggaW4gZmlsZSksIGZpbGUgaW52YWxpZC5cbiIsCkBAIC0xNjI3LDcgKzE2MjgsNyBAQAogCiAJdXNiX3NldF9pbnRmZGF0YShpbnRmLCAodm9pZCAqKWRlYyk7CiAKLQlzd2l0Y2ggKGxlMTZfdG9fY3B1KGlkLT5pZFByb2R1Y3QpKSB7CisJc3dpdGNoIChpZC0+aWRQcm9kdWN0KSB7CiAJY2FzZSAweDEwMDY6CiAJCXR0dXNiX2RlY19zZXRfbW9kZWwoZGVjLCBUVFVTQl9ERUMzMDAwUyk7CiAJCWJyZWFrOwpAQCAtMTY1Miw3ICsxNjUzLDcgQEAKIAl0dHVzYl9kZWNfaW5pdF9kdmIoZGVjKTsKIAogCWRlYy0+YWRhcHRlci5wcml2ID0gZGVjOwotCXN3aXRjaCAobGUxNl90b19jcHUoaWQtPmlkUHJvZHVjdCkpIHsKKwlzd2l0Y2ggKGlkLT5pZFByb2R1Y3QpIHsKIAljYXNlIDB4MTAwNjoKIAkJZGVjLT5mZSA9IHR0dXNiZGVjZmVfZHZic19hdHRhY2goJmZlX2NvbmZpZyk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiZGVjZmUuYyBiL2RyaXZlcnMvbWVkaWEvZHZiL3R0dXNiLWRlYy90dHVzYmRlY2ZlLmMKaW5kZXggZWI1ZWFlYy4uNDQzYWYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9kdmIvdHR1c2ItZGVjL3R0dXNiZGVjZmUuYworKysgYi9kcml2ZXJzL21lZGlhL2R2Yi90dHVzYi1kZWMvdHR1c2JkZWNmZS5jCkBAIC04Niw3ICs4Niw3IEBACiAJCSAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYsCiAJCSAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4ZmYgfTsKIAotCXUzMiBmcmVxID0gaHRvbmwocC0+ZnJlcXVlbmN5IC8gMTAwMCk7CisJX19iZTMyIGZyZXEgPSBodG9ubChwLT5mcmVxdWVuY3kgLyAxMDAwKTsKIAltZW1jcHkoJmJbNF0sICZmcmVxLCBzaXplb2YgKHUzMikpOwogCXN0YXRlLT5jb25maWctPnNlbmRfY29tbWFuZChmZSwgMHg3MSwgc2l6ZW9mKGIpLCBiLCBOVUxMLCBOVUxMKTsKIApAQCAtMTE3LDEwICsxMTcsMTAgQEAKIAkJICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKIAkJICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKIAkJICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9OwotCXUzMiBmcmVxOwotCXUzMiBzeW1fcmF0ZTsKLQl1MzIgYmFuZDsKLQl1MzIgbG5iX3ZvbHRhZ2U7CisJX19iZTMyIGZyZXE7CisJX19iZTMyIHN5bV9yYXRlOworCV9fYmUzMiBiYW5kOworCV9fYmUzMiBsbmJfdm9sdGFnZTsKIAogCWZyZXEgPSBodG9ubChwLT5mcmVxdWVuY3kgKwogCSAgICAgICAoc3RhdGUtPmhpX2JhbmQgPyBMT0ZfSEkgOiBMT0ZfTE8pKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvcmFkaW8vbWlyb3BjbTIwLXJkcy5jIGIvZHJpdmVycy9tZWRpYS9yYWRpby9taXJvcGNtMjAtcmRzLmMKaW5kZXggMDZkZmVkOS4uM2U4NDBmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS9yYWRpby9taXJvcGNtMjAtcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS9yYWRpby9taXJvcGNtMjAtcmRzLmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTI3LDEzICsyOCwxNiBAQAogCWlmIChyZHNfdXNlcnMpCiAJCXJldHVybiAtRUJVU1k7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXJkc191c2VycysrOwogCWlmICgodGV4dF9idWZmZXI9a21hbGxvYyg2NiwgR0ZQX0tFUk5FTCkpID09IDApIHsKIAkJcmRzX3VzZXJzLS07CiAJCXByaW50ayhLRVJOX05PVElDRSAiYWNpLXJkczogT3V0IG9mIG1lbW9yeSBieSBvcGVuKCkuLi5cbiIpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9LY29uZmlnIGIvZHJpdmVycy9tZWRpYS92aWRlby9LY29uZmlnCmluZGV4IDNiMjZmYmQzLi41Y2NiMGFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9LY29uZmlnCkBAIC03OTMsNiArNzkzLDE0IEBACiAKIGlmIFY0TF9VU0JfRFJJVkVSUyAmJiBVU0IKIAorY29uZmlnIFVTQl9WSURFT19DTEFTUworCXRyaXN0YXRlICJVU0IgVmlkZW8gQ2xhc3MgKFVWQykiCisJLS0taGVscC0tLQorCSAgU3VwcG9ydCBmb3IgdGhlIFVTQiBWaWRlbyBDbGFzcyAoVVZDKS4gIEN1cnJlbnRseSBvbmx5IHZpZGVvCisJICBpbnB1dCBkZXZpY2VzLCBzdWNoIGFzIHdlYmNhbXMsIGFyZSBzdXBwb3J0ZWQuCisKKwkgIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZTogPGh0dHA6Ly9saW51eC11dmMuYmVybGlvcy5kZS8+CisKIHNvdXJjZSAiZHJpdmVycy9tZWRpYS92aWRlby9wdnJ1c2IyL0tjb25maWciCiAKIHNvdXJjZSAiZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvS2NvbmZpZyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vTWFrZWZpbGUgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL01ha2VmaWxlCmluZGV4IGRmZjBkNmEuLmVjYmJmYWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9NYWtlZmlsZQpAQCAtMTM2LDYgKzEzNiw4IEBACiAKIG9iai0kKENPTkZJR19WSURFT19BVTA4MjgpICs9IGF1MDgyOC8KIAorb2JqLSQoQ09ORklHX1VTQl9WSURFT19DTEFTUykJKz0gdXZjLworCiBFWFRSQV9DRkxBR1MgKz0gLUlkcml2ZXJzL21lZGlhL2R2Yi9kdmItY29yZQogRVhUUkFfQ0ZMQUdTICs9IC1JZHJpdmVycy9tZWRpYS9kdmIvZnJvbnRlbmRzCiBFWFRSQV9DRkxBR1MgKz0gLUlkcml2ZXJzL21lZGlhL2NvbW1vbi90dW5lcnMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9LY29uZmlnCmluZGV4IGRlZjEwZDAuLjUyYjI0OTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L0tjb25maWcKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvS2NvbmZpZwpAQCAtMSw3ICsxLDcgQEAKIAogY29uZmlnIFZJREVPX0FVMDgyOAogCXRyaXN0YXRlICJBdXZpdGVrIEFVMDgyOCBzdXBwb3J0IgotCWRlcGVuZHMgb24gVklERU9fREVWICYmIEkyQyAmJiBJTlBVVCAmJiBEVkJfQ09SRSAmJiBVU0IKKwlkZXBlbmRzIG9uIEkyQyAmJiBJTlBVVCAmJiBEVkJfQ09SRSAmJiBVU0IKIAlzZWxlY3QgSTJDX0FMR09CSVQKIAlzZWxlY3QgVklERU9fVFZFRVBST00KIAlzZWxlY3QgRFZCX0FVODUyMiBpZiAhRFZCX0ZFX0NVU1RPTUlaRQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYwppbmRleCBhMmE2OTgzLi44OThlMTIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtY2FyZHMuYwpAQCAtNzcsOCArNzcsMTQgQEAKIAogCS8qIE1ha2Ugc3VyZSB3ZSBzdXBwb3J0IHRoZSBib2FyZCBtb2RlbCAqLwogCXN3aXRjaCAodHYubW9kZWwpIHsKKwljYXNlIDcyMDAwOiAvKiBXaW5UVi1IVlI5NTBxIChSZXRhaWwsIElSLCBBVFNDL1FBTSAqLwogCWNhc2UgNzIwMDE6IC8qIFdpblRWLUhWUjk1MHEgKFJldGFpbCwgSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyMjExOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIElSLCBBVFNDL1FBTSBhbmQgYmFzaWMgYW5hbG9nIHZpZGVvICovCisJY2FzZSA3MjIyMTogLyogV2luVFYtSFZSOTUwcSAoT0VNLCBJUiwgQVRTQy9RQU0gYW5kIGJhc2ljIGFuYWxvZyB2aWRlbyAqLworCWNhc2UgNzIyMzE6IC8qIFdpblRWLUhWUjk1MHEgKE9FTSwgSVIsIEFUU0MvUUFNIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyMjQxOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIE5vIElSLCBBVFNDL1FBTSBhbmQgYmFzaWMgYW5hbG9nIHZpZGVvICovCiAJY2FzZSA3MjMwMTogLyogV2luVFYtSFZSODUwIChSZXRhaWwsIElSLCBBVFNDIGFuZCBiYXNpYyBhbmFsb2cgdmlkZW8gKi8KKwljYXNlIDcyNTAwOiAvKiBXaW5UVi1IVlI5NTBxIChPRU0sIE5vIElSLCBBVFNDL1FBTSAqLwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogd2FybmluZzogIgpAQCAtMTc1LDYgKzE4MSwxOCBAQAogCQkuZHJpdmVyX2luZm8gPSBBVTA4MjhfQk9BUkRfSEFVUFBBVUdFX0hWUjg1MCB9LAogCXsgVVNCX0RFVklDRSgweDBmZTksIDB4ZDYyMCksCiAJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9EVklDT19GVVNJT05IRFRWNyB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxMCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxNyksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxYiksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzIxZiksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDIwNDAsIDB4NzI4MCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAorCXsgVVNCX0RFVklDRSgweDBmZDksIDB4MDAwOCksCisJCS5kcml2ZXJfaW5mbyA9IEFVMDgyOF9CT0FSRF9IQVVQUEFVR0VfSFZSOTUwUSB9LAogCXsgfSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1kdmIuYwppbmRleCBjODZhNWYxLi5jNmQ0NzA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2F1MDgyOC9hdTA4MjgtZHZiLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWR2Yi5jCkBAIC0zNTMsMTIgKzM1Myw2IEBACiAJCXJldHVybiAtMTsKIAl9CiAKLQkvKiBQdXQgdGhlIGFuYWxvZyBkZWNvZGVyIGluIHN0YW5kYnkgdG8ga2VlcCBpdCBxdWlldCAqLwotCWF1MDgyOF9jYWxsX2kyY19jbGllbnRzKGRldiwgVFVORVJfU0VUX1NUQU5EQlksIE5VTEwpOwotCi0JaWYgKGR2Yi0+ZnJvbnRlbmQtPm9wcy5hbmFsb2dfb3BzLnN0YW5kYnkpCi0JCWR2Yi0+ZnJvbnRlbmQtPm9wcy5hbmFsb2dfb3BzLnN0YW5kYnkoZHZiLT5mcm9udGVuZCk7Ci0KIAkvKiByZWdpc3RlciBldmVyeXRoaW5nICovCiAJcmV0ID0gZHZiX3JlZ2lzdGVyKGRldik7CiAJaWYgKHJldCA8IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1jYXJkcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKaW5kZXggZjIwYTAxYy4uMWM1NmFlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LWNhcmRzLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPgogCisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogCiAjaW5jbHVkZSAiYnR0dnAuaCIKQEAgLTM3NjcsNyArMzc2OCw4IEBACiAjZGVmaW5lIEJUVFZfQUxUX0RDTEsJCTB4MTAwMDAwCiAjZGVmaW5lIEJUVFZfQUxUX05DT05GSUcJMHg4MDAwMDAKIAotc3RhdGljIGludCBfX2RldmluaXQgcHZyX2FsdGVyYV9sb2FkKHN0cnVjdCBidHR2ICpidHYsIHU4ICptaWNybywgdTMyIG1pY3JvbGVuKQorc3RhdGljIGludCBfX2RldmluaXQgcHZyX2FsdGVyYV9sb2FkKHN0cnVjdCBidHR2ICpidHYsIGNvbnN0IHU4ICptaWNybywKKwkJCQkgICAgIHUzMiBtaWNyb2xlbikKIHsKIAl1MzIgbjsKIAl1OCBiaXRzOwpAQCAtMzg1OCw3ICszODYwLDcgQEAKIAkJZWUgKz0gaTsKIAogCQkvKiBmb3VuZCBhIHZhbGlkIGRlc2NyaXB0b3IgKi8KLQkJdHlwZSA9IGJlMTZfdG9fY3B1cCgodTE2KikoZWUrNCkpOworCQl0eXBlID0gZ2V0X3VuYWxpZ25lZF9iZTE2KChfX2JlMTYgKikoZWUrNCkpOwogCiAJCXN3aXRjaCh0eXBlKSB7CiAJCS8qIDg0OCBiYXNlZCAqLwpAQCAtMzkxOCw3ICszOTIwLDcgQEAKIAkJCSAgICAgICBidHYtPmMubnIsIHR5cGUpOwogCQkJYnJlYWs7CiAJCX0KLQkJc2VyaWFsID0gYmUzMl90b19jcHVwKCh1MzIqKShlZSs2KSk7CisJCXNlcmlhbCA9IGdldF91bmFsaWduZWRfYmUzMigoX19iZTMyICopKGVlKzYpKTsKIAl9CiAKIAlwcmludGsoS0VSTl9JTkZPICJidHR2JWQ6IG9zcHJleSBlZXByb206IGNhcmQ9JWQgJyVzJyBzZXJpYWw9JXVcbiIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0OHh4L2J0dHYtcmlzYy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9idDh4eC9idHR2LXJpc2MuYwppbmRleCBlNTk3OWY3Li4wYWY1ODY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0OHh4L2J0dHYtcmlzYy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnQ4eHgvYnR0di1yaXNjLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKIHsKIAl1MzIgaW5zdHJ1Y3Rpb25zLGxpbmUsdG9kbzsKIAlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOwotCXUzMiAqcnA7CisJX19sZTMyICpycDsKIAlpbnQgcmM7CiAKIAkvKiBlc3RpbWF0ZSByaXNjIG1lbTogd29yc3QgY2FzZSBpcyBvbmUgd3JpdGUgcGVyIHBhZ2UgYm9yZGVyICsKQEAgLTEyOCw3ICsxMjgsOCBAQAogCQkgdW5zaWduZWQgaW50IGNwYWRkaW5nKQogewogCXVuc2lnbmVkIGludCBpbnN0cnVjdGlvbnMsbGluZSx0b2RvLHlsZW4sY2hyb21hOwotCXUzMiAqcnAscmk7CisJX19sZTMyICpycDsKKwl1MzIgcmk7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICp5c2c7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICp1c2c7CiAJc3RydWN0IHNjYXR0ZXJsaXN0ICp2c2c7CkBAIC0yNDQsNyArMjQ1LDggQEAKIHsKIAlpbnQgZHdvcmRzLHJjLGxpbmUsbWF4eSxzdGFydCxlbmQsc2tpcCxuc2tpcHM7CiAJc3RydWN0IGJ0Y3hfc2tpcGxpc3QgKnNraXBzOwotCXUzMiAqcnAscmkscmE7CisJX19sZTMyICpycDsKKwl1MzIgcmkscmE7CiAJdTMyIGFkZHI7CiAKIAkvKiBza2lwIGxpc3QgZm9yIHdpbmRvdyBjbGlwcGluZyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9idGN4LXJpc2MuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnRjeC1yaXNjLmMKaW5kZXggY2UwODQwYy4uZjQyNzAxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9idGN4LXJpc2MuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0Y3gtcmlzYy5jCkBAIC02Myw3ICs2Myw3IEBACiAJCSAgICAgICBzdHJ1Y3QgYnRjeF9yaXNjbWVtICpyaXNjLAogCQkgICAgICAgdW5zaWduZWQgaW50IHNpemUpCiB7Ci0JdTMyICpjcHU7CisJX19sZTMyICpjcHU7CiAJZG1hX2FkZHJfdCBkbWE7CiAKIAlpZiAoTlVMTCAhPSByaXNjLT5jcHUgJiYgcmlzYy0+c2l6ZSA8IHNpemUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0Y3gtcmlzYy5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9idGN4LXJpc2MuaAppbmRleCA1MDNlNmM2Li44NjFiYzgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2J0Y3gtcmlzYy5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vYnRjeC1yaXNjLmgKQEAgLTIsOCArMiw4IEBACiAgKi8KIHN0cnVjdCBidGN4X3Jpc2NtZW0gewogCXVuc2lnbmVkIGludCAgIHNpemU7Ci0JdTMyICAgICAgICAgICAgKmNwdTsKLQl1MzIgICAgICAgICAgICAqam1wOworCV9fbGUzMiAgICAgICAgICpjcHU7CisJX19sZTMyICAgICAgICAgKmptcDsKIAlkbWFfYWRkcl90ICAgICBkbWE7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEyX2NvcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCmluZGV4IGM4YjlmZGIuLmYyZThiMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3BpYTIvY3BpYTJfY29yZS5jCkBAIC0zMywxMSArMzMsMTAgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KIAogLyogI2RlZmluZSBfQ1BJQTJfREVCVUdfICovCiAKLSNpbmNsdWRlICJjcGlhMnBhdGNoLmgiCi0KICNpZmRlZiBfQ1BJQTJfREVCVUdfCiAKIHN0YXRpYyBjb25zdCBjaGFyICpibG9ja19uYW1lW10gPSB7CkBAIC04OTMsMjQgKzg5Miw1MyBAQAogICogIGFwcGx5X3ZwX3BhdGNoCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludCBjcGlhMl9zZW5kX29uZWJ5dGVfY29tbWFuZChzdHJ1Y3QgY2FtZXJhX2RhdGEgKmNhbSwKKwkJCQkgICAgICBzdHJ1Y3QgY3BpYTJfY29tbWFuZCAqY21kLAorCQkJCSAgICAgIHU4IHN0YXJ0LCB1OCBkYXR1bSkKK3sKKwljbWQtPmJ1ZmZlci5ibG9ja19kYXRhWzBdID0gZGF0dW07CisJY21kLT5zdGFydCA9IHN0YXJ0OworCWNtZC0+cmVnX2NvdW50ID0gMTsKKwlyZXR1cm4gY3BpYTJfc2VuZF9jb21tYW5kKGNhbSwgY21kKTsKK30KKwogc3RhdGljIGludCBhcHBseV92cF9wYXRjaChzdHJ1Y3QgY2FtZXJhX2RhdGEgKmNhbSkKIHsKLQlpbnQgaSwgajsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgZndfbmFtZVtdID0gImNwaWEyL3N0djA2NzJfdnA0LmJpbiI7CisJaW50IGksIHJldDsKIAlzdHJ1Y3QgY3BpYTJfY29tbWFuZCBjbWQ7CiAKKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgJmNhbS0+ZGV2LT5kZXYpOworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJjcGlhMjogZmFpbGVkIHRvIGxvYWQgVlAgcGF0Y2ggXCIlc1wiXG4iLAorCQkgICAgICAgZndfbmFtZSk7CisJCXJldHVybiByZXQ7CisJfQorCiAJY21kLnJlcV9tb2RlID0gQ0FNRVJBQUNDRVNTX1RZUEVfUkVQRUFUIHwgQ0FNRVJBQUNDRVNTX1ZQOwogCWNtZC5kaXJlY3Rpb24gPSBUUkFOU0ZFUl9XUklURTsKIAotCWZvciAoaSA9IDA7IGkgPCBQQVRDSF9EQVRBX1NJWkU7IGkrKykgewotCQlmb3IgKGogPSAwOyBqIDwgcGF0Y2hfZGF0YVtpXS5jb3VudDsgaisrKSB7Ci0JCQljbWQuYnVmZmVyLmJsb2NrX2RhdGFbal0gPSBwYXRjaF9kYXRhW2ldLmRhdGFbal07Ci0JCX0KKwkvKiBGaXJzdCBzZW5kIHRoZSBzdGFydCBhZGRyZXNzLi4uICovCisJY3BpYTJfc2VuZF9vbmVieXRlX2NvbW1hbmQoY2FtLCAmY21kLCAweDBBLCBmdy0+ZGF0YVswXSk7IC8qIGhpICovCisJY3BpYTJfc2VuZF9vbmVieXRlX2NvbW1hbmQoY2FtLCAmY21kLCAweDBCLCBmdy0+ZGF0YVsxXSk7IC8qIGxvICovCiAKLQkJY21kLnN0YXJ0ID0gcGF0Y2hfZGF0YVtpXS5yZWc7Ci0JCWNtZC5yZWdfY291bnQgPSBwYXRjaF9kYXRhW2ldLmNvdW50OworCS8qIC4uLiBmb2xsb3dlZCBieSB0aGUgZGF0YSBwYXlsb2FkICovCisJZm9yIChpID0gMjsgaSA8IGZ3LT5zaXplOyBpICs9IDY0KSB7CisJCWNtZC5zdGFydCA9IDB4MEM7IC8qIERhdGEgKi8KKwkJY21kLnJlZ19jb3VudCA9IG1pbl90KGludCwgNjQsIGZ3LT5zaXplIC0gaSk7CisJCW1lbWNweShjbWQuYnVmZmVyLmJsb2NrX2RhdGEsICZmdy0+ZGF0YVtpXSwgY21kLnJlZ19jb3VudCk7CiAJCWNwaWEyX3NlbmRfY29tbWFuZChjYW0sICZjbWQpOwogCX0KIAorCS8qIE5leHQgc2VuZCB0aGUgc3RhcnQgYWRkcmVzcy4uLiAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQSwgZnctPmRhdGFbMF0pOyAvKiBoaSAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwQiwgZnctPmRhdGFbMV0pOyAvKiBsbyAqLworCisJLyogLi4uIGZvbGxvd2VkIGJ5IHRoZSAnZ290bycgY29tbWFuZCAqLworCWNwaWEyX3NlbmRfb25lYnl0ZV9jb21tYW5kKGNhbSwgJmNtZCwgMHgwRCwgMSk7CisKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jcGlhMi9jcGlhMnBhdGNoLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEycGF0Y2guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YwODVmYi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2NwaWEyL2NwaWEycGF0Y2guaAorKysgL2Rldi9udWxsCkBAIC0xLDIzMyArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICoKLSAqICBGaWxlbmFtZTogY3BpYTJwYXRjaC5oCi0gKgotICogIENvcHlyaWdodCAyMDAxLCBTVE1pY3JvbGVjdHJvbmljcywgSW5jLgotICoKLSAqICBDb250YWN0OiAgc3RldmUubWlsbGVyQHN0LmNvbQotICoKLSAqICBEZXNjcmlwdGlvbjoKLSAqICAgICBUaGlzIGZpbGUgY29udGFpbnMgcGF0Y2ggZGF0YSBmb3IgdGhlIENQaUEyIChzdHYwNjcyKSBWUDQuCi0gKgotICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmbmRlZiBDUElBMl9QQVRDSF9IRUFERVIKLSNkZWZpbmUgQ1BJQTJfUEFUQ0hfSEVBREVSCi0KLXR5cGVkZWYgc3RydWN0IHsKLQl1bnNpZ25lZCBjaGFyIHJlZzsKLQl1bnNpZ25lZCBjaGFyIGNvdW50OwotCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGE7Ci19IGNwaWEyX3BhdGNoOwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBzdGFydF9hZGRyZXNzX2hpWzFdID0gewotCTB4MDEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHN0YXJ0X2FkZHJlc3NfbG9bMV0gPSB7Ci0JMHhCQwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2swWzY0XSA9IHsKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweEUzLCAweDA0LCAweEUzLCAweDA1LAotCTB4RTMsIDB4MDYsIDB4RTMsIDB4MDcsIDB4OTMsIDB4NDQsIDB4NTYsIDB4RDQsCi0JMHg5MywgMHg0RSwgMHg1NiwgMHg1MSwgMHg5MywgMHg0RSwgMHg1MSwgMHhENiwKLQkweDkzLCAweDRFLCAweDRGLCAweDU0LCAweDkzLCAweDRFLCAweDkyLCAweDRGLAotCTB4OTIsIDB4QTQsIDB4OTMsIDB4MDUsIDB4OTIsIDB4RjQsIDB4OTMsIDB4MUIsCi0JMHg5MiwgMHg5MiwgMHg5MSwgMHhFNiwgMHg5MiwgMHgzNiwgMHg5MiwgMHg3NCwKLQkweDkyLCAweDRBLCAweDkyLCAweDhDLCAweDkyLCAweDhFLCAweEM4LCAweEQwLAotCTB4MEIsIDB4NDIsIDB4MDIsIDB4QTAsIDB4Q0EsIDB4OTIsIDB4MDksIDB4MDIKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMVs2NF0gPSB7Ci0JMHhDOSwgMHgxMCwgMHgwQSwgMHgwQSwgMHgwQSwgMHg4MSwgMHhFMywgMHhCOCwKLQkweEUzLCAweEIwLCAweEUzLCAweEE4LCAweEUzLCAweEEwLCAweEUzLCAweDk4LAotCTB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4Q0YsIDB4RDcsIDB4MEEsIDB4MTIsCi0JMHhDQywgMHg5NSwgMHgwOCwgMHhCMiwgMHgwQSwgMHgxOCwgMHhFMSwgMHgwMCwKLQkweDAxLCAweEVFLCAweDBDLCAweDA4LCAweDRBLCAweDEyLCAweEM4LCAweDE4LAotCTB4RjAsIDB4OUEsIDB4QzAsIDB4MjIsIDB4RjMsIDB4MUMsIDB4NEEsIDB4MTMsCi0JMHhGMywgMHgxNCwgMHhDOCwgMHhBMCwgMHhGMiwgMHgxNCwgMHhGMiwgMHgxQywKLQkweEVCLCAweDEzLCAweEQzLCAweEEyLCAweDYzLCAweDE2LCAweDQ4LCAweDlFCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazJbNjRdID0gewotCTB4RjAsIDB4MTgsIDB4QTQsIDB4MDMsIDB4RjMsIDB4OTMsIDB4QzAsIDB4NTgsCi0JMHhGNywgMHgxMywgMHg1MSwgMHg5QywgMHhFOSwgMHgyMCwgMHhDRiwgMHhFRiwKLQkweDYzLCAweEY5LCAweDkyLCAweDJFLCAweEQzLCAweDVGLCAweDYzLCAweEZBLAotCTB4OTIsIDB4MkUsIDB4RDMsIDB4NjcsIDB4NjMsIDB4RkIsIDB4OTIsIDB4MkUsCi0JMHhEMywgMHg2RiwgMHhFOSwgMHgxQSwgMHg2MywgMHgxNiwgMHg0OCwgMHhBNywKLQkweEYwLCAweDIwLCAweEE0LCAweDA2LCAweEYzLCAweDk0LCAweEMwLCAweDI3LAotCTB4RjcsIDB4MTQsIDB4RjUsIDB4MTMsIDB4NTEsIDB4OUQsIDB4RjYsIDB4MTMsCi0JMHg2MywgMHgxOCwgMHhDNCwgMHgyMCwgMHhDQiwgMHhFRiwgMHg2MywgMHhGQwotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2szWzY0XSA9IHsKLQkweDkyLCAweDJFLCAweEQzLCAweDc3LCAweDYzLCAweEZELCAweDkyLCAweDJFLAotCTB4RDMsIDB4N0YsIDB4NjMsIDB4RkUsIDB4OTIsIDB4MkUsIDB4RDMsIDB4ODcsCi0JMHg2MywgMHhGRiwgMHg5MiwgMHgyRSwgMHhEMywgMHg4RiwgMHg2NCwgMHgzOCwKLQkweDkyLCAweDJFLCAweEQzLCAweDk3LCAweDY0LCAweDM5LCAweDkyLCAweDJFLAotCTB4RDMsIDB4OUYsIDB4RTEsIDB4MDAsIDB4RjUsIDB4M0EsIDB4RjQsIDB4M0IsCi0JMHhGNywgMHhCRiwgMHhGMiwgMHhCQywgMHhGMiwgMHgzRCwgMHhFMSwgMHgwMCwKLQkweDgwLCAweDg3LCAweDkwLCAweDgwLCAweDUxLCAweEQ1LCAweDAyLCAweDIyLAotCTB4MDIsIDB4MzIsIDB4NEIsIDB4RDMsIDB4RjcsIDB4MTEsIDB4MEIsIDB4REEKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrNFs2NF0gPSB7Ci0JMHhFMSwgMHgwMCwgMHgwRSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwRCwgMHhCNSwKLQkweEUzLCAweDAyLCAweDQ4LCAweDU1LCAweEU1LCAweDEyLCAweEE0LCAweDAxLAotCTB4RTgsIDB4MUIsIDB4RTMsIDB4OTAsIDB4RjAsIDB4MTgsIDB4QTQsIDB4MDEsCi0JMHhFOCwgMHhCRiwgMHg4RCwgMHhCOCwgMHg0QiwgMHhEMSwgMHg0QiwgMHhEOCwKLQkweDBCLCAweENCLCAweDBCLCAweEMyLCAweEUxLCAweDAwLCAweEUzLCAweDAyLAotCTB4RTMsIDB4MDMsIDB4NTIsIDB4RDMsIDB4NjAsIDB4NTksIDB4RTYsIDB4OTMsCi0JMHgwRCwgMHgyMiwgMHg1MiwgMHhENCwgMHhFNiwgMHg5MywgMHgwRCwgMHgyQSwKLQkweEUzLCAweDk4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweDAyLCAweDVECi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazVbNjRdID0gewotCTB4MDIsIDB4NjMsIDB4RTMsIDB4MDIsIDB4QzgsIDB4MTIsIDB4MDIsIDB4Q0EsCi0JMHhDOCwgMHg1MiwgMHgwMiwgMHhDMiwgMHg4MiwgMHg2OCwgMHhFMywgMHgwMiwKLQkweEM4LCAweDE0LCAweDAyLCAweENBLCAweEM4LCAweDkwLCAweDAyLCAweEMyLAotCTB4MEEsIDB4RDAsIDB4QzksIDB4OTMsIDB4MEEsIDB4REEsIDB4Q0MsIDB4RDIsCi0JMHgwQSwgMHhFMiwgMHg2MywgMHgxMiwgMHgwMiwgMHhEQSwgMHgwQSwgMHg5OCwKLQkweDBBLCAweEEwLCAweDBBLCAweEE4LCAweEUzLCAweDkwLCAweEUxLCAweDAwLAotCTB4RTMsIDB4MDIsIDB4MEEsIDB4RDAsIDB4QzksIDB4OTMsIDB4MEEsIDB4REEsCi0JMHhDQywgMHhEMiwgMHgwQSwgMHhFMiwgMHg2MywgMHgxMiwgMHgwMiwgMHhEQQotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s2WzY0XSA9IHsKLQkweDBBLCAweDk4LCAweDBBLCAweEEwLCAweDBBLCAweEE4LCAweDQ5LCAweDkxLAotCTB4RTUsIDB4NkEsIDB4QTQsIDB4MDQsIDB4QzgsIDB4MTIsIDB4MDIsIDB4Q0EsCi0JMHhDOCwgMHg1MiwgMHg4MiwgMHg4OSwgMHhDOCwgMHgxNCwgMHgwMiwgMHhDQSwKLQkweEM4LCAweDkwLCAweDAyLCAweEMyLCAweEUzLCAweDkwLCAweEUxLCAweDAwLAotCTB4MDgsIDB4NjAsIDB4RTEsIDB4MDAsIDB4NDgsIDB4NTMsIDB4RTgsIDB4OTcsCi0JMHgwOCwgMHg1QSwgMHhFMSwgMHgwMCwgMHhFMywgMHgwMiwgMHhFMywgMHgwMywKLQkweDU0LCAweEQzLCAweDYwLCAweDU5LCAweEU2LCAweDkzLCAweDBELCAweDUyLAotCTB4RTMsIDB4OTgsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4MDIsIDB4OUMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrN1s2NF0gPSB7Ci0JMHhFMywgMHgwMiwgMHg1NSwgMHgxMywgMHg5MywgMHgxNywgMHg1NSwgMHgxMywKLQkweDkzLCAweDE3LCAweEUzLCAweDkwLCAweEUxLCAweDAwLCAweDc1LCAweDMwLAotCTB4RTMsIDB4MDIsIDB4RTMsIDB4MDMsIDB4NTUsIDB4NTUsIDB4NjAsIDB4NTksCi0JMHhFNiwgMHg5MywgMHgwRCwgMHhCMiwgMHhFMywgMHg5OCwgMHhFMywgMHg5MCwKLQkweEUxLCAweDAwLCAweDAyLCAweEFFLCAweEU3LCAweDkyLCAweEU5LCAweDE4LAotCTB4RUEsIDB4OUEsIDB4RTgsIDB4OTgsIDB4RTgsIDB4MTAsIDB4RTgsIDB4MTEsCi0JMHhFOCwgMHg1MSwgMHhEMiwgMHhEQSwgMHhEMiwgMHhGMywgMHhFOCwgMHgxMywKLQkweEQyLCAweEZBLCAweEU4LCAweDUwLCAweEQyLCAweEVBLCAweEU4LCAweEQwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazhbNjRdID0gewotCTB4RTgsIDB4RDEsIDB4RDMsIDB4MEEsIDB4MDMsIDB4MDksIDB4NDgsIDB4MjMsCi0JMHhFNSwgMHgyQywgMHhBMCwgMHgwMywgMHg0OCwgMHgyNCwgMHhFQSwgMHgxQywKLQkweDAzLCAweDA4LCAweEQyLCAweEUzLCAweEQzLCAweDAzLCAweEQzLCAweDEzLAotCTB4RTEsIDB4MDAsIDB4MDIsIDB4Q0IsIDB4MDUsIDB4OTMsIDB4NTcsIDB4OTMsCi0JMHhGMCwgMHg5QSwgMHhBQywgMHgwQiwgMHhFMywgMHgwNywgMHg5MiwgMHhFQSwKLQkweEUyLCAweDlGLCAweEU1LCAweDA2LCAweEUzLCAweEIwLCAweEEwLCAweDAyLAotCTB4RUIsIDB4MUUsIDB4ODIsIDB4RDcsIDB4RUEsIDB4MUUsIDB4RTIsIDB4M0IsCi0JMHg4NSwgMHg5QiwgMHhFOSwgMHgxRSwgMHhDOCwgMHg5MCwgMHg4NSwgMHg5NAotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2s5WzY0XSA9IHsKLQkweDAyLCAweERFLCAweDA1LCAweDgwLCAweDU3LCAweDkzLCAweEYwLCAweEJBLAotCTB4QUMsIDB4MDYsIDB4OTIsIDB4RUEsIDB4RTIsIDB4QkYsIDB4RTUsIDB4MDYsCi0JMHhBMCwgMHgwMSwgMHhFQiwgMHhCRiwgMHg4NSwgMHg4OCwgMHhFOSwgMHgzRSwKLQkweEM4LCAweDkwLCAweDg1LCAweDgxLCAweEU5LCAweDNFLCAweEYwLCAweEJBLAotCTB4RjMsIDB4MzksIDB4RjAsIDB4M0EsIDB4NjAsIDB4MTcsIDB4RjAsIDB4M0EsCi0JMHhDMCwgMHg5MCwgMHhGMCwgMHhCQSwgMHhFMSwgMHgwMCwgMHgwMCwgMHgzRiwKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweDU4LCAweDEwLCAweDYwLCAweDU5LAotCTB4RTYsIDB4OTMsIDB4MEQsIDB4QTIsIDB4NTgsIDB4MTIsIDB4RTYsIDB4OTMKLX07Ci0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHBhdGNoX2Jsb2NrMTBbNjRdID0gewotCTB4MEQsIDB4QUEsIDB4RTMsIDB4OTgsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsCi0JMHgwMywgMHgwMSwgMHhFMSwgMHgwMCwgMHgwMywgMHgwMywgMHg5QiwgMHg3RCwKLQkweDhCLCAweDhCLCAweEUzLCAweDAyLCAweEUzLCAweDAzLCAweDU4LCAweDU2LAotCTB4NjAsIDB4NTksIDB4RTYsIDB4OTMsIDB4MEQsIDB4QkEsIDB4RTMsIDB4OTgsCi0JMHhFMywgMHg5MCwgMHhFMSwgMHgwMCwgMHgwMywgMHgwRiwgMHg5MywgMHgxMSwKLQkweEUxLCAweDAwLCAweEUzLCAweDAyLCAweDRBLCAweDExLCAweDBCLCAweDQyLAotCTB4OTEsIDB4QUYsIDB4RTMsIDB4OTAsIDB4RTEsIDB4MDAsIDB4RjIsIDB4OTEsCi0JMHhGMCwgMHg5MSwgMHhBMywgMHhGRSwgMHhFMSwgMHgwMCwgMHg2MCwgMHg5MgotfTsKLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcGF0Y2hfYmxvY2sxMVs2NF0gPSB7Ci0JMHhDMCwgMHg1RiwgMHhGMCwgMHgxMywgMHhGMCwgMHgxMywgMHg1OSwgMHg1QiwKLQkweEUyLCAweDEzLCAweEYwLCAweDExLCAweDVBLCAweDE5LCAweEUyLCAweDEzLAotCTB4RTEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MjcsIDB4NjgsIDB4NjEsCi0JMHg3NiwgMHg2MSwgMHg2RSwgMHg2MSwgMHgwMCwgMHgwNiwgMHgwMywgMHgyQywKLQkweEUzLCAweDAyLCAweEUzLCAweDAzLCAweEU5LCAweDM4LCAweDU5LCAweDE1LAotCTB4NTksIDB4NUEsIDB4RjIsIDB4OUEsIDB4QkMsIDB4MEIsIDB4QTQsIDB4MEEsCi0JMHg1OSwgMHgxRSwgMHhGMywgMHgxMSwgMHhGMCwgMHgxQSwgMHhFMiwgMHhCQiwKLQkweDU5LCAweDE1LCAweEYwLCAweDExLCAweDE5LCAweDJBLCAweEU1LCAweDAyCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwYXRjaF9ibG9jazEyWzU0XSA9IHsKLQkweEE0LCAweDAxLCAweEVCLCAweEJGLCAweEUzLCAweDk4LCAweEUzLCAweDkwLAotCTB4RTEsIDB4MDAsIDB4MDMsIDB4NDIsIDB4MTksIDB4MjgsIDB4RTEsIDB4MDAsCi0JMHhFOSwgMHgzMCwgMHg2MCwgMHg3OSwgMHhFMSwgMHgwMCwgMHhFMywgMHgwMywKLQkweEUzLCAweDA3LCAweDYwLCAweDc5LCAweDkzLCAweDRFLCAweEUzLCAweEI4LAotCTB4RTMsIDB4OTgsIDB4RTEsIDB4MDAsIDB4RTksIDB4MUEsIDB4RjAsIDB4MUYsCi0JMHhFMiwgMHgzMywgMHhGMCwgMHg5MSwgMHhFMiwgMHg5MiwgMHhFMCwgMHgzMiwKLQkweEYwLCAweDMxLCAweEUxLCAweDAwLCAweDAwLCAweDAwCi19OwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBkb19jYWxsWzFdID0gewotCTB4MDEKLX07Ci0KLQotI2RlZmluZSBQQVRDSF9EQVRBX1NJWkUgMTgKLQotc3RhdGljIGNvbnN0IGNwaWEyX3BhdGNoIHBhdGNoX2RhdGFbUEFUQ0hfREFUQV9TSVpFXSA9IHsKLQl7MHgwQSwgc2l6ZW9mKHN0YXJ0X2FkZHJlc3NfaGkpLCBzdGFydF9hZGRyZXNzX2hpfQotCSwJCQkvLyAwCi0JezB4MEIsIHNpemVvZihzdGFydF9hZGRyZXNzX2xvKSwgc3RhcnRfYWRkcmVzc19sb30KLQksCQkJLy8gMQotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2swKSwgcGF0Y2hfYmxvY2swfQotCSwJCQkvLyAyCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazEpLCBwYXRjaF9ibG9jazF9Ci0JLAkJCS8vIDMKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMiksIHBhdGNoX2Jsb2NrMn0KLQksCQkJLy8gNAotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2szKSwgcGF0Y2hfYmxvY2szfQotCSwJCQkvLyA1Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazQpLCBwYXRjaF9ibG9jazR9Ci0JLAkJCS8vIDYKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrNSksIHBhdGNoX2Jsb2NrNX0KLQksCQkJLy8gNwotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2s2KSwgcGF0Y2hfYmxvY2s2fQotCSwJCQkvLyA4Ci0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazcpLCBwYXRjaF9ibG9jazd9Ci0JLAkJCS8vIDkKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrOCksIHBhdGNoX2Jsb2NrOH0KLQksCQkJLy8gMTAKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrOSksIHBhdGNoX2Jsb2NrOX0KLQksCQkJLy8xMQotCXsweDBDLCBzaXplb2YocGF0Y2hfYmxvY2sxMCksIHBhdGNoX2Jsb2NrMTB9Ci0JLAkJCS8vIDEyCi0JezB4MEMsIHNpemVvZihwYXRjaF9ibG9jazExKSwgcGF0Y2hfYmxvY2sxMX0KLQksCQkJLy8gMTMKLQl7MHgwQywgc2l6ZW9mKHBhdGNoX2Jsb2NrMTIpLCBwYXRjaF9ibG9jazEyfQotCSwJCQkvLyAxNAotCXsweDBBLCBzaXplb2Yoc3RhcnRfYWRkcmVzc19oaSksIHN0YXJ0X2FkZHJlc3NfaGl9Ci0JLAkJCS8vIDE1Ci0JezB4MEIsIHNpemVvZihzdGFydF9hZGRyZXNzX2xvKSwgc3RhcnRfYWRkcmVzc19sb30KLQksCQkJLy8gMTYKLQl7MHgwRCwgc2l6ZW9mKGRvX2NhbGwpLCBkb19jYWxsfQkvLzE3Ci19OwotCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L0tjb25maWcgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZwppbmRleCA1Zjk0MjY5Li45YWVmZGM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvS2NvbmZpZwpAQCAtMTAsOCArMTAsOCBAQAogCXNlbGVjdCBWSURFT19UVkVFUFJPTQogCXNlbGVjdCBWSURFT19DWDIzNDFYCiAJc2VsZWN0IFZJREVPX0NTNTM0NQotCXNlbGVjdCBEVkJfUzVIMTQwOQotCXNlbGVjdCBNRURJQV9UVU5FUl9NWEw1MDA1UworCXNlbGVjdCBEVkJfUzVIMTQwOSBpZiAhRFZCX0ZFX0NVU1RPTUlTRQorCXNlbGVjdCBNRURJQV9UVU5FUl9NWEw1MDA1UyBpZiAhRFZCX0ZFX0NVU1RPTUlTRQogCS0tLWhlbHAtLS0KIAkgIFRoaXMgaXMgYSB2aWRlbzRsaW51eCBkcml2ZXIgZm9yIENvbmV4YW50IGN4MjM0MTggYmFzZWQKIAkgIFBDSSBjb21ibyB2aWRlbyByZWNvcmRlciBkZXZpY2VzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5jCmluZGV4IDY2ODY0OTAuLmZhY2E0M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmMKQEAgLTY5LDYgKzY5LDU4IEBACiAJCQkgICAgIG9yX3ZhbHVlKTsKIH0KIAoraW50IGN4MThfYXZfd3JpdGVfbm9fYWNmZyhzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1OCB2YWx1ZSwgaW50IG5vX2FjZmdfbWFzaykKK3sKKwlpbnQgcmV0dmFsOworCXUzMiBzYXZlZF9yZWdbOF0gPSB7MH07CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfQUZFKSB7CisJCXNhdmVkX3JlZ1swXSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19DSElQX0NUUkwpOworCQlzYXZlZF9yZWdbMV0gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfQUZFX0NUUkwpOworCX0KKworCWlmIChub19hY2ZnX21hc2sgJiBDWEFERUNfTk9fQUNGR19QTEwpIHsKKwkJc2F2ZWRfcmVnWzJdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX1BMTF9DVFJMMSk7CisJCXNhdmVkX3JlZ1szXSA9IGN4MThfYXZfcmVhZDQoY3gsIENYQURFQ19WSURfUExMX0ZSQUMpOworCX0KKworCWlmIChub19hY2ZnX21hc2sgJiBDWEFERUNfTk9fQUNGR19WSUQpIHsKKwkJc2F2ZWRfcmVnWzRdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX0hPUklaX1RJTV9DVFJMKTsKKwkJc2F2ZWRfcmVnWzVdID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX1ZFUlRfVElNX0NUUkwpOworCQlzYXZlZF9yZWdbNl0gPSBjeDE4X2F2X3JlYWQ0KGN4LCBDWEFERUNfU1JDX0NPTUJfQ0ZHKTsKKwkJc2F2ZWRfcmVnWzddID0gY3gxOF9hdl9yZWFkNChjeCwgQ1hBREVDX0NIUk9NQV9WQklPRkZfQ0ZHKTsKKwl9CisKKwlyZXR2YWwgPSBjeDE4X2F2X3dyaXRlKGN4LCBhZGRyLCB2YWx1ZSk7CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfQUZFKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfQ0hJUF9DVFJMLCBzYXZlZF9yZWdbMF0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX0FGRV9DVFJMLCAgc2F2ZWRfcmVnWzFdKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfUExMKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfUExMX0NUUkwxLCAgICBzYXZlZF9yZWdbMl0pOworCQljeDE4X2F2X3dyaXRlNChjeCwgQ1hBREVDX1ZJRF9QTExfRlJBQywgc2F2ZWRfcmVnWzNdKTsKKwl9CisKKwlpZiAobm9fYWNmZ19tYXNrICYgQ1hBREVDX05PX0FDRkdfVklEKSB7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfSE9SSVpfVElNX0NUUkwsICAgIHNhdmVkX3JlZ1s0XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfVkVSVF9USU1fQ1RSTCwgICAgIHNhdmVkX3JlZ1s1XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfU1JDX0NPTUJfQ0ZHLCAgICAgIHNhdmVkX3JlZ1s2XSk7CisJCWN4MThfYXZfd3JpdGU0KGN4LCBDWEFERUNfQ0hST01BX1ZCSU9GRl9DRkcsIHNhdmVkX3JlZ1s3XSk7CisJfQorCisJcmV0dXJuIHJldHZhbDsKK30KKworaW50IGN4MThfYXZfYW5kX29yX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdW5zaWduZWQgYW5kX21hc2ssCisJCQkgICB1OCBvcl92YWx1ZSwgaW50IG5vX2FjZmdfbWFzaykKK3sKKwlyZXR1cm4gY3gxOF9hdl93cml0ZV9ub19hY2ZnKGN4LCBhZGRyLAorCQkJCSAgICAgKGN4MThfYXZfcmVhZChjeCwgYWRkcikgJiBhbmRfbWFzaykgfAorCQkJCSAgICAgb3JfdmFsdWUsIG5vX2FjZmdfbWFzayk7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIHN0YXRpYyBpbnQgc2V0X2lucHV0KHN0cnVjdCBjeDE4ICpjeCwgZW51bSBjeDE4X2F2X3ZpZGVvX2lucHV0IHZpZF9pbnB1dCwKQEAgLTE3MCwyNiArMjIyLDMwIEBACiAKIAkvKiBGb2xsb3cgc3RlcCA4YyBhbmQgOGQgb2Ygc2VjdGlvbiAzLjE2IGluIHRoZSBjeDE4X2F2IGRhdGFzaGVldCAqLwogCWlmIChzdGQgJiBWNEwyX1NURF9TRUNBTSkKLQkJY3gxOF9hdl93cml0ZShjeCwgMHg0MDIsIDApOworCQljeDE4X2F2X3dyaXRlX25vX2FjZmcoY3gsIDB4NDAyLCAwLCBDWEFERUNfTk9fQUNGR19BTEwpOwogCWVsc2UgewotCQljeDE4X2F2X3dyaXRlKGN4LCAweDQwMiwgMHgwNCk7CisJCWN4MThfYXZfd3JpdGVfbm9fYWNmZyhjeCwgMHg0MDIsIDB4MDQsIENYQURFQ19OT19BQ0ZHX0FMTCk7CiAJCWN4MThfYXZfd3JpdGUoY3gsIDB4NDlmLCAoc3RkICYgVjRMMl9TVERfTlRTQykgPyAweDE0IDogMHgxMSk7CiAJfQotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMSwgfjB4NjAsIDApOwotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMSwgfjB4NjAsIDB4NjApOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAxLCB+MHg2MCwgMCwKKwkJCQlDWEFERUNfTk9fQUNGR19QTEwgfCBDWEFERUNfTk9fQUNGR19WSUQpOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAxLCB+MHg2MCwgMHg2MCwKKwkJCQlDWEFERUNfTk9fQUNGR19QTEwgfCBDWEFERUNfTk9fQUNGR19WSUQpOwogCiAJaWYgKHN0ZCAmIFY0TDJfU1REXzUyNV82MCkgewogCQlpZiAoc3RkID09IFY0TDJfU1REX05UU0NfTV9KUCkgewogCQkJLyogSmFwYW4gdXNlcyBFSUFKIGF1ZGlvIHN0YW5kYXJkICovCiAJCQljeDE4X2F2X3dyaXRlKGN4LCAweDgwOCwgMHhmNyk7CisJCQljeDE4X2F2X3dyaXRlKGN4LCAweDgwYiwgMHgwMik7CiAJCX0gZWxzZSBpZiAoc3RkID09IFY0TDJfU1REX05UU0NfTV9LUikgewogCQkJLyogU291dGggS29yZWEgdXNlcyBBMiBhdWRpbyBzdGFuZGFyZCAqLwogCQkJY3gxOF9hdl93cml0ZShjeCwgMHg4MDgsIDB4ZjgpOworCQkJY3gxOF9hdl93cml0ZShjeCwgMHg4MGIsIDB4MDMpOwogCQl9IGVsc2UgewogCQkJLyogT3RoZXJzIHVzZSB0aGUgQlRTQyBhdWRpbyBzdGFuZGFyZCAqLwogCQkJY3gxOF9hdl93cml0ZShjeCwgMHg4MDgsIDB4ZjYpOworCQkJY3gxOF9hdl93cml0ZShjeCwgMHg4MGIsIDB4MDEpOwogCQl9Ci0JCWN4MThfYXZfd3JpdGUoY3gsIDB4ODBiLCAweDAwKTsKIAl9IGVsc2UgaWYgKHN0ZCAmIFY0TDJfU1REX1BBTCkgewogCQkvKiBGb2xsb3cgdHVuZXIgY2hhbmdlIHByb2NlZHVyZSBmb3IgUEFMICovCiAJCWN4MThfYXZfd3JpdGUoY3gsIDB4ODA4LCAweGZmKTsKQEAgLTIyNiw3ICsyODIsNyBAQAogCiAJCWlmICgodmlkX2lucHV0ICYgfjB4ZmYwKSB8fAogCQkgICAgbHVtYSA8IENYMThfQVZfU1ZJREVPX0xVTUExIHx8Ci0JCSAgICBsdW1hID4gQ1gxOF9BVl9TVklERU9fTFVNQTQgfHwKKwkJICAgIGx1bWEgPiBDWDE4X0FWX1NWSURFT19MVU1BOCB8fAogCQkgICAgY2hyb21hIDwgQ1gxOF9BVl9TVklERU9fQ0hST01BNCB8fAogCQkgICAgY2hyb21hID4gQ1gxOF9BVl9TVklERU9fQ0hST01BOCkgewogCQkJQ1gxOF9FUlIoIjB4JTA0eCBpcyBub3QgYSB2YWxpZCB2aWRlbyBpbnB1dCFcbiIsCkBAIC0yNjAsNyArMzE2LDggQEAKIAogCWN4MThfYXZfd3JpdGUoY3gsIDB4MTAzLCByZWcpOwogCS8qIFNldCBJTlBVVF9NT0RFIHRvIENvbXBvc2l0ZSAoMCkgb3IgUy1WaWRlbyAoMSkgKi8KLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDEsIH4weDYsIGlzX2NvbXBvc2l0ZSA/IDAgOiAweDAyKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMSwgfjB4NiwgaXNfY29tcG9zaXRlID8gMCA6IDB4MDIsCisJCQkJQ1hBREVDX05PX0FDRkdfUExMIHwgQ1hBREVDX05PX0FDRkdfVklEKTsKIAkvKiBTZXQgQ0hfU0VMX0FEQzIgdG8gMSBpZiBpbnB1dCBjb21lcyBmcm9tIENIMyAqLwogCWN4MThfYXZfYW5kX29yKGN4LCAweDEwMiwgfjB4MiwgKHJlZyAmIDB4ODApID09IDAgPyAyIDogMCk7CiAJLyogU2V0IERVQUxfTU9ERV9BREMyIHRvIDEgaWYgaW5wdXQgY29tZXMgZnJvbSBib3RoIENIMiBhbmQgQ0gzICovCkBAIC0zMTYsMTIgKzM3MywxMiBAQAogCSAgIFRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSB3aXRoIHRoZSBZdWFuIE1QQzYyMi4gKi8KIAlpZiAoZm10ID49IDQgJiYgZm10IDwgOCkgewogCQkvKiBTZXQgZm9ybWF0IHRvIE5UU0MtTSAqLwotCQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDAsIH4weGYsIDEpOworCQljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMCwgfjB4ZiwgMSwgQ1hBREVDX05PX0FDRkdfQUZFKTsKIAkJLyogVHVybiBvZmYgTENPTUIgKi8KIAkJY3gxOF9hdl9hbmRfb3IoY3gsIDB4NDdiLCB+NiwgMCk7CiAJfQotCWN4MThfYXZfYW5kX29yKGN4LCAweDQwMCwgfjB4ZiwgZm10KTsKLQljeDE4X2F2X2FuZF9vcihjeCwgMHg0MDMsIH4weDMsIHBhbF9tKTsKKwljeDE4X2F2X2FuZF9vcl9ub19hY2ZnKGN4LCAweDQwMCwgfjB4ZiwgZm10LCBDWEFERUNfTk9fQUNGR19BRkUpOworCWN4MThfYXZfYW5kX29yX25vX2FjZmcoY3gsIDB4NDAzLCB+MHgzLCBwYWxfbSwgQ1hBREVDX05PX0FDRkdfQUxMKTsKIAljeDE4X2F2X3ZiaV9zZXR1cChjeCk7CiAJaW5wdXRfY2hhbmdlKGN4KTsKIAlyZXR1cm4gMDsKQEAgLTc0MSw4ICs3OTgsOCBAQAogewogCXN0cnVjdCBjeDE4X2F2X3N0YXRlICpzdGF0ZSA9ICZjeC0+YXZfc3RhdGU7CiAJdTggZG93bmxvYWRfY3RsID0gY3gxOF9hdl9yZWFkKGN4LCAweDgwMyk7Ci0JdTggbW9kX2RldF9zdGF0MCA9IGN4MThfYXZfcmVhZChjeCwgMHg4MDUpOwotCXU4IG1vZF9kZXRfc3RhdDEgPSBjeDE4X2F2X3JlYWQoY3gsIDB4ODA0KTsKKwl1OCBtb2RfZGV0X3N0YXQwID0gY3gxOF9hdl9yZWFkKGN4LCAweDgwNCk7CisJdTggbW9kX2RldF9zdGF0MSA9IGN4MThfYXZfcmVhZChjeCwgMHg4MDUpOwogCXU4IGF1ZGlvX2NvbmZpZyA9IGN4MThfYXZfcmVhZChjeCwgMHg4MDgpOwogCXU4IHByZWZfbW9kZSA9IGN4MThfYXZfcmVhZChjeCwgMHg4MDkpOwogCXU4IGFmYzAgPSBjeDE4X2F2X3JlYWQoY3gsIDB4ODBiKTsKQEAgLTc2MCwxMiArODE3LDEyIEBACiAJY2FzZSAweDEyOiBwID0gImR1YWwgd2l0aCBTQVAiOyBicmVhazsKIAljYXNlIDB4MTQ6IHAgPSAidHJpIHdpdGggU0FQIjsgYnJlYWs7CiAJY2FzZSAweGZlOiBwID0gImZvcmNlZCBtb2RlIjsgYnJlYWs7Ci0JZGVmYXVsdDogcCA9ICJub3QgZGVmaW5lZCI7CisJZGVmYXVsdDogcCA9ICJub3QgZGVmaW5lZCI7IGJyZWFrOwogCX0KIAlDWDE4X0lORk8oIkRldGVjdGVkIGF1ZGlvIG1vZGU6ICAgICAgICVzXG4iLCBwKTsKIAogCXN3aXRjaCAobW9kX2RldF9zdGF0MSkgewotCWNhc2UgMHgwMDogcCA9ICJCVFNDIjsgYnJlYWs7CisJY2FzZSAweDAwOiBwID0gIm5vdCBkZWZpbmVkIjsgYnJlYWs7CiAJY2FzZSAweDAxOiBwID0gIkVJQUoiOyBicmVhazsKIAljYXNlIDB4MDI6IHAgPSAiQTItTSI7IGJyZWFrOwogCWNhc2UgMHgwMzogcCA9ICJBMi1CRyI7IGJyZWFrOwpAQCAtNzc5LDggKzgzNiwxMyBAQAogCWNhc2UgMHgwYjogcCA9ICJOSUNBTS1JIjsgYnJlYWs7CiAJY2FzZSAweDBjOiBwID0gIk5JQ0FNLUwiOyBicmVhazsKIAljYXNlIDB4MGQ6IHAgPSAiQlRTQy9FSUFKL0EyLU0gTW9ubyAoNC41IE1IeiBGTU1vbm8pIjsgYnJlYWs7CisJY2FzZSAweDBlOiBwID0gIklGIEZNIFJhZGlvIjsgYnJlYWs7CisJY2FzZSAweDBmOiBwID0gIkJUU0MiOyBicmVhazsKKwljYXNlIDB4MTA6IHAgPSAiZGV0ZWN0ZWQgY2hyb21pbmFuY2UiOyBicmVhazsKKwljYXNlIDB4ZmQ6IHAgPSAidW5rbm93biBhdWRpbyBzdGFuZGFyZCI7IGJyZWFrOworCWNhc2UgMHhmZTogcCA9ICJmb3JjZWQgYXVkaW8gc3RhbmRhcmQiOyBicmVhazsKIAljYXNlIDB4ZmY6IHAgPSAibm8gZGV0ZWN0ZWQgYXVkaW8gc3RhbmRhcmQiOyBicmVhazsKLQlkZWZhdWx0OiBwID0gIm5vdCBkZWZpbmVkIjsKKwlkZWZhdWx0OiBwID0gIm5vdCBkZWZpbmVkIjsgYnJlYWs7CiAJfQogCUNYMThfSU5GTygiRGV0ZWN0ZWQgYXVkaW8gc3RhbmRhcmQ6ICAgJXNcbiIsIHApOwogCUNYMThfSU5GTygiQXVkaW8gbXV0ZWQ6ICAgICAgICAgICAgICAgJXNcbiIsCkBAIC03ODksMjIgKzg1MSwyMyBAQAogCQkgICAgKGRvd25sb2FkX2N0bCAmIDB4MTApID8gInJ1bm5pbmciIDogInN0b3BwZWQiKTsKIAogCXN3aXRjaCAoYXVkaW9fY29uZmlnID4+IDQpIHsKLQljYXNlIDB4MDA6IHAgPSAiQlRTQyI7IGJyZWFrOwotCWNhc2UgMHgwMTogcCA9ICJFSUFKIjsgYnJlYWs7Ci0JY2FzZSAweDAyOiBwID0gIkEyLU0iOyBicmVhazsKLQljYXNlIDB4MDM6IHAgPSAiQTItQkciOyBicmVhazsKLQljYXNlIDB4MDQ6IHAgPSAiQTItREsxIjsgYnJlYWs7Ci0JY2FzZSAweDA1OiBwID0gIkEyLURLMiI7IGJyZWFrOwotCWNhc2UgMHgwNjogcCA9ICJBMi1ESzMiOyBicmVhazsKLQljYXNlIDB4MDc6IHAgPSAiQTEgKDYuMCBNSHogRk0gTW9ubykiOyBicmVhazsKLQljYXNlIDB4MDg6IHAgPSAiQU0tTCI7IGJyZWFrOwotCWNhc2UgMHgwOTogcCA9ICJOSUNBTS1CRyI7IGJyZWFrOwotCWNhc2UgMHgwYTogcCA9ICJOSUNBTS1ESyI7IGJyZWFrOwotCWNhc2UgMHgwYjogcCA9ICJOSUNBTS1JIjsgYnJlYWs7Ci0JY2FzZSAweDBjOiBwID0gIk5JQ0FNLUwiOyBicmVhazsKLQljYXNlIDB4MGQ6IHAgPSAiRk0gcmFkaW8iOyBicmVhazsKKwljYXNlIDB4MDA6IHAgPSAidW5kZWZpbmVkIjsgYnJlYWs7CisJY2FzZSAweDAxOiBwID0gIkJUU0MiOyBicmVhazsKKwljYXNlIDB4MDI6IHAgPSAiRUlBSiI7IGJyZWFrOworCWNhc2UgMHgwMzogcCA9ICJBMi1NIjsgYnJlYWs7CisJY2FzZSAweDA0OiBwID0gIkEyLUJHIjsgYnJlYWs7CisJY2FzZSAweDA1OiBwID0gIkEyLURLMSI7IGJyZWFrOworCWNhc2UgMHgwNjogcCA9ICJBMi1ESzIiOyBicmVhazsKKwljYXNlIDB4MDc6IHAgPSAiQTItREszIjsgYnJlYWs7CisJY2FzZSAweDA4OiBwID0gIkExICg2LjAgTUh6IEZNIE1vbm8pIjsgYnJlYWs7CisJY2FzZSAweDA5OiBwID0gIkFNLUwiOyBicmVhazsKKwljYXNlIDB4MGE6IHAgPSAiTklDQU0tQkciOyBicmVhazsKKwljYXNlIDB4MGI6IHAgPSAiTklDQU0tREsiOyBicmVhazsKKwljYXNlIDB4MGM6IHAgPSAiTklDQU0tSSI7IGJyZWFrOworCWNhc2UgMHgwZDogcCA9ICJOSUNBTS1MIjsgYnJlYWs7CisJY2FzZSAweDBlOiBwID0gIkZNIHJhZGlvIjsgYnJlYWs7CiAJY2FzZSAweDBmOiBwID0gImF1dG9tYXRpYyBkZXRlY3Rpb24iOyBicmVhazsKLQlkZWZhdWx0OiBwID0gInVuZGVmaW5lZCI7CisJZGVmYXVsdDogcCA9ICJ1bmRlZmluZWQiOyBicmVhazsKIAl9CiAJQ1gxOF9JTkZPKCJDb25maWd1cmVkIGF1ZGlvIHN0YW5kYXJkOiAlc1xuIiwgcCk7CiAKQEAgLTgxNSwxMiArODc4LDkgQEAKIAkJY2FzZSAweDAyOiBwID0gIk1PTk8zIChTVEVSRU8gZm9yY2VkIE1PTk8pIjsgYnJlYWs7CiAJCWNhc2UgMHgwMzogcCA9ICJNT05PNCAoTklDQU0gQU5BTE9HLUxhbmd1YWdlIEMvQW5hbG9nIEZhbGxiYWNrKSI7IGJyZWFrOwogCQljYXNlIDB4MDQ6IHAgPSAiU1RFUkVPIjsgYnJlYWs7Ci0JCWNhc2UgMHgwNTogcCA9ICJEVUFMMSAoQUIpIjsgYnJlYWs7Ci0JCWNhc2UgMHgwNjogcCA9ICJEVUFMMiAoQUMpIChGTSkiOyBicmVhazsKLQkJY2FzZSAweDA3OiBwID0gIkRVQUwzIChCQykgKEZNKSI7IGJyZWFrOwotCQljYXNlIDB4MDg6IHAgPSAiRFVBTDQgKEFDKSAoQU0pIjsgYnJlYWs7Ci0JCWNhc2UgMHgwOTogcCA9ICJEVUFMNSAoQkMpIChBTSkiOyBicmVhazsKLQkJY2FzZSAweDBhOiBwID0gIlNBUCI7IGJyZWFrOworCQljYXNlIDB4MDU6IHAgPSAiRFVBTDEgKEFDKSI7IGJyZWFrOworCQljYXNlIDB4MDY6IHAgPSAiRFVBTDIgKEJDKSI7IGJyZWFrOworCQljYXNlIDB4MDc6IHAgPSAiRFVBTDMgKEFCKSI7IGJyZWFrOwogCQlkZWZhdWx0OiBwID0gInVuZGVmaW5lZCI7CiAJCX0KIAkJQ1gxOF9JTkZPKCJDb25maWd1cmVkIGF1ZGlvIG1vZGU6ICAgICAlc1xuIiwgcCk7CkBAIC04MzUsOSArODk1LDExIEBACiAJCWNhc2UgMHgwNjogcCA9ICJCVFNDIjsgYnJlYWs7CiAJCWNhc2UgMHgwNzogcCA9ICJFSUFKIjsgYnJlYWs7CiAJCWNhc2UgMHgwODogcCA9ICJBMi1NIjsgYnJlYWs7Ci0JCWNhc2UgMHgwOTogcCA9ICJGTSBSYWRpbyI7IGJyZWFrOworCQljYXNlIDB4MDk6IHAgPSAiRk0gUmFkaW8gKDQuNSBNSHopIjsgYnJlYWs7CisJCWNhc2UgMHgwYTogcCA9ICJGTSBSYWRpbyAoNS41IE1IeikiOyBicmVhazsKKwkJY2FzZSAweDBiOiBwID0gIlMtVmlkZW8iOyBicmVhazsKIAkJY2FzZSAweDBmOiBwID0gImF1dG9tYXRpYyBzdGFuZGFyZCBhbmQgbW9kZSBkZXRlY3Rpb24iOyBicmVhazsKLQkJZGVmYXVsdDogcCA9ICJ1bmRlZmluZWQiOworCQlkZWZhdWx0OiBwID0gInVuZGVmaW5lZCI7IGJyZWFrOwogCQl9CiAJCUNYMThfSU5GTygiQ29uZmlndXJlZCBhdWRpbyBzeXN0ZW06ICAgJXNcbiIsIHApOwogCX0KQEAgLTg1NywyMiArOTE5LDI0IEBACiAJY2FzZSA1OiBwID0gImxhbmd1YWdlIEFDIjsgYnJlYWs7CiAJY2FzZSA2OiBwID0gImxhbmd1YWdlIEJDIjsgYnJlYWs7CiAJY2FzZSA3OiBwID0gImxhbmd1YWdlIEFCIjsgYnJlYWs7Ci0JZGVmYXVsdDogcCA9ICJ1bmRlZmluZWQiOworCWRlZmF1bHQ6IHAgPSAidW5kZWZpbmVkIjsgYnJlYWs7CiAJfQogCUNYMThfSU5GTygiUHJlZmVycmVkIGF1ZGlvIG1vZGU6ICAgICAgJXNcbiIsIHApOwogCiAJaWYgKChhdWRpb19jb25maWcgJiAweGYpID09IDB4ZikgewotCQlzd2l0Y2ggKChhZmMwID4+IDIpICYgMHgxKSB7CisJCXN3aXRjaCAoKGFmYzAgPj4gMykgJiAweDEpIHsKIAkJY2FzZSAwOiBwID0gInN5c3RlbSBESyI7IGJyZWFrOwogCQljYXNlIDE6IHAgPSAic3lzdGVtIEwiOyBicmVhazsKIAkJfQogCQlDWDE4X0lORk8oIlNlbGVjdGVkIDY1IE1IeiBmb3JtYXQ6ICAgICVzXG4iLCBwKTsKIAotCQlzd2l0Y2ggKGFmYzAgJiAweDMpIHsKLQkJY2FzZSAwOiBwID0gIkJUU0MiOyBicmVhazsKLQkJY2FzZSAxOiBwID0gIkVJQUoiOyBicmVhazsKLQkJY2FzZSAyOiBwID0gIkEyLU0iOyBicmVhazsKLQkJZGVmYXVsdDogcCA9ICJ1bmRlZmluZWQiOworCQlzd2l0Y2ggKGFmYzAgJiAweDcpIHsKKwkJY2FzZSAwOiBwID0gIkNocm9tYSI7IGJyZWFrOworCQljYXNlIDE6IHAgPSAiQlRTQyI7IGJyZWFrOworCQljYXNlIDI6IHAgPSAiRUlBSiI7IGJyZWFrOworCQljYXNlIDM6IHAgPSAiQTItTSI7IGJyZWFrOworCQljYXNlIDQ6IHAgPSAiYXV0b2RldGVjdCI7IGJyZWFrOworCQlkZWZhdWx0OiBwID0gInVuZGVmaW5lZCI7IGJyZWFrOwogCQl9CiAJCUNYMThfSU5GTygiU2VsZWN0ZWQgNDUgTUh6IGZvcm1hdDogICAgJXNcbiIsIHApOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWNvcmUuaAppbmRleCA3ODY5MDFkLi5jMTcyODIzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1jb3JlLmgKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtY29yZS5oCkBAIC0zNywxMiArMzcsMTYgQEAKIAlDWDE4X0FWX0NPTVBPU0lURTcsCiAJQ1gxOF9BVl9DT01QT1NJVEU4LAogCi0JLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluNCkgT1JlZCB3aXRoIG9uZQorCS8qIFMtVmlkZW8gaW5wdXRzIGNvbnNpc3Qgb2Ygb25lIGx1bWEgaW5wdXQgKEluMS1JbjgpIE9SZWQgd2l0aCBvbmUKIAkgICBjaHJvbWEgaW5wdXQgKEluNS1JbjgpICovCiAJQ1gxOF9BVl9TVklERU9fTFVNQTEgPSAweDEwLAogCUNYMThfQVZfU1ZJREVPX0xVTUEyID0gMHgyMCwKIAlDWDE4X0FWX1NWSURFT19MVU1BMyA9IDB4MzAsCiAJQ1gxOF9BVl9TVklERU9fTFVNQTQgPSAweDQwLAorCUNYMThfQVZfU1ZJREVPX0xVTUE1ID0gMHg1MCwKKwlDWDE4X0FWX1NWSURFT19MVU1BNiA9IDB4NjAsCisJQ1gxOF9BVl9TVklERU9fTFVNQTcgPSAweDcwLAorCUNYMThfQVZfU1ZJREVPX0xVTUE4ID0gMHg4MCwKIAlDWDE4X0FWX1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCiAJQ1gxOF9BVl9TVklERU9fQ0hST01BNSA9IDB4NTAwLAogCUNYMThfQVZfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKQEAgLTI5MSwxNCArMjk1LDI0IEBACiAjZGVmaW5lIENYQURFQ19TRUxFQ1RfQVVESU9fU1RBTkRBUkRfRk0gICAgMHhGOSAgLyogRk0gcmFkaW8gKi8KICNkZWZpbmUgQ1hBREVDX1NFTEVDVF9BVURJT19TVEFOREFSRF9BVVRPICAweEZGICAvKiBBdXRvIGRldGVjdCAqLwogCisvKiBGbGFncyBvbiB3aGF0IHRvIHByZXNlcnZlIG9uIHdyaXRlIHRvIDB4NDAwLTB4NDAzIHdpdGggY3gxOF9hdl8uKl9ub19hY2ZnKCkqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19BRkUJMHgwMSAvKiBQcmVzZXJ2ZSAweDEwMC0weDEwNyAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19QTEwJMHgwMiAvKiBQcmVzZXJ2ZSAweDEwOC0weDEwZiAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19WSUQJMHgwNCAvKiBQcmVzZXJ2ZSAweDQ3MC0weDQ3ZiAqLworI2RlZmluZSBDWEFERUNfTk9fQUNGR19BTEwJMHgwNworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogY3gxOF9hdi1jb3JlLmMgCQkJCQkJCSAgICovCiBpbnQgY3gxOF9hdl93cml0ZShzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1OCB2YWx1ZSk7CiBpbnQgY3gxOF9hdl93cml0ZTQoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTMyIHZhbHVlKTsKK2ludCBjeDE4X2F2X3dyaXRlX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdTggdmFsdWUsCisJCQkJaW50IG5vX2FjZmdfbWFzayk7CiB1OCBjeDE4X2F2X3JlYWQoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkcik7CiB1MzIgY3gxOF9hdl9yZWFkNChzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyKTsKIGludCBjeDE4X2F2X2FuZF9vcihzdHJ1Y3QgY3gxOCAqY3gsIHUxNiBhZGRyLCB1bnNpZ25lZCBtYXNrLCB1OCB2YWx1ZSk7CiBpbnQgY3gxOF9hdl9hbmRfb3I0KHN0cnVjdCBjeDE4ICpjeCwgdTE2IGFkZHIsIHUzMiBtYXNrLCB1MzIgdmFsdWUpOworaW50IGN4MThfYXZfYW5kX29yX25vX2FjZmcoc3RydWN0IGN4MTggKmN4LCB1MTYgYWRkciwgdW5zaWduZWQgbWFzaywgdTggdmFsdWUsCisJCQkJaW50IG5vX2FjZmdfbWFzayk7CiBpbnQgY3gxOF9hdl9jbWQoc3RydWN0IGN4MTggKmN4LCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICphcmcpOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtZmlybXdhcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWF2LWZpcm13YXJlLmMKaW5kZXggNTI2ZTE0Mi4uYTFhNmFmNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtYXYtZmlybXdhcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1hdi1maXJtd2FyZS5jCkBAIC0yOSw3ICsyOSw3IEBACiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyA9IE5VTEw7CiAJdTMyIHNpemU7CiAJdTMyIHY7Ci0JdTggKnB0cjsKKwljb25zdCB1OCAqcHRyOwogCWludCBpOwogCiAJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBGV0ZJTEUsICZjeC0+ZGV2LT5kZXYpICE9IDApIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5jCmluZGV4IDU1M2FkYmYuLmMyNmUwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuYwpAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAiY3gxOC1kcml2ZXIuaCIKICNpbmNsdWRlICJjeDE4LWNhcmRzLmgiCisjaW5jbHVkZSAiY3gxOC1hdi1jb3JlLmgiCiAjaW5jbHVkZSAiY3gxOC1pMmMuaCIKICNpbmNsdWRlIDxtZWRpYS9jczUzNDUuaD4KIApAQCAtNTQsMjIgKzU1LDIyIEBACiAJLmh3X2FsbCA9IENYMThfSFdfVFZFRVBST00gfCBDWDE4X0hXX1RVTkVSIHwKIAkJICBDWDE4X0hXX0NTNTM0NSB8IENYMThfSFdfRFZCLAogCS52aWRlb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMjM0MThfQ09NUE9TSVRFNyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDIzNDE4X1NWSURFTzEgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUzIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsIENYMjM0MThfU1ZJREVPMiAgICB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyLCAyLCBDWDIzNDE4X0NPTVBPU0lURTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gxOF9BVl9DT01QT1NJVEU3IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsIENYMThfQVZfU1ZJREVPMSAgICB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDE4X0FWX0NPTVBPU0lURTMgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwgQ1gxOF9BVl9TVklERU8yICAgIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTIsIDIsIENYMThfQVZfQ09NUE9TSVRFNCB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKIAkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAorCQkgIENYMThfQVZfQVVESU84LCBDUzUzNDVfSU5fMSB8IENTNTM0NV9NQ0xLXzFfNSB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKKwkJICBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzIgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjIsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCisJCSAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8zIH0sCiAJfSwKIAkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJCSBDWDE4X0FWX0FVRElPX1NFUklBTCwgQ1M1MzQ1X0lOXzQgfSwKIAkuZGRyID0gewogCQkvKiBFU01UIE0xM1MxMjgzMjRBLTVCIG1lbW9yeSAqLwogCQkuY2hpcF9jb25maWcgPSAweDAwMywKQEAgLTgxLDYgKzgyLDExIEBACiAJfSwKIAkuZ3Bpb19pbml0LmluaXRpYWxfdmFsdWUgPSAweDMwMDEsCiAJLmdwaW9faW5pdC5kaXJlY3Rpb24gPSAweDMwMDEsCisJLmdwaW9faTJjX3NsYXZlX3Jlc2V0ID0geworCQkuYWN0aXZlX2xvX21hc2sgPSAweDMwMDEsCisJCS5tc2Vjc19hc3NlcnRlZCA9IDEwLAorCQkubXNlY3NfcmVjb3ZlcnkgPSA0MCwKKwl9LAogCS5pMmMgPSAmY3gxOF9pMmNfc3RkLAogfTsKIApAQCAtOTQsMjIgKzEwMCwyMiBAQAogCS5od19hbGwgPSBDWDE4X0hXX1RWRUVQUk9NIHwgQ1gxOF9IV19UVU5FUiB8CiAJCSAgQ1gxOF9IV19DUzUzNDUgfCBDWDE4X0hXX0RWQiwKIAkudmlkZW9faW5wdXRzID0gewotCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDIzNDE4X0NPTVBPU0lURTcgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMSwgICAgMSwgQ1gyMzQxOF9TVklERU8xICAgIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTEsIDEsIENYMjM0MThfQ09NUE9TSVRFMyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8yLCAgICAyLCBDWDIzNDE4X1NWSURFTzIgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiwgMiwgQ1gyMzQxOF9DT01QT1NJVEU0IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMThfQVZfQ09NUE9TSVRFNyB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDE4X0FWX1NWSURFTzEgICAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gxOF9BVl9DT01QT1NJVEUzIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzIsICAgIDIsIENYMThfQVZfU1ZJREVPMiAgICB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyLCAyLCBDWDE4X0FWX0NPTVBPU0lURTQgfSwKIAl9LAogCS5hdWRpb19pbnB1dHMgPSB7CiAJCXsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwKLQkJICBDWDIzNDE4X0FVRElPOCwgQ1M1MzQ1X0lOXzEgfCBDUzUzNDVfTUNMS18xXzUgfSwKKwkJICBDWDE4X0FWX0FVRElPOCwgQ1M1MzQ1X0lOXzEgfCBDUzUzNDVfTUNMS18xXzUgfSwKIAkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEsCi0JCSAgQ1gyMzQxOF9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCisJCSAgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl8yIH0sCiAJCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4yLAotCQkgIENYMjM0MThfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMiB9LAorCQkgIENYMThfQVZfQVVESU9fU0VSSUFMLCBDUzUzNDVfSU5fMyB9LAogCX0sCiAJLnJhZGlvX2lucHV0ID0geyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkJIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJCQkgQ1gxOF9BVl9BVURJT19TRVJJQUwsIENTNTM0NV9JTl80IH0sCiAJLmRkciA9IHsKIAkJLyogU2Ftc3VuZyBLNEQyNjMyMzhHLVZDMzMgbWVtb3J5ICovCiAJCS5jaGlwX2NvbmZpZyA9IDB4MDAzLApAQCAtMTIxLDEyICsxMjcsMTcgQEAKIAl9LAogCS5ncGlvX2luaXQuaW5pdGlhbF92YWx1ZSA9IDB4MzAwMSwKIAkuZ3Bpb19pbml0LmRpcmVjdGlvbiA9IDB4MzAwMSwKKwkuZ3Bpb19pMmNfc2xhdmVfcmVzZXQgPSB7CisJCS5hY3RpdmVfbG9fbWFzayA9IDB4MzAwMSwKKwkJLm1zZWNzX2Fzc2VydGVkID0gMTAsCisJCS5tc2Vjc19yZWNvdmVyeSA9IDQwLAorCX0sCiAJLmkyYyA9ICZjeDE4X2kyY19zdGQsCiB9OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLS8qIENvbXBybyBWaWRlb01hdGUgSDkwMDogbm90IHdvcmtpbmcgYXQgdGhlIG1vbWVudCEgKi8KKy8qIENvbXBybyBWaWRlb01hdGUgSDkwMDogbm90ZSB0aGF0IHRoaXMgY2FyZCBpcyBhbmFsb2cgb25seSEgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBjeDE4X2NhcmRfcGNpX2luZm8gY3gxOF9wY2lfaDkwMFtdID0gewogCXsgUENJX0RFVklDRV9JRF9DWDIzNDE4LCBDWDE4X1BDSV9JRF9DT01QUk8sIDB4ZTEwMCB9LApAQCAtMTM2LDI0ICsxNDcsMjQgQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY3gxOF9jYXJkIGN4MThfY2FyZF9oOTAwID0gewogCS50eXBlID0gQ1gxOF9DQVJEX0NPTVBST19IOTAwLAogCS5uYW1lID0gIkNvbXBybyBWaWRlb01hdGUgSDkwMCIsCi0JLmNvbW1lbnQgPSAiRFZCICYgVkJJIGFyZSBub3QgeWV0IHN1cHBvcnRlZFxuIiwKKwkuY29tbWVudCA9ICJWQkkgaXMgbm90IHlldCBzdXBwb3J0ZWRcbiIsCiAJLnY0bDJfY2FwYWJpbGl0aWVzID0gQ1gxOF9DQVBfRU5DT0RFUiwKIAkuaHdfYXVkaW9fY3RybCA9IENYMThfSFdfQ1gyMzQxOCwKIAkuaHdfYWxsID0gQ1gxOF9IV19UVU5FUiwKIAkudmlkZW9faW5wdXRzID0gewotCQl7IENYMThfQ0FSRF9JTlBVVF9WSURfVFVORVIsICAwLCBDWDIzNDE4X0NPTVBPU0lURTIgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfVklEX1RVTkVSLCAgMCwgQ1gxOF9BVl9DT01QT1NJVEUyIH0sCiAJCXsgQ1gxOF9DQVJEX0lOUFVUX1NWSURFTzEsICAgIDEsCi0JCQlDWDIzNDE4X1NWSURFT19MVU1BMyB8IENYMjM0MThfU1ZJREVPX0NIUk9NQTQgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUxIH0sCisJCQlDWDE4X0FWX1NWSURFT19MVU1BMyB8IENYMThfQVZfU1ZJREVPX0NIUk9NQTQgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gxOF9BVl9DT01QT1NJVEUxIH0sCiAJfSwKIAkuYXVkaW9faW5wdXRzID0gewogCQl7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCSAgQ1gyMzQxOF9BVURJTzgsIDAgfSwKKwkJICBDWDE4X0FWX0FVRElPOCwgMCB9LAogCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSwKLQkJICBDWDIzNDE4X0FVRElPX1NFUklBTCwgMCB9LAorCQkgIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJfSwKIAkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkJCSBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAogCS50dW5lcnMgPSB7CiAJCXsgLnN0ZCA9IFY0TDJfU1REX0FMTCwgLnR1bmVyID0gVFVORVJfWEMyMDI4IH0sCiAJfSwKQEAgLTE4MywyMyArMTk0LDI2IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGN4MThfY2FyZCBjeDE4X2NhcmRfbXBjNzE4ID0gewogCS50eXBlID0gQ1gxOF9DQVJEX1lVQU5fTVBDNzE4LAogCS5uYW1lID0gIll1YW4gTVBDNzE4IiwKLQkuY29tbWVudCA9ICJOb3QgeWV0IHN1cHBvcnRlZCFcbiIsCi0JLnY0bDJfY2FwYWJpbGl0aWVzID0gMCwKKwkuY29tbWVudCA9ICJTb21lIENvbXBvc2l0ZSBhbmQgUy1WaWRlbyBpbnB1dHMgYXJlIGN1cnJlbnRseSB3b3JraW5nLlxuIiwKKwkudjRsMl9jYXBhYmlsaXRpZXMgPSBDWDE4X0NBUF9FTkNPREVSLAogCS5od19hdWRpb19jdHJsID0gQ1gxOF9IV19DWDIzNDE4LAogCS5od19hbGwgPSBDWDE4X0hXX1RVTkVSLAogCS52aWRlb19pbnB1dHMgPSB7Ci0JCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMjM0MThfQ09NUE9TSVRFNyB9LAotCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLCBDWDIzNDE4X1NWSURFTzEgICAgfSwKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMSwgMSwgQ1gyMzQxOF9DT01QT1NJVEUzIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX1ZJRF9UVU5FUiwgIDAsIENYMThfQVZfQ09NUE9TSVRFMiB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9TVklERU8xLCAgICAxLAorCQkJCUNYMThfQVZfU1ZJREVPX0xVTUEzIHwgQ1gxOF9BVl9TVklERU9fQ0hST01BNCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUxLCAxLCBDWDE4X0FWX0NPTVBPU0lURTEgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfU1ZJREVPMiwgICAgMiwKKwkJCQlDWDE4X0FWX1NWSURFT19MVU1BNyB8IENYMThfQVZfU1ZJREVPX0NIUk9NQTggfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfQ09NUE9TSVRFMiwgMiwgQ1gxOF9BVl9DT01QT1NJVEU2IH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0NPTVBPU0lURTMsIDIsIENYMThfQVZfQ09NUE9TSVRFMyB9LAogCX0sCiAJLmF1ZGlvX2lucHV0cyA9IHsKLQkJeyBDWDE4X0NBUkRfSU5QVVRfQVVEX1RVTkVSLAotCQkgIENYMjM0MThfQVVESU84LCAwIH0sCi0JCXsgQ1gxOF9DQVJEX0lOUFVUX0xJTkVfSU4xLAotCQkgIENYMjM0MThfQVVESU9fU0VSSUFMLCAwIH0sCisJCXsgQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUiwgQ1gxOF9BVl9BVURJTzUsICAgICAgIDAgfSwKKwkJeyBDWDE4X0NBUkRfSU5QVVRfTElORV9JTjEsICBDWDE4X0FWX0FVRElPX1NFUklBTCwgMCB9LAorCQl7IENYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMiwgIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJfSwKLQkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsCi0JCQkgQ1gyMzQxOF9BVURJT19TRVJJQUwsIDAgfSwKKwkucmFkaW9faW5wdXQgPSB7IENYMThfQ0FSRF9JTlBVVF9BVURfVFVORVIsIENYMThfQVZfQVVESU9fU0VSSUFMLCAwIH0sCiAJLnR1bmVycyA9IHsKIAkJLyogWEMzMDI4IHR1bmVyICovCiAJCXsgLnN0ZCA9IFY0TDJfU1REX0FMTCwgLnR1bmVyID0gVFVORVJfWEMyMDI4IH0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY2FyZHMuaAppbmRleCBiY2NiNjdmLi5kYzJkZDk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jYXJkcy5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNhcmRzLmgKQEAgLTM2LDM2ICszNiw2IEBACiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUyIAk1CiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9DT01QT1NJVEUzIAk2CiAKLWVudW0gY3gzNDE4MF92aWRlb19pbnB1dCB7Ci0JLyogQ29tcG9zaXRlIHZpZGVvIGlucHV0cyBJbjEtSW44ICovCi0JQ1gyMzQxOF9DT01QT1NJVEUxID0gMSwKLQlDWDIzNDE4X0NPTVBPU0lURTIsCi0JQ1gyMzQxOF9DT01QT1NJVEUzLAotCUNYMjM0MThfQ09NUE9TSVRFNCwKLQlDWDIzNDE4X0NPTVBPU0lURTUsCi0JQ1gyMzQxOF9DT01QT1NJVEU2LAotCUNYMjM0MThfQ09NUE9TSVRFNywKLQlDWDIzNDE4X0NPTVBPU0lURTgsCi0KLQkvKiBTLVZpZGVvIGlucHV0cyBjb25zaXN0IG9mIG9uZSBsdW1hIGlucHV0IChJbjEtSW40KSBPUmVkIHdpdGggb25lCi0JICAgY2hyb21hIGlucHV0IChJbjUtSW44KSAqLwotCUNYMjM0MThfU1ZJREVPX0xVTUExID0gMHgxMCwKLQlDWDIzNDE4X1NWSURFT19MVU1BMiA9IDB4MjAsCi0JQ1gyMzQxOF9TVklERU9fTFVNQTMgPSAweDMwLAotCUNYMjM0MThfU1ZJREVPX0xVTUE0ID0gMHg0MCwKLQlDWDIzNDE4X1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BNSA9IDB4NTAwLAotCUNYMjM0MThfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKLQlDWDIzNDE4X1NWSURFT19DSFJPTUE3ID0gMHg3MDAsCi0JQ1gyMzQxOF9TVklERU9fQ0hST01BOCA9IDB4ODAwLAotCi0JLyogUy1WaWRlbyBhbGlhc2VzIGZvciBjb21tb24gbHVtYS9jaHJvbWEgY29tYmluYXRpb25zICovCi0JQ1gyMzQxOF9TVklERU8xID0gMHg1MTAsCi0JQ1gyMzQxOF9TVklERU8yID0gMHg2MjAsCi0JQ1gyMzQxOF9TVklERU8zID0gMHg3MzAsCi0JQ1gyMzQxOF9TVklERU80ID0gMHg4NDAsCi19OwotCiAvKiBhdWRpbyBpbnB1dHMgKi8KICNkZWZpbmUJQ1gxOF9DQVJEX0lOUFVUX0FVRF9UVU5FUgkxCiAjZGVmaW5lCUNYMThfQ0FSRF9JTlBVVF9MSU5FX0lOMSAJMgpAQCAtNzUsMTYgKzQ1LDYgQEAKICNkZWZpbmUgQ1gxOF9DQVJEX01BWF9BVURJT19JTlBVVFMgMwogI2RlZmluZSBDWDE4X0NBUkRfTUFYX1RVTkVSUyAgCSAgIDIKIAotZW51bSBjeDIzNDE4X2F1ZGlvX2lucHV0IHsKLQkvKiBBdWRpbyBpbnB1dHM6IHNlcmlhbCBvciBJbjQtSW44ICovCi0JQ1gyMzQxOF9BVURJT19TRVJJQUwsCi0JQ1gyMzQxOF9BVURJTzQgPSA0LAotCUNYMjM0MThfQVVESU81LAotCUNYMjM0MThfQVVESU82LAotCUNYMjM0MThfQVVESU83LAotCUNYMjM0MThfQVVESU84LAotfTsKLQogLyogVjRMMiBjYXBhYmlsaXR5IGFsaWFzZXMgKi8KICNkZWZpbmUgQ1gxOF9DQVBfRU5DT0RFUiAoVjRMMl9DQVBfVklERU9fQ0FQVFVSRSB8IFY0TDJfQ0FQX1RVTkVSIHwgXAogCQkJICBWNEwyX0NBUF9BVURJTyB8IFY0TDJfQ0FQX1JFQURXUklURSkKQEAgLTExOCw2ICs3OCwxMyBAQAogCXUzMiBpbml0aWFsX3ZhbHVlOwogfTsKIAorc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgeworCXUzMiBhY3RpdmVfbG9fbWFzazsgLyogR1BJTyBvdXRwdXRzIHRoYXQgcmVzZXQgaTJjIGNoaXBzIHdoZW4gbG93ICovCisJdTMyIGFjdGl2ZV9oaV9tYXNrOyAvKiBHUElPIG91dHB1dHMgdGhhdCByZXNldCBpMmMgY2hpcHMgd2hlbiBoaWdoICovCisJaW50IG1zZWNzX2Fzc2VydGVkOyAvKiB0aW1lIHBlcmlvZCByZXNldCBtdXN0IHJlbWFpbiBhc3NlcnRlZCAqLworCWludCBtc2Vjc19yZWNvdmVyeTsgLyogdGltZSBhZnRlciBkZWFzc2VydCBmb3IgY2hpcHMgdG8gYmUgcmVhZHkgKi8KK307CisKIHN0cnVjdCBjeDE4X2NhcmRfdHVuZXIgewogCXY0bDJfc3RkX2lkIHN0ZDsgCS8qIHN0YW5kYXJkIGZvciB3aGljaCB0aGUgdHVuZXIgaXMgc3VpdGFibGUgKi8KIAlpbnQgCSAgICB0dW5lcjsgCS8qIHR1bmVyIElEIChmcm9tIHR1bmVyLmgpICovCkBAIC0xNTQsNyArMTIxLDggQEAKIAogCS8qIEdQSU8gY2FyZC1zcGVjaWZpYyBzZXR0aW5ncyAqLwogCXU4IHhjZWl2ZV9waW47IAkJLyogWENlaXZlIHR1bmVyIEdQSU8gcmVzZXQgcGluICovCi0Jc3RydWN0IGN4MThfZ3Bpb19pbml0IAkJZ3Bpb19pbml0OworCXN0cnVjdCBjeDE4X2dwaW9faW5pdCAJCSBncGlvX2luaXQ7CisJc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgZ3Bpb19pMmNfc2xhdmVfcmVzZXQ7CiAKIAlzdHJ1Y3QgY3gxOF9jYXJkX3R1bmVyIHR1bmVyc1tDWDE4X0NBUkRfTUFYX1RVTkVSU107CiAJc3RydWN0IGN4MThfY2FyZF90dW5lcl9pMmMgKmkyYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNvbnRyb2xzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1jb250cm9scy5jCmluZGV4IDJiZGFjNWUuLjg3Y2Y0MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWNvbnRyb2xzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtY29udHJvbHMuYwpAQCAtMTU5LDcgKzE1OSw3IEBACiB7CiAJaWYgKCEoY3gtPnY0bDJfY2FwICYgVjRMMl9DQVBfU0xJQ0VEX1ZCSV9DQVBUVVJFKSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JaWYgKGF0b21pY19yZWFkKCZjeC0+Y2FwdHVyaW5nKSA+IDApCisJaWYgKGF0b21pY19yZWFkKCZjeC0+YW5hX2NhcHR1cmluZykgPiAwKQogCQlyZXR1cm4gLUVCVVNZOwogCiAJLyogRmlyc3QgdHJ5IHRvIGFsbG9jYXRlIHNsaWNlZCBWQkkgYnVmZmVycyBpZiBuZWVkZWQuICovCkBAIC0yMzUsNyArMjM1LDcgQEAKIAkJQ1gxOF9ERUJVR19JT0NUTCgiVklESU9DX1NfRVhUX0NUUkxTXG4iKTsKIAkJaWYgKGMtPmN0cmxfY2xhc3MgPT0gVjRMMl9DVFJMX0NMQVNTX01QRUcpIHsKIAkJCXN0cnVjdCBjeDIzNDF4X21wZWdfcGFyYW1zIHAgPSBjeC0+cGFyYW1zOwotCQkJaW50IGVyciA9IGN4MjM0MXhfZXh0X2N0cmxzKCZwLCBhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZyksIGFyZywgY21kKTsKKwkJCWludCBlcnIgPSBjeDIzNDF4X2V4dF9jdHJscygmcCwgYXRvbWljX3JlYWQoJmN4LT5hbmFfY2FwdHVyaW5nKSwgYXJnLCBjbWQpOwogCiAJCQlpZiAoZXJyKQogCQkJCXJldHVybiBlcnI7CkBAIC0yOTUsNyArMjk1LDcgQEAKIAkJQ1gxOF9ERUJVR19JT0NUTCgiVklESU9DX1RSWV9FWFRfQ1RSTFNcbiIpOwogCQlpZiAoYy0+Y3RybF9jbGFzcyA9PSBWNEwyX0NUUkxfQ0xBU1NfTVBFRykKIAkJCXJldHVybiBjeDIzNDF4X2V4dF9jdHJscygmY3gtPnBhcmFtcywKLQkJCQkJYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpLCBhcmcsIGNtZCk7CisJCQkJCWF0b21pY19yZWFkKCZjeC0+YW5hX2NhcHR1cmluZyksIGFyZywgY21kKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kcml2ZXIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWRyaXZlci5jCmluZGV4IDBkZDRlMDUuLjJiODEwYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWRyaXZlci5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWRyaXZlci5jCkBAIC02NzAsNyArNjcwLDcgQEAKIAljeDE4X2luaXRfcG93ZXIoY3gsIDEpOwogCWN4MThfaW5pdF9tZW1vcnkoY3gpOwogCi0JY3gtPnNjYiA9IChzdHJ1Y3QgY3gxOF9zY2IgKikoY3gtPmVuY19tZW0gKyBTQ0JfT0ZGU0VUKTsKKwljeC0+c2NiID0gKHN0cnVjdCBjeDE4X3NjYiBfX2lvbWVtICopKGN4LT5lbmNfbWVtICsgU0NCX09GRlNFVCk7CiAJY3gxOF9pbml0X3NjYihjeCk7CiAKIAljeDE4X2dwaW9faW5pdChjeCk7CkBAIC03NTEsMTcgKzc1MSw2IEBACiAJaWYgKGN4LT5vcHRpb25zLnJhZGlvID4gMCkKIAkJY3gtPnY0bDJfY2FwIHw9IFY0TDJfQ0FQX1JBRElPOwogCi0JcmV0dmFsID0gY3gxOF9zdHJlYW1zX3NldHVwKGN4KTsKLQlpZiAocmV0dmFsKSB7Ci0JCUNYMThfRVJSKCJFcnJvciAlZCBzZXR0aW5nIHVwIHN0cmVhbXNcbiIsIHJldHZhbCk7Ci0JCWdvdG8gZnJlZV9pcnE7Ci0JfQotCXJldHZhbCA9IGN4MThfc3RyZWFtc19yZWdpc3RlcihjeCk7Ci0JaWYgKHJldHZhbCkgewotCQlDWDE4X0VSUigiRXJyb3IgJWQgcmVnaXN0ZXJpbmcgZGV2aWNlc1xuIiwgcmV0dmFsKTsKLQkJZ290byBmcmVlX3N0cmVhbXM7Ci0JfQotCiAJaWYgKGN4LT5vcHRpb25zLnR1bmVyID4gLTEpIHsKIAkJc3RydWN0IHR1bmVyX3NldHVwIHNldHVwOwogCkBAIC03ODgsNyArNzc3LDE2IEBACiAJICAgYXJlIG5vdC4gKi8KIAljeC0+dHVuZXJfc3RkID0gY3gtPnN0ZDsKIAotCWN4MThfaW5pdF9vbl9maXJzdF9vcGVuKGN4KTsKKwlyZXR2YWwgPSBjeDE4X3N0cmVhbXNfc2V0dXAoY3gpOworCWlmIChyZXR2YWwpIHsKKwkJQ1gxOF9FUlIoIkVycm9yICVkIHNldHRpbmcgdXAgc3RyZWFtc1xuIiwgcmV0dmFsKTsKKwkJZ290byBmcmVlX2lycTsKKwl9CisJcmV0dmFsID0gY3gxOF9zdHJlYW1zX3JlZ2lzdGVyKGN4KTsKKwlpZiAocmV0dmFsKSB7CisJCUNYMThfRVJSKCJFcnJvciAlZCByZWdpc3RlcmluZyBkZXZpY2VzXG4iLCByZXR2YWwpOworCQlnb3RvIGZyZWVfc3RyZWFtczsKKwl9CiAKIAlDWDE4X0lORk8oIkluaXRpYWxpemVkIGNhcmQgIyVkOiAlc1xuIiwgY3gtPm51bSwgY3gtPmNhcmRfbmFtZSk7CiAKQEAgLTg4OSw3ICs4ODcsNyBAQAogCiAJLyogU3RvcCBhbGwgY2FwdHVyZXMgKi8KIAlDWDE4X0RFQlVHX0lORk8oIlN0b3BwaW5nIGFsbCBzdHJlYW1zXG4iKTsKLQlpZiAoYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpID4gMCkKKwlpZiAoYXRvbWljX3JlYWQoJmN4LT50b3RfY2FwdHVyaW5nKSA+IDApCiAJCWN4MThfc3RvcF9hbGxfY2FwdHVyZXMoY3gpOwogCiAJLyogSW50ZXJydXB0cyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZHJpdmVyLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kcml2ZXIuaAppbmRleCBhMmE2YzU4Li5kZTE0YWI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kcml2ZXIuaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kcml2ZXIuaApAQCAtMzU4LDcgKzM1OCw3IEBACiAJdTMyIHY0bDJfY2FwOwkJLyogVjRMMiBjYXBhYmlsaXRpZXMgb2YgY2FyZCAqLwogCXUzMiBod19mbGFnczsgCQkvKiBIYXJkd2FyZSBkZXNjcmlwdGlvbiBvZiB0aGUgYm9hcmQgKi8KIAl1bnNpZ25lZCBtZGxfb2Zmc2V0OwotCXN0cnVjdCBjeDE4X3NjYiAqc2NiOyAgIC8qIHBvaW50ZXIgdG8gU0NCICovCisJc3RydWN0IGN4MThfc2NiIF9faW9tZW0gKnNjYjsgICAvKiBwb2ludGVyIHRvIFNDQiAqLwogCiAJc3RydWN0IGN4MThfYXZfc3RhdGUgYXZfc3RhdGU7CiAKQEAgLTM4MCw3ICszODAsOCBAQAogCWludCBzdHJlYW1fYnVmX3NpemVbQ1gxOF9NQVhfU1RSRUFNU107IC8qIFN0cmVhbSBidWZmZXIgc2l6ZSAqLwogCXN0cnVjdCBjeDE4X3N0cmVhbSBzdHJlYW1zW0NYMThfTUFYX1NUUkVBTVNdOyAJLyogU3RyZWFtIGRhdGEgKi8KIAl1bnNpZ25lZCBsb25nIGlfZmxhZ3M7ICAvKiBnbG9iYWwgY3gxOCBmbGFncyAqLwotCWF0b21pY190IGNhcHR1cmluZzsJLyogY291bnQgbnVtYmVyIG9mIGFjdGl2ZSBjYXB0dXJlIHN0cmVhbXMgKi8KKwlhdG9taWNfdCBhbmFfY2FwdHVyaW5nOwkvKiBjb3VudCBudW1iZXIgb2YgYWN0aXZlIGFuYWxvZyBjYXB0dXJlIHN0cmVhbXMgKi8KKwlhdG9taWNfdCB0b3RfY2FwdHVyaW5nOwkvKiB0b3RhbCBjb3VudCBudW1iZXIgb2YgYWN0aXZlIGNhcHR1cmUgc3RyZWFtcyAqLwogCXNwaW5sb2NrX3QgbG9jazsgICAgICAgIC8qIGxvY2sgYWNjZXNzIHRvIHRoaXMgc3RydWN0ICovCiAJaW50IHNlYXJjaF9wYWNrX2hlYWRlcjsKIApAQCAtNDIzLDYgKzQyNCwxMCBAQAogCXN0cnVjdCBtdXRleCBpMmNfYnVzX2xvY2tbMl07CiAJc3RydWN0IGkyY19jbGllbnQgKmkyY19jbGllbnRzW0kyQ19DTElFTlRTX01BWF07CiAKKwkvKiBncGlvICovCisJdTMyIGdwaW9fZGlyOworCXUzMiBncGlvX3ZhbDsKKwogCS8qIHY0bDIgYW5kIFVzZXIgc2V0dGluZ3MgKi8KIAogCS8qIGNvZGVjIHNldHRpbmdzICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCmluZGV4IGM5NzQ0MTcuLmNhZTM4OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWR2Yi5jCkBAIC02OSwxMSArNjksMjEgQEAKIAlzdHJ1Y3QgZHZiX2RlbXV4ICpkZW11eCA9IGZlZWQtPmRlbXV4OwogCXN0cnVjdCBjeDE4X3N0cmVhbSAqc3RyZWFtID0gKHN0cnVjdCBjeDE4X3N0cmVhbSAqKSBkZW11eC0+cHJpdjsKIAlzdHJ1Y3QgY3gxOCAqY3ggPSBzdHJlYW0tPmN4OwotCWludCByZXQgPSAtRUlOVkFMOworCWludCByZXQ7CiAJdTMyIHY7CiAKIAlDWDE4X0RFQlVHX0lORk8oIlN0YXJ0IGZlZWQ6IHBpZCA9IDB4JXggaW5kZXggPSAlZFxuIiwKIAkJCWZlZWQtPnBpZCwgZmVlZC0+aW5kZXgpOworCisJbXV0ZXhfbG9jaygmY3gtPnNlcmlhbGl6ZV9sb2NrKTsKKwlyZXQgPSBjeDE4X2luaXRfb25fZmlyc3Rfb3BlbihjeCk7CisJbXV0ZXhfdW5sb2NrKCZjeC0+c2VyaWFsaXplX2xvY2spOworCWlmIChyZXQpIHsKKwkJQ1gxOF9FUlIoIkZhaWxlZCB0byBpbml0aWFsaXplIGZpcm13YXJlIHN0YXJ0aW5nIERWQiBmZWVkXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gLUVJTlZBTDsKKwogCXN3aXRjaCAoY3gtPmNhcmQtPnR5cGUpIHsKIAljYXNlIENYMThfQ0FSRF9IVlJfMTYwMF9FU01UOgogCWNhc2UgQ1gxOF9DQVJEX0hWUl8xNjAwX1NBTVNVTkc6CkBAIC0xMDEsNiArMTExLDExIEBACiAJCWlmIChzdHJlYW0tPmR2Yi5mZWVkaW5nKysgPT0gMCkgewogCQkJQ1gxOF9ERUJVR19JTkZPKCJTdGFydGluZyBUcmFuc3BvcnQgRE1BXG4iKTsKIAkJCXJldCA9IGN4MThfc3RhcnRfdjRsMl9lbmNvZGVfc3RyZWFtKHN0cmVhbSk7CisJCQlpZiAocmV0IDwgMCkgeworCQkJCUNYMThfREVCVUdfSU5GTygKKwkJCQkJIkZhaWxlZCB0byBzdGFydCBUcmFuc3BvcnQgRE1BXG4iKTsKKwkJCQlzdHJlYW0tPmR2Yi5mZWVkaW5nLS07CisJCQl9CiAJCX0gZWxzZQogCQkJcmV0ID0gMDsKIAkJbXV0ZXhfdW5sb2NrKCZzdHJlYW0tPmR2Yi5mZWVkbG9jayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1maWxlb3BzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1maWxlb3BzLmMKaW5kZXggMGIzMTQxZC4uMWU1MzdmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZmlsZW9wcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWZpbGVvcHMuYwpAQCAtMzE4LDcgKzMxOCw3IEBACiAJc2l6ZV90IHRvdF93cml0dGVuID0gMDsKIAlpbnQgc2luZ2xlX2ZyYW1lID0gMDsKIAotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPT0gMCAmJiBzLT5pZCA9PSAtMSkgeworCWlmIChhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpID09IDAgJiYgcy0+aWQgPT0gLTEpIHsKIAkJLyogc2hvdWxkbid0IGhhcHBlbiAqLwogCQlDWDE4X0RFQlVHX1dBUk4oIlN0cmVhbSAlcyBub3QgaW5pdGlhbGl6ZWQgYmVmb3JlIHJlYWRcbiIsCiAJCQkJcy0+bmFtZSk7CkBAIC0zNjEsNyArMzYxLDggQEAKIAkJCQljeDE4X2VucXVldWUocywgYnVmLCAmcy0+cV9mcmVlKTsKIAkJCQljeDE4X3ZhcGkoY3gsIENYMThfQ1BVX0RFX1NFVF9NREwsIDUsCiAJCQkJCXMtPmhhbmRsZSwKLQkJCQkJKHZvaWQgKikmY3gtPnNjYi0+Y3B1X21kbFtidWYtPmlkXSAtIGN4LT5lbmNfbWVtLAorCQkJCQkodm9pZCBfX2lvbWVtICopJmN4LT5zY2ItPmNwdV9tZGxbYnVmLT5pZF0gLQorCQkJCQkgIGN4LT5lbmNfbWVtLAogCQkJCQkxLCBidWYtPmlkLCBzLT5idWZfc2l6ZSk7CiAJCQl9IGVsc2UKIAkJCQljeDE4X2VucXVldWUocywgYnVmLCAmcy0+cV9pbyk7CkBAIC01ODEsNyArNTgyLDcgQEAKIAkJY3gxOF9jYWxsX2kyY19jbGllbnRzKGN4LCBWSURJT0NfU19TVEQsICZjeC0+c3RkKTsKIAkJLyogU2VsZWN0IGNvcnJlY3QgYXVkaW8gaW5wdXQgKGkuZS4gVFYgdHVuZXIgb3IgTGluZSBpbikgKi8KIAkJY3gxOF9hdWRpb19zZXRfaW8oY3gpOwotCQlpZiAoYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpID4gMCkgeworCQlpZiAoYXRvbWljX3JlYWQoJmN4LT5hbmFfY2FwdHVyaW5nKSA+IDApIHsKIAkJCS8qIFVuZG8gdmlkZW8gbXV0ZSAqLwogCQkJY3gxOF92YXBpKGN4LCBDWDE4X0NQVV9TRVRfVklERU9fTVVURSwgMiwgcy0+aGFuZGxlLAogCQkJCWN4LT5wYXJhbXMudmlkZW9fbXV0ZSB8CkBAIC02MjcsNyArNjI4LDcgQEAKIAkJfQogCiAJCWlmICghdGVzdF9iaXQoQ1gxOF9GX0lfUkFESU9fVVNFUiwgJmN4LT5pX2ZsYWdzKSkgewotCQkJaWYgKGF0b21pY19yZWFkKCZjeC0+Y2FwdHVyaW5nKSA+IDApIHsKKwkJCWlmIChhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpID4gMCkgewogCQkJCS8qIHN3aXRjaGluZyB0byByYWRpbyB3aGlsZSBjYXB0dXJlIGlzCiAJCQkJICAgaW4gcHJvZ3Jlc3MgaXMgbm90IHBvbGl0ZSAqLwogCQkJCWN4MThfcmVsZWFzZV9zdHJlYW0ocyk7CkBAIC02OTQsNyArNjk1LDcgQEAKIAogdm9pZCBjeDE4X211dGUoc3RydWN0IGN4MTggKmN4KQogewotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykpCisJaWYgKGF0b21pY19yZWFkKCZjeC0+YW5hX2NhcHR1cmluZykpCiAJCWN4MThfdmFwaShjeCwgQ1gxOF9DUFVfU0VUX0FVRElPX01VVEUsIDIsCiAJCQkJY3gxOF9maW5kX2hhbmRsZShjeCksIDEpOwogCUNYMThfREVCVUdfSU5GTygiTXV0ZVxuIik7CkBAIC03MDIsNyArNzAzLDcgQEAKIAogdm9pZCBjeDE4X3VubXV0ZShzdHJ1Y3QgY3gxOCAqY3gpCiB7Ci0JaWYgKGF0b21pY19yZWFkKCZjeC0+Y2FwdHVyaW5nKSkgeworCWlmIChhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpKSB7CiAJCWN4MThfbXNsZWVwX3RpbWVvdXQoMTAwLCAwKTsKIAkJY3gxOF92YXBpKGN4LCBDWDE4X0NQVV9TRVRfTUlTQ19QQVJBTUVURVJTLCAyLAogCQkJCWN4MThfZmluZF9oYW5kbGUoY3gpLCAxMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmMKaW5kZXggYmI4YmM4Ni4uYjMwMjgzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uYwpAQCAtMzUsOSArMzUsNiBAQAogI2RlZmluZSBDWDE4X1JFR19HUElPX09VVDIgICAweGM3ODEwNAogI2RlZmluZSBDWDE4X1JFR19HUElPX0RJUjIgICAweGM3ODEwYwogCi1zdGF0aWMgdTMyIGdwaW9fZGlyOwotc3RhdGljIHUzMiBncGlvX3ZhbDsKLQogLyoKICAqIEhWUi0xNjAwIEdQSU8gcGlucywgY291cnRlc3kgb2YgSGF1cHBhdWdlOgogICoKQEAgLTQ5LDI1ICs0Niw1NCBAQAogCiBzdGF0aWMgdm9pZCBncGlvX3dyaXRlKHN0cnVjdCBjeDE4ICpjeCkKIHsKLQl3cml0ZV9yZWcoKGdwaW9fZGlyICYgMHhmZmZmKSA8PCAxNiwgQ1gxOF9SRUdfR1BJT19ESVIxKTsKLQl3cml0ZV9yZWcoKChncGlvX2RpciAmIDB4ZmZmZikgPDwgMTYpIHwgKGdwaW9fdmFsICYgMHhmZmZmKSwKKwl1MzIgZGlyID0gY3gtPmdwaW9fZGlyOworCXUzMiB2YWwgPSBjeC0+Z3Bpb192YWw7CisKKwl3cml0ZV9yZWcoKGRpciAmIDB4ZmZmZikgPDwgMTYsIENYMThfUkVHX0dQSU9fRElSMSk7CisJd3JpdGVfcmVnKCgoZGlyICYgMHhmZmZmKSA8PCAxNikgfCAodmFsICYgMHhmZmZmKSwKIAkJCUNYMThfUkVHX0dQSU9fT1VUMSk7Ci0Jd3JpdGVfcmVnKGdwaW9fZGlyICYgMHhmZmZmMDAwMCwgQ1gxOF9SRUdfR1BJT19ESVIyKTsKLQl3cml0ZV9yZWcoKGdwaW9fZGlyICYgMHhmZmZmMDAwMCkgfCAoKGdwaW9fdmFsICYgMHhmZmZmMDAwMCkgPj4gMTYpLAorCXdyaXRlX3JlZyhkaXIgJiAweGZmZmYwMDAwLCBDWDE4X1JFR19HUElPX0RJUjIpOworCXdyaXRlX3JlZ19zeW5jKChkaXIgJiAweGZmZmYwMDAwKSB8ICgodmFsICYgMHhmZmZmMDAwMCkgPj4gMTYpLAogCQkJQ1gxOF9SRUdfR1BJT19PVVQyKTsKIH0KIAordm9pZCBjeDE4X3Jlc2V0X2kyY19zbGF2ZXNfZ3BpbyhzdHJ1Y3QgY3gxOCAqY3gpCit7CisJY29uc3Qgc3RydWN0IGN4MThfZ3Bpb19pMmNfc2xhdmVfcmVzZXQgKnA7CisKKwlwID0gJmN4LT5jYXJkLT5ncGlvX2kyY19zbGF2ZV9yZXNldDsKKworCWlmICgocC0+YWN0aXZlX2xvX21hc2sgfCBwLT5hY3RpdmVfaGlfbWFzaykgPT0gMCkKKwkJcmV0dXJuOworCisJLyogQXNzdW1pbmcgdGhhdCB0aGUgbWFza3MgYXJlIGEgc3Vic2V0IG9mIHRoZSBiaXRzIGluIGdwaW9fZGlyICovCisKKwkvKiBBc3NlcnQgKi8KKwljeC0+Z3Bpb192YWwgPQorCQkoY3gtPmdwaW9fdmFsIHwgcC0+YWN0aXZlX2hpX21hc2spICYgfihwLT5hY3RpdmVfbG9fbWFzayk7CisJZ3Bpb193cml0ZShjeCk7CisJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUobXNlY3NfdG9famlmZmllcyhwLT5tc2Vjc19hc3NlcnRlZCkpOworCisJLyogRGVhc3NlcnQgKi8KKwljeC0+Z3Bpb192YWwgPQorCQkoY3gtPmdwaW9fdmFsIHwgcC0+YWN0aXZlX2xvX21hc2spICYgfihwLT5hY3RpdmVfaGlfbWFzayk7CisJZ3Bpb193cml0ZShjeCk7CisJc2NoZWR1bGVfdGltZW91dF91bmludGVycnVwdGlibGUobXNlY3NfdG9famlmZmllcyhwLT5tc2Vjc19yZWNvdmVyeSkpOworfQorCiB2b2lkIGN4MThfZ3Bpb19pbml0KHN0cnVjdCBjeDE4ICpjeCkKIHsKLQlncGlvX2RpciA9IGN4LT5jYXJkLT5ncGlvX2luaXQuZGlyZWN0aW9uOwotCWdwaW9fdmFsID0gY3gtPmNhcmQtPmdwaW9faW5pdC5pbml0aWFsX3ZhbHVlOworCWN4LT5ncGlvX2RpciA9IGN4LT5jYXJkLT5ncGlvX2luaXQuZGlyZWN0aW9uOworCWN4LT5ncGlvX3ZhbCA9IGN4LT5jYXJkLT5ncGlvX2luaXQuaW5pdGlhbF92YWx1ZTsKIAotCWlmIChncGlvX2RpciA9PSAwKQorCWlmIChjeC0+Y2FyZC0+dHVuZXJzWzBdLnR1bmVyID09IFRVTkVSX1hDMjAyOCkgeworCQljeC0+Z3Bpb19kaXIgfD0gMSA8PCBjeC0+Y2FyZC0+eGNlaXZlX3BpbjsKKwkJY3gtPmdwaW9fdmFsIHw9IDEgPDwgY3gtPmNhcmQtPnhjZWl2ZV9waW47CisJfQorCisJaWYgKGN4LT5ncGlvX2RpciA9PSAwKQogCQlyZXR1cm47CiAKLQlncGlvX2RpciB8PSAxIDw8IGN4LT5jYXJkLT54Y2VpdmVfcGluOwotCWdwaW9fdmFsIHw9IDEgPDwgY3gtPmNhcmQtPnhjZWl2ZV9waW47Ci0KIAlDWDE4X0RFQlVHX0lORk8oIkdQSU8gaW5pdGlhbCBkaXI6ICUwOHgvJTA4eCBvdXQ6ICUwOHgvJTA4eFxuIiwKIAkJICAgcmVhZF9yZWcoQ1gxOF9SRUdfR1BJT19ESVIxKSwgcmVhZF9yZWcoQ1gxOF9SRUdfR1BJT19ESVIyKSwKIAkJICAgcmVhZF9yZWcoQ1gxOF9SRUdfR1BJT19PVVQxKSwgcmVhZF9yZWcoQ1gxOF9SRUdfR1BJT19PVVQyKSk7CkBAIC04NiwxMyArMTEyLDEyIEBACiAJCXJldHVybiAwOwogCUNYMThfREVCVUdfSU5GTygiUmVzZXR0aW5nIHR1bmVyXG4iKTsKIAotCWdwaW9fZGlyIHw9IDEgPDwgY3gtPmNhcmQtPnhjZWl2ZV9waW47Ci0JZ3Bpb192YWwgJj0gfigxIDw8IGN4LT5jYXJkLT54Y2VpdmVfcGluKTsKKwljeC0+Z3Bpb192YWwgJj0gfigxIDw8IGN4LT5jYXJkLT54Y2VpdmVfcGluKTsKIAogCWdwaW9fd3JpdGUoY3gpOwogCXNjaGVkdWxlX3RpbWVvdXRfaW50ZXJydXB0aWJsZShtc2Vjc190b19qaWZmaWVzKDEpKTsKIAotCWdwaW9fdmFsIHw9IDEgPDwgY3gtPmNhcmQtPnhjZWl2ZV9waW47CisJY3gtPmdwaW9fdmFsIHw9IDEgPDwgY3gtPmNhcmQtPnhjZWl2ZV9waW47CiAJZ3Bpb193cml0ZShjeCk7CiAJc2NoZWR1bGVfdGltZW91dF9pbnRlcnJ1cHRpYmxlKG1zZWNzX3RvX2ppZmZpZXMoMSkpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtZ3Bpby5oCmluZGV4IDQxYmFjODguLjUyNWMzMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWdwaW8uaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1ncGlvLmgKQEAgLTIxLDQgKzIxLDUgQEAKICAqLwogCiB2b2lkIGN4MThfZ3Bpb19pbml0KHN0cnVjdCBjeDE4ICpjeCk7Cit2b2lkIGN4MThfcmVzZXRfaTJjX3NsYXZlc19ncGlvKHN0cnVjdCBjeDE4ICpjeCk7CiBpbnQgY3gxOF9yZXNldF90dW5lcl9ncGlvKHZvaWQgKmRldiwgaW50IGNtZCwgaW50IHZhbHVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWkyYy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKaW5kZXggMWQ2YzUxYS4uNjgwYmM0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaTJjLmMKQEAgLTQwNSw2ICs0MDUsOCBAQAogCWN4MThfc2V0c2NsKCZjeC0+aTJjX2FsZ29fY2JfZGF0YVsxXSwgMSk7CiAJY3gxOF9zZXRzZGEoJmN4LT5pMmNfYWxnb19jYl9kYXRhWzFdLCAxKTsKIAorCWN4MThfcmVzZXRfaTJjX3NsYXZlc19ncGlvKGN4KTsKKwogCXJldHVybiBpMmNfYml0X2FkZF9idXMoJmN4LT5pMmNfYWRhcFswXSkgfHwKIAkJaTJjX2JpdF9hZGRfYnVzKCZjeC0+aTJjX2FkYXBbMV0pOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaW9jdGwuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LWlvY3RsLmMKaW5kZXggZGJkY2I4Ni4uNDE1MWYxZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaW9jdGwuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1pb2N0bC5jCkBAIC0yNDcsNyArMjQ3LDcgQEAKIAogCQlpZiAoIXNldF9mbXQgfHwgKGN4LT5wYXJhbXMud2lkdGggPT0gdyAmJiBjeC0+cGFyYW1zLmhlaWdodCA9PSBoKSkKIAkJCXJldHVybiAwOwotCQlpZiAoYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpID4gMCkKKwkJaWYgKGF0b21pY19yZWFkKCZjeC0+YW5hX2NhcHR1cmluZykgPiAwKQogCQkJcmV0dXJuIC1FQlVTWTsKIAogCQljeC0+cGFyYW1zLndpZHRoID0gdzsKQEAgLTI2NCw3ICsyNjQsNyBAQAogCWlmIChmbXQtPnR5cGUgPT0gVjRMMl9CVUZfVFlQRV9WQklfQ0FQVFVSRSkgewogCQlpZiAoc2V0X2ZtdCAmJiBzdHJlYW10eXBlID09IENYMThfRU5DX1NUUkVBTV9UWVBFX1ZCSSAmJgogCQkgICAgY3gtPnZiaS5zbGljZWRfaW4tPnNlcnZpY2Vfc2V0ICYmCi0JCSAgICBhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPiAwKQorCQkgICAgYXRvbWljX3JlYWQoJmN4LT5hbmFfY2FwdHVyaW5nKSA+IDApCiAJCQlyZXR1cm4gLUVCVVNZOwogCQlpZiAoc2V0X2ZtdCkgewogCQkJY3gtPnZiaS5zbGljZWRfaW4tPnNlcnZpY2Vfc2V0ID0gMDsKQEAgLTI5Myw3ICsyOTMsNyBAQAogCQlyZXR1cm4gMDsKIAlpZiAoc2V0ID09IDApCiAJCXJldHVybiAtRUlOVkFMOwotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPiAwICYmIGN4LT52Ymkuc2xpY2VkX2luLT5zZXJ2aWNlX3NldCA9PSAwKQorCWlmIChhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpID4gMCAmJiBjeC0+dmJpLnNsaWNlZF9pbi0+c2VydmljZV9zZXQgPT0gMCkKIAkJcmV0dXJuIC1FQlVTWTsKIAljeDE4X2F2X2NtZChjeCwgVklESU9DX1NfRk1ULCBmbXQpOwogCW1lbWNweShjeC0+dmJpLnNsaWNlZF9pbiwgdmJpZm10LCBzaXplb2YoKmN4LT52Ymkuc2xpY2VkX2luKSk7CkBAIC01ODEsNyArNTgxLDcgQEAKIAkJCWJyZWFrOwogCiAJCWlmICh0ZXN0X2JpdChDWDE4X0ZfSV9SQURJT19VU0VSLCAmY3gtPmlfZmxhZ3MpIHx8Ci0JCSAgICBhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPiAwKSB7CisJCSAgICBhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpID4gMCkgewogCQkJLyogU3dpdGNoaW5nIHN0YW5kYXJkIHdvdWxkIHR1cm4gb2ZmIHRoZSByYWRpbyBvciBtZXNzCiAJCQkgICB3aXRoIGFscmVhZHkgcnVubmluZyBzdHJlYW1zLCBwcmV2ZW50IHRoYXQgYnkKIAkJCSAgIHJldHVybmluZyBFQlVTWS4gKi8KQEAgLTY3Nyw3ICs2NzcsNyBAQAogCQkJZW5jLT5mbGFncyA9IDA7CiAJCQlpZiAodHJ5KQogCQkJCXJldHVybiAwOwotCQkJaWYgKCFhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykpCisJCQlpZiAoIWF0b21pY19yZWFkKCZjeC0+YW5hX2NhcHR1cmluZykpCiAJCQkJcmV0dXJuIC1FUEVSTTsKIAkJCWlmICh0ZXN0X2FuZF9zZXRfYml0KENYMThfRl9JX0VOQ19QQVVTRUQsICZjeC0+aV9mbGFncykpCiAJCQkJcmV0dXJuIDA7CkBAIC02ODksNyArNjg5LDcgQEAKIAkJCWVuYy0+ZmxhZ3MgPSAwOwogCQkJaWYgKHRyeSkKIAkJCQlyZXR1cm4gMDsKLQkJCWlmICghYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpKQorCQkJaWYgKCFhdG9taWNfcmVhZCgmY3gtPmFuYV9jYXB0dXJpbmcpKQogCQkJCXJldHVybiAtRVBFUk07CiAJCQlpZiAoIXRlc3RfYW5kX2NsZWFyX2JpdChDWDE4X0ZfSV9FTkNfUEFVU0VELCAmY3gtPmlfZmxhZ3MpKQogCQkJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtaXJxLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1pcnEuYwppbmRleCA2ZTE0ZjhiLi4yNTExNGE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1pcnEuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1pcnEuYwpAQCAtNzUsNyArNzUsNyBAQAogCiAJCQljeDE4X2J1Zl9zeW5jX2Zvcl9kZXZpY2UocywgYnVmKTsKIAkJCWN4MThfdmFwaShjeCwgQ1gxOF9DUFVfREVfU0VUX01ETCwgNSwgcy0+aGFuZGxlLAotCQkJICAgICh2b2lkICopJmN4LT5zY2ItPmNwdV9tZGxbYnVmLT5pZF0gLSBjeC0+ZW5jX21lbSwKKwkJCSAgICAodm9pZCBfX2lvbWVtICopJmN4LT5zY2ItPmNwdV9tZGxbYnVmLT5pZF0gLSBjeC0+ZW5jX21lbSwKIAkJCSAgICAxLCBidWYtPmlkLCBzLT5idWZfc2l6ZSk7CiAJCX0gZWxzZQogCQkJc2V0X2JpdChDWDE4X0ZfQl9ORUVEX0JVRl9TV0FQLCAmYnVmLT5iX2ZsYWdzKTsKQEAgLTE2MSwxMyArMTYxLDE1IEBACiAJKi8KIAogCWlmIChzdzIpIHsKLQkJaWYgKHN3MiAmIChjeC0+c2NiLT5jcHUyaHB1X2lycV9hY2sgfCBjeC0+c2NiLT5jcHUyZXB1X2lycV9hY2spKQorCQlpZiAoc3cyICYgKHJlYWRsKCZjeC0+c2NiLT5jcHUyaHB1X2lycV9hY2spIHwKKwkJCSAgIHJlYWRsKCZjeC0+c2NiLT5jcHUyZXB1X2lycV9hY2spKSkKIAkJCXdha2VfdXAoJmN4LT5tYl9jcHVfd2FpdHEpOwotCQlpZiAoc3cyICYgKGN4LT5zY2ItPmFwdTJocHVfaXJxX2FjayB8IGN4LT5zY2ItPmFwdTJlcHVfaXJxX2FjaykpCisJCWlmIChzdzIgJiAocmVhZGwoJmN4LT5zY2ItPmFwdTJocHVfaXJxX2FjaykgfAorCQkJICAgcmVhZGwoJmN4LT5zY2ItPmFwdTJlcHVfaXJxX2FjaykpKQogCQkJd2FrZV91cCgmY3gtPm1iX2FwdV93YWl0cSk7Ci0JCWlmIChzdzIgJiBjeC0+c2NiLT5lcHUyaHB1X2lycV9hY2spCisJCWlmIChzdzIgJiByZWFkbCgmY3gtPnNjYi0+ZXB1MmhwdV9pcnFfYWNrKSkKIAkJCXdha2VfdXAoJmN4LT5tYl9lcHVfd2FpdHEpOwotCQlpZiAoc3cyICYgY3gtPnNjYi0+aHB1MmVwdV9pcnFfYWNrKQorCQlpZiAoc3cyICYgcmVhZGwoJmN4LT5zY2ItPmhwdTJlcHVfaXJxX2FjaykpCiAJCQl3YWtlX3VwKCZjeC0+bWJfaHB1X3dhaXRxKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LW1haWxib3guYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LW1haWxib3guYwppbmRleCAwYzVmMzI4Li4yYTVjY2VmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1tYWlsYm94LmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtbWFpbGJveC5jCkBAIC05NCwxMCArOTQsMTAgQEAKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHN0cnVjdCBjeDE4X21haWxib3ggKmN4MThfbWJfaXNfY29tcGxldGUoc3RydWN0IGN4MTggKmN4LCBpbnQgcnB1LAorc3RhdGljIHN0cnVjdCBjeDE4X21haWxib3ggX19pb21lbSAqY3gxOF9tYl9pc19jb21wbGV0ZShzdHJ1Y3QgY3gxOCAqY3gsIGludCBycHUsCiAJCXUzMiAqc3RhdGUsIHUzMiAqaXJxLCB1MzIgKnJlcSkKIHsKLQlzdHJ1Y3QgY3gxOF9tYWlsYm94ICptYiA9IE5VTEw7CisJc3RydWN0IGN4MThfbWFpbGJveCBfX2lvbWVtICptYiA9IE5VTEw7CiAJaW50IHdhaXRfY291bnQgPSAwOwogCXUzMiBhY2s7CiAKQEAgLTE0Miw3ICsxNDIsNyBAQAogbG9uZyBjeDE4X21iX2FjayhzdHJ1Y3QgY3gxOCAqY3gsIGNvbnN0IHN0cnVjdCBjeDE4X21haWxib3ggKm1iKQogewogCWNvbnN0IHN0cnVjdCBjeDE4X2FwaV9pbmZvICppbmZvID0gZmluZF9hcGlfaW5mbyhtYi0+Y21kKTsKLQlzdHJ1Y3QgY3gxOF9tYWlsYm94ICphY2tfbWI7CisJc3RydWN0IGN4MThfbWFpbGJveCBfX2lvbWVtICphY2tfbWI7CiAJdTMyIGFja19pcnE7CiAJdTggcnB1ID0gQ1BVOwogCkBAIC0xODIsNyArMTgyLDcgQEAKIHsKIAljb25zdCBzdHJ1Y3QgY3gxOF9hcGlfaW5mbyAqaW5mbyA9IGZpbmRfYXBpX2luZm8oY21kKTsKIAl1MzIgc3RhdGUgPSAwLCBpcnEgPSAwLCByZXEsIG9sZHJlcSwgZXJyOwotCXN0cnVjdCBjeDE4X21haWxib3ggKm1iOworCXN0cnVjdCBjeDE4X21haWxib3ggX19pb21lbSAqbWI7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgKndhaXRxOwogCWludCB0aW1lb3V0ID0gMTAwOwogCWludCBjbnQgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtc3RyZWFtcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDE4L2N4MTgtc3RyZWFtcy5jCmluZGV4IDRjYTlkODQuLjFiOTIxYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gxOC9jeDE4LXN0cmVhbXMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MTgvY3gxOC1zdHJlYW1zLmMKQEAgLTM2LDEyICszNiwxMyBAQAogI2RlZmluZSBDWDE4X0RTUDBfSU5URVJSVVBUX01BU0sgICAgIAkweGQwMDA0QwogCiBzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBjeDE4X3Y0bDJfZW5jX2ZvcHMgPSB7Ci0gICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKLSAgICAgIC5yZWFkID0gY3gxOF92NGwyX3JlYWQsCi0gICAgICAub3BlbiA9IGN4MThfdjRsMl9vcGVuLAotICAgICAgLmlvY3RsID0gY3gxOF92NGwyX2lvY3RsLAotICAgICAgLnJlbGVhc2UgPSBjeDE4X3Y0bDJfY2xvc2UsCi0gICAgICAucG9sbCA9IGN4MThfdjRsMl9lbmNfcG9sbCwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkucmVhZCA9IGN4MThfdjRsMl9yZWFkLAorCS5vcGVuID0gY3gxOF92NGwyX29wZW4sCisJLmlvY3RsID0gY3gxOF92NGwyX2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPSB2NGxfY29tcGF0X2lvY3RsMzIsCisJLnJlbGVhc2UgPSBjeDE4X3Y0bDJfY2xvc2UsCisJLnBvbGwgPSBjeDE4X3Y0bDJfZW5jX3BvbGwsCiB9OwogCiAvKiBvZmZzZXQgZnJvbSAwIHRvIHJlZ2lzdGVyIHRzIHY0bDIgbWlub3JzIG9uICovCkBAIC00NDMsNyArNDQ0LDcgQEAKIAlzLT5oYW5kbGUgPSBkYXRhWzBdOwogCWN4MThfdmFwaShjeCwgQ1gxOF9DUFVfU0VUX0NIQU5ORUxfVFlQRSwgMiwgcy0+aGFuZGxlLCBjYXB0eXBlKTsKIAotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPT0gMCAmJiAhdHMpIHsKKwlpZiAoYXRvbWljX3JlYWQoJmN4LT5hbmFfY2FwdHVyaW5nKSA9PSAwICYmICF0cykgewogCQkvKiBTdHVmZiBmcm9tIFdpbmRvd3MsIHdlIGRvbid0IGtub3cgd2hhdCBpdCBpcyAqLwogCQljeDE4X3ZhcGkoY3gsIENYMThfQ1BVX1NFVF9WRVJfQ1JPUF9MSU5FLCAyLCBzLT5oYW5kbGUsIDApOwogCQljeDE4X3ZhcGkoY3gsIENYMThfQ1BVX1NFVF9NSVNDX1BBUkFNRVRFUlMsIDMsIHMtPmhhbmRsZSwgMywgMSk7CkBAIC00NjYsMTQgKzQ2NywxNCBAQAogCQljeDIzNDF4X3VwZGF0ZShjeCwgY3gxOF9hcGlfZnVuYywgTlVMTCwgJmN4LT5wYXJhbXMpOwogCX0KIAotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPT0gMCkgeworCWlmIChhdG9taWNfcmVhZCgmY3gtPnRvdF9jYXB0dXJpbmcpID09IDApIHsKIAkJY2xlYXJfYml0KENYMThfRl9JX0VPUywgJmN4LT5pX2ZsYWdzKTsKIAkJd3JpdGVfcmVnKDcsIENYMThfRFNQMF9JTlRFUlJVUFRfTUFTSyk7CiAJfQogCiAJY3gxOF92YXBpKGN4LCBDWDE4X0NQVV9ERV9TRVRfTURMX0FDSywgMywgcy0+aGFuZGxlLAotCQkodm9pZCAqKSZjeC0+c2NiLT5jcHVfbWRsX2Fja1tzLT50eXBlXVswXSAtIGN4LT5lbmNfbWVtLAotCQkodm9pZCAqKSZjeC0+c2NiLT5jcHVfbWRsX2Fja1tzLT50eXBlXVsxXSAtIGN4LT5lbmNfbWVtKTsKKwkJKHZvaWQgX19pb21lbSAqKSZjeC0+c2NiLT5jcHVfbWRsX2Fja1tzLT50eXBlXVswXSAtIGN4LT5lbmNfbWVtLAorCQkodm9pZCBfX2lvbWVtICopJmN4LT5zY2ItPmNwdV9tZGxfYWNrW3MtPnR5cGVdWzFdIC0gY3gtPmVuY19tZW0pOwogCiAJbGlzdF9mb3JfZWFjaChwLCAmcy0+cV9mcmVlLmxpc3QpIHsKIAkJc3RydWN0IGN4MThfYnVmZmVyICpidWYgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBjeDE4X2J1ZmZlciwgbGlzdCk7CkBAIC00ODEsOCArNDgyLDggQEAKIAkJd3JpdGVsKGJ1Zi0+ZG1hX2hhbmRsZSwgJmN4LT5zY2ItPmNwdV9tZGxbYnVmLT5pZF0ucGFkZHIpOwogCQl3cml0ZWwocy0+YnVmX3NpemUsICZjeC0+c2NiLT5jcHVfbWRsW2J1Zi0+aWRdLmxlbmd0aCk7CiAJCWN4MThfdmFwaShjeCwgQ1gxOF9DUFVfREVfU0VUX01ETCwgNSwgcy0+aGFuZGxlLAotCQkJKHZvaWQgKikmY3gtPnNjYi0+Y3B1X21kbFtidWYtPmlkXSAtIGN4LT5lbmNfbWVtLCAxLAotCQkJYnVmLT5pZCwgcy0+YnVmX3NpemUpOworCQkJKHZvaWQgX19pb21lbSAqKSZjeC0+c2NiLT5jcHVfbWRsW2J1Zi0+aWRdIC0gY3gtPmVuY19tZW0sCisJCQkxLCBidWYtPmlkLCBzLT5idWZfc2l6ZSk7CiAJfQogCS8qIGJlZ2luX2NhcHR1cmUgKi8KIAlpZiAoY3gxOF92YXBpKGN4LCBDWDE4X0NQVV9DQVBUVVJFX1NUQVJULCAxLCBzLT5oYW5kbGUpKSB7CkBAIC00OTIsNyArNDkzLDkgQEAKIAl9CiAKIAkvKiB5b3UncmUgbGl2ZSEgc2l0IGJhY2sgYW5kIGF3YWl0IGludGVycnVwdHMgOikgKi8KLQlhdG9taWNfaW5jKCZjeC0+Y2FwdHVyaW5nKTsKKwlpZiAoIXRzKQorCQlhdG9taWNfaW5jKCZjeC0+YW5hX2NhcHR1cmluZyk7CisJYXRvbWljX2luYygmY3gtPnRvdF9jYXB0dXJpbmcpOwogCXJldHVybiAwOwogfQogCkBAIC01MjMsNyArNTI2LDcgQEAKIAogCUNYMThfREVCVUdfSU5GTygiU3RvcCBDYXB0dXJlXG4iKTsKIAotCWlmIChhdG9taWNfcmVhZCgmY3gtPmNhcHR1cmluZykgPT0gMCkKKwlpZiAoYXRvbWljX3JlYWQoJmN4LT50b3RfY2FwdHVyaW5nKSA9PSAwKQogCQlyZXR1cm4gMDsKIAogCWlmIChzLT50eXBlID09IENYMThfRU5DX1NUUkVBTV9UWVBFX01QRykKQEAgLTUzNyw3ICs1NDAsOSBAQAogCQlDWDE4X0lORk8oImlnbm9yaW5nIGdvcF9lbmQ6IG5vdCAoeWV0Pykgc3VwcG9ydGVkIGJ5IHRoZSBmaXJtd2FyZVxuIik7CiAJfQogCi0JYXRvbWljX2RlYygmY3gtPmNhcHR1cmluZyk7CisJaWYgKHMtPnR5cGUgIT0gQ1gxOF9FTkNfU1RSRUFNX1RZUEVfVFMpCisJCWF0b21pY19kZWMoJmN4LT5hbmFfY2FwdHVyaW5nKTsKKwlhdG9taWNfZGVjKCZjeC0+dG90X2NhcHR1cmluZyk7CiAKIAkvKiBDbGVhciBjYXB0dXJlIGFuZCBuby1yZWFkIGJpdHMgKi8KIAljbGVhcl9iaXQoQ1gxOF9GX1NfU1RSRUFNSU5HLCAmcy0+c19mbGFncyk7CkBAIC01NDUsNyArNTUwLDcgQEAKIAljeDE4X3ZhcGkoY3gsIENYMThfREVTVFJPWV9UQVNLLCAxLCBzLT5oYW5kbGUpOwogCXMtPmhhbmRsZSA9IDB4ZmZmZmZmZmY7CiAKLQlpZiAoYXRvbWljX3JlYWQoJmN4LT5jYXB0dXJpbmcpID4gMCkKKwlpZiAoYXRvbWljX3JlYWQoJmN4LT50b3RfY2FwdHVyaW5nKSA+IDApCiAJCXJldHVybiAwOwogCiAJd3JpdGVfcmVnKDUsIENYMThfRFNQMF9JTlRFUlJVUFRfTUFTSyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjM4ODUvY3gyMzg4NS1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjM4ODUvY3gyMzg4NS1jb3JlLmMKaW5kZXggZjI0YWJjZC4uYzRjYzJmM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyMzg4NS9jeDIzODg1LWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjM4ODUvY3gyMzg4NS1jb3JlLmMKQEAgLTgyMyw3ICs4MjMsNyBAQAogCWlvdW5tYXAoZGV2LT5sbW1pbyk7CiB9CiAKLXN0YXRpYyB1MzIqIGN4MjM4ODVfcmlzY19maWVsZCh1MzIgKnJwLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKK3N0YXRpYyBfX2xlMzIqIGN4MjM4ODVfcmlzY19maWVsZChfX2xlMzIgKnJwLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1MzIgc3luY19saW5lLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBicGwsIHVuc2lnbmVkIGludCBwYWRkaW5nLAogCQkJICAgICAgIHVuc2lnbmVkIGludCBsaW5lcykKQEAgLTg4Myw3ICs4ODMsNyBAQAogCQkJdW5zaWduZWQgaW50IHBhZGRpbmcsIHVuc2lnbmVkIGludCBsaW5lcykKIHsKIAl1MzIgaW5zdHJ1Y3Rpb25zLCBmaWVsZHM7Ci0JdTMyICpycDsKKwlfX2xlMzIgKnJwOwogCWludCByYzsKIAogCWZpZWxkcyA9IDA7CkBAIC05MjQsNyArOTI0LDcgQEAKIAkJCQkgICB1bnNpZ25lZCBpbnQgbGluZXMpCiB7CiAJdTMyIGluc3RydWN0aW9uczsKLQl1MzIgKnJwOworCV9fbGUzMiAqcnA7CiAJaW50IHJjOwogCiAJLyogZXN0aW1hdGUgcmlzYyBtZW06IHdvcnN0IGNhc2UgaXMgb25lIHdyaXRlIHBlciBwYWdlIGJvcmRlciArCkBAIC05NTEsNyArOTUxLDcgQEAKIGludCBjeDIzODg1X3Jpc2Nfc3RvcHBlcihzdHJ1Y3QgcGNpX2RldiAqcGNpLCBzdHJ1Y3QgYnRjeF9yaXNjbWVtICpyaXNjLAogCQkJCXUzMiByZWcsIHUzMiBtYXNrLCB1MzIgdmFsdWUpCiB7Ci0JdTMyICpycDsKKwlfX2xlMzIgKnJwOwogCWludCByYzsKIAogCWlmICgocmMgPSBidGN4X3Jpc2NtZW1fYWxsb2MocGNpLCByaXNjLCA0KjE2KSkgPCAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtY29yZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtY29yZS5jCmluZGV4IDYwN2VmZGMuLjFkYTZmMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1jb3JlLmMKQEAgLTQzMyw3ICs0MzMsNyBAQAogCQlpbnQgY2hyb21hID0gdmlkX2lucHV0ICYgMHhmMDA7CiAKIAkJaWYgKCh2aWRfaW5wdXQgJiB+MHhmZjApIHx8Ci0JCSAgICBsdW1hIDwgQ1gyNTg0MF9TVklERU9fTFVNQTEgfHwgbHVtYSA+IENYMjU4NDBfU1ZJREVPX0xVTUE0IHx8CisJCSAgICBsdW1hIDwgQ1gyNTg0MF9TVklERU9fTFVNQTEgfHwgbHVtYSA+IENYMjU4NDBfU1ZJREVPX0xVTUE4IHx8CiAJCSAgICBjaHJvbWEgPCBDWDI1ODQwX1NWSURFT19DSFJPTUE0IHx8IGNocm9tYSA+IENYMjU4NDBfU1ZJREVPX0NIUk9NQTgpIHsKIAkJCXY0bF9lcnIoY2xpZW50LCAiMHglMDR4IGlzIG5vdCBhIHZhbGlkIHZpZGVvIGlucHV0IVxuIiwKIAkJCQl2aWRfaW5wdXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtZmlybXdhcmUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3gyNTg0MC9jeDI1ODQwLWZpcm13YXJlLmMKaW5kZXggNjIwZDI5NS4uOGQ0ODlhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDI1ODQwL2N4MjU4NDAtZmlybXdhcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4MjU4NDAvY3gyNTg0MC1maXJtd2FyZS5jCkBAIC03OSw3ICs3OSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgZndfd3JpdGUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwgdTggKmRhdGEsIGludCBzaXplKQorc3RhdGljIGludCBmd193cml0ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBjb25zdCB1OCAqZGF0YSwgaW50IHNpemUpCiB7CiAJaWYgKGkyY19tYXN0ZXJfc2VuZChjbGllbnQsIGRhdGEsIHNpemUpIDwgc2l6ZSkgewogCQl2NGxfZXJyKGNsaWVudCwgImZpcm13YXJlIGxvYWQgaTJjIGZhaWx1cmVcbiIpOwpAQCAtOTMsNyArOTMsOCBAQAogewogCXN0cnVjdCBjeDI1ODQwX3N0YXRlICpzdGF0ZSA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncgPSBOVUxMOwotCXU4IGJ1ZmZlcls0XSwgKnB0cjsKKwl1OCBidWZmZXJbRldTRU5EXTsKKwljb25zdCB1OCAqcHRyOwogCWludCBzaXplLCByZXR2YWw7CiAKIAlpZiAoc3RhdGUtPmlzX2N4MjM4ODUpCkBAIC0xMDgsMjkgKzEwOSwyMyBAQAogCiAJYnVmZmVyWzBdID0gMHgwODsKIAlidWZmZXJbMV0gPSAweDAyOwotCWJ1ZmZlclsyXSA9IGZ3LT5kYXRhWzBdOwotCWJ1ZmZlclszXSA9IGZ3LT5kYXRhWzFdOwotCXJldHZhbCA9IGZ3X3dyaXRlKGNsaWVudCwgYnVmZmVyLCA0KTsKIAotCWlmIChyZXR2YWwgPCAwKSB7Ci0JCXJlbGVhc2VfZmlybXdhcmUoZncpOwotCQlyZXR1cm4gcmV0dmFsOwotCX0KLQotCXNpemUgPSBmdy0+c2l6ZSAtIDI7CisJc2l6ZSA9IGZ3LT5zaXplOwogCXB0ciA9IGZ3LT5kYXRhOwogCXdoaWxlIChzaXplID4gMCkgewotCQlwdHJbMF0gPSAweDA4OwotCQlwdHJbMV0gPSAweDAyOwotCQlyZXR2YWwgPSBmd193cml0ZShjbGllbnQsIHB0ciwgbWluKEZXU0VORCwgc2l6ZSArIDIpKTsKKwkJaW50IGxlbiA9IG1pbihGV1NFTkQgLSAyLCBzaXplKTsKKworCQltZW1jcHkoYnVmZmVyICsgMiwgcHRyLCBsZW4pOworCisJCXJldHZhbCA9IGZ3X3dyaXRlKGNsaWVudCwgYnVmZmVyLCBsZW4gKyAyKTsKIAogCQlpZiAocmV0dmFsIDwgMCkgewogCQkJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJCQlyZXR1cm4gcmV0dmFsOwogCQl9CiAKLQkJc2l6ZSAtPSBGV1NFTkQgLSAyOwotCQlwdHIgKz0gRldTRU5EIC0gMjsKKwkJc2l6ZSAtPSBsZW47CisJCXB0ciArPSBsZW47CiAJfQogCiAJZW5kX2Z3X2xvYWQoY2xpZW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWFsc2EuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWFsc2EuYwppbmRleCBlOTc2ZmM2Li44MGM4ODgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1hbHNhLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDg4L2N4ODgtYWxzYS5jCkBAIC0zMzIsNiArMzMyLDEyIEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlpbnQgZXJyOwogCisJaWYgKCFjaGlwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiQlVHOiBjeDg4IGNhbid0IGZpbmQgZGV2aWNlIHN0cnVjdC4iCisJCQkJIiBDYW4ndCBwcm9jZWVkIHdpdGggb3BlblxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKwogCWVyciA9IHNuZF9wY21faHdfY29uc3RyYWludF9wb3cyKHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9QRVJJT0RTKTsKIAlpZiAoZXJyIDwgMCkKIAkJZ290byBfZXJyb3I7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1jYXJkcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9jeDg4L2N4ODgtY2FyZHMuYwppbmRleCBhZWJhMjZkLi5mYTZkMzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1jYXJkcy5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWNhcmRzLmMKQEAgLTE0OTMsMTAgKzE0OTMsMTYgQEAKIAkJfSwKIAl9LAogCVtDWDg4X0JPQVJEX1BPV0VSQ09MT1JfUkVBTF9BTkdFTF0gPSB7Ci0JCS5uYW1lICAgICAgICAgICA9ICJQb3dlckNvbG9yIFJlYWwgQW5nZWwgMzMwIiwKKwkJLm5hbWUgICAgICAgICAgID0gIlBvd2VyQ29sb3IgUkEzMzAiLAkvKiBMb25nIG5hbWVzIG1heSBjb25mdXNlIExJUkMuICovCiAJCS50dW5lcl90eXBlICAgICA9IFRVTkVSX1hDMjAyOCwKIAkJLnR1bmVyX2FkZHIgICAgID0gMHg2MSwKIAkJLmlucHV0ICAgICAgICAgID0geyB7CisJCQkudHlwZSAgID0gQ1g4OF9WTVVYX0RFQlVHLAorCQkJLnZtdXggICA9IDMsCQkvKiBEdWUgdG8gdGhlIHdheSB0aGUgY3g4OCBkcml2ZXIgaXMgd3JpdHRlbiwJKi8KKwkJCS5ncGlvMCA9IDB4MDBmZiwJLyogdGhlcmUgaXMgbm8gd2F5IHRvIGRlYWN0aXZhdGUgYXVkaW8gcGFzcy0JKi8KKwkJCS5ncGlvMSA9IDB4ZjM5ZCwJLyogdGhyb3VnaCB3aXRob3V0IHRoaXMgZW50cnkuIEZ1cnRoZXJtb3JlLCBpZgkqLworCQkJLmdwaW8zID0gMHgwMDAwLAkvKiB0aGUgVFYgbXV4IGVudHJ5IGlzIGZpcnN0LCB5b3UgZ2V0IGF1ZGlvCSovCisJCX0sIHsJCQkJLyogZnJvbSB0aGUgdHVuZXIgb24gYm9vdCBmb3IgYSBsaXR0bGUgd2hpbGUuCSovCiAJCQkudHlwZSAgID0gQ1g4OF9WTVVYX1RFTEVWSVNJT04sCiAJCQkudm11eCAgID0gMCwKIAkJCS5ncGlvMCA9IDB4MDBmZiwKQEAgLTI0MjQsOCArMjQzMCw5IEBACiAKIAlzd2l0Y2ggKGNvcmUtPmJvYXJkbnIpIHsKIAljYXNlIENYODhfQk9BUkRfUE9XRVJDT0xPUl9SRUFMX0FOR0VMOgotCQkvKiBEb2Vzbid0IHdvcmsgd2l0aCBmaXJtd2FyZSB2ZXJzaW9uIDIuNyAqLwotCQljdGwtPmZuYW1lID0gInhjMzAyOC12MjUuZnciOworCQkvKiBOb3cgd29ya3Mgd2l0aCBmaXJtd2FyZSB2ZXJzaW9uIDIuNyAqLworCQlpZiAoY29yZS0+aTJjX2FsZ28udWRlbGF5IDwgMTYpCisJCQljb3JlLT5pMmNfYWxnby51ZGVsYXkgPSAxNjsKIAkJYnJlYWs7CiAJY2FzZSBDWDg4X0JPQVJEX0RWSUNPX0ZVU0lPTkhEVFZfRFZCX1RfUFJPOgogCQljdGwtPnNjb2RlX3RhYmxlID0gWEMzMDI4X0ZFX1pBUkxJTks0NTY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2N4ODgvY3g4OC1jb3JlLmMKaW5kZXggYzRkMWFmZi4uNjBlZWRhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9jeDg4L2N4ODgtY29yZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vY3g4OC9jeDg4LWNvcmUuYwpAQCAtNzAsNyArNzAsNyBAQAogCiAvKiBAbHBpOiBsaW5lcyBwZXIgSVJRLCBvciAwIHRvIG5vdCBnZW5lcmF0ZSBpcnFzLiBOb3RlOiBJUlEgdG8gYmUKIAkgZ2VuZXJhdGVkIF9hZnRlcl8gbHBpIGxpbmVzIGFyZSB0cmFuc2ZlcnJlZC4gKi8KLXN0YXRpYyB1MzIqIGN4ODhfcmlzY19maWVsZCh1MzIgKnJwLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKK3N0YXRpYyBfX2xlMzIqIGN4ODhfcmlzY19maWVsZChfX2xlMzIgKnJwLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnbGlzdCwKIAkJCSAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1MzIgc3luY19saW5lLAogCQkJICAgIHVuc2lnbmVkIGludCBicGwsIHVuc2lnbmVkIGludCBwYWRkaW5nLAogCQkJICAgIHVuc2lnbmVkIGludCBsaW5lcywgdW5zaWduZWQgaW50IGxwaSkKQEAgLTEzMCw3ICsxMzAsNyBAQAogCQkgICAgIHVuc2lnbmVkIGludCBicGwsIHVuc2lnbmVkIGludCBwYWRkaW5nLCB1bnNpZ25lZCBpbnQgbGluZXMpCiB7CiAJdTMyIGluc3RydWN0aW9ucyxmaWVsZHM7Ci0JdTMyICpycDsKKwlfX2xlMzIgKnJwOwogCWludCByYzsKIAogCWZpZWxkcyA9IDA7CkBAIC0xNjgsNyArMTY4LDcgQEAKIAkJCSB1bnNpZ25lZCBpbnQgbGluZXMsIHVuc2lnbmVkIGludCBscGkpCiB7CiAJdTMyIGluc3RydWN0aW9uczsKLQl1MzIgKnJwOworCV9fbGUzMiAqcnA7CiAJaW50IHJjOwogCiAJLyogZXN0aW1hdGUgcmlzYyBtZW06IHdvcnN0IGNhc2UgaXMgb25lIHdyaXRlIHBlciBwYWdlIGJvcmRlciArCkBAIC0xOTMsNyArMTkzLDcgQEAKIGludCBjeDg4X3Jpc2Nfc3RvcHBlcihzdHJ1Y3QgcGNpX2RldiAqcGNpLCBzdHJ1Y3QgYnRjeF9yaXNjbWVtICpyaXNjLAogCQkgICAgICB1MzIgcmVnLCB1MzIgbWFzaywgdTMyIHZhbHVlKQogewotCXUzMiAqcnA7CisJX19sZTMyICpycDsKIAlpbnQgcmM7CiAKIAlpZiAoKHJjID0gYnRjeF9yaXNjbWVtX2FsbG9jKHBjaSwgcmlzYywgNCoxNikpIDwgMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFiZmlybXdhcmUuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFiZmlybXdhcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2JkOTI2My4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYmZpcm13YXJlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNDE1ICswLDAgQEAKLS8qCi0gKiBkYWJkYXRhLmggLSBkYWIgdXNiIGZpcm13YXJlIGFuZCBiaXRzdHJlYW0gZGF0YQotICoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBCYXlDb20gR21iSAotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgcmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZQotICogY29kZSByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgY29tbWVudCB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24uCi0gKi8KLQotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZmlybXdhcmVbXSA9IHsKLQoteyAgMiwgMHgwMDAwLCAwLCB7MHgyMSwweDU3fSB9LAoteyAgMywgMHgwMDAzLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMGIsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAxMywgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDFiLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwMjMsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDAyYiwgMCwgezB4MDIsMHgwMSwweDY2fSB9LAoteyAgMywgMHgwMDMzLCAwLCB7MHgwMiwweDAzLDB4MGZ9IH0sCi17ICAzLCAweDAwM2IsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDA0MywgMCwgezB4MDIsMHgwMSwweDAwfSB9LAoteyAgMywgMHgwMDRiLCAwLCB7MHgwMiwweDAxLDB4NjZ9IH0sCi17ICAzLCAweDAwNTMsIDAsIHsweDAyLDB4MDEsMHg2Nn0gfSwKLXsgIDMsIDB4MDA1YiwgMCwgezB4MDIsMHgwNCwweGJkfSB9LAoteyAgMywgMHgwMDYzLCAwLCB7MHgwMiwweDAxLDB4Njd9IH0sCi17ICAzLCAweDAxMDAsIDAsIHsweDAyLDB4MGMsMHg1YX0gfSwKLXsgIDMsIDB4MDEwNCwgMCwgezB4MDIsMHgwMSwweGVkfSB9LAoteyAgMywgMHgwMTA4LCAwLCB7MHgwMiwweDAyLDB4NTF9IH0sCi17ICAzLCAweDAxMGMsIDAsIHsweDAyLDB4MDIsMHg3Y30gfSwKLXsgIDMsIDB4MDExMCwgMCwgezB4MDIsMHgwMiwweGU0fSB9LAoteyAgMSwgMHgwMTE0LCAwLCB7MHgzMn0gfSwKLXsgIDEsIDB4MDExOCwgMCwgezB4MzJ9IH0sCi17ICAzLCAweDAxMWMsIDAsIHsweDAyLDB4MDUsMHhmZH0gfSwKLXsgIDMsIDB4MDEyMCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTI0LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxMjgsIDAsIHsweDAyLDB4MDQsMHgzY30gfSwKLXsgIDMsIDB4MDEyYywgMCwgezB4MDIsMHgwNCwweDZhfSB9LAoteyAgMywgMHgwMTMwLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxMzQsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDEzOCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTNjLCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNDAsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE0NCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTQ4LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17ICAzLCAweDAxNGMsIDAsIHsweDAyLDB4MDAsMHgwMH0gfSwKLXsgIDMsIDB4MDE1MCwgMCwgezB4MDIsMHgwMCwweDAwfSB9LAoteyAgMywgMHgwMTU0LCAwLCB7MHgwMiwweDAwLDB4MDB9IH0sCi17IDEwLCAweDAxNTcsIDAsIHsweDc1LDB4ODEsMHg3ZiwweGU1LDB4ODIsMHg2MCwweDAzLDB4MDIsMHgwMSwweDYxfSB9LAoteyAgNSwgMHgwMTYxLCAwLCB7MHgxMiwweDA3LDB4NmYsMHgyMSwweDY0fSB9LAoteyAgMSwgMHgwMTY2LCAwLCB7MHgzMn0gfSwKLXsgMTQsIDB4MDE2NywgMCwgezB4YzAsMHhkMCwweGMwLDB4ODYsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZTAsMHg5MCwweDdmLDB4OTcsMHhlMH0gfSwKLXsgMTQsIDB4MDE3NSwgMCwgezB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDY5LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH0gfSwKLXsgMTQsIDB4MDE4MywgMCwgezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH0gfSwKLXsgMTQsIDB4MDE5MSwgMCwgezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMH0gfSwKLXsgIDMsIDB4MDE5ZiwgMCwgezB4NTUsMHg3ZiwweGYwfSB9LAoteyAxNCwgMHgwMWEyLCAwLCB7MHg5MCwweDdmLDB4OWEsMHhlMCwweDMwLDB4ZTQsMHgyMywweDkwLDB4N2YsMHg2OCwweGYwLDB4ZjAsMHhmMCwweGYwfSB9LAoteyAxNCwgMHgwMWIwLCAwLCB7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSB9LAoteyAxNCwgMHgwMWJlLCAwLCB7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSB9LAoteyAxNCwgMHgwMWNjLCAwLCB7MHhlNSwweGQ4LDB4YzIsMHhlMywweGY1LDB4ZDgsMHhkMCwweGUwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweDg2fSB9LAoteyAgMywgMHgwMWRhLCAwLCB7MHhkMCwweGQwLDB4MzJ9IH0sCi17ICA4LCAweDAxZGQsIDAsIHsweDc1LDB4ODYsMHgwMCwweDkwLDB4ZmYsMHhjMywweDdjLDB4MDV9IH0sCi17ICA3LCAweDAxZTUsIDAsIHsweGEzLDB4ZTUsMHg4MiwweDQ1LDB4ODMsMHg3MCwweGY5fSB9LAoteyAgMSwgMHgwMWVjLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MDFlZCwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHhkMH0gfSwKLXsgMTQsIDB4MDFmYiwgMCwgezB4NzUsMHhkMCwweDAwLDB4YzAsMHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MX0gfSwKLXsgMTMsIDB4MDIwOSwgMCwgezB4OTAsMHg4OCwweDAwLDB4ZTAsMHhmNSwweDQxLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4OTB9IH0sCi17ICA5LCAweDAyMTYsIDAsIHsweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhlNSwweDMyLDB4NjAsMHgyMX0gfSwKLXsgIDQsIDB4MDIxZiwgMCwgezB4N2EsMHgwMCwweDdiLDB4MDB9IH0sCi17IDExLCAweDAyMjMsIDAsIHsweGMzLDB4ZWEsMHg5NCwweDE4LDB4ZWIsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MTJ9IH0sCi17IDE0LCAweDAyMmUsIDAsIHsweDkwLDB4N2YsMHg2OSwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHgwYSwweGJhLDB4MDB9IH0sCi17ICAyLCAweDAyM2MsIDAsIHsweDAxLDB4MGJ9IH0sCi17ICAyLCAweDAyM2UsIDAsIHsweDgwLDB4ZTN9IH0sCi17ICAyLCAweDAyNDAsIDAsIHsweGQwLDB4ODZ9IH0sCi17IDE0LCAweDAyNDIsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDAzLDB4ZDAsMHgwMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTB9IH0sCi17ICAxLCAweDAyNTAsIDAsIHsweDMyfSB9LAoteyAxNCwgMHgwMjUxLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxNCwgMHgwMjVmLCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwLDB4N2YsMHhhYiwweDc0fSB9LAoteyAgNCwgMHgwMjZkLCAwLCB7MHgwNCwweGYwLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDI3MSwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDI3YywgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNH0gfSwKLXsgMTQsIDB4MDI4YSwgMCwgezB4YzAsMHgwNSwweGMwLDB4MDYsMHhjMCwweDA3LDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweGQwLDB4NzUsMHhkMH0gfSwKLXsgMTMsIDB4MDI5OCwgMCwgezB4MDAsMHhjMCwweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTB9IH0sCi17IDEyLCAweDAyYTUsIDAsIHsweDdmLDB4YWIsMHg3NCwweDA4LDB4ZjAsMHg3NSwweDZlLDB4MDAsMHg3NSwweDZmLDB4MDIsMHgxMn0gfSwKLXsgIDYsIDB4MDJiMSwgMCwgezB4MTEsMHg0NCwweDc1LDB4NzAsMHgzOSwweDc1fSB9LAoteyAgNiwgMHgwMmI3LCAwLCB7MHg3MSwweDBjLDB4NzUsMHg3MiwweDAyLDB4MTJ9IH0sCi17IDEyLCAweDAyYmQsIDAsIHsweDExLDB4NzUsMHg5MCwweDdmLDB4ZDYsMHhlNCwweGYwLDB4NzUsMHhkOCwweDIwLDB4ZDAsMHg4Nn0gfSwKLXsgMTQsIDB4MDJjOSwgMCwgezB4ZDAsMHhkMCwweGQwLDB4MDEsMHhkMCwweDAwLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDA1LDB4ZDAsMHgwNH0gfSwKLXsgMTMsIDB4MDJkNywgMCwgezB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDAyZTQsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDE0LCAweDAyZjIsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTAsMHg3ZiwweGFiLDB4NzR9IH0sCi17ICA0LCAweDAzMDAsIDAsIHsweDEwLDB4ZjAsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwMzA0LCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwMzBmLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0fSB9LAoteyAxNCwgMHgwMzFkLCAwLCB7MHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4ZDAsMHg3NSwweGQwfSB9LAoteyAxMiwgMHgwMzJiLCAwLCB7MHgwMCwweGMwLDB4ODYsMHg3NSwweDg2LDB4MDAsMHg3NSwweDZlLDB4MDAsMHg3NSwweDZmLDB4MDJ9IH0sCi17ICA3LCAweDAzMzcsIDAsIHsweDEyLDB4MTEsMHg0NCwweDc1LDB4NzAsMHg0MCwweDc1fSB9LAoteyAgNiwgMHgwMzNlLCAwLCB7MHg3MSwweDBjLDB4NzUsMHg3MiwweDAyLDB4MTJ9IH0sCi17IDE0LCAweDAzNDQsIDAsIHsweDExLDB4NzUsMHg5MCwweDdmLDB4ZDYsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDdmLDB4ZDYsMHg3NCwweDA2LDB4ZjB9IH0sCi17ICA1LCAweDAzNTIsIDAsIHsweDc1LDB4ZDgsMHgxMCwweGQwLDB4ODZ9IH0sCi17IDE0LCAweDAzNTcsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17IDEzLCAweDAzNjUsIDAsIHsweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxMywgMHgwMzcyLCAwLCB7MHg5MCwweDdmLDB4YTUsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4YTYsMHg3NCwweDlhLDB4ZjAsMHgxMn0gfSwKLXsgMTIsIDB4MDM3ZiwgMCwgezB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNiwweGU1LDB4NDIsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwfSB9LAoteyAxMywgMHgwMzhiLCAwLCB7MHg3ZiwweGE2LDB4ZTUsMHg0MywweGYwLDB4MTIsMHgxMCwweDFiLDB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MH0gfSwKLXsgIDEsIDB4MDM5OCwgMCwgezB4ZjB9IH0sCi17ICAxLCAweDAzOTksIDAsIHsweDIyfSB9LAoteyAxMywgMHgwMzlhLCAwLCB7MHg5MCwweDdmLDB4YTUsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4YTYsMHg3NCwweDlhLDB4ZjAsMHgxMn0gfSwKLXsgMTIsIDB4MDNhNywgMCwgezB4MTAsMHgxYiwweDkwLDB4N2YsMHhhNiwweGU1LDB4NDQsMHhmMCwweDEyLDB4MTAsMHgxYiwweDkwfSB9LAoteyAxMiwgMHgwM2IzLCAwLCB7MHg3ZiwweGE2LDB4ZTUsMHg0NSwweGYwLDB4MTIsMHgxMCwweDFiLDB4OTAsMHg3ZiwweGE2LDB4ZTV9IH0sCi17IDExLCAweDAzYmYsIDAsIHsweDQ2LDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjB9IH0sCi17ICAxLCAweDAzY2EsIDAsIHsweDIyfSB9LAoteyAxMCwgMHgwM2NiLCAwLCB7MHg3NSwweDQ0LDB4MDIsMHg3NSwweDQ1LDB4MDAsMHg3NSwweDQ2LDB4MDAsMHgxMn0gfSwKLXsgIDksIDB4MDNkNSwgMCwgezB4MDMsMHg5YSwweDc1LDB4NDIsMHgwMywweDc1LDB4NDMsMHgwMCwweDEyfSB9LAoteyAgMiwgMHgwM2RlLCAwLCB7MHgwMywweDcyfSB9LAoteyAgMSwgMHgwM2UwLCAwLCB7MHgyMn0gfSwKLXsgMTIsIDB4MDNlMSwgMCwgezB4OTAsMHg4OCwweDAwLDB4ZTUsMHgzNiwweGYwLDB4OTAsMHg4OCwweDAwLDB4NzQsMHgxMCwweDI1fSB9LAoteyAgOSwgMHgwM2VkLCAwLCB7MHgzNiwweGYwLDB4MTIsMHgwMSwweGRkLDB4NzUsMHg0MiwweDAxLDB4NzV9IH0sCi17ICA5LCAweDAzZjYsIDAsIHsweDQzLDB4MTgsMHgxMiwweDAzLDB4NzIsMHg3NSwweDQ0LDB4MDIsMHg3NX0gfSwKLXsgIDksIDB4MDNmZiwgMCx7MHg0NSwweDAwLDB4NzUsMHg0NiwweDAwLDB4MTIsMHgwMywweDlhLDB4NzV9IH0sCi17ICA4LCAweDA0MDgsIDAsezB4NDIsMHgwMywweDc1LDB4NDMsMHg0NCwweDEyLDB4MDMsMHg3Mn0gfSwKLXsgIDEsIDB4MDQxMCwgMCx7MHgyMn0gfSwKLXsgMTQsIDB4MDQxMSwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTQsIDB4MDQxZiwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MCwweDdmLDB4YWEsMHg3NH0gfSwKLXsgIDQsIDB4MDQyZCwgMCwgezB4MDIsMHhmMCwweGQwLDB4ODZ9IH0sCi17IDExLCAweDA0MzEsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDE0LCAweDA0M2MsIDAsIHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhjMCwweGQwLDB4NzUsMHhkMCwweDAwLDB4YzB9IH0sCi17IDE0LCAweDA0NGEsIDAsIHsweDg2LDB4NzUsMHg4NiwweDAwLDB4ZTUsMHg5MSwweGMyLDB4ZTQsMHhmNSwweDkxLDB4OTAsMHg3ZiwweGE5LDB4NzR9IH0sCi17ICA3LCAweDA0NTgsIDAsIHsweDA0LDB4ZjAsMHg3NSwweDMwLDB4MDEsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwNDVmLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwNDZhLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxNCwgMHgwNDc4LCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU0LDB4ZjUsMHg5MSwweDkwLDB4N2YsMHhhYSwweDc0fSB9LAoteyAgNywgMHgwNDg2LCAwLCB7MHgwNCwweGYwLDB4NzUsMHgzMSwweDAxLDB4ZDAsMHg4Nn0gfSwKLXsgMTEsIDB4MDQ4ZCwgMCwgezB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMn0gfSwKLXsgMTQsIDB4MDQ5OCwgMCwgezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHg3NSwweGQwLDB4MDAsMHhjMH0gfSwKLXsgMTIsIDB4MDRhNiwgMCwgezB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNSwweGY1LDB4OTEsMHhkMCwweDg2fSB9LAoteyAxMSwgMHgwNGIyLCAwLCB7MHhkMCwweGQwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwNGJkLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhkMCwweDc1LDB4ZDAsMHgwMCwweGMwfSB9LAoteyAxMiwgMHgwNGNiLCAwLCB7MHg4NiwweDc1LDB4ODYsMHgwMCwweGU1LDB4OTEsMHhjMiwweGU3LDB4ZjUsMHg5MSwweGQwLDB4ODZ9IH0sCi17IDExLCAweDA0ZDcsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17IDEyLCAweDA0ZTIsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmEsMHg4YSwweDIwLDB4OTAsMHg3ZiwweDk2LDB4ZTQsMHhmMH0gfSwKLXsgIDEsIDB4MDRlZSwgMCwgezB4MjJ9IH0sCi17ICA3LCAweDA0ZWYsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmEsMHg4YSwweDIxfSB9LAoteyAgMSwgMHgwNGY2LCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MDRmNywgMCwgezB4OTAsMHgxNywweDEzLDB4ZTAsMHhmYSwweDkwLDB4MTcsMHgxNSwweGUwLDB4ZmIsMHg3NCwweDgwLDB4MmEsMHhmYX0gfSwKLXsgMTQsIDB4MDUwNSwgMCwgezB4NzQsMHg4MCwweDJiLDB4ZmIsMHhlYSwweDAzLDB4MDMsMHg1NCwweDNmLDB4ZmMsMHhlYSwweGM0LDB4MjMsMHg1NH0gfSwKLXsgMTQsIDB4MDUxMywgMCwgezB4MWYsMHhmYSwweDJjLDB4ZmEsMHhlYiwweDAzLDB4MDMsMHg1NCwweDNmLDB4ZmMsMHhlYiwweGM0LDB4MjMsMHg1NH0gfSwKLXsgMTEsIDB4MDUyMSwgMCwgezB4MWYsMHhmYiwweDJjLDB4ZmIsMHg5MCwweDE3LDB4MGEsMHhlMCwweGZjLDB4NjAsMHgwMn0gfSwKLXsgIDIsIDB4MDUyYywgMCwgezB4N2EsMHgwMH0gfSwKLXsgIDcsIDB4MDUyZSwgMCwgezB4OTAsMHgxNywweDBjLDB4ZTAsMHhmYywweDYwLDB4MDJ9IH0sCi17ICAyLCAweDA1MzUsIDAsIHsweDdiLDB4MDB9IH0sCi17IDExLCAweDA1MzcsIDAsIHsweGVhLDB4MmIsMHhmYywweGMzLDB4MTMsMHhmNSwweDNhLDB4NzUsMHg0NCwweDAyLDB4OGJ9IH0sCi17ICA3LCAweDA1NDIsIDAsIHsweDQ1LDB4OGEsMHg0NiwweDEyLDB4MDMsMHg5YSwweDc1fSB9LAoteyAgOSwgMHgwNTQ5LCAwLCB7MHg2ZSwweDA4LDB4NzUsMHg2ZiwweDAwLDB4MTIsMHgxMSwweDQ0LDB4NzV9IH0sCi17ICA0LCAweDA1NTIsIDAsIHsweDcwLDB4NDcsMHg3NSwweDcxfSB9LAoteyAgOCwgMHgwNTU2LCAwLCB7MHgwYywweDc1LDB4NzIsMHgwMiwweDEyLDB4MTEsMHg3NSwweDg1fSB9LAoteyAgNSwgMHgwNTVlLCAwLCB7MHgzYSwweDczLDB4MTIsMHgxMSwweGEwfSB9LAoteyAgMSwgMHgwNTYzLCAwLCB7MHgyMn0gfSwKLXsgMTQsIDB4MDU2NCwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5NiwweDc0LDB4ODAsMHg2NSwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDU3MiwgMCwgezB4N2YsMHhlYiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZiLDB4OTAsMHg3ZiwweGVmLDB4ZTAsMHhmY30gfSwKLXsgMTQsIDB4MDU4MCwgMCwgezB4MzMsMHg5NSwweGUwLDB4ZmQsMHg4YywweDA1LDB4N2MsMHgwMCwweDkwLDB4N2YsMHhlZSwweGUwLDB4ZmUsMHgzM30gfSwKLXsgMTQsIDB4MDU4ZSwgMCwgezB4OTUsMHhlMCwweGZmLDB4ZWMsMHgyZSwweGZjLDB4ZWQsMHgzZiwweGZkLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHhmZX0gfSwKLXsgIDUsIDB4MDU5YywgMCwgezB4YmUsMHgwMSwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MDVhMSwgMCwgezB4MDIsMHgwNSwweGY5fSB9LAoteyAgNiwgMHgwNWE0LCAwLCB7MHhiYywweDAxLDB4MjEsMHhiZCwweDAwLDB4MWV9IH0sCi17IDE0LCAweDA1YWEsIDAsIHsweGVhLDB4YzQsMHgwMywweDU0LDB4ZjgsMHhmYywweGViLDB4MjUsMHhlMCwweGZkLDB4MmMsMHgyNCwweDAwLDB4ZmN9IH0sCi17IDE0LCAweDA1YjgsIDAsIHsweGU0LDB4MzQsMHgxNywweGZkLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZSwweDhjLDB4ODIsMHg4ZCwweDgzLDB4ZjB9IH0sCi17ICAyLCAweDA1YzYsIDAsIHsweDgwLDB4MzF9IH0sCi17IDE0LCAweDA1YzgsIDAsIHsweGVhLDB4YzQsMHgwMywweDU0LDB4ZjgsMHhmYSwweGViLDB4MjUsMHhlMCwweGZiLDB4MmEsMHhmYSwweDI0LDB4MDB9IH0sCi17IDE0LCAweDA1ZDYsIDAsIHsweGZiLDB4ZTQsMHgzNCwweDE3LDB4ZmMsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZkLDB4OGIsMHg4MiwweDhjLDB4ODN9IH0sCi17IDE0LCAweDA1ZTQsIDAsIHsweGYwLDB4NzQsMHgwMSwweDJhLDB4MjQsMHgwMCwweGZhLDB4ZTQsMHgzNCwweDE3LDB4ZmIsMHg5MCwweDdlLDB4YzF9IH0sCi17ICA3LCAweDA1ZjIsIDAsIHsweGUwLDB4ZmMsMHg4YSwweDgyLDB4OGIsMHg4MywweGYwfSB9LAoteyAgMywgMHgwNWY5LCAwLCB7MHg3NSwweDM4LDB4MDF9IH0sCi17ICAxLCAweDA1ZmMsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwNWZkLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0fSB9LAoteyAxNCwgMHgwNjBiLCAwLCB7MHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4ZDAsMHg3NSwweGQwfSB9LAoteyAxMywgMHgwNjE5LCAwLCB7MHgwMCwweGMwLDB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MH0gfSwKLXsgMTMsIDB4MDYyNiwgMCwgezB4N2YsMHhhYSwweDc0LDB4MDEsMHhmMCwweDEyLDB4MDUsMHg2NCwweDc1LDB4MzcsMHgwMCwweGQwLDB4ODZ9IH0sCi17IDE0LCAweDA2MzMsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17IDEzLCAweDA2NDEsIDAsIHsweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxNCwgMHgwNjRlLCAwLCB7MHg5MCwweDdmLDB4ZWIsMHhlMCwweGZhLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmYiwweDkwLDB4N2YsMHhlZSwweGUwfSB9LAoteyAxNCwgMHgwNjVjLCAwLCB7MHhmYywweDMzLDB4OTUsMHhlMCwweGZkLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmZSwweDkwLDB4N2YsMHg5NiwweDc0fSB9LAoteyAxNCwgMHgwNjZhLCAwLCB7MHg4MCwweDY1LDB4MDYsMHhmMCwweDkwLDB4N2YsMHgwMCwweDc0LDB4MDEsMHhmMCwweGVhLDB4YzQsMHgwMywweDU0fSB9LAoteyAxNCwgMHgwNjc4LCAwLCB7MHhmOCwweGZlLDB4ZWIsMHgyNSwweGUwLDB4ZmIsMHgyZSwweGZlLDB4MjQsMHgwMCwweGZiLDB4ZTQsMHgzNCwweDE3fSB9LAoteyAxNCwgMHgwNjg2LCAwLCB7MHhmZiwweDhiLDB4ODIsMHg4ZiwweDgzLDB4ZTAsMHhmYiwweDc0LDB4MDEsMHgyZSwweDI0LDB4MDAsMHhmZSwweGU0fSB9LAoteyAxNCwgMHgwNjk0LCAwLCB7MHgzNCwweDE3LDB4ZmYsMHg4ZSwweDgyLDB4OGYsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZTksMHhlMCwweGZmfSB9LAoteyAgMywgMHgwNmEyLCAwLCB7MHhiZiwweDgxLDB4MGF9IH0sCi17IDEwLCAweDA2YTUsIDAsIHsweDkwLDB4N2YsMHgwMCwweGViLDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlZSwweGYwfSB9LAoteyAgOCwgMHgwNmFmLCAwLCB7MHg5MCwweDdmLDB4ZTksMHhlMCwweGZiLDB4YmIsMHg4MiwweDFhfSB9LAoteyAgMywgMHgwNmI3LCAwLCB7MHhiYSwweDAxLDB4MGN9IH0sCi17IDEyLCAweDA2YmEsIDAsIHsweDkwLDB4N2YsMHgwMCwweGU0LDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4ODAsMHgwYn0gfSwKLXsgMTEsIDB4MDZjNiwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHgwMSwweDc0LDB4YjUsMHhmMH0gfSwKLXsgIDgsIDB4MDZkMSwgMCwgezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHhmYiwweGJiLDB4ODMsMHgxYn0gfSwKLXsgIDMsIDB4MDZkOSwgMCwgezB4YmEsMHgwMSwweDBkfSB9LAoteyAxMywgMHgwNmRjLCAwLCB7MHg5MCwweDdmLDB4MDAsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4ODAsMHgwYn0gfSwKLXsgMTEsIDB4MDZlOSwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHgwMSwweDc0LDB4MTIsMHhmMH0gfSwKLXsgIDgsIDB4MDZmNCwgMCwgezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHhmYiwweGJiLDB4ODQsMHgxY30gfSwKLXsgIDMsIDB4MDZmYywgMCwgezB4YmEsMHgwMSwweDBkfSB9LAoteyAxMywgMHgwNmZmLCAwLCB7MHg5MCwweDdmLDB4MDAsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4MDEsMHhlNCwweGYwLDB4ODAsMHgwY30gfSwKLXsgMTIsIDB4MDcwYywgMCwgezB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDAxLDB4NzQsMHgwMSwweGYwfSB9LAoteyAgNSwgMHgwNzE4LCAwLCB7MHg5MCwweDdmLDB4YjUsMHhlYywweGYwfSB9LAoteyAgMSwgMHgwNzFkLCAwLCB7MHgyMn0gfSwKLXsgMTIsIDB4MDcxZSwgMCwgezB4NzUsMHgzNiwweDBkLDB4OTAsMHg4OCwweDAwLDB4NzQsMHgxZCwweGYwLDB4NzUsMHg2YiwweDgwfSB9LAoteyAxMCwgMHgwNzJhLCAwLCB7MHg3NSwweDZjLDB4M2MsMHgxMiwweDEwLDB4ZTIsMHg3NSwweDZiLDB4ODAsMHg3NX0gfSwKLXsgIDksIDB4MDczNCwgMCwgezB4NmMsMHgwZiwweDEyLDB4MTAsMHhlMiwweDc1LDB4NmIsMHg4MCwweDc1fSB9LAoteyAgOSwgMHgwNzNkLCAwLCB7MHg2YywweDA2LDB4MTIsMHgxMCwweGUyLDB4NzUsMHg2YiwweDgwLDB4NzV9IH0sCi17ICA3LCAweDA3NDYsIDAsIHsweDZjLDB4MDEsMHgxMiwweDEwLDB4ZTIsMHg3YSwweDAwfSB9LAoteyAgMywgMHgwNzRkLCAwLCB7MHhiYSwweGZmLDB4MDB9IH0sCi17ICAyLCAweDA3NTAsIDAsIHsweDUwLDB4MGF9IH0sCi17IDEwLCAweDA3NTIsIDAsIHsweGMwLDB4MDIsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDAyLDB4MGEsMHg4MCwweGYxfSB9LAoteyAxMCwgMHgwNzVjLCAwLCB7MHg3NSwweDZiLDB4ODAsMHg3NSwweDZjLDB4M2MsMHgxMiwweDEwLDB4ZTIsMHg3NX0gfSwKLXsgIDgsIDB4MDc2NiwgMCwgezB4NmIsMHg4MCwweDc1LDB4NmMsMHgwZiwweDEyLDB4MTAsMHhlMn0gfSwKLXsgIDEsIDB4MDc2ZSwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDA3NmYsIDAsIHsweDkwLDB4N2YsMHhhMSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4YWYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4OTJ9IH0sCi17IDE0LCAweDA3N2QsIDAsIHsweDc0LDB4MDIsMHhmMCwweDc1LDB4OGUsMHgzMSwweDc1LDB4ODksMHgyMSwweDc1LDB4ODgsMHgwMCwweDc1LDB4Yzh9IH0sCi17IDE0LCAweDA3OGIsIDAsIHsweDAwLDB4NzUsMHg4ZCwweDQwLDB4NzUsMHg5OCwweDQwLDB4NzUsMHhjMCwweDQwLDB4NzUsMHg4NywweDAwLDB4NzV9IH0sCi17ICA5LCAweDA3OTksIDAsIHsweDIwLDB4MDAsMHg3NSwweDIxLDB4MDAsMHg3NSwweDIyLDB4MDAsMHg3NX0gfSwKLXsgIDUsIDB4MDdhMiwgMCwgezB4MjMsMHgwMCwweDc1LDB4NDcsMHgwMH0gfSwKLXsgIDcsIDB4MDdhNywgMCwgezB4YzMsMHhlNSwweDQ3LDB4OTQsMHgyMCwweDUwLDB4MTF9IH0sCi17IDEzLCAweDA3YWUsIDAsIHsweGU1LDB4NDcsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHgxNywweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAgNCwgMHgwN2JiLCAwLCB7MHgwNSwweDQ3LDB4ODAsMHhlOH0gfSwKLXsgIDksIDB4MDdiZiwgMCwgezB4ZTQsMHhmNSwweDQwLDB4ZjUsMHgzZiwweGU0LDB4ZjUsMHgzYywweGY1fSB9LAoteyAgNywgMHgwN2M4LCAwLCB7MHgzYiwweGU0LDB4ZjUsMHgzZSwweGY1LDB4M2QsMHg3NX0gfSwKLXsgMTEsIDB4MDdjZiwgMCwgezB4MzIsMHgwMCwweDc1LDB4MzcsMHgwMCwweDc1LDB4MzksMHgwMCwweDkwLDB4N2YsMHg5M30gfSwKLXsgMTQsIDB4MDdkYSwgMCwgezB4NzQsMHgzYywweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg4MH0gfSwKLXsgMTQsIDB4MDdlOCwgMCwgezB4ZjAsMHg5MCwweDdmLDB4OTQsMHg3NCwweDcwLDB4ZjAsMHg5MCwweDdmLDB4OWQsMHg3NCwweDhmLDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDdmNiwgMCwgezB4N2YsMHg5NywweGU0LDB4ZjAsMHg5MCwweDdmLDB4OTUsMHg3NCwweGMyLDB4ZjAsMHg5MCwweDdmLDB4OTgsMHg3NH0gfSwKLXsgMTQsIDB4MDgwNCwgMCwgezB4MjgsMHhmMCwweDkwLDB4N2YsMHg5ZSwweDc0LDB4MjgsMHhmMCwweDkwLDB4N2YsMHhmMCwweGU0LDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDgxMiwgMCwgezB4N2YsMHhmMSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZjIsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGYzLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MDgyMCwgMCwgezB4OTAsMHg3ZiwweGY0LDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmNSwweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZjYsMHhlNH0gfSwKLXsgMTQsIDB4MDgyZSwgMCwgezB4ZjAsMHg5MCwweDdmLDB4ZjcsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGY4LDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhmOX0gfSwKLXsgMTQsIDB4MDgzYywgMCwgezB4NzQsMHgzOCwweGYwLDB4OTAsMHg3ZiwweGZhLDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweGZiLDB4NzQsMHhhMH0gfSwKLXsgMTQsIDB4MDg0YSwgMCwgezB4ZjAsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4ZmQsMHg3NCwweGEwLDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDg1OCwgMCwgezB4N2YsMHhmZSwweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHhlMH0gfSwKLXsgMTQsIDB4MDg2NiwgMCwgezB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGUxLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGRkLDB4NzQsMHg4MH0gfSwKLXsgMTEsIDB4MDg3NCwgMCwgezB4ZjAsMHgxMiwweDEyLDB4NDMsMHgxMiwweDA3LDB4MWUsMHg3YSwweDAwLDB4N2IsMHgwMH0gfSwKLXsgIDksIDB4MDg3ZiwgMCwgezB4YzMsMHhlYSwweDk0LDB4MWUsMHhlYiwweDk0LDB4MDAsMHg1MCwweDE3fSB9LAoteyAxMiwgMHgwODg4LCAwLCB7MHg5MCwweDg4LDB4MDAsMHhlMCwweGY1LDB4NDcsMHg5MCwweDg4LDB4MGIsMHhlMCwweGY1LDB4NDd9IH0sCi17ICA5LCAweDA4OTQsIDAsIHsweDkwLDB4N2YsMHg2OCwweGYwLDB4MGEsMHhiYSwweDAwLDB4MDEsMHgwYn0gfSwKLXsgIDIsIDB4MDg5ZCwgMCwgezB4ODAsMHhlMH0gfSwKLXsgMTIsIDB4MDg5ZiwgMCwgezB4MTIsMHgwMywweGUxLDB4OTAsMHg3ZiwweGQ2LDB4ZTQsMHhmMCwweDdhLDB4MDAsMHg3YiwweDAwfSB9LAoteyAxMywgMHgwOGFiLCAwLCB7MHg4YSwweDA0LDB4OGIsMHgwNSwweGMzLDB4ZWEsMHg5NCwweGUwLDB4ZWIsMHg5NCwweDJlLDB4NTAsMHgxYX0gfSwKLXsgMTQsIDB4MDhiOCwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDUsMHhkMH0gfSwKLXsgMTAsIDB4MDhjNiwgMCwgezB4MDQsMHhkMCwweDAzLDB4ZDAsMHgwMiwweDBhLDB4YmEsMHgwMCwweDAxLDB4MGJ9IH0sCi17ICAyLCAweDA4ZDAsIDAsIHsweDgwLDB4ZDl9IH0sCi17IDEzLCAweDA4ZDIsIDAsIHsweDkwLDB4N2YsMHhkNiwweDc0LDB4MDIsMHhmMCwweDkwLDB4N2YsMHhkNiwweDc0LDB4MDYsMHhmMCwweDkwfSB9LAoteyAxNCwgMHgwOGRmLCAwLCB7MHg3ZiwweGRlLDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3ZiwweGRmLDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3ZiwweGFjfSB9LAoteyAxNCwgMHgwOGVkLCAwLCB7MHhlNCwweGYwLDB4OTAsMHg3ZiwweGFkLDB4NzQsMHgwNSwweGYwLDB4NzUsMHhhOCwweDgwLDB4NzUsMHhmOCwweDEwfSB9LAoteyAxMywgMHgwOGZiLCAwLCB7MHg5MCwweDdmLDB4YWUsMHg3NCwweDBiLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDg4LDB4ZjAsMHg5MH0gfSwKLXsgMTIsIDB4MDkwOCwgMCwgezB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweDc1LDB4ZTgsMHgxMSwweDc1LDB4MzIsMHgwMSwweDc1fSB9LAoteyAxMiwgMHgwOTE0LCAwLCB7MHgzMSwweDAwLDB4NzUsMHgzMCwweDAwLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDA0LDB4Zjd9IH0sCi17IDEwLCAweDA5MjAsIDAsIHsweGQwLDB4MDUsMHhkMCwweDA0LDB4NzUsMHgzNCwweDAwLDB4NzUsMHgzNSwweDAxfSB9LAoteyAxMywgMHgwOTJhLCAwLCB7MHg5MCwweDdmLDB4YWUsMHg3NCwweDAzLDB4ZjAsMHg4YywweDAyLDB4YmEsMHgwMCwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MDkzNywgMCwgezB4MDIsMHgwYSwweDNmfSB9LAoteyAxMiwgMHgwOTNhLCAwLCB7MHg4NSwweDMzLDB4MzQsMHg5MCwweDdmLDB4OWQsMHg3NCwweDhmLDB4ZjAsMHg5MCwweDdmLDB4OTd9IH0sCi17IDE0LCAweDA5NDYsIDAsIHsweDc0LDB4MDgsMHhmMCwweDkwLDB4N2YsMHg5ZCwweDc0LDB4ODgsMHhmMCwweDkwLDB4N2YsMHg5YSwweGUwLDB4ZmF9IH0sCi17IDEyLCAweDA5NTQsIDAsIHsweDc0LDB4MDUsMHg1YSwweGY1LDB4MzMsMHg5MCwweDdmLDB4OWQsMHg3NCwweDhmLDB4ZjAsMHg5MH0gfSwKLXsgMTMsIDB4MDk2MCwgMCwgezB4N2YsMHg5NywweDc0LDB4MDIsMHhmMCwweDkwLDB4N2YsMHg5ZCwweDc0LDB4ODIsMHhmMCwweGU1LDB4MzN9IH0sCi17IDEzLCAweDA5NmQsIDAsIHsweDI1LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5YSwweGUwLDB4NTQsMHgwNSwweGZiLDB4NGEsMHhmNSwweDMzfSB9LAoteyAgMiwgMHgwOTdhLCAwLCB7MHg2MCwweDBjfSB9LAoteyAxMiwgMHgwOTdjLCAwLCB7MHg5MCwweDdmLDB4OTYsMHhlMCwweGZhLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg4MCwweDRhLDB4ZjB9IH0sCi17IDExLCAweDA5ODgsIDAsIHsweDc1LDB4NmUsMHgwMCwweDc1LDB4NmYsMHgwMCwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTJ9IH0sCi17IDE0LCAweDA5OTMsIDAsIHsweDExLDB4NDQsMHhkMCwweDA1LDB4ZDAsMHgwNCwweDkwLDB4MTcsMHgxMywweGUwLDB4ZmEsMHg3NCwweDgwLDB4MmF9IH0sCi17ICA2LCAweDA5YTEsIDAsIHsweGZhLDB4ZTUsMHgzMywweGI0LDB4MDQsMHgyOX0gfSwKLXsgIDMsIDB4MDlhNywgMCwgezB4YmEsMHhhMCwweDAwfSB9LAoteyAgMiwgMHgwOWFhLCAwLCB7MHg1MCwweDI0fSB9LAoteyAxMywgMHgwOWFjLCAwLCB7MHg5MCwweDE3LDB4MTMsMHhlMCwweDA0LDB4ZmIsMHgwYiwweDkwLDB4MTcsMHgxMywweGViLDB4ZjAsMHg5MH0gfSwKLXsgMTQsIDB4MDliOSwgMCwgezB4MTcsMHgxMywweGUwLDB4ZmIsMHg5MCwweDE3LDB4MTUsMHhmMCwweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNX0gfSwKLXsgIDksIDB4MDljNywgMCwgezB4MTIsMHgwNCwweGY3LDB4ZDAsMHgwNSwweGQwLDB4MDQsMHhkMCwweDAyfSB9LAoteyAgNSwgMHgwOWQwLCAwLCB7MHhlNSwweDMzLDB4YjQsMHgwMiwweDI2fSB9LAoteyAgNiwgMHgwOWQ1LCAwLCB7MHhjMywweDc0LDB4MDQsMHg5YSwweDUwLDB4MjB9IH0sCi17IDEzLCAweDA5ZGIsIDAsIHsweDkwLDB4MTcsMHgxMywweGUwLDB4ZmEsMHgxYSwweDFhLDB4OTAsMHgxNywweDEzLDB4ZWEsMHhmMCwweDkwfSB9LAoteyAxMywgMHgwOWU4LCAwLCB7MHgxNywweDEzLDB4ZTAsMHhmYSwweDkwLDB4MTcsMHgxNSwweGYwLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMn0gfSwKLXsgIDYsIDB4MDlmNSwgMCwgezB4MDQsMHhmNywweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAgNSwgMHgwOWZiLCAwLCB7MHhlNSwweDMzLDB4YjQsMHgwOCwweDFkfSB9LAoteyAgNCwgMHgwYTAwLCAwLCB7MHhlNSwweDM0LDB4NzAsMHgxOX0gfSwKLXsgMTAsIDB4MGEwNCwgMCwgezB4NzQsMHgwMSwweDI1LDB4MzUsMHg1NCwweDBmLDB4ZjUsMHgzNSwweDg1LDB4MzV9IH0sCi17IDEyLCAweDBhMGUsIDAsIHsweDc1LDB4NzUsMHg3NiwweDAwLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEzLDB4ZmUsMHhkMH0gfSwKLXsgIDMsIDB4MGExYSwgMCwgezB4MDUsMHhkMCwweDA0fSB9LAoteyAgNSwgMHgwYTFkLCAwLCB7MHhlNSwweDMzLDB4YjQsMHgwMSwweDFkfSB9LAoteyAgNCwgMHgwYTIyLCAwLCB7MHhlNSwweDM0LDB4NzAsMHgxOX0gfSwKLXsgMTAsIDB4MGEyNiwgMCwgezB4ZTUsMHgzNSwweDI0LDB4ZmYsMHg1NCwweDBmLDB4ZjUsMHgzNSwweDg1LDB4MzV9IH0sCi17IDEyLCAweDBhMzAsIDAsIHsweDc1LDB4NzUsMHg3NiwweDAwLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEzLDB4ZmUsMHhkMH0gfSwKLXsgIDMsIDB4MGEzYywgMCwgezB4MDUsMHhkMCwweDA0fSB9LAoteyAxNCwgMHgwYTNmLCAwLCB7MHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDUsMHhkMCwweDA0LDB4OTAsMHg3ZiwweDk2fSB9LAoteyAxNCwgMHgwYTRkLCAwLCB7MHhlMCwweGZhLDB4OTAsMHg3ZiwweDk2LDB4NzQsMHg3ZiwweDVhLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweDA4fSB9LAoteyAxMCwgMHgwYTViLCAwLCB7MHhmMCwweGMzLDB4ZWMsMHg5NCwweDAwLDB4ZWQsMHg5NCwweDAyLDB4NDAsMHgwOH0gfSwKLXsgIDgsIDB4MGE2NSwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYSwweDIwLDB4ZTYsMHgwOH0gfSwKLXsgIDgsIDB4MGE2ZCwgMCwgezB4YzMsMHhlNCwweDljLDB4NzQsMHgwOCwweDlkLDB4NTAsMHgxM30gfSwKLXsgMTQsIDB4MGE3NSwgMCwgezB4OTAsMHg3ZiwweDk2LDB4ZTAsMHhmYSwweDkwLDB4N2YsMHg5NiwweDc0LDB4NDAsMHg2NSwweDAyLDB4ZjAsMHg3Y30gfSwKLXsgIDUsIDB4MGE4MywgMCwgezB4MDAsMHg3ZCwweDAwLDB4ODAsMHgwNX0gfSwKLXsgIDUsIDB4MGE4OCwgMCwgezB4MGMsMHhiYywweDAwLDB4MDEsMHgwZH0gfSwKLXsgIDUsIDB4MGE4ZCwgMCwgezB4ZTUsMHgzOCwweGI0LDB4MDEsMHgwZX0gfSwKLXsgMTMsIDB4MGE5MiwgMCwgezB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDA0LDB4ZjcsMHhkMCwweDA1LDB4ZDAsMHgwNCwweDc1LDB4Mzh9IH0sCi17ICAxLCAweDBhOWYsIDAsIHsweDAwfSB9LAoteyAgNywgMHgwYWEwLCAwLCB7MHhlNSwweDMxLDB4NzAsMHgwMywweDAyLDB4MDksMHgyYX0gfSwKLXsgMTAsIDB4MGFhNywgMCwgezB4OTAsMHg3ZiwweGM5LDB4ZTAsMHhmYSwweDcwLDB4MDMsMHgwMiwweDBjLDB4MmR9IH0sCi17IDE0LCAweDBhYjEsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmEsMHg5MCwweDdmLDB4OTYsMHg3NCwweDgwLDB4NjUsMHgwMiwweGYwLDB4OTB9IH0sCi17ICA5LCAweDBhYmYsIDAsIHsweDdkLDB4YzAsMHhlMCwweGZhLDB4YmEsMHgyYywweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGFjOCwgMCwgezB4MDIsMHgwYiwweDM2fSB9LAoteyAgNSwgMHgwYWNiLCAwLCB7MHg3NSwweDMyLDB4MDAsMHg3YiwweDAwfSB9LAoteyAgMywgMHgwYWQwLCAwLCB7MHhiYiwweDY0LDB4MDB9IH0sCi17ICAyLCAweDBhZDMsIDAsIHsweDUwLDB4MWN9IH0sCi17IDE0LCAweDBhZDUsIDAsIHsweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDAxLDB4ZGQsMHhkMCwweDA1LDB4ZDB9IH0sCi17IDEzLCAweDBhZTMsIDAsIHsweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHg5MCwweDg4LDB4MGYsMHhlMCwweGY1LDB4NDcsMHgwYiwweDgwfSB9LAoteyAgMSwgMHgwYWYwLCAwLCB7MHhkZn0gfSwKLXsgMTMsIDB4MGFmMSwgMCwgezB4YzAsMHgwMiwweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwNywweDFlLDB4MTIsMHgwMywweGUxLDB4MTJ9IH0sCi17IDEyLCAweDBhZmUsIDAsIHsweDA0LDB4ZjcsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwLDB4MDIsMHg3NSwweDZlLDB4MDAsMHg3NX0gfSwKLXsgMTMsIDB4MGIwYSwgMCwgezB4NmYsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTEsMHg0NCwweGQwLDB4MDV9IH0sCi17ICA5LCAweDBiMTcsIDAsIHsweGQwLDB4MDQsMHhkMCwweDAyLDB4NzUsMHg3MCwweDRkLDB4NzUsMHg3MX0gfSwKLXsgMTEsIDB4MGIyMCwgMCwgezB4MGMsMHg3NSwweDcyLDB4MDIsMHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMn0gfSwKLXsgMTEsIDB4MGIyYiwgMCwgezB4MTEsMHg3NSwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMiwweDAyLDB4MGMsMHgyZH0gfSwKLXsgIDMsIDB4MGIzNiwgMCwgezB4YmEsMHgyYSwweDNifSB9LAoteyAxMywgMHgwYjM5LCAwLCB7MHg5MCwweDdmLDB4OTgsMHg3NCwweDIwLDB4ZjAsMHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMn0gfSwKLXsgMTQsIDB4MGI0NiwgMCwgezB4MDEsMHhkZCwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMiwweDkwLDB4N2YsMHg5OCwweDc0LDB4MjgsMHhmMH0gfSwKLXsgIDIsIDB4MGI1NCwgMCwgezB4N2IsMHgwMH0gfSwKLXsgIDMsIDB4MGI1NiwgMCwgezB4YmIsMHgwYSwweDAwfSB9LAoteyAgNSwgMHgwYjU5LCAwLCB7MHg0MCwweDAzLDB4MDIsMHgwYywweDJkfSB9LAoteyAxNCwgMHgwYjVlLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwMywweGMwLDB4MDQsMHhjMCwweDA1LDB4MTIsMHgwMSwweGRkLDB4ZDAsMHgwNSwweGQwfSB9LAoteyAgOCwgMHgwYjZjLCAwLCB7MHgwNCwweGQwLDB4MDMsMHhkMCwweDAyLDB4MGIsMHg4MCwweGUyfSB9LAoteyAgMywgMHgwYjc0LCAwLCB7MHhiYSwweDJiLDB4MWF9IH0sCi17ICA4LCAweDBiNzcsIDAsIHsweDkwLDB4N2YsMHhjOSwweGUwLDB4ZmIsMHhiYiwweDQwLDB4MTJ9IH0sCi17IDE0LCAweDBiN2YsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTIsMHgwNSwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDB9IH0sCi17ICA0LCAweDBiOGQsIDAsIHsweDAyLDB4MDIsMHgwYywweDJkfSB9LAoteyAgMywgMHgwYjkxLCAwLCB7MHhiYSwweDEwLDB4MWZ9IH0sCi17IDE0LCAweDBiOTQsIDAsIHsweDkwLDB4N2YsMHg5NiwweGUwLDB4ZmIsMHg5MCwweDdmLDB4OTYsMHg3NCwweDgwLDB4NjUsMHgwMywweGYwLDB4YzB9IH0sCi17IDE0LCAweDBiYTIsIDAsIHsweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEwLDB4M2QsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwLDB4MDJ9IH0sCi17ICAzLCAweDBiYjAsIDAsIHsweDAyLDB4MGMsMHgyZH0gfSwKLXsgIDMsIDB4MGJiMywgMCwgezB4YmEsMHgxMSwweDEyfSB9LAoteyAxNCwgMHgwYmI2LCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEwLDB4NmEsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwfSB9LAoteyAgNCwgMHgwYmM0LCAwLCB7MHgwMiwweDAyLDB4MGMsMHgyZH0gfSwKLXsgIDMsIDB4MGJjOCwgMCwgezB4YmEsMHgxMiwweDEyfSB9LAoteyAxNCwgMHgwYmNiLCAwLCB7MHhjMCwweDAyLDB4YzAsMHgwNCwweGMwLDB4MDUsMHgxMiwweDEwLDB4OGYsMHhkMCwweDA1LDB4ZDAsMHgwNCwweGQwfSB9LAoteyAgNCwgMHgwYmQ5LCAwLCB7MHgwMiwweDAyLDB4MGMsMHgyZH0gfSwKLXsgIDMsIDB4MGJkZCwgMCwgezB4YmEsMHgxMywweDBifSB9LAoteyAxMSwgMHgwYmUwLCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGZiLDB4OTAsMHg4OCwweDAwLDB4ZjAsMHg4MCwweDQyfSB9LAoteyAgMywgMHgwYmViLCAwLCB7MHhiYSwweDE0LDB4MTF9IH0sCi17IDE0LCAweDBiZWUsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTEsMHhkZCwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDB9IH0sCi17ICAzLCAweDBiZmMsIDAsIHsweDAyLDB4ODAsMHgyZX0gfSwKLXsgIDMsIDB4MGJmZiwgMCwgezB4YmEsMHgxNSwweDFkfSB9LAoteyAxMiwgMHgwYzAyLCAwLCB7MHg5MCwweDdkLDB4YzEsMHhlMCwweGY1LDB4NzUsMHg5MCwweDdkLDB4YzIsMHhlMCwweGY1LDB4NzZ9IH0sCi17IDE0LCAweDBjMGUsIDAsIHsweGMwLDB4MDIsMHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTMsMHhmZSwweGQwLDB4MDUsMHhkMCwweDA0LDB4ZDB9IH0sCi17ICAzLCAweDBjMWMsIDAsIHsweDAyLDB4ODAsMHgwZX0gfSwKLXsgIDMsIDB4MGMxZiwgMCwgezB4YmEsMHgxNiwweDBifSB9LAoteyAxMSwgMHgwYzIyLCAwLCB7MHhjMCwweDA0LDB4YzAsMHgwNSwweDEyLDB4MTMsMHhhMywweGQwLDB4MDUsMHhkMCwweDA0fSB9LAoteyAxMSwgMHgwYzJkLCAwLCB7MHg5MCwweDdmLDB4YzksMHhlNCwweGYwLDB4NzUsMHgzMSwweDAwLDB4MDIsMHgwOSwweDJhfSB9LAoteyAgMSwgMHgwYzM4LCAwLCB7MHgyMn0gfSwKLXsgIDcsIDB4MGMzOSwgMCwgezB4NTMsMHg1NSwweDUwLDB4NDUsMHg0ZSwweDQ0LDB4MDB9IH0sCi17ICA3LCAweDBjNDAsIDAsIHsweDUyLDB4NDUsMHg1MywweDU1LDB4NGQsMHg0NSwweDAwfSB9LAoteyAgNiwgMHgwYzQ3LCAwLCB7MHgyMCwweDU2LDB4NmYsMHg2YywweDIwLDB4MDB9IH0sCi17IDEzLCAweDBjNGQsIDAsIHsweDQ0LDB4NDEsMHg0MiwweDU1LDB4NTMsMHg0MiwweDIwLDB4NzYsMHgzMSwweDJlLDB4MzAsMHgzMCwweDAwfSB9LAoteyAxNCwgMHgwYzVhLCAwLCB7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMiwweGMwLDB4MDMsMHhjMCwweDA0fSB9LAoteyAxNCwgMHgwYzY4LCAwLCB7MHhjMCwweDA1LDB4YzAsMHgwNiwweGMwLDB4MDcsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4ZDAsMHg3NSwweGQwfSB9LAoteyAxMywgMHgwYzc2LCAwLCB7MHgwMCwweGMwLDB4ODYsMHg3NSwweDg2LDB4MDAsMHhlNSwweDkxLDB4YzIsMHhlNCwweGY1LDB4OTEsMHg5MH0gfSwKLXsgMTQsIDB4MGM4MywgMCwgezB4N2YsMHhhYiwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhlOCwweGUwLDB4ZmEsMHg5MCwweDdmLDB4ZTksMHhlMH0gfSwKLXsgIDYsIDB4MGM5MSwgMCwgezB4ZmIsMHhiYiwweDAwLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwYzk3LCAwLCB7MHgwMiwweDBkLDB4Mzh9IH0sCi17ICAzLCAweDBjOWEsIDAsIHsweGJhLDB4ODAsMHgxNH0gfSwKLXsgMTQsIDB4MGM5ZCwgMCwgezB4OTAsMHg3ZiwweDAwLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhiNX0gfSwKLXsgIDYsIDB4MGNhYiwgMCwgezB4NzQsMHgwMiwweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgNSwgMHgwY2IxLCAwLCB7MHhiYSwweDgyLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwY2I2LCAwLCB7MHgwMiwweDBkLDB4MWR9IH0sCi17ICA4LCAweDBjYjksIDAsIHsweDkwLDB4N2YsMHhlYywweGUwLDB4ZmMsMHhiYywweDAxLDB4MDB9IH0sCi17ICAyLCAweDBjYzEsIDAsIHsweDQwLDB4MjF9IH0sCi17ICA2LCAweDBjYzMsIDAsIHsweGMzLDB4NzQsMHgwNywweDljLDB4NDAsMHgxYn0gfSwKLXsgMTQsIDB4MGNjOSwgMCwgezB4ZWMsMHgyNCwweGZmLDB4MjUsMHhlMCwweGZkLDB4MjQsMHhjNiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNX0gfSwKLXsgMTMsIDB4MGNkNywgMCwgezB4ODMsMHhlMCwweGZkLDB4NTMsMHgwNSwweDAxLDB4OTAsMHg3ZiwweDAwLDB4ZWQsMHhmMCwweDgwLDB4MmJ9IH0sCi17ICAzLCAweDBjZTQsIDAsIHsweGJjLDB4ODEsMHgwMH0gfSwKLXsgIDIsIDB4MGNlNywgMCwgezB4NDAsMHgyMX0gfSwKLXsgIDYsIDB4MGNlOSwgMCwgezB4YzMsMHg3NCwweDg3LDB4OWMsMHg0MCwweDFifSB9LAoteyAxNCwgMHgwY2VmLCAwLCB7MHhlYywweDI0LDB4N2YsMHgyNSwweGUwLDB4ZmMsMHgyNCwweGI2LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSB9LAoteyAxMywgMHgwY2ZkLCAwLCB7MHg4MywweGUwLDB4ZmMsMHg1MywweDA0LDB4MDEsMHg5MCwweDdmLDB4MDAsMHhlYywweGYwLDB4ODAsMHgwNX0gfSwKLXsgIDUsIDB4MGQwYSwgMCwgezB4OTAsMHg3ZiwweDAwLDB4ZTQsMHhmMH0gfSwKLXsgMTQsIDB4MGQwZiwgMCwgezB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDUsIDB4MGQxZCwgMCwgezB4YmEsMHg4MSwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGQyMiwgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAxNCwgMHgwZDI1LCAwLCB7MHg5MCwweDdmLDB4MDAsMHhlNCwweGYwLDB4OTAsMHg3ZiwweDAxLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fSB9LAoteyAgNSwgMHgwZDMzLCAwLCB7MHgwMiwweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZDM4LCAwLCB7MHhiYiwweDAxLDB4MmR9IH0sCi17ICA2LCAweDBkM2IsIDAsIHsweGJhLDB4MDAsMHgwMywweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGQ0MSwgMCwgezB4YmEsMHgwMiwweDExfSB9LAoteyAxMywgMHgwZDQ0LCAwLCB7MHg3NSwweDU5LDB4MDAsMHhjMCwweDAyLDB4YzAsMHgwMywweDEyLDB4MGUsMHhmMCwweGQwLDB4MDMsMHhkMH0gfSwKLXsgIDQsIDB4MGQ1MSwgMCwgezB4MDIsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICA1LCAweDBkNTUsIDAsIHsweGJhLDB4MjEsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkNWEsIDAsIHsweDAyLDB4MGUsMHhjZH0gfSwKLXsgMTEsIDB4MGQ1ZCwgMCwgezB4NzUsMHgzNywweDAxLDB4OTAsMHg3ZiwweGM1LDB4ZTQsMHhmMCwweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGQ2OCwgMCwgezB4YmIsMHgwMywweDFmfSB9LAoteyAgNiwgMHgwZDZiLCAwLCB7MHhiYSwweDAwLDB4MDMsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICA1LCAweDBkNzEsIDAsIHsweGJhLDB4MDIsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkNzYsIDAsIHsweDAyLDB4MGUsMHhjZH0gfSwKLXsgMTMsIDB4MGQ3OSwgMCwgezB4NzUsMHg1OSwweDAxLDB4YzAsMHgwMiwweGMwLDB4MDMsMHgxMiwweDBlLDB4ZjAsMHhkMCwweDAzLDB4ZDB9IH0sCi17ICA0LCAweDBkODYsIDAsIHsweDAyLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgMywgMHgwZDhhLCAwLCB7MHhiYiwweDA2LDB4NTR9IH0sCi17ICA1LCAweDBkOGQsIDAsIHsweGJhLDB4ODAsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBkOTIsIDAsIHsweDAyLDB4MGUsMHhjNX0gfSwKLXsgIDgsIDB4MGQ5NSwgMCwgezB4OTAsMHg3ZiwweGViLDB4ZTAsMHhmYywweGJjLDB4MDEsMHgxNX0gfSwKLXsgMTIsIDB4MGQ5ZCwgMCwgezB4N2MsMHhmYiwweDdkLDB4MGYsMHg4ZCwweDA2LDB4N2YsMHgwMCwweDkwLDB4N2YsMHhkNCwweGVlfSB9LAoteyAgOSwgMHgwZGE5LCAwLCB7MHhmMCwweDkwLDB4N2YsMHhkNSwweGVjLDB4ZjAsMHgwMiwweDBlLDB4Y2R9IH0sCi17IDEwLCAweDBkYjIsIDAsIHsweDkwLDB4N2YsMHhlYiwweGUwLDB4ZmMsMHhiYywweDAyLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZGJjLCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17IDEwLCAweDBkYmYsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmMsMHhiYywweDAwLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZGM5LCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17IDEyLCAweDBkY2MsIDAsIHsweDdjLDB4M2IsMHg3ZCwweDBmLDB4OGQsMHgwNiwweDdmLDB4MDAsMHg5MCwweDdmLDB4ZDQsMHhlZX0gfSwKLXsgIDksIDB4MGRkOCwgMCwgezB4ZjAsMHg5MCwweDdmLDB4ZDUsMHhlYywweGYwLDB4MDIsMHgwZSwweGNkfSB9LAoteyAgNiwgMHgwZGUxLCAwLCB7MHhiYiwweDA3LDB4MDMsMHgwMiwweDBlLDB4YzV9IH0sCi17ICAzLCAweDBkZTcsIDAsIHsweGJiLDB4MDgsMHgxMH0gfSwKLXsgMTMsIDB4MGRlYSwgMCwgezB4YWMsMHg0OCwweDkwLDB4N2YsMHgwMCwweGVjLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAzLCAweDBkZjcsIDAsIHsweDAyLDB4MGUsMHhjZH0gfSwKLXsgIDMsIDB4MGRmYSwgMCwgezB4YmIsMHgwOSwweDMxfSB9LAoteyAgNSwgMHgwZGZkLCAwLCB7MHhiYSwweDAwLDB4MDIsMHg4MCwweDAzfSB9LAoteyAgMywgMHgwZTAyLCAwLCB7MHgwMiwweDBlLDB4YzV9IH0sCi17IDE0LCAweDBlMDUsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmMsMHhjMywweDc0LDB4MDEsMHg5YywweDUwLDB4MDMsMHgwMiwweDBlLDB4YzV9IH0sCi17ICA4LCAweDBlMTMsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmMsMHhiYywweDAwLDB4MGF9IH0sCi17IDEwLCAweDBlMWIsIDAsIHsweDkwLDB4MTcsMHgyMSwweGU0LDB4ZjAsMHg5MCwweDE3LDB4MjIsMHhlNCwweGYwfSB9LAoteyAgOSwgMHgwZTI1LCAwLCB7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGY1LDB4NDgsMHgwMiwweDBlLDB4Y2R9IH0sCi17ICAzLCAweDBlMmUsIDAsIHsweGJiLDB4MGEsMHgyN30gfSwKLXsgIDUsIDB4MGUzMSwgMCwgezB4YmEsMHg4MSwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGUzNiwgMCwgezB4MDIsMHgwZSwweGM1fSB9LAoteyAxNCwgMHgwZTM5LCAwLCB7MHg5MCwweDdmLDB4ZWMsMHhlMCwweGZhLDB4MjQsMHgyMCwweGZhLDB4ZTQsMHgzNCwweDE3LDB4ZmMsMHg4YSwweDgyfSB9LAoteyAxNCwgMHgwZTQ3LCAwLCB7MHg4YywweDgzLDB4ZTAsMHhmYSwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMywgMHgwZTU1LCAwLCB7MHgwMiwweDBlLDB4Y2R9IH0sCi17ICA1LCAweDBlNTgsIDAsIHsweGJiLDB4MGIsMHgwMiwweDgwLDB4MDN9IH0sCi17ICAzLCAweDBlNWQsIDAsIHsweDAyLDB4MGUsMHhhOX0gfSwKLXsgMTMsIDB4MGU2MCwgMCwgezB4OTAsMHgxNywweDIwLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmEsMHhiYSwweDAxLDB4MWF9IH0sCi17ICA4LCAweDBlNmQsIDAsIHsweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmEsMHhiYSwweDAwLDB4MTJ9IH0sCi17IDE0LCAweDBlNzUsIDAsIHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmEsMHg5MCwweDE3LDB4MjEsMHhmMCwweGMwLDB4MDMsMHgxMiwweDA0LDB4ZTJ9IH0sCi17ICA0LCAweDBlODMsIDAsIHsweGQwLDB4MDMsMHg4MCwweDQ2fSB9LAoteyAgOCwgMHgwZTg3LCAwLCB7MHg5MCwweDdmLDB4ZWMsMHhlMCwweGZhLDB4YmEsMHgwMiwweDNlfSB9LAoteyAgOCwgMHgwZThmLCAwLCB7MHg5MCwweDdmLDB4ZWQsMHhlMCwweGZhLDB4YmEsMHgwMCwweDM2fSB9LAoteyAxMywgMHgwZTk3LCAwLCB7MHhjMCwweDAzLDB4MTIsMHgwNCwweGVmLDB4ZDAsMHgwMywweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmEsMHg5MH0gfSwKLXsgIDUsIDB4MGVhNCwgMCwgezB4MTcsMHgyMiwweGYwLDB4ODAsMHgyNH0gfSwKLXsgIDUsIDB4MGVhOSwgMCwgezB4YmIsMHgxMiwweDAyLDB4ODAsMHgxN30gfSwKLXsgIDUsIDB4MGVhZSwgMCwgezB4YmIsMHg4MSwweDAyLDB4ODAsMHgwZH0gfSwKLXsgIDUsIDB4MGViMywgMCwgezB4YmIsMHg4MywweDAyLDB4ODAsMHgwOH0gfSwKLXsgIDUsIDB4MGViOCwgMCwgezB4YmIsMHg4MiwweDAyLDB4ODAsMHgwM30gfSwKLXsgIDMsIDB4MGViZCwgMCwgezB4YmIsMHg4NCwweDA1fSB9LAoteyAgNSwgMHgwZWMwLCAwLCB7MHgxMiwweDA2LDB4NGUsMHg4MCwweDA4fSB9LAoteyAgOCwgMHgwZWM1LCAwLCB7MHg5MCwweDdmLDB4YjQsMHg3NCwweDAzLDB4ZjAsMHg4MCwweDA2fSB9LAoteyAgNiwgMHgwZWNkLCAwLCB7MHg5MCwweDdmLDB4YjQsMHg3NCwweDAyLDB4ZjB9IH0sCi17ICAyLCAweDBlZDMsIDAsIHsweGQwLDB4ODZ9IH0sCi17IDE0LCAweDBlZDUsIDAsIHsweGQwLDB4ZDAsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwNSwweGQwLDB4MDR9IH0sCi17IDEzLCAweDBlZTMsIDAsIHsweGQwLDB4MDMsMHhkMCwweDAyLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAxMSwgMHgwZWYwLCAwLCB7MHg5MCwweDdmLDB4ZWMsMHhlMCwweGY1LDB4NWEsMHhjMywweDk0LDB4MDEsMHg0MCwweDFkfSB9LAoteyAgNywgMHgwZWZiLCAwLCB7MHhjMywweDc0LDB4MDcsMHg5NSwweDVhLDB4NDAsMHgxNn0gfSwKLXsgMTMsIDB4MGYwMiwgMCwgezB4ZTUsMHg1YSwweDI0LDB4ZmYsMHgyNSwweGUwLDB4ZmEsMHgyNCwweGM2LDB4ZjUsMHg4MiwweGU0LDB4MzR9IH0sCi17ICA5LCAweDBmMGYsIDAsIHsweDdmLDB4ZjUsMHg4MywweGFhLDB4NTksMHhlYSwweGYwLDB4ODAsMHgyMn0gfSwKLXsgIDcsIDB4MGYxOCwgMCwgezB4YzMsMHhlNSwweDVhLDB4OTQsMHg4MSwweDQwLDB4MWJ9IH0sCi17ICA3LCAweDBmMWYsIDAsIHsweGMzLDB4NzQsMHg4NywweDk1LDB4NWEsMHg0MCwweDE0fSB9LAoteyAxMywgMHgwZjI2LCAwLCB7MHhlNSwweDVhLDB4MjQsMHhmZiwweDI1LDB4ZTAsMHhmYSwweDI0LDB4YjYsMHhmNSwweDgyLDB4ZTQsMHgzNH0gfSwKLXsgIDcsIDB4MGYzMywgMCwgezB4N2YsMHhmNSwweDgzLDB4YWEsMHg1OSwweGVhLDB4ZjB9IH0sCi17ICAxLCAweDBmM2EsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgwZjNiLCAwLCB7MHgwOSwweDAyLDB4YmEsMHgwMCwweDAzLDB4MDEsMHgwMCwweDQwLDB4MDAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfSB9LAoteyAxNCwgMHgwZjQ5LCAwLCB7MHgwMSwweDAxLDB4MDAsMHgwMCwweDA5LDB4MjQsMHgwMSwweDAwLDB4MDEsMHgzZCwweDAwLDB4MDEsMHgwMSwweDBjfSB9LAoteyAxNCwgMHgwZjU3LCAwLCB7MHgyNCwweDAyLDB4MDEsMHgxMCwweDA3LDB4MDAsMHgwMiwweDAzLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgyNCwweDA2fSB9LAoteyAxNCwgMHgwZjY1LCAwLCB7MHgwMywweDAxLDB4MDIsMHgxNSwweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMCwweDA5LDB4MjQsMHgwMywweDAyfSB9LAoteyAxNCwgMHgwZjczLCAwLCB7MHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMiwweDAzLDB4MDAsMHgwMywweDAwfSB9LAoteyAxNCwgMHgwZjgxLCAwLCB7MHgwOSwweDI0LDB4MDMsMHgwNSwweDAzLDB4MDYsMHgwMCwweDAxLDB4MDAsMHgwOSwweDA0LDB4MDEsMHgwMCwweDAwfSB9LAoteyAxNCwgMHgwZjhmLCAwLCB7MHgwMSwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3fSB9LAoteyAxNCwgMHgwZjlkLCAwLCB7MHgyNCwweDAxLDB4MDIsMHgwMSwweDAxLDB4MDAsMHgwYiwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDIsMHgxMCwweDAxfSB9LAoteyAxNCwgMHgwZmFiLCAwLCB7MHg4MCwweGJiLDB4MDAsMHgwOSwweDA1LDB4ODgsMHgwNSwweDAwLDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1fSB9LAoteyAxNCwgMHgwZmI5LCAwLCB7MHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAxNCwgMHgwZmM3LCAwLCB7MHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDAsMHgwMCwweDAwfSB9LAoteyAxNCwgMHgwZmQ1LCAwLCB7MHgwOSwweDA0LDB4MDIsMHgwMSwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwfSB9LAoteyAxNCwgMHgwZmUzLCAwLCB7MHgwMCwweDAwLDB4MDcsMHgwNSwweDAyLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwOSwweDA1LDB4ODksMHgwNSwweGEwfSB9LAoteyAxMCwgMHgwZmYxLCAwLCB7MHgwMSwweDAxLDB4MDAsMHgwMCwweDAwLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMH0gfSwKLXsgMTQsIDB4MGZmYiwgMCwgezB4MTIsMHgwMSwweDAwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDQ3LDB4MDUsMHg5OSwweDk5LDB4MDAsMHgwMX0gfSwKLXsgMTQsIDB4MTAwOSwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDIsMHhiYX0gfSwKLXsgIDQsIDB4MTAxNywgMCwgezB4MDAsMHgwMywweDAxLDB4MDB9IH0sCi17ICAyLCAweDEwMWIsIDAsIHsweDdhLDB4MDB9IH0sCi17ICAzLCAweDEwMWQsIDAsIHsweGJhLDB4MDUsMHgwMH0gfSwKLXsgIDIsIDB4MTAyMCwgMCwgezB4NTAsMHgxN30gfSwKLXsgIDgsIDB4MTAyMiwgMCwgezB4OTAsMHg3ZiwweGE1LDB4ZTAsMHhmYiwweDMwLDB4ZTAsMHgwNX0gfSwKLXsgIDUsIDB4MTAyYSwgMCwgezB4OTAsMHgwMCwweDAxLDB4ODAsMHgwZH0gfSwKLXsgMTAsIDB4MTAyZiwgMCwgezB4YzAsMHgwMiwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDIsMHgwYSwweDgwLDB4ZTR9IH0sCi17ICAzLCAweDEwMzksIDAsIHsweDkwLDB4MDAsMHgwMX0gfSwKLXsgIDEsIDB4MTAzYywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDEwM2QsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZmIsMHg3YywweDAwLDB4N2R9IH0sCi17ICA0LCAweDEwNGIsIDAsIHsweDdlLDB4ZWIsMHg2MCwweDEyfSB9LAoteyAxNCwgMHgxMDRmLCAwLCB7MHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4YTMsMHhhOSwweDgyLDB4YWEsMHg4MywweDhjLDB4ODIsMHg4ZCwweDgzfSB9LAoteyAgNCwgMHgxMDVkLCAwLCB7MHhmMCwweDBjLDB4ZGIsMHhlZX0gfSwKLXsgIDgsIDB4MTA2MSwgMCwgezB4OTAsMHg3ZCwweGMzLDB4ZTAsMHg5MCwweDdmLDB4YjksMHhmMH0gfSwKLXsgIDEsIDB4MTA2OSwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDEwNmEsIDAsIHsweDkwLDB4N2QsMHhjMSwweGUwLDB4ZjksMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZmIsMHg3YywweGM0LDB4N2R9IH0sCi17ICA0LCAweDEwNzgsIDAsIHsweDdkLDB4ZWIsMHg2MCwweGU1fSB9LAoteyAxNCwgMHgxMDdjLCAwLCB7MHg4YywweDgyLDB4OGQsMHg4MywweGUwLDB4MGMsMHg4OSwweDgyLDB4OGEsMHg4MywweGYwLDB4YTMsMHhhOSwweDgyfSB9LAoteyAgNCwgMHgxMDhhLCAwLCB7MHhhYSwweDgzLDB4ZGIsMHhlZX0gfSwKLXsgIDEsIDB4MTA4ZSwgMCwgezB4MjJ9IH0sCi17IDE0LCAweDEwOGYsIDAsIHsweDkwLDB4N2YsMHhhNSwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHg5MCwweDdkLDB4YzEsMHhlMCwweDA1LDB4ODZ9IH0sCi17IDE0LCAweDEwOWQsIDAsIHsweGEzLDB4ZjAsMHgxMiwweDEwLDB4MWIsMHg5MCwweDdmLDB4YTYsMHgwNSwweDg2LDB4YTMsMHhhMywweGUwLDB4Zjl9IH0sCi17ICA1LCAweDEwYWIsIDAsIHsweDYwLDB4MTYsMHhhMywweDA1LDB4ODZ9IH0sCi17IDEzLCAweDEwYjAsIDAsIHsweDkwLDB4N2YsMHhhNiwweDA1LDB4ODYsMHhlMCwweGEzLDB4MDUsMHg4NiwweGYwLDB4YzAsMHgwMSwweDEyfSB9LAoteyAgNiwgMHgxMGJkLCAwLCB7MHgxMCwweDFiLDB4ZDAsMHgwMSwweGQ5LDB4ZWR9IH0sCi17ICA2LCAweDEwYzMsIDAsIHsweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMH0gfSwKLXsgIDEsIDB4MTBjOSwgMCwgezB4MjJ9IH0sCi17ICA4LCAweDEwY2EsIDAsIHsweDkwLDB4ODgsMHgwMiwweDc0LDB4MDEsMHhmMCwweDdhLDB4MDB9IH0sCi17ICAzLCAweDEwZDIsIDAsIHsweGJhLDB4ZmYsMHgwMH0gfSwKLXsgIDIsIDB4MTBkNSwgMCwgezB4NTAsMHgwYX0gfSwKLXsgMTAsIDB4MTBkNywgMCwgezB4YzAsMHgwMiwweDEyLDB4MDEsMHhkZCwweGQwLDB4MDIsMHgwYSwweDgwLDB4ZjF9IH0sCi17ICAxLCAweDEwZTEsIDAsIHsweDIyfSB9LAoteyAgNSwgMHgxMGUyLCAwLCB7MHhlNSwweDZiLDB4YjQsMHhjMCwweDA4fSB9LAoteyAgOCwgMHgxMGU3LCAwLCB7MHg5MCwweDg4LDB4MDMsMHhlNSwweDZjLDB4ZjAsMHg4MCwweDA2fSB9LAoteyAgNiwgMHgxMGVmLCAwLCB7MHg5MCwweDg4LDB4MDIsMHhlNSwweDZjLDB4ZjB9IH0sCi17ICA0LCAweDEwZjUsIDAsIHsweDdhLDB4MDAsMHg3YiwweDAwfSB9LAoteyAxMSwgMHgxMGY5LCAwLCB7MHhjMywweGVhLDB4OTQsMHgzMiwweGViLDB4NjQsMHg4MCwweDk0LDB4ODAsMHg1MCwweDA3fSB9LAoteyAgNSwgMHgxMTA0LCAwLCB7MHgwYSwweGJhLDB4MDAsMHgwMSwweDBifSB9LAoteyAgMiwgMHgxMTA5LCAwLCB7MHg4MCwweGVlfSB9LAoteyAgMSwgMHgxMTBiLCAwLCB7MHgyMn0gfSwKLXsgMTAsIDB4MTEwYywgMCwgezB4OTAsMHg4OCwweDAzLDB4ZTUsMHg2ZCwweGYwLDB4MDUsMHgzOSwweDdhLDB4MDB9IH0sCi17ICAzLCAweDExMTYsIDAsIHsweGJhLDB4MjgsMHgwMH0gfSwKLXsgIDIsIDB4MTExOSwgMCwgezB4NTAsMHgwM30gfSwKLXsgIDMsIDB4MTExYiwgMCwgezB4MGEsMHg4MCwweGY4fSB9LAoteyAgNSwgMHgxMTFlLCAwLCB7MHhlNSwweDM5LDB4YjQsMHgxMCwweDA4fSB9LAoteyAgOCwgMHgxMTIzLCAwLCB7MHg5MCwweDg4LDB4MDIsMHg3NCwweGMwLDB4ZjAsMHg4MCwweDBlfSB9LAoteyAgNSwgMHgxMTJiLCAwLCB7MHhlNSwweDM5LDB4YjQsMHgyMCwweDA5fSB9LAoteyAgOSwgMHgxMTMwLCAwLCB7MHg5MCwweDg4LDB4MDIsMHg3NCwweDgwLDB4ZjAsMHg3NSwweDM5LDB4MDB9IH0sCi17ICAyLCAweDExMzksIDAsIHsweDdhLDB4MDB9IH0sCi17ICAzLCAweDExM2IsIDAsIHsweGJhLDB4MjgsMHgwMH0gfSwKLXsgIDIsIDB4MTEzZSwgMCwgezB4NTAsMHgwM30gfSwKLXsgIDMsIDB4MTE0MCwgMCwgezB4MGEsMHg4MCwweGY4fSB9LAoteyAgMSwgMHgxMTQzLCAwLCB7MHgyMn0gfSwKLXsgIDQsIDB4MTE0NCwgMCwgezB4ZTUsMHg2ZiwweDYwLDB4MDJ9IH0sCi17ICAyLCAweDExNDgsIDAsIHsweDgwLDB4MDd9IH0sCi17ICA3LCAweDExNGEsIDAsIHsweDdhLDB4MDAsMHg3NSwweDM5LDB4MDAsMHg4MCwweDA1fSB9LAoteyAgNSwgMHgxMTUxLCAwLCB7MHg3YSwweDQwLDB4NzUsMHgzOSwweDEwfSB9LAoteyAgOSwgMHgxMTU2LCAwLCB7MHhlNSwweDZlLDB4MmEsMHhmYSwweGU1LDB4NmUsMHgyNSwweDM5LDB4ZjV9IH0sCi17IDEwLCAweDExNWYsIDAsIHsweDM5LDB4OTAsMHg4OCwweDAyLDB4NzQsMHg4MCwweDJhLDB4ZjAsMHg3YSwweDAwfSB9LAoteyAgOCwgMHgxMTY5LCAwLCB7MHhjMywweGVhLDB4NjQsMHg4MCwweDk0LDB4YTgsMHg1MCwweDAzfSB9LAoteyAgMywgMHgxMTcxLCAwLCB7MHgwYSwweDgwLDB4ZjV9IH0sCi17ICAxLCAweDExNzQsIDAsIHsweDIyfSB9LAoteyAgNiwgMHgxMTc1LCAwLCB7MHhhYSwweDcwLDB4YWIsMHg3MSwweGFjLDB4NzJ9IH0sCi17IDEyLCAweDExN2IsIDAsIHsweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweDEyLDB4MTQsMHhlZSwweGZkLDB4NjAsMHgxOH0gfSwKLXsgMTMsIDB4MTE4NywgMCwgezB4OGQsMHg2ZCwweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweDEyLDB4MTEsMHgwYywweGQwLDB4MDR9IH0sCi17ICA5LCAweDExOTQsIDAsIHsweGQwLDB4MDMsMHhkMCwweDAyLDB4MGEsMHhiYSwweDAwLDB4MDEsMHgwYn0gfSwKLXsgIDIsIDB4MTE5ZCwgMCwgezB4ODAsMHhkY30gfSwKLXsgIDEsIDB4MTE5ZiwgMCwgezB4MjJ9IH0sCi17IDEzLCAweDExYTAsIDAsIHsweGU1LDB4NzMsMHhjNCwweDU0LDB4MGYsMHhmYSwweDUzLDB4MDIsMHgwZiwweGMzLDB4NzQsMHgwOSwweDlhfSB9LAoteyAgMiwgMHgxMWFkLCAwLCB7MHg1MCwweDA2fSB9LAoteyAgNiwgMHgxMWFmLCAwLCB7MHg3NCwweDM3LDB4MmEsMHhmYiwweDgwLDB4MDR9IH0sCi17ICA0LCAweDExYjUsIDAsIHsweDc0LDB4MzAsMHgyYSwweGZifSB9LAoteyAxMiwgMHgxMWI5LCAwLCB7MHg4YiwweDZkLDB4YzAsMHgwMywweDEyLDB4MTEsMHgwYywweGQwLDB4MDMsMHhhYSwweDczLDB4NTN9IH0sCi17ICA4LCAweDExYzUsIDAsIHsweDAyLDB4MGYsMHhjMywweDc0LDB4MDksMHg5YSwweDUwLDB4MDZ9IH0sCi17ICA2LCAweDExY2QsIDAsIHsweDc0LDB4MzcsMHgyYSwweGZiLDB4ODAsMHgwNH0gfSwKLXsgIDQsIDB4MTFkMywgMCwgezB4NzQsMHgzMCwweDJhLDB4ZmJ9IH0sCi17ICA1LCAweDExZDcsIDAsIHsweDhiLDB4NmQsMHgxMiwweDExLDB4MGN9IH0sCi17ICAxLCAweDExZGMsIDAsIHsweDIyfSB9LAoteyAgNywgMHgxMWRkLCAwLCB7MHg5MCwweDdkLDB4YzMsMHhlMCwweGZhLDB4NjAsMHgwZn0gfSwKLXsgMTIsIDB4MTFlNCwgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmNSwweDZlLDB4OTAsMHg3ZCwweGMyLDB4ZTAsMHhmNSwweDZmfSB9LAoteyAgMywgMHgxMWYwLCAwLCB7MHgxMiwweDExLDB4NDR9IH0sCi17IDEyLCAweDExZjMsIDAsIHsweDkwLDB4N2QsMHhmZiwweGU0LDB4ZjAsMHg3NSwweDcwLDB4YzQsMHg3NSwweDcxLDB4N2QsMHg3NX0gfSwKLXsgIDUsIDB4MTFmZiwgMCwgezB4NzIsMHgwMSwweDEyLDB4MTEsMHg3NX0gfSwKLXsgIDEsIDB4MTIwNCwgMCwgezB4MjJ9IH0sCi17ICAyLCAweDEyMDUsIDAsIHsweDdhLDB4MDR9IH0sCi17ICAzLCAweDEyMDcsIDAsIHsweGJhLDB4NDAsMHgwMH0gfSwKLXsgIDIsIDB4MTIwYSwgMCwgezB4NTAsMHgzNn0gfSwKLXsgMTQsIDB4MTIwYywgMCwgezB4ZWEsMHgyNCwweGMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZCwweGY1LDB4ODMsMHhlMCwweGZiLDB4N2MsMHgwMH0gfSwKLXsgIDMsIDB4MTIxYSwgMCwgezB4YmMsMHgwOCwweDAwfSB9LAoteyAgMiwgMHgxMjFkLCAwLCB7MHg1MCwweDIwfSB9LAoteyAgNiwgMHgxMjFmLCAwLCB7MHg4YiwweDA1LDB4ZWQsMHgzMCwweGU3LDB4MGJ9IH0sCi17IDExLCAweDEyMjUsIDAsIHsweDkwLDB4N2YsMHg5NiwweDc0LDB4NDIsMHhmMCwweDc0LDB4YzMsMHhmMCwweDgwLDB4MDh9IH0sCi17ICA4LCAweDEyMzAsIDAsIHsweDkwLDB4N2YsMHg5NiwweGU0LDB4ZjAsMHg3NCwweDgxLDB4ZjB9IH0sCi17ICA3LCAweDEyMzgsIDAsIHsweGViLDB4MjUsMHhlMCwweGZiLDB4MGMsMHg4MCwweGRifSB9LAoteyAgMywgMHgxMjNmLCAwLCB7MHgwYSwweDgwLDB4YzV9IH0sCi17ICAxLCAweDEyNDIsIDAsIHsweDIyfSB9LAoteyAgNCwgMHgxMjQzLCAwLCB7MHg3YSwweDAwLDB4N2IsMHhlZn0gfSwKLXsgIDMsIDB4MTI0NywgMCwgezB4YmEsMHgxMCwweDAwfSB9LAoteyAgMiwgMHgxMjRhLCAwLCB7MHg1MCwweDIwfSB9LAoteyAxNCwgMHgxMjRjLCAwLCB7MHg3NCwweDExLDB4MmIsMHhmYiwweDI0LDB4MDAsMHhmYywweGU0LDB4MzQsMHgxOCwweGZkLDB4OGMsMHg4MiwweDhkfSB9LAoteyAxNCwgMHgxMjVhLCAwLCB7MHg4MywweGU0LDB4ZjAsMHhlYSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDE5LDB4ZjUsMHg4MywweGU0fSB9LAoteyAgNCwgMHgxMjY4LCAwLCB7MHhmMCwweDBhLDB4ODAsMHhkYn0gfSwKLXsgIDEsIDB4MTI2YywgMCwgezB4MjJ9IH0sCi17IDE0LCAweDEyNmQsIDAsIHsweDc0LDB4ZjgsMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17IDE0LCAweDEyN2IsIDAsIHsweDc0LDB4ZjksMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17IDE0LCAweDEyODksIDAsIHsweDc0LDB4ZmEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17IDE0LCAweDEyOTcsIDAsIHsweDc0LDB4ZmIsMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17IDE0LCAweDEyYTUsIDAsIHsweDc0LDB4ZmYsMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweGU0LDB4ZjB9IH0sCi17ICAxLCAweDEyYjMsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxMmI0LCAwLCB7MHgxMiwweDAzLDB4Y2IsMHgxMiwweDEyLDB4NmQsMHg3YSwweGMwLDB4N2IsMHg4NywweDdjLDB4MDEsMHg3NCwweDAxfSB9LAoteyAxNCwgMHgxMmMyLCAwLCB7MHgyYSwweGZkLDB4ZTQsMHgzYiwweGZlLDB4OGMsMHgwNywweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweDc0fSB9LAoteyAxNCwgMHgxMmQwLCAwLCB7MHgwMSwweDEyLDB4MTQsMHhiZiwweDJkLDB4ZmEsMHhlNCwweDNlLDB4ZmIsMHg4ZiwweDA0LDB4OGQsMHg4MiwweDhlfSB9LAoteyAxNCwgMHgxMmRlLCAwLCB7MHg4MywweDhmLDB4ZjAsMHg3NCwweDA2LDB4MTIsMHgxNCwweGJmLDB4NzQsMHgwMSwweDJhLDB4ZmQsMHhlNCwweDNifSB9LAoteyAxNCwgMHgxMmVjLCAwLCB7MHhmZSwweDhjLDB4MDcsMHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHhlNCwweDEyLDB4MTQsMHhiZiwweDc0fSB9LAoteyAxNCwgMHgxMmZhLCAwLCB7MHgwMSwweDJkLDB4ZmEsMHhlNCwweDNlLDB4ZmIsMHg4ZiwweDA0LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg4ZiwweGYwfSB9LAoteyAxNCwgMHgxMzA4LCAwLCB7MHg3NCwweDBiLDB4MTIsMHgxNCwweGJmLDB4NzQsMHgwMSwweDJhLDB4ZmQsMHhlNCwweDNiLDB4ZmUsMHg4YywweDA3fSB9LAoteyAxNCwgMHgxMzE2LCAwLCB7MHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHg3NCwweDA4LDB4MTIsMHgxNCwweGJmLDB4NzQsMHgwMSwweDJkfSB9LAoteyAxNCwgMHgxMzI0LCAwLCB7MHhmYSwweGU0LDB4M2UsMHhmYiwweDhmLDB4MDQsMHg4ZCwweDgyLDB4OGUsMHg4MywweDhmLDB4ZjAsMHg3NCwweDAxfSB9LAoteyAxNCwgMHgxMzMyLCAwLCB7MHgxMiwweDE0LDB4YmYsMHgyYSwweGZkLDB4ZTQsMHgzYiwweGZlLDB4OGMsMHgwNywweDhhLDB4ODIsMHg4YiwweDgzfSB9LAoteyAxNCwgMHgxMzQwLCAwLCB7MHg4YywweGYwLDB4ZTQsMHgxMiwweDE0LDB4YmYsMHg3NCwweDAxLDB4MmQsMHhmYSwweGU0LDB4M2UsMHhmYiwweDhmfSB9LAoteyAxNCwgMHgxMzRlLCAwLCB7MHgwNCwweDhkLDB4ODIsMHg4ZSwweDgzLDB4OGYsMHhmMCwweDc0LDB4MDMsMHgxMiwweDE0LDB4YmYsMHg3ZCwweDAwfSB9LAoteyAgMywgMHgxMzVjLCAwLCB7MHhiZCwweDA2LDB4MDB9IH0sCi17ICAyLCAweDEzNWYsIDAsIHsweDUwLDB4MTJ9IH0sCi17IDExLCAweDEzNjEsIDAsIHsweDhhLDB4ODIsMHg4YiwweDgzLDB4OGMsMHhmMCwweDBhLDB4YmEsMHgwMCwweDAxLDB4MGJ9IH0sCi17ICA3LCAweDEzNmMsIDAsIHsweGU0LDB4MTIsMHgxNCwweGJmLDB4MGQsMHg4MCwweGU5fSB9LAoteyAxMywgMHgxMzczLCAwLCB7MHg4YSwweDgyLDB4OGIsMHg4MywweDhjLDB4ZjAsMHhlNSwweDc0LDB4MTIsMHgxNCwweGJmLDB4NzQsMHhmOX0gfSwKLXsgMTQsIDB4MTM4MCwgMCwgezB4MjQsMHgwMCwweGY1LDB4ODIsMHg3NCwweDAzLDB4MzQsMHg4NCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHg3NH0gfSwKLXsgMTQsIDB4MTM4ZSwgMCwgezB4ZmUsMHgyNCwweDAwLDB4ZjUsMHg4MiwweDc0LDB4MDMsMHgzNCwweDg0LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDYsIDB4MTM5YywgMCwgezB4MTIsMHgwMywweGUxLDB4MTIsMHgwNCwweGY3fSB9LAoteyAgMSwgMHgxM2EyLCAwLCB7MHgyMn0gfSwKLXsgMTMsIDB4MTNhMywgMCwgezB4OTAsMHg3ZCwweGMxLDB4ZTAsMHhmYSwweDI0LDB4MDAsMHhmYiwweGU0LDB4MzQsMHgxOSwweGZjLDB4OTB9IH0sCi17IDE0LCAweDEzYjAsIDAsIHsweDdkLDB4YzIsMHhlMCwweGZkLDB4OGIsMHg4MiwweDhjLDB4ODMsMHhmMCwweDc1LDB4ZjAsMHgxMSwweGVhLDB4YTR9IH0sCi17ICAzLCAweDEzYmUsIDAsIHsweGZhLDB4N2IsMHgwMH0gfSwKLXsgIDMsIDB4MTNjMSwgMCwgezB4YmIsMHgxMCwweDAwfSB9LAoteyAgMiwgMHgxM2M0LCAwLCB7MHg1MCwweDI0fSB9LAoteyAxNCwgMHgxM2M2LCAwLCB7MHhlYSwweDI0LDB4MDAsMHhmYywweGU0LDB4MzQsMHgxOCwweGZkLDB4ZWIsMHgyYywweGZjLDB4ZTQsMHgzZCwweGZkfSB9LAoteyAxNCwgMHgxM2Q0LCAwLCB7MHg3NCwweDA0LDB4MmIsMHgyNCwweGMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZCwweGY1LDB4ODMsMHhlMCwweGZlfSB9LAoteyAgOCwgMHgxM2UyLCAwLCB7MHg4YywweDgyLDB4OGQsMHg4MywweGYwLDB4MGIsMHg4MCwweGQ3fSB9LAoteyAxNCwgMHgxM2VhLCAwLCB7MHhlYSwweDI0LDB4MDAsMHhmYSwweGU0LDB4MzQsMHgxOCwweGZiLDB4NzQsMHgxMCwweDJhLDB4ZjUsMHg4MiwweGU0fSB9LAoteyAgNSwgMHgxM2Y4LCAwLCB7MHgzYiwweGY1LDB4ODMsMHhlNCwweGYwfSB9LAoteyAgMSwgMHgxM2ZkLCAwLCB7MHgyMn0gfSwKLXsgIDQsIDB4MTNmZSwgMCwgezB4ZTUsMHg3NiwweDYwLDB4MDJ9IH0sCi17ICAyLCAweDE0MDIsIDAsIHsweDgwLDB4MTZ9IH0sCi17IDEyLCAweDE0MDQsIDAsIHsweDc0LDB4MGYsMHg1NSwweDc1LDB4ZmEsMHg4YSwweDc1LDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNH0gfSwKLXsgMTAsIDB4MTQxMCwgMCwgezB4MzQsMHgxOSwweGY1LDB4ODMsMHhlMCwweGY1LDB4NzQsMHgxMiwweDEyLDB4YjR9IH0sCi17IDEwLCAweDE0MWEsIDAsIHsweDEyLDB4MTAsMHhjYSwweDc1LDB4NmUsMHgwMCwweDc1LDB4NmYsMHgwMCwweDEyfSB9LAoteyAgNiwgMHgxNDI0LCAwLCB7MHgxMSwweDQ0LDB4NzUsMHg3MCwweGI5LDB4NzV9IH0sCi17ICA2LCAweDE0MmEsIDAsIHsweDcxLDB4MTQsMHg3NSwweDcyLDB4MDIsMHgxMn0gfSwKLXsgMTEsIDB4MTQzMCwgMCwgezB4MTEsMHg3NSwweGU1LDB4NzYsMHhiNCwweDAyLDB4MDQsMHg3NCwweDAxLDB4ODAsMHgwMX0gfSwKLXsgIDEsIDB4MTQzYiwgMCwgezB4ZTR9IH0sCi17ICAzLCAweDE0M2MsIDAsIHsweGZhLDB4NzAsMHgwZn0gfSwKLXsgMTIsIDB4MTQzZiwgMCwgezB4NzQsMHgwMSwweDI1LDB4NzUsMHhmNSwweDczLDB4YzAsMHgwMiwweDEyLDB4MTEsMHhhMCwweGQwfSB9LAoteyAgMywgMHgxNDRiLCAwLCB7MHgwMiwweDgwLDB4MGF9IH0sCi17IDEwLCAweDE0NGUsIDAsIHsweDg1LDB4NzUsMHg3MywweGMwLDB4MDIsMHgxMiwweDExLDB4YTAsMHhkMCwweDAyfSB9LAoteyAxMiwgMHgxNDU4LCAwLCB7MHg3NSwweDZlLDB4MDAsMHg3NSwweDZmLDB4MDEsMHhjMCwweDAyLDB4MTIsMHgxMSwweDQ0LDB4ZDB9IH0sCi17ICA0LCAweDE0NjQsIDAsIHsweDAyLDB4ZWEsMHg3MCwweDFhfSB9LAoteyAxMywgMHgxNDY4LCAwLCB7MHg3NSwweGYwLDB4MTEsMHhlNSwweDc1LDB4YTQsMHhmYSwweDI0LDB4MDAsMHhmYSwweGU0LDB4MzQsMHgxOH0gfSwKLXsgIDksIDB4MTQ3NSwgMCwgezB4ZmIsMHg4YSwweDcwLDB4OGIsMHg3MSwweDc1LDB4NzIsMHgwMSwweDEyfSB9LAoteyAgNCwgMHgxNDdlLCAwLCB7MHgxMSwweDc1LDB4ODAsMHgzNn0gfSwKLXsgIDIsIDB4MTQ4MiwgMCwgezB4N2EsMHgwMH0gfSwKLXsgIDMsIDB4MTQ4NCwgMCwgezB4YmEsMHgxMCwweDAwfSB9LAoteyAgMiwgMHgxNDg3LCAwLCB7MHg1MCwweDJmfSB9LAoteyAxMywgMHgxNDg5LCAwLCB7MHhlYSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDE5LDB4ZjUsMHg4MywweGUwLDB4ZmIsMHhlNX0gfSwKLXsgIDQsIDB4MTQ5NiwgMCwgezB4NzUsMHhiNSwweDAzLDB4MWJ9IH0sCi17IDE0LCAweDE0OWEsIDAsIHsweDc1LDB4ZjAsMHgxMSwweGVhLDB4YTQsMHhmYiwweDI0LDB4MDAsMHhmYiwweGU0LDB4MzQsMHgxOCwweGZjLDB4OGJ9IH0sCi17ICA5LCAweDE0YTgsIDAsIHsweDcwLDB4OGMsMHg3MSwweDc1LDB4NzIsMHgwMSwweGMwLDB4MDIsMHgxMn0gfSwKLXsgIDQsIDB4MTRiMSwgMCwgezB4MTEsMHg3NSwweGQwLDB4MDJ9IH0sCi17ICAzLCAweDE0YjUsIDAsIHsweDBhLDB4ODAsMHhjY30gfSwKLXsgIDEsIDB4MTRiOCwgMCwgezB4MjJ9IH0sCi17ICA2LCAweDE0YjksIDAsIHsweDUwLDB4NzIsMHg2ZiwweDY3LDB4MjAsMHgwMH0gfSwKLXsgMTQsIDB4MTRiZiwgMCwgezB4YzgsMHhjMCwweGUwLDB4YzgsMHhjMCwweGUwLDB4ZTUsMHhmMCwweDYwLDB4MGIsMHgxNCwweDYwLDB4MGYsMHgxNH0gfSwKLXsgIDcsIDB4MTRjZCwgMCwgezB4NjAsMHgxMSwweDE0LDB4NjAsMHgxMiwweDgwLDB4MTV9IH0sCi17ICA3LCAweDE0ZDQsIDAsIHsweGQwLDB4ZTAsMHhhOCwweDgyLDB4ZjYsMHg4MCwweDBlfSB9LAoteyAgNSwgMHgxNGRiLCAwLCB7MHhkMCwweGUwLDB4ZjAsMHg4MCwweDA5fSB9LAoteyAgNCwgMHgxNGUwLCAwLCB7MHhkMCwweGUwLDB4ODAsMHgwNX0gfSwKLXsgIDUsIDB4MTRlNCwgMCwgezB4ZDAsMHhlMCwweGE4LDB4ODIsMHhmMn0gfSwKLXsgIDQsIDB4MTRlOSwgMCwgezB4YzgsMHhkMCwweGUwLDB4Yzh9IH0sCi17ICAxLCAweDE0ZWQsIDAsIHsweDIyfSB9LAoteyAxNCwgMHgxNGVlLCAwLCB7MHhjOCwweGMwLDB4ZTAsMHhlNSwweGYwLDB4NjAsMHgwZCwweDE0LDB4NjAsMHgwZiwweDE0LDB4NjAsMHgwZiwweDE0fSB9LAoteyAgNiwgMHgxNGZjLCAwLCB7MHg2MCwweDEwLDB4NzQsMHhmZiwweDgwLDB4MGZ9IH0sCi17ICA1LCAweDE1MDIsIDAsIHsweGE4LDB4ODIsMHhlNiwweDgwLDB4MGF9IH0sCi17ICAzLCAweDE1MDcsIDAsIHsweGUwLDB4ODAsMHgwN30gfSwKLXsgIDQsIDB4MTUwYSwgMCwgezB4ZTQsMHg5MywweDgwLDB4MDN9IH0sCi17ICAzLCAweDE1MGUsIDAsIHsweGE4LDB4ODIsMHhlMn0gfSwKLXsgIDQsIDB4MTUxMSwgMCwgezB4ZjgsMHhkMCwweGUwLDB4Yzh9IH0sCi17ICAxLCAweDE1MTUsIDAsIHsweDIyfSB9LAoteyAgMCwgMHgwMDAwLCAxLCB7MH0gfQotCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBiaXRzdHJlYW1bXSA9IHsKLQotMHgwMCwweDA5LDB4MEYsMHhGMCwweDBGLDB4RjAsMHgwRiwweEYwLCAweDBGLDB4RjAsMHgwMCwweDAwLDB4MDEsMHg2MSwweDAwLDB4MEQsCi0weDY0LDB4NjEsMHg2MiwweDc1LDB4NzMsMHg2MiwweDc0LDB4NzIsIDB4MkUsMHg2RSwweDYzLDB4NjQsMHgwMCwweDYyLDB4MDAsMHgwQiwKLTB4NzMsMHgzMSwweDMwLDB4NzgsMHg2QywweDc2LDB4NzEsMHgzMSwgMHgzMCwweDMwLDB4MDAsMHg2MywweDAwLDB4MEIsMHgzMSwweDM5LAotMHgzOSwweDM5LDB4MkYsMHgzMCwweDM5LDB4MkYsMHgzMiwweDM0LCAweDAwLDB4NjQsMHgwMCwweDA5LDB4MzEsMHgzMCwweDNBLDB4MzQsCi0weDMyLDB4M0EsMHgzNCwweDM2LDB4MDAsMHg2NSwweDAwLDB4MDAsIDB4MkUsMHhDMCwweEZGLDB4MjAsMHgxNywweDVGLDB4OUYsMHg1QiwKLTB4RkUsMHhGQiwweEJCLDB4QjcsMHhCQiwweEJCLDB4RkIsMHhCRiwgMHhBRiwweEVGLDB4RkIsMHhERiwweEI3LDB4RkIsMHhGQiwweDdGLAotMHhCRiwweEI3LDB4RUYsMHhGMiwweEZGLDB4RkIsMHhGRSwweEZGLCAweEZGLDB4RUYsMHhGRiwweEZFLDB4RkYsMHhCRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhBRiwweEZGLDB4RkEsMHhGRiwweEZGLDB4RkYsIDB4QzksMHhGRiwweEZGLDB4RkYsMHhERiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4QTMsMHhGRiwweEZCLAotMHhGRSwweEZGLDB4QkYsMHhFRiwweEUzLDB4RkUsMHhGRiwweEJGLCAweEUzLDB4RkUsMHhGRiwweEJGLDB4NkYsMHhGQiwweEY2LDB4RkYsCi0weEJGLDB4RkYsMHg0NywweEZGLDB4RkYsMHg5RiwweEVFLDB4RjksIDB4RkUsMHhDRiwweDlGLDB4RUYsMHhGQiwweENGLDB4OUIsMHhFRSwKLTB4RjgsMHhGRSwweEVGLDB4OEYsMHhFRSwweEZCLDB4RkUsMHgwQiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkIsMHhGRiwweEZGLCAweEJGLDB4RkYsMHhGRiwweEZDLDB4MTcsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLDB4N0YsIDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwKLTB4RkMsMHgzRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHg1RiwweEZGLCAweEZGLDB4RkQsMHhGRiwweEZGLDB4REIsMHhGRiwweEZELDB4RkYsCi0weDc3LDB4RkYsMHhGRCwweEZGLDB4RkYsMHhERiwweEZFLDB4RkQsIDB4RkYsMHhGRiwweEYyLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEUxLAotMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHgzRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RTMsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhCRiwKLTB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweDY3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHg3RiwweEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhERiwweEZGLDB4RkYsMHhGRiwweDJGLDB4RkYsCi0weEYzLDB4RkQsMHhGRiwweDdGLDB4REUsMHhGNywweEZELDB4RkYsIDB4N0YsMHhGNywweDdELDB4RkYsMHg3RiwweERGLDB4RjcsMHhCRCwKLTB4RkYsMHg3RiwweEZGLDB4MUYsMHhGRiwweEVGLDB4RkIsMHhGRSwgMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhFRiwweEZCLAotMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZGLCAweDNGLDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsCi0weDlGLDB4RTcsMHhGQSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsIDB4N0YsMHg5RiwweEU3LDB4RkYsMHhGQywweDdGLDB4QkYsMHhCRiwKLTB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhCNywgMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLAotMHhGRiwweEUwLDB4RkQsMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LCAweEY5LDB4RkUsMHg3RiwweDlELDB4RjksMHhGRSwweDdELDB4OUQsCi0weEU3LDB4RjksMHhGRSwweDdGLDB4OUYsMHhFRCwweEVELDB4RkYsIDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwKLTB4REYsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwgMHg3RiwweERGLDB4RkYsMHg5QiwweEZGLDB4RUYsMHhGQiwweEZFLAotMHhGQiwweEJGLDB4RUYsMHhCQiwweEZFLDB4RkYsMHhBRiwweEJCLCAweEJFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkYsCi0weEI3LDB4QkYsMHhEQiwweEY2LDB4QkQsMHhCRiwweDZCLDB4REIsIDB4RjYsMHhGOSwweEJGLDB4NUIsMHhENiwweEY5LDB4QkYsMHg2RiwKLTB4REIsMHhGNiwweEZELDB4QkYsMHhGRiwweDBFLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4NUYsMHhGRiwweEY3LDB4RkYsMHhGRiwweDdGLAotMHhGNywweEJELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4REYsMHg5RiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsCi0weEZGLDB4RUYsMHhGRSwweEZFLDB4RkYsMHhGRiwweDc3LDB4RkYsIDB4RkIsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjgsMHgzRiwKLTB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGNCwweDdGLDB4RkYsMHhGRSwweEZELCAweEJFLDB4RkYsMHhERiwweEZFLDB4RkYsMHhGRiwweEVGLDB4N0YsCi0weEZGLDB4Q0YsMHhGRiwweENGLDB4RkYsMHhGRiwweEZGLDB4REYsIDB4RTYsMHhGRiwweEZGLDB4N0YsMHhERiwweEY3LDB4REQsMHg3RiwKLTB4N0YsMHhERiwweEY3LDB4RkYsMHg3RiwweERGLDB4RDcsMHhGRCwgMHhGRiwweDdGLDB4REYsMHhGNywweEZGLDB4Q0QsMHhGRiwweEYyLAotMHhGRiwweEZGLDB4NEYsMHg3RiwweEY0LDB4RkYsMHhGRiwweEZGLCAweEU3LDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhCQiwweEZGLDB4RUYsMHhGRiwweEZFLDB4RkYsIDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGQiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg2NSwgMHhFRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkQsMHhFRiwweEZGLAotMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZFLDB4Q0YsMHhERiwweEZFLDB4RkYsCi0weEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEYzLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkUsMHhERiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHhCRiwweEZGLCAweEZGLDB4RkYsMHhFMywweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhFRiwweEVCLDB4RkYsMHhGRSwweEJGLDB4RkYsIDB4RUIsMHhGRiwweEZDLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhFRSwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REQsMHhGRiwgMHhENiwweEZGLDB4RkQsMHhCRiwweEZGLDB4RkIsMHhGRiwweEZFLAotMHhGRCwweEZGLDB4RkYsMHhGRCwweEVGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweERFLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhCRiwweEZGLDB4RkQsMHhGRiwweDdGLDB4QkYsIDB4RkYsMHg1RiwweERGLDB4RkYsMHhGRiwweEJGLDB4NzcsMHhGRiwKLTB4RkYsMHhGRiwweDdGLDB4RDcsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEMzLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwweEVGLAotMHhGRiwweEZGLDB4RkUsMHhGQiwweEZGLDB4RkYsMHhERiwweEJGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RUQsMHhGRiwweEI3LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4QUYsMHg3RiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweERGLDB4QkYsMHhERiwweEYzLDB4RkQsMHhGQiwweEZGLDB4NUIsCi0weEZELDB4RkYsMHhCRiwweEVGLDB4RjcsMHhGRiwweEZGLDB4N0QsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGOCwweDNCLDB4RkYsMHhCRiwKLTB4NkYsMHhGRiwweEZFLDB4RkYsMHhCRiwweEZGLDB4RUIsMHg3RCwgMHhGRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEYyLDB4N0YsMHhGQywweEZGLDB4M0YsMHhERiwweEVELCAweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRiwweDVGLDB4RjcsCi0weEI1LDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweEUwLDB4M0YsIDB4OUYsMHg5RSwweEZGLDB4RkYsMHhFRiwweEZGLDB4REYsMHhGRiwKLTB4QkYsMHg1RiwweEJGLDB4Q0YsMHhGMywweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHg2OSwweEFGLDB4MzMsMHhGRCwweEZGLAotMHhGQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkMsMHhGRiwweDdGLCAweEQ5LDB4RkYsMHhERiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjUsCi0weEEzLDB4REYsMHg2RSwweERFLDB4RkYsMHhGRiwweEJELDB4RkYsIDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZFLDB4RTcsMHhGRCwKLTB4RkYsMHhGRiwweEZGLDB4RjksMHhFRiwweEM2LDB4RkUsMHhCNywgMHhBRCwweEU1LDB4RjksMHhGRiwweEZGLDB4RkYsMHhDRiwweEZGLAotMHhGRiwweEZGLDB4Q0QsMHhGQiwweDdGLDB4RkYsMHhGRiwweEZGLCAweEY5LDB4RjYsMHgwRiwweERGLDB4RUMsMHhDRiwweDdGLDB4RkYsCi0weEZCLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkUsIDB4RjksMHhGRCwweDdGLDB4RkYsMHg3RiwweEZGLDB4RjksMHg1QiwKLTB4RkYsMHg3MywweERDLDB4RkQsMHg3QiwweERGLDB4RkYsMHhGRiwgMHhGRiwweDdCLDB4RkYsMHhGRiwweEY3LDB4NTMsMHhENiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhEOCwweDlGLDB4RkUsMHhGRiwweEVGLCAweDdGLDB4RUUsMHhGRiwweEZGLDB4RkYsMHhGQiwweEVELDB4RUQsCi0weEZELDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGQiwweDdGLDB4RkYsIDB4RTIsMHg3RiwweEZGLDB4NkYsMHhEOCwweDU3LDB4RjcsMHhGRiwKLTB4RkYsMHhGRiwweERGLDB4RkYsMHhFOCwweEZGLDB4RkYsMHhGRCwgMHhGRiwweEZGLDB4RkMsMHg3RiwweEZGLDB4RTQsMHhGRiwweEZCLAotMHhFRiwweEZCLDB4RkUsMHhERiwweEI3LDB4RUQsMHhGRiwweEZFLCAweERGLDB4N0YsMHhGRiwweEZFLDB4N0YsMHhCNywweEZGLDB4RkYsCi0weEZGLDB4RkYsMHg4OSwweEZGLDB4RkYsMHhDRiwweEYzLDB4RkUsIDB4N0YsMHhGRiwweEVGLDB4RkYsMHhGRSwweDdFLDB4N0YsMHhGQiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGMSwgMHhGRiwweEVCLDB4N0EsMHhENSwweEJGLDB4NkYsMHhEQiwweEJFLAotMHhGRCwweEI3LDB4RDgsMHhGNiwweEU1LDB4QkYsMHg2RiwweEZCLCAweEZFLDB4RjUsMHhCRCwweDdFLDB4MDYsMHhGRiwweERGLDB4RjcsCi0weEZCLDB4RjYsMHhGRiwweDNGLDB4RkYsMHhEQiwweEZGLDB4RkYsIDB4NkYsMHhGQiwweEY3LDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGRSwKLTB4RjcsMHhBRiwweEZGLDB4QjcsMHhFRCwweEVGLDB4RjcsMHhGRSwgMHhGRiwweEZGLDB4REYsMHhGRiwweEZFLDB4RkYsMHhFRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhCRiwweEY3LDB4RkMsMHgxRiwweEVFLCAweEZCLDB4RkUsMHhCRCwweEZGLDB4N0YsMHg1RiwweEQ3LDB4RkQsCi0weEZCLDB4NDMsMHhGRiwweEZGLDB4RkQsMHhGRiwweDVGLDB4RkYsIDB4RjcsMHhGRiwweEY5LDB4M0YsMHhGRiwweENGLDB4RjMsMHhGRCwKLTB4RjcsMHg3RSwweEVGLDB4QTcsMHhGOSwweEZFLDB4OEYsMHhBNywgMHhFOSwweEYzLDB4N0UsMHg5RiwweEZCLDB4RjgsMHhGRiwweEZGLAotMHgzRiwweEZELDB4N0YsMHg1RiwweERGLDB4RkQsMHhGRiwweEZGLCAweDVGLDB4RkYsMHhGRCwweDVGLDB4RkYsMHhGRiwweDdGLDB4RkQsCi0weDdGLDB4RkQsMHg5RiwweEZGLDB4RTAsMHhGRiwweEZBLDB4RjgsIDB4QkUsMHg2RiwweDlGLDB4RTYsMHhGOCwweEJFLDB4M0YsMHg5QSwKLTB4RjksMHhCRSwweDZGLDB4OUYsMHhFMiwweEY5LDB4RkUsMHg2RiwgMHg5RiwweEY5LDB4RkYsMHhGNSwweEZELDB4N0YsMHhDRiwweERGLAotMHhGRCwweEZELDB4N0YsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZGLCAweEY3LDB4RjUsMHhGRCwweDBGLDB4REIsMHhGRiwweEQzLDB4RkYsCi0weEVCLDB4RkEsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZBLDB4RkYsIDB4RkYsMHhDQiwweEZCLDB4RkUsMHhGRiwweEZGLDB4RUIsMHhGQSwKLTB4RkUsMHhGRiwweEZGLDB4QjcsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhCRiwweEZGLDB4REYsMHhGNSwweEZGLDB4RkYsMHhENywweEZGLAotMHhGRiwweEZGLDB4REYsMHhENywweEY1LDB4RkYsMHg3RiwweEZFLCAweDRGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHg3RiwweEZGLDB4QUQsCi0weEVCLDB4RkIsMHhGRiwweEFELDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4QUYsMHhFQiwweEZCLDB4RkYsMHhGQywweDBELDB4RkYsMHhGRiwKLTB4REYsMHhEMiwweEZELDB4RkYsMHhGRiwweEZELDB4RjYsMHhGRiwgMHhGRiwweDdGLDB4RkYsMHhGRiwweDFGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZCLDB4M0YsMHg3RCwweEVCLDB4MzIsMHhGRSwweEJGLCAweDJGLDB4RUIsMHhGQSwweEFFLDB4QkQsMHhFMCwweEZBLDB4N0UsCi0weEJGLDB4QUQsMHhFQiwweEZBLDB4RkUsMHhCRiwweEY1LDB4N0YsIDB4RkYsMHhERSwweEZFLDB4RTMsMHhGQiwweEZGLDB4RkYsMHhGRiwKLTB4REYsMHhFRiwweDRGLDB4REYsMHhGRiwweDdGLDB4REYsMHhGRiwgMHhGNywweEZGLDB4RkYsMHhGOCwweDdGLDB4RkYsMHhGRiwweEVGLAotMHhGQiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweERGLCAweEVELDB4RkIsMHhERiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsCi0weDgxLDB4RkYsMHhGRiwweEZGLDB4RkYsMHgzRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZFLDB4REQsMHhGRSwweEVGLDB4RkQsMHhGRiwKLTB4RkYsMHhGQiwweEZFLDB4RjcsMHhGRiwweDkzLDB4RkQsMHhGQiwgMHg3RSwweEZGLDB4RkUsMHg4NywweEU5LDB4RkYsMHg3RiwweEIzLAotMHg5RiwweEZFLDB4RkUsMHhGRiwweEFGLDB4RkQsMHhGRSwweDdFLCAweDNGLDB4RkUsMHg2NywweEZGLDB4RkYsMHhGNywweEZGLDB4RkYsCi0weEZDLDB4RjcsMHhERiwweEZELDB4RkYsMHg3RiwweEZGLDB4RkYsIDB4N0YsMHg2RCwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHgyRiwKLTB4RkYsMHhCRiwweEZGLDB4RkYsMHhFRSwweEZGLDB4QkUsMHhGRiwgMHhGRiwweEZFLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRSwweEZGLAotMHhFRiwweEZGLDB4RkYsMHhGQSwweDVGLDB4RkYsMHhGRiwweEZCLCAweEZGLDB4RkYsMHhFRiwweEZGLDB4RkIsMHhGRSwweEZELDB4RkYsCi0weEZFLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsIDB4RkUsMHhCRiwweERGLDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGNywKLTB4RkMsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg3RiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjIsMHg3RiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEYzLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGQiwweEZGLDB4RkYsCi0weEZGLDB4REYsMHhFMiwweEZGLDB4RkYsMHhGQiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEU3LDB4RkYsMHhGRCwKLTB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhFRCwgMHhFRiwweEZELDB4RkYsMHhGRiwweERGLDB4RDcsMHhGNSwweEZELAotMHg3RiwweDVELDB4RkQsMHhGRiwweDdGLDB4REYsMHg5NywweEY0LCAweEZELDB4N0IsMHg1RiwweEZGLDB4QzksMHhGRiwweEZCLDB4RkUsCi0weEZGLDB4QkYsMHhGRiwweDVGLDB4RkYsMHhGRiwweEY3LDB4RkYsIDB4RUYsMHhGRCwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGNywweEZGLDB4RDcsMHhGRCwweDdELDB4N0YsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhFRiwweERGLDB4RjcsMHhGRCwweEZGLAotMHhCQiwweEZGLDB4RkYsMHg3RiwweEZGLDB4RkUsMHhFMywweEZGLCAweEY5LDB4RkUsMHg3RiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsCi0weEJGLDB4RjksMHhGRSwweEZGLDB4OUYsMHhFRiwweEY5LDB4RkUsIDB4RkYsMHhCRiwweEYzLDB4REEsMHhGRiwweDM3LDB4Q0QsMHhGMywKLTB4N0MsMHhERiwweDM3LDB4Q0QsMHhGMywweDdGLDB4MzcsMHhDRCwgMHhGMywweDdDLDB4REYsMHgzNywweENDLDB4RjMsMHg3RiwweDVBLAotMHhCRCwweEY2LDB4RkQsMHhCRiwweDZGLDB4REIsMHhGNiwweEZELCAweEJGLDB4NkYsMHhERSwweEZELDB4QkYsMHg2RiwweERCLDB4RjYsCi0weEZELDB4QkYsMHg2RiwweEZFLDB4RjEsMHg2RiwweEVCLDB4N0EsIDB4REUsMHhCNywweEFELDB4RUIsMHg3QSwweERFLDB4QjcsMHhBRiwKLTB4N0EsMHhERSwweEI3LDB4QUQsMHhFQiwweDdBLDB4REUsMHhCNywgMHhGRiwweDdFLDB4RkYsMHhGRSwweENELDB4QjMsMHg2QywweERCLAotMHgzNiwweENELDB4QjMsMHg2QywweERFLDB4Q0QsMHhCMywweDZDLCAweERCLDB4MzYsMHhDRCwweEIzLDB4NkMsMHhERiwweEM5LDB4QkYsCi0weEY3LDB4QkQsMHhFRiwweDdBLDB4OUUsMHhBNywweEE5LDB4RUEsIDB4N0EsMHhCNywweEJELDB4RUEsMHg3QiwweERFLDB4QTcsMHhCRCwKLTB4Q0EsMHg3MiwweDhELDB4OTEsMHhGRiwweEVGLDB4RkIsMHhGRSwgMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RjcsMHhFRiwweEZCLAotMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEZFLCAweDg3LDB4RkYsMHhGNiwweEZELDB4QkYsMHg2RiwweERCLDB4RjYsCi0weEZELDB4QkYsMHg2RiwweEY2LDB4RkQsMHhCRiwweDZGLDB4REIsIDB4RjYsMHhGRCwweEJGLDB4NkYsMHhGRSwweDRGLDB4RkYsMHhCRiwKLTB4RUYsMHhCQiwweEVFLDB4RkIsMHhCRSwweEVGLDB4QkIsMHhFRiwgMHhCRSwweEVGLDB4QkIsMHhFRSwweEZCLDB4QkUsMHhFRiwweEJCLAotMHhFRiwweEZDLDB4NUYsMHhGRiwweEZGLDB4RkYsMHgzRiwweENGLCAweEYzLDB4RkMsMHhGRiwweDNGLDB4Q0YsMHhGQywweEZGLDB4M0YsCi0weENGLDB4RjMsMHhGQywweEZGLDB4M0YsMHhDRiwweEZELDB4OUYsIDB4RkUsMHhCRiwweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsMHhBRiwKLTB4RUIsMHhGRSwweEJGLDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwgMHhBRiwweEVCLDB4RkYsMHhFMSwweDZGLDB4RkQsMHhGRiwweDdGLAotMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGRCwweEZGLCAweDdGLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RkYsCi0weDdBLDB4QkYsMHhGQiwweEZFLDB4REYsMHhCNywweEVELDB4RkIsIDB4N0UsMHhERiwweEI3LDB4RkIsMHg3RSwweERGLDB4QjcsMHhFRCwKLTB4RkIsMHg3RSwweERGLDB4QjcsMHhGRiwweEM5LDB4RkYsMHhGRiwgMHhCRiwweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVFLCAweEZCLDB4RkUsMHhCQiwweEZGLDB4RkUsMHhGRiwweEJGLDB4RUYsCi0weEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGRSwweEZGLDB4QkYsIDB4RUYsMHhGQiwweEZFLDB4RkYsMHgzRiwweENGLDB4RkYsMHhFNywKLTB4RkUsMHhGRiwweEY1LDB4RkQsMHg3NywweDVELDB4RDcsMHgzNSwgMHhERCwweDc3LDB4RDcsMHhGNSwweENELDB4N0IsMHg1RCwweEQ3LAotMHhGNSwweERELDB4NzcsMHhGRSwweDI3LDB4RkYsMHhGRiwweDhCLCAweEUyLDB4RjgsMHhCRSwweDJGLDB4OEIsMHhFMiwweEY5LDB4QUYsCi0weDhCLDB4RTIsMHhGOCwweEJFLDB4MkYsMHg4QiwweEUyLDB4RjksIDB4RkUsMHgxRiwweEZGLDB4NUYsMHhENywweEY1LDB4RkQsMHg3RiwKLTB4NUYsMHhENywweEY1LDB4RkYsMHg1RiwweEQ3LDB4RjUsMHhGRCwgMHg3RiwweDVGLDB4RDcsMHhGNSwweEZGLDB4RkEsMHgzRiwweEZFLAotMHhCRiwweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsMHhBRiwweEVCLCAweEVDLDB4QkYsMHhBRiwweEVCLDB4RkEsMHhGRSwweEJGLDB4QUYsCi0weEVCLDB4RkYsMHhGRSwweDdGLDB4RkQsMHg3RiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFNiwgMHhGRiwweEZBLDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLAotMHhGNywweEZDLDB4RkYsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLCAweERGLDB4RjcsMHhGRCwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHgwMiwweEZGLDB4RkUsMHhCRiwweEFCLDB4RUIsMHhGQSwgMHhCRSwweEJGLDB4MjMsMHhFQiwweERFLDB4MUYsMHhBRiwweEVBLAotMHhGQSwweEZFLDB4QUYsMHhBRiwweEVCLDB4RkQsMHg5NywweEZGLCAweEYzLDB4RkMsMHg3QiwweDFGLDB4Q0YsMHhGMSwweEZDLDB4N0YsCi0weDFGLDB4RjEsMHhGQywweDc3LDB4MUYsMHhDRCwweEYxLDB4RkMsIDB4RkYsMHgxRiwweEZFLDB4ODcsMHhGRiwweEFGLDB4RUYsMHhGQSwKLTB4RkUsMHhGRiwweEFGLDB4RUYsMHhGQSwweEZELDB4QkYsMHgyQiwgMHhGQiwweDdFLDB4QkYsMHhCRiwweEVCLDB4RkIsMHhGQiwweEZCLAotMHhERiwweEZGLDB4RkIsMHhGNywweEZGLDB4RkYsMHg3RiwweEY3LCAweEY3LDB4RkYsMHhGRCwweERGLDB4RkUsMHhGQywweERGLDB4RkYsCi0weERGLDB4RkYsMHhGRCwweEZGLDB4REEsMHhCRiwweEZGLDB4QkIsIDB4RUYsMHhGQiwweEY5LDB4RkYsMHhCRSwweEVGLDB4RkIsMHhGQiwKLTB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwgMHhGRiwweEY3LDB4N0YsMHhGRCwweEQ3LDB4RkYsMHhGRiwweDdGLAotMHhGRiwweEZGLDB4RkYsMHhGRSwweEY3LDB4RkYsMHhGRSwweEZGLCAweEY3LDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEVDLDB4RkYsCi0weEZGLDB4RkUsMHhERiwweEJGLDB4RkYsMHhGQiwweEZFLDB4RkYsIDB4QkIsMHg2OCwweEFFLDB4MUYsMHhBRSwweEZCLDB4RkIsMHhGRiwKLTB4RkYsMHhCRiwweEZGLDB4RDUsMHhGRiwweDdGLDB4RkYsMHhGRiwgMHhGNywweEZFLDB4RkUsMHhGRiwweEJGLDB4RUYsMHg5RiwweEZELAotMHg3RiwweEZGLDB4Q0IsMHhGRiwweEZGLDB4REYsMHhGRiwweEZGLCAweEJCLDB4RjcsMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REYsCi0weEZGLDB4QkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweERFLDB4M0YsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEE3LDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEVGLDB4RkYsMHg3RiwweEZCLDB4RkQsMHhGQiwgMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4Q0YsMHhGMywweDdDLAotMHhGRiwweDdGLDB4OEQsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZCLDB4RkYsMHhGNywweEZCLDB4RkUsMHhGRCwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGNywweEZELDB4RkYsMHg3RiwweEZELDB4MUYsIDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLDB4REYsMHhGRiwKLTB4RkYsMHhGRSwweDVDLDB4RkYsMHg2RCwweEZGLDB4N0YsMHhBQiwgMHhFNywweEYxLDB4RkYsMHhGRCwweDlGLDB4RkYsMHhGRiwweEFELAotMHhFQiwweDdBLDB4M0YsMHgxRiwweEZGLDB4RkYsMHhGRSwweEJGLCAweEFGLDB4RjMsMHhERSwweEY1LDB4RkYsMHg4RiwweEZCLDB4REYsCi0weEU2LDB4N0YsMHhGRiwweERGLDB4RjMsMHhGRCwweEZGLDB4N0UsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4RjcsMHhGMywKLTB4N0YsMHhERiwweEY3LDB4RUYsMHhGRiwweEY2LDB4M0YsMHg5RiwgMHhERiwweEZGLDB4RkYsMHhFRSwweEZGLDB4RkYsMHhFRiwweEZCLAotMHhGRiwweEZGLDB4RjksMHhGQiwweEZFLDB4NEYsMHhCRiwweEVGLCAweEJCLDB4RkYsMHg2OSwweEFGLDB4QUYsMHhGQywweEZGLDB4M0YsCi0weERELDB4RkYsMHhGQywweEJGLDB4OEYsMHhGRiwweEZELDB4RjMsIDB4QkYsMHhFRCwweDlFLDB4RkMsMHhCRiwweDZGLDB4RjUsMHhEMywKLTB4REYsMHhGRiwweERCLDB4RDYsMHhGNSwweEVGLDB4RkQsMHhGRSwgMHhGRiwweEI5LDB4RkYsMHgxRiwweEQyLDB4QTksMHhBRiwweEZGLAotMHhEQiwweEY3LDB4QkYsMHhFRiwweDQ2LDB4RkYsMHhGRiwweEFELCAweEVCLDB4N0EsMHhERiwweEVGLDB4RjcsMHhGRiwweDdGLDB4RjcsCi0weDlGLDB4RUQsMHhGRiwweDdGLDB4RkYsMHhBRCwweEVCLDB4N0YsIDB4RjUsMHg2RiwweEZGLDB4RkQsMHhGQiwweEQ2LDB4RjQsMHhGNywKLTB4RkIsMHhGOSwweDdFLDB4N0YsMHhGRiwweDVGLDB4QzIsMHhGRSwgMHhCRiwweEZELDB4RkIsMHgzMywweERGLDB4RjksMHg1QiwweEZGLAotMHhGRiwweERELDB4NjcsMHg3RCwweENGLDB4RUYsMHhEQiwweEVDLCAweEZGLDB4NzcsMHhERCwweEY3LDB4RkQsMHhGRiwweEZGLDB4REUsCi0weEE3LDB4QkYsMHhENCwweDlGLDB4RkYsMHhGRiwweEJGLDB4RUYsIDB4RkUsMHhGRiwweERGLDB4RUYsMHhCQiwweEZGLDB4RkYsMHhFRiwKLTB4RUIsMHhGQSwweEZGLDB4RUYsMHhCRCwweEZCLDB4RkYsMHhFMiwgMHg3RiwweEZGLDB4REYsMHhERiwweEY3LDB4RkQsMHhCRiwweEJCLAotMHg3MywweEY3LDB4RkQsMHg3RiwweERGLDB4REUsMHhGNywweEJGLCAweEVBLDB4REIsMHhGNiwweEZGLDB4RDYsMHhGRiwweEZGLDB4NjYsCi0weEZGLDB4QkUsMHhGRiwweEJGLDB4NkIsMHhEOSwweEY2LDB4REYsIDB4RkYsMHhGQiwweDdFLDB4N0YsMHhCNywweDdFLDB4RkYsMHhGRSwKLTB4RkYsMHhDRCwweEZGLDB4RkUsMHg3RiwweEZGLDB4RkMsMHhGRCwgMHgzRiwweEZCLDB4RkIsMHhGNywweEZGLDB4RkYsMHhGQiwweEY2LAotMHg3RCwweEZFLDB4N0YsMHhGRiwweEZDLDB4RkYsMHhCOSwweEZGLCAweEY5LDB4RkEsMHhGRSwweEJGLDB4QUYsMHg1QiwweEQ2LDB4RUQsCi0weEFELDB4N0IsMHhGNiwweEY5LDB4QkYsMHhFRiwweEY4LDB4RkEsIDB4RkUsMHhCRiwweEZFLDB4RTYsMHhGRiwweEZGLDB4RjcsMHhGRCwKLTB4RkYsMHg3RiwweEJGLDB4RUYsMHhGMywweEZGLDB4RkYsMHg2RiwgMHhGNywweEZFLDB4RkYsMHhGRiwweEY3LDB4RkQsMHhGRSwweEY3LAotMHhFRiwweEZGLDB4RkIsMHhFRiwweEZCLDB4N0UsMHhERSwweEZFLCAweEZGLDB4QkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZCLDB4RkYsCi0weEZGLDB4RUYsMHhGQiwweDZGLDB4RkMsMHgxRiwweEZFLDB4RTcsIDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEQzLDB4QjQsMHhCQiwKLTB4RkYsMHhGRiwweEZELDB4QkYsMHg2RiwweEUzLDB4RkUsMHhGRiwgMHhCRiwweEZDLDB4QkYsMHhGNywweENGLDB4RjcsMHhGRCwweEZGLAotMHgyRiwweERGLDB4QUIsMHhFQSwweEZGLDB4REYsMHhFNywweEVBLCAweDlBLDB4QUYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEY1LDB4M0YsCi0weEZELDB4N0UsMHhGRiwweEQ3LDB4RjUsMHhGQiwweEZGLDB4RkQsIDB4RjcsMHhGRiwweDdGLDB4RkUsMHhGNywweEZELDB4RkYsMHhENywKLTB4RkYsMHhENywweDdGLDB4RUUsMHg3RiwweEZBLDB4NzksMHhGRSwgMHgyRiwweDhCLDB4RTYsMHhGOSwweEZFLDB4M0YsMHg5RSwweEY5LAotMHhCRSwweDJGLDB4MEIsMHhFNywweEY5LDB4RkUsMHgyRiwweDlGLCAweEZELDB4RkYsMHhGRSwweDdELDB4N0YsMHg1RiwweEQ3LDB4RkYsCi0weEZGLDB4N0YsMHhGRiwweEZELDB4RkYsMHg3RiwweDVGLDB4OTcsIDB4RkYsMHhGRCwweDdGLDB4NUYsMHhGRiwweEUzLDB4RkYsMHhGRiwKLTB4RkEsMHhGRSwweEJGLDB4QUYsMHhGQiwweEZCLDB4RkYsMHhGRiwgMHhDRiwweEVCLDB4RkUsMHhCRiwweEFGLDB4RkYsMHhGQSwweEZFLAotMHhCRiwweEZGLDB4ODcsMHhGRiwweEZGLDB4RjUsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRCwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsCi0weEZCLDB4RkYsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZFLDB4MEYsIDB4RkYsMHhGRCwweEVCLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhFRiwKLTB4N0IsMHhERiwweEZFLDB4RkYsMHhGRiwweERGLDB4RjcsMHhGRCwgMHhFQiwweDdGLDB4REYsMHhGRiwweDVGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZELDB4QkYsMHhGRiwweDdFLDB4RkEsMHhCRiwweEM3LCAweERCLDB4RjcsMHhCRCwweDNGLDB4RkIsMHhGRiwweEY2LDB4RkYsCi0weEZBLDB4QUYsMHhGRiwweEVCLDB4RkEsMHhGRSwweDNGLDB4MkYsIDB4RUEsMHhGQSwweDNFLDB4QUQsMHhDOSwweEJBLDB4RjYsMHhBRCwKLTB4QUYsMHhFQiwweEZBLDB4RjYsMHhCRiwweEZFLDB4N0YsMHhGRiwgMHhGRiwweEZELDB4RkYsMHhGMSwweDdGLDB4M0YsMHhDRiwweEYxLAotMHhFRiwweEZGLDB4N0YsMHhGRiwweEJDLDB4REYsMHhERiwweEY3LCAweERELDB4RkYsMHhFMCwweDdGLDB4RkYsMHhGRiwweEZFLDB4RkYsCi0weEZBLDB4RUMsMHhCQiwweDdGLDB4NUYsMHhGRiwweEZCLDB4RUMsIDB4RkYsMHhFRiwweEI3LDB4RkYsMHhGNywweEZGLDB4RkYsMHhCNSwKLTB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLDB4RUUsMHhERiwgMHg1RiwweERGLDB4REUsMHhGRiwweEFFLDB4RTcsMHg3NywweEZGLAotMHhGRiwweERGLDB4RjcsMHhGRiwweEUzLDB4RkYsMHhGQSwweEJCLCAweEZFLDB4RkYsMHhBRiwweEZELDB4RkIsMHhGRSwweEJGLDB4QUIsCi0weEY5LDB4RkUsMHhGRiwweEJGLDB4N0YsMHhCRiwweEZFLDB4QkQsIDB4RkUsMHhENywweEZGLDB4OUYsMHhGRCwweEZGLDB4QkUsMHhFRiwKLTB4RkYsMHhFRSwweEZELDB4QkIsMHg1QiwweEVGLDB4RkYsMHg3RiwgMHhFRiwweEZGLDB4RUYsMHhGRiwweDdGLDB4RkYsMHg0RiwweEZGLAotMHhFRiwweEZCLDB4QkMsMHhGQywweEZGLDB4RkYsMHhGRiwweEZFLCAweEZFLDB4RkQsMHhGQSwweEZFLDB4RkIsMHhGRiwweEZELDB4RjMsCi0weEZCLDB4RkYsMHhGOCwweDVGLDB4RkYsMHhGRiwweEQ3LDB4RjUsIDB4RkQsMHhERiwweEVGLDB4RkYsMHhGMywweERDLDB4NUYsMHhDRSwKLTB4RjUsMHhCRCwweEZGLDB4RkYsMHhENywweEZGLDB4RkYsMHhGOSwgMHgzRiwweEZGLDB4REYsMHhGNywweEZGLDB4RkUsMHhGRiwweEZELAotMHhGRiwweEZCLDB4RkYsMHhGNywweEI5LDB4N0QsMHhGRSwweERGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjksMHg3RiwweEZGLDB4RkUsCi0weEZGLDB4RkYsMHg3RiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RjcsIDB4RjYsMHhGRiwweEJGLDB4RjEsMHhGOCwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhFMCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjksMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RUYsMHhGRiwweEZGLAotMHg5QiwweEZCLDB4N0YsMHhGRiwweEZGLDB4RkYsMHhDMSwweEZGLCAweERGLDB4RkYsMHgzRiwweDVGLDB4RDcsMHhCRiwweEVGLDB4QkIsCi0weERFLDB4RUUsMHhGRiwweDdGLDB4REYsMHhGRiwweEZFLDB4RjUsIDB4N0YsMHhERiwweEZGLDB4OTksMHhGRiwweEZGLDB4RkEsMHhGRiwKLTB4QkYsMHhGRCwweEVCLDB4N0EsMHhGRiwweEI3LDB4RkUsMHhGRSwgMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkQsMHhCRiwweEZGLAotMHg5NywweEZGLDB4RkQsMHhGNywweEZGLDB4N0YsMHhGNywweEZGLCAweEZGLDB4RkQsMHg1RiwweEZFLDB4RjMsMHhGOSwweERGLDB4REYsCi0weEZGLDB4RkYsMHhGQywweEZGLDB4RkYsMHg4MywweEZGLDB4RkYsIDB4RkUsMHhGRiwweDlFLDB4RUMsMHhGQiwweEVFLDB4RkYsMHg5RiwKLTB4QkYsMHhFRiwweEZGLDB4RkUsMHhFRCwweDdCLDB4RkYsMHhGRiwgMHhGRiwweEYxLDB4NUEsMHhGRiwweEZGLDB4RkQsMHhGRiwweDdDLAotMHg2OSwweDNCLDB4REYsMHhGRiwweDdGLDB4MUYsMHhERiwweEZGLCAweEZELDB4QkEsMHhGRiwweEZGLDB4RkIsMHhGRiwweDVCLDB4QkQsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RDcsMHhCNiwweEVELDB4RTksIDB4RkYsMHhENiwweEJELDB4NkYsMHg1RiwweEZCLDB4RkYsMHhFRiwKLTB4RkYsMHg1RiwweEZFLDB4RjYsMHg2RiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEY3LDB4RUIsMHg3QSwweERGLDB4RkYsMHg5RiwweDdGLAotMHg3RiwweEZGLDB4QjcsMHhGRiwweEZGLDB4RkUsMHhERiwweEZGLCAweDZDLDB4RkYsMHhGQiwweEZGLDB4QkIsMHg2RiwweEVCLDB4RkUsCi0weENDLDB4RjcsMHhBNSwweEZBLDB4NUMsMHhGNSwweDc1LDB4QkIsIDB4QjcsMHhERiwweEZFLDB4NkYsMHg1RiwweEM1LDB4QkYsMHhGRCwKLTB4N0IsMHhGRSwweEZGLDB4OTUsMHhFNywweDI5LDB4Q0YsMHg0RiwgMHhGNSwweDkxLDB4RUUsMHg2QiwweERGLDB4RUYsMHhGRCwweDU0LAotMHhGNSwweEJELDB4QjEsMHhGRiwweEVGLDB4RUUsMHhGQiwweEJFLCAweEJGLDB4QUYsMHhGRSwweERFLDB4QkQsMHg2RiwweERBLDB4RjIsCi0weEZGLDB4QUYsMHhCRSwweEZGLDB4RkYsMHhGRCwweDdFLDB4QTcsIDB4RkYsMHhGNywweEZGLDB4QkYsMHhFRiwweDdCLDB4RjYsMHhGRCwKLTB4QkQsMHg0QSwweEYyLDB4ODUsMHg4NSwweEJGLDB4NUIsMHhGRSwgMHhCNSwweEZELDB4RkEsMHhGRiwweDRGLDB4RkYsMHhGRSwweERGLAotMHhGRiwweEVELDB4RkYsMHhCRiwweEZGLDB4QkYsMHg3RiwweEZFLCAweEZGLDB4QjcsMHg2RCwweEZGLDB4RjcsMHhCRiwweEJGLDB4RUYsCi0weEZELDB4MUYsMHhGRiwweEZFLDB4N0QsMHhGRiwweDY3LDB4RkYsIDB4RkYsMHhGRiwweDNGLDB4N0YsMHhGRSwweEJGLDB4RkYsMHhFNywKLTB4REYsMHhFNywweEZGLDB4RUYsMHg2QiwweEZDLDB4MUYsMHhGRiwgMHhCRiwweEVGLDB4RkIsMHhGRSwweERFLDB4QkYsMHhBRiwweEZBLAotMHhGRiwweEI2LDB4RUYsMHhGOSwweEZFLDB4RkYsMHg4RiwweEVGLCAweERCLDB4RUYsMHhBQiwweDZGLDB4RkIsMHhGRSwweEZGLDB4RkYsCi0weEVGLDB4RkQsMHhGRiwweDdGLDB4RkYsMHhGRiwweERFLDB4RkYsIDB4RkYsMHhFRiwweEZGLDB4RkYsMHhGRiwweDNGLDB4RkYsMHg2QywKLTB4RkYsMHhCRiwweEZCLDB4RkYsMHhGRSwweEZGLDB4RkIsMHhGRSwgMHhERiwweEZGLDB4RkYsMHhFRiwweEZGLDB4RkYsMHhCRiwweEZGLAotMHhGRiwweEZFLDB4RkIsMHhGRiwweEQ1LDB4N0YsMHhGRiwweEZGLCAweEVGLDB4RkIsMHhGRiwweEZGLDB4QkYsMHhFRiwweDQzLDB4QjUsCi0weEZELDB4NkYsMHhDRiwweEQ2LDB4QkUsMHgzRiwweDdGLDB4REIsIDB4RkUsMHhDMywweEZGLDB4RkQsMHhGRiwweEFGLDB4RUIsMHhGQiwKLTB4RkMsMHhGRiwweDNFLDB4RUYsMHhFOCwweEZBLDB4QkQsMHhDRCwgMHhBQSwweEZFLDB4RkUsMHg3RCwweENGLDB4RkYsMHhCNywweEZGLAotMHhGNywweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHg3NSwweENELCAweDUyLDB4RDcsMHhGRCwweEZCLDB4RjcsMHhERCwweEZCLDB4RUYsCi0weEVCLDB4RkYsMHhGRiwweDRGLDB4RkYsMHhCRiwweDlGLDB4RTcsIDB4RjksMHhGQywweDdGLDB4OEIsMHhDMywweEY5LDB4QUYsMHg4RiwKLTB4RTcsMHhFOSwweEJFLDB4N0YsMHg5RiwweEU2LDB4RjksMHhGQywgMHg1RiwweEZGLDB4RkYsMHhGNywweEZELDB4RkYsMHg3QSwweDVGLAotMHhENywweEVELDB4RkYsMHhGRiwweEQ3LDB4RkYsMHhERCwweDdGLCAweEU3LDB4RkYsMHhGQywweEZGLDB4RkMsMHgzRiwweEZGLDB4RkYsCi0weEZGLDB4RkIsMHhGRiwweEZFLDB4QkYsMHhBRiwweEZGLDB4RkQsIDB4RkYsMHhFRiwweEZGLDB4RUIsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGNywweDdGLDB4RkYsMHg3RiwweERGLDB4RkYsMHhGRCwgMHhGRCwweDdGLDB4RkUsMHhGNywweEZELDB4N0YsMHhERiwweEZGLAotMHhGRCwweEZGLDB4RkYsMHhERiwweEZCLDB4RkYsMHhFRSwweEZGLCAweEZCLDB4RkYsMHhGNywweEZELDB4RkYsMHg3QSwweERGLDB4RjUsCi0weEZELDB4RkEsMHhERiwweEY3LDB4RkMsMHhGRiwweDdGLDB4REYsIDB4QkYsMHhFRCwweEZGLDB4QzksMHhGRiwweERGLDB4RkYsMHhCRiwKLTB4MkYsMHhGQiwweEZGLDB4QkMsMHhBRCwweEZGLDB4RjcsMHhGRiwgMHhGRiwweEVGLDB4RDMsMHhGRiwweDdELDB4QkYsMHg2RiwweEZGLAotMHhGQSwweEZGLDB4RkUsMHhCRiwweEFFLDB4RUEsMHhGQSwweEJFLCAweEFELDB4QTUsMHhFQiwweENFLDB4QkYsMHhBNywweEVCLDB4NUEsCi0weERFLDB4QkQsMHhBRiwweDZCLDB4RkQsMHg1NywweEZGLDB4RkYsIDB4RjQsMHg3RiwweDFGLDB4N0YsMHhGRCwweEZGLDB4N0YsMHgzNiwKLTB4RjAsMHhERiwweDc5LDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRCwgMHhCRiwweEZGLDB4ODcsMHhGRiwweEZCLDB4RjMsMHhGQywweEZGLAotMHhGRiwweEZGLDB4RkYsMHg3RSwweEZGLDB4QkYsMHhERiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhCRiwweEY4LDB4OUYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkQsIDB4RjcsMHhGQywweEJELDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZCLDB4RjksMHhCRiwweEZGLDB4RkYsMHhFQiwgMHhFMiwweEZFLDB4RkYsMHhCRiwweEVGLDB4QTksMHhCQSwweDJGLAotMHhFQiwweEY5LDB4RkUsMHg3NywweERGLDB4RjcsMHhGRiwweEZGLCAweEY5LDB4N0YsMHhGRiwweEZGLDB4N0YsMHhFRiwweEQ3LDB4RkYsCi0weEZELDB4RkYsMHhGQiwweEY1LDB4RkYsMHhCRiwweDZGLDB4REYsIDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwweEYwLDB4RkYsMHhGRiwKLTB4RkYsMHgzRiwweENGLDB4RkYsMHhCQSwweEVFLDB4OUIsMHhCRiwgMHhFRSwweEQ3LDB4RkUsMHhDRCwweEVGLDB4RkYsMHhERiwweEJGLAotMHhGRiwweEZGLDB4QzUsMHhGRiwweEZGLDB4RkQsMHg3RiwweDRGLCAweEZELDB4RjYsMHhEOSwweEZGLDB4NEYsMHhENiwweEZELDB4QkYsCi0weDZFLDB4RkYsMHhGRiwweEY0LDB4N0YsMHhGRiwweDdGLDB4OEIsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLDB4RjksMHhGRSwKLTB4MzcsMHhGRiwweEQ5LDB4RkIsMHhGNSwweEFGLDB4RkQsMHhGRiwgMHhGRiwweEZCLDB4RkYsMHhGRiwweDA3LDB4RkYsMHhGRiwweEZGLAotMHhGQiwweEY3LDB4RkYsMHhGRCwweEZGLDB4N0MsMHhGQSwweDdFLCAweDRGLDB4RkMsMHhERiwweDFELDB4QzcsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4QUUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4RkIsIDB4RkYsMHhGRiwweEZFLDB4RkUsMHhGQywweEZGLDB4N0YsMHg3RiwKLTB4QkYsMHhFRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4NUYsMHhGRCwgMHhGRiwweEZGLDB4RkYsMHhGRCwweDZGLDB4NUEsMHhENywweDdCLAotMHhCRSwweDVGLDB4RkUsMHgzOSwweEZGLDB4RjcsMHhGRiwweEY3LCAweEZELDB4RkUsMHhBQSwweDFGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZFLDB4RkUsMHhBQiwweEFGLDB4RkQsMHhGRSwweEJGLDB4RkYsIDB4RjcsMHhGRiwweDdGLDB4RkUsMHg4RiwweEUzLDB4RkIsMHhFRSwKLTB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVCLDB4RkIsMHhGRiwgMHhGRCwweEJGLDB4RUYsMHhERiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGQiwweEU0LDB4M0YsMHhGRiwweERGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjMsMHhFRiwweEJCLDB4RkIsCi0weEJGLDB4RUYsMHhCQiwweEZGLDB4RDcsMHhCRiwweEZGLDB4RkYsIDB4RkYsMHgyOSwweEFGLDB4RjcsMHhGRiwweEZGLDB4RkIsMHhGRiwKLTB4RkIsMHhFNiwweEZGLDB4MEYsMHhGQiwweDNGLDB4REYsMHgwRiwgMHhGRiwweEFGLDB4RkYsMHhGRiwweEZGLDB4RjUsMHhDMywweERGLAotMHg1RiwweEZGLDB4RkYsMHhGRiwweEZFLDB4NkIsMHhDQSwweEJFLCAweEJDLDB4RkYsMHg5RiwweEYyLDB4QkYsMHhGRiwweEZFLDB4RkEsCi0weEZGLDB4RkYsMHhFRiwweDE2LDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGQywweERGLDB4OTcsMHhGRCwweDc5LDB4RkYsMHgzNywKLTB4RTcsMHg3RiwweEZGLDB4RkYsMHhCNSwweEZGLDB4RkYsMHhGNiwgMHgyRiwweEZGLDB4RkQsMHhGQiwweEZFLDB4RkYsMHhGRiwweEZELAotMHg1RiwweDU3LDB4NUYsMHhGRiwweERCLDB4NTIsMHhERiwweEZGLCAweEZELDB4QkYsMHhGRiwweEZGLDB4RkMsMHhEQiwweEZGLDB4N0IsCi0weEI1LDB4RkQsMHg3RiwweEZGLDB4NzEsMHg5QywweDZFLDB4RkYsIDB4RjYsMHgzNSwweEE1LDB4OUIsMHhGRiwweEZGLDB4RkQsMHhGRiwKLTB4RkYsMHhEQiwweDlFLDB4N0YsMHhGRSwweEVGLDB4RkIsMHhGRiwgMHhGRiwweEJELDB4RUYsMHhGRiwweERFLDB4QjcsMHhGOSwweDRCLAotMHhGRiwweEY1LDB4RUYsMHhGRiwweEZGLDB4RkYsMHhFOCwweDdFLCAweEZGLDB4RUEsMHhERiwweEY3LDB4RkYsMHhGRCwweDY5LDB4NUIsCi0weEZDLDB4OUYsMHhFRiwweDc4LDB4RDYsMHhGRiwweEVCLDB4RUYsIDB4RkYsMHhGRiwweEZGLDB4RTgsMHhGRiwweEZGLDB4RUQsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RTMsMHhGOSwweEY2LDB4QkYsMHhGRiwgMHhGRiwweEZFLDB4REYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLAotMHhEMSwweEZGLDB4RkYsMHhFNywweEZGLDB4RkYsMHhGRiwweEZGLCAweEU3LDB4RjksMHhGRiwweEJGLDB4N0YsMHhEOSwweEZGLDB4RkQsCi0weEZFLDB4N0YsMHhGRiwweEZFLDB4RkYsMHhGOSwweEZGLDB4RkIsIDB4RDYsMHhERiwweEJGLDB4RUYsMHg1QiwweEQ2LDB4RkYsMHhCRiwKLTB4RkIsMHhGNiwweEZGLDB4QkYsMHhFRiwweEY4LDB4RjYsMHhERCwgMHhCRSwweEZFLDB4MTYsMHhGRiwweEJGLDB4RUYsMHhGRiwweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHg2RiwweEZCLCAweEZGLDB4RkYsMHhGRiwweDZGLDB4RjMsMHhGRiwweEY3LDB4RUYsCi0weEZCLDB4RkYsMHhCRiwweEZGLDB4RUYsMHhGRSwweEZGLDB4QkYsIDB4RkYsMHhGRiwweEZGLDB4QkUsMHhCRiwweEZGLDB4RUYsMHhGRiwKLTB4N0YsMHhFRiwweEZGLDB4RkQsMHgxNywweEZCLDB4N0IsMHhGRiwgMHhGRiwweEZELDB4N0YsMHhEQiwweEY2LDB4RjQsMHg3RiwweEZBLAotMHhGRSwweEY1LDB4QkYsMHhFQiwweEUzLDB4RjcsMHhGRiwweEZGLCAweEU5LDB4QkYsMHhGRiwweEFGLDB4RjcsMHhGRCwweEYzLDB4N0UsCi0weDhGLDB4QTMsMHhFQSwweEZGLDB4Q0IsMHhGMywweEVFLDB4RkYsIDB4QkYsMHhFRiwweEY3LDB4RjksMHhGRiwweEZFLDB4N0YsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RjUsMHhGQiwweEY2LDB4RkYsMHhGNSwgMHgyRiwweEZFLDB4RkIsMHhENywweEJGLDB4RkYsMHhCRSwweERGLAotMHg5RiwweEZGLDB4RjAsMHhGRiwweEZGLDB4RjksMHhGRSwweDdGLCAweDhGLDB4QTMsMHhGOCwweEZFLDB4NkYsMHg5RiwweEY5LDB4RjYsCi0weDJGLDB4OUYsMHhFNywweEY5LDB4RkUsMHgyRiwweDlGLDB4RTEsIDB4RkYsMHhGRiwweEZGLDB4N0YsMHhERiwweEY3LDB4RjUsMHhGRCwKLTB4N0YsMHg3RiwweEY1LDB4RkYsMHg5RiwweDVGLDB4RkIsMHhGRSwgMHhGRiwweDdGLDB4RkYsMHhGRiwweENCLDB4RkYsMHhGRiwweEZCLAotMHhGRSwweEZGLDB4QkYsMHhBRiwweEZCLDB4RkUsMHhGRiwweERGLCAweEZFLDB4RkUsMHhCRiwweEY3LDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4QzcsMHhGRiwweEZGLDB4RkQsMHhGRiwweDdGLDB4REQsIDB4RjcsMHhGRCwweEZGLDB4RkYsMHhENywweEZGLDB4RkQsMHg3RiwKLTB4RkYsMHhGQiwweEZELDB4RkYsMHhGRiwweEZFLDB4RUYsMHg3RiwgMHhGRCwweEVGLDB4RkIsMHhGRSwweEZCLDB4RkQsMHhGRiwweDdGLAotMHhERiwweEZELDB4RkYsMHg3QSwweERGLDB4RjcsMHhGRCwweEZGLCAweEZGLDB4RkYsMHhGRiwweDFGLDB4RkYsMHhGRiwweEQzLDB4RjcsCi0weEZGLDB4RkYsMHg2RiwweERCLDB4RkYsMHhGRiwweEVGLDB4Q0IsIDB4RjQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwKLTB4MjksMHhGRiwweEU4LDB4REEsMHg3NiwweDlGLDB4QUYsMHg2QSwgMHhEQSwweEZFLDB4MzUsMHhFQiwweERBLDB4RDYsMHhCRiwweEFCLAotMHhFQiwweDdBLDB4REUsMHhCRiwweEQ3LDB4N0YsMHhGRiwweEZFLCAweEZGLDB4QkYsMHhFRiwweEZELDB4REYsMHg3NywweEJGLDB4RkQsCi0weDM3LDB4RUYsMHhGRiwweEVGLDB4RkYsMHgzRiwweEZGLDB4RkYsIDB4RkYsMHhGRSwweDdGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHg3RSwKLTB4REYsMHhGRiwweEZGLDB4RkYsMHhGQSwweEI3LDB4N0YsMHhGRiwgMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg4OSwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4OUYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEU3LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEFBLDB4RkYsMHhBQiwweEZCLDB4RkEsIDB4RUYsMHhCRiwweEZGLDB4REYsMHhGQSwweDdCLDB4QjksMHhGRSwKLTB4RkUsMHhGRiwweEZELDB4RkYsMHhGNywweEZFLDB4M0YsMHhGRiwgMHhCNywweEZGLDB4RjcsMHhFRSwweEZGLDB4N0YsMHhFRiwweEZGLAotMHhGRiwweDdGLDB4RkYsMHgxRiwweEZCLDB4RkYsMHhCRiwweEZCLCAweEZFLDB4RkYsMHhCRCwweEZGLDB4RkYsMHgyRiwweEZGLDB4QkYsCi0weEZGLDB4N0YsMHhERiwweEZBLDB4RkYsMHhGRiwweEZDLDB4RUUsIDB4RjUsMHhGMywweEJFLDB4RkIsMHgwRiwweEVGLDB4RjMsMHhCRSwKLTB4RUYsMHhGQywweDVGLDB4RkYsMHg1QSwweEZGLDB4RjcsMHhERiwgMHhGRiwweEZGLDB4RkUsMHhENSwweEZDLDB4NUYsMHhGQiwweEYyLAotMHhGRiwweEZGLDB4MkYsMHhCQiwweEYzLDB4RkYsMHhGRiwweEJGLCAweEZGLDB4RUYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEJGLDB4RkYsMHhGRiwweEZELDB4N0IsMHhGRiwweERGLDB4QjksIDB4RkYsMHhGQiwweEZGLDB4RDgsMHg3RiwweEZGLDB4RkYsMHhGRiwKLTB4RkIsMHhGRiwweEZDLDB4N0YsMHgxRiwweEJGLDB4RTAsMHhERiwgMHhGNywweEVGLDB4RkYsMHhGRCwweDdGLDB4RkUsMHhERiwweEZGLAotMHhFMCwweEZGLDB4RkYsMHhGRCwweEVGLDB4RkIsMHhGRiwweEZFLCAweEY3LDB4REYsMHhGRiwweEVCLDB4NUYsMHhGRiwweEY3LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRCwweEZGLDB4RkQsIDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRCwweEZGLDB4M0IsMHhEQywKLTB4RkQsMHg2RCwweDdCLDB4NUYsMHg1NywweEY1LDB4RkQsMHg3RiwgMHg1RiwweEZGLDB4QjEsMHhGRiwweEVCLDB4RkYsMHhGRiwweEZGLAotMHhGQiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RkIsMHhCRSwweEZGLCAweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhBRiwweEZFLDB4RjcsCi0weERGLDB4REYsMHhGRiwweEZGLDB4RkYsMHg3RiwweENGLDB4RjMsIDB4RjgsMHhGRiwweEQ3LDB4RkIsMHhGRiwweDVGLDB4QkYsMHhGNywKLTB4RkIsMHhGRiwweDdGLDB4RkUsMHgyMywweEZGLDB4RkYsMHhGRSwgMHg3RiwweEYzLDB4RkYsMHhGQiwweEZFLDB4RkYsMHhGRiwweEYzLAotMHhGRiwweEZGLDB4RjUsMHhGOSwweEZGLDB4M0YsMHhGRiwweEZGLCAweEYwLDB4OUEsMHhGRiwweEJFLDB4N0YsMHhGRiwweEZDLDB4RjksCi0weEZGLDB4RkQsMHhBRiwweEVCLDB4RkUsMHhCRiwweEZGLDB4Q0YsIDB4RjMsMHhGRSwweDdGLDB4RkYsMHhGRiwweDVCLDB4QkQsMHhGRiwKLTB4QkMsMHhFQiwweEZGLDB4RDcsMHhENCwweEFGLDB4QUYsMHhGRCwgMHhGRiwweENGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LAotMHhGRCwweEZFLDB4RkYsMHg2RiwweEZGLDB4RkIsMHhGRiwweEZGLCAweEZGLDB4RkQsMHg3RiwweDVFLDB4RkQsMHhCRiwweERCLDB4RjYsCi0weEZELDB4QkYsMHg2RiwweEZCLDB4RUUsMHhGRCwweEZGLDB4N0EsIDB4RkYsMHhGQSwweEZCLDB4RkYsMHgzRiwweEZCLDB4QjcsMHg1RiwKLTB4RDYsMHhGNywweDFGLDB4NzEsMHhEQywweDc3LDB4MUQsMHhDNywgMHgzMSwweERDLDB4NzcsMHhERiwweEY5LDB4QkYsMHhGNSwweDVCLAotMHhGNCwweEQ3LDB4OUQsMHhBRSwweEZGLDB4QkYsMHhGRCwweEJGLCAweERCLDB4RjYsMHhGRCwweEJGLDB4NkYsMHhEQiwweEY2LDB4RkUsCi0weDNELDB4ODEsMHhGRiwweEVCLDB4RkUsMHhGRSwweEZFLDB4RkYsIDB4RUIsMHg3QSwweERGLDB4N0QsMHg3NywweDdELDB4RjUsMHg3OSwKLTB4REYsMHg1NywweERELDB4RjUsMHg3RCwweDdFLDB4RTYsMHhGRiwgMHhENiwweDNGLDB4QkYsMHg3RiwweEZGLDB4RDQsMHhGNSwweDNGLAotMHhCRiwweEZCLDB4QkUsMHhFRiwweEIzLDB4RUUsMHhGQiwweDlFLCAweEVGLDB4QkIsMHhGRSwweDhCLDB4RkYsMHhGRSwweERGLDB4QjcsCi0weEVELDB4RkYsMHhGNywweEZELDB4RkUsMHhGRiwweEVGLDB4QkIsIDB4RUUsMHhGRiwweEJFLDB4RUYsMHhCQiwweEVFLDB4RUIsMHhGQywKLTB4MUYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEU3LDB4RkYsMHhGNywgMHhGRCwweEZGLDB4RUYsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLAotMHhGRSwweEZGLDB4QkYsMHhFQiwweEZBLDB4MUYsMHhGRiwweEI3LCAweEVGLDB4NUIsMHhGRSwweEZGLDB4QUYsMHhFQiwweERELDB4RTcsCi0weERFLDB4NzcsMHg5RCwweEU3LDB4NzksMHhERSwweDc3LDB4OUQsIDB4QkYsMHhFNiwweDZGLDB4RkYsMHhGRSwweEZGLDB4QkYsMHhFRiwKLTB4RkIsMHhGRSwweEZELDB4QkYsMHg2RiwweEY2LDB4RkQsMHhCRiwgMHg2RiwweERCLDB4RjYsMHhGRCwweEJGLDB4RkYsMHg3RSwweEZGLAotMHhGRiwweEZCLDB4RkUsMHhGRSwweEZGLDB4RUYsMHhGQiwweEZELCAweEVGLDB4N0UsMHhGNywweEJELDB4RUYsMHg3QiwweERFLDB4RjcsCi0weEJELDB4RUYsMHhGRiwweEQ1LDB4RkYsMHhCRiwweEZGLDB4RUYsIDB4RkUsMHhGRiwweEZDLDB4M0YsMHgwRiwweEU3LDB4RkUsMHg3RiwKLTB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLDB4RTcsMHhGRSwgMHhGMywweEZGLDB4RkUsMHhERiwweEFELDB4REYsMHg2NywweEVFLAotMHhGQiwweEJGLDB4RUYsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLCAweEZFLDB4RkYsMHhCRiwweEVGLDB4RkYsMHgyMywweEZGLDB4RkYsCi0weEZGLDB4RkYsMHg3RiwweEZGLDB4RjMsMHhCQywweERCLDB4RkUsIDB4RkIsMHhGRiwweEZCLDB4QkUsMHhGNywweEZCLDB4RkYsMHg3RiwKLTB4REYsMHhGRiwweENGLDB4RkIsMHhGRiwweDlGLDB4RTMsMHhGOSwgMHhCRSwweDNGLDB4OEYsMHhFNywweDc5LDB4RkYsMHg5RCwweEU3LAotMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDVGLCAweEZGLDB4Q0YsMHhGNywweEZGLDB4RkYsMHhGRiwweERGLDB4RjcsCi0weEZFLDB4N0YsMHhFNywweEY5LDB4RkUsMHg3RiwweEZGLDB4RkYsIDB4RkIsMHhGRSwweEZGLDB4RkYsMHhCRiwweEZGLDB4QkYsMHhCRiwKLTB4RkYsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZGLDB4RkQsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjcsMHhGRCwweEZGLAotMHhGRiwweDNGLDB4RkYsMHhCRiwweEZGLDB4RjcsMHhGRiwweEZGLCAweDdGLDB4REYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFOCwweEVGLDB4RkYsIDB4NUYsMHhGNywweEJGLDB4RjksMHhGRSwweERGLDB4QjcsMHhGRCwKLTB4RkYsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywgMHhGRCwweEZGLDB4REQsMHhGRiwweEYyLDB4RkYsMHhCRiwweEZGLAotMHhGRiwweEJGLDB4RkYsMHhGRiwweDJGLDB4RjIsMHhGRiwweEJGLCAweDJGLDB4N0IsMHhEMiwweEY3LDB4QkYsMHgyRiwweEZGLDB4QkIsCi0weEZGLDB4RUUsMHg4RiwweEFGLDB4RUIsMHhGQSwweEZFLDB4M0YsIDB4QTcsMHg2OSwweENFLDB4OEYsMHhBNCwweEVBLDB4RkEsMHhFRSwKLTB4QjcsMHhBRSwweEVCLDB4RkQsMHhDNywweEZGLDB4RjcsMHhGNywgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4N0YsMHgzRSwweEYzLAotMHg3NCwweEZGLDB4M0YsMHg0RiwweEZGLDB4RTcsMHhGRiwweDNGLCAweEZFLDB4QTcsMHhGRiwweEZGLDB4REYsMHhGNywweEI3LDB4RkYsCi0weEY3LDB4RkYsMHhCQSwweEVGLDB4MzcsMHhFQiwweEZCLDB4RkUsIDB4QkYsMHhGQiwweEZFLDB4RjMsMHhGRiwweEY5LDB4REYsMHhGRiwKLTB4QkYsMHhGRiwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwgMHhGRCwweERGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGQiwweEZFLAotMHhGRCwweEZGLDB4RkIsMHhCRiwweEZFLDB4M0YsMHhFRCwweEZGLCAweERGLDB4QkUsMHgzRCwweEE3LDB4RkIsMHhGQSwweDNGLDB4RTYsCi0weEUxLDB4RkUsMHhGRSwweDNGLDB4RUYsMHhFMywweERGLDB4RjUsIDB4N0YsMHhGRSwweEZGLDB4N0UsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RUYsMHg2RiwweEY2LDB4RkYsMHg3RCwweEVGLDB4RDcsMHhERSwgMHhGRiwweDdELDB4RUYsMHhGRiwweEYyLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHg3QiwweERFLDB4RkIsMHhFNiwweEVFLCAweEVGLDB4MzcsMHg2RSwweEYzLDB4N0UsMHhFQiwweDM3LDB4RUYsCi0weEZGLDB4QzEsMHhGRiwweEZFLDB4RkYsMHhGNywweEVGLDB4RkYsIDB4RkYsMHhGRiwweEJGLDB4M0YsMHhEMiwweERGLDB4QkYsMHgyRiwKLTB4N0IsMHhFMiwweEZGLDB4RkUsMHgzQiwweEJELDB4REIsMHhGRiwgMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRiwweEZFLAotMHhGRiwweEZCLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGQiwweERGLCAweEZGLDB4QkYsMHhGRiwweEI3LDB4RkYsMHhGRiwweEJGLDB4RUYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDBGLDB4RkYsIDB4N0YsMHhGRiwweDFGLDB4RUYsMHhGMSwweEZELDB4RkYsMHhGNiwKLTB4QUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRiwgMHhGRiwweEZGLDB4RkUsMHg5RiwweEZGLDB4RkYsMHhGRiwweDc3LAotMHhFRiwweEY3LDB4RkIsMHhGRiwweEZFLDB4NUYsMHhGRiwweEZGLCAweEJGLDB4Q0YsMHhGQiwweEY3LDB4REQsMHhGNywweEY1LDB4RkYsCi0weDVGLDB4RDUsMHhGNSwweEZELDB4N0YsMHg1RiwweEQ3LDB4RjUsIDB4RkYsMHhGQiwweDBGLDB4RkYsMHhGRiwweEE5LDB4RUEsMHg3QSwKLTB4RkYsMHhBRiwweDhGLDB4RkUsMHhERiwweEFGLDB4RUYsMHhGQiwgMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4REYsMHhFNSwweDVGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4QkQsMHg1NywweEZGLCAweEZGLDB4NkYsMHg3NywweEJGLDB4RjcsMHhGQiwweEZGLDB4N0YsCi0weEJGLDB4RjcsMHhGRiwweEZDLDB4QkYsMHhGRiwweDlGLDB4RkYsIDB4RkYsMHhFRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHgxRiwKLTB4Q0YsMHhGRiwweEZDLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwgMHg2NSwweEFGLDB4RjMsMHg3QywweEZGLDB4M0YsMHhERiwweEZGLAotMHhGRCwweEU5LDB4RkUsMHg3RiwweEU3LDB4RkYsMHhGRSwweDdGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhFMywweERGLDB4RkIsCi0weERCLDB4RjYsMHhGRCwweEVGLDB4NUIsMHhGQiwweEZGLDB4REYsIDB4RkMsMHhGRiwweDNGLDB4REYsMHhGMywweEZELDB4RkYsMHg3RiwKLTB4REYsMHhFRiwweDY2LDB4RkYsMHhERiwweEFELDB4RUIsMHg3QSwgMHhERSwweEY3LDB4RjcsMHhFNywweEQ5LDB4RkQsMHg5RiwweDY3LAotMHhEOSwweEY2LDB4N0QsMHg5RiwweEU3LDB4REYsMHhGNSwweDQ3LCAweEZELDB4NjUsMHg1QiwweEQ2LDB4RjQsMHhGRSwweEZGLDB4RUYsCi0weEZGLDB4NkQsMHhGNiwweERELDB4QjcsMHg2RCwweERCLDB4NzYsIDB4REMsMHhCNywweDdELDB4RkEsMHg5QiwweEY2LDB4NkQsMHg5RCwKLTB4NjcsMHg1OSwweERGLDB4RjcsMHhERCwweEZGLDB4RUIsMHhGRSwgMHhCRiwweEFGLDB4RUIsMHhGQSwweEZFLDB4QkYsMHhBRiwweEUzLAotMHhEMSwweDlGLDB4RkYsMHhCRCwweEJGLDB4RUYsMHhGRSwweEY3LCAweEJGLDB4QkYsMHhGNywweEQ3LDB4N0YsMHhERCwweEY3LDB4OUQsCi0weERGLDB4N0YsMHhERiwweEY3LDB4RkYsMHhFMCwweDdGLDB4RkQsIDB4QzEsMHhERiwweEY3LDB4RkQsMHhDNywweDdGLDB4N0YsMHhGQiwKLTB4RkYsMHhCQiwweEVDLDB4RkIsMHgzRSwweEZGLDB4QkYsMHhFQywgMHhGQiwweEZGLDB4RDgsMHg3RiwweEJGLDB4NkMsMHhGRiwweEJFLAotMHhGRiwweEJGLDB4RUQsMHhGRiwweEVGLDB4RkUsMHhGQiwweEJGLCAweEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRSwweEZGLDB4QzUsCi0weEZGLDB4QUYsMHg2RiwweEZGLDB4RkMsMHhGRCwweDNGLDB4RTcsIDB4RkYsMHhGRSwweEZGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwKLTB4RUYsMHhGQiwweEZFLDB4QkYsMHg4OSwweEZFLDB4RkEsMHhCQSwgMHhGRSwweEJGLDB4QUYsMHhGQiwweEY2LDB4RjUsMHhEOSwweDdELAotMHg5NywweDY1LDB4RDksMHg3NCwweDVELDB4OTcsMHg2NSwweEQzLCAweEZFLDB4RDYsMHhGRiwweEJGLDB4RjcsMHhGRCwweEZGLDB4N0YsCi0weEJGLDB4Q0YsMHhGQiwweEZFLDB4RkYsMHhFRiwweEZCLDB4RkUsIDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwweEY2LDB4OEYsMHhGQiwKLTB4RkYsMHhFRiwweEZCLDB4N0UsMHhEQiwweEZFLDB4RkYsMHhCRSwgMHhFRiwweEVFLDB4RkIsMHhCRSwweEVGLDB4QkIsMHhFRSwweEZCLAotMHhCRSwweEZGLDB4RkYsMHhERiwweEZGLDB4NDMsMHhGRiwweEZGLCAweEZCLDB4RUYsMHg1RiwweEI3LDB4RkUsMHg3RiwweEU3LDB4RjksCi0weEZFLDB4N0YsMHg5RiwweEU3LDB4RjksMHhGRSwweDdGLDB4RjksIDB4QkYsMHhGRSwweEFGLDB4NzcsMHhGRCwweEZGLDB4MkYsMHhBRiwKLTB4QTcsMHhGRSwweEZGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwgMHhFRiwweEZCLDB4RkUsMHhGRiwweEYxLDB4N0YsMHhFRiwweERGLAotMHhGRiwweDk3LDB4RjUsMHhFRiwweEZGLDB4REYsMHhGRiwweEZGLCAweEJGLDB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsCi0weEZGLDB4RTAsMHhGRiwweEZGLDB4RjksMHhGRSwweDJGLDB4OEIsIDB4RTMsMHhGOCwweEJFLDB4NzcsMHg5RiwweEY5LDB4REEsMHg3NywKLTB4OUQsMHhFNywweDc5LDB4REUsMHg3NywweDlGLDB4REQsMHhGRiwgMHhGRCwweEZELDB4N0YsMHg1RiwweEQ3LDB4RkQsMHhGRiwweDdGLAotMHhFNywweEZFLDB4N0YsMHg5NywweEU3LDB4RkIsMHhGRSwweEZGLCAweEJGLDB4RUYsMHhGRiwweEFCLDB4RkYsMHhFRiwweEZBLDB4RkUsCi0weEJGLDB4QUYsMHhGRiwweEZBLDB4RkYsMHhGRiwweERGLDB4RkYsIDB4RkIsMHhGRiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGRiwKLTB4NjcsMHhGRiwweEY3LDB4RjUsMHhGRiwweEZGLDB4RkYsMHhERiwgMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHhGRiwweEJELCAweEVCLDB4RkYsMHhGRiwweEY3LDB4QUQsMHhFQiwweEZGLDB4REYsCi0weEZELDB4RkYsMHgzRiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsIDB4REYsMHhGRiwweDVGLDB4RkYsMHhGNywweEZGLDB4RkYsMHhGRCwKLTB4QkYsMHhGRiwweENCLDB4RjQsMHhGRiwweDdGLDB4RDMsMHhGNywgMHhGRCwweDNGLDB4N0YsMHhEMywweEY3LDB4RkYsMHhGQywweDNGLAotMHhGRiwweEVBLDB4RkEsMHhCRSwweEFGLDB4QUIsMHhFQiwweEJBLCAweEY0LDB4OTUsMHg2QiwweDUyLDB4RDQsMHhBRCwweDJGLDB4NEEsCi0weEQyLDB4RjYsMHhCRiwweEQyLDB4N0YsMHhGNywweDNGLDB4RkYsIDB4RkYsMHhGMywweDdGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhCQSwKLTB4REYsMHhGQiwweEZELDB4RkYsMHhCRiwweEZGLDB4RkIsMHhGRiwgMHhGOCwweDdGLDB4RUEsMHhGRiwweEZFLDB4RkUsMHhERiwweEZGLAotMHhGNywweEZGLDB4N0YsMHhCQiwweEZGLDB4RkYsMHhCRiwweERGLCAweEZCLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhCMSwweDdGLDB4RkYsCi0weEZCLDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsIDB4Q0YsMHhGRSwweEZGLDB4RkYsMHhFRiwweEZGLDB4RjcsMHhGRiwKLTB4RkYsMHhGRiwweEYxLDB4RkYsMHg2OSwweEJFLDB4RkEsMHhCRiwgMHhBRiwweEUyLDB4RkYsMHhGRSwweEZELDB4QUYsMHhGMywweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEZDLDB4RkYsMHhGRiwweDA3LCAweEZELDB4OTUsMHhEQiwweERGLDB4N0YsMHhERiwweEFGLDB4RkYsCi0weEY3LDB4QUYsMHgzNiwweEZFLDB4QkYsMHg2NSwweEVCLDB4RjYsIDB4RkUsMHg5RiwweDZGLDB4RkUsMHgwNywweEZGLDB4Q0YsMHhGRiwKLTB4RjgsMHhGRSwweEZGLDB4Q0YsMHhGRiwweEY2LDB4RkEsMHhFNywgMHhGQiwweEZFLDB4RkYsMHhCQiwweEVELDB4RjksMHhGRiwweEZGLAotMHhGRiwweDVGLDB4RkYsMHhGRiwweEZGLDB4NzUsMHhGRiwweEVGLCAweDdFLDB4RkQsMHhFMCwweEU4LDB4NUUsMHhEMywweEU1LDB4RjksCi0weDNFLDB4NUYsMHhENywweEY3LDB4RkYsMHhGQSwweDJGLDB4RkIsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHg3RiwKLTB4N0YsMHhENywweEY1LDB4N0QsMHg1RiwweDU3LDB4RDUsMHhGNSwgMHhFRiwweEZGLDB4RjMsMHg3RiwweEZDLDB4N0YsMHhGRiwweEM3LAotMHhGMSwweEZGLDB4RkYsMHgxRiwweENGLDB4QjAsMHhGRiwweDNGLCAweENGLDB4RjMsMHhGQywweEZGLDB4M0YsMHhDRSwweEZGLDB4RTQsCi0weEZGLDB4REYsMHg3RiwweEZFLDB4RjcsMHhCQiwweEZGLDB4RkYsIDB4REYsMHhFRiwweEVFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRSwKLTB4QkYsMHhCRiwweEVGLDB4RkYsMHhEMSwweEZGLDB4RkYsMHhGRiwgMHhGRCwweEZCLDB4RkYsMHhGRCwweEZGLDB4RkIsMHg5RiwweEU5LAotMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweEJGLCAweEZGLDB4QjMsMHhGRiwweEZGLDB4RjcsMHhGRiwweEZGLDB4QUYsCi0weEY3LDB4RkYsMHhCNiwweDNGLDB4RUIsMHhGQSwweEZFLDB4QkYsIDB4QUYsMHhFQiwweEZBLDB4RkUsMHhCRiwweEZFLDB4QTcsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLDB4RkYsMHhGRiwgMHhGRSwweDlGLDB4RjcsMHhGOSwweEZGLDB4N0YsMHg5RiwweEU3LAotMHhGRiwweEZGLDB4RkUsMHhBRiwweDZGLDB4RkYsMHhGRiwweEZGLCAweDlGLDB4RkYsMHhERiwweEZGLDB4N0QsMHg1RiwweERELDB4RkYsCi0weEZCLDB4QkYsMHhFNywweEJCLDB4RkYsMHhGQiwweERGLDB4NkQsIDB4NUYsMHg3RSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RUIsMHhGNywweEZGLDB4RTcsMHhFRiwweEY3LDB4RkYsMHhGRiwgMHg3RiwweEZGLDB4RjcsMHhGRiwweEZDLDB4OEYsMHhGRiwweEVGLAotMHhGRCwweEZFLDB4RkYsMHhCRSwweEY0LDB4RjIsMHg3RCwweEQ3LCAweENGLDB4RkYsMHgzRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4Q0YsMHg2QiwweEZGLDB4QkYsMHgzRiwweEZCLDB4RjIsIDB4RkMsMHg3RiwweEVCLDB4RkYsMHg5RiwweEZBLDB4RkYsMHhGRiwKLTB4M0YsMHhGRiwweEYzLDB4RkYsMHhGRiwweEZELDB4NzAsMHhGNywgMHhGRiwweEZGLDB4QkYsMHhGRiwweEZCLDB4RDcsMHhGRSwweEY1LAotMHg3NywweEZGLDB4MTUsMHhERCwweDc3LDB4RkQsMHhGRiwweDdGLCAweERGLDB4RjcsMHhGQiwweENELDB4QkYsMHhGRiwweEZELDB4RkYsCi0weEZGLDB4REYsMHgzNywweENELDB4RjksMHhFQywweEZFLDB4RUYsIDB4QkIsMHhGNCwweEZCLDB4M0YsMHg0RiwweEIzLDB4RkYsMHhGRCwKLTB4Q0IsMHhGRiwweEU5LDB4N0UsMHg1NCwweDlGLDB4RTUsMHg0QiwgMHhCNywweEZGLDB4REQsMHg3RCwweEM3LDB4NzEsMHhERCwweDc3LAotMHg1RCwweEQ3LDB4NzUsMHhDRCwweDdGLDB4RDYsMHhGRiwweEQzLCAweEY2LDB4RjksMHgzRiwweDZELDB4OTUsMHhBRiwweDdGLDB4RkUsCi0weEZGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsIDB4RkUsMHhGNiwweEM3LDB4RkYsMHhBRCwweDdCLDB4Q0EsMHhGRiwKLTB4QkYsMHhCRiwweEVGLDB4RkQsMHhFMywweERGLDB4QjcsMHhFRCwgMHhGQiwweDdFLDB4REYsMHgzNywweEVELDB4RTMsMHhGQiwweERGLAotMHhGRiwweDUyLDB4NUMsMHgxNSwweEZELDB4Q0YsMHg3RiwweERGLCAweEZFLDB4RUYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUMsCi0weDdCLDB4RkUsMHhGRiwweEZFLDB4M0UsMHg3RiwweERBLDB4RjcsIDB4RkQsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZCLDB4RUYsMHhCQiwKLTB4NkYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwgMHhGNywweDdELDB4RkYsMHhEOCwweEZGLDB4RkQsMHhCRiwweDdGLAotMHhGQiwweEZGLDB4RkYsMHg5RiwweEZCLDB4RkUsMHg3RiwweDlGLCAweEU3LDB4RjksMHhGRSwweDdGLDB4OUYsMHhFQSwweDdGLDB4RjYsCi0weEJGLDB4QkQsMHg2QSwweDVBLDB4RjYsMHhFNSwweEJGLDB4NzcsIDB4NUYsMHg2RCwweERELDB4NzcsMHg1RCwweEQ3LDB4NzUsMHhERCwKLTB4NzcsMHhGRiwweEE1LDB4QkYsMHhDRiwweEZCLDB4RkYsMHhGRiwgMHhCRiwweENGLDB4RkIsMHhGRCwweEZGLDB4QkYsMHhGMywweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRCwweEFCLCAweEZGLDB4QkYsMHhCRiwweEZGLDB4RkIsMHhGRiwweDdGLDB4RUYsCi0weEZGLDB4QkUsMHhGQiwweEVFLDB4RkIsMHhCRSwweEVGLDB4QkIsIDB4RUUsMHhGQiwweEJGLDB4RkYsMHhCNSwweEZGLDB4RDAsMHhCQywKLTB4RkQsMHgyRiwweDRCLDB4RjcsMHhGRiwweEZGLDB4OUYsMHhGOSwgMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweDlGLAotMHhGQSwweDhGLDB4RkQsMHhBQiwweEZBLDB4REEsMHhCRiwweEFGLCAweEIzLDB4RkQsMHhGRiwweEJGLDB4RkIsMHhGRSwweEZGLDB4QkYsCi0weEVGLDB4RkIsMHhGRSwweEY3LDB4QkYsMHhGRiwweDlGLDB4RkYsIDB4NzcsMHhGNywweEJELDB4RkQsMHg3NywweERGLDB4RkYsMHg3RSwKLTB4REYsMHhFRCwweEJCLDB4RkUsMHhGRiwweEJFLDB4RUYsMHhGQiwgMHhGRSwweEZGLDB4RkEsMHgzRiwweEZGLDB4QkUsMHg2RiwweDhGLAotMHhFNiwweEY5LDB4RkUsMHg3RiwweDlGLDB4QzcsMHhGRSwweDdGLCAweDlGLDB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LDB4RkIsCi0weDdGLDB4RkYsMHg3RiwweENGLDB4RkYsMHhGRCwweEZGLDB4RkYsIDB4REYsMHhGQiwweEFGLDB4QkYsMHhFRiwweEZGLDB4RkUsMHhGRiwKLTB4OUYsMHhFRiwweEZCLDB4RkYsMHhGQywweEZGLDB4RkIsMHhGRSwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEY3LAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RjUsMHhGRiwweEZGLDB4RkYsMHgzRiwweERGLDB4RjcsCi0weEZGLDB4RkYsMHg3RiwweEVGLDB4RkUsMHhGRiwweEJGLDB4RkYsIDB4RkIsMHhGRiwweEZGLDB4QkYsMHhFRiwweEZGLDB4QjMsMHg3RiwKLTB4RkYsMHg3QiwweDVFLDB4RjcsMHhGRCwweEZGLDB4N0IsMHg3RiwgMHhGNywweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLAotMHhERiwweEY3LDB4RkYsMHgxNywweEZGLDB4RkYsMHhGRiwweDdGLCAweEZGLDB4RkYsMHhERCwweEY2LDB4RkMsMHhCRiwweENCLDB4RjIsCi0weEJDLDB4QkYsMHgyRiwweENCLDB4RjIsMHhGQywweEJGLDB4RkUsIDB4OEYsMHhGRiwweEZBLDB4N0UsMHhCRiwweEE3LDB4RUIsMHhEQSwKLTB4RkMsMHhCRiwweEFGLDB4N0EsMHhGRSwweEJGLDB4QUYsMHhFQSwgMHhGQSwweEZFLDB4QkYsMHhBRiwweEY0LDB4REYsMHhGRSwweEZGLAotMHhGMywweDNDLDB4N0YsMHgzRSwweEZGLDB4Q0YsMHhGOCwweEJGLCAweDhGLDB4RTMsMHhGOCwweEZFLDB4M0YsMHg4RiwweEU3LDB4RTgsCi0weEZGLDB4RkMsMHg5RiwweEZGLDB4RkYsMHhDRiwweEVCLDB4QjMsIDB4RTcsMHhGQiwweDdCLDB4RjMsMHhGRSwweEZGLDB4Q0YsMHhEQiwKLTB4RkIsMHhGQiwweEJGLDB4NkYsMHg2RiwweERGLDB4RUMsMHg3RiwgMHhGRiwweEZGLDB4RjcsMHhGRCwweEZELDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEIyLDB4QkYsMHhGRiwweERFLDB4RkQsMHhCRCwweEVGLCAweEZCLDB4RjYsMHhERiwweEVBLDB4RTcsMHhEQiwweEZFLDB4QkIsCi0weEZGLDB4RUIsMHhGQiwweEJGLDB4OUYsMHg4RiwweEU4LDB4RkUsIDB4M0YsMHg4RiwweEEzLDB4RjgsMHhGRSwweDNGLDB4OEYsMHhGRiwKLTB4RjgsMHg3RSwweEZELDB4RkQsMHg3RiwweEZGLDB4RkIsMHhDRCwgMHhGRiwweEZELDB4RkYsMHg1RiwweEVGLDB4RkQsMHhGRiwweEZGLAotMHhERiwweEY3LDB4RkQsMHhGRiwweEJFLDB4OTAsMHhGRiwweEZGLCAweEVFLDB4RkYsMHgzRiwweEJGLDB4RjMsMHhCQiwweEZFLDB4QjcsCi0weEFCLDB4RkEsMHhGRSwweEFGLDB4QUQsMHhFQSwweEZBLDB4REUsIDB4QUIsMHhGRiwweDYzLDB4RkYsMHhGRSwweEYyLDB4RkYsMHhCMywKLTB4RkYsMHhERiwweEVFLDB4N0QsMHhGRiwweDAzLDB4RjEsMHhGNCwgMHgzRiwweDFGLDB4QzMsMHhGMSwweEVDLDB4N0YsMHhGRSwweDZGLAotMHhGRiwweEZCLDB4RkIsMHhGRiwweDlGLDB4RkYsMHhCRiwweEZGLCAweDdCLDB4NUYsMHhGRCwweEZGLDB4REYsMHhGNywweEZELDB4RkQsCi0weDdGLDB4N0YsMHhERiwweEZFLDB4Q0YsMHhGQiwweEZGLDB4RkYsIDB4QUYsMHhGQiwweEZGLDB4MUYsMHhFRiwweEE1LDB4RkQsMHhCRiwKLTB4REYsMHhGQiwweDdELDB4RkYsMHhCRiwweERGLDB4RkIsMHhGRiwgMHhGRCwweDNCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELAotMHhBRiwweEYzLDB4RkYsMHhGQiwweDdGLDB4QkYsMHhENywweEZCLCAweEJGLDB4N0YsMHhCQiwweEY3LDB4RkYsMHhGOCwweDdGLDB4RkYsCi0weEZBLDB4NUYsMHhENywweEZGLDB4REYsMHg3RiwweEVGLDB4RkYsIDB4RkYsMHg3RiwweERCLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwKLTB4QjcsMHhGQiwweEVDLDB4RkYsMHhGRiwweEY3LDB4QkYsMHhFRiwgMHhGRCwweEZDLDB4RkIsMHhGRiwweEVGLDB4RjAsMHhGRSwweDNGLAotMHg4RiwweEUzLDB4RjgsMHhGRSwweDNGLDB4OEYsMHhFRiwweDhELCAweEZGLDB4RkYsMHhFRiwweDdGLDB4QkYsMHhGRiwweEZCLDB4RkYsCi0weERCLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RUYsMHhEOCwweEZGLDB4MkUsMHg3RiwKLTB4QkUsMHhFRiwweEZFLDB4NkUsMHhGRiwweEJGLDB4RjksMHhGRiwgMHhGRiwweEYzLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGQywweDY2LDB4QkUsMHg0NywweEYzLDB4N0YsMHhERiwweEZFLCAweDg3LDB4OUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEU3LDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhENiwweDZGLDB4N0MsIDB4RkIsMHg0RiwweEQyLDB4RkYsMHhGRCwweDJCLDB4RkUsMHhGRiwKLTB4RkYsMHhGRCwweDVGLDB4RDcsMHhENSwweEY1LDB4N0QsMHhGRiwgMHhGRiwweEZGLDB4QkYsMHg5QiwweEZGLDB4RkYsMHhERiwweEI3LAotMHhGRiwweEZGLDB4REYsMHhGRiwweDNGLDB4Q0YsMHhGRSwweDdGLCAweEJGLDB4RUYsMHhGQiwweEZDLDB4RkYsMHgzRiwweEZGLDB4RDksCi0weEJGLDB4RkUsMHg5NywweEVDLDB4OEYsMHhCNywweEZFLDB4OUIsIDB4N0QsMHhGRCwweEI3LDB4REQsMHg3NywweDFELDB4QzcsMHg3MSwKLTB4REQsMHg3NywweDVELDB4RDcsMHhGMywweDZGLDB4RkQsMHgzRiwgMHg3MywweERELDB4QUYsMHhGRCwweDdBLDB4RkYsMHhGRiwweEFGLAotMHhGRSwweEZELDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEJGLCAweEVGLDB4NjYsMHg3RiwweEZGLDB4RkYsMHhCRiwweEJGLDB4RkYsCi0weEZCLDB4RkYsMHhGNywweERGLDB4RkQsMHhGQiwweDdELDB4REYsIDB4QjcsMHhDRCwweEYzLDB4N0MsMHg1RiwweDNGLDB4OTEsMHgzRiwKLTB4RkYsMHgzRCwweEVGLDB4N0IsMHhGRiwweEZDLDB4RkYsMHhDQSwgMHhFRiwweEZFLDB4RkYsMHhCRCwweEVGLDB4RkIsMHgxRSwweEU3LAotMHhCQiwweEVDLDB4N0YsMHhCMywweEZGLDB4RkQsMHg5RiwweEZGLCAweEZGLDB4RkUsMHhGRiwweEZGLDB4N0YsMHhCRiwweEZCLDB4RkUsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4RUUsMHhGQiwweEJGLDB4REYsIDB4NjcsMHhGRiwweEZGLDB4QkYsMHhFRiwweERCLDB4RkYsMHhCQywKLTB4RkUsMHg3RiwweEZCLDB4RkYsMHg5RiwweEVGLDB4RjksMHhGRSwgMHg3RiwweDlGLDB4RTcsMHhGOSwweEZFLDB4ODcsMHhGRiwweEVFLAotMHhGQiwweEJFLDB4RTUsMHhCRiwweEVGLDB4RjksMHhENywweDY1LCAweEY3LDB4REQsMHhFNywweDdELDB4REYsMHg3NywweDVELDB4RDcsCi0weDdGLDB4RjgsMHg5QiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsIDB4RkYsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLDB4N0YsMHhDRiwKLTB4RjMsMHhGQywweEZGLDB4QkYsMHhFRiwweEZGLDB4REIsMHgzRiwgMHhFRiwweEZCLDB4RkUsMHhGRiwweERGLDB4RkYsMHhGRSwweEZCLAotMHhCQiwweEVGLDB4QkYsMHhFRiwweEJCLDB4RUUsMHhGQiwweEJFLCAweEVGLDB4QkIsMHhGRiwweEZDLDB4N0YsMHhGRCwweDNCLDB4NUIsCi0weEQ2LDB4RTUsMHhGRCwweDRGLDB4QzMsMHhGQiwweEZGLDB4QkYsIDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwKLTB4QjQsMHhGRiwweEZBLDB4QkMsMHg4RiwweEIyLDB4RTksMHhEMiwgMHgyRSwweENGLDB4RkIsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLAotMHhGRiwweEJGLDB4RUYsMHhGQiwweEZGLDB4RUMsMHhGRiwweEZELCAweEZELDB4N0YsMHhERiwweEY3LDB4RTQsMHhERiwweDVGLDB4RkYsCi0weEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEMzLDB4RkYsMHhFRiwweEU2LDB4RjgsMHhGRSwKLTB4M0YsMHg4QiwweDgzLDB4RjksMHhGRSwweDdGLDB4RTcsMHhGOSwgMHhGRSwweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweDE3LAotMHhGRCwweEZGLDB4RkYsMHhGRiwweDdGLDB4NUYsMHhGNywweDJDLCAweEZGLDB4RkYsMHhGRiwweEZFLDB4N0YsMHhGRiwweEU3LDB4RjksCi0weEZFLDB4N0YsMHg5RiwweEZFLDB4MkYsMHhGRiwweEZGLDB4RUYsIDB4RkYsMHhGRSwweEJGLDB4RUYsMHhBRCwweEZGLDB4RkYsMHg3RiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRSwweERGLDB4RkYsMHhERiwweEZGLDB4RkQsMHhGRCwweDdGLAotMHhERiwweEY3LDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQSwweDNGLDB4RkUsCi0weEY3LDB4RkQsMHhFRiwweDdBLDB4RkYsMHhCMSwweEJELDB4RkYsIDB4N0YsMHhGNywweEZELDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwKLTB4RkYsMHg3RiwweEYzLDB4MjcsMHhGRiwweERGLDB4RkYsMHhERCwgMHhGRiwweEZDLDB4OUIsMHhGRiwweENCLDB4RkMsMHhCRiwweDJGLAotMHhDQiwweEYyLDB4RkMsMHhCRiwweDJGLDB4QzksMHhGRiwweERFLCAweEZGLDB4REYsMHhBRiwweEVCLDB4REEsMHhGRSwweEJCLDB4QUYsCi0weEVCLDB4RjgsMHhGNywweEFGLDB4RTgsMHhGQSwweEZFLDB4QkYsIDB4QUYsMHhFQiwweEYyLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhFRiwKLTB4QkQsMHhENywweEJGLDB4RkYsMHhGRiwweERFLDB4OEYsMHhCOCwgMHhERSwweDM3LDB4OEQsMHhBMywweDc4LDB4REEsMHgzRiwweDhGLAotMHhGRiwweEExLDB4RkYsMHhGRiwweEZCLDB4RkIsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhBNywweEJELDB4RkIsMHg3NiwweEZELDB4QkYsCi0weEVGLDB4REIsMHhGRSwweEJCLDB4QkYsMHhGRSwweDI3LDB4N0YsIDB4RkYsMHhGRSwweEZFLDB4RkQsMHhGNSwweEZGLDB4RUYsMHhGNSwKLTB4REYsMHgxRiwweEU3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGNywgMHhGRCwweEZGLDB4RkYsMHhDRCwweEZELDB4QUUsMHhGRiwweEZBLAotMHgzRSwweDNGLDB4QUIsMHhGRCwweEY4LDB4N0UsMHg4RiwweEUzLCAweEY4LDB4RkUsMHgzRSwweDhGLDB4RTMsMHhGOCwweEZGLDB4RkUsCi0weDFGLDB4RUYsMHhERiwweEJGLDB4RkUsMHhERSwweERGLDB4RDksIDB4RkYsMHhERiwweEJDLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhFRiwKLTB4RkQsMHg3RiwweERGLDB4RjcsMHhGOSwweDNGLDB4RkUsMHhGRiwgMHhGRiwweDZGLDB4RkUsMHhERSwweEJGLDB4RjcsMHhFRCwweEVBLAotMHhGRCwweDhGLDB4ODMsMHhGOCwweEVBLDB4M0YsMHg4RiwweEVGLCAweEZGLDB4RjQsMHg3RiwweEZGLDB4RUYsMHhFRiwweDdCLDB4RjMsCi0weEYxLDB4NUYsMHhGRiwweEZGLDB4RjEsMHgzQiwweDdGLDB4REYsIDB4RjcsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RTAsMHhGRiwKLTB4RkYsMHhGRiwweEY3LDB4RkYsMHg2RiwweEZGLDB4N0YsMHhGRiwgMHhGRiwweEY3LDB4REUsMHhGNywweEJGLDB4RUYsMHhGQiwweEY3LAotMHhGRCwweEZGLDB4RkYsMHhGNSwweEZBLDB4RkYsMHhGRiwweEZCLCAweEU3LDB4RkYsMHhGMywweEY4LDB4N0YsMHhGMywweERGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDFGLDB4RUYsIDB4QkIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwKLTB4RkYsMHg3RiwweEZGLDB4OUYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhDRiwweEZGLDB4MzcsMHhGRiwweEZGLAotMHg3RiwweERGLDB4NzcsMHg1RCwweEU3LDB4RkMsMHhGRiwweEJGLCAweEY3LDB4RjUsMHhGQiwweEZGLDB4RkYsMHhENywweEY1LDB4RkIsCi0weEZGLDB4RkYsMHg0NSwweEZELDB4N0YsMHhFQSwweEZELDB4QkUsIDB4QkYsMHhERiwweEY3LDB4RkYsMHhGRiwweERCLDB4RkIsMHhGRSwKLTB4RkYsMHhCRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHg1RiwgMHg3RiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZFLDB4RkYsMHhFRiwweEZELDB4RkYsMHg3RiwweERGLCAweEZGLDB4RUYsMHhGQiwweEY4LDB4MEYsMHhGMywweEZGLDB4RjksCi0weDJFLDB4RkIsMHhGRSwweEZDLDB4RjMsMHhFRiwweEZGLDB4RkYsIDB4QkYsMHhGRiwweEZCLDB4RTcsMHhGRiwweEZFLDB4N0UsMHhGRiwKLTB4QzAsMHg2QiwweENGLDB4RkYsMHgzNCwweERGLDB4RjEsMHhGRCwgMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4REYsMHhGNywweEZELAotMHhDRiwweDdGLDB4OUMsMHhGRCwweEZELDB4NkMsMHhGNywweEZGLCAweEY2LDB4RkQsMHhFQiwweDJCLDB4OUYsMHhGRiwweEZDLDB4RkUsCi0weDdFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhENywweEYzLDB4RjcsIDB4RkYsMHhGQiwweEUxLDB4QkYsMHhGRiwweEVCLDB4N0EsMHhERSwKLTB4RDcsMHhGQiwweEZGLDB4RjksMHhGRSwweEZGLDB4RkYsMHhGMywgMHhERSwweDdGLDB4RkQsMHhFNywweDdGLDB4RkYsMHhGRCwweEJCLAotMHhGRiwweEZGLDB4N0UsMHhDQywweEY2LDB4QUYsMHg1RiwweDdGLCAweEZFLDB4RjQsMHg3RCwweEY3LDB4RkQsMHhCQiwweDZFLDB4REIsCi0weEI3LDB4RkYsMHhGNywweERGLDB4NjYsMHhGRiwweEZGLDB4RjcsIDB4M0QsMHhDRiwweERFLDB4QkQsMHhGRiwweEZGLDB4REUsMHhEQiwKLTB4OEQsMHhGNywweDdFLDB4REYsMHhCNywweEVGLDB4N0YsMHhGRiwgMHhGNiwweDg3LDB4RkYsMHhGRiwweEVGLDB4RkUsMHhERSwweEJGLAotMHhGRiwweEZGLDB4RkYsMHhCQiwweEVGLDB4RkQsMHhGRiwweDdCLCAweERFLDB4RjcsMHgzRiwweEZGLDB4QkYsMHhGQiwweERCLDB4RkYsCi0weEYyLDB4QjYsMHhGRCwweEJELDB4N0YsMHhFNywweEZGLDB4RkYsIDB4RkYsMHg2RiwweEY3LDB4RkYsMHhGRiwweEZGLDB4RkUsMHg3NywKLTB4RkYsMHhCRiwweEY4LDB4QUYsMHhGRiwweERGLDB4QkYsMHhGRiwgMHhCRiwweDdGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhEQiwweEZFLAotMHhGRiwweEJGLDB4RkYsMHhGQSwweEZGLDB4RkQsMHhGRiwweEY2LCAweDdGLDB4RkYsMHg5RiwweEZGLDB4RkYsMHgzRiwweEVGLDB4RjgsCi0weEVFLDB4N0UsMHg5RiwweEJBLDB4RkUsMHhCRiwweDhGLDB4RUYsIDB4RkUsMHhGRSwweEY5LDB4RkYsMHhGQSwweDdGLDB4RkUsMHg3RSwKLTB4QkYsMHhBRiwweEZCLDB4OTYsMHhGRCwweDlGLDB4RUYsMHg1RSwgMHg2NSwweEJFLDB4RUYsMHg1QiwweEI2LDB4RkYsMHhCRSwweEUzLAotMHhGRiwweEI1LDB4QkYsMHhGRiwweEZELDB4RkYsMHg3RiwweEZGLCAweEVGLDB4REYsMHhGRSwweEZGLDB4QkYsMHhGQiwweEZFLDB4RkYsCi0weEJGLDB4Q0YsMHhGRiwweEZGLDB4RkYsMHhGRCwweDlCLDB4RkYsIDB4RkUsMHhGQiwweEZFLDB4REYsMHhGRiwweDdGLDB4RkYsMHhGNywKLTB4RkUsMHhGRiwweERGLDB4RkIsMHhGQiwweEZFLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhCNywweEZFLDB4RkEsMHhGRiwweEFCLAotMHhFRiwweEZGLDB4RkQsMHhCNSwweDdCLDB4N0YsMHhGQiwweEY3LCAweEZELDB4RkYsMHhGRiwweERELDB4RkYsMHhFRiwweDhGLDB4RkYsCi0weDJGLDB4RkYsMHhGQiwweDdDLDB4RkYsMHgzRiwweERGLDB4NzMsIDB4RUIsMHhGRSwweDNGLDB4RkYsMHhFRiwweEZCLDB4RkUsMHhGRiwKLTB4RUYsMHhGRCwweEZGLDB4QkYsMHhGRCwweDBGLDB4RkYsMHhGRiwgMHhGRiwweEY1LDB4RjksMHhGRiwweDdGLDB4RDcsMHhGRCwweEZGLAotMHhERiwweEZGLDB4RjcsMHhGQiwweEZGLDB4N0YsMHhCRiwweEZGLCAweEZGLDB4RjAsMHg5RiwweEZGLDB4RkUsMHg3RiwweDhCLDB4RTMsCi0weEY5LDB4REUsMHgyNywweDlCLDB4RTYsMHhCRSwweDdGLDB4OUIsIDB4QzMsMHhGOCwweERFLDB4N0YsMHg5RCwweEU3LDB4RkUsMHg3RiwKLTB4RkYsMHhGRiwweDVGLDB4RDcsMHhGRiwweEZGLDB4RkYsMHg0RiwgMHhGQiwweEZGLDB4RkYsMHg3RiwweEZGLDB4QUYsMHhGRiwweDlGLAotMHg3RiwweEZCLDB4RkYsMHhFOCwweEZGLDB4RkYsMHhGRSwweEJGLCAweEFGLDB4RkYsMHhGRiwweEZFLDB4QkYsMHhFRiwweEY3LDB4RkYsCi0weEJGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsIDB4RkMsMHhGRiwweEZGLDB4RkQsMHg3RiwweEZGLDB4RkYsMHhGRiwKLTB4RkQsMHgzRiwweENGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywgMHhGRiwweEZELDB4N0YsMHhGRiwweEZGLDB4OTMsMHhGRiwweEZGLAotMHg3QSwweERGLDB4RjcsMHhGRiwweEZGLDB4N0IsMHg3RiwweEI3LCAweEVGLDB4RkYsMHhGRiwweEZELDB4QkYsMHhGRCwweEZCLDB4RkYsCi0weEY3LDB4RkYsMHhENywweEZGLDB4RkYsMHhGRiwweEZDLDB4OUYsIDB4NkYsMHhDQiwweEZGLDB4RjQsMHhCQiwweERGLDB4RDYsMHhGRCwKLTB4QkYsMHgyRiwweEQzLDB4RjcsMHhGRiwweERGLDB4RkYsMHhDRiwgMHhGRiwweEZBLDB4QkUsMHhCRCwweEFGLDB4NkEsMHhEQSwweEJFLAotMHhCQiwweEFCLDB4M0EsMHhCRSwweDJELDB4QUUsMHhFQiwweERBLCAweEY2LDB4M0YsMHhBRCwweEY1LDB4REQsMHhGRiwweENGLDB4RjEsCi0weEZGLDB4RjksMHg3RiwweEZGLDB4NzMsMHhGRSwweEZGLDB4Q0YsIDB4QzMsMHhGNCwweEY3LDB4MkYsMHhGMywweEZGLDB4RkMsMHhGRiwKLTB4N0MsMHgxRiwweEZGLDB4M0YsMHg0RiwweEZGLDB4N0UsMHhGRiwgMHhFRiwweEJELDB4RjYsMHhGRSwweEZGLDB4MkIsMHhFRiwweERDLAotMHhGQiwweEZELDB4RkYsMHhGQiwweEZGLDB4RUEsMHg3QiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhGNywweERGLDB4RkYsCi0weEUzLDB4N0QsMHhGRiwweEI3LDB4RkYsMHhCRiwweEZGLDB4RkYsIDB4REYsMHhGRiwweEY4LDB4RkYsMHhCRiwweEZGLDB4QkYsMHhFQiwKLTB4RTcsMHhGQSwweEZFLDB4M0QsMHhCRiwweEU5LDB4RkMsMHhCRiwgMHhGRiwweEZBLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhGRiwweEQ5LAotMHhGRiwweEZGLDB4RkYsMHhGNiwweDdGLDB4RkYsMHhGNiwweDdELCAweEZGLDB4REYsMHhDRiwweEZELDB4QkYsMHhGQiwweEVGLDB4N0UsCi0weEZGLDB4N0YsMHhGRiwweEZGLDB4RDMsMHhGRiwweEZELDB4RkIsIDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEVGLDB4RkYsMHhCRiwKLTB4RkUsMHhGRiwweEY3LDB4RUYsMHhGRiwweEZGLDB4RkYsMHhGQiwgMHhGRiwweDg3LDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLAotMHg3QiwweEZFLDB4RkYsMHhGRSwweDNCLDB4RjcsMHhGNywweEZGLCAweDNGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweDBGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RjcsIDB4RkYsMHhGRiwweEFELDB4RkYsMHhGRSwweEY3LDB4RkYsMHhGRiwKLTB4NUYsMHhGRiwweEZGLDB4REYsMHhGRiwweEZELDB4RkYsMHhGNSwgMHhGRiwweERGLDB4RkYsMHhCRCwweEZGLDB4RTksMHhGRiwweEM3LAotMHhGMywweEZGLDB4RkYsMHhGNywweEZGLDB4RjMsMHhGRiwweEY4LCAweDNCLDB4RkYsMHhGRiwweDdCLDB4REYsMHhCRiwweEZCLDB4RUYsCi0weEZCLDB4RkYsMHhGQiwweEY3LDB4RjcsMHhCQiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRSwweDdGLDB4RjMsMHg3RiwKLTB4NUUsMHhCNywweEJGLDB4RkQsMHg3RiwweEZGLDB4RjksMHg3RiwgMHhGQiwweEZGLDB4RUIsMHhGRCwweDdGLDB4N0YsMHhGRiwweEVGLAotMHhGQiwweEUwLDB4M0YsMHhGRSwweEJGLDB4QkYsMHhERiwweEZGLCAweDdFLDB4RkYsMHhGNywweEZGLDB4RkYsMHhGRSwweEJGLDB4RkYsCi0weERCLDB4NzgsMHhGRiwweEZGLDB4RkYsMHhFRSwweEExLDB4QkYsIDB4RjUsMHhERSwweEZCLDB4RjcsMHhGRiwweEZCLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwweEQ3LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RUYsMHhGMCwweEZGLDB4RkYsMHhGRiwweEYzLAotMHhGNywweEZGLDB4RUYsMHhGRiwweEU3LDB4Q0YsMHhGRiwweEZCLCAweEZGLDB4RUYsMHhGRiwweEZGLDB4OUYsMHg5RiwweEVGLDB4RkMsCi0weDE2LDB4QkYsMHhGRSwweEYzLDB4RTQsMHhGRiwweEZGLDB4QzYsIDB4RkYsMHhFNywweEZGLDB4RkYsMHhGRCwweEZGLDB4QkYsMHhGRiwKLTB4RkYsMHgzRiwweEZGLDB4QkYsMHhENiwweEFGLDB4N0YsMHhGRSwgMHg2QiwweDdFLDB4N0YsMHhGRiwweEFGLDB4RkYsMHhGRiwweEJGLAotMHhGRiwweDVGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRSwweEZGLCAweEZGLDB4QkQsMHhEQiwweEZGLDB4RkUsMHg1RiwweEYyLDB4RkYsCi0weEZGLDB4NUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RUYsMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4REUsMHhCRiwKLTB4RkYsMHhGRiwweEVGLDB4RkIsMHg3NywweEZFLDB4QkQsMHg3RiwgMHg1RiwweEZGLDB4RkYsMHhGRiwweERGLDB4NkYsMHhFRCwweEZGLAotMHhGRCwweEZGLDB4N0YsMHhGRCwweDZGLDB4RkYsMHhGRiwweDc3LCAweERBLDB4Q0YsMHhGRCwweDVGLDB4RkYsMHhCRiwweEZGLDB4RkYsCi0weERGLDB4N0YsMHhGRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4NjYsMHg3RiwweEZGLDB4RkUsMHhCRiwweEU3LDB4QkYsMHhGQSwKLTB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweERGLDB4RkYsMHg1OSwgMHhFRiwweEZGLDB4RUYsMHhGQiwweDdGLDB4ODksMHhGRiwweEZGLAotMHhFOSwweEZGLDB4NkYsMHhGRiwweEY1LDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHg3RiwweEYyLDB4RjcsMHhGRiwweEZGLDB4RUYsCi0weEY4LDB4N0YsMHhGQiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RDksIDB4RkYsMHhFRiwweEJCLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhFRiwKLTB4REUsMHhGRiwweEZGLDB4OUYsMHg3RiwweERGLDB4RkYsMHhGNywgMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRiwweEFGLAotMHhGRiwweEZGLDB4RjcsMHgzRiwweEVCLDB4OUYsMHhGRSwweDdGLCAweDlFLDB4N0YsMHg5RiwweEZFLDB4ODcsMHhGRiwweEVELDB4REIsCi0weDU2LDB4RkYsMHhCRiwweEFGLDB4MEIsMHhEMiwweEZGLDB4RUYsIDB4REIsMHg2RSwweDdELDB4QkQsMHg2RiwweEY4LDB4RkUsMHgzRiwKLTB4RkEsMHg1QiwweEZGLDB4RkQsMHhCRiwweEVGLDB4RkYsMHhCRiwgMHg2RiwweERCLDB4RTYsMHhGRiwweEZGLDB4M0YsMHhGRiwweERGLAotMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4REEsMHgzRiwweEZGLCAweEZCLDB4RkUsMHhGRSwweEZGLDB4RkYsMHhERiwweEY3LDB4QkQsCi0weEZGLDB4RkQsMHhGRiwweEZFLDB4RkYsMHhGQiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEYxLDB4NUYsMHhGRCwweDlGLDB4REYsMHhGRCwKLTB4RkYsMHhGRCwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg3NiwgMHhGQSwweEZGLDB4RkYsMHg3RiwweEUzLDB4RjgsMHhGRiwweEFFLAotMHhGRiwweEZCLDB4N0UsMHg5RCwweDczLDB4RkYsMHhGQSwweDdGLCAweERGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGQiwweENELDB4RkYsCi0weDdGLDB4RUYsMHhGQiwweEZGLDB4RkQsMHhGRiwweEY3LDB4N0YsIDB4N0YsMHhFRiwweEZGLDB4RUQsMHhGRiwweEZGLDB4RkYsMHhCNSwKLTB4RkYsMHhCRiwweEZGLDB4QkYsMHhGRCwweEVGLDB4REIsMHhGNywgMHhGRiwweDkzLDB4RkYsMHhFRiwweEUyLDB4RjksMHhCRSwweDdGLAotMHg4QiwweEU3LDB4RjksMHhGRSwweDZCLDB4RTcsMHhGOSwweEZFLCAweDdGLDB4OUYsMHhFNywweEY5LDB4RkUsMHg3RiwweDQ3LDB4RkYsCi0weEZGLDB4RkQsMHhGRiwweDlGLDB4RkYsMHhENywweEZGLDB4RkYsIDB4RkYsMHhGRiwweEY1LDB4RkYsMHg5RiwweEZGLDB4RjcsMHhGRSwKLTB4RkYsMHhCRiwweEZFLDB4NkYsMHhGRiwweEZGLDB4RkIsMHhGRiwgMHhGRiwweEZGLDB4QUYsMHhGRiwweEZGLDB4RkYsMHg3RiwweEZCLAotMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELCAweERGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGRiwweEZGLDB4REYsCi0weEZGLDB4RkYsMHhGRiwweDVGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4NUYsMHhGQiwweEZFLDB4RkYsMHhGOCwweDM3LDB4RkYsMHhGRiwKLTB4RUYsMHhGRiwweDdGLDB4RkUsMHhCRiwweEZGLDB4RkYsMHhGRSwgMHhCRiwweEZGLDB4RkYsMHg3RiwweEZGLDB4QkYsMHhGRCwweEZGLAotMHg3RiwweEZBLDB4N0YsMHhGRiwweEZGLDB4NkYsMHhGRiwweEZGLCAweDdELDB4RkYsMHhDRiwweEZGLDB4RkYsMHhGRiwweDRGLDB4RkYsCi0weEYyLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZBLDB4QkYsIDB4RkYsMHhBRSwweEVCLDB4RkEsMHhGRSwweEJCLDB4QUQsMHhFQiwKLTB4RkEsMHhGNywweEFGLDB4NkIsMHhGQSwweEY2LDB4QkYsMHgyNSwgMHhFOSwweEYyLDB4N0YsMHg0NSwweEZGLDB4RkYsMHhGRCwweEY3LAotMHhGNywweEJGLDB4RkYsMHhERiwweEZGLDB4RkYsMHhCRiwweEZCLCAweEZGLDB4REYsMHhGMywweEZGLDB4RjcsMHgzRiwweENGLDB4RkYsCi0weEExLDB4RkYsMHhGRiwweEJGLDB4RTcsMHhGRiwweEZGLDB4N0YsIDB4RkYsMHgzRCwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHgyRiwKLTB4RkYsMHhGQiwweEY1LDB4N0YsMHhGRSwweDU3LDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LAotMHgzRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRCwweEZFLCAweEY3LDB4RUUsMHhBRiwweEZFLDB4RUUsMHhFNywweEZBLDB4RkYsCi0weEZFLDB4OUQsMHhGOSwweDVFLDB4RkUsMHhGRiwweEVCLDB4RkYsIDB4RkYsMHhERiwweEE3LDB4RkYsMHhGRiwweEZGLDB4RkMsMHhEQiwKLTB4RkYsMHhGRiwweEZGLDB4N0UsMHhGQiwweEZGLDB4RkYsMHhFRiwgMHhGQiwweEZELDB4RkYsMHhEQiwweEZGLDB4RkYsMHhGRiwweEVGLAotMHhGRiwweEZGLDB4RkYsMHhGRCwweEJGLDB4RkUsMHhCRiwweEZGLCAweDZGLDB4N0YsMHhGRiwweEY3LDB4RkYsMHhGRiwweEY5LDB4RkYsCi0weEY3LDB4RkYsMHhCRiwweERFLDB4RjcsMHhGRiwweEZGLDB4RkYsIDB4RkEsMHg3RiwweEZELDB4QkYsMHg1RiwweEZGLDB4RkYsMHhCRiwKLTB4RkYsMHhFRCwweEZGLDB4RjcsMHhCRiwweEZGLDB4RkYsMHhFRiwgMHhGRiwweERGLDB4RkYsMHhGRiwweEZGLDB4RTYsMHhGRiwweEZCLAotMHg3RiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVCLDB4RkYsCi0weEZELDB4RkYsMHhGNSwweEZGLDB4RjYsMHg3RiwweERGLDB4QkQsIDB4Q0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLDB4RkYsMHhGRiwKLTB4RkYsMHhGOSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFMywgMHhGRiwweEVFLDB4QkYsMHhGRiwweDdELDB4RUYsMHhGRSwweEZGLAotMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RTcsMHhGRiwweEI1LDB4QUUsCi0weEZGLDB4RkYsMHhCNiwweEZFLDB4QkYsMHhGRiwweEZGLDB4QkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHgyNywweEZGLDB4RUYsMHhGRSwweDdGLDB4REYsMHhGRiwgMHg3RSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkQsMHhGRiwweEY3LDB4RjksMHg5RiwweEZGLCAweDVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4N0YsCi0weEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4MEYsMHhGRiwweEU3LDB4QkYsMHhGRSwKLTB4RkYsMHhCRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkMsMHhCRiwgMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEM0LAotMHg2QiwweEZGLDB4MjksMHgxRiwweEZCLDB4QUYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEVGLDB4MUIsMHhGRSwweEZGLDB4RkMsCi0weDZGLDB4RkYsMHhGRiwweEZELDB4NkEsMHhGNywweEQ3LDB4RjUsIDB4QkYsMHhGRiwweEZFLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkUsMHhCRiwweEZGLDB4RkYsMHhGQSwweEZGLDB4RkYsMHhGNywgMHhGQiwweERELDB4QkYsMHhGRiwweEU3LDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHg3RiwweEZGLCAweEZGLDB4RjUsMHhGRiwweEZGLDB4RjcsMHhGRCwweEIzLDB4RUYsCi0weEZELDB4N0UsMHg1RCwweEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsIDB4RkQsMHg3RiwweEQyLDB4RjUsMHhGQiwweDdFLDB4Q0IsMHhCNywKLTB4RkYsMHhGRiwweEZGLDB4QzYsMHhGRiwweEZELDB4RUUsMHg2MywgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RjYsMHhGRCwweDY1LAotMHg1QiwweERGLDB4RkYsMHhENSwweEZGLDB4RkYsMHhGRiwweEY2LCAweEU3LDB4QkYsMHhGNywweEE5LDB4RkYsMHhGRiwweEVELDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RUIsMHhGRiwweEZGLDB4RkYsIDB4QUYsMHhGRiwweEZGLDB4RkYsMHhGOCwweDFCLDB4RkYsMHhFMywKLTB4RDAsMHhCRiwweEZGLDB4RTEsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEQ3LDB4RkYsMHhGRiwweEZGLDB4NUYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4QUYsMHhGRiwweERCLDB4NzYsMHhCRiwweEZGLCAweDdGLDB4RkYsMHhCRiwweEVGLDB4RkUsMHhGRiwweEJGLDB4RUYsCi0weEZCLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhCRiwweEYyLDB4N0YsIDB4RkYsMHg5RiwweEZFLDB4QkQsMHhGRSwweDdGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEY3LDB4M0YsMHhFQywweDdGLDB4RjYsMHg5NSwweEJCLAotMHhFRiwweEY4LDB4RkUsMHhGQywweEJGLDB4MkYsMHhEQSwweEZDLCAweEJGLDB4MkYsMHhDQiwweEYyLDB4RkMsMHhCRiwweEVGLDB4RkYsCi0weEE5LDB4QkYsMHhDRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkUsIDB4REQsMHhCNywweDZELDB4RjYsMHhEOSwweEI2LDB4NkQsMHg5QiwKLTB4NzYsMHhEOSwweEJGLDB4RkIsMHhGRCwweEEzLDB4RkYsMHhCRiwgMHhFRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsMHg3RiwweERGLAotMHhGRCwweEVGLDB4N0IsMHhERSwweEY3LDB4RkQsMHhFRiwweDdGLCAweEZGLDB4RkYsMHgwNSwweEZGLDB4RkEsMHhGRSwweDdGLDB4RUYsCi0weEUzLDB4RkYsMHhGRiwweEZELDB4N0YsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRCwweDdGLDB4RkIsMHhBRiwKLTB4RkYsMHg2MywweEM4LDB4RkYsMHhCRiwweEVGLDB4RkYsMHhGRiwgMHhGQSwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkUsMHg5RiwweEY3LAotMHhGRiwweEZBLDB4QkYsMHhGRSwweDlGLDB4RkIsMHg3RiwweEZGLCAweEZGLDB4RUYsMHhENywweEZGLDB4RkYsMHhGNSwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRCwweDdGLDB4RkYsMHhGRiwweEJGLDB4RkYsIDB4RjksMHhCRiwweEZGLDB4QkUsMHgyNywweDlGLDB4RTcsMHhGOSwKLTB4RkUsMHg3RiwweDhCLDB4RTcsMHhGRSwweDdGLDB4OUYsMHhFMiwgMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LDB4RjEsMHg3RiwweEZGLAotMHhGRiwweEZGLDB4RkIsMHhGRSwweEZGLDB4RkYsMHhGRiwweEQ3LCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkYsCi0weEQ3LDB4RkYsMHhGQSwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsIDB4RkQsMHhGRiwweEZGLDB4RkYsMHhBRiwweEY3LDB4RkYsMHhGRiwKLTB4RkYsMHhFQiwweEZGLDB4RkYsMHhGRiwweEFGLDB4RkYsMHhDNCwgMHhGRiwweEY3LDB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweDVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhENywweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RUIsMHhGRiwweEZCLDB4N0EsCi0weERGLDB4RjcsMHhGRCwweEZGLDB4RkYsMHhGRSwweEJGLDB4RkYsIDB4RkYsMHg3RiwweEZGLDB4QUYsMHhGRiwweEZGLDB4RkYsMHhGNywKLTB4RUYsMHhFMywweEZGLDB4REQsMHhEMiwweEZGLDB4REYsMHhGRiwgMHhGRiwweEYyLDB4RkMsMHhCRiwweENCLDB4RjYsMHhGRCwweEJGLAotMHgyRiwweENCLDB4RkYsMHg3RiwweERGLDB4REUsMHhBRiwweEZGLCAweERBLDB4RUUsMHhCRiwweEFGLDB4RTksMHhGQSwweEY0LDB4QkQsCi0weEFGLDB4NUEsMHhBRSwweEJCLDB4QUIsMHg2QiwweERBLDB4REUsIDB4QkYsMHhBRCwweEQ3LDB4NUUsMHhGRiwweEZGLDB4QkYsMHhGQywKLTB4RkYsMHhERiwweEZELDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERiwgMHhGNywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZBLAotMHgxRiwweEZGLDB4RkUsMHhGQiwweEVGLDB4QkYsMHhGRCwweEZGLCAweEZELDB4QkQsMHg3NywweEZGLDB4RkYsMHhGRiwweEZGLDB4OUQsCi0weEVGLDB4RkYsMHhGRiwweEZGLDB4RUYsMHg3RCwweEZGLDB4RkIsIDB4RkUsMHhFRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGNywKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFRSwgMHhCRiwweEU0LDB4RkIsMHhGRiwweEZFLDB4M0YsMHhGRSwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhBRiwweEVBLDB4RkUsMHhCRiwweEFGLCAweEVCLDB4RkEsMHhGRSwweEZGLDB4RkYsMHhGRiwweDU1LDB4RjYsCi0weEZGLDB4RkUsMHhGNywweEZGLDB4N0YsMHhGRiwweEVCLDB4RjcsIDB4NUYsMHhDNSwweEZELDB4N0YsMHg1RiwweEQ3LDB4RjUsMHhGRiwKLTB4NkYsMHhGQiwweEZGLDB4OEEsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhFQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkIsMHhCRiwweEJGLAotMHhFRiwweEZCLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLCAweDc3LDB4REYsMHhGQiwweEZGLDB4RkQsMHg3RiwweEVGLDB4RkYsCi0weEZGLDB4RkYsMHhCRiwweDdGLDB4RkYsMHhERiwweEJGLDB4RkYsIDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRSwweEVGLDB4REYsMHhGRiwKLTB4RkUsMHhGRiwweDlGLDB4RUYsMHg3RCwweEZGLDB4RjcsMHhGRiwgMHg3RiwweEZGLDB4RkYsMHhERiwweEY3LDB4RkQsMHhGRiwweEVGLAotMHhERiwweEZGLDB4REYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RkIsCi0weEZELDB4RkYsMHhCRiwweERGLDB4RDEsMHhGRiwweEY4LDB4M0IsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4N0UsMHhEQiwweEZELDB4RkYsMHg3NywweERCLDB4QjcsMHg3RCwgMHhCRiwweEZCLDB4RkYsMHhGOCwweDdGLDB4RUQsMHg3QiwweDVFLAotMHhGRiwweEZFLDB4RkYsMHhGRiwweDRGLDB4RDcsMHhGRCwweDdGLCAweERGLDB4RDcsMHhGNSwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkYsCi0weEYyLDB4M0YsMHhGRSwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhCRiwweEVGLDB4RkUsMHhGRiwweDNCLDB4RUUsMHhGRiwKLTB4RkMsMHhFRiwweEZGLDB4RkYsMHhGRiwweDg1LDB4RkYsMHhGRCwgMHhGRSwweEZGLDB4RjUsMHhGRiwweEZGLDB4RkUsMHhGRiwweERGLAotMHhGQiwweEZGLDB4NUYsMHhCRiwweEZGLDB4RkQsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhBOCwweEZGLDB4RkYsMHg5RiwweDlFLDB4RkYsCi0weEZGLDB4RkYsMHg3RiwweEYzLDB4RkYsMHhGRiwweENGLDB4RkYsIDB4RjcsMHhGRCwweEZGLDB4N0YsMHhGRiwweEZGLDB4RkMsMHgxNiwKLTB4QkYsMHhDRiwweEEzLDB4RTUsMHhFRiwweDdGLDB4RkYsMHhGMywgMHhFNCwweEZGLDB4Q0YsMHg5MywweEZDLDB4RkYsMHgzRiwweENGLAotMHhGRiwweEZGLDB4RkYsMHhENiwweDBGLDB4N0QsMHhCRiwweDZFLCAweEZCLDB4RjQsMHhGQywweEFGLDB4NkQsMHhEQiwweDc3LDB4QjcsCi0weDZELDB4REIsMHhGNiwweEZELDB4QkYsMHhGRiwweEZGLDB4RkYsIDB4QkYsMHg5QiwweEZBLDB4REUsMHhCNywweEI3LDB4RUQsMHhGOSwKLTB4N0UsMHhCNywweEFDLDB4RUIsMHhENiwweEIzLDB4QUQsMHhFQiwgMHg3QSwweERGLDB4RkYsMHhGRiwweEZGLDB4RDgsMHhCRiwweEZGLAotMHhCNywweEVELDB4OUYsMHg2RiwweERELDB4RjcsMHg2OCwweERCLCAweDM3LDB4QjMsMHg2QywweERCLDB4MzYsMHhDRCwweEIzLDB4N0YsCi0weEZGLDB4N0YsMHhGNSwweDZGLDB4RkQsMHhFRiwweDc5LDB4M0QsIDB4RjcsMHg5MywweEU0LDB4N0EsMHg5RSwweEFELDB4RUEsMHg3QSwKLTB4OUUsMHhGNywweEJELDB4RUYsMHhGRiwweEZGLDB4RkYsMHg3NiwgMHg3RiwweEZCLDB4QzYsMHhGRiwweEJCLDB4RUYsMHhEQSwweEZFLAotMHhGRCwweEJGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLCAweEZGLDB4RkYsMHhGQiwweEZGLDB4QTUsMHhGRiwweEZELDB4QUIsCi0weDZGLDB4NzgsMHhERSwweDE3LDB4OEYsMHg3OSwweERGLDB4RkQsIDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4RkYsMHhGQiwKLTB4RkYsMHhGQiwweEZGLDB4RUYsMHhGQiwweEVGLDB4RkIsMHhGRSwgMHhGRiwweEJCLDB4REEsMHhGMywweEVGLDB4M0IsMHhDRSwweEYzLAotMHhCQywweEVGLDB4M0YsMHhDRiwweERGLDB4RkYsMHhCNywweEZGLCAweEZGLDB4RkYsMHhDRiwweDczLDB4RkYsMHhCRiwweEVGLDB4RkYsCi0weEYzLDB4RkYsMHgzRiwweENGLDB4RjMsMHhGQywweEZGLDB4M0QsIDB4Q0YsMHg5RiwweEZFLDB4MDcsMHhGRiwweEFGLDB4RUIsMHhGRSwKLTB4RkQsMHhCRiwweEVGLDB4RUIsMHhGQSwweEZGLDB4QUYsMHhFQiwgMHhGQSwweEZFLDB4QkYsMHhBRiwweEZCLDB4RkUsMHgzRiwweEZCLAotMHg5QiwweEZGLDB4N0YsMHhERiwweEZGLDB4RjMsMHhGRSwweEZGLCAweERFLDB4RjcsMHhCRiwweDdCLDB4REUsMHhGNywweEJELDB4RUYsCi0weDdCLDB4RkUsMHhGRiwweEZGLDB4REYsMHgzRiwweEZFLDB4RkYsIDB4QjcsMHhGRiwweEVGLDB4RjcsMHhGRiwweEJGLDB4RUQsMHhGRSwKLTB4REYsMHhCNywweEVELDB4RkIsMHg3RSwweERGLDB4RkYsMHhGRiwgMHhGRiwweEZELDB4NUYsMHhFRiwweEVCLDB4RkEsMHhGRSwweEY1LAotMHhCRiwweDZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZFLDB4RjgsMHhGRiwweEE4LDB4RkYsCi0weEZGLDB4QkYsMHhFRiwweEZCLDB4NkEsMHhGQiwweEI3LDB4RUYsIDB4RkIsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhCRiwKLTB4RUYsMHhGQiwweEZGLDB4RTAsMHhGRiwweEZGLDB4RkQsMHg3RiwgMHg1QywweEQ3LDB4N0QsMHhERiwweEYzLDB4NUMsMHhGNSwweENELAotMHg3MywweDVFLDB4RDcsMHhCNSwweEZELDB4N0YsMHhFRiwweEZGLCAweERCLDB4RkYsMHhGRiwweEUyLDB4RjgsMHhCRSwweDJGLDB4OEYsCi0weEU3LDB4RjgsMHhCRSwweDZCLDB4RTIsMHhGOCwweEJFLDB4MkYsIDB4OEIsMHhFMiwweEY5LDB4RkUsMHg3RiwweEU3LDB4RkYsMHhENywKLTB4RjUsMHhGRCwweDdGLDB4RkYsMHhGNywweEY1LDB4RkQsMHg3RiwgMHhENywweEY1LDB4RkQsMHg3RiwweDVGLDB4RDcsMHhGNSwweEZGLAotMHhGRiwweEZGLDB4OEYsMHhGRiwweEFGLDB4RUIsMHhGQSwweEZGLCAweEZGLDB4QkYsMHhFQiwweEZBLDB4RkYsMHgyRiwweEVCLDB4RkEsCi0weEZFLDB4QkYsMHhBRiwweEVCLDB4RkYsMHhGRiwweEZFLDB4NUYsIDB4RkYsMHg1RiwweEZGLDB4RkYsMHhGRCwweEZGLDB4RkYsMHhENywKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RkUsMHhCNywweEZELAotMHhGRiwweDdFLDB4REYsMHhGNywweEFELDB4RkYsMHg3RiwweEY3LCAweEZELDB4RkYsMHg3RiwweERGLDB4RjcsMHhGRCwweEZGLDB4N0YsCi0weEY2LDB4N0YsMHhGRiwweEZGLDB4RkYsMHhEQiwweEY2LDB4RkMsIDB4QUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY3LDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVDLDB4QkYsMHhGRiwgMHhBRiwweEVCLDB4RkEsMHhGNiwweEFCLDB4OEYsMHhFQiwweEZBLAotMHhGNywweEE1LDB4RUIsMHhGQSwweEJFLDB4QkYsMHhBRiwweEVCLCAweEZBLDB4RkYsMHg2RCwweEZGLDB4RkYsMHg3RiwweERGLDB4MzMsCi0weERELDB4RkYsMHg3RiwweEZFLDB4RjcsMHhGQywweDdGLDB4RkIsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhBOSwKLTB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRSwweEZGLDB4RkYsMHhERiwgMHhGRiwweEZGLDB4RUYsMHhFRiwweEZELDB4RkYsMHg3RiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRSwweEE3LDB4RkYsMHhGRiwweEZGLCAweDc3LDB4REYsMHhGNywweEZELDB4OUYsMHg3RiwweEZFLDB4NzcsCi0weEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhBRiwweEJGLDB4QUYsMHhGRiwweEY5LDB4QkUsMHhCRiwKLTB4OEYsMHhGQiwweEZFLDB4RkUsMHhFRiwweEZCLDB4RkUsMHhGRiwgMHhCRiwweEVGLDB4RkIsMHhGRiwweEZGLDB4RkQsMHhERiwweDZGLAotMHhFRiwweEZGLDB4N0YsMHhGRiwweEJGLDB4QkYsMHhERiwweEZGLCAweEZDLDB4RkYsMHhERiwweEY3LDB4RkQsMHhFRiwweDdGLDB4REYsCi0weEZGLDB4RkYsMHhGRiwweDNGLDB4RjYsMHhGRiwweENGLDB4RkYsIDB4REIsMHhGQiwweEY3LDB4RkYsMHhFQiwweDdBLDB4RkYsMHhGRiwKLTB4RkYsMHhCRiwweEVGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhGRSwgMHg2RCwweEZELDB4RkYsMHg1RiwweEZCLDB4RkYsMHhGRiwweEY3LAotMHhGRiwweDVGLDB4RjUsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RjgsMHhGRiwweEZCLDB4RkYsCi0weEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEU3LDB4RjYsIDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RkYsMHhGRiwKLTB4RkYsMHhDOSwweEZGLDB4RkYsMHhGRiwweEJELDB4RkYsMHhCRiwgMHhBRiwweEVGLDB4RUYsMHgzRiwweEQxLDB4RkMsMHg3RiwweEZCLAotMHhDNywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhFMywweEZGLCAweEZGLDB4RkYsMHhGRiwweEZELDB4RkYsMHhGRiwweDc3LDB4RkYsCi0weERGLDB4QjcsMHhGRCwweEY3LDB4RkQsMHhGNywweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4NTcsMHhGRiwweEY3LDB4QTUsMHhGRCwKLTB4M0YsMHhERiwweEJGLDB4QkYsMHhGRSwweDdGLDB4RkYsMHhGRiwgMHhGRiwweERGLDB4RkEsMHhGRCwweEZGLDB4RkYsMHhGRiwweEZFLAotMHg4NywweEZGLDB4RTksMHhGRiwweEZFLDB4RUYsMHhCRiwweEVGLCAweEZFLDB4RkUsMHhGRiwweEVGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkEsMHg5RiwweEZGLDB4M0YsIDB4RkYsMHhGRCwweEZELDB4NTcsMHhERiwweEZELDB4RjMsMHhGRiwKLTB4REYsMHhGRCwweEZGLDB4NUYsMHhERiwweEY1LDB4RkQsMHhGRiwgMHhGRiwweEY5LDB4OEYsMHhGRiwweEZGLDB4RkYsMHhFRSwweDdGLAotMHhGRiwweEZGLDB4QkYsMHg1RSwweEZFLDB4RUMsMHhGQiwweDNGLCAweDdGLDB4OUYsMHhFRiwweEY5LDB4RkYsMHhGRiwweENELDB4NkIsCi0weEZGLDB4RkYsMHhGRiwweEM1LDB4RjMsMHhGQywweEZBLDB4MzgsIDB4RkYsMHhBRiwweDNGLDB4RUUsMHg3RiwweDlGLDB4RkYsMHhEOSwKLTB4RkYsMHhGRiwweEZELDB4N0EsMHhGNywweEZGLDB4RjMsMHhGRiwgMHhBRiwweDZGLDB4REIsMHhGMiwweEI5LDB4RTksMHhGQiwweEZGLAotMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZCLCAweEM1LDB4QkYsMHhGRiwweEVGLDB4RkYsMHg1RSwweEI3LDB4QUQsCi0weENELDB4NzksMHg3QywweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweDkzLDB4RkYsMHhFRiwKLTB4RUEsMHhGRSwweEJGLDB4RUYsMHg1QiwweEQyLDB4Q0QsMHhGNSwgMHg2RCwweDc3LDB4REYsMHhGNywweEZELDB4RkYsMHg3RiwweERGLAotMHhGRiwweEZGLDB4NjYsMHhGRiwweEQ1LDB4NjUsMHg3RCwweDVGLCAweDc1LDB4OUQsMHg2NSwweDdGLDB4RDYsMHhGQiwweDRGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEY2LDB4QzcsIDB4RkYsMHhCRiwweEVGLDB4RkEsMHhGRSwweEZGLDB4QkYsMHhFQiwKLTB4RkYsMHhERiwweEZGLDB4N0UsMHhGRiwweEZGLDB4RUYsMHhGRCwgMHg3RSwweEQ3LDB4RkYsMHg3OCwweERGLDB4RkYsMHg1RiwweERGLAotMHhGNSwweEJGLDB4N0YsMHhERiwweEM1LDB4RkYsMHgzRiwweEY2LCAweDdFLDB4RkYsMHgwRiwweEVGLDB4RjIsMHgzRSwweEJGLDB4RkYsCi0weEZCLDB4M0YsMHhGRiwweEZCLDB4N0YsMHhGRiwweEIzLDB4RkUsIDB4RkIsMHhGNiwweEZELDB4RkYsMHhEQSwweEY3LDB4RkQsMHhGRiwKLTB4N0YsMHhERiwweEY3LDB4QkYsMHhGRiwweEZBLDB4N0YsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHg5RiwweEZGLDB4RjMsMHhEQywweEY5LAotMHhCRiwweENFLDB4RTcsMHhGOSwweEZFLDB4N0YsMHg5RiwweEU3LCAweEZGLDB4RkYsMHhFMiwweDdGLDB4RkUsMHhGRiwweEJGLDB4RUYsCi0weEVCLDB4RkEsMHhGRiwweDlGLDB4NjcsMHgxRSwweEZGLDB4OEYsIDB4RTcsMHhGOCwweEZFLDB4N0YsMHg4RiwweEVGLDB4RkYsMHhCRCwKLTB4QkYsMHhGRiwweEZCLDB4RkYsMHhGRiwweERGLDB4RjcsMHhGRiwgMHhGQywweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RkYsMHhGRCwweEIzLDB4RkYsMHhGRiwweEVGLCAweEZGLDB4RkYsMHhCRiwweEVELDB4RkYsMHhGQiwweEVFLDB4RkUsCi0weEZGLDB4RkYsMHhFRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhCNSwweEZGLDB4QjcsMHhGRCwweEZELDB4NkUsMHhGRiwKLTB4RkYsMHhGRSwweEZELDB4MkYsMHhEOCwweEZFLDB4QkYsMHg4RiwgMHhFQiwweEY5LDB4RkUsMHgzRiwweEZGLDB4RkEsMHhDRiwweEZGLAotMHhFNywweEQ5LDB4RkEsMHhCRiwweERGLDB4NzcsMHhGQywweEZCLCAweDNGLDB4QUIsMHhGRSwweEZGLDB4QkYsMHhFRiwweEZCLDB4RkUsCi0weEZGLDB4RkYsMHhFRSwweDFGLDB4RkYsMHhERiwweEY3LDB4RkYsIDB4RkYsMHhGRiwweDVGLDB4OTcsMHgzNSwweEJGLDB4NUUsMHhGRSwKLTB4QkYsMHhFRiwweEZGLDB4RjcsMHhGRCwweEZGLDB4RkYsMHhGQSwgMHhCRiwweEZGLDB4QkUsMHg2RiwweDlGLDB4RTcsMHhGOCwweEJFLAotMHgyRiwweDhCLDB4NjYsMHg5NCwweDdELDB4OUQsMHhFNywweEY5LCAweEZFLDB4N0YsMHg5RiwweEU3LDB4RjEsMHg3RiwweEZGLDB4RkYsCi0weEZGLDB4RjcsMHhGNSwweEZELDB4N0YsMHg1RiwweEZCLDB4RkQsIDB4OUUsMHhGRiwweEZCLDB4RkUsMHhGRiwweEZGLDB4RUYsMHhGRiwKLTB4RkYsMHhBMCwweEZGLDB4RkYsMHhGRiwweEJGLDB4RUYsMHhFQiwgMHhGQSwweEZFLDB4QkYsMHhCNywweEY3LDB4RjcsMHhGRiwweEZGLAotMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhERCwweEZGLCAweEZELDB4RkYsMHhGRiwweEZGLDB4RDcsMHhGRiwweEZGLDB4RkYsCi0weDdGLDB4RjUsMHhGRiwweEZGLDB4RUYsMHhGRiwweEZGLDB4RkYsIDB4QkYsMHhGRiwweEZGLDB4QUIsMHhGRSwweEZCLDB4RkUsMHhGRiwKLTB4RjcsMHhBRiwweEZGLDB4RkYsMHhERSwweEY3LDB4RUIsMHg1RiwgMHhERiwweEY3LDB4RkQsMHhGRiwweDdGLDB4REYsMHhGRiwweEZGLAotMHhCMywweEZGLDB4QzksMHhGRSwweEZGLDB4RkYsMHhGRiwweEZGLCAweEQ2LDB4RkYsMHhGRiwweENCLDB4RkYsMHhGRiwweERGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkMsMHg4RiwweEZGLDB4QkEsIDB4QkUsMHhCRiwweEFGLDB4RUIsMHg3OCwweEZFLDB4QjcsMHhBRCwKLTB4M0EsMHhGRSwweEI3LDB4QUYsMHhFQiwweDdBLDB4RkUsMHhCRiwgMHhBRiwweEZGLDB4OUYsMHhGRiwweEZGLDB4REYsMHhGQywweEZGLAotMHhGRiwweEZFLDB4QzMsMHhGRSwweEZGLDB4RkYsMHgzMywweEZDLCAweEZGLDB4QkYsMHhERiwweEYzLDB4RkYsMHhGRiwweEJCLDB4OUYsCi0weEZGLDB4RkYsMHhGRiwweEVCLDB4REYsMHhGRiwweEZGLDB4QUYsIDB4RjcsMHg2RiwweEY5LDB4QkYsMHhFRiwweEZELDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RTMsMHg3RiwweEZGLDB4RkYsMHhGRiwgMHhGQiwweEZGLDB4RkYsMHhCRiwweEZELDB4RkIsMHhGNywweEZGLAotMHhERiwweEY3LDB4RkYsMHhGRSwweEVGLDB4NUYsMHhCRCwweEZGLCAweEZBLDB4RkYsMHhGOCwweEZGLDB4QkYsMHhBRiwweEZCLDB4RkUsCi0weEZFLDB4M0YsMHhFRiwweEU4LDB4RkYsMHhERiwweEYzLDB4RkQsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEVELDB4RkYsMHhGQiwKLTB4RkQsMHhGRiwweEFGLDB4RkYsMHhGRiwweEZFLDB4RkUsMHhCRiwgMHhEQiwweEZGLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhERiwweEZGLAotMHhGRCwweEZGLDB4Q0IsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEJGLDB4NkYsMHhGRiwweDdGLDB4QjcsMHhCMywweEZGLDB4RkYsCi0weERGLDB4RkYsMHhGQiwweEVGLDB4RkYsMHhGRiwweEZGLDB4MDcsIDB4RkYsMHhGQiwweEZGLDB4RkYsMHhGRiwweEVELDB4RkYsMHhGNSwKLTB4N0MsMHhGRiwweDdGLDB4RkUsMHhGRiwweEZGLDB4RUYsMHhDRiwgMHhGRiwweEZCLDB4RkYsMHhGRiwweDJGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEYzLDB4RkYsMHhGQiwweEZGLDB4RkUsMHhGRiwweEZGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsCi0weEZELDB4MUIsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZFLDB4N0MsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RUYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZCLDB4QkYsMHg3RiwgMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhEQiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELCAweEZGLDB4RkYsMHhGMCwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGQiwweEZGLDB4REYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZELDB4QkYsMHhGRSwKLTB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEVGLDB4RkUsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RUYsMHhGQSwweEI1LDB4RkYsMHhGRiwweEZGLCAweEY3LDB4RjcsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLDB4RkIsCi0weEZDLDB4RkYsMHhGRiwweEZFLDB4RkYsMHg3RiwweERGLDB4QkYsIDB4RkYsMHhDQiwweEJGLDB4RjksMHhGRSwweDdGLDB4OUYsMHhFNywKLTB4RjksMHhGRSwweDdGLDB4OTcsMHhFMSwweEZFLDB4NzksMHg5RiwgMHhFNywweEZELDB4RkUsMHg3RiwweERGLDB4RkUsMHgzNywweEZGLAotMHhGQiwweERFLDB4REUsMHhCRCwweEVGLDB4RjMsMHhGRSwweEZCLCAweEFGLDB4RUIsMHhGRSwweEZGLDB4RkYsMHhDRiwweEZGLDB4RkUsCi0weEZGLDB4QkYsMHhGRiwweDhGLDB4RkYsMHhFRiwweEZCLDB4RkUsIDB4RkYsMHhCRiwweEU3LDB4RjksMHg1RSwweDdGLDB4RUYsMHhGQiwKLTB4REEsMHhGRiwweEJGLDB4RUYsMHhGQiwweEZFLDB4RkYsMHhGRCwgMHgxRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweERGLAotMHhGRiwweEZGLDB4N0YsMHhGRiwweEZGLDB4RjcsMHhGQiwweDdGLCAweEZGLDB4RkYsMHhGRiwweEZGLDB4RkMsMHgzRiwweEZGLDB4QkYsCi0weEVGLDB4RkIsMHhGRSwweEZGLDB4QkYsMHhFRiwweDdCLDB4N0YsIDB4QkYsMHhFRiwweEZCLDB4RkUsMHhGRiwweEI1LDB4RUYsMHhGQiwKLTB4QkYsMHhGQSwweDdGLDB4RkMsMHhGRiwweDNGLDB4Q0YsMHhGMywgMHhGQywweEZGLDB4M0YsMHhDRiwweEJDLDB4RkYsMHgzRiwweEVGLAotMHhGMywweEZDLDB4RkUsMHgzRiwweENGLDB4RkYsMHhFRSwweEVGLCAweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGQiwweDZBLDB4RDcsCi0weEI3LDB4RkIsMHhGOCwweEZGLDB4QjcsMHhFRiwweEJBLDB4RkUsIDB4RkYsMHhCRiwweDdGLDB4RTksMHhGRiwweEY5LDB4N0UsMHg1RiwKLTB4OTcsMHhFNSwweEY5LDB4RkUsMHg3RiwweEJGLDB4RjksMHg3RSwgMHg1RiwweDlGLDB4RTUsMHhGQiwweEZFLDB4NUYsMHhCNywweEZGLAotMHhBMywweEZGLDB4RjcsMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LCAweEZELDB4RkYsMHg1RSwweEY3LDB4N0QsMHhGRiwweDc3LDB4REYsCi0weEY3LDB4RkQsMHhGRiwweDdGLDB4RkYsMHhENywweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRCwweERGLDB4RkIsMHg3RiwKLTB4RkYsMHhGRiwweEVGLDB4RkYsMHhGRSwweEZCLDB4RkYsMHhGRiwgMHhCRiwweEZFLDB4OEYsMHhGRiwweERGLDB4RjcsMHhGRCwweEZELAotMHg3RiwweERGLDB4RjcsMHhGRCwweDNFLDB4REYsMHhGNSwweEJELCAweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGNywweEZGLDB4OUYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRCwweEZGLDB4QkUsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkQsMHgzRiwweEZGLDB4REYsMHhGNywgMHhGRCwweEZGLDB4N0YsMHhERiwweEY3LDB4RkQsMHhGRiwweENGLAotMHg3NywweEZDLDB4RkYsMHg1RiwweERGLDB4RjcsMHhGRCwweEZGLCAweEY0LDB4N0YsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRCwweEZGLDB4RkYsMHhGRiwweEVFLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwgMHhFRCwweEZCLDB4RkYsMHhGRiwweEJGLDB4RkYsMHhGRiwweEZGLAotMHhGRiwweEZGLDB4RTksMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweEZGLDB4RkIsMHhGRiwweEZGLDB4RkYsMHhEMywweEZGLDB4RkYsCi0weEJGLDB4M0YsMHhGQiwweEZGLDB4RkYsMHhGRiwweEZCLDB4RjMsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZFLDB4RkYsMHhGNywgMHhGRiwweEZGLDB4RkYsMHhGRiwweDE3LDB4RkYsMHhGRiwweEZGLAotMHhERiwweEZGLDB4RkQsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLCAweERGLDB4REYsMHhGRiwweEZELDB4RkYsMHhGRiwweERGLDB4RjcsCi0weEZGLDB4NEYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkUsMHhGRiwweEZGLDB4RkYsMHhGRCwKLTB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRSwweEZGLDB4OUYsMHhGRiwgMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLAotMHhGRCwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHg3RiwweEZGLCAweEZGLDB4RkYsMHg3QSwweDNGLDB4RkYsMHhGRiwweEZGLDB4RkYsCi0weEZGLDB4RkYsMHhGRiwweDdGLDB4RkYsMHhGRiwweEZGLDB4RkYsIDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGRiwweEZGLDB4RkYsMHhGMiwKLTB4N0YsMHhGRiwweEZCLDB4RkUsMHhGRiwweEJGLDB4RUYsMHhGOCwgMHhGRSwweEZGLDB4QkYsMHhGQiwweEZFLDB4RkYsMHg4RiwweEVDLAotMHhGQiwweEZFLDB4RkYsMHhCRiwweEY4LDB4RjcsMHhGRSwweEZGLCAweEJGLDB4RUYsMHhGQiwweEZFLDB4RkQsMHhCRiwweENGLDB4RUMsCi0weEZGLDB4M0YsMHhFRiwweERCLDB4RjgsMHhGRiwweEJGLDB4Q0YsIDB4RkYsMHhGOSwweEZGLDB4RkYsMHhCRiwweEZGLDB4RkIsMHhGRiwKLTB4RkYsMHhGRiwweEVGLDB4RkIsMHhERiwweEZGLDB4RkYsMHhGRiwgMHhGRiwweEZGLDB4QkYsMHhGRiwweEZGLDB4RkYsMHhCQiwweEZGLAotMHhFRiwweEZCLDB4RkUsMHhFRiwweEJGLDB4RUUsMHhFQiwweEZCLCAweEZFLDB4RkYsMHhFRiwweEZFLDB4RUUsMHhCRiwweEZFLDB4RUIsCi0weEZGLDB4RUYsMHhGRiwweDE3LDB4RkYsMHg3RSwweEVCLDB4QkIsIDB4RkUsMHhCRiwweEJFLDB4RkIsMHhFRiwweDVCLDB4RjcsMHhCRCwKLTB4RkIsMHhDRiwweEJGLDB4QkYsMHhCQiwweEZCLDB4N0UsMHhDQywgMHhFRiwweEZGCi0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYnVzYi5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9kYWJ1c2IuYwppbmRleCA4ZDFmOGVlLi40OGY0YjkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2RhYnVzYi5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZGFidXNiLmMKQEAgLTM4LDkgKzM4LDEwIEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogCiAjaW5jbHVkZSAiZGFidXNiLmgiCi0jaW5jbHVkZSAiZGFiZmlybXdhcmUuaCIKIAogLyoKICAqIFZlcnNpb24gSW5mb3JtYXRpb24KQEAgLTI5Nyw3ICsyOTgsOCBAQAogCXJldHVybiByZXQ7CiB9CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLXN0YXRpYyBpbnQgZGFidXNiX3dyaXRlbWVtIChwZGFidXNiX3QgcywgaW50IHBvcywgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbikKK3N0YXRpYyBpbnQgZGFidXNiX3dyaXRlbWVtIChwZGFidXNiX3QgcywgaW50IHBvcywgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwKKwkJCSAgICBpbnQgbGVuKQogewogCWludCByZXQ7CiAJdW5zaWduZWQgY2hhciAqdHJhbnNmZXJfYnVmZmVyID0gIGttYWxsb2MgKGxlbiwgR0ZQX0tFUk5FTCk7CkBAIC0zMjQsMjQgKzMyNiwzNSBAQAogc3RhdGljIGludCBkYWJ1c2JfbG9hZG1lbSAocGRhYnVzYl90IHMsIGNvbnN0IGNoYXIgKmZuYW1lKQogewogCWludCByZXQ7Ci0JUElOVEVMX0hFWF9SRUNPUkQgcHRyID0gZmlybXdhcmU7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAogCWRiZygiRW50ZXIgZGFidXNiX2xvYWRtZW0gKGludGVybmFsKSIpOwogCisJcmV0ID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgImRhYnVzYi9maXJtd2FyZS5mdyIsICZzLT51c2JkZXYtPmRldik7CisJaWYgKHJldCkgeworCQllcnIoIkZhaWxlZCB0byBsb2FkIFwiZGFidXNiL2Zpcm13YXJlLmZ3XCI6ICVkXG4iLCByZXQpOworCQlnb3RvIG91dDsKKwl9CiAJcmV0ID0gZGFidXNiXzgwNTFfcmVzZXQgKHMsIDEpOwotCXdoaWxlIChwdHItPlR5cGUgPT0gMCkgewogCi0JCWRiZygiZGFidXNiX3dyaXRlbWVtOiAlMDRYICVwICVkKSIsIHB0ci0+QWRkcmVzcywgcHRyLT5EYXRhLCBwdHItPkxlbmd0aCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7IHJlYzsKKwkgICAgIHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQlkYmcoImRhYnVzYl93cml0ZW1lbTogJTA0WCAlcCAlZCkiLCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkgICAgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogCi0JCXJldCA9IGRhYnVzYl93cml0ZW1lbSAocywgcHRyLT5BZGRyZXNzLCBwdHItPkRhdGEsIHB0ci0+TGVuZ3RoKTsKKwkJcmV0ID0gZGFidXNiX3dyaXRlbWVtKHMsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksIHJlYy0+ZGF0YSwKKwkJCQkgICAgICAgYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAkJaWYgKHJldCA8IDApIHsKLQkJCWVycigiZGFidXNiX3dyaXRlbWVtIGZhaWxlZCAoJWQgJTA0WCAlcCAlZCkiLCByZXQsIHB0ci0+QWRkcmVzcywgcHRyLT5EYXRhLCBwdHItPkxlbmd0aCk7CisJCQllcnIoImRhYnVzYl93cml0ZW1lbSBmYWlsZWQgKCVkICUwNFggJXAgJWQpIiwgcmV0LAorCQkJICAgIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksIHJlYy0+ZGF0YSwKKwkJCSAgICBiZTE2X3RvX2NwdShyZWMtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KLQkJcHRyKys7CiAJfQogCXJldCA9IGRhYnVzYl84MDUxX3Jlc2V0IChzLCAwKTsKLQorCXJlbGVhc2VfZmlybXdhcmUoZncpOworIG91dDoKIAlkYmcoImRhYnVzYl9sb2FkbWVtOiBleGl0Iik7CiAKIAlyZXR1cm4gcmV0OwpAQCAtMzc2LDkgKzM4OSw5IEBACiBzdGF0aWMgaW50IGRhYnVzYl9mcGdhX2Rvd25sb2FkIChwZGFidXNiX3QgcywgY29uc3QgY2hhciAqZm5hbWUpCiB7CiAJcGJ1bGtfdHJhbnNmZXJfdCBiID0ga21hbGxvYyAoc2l6ZW9mIChidWxrX3RyYW5zZmVyX3QpLCBHRlBfS0VSTkVMKTsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwogCXVuc2lnbmVkIGludCBibGVuLCBuOwogCWludCByZXQ7Ci0JdW5zaWduZWQgY2hhciAqYnVmID0gYml0c3RyZWFtOwogCiAJZGJnKCJFbnRlciBkYWJ1c2JfZnBnYV9kb3dubG9hZCAoaW50ZXJuYWwpIik7CiAKQEAgLTM4NywxMCArNDAwLDE2IEBACiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAorCXJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCAiZGFidXNiL2JpdHN0cmVhbS5iaW4iLCAmcy0+dXNiZGV2LT5kZXYpOworCWlmIChyZXQpIHsKKwkJZXJyKCJGYWlsZWQgdG8gbG9hZCBcImRhYnVzYi9iaXRzdHJlYW0uYmluXCI6ICVkXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwogCWItPnBpcGUgPSAxOwogCXJldCA9IGRhYnVzYl9mcGdhX2NsZWFyIChzLCBiKTsKIAltZGVsYXkgKDEwKTsKLQlibGVuID0gYnVmWzczXSArIChidWZbNzJdIDw8IDgpOworCWJsZW4gPSBmdy0+ZGF0YVs3M10gKyAoZnctPmRhdGFbNzJdIDw8IDgpOwogCiAJZGJnKCJCaXRzdHJlYW0gbGVuOiAlaSIsIGJsZW4pOwogCkBAIC00MDIsNyArNDIxLDcgQEAKIAlmb3IgKG4gPSAwOyBuIDw9IGJsZW4gKyA2MDsgbiArPSA2MCkgewogCQkvLyBzb21lIGNjbGtzIGZvciBzdGFydHVwCiAJCWItPnNpemUgPSA2NDsKLQkJbWVtY3B5IChiLT5kYXRhICsgNCwgYnVmICsgNzQgKyBuLCA2MCk7CisJCW1lbWNweSAoYi0+ZGF0YSArIDQsIGZ3LT5kYXRhICsgNzQgKyBuLCA2MCk7CiAJCXJldCA9IGRhYnVzYl9idWxrIChzLCBiKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCWVycigiZGFidXNiX2J1bGsgZmFpbGVkLiIpOwpAQCAtNDEzLDYgKzQzMiw3IEBACiAKIAlyZXQgPSBkYWJ1c2JfZnBnYV9pbml0IChzLCBiKTsKIAlrZnJlZSAoYik7CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAKIAlkYmcoImV4aXQgZGFidXNiX2ZwZ2FfZG93bmxvYWQiKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWF1ZGlvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtYXVkaW8uYwppbmRleCA5MmIyYTZkLi4zYzAwNjEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtYXVkaW8uYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtYXVkaW8uYwpAQCAtMjY4LDYgKzI2OCwxMiBAQAogCiAJZHByaW50aygib3BlbmluZyBkZXZpY2UgYW5kIHRyeWluZyB0byBhY3F1aXJlIGV4Y2x1c2l2ZSBsb2NrXG4iKTsKIAorCWlmICghZGV2KSB7CisJCXByaW50ayhLRVJOX0VSUiAiQlVHOiBlbTI4eHggY2FuJ3QgZmluZCBkZXZpY2Ugc3RydWN0LiIKKwkJCQkiIENhbid0IHByb2NlZWQgd2l0aCBvcGVuXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCiAJLyogU2V0cyB2b2x1bWUsIG11dGUsIGV0YyAqLwogCiAJZGV2LT5tdXRlID0gMDsKQEAgLTQxNSw2ICs0MjEsMTIgQEAKIAlzdGF0aWMgaW50ICAgICAgICAgIGRldm5yOwogCWludCAgICAgICAgICAgICAgICAgcmV0LCBlcnI7CiAKKwlpZiAoZGV2LT5oYXNfYXVkaW9fY2xhc3MpIHsKKwkJLyogVGhpcyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGUgZXh0ZW5zaW9uIChpbiB0aGlzIGNhc2UKKwkJICAgdGhlIGRldmljZSBpcyBleHBlY3RpbmcgdGhlIHNuZC11c2ItYXVkaW8gbW9kdWxlICovCisJCXJldHVybiAwOworCX0KKwogCXByaW50ayhLRVJOX0lORk8gImVtMjh4eC1hdWRpby5jOiBwcm9iaW5nIGZvciBlbTI4eDEgIgogCQkJICJub24gc3RhbmRhcmQgdXNiYXVkaW9cbiIpOwogCXByaW50ayhLRVJOX0lORk8gImVtMjh4eC1hdWRpby5jOiBDb3B5cmlnaHQgKEMpIDIwMDYgTWFya3VzICIKQEAgLTQ1OCw2ICs0NzAsMTIgQEAKIAlpZiAoZGV2ID09IE5VTEwpCiAJCXJldHVybiAwOwogCisJaWYgKGRldi0+aGFzX2F1ZGlvX2NsYXNzKSB7CisJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGV4dGVuc2lvbiAoaW4gdGhpcyBjYXNlCisJCSAgIHRoZSBkZXZpY2UgaXMgZXhwZWN0aW5nIHRoZSBzbmQtdXNiLWF1ZGlvIG1vZHVsZSAqLworCQlyZXR1cm4gMDsKKwl9CisKIAlpZiAoZGV2LT5hZGV2KSB7CiAJCXNuZF9jYXJkX2ZyZWUoZGV2LT5hZGV2LT5zbmRjYXJkKTsKIAkJa2ZyZWUoZGV2LT5hZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1jYXJkcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWNhcmRzLmMKaW5kZXggM2U0ZjNjNy4uOGNiZGE0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWNhcmRzLmMKQEAgLTE1Nyw2ICsxNTcsNyBAQAogCQkudGRhOTg4N19jb25mID0gVERBOTg4N19QUkVTRU5ULAogCQkudHVuZXJfdHlwZSAgID0gVFVORVJfWEMyMDI4LAogCQkubXRzX2Zpcm13YXJlID0gMSwKKwkJLmhhc19kdmIgICAgICAgID0gMSwKIAkJLmRlY29kZXIgICAgICA9IEVNMjhYWF9UVlA1MTUwLAogCQkuaW5wdXQgICAgICAgICAgPSB7IHsKIAkJCS50eXBlICAgICA9IEVNMjhYWF9WTVVYX1RFTEVWSVNJT04sCkBAIC01MjQsNiArNTI1LDkgQEAKIAlyYyA9IGVtMjh4eF9yZWFkX3JlZyhkZXYsIEVNMjhYWF9SMEFfQ0hJUElEKTsKIAlpZiAocmMgPiAwKSB7CiAJCXN3aXRjaCAocmMpIHsKKwkJY2FzZSBDSElQX0lEX0VNMjg2MDoKKwkJCWVtMjh4eF9pbmZvKCJjaGlwIElEIGlzIGVtMjg2MFxuIik7CisJCQlicmVhazsKIAkJY2FzZSBDSElQX0lEX0VNMjg4MzoKIAkJCWVtMjh4eF9pbmZvKCJjaGlwIElEIGlzIGVtMjg4Mi9lbTI4ODNcbiIpOwogCQkJZGV2LT53YWl0X2FmdGVyX3dyaXRlID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1kdmIuYwppbmRleCA4Y2Y0OTgzLi4wYjIzMzNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtZHZiLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LWR2Yi5jCkBAIC0zODIsNiArMzgyLDExIEBACiAJaW50IHJlc3VsdCA9IDA7CiAJc3RydWN0IGVtMjh4eF9kdmIgKmR2YjsKIAorCWlmICghZGV2LT5oYXNfZHZiKSB7CisJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGV4dGVuc2lvbiAqLworCQlyZXR1cm4gMDsKKwl9CisKIAlkdmIgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZW0yOHh4X2R2YiksIEdGUF9LRVJORUwpOwogCiAJaWYgKGR2YiA9PSBOVUxMKSB7CkBAIC00NDQsNiArNDQ5LDExIEBACiAKIHN0YXRpYyBpbnQgZHZiX2Zpbmkoc3RydWN0IGVtMjh4eCAqZGV2KQogeworCWlmICghZGV2LT5oYXNfZHZiKSB7CisJCS8qIFRoaXMgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGV4dGVuc2lvbiAqLworCQlyZXR1cm4gMDsKKwl9CisKIAlpZiAoZGV2LT5kdmIpIHsKIAkJdW5yZWdpc3Rlcl9kdmIoZGV2LT5kdmIpOwogCQlkZXYtPmR2YiA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtcmVnLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtcmVnLmgKaW5kZXggOTA1OGJlZC4uZmFjMWFiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXJlZy5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW0yOHh4L2VtMjh4eC1yZWcuaApAQCAtODQsNSArODQsNiBAQAogCiAvKiBGSVhNRTogTmVlZCB0byBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgb3RoZXIgY2hpcCBJRCdzICovCiBlbnVtIGVtMjh4eF9jaGlwX2lkIHsKKwlDSElQX0lEX0VNMjg2MCA9IDM0LAogCUNISVBfSURfRU0yODgzID0gMzYsCiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbTI4eHgvZW0yOHh4LXZpZGVvLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtdmlkZW8uYwppbmRleCA4OTk2MTc1Li4yODViYzYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtdmlkZW8uYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtMjh4eC9lbTI4eHgtdmlkZW8uYwpAQCAtMTE2NiwxMyArMTE2NiwxMyBAQAogCiAJCXJlZy0+dmFsID0gcmV0OwogCX0gZWxzZSB7Ci0JCXU2NCB2YWwgPSAwOworCQlfX2xlNjQgdmFsID0gMDsKIAkJcmV0ID0gZW0yOHh4X3JlYWRfcmVnX3JlcV9sZW4oZGV2LCBVU0JfUkVRX0dFVF9TVEFUVVMsCiAJCQkJCQkgICByZWctPnJlZywgKGNoYXIgKikmdmFsLCAyKTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCi0JCXJlZy0+dmFsID0gY3B1X3RvX2xlNjQoKF9fdTY0KXZhbCk7CisJCXJlZy0+dmFsID0gbGU2NF90b19jcHUodmFsKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTExODMsOSArMTE4Myw5IEBACiB7CiAJc3RydWN0IGVtMjh4eF9maCAgICAgICpmaCAgPSBwcml2OwogCXN0cnVjdCBlbTI4eHggICAgICAgICAqZGV2ID0gZmgtPmRldjsKLQl1NjQgYnVmOworCV9fbGU2NCBidWY7CiAKLQlidWYgPSBsZTY0X3RvX2NwdSgoX191NjQpcmVnLT52YWwpOworCWJ1ZiA9IGNwdV90b19sZTY0KHJlZy0+dmFsKTsKIAogCXJldHVybiBlbTI4eHhfd3JpdGVfcmVncyhkZXYsIHJlZy0+cmVnLCAoY2hhciAqKSZidWYsCiAJCQkJIGVtMjh4eF9yZWdfbGVuKHJlZy0+cmVnKSk7CkBAIC0xODQ4LDMyICsxODQ4LDI4IEBACiAKIGludCBlbTI4eHhfcmVnaXN0ZXJfZXh0ZW5zaW9uKHN0cnVjdCBlbTI4eHhfb3BzICpvcHMpCiB7Ci0Jc3RydWN0IGVtMjh4eCAqaCwgKmRldiA9IE5VTEw7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGgsICZlbTI4eHhfZGV2bGlzdCwgZGV2bGlzdCkKLQkJZGV2ID0gaDsKKwlzdHJ1Y3QgZW0yOHh4ICpkZXYgPSBOVUxMOwogCiAJbXV0ZXhfbG9jaygmZW0yOHh4X2V4dGVuc2lvbl9kZXZsaXN0X2xvY2spOwogCWxpc3RfYWRkX3RhaWwoJm9wcy0+bmV4dCwgJmVtMjh4eF9leHRlbnNpb25fZGV2bGlzdCk7Ci0JaWYgKGRldikKLQkJb3BzLT5pbml0KGRldik7Ci0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmVtMjh4eF9kZXZsaXN0LCBkZXZsaXN0KSB7CisJCWlmIChkZXYpCisJCQlvcHMtPmluaXQoZGV2KTsKKwl9CiAJcHJpbnRrKEtFUk5fSU5GTyAiRW0yOHh4OiBJbml0aWFsaXplZCAoJXMpIGV4dGVuc2lvblxuIiwgb3BzLT5uYW1lKTsKIAltdXRleF91bmxvY2soJmVtMjh4eF9leHRlbnNpb25fZGV2bGlzdF9sb2NrKTsKLQogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChlbTI4eHhfcmVnaXN0ZXJfZXh0ZW5zaW9uKTsKIAogdm9pZCBlbTI4eHhfdW5yZWdpc3Rlcl9leHRlbnNpb24oc3RydWN0IGVtMjh4eF9vcHMgKm9wcykKIHsKLQlzdHJ1Y3QgZW0yOHh4ICpoLCAqZGV2ID0gTlVMTDsKKwlzdHJ1Y3QgZW0yOHh4ICpkZXYgPSBOVUxMOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShoLCAmZW0yOHh4X2Rldmxpc3QsIGRldmxpc3QpCi0JCWRldiA9IGg7Ci0KLQlpZiAoZGV2KQotCQlvcHMtPmZpbmkoZGV2KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmVtMjh4eF9kZXZsaXN0LCBkZXZsaXN0KSB7CisJCWlmIChkZXYpCisJCQlvcHMtPmZpbmkoZGV2KTsKKwl9CiAKIAltdXRleF9sb2NrKCZlbTI4eHhfZXh0ZW5zaW9uX2Rldmxpc3RfbG9jayk7CiAJcHJpbnRrKEtFUk5fSU5GTyAiRW0yOHh4OiBSZW1vdmVkICglcykgZXh0ZW5zaW9uXG4iLCBvcHMtPm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtZHJpdmVyLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1kcml2ZXIuaAppbmRleCBiYTA2ZTgxLi45ZDIzYjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1kcml2ZXIuaAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1kcml2ZXIuaApAQCAtMjU5LDYgKzI1OSwxMiBAQAogCiAvKiBTY2F0dGVyLUdhdGhlciBhcnJheSBlbGVtZW50LCB1c2VkIGluIERNQSB0cmFuc2ZlcnMgKi8KIHN0cnVjdCBpdnR2X3NnX2VsZW1lbnQgeworCV9fbGUzMiBzcmM7CisJX19sZTMyIGRzdDsKKwlfX2xlMzIgc2l6ZTsKK307CisKK3N0cnVjdCBpdnR2X3NnX2hvc3RfZWxlbWVudCB7CiAJdTMyIHNyYzsKIAl1MzIgZHN0OwogCXUzMiBzaXplOwpAQCAtMzQ5LDggKzM1NSw4IEBACiAJdTE2IGRtYV94ZmVyX2NudDsKIAogCS8qIEJhc2UgRGV2IFNHIEFycmF5IGZvciBjeDIzNDE1LzYgKi8KLQlzdHJ1Y3QgaXZ0dl9zZ19lbGVtZW50ICpzZ19wZW5kaW5nOwotCXN0cnVjdCBpdnR2X3NnX2VsZW1lbnQgKnNnX3Byb2Nlc3Npbmc7CisJc3RydWN0IGl2dHZfc2dfaG9zdF9lbGVtZW50ICpzZ19wZW5kaW5nOworCXN0cnVjdCBpdnR2X3NnX2hvc3RfZWxlbWVudCAqc2dfcHJvY2Vzc2luZzsKIAlzdHJ1Y3QgaXZ0dl9zZ19lbGVtZW50ICpzZ19kbWE7CiAJZG1hX2FkZHJfdCBzZ19oYW5kbGU7CiAJaW50IHNnX3BlbmRpbmdfc2l6ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LWZpbGVvcHMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LWZpbGVvcHMuYwppbmRleCBmMmZhNDM0Li5kYjgxM2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1maWxlb3BzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtZmlsZW9wcy5jCkBAIC01ODcsNyArNTg3LDcgQEAKIAlzaW5jZSB3ZSBtYXkgZ2V0IGhlcmUgYmVmb3JlIHRoZSBzdHJlYW0gaGFzIGJlZW4gZnVsbHkgc2V0LXVwICovCiAJaWYgKG1vZGUgPT0gT1VUX1lVViAmJiBzLT5xX2Z1bGwubGVuZ3RoID09IDAgJiYgaXR2LT5kbWFfZGF0YV9yZXFfc2l6ZSkgewogCQl3aGlsZSAoY291bnQgPj0gaXR2LT5kbWFfZGF0YV9yZXFfc2l6ZSkgewotCQkJaWYgKCFpdnR2X3l1dl91ZG1hX3N0cmVhbV9mcmFtZSAoaXR2LCAodm9pZCAqKXVzZXJfYnVmKSkgeworCQkJaWYgKCFpdnR2X3l1dl91ZG1hX3N0cmVhbV9mcmFtZSAoaXR2LCAodm9pZCBfX3VzZXIgKil1c2VyX2J1ZikpIHsKIAkJCQlieXRlc193cml0dGVuICs9IGl0di0+ZG1hX2RhdGFfcmVxX3NpemU7CiAJCQkJdXNlcl9idWYgKz0gaXR2LT5kbWFfZGF0YV9yZXFfc2l6ZTsKIAkJCQljb3VudCAtPSBpdHYtPmRtYV9kYXRhX3JlcV9zaXplOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtaXJxLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1pcnEuYwppbmRleCBkOGJhM2E0Li5mYmExNTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1pcnEuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1pcnEuYwpAQCAtMjMxLDE0ICsyMzEsMTQgQEAKIAlzdHJ1Y3QgaXZ0dl9idWZmZXIgKmJ1ZiA9IE5VTEw7CiAJc3RydWN0IGxpc3RfaGVhZCAqcDsKIAl1MzIgb2Zmc2V0OwotCXUzMiAqdTMyYnVmOworCV9fbGUzMiAqdTMyYnVmOwogCWludCB4ID0gMDsKIAogCUlWVFZfREVCVUdfSElfRE1BKCIlcyAlcyBjb21wbGV0ZWQgKCV4KVxuIiwgaXZ0dl91c2VfcGlvKHMpID8gIlBJTyIgOiAiRE1BIiwKIAkJCXMtPm5hbWUsIHMtPmRtYV9vZmZzZXQpOwogCWxpc3RfZm9yX2VhY2gocCwgJnMtPnFfZG1hLmxpc3QpIHsKIAkJYnVmID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgaXZ0dl9idWZmZXIsIGxpc3QpOwotCQl1MzJidWYgPSAodTMyICopYnVmLT5idWY7CisJCXUzMmJ1ZiA9IChfX2xlMzIgKilidWYtPmJ1ZjsKIAogCQkvKiBTeW5jIEJ1ZmZlciAqLwogCQlpdnR2X2J1Zl9zeW5jX2Zvcl9jcHUocywgYnVmKTsKQEAgLTQ0NCw3ICs0NDQsNyBAQAogCX0KIAogCXMtPmRtYV94ZmVyX2NudCsrOwotCW1lbWNweShzLT5zZ19wcm9jZXNzaW5nLCBzLT5zZ19wZW5kaW5nLCBzaXplb2Yoc3RydWN0IGl2dHZfc2dfZWxlbWVudCkgKiBzLT5zZ19wZW5kaW5nX3NpemUpOworCW1lbWNweShzLT5zZ19wcm9jZXNzaW5nLCBzLT5zZ19wZW5kaW5nLCBzaXplb2Yoc3RydWN0IGl2dHZfc2dfaG9zdF9lbGVtZW50KSAqIHMtPnNnX3BlbmRpbmdfc2l6ZSk7CiAJcy0+c2dfcHJvY2Vzc2luZ19zaXplID0gcy0+c2dfcGVuZGluZ19zaXplOwogCXMtPnNnX3BlbmRpbmdfc2l6ZSA9IDA7CiAJcy0+c2dfcHJvY2Vzc2VkID0gMDsKQEAgLTQ3Myw3ICs0NzMsNyBAQAogCWlmIChzLT5xX3ByZWRtYS5ieXRlc3VzZWQpCiAJCWl2dHZfcXVldWVfbW92ZShzLCAmcy0+cV9wcmVkbWEsIE5VTEwsICZzLT5xX2RtYSwgcy0+cV9wcmVkbWEuYnl0ZXN1c2VkKTsKIAlzLT5kbWFfeGZlcl9jbnQrKzsKLQltZW1jcHkocy0+c2dfcHJvY2Vzc2luZywgcy0+c2dfcGVuZGluZywgc2l6ZW9mKHN0cnVjdCBpdnR2X3NnX2VsZW1lbnQpICogcy0+c2dfcGVuZGluZ19zaXplKTsKKwltZW1jcHkocy0+c2dfcHJvY2Vzc2luZywgcy0+c2dfcGVuZGluZywgc2l6ZW9mKHN0cnVjdCBpdnR2X3NnX2hvc3RfZWxlbWVudCkgKiBzLT5zZ19wZW5kaW5nX3NpemUpOwogCXMtPnNnX3Byb2Nlc3Npbmdfc2l6ZSA9IHMtPnNnX3BlbmRpbmdfc2l6ZTsKIAlzLT5zZ19wZW5kaW5nX3NpemUgPSAwOwogCXMtPnNnX3Byb2Nlc3NlZCA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1xdWV1ZS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtcXVldWUuYwppbmRleCBmYzhiMWVhLi43MWJkMTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1xdWV1ZS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXF1ZXVlLmMKQEAgLTE5Myw3ICsxOTMsNyBAQAogaW50IGl2dHZfc3RyZWFtX2FsbG9jKHN0cnVjdCBpdnR2X3N0cmVhbSAqcykKIHsKIAlzdHJ1Y3QgaXZ0diAqaXR2ID0gcy0+aXR2OwotCWludCBTR3NpemUgPSBzaXplb2Yoc3RydWN0IGl2dHZfc2dfZWxlbWVudCkgKiBzLT5idWZmZXJzOworCWludCBTR3NpemUgPSBzaXplb2Yoc3RydWN0IGl2dHZfc2dfaG9zdF9lbGVtZW50KSAqIHMtPmJ1ZmZlcnM7CiAJaW50IGk7CiAKIAlpZiAocy0+YnVmZmVycyA9PSAwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtc3RyZWFtcy5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtc3RyZWFtcy5jCmluZGV4IGM0N2MyYjkuLmM4NTQyODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXN0cmVhbXMuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di1zdHJlYW1zLmMKQEAgLTQ0LDIzICs0NCwyNSBAQAogI2luY2x1ZGUgIml2dHYtc3RyZWFtcy5oIgogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpdnR2X3Y0bDJfZW5jX2ZvcHMgPSB7Ci0gICAgICAub3duZXIgPSBUSElTX01PRFVMRSwKLSAgICAgIC5yZWFkID0gaXZ0dl92NGwyX3JlYWQsCi0gICAgICAud3JpdGUgPSBpdnR2X3Y0bDJfd3JpdGUsCi0gICAgICAub3BlbiA9IGl2dHZfdjRsMl9vcGVuLAotICAgICAgLmlvY3RsID0gaXZ0dl92NGwyX2lvY3RsLAotICAgICAgLnJlbGVhc2UgPSBpdnR2X3Y0bDJfY2xvc2UsCi0gICAgICAucG9sbCA9IGl2dHZfdjRsMl9lbmNfcG9sbCwKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkucmVhZCA9IGl2dHZfdjRsMl9yZWFkLAorCS53cml0ZSA9IGl2dHZfdjRsMl93cml0ZSwKKwkub3BlbiA9IGl2dHZfdjRsMl9vcGVuLAorCS5pb2N0bCA9IGl2dHZfdjRsMl9pb2N0bCwKKwkuY29tcGF0X2lvY3RsID0gdjRsX2NvbXBhdF9pb2N0bDMyLAorCS5yZWxlYXNlID0gaXZ0dl92NGwyX2Nsb3NlLAorCS5wb2xsID0gaXZ0dl92NGwyX2VuY19wb2xsLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXZ0dl92NGwyX2RlY19mb3BzID0gewotICAgICAgLm93bmVyID0gVEhJU19NT0RVTEUsCi0gICAgICAucmVhZCA9IGl2dHZfdjRsMl9yZWFkLAotICAgICAgLndyaXRlID0gaXZ0dl92NGwyX3dyaXRlLAotICAgICAgLm9wZW4gPSBpdnR2X3Y0bDJfb3BlbiwKLSAgICAgIC5pb2N0bCA9IGl2dHZfdjRsMl9pb2N0bCwKLSAgICAgIC5yZWxlYXNlID0gaXZ0dl92NGwyX2Nsb3NlLAotICAgICAgLnBvbGwgPSBpdnR2X3Y0bDJfZGVjX3BvbGwsCisJLm93bmVyID0gVEhJU19NT0RVTEUsCisJLnJlYWQgPSBpdnR2X3Y0bDJfcmVhZCwKKwkud3JpdGUgPSBpdnR2X3Y0bDJfd3JpdGUsCisJLm9wZW4gPSBpdnR2X3Y0bDJfb3BlbiwKKwkuaW9jdGwgPSBpdnR2X3Y0bDJfaW9jdGwsCisJLmNvbXBhdF9pb2N0bCA9IHY0bF9jb21wYXRfaW9jdGwzMiwKKwkucmVsZWFzZSA9IGl2dHZfdjRsMl9jbG9zZSwKKwkucG9sbCA9IGl2dHZfdjRsMl9kZWNfcG9sbCwKIH07CiAKICNkZWZpbmUgSVZUVl9WNEwyX0RFQ19NUEdfT0ZGU0VUICAxNgkvKiBvZmZzZXQgZnJvbSAwIHRvIHJlZ2lzdGVyIGRlY29kZXIgbXBnIHY0bDIgbWlub3JzIG9uICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di12ZXJzaW9uLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di12ZXJzaW9uLmgKaW5kZXggMDJjNWFiMC4uNDQyZjQzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9pdnR2L2l2dHYtdmVyc2lvbi5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXZlcnNpb24uaApAQCAtMjIsOCArMjIsOCBAQAogCiAjZGVmaW5lIElWVFZfRFJJVkVSX05BTUUgIml2dHYiCiAjZGVmaW5lIElWVFZfRFJJVkVSX1ZFUlNJT05fTUFKT1IgMQotI2RlZmluZSBJVlRWX0RSSVZFUl9WRVJTSU9OX01JTk9SIDIKLSNkZWZpbmUgSVZUVl9EUklWRVJfVkVSU0lPTl9QQVRDSExFVkVMIDEKKyNkZWZpbmUgSVZUVl9EUklWRVJfVkVSU0lPTl9NSU5PUiAzCisjZGVmaW5lIElWVFZfRFJJVkVSX1ZFUlNJT05fUEFUQ0hMRVZFTCAwCiAKICNkZWZpbmUgSVZUVl9WRVJTSU9OIF9fc3RyaW5naWZ5KElWVFZfRFJJVkVSX1ZFUlNJT05fTUFKT1IpICIuIiBfX3N0cmluZ2lmeShJVlRWX0RSSVZFUl9WRVJTSU9OX01JTk9SKSAiLiIgX19zdHJpbmdpZnkoSVZUVl9EUklWRVJfVkVSU0lPTl9QQVRDSExFVkVMKQogI2RlZmluZSBJVlRWX0RSSVZFUl9WRVJTSU9OIEtFUk5FTF9WRVJTSU9OKElWVFZfRFJJVkVSX1ZFUlNJT05fTUFKT1IsSVZUVl9EUklWRVJfVkVSU0lPTl9NSU5PUixJVlRWX0RSSVZFUl9WRVJTSU9OX1BBVENITEVWRUwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di15dXYuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5jCmluZGV4IGE5NDE3ZjYuLjMwOTJmZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5jCkBAIC0xMTE2LDcgKzExMTYsNyBAQAogfQogCiAvKiBBdHRlbXB0IHRvIGRtYSBhIGZyYW1lIGZyb20gYSB1c2VyIGJ1ZmZlciAqLwotaW50IGl2dHZfeXV2X3VkbWFfc3RyZWFtX2ZyYW1lKHN0cnVjdCBpdnR2ICppdHYsIHZvaWQgKnNyYykKK2ludCBpdnR2X3l1dl91ZG1hX3N0cmVhbV9mcmFtZShzdHJ1Y3QgaXZ0diAqaXR2LCB2b2lkIF9fdXNlciAqc3JjKQogewogCXN0cnVjdCB5dXZfcGxheWJhY2tfaW5mbyAqeWkgPSAmaXR2LT55dXZfaW5mbzsKIAlzdHJ1Y3QgaXZ0dl9kbWFfZnJhbWUgZG1hX2FyZ3M7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL2l2dHYvaXZ0di15dXYuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5oCmluZGV4IDJmZTVmMTIuLmNhNTE3M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vaXZ0di9pdnR2LXl1di5oCkBAIC0zNSw3ICszNSw3IEBACiAKIGludCBpdnR2X3l1dl9maWx0ZXJfY2hlY2soc3RydWN0IGl2dHYgKml0dik7CiB2b2lkIGl2dHZfeXV2X3NldHVwX3N0cmVhbV9mcmFtZShzdHJ1Y3QgaXZ0diAqaXR2KTsKLWludCBpdnR2X3l1dl91ZG1hX3N0cmVhbV9mcmFtZShzdHJ1Y3QgaXZ0diAqaXR2LCB2b2lkICpzcmMpOworaW50IGl2dHZfeXV2X3VkbWFfc3RyZWFtX2ZyYW1lKHN0cnVjdCBpdnR2ICppdHYsIHZvaWQgX191c2VyICpzcmMpOwogdm9pZCBpdnR2X3l1dl9mcmFtZV9jb21wbGV0ZShzdHJ1Y3QgaXZ0diAqaXR2KTsKIGludCBpdnR2X3l1dl9wcmVwX2ZyYW1lKHN0cnVjdCBpdnR2ICppdHYsIHN0cnVjdCBpdnR2X2RtYV9mcmFtZSAqYXJncyk7CiB2b2lkIGl2dHZfeXV2X2Nsb3NlKHN0cnVjdCBpdnR2ICppdHYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vb3Y3NjcwLmMKaW5kZXggMmJjNmJkYy4uZDdiZmQzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9vdjc2NzAuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL292NzY3MC5jCkBAIC00MDYsOCArNDA2LDEwIEBACiAJaW50IHJldDsKIAogCXJldCA9IGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjLCByZWcpOwotCWlmIChyZXQgPj0gMCkKKwlpZiAocmV0ID49IDApIHsKIAkJKnZhbHVlID0gKHVuc2lnbmVkIGNoYXIpIHJldDsKKwkJcmV0ID0gMDsKKwl9CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9weGFfY2FtZXJhLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYwppbmRleCA3Y2M4ZTliLi41ZWM1YmI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3B4YV9jYW1lcmEuYwpAQCAtMTAxOSwxMiArMTAxOSwxMiBAQAogCXN0cnVjdCBweGFfY2FtZXJhX2RldiAqcGNkZXY7CiAJc3RydWN0IHJlc291cmNlICpyZXM7CiAJdm9pZCBfX2lvbWVtICpiYXNlOwotCXVuc2lnbmVkIGludCBpcnE7CisJaW50IGlycTsKIAlpbnQgZXJyID0gMDsKIAogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CiAJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoIXJlcyB8fCAhaXJxKSB7CisJaWYgKCFyZXMgfHwgaXJxIDwgMCkgewogCQllcnIgPSAtRU5PREVWOwogCQlnb3RvIGV4aXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtYWxzYS5jCmluZGV4IGJhMzA4MjQuLmYxMThkZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWFsc2EuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1hbHNhLmMKQEAgLTYxMyw5ICs2MTMsMTUgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCXNuZF9jYXJkX3NhYTcxMzRfcGNtX3QgKnBjbTsKIAlzbmRfY2FyZF9zYWE3MTM0X3QgKnNhYTcxMzQgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBzYWE3MTM0LT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXY7CiAJaW50IGFtdXgsIGVycjsKIAorCWlmICghc2FhNzEzNCkgeworCQlwcmludGsoS0VSTl9FUlIgIkJVRzogc2FhNzEzNCBjYW4ndCBmaW5kIGRldmljZSBzdHJ1Y3QuIgorCQkJCSIgQ2FuJ3QgcHJvY2VlZCB3aXRoIG9wZW5cbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisJZGV2ID0gc2FhNzEzNC0+ZGV2OwogCW11dGV4X2xvY2soJmRldi0+ZG1hc291bmQubG9jayk7CiAKIAlkZXYtPmRtYXNvdW5kLnJlYWRfY291bnQgID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1jYXJkcy5jCmluZGV4IGIxMTE5MDMuLjI2MThjZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWNhcmRzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtY2FyZHMuYwpAQCAtNDExNCwxMSArNDExNCw3IEBACiAJCS5yYWRpb190eXBlICAgICA9IFVOU0VULAogCQkudHVuZXJfYWRkcgk9IEFERFJfVU5TRVQsCiAJCS5yYWRpb19hZGRyCT0gQUREUl9VTlNFVCwKLQkJIC8qCi0JCSAgICBUT0RPOgogCQkgLm1wZWcgICAgICAgICAgID0gU0FBNzEzNF9NUEVHX0RWQiwKLQkJICovCi0KIAkJIC5pbnB1dHMgICAgICAgICA9IHt7CiAJCQkgLm5hbWUgPSBuYW1lX3R2LAogCQkJIC52bXV4ID0gMSwKQEAgLTQxNTcsNyArNDE1Myw3IEBACiAJCX0gfSwKIAkJLnJhZGlvID0gewogCQkJLm5hbWUgPSBuYW1lX3JhZGlvLAotCQkJLmFtdXggPSBMSU5FMSwKKwkJCS5hbXV4ID0gVFYsCiAJCX0sCiAJfSwKIAlbU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfTTExNV0gPSB7CkBAIC00MTY3LDYgKzQxNjMsNyBAQAogCQkucmFkaW9fdHlwZSAgICAgPSBVTlNFVCwKIAkJLnR1bmVyX2FkZHIJPSBBRERSX1VOU0VULAogCQkucmFkaW9fYWRkcgk9IEFERFJfVU5TRVQsCisJCS5tcGVnICAgICAgICAgICA9IFNBQTcxMzRfTVBFR19EVkIsCiAJCS5pbnB1dHMgICAgICAgICA9IHt7CiAJCQkubmFtZSA9IG5hbWVfdHYsCiAJCQkudm11eCA9IDEsCkBAIC01MzUxLDIyICs1MzQ4LDIxIEBACiB7CiAJc3dpdGNoIChjb21tYW5kKSB7CiAJY2FzZSBYQzIwMjhfVFVORVJfUkVTRVQ6Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMHgwNmUyMDAwMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAweDA2YTIwMDAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQTU9ERTAgPj4gMiwgMHgwNmUyMDAwMCwgMHgwNmUyMDAwMCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDA2YTIwMDAwLCAweDA2YTIwMDAwKTsKLQkJbWRlbGF5KDI1MCk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzM19BTkFMT0dfSU9fU0VMRUNUID4+IDIsIDB4MDIsIDB4MDIpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQU5BTE9HX0lOX0NUUkwxID4+IDIsIDB4ODEsIDB4ODEpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQVVESU9fQ0xPQ0swID4+IDIsIDB4MDMxODdkZTcsIDB4MDMxODdkZTcpOwotCQlzYWFfYW5kb3JsKFNBQTcxMzRfQVVESU9fUExMX0NUUkwgPj4gMiwgMHgwMywgMHgwMyk7Ci0JCXNhYV9hbmRvcmwoU0FBNzEzNF9BVURJT19DTE9DS1NfUEVSX0ZJRUxEMCA+PiAyLAotCQkJICAgMHgwMDAxZTAwMCwgMHgwMDAxZTAwMCk7Ci0JCXJldHVybiAwOworCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHgwMDAwODAwMCwgMHgwMDAwMDAwMCk7CisJCXNhYV9hbmRvcmwoU0FBNzEzNF9HUElPX0dQU1RBVFVTMCA+PiAyLCAweDAwMDA4MDAwLCAweDAwMDA4MDAwKTsKKwkJc3dpdGNoIChkZXYtPmJvYXJkKSB7CisJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CisJCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDApOworCQkJbXNsZWVwKDEwKTsKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMywgMSk7CisJCWJyZWFrOworCQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjEsIDApOworCQkJbXNsZWVwKDEwKTsKKwkJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMSk7CisJCWJyZWFrOworCQl9CisJcmV0dXJuIDA7CiAJfQogCXJldHVybiAtRUlOVkFMOwogfQpAQCAtNTU1Myw5ICs1NTQ5LDcgQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4MDgwMDAwMDAsIDB4MDAwMDAwMDApOwogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVM6Ci0JY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9DQVJEQlVTXzUwNjoKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX00xMTU6Ci0JY2FzZSBTQUE3MTM0X0JPQVJEX0FWRVJNRURJQV9BMTZEOgogCQkvKiBwb3dlci1kb3duIHR1bmVyIGNoaXAgKi8KIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4ZmZmZmZmZmYsIDApOwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHhmZmZmZmZmZiwgMCk7CkBAIC01NTY1LDYgKzU1NTksMTggQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BTVEFUVVMwID4+IDIsIDB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmYpOwogCQltc2xlZXAoMTApOwogCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVNfNTA2OgorCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDApOworCQltc2xlZXAoMTApOworCQlzYWE3MTM0X3NldF9ncGlvKGRldiwgMjMsIDEpOworCQlicmVhazsKKwljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMCk7CisJCW1zbGVlcCgxMCk7CisJCXNhYTcxMzRfc2V0X2dwaW8oZGV2LCAyMSwgMSk7CisJCW1zbGVlcCgxKTsKKwkJZGV2LT5oYXNfcmVtb3RlID0gU0FBNzEzNF9SRU1PVEVfR1BJTzsKKwkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX0JFSE9MRF9DT0xVTUJVU19UVkZNOgogCQkvKiBwb3dlci1kb3duIHR1bmVyIGNoaXAgKi8KIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4MDAwQTgwMDQsIDB4MDAwQTgwMDQpOwpAQCAtNTYxNSw3ICs1NjIxLDggQEAKIAkJc2FhX2FuZG9ybChTQUE3MTM0X0dQSU9fR1BNT0RFMCA+PiAyLCAgIDB4ODAwNDAxMDAsIDB4ODAwNDAxMDApOwogCQlzYWFfYW5kb3JsKFNBQTcxMzRfR1BJT19HUFNUQVRVUzAgPj4gMiwgMHg4MDA0MDEwMCwgMHgwMDA0MDEwMCk7CiAJCXByaW50aygiJXM6ICVzOiBoeWJyaWQgYW5hbG9nL2R2YiBjYXJkXG4iCi0JCSAgICAgICAiJXM6IFNvcnJ5LCBvbmx5IHRoZSBhbmFsb2cgaW5wdXRzIGFyZSBzdXBwb3J0ZWQgZm9yIG5vdy5cbiIsCisJCSAgICAgICAiJXM6IFNvcnJ5LCBvbmx5IGFuYWxvZyBzLXZpZGVvIGFuZCBjb21wb3NpdGUgaW5wdXQgIgorCQkgICAgICAgImFyZSBzdXBwb3J0ZWQgZm9yIG5vdy5cbiIsCiAJCQlkZXYtPm5hbWUsIGNhcmQoZGV2KS5uYW1lLCBkZXYtPm5hbWUpOwogCQlicmVhazsKIAl9CkBAIC01Njc1LDYgKzU2ODIsNyBAQAogCiAJCXN3aXRjaCAoZGV2LT5ib2FyZCkgewogCQljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6CisJCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQ0FSREJVU181MDY6CiAJCQljdGwuZGVtb2QgPSBYQzMwMjhfRkVfWkFSTElOSzQ1NjsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZHZiLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYwppbmRleCA0NjlmOTNhLi4zNDFiMTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1kdmIuYwpAQCAtMTUzLDEyICsxNTMsMTIgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBtdDM1Ml9hdmVyX2ExNmRfaW5pdChzdHJ1Y3QgZHZiX2Zyb250ZW5kICpmZSkKK3N0YXRpYyBpbnQgbXQzNTJfYXZlcm1lZGlhX3hjMzAyOF9pbml0KHN0cnVjdCBkdmJfZnJvbnRlbmQgKmZlKQogewotCXN0YXRpYyB1OCBjbG9ja19jb25maWcgW10gID0geyBDTE9DS19DVEwsICAweDM4LCAweDJkIH07Ci0Jc3RhdGljIHU4IHJlc2V0IFtdICAgICAgICAgPSB7IFJFU0VULCAgICAgIDB4ODAgfTsKLQlzdGF0aWMgdTggYWRjX2N0bF8xX2NmZyBbXSA9IHsgQURDX0NUTF8xLCAgMHg0MCB9OwotCXN0YXRpYyB1OCBhZ2NfY2ZnIFtdICAgICAgID0geyBBR0NfVEFSR0VULCAweDI4LCAweGEwIH07CisJc3RhdGljIHU4IGNsb2NrX2NvbmZpZyBbXSAgPSB7IENMT0NLX0NUTCwgMHgzOCwgMHgyZCB9OworCXN0YXRpYyB1OCByZXNldCBbXSAgICAgICAgID0geyBSRVNFVCwgMHg4MCB9OworCXN0YXRpYyB1OCBhZGNfY3RsXzFfY2ZnIFtdID0geyBBRENfQ1RMXzEsIDB4NDAgfTsKKwlzdGF0aWMgdTggYWdjX2NmZyBbXSAgICAgICA9IHsgQUdDX1RBUkdFVCwgMHhlIH07CiAJc3RhdGljIHU4IGNhcHRfcmFuZ2VfY2ZnW10gPSB7IENBUFRfUkFOR0UsIDB4MzMgfTsKIAogCW10MzUyX3dyaXRlKGZlLCBjbG9ja19jb25maWcsICAgc2l6ZW9mKGNsb2NrX2NvbmZpZykpOwpAQCAtMTY3LDEyICsxNjcsOSBAQAogCW10MzUyX3dyaXRlKGZlLCBhZGNfY3RsXzFfY2ZnLCAgc2l6ZW9mKGFkY19jdGxfMV9jZmcpKTsKIAltdDM1Ml93cml0ZShmZSwgYWdjX2NmZywgICAgICAgIHNpemVvZihhZ2NfY2ZnKSk7CiAJbXQzNTJfd3JpdGUoZmUsIGNhcHRfcmFuZ2VfY2ZnLCBzaXplb2YoY2FwdF9yYW5nZV9jZmcpKTsKLQogCXJldHVybiAwOwogfQogCi0KLQogc3RhdGljIGludCBtdDM1Ml9waW5uYWNsZV90dW5lcl9zZXRfcGFyYW1zKHN0cnVjdCBkdmJfZnJvbnRlbmQqIGZlLAogCQkJCQkgICBzdHJ1Y3QgZHZiX2Zyb250ZW5kX3BhcmFtZXRlcnMqIHBhcmFtcykKIHsKQEAgLTIxNSwxNCArMjEyLDEwIEBACiAJLmRlbW9kX2luaXQgICAgPSBtdDM1Ml9hdmVyNzc3X2luaXQsCiB9OwogCi1zdGF0aWMgc3RydWN0IG10MzUyX2NvbmZpZyBhdmVybWVkaWFfMTZkID0gewotCS5kZW1vZF9hZGRyZXNzID0gMHhmLAotCS5kZW1vZF9pbml0ICAgID0gbXQzNTJfYXZlcl9hMTZkX2luaXQsCi19OwotCi1zdGF0aWMgc3RydWN0IG10MzUyX2NvbmZpZyBhdmVybWVkaWFfZTUwNnJfbXQzNTJfZGV2ID0geworc3RhdGljIHN0cnVjdCBtdDM1Ml9jb25maWcgYXZlcm1lZGlhX3hjMzAyOF9tdDM1Ml9kZXYgPSB7CiAJLmRlbW9kX2FkZHJlc3MgICA9ICgweDFlID4+IDEpLAogCS5ub190dW5lciAgICAgICAgPSAxLAorCS5kZW1vZF9pbml0ICAgICAgPSBtdDM1Ml9hdmVybWVkaWFfeGMzMDI4X2luaXQsCiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTk3NSw5ICs5NjgsMTAgQEAKIAkJfQogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0ExNkQ6Ci0JCWRwcmludGsoImF2ZXJ0diBBMTZEIGR2YiBzZXR1cFxuIik7Ci0JCWRldi0+ZHZiLmZyb250ZW5kID0gZHZiX2F0dGFjaChtdDM1Ml9hdHRhY2gsICZhdmVybWVkaWFfMTZkLAotCQkJCQkgICAgICAgJmRldi0+aTJjX2FkYXApOworCQlkcHJpbnRrKCJBdmVyTWVkaWEgQTE2RCBkdmIgc2V0dXBcbiIpOworCQlkZXYtPmR2Yi5mcm9udGVuZCA9IGR2Yl9hdHRhY2gobXQzNTJfYXR0YWNoLAorCQkJCQkJJmF2ZXJtZWRpYV94YzMwMjhfbXQzNTJfZGV2LAorCQkJCQkJJmRldi0+aTJjX2FkYXApOwogCQlhdHRhY2hfeGMzMDI4ID0gMTsKIAkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX01ENzEzNDoKQEAgLTEwOTEsNyArMTA4NSw4IEBACiAJCQkJCWFkc190ZWNoX2R1b19jb25maWcudHVuZXJfYWRkcmVzcyk7CiAJCQkJZ290byBkZXR0YWNoX2Zyb250ZW5kOwogCQkJfQotCQl9CisJCX0gZWxzZQorCQkJd3ByaW50aygiZmFpbGVkIHRvIGF0dGFjaCB0ZGExMDA0NlxuIik7CiAJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9URVZJT05fRFZCVF8yMjBSRjoKIAkJaWYgKGNvbmZpZ3VyZV90ZGE4Mjd4X2ZlKGRldiwgJnRldmlvbl9kdmJ0MjIwcmZfY29uZmlnLApAQCAtMTI2MCwxMSArMTI1NSwxNCBAQAogCQkJZ290byBkZXR0YWNoX2Zyb250ZW5kOwogCQlicmVhazsKIAljYXNlIFNBQTcxMzRfQk9BUkRfQVZFUk1FRElBX0NBUkRCVVNfNTA2OgorCQlkcHJpbnRrKCJBdmVyTWVkaWEgRTUwNlIgZHZiIHNldHVwXG4iKTsKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDI1LCAwKTsKKwkJbXNsZWVwKDEwKTsKKwkJc2FhNzEzNF9zZXRfZ3BpbyhkZXYsIDI1LCAxKTsKIAkJZGV2LT5kdmIuZnJvbnRlbmQgPSBkdmJfYXR0YWNoKG10MzUyX2F0dGFjaCwKLQkJCQkJICAgICAgICZhdmVybWVkaWFfZTUwNnJfbXQzNTJfZGV2LAotCQkJCQkgICAgICAgJmRldi0+aTJjX2FkYXApOworCQkJCQkJJmF2ZXJtZWRpYV94YzMwMjhfbXQzNTJfZGV2LAorCQkJCQkJJmRldi0+aTJjX2FkYXApOwogCQlhdHRhY2hfeGMzMDI4ID0gMTsKLQkJYnJlYWs7CiAJY2FzZSBTQUE3MTM0X0JPQVJEX01ENzEzNF9CUklER0VfMjoKIAkJZGV2LT5kdmIuZnJvbnRlbmQgPSBkdmJfYXR0YWNoKHRkYTEwMDg2X2F0dGFjaCwKIAkJCQkJCSZzZDE4NzhfNG0sICZkZXYtPmkyY19hZGFwKTsKQEAgLTEzMzgsNyArMTMzNiw4IEBACiAJcmV0dXJuIHJldDsKIAogZGV0dGFjaF9mcm9udGVuZDoKLQlkdmJfZnJvbnRlbmRfZGV0YWNoKGRldi0+ZHZiLmZyb250ZW5kKTsKKwlpZiAoZGV2LT5kdmIuZnJvbnRlbmQpCisJCWR2Yl9mcm9udGVuZF9kZXRhY2goZGV2LT5kdmIuZnJvbnRlbmQpOwogCWRldi0+ZHZiLmZyb250ZW5kID0gTlVMTDsKIAogCXJldHVybiAtMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWVtcHJlc3MuYwppbmRleCAxMzE0NTIyLi4zYWU3MWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1lbXByZXNzLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtZW1wcmVzcy5jCkBAIC0xMTAsOSArMTEwLDEwIEBACiB7CiAJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKKwltdXRleF9sb2NrKCZkZXYtPmVtcHJlc3NfdHNxLnZiX2xvY2spOworCiAJdmlkZW9idWZfc3RvcCgmZGV2LT5lbXByZXNzX3RzcSk7CiAJdmlkZW9idWZfbW1hcF9mcmVlKCZkZXYtPmVtcHJlc3NfdHNxKTsKLQlkZXYtPmVtcHJlc3NfdXNlcnMtLTsKIAogCS8qIHN0b3AgdGhlIGVuY29kZXIgKi8KIAl0c19yZXNldF9lbmNvZGVyKGRldik7CkBAIC0xMjEsNiArMTIyLDEwIEBACiAJc2FhX3dyaXRlYihTQUE3MTM0X0FVRElPX01VVEVfQ1RSTCwKIAkJc2FhX3JlYWRiKFNBQTcxMzRfQVVESU9fTVVURV9DVFJMKSB8ICgxIDw8IDYpKTsKIAorCWRldi0+ZW1wcmVzc191c2Vycy0tOworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPmVtcHJlc3NfdHNxLnZiX2xvY2spOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2Myw4ICsxNjgsNyBAQAogc3RhdGljIGludCBlbXByZXNzX3F1ZXJ5Y2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICAqcHJpdiwKIAkJCQkJc3RydWN0IHY0bDJfY2FwYWJpbGl0eSAqY2FwKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJc3RyY3B5KGNhcC0+ZHJpdmVyLCAic2FhNzEzNCIpOwogCXN0cmxjcHkoY2FwLT5jYXJkLCBzYWE3MTM0X2JvYXJkc1tkZXYtPmJvYXJkXS5uYW1lLApAQCAtMjE5LDggKzIyMyw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3NfZ19mbXRfY2FwKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZikKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXNhYTcxMzRfaTJjX2NhbGxfY2xpZW50cyhkZXYsIFZJRElPQ19HX0ZNVCwgZik7CiAKQEAgLTIzMyw4ICsyMzYsNyBAQAogc3RhdGljIGludCBlbXByZXNzX3NfZm10X2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCQlzdHJ1Y3QgdjRsMl9mb3JtYXQgKmYpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlzYWE3MTM0X2kyY19jYWxsX2NsaWVudHMoZGV2LCBWSURJT0NfU19GTVQsIGYpOwogCkBAIC0yNDgsOCArMjUwLDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19yZXFidWZzKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQlzdHJ1Y3QgdjRsMl9yZXF1ZXN0YnVmZmVycyAqcCkKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9yZXFidWZzKCZkZXYtPmVtcHJlc3NfdHNxLCBwKTsKIH0KQEAgLTI1NywyNCArMjU4LDIxIEBACiBzdGF0aWMgaW50IGVtcHJlc3NfcXVlcnlidWYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJCXN0cnVjdCB2NGwyX2J1ZmZlciAqYikKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9xdWVyeWJ1ZigmZGV2LT5lbXByZXNzX3RzcSwgYik7CiB9CiAKIHN0YXRpYyBpbnQgZW1wcmVzc19xYnVmKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LCBzdHJ1Y3QgdjRsMl9idWZmZXIgKmIpCiB7Ci0Jc3RydWN0IHNhYTcxMzRfZmggKmZoID0gcHJpdjsKLQlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZoLT5kZXY7CisJc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAKIAlyZXR1cm4gdmlkZW9idWZfcWJ1ZigmZGV2LT5lbXByZXNzX3RzcSwgYik7CiB9CiAKIHN0YXRpYyBpbnQgZW1wcmVzc19kcWJ1ZihzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwgc3RydWN0IHY0bDJfYnVmZmVyICpiKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJcmV0dXJuIHZpZGVvYnVmX2RxYnVmKCZkZXYtPmVtcHJlc3NfdHNxLCBiLAogCQkJCWZpbGUtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKTsKQEAgLTI4Myw4ICsyODEsNyBAQAogc3RhdGljIGludCBlbXByZXNzX3N0cmVhbW9uKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LAogCQkJCQllbnVtIHY0bDJfYnVmX3R5cGUgdHlwZSkKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCXJldHVybiB2aWRlb2J1Zl9zdHJlYW1vbigmZGV2LT5lbXByZXNzX3RzcSk7CiB9CkBAIC0yOTIsOCArMjg5LDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zdHJlYW1vZmYoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkJCWVudW0gdjRsMl9idWZfdHlwZSB0eXBlKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJcmV0dXJuIHZpZGVvYnVmX3N0cmVhbW9mZigmZGV2LT5lbXByZXNzX3RzcSk7CiB9CkBAIC0zMDEsOCArMjk3LDcgQEAKIHN0YXRpYyBpbnQgZW1wcmVzc19zX2V4dF9jdHJscyhzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwKIAkJCSAgICAgICBzdHJ1Y3QgdjRsMl9leHRfY29udHJvbHMgKmN0cmxzKQogewotCXN0cnVjdCBzYWE3MTM0X2ZoICpmaCA9IHByaXY7Ci0Jc3RydWN0IHNhYTcxMzRfZGV2ICpkZXYgPSBmaC0+ZGV2OworCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCiAJLyogY291bnQgPT0gMCBpcyBhYnVzZWQgaW4gc2FhNjc1MmhzLmMsIHNvIHRoYXQgc3BlY2lhbAogCQljYXNlIGlzIGhhbmRsZWQgaGVyZSBleHBsaWNpdGx5LiAqLwpAQCAtMzIxLDggKzMxNiw3IEBACiBzdGF0aWMgaW50IGVtcHJlc3NfZ19leHRfY3RybHMoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYsCiAJCQkgICAgICAgc3RydWN0IHY0bDJfZXh0X2NvbnRyb2xzICpjdHJscykKIHsKLQlzdHJ1Y3Qgc2FhNzEzNF9maCAqZmggPSBwcml2OwotCXN0cnVjdCBzYWE3MTM0X2RldiAqZGV2ID0gZmgtPmRldjsKKwlzdHJ1Y3Qgc2FhNzEzNF9kZXYgKmRldiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAogCWlmIChjdHJscy0+Y3RybF9jbGFzcyAhPSBWNEwyX0NUUkxfQ0xBU1NfTVBFRykKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zYWE3MTM0L3NhYTcxMzQtaW5wdXQuYwppbmRleCA5MTk2MzJiLi43NmU2NTAxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3NhYTcxMzQvc2FhNzEzNC1pbnB1dC5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vc2FhNzEzNC9zYWE3MTM0LWlucHV0LmMKQEAgLTMyMyw2ICszMjMsMTUgQEAKIAkJc2FhX3NldGIoU0FBNzEzNF9HUElPX0dQTU9ERTEsIDB4MSk7CiAJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUFNUQVRVUzEsIDB4MSk7CiAJCWJyZWFrOworCWNhc2UgU0FBNzEzNF9CT0FSRF9BVkVSTUVESUFfQTE2RDoKKwkJaXJfY29kZXMgICAgID0gaXJfY29kZXNfYXZlcm1lZGlhX2ExNmQ7CisJCW1hc2tfa2V5Y29kZSA9IDB4MDJGMjAwOworCQltYXNrX2tleWRvd24gPSAweDAwMDQwMDsKKwkJcG9sbGluZyAgICAgID0gNTA7IC8qIG1zICovCisJCS8qIFdpdGhvdXQgdGhpcyB3ZSB3b24ndCByZWNlaXZlIGtleSB1cCBldmVudHMgKi8KKwkJc2FhX3NldGIoU0FBNzEzNF9HUElPX0dQTU9ERTEsIDB4MSk7CisJCXNhYV9zZXRiKFNBQTcxMzRfR1BJT19HUFNUQVRVUzEsIDB4MSk7CisJCWJyZWFrOwogCWNhc2UgU0FBNzEzNF9CT0FSRF9LV09STERfVEVSTUlOQVRPUjoKIAkJaXJfY29kZXMgICAgID0gaXJfY29kZXNfcGl4ZWx2aWV3OwogCQltYXNrX2tleWNvZGUgPSAweDAwMDAxZjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vc29jX2NhbWVyYS5jIGIvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKaW5kZXggYTFiOTI0NC4uZDAxNWJmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9zb2NfY2FtZXJhLmMKQEAgLTc2MywxNSArNzYzLDYgQEAKIAkub3duZXIJPSBUSElTX01PRFVMRSwKIH07CiAKLS8qCi0gKiBJbWFnZSBjYXB0dXJlIGhvc3QgLSB0aGlzIGlzIGEgaG9zdCBkZXZpY2UsIG5vdCBhIGJ1cyBkZXZpY2UsIHNvLAotICogbm8gYnVzIHJlZmVyZW5jZSwgbm8gcHJvYmluZy4KLSAqLwotc3RhdGljIHN0cnVjdCBjbGFzcyBzb2NfY2FtZXJhX2hvc3RfY2xhc3MgPSB7Ci0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotCS5uYW1lCQk9ICJjYW1lcmFfaG9zdCIsCi19OwotCiBzdGF0aWMgdm9pZCBkdW1teV9yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIH0KQEAgLTgwMSw3ICs3OTIsNiBAQAogCiAJLyogTnVtYmVyIG1pZ2h0IGJlIGVxdWFsIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UgSUQgKi8KIAlzcHJpbnRmKGljaS0+ZGV2LmJ1c19pZCwgImNhbWVyYV9ob3N0JWQiLCBpY2ktPm5yKTsKLQlpY2ktPmRldi5jbGFzcyA9ICZzb2NfY2FtZXJhX2hvc3RfY2xhc3M7CiAKIAltdXRleF9sb2NrKCZsaXN0X2xvY2spOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoaXgsICZob3N0cywgbGlzdCkgewpAQCAtMTAwMywxNCArOTkzLDkgQEAKIAlyZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJmljX2Rydik7CiAJaWYgKHJldCkKIAkJZ290byBlZHJ2cjsKLQlyZXQgPSBjbGFzc19yZWdpc3Rlcigmc29jX2NhbWVyYV9ob3N0X2NsYXNzKTsKLQlpZiAocmV0KQotCQlnb3RvIGVjbHI7CiAKIAlyZXR1cm4gMDsKIAotZWNscjoKLQlkcml2ZXJfdW5yZWdpc3RlcigmaWNfZHJ2KTsKIGVkcnZyOgogCWJ1c191bnJlZ2lzdGVyKCZzb2NfY2FtZXJhX2J1c190eXBlKTsKIAlyZXR1cm4gcmV0OwpAQCAtMTAxOCw3ICsxMDAzLDYgQEAKIAogc3RhdGljIHZvaWQgX19leGl0IHNvY19jYW1lcmFfZXhpdCh2b2lkKQogewotCWNsYXNzX3VucmVnaXN0ZXIoJnNvY19jYW1lcmFfaG9zdF9jbGFzcyk7CiAJZHJpdmVyX3VucmVnaXN0ZXIoJmljX2Rydik7CiAJYnVzX3VucmVnaXN0ZXIoJnNvY19jYW1lcmFfYnVzX3R5cGUpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby90dW5lci1jb3JlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3R1bmVyLWNvcmUuYwppbmRleCAxOThmMGFmLi4wZDEyYWNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3R1bmVyLWNvcmUuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3R1bmVyLWNvcmUuYwpAQCAtOTIsNiArOTIsNyBAQAogCXVuc2lnbmVkIGludCAgICAgICAgdHlwZTsgLyogY2hpcCB0eXBlIGlkICovCiAJdW5zaWduZWQgaW50ICAgICAgICBjb25maWc7CiAJaW50ICgqdHVuZXJfY2FsbGJhY2spICh2b2lkICpkZXYsIGludCBjb21tYW5kLCBpbnQgYXJnKTsKKwljb25zdCBjaGFyICAgICAgICAgICpuYW1lOwogfTsKIAogLyogc3RhbmRhcmQgaTJjIGluc21vZCBvcHRpb25zICovCkBAIC0zMzAsMTMgKzMzMSwxMyBAQAogCXR1bmVyX3dhcm4oIlN1cHBvcnQgZm9yIHR1bmVycyBpbiBpMmMgYWRkcmVzcyByYW5nZSAweDY0IHRocnUgMHg2ZlxuIik7CiAJdHVuZXJfd2Fybigid2lsbCBzb29uIGJlIGRyb3BwZWQuIFRoaXMgbWVzc2FnZSBpbmRpY2F0ZXMgdGhhdCB5b3VyXG4iKTsKIAl0dW5lcl93YXJuKCJoYXJkd2FyZSBoYXMgYSAlcyB0dW5lciBhdCBpMmMgYWRkcmVzcyAweCUwMnguXG4iLAotCQkgICB0LT5pMmMtPm5hbWUsIHQtPmkyYy0+YWRkcik7CisJCSAgIHQtPm5hbWUsIHQtPmkyYy0+YWRkcik7CiAJdHVuZXJfd2FybigiVG8gZW5zdXJlIGNvbnRpbnVlZCBzdXBwb3J0IGZvciB5b3VyIGRldmljZSwgcGxlYXNlXG4iKTsKIAl0dW5lcl93YXJuKCJzZW5kIGEgY29weSBvZiB0aGlzIG1lc3NhZ2UsIGFsb25nIHdpdGggZnVsbCBkbWVzZ1xuIik7CiAJdHVuZXJfd2Fybigib3V0cHV0IHRvIHY0bC1kdmItbWFpbnRhaW5lckBsaW51eHR2Lm9yZ1xuIik7CiAJdHVuZXJfd2FybigiUGxlYXNlIHVzZSBzdWJqZWN0IGxpbmU6IFwib2Jzb2xldGUgdHVuZXIgaTJjIGFkZHJlc3MuXCJcbiIpOwogCXR1bmVyX3dhcm4oImRyaXZlcjogJXMsIGFkZHI6IDB4JTAyeCwgdHlwZTogJWQgKCVzKVxuIiwKLQkJICAgdC0+aTJjLT5hZGFwdGVyLT5uYW1lLCB0LT5pMmMtPmFkZHIsIHQtPnR5cGUsIHQtPmkyYy0+bmFtZSk7CisJCSAgIHQtPmkyYy0+YWRhcHRlci0+bmFtZSwgdC0+aTJjLT5hZGRyLCB0LT50eXBlLCB0LT5uYW1lKTsKIAl0dW5lcl93YXJuKCI9PT09PT09PT09PT09PT09PT09PT09IFdBUk5JTkchID09PT09PT09PT09PT09PT09PT09PT1cbiIpOwogfQogCkBAIC00NzAsMTkgKzQ3MSwxNyBAQAogCWlmICgoTlVMTCA9PSBhbmFsb2dfb3BzLT5zZXRfcGFyYW1zKSAmJgogCSAgICAoZmVfdHVuZXJfb3BzLT5zZXRfYW5hbG9nX3BhcmFtcykpIHsKIAotCQlzdHJsY3B5KHQtPmkyYy0+bmFtZSwgZmVfdHVuZXJfb3BzLT5pbmZvLm5hbWUsCi0JCQlzaXplb2YodC0+aTJjLT5uYW1lKSk7CisJCXQtPm5hbWUgPSBmZV90dW5lcl9vcHMtPmluZm8ubmFtZTsKIAogCQl0LT5mZS5hbmFsb2dfZGVtb2RfcHJpdiA9IHQ7CiAJCW1lbWNweShhbmFsb2dfb3BzLCAmdHVuZXJfY29yZV9vcHMsCiAJCSAgICAgICBzaXplb2Yoc3RydWN0IGFuYWxvZ19kZW1vZF9vcHMpKTsKIAogCX0gZWxzZSB7Ci0JCXN0cmxjcHkodC0+aTJjLT5uYW1lLCBhbmFsb2dfb3BzLT5pbmZvLm5hbWUsCi0JCQlzaXplb2YodC0+aTJjLT5uYW1lKSk7CisJCXQtPm5hbWUgPSBhbmFsb2dfb3BzLT5pbmZvLm5hbWU7CiAJfQogCi0JdHVuZXJfZGJnKCJ0eXBlIHNldCB0byAlc1xuIiwgdC0+aTJjLT5uYW1lKTsKKwl0dW5lcl9kYmcoInR5cGUgc2V0IHRvICVzXG4iLCB0LT5uYW1lKTsKIAogCWlmICh0LT5tb2RlX21hc2sgPT0gVF9VTklOSVRJQUxJWkVEKQogCQl0LT5tb2RlX21hc2sgPSBuZXdfbW9kZV9tYXNrOwpAQCAtNTM3LDcgKzUzNiw3IEBACiBzdGF0aWMgaW5saW5lIGludCBjaGVja19tb2RlKHN0cnVjdCB0dW5lciAqdCwgY2hhciAqY21kKQogewogCWlmICgoMSA8PCB0LT5tb2RlICYgdC0+bW9kZV9tYXNrKSA9PSAwKSB7Ci0JCXJldHVybiBFSU5WQUw7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAogCXN3aXRjaCAodC0+bW9kZSkgewpAQCAtNzMxLDExICs3MzAsMTEgQEAKIAogCXQtPm1vZGUgPSBtb2RlOwogCi0JaWYgKGNoZWNrX21vZGUodCwgY21kKSA9PSBFSU5WQUwpIHsKKwlpZiAoY2hlY2tfbW9kZSh0LCBjbWQpID09IC1FSU5WQUwpIHsKIAkJdC0+bW9kZSA9IFRfU1RBTkRCWTsKIAkJaWYgKGFuYWxvZ19vcHMtPnN0YW5kYnkpCiAJCQlhbmFsb2dfb3BzLT5zdGFuZGJ5KCZ0LT5mZSk7Ci0JCXJldHVybiBFSU5WQUw7CisJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gMDsKIH0KQEAgLTc3NywxMyArNzc2LDEzIEBACiAJCWJyZWFrOwogCWNhc2UgQVVEQ19TRVRfUkFESU86CiAJCWlmIChzZXRfbW9kZShjbGllbnQsIHQsIFY0TDJfVFVORVJfUkFESU8sICJBVURDX1NFVF9SQURJTyIpCi0JCQkJPT0gRUlOVkFMKQorCQkJCT09IC1FSU5WQUwpCiAJCQlyZXR1cm4gMDsKIAkJaWYgKHQtPnJhZGlvX2ZyZXEpCiAJCQlzZXRfZnJlcShjbGllbnQsIHQtPnJhZGlvX2ZyZXEpOwogCQlicmVhazsKIAljYXNlIFRVTkVSX1NFVF9TVEFOREJZOgotCQlpZiAoY2hlY2tfbW9kZSh0LCAiVFVORVJfU0VUX1NUQU5EQlkiKSA9PSBFSU5WQUwpCisJCWlmIChjaGVja19tb2RlKHQsICJUVU5FUl9TRVRfU1RBTkRCWSIpID09IC1FSU5WQUwpCiAJCQlyZXR1cm4gMDsKIAkJdC0+bW9kZSA9IFRfU1RBTkRCWTsKIAkJaWYgKGFuYWxvZ19vcHMtPnN0YW5kYnkpCkBAIC03OTEsOSArNzkwLDkgQEAKIAkJYnJlYWs7CiAjaWZkZWYgQ09ORklHX1ZJREVPX0FMTE9XX1Y0TDEKIAljYXNlIFZJRElPQ1NBVURJTzoKLQkJaWYgKGNoZWNrX21vZGUodCwgIlZJRElPQ1NBVURJTyIpID09IEVJTlZBTCkKKwkJaWYgKGNoZWNrX21vZGUodCwgIlZJRElPQ1NBVURJTyIpID09IC1FSU5WQUwpCiAJCQlyZXR1cm4gMDsKLQkJaWYgKGNoZWNrX3Y0bDIodCkgPT0gRUlOVkFMKQorCQlpZiAoY2hlY2tfdjRsMih0KSA9PSAtRUlOVkFMKQogCQkJcmV0dXJuIDA7CiAKIAkJLyogU2hvdWxkIGJlIGltcGxlbWVudGVkLCBzaW5jZSBidHR2IGNhbGxzIGl0ICovCkBAIC04MTEsMTAgKzgxMCwxMCBAQAogCQkJfTsKIAkJCXN0cnVjdCB2aWRlb19jaGFubmVsICp2YyA9IGFyZzsKIAotCQkJaWYgKGNoZWNrX3Y0bDIodCkgPT0gRUlOVkFMKQorCQkJaWYgKGNoZWNrX3Y0bDIodCkgPT0gLUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAotCQkJaWYgKHNldF9tb2RlKGNsaWVudCx0LFY0TDJfVFVORVJfQU5BTE9HX1RWLCAiVklESU9DU0NIQU4iKT09RUlOVkFMKQorCQkJaWYgKHNldF9tb2RlKGNsaWVudCx0LFY0TDJfVFVORVJfQU5BTE9HX1RWLCAiVklESU9DU0NIQU4iKT09LUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAogCQkJaWYgKHZjLT5ub3JtIDwgQVJSQVlfU0laRShtYXApKQpAQCAtODI4LDkgKzgyNyw5IEBACiAJCXsKIAkJCXVuc2lnbmVkIGxvbmcgKnYgPSBhcmc7CiAKLQkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NTRlJFUSIpID09IEVJTlZBTCkKKwkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NTRlJFUSIpID09IC1FSU5WQUwpCiAJCQkJcmV0dXJuIDA7Ci0JCQlpZiAoY2hlY2tfdjRsMih0KSA9PSBFSU5WQUwpCisJCQlpZiAoY2hlY2tfdjRsMih0KSA9PSAtRUlOVkFMKQogCQkJCXJldHVybiAwOwogCiAJCQlzZXRfZnJlcShjbGllbnQsICp2KTsKQEAgLTg0MCw5ICs4MzksOSBAQAogCQl7CiAJCQlzdHJ1Y3QgdmlkZW9fdHVuZXIgKnZ0ID0gYXJnOwogCi0JCQlpZiAoY2hlY2tfbW9kZSh0LCAiVklESU9DR1RVTkVSIikgPT0gRUlOVkFMKQorCQkJaWYgKGNoZWNrX21vZGUodCwgIlZJRElPQ0dUVU5FUiIpID09IC1FSU5WQUwpCiAJCQkJcmV0dXJuIDA7Ci0JCQlpZiAoY2hlY2tfdjRsMih0KSA9PSBFSU5WQUwpCisJCQlpZiAoY2hlY2tfdjRsMih0KSA9PSAtRUlOVkFMKQogCQkJCXJldHVybiAwOwogCiAJCQlpZiAoVjRMMl9UVU5FUl9SQURJTyA9PSB0LT5tb2RlKSB7CkBAIC04ODQsOSArODgzLDkgQEAKIAkJewogCQkJc3RydWN0IHZpZGVvX2F1ZGlvICp2YSA9IGFyZzsKIAotCQkJaWYgKGNoZWNrX21vZGUodCwgIlZJRElPQ0dBVURJTyIpID09IEVJTlZBTCkKKwkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NHQVVESU8iKSA9PSAtRUlOVkFMKQogCQkJCXJldHVybiAwOwotCQkJaWYgKGNoZWNrX3Y0bDIodCkgPT0gRUlOVkFMKQorCQkJaWYgKGNoZWNrX3Y0bDIodCkgPT0gLUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAogCQkJaWYgKFY0TDJfVFVORVJfUkFESU8gPT0gdC0+bW9kZSkgewpAQCAtOTI2LDcgKzkyNSw3IEBACiAJCQl2NGwyX3N0ZF9pZCAqaWQgPSBhcmc7CiAKIAkJCWlmIChzZXRfbW9kZSAoY2xpZW50LCB0LCBWNEwyX1RVTkVSX0FOQUxPR19UViwgIlZJRElPQ19TX1NURCIpCi0JCQkJCT09IEVJTlZBTCkKKwkJCQkJPT0gLUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAogCQkJc3dpdGNoX3Y0bDIoKTsKQEAgLTk0Miw3ICs5NDEsNyBAQAogCQkJc3RydWN0IHY0bDJfZnJlcXVlbmN5ICpmID0gYXJnOwogCiAJCQlpZiAoc2V0X21vZGUgKGNsaWVudCwgdCwgZi0+dHlwZSwgIlZJRElPQ19TX0ZSRVFVRU5DWSIpCi0JCQkJCT09IEVJTlZBTCkKKwkJCQkJPT0gLUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAkJCXN3aXRjaF92NGwyKCk7CiAJCQlzZXRfZnJlcShjbGllbnQsZi0+ZnJlcXVlbmN5KTsKQEAgLTk1Myw3ICs5NTIsNyBAQAogCQl7CiAJCQlzdHJ1Y3QgdjRsMl9mcmVxdWVuY3kgKmYgPSBhcmc7CiAKLQkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NfR19GUkVRVUVOQ1kiKSA9PSBFSU5WQUwpCisJCQlpZiAoY2hlY2tfbW9kZSh0LCAiVklESU9DX0dfRlJFUVVFTkNZIikgPT0gLUVJTlZBTCkKIAkJCQlyZXR1cm4gMDsKIAkJCXN3aXRjaF92NGwyKCk7CiAJCQlmLT50eXBlID0gdC0+bW9kZTsKQEAgLTk3NCw3ICs5NzMsNyBAQAogCQl7CiAJCQlzdHJ1Y3QgdjRsMl90dW5lciAqdHVuZXIgPSBhcmc7CiAKLQkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NfR19UVU5FUiIpID09IEVJTlZBTCkKKwkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NfR19UVU5FUiIpID09IC1FSU5WQUwpCiAJCQkJcmV0dXJuIDA7CiAJCQlzd2l0Y2hfdjRsMigpOwogCkBAIC0xMDIxLDcgKzEwMjAsNyBAQAogCQl7CiAJCQlzdHJ1Y3QgdjRsMl90dW5lciAqdHVuZXIgPSBhcmc7CiAKLQkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NfU19UVU5FUiIpID09IEVJTlZBTCkKKwkJCWlmIChjaGVja19tb2RlKHQsICJWSURJT0NfU19UVU5FUiIpID09IC1FSU5WQUwpCiAJCQkJcmV0dXJuIDA7CiAKIAkJCXN3aXRjaF92NGwyKCk7CkBAIC0xMTE1LDYgKzExMTQsNyBAQAogCWlmIChOVUxMID09IHQpCiAJCXJldHVybiAtRU5PTUVNOwogCXQtPmkyYyA9IGNsaWVudDsKKwl0LT5uYW1lID0gIih0dW5lciB1bnNldCkiOwogCWkyY19zZXRfY2xpZW50ZGF0YShjbGllbnQsIHQpOwogCXQtPnR5cGUgPSBVTlNFVDsKIAl0LT5hdWRtb2RlID0gVjRMMl9UVU5FUl9NT0RFX1NURVJFTzsKQEAgLTEyNzIsMTIgKzEyNzIsNiBAQAogCiAJbGlzdF9kZWwoJnQtPmxpc3QpOwogCWtmcmVlKHQpOwotCi0JLyogVGhlIHByb2JpbmcgY29kZSBoYXMgb3ZlcndyaXR0ZW4gdGhlIGRldmljZSBuYW1lLCByZXN0b3JlIGl0IHNvCi0JICAgdGhhdCByZWxvYWRpbmcgdGhlIGRyaXZlciB3aWxsIHdvcmsuIElkZWFsbHkgdGhlIGRldmljZSBuYW1lCi0JICAgc2hvdWxkIG5vdCBiZSBvdmVyd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGxhY2UsIGJ1dCBmb3Igbm93IHRoYXQKLQkgICB3aWxsIGRvLiAqLwotCXN0cmxjcHkoY2xpZW50LT5uYW1lLCAidHVuZXIiLCBJMkNfTkFNRV9TSVpFKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby9xdWlja2NhbV9tZXNzZW5nZXIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlkZW8vcXVpY2tjYW1fbWVzc2VuZ2VyLmMKaW5kZXggMzJlNTM2ZS4uM2QyNmEzMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby9xdWlja2NhbV9tZXNzZW5nZXIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3VzYnZpZGVvL3F1aWNrY2FtX21lc3Nlbmdlci5jCkBAIC0yMTAsNyArMjEwLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHFjbV9zdHZfc2V0dyhzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCB1MTYgcmVnLCB1MTYgdmFsKQorc3RhdGljIGludCBxY21fc3R2X3NldHcoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgdTE2IHJlZywgX19sZTE2IHZhbCkKIHsKIAlpbnQgcmV0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3VzYnZpZGVvL3ZpY2FtLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3VzYnZpZGVvL3ZpY2FtLmMKaW5kZXggMTdmNTQyZC4uNDBkMDUzZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby91c2J2aWRlby92aWNhbS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXNidmlkZW8vdmljYW0uYwpAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlICJ1c2J2aWRlby5oIgogCiAvLyAjZGVmaW5lIFZJQ0FNX0RFQlVHCkBAIC03MCwyODQgKzcyLDYgQEAKIAogI2RlZmluZSBWSUNBTV9IRUFERVJfU0laRSAgICAgICA2NAogCi0vKiBOb3Qgc3VyZSB3aGF0IGFsbCB0aGUgYnl0ZXMgaW4gdGhlc2UgY2hhcgotICogYXJyYXlzIGRvLCBidXQgdGhleSdyZSBuZWNlc3NhcnkgdG8gbWFrZQotICogdGhlIGNhbWVyYSB3b3JrLgotICovCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNldHVwMVtdID0gewotCTB4QjYsIDB4QzMsIDB4MUYsIDB4MDAsIDB4MDIsIDB4NjQsIDB4RTcsIDB4NjcsCi0JMHhGRCwgMHhGRiwgMHgwRSwgMHhDMCwgMHhFNywgMHgwOSwgMHhERSwgMHgwMCwKLQkweDhFLCAweDAwLCAweEMwLCAweDA5LCAweDQwLCAweDAzLCAweEMwLCAweDE3LAotCTB4NDQsIDB4MDMsIDB4NEIsIDB4QUYsIDB4QzAsIDB4MDcsIDB4MDAsIDB4MDAsCi0JMHg0QiwgMHhBRiwgMHg5NywgMHhDRiwgMHgwMCwgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc2V0dXAyW10gPSB7Ci0JMHhCNiwgMHhDMywgMHgwMywgMHgwMCwgMHgwMywgMHg2NCwgMHgxOCwgMHgwMCwKLQkweDAwLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzZXR1cDNbXSA9IHsKLQkweEI2LCAweEMzLCAweDAxLCAweDAwLCAweDA2LCAweDY0LCAweDAwLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzZXR1cDRbXSA9IHsKLQkweEI2LCAweEMzLCAweDhGLCAweDA2LCAweDAyLCAweDY0LCAweEU3LCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MDgsIDB4QzAsIDB4RTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0JMHgzRSwgMHhDMCwgMHhFNywgMHgwNywgMHg1NCwgMHgwMSwgMHhBQSwgMHgwMCwKLQkweEU3LCAweDA3LCAweEM4LCAweDA1LCAweEI2LCAweDAwLCAweEU3LCAweDA3LAotCTB4NDIsIDB4MDEsIDB4RDIsIDB4MDAsIDB4RTcsIDB4MDcsIDB4N0MsIDB4MDAsCi0JMHgxNiwgMHgwMCwgMHhFNywgMHgwNywgMHg1NiwgMHgwMCwgMHgxOCwgMHgwMCwKLQkweEU3LCAweDA3LCAweDA2LCAweDAwLCAweDkyLCAweEMwLCAweEU3LCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MUUsIDB4QzAsIDB4RTcsIDB4MDcsIDB4RkYsIDB4RkYsCi0JMHgyMiwgMHhDMCwgMHhFNywgMHgwNywgMHgwNCwgMHgwMCwgMHgyNCwgMHhDMCwKLQkweEU3LCAweDA3LCAweEVDLCAweDI3LCAweDI4LCAweEMwLCAweEU3LCAweDA3LAotCTB4MTYsIDB4MDEsIDB4OEUsIDB4MDAsIDB4RTcsIDB4ODcsIDB4MDEsIDB4MDAsCi0JMHgwRSwgMHhDMCwgMHg5NywgMHhDRiwgMHhENywgMHgwOSwgMHgwMCwgMHhDMCwKLQkweEU3LCAweDc3LCAweDAxLCAweDAwLCAweDkyLCAweEMwLCAweDA5LCAweEMxLAotCTB4RTcsIDB4MDksIDB4RkUsIDB4MDUsIDB4MjQsIDB4MDEsIDB4RTcsIDB4MDksCi0JMHgwNCwgMHgwNiwgMHgyNiwgMHgwMSwgMHhFNywgMHgwNywgMHgwNywgMHgwMCwKLQkweDkyLCAweEMwLCAweEU3LCAweDA1LCAweDAwLCAweEMwLCAweEMwLCAweERGLAotCTB4OTcsIDB4Q0YsIDB4MTcsIDB4MDAsIDB4NTcsIDB4MDAsIDB4MTcsIDB4MDIsCi0JMHhENywgMHgwOSwgMHgwMCwgMHhDMCwgMHhFNywgMHg3NywgMHgwMSwgMHgwMCwKLQkweDkyLCAweEMwLCAweDBBLCAweEMxLCAweEU3LCAweDU3LCAweEZGLCAweEZGLAotCTB4RkEsIDB4MDUsIDB4MEQsIDB4QzAsIDB4RTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0JMHhGQSwgMHgwNSwgMHgwRiwgMHhDMCwgMHg5RiwgMHhBRiwgMHhDNiwgMHgwMCwKLQkweEU3LCAweDA1LCAweDAwLCAweEMwLCAweEM4LCAweDA1LCAweEMxLCAweDA1LAotCTB4QzAsIDB4MDUsIDB4QzAsIDB4REYsIDB4OTcsIDB4Q0YsIDB4MjcsIDB4REEsCi0JMHhGQSwgMHgwNSwgMHhFRiwgMHgwNywgMHgwMSwgMHgwMCwgMHgwQiwgMHgwNiwKLQkweDczLCAweENGLCAweDlGLCAweEFGLCAweDc4LCAweDAxLCAweDlGLCAweEFGLAotCTB4MUEsIDB4MDMsIDB4NkUsIDB4Q0YsIDB4RTcsIDB4MDksIDB4RkMsIDB4MDUsCi0JMHgyNCwgMHgwMSwgMHhFNywgMHgwOSwgMHgwMiwgMHgwNiwgMHgyNiwgMHgwMSwKLQkweEU3LCAweDA3LCAweDA3LCAweDAwLCAweDkyLCAweEMwLCAweEU3LCAweDA5LAotCTB4RkMsIDB4MDUsIDB4RkUsIDB4MDUsIDB4RTcsIDB4MDksIDB4MDIsIDB4MDYsCi0JMHgwNCwgMHgwNiwgMHhFNywgMHgwOSwgMHgwMCwgMHgwNiwgMHhGQywgMHgwNSwKLQkweEU3LCAweDA5LCAweEZFLCAweDA1LCAweDAwLCAweDA2LCAweDI3LCAweERBLAotCTB4RkEsIDB4MDUsIDB4RTcsIDB4NTcsIDB4MDEsIDB4MDAsIDB4RkEsIDB4MDUsCi0JMHgwMiwgMHhDQSwgMHgwNCwgMHhDMCwgMHg5NywgMHhDRiwgMHg5RiwgMHhBRiwKLQkweDY2LCAweDA1LCAweDk3LCAweENGLCAweEU3LCAweDA3LCAweDQwLCAweDAwLAotCTB4MDIsIDB4MDYsIDB4QzgsIDB4MDksIDB4RkMsIDB4MDUsIDB4OUYsIDB4QUYsCi0JMHhEQSwgMHgwMiwgMHg5NywgMHhDRiwgMHhDRiwgMHgxNywgMHgwMiwgMHgwMCwKLQkweEVGLCAweDU3LCAweDgxLCAweDAwLCAweDA5LCAweDA2LCAweDlGLCAweEEwLAotCTB4QjYsIDB4MDEsIDB4RUYsIDB4NTcsIDB4ODAsIDB4MDAsIDB4MDksIDB4MDYsCi0JMHg5RiwgMHhBMCwgMHg0MCwgMHgwMiwgMHhFRiwgMHg1NywgMHgwMSwgMHgwMCwKLQkweDBCLCAweDA2LCAweDlGLCAweEEwLCAweDQ2LCAweDAzLCAweEU3LCAweDA3LAotCTB4MDEsIDB4MDAsIDB4MEEsIDB4QzAsIDB4NDYsIDB4QUYsIDB4NDcsIDB4QUYsCi0JMHg5RiwgMHhBRiwgMHg0MCwgMHgwMiwgMHhFNywgMHgwNywgMHgyRSwgMHgwMCwKLQkweDBBLCAweEMwLCAweEVGLCAweDg3LCAweDgwLCAweDAwLCAweDA5LCAweDA2LAotCTB4OTcsIDB4Q0YsIDB4MDAsIDB4MEUsIDB4MDEsIDB4MDAsIDB4QzAsIDB4NTcsCi0JMHg1MSwgMHgwMCwgMHg5RiwgMHhDMCwgMHg5RSwgMHgwMiwgMHhDMCwgMHg1NywKLQkweDUwLCAweDAwLCAweDIwLCAweEMwLCAweEMwLCAweDU3LCAweDU1LCAweDAwLAotCTB4MTIsIDB4QzAsIDB4QzAsIDB4NTcsIDB4NTYsIDB4MDAsIDB4OUYsIDB4QzAsCi0JMHg3MiwgMHgwMiwgMHg5RiwgMHhDRiwgMHhENiwgMHgwMiwgMHhDMSwgMHgwQiwKLQkweDA4LCAweDA2LCAweDAxLCAweEQwLCAweDZGLCAweDkwLCAweDA4LCAweDA2LAotCTB4QzAsIDB4MDcsIDB4MDgsIDB4MDAsIDB4QzEsIDB4MEIsIDB4MDgsIDB4MDYsCi0JMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHg5NywgMHhDRiwgMHgyRiwgMHgwRSwKLQkweDAyLCAweDAwLCAweDA4LCAweDA2LCAweEMwLCAweDA3LCAweDA4LCAweDAwLAotCTB4QzEsIDB4MEIsIDB4MDgsIDB4MDYsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsCi0JMHg5RiwgMHhDRiwgMHhENiwgMHgwMiwgMHgyRiwgMHgwRSwgMHgwMiwgMHgwMCwKLQkweDA5LCAweDA2LCAweEVGLCAweDg3LCAweDgwLCAweDAwLCAweDA5LCAweDA2LAotCTB4OUYsIDB4Q0YsIDB4RDYsIDB4MDIsIDB4RUYsIDB4NjcsIDB4N0YsIDB4RkYsCi0JMHgwOSwgMHgwNiwgMHhFNywgMHg2NywgMHhGRiwgMHhGRCwgMHgyMiwgMHhDMCwKLQkweEU3LCAweDY3LCAweEVGLCAweEZGLCAweDI0LCAweEMwLCAweEU3LCAweDg3LAotCTB4MTAsIDB4MDAsIDB4MjgsIDB4QzAsIDB4OUYsIDB4QUYsIDB4QjgsIDB4MDUsCi0JMHhFNywgMHg4NywgMHhFMCwgMHgyMSwgMHgyNCwgMHhDMCwgMHg5RiwgMHhBRiwKLQkweEE4LCAweDA1LCAweEU3LCAweDg3LCAweDA4LCAweDAwLCAweDI0LCAweEMwLAotCTB4RTcsIDB4NjcsIDB4REYsIDB4RkYsIDB4MjQsIDB4QzAsIDB4QzgsIDB4MDcsCi0JMHgwQSwgMHgwMCwgMHhDMCwgMHgwNywgMHgwMCwgMHgwMCwgMHhDMSwgMHgwNywKLQkweDAxLCAweDAwLCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweDlGLCAweEFGLAotCTB4QjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4OUUsIDB4MDAsIDB4OUYsIDB4QUYsCi0JMHg0NCwgMHgwNSwgMHhFNywgMHg2NywgMHhGRiwgMHhGRSwgMHgyNCwgMHhDMCwKLQkweEMwLCAweDA5LCAweDIwLCAweEMwLCAweEU3LCAweDg3LCAweDAwLCAweDAxLAotCTB4MjQsIDB4QzAsIDB4QzAsIDB4NzcsIDB4MDAsIDB4MDIsIDB4MEYsIDB4QzEsCi0JMHhFNywgMHg2NywgMHhGNywgMHhGRiwgMHgyNCwgMHhDMCwgMHhFNywgMHg2NywKLQkweEY3LCAweEZGLCAweDI0LCAweEMwLCAweEU3LCAweDg3LCAweDA4LCAweDAwLAotCTB4MjQsIDB4QzAsIDB4MDgsIDB4REEsIDB4NUUsIDB4QzEsIDB4RUYsIDB4MDcsCi0JMHg4MCwgMHgwMCwgMHgwOSwgMHgwNiwgMHg5NywgMHhDRiwgMHhFRiwgMHgwNywKLQkweDAxLCAweDAwLCAweDBBLCAweDA2LCAweDk3LCAweENGLCAweEVGLCAweDA3LAotCTB4MDAsIDB4MDAsIDB4MEIsIDB4MDYsIDB4RUYsIDB4MDcsIDB4MDAsIDB4MDAsCi0JMHgwQSwgMHgwNiwgMHhFRiwgMHg2NywgMHg3RiwgMHhGRiwgMHgwOSwgMHgwNiwKLQkweEVGLCAweDA3LCAweDAwLCAweDAwLCAweDBELCAweDA2LCAweEU3LCAweDY3LAotCTB4RUYsIDB4RkYsIDB4MjgsIDB4QzAsIDB4RTcsIDB4NjcsIDB4MTcsIDB4RDgsCi0JMHgyNCwgMHhDMCwgMHhFNywgMHgwNywgMHgwMCwgMHgwMCwgMHgxRSwgMHhDMCwKLQkweEU3LCAweDA3LCAweEZGLCAweEZGLCAweDIyLCAweEMwLCAweDk3LCAweENGLAotCTB4QzgsIDB4MDcsIDB4MEUsIDB4MDYsIDB4OUYsIDB4QUYsIDB4REEsIDB4MDIsCi0JMHhFNywgMHgwNywgMHgwMCwgMHgwMCwgMHhGMiwgMHgwNSwgMHhFNywgMHgwNywKLQkweDEwLCAweDAwLCAweEY2LCAweDA1LCAweEU3LCAweDA3LCAweDBFLCAweDA2LAotCTB4RjQsIDB4MDUsIDB4RTcsIDB4MDcsIDB4RDYsIDB4MDIsIDB4RjgsIDB4MDUsCi0JMHhDOCwgMHgwNywgMHhGMiwgMHgwNSwgMHhDMSwgMHgwNywgMHgwMCwgMHg4MCwKLQkweDUwLCAweEFGLCAweDk3LCAweENGLCAweDJGLCAweDBDLCAweDAyLCAweDAwLAotCTB4MDcsIDB4MDYsIDB4MkYsIDB4MEMsIDB4MDQsIDB4MDAsIDB4MDYsIDB4MDYsCi0JMHhFNywgMHgwNywgMHgwMCwgMHgwMCwgMHhGMiwgMHgwNSwgMHhFNywgMHgwNywKLQkweDEwLCAweDAwLCAweEY2LCAweDA1LCAweEU3LCAweDA3LCAweEUyLCAweDA1LAotCTB4RjQsIDB4MDUsIDB4RTcsIDB4MDcsIDB4Q0UsIDB4MDIsIDB4RjgsIDB4MDUsCi0JMHhDOCwgMHgwNywgMHhGMiwgMHgwNSwgMHhDMSwgMHgwNywgMHgwMCwgMHg4MCwKLQkweDUxLCAweEFGLCAweDk3LCAweENGLCAweDlGLCAweEFGLCAweDY2LCAweDA0LAotCTB4OUYsIDB4QUYsIDB4MUEsIDB4MDMsIDB4NTksIDB4QUYsIDB4OTcsIDB4Q0YsCi0JMHhDMCwgMHgwNywgMHgwRSwgMHgwMCwgMHhDMSwgMHgwQiwgMHgwQywgMHgwNiwKLQkweDQxLCAweEQxLCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LAotCTB4M0MsIDB4MDAsIDB4OUYsIDB4QUYsIDB4NDQsIDB4MDUsIDB4NjgsIDB4MDAsCi0JMHhDMCwgMHgwNywgMHgzQiwgMHgwMCwgMHg5RiwgMHhBRiwgMHg0NCwgMHgwNSwKLQkweDZGLCAweDAwLCAweDBDLCAweDA2LCAweDY4LCAweDAwLCAweEUwLCAweDA3LAotCTB4MDQsIDB4MDEsIDB4RTgsIDB4MEIsIDB4MEEsIDB4MDYsIDB4RTgsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHhFMCwgMHgwNywgMHgwMCwgMHgwMiwgMHhFMCwgMHgwNywKLQkweEVDLCAweDAxLCAweEUwLCAweDA3LCAweEZDLCAweEZGLCAweDk3LCAweENGLAotCTB4RTcsIDB4MDcsIDB4RkYsIDB4RkYsIDB4RkEsIDB4MDUsIDB4RUYsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgwQiwgMHgwNiwgMHhFNywgMHgwNywgMHgwRSwgMHgwNiwKLQkweDI0LCAweDAxLCAweEU3LCAweDA3LCAweDBFLCAweDA2LCAweEZFLCAweDA1LAotCTB4RTcsIDB4MDcsIDB4NDAsIDB4MDAsIDB4MjYsIDB4MDEsIDB4RTcsIDB4MDcsCi0JMHg0MCwgMHgwMCwgMHgwNCwgMHgwNiwgMHhFNywgMHgwNywgMHgwNywgMHgwMCwKLQkweDkyLCAweEMwLCAweDk3LCAweENGLCAweEVGLCAweDA3LCAweDAyLCAweDAwLAotCTB4MEIsIDB4MDYsIDB4OUYsIDB4QUYsIDB4NzgsIDB4MDEsIDB4RUYsIDB4NzcsCi0JMHg4MCwgMHgwMCwgMHgwNywgMHgwNiwgMHg5RiwgMHhDMCwgMHgxNCwgMHgwNCwKLQkweEVGLCAweDc3LCAweDAxLCAweDAwLCAweDA3LCAweDA2LCAweDM3LCAweEMwLAotCTB4RUYsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MEQsIDB4MDYsIDB4MEYsIDB4QzEsCi0JMHhFRiwgMHgwNywgMHgwMSwgMHgwMCwgMHgwRCwgMHgwNiwgMHhDMCwgMHgwNywKLQkweDAyLCAweDAwLCAweEMxLCAweDA3LCAweDMwLCAweDAwLCAweDlGLCAweEFGLAotCTB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MDEsIDB4MDAsIDB4QzEsIDB4MDcsCi0JMHgwMiwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDOCwgMHgwNywKLQkweEZGLCAweDRGLCAweDlGLCAweEFGLCAweEE4LCAweDA1LCAweEMwLCAweDA3LAotCTB4MzgsIDB4MDAsIDB4OUYsIDB4QUYsIDB4NDQsIDB4MDUsIDB4QzEsIDB4NzcsCi0JMHgwMywgMHgwMCwgMHgwMiwgMHhDMSwgMHgwOCwgMHhEQSwgMHg3NSwgMHhDMSwKLQkweEMxLCAweDc3LCAweDAxLCAweDAwLCAweDBBLCAweEMxLCAweEMwLCAweDA3LAotCTB4MDEsIDB4MDAsIDB4QzEsIDB4MDcsIDB4MDIsIDB4MDAsIDB4OUYsIDB4QUYsCi0JMHgyOCwgMHgwNSwgMHhFRiwgMHgwNywgMHgwMSwgMHgwMCwgMHgwNiwgMHgwNiwKLQkweDJDLCAweENGLCAweEMwLCAweDA3LCAweDAxLCAweDAwLCAweEMxLCAweDA3LAotCTB4MDQsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4RUYsIDB4MDcsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgwNiwgMHgyMiwgMHhDRiwgMHhFRiwgMHgwNywKLQkweDAwLCAweDAwLCAweDBELCAweDA2LCAweEVGLCAweDU3LCAweDAxLCAweDAwLAotCTB4MDYsIDB4MDYsIDB4MUIsIDB4QzAsIDB4QzAsIDB4MDcsIDB4MDEsIDB4MDAsCi0JMHhDMSwgMHgwNywgMHgwMSwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwKLQkweEMwLCAweDA3LCAweDAyLCAweDAwLCAweEMxLCAweDA3LCAweDMwLCAweDAwLAotCTB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzgsIDB4MDcsIDB4RkYsIDB4NEYsCi0JMHg5RiwgMHhBRiwgMHhBOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgzOCwgMHgwMCwKLQkweDlGLCAweEFGLCAweDQ0LCAweDA1LCAweEMxLCAweDY3LCAweDAzLCAweDAwLAotCTB4QzEsIDB4NTcsIDB4MDMsIDB4MDAsIDB4MDIsIDB4QzAsIDB4MDgsIDB4REEsCi0JMHg3MywgMHhDMSwgMHhDMCwgMHgwNywgMHgwMiwgMHgwMCwgMHhDMSwgMHgwNywKLQkweDEyLCAweDAwLCAweEVGLCAweDU3LCAweDAwLCAweDAwLCAweDA2LCAweDA2LAotCTB4MDIsIDB4QzAsIDB4QzEsIDB4MDcsIDB4MjMsIDB4MDAsIDB4OUYsIDB4QUYsCi0JMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgxNCwgMHgwMCwgMHhDMSwgMHgwQiwKLQkweEVBLCAweDA1LCAweDlGLCAweEFGLCAweDI4LCAweDA1LCAweEMwLCAweDA3LAotCTB4M0UsIDB4MDAsIDB4OUYsIDB4QUYsIDB4MEEsIDB4MDUsIDB4RTcsIDB4MDksCi0JMHhFNCwgMHgwNSwgMHhGQSwgMHgwNSwgMHgyNywgMHhEOCwgMHhGQSwgMHgwNSwKLQkweEU3LCAweDA3LCAweDBFLCAweDA2LCAweEZDLCAweDA1LCAweEU3LCAweDA3LAotCTB4NEUsIDB4MDYsIDB4MDAsIDB4MDYsIDB4RTcsIDB4MDcsIDB4NDAsIDB4MDAsCi0JMHgwMiwgMHgwNiwgMHg5RiwgMHhBRiwgMHg2NiwgMHgwNSwgMHg5RiwgMHhBRiwKLQkweEM2LCAweDAwLCAweDk3LCAweENGLCAweEMxLCAweDBCLCAweEUyLCAweDA1LAotCTB4NDEsIDB4RDAsIDB4MDEsIDB4RDIsIDB4QzEsIDB4MTcsIDB4MjMsIDB4MDAsCi0JMHg5RiwgMHhBRiwgMHhEQywgMHgwNCwgMHhDMCwgMHgwNywgMHgwNCwgMHgwMCwKLQkweEMxLCAweDBCLCAweEUzLCAweDA1LCAweDlGLCAweEFGLCAweDI4LCAweDA1LAotCTB4QzAsIDB4MDcsIDB4MDYsIDB4MDAsIDB4QzEsIDB4MDksIDB4RTYsIDB4MDUsCi0JMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywgMHgwNywgMHgwMCwKLQkweEMxLCAweDA5LCAweEU2LCAweDA1LCAweEMxLCAweEQxLCAweDlGLCAweEFGLAotCTB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MEIsIDB4MDAsIDB4QzEsIDB4MDksCi0JMHhFOCwgMHgwNSwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwgMHhDMCwgMHgwNywKLQkweDBDLCAweDAwLCAweEMxLCAweDA5LCAweEU4LCAweDA1LCAweEMxLCAweEQxLAotCTB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MEQsIDB4MDAsCi0JMHhDMSwgMHgwNywgMHgwOSwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwKLQkweEMwLCAweDA3LCAweDAzLCAweDAwLCAweEMxLCAweDA3LCAweDMyLCAweDAwLAotCTB4OUYsIDB4QUYsIDB4MjgsIDB4MDUsIDB4QzAsIDB4MDcsIDB4MEYsIDB4MDAsCi0JMHhDMSwgMHgwNywgMHgwMCwgMHgwMCwgMHg5RiwgMHhBRiwgMHgyOCwgMHgwNSwKLQkweDk3LCAweENGLCAweEU3LCAweDY3LCAweEZGLCAweEQ5LCAweDI0LCAweEMwLAotCTB4QzgsIDB4MDcsIDB4MEEsIDB4MDAsIDB4NDAsIDB4MDAsIDB4QzAsIDB4NjcsCi0JMHgwMCwgMHgwMiwgMHgyNywgMHg4MCwgMHgyNCwgMHhDMCwgMHhFNywgMHg4NywKLQkweDAwLCAweDA0LCAweDI0LCAweEMwLCAweEU3LCAweDY3LCAweEZGLCAweEY5LAotCTB4MjQsIDB4QzAsIDB4MDEsIDB4RDIsIDB4MDgsIDB4REEsIDB4NzIsIDB4QzEsCi0JMHhFNywgMHg4NywgMHgwMCwgMHgyMCwgMHgyNCwgMHhDMCwgMHg5NywgMHhDRiwKLQkweDI3LCAweDAwLCAweDFFLCAweEMwLCAweEU3LCAweDg3LCAweEZGLCAweDAwLAotCTB4MjIsIDB4QzAsIDB4RTcsIDB4NjcsIDB4N0YsIDB4RkYsIDB4MjQsIDB4QzAsCi0JMHhFNywgMHg4NywgMHg4MCwgMHgwMCwgMHgyNCwgMHhDMCwgMHhFNywgMHg4NywKLQkweDgwLCAweDAwLCAweDI0LCAweEMwLCAweDk3LCAweENGLCAweDlGLCAweEFGLAotCTB4MEEsIDB4MDUsIDB4NjcsIDB4MDAsIDB4MUUsIDB4QzAsIDB4RTcsIDB4NjcsCi0JMHhCRiwgMHhGRiwgMHgyNCwgMHhDMCwgMHhFNywgMHg4NywgMHg0MCwgMHgwMCwKLQkweDI0LCAweEMwLCAweEU3LCAweDg3LCAweDQwLCAweDAwLCAweDI0LCAweEMwLAotCTB4OTcsIDB4Q0YsIDB4OUYsIDB4QUYsIDB4MEEsIDB4MDUsIDB4RTcsIDB4NjcsCi0JMHgwMCwgMHhGRiwgMHgyMiwgMHhDMCwgMHhFNywgMHg2NywgMHhGRiwgMHhGRSwKLQkweDI0LCAweEMwLCAweEU3LCAweDY3LCAweEZGLCAweEZFLCAweDI0LCAweEMwLAotCTB4QzEsIDB4MDksIDB4MjAsIDB4QzAsIDB4RTcsIDB4ODcsIDB4MDAsIDB4MDEsCi0JMHgyNCwgMHhDMCwgMHg5NywgMHhDRiwgMHhDMCwgMHgwNywgMHg0MCwgMHgwMCwKLQkweEM4LCAweDA5LCAweEZDLCAweDA1LCAweEU3LCAweDY3LCAweDAwLCAweEZGLAotCTB4MjIsIDB4QzAsIDB4RTcsIDB4NjcsIDB4RkYsIDB4RkUsIDB4MjQsIDB4QzAsCi0JMHhFNywgMHg2NywgMHhCRiwgMHhGRiwgMHgyNCwgMHhDMCwgMHhFNywgMHg2NywKLQkweEJGLCAweEZGLCAweDI0LCAweEMwLCAweDAwLCAweERBLCAweEU4LCAweDA5LAotCTB4MjAsIDB4QzAsIDB4RTcsIDB4ODcsIDB4NDAsIDB4MDAsIDB4MjQsIDB4QzAsCi0JMHhFNywgMHg4NywgMHg0MCwgMHgwMCwgMHgyNCwgMHhDMCwgMHgwMCwgMHhEQSwKLQkweEU4LCAweDA5LCAweDIwLCAweEMwLCAweDZELCAweEMxLCAweEU3LCAweDg3LAotCTB4MDAsIDB4MDEsIDB4MjQsIDB4QzAsIDB4OTcsIDB4Q0YsIDB4RTcsIDB4MDcsCi0JMHgzMiwgMHgwMCwgMHgxMiwgMHhDMCwgMHhFNywgMHg3NywgMHgwMCwgMHg4MCwKLQkweDEyLCAweEMwLCAweDdDLCAweEMwLCAweDk3LCAweENGLCAweEU3LCAweDA3LAotCTB4MjAsIDB4NEUsIDB4MTIsIDB4QzAsIDB4RTcsIDB4NzcsIDB4MDAsIDB4ODAsCi0JMHgxMiwgMHhDMCwgMHg3QywgMHhDMCwgMHg5NywgMHhDRiwgMHgwOSwgMHgwMiwKLQkweDE5LCAweDAwLCAweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDk2LCAweDA5LAotCTB4MDQsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwNywgMHgwNSwgMHg4MSwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLQkweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc2V0dXA1W10gPSB7Ci0JMHhCNiwgMHhDMywgMHgyRiwgMHgwMSwgMHgwMywgMHg2NCwgMHgwRSwgMHgwMCwKLQkweDE0LCAweDAwLCAweDFBLCAweDAwLCAweDIwLCAweDAwLCAweDI2LCAweDAwLAotCTB4NEEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NkEsIDB4MDAsIDB4OTIsIDB4MDAsCi0JMHg5QSwgMHgwMCwgMHhBMCwgMHgwMCwgMHhCMiwgMHgwMCwgMHhCOCwgMHgwMCwKLQkweEJFLCAweDAwLCAweEMyLCAweDAwLCAweEM4LCAweDAwLCAweENFLCAweDAwLAotCTB4REMsIDB4MDAsIDB4REEsIDB4MDAsIDB4RTIsIDB4MDAsIDB4RTAsIDB4MDAsCi0JMHhFOCwgMHgwMCwgMHhFNiwgMHgwMCwgMHhFRSwgMHgwMCwgMHhFQywgMHgwMCwKLQkweEYyLCAweDAwLCAweEY4LCAweDAwLCAweDAyLCAweDAxLCAweDBBLCAweDAxLAotCTB4MEUsIDB4MDEsIDB4MTIsIDB4MDEsIDB4MUUsIDB4MDEsIDB4MjIsIDB4MDEsCi0JMHgyOCwgMHgwMSwgMHgyQywgMHgwMSwgMHgzMiwgMHgwMSwgMHgzNiwgMHgwMSwKLQkweDQ0LCAweDAxLCAweDUwLCAweDAxLCAweDVFLCAweDAxLCAweDcyLCAweDAxLAotCTB4NzYsIDB4MDEsIDB4N0EsIDB4MDEsIDB4ODAsIDB4MDEsIDB4ODgsIDB4MDEsCi0JMHg4QywgMHgwMSwgMHg5NCwgMHgwMSwgMHg5QywgMHgwMSwgMHhBMCwgMHgwMSwKLQkweEE0LCAweDAxLCAweEFBLCAweDAxLCAweEIwLCAweDAxLCAweEI0LCAweDAxLAotCTB4QkEsIDB4MDEsIDB4RDAsIDB4MDEsIDB4REEsIDB4MDEsIDB4RjYsIDB4MDEsCi0JMHhGQSwgMHgwMSwgMHgwMiwgMHgwMiwgMHgzNCwgMHgwMiwgMHgzQywgMHgwMiwKLQkweDQ0LCAweDAyLCAweDRBLCAweDAyLCAweDUwLCAweDAyLCAweDU2LCAweDAyLAotCTB4NzQsIDB4MDIsIDB4NzgsIDB4MDIsIDB4N0UsIDB4MDIsIDB4ODQsIDB4MDIsCi0JMHg4QSwgMHgwMiwgMHg4OCwgMHgwMiwgMHg5MCwgMHgwMiwgMHg4RSwgMHgwMiwKLQkweDk0LCAweDAyLCAweEEyLCAweDAyLCAweEE4LCAweDAyLCAweEFFLCAweDAyLAotCTB4QjQsIDB4MDIsIDB4QkEsIDB4MDIsIDB4QjgsIDB4MDIsIDB4QzAsIDB4MDIsCi0JMHhCRSwgMHgwMiwgMHhDNCwgMHgwMiwgMHhEMCwgMHgwMiwgMHhENCwgMHgwMiwKLQkweEUwLCAweDAyLCAweEU2LCAweDAyLCAweEVFLCAweDAyLCAweEY4LCAweDAyLAotCTB4RkMsIDB4MDIsIDB4MDYsIDB4MDMsIDB4MUUsIDB4MDMsIDB4MjQsIDB4MDMsCi0JMHgyOCwgMHgwMywgMHgzMCwgMHgwMywgMHgyRSwgMHgwMywgMHgzQywgMHgwMywKLQkweDRBLCAweDAzLCAweDRFLCAweDAzLCAweDU0LCAweDAzLCAweDU4LCAweDAzLAotCTB4NUUsIDB4MDMsIDB4NjYsIDB4MDMsIDB4NkUsIDB4MDMsIDB4N0EsIDB4MDMsCi0JMHg4NiwgMHgwMywgMHg4RSwgMHgwMywgMHg5NiwgMHgwMywgMHhCMiwgMHgwMywKLQkweEI4LCAweDAzLCAweEM2LCAweDAzLCAweENDLCAweDAzLCAweEQ0LCAweDAzLAotCTB4REEsIDB4MDMsIDB4RTgsIDB4MDMsIDB4RjQsIDB4MDMsIDB4RkMsIDB4MDMsCi0JMHgwNCwgMHgwNCwgMHgyMCwgMHgwNCwgMHgyQSwgMHgwNCwgMHgzMiwgMHgwNCwKLQkweDM2LCAweDA0LCAweDNFLCAweDA0LCAweDQ0LCAweDA0LCAweDQyLCAweDA0LAotCTB4NDgsIDB4MDQsIDB4NEUsIDB4MDQsIDB4NEMsIDB4MDQsIDB4NTQsIDB4MDQsCi0JMHg1MiwgMHgwNCwgMHg1QSwgMHgwNCwgMHg1RSwgMHgwNCwgMHg2MiwgMHgwNCwKLQkweDY4LCAweDA0LCAweDc0LCAweDA0LCAweDdDLCAweDA0LCAweDgwLCAweDA0LAotCTB4ODgsIDB4MDQsIDB4OEMsIDB4MDQsIDB4OTQsIDB4MDQsIDB4OUEsIDB4MDQsCi0JMHhBMiwgMHgwNCwgMHhBNiwgMHgwNCwgMHhBRSwgMHgwNCwgMHhCNCwgMHgwNCwKLQkweEMwLCAweDA0LCAweENDLCAweDA0LCAweEQ4LCAweDA0LCAweDJBLCAweDA1LAotCTB4NDYsIDB4MDUsIDB4NkMsIDB4MDUsIDB4MDAsIDB4MDAKLX07Ci0KIC8qIHJ2bWFsbG9jIC8gcnZmcmVlIGNvcGllZCBmcm9tIHVzYnZpZGVvLmMKICAqCiAgKiBOb3Qgc3VyZSB3aHkgdGhlc2UgYXJlIG5vdCB5ZXQgbm9uLXN0YXRpY3Mgd2hpY2ggSSBjYW4gcmVmZXJlbmNlIHRocm91Z2gKQEAgLTQ2NCwyOCArMTg4LDI4IEBACiBzdGF0aWMgaW50CiBpbml0aWFsaXplX2NhbWVyYShzdHJ1Y3QgdmljYW1fY2FtZXJhICpjYW0pCiB7Ci0JY29uc3Qgc3RydWN0IHsKLQkJdTggKmRhdGE7Ci0JCXUzMiBzaXplOwotCX0gZmlybXdhcmVbXSA9IHsKLQkJeyAuZGF0YSA9IHNldHVwMSwgLnNpemUgPSBzaXplb2Yoc2V0dXAxKSB9LAotCQl7IC5kYXRhID0gc2V0dXAyLCAuc2l6ZSA9IHNpemVvZihzZXR1cDIpIH0sCi0JCXsgLmRhdGEgPSBzZXR1cDMsIC5zaXplID0gc2l6ZW9mKHNldHVwMykgfSwKLQkJeyAuZGF0YSA9IHNldHVwNCwgLnNpemUgPSBzaXplb2Yoc2V0dXA0KSB9LAotCQl7IC5kYXRhID0gc2V0dXA1LCAuc2l6ZSA9IHNpemVvZihzZXR1cDUpIH0sCi0JCXsgLmRhdGEgPSBzZXR1cDMsIC5zaXplID0gc2l6ZW9mKHNldHVwMykgfSwKLQkJeyAuZGF0YSA9IE5VTEwsIC5zaXplID0gMCB9Ci0JfTsKKwlpbnQgZXJyOworCWNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAKLQlpbnQgZXJyLCBpOworCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsICJ2aWNhbS9maXJtd2FyZS5mdyIsICZjYW0tPnVkZXYtPmRldik7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIFwidmljYW0vZmlybXdhcmUuZndcIjogJWRcbiIsCisJCSAgICAgICBlcnIpOworCQlyZXR1cm4gZXJyOworCX0KIAotCWZvciAoaSA9IDAsIGVyciA9IDA7IGZpcm13YXJlW2ldLmRhdGEgJiYgIWVycjsgaSsrKSB7Ci0JCW1lbWNweShjYW0tPmNudHJsYnVmLCBmaXJtd2FyZVtpXS5kYXRhLCBmaXJtd2FyZVtpXS5zaXplKTsKKwlmb3IgKHJlYyA9ICh2b2lkICopZnctPmRhdGE7IHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCW1lbWNweShjYW0tPmNudHJsYnVmLCByZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSk7CiAKIAkJZXJyID0gc2VuZF9jb250cm9sX21zZyhjYW0sIDB4ZmYsIDAsIDAsCi0JCQkJICAgICAgIGNhbS0+Y250cmxidWYsIGZpcm13YXJlW2ldLnNpemUpOworCQkJCSAgICAgICBjYW0tPmNudHJsYnVmLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOworCQlpZiAoZXJyKQorCQkJYnJlYWs7CiAJfQogCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CisKIAlyZXR1cm4gZXJyOwogfQogCkBAIC0xMjI2LDMgKzk1MCw0IEBACiBNT0RVTEVfQVVUSE9SKERSSVZFUl9BVVRIT1IpOwogTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgidmljYW0vZmlybXdhcmUuZnciKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY4YzE5OQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL01ha2VmaWxlCkBAIC0wLDAgKzEsMyBAQAordXZjdmlkZW8tb2JqcyAgOj0gdXZjX2RyaXZlci5vIHV2Y19xdWV1ZS5vIHV2Y192NGwyLm8gdXZjX3ZpZGVvLm8gdXZjX2N0cmwubyBcCisJCSAgdXZjX3N0YXR1cy5vIHV2Y19pc2lnaHQubworb2JqLSQoQ09ORklHX1VTQl9WSURFT19DTEFTUykgKz0gdXZjdmlkZW8ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2N0cmwuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19jdHJsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBlZTQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19jdHJsLmMKQEAgLTAsMCArMSwxMjU2IEBACisvKgorICogICAgICB1dmNfY3RybC5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIENvbnRyb2xzCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgorI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisjZGVmaW5lIFVWQ19DVFJMX05EQVRBCQkyCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVAkwCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfQkFDS1VQCTEKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBDb250cm9sLCBmb3JtYXRzLCAuLi4KKyAqLworCitzdGF0aWMgc3RydWN0IHV2Y19jb250cm9sX2luZm8gdXZjX2N0cmxzW10gPSB7CisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9CUklHSFRORVNTX0NPTlRST0wsCisJCS5pbmRleAkJPSAwLAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfQ09OVFJBU1RfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDEsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9IVUVfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDIsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFIHwgVVZDX0NPTlRST0xfQVVUT19VUERBVEUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1NBVFVSQVRJT05fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDMsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9TSEFSUE5FU1NfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDQsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9HQU1NQV9DT05UUk9MLAorCQkuaW5kZXgJCT0gNSwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0JBQ0tMSUdIVF9DT01QRU5TQVRJT05fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDgsCisJCS5zaXplCQk9IDIsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX1JBTkdFCisJCQkJfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9HQUlOX0NPTlRST0wsCisJCS5pbmRleAkJPSA5LAorCQkuc2l6ZQkJPSAyLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfUE9XRVJfTElORV9GUkVRVUVOQ1lfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDEwLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfSFVFX0FVVE9fQ09OVFJPTCwKKwkJLmluZGV4CQk9IDExLAorCQkuc2l6ZQkJPSAxLAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9DVVIKKwkJCQl8IFVWQ19DT05UUk9MX0dFVF9ERUYgfCBVVkNfQ09OVFJPTF9SRVNUT1JFLAorCX0sCisJeworCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0FFX01PREVfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDEsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfR0VUX0RFRiB8IFVWQ19DT05UUk9MX0dFVF9SRVMKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfQUVfUFJJT1JJVFlfQ09OVFJPTCwKKwkJLmluZGV4CQk9IDIsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9FWFBPU1VSRV9USU1FX0FCU09MVVRFX0NPTlRST0wsCisJCS5pbmRleAkJPSAzLAorCQkuc2l6ZQkJPSA0LAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9GT0NVU19BQlNPTFVURV9DT05UUk9MLAorCQkuaW5kZXgJCT0gNSwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUgfCBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9GT0NVU19BVVRPX0NPTlRST0wsCisJCS5pbmRleAkJPSAxNywKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9HRVRfREVGIHwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9BVVRPX0NPTlRST0wsCisJCS5pbmRleAkJPSAxMiwKKwkJLnNpemUJCT0gMSwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfQ1VSCisJCQkJfCBVVkNfQ09OVFJPTF9HRVRfREVGIHwgVVZDX0NPTlRST0xfUkVTVE9SRSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9DT05UUk9MLAorCQkuaW5kZXgJCT0gNiwKKwkJLnNpemUJCT0gMiwKKwkJLmZsYWdzCQk9IFVWQ19DT05UUk9MX1NFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfUkFOR0UKKwkJCQl8IFVWQ19DT05UUk9MX1JFU1RPUkUgfCBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSwKKwl9LAorCXsKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQVVUT19DT05UUk9MLAorCQkuaW5kZXgJCT0gMTMsCisJCS5zaXplCQk9IDEsCisJCS5mbGFncwkJPSBVVkNfQ09OVFJPTF9TRVRfQ1VSIHwgVVZDX0NPTlRST0xfR0VUX0NVUgorCQkJCXwgVVZDX0NPTlRST0xfR0VUX0RFRiB8IFVWQ19DT05UUk9MX1JFU1RPUkUsCisJfSwKKwl7CisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0NPTlRST0wsCisJCS5pbmRleAkJPSA3LAorCQkuc2l6ZQkJPSA0LAorCQkuZmxhZ3MJCT0gVVZDX0NPTlRST0xfU0VUX0NVUiB8IFVWQ19DT05UUk9MX0dFVF9SQU5HRQorCQkJCXwgVVZDX0NPTlRST0xfUkVTVE9SRSB8IFVWQ19DT05UUk9MX0FVVE9fVVBEQVRFLAorCX0sCit9OworCitzdGF0aWMgc3RydWN0IHV2Y19tZW51X2luZm8gcG93ZXJfbGluZV9mcmVxdWVuY3lfY29udHJvbHNbXSA9IHsKKwl7IDAsICJEaXNhYmxlZCIgfSwKKwl7IDEsICI1MCBIeiIgfSwKKwl7IDIsICI2MCBIeiIgfSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXZjX21lbnVfaW5mbyBleHBvc3VyZV9hdXRvX2NvbnRyb2xzW10gPSB7CisJeyAxLCAiTWFudWFsIE1vZGUiIH0sCisJeyAyLCAiQXV0byBNb2RlIiB9LAorCXsgNCwgIlNodXR0ZXIgUHJpb3JpdHkgTW9kZSIgfSwKKwl7IDgsICJBcGVydHVyZSBQcmlvcml0eSBNb2RlIiB9LAorfTsKKworc3RhdGljIHN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nIHV2Y19jdHJsX21hcHBpbmdzW10gPSB7CisJeworCQkuaWQJCT0gVjRMMl9DSURfQlJJR0hUTkVTUywKKwkJLm5hbWUJCT0gIkJyaWdodG5lc3MiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9CUklHSFRORVNTX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0NPTlRSQVNULAorCQkubmFtZQkJPSAiQ29udHJhc3QiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9DT05UUkFTVF9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0hVRSwKKwkJLm5hbWUJCT0gIkh1ZSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0hVRV9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9TQVRVUkFUSU9OLAorCQkubmFtZQkJPSAiU2F0dXJhdGlvbiIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1NBVFVSQVRJT05fQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9TSEFSUE5FU1MsCisJCS5uYW1lCQk9ICJTaGFycG5lc3MiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9TSEFSUE5FU1NfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9HQU1NQSwKKwkJLm5hbWUJCT0gIkdhbW1hIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfR0FNTUFfQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9CQUNLTElHSFRfQ09NUEVOU0FUSU9OLAorCQkubmFtZQkJPSAiQmFja2xpZ2h0IENvbXBlbnNhdGlvbiIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0JBQ0tMSUdIVF9DT01QRU5TQVRJT05fQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9HQUlOLAorCQkubmFtZQkJPSAiR2FpbiIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0dBSU5fQ09OVFJPTCwKKwkJLnNpemUJCT0gMTYsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0lOVEVHRVIsCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfVU5TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9QT1dFUl9MSU5FX0ZSRVFVRU5DWSwKKwkJLm5hbWUJCT0gIlBvd2VyIExpbmUgRnJlcXVlbmN5IiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORywKKwkJLnNlbGVjdG9yCT0gUFVfUE9XRVJfTElORV9GUkVRVUVOQ1lfQ09OVFJPTCwKKwkJLnNpemUJCT0gMiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfTUVOVSwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9FTlVNLAorCQkubWVudV9pbmZvCT0gcG93ZXJfbGluZV9mcmVxdWVuY3lfY29udHJvbHMsCisJCS5tZW51X2NvdW50CT0gQVJSQVlfU0laRShwb3dlcl9saW5lX2ZyZXF1ZW5jeV9jb250cm9scyksCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9IVUVfQVVUTywKKwkJLm5hbWUJCT0gIkh1ZSwgQXV0byIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX0hVRV9BVVRPX0NPTlRST0wsCisJCS5zaXplCQk9IDEsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0JPT0xFQU4sCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTiwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0VYUE9TVVJFX0FVVE8sCisJCS5uYW1lCQk9ICJFeHBvc3VyZSwgQXV0byIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfQUVfTU9ERV9DT05UUk9MLAorCQkuc2l6ZQkJPSA0LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9NRU5VLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX0JJVE1BU0ssCisJCS5tZW51X2luZm8JPSBleHBvc3VyZV9hdXRvX2NvbnRyb2xzLAorCQkubWVudV9jb3VudAk9IEFSUkFZX1NJWkUoZXhwb3N1cmVfYXV0b19jb250cm9scyksCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9FWFBPU1VSRV9BVVRPX1BSSU9SSVRZLAorCQkubmFtZQkJPSAiRXhwb3N1cmUsIEF1dG8gUHJpb3JpdHkiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0FFX1BSSU9SSVRZX0NPTlRST0wsCisJCS5zaXplCQk9IDEsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0JPT0xFQU4sCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTiwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0VYUE9TVVJFX0FCU09MVVRFLAorCQkubmFtZQkJPSAiRXhwb3N1cmUgKEFic29sdXRlKSIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX0NBTUVSQSwKKwkJLnNlbGVjdG9yCT0gQ1RfRVhQT1NVUkVfVElNRV9BQlNPTFVURV9DT05UUk9MLAorCQkuc2l6ZQkJPSAzMiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRCwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0FVVE9fV0hJVEVfQkFMQU5DRSwKKwkJLm5hbWUJCT0gIldoaXRlIEJhbGFuY2UgVGVtcGVyYXR1cmUsIEF1dG8iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0FVVE9fQ09OVFJPTCwKKwkJLnNpemUJCT0gMSwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfQk9PTEVBTiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOLAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRSwKKwkJLm5hbWUJCT0gIldoaXRlIEJhbGFuY2UgVGVtcGVyYXR1cmUiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfQVVUT19XSElURV9CQUxBTkNFLAorCQkubmFtZQkJPSAiV2hpdGUgQmFsYW5jZSBDb21wb25lbnQsIEF1dG8iLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9BVVRPX0NPTlRST0wsCisJCS5zaXplCQk9IDEsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0JPT0xFQU4sCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTiwKKwl9LAorCXsKKwkJLmlkCQk9IFY0TDJfQ0lEX0JMVUVfQkFMQU5DRSwKKwkJLm5hbWUJCT0gIldoaXRlIEJhbGFuY2UgQmx1ZSBDb21wb25lbnQiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19QUk9DRVNTSU5HLAorCQkuc2VsZWN0b3IJPSBQVV9XSElURV9CQUxBTkNFX0NPTVBPTkVOVF9DT05UUk9MLAorCQkuc2l6ZQkJPSAxNiwKKwkJLm9mZnNldAkJPSAwLAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9SRURfQkFMQU5DRSwKKwkJLm5hbWUJCT0gIldoaXRlIEJhbGFuY2UgUmVkIENvbXBvbmVudCIsCisJCS5lbnRpdHkJCT0gVVZDX0dVSURfVVZDX1BST0NFU1NJTkcsCisJCS5zZWxlY3Rvcgk9IFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDE2LAorCQkudjRsMl90eXBlCT0gVjRMMl9DVFJMX1RZUEVfSU5URUdFUiwKKwkJLmRhdGFfdHlwZQk9IFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQsCisJfSwKKwl7CisJCS5pZAkJPSBWNEwyX0NJRF9GT0NVU19BQlNPTFVURSwKKwkJLm5hbWUJCT0gIkZvY3VzIChhYnNvbHV0ZSkiLAorCQkuZW50aXR5CQk9IFVWQ19HVUlEX1VWQ19DQU1FUkEsCisJCS5zZWxlY3Rvcgk9IENUX0ZPQ1VTX0FCU09MVVRFX0NPTlRST0wsCisJCS5zaXplCQk9IDE2LAorCQkub2Zmc2V0CQk9IDAsCisJCS52NGwyX3R5cGUJPSBWNEwyX0NUUkxfVFlQRV9JTlRFR0VSLAorCQkuZGF0YV90eXBlCT0gVVZDX0NUUkxfREFUQV9UWVBFX1VOU0lHTkVELAorCX0sCisJeworCQkuaWQJCT0gVjRMMl9DSURfRk9DVVNfQVVUTywKKwkJLm5hbWUJCT0gIkZvY3VzLCBBdXRvIiwKKwkJLmVudGl0eQkJPSBVVkNfR1VJRF9VVkNfQ0FNRVJBLAorCQkuc2VsZWN0b3IJPSBDVF9GT0NVU19BVVRPX0NPTlRST0wsCisJCS5zaXplCQk9IDEsCisJCS5vZmZzZXQJCT0gMCwKKwkJLnY0bDJfdHlwZQk9IFY0TDJfQ1RSTF9UWVBFX0JPT0xFQU4sCisJCS5kYXRhX3R5cGUJPSBVVkNfQ1RSTF9EQVRBX1RZUEVfQk9PTEVBTiwKKwl9LAorfTsKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBVdGlsaXR5IGZ1bmN0aW9ucworICovCisKK3N0YXRpYyBpbmxpbmUgX191OCAqdXZjX2N0cmxfZGF0YShzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmwsIGludCBpZCkKK3sKKwlyZXR1cm4gY3RybC0+ZGF0YSArIGlkICogY3RybC0+aW5mby0+c2l6ZTsKK30KKworc3RhdGljIGlubGluZSBpbnQgdXZjX2dldF9iaXQoY29uc3QgX191OCAqZGF0YSwgaW50IGJpdCkKK3sKKwlyZXR1cm4gKGRhdGFbYml0ID4+IDNdID4+IChiaXQgJiA3KSkgJiAxOworfQorCisvKiBFeHRyYWN0IHRoZSBiaXQgc3RyaW5nIHNwZWNpZmllZCBieSBtYXBwaW5nLT5vZmZzZXQgYW5kIG1hcHBpbmctPnNpemUKKyAqIGZyb20gdGhlIGxpdHRsZS1lbmRpYW4gZGF0YSBzdG9yZWQgYXQgJ2RhdGEnIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcworICogYSBzaWduZWQgMzJiaXQgaW50ZWdlci4gU2lnbiBleHRlbnNpb24gd2lsbCBiZSBwZXJmb3JtZWQgaWYgdGhlIG1hcHBpbmcKKyAqIHJlZmVyZW5jZXMgYSBzaWduZWQgZGF0YSB0eXBlLgorICovCitzdGF0aWMgX19zMzIgdXZjX2dldF9sZV92YWx1ZShjb25zdCBfX3U4ICpkYXRhLAorCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nKQoreworCWludCBiaXRzID0gbWFwcGluZy0+c2l6ZTsKKwlpbnQgb2Zmc2V0ID0gbWFwcGluZy0+b2Zmc2V0OworCV9fczMyIHZhbHVlID0gMDsKKwlfX3U4IG1hc2s7CisKKwlkYXRhICs9IG9mZnNldCAvIDg7CisJb2Zmc2V0ICY9IDc7CisJbWFzayA9ICgoMUxMIDw8IGJpdHMpIC0gMSkgPDwgb2Zmc2V0OworCisJZm9yICg7IGJpdHMgPiAwOyBkYXRhKyspIHsKKwkJX191OCBieXRlID0gKmRhdGEgJiBtYXNrOworCQl2YWx1ZSB8PSBvZmZzZXQgPiAwID8gKGJ5dGUgPj4gb2Zmc2V0KSA6IChieXRlIDw8ICgtb2Zmc2V0KSk7CisJCWJpdHMgLT0gOCAtIChvZmZzZXQgPiAwID8gb2Zmc2V0IDogMCk7CisJCW9mZnNldCAtPSA4OworCQltYXNrID0gKDEgPDwgYml0cykgLSAxOworCX0KKworCS8qIFNpZ24tZXh0ZW5kIHRoZSB2YWx1ZSBpZiBuZWVkZWQgKi8KKwlpZiAobWFwcGluZy0+ZGF0YV90eXBlID09IFVWQ19DVFJMX0RBVEFfVFlQRV9TSUdORUQpCisJCXZhbHVlIHw9IC0odmFsdWUgJiAoMSA8PCAobWFwcGluZy0+c2l6ZSAtIDEpKSk7CisKKwlyZXR1cm4gdmFsdWU7Cit9CisKKy8qIFNldCB0aGUgYml0IHN0cmluZyBzcGVjaWZpZWQgYnkgbWFwcGluZy0+b2Zmc2V0IGFuZCBtYXBwaW5nLT5zaXplCisgKiBpbiB0aGUgbGl0dGxlLWVuZGlhbiBkYXRhIHN0b3JlZCBhdCAnZGF0YScgdG8gdGhlIHZhbHVlICd2YWx1ZScuCisgKi8KK3N0YXRpYyB2b2lkIHV2Y19zZXRfbGVfdmFsdWUoX19zMzIgdmFsdWUsIF9fdTggKmRhdGEsCisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmcpCit7CisJaW50IGJpdHMgPSBtYXBwaW5nLT5zaXplOworCWludCBvZmZzZXQgPSBtYXBwaW5nLT5vZmZzZXQ7CisJX191OCBtYXNrOworCisJZGF0YSArPSBvZmZzZXQgLyA4OworCW9mZnNldCAmPSA3OworCisJZm9yICg7IGJpdHMgPiAwOyBkYXRhKyspIHsKKwkJbWFzayA9ICgoMUxMIDw8IGJpdHMpIC0gMSkgPDwgb2Zmc2V0OworCQkqZGF0YSA9ICgqZGF0YSAmIH5tYXNrKSB8ICgodmFsdWUgPDwgb2Zmc2V0KSAmIG1hc2spOworCQl2YWx1ZSA+Pj0gb2Zmc2V0ID8gb2Zmc2V0IDogODsKKwkJYml0cyAtPSA4IC0gb2Zmc2V0OworCQlvZmZzZXQgPSAwOworCX0KK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBUZXJtaW5hbCBhbmQgdW5pdCBtYW5hZ2VtZW50CisgKi8KKworc3RhdGljIGNvbnN0IF9fdTggdXZjX3Byb2Nlc3NpbmdfZ3VpZFsxNl0gPSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORzsKK3N0YXRpYyBjb25zdCBfX3U4IHV2Y19jYW1lcmFfZ3VpZFsxNl0gPSBVVkNfR1VJRF9VVkNfQ0FNRVJBOworc3RhdGljIGNvbnN0IF9fdTggdXZjX21lZGlhX3RyYW5zcG9ydF9pbnB1dF9ndWlkWzE2XSA9CisJVVZDX0dVSURfVVZDX01FRElBX1RSQU5TUE9SVF9JTlBVVDsKKworc3RhdGljIGludCB1dmNfZW50aXR5X21hdGNoX2d1aWQoc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSwgX191OCBndWlkWzE2XSkKK3sKKwlzd2l0Y2ggKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpKSB7CisJY2FzZSBJVFRfQ0FNRVJBOgorCQlyZXR1cm4gbWVtY21wKHV2Y19jYW1lcmFfZ3VpZCwgZ3VpZCwgMTYpID09IDA7CisKKwljYXNlIElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQ6CisJCXJldHVybiBtZW1jbXAodXZjX21lZGlhX3RyYW5zcG9ydF9pbnB1dF9ndWlkLCBndWlkLCAxNikgPT0gMDsKKworCWNhc2UgVkNfUFJPQ0VTU0lOR19VTklUOgorCQlyZXR1cm4gbWVtY21wKHV2Y19wcm9jZXNzaW5nX2d1aWQsIGd1aWQsIDE2KSA9PSAwOworCisJY2FzZSBWQ19FWFRFTlNJT05fVU5JVDoKKwkJcmV0dXJuIG1lbWNtcChlbnRpdHktPmV4dGVuc2lvbi5ndWlkRXh0ZW5zaW9uQ29kZSwKKwkJCSAgICAgIGd1aWQsIDE2KSA9PSAwOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIDA7CisJfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVWQyBDb250cm9scworICovCisKK3N0YXRpYyB2b2lkIF9fdXZjX2ZpbmRfY29udHJvbChzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5LCBfX3UzMiB2NGwyX2lkLAorCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICoqbWFwcGluZywgc3RydWN0IHV2Y19jb250cm9sICoqY29udHJvbCwKKwlpbnQgbmV4dCkKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcDsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmIChlbnRpdHkgPT0gTlVMTCkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpIHsKKwkJY3RybCA9ICZlbnRpdHktPmNvbnRyb2xzW2ldOworCQlpZiAoY3RybC0+aW5mbyA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShtYXAsICZjdHJsLT5pbmZvLT5tYXBwaW5ncywgbGlzdCkgeworCQkJaWYgKChtYXAtPmlkID09IHY0bDJfaWQpICYmICFuZXh0KSB7CisJCQkJKmNvbnRyb2wgPSBjdHJsOworCQkJCSptYXBwaW5nID0gbWFwOworCQkJCXJldHVybjsKKwkJCX0KKworCQkJaWYgKCgqbWFwcGluZyA9PSBOVUxMIHx8ICgqbWFwcGluZyktPmlkID4gbWFwLT5pZCkgJiYKKwkJCSAgICAobWFwLT5pZCA+IHY0bDJfaWQpICYmIG5leHQpIHsKKwkJCQkqY29udHJvbCA9IGN0cmw7CisJCQkJKm1hcHBpbmcgPSBtYXA7CisJCQl9CisJCX0KKwl9Cit9CisKK3N0cnVjdCB1dmNfY29udHJvbCAqdXZjX2ZpbmRfY29udHJvbChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJX191MzIgdjRsMl9pZCwgc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKiptYXBwaW5nKQoreworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybCA9IE5VTEw7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwlpbnQgbmV4dCA9IHY0bDJfaWQgJiBWNEwyX0NUUkxfRkxBR19ORVhUX0NUUkw7CisKKwkqbWFwcGluZyA9IE5VTEw7CisKKwkvKiBNYXNrIHRoZSBxdWVyeSBmbGFncy4gKi8KKwl2NGwyX2lkICY9IFY0TDJfQ1RSTF9JRF9NQVNLOworCisJLyogRmluZCB0aGUgY29udHJvbC4gKi8KKwlfX3V2Y19maW5kX2NvbnRyb2wodmlkZW8tPnByb2Nlc3NpbmcsIHY0bDJfaWQsIG1hcHBpbmcsICZjdHJsLCBuZXh0KTsKKwlpZiAoY3RybCAmJiAhbmV4dCkKKwkJcmV0dXJuIGN0cmw7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJnZpZGVvLT5pdGVybXMsIGNoYWluKSB7CisJCV9fdXZjX2ZpbmRfY29udHJvbChlbnRpdHksIHY0bDJfaWQsIG1hcHBpbmcsICZjdHJsLCBuZXh0KTsKKwkJaWYgKGN0cmwgJiYgIW5leHQpCisJCQlyZXR1cm4gY3RybDsKKwl9CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJnZpZGVvLT5leHRlbnNpb25zLCBjaGFpbikgeworCQlfX3V2Y19maW5kX2NvbnRyb2woZW50aXR5LCB2NGwyX2lkLCBtYXBwaW5nLCAmY3RybCwgbmV4dCk7CisJCWlmIChjdHJsICYmICFuZXh0KQorCQkJcmV0dXJuIGN0cmw7CisJfQorCisJaWYgKGN0cmwgPT0gTlVMTCAmJiAhbmV4dCkKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ29udHJvbCAweCUwOHggbm90IGZvdW5kLlxuIiwKKwkJCQl2NGwyX2lkKTsKKworCXJldHVybiBjdHJsOworfQorCitpbnQgdXZjX3F1ZXJ5X3Y0bDJfY3RybChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfcXVlcnljdHJsICp2NGwyX2N0cmwpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nOworCXN0cnVjdCB1dmNfbWVudV9pbmZvICptZW51OworCXVuc2lnbmVkIGludCBpOworCV9fdTggZGF0YVs4XTsKKwlpbnQgcmV0OworCisJY3RybCA9IHV2Y19maW5kX2NvbnRyb2wodmlkZW8sIHY0bDJfY3RybC0+aWQsICZtYXBwaW5nKTsKKwlpZiAoY3RybCA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXY0bDJfY3RybC0+aWQgPSBtYXBwaW5nLT5pZDsKKwl2NGwyX2N0cmwtPnR5cGUgPSBtYXBwaW5nLT52NGwyX3R5cGU7CisJc3RybmNweSh2NGwyX2N0cmwtPm5hbWUsIG1hcHBpbmctPm5hbWUsIHNpemVvZiB2NGwyX2N0cmwtPm5hbWUpOworCXY0bDJfY3RybC0+ZmxhZ3MgPSAwOworCisJaWYgKCEoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9TRVRfQ1VSKSkKKwkJdjRsMl9jdHJsLT5mbGFncyB8PSBWNEwyX0NUUkxfRkxBR19SRUFEX09OTFk7CisKKwlpZiAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfREVGKSB7CisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX0RFRiwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQkmZGF0YSwgY3RybC0+aW5mby0+c2l6ZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXY0bDJfY3RybC0+ZGVmYXVsdF92YWx1ZSA9IHV2Y19nZXRfbGVfdmFsdWUoZGF0YSwgbWFwcGluZyk7CisJfQorCisJaWYgKG1hcHBpbmctPnY0bDJfdHlwZSA9PSBWNEwyX0NUUkxfVFlQRV9NRU5VKSB7CisJCXY0bDJfY3RybC0+bWluaW11bSA9IDA7CisJCXY0bDJfY3RybC0+bWF4aW11bSA9IG1hcHBpbmctPm1lbnVfY291bnQgLSAxOworCQl2NGwyX2N0cmwtPnN0ZXAgPSAxOworCisJCW1lbnUgPSBtYXBwaW5nLT5tZW51X2luZm87CisJCWZvciAoaSA9IDA7IGkgPCBtYXBwaW5nLT5tZW51X2NvdW50OyArK2ksICsrbWVudSkgeworCQkJaWYgKG1lbnUtPnZhbHVlID09IHY0bDJfY3RybC0+ZGVmYXVsdF92YWx1ZSkgeworCQkJCXY0bDJfY3RybC0+ZGVmYXVsdF92YWx1ZSA9IGk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9HRVRfTUlOKSB7CisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX01JTiwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQkmZGF0YSwgY3RybC0+aW5mby0+c2l6ZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisJCXY0bDJfY3RybC0+bWluaW11bSA9IHV2Y19nZXRfbGVfdmFsdWUoZGF0YSwgbWFwcGluZyk7CisJfQorCWlmIChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9NQVgpIHsKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfTUFYLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJCXZpZGVvLT5kZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCSZkYXRhLCBjdHJsLT5pbmZvLT5zaXplKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJdjRsMl9jdHJsLT5tYXhpbXVtID0gdXZjX2dldF9sZV92YWx1ZShkYXRhLCBtYXBwaW5nKTsKKwl9CisJaWYgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfR0VUX1JFUykgeworCQlpZiAoKHJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9SRVMsIGN0cmwtPmVudGl0eS0+aWQsCisJCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJJmRhdGEsIGN0cmwtPmluZm8tPnNpemUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCQl2NGwyX2N0cmwtPnN0ZXAgPSB1dmNfZ2V0X2xlX3ZhbHVlKGRhdGEsIG1hcHBpbmcpOworCX0KKworCXJldHVybiAwOworfQorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBDb250cm9sIHRyYW5zYWN0aW9ucworICoKKyAqIFRvIG1ha2UgZXh0ZW5kZWQgc2V0IG9wZXJhdGlvbnMgYXMgYXRvbWljIGFzIHRoZSBoYXJkd2FyZSBhbGxvd3MsIGNvbnRyb2xzCisgKiBhcmUgaGFuZGxlZCB1c2luZyBiZWdpbi9jb21taXQvcm9sbGJhY2sgb3BlcmF0aW9ucy4KKyAqCisgKiBBdCB0aGUgYmVnaW5uaW5nIG9mIGEgc2V0IHJlcXVlc3QsIHV2Y19jdHJsX2JlZ2luIHNob3VsZCBiZSBjYWxsZWQgdG8KKyAqIGluaXRpYWxpemUgdGhlIHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgdGhlIGNvbnRyb2wgbG9jay4KKyAqCisgKiBXaGVuIHNldHRpbmcgYSBjb250cm9sLCB0aGUgbmV3IHZhbHVlIGlzIHN0b3JlZCBpbiB0aGUgY29udHJvbCBkYXRhIGZpZWxkCisgKiBhdCBwb3NpdGlvbiBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQuIFRoZSBjb250cm9sIGlzIHRoZW4gbWFya2VkIGFzIGRpcnR5IGZvcgorICogbGF0ZXIgcHJvY2Vzc2luZy4gSWYgdGhlIFVWQyBhbmQgVjRMMiBjb250cm9sIHNpemVzIGRpZmZlciwgdGhlIGN1cnJlbnQKKyAqIHZhbHVlIGlzIGxvYWRlZCBmcm9tIHRoZSBoYXJkd2FyZSBiZWZvcmUgc3RvcmluZyB0aGUgbmV3IHZhbHVlIGluIHRoZSBkYXRhCisgKiBmaWVsZC4KKyAqCisgKiBBZnRlciBwcm9jZXNzaW5nIGFsbCBjb250cm9scyBpbiB0aGUgdHJhbnNhY3Rpb24sIHV2Y19jdHJsX2NvbW1pdCBvcgorICogdXZjX2N0cmxfcm9sbGJhY2sgbXVzdCBiZSBjYWxsZWQgdG8gYXBwbHkgdGhlIHBlbmRpbmcgY2hhbmdlcyB0byB0aGUKKyAqIGhhcmR3YXJlIG9yIHJldmVydCB0aGVtLiBXaGVuIGFwcGx5aW5nIGNoYW5nZXMsIGFsbCBjb250cm9scyBtYXJrZWQgYXMKKyAqIGRpcnR5IHdpbGwgYmUgbW9kaWZpZWQgaW4gdGhlIFVWQyBkZXZpY2UsIGFuZCB0aGUgZGlydHkgZmxhZyB3aWxsIGJlCisgKiBjbGVhcmVkLiBXaGVuIHJldmVydGluZyBjb250cm9scywgdGhlIGNvbnRyb2wgZGF0YSBmaWVsZAorICogVVZDX0NUUkxfREFUQV9DVVJSRU5UIGlzIHJldmVydGVkIHRvIGl0cyBwcmV2aW91cyB2YWx1ZQorICogKFVWQ19DVFJMX0RBVEFfQkFDS1VQKSBmb3IgYWxsIGRpcnR5IGNvbnRyb2xzLiBCb3RoIGZ1bmN0aW9ucyByZWxlYXNlIHRoZQorICogY29udHJvbCBsb2NrLgorICovCitpbnQgdXZjX2N0cmxfYmVnaW4oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXJldHVybiBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJnZpZGVvLT5jdHJsX211dGV4KSA/IC1FUkVTVEFSVFNZUyA6IDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX2N0cmxfY29tbWl0X2VudGl0eShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHksIGludCByb2xsYmFjaykKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWlmIChlbnRpdHkgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5uY29udHJvbHM7ICsraSkgeworCQljdHJsID0gJmVudGl0eS0+Y29udHJvbHNbaV07CisJCWlmIChjdHJsLT5pbmZvID09IE5VTEwgfHwgIWN0cmwtPmRpcnR5KQorCQkJY29udGludWU7CisKKwkJaWYgKCFyb2xsYmFjaykKKwkJCXJldCA9IHV2Y19xdWVyeV9jdHJsKGRldiwgU0VUX0NVUiwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQlkZXYtPmludGZudW0sIGN0cmwtPmluZm8tPnNlbGVjdG9yLAorCQkJCXV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkJCQljdHJsLT5pbmZvLT5zaXplKTsKKwkJZWxzZQorCQkJcmV0ID0gMDsKKworCQlpZiAocm9sbGJhY2sgfHwgcmV0IDwgMCkKKwkJCW1lbWNweSh1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCQkgICAgICAgdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0JBQ0tVUCksCisJCQkgICAgICAgY3RybC0+aW5mby0+c2l6ZSk7CisKKwkJaWYgKChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9DVVIpID09IDApCisJCQljdHJsLT5sb2FkZWQgPSAwOworCisJCWN0cmwtPmRpcnR5ID0gMDsKKworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCBfX3V2Y19jdHJsX2NvbW1pdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIGludCByb2xsYmFjaykKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCWludCByZXQgPSAwOworCisJLyogRmluZCB0aGUgY29udHJvbC4gKi8KKwlyZXQgPSB1dmNfY3RybF9jb21taXRfZW50aXR5KHZpZGVvLT5kZXYsIHZpZGVvLT5wcm9jZXNzaW5nLCByb2xsYmFjayk7CisJaWYgKHJldCA8IDApCisJCWdvdG8gZG9uZTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmdmlkZW8tPml0ZXJtcywgY2hhaW4pIHsKKwkJcmV0ID0gdXZjX2N0cmxfY29tbWl0X2VudGl0eSh2aWRlby0+ZGV2LCBlbnRpdHksIHJvbGxiYWNrKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGRvbmU7CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZ2aWRlby0+ZXh0ZW5zaW9ucywgY2hhaW4pIHsKKwkJcmV0ID0gdXZjX2N0cmxfY29tbWl0X2VudGl0eSh2aWRlby0+ZGV2LCBlbnRpdHksIHJvbGxiYWNrKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGRvbmU7CisJfQorCitkb25lOgorCW11dGV4X3VubG9jaygmdmlkZW8tPmN0cmxfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK2ludCB1dmNfY3RybF9nZXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sICp4Y3RybCkKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmc7CisJc3RydWN0IHV2Y19tZW51X2luZm8gKm1lbnU7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCWN0cmwgPSB1dmNfZmluZF9jb250cm9sKHZpZGVvLCB4Y3RybC0+aWQsICZtYXBwaW5nKTsKKwlpZiAoY3RybCA9PSBOVUxMIHx8IChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9DVVIpID09IDApCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFjdHJsLT5sb2FkZWQpIHsKKwkJcmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgR0VUX0NVUiwgY3RybC0+ZW50aXR5LT5pZCwKKwkJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBjdHJsLT5pbmZvLT5zZWxlY3RvciwKKwkJCQl1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCQkJY3RybC0+aW5mby0+c2l6ZSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlpZiAoKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfQVVUT19VUERBVEUpID09IDApCisJCQljdHJsLT5sb2FkZWQgPSAxOworCX0KKworCXhjdHJsLT52YWx1ZSA9IHV2Y19nZXRfbGVfdmFsdWUoCisJCXV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwgbWFwcGluZyk7CisKKwlpZiAobWFwcGluZy0+djRsMl90eXBlID09IFY0TDJfQ1RSTF9UWVBFX01FTlUpIHsKKwkJbWVudSA9IG1hcHBpbmctPm1lbnVfaW5mbzsKKwkJZm9yIChpID0gMDsgaSA8IG1hcHBpbmctPm1lbnVfY291bnQ7ICsraSwgKyttZW51KSB7CisJCQlpZiAobWVudS0+dmFsdWUgPT0geGN0cmwtPnZhbHVlKSB7CisJCQkJeGN0cmwtPnZhbHVlID0gaTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCXJldHVybiAwOworfQorCitpbnQgdXZjX2N0cmxfc2V0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqeGN0cmwpCit7CisJc3RydWN0IHV2Y19jb250cm9sICpjdHJsOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nOworCXMzMiB2YWx1ZSA9IHhjdHJsLT52YWx1ZTsKKwlpbnQgcmV0OworCisJY3RybCA9IHV2Y19maW5kX2NvbnRyb2wodmlkZW8sIHhjdHJsLT5pZCwgJm1hcHBpbmcpOworCWlmIChjdHJsID09IE5VTEwgfHwgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfU0VUX0NVUikgPT0gMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAobWFwcGluZy0+djRsMl90eXBlID09IFY0TDJfQ1RSTF9UWVBFX01FTlUpIHsKKwkJaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+PSBtYXBwaW5nLT5tZW51X2NvdW50KQorCQkJcmV0dXJuIC1FSU5WQUw7CisJCXZhbHVlID0gbWFwcGluZy0+bWVudV9pbmZvW3ZhbHVlXS52YWx1ZTsKKwl9CisKKwlpZiAoIWN0cmwtPmxvYWRlZCAmJiAoY3RybC0+aW5mby0+c2l6ZSAqIDgpICE9IG1hcHBpbmctPnNpemUpIHsKKwkJaWYgKChjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9DVVIpID09IDApIHsKKwkJCW1lbXNldCh1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCQkJMCwgY3RybC0+aW5mby0+c2l6ZSk7CisJCX0gZWxzZSB7CisJCQlyZXQgPSB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBHRVRfQ1VSLAorCQkJCWN0cmwtPmVudGl0eS0+aWQsIHZpZGVvLT5kZXYtPmludGZudW0sCisJCQkJY3RybC0+aW5mby0+c2VsZWN0b3IsCisJCQkJdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkJCWN0cmwtPmluZm8tPnNpemUpOworCQkJaWYgKHJldCA8IDApCisJCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCWlmICgoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9BVVRPX1VQREFURSkgPT0gMCkKKwkJCWN0cmwtPmxvYWRlZCA9IDE7CisJfQorCisJaWYgKCFjdHJsLT5kaXJ0eSkgeworCQltZW1jcHkodXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0JBQ0tVUCksCisJCSAgICAgICB1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksCisJCSAgICAgICBjdHJsLT5pbmZvLT5zaXplKTsKKwl9CisKKwl1dmNfc2V0X2xlX3ZhbHVlKHZhbHVlLAorCQl1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCksIG1hcHBpbmcpOworCisJY3RybC0+ZGlydHkgPSAxOworCWN0cmwtPm1vZGlmaWVkID0gMTsKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIER5bmFtaWMgY29udHJvbHMKKyAqLworCitpbnQgdXZjX3h1X2N0cmxfcXVlcnkoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfeHVfY29udHJvbCAqeGN0cmwsIGludCBzZXQpCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmwgPSBOVUxMOworCXVuc2lnbmVkIGludCBpLCBmb3VuZCA9IDA7CisJX191OCAqZGF0YTsKKwlpbnQgcmV0OworCisJLyogRmluZCB0aGUgZXh0ZW5zaW9uIHVuaXQuICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZ2aWRlby0+ZXh0ZW5zaW9ucywgY2hhaW4pIHsKKwkJaWYgKGVudGl0eS0+aWQgPT0geGN0cmwtPnVuaXQpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZW50aXR5LT5pZCAhPSB4Y3RybC0+dW5pdCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJFeHRlbnNpb24gdW5pdCAldSBub3QgZm91bmQuXG4iLAorCQkJeGN0cmwtPnVuaXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBGaW5kIHRoZSBjb250cm9sLiAqLworCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKSB7CisJCWN0cmwgPSAmZW50aXR5LT5jb250cm9sc1tpXTsKKwkJaWYgKGN0cmwtPmluZm8gPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChjdHJsLT5pbmZvLT5zZWxlY3RvciA9PSB4Y3RybC0+c2VsZWN0b3IpIHsKKwkJCWZvdW5kID0gMTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFmb3VuZCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsCisJCQkiQ29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVCAiLyV1IG5vdCBmb3VuZC5cbiIsCisJCQlVVkNfR1VJRF9BUkdTKGVudGl0eS0+ZXh0ZW5zaW9uLmd1aWRFeHRlbnNpb25Db2RlKSwKKwkJCXhjdHJsLT5zZWxlY3Rvcik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFZhbGlkYXRlIGNvbnRyb2wgZGF0YSBzaXplLiAqLworCWlmIChjdHJsLT5pbmZvLT5zaXplICE9IHhjdHJsLT5zaXplKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICgoc2V0ICYmICEoY3RybC0+aW5mby0+ZmxhZ3MgJiBVVkNfQ09OVFJPTF9TRVRfQ1VSKSkgfHwKKwkgICAgKCFzZXQgJiYgIShjdHJsLT5pbmZvLT5mbGFncyAmIFVWQ19DT05UUk9MX0dFVF9DVVIpKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZ2aWRlby0+Y3RybF9tdXRleCkpCisJCXJldHVybiAtRVJFU1RBUlRTWVM7CisKKwltZW1jcHkodXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0JBQ0tVUCksCisJICAgICAgIHV2Y19jdHJsX2RhdGEoY3RybCwgVVZDX0NUUkxfREFUQV9DVVJSRU5UKSwKKwkgICAgICAgeGN0cmwtPnNpemUpOworCWRhdGEgPSB1dmNfY3RybF9kYXRhKGN0cmwsIFVWQ19DVFJMX0RBVEFfQ1VSUkVOVCk7CisKKwlpZiAoc2V0ICYmIGNvcHlfZnJvbV91c2VyKGRhdGEsIHhjdHJsLT5kYXRhLCB4Y3RybC0+c2l6ZSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXQ7CisJfQorCisJcmV0ID0gdXZjX3F1ZXJ5X2N0cmwodmlkZW8tPmRldiwgc2V0ID8gU0VUX0NVUiA6IEdFVF9DVVIsIHhjdHJsLT51bml0LAorCQkJICAgICB2aWRlby0+ZGV2LT5pbnRmbnVtLCB4Y3RybC0+c2VsZWN0b3IsIGRhdGEsCisJCQkgICAgIHhjdHJsLT5zaXplKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlpZiAoIXNldCAmJiBjb3B5X3RvX3VzZXIoeGN0cmwtPmRhdGEsIGRhdGEsIHhjdHJsLT5zaXplKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dDsKKwl9CisKK291dDoKKwlpZiAocmV0KQorCQltZW1jcHkodXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0NVUlJFTlQpLAorCQkgICAgICAgdXZjX2N0cmxfZGF0YShjdHJsLCBVVkNfQ1RSTF9EQVRBX0JBQ0tVUCksCisJCSAgICAgICB4Y3RybC0+c2l6ZSk7CisKKwltdXRleF91bmxvY2soJnZpZGVvLT5jdHJsX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3VzcGVuZC9yZXN1bWUKKyAqLworCisvKgorICogUmVzdG9yZSBjb250cm9sIHZhbHVlcyBhZnRlciByZXN1bWUsIHNraXBwaW5nIGNvbnRyb2xzIHRoYXQgaGF2ZW4ndCBiZWVuCisgKiBjaGFuZ2VkLgorICoKKyAqIFRPRE8KKyAqIC0gRG9uJ3QgcmVzdG9yZSBtb2RpZmllZCBjb250cm9scyB0aGF0IGFyZSBiYWNrIHRvIHRoZWlyIGRlZmF1bHQgdmFsdWUuCisgKiAtIEhhbmRsZSByZXN0b3JlIG9yZGVyIChBdXRvLUV4cG9zdXJlIE1vZGUgc2hvdWxkIGJlIHJlc3RvcmVkIGJlZm9yZQorICogICBFeHBvc3VyZSBUaW1lKS4KKyAqLworaW50IHV2Y19jdHJsX3Jlc3VtZV9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJLyogV2FsayB0aGUgZW50aXRpZXMgbGlzdCBhbmQgcmVzdG9yZSBjb250cm9scyB3aGVuIHBvc3NpYmxlLiAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50aXR5LCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCisJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKSB7CisJCQljdHJsID0gJmVudGl0eS0+Y29udHJvbHNbaV07CisKKwkJCWlmIChjdHJsLT5pbmZvID09IE5VTEwgfHwgIWN0cmwtPm1vZGlmaWVkIHx8CisJCQkgICAgKGN0cmwtPmluZm8tPmZsYWdzICYgVVZDX0NPTlRST0xfUkVTVE9SRSkgPT0gMCkKKwkJCQljb250aW51ZTsKKworCQkJcHJpbnRrKEtFUk5fSU5GTyAicmVzdG9yaW5nIGNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQKKwkJCQkiLyV1LyV1XG4iLCBVVkNfR1VJRF9BUkdTKGN0cmwtPmluZm8tPmVudGl0eSksCisJCQkJY3RybC0+aW5mby0+aW5kZXgsIGN0cmwtPmluZm8tPnNlbGVjdG9yKTsKKwkJCWN0cmwtPmRpcnR5ID0gMTsKKwkJfQorCisJCXJldCA9IHV2Y19jdHJsX2NvbW1pdF9lbnRpdHkoZGV2LCBlbnRpdHksIDApOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBDb250cm9sIGFuZCBtYXBwaW5nIGhhbmRsaW5nCisgKi8KKworc3RhdGljIHZvaWQgdXZjX2N0cmxfYWRkX2N0cmwoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCXN0cnVjdCB1dmNfY29udHJvbCAqY3RybCA9IE5VTEw7CisJaW50IHJldCwgZm91bmQgPSAwOworCXVuc2lnbmVkIGludCBpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCWlmICghdXZjX2VudGl0eV9tYXRjaF9ndWlkKGVudGl0eSwgaW5mby0+ZW50aXR5KSkKKwkJCWNvbnRpbnVlOworCisJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPm5jb250cm9sczsgKytpKSB7CisJCQljdHJsID0gJmVudGl0eS0+Y29udHJvbHNbaV07CisJCQlpZiAoY3RybC0+aW5kZXggPT0gaW5mby0+aW5kZXgpIHsKKwkJCQlmb3VuZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoZm91bmQpCisJCQlicmVhazsKKwl9CisKKwlpZiAoIWZvdW5kKQorCQlyZXR1cm47CisKKwlpZiAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkgPT0gVkNfRVhURU5TSU9OX1VOSVQpIHsKKwkJLyogQ2hlY2sgaWYgdGhlIGRldmljZSBjb250cm9sIGluZm9ybWF0aW9uIGFuZCBsZW5ndGggbWF0Y2gKKwkJICogdGhlIHVzZXIgc3VwcGxpZWQgaW5mb3JtYXRpb24uCisJCSAqLworCQlfX3UzMiBmbGFnczsKKwkJX19sZTE2IHNpemU7CisJCV9fdTggaW5mOworCisJCWlmICgocmV0ID0gdXZjX3F1ZXJ5X2N0cmwoZGV2LCBHRVRfTEVOLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJZGV2LT5pbnRmbnVtLCBpbmZvLT5zZWxlY3RvciwgKF9fdTggKikmc2l6ZSwgMikpIDwgMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiR0VUX0xFTiBmYWlsZWQgb24gIgorCQkJCSJjb250cm9sICIgVVZDX0dVSURfRk9STUFUICIvJXUgKCVkKS5cbiIsCisJCQkJVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLCBpbmZvLT5zZWxlY3RvciwKKwkJCQlyZXQpOworCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKGluZm8tPnNpemUgIT0gbGUxNl90b19jcHUoc2l6ZSkpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQKKwkJCQkiLyV1IHNpemUgZG9lc24ndCBtYXRjaCB1c2VyIHN1cHBsaWVkICIKKwkJCQkidmFsdWUuXG4iLCBVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksCisJCQkJaW5mby0+c2VsZWN0b3IpOworCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKChyZXQgPSB1dmNfcXVlcnlfY3RybChkZXYsIEdFVF9JTkZPLCBjdHJsLT5lbnRpdHktPmlkLAorCQkJZGV2LT5pbnRmbnVtLCBpbmZvLT5zZWxlY3RvciwgJmluZiwgMSkpIDwgMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiR0VUX0lORk8gZmFpbGVkIG9uICIKKwkJCQkiY29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVCAiLyV1ICglZCkuXG4iLAorCQkJCVVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwgaW5mby0+c2VsZWN0b3IsCisJCQkJcmV0KTsKKwkJCXJldHVybjsKKwkJfQorCisJCWZsYWdzID0gaW5mby0+ZmxhZ3M7CisJCWlmICgoKGZsYWdzICYgVVZDX0NPTlRST0xfR0VUX0NVUikgJiYgIShpbmYgJiAoMSA8PCAwKSkpIHx8CisJCSAgICAoKGZsYWdzICYgVVZDX0NPTlRST0xfU0VUX0NVUikgJiYgIShpbmYgJiAoMSA8PCAxKSkpKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDb250cm9sICIKKwkJCQlVVkNfR1VJRF9GT1JNQVQgIi8ldSBmbGFncyBkb24ndCBtYXRjaCAiCisJCQkJInN1cHBvcnRlZCBvcGVyYXRpb25zLlxuIiwKKwkJCQlVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksIGluZm8tPnNlbGVjdG9yKTsKKwkJCXJldHVybjsKKwkJfQorCX0KKworCWN0cmwtPmluZm8gPSBpbmZvOworCWN0cmwtPmRhdGEgPSBrbWFsbG9jKGN0cmwtPmluZm8tPnNpemUgKiBVVkNfQ1RSTF9OREFUQSwgR0ZQX0tFUk5FTCk7CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQWRkZWQgY29udHJvbCAiIFVWQ19HVUlEX0ZPUk1BVCAiLyV1ICIKKwkJInRvIGRldmljZSAlcyBlbnRpdHkgJXVcbiIsIFVWQ19HVUlEX0FSR1MoY3RybC0+aW5mby0+ZW50aXR5KSwKKwkJY3RybC0+aW5mby0+c2VsZWN0b3IsIGRldi0+dWRldi0+ZGV2cGF0aCwgZW50aXR5LT5pZCk7Cit9CisKKy8qCisgKiBBZGQgYW4gaXRlbSB0byB0aGUgVVZDIGNvbnRyb2wgaW5mb3JtYXRpb24gbGlzdCwgYW5kIGluc3RhbnRpYXRlIGEgY29udHJvbAorICogc3RydWN0dXJlIGZvciBlYWNoIGRldmljZSB0aGF0IHN1cHBvcnRzIHRoZSBjb250cm9sLgorICovCitpbnQgdXZjX2N0cmxfYWRkX2luZm8oc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm8pCit7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmN0cmw7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldjsKKwlpbnQgcmV0ID0gMDsKKworCS8qIEZpbmQgbWF0Y2hpbmcgY29udHJvbHMgYnkgd2Fsa2luZyB0aGUgZGV2aWNlcywgZW50aXRpZXMgYW5kCisJICogY29udHJvbHMgbGlzdC4KKwkgKi8KKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCisJLyogRmlyc3QgY2hlY2sgaWYgdGhlIGxpc3QgY29udGFpbnMgYSBjb250cm9sIG1hdGNoaW5nIHRoZSBuZXcgb25lLgorCSAqIEJhaWwgb3V0IGlmIGl0IGRvZXMuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjdHJsLCAmdXZjX2RyaXZlci5jb250cm9scywgbGlzdCkgeworCQlpZiAobWVtY21wKGN0cmwtPmVudGl0eSwgaW5mby0+ZW50aXR5LCAxNikpCisJCQljb250aW51ZTsKKworCQlpZiAoY3RybC0+c2VsZWN0b3IgPT0gaW5mby0+c2VsZWN0b3IpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIkNvbnRyb2wgIgorCQkJCVVWQ19HVUlEX0ZPUk1BVCAiLyV1IGlzIGFscmVhZHkgZGVmaW5lZC5cbiIsCisJCQkJVVZDX0dVSURfQVJHUyhpbmZvLT5lbnRpdHkpLCBpbmZvLT5zZWxlY3Rvcik7CisJCQlyZXQgPSAtRUVYSVNUOworCQkJZ290byBlbmQ7CisJCX0KKwkJaWYgKGN0cmwtPmluZGV4ID09IGluZm8tPmluZGV4KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJDb250cm9sICIKKwkJCQlVVkNfR1VJRF9GT1JNQVQgIi8ldSB3b3VsZCBvdmVyd3JpdGUgaW5kZXggIgorCQkJCSIlZC5cbiIsIFVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwKKwkJCQlpbmZvLT5zZWxlY3RvciwgaW5mby0+aW5kZXgpOworCQkJcmV0ID0gLUVFWElTVDsKKwkJCWdvdG8gZW5kOworCQl9CisJfQorCisJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZ1dmNfZHJpdmVyLmRldmljZXMsIGxpc3QpCisJCXV2Y19jdHJsX2FkZF9jdHJsKGRldiwgaW5mbyk7CisKKwlJTklUX0xJU1RfSEVBRCgmaW5mby0+bWFwcGluZ3MpOworCWxpc3RfYWRkX3RhaWwoJmluZm8tPmxpc3QsICZ1dmNfZHJpdmVyLmNvbnRyb2xzKTsKK2VuZDoKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworaW50IHV2Y19jdHJsX2FkZF9tYXBwaW5nKHN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nKQoreworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXA7CisJaW50IHJldCA9IC1FSU5WQUw7CisKKwlpZiAobWFwcGluZy0+aWQgJiB+VjRMMl9DVFJMX0lEX01BU0spIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9DT05UUk9MLCAiQ2FuJ3QgYWRkIG1hcHBpbmcgJyVzJyB3aXRoICIKKwkJCSJpbnZhbGlkIGNvbnRyb2wgaWQgMHglMDh4XG4iLCBtYXBwaW5nLT5uYW1lLAorCQkJbWFwcGluZy0+aWQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5mbywgJnV2Y19kcml2ZXIuY29udHJvbHMsIGxpc3QpIHsKKwkJaWYgKG1lbWNtcChpbmZvLT5lbnRpdHksIG1hcHBpbmctPmVudGl0eSwgMTYpIHx8CisJCQlpbmZvLT5zZWxlY3RvciAhPSBtYXBwaW5nLT5zZWxlY3RvcikKKwkJCWNvbnRpbnVlOworCisJCWlmIChpbmZvLT5zaXplICogOCA8IG1hcHBpbmctPnNpemUgKyBtYXBwaW5nLT5vZmZzZXQpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ09OVFJPTCwgIk1hcHBpbmcgJyVzJyB3b3VsZCAiCisJCQkJIm92ZXJmbG93IGNvbnRyb2wgIiBVVkNfR1VJRF9GT1JNQVQgIi8ldVxuIiwKKwkJCQltYXBwaW5nLT5uYW1lLCBVVkNfR1VJRF9BUkdTKGluZm8tPmVudGl0eSksCisJCQkJaW5mby0+c2VsZWN0b3IpOworCQkJcmV0ID0gLUVPVkVSRkxPVzsKKwkJCWdvdG8gZW5kOworCQl9CisKKwkJLyogQ2hlY2sgaWYgdGhlIGxpc3QgY29udGFpbnMgYSBtYXBwaW5nIG1hdGNoaW5nIHRoZSBuZXcgb25lLgorCQkgKiBCYWlsIG91dCBpZiBpdCBkb2VzLgorCQkgKi8KKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShtYXAsICZpbmZvLT5tYXBwaW5ncywgbGlzdCkgeworCQkJaWYgKG1hcC0+aWQgPT0gbWFwcGluZy0+aWQpIHsKKwkJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJNYXBwaW5nICclcycgaXMgIgorCQkJCQkiYWxyZWFkeSBkZWZpbmVkLlxuIiwgbWFwcGluZy0+bmFtZSk7CisJCQkJcmV0ID0gLUVFWElTVDsKKwkJCQlnb3RvIGVuZDsKKwkJCX0KKwkJfQorCisJCW1hcHBpbmctPmN0cmwgPSBpbmZvOworCQlsaXN0X2FkZF90YWlsKCZtYXBwaW5nLT5saXN0LCAmaW5mby0+bWFwcGluZ3MpOworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NPTlRST0wsICJBZGRpbmcgbWFwcGluZyAlcyB0byBjb250cm9sICIKKwkJCVVWQ19HVUlEX0ZPUk1BVCAiLyV1LlxuIiwgbWFwcGluZy0+bmFtZSwKKwkJCVVWQ19HVUlEX0FSR1MoaW5mby0+ZW50aXR5KSwgaW5mby0+c2VsZWN0b3IpOworCisJCXJldCA9IDA7CisJCWJyZWFrOworCX0KK2VuZDoKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgZGV2aWNlIGNvbnRyb2xzLgorICovCitpbnQgdXZjX2N0cmxfaW5pdF9kZXZpY2Uoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbzsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCS8qIFdhbGsgdGhlIGVudGl0aWVzIGxpc3QgYW5kIGluc3RhbnRpYXRlIGNvbnRyb2xzICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCXVuc2lnbmVkIGludCBiQ29udHJvbFNpemUgPSAwLCBuY29udHJvbHMgPSAwOworCQlfX3U4ICpibUNvbnRyb2xzID0gTlVMTDsKKworCQlpZiAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkgPT0gVkNfRVhURU5TSU9OX1VOSVQpIHsKKwkJCWJtQ29udHJvbHMgPSBlbnRpdHktPmV4dGVuc2lvbi5ibUNvbnRyb2xzOworCQkJYkNvbnRyb2xTaXplID0gZW50aXR5LT5leHRlbnNpb24uYkNvbnRyb2xTaXplOworCQl9IGVsc2UgaWYgKFVWQ19FTlRJVFlfVFlQRShlbnRpdHkpID09IFZDX1BST0NFU1NJTkdfVU5JVCkgeworCQkJYm1Db250cm9scyA9IGVudGl0eS0+cHJvY2Vzc2luZy5ibUNvbnRyb2xzOworCQkJYkNvbnRyb2xTaXplID0gZW50aXR5LT5wcm9jZXNzaW5nLmJDb250cm9sU2l6ZTsKKwkJfSBlbHNlIGlmIChVVkNfRU5USVRZX1RZUEUoZW50aXR5KSA9PSBJVFRfQ0FNRVJBKSB7CisJCQlibUNvbnRyb2xzID0gZW50aXR5LT5jYW1lcmEuYm1Db250cm9sczsKKwkJCWJDb250cm9sU2l6ZSA9IGVudGl0eS0+Y2FtZXJhLmJDb250cm9sU2l6ZTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBiQ29udHJvbFNpemU7ICsraSkKKwkJCW5jb250cm9scyArPSBod2VpZ2h0OChibUNvbnRyb2xzW2ldKTsKKworCQlpZiAobmNvbnRyb2xzID09IDApCisJCQljb250aW51ZTsKKworCQllbnRpdHktPmNvbnRyb2xzID0ga3phbGxvYyhuY29udHJvbHMqc2l6ZW9mICpjdHJsLCBHRlBfS0VSTkVMKTsKKwkJaWYgKGVudGl0eS0+Y29udHJvbHMgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCWVudGl0eS0+bmNvbnRyb2xzID0gbmNvbnRyb2xzOworCisJCWN0cmwgPSBlbnRpdHktPmNvbnRyb2xzOworCQlmb3IgKGkgPSAwOyBpIDwgYkNvbnRyb2xTaXplICogODsgKytpKSB7CisJCQlpZiAodXZjX2dldF9iaXQoYm1Db250cm9scywgaSkgPT0gMCkKKwkJCQljb250aW51ZTsKKworCQkJY3RybC0+ZW50aXR5ID0gZW50aXR5OworCQkJY3RybC0+aW5kZXggPSBpOworCQkJY3RybCsrOworCQl9CisJfQorCisJLyogV2FsayB0aGUgY29udHJvbHMgaW5mbyBsaXN0IGFuZCBhc3NvY2lhdGUgdGhlbSB3aXRoIHRoZSBkZXZpY2UKKwkgKiBjb250cm9scywgdGhlbiBhZGQgdGhlIGRldmljZSB0byB0aGUgZ2xvYmFsIGRldmljZSBsaXN0LiBUaGlzIGhhcworCSAqIHRvIGJlIGRvbmUgd2hpbGUgaG9sZGluZyB0aGUgY29udHJvbHMgbG9jaywgdG8gbWFrZSBzdXJlCisJICogdXZjX2N0cmxfYWRkX2luZm8oKSB3aWxsIG5vdCBnZXQgY2FsbGVkIGluLWJldHdlZW4uCisJICovCisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5jdHJsX211dGV4KTsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluZm8sICZ1dmNfZHJpdmVyLmNvbnRyb2xzLCBsaXN0KQorCQl1dmNfY3RybF9hZGRfY3RybChkZXYsIGluZm8pOworCisJbGlzdF9hZGRfdGFpbCgmZGV2LT5saXN0LCAmdXZjX2RyaXZlci5kZXZpY2VzKTsKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIENsZWFudXAgZGV2aWNlIGNvbnRyb2xzLgorICovCit2b2lkIHV2Y19jdHJsX2NsZWFudXBfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCS8qIFJlbW92ZSB0aGUgZGV2aWNlIGZyb20gdGhlIGdsb2JhbCBkZXZpY2VzIGxpc3QgKi8KKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLmN0cmxfbXV0ZXgpOworCWlmIChkZXYtPmxpc3QubmV4dCAhPSBOVUxMKQorCQlsaXN0X2RlbCgmZGV2LT5saXN0KTsKKwltdXRleF91bmxvY2soJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudGl0eSwgJmRldi0+ZW50aXRpZXMsIGxpc3QpIHsKKwkJZm9yIChpID0gMDsgaSA8IGVudGl0eS0+bmNvbnRyb2xzOyArK2kpCisJCQlrZnJlZShlbnRpdHktPmNvbnRyb2xzW2ldLmRhdGEpOworCisJCWtmcmVlKGVudGl0eS0+Y29udHJvbHMpOworCX0KK30KKwordm9pZCB1dmNfY3RybF9pbml0KHZvaWQpCit7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmN0cmwgPSB1dmNfY3RybHM7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmNlbmQgPSBjdHJsICsgQVJSQVlfU0laRSh1dmNfY3RybHMpOworCXN0cnVjdCB1dmNfY29udHJvbF9tYXBwaW5nICptYXBwaW5nID0gdXZjX2N0cmxfbWFwcGluZ3M7CisJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1lbmQgPQorCQltYXBwaW5nICsgQVJSQVlfU0laRSh1dmNfY3RybF9tYXBwaW5ncyk7CisKKwlmb3IgKDsgY3RybCA8IGNlbmQ7ICsrY3RybCkKKwkJdXZjX2N0cmxfYWRkX2luZm8oY3RybCk7CisKKwlmb3IgKDsgbWFwcGluZyA8IG1lbmQ7ICsrbWFwcGluZykKKwkJdXZjX2N0cmxfYWRkX21hcHBpbmcobWFwcGluZyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfZHJpdmVyLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfZHJpdmVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBjZWQ1OAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19kcml2ZXIuYwpAQCAtMCwwICsxLDE5NTUgQEAKKy8qCisgKiAgICAgIHV2Y19kcml2ZXIuYyAgLS0gIFVTQiBWaWRlbyBDbGFzcyBkcml2ZXIKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKy8qCisgKiBUaGlzIGRyaXZlciBhaW1zIHRvIHN1cHBvcnQgdmlkZW8gaW5wdXQgZGV2aWNlcyBjb21wbGlhbnQgd2l0aCB0aGUgJ1VTQgorICogVmlkZW8gQ2xhc3MnIHNwZWNpZmljYXRpb24uCisgKgorICogVGhlIGRyaXZlciBkb2Vzbid0IHN1cHBvcnQgdGhlIGRlcHJlY2F0ZWQgdjRsMSBpbnRlcmZhY2UuIEl0IGltcGxlbWVudHMgdGhlCisgKiBtbWFwIGNhcHR1cmUgbWV0aG9kIG9ubHksIGFuZCBkb2Vzbid0IGRvIGFueSBpbWFnZSBmb3JtYXQgY29udmVyc2lvbiBpbgorICogc29mdHdhcmUuIElmIHlvdXIgdXNlci1zcGFjZSBhcHBsaWNhdGlvbiBkb2Vzbid0IHN1cHBvcnQgWVVZViBvciBNSlBFRywgZml4CisgKiBpdCA6LSkuIFBsZWFzZSBub3RlIHRoYXQgdGhlIE1KUEVHIGRhdGEgaGF2ZSBiZWVuIHN0cmlwcGVkIGZyb20gdGhlaXIKKyAqIEh1ZmZtYW4gdGFibGVzIChESFQgbWFya2VyKSwgeW91IHdpbGwgbmVlZCB0byBhZGQgaXQgYmFjayBpZiB5b3VyIEpQRUcKKyAqIGNvZGVjIGNhbid0IGhhbmRsZSBNSlBFRyBkYXRhLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorCisjaW5jbHVkZSA8bWVkaWEvdjRsMi1jb21tb24uaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKyNkZWZpbmUgRFJJVkVSX0FVVEhPUgkJIkxhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAc2t5bmV0LmJlPiIKKyNkZWZpbmUgRFJJVkVSX0RFU0MJCSJVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIgorI2lmbmRlZiBEUklWRVJfVkVSU0lPTgorI2RlZmluZSBEUklWRVJfVkVSU0lPTgkJInYwLjEuMCIKKyNlbmRpZgorCitzdGF0aWMgdW5zaWduZWQgaW50IHV2Y19xdWlya3NfcGFyYW07Cit1bnNpZ25lZCBpbnQgdXZjX3RyYWNlX3BhcmFtOworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIENvbnRyb2wsIGZvcm1hdHMsIC4uLgorICovCisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2Zvcm1hdF9kZXNjIHV2Y19mbXRzW10gPSB7CisJeworCQkubmFtZQkJPSAiWVVWIDQ6MjoyIChZVVlWKSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9ZVVkyLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9ZVVlWLAorCX0sCisJeworCQkubmFtZQkJPSAiWVVWIDQ6MjowIChOVjEyKSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9OVjEyLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9OVjEyLAorCX0sCisJeworCQkubmFtZQkJPSAiTUpQRUciLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfTUpQRUcsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX01KUEVHLAorCX0sCisJeworCQkubmFtZQkJPSAiWVZVIDQ6MjowIChZVjEyKSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9ZVjEyLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9ZVlU0MjAsCisJfSwKKwl7CisJCS5uYW1lCQk9ICJZVVYgNDoyOjAgKEk0MjApIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX0k0MjAsCisJCS5mY2MJCT0gVjRMMl9QSVhfRk1UX1lVVjQyMCwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIllVViA0OjI6MiAoVVlWWSkiLAorCQkuZ3VpZAkJPSBVVkNfR1VJRF9GT1JNQVRfVVlWWSwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfVVlWWSwKKwl9LAorCXsKKwkJLm5hbWUJCT0gIkdyZXlzY2FsZSIsCisJCS5ndWlkCQk9IFVWQ19HVUlEX0ZPUk1BVF9ZODAwLAorCQkuZmNjCQk9IFY0TDJfUElYX0ZNVF9HUkVZLAorCX0sCisJeworCQkubmFtZQkJPSAiUkdCIEJheWVyIiwKKwkJLmd1aWQJCT0gVVZDX0dVSURfRk9STUFUX0JZOCwKKwkJLmZjYwkJPSBWNEwyX1BJWF9GTVRfU0JHR1I4LAorCX0sCit9OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFV0aWxpdHkgZnVuY3Rpb25zCisgKi8KKworc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICp1dmNfZmluZF9lbmRwb2ludChzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzLAorCQlfX3U4IGVwYWRkcikKK3sKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IGFsdHMtPmRlc2MuYk51bUVuZHBvaW50czsgKytpKSB7CisJCWVwID0gJmFsdHMtPmVuZHBvaW50W2ldOworCQlpZiAoZXAtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyA9PSBlcGFkZHIpCisJCQlyZXR1cm4gZXA7CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdXZjX2Zvcm1hdF9kZXNjICp1dmNfZm9ybWF0X2J5X2d1aWQoY29uc3QgX191OCBndWlkWzE2XSkKK3sKKwl1bnNpZ25lZCBpbnQgbGVuID0gQVJSQVlfU0laRSh1dmNfZm10cyk7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKwkJaWYgKG1lbWNtcChndWlkLCB1dmNfZm10c1tpXS5ndWlkLCAxNikgPT0gMCkKKwkJCXJldHVybiAmdXZjX2ZtdHNbaV07CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBfX3UzMiB1dmNfY29sb3JzcGFjZShjb25zdCBfX3U4IHByaW1hcmllcykKK3sKKwlzdGF0aWMgY29uc3QgX191OCBjb2xvcnByaW1hcmllc1tdID0geworCQkwLAorCQlWNEwyX0NPTE9SU1BBQ0VfU1JHQiwKKwkJVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fTSwKKwkJVjRMMl9DT0xPUlNQQUNFXzQ3MF9TWVNURU1fQkcsCisJCVY0TDJfQ09MT1JTUEFDRV9TTVBURTE3ME0sCisJCVY0TDJfQ09MT1JTUEFDRV9TTVBURTI0ME0sCisJfTsKKworCWlmIChwcmltYXJpZXMgPCBBUlJBWV9TSVpFKGNvbG9ycHJpbWFyaWVzKSkKKwkJcmV0dXJuIGNvbG9ycHJpbWFyaWVzW3ByaW1hcmllc107CisKKwlyZXR1cm4gMDsKK30KKworLyogU2ltcGxpZnkgYSBmcmFjdGlvbiB1c2luZyBhIHNpbXBsZSBjb250aW51ZWQgZnJhY3Rpb24gZGVjb21wb3NpdGlvbi4gVGhlCisgKiBpZGVhIGhlcmUgaXMgdG8gY29udmVydCBmcmFjdGlvbnMgc3VjaCBhcyAzMzMzMzMvMTAwMDAwMDAgdG8gMS8zMCB1c2luZworICogMzIgYml0IGFyaXRobWV0aWMgb25seS4gVGhlIGFsZ29yaXRobSBpcyBub3QgcGVyZmVjdCBhbmQgcmVsaWVzIHVwb24gdHdvCisgKiBhcmJpdHJhcnkgcGFyYW1ldGVycyB0byByZW1vdmUgbm9uLXNpZ25pZmljYXRpdmUgdGVybXMgZnJvbSB0aGUgc2ltcGxlCisgKiBjb250aW51ZWQgZnJhY3Rpb24gZGVjb21wb3NpdGlvbi4gVXNpbmcgOCBhbmQgMzMzIGZvciBuX3Rlcm1zIGFuZCB0aHJlc2hvbGQKKyAqIHJlc3BlY3RpdmVseSBzZWVtcyB0byBnaXZlIG5pY2UgcmVzdWx0cy4KKyAqLwordm9pZCB1dmNfc2ltcGxpZnlfZnJhY3Rpb24odWludDMyX3QgKm51bWVyYXRvciwgdWludDMyX3QgKmRlbm9taW5hdG9yLAorCQl1bnNpZ25lZCBpbnQgbl90ZXJtcywgdW5zaWduZWQgaW50IHRocmVzaG9sZCkKK3sKKwl1aW50MzJfdCAqYW47CisJdWludDMyX3QgeCwgeSwgcjsKKwl1bnNpZ25lZCBpbnQgaSwgbjsKKworCWFuID0ga21hbGxvYyhuX3Rlcm1zICogc2l6ZW9mICphbiwgR0ZQX0tFUk5FTCk7CisJaWYgKGFuID09IE5VTEwpCisJCXJldHVybjsKKworCS8qIENvbnZlcnQgdGhlIGZyYWN0aW9uIHRvIGEgc2ltcGxlIGNvbnRpbnVlZCBmcmFjdGlvbi4gU2VlCisJICogaHR0cDovL21hdGhmb3J1bS5vcmcvZHIubWF0aC9mYXEvZmFxLmZyYWN0aW9ucy5odG1sCisJICogU3RvcCBpZiB0aGUgY3VycmVudCB0ZXJtIGlzIGJpZ2dlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBnaXZlbgorCSAqIHRocmVzaG9sZC4KKwkgKi8KKwl4ID0gKm51bWVyYXRvcjsKKwl5ID0gKmRlbm9taW5hdG9yOworCisJZm9yIChuID0gMDsgbiA8IG5fdGVybXMgJiYgeSAhPSAwOyArK24pIHsKKwkJYW5bbl0gPSB4IC8geTsKKwkJaWYgKGFuW25dID49IHRocmVzaG9sZCkgeworCQkJaWYgKG4gPCAyKQorCQkJCW4rKzsKKwkJCWJyZWFrOworCQl9CisKKwkJciA9IHggLSBhbltuXSAqIHk7CisJCXggPSB5OworCQl5ID0gcjsKKwl9CisKKwkvKiBFeHBhbmQgdGhlIHNpbXBsZSBjb250aW51ZWQgZnJhY3Rpb24gYmFjayB0byBhbiBpbnRlZ2VyIGZyYWN0aW9uLiAqLworCXggPSAwOworCXkgPSAxOworCisJZm9yIChpID0gbjsgaSA+IDA7IC0taSkgeworCQlyID0geTsKKwkJeSA9IGFuW2ktMV0gKiB5ICsgeDsKKwkJeCA9IHI7CisJfQorCisJKm51bWVyYXRvciA9IHk7CisJKmRlbm9taW5hdG9yID0geDsKKwlrZnJlZShhbik7Cit9CisKKy8qIENvbnZlcnQgYSBmcmFjdGlvbiB0byBhIGZyYW1lIGludGVydmFsIGluIDEwMG5zIG11bHRpcGxlcy4gVGhlIGlkZWEgaGVyZSBpcworICogdG8gY29tcHV0ZSBudW1lcmF0b3IgLyBkZW5vbWluYXRvciAqIDEwMDAwMDAwIHVzaW5nIDMyIGJpdCBmaXhlZCBwb2ludAorICogYXJpdGhtZXRpYyBvbmx5LgorICovCit1aW50MzJfdCB1dmNfZnJhY3Rpb25fdG9faW50ZXJ2YWwodWludDMyX3QgbnVtZXJhdG9yLCB1aW50MzJfdCBkZW5vbWluYXRvcikKK3sKKwl1aW50MzJfdCBtdWx0aXBsaWVyOworCisJLyogU2F0dXJhdGUgdGhlIHJlc3VsdCBpZiB0aGUgb3BlcmF0aW9uIHdvdWxkIG92ZXJmbG93LiAqLworCWlmIChkZW5vbWluYXRvciA9PSAwIHx8CisJICAgIG51bWVyYXRvci9kZW5vbWluYXRvciA+PSAoKHVpbnQzMl90KS0xKS8xMDAwMDAwMCkKKwkJcmV0dXJuICh1aW50MzJfdCktMTsKKworCS8qIERpdmlkZSBib3RoIHRoZSBkZW5vbWluYXRvciBhbmQgdGhlIG11bHRpcGxpZXIgYnkgdHdvIHVudGlsCisJICogbnVtZXJhdG9yICogbXVsdGlwbGllciBkb2Vzbid0IG92ZXJmbG93LiBJZiBhbnlvbmUga25vd3MgYSBiZXR0ZXIKKwkgKiBhbGdvcml0aG0gcGxlYXNlIGxldCBtZSBrbm93LgorCSAqLworCW11bHRpcGxpZXIgPSAxMDAwMDAwMDsKKwl3aGlsZSAobnVtZXJhdG9yID4gKCh1aW50MzJfdCktMSkvbXVsdGlwbGllcikgeworCQltdWx0aXBsaWVyIC89IDI7CisJCWRlbm9taW5hdG9yIC89IDI7CisJfQorCisJcmV0dXJuIGRlbm9taW5hdG9yID8gbnVtZXJhdG9yICogbXVsdGlwbGllciAvIGRlbm9taW5hdG9yIDogMDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBUZXJtaW5hbCBhbmQgdW5pdCBtYW5hZ2VtZW50CisgKi8KKworc3RhdGljIHN0cnVjdCB1dmNfZW50aXR5ICp1dmNfZW50aXR5X2J5X2lkKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIGludCBpZCkKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCWlmIChlbnRpdHktPmlkID09IGlkKQorCQkJcmV0dXJuIGVudGl0eTsKKwl9CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHN0cnVjdCB1dmNfZW50aXR5ICp1dmNfZW50aXR5X2J5X3JlZmVyZW5jZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCWludCBpZCwgc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWlmIChlbnRpdHkgPT0gTlVMTCkKKwkJZW50aXR5ID0gbGlzdF9lbnRyeSgmZGV2LT5lbnRpdGllcywgc3RydWN0IHV2Y19lbnRpdHksIGxpc3QpOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZShlbnRpdHksICZkZXYtPmVudGl0aWVzLCBsaXN0KSB7CisJCXN3aXRjaCAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkpIHsKKwkJY2FzZSBUVF9TVFJFQU1JTkc6CisJCQlpZiAoZW50aXR5LT5vdXRwdXQuYlNvdXJjZUlEID09IGlkKQorCQkJCXJldHVybiBlbnRpdHk7CisJCQlicmVhazsKKworCQljYXNlIFZDX1BST0NFU1NJTkdfVU5JVDoKKwkJCWlmIChlbnRpdHktPnByb2Nlc3NpbmcuYlNvdXJjZUlEID09IGlkKQorCQkJCXJldHVybiBlbnRpdHk7CisJCQlicmVhazsKKworCQljYXNlIFZDX1NFTEVDVE9SX1VOSVQ6CisJCQlmb3IgKGkgPSAwOyBpIDwgZW50aXR5LT5zZWxlY3Rvci5iTnJJblBpbnM7ICsraSkKKwkJCQlpZiAoZW50aXR5LT5zZWxlY3Rvci5iYVNvdXJjZUlEW2ldID09IGlkKQorCQkJCQlyZXR1cm4gZW50aXR5OworCQkJYnJlYWs7CisKKwkJY2FzZSBWQ19FWFRFTlNJT05fVU5JVDoKKwkJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPmV4dGVuc2lvbi5iTnJJblBpbnM7ICsraSkKKwkJCQlpZiAoZW50aXR5LT5leHRlbnNpb24uYmFTb3VyY2VJRFtpXSA9PSBpZCkKKwkJCQkJcmV0dXJuIGVudGl0eTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRGVzY3JpcHRvcnMgaGFuZGxpbmcKKyAqLworCitzdGF0aWMgaW50IHV2Y19wYXJzZV9mb3JtYXQoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZyAqc3RyZWFtaW5nLCBzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0LAorCV9fdTMyICoqaW50ZXJ2YWxzLCB1bnNpZ25lZCBjaGFyICpidWZmZXIsIGludCBidWZsZW4pCit7CisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYgPSBzdHJlYW1pbmctPmludGY7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cyA9IGludGYtPmN1cl9hbHRzZXR0aW5nOworCXN0cnVjdCB1dmNfZm9ybWF0X2Rlc2MgKmZtdGRlc2M7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7CisJY29uc3QgdW5zaWduZWQgY2hhciAqc3RhcnQgPSBidWZmZXI7CisJdW5zaWduZWQgaW50IGludGVydmFsOworCXVuc2lnbmVkIGludCBpLCBuOworCV9fdTggZnR5cGU7CisKKwlmb3JtYXQtPnR5cGUgPSBidWZmZXJbMl07CisJZm9ybWF0LT5pbmRleCA9IGJ1ZmZlclszXTsKKworCXN3aXRjaCAoYnVmZmVyWzJdKSB7CisJY2FzZSBWU19GT1JNQVRfVU5DT01QUkVTU0VEOgorCWNhc2UgVlNfRk9STUFUX0ZSQU1FX0JBU0VEOgorCQlpZiAoYnVmbGVuIDwgMjcpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZCBGT1JNQVQgZXJyb3JcbiIsCisJCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJLyogRmluZCB0aGUgZm9ybWF0IGRlc2NyaXB0b3IgZnJvbSBpdHMgR1VJRC4gKi8KKwkJZm10ZGVzYyA9IHV2Y19mb3JtYXRfYnlfZ3VpZCgmYnVmZmVyWzVdKTsKKworCQlpZiAoZm10ZGVzYyAhPSBOVUxMKSB7CisJCQlzdHJuY3B5KGZvcm1hdC0+bmFtZSwgZm10ZGVzYy0+bmFtZSwKKwkJCQlzaXplb2YgZm9ybWF0LT5uYW1lKTsKKwkJCWZvcm1hdC0+ZmNjID0gZm10ZGVzYy0+ZmNjOworCQl9IGVsc2UgeworCQkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJVbmtub3duIHZpZGVvIGZvcm1hdCAiCisJCQkJVVZDX0dVSURfRk9STUFUICJcbiIsCisJCQkJVVZDX0dVSURfQVJHUygmYnVmZmVyWzVdKSk7CisJCQlzbnByaW50Zihmb3JtYXQtPm5hbWUsIHNpemVvZiBmb3JtYXQtPm5hbWUsCisJCQkJVVZDX0dVSURfRk9STUFULCBVVkNfR1VJRF9BUkdTKCZidWZmZXJbNV0pKTsKKwkJCWZvcm1hdC0+ZmNjID0gMDsKKwkJfQorCisJCWZvcm1hdC0+YnBwID0gYnVmZmVyWzIxXTsKKwkJaWYgKGJ1ZmZlclsyXSA9PSBWU19GT1JNQVRfVU5DT01QUkVTU0VEKSB7CisJCQlmdHlwZSA9IFZTX0ZSQU1FX1VOQ09NUFJFU1NFRDsKKwkJfSBlbHNlIHsKKwkJCWZ0eXBlID0gVlNfRlJBTUVfRlJBTUVfQkFTRUQ7CisJCQlpZiAoYnVmZmVyWzI3XSkKKwkJCQlmb3JtYXQtPmZsYWdzID0gVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQ7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFZTX0ZPUk1BVF9NSlBFRzoKKwkJaWYgKGJ1ZmxlbiA8IDExKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQgRk9STUFUIGVycm9yXG4iLAorCQkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXN0cm5jcHkoZm9ybWF0LT5uYW1lLCAiTUpQRUciLCBzaXplb2YgZm9ybWF0LT5uYW1lKTsKKwkJZm9ybWF0LT5mY2MgPSBWNEwyX1BJWF9GTVRfTUpQRUc7CisJCWZvcm1hdC0+ZmxhZ3MgPSBVVkNfRk1UX0ZMQUdfQ09NUFJFU1NFRDsKKwkJZm9ybWF0LT5icHAgPSAwOworCQlmdHlwZSA9IFZTX0ZSQU1FX01KUEVHOworCQlicmVhazsKKworCWNhc2UgVlNfRk9STUFUX0RWOgorCQlpZiAoYnVmbGVuIDwgOSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb3N0cmVhbWluZyIKKwkJCSAgICAgICAiaW50ZXJmYWNlICVkIEZPUk1BVCBlcnJvclxuIiwKKwkJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwKKwkJCSAgICAgICBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQlzd2l0Y2ggKGJ1ZmZlcls4XSAmIDB4N2YpIHsKKwkJY2FzZSAwOgorCQkJc3RybmNweShmb3JtYXQtPm5hbWUsICJTRC1EViIsIHNpemVvZiBmb3JtYXQtPm5hbWUpOworCQkJYnJlYWs7CisJCWNhc2UgMToKKwkJCXN0cm5jcHkoZm9ybWF0LT5uYW1lLCAiU0RMLURWIiwgc2l6ZW9mIGZvcm1hdC0+bmFtZSk7CisJCQlicmVhazsKKwkJY2FzZSAyOgorCQkJc3RybmNweShmb3JtYXQtPm5hbWUsICJIRC1EViIsIHNpemVvZiBmb3JtYXQtPm5hbWUpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQ6IHVua25vd24gRFYgZm9ybWF0ICV1XG4iLAorCQkJICAgICAgIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJICAgICAgIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlciwgYnVmZmVyWzhdKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJc3RybmNhdChmb3JtYXQtPm5hbWUsIGJ1ZmZlcls4XSAmICgxIDw8IDcpID8gIiA2MEh6IiA6ICIgNTBIeiIsCisJCQlzaXplb2YgZm9ybWF0LT5uYW1lKTsKKworCQlmb3JtYXQtPmZjYyA9IFY0TDJfUElYX0ZNVF9EVjsKKwkJZm9ybWF0LT5mbGFncyA9IFVWQ19GTVRfRkxBR19DT01QUkVTU0VEIHwgVVZDX0ZNVF9GTEFHX1NUUkVBTTsKKwkJZm9ybWF0LT5icHAgPSAwOworCQlmdHlwZSA9IDA7CisKKwkJLyogQ3JlYXRlIGEgZHVtbXkgZnJhbWUgZGVzY3JpcHRvci4gKi8KKwkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVswXTsKKwkJbWVtc2V0KCZmb3JtYXQtPmZyYW1lWzBdLCAwLCBzaXplb2YgZm9ybWF0LT5mcmFtZVswXSk7CisJCWZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUgPSAxOworCQlmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCA9IDE7CisJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWwgPSAqaW50ZXJ2YWxzOworCQkqKCppbnRlcnZhbHMpKysgPSAxOworCQlmb3JtYXQtPm5mcmFtZXMgPSAxOworCQlicmVhazsKKworCWNhc2UgVlNfRk9STUFUX01QRUcyVFM6CisJY2FzZSBWU19GT1JNQVRfU1RSRUFNX0JBU0VEOgorCQkvKiBOb3Qgc3VwcG9ydGVkIHlldC4gKi8KKwlkZWZhdWx0OgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkgICAgICAgImludGVyZmFjZSAlZCB1bnN1cHBvcnRlZCBmb3JtYXQgJXVcbiIsCisJCSAgICAgICBkZXYtPnVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyLAorCQkgICAgICAgYnVmZmVyWzJdKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIGZvcm1hdCAlcy5cbiIsIGZvcm1hdC0+bmFtZSk7CisKKwlidWZsZW4gLT0gYnVmZmVyWzBdOworCWJ1ZmZlciArPSBidWZmZXJbMF07CisKKwkvKiBQYXJzZSB0aGUgZnJhbWUgZGVzY3JpcHRvcnMuIE9ubHkgdW5jb21wcmVzc2VkLCBNSlBFRyBhbmQgZnJhbWUKKwkgKiBiYXNlZCBmb3JtYXRzIGhhdmUgZnJhbWUgZGVzY3JpcHRvcnMuCisJICovCisJd2hpbGUgKGJ1ZmxlbiA+IDIgJiYgYnVmZmVyWzJdID09IGZ0eXBlKSB7CisJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbZm9ybWF0LT5uZnJhbWVzXTsKKworCQlpZiAoZnR5cGUgIT0gVlNfRlJBTUVfRlJBTUVfQkFTRUQpCisJCQluID0gYnVmbGVuID4gMjUgPyBidWZmZXJbMjVdIDogMDsKKwkJZWxzZQorCQkJbiA9IGJ1ZmxlbiA+IDIxID8gYnVmZmVyWzIxXSA6IDA7CisKKwkJbiA9IG4gPyBuIDogMzsKKworCQlpZiAoYnVmbGVuIDwgMjYgKyA0Km4pIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmciCisJCQkgICAgICAgImludGVyZmFjZSAlZCBGUkFNRSBlcnJvclxuIiwgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZnJhbWUtPmJGcmFtZUluZGV4ID0gYnVmZmVyWzNdOworCQlmcmFtZS0+Ym1DYXBhYmlsaXRpZXMgPSBidWZmZXJbNF07CisJCWZyYW1lLT53V2lkdGggPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbNV0pOworCQlmcmFtZS0+d0hlaWdodCA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls3XSk7CisJCWZyYW1lLT5kd01pbkJpdFJhdGUgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbOV0pOworCQlmcmFtZS0+ZHdNYXhCaXRSYXRlID0gbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzEzXSk7CisJCWlmIChmdHlwZSAhPSBWU19GUkFNRV9GUkFNRV9CQVNFRCkgeworCQkJZnJhbWUtPmR3TWF4VmlkZW9GcmFtZUJ1ZmZlclNpemUgPQorCQkJCWxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlclsxN10pOworCQkJZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwgPQorCQkJCWxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlclsyMV0pOworCQkJZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSA9IGJ1ZmZlclsyNV07CisJCX0gZWxzZSB7CisJCQlmcmFtZS0+ZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZSA9IDA7CisJCQlmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbCA9CisJCQkJbGUzMl90b19jcHVwKChfX2xlMzIgKikmYnVmZmVyWzE3XSk7CisJCQlmcmFtZS0+YkZyYW1lSW50ZXJ2YWxUeXBlID0gYnVmZmVyWzIxXTsKKwkJfQorCQlmcmFtZS0+ZHdGcmFtZUludGVydmFsID0gKmludGVydmFsczsKKworCQkvKiBTZXZlcmFsIFVWQyBjaGlwc2V0cyBzY3JldyB1cCBkd01heFZpZGVvRnJhbWVCdWZmZXJTaXplCisJCSAqIGNvbXBsZXRlbHkuIE9ic2VydmVkIGJlaGF2aW91cnMgcmFuZ2UgZnJvbSBzZXR0aW5nIHRoZQorCQkgKiB2YWx1ZSB0byAxLjF4IHRoZSBhY3R1YWwgZnJhbWUgc2l6ZSBvZiBoYXJkd2lyaW5nIHRoZQorCQkgKiAxNiBsb3cgYml0cyB0byAwLiBUaGlzIHJlc3VsdHMgaW4gYSBoaWdoZXIgdGhhbiBuZWNlc3NhcnkKKwkJICogbWVtb3J5IHVzYWdlIGFzIHdlbGwgYXMgYSB3cm9uZyBpbWFnZSBzaXplIGluZm9ybWF0aW9uLiBGb3IKKwkJICogdW5jb21wcmVzc2VkIGZvcm1hdHMgdGhpcyBjYW4gYmUgZml4ZWQgYnkgY29tcHV0aW5nIHRoZQorCQkgKiB2YWx1ZSBmcm9tIHRoZSBmcmFtZSBzaXplLgorCQkgKi8KKwkJaWYgKCEoZm9ybWF0LT5mbGFncyAmIFVWQ19GTVRfRkxBR19DT01QUkVTU0VEKSkKKwkJCWZyYW1lLT5kd01heFZpZGVvRnJhbWVCdWZmZXJTaXplID0gZm9ybWF0LT5icHAKKwkJCQkqIGZyYW1lLT53V2lkdGggKiBmcmFtZS0+d0hlaWdodCAvIDg7CisKKwkJLyogU29tZSBib2d1cyBkZXZpY2VzIHJlcG9ydCBkd01pbkZyYW1lSW50ZXJ2YWwgZXF1YWwgdG8KKwkJICogZHdNYXhGcmFtZUludGVydmFsIGFuZCBoYXZlIGR3RnJhbWVJbnRlcnZhbFN0ZXAgc2V0IHRvCisJCSAqIHplcm8uIFNldHRpbmcgYWxsIG51bGwgaW50ZXJ2YWxzIHRvIDEgZml4ZXMgdGhlIHByb2JsZW0gYW5kCisJCSAqIHNvbWUgb3RoZXIgZGl2aXNpb25zIGJ5IHplcm8gd2hpY2ggY291bGQgaGFwcGVuLgorCQkgKi8KKwkJZm9yIChpID0gMDsgaSA8IG47ICsraSkgeworCQkJaW50ZXJ2YWwgPSBsZTMyX3RvX2NwdXAoKF9fbGUzMiAqKSZidWZmZXJbMjYrNCppXSk7CisJCQkqKCppbnRlcnZhbHMpKysgPSBpbnRlcnZhbCA/IGludGVydmFsIDogMTsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBkZWZhdWx0IGZyYW1lIGludGVydmFsIHN0YXlzIGJldHdlZW4KKwkJICogdGhlIGJvdW5kYXJpZXMuCisJCSAqLworCQluIC09IGZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUgPyAxIDogMjsKKwkJZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwgPQorCQkJbWluKGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbbl0sCisJCQkgICAgbWF4KGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMF0sCisJCQkJZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwpKTsKKworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiLSAldXgldSAoJXUuJXUgZnBzKVxuIiwKKwkJCWZyYW1lLT53V2lkdGgsIGZyYW1lLT53SGVpZ2h0LAorCQkJMTAwMDAwMDAvZnJhbWUtPmR3RGVmYXVsdEZyYW1lSW50ZXJ2YWwsCisJCQkoMTAwMDAwMDAwL2ZyYW1lLT5kd0RlZmF1bHRGcmFtZUludGVydmFsKSUxMCk7CisKKwkJZm9ybWF0LT5uZnJhbWVzKys7CisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJaWYgKGJ1ZmxlbiA+IDIgJiYgYnVmZmVyWzJdID09IFZTX1NUSUxMX0lNQUdFX0ZSQU1FKSB7CisJCWJ1ZmxlbiAtPSBidWZmZXJbMF07CisJCWJ1ZmZlciArPSBidWZmZXJbMF07CisJfQorCisJaWYgKGJ1ZmxlbiA+IDIgJiYgYnVmZmVyWzJdID09IFZTX0NPTE9SRk9STUFUKSB7CisJCWlmIChidWZsZW4gPCA2KSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIgorCQkJICAgICAgICJpbnRlcmZhY2UgJWQgQ09MT1JGT1JNQVQgZXJyb3JcbiIsCisJCQkgICAgICAgZGV2LT51ZGV2LT5kZXZudW0sCisJCQkgICAgICAgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJZm9ybWF0LT5jb2xvcnNwYWNlID0gdXZjX2NvbG9yc3BhY2UoYnVmZmVyWzNdKTsKKworCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCXJldHVybiBidWZmZXIgLSBzdGFydDsKK30KKworc3RhdGljIGludCB1dmNfcGFyc2Vfc3RyZWFtaW5nKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsCisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCit7CisJc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbWluZyA9IE5VTEw7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZTsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzID0gJmludGYtPmFsdHNldHRpbmdbMF07CisJdW5zaWduZWQgY2hhciAqX2J1ZmZlciwgKmJ1ZmZlciA9IGFsdHMtPmV4dHJhOworCWludCBfYnVmbGVuLCBidWZsZW4gPSBhbHRzLT5leHRyYWxlbjsKKwl1bnNpZ25lZCBpbnQgbmZvcm1hdHMgPSAwLCBuZnJhbWVzID0gMCwgbmludGVydmFscyA9IDA7CisJdW5zaWduZWQgaW50IHNpemUsIGksIG4sIHA7CisJX191MzIgKmludGVydmFsOworCV9fdTE2IHBzaXplOworCWludCByZXQgPSAtRUlOVkFMOworCisJaWYgKGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VTdWJDbGFzcworCQkhPSBTQ19WSURFT1NUUkVBTUlORykgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIGludGVyZmFjZSAlZCBpc24ndCBhICIKKwkJCSJ2aWRlbyBzdHJlYW1pbmcgaW50ZXJmYWNlXG4iLCBkZXYtPnVkZXYtPmRldm51bSwKKwkJCWludGYtPmFsdHNldHRpbmdbMF0uZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKHVzYl9kcml2ZXJfY2xhaW1faW50ZXJmYWNlKCZ1dmNfZHJpdmVyLmRyaXZlciwgaW50ZiwgZGV2KSkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIGludGVyZmFjZSAlZCBpcyBhbHJlYWR5ICIKKwkJCSJjbGFpbWVkXG4iLCBkZXYtPnVkZXYtPmRldm51bSwKKwkJCWludGYtPmFsdHNldHRpbmdbMF0uZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJc3RyZWFtaW5nID0ga3phbGxvYyhzaXplb2YgKnN0cmVhbWluZywgR0ZQX0tFUk5FTCk7CisJaWYgKHN0cmVhbWluZyA9PSBOVUxMKSB7CisJCXVzYl9kcml2ZXJfcmVsZWFzZV9pbnRlcmZhY2UoJnV2Y19kcml2ZXIuZHJpdmVyLCBpbnRmKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJbXV0ZXhfaW5pdCgmc3RyZWFtaW5nLT5tdXRleCk7CisJc3RyZWFtaW5nLT5pbnRmID0gdXNiX2dldF9pbnRmKGludGYpOworCXN0cmVhbWluZy0+aW50Zm51bSA9IGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXI7CisKKwkvKiBUaGUgUGljbyBpTWFnZSB3ZWJjYW0gaGFzIGl0cyBjbGFzcy1zcGVjaWZpYyBpbnRlcmZhY2UgZGVzY3JpcHRvcnMKKwkgKiBhZnRlciB0aGUgZW5kcG9pbnQgZGVzY3JpcHRvcnMuCisJICovCisJaWYgKGJ1ZmxlbiA9PSAwKSB7CisJCWZvciAoaSA9IDA7IGkgPCBhbHRzLT5kZXNjLmJOdW1FbmRwb2ludHM7ICsraSkgeworCQkJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCA9ICZhbHRzLT5lbmRwb2ludFtpXTsKKworCQkJaWYgKGVwLT5leHRyYWxlbiA9PSAwKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAoZXAtPmV4dHJhbGVuID4gMiAmJgorCQkJICAgIGVwLT5leHRyYVsxXSA9PSBVU0JfRFRfQ1NfSU5URVJGQUNFKSB7CisJCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgInRyeWluZyBleHRyYSBkYXRhICIKKwkJCQkJImZyb20gZW5kcG9pbnQgJXUuXG4iLCBpKTsKKwkJCQlidWZmZXIgPSBhbHRzLT5lbmRwb2ludFtpXS5leHRyYTsKKwkJCQlidWZsZW4gPSBhbHRzLT5lbmRwb2ludFtpXS5leHRyYWxlbjsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCS8qIFNraXAgdGhlIHN0YW5kYXJkIGludGVyZmFjZSBkZXNjcmlwdG9ycy4gKi8KKwl3aGlsZSAoYnVmbGVuID4gMiAmJiBidWZmZXJbMV0gIT0gVVNCX0RUX0NTX0lOVEVSRkFDRSkgeworCQlidWZsZW4gLT0gYnVmZmVyWzBdOworCQlidWZmZXIgKz0gYnVmZmVyWzBdOworCX0KKworCWlmIChidWZsZW4gPD0gMikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAibm8gY2xhc3Mtc3BlY2lmaWMgc3RyZWFtaW5nICIKKwkJCSJpbnRlcmZhY2UgZGVzY3JpcHRvcnMgZm91bmQuXG4iKTsKKwkJZ290byBlcnJvcjsKKwl9CisKKwkvKiBQYXJzZSB0aGUgaGVhZGVyIGRlc2NyaXB0b3IuICovCisJaWYgKGJ1ZmZlclsyXSA9PSBWU19PVVRQVVRfSEVBREVSKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmcgaW50ZXJmYWNlICIKKwkJCSIlZCBPVVRQVVQgSEVBREVSIGRlc2NyaXB0b3IgaXMgbm90IHN1cHBvcnRlZC5cbiIsCisJCQlkZXYtPnVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJZ290byBlcnJvcjsKKwl9IGVsc2UgaWYgKGJ1ZmZlclsyXSA9PSBWU19JTlBVVF9IRUFERVIpIHsKKwkJcCA9IGJ1ZmxlbiA+PSA1ID8gYnVmZmVyWzNdIDogMDsKKwkJbiA9IGJ1ZmxlbiA+PSAxMiA/IGJ1ZmZlclsxMl0gOiAwOworCisJCWlmIChidWZsZW4gPCAxMyArIHAqbiB8fCBidWZmZXJbMl0gIT0gVlNfSU5QVVRfSEVBREVSKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nICIKKwkJCQkiaW50ZXJmYWNlICVkIElOUFVUIEhFQURFUiBkZXNjcmlwdG9yIGlzICIKKwkJCQkiaW52YWxpZC5cbiIsIGRldi0+dWRldi0+ZGV2bnVtLAorCQkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlnb3RvIGVycm9yOworCQl9CisKKwkJc3RyZWFtaW5nLT5oZWFkZXIuYk51bUZvcm1hdHMgPSBwOworCQlzdHJlYW1pbmctPmhlYWRlci5iRW5kcG9pbnRBZGRyZXNzID0gYnVmZmVyWzZdOworCQlzdHJlYW1pbmctPmhlYWRlci5ibUluZm8gPSBidWZmZXJbN107CisJCXN0cmVhbWluZy0+aGVhZGVyLmJUZXJtaW5hbExpbmsgPSBidWZmZXJbOF07CisJCXN0cmVhbWluZy0+aGVhZGVyLmJTdGlsbENhcHR1cmVNZXRob2QgPSBidWZmZXJbOV07CisJCXN0cmVhbWluZy0+aGVhZGVyLmJUcmlnZ2VyU3VwcG9ydCA9IGJ1ZmZlclsxMF07CisJCXN0cmVhbWluZy0+aGVhZGVyLmJUcmlnZ2VyVXNhZ2UgPSBidWZmZXJbMTFdOworCQlzdHJlYW1pbmctPmhlYWRlci5iQ29udHJvbFNpemUgPSBuOworCisJCXN0cmVhbWluZy0+aGVhZGVyLmJtYUNvbnRyb2xzID0ga21hbGxvYyhwKm4sIEdGUF9LRVJORUwpOworCQlpZiAoc3RyZWFtaW5nLT5oZWFkZXIuYm1hQ29udHJvbHMgPT0gTlVMTCkgeworCQkJcmV0ID0gLUVOT01FTTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KKworCQltZW1jcHkoc3RyZWFtaW5nLT5oZWFkZXIuYm1hQ29udHJvbHMsICZidWZmZXJbMTNdLCBwKm4pOworCX0gZWxzZSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9zdHJlYW1pbmcgaW50ZXJmYWNlICIKKwkJCSIlZCBIRUFERVIgZGVzY3JpcHRvciBub3QgZm91bmQuXG4iLCBkZXYtPnVkZXYtPmRldm51bSwKKwkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCWdvdG8gZXJyb3I7CisJfQorCisJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwlidWZmZXIgKz0gYnVmZmVyWzBdOworCisJX2J1ZmZlciA9IGJ1ZmZlcjsKKwlfYnVmbGVuID0gYnVmbGVuOworCisJLyogQ291bnQgdGhlIGZvcm1hdCBhbmQgZnJhbWUgZGVzY3JpcHRvcnMuICovCisJd2hpbGUgKF9idWZsZW4gPiAyKSB7CisJCXN3aXRjaCAoX2J1ZmZlclsyXSkgeworCQljYXNlIFZTX0ZPUk1BVF9VTkNPTVBSRVNTRUQ6CisJCWNhc2UgVlNfRk9STUFUX01KUEVHOgorCQljYXNlIFZTX0ZPUk1BVF9GUkFNRV9CQVNFRDoKKwkJCW5mb3JtYXRzKys7CisJCQlicmVhazsKKworCQljYXNlIFZTX0ZPUk1BVF9EVjoKKwkJCS8qIERWIGZvcm1hdCBoYXMgbm8gZnJhbWUgZGVzY3JpcHRvci4gV2Ugd2lsbCBjcmVhdGUgYQorCQkJICogZHVtbXkgZnJhbWUgZGVzY3JpcHRvciB3aXRoIGEgZHVtbXkgZnJhbWUgaW50ZXJ2YWwuCisJCQkgKi8KKwkJCW5mb3JtYXRzKys7CisJCQluZnJhbWVzKys7CisJCQluaW50ZXJ2YWxzKys7CisJCQlicmVhazsKKworCQljYXNlIFZTX0ZPUk1BVF9NUEVHMlRTOgorCQljYXNlIFZTX0ZPUk1BVF9TVFJFQU1fQkFTRUQ6CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nICIKKwkJCQkiaW50ZXJmYWNlICVkIEZPUk1BVCAldSBpcyBub3Qgc3VwcG9ydGVkLlxuIiwKKwkJCQlkZXYtPnVkZXYtPmRldm51bSwKKwkJCQlhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsIF9idWZmZXJbMl0pOworCQkJYnJlYWs7CisKKwkJY2FzZSBWU19GUkFNRV9VTkNPTVBSRVNTRUQ6CisJCWNhc2UgVlNfRlJBTUVfTUpQRUc6CisJCQluZnJhbWVzKys7CisJCQlpZiAoX2J1ZmxlbiA+IDI1KQorCQkJCW5pbnRlcnZhbHMgKz0gX2J1ZmZlclsyNV0gPyBfYnVmZmVyWzI1XSA6IDM7CisJCQlicmVhazsKKworCQljYXNlIFZTX0ZSQU1FX0ZSQU1FX0JBU0VEOgorCQkJbmZyYW1lcysrOworCQkJaWYgKF9idWZsZW4gPiAyMSkKKwkJCQluaW50ZXJ2YWxzICs9IF9idWZmZXJbMjFdID8gX2J1ZmZlclsyMV0gOiAzOworCQkJYnJlYWs7CisJCX0KKworCQlfYnVmbGVuIC09IF9idWZmZXJbMF07CisJCV9idWZmZXIgKz0gX2J1ZmZlclswXTsKKwl9CisKKwlpZiAobmZvcm1hdHMgPT0gMCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvc3RyZWFtaW5nIGludGVyZmFjZSAiCisJCQkiJWQgaGFzIG5vIHN1cHBvcnRlZCBmb3JtYXRzIGRlZmluZWQuXG4iLAorCQkJZGV2LT51ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCWdvdG8gZXJyb3I7CisJfQorCisJc2l6ZSA9IG5mb3JtYXRzICogc2l6ZW9mICpmb3JtYXQgKyBuZnJhbWVzICogc2l6ZW9mICpmcmFtZQorCSAgICAgKyBuaW50ZXJ2YWxzICogc2l6ZW9mICppbnRlcnZhbDsKKwlmb3JtYXQgPSBremFsbG9jKHNpemUsIEdGUF9LRVJORUwpOworCWlmIChmb3JtYXQgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycm9yOworCX0KKworCWZyYW1lID0gKHN0cnVjdCB1dmNfZnJhbWUgKikmZm9ybWF0W25mb3JtYXRzXTsKKwlpbnRlcnZhbCA9IChfX3UzMiAqKSZmcmFtZVtuZnJhbWVzXTsKKworCXN0cmVhbWluZy0+Zm9ybWF0ID0gZm9ybWF0OworCXN0cmVhbWluZy0+bmZvcm1hdHMgPSBuZm9ybWF0czsKKworCS8qIFBhcnNlIHRoZSBmb3JtYXQgZGVzY3JpcHRvcnMuICovCisJd2hpbGUgKGJ1ZmxlbiA+IDIpIHsKKwkJc3dpdGNoIChidWZmZXJbMl0pIHsKKwkJY2FzZSBWU19GT1JNQVRfVU5DT01QUkVTU0VEOgorCQljYXNlIFZTX0ZPUk1BVF9NSlBFRzoKKwkJY2FzZSBWU19GT1JNQVRfRFY6CisJCWNhc2UgVlNfRk9STUFUX0ZSQU1FX0JBU0VEOgorCQkJZm9ybWF0LT5mcmFtZSA9IGZyYW1lOworCQkJcmV0ID0gdXZjX3BhcnNlX2Zvcm1hdChkZXYsIHN0cmVhbWluZywgZm9ybWF0LAorCQkJCSZpbnRlcnZhbCwgYnVmZmVyLCBidWZsZW4pOworCQkJaWYgKHJldCA8IDApCisJCQkJZ290byBlcnJvcjsKKworCQkJZnJhbWUgKz0gZm9ybWF0LT5uZnJhbWVzOworCQkJZm9ybWF0Kys7CisKKwkJCWJ1ZmxlbiAtPSByZXQ7CisJCQlidWZmZXIgKz0gcmV0OworCQkJY29udGludWU7CisKKwkJZGVmYXVsdDoKKwkJCWJyZWFrOworCQl9CisKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwkvKiBQYXJzZSB0aGUgYWx0ZXJuYXRlIHNldHRpbmdzIHRvIGZpbmQgdGhlIG1heGltdW0gYmFuZHdpZHRoLiAqLworCWZvciAoaSA9IDA7IGkgPCBpbnRmLT5udW1fYWx0c2V0dGluZzsgKytpKSB7CisJCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXA7CisJCWFsdHMgPSAmaW50Zi0+YWx0c2V0dGluZ1tpXTsKKwkJZXAgPSB1dmNfZmluZF9lbmRwb2ludChhbHRzLAorCQkJCXN0cmVhbWluZy0+aGVhZGVyLmJFbmRwb2ludEFkZHJlc3MpOworCQlpZiAoZXAgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCXBzaXplID0gbGUxNl90b19jcHUoZXAtPmRlc2Mud01heFBhY2tldFNpemUpOworCQlwc2l6ZSA9IChwc2l6ZSAmIDB4MDdmZikgKiAoMSArICgocHNpemUgPj4gMTEpICYgMykpOworCQlpZiAocHNpemUgPiBzdHJlYW1pbmctPm1heHBzaXplKQorCQkJc3RyZWFtaW5nLT5tYXhwc2l6ZSA9IHBzaXplOworCX0KKworCWxpc3RfYWRkX3RhaWwoJnN0cmVhbWluZy0+bGlzdCwgJmRldi0+c3RyZWFtaW5nKTsKKwlyZXR1cm4gMDsKKworZXJyb3I6CisJdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSgmdXZjX2RyaXZlci5kcml2ZXIsIGludGYpOworCXVzYl9wdXRfaW50ZihpbnRmKTsKKwlrZnJlZShzdHJlYW1pbmctPmZvcm1hdCk7CisJa2ZyZWUoc3RyZWFtaW5nLT5oZWFkZXIuYm1hQ29udHJvbHMpOworCWtmcmVlKHN0cmVhbWluZyk7CisJcmV0dXJuIHJldDsKK30KKworLyogUGFyc2UgdmVuZG9yLXNwZWNpZmljIGV4dGVuc2lvbnMuICovCitzdGF0aWMgaW50IHV2Y19wYXJzZV92ZW5kb3JfY29udHJvbChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGJ1ZmxlbikKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGRldi0+dWRldjsKKwlzdHJ1Y3QgdXNiX2hvc3RfaW50ZXJmYWNlICphbHRzID0gZGV2LT5pbnRmLT5jdXJfYWx0c2V0dGluZzsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqdW5pdDsKKwl1bnNpZ25lZCBpbnQgbiwgcDsKKwlpbnQgaGFuZGxlZCA9IDA7CisKKwlzd2l0Y2ggKGxlMTZfdG9fY3B1KGRldi0+dWRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikpIHsKKwljYXNlIDB4MDQ2ZDoJCS8qIExvZ2l0ZWNoICovCisJCWlmIChidWZmZXJbMV0gIT0gMHg0MSB8fCBidWZmZXJbMl0gIT0gMHgwMSkKKwkJCWJyZWFrOworCisJCS8qIExvZ2l0ZWNoIGltcGxlbWVudHMgc2V2ZXJhbCB2ZW5kb3Igc3BlY2lmaWMgZnVuY3Rpb25zCisJCSAqIHRocm91Z2ggdmVuZG9yIHNwZWNpZmljIGV4dGVuc2lvbiB1bml0cyAoTFhVKS4KKwkJICoKKwkJICogVGhlIExYVSBkZXNjcmlwdG9ycyBhcmUgc2ltaWxhciB0byBYVSBkZXNjcmlwdG9ycworCQkgKiAoc2VlICJVU0IgRGV2aWNlIFZpZGVvIENsYXNzIGZvciBWaWRlbyBEZXZpY2VzIiwgc2VjdGlvbgorCQkgKiAzLjcuMi42ICJFeHRlbnNpb24gVW5pdCBEZXNjcmlwdG9yIikgd2l0aCB0aGUgZm9sbG93aW5nCisJCSAqIGRpZmZlcmVuY2VzOgorCQkgKgorCQkgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJCSAqIDAJCWJMZW5ndGgJCTEJIE51bWJlcgorCQkgKglTaXplIG9mIHRoaXMgZGVzY3JpcHRvciwgaW4gYnl0ZXM6IDI0K3ArbioyCisJCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICogMjMrcCtuCWJtQ29udHJvbHNUeXBlCU4JQml0bWFwCisJCSAqIAlJbmRpdmlkdWFsIGJpdHMgaW4gdGhlIHNldCBhcmUgZGVmaW5lZDoKKwkJICogCTA6IEFic29sdXRlCisJCSAqIAkxOiBSZWxhdGl2ZQorCQkgKgorCQkgKiAJVGhpcyBiaXRzZXQgaXMgbWFwcGVkIGV4YWN0bHkgdGhlIHNhbWUgYXMgYm1Db250cm9scy4KKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgKiAyMytwK24qMgliUmVzZXJ2ZWQJMQlCb29sZWFuCisJCSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkJICogMjQrcCtuKjIJaUV4dGVuc2lvbgkxCUluZGV4CisJCSAqCUluZGV4IG9mIGEgc3RyaW5nIGRlc2NyaXB0b3IgdGhhdCBkZXNjcmliZXMgdGhpcworCQkgKglleHRlbnNpb24gdW5pdC4KKwkJICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCQkgKi8KKwkJcCA9IGJ1ZmxlbiA+PSAyMiA/IGJ1ZmZlclsyMV0gOiAwOworCQluID0gYnVmbGVuID49IDI1ICsgcCA/IGJ1ZmZlclsyMitwXSA6IDA7CisKKwkJaWYgKGJ1ZmxlbiA8IDI1ICsgcCArIDIqbikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgRVhURU5TSU9OX1VOSVQgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJYnJlYWs7CisJCX0KKworCQl1bml0ID0ga3phbGxvYyhzaXplb2YgKnVuaXQgKyBwICsgMipuLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVuaXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXVuaXQtPmlkID0gYnVmZmVyWzNdOworCQl1bml0LT50eXBlID0gVkNfRVhURU5TSU9OX1VOSVQ7CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uZ3VpZEV4dGVuc2lvbkNvZGUsICZidWZmZXJbNF0sIDE2KTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJOdW1Db250cm9scyA9IGJ1ZmZlclsyMF07CisJCXVuaXQtPmV4dGVuc2lvbi5iTnJJblBpbnMgPQorCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzIxXSk7CisJCXVuaXQtPmV4dGVuc2lvbi5iYVNvdXJjZUlEID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0OworCQltZW1jcHkodW5pdC0+ZXh0ZW5zaW9uLmJhU291cmNlSUQsICZidWZmZXJbMjJdLCBwKTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJDb250cm9sU2l6ZSA9IGJ1ZmZlclsyMitwXTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJtQ29udHJvbHMgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQgKyBwOworCQl1bml0LT5leHRlbnNpb24uYm1Db250cm9sc1R5cGUgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQKKwkJCQkJICAgICAgICsgcCArIG47CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uYm1Db250cm9scywgJmJ1ZmZlclsyMytwXSwgMipuKTsKKworCQlpZiAoYnVmZmVyWzI0K3ArMipuXSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbMjQrcCsyKm5dLCB1bml0LT5uYW1lLAorCQkJCSAgIHNpemVvZiB1bml0LT5uYW1lKTsKKwkJZWxzZQorCQkJc3ByaW50Zih1bml0LT5uYW1lLCAiRXh0ZW5zaW9uICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ1bml0LT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWhhbmRsZWQgPSAxOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gaGFuZGxlZDsKK30KKworc3RhdGljIGludCB1dmNfcGFyc2Vfc3RhbmRhcmRfY29udHJvbChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LAorCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgaW50IGJ1ZmxlbikKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGRldi0+dWRldjsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqdW5pdCwgKnRlcm07CisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGY7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cyA9IGRldi0+aW50Zi0+Y3VyX2FsdHNldHRpbmc7CisJdW5zaWduZWQgaW50IGksIG4sIHAsIGxlbjsKKwlfX3UxNiB0eXBlOworCisJc3dpdGNoIChidWZmZXJbMl0pIHsKKwljYXNlIFZDX0hFQURFUjoKKwkJbiA9IGJ1ZmxlbiA+PSAxMiA/IGJ1ZmZlclsxMV0gOiAwOworCisJCWlmIChidWZsZW4gPCAxMiB8fCBidWZsZW4gPCAxMiArIG4pIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgdmlkZW9jb250cm9sICIKKwkJCQkiaW50ZXJmYWNlICVkIEhFQURFUiBlcnJvclxuIiwgdWRldi0+ZGV2bnVtLAorCQkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCWRldi0+dXZjX3ZlcnNpb24gPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbM10pOworCQlkZXYtPmNsb2NrX2ZyZXF1ZW5jeSA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopJmJ1ZmZlcls3XSk7CisKKwkJLyogUGFyc2UgYWxsIFVTQiBWaWRlbyBTdHJlYW1pbmcgaW50ZXJmYWNlcy4gKi8KKwkJZm9yIChpID0gMDsgaSA8IG47ICsraSkgeworCQkJaW50ZiA9IHVzYl9pZm51bV90b19pZih1ZGV2LCBidWZmZXJbMTIraV0pOworCQkJaWYgKGludGYgPT0gTlVMTCkgeworCQkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJkZXZpY2UgJWQgIgorCQkJCQkiaW50ZXJmYWNlICVkIGRvZXNuJ3QgZXhpc3RzXG4iLAorCQkJCQl1ZGV2LT5kZXZudW0sIGkpOworCQkJCWNvbnRpbnVlOworCQkJfQorCisJCQl1dmNfcGFyc2Vfc3RyZWFtaW5nKGRldiwgaW50Zik7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIFZDX0lOUFVUX1RFUk1JTkFMOgorCQlpZiAoYnVmbGVuIDwgOCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgSU5QVVRfVEVSTUlOQUwgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBNYWtlIHN1cmUgdGhlIHRlcm1pbmFsIHR5cGUgTVNCIGlzIG5vdCBudWxsLCBvdGhlcndpc2UgaXQKKwkJICogY291bGQgYmUgY29uZnVzZWQgd2l0aCBhIHVuaXQuCisJCSAqLworCQl0eXBlID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzRdKTsKKwkJaWYgKCh0eXBlICYgMHhmZjAwKSA9PSAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBJTlBVVF9URVJNSU5BTCAlZCBoYXMgaW52YWxpZCAiCisJCQkJInR5cGUgMHglMDR4LCBza2lwcGluZ1xuIiwgdWRldi0+ZGV2bnVtLAorCQkJCWFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlciwKKwkJCQlidWZmZXJbM10sIHR5cGUpOworCQkJcmV0dXJuIDA7CisJCX0KKworCQluID0gMDsKKwkJcCA9IDA7CisJCWxlbiA9IDg7CisKKwkJaWYgKHR5cGUgPT0gSVRUX0NBTUVSQSkgeworCQkJbiA9IGJ1ZmxlbiA+PSAxNSA/IGJ1ZmZlclsxNF0gOiAwOworCQkJbGVuID0gMTU7CisKKwkJfSBlbHNlIGlmICh0eXBlID09IElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQpIHsKKwkJCW4gPSBidWZsZW4gPj0gOSA/IGJ1ZmZlcls4XSA6IDA7CisJCQlwID0gYnVmbGVuID49IDEwICsgbiA/IGJ1ZmZlcls5K25dIDogMDsKKwkJCWxlbiA9IDEwOworCQl9CisKKwkJaWYgKGJ1ZmxlbiA8IGxlbiArIG4gKyBwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBJTlBVVF9URVJNSU5BTCBlcnJvclxuIiwKKwkJCQl1ZGV2LT5kZXZudW0sIGFsdHMtPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJCXRlcm0gPSBremFsbG9jKHNpemVvZiAqdGVybSArIG4gKyBwLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHRlcm0gPT0gTlVMTCkKKwkJCXJldHVybiAtRU5PTUVNOworCisJCXRlcm0tPmlkID0gYnVmZmVyWzNdOworCQl0ZXJtLT50eXBlID0gdHlwZSB8IFVWQ19URVJNX0lOUFVUOworCisJCWlmIChVVkNfRU5USVRZX1RZUEUodGVybSkgPT0gSVRUX0NBTUVSQSkgeworCQkJdGVybS0+Y2FtZXJhLmJDb250cm9sU2l6ZSA9IG47CisJCQl0ZXJtLT5jYW1lcmEuYm1Db250cm9scyA9IChfX3U4ICopdGVybSArIHNpemVvZiAqdGVybTsKKwkJCXRlcm0tPmNhbWVyYS53T2JqZWN0aXZlRm9jYWxMZW5ndGhNaW4gPQorCQkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls4XSk7CisJCQl0ZXJtLT5jYW1lcmEud09iamVjdGl2ZUZvY2FsTGVuZ3RoTWF4ID0KKwkJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbMTBdKTsKKwkJCXRlcm0tPmNhbWVyYS53T2N1bGFyRm9jYWxMZW5ndGggPQorCQkJCWxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlclsxMl0pOworCQkJbWVtY3B5KHRlcm0tPmNhbWVyYS5ibUNvbnRyb2xzLCAmYnVmZmVyWzE1XSwgbik7CisJCX0gZWxzZSBpZiAoVVZDX0VOVElUWV9UWVBFKHRlcm0pID09IElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQpIHsKKwkJCXRlcm0tPm1lZGlhLmJDb250cm9sU2l6ZSA9IG47CisJCQl0ZXJtLT5tZWRpYS5ibUNvbnRyb2xzID0gKF9fdTggKil0ZXJtICsgc2l6ZW9mICp0ZXJtOworCQkJdGVybS0+bWVkaWEuYlRyYW5zcG9ydE1vZGVTaXplID0gcDsKKwkJCXRlcm0tPm1lZGlhLmJtVHJhbnNwb3J0TW9kZXMgPSAoX191OCAqKXRlcm0KKwkJCQkJCSAgICAgKyBzaXplb2YgKnRlcm0gKyBuOworCQkJbWVtY3B5KHRlcm0tPm1lZGlhLmJtQ29udHJvbHMsICZidWZmZXJbOV0sIG4pOworCQkJbWVtY3B5KHRlcm0tPm1lZGlhLmJtVHJhbnNwb3J0TW9kZXMsICZidWZmZXJbMTArbl0sIHApOworCQl9CisKKwkJaWYgKGJ1ZmZlcls3XSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbN10sIHRlcm0tPm5hbWUsCisJCQkJICAgc2l6ZW9mIHRlcm0tPm5hbWUpOworCQllbHNlIGlmIChVVkNfRU5USVRZX1RZUEUodGVybSkgPT0gSVRUX0NBTUVSQSkKKwkJCXNwcmludGYodGVybS0+bmFtZSwgIkNhbWVyYSAldSIsIGJ1ZmZlclszXSk7CisJCWVsc2UgaWYgKFVWQ19FTlRJVFlfVFlQRSh0ZXJtKSA9PSBJVFRfTUVESUFfVFJBTlNQT1JUX0lOUFVUKQorCQkJc3ByaW50Zih0ZXJtLT5uYW1lLCAiTWVkaWEgJXUiLCBidWZmZXJbM10pOworCQllbHNlCisJCQlzcHJpbnRmKHRlcm0tPm5hbWUsICJJbnB1dCAldSIsIGJ1ZmZlclszXSk7CisKKwkJbGlzdF9hZGRfdGFpbCgmdGVybS0+bGlzdCwgJmRldi0+ZW50aXRpZXMpOworCQlicmVhazsKKworCWNhc2UgVkNfT1VUUFVUX1RFUk1JTkFMOgorCQlpZiAoYnVmbGVuIDwgOSkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgT1VUUFVUX1RFUk1JTkFMIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJLyogTWFrZSBzdXJlIHRoZSB0ZXJtaW5hbCB0eXBlIE1TQiBpcyBub3QgbnVsbCwgb3RoZXJ3aXNlIGl0CisJCSAqIGNvdWxkIGJlIGNvbmZ1c2VkIHdpdGggYSB1bml0LgorCQkgKi8KKwkJdHlwZSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmJ1ZmZlcls0XSk7CisJCWlmICgodHlwZSAmIDB4ZmYwMCkgPT0gMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgT1VUUFVUX1RFUk1JTkFMICVkIGhhcyBpbnZhbGlkICIKKwkJCQkidHlwZSAweCUwNHgsIHNraXBwaW5nXG4iLCB1ZGV2LT5kZXZudW0sCisJCQkJYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyLCBidWZmZXJbM10sIHR5cGUpOworCQkJcmV0dXJuIDA7CisJCX0KKworCQl0ZXJtID0ga3phbGxvYyhzaXplb2YgKnRlcm0sIEdGUF9LRVJORUwpOworCQlpZiAodGVybSA9PSBOVUxMKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJdGVybS0+aWQgPSBidWZmZXJbM107CisJCXRlcm0tPnR5cGUgPSB0eXBlIHwgVVZDX1RFUk1fT1VUUFVUOworCQl0ZXJtLT5vdXRwdXQuYlNvdXJjZUlEID0gYnVmZmVyWzddOworCisJCWlmIChidWZmZXJbOF0gIT0gMCkKKwkJCXVzYl9zdHJpbmcodWRldiwgYnVmZmVyWzhdLCB0ZXJtLT5uYW1lLAorCQkJCSAgIHNpemVvZiB0ZXJtLT5uYW1lKTsKKwkJZWxzZQorCQkJc3ByaW50Zih0ZXJtLT5uYW1lLCAiT3V0cHV0ICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ0ZXJtLT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWJyZWFrOworCisJY2FzZSBWQ19TRUxFQ1RPUl9VTklUOgorCQlwID0gYnVmbGVuID49IDUgPyBidWZmZXJbNF0gOiAwOworCisJCWlmIChidWZsZW4gPCA1IHx8IGJ1ZmxlbiA8IDYgKyBwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiZGV2aWNlICVkIHZpZGVvY29udHJvbCAiCisJCQkJImludGVyZmFjZSAlZCBTRUxFQ1RPUl9VTklUIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJdW5pdCA9IGt6YWxsb2Moc2l6ZW9mICp1bml0ICsgcCwgR0ZQX0tFUk5FTCk7CisJCWlmICh1bml0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl1bml0LT5pZCA9IGJ1ZmZlclszXTsKKwkJdW5pdC0+dHlwZSA9IGJ1ZmZlclsyXTsKKwkJdW5pdC0+c2VsZWN0b3IuYk5ySW5QaW5zID0gYnVmZmVyWzRdOworCQl1bml0LT5zZWxlY3Rvci5iYVNvdXJjZUlEID0gKF9fdTggKil1bml0ICsgc2l6ZW9mICp1bml0OworCQltZW1jcHkodW5pdC0+c2VsZWN0b3IuYmFTb3VyY2VJRCwgJmJ1ZmZlcls1XSwgcCk7CisKKwkJaWYgKGJ1ZmZlcls1K3BdICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlcls1K3BdLCB1bml0LT5uYW1lLAorCQkJCSAgIHNpemVvZiB1bml0LT5uYW1lKTsKKwkJZWxzZQorCQkJc3ByaW50Zih1bml0LT5uYW1lLCAiU2VsZWN0b3IgJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnVuaXQtPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1BST0NFU1NJTkdfVU5JVDoKKwkJbiA9IGJ1ZmxlbiA+PSA4ID8gYnVmZmVyWzddIDogMDsKKwkJcCA9IGRldi0+dXZjX3ZlcnNpb24gPj0gMHgwMTEwID8gMTAgOiA5OworCisJCWlmIChidWZsZW4gPCBwICsgbikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgUFJPQ0VTU0lOR19VTklUIGVycm9yXG4iLAorCQkJCXVkZXYtPmRldm51bSwgYWx0cy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKwkJCXJldHVybiAtRUlOVkFMOworCQl9CisKKwkJdW5pdCA9IGt6YWxsb2Moc2l6ZW9mICp1bml0ICsgbiwgR0ZQX0tFUk5FTCk7CisJCWlmICh1bml0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl1bml0LT5pZCA9IGJ1ZmZlclszXTsKKwkJdW5pdC0+dHlwZSA9IGJ1ZmZlclsyXTsKKwkJdW5pdC0+cHJvY2Vzc2luZy5iU291cmNlSUQgPSBidWZmZXJbNF07CisJCXVuaXQtPnByb2Nlc3Npbmcud01heE11bHRpcGxpZXIgPQorCQkJbGUxNl90b19jcHVwKChfX2xlMTYgKikmYnVmZmVyWzVdKTsKKwkJdW5pdC0+cHJvY2Vzc2luZy5iQ29udHJvbFNpemUgPSBidWZmZXJbN107CisJCXVuaXQtPnByb2Nlc3NpbmcuYm1Db250cm9scyA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdDsKKwkJbWVtY3B5KHVuaXQtPnByb2Nlc3NpbmcuYm1Db250cm9scywgJmJ1ZmZlcls4XSwgbik7CisJCWlmIChkZXYtPnV2Y192ZXJzaW9uID49IDB4MDExMCkKKwkJCXVuaXQtPnByb2Nlc3NpbmcuYm1WaWRlb1N0YW5kYXJkcyA9IGJ1ZmZlcls5K25dOworCisJCWlmIChidWZmZXJbOCtuXSAhPSAwKQorCQkJdXNiX3N0cmluZyh1ZGV2LCBidWZmZXJbOCtuXSwgdW5pdC0+bmFtZSwKKwkJCQkgICBzaXplb2YgdW5pdC0+bmFtZSk7CisJCWVsc2UKKwkJCXNwcmludGYodW5pdC0+bmFtZSwgIlByb2Nlc3NpbmcgJXUiLCBidWZmZXJbM10pOworCisJCWxpc3RfYWRkX3RhaWwoJnVuaXQtPmxpc3QsICZkZXYtPmVudGl0aWVzKTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX0VYVEVOU0lPTl9VTklUOgorCQlwID0gYnVmbGVuID49IDIyID8gYnVmZmVyWzIxXSA6IDA7CisJCW4gPSBidWZsZW4gPj0gMjQgKyBwID8gYnVmZmVyWzIyK3BdIDogMDsKKworCQlpZiAoYnVmbGVuIDwgMjQgKyBwICsgbikgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgImRldmljZSAlZCB2aWRlb2NvbnRyb2wgIgorCQkJCSJpbnRlcmZhY2UgJWQgRVhURU5TSU9OX1VOSVQgZXJyb3JcbiIsCisJCQkJdWRldi0+ZGV2bnVtLCBhbHRzLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQl1bml0ID0ga3phbGxvYyhzaXplb2YgKnVuaXQgKyBwICsgbiwgR0ZQX0tFUk5FTCk7CisJCWlmICh1bml0ID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQl1bml0LT5pZCA9IGJ1ZmZlclszXTsKKwkJdW5pdC0+dHlwZSA9IGJ1ZmZlclsyXTsKKwkJbWVtY3B5KHVuaXQtPmV4dGVuc2lvbi5ndWlkRXh0ZW5zaW9uQ29kZSwgJmJ1ZmZlcls0XSwgMTYpOworCQl1bml0LT5leHRlbnNpb24uYk51bUNvbnRyb2xzID0gYnVmZmVyWzIwXTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJOckluUGlucyA9CisJCQlsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZidWZmZXJbMjFdKTsKKwkJdW5pdC0+ZXh0ZW5zaW9uLmJhU291cmNlSUQgPSAoX191OCAqKXVuaXQgKyBzaXplb2YgKnVuaXQ7CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uYmFTb3VyY2VJRCwgJmJ1ZmZlclsyMl0sIHApOworCQl1bml0LT5leHRlbnNpb24uYkNvbnRyb2xTaXplID0gYnVmZmVyWzIyK3BdOworCQl1bml0LT5leHRlbnNpb24uYm1Db250cm9scyA9IChfX3U4ICopdW5pdCArIHNpemVvZiAqdW5pdCArIHA7CisJCW1lbWNweSh1bml0LT5leHRlbnNpb24uYm1Db250cm9scywgJmJ1ZmZlclsyMytwXSwgbik7CisKKwkJaWYgKGJ1ZmZlclsyMytwK25dICE9IDApCisJCQl1c2Jfc3RyaW5nKHVkZXYsIGJ1ZmZlclsyMytwK25dLCB1bml0LT5uYW1lLAorCQkJCSAgIHNpemVvZiB1bml0LT5uYW1lKTsKKwkJZWxzZQorCQkJc3ByaW50Zih1bml0LT5uYW1lLCAiRXh0ZW5zaW9uICV1IiwgYnVmZmVyWzNdKTsKKworCQlsaXN0X2FkZF90YWlsKCZ1bml0LT5saXN0LCAmZGV2LT5lbnRpdGllcyk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9ERVNDUiwgIkZvdW5kIGFuIHVua25vd24gQ1NfSU5URVJGQUNFICIKKwkJCSJkZXNjcmlwdG9yICgldSlcbiIsIGJ1ZmZlclsyXSk7CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y19wYXJzZV9jb250cm9sKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cyA9IGRldi0+aW50Zi0+Y3VyX2FsdHNldHRpbmc7CisJdW5zaWduZWQgY2hhciAqYnVmZmVyID0gYWx0cy0+ZXh0cmE7CisJaW50IGJ1ZmxlbiA9IGFsdHMtPmV4dHJhbGVuOworCWludCByZXQ7CisKKwkvKiBQYXJzZSB0aGUgZGVmYXVsdCBhbHRlcm5hdGUgc2V0dGluZyBvbmx5LCBhcyB0aGUgVVZDIHNwZWNpZmljYXRpb24KKwkgKiBkZWZpbmVzIGEgc2luZ2xlIGFsdGVybmF0ZSBzZXR0aW5nLCB0aGUgZGVmYXVsdCBhbHRlcm5hdGUgc2V0dGluZworCSAqIHplcm8uCisJICovCisKKwl3aGlsZSAoYnVmbGVuID4gMikgeworCQlpZiAodXZjX3BhcnNlX3ZlbmRvcl9jb250cm9sKGRldiwgYnVmZmVyLCBidWZsZW4pIHx8CisJCSAgICBidWZmZXJbMV0gIT0gVVNCX0RUX0NTX0lOVEVSRkFDRSkKKwkJCWdvdG8gbmV4dF9kZXNjcmlwdG9yOworCisJCWlmICgocmV0ID0gdXZjX3BhcnNlX3N0YW5kYXJkX2NvbnRyb2woZGV2LCBidWZmZXIsIGJ1ZmxlbikpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKK25leHRfZGVzY3JpcHRvcjoKKwkJYnVmbGVuIC09IGJ1ZmZlclswXTsKKwkJYnVmZmVyICs9IGJ1ZmZlclswXTsKKwl9CisKKwkvKiBDaGVjayBpZiB0aGUgb3B0aW9uYWwgc3RhdHVzIGVuZHBvaW50IGlzIHByZXNlbnQuICovCisJaWYgKGFsdHMtPmRlc2MuYk51bUVuZHBvaW50cyA9PSAxKSB7CisJCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXAgPSAmYWx0cy0+ZW5kcG9pbnRbMF07CisJCXN0cnVjdCB1c2JfZW5kcG9pbnRfZGVzY3JpcHRvciAqZGVzYyA9ICZlcC0+ZGVzYzsKKworCQlpZiAodXNiX2VuZHBvaW50X2lzX2ludF9pbihkZXNjKSAmJgorCQkgICAgbGUxNl90b19jcHUoZGVzYy0+d01heFBhY2tldFNpemUpID49IDggJiYKKwkJICAgIGRlc2MtPmJJbnRlcnZhbCAhPSAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgYSBTdGF0dXMgZW5kcG9pbnQgIgorCQkJCSIoYWRkciAlMDJ4KS5cbiIsIGRlc2MtPmJFbmRwb2ludEFkZHJlc3MpOworCQkJZGV2LT5pbnRfZXAgPSBlcDsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVTQiBwcm9iZSBhbmQgZGlzY29ubmVjdAorICovCisKKy8qCisgKiBVbnJlZ2lzdGVyIHRoZSB2aWRlbyBkZXZpY2VzLgorICovCitzdGF0aWMgdm9pZCB1dmNfdW5yZWdpc3Rlcl92aWRlbyhzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCWlmIChkZXYtPnZpZGVvLnZkZXYpIHsKKwkJaWYgKGRldi0+dmlkZW8udmRldi0+bWlub3IgPT0gLTEpCisJCQl2aWRlb19kZXZpY2VfcmVsZWFzZShkZXYtPnZpZGVvLnZkZXYpOworCQllbHNlCisJCQl2aWRlb191bnJlZ2lzdGVyX2RldmljZShkZXYtPnZpZGVvLnZkZXYpOworCQlkZXYtPnZpZGVvLnZkZXYgPSBOVUxMOworCX0KK30KKworLyoKKyAqIFNjYW4gdGhlIFVWQyBkZXNjcmlwdG9ycyB0byBsb2NhdGUgYSBjaGFpbiBzdGFydGluZyBhdCBhbiBPdXRwdXQgVGVybWluYWwKKyAqIGFuZCBjb250YWluaW5nIHRoZSBmb2xsb3dpbmcgdW5pdHM6CisgKgorICogLSBhIFVTQiBTdHJlYW1pbmcgT3V0cHV0IFRlcm1pbmFsCisgKiAtIHplcm8gb3Igb25lIFByb2Nlc3NpbmcgVW5pdAorICogLSB6ZXJvLCBvbmUgb3IgbW9kZSBzaW5nbGUtaW5wdXQgU2VsZWN0b3IgVW5pdHMKKyAqIC0gemVybyBvciBvbmUgbXVsdGlwbGUtaW5wdXQgU2VsZWN0b3IgVW5pdHMsIHByb3ZpZGVkIGFsbCBpbnB1dHMgYXJlCisgKiAgIGNvbm5lY3RlZCB0byBpbnB1dCB0ZXJtaW5hbHMKKyAqIC0gemVybywgb25lIG9yIG1vZGUgc2luZ2xlLWlucHV0IEV4dGVuc2lvbiBVbml0cworICogLSBvbmUgQ2FtZXJhIElucHV0IFRlcm1pbmFsLCBvciBvbmUgb3IgbW9yZSBFeHRlcm5hbCB0ZXJtaW5hbHMuCisgKgorICogQSBzaWRlIGZvcndhcmQgc2NhbiBpcyBtYWRlIG9uIGVhY2ggZGV0ZWN0ZWQgZW50aXR5IHRvIGNoZWNrIGZvciBhZGRpdGlvbmFsCisgKiBleHRlbnNpb24gdW5pdHMuCisgKi8KK3N0YXRpYyBpbnQgdXZjX3NjYW5fY2hhaW5fZW50aXR5KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5KQoreworCXN3aXRjaCAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkpIHsKKwljYXNlIFZDX0VYVEVOU0lPTl9VTklUOgorCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCIgPC0gWFUgJWQiLCBlbnRpdHktPmlkKTsKKworCQlpZiAoZW50aXR5LT5leHRlbnNpb24uYk5ySW5QaW5zICE9IDEpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJFeHRlbnNpb24gdW5pdCAlZCBoYXMgbW9yZSAiCisJCQkJInRoYW4gMSBpbnB1dCBwaW4uXG4iLCBlbnRpdHktPmlkKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCWxpc3RfYWRkX3RhaWwoJmVudGl0eS0+Y2hhaW4sICZ2aWRlby0+ZXh0ZW5zaW9ucyk7CisJCWJyZWFrOworCisJY2FzZSBWQ19QUk9DRVNTSU5HX1VOSVQ6CisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIiA8LSBQVSAlZCIsIGVudGl0eS0+aWQpOworCisJCWlmICh2aWRlby0+cHJvY2Vzc2luZyAhPSBOVUxMKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgbXVsdGlwbGUgIgorCQkJCSJQcm9jZXNzaW5nIFVuaXRzIGluIGNoYWluLlxuIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQl2aWRlby0+cHJvY2Vzc2luZyA9IGVudGl0eTsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1NFTEVDVE9SX1VOSVQ6CisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIiA8LSBTVSAlZCIsIGVudGl0eS0+aWQpOworCisJCS8qIFNpbmdsZS1pbnB1dCBzZWxlY3RvciB1bml0cyBhcmUgaWdub3JlZC4gKi8KKwkJaWYgKGVudGl0eS0+c2VsZWN0b3IuYk5ySW5QaW5zID09IDEpCisJCQlicmVhazsKKworCQlpZiAodmlkZW8tPnNlbGVjdG9yICE9IE5VTEwpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJGb3VuZCBtdWx0aXBsZSBTZWxlY3RvciAiCisJCQkJIlVuaXRzIGluIGNoYWluLlxuIik7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQl2aWRlby0+c2VsZWN0b3IgPSBlbnRpdHk7CisJCWJyZWFrOworCisJY2FzZSBJVFRfVkVORE9SX1NQRUNJRklDOgorCWNhc2UgSVRUX0NBTUVSQToKKwljYXNlIElUVF9NRURJQV9UUkFOU1BPUlRfSU5QVVQ6CisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpCisJCQlwcmludGsoIiA8LSBJVCAlZFxuIiwgZW50aXR5LT5pZCk7CisKKwkJbGlzdF9hZGRfdGFpbCgmZW50aXR5LT5jaGFpbiwgJnZpZGVvLT5pdGVybXMpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJVbnN1cHBvcnRlZCBlbnRpdHkgdHlwZSAiCisJCQkiMHglMDR4IGZvdW5kIGluIGNoYWluLlxuIiwgVVZDX0VOVElUWV9UWVBFKGVudGl0eSkpOworCQlyZXR1cm4gLTE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3NjYW5fY2hhaW5fZm9yd2FyZChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSwgc3RydWN0IHV2Y19lbnRpdHkgKnByZXYpCit7CisJc3RydWN0IHV2Y19lbnRpdHkgKmZvcndhcmQ7CisJaW50IGZvdW5kOworCisJLyogRm9yd2FyZCBzY2FuICovCisJZm9yd2FyZCA9IE5VTEw7CisJZm91bmQgPSAwOworCisJd2hpbGUgKDEpIHsKKwkJZm9yd2FyZCA9IHV2Y19lbnRpdHlfYnlfcmVmZXJlbmNlKHZpZGVvLT5kZXYsIGVudGl0eS0+aWQsCisJCQlmb3J3YXJkKTsKKwkJaWYgKGZvcndhcmQgPT0gTlVMTCkKKwkJCWJyZWFrOworCisJCWlmIChVVkNfRU5USVRZX1RZUEUoZm9yd2FyZCkgIT0gVkNfRVhURU5TSU9OX1VOSVQgfHwKKwkJICAgIGZvcndhcmQgPT0gcHJldikKKwkJCWNvbnRpbnVlOworCisJCWlmIChmb3J3YXJkLT5leHRlbnNpb24uYk5ySW5QaW5zICE9IDEpIHsKKwkJCXV2Y190cmFjZShVVkNfVFJBQ0VfREVTQ1IsICJFeHRlbnNpb24gdW5pdCAlZCBoYXMiCisJCQkJIm1vcmUgdGhhbiAxIGlucHV0IHBpbi5cbiIsIGVudGl0eS0+aWQpOworCQkJcmV0dXJuIC0xOworCQl9CisKKwkJbGlzdF9hZGRfdGFpbCgmZm9yd2FyZC0+Y2hhaW4sICZ2aWRlby0+ZXh0ZW5zaW9ucyk7CisJCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpIHsKKwkJCWlmICghZm91bmQpCisJCQkJcHJpbnRrKCIgKC0+IFhVIik7CisKKwkJCXByaW50aygiICVkIiwgZm9yd2FyZC0+aWQpOworCQkJZm91bmQgPSAxOworCQl9CisJfQorCWlmIChmb3VuZCkKKwkJcHJpbnRrKCIpIik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfc2Nhbl9jaGFpbl9iYWNrd2FyZChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eSkKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqdGVybTsKKwlpbnQgaWQgPSAtMSwgaTsKKworCXN3aXRjaCAoVVZDX0VOVElUWV9UWVBFKGVudGl0eSkpIHsKKwljYXNlIFZDX0VYVEVOU0lPTl9VTklUOgorCQlpZCA9IGVudGl0eS0+ZXh0ZW5zaW9uLmJhU291cmNlSURbMF07CisJCWJyZWFrOworCisJY2FzZSBWQ19QUk9DRVNTSU5HX1VOSVQ6CisJCWlkID0gZW50aXR5LT5wcm9jZXNzaW5nLmJTb3VyY2VJRDsKKwkJYnJlYWs7CisKKwljYXNlIFZDX1NFTEVDVE9SX1VOSVQ6CisJCS8qIFNpbmdsZS1pbnB1dCBzZWxlY3RvciB1bml0cyBhcmUgaWdub3JlZC4gKi8KKwkJaWYgKGVudGl0eS0+c2VsZWN0b3IuYk5ySW5QaW5zID09IDEpIHsKKwkJCWlkID0gZW50aXR5LT5zZWxlY3Rvci5iYVNvdXJjZUlEWzBdOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCIgPC0gSVQiKTsKKworCQl2aWRlby0+c2VsZWN0b3IgPSBlbnRpdHk7CisJCWZvciAoaSA9IDA7IGkgPCBlbnRpdHktPnNlbGVjdG9yLmJOckluUGluczsgKytpKSB7CisJCQlpZCA9IGVudGl0eS0+c2VsZWN0b3IuYmFTb3VyY2VJRFtpXTsKKwkJCXRlcm0gPSB1dmNfZW50aXR5X2J5X2lkKHZpZGVvLT5kZXYsIGlkKTsKKwkJCWlmICh0ZXJtID09IE5VTEwgfHwgIVVWQ19FTlRJVFlfSVNfSVRFUk0odGVybSkpIHsKKwkJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiU2VsZWN0b3IgdW5pdCAlZCAiCisJCQkJCSJpbnB1dCAlZCBpc24ndCBjb25uZWN0ZWQgdG8gYW4gIgorCQkJCQkiaW5wdXQgdGVybWluYWxcbiIsIGVudGl0eS0+aWQsIGkpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKworCQkJaWYgKHV2Y190cmFjZV9wYXJhbSAmIFVWQ19UUkFDRV9QUk9CRSkKKwkJCQlwcmludGsoIiAlZCIsIHRlcm0tPmlkKTsKKworCQkJbGlzdF9hZGRfdGFpbCgmdGVybS0+Y2hhaW4sICZ2aWRlby0+aXRlcm1zKTsKKwkJCXV2Y19zY2FuX2NoYWluX2ZvcndhcmQodmlkZW8sIHRlcm0sIGVudGl0eSk7CisJCX0KKworCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgVVZDX1RSQUNFX1BST0JFKQorCQkJcHJpbnRrKCJcbiIpOworCisJCWlkID0gMDsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIGlkOworfQorCitzdGF0aWMgaW50IHV2Y19zY2FuX2NoYWluKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqZW50aXR5LCAqcHJldjsKKwlpbnQgaWQ7CisKKwllbnRpdHkgPSB2aWRlby0+b3Rlcm07CisJdXZjX3RyYWNlKFVWQ19UUkFDRV9QUk9CRSwgIlNjYW5uaW5nIFVWQyBjaGFpbjogT1QgJWQiLCBlbnRpdHktPmlkKTsKKwlpZCA9IGVudGl0eS0+b3V0cHV0LmJTb3VyY2VJRDsKKwl3aGlsZSAoaWQgIT0gMCkgeworCQlwcmV2ID0gZW50aXR5OworCQllbnRpdHkgPSB1dmNfZW50aXR5X2J5X2lkKHZpZGVvLT5kZXYsIGlkKTsKKwkJaWYgKGVudGl0eSA9PSBOVUxMKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0RFU0NSLCAiRm91bmQgcmVmZXJlbmNlIHRvICIKKwkJCQkidW5rbm93biBlbnRpdHkgJWQuXG4iLCBpZCk7CisJCQlyZXR1cm4gLTE7CisJCX0KKworCQkvKiBQcm9jZXNzIGVudGl0eSAqLworCQlpZiAodXZjX3NjYW5fY2hhaW5fZW50aXR5KHZpZGVvLCBlbnRpdHkpIDwgMCkKKwkJCXJldHVybiAtMTsKKworCQkvKiBGb3J3YXJkIHNjYW4gKi8KKwkJaWYgKHV2Y19zY2FuX2NoYWluX2ZvcndhcmQodmlkZW8sIGVudGl0eSwgcHJldikgPCAwKQorCQkJcmV0dXJuIC0xOworCisJCS8qIFN0b3Agd2hlbiBhIHRlcm1pbmFsIGlzIGZvdW5kLiAqLworCQlpZiAoIVVWQ19FTlRJVFlfSVNfVU5JVChlbnRpdHkpKQorCQkJYnJlYWs7CisKKwkJLyogQmFja3dhcmQgc2NhbiAqLworCQlpZCA9IHV2Y19zY2FuX2NoYWluX2JhY2t3YXJkKHZpZGVvLCBlbnRpdHkpOworCQlpZiAoaWQgPCAwKQorCQkJcmV0dXJuIGlkOworCX0KKworCS8qIEluaXRpYWxpemUgdGhlIHZpZGVvIGJ1ZmZlcnMgcXVldWUuICovCisJdXZjX3F1ZXVlX2luaXQoJnZpZGVvLT5xdWV1ZSk7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFJlZ2lzdGVyIHRoZSB2aWRlbyBkZXZpY2VzLgorICoKKyAqIFRoZSBkcml2ZXIgY3VycmVudGx5IHN1cHBvcnRzIGEgc2luZ2xlIHZpZGVvIGRldmljZSBwZXIgY29udHJvbCBpbnRlcmZhY2UKKyAqIG9ubHkuIFRoZSB0ZXJtaW5hbCBhbmQgdW5pdHMgbXVzdCBtYXRjaCB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZToKKyAqCisgKiBJVFRfQ0FNRVJBIC0+IFZDX1BST0NFU1NJTkdfVU5JVCAtPiBWQ19FWFRFTlNJT05fVU5JVHswLG59IC0+IFRUX1NUUkVBTUlORworICoKKyAqIFRoZSBFeHRlbnNpb24gVW5pdHMsIGlmIHByZXNlbnQsIG11c3QgaGF2ZSBhIHNpbmdsZSBpbnB1dCBwaW4uIFRoZQorICogUHJvY2Vzc2luZyBVbml0IGFuZCBFeHRlbnNpb24gVW5pdHMgY2FuIGJlIGluIGFueSBvcmRlci4gQWRkaXRpb25hbAorICogRXh0ZW5zaW9uIFVuaXRzIGNvbm5lY3RlZCB0byB0aGUgbWFpbiBjaGFpbiBhcyBzaW5nbGUtdW5pdCBicmFuY2hlcyBhcmUKKyAqIGFsc28gc3VwcG9ydGVkLgorICovCitzdGF0aWMgaW50IHV2Y19yZWdpc3Rlcl92aWRlbyhzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXY7CisJc3RydWN0IHV2Y19lbnRpdHkgKnRlcm07CisJaW50IGZvdW5kID0gMCwgcmV0OworCisJLyogQ2hlY2sgaWYgdGhlIGNvbnRyb2wgaW50ZXJmYWNlIG1hdGNoZXMgdGhlIHN0cnVjdHVyZSB3ZSBleHBlY3QuICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZXJtLCAmZGV2LT5lbnRpdGllcywgbGlzdCkgeworCQlzdHJ1Y3QgdXZjX3N0cmVhbWluZyAqc3RyZWFtaW5nOworCisJCWlmIChVVkNfRU5USVRZX1RZUEUodGVybSkgIT0gVFRfU1RSRUFNSU5HKQorCQkJY29udGludWU7CisKKwkJbWVtc2V0KCZkZXYtPnZpZGVvLCAwLCBzaXplb2YgZGV2LT52aWRlbyk7CisJCW11dGV4X2luaXQoJmRldi0+dmlkZW8uY3RybF9tdXRleCk7CisJCUlOSVRfTElTVF9IRUFEKCZkZXYtPnZpZGVvLml0ZXJtcyk7CisJCUlOSVRfTElTVF9IRUFEKCZkZXYtPnZpZGVvLmV4dGVuc2lvbnMpOworCQlkZXYtPnZpZGVvLm90ZXJtID0gdGVybTsKKwkJZGV2LT52aWRlby5kZXYgPSBkZXY7CisJCWlmICh1dmNfc2Nhbl9jaGFpbigmZGV2LT52aWRlbykgPCAwKQorCQkJY29udGludWU7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShzdHJlYW1pbmcsICZkZXYtPnN0cmVhbWluZywgbGlzdCkgeworCQkJaWYgKHN0cmVhbWluZy0+aGVhZGVyLmJUZXJtaW5hbExpbmsgPT0gdGVybS0+aWQpIHsKKwkJCQlkZXYtPnZpZGVvLnN0cmVhbWluZyA9IHN0cmVhbWluZzsKKwkJCQlmb3VuZCA9IDE7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlpZiAoZm91bmQpCisJCQlicmVhazsKKwl9CisKKwlpZiAoIWZvdW5kKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiTm8gdmFsaWQgdmlkZW8gY2hhaW4gZm91bmQuXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfUFJPQkUpIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJGb3VuZCBhIHZhbGlkIHZpZGVvIGNoYWluICgiKTsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeSh0ZXJtLCAmZGV2LT52aWRlby5pdGVybXMsIGNoYWluKSB7CisJCQlwcmludGsoIiVkIiwgdGVybS0+aWQpOworCQkJaWYgKHRlcm0tPmNoYWluLm5leHQgIT0gJmRldi0+dmlkZW8uaXRlcm1zKQorCQkJCXByaW50aygiLCIpOworCQl9CisJCXByaW50aygiIC0+ICVkKS5cbiIsIGRldi0+dmlkZW8ub3Rlcm0tPmlkKTsKKwl9CisKKwkvKiBJbml0aWFsaXplIHRoZSBzdHJlYW1pbmcgaW50ZXJmYWNlIHdpdGggZGVmYXVsdCBzdHJlYW1pbmcKKwkgKiBwYXJhbWV0ZXJzLgorCSAqLworCWlmICgocmV0ID0gdXZjX3ZpZGVvX2luaXQoJmRldi0+dmlkZW8pKSA8IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0VSUiwgIkZhaWxlZCB0byBpbml0aWFsaXplIHRoZSBkZXZpY2UgIgorCQkJIiglZCkuXG4iLCByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIFJlZ2lzdGVyIHRoZSBkZXZpY2Ugd2l0aCBWNEwuICovCisJdmRldiA9IHZpZGVvX2RldmljZV9hbGxvYygpOworCWlmICh2ZGV2ID09IE5VTEwpCisJCXJldHVybiAtMTsKKworCS8qIFdlIGFscmVhZHkgaG9sZCBhIHJlZmVyZW5jZSB0byBkZXYtPnVkZXYuIFRoZSB2aWRlbyBkZXZpY2Ugd2lsbCBiZQorCSAqIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhlIHJlZmVyZW5jZSBpcyByZWxlYXNlZCwgc28gd2UgZG9uJ3QgbmVlZCB0bworCSAqIGdldCBhbm90aGVyIG9uZS4KKwkgKi8KKwl2ZGV2LT5kZXYgPSAmZGV2LT5pbnRmLT5kZXY7CisJdmRldi0+dHlwZSA9IDA7CisJdmRldi0+dHlwZTIgPSAwOworCXZkZXYtPm1pbm9yID0gLTE7CisJdmRldi0+Zm9wcyA9ICZ1dmNfZm9wczsKKwl2ZGV2LT5yZWxlYXNlID0gdmlkZW9fZGV2aWNlX3JlbGVhc2U7CisJc3RybmNweSh2ZGV2LT5uYW1lLCBkZXYtPm5hbWUsIHNpemVvZiB2ZGV2LT5uYW1lKTsKKworCS8qIFNldCB0aGUgZHJpdmVyIGRhdGEgYmVmb3JlIGNhbGxpbmcgdmlkZW9fcmVnaXN0ZXJfZGV2aWNlLCBvdGhlcndpc2UKKwkgKiB1dmNfdjRsMl9vcGVuIG1pZ2h0IHJhY2UgdXMuCisJICoKKwkgKiBGSVhNRTogdXNiX3NldF9pbnRmZGF0YSBoYXNuJ3QgYmVlbiBjYWxsZWQgc28gZmFyLiBJcyB0aGF0IGEKKwkgKiAJICBwcm9ibGVtID8gRG9lcyBhbnkgZnVuY3Rpb24gd2hpY2ggY291bGQgYmUgY2FsbGVkIGhlcmUgZ2V0CisJICogCSAgYSBwb2ludGVyIHRvIHRoZSB1c2JfaW50ZXJmYWNlID8KKwkgKi8KKwlkZXYtPnZpZGVvLnZkZXYgPSB2ZGV2OworCXZpZGVvX3NldF9kcnZkYXRhKHZkZXYsICZkZXYtPnZpZGVvKTsKKworCWlmICh2aWRlb19yZWdpc3Rlcl9kZXZpY2UodmRldiwgVkZMX1RZUEVfR1JBQkJFUiwgLTEpIDwgMCkgeworCQlkZXYtPnZpZGVvLnZkZXYgPSBOVUxMOworCQl2aWRlb19kZXZpY2VfcmVsZWFzZSh2ZGV2KTsKKwkJcmV0dXJuIC0xOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogRGVsZXRlIHRoZSBVVkMgZGV2aWNlLgorICoKKyAqIENhbGxlZCBieSB0aGUga2VybmVsIHdoZW4gdGhlIGxhc3QgcmVmZXJlbmNlIHRvIHRoZSB1dmNfZGV2aWNlIHN0cnVjdHVyZQorICogaXMgcmVsZWFzZWQuCisgKgorICogVW5yZWdpc3RlcmluZyB0aGUgdmlkZW8gZGV2aWNlcyBpcyBkb25lIGhlcmUgYmVjYXVzZSBldmVyeSBvcGVuZWQgaW5zdGFuY2UKKyAqIG11c3QgYmUgY2xvc2VkIGJlZm9yZSB0aGUgZGV2aWNlIGNhbiBiZSB1bnJlZ2lzdGVyZWQuIEFuIGFsdGVybmF0aXZlIHdvdWxkCisgKiBoYXZlIGJlZW4gdG8gdXNlIGFub3RoZXIgcmVmZXJlbmNlIGNvdW50IGZvciB1dmNfdjRsMl9vcGVuL3V2Y19yZWxlYXNlLCBhbmQKKyAqIHVucmVnaXN0ZXIgdGhlIHZpZGVvIGRldmljZXMgb24gZGlzY29ubmVjdCB3aGVuIHRoYXQgcmVmZXJlbmNlIGNvdW50IGRyb3BzCisgKiB0byB6ZXJvLgorICoKKyAqIEFzIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIG9yIGR1cmluZyBkaXNjb25uZWN0KCksIGFsbCBVUkJzIGhhdmUKKyAqIGFscmVhZHkgYmVlbiBjYW5jZWxlZCBieSB0aGUgVVNCIGNvcmUuIFRoZXJlIGlzIG5vIG5lZWQgdG8ga2lsbCB0aGUKKyAqIGludGVycnVwdCBVUkIgbWFudWFsbHkuCisgKi8KK3ZvaWQgdXZjX2RlbGV0ZShzdHJ1Y3Qga3JlZiAqa3JlZikKK3sKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKGtyZWYsIHN0cnVjdCB1dmNfZGV2aWNlLCBrcmVmKTsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwLCAqbjsKKworCS8qIFVucmVnaXN0ZXIgdGhlIHZpZGVvIGRldmljZSAqLworCXV2Y191bnJlZ2lzdGVyX3ZpZGVvKGRldik7CisJdXNiX3B1dF9pbnRmKGRldi0+aW50Zik7CisJdXNiX3B1dF9kZXYoZGV2LT51ZGV2KTsKKworCXV2Y19zdGF0dXNfY2xlYW51cChkZXYpOworCXV2Y19jdHJsX2NsZWFudXBfZGV2aWNlKGRldik7CisKKwlsaXN0X2Zvcl9lYWNoX3NhZmUocCwgbiwgJmRldi0+ZW50aXRpZXMpIHsKKwkJc3RydWN0IHV2Y19lbnRpdHkgKmVudGl0eTsKKwkJZW50aXR5ID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgdXZjX2VudGl0eSwgbGlzdCk7CisJCWtmcmVlKGVudGl0eSk7CisJfQorCisJbGlzdF9mb3JfZWFjaF9zYWZlKHAsIG4sICZkZXYtPnN0cmVhbWluZykgeworCQlzdHJ1Y3QgdXZjX3N0cmVhbWluZyAqc3RyZWFtaW5nOworCQlzdHJlYW1pbmcgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCB1dmNfc3RyZWFtaW5nLCBsaXN0KTsKKwkJdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSgmdXZjX2RyaXZlci5kcml2ZXIsCisJCQlzdHJlYW1pbmctPmludGYpOworCQl1c2JfcHV0X2ludGYoc3RyZWFtaW5nLT5pbnRmKTsKKwkJa2ZyZWUoc3RyZWFtaW5nLT5mb3JtYXQpOworCQlrZnJlZShzdHJlYW1pbmctPmhlYWRlci5ibWFDb250cm9scyk7CisJCWtmcmVlKHN0cmVhbWluZyk7CisJfQorCisJa2ZyZWUoZGV2KTsKK30KKworc3RhdGljIGludCB1dmNfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCisJCSAgICAgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0gaW50ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2OworCWludCByZXQ7CisKKwlpZiAoaWQtPmlkVmVuZG9yICYmIGlkLT5pZFByb2R1Y3QpCisJCXV2Y190cmFjZShVVkNfVFJBQ0VfUFJPQkUsICJQcm9iaW5nIGtub3duIFVWQyBkZXZpY2UgJXMgIgorCQkJCSIoJTA0eDolMDR4KVxuIiwgdWRldi0+ZGV2cGF0aCwgaWQtPmlkVmVuZG9yLAorCQkJCWlkLT5pZFByb2R1Y3QpOworCWVsc2UKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9QUk9CRSwgIlByb2JpbmcgZ2VuZXJpYyBVVkMgZGV2aWNlICVzXG4iLAorCQkJCXVkZXYtPmRldnBhdGgpOworCisJLyogQWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgZGV2aWNlIGFuZCBpbml0aWFsaXplIGl0ICovCisJaWYgKChkZXYgPSBremFsbG9jKHNpemVvZiAqZGV2LCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlJTklUX0xJU1RfSEVBRCgmZGV2LT5lbnRpdGllcyk7CisJSU5JVF9MSVNUX0hFQUQoJmRldi0+c3RyZWFtaW5nKTsKKwlrcmVmX2luaXQoJmRldi0+a3JlZik7CisKKwlkZXYtPnVkZXYgPSB1c2JfZ2V0X2Rldih1ZGV2KTsKKwlkZXYtPmludGYgPSB1c2JfZ2V0X2ludGYoaW50Zik7CisJZGV2LT5pbnRmbnVtID0gaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcjsKKwlkZXYtPnF1aXJrcyA9IGlkLT5kcml2ZXJfaW5mbyB8IHV2Y19xdWlya3NfcGFyYW07CisKKwlpZiAodWRldi0+cHJvZHVjdCAhPSBOVUxMKQorCQlzdHJuY3B5KGRldi0+bmFtZSwgdWRldi0+cHJvZHVjdCwgc2l6ZW9mIGRldi0+bmFtZSk7CisJZWxzZQorCQlzbnByaW50ZihkZXYtPm5hbWUsIHNpemVvZiBkZXYtPm5hbWUsCisJCQkiVVZDIENhbWVyYSAoJTA0eDolMDR4KSIsCisJCQlsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSwKKwkJCWxlMTZfdG9fY3B1KHVkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSk7CisKKwkvKiBQYXJzZSB0aGUgVmlkZW8gQ2xhc3MgY29udHJvbCBkZXNjcmlwdG9yICovCisJaWYgKHV2Y19wYXJzZV9jb250cm9sKGRldikgPCAwKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfUFJPQkUsICJVbmFibGUgdG8gcGFyc2UgVVZDICIKKwkJCSJkZXNjcmlwdG9ycy5cbiIpOworCQlnb3RvIGVycm9yOworCX0KKworCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiRm91bmQgVVZDICV1LiUwMnUgZGV2aWNlICVzICglMDR4OiUwNHgpXG4iLAorCQlkZXYtPnV2Y192ZXJzaW9uID4+IDgsIGRldi0+dXZjX3ZlcnNpb24gJiAweGZmLAorCQl1ZGV2LT5wcm9kdWN0ID8gdWRldi0+cHJvZHVjdCA6ICI8dW5uYW1lZD4iLAorCQlsZTE2X3RvX2NwdSh1ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSwKKwkJbGUxNl90b19jcHUodWRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsKKworCWlmICh1dmNfcXVpcmtzX3BhcmFtICE9IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJGb3JjaW5nIGRldmljZSBxdWlya3MgMHgleCBieSBtb2R1bGUgIgorCQkJInBhcmFtZXRlciBmb3IgdGVzdGluZyBwdXJwb3NlLlxuIiwgdXZjX3F1aXJrc19wYXJhbSk7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiUGxlYXNlIHJlcG9ydCByZXF1aXJlZCBxdWlya3MgdG8gdGhlICIKKwkJCSJsaW51eC11dmMtZGV2ZWwgbWFpbGluZyBsaXN0LlxuIik7CisJfQorCisJLyogSW5pdGlhbGl6ZSBjb250cm9scyAqLworCWlmICh1dmNfY3RybF9pbml0X2RldmljZShkZXYpIDwgMCkKKwkJZ290byBlcnJvcjsKKworCS8qIFJlZ2lzdGVyIHRoZSB2aWRlbyBkZXZpY2VzICovCisJaWYgKHV2Y19yZWdpc3Rlcl92aWRlbyhkZXYpIDwgMCkKKwkJZ290byBlcnJvcjsKKworCS8qIFNhdmUgb3VyIGRhdGEgcG9pbnRlciBpbiB0aGUgaW50ZXJmYWNlIGRhdGEgKi8KKwl1c2Jfc2V0X2ludGZkYXRhKGludGYsIGRldik7CisKKwkvKiBJbml0aWFsaXplIHRoZSBpbnRlcnJ1cHQgVVJCICovCisJaWYgKChyZXQgPSB1dmNfc3RhdHVzX2luaXQoZGV2KSkgPCAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9JTkZPLCAiVW5hYmxlIHRvIGluaXRpYWxpemUgdGhlIHN0YXR1cyAiCisJCQkiZW5kcG9pbnQgKCVkKSwgc3RhdHVzIGludGVycnVwdCB3aWxsIG5vdCBiZSAiCisJCQkic3VwcG9ydGVkLlxuIiwgcmV0KTsKKwl9CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX1BST0JFLCAiVVZDIGRldmljZSBpbml0aWFsaXplZC5cbiIpOworCXJldHVybiAwOworCitlcnJvcjoKKwlrcmVmX3B1dCgmZGV2LT5rcmVmLCB1dmNfZGVsZXRlKTsKKwlyZXR1cm4gLUVOT0RFVjsKK30KKworc3RhdGljIHZvaWQgdXZjX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCit7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7CisKKwkvKiBTZXQgdGhlIFVTQiBpbnRlcmZhY2UgZGF0YSB0byBOVUxMLiBUaGlzIGNhbiBiZSBkb25lIG91dHNpZGUgdGhlCisJICogbG9jaywgYXMgdGhlcmUncyBubyBvdGhlciByZWFkZXIuCisJICovCisJdXNiX3NldF9pbnRmZGF0YShpbnRmLCBOVUxMKTsKKworCWlmIChpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlU3ViQ2xhc3MgPT0gU0NfVklERU9TVFJFQU1JTkcpCisJCXJldHVybjsKKworCS8qIHV2Y192NGwyX29wZW4oKSBtaWdodCByYWNlIHV2Y19kaXNjb25uZWN0KCkuIEEgc3RhdGljIGRyaXZlci13aWRlCisJICogbG9jayBpcyBuZWVkZWQgdG8gcHJldmVudCB1dmNfZGlzY29ubmVjdCBmcm9tIHJlbGVhc2luZyBpdHMKKwkgKiByZWZlcmVuY2UgdG8gdGhlIHV2Y19kZXZpY2UgaW5zdGFuY2UgYWZ0ZXIgdXZjX3Y0bDJfb3BlbigpIHJlY2VpdmVkCisJICogdGhlIHBvaW50ZXIgdG8gdGhlIGRldmljZSAodmlkZW9fZGV2ZGF0YSkgYnV0IGJlZm9yZSBpdCBnb3QgdGhlCisJICogY2hhbmNlIHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQgKGtyZWZfZ2V0KS4KKwkgKi8KKwltdXRleF9sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCisJZGV2LT5zdGF0ZSB8PSBVVkNfREVWX0RJU0NPTk5FQ1RFRDsKKwlrcmVmX3B1dCgmZGV2LT5rcmVmLCB1dmNfZGVsZXRlKTsKKworCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKK30KKworc3RhdGljIGludCB1dmNfc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgcG1fbWVzc2FnZV90IG1lc3NhZ2UpCit7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldiA9IHVzYl9nZXRfaW50ZmRhdGEoaW50Zik7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX1NVU1BFTkQsICJTdXNwZW5kaW5nIGludGVyZmFjZSAldVxuIiwKKwkJaW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlcik7CisKKwkvKiBDb250cm9scyBhcmUgY2FjaGVkIG9uIHRoZSBmbHkgc28gdGhleSBkb24ndCBuZWVkIHRvIGJlIHNhdmVkLiAqLworCWlmIChpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlU3ViQ2xhc3MgPT0gU0NfVklERU9DT05UUk9MKQorCQlyZXR1cm4gdXZjX3N0YXR1c19zdXNwZW5kKGRldik7CisKKwlpZiAoZGV2LT52aWRlby5zdHJlYW1pbmctPmludGYgIT0gaW50ZikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NVU1BFTkQsICJTdXNwZW5kOiB2aWRlbyBzdHJlYW1pbmcgVVNCICIKKwkJCQkiaW50ZXJmYWNlIG1pc21hdGNoLlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiB1dmNfdmlkZW9fc3VzcGVuZCgmZGV2LT52aWRlbyk7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKK3sKKwlzdHJ1Y3QgdXZjX2RldmljZSAqZGV2ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTsKKwlpbnQgcmV0OworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVVNQRU5ELCAiUmVzdW1pbmcgaW50ZXJmYWNlICV1XG4iLAorCQlpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlTnVtYmVyKTsKKworCWlmIChpbnRmLT5jdXJfYWx0c2V0dGluZy0+ZGVzYy5iSW50ZXJmYWNlU3ViQ2xhc3MgPT0gU0NfVklERU9DT05UUk9MKSB7CisJCWlmICgocmV0ID0gdXZjX2N0cmxfcmVzdW1lX2RldmljZShkZXYpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCXJldHVybiB1dmNfc3RhdHVzX3Jlc3VtZShkZXYpOworCX0KKworCWlmIChkZXYtPnZpZGVvLnN0cmVhbWluZy0+aW50ZiAhPSBpbnRmKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfU1VTUEVORCwgIlJlc3VtZTogdmlkZW8gc3RyZWFtaW5nIFVTQiAiCisJCQkJImludGVyZmFjZSBtaXNtYXRjaC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gdXZjX3ZpZGVvX3Jlc3VtZSgmZGV2LT52aWRlbyk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRHJpdmVyIGluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwCisgKi8KKworLyoKKyAqIFRoZSBMb2dpdGVjaCBjYW1lcmFzIGxpc3RlZCBiZWxvdyBoYXZlIHRoZWlyIGludGVyZmFjZSBjbGFzcyBzZXQgdG8KKyAqIFZFTkRPUl9TUEVDIGJlY2F1c2UgdGhleSBkb24ndCBhbm5vdW5jZSB0aGVtc2VsdmVzIGFzIFVWQyBkZXZpY2VzLCBldmVuCisgKiB0aG91Z2ggdGhleSBhcmUgY29tcGxpYW50LgorICovCitzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgdXZjX2lkc1tdID0geworCS8qIEFMaSBNNTYwNiAoQ2xldm8gTTU0MFNSKSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQwMiwKKwkgIC5pZFByb2R1Y3QJCT0gMHg1NjA2LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIENyZWF0aXZlIExpdmUhIE9wdGlhICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDFlLAorCSAgLmlkUHJvZHVjdAkJPSAweDQwNTcsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogTWljcm9zb2Z0IExpZmVjYW0gTlgtNjAwMCAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ1ZSwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMGY4LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIE1pY3Jvc29mdCBMaWZlY2FtIFZYLTcwMDAgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NWUsCisJICAuaWRQcm9kdWN0CQk9IDB4MDcyMywKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBGdXNpb24gKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjMSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gT3JiaXQgTVAgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA0NmQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDhjMiwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVkVORE9SX1NQRUMsCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwIH0sCisJLyogTG9naXRlY2ggUXVpY2tjYW0gUHJvIGZvciBOb3RlYm9vayAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGMzLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBQcm8gNTAwMCAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGM1LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBPRU0gRGVsbCBOb3RlYm9vayAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4MDQ2ZCwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwOGM2LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WRU5ET1JfU1BFQywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAgfSwKKwkvKiBMb2dpdGVjaCBRdWlja2NhbSBPRU0gQ2lzY28gVlQgQ2FtZXJhIElJICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNDZkLAorCSAgLmlkUHJvZHVjdAkJPSAweDA4YzcsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCB9LAorCS8qIEFwcGxlIEJ1aWx0LUluIGlTaWdodCAqLworCXsgLm1hdGNoX2ZsYWdzICAgICAgICAgID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgwNWFjLAorCSAgLmlkUHJvZHVjdAkJPSAweDg1MDEsCisJICAuYkludGVyZmFjZUNsYXNzICAgICAgPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzICAgPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbCAgID0gMCwKKwkgIC5kcml2ZXJfaW5mbyAJCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWAorCQkJCXwgVVZDX1FVSVJLX0JVSUxUSU5fSVNJR0hUIH0sCisJLyogR2VuZXN5cyBMb2dpYyBVU0IgMi4wIFBDIENhbWVyYSAqLworCXsgLm1hdGNoX2ZsYWdzICAgICAgICAgID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IgICAgICAgICAgICAgPSAweDA1ZTMsCisJICAuaWRQcm9kdWN0ICAgICAgICAgICAgPSAweDA1MDUsCisJICAuYkludGVyZmFjZUNsYXNzICAgICAgPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzICAgPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbCAgID0gMCwKKwkgIC5kcml2ZXJfaW5mbyAgICAgICAgICA9IFVWQ19RVUlSS19TVFJFQU1fTk9fRklEIH0sCisJLyogU2lsaWNvbiBNb3Rpb24gU00zNzEgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDA5MGMsCisJICAuaWRQcm9kdWN0CQk9IDB4YjM3MSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBNVDYyMjcgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDBlOGQsCisJICAuaWRQcm9kdWN0CQk9IDB4MDAwNCwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBTeW50ZWsgKEhQIFNwYXJ0YW4pICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgxNzRmLAorCSAgLmlkUHJvZHVjdAkJPSAweDUyMTIsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRCB9LAorCS8qIFN5bnRlayAoQXN1cyBVM1MpICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgxNzRmLAorCSAgLmlkUHJvZHVjdAkJPSAweDhhMzMsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRCB9LAorCS8qIEVjYW1tIFBpY28gaU1hZ2UgKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDE4Y2QsCisJICAuaWRQcm9kdWN0CQk9IDB4Y2FmZSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9FWFRSQUZJRUxEUyB9LAorCS8qIEJvZGVsaW4gUHJvU2NvcGVIUiAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0RFVl9ISQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDE5YWIsCisJICAuaWRQcm9kdWN0CQk9IDB4MTAwMCwKKwkgIC5iY2REZXZpY2VfaGkJCT0gMHgwMTI2LAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1NUQVRVU19JTlRFUlZBTCB9LAorCS8qIFNpR21hIE1pY3JvIFVTQiBXZWIgQ2FtZXJhICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHgxYzRmLAorCSAgLmlkUHJvZHVjdAkJPSAweDMwMDAsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYCisJCQkJfCBVVkNfUVVJUktfSUdOT1JFX1NFTEVDVE9SX1VOSVR9LAorCS8qIEFjZXIgT0VNIFdlYmNhbSAtIFVua25vd24gdmVuZG9yICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHg1OTg2LAorCSAgLmlkUHJvZHVjdAkJPSAweDAxMDAsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogUGFja2FyZCBCZWxsIE9FTSBXZWJjYW0gKi8KKwl7IC5tYXRjaF9mbGFncwkJPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRQorCQkJCXwgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfSU5GTywKKwkgIC5pZFZlbmRvcgkJPSAweDU5ODYsCisJICAuaWRQcm9kdWN0CQk9IDB4MDEwMSwKKwkgIC5iSW50ZXJmYWNlQ2xhc3MJPSBVU0JfQ0xBU1NfVklERU8sCisJICAuYkludGVyZmFjZVN1YkNsYXNzCT0gMSwKKwkgIC5iSW50ZXJmYWNlUHJvdG9jb2wJPSAwLAorCSAgLmRyaXZlcl9pbmZvCQk9IFVWQ19RVUlSS19QUk9CRV9NSU5NQVggfSwKKwkvKiBBY2VyIENyeXN0YWwgRXllIHdlYmNhbSAqLworCXsgLm1hdGNoX2ZsYWdzCQk9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFCisJCQkJfCBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9JTkZPLAorCSAgLmlkVmVuZG9yCQk9IDB4NTk4NiwKKwkgIC5pZFByb2R1Y3QJCT0gMHgwMTAyLAorCSAgLmJJbnRlcmZhY2VDbGFzcwk9IFVTQl9DTEFTU19WSURFTywKKwkgIC5iSW50ZXJmYWNlU3ViQ2xhc3MJPSAxLAorCSAgLmJJbnRlcmZhY2VQcm90b2NvbAk9IDAsCisJICAuZHJpdmVyX2luZm8JCT0gVVZDX1FVSVJLX1BST0JFX01JTk1BWCB9LAorCS8qIEFjZXIgT3JiaUNhbSAtIFVua25vd24gdmVuZG9yICovCisJeyAubWF0Y2hfZmxhZ3MJCT0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UKKwkJCQl8IFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0lORk8sCisJICAuaWRWZW5kb3IJCT0gMHg1OTg2LAorCSAgLmlkUHJvZHVjdAkJPSAweDAyMDAsCisJICAuYkludGVyZmFjZUNsYXNzCT0gVVNCX0NMQVNTX1ZJREVPLAorCSAgLmJJbnRlcmZhY2VTdWJDbGFzcwk9IDEsCisJICAuYkludGVyZmFjZVByb3RvY29sCT0gMCwKKwkgIC5kcml2ZXJfaW5mbwkJPSBVVkNfUVVJUktfUFJPQkVfTUlOTUFYIH0sCisJLyogR2VuZXJpYyBVU0IgVmlkZW8gQ2xhc3MgKi8KKwl7IFVTQl9JTlRFUkZBQ0VfSU5GTyhVU0JfQ0xBU1NfVklERU8sIDEsIDApIH0sCisJe30KK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCB1dmNfaWRzKTsKKworc3RydWN0IHV2Y19kcml2ZXIgdXZjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZQkJPSAidXZjdmlkZW8iLAorCQkucHJvYmUJCT0gdXZjX3Byb2JlLAorCQkuZGlzY29ubmVjdAk9IHV2Y19kaXNjb25uZWN0LAorCQkuc3VzcGVuZAk9IHV2Y19zdXNwZW5kLAorCQkucmVzdW1lCQk9IHV2Y19yZXN1bWUsCisJCS5pZF90YWJsZQk9IHV2Y19pZHMsCisJCS5zdXBwb3J0c19hdXRvc3VzcGVuZCA9IDEsCisJfSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHV2Y19pbml0KHZvaWQpCit7CisJaW50IHJlc3VsdDsKKworCUlOSVRfTElTVF9IRUFEKCZ1dmNfZHJpdmVyLmRldmljZXMpOworCUlOSVRfTElTVF9IRUFEKCZ1dmNfZHJpdmVyLmNvbnRyb2xzKTsKKwltdXRleF9pbml0KCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCW11dGV4X2luaXQoJnV2Y19kcml2ZXIuY3RybF9tdXRleCk7CisKKwl1dmNfY3RybF9pbml0KCk7CisKKwlyZXN1bHQgPSB1c2JfcmVnaXN0ZXIoJnV2Y19kcml2ZXIuZHJpdmVyKTsKKwlpZiAocmVzdWx0ID09IDApCisJCXByaW50ayhLRVJOX0lORk8gRFJJVkVSX0RFU0MgIiAoIiBEUklWRVJfVkVSU0lPTiAiKVxuIik7CisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHV2Y19jbGVhbnVwKHZvaWQpCit7CisJdXNiX2RlcmVnaXN0ZXIoJnV2Y19kcml2ZXIuZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQodXZjX2luaXQpOworbW9kdWxlX2V4aXQodXZjX2NsZWFudXApOworCittb2R1bGVfcGFyYW1fbmFtZWQocXVpcmtzLCB1dmNfcXVpcmtzX3BhcmFtLCB1aW50LCBTX0lSVUdPfFNfSVdVU1IpOworTU9EVUxFX1BBUk1fREVTQyhxdWlya3MsICJGb3JjZWQgZGV2aWNlIHF1aXJrcyIpOworbW9kdWxlX3BhcmFtX25hbWVkKHRyYWNlLCB1dmNfdHJhY2VfcGFyYW0sIHVpbnQsIFNfSVJVR098U19JV1VTUik7CitNT0RVTEVfUEFSTV9ERVNDKHRyYWNlLCAiVHJhY2UgbGV2ZWwgYml0bWFzayIpOworCitNT0RVTEVfQVVUSE9SKERSSVZFUl9BVVRIT1IpOworTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9WRVJTSU9OKERSSVZFUl9WRVJTSU9OKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19pc2lnaHQuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19pc2lnaHQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2JkZWZkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2lzaWdodC5jCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogICAgICB1dmNfaXNpZ2h0LmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gaVNpZ2h0IHN1cHBvcnQKKyAqCisgKglDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNworICoJCUl2YW4gTi4gWmxhdGV2IDxjb250YWN0QGktbnoubmV0PgorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisvKiBCdWlsdC1pbiBpU2lnaHQgd2ViY2FtcyBpbXBsZW1lbnRzIG1vc3Qgb2YgVVZDIDEuMCBleGNlcHQgYQorICogZGlmZmVyZW50IHBhY2tldCBmb3JtYXQuIEluc3RlYWQgb2Ygc2VuZGluZyBhIGhlYWRlciBhdCB0aGUKKyAqIGJlZ2lubmluZyBvZiBlYWNoIGlzb2Nocm9ub3VzIHRyYW5zZmVyIHBheWxvYWQsIHRoZSB3ZWJjYW0gc2VuZHMgYQorICogc2luZ2xlIGhlYWRlciBwZXIgaW1hZ2UgKG9uIGl0cyBvd24gaW4gYSBwYWNrZXQpLCBmb2xsb3dlZCBieQorICogcGFja2V0cyBjb250YWluaW5nIGRhdGEgb25seS4KKyAqCisgKiBPZmZzZXQgICBTaXplIChieXRlcykJRGVzY3JpcHRpb24KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogMHgwMCAJMSAgIAlIZWFkZXIgbGVuZ3RoCisgKiAweDAxIAkxICAgCUZsYWdzIChVVkMtY29tcGxpYW50KQorICogMHgwMiAJNCAgIAlBbHdheXMgZXF1YWwgdG8gJzExMjIzMzQ0JworICogMHgwNiAJOCAgIAlBbHdheXMgZXF1YWwgdG8gJ2RlYWRiZWVmZGVhZGZhY2UnCisgKiAweDBlIAkxNiAgCVVua25vd24KKyAqCisgKiBUaGUgaGVhZGVyIGNhbiBiZSBwcmVmaXhlZCBieSBhbiBvcHRpb25hbCwgdW5rbm93bi1wdXJwb3NlIGJ5dGUuCisgKi8KKworc3RhdGljIGludCBpc2lnaHRfZGVjb2RlKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLAorCQljb25zdCBfX3U4ICpkYXRhLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0YXRpYyBjb25zdCBfX3U4IGhkcltdID0geworCQkweDExLCAweDIyLCAweDMzLCAweDQ0LAorCQkweGRlLCAweGFkLCAweGJlLCAweGVmLAorCQkweGRlLCAweGFkLCAweGZhLCAweGNlCisJfTsKKworCXVuc2lnbmVkIGludCBtYXhsZW4sIG5ieXRlczsKKwlfX3U4ICptZW07CisJaW50IGlzX2hlYWRlciA9IDA7CisKKwlpZiAoYnVmID09IE5VTEwpCisJCXJldHVybiAwOworCisJaWYgKChsZW4gPj0gMTQgJiYgbWVtY21wKCZkYXRhWzJdLCBoZHIsIDEyKSA9PSAwKSB8fAorCSAgICAobGVuID49IDE1ICYmIG1lbWNtcCgmZGF0YVszXSwgaGRyLCAxMikgPT0gMCkpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgImlTaWdodCBoZWFkZXIgZm91bmRcbiIpOworCQlpc19oZWFkZXIgPSAxOworCX0KKworCS8qIFN5bmNocm9uaXplIHRvIHRoZSBpbnB1dCBzdHJlYW0gYnkgd2FpdGluZyBmb3IgYSBoZWFkZXIgcGFja2V0LiAqLworCWlmIChidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfQUNUSVZFKSB7CisJCWlmICghaXNfaGVhZGVyKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRHJvcHBpbmcgcGFja2V0IChvdXQgb2YgIgorCQkJCSAgInN5bmMpLlxuIik7CisJCQlyZXR1cm4gMDsKKwkJfQorCisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0FDVElWRTsKKwl9CisKKwkvKiBNYXJrIHRoZSBidWZmZXIgYXMgZG9uZSBpZiB3ZSdyZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgbmV3IGZyYW1lLgorCSAqCisJICogRW1wdHkgYnVmZmVycyAoYnl0ZXN1c2VkID09IDApIGRvbid0IHRyaWdnZXIgZW5kIG9mIGZyYW1lIGRldGVjdGlvbgorCSAqIGFzIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byByZXR1cm4gYW4gZW1wdHkgYnVmZmVyLgorCSAqLworCWlmIChpc19oZWFkZXIgJiYgYnVmLT5idWYuYnl0ZXN1c2VkICE9IDApIHsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRE9ORTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJLyogQ29weSB0aGUgdmlkZW8gZGF0YSB0byB0aGUgYnVmZmVyLiBTa2lwIGhlYWRlciBwYWNrZXRzLCBhcyB0aGV5CisJICogY29udGFpbiBubyBkYXRhLgorCSAqLworCWlmICghaXNfaGVhZGVyKSB7CisJCW1heGxlbiA9IGJ1Zi0+YnVmLmxlbmd0aCAtIGJ1Zi0+YnVmLmJ5dGVzdXNlZDsKKwkJbWVtID0gcXVldWUtPm1lbSArIGJ1Zi0+YnVmLm0ub2Zmc2V0ICsgYnVmLT5idWYuYnl0ZXN1c2VkOworCQluYnl0ZXMgPSBtaW4obGVuLCBtYXhsZW4pOworCQltZW1jcHkobWVtLCBkYXRhLCBuYnl0ZXMpOworCQlidWYtPmJ1Zi5ieXRlc3VzZWQgKz0gbmJ5dGVzOworCisJCWlmIChsZW4gPiBtYXhsZW4gfHwgYnVmLT5idWYuYnl0ZXN1c2VkID09IGJ1Zi0+YnVmLmxlbmd0aCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkZyYW1lIGNvbXBsZXRlICIKKwkJCQkgICIob3ZlcmZsb3cpLlxuIik7CisJCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9ET05FOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgdXZjX3ZpZGVvX2RlY29kZV9pc2lnaHQoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYpCit7CisJaW50IHJldCwgaTsKKworCWZvciAoaSA9IDA7IGkgPCB1cmItPm51bWJlcl9vZl9wYWNrZXRzOyArK2kpIHsKKwkJaWYgKHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uc3RhdHVzIDwgMCkgeworCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIlVTQiBpc29jaHJvbm91cyBmcmFtZSAiCisJCQkJICAibG9zdCAoJWQpLlxuIiwKKwkJCQkgIHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uc3RhdHVzKTsKKwkJfQorCisJCS8qIERlY29kZSB0aGUgcGF5bG9hZCBwYWNrZXQuCisJCSAqIHV2Y192aWRlb19kZWNvZGUgaXMgZW50ZXJlZCB0d2ljZSB3aGVuIGEgZnJhbWUgdHJhbnNpdGlvbgorCQkgKiBoYXMgYmVlbiBkZXRlY3RlZCBiZWNhdXNlIHRoZSBlbmQgb2YgZnJhbWUgY2FuIG9ubHkgYmUKKwkJICogcmVsaWFibHkgZGV0ZWN0ZWQgd2hlbiB0aGUgZmlyc3QgcGFja2V0IG9mIHRoZSBuZXcgZnJhbWUKKwkJICogaXMgcHJvY2Vzc2VkLiBUaGUgZmlyc3QgcGFzcyBkZXRlY3RzIHRoZSB0cmFuc2l0aW9uIGFuZAorCQkgKiBjbG9zZXMgdGhlIHByZXZpb3VzIGZyYW1lJ3MgYnVmZmVyLCB0aGUgc2Vjb25kIHBhc3MKKwkJICogcHJvY2Vzc2VzIHRoZSBkYXRhIG9mIHRoZSBmaXJzdCBwYXlsb2FkIG9mIHRoZSBuZXcgZnJhbWUuCisJCSAqLworCQlkbyB7CisJCQlyZXQgPSBpc2lnaHRfZGVjb2RlKCZ2aWRlby0+cXVldWUsIGJ1ZiwKKwkJCQkJdXJiLT50cmFuc2Zlcl9idWZmZXIgKworCQkJCQl1cmItPmlzb19mcmFtZV9kZXNjW2ldLm9mZnNldCwKKwkJCQkJdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5hY3R1YWxfbGVuZ3RoKTsKKworCQkJaWYgKGJ1ZiA9PSBOVUxMKQorCQkJCWJyZWFrOworCisJCQlpZiAoYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0RPTkUgfHwKKwkJCSAgICBidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRVJST1IpCisJCQkJYnVmID0gdXZjX3F1ZXVlX25leHRfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJCX0gd2hpbGUgKHJldCA9PSAtRUFHQUlOKTsKKwl9Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfcXVldWUuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19xdWV1ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MjNmMGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfcXVldWUuYwpAQCAtMCwwICsxLDQ3NyBAQAorLyoKKyAqICAgICAgdXZjX3F1ZXVlLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gQnVmZmVycyBtYW5hZ2VtZW50CisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvd2FpdC5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVmlkZW8gYnVmZmVycyBxdWV1ZSBtYW5hZ2VtZW50LgorICoKKyAqIFZpZGVvIHF1ZXVlcyBpcyBpbml0aWFsaXplZCBieSB1dmNfcXVldWVfaW5pdCgpLiBUaGUgZnVuY3Rpb24gcGVyZm9ybXMKKyAqIGJhc2ljIGluaXRpYWxpemF0aW9uIG9mIHRoZSB1dmNfdmlkZW9fcXVldWUgc3RydWN0IGFuZCBuZXZlciBmYWlscy4KKyAqCisgKiBWaWRlbyBidWZmZXIgYWxsb2NhdGlvbiBhbmQgZnJlZWluZyBhcmUgcGVyZm9ybWVkIGJ5IHV2Y19hbGxvY19idWZmZXJzIGFuZAorICogdXZjX2ZyZWVfYnVmZmVycyByZXNwZWN0aXZlbHkuIFRoZSBmb3JtZXIgYWNxdWlyZXMgdGhlIHZpZGVvIHF1ZXVlIGxvY2ssCisgKiB3aGlsZSB0aGUgbGF0ZXIgbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgbG9jayBoZWxkIChzbyB0aGF0IGFsbG9jYXRpb24gY2FuCisgKiBmcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIGJ1ZmZlcnMpLiBUcnlpbmcgdG8gZnJlZSBidWZmZXJzIHRoYXQgYXJlIG1hcHBlZAorICogdG8gdXNlciBzcGFjZSB3aWxsIHJldHVybiAtRUJVU1kuCisgKgorICogVmlkZW8gYnVmZmVycyBhcmUgbWFuYWdlZCB1c2luZyB0d28gcXVldWVzLiBIb3dldmVyLCB1bmxpa2UgbW9zdCBVU0IgdmlkZW8KKyAqIGRyaXZlcnMgd2hpY2ggdXNlIGFuIGluIHF1ZXVlIGFuZCBhbiBvdXQgcXVldWUsIHdlIHVzZSBhIG1haW4gcXVldWUgd2hpY2gKKyAqIGhvbGRzIGFsbCBxdWV1ZWQgYnVmZmVycyAoYm90aCAnZW1wdHknIGFuZCAnZG9uZScgYnVmZmVycyksIGFuZCBhbiBpcnEKKyAqIHF1ZXVlIHdoaWNoIGhvbGRzIGVtcHR5IGJ1ZmZlcnMuIFRoaXMgZGVzaWduIChjb3BpZWQgZnJvbSB2aWRlby1idWYpCisgKiBtaW5pbWl6ZXMgbG9ja2luZyBpbiBpbnRlcnJ1cHQsIGFzIG9ubHkgb25lIHF1ZXVlIGlzIHNoYXJlZCBiZXR3ZWVuCisgKiBpbnRlcnJ1cHQgYW5kIHVzZXIgY29udGV4dHMuCisgKgorICogVXNlIGNhc2VzCisgKiAtLS0tLS0tLS0KKyAqCisgKiBVbmxlc3Mgc3RhdGVkIG90aGVyd2lzZSwgYWxsIG9wZXJhdGlvbnMgd2hpY2ggbW9kaWZ5IHRoZSBpcnEgYnVmZmVycyBxdWV1ZQorICogYXJlIHByb3RlY3RlZCBieSB0aGUgaXJxIHNwaW5sb2NrLgorICoKKyAqIDEuIFRoZSB1c2VyIHF1ZXVlcyB0aGUgYnVmZmVycywgc3RhcnRzIHN0cmVhbWluZyBhbmQgZGVxdWV1ZXMgYSBidWZmZXIuCisgKgorICogICAgVGhlIGJ1ZmZlcnMgYXJlIGFkZGVkIHRvIHRoZSBtYWluIGFuZCBpcnEgcXVldWVzLiBCb3RoIG9wZXJhdGlvbnMgYXJlCisgKiAgICBwcm90ZWN0ZWQgYnkgdGhlIHF1ZXVlIGxvY2ssIGFuZCB0aGUgbGF0ZXJ0IGlzIHByb3RlY3RlZCBieSB0aGUgaXJxCisgKiAgICBzcGlubG9jayBhcyB3ZWxsLgorICoKKyAqICAgIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgZmV0Y2hlcyBhIGJ1ZmZlciBmcm9tIHRoZSBpcnEgcXVldWUgYW5kIGZpbGxzIGl0CisgKiAgICB3aXRoIHZpZGVvIGRhdGEuIElmIG5vIGJ1ZmZlciBpcyBhdmFpbGFibGUgKGlycSBxdWV1ZSBlbXB0eSksIHRoZSBoYW5kbGVyCisgKiAgICByZXR1cm5zIGltbWVkaWF0ZWx5LgorICoKKyAqICAgIFdoZW4gdGhlIGJ1ZmZlciBpcyBmdWxsLCB0aGUgY29tcGxldGlvbiBoYW5kbGVyIHJlbW92ZXMgaXQgZnJvbSB0aGUgaXJxCisgKiAgICBxdWV1ZSwgbWFya3MgaXQgYXMgcmVhZHkgKFVWQ19CVUZfU1RBVEVfRE9ORSkgYW5kIHdha2UgaXRzIHdhaXQgcXVldWUuCisgKiAgICBBdCB0aGF0IHBvaW50LCBhbnkgcHJvY2VzcyB3YWl0aW5nIG9uIHRoZSBidWZmZXIgd2lsbCBiZSB3b2tlbiB1cC4gSWYgYQorICogICAgcHJvY2VzcyB0cmllcyB0byBkZXF1ZXVlIGEgYnVmZmVyIGFmdGVyIGl0IGhhcyBiZWVuIG1hcmtlZCByZWFkeSwgdGhlCisgKiAgICBkZXF1ZWluZyB3aWxsIHN1Y2NlZWQgaW1tZWRpYXRlbHkuCisgKgorICogMi4gQnVmZmVycyBhcmUgcXVldWVkLCB1c2VyIGlzIHdhaXRpbmcgb24gYSBidWZmZXIgYW5kIHRoZSBkZXZpY2UgZ2V0cworICogICAgZGlzY29ubmVjdGVkLgorICoKKyAqICAgIFdoZW4gdGhlIGRldmljZSBpcyBkaXNjb25uZWN0ZWQsIHRoZSBrZXJuZWwgY2FsbHMgdGhlIGNvbXBsZXRpb24gaGFuZGxlcgorICogICAgd2l0aCBhbiBhcHByb3ByaWF0ZSBzdGF0dXMgY29kZS4gVGhlIGhhbmRsZXIgbWFya3MgYWxsIGJ1ZmZlcnMgaW4gdGhlCisgKiAgICBpcnEgcXVldWUgYXMgYmVpbmcgZXJyb25lb3VzIChVVkNfQlVGX1NUQVRFX0VSUk9SKSBhbmQgd2FrZXMgdGhlbSB1cCBzbworICogICAgdGhhdCBhbnkgcHJvY2VzcyB3YWl0aW5nIG9uIGEgYnVmZmVyIGdldHMgd29rZW4gdXAuCisgKgorICogICAgV2FraW5nIHVwIHVwIHRoZSBmaXJzdCBidWZmZXIgb24gdGhlIGlycSBsaXN0IGlzIG5vdCBlbm91Z2gsIGFzIHRoZQorICogICAgcHJvY2VzcyB3YWl0aW5nIG9uIHRoZSBidWZmZXIgbWlnaHQgcmVzdGFydCB0aGUgZGVxdWV1ZSBvcGVyYXRpb24KKyAqICAgIGltbWVkaWF0ZWx5LgorICoKKyAqLworCit2b2lkIHV2Y19xdWV1ZV9pbml0KHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlKQoreworCW11dGV4X2luaXQoJnF1ZXVlLT5tdXRleCk7CisJc3Bpbl9sb2NrX2luaXQoJnF1ZXVlLT5pcnFsb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmcXVldWUtPm1haW5xdWV1ZSk7CisJSU5JVF9MSVNUX0hFQUQoJnF1ZXVlLT5pcnFxdWV1ZSk7Cit9CisKKy8qCisgKiBBbGxvY2F0ZSB0aGUgdmlkZW8gYnVmZmVycy4KKyAqCisgKiBQYWdlcyBhcmUgcmVzZXJ2ZWQgdG8gbWFrZSBzdXJlIHRoZXkgd2lsbCBub3QgYmUgc3dhcGVkLCBhcyB0aGV5IHdpbGwgYmUKKyAqIGZpbGxlZCBpbiBVUkIgY29tcGxldGlvbiBoYW5kbGVyLgorICoKKyAqIEJ1ZmZlcnMgd2lsbCBiZSBpbmRpdmlkdWFsbHkgbWFwcGVkLCBzbyB0aGV5IG11c3QgYWxsIGJlIHBhZ2UgYWxpZ25lZC4KKyAqLworaW50IHV2Y19hbGxvY19idWZmZXJzKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCB1bnNpZ25lZCBpbnQgbmJ1ZmZlcnMsCisJCXVuc2lnbmVkIGludCBidWZsZW5ndGgpCit7CisJdW5zaWduZWQgaW50IGJ1ZnNpemUgPSBQQUdFX0FMSUdOKGJ1Zmxlbmd0aCk7CisJdW5zaWduZWQgaW50IGk7CisJdm9pZCAqbWVtID0gTlVMTDsKKwlpbnQgcmV0OworCisJaWYgKG5idWZmZXJzID4gVVZDX01BWF9WSURFT19CVUZGRVJTKQorCQluYnVmZmVycyA9IFVWQ19NQVhfVklERU9fQlVGRkVSUzsKKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisKKwlpZiAoKHJldCA9IHV2Y19mcmVlX2J1ZmZlcnMocXVldWUpKSA8IDApCisJCWdvdG8gZG9uZTsKKworCS8qIEJhaWwgb3V0IGlmIG5vIGJ1ZmZlcnMgc2hvdWxkIGJlIGFsbG9jYXRlZC4gKi8KKwlpZiAobmJ1ZmZlcnMgPT0gMCkKKwkJZ290byBkb25lOworCisJLyogRGVjcmVtZW50IHRoZSBudW1iZXIgb2YgYnVmZmVycyB1bnRpbCBhbGxvY2F0aW9uIHN1Y2NlZWRzLiAqLworCWZvciAoOyBuYnVmZmVycyA+IDA7IC0tbmJ1ZmZlcnMpIHsKKwkJbWVtID0gdm1hbGxvY18zMihuYnVmZmVycyAqIGJ1ZnNpemUpOworCQlpZiAobWVtICE9IE5VTEwpCisJCQlicmVhazsKKwl9CisKKwlpZiAobWVtID09IE5VTEwpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBkb25lOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBuYnVmZmVyczsgKytpKSB7CisJCW1lbXNldCgmcXVldWUtPmJ1ZmZlcltpXSwgMCwgc2l6ZW9mIHF1ZXVlLT5idWZmZXJbaV0pOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5pbmRleCA9IGk7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLm0ub2Zmc2V0ID0gaSAqIGJ1ZnNpemU7CisJCXF1ZXVlLT5idWZmZXJbaV0uYnVmLmxlbmd0aCA9IGJ1Zmxlbmd0aDsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYudHlwZSA9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRTsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYuc2VxdWVuY2UgPSAwOworCQlxdWV1ZS0+YnVmZmVyW2ldLmJ1Zi5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYubWVtb3J5ID0gVjRMMl9NRU1PUllfTU1BUDsKKwkJcXVldWUtPmJ1ZmZlcltpXS5idWYuZmxhZ3MgPSAwOworCQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZxdWV1ZS0+YnVmZmVyW2ldLndhaXQpOworCX0KKworCXF1ZXVlLT5tZW0gPSBtZW07CisJcXVldWUtPmNvdW50ID0gbmJ1ZmZlcnM7CisJcXVldWUtPmJ1Zl9zaXplID0gYnVmc2l6ZTsKKwlyZXQgPSBuYnVmZmVyczsKKworZG9uZToKKwltdXRleF91bmxvY2soJnF1ZXVlLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEZyZWUgdGhlIHZpZGVvIGJ1ZmZlcnMuCisgKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aXRoIHRoZSBxdWV1ZSBsb2NrIGhlbGQuCisgKi8KK2ludCB1dmNfZnJlZV9idWZmZXJzKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlKQoreworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IHF1ZXVlLT5jb3VudDsgKytpKSB7CisJCWlmIChxdWV1ZS0+YnVmZmVyW2ldLnZtYV91c2VfY291bnQgIT0gMCkKKwkJCXJldHVybiAtRUJVU1k7CisJfQorCisJaWYgKHF1ZXVlLT5jb3VudCkgeworCQl2ZnJlZShxdWV1ZS0+bWVtKTsKKwkJcXVldWUtPmNvdW50ID0gMDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX191dmNfcXVlcnlfYnVmZmVyKHN0cnVjdCB1dmNfYnVmZmVyICpidWYsCisJCXN0cnVjdCB2NGwyX2J1ZmZlciAqdjRsMl9idWYpCit7CisJbWVtY3B5KHY0bDJfYnVmLCAmYnVmLT5idWYsIHNpemVvZiAqdjRsMl9idWYpOworCisJaWYgKGJ1Zi0+dm1hX3VzZV9jb3VudCkKKwkJdjRsMl9idWYtPmZsYWdzIHw9IFY0TDJfQlVGX0ZMQUdfTUFQUEVEOworCisJc3dpdGNoIChidWYtPnN0YXRlKSB7CisJY2FzZSBVVkNfQlVGX1NUQVRFX0VSUk9SOgorCWNhc2UgVVZDX0JVRl9TVEFURV9ET05FOgorCQl2NGwyX2J1Zi0+ZmxhZ3MgfD0gVjRMMl9CVUZfRkxBR19ET05FOworCQlicmVhazsKKwljYXNlIFVWQ19CVUZfU1RBVEVfUVVFVUVEOgorCWNhc2UgVVZDX0JVRl9TVEFURV9BQ1RJVkU6CisJCXY0bDJfYnVmLT5mbGFncyB8PSBWNEwyX0JVRl9GTEFHX1FVRVVFRDsKKwkJYnJlYWs7CisJY2FzZSBVVkNfQlVGX1NUQVRFX0lETEU6CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorfQorCitpbnQgdXZjX3F1ZXJ5X2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1ZikKK3sKKwlpbnQgcmV0ID0gMDsKKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisJaWYgKHY0bDJfYnVmLT5pbmRleCA+PSBxdWV1ZS0+Y291bnQpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCV9fdXZjX3F1ZXJ5X2J1ZmZlcigmcXVldWUtPmJ1ZmZlclt2NGwyX2J1Zi0+aW5kZXhdLCB2NGwyX2J1Zik7CisKK2RvbmU6CisgICAgICAgbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworICAgICAgIHJldHVybiByZXQ7Cit9CisKKy8qCisgKiBRdWV1ZSBhIHZpZGVvIGJ1ZmZlci4gQXR0ZW1wdGluZyB0byBxdWV1ZSBhIGJ1ZmZlciB0aGF0IGhhcyBhbHJlYWR5IGJlZW4KKyAqIHF1ZXVlZCB3aWxsIHJldHVybiAtRUlOVkFMLgorICovCitpbnQgdXZjX3F1ZXVlX2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmKQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWY7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0ID0gMDsKKworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIlF1ZXVpbmcgYnVmZmVyICV1LlxuIiwgdjRsMl9idWYtPmluZGV4KTsKKworCWlmICh2NGwyX2J1Zi0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUgfHwKKwkgICAgdjRsMl9idWYtPm1lbW9yeSAhPSBWNEwyX01FTU9SWV9NTUFQKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBJbnZhbGlkIGJ1ZmZlciB0eXBlICgldSkgIgorCQkJImFuZC9vciBtZW1vcnkgKCV1KS5cbiIsIHY0bDJfYnVmLT50eXBlLAorCQkJdjRsMl9idWYtPm1lbW9yeSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCW11dGV4X2xvY2soJnF1ZXVlLT5tdXRleCk7CisJaWYgKHY0bDJfYnVmLT5pbmRleCA+PSBxdWV1ZS0+Y291bnQpICB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBPdXQgb2YgcmFuZ2UgaW5kZXguXG4iKTsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBkb25lOworCX0KKworCWJ1ZiA9ICZxdWV1ZS0+YnVmZmVyW3Y0bDJfYnVmLT5pbmRleF07CisJaWYgKGJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9JRExFKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBJbnZhbGlkIGJ1ZmZlciBzdGF0ZSAiCisJCQkiKCV1KS5cbiIsIGJ1Zi0+c3RhdGUpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisJaWYgKHF1ZXVlLT5mbGFncyAmIFVWQ19RVUVVRV9ESVNDT05ORUNURUQpIHsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBkb25lOworCX0KKwlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9RVUVVRUQ7CisJYnVmLT5idWYuYnl0ZXN1c2VkID0gMDsKKwlsaXN0X2FkZF90YWlsKCZidWYtPnN0cmVhbSwgJnF1ZXVlLT5tYWlucXVldWUpOworCWxpc3RfYWRkX3RhaWwoJmJ1Zi0+cXVldWUsICZxdWV1ZS0+aXJxcXVldWUpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3F1ZXVlX3dhaXRvbihzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmLCBpbnQgbm9uYmxvY2tpbmcpCit7CisJaWYgKG5vbmJsb2NraW5nKSB7CisJCXJldHVybiAoYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX1FVRVVFRCAmJgorCQkJYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX0FDVElWRSkKKwkJCT8gMCA6IC1FQUdBSU47CisJfQorCisJcmV0dXJuIHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShidWYtPndhaXQsCisJCWJ1Zi0+c3RhdGUgIT0gVVZDX0JVRl9TVEFURV9RVUVVRUQgJiYKKwkJYnVmLT5zdGF0ZSAhPSBVVkNfQlVGX1NUQVRFX0FDVElWRSk7Cit9CisKKy8qCisgKiBEZXF1ZXVlIGEgdmlkZW8gYnVmZmVyLiBJZiBub25ibG9ja2luZyBpcyBmYWxzZSwgYmxvY2sgdW50aWwgYSBidWZmZXIgaXMKKyAqIGF2YWlsYWJsZS4KKyAqLworaW50IHV2Y19kZXF1ZXVlX2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1ZiwgaW50IG5vbmJsb2NraW5nKQoreworCXN0cnVjdCB1dmNfYnVmZmVyICpidWY7CisJaW50IHJldCA9IDA7CisKKwlpZiAodjRsMl9idWYtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFIHx8CisJICAgIHY0bDJfYnVmLT5tZW1vcnkgIT0gVjRMMl9NRU1PUllfTU1BUCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gSW52YWxpZCBidWZmZXIgdHlwZSAoJXUpICIKKwkJCSJhbmQvb3IgbWVtb3J5ICgldSkuXG4iLCB2NGwyX2J1Zi0+dHlwZSwKKwkJCXY0bDJfYnVmLT5tZW1vcnkpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCWlmIChsaXN0X2VtcHR5KCZxdWV1ZS0+bWFpbnF1ZXVlKSkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbRV0gRW1wdHkgYnVmZmVyIHF1ZXVlLlxuIik7CisJCXJldCA9IC1FSU5WQUw7CisJCWdvdG8gZG9uZTsKKwl9CisKKwlidWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZxdWV1ZS0+bWFpbnF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciwgc3RyZWFtKTsKKwlpZiAoKHJldCA9IHV2Y19xdWV1ZV93YWl0b24oYnVmLCBub25ibG9ja2luZykpIDwgMCkKKwkJZ290byBkb25lOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQVBUVVJFLCAiRGVxdWV1aW5nIGJ1ZmZlciAldSAoJXUsICV1IGJ5dGVzKS5cbiIsCisJCWJ1Zi0+YnVmLmluZGV4LCBidWYtPnN0YXRlLCBidWYtPmJ1Zi5ieXRlc3VzZWQpOworCisJc3dpdGNoIChidWYtPnN0YXRlKSB7CisJY2FzZSBVVkNfQlVGX1NUQVRFX0VSUk9SOgorCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBUFRVUkUsICJbV10gQ29ycnVwdGVkIGRhdGEgIgorCQkJIih0cmFuc21pc3Npb24gZXJyb3IpLlxuIik7CisJCXJldCA9IC1FSU87CisJY2FzZSBVVkNfQlVGX1NUQVRFX0RPTkU6CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0lETEU7CisJCWJyZWFrOworCisJY2FzZSBVVkNfQlVGX1NUQVRFX0lETEU6CisJY2FzZSBVVkNfQlVGX1NUQVRFX1FVRVVFRDoKKwljYXNlIFVWQ19CVUZfU1RBVEVfQUNUSVZFOgorCWRlZmF1bHQ6CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FQVFVSRSwgIltFXSBJbnZhbGlkIGJ1ZmZlciBzdGF0ZSAldSAiCisJCQkiKGRyaXZlciBidWc/KS5cbiIsIGJ1Zi0+c3RhdGUpOworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJbGlzdF9kZWwoJmJ1Zi0+c3RyZWFtKTsKKwlfX3V2Y19xdWVyeV9idWZmZXIoYnVmLCB2NGwyX2J1Zik7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBQb2xsIHRoZSB2aWRlbyBxdWV1ZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGltcGxlbWVudHMgdmlkZW8gcXVldWUgcG9sbGluZyBhbmQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieQorICogdGhlIGRldmljZSBwb2xsIGhhbmRsZXIuCisgKi8KK3Vuc2lnbmVkIGludCB1dmNfcXVldWVfcG9sbChzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgc3RydWN0IGZpbGUgKmZpbGUsCisJCXBvbGxfdGFibGUgKndhaXQpCit7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZjsKKwl1bnNpZ25lZCBpbnQgbWFzayA9IDA7CisKKwltdXRleF9sb2NrKCZxdWV1ZS0+bXV0ZXgpOworCWlmIChsaXN0X2VtcHR5KCZxdWV1ZS0+bWFpbnF1ZXVlKSkgeworCQltYXNrIHw9IFBPTExFUlI7CisJCWdvdG8gZG9uZTsKKwl9CisJYnVmID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUtPm1haW5xdWV1ZSwgc3RydWN0IHV2Y19idWZmZXIsIHN0cmVhbSk7CisKKwlwb2xsX3dhaXQoZmlsZSwgJmJ1Zi0+d2FpdCwgd2FpdCk7CisJaWYgKGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9ET05FIHx8CisJICAgIGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9FUlJPUikKKwkJbWFzayB8PSBQT0xMSU4gfCBQT0xMUkROT1JNOworCitkb25lOgorCW11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKwlyZXR1cm4gbWFzazsKK30KKworLyoKKyAqIEVuYWJsZSBvciBkaXNhYmxlIHRoZSB2aWRlbyBidWZmZXJzIHF1ZXVlLgorICoKKyAqIFRoZSBxdWV1ZSBtdXN0IGJlIGVuYWJsZWQgYmVmb3JlIHN0YXJ0aW5nIHZpZGVvIGFjcXVpc2l0aW9uIGFuZCBtdXN0IGJlCisgKiBkaXNhYmxlZCBhZnRlciBzdG9wcGluZyBpdC4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHZpZGVvIGJ1ZmZlcnMgcXVldWUKKyAqIHN0YXRlIGNhbiBiZSBwcm9wZXJseSBpbml0aWFsaXplZCBiZWZvcmUgYnVmZmVycyBhcmUgYWNjZXNzZWQgZnJvbSB0aGUKKyAqIGludGVycnVwdCBoYW5kbGVyLgorICoKKyAqIEVuYWJsaW5nIHRoZSB2aWRlbyBxdWV1ZSBpbml0aWFsaXplcyBwYXJhbWV0ZXJzIChzdWNoIGFzIHNlcXVlbmNlIG51bWJlciwKKyAqIHN5bmMgcGF0dGVybiwgLi4uKS4gSWYgdGhlIHF1ZXVlIGlzIGFscmVhZHkgZW5hYmxlZCwgcmV0dXJuIC1FQlVTWS4KKyAqCisgKiBEaXNhYmxpbmcgdGhlIHZpZGVvIHF1ZXVlIGNhbmNlbHMgdGhlIHF1ZXVlIGFuZCByZW1vdmVzIGFsbCBidWZmZXJzIGZyb20KKyAqIHRoZSBtYWluIHF1ZXVlLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gY2FuJ3QgYmUgY2FsbGVkIGZyb20gaW50ZXJydXB0IGNvbnRleHQuIFVzZQorICogdXZjX3F1ZXVlX2NhbmNlbCgpIGluc3RlYWQuCisgKi8KK2ludCB1dmNfcXVldWVfZW5hYmxlKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBpbnQgZW5hYmxlKQoreworCXVuc2lnbmVkIGludCBpOworCWludCByZXQgPSAwOworCisJbXV0ZXhfbG9jaygmcXVldWUtPm11dGV4KTsKKwlpZiAoZW5hYmxlKSB7CisJCWlmICh1dmNfcXVldWVfc3RyZWFtaW5nKHF1ZXVlKSkgeworCQkJcmV0ID0gLUVCVVNZOworCQkJZ290byBkb25lOworCQl9CisJCXF1ZXVlLT5zZXF1ZW5jZSA9IDA7CisJCXF1ZXVlLT5mbGFncyB8PSBVVkNfUVVFVUVfU1RSRUFNSU5HOworCX0gZWxzZSB7CisJCXV2Y19xdWV1ZV9jYW5jZWwocXVldWUsIDApOworCQlJTklUX0xJU1RfSEVBRCgmcXVldWUtPm1haW5xdWV1ZSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHF1ZXVlLT5jb3VudDsgKytpKQorCQkJcXVldWUtPmJ1ZmZlcltpXS5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfSURMRTsKKworCQlxdWV1ZS0+ZmxhZ3MgJj0gflVWQ19RVUVVRV9TVFJFQU1JTkc7CisJfQorCitkb25lOgorCW11dGV4X3VubG9jaygmcXVldWUtPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogQ2FuY2VsIHRoZSB2aWRlbyBidWZmZXJzIHF1ZXVlLgorICoKKyAqIENhbmNlbGxpbmcgdGhlIHF1ZXVlIG1hcmtzIGFsbCBidWZmZXJzIG9uIHRoZSBpcnEgcXVldWUgYXMgZXJyb25lb3VzLAorICogd2FrZXMgdGhlbSB1cCBhbmQgcmVtb3ZlIHRoZW0gZnJvbSB0aGUgcXVldWUuCisgKgorICogSWYgdGhlIGRpc2Nvbm5lY3QgcGFyYW1ldGVyIGlzIHNldCwgZnVydGhlciBjYWxscyB0byB1dmNfcXVldWVfYnVmZmVyIHdpbGwKKyAqIGZhaWwgd2l0aCAtRU5PREVWLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgdGhlIGlycSBzcGlubG9jayBhbmQgY2FuIGJlIGNhbGxlZCBmcm9tIGludGVycnVwdAorICogY29udGV4dC4KKyAqLwordm9pZCB1dmNfcXVldWVfY2FuY2VsKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBpbnQgZGlzY29ubmVjdCkKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKwl3aGlsZSAoIWxpc3RfZW1wdHkoJnF1ZXVlLT5pcnFxdWV1ZSkpIHsKKwkJYnVmID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUtPmlycXF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciwKKwkJCQkgICAgICAgcXVldWUpOworCQlsaXN0X2RlbCgmYnVmLT5xdWV1ZSk7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0VSUk9SOworCQl3YWtlX3VwKCZidWYtPndhaXQpOworCX0KKwkvKiBUaGlzIG11c3QgYmUgcHJvdGVjdGVkIGJ5IHRoZSBpcnFsb2NrIHNwaW5sb2NrIHRvIGF2b2lkIHJhY2UKKwkgKiBjb25kaXRpb25zIGJldHdlZW4gdXZjX3F1ZXVlX2J1ZmZlciBhbmQgdGhlIGRpc2Nvbm5lY3Rpb24gZXZlbnQgdGhhdAorCSAqIGNvdWxkIHJlc3VsdCBpbiBhbiBpbnRlcnJ1cHRpYmxlIHdhaXQgaW4gdXZjX2RlcXVldWVfYnVmZmVyLiBEbyBub3QKKwkgKiBibGluZGx5IHJlcGxhY2UgdGhpcyBsb2dpYyBieSBjaGVja2luZyBmb3IgdGhlIFVWQ19ERVZfRElTQ09OTkVDVEVECisJICogc3RhdGUgb3V0c2lkZSB0aGUgcXVldWUgY29kZS4KKwkgKi8KKwlpZiAoZGlzY29ubmVjdCkKKwkJcXVldWUtPmZsYWdzIHw9IFVWQ19RVUVVRV9ESVNDT05ORUNURUQ7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKK30KKworc3RydWN0IHV2Y19idWZmZXIgKnV2Y19xdWV1ZV9uZXh0X2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZikKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqbmV4dGJ1ZjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJaWYgKChxdWV1ZS0+ZmxhZ3MgJiBVVkNfUVVFVUVfRFJPUF9JTkNPTVBMRVRFKSAmJgorCSAgICBidWYtPmJ1Zi5sZW5ndGggIT0gYnVmLT5idWYuYnl0ZXN1c2VkKSB7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX1FVRVVFRDsKKwkJYnVmLT5idWYuYnl0ZXN1c2VkID0gMDsKKwkJcmV0dXJuIGJ1ZjsKKwl9CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKwlsaXN0X2RlbCgmYnVmLT5xdWV1ZSk7CisJaWYgKCFsaXN0X2VtcHR5KCZxdWV1ZS0+aXJxcXVldWUpKQorCQluZXh0YnVmID0gbGlzdF9maXJzdF9lbnRyeSgmcXVldWUtPmlycXF1ZXVlLCBzdHJ1Y3QgdXZjX2J1ZmZlciwKKwkJCQkJICAgcXVldWUpOworCWVsc2UKKwkJbmV4dGJ1ZiA9IE5VTEw7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKworCWJ1Zi0+YnVmLnNlcXVlbmNlID0gcXVldWUtPnNlcXVlbmNlKys7CisJZG9fZ2V0dGltZW9mZGF5KCZidWYtPmJ1Zi50aW1lc3RhbXApOworCisJd2FrZV91cCgmYnVmLT53YWl0KTsKKwlyZXR1cm4gbmV4dGJ1ZjsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19zdGF0dXMuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19zdGF0dXMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTkwODRlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3N0YXR1cy5jCkBAIC0wLDAgKzEsMjA3IEBACisvKgorICogICAgICB1dmNfc3RhdHVzLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gU3RhdHVzIGVuZHBvaW50CisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2lucHV0Lmg+CisjaW5jbHVkZSA8bGludXgvdXNiLmg+CisjaW5jbHVkZSA8bGludXgvdXNiL2lucHV0Lmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogSW5wdXQgZGV2aWNlCisgKi8KK3N0YXRpYyBpbnQgdXZjX2lucHV0X2luaXQoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXNiX2RldmljZSAqdWRldiA9IGRldi0+dWRldjsKKwlzdHJ1Y3QgaW5wdXRfZGV2ICppbnB1dDsKKwljaGFyICpwaHlzID0gTlVMTDsKKwlpbnQgcmV0OworCisJaW5wdXQgPSBpbnB1dF9hbGxvY2F0ZV9kZXZpY2UoKTsKKwlpZiAoaW5wdXQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlwaHlzID0ga21hbGxvYyg2ICsgc3RybGVuKHVkZXYtPmJ1cy0+YnVzX25hbWUpICsgc3RybGVuKHVkZXYtPmRldnBhdGgpLAorCQkJR0ZQX0tFUk5FTCk7CisJaWYgKHBoeXMgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycm9yOworCX0KKwlzcHJpbnRmKHBoeXMsICJ1c2ItJXMtJXMiLCB1ZGV2LT5idXMtPmJ1c19uYW1lLCB1ZGV2LT5kZXZwYXRoKTsKKworCWlucHV0LT5uYW1lID0gZGV2LT5uYW1lOworCWlucHV0LT5waHlzID0gcGh5czsKKwl1c2JfdG9faW5wdXRfaWQodWRldiwgJmlucHV0LT5pZCk7CisJaW5wdXQtPmRldi5wYXJlbnQgPSAmZGV2LT5pbnRmLT5kZXY7CisKKwlzZXRfYml0KEVWX0tFWSwgaW5wdXQtPmV2Yml0KTsKKwlzZXRfYml0KEJUTl8wLCBpbnB1dC0+a2V5Yml0KTsKKworCWlmICgocmV0ID0gaW5wdXRfcmVnaXN0ZXJfZGV2aWNlKGlucHV0KSkgPCAwKQorCQlnb3RvIGVycm9yOworCisJZGV2LT5pbnB1dCA9IGlucHV0OworCXJldHVybiAwOworCitlcnJvcjoKKwlpbnB1dF9mcmVlX2RldmljZShpbnB1dCk7CisJa2ZyZWUocGh5cyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgdXZjX2lucHV0X2NsZWFudXAoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlpZiAoZGV2LT5pbnB1dCkKKwkJaW5wdXRfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2LT5pbnB1dCk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBTdGF0dXMgaW50ZXJydXB0IGVuZHBvaW50CisgKi8KK3N0YXRpYyB2b2lkIHV2Y19ldmVudF9zdHJlYW1pbmcoc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgX191OCAqZGF0YSwgaW50IGxlbikKK3sKKwlpZiAobGVuIDwgMykgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NUQVRVUywgIkludmFsaWQgc3RyZWFtaW5nIHN0YXR1cyBldmVudCAiCisJCQkJInJlY2VpdmVkLlxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAoZGF0YVsyXSA9PSAwKSB7CisJCWlmIChsZW4gPCA0KQorCQkJcmV0dXJuOworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NUQVRVUywgIkJ1dHRvbiAoaW50ZiAldSkgJXMgbGVuICVkXG4iLAorCQkJZGF0YVsxXSwgZGF0YVszXSA/ICJwcmVzc2VkIiA6ICJyZWxlYXNlZCIsIGxlbik7CisJCWlmIChkZXYtPmlucHV0KQorCQkJaW5wdXRfcmVwb3J0X2tleShkZXYtPmlucHV0LCBCVE5fMCwgZGF0YVszXSk7CisJfSBlbHNlIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVEFUVVMsICJTdHJlYW0gJXUgZXJyb3IgZXZlbnQgJTAyeCAlMDJ4ICIKKwkJCSJsZW4gJWQuXG4iLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdLCBsZW4pOworCX0KK30KKworc3RhdGljIHZvaWQgdXZjX2V2ZW50X2NvbnRyb2woc3RydWN0IHV2Y19kZXZpY2UgKmRldiwgX191OCAqZGF0YSwgaW50IGxlbikKK3sKKwljaGFyICphdHRyc1szXSA9IHsgInZhbHVlIiwgImluZm8iLCAiZmFpbHVyZSIgfTsKKworCWlmIChsZW4gPCA2IHx8IGRhdGFbMl0gIT0gMCB8fCBkYXRhWzRdID4gMikgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX1NUQVRVUywgIkludmFsaWQgY29udHJvbCBzdGF0dXMgZXZlbnQgIgorCQkJCSJyZWNlaXZlZC5cbiIpOworCQlyZXR1cm47CisJfQorCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9TVEFUVVMsICJDb250cm9sICV1LyV1ICVzIGNoYW5nZSBsZW4gJWQuXG4iLAorCQlkYXRhWzFdLCBkYXRhWzNdLCBhdHRyc1tkYXRhWzRdXSwgbGVuKTsKK30KKworc3RhdGljIHZvaWQgdXZjX3N0YXR1c19jb21wbGV0ZShzdHJ1Y3QgdXJiICp1cmIpCit7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldiA9IHVyYi0+Y29udGV4dDsKKwlpbnQgbGVuLCByZXQ7CisKKwlzd2l0Y2ggKHVyYi0+c3RhdHVzKSB7CisJY2FzZSAwOgorCQlicmVhazsKKworCWNhc2UgLUVOT0VOVDoJCS8qIHVzYl9raWxsX3VyYigpIGNhbGxlZC4gKi8KKwljYXNlIC1FQ09OTlJFU0VUOgkvKiB1c2JfdW5saW5rX3VyYigpIGNhbGxlZC4gKi8KKwljYXNlIC1FU0hVVERPV046CS8qIFRoZSBlbmRwb2ludCBpcyBiZWluZyBkaXNhYmxlZC4gKi8KKwljYXNlIC1FUFJPVE86CQkvKiBEZXZpY2UgaXMgZGlzY29ubmVjdGVkIChyZXBvcnRlZCBieSBzb21lCisJCQkJICogaG9zdCBjb250cm9sbGVyKS4gKi8KKwkJcmV0dXJuOworCisJZGVmYXVsdDoKKwkJdXZjX3ByaW50ayhLRVJOX1dBUk5JTkcsICJOb24temVybyBzdGF0dXMgKCVkKSBpbiBzdGF0dXMgIgorCQkJImNvbXBsZXRpb24gaGFuZGxlci5cbiIsIHVyYi0+c3RhdHVzKTsKKwkJcmV0dXJuOworCX0KKworCWxlbiA9IHVyYi0+YWN0dWFsX2xlbmd0aDsKKwlpZiAobGVuID4gMCkgeworCQlzd2l0Y2ggKGRldi0+c3RhdHVzWzBdICYgMHgwZikgeworCQljYXNlIFVWQ19TVEFUVVNfVFlQRV9DT05UUk9MOgorCQkJdXZjX2V2ZW50X2NvbnRyb2woZGV2LCBkZXYtPnN0YXR1cywgbGVuKTsKKwkJCWJyZWFrOworCisJCWNhc2UgVVZDX1NUQVRVU19UWVBFX1NUUkVBTUlORzoKKwkJCXV2Y19ldmVudF9zdHJlYW1pbmcoZGV2LCBkZXYtPnN0YXR1cywgbGVuKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQl1dmNfcHJpbnRrKEtFUk5fSU5GTywgInVua25vd24gZXZlbnQgdHlwZSAldS5cbiIsCisJCQkJZGV2LT5zdGF0dXNbMF0pOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwkvKiBSZXN1Ym1pdCB0aGUgVVJCLiAqLworCXVyYi0+aW50ZXJ2YWwgPSBkZXYtPmludF9lcC0+ZGVzYy5iSW50ZXJ2YWw7CisJaWYgKChyZXQgPSB1c2Jfc3VibWl0X3VyYih1cmIsIEdGUF9BVE9NSUMpKSA8IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0VSUiwgIkZhaWxlZCB0byByZXN1Ym1pdCBzdGF0dXMgVVJCICglZCkuXG4iLAorCQkJcmV0KTsKKwl9Cit9CisKK2ludCB1dmNfc3RhdHVzX2luaXQoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwID0gZGV2LT5pbnRfZXA7CisJdW5zaWduZWQgaW50IHBpcGU7CisJaW50IGludGVydmFsOworCisJaWYgKGVwID09IE5VTEwpCisJCXJldHVybiAwOworCisJdXZjX2lucHV0X2luaXQoZGV2KTsKKworCWRldi0+aW50X3VyYiA9IHVzYl9hbGxvY191cmIoMCwgR0ZQX0tFUk5FTCk7CisJaWYgKGRldi0+aW50X3VyYiA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBpcGUgPSB1c2JfcmN2aW50cGlwZShkZXYtPnVkZXYsIGVwLT5kZXNjLmJFbmRwb2ludEFkZHJlc3MpOworCisJLyogRm9yIGhpZ2gtc3BlZWQgaW50ZXJydXB0IGVuZHBvaW50cywgdGhlIGJJbnRlcnZhbCB2YWx1ZSBpcyB1c2VkIGFzCisJICogYW4gZXhwb25lbnQgb2YgdHdvLiBTb21lIGRldmVsb3BlcnMgZm9yZ290IGFib3V0IGl0LgorCSAqLworCWludGVydmFsID0gZXAtPmRlc2MuYkludGVydmFsOworCWlmIChpbnRlcnZhbCA+IDE2ICYmIGRldi0+dWRldi0+c3BlZWQgPT0gVVNCX1NQRUVEX0hJR0ggJiYKKwkgICAgKGRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1NUQVRVU19JTlRFUlZBTCkpCisJCWludGVydmFsID0gZmxzKGludGVydmFsKSAtIDE7CisKKwl1c2JfZmlsbF9pbnRfdXJiKGRldi0+aW50X3VyYiwgZGV2LT51ZGV2LCBwaXBlLAorCQlkZXYtPnN0YXR1cywgc2l6ZW9mIGRldi0+c3RhdHVzLCB1dmNfc3RhdHVzX2NvbXBsZXRlLAorCQlkZXYsIGludGVydmFsKTsKKworCXJldHVybiB1c2Jfc3VibWl0X3VyYihkZXYtPmludF91cmIsIEdGUF9LRVJORUwpOworfQorCit2b2lkIHV2Y19zdGF0dXNfY2xlYW51cChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KQoreworCXVzYl9raWxsX3VyYihkZXYtPmludF91cmIpOworCXVzYl9mcmVlX3VyYihkZXYtPmludF91cmIpOworCXV2Y19pbnB1dF9jbGVhbnVwKGRldik7Cit9CisKK2ludCB1dmNfc3RhdHVzX3N1c3BlbmQoc3RydWN0IHV2Y19kZXZpY2UgKmRldikKK3sKKwl1c2Jfa2lsbF91cmIoZGV2LT5pbnRfdXJiKTsKKwlyZXR1cm4gMDsKK30KKworaW50IHV2Y19zdGF0dXNfcmVzdW1lKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+aW50X3VyYiA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCXJldHVybiB1c2Jfc3VibWl0X3VyYihkZXYtPmludF91cmIsIEdGUF9LRVJORUwpOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3Y0bDIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192NGwyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUwYTY2NQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192NGwyLmMKQEAgLTAsMCArMSwxMTA1IEBACisvKgorICogICAgICB1dmNfdjRsMi5jICAtLSAgVVNCIFZpZGVvIENsYXNzIGRyaXZlciAtIFY0TDIgQVBJCisgKgorICogICAgICBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwOAorICogICAgICAgICAgTGF1cmVudCBQaW5jaGFydCAobGF1cmVudC5waW5jaGFydEBza3luZXQuYmUpCisgKgorICogICAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IuaD4KKyNpbmNsdWRlIDxsaW51eC92aWRlb2RldjIuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorCisjaW5jbHVkZSA8bWVkaWEvdjRsMi1jb21tb24uaD4KKworI2luY2x1ZGUgInV2Y3ZpZGVvLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVjRMMiBpbnRlcmZhY2UKKyAqLworCisvKgorICogTWFwcGluZyBWNEwyIGNvbnRyb2xzIHRvIFVWQyBjb250cm9scyBjYW4gYmUgc3RyYWlnaGZvcndhcmQgaWYgZG9uZSB3ZWxsLgorICogTW9zdCBvZiB0aGUgVVZDIGNvbnRyb2xzIGV4aXN0IGluIFY0TDIsIGFuZCBjYW4gYmUgbWFwcGVkIGRpcmVjdGx5LiBTb21lCisgKiBtdXN0IGJlIGdyb3VwZWQgKGZvciBpbnN0YW5jZSB0aGUgUmVkIEJhbGFuY2UsIEJsdWUgQmFsYW5jZSBhbmQgRG8gV2hpdGUKKyAqIEJhbGFuY2UgVjRMMiBjb250cm9scyB1c2UgdGhlIFdoaXRlIEJhbGFuY2UgQ29tcG9uZW50IFVWQyBjb250cm9sKSBvcgorICogb3RoZXJ3aXNlIHRyYW5zbGF0ZWQuIFRoZSBhcHByb2FjaCB3ZSB0YWtlIGhlcmUgaXMgdG8gdXNlIGEgdHJhbnNsYXRpb24KKyAqIHRhYmxlIGZvciB0aGUgY29udHJvbHMgd2hpY2ggY2FuIGJlIG1hcHBlZCBkaXJlY3RseSwgYW5kIGhhbmRsZSB0aGUgb3RoZXJzCisgKiBtYW51YWxseS4KKyAqLworc3RhdGljIGludCB1dmNfdjRsMl9xdWVyeV9tZW51KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdjRsMl9xdWVyeW1lbnUgKnF1ZXJ5X21lbnUpCit7CisJc3RydWN0IHV2Y19tZW51X2luZm8gKm1lbnVfaW5mbzsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqbWFwcGluZzsKKwlzdHJ1Y3QgdXZjX2NvbnRyb2wgKmN0cmw7CisKKwljdHJsID0gdXZjX2ZpbmRfY29udHJvbCh2aWRlbywgcXVlcnlfbWVudS0+aWQsICZtYXBwaW5nKTsKKwlpZiAoY3RybCA9PSBOVUxMIHx8IG1hcHBpbmctPnY0bDJfdHlwZSAhPSBWNEwyX0NUUkxfVFlQRV9NRU5VKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChxdWVyeV9tZW51LT5pbmRleCA+PSBtYXBwaW5nLT5tZW51X2NvdW50KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW1lbnVfaW5mbyA9ICZtYXBwaW5nLT5tZW51X2luZm9bcXVlcnlfbWVudS0+aW5kZXhdOworCXN0cm5jcHkocXVlcnlfbWVudS0+bmFtZSwgbWVudV9pbmZvLT5uYW1lLCAzMik7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBGaW5kIHRoZSBmcmFtZSBpbnRlcnZhbCBjbG9zZXN0IHRvIHRoZSByZXF1ZXN0ZWQgZnJhbWUgaW50ZXJ2YWwgZm9yIHRoZQorICogZ2l2ZW4gZnJhbWUgZm9ybWF0IGFuZCBzaXplLiBUaGlzIHNob3VsZCBiZSBkb25lIGJ5IHRoZSBkZXZpY2UgYXMgcGFydCBvZgorICogdGhlIFZpZGVvIFByb2JlIGFuZCBDb21taXQgbmVnb3RpYXRpb24sIGJ1dCBzb21lIGhhcmR3YXJlIGRvbid0IGltcGxlbWVudAorICogdGhhdCBmZWF0dXJlLgorICovCitzdGF0aWMgX191MzIgdXZjX3RyeV9mcmFtZV9pbnRlcnZhbChzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSwgX191MzIgaW50ZXJ2YWwpCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlpZiAoZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSkgeworCQlfX3UzMiBiZXN0ID0gLTEsIGRpc3Q7CisKKwkJZm9yIChpID0gMDsgaSA8IGZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGU7ICsraSkgeworCQkJZGlzdCA9IGludGVydmFsID4gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtpXQorCQkJICAgICA/IGludGVydmFsIC0gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtpXQorCQkJICAgICA6IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbaV0gLSBpbnRlcnZhbDsKKworCQkJaWYgKGRpc3QgPiBiZXN0KQorCQkJCWJyZWFrOworCisJCQliZXN0ID0gZGlzdDsKKwkJfQorCisJCWludGVydmFsID0gZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFtpLTFdOworCX0gZWxzZSB7CisJCWNvbnN0IF9fdTMyIG1pbiA9IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMF07CisJCWNvbnN0IF9fdTMyIG1heCA9IGZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMV07CisJCWNvbnN0IF9fdTMyIHN0ZXAgPSBmcmFtZS0+ZHdGcmFtZUludGVydmFsWzJdOworCisJCWludGVydmFsID0gbWluICsgKGludGVydmFsIC0gbWluICsgc3RlcC8yKSAvIHN0ZXAgKiBzdGVwOworCQlpZiAoaW50ZXJ2YWwgPiBtYXgpCisJCQlpbnRlcnZhbCA9IG1heDsKKwl9CisKKwlyZXR1cm4gaW50ZXJ2YWw7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfdHJ5X2Zvcm1hdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfZm9ybWF0ICpmbXQsIHN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKnByb2JlLAorCXN0cnVjdCB1dmNfZm9ybWF0ICoqdXZjX2Zvcm1hdCwgc3RydWN0IHV2Y19mcmFtZSAqKnV2Y19mcmFtZSkKK3sKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0ID0gTlVMTDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpmcmFtZSA9IE5VTEw7CisJX191MTYgcncsIHJoOworCXVuc2lnbmVkIGludCBkLCBtYXhkOworCXVuc2lnbmVkIGludCBpOworCV9fdTMyIGludGVydmFsOworCWludCByZXQgPSAwOworCV9fdTggKmZjYzsKKworCWlmIChmbXQtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWZjYyA9IChfX3U4ICopJmZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdDsKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZPUk1BVCwgIlRyeWluZyBmb3JtYXQgMHglMDh4ICglYyVjJWMlYyk6ICV1eCV1LlxuIiwKKwkJCWZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdCwKKwkJCWZjY1swXSwgZmNjWzFdLCBmY2NbMl0sIGZjY1szXSwKKwkJCWZtdC0+Zm10LnBpeC53aWR0aCwgZm10LT5mbXQucGl4LmhlaWdodCk7CisKKwkvKiBDaGVjayBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgdGhlIHJlcXVlc3RlZCBmb3JtYXQuICovCisJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzOyArK2kpIHsKKwkJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpXTsKKwkJaWYgKGZvcm1hdC0+ZmNjID09IGZtdC0+Zm10LnBpeC5waXhlbGZvcm1hdCkKKwkJCWJyZWFrOworCX0KKworCWlmIChmb3JtYXQgPT0gTlVMTCB8fCBmb3JtYXQtPmZjYyAhPSBmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GT1JNQVQsICJVbnN1cHBvcnRlZCBmb3JtYXQgMHglMDh4LlxuIiwKKwkJCQlmbXQtPmZtdC5waXgucGl4ZWxmb3JtYXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBGaW5kIHRoZSBjbG9zZXN0IGltYWdlIHNpemUuIFRoZSBkaXN0YW5jZSBiZXR3ZWVuIGltYWdlIHNpemVzIGlzCisJICogdGhlIHNpemUgaW4gcGl4ZWxzIG9mIHRoZSBub24tb3ZlcmxhcHBpbmcgcmVnaW9ucyBiZXR3ZWVuIHRoZQorCSAqIHJlcXVlc3RlZCBzaXplIGFuZCB0aGUgZnJhbWUtc3BlY2lmaWVkIHNpemUuCisJICovCisJcncgPSBmbXQtPmZtdC5waXgud2lkdGg7CisJcmggPSBmbXQtPmZtdC5waXguaGVpZ2h0OworCW1heGQgPSAodW5zaWduZWQgaW50KS0xOworCisJZm9yIChpID0gMDsgaSA8IGZvcm1hdC0+bmZyYW1lczsgKytpKSB7CisJCV9fdTE2IHcgPSBmb3JtYXQtPmZyYW1lW2ldLndXaWR0aDsKKwkJX191MTYgaCA9IGZvcm1hdC0+ZnJhbWVbaV0ud0hlaWdodDsKKworCQlkID0gbWluKHcsIHJ3KSAqIG1pbihoLCByaCk7CisJCWQgPSB3KmggKyBydypyaCAtIDIqZDsKKwkJaWYgKGQgPCBtYXhkKSB7CisJCQltYXhkID0gZDsKKwkJCWZyYW1lID0gJmZvcm1hdC0+ZnJhbWVbaV07CisJCX0KKworCQlpZiAobWF4ZCA9PSAwKQorCQkJYnJlYWs7CisJfQorCisJaWYgKGZyYW1lID09IE5VTEwpIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GT1JNQVQsICJVbnN1cHBvcnRlZCBzaXplICV1eCV1LlxuIiwKKwkJCQlmbXQtPmZtdC5waXgud2lkdGgsIGZtdC0+Zm10LnBpeC5oZWlnaHQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBVc2UgdGhlIGRlZmF1bHQgZnJhbWUgaW50ZXJ2YWwuICovCisJaW50ZXJ2YWwgPSBmcmFtZS0+ZHdEZWZhdWx0RnJhbWVJbnRlcnZhbDsKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZPUk1BVCwgIlVzaW5nIGRlZmF1bHQgZnJhbWUgaW50ZXJ2YWwgJXUuJXUgdXMgIgorCQkiKCV1LiV1IGZwcykuXG4iLCBpbnRlcnZhbC8xMCwgaW50ZXJ2YWwlMTAsIDEwMDAwMDAwL2ludGVydmFsLAorCQkoMTAwMDAwMDAwL2ludGVydmFsKSUxMCk7CisKKwkvKiBTZXQgdGhlIGZvcm1hdCBpbmRleCwgZnJhbWUgaW5kZXggYW5kIGZyYW1lIGludGVydmFsLiAqLworCW1lbXNldChwcm9iZSwgMCwgc2l6ZW9mICpwcm9iZSk7CisJcHJvYmUtPmJtSGludCA9IDE7CS8qIGR3RnJhbWVJbnRlcnZhbCAqLworCXByb2JlLT5iRm9ybWF0SW5kZXggPSBmb3JtYXQtPmluZGV4OworCXByb2JlLT5iRnJhbWVJbmRleCA9IGZyYW1lLT5iRnJhbWVJbmRleDsKKwlwcm9iZS0+ZHdGcmFtZUludGVydmFsID0gdXZjX3RyeV9mcmFtZV9pbnRlcnZhbChmcmFtZSwgaW50ZXJ2YWwpOworCS8qIFNvbWUgd2ViY2FtcyBzdGFsbCB0aGUgcHJvYmUgY29udHJvbCBzZXQgcmVxdWVzdCB3aGVuIHRoZQorCSAqIGR3TWF4VmlkZW9GcmFtZVNpemUgZmllbGQgaXMgc2V0IHRvIHplcm8uIFRoZSBVVkMgc3BlY2lmaWNhdGlvbgorCSAqIGNsZWFybHkgc3RhdGVzIHRoYXQgdGhlIGZpZWxkIGlzIHJlYWQtb25seSBmcm9tIHRoZSBob3N0LCBzbyB0aGlzCisJICogaXMgYSB3ZWJjYW0gYnVnLiBTZXQgZHdNYXhWaWRlb0ZyYW1lU2l6ZSB0byB0aGUgdmFsdWUgcmVwb3J0ZWQgYnkKKwkgKiB0aGUgd2ViY2FtIHRvIHdvcmsgYXJvdW5kIHRoZSBwcm9ibGVtLgorCSAqCisJICogVGhlIHdvcmthcm91bmQgY291bGQgcHJvYmFibHkgYmUgZW5hYmxlZCBmb3IgYWxsIHdlYmNhbXMsIHNvIHRoZQorCSAqIHF1aXJrIGNhbiBiZSByZW1vdmVkIGlmIG5lZWRlZC4gSXQncyBjdXJyZW50bHkgdXNlZnVsIHRvIGRldGVjdAorCSAqIHdlYmNhbSBidWdzIGFuZCBmaXggdGhlbSBiZWZvcmUgdGhleSBoaXQgdGhlIG1hcmtldCAocHJvdmlkaW5nCisJICogZGV2ZWxvcGVycyB0ZXN0IHRoZWlyIHdlYmNhbXMgd2l0aCB0aGUgTGludXggZHJpdmVyIGFzIHdlbGwgYXMgd2l0aAorCSAqIHRoZSBXaW5kb3dzIGRyaXZlcikuCisJICovCisJaWYgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19QUk9CRV9FWFRSQUZJRUxEUykKKwkJcHJvYmUtPmR3TWF4VmlkZW9GcmFtZVNpemUgPQorCQkJdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFZpZGVvRnJhbWVTaXplOworCisJLyogUHJvYmUgdGhlIGRldmljZSAqLworCWlmICgocmV0ID0gdXZjX3Byb2JlX3ZpZGVvKHZpZGVvLCBwcm9iZSkpIDwgMCkKKwkJZ290byBkb25lOworCisJZm10LT5mbXQucGl4LndpZHRoID0gZnJhbWUtPndXaWR0aDsKKwlmbXQtPmZtdC5waXguaGVpZ2h0ID0gZnJhbWUtPndIZWlnaHQ7CisJZm10LT5mbXQucGl4LmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOworCWZtdC0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPSBmb3JtYXQtPmJwcCAqIGZyYW1lLT53V2lkdGggLyA4OworCWZtdC0+Zm10LnBpeC5zaXplaW1hZ2UgPSBwcm9iZS0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKwlmbXQtPmZtdC5waXguY29sb3JzcGFjZSA9IGZvcm1hdC0+Y29sb3JzcGFjZTsKKwlmbXQtPmZtdC5waXgucHJpdiA9IDA7CisKKwlpZiAodXZjX2Zvcm1hdCAhPSBOVUxMKQorCQkqdXZjX2Zvcm1hdCA9IGZvcm1hdDsKKwlpZiAodXZjX2ZyYW1lICE9IE5VTEwpCisJCSp1dmNfZnJhbWUgPSBmcmFtZTsKKworZG9uZToKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX2dldF9mb3JtYXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB2NGwyX2Zvcm1hdCAqZm10KQoreworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQgPSB2aWRlby0+c3RyZWFtaW5nLT5jdXJfZm9ybWF0OworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2ZyYW1lOworCisJaWYgKGZtdC0+dHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGZvcm1hdCA9PSBOVUxMIHx8IGZyYW1lID09IE5VTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJZm10LT5mbXQucGl4LnBpeGVsZm9ybWF0ID0gZm9ybWF0LT5mY2M7CisJZm10LT5mbXQucGl4LndpZHRoID0gZnJhbWUtPndXaWR0aDsKKwlmbXQtPmZtdC5waXguaGVpZ2h0ID0gZnJhbWUtPndIZWlnaHQ7CisJZm10LT5mbXQucGl4LmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOworCWZtdC0+Zm10LnBpeC5ieXRlc3BlcmxpbmUgPSBmb3JtYXQtPmJwcCAqIGZyYW1lLT53V2lkdGggLyA4OworCWZtdC0+Zm10LnBpeC5zaXplaW1hZ2UgPSB2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4VmlkZW9GcmFtZVNpemU7CisJZm10LT5mbXQucGl4LmNvbG9yc3BhY2UgPSBmb3JtYXQtPmNvbG9yc3BhY2U7CisJZm10LT5mbXQucGl4LnByaXYgPSAwOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfc2V0X2Zvcm1hdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHY0bDJfZm9ybWF0ICpmbXQpCit7CisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCBwcm9iZTsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0OworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lOworCWludCByZXQ7CisKKwlpZiAoZm10LT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAodXZjX3F1ZXVlX3N0cmVhbWluZygmdmlkZW8tPnF1ZXVlKSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCXJldCA9IHV2Y192NGwyX3RyeV9mb3JtYXQodmlkZW8sIGZtdCwgJnByb2JlLCAmZm9ybWF0LCAmZnJhbWUpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sICZwcm9iZSwgMCkpIDwgMCkKKwkJcmV0dXJuIHJldDsKKworCW1lbWNweSgmdmlkZW8tPnN0cmVhbWluZy0+Y3RybCwgJnByb2JlLCBzaXplb2YgcHJvYmUpOworCXZpZGVvLT5zdHJlYW1pbmctPmN1cl9mb3JtYXQgPSBmb3JtYXQ7CisJdmlkZW8tPnN0cmVhbWluZy0+Y3VyX2ZyYW1lID0gZnJhbWU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9nZXRfc3RyZWFtcGFybShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB2NGwyX3N0cmVhbXBhcm0gKnBhcm0pCit7CisJdWludDMyX3QgbnVtZXJhdG9yLCBkZW5vbWluYXRvcjsKKworCWlmIChwYXJtLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwludW1lcmF0b3IgPSB2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3RnJhbWVJbnRlcnZhbDsKKwlkZW5vbWluYXRvciA9IDEwMDAwMDAwOworCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmbnVtZXJhdG9yLCAmZGVub21pbmF0b3IsIDgsIDMzMyk7CisKKwltZW1zZXQocGFybSwgMCwgc2l6ZW9mICpwYXJtKTsKKwlwYXJtLT50eXBlID0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFOworCXBhcm0tPnBhcm0uY2FwdHVyZS5jYXBhYmlsaXR5ID0gVjRMMl9DQVBfVElNRVBFUkZSQU1FOworCXBhcm0tPnBhcm0uY2FwdHVyZS5jYXB0dXJlbW9kZSA9IDA7CisJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5udW1lcmF0b3IgPSBudW1lcmF0b3I7CisJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5kZW5vbWluYXRvciA9IGRlbm9taW5hdG9yOworCXBhcm0tPnBhcm0uY2FwdHVyZS5leHRlbmRlZG1vZGUgPSAwOworCXBhcm0tPnBhcm0uY2FwdHVyZS5yZWFkYnVmZmVycyA9IDA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB1dmNfdjRsMl9zZXRfc3RyZWFtcGFybShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB2NGwyX3N0cmVhbXBhcm0gKnBhcm0pCit7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSB2aWRlby0+c3RyZWFtaW5nLT5jdXJfZnJhbWU7CisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCBwcm9iZTsKKwl1aW50MzJfdCBpbnRlcnZhbDsKKwlpbnQgcmV0OworCisJaWYgKHBhcm0tPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmICh1dmNfcXVldWVfc3RyZWFtaW5nKCZ2aWRlby0+cXVldWUpKQorCQlyZXR1cm4gLUVCVVNZOworCisJbWVtY3B5KCZwcm9iZSwgJnZpZGVvLT5zdHJlYW1pbmctPmN0cmwsIHNpemVvZiBwcm9iZSk7CisJaW50ZXJ2YWwgPSB1dmNfZnJhY3Rpb25fdG9faW50ZXJ2YWwoCisJCQlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLm51bWVyYXRvciwKKwkJCXBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUuZGVub21pbmF0b3IpOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9GT1JNQVQsICJTZXR0aW5nIGZyYW1lIGludGVydmFsIHRvICV1LyV1ICgldSkuXG4iLAorCQkJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5udW1lcmF0b3IsCisJCQlwYXJtLT5wYXJtLmNhcHR1cmUudGltZXBlcmZyYW1lLmRlbm9taW5hdG9yLAorCQkJaW50ZXJ2YWwpOworCXByb2JlLmR3RnJhbWVJbnRlcnZhbCA9IHV2Y190cnlfZnJhbWVfaW50ZXJ2YWwoZnJhbWUsIGludGVydmFsKTsKKworCS8qIFByb2JlIHRoZSBkZXZpY2Ugd2l0aCB0aGUgbmV3IHNldHRpbmdzLiAqLworCWlmICgocmV0ID0gdXZjX3Byb2JlX3ZpZGVvKHZpZGVvLCAmcHJvYmUpKSA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKiBDb21taXQgdGhlIG5ldyBzZXR0aW5ncy4gKi8KKwlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgJnByb2JlLCAwKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJbWVtY3B5KCZ2aWRlby0+c3RyZWFtaW5nLT5jdHJsLCAmcHJvYmUsIHNpemVvZiBwcm9iZSk7CisKKwkvKiBSZXR1cm4gdGhlIGFjdHVhbCBmcmFtZSBwZXJpb2QuICovCisJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5udW1lcmF0b3IgPSBwcm9iZS5kd0ZyYW1lSW50ZXJ2YWw7CisJcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5kZW5vbWluYXRvciA9IDEwMDAwMDAwOworCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmcGFybS0+cGFybS5jYXB0dXJlLnRpbWVwZXJmcmFtZS5udW1lcmF0b3IsCisJCQkJJnBhcm0tPnBhcm0uY2FwdHVyZS50aW1lcGVyZnJhbWUuZGVub21pbmF0b3IsCisJCQkJOCwgMzMzKTsKKworCXJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFByaXZpbGVnZSBtYW5hZ2VtZW50CisgKi8KKworLyoKKyAqIFByaXZpbGVnZSBtYW5hZ2VtZW50IGlzIHRoZSBtdWx0aXBsZS1vcGVuIGltcGxlbWVudGF0aW9uIGJhc2lzLiBUaGUgY3VycmVudAorICogaW1wbGVtZW50YXRpb24gaXMgY29tcGxldGVseSB0cmFuc3BhcmVudCBmb3IgdGhlIGVuZC11c2VyIGFuZCBkb2Vzbid0CisgKiByZXF1aXJlIGV4cGxpY2l0IHVzZSBvZiB0aGUgVklESU9DX0dfUFJJT1JJVFkgYW5kIFZJRElPQ19TX1BSSU9SSVRZIGlvY3Rscy4KKyAqIFRob3NlIGlvY3RscyBlbmFibGUgZmluZXIgY29udHJvbCBvbiB0aGUgZGV2aWNlIChieSBtYWtpbmcgcG9zc2libGUgZm9yIGEKKyAqIHVzZXIgdG8gcmVxdWVzdCBleGNsdXNpdmUgYWNjZXNzIHRvIGEgZGV2aWNlKSwgYnV0IGFyZSBub3QgbWF0dXJlIHlldC4KKyAqIFN3aXRjaGluZyB0byB0aGUgVjRMMiBwcmlvcml0eSBtZWNoYW5pc20gbWlnaHQgYmUgY29uc2lkZXJlZCBpbiB0aGUgZnV0dXJlCisgKiBpZiB0aGlzIHNpdHVhdGlvbiBjaGFuZ2VzLgorICoKKyAqIEVhY2ggb3BlbiBpbnN0YW5jZSBvZiBhIFVWQyBkZXZpY2UgY2FuIGVpdGhlciBiZSBpbiBhIHByaXZpbGVnZWQgb3IKKyAqIHVucHJpdmlsZWdlZCBzdGF0ZS4gT25seSBhIHNpbmdsZSBpbnN0YW5jZSBjYW4gYmUgaW4gYSBwcml2aWxlZ2VkIHN0YXRlIGF0CisgKiBhIGdpdmVuIHRpbWUuIFRyeWluZyB0byBwZXJmb3JtIGFuIG9wZXJhdGlvbiB3aGljaCByZXF1aXJlcyBwcml2aWxlZ2VzIHdpbGwKKyAqIGF1dG9tYXRpY2FsbHkgYWNxdWlyZSB0aGUgcmVxdWlyZWQgcHJpdmlsZWdlcyBpZiBwb3NzaWJsZSwgb3IgcmV0dXJuIC1FQlVTWQorICogb3RoZXJ3aXNlLiBQcml2aWxlZ2VzIGFyZSBkaXNtaXNzZWQgd2hlbiBjbG9zaW5nIHRoZSBpbnN0YW5jZS4KKyAqCisgKiBPcGVyYXRpb25zIHdoaWNoIHJlcXVpcmUgcHJpdmlsZWdlcyBhcmU6CisgKgorICogLSBWSURJT0NfU19JTlBVVAorICogLSBWSURJT0NfU19QQVJNCisgKiAtIFZJRElPQ19TX0ZNVAorICogLSBWSURJT0NfVFJZX0ZNVAorICogLSBWSURJT0NfUkVRQlVGUworICovCitzdGF0aWMgaW50IHV2Y19hY3F1aXJlX3ByaXZpbGVnZXMoc3RydWN0IHV2Y19maCAqaGFuZGxlKQoreworCWludCByZXQgPSAwOworCisJLyogQWx3YXlzIHN1Y2NlZWQgaWYgdGhlIGhhbmRsZSBpcyBhbHJlYWR5IHByaXZpbGVnZWQuICovCisJaWYgKGhhbmRsZS0+c3RhdGUgPT0gVVZDX0hBTkRMRV9BQ1RJVkUpCisJCXJldHVybiAwOworCisJLyogQ2hlY2sgaWYgdGhlIGRldmljZSBhbHJlYWR5IGhhcyBhIHByaXZpbGVnZWQgaGFuZGxlLiAqLworCW11dGV4X2xvY2soJnV2Y19kcml2ZXIub3Blbl9tdXRleCk7CisJaWYgKGF0b21pY19pbmNfcmV0dXJuKCZoYW5kbGUtPmRldmljZS0+YWN0aXZlKSAhPSAxKSB7CisJCWF0b21pY19kZWMoJmhhbmRsZS0+ZGV2aWNlLT5hY3RpdmUpOworCQlyZXQgPSAtRUJVU1k7CisJCWdvdG8gZG9uZTsKKwl9CisKKwloYW5kbGUtPnN0YXRlID0gVVZDX0hBTkRMRV9BQ1RJVkU7CisKK2RvbmU6CisJbXV0ZXhfdW5sb2NrKCZ1dmNfZHJpdmVyLm9wZW5fbXV0ZXgpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y19kaXNtaXNzX3ByaXZpbGVnZXMoc3RydWN0IHV2Y19maCAqaGFuZGxlKQoreworCWlmIChoYW5kbGUtPnN0YXRlID09IFVWQ19IQU5ETEVfQUNUSVZFKQorCQlhdG9taWNfZGVjKCZoYW5kbGUtPmRldmljZS0+YWN0aXZlKTsKKworCWhhbmRsZS0+c3RhdGUgPSBVVkNfSEFORExFX1BBU1NJVkU7Cit9CisKK3N0YXRpYyBpbnQgdXZjX2hhc19wcml2aWxlZ2VzKHN0cnVjdCB1dmNfZmggKmhhbmRsZSkKK3sKKwlyZXR1cm4gaGFuZGxlLT5zdGF0ZSA9PSBVVkNfSEFORExFX0FDVElWRTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBWNEwyIGZpbGUgb3BlcmF0aW9ucworICovCisKK3N0YXRpYyBpbnQgdXZjX3Y0bDJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2OworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbzsKKwlzdHJ1Y3QgdXZjX2ZoICpoYW5kbGU7CisJaW50IHJldCA9IDA7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfb3BlblxuIik7CisJbXV0ZXhfbG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKwl2ZGV2ID0gdmlkZW9fZGV2ZGF0YShmaWxlKTsKKwl2aWRlbyA9IHZpZGVvX2dldF9kcnZkYXRhKHZkZXYpOworCisJaWYgKHZpZGVvLT5kZXYtPnN0YXRlICYgVVZDX0RFVl9ESVNDT05ORUNURUQpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBkb25lOworCX0KKworCXJldCA9IHVzYl9hdXRvcG1fZ2V0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT5pbnRmKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBkb25lOworCisJLyogQ3JlYXRlIHRoZSBkZXZpY2UgaGFuZGxlLiAqLworCWhhbmRsZSA9IGt6YWxsb2Moc2l6ZW9mICpoYW5kbGUsIEdGUF9LRVJORUwpOworCWlmIChoYW5kbGUgPT0gTlVMTCkgeworCQl1c2JfYXV0b3BtX3B1dF9pbnRlcmZhY2UodmlkZW8tPmRldi0+aW50Zik7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZG9uZTsKKwl9CisKKwloYW5kbGUtPmRldmljZSA9IHZpZGVvOworCWhhbmRsZS0+c3RhdGUgPSBVVkNfSEFORExFX1BBU1NJVkU7CisJZmlsZS0+cHJpdmF0ZV9kYXRhID0gaGFuZGxlOworCisJa3JlZl9nZXQoJnZpZGVvLT5kZXYtPmtyZWYpOworCitkb25lOgorCW11dGV4X3VubG9jaygmdXZjX2RyaXZlci5vcGVuX211dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHZpZGVvX2RldmljZSAqdmRldiA9IHZpZGVvX2RldmRhdGEoZmlsZSk7CisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvID0gdmlkZW9fZ2V0X2RydmRhdGEodmRldik7CisJc3RydWN0IHV2Y19maCAqaGFuZGxlID0gKHN0cnVjdCB1dmNfZmggKilmaWxlLT5wcml2YXRlX2RhdGE7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfcmVsZWFzZVxuIik7CisKKwkvKiBPbmx5IGZyZWUgcmVzb3VyY2VzIGlmIHRoaXMgaXMgYSBwcml2aWxlZ2VkIGhhbmRsZS4gKi8KKwlpZiAodXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpIHsKKwkJdXZjX3ZpZGVvX2VuYWJsZSh2aWRlbywgMCk7CisKKwkJbXV0ZXhfbG9jaygmdmlkZW8tPnF1ZXVlLm11dGV4KTsKKwkJaWYgKHV2Y19mcmVlX2J1ZmZlcnMoJnZpZGVvLT5xdWV1ZSkgPCAwKQorCQkJdXZjX3ByaW50ayhLRVJOX0VSUiwgInV2Y192NGwyX3JlbGVhc2U6IFVuYWJsZSB0byAiCisJCQkJCSJmcmVlIGJ1ZmZlcnMuXG4iKTsKKwkJbXV0ZXhfdW5sb2NrKCZ2aWRlby0+cXVldWUubXV0ZXgpOworCX0KKworCS8qIFJlbGVhc2UgdGhlIGZpbGUgaGFuZGxlLiAqLworCXV2Y19kaXNtaXNzX3ByaXZpbGVnZXMoaGFuZGxlKTsKKwlrZnJlZShoYW5kbGUpOworCWZpbGUtPnByaXZhdGVfZGF0YSA9IE5VTEw7CisKKwl1c2JfYXV0b3BtX3B1dF9pbnRlcmZhY2UodmlkZW8tPmRldi0+aW50Zik7CisJa3JlZl9wdXQoJnZpZGVvLT5kZXYtPmtyZWYsIHV2Y19kZWxldGUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX2RvX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkgICAgIHVuc2lnbmVkIGludCBjbWQsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2ID0gdmlkZW9fZGV2ZGF0YShmaWxlKTsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8gPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsKKwlzdHJ1Y3QgdXZjX2ZoICpoYW5kbGUgPSAoc3RydWN0IHV2Y19maCAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwlpbnQgcmV0ID0gMDsKKworCWlmICh1dmNfdHJhY2VfcGFyYW0gJiBVVkNfVFJBQ0VfSU9DVEwpCisJCXY0bF9wcmludGtfaW9jdGwoY21kKTsKKworCXN3aXRjaCAoY21kKSB7CisJLyogUXVlcnkgY2FwYWJpbGl0aWVzICovCisJY2FzZSBWSURJT0NfUVVFUllDQVA6CisJeworCQlzdHJ1Y3QgdjRsMl9jYXBhYmlsaXR5ICpjYXAgPSBhcmc7CisKKwkJbWVtc2V0KGNhcCwgMCwgc2l6ZW9mICpjYXApOworCQlzdHJuY3B5KGNhcC0+ZHJpdmVyLCAidXZjdmlkZW8iLCBzaXplb2YgY2FwLT5kcml2ZXIpOworCQlzdHJuY3B5KGNhcC0+Y2FyZCwgdmRldi0+bmFtZSwgMzIpOworCQlzdHJuY3B5KGNhcC0+YnVzX2luZm8sIHZpZGVvLT5kZXYtPnVkZXYtPmJ1cy0+YnVzX25hbWUsCisJCQlzaXplb2YgY2FwLT5idXNfaW5mbyk7CisJCWNhcC0+dmVyc2lvbiA9IERSSVZFUl9WRVJTSU9OX05VTUJFUjsKKwkJY2FwLT5jYXBhYmlsaXRpZXMgPSBWNEwyX0NBUF9WSURFT19DQVBUVVJFCisJCQkJICB8IFY0TDJfQ0FQX1NUUkVBTUlORzsKKwkJYnJlYWs7CisJfQorCisJLyogR2V0LCBTZXQgJiBRdWVyeSBjb250cm9sICovCisJY2FzZSBWSURJT0NfUVVFUllDVFJMOgorCQlyZXR1cm4gdXZjX3F1ZXJ5X3Y0bDJfY3RybCh2aWRlbywgYXJnKTsKKworCWNhc2UgVklESU9DX0dfQ1RSTDoKKwl7CisJCXN0cnVjdCB2NGwyX2NvbnRyb2wgKmN0cmwgPSBhcmc7CisJCXN0cnVjdCB2NGwyX2V4dF9jb250cm9sIHhjdHJsOworCisJCW1lbXNldCgmeGN0cmwsIDAsIHNpemVvZiB4Y3RybCk7CisJCXhjdHJsLmlkID0gY3RybC0+aWQ7CisKKwkJdXZjX2N0cmxfYmVnaW4odmlkZW8pOworCQlyZXQgPSB1dmNfY3RybF9nZXQodmlkZW8sICZ4Y3RybCk7CisJCXV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJaWYgKHJldCA+PSAwKQorCQkJY3RybC0+dmFsdWUgPSB4Y3RybC52YWx1ZTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfU19DVFJMOgorCXsKKwkJc3RydWN0IHY0bDJfY29udHJvbCAqY3RybCA9IGFyZzsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgeGN0cmw7CisKKwkJbWVtc2V0KCZ4Y3RybCwgMCwgc2l6ZW9mIHhjdHJsKTsKKwkJeGN0cmwuaWQgPSBjdHJsLT5pZDsKKwkJeGN0cmwudmFsdWUgPSBjdHJsLT52YWx1ZTsKKworCQl1dmNfY3RybF9iZWdpbih2aWRlbyk7CisJCXJldCA9IHV2Y19jdHJsX3NldCh2aWRlbywgJnhjdHJsKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCXV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwkJcmV0ID0gdXZjX2N0cmxfY29tbWl0KHZpZGVvKTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfUVVFUllNRU5VOgorCQlyZXR1cm4gdXZjX3Y0bDJfcXVlcnlfbWVudSh2aWRlbywgYXJnKTsKKworCWNhc2UgVklESU9DX0dfRVhUX0NUUkxTOgorCXsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2xzICpjdHJscyA9IGFyZzsKKwkJc3RydWN0IHY0bDJfZXh0X2NvbnRyb2wgKmN0cmwgPSBjdHJscy0+Y29udHJvbHM7CisJCXVuc2lnbmVkIGludCBpOworCisJCXV2Y19jdHJsX2JlZ2luKHZpZGVvKTsKKwkJZm9yIChpID0gMDsgaSA8IGN0cmxzLT5jb3VudDsgKytjdHJsLCArK2kpIHsKKwkJCXJldCA9IHV2Y19jdHJsX2dldCh2aWRlbywgY3RybCk7CisJCQlpZiAocmV0IDwgMCkgeworCQkJCXV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJCQljdHJscy0+ZXJyb3JfaWR4ID0gaTsKKwkJCQlyZXR1cm4gcmV0OworCQkJfQorCQl9CisJCWN0cmxzLT5lcnJvcl9pZHggPSAwOworCQlyZXQgPSB1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX1NfRVhUX0NUUkxTOgorCWNhc2UgVklESU9DX1RSWV9FWFRfQ1RSTFM6CisJeworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbHMgKmN0cmxzID0gYXJnOworCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqY3RybCA9IGN0cmxzLT5jb250cm9sczsKKwkJdW5zaWduZWQgaW50IGk7CisKKwkJcmV0ID0gdXZjX2N0cmxfYmVnaW4odmlkZW8pOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJZm9yIChpID0gMDsgaSA8IGN0cmxzLT5jb3VudDsgKytjdHJsLCArK2kpIHsKKwkJCXJldCA9IHV2Y19jdHJsX3NldCh2aWRlbywgY3RybCk7CisJCQlpZiAocmV0IDwgMCkgeworCQkJCXV2Y19jdHJsX3JvbGxiYWNrKHZpZGVvKTsKKwkJCQljdHJscy0+ZXJyb3JfaWR4ID0gaTsKKwkJCQlyZXR1cm4gcmV0OworCQkJfQorCQl9CisKKwkJY3RybHMtPmVycm9yX2lkeCA9IDA7CisKKwkJaWYgKGNtZCA9PSBWSURJT0NfU19FWFRfQ1RSTFMpCisJCQlyZXQgPSB1dmNfY3RybF9jb21taXQodmlkZW8pOworCQllbHNlCisJCQlyZXQgPSB1dmNfY3RybF9yb2xsYmFjayh2aWRlbyk7CisJCWJyZWFrOworCX0KKworCS8qIEdldCwgU2V0ICYgRW51bSBpbnB1dCAqLworCWNhc2UgVklESU9DX0VOVU1JTlBVVDoKKwl7CisJCWNvbnN0IHN0cnVjdCB1dmNfZW50aXR5ICpzZWxlY3RvciA9IHZpZGVvLT5zZWxlY3RvcjsKKwkJc3RydWN0IHY0bDJfaW5wdXQgKmlucHV0ID0gYXJnOworCQlzdHJ1Y3QgdXZjX2VudGl0eSAqaXRlcm0gPSBOVUxMOworCQl1MzIgaW5kZXggPSBpbnB1dC0+aW5kZXg7CisJCWludCBwaW4gPSAwOworCisJCWlmIChzZWxlY3RvciA9PSBOVUxMIHx8CisJCSAgICAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX0lHTk9SRV9TRUxFQ1RPUl9VTklUKSkgeworCQkJaWYgKGluZGV4ICE9IDApCisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQlpdGVybSA9IGxpc3RfZmlyc3RfZW50cnkoJnZpZGVvLT5pdGVybXMsCisJCQkJCXN0cnVjdCB1dmNfZW50aXR5LCBjaGFpbik7CisJCQlwaW4gPSBpdGVybS0+aWQ7CisJCX0gZWxzZSBpZiAocGluIDwgc2VsZWN0b3ItPnNlbGVjdG9yLmJOckluUGlucykgeworCQkJcGluID0gc2VsZWN0b3ItPnNlbGVjdG9yLmJhU291cmNlSURbaW5kZXhdOworCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShpdGVybSwgdmlkZW8tPml0ZXJtcy5uZXh0LCBjaGFpbikgeworCQkJCWlmIChpdGVybS0+aWQgPT0gcGluKQorCQkJCQlicmVhazsKKwkJCX0KKwkJfQorCisJCWlmIChpdGVybSA9PSBOVUxMIHx8IGl0ZXJtLT5pZCAhPSBwaW4pCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQltZW1zZXQoaW5wdXQsIDAsIHNpemVvZiAqaW5wdXQpOworCQlpbnB1dC0+aW5kZXggPSBpbmRleDsKKwkJc3RybmNweShpbnB1dC0+bmFtZSwgaXRlcm0tPm5hbWUsIHNpemVvZiBpbnB1dC0+bmFtZSk7CisJCWlmIChVVkNfRU5USVRZX1RZUEUoaXRlcm0pID09IElUVF9DQU1FUkEpCisJCQlpbnB1dC0+dHlwZSA9IFY0TDJfSU5QVVRfVFlQRV9DQU1FUkE7CisJCWJyZWFrOworCX0KKworCWNhc2UgVklESU9DX0dfSU5QVVQ6CisJeworCQl1OCBpbnB1dDsKKworCQlpZiAodmlkZW8tPnNlbGVjdG9yID09IE5VTEwgfHwKKwkJICAgICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfSUdOT1JFX1NFTEVDVE9SX1VOSVQpKSB7CisJCQkqKGludCAqKWFyZyA9IDA7CisJCQlicmVhazsKKwkJfQorCisJCXJldCA9IHV2Y19xdWVyeV9jdHJsKHZpZGVvLT5kZXYsIEdFVF9DVVIsIHZpZGVvLT5zZWxlY3Rvci0+aWQsCisJCQl2aWRlby0+ZGV2LT5pbnRmbnVtLCBTVV9JTlBVVF9TRUxFQ1RfQ09OVFJPTCwKKwkJCSZpbnB1dCwgMSk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQkqKGludCAqKWFyZyA9IGlucHV0IC0gMTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfU19JTlBVVDoKKwl7CisJCXU4IGlucHV0ID0gKih1MzIgKilhcmcgKyAxOworCisJCWlmICgocmV0ID0gdXZjX2FjcXVpcmVfcHJpdmlsZWdlcyhoYW5kbGUpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWlmICh2aWRlby0+c2VsZWN0b3IgPT0gTlVMTCB8fAorCQkgICAgKHZpZGVvLT5kZXYtPnF1aXJrcyAmIFVWQ19RVUlSS19JR05PUkVfU0VMRUNUT1JfVU5JVCkpIHsKKwkJCWlmIChpbnB1dCAhPSAxKQorCQkJCXJldHVybiAtRUlOVkFMOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoaW5wdXQgPiB2aWRlby0+c2VsZWN0b3ItPnNlbGVjdG9yLmJOckluUGlucykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCXJldHVybiB1dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBTRVRfQ1VSLCB2aWRlby0+c2VsZWN0b3ItPmlkLAorCQkJdmlkZW8tPmRldi0+aW50Zm51bSwgU1VfSU5QVVRfU0VMRUNUX0NPTlRST0wsCisJCQkmaW5wdXQsIDEpOworCX0KKworCS8qIFRyeSwgR2V0LCBTZXQgJiBFbnVtIGZvcm1hdCAqLworCWNhc2UgVklESU9DX0VOVU1fRk1UOgorCXsKKwkJc3RydWN0IHY0bDJfZm10ZGVzYyAqZm10ID0gYXJnOworCQlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0OworCisJCWlmIChmbXQtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFIHx8CisJCSAgICBmbXQtPmluZGV4ID49IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJZm9ybWF0ID0gJnZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtmbXQtPmluZGV4XTsKKwkJZm10LT5mbGFncyA9IDA7CisJCWlmIChmb3JtYXQtPmZsYWdzICYgVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQpCisJCQlmbXQtPmZsYWdzIHw9IFY0TDJfRk1UX0ZMQUdfQ09NUFJFU1NFRDsKKwkJc3RybmNweShmbXQtPmRlc2NyaXB0aW9uLCBmb3JtYXQtPm5hbWUsCisJCQlzaXplb2YgZm10LT5kZXNjcmlwdGlvbik7CisJCWZtdC0+ZGVzY3JpcHRpb25bc2l6ZW9mIGZtdC0+ZGVzY3JpcHRpb24gLSAxXSA9IDA7CisJCWZtdC0+cGl4ZWxmb3JtYXQgPSBmb3JtYXQtPmZjYzsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfVFJZX0ZNVDoKKwl7CisJCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgcHJvYmU7CisKKwkJaWYgKChyZXQgPSB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKGhhbmRsZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIHV2Y192NGwyX3RyeV9mb3JtYXQodmlkZW8sIGFyZywgJnByb2JlLCBOVUxMLCBOVUxMKTsKKwl9CisKKwljYXNlIFZJRElPQ19TX0ZNVDoKKwkJaWYgKChyZXQgPSB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKGhhbmRsZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIHV2Y192NGwyX3NldF9mb3JtYXQodmlkZW8sIGFyZyk7CisKKwljYXNlIFZJRElPQ19HX0ZNVDoKKwkJcmV0dXJuIHV2Y192NGwyX2dldF9mb3JtYXQodmlkZW8sIGFyZyk7CisKKwkvKiBGcmFtZSBzaXplIGVudW1lcmF0aW9uICovCisJY2FzZSBWSURJT0NfRU5VTV9GUkFNRVNJWkVTOgorCXsKKwkJc3RydWN0IHY0bDJfZnJtc2l6ZWVudW0gKmZzaXplID0gYXJnOworCQlzdHJ1Y3QgdXZjX2Zvcm1hdCAqZm9ybWF0ID0gTlVMTDsKKwkJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7CisJCWludCBpOworCisJCS8qIExvb2sgZm9yIHRoZSBnaXZlbiBwaXhlbCBmb3JtYXQgKi8KKwkJZm9yIChpID0gMDsgaSA8IHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzOyBpKyspIHsKKwkJCWlmICh2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaV0uZmNjID09CisJCQkJCWZzaXplLT5waXhlbF9mb3JtYXQpIHsKKwkJCQlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ldOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChmb3JtYXQgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmIChmc2l6ZS0+aW5kZXggPj0gZm9ybWF0LT5uZnJhbWVzKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtmc2l6ZS0+aW5kZXhdOworCQlmc2l6ZS0+dHlwZSA9IFY0TDJfRlJNU0laRV9UWVBFX0RJU0NSRVRFOworCQlmc2l6ZS0+ZGlzY3JldGUud2lkdGggPSBmcmFtZS0+d1dpZHRoOworCQlmc2l6ZS0+ZGlzY3JldGUuaGVpZ2h0ID0gZnJhbWUtPndIZWlnaHQ7CisJCWJyZWFrOworCX0KKworCS8qIEZyYW1lIGludGVydmFsIGVudW1lcmF0aW9uICovCisJY2FzZSBWSURJT0NfRU5VTV9GUkFNRUlOVEVSVkFMUzoKKwl7CisJCXN0cnVjdCB2NGwyX2ZybWl2YWxlbnVtICpmaXZhbCA9IGFyZzsKKwkJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdCA9IE5VTEw7CisJCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gTlVMTDsKKwkJaW50IGk7CisKKwkJLyogTG9vayBmb3IgdGhlIGdpdmVuIHBpeGVsIGZvcm1hdCBhbmQgZnJhbWUgc2l6ZSAqLworCQlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHM7IGkrKykgeworCQkJaWYgKHZpZGVvLT5zdHJlYW1pbmctPmZvcm1hdFtpXS5mY2MgPT0KKwkJCQkJZml2YWwtPnBpeGVsX2Zvcm1hdCkgeworCQkJCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbaV07CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJaWYgKGZvcm1hdCA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJZm9yIChpID0gMDsgaSA8IGZvcm1hdC0+bmZyYW1lczsgaSsrKSB7CisJCQlpZiAoZm9ybWF0LT5mcmFtZVtpXS53V2lkdGggPT0gZml2YWwtPndpZHRoICYmCisJCQkgICAgZm9ybWF0LT5mcmFtZVtpXS53SGVpZ2h0ID09IGZpdmFsLT5oZWlnaHQpIHsKKwkJCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2ldOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJCWlmIChmcmFtZSA9PSBOVUxMKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKGZyYW1lLT5iRnJhbWVJbnRlcnZhbFR5cGUpIHsKKwkJCWlmIChmaXZhbC0+aW5kZXggPj0gZnJhbWUtPmJGcmFtZUludGVydmFsVHlwZSkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKKworCQkJZml2YWwtPnR5cGUgPSBWNEwyX0ZSTUlWQUxfVFlQRV9ESVNDUkVURTsKKwkJCWZpdmFsLT5kaXNjcmV0ZS5udW1lcmF0b3IgPQorCQkJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbZml2YWwtPmluZGV4XTsKKwkJCWZpdmFsLT5kaXNjcmV0ZS5kZW5vbWluYXRvciA9IDEwMDAwMDAwOworCQkJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZmaXZhbC0+ZGlzY3JldGUubnVtZXJhdG9yLAorCQkJCSZmaXZhbC0+ZGlzY3JldGUuZGVub21pbmF0b3IsIDgsIDMzMyk7CisJCX0gZWxzZSB7CisJCQlmaXZhbC0+dHlwZSA9IFY0TDJfRlJNSVZBTF9UWVBFX1NURVBXSVNFOworCQkJZml2YWwtPnN0ZXB3aXNlLm1pbi5udW1lcmF0b3IgPQorCQkJCWZyYW1lLT5kd0ZyYW1lSW50ZXJ2YWxbMF07CisJCQlmaXZhbC0+c3RlcHdpc2UubWluLmRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJCQlmaXZhbC0+c3RlcHdpc2UubWF4Lm51bWVyYXRvciA9CisJCQkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFsxXTsKKwkJCWZpdmFsLT5zdGVwd2lzZS5tYXguZGVub21pbmF0b3IgPSAxMDAwMDAwMDsKKwkJCWZpdmFsLT5zdGVwd2lzZS5zdGVwLm51bWVyYXRvciA9CisJCQkJZnJhbWUtPmR3RnJhbWVJbnRlcnZhbFsyXTsKKwkJCWZpdmFsLT5zdGVwd2lzZS5zdGVwLmRlbm9taW5hdG9yID0gMTAwMDAwMDA7CisJCQl1dmNfc2ltcGxpZnlfZnJhY3Rpb24oJmZpdmFsLT5zdGVwd2lzZS5taW4ubnVtZXJhdG9yLAorCQkJCSZmaXZhbC0+c3RlcHdpc2UubWluLmRlbm9taW5hdG9yLCA4LCAzMzMpOworCQkJdXZjX3NpbXBsaWZ5X2ZyYWN0aW9uKCZmaXZhbC0+c3RlcHdpc2UubWF4Lm51bWVyYXRvciwKKwkJCQkmZml2YWwtPnN0ZXB3aXNlLm1heC5kZW5vbWluYXRvciwgOCwgMzMzKTsKKwkJCXV2Y19zaW1wbGlmeV9mcmFjdGlvbigmZml2YWwtPnN0ZXB3aXNlLnN0ZXAubnVtZXJhdG9yLAorCQkJCSZmaXZhbC0+c3RlcHdpc2Uuc3RlcC5kZW5vbWluYXRvciwgOCwgMzMzKTsKKwkJfQorCQlicmVhazsKKwl9CisKKwkvKiBHZXQgJiBTZXQgc3RyZWFtaW5nIHBhcmFtZXRlcnMgKi8KKwljYXNlIFZJRElPQ19HX1BBUk06CisJCXJldHVybiB1dmNfdjRsMl9nZXRfc3RyZWFtcGFybSh2aWRlbywgYXJnKTsKKworCWNhc2UgVklESU9DX1NfUEFSTToKKwkJaWYgKChyZXQgPSB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKGhhbmRsZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0dXJuIHV2Y192NGwyX3NldF9zdHJlYW1wYXJtKHZpZGVvLCBhcmcpOworCisJLyogQ3JvcHBpbmcgYW5kIHNjYWxpbmcgKi8KKwljYXNlIFZJRElPQ19DUk9QQ0FQOgorCXsKKwkJc3RydWN0IHY0bDJfY3JvcGNhcCAqY2NhcCA9IGFyZzsKKwkJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWUgPSB2aWRlby0+c3RyZWFtaW5nLT5jdXJfZnJhbWU7CisKKwkJaWYgKGNjYXAtPnR5cGUgIT0gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJY2NhcC0+Ym91bmRzLmxlZnQgPSAwOworCQljY2FwLT5ib3VuZHMudG9wID0gMDsKKwkJY2NhcC0+Ym91bmRzLndpZHRoID0gZnJhbWUtPndXaWR0aDsKKwkJY2NhcC0+Ym91bmRzLmhlaWdodCA9IGZyYW1lLT53SGVpZ2h0OworCisJCWNjYXAtPmRlZnJlY3QgPSBjY2FwLT5ib3VuZHM7CisKKwkJY2NhcC0+cGl4ZWxhc3BlY3QubnVtZXJhdG9yID0gMTsKKwkJY2NhcC0+cGl4ZWxhc3BlY3QuZGVub21pbmF0b3IgPSAxOworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19HX0NST1A6CisJY2FzZSBWSURJT0NfU19DUk9QOgorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIEJ1ZmZlcnMgJiBzdHJlYW1pbmcgKi8KKwljYXNlIFZJRElPQ19SRVFCVUZTOgorCXsKKwkJc3RydWN0IHY0bDJfcmVxdWVzdGJ1ZmZlcnMgKnJiID0gYXJnOworCQl1bnNpZ25lZCBpbnQgYnVmc2l6ZSA9CisJCQl2aWRlby0+c3RyZWFtaW5nLT5jdHJsLmR3TWF4VmlkZW9GcmFtZVNpemU7CisKKwkJaWYgKHJiLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSB8fAorCQkgICAgcmItPm1lbW9yeSAhPSBWNEwyX01FTU9SWV9NTUFQKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJaWYgKChyZXQgPSB1dmNfYWNxdWlyZV9wcml2aWxlZ2VzKGhhbmRsZSkpIDwgMCkKKwkJCXJldHVybiByZXQ7CisKKwkJcmV0ID0gdXZjX2FsbG9jX2J1ZmZlcnMoJnZpZGVvLT5xdWV1ZSwgcmItPmNvdW50LCBidWZzaXplKTsKKwkJaWYgKHJldCA8IDApCisJCQlyZXR1cm4gcmV0OworCisJCWlmICghKHZpZGVvLT5zdHJlYW1pbmctPmN1cl9mb3JtYXQtPmZsYWdzICYKKwkJICAgIFVWQ19GTVRfRkxBR19DT01QUkVTU0VEKSkKKwkJCXZpZGVvLT5xdWV1ZS5mbGFncyB8PSBVVkNfUVVFVUVfRFJPUF9JTkNPTVBMRVRFOworCisJCXJiLT5jb3VudCA9IHJldDsKKwkJcmV0ID0gMDsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBWSURJT0NfUVVFUllCVUY6CisJeworCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKmJ1ZiA9IGFyZzsKKworCQlpZiAoYnVmLT50eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmICghdXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXJldHVybiB1dmNfcXVlcnlfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJfQorCisJY2FzZSBWSURJT0NfUUJVRjoKKwkJaWYgKCF1dmNfaGFzX3ByaXZpbGVnZXMoaGFuZGxlKSkKKwkJCXJldHVybiAtRUJVU1k7CisKKwkJcmV0dXJuIHV2Y19xdWV1ZV9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYXJnKTsKKworCWNhc2UgVklESU9DX0RRQlVGOgorCQlpZiAoIXV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQlyZXR1cm4gdXZjX2RlcXVldWVfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGFyZywKKwkJCWZpbGUtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKTsKKworCWNhc2UgVklESU9DX1NUUkVBTU9OOgorCXsKKwkJaW50ICp0eXBlID0gYXJnOworCisJCWlmICgqdHlwZSAhPSBWNEwyX0JVRl9UWVBFX1ZJREVPX0NBUFRVUkUpCisJCQlyZXR1cm4gLUVJTlZBTDsKKworCQlpZiAoIXV2Y19oYXNfcHJpdmlsZWdlcyhoYW5kbGUpKQorCQkJcmV0dXJuIC1FQlVTWTsKKworCQlpZiAoKHJldCA9IHV2Y192aWRlb19lbmFibGUodmlkZW8sIDEpKSA8IDApCisJCQlyZXR1cm4gcmV0OworCQlicmVhazsKKwl9CisKKwljYXNlIFZJRElPQ19TVFJFQU1PRkY6CisJeworCQlpbnQgKnR5cGUgPSBhcmc7CisKKwkJaWYgKCp0eXBlICE9IFY0TDJfQlVGX1RZUEVfVklERU9fQ0FQVFVSRSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWlmICghdXZjX2hhc19wcml2aWxlZ2VzKGhhbmRsZSkpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXJldHVybiB1dmNfdmlkZW9fZW5hYmxlKHZpZGVvLCAwKTsKKwl9CisKKwkvKiBBbmFsb2cgdmlkZW8gc3RhbmRhcmRzIG1ha2Ugbm8gc2Vuc2UgZm9yIGRpZ2l0YWwgY2FtZXJhcy4gKi8KKwljYXNlIFZJRElPQ19FTlVNU1REOgorCWNhc2UgVklESU9DX1FVRVJZU1REOgorCWNhc2UgVklESU9DX0dfU1REOgorCWNhc2UgVklESU9DX1NfU1REOgorCisJY2FzZSBWSURJT0NfT1ZFUkxBWToKKworCWNhc2UgVklESU9DX0VOVU1BVURJTzoKKwljYXNlIFZJRElPQ19FTlVNQVVET1VUOgorCisJY2FzZSBWSURJT0NfRU5VTU9VVFBVVDoKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9JT0NUTCwgIlVuc3VwcG9ydGVkIGlvY3RsIDB4JTA4eFxuIiwgY21kKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBEeW5hbWljIGNvbnRyb2xzLiAqLworCWNhc2UgVVZDSU9DX0NUUkxfQUREOgorCXsKKwkJc3RydWN0IHV2Y194dV9jb250cm9sX2luZm8gKnhpbmZvID0gYXJnOworCQlzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyAqaW5mbzsKKworCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCisJCQlyZXR1cm4gLUVQRVJNOworCisJCWluZm8gPSBrbWFsbG9jKHNpemVvZiAqaW5mbywgR0ZQX0tFUk5FTCk7CisJCWlmIChpbmZvID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQltZW1jcHkoaW5mby0+ZW50aXR5LCB4aW5mby0+ZW50aXR5LCBzaXplb2YgaW5mby0+ZW50aXR5KTsKKwkJaW5mby0+aW5kZXggPSB4aW5mby0+aW5kZXg7CisJCWluZm8tPnNlbGVjdG9yID0geGluZm8tPnNlbGVjdG9yOworCQlpbmZvLT5zaXplID0geGluZm8tPnNpemU7CisJCWluZm8tPmZsYWdzID0geGluZm8tPmZsYWdzOworCisJCWluZm8tPmZsYWdzIHw9IFVWQ19DT05UUk9MX0dFVF9NSU4gfCBVVkNfQ09OVFJPTF9HRVRfTUFYIHwKKwkJCQlVVkNfQ09OVFJPTF9HRVRfUkVTIHwgVVZDX0NPTlRST0xfR0VUX0RFRjsKKworCQlyZXQgPSB1dmNfY3RybF9hZGRfaW5mbyhpbmZvKTsKKwkJaWYgKHJldCA8IDApCisJCQlrZnJlZShpbmZvKTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBVVkNJT0NfQ1RSTF9NQVA6CisJeworCQlzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfbWFwcGluZyAqeG1hcCA9IGFyZzsKKwkJc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcDsKKworCQlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpCisJCQlyZXR1cm4gLUVQRVJNOworCisJCW1hcCA9IGttYWxsb2Moc2l6ZW9mICptYXAsIEdGUF9LRVJORUwpOworCQlpZiAobWFwID09IE5VTEwpCisJCQlyZXR1cm4gLUVOT01FTTsKKworCQltYXAtPmlkID0geG1hcC0+aWQ7CisJCW1lbWNweShtYXAtPm5hbWUsIHhtYXAtPm5hbWUsIHNpemVvZiBtYXAtPm5hbWUpOworCQltZW1jcHkobWFwLT5lbnRpdHksIHhtYXAtPmVudGl0eSwgc2l6ZW9mIG1hcC0+ZW50aXR5KTsKKwkJbWFwLT5zZWxlY3RvciA9IHhtYXAtPnNlbGVjdG9yOworCQltYXAtPnNpemUgPSB4bWFwLT5zaXplOworCQltYXAtPm9mZnNldCA9IHhtYXAtPm9mZnNldDsKKwkJbWFwLT52NGwyX3R5cGUgPSB4bWFwLT52NGwyX3R5cGU7CisJCW1hcC0+ZGF0YV90eXBlID0geG1hcC0+ZGF0YV90eXBlOworCisJCXJldCA9IHV2Y19jdHJsX2FkZF9tYXBwaW5nKG1hcCk7CisJCWlmIChyZXQgPCAwKQorCQkJa2ZyZWUobWFwKTsKKwkJYnJlYWs7CisJfQorCisJY2FzZSBVVkNJT0NfQ1RSTF9HRVQ6CisJCXJldHVybiB1dmNfeHVfY3RybF9xdWVyeSh2aWRlbywgYXJnLCAwKTsKKworCWNhc2UgVVZDSU9DX0NUUkxfU0VUOgorCQlyZXR1cm4gdXZjX3h1X2N0cmxfcXVlcnkodmlkZW8sIGFyZywgMSk7CisKKwlkZWZhdWx0OgorCQlpZiAoKHJldCA9IHY0bF9jb21wYXRfdHJhbnNsYXRlX2lvY3RsKGlub2RlLCBmaWxlLCBjbWQsIGFyZywKKwkJCXV2Y192NGwyX2RvX2lvY3RsKSkgPT0gLUVOT0lPQ1RMQ01EKQorCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9JT0NUTCwgIlVua25vd24gaW9jdGwgMHglMDh4XG4iLAorCQkJCSAgY21kKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHV2Y192NGwyX2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAorCQkgICAgIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQoreworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9pb2N0bFxuIik7CisJcmV0dXJuIHZpZGVvX3VzZXJjb3B5KGlub2RlLCBmaWxlLCBjbWQsIGFyZywgdXZjX3Y0bDJfZG9faW9jdGwpOworfQorCitzdGF0aWMgc3NpemVfdCB1dmNfdjRsMl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqZGF0YSwKKwkJICAgIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQoreworCXV2Y190cmFjZShVVkNfVFJBQ0VfQ0FMTFMsICJ1dmNfdjRsMl9yZWFkOiBub3QgaW1wbGVtZW50ZWQuXG4iKTsKKwlyZXR1cm4gLUVOT0RFVjsKK30KKworLyoKKyAqIFZNQSBvcGVyYXRpb25zLgorICovCitzdGF0aWMgdm9pZCB1dmNfdm1fb3BlbihzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmZmVyID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisJYnVmZmVyLT52bWFfdXNlX2NvdW50Kys7Cit9CisKK3N0YXRpYyB2b2lkIHV2Y192bV9jbG9zZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmZmVyID0gdm1hLT52bV9wcml2YXRlX2RhdGE7CisJYnVmZmVyLT52bWFfdXNlX2NvdW50LS07Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgdXZjX3ZtX29wcyA9IHsKKwkub3BlbgkJPSB1dmNfdm1fb3BlbiwKKwkuY2xvc2UJCT0gdXZjX3ZtX2Nsb3NlLAorfTsKKworc3RhdGljIGludCB1dmNfdjRsMl9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2ID0gdmlkZW9fZGV2ZGF0YShmaWxlKTsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8gPSB2aWRlb19nZXRfZHJ2ZGF0YSh2ZGV2KTsKKwlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmZmVyOworCXN0cnVjdCBwYWdlICpwYWdlOworCXVuc2lnbmVkIGxvbmcgYWRkciwgc3RhcnQsIHNpemU7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldCA9IDA7CisKKwl1dmNfdHJhY2UoVVZDX1RSQUNFX0NBTExTLCAidXZjX3Y0bDJfbW1hcFxuIik7CisKKwlzdGFydCA9IHZtYS0+dm1fc3RhcnQ7CisJc2l6ZSA9IHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsKKworCW11dGV4X2xvY2soJnZpZGVvLT5xdWV1ZS5tdXRleCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdmlkZW8tPnF1ZXVlLmNvdW50OyArK2kpIHsKKwkJYnVmZmVyID0gJnZpZGVvLT5xdWV1ZS5idWZmZXJbaV07CisJCWlmICgoYnVmZmVyLT5idWYubS5vZmZzZXQgPj4gUEFHRV9TSElGVCkgPT0gdm1hLT52bV9wZ29mZikKKwkJCWJyZWFrOworCX0KKworCWlmIChpID09IHZpZGVvLT5xdWV1ZS5jb3VudCB8fCBzaXplICE9IHZpZGVvLT5xdWV1ZS5idWZfc2l6ZSkgeworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGRvbmU7CisJfQorCisJLyoKKwkgKiBWTV9JTyBtYXJrcyB0aGUgYXJlYSBhcyBiZWluZyBhbiBtbWFwZWQgcmVnaW9uIGZvciBJL08gdG8gYQorCSAqIGRldmljZS4gSXQgYWxzbyBwcmV2ZW50cyB0aGUgcmVnaW9uIGZyb20gYmVpbmcgY29yZSBkdW1wZWQuCisJICovCisJdm1hLT52bV9mbGFncyB8PSBWTV9JTzsKKworCWFkZHIgPSAodW5zaWduZWQgbG9uZyl2aWRlby0+cXVldWUubWVtICsgYnVmZmVyLT5idWYubS5vZmZzZXQ7CisJd2hpbGUgKHNpemUgPiAwKSB7CisJCXBhZ2UgPSB2bWFsbG9jX3RvX3BhZ2UoKHZvaWQgKilhZGRyKTsKKwkJaWYgKChyZXQgPSB2bV9pbnNlcnRfcGFnZSh2bWEsIHN0YXJ0LCBwYWdlKSkgPCAwKQorCQkJZ290byBkb25lOworCisJCXN0YXJ0ICs9IFBBR0VfU0laRTsKKwkJYWRkciArPSBQQUdFX1NJWkU7CisJCXNpemUgLT0gUEFHRV9TSVpFOworCX0KKworCXZtYS0+dm1fb3BzID0gJnV2Y192bV9vcHM7CisJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBidWZmZXI7CisJdXZjX3ZtX29wZW4odm1hKTsKKworZG9uZToKKwltdXRleF91bmxvY2soJnZpZGVvLT5xdWV1ZS5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCB1dmNfdjRsMl9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBwb2xsX3RhYmxlICp3YWl0KQoreworCXN0cnVjdCB2aWRlb19kZXZpY2UgKnZkZXYgPSB2aWRlb19kZXZkYXRhKGZpbGUpOworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyA9IHZpZGVvX2dldF9kcnZkYXRhKHZkZXYpOworCisJdXZjX3RyYWNlKFVWQ19UUkFDRV9DQUxMUywgInV2Y192NGwyX3BvbGxcbiIpOworCisJcmV0dXJuIHV2Y19xdWV1ZV9wb2xsKCZ2aWRlby0+cXVldWUsIGZpbGUsIHdhaXQpOworfQorCitzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHV2Y19mb3BzID0geworCS5vd25lcgkJPSBUSElTX01PRFVMRSwKKwkub3BlbgkJPSB1dmNfdjRsMl9vcGVuLAorCS5yZWxlYXNlCT0gdXZjX3Y0bDJfcmVsZWFzZSwKKwkuaW9jdGwJCT0gdXZjX3Y0bDJfaW9jdGwsCisJLmNvbXBhdF9pb2N0bAk9IHY0bF9jb21wYXRfaW9jdGwzMiwKKwkubGxzZWVrCQk9IG5vX2xsc2VlaywKKwkucmVhZAkJPSB1dmNfdjRsMl9yZWFkLAorCS5tbWFwCQk9IHV2Y192NGwyX21tYXAsCisJLnBvbGwJCT0gdXZjX3Y0bDJfcG9sbCwKK307CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdmlkZW8uYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192aWRlby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmYWYxZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdmlkZW8uYwpAQCAtMCwwICsxLDkzNCBAQAorLyoKKyAqICAgICAgdXZjX3ZpZGVvLmMgIC0tICBVU0IgVmlkZW8gQ2xhc3MgZHJpdmVyIC0gVmlkZW8gaGFuZGxpbmcKKyAqCisgKiAgICAgIENvcHlyaWdodCAoQykgMjAwNS0yMDA4CisgKiAgICAgICAgICBMYXVyZW50IFBpbmNoYXJ0IChsYXVyZW50LnBpbmNoYXJ0QHNreW5ldC5iZSkKKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZpZGVvZGV2Mi5oPgorI2luY2x1ZGUgPGxpbnV4L3ZtYWxsb2MuaD4KKyNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KKworI2luY2x1ZGUgPG1lZGlhL3Y0bDItY29tbW9uLmg+CisKKyNpbmNsdWRlICJ1dmN2aWRlby5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFVWQyBDb250cm9scworICovCisKK3N0YXRpYyBpbnQgX191dmNfcXVlcnlfY3RybChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBfX3U4IHF1ZXJ5LCBfX3U4IHVuaXQsCisJCQlfX3U4IGludGZudW0sIF9fdTggY3MsIHZvaWQgKmRhdGEsIF9fdTE2IHNpemUsCisJCQlpbnQgdGltZW91dCkKK3sKKwlfX3U4IHR5cGUgPSBVU0JfVFlQRV9DTEFTUyB8IFVTQl9SRUNJUF9JTlRFUkZBQ0U7CisJdW5zaWduZWQgaW50IHBpcGU7CisJaW50IHJldDsKKworCXBpcGUgPSAocXVlcnkgJiAweDgwKSA/IHVzYl9yY3ZjdHJscGlwZShkZXYtPnVkZXYsIDApCisJCQkgICAgICA6IHVzYl9zbmRjdHJscGlwZShkZXYtPnVkZXYsIDApOworCXR5cGUgfD0gKHF1ZXJ5ICYgMHg4MCkgPyBVU0JfRElSX0lOIDogVVNCX0RJUl9PVVQ7CisKKwlyZXQgPSB1c2JfY29udHJvbF9tc2coZGV2LT51ZGV2LCBwaXBlLCBxdWVyeSwgdHlwZSwgY3MgPDwgOCwKKwkJCXVuaXQgPDwgOCB8IGludGZudW0sIGRhdGEsIHNpemUsIHRpbWVvdXQpOworCisJaWYgKHJldCAhPSBzaXplKSB7CisJCXV2Y19wcmludGsoS0VSTl9FUlIsICJGYWlsZWQgdG8gcXVlcnkgKCV1KSBVVkMgY29udHJvbCAldSAiCisJCQkiKHVuaXQgJXUpIDogJWQgKGV4cC4gJXUpLlxuIiwgcXVlcnksIGNzLCB1bml0LCByZXQsCisJCQlzaXplKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCB1dmNfcXVlcnlfY3RybChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2LCBfX3U4IHF1ZXJ5LCBfX3U4IHVuaXQsCisJCQlfX3U4IGludGZudW0sIF9fdTggY3MsIHZvaWQgKmRhdGEsIF9fdTE2IHNpemUpCit7CisJcmV0dXJuIF9fdXZjX3F1ZXJ5X2N0cmwoZGV2LCBxdWVyeSwgdW5pdCwgaW50Zm51bSwgY3MsIGRhdGEsIHNpemUsCisJCQkJVVZDX0NUUkxfQ09OVFJPTF9USU1FT1VUKTsKK30KKworc3RhdGljIHZvaWQgdXZjX2ZpeHVwX2J1ZmZlcl9zaXplKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpjdHJsKQoreworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQ7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7CisKKwlpZiAoY3RybC0+YkZvcm1hdEluZGV4IDw9IDAgfHwKKwkgICAgY3RybC0+YkZvcm1hdEluZGV4ID4gdmlkZW8tPnN0cmVhbWluZy0+bmZvcm1hdHMpCisJCXJldHVybjsKKworCWZvcm1hdCA9ICZ2aWRlby0+c3RyZWFtaW5nLT5mb3JtYXRbY3RybC0+YkZvcm1hdEluZGV4IC0gMV07CisKKwlpZiAoY3RybC0+YkZyYW1lSW5kZXggPD0gMCB8fAorCSAgICBjdHJsLT5iRnJhbWVJbmRleCA+IGZvcm1hdC0+bmZyYW1lcykKKwkJcmV0dXJuOworCisJZnJhbWUgPSAmZm9ybWF0LT5mcmFtZVtjdHJsLT5iRnJhbWVJbmRleCAtIDFdOworCisJaWYgKCEoZm9ybWF0LT5mbGFncyAmIFVWQ19GTVRfRkxBR19DT01QUkVTU0VEKSB8fAorCSAgICAgKGN0cmwtPmR3TWF4VmlkZW9GcmFtZVNpemUgPT0gMCAmJgorCSAgICAgIHZpZGVvLT5kZXYtPnV2Y192ZXJzaW9uIDwgMHgwMTEwKSkKKwkJY3RybC0+ZHdNYXhWaWRlb0ZyYW1lU2l6ZSA9CisJCQlmcmFtZS0+ZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZTsKK30KKworc3RhdGljIGludCB1dmNfZ2V0X3ZpZGVvX2N0cmwoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKmN0cmwsIGludCBwcm9iZSwgX191OCBxdWVyeSkKK3sKKwlfX3U4IGRhdGFbMzRdOworCV9fdTggc2l6ZTsKKwlpbnQgcmV0OworCisJc2l6ZSA9IHZpZGVvLT5kZXYtPnV2Y192ZXJzaW9uID49IDB4MDExMCA/IDM0IDogMjY7CisJcmV0ID0gX191dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBxdWVyeSwgMCwgdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bSwKKwkJcHJvYmUgPyBWU19QUk9CRV9DT05UUk9MIDogVlNfQ09NTUlUX0NPTlRST0wsICZkYXRhLCBzaXplLAorCQlVVkNfQ1RSTF9TVFJFQU1JTkdfVElNRU9VVCk7CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCWN0cmwtPmJtSGludCA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbMF0pOworCWN0cmwtPmJGb3JtYXRJbmRleCA9IGRhdGFbMl07CisJY3RybC0+YkZyYW1lSW5kZXggPSBkYXRhWzNdOworCWN0cmwtPmR3RnJhbWVJbnRlcnZhbCA9IGxlMzJfdG9fY3B1cCgoX19sZTMyICopJmRhdGFbNF0pOworCWN0cmwtPndLZXlGcmFtZVJhdGUgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzhdKTsKKwljdHJsLT53UEZyYW1lUmF0ZSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbMTBdKTsKKwljdHJsLT53Q29tcFF1YWxpdHkgPSBsZTE2X3RvX2NwdXAoKF9fbGUxNiAqKSZkYXRhWzEyXSk7CisJY3RybC0+d0NvbXBXaW5kb3dTaXplID0gbGUxNl90b19jcHVwKChfX2xlMTYgKikmZGF0YVsxNF0pOworCWN0cmwtPndEZWxheSA9IGxlMTZfdG9fY3B1cCgoX19sZTE2ICopJmRhdGFbMTZdKTsKKwljdHJsLT5kd01heFZpZGVvRnJhbWVTaXplID0KKwkJbGUzMl90b19jcHUoZ2V0X3VuYWxpZ25lZCgoX19sZTMyICopJmRhdGFbMThdKSk7CisJY3RybC0+ZHdNYXhQYXlsb2FkVHJhbnNmZXJTaXplID0KKwkJbGUzMl90b19jcHUoZ2V0X3VuYWxpZ25lZCgoX19sZTMyICopJmRhdGFbMjJdKSk7CisKKwlpZiAoc2l6ZSA9PSAzNCkgeworCQljdHJsLT5kd0Nsb2NrRnJlcXVlbmN5ID0KKwkJCWxlMzJfdG9fY3B1KGdldF91bmFsaWduZWQoKF9fbGUzMiAqKSZkYXRhWzI2XSkpOworCQljdHJsLT5ibUZyYW1pbmdJbmZvID0gZGF0YVszMF07CisJCWN0cmwtPmJQcmVmZXJlZFZlcnNpb24gPSBkYXRhWzMxXTsKKwkJY3RybC0+Yk1pblZlcnNpb24gPSBkYXRhWzMyXTsKKwkJY3RybC0+Yk1heFZlcnNpb24gPSBkYXRhWzMzXTsKKwl9IGVsc2UgeworCQljdHJsLT5kd0Nsb2NrRnJlcXVlbmN5ID0gdmlkZW8tPmRldi0+Y2xvY2tfZnJlcXVlbmN5OworCQljdHJsLT5ibUZyYW1pbmdJbmZvID0gMDsKKwkJY3RybC0+YlByZWZlcmVkVmVyc2lvbiA9IDA7CisJCWN0cmwtPmJNaW5WZXJzaW9uID0gMDsKKwkJY3RybC0+Yk1heFZlcnNpb24gPSAwOworCX0KKworCS8qIFNvbWUgYnJva2VuIGRldmljZXMgcmV0dXJuIGEgbnVsbCBvciB3cm9uZyBkd01heFZpZGVvRnJhbWVTaXplLgorCSAqIFRyeSB0byBnZXQgdGhlIHZhbHVlIGZyb20gdGhlIGZvcm1hdCBhbmQgZnJhbWUgZGVzY3JpcHRvci4KKwkgKi8KKwl1dmNfZml4dXBfYnVmZmVyX3NpemUodmlkZW8sIGN0cmwpOworCisJcmV0dXJuIDA7Cit9CisKK2ludCB1dmNfc2V0X3ZpZGVvX2N0cmwoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgKmN0cmwsIGludCBwcm9iZSkKK3sKKwlfX3U4IGRhdGFbMzRdOworCV9fdTggc2l6ZTsKKworCXNpemUgPSB2aWRlby0+ZGV2LT51dmNfdmVyc2lvbiA+PSAweDAxMTAgPyAzNCA6IDI2OworCW1lbXNldChkYXRhLCAwLCBzaXplb2YgZGF0YSk7CisKKwkqKF9fbGUxNiAqKSZkYXRhWzBdID0gY3B1X3RvX2xlMTYoY3RybC0+Ym1IaW50KTsKKwlkYXRhWzJdID0gY3RybC0+YkZvcm1hdEluZGV4OworCWRhdGFbM10gPSBjdHJsLT5iRnJhbWVJbmRleDsKKwkqKF9fbGUzMiAqKSZkYXRhWzRdID0gY3B1X3RvX2xlMzIoY3RybC0+ZHdGcmFtZUludGVydmFsKTsKKwkqKF9fbGUxNiAqKSZkYXRhWzhdID0gY3B1X3RvX2xlMTYoY3RybC0+d0tleUZyYW1lUmF0ZSk7CisJKihfX2xlMTYgKikmZGF0YVsxMF0gPSBjcHVfdG9fbGUxNihjdHJsLT53UEZyYW1lUmF0ZSk7CisJKihfX2xlMTYgKikmZGF0YVsxMl0gPSBjcHVfdG9fbGUxNihjdHJsLT53Q29tcFF1YWxpdHkpOworCSooX19sZTE2ICopJmRhdGFbMTRdID0gY3B1X3RvX2xlMTYoY3RybC0+d0NvbXBXaW5kb3dTaXplKTsKKwkqKF9fbGUxNiAqKSZkYXRhWzE2XSA9IGNwdV90b19sZTE2KGN0cmwtPndEZWxheSk7CisJLyogTm90ZTogU29tZSBvZiB0aGUgZmllbGRzIGJlbG93IGFyZSBub3QgcmVxdWlyZWQgZm9yIElOIGRldmljZXMgKHNlZQorCSAqIFVWQyBzcGVjLCA0LjMuMS4xKSwgYnV0IHdlIHN0aWxsIGNvcHkgdGhlbSBpbiBjYXNlIHN1cHBvcnQgZm9yIE9VVAorCSAqIGRldmljZXMgaXMgYWRkZWQgaW4gdGhlIGZ1dHVyZS4gKi8KKwlwdXRfdW5hbGlnbmVkKGNwdV90b19sZTMyKGN0cmwtPmR3TWF4VmlkZW9GcmFtZVNpemUpLAorCQkoX19sZTMyICopJmRhdGFbMThdKTsKKwlwdXRfdW5hbGlnbmVkKGNwdV90b19sZTMyKGN0cmwtPmR3TWF4UGF5bG9hZFRyYW5zZmVyU2l6ZSksCisJCShfX2xlMzIgKikmZGF0YVsyMl0pOworCisJaWYgKHNpemUgPT0gMzQpIHsKKwkJcHV0X3VuYWxpZ25lZChjcHVfdG9fbGUzMihjdHJsLT5kd0Nsb2NrRnJlcXVlbmN5KSwKKwkJCShfX2xlMzIgKikmZGF0YVsyNl0pOworCQlkYXRhWzMwXSA9IGN0cmwtPmJtRnJhbWluZ0luZm87CisJCWRhdGFbMzFdID0gY3RybC0+YlByZWZlcmVkVmVyc2lvbjsKKwkJZGF0YVszMl0gPSBjdHJsLT5iTWluVmVyc2lvbjsKKwkJZGF0YVszM10gPSBjdHJsLT5iTWF4VmVyc2lvbjsKKwl9CisKKwlyZXR1cm4gX191dmNfcXVlcnlfY3RybCh2aWRlby0+ZGV2LCBTRVRfQ1VSLCAwLAorCQl2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtLAorCQlwcm9iZSA/IFZTX1BST0JFX0NPTlRST0wgOiBWU19DT01NSVRfQ09OVFJPTCwgJmRhdGEsIHNpemUsCisJCVVWQ19DVFJMX1NUUkVBTUlOR19USU1FT1VUKTsKK30KKworaW50IHV2Y19wcm9iZV92aWRlbyhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqcHJvYmUpCit7CisJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCBwcm9iZV9taW4sIHByb2JlX21heDsKKwlfX3UxNiBiYW5kd2lkdGg7CisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKworCW11dGV4X2xvY2soJnZpZGVvLT5zdHJlYW1pbmctPm11dGV4KTsKKworCS8qIFBlcmZvcm0gcHJvYmluZy4gVGhlIGRldmljZSBzaG91bGQgYWRqdXN0IHRoZSByZXF1ZXN0ZWQgdmFsdWVzCisJICogYWNjb3JkaW5nIHRvIGl0cyBjYXBhYmlsaXRpZXMuIEhvd2V2ZXIsIHNvbWUgZGV2aWNlcywgbmFtZWx5IHRoZQorCSAqIGZpcnN0IGdlbmVyYXRpb24gVVZDIExvZ2l0ZWNoIHdlYmNhbXMsIGRvbid0IGltcGxlbWVudCB0aGUgVmlkZW8KKwkgKiBQcm9iZSBjb250cm9sIHByb3Blcmx5LCBhbmQganVzdCByZXR1cm4gdGhlIG5lZWRlZCBiYW5kd2lkdGguIEZvcgorCSAqIHRoYXQgcmVhc29uLCBpZiB0aGUgbmVlZGVkIGJhbmR3aWR0aCBleGNlZWRzIHRoZSBtYXhpbXVtIGF2YWlsYWJsZQorCSAqIGJhbmR3aWR0aCwgdHJ5IHRvIGxvd2VyIHRoZSBxdWFsaXR5LgorCSAqLworCWlmICgocmV0ID0gdXZjX3NldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMSkpIDwgMCkKKwkJZ290byBkb25lOworCisJLyogR2V0IHRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIHZhbHVlcyBmb3IgY29tcHJlc3Npb24gc2V0dGluZ3MuICovCisJaWYgKCEodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1BST0JFX01JTk1BWCkpIHsKKwkJcmV0ID0gdXZjX2dldF92aWRlb19jdHJsKHZpZGVvLCAmcHJvYmVfbWluLCAxLCBHRVRfTUlOKTsKKwkJaWYgKHJldCA8IDApCisJCQlnb3RvIGRvbmU7CisJCXJldCA9IHV2Y19nZXRfdmlkZW9fY3RybCh2aWRlbywgJnByb2JlX21heCwgMSwgR0VUX01BWCk7CisJCWlmIChyZXQgPCAwKQorCQkJZ290byBkb25lOworCisJCXByb2JlLT53Q29tcFF1YWxpdHkgPSBwcm9iZV9tYXgud0NvbXBRdWFsaXR5OworCX0KKworCWZvciAoaSA9IDA7IGkgPCAyOyArK2kpIHsKKwkJaWYgKChyZXQgPSB1dmNfc2V0X3ZpZGVvX2N0cmwodmlkZW8sIHByb2JlLCAxKSkgPCAwIHx8CisJCSAgICAocmV0ID0gdXZjX2dldF92aWRlb19jdHJsKHZpZGVvLCBwcm9iZSwgMSwgR0VUX0NVUikpIDwgMCkKKwkJCWdvdG8gZG9uZTsKKworCQlpZiAodmlkZW8tPnN0cmVhbWluZy0+aW50Zi0+bnVtX2FsdHNldHRpbmcgPT0gMSkKKwkJCWJyZWFrOworCisJCWJhbmR3aWR0aCA9IHByb2JlLT5kd01heFBheWxvYWRUcmFuc2ZlclNpemU7CisJCWlmIChiYW5kd2lkdGggPD0gdmlkZW8tPnN0cmVhbWluZy0+bWF4cHNpemUpCisJCQlicmVhazsKKworCQlpZiAodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1BST0JFX01JTk1BWCkgeworCQkJcmV0ID0gLUVOT1NQQzsKKwkJCWdvdG8gZG9uZTsKKwkJfQorCisJCS8qIFRPRE86IG5lZ290aWF0ZSBjb21wcmVzc2lvbiBwYXJhbWV0ZXJzICovCisJCXByb2JlLT53S2V5RnJhbWVSYXRlID0gcHJvYmVfbWluLndLZXlGcmFtZVJhdGU7CisJCXByb2JlLT53UEZyYW1lUmF0ZSA9IHByb2JlX21pbi53UEZyYW1lUmF0ZTsKKwkJcHJvYmUtPndDb21wUXVhbGl0eSA9IHByb2JlX21heC53Q29tcFF1YWxpdHk7CisJCXByb2JlLT53Q29tcFdpbmRvd1NpemUgPSBwcm9iZV9taW4ud0NvbXBXaW5kb3dTaXplOworCX0KKworZG9uZToKKwltdXRleF91bmxvY2soJnZpZGVvLT5zdHJlYW1pbmctPm11dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFZpZGVvIGNvZGVjcworICovCisKKy8qIFZhbHVlcyBmb3IgYm1IZWFkZXJJbmZvIChWaWRlbyBhbmQgU3RpbGwgSW1hZ2UgUGF5bG9hZCBIZWFkZXJzLCAyLjQuMy4zKSAqLworI2RlZmluZSBVVkNfU1RSRUFNX0VPSAkoMSA8PCA3KQorI2RlZmluZSBVVkNfU1RSRUFNX0VSUgkoMSA8PCA2KQorI2RlZmluZSBVVkNfU1RSRUFNX1NUSQkoMSA8PCA1KQorI2RlZmluZSBVVkNfU1RSRUFNX1JFUwkoMSA8PCA0KQorI2RlZmluZSBVVkNfU1RSRUFNX1NDUgkoMSA8PCAzKQorI2RlZmluZSBVVkNfU1RSRUFNX1BUUwkoMSA8PCAyKQorI2RlZmluZSBVVkNfU1RSRUFNX0VPRgkoMSA8PCAxKQorI2RlZmluZSBVVkNfU1RSRUFNX0ZJRAkoMSA8PCAwKQorCisvKiBWaWRlbyBwYXlsb2FkIGRlY29kaW5nIGlzIGhhbmRsZWQgYnkgdXZjX3ZpZGVvX2RlY29kZV9zdGFydCgpLAorICogdXZjX3ZpZGVvX2RlY29kZV9kYXRhKCkgYW5kIHV2Y192aWRlb19kZWNvZGVfZW5kKCkuCisgKgorICogdXZjX3ZpZGVvX2RlY29kZV9zdGFydCBpcyBjYWxsZWQgd2l0aCBVUkIgZGF0YSBhdCB0aGUgc3RhcnQgb2YgYSBidWxrIG9yCisgKiBpc29jaHJvbm91cyBwYXlsb2FkLiBJdCBwcm9jZXNzZXMgaGVhZGVyIGRhdGEgYW5kIHJldHVybnMgdGhlIGhlYWRlciBzaXplCisgKiBpbiBieXRlcyBpZiBzdWNjZXNzZnVsLiBJZiBhbiBlcnJvciBvY2N1cnMsIGl0IHJldHVybnMgYSBuZWdhdGl2ZSBlcnJvcgorICogY29kZS4gVGhlIGZvbGxvd2luZyBlcnJvciBjb2RlcyBoYXZlIHNwZWNpYWwgbWVhbmluZ3MuCisgKgorICogLSBFQUdBSU4gaW5mb3JtcyB0aGUgY2FsbGVyIHRoYXQgdGhlIGN1cnJlbnQgdmlkZW8gYnVmZmVyIHNob3VsZCBiZSBtYXJrZWQKKyAqICAgYXMgZG9uZSwgYW5kIHRoYXQgdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgYWdhaW4gd2l0aCB0aGUgc2FtZSBkYXRhCisgKiAgIGFuZCBhIG5ldyB2aWRlbyBidWZmZXIuIFRoaXMgaXMgdXNlZCB3aGVuIGVuZCBvZiBmcmFtZSBjb25kaXRpb25zIGNhbiBiZQorICogICByZWxpYWJseSBkZXRlY3RlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGZyYW1lIG9ubHkuCisgKgorICogSWYgYW4gZXJyb3Igb3RoZXIgdGhhbiAtRUFHQUlOIGlzIHJldHVybmVkLCB0aGUgY2FsbGVyIHdpbGwgZHJvcCB0aGUgY3VycmVudAorICogcGF5bG9hZC4gTm8gY2FsbCB0byB1dmNfdmlkZW9fZGVjb2RlX2RhdGEgYW5kIHV2Y192aWRlb19kZWNvZGVfZW5kIHdpbGwgYmUKKyAqIG1hZGUgdW50aWwgdGhlIG5leHQgcGF5bG9hZC4gLUVOT0RBVEEgY2FuIGJlIHVzZWQgdG8gZHJvcCB0aGUgY3VycmVudAorICogcGF5bG9hZCBpZiBubyBvdGhlciBlcnJvciBjb2RlIGlzIGFwcHJvcHJpYXRlLgorICoKKyAqIHV2Y192aWRlb19kZWNvZGVfZGF0YSBpcyBjYWxsZWQgZm9yIGV2ZXJ5IFVSQiB3aXRoIFVSQiBkYXRhLiBJdCBjb3BpZXMgdGhlCisgKiBkYXRhIHRvIHRoZSB2aWRlbyBidWZmZXIuCisgKgorICogdXZjX3ZpZGVvX2RlY29kZV9lbmQgaXMgY2FsbGVkIHdpdGggaGVhZGVyIGRhdGEgYXQgdGhlIGVuZCBvZiBhIGJ1bGsgb3IKKyAqIGlzb2Nocm9ub3VzIHBheWxvYWQuIEl0IHBlcmZvcm1zIGFueSBhZGRpdGlvbmFsIGhlYWRlciBkYXRhIHByb2Nlc3NpbmcgYW5kCisgKiByZXR1cm5zIDAgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIGlmIGFuIGVycm9yIG9jY3VyZWQuIEFzIGhlYWRlciBkYXRhIGhhdmUKKyAqIGFscmVhZHkgYmVlbiBwcm9jZXNzZWQgYnkgdXZjX3ZpZGVvX2RlY29kZV9zdGFydCwgdGhpcyBmdW5jdGlvbnMgaXNuJ3QKKyAqIHJlcXVpcmVkIHRvIHBlcmZvcm0gc2FuaXR5IGNoZWNrcyBhIHNlY29uZCB0aW1lLgorICoKKyAqIEZvciBpc29jaHJvbm91cyB0cmFuc2ZlcnMgd2hlcmUgYSBwYXlsb2FkIGlzIGFsd2F5cyB0cmFuc2ZlcmVkIGluIGEgc2luZ2xlCisgKiBVUkIsIHRoZSB0aHJlZSBmdW5jdGlvbnMgd2lsbCBiZSBjYWxsZWQgaW4gYSByb3cuCisgKgorICogVG8gbGV0IHRoZSBkZWNvZGVyIHByb2Nlc3MgaGVhZGVyIGRhdGEgYW5kIHVwZGF0ZSBpdHMgaW50ZXJuYWwgc3RhdGUgZXZlbgorICogd2hlbiBubyB2aWRlbyBidWZmZXIgaXMgYXZhaWxhYmxlLCB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0IG11c3QgYmUgcHJlcGFyZWQKKyAqIHRvIGJlIGNhbGxlZCB3aXRoIGEgTlVMTCBidWYgcGFyYW1ldGVyLiB1dmNfdmlkZW9fZGVjb2RlX2RhdGEgYW5kCisgKiB1dmNfdmlkZW9fZGVjb2RlX2VuZCB3aWxsIG5ldmVyIGJlIGNhbGxlZCB3aXRoIGEgTlVMTCBidWZmZXIuCisgKi8KK3N0YXRpYyBpbnQgdXZjX3ZpZGVvX2RlY29kZV9zdGFydChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYsIGNvbnN0IF9fdTggKmRhdGEsIGludCBsZW4pCit7CisJX191OCBmaWQ7CisKKwkvKiBTYW5pdHkgY2hlY2tzOgorCSAqIC0gcGFja2V0IG11c3QgYmUgYXQgbGVhc3QgMiBieXRlcyBsb25nCisJICogLSBiSGVhZGVyTGVuZ3RoIHZhbHVlIG11c3QgYmUgYXQgbGVhc3QgMiBieXRlcyAoc2VlIGFib3ZlKQorCSAqIC0gYkhlYWRlckxlbmd0aCB2YWx1ZSBjYW4ndCBiZSBsYXJnZXIgdGhhbiB0aGUgcGFja2V0IHNpemUuCisJICovCisJaWYgKGxlbiA8IDIgfHwgZGF0YVswXSA8IDIgfHwgZGF0YVswXSA+IGxlbikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBTa2lwIHBheWxvYWRzIG1hcmtlZCB3aXRoIHRoZSBlcnJvciBiaXQgKCJlcnJvciBmcmFtZXMiKS4gKi8KKwlpZiAoZGF0YVsxXSAmIFVWQ19TVFJFQU1fRVJSKSB7CisJCXV2Y190cmFjZShVVkNfVFJBQ0VfRlJBTUUsICJEcm9wcGluZyBwYXlsb2FkIChlcnJvciBiaXQgIgorCQkJICAic2V0KS5cbiIpOworCQlyZXR1cm4gLUVOT0RBVEE7CisJfQorCisJZmlkID0gZGF0YVsxXSAmIFVWQ19TVFJFQU1fRklEOworCisJLyogU3RvcmUgdGhlIHBheWxvYWQgRklEIGJpdCBhbmQgcmV0dXJuIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGJ1ZmZlciBpcworCSAqIE5VTEwuCisJICovCisJaWYgKGJ1ZiA9PSBOVUxMKSB7CisJCXZpZGVvLT5sYXN0X2ZpZCA9IGZpZDsKKwkJcmV0dXJuIC1FTk9EQVRBOworCX0KKworCS8qIFN5bmNocm9uaXplIHRvIHRoZSBpbnB1dCBzdHJlYW0gYnkgd2FpdGluZyBmb3IgdGhlIEZJRCBiaXQgdG8gYmUKKwkgKiB0b2dnbGVkIHdoZW4gdGhlIHRoZSBidWZmZXIgc3RhdGUgaXMgbm90IFVWQ19CVUZfU1RBVEVfQUNUSVZFLgorCSAqIHF1ZXVlLT5sYXN0X2ZpZCBpcyBpbml0aWFsaXplZCB0byAtMSwgc28gdGhlIGZpcnN0IGlzb2Nocm9ub3VzCisJICogZnJhbWUgd2lsbCBhbHdheXMgYmUgaW4gc3luYy4KKwkgKgorCSAqIElmIHRoZSBkZXZpY2UgZG9lc24ndCB0b2dnbGUgdGhlIEZJRCBiaXQsIGludmVydCB2aWRlby0+bGFzdF9maWQKKwkgKiB3aGVuIHRoZSBFT0YgYml0IGlzIHNldCB0byBmb3JjZSBzeW5jaHJvbmlzYXRpb24gb24gdGhlIG5leHQgcGFja2V0LgorCSAqLworCWlmIChidWYtPnN0YXRlICE9IFVWQ19CVUZfU1RBVEVfQUNUSVZFKSB7CisJCWlmIChmaWQgPT0gdmlkZW8tPmxhc3RfZmlkKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRHJvcHBpbmcgcGF5bG9hZCAob3V0IG9mICIKKwkJCQkic3luYykuXG4iKTsKKwkJCWlmICgodmlkZW8tPmRldi0+cXVpcmtzICYgVVZDX1FVSVJLX1NUUkVBTV9OT19GSUQpICYmCisJCQkgICAgKGRhdGFbMV0gJiBVVkNfU1RSRUFNX0VPRikpCisJCQkJdmlkZW8tPmxhc3RfZmlkIF49IFVWQ19TVFJFQU1fRklEOworCQkJcmV0dXJuIC1FTk9EQVRBOworCQl9CisKKwkJLyogVE9ETzogSGFuZGxlIFBUUyBhbmQgU0NSLiAqLworCQlidWYtPnN0YXRlID0gVVZDX0JVRl9TVEFURV9BQ1RJVkU7CisJfQorCisJLyogTWFyayB0aGUgYnVmZmVyIGFzIGRvbmUgaWYgd2UncmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIG5ldyBmcmFtZS4KKwkgKiBFbmQgb2YgZnJhbWUgZGV0ZWN0aW9uIGlzIGJldHRlciBpbXBsZW1lbnRlZCBieSBjaGVja2luZyB0aGUgRU9GCisJICogYml0IChGSUQgYml0IHRvZ2dsaW5nIGlzIGRlbGF5ZWQgYnkgb25lIGZyYW1lIGNvbXBhcmVkIHRvIHRoZSBFT0YKKwkgKiBiaXQpLCBidXQgc29tZSBkZXZpY2VzIGRvbid0IHNldCB0aGUgYml0IGF0IGVuZCBvZiBmcmFtZSAoYW5kIHRoZQorCSAqIGxhc3QgcGF5bG9hZCBjYW4gYmUgbG9zdCBhbnl3YXkpLiBXZSB0aHVzIG11c3QgY2hlY2sgaWYgdGhlIEZJRCBoYXMKKwkgKiBiZWVuIHRvZ2dsZWQuCisJICoKKwkgKiBxdWV1ZS0+bGFzdF9maWQgaXMgaW5pdGlhbGl6ZWQgdG8gLTEsIHNvIHRoZSBmaXJzdCBpc29jaHJvbm91cworCSAqIGZyYW1lIHdpbGwgbmV2ZXIgdHJpZ2dlciBhbiBlbmQgb2YgZnJhbWUgZGV0ZWN0aW9uLgorCSAqCisJICogRW1wdHkgYnVmZmVycyAoYnl0ZXN1c2VkID09IDApIGRvbid0IHRyaWdnZXIgZW5kIG9mIGZyYW1lIGRldGVjdGlvbgorCSAqIGFzIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byByZXR1cm4gYW4gZW1wdHkgYnVmZmVyLiBUaGlzIGFsc28KKwkgKiBhdm9pZHMgZGV0ZWN0aW5nIGFuZCBvZiBmcmFtZSBjb25kaXRpb25zIGF0IEZJRCB0b2dnbGluZyBpZiB0aGUKKwkgKiBwcmV2aW91cyBwYXlsb2FkIGhhZCB0aGUgRU9GIGJpdCBzZXQuCisJICovCisJaWYgKGZpZCAhPSB2aWRlby0+bGFzdF9maWQgJiYgYnVmLT5idWYuYnl0ZXN1c2VkICE9IDApIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkZyYW1lIGNvbXBsZXRlIChGSUQgYml0ICIKKwkJCQkidG9nZ2xlZCkuXG4iKTsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRE9ORTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJdmlkZW8tPmxhc3RfZmlkID0gZmlkOworCisJcmV0dXJuIGRhdGFbMF07Cit9CisKK3N0YXRpYyB2b2lkIHV2Y192aWRlb19kZWNvZGVfZGF0YShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCXN0cnVjdCB1dmNfYnVmZmVyICpidWYsIGNvbnN0IF9fdTggKmRhdGEsIGludCBsZW4pCit7CisJc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUgPSAmdmlkZW8tPnF1ZXVlOworCXVuc2lnbmVkIGludCBtYXhsZW4sIG5ieXRlczsKKwl2b2lkICptZW07CisKKwlpZiAobGVuIDw9IDApCisJCXJldHVybjsKKworCS8qIENvcHkgdGhlIHZpZGVvIGRhdGEgdG8gdGhlIGJ1ZmZlci4gKi8KKwltYXhsZW4gPSBidWYtPmJ1Zi5sZW5ndGggLSBidWYtPmJ1Zi5ieXRlc3VzZWQ7CisJbWVtID0gcXVldWUtPm1lbSArIGJ1Zi0+YnVmLm0ub2Zmc2V0ICsgYnVmLT5idWYuYnl0ZXN1c2VkOworCW5ieXRlcyA9IG1pbigodW5zaWduZWQgaW50KWxlbiwgbWF4bGVuKTsKKwltZW1jcHkobWVtLCBkYXRhLCBuYnl0ZXMpOworCWJ1Zi0+YnVmLmJ5dGVzdXNlZCArPSBuYnl0ZXM7CisKKwkvKiBDb21wbGV0ZSB0aGUgY3VycmVudCBmcmFtZSBpZiB0aGUgYnVmZmVyIHNpemUgd2FzIGV4Y2VlZGVkLiAqLworCWlmIChsZW4gPiBtYXhsZW4pIHsKKwkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkZyYW1lIGNvbXBsZXRlIChvdmVyZmxvdykuXG4iKTsKKwkJYnVmLT5zdGF0ZSA9IFVWQ19CVUZfU1RBVEVfRE9ORTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHV2Y192aWRlb19kZWNvZGVfZW5kKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiwgY29uc3QgX191OCAqZGF0YSwgaW50IGxlbikKK3sKKwkvKiBNYXJrIHRoZSBidWZmZXIgYXMgZG9uZSBpZiB0aGUgRU9GIG1hcmtlciBpcyBzZXQuICovCisJaWYgKGRhdGFbMV0gJiBVVkNfU1RSRUFNX0VPRiAmJiBidWYtPmJ1Zi5ieXRlc3VzZWQgIT0gMCkgeworCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiRnJhbWUgY29tcGxldGUgKEVPRiBmb3VuZCkuXG4iKTsKKwkJaWYgKGRhdGFbMF0gPT0gbGVuKQorCQkJdXZjX3RyYWNlKFVWQ19UUkFDRV9GUkFNRSwgIkVPRiBpbiBlbXB0eSBwYXlsb2FkLlxuIik7CisJCWJ1Zi0+c3RhdGUgPSBVVkNfQlVGX1NUQVRFX0RPTkU7CisJCWlmICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRCkKKwkJCXZpZGVvLT5sYXN0X2ZpZCBePSBVVkNfU1RSRUFNX0ZJRDsKKwl9Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVVJCIGhhbmRsaW5nCisgKi8KKworLyoKKyAqIENvbXBsZXRpb24gaGFuZGxlciBmb3IgdmlkZW8gVVJCcy4KKyAqLworc3RhdGljIHZvaWQgdXZjX3ZpZGVvX2RlY29kZV9pc29jKHN0cnVjdCB1cmIgKnVyYiwKKwlzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIHN0cnVjdCB1dmNfYnVmZmVyICpidWYpCit7CisJdTggKm1lbTsKKwlpbnQgcmV0LCBpOworCisJZm9yIChpID0gMDsgaSA8IHVyYi0+bnVtYmVyX29mX3BhY2tldHM7ICsraSkgeworCQlpZiAodXJiLT5pc29fZnJhbWVfZGVzY1tpXS5zdGF0dXMgPCAwKSB7CisJCQl1dmNfdHJhY2UoVVZDX1RSQUNFX0ZSQU1FLCAiVVNCIGlzb2Nocm9ub3VzIGZyYW1lICIKKwkJCQkibG9zdCAoJWQpLlxuIiwgdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5zdGF0dXMpOworCQkJY29udGludWU7CisJCX0KKworCQkvKiBEZWNvZGUgdGhlIHBheWxvYWQgaGVhZGVyLiAqLworCQltZW0gPSB1cmItPnRyYW5zZmVyX2J1ZmZlciArIHVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0ub2Zmc2V0OworCQlkbyB7CisJCQlyZXQgPSB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0KHZpZGVvLCBidWYsIG1lbSwKKwkJCQl1cmItPmlzb19mcmFtZV9kZXNjW2ldLmFjdHVhbF9sZW5ndGgpOworCQkJaWYgKHJldCA9PSAtRUFHQUlOKQorCQkJCWJ1ZiA9IHV2Y19xdWV1ZV9uZXh0X2J1ZmZlcigmdmlkZW8tPnF1ZXVlLCBidWYpOworCQl9IHdoaWxlIChyZXQgPT0gLUVBR0FJTik7CisKKwkJaWYgKHJldCA8IDApCisJCQljb250aW51ZTsKKworCQkvKiBEZWNvZGUgdGhlIHBheWxvYWQgZGF0YS4gKi8KKwkJdXZjX3ZpZGVvX2RlY29kZV9kYXRhKHZpZGVvLCBidWYsIG1lbSArIHJldCwKKwkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2NbaV0uYWN0dWFsX2xlbmd0aCAtIHJldCk7CisKKwkJLyogUHJvY2VzcyB0aGUgaGVhZGVyIGFnYWluLiAqLworCQl1dmNfdmlkZW9fZGVjb2RlX2VuZCh2aWRlbywgYnVmLCBtZW0sIHJldCk7CisKKwkJaWYgKGJ1Zi0+c3RhdGUgPT0gVVZDX0JVRl9TVEFURV9ET05FIHx8CisJCSAgICBidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRVJST1IpCisJCQlidWYgPSB1dmNfcXVldWVfbmV4dF9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHV2Y192aWRlb19kZWNvZGVfYnVsayhzdHJ1Y3QgdXJiICp1cmIsCisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLCBzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKQoreworCXU4ICptZW07CisJaW50IGxlbiwgcmV0OworCisJbWVtID0gdXJiLT50cmFuc2Zlcl9idWZmZXI7CisJbGVuID0gdXJiLT5hY3R1YWxfbGVuZ3RoOworCXZpZGVvLT5idWxrLnBheWxvYWRfc2l6ZSArPSBsZW47CisKKwkvKiBJZiB0aGUgVVJCIGlzIHRoZSBmaXJzdCBvZiBpdHMgcGF5bG9hZCwgZGVjb2RlIGFuZCBzYXZlIHRoZQorCSAqIGhlYWRlci4KKwkgKi8KKwlpZiAodmlkZW8tPmJ1bGsuaGVhZGVyX3NpemUgPT0gMCkgeworCQlkbyB7CisJCQlyZXQgPSB1dmNfdmlkZW9fZGVjb2RlX3N0YXJ0KHZpZGVvLCBidWYsIG1lbSwgbGVuKTsKKwkJCWlmIChyZXQgPT0gLUVBR0FJTikKKwkJCQlidWYgPSB1dmNfcXVldWVfbmV4dF9idWZmZXIoJnZpZGVvLT5xdWV1ZSwgYnVmKTsKKwkJfSB3aGlsZSAocmV0ID09IC1FQUdBSU4pOworCisJCS8qIElmIGFuIGVycm9yIG9jY3VyZWQgc2tpcCB0aGUgcmVzdCBvZiB0aGUgcGF5bG9hZC4gKi8KKwkJaWYgKHJldCA8IDAgfHwgYnVmID09IE5VTEwpIHsKKwkJCXZpZGVvLT5idWxrLnNraXBfcGF5bG9hZCA9IDE7CisJCQlyZXR1cm47CisJCX0KKworCQl2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSA9IHJldDsKKwkJbWVtY3B5KHZpZGVvLT5idWxrLmhlYWRlciwgbWVtLCB2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSk7CisKKwkJbWVtICs9IHJldDsKKwkJbGVuIC09IHJldDsKKwl9CisKKwkvKiBUaGUgYnVmZmVyIHF1ZXVlIG1pZ2h0IGhhdmUgYmVlbiBjYW5jZWxsZWQgd2hpbGUgYSBidWxrIHRyYW5zZmVyCisJICogd2FzIGluIHByb2dyZXNzLCBzbyB3ZSBjYW4gcmVhY2ggaGVyZSB3aXRoIGJ1ZiBlcXVhbCB0byBOVUxMLiBNYWtlCisJICogc3VyZSBidWYgaXMgbmV2ZXIgZGVyZWZlcmVuY2VkIGlmIE5VTEwuCisJICovCisKKwkvKiBQcm9jZXNzIHZpZGVvIGRhdGEuICovCisJaWYgKCF2aWRlby0+YnVsay5za2lwX3BheWxvYWQgJiYgYnVmICE9IE5VTEwpCisJCXV2Y192aWRlb19kZWNvZGVfZGF0YSh2aWRlbywgYnVmLCBtZW0sIGxlbik7CisKKwkvKiBEZXRlY3QgdGhlIHBheWxvYWQgZW5kIGJ5IGEgVVJCIHNtYWxsZXIgdGhhbiB0aGUgbWF4aW11bSBzaXplIChvcgorCSAqIGEgcGF5bG9hZCBzaXplIGVxdWFsIHRvIHRoZSBtYXhpbXVtKSBhbmQgcHJvY2VzcyB0aGUgaGVhZGVyIGFnYWluLgorCSAqLworCWlmICh1cmItPmFjdHVhbF9sZW5ndGggPCB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggfHwKKwkgICAgdmlkZW8tPmJ1bGsucGF5bG9hZF9zaXplID49IHZpZGVvLT5idWxrLm1heF9wYXlsb2FkX3NpemUpIHsKKwkJaWYgKCF2aWRlby0+YnVsay5za2lwX3BheWxvYWQgJiYgYnVmICE9IE5VTEwpIHsKKwkJCXV2Y192aWRlb19kZWNvZGVfZW5kKHZpZGVvLCBidWYsIHZpZGVvLT5idWxrLmhlYWRlciwKKwkJCQl2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSk7CisJCQlpZiAoYnVmLT5zdGF0ZSA9PSBVVkNfQlVGX1NUQVRFX0RPTkUgfHwKKwkJCSAgICBidWYtPnN0YXRlID09IFVWQ19CVUZfU1RBVEVfRVJST1IpCisJCQkJYnVmID0gdXZjX3F1ZXVlX25leHRfYnVmZmVyKCZ2aWRlby0+cXVldWUsIGJ1Zik7CisJCX0KKworCQl2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSA9IDA7CisJCXZpZGVvLT5idWxrLnNraXBfcGF5bG9hZCA9IDA7CisJCXZpZGVvLT5idWxrLnBheWxvYWRfc2l6ZSA9IDA7CisJfQorfQorCitzdGF0aWMgdm9pZCB1dmNfdmlkZW9fY29tcGxldGUoc3RydWN0IHVyYiAqdXJiKQoreworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyA9IHVyYi0+Y29udGV4dDsKKwlzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSA9ICZ2aWRlby0+cXVldWU7CisJc3RydWN0IHV2Y19idWZmZXIgKmJ1ZiA9IE5VTEw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlpbnQgcmV0OworCisJc3dpdGNoICh1cmItPnN0YXR1cykgeworCWNhc2UgMDoKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQl1dmNfcHJpbnRrKEtFUk5fV0FSTklORywgIk5vbi16ZXJvIHN0YXR1cyAoJWQpIGluIHZpZGVvICIKKwkJCSJjb21wbGV0aW9uIGhhbmRsZXIuXG4iLCB1cmItPnN0YXR1cyk7CisKKwljYXNlIC1FTk9FTlQ6CQkvKiB1c2Jfa2lsbF91cmIoKSBjYWxsZWQuICovCisJCWlmICh2aWRlby0+ZnJvemVuKQorCQkJcmV0dXJuOworCisJY2FzZSAtRUNPTk5SRVNFVDoJLyogdXNiX3VubGlua191cmIoKSBjYWxsZWQuICovCisJY2FzZSAtRVNIVVRET1dOOgkvKiBUaGUgZW5kcG9pbnQgaXMgYmVpbmcgZGlzYWJsZWQuICovCisJCXV2Y19xdWV1ZV9jYW5jZWwocXVldWUsIHVyYi0+c3RhdHVzID09IC1FU0hVVERPV04pOworCQlyZXR1cm47CisJfQorCisJc3Bpbl9sb2NrX2lycXNhdmUoJnF1ZXVlLT5pcnFsb2NrLCBmbGFncyk7CisJaWYgKCFsaXN0X2VtcHR5KCZxdWV1ZS0+aXJxcXVldWUpKQorCQlidWYgPSBsaXN0X2ZpcnN0X2VudHJ5KCZxdWV1ZS0+aXJxcXVldWUsIHN0cnVjdCB1dmNfYnVmZmVyLAorCQkJCSAgICAgICBxdWV1ZSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcXVldWUtPmlycWxvY2ssIGZsYWdzKTsKKworCXZpZGVvLT5kZWNvZGUodXJiLCB2aWRlbywgYnVmKTsKKworCWlmICgocmV0ID0gdXNiX3N1Ym1pdF91cmIodXJiLCBHRlBfQVRPTUlDKSkgPCAwKSB7CisJCXV2Y19wcmludGsoS0VSTl9FUlIsICJGYWlsZWQgdG8gcmVzdWJtaXQgdmlkZW8gVVJCICglZCkuXG4iLAorCQkJcmV0KTsKKwl9Cit9CisKKy8qCisgKiBVbmluaXRpYWxpemUgaXNvY2hyb25vdXMvYnVsayBVUkJzIGFuZCBmcmVlIHRyYW5zZmVyIGJ1ZmZlcnMuCisgKi8KK3N0YXRpYyB2b2lkIHV2Y191bmluaXRfdmlkZW8oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBVVkNfVVJCUzsgKytpKSB7CisJCWlmICgodXJiID0gdmlkZW8tPnVyYltpXSkgPT0gTlVMTCkKKwkJCWNvbnRpbnVlOworCisJCXVzYl9raWxsX3VyYih1cmIpOworCQkvKiB1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggaXMgbm90IHRvdWNoZWQgYnkgVVNCIGNvcmUsIHNvCisJCSAqIHdlIGNhbiB1c2UgaXQgaGVyZSBhcyB0aGUgYnVmZmVyIGxlbmd0aC4KKwkJICovCisJCWlmICh2aWRlby0+dXJiX2J1ZmZlcltpXSkgeworCQkJdXNiX2J1ZmZlcl9mcmVlKHZpZGVvLT5kZXYtPnVkZXYsCisJCQkJdXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLAorCQkJCXZpZGVvLT51cmJfYnVmZmVyW2ldLCB1cmItPnRyYW5zZmVyX2RtYSk7CisJCQl2aWRlby0+dXJiX2J1ZmZlcltpXSA9IE5VTEw7CisJCX0KKworCQl1c2JfZnJlZV91cmIodXJiKTsKKwkJdmlkZW8tPnVyYltpXSA9IE5VTEw7CisJfQorfQorCisvKgorICogSW5pdGlhbGl6ZSBpc29jaHJvbm91cyBVUkJzIGFuZCBhbGxvY2F0ZSB0cmFuc2ZlciBidWZmZXJzLiBUaGUgcGFja2V0IHNpemUKKyAqIGlzIGdpdmVuIGJ5IHRoZSBlbmRwb2ludC4KKyAqLworc3RhdGljIGludCB1dmNfaW5pdF92aWRlb19pc29jKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwlzdHJ1Y3QgdXNiX2hvc3RfZW5kcG9pbnQgKmVwKQoreworCXN0cnVjdCB1cmIgKnVyYjsKKwl1bnNpZ25lZCBpbnQgbnBhY2tldHMsIGksIGo7CisJX191MTYgcHNpemU7CisJX191MzIgc2l6ZTsKKworCS8qIENvbXB1dGUgdGhlIG51bWJlciBvZiBpc29jaHJvbm91cyBwYWNrZXRzIHRvIGFsbG9jYXRlIGJ5IGRpdmlkaW5nCisJICogdGhlIG1heGltdW0gdmlkZW8gZnJhbWUgc2l6ZSBieSB0aGUgcGFja2V0IHNpemUuIExpbWl0IHRoZSByZXN1bHQKKwkgKiB0byBVVkNfTUFYX0lTT19QQUNLRVRTLgorCSAqLworCXBzaXplID0gbGUxNl90b19jcHUoZXAtPmRlc2Mud01heFBhY2tldFNpemUpOworCXBzaXplID0gKHBzaXplICYgMHgwN2ZmKSAqICgxICsgKChwc2l6ZSA+PiAxMSkgJiAzKSk7CisKKwlzaXplID0gdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFZpZGVvRnJhbWVTaXplOworCWlmIChzaXplID4gVVZDX01BWF9GUkFNRV9TSVpFKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCW5wYWNrZXRzID0gKHNpemUgKyBwc2l6ZSAtIDEpIC8gcHNpemU7CisJaWYgKG5wYWNrZXRzID4gVVZDX01BWF9JU09fUEFDS0VUUykKKwkJbnBhY2tldHMgPSBVVkNfTUFYX0lTT19QQUNLRVRTOworCisJc2l6ZSA9IG5wYWNrZXRzICogcHNpemU7CisKKwlmb3IgKGkgPSAwOyBpIDwgVVZDX1VSQlM7ICsraSkgeworCQl1cmIgPSB1c2JfYWxsb2NfdXJiKG5wYWNrZXRzLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVyYiA9PSBOVUxMKSB7CisJCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJdmlkZW8tPnVyYl9idWZmZXJbaV0gPSB1c2JfYnVmZmVyX2FsbG9jKHZpZGVvLT5kZXYtPnVkZXYsCisJCQlzaXplLCBHRlBfS0VSTkVMLCAmdXJiLT50cmFuc2Zlcl9kbWEpOworCQlpZiAodmlkZW8tPnVyYl9idWZmZXJbaV0gPT0gTlVMTCkgeworCQkJdXNiX2ZyZWVfdXJiKHVyYik7CisJCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJdXJiLT5kZXYgPSB2aWRlby0+ZGV2LT51ZGV2OworCQl1cmItPmNvbnRleHQgPSB2aWRlbzsKKwkJdXJiLT5waXBlID0gdXNiX3Jjdmlzb2NwaXBlKHZpZGVvLT5kZXYtPnVkZXYsCisJCQkJZXAtPmRlc2MuYkVuZHBvaW50QWRkcmVzcyk7CisJCXVyYi0+dHJhbnNmZXJfZmxhZ3MgPSBVUkJfSVNPX0FTQVAgfCBVUkJfTk9fVFJBTlNGRVJfRE1BX01BUDsKKwkJdXJiLT5pbnRlcnZhbCA9IGVwLT5kZXNjLmJJbnRlcnZhbDsKKwkJdXJiLT50cmFuc2Zlcl9idWZmZXIgPSB2aWRlby0+dXJiX2J1ZmZlcltpXTsKKwkJdXJiLT5jb21wbGV0ZSA9IHV2Y192aWRlb19jb21wbGV0ZTsKKwkJdXJiLT5udW1iZXJfb2ZfcGFja2V0cyA9IG5wYWNrZXRzOworCQl1cmItPnRyYW5zZmVyX2J1ZmZlcl9sZW5ndGggPSBzaXplOworCisJCWZvciAoaiA9IDA7IGogPCBucGFja2V0czsgKytqKSB7CisJCQl1cmItPmlzb19mcmFtZV9kZXNjW2pdLm9mZnNldCA9IGogKiBwc2l6ZTsKKwkJCXVyYi0+aXNvX2ZyYW1lX2Rlc2Nbal0ubGVuZ3RoID0gcHNpemU7CisJCX0KKworCQl2aWRlby0+dXJiW2ldID0gdXJiOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogSW5pdGlhbGl6ZSBidWxrIFVSQnMgYW5kIGFsbG9jYXRlIHRyYW5zZmVyIGJ1ZmZlcnMuIFRoZSBwYWNrZXQgc2l6ZSBpcworICogZ2l2ZW4gYnkgdGhlIGVuZHBvaW50LgorICovCitzdGF0aWMgaW50IHV2Y19pbml0X3ZpZGVvX2J1bGsoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCXN0cnVjdCB1c2JfaG9zdF9lbmRwb2ludCAqZXApCit7CisJc3RydWN0IHVyYiAqdXJiOworCXVuc2lnbmVkIGludCBwaXBlLCBpOworCV9fdTE2IHBzaXplOworCV9fdTMyIHNpemU7CisKKwkvKiBDb21wdXRlIHRoZSBidWxrIFVSQiBzaXplLiBTb21lIGRldmljZXMgc2V0IHRoZSBtYXhpbXVtIHBheWxvYWQKKwkgKiBzaXplIHRvIGEgdmFsdWUgdG9vIGhpZ2ggZm9yIG1lbW9yeS1jb25zdHJhaW5lZCBkZXZpY2VzLiBXZSBtdXN0CisJICogdGhlbiB0cmFuc2ZlciB0aGUgcGF5bG9hZCBhY2Nyb3NzIG11bHRpcGxlIFVSQnMuIFRvIGJlIGNvbnNpc3RhbnQKKwkgKiB3aXRoIGlzb2Nocm9ub3VzIG1vZGUsIGFsbG9jYXRlIG1heGltdW0gVVZDX01BWF9JU09fUEFDS0VUUyBwZXIgYnVsaworCSAqIFVSQi4KKwkgKi8KKwlwc2l6ZSA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLndNYXhQYWNrZXRTaXplKSAmIDB4MDdmZjsKKwlzaXplID0gdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFBheWxvYWRUcmFuc2ZlclNpemU7CisJdmlkZW8tPmJ1bGsubWF4X3BheWxvYWRfc2l6ZSA9IHNpemU7CisJaWYgKHNpemUgPiBwc2l6ZSAqIFVWQ19NQVhfSVNPX1BBQ0tFVFMpCisJCXNpemUgPSBwc2l6ZSAqIFVWQ19NQVhfSVNPX1BBQ0tFVFM7CisKKwlwaXBlID0gdXNiX3JjdmJ1bGtwaXBlKHZpZGVvLT5kZXYtPnVkZXYsIGVwLT5kZXNjLmJFbmRwb2ludEFkZHJlc3MpOworCisJZm9yIChpID0gMDsgaSA8IFVWQ19VUkJTOyArK2kpIHsKKwkJdXJiID0gdXNiX2FsbG9jX3VyYigwLCBHRlBfS0VSTkVMKTsKKwkJaWYgKHVyYiA9PSBOVUxMKSB7CisJCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJdmlkZW8tPnVyYl9idWZmZXJbaV0gPSB1c2JfYnVmZmVyX2FsbG9jKHZpZGVvLT5kZXYtPnVkZXYsCisJCQlzaXplLCBHRlBfS0VSTkVMLCAmdXJiLT50cmFuc2Zlcl9kbWEpOworCQlpZiAodmlkZW8tPnVyYl9idWZmZXJbaV0gPT0gTlVMTCkgeworCQkJdXNiX2ZyZWVfdXJiKHVyYik7CisJCQl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisKKwkJdXNiX2ZpbGxfYnVsa191cmIodXJiLCB2aWRlby0+ZGV2LT51ZGV2LCBwaXBlLAorCQkJdmlkZW8tPnVyYl9idWZmZXJbaV0sIHNpemUsIHV2Y192aWRlb19jb21wbGV0ZSwKKwkJCXZpZGVvKTsKKwkJdXJiLT50cmFuc2Zlcl9mbGFncyA9IFVSQl9OT19UUkFOU0ZFUl9ETUFfTUFQOworCisJCXZpZGVvLT51cmJbaV0gPSB1cmI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGlzb2Nocm9ub3VzL2J1bGsgVVJCcyBhbmQgYWxsb2NhdGUgdHJhbnNmZXIgYnVmZmVycy4KKyAqLworc3RhdGljIGludCB1dmNfaW5pdF92aWRlbyhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYgPSB2aWRlby0+c3RyZWFtaW5nLT5pbnRmOworCXN0cnVjdCB1c2JfaG9zdF9pbnRlcmZhY2UgKmFsdHM7CisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICplcCA9IE5VTEw7CisJaW50IGludGZudW0gPSB2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtOworCXVuc2lnbmVkIGludCBiYW5kd2lkdGgsIHBzaXplLCBpOworCWludCByZXQ7CisKKwl2aWRlby0+bGFzdF9maWQgPSAtMTsKKwl2aWRlby0+YnVsay5oZWFkZXJfc2l6ZSA9IDA7CisJdmlkZW8tPmJ1bGsuc2tpcF9wYXlsb2FkID0gMDsKKwl2aWRlby0+YnVsay5wYXlsb2FkX3NpemUgPSAwOworCisJaWYgKGludGYtPm51bV9hbHRzZXR0aW5nID4gMSkgeworCQkvKiBJc29jaHJvbm91cyBlbmRwb2ludCwgc2VsZWN0IHRoZSBhbHRlcm5hdGUgc2V0dGluZy4gKi8KKwkJYmFuZHdpZHRoID0gdmlkZW8tPnN0cmVhbWluZy0+Y3RybC5kd01heFBheWxvYWRUcmFuc2ZlclNpemU7CisKKwkJaWYgKGJhbmR3aWR0aCA9PSAwKSB7CisJCQl1dmNfcHJpbnRrKEtFUk5fV0FSTklORywgImRldmljZSAlcyByZXF1ZXN0ZWQgbnVsbCAiCisJCQkJImJhbmR3aWR0aCwgZGVmYXVsdGluZyB0byBsb3dlc3QuXG4iLAorCQkJCXZpZGVvLT52ZGV2LT5uYW1lKTsKKwkJCWJhbmR3aWR0aCA9IDE7CisJCX0KKworCQlmb3IgKGkgPSAwOyBpIDwgaW50Zi0+bnVtX2FsdHNldHRpbmc7ICsraSkgeworCQkJYWx0cyA9ICZpbnRmLT5hbHRzZXR0aW5nW2ldOworCQkJZXAgPSB1dmNfZmluZF9lbmRwb2ludChhbHRzLAorCQkJCXZpZGVvLT5zdHJlYW1pbmctPmhlYWRlci5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJCWlmIChlcCA9PSBOVUxMKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBDaGVjayBpZiB0aGUgYmFuZHdpZHRoIGlzIGhpZ2ggZW5vdWdoLiAqLworCQkJcHNpemUgPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy53TWF4UGFja2V0U2l6ZSk7CisJCQlwc2l6ZSA9IChwc2l6ZSAmIDB4MDdmZikgKiAoMSArICgocHNpemUgPj4gMTEpICYgMykpOworCQkJaWYgKHBzaXplID49IGJhbmR3aWR0aCkKKwkJCQlicmVhazsKKwkJfQorCisJCWlmIChpID49IGludGYtPm51bV9hbHRzZXR0aW5nKQorCQkJcmV0dXJuIC1FSU87CisKKwkJaWYgKChyZXQgPSB1c2Jfc2V0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT51ZGV2LCBpbnRmbnVtLCBpKSkgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQlyZXQgPSB1dmNfaW5pdF92aWRlb19pc29jKHZpZGVvLCBlcCk7CisJfSBlbHNlIHsKKwkJLyogQnVsayBlbmRwb2ludCwgcHJvY2VlZCB0byBVUkIgaW5pdGlhbGl6YXRpb24uICovCisJCWVwID0gdXZjX2ZpbmRfZW5kcG9pbnQoJmludGYtPmFsdHNldHRpbmdbMF0sCisJCQkJdmlkZW8tPnN0cmVhbWluZy0+aGVhZGVyLmJFbmRwb2ludEFkZHJlc3MpOworCQlpZiAoZXAgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlPOworCisJCXJldCA9IHV2Y19pbml0X3ZpZGVvX2J1bGsodmlkZW8sIGVwKTsKKwl9CisKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIFN1Ym1pdCB0aGUgVVJCcy4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgVVZDX1VSQlM7ICsraSkgeworCQlpZiAoKHJldCA9IHVzYl9zdWJtaXRfdXJiKHZpZGVvLT51cmJbaV0sIEdGUF9LRVJORUwpKSA8IDApIHsKKwkJCXV2Y19wcmludGsoS0VSTl9FUlIsICJGYWlsZWQgdG8gc3VibWl0IFVSQiAldSAiCisJCQkJCSIoJWQpLlxuIiwgaSwgcmV0KTsKKwkJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogU3VzcGVuZC9yZXN1bWUKKyAqLworCisvKgorICogU3RvcCBzdHJlYW1pbmcgd2l0aG91dCBkaXNhYmxpbmcgdGhlIHZpZGVvIHF1ZXVlLgorICoKKyAqIFRvIGxldCB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIHJlc3VtZSB3aXRob3V0IHRyb3VibGUsIHdlIG11c3Qgbm90IHRvdWNoIHRoZQorICogdmlkZW8gYnVmZmVycyBpbiBhbnkgd2F5LiBXZSBtYXJrIHRoZSBkZXZpY2UgYXMgZnJvemVuIHRvIG1ha2Ugc3VyZSB0aGUgVVJCCisgKiBjb21wbGV0aW9uIGhhbmRsZXIgd29uJ3QgdHJ5IHRvIGNhbmNlbCB0aGUgcXVldWUgd2hlbiB3ZSBraWxsIHRoZSBVUkJzLgorICovCitpbnQgdXZjX3ZpZGVvX3N1c3BlbmQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCWlmICghdXZjX3F1ZXVlX3N0cmVhbWluZygmdmlkZW8tPnF1ZXVlKSkKKwkJcmV0dXJuIDA7CisKKwl2aWRlby0+ZnJvemVuID0gMTsKKwl1dmNfdW5pbml0X3ZpZGVvKHZpZGVvKTsKKwl1c2Jfc2V0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT51ZGV2LCB2aWRlby0+c3RyZWFtaW5nLT5pbnRmbnVtLCAwKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFJlY29uZmlndXJlIHRoZSB2aWRlbyBpbnRlcmZhY2UgYW5kIHJlc3RhcnQgc3RyZWFtaW5nIGlmIGl0IHdhcyBlbmFibGUKKyAqIGJlZm9yZSBzdXNwZW5kLgorICoKKyAqIElmIGFuIGVycm9yIG9jY3VycywgZGlzYWJsZSB0aGUgdmlkZW8gcXVldWUuIFRoaXMgd2lsbCB3YWtlIGFsbCBwZW5kaW5nCisgKiBidWZmZXJzLCBtYWtpbmcgc3VyZSB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIGFyZSBub3RpZmllZCBvZiB0aGUgcHJvYmxlbQorICogaW5zdGVhZCBvZiB3YWl0aW5nIGZvcmV2ZXIuCisgKi8KK2ludCB1dmNfdmlkZW9fcmVzdW1lKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlpbnQgcmV0OworCisJdmlkZW8tPmZyb3plbiA9IDA7CisKKwlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgJnZpZGVvLT5zdHJlYW1pbmctPmN0cmwsIDApKSA8IDApIHsKKwkJdXZjX3F1ZXVlX2VuYWJsZSgmdmlkZW8tPnF1ZXVlLCAwKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAoIXV2Y19xdWV1ZV9zdHJlYW1pbmcoJnZpZGVvLT5xdWV1ZSkpCisJCXJldHVybiAwOworCisJaWYgKChyZXQgPSB1dmNfaW5pdF92aWRlbyh2aWRlbykpIDwgMCkKKwkJdXZjX3F1ZXVlX2VuYWJsZSgmdmlkZW8tPnF1ZXVlLCAwKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVmlkZW8gZGV2aWNlCisgKi8KKworLyoKKyAqIEluaXRpYWxpemUgdGhlIFVWQyB2aWRlbyBkZXZpY2UgYnkgcmV0cmlldmluZyB0aGUgZGVmYXVsdCBmb3JtYXQgYW5kCisgKiBjb21taXR0aW5nIGl0LgorICoKKyAqIFNvbWUgY2FtZXJhcyAobmFtZWx5IHRoZSBGdWppIEZpbmVwaXgpIHNldCB0aGUgZm9ybWF0IGFuZCBmcmFtZQorICogaW5kZXhlcyB0byB6ZXJvLiBUaGUgVVZDIHN0YW5kYXJkIGRvZXNuJ3QgY2xlYXJseSBtYWtlIHRoaXMgYSBzcGVjCisgKiB2aW9sYXRpb24sIHNvIHRyeSB0byBzaWxlbnRseSBmaXggdGhlIHZhbHVlcyBpZiBwb3NzaWJsZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIGRldmljZSB3aXRoIFY0TC4KKyAqLworaW50IHV2Y192aWRlb19pbml0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbykKK3sKKwlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpwcm9iZSA9ICZ2aWRlby0+c3RyZWFtaW5nLT5jdHJsOworCXN0cnVjdCB1dmNfZm9ybWF0ICpmb3JtYXQgPSBOVUxMOworCXN0cnVjdCB1dmNfZnJhbWUgKmZyYW1lID0gTlVMTDsKKwl1bnNpZ25lZCBpbnQgaTsKKwlpbnQgcmV0OworCisJaWYgKHZpZGVvLT5zdHJlYW1pbmctPm5mb3JtYXRzID09IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJObyBzdXBwb3J0ZWQgdmlkZW8gZm9ybWF0cyBmb3VuZC5cbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBBbHRlcm5hdGUgc2V0dGluZyAwIHNob3VsZCBiZSB0aGUgZGVmYXVsdCwgeWV0IHRoZSBYQm94IExpdmUgVmlzaW9uCisJICogQ2FtIChhbmQgcG9zc2libHkgb3RoZXIgZGV2aWNlcykgY3Jhc2ggb3Igb3RoZXJ3aXNlIG1pc2JlaGF2ZSBpZgorCSAqIHRoZXkgZG9uJ3QgcmVjZWl2ZSBhIFNFVF9JTlRFUkZBQ0UgcmVxdWVzdCBiZWZvcmUgYW55IG90aGVyIHZpZGVvCisJICogY29udHJvbCByZXF1ZXN0LgorCSAqLworCXVzYl9zZXRfaW50ZXJmYWNlKHZpZGVvLT5kZXYtPnVkZXYsIHZpZGVvLT5zdHJlYW1pbmctPmludGZudW0sIDApOworCisJLyogU29tZSB3ZWJjYW1zIGRvbid0IHN1cG9ydCBHRVRfREVGIHJlcXVlc3Qgb24gdGhlIHByb2JlIGNvbnRyb2wuIFdlCisJICogZmFsbCBiYWNrIHRvIEdFVF9DVVIgaWYgR0VUX0RFRiBmYWlscy4KKwkgKi8KKwlpZiAoKHJldCA9IHV2Y19nZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDEsIEdFVF9ERUYpKSA8IDAgJiYKKwkgICAgKHJldCA9IHV2Y19nZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDEsIEdFVF9DVVIpKSA8IDApCisJCXJldHVybiByZXQ7CisKKwkvKiBDaGVjayBpZiB0aGUgZGVmYXVsdCBmb3JtYXQgZGVzY3JpcHRvciBleGlzdHMuIFVzZSB0aGUgZmlyc3QKKwkgKiBhdmFpbGFibGUgZm9ybWF0IG90aGVyd2lzZS4KKwkgKi8KKwlmb3IgKGkgPSB2aWRlby0+c3RyZWFtaW5nLT5uZm9ybWF0czsgaSA+IDA7IC0taSkgeworCQlmb3JtYXQgPSAmdmlkZW8tPnN0cmVhbWluZy0+Zm9ybWF0W2ktMV07CisJCWlmIChmb3JtYXQtPmluZGV4ID09IHByb2JlLT5iRm9ybWF0SW5kZXgpCisJCQlicmVhazsKKwl9CisKKwlpZiAoZm9ybWF0LT5uZnJhbWVzID09IDApIHsKKwkJdXZjX3ByaW50ayhLRVJOX0lORk8sICJObyBmcmFtZSBkZXNjcmlwdG9yIGZvdW5kIGZvciB0aGUgIgorCQkJImRlZmF1bHQgZm9ybWF0LlxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIFplcm8gYkZyYW1lSW5kZXggbWlnaHQgYmUgY29ycmVjdC4gU3RyZWFtLWJhc2VkIGZvcm1hdHMgKGluY2x1ZGluZworCSAqIE1QRUctMiBUUyBhbmQgRFYpIGRvIG5vdCBzdXBwb3J0IGZyYW1lcyBidXQgaGF2ZSBhIGR1bW15IGZyYW1lCisJICogZGVzY3JpcHRvciB3aXRoIGJGcmFtZUluZGV4IHNldCB0byB6ZXJvLiBJZiB0aGUgZGVmYXVsdCBmcmFtZQorCSAqIGRlc2NyaXB0b3IgaXMgbm90IGZvdW5kLCB1c2UgdGhlIGZpcnN0IGF2YWxhYmxlIGZyYW1lLgorCSAqLworCWZvciAoaSA9IGZvcm1hdC0+bmZyYW1lczsgaSA+IDA7IC0taSkgeworCQlmcmFtZSA9ICZmb3JtYXQtPmZyYW1lW2ktMV07CisJCWlmIChmcmFtZS0+YkZyYW1lSW5kZXggPT0gcHJvYmUtPmJGcmFtZUluZGV4KQorCQkJYnJlYWs7CisJfQorCisJLyogQ29tbWl0IHRoZSBkZWZhdWx0IHNldHRpbmdzLiAqLworCXByb2JlLT5iRm9ybWF0SW5kZXggPSBmb3JtYXQtPmluZGV4OworCXByb2JlLT5iRnJhbWVJbmRleCA9IGZyYW1lLT5iRnJhbWVJbmRleDsKKwlpZiAoKHJldCA9IHV2Y19zZXRfdmlkZW9fY3RybCh2aWRlbywgcHJvYmUsIDApKSA8IDApCisJCXJldHVybiByZXQ7CisKKwl2aWRlby0+c3RyZWFtaW5nLT5jdXJfZm9ybWF0ID0gZm9ybWF0OworCXZpZGVvLT5zdHJlYW1pbmctPmN1cl9mcmFtZSA9IGZyYW1lOworCWF0b21pY19zZXQoJnZpZGVvLT5hY3RpdmUsIDApOworCisJLyogU2VsZWN0IHRoZSB2aWRlbyBkZWNvZGluZyBmdW5jdGlvbiAqLworCWlmICh2aWRlby0+ZGV2LT5xdWlya3MgJiBVVkNfUVVJUktfQlVJTFRJTl9JU0lHSFQpCisJCXZpZGVvLT5kZWNvZGUgPSB1dmNfdmlkZW9fZGVjb2RlX2lzaWdodDsKKwllbHNlIGlmICh2aWRlby0+c3RyZWFtaW5nLT5pbnRmLT5udW1fYWx0c2V0dGluZyA+IDEpCisJCXZpZGVvLT5kZWNvZGUgPSB1dmNfdmlkZW9fZGVjb2RlX2lzb2M7CisJZWxzZQorCQl2aWRlby0+ZGVjb2RlID0gdXZjX3ZpZGVvX2RlY29kZV9idWxrOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBFbmFibGUgb3IgZGlzYWJsZSB0aGUgdmlkZW8gc3RyZWFtLgorICovCitpbnQgdXZjX3ZpZGVvX2VuYWJsZShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIGludCBlbmFibGUpCit7CisJaW50IHJldDsKKworCWlmICghZW5hYmxlKSB7CisJCXV2Y191bmluaXRfdmlkZW8odmlkZW8pOworCQl1c2Jfc2V0X2ludGVyZmFjZSh2aWRlby0+ZGV2LT51ZGV2LAorCQkJdmlkZW8tPnN0cmVhbWluZy0+aW50Zm51bSwgMCk7CisJCXV2Y19xdWV1ZV9lbmFibGUoJnZpZGVvLT5xdWV1ZSwgMCk7CisJCXJldHVybiAwOworCX0KKworCWlmICgocmV0ID0gdXZjX3F1ZXVlX2VuYWJsZSgmdmlkZW8tPnF1ZXVlLCAxKSkgPCAwKQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIHV2Y19pbml0X3ZpZGVvKHZpZGVvKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y3ZpZGVvLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmN2aWRlby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5OTVhNzgKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmN2aWRlby5oCkBAIC0wLDAgKzEsNzk2IEBACisjaWZuZGVmIF9VU0JfVklERU9fSF8KKyNkZWZpbmUgX1VTQl9WSURFT19IXworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdmlkZW9kZXYyLmg+CisKKworLyoKKyAqIER5bmFtaWMgY29udHJvbHMKKyAqLworCisvKiBEYXRhIHR5cGVzIGZvciBVVkMgY29udHJvbCBkYXRhICovCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9SQVcJCTAKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX1NJR05FRAkxCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9VTlNJR05FRAkyCisjZGVmaW5lIFVWQ19DVFJMX0RBVEFfVFlQRV9CT09MRUFOCTMKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX0VOVU0JCTQKKyNkZWZpbmUgVVZDX0NUUkxfREFUQV9UWVBFX0JJVE1BU0sJNQorCisvKiBDb250cm9sIGZsYWdzICovCisjZGVmaW5lIFVWQ19DT05UUk9MX1NFVF9DVVIJKDEgPDwgMCkKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX0NVUgkoMSA8PCAxKQorI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfTUlOCSgxIDw8IDIpCisjZGVmaW5lIFVWQ19DT05UUk9MX0dFVF9NQVgJKDEgPDwgMykKKyNkZWZpbmUgVVZDX0NPTlRST0xfR0VUX1JFUwkoMSA8PCA0KQorI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfREVGCSgxIDw8IDUpCisvKiBDb250cm9sIHNob3VsZCBiZSBzYXZlZCBhdCBzdXNwZW5kIGFuZCByZXN0b3JlZCBhdCByZXN1bWUuICovCisjZGVmaW5lIFVWQ19DT05UUk9MX1JFU1RPUkUJKDEgPDwgNikKKy8qIENvbnRyb2wgY2FuIGJlIHVwZGF0ZWQgYnkgdGhlIGNhbWVyYS4gKi8KKyNkZWZpbmUgVVZDX0NPTlRST0xfQVVUT19VUERBVEUJKDEgPDwgNykKKworI2RlZmluZSBVVkNfQ09OVFJPTF9HRVRfUkFOR0UJKFVWQ19DT05UUk9MX0dFVF9DVVIgfCBVVkNfQ09OVFJPTF9HRVRfTUlOIHwgXAorCQkJCSBVVkNfQ09OVFJPTF9HRVRfTUFYIHwgVVZDX0NPTlRST0xfR0VUX1JFUyB8IFwKKwkJCQkgVVZDX0NPTlRST0xfR0VUX0RFRikKKworc3RydWN0IHV2Y194dV9jb250cm9sX2luZm8geworCV9fdTggZW50aXR5WzE2XTsKKwlfX3U4IGluZGV4OworCV9fdTggc2VsZWN0b3I7CisJX191MTYgc2l6ZTsKKwlfX3UzMiBmbGFnczsKK307CisKK3N0cnVjdCB1dmNfeHVfY29udHJvbF9tYXBwaW5nIHsKKwlfX3UzMiBpZDsKKwlfX3U4IG5hbWVbMzJdOworCV9fdTggZW50aXR5WzE2XTsKKwlfX3U4IHNlbGVjdG9yOworCisJX191OCBzaXplOworCV9fdTggb2Zmc2V0OworCWVudW0gdjRsMl9jdHJsX3R5cGUgdjRsMl90eXBlOworCV9fdTMyIGRhdGFfdHlwZTsKK307CisKK3N0cnVjdCB1dmNfeHVfY29udHJvbCB7CisJX191OCB1bml0OworCV9fdTggc2VsZWN0b3I7CisJX191MTYgc2l6ZTsKKwlfX3U4IF9fdXNlciAqZGF0YTsKK307CisKKyNkZWZpbmUgVVZDSU9DX0NUUkxfQURECQlfSU9XKCdVJywgMSwgc3RydWN0IHV2Y194dV9jb250cm9sX2luZm8pCisjZGVmaW5lIFVWQ0lPQ19DVFJMX01BUAkJX0lPV1IoJ1UnLCAyLCBzdHJ1Y3QgdXZjX3h1X2NvbnRyb2xfbWFwcGluZykKKyNkZWZpbmUgVVZDSU9DX0NUUkxfR0VUCQlfSU9XUignVScsIDMsIHN0cnVjdCB1dmNfeHVfY29udHJvbCkKKyNkZWZpbmUgVVZDSU9DX0NUUkxfU0VUCQlfSU9XKCdVJywgNCwgc3RydWN0IHV2Y194dV9jb250cm9sKQorCisjaWZkZWYgX19LRVJORUxfXworCisjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogVVZDIGNvbnN0YW50cworICovCisKKyNkZWZpbmUgU0NfVU5ERUZJTkVEICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIFNDX1ZJREVPQ09OVFJPTCAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBTQ19WSURFT1NUUkVBTUlORyAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgU0NfVklERU9fSU5URVJGQUNFX0NPTExFQ1RJT04gICAweDAzCisKKyNkZWZpbmUgUENfUFJPVE9DT0xfVU5ERUZJTkVEICAgICAgICAgICAweDAwCisKKyNkZWZpbmUgQ1NfVU5ERUZJTkVEICAgICAgICAgICAgICAgICAgICAweDIwCisjZGVmaW5lIENTX0RFVklDRSAgICAgICAgICAgICAgICAgICAgICAgMHgyMQorI2RlZmluZSBDU19DT05GSUdVUkFUSU9OICAgICAgICAgICAgICAgIDB4MjIKKyNkZWZpbmUgQ1NfU1RSSU5HICAgICAgICAgICAgICAgICAgICAgICAweDIzCisjZGVmaW5lIENTX0lOVEVSRkFDRSAgICAgICAgICAgICAgICAgICAgMHgyNAorI2RlZmluZSBDU19FTkRQT0lOVCAgICAgICAgICAgICAgICAgICAgIDB4MjUKKworLyogVmlkZW9Db250cm9sIGNsYXNzIHNwZWNpZmljIGludGVyZmFjZSBkZXNjcmlwdG9yICovCisjZGVmaW5lIFZDX0RFU0NSSVBUT1JfVU5ERUZJTkVEICAgICAgICAgMHgwMAorI2RlZmluZSBWQ19IRUFERVIgICAgICAgICAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgVkNfSU5QVVRfVEVSTUlOQUwgICAgICAgICAgICAgICAweDAyCisjZGVmaW5lIFZDX09VVFBVVF9URVJNSU5BTCAgICAgICAgICAgICAgMHgwMworI2RlZmluZSBWQ19TRUxFQ1RPUl9VTklUICAgICAgICAgICAgICAgIDB4MDQKKyNkZWZpbmUgVkNfUFJPQ0VTU0lOR19VTklUICAgICAgICAgICAgICAweDA1CisjZGVmaW5lIFZDX0VYVEVOU0lPTl9VTklUICAgICAgICAgICAgICAgMHgwNgorCisvKiBWaWRlb1N0cmVhbWluZyBjbGFzcyBzcGVjaWZpYyBpbnRlcmZhY2UgZGVzY3JpcHRvciAqLworI2RlZmluZSBWU19VTkRFRklORUQgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgVlNfSU5QVVRfSEVBREVSICAgICAgICAgICAgICAgICAweDAxCisjZGVmaW5lIFZTX09VVFBVVF9IRUFERVIgICAgICAgICAgICAgICAgMHgwMgorI2RlZmluZSBWU19TVElMTF9JTUFHRV9GUkFNRSAgICAgICAgICAgIDB4MDMKKyNkZWZpbmUgVlNfRk9STUFUX1VOQ09NUFJFU1NFRCAgICAgICAgICAweDA0CisjZGVmaW5lIFZTX0ZSQU1FX1VOQ09NUFJFU1NFRCAgICAgICAgICAgMHgwNQorI2RlZmluZSBWU19GT1JNQVRfTUpQRUcgICAgICAgICAgICAgICAgIDB4MDYKKyNkZWZpbmUgVlNfRlJBTUVfTUpQRUcgICAgICAgICAgICAgICAgICAweDA3CisjZGVmaW5lIFZTX0ZPUk1BVF9NUEVHMlRTICAgICAgICAgICAgICAgMHgwYQorI2RlZmluZSBWU19GT1JNQVRfRFYgICAgICAgICAgICAgICAgICAgIDB4MGMKKyNkZWZpbmUgVlNfQ09MT1JGT1JNQVQgICAgICAgICAgICAgICAgICAweDBkCisjZGVmaW5lIFZTX0ZPUk1BVF9GUkFNRV9CQVNFRCAgICAgICAgICAgMHgxMAorI2RlZmluZSBWU19GUkFNRV9GUkFNRV9CQVNFRCAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgVlNfRk9STUFUX1NUUkVBTV9CQVNFRCAgICAgICAgICAweDEyCisKKy8qIEVuZHBvaW50IHR5cGUgKi8KKyNkZWZpbmUgRVBfVU5ERUZJTkVEICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIEVQX0dFTkVSQUwgICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBFUF9FTkRQT0lOVCAgICAgICAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgRVBfSU5URVJSVVBUICAgICAgICAgICAgICAgICAgICAweDAzCisKKy8qIFJlcXVlc3QgY29kZXMgKi8KKyNkZWZpbmUgUkNfVU5ERUZJTkVEICAgICAgICAgICAgICAgICAgICAweDAwCisjZGVmaW5lIFNFVF9DVVIgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBHRVRfQ1VSICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKKyNkZWZpbmUgR0VUX01JTiAgICAgICAgICAgICAgICAgICAgICAgICAweDgyCisjZGVmaW5lIEdFVF9NQVggICAgICAgICAgICAgICAgICAgICAgICAgMHg4MworI2RlZmluZSBHRVRfUkVTICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODQKKyNkZWZpbmUgR0VUX0xFTiAgICAgICAgICAgICAgICAgICAgICAgICAweDg1CisjZGVmaW5lIEdFVF9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgMHg4NgorI2RlZmluZSBHRVRfREVGICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODcKKworLyogVmlkZW9Db250cm9sIGludGVyZmFjZSBjb250cm9scyAqLworI2RlZmluZSBWQ19DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgVkNfVklERU9fUE9XRVJfTU9ERV9DT05UUk9MICAgICAweDAxCisjZGVmaW5lIFZDX1JFUVVFU1RfRVJST1JfQ09ERV9DT05UUk9MICAgMHgwMgorCisvKiBUZXJtaW5hbCBjb250cm9scyAqLworI2RlZmluZSBURV9DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIDB4MDAKKworLyogU2VsZWN0b3IgVW5pdCBjb250cm9scyAqLworI2RlZmluZSBTVV9DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgU1VfSU5QVVRfU0VMRUNUX0NPTlRST0wgICAgICAgICAweDAxCisKKy8qIENhbWVyYSBUZXJtaW5hbCBjb250cm9scyAqLworI2RlZmluZSBDVF9DT05UUk9MX1VOREVGSU5FRCAgICAgICAgICAgIAkJMHgwMAorI2RlZmluZSBDVF9TQ0FOTklOR19NT0RFX0NPTlRST0wgICAgICAgIAkJMHgwMQorI2RlZmluZSBDVF9BRV9NT0RFX0NPTlRST0wgICAgICAgICAgICAgIAkJMHgwMgorI2RlZmluZSBDVF9BRV9QUklPUklUWV9DT05UUk9MICAgICAgICAgIAkJMHgwMworI2RlZmluZSBDVF9FWFBPU1VSRV9USU1FX0FCU09MVVRFX0NPTlRST0wgICAgICAgICAgICAgICAweDA0CisjZGVmaW5lIENUX0VYUE9TVVJFX1RJTUVfUkVMQVRJVkVfQ09OVFJPTCAgICAgICAgICAgICAgIDB4MDUKKyNkZWZpbmUgQ1RfRk9DVVNfQUJTT0xVVEVfQ09OVFJPTCAgICAgICAJCTB4MDYKKyNkZWZpbmUgQ1RfRk9DVVNfUkVMQVRJVkVfQ09OVFJPTCAgICAgICAJCTB4MDcKKyNkZWZpbmUgQ1RfRk9DVVNfQVVUT19DT05UUk9MICAgICAgICAgICAJCTB4MDgKKyNkZWZpbmUgQ1RfSVJJU19BQlNPTFVURV9DT05UUk9MICAgICAgICAJCTB4MDkKKyNkZWZpbmUgQ1RfSVJJU19SRUxBVElWRV9DT05UUk9MICAgICAgICAJCTB4MGEKKyNkZWZpbmUgQ1RfWk9PTV9BQlNPTFVURV9DT05UUk9MICAgICAgICAJCTB4MGIKKyNkZWZpbmUgQ1RfWk9PTV9SRUxBVElWRV9DT05UUk9MICAgICAgICAJCTB4MGMKKyNkZWZpbmUgQ1RfUEFOVElMVF9BQlNPTFVURV9DT05UUk9MICAgICAJCTB4MGQKKyNkZWZpbmUgQ1RfUEFOVElMVF9SRUxBVElWRV9DT05UUk9MICAgICAJCTB4MGUKKyNkZWZpbmUgQ1RfUk9MTF9BQlNPTFVURV9DT05UUk9MICAgICAgICAJCTB4MGYKKyNkZWZpbmUgQ1RfUk9MTF9SRUxBVElWRV9DT05UUk9MICAgICAgICAJCTB4MTAKKyNkZWZpbmUgQ1RfUFJJVkFDWV9DT05UUk9MICAgICAgICAgICAgICAJCTB4MTEKKworLyogUHJvY2Vzc2luZyBVbml0IGNvbnRyb2xzICovCisjZGVmaW5lIFBVX0NPTlRST0xfVU5ERUZJTkVEICAgICAgICAgICAgCQkweDAwCisjZGVmaW5lIFBVX0JBQ0tMSUdIVF9DT01QRU5TQVRJT05fQ09OVFJPTCAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgUFVfQlJJR0hUTkVTU19DT05UUk9MICAgICAgICAgICAJCTB4MDIKKyNkZWZpbmUgUFVfQ09OVFJBU1RfQ09OVFJPTCAgICAgICAgICAgICAJCTB4MDMKKyNkZWZpbmUgUFVfR0FJTl9DT05UUk9MICAgICAgICAgICAgICAgICAJCTB4MDQKKyNkZWZpbmUgUFVfUE9XRVJfTElORV9GUkVRVUVOQ1lfQ09OVFJPTCAJCTB4MDUKKyNkZWZpbmUgUFVfSFVFX0NPTlRST0wgICAgICAgICAgICAgICAgICAJCTB4MDYKKyNkZWZpbmUgUFVfU0FUVVJBVElPTl9DT05UUk9MICAgICAgICAgICAJCTB4MDcKKyNkZWZpbmUgUFVfU0hBUlBORVNTX0NPTlRST0wgICAgICAgICAgICAJCTB4MDgKKyNkZWZpbmUgUFVfR0FNTUFfQ09OVFJPTCAgICAgICAgICAgICAgICAJCTB4MDkKKyNkZWZpbmUgUFVfV0hJVEVfQkFMQU5DRV9URU1QRVJBVFVSRV9DT05UUk9MICAgICAgICAgICAgMHgwYQorI2RlZmluZSBQVV9XSElURV9CQUxBTkNFX1RFTVBFUkFUVVJFX0FVVE9fQ09OVFJPTCAgICAgICAweDBiCisjZGVmaW5lIFBVX1dISVRFX0JBTEFOQ0VfQ09NUE9ORU5UX0NPTlRST0wgICAgICAgICAgICAgIDB4MGMKKyNkZWZpbmUgUFVfV0hJVEVfQkFMQU5DRV9DT01QT05FTlRfQVVUT19DT05UUk9MICAgICAgICAgMHgwZAorI2RlZmluZSBQVV9ESUdJVEFMX01VTFRJUExJRVJfQ09OVFJPTCAgIAkJMHgwZQorI2RlZmluZSBQVV9ESUdJVEFMX01VTFRJUExJRVJfTElNSVRfQ09OVFJPTCAgICAgICAgICAgICAweDBmCisjZGVmaW5lIFBVX0hVRV9BVVRPX0NPTlRST0wgICAgICAgICAgICAgCQkweDEwCisjZGVmaW5lIFBVX0FOQUxPR19WSURFT19TVEFOREFSRF9DT05UUk9MICAgICAgICAgICAgICAgIDB4MTEKKyNkZWZpbmUgUFVfQU5BTE9HX0xPQ0tfU1RBVFVTX0NPTlRST0wgICAJCTB4MTIKKworI2RlZmluZSBMWFVfTU9UT1JfUEFOVElMVF9SRUxBVElWRV9DT05UUk9MCQkweDAxCisjZGVmaW5lIExYVV9NT1RPUl9QQU5USUxUX1JFU0VUX0NPTlRST0wJCQkweDAyCisjZGVmaW5lIExYVV9NT1RPUl9GT0NVU19NT1RPUl9DT05UUk9MCQkJMHgwMworCisvKiBWaWRlb1N0cmVhbWluZyBpbnRlcmZhY2UgY29udHJvbHMgKi8KKyNkZWZpbmUgVlNfQ09OVFJPTF9VTkRFRklORUQgICAgICAgICAgICAweDAwCisjZGVmaW5lIFZTX1BST0JFX0NPTlRST0wgICAgICAgICAgICAgICAgMHgwMQorI2RlZmluZSBWU19DT01NSVRfQ09OVFJPTCAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgVlNfU1RJTExfUFJPQkVfQ09OVFJPTCAgICAgICAgICAweDAzCisjZGVmaW5lIFZTX1NUSUxMX0NPTU1JVF9DT05UUk9MICAgICAgICAgMHgwNAorI2RlZmluZSBWU19TVElMTF9JTUFHRV9UUklHR0VSX0NPTlRST0wgIDB4MDUKKyNkZWZpbmUgVlNfU1RSRUFNX0VSUk9SX0NPREVfQ09OVFJPTCAgICAweDA2CisjZGVmaW5lIFZTX0dFTkVSQVRFX0tFWV9GUkFNRV9DT05UUk9MICAgMHgwNworI2RlZmluZSBWU19VUERBVEVfRlJBTUVfU0VHTUVOVF9DT05UUk9MIDB4MDgKKyNkZWZpbmUgVlNfU1lOQ19ERUxBWV9DT05UUk9MICAgICAgICAgICAweDA5CisKKyNkZWZpbmUgVFRfVkVORE9SX1NQRUNJRklDICAgICAgICAgICAgICAweDAxMDAKKyNkZWZpbmUgVFRfU1RSRUFNSU5HICAgICAgICAgICAgICAgICAgICAweDAxMDEKKworLyogSW5wdXQgVGVybWluYWwgdHlwZXMgKi8KKyNkZWZpbmUgSVRUX1ZFTkRPUl9TUEVDSUZJQyAgICAgICAgICAgICAweDAyMDAKKyNkZWZpbmUgSVRUX0NBTUVSQSAgICAgICAgICAgICAgICAgICAgICAweDAyMDEKKyNkZWZpbmUgSVRUX01FRElBX1RSQU5TUE9SVF9JTlBVVCAgICAgICAweDAyMDIKKworLyogT3V0cHV0IFRlcm1pbmFsIHR5cGVzICovCisjZGVmaW5lIE9UVF9WRU5ET1JfU1BFQ0lGSUMgICAgICAgICAgICAgMHgwMzAwCisjZGVmaW5lIE9UVF9ESVNQTEFZICAgICAgICAgICAgICAgICAgICAgMHgwMzAxCisjZGVmaW5lIE9UVF9NRURJQV9UUkFOU1BPUlRfT1VUUFVUICAgICAgMHgwMzAyCisKKy8qIEV4dGVybmFsIFRlcm1pbmFsIHR5cGVzICovCisjZGVmaW5lIEVYVEVSTkFMX1ZFTkRPUl9TUEVDSUZJQyAgICAgICAgMHgwNDAwCisjZGVmaW5lIENPTVBPU0lURV9DT05ORUNUT1IgICAgICAgICAgICAgMHgwNDAxCisjZGVmaW5lIFNWSURFT19DT05ORUNUT1IgICAgICAgICAgICAgICAgMHgwNDAyCisjZGVmaW5lIENPTVBPTkVOVF9DT05ORUNUT1IgICAgICAgICAgICAgMHgwNDAzCisKKyNkZWZpbmUgVVZDX1RFUk1fSU5QVVQJCQkweDAwMDAKKyNkZWZpbmUgVVZDX1RFUk1fT1VUUFVUCQkJMHg4MDAwCisKKyNkZWZpbmUgVVZDX0VOVElUWV9UWVBFKGVudGl0eSkJCSgoZW50aXR5KS0+dHlwZSAmIDB4N2ZmZikKKyNkZWZpbmUgVVZDX0VOVElUWV9JU19VTklUKGVudGl0eSkJKCgoZW50aXR5KS0+dHlwZSAmIDB4ZmYwMCkgPT0gMCkKKyNkZWZpbmUgVVZDX0VOVElUWV9JU19URVJNKGVudGl0eSkJKCgoZW50aXR5KS0+dHlwZSAmIDB4ZmYwMCkgIT0gMCkKKyNkZWZpbmUgVVZDX0VOVElUWV9JU19JVEVSTShlbnRpdHkpIFwKKwkoKChlbnRpdHkpLT50eXBlICYgMHg4MDAwKSA9PSBVVkNfVEVSTV9JTlBVVCkKKyNkZWZpbmUgVVZDX0VOVElUWV9JU19PVEVSTShlbnRpdHkpIFwKKwkoKChlbnRpdHkpLT50eXBlICYgMHg4MDAwKSA9PSBVVkNfVEVSTV9PVVRQVVQpCisKKyNkZWZpbmUgVVZDX1NUQVRVU19UWVBFX0NPTlRST0wJCTEKKyNkZWZpbmUgVVZDX1NUQVRVU19UWVBFX1NUUkVBTUlORwkyCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogR1VJRHMKKyAqLworI2RlZmluZSBVVkNfR1VJRF9VVkNfQ0FNRVJBIFwKKwl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgXAorCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxfQorI2RlZmluZSBVVkNfR1VJRF9VVkNfT1VUUFVUIFwKKwl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgXAorCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyfQorI2RlZmluZSBVVkNfR1VJRF9VVkNfTUVESUFfVFJBTlNQT1JUX0lOUFVUIFwKKwl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgXAorCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzfQorI2RlZmluZSBVVkNfR1VJRF9VVkNfUFJPQ0VTU0lORyBcCisJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIFwKKwkgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMX0KKyNkZWZpbmUgVVZDX0dVSURfVVZDX1NFTEVDVE9SIFwKKwl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgXAorCSAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAxLCAweDAyfQorCisjZGVmaW5lIFVWQ19HVUlEX0xPR0lURUNIX0RFVl9JTkZPIFwKKwl7MHg4MiwgMHgwNiwgMHg2MSwgMHg2MywgMHg3MCwgMHg1MCwgMHhhYiwgMHg0OSwgXAorCSAweGI4LCAweGNjLCAweGIzLCAweDg1LCAweDVlLCAweDhkLCAweDIyLCAweDFlfQorI2RlZmluZSBVVkNfR1VJRF9MT0dJVEVDSF9VU0VSX0hXIFwKKwl7MHg4MiwgMHgwNiwgMHg2MSwgMHg2MywgMHg3MCwgMHg1MCwgMHhhYiwgMHg0OSwgXAorCSAweGI4LCAweGNjLCAweGIzLCAweDg1LCAweDVlLCAweDhkLCAweDIyLCAweDFmfQorI2RlZmluZSBVVkNfR1VJRF9MT0dJVEVDSF9WSURFTyBcCisJezB4ODIsIDB4MDYsIDB4NjEsIDB4NjMsIDB4NzAsIDB4NTAsIDB4YWIsIDB4NDksIFwKKwkgMHhiOCwgMHhjYywgMHhiMywgMHg4NSwgMHg1ZSwgMHg4ZCwgMHgyMiwgMHg1MH0KKyNkZWZpbmUgVVZDX0dVSURfTE9HSVRFQ0hfTU9UT1IgXAorCXsweDgyLCAweDA2LCAweDYxLCAweDYzLCAweDcwLCAweDUwLCAweGFiLCAweDQ5LCBcCisJIDB4YjgsIDB4Y2MsIDB4YjMsIDB4ODUsIDB4NWUsIDB4OGQsIDB4MjIsIDB4NTZ9CisKKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX01KUEVHIFwKKwl7ICdNJywgICdKJywgICdQJywgICdHJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfWVVZMiBcCisJeyAnWScsICAnVScsICAnWScsICAnMicsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX05WMTIgXAorCXsgJ04nLCAgJ1YnLCAgJzEnLCAgJzInLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9ZVjEyIFwKKwl7ICdZJywgICdWJywgICcxJywgICcyJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfSTQyMCBcCisJeyAnSScsICAnNCcsICAnMicsICAnMCcsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MDAsIFwKKwkgMHg4MCwgMHgwMCwgMHgwMCwgMHhhYSwgMHgwMCwgMHgzOCwgMHg5YiwgMHg3MX0KKyNkZWZpbmUgVVZDX0dVSURfRk9STUFUX1VZVlkgXAorCXsgJ1UnLCAgJ1knLCAgJ1YnLCAgJ1knLCAweDAwLCAweDAwLCAweDEwLCAweDAwLCBcCisJIDB4ODAsIDB4MDAsIDB4MDAsIDB4YWEsIDB4MDAsIDB4MzgsIDB4OWIsIDB4NzF9CisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVF9ZODAwIFwKKwl7ICdZJywgICc4JywgICcwJywgICcwJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorI2RlZmluZSBVVkNfR1VJRF9GT1JNQVRfQlk4IFwKKwl7ICdCJywgICdZJywgICc4JywgICcgJywgMHgwMCwgMHgwMCwgMHgxMCwgMHgwMCwgXAorCSAweDgwLCAweDAwLCAweDAwLCAweGFhLCAweDAwLCAweDM4LCAweDliLCAweDcxfQorCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogRHJpdmVyIHNwZWNpZmljIGNvbnN0YW50cy4KKyAqLworCisjZGVmaW5lIERSSVZFUl9WRVJTSU9OX05VTUJFUglLRVJORUxfVkVSU0lPTigwLCAxLCAwKQorCisvKiBOdW1iZXIgb2YgaXNvY2hyb25vdXMgVVJCcy4gKi8KKyNkZWZpbmUgVVZDX1VSQlMJCTUKKy8qIE1heGltdW0gbnVtYmVyIG9mIHBhY2tldHMgcGVyIGlzb2Nocm9ub3VzIFVSQi4gKi8KKyNkZWZpbmUgVVZDX01BWF9JU09fUEFDS0VUUwk0MAorLyogTWF4aW11bSBmcmFtZSBzaXplIGluIGJ5dGVzLCBmb3Igc2FuaXR5IGNoZWNraW5nLiAqLworI2RlZmluZSBVVkNfTUFYX0ZSQU1FX1NJWkUJKDE2KjEwMjQqMTAyNCkKKy8qIE1heGltdW0gbnVtYmVyIG9mIHZpZGVvIGJ1ZmZlcnMuICovCisjZGVmaW5lIFVWQ19NQVhfVklERU9fQlVGRkVSUwkzMgorCisjZGVmaW5lIFVWQ19DVFJMX0NPTlRST0xfVElNRU9VVAkzMDAKKyNkZWZpbmUgVVZDX0NUUkxfU1RSRUFNSU5HX1RJTUVPVVQJMTAwMAorCisvKiBEZXZpY2VzIHF1aXJrcyAqLworI2RlZmluZSBVVkNfUVVJUktfU1RBVFVTX0lOVEVSVkFMCTB4MDAwMDAwMDEKKyNkZWZpbmUgVVZDX1FVSVJLX1BST0JFX01JTk1BWAkJMHgwMDAwMDAwMgorI2RlZmluZSBVVkNfUVVJUktfUFJPQkVfRVhUUkFGSUVMRFMJMHgwMDAwMDAwNAorI2RlZmluZSBVVkNfUVVJUktfQlVJTFRJTl9JU0lHSFQJMHgwMDAwMDAwOAorI2RlZmluZSBVVkNfUVVJUktfU1RSRUFNX05PX0ZJRAkJMHgwMDAwMDAxMAorI2RlZmluZSBVVkNfUVVJUktfSUdOT1JFX1NFTEVDVE9SX1VOSVQJMHgwMDAwMDAyMAorCisvKiBGb3JtYXQgZmxhZ3MgKi8KKyNkZWZpbmUgVVZDX0ZNVF9GTEFHX0NPTVBSRVNTRUQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgVVZDX0ZNVF9GTEFHX1NUUkVBTQkJMHgwMDAwMDAwMgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFN0cnVjdHVyZXMuCisgKi8KKworc3RydWN0IHV2Y19kZXZpY2U7CisKKy8qIFRPRE86IFB1dCB0aGUgbW9zdCBmcmVxdWVudGx5IGFjY2Vzc2VkIGZpZWxkcyBhdCB0aGUgYmVnaW5uaW5nIG9mCisgKiBzdHJ1Y3R1cmVzIHRvIG1heGltaXplIGNhY2hlIGVmZmljaWVuY3kuCisgKi8KK3N0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgeworCV9fdTE2IGJtSGludDsKKwlfX3U4ICBiRm9ybWF0SW5kZXg7CisJX191OCAgYkZyYW1lSW5kZXg7CisJX191MzIgZHdGcmFtZUludGVydmFsOworCV9fdTE2IHdLZXlGcmFtZVJhdGU7CisJX191MTYgd1BGcmFtZVJhdGU7CisJX191MTYgd0NvbXBRdWFsaXR5OworCV9fdTE2IHdDb21wV2luZG93U2l6ZTsKKwlfX3UxNiB3RGVsYXk7CisJX191MzIgZHdNYXhWaWRlb0ZyYW1lU2l6ZTsKKwlfX3UzMiBkd01heFBheWxvYWRUcmFuc2ZlclNpemU7CisJX191MzIgZHdDbG9ja0ZyZXF1ZW5jeTsKKwlfX3U4ICBibUZyYW1pbmdJbmZvOworCV9fdTggIGJQcmVmZXJlZFZlcnNpb247CisJX191OCAgYk1pblZlcnNpb247CisJX191OCAgYk1heFZlcnNpb247Cit9OworCitzdHJ1Y3QgdXZjX21lbnVfaW5mbyB7CisJX191MzIgdmFsdWU7CisJX191OCBuYW1lWzMyXTsKK307CisKK3N0cnVjdCB1dmNfY29udHJvbF9pbmZvIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJc3RydWN0IGxpc3RfaGVhZCBtYXBwaW5nczsKKworCV9fdTggZW50aXR5WzE2XTsKKwlfX3U4IGluZGV4OworCV9fdTggc2VsZWN0b3I7CisKKwlfX3UxNiBzaXplOworCV9fdTMyIGZsYWdzOworfTsKKworc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKworCXN0cnVjdCB1dmNfY29udHJvbF9pbmZvICpjdHJsOworCisJX191MzIgaWQ7CisJX191OCBuYW1lWzMyXTsKKwlfX3U4IGVudGl0eVsxNl07CisJX191OCBzZWxlY3RvcjsKKworCV9fdTggc2l6ZTsKKwlfX3U4IG9mZnNldDsKKwllbnVtIHY0bDJfY3RybF90eXBlIHY0bDJfdHlwZTsKKwlfX3UzMiBkYXRhX3R5cGU7CisKKwlzdHJ1Y3QgdXZjX21lbnVfaW5mbyAqbWVudV9pbmZvOworCV9fdTMyIG1lbnVfY291bnQ7Cit9OworCitzdHJ1Y3QgdXZjX2NvbnRyb2wgeworCXN0cnVjdCB1dmNfZW50aXR5ICplbnRpdHk7CisJc3RydWN0IHV2Y19jb250cm9sX2luZm8gKmluZm87CisKKwlfX3U4IGluZGV4OwkvKiBVc2VkIHRvIG1hdGNoIHRoZSB1dmNfY29udHJvbCBlbnRyeSB3aXRoIGEKKwkJCSAgIHV2Y19jb250cm9sX2luZm8uICovCisJX191OCBkaXJ0eSA6IDEsCisJICAgICBsb2FkZWQgOiAxLAorCSAgICAgbW9kaWZpZWQgOiAxOworCisJX191OCAqZGF0YTsKK307CisKK3N0cnVjdCB1dmNfZm9ybWF0X2Rlc2MgeworCWNoYXIgKm5hbWU7CisJX191OCBndWlkWzE2XTsKKwlfX3UzMiBmY2M7Cit9OworCisvKiBUaGUgdGVybSAnZW50aXR5JyByZWZlcnMgdG8gYm90aCBVVkMgdW5pdHMgYW5kIFVWQyB0ZXJtaW5hbHMuCisgKgorICogVGhlIHR5cGUgZmllbGQgaXMgZWl0aGVyIHRoZSB0ZXJtaW5hbCB0eXBlICh3VGVybWluYWxUeXBlIGluIHRoZSB0ZXJtaW5hbAorICogZGVzY3JpcHRvciksIG9yIHRoZSB1bml0IHR5cGUgKGJEZXNjcmlwdG9yU3VidHlwZSBpbiB0aGUgdW5pdCBkZXNjcmlwdG9yKS4KKyAqIEFzIHRoZSBiRGVzY3JpcHRvclN1YnR5cGUgZmllbGQgaXMgb25lIGJ5dGUgbG9uZywgdGhlIHR5cGUgdmFsdWUgd2lsbAorICogYWx3YXlzIGhhdmUgYSBudWxsIE1TQiBmb3IgdW5pdHMuIEFsbCB0ZXJtaW5hbCB0eXBlcyBkZWZpbmVkIGJ5IHRoZSBVVkMKKyAqIHNwZWNpZmljYXRpb24gaGF2ZSBhIG5vbi1udWxsIE1TQiwgc28gaXQgaXMgc2FmZSB0byB1c2UgdGhlIE1TQiB0bworICogZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHVuaXRzIGFuZCB0ZXJtaW5hbHMgYXMgbG9uZyBhcyB0aGUgZGVzY3JpcHRvciBwYXJzaW5nCisgKiBjb2RlIG1ha2VzIHN1cmUgdGVybWluYWwgdHlwZXMgaGF2ZSBhIG5vbi1udWxsIE1TQi4KKyAqCisgKiBGb3IgdGVybWluYWxzLCB0aGUgdHlwZSdzIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHN0b3JlcyB0aGUgdGVybWluYWwKKyAqIGRpcmVjdGlvbiAoZWl0aGVyIFVWQ19URVJNX0lOUFVUIG9yIFVWQ19URVJNX09VVFBVVCkuIFRoZSB0eXBlIGZpZWxkIHNob3VsZAorICogYWx3YXlzIGJlIGFjY2Vzc2VkIHdpdGggdGhlIFVWQ19FTlRJVFlfKiBtYWNyb3MgYW5kIG5ldmVyIGRpcmVjdGx5LgorICovCisKK3N0cnVjdCB1dmNfZW50aXR5IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CQkvKiBFbnRpdHkgYXMgcGFydCBvZiBhIFVWQyBkZXZpY2UuICovCisJc3RydWN0IGxpc3RfaGVhZCBjaGFpbjsJCS8qIEVudGl0eSBhcyBwYXJ0IG9mIGEgdmlkZW8gZGV2aWNlCisJCQkJCSAqIGNoYWluLiAqLworCV9fdTggaWQ7CisJX191MTYgdHlwZTsKKwljaGFyIG5hbWVbNjRdOworCisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJX191MTYgd09iamVjdGl2ZUZvY2FsTGVuZ3RoTWluOworCQkJX191MTYgd09iamVjdGl2ZUZvY2FsTGVuZ3RoTWF4OworCQkJX191MTYgd09jdWxhckZvY2FsTGVuZ3RoOworCQkJX191OCAgYkNvbnRyb2xTaXplOworCQkJX191OCAgKmJtQ29udHJvbHM7CisJCX0gY2FtZXJhOworCisJCXN0cnVjdCB7CisJCQlfX3U4ICBiQ29udHJvbFNpemU7CisJCQlfX3U4ICAqYm1Db250cm9sczsKKwkJCV9fdTggIGJUcmFuc3BvcnRNb2RlU2l6ZTsKKwkJCV9fdTggICpibVRyYW5zcG9ydE1vZGVzOworCQl9IG1lZGlhOworCisJCXN0cnVjdCB7CisJCQlfX3U4ICBiU291cmNlSUQ7CisJCX0gb3V0cHV0OworCisJCXN0cnVjdCB7CisJCQlfX3U4ICBiU291cmNlSUQ7CisJCQlfX3UxNiB3TWF4TXVsdGlwbGllcjsKKwkJCV9fdTggIGJDb250cm9sU2l6ZTsKKwkJCV9fdTggICpibUNvbnRyb2xzOworCQkJX191OCAgYm1WaWRlb1N0YW5kYXJkczsKKwkJfSBwcm9jZXNzaW5nOworCisJCXN0cnVjdCB7CisJCQlfX3U4ICBiTnJJblBpbnM7CisJCQlfX3U4ICAqYmFTb3VyY2VJRDsKKwkJfSBzZWxlY3RvcjsKKworCQlzdHJ1Y3QgeworCQkJX191OCAgZ3VpZEV4dGVuc2lvbkNvZGVbMTZdOworCQkJX191OCAgYk51bUNvbnRyb2xzOworCQkJX191OCAgYk5ySW5QaW5zOworCQkJX191OCAgKmJhU291cmNlSUQ7CisJCQlfX3U4ICBiQ29udHJvbFNpemU7CisJCQlfX3U4ICAqYm1Db250cm9sczsKKwkJCV9fdTggICpibUNvbnRyb2xzVHlwZTsKKwkJfSBleHRlbnNpb247CisJfTsKKworCXVuc2lnbmVkIGludCBuY29udHJvbHM7CisJc3RydWN0IHV2Y19jb250cm9sICpjb250cm9sczsKK307CisKK3N0cnVjdCB1dmNfZnJhbWUgeworCV9fdTggIGJGcmFtZUluZGV4OworCV9fdTggIGJtQ2FwYWJpbGl0aWVzOworCV9fdTE2IHdXaWR0aDsKKwlfX3UxNiB3SGVpZ2h0OworCV9fdTMyIGR3TWluQml0UmF0ZTsKKwlfX3UzMiBkd01heEJpdFJhdGU7CisJX191MzIgZHdNYXhWaWRlb0ZyYW1lQnVmZmVyU2l6ZTsKKwlfX3U4ICBiRnJhbWVJbnRlcnZhbFR5cGU7CisJX191MzIgZHdEZWZhdWx0RnJhbWVJbnRlcnZhbDsKKwlfX3UzMiAqZHdGcmFtZUludGVydmFsOworfTsKKworc3RydWN0IHV2Y19mb3JtYXQgeworCV9fdTggdHlwZTsKKwlfX3U4IGluZGV4OworCV9fdTggYnBwOworCV9fdTggY29sb3JzcGFjZTsKKwlfX3UzMiBmY2M7CisJX191MzIgZmxhZ3M7CisKKwljaGFyIG5hbWVbMzJdOworCisJdW5zaWduZWQgaW50IG5mcmFtZXM7CisJc3RydWN0IHV2Y19mcmFtZSAqZnJhbWU7Cit9OworCitzdHJ1Y3QgdXZjX3N0cmVhbWluZ19oZWFkZXIgeworCV9fdTggYk51bUZvcm1hdHM7CisJX191OCBiRW5kcG9pbnRBZGRyZXNzOworCV9fdTggYlRlcm1pbmFsTGluazsKKwlfX3U4IGJDb250cm9sU2l6ZTsKKwlfX3U4ICpibWFDb250cm9sczsKKwkvKiBUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgdXNlZCBieSBpbnB1dCBoZWFkZXJzIG9ubHkuICovCisJX191OCBibUluZm87CisJX191OCBiU3RpbGxDYXB0dXJlTWV0aG9kOworCV9fdTggYlRyaWdnZXJTdXBwb3J0OworCV9fdTggYlRyaWdnZXJVc2FnZTsKK307CisKK3N0cnVjdCB1dmNfc3RyZWFtaW5nIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisKKwlzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZjsKKwlpbnQgaW50Zm51bTsKKwlfX3UxNiBtYXhwc2l6ZTsKKworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2hlYWRlciBoZWFkZXI7CisKKwl1bnNpZ25lZCBpbnQgbmZvcm1hdHM7CisJc3RydWN0IHV2Y19mb3JtYXQgKmZvcm1hdDsKKworCXN0cnVjdCB1dmNfc3RyZWFtaW5nX2NvbnRyb2wgY3RybDsKKwlzdHJ1Y3QgdXZjX2Zvcm1hdCAqY3VyX2Zvcm1hdDsKKwlzdHJ1Y3QgdXZjX2ZyYW1lICpjdXJfZnJhbWU7CisKKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7Cit9OworCitlbnVtIHV2Y19idWZmZXJfc3RhdGUgeworCVVWQ19CVUZfU1RBVEVfSURMRSAgICAgICA9IDAsCisJVVZDX0JVRl9TVEFURV9RVUVVRUQgICAgID0gMSwKKwlVVkNfQlVGX1NUQVRFX0FDVElWRSAgICAgPSAyLAorCVVWQ19CVUZfU1RBVEVfRE9ORSAgICAgICA9IDMsCisJVVZDX0JVRl9TVEFURV9FUlJPUiAgICAgID0gNCwKK307CisKK3N0cnVjdCB1dmNfYnVmZmVyIHsKKwl1bnNpZ25lZCBsb25nIHZtYV91c2VfY291bnQ7CisJc3RydWN0IGxpc3RfaGVhZCBzdHJlYW07CisKKwkvKiBUb3VjaGVkIGJ5IGludGVycnVwdCBoYW5kbGVyLiAqLworCXN0cnVjdCB2NGwyX2J1ZmZlciBidWY7CisJc3RydWN0IGxpc3RfaGVhZCBxdWV1ZTsKKwl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OworCWVudW0gdXZjX2J1ZmZlcl9zdGF0ZSBzdGF0ZTsKK307CisKKyNkZWZpbmUgVVZDX1FVRVVFX1NUUkVBTUlORwkJKDEgPDwgMCkKKyNkZWZpbmUgVVZDX1FVRVVFX0RJU0NPTk5FQ1RFRAkJKDEgPDwgMSkKKyNkZWZpbmUgVVZDX1FVRVVFX0RST1BfSU5DT01QTEVURQkoMSA8PCAyKQorCitzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlIHsKKwl2b2lkICptZW07CisJdW5zaWduZWQgaW50IGZsYWdzOworCV9fdTMyIHNlcXVlbmNlOworCisJdW5zaWduZWQgaW50IGNvdW50OworCXVuc2lnbmVkIGludCBidWZfc2l6ZTsKKwlzdHJ1Y3QgdXZjX2J1ZmZlciBidWZmZXJbVVZDX01BWF9WSURFT19CVUZGRVJTXTsKKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CS8qIHByb3RlY3RzIGJ1ZmZlcnMgYW5kIG1haW5xdWV1ZSAqLworCXNwaW5sb2NrX3QgaXJxbG9jazsJLyogcHJvdGVjdHMgaXJxcXVldWUgKi8KKworCXN0cnVjdCBsaXN0X2hlYWQgbWFpbnF1ZXVlOworCXN0cnVjdCBsaXN0X2hlYWQgaXJxcXVldWU7Cit9OworCitzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSB7CisJc3RydWN0IHV2Y19kZXZpY2UgKmRldjsKKwlzdHJ1Y3QgdmlkZW9fZGV2aWNlICp2ZGV2OworCWF0b21pY190IGFjdGl2ZTsKKwl1bnNpZ25lZCBpbnQgZnJvemVuIDogMTsKKworCXN0cnVjdCBsaXN0X2hlYWQgaXRlcm1zOworCXN0cnVjdCB1dmNfZW50aXR5ICpvdGVybTsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqcHJvY2Vzc2luZzsKKwlzdHJ1Y3QgdXZjX2VudGl0eSAqc2VsZWN0b3I7CisJc3RydWN0IGxpc3RfaGVhZCBleHRlbnNpb25zOworCXN0cnVjdCBtdXRleCBjdHJsX211dGV4OworCisJc3RydWN0IHV2Y192aWRlb19xdWV1ZSBxdWV1ZTsKKworCS8qIFZpZGVvIHN0cmVhbWluZyBvYmplY3QsIG11c3QgYWx3YXlzIGJlIG5vbi1OVUxMLiAqLworCXN0cnVjdCB1dmNfc3RyZWFtaW5nICpzdHJlYW1pbmc7CisKKwl2b2lkICgqZGVjb2RlKSAoc3RydWN0IHVyYiAqdXJiLCBzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sCisJCQlzdHJ1Y3QgdXZjX2J1ZmZlciAqYnVmKTsKKworCS8qIENvbnRleHQgZGF0YSB1c2VkIGJ5IHRoZSBidWxrIGNvbXBsZXRpb24gaGFuZGxlci4gKi8KKwlzdHJ1Y3QgeworCQlfX3U4IGhlYWRlclsyNTZdOworCQl1bnNpZ25lZCBpbnQgaGVhZGVyX3NpemU7CisJCWludCBza2lwX3BheWxvYWQ7CisJCV9fdTMyIHBheWxvYWRfc2l6ZTsKKwkJX191MzIgbWF4X3BheWxvYWRfc2l6ZTsKKwl9IGJ1bGs7CisKKwlzdHJ1Y3QgdXJiICp1cmJbVVZDX1VSQlNdOworCWNoYXIgKnVyYl9idWZmZXJbVVZDX1VSQlNdOworCisJX191OCBsYXN0X2ZpZDsKK307CisKK2VudW0gdXZjX2RldmljZV9zdGF0ZSB7CisJVVZDX0RFVl9ESVNDT05ORUNURUQgPSAxLAorfTsKKworc3RydWN0IHV2Y19kZXZpY2UgeworCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2OworCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmOworCV9fdTMyIHF1aXJrczsKKwlpbnQgaW50Zm51bTsKKwljaGFyIG5hbWVbMzJdOworCisJZW51bSB1dmNfZGV2aWNlX3N0YXRlIHN0YXRlOworCXN0cnVjdCBrcmVmIGtyZWY7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCisJLyogVmlkZW8gY29udHJvbCBpbnRlcmZhY2UgKi8KKwlfX3UxNiB1dmNfdmVyc2lvbjsKKwlfX3UzMiBjbG9ja19mcmVxdWVuY3k7CisKKwlzdHJ1Y3QgbGlzdF9oZWFkIGVudGl0aWVzOworCisJc3RydWN0IHV2Y192aWRlb19kZXZpY2UgdmlkZW87CisKKwkvKiBTdGF0dXMgSW50ZXJydXB0IEVuZHBvaW50ICovCisJc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICppbnRfZXA7CisJc3RydWN0IHVyYiAqaW50X3VyYjsKKwlfX3U4IHN0YXR1c1sxNl07CisJc3RydWN0IGlucHV0X2RldiAqaW5wdXQ7CisKKwkvKiBWaWRlbyBTdHJlYW1pbmcgaW50ZXJmYWNlcyAqLworCXN0cnVjdCBsaXN0X2hlYWQgc3RyZWFtaW5nOworfTsKKworZW51bSB1dmNfaGFuZGxlX3N0YXRlIHsKKwlVVkNfSEFORExFX1BBU1NJVkUJPSAwLAorCVVWQ19IQU5ETEVfQUNUSVZFCT0gMSwKK307CisKK3N0cnVjdCB1dmNfZmggeworCXN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICpkZXZpY2U7CisJZW51bSB1dmNfaGFuZGxlX3N0YXRlIHN0YXRlOworfTsKKworc3RydWN0IHV2Y19kcml2ZXIgeworCXN0cnVjdCB1c2JfZHJpdmVyIGRyaXZlcjsKKworCXN0cnVjdCBtdXRleCBvcGVuX211dGV4OwkvKiBwcm90ZWN0cyBmcm9tIG9wZW4vZGlzY29ubmVjdCByYWNlICovCisKKwlzdHJ1Y3QgbGlzdF9oZWFkIGRldmljZXM7CS8qIHN0cnVjdCB1dmNfZGV2aWNlIGxpc3QgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGNvbnRyb2xzOwkvKiBzdHJ1Y3QgdXZjX2NvbnRyb2xfaW5mbyBsaXN0ICovCisJc3RydWN0IG11dGV4IGN0cmxfbXV0ZXg7CS8qIHByb3RlY3RzIGNvbnRyb2xzIGFuZCBkZXZpY2VzCisJCQkJCSAgIGxpc3RzICovCit9OworCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIERlYnVnZ2luZywgcHJpbnRpbmcgYW5kIGxvZ2dpbmcKKyAqLworCisjZGVmaW5lIFVWQ19UUkFDRV9QUk9CRQkJKDEgPDwgMCkKKyNkZWZpbmUgVVZDX1RSQUNFX0RFU0NSCQkoMSA8PCAxKQorI2RlZmluZSBVVkNfVFJBQ0VfQ09OVFJPTAkoMSA8PCAyKQorI2RlZmluZSBVVkNfVFJBQ0VfRk9STUFUCSgxIDw8IDMpCisjZGVmaW5lIFVWQ19UUkFDRV9DQVBUVVJFCSgxIDw8IDQpCisjZGVmaW5lIFVWQ19UUkFDRV9DQUxMUwkJKDEgPDwgNSkKKyNkZWZpbmUgVVZDX1RSQUNFX0lPQ1RMCQkoMSA8PCA2KQorI2RlZmluZSBVVkNfVFJBQ0VfRlJBTUUJCSgxIDw8IDcpCisjZGVmaW5lIFVWQ19UUkFDRV9TVVNQRU5ECSgxIDw8IDgpCisjZGVmaW5lIFVWQ19UUkFDRV9TVEFUVVMJKDEgPDwgOSkKKworZXh0ZXJuIHVuc2lnbmVkIGludCB1dmNfdHJhY2VfcGFyYW07CisKKyNkZWZpbmUgdXZjX3RyYWNlKGZsYWcsIG1zZy4uLikgXAorCWRvIHsgXAorCQlpZiAodXZjX3RyYWNlX3BhcmFtICYgZmxhZykgXAorCQkJcHJpbnRrKEtFUk5fREVCVUcgInV2Y3ZpZGVvOiAiIG1zZyk7IFwKKwl9IHdoaWxlICgwKQorCisjZGVmaW5lIHV2Y19wcmludGsobGV2ZWwsIG1zZy4uLikgXAorCXByaW50ayhsZXZlbCAidXZjdmlkZW86ICIgbXNnKQorCisjZGVmaW5lIFVWQ19HVUlEX0ZPUk1BVCAiJTAyeCUwMnglMDJ4JTAyeC0lMDJ4JTAyeC0lMDJ4JTAyeC0lMDJ4JTAyeC0iIFwKKwkJCSIlMDJ4JTAyeCUwMnglMDJ4JTAyeCUwMngiCisjZGVmaW5lIFVWQ19HVUlEX0FSR1MoZ3VpZCkgXAorCShndWlkKVszXSwgIChndWlkKVsyXSwgIChndWlkKVsxXSwgIChndWlkKVswXSwgXAorCShndWlkKVs1XSwgIChndWlkKVs0XSwgXAorCShndWlkKVs3XSwgIChndWlkKVs2XSwgXAorCShndWlkKVs4XSwgIChndWlkKVs5XSwgXAorCShndWlkKVsxMF0sIChndWlkKVsxMV0sIChndWlkKVsxMl0sIFwKKwkoZ3VpZClbMTNdLCAoZ3VpZClbMTRdLCAoZ3VpZClbMTVdCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBJbnRlcm5hbCBmdW5jdGlvbnMuCisgKi8KKworLyogQ29yZSBkcml2ZXIgKi8KK2V4dGVybiBzdHJ1Y3QgdXZjX2RyaXZlciB1dmNfZHJpdmVyOworZXh0ZXJuIHZvaWQgdXZjX2RlbGV0ZShzdHJ1Y3Qga3JlZiAqa3JlZik7CisKKy8qIFZpZGVvIGJ1ZmZlcnMgcXVldWUgbWFuYWdlbWVudC4gKi8KK2V4dGVybiB2b2lkIHV2Y19xdWV1ZV9pbml0KHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlKTsKK2V4dGVybiBpbnQgdXZjX2FsbG9jX2J1ZmZlcnMoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUsCisJCXVuc2lnbmVkIGludCBuYnVmZmVycywgdW5zaWduZWQgaW50IGJ1Zmxlbmd0aCk7CitleHRlcm4gaW50IHV2Y19mcmVlX2J1ZmZlcnMoc3RydWN0IHV2Y192aWRlb19xdWV1ZSAqcXVldWUpOworZXh0ZXJuIGludCB1dmNfcXVlcnlfYnVmZmVyKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgdjRsMl9idWZmZXIgKnY0bDJfYnVmKTsKK2V4dGVybiBpbnQgdXZjX3F1ZXVlX2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1Zik7CitleHRlcm4gaW50IHV2Y19kZXF1ZXVlX2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHY0bDJfYnVmZmVyICp2NGwyX2J1ZiwgaW50IG5vbmJsb2NraW5nKTsKK2V4dGVybiBpbnQgdXZjX3F1ZXVlX2VuYWJsZShzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwgaW50IGVuYWJsZSk7CitleHRlcm4gdm9pZCB1dmNfcXVldWVfY2FuY2VsKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLCBpbnQgZGlzY29ubmVjdCk7CitleHRlcm4gc3RydWN0IHV2Y19idWZmZXIgKnV2Y19xdWV1ZV9uZXh0X2J1ZmZlcihzdHJ1Y3QgdXZjX3ZpZGVvX3F1ZXVlICpxdWV1ZSwKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1Zik7CitleHRlcm4gdW5zaWduZWQgaW50IHV2Y19xdWV1ZV9wb2xsKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlLAorCQlzdHJ1Y3QgZmlsZSAqZmlsZSwgcG9sbF90YWJsZSAqd2FpdCk7CitzdGF0aWMgaW5saW5lIGludCB1dmNfcXVldWVfc3RyZWFtaW5nKHN0cnVjdCB1dmNfdmlkZW9fcXVldWUgKnF1ZXVlKQoreworCXJldHVybiBxdWV1ZS0+ZmxhZ3MgJiBVVkNfUVVFVUVfU1RSRUFNSU5HOworfQorCisvKiBWNEwyIGludGVyZmFjZSAqLworZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdXZjX2ZvcHM7CisKKy8qIFZpZGVvICovCitleHRlcm4gaW50IHV2Y192aWRlb19pbml0KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyk7CitleHRlcm4gaW50IHV2Y192aWRlb19zdXNwZW5kKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbyk7CitleHRlcm4gaW50IHV2Y192aWRlb19yZXN1bWUoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKTsKK2V4dGVybiBpbnQgdXZjX3ZpZGVvX2VuYWJsZShzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIGludCBlbmFibGUpOworZXh0ZXJuIGludCB1dmNfcHJvYmVfdmlkZW8oc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdXZjX3N0cmVhbWluZ19jb250cm9sICpwcm9iZSk7CitleHRlcm4gaW50IHV2Y19xdWVyeV9jdHJsKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYsIF9fdTggcXVlcnksIF9fdTggdW5pdCwKKwkJX191OCBpbnRmbnVtLCBfX3U4IGNzLCB2b2lkICpkYXRhLCBfX3UxNiBzaXplKTsKK2V4dGVybiBpbnQgdXZjX3NldF92aWRlb19jdHJsKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19zdHJlYW1pbmdfY29udHJvbCAqY3RybCwgaW50IHByb2JlKTsKKworLyogU3RhdHVzICovCitleHRlcm4gaW50IHV2Y19zdGF0dXNfaW5pdChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIHV2Y19zdGF0dXNfY2xlYW51cChzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgdXZjX3N0YXR1c19zdXNwZW5kKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCB1dmNfc3RhdHVzX3Jlc3VtZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKKworLyogQ29udHJvbHMgKi8KK2V4dGVybiBzdHJ1Y3QgdXZjX2NvbnRyb2wgKnV2Y19maW5kX2NvbnRyb2woc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlfX3UzMiB2NGwyX2lkLCBzdHJ1Y3QgdXZjX2NvbnRyb2xfbWFwcGluZyAqKm1hcHBpbmcpOworZXh0ZXJuIGludCB1dmNfcXVlcnlfdjRsMl9jdHJsKHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHY0bDJfcXVlcnljdHJsICp2NGwyX2N0cmwpOworCitleHRlcm4gaW50IHV2Y19jdHJsX2FkZF9pbmZvKHN0cnVjdCB1dmNfY29udHJvbF9pbmZvICppbmZvKTsKK2V4dGVybiBpbnQgdXZjX2N0cmxfYWRkX21hcHBpbmcoc3RydWN0IHV2Y19jb250cm9sX21hcHBpbmcgKm1hcHBpbmcpOworZXh0ZXJuIGludCB1dmNfY3RybF9pbml0X2RldmljZShzdHJ1Y3QgdXZjX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIHV2Y19jdHJsX2NsZWFudXBfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCB1dmNfY3RybF9yZXN1bWVfZGV2aWNlKHN0cnVjdCB1dmNfZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgdXZjX2N0cmxfaW5pdCh2b2lkKTsKKworZXh0ZXJuIGludCB1dmNfY3RybF9iZWdpbihzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pOworZXh0ZXJuIGludCBfX3V2Y19jdHJsX2NvbW1pdChzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8sIGludCByb2xsYmFjayk7CitzdGF0aWMgaW5saW5lIGludCB1dmNfY3RybF9jb21taXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvKQoreworCXJldHVybiBfX3V2Y19jdHJsX2NvbW1pdCh2aWRlbywgMCk7Cit9CitzdGF0aWMgaW5saW5lIGludCB1dmNfY3RybF9yb2xsYmFjayhzdHJ1Y3QgdXZjX3ZpZGVvX2RldmljZSAqdmlkZW8pCit7CisJcmV0dXJuIF9fdXZjX2N0cmxfY29tbWl0KHZpZGVvLCAxKTsKK30KKworZXh0ZXJuIGludCB1dmNfY3RybF9nZXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqeGN0cmwpOworZXh0ZXJuIGludCB1dmNfY3RybF9zZXQoc3RydWN0IHV2Y192aWRlb19kZXZpY2UgKnZpZGVvLAorCQlzdHJ1Y3QgdjRsMl9leHRfY29udHJvbCAqeGN0cmwpOworCitleHRlcm4gaW50IHV2Y194dV9jdHJsX3F1ZXJ5KHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y194dV9jb250cm9sICpjdHJsLCBpbnQgc2V0KTsKKworLyogVXRpbGl0eSBmdW5jdGlvbnMgKi8KK2V4dGVybiB2b2lkIHV2Y19zaW1wbGlmeV9mcmFjdGlvbih1aW50MzJfdCAqbnVtZXJhdG9yLCB1aW50MzJfdCAqZGVub21pbmF0b3IsCisJCXVuc2lnbmVkIGludCBuX3Rlcm1zLCB1bnNpZ25lZCBpbnQgdGhyZXNob2xkKTsKK2V4dGVybiB1aW50MzJfdCB1dmNfZnJhY3Rpb25fdG9faW50ZXJ2YWwodWludDMyX3QgbnVtZXJhdG9yLAorCQl1aW50MzJfdCBkZW5vbWluYXRvcik7CitleHRlcm4gc3RydWN0IHVzYl9ob3N0X2VuZHBvaW50ICp1dmNfZmluZF9lbmRwb2ludCgKKwkJc3RydWN0IHVzYl9ob3N0X2ludGVyZmFjZSAqYWx0cywgX191OCBlcGFkZHIpOworCisvKiBRdWlya3Mgc3VwcG9ydCAqLwordm9pZCB1dmNfdmlkZW9fZGVjb2RlX2lzaWdodChzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCB1dmNfdmlkZW9fZGV2aWNlICp2aWRlbywKKwkJc3RydWN0IHV2Y19idWZmZXIgKmJ1Zik7CisKKyNlbmRpZiAvKiBfX0tFUk5FTF9fICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby92aWRlb2Rldi5jIGIvZHJpdmVycy9tZWRpYS92aWRlby92aWRlb2Rldi5jCmluZGV4IDMxZThhZjAuLjc2NDk4NjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdmlkZW9kZXYuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpZGVvZGV2LmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva21vZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogCkBAIC01MSwxMiArNTIsNTEgQEAKICNkZWZpbmUgVklERU9fTlVNX0RFVklDRVMJMjU2CiAjZGVmaW5lIFZJREVPX05BTUUgICAgICAgICAgICAgICJ2aWRlbzRsaW51eCIKIAorc3RydWN0IHN0ZF9kZXNjciB7CisJdjRsMl9zdGRfaWQgc3RkOworCWNvbnN0IGNoYXIgKmRlc2NyOworfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzdGRfZGVzY3Igc3RhbmRhcmRzW10gPSB7CisJeyBWNEwyX1NURF9OVFNDLCAJIk5UU0MiICAgICAgfSwKKwl7IFY0TDJfU1REX05UU0NfTSwgCSJOVFNDLU0iICAgIH0sCisJeyBWNEwyX1NURF9OVFNDX01fSlAsIAkiTlRTQy1NLUpQIiB9LAorCXsgVjRMMl9TVERfTlRTQ19NX0tSLAkiTlRTQy1NLUtSIiB9LAorCXsgVjRMMl9TVERfTlRTQ180NDMsIAkiTlRTQy00NDMiICB9LAorCXsgVjRMMl9TVERfUEFMLCAJIlBBTCIgICAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9CRywgCSJQQUwtQkciICAgIH0sCisJeyBWNEwyX1NURF9QQUxfQiwgCSJQQUwtQiIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfQjEsIAkiUEFMLUIxIiAgICB9LAorCXsgVjRMMl9TVERfUEFMX0csIAkiUEFMLUciICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0gsIAkiUEFMLUgiICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0ksIAkiUEFMLUkiICAgICB9LAorCXsgVjRMMl9TVERfUEFMX0RLLCAJIlBBTC1ESyIgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9ELCAJIlBBTC1EIiAgICAgfSwKKwl7IFY0TDJfU1REX1BBTF9EMSwgCSJQQUwtRDEiICAgIH0sCisJeyBWNEwyX1NURF9QQUxfSywgCSJQQUwtSyIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfTSwgCSJQQUwtTSIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfTiwgCSJQQUwtTiIgICAgIH0sCisJeyBWNEwyX1NURF9QQUxfTmMsIAkiUEFMLU5jIiAgICB9LAorCXsgVjRMMl9TVERfUEFMXzYwLCAJIlBBTC02MCIgICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNLCAJIlNFQ0FNIiAgICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0IsIAkiU0VDQU0tQiIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fRywgCSJTRUNBTS1HIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9ILCAJIlNFQ0FNLUgiICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0RLLCAJIlNFQ0FNLURLIiAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0QsIAkiU0VDQU0tRCIgICB9LAorCXsgVjRMMl9TVERfU0VDQU1fSywgCSJTRUNBTS1LIiAgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9LMSwgCSJTRUNBTS1LMSIgIH0sCisJeyBWNEwyX1NURF9TRUNBTV9MLCAJIlNFQ0FNLUwiICAgfSwKKwl7IFY0TDJfU1REX1NFQ0FNX0xDLCAJIlNFQ0FNLUxjIiAgfSwKKwl7IDAsIAkJCSJVbmtub3duIiAgIH0KK307CisKIC8qIHZpZGVvNGxpbnV4IHN0YW5kYXJkIElEIGNvbnZlcnNpb24gdG8gc3RhbmRhcmQgbmFtZQogICovCi1jaGFyICp2NGwyX25vcm1fdG9fbmFtZSh2NGwyX3N0ZF9pZCBpZCkKK2NvbnN0IGNoYXIgKnY0bDJfbm9ybV90b19uYW1lKHY0bDJfc3RkX2lkIGlkKQogewotCWNoYXIgKm5hbWU7CiAJdTMyIG15aWQgPSBpZDsKKwlpbnQgaTsKIAogCS8qIEhBQ0s6IHBwYzMyIGFyY2hpdGVjdHVyZSBkb2Vzbid0IGhhdmUgX191Y21wZGkyIGZ1bmN0aW9uIHRvIGhhbmRsZQogCSAgIDY0IGJpdCBjb21wYXJhdGlvbnMuIFNvLCBvbiB0aGF0IGFyY2hpdGVjdHVyZSwgd2l0aCBzb21lIGdjYwpAQCAtNjQsMTEwICsxMDQsMTcgQEAKIAkgKi8KIAlCVUdfT04obXlpZCAhPSBpZCk7CiAKLQlzd2l0Y2ggKG15aWQpIHsKLQljYXNlIFY0TDJfU1REX1BBTDoKLQkJbmFtZSA9ICJQQUwiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9CRzoKLQkJbmFtZSA9ICJQQUwtQkciOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9ESzoKLQkJbmFtZSA9ICJQQUwtREsiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9COgotCQluYW1lID0gIlBBTC1CIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfQjE6Ci0JCW5hbWUgPSAiUEFMLUIxIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfRzoKLQkJbmFtZSA9ICJQQUwtRyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0g6Ci0JCW5hbWUgPSAiUEFMLUgiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9JOgotCQluYW1lID0gIlBBTC1JIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfRDoKLQkJbmFtZSA9ICJQQUwtRCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0QxOgotCQluYW1lID0gIlBBTC1EMSI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX0s6Ci0JCW5hbWUgPSAiUEFMLUsiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1BBTF9NOgotCQluYW1lID0gIlBBTC1NIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9QQUxfTjoKLQkJbmFtZSA9ICJQQUwtTiI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMX05jOgotCQluYW1lID0gIlBBTC1OYyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfUEFMXzYwOgotCQluYW1lID0gIlBBTC02MCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfTlRTQzoKLQkJbmFtZSA9ICJOVFNDIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9OVFNDX006Ci0JCW5hbWUgPSAiTlRTQy1NIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9OVFNDX01fSlA6Ci0JCW5hbWUgPSAiTlRTQy1NLUpQIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9OVFNDXzQ0MzoKLQkJbmFtZSA9ICJOVFNDLTQ0MyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfTlRTQ19NX0tSOgotCQluYW1lID0gIk5UU0MtTS1LUiI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU06Ci0JCW5hbWUgPSAiU0VDQU0iOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0RLOgotCQluYW1lID0gIlNFQ0FNLURLIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9COgotCQluYW1lID0gIlNFQ0FNLUIiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0Q6Ci0JCW5hbWUgPSAiU0VDQU0tRCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fRzoKLQkJbmFtZSA9ICJTRUNBTS1HIjsKLQkJYnJlYWs7Ci0JY2FzZSBWNEwyX1NURF9TRUNBTV9IOgotCQluYW1lID0gIlNFQ0FNLUgiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0s6Ci0JCW5hbWUgPSAiU0VDQU0tSyI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fSzE6Ci0JCW5hbWUgPSAiU0VDQU0tSzEiOwotCQlicmVhazsKLQljYXNlIFY0TDJfU1REX1NFQ0FNX0w6Ci0JCW5hbWUgPSAiU0VDQU0tTCI7Ci0JCWJyZWFrOwotCWNhc2UgVjRMMl9TVERfU0VDQU1fTEM6Ci0JCW5hbWUgPSAiU0VDQU0tTEMiOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQluYW1lID0gIlVua25vd24iOwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gbmFtZTsKKwlmb3IgKGkgPSAwOyBzdGFuZGFyZHNbaV0uc3RkOyBpKyspCisJCWlmIChteWlkID09IHN0YW5kYXJkc1tpXS5zdGQpCisJCQlicmVhazsKKwlyZXR1cm4gc3RhbmRhcmRzW2ldLmRlc2NyOwogfQogRVhQT1JUX1NZTUJPTCh2NGwyX25vcm1fdG9fbmFtZSk7CiAKIC8qIEZpbGwgaW4gdGhlIGZpZWxkcyBvZiBhIHY0bDJfc3RhbmRhcmQgc3RydWN0dXJlIGFjY29yZGluZyB0byB0aGUKICAgICdpZCcgYW5kICd0cmFuc21pc3Npb24nIHBhcmFtZXRlcnMuICBSZXR1cm5zIG5lZ2F0aXZlIG9uIGVycm9yLiAgKi8KIGludCB2NGwyX3ZpZGVvX3N0ZF9jb25zdHJ1Y3Qoc3RydWN0IHY0bDJfc3RhbmRhcmQgKnZzLAotCQkJICAgICBpbnQgaWQsIGNoYXIgKm5hbWUpCisJCQkgICAgIGludCBpZCwgY29uc3QgY2hhciAqbmFtZSkKIHsKIAl1MzIgaW5kZXggPSB2cy0+aW5kZXg7CiAKQEAgLTQ5Niw2ICs0NDMsNyBAQAogCiAJaWYobWlub3I+PVZJREVPX05VTV9ERVZJQ0VTKQogCQlyZXR1cm4gLUVOT0RFVjsKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJnZpZGVvZGV2X2xvY2spOwogCXZmbD12aWRlb19kZXZpY2VbbWlub3JdOwogCWlmKHZmbD09TlVMTCkgewpAQCAtNTA1LDYgKzQ1Myw3IEBACiAJCXZmbD12aWRlb19kZXZpY2VbbWlub3JdOwogCQlpZiAodmZsPT1OVUxMKSB7CiAJCQltdXRleF91bmxvY2soJnZpZGVvZGV2X2xvY2spOworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIC1FTk9ERVY7CiAJCX0KIAl9CkBAIC01MTgsNiArNDY3LDcgQEAKIAl9CiAJZm9wc19wdXQob2xkX2ZvcHMpOwogCW11dGV4X3VubG9jaygmdmlkZW9kZXZfbG9jayk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTEyMTgsOTUgKzExNjgsNDAgQEAKIAljYXNlIFZJRElPQ19FTlVNU1REOgogCXsKIAkJc3RydWN0IHY0bDJfc3RhbmRhcmQgKnAgPSBhcmc7Ci0JCXY0bDJfc3RkX2lkIGlkID0gdmZkLT50dm5vcm1zLGN1cnJfaWQ9MDsKLQkJdW5zaWduZWQgaW50IGluZGV4ID0gcC0+aW5kZXgsaTsKKwkJdjRsMl9zdGRfaWQgaWQgPSB2ZmQtPnR2bm9ybXMsIGN1cnJfaWQgPSAwOworCQl1bnNpZ25lZCBpbnQgaW5kZXggPSBwLT5pbmRleCwgaSwgaiA9IDA7CisJCWNvbnN0IGNoYXIgKmRlc2NyID0gIiI7CiAKLQkJaWYgKGluZGV4PDApIHsKLQkJCXJldD0tRUlOVkFMOwotCQkJYnJlYWs7Ci0JCX0KLQotCQkvKiBSZXR1cm4gbm9ybSBhcnJheSBvbiBhIGNhbm9uaWNhbCB3YXkgKi8KLQkJZm9yIChpPTA7aTw9IGluZGV4ICYmIGlkOyBpKyspIHsKLQkJCWlmICggKGlkICYgVjRMMl9TVERfUEFMKSA9PSBWNEwyX1NURF9QQUwpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0JHKSA9PSBWNEwyX1NURF9QQUxfQkcpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0JHOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0RLKSA9PSBWNEwyX1NURF9QQUxfREspIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0RLOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0IpID09IFY0TDJfU1REX1BBTF9CKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9COwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0IxKSA9PSBWNEwyX1NURF9QQUxfQjEpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0IxOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0cpID09IFY0TDJfU1REX1BBTF9HKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9HOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0gpID09IFY0TDJfU1REX1BBTF9IKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9IOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0kpID09IFY0TDJfU1REX1BBTF9JKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9JOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0QpID09IFY0TDJfU1REX1BBTF9EKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9EOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0QxKSA9PSBWNEwyX1NURF9QQUxfRDEpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX0QxOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX0spID09IFY0TDJfU1REX1BBTF9LKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9LOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX00pID09IFY0TDJfU1REX1BBTF9NKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9NOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX04pID09IFY0TDJfU1REX1BBTF9OKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1BBTF9OOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMX05jKSA9PSBWNEwyX1NURF9QQUxfTmMpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMX05jOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfUEFMXzYwKSA9PSBWNEwyX1NURF9QQUxfNjApIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfUEFMXzYwOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfTlRTQykgPT0gVjRMMl9TVERfTlRTQykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9OVFNDOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfTlRTQ19NKSA9PSBWNEwyX1NURF9OVFNDX00pIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfTlRTQ19NOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfTlRTQ19NX0pQKSA9PSBWNEwyX1NURF9OVFNDX01fSlApIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfTlRTQ19NX0pQOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfTlRTQ180NDMpID09IFY0TDJfU1REX05UU0NfNDQzKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX05UU0NfNDQzOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfTlRTQ19NX0tSKSA9PSBWNEwyX1NURF9OVFNDX01fS1IpIHsKLQkJCQljdXJyX2lkID0gVjRMMl9TVERfTlRTQ19NX0tSOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU0pID09IFY0TDJfU1REX1NFQ0FNKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fREspID09IFY0TDJfU1REX1NFQ0FNX0RLKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0RLOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fQikgPT0gVjRMMl9TVERfU0VDQU1fQikgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9COwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fRCkgPT0gVjRMMl9TVERfU0VDQU1fRCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9EOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fRykgPT0gVjRMMl9TVERfU0VDQU1fRykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9HOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fSCkgPT0gVjRMMl9TVERfU0VDQU1fSCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9IOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fSykgPT0gVjRMMl9TVERfU0VDQU1fSykgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9LOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fSzEpID09IFY0TDJfU1REX1NFQ0FNX0sxKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0sxOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fTCkgPT0gVjRMMl9TVERfU0VDQU1fTCkgewotCQkJCWN1cnJfaWQgPSBWNEwyX1NURF9TRUNBTV9MOwotCQkJfSBlbHNlIGlmICggKGlkICYgVjRMMl9TVERfU0VDQU1fTEMpID09IFY0TDJfU1REX1NFQ0FNX0xDKSB7Ci0JCQkJY3Vycl9pZCA9IFY0TDJfU1REX1NFQ0FNX0xDOwotCQkJfSBlbHNlIHsKKwkJLyogUmV0dXJuIG5vcm0gYXJyYXkgaW4gYSBjYW5vbmljYWwgd2F5ICovCisJCWZvciAoaSA9IDA7IGkgPD0gaW5kZXggJiYgaWQ7IGkrKykgeworCQkJLyogbGFzdCBzdGQgdmFsdWUgaW4gdGhlIHN0YW5kYXJkcyBhcnJheSBpcyAwLCBzbyB0aGlzCisJCQkgICB3aGlsZSBhbHdheXMgZW5kcyB0aGVyZSBzaW5jZSAoaWQgJiAwKSA9PSAwLiAqLworCQkJd2hpbGUgKChpZCAmIHN0YW5kYXJkc1tqXS5zdGQpICE9IHN0YW5kYXJkc1tqXS5zdGQpCisJCQkJaisrOworCQkJY3Vycl9pZCA9IHN0YW5kYXJkc1tqXS5zdGQ7CisJCQlkZXNjciA9IHN0YW5kYXJkc1tqXS5kZXNjcjsKKwkJCWorKzsKKwkJCWlmIChjdXJyX2lkID09IDApCiAJCQkJYnJlYWs7Ci0JCQl9Ci0JCQlpZCAmPSB+Y3Vycl9pZDsKKwkJCWlmIChjdXJyX2lkICE9IFY0TDJfU1REX1BBTCAmJgorCQkJICAgIGN1cnJfaWQgIT0gVjRMMl9TVERfU0VDQU0gJiYKKwkJCSAgICBjdXJyX2lkICE9IFY0TDJfU1REX05UU0MpCisJCQkJaWQgJj0gfmN1cnJfaWQ7CiAJCX0KLQkJaWYgKGk8PWluZGV4KQorCQlpZiAoaSA8PSBpbmRleCkKIAkJCXJldHVybiAtRUlOVkFMOwogCi0JCXY0bDJfdmlkZW9fc3RkX2NvbnN0cnVjdChwLCBjdXJyX2lkLHY0bDJfbm9ybV90b19uYW1lKGN1cnJfaWQpKTsKKwkJdjRsMl92aWRlb19zdGRfY29uc3RydWN0KHAsIGN1cnJfaWQsIGRlc2NyKTsKIAkJcC0+aW5kZXggPSBpbmRleDsKIAotCQlkYmdhcmcgKGNtZCwgImluZGV4PSVkLCBpZD0lTGQsIG5hbWU9JXMsIGZwcz0lZC8lZCwgIgorCQlkYmdhcmcoY21kLCAiaW5kZXg9JWQsIGlkPSVMZCwgbmFtZT0lcywgZnBzPSVkLyVkLCAiCiAJCQkJImZyYW1lbGluZXM9JWRcbiIsIHAtPmluZGV4LAogCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcC0+aWQsIHAtPm5hbWUsCiAJCQkJcC0+ZnJhbWVwZXJpb2QubnVtZXJhdG9yLAogCQkJCXAtPmZyYW1lcGVyaW9kLmRlbm9taW5hdG9yLAogCQkJCXAtPmZyYW1lbGluZXMpOwogCi0JCXJldD0wOworCQlyZXQgPSAwOwogCQlicmVhazsKIAl9CiAJY2FzZSBWSURJT0NfR19TVEQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3ZpdmkuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdml2aS5jCmluZGV4IDg0NWJlMTguLjVmZjlhNTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdml2aS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdml2aS5jCkBAIC0zMjcsMTMgKzMyNywxNCBAQAogCWludCBobWF4ICA9IGJ1Zi0+dmIuaGVpZ2h0OwogCWludCB3bWF4ICA9IGJ1Zi0+dmIud2lkdGg7CiAJc3RydWN0IHRpbWV2YWwgdHM7Ci0JY2hhciAqdG1wYnVmID0ga21hbGxvYyh3bWF4ICogMiwgR0ZQX0FUT01JQyk7CisJY2hhciAqdG1wYnVmOwogCXZvaWQgKnZidWYgPSB2aWRlb2J1Zl90b192bWFsbG9jKCZidWYtPnZiKTsKIAotCWlmICghdG1wYnVmKQorCWlmICghdmJ1ZikKIAkJcmV0dXJuOwogCi0JaWYgKCF2YnVmKQorCXRtcGJ1ZiA9IGttYWxsb2Mod21heCAqIDIsIEdGUF9BVE9NSUMpOworCWlmICghdG1wYnVmKQogCQlyZXR1cm47CiAKIAlmb3IgKGggPSAwOyBoIDwgaG1heDsgaCsrKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3pvcmFuLmggYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3pvcmFuLmgKaW5kZXggODFjYzNiMC4uNDZiN2FkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby96b3Jhbi5oCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vem9yYW4uaApAQCAtMjg1LDcgKzI4NSw3IEBACiAKIHN0cnVjdCB6b3Jhbl9qcGdfYnVmZmVyIHsKIAlzdHJ1Y3Qgem9yYW5fbWFwcGluZyAqbWFwOwotCXUzMiAqZnJhZ190YWI7CQkvKiBhZGRyZXNzZXMgb2YgZnJhZyB0YWJsZSAqLworCV9fbGUzMiAqZnJhZ190YWI7CQkvKiBhZGRyZXNzZXMgb2YgZnJhZyB0YWJsZSAqLwogCXUzMiBmcmFnX3RhYl9idXM7CS8qIHNhbWUgdmFsdWUgY2FjaGVkIHRvIHNhdmUgdGltZSBpbiBJU1IgKi8KIAllbnVtIHpvcmFuX2J1ZmZlcl9zdGF0ZSBzdGF0ZTsJLyogbm9uLXplcm8gaWYgY29ycmVzcG9uZGluZyBidWZmZXIgaXMgaW4gdXNlIGluIGdyYWIgcXVldWUgKi8KIAlzdHJ1Y3Qgem9yYW5fc3luYyBiczsJLyogRE9ORTogaW5mbyB0byByZXR1cm4gdG8gYXBwbGljYXRpb24gKi8KQEAgLTQ1MCw3ICs0NTAsNyBAQAogCXVuc2lnbmVkIGxvbmcganBnX3F1ZXVlZF9udW07CS8qIGNvdW50IG9mIGZyYW1lcyBxdWV1ZWQgc2luY2UgZ3JhYi9wbGF5IHN0YXJ0ZWQgKi8KIAogCS8qIHpyMzYwNTcncyBjb2RlIGJ1ZmZlciB0YWJsZSAqLwotCXUzMiAqc3RhdF9jb207CQkvKiBzdGF0X2NvbVtpXSBpcyBpbmRleGVkIGJ5IGRtYV9oZWFkL3RhaWwgJiBCVVpfTUFTS19TVEFUX0NPTSAqLworCV9fbGUzMiAqc3RhdF9jb207CQkvKiBzdGF0X2NvbVtpXSBpcyBpbmRleGVkIGJ5IGRtYV9oZWFkL3RhaWwgJiBCVVpfTUFTS19TVEFUX0NPTSAqLwogCiAJLyogKHZhbHVlICYgQlVaX01BU0tfRlJBTUUpIGNvcnJlc3BvbmRzIHRvIGluZGV4IGluIHBlbmRbXSBxdWV1ZSAqLwogCWludCBqcGdfcGVuZFtCVVpfTUFYX0ZSQU1FXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vem9yYW5fZGV2aWNlLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3pvcmFuX2RldmljZS5jCmluZGV4IDM3NjI5ZmYuLjg4ZDM2OTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vem9yYW5fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby96b3Jhbl9kZXZpY2UuYwpAQCAtMTMyMCw3ICsxMzIwLDcgQEAKIAkJCWlmIChpKSB7CiAJCQkJLyogUm90YXRlIHN0YXRfY29tbSBlbnRyaWVzIHRvIG1ha2UgY3VycmVudCBlbnRyeSBmaXJzdCAqLwogCQkJCWludCBqOwotCQkJCXUzMiBidXNfYWRkcltCVVpfTlVNX1NUQVRfQ09NXTsKKwkJCQlfX2xlMzIgYnVzX2FkZHJbQlVaX05VTV9TVEFUX0NPTV07CiAKIAkJCQkvKiBIZXJlIHdlIGFyZSBjb3B5aW5nIHRoZSBzdGF0X2NvbSBhcnJheSwgd2hpY2gKIAkJCQkgKiBpcyBhbHJlYWR5IGluIGxpdHRsZSBlbmRpYW4gZm9ybWF0LCBzbwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby96b3Jhbl9kcml2ZXIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vem9yYW5fZHJpdmVyLmMKaW5kZXggMzQ1Yzc3ZS4uNTM5NGQ3YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby96b3Jhbl9kcml2ZXIuYworKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL3pvcmFuX2RyaXZlci5jCkBAIC00OTUsNyArNDk1LDcgQEAKIAkJCWpwZ19mYnVmZmVyX2ZyZWUoZmlsZSk7CiAJCQlyZXR1cm4gLUVOT0JVRlM7CiAJCX0KLQkJZmgtPmpwZ19idWZmZXJzLmJ1ZmZlcltpXS5mcmFnX3RhYiA9ICh1MzIgKikgbWVtOworCQlmaC0+anBnX2J1ZmZlcnMuYnVmZmVyW2ldLmZyYWdfdGFiID0gKF9fbGUzMiAqKSBtZW07CiAJCWZoLT5qcGdfYnVmZmVycy5idWZmZXJbaV0uZnJhZ190YWJfYnVzID0KIAkJICAgIHZpcnRfdG9fYnVzKCh2b2lkICopIG1lbSk7CiAKQEAgLTExNjcsNyArMTE2Nyw3IEBACiAKIAkvKiB2NGwgY2FwdHVyZSAqLwogCWlmIChmaC0+djRsX2J1ZmZlcnMuYWN0aXZlICE9IFpPUkFOX0ZSRUUpIHsKLQkJbG9uZyBmbGFnczsKKwkJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmenItPnNwaW5sb2NrLCBmbGFncyk7CiAJCXpyMzYwNTdfc2V0X21lbWdyYWIoenIsIDApOwpAQCAtMzQzNiw3ICszNDM2LDcgQEAKIAogCQkJLyogdW5sb2FkIGNhcHR1cmUgKi8KIAkJCWlmICh6ci0+djRsX21lbWdyYWJfYWN0aXZlKSB7Ci0JCQkJbG9uZyBmbGFnczsKKwkJCQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnpyLT5zcGlubG9jaywgZmxhZ3MpOwogCQkJCXpyMzYwNTdfc2V0X21lbWdyYWIoenIsIDApOwpAQCAtNDM3NSw3ICs0Mzc1LDcgQEAKIAkJCQltdXRleF9sb2NrKCZ6ci0+cmVzb3VyY2VfbG9jayk7CiAKIAkJCQlpZiAoZmgtPnY0bF9idWZmZXJzLmFjdGl2ZSAhPSBaT1JBTl9GUkVFKSB7Ci0JCQkJCWxvbmcgZmxhZ3M7CisJCQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKIAkJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnpyLT5zcGlubG9jaywgZmxhZ3MpOwogCQkJCQl6cjM2MDU3X3NldF9tZW1ncmFiKHpyLCAwKTsKQEAgLTQ1MDYsNyArNDUwNiw3IEBACiAJCQkJaWYgKHRvZG8gPiBmcmFnbGVuKQogCQkJCQl0b2RvID0gZnJhZ2xlbjsKIAkJCQlwb3MgPQotCQkJCSAgICBsZTMyX3RvX2NwdSgodW5zaWduZWQgbG9uZykgZmgtPmpwZ19idWZmZXJzLgorCQkJCSAgICBsZTMyX3RvX2NwdShmaC0+anBnX2J1ZmZlcnMuCiAJCQkJICAgIGJ1ZmZlcltpXS5mcmFnX3RhYlsyICogal0pOwogCQkJCS8qIHNob3VsZCBqdXN0IGJlIHBvcyBvbiBpMzg2ICovCiAJCQkJcGFnZSA9IHZpcnRfdG9fcGh5cyhidXNfdG9fdmlydChwb3MpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRiYXNlLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYwppbmRleCBkYjNjODkyLi5kNDBkNmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYworKysgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGJhc2UuYwpAQCAtMTY4Niw5ICsxNjg2LDE0IEBACiAJCWlvYy0+YnVzX3R5cGUgPSBTQVM7CiAJfQogCi0JaWYgKGlvYy0+YnVzX3R5cGUgPT0gU0FTICYmIG1wdF9tc2lfZW5hYmxlID09IC0xKQotCQlpb2MtPm1zaV9lbmFibGUgPSAxOwotCWVsc2UKKwlpZiAobXB0X21zaV9lbmFibGUgPT0gLTEpIHsKKwkJLyogRW5hYmxlIG9uIFNBUywgZGlzYWJsZSBvbiBGQyBhbmQgU1BJICovCisJCWlmIChpb2MtPmJ1c190eXBlID09IFNBUykKKwkJCWlvYy0+bXNpX2VuYWJsZSA9IDE7CisJCWVsc2UKKwkJCWlvYy0+bXNpX2VuYWJsZSA9IDA7CisJfSBlbHNlCisJCS8qIGZvbGxvdyBmbGFnOiAwIC0gZGlzYWJsZTsgMSAtIGVuYWJsZSAqLwogCQlpb2MtPm1zaV9lbmFibGUgPSBtcHRfbXNpX2VuYWJsZTsKIAogCWlmIChpb2MtPmVycmF0YV9mbGFnXzEwNjQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRjdGwuYwppbmRleCBlNjMwYjUwLi5jNTk0NjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGN0bC5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0Y3RsLmMKQEAgLTU0OCwxMSArNTQ4LDE1IEBACiBtcHRjdGxfZmFzeW5jKGludCBmZCwgc3RydWN0IGZpbGUgKmZpbGVwLCBpbnQgbW9kZSkKIHsKIAlNUFRfQURBUFRFUgkqaW9jOworCWludCByZXQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoaW9jLCAmaW9jX2xpc3QsIGxpc3QpCiAJCWlvYy0+YWVuX2V2ZW50X3JlYWRfZmxhZz0wOwogCi0JcmV0dXJuIGZhc3luY19oZWxwZXIoZmQsIGZpbGVwLCBtb2RlLCAmYXN5bmNfcXVldWUpOworCXJldCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGVwLCBtb2RlLCAmYXN5bmNfcXVldWUpOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGZjLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdGZjLmMKaW5kZXggM2NkZDRlOS4uMWUyNGFiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRmYy5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0ZmMuYwpAQCAtMTIzOCw4ICsxMjM4LDYgQEAKIAlzaC0+bWF4X2lkID0gaW9jLT5wZmFjdHMtPk1heERldmljZXM7CiAJc2gtPm1heF9sdW4gPSBtYXhfbHVuOwogCi0Jc2gtPnRoaXNfaWQgPSBpb2MtPnBmYWN0c1swXS5Qb3J0U0NTSUlEOwotCiAJLyogUmVxdWlyZWQgZW50cnkuCiAJICovCiAJc2gtPnVuaXF1ZV9pZCA9IGlvYy0+aWQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNhcy5jIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzYXMuYwppbmRleCA0Njg0ODA3Li40ZDQ5MmJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNhcy5jCisrKyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2FzLmMKQEAgLTMxOTMsOCArMzE5Myw2IEBACiAKIAlzaC0+dHJhbnNwb3J0dCA9IG1wdHNhc190cmFuc3BvcnRfdGVtcGxhdGU7CiAKLQlzaC0+dGhpc19pZCA9IGlvYy0+cGZhY3RzWzBdLlBvcnRTQ1NJSUQ7Ci0KIAkvKiBSZXF1aXJlZCBlbnRyeS4KIAkgKi8KIAlzaC0+dW5pcXVlX2lkID0gaW9jLT5pZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguYyBiL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c2NzaWguYwppbmRleCBiMTA5YmQ4Li5jNjhlZjAwIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNjc2loLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzY3NpaC5jCkBAIC0yNDUxLDEyICsyNDUxLDYgQEAKIAkJICAgIGlvYy0+bmFtZSwgc2Rldi0+c2R0ciwgc2Rldi0+d2R0ciwKIAkJICAgIHNkZXYtPnBwciwgc2Rldi0+aW5xdWlyeV9sZW4pKTsKIAotCWlmIChzZGV2LT5pZCA+IHNoLT5tYXhfaWQpIHsKLQkJLyogZXJyb3IgY2FzZSwgc2hvdWxkIG5ldmVyIGhhcHBlbiAqLwotCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChzZGV2LCAwLCAxKTsKLQkJZ290byBzbGF2ZV9jb25maWd1cmVfZXhpdDsKLQl9Ci0KIAl2ZGV2aWNlLT5jb25maWd1cmVkX2x1biA9IDE7CiAJbXB0c2NzaWhfY2hhbmdlX3F1ZXVlX2RlcHRoKHNkZXYsIE1QVF9TQ1NJX0NNRF9QRVJfREVWX0hJR0gpOwogCkBAIC0yNDcwLDggKzI0NjQsNiBAQAogCQkgICAgaW9jLT5uYW1lLCB2dGFyZ2V0LT5uZWdvRmxhZ3MsIHZ0YXJnZXQtPm1heE9mZnNldCwKIAkJICAgIHZ0YXJnZXQtPm1pblN5bmNGYWN0b3IpKTsKIAotc2xhdmVfY29uZmlndXJlX2V4aXQ6Ci0KIAlkc3ByaW50ayhpb2MsIHByaW50ayhNWUlPQ19zX0RFQlVHX0ZNVAogCQkidGFnZ2VkICVkLCBzaW1wbGUgJWQsIG9yZGVyZWQgJWRcbiIsCiAJCWlvYy0+bmFtZSxzZGV2LT50YWdnZWRfc3VwcG9ydGVkLCBzZGV2LT5zaW1wbGVfdGFncywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMgYi9kcml2ZXJzL21lc3NhZ2UvZnVzaW9uL21wdHNwaS5jCmluZGV4IDI1YmNmY2YuLjFlZmZjYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVzc2FnZS9mdXNpb24vbXB0c3BpLmMKKysrIGIvZHJpdmVycy9tZXNzYWdlL2Z1c2lvbi9tcHRzcGkuYwpAQCAtMTI2NiwxMyArMTI2NiwxOCBAQAogc3RhdGljIGludAogbXB0c3BpX2lvY19yZXNldChNUFRfQURBUFRFUiAqaW9jLCBpbnQgcmVzZXRfcGhhc2UpCiB7Ci0Jc3RydWN0IF9NUFRfU0NTSV9IT1NUICpoZCA9IHNob3N0X3ByaXYoaW9jLT5zaCk7CiAJaW50IHJjOwogCiAJcmMgPSBtcHRzY3NpaF9pb2NfcmVzZXQoaW9jLCByZXNldF9waGFzZSk7CiAKLQlpZiAocmVzZXRfcGhhc2UgPT0gTVBUX0lPQ19QT1NUX1JFU0VUKQorCS8qIG9ubHkgdHJ5IHRvIGRvIGEgcmVuZWdvdGlhdGlvbiBpZiB3ZSdyZSBwcm9wZXJseSBzZXQgdXAKKwkgKiBpZiB3ZSBnZXQgYW4gaW9jIGZhdWx0IG9uIGJyaW5ndXAsIGlvYy0+c2ggd2lsbCBiZSBOVUxMICovCisJaWYgKHJlc2V0X3BoYXNlID09IE1QVF9JT0NfUE9TVF9SRVNFVCAmJgorCSAgICBpb2MtPnNoKSB7CisJCXN0cnVjdCBfTVBUX1NDU0lfSE9TVCAqaGQgPSBzaG9zdF9wcml2KGlvYy0+c2gpOworCiAJCW1wdHNwaV9kdl9yZW5lZ290aWF0ZShoZCk7CisJfQogCiAJcmV0dXJuIHJjOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZXNzYWdlL2kyby9pMm9fY29uZmlnLmMgYi9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19jb25maWcuYwppbmRleCBjMGZiNzdkLi40MjM4ZGU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19jb25maWcuYworKysgYi9kcml2ZXJzL21lc3NhZ2UvaTJvL2kyb19jb25maWcuYwpAQCAtMTA2MSw2ICsxMDYxLDcgQEAKIAlpZiAoIXRtcCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwlsb2NrX2tlcm5lbCgpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9ICh2b2lkICopKGkyb19jZmdfaW5mb19pZCsrKTsKIAl0bXAtPmZwID0gZmlsZTsKIAl0bXAtPmZhc3luYyA9IE5VTEw7CkBAIC0xMDc0LDYgKzEwNzUsNyBAQAogCXNwaW5fbG9ja19pcnFzYXZlKCZpMm9fY29uZmlnX2xvY2ssIGZsYWdzKTsKIAlvcGVuX2ZpbGVzID0gdG1wOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmkyb19jb25maWdfbG9jaywgZmxhZ3MpOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpAQCAtMTA4MiwxNSArMTA4NCwxNyBAQAogewogCXVsb25nIGlkID0gKHVsb25nKSBmcC0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBpMm9fY2ZnX2luZm8gKnA7CisJaW50IHJldCA9IC1FQkFERjsKIAorCWxvY2tfa2VybmVsKCk7CiAJZm9yIChwID0gb3Blbl9maWxlczsgcDsgcCA9IHAtPm5leHQpCiAJCWlmIChwLT5xX2lkID09IGlkKQogCQkJYnJlYWs7CiAKLQlpZiAoIXApCi0JCXJldHVybiAtRUJBREY7Ci0KLQlyZXR1cm4gZmFzeW5jX2hlbHBlcihmZCwgZnAsIG9uLCAmcC0+ZmFzeW5jKTsKKwlpZiAocCkKKwkJcmV0ID0gZmFzeW5jX2hlbHBlcihmZCwgZnAsIG9uLCAmcC0+ZmFzeW5jKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBjZmdfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9hdG1lbF9wd20uYyBiL2RyaXZlcnMvbWlzYy9hdG1lbF9wd20uYwppbmRleCAwZDVjZTAzLi41YjVhMTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvYXRtZWxfcHdtLmMKKysrIGIvZHJpdmVycy9taXNjL2F0bWVsX3B3bS5jCkBAIC0zMzIsNyArMzMyLDcgQEAKIAlwLT5iYXNlID0gaW9yZW1hcChyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKIAlpZiAoIXAtPmJhc2UpCiAJCWdvdG8gZmFpbDsKLQlwLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJtY2siKTsKKwlwLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwd21fY2xrIik7CiAJaWYgKElTX0VSUihwLT5jbGspKSB7CiAJCXN0YXR1cyA9IFBUUl9FUlIocC0+Y2xrKTsKIAkJcC0+Y2xrID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9mdWppdHN1LWxhcHRvcC5jIGIvZHJpdmVycy9taXNjL2Z1aml0c3UtbGFwdG9wLmMKaW5kZXggZTJlN2MwNS4uNmQxNGU4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2Z1aml0c3UtbGFwdG9wLmMKKysrIGIvZHJpdmVycy9taXNjL2Z1aml0c3UtbGFwdG9wLmMKQEAgLTM1MiwzICszNTIsOSBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCJGdWppdHN1IGxhcHRvcCBleHRyYXMgc3VwcG9ydCIpOwogTU9EVUxFX1ZFUlNJT04oRlVKSVRTVV9EUklWRVJfVkVSU0lPTik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CisKK3N0YXRpYyBzdHJ1Y3QgcG5wX2RldmljZV9pZCBwbnBfaWRzW10gPSB7CisJeyAuaWQgPSAiRlVKMDJiZiIgfSwKKwl7IC5pZCA9ICIiIH0KK307CitNT0RVTEVfREVWSUNFX1RBQkxFKHBucCwgcG5wX2lkcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGRwdWZ0cnMvaGRwdV9jcHVzdGF0ZS5jIGIvZHJpdmVycy9taXNjL2hkcHVmdHJzL2hkcHVfY3B1c3RhdGUuYwppbmRleCBmZjUxYWI2Li4xNzZmZTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvaGRwdWZ0cnMvaGRwdV9jcHVzdGF0ZS5jCisrKyBiL2RyaXZlcnMvbWlzYy9oZHB1ZnRycy9oZHB1X2NwdXN0YXRlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9oZHB1X2ZlYXR1cmVzLmg+CkBAIC0xNTEsNyArMTUyLDEzIEBACiAKIHN0YXRpYyBpbnQgY3B1c3RhdGVfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlyZXR1cm4gY3B1c3RhdGVfZ2V0X3JlZigoZmlsZS0+Zl9mbGFncyAmIE9fRVhDTCkpOworCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IGNwdXN0YXRlX2dldF9yZWYoKGZpbGUtPmZfZmxhZ3MgJiBPX0VYQ0wpKTsKKwl1bmxvY2tfa2VybmVsKCk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNwdXN0YXRlX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2Mva2dkYnRzLmMgYi9kcml2ZXJzL21pc2Mva2dkYnRzLmMKaW5kZXggZmEzOTQxMC4uZTRmZjUwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9taXNjL2tnZGJ0cy5jCisrKyBiL2RyaXZlcnMvbWlzYy9rZ2RidHMuYwpAQCAtMTAyLDcgKzEwMiw2IEBACiAjaW5jbHVkZSA8bGludXgvbm1pLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KIAogI2RlZmluZSB2MXByaW50ayhhLi4uKSBkbyB7IFwKIAlpZiAodmVyYm9zZSkgXApAQCAtMTE5LDcgKzExOCw2IEBACiAJfSB3aGlsZSAoMCkKICNkZWZpbmUgTUFYX0NPTkZJR19MRU4JCTQwCiAKLXN0YXRpYyBjb25zdCBjaGFyIGhleGNoYXJzW10gPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CiBzdGF0aWMgc3RydWN0IGtnZGJfaW8ga2dkYnRzX2lvX29wczsKIHN0YXRpYyBjaGFyIGdldF9idWZbQlVGTUFYXTsKIHN0YXRpYyBpbnQgZ2V0X2J1Zl9jbnQ7CkBAIC0xMzEsNiArMTI5LDggQEAKIHN0YXRpYyBpbnQgdGVzdF9jb21wbGV0ZTsKIHN0YXRpYyBpbnQgc2VuZF9hY2s7CiBzdGF0aWMgaW50IGZpbmFsX2FjazsKK3N0YXRpYyBpbnQgZm9yY2VfaHdicmtzOworc3RhdGljIGludCBod2JyZWFrc19vazsKIHN0YXRpYyBpbnQgaHdfYnJlYWtfdmFsOwogc3RhdGljIGludCBod19icmVha192YWwyOwogI2lmIGRlZmluZWQoQ09ORklHX0FSTSkgfHwgZGVmaW5lZChDT05GSUdfTUlQUykgfHwgZGVmaW5lZChDT05GSUdfU1BBUkMpCkBAIC0yMzQsMTIgKzIzNCwxMiBAQAogCiBzdGF0aWMgdm9pZCBzd19icmVhayhjaGFyICphcmcpCiB7Ci0JYnJlYWtfaGVscGVyKCJaMCIsIGFyZywgMCk7CisJYnJlYWtfaGVscGVyKGZvcmNlX2h3YnJrcyA/ICJaMSIgOiAiWjAiLCBhcmcsIDApOwogfQogCiBzdGF0aWMgdm9pZCBzd19yZW1fYnJlYWsoY2hhciAqYXJnKQogewotCWJyZWFrX2hlbHBlcigiejAiLCBhcmcsIDApOworCWJyZWFrX2hlbHBlcihmb3JjZV9od2Jya3MgPyAiejEiIDogInowIiwgYXJnLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgaHdfYnJlYWsoY2hhciAqYXJnKQpAQCAtNjE5LDggKzYxOSw4IEBACiAJCWNvdW50Kys7CiAJfQogCXN0cmNhdChnZXRfYnVmLCAiIyIpOwotCWdldF9idWZbY291bnQgKyAyXSA9IGhleGNoYXJzW2NoZWNrc3VtID4+IDRdOwotCWdldF9idWZbY291bnQgKyAzXSA9IGhleGNoYXJzW2NoZWNrc3VtICYgMHhmXTsKKwlnZXRfYnVmW2NvdW50ICsgMl0gPSBoZXhfYXNjX2hpKGNoZWNrc3VtKTsKKwlnZXRfYnVmW2NvdW50ICsgM10gPSBoZXhfYXNjX2xvKGNoZWNrc3VtKTsKIAlnZXRfYnVmW2NvdW50ICsgNF0gPSAnXDAnOwogCXYycHJpbnRrKCJnZXQlaTogJXNcbiIsIHRzLmlkeCwgZ2V0X2J1Zik7CiB9CkBAIC03ODEsNiArNzgxLDggQEAKIAkJcmV0dXJuOwogCiAJZXByaW50aygia2dkYnRzOiBFUlJPUiAlcyB0ZXN0IGZhaWxlZFxuIiwgdHMubmFtZSk7CisJaWYgKGlzX2h3X2JyZWFrcG9pbnQpCisJCWh3YnJlYWtzX29rID0gMDsKIH0KIAogc3RhdGljIHZvaWQgcnVuX2h3X2JyZWFrX3Rlc3QoaW50IGlzX3dyaXRlX3Rlc3QpCkBAIC03OTgsOSArODAwLDExIEBACiAJa2dkYl9icmVha3BvaW50KCk7CiAJaHdfYnJlYWtfdmFsX2FjY2VzcygpOwogCWlmIChpc193cml0ZV90ZXN0KSB7Ci0JCWlmICh0ZXN0X2NvbXBsZXRlID09IDIpCisJCWlmICh0ZXN0X2NvbXBsZXRlID09IDIpIHsKIAkJCWVwcmludGsoImtnZGJ0czogRVJST1IgJXMgYnJva2Ugb24gYWNjZXNzXG4iLAogCQkJCXRzLm5hbWUpOworCQkJaHdicmVha3Nfb2sgPSAwOworCQl9CiAJCWh3X2JyZWFrX3ZhbF93cml0ZSgpOwogCX0KIAlrZ2RiX2JyZWFrcG9pbnQoKTsKQEAgLTgwOSw2ICs4MTMsNyBAQAogCQlyZXR1cm47CiAKIAllcHJpbnRrKCJrZ2RidHM6IEVSUk9SICVzIHRlc3QgZmFpbGVkXG4iLCB0cy5uYW1lKTsKKwlod2JyZWFrc19vayA9IDA7CiB9CiAKIHN0YXRpYyB2b2lkIHJ1bl9ubWlfc2xlZXBfdGVzdChpbnQgbm1pX3NsZWVwKQpAQCAtOTEyLDYgKzkxNyw3IEBACiAKIAkvKiBBbGwgSFcgYnJlYWsgcG9pbnQgdGVzdHMgKi8KIAlpZiAoYXJjaF9rZ2RiX29wcy5mbGFncyAmIEtHREJfSFdfQlJFQUtQT0lOVCkgeworCQlod2JyZWFrc19vayA9IDE7CiAJCXYxcHJpbnRrKCJrZ2RidHM6UlVOIGh3IGJyZWFrcG9pbnQgdGVzdFxuIik7CiAJCXJ1bl9icmVha3BvaW50X3Rlc3QoMSk7CiAJCXYxcHJpbnRrKCJrZ2RidHM6UlVOIGh3IHdyaXRlIGJyZWFrcG9pbnQgdGVzdFxuIik7CkBAIC05MjUsNiArOTMxLDE5IEBACiAJCXJ1bl9ubWlfc2xlZXBfdGVzdChubWlfc2xlZXApOwogCX0KIAorI2lmZGVmIENPTkZJR19ERUJVR19ST0RBVEEKKwkvKiBVbnRpbCB0aGVyZSBpcyBhbiBhcGkgdG8gd3JpdGUgdG8gcmVhZC1vbmx5IHRleHQgc2VnbWVudHMsIHVzZQorCSAqIEhXIGJyZWFrcG9pbnRzIGZvciB0aGUgcmVtYWluZGVyIG9mIGFueSB0ZXN0cywgZWxzZSBwcmludCBhCisJICogZmFpbHVyZSBtZXNzYWdlIGlmIGh3IGJyZWFrcG9pbnRzIGRvIG5vdCB3b3JrLgorCSAqLworCWlmICghKGFyY2hfa2dkYl9vcHMuZmxhZ3MgJiBLR0RCX0hXX0JSRUFLUE9JTlQgJiYgaHdicmVha3Nfb2spKSB7CisJCWVwcmludGsoImtnZGJ0czogSFcgYnJlYWtwb2ludHMgZG8gbm90IHdvcmssIgorCQkJInNraXBwaW5nIHJlbWFpbmluZyB0ZXN0c1xuIik7CisJCXJldHVybjsKKwl9CisJZm9yY2VfaHdicmtzID0gMTsKKyNlbmRpZiAvKiBDT05GSUdfREVCVUdfUk9EQVRBICovCisKIAkvKiBJZiB0aGUgZG9fZm9yayB0ZXN0IGlzIHJ1biBpdCB3aWxsIGJlIHRoZSBsYXN0IHRlc3QgdGhhdCBpcwogCSAqIGV4ZWN1dGVkIGJlY2F1c2UgYSBrZXJuZWwgdGhyZWFkIHdpbGwgYmUgc3Bhd25lZCBhdCB0aGUgdmVyeQogCSAqIGVuZCB0byB1bnJlZ2lzdGVyIHRoZSBkZWJ1ZyBob29rcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWlzYy9waGFudG9tLmMgYi9kcml2ZXJzL21pc2MvcGhhbnRvbS5jCmluZGV4IDcxZDFjODQuLjE4NjE2MjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9waGFudG9tLmMKKysrIGIvZHJpdmVycy9taXNjL3BoYW50b20uYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KICNpbmNsdWRlIDxsaW51eC9waGFudG9tLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTIxMiwxMyArMjEzLDE3IEBACiAJc3RydWN0IHBoYW50b21fZGV2aWNlICpkZXYgPSBjb250YWluZXJfb2YoaW5vZGUtPmlfY2RldiwKIAkJCXN0cnVjdCBwaGFudG9tX2RldmljZSwgY2Rldik7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogCi0JaWYgKG11dGV4X2xvY2tfaW50ZXJydXB0aWJsZSgmZGV2LT5vcGVuX2xvY2spKQorCWlmIChtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+b3Blbl9sb2NrKSkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJfQogCiAJaWYgKGRldi0+b3BlbmVkKSB7CiAJCW11dGV4X3VubG9jaygmZGV2LT5vcGVuX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMjI5LDcgKzIzNCw3IEBACiAJYXRvbWljX3NldCgmZGV2LT5jb3VudGVyLCAwKTsKIAlkZXYtPm9wZW5lZCsrOwogCW11dGV4X3VubG9jaygmZGV2LT5vcGVuX2xvY2spOwotCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2Mvc29ueS1sYXB0b3AuYyBiL2RyaXZlcnMvbWlzYy9zb255LWxhcHRvcC5jCmluZGV4IDAwZTQ4ZTIuLjYwNzc1YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9zb255LWxhcHRvcC5jCisrKyBiL2RyaXZlcnMvbWlzYy9zb255LWxhcHRvcC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2JhY2tsaWdodC5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgpAQCAtMTkyNyw4ICsxOTI4LDEwIEBACiBzdGF0aWMgaW50IHNvbnlwaV9taXNjX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJLyogRmx1c2ggaW5wdXQgcXVldWUgb24gZmlyc3Qgb3BlbiAqLworCWxvY2tfa2VybmVsKCk7CiAJaWYgKGF0b21pY19pbmNfcmV0dXJuKCZzb255cGlfY29tcGF0Lm9wZW5fY291bnQpID09IDEpCiAJCWtmaWZvX3Jlc2V0KHNvbnlwaV9jb21wYXQuZmlmbyk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvdGhpbmtwYWRfYWNwaS5jIGIvZHJpdmVycy9taXNjL3RoaW5rcGFkX2FjcGkuYwppbmRleCAzZjI4ZjZlLi5iNTk2OTI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL21pc2MvdGhpbmtwYWRfYWNwaS5jCisrKyBiL2RyaXZlcnMvbWlzYy90aGlua3BhZF9hY3BpLmMKQEAgLTEyOTMsNyArMTI5Myw3IEBACiAJCW11dGV4X2xvY2soJnRwYWNwaV9pbnB1dGRldl9zZW5kX211dGV4KTsKIAogCQlpbnB1dF9yZXBvcnRfc3dpdGNoKHRwYWNwaV9pbnB1dGRldiwKLQkJCQkgICAgU1dfUkFESU8sICEhd2xzdyk7CisJCQkJICAgIFNXX1JGS0lMTF9BTEwsICEhd2xzdyk7CiAJCWlucHV0X3N5bmModHBhY3BpX2lucHV0ZGV2KTsKIAogCQltdXRleF91bmxvY2soJnRwYWNwaV9pbnB1dGRldl9zZW5kX211dGV4KTsKQEAgLTE5MjEsNiArMTkyMSwyOSBAQAogCSZkZXZfYXR0cl9ob3RrZXlfd2FrZXVwX2hvdHVucGx1Z19jb21wbGV0ZS5hdHRyLAogfTsKIAorc3RhdGljIHZvaWQgaG90a2V5X2V4aXQodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfVEhJTktQQURfQUNQSV9IT1RLRVlfUE9MTAorCWhvdGtleV9wb2xsX3N0b3Bfc3luYygpOworI2VuZGlmCisKKwlpZiAoaG90a2V5X2Rldl9hdHRyaWJ1dGVzKQorCQlkZWxldGVfYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLCAmdHBhY3BpX3BkZXYtPmRldi5rb2JqKTsKKworCWtmcmVlKGhvdGtleV9rZXljb2RlX21hcCk7CisKKwlpZiAodHBfZmVhdHVyZXMuaG90a2V5KSB7CisJCWRiZ19wcmludGsoVFBBQ1BJX0RCR19FWElULAorCQkJICAgInJlc3RvcmluZyBvcmlnaW5hbCBob3Qga2V5IG1hc2tcbiIpOworCQkvKiBubyBzaG9ydC1jaXJjdWl0IGJvb2xlYW4gb3BlcmF0b3IgYmVsb3chICovCisJCWlmICgoaG90a2V5X21hc2tfc2V0KGhvdGtleV9vcmlnX21hc2spIHwKKwkJICAgICBob3RrZXlfc3RhdHVzX3NldChob3RrZXlfb3JpZ19zdGF0dXMpKSAhPSAwKQorCQkJcHJpbnRrKFRQQUNQSV9FUlIKKwkJCSAgICAgICAiZmFpbGVkIHRvIHJlc3RvcmUgaG90IGtleSBtYXNrICIKKwkJCSAgICAgICAidG8gQklPUyBkZWZhdWx0c1xuIik7CisJfQorfQorCiBzdGF0aWMgaW50IF9faW5pdCBob3RrZXlfaW5pdChzdHJ1Y3QgaWJtX2luaXRfc3RydWN0ICppaWJtKQogewogCS8qIFJlcXVpcmVtZW50cyBmb3IgY2hhbmdpbmcgdGhlIGRlZmF1bHQga2V5bWFwczoKQEAgLTIwNjAsMjI2ICsyMDgzLDIyMCBAQAogCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImhvdGtleXMgYXJlICVzXG4iLAogCQlzdHJfc3VwcG9ydGVkKHRwX2ZlYXR1cmVzLmhvdGtleSkpOwogCi0JaWYgKHRwX2ZlYXR1cmVzLmhvdGtleSkgewotCQlob3RrZXlfZGV2X2F0dHJpYnV0ZXMgPSBjcmVhdGVfYXR0cl9zZXQoMTMsIE5VTEwpOwotCQlpZiAoIWhvdGtleV9kZXZfYXR0cmlidXRlcykKLQkJCXJldHVybiAtRU5PTUVNOwotCQlyZXMgPSBhZGRfbWFueV90b19hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCi0JCQkJaG90a2V5X2F0dHJpYnV0ZXMsCi0JCQkJQVJSQVlfU0laRShob3RrZXlfYXR0cmlidXRlcykpOworCWlmICghdHBfZmVhdHVyZXMuaG90a2V5KQorCQlyZXR1cm4gMTsKKworCWhvdGtleV9kZXZfYXR0cmlidXRlcyA9IGNyZWF0ZV9hdHRyX3NldCgxMywgTlVMTCk7CisJaWYgKCFob3RrZXlfZGV2X2F0dHJpYnV0ZXMpCisJCXJldHVybiAtRU5PTUVNOworCXJlcyA9IGFkZF9tYW55X3RvX2F0dHJfc2V0KGhvdGtleV9kZXZfYXR0cmlidXRlcywKKwkJCWhvdGtleV9hdHRyaWJ1dGVzLAorCQkJQVJSQVlfU0laRShob3RrZXlfYXR0cmlidXRlcykpOworCWlmIChyZXMpCisJCWdvdG8gZXJyX2V4aXQ7CisKKwkvKiBtYXNrIG5vdCBzdXBwb3J0ZWQgb24gNTcwLCA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwKKwkgICBBMzAsIFIzMCwgUjMxLCBUMjAtMjIsIFgyMC0yMSwgWDIyLTI0LiAgRGV0ZWN0ZWQgYnkgY2hlY2tpbmcKKwkgICBmb3IgSEtFWSBpbnRlcmZhY2UgdmVyc2lvbiAweDEwMCAqLworCWlmIChhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmaGtleXYsICJNSEtWIiwgInFkIikpIHsKKwkJaWYgKChoa2V5diA+PiA4KSAhPSAxKSB7CisJCQlwcmludGsoVFBBQ1BJX0VSUiAidW5rbm93biB2ZXJzaW9uIG9mIHRoZSAiCisJCQkgICAgICAgIkhLRVkgaW50ZXJmYWNlOiAweCV4XG4iLCBoa2V5dik7CisJCQlwcmludGsoVFBBQ1BJX0VSUiAicGxlYXNlIHJlcG9ydCB0aGlzIHRvICVzXG4iLAorCQkJICAgICAgIFRQQUNQSV9NQUlMKTsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBNSEtWIDB4MTAwIGluIEEzMSwgUjQwLCBSNDBlLAorCQkJICogVDR4LCBYMzEsIGFuZCBsYXRlcgorCQkJICovCisJCQl0cF9mZWF0dXJlcy5ob3RrZXlfbWFzayA9IDE7CisJCX0KKwl9CisKKwl2ZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsICJob3RrZXkgbWFza3MgYXJlICVzXG4iLAorCQlzdHJfc3VwcG9ydGVkKHRwX2ZlYXR1cmVzLmhvdGtleV9tYXNrKSk7CisKKwlpZiAodHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKKwkJaWYgKCFhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmaG90a2V5X2FsbF9tYXNrLAorCQkJCSJNSEtBIiwgInFkIikpIHsKKwkJCXByaW50ayhUUEFDUElfRVJSCisJCQkgICAgICAgIm1pc3NpbmcgTUhLQSBoYW5kbGVyLCAiCisJCQkgICAgICAgInBsZWFzZSByZXBvcnQgdGhpcyB0byAlc1xuIiwKKwkJCSAgICAgICBUUEFDUElfTUFJTCk7CisJCQkvKiBGTitGMTIsIEZOK0Y0LCBGTitGMyAqLworCQkJaG90a2V5X2FsbF9tYXNrID0gMHgwODBjVTsKKwkJfQorCX0KKworCS8qIGhvdGtleV9zb3VyY2VfbWFzayAqbXVzdCogYmUgemVybyBmb3IKKwkgKiB0aGUgZmlyc3QgaG90a2V5X21hc2tfZ2V0ICovCisJcmVzID0gaG90a2V5X3N0YXR1c19nZXQoJmhvdGtleV9vcmlnX3N0YXR1cyk7CisJaWYgKHJlcykKKwkJZ290byBlcnJfZXhpdDsKKworCWlmICh0cF9mZWF0dXJlcy5ob3RrZXlfbWFzaykgeworCQlyZXMgPSBob3RrZXlfbWFza19nZXQoKTsKIAkJaWYgKHJlcykKLQkJCXJldHVybiByZXM7CisJCQlnb3RvIGVycl9leGl0OwogCi0JCS8qIG1hc2sgbm90IHN1cHBvcnRlZCBvbiA1NzAsIDYwMGUveCwgNzcwZSwgNzcweCwgQTIxZSwgQTJ4bS9wLAotCQkgICBBMzAsIFIzMCwgUjMxLCBUMjAtMjIsIFgyMC0yMSwgWDIyLTI0LiAgRGV0ZWN0ZWQgYnkgY2hlY2tpbmcKLQkJICAgZm9yIEhLRVkgaW50ZXJmYWNlIHZlcnNpb24gMHgxMDAgKi8KLQkJaWYgKGFjcGlfZXZhbGYoaGtleV9oYW5kbGUsICZoa2V5diwgIk1IS1YiLCAicWQiKSkgewotCQkJaWYgKChoa2V5diA+PiA4KSAhPSAxKSB7Ci0JCQkJcHJpbnRrKFRQQUNQSV9FUlIgInVua25vd24gdmVyc2lvbiBvZiB0aGUgIgotCQkJCSAgICAgICAiSEtFWSBpbnRlcmZhY2U6IDB4JXhcbiIsIGhrZXl2KTsKLQkJCQlwcmludGsoVFBBQ1BJX0VSUiAicGxlYXNlIHJlcG9ydCB0aGlzIHRvICVzXG4iLAotCQkJCSAgICAgICBUUEFDUElfTUFJTCk7Ci0JCQl9IGVsc2UgewotCQkJCS8qCi0JCQkJICogTUhLViAweDEwMCBpbiBBMzEsIFI0MCwgUjQwZSwKLQkJCQkgKiBUNHgsIFgzMSwgYW5kIGxhdGVyCi0JCQkJICovCi0JCQkJdHBfZmVhdHVyZXMuaG90a2V5X21hc2sgPSAxOwotCQkJfQotCQl9Ci0KLQkJdmRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULCAiaG90a2V5IG1hc2tzIGFyZSAlc1xuIiwKLQkJCXN0cl9zdXBwb3J0ZWQodHBfZmVhdHVyZXMuaG90a2V5X21hc2spKTsKLQotCQlpZiAodHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKLQkJCWlmICghYWNwaV9ldmFsZihoa2V5X2hhbmRsZSwgJmhvdGtleV9hbGxfbWFzaywKLQkJCQkJIk1IS0EiLCAicWQiKSkgewotCQkJCXByaW50ayhUUEFDUElfRVJSCi0JCQkJICAgICAgICJtaXNzaW5nIE1IS0EgaGFuZGxlciwgIgotCQkJCSAgICAgICAicGxlYXNlIHJlcG9ydCB0aGlzIHRvICVzXG4iLAotCQkJCSAgICAgICBUUEFDUElfTUFJTCk7Ci0JCQkJLyogRk4rRjEyLCBGTitGNCwgRk4rRjMgKi8KLQkJCQlob3RrZXlfYWxsX21hc2sgPSAweDA4MGNVOwotCQkJfQotCQl9Ci0KLQkJLyogaG90a2V5X3NvdXJjZV9tYXNrICptdXN0KiBiZSB6ZXJvIGZvcgotCQkgKiB0aGUgZmlyc3QgaG90a2V5X21hc2tfZ2V0ICovCi0JCXJlcyA9IGhvdGtleV9zdGF0dXNfZ2V0KCZob3RrZXlfb3JpZ19zdGF0dXMpOwotCQlpZiAoIXJlcyAmJiB0cF9mZWF0dXJlcy5ob3RrZXlfbWFzaykgewotCQkJcmVzID0gaG90a2V5X21hc2tfZ2V0KCk7Ci0JCQlob3RrZXlfb3JpZ19tYXNrID0gaG90a2V5X21hc2s7Ci0JCQlpZiAoIXJlcykgewotCQkJCXJlcyA9IGFkZF9tYW55X3RvX2F0dHJfc2V0KAotCQkJCQlob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCi0JCQkJCWhvdGtleV9tYXNrX2F0dHJpYnV0ZXMsCi0JCQkJCUFSUkFZX1NJWkUoaG90a2V5X21hc2tfYXR0cmlidXRlcykpOwotCQkJfQotCQl9CisJCWhvdGtleV9vcmlnX21hc2sgPSBob3RrZXlfbWFzazsKKwkJcmVzID0gYWRkX21hbnlfdG9fYXR0cl9zZXQoCisJCQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAorCQkJCWhvdGtleV9tYXNrX2F0dHJpYnV0ZXMsCisJCQkJQVJSQVlfU0laRShob3RrZXlfbWFza19hdHRyaWJ1dGVzKSk7CisJCWlmIChyZXMpCisJCQlnb3RvIGVycl9leGl0OworCX0KIAogI2lmZGVmIENPTkZJR19USElOS1BBRF9BQ1BJX0hPVEtFWV9QT0xMCi0JCWlmICh0cF9mZWF0dXJlcy5ob3RrZXlfbWFzaykgewotCQkJaG90a2V5X3NvdXJjZV9tYXNrID0gVFBBQ1BJX0hLRVlfTlZSQU1fR09PRF9NQVNLCi0JCQkJCQkmIH5ob3RrZXlfYWxsX21hc2s7Ci0JCX0gZWxzZSB7Ci0JCQlob3RrZXlfc291cmNlX21hc2sgPSBUUEFDUElfSEtFWV9OVlJBTV9HT09EX01BU0s7Ci0JCX0KKwlpZiAodHBfZmVhdHVyZXMuaG90a2V5X21hc2spIHsKKwkJaG90a2V5X3NvdXJjZV9tYXNrID0gVFBBQ1BJX0hLRVlfTlZSQU1fR09PRF9NQVNLCisJCQkJCSYgfmhvdGtleV9hbGxfbWFzazsKKwl9IGVsc2UgeworCQlob3RrZXlfc291cmNlX21hc2sgPSBUUEFDUElfSEtFWV9OVlJBTV9HT09EX01BU0s7CisJfQogCi0JCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKLQkJCSAgICAiaG90a2V5IHNvdXJjZSBtYXNrIDB4JTA4eCwgcG9sbGluZyBmcmVxICVkXG4iLAotCQkJICAgIGhvdGtleV9zb3VyY2VfbWFzaywgaG90a2V5X3BvbGxfZnJlcSk7CisJdmRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAorCQkgICAgImhvdGtleSBzb3VyY2UgbWFzayAweCUwOHgsIHBvbGxpbmcgZnJlcSAlZFxuIiwKKwkJICAgIGhvdGtleV9zb3VyY2VfbWFzaywgaG90a2V5X3BvbGxfZnJlcSk7CiAjZW5kaWYKIAotCQkvKiBOb3QgYWxsIHRoaW5rcGFkcyBoYXZlIGEgaGFyZHdhcmUgcmFkaW8gc3dpdGNoICovCi0JCWlmICghcmVzICYmIGFjcGlfZXZhbGYoaGtleV9oYW5kbGUsICZzdGF0dXMsICJXTFNXIiwgInFkIikpIHsKLQkJCXRwX2ZlYXR1cmVzLmhvdGtleV93bHN3ID0gMTsKLQkJCXByaW50ayhUUEFDUElfSU5GTwotCQkJCSJyYWRpbyBzd2l0Y2ggZm91bmQ7IHJhZGlvcyBhcmUgJXNcbiIsCi0JCQkJZW5hYmxlZChzdGF0dXMsIDApKTsKLQkJCXJlcyA9IGFkZF90b19hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCi0JCQkJCSZkZXZfYXR0cl9ob3RrZXlfcmFkaW9fc3cuYXR0cik7Ci0JCX0KKwkvKiBOb3QgYWxsIHRoaW5rcGFkcyBoYXZlIGEgaGFyZHdhcmUgcmFkaW8gc3dpdGNoICovCisJaWYgKGFjcGlfZXZhbGYoaGtleV9oYW5kbGUsICZzdGF0dXMsICJXTFNXIiwgInFkIikpIHsKKwkJdHBfZmVhdHVyZXMuaG90a2V5X3dsc3cgPSAxOworCQlwcmludGsoVFBBQ1BJX0lORk8KKwkJCSJyYWRpbyBzd2l0Y2ggZm91bmQ7IHJhZGlvcyBhcmUgJXNcbiIsCisJCQllbmFibGVkKHN0YXR1cywgMCkpOworCQlyZXMgPSBhZGRfdG9fYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLAorCQkJCSZkZXZfYXR0cl9ob3RrZXlfcmFkaW9fc3cuYXR0cik7CisJfQogCi0JCS8qIEZvciBYNDF0LCBYNjB0LCBYNjF0IFRhYmxldHMuLi4gKi8KLQkJaWYgKCFyZXMgJiYgYWNwaV9ldmFsZihoa2V5X2hhbmRsZSwgJnN0YXR1cywgIk1IS0ciLCAicWQiKSkgewotCQkJdHBfZmVhdHVyZXMuaG90a2V5X3RhYmxldCA9IDE7Ci0JCQlwcmludGsoVFBBQ1BJX0lORk8KLQkJCQkicG9zc2libGUgdGFibGV0IG1vZGUgc3dpdGNoIGZvdW5kOyAiCi0JCQkJIlRoaW5rUGFkIGluICVzIG1vZGVcbiIsCi0JCQkJKHN0YXR1cyAmIFRQX0hPVEtFWV9UQUJMRVRfTUFTSyk/Ci0JCQkJCSJ0YWJsZXQiIDogImxhcHRvcCIpOwotCQkJcmVzID0gYWRkX3RvX2F0dHJfc2V0KGhvdGtleV9kZXZfYXR0cmlidXRlcywKLQkJCQkJJmRldl9hdHRyX2hvdGtleV90YWJsZXRfbW9kZS5hdHRyKTsKLQkJfQorCS8qIEZvciBYNDF0LCBYNjB0LCBYNjF0IFRhYmxldHMuLi4gKi8KKwlpZiAoIXJlcyAmJiBhY3BpX2V2YWxmKGhrZXlfaGFuZGxlLCAmc3RhdHVzLCAiTUhLRyIsICJxZCIpKSB7CisJCXRwX2ZlYXR1cmVzLmhvdGtleV90YWJsZXQgPSAxOworCQlwcmludGsoVFBBQ1BJX0lORk8KKwkJCSJwb3NzaWJsZSB0YWJsZXQgbW9kZSBzd2l0Y2ggZm91bmQ7ICIKKwkJCSJUaGlua1BhZCBpbiAlcyBtb2RlXG4iLAorCQkJKHN0YXR1cyAmIFRQX0hPVEtFWV9UQUJMRVRfTUFTSyk/CisJCQkJInRhYmxldCIgOiAibGFwdG9wIik7CisJCXJlcyA9IGFkZF90b19hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCisJCQkJJmRldl9hdHRyX2hvdGtleV90YWJsZXRfbW9kZS5hdHRyKTsKKwl9CiAKLQkJaWYgKCFyZXMpCi0JCQlyZXMgPSByZWdpc3Rlcl9hdHRyX3NldF93aXRoX3N5c2ZzKAotCQkJCQlob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCi0JCQkJCSZ0cGFjcGlfcGRldi0+ZGV2LmtvYmopOwotCQlpZiAocmVzKQotCQkJcmV0dXJuIHJlczsKKwlpZiAoIXJlcykKKwkJcmVzID0gcmVnaXN0ZXJfYXR0cl9zZXRfd2l0aF9zeXNmcygKKwkJCQlob3RrZXlfZGV2X2F0dHJpYnV0ZXMsCisJCQkJJnRwYWNwaV9wZGV2LT5kZXYua29iaik7CisJaWYgKHJlcykKKwkJZ290byBlcnJfZXhpdDsKIAotCQkvKiBTZXQgdXAga2V5IG1hcCAqLworCS8qIFNldCB1cCBrZXkgbWFwICovCiAKLQkJaG90a2V5X2tleWNvZGVfbWFwID0ga21hbGxvYyhUUEFDUElfSE9US0VZX01BUF9TSVpFLAotCQkJCQkJR0ZQX0tFUk5FTCk7Ci0JCWlmICghaG90a2V5X2tleWNvZGVfbWFwKSB7Ci0JCQlwcmludGsoVFBBQ1BJX0VSUgotCQkJCSJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBrZXkgbWFwXG4iKTsKLQkJCXJldHVybiAtRU5PTUVNOwotCQl9CisJaG90a2V5X2tleWNvZGVfbWFwID0ga21hbGxvYyhUUEFDUElfSE9US0VZX01BUF9TSVpFLAorCQkJCQlHRlBfS0VSTkVMKTsKKwlpZiAoIWhvdGtleV9rZXljb2RlX21hcCkgeworCQlwcmludGsoVFBBQ1BJX0VSUgorCQkJImZhaWxlZCB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIGtleSBtYXBcbiIpOworCQlyZXMgPSAtRU5PTUVNOworCQlnb3RvIGVycl9leGl0OworCX0KIAotCQlpZiAodGhpbmtwYWRfaWQudmVuZG9yID09IFBDSV9WRU5ET1JfSURfTEVOT1ZPKSB7Ci0JCQlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwKLQkJCQkgICAidXNpbmcgTGVub3ZvIGRlZmF1bHQgaG90IGtleSBtYXBcbiIpOwotCQkJbWVtY3B5KGhvdGtleV9rZXljb2RlX21hcCwgJmxlbm92b19rZXljb2RlX21hcCwKLQkJCQlUUEFDUElfSE9US0VZX01BUF9TSVpFKTsKKwlpZiAodGhpbmtwYWRfaWQudmVuZG9yID09IFBDSV9WRU5ET1JfSURfTEVOT1ZPKSB7CisJCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAorCQkJICAgInVzaW5nIExlbm92byBkZWZhdWx0IGhvdCBrZXkgbWFwXG4iKTsKKwkJbWVtY3B5KGhvdGtleV9rZXljb2RlX21hcCwgJmxlbm92b19rZXljb2RlX21hcCwKKwkJCVRQQUNQSV9IT1RLRVlfTUFQX1NJWkUpOworCX0gZWxzZSB7CisJCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAorCQkJICAgInVzaW5nIElCTSBkZWZhdWx0IGhvdCBrZXkgbWFwXG4iKTsKKwkJbWVtY3B5KGhvdGtleV9rZXljb2RlX21hcCwgJmlibV9rZXljb2RlX21hcCwKKwkJCVRQQUNQSV9IT1RLRVlfTUFQX1NJWkUpOworCX0KKworCXNldF9iaXQoRVZfS0VZLCB0cGFjcGlfaW5wdXRkZXYtPmV2Yml0KTsKKwlzZXRfYml0KEVWX01TQywgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7CisJc2V0X2JpdChNU0NfU0NBTiwgdHBhY3BpX2lucHV0ZGV2LT5tc2NiaXQpOworCXRwYWNwaV9pbnB1dGRldi0+a2V5Y29kZXNpemUgPSBUUEFDUElfSE9US0VZX01BUF9UWVBFU0laRTsKKwl0cGFjcGlfaW5wdXRkZXYtPmtleWNvZGVtYXggPSBUUEFDUElfSE9US0VZX01BUF9MRU47CisJdHBhY3BpX2lucHV0ZGV2LT5rZXljb2RlID0gaG90a2V5X2tleWNvZGVfbWFwOworCWZvciAoaSA9IDA7IGkgPCBUUEFDUElfSE9US0VZX01BUF9MRU47IGkrKykgeworCQlpZiAoaG90a2V5X2tleWNvZGVfbWFwW2ldICE9IEtFWV9SRVNFUlZFRCkgeworCQkJc2V0X2JpdChob3RrZXlfa2V5Y29kZV9tYXBbaV0sCisJCQkJdHBhY3BpX2lucHV0ZGV2LT5rZXliaXQpOwogCQl9IGVsc2UgewotCQkJZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsCi0JCQkJICAgInVzaW5nIElCTSBkZWZhdWx0IGhvdCBrZXkgbWFwXG4iKTsKLQkJCW1lbWNweShob3RrZXlfa2V5Y29kZV9tYXAsICZpYm1fa2V5Y29kZV9tYXAsCi0JCQkJVFBBQ1BJX0hPVEtFWV9NQVBfU0laRSk7CisJCQlpZiAoaSA8IHNpemVvZihob3RrZXlfcmVzZXJ2ZWRfbWFzaykqOCkKKwkJCQlob3RrZXlfcmVzZXJ2ZWRfbWFzayB8PSAxIDw8IGk7CiAJCX0KLQotCQlzZXRfYml0KEVWX0tFWSwgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7Ci0JCXNldF9iaXQoRVZfTVNDLCB0cGFjcGlfaW5wdXRkZXYtPmV2Yml0KTsKLQkJc2V0X2JpdChNU0NfU0NBTiwgdHBhY3BpX2lucHV0ZGV2LT5tc2NiaXQpOwotCQl0cGFjcGlfaW5wdXRkZXYtPmtleWNvZGVzaXplID0gVFBBQ1BJX0hPVEtFWV9NQVBfVFlQRVNJWkU7Ci0JCXRwYWNwaV9pbnB1dGRldi0+a2V5Y29kZW1heCA9IFRQQUNQSV9IT1RLRVlfTUFQX0xFTjsKLQkJdHBhY3BpX2lucHV0ZGV2LT5rZXljb2RlID0gaG90a2V5X2tleWNvZGVfbWFwOwotCQlmb3IgKGkgPSAwOyBpIDwgVFBBQ1BJX0hPVEtFWV9NQVBfTEVOOyBpKyspIHsKLQkJCWlmIChob3RrZXlfa2V5Y29kZV9tYXBbaV0gIT0gS0VZX1JFU0VSVkVEKSB7Ci0JCQkJc2V0X2JpdChob3RrZXlfa2V5Y29kZV9tYXBbaV0sCi0JCQkJCXRwYWNwaV9pbnB1dGRldi0+a2V5Yml0KTsKLQkJCX0gZWxzZSB7Ci0JCQkJaWYgKGkgPCBzaXplb2YoaG90a2V5X3Jlc2VydmVkX21hc2spKjgpCi0JCQkJCWhvdGtleV9yZXNlcnZlZF9tYXNrIHw9IDEgPDwgaTsKLQkJCX0KLQkJfQotCi0JCWlmICh0cF9mZWF0dXJlcy5ob3RrZXlfd2xzdykgewotCQkJc2V0X2JpdChFVl9TVywgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7Ci0JCQlzZXRfYml0KFNXX1JBRElPLCB0cGFjcGlfaW5wdXRkZXYtPnN3Yml0KTsKLQkJfQotCQlpZiAodHBfZmVhdHVyZXMuaG90a2V5X3RhYmxldCkgewotCQkJc2V0X2JpdChFVl9TVywgdHBhY3BpX2lucHV0ZGV2LT5ldmJpdCk7Ci0JCQlzZXRfYml0KFNXX1RBQkxFVF9NT0RFLCB0cGFjcGlfaW5wdXRkZXYtPnN3Yml0KTsKLQkJfQotCi0JCS8qIERvIG5vdCBpc3N1ZSBkdXBsaWNhdGUgYnJpZ2h0bmVzcyBjaGFuZ2UgZXZlbnRzIHRvCi0JCSAqIHVzZXJzcGFjZSAqLwotCQlpZiAoIXRwX2ZlYXR1cmVzLmJyaWdodF9hY3BpbW9kZSkKLQkJCS8qIHVwZGF0ZSBicmlnaHRfYWNwaW1vZGUuLi4gKi8KLQkJCXRwYWNwaV9jaGVja19zdGRfYWNwaV9icmlnaHRuZXNzX3N1cHBvcnQoKTsKLQotCQlpZiAodHBfZmVhdHVyZXMuYnJpZ2h0X2FjcGltb2RlKSB7Ci0JCQlwcmludGsoVFBBQ1BJX0lORk8KLQkJCSAgICAgICAiVGhpcyBUaGlua1BhZCBoYXMgc3RhbmRhcmQgQUNQSSBiYWNrbGlnaHQgIgotCQkJICAgICAgICJicmlnaHRuZXNzIGNvbnRyb2wsIHN1cHBvcnRlZCBieSB0aGUgQUNQSSAiCi0JCQkgICAgICAgInZpZGVvIGRyaXZlclxuIik7Ci0JCQlwcmludGsoVFBBQ1BJX05PVElDRQotCQkJICAgICAgICJEaXNhYmxpbmcgdGhpbmtwYWQtYWNwaSBicmlnaHRuZXNzIGV2ZW50cyAiCi0JCQkgICAgICAgImJ5IGRlZmF1bHQuLi5cbiIpOwotCi0JCQkvKiBUaGUgaG90a2V5X3Jlc2VydmVkX21hc2sgY2hhbmdlIGJlbG93IGlzIG5vdAotCQkJICogbmVjZXNzYXJ5IHdoaWxlIHRoZSBrZXlzIGFyZSBhdCBLRVlfUkVTRVJWRUQgaW4gdGhlCi0JCQkgKiBkZWZhdWx0IG1hcCwgYnV0IGJldHRlciBzYWZlIHRoYW4gc29ycnksIGxlYXZlIGl0Ci0JCQkgKiBoZXJlIGFzIGEgbWFya2VyIG9mIHdoYXQgd2UgaGF2ZSB0byBkbywgZXNwZWNpYWxseQotCQkJICogd2hlbiB3ZSBmaW5hbGx5IGJlY29tZSBhYmxlIHRvIHNldCB0aGlzIGF0IHJ1bnRpbWUKLQkJCSAqIG9uIHJlc3BvbnNlIHRvIFgub3JnIHJlcXVlc3RzICovCi0JCQlob3RrZXlfcmVzZXJ2ZWRfbWFzayB8PQotCQkJCSgxIDw8IFRQX0FDUElfSE9US0VZU0NBTl9GTkhPTUUpCi0JCQkJfCAoMSA8PCBUUF9BQ1BJX0hPVEtFWVNDQU5fRk5FTkQpOwotCQl9Ci0KLQkJZGJnX3ByaW50ayhUUEFDUElfREJHX0lOSVQsCi0JCQkJImVuYWJsaW5nIGhvdCBrZXkgaGFuZGxpbmdcbiIpOwotCQlyZXMgPSBob3RrZXlfc3RhdHVzX3NldCgxKTsKLQkJaWYgKHJlcykKLQkJCXJldHVybiByZXM7Ci0JCXJlcyA9IGhvdGtleV9tYXNrX3NldCgoKGhvdGtleV9hbGxfbWFzayB8IGhvdGtleV9zb3VyY2VfbWFzaykKLQkJCQkJJiB+aG90a2V5X3Jlc2VydmVkX21hc2spCi0JCQkJCXwgaG90a2V5X29yaWdfbWFzayk7Ci0JCWlmIChyZXMgPCAwICYmIHJlcyAhPSAtRU5YSU8pCi0JCQlyZXR1cm4gcmVzOwotCi0JCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAotCQkJCSJsZWdhY3kgaG90IGtleSByZXBvcnRpbmcgb3ZlciBwcm9jZnMgJXNcbiIsCi0JCQkJKGhvdGtleV9yZXBvcnRfbW9kZSA8IDIpID8KLQkJCQkJImVuYWJsZWQiIDogImRpc2FibGVkIik7Ci0KLQkJdHBhY3BpX2lucHV0ZGV2LT5vcGVuID0gJmhvdGtleV9pbnB1dGRldl9vcGVuOwotCQl0cGFjcGlfaW5wdXRkZXYtPmNsb3NlID0gJmhvdGtleV9pbnB1dGRldl9jbG9zZTsKLQotCQlob3RrZXlfcG9sbF9zZXR1cF9zYWZlKDEpOwotCQl0cGFjcGlfaW5wdXRfc2VuZF9yYWRpb3N3KCk7Ci0JCXRwYWNwaV9pbnB1dF9zZW5kX3RhYmxldHN3KCk7CiAJfQogCi0JcmV0dXJuICh0cF9mZWF0dXJlcy5ob3RrZXkpPyAwIDogMTsKLX0KLQotc3RhdGljIHZvaWQgaG90a2V5X2V4aXQodm9pZCkKLXsKLSNpZmRlZiBDT05GSUdfVEhJTktQQURfQUNQSV9IT1RLRVlfUE9MTAotCWhvdGtleV9wb2xsX3N0b3Bfc3luYygpOwotI2VuZGlmCi0KLQlpZiAodHBfZmVhdHVyZXMuaG90a2V5KSB7Ci0JCWRiZ19wcmludGsoVFBBQ1BJX0RCR19FWElULAotCQkJICAgInJlc3RvcmluZyBvcmlnaW5hbCBob3Qga2V5IG1hc2tcbiIpOwotCQkvKiBubyBzaG9ydC1jaXJjdWl0IGJvb2xlYW4gb3BlcmF0b3IgYmVsb3chICovCi0JCWlmICgoaG90a2V5X21hc2tfc2V0KGhvdGtleV9vcmlnX21hc2spIHwKLQkJICAgICBob3RrZXlfc3RhdHVzX3NldChob3RrZXlfb3JpZ19zdGF0dXMpKSAhPSAwKQotCQkJcHJpbnRrKFRQQUNQSV9FUlIKLQkJCSAgICAgICAiZmFpbGVkIHRvIHJlc3RvcmUgaG90IGtleSBtYXNrICIKLQkJCSAgICAgICAidG8gQklPUyBkZWZhdWx0c1xuIik7CisJaWYgKHRwX2ZlYXR1cmVzLmhvdGtleV93bHN3KSB7CisJCXNldF9iaXQoRVZfU1csIHRwYWNwaV9pbnB1dGRldi0+ZXZiaXQpOworCQlzZXRfYml0KFNXX1JGS0lMTF9BTEwsIHRwYWNwaV9pbnB1dGRldi0+c3diaXQpOworCX0KKwlpZiAodHBfZmVhdHVyZXMuaG90a2V5X3RhYmxldCkgeworCQlzZXRfYml0KEVWX1NXLCB0cGFjcGlfaW5wdXRkZXYtPmV2Yml0KTsKKwkJc2V0X2JpdChTV19UQUJMRVRfTU9ERSwgdHBhY3BpX2lucHV0ZGV2LT5zd2JpdCk7CiAJfQogCi0JaWYgKGhvdGtleV9kZXZfYXR0cmlidXRlcykgewotCQlkZWxldGVfYXR0cl9zZXQoaG90a2V5X2Rldl9hdHRyaWJ1dGVzLCAmdHBhY3BpX3BkZXYtPmRldi5rb2JqKTsKLQkJaG90a2V5X2Rldl9hdHRyaWJ1dGVzID0gTlVMTDsKKwkvKiBEbyBub3QgaXNzdWUgZHVwbGljYXRlIGJyaWdodG5lc3MgY2hhbmdlIGV2ZW50cyB0bworCSAqIHVzZXJzcGFjZSAqLworCWlmICghdHBfZmVhdHVyZXMuYnJpZ2h0X2FjcGltb2RlKQorCQkvKiB1cGRhdGUgYnJpZ2h0X2FjcGltb2RlLi4uICovCisJCXRwYWNwaV9jaGVja19zdGRfYWNwaV9icmlnaHRuZXNzX3N1cHBvcnQoKTsKKworCWlmICh0cF9mZWF0dXJlcy5icmlnaHRfYWNwaW1vZGUpIHsKKwkJcHJpbnRrKFRQQUNQSV9JTkZPCisJCSAgICAgICAiVGhpcyBUaGlua1BhZCBoYXMgc3RhbmRhcmQgQUNQSSBiYWNrbGlnaHQgIgorCQkgICAgICAgImJyaWdodG5lc3MgY29udHJvbCwgc3VwcG9ydGVkIGJ5IHRoZSBBQ1BJICIKKwkJICAgICAgICJ2aWRlbyBkcml2ZXJcbiIpOworCQlwcmludGsoVFBBQ1BJX05PVElDRQorCQkgICAgICAgIkRpc2FibGluZyB0aGlua3BhZC1hY3BpIGJyaWdodG5lc3MgZXZlbnRzICIKKwkJICAgICAgICJieSBkZWZhdWx0Li4uXG4iKTsKKworCQkvKiBUaGUgaG90a2V5X3Jlc2VydmVkX21hc2sgY2hhbmdlIGJlbG93IGlzIG5vdAorCQkgKiBuZWNlc3Nhcnkgd2hpbGUgdGhlIGtleXMgYXJlIGF0IEtFWV9SRVNFUlZFRCBpbiB0aGUKKwkJICogZGVmYXVsdCBtYXAsIGJ1dCBiZXR0ZXIgc2FmZSB0aGFuIHNvcnJ5LCBsZWF2ZSBpdAorCQkgKiBoZXJlIGFzIGEgbWFya2VyIG9mIHdoYXQgd2UgaGF2ZSB0byBkbywgZXNwZWNpYWxseQorCQkgKiB3aGVuIHdlIGZpbmFsbHkgYmVjb21lIGFibGUgdG8gc2V0IHRoaXMgYXQgcnVudGltZQorCQkgKiBvbiByZXNwb25zZSB0byBYLm9yZyByZXF1ZXN0cyAqLworCQlob3RrZXlfcmVzZXJ2ZWRfbWFzayB8PQorCQkJKDEgPDwgVFBfQUNQSV9IT1RLRVlTQ0FOX0ZOSE9NRSkKKwkJCXwgKDEgPDwgVFBfQUNQSV9IT1RLRVlTQ0FOX0ZORU5EKTsKIAl9CisKKwlkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImVuYWJsaW5nIGhvdCBrZXkgaGFuZGxpbmdcbiIpOworCXJlcyA9IGhvdGtleV9zdGF0dXNfc2V0KDEpOworCWlmIChyZXMpIHsKKwkJaG90a2V5X2V4aXQoKTsKKwkJcmV0dXJuIHJlczsKKwl9CisJcmVzID0gaG90a2V5X21hc2tfc2V0KCgoaG90a2V5X2FsbF9tYXNrIHwgaG90a2V5X3NvdXJjZV9tYXNrKQorCQkJCSYgfmhvdGtleV9yZXNlcnZlZF9tYXNrKQorCQkJCXwgaG90a2V5X29yaWdfbWFzayk7CisJaWYgKHJlcyA8IDAgJiYgcmVzICE9IC1FTlhJTykgeworCQlob3RrZXlfZXhpdCgpOworCQlyZXR1cm4gcmVzOworCX0KKworCWRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULAorCQkJImxlZ2FjeSBob3Qga2V5IHJlcG9ydGluZyBvdmVyIHByb2NmcyAlc1xuIiwKKwkJCShob3RrZXlfcmVwb3J0X21vZGUgPCAyKSA/CisJCQkJImVuYWJsZWQiIDogImRpc2FibGVkIik7CisKKwl0cGFjcGlfaW5wdXRkZXYtPm9wZW4gPSAmaG90a2V5X2lucHV0ZGV2X29wZW47CisJdHBhY3BpX2lucHV0ZGV2LT5jbG9zZSA9ICZob3RrZXlfaW5wdXRkZXZfY2xvc2U7CisKKwlob3RrZXlfcG9sbF9zZXR1cF9zYWZlKDEpOworCXRwYWNwaV9pbnB1dF9zZW5kX3JhZGlvc3coKTsKKwl0cGFjcGlfaW5wdXRfc2VuZF90YWJsZXRzdygpOworCisJcmV0dXJuIDA7CisKK2Vycl9leGl0OgorCWRlbGV0ZV9hdHRyX3NldChob3RrZXlfZGV2X2F0dHJpYnV0ZXMsICZ0cGFjcGlfcGRldi0+ZGV2LmtvYmopOworCWhvdGtleV9kZXZfYXR0cmlidXRlcyA9IE5VTEw7CisKKwlyZXR1cm4gKHJlcyA8IDApPyByZXMgOiAxOwogfQogCiBzdGF0aWMgdm9pZCBob3RrZXlfbm90aWZ5KHN0cnVjdCBpYm1fc3RydWN0ICppYm0sIHUzMiBldmVudCkKQEAgLTMzMTksNyArMzMzNiw3IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGxpZ2h0X2luaXQoc3RydWN0IGlibV9pbml0X3N0cnVjdCAqaWlibSkKIHsKLQlpbnQgcmMgPSAwOworCWludCByYzsKIAogCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImluaXRpYWxpemluZyBsaWdodCBzdWJkcml2ZXJcbiIpOwogCkBAIC0zMzM3LDIwICszMzU0LDIzIEBACiAJCXRwX2ZlYXR1cmVzLmxpZ2h0X3N0YXR1cyA9CiAJCQlhY3BpX2V2YWxmKGVjX2hhbmRsZSwgTlVMTCwgIktCTFQiLCAicXYiKTsKIAotCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfSU5JVCwgImxpZ2h0IGlzICVzXG4iLAotCQlzdHJfc3VwcG9ydGVkKHRwX2ZlYXR1cmVzLmxpZ2h0KSk7CisJdmRiZ19wcmludGsoVFBBQ1BJX0RCR19JTklULCAibGlnaHQgaXMgJXMsIGxpZ2h0IHN0YXR1cyBpcyAlc1xuIiwKKwkJc3RyX3N1cHBvcnRlZCh0cF9mZWF0dXJlcy5saWdodCksCisJCXN0cl9zdXBwb3J0ZWQodHBfZmVhdHVyZXMubGlnaHRfc3RhdHVzKSk7CiAKLQlpZiAodHBfZmVhdHVyZXMubGlnaHQpIHsKLQkJcmMgPSBsZWRfY2xhc3NkZXZfcmVnaXN0ZXIoJnRwYWNwaV9wZGV2LT5kZXYsCi0JCQkJCSAgICZ0cGFjcGlfbGVkX3RoaW5rbGlnaHQubGVkX2NsYXNzZGV2KTsKLQl9CisJaWYgKCF0cF9mZWF0dXJlcy5saWdodCkKKwkJcmV0dXJuIDE7CisKKwlyYyA9IGxlZF9jbGFzc2Rldl9yZWdpc3RlcigmdHBhY3BpX3BkZXYtPmRldiwKKwkJCQkgICAmdHBhY3BpX2xlZF90aGlua2xpZ2h0LmxlZF9jbGFzc2Rldik7CiAKIAlpZiAocmMgPCAwKSB7CiAJCXRwX2ZlYXR1cmVzLmxpZ2h0ID0gMDsKIAkJdHBfZmVhdHVyZXMubGlnaHRfc3RhdHVzID0gMDsKLQl9IGVsc2UgewotCQlyYyA9ICh0cF9mZWF0dXJlcy5saWdodCk/IDAgOiAxOworCX0gZWxzZSAgeworCQlyYyA9IDA7CiAJfQorCiAJcmV0dXJuIHJjOwogfQogCkBAIC0zODIxLDcgKzM4NDEsNyBAQAogI2RlZmluZSBUUEFDUElfTEVEX05VTUxFRFMgOAogc3RhdGljIHN0cnVjdCB0cGFjcGlfbGVkX2NsYXNzZGV2ICp0cGFjcGlfbGVkczsKIHN0YXRpYyBlbnVtIGxlZF9zdGF0dXNfdCB0cGFjcGlfbGVkX3N0YXRlX2NhY2hlW1RQQUNQSV9MRURfTlVNTEVEU107Ci1zdGF0aWMgY29uc3QgY2hhciBjb25zdCAqdHBhY3BpX2xlZF9uYW1lc1tUUEFDUElfTEVEX05VTUxFRFNdID0geworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0cGFjcGlfbGVkX25hbWVzW1RQQUNQSV9MRURfTlVNTEVEU10gPSB7CiAJLyogdGhlcmUncyBhIGxpbWl0IG9mIDE5IGNoYXJzICsgTlVMTCBiZWZvcmUgMi42LjI2ICovCiAJInRwYWNwaTo6cG93ZXIiLAogCSJ0cGFjcGk6b3JhbmdlOmJhdHQiLApAQCAtMzgzMyw3ICszODUzLDcgQEAKIAkidHBhY3BpOjpzdGFuZGJ5IiwKIH07CiAKLXN0YXRpYyBpbnQgbGVkX2dldF9zdGF0dXModW5zaWduZWQgaW50IGxlZCkKK3N0YXRpYyBpbnQgbGVkX2dldF9zdGF0dXMoY29uc3QgdW5zaWduZWQgaW50IGxlZCkKIHsKIAlpbnQgc3RhdHVzOwogCWVudW0gbGVkX3N0YXR1c190IGxlZF9zOwpAQCAtMzg1Nyw0MSArMzg3Nyw0MiBAQAogCS8qIG5vdCByZWFjaGVkICovCiB9CiAKLXN0YXRpYyBpbnQgbGVkX3NldF9zdGF0dXModW5zaWduZWQgaW50IGxlZCwgZW51bSBsZWRfc3RhdHVzX3QgbGVkc3RhdHVzKQorc3RhdGljIGludCBsZWRfc2V0X3N0YXR1cyhjb25zdCB1bnNpZ25lZCBpbnQgbGVkLAorCQkJICBjb25zdCBlbnVtIGxlZF9zdGF0dXNfdCBsZWRzdGF0dXMpCiB7CiAJLyogb2ZmLCBvbiwgYmxpbmsuIEluZGV4IGlzIGxlZF9zdGF0dXNfdCAqLwotCXN0YXRpYyBjb25zdCBpbnQgY29uc3QgbGVkX3NsZWRfYXJnMVtdID0geyAwLCAxLCAzIH07Ci0Jc3RhdGljIGNvbnN0IGludCBjb25zdCBsZWRfZXhwX2hsYmxbXSA9IHsgMCwgMCwgMSB9OwkvKiBsZWQjICogKi8KLQlzdGF0aWMgY29uc3QgaW50IGNvbnN0IGxlZF9leHBfaGxjbFtdID0geyAwLCAxLCAxIH07CS8qIGxlZCMgKiAqLwotCXN0YXRpYyBjb25zdCBpbnQgY29uc3QgbGVkX2xlZF9hcmcxW10gPSB7IDAsIDB4ODAsIDB4YzAgfTsKKwlzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGxlZF9zbGVkX2FyZzFbXSA9IHsgMCwgMSwgMyB9OworCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbGVkX2xlZF9hcmcxW10gPSB7IDAsIDB4ODAsIDB4YzAgfTsKIAogCWludCByYyA9IDA7CiAKIAlzd2l0Y2ggKGxlZF9zdXBwb3J0ZWQpIHsKIAljYXNlIFRQQUNQSV9MRURfNTcwOgotCQkJLyogNTcwICovCi0JCQlsZWQgPSAxIDw8IGxlZDsKLQkJCWlmICghYWNwaV9ldmFsZihsZWRfaGFuZGxlLCBOVUxMLCBOVUxMLCAidmRkIiwKLQkJCQkJbGVkLCBsZWRfc2xlZF9hcmcxW2xlZHN0YXR1c10pKQotCQkJCXJjID0gLUVJTzsKLQkJCWJyZWFrOworCQkvKiA1NzAgKi8KKwkJaWYgKGxlZCA+IDcpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJaWYgKCFhY3BpX2V2YWxmKGxlZF9oYW5kbGUsIE5VTEwsIE5VTEwsICJ2ZGQiLAorCQkJCSgxIDw8IGxlZCksIGxlZF9zbGVkX2FyZzFbbGVkc3RhdHVzXSkpCisJCQlyYyA9IC1FSU87CisJCWJyZWFrOwogCWNhc2UgVFBBQ1BJX0xFRF9PTEQ6Ci0JCQkvKiA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwgVDIwLTIyLCBYMjAgKi8KLQkJCWxlZCA9IDEgPDwgbGVkOwotCQkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMTVMsIGxlZCk7Ci0JCQlpZiAocmMgPj0gMCkKLQkJCQlyYyA9IGVjX3dyaXRlKFRQQUNQSV9MRURfRUNfSExCTCwKLQkJCQkJICAgICAgbGVkICogbGVkX2V4cF9obGJsW2xlZHN0YXR1c10pOwotCQkJaWYgKHJjID49IDApCi0JCQkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMQ0wsCi0JCQkJCSAgICAgIGxlZCAqIGxlZF9leHBfaGxjbFtsZWRzdGF0dXNdKTsKLQkJCWJyZWFrOworCQkvKiA2MDBlL3gsIDc3MGUsIDc3MHgsIEEyMWUsIEEyeG0vcCwgVDIwLTIyLCBYMjAgKi8KKwkJaWYgKGxlZCA+IDcpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJcmMgPSBlY193cml0ZShUUEFDUElfTEVEX0VDX0hMTVMsICgxIDw8IGxlZCkpOworCQlpZiAocmMgPj0gMCkKKwkJCXJjID0gZWNfd3JpdGUoVFBBQ1BJX0xFRF9FQ19ITEJMLAorCQkJCSAgICAgIChsZWRzdGF0dXMgPT0gVFBBQ1BJX0xFRF9CTElOSykgPDwgbGVkKTsKKwkJaWYgKHJjID49IDApCisJCQlyYyA9IGVjX3dyaXRlKFRQQUNQSV9MRURfRUNfSExDTCwKKwkJCQkgICAgICAobGVkc3RhdHVzICE9IFRQQUNQSV9MRURfT0ZGKSA8PCBsZWQpOworCQlicmVhazsKIAljYXNlIFRQQUNQSV9MRURfTkVXOgotCQkJLyogYWxsIG90aGVycyAqLwotCQkJaWYgKCFhY3BpX2V2YWxmKGxlZF9oYW5kbGUsIE5VTEwsIE5VTEwsICJ2ZGQiLAotCQkJCQlsZWQsIGxlZF9sZWRfYXJnMVtsZWRzdGF0dXNdKSkKLQkJCQlyYyA9IC1FSU87Ci0JCQlicmVhazsKKwkJLyogYWxsIG90aGVycyAqLworCQlpZiAoIWFjcGlfZXZhbGYobGVkX2hhbmRsZSwgTlVMTCwgTlVMTCwgInZkZCIsCisJCQkJbGVkLCBsZWRfbGVkX2FyZzFbbGVkc3RhdHVzXSkpCisJCQlyYyA9IC1FSU87CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJjID0gLUVOWElPOwogCX0KQEAgLTM5NzgsNyArMzk5OSw2IEBACiAJfQogCiAJa2ZyZWUodHBhY3BpX2xlZHMpOwotCXRwYWNwaV9sZWRzID0gTlVMTDsKIH0KIAogc3RhdGljIGludCBfX2luaXQgbGVkX2luaXQoc3RydWN0IGlibV9pbml0X3N0cnVjdCAqaWlibSkKQEAgLTQ4MDIsNyArNDgyMiw2IEBACiAJCXZkYmdfcHJpbnRrKFRQQUNQSV9EQkdfRVhJVCwKIAkJCSAgICAiY2FsbGluZyBiYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoKVxuIik7CiAJCWJhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3RlcihpYm1fYmFja2xpZ2h0X2RldmljZSk7Ci0JCWlibV9iYWNrbGlnaHRfZGV2aWNlID0gTlVMTDsKIAl9CiB9CiAKQEAgLTU3NjQsMTEgKzU3ODMsMTYgQEAKIAkgICAgZmFuX2NvbnRyb2xfYWNjZXNzX21vZGUgIT0gVFBBQ1BJX0ZBTl9XUl9OT05FKSB7CiAJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZ0cGFjcGlfc2Vuc29yc19wZGV2LT5kZXYua29iaiwKIAkJCQkJICZmYW5fYXR0cl9ncm91cCk7Ci0JCWlmICghKHJjIDwgMCkpCi0JCQlyYyA9IGRyaXZlcl9jcmVhdGVfZmlsZSgmdHBhY3BpX2h3bW9uX3Bkcml2ZXIuZHJpdmVyLAotCQkJCQkmZHJpdmVyX2F0dHJfZmFuX3dhdGNoZG9nKTsKIAkJaWYgKHJjIDwgMCkKIAkJCXJldHVybiByYzsKKworCQlyYyA9IGRyaXZlcl9jcmVhdGVfZmlsZSgmdHBhY3BpX2h3bW9uX3Bkcml2ZXIuZHJpdmVyLAorCQkJCQkmZHJpdmVyX2F0dHJfZmFuX3dhdGNoZG9nKTsKKwkJaWYgKHJjIDwgMCkgeworCQkJc3lzZnNfcmVtb3ZlX2dyb3VwKCZ0cGFjcGlfc2Vuc29yc19wZGV2LT5kZXYua29iaiwKKwkJCQkJJmZhbl9hdHRyX2dyb3VwKTsKKwkJCXJldHVybiByYzsKKwkJfQogCQlyZXR1cm4gMDsKIAl9IGVsc2UKIAkJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9jYXJkL2Jsb2NrLmMgYi9kcml2ZXJzL21tYy9jYXJkL2Jsb2NrLmMKaW5kZXggOTFkZWQzZS4uZjlhZDk2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvY2FyZC9ibG9jay5jCisrKyBiL2RyaXZlcnMvbW1jL2NhcmQvYmxvY2suYwpAQCAtNDYsNyArNDYsNyBAQAogI2RlZmluZSBNTUNfU0hJRlQJMwogI2RlZmluZSBNTUNfTlVNX01JTk9SUwkoMjU2ID4+IE1NQ19TSElGVCkKIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZGV2X3VzZVtNTUNfTlVNX01JTk9SUy8oOCpzaXplb2YodW5zaWduZWQgbG9uZykpXTsKK3N0YXRpYyBERUNMQVJFX0JJVE1BUChkZXZfdXNlLCBNTUNfTlVNX01JTk9SUyk7CiAKIC8qCiAgKiBUaGVyZSBpcyBvbmUgbW1jX2Jsa19kYXRhIHBlciBzbG90LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9pbXhtbWMuYyBiL2RyaXZlcnMvbW1jL2hvc3QvaW14bW1jLmMKaW5kZXggOTVmMzNlOC4uZWVkMjExYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9pbXhtbWMuYworKysgYi9kcml2ZXJzL21tYy9ob3N0L2lteG1tYy5jCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSA8bGludXgvbW1jL2hvc3QuaD4KICNpbmNsdWRlIDxsaW51eC9tbWMvY2FyZC5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC05Miw2ICs5Myw4IEBACiAJdW5zaWduZWQgY2hhcgkJYWN0dWFsX2J1c193aWR0aDsKIAogCWludAkJCXByZXZfY21kX2NvZGU7CisKKwlzdHJ1Y3QgY2xrCQkqY2xrOwogfTsKIAogI2RlZmluZSBJTVhNQ0lfUEVORF9JUlFfYgkwCkBAIC04NDEsNyArODQ0LDcgQEAKIAkJLyogVGhlIHByZXNjYWxlciBpcyA1IGZvciBQRVJDTEsyIGVxdWFsIHRvIDk2TUh6CiAJCSAqIHRoZW4gOTZNSHogLyA1ID0gMTkuMiBNSHoKIAkJICovCi0JCWNsaz1pbXhfZ2V0X3BlcmNsazIoKTsKKwkJY2xrID0gY2xrX2dldF9yYXRlKGhvc3QtPmNsayk7CiAJCXByZXNjYWxlcj0oY2xrKyhDTEtfUkFURSo3KS84KS9DTEtfUkFURTsKIAkJc3dpdGNoKHByZXNjYWxlcikgewogCQljYXNlIDA6CkBAIC05OTQsNiArOTk3LDEzIEBACiAJaG9zdC0+cmVzID0gcjsKIAlob3N0LT5pcnEgPSBpcnE7CiAKKwlob3N0LT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwZXJjbGsyIik7CisJaWYgKElTX0VSUihob3N0LT5jbGspKSB7CisJCXJldCA9IFBUUl9FUlIoaG9zdC0+Y2xrKTsKKwkJZ290byBvdXQ7CisJfQorCWNsa19lbmFibGUoaG9zdC0+Y2xrKTsKKwogCWlteF9ncGlvX21vZGUoUEI4X1BGX1NEX0RBVDApOwogCWlteF9ncGlvX21vZGUoUEI5X1BGX1NEX0RBVDEpOwogCWlteF9ncGlvX21vZGUoUEIxMF9QRl9TRF9EQVQyKTsKQEAgLTEwMTcsOCArMTAyNyw4IEBACiAJaG9zdC0+aW1hc2sgPSBJTVhNQ0lfSU5UX01BU0tfREVGQVVMVDsKIAlNTUNfSU5UX01BU0sgPSBob3N0LT5pbWFzazsKIAotCi0JaWYoaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oJmhvc3QtPmRtYSwgRFJJVkVSX05BTUUsIERNQV9QUklPX0xPVyk8MCl7CisJaG9zdC0+ZG1hID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oRFJJVkVSX05BTUUsIERNQV9QUklPX0xPVyk7CisJaWYoaG9zdC0+ZG1hIDwgMCkgewogCQlkZXZfZXJyKG1tY19kZXYoaG9zdC0+bW1jKSwgImlteF9kbWFfcmVxdWVzdF9ieV9wcmlvIGZhaWxlZFxuIik7CiAJCXJldCA9IC1FQlVTWTsKIAkJZ290byBvdXQ7CkBAIC0xMDUzLDYgKzEwNjMsMTAgQEAKIAkJCWlteF9kbWFfZnJlZShob3N0LT5kbWEpOwogCQkJaG9zdC0+ZG1hX2FsbG9jYXRlZD0wOwogCQl9CisJCWlmIChob3N0LT5jbGspIHsKKwkJCWNsa19kaXNhYmxlKGhvc3QtPmNsayk7CisJCQljbGtfcHV0KGhvc3QtPmNsayk7CisJCX0KIAl9CiAJaWYgKG1tYykKIAkJbW1jX2ZyZWVfaG9zdChtbWMpOwpAQCAtMTA4Miw2ICsxMDk2LDkgQEAKIAogCQl0YXNrbGV0X2tpbGwoJmhvc3QtPnRhc2tsZXQpOwogCisJCWNsa19kaXNhYmxlKGhvc3QtPmNsayk7CisJCWNsa19wdXQoaG9zdC0+Y2xrKTsKKwogCQlyZWxlYXNlX3Jlc291cmNlKGhvc3QtPnJlcyk7CiAKIAkJbW1jX2ZyZWVfaG9zdChtbWMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9weGFtY2kuYyBiL2RyaXZlcnMvbW1jL2hvc3QvcHhhbWNpLmMKaW5kZXggNjUyMTBmYy4uZDg5NDc1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9weGFtY2kuYworKysgYi9kcml2ZXJzL21tYy9ob3N0L3B4YW1jaS5jCkBAIC0xMTQsNiArMTE0LDcgQEAKIAl1bnNpZ25lZCBpbnQgbm9iID0gZGF0YS0+YmxvY2tzOwogCXVuc2lnbmVkIGxvbmcgbG9uZyBjbGtzOwogCXVuc2lnbmVkIGludCB0aW1lb3V0OworCWJvb2wgZGFsZ24gPSAwOwogCXUzMiBkY21kOwogCWludCBpOwogCkBAIC0xNTIsNiArMTUzLDkgQEAKIAkJaG9zdC0+c2dfY3B1W2ldLmRjbWQgPSBkY21kIHwgbGVuZ3RoOwogCQlpZiAobGVuZ3RoICYgMzEgJiYgIShkYXRhLT5mbGFncyAmIE1NQ19EQVRBX1JFQUQpKQogCQkJaG9zdC0+c2dfY3B1W2ldLmRjbWQgfD0gRENNRF9FTkRJUlFFTjsKKwkJLyogTm90IGFsaWduZWQgdG8gOC1ieXRlIGJvdW5kYXJ5PyAqLworCQlpZiAoc2dfZG1hX2FkZHJlc3MoJmRhdGEtPnNnW2ldKSAmIDB4NykKKwkJCWRhbGduID0gMTsKIAkJaWYgKGRhdGEtPmZsYWdzICYgTU1DX0RBVEFfUkVBRCkgewogCQkJaG9zdC0+c2dfY3B1W2ldLmRzYWRyID0gaG9zdC0+cmVzLT5zdGFydCArIE1NQ19SWEZJRk87CiAJCQlob3N0LT5zZ19jcHVbaV0uZHRhZHIgPSBzZ19kbWFfYWRkcmVzcygmZGF0YS0+c2dbaV0pOwpAQCAtMTY1LDYgKzE2OSwxNSBAQAogCWhvc3QtPnNnX2NwdVtob3N0LT5kbWFfbGVuIC0gMV0uZGRhZHIgPSBEREFEUl9TVE9QOwogCXdtYigpOwogCisJLyoKKwkgKiBUaGUgUFhBMjd4IERNQSBjb250cm9sbGVyIGVuY291bnRlcnMgb3ZlcmhlYWQgd2hlbiB3b3JraW5nIHdpdGgKKwkgKiB1bmFsaWduZWQgKHRvIDgtYnl0ZSBib3VuZGFyaWVzKSBkYXRhLCBzbyBzd2l0Y2ggb24gYnl0ZSBhbGlnbm1lbnQKKwkgKiBtb2RlIG9ubHkgaWYgd2UgaGF2ZSB1bmFsaWduZWQgZGF0YS4KKwkgKi8KKwlpZiAoZGFsZ24pCisJCURBTEdOIHw9ICgxIDw8IGhvc3QtPmRtYSk7CisJZWxzZQorCQlEQUxHTiAmPSAoMSA8PCBob3N0LT5kbWEpOwogCUREQURSKGhvc3QtPmRtYSkgPSBob3N0LT5zZ19kbWE7CiAJRENTUihob3N0LT5kbWEpID0gRENTUl9SVU47CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpLmMKaW5kZXggMDdjMjA0OC4uYjQxM2FhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaS5jCisrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2RoY2kuYwpAQCAtNTUsNiArNTUsMTAgQEAKICNkZWZpbmUgU0RIQ0lfUVVJUktfMzJCSVRfRE1BX1NJWkUJCQkoMTw8NykKIC8qIENvbnRyb2xsZXIgbmVlZHMgdG8gYmUgcmVzZXQgYWZ0ZXIgZWFjaCByZXF1ZXN0IHRvIHN0YXkgc3RhYmxlICovCiAjZGVmaW5lIFNESENJX1FVSVJLX1JFU0VUX0FGVEVSX1JFUVVFU1QJCQkoMTw8OCkKKy8qIENvbnRyb2xsZXIgbmVlZHMgdm9sdGFnZSBhbmQgcG93ZXIgd3JpdGVzIHRvIGhhcHBlbiBzZXBhcmF0ZWx5ICovCisjZGVmaW5lIFNESENJX1FVSVJLX05PX1NJTVVMVF9WRERfQU5EX1BPV0VSCQkoMTw8OSkKKy8qIENvbnRyb2xsZXIgaGFzIGFuIG9mZi1ieS1vbmUgaXNzdWUgd2l0aCB0aW1lb3V0IHZhbHVlICovCisjZGVmaW5lIFNESENJX1FVSVJLX0lOQ1JfVElNRU9VVF9DT05UUk9MCQkoMTw8MTApCiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lfaWRzW10gX19kZXZpbml0ZGF0YSA9IHsKIAl7CkBAIC0xMTUsNyArMTE5LDggQEAKIAkJLnN1YnZlbmRvciAgICAgID0gUENJX0FOWV9JRCwKIAkJLnN1YmRldmljZSAgICAgID0gUENJX0FOWV9JRCwKIAkJLmRyaXZlcl9kYXRhICAgID0gU0RIQ0lfUVVJUktfU0lOR0xFX1BPV0VSX1dSSVRFIHwKLQkJCQkgIFNESENJX1FVSVJLX1JFU0VUX0NNRF9EQVRBX09OX0lPUywKKwkJCQkgIFNESENJX1FVSVJLX1JFU0VUX0NNRF9EQVRBX09OX0lPUyB8CisJCQkJICBTREhDSV9RVUlSS19CUk9LRU5fRE1BLAogCX0sCiAKIAl7CkBAIC0xMjQsNyArMTI5LDE3IEBACiAJCS5zdWJ2ZW5kb3IgICAgICA9IFBDSV9BTllfSUQsCiAJCS5zdWJkZXZpY2UgICAgICA9IFBDSV9BTllfSUQsCiAJCS5kcml2ZXJfZGF0YSAgICA9IFNESENJX1FVSVJLX1NJTkdMRV9QT1dFUl9XUklURSB8Ci0JCQkJICBTREhDSV9RVUlSS19SRVNFVF9DTURfREFUQV9PTl9JT1MsCisJCQkJICBTREhDSV9RVUlSS19SRVNFVF9DTURfREFUQV9PTl9JT1MgfAorCQkJCSAgU0RIQ0lfUVVJUktfQlJPS0VOX0RNQSwKKwl9LAorCisJeworCQkudmVuZG9yICAgICAgICAgPSBQQ0lfVkVORE9SX0lEX01BUlZFTEwsCisJCS5kZXZpY2UgICAgICAgICA9IFBDSV9ERVZJQ0VfSURfTUFSVkVMTF9DQUZFX1NELAorCQkuc3VidmVuZG9yICAgICAgPSBQQ0lfQU5ZX0lELAorCQkuc3ViZGV2aWNlICAgICAgPSBQQ0lfQU5ZX0lELAorCQkuZHJpdmVyX2RhdGEgICAgPSBTREhDSV9RVUlSS19OT19TSU1VTFRfVkREX0FORF9QT1dFUiB8CisJCQkJICBTREhDSV9RVUlSS19JTkNSX1RJTUVPVVRfQ09OVFJPTCwKIAl9LAogCiAJewpAQCAtNDY5LDYgKzQ4NCwxMyBAQAogCQkJYnJlYWs7CiAJfQogCisJLyoKKwkgKiBDb21wZW5zYXRlIGZvciBhbiBvZmYtYnktb25lIGVycm9yIGluIHRoZSBDYUZlIGhhcmR3YXJlOyBvdGhlcndpc2UsCisJICogYSB0b28tc21hbGwgY291bnQgZ2l2ZXMgdXMgaW50ZXJydXB0IHRpbWVvdXRzLgorCSAqLworCWlmICgoaG9zdC0+Y2hpcC0+cXVpcmtzICYgU0RIQ0lfUVVJUktfSU5DUl9USU1FT1VUX0NPTlRST0wpKQorCQljb3VudCsrOworCiAJaWYgKGNvdW50ID49IDB4RikgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogVG9vIGxhcmdlIHRpbWVvdXQgcmVxdWVzdGVkIVxuIiwKIAkJCW1tY19ob3N0bmFtZShob3N0LT5tbWMpKTsKQEAgLTc3NCw2ICs3OTYsMTQgQEAKIAkJQlVHKCk7CiAJfQogCisJLyoKKwkgKiBBdCBsZWFzdCB0aGUgQ2FGZSBjaGlwIGdldHMgY29uZnVzZWQgaWYgd2Ugc2V0IHRoZSB2b2x0YWdlCisJICogYW5kIHNldCB0dXJuIG9uIHBvd2VyIGF0IHRoZSBzYW1lIHRpbWUsIHNvIHNldCB0aGUgdm9sdGFnZSBmaXJzdC4KKwkgKi8KKwlpZiAoKGhvc3QtPmNoaXAtPnF1aXJrcyAmIFNESENJX1FVSVJLX05PX1NJTVVMVF9WRERfQU5EX1BPV0VSKSkKKwkJd3JpdGViKHB3ciAmIH5TREhDSV9QT1dFUl9PTiwKKwkJCQlob3N0LT5pb2FkZHIgKyBTREhDSV9QT1dFUl9DT05UUk9MKTsKKwogCXdyaXRlYihwd3IsIGhvc3QtPmlvYWRkciArIFNESENJX1BPV0VSX0NPTlRST0wpOwogCiBvdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3dic2QuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvd2JzZC5jCmluZGV4IGJlNjI0YTAuLmMzMDNlN2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3Qvd2JzZC5jCisrKyBiL2RyaXZlcnMvbW1jL2hvc3Qvd2JzZC5jCkBAIC0xNDU3LDE3ICsxNDU3LDcgQEAKIAlpbnQgcmV0OwogCiAJLyoKLQkgKiBBbGxvY2F0ZSBpbnRlcnJ1cHQuCi0JICovCi0KLQlyZXQgPSByZXF1ZXN0X2lycShpcnEsIHdic2RfaXJxLCBJUlFGX1NIQVJFRCwgRFJJVkVSX05BTUUsIGhvc3QpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlob3N0LT5pcnEgPSBpcnE7Ci0KLQkvKgotCSAqIFNldCB1cCB0YXNrbGV0cy4KKwkgKiBTZXQgdXAgdGFza2xldHMuIE11c3QgYmUgZG9uZSBiZWZvcmUgcmVxdWVzdGluZyBpbnRlcnJ1cHQuCiAJICovCiAJdGFza2xldF9pbml0KCZob3N0LT5jYXJkX3Rhc2tsZXQsIHdic2RfdGFza2xldF9jYXJkLAogCQkJKHVuc2lnbmVkIGxvbmcpaG9zdCk7CkBAIC0xNDgwLDYgKzE0NzAsMTUgQEAKIAl0YXNrbGV0X2luaXQoJmhvc3QtPmZpbmlzaF90YXNrbGV0LCB3YnNkX3Rhc2tsZXRfZmluaXNoLAogCQkJKHVuc2lnbmVkIGxvbmcpaG9zdCk7CiAKKwkvKgorCSAqIEFsbG9jYXRlIGludGVycnVwdC4KKwkgKi8KKwlyZXQgPSByZXF1ZXN0X2lycShpcnEsIHdic2RfaXJxLCBJUlFGX1NIQVJFRCwgRFJJVkVSX05BTUUsIGhvc3QpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlob3N0LT5pcnEgPSBpcnE7CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYyBiL2RyaXZlcnMvbXRkL2RldmljZXMvbTI1cDgwLmMKaW5kZXggMjVlZmQzMy4uYjQwMjI2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvZGV2aWNlcy9tMjVwODAuYworKysgYi9kcml2ZXJzL210ZC9kZXZpY2VzL20yNXA4MC5jCkBAIC0zNDYsOCArMzQ2LDEwIEBACiAJbXV0ZXhfbG9jaygmZmxhc2gtPmxvY2spOwogCiAJLyogV2FpdCB1bnRpbCBmaW5pc2hlZCBwcmV2aW91cyB3cml0ZSBjb21tYW5kLiAqLwotCWlmICh3YWl0X3RpbGxfcmVhZHkoZmxhc2gpKQorCWlmICh3YWl0X3RpbGxfcmVhZHkoZmxhc2gpKSB7CisJCW11dGV4X3VubG9jaygmZmxhc2gtPmxvY2spOwogCQlyZXR1cm4gMTsKKwl9CiAKIAl3cml0ZV9lbmFibGUoZmxhc2gpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9mdGwuYyBiL2RyaXZlcnMvbXRkL2Z0bC5jCmluZGV4IDRhNzliMTguLjVjMjk4NzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL2Z0bC5jCisrKyBiL2RyaXZlcnMvbXRkL2Z0bC5jCkBAIC0xMzAsMTAgKzEzMCw2IEBACiAgICAgdV9pbnQxNl90CQlEYXRhVW5pdHM7CiAgICAgdV9pbnQzMl90CQlCbG9ja3NQZXJVbml0OwogICAgIGVyYXNlX3VuaXRfaGVhZGVyX3QJaGVhZGVyOwotI2lmIDAKLSAgICByZWdpb25faW5mb190CXJlZ2lvbjsKLSAgICBtZW1vcnlfaGFuZGxlX3QJaGFuZGxlOwotI2VuZGlmCiB9IHBhcnRpdGlvbl90OwogCiAvKiBQYXJ0aXRpb24gc3RhdGUgZmxhZ3MgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL21hcHMvY2s4MDR4cm9tLmMgYi9kcml2ZXJzL210ZC9tYXBzL2NrODA0eHJvbS5jCmluZGV4IDU5ZDhmYjQuLmVmZmFmN2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL21hcHMvY2s4MDR4cm9tLmMKKysrIGIvZHJpdmVycy9tdGQvbWFwcy9jazgwNHhyb20uYwpAQCAtMzMxLDE1ICszMzEsMTUgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIGNrODA0eHJvbV9wY2lfdGJsW10gPSB7Ci0JeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMDUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBERVZfQ0s4MDQgfSwKLQl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAzNjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIERFVl9NQ1A1NSB9LAotCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgREVWX01DUDU1IH0sCi0JeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMzYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBERVZfTUNQNTUgfSwKLQl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAzNjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIERFVl9NQ1A1NSB9LAotCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgREVWX01DUDU1IH0sCi0JeyBQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMzY1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCBERVZfTUNQNTUgfSwKLQl7IFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAzNjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIERFVl9NQ1A1NSB9LAotCXsgUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgREVWX01DUDU1IH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAwNTEpLCAuZHJpdmVyX2RhdGEgPSBERVZfQ0s4MDQgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2MCksIC5kcml2ZXJfZGF0YSA9IERFVl9NQ1A1NSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMzYxKSwgLmRyaXZlcl9kYXRhID0gREVWX01DUDU1IH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAzNjIpLCAuZHJpdmVyX2RhdGEgPSBERVZfTUNQNTUgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2MyksIC5kcml2ZXJfZGF0YSA9IERFVl9NQ1A1NSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMzY0KSwgLmRyaXZlcl9kYXRhID0gREVWX01DUDU1IH0sCisJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTlZJRElBLCAweDAzNjUpLCAuZHJpdmVyX2RhdGEgPSBERVZfTUNQNTUgfSwKKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9OVklESUEsIDB4MDM2NiksIC5kcml2ZXJfZGF0YSA9IERFVl9NQ1A1NSB9LAorCXsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX05WSURJQSwgMHgwMzY3KSwgLmRyaXZlcl9kYXRhID0gREVWX01DUDU1IH0sCiAJeyAwLCB9CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9tYXBzL29tYXBfbm9yLmMgYi9kcml2ZXJzL210ZC9tYXBzL29tYXBfbm9yLmMKaW5kZXggMjQwYjBlMi4uNjhlZWM2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbWFwcy9vbWFwX25vci5jCisrKyBiL2RyaXZlcnMvbXRkL21hcHMvb21hcF9ub3IuYwpAQCAtNjAsMTMgKzYwLDIyIEBACiBzdGF0aWMgdm9pZCBvbWFwX3NldF92cHAoc3RydWN0IG1hcF9pbmZvICptYXAsIGludCBlbmFibGUpCiB7CiAJc3RhdGljIGludAljb3VudDsKKwl1MzIgbDsKIAotCWlmIChlbmFibGUpIHsKLQkJaWYgKGNvdW50KysgPT0gMCkKLQkJCU9NQVBfRU1JRlNfQ09ORklHX1JFRyB8PSBPTUFQX0VNSUZTX0NPTkZJR19XUDsKLQl9IGVsc2UgewotCQlpZiAoY291bnQgJiYgKC0tY291bnQgPT0gMCkpCi0JCQlPTUFQX0VNSUZTX0NPTkZJR19SRUcgJj0gfk9NQVBfRU1JRlNfQ09ORklHX1dQOworCWlmIChjcHVfY2xhc3NfaXNfb21hcDEoKSkgeworCQlpZiAoZW5hYmxlKSB7CisJCQlpZiAoY291bnQrKyA9PSAwKSB7CisJCQkJbCA9IG9tYXBfcmVhZGwoRU1JRlNfQ09ORklHKTsKKwkJCQlsIHw9IE9NQVBfRU1JRlNfQ09ORklHX1dQOworCQkJCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NPTkZJRyk7CisJCQl9CisJCX0gZWxzZSB7CisJCQlpZiAoY291bnQgJiYgKC0tY291bnQgPT0gMCkpIHsKKwkJCQlsID0gb21hcF9yZWFkbChFTUlGU19DT05GSUcpOworCQkJCWwgJj0gfk9NQVBfRU1JRlNfQ09ORklHX1dQOworCQkJCW9tYXBfd3JpdGVsKGwsIEVNSUZTX0NPTkZJRyk7CisJCQl9CisJCX0KIAl9CiB9CiAKQEAgLTExMCw3ICsxMTksNyBAQAogCWVyciA9IHBhcnNlX210ZF9wYXJ0aXRpb25zKGluZm8tPm10ZCwgcGFydF9wcm9iZXMsICZpbmZvLT5wYXJ0cywgMCk7CiAJaWYgKGVyciA+IDApCiAJCWFkZF9tdGRfcGFydGl0aW9ucyhpbmZvLT5tdGQsIGluZm8tPnBhcnRzLCBlcnIpOwotCWVsc2UgaWYgKGVyciA8IDAgJiYgcGRhdGEtPnBhcnRzKQorCWVsc2UgaWYgKGVyciA8PSAwICYmIHBkYXRhLT5wYXJ0cykKIAkJYWRkX210ZF9wYXJ0aXRpb25zKGluZm8tPm10ZCwgcGRhdGEtPnBhcnRzLCBwZGF0YS0+bnJfcGFydHMpOwogCWVsc2UKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbWFwcy9wY21jaWFtdGQuYyBiL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMKaW5kZXggMTkxMmQ5Ni4uMGNjMzE2NzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL21hcHMvcGNtY2lhbXRkLmMKKysrIGIvZHJpdmVycy9tdGQvbWFwcy9wY21jaWFtdGQuYwpAQCAtNDk4LDE3ICs0OTgsMTQgQEAKIAlpbnQgaTsKIAljb25maWdfaW5mb190IHQ7CiAJc3RhdGljIGNoYXIgKnByb2Jlc1tdID0geyAiamVkZWNfcHJvYmUiLCAiY2ZpX3Byb2JlIiB9OwotCWNpc2luZm9fdCBjaXNpbmZvOwogCWludCBuZXdfbmFtZSA9IDA7CiAKIAlERUJVRygzLCAibGluaz0weCVwIiwgbGluayk7CiAKIAlERUJVRygyLCAiVmFsaWRhdGluZyBDSVMiKTsKLQlyZXQgPSBwY21jaWFfdmFsaWRhdGVfY2lzKGxpbmssICZjaXNpbmZvKTsKKwlyZXQgPSBwY21jaWFfdmFsaWRhdGVfY2lzKGxpbmssIE5VTEwpOwogCWlmKHJldCAhPSBDU19TVUNDRVNTKSB7CiAJCWNzX2Vycm9yKGxpbmssIEdldFR1cGxlRGF0YSwgcmV0KTsKLQl9IGVsc2UgewotCQlERUJVRygyLCAiVmFsaWRhdGVDSVMgZm91bmQgJWQgY2hhaW5zIiwgY2lzaW5mby5DaGFpbnMpOwogCX0KIAogCWNhcmRfc2V0dGluZ3MoZGV2LCBsaW5rLCAmbmV3X25hbWUpOwpAQCAtNTYzLDkgKzU2MCw3IEBACiAJREVCVUcoMSwgIkFsbG9jYXRlZCBhIHdpbmRvdyBvZiAlZEtpQiIsIGRldi0+d2luX3NpemUgPj4gMTApOwogCiAJLyogR2V0IHdyaXRlIHByb3RlY3Qgc3RhdHVzICovCi0JQ1NfQ0hFQ0soR2V0U3RhdHVzLCBwY21jaWFfZ2V0X3N0YXR1cyhsaW5rLCAmc3RhdHVzKSk7Ci0JREVCVUcoMiwgInN0YXR1cyB2YWx1ZTogMHgleCB3aW5kb3cgaGFuZGxlID0gMHglOC44bHgiLAotCSAgICAgIHN0YXR1cy5DYXJkU3RhdGUsICh1bnNpZ25lZCBsb25nKWxpbmstPndpbik7CisJREVCVUcoMiwgIndpbmRvdyBoYW5kbGUgPSAweCU4LjhseCIsICh1bnNpZ25lZCBsb25nKWxpbmstPndpbik7CiAJZGV2LT53aW5fYmFzZSA9IGlvcmVtYXAocmVxLkJhc2UsIHJlcS5TaXplKTsKIAlpZighZGV2LT53aW5fYmFzZSkgewogCQllcnIoImlvcmVtYXAoJWx1LCAldSkgZmFpbGVkIiwgcmVxLkJhc2UsIHJlcS5TaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL210ZGNoYXIuYyBiL2RyaXZlcnMvbXRkL210ZGNoYXIuYwppbmRleCA1ZDNhYzUxLi4xMjlkNDI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9tdGRjaGFyLmMKKysrIGIvZHJpdmVycy9tdGQvbXRkY2hhci5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGxpbnV4L210ZC9tdGQuaD4KICNpbmNsdWRlIDxsaW51eC9tdGQvY29tcGF0bWFjLmg+CkBAIC04Niw2ICs4Nyw3IEBACiB7CiAJaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlpbnQgZGV2bnVtID0gbWlub3IgPj4gMTsKKwlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZDsKIAlzdHJ1Y3QgbXRkX2ZpbGVfaW5mbyAqbWZpOwogCkBAIC05OCwzMSArMTAwLDM5IEBACiAJaWYgKChmaWxlLT5mX21vZGUgJiAyKSAmJiAobWlub3IgJiAxKSkKIAkJcmV0dXJuIC1FQUNDRVM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW10ZCA9IGdldF9tdGRfZGV2aWNlKE5VTEwsIGRldm51bSk7CiAKLQlpZiAoSVNfRVJSKG10ZCkpCi0JCXJldHVybiBQVFJfRVJSKG10ZCk7CisJaWYgKElTX0VSUihtdGQpKSB7CisJCXJldCA9IFBUUl9FUlIobXRkKTsKKwkJZ290byBvdXQ7CisJfQogCiAJaWYgKE1URF9BQlNFTlQgPT0gbXRkLT50eXBlKSB7CiAJCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDsKIAl9CiAKIAkvKiBZb3UgY2FuJ3Qgb3BlbiBpdCBSVyBpZiBpdCdzIG5vdCBhIHdyaXRlYWJsZSBkZXZpY2UgKi8KIAlpZiAoKGZpbGUtPmZfbW9kZSAmIDIpICYmICEobXRkLT5mbGFncyAmIE1URF9XUklURUFCTEUpKSB7CiAJCXB1dF9tdGRfZGV2aWNlKG10ZCk7Ci0JCXJldHVybiAtRUFDQ0VTOworCQlyZXQgPSAtRUFDQ0VTOworCQlnb3RvIG91dDsKIAl9CiAKIAltZmkgPSBremFsbG9jKHNpemVvZigqbWZpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtZmkpIHsKIAkJcHV0X210ZF9kZXZpY2UobXRkKTsKLQkJcmV0dXJuIC1FTk9NRU07CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OwogCX0KIAltZmktPm10ZCA9IG10ZDsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBtZmk7CiAKLQlyZXR1cm4gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0gLyogbXRkX29wZW4gKi8KIAogLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCmRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL29yaW9uX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCmluZGV4IDU5ZTA1YTEuLmVlMmFjMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCisrKyBiL2RyaXZlcnMvbXRkL25hbmQvb3Jpb25fbmFuZC5jCkBAIC04NSw2ICs4NSw5IEBACiAJbmMtPmNtZF9jdHJsID0gb3Jpb25fbmFuZF9jbWRfY3RybDsKIAluYy0+ZWNjLm1vZGUgPSBOQU5EX0VDQ19TT0ZUOwogCisJaWYgKGJvYXJkLT5jaGlwX2RlbGF5KQorCQluYy0+Y2hpcF9kZWxheSA9IGJvYXJkLT5jaGlwX2RlbGF5OworCiAJaWYgKGJvYXJkLT53aWR0aCA9PSAxNikKIAkJbmMtPm9wdGlvbnMgfD0gTkFORF9CVVNXSURUSF8xNjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9weGEzeHhfbmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9weGEzeHhfbmFuZC5jCmluZGV4IGZjZWI0NjguLmZlMmJjN2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcHhhM3h4X25hbmQuYworKysgYi9kcml2ZXJzL210ZC9uYW5kL3B4YTN4eF9uYW5kLmMKQEAgLTEyMTYsNyArMTIxNiw3IEBACiAKIAljbGtfZW5hYmxlKGluZm8tPmNsayk7CiAKLQlyZXR1cm4gcHhhM3h4X25hbmRfY29uZmlnX2ZsYXNoKGluZm8pOworCXJldHVybiBweGEzeHhfbmFuZF9jb25maWdfZmxhc2goaW5mbywgaW5mby0+Zmxhc2hfaW5mbyk7CiB9CiAjZWxzZQogI2RlZmluZSBweGEzeHhfbmFuZF9zdXNwZW5kCU5VTEwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL29uZW5hbmQvZ2VuZXJpYy5jIGIvZHJpdmVycy9tdGQvb25lbmFuZC9nZW5lcmljLmMKaW5kZXggM2Q0NGQwNC4uYWQ4MWFiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvb25lbmFuZC9nZW5lcmljLmMKKysrIGIvZHJpdmVycy9tdGQvb25lbmFuZC9nZW5lcmljLmMKQEAgLTc2LDcgKzc2LDcgQEAKIAllcnIgPSBwYXJzZV9tdGRfcGFydGl0aW9ucygmaW5mby0+bXRkLCBwYXJ0X3Byb2JlcywgJmluZm8tPnBhcnRzLCAwKTsKIAlpZiAoZXJyID4gMCkKIAkJYWRkX210ZF9wYXJ0aXRpb25zKCZpbmZvLT5tdGQsIGluZm8tPnBhcnRzLCBlcnIpOwotCWVsc2UgaWYgKGVyciA8IDAgJiYgcGRhdGEtPnBhcnRzKQorCWVsc2UgaWYgKGVyciA8PSAwICYmIHBkYXRhLT5wYXJ0cykKIAkJYWRkX210ZF9wYXJ0aXRpb25zKCZpbmZvLT5tdGQsIHBkYXRhLT5wYXJ0cywgcGRhdGEtPm5yX3BhcnRzKTsKIAllbHNlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3JlZGJvb3QuYyBiL2RyaXZlcnMvbXRkL3JlZGJvb3QuYwppbmRleCA0NzQ3NDkwLi5jNTAzMGY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL210ZC9yZWRib290LmMKKysrIGIvZHJpdmVycy9tdGQvcmVkYm9vdC5jCkBAIC0yOTUsNSArMjk1LDUgQEAKIG1vZHVsZV9leGl0KHJlZGJvb3RfcGFyc2VyX2V4aXQpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQVVUSE9SKCJSZWQgSGF0LCBJbmMuIC0gRGF2aWQgV29vZGhvdXNlIDxkd213MkBjYW1icmlkZ2UucmVkaGF0LmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIkRhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiUGFyc2luZyBjb2RlIGZvciBSZWRCb290IEZsYXNoIEltYWdlIFN5c3RlbSAoRklTKSB0YWJsZXMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMgYi9kcml2ZXJzL210ZC91YmkvY2Rldi5jCmluZGV4IDlkNmFhZTUuLjg5MTkzYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS9jZGV2LmMKKysrIGIvZHJpdmVycy9tdGQvdWJpL2NkZXYuYwpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPG10ZC91YmktdXNlci5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2RpdjY0Lmg+CkBAIC0xMDMsOSArMTA0LDEyIEBACiAJc3RydWN0IHViaV92b2x1bWVfZGVzYyAqZGVzYzsKIAlpbnQgdm9sX2lkID0gaW1pbm9yKGlub2RlKSAtIDEsIG1vZGUsIHViaV9udW07CiAKKwlsb2NrX2tlcm5lbCgpOwogCXViaV9udW0gPSB1YmlfbWFqb3IybnVtKGltYWpvcihpbm9kZSkpOwotCWlmICh1YmlfbnVtIDwgMCkKKwlpZiAodWJpX251bSA8IDApIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gdWJpX251bTsKKwl9CiAKIAlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpCiAJCW1vZGUgPSBVQklfUkVBRFdSSVRFOwpAQCAtMTE1LDYgKzExOSw3IEBACiAJZGJnX21zZygib3BlbiB2b2x1bWUgJWQsIG1vZGUgJWQiLCB2b2xfaWQsIG1vZGUpOwogCiAJZGVzYyA9IHViaV9vcGVuX3ZvbHVtZSh1YmlfbnVtLCB2b2xfaWQsIG1vZGUpOworCXVubG9ja19rZXJuZWwoKTsKIAlpZiAoSVNfRVJSKGRlc2MpKQogCQlyZXR1cm4gUFRSX0VSUihkZXNjKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvM2M1MDkuYyBiL2RyaXZlcnMvbmV0LzNjNTA5LmMKaW5kZXggODdkODc5NS4uYjlkMDk3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvM2M1MDkuYworKysgYi9kcml2ZXJzL25ldC8zYzUwOS5jCkBAIC0xMDYyLDcgKzEwNjIsNiBAQAogCQkJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAogCQkJc2tiID0gZGV2X2FsbG9jX3NrYihwa3RfbGVuKzUpOwotCQkJZGV2LT5zdGF0cy5yeF9ieXRlcyArPSBwa3RfbGVuOwogCQkJaWYgKGVsM19kZWJ1ZyA+IDQpCiAJCQkJcHJpbnRrKCJSZWNlaXZpbmcgcGFja2V0IHNpemUgJWQgc3RhdHVzICU0LjR4LlxuIiwKIAkJCQkJICAgcGt0X2xlbiwgcnhfc3RhdHVzKTsKQEAgLTEwNzcsNiArMTA3Niw3IEBACiAJCQkJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYixkZXYpOwogCQkJCW5ldGlmX3J4KHNrYik7CiAJCQkJZGV2LT5sYXN0X3J4ID0gamlmZmllczsKKwkJCQlkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHBrdF9sZW47CiAJCQkJZGV2LT5zdGF0cy5yeF9wYWNrZXRzKys7CiAJCQkJY29udGludWU7CiAJCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC8zYzU5eC5jIGIvZHJpdmVycy9uZXQvM2M1OXguYwppbmRleCAyZWRkYThjLi5hYWJhZDhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC8zYzU5eC5jCisrKyBiL2RyaXZlcnMvbmV0LzNjNTl4LmMKQEAgLTE3NjgsOSArMTc2OCwxMCBAQAogCWNhc2UgWENWUl9NSUk6IGNhc2UgWENWUl9OV0FZOgogCQl7CiAJCQlvayA9IDE7Ci0JCQlzcGluX2xvY2tfYmgoJnZwLT5sb2NrKTsKKwkJCS8qIEludGVycnVwdHMgYXJlIGFscmVhZHkgZGlzYWJsZWQgKi8KKwkJCXNwaW5fbG9jaygmdnAtPmxvY2spOwogCQkJdm9ydGV4X2NoZWNrX21lZGlhKGRldiwgMCk7Ci0JCQlzcGluX3VubG9ja19iaCgmdnAtPmxvY2spOworCQkJc3Bpbl91bmxvY2soJnZwLT5sb2NrKTsKIAkJfQogCQlicmVhazsKIAkgIGRlZmF1bHQ6CQkJCQkvKiBPdGhlciBtZWRpYSB0eXBlcyBoYW5kbGVkIGJ5IFR4IHRpbWVvdXRzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvNzk5MC5jIGIvZHJpdmVycy9uZXQvNzk5MC5jCmluZGV4IDc1MGE0NmYuLmFkNmI4YTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0Lzc5OTAuYworKysgYi9kcml2ZXJzL25ldC83OTkwLmMKQEAgLTUwNiw2ICs1MDYsNyBAQAogCiAJcmV0dXJuIHJlczsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX29wZW4pOwogCiBpbnQgbGFuY2VfY2xvc2UgKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01MjEsNiArNTIyLDcgQEAKIAogICAgICAgICByZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX2Nsb3NlKTsKIAogdm9pZCBsYW5jZV90eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01MjksNyArNTMxLDcgQEAKIAlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsKIAluZXRpZl93YWtlX3F1ZXVlIChkZXYpOwogfQotCitFWFBPUlRfU1lNQk9MX0dQTChsYW5jZV90eF90aW1lb3V0KTsKIAogaW50IGxhbmNlX3N0YXJ0X3htaXQgKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CkBAIC01ODYsNiArNTg4LDcgQEAKIAogICAgICAgICByZXR1cm4gMDsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX3N0YXJ0X3htaXQpOwogCiAvKiB0YWtlbiBmcm9tIHRoZSBkZXBjYSBkcml2ZXIgdmlhIGEyMDY1LmMgKi8KIHN0YXRpYyB2b2lkIGxhbmNlX2xvYWRfbXVsdGljYXN0IChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpAQCAtNjU0LDYgKzY1Nyw3IEBACiAJaWYgKCFzdG9wcGVkKQogCQluZXRpZl9zdGFydF9xdWV1ZSAoZGV2KTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGxhbmNlX3NldF9tdWx0aWNhc3QpOwogCiAjaWZkZWYgQ09ORklHX05FVF9QT0xMX0NPTlRST0xMRVIKIHZvaWQgbGFuY2VfcG9sbChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L0tjb25maWcKaW5kZXggZGQwZWM5ZS4uNDVhNDFiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9LY29uZmlnCkBAIC0yMTcsNyArMjE3LDcgQEAKIAogY29uZmlnIE1BQ0IKIAl0cmlzdGF0ZSAiQXRtZWwgTUFDQiBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxU0FNOTI2MCB8fCBBUkNIX0FUOTFTQU05MjYzIHx8IEFSQ0hfQVQ5MUNBUDkKKwlkZXBlbmRzIG9uIEFWUjMyIHx8IEFSQ0hfQVQ5MVNBTTkyNjAgfHwgQVJDSF9BVDkxU0FNOTI2MyB8fCBBUkNIX0FUOTFTQU05RzIwIHx8IEFSQ0hfQVQ5MUNBUDkKIAlzZWxlY3QgUEhZTElCCiAJaGVscAogCSAgVGhlIEF0bWVsIE1BQ0IgZXRoZXJuZXQgaW50ZXJmYWNlIGlzIGZvdW5kIG9uIG1hbnkgQVQzMiBhbmQgQVQ5MQpAQCAtMjQyNiw3ICsyNDI2LDcgQEAKIAogY29uZmlnIEVIRUEKIAl0cmlzdGF0ZSAiZUhFQSBFdGhlcm5ldCBzdXBwb3J0IgotCWRlcGVuZHMgb24gSUJNRUJVUyAmJiBJTkVUICYmIFNQQVJTRU1FTSAmJiBNRU1PUllfSE9UUExVRworCWRlcGVuZHMgb24gSUJNRUJVUyAmJiBJTkVUICYmIFNQQVJTRU1FTQogCXNlbGVjdCBJTkVUX0xSTwogCS0tLWhlbHAtLS0KIAkgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBJQk0gcFNlcmllcyBlSEVBIGV0aGVybmV0IGFkYXB0ZXIuCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9hcm0vZXRoZXJoLmMgYi9kcml2ZXJzL25ldC9hcm0vZXRoZXJoLmMKaW5kZXggMDAwODFkMi4uZTlkMTVlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYXJtL2V0aGVyaC5jCisrKyBiL2RyaXZlcnMvbmV0L2FybS9ldGhlcmguYwpAQCAtNjQ3LDcgKzY0Nyw3IEBACiAJc3RydWN0IGVpX2RldmljZSAqZWlfbG9jYWw7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZXRoZXJoX3ByaXYgKmVoOwotCWludCBpLCByZXQ7CisJaW50IHJldDsKIAlERUNMQVJFX01BQ19CVUYobWFjKTsKIAogCWV0aGVyaF9iYW5uZXIoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F0bHgvYXRsMS5jIGIvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKaW5kZXggNmU0YzgwZC4uM2M3OThhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKKysrIGIvZHJpdmVycy9uZXQvYXRseC9hdGwxLmMKQEAgLTQ3MSw3ICs0NzEsNiBAQAogCQkJbWVtY3B5KGh3LT5wZXJtX21hY19hZGRyLCBldGhfYWRkciwgRVRIX0FMRU4pOwogCQkJcmV0dXJuIDA7CiAJCX0KLQkJcmV0dXJuIDE7CiAJfQogCiAJLyogc2VlIGlmIFNQSSBGTEFHUyBleGlzdCA/ICovCkBAIC02MzcsMjIgKzYzNiw2IEBACiB9CiAKIC8qCi0gKiBGb3JjZSB0aGUgUEhZIGludG8gcG93ZXIgc2F2aW5nIG1vZGUgdXNpbmcgdmVuZG9yIG1hZ2ljLgotICovCi0jaWZkZWYgQ09ORklHX1BNCi1zdGF0aWMgdm9pZCBhdGwxX3BoeV9lbnRlcl9wb3dlcl9zYXZpbmcoc3RydWN0IGF0bDFfaHcgKmh3KQotewotCWF0bDFfd3JpdGVfcGh5X3JlZyhodywgTUlJX0RCR19BRERSLCAwKTsKLQlhdGwxX3dyaXRlX3BoeV9yZWcoaHcsIE1JSV9EQkdfREFUQSwgMHgxMjRFKTsKLQlhdGwxX3dyaXRlX3BoeV9yZWcoaHcsIE1JSV9EQkdfQUREUiwgMik7Ci0JYXRsMV93cml0ZV9waHlfcmVnKGh3LCBNSUlfREJHX0RBVEEsIDB4MzAwMCk7Ci0JYXRsMV93cml0ZV9waHlfcmVnKGh3LCBNSUlfREJHX0FERFIsIDMpOwotCWF0bDFfd3JpdGVfcGh5X3JlZyhodywgTUlJX0RCR19EQVRBLCAwKTsKLQotfQotI2VuZGlmCi0KLS8qCiAgKiBSZXNldHMgdGhlIFBIWSBhbmQgbWFrZSBhbGwgY29uZmlnIHZhbGlkYXRlCiAgKiBodyAtIFN0cnVjdCBjb250YWluaW5nIHZhcmlhYmxlcyBhY2Nlc3NlZCBieSBzaGFyZWQgY29kZQogICoKQEAgLTIwMjMsNiArMjAwNiw3IEBACiAJCS8qIEdvb2QgUmVjZWl2ZSAqLwogCQlwY2lfdW5tYXBfcGFnZShhZGFwdGVyLT5wZGV2LCBidWZmZXJfaW5mby0+ZG1hLAogCQkJICAgICAgIGJ1ZmZlcl9pbmZvLT5sZW5ndGgsIFBDSV9ETUFfRlJPTURFVklDRSk7CisJCWJ1ZmZlcl9pbmZvLT5kbWEgPSAwOwogCQlza2IgPSBidWZmZXJfaW5mby0+c2tiOwogCQlsZW5ndGggPSBsZTE2X3RvX2NwdShycmQtPnhzei54c3VtX3N6LnBrdF9zaXplKTsKIApAQCAtMjg1OSw3ICsyODQzLDYgQEAKIAljdHJsIHw9IFBDSUVfUEhZTUlTQ19GT1JDRV9SQ1ZfREVUOwogCWlvd3JpdGUzMihjdHJsLCBody0+aHdfYWRkciArIFJFR19QQ0lFX1BIWU1JU0MpOwogCWlvcmVhZDMyKGh3LT5od19hZGRyICsgUkVHX1BDSUVfUEhZTUlTQyk7Ci0JYXRsMV9waHlfZW50ZXJfcG93ZXJfc2F2aW5nKGh3KTsKIAlody0+cGh5X2NvbmZpZ3VyZWQgPSBmYWxzZTsKIAlwY2lfZW5hYmxlX3dha2UocGRldiwgcGNpX2Nob29zZV9zdGF0ZShwZGV2LCBzdGF0ZSksIDApOwogZXhpdDoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2F1MTAwMF9ldGguYyBiL2RyaXZlcnMvbmV0L2F1MTAwMF9ldGguYwppbmRleCAzNjM0YjVmLi43MDIzZDc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9hdTEwMDBfZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvYXUxMDAwX2V0aC5jCkBAIC0xMjM5LDEyICsxMjM5LDcgQEAKICAqLwogc3RhdGljIGlycXJldHVybl90IGF1MTAwMF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewotCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSAoc3RydWN0IG5ldF9kZXZpY2UgKikgZGV2X2lkOwotCi0JaWYgKGRldiA9PSBOVUxMKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiJXM6IGlzcjogbnVsbCBkZXYgcHRyXG4iLCBkZXYtPm5hbWUpOwotCQlyZXR1cm4gSVJRX1JFVFZBTCgxKTsKLQl9CisJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGRldl9pZDsKIAogCS8qIEhhbmRsZSBSWCBpbnRlcnJ1cHRzIGZpcnN0IHRvIG1pbmltaXplIGNoYW5jZSBvZiBvdmVycnVuICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JmaW5fbWFjLmMgYi9kcml2ZXJzL25ldC9iZmluX21hYy5jCmluZGV4IDg5YzAwMTguLjQxNDQzNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JmaW5fbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvYmZpbl9tYWMuYwpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KLSNpbmNsdWRlIDxsaW51eC9ldGh0b29sLmg+CiAjaW5jbHVkZSA8bGludXgvbWlpLmg+CiAjaW5jbHVkZSA8bGludXgvcGh5Lmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibngyLmMgYi9kcml2ZXJzL25ldC9ibngyLmMKaW5kZXggNGI0NmU2OC4uMzY3YjZkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm54Mi5jCisrKyBiL2RyaXZlcnMvbmV0L2JueDIuYwpAQCAtNTcyNCwxNCArNTcyNCwxMiBAQAogCWlmICghbmV0aWZfcnVubmluZyhicC0+ZGV2KSkKIAkJcmV0dXJuOwogCi0JYnAtPmluX3Jlc2V0X3Rhc2sgPSAxOwogCWJueDJfbmV0aWZfc3RvcChicCk7CiAKIAlibngyX2luaXRfbmljKGJwKTsKIAogCWF0b21pY19zZXQoJmJwLT5pbnRyX3NlbSwgMSk7CiAJYm54Ml9uZXRpZl9zdGFydChicCk7Ci0JYnAtPmluX3Jlc2V0X3Rhc2sgPSAwOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNTkwNywxMiArNTkwNSw3IEBACiAJc3RydWN0IGJueDIgKmJwID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAl1MzIgcmVzZXRfY29kZTsKIAotCS8qIENhbGxpbmcgZmx1c2hfc2NoZWR1bGVkX3dvcmsoKSBtYXkgZGVhZGxvY2sgYmVjYXVzZQotCSAqIGxpbmt3YXRjaF9ldmVudCgpIG1heSBiZSBvbiB0aGUgd29ya3F1ZXVlIGFuZCBpdCB3aWxsIHRyeSB0byBnZXQKLQkgKiB0aGUgcnRubF9sb2NrIHdoaWNoIHdlIGFyZSBob2xkaW5nLgotCSAqLwotCXdoaWxlIChicC0+aW5fcmVzZXRfdGFzaykKLQkJbXNsZWVwKDEpOworCWNhbmNlbF93b3JrX3N5bmMoJmJwLT5yZXNldF90YXNrKTsKIAogCWJueDJfZGlzYWJsZV9pbnRfc3luYyhicCk7CiAJYm54Ml9uYXBpX2Rpc2FibGUoYnApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm54Mi5oIGIvZHJpdmVycy9uZXQvYm54Mi5oCmluZGV4IDFlYWY1YmIuLjIzNzdjYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDIuaAorKysgYi9kcml2ZXJzL25ldC9ibngyLmgKQEAgLTY2NTYsNyArNjY1Niw2IEBACiAJaW50CQkJY3VycmVudF9pbnRlcnZhbDsKIAlzdHJ1Y3QJCQl0aW1lcl9saXN0IHRpbWVyOwogCXN0cnVjdCB3b3JrX3N0cnVjdAlyZXNldF90YXNrOwotCWludAkJCWluX3Jlc2V0X3Rhc2s7CiAKIAkvKiBVc2VkIHRvIHN5bmNocm9uaXplIHBoeSBhY2Nlc3Nlcy4gKi8KIAlzcGlubG9ja190CQlwaHlfbG9jazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueDJ4LmMgYi9kcml2ZXJzL25ldC9ibngyeC5jCmluZGV4IDdiZGI1YWYuLjcwY2JhNjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDJ4LmMKKysrIGIvZHJpdmVycy9uZXQvYm54MnguYwpAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKiBCYXNlZCBvbiBjb2RlIGZyb20gTWljaGFlbCBDaGFuJ3MgYm54MiBkcml2ZXIKICAqIFVEUCBDU1VNIGVycmF0YSB3b3JrYXJvdW5kIGJ5IEFyaWsgR2VuZGVsbWFuCiAgKiBTbG93cGF0aCByZXdvcmsgYnkgVmxhZGlzbGF2IFpvbG90YXJvdgpAQCAtNzQsNyArNzUsNyBAQAogCSJCcm9hZGNvbSBOZXRYdHJlbWUgSUkgNTc3MVggMTBHaWdhYml0IEV0aGVybmV0IERyaXZlciAiCiAJRFJWX01PRFVMRV9OQU1FICIgIiBEUlZfTU9EVUxFX1ZFUlNJT04gIiAoIiBEUlZfTU9EVUxFX1JFTERBVEUgIilcbiI7CiAKLU1PRFVMRV9BVVRIT1IoIkVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4iKTsKK01PRFVMRV9BVVRIT1IoIkVsaWV6ZXIgVGFtaXIiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQnJvYWRjb20gTmV0WHRyZW1lIElJIEJDTTU3NzEwIERyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX1ZFUlNJT04oRFJWX01PRFVMRV9WRVJTSU9OKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JueDJ4LmggYi9kcml2ZXJzL25ldC9ibngyeC5oCmluZGV4IDRmMGMwZDMuLjhlNjhkMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JueDJ4LmgKKysrIGIvZHJpdmVycy9uZXQvYm54MnguaApAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKiBCYXNlZCBvbiBjb2RlIGZyb20gTWljaGFlbCBDaGFuJ3MgYm54MiBkcml2ZXIKICAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ibngyeF9pbml0LmggYi9kcml2ZXJzL25ldC9ibngyeF9pbml0LmgKaW5kZXggZGNhZWNjNS4uMzcwNjg2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm54MnhfaW5pdC5oCisrKyBiL2RyaXZlcnMvbmV0L2JueDJ4X2luaXQuaApAQCAtNiw3ICs2LDggQEAKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogICoKLSAqIFdyaXR0ZW4gYnk6IEVsaWV6ZXIgVGFtaXIgPGVsaWV6ZXJ0QGJyb2FkY29tLmNvbT4KKyAqIE1haW50YWluZWQgYnk6IEVpbG9uIEdyZWVuc3RlaW4gPGVpbG9uZ0Bicm9hZGNvbS5jb20+CisgKiBXcml0dGVuIGJ5OiBFbGllemVyIFRhbWlyCiAgKi8KIAogI2lmbmRlZiBCTlgyWF9JTklUX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2NwbWFjLmMgYi9kcml2ZXJzL25ldC9jcG1hYy5jCmluZGV4IDJiNTc0MGIuLjdmM2Y2MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2NwbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvY3BtYWMuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8YXNtL2dwaW8uaD4KKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAKIE1PRFVMRV9BVVRIT1IoIkV1Z2VuZSBLb25ldiA8ZWprYUBpbWZpLmtzcHUucnU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlRJIEFSNyBldGhlcm5ldCBkcml2ZXIgKENQTUFDKSIpOwpAQCAtMTg3LDYgKzE4OCw3IEBACiAjZGVmaW5lIENQTUFDX0VPUQkJCTB4MTAwMAogCXN0cnVjdCBza19idWZmICpza2I7CiAJc3RydWN0IGNwbWFjX2Rlc2MgKm5leHQ7CisJc3RydWN0IGNwbWFjX2Rlc2MgKnByZXY7CiAJZG1hX2FkZHJfdCBtYXBwaW5nOwogCWRtYV9hZGRyX3QgZGF0YV9tYXBwaW5nOwogfTsKQEAgLTIwOCw2ICsyMTAsNyBAQAogCXN0cnVjdCB3b3JrX3N0cnVjdCByZXNldF93b3JrOwogCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7CiAJc3RydWN0IG5hcGlfc3RydWN0IG5hcGk7CisJYXRvbWljX3QgcmVzZXRfcGVuZGluZzsKIH07CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBjcG1hY19pcnEoaW50LCB2b2lkICopOwpAQCAtMjQxLDYgKzI0NCwxNiBAQAogCXByaW50aygiXG4iKTsKIH0KIAorc3RhdGljIHZvaWQgY3BtYWNfZHVtcF9hbGxfZGVzYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBjcG1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3QgY3BtYWNfZGVzYyAqZHVtcCA9IHByaXYtPnJ4X2hlYWQ7CisJZG8geworCQljcG1hY19kdW1wX2Rlc2MoZGV2LCBkdW1wKTsKKwkJZHVtcCA9IGR1bXAtPm5leHQ7CisJfSB3aGlsZSAoZHVtcCAhPSBwcml2LT5yeF9oZWFkKTsKK30KKwogc3RhdGljIHZvaWQgY3BtYWNfZHVtcF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlpbnQgaTsKQEAgLTQxMiwyMSArNDI1LDQyIEBACiBzdGF0aWMgaW50IGNwbWFjX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogewogCXN0cnVjdCBza19idWZmICpza2I7Ci0Jc3RydWN0IGNwbWFjX2Rlc2MgKmRlc2M7Ci0JaW50IHJlY2VpdmVkID0gMDsKKwlzdHJ1Y3QgY3BtYWNfZGVzYyAqZGVzYywgKnJlc3RhcnQ7CiAJc3RydWN0IGNwbWFjX3ByaXYgKnByaXYgPSBjb250YWluZXJfb2YobmFwaSwgc3RydWN0IGNwbWFjX3ByaXYsIG5hcGkpOworCWludCByZWNlaXZlZCA9IDAsIHByb2Nlc3NlZCA9IDA7CiAKIAlzcGluX2xvY2soJnByaXYtPnJ4X2xvY2spOwogCWlmICh1bmxpa2VseSghcHJpdi0+cnhfaGVhZCkpIHsKIAkJaWYgKG5ldGlmX21zZ19yeF9lcnIocHJpdikgJiYgbmV0X3JhdGVsaW1pdCgpKQogCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IHJ4OiBwb2xsaW5nLCBidXQgbm8gcXVldWVcbiIsCiAJCQkgICAgICAgcHJpdi0+ZGV2LT5uYW1lKTsKKwkJc3Bpbl91bmxvY2soJnByaXYtPnJ4X2xvY2spOwogCQluZXRpZl9yeF9jb21wbGV0ZShwcml2LT5kZXYsIG5hcGkpOwogCQlyZXR1cm4gMDsKIAl9CiAKIAlkZXNjID0gcHJpdi0+cnhfaGVhZDsKKwlyZXN0YXJ0ID0gTlVMTDsKIAl3aGlsZSAoKChkZXNjLT5kYXRhZmxhZ3MgJiBDUE1BQ19PV04pID09IDApICYmIChyZWNlaXZlZCA8IGJ1ZGdldCkpIHsKKwkJcHJvY2Vzc2VkKys7CisKKwkJaWYgKChkZXNjLT5kYXRhZmxhZ3MgJiBDUE1BQ19FT1EpICE9IDApIHsKKwkJCS8qIFRoZSBsYXN0IHVwZGF0ZSB0byBlb3EtPmh3X25leHQgZGlkbid0IGhhcHBlbgorCQkJKiBzb29uIGVub3VnaCwgYW5kIHRoZSByZWNlaXZlciBzdG9wcGVkIGhlcmUuCisJCQkqUmVtZW1iZXIgdGhpcyBkZXNjcmlwdG9yIHNvIHdlIGNhbiByZXN0YXJ0CisJCQkqIHRoZSByZWNlaXZlciBhZnRlciBmcmVlaW5nIHNvbWUgc3BhY2UuCisJCQkqLworCQkJaWYgKHVubGlrZWx5KHJlc3RhcnQpKSB7CisJCQkJaWYgKG5ldGlmX21zZ19yeF9lcnIocHJpdikpCisJCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IHBvbGwgZm91bmQgYSIKKwkJCQkJCSIgZHVwbGljYXRlIEVPUTogJXAgYW5kICVwXG4iLAorCQkJCQkJcHJpdi0+ZGV2LT5uYW1lLCByZXN0YXJ0LCBkZXNjKTsKKwkJCQlnb3RvIGZhdGFsX2Vycm9yOworCQkJfQorCisJCQlyZXN0YXJ0ID0gZGVzYy0+bmV4dDsKKwkJfQorCiAJCXNrYiA9IGNwbWFjX3J4X29uZShwcml2LCBkZXNjKTsKIAkJaWYgKGxpa2VseShza2IpKSB7CiAJCQluZXRpZl9yZWNlaXZlX3NrYihza2IpOwpAQCAtNDM1LDE5ICs0NjksOTAgQEAKIAkJZGVzYyA9IGRlc2MtPm5leHQ7CiAJfQogCisJaWYgKGRlc2MgIT0gcHJpdi0+cnhfaGVhZCkgeworCQkvKiBXZSBmcmVlZCBzb21lIGJ1ZmZlcnMsIGJ1dCBub3QgdGhlIHdob2xlIHJpbmcsCisJCSAqIGFkZCB3aGF0IHdlIGRpZCBmcmVlIHRvIHRoZSByeCBsaXN0ICovCisJCWRlc2MtPnByZXYtPmh3X25leHQgPSAodTMyKTA7CisJCXByaXYtPnJ4X2hlYWQtPnByZXYtPmh3X25leHQgPSBwcml2LT5yeF9oZWFkLT5tYXBwaW5nOworCX0KKworCS8qIE9wdGltaXphdGlvbjogSWYgd2UgZGlkIG5vdCBhY3R1YWxseSBwcm9jZXNzIGFuIEVPUSAocGVyaGFwcyBiZWNhdXNlCisJICogb2YgcXVvdGEgbGltaXRzKSwgY2hlY2sgdG8gc2VlIGlmIHRoZSB0YWlsIG9mIHRoZSBxdWV1ZSBoYXMgRU9RIHNldC4KKwkqIFdlIHNob3VsZCBpbW1lZGlhdGVseSByZXN0YXJ0IGluIHRoYXQgY2FzZSBzbyB0aGF0IHRoZSByZWNlaXZlciBjYW4KKwkqIHJlc3RhcnQgYW5kIHJ1biBpbiBwYXJhbGxlbCB3aXRoIG1vcmUgcGFja2V0IHByb2Nlc3NpbmcuCisJKiBUaGlzIGxldHMgdXMgaGFuZGxlIHNsaWdodGx5IGxhcmdlciBidXJzdHMgYmVmb3JlIHJ1bm5pbmcKKwkqIG91dCBvZiByaW5nIHNwYWNlIChhc3N1bWluZyBkZXYtPndlaWdodCA8IHJpbmdfc2l6ZSkgKi8KKworCWlmICghcmVzdGFydCAmJgorCSAgICAgKHByaXYtPnJ4X2hlYWQtPnByZXYtPmRhdGFmbGFncyAmIChDUE1BQ19PV058Q1BNQUNfRU9RKSkKKwkJICAgID09IENQTUFDX0VPUSAmJgorCSAgICAgKHByaXYtPnJ4X2hlYWQtPmRhdGFmbGFncyAmIENQTUFDX09XTikgIT0gMCkgeworCQkvKiByZXNldCBFT1Egc28gdGhlIHBvbGwgbG9vcCAoYWJvdmUpIGRvZXNuJ3QgdHJ5IHRvCisJCSogcmVzdGFydCB0aGlzIHdoZW4gaXQgZXZlbnR1YWxseSBnZXRzIHRvIHRoaXMgZGVzY3JpcHRvci4KKwkJKi8KKwkJcHJpdi0+cnhfaGVhZC0+cHJldi0+ZGF0YWZsYWdzICY9IH5DUE1BQ19FT1E7CisJCXJlc3RhcnQgPSBwcml2LT5yeF9oZWFkOworCX0KKworCWlmIChyZXN0YXJ0KSB7CisJCXByaXYtPmRldi0+c3RhdHMucnhfZXJyb3JzKys7CisJCXByaXYtPmRldi0+c3RhdHMucnhfZmlmb19lcnJvcnMrKzsKKwkJaWYgKG5ldGlmX21zZ19yeF9lcnIocHJpdikgJiYgbmV0X3JhdGVsaW1pdCgpKQorCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IHJ4IGRtYSByaW5nIG92ZXJydW5cbiIsCisJCQkgICAgICAgcHJpdi0+ZGV2LT5uYW1lKTsKKworCQlpZiAodW5saWtlbHkoKHJlc3RhcnQtPmRhdGFmbGFncyAmIENQTUFDX09XTikgPT0gMCkpIHsKKwkJCWlmIChuZXRpZl9tc2dfZHJ2KHByaXYpKQorCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGNwbWFjX3BvbGwgaXMgdHJ5aW5nIHRvICIKKwkJCQkJInJlc3RhcnQgcnggZnJvbSBhIGRlc2NyaXB0b3IgdGhhdCdzICIKKwkJCQkJIm5vdCBmcmVlOiAlcFxuIiwKKwkJCQkJcHJpdi0+ZGV2LT5uYW1lLCByZXN0YXJ0KTsKKwkJCQlnb3RvIGZhdGFsX2Vycm9yOworCQl9CisKKwkJY3BtYWNfd3JpdGUocHJpdi0+cmVncywgQ1BNQUNfUlhfUFRSKDApLCByZXN0YXJ0LT5tYXBwaW5nKTsKKwl9CisKIAlwcml2LT5yeF9oZWFkID0gZGVzYzsKIAlzcGluX3VubG9jaygmcHJpdi0+cnhfbG9jayk7CiAJaWYgKHVubGlrZWx5KG5ldGlmX21zZ19yeF9zdGF0dXMocHJpdikpKQogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IHBvbGwgcHJvY2Vzc2VkICVkIHBhY2tldHNcbiIsCiAJCSAgICAgICBwcml2LT5kZXYtPm5hbWUsIHJlY2VpdmVkKTsKLQlpZiAoZGVzYy0+ZGF0YWZsYWdzICYgQ1BNQUNfT1dOKSB7CisJaWYgKHByb2Nlc3NlZCA9PSAwKSB7CisJCS8qIHdlIHJhbiBvdXQgb2YgcGFja2V0cyB0byByZWFkLAorCQkgKiByZXZlcnQgdG8gaW50ZXJydXB0LWRyaXZlbiBtb2RlICovCiAJCW5ldGlmX3J4X2NvbXBsZXRlKHByaXYtPmRldiwgbmFwaSk7Ci0JCWNwbWFjX3dyaXRlKHByaXYtPnJlZ3MsIENQTUFDX1JYX1BUUigwKSwgKHUzMilkZXNjLT5tYXBwaW5nKTsKIAkJY3BtYWNfd3JpdGUocHJpdi0+cmVncywgQ1BNQUNfUlhfSU5UX0VOQUJMRSwgMSk7CiAJCXJldHVybiAwOwogCX0KIAogCXJldHVybiAxOworCitmYXRhbF9lcnJvcjoKKwkvKiBTb21ldGhpbmcgd2VudCBob3JyaWJseSB3cm9uZy4KKwkgKiBSZXNldCBoYXJkd2FyZSB0byB0cnkgdG8gcmVjb3ZlciByYXRoZXIgdGhhbiB3ZWRnaW5nLiAqLworCisJaWYgKG5ldGlmX21zZ19kcnYocHJpdikpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogY3BtYWNfcG9sbCBpcyBjb25mdXNlZC4gIgorCQkJCSJSZXNldHRpbmcgaGFyZHdhcmVcbiIsIHByaXYtPmRldi0+bmFtZSk7CisJCWNwbWFjX2R1bXBfYWxsX2Rlc2MocHJpdi0+ZGV2KTsKKwkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBSWF9QVFIoMCk9MHglMDh4IFJYX0FDSygwKT0weCUwOHhcbiIsCisJCQlwcml2LT5kZXYtPm5hbWUsCisJCQljcG1hY19yZWFkKHByaXYtPnJlZ3MsIENQTUFDX1JYX1BUUigwKSksCisJCQljcG1hY19yZWFkKHByaXYtPnJlZ3MsIENQTUFDX1JYX0FDSygwKSkpOworCX0KKworCXNwaW5fdW5sb2NrKCZwcml2LT5yeF9sb2NrKTsKKwluZXRpZl9yeF9jb21wbGV0ZShwcml2LT5kZXYsIG5hcGkpOworCW5ldGlmX3N0b3BfcXVldWUocHJpdi0+ZGV2KTsKKwluYXBpX2Rpc2FibGUoJnByaXYtPm5hcGkpOworCisJYXRvbWljX2luYygmcHJpdi0+cmVzZXRfcGVuZGluZyk7CisJY3BtYWNfaHdfc3RvcChwcml2LT5kZXYpOworCWlmICghc2NoZWR1bGVfd29yaygmcHJpdi0+cmVzZXRfd29yaykpCisJCWF0b21pY19kZWMoJnByaXYtPnJlc2V0X3BlbmRpbmcpOworCXJldHVybiAwOworCiB9CiAKIHN0YXRpYyBpbnQgY3BtYWNfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpAQCAtNDU2LDYgKzU2MSw5IEBACiAJc3RydWN0IGNwbWFjX2Rlc2MgKmRlc2M7CiAJc3RydWN0IGNwbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCisJaWYgKHVubGlrZWx5KGF0b21pY19yZWFkKCZwcml2LT5yZXNldF9wZW5kaW5nKSkpCisJCXJldHVybiBORVRERVZfVFhfQlVTWTsKKwogCWlmICh1bmxpa2VseShza2JfcGFkdG8oc2tiLCBFVEhfWkxFTikpKQogCQlyZXR1cm4gTkVUREVWX1RYX09LOwogCkBAIC02MjEsOCArNzI5LDEwIEBACiAJCQlkZXNjLT5kYXRhZmxhZ3MgPSBDUE1BQ19PV047CiAJCQlkZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKIAkJfQorCQlkZXNjLT5od19uZXh0ID0gZGVzYy0+bmV4dC0+bWFwcGluZzsKIAkJZGVzYyA9IGRlc2MtPm5leHQ7CiAJfQorCXByaXYtPnJ4X2hlYWQtPnByZXYtPmh3X25leHQgPSAwOwogfQogCiBzdGF0aWMgdm9pZCBjcG1hY19jbGVhcl90eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQpAQCAtNjM1LDE0ICs3NDUsMTQgQEAKIAkJcHJpdi0+ZGVzY19yaW5nW2ldLmRhdGFmbGFncyA9IDA7CiAJCWlmIChwcml2LT5kZXNjX3JpbmdbaV0uc2tiKSB7CiAJCQlkZXZfa2ZyZWVfc2tiX2FueShwcml2LT5kZXNjX3JpbmdbaV0uc2tiKTsKLQkJCWlmIChuZXRpZl9zdWJxdWV1ZV9zdG9wcGVkKGRldiwgaSkpCi0JCQkgICAgbmV0aWZfd2FrZV9zdWJxdWV1ZShkZXYsIGkpOworCQkJcHJpdi0+ZGVzY19yaW5nW2ldLnNrYiA9IE5VTEw7CiAJCX0KIAl9CiB9CiAKIHN0YXRpYyB2b2lkIGNwbWFjX2h3X2Vycm9yKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKKwlpbnQgaTsKIAlzdHJ1Y3QgY3BtYWNfcHJpdiAqcHJpdiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgY3BtYWNfcHJpdiwgcmVzZXRfd29yayk7CiAKQEAgLTY1MSw4ICs3NjEsNDggQEAKIAlzcGluX3VubG9jaygmcHJpdi0+cnhfbG9jayk7CiAJY3BtYWNfY2xlYXJfdHgocHJpdi0+ZGV2KTsKIAljcG1hY19od19zdGFydChwcml2LT5kZXYpOwotCW5hcGlfZW5hYmxlKCZwcml2LT5uYXBpKTsKLQluZXRpZl9zdGFydF9xdWV1ZShwcml2LT5kZXYpOworCWJhcnJpZXIoKTsKKwlhdG9taWNfZGVjKCZwcml2LT5yZXNldF9wZW5kaW5nKTsKKworCWZvciAoaSA9IDA7IGkgPCBDUE1BQ19RVUVVRVM7IGkrKykKKwkJbmV0aWZfd2FrZV9zdWJxdWV1ZShwcml2LT5kZXYsIGkpOworCW5ldGlmX3dha2VfcXVldWUocHJpdi0+ZGV2KTsKKwljcG1hY193cml0ZShwcml2LT5yZWdzLCBDUE1BQ19NQUNfSU5UX0VOQUJMRSwgMyk7Cit9CisKK3N0YXRpYyB2b2lkIGNwbWFjX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQoreworCXN0cnVjdCBjcG1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKKworCXUzMiBtYWNzdGF0dXMgPSBjcG1hY19yZWFkKHByaXYtPnJlZ3MsIENQTUFDX01BQ19TVEFUVVMpOworCWludCByeF9jaGFubmVsID0gKG1hY3N0YXR1cyA+PiA4KSAmIDc7CisJaW50IHJ4X2NvZGUgPSAobWFjc3RhdHVzID4+IDEyKSAmIDE1OworCWludCB0eF9jaGFubmVsID0gKG1hY3N0YXR1cyA+PiAxNikgJiA3OworCWludCB0eF9jb2RlID0gKG1hY3N0YXR1cyA+PiAyMCkgJiAxNTsKKworCWlmIChyeF9jb2RlIHx8IHR4X2NvZGUpIHsKKwkJaWYgKG5ldGlmX21zZ19kcnYocHJpdikgJiYgbmV0X3JhdGVsaW1pdCgpKSB7CisJCQkvKiBDYW4ndCBmaW5kIGFueSBkb2N1bWVudGF0aW9uIG9uIHdoYXQgdGhlc2UKKwkJCSAqZXJyb3IgY29kZXMgYWN0dWFsbHkgYXJlLiBTbyBqdXN0IGxvZyB0aGVtIGFuZCBob3BlLi4KKwkJCSAqLworCQkJaWYgKHJ4X2NvZGUpCisJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IGhvc3QgZXJyb3IgJWQgb24gcnggIgorCQkJCSAgICAgImNoYW5uZWwgJWQgKG1hY3N0YXR1cyAlMDh4KSwgcmVzZXR0aW5nXG4iLAorCQkJCSAgICAgZGV2LT5uYW1lLCByeF9jb2RlLCByeF9jaGFubmVsLCBtYWNzdGF0dXMpOworCQkJaWYgKHR4X2NvZGUpCisJCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IGhvc3QgZXJyb3IgJWQgb24gdHggIgorCQkJCSAgICAgImNoYW5uZWwgJWQgKG1hY3N0YXR1cyAlMDh4KSwgcmVzZXR0aW5nXG4iLAorCQkJCSAgICAgZGV2LT5uYW1lLCB0eF9jb2RlLCB0eF9jaGFubmVsLCBtYWNzdGF0dXMpOworCQl9CisKKwkJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOworCQljcG1hY19od19zdG9wKGRldik7CisJCWlmIChzY2hlZHVsZV93b3JrKCZwcml2LT5yZXNldF93b3JrKSkKKwkJCWF0b21pY19pbmMoJnByaXYtPnJlc2V0X3BlbmRpbmcpOworCQlpZiAodW5saWtlbHkobmV0aWZfbXNnX2h3KHByaXYpKSkKKwkJCWNwbWFjX2R1bXBfcmVncyhkZXYpOworCX0KKwljcG1hY193cml0ZShwcml2LT5yZWdzLCBDUE1BQ19NQUNfSU5UX0NMRUFSLCAweGZmKTsKIH0KIAogc3RhdGljIGlycXJldHVybl90IGNwbWFjX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCkBAIC02ODMsNDkgKzgzMywzMiBAQAogCiAJY3BtYWNfd3JpdGUocHJpdi0+cmVncywgQ1BNQUNfTUFDX0VPSV9WRUNUT1IsIDApOwogCi0JaWYgKHVubGlrZWx5KHN0YXR1cyAmIChNQUNfSU5UX0hPU1QgfCBNQUNfSU5UX1NUQVRVUykpKSB7Ci0JCWlmIChuZXRpZl9tc2dfZHJ2KHByaXYpICYmIG5ldF9yYXRlbGltaXQoKSkKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGh3IGVycm9yLCByZXNldHRpbmcuLi5cbiIsCi0JCQkgICAgICAgZGV2LT5uYW1lKTsKLQkJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwotCQluYXBpX2Rpc2FibGUoJnByaXYtPm5hcGkpOwotCQljcG1hY19od19zdG9wKGRldik7Ci0JCXNjaGVkdWxlX3dvcmsoJnByaXYtPnJlc2V0X3dvcmspOwotCQlpZiAodW5saWtlbHkobmV0aWZfbXNnX2h3KHByaXYpKSkKLQkJCWNwbWFjX2R1bXBfcmVncyhkZXYpOwotCX0KKwlpZiAodW5saWtlbHkoc3RhdHVzICYgKE1BQ19JTlRfSE9TVCB8IE1BQ19JTlRfU1RBVFVTKSkpCisJCWNwbWFjX2NoZWNrX3N0YXR1cyhkZXYpOwogCiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCiBzdGF0aWMgdm9pZCBjcG1hY190eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7Ci0Jc3RydWN0IGNwbWFjX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCWludCBpOworCXN0cnVjdCBjcG1hY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCXNwaW5fbG9jaygmcHJpdi0+bG9jayk7CiAJZGV2LT5zdGF0cy50eF9lcnJvcnMrKzsKIAlzcGluX3VubG9jaygmcHJpdi0+bG9jayk7CiAJaWYgKG5ldGlmX21zZ190eF9lcnIocHJpdikgJiYgbmV0X3JhdGVsaW1pdCgpKQogCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogdHJhbnNtaXQgdGltZW91dFxuIiwgZGV2LT5uYW1lKTsKLQkvKiAKLQkgKiBGSVhNRTogd2FraW5nIHVwIHJhbmRvbSBxdWV1ZSBpcyBub3QgdGhlIGJlc3QgdGhpbmcgdG8KLQkgKiBkby4uLiBvbiB0aGUgb3RoZXIgaGFuZCB3aHkgd2UgZ290IGhlcmUgYXQgYWxsPwotCSAqLwotI2lmZGVmIENPTkZJR19ORVRERVZJQ0VTX01VTFRJUVVFVUUKKworCWF0b21pY19pbmMoJnByaXYtPnJlc2V0X3BlbmRpbmcpOworCWJhcnJpZXIoKTsKKwljcG1hY19jbGVhcl90eChkZXYpOworCWJhcnJpZXIoKTsKKwlhdG9taWNfZGVjKCZwcml2LT5yZXNldF9wZW5kaW5nKTsKKworCW5ldGlmX3dha2VfcXVldWUocHJpdi0+ZGV2KTsKIAlmb3IgKGkgPSAwOyBpIDwgQ1BNQUNfUVVFVUVTOyBpKyspCi0JCWlmIChwcml2LT5kZXNjX3JpbmdbaV0uc2tiKSB7Ci0JCQlwcml2LT5kZXNjX3JpbmdbaV0uZGF0YWZsYWdzID0gMDsKLQkJCWRldl9rZnJlZV9za2JfYW55KHByaXYtPmRlc2NfcmluZ1tpXS5za2IpOwotCQkJbmV0aWZfd2FrZV9zdWJxdWV1ZShkZXYsIGkpOwotCQkJYnJlYWs7Ci0JCX0KLSNlbHNlCi0JcHJpdi0+ZGVzY19yaW5nWzBdLmRhdGFmbGFncyA9IDA7Ci0JaWYgKHByaXYtPmRlc2NfcmluZ1swXS5za2IpCi0JCWRldl9rZnJlZV9za2JfYW55KHByaXYtPmRlc2NfcmluZ1swXS5za2IpOwotCW5ldGlmX3dha2VfcXVldWUoZGV2KTsKLSNlbmRpZgorCQluZXRpZl93YWtlX3N1YnF1ZXVlKGRldiwgaSk7CiB9CiAKIHN0YXRpYyBpbnQgY3BtYWNfaW9jdGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIsIGludCBjbWQpCkBAIC05MDEsOSArMTAzNCwxMiBAQAogCQlkZXNjLT5idWZsZW4gPSBDUE1BQ19TS0JfU0laRTsKIAkJZGVzYy0+ZGF0YWZsYWdzID0gQ1BNQUNfT1dOOwogCQlkZXNjLT5uZXh0ID0gJnByaXYtPnJ4X2hlYWRbKGkgKyAxKSAlIHByaXYtPnJpbmdfc2l6ZV07CisJCWRlc2MtPm5leHQtPnByZXYgPSBkZXNjOwogCQlkZXNjLT5od19uZXh0ID0gKHUzMilkZXNjLT5uZXh0LT5tYXBwaW5nOwogCX0KIAorCXByaXYtPnJ4X2hlYWQtPnByZXYtPmh3X25leHQgPSAodTMyKTA7CisKIAlpZiAoKHJlcyA9IHJlcXVlc3RfaXJxKGRldi0+aXJxLCBjcG1hY19pcnEsIElSUUZfU0hBUkVELAogCQkJICAgICAgIGRldi0+bmFtZSwgZGV2KSkpIHsKIAkJaWYgKG5ldGlmX21zZ19kcnYocHJpdikpCkBAIC05MTIsNiArMTA0OCw3IEBACiAJCWdvdG8gZmFpbF9pcnE7CiAJfQogCisJYXRvbWljX3NldCgmcHJpdi0+cmVzZXRfcGVuZGluZywgMCk7CiAJSU5JVF9XT1JLKCZwcml2LT5yZXNldF93b3JrLCBjcG1hY19od19lcnJvcik7CiAJY3BtYWNfaHdfc3RhcnQoZGV2KTsKIApAQCAtMTAwNywyMSArMTE0NCwxMCBAQAogCiAJaWYgKHBoeV9pZCA9PSBQSFlfTUFYX0FERFIpIHsKIAkJaWYgKGV4dGVybmFsX3N3aXRjaCB8fCBkdW1iX3N3aXRjaCkgewotCQkJc3RydWN0IGZpeGVkX3BoeV9zdGF0dXMgc3RhdHVzID0ge307Ci0KLQkJCS8qCi0JCQkgKiBGSVhNRTogdGhpcyBzaG91bGQgYmUgaW4gdGhlIHBsYXRmb3JtIGNvZGUhCi0JCQkgKiBTaW5jZSB0aGVyZSBpcyBub3QgcGxhdGZvcm0gY29kZSBhdCBhbGwgKHRoYXQgaXMsCi0JCQkgKiBubyBtYWlubGluZSB1c2VycyBvZiB0aGF0IGRyaXZlciksIHBsYWNlIGl0IGhlcmUKLQkJCSAqIGZvciBub3cuCi0JCQkgKi8KLQkJCXBoeV9pZCA9IDA7Ci0JCQlzdGF0dXMubGluayA9IDE7Ci0JCQlzdGF0dXMuZHVwbGV4ID0gMTsKLQkJCXN0YXR1cy5zcGVlZCA9IDEwMDsKLQkJCWZpeGVkX3BoeV9hZGQoUEhZX1BPTEwsIHBoeV9pZCwgJnN0YXR1cyk7CisJCQltZGlvX2J1c19pZCA9IDA7IC8qIGZpeGVkIHBoeXMgYnVzICovCisJCQlwaHlfaWQgPSBwZGV2LT5pZDsKIAkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiY3BtYWM6IG5vIFBIWSBwcmVzZW50XG4iKTsKKwkJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIFBIWSBwcmVzZW50XG4iKTsKIAkJCXJldHVybiAtRU5PREVWOwogCQl9CiAJfQpAQCAtMTA2NCwxMCArMTE5MCw4IEBACiAJcHJpdi0+bXNnX2VuYWJsZSA9IG5ldGlmX21zZ19pbml0KGRlYnVnX2xldmVsLCAweGZmKTsKIAltZW1jcHkoZGV2LT5kZXZfYWRkciwgcGRhdGEtPmRldl9hZGRyLCBzaXplb2YoZGV2LT5kZXZfYWRkcikpOwogCi0Jc25wcmludGYocHJpdi0+cGh5X25hbWUsIEJVU19JRF9TSVpFLCBQSFlfSURfRk1ULCBtZGlvX2J1c19pZCwgcGh5X2lkKTsKLQotCXByaXYtPnBoeSA9IHBoeV9jb25uZWN0KGRldiwgcHJpdi0+cGh5X25hbWUsICZjcG1hY19hZGp1c3RfbGluaywgMCwKLQkJCQlQSFlfSU5URVJGQUNFX01PREVfTUlJKTsKKwlwcml2LT5waHkgPSBwaHlfY29ubmVjdChkZXYsIGNwbWFjX21paS5waHlfbWFwW3BoeV9pZF0tPmRldi5idXNfaWQsCisJCQkJJmNwbWFjX2FkanVzdF9saW5rLCAwLCBQSFlfSU5URVJGQUNFX01PREVfTUlJKTsKIAlpZiAoSVNfRVJSKHByaXYtPnBoeSkpIHsKIAkJaWYgKG5ldGlmX21zZ19kcnYocHJpdikpCiAJCQlwcmludGsoS0VSTl9FUlIgIiVzOiBDb3VsZCBub3QgYXR0YWNoIHRvIFBIWVxuIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2NzODl4MC5jIGIvZHJpdmVycy9uZXQvY3M4OXgwLmMKaW5kZXggMzQ4MzcxZi4uZmJhODdhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3M4OXgwLmMKKysrIGIvZHJpdmVycy9uZXQvY3M4OXgwLmMKQEAgLTEzOTQsNyArMTM5NCwxMSBAQAogI2VuZGlmCiAgICAgICAgIGlmICghcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fRVJSICIlczogRUVQUk9NIGlzIGNvbmZpZ3VyZWQgZm9yIHVuYXZhaWxhYmxlIG1lZGlhXG4iLCBkZXYtPm5hbWUpOwotICAgICAgICByZWxlYXNlX2lycToKK3JlbGVhc2VfZG1hOgorI2lmIEFMTE9XX0RNQQorCQlmcmVlX2RtYShkZXYtPmRtYSk7CisjZW5kaWYKK3JlbGVhc2VfaXJxOgogI2lmIEFMTE9XX0RNQQogCQlyZWxlYXNlX2RtYV9idWZmKGxwKTsKICNlbmRpZgpAQCAtMTQ0MiwxMiArMTQ0NiwxMiBAQAogCQkJaWYgKChyZXN1bHQgPSBkZXRlY3RfYm5jKGRldikpICE9IERFVEVDVEVEX05PTkUpCiAJCQkJYnJlYWs7CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IG5vIG1lZGlhIGRldGVjdGVkXG4iLCBkZXYtPm5hbWUpOwotICAgICAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9pcnE7CisJCWdvdG8gcmVsZWFzZV9kbWE7CiAJfQogCXN3aXRjaChyZXN1bHQpIHsKIAljYXNlIERFVEVDVEVEX05PTkU6CiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IG5vIG5ldHdvcmsgY2FibGUgYXR0YWNoZWQgdG8gY29uZmlndXJlZCBtZWRpYVxuIiwgZGV2LT5uYW1lKTsKLSAgICAgICAgICAgICAgICBnb3RvIHJlbGVhc2VfaXJxOworCQlnb3RvIHJlbGVhc2VfZG1hOwogCWNhc2UgREVURUNURURfUko0NUg6CiAJCXByaW50ayhLRVJOX0lORk8gIiVzOiB1c2luZyBoYWxmLWR1cGxleCAxMEJhc2UtVCAoUkotNDUpXG4iLCBkZXYtPm5hbWUpOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKaW5kZXggNTc5YmVlNC4uOGU4ZWJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY29tbW9uLmgKQEAgLTY4Niw4ICs2ODYsOSBAQAogaW50IHQzX3NlZXByb21fd3Aoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGludCBlbmFibGUpOwogaW50IHQzX2dldF90cF92ZXJzaW9uKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1MzIgKnZlcnMpOwogaW50IHQzX2NoZWNrX3Rwc3JhbV92ZXJzaW9uKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBpbnQgKm11c3RfbG9hZCk7Ci1pbnQgdDNfY2hlY2tfdHBzcmFtKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1OCAqdHBfcmFtLCB1bnNpZ25lZCBpbnQgc2l6ZSk7Ci1pbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpkYXRhKTsKK2ludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHU4ICp0cF9yYW0sCisJCSAgICB1bnNpZ25lZCBpbnQgc2l6ZSk7CitpbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIGNvbnN0IHU4ICpkYXRhKTsKIGludCB0M19yZWFkX2ZsYXNoKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCB1bnNpZ25lZCBpbnQgYWRkciwKIAkJICB1bnNpZ25lZCBpbnQgbndvcmRzLCB1MzIgKmRhdGEsIGludCBieXRlX29yaWVudGVkKTsKIGludCB0M19sb2FkX2Z3KHN0cnVjdCBhZGFwdGVyICphZGFwdGVyLCBjb25zdCB1OCAqIGZ3X2RhdGEsIHVuc2lnbmVkIGludCBzaXplKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX2N0bF9kZWZzLmggYi9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19jdGxfZGVmcy5oCmluZGV4IDZjNGYzMjAuLmVkMGVjZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX2N0bF9kZWZzLmgKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfY3RsX2RlZnMuaApAQCAtNTQsNiArNTQsNyBAQAogCVJETUFfQ1FfRElTQUJMRQkJPSAxNiwKIAlSRE1BX0NUUkxfUVBfU0VUVVAJPSAxNywKIAlSRE1BX0dFVF9NRU0JCT0gMTgsCisJUkRNQV9HRVRfTUlCCQk9IDE5LAogCiAJR0VUX1JYX1BBR0VfSU5GTwk9IDUwLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX29mZmxvYWQuYyBiL2RyaXZlcnMvbmV0L2N4Z2IzL2N4Z2IzX29mZmxvYWQuYwppbmRleCBmZjljMDEzLi5jZjI2OTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy9jeGdiM19vZmZsb2FkLmMKKysrIGIvZHJpdmVycy9uZXQvY3hnYjMvY3hnYjNfb2ZmbG9hZC5jCkBAIC0zMDMsNiArMzAzLDEyIEBACiAJCXNwaW5fdW5sb2NrX2lycSgmYWRhcHRlci0+c2dlLnJlZ19sb2NrKTsKIAkJYnJlYWs7CiAJfQorCWNhc2UgUkRNQV9HRVRfTUlCOiB7CisJCXNwaW5fbG9jaygmYWRhcHRlci0+c3RhdHNfbG9jayk7CisJCXQzX3RwX2dldF9taWJfc3RhdHMoYWRhcHRlciwgKHN0cnVjdCB0cF9taWJfc3RhdHMgKilkYXRhKTsKKwkJc3Bpbl91bmxvY2soJmFkYXB0ZXItPnN0YXRzX2xvY2spOworCQlicmVhazsKKwl9CiAJZGVmYXVsdDoKIAkJcmV0ID0gLUVPUE5PVFNVUFA7CiAJfQpAQCAtMzgxLDYgKzM4Nyw3IEBACiAJY2FzZSBSRE1BX0NRX0RJU0FCTEU6CiAJY2FzZSBSRE1BX0NUUkxfUVBfU0VUVVA6CiAJY2FzZSBSRE1BX0dFVF9NRU06CisJY2FzZSBSRE1BX0dFVF9NSUI6CiAJCWlmICghb2ZmbG9hZF9ydW5uaW5nKGFkYXB0ZXIpKQogCQkJcmV0dXJuIC1FQUdBSU47CiAJCXJldHVybiBjeGdiX3JkbWFfY3RsKGFkYXB0ZXIsIHJlcSwgZGF0YSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jeGdiMy90M19ody5jIGIvZHJpdmVycy9uZXQvY3hnYjMvdDNfaHcuYwppbmRleCBkNDA1YTkzLi40N2Q1MTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9jeGdiMy90M19ody5jCisrKyBiL2RyaXZlcnMvbmV0L2N4Z2IzL3QzX2h3LmMKQEAgLTkyMyw3ICs5MjMsOCBAQAogICoJQ2hlY2tzIGlmIGFuIGFkYXB0ZXIncyB0cCBzcmFtIGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgZHJpdmVyLgogICoJUmV0dXJucyAwIGlmIHRoZSB2ZXJzaW9ucyBhcmUgY29tcGF0aWJsZSwgYSBuZWdhdGl2ZSBlcnJvciBvdGhlcndpc2UuCiAgKi8KLWludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIHU4ICp0cF9zcmFtLCB1bnNpZ25lZCBpbnQgc2l6ZSkKK2ludCB0M19jaGVja190cHNyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IHU4ICp0cF9zcmFtLAorCQkgICAgdW5zaWduZWQgaW50IHNpemUpCiB7CiAJdTMyIGNzdW07CiAJdW5zaWduZWQgaW50IGk7CkBAIC0yODc1LDEwICsyODc2LDEwIEBACiAgKgogICoJV3JpdGUgdGhlIGNvbnRlbnRzIG9mIHRoZSBwcm90b2NvbCBTUkFNLgogICovCi1pbnQgdDNfc2V0X3Byb3RvX3NyYW0oc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHU4ICpkYXRhKQoraW50IHQzX3NldF9wcm90b19zcmFtKHN0cnVjdCBhZGFwdGVyICphZGFwLCBjb25zdCB1OCAqZGF0YSkKIHsKIAlpbnQgaTsKLQlfX2JlMzIgKmJ1ZiA9IChfX2JlMzIgKilkYXRhOworCWNvbnN0IF9fYmUzMiAqYnVmID0gKGNvbnN0IF9fYmUzMiAqKWRhdGE7CiAKIAlmb3IgKGkgPSAwOyBpIDwgUFJPVE9fU1JBTV9MSU5FUzsgaSsrKSB7CiAJCXQzX3dyaXRlX3JlZyhhZGFwLCBBX1RQX0VNQkVEX09QX0ZJRUxENSwgYmUzMl90b19jcHUoKmJ1ZisrKSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jeGdiMy92ZXJzaW9uLmggYi9kcml2ZXJzL25ldC9jeGdiMy92ZXJzaW9uLmgKaW5kZXggYTAxNzdmYy4uMjlkYjcxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY3hnYjMvdmVyc2lvbi5oCisrKyBiL2RyaXZlcnMvbmV0L2N4Z2IzL3ZlcnNpb24uaApAQCAtMzgsNyArMzgsNyBAQAogI2RlZmluZSBEUlZfVkVSU0lPTiAiMS4wLWtvIgogCiAvKiBGaXJtd2FyZSB2ZXJzaW9uICovCi0jZGVmaW5lIEZXX1ZFUlNJT05fTUFKT1IgNgorI2RlZmluZSBGV19WRVJTSU9OX01BSk9SIDcKICNkZWZpbmUgRldfVkVSU0lPTl9NSU5PUiAwCiAjZGVmaW5lIEZXX1ZFUlNJT05fTUlDUk8gMAogI2VuZGlmCQkJCS8qIF9fQ0hFTFNJT19WRVJTSU9OX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RtOTAwMC5jIGIvZHJpdmVycy9uZXQvZG05MDAwLmMKaW5kZXggZDQ1YmNkMi4uODY0Mjk1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZG05MDAwLmMKKysrIGIvZHJpdmVycy9uZXQvZG05MDAwLmMKQEAgLTkwMyw3ICs5MDMsNyBAQAogCWlmIChuZXRpZl9tc2dfaWZkb3duKGRiKSkKIAkJZGV2X2RiZyhkYi0+ZGV2LCAic2h1dHRpbmcgZG93biAlc1xuIiwgbmRldi0+bmFtZSk7CiAKLQljYW5jZWxfZGVsYXllZF93b3JrKCZkYi0+cGh5X3BvbGwpOworCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZGItPnBoeV9wb2xsKTsKIAogCW5ldGlmX3N0b3BfcXVldWUobmRldik7CiAJbmV0aWZfY2Fycmllcl9vZmYobmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lMTAwLmMgYi9kcml2ZXJzL25ldC9lMTAwLmMKaW5kZXggZjNjYmE1ZS4uMTAzN2IxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZTEwMC5jCisrKyBiL2RyaXZlcnMvbmV0L2UxMDAuYwpAQCAtMTgwMyw2ICsxODAzLDggQEAKIAlpZiAocngtPnByZXYtPnNrYikgewogCQlzdHJ1Y3QgcmZkICpwcmV2X3JmZCA9IChzdHJ1Y3QgcmZkICopcngtPnByZXYtPnNrYi0+ZGF0YTsKIAkJcHV0X3VuYWxpZ25lZF9sZTMyKHJ4LT5kbWFfYWRkciwgJnByZXZfcmZkLT5saW5rKTsKKwkJcGNpX2RtYV9zeW5jX3NpbmdsZV9mb3JfZGV2aWNlKG5pYy0+cGRldiwgcngtPnByZXYtPmRtYV9hZGRyLAorCQkJc2l6ZW9mKHN0cnVjdCByZmQpLCBQQ0lfRE1BX1RPREVWSUNFKTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aHRvb2wuYwppbmRleCA3MDE1MzFlLi5hM2Y2YTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRodG9vbC5jCkBAIC0zNDcsNyArMzQ3LDcgQEAKIAllbHNlCiAJCW5ldGRldi0+ZmVhdHVyZXMgJj0gfk5FVElGX0ZfVFNPOwogCi0JaWYgKGRhdGEpCisJaWYgKGRhdGEgJiYgKGFkYXB0ZXItPmh3Lm1hY190eXBlID4gZTEwMDBfODI1NDdfcmV2XzIpKQogCQluZXRkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfVFNPNjsKIAllbHNlCiAJCW5ldGRldi0+ZmVhdHVyZXMgJj0gfk5FVElGX0ZfVFNPNjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2UxMDAwZS9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L2UxMDAwZS9uZXRkZXYuYwppbmRleCA4Y2JiNDBmLi42NDhhODdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9lMTAwMGUvbmV0ZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvZTEwMDBlL25ldGRldi5jCkBAIC0yNTM1LDcgKzI1MzUsOCBAQAogCWFkYXB0ZXItPmxpbmtfc3BlZWQgPSAwOwogCWFkYXB0ZXItPmxpbmtfZHVwbGV4ID0gMDsKIAotCWUxMDAwZV9yZXNldChhZGFwdGVyKTsKKwlpZiAoIXBjaV9jaGFubmVsX29mZmxpbmUoYWRhcHRlci0+cGRldikpCisJCWUxMDAwZV9yZXNldChhZGFwdGVyKTsKIAllMTAwMF9jbGVhbl90eF9yaW5nKGFkYXB0ZXIpOwogCWUxMDAwX2NsZWFuX3J4X3JpbmcoYWRhcHRlcik7CiAKQEAgLTQyMDEsOCArNDIwMiw4IEBACiAJc3RydWN0IGUxMDAwX2FkYXB0ZXIgKmFkYXB0ZXI7CiAJc3RydWN0IGUxMDAwX2h3ICpodzsKIAljb25zdCBzdHJ1Y3QgZTEwMDBfaW5mbyAqZWkgPSBlMTAwMF9pbmZvX3RibFtlbnQtPmRyaXZlcl9kYXRhXTsKLQl1bnNpZ25lZCBsb25nIG1taW9fc3RhcnQsIG1taW9fbGVuOwotCXVuc2lnbmVkIGxvbmcgZmxhc2hfc3RhcnQsIGZsYXNoX2xlbjsKKwlyZXNvdXJjZV9zaXplX3QgbW1pb19zdGFydCwgbW1pb19sZW47CisJcmVzb3VyY2Vfc2l6ZV90IGZsYXNoX3N0YXJ0LCBmbGFzaF9sZW47CiAKIAlzdGF0aWMgaW50IGNhcmRzX2ZvdW5kOwogCWludCBpLCBlcnIsIHBjaV91c2luZ19kYWM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9laGVhL2VoZWEuaCBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCmluZGV4IGZlODcyZmIuLmUwMTkyNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCisrKyBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYS5oCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKICNkZWZpbmUgRFJWX05BTUUJImVoZWEiCi0jZGVmaW5lIERSVl9WRVJTSU9OCSJFSEVBXzAwOTEiCisjZGVmaW5lIERSVl9WRVJTSU9OCSJFSEVBXzAwOTIiCiAKIC8qIGVIRUEgY2FwYWJpbGl0eSBmbGFncyAqLwogI2RlZmluZSBETFBBUl9QT1JUX0FERF9SRU0gMQpAQCAtNDUyLDcgKzQ1Miw3IEBACiBzdHJ1Y3QgZWhlYV9iY21jX3JlZ19hcnJheSB7CiAJc3RydWN0IGVoZWFfYmNtY19yZWdfZW50cnkgKmFycjsKIAlpbnQgbnVtX2VudHJpZXM7Ci0Jc3RydWN0IG11dGV4IGxvY2s7CisJc3BpbmxvY2tfdCBsb2NrOwogfTsKIAogI2RlZmluZSBFSEVBX1BPUlRfVVAgMQpAQCAtNDc4LDYgKzQ3OCw3IEBACiAJaW50IG51bV9hZGRfdHhfcXBzOwogCWludCBudW1fbWNzOwogCWludCByZXNldHM7CisJdTY0IGZsYWdzOwogCXU2NCBtYWNfYWRkcjsKIAl1MzIgbG9naWNhbF9wb3J0X2lkOwogCXUzMiBwb3J0X3NwZWVkOwpAQCAtNTAxLDcgKzUwMiw4IEBACiB9OwogCiBlbnVtIGVoZWFfZmxhZ19iaXRzIHsKLQlfX0VIRUFfU1RPUF9YRkVSCisJX19FSEVBX1NUT1BfWEZFUiwKKwlfX0VIRUFfRElTQUJMRV9QT1JUX1JFU0VUCiB9OwogCiB2b2lkIGVoZWFfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZWhlYS9laGVhX21haW4uYyBiL2RyaXZlcnMvbmV0L2VoZWEvZWhlYV9tYWluLmMKaW5kZXggZDFiNmQ0ZS4uMDkyMGI3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZWhlYS9laGVhX21haW4uYworKysgYi9kcml2ZXJzL25ldC9laGVhL2VoZWFfbWFpbi5jCkBAIC0xMTgsNiArMTE4LDcgQEAKIAl9LAogCXt9LAogfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVoZWFfZGV2aWNlX3RhYmxlKTsKIAogc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgZWhlYV9kcml2ZXIgPSB7CiAJLm5hbWUgPSAiZWhlYSIsCkBAIC0xMzcsNiArMTM4LDEyIEBACiAJfQogfQogCit2b2lkIGVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChzdHJ1Y3QgZWhlYV9wb3J0ICpwb3J0KQoreworCWlmICghdGVzdF9iaXQoX19FSEVBX0RJU0FCTEVfUE9SVF9SRVNFVCwgJnBvcnQtPmZsYWdzKSkKKwkJc2NoZWR1bGVfd29yaygmcG9ydC0+cmVzZXRfdGFzayk7Cit9CisKIHN0YXRpYyB2b2lkIGVoZWFfdXBkYXRlX2Zpcm13YXJlX2hhbmRsZXModm9pZCkKIHsKIAlzdHJ1Y3QgZWhlYV9md19oYW5kbGVfZW50cnkgKmFyciA9IE5VTEw7CkBAIC0yNDEsNyArMjQ4LDcgQEAKIAkJfQogCiAJaWYgKG51bV9yZWdpc3RyYXRpb25zKSB7Ci0JCWFyciA9IGt6YWxsb2MobnVtX3JlZ2lzdHJhdGlvbnMgKiBzaXplb2YoKmFyciksIEdGUF9LRVJORUwpOworCQlhcnIgPSBremFsbG9jKG51bV9yZWdpc3RyYXRpb25zICogc2l6ZW9mKCphcnIpLCBHRlBfQVRPTUlDKTsKIAkJaWYgKCFhcnIpCiAJCQlyZXR1cm47ICAvKiBLZWVwIHRoZSBleGlzdGluZyBhcnJheSAqLwogCX0gZWxzZQpAQCAtMzAxLDcgKzMwOCw3IEBACiAKIAltZW1zZXQoc3RhdHMsIDAsIHNpemVvZigqc3RhdHMpKTsKIAotCWNiMiA9IGt6YWxsb2MoUEFHRV9TSVpFLCBHRlBfS0VSTkVMKTsKKwljYjIgPSBremFsbG9jKFBBR0VfU0laRSwgR0ZQX0FUT01JQyk7CiAJaWYgKCFjYjIpIHsKIAkJZWhlYV9lcnJvcigibm8gbWVtIGZvciBjYjIiKTsKIAkJZ290byBvdXQ7CkBAIC01ODcsNyArNTk0LDcgQEAKIAkJCQkgICAiUmVzZXR0aW5nIHBvcnQuIiwgcHItPnFwLT5pbml0X2F0dHIucXBfbnIpOwogCQkJZWhlYV9kdW1wKGNxZSwgc2l6ZW9mKCpjcWUpLCAiQ1FFIik7CiAJCX0KLQkJc2NoZWR1bGVfd29yaygmcHItPnBvcnQtPnJlc2V0X3Rhc2spOworCQllaGVhX3NjaGVkdWxlX3BvcnRfcmVzZXQocHItPnBvcnQpOwogCQlyZXR1cm4gMTsKIAl9CiAKQEAgLTYxNiw3ICs2MjMsNyBAQAogCSp0Y3BoID0gdGNwX2hkcihza2IpOwogCiAJLyogY2hlY2sgaWYgaXAgaGVhZGVyIGFuZCB0Y3AgaGVhZGVyIGFyZSBjb21wbGV0ZSAqLwotCWlmIChpcGgtPnRvdF9sZW4gPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCisJaWYgKG50b2hzKGlwaC0+dG90X2xlbikgPCBpcF9sZW4gKyB0Y3BfaGRybGVuKHNrYikpCiAJCXJldHVybiAtMTsKIAogCSpoZHJfZmxhZ3MgPSBMUk9fSVBWNCB8IExST19UQ1A7CkBAIC03NjUsNyArNzcyLDcgQEAKIAkJCWVoZWFfZXJyb3IoIlNlbmQgQ29tcGxldGlvbiBFcnJvcjogUmVzZXR0aW5nIHBvcnQiKTsKIAkJCWlmIChuZXRpZl9tc2dfdHhfZXJyKHByLT5wb3J0KSkKIAkJCQllaGVhX2R1bXAoY3FlLCBzaXplb2YoKmNxZSksICJTZW5kIENRRSIpOwotCQkJc2NoZWR1bGVfd29yaygmcHItPnBvcnQtPnJlc2V0X3Rhc2spOworCQkJZWhlYV9zY2hlZHVsZV9wb3J0X3Jlc2V0KHByLT5wb3J0KTsKIAkJCWJyZWFrOwogCQl9CiAKQEAgLTg4NSw3ICs4OTIsNyBAQAogCQllcWUgPSBlaGVhX3BvbGxfZXEocG9ydC0+cXBfZXEpOwogCX0KIAotCXNjaGVkdWxlX3dvcmsoJnBvcnQtPnJlc2V0X3Rhc2spOworCWVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChwb3J0KTsKIAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KQEAgLTE3NjMsMjUgKzE3NzAsMjkgQEAKIAogCW1lbWNweShkZXYtPmRldl9hZGRyLCBtYWNfYWRkci0+c2FfZGF0YSwgZGV2LT5hZGRyX2xlbik7CiAKLQltdXRleF9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJLyogRGVyZWdpc3RlciBvbGQgTUFDIGluIHBIWVAgKi8KLQlyZXQgPSBlaGVhX2Jyb2FkY2FzdF9yZWdfaGVscGVyKHBvcnQsIEhfREVSRUdfQkNNQyk7Ci0JaWYgKHJldCkKLQkJZ290byBvdXRfdXByZWdzOworCWlmIChwb3J0LT5zdGF0ZSA9PSBFSEVBX1BPUlRfVVApIHsKKwkJcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX0RFUkVHX0JDTUMpOworCQlpZiAocmV0KQorCQkJZ290byBvdXRfdXByZWdzOworCX0KIAogCXBvcnQtPm1hY19hZGRyID0gY2IwLT5wb3J0X21hY19hZGRyIDw8IDE2OwogCiAJLyogUmVnaXN0ZXIgbmV3IE1BQyBpbiBwSFlQICovCi0JcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX1JFR19CQ01DKTsKLQlpZiAocmV0KQotCQlnb3RvIG91dF91cHJlZ3M7CisJaWYgKHBvcnQtPnN0YXRlID09IEVIRUFfUE9SVF9VUCkgeworCQlyZXQgPSBlaGVhX2Jyb2FkY2FzdF9yZWdfaGVscGVyKHBvcnQsIEhfUkVHX0JDTUMpOworCQlpZiAocmV0KQorCQkJZ290byBvdXRfdXByZWdzOworCX0KIAogCXJldCA9IDA7CiAKIG91dF91cHJlZ3M6CiAJZWhlYV91cGRhdGVfYmNtY19yZWdpc3RyYXRpb25zKCk7Ci0JbXV0ZXhfdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiBvdXRfZnJlZToKIAlrZnJlZShjYjApOwogb3V0OgpAQCAtMTk0Myw3ICsxOTU0LDcgQEAKIAl9CiAJZWhlYV9wcm9taXNjdW91cyhkZXYsIDApOwogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAogCWlmIChkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKSB7CiAJCWVoZWFfYWxsbXVsdGkoZGV2LCAxKTsKQEAgLTE5NzQsNyArMTk4NSw3IEBACiAJfQogb3V0OgogCWVoZWFfdXBkYXRlX2JjbWNfcmVnaXN0cmF0aW9ucygpOwotCW11dGV4X3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCXJldHVybjsKIH0KIApAQCAtMjIxMyw4ICsyMjI0LDYgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JbWVtc2V0KGNiMS0+dmxhbl9maWx0ZXIsIDAsIHNpemVvZihjYjEtPnZsYW5fZmlsdGVyKSk7Ci0KIAlocmV0ID0gZWhlYV9oX21vZGlmeV9laGVhX3BvcnQoYWRhcHRlci0+aGFuZGxlLCBwb3J0LT5sb2dpY2FsX3BvcnRfaWQsCiAJCQkJICAgICAgIEhfUE9SVF9DQjEsIEhfUE9SVF9DQjFfQUxMLCBjYjEpOwogCWlmIChocmV0ICE9IEhfU1VDQ0VTUykKQEAgLTI0OTUsNyArMjUwNCw3IEBACiAJCX0KIAl9CiAKLQltdXRleF9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJcmV0ID0gZWhlYV9icm9hZGNhc3RfcmVnX2hlbHBlcihwb3J0LCBIX1JFR19CQ01DKTsKIAlpZiAocmV0KSB7CkBAIC0yNTE4LDcgKzI1MjcsNyBAQAogCQllaGVhX2luZm8oIkZhaWxlZCBzdGFydGluZyAlcy4gcmV0PSVpIiwgZGV2LT5uYW1lLCByZXQpOwogCiAJZWhlYV91cGRhdGVfYmNtY19yZWdpc3RyYXRpb25zKCk7Ci0JbXV0ZXhfdW5sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAKIAllaGVhX3VwZGF0ZV9maXJtd2FyZV9oYW5kbGVzKCk7CiAJbXV0ZXhfdW5sb2NrKCZlaGVhX2Z3X2hhbmRsZXMubG9jayk7CkBAIC0yNTczLDcgKzI1ODIsNyBAQAogCiAJbXV0ZXhfbG9jaygmZWhlYV9md19oYW5kbGVzLmxvY2spOwogCi0JbXV0ZXhfbG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl9sb2NrKCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKIAllaGVhX2Ryb3BfbXVsdGljYXN0X2xpc3QoZGV2KTsKIAllaGVhX2Jyb2FkY2FzdF9yZWdfaGVscGVyKHBvcnQsIEhfREVSRUdfQkNNQyk7CiAKQEAgLTI1ODIsNyArMjU5MSw3IEBACiAJcG9ydC0+c3RhdGUgPSBFSEVBX1BPUlRfRE9XTjsKIAogCWVoZWFfdXBkYXRlX2JjbWNfcmVnaXN0cmF0aW9ucygpOwotCW11dGV4X3VubG9jaygmZWhlYV9iY21jX3JlZ3MubG9jayk7CisJc3Bpbl91bmxvY2soJmVoZWFfYmNtY19yZWdzLmxvY2spOwogCiAJcmV0ID0gZWhlYV9jbGVhbl9hbGxfcG9ydHJlcyhwb3J0KTsKIAlpZiAocmV0KQpAQCAtMjYwMywxMiArMjYxMiwxNCBAQAogCWlmIChuZXRpZl9tc2dfaWZkb3duKHBvcnQpKQogCQllaGVhX2luZm8oImRpc2FibGluZyBwb3J0ICVzIiwgZGV2LT5uYW1lKTsKIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJc2V0X2JpdChfX0VIRUFfRElTQUJMRV9QT1JUX1JFU0VULCAmcG9ydC0+ZmxhZ3MpOworCWNhbmNlbF93b3JrX3N5bmMoJnBvcnQtPnJlc2V0X3Rhc2spOwogCW11dGV4X2xvY2soJnBvcnQtPnBvcnRfbG9jayk7CiAJbmV0aWZfc3RvcF9xdWV1ZShkZXYpOwogCXBvcnRfbmFwaV9kaXNhYmxlKHBvcnQpOwogCXJldCA9IGVoZWFfZG93bihkZXYpOwogCW11dGV4X3VubG9jaygmcG9ydC0+cG9ydF9sb2NrKTsKKwljbGVhcl9iaXQoX19FSEVBX0RJU0FCTEVfUE9SVF9SRVNFVCwgJnBvcnQtPmZsYWdzKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yOTM4LDcgKzI5NDksNyBAQAogCiAJaWYgKG5ldGlmX2NhcnJpZXJfb2soZGV2KSAmJgogCSAgICAhdGVzdF9iaXQoX19FSEVBX1NUT1BfWEZFUiwgJmVoZWFfZHJpdmVyX2ZsYWdzKSkKLQkJc2NoZWR1bGVfd29yaygmcG9ydC0+cmVzZXRfdGFzayk7CisJCWVoZWFfc2NoZWR1bGVfcG9ydF9yZXNldChwb3J0KTsKIH0KIAogaW50IGVoZWFfc2Vuc2VfYWRhcHRlcl9hdHRyKHN0cnVjdCBlaGVhX2FkYXB0ZXIgKmFkYXB0ZXIpCkBAIC0zMTc4LDExICszMTg5LDEyIEBACiAKIHN0YXRpYyB2b2lkIGVoZWFfc2h1dGRvd25fc2luZ2xlX3BvcnQoc3RydWN0IGVoZWFfcG9ydCAqcG9ydCkKIHsKKwlzdHJ1Y3QgZWhlYV9hZGFwdGVyICphZGFwdGVyID0gcG9ydC0+YWRhcHRlcjsKIAl1bnJlZ2lzdGVyX25ldGRldihwb3J0LT5uZXRkZXYpOwogCWVoZWFfdW5yZWdpc3Rlcl9wb3J0KHBvcnQpOwogCWtmcmVlKHBvcnQtPm1jX2xpc3QpOwogCWZyZWVfbmV0ZGV2KHBvcnQtPm5ldGRldik7Ci0JcG9ydC0+YWRhcHRlci0+YWN0aXZlX3BvcnRzLS07CisJYWRhcHRlci0+YWN0aXZlX3BvcnRzLS07CiB9CiAKIHN0YXRpYyBpbnQgZWhlYV9zZXR1cF9wb3J0cyhzdHJ1Y3QgZWhlYV9hZGFwdGVyICphZGFwdGVyKQpAQCAtMzU4Niw3ICszNTk4LDcgQEAKIAltZW1zZXQoJmVoZWFfYmNtY19yZWdzLCAwLCBzaXplb2YoZWhlYV9iY21jX3JlZ3MpKTsKIAogCW11dGV4X2luaXQoJmVoZWFfZndfaGFuZGxlcy5sb2NrKTsKLQltdXRleF9pbml0KCZlaGVhX2JjbWNfcmVncy5sb2NrKTsKKwlzcGluX2xvY2tfaW5pdCgmZWhlYV9iY21jX3JlZ3MubG9jayk7CiAKIAlyZXQgPSBjaGVja19tb2R1bGVfcGFybSgpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9lbmMyOGo2MC5jIGIvZHJpdmVycy9uZXQvZW5jMjhqNjAuYwppbmRleCA0NmE5MGU5Li5jMDVjYjE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9lbmMyOGo2MC5jCisrKyBiL2RyaXZlcnMvbmV0L2VuYzI4ajYwLmMKQEAgLTQwMCwyNiArNDAwLDMxIEBACiAJbXV0ZXhfdW5sb2NrKCZwcml2LT5sb2NrKTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgbXNlYzIwX3RvX2ppZmZpZXM7CisKK3N0YXRpYyBpbnQgcG9sbF9yZWFkeShzdHJ1Y3QgZW5jMjhqNjBfbmV0ICpwcml2LCB1OCByZWcsIHU4IG1hc2ssIHU4IHZhbCkKK3sKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBqaWZmaWVzICsgbXNlYzIwX3RvX2ppZmZpZXM7CisKKwkvKiAyMCBtc2VjIHRpbWVvdXQgcmVhZCAqLworCXdoaWxlICgobm9sb2NrX3JlZ2JfcmVhZChwcml2LCByZWcpICYgbWFzaykgIT0gdmFsKSB7CisJCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7CisJCQlpZiAobmV0aWZfbXNnX2Rydihwcml2KSkKKwkJCQlkZXZfZGJnKCZwcml2LT5zcGktPmRldiwKKwkJCQkJInJlZyAlMDJ4IHJlYWR5IHRpbWVvdXQhXG4iLCByZWcpOworCQkJcmV0dXJuIC1FVElNRURPVVQ7CisJCX0KKwkJY3B1X3JlbGF4KCk7CisJfQorCXJldHVybiAwOworfQorCiAvKgogICogV2FpdCB1bnRpbCB0aGUgUEhZIG9wZXJhdGlvbiBpcyBjb21wbGV0ZS4KICAqLwogc3RhdGljIGludCB3YWl0X3BoeV9yZWFkeShzdHJ1Y3QgZW5jMjhqNjBfbmV0ICpwcml2KQogewotCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKyAyMCAqIEhaIC8gMTAwMDsKLQlpbnQgcmV0ID0gMTsKLQotCS8qIDIwIG1zZWMgdGltZW91dCByZWFkICovCi0Jd2hpbGUgKG5vbG9ja19yZWdiX3JlYWQocHJpdiwgTUlTVEFUKSAmIE1JU1RBVF9CVVNZKSB7Ci0JCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKSB7Ci0JCQlpZiAobmV0aWZfbXNnX2Rydihwcml2KSkKLQkJCQlwcmludGsoS0VSTl9ERUJVRyBEUlZfTkFNRQotCQkJCQkiOiBQSFkgcmVhZHkgdGltZW91dCFcbiIpOwotCQkJcmV0ID0gMDsKLQkJCWJyZWFrOwotCQl9Ci0JCWNwdV9yZWxheCgpOwotCX0KLQlyZXR1cm4gcmV0OworCXJldHVybiBwb2xsX3JlYWR5KHByaXYsIE1JU1RBVCwgTUlTVEFUX0JVU1ksIDApID8gMCA6IDE7CiB9CiAKIC8qCkBAIC01OTQsNiArNTk5LDMyIEBACiAJbm9sb2NrX3JlZ3dfd3JpdGUocHJpdiwgRVRYTkRMLCBlbmQpOwogfQogCisvKgorICogTG93IHBvd2VyIG1vZGUgc2hyaW5rcyBwb3dlciBjb25zdW1wdGlvbiBhYm91dCAxMDB4LCBzbyB3ZSdkIGxpa2UKKyAqIHRoZSBjaGlwIHRvIGJlIGluIHRoYXQgbW9kZSB3aGVuZXZlciBpdCdzIGluYWN0aXZlLiAgKEhvd2V2ZXIsIHdlCisgKiBjYW4ndCBzdGF5IGluIGxvd3Bvd2VyIG1vZGUgZHVyaW5nIHN1c3BlbmQgd2l0aCBXT0wgYWN0aXZlLikKKyAqLworc3RhdGljIHZvaWQgZW5jMjhqNjBfbG93cG93ZXIoc3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdiwgYm9vbCBpc19sb3cpCit7CisJaWYgKG5ldGlmX21zZ19kcnYocHJpdikpCisJCWRldl9kYmcoJnByaXYtPnNwaS0+ZGV2LCAiJXMgcG93ZXIuLi5cbiIsCisJCQkJaXNfbG93ID8gImxvdyIgOiAiaGlnaCIpOworCisJbXV0ZXhfbG9jaygmcHJpdi0+bG9jayk7CisJaWYgKGlzX2xvdykgeworCQlub2xvY2tfcmVnX2JmY2xyKHByaXYsIEVDT04xLCBFQ09OMV9SWEVOKTsKKwkJcG9sbF9yZWFkeShwcml2LCBFU1RBVCwgRVNUQVRfUlhCVVNZLCAwKTsKKwkJcG9sbF9yZWFkeShwcml2LCBFQ09OMSwgRUNPTjFfVFhSVFMsIDApOworCQkvKiBFQ09OMl9WUlBTIHdhcyBzZXQgZHVyaW5nIGluaXRpYWxpemF0aW9uICovCisJCW5vbG9ja19yZWdfYmZzZXQocHJpdiwgRUNPTjIsIEVDT04yX1BXUlNWKTsKKwl9IGVsc2UgeworCQlub2xvY2tfcmVnX2JmY2xyKHByaXYsIEVDT04yLCBFQ09OMl9QV1JTVik7CisJCXBvbGxfcmVhZHkocHJpdiwgRVNUQVQsIEVTVEFUX0NMS1JEWSwgRVNUQVRfQ0xLUkRZKTsKKwkJLyogY2FsbGVyIHNldHMgRUNPTjFfUlhFTiAqLworCX0KKwltdXRleF91bmxvY2soJnByaXYtPmxvY2spOworfQorCiBzdGF0aWMgaW50IGVuYzI4ajYwX2h3X2luaXQoc3RydWN0IGVuYzI4ajYwX25ldCAqcHJpdikKIHsKIAl1OCByZWc7CkBAIC02MTIsOCArNjQzLDggQEAKIAlwcml2LT50eF9yZXRyeV9jb3VudCA9IDA7CiAJcHJpdi0+bWF4X3BrX2NvdW50ZXIgPSAwOwogCXByaXYtPnJ4ZmlsdGVyID0gUlhGSUxURVJfTk9STUFMOwotCS8qIGVuYWJsZSBhZGRyZXNzIGF1dG8gaW5jcmVtZW50ICovCi0Jbm9sb2NrX3JlZ2Jfd3JpdGUocHJpdiwgRUNPTjIsIEVDT04yX0FVVE9JTkMpOworCS8qIGVuYWJsZSBhZGRyZXNzIGF1dG8gaW5jcmVtZW50IGFuZCB2b2x0YWdlIHJlZ3VsYXRvciBwb3dlcnNhdmUgKi8KKwlub2xvY2tfcmVnYl93cml0ZShwcml2LCBFQ09OMiwgRUNPTjJfQVVUT0lOQyB8IEVDT04yX1ZSUFMpOwogCiAJbm9sb2NrX3J4Zmlmb19pbml0KHByaXYsIFJYU1RBUlRfSU5JVCwgUlhFTkRfSU5JVCk7CiAJbm9sb2NrX3R4Zmlmb19pbml0KHByaXYsIFRYU1RBUlRfSU5JVCwgVFhFTkRfSU5JVCk7CkBAIC02OTAsNyArNzIxLDcgQEAKIAogc3RhdGljIHZvaWQgZW5jMjhqNjBfaHdfZW5hYmxlKHN0cnVjdCBlbmMyOGo2MF9uZXQgKnByaXYpCiB7Ci0JLyogZW5hYmxlIGludGVycnV0cHMgKi8KKwkvKiBlbmFibGUgaW50ZXJydXB0cyAqLwogCWlmIChuZXRpZl9tc2dfaHcocHJpdikpCiAJCXByaW50ayhLRVJOX0RFQlVHIERSVl9OQU1FICI6ICVzKCkgZW5hYmxpbmcgaW50ZXJydXB0cy5cbiIsCiAJCQlfX0ZVTkNUSU9OX18pOwpAQCAtNzI2LDE1ICs3NTcsMTIgQEAKIAlpbnQgcmV0ID0gMDsKIAogCWlmICghcHJpdi0+aHdfZW5hYmxlKSB7Ci0JCWlmIChhdXRvbmVnID09IEFVVE9ORUdfRElTQUJMRSAmJiBzcGVlZCA9PSBTUEVFRF8xMCkgeworCQkvKiBsaW5rIGlzIGluIGxvdyBwb3dlciBtb2RlIG5vdzsgZHVwbGV4IHNldHRpbmcKKwkJICogd2lsbCB0YWtlIGVmZmVjdCBvbiBuZXh0IGVuYzI4ajYwX2h3X2luaXQoKS4KKwkJICovCisJCWlmIChhdXRvbmVnID09IEFVVE9ORUdfRElTQUJMRSAmJiBzcGVlZCA9PSBTUEVFRF8xMCkKIAkJCXByaXYtPmZ1bGxfZHVwbGV4ID0gKGR1cGxleCA9PSBEVVBMRVhfRlVMTCk7Ci0JCQlpZiAoIWVuYzI4ajYwX2h3X2luaXQocHJpdikpIHsKLQkJCQlpZiAobmV0aWZfbXNnX2Rydihwcml2KSkKLQkJCQkJZGV2X2VycigmbmRldi0+ZGV2LAotCQkJCQkJImh3X3Jlc2V0KCkgZmFpbGVkXG4iKTsKLQkJCQlyZXQgPSAtRUlOVkFMOwotCQkJfQotCQl9IGVsc2UgeworCQllbHNlIHsKIAkJCWlmIChuZXRpZl9tc2dfbGluayhwcml2KSkKIAkJCQlkZXZfd2FybigmbmRldi0+ZGV2LAogCQkJCQkidW5zdXBwb3J0ZWQgbGluayBzZXR0aW5nXG4iKTsKQEAgLTEzMDcsNyArMTMzNSw4IEBACiAJCX0KIAkJcmV0dXJuIC1FQUREUk5PVEFWQUlMOwogCX0KLQkvKiBSZXNldCB0aGUgaGFyZHdhcmUgaGVyZSAqLworCS8qIFJlc2V0IHRoZSBoYXJkd2FyZSBoZXJlIChhbmQgdGFrZSBpdCBvdXQgb2YgbG93IHBvd2VyIG1vZGUpICovCisJZW5jMjhqNjBfbG93cG93ZXIocHJpdiwgZmFsc2UpOwogCWVuYzI4ajYwX2h3X2Rpc2FibGUocHJpdik7CiAJaWYgKCFlbmMyOGo2MF9od19pbml0KHByaXYpKSB7CiAJCWlmIChuZXRpZl9tc2dfaWZ1cChwcml2KSkKQEAgLTEzMzcsNiArMTM2Niw3IEBACiAJCXByaW50ayhLRVJOX0RFQlVHIERSVl9OQU1FICI6ICVzKCkgZW50ZXJcbiIsIF9fRlVOQ1RJT05fXyk7CiAKIAllbmMyOGo2MF9od19kaXNhYmxlKHByaXYpOworCWVuYzI4ajYwX2xvd3Bvd2VyKHByaXYsIHRydWUpOwogCW5ldGlmX3N0b3BfcXVldWUoZGV2KTsKIAogCXJldHVybiAwOwpAQCAtMTUzNyw2ICsxNTY3LDggQEAKIAlkZXYtPndhdGNoZG9nX3RpbWVvID0gVFhfVElNRU9VVDsKIAlTRVRfRVRIVE9PTF9PUFMoZGV2LCAmZW5jMjhqNjBfZXRodG9vbF9vcHMpOwogCisJZW5jMjhqNjBfbG93cG93ZXIocHJpdiwgdHJ1ZSk7CisKIAlyZXQgPSByZWdpc3Rlcl9uZXRkZXYoZGV2KTsKIAlpZiAocmV0KSB7CiAJCWlmIChuZXRpZl9tc2dfcHJvYmUocHJpdikpCkBAIC0xNTU2LDcgKzE1ODgsNyBAQAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZW5jMjhqNjBfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBlbmMyOGo2MF9yZW1vdmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKIHsKIAlzdHJ1Y3QgZW5jMjhqNjBfbmV0ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKCZzcGktPmRldik7CiAKQEAgLTE1NzMsMTUgKzE2MDUsMTYgQEAKIHN0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBlbmMyOGo2MF9kcml2ZXIgPSB7CiAJLmRyaXZlciA9IHsKIAkJICAgLm5hbWUgPSBEUlZfTkFNRSwKLQkJICAgLmJ1cyA9ICZzcGlfYnVzX3R5cGUsCiAJCSAgIC5vd25lciA9IFRISVNfTU9EVUxFLAotCQkgICB9LAorCSB9LAogCS5wcm9iZSA9IGVuYzI4ajYwX3Byb2JlLAogCS5yZW1vdmUgPSBfX2RldmV4aXRfcChlbmMyOGo2MF9yZW1vdmUpLAogfTsKIAogc3RhdGljIGludCBfX2luaXQgZW5jMjhqNjBfaW5pdCh2b2lkKQogeworCW1zZWMyMF90b19qaWZmaWVzID0gbXNlY3NfdG9famlmZmllcygyMCk7CisKIAlyZXR1cm4gc3BpX3JlZ2lzdGVyX2RyaXZlcigmZW5jMjhqNjBfZHJpdmVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZmVjX21wYzUyeHguYyBiL2RyaXZlcnMvbmV0L2ZlY19tcGM1Mnh4LmMKaW5kZXggNWY5YzQyZS4uMzI5ZWRkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZmVjX21wYzUyeHguYworKysgYi9kcml2ZXJzL25ldC9mZWNfbXBjNTJ4eC5jCkBAIC03OCw3ICs3OCw3IEBACiBNT0RVTEVfUEFSTV9ERVNDKG1hYywgInNpeCBoZXggZGlnaXRzLCBpZS4gMHgxLDB4MiwweGMwLDB4MDEsMHhiYSwweGJlIik7CiAKICNkZWZpbmUgTVBDNTJ4eF9NRVNTQUdFU19ERUZBVUxUICggTkVUSUZfTVNHX0RSViB8IE5FVElGX01TR19QUk9CRSB8IFwKLQkJTkVUSUZfTVNHX0xJTksgfCBORVRJRl9NU0dfSUZET1dOIHwgTkVUSUZfTVNHX0lGRE9XTiApCisJCU5FVElGX01TR19MSU5LIHwgTkVUSUZfTVNHX0lGRE9XTiB8IE5FVElGX01TR19JRlVQKQogc3RhdGljIGludCBkZWJ1ZyA9IC0xOwkvKiB0aGUgYWJvdmUgZGVmYXVsdCAqLwogbW9kdWxlX3BhcmFtKGRlYnVnLCBpbnQsIDApOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgImRlYnVnZ2luZyBtZXNzYWdlcyBsZXZlbCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZm9yY2VkZXRoLmMgYi9kcml2ZXJzL25ldC9mb3JjZWRldGguYwppbmRleCAzNWY2NmQ0Li4yMGQ0ZmU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9mb3JjZWRldGguYworKysgYi9kcml2ZXJzL25ldC9mb3JjZWRldGguYwpAQCAtMzI3Myw2ICszMjczLDIwIEBACiAJZHByaW50ayhLRVJOX0RFQlVHICIlczogbGluayBjaGFuZ2Ugbm90aWZpY2F0aW9uIGRvbmUuXG4iLCBkZXYtPm5hbWUpOwogfQogCitzdGF0aWMgdm9pZCBudl9tc2lfd29ya2Fyb3VuZChzdHJ1Y3QgZmVfcHJpdiAqbnApCit7CisKKwkvKiBOZWVkIHRvIHRvZ2dsZSB0aGUgbXNpIGlycSBtYXNrIHdpdGhpbiB0aGUgZXRoZXJuZXQgZGV2aWNlLAorCSAqIG90aGVyd2lzZSwgZnV0dXJlIGludGVycnVwdHMgd2lsbCBub3QgYmUgZGV0ZWN0ZWQuCisJICovCisJaWYgKG5wLT5tc2lfZmxhZ3MgJiBOVl9NU0lfRU5BQkxFRCkgeworCQl1OCBfX2lvbWVtICpiYXNlID0gbnAtPmJhc2U7CisKKwkJd3JpdGVsKDAsIGJhc2UgKyBOdlJlZ01TSUlycU1hc2spOworCQl3cml0ZWwoTlZSRUdfTVNJX1ZFQ1RPUl8wX0VOQUJMRUQsIGJhc2UgKyBOdlJlZ01TSUlycU1hc2spOworCX0KK30KKwogc3RhdGljIGlycXJldHVybl90IG52X25pY19pcnEoaW50IGZvbywgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gKHN0cnVjdCBuZXRfZGV2aWNlICopIGRhdGE7CkBAIC0zMjk1LDYgKzMzMDksOCBAQAogCQlpZiAoIShldmVudHMgJiBucC0+aXJxbWFzaykpCiAJCQlicmVhazsKIAorCQludl9tc2lfd29ya2Fyb3VuZChucCk7CisKIAkJc3Bpbl9sb2NrKCZucC0+bG9jayk7CiAJCW52X3R4X2RvbmUoZGV2KTsKIAkJc3Bpbl91bmxvY2soJm5wLT5sb2NrKTsKQEAgLTM0MTAsNiArMzQyNiw4IEBACiAJCWlmICghKGV2ZW50cyAmIG5wLT5pcnFtYXNrKSkKIAkJCWJyZWFrOwogCisJCW52X21zaV93b3JrYXJvdW5kKG5wKTsKKwogCQlzcGluX2xvY2soJm5wLT5sb2NrKTsKIAkJbnZfdHhfZG9uZV9vcHRpbWl6ZWQoZGV2LCBUWF9XT1JLX1BFUl9MT09QKTsKIAkJc3Bpbl91bmxvY2soJm5wLT5sb2NrKTsKQEAgLTM3NTAsNiArMzc2OCw4IEBACiAJaWYgKCEoZXZlbnRzICYgTlZSRUdfSVJRX1RJTUVSKSkKIAkJcmV0dXJuIElSUV9SRVRWQUwoMCk7CiAKKwludl9tc2lfd29ya2Fyb3VuZChucCk7CisKIAlzcGluX2xvY2soJm5wLT5sb2NrKTsKIAlucC0+aW50cl90ZXN0ID0gMTsKIAlzcGluX3VubG9jaygmbnAtPmxvY2spOwpAQCAtNDE3NCwxMiArNDE5NCwyMyBAQAogCiAJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAlpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7CisJCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKIAkJbnZfZGlzYWJsZV9pcnEoZGV2KTsKIAkJbmV0aWZfdHhfbG9ja19iaChkZXYpOwotCQlzcGluX2xvY2soJm5wLT5sb2NrKTsKKwkJLyogd2l0aCBwbGFpbiBzcGlubG9jayBsb2NrZGVwIGNvbXBsYWlucyAqLworCQlzcGluX2xvY2tfaXJxc2F2ZSgmbnAtPmxvY2ssIGZsYWdzKTsKIAkJLyogc3RvcCBlbmdpbmVzICovCisJCS8qIEZJWE1FOgorCQkgKiB0aGlzIGNhbiB0YWtlIHNvbWUgdGltZSwgYW5kIGludGVycnVwdHMgYXJlIGRpc2FibGVkCisJCSAqIGR1ZSB0byBzcGluX2xvY2tfaXJxc2F2ZSwgYnV0IGxldCdzIGhvcGUgbm8gZGFlbW9uCisJCSAqIGlzIGdvaW5nIHRvIGNoYW5nZSB0aGUgc2V0dGluZ3MgdmVyeSBvZnRlbi4uLgorCQkgKiBXb3JzdCBjYXNlOgorCQkgKiBOVl9SWFNUT1BfREVMQVkxTUFYICsgTlZfVFhTVE9QX0RFTEFZMU1BWAorCQkgKiArIHNvbWUgbWlub3IgZGVsYXlzLCB3aGljaCBpcyB1cCB0byBhIHNlY29uZCBhcHByb3hpbWF0ZWx5CisJCSAqLwogCQludl9zdG9wX3J4dHgoZGV2KTsKLQkJc3Bpbl91bmxvY2soJm5wLT5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbnAtPmxvY2ssIGZsYWdzKTsKIAkJbmV0aWZfdHhfdW5sb2NrX2JoKGRldik7CiAJfQogCkBAIC01ODIzLDYgKzU4NTQsNyBAQAogCXdyaXRlbCh0eHJlZywgYmFzZSArIE52UmVnVHJhbnNtaXRQb2xsKTsKIAogCXJjID0gbnZfb3BlbihkZXYpOworCW52X3NldF9tdWx0aWNhc3QoZGV2KTsKIG91dDoKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9mc19lbmV0L2ZzX2VuZXQtbWFpbi5jIGIvZHJpdmVycy9uZXQvZnNfZW5ldC9mc19lbmV0LW1haW4uYwppbmRleCA2N2I0YjA3Li5hNWJhYWY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9mc19lbmV0L2ZzX2VuZXQtbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2ZzX2VuZXQvZnNfZW5ldC1tYWluLmMKQEAgLTEwOTMsNyArMTA5Myw3IEBACiAJCWlmIChyZWdpc3RlcmVkKQogCQkJdW5yZWdpc3Rlcl9uZXRkZXYobmRldik7CiAKLQkJaWYgKGZlcCAhPSBOVUxMKSB7CisJCWlmIChmZXAgJiYgZmVwLT5vcHMpIHsKIAkJCSgqZmVwLT5vcHMtPmZyZWVfYmQpKG5kZXYpOwogCQkJKCpmZXAtPm9wcy0+Y2xlYW51cF9kYXRhKShuZGV2KTsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZnNfZW5ldC9tYWMtZmNjLmMgYi9kcml2ZXJzL25ldC9mc19lbmV0L21hYy1mY2MuYwppbmRleCBlMzYzMjExLi44MjY4YjM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9mc19lbmV0L21hYy1mY2MuYworKysgYi9kcml2ZXJzL25ldC9mc19lbmV0L21hYy1mY2MuYwpAQCAtNDYzLDYgKzQ2Myw5IEBACiAJZWxzZQogCQlDMzIoZmNjcCwgZmNjX2Zwc21yLCBGQ0NfUFNNUl9GREUgfCBGQ0NfUFNNUl9MUEIpOwogCisJLyogUmVzdG9yZSBtdWx0aWNhc3QgYW5kIHByb21pc2N1b3VzIHNldHRpbmdzICovCisJc2V0X211bHRpY2FzdF9saXN0KGRldik7CisKIAlTMzIoZmNjcCwgZmNjX2dmbXIsIEZDQ19HRk1SX0VOUiB8IEZDQ19HRk1SX0VOVCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2JheWNvbV9lcHAuYyBiL2RyaXZlcnMvbmV0L2hhbXJhZGlvL2JheWNvbV9lcHAuYwppbmRleCBkZGU5YzdlLi4wMGJjN2ZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMKKysrIGIvZHJpdmVycy9uZXQvaGFtcmFkaW8vYmF5Y29tX2VwcC5jCkBAIC05NTksNyArOTU5LDcgQEAKIAl1bnNpZ25lZCBjaGFyIHRtcFsxXTsKIAogCWJjLT53b3JrX3J1bm5pbmcgPSAwOwotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZiYy0+cnVuX3dvcmspOwogCWJjLT5zdGF0ID0gRVBQX0RDREJJVDsKIAl0bXBbMF0gPSAwOwogCXBwLT5vcHMtPmVwcF93cml0ZV9hZGRyKHBwLCB0bXAsIDEsIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vZG1hc2NjLmMgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9kbWFzY2MuYwppbmRleCAwYjk0ODMzLi5lOGNmYWRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby9kbWFzY2MuYworKysgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9kbWFzY2MuYwpAQCAtMTA3Nyw4ICsxMDc3LDYgQEAKIAogc3RhdGljIHZvaWQgc3RhcnRfdGltZXIoc3RydWN0IHNjY19wcml2ICpwcml2LCBpbnQgdCwgaW50IHIxNSkKIHsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCiAJb3V0Yihwcml2LT50bXJfbW9kZSwgcHJpdi0+dG1yX2N0cmwpOwogCWlmICh0ID09IDApIHsKIAkJdG1faXNyKHByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaGFtcmFkaW8vc2NjLmMgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9zY2MuYwppbmRleCBmOTA1MTU5Li40NWFlOWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9oYW1yYWRpby9zY2MuYworKysgYi9kcml2ZXJzL25ldC9oYW1yYWRpby9zY2MuYwpAQCAtMTM0MCw5ICsxMzQwLDEwIEBACiAJCWNhc2UgUEFSQU1fUlRTOgkKIAkJCWlmICggIShzY2MtPndyZWdbUjVdICYgUlRTKSApCiAJCQl7Ci0JCQkJaWYgKGFyZyAhPSBUWF9PRkYpCisJCQkJaWYgKGFyZyAhPSBUWF9PRkYpIHsKIAkJCQkJc2NjX2tleV90cngoc2NjLCBUWF9PTik7CiAJCQkJCXNjY19zdGFydF90eF90aW1lcihzY2MsIHRfdHhkZWxheSwgc2NjLT5raXNzLnR4ZGVsYXkpOworCQkJCX0KIAkJCX0gZWxzZSB7CiAJCQkJaWYgKGFyZyA9PSBUWF9PRkYpCiAJCQkJewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL0tjb25maWcKaW5kZXggMGQzZTczOC4uNzBhMzI3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9LY29uZmlnCkBAIC0xLDYgKzEsNyBAQAogY29uZmlnIElCTV9ORVdfRU1BQwogCXRyaXN0YXRlICJJQk0gRU1BQyBFdGhlcm5ldCBzdXBwb3J0IgogCWRlcGVuZHMgb24gUFBDX0RDUiAmJiBQUENfTUVSR0UKKwlzZWxlY3QgQ1JDMzIKIAloZWxwCiAJICBUaGlzIGRyaXZlciBzdXBwb3J0cyB0aGUgSUJNIEVNQUMgZmFtaWx5IG9mIEV0aGVybmV0IGNvbnRyb2xsZXJzCiAJICB0eXBpY2FsbHkgZm91bmQgb24gNHh4IGVtYmVkZGVkIFBvd2VyUEMgY2hpcHMsIGJ1dCBhbHNvIG9uIHRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvY29yZS5jIGIvZHJpdmVycy9uZXQvaWJtX25ld2VtYWMvY29yZS5jCmluZGV4IDVkMjEwOGMuLmJhYmM3OWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2libV9uZXdlbWFjL2NvcmUuYworKysgYi9kcml2ZXJzL25ldC9pYm1fbmV3ZW1hYy9jb3JlLmMKQEAgLTE2MzYsNiArMTYzNiwxMiBAQAogCQkJZ290byBuZXh0OwogCQl9CiAKKwkJaWYgKGxlbiA8IEVUSF9ITEVOKSB7CisJCQkrK2Rldi0+ZXN0YXRzLnJ4X2Ryb3BwZWRfc3RhY2s7CisJCQllbWFjX3JlY3ljbGVfcnhfc2tiKGRldiwgc2xvdCwgbGVuKTsKKwkJCWdvdG8gbmV4dDsKKwkJfQorCiAJCWlmIChsZW4gJiYgbGVuIDwgRU1BQ19SWF9DT1BZX1RIUkVTSCkgewogCQkJc3RydWN0IHNrX2J1ZmYgKmNvcHlfc2tiID0KIAkJCSAgICBhbGxvY19za2IobGVuICsgRU1BQ19SWF9TS0JfSEVBRFJPT00gKyAyLCBHRlBfQVRPTUlDKTsKQEAgLTI3MTksNiArMjcyNSw4IEBACiAJLyogQ2xlYW4gcmluZ3MgKi8KIAltZW1zZXQoZGV2LT50eF9kZXNjLCAwLCBOVU1fVFhfQlVGRiAqIHNpemVvZihzdHJ1Y3QgbWFsX2Rlc2NyaXB0b3IpKTsKIAltZW1zZXQoZGV2LT5yeF9kZXNjLCAwLCBOVU1fUlhfQlVGRiAqIHNpemVvZihzdHJ1Y3QgbWFsX2Rlc2NyaXB0b3IpKTsKKwltZW1zZXQoZGV2LT50eF9za2IsIDAsIE5VTV9UWF9CVUZGICogc2l6ZW9mKHN0cnVjdCBza19idWZmICopKTsKKwltZW1zZXQoZGV2LT5yeF9za2IsIDAsIE5VTV9SWF9CVUZGICogc2l6ZW9mKHN0cnVjdCBza19idWZmICopKTsKIAogCS8qIEF0dGFjaCB0byBaTUlJLCBpZiBuZWVkZWQgKi8KIAlpZiAoZW1hY19oYXNfZmVhdHVyZShkZXYsIEVNQUNfRlRSX0hBU19aTUlJKSAmJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWdiL2lnYl9tYWluLmMgYi9kcml2ZXJzL25ldC9pZ2IvaWdiX21haW4uYwppbmRleCBhZTM5OGYwLi5lNzlhMjZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pZ2IvaWdiX21haW4uYworKysgYi9kcml2ZXJzL25ldC9pZ2IvaWdiX21haW4uYwpAQCAtNzE4LDcgKzcxOCw4IEBACiAJYWRhcHRlci0+bGlua19zcGVlZCA9IDA7CiAJYWRhcHRlci0+bGlua19kdXBsZXggPSAwOwogCi0JaWdiX3Jlc2V0KGFkYXB0ZXIpOworCWlmICghcGNpX2NoYW5uZWxfb2ZmbGluZShhZGFwdGVyLT5wZGV2KSkKKwkJaWdiX3Jlc2V0KGFkYXB0ZXIpOwogCWlnYl9jbGVhbl9hbGxfdHhfcmluZ3MoYWRhcHRlcik7CiAJaWdiX2NsZWFuX2FsbF9yeF9yaW5ncyhhZGFwdGVyKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwZy5jIGIvZHJpdmVycy9uZXQvaXBnLmMKaW5kZXggOWIzNThmNi4uMmMwM2Y0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXBnLmMKKysrIGIvZHJpdmVycy9uZXQvaXBnLmMKQEAgLTU3NywxMiArNTc3LDEyIEBACiAJCS8qIE5JQyB0byBiZSBjb25maWd1cmVkIGluIHByb21pc2N1b3VzIG1vZGUuICovCiAJCXJlY2VpdmVtb2RlID0gSVBHX1JNX1JFQ0VJVkVBTExGUkFNRVM7CiAJfSBlbHNlIGlmICgoZGV2LT5mbGFncyAmIElGRl9BTExNVUxUSSkgfHwKLQkJICAgKGRldi0+ZmxhZ3MgJiBJRkZfTVVMVElDQVNUICYKKwkJICAgKChkZXYtPmZsYWdzICYgSUZGX01VTFRJQ0FTVCkgJiYKIAkJICAgIChkZXYtPm1jX2NvdW50ID4gSVBHX01VTFRJQ0FTVF9IQVNIVEFCTEVfU0laRSkpKSB7CiAJCS8qIE5JQyB0byBiZSBjb25maWd1cmVkIHRvIHJlY2VpdmUgYWxsIG11bHRpY2FzdAogCQkgKiBmcmFtZXMuICovCiAJCXJlY2VpdmVtb2RlIHw9IElQR19STV9SRUNFSVZFTVVMVElDQVNUOwotCX0gZWxzZSBpZiAoZGV2LT5mbGFncyAmIElGRl9NVUxUSUNBU1QgJiAoZGV2LT5tY19jb3VudCA+IDApKSB7CisJfSBlbHNlIGlmICgoZGV2LT5mbGFncyAmIElGRl9NVUxUSUNBU1QpICYmIChkZXYtPm1jX2NvdW50ID4gMCkpIHsKIAkJLyogTklDIHRvIGJlIGNvbmZpZ3VyZWQgdG8gcmVjZWl2ZSBzZWxlY3RlZAogCQkgKiBtdWx0aWNhc3QgYWRkcmVzc2VzLiAqLwogCQlyZWNlaXZlbW9kZSB8PSBJUEdfUk1fUkVDRUlWRU1VTFRJQ0FTVEhBU0g7CkBAIC0xMjcxLDcgKzEyNzEsNyBAQAogCiAJCQlmcmFtZWxlbiA9IGxlNjRfdG9fY3B1KHJ4ZmQtPnJmcykgJiBJUEdfUkZTX1JYRlJBTUVMRU47CiAKLQkJCWVuZGZyYW1lTGVuID0gZnJhbWVsZW4gLSBqdW1iby0+Y3VycmVudF9zaXplOworCQkJZW5kZnJhbWVsZW4gPSBmcmFtZWxlbiAtIGp1bWJvLT5jdXJyZW50X3NpemU7CiAJCQkvKgogCQkJaWYgKGZyYW1lbGVuID4gSVBHX1JYRlJBR19TSVpFKQogCQkJCWZyYW1lbGVuPUlQR19SWEZSQUdfU0laRTsKQEAgLTEyNzksOCArMTI3OSw4IEBACiAJCQlpZiAoZnJhbWVsZW4gPiBJUEdfUlhTVVBQT1JUX1NJWkUpCiAJCQkJZGV2X2tmcmVlX3NrYl9pcnEoanVtYm8tPnNrYik7CiAJCQllbHNlIHsKLQkJCQltZW1jcHkoc2tiX3B1dChqdW1iby0+c2tiLCBlbmRmcmFtZUxlbiksCi0JCQkJICAgICAgIHNrYi0+ZGF0YSwgZW5kZnJhbWVMZW4pOworCQkJCW1lbWNweShza2JfcHV0KGp1bWJvLT5za2IsIGVuZGZyYW1lbGVuKSwKKwkJCQkgICAgICAgc2tiLT5kYXRhLCBlbmRmcmFtZWxlbik7CiAKIAkJCQlqdW1iby0+c2tiLT5wcm90b2NvbCA9CiAJCQkJICAgIGV0aF90eXBlX3RyYW5zKGp1bWJvLT5za2IsIGRldik7CkBAIC0xMzUyLDE2ICsxMzUyLDE2IEBACiAKIAkJc3dpdGNoIChpcGdfbmljX3J4X2NoZWNrX2ZyYW1lX3R5cGUoZGV2KSkgewogCQljYXNlIEZSQU1FX1dJVEhfU1RBUlRfV0lUSF9FTkQ6Ci0JCQlpcGdfbmljX3J4X3dpdGhfc3RhcnRfYW5kX2VuZChkZXYsIHRwLCByeGZkLCBlbnRyeSk7CisJCQlpcGdfbmljX3J4X3dpdGhfc3RhcnRfYW5kX2VuZChkZXYsIHNwLCByeGZkLCBlbnRyeSk7CiAJCQlicmVhazsKIAkJY2FzZSBGUkFNRV9XSVRIX1NUQVJUOgotCQkJaXBnX25pY19yeF93aXRoX3N0YXJ0KGRldiwgdHAsIHJ4ZmQsIGVudHJ5KTsKKwkJCWlwZ19uaWNfcnhfd2l0aF9zdGFydChkZXYsIHNwLCByeGZkLCBlbnRyeSk7CiAJCQlicmVhazsKIAkJY2FzZSBGUkFNRV9XSVRIX0VORDoKLQkJCWlwZ19uaWNfcnhfd2l0aF9lbmQoZGV2LCB0cCwgcnhmZCwgZW50cnkpOworCQkJaXBnX25pY19yeF93aXRoX2VuZChkZXYsIHNwLCByeGZkLCBlbnRyeSk7CiAJCQlicmVhazsKIAkJY2FzZSBGUkFNRV9OT19TVEFSVF9OT19FTkQ6Ci0JCQlpcGdfbmljX3J4X25vX3N0YXJ0X25vX2VuZChkZXYsIHRwLCByeGZkLCBlbnRyeSk7CisJCQlpcGdfbmljX3J4X25vX3N0YXJ0X25vX2VuZChkZXYsIHNwLCByeGZkLCBlbnRyeSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTE4MDgsNyArMTgwOCw3IEBACiAJLyogaW5pdGlhbGl6ZSBKVU1CTyBGcmFtZSBjb250cm9sIHZhcmlhYmxlICovCiAJc3AtPmp1bWJvLmZvdW5kX3N0YXJ0ID0gMDsKIAlzcC0+anVtYm8uY3VycmVudF9zaXplID0gMDsKLQlzcC0+anVtYm8uc2tiID0gMDsKKwlzcC0+anVtYm8uc2tiID0gTlVMTDsKIAlkZXYtPm10dSA9IElQR19UWEZSQUdfU0laRTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL0tjb25maWcgYi9kcml2ZXJzL25ldC9pcmRhL0tjb25maWcKaW5kZXggY2U4MTZiYS4uZTYzMTc1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXJkYS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvS2NvbmZpZwpAQCAtMzI5LDYgKzMyOSw3IEBACiBjb25maWcgTUNTX0ZJUgogCXRyaXN0YXRlICJNb3NDaGlwIE1DUzc3ODAgSXJEQS1VU0IgZG9uZ2xlIgogCWRlcGVuZHMgb24gSVJEQSAmJiBVU0IgJiYgRVhQRVJJTUVOVEFMCisJc2VsZWN0IENSQzMyCiAJaGVscAogCSAgU2F5IFkgb3IgTSBoZXJlIGlmIHlvdSB3YW50IHRvIGJ1aWxkIHN1cHBvcnQgZm9yIHRoZSBNb3NDaGlwCiAJICBNQ1M3NzgwIElyREEtVVNCIGJyaWRnZSBkZXZpY2UgZHJpdmVyLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS9pcmRhLXVzYi5jIGIvZHJpdmVycy9uZXQvaXJkYS9pcmRhLXVzYi5jCmluZGV4IDZmNTBlZDcuLjE4YjQ3MWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvaXJkYS11c2IuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL2lyZGEtdXNiLmMKQEAgLTEwMjQsNyArMTAyNCw3IEBACiAgKiAgIFVwbG9hZCBmaXJtd2FyZSBjb2RlIHRvIFNpZ21hVGVsIDQyMVggSVJEQS1VU0IgZG9uZ2xlCiAgKi8KIHN0YXRpYyBpbnQgc3RpcjQyMXhfZndfdXBsb2FkKHN0cnVjdCBpcmRhX3VzYl9jYiAqc2VsZiwKLQkJCSAgICAgdW5zaWduZWQgY2hhciAqcGF0Y2gsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnBhdGNoLAogCQkJICAgICBjb25zdCB1bnNpZ25lZCBpbnQgcGF0Y2hfbGVuKQogewogICAgICAgICBpbnQgcmV0ID0gLUVOT01FTTsKQEAgLTEwNzMsMTEgKzEwNzMsMTEgQEAKICAgKi8KIHN0YXRpYyBpbnQgc3RpcjQyMXhfcGF0Y2hfZGV2aWNlKHN0cnVjdCBpcmRhX3VzYl9jYiAqc2VsZikKIHsKLSAgICAgICAgdW5zaWduZWQgaW50IGk7Ci0gICAgICAgIGludCByZXQ7Ci0gICAgICAgIGNoYXIgc3RpcjQyMXhfZndfbmFtZVsxMV07Ci0gICAgICAgIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgKmZ3X3ZlcnNpb25fcHRyOyAvKiBwb2ludGVyIHRvIHZlcnNpb24gc3RyaW5nICovCisJdW5zaWduZWQgaW50IGk7CisJaW50IHJldDsKKwljaGFyIHN0aXI0MjF4X2Z3X25hbWVbMTFdOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisJY29uc3QgdW5zaWduZWQgY2hhciAqZndfdmVyc2lvbl9wdHI7IC8qIHBvaW50ZXIgdG8gdmVyc2lvbiBzdHJpbmcgKi8KIAl1bnNpZ25lZCBsb25nIGZ3X3ZlcnNpb24gPSAwOwogCiAgICAgICAgIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL25zYy1pcmNjLmMgYi9kcml2ZXJzL25ldC9pcmRhL25zYy1pcmNjLmMKaW5kZXggYTc3MTRkYS4uZWZmYzFjZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXJkYS9uc2MtaXJjYy5jCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvbnNjLWlyY2MuYwpAQCAtMTUyLDYgKzE1Miw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IHBucF9kZXZpY2VfaWQgbnNjX2lyY2NfcG5wX3RhYmxlW10gPSB7CiAJeyAuaWQgPSAiTlNDNjAwMSIsIC5kcml2ZXJfZGF0YSA9IDAgfSwKIAl7IC5pZCA9ICJJQk0wMDcxIiwgLmRyaXZlcl9kYXRhID0gMCB9LAorCXsgLmlkID0gIkhXUEMyMjQiLCAuZHJpdmVyX2RhdGEgPSAwIH0sCiAJeyB9CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL3B4YWZpY3BfaXIuYyBiL2RyaXZlcnMvbmV0L2lyZGEvcHhhZmljcF9pci5jCmluZGV4IGQ1YzJkMjcuLmY3NmIwYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvcHhhZmljcF9pci5jCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvcHhhZmljcF9pci5jCkBAIC0xMywxNiArMTMsOCBAQAogICoKICAqLwogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgotI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvcG0uaD4KICNpbmNsdWRlIDxsaW51eC9jbGsuaD4KIAogI2luY2x1ZGUgPG5ldC9pcmRhL2lyZGEuaD4KQEAgLTMwLDE3ICsyMiw5IEBACiAjaW5jbHVkZSA8bmV0L2lyZGEvd3JhcHBlci5oPgogI2luY2x1ZGUgPG5ldC9pcmRhL2lyZGFfZGV2aWNlLmg+CiAKLSNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2RtYS5oPgotI2luY2x1ZGUgPGFzbS9kZWxheS5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lyZGEuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL3B4YTJ4eC1ncGlvLmg+Ci0KLSNpZmRlZiBDT05GSUdfTUFDSF9NQUlOU1RPTkUKLSNpbmNsdWRlIDxhc20vYXJjaC9tYWluc3RvbmUuaD4KLSNlbmRpZgogCiAjZGVmaW5lIElyU1JfUlhQTF9ORUdfSVNfWkVSTyAoMTw8NCkKICNkZWZpbmUgSXJTUl9SWFBMX1BPU19JU19aRVJPIDB4MApAQCAtMTYzLDEwICsxNDcsNiBAQAogCQkJLyogc2V0IGJvYXJkIHRyYW5zY2VpdmVyIHRvIFNJUiBtb2RlICovCiAJCQlzaS0+cGRhdGEtPnRyYW5zY2VpdmVyX21vZGUoc2ktPmRldiwgSVJfU0lSTU9ERSk7CiAKLQkJCS8qIGNvbmZpZ3VyZSBHUElPNDYvNDcgKi8KLQkJCXB4YV9ncGlvX21vZGUoR1BJTzQ2X1NUUlhEX01EKTsKLQkJCXB4YV9ncGlvX21vZGUoR1BJTzQ3X1NUVFhEX01EKTsKLQogCQkJLyogZW5hYmxlIHRoZSBTVFVBUlQgY2xvY2sgKi8KIAkJCXB4YV9pcmRhX2VuYWJsZV9zaXJjbGsoc2kpOwogCQl9CkBAIC0yMDEsMTAgKzE4MSw2IEBACiAJCS8qIHNldCBib2FyZCB0cmFuc2NlaXZlciB0byBGSVIgbW9kZSAqLwogCQlzaS0+cGRhdGEtPnRyYW5zY2VpdmVyX21vZGUoc2ktPmRldiwgSVJfRklSTU9ERSk7CiAKLQkJLyogY29uZmlndXJlIEdQSU80Ni80NyAqLwotCQlweGFfZ3Bpb19tb2RlKEdQSU80Nl9JQ1BSWERfTUQpOwotCQlweGFfZ3Bpb19tb2RlKEdQSU80N19JQ1BUWERfTUQpOwotCiAJCS8qIGVuYWJsZSB0aGUgRklDUCBjbG9jayAqLwogCQlweGFfaXJkYV9lbmFibGVfZmlyY2xrKHNpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXJkYS92aWEtaXJjYy5jIGIvZHJpdmVycy9uZXQvaXJkYS92aWEtaXJjYy5jCmluZGV4IDU4ZTEyODcuLjA0YWQzNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lyZGEvdmlhLWlyY2MuYworKysgYi9kcml2ZXJzL25ldC9pcmRhL3ZpYS1pcmNjLmMKQEAgLTE1NDYsNiArMTU0Niw3IEBACiAJCQlJUkRBX1dBUk5JTkcoIiVzLCB1bmFibGUgdG8gYWxsb2NhdGUgZG1hMj0lZFxuIiwKIAkJCQkgICAgIGRyaXZlcl9uYW1lLCBzZWxmLT5pby5kbWEyKTsKIAkJCWZyZWVfaXJxKHNlbGYtPmlvLmlycSwgc2VsZik7CisJCQlmcmVlX2RtYShzZWxmLT5pby5kbWEpOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KIAl9CkBAIC0xNjA2LDYgKzE2MDcsOCBAQAogCUVuQWxsSW50KGlvYmFzZSwgT0ZGKTsKIAlmcmVlX2lycShzZWxmLT5pby5pcnEsIGRldik7CiAJZnJlZV9kbWEoc2VsZi0+aW8uZG1hKTsKKwlpZiAoc2VsZi0+aW8uZG1hMiAhPSBzZWxmLT5pby5kbWEpCisJCWZyZWVfZG1hKHNlbGYtPmlvLmRtYTIpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV84MjU5OC5jIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfODI1OTguYwppbmRleCA2MzIxYjA1Li4yZjM4ZTg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV84MjU5OC5jCisrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlXzgyNTk4LmMKQEAgLTU4LDggKzU4LDggQEAKIAogc3RhdGljIHMzMiBpeGdiZV9nZXRfaW52YXJpYW50c184MjU5OChzdHJ1Y3QgaXhnYmVfaHcgKmh3KQogewotCWh3LT5tYWMubnVtX3J4X3F1ZXVlcyA9IElYR0JFXzgyNTk4X01BWF9UWF9RVUVVRVM7Ci0JaHctPm1hYy5udW1fdHhfcXVldWVzID0gSVhHQkVfODI1OThfTUFYX1JYX1FVRVVFUzsKKwlody0+bWFjLm51bV9yeF9xdWV1ZXMgPSBJWEdCRV84MjU5OF9NQVhfUlhfUVVFVUVTOworCWh3LT5tYWMubnVtX3R4X3F1ZXVlcyA9IElYR0JFXzgyNTk4X01BWF9UWF9RVUVVRVM7CiAJaHctPm1hYy5udW1fcnhfYWRkcnMgPSBJWEdCRV84MjU5OF9SQVJfRU5UUklFUzsKIAogCS8qIFBIWSBvcHMgYXJlIGZpbGxlZCBpbiBieSBkZWZhdWx0IHByb3Blcmx5IGZvciBGaWJlciBvbmx5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9tYWluLmMgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9tYWluLmMKaW5kZXggN2I4NTkyMi4uOGYwNDYwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX21haW4uYwpAQCAtMTk2OSw3ICsxOTY5LDggQEAKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwogCW5ldGlmX3N0b3BfcXVldWUobmV0ZGV2KTsKIAotCWl4Z2JlX3Jlc2V0KGFkYXB0ZXIpOworCWlmICghcGNpX2NoYW5uZWxfb2ZmbGluZShhZGFwdGVyLT5wZGV2KSkKKwkJaXhnYmVfcmVzZXQoYWRhcHRlcik7CiAJaXhnYmVfY2xlYW5fYWxsX3R4X3JpbmdzKGFkYXB0ZXIpOwogCWl4Z2JlX2NsZWFuX2FsbF9yeF9yaW5ncyhhZGFwdGVyKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjYi5jIGIvZHJpdmVycy9uZXQvbWFjYi5jCmluZGV4IDkyZGNjZDQuLjBhNTc0NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY2IuYworKysgYi9kcml2ZXJzL25ldC9tYWNiLmMKQEAgLTEyNzcsOCArMTI3Nyw0NSBAQAogCXJldHVybiAwOwogfQogCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IG1hY2Jfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7CisKKwluZXRpZl9kZXZpY2VfZGV0YWNoKG5ldGRldik7CisKKyNpZm5kZWYgQ09ORklHX0FSQ0hfQVQ5MQorCWNsa19kaXNhYmxlKGJwLT5oY2xrKTsKKyNlbmRpZgorCWNsa19kaXNhYmxlKGJwLT5wY2xrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1hY2JfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBtYWNiICpicCA9IG5ldGRldl9wcml2KG5ldGRldik7CisKKwljbGtfZW5hYmxlKGJwLT5wY2xrKTsKKyNpZm5kZWYgQ09ORklHX0FSQ0hfQVQ5MQorCWNsa19lbmFibGUoYnAtPmhjbGspOworI2VuZGlmCisKKwluZXRpZl9kZXZpY2VfYXR0YWNoKG5ldGRldik7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlCisjZGVmaW5lIG1hY2Jfc3VzcGVuZAlOVUxMCisjZGVmaW5lIG1hY2JfcmVzdW1lCU5VTEwKKyNlbmRpZgorCiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtYWNiX2RyaXZlciA9IHsKIAkucmVtb3ZlCQk9IF9fZXhpdF9wKG1hY2JfcmVtb3ZlKSwKKwkuc3VzcGVuZAk9IG1hY2Jfc3VzcGVuZCwKKwkucmVzdW1lCQk9IG1hY2JfcmVzdW1lLAogCS5kcml2ZXIJCT0gewogCQkubmFtZQkJPSAibWFjYiIsCiAJCS5vd25lcgk9IFRISVNfTU9EVUxFLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9mdy5jIGIvZHJpdmVycy9uZXQvbWx4NC9mdy5jCmluZGV4IGQ4MmYyNzUuLjJiNTAwNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvZncuYworKysgYi9kcml2ZXJzL25ldC9tbHg0L2Z3LmMKQEAgLTEwMSw2ICsxMDEsMzQgQEAKIAkJCW1seDRfZGJnKGRldiwgIiAgICAlc1xuIiwgZm5hbWVbaV0pOwogfQogCitpbnQgbWx4NF9NT0RfU1RBVF9DRkcoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X21vZF9zdGF0X2NmZyAqY2ZnKQoreworCXN0cnVjdCBtbHg0X2NtZF9tYWlsYm94ICptYWlsYm94OworCXUzMiAqaW5ib3g7CisJaW50IGVyciA9IDA7CisKKyNkZWZpbmUgTU9EX1NUQVRfQ0ZHX0lOX1NJWkUJCTB4MTAwCisKKyNkZWZpbmUgTU9EX1NUQVRfQ0ZHX1BHX1NaX01fT0ZGU0VUCTB4MDAyCisjZGVmaW5lIE1PRF9TVEFUX0NGR19QR19TWl9PRkZTRVQJMHgwMDMKKworCW1haWxib3ggPSBtbHg0X2FsbG9jX2NtZF9tYWlsYm94KGRldik7CisJaWYgKElTX0VSUihtYWlsYm94KSkKKwkJcmV0dXJuIFBUUl9FUlIobWFpbGJveCk7CisJaW5ib3ggPSBtYWlsYm94LT5idWY7CisKKwltZW1zZXQoaW5ib3gsIDAsIE1PRF9TVEFUX0NGR19JTl9TSVpFKTsKKworCU1MWDRfUFVUKGluYm94LCBjZmctPmxvZ19wZ19zeiwgTU9EX1NUQVRfQ0ZHX1BHX1NaX09GRlNFVCk7CisJTUxYNF9QVVQoaW5ib3gsIGNmZy0+bG9nX3BnX3N6X20sIE1PRF9TVEFUX0NGR19QR19TWl9NX09GRlNFVCk7CisKKwllcnIgPSBtbHg0X2NtZChkZXYsIG1haWxib3gtPmRtYSwgMCwgMCwgTUxYNF9DTURfTU9EX1NUQVRfQ0ZHLAorCQkJTUxYNF9DTURfVElNRV9DTEFTU19BKTsKKworCW1seDRfZnJlZV9jbWRfbWFpbGJveChkZXYsIG1haWxib3gpOworCXJldHVybiBlcnI7Cit9CisKIGludCBtbHg0X1FVRVJZX0RFVl9DQVAoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X2Rldl9jYXAgKmRldl9jYXApCiB7CiAJc3RydWN0IG1seDRfY21kX21haWxib3ggKm1haWxib3g7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg0L2Z3LmggYi9kcml2ZXJzL25ldC9tbHg0L2Z3LmgKaW5kZXggMzA2Y2I5Yi4uYTBlMDQ2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWx4NC9mdy5oCisrKyBiL2RyaXZlcnMvbmV0L21seDQvZncuaApAQCAtMzgsNiArMzgsMTEgQEAKICNpbmNsdWRlICJtbHg0LmgiCiAjaW5jbHVkZSAiaWNtLmgiCiAKK3N0cnVjdCBtbHg0X21vZF9zdGF0X2NmZyB7CisJdTggbG9nX3BnX3N6OworCXU4IGxvZ19wZ19zel9tOworfTsKKwogc3RydWN0IG1seDRfZGV2X2NhcCB7CiAJaW50IG1heF9zcnFfc3o7CiAJaW50IG1heF9xcF9zejsKQEAgLTE2Miw1ICsxNjcsNiBAQAogaW50IG1seDRfTUFQX0lDTV9BVVgoc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X2ljbSAqaWNtKTsKIGludCBtbHg0X1VOTUFQX0lDTV9BVVgoc3RydWN0IG1seDRfZGV2ICpkZXYpOwogaW50IG1seDRfTk9QKHN0cnVjdCBtbHg0X2RldiAqZGV2KTsKK2ludCBtbHg0X01PRF9TVEFUX0NGRyhzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfbW9kX3N0YXRfY2ZnICpjZmcpOwogCiAjZW5kaWYgLyogTUxYNF9GV19IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg0L21haW4uYyBiL2RyaXZlcnMvbmV0L21seDQvbWFpbi5jCmluZGV4IGE2YWE0OWYuLmQzNzM2MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21seDQvbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L21seDQvbWFpbi5jCkBAIC00ODUsNiArNDg1LDcgQEAKIAlzdHJ1Y3QgbWx4NF9wcml2CSAgKnByaXYgPSBtbHg0X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgbWx4NF9hZGFwdGVyCSAgIGFkYXB0ZXI7CiAJc3RydWN0IG1seDRfZGV2X2NhcAkgICBkZXZfY2FwOworCXN0cnVjdCBtbHg0X21vZF9zdGF0X2NmZyAgIG1seDRfY2ZnOwogCXN0cnVjdCBtbHg0X3Byb2ZpbGUJICAgcHJvZmlsZTsKIAlzdHJ1Y3QgbWx4NF9pbml0X2hjYV9wYXJhbSBpbml0X2hjYTsKIAl1NjQgaWNtX3NpemU7CkBAIC01MDIsNiArNTAzLDEyIEBACiAJCXJldHVybiBlcnI7CiAJfQogCisJbWx4NF9jZmcubG9nX3BnX3N6X20gPSAxOworCW1seDRfY2ZnLmxvZ19wZ19zeiA9IDA7CisJZXJyID0gbWx4NF9NT0RfU1RBVF9DRkcoZGV2LCAmbWx4NF9jZmcpOworCWlmIChlcnIpCisJCW1seDRfd2FybihkZXYsICJGYWlsZWQgdG8gb3ZlcnJpZGUgbG9nX3BnX3N6IHBhcmFtZXRlclxuIik7CisKIAllcnIgPSBtbHg0X2Rldl9jYXAoZGV2LCAmZGV2X2NhcCk7CiAJaWYgKGVycikgewogCQltbHg0X2VycihkZXYsICJRVUVSWV9ERVZfQ0FQIGNvbW1hbmQgZmFpbGVkLCBhYm9ydGluZy5cbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NC9tY2cuYyBiL2RyaXZlcnMvbmV0L21seDQvbWNnLmMKaW5kZXggNTdmN2YxZi4uYjRiNTc4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWx4NC9tY2cuYworKysgYi9kcml2ZXJzL25ldC9tbHg0L21jZy5jCkBAIC0zOCw2ICszOCw5IEBACiAKICNpbmNsdWRlICJtbHg0LmgiCiAKKyNkZWZpbmUgTUdNX1FQTl9NQVNLICAgICAgIDB4MDBGRkZGRkYKKyNkZWZpbmUgTUdNX0JMQ0tfTEJfQklUICAgIDMwCisKIHN0cnVjdCBtbHg0X21nbSB7CiAJX19iZTMyCQkJbmV4dF9naWRfaW5kZXg7CiAJX19iZTMyCQkJbWVtYmVyc19jb3VudDsKQEAgLTE1Myw3ICsxNTYsOCBAQAogCXJldHVybiBlcnI7CiB9CiAKLWludCBtbHg0X211bHRpY2FzdF9hdHRhY2goc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X3FwICpxcCwgdTggZ2lkWzE2XSkKK2ludCBtbHg0X211bHRpY2FzdF9hdHRhY2goc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X3FwICpxcCwgdTggZ2lkWzE2XSwKKwkJCSAgaW50IGJsb2NrX21jYXN0X2xvb3BiYWNrKQogewogCXN0cnVjdCBtbHg0X3ByaXYgKnByaXYgPSBtbHg0X3ByaXYoZGV2KTsKIAlzdHJ1Y3QgbWx4NF9jbWRfbWFpbGJveCAqbWFpbGJveDsKQEAgLTIwMiwxMyArMjA2LDE4IEBACiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG1lbWJlcnNfY291bnQ7ICsraSkKLQkJaWYgKG1nbS0+cXBbaV0gPT0gY3B1X3RvX2JlMzIocXAtPnFwbikpIHsKKwkJaWYgKChiZTMyX3RvX2NwdShtZ20tPnFwW2ldKSAmIE1HTV9RUE5fTUFTSykgPT0gcXAtPnFwbikgewogCQkJbWx4NF9kYmcoZGV2LCAiUVAgJTA2eCBhbHJlYWR5IGEgbWVtYmVyIG9mIE1HTVxuIiwgcXAtPnFwbik7CiAJCQllcnIgPSAwOwogCQkJZ290byBvdXQ7CiAJCX0KIAotCW1nbS0+cXBbbWVtYmVyc19jb3VudCsrXSA9IGNwdV90b19iZTMyKHFwLT5xcG4pOworCWlmIChibG9ja19tY2FzdF9sb29wYmFjaykKKwkJbWdtLT5xcFttZW1iZXJzX2NvdW50KytdID0gY3B1X3RvX2JlMzIoKHFwLT5xcG4gJiBNR01fUVBOX01BU0spIHwKKwkJCQkJCSAgICAgICAoMSA8PCBNR01fQkxDS19MQl9CSVQpKTsKKwllbHNlCisJCW1nbS0+cXBbbWVtYmVyc19jb3VudCsrXSA9IGNwdV90b19iZTMyKHFwLT5xcG4gJiBNR01fUVBOX01BU0spOworCiAJbWdtLT5tZW1iZXJzX2NvdW50ICAgICAgID0gY3B1X3RvX2JlMzIobWVtYmVyc19jb3VudCk7CiAKIAllcnIgPSBtbHg0X1dSSVRFX01DRyhkZXYsIGluZGV4LCBtYWlsYm94KTsKQEAgLTI4Myw3ICsyOTIsNyBAQAogCiAJbWVtYmVyc19jb3VudCA9IGJlMzJfdG9fY3B1KG1nbS0+bWVtYmVyc19jb3VudCk7CiAJZm9yIChsb2MgPSAtMSwgaSA9IDA7IGkgPCBtZW1iZXJzX2NvdW50OyArK2kpCi0JCWlmIChtZ20tPnFwW2ldID09IGNwdV90b19iZTMyKHFwLT5xcG4pKQorCQlpZiAoKGJlMzJfdG9fY3B1KG1nbS0+cXBbaV0pICYgTUdNX1FQTl9NQVNLKSA9PSBxcC0+cXBuKQogCQkJbG9jID0gaTsKIAogCWlmIChsb2MgPT0gLTEpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L215cmkxMGdlL215cmkxMGdlLmMgYi9kcml2ZXJzL25ldC9teXJpMTBnZS9teXJpMTBnZS5jCmluZGV4IGM5MWIxMmUuLjgyM2JiNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L215cmkxMGdlL215cmkxMGdlLmMKKysrIGIvZHJpdmVycy9uZXQvbXlyaTEwZ2UvbXlyaTEwZ2UuYwpAQCAtNzUsNyArNzUsNyBAQAogI2luY2x1ZGUgIm15cmkxMGdlX21jcC5oIgogI2luY2x1ZGUgIm15cmkxMGdlX21jcF9nZW5faGVhZGVyLmgiCiAKLSNkZWZpbmUgTVlSSTEwR0VfVkVSU0lPTl9TVFIgIjEuMy4yLTEuMjg3IgorI2RlZmluZSBNWVJJMTBHRV9WRVJTSU9OX1NUUiAiMS4zLjk5LTEuMzQ3IgogCiBNT0RVTEVfREVTQ1JJUFRJT04oIk15cmljb20gMTBHIGRyaXZlciAoMTBHYkUpIik7CiBNT0RVTEVfQVVUSE9SKCJNYWludGFpbmVyOiBoZWxwQG15cmkuY29tIik7CkBAIC01MjksNiArNTI5LDcgQEAKIAl1bnNpZ25lZCBjcmMsIHJlcmVhZF9jcmM7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmbWdwLT5wZGV2LT5kZXY7CisJdW5zaWduZWQgY2hhciAqZndfcmVhZGJhY2s7CiAJc3RydWN0IG1jcF9nZW5faGVhZGVyICpoZHI7CiAJc2l6ZV90IGhkcl9vZmZzZXQ7CiAJaW50IHN0YXR1czsKQEAgLTU3MSw5ICs1NzIsMTUgQEAKIAkJbWIoKTsKIAkJcmVhZGIobWdwLT5zcmFtKTsKIAl9CisJZndfcmVhZGJhY2sgPSB2bWFsbG9jKGZ3LT5zaXplKTsKKwlpZiAoIWZ3X3JlYWRiYWNrKSB7CisJCXN0YXR1cyA9IC1FTk9NRU07CisJCWdvdG8gYWJvcnRfd2l0aF9mdzsKKwl9CiAJLyogY29ycnVwdGlvbiBjaGVja2luZyBpcyBnb29kIGZvciBwYXJpdHkgcmVjb3ZlcnkgYW5kIGJ1Z2d5IGNoaXBzZXQgKi8KLQltZW1jcHlfZnJvbWlvKGZ3LT5kYXRhLCBtZ3AtPnNyYW0gKyBNWVJJMTBHRV9GV19PRkZTRVQsIGZ3LT5zaXplKTsKLQlyZXJlYWRfY3JjID0gY3JjMzIofjAsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CisJbWVtY3B5X2Zyb21pbyhmd19yZWFkYmFjaywgbWdwLT5zcmFtICsgTVlSSTEwR0VfRldfT0ZGU0VULCBmdy0+c2l6ZSk7CisJcmVyZWFkX2NyYyA9IGNyYzMyKH4wLCBmd19yZWFkYmFjaywgZnctPnNpemUpOworCXZmcmVlKGZ3X3JlYWRiYWNrKTsKIAlpZiAoY3JjICE9IHJlcmVhZF9jcmMpIHsKIAkJZGV2X2VycihkZXYsICJDUkMgZmFpbGVkKGZ3LWxlbj0ldSksIGdvdCAweCV4IChleHBlY3QgMHgleClcbiIsCiAJCQkodW5zaWduZWQpZnctPnNpemUsIHJlcmVhZF9jcmMsIGNyYyk7CkBAIC02MzEsNyArNjM4LDcgQEAKIAlyZXR1cm4gc3RhdHVzOwogfQogCi1pbnQgbXlyaTEwZ2VfZ2V0X2Zpcm13YXJlX2NhcGFiaWxpdGllcyhzdHJ1Y3QgbXlyaTEwZ2VfcHJpdiAqbWdwKQorc3RhdGljIGludCBteXJpMTBnZV9nZXRfZmlybXdhcmVfY2FwYWJpbGl0aWVzKHN0cnVjdCBteXJpMTBnZV9wcml2ICptZ3ApCiB7CiAJc3RydWN0IG15cmkxMGdlX2NtZCBjbWQ7CiAJaW50IHN0YXR1czsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljLmggYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pYy5oCmluZGV4IDhjYjI5ZjUuLmRhNGM0ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljLmgKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWMuaApAQCAtNzc2LDcgKzc3Niw2IEBACiAKIAl1OCByZXZpc2lvbl9pZDsKIAl1MTYgYm9hcmRfdHlwZTsKLQl1MTYgbWF4X3BvcnRzOwogCXN0cnVjdCBuZXR4ZW5fYm9hcmRfaW5mbyBib2FyZGNmZzsKIAl1MzIgeGdfbGlua3VwOwogCXUzMiBxZ19saW5rc3VwOwpAQCAtODYzLDYgKzg2Miw3IEBACiAJdW5zaWduZWQgY2hhciBtYWNfYWRkcltFVEhfQUxFTl07CiAJaW50IG10dTsKIAlpbnQgcG9ydG51bTsKKwl1OCBwaHlzaWNhbF9wb3J0OwogCiAJc3RydWN0IHdvcmtfc3RydWN0IHdhdGNoZG9nX3Rhc2s7CiAJc3RydWN0IHRpbWVyX2xpc3Qgd2F0Y2hkb2dfdGltZXI7CkBAIC0xMDM0LDcgKzEwMzQsNiBAQAogCiAvKiBGdW5jdGlvbnMgZnJvbSBuZXR4ZW5fbmljX2lzci5jICovCiB2b2lkIG5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfc3coc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKTsKLXZvaWQgbmV0eGVuX2luaXRpYWxpemVfYWRhcHRlcl9odyhzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpOwogdm9pZCAqbmV0eGVuX2FsbG9jKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBzaXplX3Qgc3osIGRtYV9hZGRyX3QgKiBwdHIsCiAJCSAgIHN0cnVjdCBwY2lfZGV2ICoqdXNlZF9kZXYpOwogdm9pZCBuZXR4ZW5faW5pdGlhbGl6ZV9hZGFwdGVyX29wcyhzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpOwpAQCAtMTA3NywyMCArMTA3Niw2IEBACiAKICNkZWZpbmUgTlVNX1NVUFBPUlRFRF9CT0FSRFMgQVJSQVlfU0laRShuZXR4ZW5fYm9hcmRzKQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2V0X2JyZF9wb3J0X2J5X3R5cGUodTMyIHR5cGUsIGludCAqcG9ydHMpCi17Ci0JaW50IGksIGZvdW5kID0gMDsKLQlmb3IgKGkgPSAwOyBpIDwgTlVNX1NVUFBPUlRFRF9CT0FSRFM7ICsraSkgewotCQlpZiAobmV0eGVuX2JvYXJkc1tpXS5icmR0eXBlID09IHR5cGUpIHsKLQkJCSpwb3J0cyA9IG5ldHhlbl9ib2FyZHNbaV0ucG9ydHM7Ci0JCQlmb3VuZCA9IDE7Ci0JCQlicmVhazsKLQkJfQotCX0KLQlpZiAoIWZvdW5kKQotCQkqcG9ydHMgPSAwOwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZ2V0X2JyZF9uYW1lX2J5X3R5cGUodTMyIHR5cGUsIGNoYXIgKm5hbWUpCiB7CiAJaW50IGksIGZvdW5kID0gMDsKQEAgLTExNjksNSArMTE1NCw0IEBACiAKIGV4dGVybiBzdHJ1Y3QgZXRodG9vbF9vcHMgbmV0eGVuX25pY19ldGh0b29sX29wczsKIAotZXh0ZXJuIGludCBwaHlzaWNhbF9wb3J0W107CS8qIHBoeXNpY2FsIHBvcnQgIyBmcm9tIHZpcnR1YWwgcG9ydC4qLwogI2VuZGlmCQkJCS8qIF9fTkVUWEVOX05JQ19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfZXRodG9vbC5jCmluZGV4IDZlOThkODMuLjcyMzQ4N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19ldGh0b29sLmMKQEAgLTM2OSw3ICszNjksNyBAQAogCQlmb3IgKGkgPSAzOyBuaXVfcmVnaXN0ZXJzW21vZGVdLnJlZ1tpIC0gM10gIT0gLTE7IGkrKykgewogCQkJLyogR0I6IHBvcnQgc3BlY2lmaWMgcmVnaXN0ZXJzICovCiAJCQlpZiAobW9kZSA9PSAwICYmIGkgPj0gMTkpCi0JCQkJd2luZG93ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXSAqCisJCQkJd2luZG93ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydCAqCiAJCQkJCU5FVFhFTl9OSUNfUE9SVF9XSU5ET1c7CiAKIAkJCU5FVFhFTl9OSUNfTE9DS0VEX1JFQURfUkVHKG5pdV9yZWdpc3RlcnNbbW9kZV0uCkBAIC01MjcsNyArNTI3LDcgQEAKIHsKIAlzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIgPSBuZXRkZXZfcHJpdihkZXYpOwogCV9fdTMyIHZhbDsKLQlpbnQgcG9ydCA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJaW50IHBvcnQgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCiAJaWYgKGFkYXB0ZXItPmFody5ib2FyZF90eXBlID09IE5FVFhFTl9OSUNfR0JFKSB7CiAJCWlmICgocG9ydCA8IDApIHx8IChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKSkKQEAgLTU3Myw3ICs1NzMsNyBAQAogewogCXN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciA9IG5ldGRldl9wcml2KGRldik7CiAJX191MzIgdmFsOwotCWludCBwb3J0ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcG9ydCA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJLyogcmVhZCBtb2RlICovCiAJaWYgKGFkYXB0ZXItPmFody5ib2FyZF90eXBlID09IE5FVFhFTl9OSUNfR0JFKSB7CiAJCWlmICgocG9ydCA8IDApIHx8IChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2h3LmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19ody5jCmluZGV4IGFmNzM1NjQuLmM0M2QwNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2h3LmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaHcuYwpAQCAtMzk2LDExICszOTYsOCBAQAogCX0KIAlhZGFwdGVyLT5pbnRyX3NjaGVtZSA9IHJlYWRsKAogCQlORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfTklDX0NBUEFCSUxJVElFU19GVykpOwotCXByaW50ayhLRVJOX05PVElDRSAiJXM6IEZXIGNhcGFiaWxpdGllczoweCV4XG4iLCBuZXR4ZW5fbmljX2RyaXZlcl9uYW1lLAotCQkJYWRhcHRlci0+aW50cl9zY2hlbWUpOwogCWFkYXB0ZXItPm1zaV9tb2RlID0gcmVhZGwoCiAJCU5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9OSUNfTVNJX01PREVfRlcpKTsKLQlEUFJJTlRLKElORk8sICJSZWNlaXZlIFBlZyByZWFkeSB0b28uIHN0YXJ0aW5nIHN0dWZmXG4iKTsKIAogCWFkZHIgPSBuZXR4ZW5fYWxsb2MoYWRhcHRlci0+YWh3LnBkZXYsCiAJCQkgICAgc2l6ZW9mKHN0cnVjdCBuZXR4ZW5fcmluZ19jdHgpICsKQEAgLTQwOCw4ICs0MDUsNiBAQAogCQkJICAgIChkbWFfYWRkcl90ICopICYgYWRhcHRlci0+Y3R4X2Rlc2NfcGh5c19hZGRyLAogCQkJICAgICZhZGFwdGVyLT5jdHhfZGVzY19wZGV2KTsKIAotCXByaW50ayhLRVJOX0lORk8gImN0eF9kZXNjX3BoeXNfYWRkcjogMHglbGx4XG4iLAotCSAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKSBhZGFwdGVyLT5jdHhfZGVzY19waHlzX2FkZHIpOwogCWlmIChhZGRyID09IE5VTEwpIHsKIAkJRFBSSU5USyhFUlIsICJiYWQgcmV0dXJuIGZyb20gcGNpX2FsbG9jX2NvbnNpc3RlbnRcbiIpOwogCQllcnIgPSAtRU5PTUVNOwpAQCAtNDI5LDggKzQyNCw2IEBACiAJCQkgICAgYWRhcHRlci0+bWF4X3R4X2Rlc2NfY291bnQsCiAJCQkgICAgKGRtYV9hZGRyX3QgKikgJiBody0+Y21kX2Rlc2NfcGh5c19hZGRyLAogCQkJICAgICZhZGFwdGVyLT5haHcuY21kX2Rlc2NfcGRldik7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiY21kX2Rlc2NfcGh5c19hZGRyOiAweCVsbHhcbiIsCi0JICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpIGh3LT5jbWRfZGVzY19waHlzX2FkZHIpOwogCiAJaWYgKGFkZHIgPT0gTlVMTCkgewogCQlEUFJJTlRLKEVSUiwgImJhZCByZXR1cm4gZnJvbSBwY2lfYWxsb2NfY29uc2lzdGVudFxuIik7CkBAIC0xMDMyLDE1ICsxMDI1LDE1IEBACiBpbnQgbmV0eGVuX25pY19zZXRfbXR1X2diKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciwgaW50IG5ld19tdHUpCiB7CiAJbmV0eGVuX25pY193cml0ZV93MChhZGFwdGVyLAotCQkJTkVUWEVOX05JVV9HQl9NQVhfRlJBTUVfU0laRSgKLQkJCQlwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dKSwgbmV3X210dSk7CisJCU5FVFhFTl9OSVVfR0JfTUFYX0ZSQU1FX1NJWkUoYWRhcHRlci0+cGh5c2ljYWxfcG9ydCksCisJCW5ld19tdHUpOwogCXJldHVybiAwOwogfQogCiBpbnQgbmV0eGVuX25pY19zZXRfbXR1X3hnYihzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBuZXdfbXR1KQogewogCW5ld19tdHUgKz0gTkVUWEVOX05JVV9IRFJTSVpFICsgTkVUWEVOX05JVV9UTFJTSVpFOwotCWlmIChwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dID09IDApCisJaWYgKGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQgPT0gMCkKIAkJbmV0eGVuX25pY193cml0ZV93MChhZGFwdGVyLCBORVRYRU5fTklVX1hHRV9NQVhfRlJBTUVfU0laRSwKIAkJCQluZXdfbXR1KTsKIAllbHNlCkBAIC0xMDUxLDcgKzEwNDQsNyBAQAogCiB2b2lkIG5ldHhlbl9uaWNfaW5pdF9uaXVfZ2Ioc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKQogewotCW5ldHhlbl9uaXVfZ2JlX2luaXRfcG9ydChhZGFwdGVyLCBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dKTsKKwluZXR4ZW5fbml1X2diZV9pbml0X3BvcnQoYWRhcHRlciwgYWRhcHRlci0+cGh5c2ljYWxfcG9ydCk7CiB9CiAKIHZvaWQKQEAgLTExMjcsNyArMTEyMCw2IEBACiAKIHZvaWQgbmV0eGVuX25pY19mbGFzaF9wcmludChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIpCiB7Ci0JaW50IHZhbGlkID0gMTsKIAl1MzIgZndfbWFqb3IgPSAwOwogCXUzMiBmd19taW5vciA9IDA7CiAJdTMyIGZ3X2J1aWxkID0gMDsKQEAgLTExMzcsNzAgKzExMjksNjIgQEAKIAlfX2xlMzIgKnB0cjMyOwogCiAJc3RydWN0IG5ldHhlbl9ib2FyZF9pbmZvICpib2FyZF9pbmZvID0gJihhZGFwdGVyLT5haHcuYm9hcmRjZmcpOwotCWlmIChib2FyZF9pbmZvLT5tYWdpYyAhPSBORVRYRU5fQkRJTkZPX01BR0lDKSB7Ci0JCXByaW50awotCQkgICAgKCJOZXRYZW4gVW5rbm93biBib2FyZCBjb25maWcsIFJlYWQgMHgleCBleHBlY3RlZCBhcyAweCV4XG4iLAotCQkgICAgIGJvYXJkX2luZm8tPm1hZ2ljLCBORVRYRU5fQkRJTkZPX01BR0lDKTsKLQkJdmFsaWQgPSAwOwotCX0KLQlpZiAoYm9hcmRfaW5mby0+aGVhZGVyX3ZlcnNpb24gIT0gTkVUWEVOX0JESU5GT19WRVJTSU9OKSB7Ci0JCXByaW50aygiTmV0WGVuIFVua25vd24gYm9hcmQgY29uZmlnIHZlcnNpb24uIgotCQkgICAgICAgIiBSZWFkICV4LCBleHBlY3RlZCAleFxuIiwKLQkJICAgICAgIGJvYXJkX2luZm8tPmhlYWRlcl92ZXJzaW9uLCBORVRYRU5fQkRJTkZPX1ZFUlNJT04pOwotCQl2YWxpZCA9IDA7Ci0JfQotCWlmICh2YWxpZCkgewotCQlwdHIzMiA9ICh1MzIgKikmc2VyaWFsX251bTsKLQkJYWRkciA9IE5FVFhFTl9VU0VSX1NUQVJUICsKLQkJICAgICAgIG9mZnNldG9mKHN0cnVjdCBuZXR4ZW5fbmV3X3VzZXJfaW5mbywgc2VyaWFsX251bSk7Ci0JCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJCWlmIChuZXR4ZW5fcm9tX2Zhc3RfcmVhZChhZGFwdGVyLCBhZGRyLCBwdHIzMikgPT0gLTEpIHsKLQkJCQlwcmludGsoIiVzOiBFUlJPUiByZWFkaW5nICVzIGJvYXJkIHVzZXJhcmVhLlxuIiwKLQkJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSwKLQkJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JCQkJcmV0dXJuOwotCQkJfQotCQkJcHRyMzIrKzsKLQkJCWFkZHIgKz0gc2l6ZW9mKHUzMik7Ci0JCX0KIAorCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDA7CisKKwlwdHIzMiA9ICh1MzIgKikmc2VyaWFsX251bTsKKwlhZGRyID0gTkVUWEVOX1VTRVJfU1RBUlQgKworCSAgICAgICBvZmZzZXRvZihzdHJ1Y3QgbmV0eGVuX25ld191c2VyX2luZm8sIHNlcmlhbF9udW0pOworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJaWYgKG5ldHhlbl9yb21fZmFzdF9yZWFkKGFkYXB0ZXIsIGFkZHIsIHB0cjMyKSA9PSAtMSkgeworCQkJcHJpbnRrKCIlczogRVJST1IgcmVhZGluZyAlcyBib2FyZCB1c2VyYXJlYS5cbiIsCisJCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSwKKwkJCSAgICAgICBuZXR4ZW5fbmljX2RyaXZlcl9uYW1lKTsKKwkJCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDE7CisJCQlyZXR1cm47CisJCX0KKwkJcHRyMzIrKzsKKwkJYWRkciArPSBzaXplb2YodTMyKTsKKwl9CisKKwlmd19tYWpvciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCisJCQkJCSAgICAgIE5FVFhFTl9GV19WRVJTSU9OX01BSk9SKSk7CisJZndfbWlub3IgPSByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLAorCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NSU5PUikpOworCWZ3X2J1aWxkID0KKwkgICAgcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgTkVUWEVOX0ZXX1ZFUlNJT05fU1VCKSk7CisKKwlpZiAoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7CiAJCWdldF9icmRfbmFtZV9ieV90eXBlKGJvYXJkX2luZm8tPmJvYXJkX3R5cGUsIGJyZF9uYW1lKTsKIAogCQlwcmludGsoIk5ldFhlbiAlcyBCb2FyZCBTL04gJXMgIENoaXAgaWQgMHgleFxuIiwKLQkJICAgICAgIGJyZF9uYW1lLCBzZXJpYWxfbnVtLCBib2FyZF9pbmZvLT5jaGlwX2lkKTsKLQotCQlwcmludGsoIk5ldFhlbiAlcyBCb2FyZCAjJWQsIENoaXAgaWQgMHgleFxuIiwKLQkJICAgICAgIGJvYXJkX2luZm8tPmJvYXJkX3R5cGUgPT0gMHgwYiA/ICJYR0IiIDogIkdCRSIsCi0JCSAgICAgICBib2FyZF9pbmZvLT5ib2FyZF9udW0sIGJvYXJkX2luZm8tPmNoaXBfaWQpOwotCQlmd19tYWpvciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCi0JCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NQUpPUikpOwotCQlmd19taW5vciA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsCi0JCQkJCQkgICAgICBORVRYRU5fRldfVkVSU0lPTl9NSU5PUikpOwotCQlmd19idWlsZCA9Ci0JCSAgICByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBORVRYRU5fRldfVkVSU0lPTl9TVUIpKTsKLQotCQlwcmludGsoIk5ldFhlbiBGaXJtd2FyZSB2ZXJzaW9uICVkLiVkLiVkXG4iLCBmd19tYWpvciwgZndfbWlub3IsCi0JCSAgICAgICBmd19idWlsZCk7CisJCQkJYnJkX25hbWUsIHNlcmlhbF9udW0sIGJvYXJkX2luZm8tPmNoaXBfaWQpOworCQlwcmludGsoIk5ldFhlbiBGaXJtd2FyZSB2ZXJzaW9uICVkLiVkLiVkXG4iLCBmd19tYWpvciwKKwkJCQlmd19taW5vciwgZndfYnVpbGQpOwogCX0KKwogCWlmIChmd19tYWpvciAhPSBfTkVUWEVOX05JQ19MSU5VWF9NQUpPUikgewotCQlwcmludGsoS0VSTl9FUlIgIlRoZSBtaXNtYXRjaCBpbiBkcml2ZXIgdmVyc2lvbiBhbmQgZmlybXdhcmUgIgotCQkgICAgICAgInZlcnNpb24gbWFqb3IgbnVtYmVyXG4iCi0JCSAgICAgICAiRHJpdmVyIHZlcnNpb24gbWFqb3IgbnVtYmVyID0gJWQgXHQiCi0JCSAgICAgICAiRmlybXdhcmUgdmVyc2lvbiBtYWpvciBudW1iZXIgPSAlZCBcbiIsCi0JCSAgICAgICBfTkVUWEVOX05JQ19MSU5VWF9NQUpPUiwgZndfbWFqb3IpOwogCQlhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2ggPSAxOwogCX0KIAlpZiAoZndfbWlub3IgIT0gX05FVFhFTl9OSUNfTElOVVhfTUlOT1IgJiYKIAkJCWZ3X21pbm9yICE9IChfTkVUWEVOX05JQ19MSU5VWF9NSU5PUiArIDEpKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiVGhlIG1pc21hdGNoIGluIGRyaXZlciB2ZXJzaW9uIGFuZCBmaXJtd2FyZSAiCi0JCSAgICAgICAidmVyc2lvbiBtaW5vciBudW1iZXJcbiIKLQkJICAgICAgICJEcml2ZXIgdmVyc2lvbiBtaW5vciBudW1iZXIgPSAlZCBcdCIKLQkJICAgICAgICJGaXJtd2FyZSB2ZXJzaW9uIG1pbm9yIG51bWJlciA9ICVkIFxuIiwKLQkJICAgICAgIF9ORVRYRU5fTklDX0xJTlVYX01JTk9SLCBmd19taW5vcik7CiAJCWFkYXB0ZXItPmRyaXZlcl9taXNtYXRjaCA9IDE7CiAJfQotCWlmIChhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpCi0JCXByaW50ayhLRVJOX0lORk8gIlVzZSB0aGUgZHJpdmVyIHdpdGggdmVyc2lvbiBubyAlZC4lZC54eHhcbiIsCi0JCSAgICAgICBmd19tYWpvciwgZndfbWlub3IpOworCWlmIChhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogZHJpdmVyIGFuZCBmaXJtd2FyZSB2ZXJzaW9uIG1pc21hdGNoXG4iLAorCQkJCWFkYXB0ZXItPm5ldGRldi0+bmFtZSk7CisJCXJldHVybjsKKwl9CisKKwlzd2l0Y2ggKGFkYXB0ZXItPmFody5ib2FyZF90eXBlKSB7CisJY2FzZSBORVRYRU5fTklDX0dCRToKKwkJZGV2X2luZm8oJmFkYXB0ZXItPnBkZXYtPmRldiwgIiVzOiBHYkUgcG9ydCBpbml0aWFsaXplZFxuIiwKKwkJCQlhZGFwdGVyLT5uZXRkZXYtPm5hbWUpOworCQlicmVhazsKKwljYXNlIE5FVFhFTl9OSUNfWEdCRToKKwkJZGV2X2luZm8oJmFkYXB0ZXItPnBkZXYtPmRldiwgIiVzOiBYR2JFIHBvcnQgaW5pdGlhbGl6ZWRcbiIsCisJCQkJYWRhcHRlci0+bmV0ZGV2LT5uYW1lKTsKKwkJYnJlYWs7CisJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19pbml0LmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19pbml0LmMKaW5kZXggNDVmYTMzZS4uNzBkMWIyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaW5pdC5jCisrKyBiL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2luaXQuYwpAQCAtMjAzLDIxICsyMDMsNiBAQAogCX0KIH0KIAotdm9pZCBuZXR4ZW5faW5pdGlhbGl6ZV9hZGFwdGVyX2h3KHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKLXsKLQlpbnQgcG9ydHMgPSAwOwotCXN0cnVjdCBuZXR4ZW5fYm9hcmRfaW5mbyAqYm9hcmRfaW5mbyA9ICYoYWRhcHRlci0+YWh3LmJvYXJkY2ZnKTsKLQotCWlmIChuZXR4ZW5fbmljX2dldF9ib2FyZF9pbmZvKGFkYXB0ZXIpICE9IDApCi0JCXByaW50aygiJXM6IEVycm9yIGdldHRpbmcgYm9hcmQgY29uZmlnIGluZm8uXG4iLAotCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JZ2V0X2JyZF9wb3J0X2J5X3R5cGUoYm9hcmRfaW5mby0+Ym9hcmRfdHlwZSwgJnBvcnRzKTsKLQlpZiAocG9ydHMgPT0gMCkKLQkJcHJpbnRrKEtFUk5fRVJSICIlczogVW5rbm93biBib2FyZCB0eXBlXG4iLAotCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JYWRhcHRlci0+YWh3Lm1heF9wb3J0cyA9IHBvcnRzOwotfQotCiB2b2lkIG5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfb3BzKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKIAlzd2l0Y2ggKGFkYXB0ZXItPmFody5ib2FyZF90eXBlKSB7CkBAIC03NjUsMTggKzc1MCwxMyBAQAogCiBpbnQgbmV0eGVuX3Bpbml0X2Zyb21fcm9tKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlciwgaW50IHZlcmJvc2UpCiB7Ci0JaW50IGFkZHIsIHZhbCwgc3RhdHVzOworCWludCBhZGRyLCB2YWw7CiAJaW50IG4sIGk7CiAJaW50IGluaXRfZGVsYXkgPSAwOwogCXN0cnVjdCBjcmJfYWRkcl9wYWlyICpidWY7CiAJdTMyIG9mZjsKIAogCS8qIHJlc2V0YWxsICovCi0Jc3RhdHVzID0gbmV0eGVuX25pY19nZXRfYm9hcmRfaW5mbyhhZGFwdGVyKTsKLQlpZiAoc3RhdHVzKQotCQlwcmludGsoIiVzOiBuZXR4ZW5fcGluaXRfZnJvbV9yb206IEVycm9yIGdldHRpbmcgYm9hcmQgaW5mb1xuIiwKLQkJICAgICAgIG5ldHhlbl9uaWNfZHJpdmVyX25hbWUpOwotCiAJbmV0eGVuX2NyYl93cml0ZWxpdF9hZGFwdGVyKGFkYXB0ZXIsIE5FVFhFTl9ST01VU0JfR0xCX1NXX1JFU0VULAogCQkJCSAgICBORVRYRU5fUk9NQlVTX1JFU0VUKTsKIApAQCAtODYwLDEwICs4NDAsMTAgQEAKIAkJCQluZXR4ZW5fbmljX3BjaV9jaGFuZ2VfY3Jid2luZG93KGFkYXB0ZXIsIDEpOwogCQkJfQogCQkJaWYgKGluaXRfZGVsYXkgPT0gMSkgewotCQkJCW1zbGVlcCgyMDAwKTsKKwkJCQltc2xlZXAoMTAwMCk7CiAJCQkJaW5pdF9kZWxheSA9IDA7CiAJCQl9Ci0JCQltc2xlZXAoMjApOworCQkJbXNsZWVwKDEpOwogCQl9CiAJCWtmcmVlKGJ1Zik7CiAKQEAgLTkzOCwxMiArOTE4LDI4IEBACiAKIHZvaWQgbmV0eGVuX2ZyZWVfYWRhcHRlcl9vZmZsb2FkKHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKKwlpbnQgaTsKKwogCWlmIChhZGFwdGVyLT5kdW1teV9kbWEuYWRkcikgewotCQlwY2lfZnJlZV9jb25zaXN0ZW50KGFkYXB0ZXItPmFody5wZGV2LAorCQlpID0gMTAwOworCQlkbyB7CisJCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3JlcXVlc3QoYWRhcHRlcikgPT0gMSkKKwkJCQlicmVhazsKKwkJCW1zbGVlcCg1MCk7CisJCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3BvbGxfcmVzdWx0KGFkYXB0ZXIpID09IDEpCisJCQkJYnJlYWs7CisJCX0gd2hpbGUgKC0taSk7CisKKwkJaWYgKGkpIHsKKwkJCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWRhcHRlci0+YWh3LnBkZXYsCiAJCQkJICAgIE5FVFhFTl9IT1NUX0RVTU1ZX0RNQV9TSVpFLAogCQkJCSAgICBhZGFwdGVyLT5kdW1teV9kbWEuYWRkciwKIAkJCQkgICAgYWRhcHRlci0+ZHVtbXlfZG1hLnBoeXNfYWRkcik7Ci0JCWFkYXB0ZXItPmR1bW15X2RtYS5hZGRyID0gTlVMTDsKKwkJCWFkYXB0ZXItPmR1bW15X2RtYS5hZGRyID0gTlVMTDsKKwkJfSBlbHNlIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCisJCQkJCWFkYXB0ZXItPm5ldGRldi0+bmFtZSk7CisJCX0KIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX2lzci5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKaW5kZXggZjQ4NzYxNS4uOTZjZWM0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfaXNyLmMKQEAgLTE0NSw3ICsxNDUsNyBAQAogCiAJLyogdmVyaWZ5IHRoZSBvZmZzZXQgKi8KIAl2YWwgPSByZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfWEdfU1RBVEUpKTsKLQl2YWwgPSB2YWwgPj4gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwl2YWwgPSB2YWwgPj4gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAlpZiAodmFsID09IGFkYXB0ZXItPmFody5xZ19saW5rc3VwKQogCQlyZXR1cm47CiAKQEAgLTE5OSw3ICsxOTksNyBAQAogCiAJLyogV0lORE9XID0gMSAqLwogCXZhbCA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9YR19TVEFURSkpOwotCXZhbCA+Pj0gKHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV0gKiA4KTsKKwl2YWwgPj49IChhZGFwdGVyLT5waHlzaWNhbF9wb3J0ICogOCk7CiAJdmFsICY9IDB4ZmY7CiAKIAlpZiAoYWRhcHRlci0+YWh3LnhnX2xpbmt1cCA9PSAxICYmIHZhbCAhPSBYR19MSU5LX1VQKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMgYi9kcml2ZXJzL25ldC9uZXR4ZW4vbmV0eGVuX25pY19tYWluLmMKaW5kZXggNzE0NGMyNS4uNjNjZDY3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX21haW4uYwpAQCAtNzAsMTcgKzcwLDE5IEBACiBzdGF0aWMgaXJxcmV0dXJuX3QgbmV0eGVuX2ludHIoaW50IGlycSwgdm9pZCAqZGF0YSk7CiBzdGF0aWMgaXJxcmV0dXJuX3QgbmV0eGVuX21zaV9pbnRyKGludCBpcnEsIHZvaWQgKmRhdGEpOwogCi1pbnQgcGh5c2ljYWxfcG9ydFtdID0gezAsIDEsIDIsIDN9OwotCiAvKiAgUENJIERldmljZSBJRCBUYWJsZSAgKi8KKyNkZWZpbmUgRU5UUlkoZGV2aWNlKSBcCisJe1BDSV9ERVZJQ0UoMHg0MDQwLCAoZGV2aWNlKSksIFwKKwkuY2xhc3MgPSBQQ0lfQ0xBU1NfTkVUV09SS19FVEhFUk5FVCA8PCA4LCAuY2xhc3NfbWFzayA9IH4wfQorCiBzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgbmV0eGVuX3BjaV90YmxbXSBfX2RldmluaXRkYXRhID0gewotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDAxKX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDIpfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAwMyl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDA0KX0sCi0Je1BDSV9ERVZJQ0UoMHg0MDQwLCAweDAwMDUpfSwKLQl7UENJX0RFVklDRSgweDQwNDAsIDB4MDAyNCl9LAotCXtQQ0lfREVWSUNFKDB4NDA0MCwgMHgwMDI1KX0sCisJRU5UUlkoMHgwMDAxKSwKKwlFTlRSWSgweDAwMDIpLAorCUVOVFJZKDB4MDAwMyksCisJRU5UUlkoMHgwMDA0KSwKKwlFTlRSWSgweDAwMDUpLAorCUVOVFJZKDB4MDAyNCksCisJRU5UUlkoMHgwMDI1KSwKIAl7MCx9CiB9OwogCkBAIC0yODgsMTAgKzI5MCwxMSBAQAogCWludCBwY2lfZnVuY19pZCA9IFBDSV9GVU5DKHBkZXYtPmRldmZuKTsKIAlERUNMQVJFX01BQ19CVUYobWFjKTsKIAotCXByaW50ayhLRVJOX0lORk8gIiVzIFxuIiwgbmV0eGVuX25pY19kcml2ZXJfc3RyaW5nKTsKKwlpZiAocGNpX2Z1bmNfaWQgPT0gMCkKKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXMgXG4iLCBuZXR4ZW5fbmljX2RyaXZlcl9zdHJpbmcpOwogCiAJaWYgKHBkZXYtPmNsYXNzICE9IDB4MDIwMDAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiJOZXRYZW4gZnVuY3Rpb24gJWQsIGNsYXNzICV4IHdpbGwgbm90ICIKKwkJcHJpbnRrKEtFUk5fREVCVUcgIk5ldFhlbiBmdW5jdGlvbiAlZCwgY2xhc3MgJXggd2lsbCBub3QgIgogCQkJCSJiZSBlbmFibGVkLlxuIixwY2lfZnVuY19pZCwgcGRldi0+Y2xhc3MpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBAIC00NTAsOCArNDUzLDEyIEBACiAJICovCiAJYWRhcHRlci0+Y3Vycl93aW5kb3cgPSAyNTU7CiAKLQkvKiBpbml0aWFsaXplIHRoZSBhZGFwdGVyICovCi0JbmV0eGVuX2luaXRpYWxpemVfYWRhcHRlcl9odyhhZGFwdGVyKTsKKwlpZiAobmV0eGVuX25pY19nZXRfYm9hcmRfaW5mbyhhZGFwdGVyKSAhPSAwKSB7CisJCXByaW50aygiJXM6IEVycm9yIGdldHRpbmcgYm9hcmQgY29uZmlnIGluZm8uXG4iLAorCQkgICAgICAgbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7CisJCWVyciA9IC1FSU87CisJCWdvdG8gZXJyX291dF9pb3VubWFwOworCX0KIAogCS8qCiAJICogIEFkYXB0ZXIgaW4gb3VyIGNhc2UgaXMgcXVhZCBwb3J0IHNvIGluaXRpYWxpemUgaXQgYmVmb3JlCkBAIC01MzAsMTcgKzUzNywxNSBAQAogCW5ldHhlbl9pbml0aWFsaXplX2FkYXB0ZXJfc3coYWRhcHRlcik7CS8qIGluaXRpYWxpemUgdGhlIGJ1ZmZlcnMgaW4gYWRhcHRlciAqLwogCiAJLyogTWV6eiBjYXJkcyBoYXZlIFBDSSBmdW5jdGlvbiAwLDIsMyBlbmFibGVkICovCi0JaWYgKChhZGFwdGVyLT5haHcuYm9hcmRjZmcuYm9hcmRfdHlwZSA9PSBORVRYRU5fQlJEVFlQRV9QMl9TQjMxXzEwR19JTUVaKQotCQkmJiAocGNpX2Z1bmNfaWQgPj0gMikpCisJc3dpdGNoIChhZGFwdGVyLT5haHcuYm9hcmRjZmcuYm9hcmRfdHlwZSkgeworCWNhc2UgTkVUWEVOX0JSRFRZUEVfUDJfU0IzMV8xMEdfSU1FWjoKKwljYXNlIE5FVFhFTl9CUkRUWVBFX1AyX1NCMzFfMTBHX0hNRVo6CisJCWlmIChwY2lfZnVuY19pZCA+PSAyKQogCQkJYWRhcHRlci0+cG9ydG51bSA9IHBjaV9mdW5jX2lkIC0gMjsKLQotI2lmZGVmIENPTkZJR19JQTY0Ci0JaWYoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7Ci0JCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKLQkJdWRlbGF5KDUwMCk7Ci0JCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKIAl9Ci0jZW5kaWYKIAogCWluaXRfdGltZXIoJmFkYXB0ZXItPndhdGNoZG9nX3RpbWVyKTsKIAlhZGFwdGVyLT5haHcueGdfbGlua3VwID0gMDsKQEAgLTYxMywxMSArNjE4LDE4IEBACiAJCQkJZXJyID0gLUVOT0RFVjsKIAkJCQlnb3RvIGVycl9vdXRfZnJlZV9kZXY7CiAJCSAgICB9CisJCX0gZWxzZSB7CisJCQl3cml0ZWwoMCwgTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwKKwkJCQkJCUNSQl9DTURQRUdfU1RBVEUpKTsKKwkJCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKKwkJCW1zbGVlcCgxKTsKKwkJCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOworCQkJbmV0eGVuX3BoYW50b21faW5pdChhZGFwdGVyLCBORVRYRU5fTklDX1BFR19UVU5FKTsKIAkJfQogCiAJCS8qIGNsZWFyIHRoZSByZWdpc3RlciBmb3IgZnV0dXJlIHVubG9hZHMvbG9hZHMgKi8KIAkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIE5FVFhFTl9DQU1fUkFNKDB4MWZjKSkpOwotCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCisJCWRldl9pbmZvKCZwZGV2LT5kZXYsICJjbWRwZWcgc3RhdGU6IDB4JTB4XG4iLAogCQkJcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgQ1JCX0NNRFBFR19TVEFURSkpKTsKIAogCQkvKgpAQCAtNjM5LDkgKzY1MSwxMCBAQAogCS8qCiAJICogU2VlIGlmIHRoZSBmaXJtd2FyZSBnYXZlIHVzIGEgdmlydHVhbC1waHlzaWNhbCBwb3J0IG1hcHBpbmcuCiAJICovCisJYWRhcHRlci0+cGh5c2ljYWxfcG9ydCA9IGFkYXB0ZXItPnBvcnRudW07CiAJaSA9IHJlYWRsKE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9WMlAoYWRhcHRlci0+cG9ydG51bSkpKTsKIAlpZiAoaSAhPSAweDU1NTU1NTU1KQotCQlwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dID0gaTsKKwkJYWRhcHRlci0+cGh5c2ljYWxfcG9ydCA9IGk7CiAKIAluZXRpZl9jYXJyaWVyX29mZihuZXRkZXYpOwogCW5ldGlmX3N0b3BfcXVldWUobmV0ZGV2KTsKQEAgLTY1NCwyMiArNjY3LDkgQEAKIAkJZ290byBlcnJfb3V0X2ZyZWVfZGV2OwogCX0KIAorCW5ldHhlbl9uaWNfZmxhc2hfcHJpbnQoYWRhcHRlcik7CiAJcGNpX3NldF9kcnZkYXRhKHBkZXYsIGFkYXB0ZXIpOwogCi0Jc3dpdGNoIChhZGFwdGVyLT5haHcuYm9hcmRfdHlwZSkgewotCQljYXNlIE5FVFhFTl9OSUNfR0JFOgotCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6IFFVQUQgR2JFIGJvYXJkIGluaXRpYWxpemVkXG4iLAotCQkJICAgICAgIG5ldHhlbl9uaWNfZHJpdmVyX25hbWUpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBORVRYRU5fTklDX1hHQkU6Ci0JCQlwcmludGsoS0VSTl9JTkZPICIlczogWEdiRSBib2FyZCBpbml0aWFsaXplZFxuIiwKLQkJCQkJbmV0eGVuX25pY19kcml2ZXJfbmFtZSk7Ci0JCQlicmVhazsKLQl9Ci0KLQlhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2ggPSAwOwotCiAJcmV0dXJuIDA7CiAKIGVycl9vdXRfZnJlZV9kZXY6CkBAIC03NjAsNTUgKzc2MCw4IEBACiAKIAl2ZnJlZShhZGFwdGVyLT5jbWRfYnVmX2Fycik7CiAKLQlpZiAoYWRhcHRlci0+cG9ydG51bSA9PSAwKSB7Ci0JCWlmIChpbml0X2Zpcm13YXJlX2RvbmUpIHsKLQkJCWkgPSAxMDA7Ci0JCQlkbyB7Ci0JCQkJaWYgKGRtYV93YXRjaGRvZ19zaHV0ZG93bl9yZXF1ZXN0KGFkYXB0ZXIpID09IDEpCi0JCQkJCWJyZWFrOwotCQkJCW1zbGVlcCgxMDApOwotCQkJCWlmIChkbWFfd2F0Y2hkb2dfc2h1dGRvd25fcG9sbF9yZXN1bHQoYWRhcHRlcikgPT0gMSkKLQkJCQkJYnJlYWs7Ci0JCQl9IHdoaWxlICgtLWkpOwotCi0JCQlpZiAoaSA9PSAwKQotCQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCi0JCQkJCQluZXRkZXYtPm5hbWUpOwotCi0JCQkvKiBjbGVhciB0aGUgcmVnaXN0ZXIgZm9yIGZ1dHVyZSB1bmxvYWRzL2xvYWRzICovCi0JCQl3cml0ZWwoMCwgTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgTkVUWEVOX0NBTV9SQU0oMHgxZmMpKSk7Ci0JCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCi0JCQkJcmVhZGwoTkVUWEVOX0NSQl9OT1JNQUxJWkUoYWRhcHRlciwgQ1JCX0NNRFBFR19TVEFURSkpKTsKLQotCQkJLyogbGVhdmUgdGhlIGh3IGluIHRoZSBzYW1lIHN0YXRlIGFzIHJlYm9vdCAqLwotCQkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIENSQl9DTURQRUdfU1RBVEUpKTsKLQkJCW5ldHhlbl9waW5pdF9mcm9tX3JvbShhZGFwdGVyLCAwKTsKLQkJCW1zbGVlcCgxKTsKLQkJCW5ldHhlbl9sb2FkX2Zpcm13YXJlKGFkYXB0ZXIpOwotCQkJbmV0eGVuX3BoYW50b21faW5pdChhZGFwdGVyLCBORVRYRU5fTklDX1BFR19UVU5FKTsKLQkJfQotCi0JCS8qIGNsZWFyIHRoZSByZWdpc3RlciBmb3IgZnV0dXJlIHVubG9hZHMvbG9hZHMgKi8KLQkJd3JpdGVsKDAsIE5FVFhFTl9DUkJfTk9STUFMSVpFKGFkYXB0ZXIsIE5FVFhFTl9DQU1fUkFNKDB4MWZjKSkpOwotCQlwcmludGsoS0VSTl9JTkZPICJTdGF0ZTogMHglMHhcbiIsCi0JCQlyZWFkbChORVRYRU5fQ1JCX05PUk1BTElaRShhZGFwdGVyLCBDUkJfQ01EUEVHX1NUQVRFKSkpOwotCi0JCWkgPSAxMDA7Ci0JCWRvIHsKLQkJCWlmIChkbWFfd2F0Y2hkb2dfc2h1dGRvd25fcmVxdWVzdChhZGFwdGVyKSA9PSAxKQotCQkJCWJyZWFrOwotCQkJbXNsZWVwKDEwMCk7Ci0JCQlpZiAoZG1hX3dhdGNoZG9nX3NodXRkb3duX3BvbGxfcmVzdWx0KGFkYXB0ZXIpID09IDEpCi0JCQkJYnJlYWs7Ci0JCX0gd2hpbGUgKC0taSk7Ci0KLQkJaWYgKGkpIHsKLQkJCW5ldHhlbl9mcmVlX2FkYXB0ZXJfb2ZmbG9hZChhZGFwdGVyKTsKLQkJfSBlbHNlIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IGRtYV93YXRjaGRvZ19zaHV0ZG93biBmYWlsZWRcbiIsCi0JCQkJCW5ldGRldi0+bmFtZSk7Ci0JCX0KLQl9CisJaWYgKGFkYXB0ZXItPnBvcnRudW0gPT0gMCkKKwkJbmV0eGVuX2ZyZWVfYWRhcHRlcl9vZmZsb2FkKGFkYXB0ZXIpOwogCiAJaWYgKGFkYXB0ZXItPmlycSkKIAkJZnJlZV9pcnEoYWRhcHRlci0+aXJxLCBhZGFwdGVyKTsKQEAgLTg0MCwxMyArNzkzLDE1IEBACiAJaXJxX2hhbmRsZXJfdCBoYW5kbGVyOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3MgPSBJUlFGX1NBTVBMRV9SQU5ET007CiAKKwlpZiAoYWRhcHRlci0+ZHJpdmVyX21pc21hdGNoKQorCQlyZXR1cm4gLUVJTzsKKwogCWlmIChhZGFwdGVyLT5pc191cCAhPSBORVRYRU5fQURBUFRFUl9VUF9NQUdJQykgewogCQllcnIgPSBuZXR4ZW5faW5pdF9maXJtd2FyZShhZGFwdGVyKTsKIAkJaWYgKGVyciAhPSAwKSB7CiAJCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBpbml0IGZpcm13YXJlXG4iKTsKIAkJCXJldHVybiAtRUlPOwogCQl9Ci0JCW5ldHhlbl9uaWNfZmxhc2hfcHJpbnQoYWRhcHRlcik7CiAKIAkJLyogc2V0dXAgYWxsIHRoZSByZXNvdXJjZXMgZm9yIHRoZSBQaGFudG9tLi4uICovCiAJCS8qIHRoaXMgaW5jbHVkZSB0aGUgZGVzY3JpcHRvcnMgZm9yIHJjdiwgdHgsIGFuZCBzdGF0dXMgKi8KQEAgLTg5NSwxNCArODUwLDEyIEBACiAJaWYgKGFkYXB0ZXItPnNldF9tdHUpCiAJCWFkYXB0ZXItPnNldF9tdHUoYWRhcHRlciwgbmV0ZGV2LT5tdHUpOwogCi0JaWYgKCFhZGFwdGVyLT5kcml2ZXJfbWlzbWF0Y2gpCi0JCW1vZF90aW1lcigmYWRhcHRlci0+d2F0Y2hkb2dfdGltZXIsIGppZmZpZXMpOworCW1vZF90aW1lcigmYWRhcHRlci0+d2F0Y2hkb2dfdGltZXIsIGppZmZpZXMpOwogCiAJbmFwaV9lbmFibGUoJmFkYXB0ZXItPm5hcGkpOwogCW5ldHhlbl9uaWNfZW5hYmxlX2ludChhZGFwdGVyKTsKIAotCWlmICghYWRhcHRlci0+ZHJpdmVyX21pc21hdGNoKQotCQluZXRpZl9zdGFydF9xdWV1ZShuZXRkZXYpOworCW5ldGlmX3N0YXJ0X3F1ZXVlKG5ldGRldik7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ldHhlbi9uZXR4ZW5fbmljX25pdS5jIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKaW5kZXggMWM4NTJhNy4uYTNiYzdjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKKysrIGIvZHJpdmVycy9uZXQvbmV0eGVuL25ldHhlbl9uaWNfbml1LmMKQEAgLTk0LDcgKzk0LDcgQEAKIAlsb25nIHRpbWVvdXQgPSAwOwogCWxvbmcgcmVzdWx0ID0gMDsKIAlsb25nIHJlc3RvcmUgPSAwOwotCWxvbmcgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlsb25nIHBoeSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJX191MzIgYWRkcmVzczsKIAlfX3UzMiBjb21tYW5kOwogCV9fdTMyIHN0YXR1czsKQEAgLTE5MCw3ICsxOTAsNyBAQAogCWxvbmcgdGltZW91dCA9IDA7CiAJbG9uZyByZXN1bHQgPSAwOwogCWxvbmcgcmVzdG9yZSA9IDA7Ci0JbG9uZyBwaHkgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCWxvbmcgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAlfX3UzMiBhZGRyZXNzOwogCV9fdTMyIGNvbW1hbmQ7CiAJX191MzIgc3RhdHVzOwpAQCAtNDU2LDcgKzQ1Niw3IEBACiAKIGludCBuZXR4ZW5fbml1X3hnX2luaXRfcG9ydChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsIGludCBwb3J0KQogewotCXUzMiBwb3J0bnVtID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwl1MzIgcG9ydG51bSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAKIAluZXR4ZW5fY3JiX3dyaXRlbGl0X2FkYXB0ZXIoYWRhcHRlciwKIAkJTkVUWEVOX05JVV9YR0VfQ09ORklHXzErKDB4MTAwMDAqcG9ydG51bSksIDB4MTQ0Nyk7CkBAIC01NzMsNyArNTczLDcgQEAKIHsKIAl1MzIgc3RhdGlvbmhpZ2g7CiAJdTMyIHN0YXRpb25sb3c7Ci0JaW50IHBoeSA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJaW50IHBoeSA9IGFkYXB0ZXItPnBoeXNpY2FsX3BvcnQ7CiAJdTggdmFsWzhdOwogCiAJaWYgKGFkZHIgPT0gTlVMTCkKQEAgLTYwNCw3ICs2MDQsNyBAQAogewogCXU4IHRlbXBbNF07CiAJdTMyIHZhbDsKLQlpbnQgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAl1bnNpZ25lZCBjaGFyIG1hY19hZGRyWzZdOwogCWludCBpOwogCURFQ0xBUkVfTUFDX0JVRihtYWMpOwpAQCAtNzI0LDcgKzcyNCw3IEBACiBpbnQgbmV0eGVuX25pdV9kaXNhYmxlX2diZV9wb3J0KHN0cnVjdCBuZXR4ZW5fYWRhcHRlciAqYWRhcHRlcikKIHsKIAlfX3UzMiBtYWNfY2ZnMDsKLQl1MzIgcG9ydCA9IHBoeXNpY2FsX3BvcnRbYWRhcHRlci0+cG9ydG51bV07CisJdTMyIHBvcnQgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCiAJaWYgKHBvcnQgPiBORVRYRU5fTklVX01BWF9HQkVfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzQwLDcgKzc0MCw3IEBACiBpbnQgbmV0eGVuX25pdV9kaXNhYmxlX3hnX3BvcnQoc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyKQogewogCV9fdTMyIG1hY19jZmc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfWEdfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNzU3LDcgKzc1Nyw3IEBACiAJCQkJICAgIG5ldHhlbl9uaXVfcHJvbV9tb2RlX3QgbW9kZSkKIHsKIAlfX3UzMiByZWc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfR0JFX1BPUlRTKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTgxNCw3ICs4MTQsNyBAQAogaW50IG5ldHhlbl9uaXVfeGdfbWFjYWRkcl9zZXQoc3RydWN0IG5ldHhlbl9hZGFwdGVyICphZGFwdGVyLAogCQkJICAgICAgbmV0eGVuX2V0aGVybmV0X21hY2FkZHJfdCBhZGRyKQogewotCWludCBwaHkgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCWludCBwaHkgPSBhZGFwdGVyLT5waHlzaWNhbF9wb3J0OwogCXU4IHRlbXBbNF07CiAJdTMyIHZhbDsKIApAQCAtODY3LDcgKzg2Nyw3IEBACiBpbnQgbmV0eGVuX25pdV94Z19tYWNhZGRyX2dldChzdHJ1Y3QgbmV0eGVuX2FkYXB0ZXIgKmFkYXB0ZXIsCiAJCQkgICAgICBuZXR4ZW5fZXRoZXJuZXRfbWFjYWRkcl90ICogYWRkcikKIHsKLQlpbnQgcGh5ID0gcGh5c2ljYWxfcG9ydFthZGFwdGVyLT5wb3J0bnVtXTsKKwlpbnQgcGh5ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAl1MzIgc3RhdGlvbmhpZ2g7CiAJdTMyIHN0YXRpb25sb3c7CiAJdTggdmFsWzhdOwpAQCAtODk2LDcgKzg5Niw3IEBACiAJCQkJICAgICAgIG5ldHhlbl9uaXVfcHJvbV9tb2RlX3QgbW9kZSkKIHsKIAlfX3UzMiByZWc7Ci0JdTMyIHBvcnQgPSBwaHlzaWNhbF9wb3J0W2FkYXB0ZXItPnBvcnRudW1dOworCXUzMiBwb3J0ID0gYWRhcHRlci0+cGh5c2ljYWxfcG9ydDsKIAogCWlmIChwb3J0ID4gTkVUWEVOX05JVV9NQVhfWEdfUE9SVFMpCiAJCXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jIGIvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jCmluZGV4IDNiMmE2YzU5OC4uOTkzZDg3YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGFzZW1pX21hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3Bhc2VtaV9tYWMuYwpAQCAtMjc3LDcgKzI3Nyw3IEBACiAJKnRjcGggPSB0Y3BfaGRyKHNrYik7CiAKIAkvKiBjaGVjayBpZiBpcCBoZWFkZXIgYW5kIHRjcCBoZWFkZXIgYXJlIGNvbXBsZXRlICovCi0JaWYgKGlwaC0+dG90X2xlbiA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKKwlpZiAobnRvaHMoaXBoLT50b3RfbGVuKSA8IGlwX2xlbiArIHRjcF9oZHJsZW4oc2tiKSkKIAkJcmV0dXJuIC0xOwogCiAJKmhkcl9mbGFncyA9IExST19JUFY0IHwgTFJPX1RDUDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BjbWNpYS9heG5ldF9jcy5jIGIvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKaW5kZXggY2U5NWM1ZC4uNzBkMDEyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKKysrIGIvZHJpdmVycy9uZXQvcGNtY2lhL2F4bmV0X2NzLmMKQEAgLTUyNSwxMiArNTI1LDE0IEBACiAgICAgaW50IHJldDsKICAgICBheG5ldF9kZXZfdCAqaW5mbyA9IFBSSVYoZGV2KTsKICAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluayA9IGluZm8tPnBfZGV2OworICAgIHVuc2lnbmVkIGludCBuaWNfYmFzZSA9IGRldi0+YmFzZV9hZGRyOwogICAgIAogICAgIERFQlVHKDIsICJheG5ldF9vcGVuKCclcycpXG4iLCBkZXYtPm5hbWUpOwogCiAgICAgaWYgKCFwY21jaWFfZGV2X3ByZXNlbnQobGluaykpCiAJcmV0dXJuIC1FTk9ERVY7CiAKKyAgICBvdXRiX3AoMHhGRiwgbmljX2Jhc2UgKyBFTjBfSVNSKTsgLyogQ2xlYXIgYm9ndXMgaW50ci4gKi8KICAgICByZXQgPSByZXF1ZXN0X2lycShkZXYtPmlycSwgZWlfaXJxX3dyYXBwZXIsIElSUUZfU0hBUkVELCAiYXhuZXRfY3MiLCBkZXYpOwogICAgIGlmIChyZXQpCiAJICAgIHJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY21jaWEvZm12ajE4eF9jcy5jIGIvZHJpdmVycy9uZXQvcGNtY2lhL2ZtdmoxOHhfY3MuYwppbmRleCA4ZjMyOGEwLi5hNTUwYzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wY21jaWEvZm12ajE4eF9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3BjbWNpYS9mbXZqMTh4X2NzLmMKQEAgLTM5MSw3ICszOTEsOSBAQAogCSAgICBjYXJkdHlwZSA9IENPTlRFQzsKIAkgICAgYnJlYWs7CiAJY2FzZSBNQU5GSURfRlVKSVRTVToKLQkgICAgaWYgKGxpbmstPmNhcmRfaWQgPT0gUFJPRElEX0ZVSklUU1VfTUJIMTAzMDIpCisJICAgIGlmIChsaW5rLT5jb25mLkNvbmZpZ0Jhc2UgPT0gMHgwZmUwKQorCQljYXJkdHlwZSA9IE1CSDEwMzAyOworCSAgICBlbHNlIGlmIChsaW5rLT5jYXJkX2lkID09IFBST0RJRF9GVUpJVFNVX01CSDEwMzAyKSAKICAgICAgICAgICAgICAgICAvKiBSQVRPQyBSRVgtNTU4OC85ODIyLzQ4ODYncyBQUk9ESUQgYXJlIDAwMDQoPU1CSDEwMzAyKSwKICAgICAgICAgICAgICAgICAgICBidXQgdGhlc2UgYXJlIE1CSDEwMzA0IGJhc2VkIGNhcmQuICovIAogCQljYXJkdHlwZSA9IE1CSDEwMzA0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGNtY2lhL3BjbmV0X2NzLmMgYi9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYwppbmRleCBmZDgxNThhLi4yZDRjNGFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYworKysgYi9kcml2ZXJzL25ldC9wY21jaWEvcGNuZXRfY3MuYwpAQCAtOTY5LDYgKzk2OSw3IEBACiAgICAgaW50IHJldDsKICAgICBwY25ldF9kZXZfdCAqaW5mbyA9IFBSSVYoZGV2KTsKICAgICBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqbGluayA9IGluZm8tPnBfZGV2OworICAgIHVuc2lnbmVkIGludCBuaWNfYmFzZSA9IGRldi0+YmFzZV9hZGRyOwogCiAgICAgREVCVUcoMiwgInBjbmV0X29wZW4oJyVzJylcbiIsIGRldi0+bmFtZSk7CiAKQEAgLTk3Niw2ICs5NzcsOCBAQAogCXJldHVybiAtRU5PREVWOwogCiAgICAgc2V0X21pc2NfcmVnKGRldik7CisKKyAgICBvdXRiX3AoMHhGRiwgbmljX2Jhc2UgKyBFTjBfSVNSKTsgLyogQ2xlYXIgYm9ndXMgaW50ci4gKi8KICAgICByZXQgPSByZXF1ZXN0X2lycShkZXYtPmlycSwgZWlfaXJxX3dyYXBwZXIsIElSUUZfU0hBUkVELCBkZXZfaW5mbywgZGV2KTsKICAgICBpZiAocmV0KQogCSAgICByZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGNtY2lhL3hpcmMycHNfY3MuYyBiL2RyaXZlcnMvbmV0L3BjbWNpYS94aXJjMnBzX2NzLmMKaW5kZXggZDA0MWY4My4uZjZjNDY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGNtY2lhL3hpcmMycHNfY3MuYworKysgYi9kcml2ZXJzL25ldC9wY21jaWEveGlyYzJwc19jcy5jCkBAIC0xNDYxLDIyICsxNDYxLDI1IEBACiBzZXRfbXVsdGljYXN0X2xpc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKICAgICB1bnNpZ25lZCBpbnQgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7CisgICAgdW5zaWduZWQgdmFsdWU7CiAKICAgICBTZWxlY3RQYWdlKDB4NDIpOworICAgIHZhbHVlID0gR2V0Qnl0ZShYSVJDUkVHNDJfU1dDMSkgJiAweEMwOworCiAgICAgaWYgKGRldi0+ZmxhZ3MgJiBJRkZfUFJPTUlTQykgeyAvKiBzbm9vcCAqLwotCVB1dEJ5dGUoWElSQ1JFRzQyX1NXQzEsIDB4MDYpOyAvKiBzZXQgTVBFIGFuZCBQTUUgKi8KKwlQdXRCeXRlKFhJUkNSRUc0Ml9TV0MxLCB2YWx1ZSB8IDB4MDYpOyAvKiBzZXQgTVBFIGFuZCBQTUUgKi8KICAgICB9IGVsc2UgaWYgKGRldi0+bWNfY291bnQgPiA5IHx8IChkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKSkgewotCVB1dEJ5dGUoWElSQ1JFRzQyX1NXQzEsIDB4MDIpOyAvKiBzZXQgTVBFICovCisJUHV0Qnl0ZShYSVJDUkVHNDJfU1dDMSwgdmFsdWUgfCAweDAyKTsgLyogc2V0IE1QRSAqLwogICAgIH0gZWxzZSBpZiAoZGV2LT5tY19jb3VudCkgewogCS8qIHRoZSBjaGlwIGNhbiBmaWx0ZXIgOSBhZGRyZXNzZXMgcGVyZmVjdGx5ICovCi0JUHV0Qnl0ZShYSVJDUkVHNDJfU1dDMSwgMHgwMSk7CisJUHV0Qnl0ZShYSVJDUkVHNDJfU1dDMSwgdmFsdWUgfCAweDAxKTsKIAlTZWxlY3RQYWdlKDB4NDApOwogCVB1dEJ5dGUoWElSQ1JFRzQwX0NNRDAsIE9mZmxpbmUpOwogCXNldF9hZGRyZXNzZXMoZGV2KTsKIAlTZWxlY3RQYWdlKDB4NDApOwogCVB1dEJ5dGUoWElSQ1JFRzQwX0NNRDAsIEVuYWJsZVJlY3YgfCBPbmxpbmUpOwogICAgIH0gZWxzZSB7IC8qIHN0YW5kYXJkIHVzYWdlICovCi0JUHV0Qnl0ZShYSVJDUkVHNDJfU1dDMSwgMHgwMCk7CisJUHV0Qnl0ZShYSVJDUkVHNDJfU1dDMSwgdmFsdWUgfCAweDAwKTsKICAgICB9CiAgICAgU2VsZWN0UGFnZSgwKTsKIH0KQEAgLTE3MjIsNiArMTcyNSw3IEBACiAKICAgICAvKiBlbmFibGUgcmVjZWl2ZXIgYW5kIHB1dCB0aGUgbWFjIG9ubGluZSAqLwogICAgIGlmIChmdWxsKSB7CisJc2V0X211bHRpY2FzdF9saXN0KGRldik7CiAJU2VsZWN0UGFnZSgweDQwKTsKIAlQdXRCeXRlKFhJUkNSRUc0MF9DTUQwLCBFbmFibGVSZWN2IHwgT25saW5lKTsKICAgICB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wY25ldDMyLmMgYi9kcml2ZXJzL25ldC9wY25ldDMyLmMKaW5kZXggYTFjNDU0ZC4uMWM4OWI5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGNuZXQzMi5jCisrKyBiL2RyaXZlcnMvbmV0L3BjbmV0MzIuYwpAQCAtMzI1LDcgKzMyNSw3IEBACiBzdGF0aWMgdm9pZCBwY25ldDMyX2dldF9yZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBldGh0b29sX3JlZ3MgKnJlZ3MsCiAJCQkgICAgIHZvaWQgKnB0cik7CiBzdGF0aWMgdm9pZCBwY25ldDMyX3B1cmdlX3R4X3Jpbmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7Ci1zdGF0aWMgaW50IHBjbmV0MzJfYWxsb2NfcmluZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjaGFyICpuYW1lKTsKK3N0YXRpYyBpbnQgcGNuZXQzMl9hbGxvY19yaW5nKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUpOwogc3RhdGljIHZvaWQgcGNuZXQzMl9mcmVlX3Jpbmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiBzdGF0aWMgdm9pZCBwY25ldDMyX2NoZWNrX21lZGlhKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB2ZXJib3NlKTsKIApAQCAtMTk4Myw3ICsxOTgzLDcgQEAKIH0KIAogLyogaWYgYW55IGFsbG9jYXRpb24gZmFpbHMsIGNhbGxlciBtdXN0IGFsc28gY2FsbCBwY25ldDMyX2ZyZWVfcmluZyAqLwotc3RhdGljIGludCBwY25ldDMyX2FsbG9jX3Jpbmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY2hhciAqbmFtZSkKK3N0YXRpYyBpbnQgcGNuZXQzMl9hbGxvY19yaW5nKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJc3RydWN0IHBjbmV0MzJfcHJpdmF0ZSAqbHAgPSBuZXRkZXZfcHJpdihkZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvS2NvbmZpZyBiL2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnCmluZGV4IDZiZjllNzYuLjZlYjJkMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnCisrKyBiL2RyaXZlcnMvbmV0L3BoeS9LY29uZmlnCkBAIC01LDcgKzUsNyBAQAogbWVudWNvbmZpZyBQSFlMSUIKIAl0cmlzdGF0ZSAiUEhZIERldmljZSBzdXBwb3J0IGFuZCBpbmZyYXN0cnVjdHVyZSIKIAlkZXBlbmRzIG9uICFTMzkwCi0JZGVwZW5kcyBvbiBORVRfRVRIRVJORVQgJiYgKEJST0tFTiB8fCAhUzM5MCkKKwlkZXBlbmRzIG9uIE5FVF9FVEhFUk5FVAogCWhlbHAKIAkgIEV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSB1c3VhbGx5IGF0dGFjaGVkIHRvIFBIWQogCSAgZGV2aWNlcy4gIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGluZnJhc3RydWN0dXJlIGZvcgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKaW5kZXggYWMzYzAxZC4uMTZhMGU3ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBAIC0yMDcsNiArMjA3LDcgQEAKIAogCXJldHVybiAwOwogfQorRVhQT1JUX1NZTUJPTChnZXRfcGh5X2lkKTsKIAogLyoqCiAgKiBnZXRfcGh5X2RldmljZSAtIHJlYWRzIHRoZSBzcGVjaWZpZWQgUEhZIGRldmljZSBhbmQgcmV0dXJucyBpdHMgQHBoeV9kZXZpY2Ugc3RydWN0CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHBfZ2VuZXJpYy5jIGIvZHJpdmVycy9uZXQvcHBwX2dlbmVyaWMuYwppbmRleCAxZjRjYTJiLi44MzYyNWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wcHBfZ2VuZXJpYy5jCisrKyBiL2RyaXZlcnMvbmV0L3BwcF9nZW5lcmljLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pZl9hcnAuaD4KICNpbmNsdWRlIDxsaW51eC9pcC5oPgogI2luY2x1ZGUgPGxpbnV4L3RjcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9yd3NlbS5oPgogI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPgpAQCAtMzUzLDYgKzM1NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgcHBwX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAkvKgogCSAqIFRoaXMgY291bGQgKHNob3VsZD8pIGJlIGVuZm9yY2VkIGJ5IHRoZSBwZXJtaXNzaW9ucyBvbiAvZGV2L3BwcC4KIAkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcG9lLmMgYi9kcml2ZXJzL25ldC9wcHBvZS5jCmluZGV4IDU4YTI2YTQuLmZjNmY0YjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcG9lLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwb2UuYwpAQCAtMzQxLDEyICszNDEsNiBAQAogCXN0cnVjdCBwcHBveF9zb2NrICpyZWxheV9wbzsKIAogCWlmIChzay0+c2tfc3RhdGUgJiBQUFBPWF9CT1VORCkgewotCQlzdHJ1Y3QgcHBwb2VfaGRyICpwaCA9IHBwcG9lX2hkcihza2IpOwotCQlpbnQgbGVuID0gbnRvaHMocGgtPmxlbmd0aCk7Ci0JCXNrYl9wdWxsX3Jjc3VtKHNrYiwgc2l6ZW9mKHN0cnVjdCBwcHBvZV9oZHIpKTsKLQkJaWYgKHBza2JfdHJpbV9yY3N1bShza2IsIGxlbikpCi0JCQlnb3RvIGFib3J0X2tmcmVlOwotCiAJCXBwcF9pbnB1dCgmcG8tPmNoYW4sIHNrYik7CiAJfSBlbHNlIGlmIChzay0+c2tfc3RhdGUgJiBQUFBPWF9SRUxBWSkgewogCQlyZWxheV9wbyA9IGdldF9pdGVtX2J5X2FkZHIoJnBvLT5wcHBvZV9yZWxheSk7CkBAIC0zNTcsNyArMzUxLDYgQEAKIAkJaWYgKChza19wcHBveChyZWxheV9wbyktPnNrX3N0YXRlICYgUFBQT1hfQ09OTkVDVEVEKSA9PSAwKQogCQkJZ290byBhYm9ydF9wdXQ7CiAKLQkJc2tiX3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IHBwcG9lX2hkcikpOwogCQlpZiAoIV9fcHBwb2VfeG1pdChza19wcHBveChyZWxheV9wbyksIHNrYikpCiAJCQlnb3RvIGFib3J0X3B1dDsKIAl9IGVsc2UgewpAQCAtMzg4LDYgKzM4MSw3IEBACiB7CiAJc3RydWN0IHBwcG9lX2hkciAqcGg7CiAJc3RydWN0IHBwcG94X3NvY2sgKnBvOworCWludCBsZW47CiAKIAlpZiAoIShza2IgPSBza2Jfc2hhcmVfY2hlY2soc2tiLCBHRlBfQVRPTUlDKSkpCiAJCWdvdG8gb3V0OwpAQCAtMzk5LDEwICszOTMsMjEgQEAKIAkJZ290byBkcm9wOwogCiAJcGggPSBwcHBvZV9oZHIoc2tiKTsKKwlsZW4gPSBudG9ocyhwaC0+bGVuZ3RoKTsKKworCXNrYl9wdWxsX3Jjc3VtKHNrYiwgc2l6ZW9mKCpwaCkpOworCWlmIChza2ItPmxlbiA8IGxlbikKKwkJZ290byBkcm9wOwogCiAJcG8gPSBnZXRfaXRlbShwaC0+c2lkLCBldGhfaGRyKHNrYiktPmhfc291cmNlLCBkZXYtPmlmaW5kZXgpOwotCWlmIChwbyAhPSBOVUxMKQotCQlyZXR1cm4gc2tfcmVjZWl2ZV9za2Ioc2tfcHBwb3gocG8pLCBza2IsIDApOworCWlmICghcG8pCisJCWdvdG8gZHJvcDsKKworCWlmIChwc2tiX3RyaW1fcmNzdW0oc2tiLCBsZW4pKQorCQlnb3RvIGRyb3A7CisKKwlyZXR1cm4gc2tfcmVjZWl2ZV9za2Ioc2tfcHBwb3gocG8pLCBza2IsIDApOworCiBkcm9wOgogCWtmcmVlX3NrYihza2IpOwogb3V0OgpAQCAtNDI3LDEyICs0MzIsMTIgQEAKIAlpZiAoZGV2X25ldChkZXYpICE9ICZpbml0X25ldCkKIAkJZ290byBhYm9ydDsKIAotCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgcHBwb2VfaGRyKSkpCi0JCWdvdG8gYWJvcnQ7Ci0KIAlpZiAoIShza2IgPSBza2Jfc2hhcmVfY2hlY2soc2tiLCBHRlBfQVRPTUlDKSkpCiAJCWdvdG8gb3V0OwogCisJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBwcHBvZV9oZHIpKSkKKwkJZ290byBhYm9ydDsKKwogCXBoID0gcHBwb2VfaGRyKHNrYik7CiAJaWYgKHBoLT5jb2RlICE9IFBBRFRfQ09ERSkKIAkJZ290byBhYm9ydDsKQEAgLTkzNywxMiArOTQyLDEwIEBACiAJbS0+bXNnX25hbWVsZW4gPSAwOwogCiAJaWYgKHNrYikgewotCQlzdHJ1Y3QgcHBwb2VfaGRyICpwaCA9IHBwcG9lX2hkcihza2IpOwotCQljb25zdCBpbnQgbGVuID0gbnRvaHMocGgtPmxlbmd0aCk7Ci0KLQkJZXJyb3IgPSBtZW1jcHlfdG9pb3ZlYyhtLT5tc2dfaW92LCAodW5zaWduZWQgY2hhciAqKSAmcGgtPnRhZ1swXSwgbGVuKTsKKwkJdG90YWxfbGVuID0gbWluX3Qoc2l6ZV90LCB0b3RhbF9sZW4sIHNrYi0+bGVuKTsKKwkJZXJyb3IgPSBza2JfY29weV9kYXRhZ3JhbV9pb3ZlYyhza2IsIDAsIG0tPm1zZ19pb3YsIHRvdGFsX2xlbik7CiAJCWlmIChlcnJvciA9PSAwKQotCQkJZXJyb3IgPSBsZW47CisJCQllcnJvciA9IHRvdGFsX2xlbjsKIAl9CiAKIAlrZnJlZV9za2Ioc2tiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BwcG9sMnRwLmMgYi9kcml2ZXJzL25ldC9wcHBvbDJ0cC5jCmluZGV4IDhkYjM0MmYuLmY5Mjk4ODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcG9sMnRwLmMKKysrIGIvZHJpdmVycy9uZXQvcHBwb2wydHAuYwpAQCAtMjQwLDEyICsyNDAsMTUgQEAKIAlpZiAoc2sgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlzb2NrX2hvbGQoc2spOwogCXNlc3Npb24gPSAoc3RydWN0IHBwcG9sMnRwX3Nlc3Npb24gKikoc2stPnNrX3VzZXJfZGF0YSk7Ci0JaWYgKHNlc3Npb24gPT0gTlVMTCkKLQkJcmV0dXJuIE5VTEw7CisJaWYgKHNlc3Npb24gPT0gTlVMTCkgeworCQlzb2NrX3B1dChzayk7CisJCWdvdG8gb3V0OworCX0KIAogCUJVR19PTihzZXNzaW9uLT5tYWdpYyAhPSBMMlRQX1NFU1NJT05fTUFHSUMpOwotCitvdXQ6CiAJcmV0dXJuIHNlc3Npb247CiB9CiAKQEAgLTI1NiwxMiArMjU5LDE1IEBACiAJaWYgKHNrID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwogCisJc29ja19ob2xkKHNrKTsKIAl0dW5uZWwgPSAoc3RydWN0IHBwcG9sMnRwX3R1bm5lbCAqKShzay0+c2tfdXNlcl9kYXRhKTsKLQlpZiAodHVubmVsID09IE5VTEwpCi0JCXJldHVybiBOVUxMOworCWlmICh0dW5uZWwgPT0gTlVMTCkgeworCQlzb2NrX3B1dChzayk7CisJCWdvdG8gb3V0OworCX0KIAogCUJVR19PTih0dW5uZWwtPm1hZ2ljICE9IEwyVFBfVFVOTkVMX01BR0lDKTsKLQorb3V0OgogCXJldHVybiB0dW5uZWw7CiB9CiAKQEAgLTcxNiwxMiArNzIyLDE0IEBACiAJc2Vzc2lvbi0+c3RhdHMucnhfZXJyb3JzKys7CiAJa2ZyZWVfc2tiKHNrYik7CiAJc29ja19wdXQoc2Vzc2lvbi0+c29jayk7CisJc29ja19wdXQoc29jayk7CiAKIAlyZXR1cm4gMDsKIAogZXJyb3I6CiAJLyogUHV0IFVEUCBoZWFkZXIgYmFjayAqLwogCV9fc2tiX3B1c2goc2tiLCBzaXplb2Yoc3RydWN0IHVkcGhkcikpOworCXNvY2tfcHV0KHNvY2spOwogCiBub190dW5uZWw6CiAJcmV0dXJuIDE7CkBAIC03NDUsMTAgKzc1MywxMyBAQAogCSAgICAgICAiJXM6IHJlY2VpdmVkICVkIGJ5dGVzXG4iLCB0dW5uZWwtPm5hbWUsIHNrYi0+bGVuKTsKIAogCWlmIChwcHBvbDJ0cF9yZWN2X2NvcmUoc2ssIHNrYikpCi0JCWdvdG8gcGFzc191cDsKKwkJZ290byBwYXNzX3VwX3B1dDsKIAorCXNvY2tfcHV0KHNrKTsKIAlyZXR1cm4gMDsKIAorcGFzc191cF9wdXQ6CisJc29ja19wdXQoc2spOwogcGFzc191cDoKIAlyZXR1cm4gMTsKIH0KQEAgLTc3MiwxNCArNzgzLDE4IEBACiAJZXJyID0gMDsKIAlza2IgPSBza2JfcmVjdl9kYXRhZ3JhbShzaywgZmxhZ3MgJiB+TVNHX0RPTlRXQUlULAogCQkJCWZsYWdzICYgTVNHX0RPTlRXQUlULCAmZXJyKTsKLQlpZiAoc2tiKSB7Ci0JCWVyciA9IG1lbWNweV90b2lvdmVjKG1zZy0+bXNnX2lvdiwgKHVuc2lnbmVkIGNoYXIgKikgc2tiLT5kYXRhLAotCQkJCSAgICAgc2tiLT5sZW4pOwotCQlpZiAoZXJyIDwgMCkKLQkJCWdvdG8gZG9fc2tiX2ZyZWU7Ci0JCWVyciA9IHNrYi0+bGVuOwotCX0KLWRvX3NrYl9mcmVlOgorCWlmICghc2tiKQorCQlnb3RvIGVuZDsKKworCWlmIChsZW4gPiBza2ItPmxlbikKKwkJbGVuID0gc2tiLT5sZW47CisJZWxzZSBpZiAobGVuIDwgc2tiLT5sZW4pCisJCW1zZy0+bXNnX2ZsYWdzIHw9IE1TR19UUlVOQzsKKworCWVyciA9IHNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKHNrYiwgMCwgbXNnLT5tc2dfaW92LCBsZW4pOworCWlmIChsaWtlbHkoZXJyID09IDApKQorCQllcnIgPSBsZW47CisKIAlrZnJlZV9za2Ioc2tiKTsKIGVuZDoKIAlyZXR1cm4gZXJyOwpAQCAtODU4LDcgKzg3Myw3IEBACiAKIAl0dW5uZWwgPSBwcHBvbDJ0cF9zb2NrX3RvX3R1bm5lbChzZXNzaW9uLT50dW5uZWxfc29jayk7CiAJaWYgKHR1bm5lbCA9PSBOVUxMKQotCQlnb3RvIGVycm9yOworCQlnb3RvIGVycm9yX3B1dF9zZXNzOwogCiAJLyogV2hhdCBoZWFkZXIgbGVuZ3RoIGlzIGNvbmZpZ3VyZWQgZm9yIHRoaXMgc2Vzc2lvbj8gKi8KIAloZHJfbGVuID0gcHBwb2wydHBfbDJ0cF9oZWFkZXJfbGVuKHNlc3Npb24pOwpAQCAtODcwLDcgKzg4NSw3IEBACiAJCQkgICBzaXplb2YocHBwaCkgKyB0b3RhbF9sZW4sCiAJCQkgICAwLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNrYikKLQkJZ290byBlcnJvcjsKKwkJZ290byBlcnJvcl9wdXRfc2Vzc190dW47CiAKIAkvKiBSZXNlcnZlIHNwYWNlIGZvciBoZWFkZXJzLiAqLwogCXNrYl9yZXNlcnZlKHNrYiwgTkVUX1NLQl9QQUQpOwpAQCAtOTAwLDcgKzkxNSw3IEBACiAJZXJyb3IgPSBtZW1jcHlfZnJvbWlvdmVjKHNrYi0+ZGF0YSwgbS0+bXNnX2lvdiwgdG90YWxfbGVuKTsKIAlpZiAoZXJyb3IgPCAwKSB7CiAJCWtmcmVlX3NrYihza2IpOwotCQlnb3RvIGVycm9yOworCQlnb3RvIGVycm9yX3B1dF9zZXNzX3R1bjsKIAl9CiAJc2tiX3B1dChza2IsIHRvdGFsX2xlbik7CiAKQEAgLTk0NywxMCArOTYyLDMzIEBACiAJCXNlc3Npb24tPnN0YXRzLnR4X2Vycm9ycysrOwogCX0KIAorCXJldHVybiBlcnJvcjsKKworZXJyb3JfcHV0X3Nlc3NfdHVuOgorCXNvY2tfcHV0KHNlc3Npb24tPnR1bm5lbF9zb2NrKTsKK2Vycm9yX3B1dF9zZXNzOgorCXNvY2tfcHV0KHNrKTsKIGVycm9yOgogCXJldHVybiBlcnJvcjsKIH0KIAorLyogQXV0b21hdGljYWxseSBjYWxsZWQgd2hlbiB0aGUgc2tiIGlzIGZyZWVkLgorICovCitzdGF0aWMgdm9pZCBwcHBvbDJ0cF9zb2NrX3dmcmVlKHN0cnVjdCBza19idWZmICpza2IpCit7CisJc29ja19wdXQoc2tiLT5zayk7Cit9CisKKy8qIEZvciBkYXRhIHNrYnMgdGhhdCB3ZSB0cmFuc21pdCwgd2UgYXNzb2NpYXRlIHdpdGggdGhlIHR1bm5lbCBzb2NrZXQKKyAqIGJ1dCBkb24ndCBkbyBhY2NvdW50aW5nLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgcHBwb2wydHBfc2tiX3NldF9vd25lcl93KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzb2NrICpzaykKK3sKKwlzb2NrX2hvbGQoc2spOworCXNrYi0+c2sgPSBzazsKKwlza2ItPmRlc3RydWN0b3IgPSBwcHBvbDJ0cF9zb2NrX3dmcmVlOworfQorCiAvKiBUcmFuc21pdCBmdW5jdGlvbiBjYWxsZWQgYnkgZ2VuZXJpYyBQUFAgZHJpdmVyLiAgU2VuZHMgUFBQIGZyYW1lCiAgKiBvdmVyIFBQUG9MMlRQIHNvY2tldC4KICAqCkBAIC05OTMsMTAgKzEwMzEsMTAgQEAKIAogCXNrX3R1biA9IHNlc3Npb24tPnR1bm5lbF9zb2NrOwogCWlmIChza190dW4gPT0gTlVMTCkKLQkJZ290byBhYm9ydDsKKwkJZ290byBhYm9ydF9wdXRfc2VzczsKIAl0dW5uZWwgPSBwcHBvbDJ0cF9zb2NrX3RvX3R1bm5lbChza190dW4pOwogCWlmICh0dW5uZWwgPT0gTlVMTCkKLQkJZ290byBhYm9ydDsKKwkJZ290byBhYm9ydF9wdXRfc2VzczsKIAogCS8qIFdoYXQgaGVhZGVyIGxlbmd0aCBpcyBjb25maWd1cmVkIGZvciB0aGlzIHNlc3Npb24/ICovCiAJaGRyX2xlbiA9IHBwcG9sMnRwX2wydHBfaGVhZGVyX2xlbihzZXNzaW9uKTsKQEAgLTEwMDksNyArMTA0Nyw3IEBACiAJCXNpemVvZihzdHJ1Y3QgdWRwaGRyKSArIGhkcl9sZW4gKyBzaXplb2YocHBwaCk7CiAJb2xkX2hlYWRyb29tID0gc2tiX2hlYWRyb29tKHNrYik7CiAJaWYgKHNrYl9jb3dfaGVhZChza2IsIGhlYWRyb29tKSkKLQkJZ290byBhYm9ydDsKKwkJZ290byBhYm9ydF9wdXRfc2Vzc190dW47CiAKIAluZXdfaGVhZHJvb20gPSBza2JfaGVhZHJvb20oc2tiKTsKIAlza2Jfb3JwaGFuKHNrYik7CkBAIC0xMDY5LDcgKzExMDcsNyBAQAogCS8qIEdldCByb3V0aW5nIGluZm8gZnJvbSB0aGUgdHVubmVsIHNvY2tldCAqLwogCWRzdF9yZWxlYXNlKHNrYi0+ZHN0KTsKIAlza2ItPmRzdCA9IGRzdF9jbG9uZShfX3NrX2RzdF9nZXQoc2tfdHVuKSk7Ci0Jc2tiLT5zayA9IHNrX3R1bjsKKwlwcHBvbDJ0cF9za2Jfc2V0X293bmVyX3coc2tiLCBza190dW4pOwogCiAJLyogUXVldWUgdGhlIHBhY2tldCB0byBJUCBmb3Igb3V0cHV0ICovCiAJbGVuID0gc2tiLT5sZW47CkBAIC0xMDg2LDggKzExMjQsMTQgQEAKIAkJc2Vzc2lvbi0+c3RhdHMudHhfZXJyb3JzKys7CiAJfQogCisJc29ja19wdXQoc2tfdHVuKTsKKwlzb2NrX3B1dChzayk7CiAJcmV0dXJuIDE7CiAKK2Fib3J0X3B1dF9zZXNzX3R1bjoKKwlzb2NrX3B1dChza190dW4pOworYWJvcnRfcHV0X3Nlc3M6CisJc29ja19wdXQoc2spOwogYWJvcnQ6CiAJLyogRnJlZSB0aGUgb3JpZ2luYWwgc2tiICovCiAJa2ZyZWVfc2tiKHNrYik7CkBAIC0xMTkxLDcgKzEyMzUsNyBAQAogewogCXN0cnVjdCBwcHBvbDJ0cF90dW5uZWwgKnR1bm5lbDsKIAotCXR1bm5lbCA9IHBwcG9sMnRwX3NvY2tfdG9fdHVubmVsKHNrKTsKKwl0dW5uZWwgPSBzay0+c2tfdXNlcl9kYXRhOwogCWlmICh0dW5uZWwgPT0gTlVMTCkKIAkJZ290byBlbmQ7CiAKQEAgLTEyMzAsMTAgKzEyNzQsMTIgQEAKIAlpZiAoc2stPnNrX3VzZXJfZGF0YSAhPSBOVUxMKSB7CiAJCXN0cnVjdCBwcHBvbDJ0cF90dW5uZWwgKnR1bm5lbDsKIAotCQlzZXNzaW9uID0gcHBwb2wydHBfc29ja190b19zZXNzaW9uKHNrKTsKKwkJc2Vzc2lvbiA9IHNrLT5za191c2VyX2RhdGE7CiAJCWlmIChzZXNzaW9uID09IE5VTEwpCiAJCQlnb3RvIG91dDsKIAorCQlCVUdfT04oc2Vzc2lvbi0+bWFnaWMgIT0gTDJUUF9TRVNTSU9OX01BR0lDKTsKKwogCQkvKiBEb24ndCB1c2UgcHBwb2wydHBfc29ja190b190dW5uZWwoKSBoZXJlIHRvCiAJCSAqIGdldCB0aGUgdHVubmVsIGNvbnRleHQgYmVjYXVzZSB0aGUgdHVubmVsCiAJCSAqIHNvY2tldCBtaWdodCBoYXZlIGFscmVhZHkgYmVlbiBjbG9zZWQgKGl0cwpAQCAtMTI3OSw2ICsxMzI1LDcgQEAKIHN0YXRpYyBpbnQgcHBwb2wydHBfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogewogCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOworCXN0cnVjdCBwcHBvbDJ0cF9zZXNzaW9uICpzZXNzaW9uOwogCWludCBlcnJvcjsKIAogCWlmICghc2spCkBAIC0xMjk2LDkgKzEzNDMsMTggQEAKIAlzb2NrX29ycGhhbihzayk7CiAJc29jay0+c2sgPSBOVUxMOwogCisJc2Vzc2lvbiA9IHBwcG9sMnRwX3NvY2tfdG9fc2Vzc2lvbihzayk7CisKIAkvKiBQdXJnZSBhbnkgcXVldWVkIGRhdGEgKi8KIAlza2JfcXVldWVfcHVyZ2UoJnNrLT5za19yZWNlaXZlX3F1ZXVlKTsKIAlza2JfcXVldWVfcHVyZ2UoJnNrLT5za193cml0ZV9xdWV1ZSk7CisJaWYgKHNlc3Npb24gIT0gTlVMTCkgeworCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOworCQl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZzZXNzaW9uLT5yZW9yZGVyX3EpKSkgeworCQkJa2ZyZWVfc2tiKHNrYik7CisJCQlzb2NrX3B1dChzayk7CisJCX0KKwl9CiAKIAlyZWxlYXNlX3NvY2soc2spOwogCkBAIC0xNjAxLDcgKzE2NTcsNyBAQAogCiAJZXJyb3IgPSBwcHBfcmVnaXN0ZXJfY2hhbm5lbCgmcG8tPmNoYW4pOwogCWlmIChlcnJvcikKLQkJZ290byBlbmQ7CisJCWdvdG8gZW5kX3B1dF90dW47CiAKIAkvKiBUaGlzIGlzIGhvdyB3ZSBnZXQgdGhlIHNlc3Npb24gY29udGV4dCBmcm9tIHRoZSBzb2NrZXQuICovCiAJc2stPnNrX3VzZXJfZGF0YSA9IHNlc3Npb247CkBAIC0xNjIxLDYgKzE2NzcsOCBAQAogCVBSSU5USyhzZXNzaW9uLT5kZWJ1ZywgUFBQT0wyVFBfTVNHX0NPTlRST0wsIEtFUk5fSU5GTywKIAkgICAgICAgIiVzOiBjcmVhdGVkXG4iLCBzZXNzaW9uLT5uYW1lKTsKIAorZW5kX3B1dF90dW46CisJc29ja19wdXQodHVubmVsX3NvY2spOwogZW5kOgogCXJlbGVhc2Vfc29jayhzayk7CiAKQEAgLTE2NjgsNiArMTcyNiw3IEBACiAJKnVzb2NrYWRkcl9sZW4gPSBsZW47CiAKIAllcnJvciA9IDA7CisJc29ja19wdXQoc29jay0+c2spOwogCiBlbmQ6CiAJcmV0dXJuIGVycm9yOwpAQCAtMTkwNiwxNCArMTk2NSwxNyBAQAogCQllcnIgPSAtRUJBREY7CiAJCXR1bm5lbCA9IHBwcG9sMnRwX3NvY2tfdG9fdHVubmVsKHNlc3Npb24tPnR1bm5lbF9zb2NrKTsKIAkJaWYgKHR1bm5lbCA9PSBOVUxMKQotCQkJZ290byBlbmQ7CisJCQlnb3RvIGVuZF9wdXRfc2VzczsKIAogCQllcnIgPSBwcHBvbDJ0cF90dW5uZWxfaW9jdGwodHVubmVsLCBjbWQsIGFyZyk7Ci0JCWdvdG8gZW5kOworCQlzb2NrX3B1dChzZXNzaW9uLT50dW5uZWxfc29jayk7CisJCWdvdG8gZW5kX3B1dF9zZXNzOwogCX0KIAogCWVyciA9IHBwcG9sMnRwX3Nlc3Npb25faW9jdGwoc2Vzc2lvbiwgY21kLCBhcmcpOwogCitlbmRfcHV0X3Nlc3M6CisJc29ja19wdXQoc2spOwogZW5kOgogCXJldHVybiBlcnI7CiB9CkBAIC0yMDU5LDE0ICsyMTIxLDE3IEBACiAJCWVyciA9IC1FQkFERjsKIAkJdHVubmVsID0gcHBwb2wydHBfc29ja190b190dW5uZWwoc2Vzc2lvbi0+dHVubmVsX3NvY2spOwogCQlpZiAodHVubmVsID09IE5VTEwpCi0JCQlnb3RvIGVuZDsKKwkJCWdvdG8gZW5kX3B1dF9zZXNzOwogCiAJCWVyciA9IHBwcG9sMnRwX3R1bm5lbF9zZXRzb2Nrb3B0KHNrLCB0dW5uZWwsIG9wdG5hbWUsIHZhbCk7CisJCXNvY2tfcHV0KHNlc3Npb24tPnR1bm5lbF9zb2NrKTsKIAl9IGVsc2UKIAkJZXJyID0gcHBwb2wydHBfc2Vzc2lvbl9zZXRzb2Nrb3B0KHNrLCBzZXNzaW9uLCBvcHRuYW1lLCB2YWwpOwogCiAJZXJyID0gMDsKIAorZW5kX3B1dF9zZXNzOgorCXNvY2tfcHV0KHNrKTsKIGVuZDoKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjE4MSwyMCArMjI0NiwyNCBAQAogCQllcnIgPSAtRUJBREY7CiAJCXR1bm5lbCA9IHBwcG9sMnRwX3NvY2tfdG9fdHVubmVsKHNlc3Npb24tPnR1bm5lbF9zb2NrKTsKIAkJaWYgKHR1bm5lbCA9PSBOVUxMKQotCQkJZ290byBlbmQ7CisJCQlnb3RvIGVuZF9wdXRfc2VzczsKIAogCQllcnIgPSBwcHBvbDJ0cF90dW5uZWxfZ2V0c29ja29wdChzaywgdHVubmVsLCBvcHRuYW1lLCAmdmFsKTsKKwkJc29ja19wdXQoc2Vzc2lvbi0+dHVubmVsX3NvY2spOwogCX0gZWxzZQogCQllcnIgPSBwcHBvbDJ0cF9zZXNzaW9uX2dldHNvY2tvcHQoc2ssIHNlc3Npb24sIG9wdG5hbWUsICZ2YWwpOwogCiAJZXJyID0gLUVGQVVMVDsKIAlpZiAocHV0X3VzZXIobGVuLCAoaW50IF9fdXNlciAqKSBvcHRsZW4pKQotCQlnb3RvIGVuZDsKKwkJZ290byBlbmRfcHV0X3Nlc3M7CiAKIAlpZiAoY29weV90b191c2VyKCh2b2lkIF9fdXNlciAqKSBvcHR2YWwsICZ2YWwsIGxlbikpCi0JCWdvdG8gZW5kOworCQlnb3RvIGVuZF9wdXRfc2VzczsKIAogCWVyciA9IDA7CisKK2VuZF9wdXRfc2VzczoKKwlzb2NrX3B1dChzayk7CiBlbmQ6CiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3FsYTN4eHguYyBiL2RyaXZlcnMvbmV0L3FsYTN4eHguYwppbmRleCBiN2Y3YjIyLi5iY2NlZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9xbGEzeHh4LmMKKysrIGIvZHJpdmVycy9uZXQvcWxhM3h4eC5jCkBAIC0zNzAxLDcgKzM3MDEsOSBAQAogCQlwcmludGsoS0VSTl9FUlIgUEZYCiAJCQkJIiVzOiBEcml2ZXIgdXAvZG93biBjeWNsZSBmYWlsZWQsICIKIAkJCQkiY2xvc2luZyBkZXZpY2VcbiIscWRldi0+bmRldi0+bmFtZSk7CisJCXJ0bmxfbG9jaygpOwogCQlkZXZfY2xvc2UocWRldi0+bmRldik7CisJCXJ0bmxfdW5sb2NrKCk7CiAJCXJldHVybiAtMTsKIAl9CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9yNjA0MC5jIGIvZHJpdmVycy9uZXQvcjYwNDAuYwppbmRleCAxNjllZGMxLi41MDRhNDhmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9yNjA0MC5jCisrKyBiL2RyaXZlcnMvbmV0L3I2MDQwLmMKQEAgLTI3Myw3ICsyNzMsNyBAQAogCWRtYV9hZGRyX3QgbWFwcGluZyA9IGRlc2NfZG1hOwogCiAJd2hpbGUgKHNpemUtLSA+IDApIHsKLQkJbWFwcGluZyArPSBzaXplb2Yoc2l6ZW9mKCpkZXNjKSk7CisJCW1hcHBpbmcgKz0gc2l6ZW9mKCpkZXNjKTsKIAkJZGVzYy0+bmRlc2MgPSBjcHVfdG9fbGUzMihtYXBwaW5nKTsKIAkJZGVzYy0+dm5kZXNjcCA9IGRlc2MgKyAxOwogCQlkZXNjKys7CkBAIC03MzMsNyArNzMzLDcgQEAKIAl9CiAKIAkvKiBUaW1lciBhY3RpdmUgYWdhaW4gKi8KLQltb2RfdGltZXIoJmxwLT50aW1lciwgamlmZmllcyArIHJvdW5kX2ppZmZpZXMoSFopKTsKKwltb2RfdGltZXIoJmxwLT50aW1lciwgcm91bmRfamlmZmllcyhqaWZmaWVzICsgSFopKTsKIH0KIAogLyogUmVhZC9zZXQgTUFDIGFkZHJlc3Mgcm91dGluZXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3MyaW8tcmVncy5oIGIvZHJpdmVycy9uZXQvczJpby1yZWdzLmgKaW5kZXggMjEwOTUwOC4uZjgyNzRmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvczJpby1yZWdzLmgKKysrIGIvZHJpdmVycy9uZXQvczJpby1yZWdzLmgKQEAgLTI1MCw3ICsyNTAsNyBAQAogCXU2NCB0eF9tYXQwX25bMHg4XTsKICNkZWZpbmUgVFhfTUFUX1NFVChmaWZvLCBtc2kpCQkJdkJJVChtc2ksICg4ICogZmlmbyksIDgpCiAKLQl1OCB1bnVzZWRfMVsweDhdOworCXU2NCB4bXNpX21hc2tfcmVnOwogCXU2NCBzdGF0X2J5dGVfY250OwogI2RlZmluZSBTVEFUX0JDKG4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdkJJVChuLDQsMTIpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3MyaW8uYyBiL2RyaXZlcnMvbmV0L3MyaW8uYwppbmRleCA1MjM0NzhlLi5hZTdiNjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zMmlvLmMKKysrIGIvZHJpdmVycy9uZXQvczJpby5jCkBAIC04Niw3ICs4Niw3IEBACiAjaW5jbHVkZSAiczJpby5oIgogI2luY2x1ZGUgInMyaW8tcmVncy5oIgogCi0jZGVmaW5lIERSVl9WRVJTSU9OICIyLjAuMjYuMjMiCisjZGVmaW5lIERSVl9WRVJTSU9OICIyLjAuMjYuMjQiCiAKIC8qIFMyaW8gRHJpdmVyIG5hbWUgJiB2ZXJzaW9uLiAqLwogc3RhdGljIGNoYXIgczJpb19kcml2ZXJfbmFtZVtdID0gIk5ldGVyaW9uIjsKQEAgLTExMTMsOSArMTExMywxMCBAQAogCXN0cnVjdCBwY2lfZGV2ICp0ZGV2ID0gTlVMTDsKIAl3aGlsZSAoKHRkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCB0ZGV2KSkgIT0gTlVMTCkgewogCQlpZiAodGRldi0+dmVuZG9yID09IE5FQ19WRU5JRCAmJiB0ZGV2LT5kZXZpY2UgPT0gTkVDX0RFVklEKSB7Ci0JCQlpZiAodGRldi0+YnVzID09IHMyaW9fcGRldi0+YnVzLT5wYXJlbnQpCisJCQlpZiAodGRldi0+YnVzID09IHMyaW9fcGRldi0+YnVzLT5wYXJlbnQpIHsKIAkJCQlwY2lfZGV2X3B1dCh0ZGV2KTsKIAkJCQlyZXR1cm4gMTsKKwkJCX0KIAkJfQogCX0KIAlyZXR1cm4gMDsKQEAgLTEyMTksMTUgKzEyMjAsMzMgQEAKIAkJCQlUVElfREFUQTFfTUVNX1RYX1VSTkdfQigweDEwKSB8CiAJCQkJVFRJX0RBVEExX01FTV9UWF9VUk5HX0MoMHgzMCkgfAogCQkJCVRUSV9EQVRBMV9NRU1fVFhfVElNRVJfQUNfRU47Ci0KLQkJaWYgKHVzZV9jb250aW51b3VzX3R4X2ludHJzICYmIChsaW5rID09IExJTktfVVApKQotCQkJdmFsNjQgfD0gVFRJX0RBVEExX01FTV9UWF9USU1FUl9DSV9FTjsKKwkJaWYgKGkgPT0gMCkKKwkJCWlmICh1c2VfY29udGludW91c190eF9pbnRycyAmJiAobGluayA9PSBMSU5LX1VQKSkKKwkJCQl2YWw2NCB8PSBUVElfREFUQTFfTUVNX1RYX1RJTUVSX0NJX0VOOwogCQl3cml0ZXEodmFsNjQsICZiYXIwLT50dGlfZGF0YTFfbWVtKTsKIAotCQl2YWw2NCA9IFRUSV9EQVRBMl9NRU1fVFhfVUZDX0EoMHgxMCkgfAotCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0IoMHgyMCkgfAotCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0MoMHg0MCkgfAotCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0QoMHg4MCk7CisJCWlmIChuaWMtPmNvbmZpZy5pbnRyX3R5cGUgPT0gTVNJX1gpIHsKKwkJCXZhbDY0ID0gVFRJX0RBVEEyX01FTV9UWF9VRkNfQSgweDEwKSB8CisJCQkJVFRJX0RBVEEyX01FTV9UWF9VRkNfQigweDEwMCkgfAorCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0MoMHgyMDApIHwKKwkJCQlUVElfREFUQTJfTUVNX1RYX1VGQ19EKDB4MzAwKTsKKwkJfSBlbHNlIHsKKwkJCWlmICgobmljLT5jb25maWcudHhfc3RlZXJpbmdfdHlwZSA9PQorCQkJCVRYX0RFRkFVTFRfU1RFRVJJTkcpICYmCisJCQkJKGNvbmZpZy0+dHhfZmlmb19udW0gPiAxKSAmJgorCQkJCShpID49IG5pYy0+dWRwX2ZpZm9faWR4KSAmJgorCQkJCShpIDwgKG5pYy0+dWRwX2ZpZm9faWR4ICsKKwkJCQluaWMtPnRvdGFsX3VkcF9maWZvcykpKQorCQkJCXZhbDY0ID0gVFRJX0RBVEEyX01FTV9UWF9VRkNfQSgweDUwKSB8CisJCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0IoMHg4MCkgfAorCQkJCQlUVElfREFUQTJfTUVNX1RYX1VGQ19DKDB4MTAwKSB8CisJCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0QoMHgxMjApOworCQkJZWxzZQorCQkJCXZhbDY0ID0gVFRJX0RBVEEyX01FTV9UWF9VRkNfQSgweDEwKSB8CisJCQkJCVRUSV9EQVRBMl9NRU1fVFhfVUZDX0IoMHgyMCkgfAorCQkJCQlUVElfREFUQTJfTUVNX1RYX1VGQ19DKDB4NDApIHwKKwkJCQkJVFRJX0RBVEEyX01FTV9UWF9VRkNfRCgweDgwKTsKKwkJfQogCiAJCXdyaXRlcSh2YWw2NCwgJmJhcjAtPnR0aV9kYXRhMl9tZW0pOwogCkBAIC0yNjA2LDkgKzI2MjUsNyBAQAogCQkJcnhkcDEtPkJ1ZmZlcjBfcHRyID0gcGNpX21hcF9zaW5nbGUKIAkJCSAgICAocmluZy0+cGRldiwgc2tiLT5kYXRhLCBzaXplIC0gTkVUX0lQX0FMSUdOLAogCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAxLT5CdWZmZXIwX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMS0+QnVmZmVyMF9wdHIgPT0KLQkJCQlETUFfRVJST1JfQ09ERSkpCisJCQlpZihwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDEtPkJ1ZmZlcjBfcHRyKSkKIAkJCQlnb3RvIHBjaV9tYXBfZmFpbGVkOwogCiAJCQlyeGRwLT5Db250cm9sXzIgPQpAQCAtMjYzOCw2ICsyNjU1LDcgQEAKIAkJCXNrYi0+ZGF0YSA9ICh2b2lkICopICh1bnNpZ25lZCBsb25nKXRtcDsKIAkJCXNrYl9yZXNldF90YWlsX3BvaW50ZXIoc2tiKTsKIAorCQkJLyogQUs6IGNoZWNrIGlzIHdyb25nLiAwIGNhbiBiZSB2YWxpZCBkbWEgYWRkcmVzcyAqLwogCQkJaWYgKCEocnhkcDMtPkJ1ZmZlcjBfcHRyKSkKIAkJCQlyeGRwMy0+QnVmZmVyMF9wdHIgPQogCQkJCSAgIHBjaV9tYXBfc2luZ2xlKHJpbmctPnBkZXYsIGJhLT5iYV8wLApAQCAtMjY0Niw4ICsyNjY0LDcgQEAKIAkJCQlwY2lfZG1hX3N5bmNfc2luZ2xlX2Zvcl9kZXZpY2UocmluZy0+cGRldiwKIAkJCQkoZG1hX2FkZHJfdCkgcnhkcDMtPkJ1ZmZlcjBfcHRyLAogCQkJCSAgICBCVUYwX0xFTiwgUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjBfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAzLT5CdWZmZXIwX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpCisJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIwX3B0cikpCiAJCQkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAogCQkJcnhkcC0+Q29udHJvbF8yID0gU0VUX0JVRkZFUjBfU0laRV8zKEJVRjBfTEVOKTsKQEAgLTI2NjIsMTggKzI2NzksMTcgQEAKIAkJCQkocmluZy0+cGRldiwgc2tiLT5kYXRhLCByaW5nLT5tdHUgKyA0LAogCQkJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKIAotCQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjJfcHRyID09IDApIHx8Ci0JCQkJCShyeGRwMy0+QnVmZmVyMl9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKQorCQkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjJfcHRyKSkKIAkJCQkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAorCQkJCS8qIEFLOiBjaGVjayBpcyB3cm9uZyAqLwogCQkJCWlmICghcnhkcDMtPkJ1ZmZlcjFfcHRyKQogCQkJCQlyeGRwMy0+QnVmZmVyMV9wdHIgPQogCQkJCQkJcGNpX21hcF9zaW5nbGUocmluZy0+cGRldiwKIAkJCQkJCWJhLT5iYV8xLCBCVUYxX0xFTiwKIAkJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7CiAKLQkJCQlpZiggKHJ4ZHAzLT5CdWZmZXIxX3B0ciA9PSAwKSB8fAotCQkJCQkocnhkcDMtPkJ1ZmZlcjFfcHRyID09IERNQV9FUlJPUl9DT0RFKSkgeworCQkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjFfcHRyKSkgewogCQkJCQlwY2lfdW5tYXBfc2luZ2xlCiAJCQkJCQkocmluZy0+cGRldiwKIAkJCQkJCShkbWFfYWRkcl90KSh1bnNpZ25lZCBsb25nKQpAQCAtMjgxMyw2ICsyODI5LDE1IEBACiAJfQogfQogCitzdGF0aWMgaW50IHMyaW9fY2hrX3J4X2J1ZmZlcnMoc3RydWN0IHJpbmdfaW5mbyAqcmluZykKK3sKKwlpZiAoZmlsbF9yeF9idWZmZXJzKHJpbmcpID09IC1FTk9NRU0pIHsKKwkJREJHX1BSSU5UKElORk9fREJHLCAiJXM6T3V0IG9mIG1lbW9yeSIsIHJpbmctPmRldi0+bmFtZSk7CisJCURCR19QUklOVChJTkZPX0RCRywgIiBpbiBSeCBJbnRyISFcbiIpOworCX0KKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBzMmlvX3BvbGwgLSBSeCBpbnRlcnJ1cHQgaGFuZGxlciBmb3IgTkFQSSBzdXBwb3J0CiAgKiBAbmFwaSA6IHBvaW50ZXIgdG8gdGhlIG5hcGkgc3RydWN0dXJlLgpAQCAtMjgyNiw1NyArMjg1MSw3MyBAQAogICogMCBvbiBzdWNjZXNzIGFuZCAxIGlmIHRoZXJlIGFyZSBObyBSeCBwYWNrZXRzIHRvIGJlIHByb2Nlc3NlZC4KICAqLwogCi1zdGF0aWMgaW50IHMyaW9fcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpCitzdGF0aWMgaW50IHMyaW9fcG9sbF9tc2l4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKK3sKKwlzdHJ1Y3QgcmluZ19pbmZvICpyaW5nID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCByaW5nX2luZm8sIG5hcGkpOworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CisJc3RydWN0IGNvbmZpZ19wYXJhbSAqY29uZmlnOworCXN0cnVjdCBtYWNfaW5mbyAqbWFjX2NvbnRyb2w7CisJaW50IHBrdHNfcHJvY2Vzc2VkID0gMDsKKwl1OCBfX2lvbWVtICphZGRyID0gTlVMTDsKKwl1OCB2YWw4ID0gMDsKKwlzdHJ1Y3QgczJpb19uaWMgKm5pYyA9IGRldi0+cHJpdjsKKwlzdHJ1Y3QgWEVOQV9kZXZfY29uZmlnIF9faW9tZW0gKmJhcjAgPSBuaWMtPmJhcjA7CisJaW50IGJ1ZGdldF9vcmcgPSBidWRnZXQ7CisKKwljb25maWcgPSAmbmljLT5jb25maWc7CisJbWFjX2NvbnRyb2wgPSAmbmljLT5tYWNfY29udHJvbDsKKworCWlmICh1bmxpa2VseSghaXNfczJpb19jYXJkX3VwKG5pYykpKQorCQlyZXR1cm4gMDsKKworCXBrdHNfcHJvY2Vzc2VkID0gcnhfaW50cl9oYW5kbGVyKHJpbmcsIGJ1ZGdldCk7CisJczJpb19jaGtfcnhfYnVmZmVycyhyaW5nKTsKKworCWlmIChwa3RzX3Byb2Nlc3NlZCA8IGJ1ZGdldF9vcmcpIHsKKwkJbmV0aWZfcnhfY29tcGxldGUoZGV2LCBuYXBpKTsKKwkJLypSZSBFbmFibGUgTVNJLVJ4IFZlY3RvciovCisJCWFkZHIgPSAodTggX19pb21lbSAqKSZiYXIwLT54bXNpX21hc2tfcmVnOworCQlhZGRyICs9IDcgLSByaW5nLT5yaW5nX25vOworCQl2YWw4ID0gKHJpbmctPnJpbmdfbm8gPT0gMCkgPyAweDNmIDogMHhiZjsKKwkJd3JpdGViKHZhbDgsIGFkZHIpOworCQl2YWw4ID0gcmVhZGIoYWRkcik7CisJfQorCXJldHVybiBwa3RzX3Byb2Nlc3NlZDsKK30KK3N0YXRpYyBpbnQgczJpb19wb2xsX2ludGEoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogewogCXN0cnVjdCBzMmlvX25pYyAqbmljID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBzMmlvX25pYywgbmFwaSk7CisJc3RydWN0IHJpbmdfaW5mbyAqcmluZzsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gbmljLT5kZXY7Ci0JaW50IHBrdF9jbnQgPSAwLCBvcmdfcGt0c190b19wcm9jZXNzOwotCXN0cnVjdCBtYWNfaW5mbyAqbWFjX2NvbnRyb2w7CiAJc3RydWN0IGNvbmZpZ19wYXJhbSAqY29uZmlnOworCXN0cnVjdCBtYWNfaW5mbyAqbWFjX2NvbnRyb2w7CisJaW50IHBrdHNfcHJvY2Vzc2VkID0gMDsKKwlpbnQgcmluZ19wa3RzX3Byb2Nlc3NlZCwgaTsKIAlzdHJ1Y3QgWEVOQV9kZXZfY29uZmlnIF9faW9tZW0gKmJhcjAgPSBuaWMtPmJhcjA7Ci0JaW50IGk7CisJaW50IGJ1ZGdldF9vcmcgPSBidWRnZXQ7CiAKLQltYWNfY29udHJvbCA9ICZuaWMtPm1hY19jb250cm9sOwogCWNvbmZpZyA9ICZuaWMtPmNvbmZpZzsKKwltYWNfY29udHJvbCA9ICZuaWMtPm1hY19jb250cm9sOwogCi0JbmljLT5wa3RzX3RvX3Byb2Nlc3MgPSBidWRnZXQ7Ci0Jb3JnX3BrdHNfdG9fcHJvY2VzcyA9IG5pYy0+cGt0c190b19wcm9jZXNzOwotCi0Jd3JpdGVxKFMySU9fTUlOVVNfT05FLCAmYmFyMC0+cnhfdHJhZmZpY19pbnQpOwotCXJlYWRsKCZiYXIwLT5yeF90cmFmZmljX2ludCk7CisJaWYgKHVubGlrZWx5KCFpc19zMmlvX2NhcmRfdXAobmljKSkpCisJCXJldHVybiAwOwogCiAJZm9yIChpID0gMDsgaSA8IGNvbmZpZy0+cnhfcmluZ19udW07IGkrKykgewotCQlyeF9pbnRyX2hhbmRsZXIoJm1hY19jb250cm9sLT5yaW5nc1tpXSk7Ci0JCXBrdF9jbnQgPSBvcmdfcGt0c190b19wcm9jZXNzIC0gbmljLT5wa3RzX3RvX3Byb2Nlc3M7Ci0JCWlmICghbmljLT5wa3RzX3RvX3Byb2Nlc3MpIHsKLQkJCS8qIFF1b3RhIGZvciB0aGUgY3VycmVudCBpdGVyYXRpb24gaGFzIGJlZW4gbWV0ICovCi0JCQlnb3RvIG5vX3J4OwotCQl9Ci0JfQotCi0JbmV0aWZfcnhfY29tcGxldGUoZGV2LCBuYXBpKTsKLQotCWZvciAoaSA9IDA7IGkgPCBjb25maWctPnJ4X3JpbmdfbnVtOyBpKyspIHsKLQkJaWYgKGZpbGxfcnhfYnVmZmVycygmbWFjX2NvbnRyb2wtPnJpbmdzW2ldKSA9PSAtRU5PTUVNKSB7Ci0JCQlEQkdfUFJJTlQoSU5GT19EQkcsICIlczpPdXQgb2YgbWVtb3J5IiwgZGV2LT5uYW1lKTsKLQkJCURCR19QUklOVChJTkZPX0RCRywgIiBpbiBSeCBQb2xsISFcbiIpOworCQlyaW5nID0gJm1hY19jb250cm9sLT5yaW5nc1tpXTsKKwkJcmluZ19wa3RzX3Byb2Nlc3NlZCA9IHJ4X2ludHJfaGFuZGxlcihyaW5nLCBidWRnZXQpOworCQlzMmlvX2Noa19yeF9idWZmZXJzKHJpbmcpOworCQlwa3RzX3Byb2Nlc3NlZCArPSByaW5nX3BrdHNfcHJvY2Vzc2VkOworCQlidWRnZXQgLT0gcmluZ19wa3RzX3Byb2Nlc3NlZDsKKwkJaWYgKGJ1ZGdldCA8PSAwKQogCQkJYnJlYWs7Ci0JCX0KIAl9Ci0JLyogUmUgZW5hYmxlIHRoZSBSeCBpbnRlcnJ1cHRzLiAqLwotCXdyaXRlcSgweDAsICZiYXIwLT5yeF90cmFmZmljX21hc2spOwotCXJlYWRsKCZiYXIwLT5yeF90cmFmZmljX21hc2spOwotCXJldHVybiBwa3RfY250OwotCi1ub19yeDoKLQlmb3IgKGkgPSAwOyBpIDwgY29uZmlnLT5yeF9yaW5nX251bTsgaSsrKSB7Ci0JCWlmIChmaWxsX3J4X2J1ZmZlcnMoJm1hY19jb250cm9sLT5yaW5nc1tpXSkgPT0gLUVOT01FTSkgewotCQkJREJHX1BSSU5UKElORk9fREJHLCAiJXM6T3V0IG9mIG1lbW9yeSIsIGRldi0+bmFtZSk7Ci0JCQlEQkdfUFJJTlQoSU5GT19EQkcsICIgaW4gUnggUG9sbCEhXG4iKTsKLQkJCWJyZWFrOwotCQl9CisJaWYgKHBrdHNfcHJvY2Vzc2VkIDwgYnVkZ2V0X29yZykgeworCQluZXRpZl9yeF9jb21wbGV0ZShkZXYsIG5hcGkpOworCQkvKiBSZSBlbmFibGUgdGhlIFJ4IGludGVycnVwdHMgZm9yIHRoZSByaW5nICovCisJCXdyaXRlcSgwLCAmYmFyMC0+cnhfdHJhZmZpY19tYXNrKTsKKwkJcmVhZGwoJmJhcjAtPnJ4X3RyYWZmaWNfbWFzayk7CiAJfQotCXJldHVybiBwa3RfY250OworCXJldHVybiBwa3RzX3Byb2Nlc3NlZDsKIH0KIAogI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSCkBAIC0yOTE4LDcgKzI5NTksNyBAQAogCiAJLyogY2hlY2sgZm9yIHJlY2VpdmVkIHBhY2tldCBhbmQgaW5kaWNhdGUgdXAgdG8gbmV0d29yayAqLwogCWZvciAoaSA9IDA7IGkgPCBjb25maWctPnJ4X3JpbmdfbnVtOyBpKyspCi0JCXJ4X2ludHJfaGFuZGxlcigmbWFjX2NvbnRyb2wtPnJpbmdzW2ldKTsKKwkJcnhfaW50cl9oYW5kbGVyKCZtYWNfY29udHJvbC0+cmluZ3NbaV0sIDApOwogCiAJZm9yIChpID0gMDsgaSA8IGNvbmZpZy0+cnhfcmluZ19udW07IGkrKykgewogCQlpZiAoZmlsbF9yeF9idWZmZXJzKCZtYWNfY29udHJvbC0+cmluZ3NbaV0pID09IC1FTk9NRU0pIHsKQEAgLTI5MzQsNyArMjk3NSw4IEBACiAKIC8qKgogICogIHJ4X2ludHJfaGFuZGxlciAtIFJ4IGludGVycnVwdCBoYW5kbGVyCi0gKiAgQG5pYzogZGV2aWNlIHByaXZhdGUgdmFyaWFibGUuCisgKiAgQHJpbmdfaW5mbzogcGVyIHJpbmcgc3RydWN0dXJlLgorICogIEBidWRnZXQ6IGJ1ZGdldCBmb3IgbmFwaSBwcm9jZXNzaW5nLgogICogIERlc2NyaXB0aW9uOgogICogIElmIHRoZSBpbnRlcnJ1cHQgaXMgYmVjYXVzZSBvZiBhIHJlY2VpdmVkIGZyYW1lIG9yIGlmIHRoZQogICogIHJlY2VpdmUgcmluZyBjb250YWlucyBmcmVzaCBhcyB5ZXQgdW4tcHJvY2Vzc2VkIGZyYW1lcyx0aGlzIGZ1bmN0aW9uIGlzCkBAIC0yOTQyLDE1ICsyOTg0LDE1IEBACiAgKiAgc3RvcHBlZCBhbmQgc2VuZHMgdGhlIHNrYiB0byB0aGUgT1NNJ3MgUnggaGFuZGxlciBhbmQgdGhlbiBpbmNyZW1lbnRzCiAgKiAgdGhlIG9mZnNldC4KICAqICBSZXR1cm4gVmFsdWU6Ci0gKiAgTk9ORS4KKyAqICBOby4gb2YgbmFwaSBwYWNrZXRzIHByb2Nlc3NlZC4KICAqLwotc3RhdGljIHZvaWQgcnhfaW50cl9oYW5kbGVyKHN0cnVjdCByaW5nX2luZm8gKnJpbmdfZGF0YSkKK3N0YXRpYyBpbnQgcnhfaW50cl9oYW5kbGVyKHN0cnVjdCByaW5nX2luZm8gKnJpbmdfZGF0YSwgaW50IGJ1ZGdldCkKIHsKIAlpbnQgZ2V0X2Jsb2NrLCBwdXRfYmxvY2s7CiAJc3RydWN0IHJ4X2N1cnJfZ2V0X2luZm8gZ2V0X2luZm8sIHB1dF9pbmZvOwogCXN0cnVjdCBSeERfdCAqcnhkcDsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwotCWludCBwa3RfY250ID0gMDsKKwlpbnQgcGt0X2NudCA9IDAsIG5hcGlfcGt0cyA9IDA7CiAJaW50IGk7CiAJc3RydWN0IFJ4RDEqIHJ4ZHAxOwogCXN0cnVjdCBSeEQzKiByeGRwMzsKQEAgLTI5NzcsNyArMzAxOSw3IEBACiAJCQlEQkdfUFJJTlQoRVJSX0RCRywgIiVzOiBUaGUgc2tiIGlzICIsCiAJCQkJICByaW5nX2RhdGEtPmRldi0+bmFtZSk7CiAJCQlEQkdfUFJJTlQoRVJSX0RCRywgIk51bGwgaW4gUnggSW50clxuIik7Ci0JCQlyZXR1cm47CisJCQlyZXR1cm4gMDsKIAkJfQogCQlpZiAocmluZ19kYXRhLT5yeGRfbW9kZSA9PSBSWERfTU9ERV8xKSB7CiAJCQlyeGRwMSA9IChzdHJ1Y3QgUnhEMSopcnhkcDsKQEAgLTMwMTQsOSArMzA1NiwxMCBAQAogCQkJcnhkcCA9IHJpbmdfZGF0YS0+cnhfYmxvY2tzW2dldF9ibG9ja10uYmxvY2tfdmlydF9hZGRyOwogCQl9CiAKLQkJaWYocmluZ19kYXRhLT5uaWMtPmNvbmZpZy5uYXBpKXsKLQkJCXJpbmdfZGF0YS0+bmljLT5wa3RzX3RvX3Byb2Nlc3MgLT0gMTsKLQkJCWlmICghcmluZ19kYXRhLT5uaWMtPnBrdHNfdG9fcHJvY2VzcykKKwkJaWYgKHJpbmdfZGF0YS0+bmljLT5jb25maWcubmFwaSkgeworCQkJYnVkZ2V0LS07CisJCQluYXBpX3BrdHMrKzsKKwkJCWlmICghYnVkZ2V0KQogCQkJCWJyZWFrOwogCQl9CiAJCXBrdF9jbnQrKzsKQEAgLTMwMzQsNiArMzA3Nyw3IEBACiAJCQl9CiAJCX0KIAl9CisJcmV0dXJuKG5hcGlfcGt0cyk7CiB9CiAKIC8qKgpAQCAtMzczMCwxNCArMzc3NCwxOSBAQAogewogCXN0cnVjdCBYRU5BX2Rldl9jb25maWcgX19pb21lbSAqYmFyMCA9IG5pYy0+YmFyMDsKIAl1NjQgdmFsNjQ7Ci0JaW50IGk7CisJaW50IGksIG1zaXhfaW5kZXg7CisKKworCWlmIChuaWMtPmRldmljZV90eXBlID09IFhGUkFNRV9JX0RFVklDRSkKKwkJcmV0dXJuOwogCiAJZm9yIChpPTA7IGkgPCBNQVhfUkVRVUVTVEVEX01TSV9YOyBpKyspIHsKKwkJbXNpeF9pbmRleCA9IChpKSA/ICgoaS0xKSAqIDggKyAxKTogMDsKIAkJd3JpdGVxKG5pYy0+bXNpeF9pbmZvW2ldLmFkZHIsICZiYXIwLT54bXNpX2FkZHJlc3MpOwogCQl3cml0ZXEobmljLT5tc2l4X2luZm9baV0uZGF0YSwgJmJhcjAtPnhtc2lfZGF0YSk7Ci0JCXZhbDY0ID0gKHMyQklUKDcpIHwgczJCSVQoMTUpIHwgdkJJVChpLCAyNiwgNikpOworCQl2YWw2NCA9IChzMkJJVCg3KSB8IHMyQklUKDE1KSB8IHZCSVQobXNpeF9pbmRleCwgMjYsIDYpKTsKIAkJd3JpdGVxKHZhbDY0LCAmYmFyMC0+eG1zaV9hY2Nlc3MpOwotCQlpZiAod2FpdF9mb3JfbXNpeF90cmFucyhuaWMsIGkpKSB7CisJCWlmICh3YWl0X2Zvcl9tc2l4X3RyYW5zKG5pYywgbXNpeF9pbmRleCkpIHsKIAkJCURCR19QUklOVChFUlJfREJHLCAiZmFpbGVkIGluICVzXG4iLCBfX0ZVTkNUSU9OX18pOwogCQkJY29udGludWU7CiAJCX0KQEAgLTM3NDgsMTMgKzM3OTcsMTcgQEAKIHsKIAlzdHJ1Y3QgWEVOQV9kZXZfY29uZmlnIF9faW9tZW0gKmJhcjAgPSBuaWMtPmJhcjA7CiAJdTY0IHZhbDY0LCBhZGRyLCBkYXRhOwotCWludCBpOworCWludCBpLCBtc2l4X2luZGV4OworCisJaWYgKG5pYy0+ZGV2aWNlX3R5cGUgPT0gWEZSQU1FX0lfREVWSUNFKQorCQlyZXR1cm47CiAKIAkvKiBTdG9yZSBhbmQgZGlzcGxheSAqLwogCWZvciAoaT0wOyBpIDwgTUFYX1JFUVVFU1RFRF9NU0lfWDsgaSsrKSB7Ci0JCXZhbDY0ID0gKHMyQklUKDE1KSB8IHZCSVQoaSwgMjYsIDYpKTsKKwkJbXNpeF9pbmRleCA9IChpKSA/ICgoaS0xKSAqIDggKyAxKTogMDsKKwkJdmFsNjQgPSAoczJCSVQoMTUpIHwgdkJJVChtc2l4X2luZGV4LCAyNiwgNikpOwogCQl3cml0ZXEodmFsNjQsICZiYXIwLT54bXNpX2FjY2Vzcyk7Ci0JCWlmICh3YWl0X2Zvcl9tc2l4X3RyYW5zKG5pYywgaSkpIHsKKwkJaWYgKHdhaXRfZm9yX21zaXhfdHJhbnMobmljLCBtc2l4X2luZGV4KSkgewogCQkJREJHX1BSSU5UKEVSUl9EQkcsICJmYWlsZWQgaW4gJXNcbiIsIF9fRlVOQ1RJT05fXyk7CiAJCQljb250aW51ZTsKIAkJfQpAQCAtMzc3MCwxMSArMzgyMywxMSBAQAogc3RhdGljIGludCBzMmlvX2VuYWJsZV9tc2lfeChzdHJ1Y3QgczJpb19uaWMgKm5pYykKIHsKIAlzdHJ1Y3QgWEVOQV9kZXZfY29uZmlnIF9faW9tZW0gKmJhcjAgPSBuaWMtPmJhcjA7Ci0JdTY0IHR4X21hdCwgcnhfbWF0OworCXU2NCByeF9tYXQ7CiAJdTE2IG1zaV9jb250cm9sOyAvKiBUZW1wIHZhcmlhYmxlICovCiAJaW50IHJldCwgaSwgaiwgbXNpeF9pbmR4ID0gMTsKIAotCW5pYy0+ZW50cmllcyA9IGtjYWxsb2MoTUFYX1JFUVVFU1RFRF9NU0lfWCwgc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSwKKwluaWMtPmVudHJpZXMgPSBrbWFsbG9jKG5pYy0+bnVtX2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IG1zaXhfZW50cnkpLAogCQkJICAgICAgIEdGUF9LRVJORUwpOwogCWlmICghbmljLT5lbnRyaWVzKSB7CiAJCURCR19QUklOVChJTkZPX0RCRywgIiVzOiBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWRcbiIsIFwKQEAgLTM3ODMsMTAgKzM4MzYsMTIgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCW5pYy0+bWFjX2NvbnRyb2wuc3RhdHNfaW5mby0+c3dfc3RhdC5tZW1fYWxsb2NhdGVkCi0JCSs9IChNQVhfUkVRVUVTVEVEX01TSV9YICogc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSk7CisJCSs9IChuaWMtPm51bV9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSk7CisKKwltZW1zZXQobmljLT5lbnRyaWVzLCAwLCBuaWMtPm51bV9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSk7CiAKIAluaWMtPnMyaW9fZW50cmllcyA9Ci0JCWtjYWxsb2MoTUFYX1JFUVVFU1RFRF9NU0lfWCwgc2l6ZW9mKHN0cnVjdCBzMmlvX21zaXhfZW50cnkpLAorCQlrbWFsbG9jKG5pYy0+bnVtX2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IHMyaW9fbXNpeF9lbnRyeSksCiAJCQkJICAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFuaWMtPnMyaW9fZW50cmllcykgewogCQlEQkdfUFJJTlQoSU5GT19EQkcsICIlczogTWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkXG4iLApAQCAtMzc5NCw2MCArMzg0OSw1MiBAQAogCQluaWMtPm1hY19jb250cm9sLnN0YXRzX2luZm8tPnN3X3N0YXQubWVtX2FsbG9jX2ZhaWxfY250Kys7CiAJCWtmcmVlKG5pYy0+ZW50cmllcyk7CiAJCW5pYy0+bWFjX2NvbnRyb2wuc3RhdHNfaW5mby0+c3dfc3RhdC5tZW1fZnJlZWQKLQkJCSs9IChNQVhfUkVRVUVTVEVEX01TSV9YICogc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSk7CisJCQkrPSAobmljLT5udW1fZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgbXNpeF9lbnRyeSkpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAJIG5pYy0+bWFjX2NvbnRyb2wuc3RhdHNfaW5mby0+c3dfc3RhdC5tZW1fYWxsb2NhdGVkCi0JCSs9IChNQVhfUkVRVUVTVEVEX01TSV9YICogc2l6ZW9mKHN0cnVjdCBzMmlvX21zaXhfZW50cnkpKTsKKwkJKz0gKG5pYy0+bnVtX2VudHJpZXMgKiBzaXplb2Yoc3RydWN0IHMyaW9fbXNpeF9lbnRyeSkpOworCW1lbXNldChuaWMtPnMyaW9fZW50cmllcywgMCwKKwkJbmljLT5udW1fZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgczJpb19tc2l4X2VudHJ5KSk7CiAKLQlmb3IgKGk9MDsgaTwgTUFYX1JFUVVFU1RFRF9NU0lfWDsgaSsrKSB7Ci0JCW5pYy0+ZW50cmllc1tpXS5lbnRyeSA9IGk7Ci0JCW5pYy0+czJpb19lbnRyaWVzW2ldLmVudHJ5ID0gaTsKKwluaWMtPmVudHJpZXNbMF0uZW50cnkgPSAwOworCW5pYy0+czJpb19lbnRyaWVzWzBdLmVudHJ5ID0gMDsKKwluaWMtPnMyaW9fZW50cmllc1swXS5pbl91c2UgPSBNU0lYX0ZMRzsKKwluaWMtPnMyaW9fZW50cmllc1swXS50eXBlID0gTVNJWF9BTEFSTV9UWVBFOworCW5pYy0+czJpb19lbnRyaWVzWzBdLmFyZyA9ICZuaWMtPm1hY19jb250cm9sLmZpZm9zOworCisJZm9yIChpID0gMTsgaSA8IG5pYy0+bnVtX2VudHJpZXM7IGkrKykgeworCQluaWMtPmVudHJpZXNbaV0uZW50cnkgPSAoKGkgLSAxKSAqIDgpICsgMTsKKwkJbmljLT5zMmlvX2VudHJpZXNbaV0uZW50cnkgPSAoKGkgLSAxKSAqIDgpICsgMTsKIAkJbmljLT5zMmlvX2VudHJpZXNbaV0uYXJnID0gTlVMTDsKIAkJbmljLT5zMmlvX2VudHJpZXNbaV0uaW5fdXNlID0gMDsKIAl9CiAKLQl0eF9tYXQgPSByZWFkcSgmYmFyMC0+dHhfbWF0MF9uWzBdKTsKLQlmb3IgKGk9MDsgaTxuaWMtPmNvbmZpZy50eF9maWZvX251bTsgaSsrLCBtc2l4X2luZHgrKykgewotCQl0eF9tYXQgfD0gVFhfTUFUX1NFVChpLCBtc2l4X2luZHgpOwotCQluaWMtPnMyaW9fZW50cmllc1ttc2l4X2luZHhdLmFyZyA9ICZuaWMtPm1hY19jb250cm9sLmZpZm9zW2ldOwotCQluaWMtPnMyaW9fZW50cmllc1ttc2l4X2luZHhdLnR5cGUgPSBNU0lYX0ZJRk9fVFlQRTsKLQkJbmljLT5zMmlvX2VudHJpZXNbbXNpeF9pbmR4XS5pbl91c2UgPSBNU0lYX0ZMRzsKLQl9Ci0Jd3JpdGVxKHR4X21hdCwgJmJhcjAtPnR4X21hdDBfblswXSk7Ci0KIAlyeF9tYXQgPSByZWFkcSgmYmFyMC0+cnhfbWF0KTsKLQlmb3IgKGogPSAwOyBqIDwgbmljLT5jb25maWcucnhfcmluZ19udW07IGorKywgbXNpeF9pbmR4KyspIHsKKwlmb3IgKGogPSAwOyBqIDwgbmljLT5jb25maWcucnhfcmluZ19udW07IGorKykgewogCQlyeF9tYXQgfD0gUlhfTUFUX1NFVChqLCBtc2l4X2luZHgpOwotCQluaWMtPnMyaW9fZW50cmllc1ttc2l4X2luZHhdLmFyZwotCQkJPSAmbmljLT5tYWNfY29udHJvbC5yaW5nc1tqXTsKLQkJbmljLT5zMmlvX2VudHJpZXNbbXNpeF9pbmR4XS50eXBlID0gTVNJWF9SSU5HX1RZUEU7Ci0JCW5pYy0+czJpb19lbnRyaWVzW21zaXhfaW5keF0uaW5fdXNlID0gTVNJWF9GTEc7CisJCW5pYy0+czJpb19lbnRyaWVzW2orMV0uYXJnID0gJm5pYy0+bWFjX2NvbnRyb2wucmluZ3Nbal07CisJCW5pYy0+czJpb19lbnRyaWVzW2orMV0udHlwZSA9IE1TSVhfUklOR19UWVBFOworCQluaWMtPnMyaW9fZW50cmllc1tqKzFdLmluX3VzZSA9IE1TSVhfRkxHOworCQltc2l4X2luZHggKz0gODsKIAl9CiAJd3JpdGVxKHJ4X21hdCwgJmJhcjAtPnJ4X21hdCk7CisJcmVhZHEoJmJhcjAtPnJ4X21hdCk7CiAKLQluaWMtPmF2YWlsX21zaXhfdmVjdG9ycyA9IDA7Ci0JcmV0ID0gcGNpX2VuYWJsZV9tc2l4KG5pYy0+cGRldiwgbmljLT5lbnRyaWVzLCBNQVhfUkVRVUVTVEVEX01TSV9YKTsKKwlyZXQgPSBwY2lfZW5hYmxlX21zaXgobmljLT5wZGV2LCBuaWMtPmVudHJpZXMsIG5pYy0+bnVtX2VudHJpZXMpOwogCS8qIFdlIGZhaWwgaW5pdCBpZiBlcnJvciBvciB3ZSBnZXQgbGVzcyB2ZWN0b3JzIHRoYW4gbWluIHJlcXVpcmVkICovCi0JaWYgKHJldCA+PSAobmljLT5jb25maWcudHhfZmlmb19udW0gKyBuaWMtPmNvbmZpZy5yeF9yaW5nX251bSArIDEpKSB7Ci0JCW5pYy0+YXZhaWxfbXNpeF92ZWN0b3JzID0gcmV0OwotCQlyZXQgPSBwY2lfZW5hYmxlX21zaXgobmljLT5wZGV2LCBuaWMtPmVudHJpZXMsIHJldCk7Ci0JfQogCWlmIChyZXQpIHsKIAkJREJHX1BSSU5UKEVSUl9EQkcsICIlczogRW5hYmxpbmcgTVNJWCBmYWlsZWRcbiIsIG5pYy0+ZGV2LT5uYW1lKTsKIAkJa2ZyZWUobmljLT5lbnRyaWVzKTsKIAkJbmljLT5tYWNfY29udHJvbC5zdGF0c19pbmZvLT5zd19zdGF0Lm1lbV9mcmVlZAotCQkJKz0gKE1BWF9SRVFVRVNURURfTVNJX1ggKiBzaXplb2Yoc3RydWN0IG1zaXhfZW50cnkpKTsKKwkJCSs9IChuaWMtPm51bV9lbnRyaWVzICogc2l6ZW9mKHN0cnVjdCBtc2l4X2VudHJ5KSk7CiAJCWtmcmVlKG5pYy0+czJpb19lbnRyaWVzKTsKIAkJbmljLT5tYWNfY29udHJvbC5zdGF0c19pbmZvLT5zd19zdGF0Lm1lbV9mcmVlZAotCQkrPSAoTUFYX1JFUVVFU1RFRF9NU0lfWCAqIHNpemVvZihzdHJ1Y3QgczJpb19tc2l4X2VudHJ5KSk7CisJCQkrPSAobmljLT5udW1fZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgczJpb19tc2l4X2VudHJ5KSk7CiAJCW5pYy0+ZW50cmllcyA9IE5VTEw7CiAJCW5pYy0+czJpb19lbnRyaWVzID0gTlVMTDsKLQkJbmljLT5hdmFpbF9tc2l4X3ZlY3RvcnMgPSAwOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JaWYgKCFuaWMtPmF2YWlsX21zaXhfdmVjdG9ycykKLQkJbmljLT5hdmFpbF9tc2l4X3ZlY3RvcnMgPSBNQVhfUkVRVUVTVEVEX01TSV9YOwogCiAJLyoKIAkgKiBUbyBlbmFibGUgTVNJLVgsIE1TSSBhbHNvIG5lZWRzIHRvIGJlIGVuYWJsZWQsIGR1ZSB0byBhIGJ1ZwpAQCAtMzkxOSw3ICszOTY2LDcgQEAKIAlpbnQgaTsKIAl1MTYgbXNpX2NvbnRyb2w7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX1JFUVVFU1RFRF9NU0lfWDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IHNwLT5udW1fZW50cmllczsgaSsrKSB7CiAJCWlmIChzcC0+czJpb19lbnRyaWVzW2ldLmluX3VzZSA9PQogCQkJTVNJWF9SRUdJU1RFUkVEX1NVQ0NFU1MpIHsKIAkJCWludCB2ZWN0b3IgPSBzcC0+ZW50cmllc1tpXS52ZWN0b3I7CkBAIC0zOTc1LDI5ICs0MDIyLDYgQEAKIAluZXRpZl9jYXJyaWVyX29mZihkZXYpOwogCXNwLT5sYXN0X2xpbmtfc3RhdGUgPSAwOwogCi0JaWYgKHNwLT5jb25maWcuaW50cl90eXBlID09IE1TSV9YKSB7Ci0JCWludCByZXQgPSBzMmlvX2VuYWJsZV9tc2lfeChzcCk7Ci0KLQkJaWYgKCFyZXQpIHsKLQkJCXJldCA9IHMyaW9fdGVzdF9tc2koc3ApOwotCQkJLyogcm9sbGJhY2sgTVNJLVgsIHdpbGwgcmUtZW5hYmxlIGR1cmluZyBhZGRfaXNyKCkgKi8KLQkJCXJlbW92ZV9tc2l4X2lzcihzcCk7Ci0JCX0KLQkJaWYgKHJldCkgewotCi0JCQlEQkdfUFJJTlQoRVJSX0RCRywKLQkJCSAgIiVzOiBNU0ktWCByZXF1ZXN0ZWQgYnV0IGZhaWxlZCB0byBlbmFibGVcbiIsCi0JCQkgIGRldi0+bmFtZSk7Ci0JCQlzcC0+Y29uZmlnLmludHJfdHlwZSA9IElOVEE7Ci0JCX0KLQl9Ci0KLQkvKiBOQVBJIGRvZXNuJ3Qgd29yayB3ZWxsIHdpdGggTVNJKFgpICovCi0JIGlmIChzcC0+Y29uZmlnLmludHJfdHlwZSAhPSBJTlRBKSB7Ci0JCWlmKHNwLT5jb25maWcubmFwaSkKLQkJCXNwLT5jb25maWcubmFwaSA9IDA7Ci0JfQotCiAJLyogSW5pdGlhbGl6ZSBIL1cgYW5kIGVuYWJsZSBpbnRlcnJ1cHRzICovCiAJZXJyID0gczJpb19jYXJkX3VwKHNwKTsKIAlpZiAoZXJyKSB7CkBAIC00MDIwLDEyICs0MDQ0LDEyIEBACiAJCWlmIChzcC0+ZW50cmllcykgewogCQkJa2ZyZWUoc3AtPmVudHJpZXMpOwogCQkJc3AtPm1hY19jb250cm9sLnN0YXRzX2luZm8tPnN3X3N0YXQubWVtX2ZyZWVkCi0JCQkrPSAoTUFYX1JFUVVFU1RFRF9NU0lfWCAqIHNpemVvZihzdHJ1Y3QgbXNpeF9lbnRyeSkpOworCQkJKz0gKHNwLT5udW1fZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgbXNpeF9lbnRyeSkpOwogCQl9CiAJCWlmIChzcC0+czJpb19lbnRyaWVzKSB7CiAJCQlrZnJlZShzcC0+czJpb19lbnRyaWVzKTsKIAkJCXNwLT5tYWNfY29udHJvbC5zdGF0c19pbmZvLT5zd19zdGF0Lm1lbV9mcmVlZAotCQkJKz0gKE1BWF9SRVFVRVNURURfTVNJX1ggKiBzaXplb2Yoc3RydWN0IHMyaW9fbXNpeF9lbnRyeSkpOworCQkJKz0gKHNwLT5udW1fZW50cmllcyAqIHNpemVvZihzdHJ1Y3QgczJpb19tc2l4X2VudHJ5KSk7CiAJCX0KIAl9CiAJcmV0dXJuIGVycjsKQEAgLTQyMzcsMTYgKzQyNjEsMTQgQEAKIAkJdHhkcC0+QnVmZmVyX1BvaW50ZXIgPSBwY2lfbWFwX3NpbmdsZShzcC0+cGRldiwKIAkJCQkJZmlmby0+dWZvX2luX2JhbmRfdiwKIAkJCQkJc2l6ZW9mKHU2NCksIFBDSV9ETUFfVE9ERVZJQ0UpOwotCQlpZigodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gMCkgfHwKLQkJCSh0eGRwLT5CdWZmZXJfUG9pbnRlciA9PSBETUFfRVJST1JfQ09ERSkpCisJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IodHhkcC0+QnVmZmVyX1BvaW50ZXIpKQogCQkJZ290byBwY2lfbWFwX2ZhaWxlZDsKIAkJdHhkcCsrOwogCX0KIAogCXR4ZHAtPkJ1ZmZlcl9Qb2ludGVyID0gcGNpX21hcF9zaW5nbGUKIAkgICAgKHNwLT5wZGV2LCBza2ItPmRhdGEsIGZyZ19sZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOwotCWlmKCh0eGRwLT5CdWZmZXJfUG9pbnRlciA9PSAwKSB8fAotCQkodHhkcC0+QnVmZmVyX1BvaW50ZXIgPT0gRE1BX0VSUk9SX0NPREUpKQorCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IodHhkcC0+QnVmZmVyX1BvaW50ZXIpKQogCQlnb3RvIHBjaV9tYXBfZmFpbGVkOwogCiAJdHhkcC0+SG9zdF9Db250cm9sID0gKHVuc2lnbmVkIGxvbmcpIHNrYjsKQEAgLTQzMjcsNDAgKzQzNDksNjUgQEAKIAltb2RfdGltZXIoJnNwLT5hbGFybV90aW1lciwgamlmZmllcyArIEhaIC8gMik7CiB9CiAKLXN0YXRpYyBpbnQgczJpb19jaGtfcnhfYnVmZmVycyhzdHJ1Y3QgcmluZ19pbmZvICpyaW5nKQotewotCWlmIChmaWxsX3J4X2J1ZmZlcnMocmluZykgPT0gLUVOT01FTSkgewotCQlEQkdfUFJJTlQoSU5GT19EQkcsICIlczpPdXQgb2YgbWVtb3J5IiwgcmluZy0+ZGV2LT5uYW1lKTsKLQkJREJHX1BSSU5UKElORk9fREJHLCAiIGluIFJ4IEludHIhIVxuIik7Ci0JfQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaXJxcmV0dXJuX3QgczJpb19tc2l4X3JpbmdfaGFuZGxlKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKIAlzdHJ1Y3QgcmluZ19pbmZvICpyaW5nID0gKHN0cnVjdCByaW5nX2luZm8gKilkZXZfaWQ7CiAJc3RydWN0IHMyaW9fbmljICpzcCA9IHJpbmctPm5pYzsKKwlzdHJ1Y3QgWEVOQV9kZXZfY29uZmlnIF9faW9tZW0gKmJhcjAgPSBzcC0+YmFyMDsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gc3AtPmRldjsKIAotCWlmICghaXNfczJpb19jYXJkX3VwKHNwKSkKKwlpZiAodW5saWtlbHkoIWlzX3MyaW9fY2FyZF91cChzcCkpKQogCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CiAKLQlyeF9pbnRyX2hhbmRsZXIocmluZyk7Ci0JczJpb19jaGtfcnhfYnVmZmVycyhyaW5nKTsKKwlpZiAoc3AtPmNvbmZpZy5uYXBpKSB7CisJCXU4IF9faW9tZW0gKmFkZHIgPSBOVUxMOworCQl1OCB2YWw4ID0gMDsKKworCQlhZGRyID0gKHU4IF9faW9tZW0gKikmYmFyMC0+eG1zaV9tYXNrX3JlZzsKKwkJYWRkciArPSAoNyAtIHJpbmctPnJpbmdfbm8pOworCQl2YWw4ID0gKHJpbmctPnJpbmdfbm8gPT0gMCkgPyAweDdmIDogMHhmZjsKKwkJd3JpdGViKHZhbDgsIGFkZHIpOworCQl2YWw4ID0gcmVhZGIoYWRkcik7CisJCW5ldGlmX3J4X3NjaGVkdWxlKGRldiwgJnJpbmctPm5hcGkpOworCX0gZWxzZSB7CisJCXJ4X2ludHJfaGFuZGxlcihyaW5nLCAwKTsKKwkJczJpb19jaGtfcnhfYnVmZmVycyhyaW5nKTsKKwl9CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCBzMmlvX21zaXhfZmlmb19oYW5kbGUoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewotCXN0cnVjdCBmaWZvX2luZm8gKmZpZm8gPSAoc3RydWN0IGZpZm9faW5mbyAqKWRldl9pZDsKLQlzdHJ1Y3QgczJpb19uaWMgKnNwID0gZmlmby0+bmljOworCWludCBpOworCXN0cnVjdCBmaWZvX2luZm8gKmZpZm9zID0gKHN0cnVjdCBmaWZvX2luZm8gKilkZXZfaWQ7CisJc3RydWN0IHMyaW9fbmljICpzcCA9IGZpZm9zLT5uaWM7CisJc3RydWN0IFhFTkFfZGV2X2NvbmZpZyBfX2lvbWVtICpiYXIwID0gc3AtPmJhcjA7CisJc3RydWN0IGNvbmZpZ19wYXJhbSAqY29uZmlnICA9ICZzcC0+Y29uZmlnOworCXU2NCByZWFzb247CiAKLQlpZiAoIWlzX3MyaW9fY2FyZF91cChzcCkpCisJaWYgKHVubGlrZWx5KCFpc19zMmlvX2NhcmRfdXAoc3ApKSkKKwkJcmV0dXJuIElSUV9OT05FOworCisJcmVhc29uID0gcmVhZHEoJmJhcjAtPmdlbmVyYWxfaW50X3N0YXR1cyk7CisJaWYgKHVubGlrZWx5KHJlYXNvbiA9PSBTMklPX01JTlVTX09ORSkpCisJCS8qIE5vdGhpbmcgbXVjaCBjYW4gYmUgZG9uZS4gR2V0IG91dCAqLwogCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CiAKLQl0eF9pbnRyX2hhbmRsZXIoZmlmbyk7CisJd3JpdGVxKFMySU9fTUlOVVNfT05FLCAmYmFyMC0+Z2VuZXJhbF9pbnRfbWFzayk7CisKKwlpZiAocmVhc29uICYgR0VOX0lOVFJfVFhUUkFGRklDKQorCQl3cml0ZXEoUzJJT19NSU5VU19PTkUsICZiYXIwLT50eF90cmFmZmljX2ludCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY29uZmlnLT50eF9maWZvX251bTsgaSsrKQorCQl0eF9pbnRyX2hhbmRsZXIoJmZpZm9zW2ldKTsKKworCXdyaXRlcShzcC0+Z2VuZXJhbF9pbnRfbWFzaywgJmJhcjAtPmdlbmVyYWxfaW50X21hc2spOworCXJlYWRsKCZiYXIwLT5nZW5lcmFsX2ludF9zdGF0dXMpOworCiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQorCiBzdGF0aWMgdm9pZCBzMmlvX3R4cGljX2ludHJfaGFuZGxlKHN0cnVjdCBzMmlvX25pYyAqc3ApCiB7CiAJc3RydWN0IFhFTkFfZGV2X2NvbmZpZyBfX2lvbWVtICpiYXIwID0gc3AtPmJhcjA7CkBAIC00NzYyLDE0ICs0ODA5LDEwIEBACiAKIAkJaWYgKGNvbmZpZy0+bmFwaSkgewogCQkJaWYgKHJlYXNvbiAmIEdFTl9JTlRSX1JYVFJBRkZJQykgewotCQkJCWlmIChsaWtlbHkobmV0aWZfcnhfc2NoZWR1bGVfcHJlcChkZXYsCi0JCQkJCQkJJnNwLT5uYXBpKSkpIHsKLQkJCQkJX19uZXRpZl9yeF9zY2hlZHVsZShkZXYsICZzcC0+bmFwaSk7Ci0JCQkJCXdyaXRlcShTMklPX01JTlVTX09ORSwKLQkJCQkJICAgICAgICZiYXIwLT5yeF90cmFmZmljX21hc2spOwotCQkJCX0gZWxzZQotCQkJCQl3cml0ZXEoUzJJT19NSU5VU19PTkUsCi0JCQkJCSAgICAgICAmYmFyMC0+cnhfdHJhZmZpY19pbnQpOworCQkJCW5ldGlmX3J4X3NjaGVkdWxlKGRldiwgJnNwLT5uYXBpKTsKKwkJCQl3cml0ZXEoUzJJT19NSU5VU19PTkUsICZiYXIwLT5yeF90cmFmZmljX21hc2spOworCQkJCXdyaXRlcShTMklPX01JTlVTX09ORSwgJmJhcjAtPnJ4X3RyYWZmaWNfaW50KTsKKwkJCQlyZWFkbCgmYmFyMC0+cnhfdHJhZmZpY19pbnQpOwogCQkJfQogCQl9IGVsc2UgewogCQkJLyoKQEAgLTQ3ODEsNyArNDgyNCw3IEBACiAJCQkJd3JpdGVxKFMySU9fTUlOVVNfT05FLCAmYmFyMC0+cnhfdHJhZmZpY19pbnQpOwogCiAJCQlmb3IgKGkgPSAwOyBpIDwgY29uZmlnLT5yeF9yaW5nX251bTsgaSsrKQotCQkJCXJ4X2ludHJfaGFuZGxlcigmbWFjX2NvbnRyb2wtPnJpbmdzW2ldKTsKKwkJCQlyeF9pbnRyX2hhbmRsZXIoJm1hY19jb250cm9sLT5yaW5nc1tpXSwgMCk7CiAJCX0KIAogCQkvKgpAQCAtNjgzNiwxMCArNjg3OSw4IEBACiAJCQkJcGNpX21hcF9zaW5nbGUoIHNwLT5wZGV2LCAoKnNrYiktPmRhdGEsCiAJCQkJCXNpemUgLSBORVRfSVBfQUxJR04sCiAJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAxLT5CdWZmZXIwX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMS0+QnVmZmVyMF9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKSB7CisJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAxLT5CdWZmZXIwX3B0cikpCiAJCQkJZ290byBtZW1hbGxvY19mYWlsZWQ7Ci0JCQl9CiAJCQlyeGRwLT5Ib3N0X0NvbnRyb2wgPSAodW5zaWduZWQgbG9uZykgKCpza2IpOwogCQl9CiAJfSBlbHNlIGlmICgoc3AtPnJ4ZF9tb2RlID09IFJYRF9NT0RFXzNCKSAmJiAocnhkcC0+SG9zdF9Db250cm9sID09IDApKSB7CkBAIC02ODY1LDE1ICs2OTA2LDEyIEBACiAJCQkJcGNpX21hcF9zaW5nbGUoc3AtPnBkZXYsICgqc2tiKS0+ZGF0YSwKIAkJCQkJICAgICAgIGRldi0+bXR1ICsgNCwKIAkJCQkJICAgICAgIFBDSV9ETUFfRlJPTURFVklDRSk7Ci0JCQlpZiggKHJ4ZHAzLT5CdWZmZXIyX3B0ciA9PSAwKSB8fAotCQkJCShyeGRwMy0+QnVmZmVyMl9wdHIgPT0gRE1BX0VSUk9SX0NPREUpKSB7CisJCQlpZiAocGNpX2RtYV9tYXBwaW5nX2Vycm9yKHJ4ZHAzLT5CdWZmZXIyX3B0cikpCiAJCQkJZ290byBtZW1hbGxvY19mYWlsZWQ7Ci0JCQl9CiAJCQlyeGRwMy0+QnVmZmVyMF9wdHIgPSAqdGVtcDAgPQogCQkJCXBjaV9tYXBfc2luZ2xlKCBzcC0+cGRldiwgYmEtPmJhXzAsIEJVRjBfTEVOLAogCQkJCQkJUENJX0RNQV9GUk9NREVWSUNFKTsKLQkJCWlmKCAocnhkcDMtPkJ1ZmZlcjBfcHRyID09IDApIHx8Ci0JCQkJKHJ4ZHAzLT5CdWZmZXIwX3B0ciA9PSBETUFfRVJST1JfQ09ERSkpIHsKKwkJCWlmIChwY2lfZG1hX21hcHBpbmdfZXJyb3IocnhkcDMtPkJ1ZmZlcjBfcHRyKSkgewogCQkJCXBjaV91bm1hcF9zaW5nbGUgKHNwLT5wZGV2LAogCQkJCQkoZG1hX2FkZHJfdClyeGRwMy0+QnVmZmVyMl9wdHIsCiAJCQkJCWRldi0+bXR1ICsgNCwgUENJX0RNQV9GUk9NREVWSUNFKTsKQEAgLTY4ODUsOCArNjkyMyw3IEBACiAJCQlyeGRwMy0+QnVmZmVyMV9wdHIgPSAqdGVtcDEgPQogCQkJCXBjaV9tYXBfc2luZ2xlKHNwLT5wZGV2LCBiYS0+YmFfMSwgQlVGMV9MRU4sCiAJCQkJCQlQQ0lfRE1BX0ZST01ERVZJQ0UpOwotCQkJaWYoIChyeGRwMy0+QnVmZmVyMV9wdHIgPT0gMCkgfHwKLQkJCQkocnhkcDMtPkJ1ZmZlcjFfcHRyID09IERNQV9FUlJPUl9DT0RFKSkgeworCQkJaWYgKHBjaV9kbWFfbWFwcGluZ19lcnJvcihyeGRwMy0+QnVmZmVyMV9wdHIpKSB7CiAJCQkJcGNpX3VubWFwX3NpbmdsZSAoc3AtPnBkZXYsCiAJCQkJCShkbWFfYWRkcl90KXJ4ZHAzLT5CdWZmZXIwX3B0ciwKIAkJCQkJQlVGMF9MRU4sIFBDSV9ETUFfRlJPTURFVklDRSk7CkBAIC02OTg0LDYyICs3MDIxLDYyIEBACiAKIAkvKiBBZnRlciBwcm9wZXIgaW5pdGlhbGl6YXRpb24gb2YgSC9XLCByZWdpc3RlciBJU1IgKi8KIAlpZiAoc3AtPmNvbmZpZy5pbnRyX3R5cGUgPT0gTVNJX1gpIHsKLQkJaW50IGksIG1zaXhfdHhfY250PTAsbXNpeF9yeF9jbnQ9MDsKKwkJaW50IGksIG1zaXhfcnhfY250ID0gMDsKIAotCQlmb3IgKGk9MTsgKHNwLT5zMmlvX2VudHJpZXNbaV0uaW5fdXNlID09IE1TSVhfRkxHKTsgaSsrKSB7Ci0JCQlpZiAoc3AtPnMyaW9fZW50cmllc1tpXS50eXBlID09IE1TSVhfRklGT19UWVBFKSB7Ci0JCQkJc3ByaW50ZihzcC0+ZGVzY1tpXSwgIiVzOk1TSS1YLSVkLVRYIiwKKwkJZm9yIChpID0gMDsgaSA8IHNwLT5udW1fZW50cmllczsgaSsrKSB7CisJCQlpZiAoc3AtPnMyaW9fZW50cmllc1tpXS5pbl91c2UgPT0gTVNJWF9GTEcpIHsKKwkJCQlpZiAoc3AtPnMyaW9fZW50cmllc1tpXS50eXBlID09CisJCQkJCU1TSVhfUklOR19UWVBFKSB7CisJCQkJCXNwcmludGYoc3AtPmRlc2NbaV0sICIlczpNU0ktWC0lZC1SWCIsCisJCQkJCQlkZXYtPm5hbWUsIGkpOworCQkJCQllcnIgPSByZXF1ZXN0X2lycShzcC0+ZW50cmllc1tpXS52ZWN0b3IsCisJCQkJCQlzMmlvX21zaXhfcmluZ19oYW5kbGUsIDAsCisJCQkJCQlzcC0+ZGVzY1tpXSwKKwkJCQkJCXNwLT5zMmlvX2VudHJpZXNbaV0uYXJnKTsKKwkJCQl9IGVsc2UgaWYgKHNwLT5zMmlvX2VudHJpZXNbaV0udHlwZSA9PQorCQkJCQlNU0lYX0FMQVJNX1RZUEUpIHsKKwkJCQkJc3ByaW50ZihzcC0+ZGVzY1tpXSwgIiVzOk1TSS1YLSVkLVRYIiwKIAkJCQkJZGV2LT5uYW1lLCBpKTsKLQkJCQllcnIgPSByZXF1ZXN0X2lycShzcC0+ZW50cmllc1tpXS52ZWN0b3IsCi0JCQkJCSAgczJpb19tc2l4X2ZpZm9faGFuZGxlLCAwLCBzcC0+ZGVzY1tpXSwKLQkJCQkJCSAgc3AtPnMyaW9fZW50cmllc1tpXS5hcmcpOwotCQkJCS8qIElmIGVpdGhlciBkYXRhIG9yIGFkZHIgaXMgemVybyBwcmludCBpdCAqLwotCQkJCWlmKCEoc3AtPm1zaXhfaW5mb1tpXS5hZGRyICYmCi0JCQkJCXNwLT5tc2l4X2luZm9baV0uZGF0YSkpIHsKLQkJCQkJREJHX1BSSU5UKEVSUl9EQkcsICIlcyBAIEFkZHI6MHglbGx4ICIKLQkJCQkJCSJEYXRhOjB4JWxseFxuIixzcC0+ZGVzY1tpXSwKLQkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpCi0JCQkJCQlzcC0+bXNpeF9pbmZvW2ldLmFkZHIsCi0JCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKQotCQkJCQkJc3AtPm1zaXhfaW5mb1tpXS5kYXRhKTsKLQkJCQl9IGVsc2UgewotCQkJCQltc2l4X3R4X2NudCsrOworCQkJCQllcnIgPSByZXF1ZXN0X2lycShzcC0+ZW50cmllc1tpXS52ZWN0b3IsCisJCQkJCQlzMmlvX21zaXhfZmlmb19oYW5kbGUsIDAsCisJCQkJCQlzcC0+ZGVzY1tpXSwKKwkJCQkJCXNwLT5zMmlvX2VudHJpZXNbaV0uYXJnKTsKKwogCQkJCX0KLQkJCX0gZWxzZSB7Ci0JCQkJc3ByaW50ZihzcC0+ZGVzY1tpXSwgIiVzOk1TSS1YLSVkLVJYIiwKLQkJCQkJZGV2LT5uYW1lLCBpKTsKLQkJCQllcnIgPSByZXF1ZXN0X2lycShzcC0+ZW50cmllc1tpXS52ZWN0b3IsCi0JCQkJCSAgczJpb19tc2l4X3JpbmdfaGFuZGxlLCAwLCBzcC0+ZGVzY1tpXSwKLQkJCQkJCSAgc3AtPnMyaW9fZW50cmllc1tpXS5hcmcpOwotCQkJCS8qIElmIGVpdGhlciBkYXRhIG9yIGFkZHIgaXMgemVybyBwcmludCBpdCAqLwotCQkJCWlmKCEoc3AtPm1zaXhfaW5mb1tpXS5hZGRyICYmCisJCQkJLyogaWYgZWl0aGVyIGRhdGEgb3IgYWRkciBpcyB6ZXJvIHByaW50IGl0LiAqLworCQkJCWlmICghKHNwLT5tc2l4X2luZm9baV0uYWRkciAmJgogCQkJCQlzcC0+bXNpeF9pbmZvW2ldLmRhdGEpKSB7Ci0JCQkJCURCR19QUklOVChFUlJfREJHLCAiJXMgQCBBZGRyOjB4JWxseCAiCi0JCQkJCQkiRGF0YToweCVsbHhcbiIsc3AtPmRlc2NbaV0sCisJCQkJCURCR19QUklOVChFUlJfREJHLAorCQkJCQkJIiVzIEBBZGRyOjB4JWxseCBEYXRhOjB4JWxseFxuIiwKKwkJCQkJCXNwLT5kZXNjW2ldLAogCQkJCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykKIAkJCQkJCXNwLT5tc2l4X2luZm9baV0uYWRkciwKIAkJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpCi0JCQkJCQlzcC0+bXNpeF9pbmZvW2ldLmRhdGEpOwotCQkJCX0gZWxzZSB7CisJCQkJCQludG9obChzcC0+bXNpeF9pbmZvW2ldLmRhdGEpKTsKKwkJCQl9IGVsc2UKIAkJCQkJbXNpeF9yeF9jbnQrKzsKKwkJCQlpZiAoZXJyKSB7CisJCQkJCXJlbW92ZV9tc2l4X2lzcihzcCk7CisKKwkJCQkJREJHX1BSSU5UKEVSUl9EQkcsCisJCQkJCQkiJXM6TVNJLVgtJWQgcmVnaXN0cmF0aW9uICIKKwkJCQkJCSJmYWlsZWRcbiIsIGRldi0+bmFtZSwgaSk7CisKKwkJCQkJREJHX1BSSU5UKEVSUl9EQkcsCisJCQkJCQkiJXM6IERlZmF1bHRpbmcgdG8gSU5UQVxuIiwKKwkJCQkJCWRldi0+bmFtZSk7CisJCQkJCXNwLT5jb25maWcuaW50cl90eXBlID0gSU5UQTsKKwkJCQkJYnJlYWs7CiAJCQkJfQorCQkJCXNwLT5zMmlvX2VudHJpZXNbaV0uaW5fdXNlID0KKwkJCQkJTVNJWF9SRUdJU1RFUkVEX1NVQ0NFU1M7CiAJCQl9Ci0JCQlpZiAoZXJyKSB7Ci0JCQkJcmVtb3ZlX21zaXhfaXNyKHNwKTsKLQkJCQlEQkdfUFJJTlQoRVJSX0RCRywiJXM6TVNJLVgtJWQgcmVnaXN0cmF0aW9uICIKLQkJCQkJICAiZmFpbGVkXG4iLCBkZXYtPm5hbWUsIGkpOwotCQkJCURCR19QUklOVChFUlJfREJHLCAiJXM6IGRlZmF1bHRpbmcgdG8gSU5UQVxuIiwKLQkJCQkJCSBkZXYtPm5hbWUpOwotCQkJCXNwLT5jb25maWcuaW50cl90eXBlID0gSU5UQTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCXNwLT5zMmlvX2VudHJpZXNbaV0uaW5fdXNlID0gTVNJWF9SRUdJU1RFUkVEX1NVQ0NFU1M7CiAJCX0KIAkJaWYgKCFlcnIpIHsKLQkJCXByaW50ayhLRVJOX0lORk8gIk1TSS1YLVRYICVkIGVudHJpZXMgZW5hYmxlZFxuIiwKLQkJCQltc2l4X3R4X2NudCk7CiAJCQlwcmludGsoS0VSTl9JTkZPICJNU0ktWC1SWCAlZCBlbnRyaWVzIGVuYWJsZWRcbiIsCi0JCQkJbXNpeF9yeF9jbnQpOworCQkJCS0tbXNpeF9yeF9jbnQpOworCQkJREJHX1BSSU5UKElORk9fREJHLCAiTVNJLVgtVFggZW50cmllcyBlbmFibGVkIgorCQkJCQkJIiB0aHJvdWdoIGFsYXJtIHZlY3RvclxuIik7CiAJCX0KIAl9CiAJaWYgKHNwLT5jb25maWcuaW50cl90eXBlID09IElOVEEpIHsKQEAgLTcwODAsOCArNzExNywxNSBAQAogCWNsZWFyX2JpdChfX1MySU9fU1RBVEVfQ0FSRF9VUCwgJnNwLT5zdGF0ZSk7CiAKIAkvKiBEaXNhYmxlIG5hcGkgKi8KLQlpZiAoY29uZmlnLT5uYXBpKQotCQluYXBpX2Rpc2FibGUoJnNwLT5uYXBpKTsKKwlpZiAoc3AtPmNvbmZpZy5uYXBpKSB7CisJCWludCBvZmYgPSAwOworCQlpZiAoY29uZmlnLT5pbnRyX3R5cGUgPT0gIE1TSV9YKSB7CisJCQlmb3IgKDsgb2ZmIDwgc3AtPmNvbmZpZy5yeF9yaW5nX251bTsgb2ZmKyspCisJCQkJbmFwaV9kaXNhYmxlKCZzcC0+bWFjX2NvbnRyb2wucmluZ3Nbb2ZmXS5uYXBpKTsKKwkJCX0KKwkJZWxzZQorCQkJbmFwaV9kaXNhYmxlKCZzcC0+bmFwaSk7CisJfQogCiAJLyogZGlzYWJsZSBUeCBhbmQgUnggdHJhZmZpYyBvbiB0aGUgTklDICovCiAJaWYgKGRvX2lvKQpAQCAtNzE3Myw4ICs3MjE3LDE1IEBACiAJfQogCiAJLyogSW5pdGlhbGlzZSBuYXBpICovCi0JaWYgKGNvbmZpZy0+bmFwaSkKLQkJbmFwaV9lbmFibGUoJnNwLT5uYXBpKTsKKwlpZiAoY29uZmlnLT5uYXBpKSB7CisJCWludCBpOworCQlpZiAoY29uZmlnLT5pbnRyX3R5cGUgPT0gIE1TSV9YKSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgc3AtPmNvbmZpZy5yeF9yaW5nX251bTsgaSsrKQorCQkJCW5hcGlfZW5hYmxlKCZzcC0+bWFjX2NvbnRyb2wucmluZ3NbaV0ubmFwaSk7CisJCX0gZWxzZSB7CisJCQluYXBpX2VuYWJsZSgmc3AtPm5hcGkpOworCQl9CisJfQogCiAJLyogTWFpbnRhaW4gdGhlIHN0YXRlIHByaW9yIHRvIHRoZSBvcGVuICovCiAJaWYgKHNwLT5wcm9taXNjX2ZsZykKQEAgLTcyMTcsNyArNzI2OCw3IEBACiAJLyogIEVuYWJsZSBzZWxlY3QgaW50ZXJydXB0cyAqLwogCWVuX2Rpc19lcnJfYWxhcm1zKHNwLCBFTkFfQUxMX0lOVFJTLCBFTkFCTEVfSU5UUlMpOwogCWlmIChzcC0+Y29uZmlnLmludHJfdHlwZSAhPSBJTlRBKQotCQllbl9kaXNfYWJsZV9uaWNfaW50cnMoc3AsIEVOQV9BTExfSU5UUlMsIERJU0FCTEVfSU5UUlMpOworCQllbl9kaXNfYWJsZV9uaWNfaW50cnMoc3AsIFRYX1RSQUZGSUNfSU5UUiwgRU5BQkxFX0lOVFJTKTsKIAllbHNlIHsKIAkJaW50ZXJydXB0aWJsZSA9IFRYX1RSQUZGSUNfSU5UUiB8IFJYX1RSQUZGSUNfSU5UUjsKIAkJaW50ZXJydXB0aWJsZSB8PSBUWF9QSUNfSU5UUjsKQEAgLTc2MTUsOSArNzY2Niw2IEBACiAJCXJ4X3JpbmdfbnVtID0gTUFYX1JYX1JJTkdTOwogCX0KIAotCWlmICgqZGV2X2ludHJfdHlwZSAhPSBJTlRBKQotCQluYXBpID0gMDsKLQogCWlmICgoKmRldl9pbnRyX3R5cGUgIT0gSU5UQSkgJiYgKCpkZXZfaW50cl90eXBlICE9IE1TSV9YKSkgewogCQlEQkdfUFJJTlQoRVJSX0RCRywgInMyaW86IFdyb25nIGludHJfdHlwZSByZXF1ZXN0ZWQuICIKIAkJCSAgIkRlZmF1bHRpbmcgdG8gSU5UQVxuIik7CkBAIC03OTE4LDggKzc5NjYsNiBAQAogCSAqIHdpbGwgdXNlIGV0aF9tYWNfYWRkcigpIGZvciAgZGV2LT5zZXRfbWFjX2FkZHJlc3MKIAkgKiBtYWMgYWRkcmVzcyB3aWxsIGJlIHNldCBldmVyeSB0aW1lIGRldi0+b3BlbigpIGlzIGNhbGxlZAogCSAqLwotCW5ldGlmX25hcGlfYWRkKGRldiwgJnNwLT5uYXBpLCBzMmlvX3BvbGwsIDMyKTsKLQogI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSCiAJZGV2LT5wb2xsX2NvbnRyb2xsZXIgPSBzMmlvX25ldHBvbGw7CiAjZW5kaWYKQEAgLTc5NjMsNiArODAwOSwzMiBAQAogCQl9CiAJfQogCisJaWYgKHNwLT5jb25maWcuaW50cl90eXBlID09IE1TSV9YKSB7CisJCXNwLT5udW1fZW50cmllcyA9IGNvbmZpZy0+cnhfcmluZ19udW0gKyAxOworCQlyZXQgPSBzMmlvX2VuYWJsZV9tc2lfeChzcCk7CisKKwkJaWYgKCFyZXQpIHsKKwkJCXJldCA9IHMyaW9fdGVzdF9tc2koc3ApOworCQkJLyogcm9sbGJhY2sgTVNJLVgsIHdpbGwgcmUtZW5hYmxlIGR1cmluZyBhZGRfaXNyKCkgKi8KKwkJCXJlbW92ZV9tc2l4X2lzcihzcCk7CisJCX0KKwkJaWYgKHJldCkgeworCisJCQlEQkdfUFJJTlQoRVJSX0RCRywKKwkJCSAgIiVzOiBNU0ktWCByZXF1ZXN0ZWQgYnV0IGZhaWxlZCB0byBlbmFibGVcbiIsCisJCQkgIGRldi0+bmFtZSk7CisJCQlzcC0+Y29uZmlnLmludHJfdHlwZSA9IElOVEE7CisJCX0KKwl9CisKKwlpZiAoY29uZmlnLT5pbnRyX3R5cGUgPT0gIE1TSV9YKSB7CisJCWZvciAoaSA9IDA7IGkgPCBjb25maWctPnJ4X3JpbmdfbnVtIDsgaSsrKQorCQkJbmV0aWZfbmFwaV9hZGQoZGV2LCAmbWFjX2NvbnRyb2wtPnJpbmdzW2ldLm5hcGksCisJCQkJczJpb19wb2xsX21zaXgsIDY0KTsKKwl9IGVsc2UgeworCQluZXRpZl9uYXBpX2FkZChkZXYsICZzcC0+bmFwaSwgczJpb19wb2xsX2ludGEsIDY0KTsKKwl9CisKIAkvKiBOb3QgbmVlZGVkIGZvciBIZXJjICovCiAJaWYgKHNwLT5kZXZpY2VfdHlwZSAmIFhGUkFNRV9JX0RFVklDRSkgewogCQkvKgpAQCAtODAxMyw2ICs4MDg1LDExIEBACiAJLyogc3RvcmUgbWFjIGFkZHJlc3NlcyBmcm9tIENBTSB0byBzMmlvX25pYyBzdHJ1Y3R1cmUgKi8KIAlkb19zMmlvX3N0b3JlX3VuaWNhc3RfbWMoc3ApOwogCisJLyogQ29uZmlndXJlIE1TSVggdmVjdG9yIGZvciBudW1iZXIgb2YgcmluZ3MgY29uZmlndXJlZCBwbHVzIG9uZSAqLworCWlmICgoc3AtPmRldmljZV90eXBlID09IFhGUkFNRV9JSV9ERVZJQ0UpICYmCisJCShjb25maWctPmludHJfdHlwZSA9PSBNU0lfWCkpCisJCXNwLT5udW1fZW50cmllcyA9IGNvbmZpZy0+cnhfcmluZ19udW0gKyAxOworCiAJIC8qIFN0b3JlIHRoZSB2YWx1ZXMgb2YgdGhlIE1TSVggdGFibGUgaW4gdGhlIHMyaW9fbmljIHN0cnVjdHVyZSAqLwogCXN0b3JlX3htc2lfZGF0YShzcCk7CiAJLyogcmVzZXQgTmljIGFuZCBicmluZyBpdCB0byBrbm93biBzdGF0ZSAqLwpAQCAtODA3OCw4ICs4MTU1LDE0IEBACiAJCSAgICBicmVhazsKIAl9CiAKLQlpZiAobmFwaSkKKwlzd2l0Y2ggKHNwLT5jb25maWcubmFwaSkgeworCWNhc2UgMDoKKwkJREJHX1BSSU5UKEVSUl9EQkcsICIlczogTkFQSSBkaXNhYmxlZFxuIiwgZGV2LT5uYW1lKTsKKwkJYnJlYWs7CisJY2FzZSAxOgogCQlEQkdfUFJJTlQoRVJSX0RCRywgIiVzOiBOQVBJIGVuYWJsZWRcbiIsIGRldi0+bmFtZSk7CisJCWJyZWFrOworCX0KIAogCURCR19QUklOVChFUlJfREJHLCAiJXM6IFVzaW5nICVkIFR4IGZpZm8ocylcbiIsIGRldi0+bmFtZSwKIAkJc3AtPmNvbmZpZy50eF9maWZvX251bSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zMmlvLmggYi9kcml2ZXJzL25ldC9zMmlvLmgKaW5kZXggMDcwOWViYWUuLjE4MjdiNjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3MyaW8uaAorKysgYi9kcml2ZXJzL25ldC9zMmlvLmgKQEAgLTc1LDEwICs3NSw2IEBACiAvKiBERUJVRyBtZXNzYWdlIHByaW50LiAqLwogI2RlZmluZSBEQkdfUFJJTlQoZGJnX2xldmVsLCBhcmdzLi4uKSAgaWYoIShkZWJ1Z19sZXZlbDxkYmdfbGV2ZWwpKSBwcmludGsoYXJncykKIAotI2lmbmRlZiBETUFfRVJST1JfQ09ERQotI2RlZmluZSBETUFfRVJST1JfQ09ERSAgICAgICAgICAofihkbWFfYWRkcl90KTB4MCkKLSNlbmRpZgotCiAvKiBQcm90b2NvbCBhc3Npc3QgZmVhdHVyZXMgb2YgdGhlIE5JQyAqLwogI2RlZmluZSBMM19DS1NVTV9PSyAweEZGRkYKICNkZWZpbmUgTDRfQ0tTVU1fT0sgMHhGRkZGCkBAIC03MDYsNyArNzAyLDcgQEAKIAkvKiBwZXItcmluZyBidWZmZXIgY291bnRlciAqLwogCXUzMiByeF9idWZzX2xlZnQ7CiAKLQkjZGVmaW5lIE1BWF9MUk9fU0VTU0lPTlMJMzIKKyNkZWZpbmUgTUFYX0xST19TRVNTSU9OUyAgICAgICAzMgogCXN0cnVjdCBscm8gbHJvMF9uW01BWF9MUk9fU0VTU0lPTlNdOwogCXU4CQlscm87CiAKQEAgLTcyNSw2ICs3MjEsMTEgQEAKIAkvKiBjb3B5IG9mIHNwLT5wZGV2IHBvaW50ZXIgKi8KIAlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKIAorCS8qIFBlciByaW5nIG5hcGkgc3RydWN0ICovCisJc3RydWN0IG5hcGlfc3RydWN0IG5hcGk7CisKKwl1bnNpZ25lZCBsb25nIGludGVycnVwdF9jb3VudDsKKwogCS8qCiAJICogIFBsYWNlIGhvbGRlcnMgZm9yIHRoZSB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzZXMgb2YKIAkgKiAgYWxsIHRoZSBSeCBCbG9ja3MKQEAgLTg0MSw3ICs4NDIsNyBAQAogICogU3RydWN0dXJlIHRvIGtlZXAgdHJhY2sgb2YgdGhlIE1TSS1YIHZlY3RvcnMgYW5kIHRoZSBjb3JyZXNwb25kaW5nCiAgKiBhcmd1bWVudCByZWdpc3RlcmVkIGFnYWluc3QgZWFjaCB2ZWN0b3IKICAqLwotI2RlZmluZSBNQVhfUkVRVUVTVEVEX01TSV9YCTE3CisjZGVmaW5lIE1BWF9SRVFVRVNURURfTVNJX1gJOQogc3RydWN0IHMyaW9fbXNpeF9lbnRyeQogewogCXUxNiB2ZWN0b3I7CkBAIC04NDksOCArODUwLDggQEAKIAl2b2lkICphcmc7CiAKIAl1OCB0eXBlOwotI2RlZmluZQlNU0lYX0ZJRk9fVFlQRQkxCi0jZGVmaW5lCU1TSVhfUklOR19UWVBFCTIKKyNkZWZpbmUgICAgICAgIE1TSVhfQUxBUk1fVFlQRSAgICAgICAgIDEKKyNkZWZpbmUgICAgICAgIE1TSVhfUklOR19UWVBFICAgICAgICAgIDIKIAogCXU4IGluX3VzZTsKICNkZWZpbmUgTVNJWF9SRUdJU1RFUkVEX1NVQ0NFU1MJMHhBQQpAQCAtODc3LDcgKzg3OCw2IEBACiAJICovCiAJaW50IHBrdHNfdG9fcHJvY2VzczsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2OwotCXN0cnVjdCBuYXBpX3N0cnVjdCBuYXBpOwogCXN0cnVjdCBtYWNfaW5mbyBtYWNfY29udHJvbDsKIAlzdHJ1Y3QgY29uZmlnX3BhcmFtIGNvbmZpZzsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKQEAgLTk0OCw2ICs5NDgsNyBAQAogCSovCiAJdTggb3RoZXJfZmlmb19pZHg7CiAKKwlzdHJ1Y3QgbmFwaV9zdHJ1Y3QgbmFwaTsKIAkvKiAgYWZ0ZXIgYmxpbmssIHRoZSBhZGFwdGVyIG11c3QgYmUgcmVzdG9yZWQgd2l0aCBvcmlnaW5hbAogCSAqICB2YWx1ZXMuCiAJICovCkBAIC05NjIsNiArOTYzLDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnRfdGltZTsKIAlzdHJ1Y3Qgdmxhbl9ncm91cCAqdmxncnA7CiAjZGVmaW5lIE1TSVhfRkxHICAgICAgICAgICAgICAgIDB4QTUKKwlpbnQgbnVtX2VudHJpZXM7CiAJc3RydWN0IG1zaXhfZW50cnkgKmVudHJpZXM7CiAJaW50IG1zaV9kZXRlY3RlZDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCBtc2lfd2FpdDsKQEAgLTk4Miw2ICs5ODQsNyBAQAogCXUxNgkJbHJvX21heF9hZ2dyX3Blcl9zZXNzOwogCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc3RhdGU7CiAJdTY0CQlnZW5lcmFsX2ludF9tYXNrOworCiAjZGVmaW5lIFZQRF9TVFJJTkdfTEVOIDgwCiAJdTggIHByb2R1Y3RfbmFtZVtWUERfU1RSSU5HX0xFTl07CiAJdTggIHNlcmlhbF9udW1bVlBEX1NUUklOR19MRU5dOwpAQCAtMTEwMyw3ICsxMTA2LDcgQEAKIHN0YXRpYyBpbnQgaW5pdF9zaGFyZWRfbWVtKHN0cnVjdCBzMmlvX25pYyAqc3ApOwogc3RhdGljIHZvaWQgZnJlZV9zaGFyZWRfbWVtKHN0cnVjdCBzMmlvX25pYyAqc3ApOwogc3RhdGljIGludCBpbml0X25pYyhzdHJ1Y3QgczJpb19uaWMgKm5pYyk7Ci1zdGF0aWMgdm9pZCByeF9pbnRyX2hhbmRsZXIoc3RydWN0IHJpbmdfaW5mbyAqcmluZ19kYXRhKTsKK3N0YXRpYyBpbnQgcnhfaW50cl9oYW5kbGVyKHN0cnVjdCByaW5nX2luZm8gKnJpbmdfZGF0YSwgaW50IGJ1ZGdldCk7CiBzdGF0aWMgdm9pZCB0eF9pbnRyX2hhbmRsZXIoc3RydWN0IGZpZm9faW5mbyAqZmlmb19kYXRhKTsKIHN0YXRpYyB2b2lkIHMyaW9faGFuZGxlX2Vycm9ycyh2b2lkICogZGV2X2lkKTsKIApAQCAtMTExNCw3ICsxMTE3LDggQEAKIHN0YXRpYyBpbnQgcnhfb3NtX2hhbmRsZXIoc3RydWN0IHJpbmdfaW5mbyAqcmluZ19kYXRhLCBzdHJ1Y3QgUnhEX3QgKiByeGRwKTsKIHN0YXRpYyB2b2lkIHMyaW9fbGluayhzdHJ1Y3QgczJpb19uaWMgKiBzcCwgaW50IGxpbmspOwogc3RhdGljIHZvaWQgczJpb19yZXNldChzdHJ1Y3QgczJpb19uaWMgKiBzcCk7Ci1zdGF0aWMgaW50IHMyaW9fcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOworc3RhdGljIGludCBzMmlvX3BvbGxfbXNpeChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOworc3RhdGljIGludCBzMmlvX3BvbGxfaW50YShzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpOwogc3RhdGljIHZvaWQgczJpb19pbml0X3BjaShzdHJ1Y3QgczJpb19uaWMgKiBzcCk7CiBzdGF0aWMgaW50IGRvX3MyaW9fcHJvZ191bmljYXN0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHU4ICphZGRyKTsKIHN0YXRpYyB2b2lkIHMyaW9fYWxhcm1faGFuZGxlKHVuc2lnbmVkIGxvbmcgZGF0YSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zYjEyNTAtbWFjLmMgYi9kcml2ZXJzL25ldC9zYjEyNTAtbWFjLmMKaW5kZXggODg4YjdkZS4uMzNiYjE4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2IxMjUwLW1hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3NiMTI1MC1tYWMuYwpAQCAtMTc5LDggKzE3OSw3IEBACiAjZGVmaW5lIFNCTUFDX01BWF9UWERFU0NSCTI1NgogI2RlZmluZSBTQk1BQ19NQVhfUlhERVNDUgkyNTYKIAotI2RlZmluZSBFVEhFUl9BTElHTgkyCi0jZGVmaW5lIEVUSEVSX0FERFJfTEVOCTYKKyNkZWZpbmUgRVRIRVJfQUREUl9MRU4JCTYKICNkZWZpbmUgRU5FVF9QQUNLRVRfU0laRQkxNTE4CiAvKiNkZWZpbmUgRU5FVF9QQUNLRVRfU0laRQk5MjE2ICovCiAKQEAgLTI2Miw4ICsyNjEsNiBAQAogCXNwaW5sb2NrX3QJCXNibV9sb2NrOwkvKiBzcGluIGxvY2sgKi8KIAlpbnQJCQlzYm1fZGV2ZmxhZ3M7CS8qIGN1cnJlbnQgZGV2aWNlIGZsYWdzICovCiAKLQlpbnQJCQlzYm1fYnVmZmVyc2l6ZTsKLQogCS8qCiAJICogQ29udHJvbGxlci1zcGVjaWZpYyB0aGluZ3MKIAkgKi8KQEAgLTMwNSwxMCArMzAyLDExIEBACiBzdGF0aWMgdm9pZCBzYmRtYV9pbml0Y3R4KHN0cnVjdCBzYm1hY2RtYSAqZCwgc3RydWN0IHNibWFjX3NvZnRjICpzLCBpbnQgY2hhbiwKIAkJCSAgaW50IHR4cngsIGludCBtYXhkZXNjcik7CiBzdGF0aWMgdm9pZCBzYmRtYV9jaGFubmVsX3N0YXJ0KHN0cnVjdCBzYm1hY2RtYSAqZCwgaW50IHJ4dHgpOwotc3RhdGljIGludCBzYmRtYV9hZGRfcmN2YnVmZmVyKHN0cnVjdCBzYm1hY2RtYSAqZCwgc3RydWN0IHNrX2J1ZmYgKm0pOworc3RhdGljIGludCBzYmRtYV9hZGRfcmN2YnVmZmVyKHN0cnVjdCBzYm1hY19zb2Z0YyAqc2MsIHN0cnVjdCBzYm1hY2RtYSAqZCwKKwkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqbSk7CiBzdGF0aWMgaW50IHNiZG1hX2FkZF90eGJ1ZmZlcihzdHJ1Y3Qgc2JtYWNkbWEgKmQsIHN0cnVjdCBza19idWZmICptKTsKIHN0YXRpYyB2b2lkIHNiZG1hX2VtcHR5cmluZyhzdHJ1Y3Qgc2JtYWNkbWEgKmQpOwotc3RhdGljIHZvaWQgc2JkbWFfZmlsbHJpbmcoc3RydWN0IHNibWFjZG1hICpkKTsKK3N0YXRpYyB2b2lkIHNiZG1hX2ZpbGxyaW5nKHN0cnVjdCBzYm1hY19zb2Z0YyAqc2MsIHN0cnVjdCBzYm1hY2RtYSAqZCk7CiBzdGF0aWMgaW50IHNiZG1hX3J4X3Byb2Nlc3Moc3RydWN0IHNibWFjX3NvZnRjICpzYywgc3RydWN0IHNibWFjZG1hICpkLAogCQkJICAgIGludCB3b3JrX3RvX2RvLCBpbnQgcG9sbCk7CiBzdGF0aWMgdm9pZCBzYmRtYV90eF9wcm9jZXNzKHN0cnVjdCBzYm1hY19zb2Z0YyAqc2MsIHN0cnVjdCBzYm1hY2RtYSAqZCwKQEAgLTc3NywxNiArNzc1LDEzIEBACiAJZC0+c2JkbWFfcmVtcHRyID0gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgc2JkbWFfYWxpZ25fc2tiKHN0cnVjdCBza19idWZmICpza2IsaW50IHBvd2VyMixpbnQgb2Zmc2V0KQorc3RhdGljIGlubGluZSB2b2lkIHNiZG1hX2FsaWduX3NrYihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSAgIHVuc2lnbmVkIGludCBwb3dlcjIsIHVuc2lnbmVkIGludCBvZmZzZXQpCiB7Ci0JdW5zaWduZWQgbG9uZyBhZGRyOwotCXVuc2lnbmVkIGxvbmcgbmV3YWRkcjsKKwl1bnNpZ25lZCBjaGFyICphZGRyID0gc2tiLT5kYXRhOworCXVuc2lnbmVkIGNoYXIgKm5ld2FkZHIgPSBQVFJfQUxJR04oYWRkciwgcG93ZXIyKTsKIAotCWFkZHIgPSAodW5zaWduZWQgbG9uZykgc2tiLT5kYXRhOwotCi0JbmV3YWRkciA9IChhZGRyICsgcG93ZXIyIC0gMSkgJiB+KHBvd2VyMiAtIDEpOwotCi0Jc2tiX3Jlc2VydmUoc2tiLG5ld2FkZHItYWRkcitvZmZzZXQpOworCXNrYl9yZXNlcnZlKHNrYiwgbmV3YWRkciAtIGFkZHIgKyBvZmZzZXQpOwogfQogCiAKQEAgLTc5Nyw3ICs3OTIsOCBAQAogICogIHRoaXMgcXVldWVzIGEgYnVmZmVyIGZvciBpbmJvdW5kIHBhY2tldHMuCiAgKgogICogIElucHV0IHBhcmFtZXRlcnM6Ci0gKiAgCSAgIGQgLSBETUEgY2hhbm5lbCBkZXNjcmlwdG9yCisgKgkgICBzYyAtIHNvZnRjIHN0cnVjdHVyZQorICogIAkgICAgZCAtIERNQSBjaGFubmVsIGRlc2NyaXB0b3IKICAqIAkgICBzYiAtIHNrX2J1ZmYgdG8gYWRkLCBvciBOVUxMIGlmIHdlIHNob3VsZCBhbGxvY2F0ZSBvbmUKICAqCiAgKiAgUmV0dXJuIHZhbHVlOgpAQCAtODA2LDggKzgwMiwxMCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCiAKLXN0YXRpYyBpbnQgc2JkbWFfYWRkX3JjdmJ1ZmZlcihzdHJ1Y3Qgc2JtYWNkbWEgKmQsIHN0cnVjdCBza19idWZmICpzYikKK3N0YXRpYyBpbnQgc2JkbWFfYWRkX3JjdmJ1ZmZlcihzdHJ1Y3Qgc2JtYWNfc29mdGMgKnNjLCBzdHJ1Y3Qgc2JtYWNkbWEgKmQsCisJCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNiKQogeworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBzYy0+c2JtX2RldjsKIAlzdHJ1Y3Qgc2JkbWFkc2NyICpkc2M7CiAJc3RydWN0IHNiZG1hZHNjciAqbmV4dGRzYzsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2JfbmV3ID0gTlVMTDsKQEAgLTg0OCwxNCArODQ2LDE2IEBACiAJICovCiAKIAlpZiAoc2IgPT0gTlVMTCkgewotCQlzYl9uZXcgPSBkZXZfYWxsb2Nfc2tiKEVORVRfUEFDS0VUX1NJWkUgKyBTTVBfQ0FDSEVfQllURVMgKiAyICsgRVRIRVJfQUxJR04pOworCQlzYl9uZXcgPSBuZXRkZXZfYWxsb2Nfc2tiKGRldiwgRU5FVF9QQUNLRVRfU0laRSArCisJCQkJCSAgICAgICBTTVBfQ0FDSEVfQllURVMgKiAyICsKKwkJCQkJICAgICAgIE5FVF9JUF9BTElHTik7CiAJCWlmIChzYl9uZXcgPT0gTlVMTCkgewogCQkJcHJfaW5mbygiJXM6IHNrX2J1ZmYgYWxsb2NhdGlvbiBmYWlsZWRcbiIsCiAJCQkgICAgICAgZC0+c2JkbWFfZXRoLT5zYm1fZGV2LT5uYW1lKTsKIAkJCXJldHVybiAtRU5PQlVGUzsKIAkJfQogCi0JCXNiZG1hX2FsaWduX3NrYihzYl9uZXcsIFNNUF9DQUNIRV9CWVRFUywgRVRIRVJfQUxJR04pOworCQlzYmRtYV9hbGlnbl9za2Ioc2JfbmV3LCBTTVBfQ0FDSEVfQllURVMsIE5FVF9JUF9BTElHTik7CiAJfQogCWVsc2UgewogCQlzYl9uZXcgPSBzYjsKQEAgLTg3NCwxMCArODc0LDEwIEBACiAJICogRG8gbm90IGludGVycnVwdCBwZXIgRE1BIHRyYW5zZmVyLgogCSAqLwogCWRzYy0+ZHNjcl9hID0gdmlydF90b19waHlzKHNiX25ldy0+ZGF0YSkgfAotCQlWX0RNQV9EU0NSQV9BX1NJWkUoTlVNQ0FDSEVCTEtTKHBrdHNpemUrRVRIRVJfQUxJR04pKSB8IDA7CisJCVZfRE1BX0RTQ1JBX0FfU0laRShOVU1DQUNIRUJMS1MocGt0c2l6ZSArIE5FVF9JUF9BTElHTikpIHwgMDsKICNlbHNlCiAJZHNjLT5kc2NyX2EgPSB2aXJ0X3RvX3BoeXMoc2JfbmV3LT5kYXRhKSB8Ci0JCVZfRE1BX0RTQ1JBX0FfU0laRShOVU1DQUNIRUJMS1MocGt0c2l6ZStFVEhFUl9BTElHTikpIHwKKwkJVl9ETUFfRFNDUkFfQV9TSVpFKE5VTUNBQ0hFQkxLUyhwa3RzaXplICsgTkVUX0lQX0FMSUdOKSkgfAogCQlNX0RNQV9EU0NSQV9JTlRFUlJVUFQ7CiAjZW5kaWYKIApAQCAtMTAzMiwxOCArMTAzMiwxOSBAQAogICogIHdpdGggc2tfYnVmZnMKICAqCiAgKiAgSW5wdXQgcGFyYW1ldGVyczoKLSAqICAJICAgZCAtIERNQSBjaGFubmVsCisgKgkgICBzYyAtIHNvZnRjIHN0cnVjdHVyZQorICogIAkgICAgZCAtIERNQSBjaGFubmVsCiAgKgogICogIFJldHVybiB2YWx1ZToKICAqICAJICAgbm90aGluZwogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCi1zdGF0aWMgdm9pZCBzYmRtYV9maWxscmluZyhzdHJ1Y3Qgc2JtYWNkbWEgKmQpCitzdGF0aWMgdm9pZCBzYmRtYV9maWxscmluZyhzdHJ1Y3Qgc2JtYWNfc29mdGMgKnNjLCBzdHJ1Y3Qgc2JtYWNkbWEgKmQpCiB7CiAJaW50IGlkeDsKIAotCWZvciAoaWR4ID0gMDsgaWR4IDwgU0JNQUNfTUFYX1JYREVTQ1ItMTsgaWR4KyspIHsKLQkJaWYgKHNiZG1hX2FkZF9yY3ZidWZmZXIoZCxOVUxMKSAhPSAwKQorCWZvciAoaWR4ID0gMDsgaWR4IDwgU0JNQUNfTUFYX1JYREVTQ1IgLSAxOyBpZHgrKykgeworCQlpZiAoc2JkbWFfYWRkX3JjdmJ1ZmZlcihzYywgZCwgTlVMTCkgIT0gMCkKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTExNTksMTAgKzExNjAsMTEgQEAKIAkJCSAqIHBhY2tldCBhbmQgcHV0IGl0IHJpZ2h0IGJhY2sgb24gdGhlIHJlY2VpdmUgcmluZy4KIAkJCSAqLwogCi0JCQlpZiAodW5saWtlbHkgKHNiZG1hX2FkZF9yY3ZidWZmZXIoZCxOVUxMKSA9PQotCQkJCSAgICAgIC1FTk9CVUZTKSkgeworCQkJaWYgKHVubGlrZWx5KHNiZG1hX2FkZF9yY3ZidWZmZXIoc2MsIGQsIE5VTEwpID09CisJCQkJICAgICAtRU5PQlVGUykpIHsKIAkJCQlkZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKLQkJCQlzYmRtYV9hZGRfcmN2YnVmZmVyKGQsc2IpOyAvKiByZS1hZGQgb2xkIGJ1ZmZlciAqLworCQkJCS8qIFJlLWFkZCBvbGQgYnVmZmVyICovCisJCQkJc2JkbWFfYWRkX3JjdmJ1ZmZlcihzYywgZCwgc2IpOwogCQkJCS8qIE5vIHBvaW50IGluIGNvbnRpbnVpbmcgYXQgdGhlIG1vbWVudCAqLwogCQkJCXByaW50ayhLRVJOX0VSUiAiZHJvcHBlZCBwYWNrZXQgKDEpXG4iKTsKIAkJCQlkLT5zYmRtYV9yZW1wdHIgPSBTQkRNQV9ORVhUQlVGKGQsc2JkbWFfcmVtcHRyKTsKQEAgLTEyMTIsNyArMTIxNCw3IEBACiAJCQkgKiBwdXQgaXQgYmFjayBvbiB0aGUgcmVjZWl2ZSByaW5nLgogCQkJICovCiAJCQlkZXYtPnN0YXRzLnJ4X2Vycm9ycysrOwotCQkJc2JkbWFfYWRkX3JjdmJ1ZmZlcihkLHNiKTsKKwkJCXNiZG1hX2FkZF9yY3ZidWZmZXIoc2MsIGQsIHNiKTsKIAkJfQogCiAKQEAgLTE1NzAsNyArMTU3Miw3IEBACiAJICogRmlsbCB0aGUgcmVjZWl2ZSByaW5nCiAJICovCiAKLQlzYmRtYV9maWxscmluZygmKHMtPnNibV9yeGRtYSkpOworCXNiZG1hX2ZpbGxyaW5nKHMsICYocy0+c2JtX3J4ZG1hKSk7CiAKIAkvKgogCSAqIFR1cm4gb24gdGhlIHJlc3Qgb2YgdGhlIGJpdHMgaW4gdGhlIGVuYWJsZSByZWdpc3RlcgpAQCAtMjMxMiwxMyArMjMxNCw2IEBACiAJCWRldi0+ZGV2X2FkZHJbaV0gPSBlYWRkcltpXTsKIAl9CiAKLQotCS8qCi0JICogSW5pdCBwYWNrZXQgc2l6ZQotCSAqLwotCi0Jc2MtPnNibV9idWZmZXJzaXplID0gRU5FVF9QQUNLRVRfU0laRSArIFNNUF9DQUNIRV9CWVRFUyAqIDIgKyBFVEhFUl9BTElHTjsKLQogCS8qCiAJICogSW5pdGlhbGl6ZSBjb250ZXh0IChnZXQgcG9pbnRlcnMgdG8gcmVnaXN0ZXJzIGFuZCBzdHVmZiksIHRoZW4KIAkgKiBhbGxvY2F0ZSB0aGUgbWVtb3J5IGZvciB0aGUgZGVzY3JpcHRvciB0YWJsZXMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zYzkyMDMxLmMgYi9kcml2ZXJzL25ldC9zYzkyMDMxLmMKaW5kZXggZjY0YTg2MC4uNjE5NTVmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2M5MjAzMS5jCisrKyBiL2RyaXZlcnMvbmV0L3NjOTIwMzEuYwpAQCAtOTUzLDkgKzk1Myw2IEBACiAJdW5zaWduZWQgZW50cnk7CiAJdTMyIHR4X3N0YXR1czsKIAotCWlmIChza2JfcGFkdG8oc2tiLCBFVEhfWkxFTikpCi0JCXJldHVybiBORVRERVZfVFhfT0s7Ci0KIAlpZiAodW5saWtlbHkoc2tiLT5sZW4gPiBUWF9CVUZfU0laRSkpIHsKIAkJZGV2LT5zdGF0cy50eF9kcm9wcGVkKys7CiAJCWdvdG8gb3V0OwpAQCAtOTc1LDYgKzk3MiwxMSBAQAogCXNrYl9jb3B5X2FuZF9jc3VtX2Rldihza2IsIHByaXYtPnR4X2J1ZnMgKyBlbnRyeSAqIFRYX0JVRl9TSVpFKTsKIAogCWxlbiA9IHNrYi0+bGVuOworCWlmIChsZW4gPCBFVEhfWkxFTikgeworCQltZW1zZXQocHJpdi0+dHhfYnVmcyArIGVudHJ5ICogVFhfQlVGX1NJWkUgKyBsZW4sCisJCQkJMCwgRVRIX1pMRU4gLSBsZW4pOworCQlsZW4gPSBFVEhfWkxFTjsKKwl9CiAKIAl3bWIoKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL2JpdGZpZWxkLmggYi9kcml2ZXJzL25ldC9zZmMvYml0ZmllbGQuaAppbmRleCAyODA2MjAxLi4yYzc5ZDI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zZmMvYml0ZmllbGQuaAorKysgYi9kcml2ZXJzL25ldC9zZmMvYml0ZmllbGQuaApAQCAtNDgzLDcgKzQ4Myw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBFRlhfU0VUX09XT1JEX0ZJRUxEX1ZFUihlZngsIG93b3JkLCBmaWVsZCwgdmFsdWUpIGRvIHsgXAotCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgewkJCSAgIFwKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApIHsJCQkgICBcCiAJCUVGWF9TRVRfT1dPUkRfRklFTEQoKG93b3JkKSwgZmllbGQjI19CMCwgKHZhbHVlKSk7IFwKIAl9IGVsc2UgeyBcCiAJCUVGWF9TRVRfT1dPUkRfRklFTEQoKG93b3JkKSwgZmllbGQjI19BMSwgKHZhbHVlKSk7IFwKQEAgLTQ5MSw3ICs0OTEsNyBAQAogfSB3aGlsZSAoMCkKIAogI2RlZmluZSBFRlhfUVdPUkRfRklFTERfVkVSKGVmeCwgcXdvcmQsIGZpZWxkKQlcCi0JKEZBTENPTl9SRVYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwID8JXAorCShmYWxjb25fcmV2KGVmeCkgPj0gRkFMQ09OX1JFVl9CMCA/CVwKIAkgRUZYX1FXT1JEX0ZJRUxEKChxd29yZCksIGZpZWxkIyNfQjApIDoJXAogCSBFRlhfUVdPUkRfRklFTEQoKHF3b3JkKSwgZmllbGQjI19BMSkpCiAKQEAgLTUwMSw4ICs1MDEsNSBAQAogI2RlZmluZSBETUFfQUREUl9UX1dJRFRICSg4ICogc2l6ZW9mKGRtYV9hZGRyX3QpKQogI2RlZmluZSBFRlhfRE1BX1RZUEVfV0lEVEgod2lkdGgpIFwKIAkoKCh3aWR0aCkgPCBETUFfQUREUl9UX1dJRFRIKSA/ICh3aWR0aCkgOiBETUFfQUREUl9UX1dJRFRIKQotI2RlZmluZSBFRlhfRE1BX01BWF9NQVNLICgoRE1BX0FERFJfVF9XSURUSCA9PSA2NCkgPyBcCi0JCQkgIH4oKHU2NCkgMCkgOiB+KCh1MzIpIDApKQotI2RlZmluZSBFRlhfRE1BX01BU0sobWFzaykgKChtYXNrKSAmIEVGWF9ETUFfTUFYX01BU0spCiAKICNlbmRpZiAvKiBFRlhfQklURklFTERfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL2JvYXJkcy5jIGIvZHJpdmVycy9uZXQvc2ZjL2JvYXJkcy5jCmluZGV4IGVlY2FhNmQuLjdmYzAzMjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9ib2FyZHMuYworKysgYi9kcml2ZXJzL25ldC9zZmMvYm9hcmRzLmMKQEAgLTI3LDEwICsyNyw4IEBACiAJc3RydWN0IGVmeF9ibGlua2VyICpibCA9ICZlZngtPmJvYXJkX2luZm8uYmxpbmtlcjsKIAllZngtPmJvYXJkX2luZm8uc2V0X2ZhdWx0X2xlZChlZngsIGJsLT5zdGF0ZSk7CiAJYmwtPnN0YXRlID0gIWJsLT5zdGF0ZTsKLQlpZiAoYmwtPnJlc3VibWl0KSB7Ci0JCWJsLT50aW1lci5leHBpcmVzID0gamlmZmllcyArIEJMSU5LX0lOVEVSVkFMOwotCQlhZGRfdGltZXIoJmJsLT50aW1lcik7Ci0JfQorCWlmIChibC0+cmVzdWJtaXQpCisJCW1vZF90aW1lcigmYmwtPnRpbWVyLCBqaWZmaWVzICsgQkxJTktfSU5URVJWQUwpOwogfQogCiBzdGF0aWMgdm9pZCBib2FyZF9ibGluayhzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBpbnQgYmxpbmspCkBAIC00NCw4ICs0Miw3IEBACiAJCWJsaW5rZXItPnN0YXRlID0gMDsKIAkJc2V0dXBfdGltZXIoJmJsaW5rZXItPnRpbWVyLCBibGlua19sZWRfdGltZXIsCiAJCQkgICAgKHVuc2lnbmVkIGxvbmcpZWZ4KTsKLQkJYmxpbmtlci0+dGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBCTElOS19JTlRFUlZBTDsKLQkJYWRkX3RpbWVyKCZibGlua2VyLT50aW1lcik7CisJCW1vZF90aW1lcigmYmxpbmtlci0+dGltZXIsIGppZmZpZXMgKyBCTElOS19JTlRFUlZBTCk7CiAJfSBlbHNlIHsKIAkJYmxpbmtlci0+cmVzdWJtaXQgPSAwOwogCQlpZiAoYmxpbmtlci0+dGltZXIuZnVuY3Rpb24pCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvZWZ4LmMgYi9kcml2ZXJzL25ldC9zZmMvZWZ4LmMKaW5kZXggNDE4ZjJlNS4uNDQ5NzYwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2ZjL2VmeC5jCisrKyBiL2RyaXZlcnMvbmV0L3NmYy9lZnguYwpAQCAtMTk5LDExICsxOTksMTIgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGVmeF9jaGFubmVsX3Byb2Nlc3NlZChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpCiB7Ci0JLyogV3JpdGUgdG8gRVZRX1JQVFJfUkVHLiAgSWYgYSBuZXcgZXZlbnQgYXJyaXZlZCBpbiBhIHJhY2UKLQkgKiB3aXRoIGZpbmlzaGluZyBwcm9jZXNzaW5nLCBhIG5ldyBpbnRlcnJ1cHQgd2lsbCBiZSByYWlzZWQuCi0JICovCisJLyogVGhlIGludGVycnVwdCBoYW5kbGVyIGZvciB0aGlzIGNoYW5uZWwgbWF5IHNldCB3b3JrX3BlbmRpbmcKKwkgKiBhcyBzb29uIGFzIHdlIGFja25vd2xlZGdlIHRoZSBldmVudHMgd2UndmUgc2Vlbi4gIE1ha2Ugc3VyZQorCSAqIGl0J3MgY2xlYXJlZCBiZWZvcmUgdGhlbi4gKi8KIAljaGFubmVsLT53b3JrX3BlbmRpbmcgPSAwOwotCXNtcF93bWIoKTsgLyogRW5zdXJlIGNoYW5uZWwgdXBkYXRlZCBiZWZvcmUgYW55IG5ldyBpbnRlcnJ1cHQuICovCisJc21wX3dtYigpOworCiAJZmFsY29uX2V2ZW50cV9yZWFkX2FjayhjaGFubmVsKTsKIH0KIApAQCAtMjY1LDcgKzI2Niw3IEBACiAJbmFwaV9kaXNhYmxlKCZjaGFubmVsLT5uYXBpX3N0cik7CiAKIAkvKiBQb2xsIHRoZSBjaGFubmVsICovCi0JKHZvaWQpIGVmeF9wcm9jZXNzX2NoYW5uZWwoY2hhbm5lbCwgZWZ4LT50eXBlLT5ldnFfc2l6ZSk7CisJZWZ4X3Byb2Nlc3NfY2hhbm5lbChjaGFubmVsLCBlZngtPnR5cGUtPmV2cV9zaXplKTsKIAogCS8qIEFjayB0aGUgZXZlbnRxLiBUaGlzIG1heSBjYXVzZSBhbiBpbnRlcnJ1cHQgdG8gYmUgZ2VuZXJhdGVkCiAJICogd2hlbiB0aGV5IGFyZSByZWVuYWJsZWQgKi8KQEAgLTMxNywyNiArMzE4LDYgQEAKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotLyogU2V0dXAgcGVyLU5JQyBSWCBidWZmZXIgcGFyYW1ldGVycy4KLSAqIENhbGN1bGF0ZSB0aGUgcnggYnVmZmVyIGFsbG9jYXRpb24gcGFyYW1ldGVycyByZXF1aXJlZCB0byBzdXBwb3J0Ci0gKiB0aGUgY3VycmVudCBNVFUsIGluY2x1ZGluZyBwYWRkaW5nIGZvciBoZWFkZXIgYWxpZ25tZW50IGFuZCBvdmVycnVucy4KLSAqLwotc3RhdGljIHZvaWQgZWZ4X2NhbGNfcnhfYnVmZmVyX3BhcmFtcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQotewotCXVuc2lnbmVkIGludCBvcmRlciwgbGVuOwotCi0JbGVuID0gKG1heChFRlhfUEFHRV9JUF9BTElHTiwgTkVUX0lQX0FMSUdOKSArCi0JICAgICAgIEVGWF9NQVhfRlJBTUVfTEVOKGVmeC0+bmV0X2Rldi0+bXR1KSArCi0JICAgICAgIGVmeC0+dHlwZS0+cnhfYnVmZmVyX3BhZGRpbmcpOwotCi0JLyogQ2FsY3VsYXRlIHBhZ2Utb3JkZXIgKi8KLQlmb3IgKG9yZGVyID0gMDsgKCgxdSA8PCBvcmRlcikgKiBQQUdFX1NJWkUpIDwgbGVuOyArK29yZGVyKQotCQk7Ci0KLQllZngtPnJ4X2J1ZmZlcl9sZW4gPSBsZW47Ci0JZWZ4LT5yeF9idWZmZXJfb3JkZXIgPSBvcmRlcjsKLX0KLQogc3RhdGljIGludCBlZnhfcHJvYmVfY2hhbm5lbChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpCiB7CiAJc3RydWN0IGVmeF90eF9xdWV1ZSAqdHhfcXVldWU7CkBAIC0zODcsNyArMzY4LDE0IEBACiAJc3RydWN0IGVmeF9jaGFubmVsICpjaGFubmVsOwogCWludCByYyA9IDA7CiAKLQllZnhfY2FsY19yeF9idWZmZXJfcGFyYW1zKGVmeCk7CisJLyogQ2FsY3VsYXRlIHRoZSByeCBidWZmZXIgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIHJlcXVpcmVkIHRvCisJICogc3VwcG9ydCB0aGUgY3VycmVudCBNVFUsIGluY2x1ZGluZyBwYWRkaW5nIGZvciBoZWFkZXIKKwkgKiBhbGlnbm1lbnQgYW5kIG92ZXJydW5zLgorCSAqLworCWVmeC0+cnhfYnVmZmVyX2xlbiA9IChtYXgoRUZYX1BBR0VfSVBfQUxJR04sIE5FVF9JUF9BTElHTikgKworCQkJICAgICAgRUZYX01BWF9GUkFNRV9MRU4oZWZ4LT5uZXRfZGV2LT5tdHUpICsKKwkJCSAgICAgIGVmeC0+dHlwZS0+cnhfYnVmZmVyX3BhZGRpbmcpOworCWVmeC0+cnhfYnVmZmVyX29yZGVyID0gZ2V0X29yZGVyKGVmeC0+cnhfYnVmZmVyX2xlbik7CiAKIAkvKiBJbml0aWFsaXNlIHRoZSBjaGFubmVscyAqLwogCWVmeF9mb3JfZWFjaF9jaGFubmVsKGNoYW5uZWwsIGVmeCkgewpAQCAtNDQwLDkgKzQyOCwxMiBAQAogCQluZXRpZl9uYXBpX2FkZChjaGFubmVsLT5uYXBpX2RldiwgJmNoYW5uZWwtPm5hcGlfc3RyLAogCQkJICAgICAgIGVmeF9wb2xsLCBuYXBpX3dlaWdodCk7CiAKKwkvKiBUaGUgaW50ZXJydXB0IGhhbmRsZXIgZm9yIHRoaXMgY2hhbm5lbCBtYXkgc2V0IHdvcmtfcGVuZGluZworCSAqIGFzIHNvb24gYXMgd2UgZW5hYmxlIGl0LiAgTWFrZSBzdXJlIGl0J3MgY2xlYXJlZCBiZWZvcmUKKwkgKiB0aGVuLiAgU2ltaWxhcmx5LCBtYWtlIHN1cmUgaXQgc2VlcyB0aGUgZW5hYmxlZCBmbGFnIHNldC4gKi8KIAljaGFubmVsLT53b3JrX3BlbmRpbmcgPSAwOwogCWNoYW5uZWwtPmVuYWJsZWQgPSAxOwotCXNtcF93bWIoKTsgLyogZW5zdXJlIGNoYW5uZWwgdXBkYXRlZCBiZWZvcmUgZmlyc3QgaW50ZXJydXB0ICovCisJc21wX3dtYigpOwogCiAJbmFwaV9lbmFibGUoJmNoYW5uZWwtPm5hcGlfc3RyKTsKIApAQCAtNzA0LDcgKzY5NSw3IEBACiAJbXV0ZXhfdW5sb2NrKCZlZngtPm1hY19sb2NrKTsKIAogCS8qIFNlcmlhbGlzZSBhZ2FpbnN0IGVmeF9zZXRfbXVsdGljYXN0X2xpc3QoKSAqLwotCWlmIChORVRfREVWX1JFR0lTVEVSRUQoZWZ4KSkgeworCWlmIChlZnhfZGV2X3JlZ2lzdGVyZWQoZWZ4KSkgewogCQluZXRpZl90eF9sb2NrX2JoKGVmeC0+bmV0X2Rldik7CiAJCW5ldGlmX3R4X3VubG9ja19iaChlZngtPm5ldF9kZXYpOwogCX0KQEAgLTc5MSwyMiArNzgyLDIzIEBACiAJZWZ4LT5tZW1iYXNlID0gaW9yZW1hcF9ub2NhY2hlKGVmeC0+bWVtYmFzZV9waHlzLAogCQkJCSAgICAgICBlZngtPnR5cGUtPm1lbV9tYXBfc2l6ZSk7CiAJaWYgKCFlZngtPm1lbWJhc2UpIHsKLQkJRUZYX0VSUihlZngsICJjb3VsZCBub3QgbWFwIG1lbW9yeSBCQVIgJWQgYXQgJWx4KyV4XG4iLAotCQkJZWZ4LT50eXBlLT5tZW1fYmFyLCBlZngtPm1lbWJhc2VfcGh5cywKKwkJRUZYX0VSUihlZngsICJjb3VsZCBub3QgbWFwIG1lbW9yeSBCQVIgJWQgYXQgJWxseCsleFxuIiwKKwkJCWVmeC0+dHlwZS0+bWVtX2JhciwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpZWZ4LT5tZW1iYXNlX3BoeXMsCiAJCQllZngtPnR5cGUtPm1lbV9tYXBfc2l6ZSk7CiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBmYWlsNDsKIAl9Ci0JRUZYX0xPRyhlZngsICJtZW1vcnkgQkFSICV1IGF0ICVseCsleCAodmlydHVhbCAlcClcbiIsCi0JCWVmeC0+dHlwZS0+bWVtX2JhciwgZWZ4LT5tZW1iYXNlX3BoeXMsIGVmeC0+dHlwZS0+bWVtX21hcF9zaXplLAotCQllZngtPm1lbWJhc2UpOworCUVGWF9MT0coZWZ4LCAibWVtb3J5IEJBUiAldSBhdCAlbGx4KyV4ICh2aXJ0dWFsICVwKVxuIiwKKwkJZWZ4LT50eXBlLT5tZW1fYmFyLCAodW5zaWduZWQgbG9uZyBsb25nKWVmeC0+bWVtYmFzZV9waHlzLAorCQllZngtPnR5cGUtPm1lbV9tYXBfc2l6ZSwgZWZ4LT5tZW1iYXNlKTsKIAogCXJldHVybiAwOwogCiAgZmFpbDQ6CiAJcmVsZWFzZV9tZW1fcmVnaW9uKGVmeC0+bWVtYmFzZV9waHlzLCBlZngtPnR5cGUtPm1lbV9tYXBfc2l6ZSk7CiAgZmFpbDM6Ci0JZWZ4LT5tZW1iYXNlX3BoeXMgPSAwVUw7CisJZWZ4LT5tZW1iYXNlX3BoeXMgPSAwOwogIGZhaWwyOgogCXBjaV9kaXNhYmxlX2RldmljZShlZngtPnBjaV9kZXYpOwogIGZhaWwxOgpAQCAtODI0LDcgKzgxNiw3IEBACiAKIAlpZiAoZWZ4LT5tZW1iYXNlX3BoeXMpIHsKIAkJcGNpX3JlbGVhc2VfcmVnaW9uKGVmeC0+cGNpX2RldiwgZWZ4LT50eXBlLT5tZW1fYmFyKTsKLQkJZWZ4LT5tZW1iYXNlX3BoeXMgPSAwVUw7CisJCWVmeC0+bWVtYmFzZV9waHlzID0gMDsKIAl9CiAKIAlwY2lfZGlzYWJsZV9kZXZpY2UoZWZ4LT5wY2lfZGV2KTsKQEAgLTEwNDMsNyArMTAzNSw3IEBACiAJCXJldHVybjsKIAlpZiAoKGVmeC0+c3RhdGUgIT0gU1RBVEVfUlVOTklORykgJiYgKGVmeC0+c3RhdGUgIT0gU1RBVEVfSU5JVCkpCiAJCXJldHVybjsKLQlpZiAoTkVUX0RFVl9SRUdJU1RFUkVEKGVmeCkgJiYgIW5ldGlmX3J1bm5pbmcoZWZ4LT5uZXRfZGV2KSkKKwlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkgJiYgIW5ldGlmX3J1bm5pbmcoZWZ4LT5uZXRfZGV2KSkKIAkJcmV0dXJuOwogCiAJLyogTWFyayB0aGUgcG9ydCBhcyBlbmFibGVkIHNvIHBvcnQgcmVjb25maWd1cmF0aW9ucyBjYW4gc3RhcnQsIHRoZW4KQEAgLTEwNzMsOSArMTA2NSw4IEBACiAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZlZngtPm1vbml0b3Jfd29yayk7CiAKIAkvKiBFbnN1cmUgdGhhdCBhbGwgUlggc2xvdyByZWZpbGxzIGFyZSBjb21wbGV0ZS4gKi8KLQllZnhfZm9yX2VhY2hfcnhfcXVldWUocnhfcXVldWUsIGVmeCkgeworCWVmeF9mb3JfZWFjaF9yeF9xdWV1ZShyeF9xdWV1ZSwgZWZ4KQogCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJnJ4X3F1ZXVlLT53b3JrKTsKLQl9CiAKIAkvKiBTdG9wIHNjaGVkdWxlZCBwb3J0IHJlY29uZmlndXJhdGlvbnMgKi8KIAljYW5jZWxfd29ya19zeW5jKCZlZngtPnJlY29uZmlndXJlX3dvcmspOwpAQCAtMTEwMSw5ICsxMDkyLDEwIEBACiAJZmFsY29uX2Rpc2FibGVfaW50ZXJydXB0cyhlZngpOwogCWlmIChlZngtPmxlZ2FjeV9pcnEpCiAJCXN5bmNocm9uaXplX2lycShlZngtPmxlZ2FjeV9pcnEpOwotCWVmeF9mb3JfZWFjaF9jaGFubmVsX3dpdGhfaW50ZXJydXB0KGNoYW5uZWwsIGVmeCkKKwllZnhfZm9yX2VhY2hfY2hhbm5lbF93aXRoX2ludGVycnVwdChjaGFubmVsLCBlZngpIHsKIAkJaWYgKGNoYW5uZWwtPmlycSkKIAkJCXN5bmNocm9uaXplX2lycShjaGFubmVsLT5pcnEpOworCX0KIAogCS8qIFN0b3AgYWxsIE5BUEkgcHJvY2Vzc2luZyBhbmQgc3luY2hyb25vdXMgcnggcmVmaWxscyAqLwogCWVmeF9mb3JfZWFjaF9jaGFubmVsKGNoYW5uZWwsIGVmeCkKQEAgLTExMjUsNyArMTExNyw3IEBACiAJLyogU3RvcCB0aGUga2VybmVsIHRyYW5zbWl0IGludGVyZmFjZSBsYXRlLCBzbyB0aGUgd2F0Y2hkb2cKIAkgKiB0aW1lciBpc24ndCB0aWNraW5nIG92ZXIgdGhlIGZsdXNoICovCiAJZWZ4X3N0b3BfcXVldWUoZWZ4KTsKLQlpZiAoTkVUX0RFVl9SRUdJU1RFUkVEKGVmeCkpIHsKKwlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpIHsKIAkJbmV0aWZfdHhfbG9ja19iaChlZngtPm5ldF9kZXYpOwogCQluZXRpZl90eF91bmxvY2tfYmgoZWZ4LT5uZXRfZGV2KTsKIAl9CkBAIC0xMzQ0LDEzICsxMzM2LDE3IEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qIENvbnRleHQ6IHByb2Nlc3MsIGRldl9iYXNlX2xvY2sgaGVsZCwgbm9uLWJsb2NraW5nLiAqLworLyogQ29udGV4dDogcHJvY2VzcywgZGV2X2Jhc2VfbG9jayBvciBSVE5MIGhlbGQsIG5vbi1ibG9ja2luZy4gKi8KIHN0YXRpYyBzdHJ1Y3QgbmV0X2RldmljZV9zdGF0cyAqZWZ4X25ldF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2RldikKIHsKIAlzdHJ1Y3QgZWZ4X25pYyAqZWZ4ID0gbmV0X2Rldi0+cHJpdjsKIAlzdHJ1Y3QgZWZ4X21hY19zdGF0cyAqbWFjX3N0YXRzID0gJmVmeC0+bWFjX3N0YXRzOwogCXN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9ICZuZXRfZGV2LT5zdGF0czsKIAorCS8qIFVwZGF0ZSBzdGF0cyBpZiBwb3NzaWJsZSwgYnV0IGRvIG5vdCB3YWl0IGlmIGFub3RoZXIgdGhyZWFkCisJICogaXMgdXBkYXRpbmcgdGhlbSAob3IgcmVzZXR0aW5nIHRoZSBOSUMpOyBzbGlnaHRseSBzdGFsZQorCSAqIHN0YXRzIGFyZSBhY2NlcHRhYmxlLgorCSAqLwogCWlmICghc3Bpbl90cnlsb2NrKCZlZngtPnN0YXRzX2xvY2spKQogCQlyZXR1cm4gc3RhdHM7CiAJaWYgKGVmeC0+c3RhdGUgPT0gU1RBVEVfUlVOTklORykgewpAQCAtMTQ5NCw3ICsxNDkwLDcgQEAKIHN0YXRpYyBpbnQgZWZ4X25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsCiAJCQkgICAgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqcHRyKQogewotCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRfZGV2ID0gKHN0cnVjdCBuZXRfZGV2aWNlICopcHRyOworCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRfZGV2ID0gcHRyOwogCiAJaWYgKG5ldF9kZXYtPm9wZW4gPT0gZWZ4X25ldF9vcGVuICYmIGV2ZW50ID09IE5FVERFVl9DSEFOR0VOQU1FKSB7CiAJCXN0cnVjdCBlZnhfbmljICplZnggPSBuZXRfZGV2LT5wcml2OwpAQCAtMTU2Myw3ICsxNTU5LDcgQEAKIAllZnhfZm9yX2VhY2hfdHhfcXVldWUodHhfcXVldWUsIGVmeCkKIAkJZWZ4X3JlbGVhc2VfdHhfYnVmZmVycyh0eF9xdWV1ZSk7CiAKLQlpZiAoTkVUX0RFVl9SRUdJU1RFUkVEKGVmeCkpIHsKKwlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpIHsKIAkJc3RybGNweShlZngtPm5hbWUsIHBjaV9uYW1lKGVmeC0+cGNpX2RldiksIHNpemVvZihlZngtPm5hbWUpKTsKIAkJdW5yZWdpc3Rlcl9uZXRkZXYoZWZ4LT5uZXRfZGV2KTsKIAl9CkBAIC0xNjg4LDcgKzE2ODQsNyBAQAogCWlmIChtZXRob2QgPT0gUkVTRVRfVFlQRV9ESVNBQkxFKSB7CiAJCS8qIFJlaW5pdGlhbGlzZSB0aGUgZGV2aWNlIGFueXdheSBzbyB0aGUgZHJpdmVyIHVubG9hZCBzZXF1ZW5jZQogCQkgKiBjYW4gdGFsayB0byB0aGUgZXh0ZXJuYWwgU1JBTSAqLwotCQkodm9pZCkgZmFsY29uX2luaXRfbmljKGVmeCk7CisJCWZhbGNvbl9pbml0X25pYyhlZngpOwogCQlyYyA9IC1FSU87CiAJCWdvdG8gZmFpbDQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbi5jIGIvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbi5jCmluZGV4IGI1N2NjNjguLjc5MGRiODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb24uYworKysgYi9kcml2ZXJzL25ldC9zZmMvZmFsY29uLmMKQEAgLTExNiwxNyArMTE2LDggQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICovCiAKLS8qIERNQSBhZGRyZXNzIG1hc2sgKHVwIHRvIDQ2LWJpdCwgYXZvaWRpbmcgY29tcGlsZXIgd2FybmluZ3MpCi0gKgotICogTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgYSBwbGF0Zm9ybSB3aXRoIDY0LWJpdCBsb25ncyBhbmQKLSAqIDMyLWJpdCBETUEgYWRkcmVzc2VzLCBvciB2aWNlIHZlcnNhLiAgRUZYX0RNQV9NQVNLIHRha2VzIGNhcmUgb2YgdGhlCi0gKiBwbGF0Zm9ybSBETUEgbWFzay4KLSAqLwotI2lmIEJJVFNfUEVSX0xPTkcgPT0gNjQKLSNkZWZpbmUgRkFMQ09OX0RNQV9NQVNLIEVGWF9ETUFfTUFTSygweDAwMDAzZmZmZmZmZmZmZmZVTCkKLSNlbHNlCi0jZGVmaW5lIEZBTENPTl9ETUFfTUFTSyBFRlhfRE1BX01BU0soMHgwMDAwM2ZmZmZmZmZmZmZmVUxMKQotI2VuZGlmCisvKiBETUEgYWRkcmVzcyBtYXNrICovCisjZGVmaW5lIEZBTENPTl9ETUFfTUFTSyBETUFfQklUX01BU0soNDYpCiAKIC8qIFRYIERNQSBsZW5ndGggbWFzayAoMTMtYml0KSAqLwogI2RlZmluZSBGQUxDT05fVFhfRE1BX01BU0sgKDQwOTYgLSAxKQpAQCAtMTQ1LDcgKzEzNiw3IEBACiAjZGVmaW5lIFBDSV9FWFBfTE5LU1RBX0xOS19XSURfTEJOCTQKIAogI2RlZmluZSBGQUxDT05fSVNfRFVBTF9GVU5DKGVmeCkJCVwKLQkoRkFMQ09OX1JFVihlZngpIDwgRkFMQ09OX1JFVl9CMCkKKwkoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtNDY1LDcgKzQ1Niw3IEBACiAJCQkgICAgICBUWF9ERVNDUV9UWVBFLCAwLAogCQkJICAgICAgVFhfTk9OX0lQX0RST1BfRElTX0IwLCAxKTsKIAotCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgeworCWlmIChmYWxjb25fcmV2KGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgewogCQlpbnQgY3N1bSA9ICEoZWZ4LT5uZXRfZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSk7CiAJCUVGWF9TRVRfT1dPUkRfRklFTEQodHhfZGVzY19wdHIsIFRYX0lQX0NIS1NNX0RJU19CMCwgY3N1bSk7CiAJCUVGWF9TRVRfT1dPUkRfRklFTEQodHhfZGVzY19wdHIsIFRYX1RDUF9DSEtTTV9ESVNfQjAsIGNzdW0pOwpAQCAtNDc0LDcgKzQ2NSw3IEBACiAJZmFsY29uX3dyaXRlX3RhYmxlKGVmeCwgJnR4X2Rlc2NfcHRyLCBlZngtPnR5cGUtPnR4ZF9wdHJfdGJsX2Jhc2UsCiAJCQkgICB0eF9xdWV1ZS0+cXVldWUpOwogCi0JaWYgKEZBTENPTl9SRVYoZWZ4KSA8IEZBTENPTl9SRVZfQjApIHsKKwlpZiAoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkgewogCQllZnhfb3dvcmRfdCByZWc7CiAKIAkJQlVHX09OKHR4X3F1ZXVlLT5xdWV1ZSA+PSAxMjgpOyAvKiBIVyBsaW1pdCAqLwpAQCAtNjM1LDcgKzYyNiw3IEBACiAJZWZ4X293b3JkX3QgcnhfZGVzY19wdHI7CiAJc3RydWN0IGVmeF9uaWMgKmVmeCA9IHJ4X3F1ZXVlLT5lZng7CiAJaW50IHJjOwotCWludCBpc19iMCA9IEZBTENPTl9SRVYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwOworCWludCBpc19iMCA9IGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwOwogCWludCBpc2NzaV9kaWdlc3RfZW4gPSBpc19iMDsKIAogCUVGWF9MT0coZWZ4LCAiUlggcXVldWUgJWQgcmluZyBpbiBzcGVjaWFsIGJ1ZmZlcnMgJWQtJWRcbiIsCkBAIC03NDIsOCArNzMzLDEwIEBACiAJCQljb250aW51ZTsKIAkJYnJlYWs7CiAJfQotCWlmIChyYykKKwlpZiAocmMpIHsKIAkJRUZYX0VSUihlZngsICJmYWlsZWQgdG8gZmx1c2ggcnggcXVldWUgJWRcbiIsIHJ4X3F1ZXVlLT5xdWV1ZSk7CisJCWVmeF9zY2hlZHVsZV9yZXNldChlZngsIFJFU0VUX1RZUEVfSU5WSVNJQkxFKTsKKwl9CiAKIAkvKiBSZW1vdmUgUlggZGVzY3JpcHRvciByaW5nIGZyb20gY2FyZCAqLwogCUVGWF9aRVJPX09XT1JEKHJ4X2Rlc2NfcHRyKTsKQEAgLTgyMiwxMCArODE1LDEwIEBACiAJCXR4X2V2X3FfbGFiZWwgPSBFRlhfUVdPUkRfRklFTEQoKmV2ZW50LCBUWF9FVl9RX0xBQkVMKTsKIAkJdHhfcXVldWUgPSAmZWZ4LT50eF9xdWV1ZVt0eF9ldl9xX2xhYmVsXTsKIAotCQlpZiAoTkVUX0RFVl9SRUdJU1RFUkVEKGVmeCkpCisJCWlmIChlZnhfZGV2X3JlZ2lzdGVyZWQoZWZ4KSkKIAkJCW5ldGlmX3R4X2xvY2soZWZ4LT5uZXRfZGV2KTsKIAkJZmFsY29uX25vdGlmeV90eF9kZXNjKHR4X3F1ZXVlKTsKLQkJaWYgKE5FVF9ERVZfUkVHSVNURVJFRChlZngpKQorCQlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpCiAJCQluZXRpZl90eF91bmxvY2soZWZ4LT5uZXRfZGV2KTsKIAl9IGVsc2UgaWYgKEVGWF9RV09SRF9GSUVMRCgqZXZlbnQsIFRYX0VWX1BLVF9FUlIpICYmCiAJCSAgIEVGWF9XT1JLQVJPVU5EXzEwNzI3KGVmeCkpIHsKQEAgLTg4NCw3ICs4NzcsNyBAQAogCQkJCQkJICAgUlhfRVZfVENQX1VEUF9DSEtTVU1fRVJSKTsKIAlyeF9ldl9ldGhfY3JjX2VyciA9IEVGWF9RV09SRF9GSUVMRCgqZXZlbnQsIFJYX0VWX0VUSF9DUkNfRVJSKTsKIAlyeF9ldl9mcm1fdHJ1bmMgPSBFRlhfUVdPUkRfRklFTEQoKmV2ZW50LCBSWF9FVl9GUk1fVFJVTkMpOwotCXJ4X2V2X2RyaWJfbmliID0gKChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgPworCXJ4X2V2X2RyaWJfbmliID0gKChmYWxjb25fcmV2KGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgPwogCQkJICAwIDogRUZYX1FXT1JEX0ZJRUxEKCpldmVudCwgUlhfRVZfRFJJQl9OSUIpKTsKIAlyeF9ldl9wYXVzZV9mcm0gPSBFRlhfUVdPUkRfRklFTEQoKmV2ZW50LCBSWF9FVl9QQVVTRV9GUk1fRVJSKTsKIApAQCAtMTA2NSw3ICsxMDU4LDcgQEAKIAkgICAgRUZYX1FXT1JEX0ZJRUxEKCpldmVudCwgWEdfUEhZX0lOVFIpKQogCQlpc19waHlfZXZlbnQgPSAxOwogCi0JaWYgKChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgJiYKKwlpZiAoKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKSAmJgogCSAgICBFRlhfT1dPUkRfRklFTEQoKmV2ZW50LCBYR19NTlRfSU5UUl9CMCkpCiAJCWlzX3BoeV9ldmVudCA9IDE7CiAKQEAgLTE0MDUsNyArMTM5OCw3IEBACiBzdGF0aWMgaXJxcmV0dXJuX3QgZmFsY29uX2ZhdGFsX2ludGVycnVwdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogewogCXN0cnVjdCBmYWxjb25fbmljX2RhdGEgKm5pY19kYXRhID0gZWZ4LT5uaWNfZGF0YTsKLQllZnhfb3dvcmRfdCAqaW50X2tlciA9IChlZnhfb3dvcmRfdCAqKSBlZngtPmlycV9zdGF0dXMuYWRkcjsKKwllZnhfb3dvcmRfdCAqaW50X2tlciA9IGVmeC0+aXJxX3N0YXR1cy5hZGRyOwogCWVmeF9vd29yZF90IGZhdGFsX2ludHI7CiAJaW50IGVycm9yLCBtZW1fcGVycjsKIAlzdGF0aWMgaW50IG5faW50X2Vycm9yczsKQEAgLTE0NTEsOCArMTQ0NCw4IEBACiAgKi8KIHN0YXRpYyBpcnFyZXR1cm5fdCBmYWxjb25fbGVnYWN5X2ludGVycnVwdF9iMChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0Jc3RydWN0IGVmeF9uaWMgKmVmeCA9IChzdHJ1Y3QgZWZ4X25pYyAqKWRldl9pZDsKLQllZnhfb3dvcmRfdCAqaW50X2tlciA9IChlZnhfb3dvcmRfdCAqKSBlZngtPmlycV9zdGF0dXMuYWRkcjsKKwlzdHJ1Y3QgZWZ4X25pYyAqZWZ4ID0gZGV2X2lkOworCWVmeF9vd29yZF90ICppbnRfa2VyID0gZWZ4LT5pcnFfc3RhdHVzLmFkZHI7CiAJc3RydWN0IGVmeF9jaGFubmVsICpjaGFubmVsOwogCWVmeF9kd29yZF90IHJlZzsKIAl1MzIgcXVldWVzOwpAQCAtMTQ4OSw4ICsxNDgyLDggQEAKIAogc3RhdGljIGlycXJldHVybl90IGZhbGNvbl9sZWdhY3lfaW50ZXJydXB0X2ExKGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKLQlzdHJ1Y3QgZWZ4X25pYyAqZWZ4ID0gKHN0cnVjdCBlZnhfbmljICopZGV2X2lkOwotCWVmeF9vd29yZF90ICppbnRfa2VyID0gKGVmeF9vd29yZF90ICopIGVmeC0+aXJxX3N0YXR1cy5hZGRyOworCXN0cnVjdCBlZnhfbmljICplZnggPSBkZXZfaWQ7CisJZWZ4X293b3JkX3QgKmludF9rZXIgPSBlZngtPmlycV9zdGF0dXMuYWRkcjsKIAlzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWw7CiAJaW50IHN5c2VycjsKIAlpbnQgcXVldWVzOwpAQCAtMTU0Miw5ICsxNTM1LDkgQEAKICAqLwogc3RhdGljIGlycXJldHVybl90IGZhbGNvbl9tc2lfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKIHsKLQlzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwgPSAoc3RydWN0IGVmeF9jaGFubmVsICopZGV2X2lkOworCXN0cnVjdCBlZnhfY2hhbm5lbCAqY2hhbm5lbCA9IGRldl9pZDsKIAlzdHJ1Y3QgZWZ4X25pYyAqZWZ4ID0gY2hhbm5lbC0+ZWZ4OwotCWVmeF9vd29yZF90ICppbnRfa2VyID0gKGVmeF9vd29yZF90ICopIGVmeC0+aXJxX3N0YXR1cy5hZGRyOworCWVmeF9vd29yZF90ICppbnRfa2VyID0gZWZ4LT5pcnFfc3RhdHVzLmFkZHI7CiAJaW50IHN5c2VycjsKIAogCWVmeC0+bGFzdF9pcnFfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKQEAgLTE1NzIsNyArMTU2NSw3IEBACiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJZWZ4X2R3b3JkX3QgZHdvcmQ7CiAKLQlpZiAoRkFMQ09OX1JFVihlZngpIDwgRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkKIAkJcmV0dXJuOwogCiAJZm9yIChvZmZzZXQgPSBSWF9SU1NfSU5ESVJfVEJMX0IwOwpAQCAtMTU5NSw3ICsxNTg4LDcgQEAKIAogCWlmICghRUZYX0lOVF9NT0RFX1VTRV9NU0koZWZ4KSkgewogCQlpcnFfaGFuZGxlcl90IGhhbmRsZXI7Ci0JCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkKKwkJaWYgKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKQogCQkJaGFuZGxlciA9IGZhbGNvbl9sZWdhY3lfaW50ZXJydXB0X2IwOwogCQllbHNlCiAJCQloYW5kbGVyID0gZmFsY29uX2xlZ2FjeV9pbnRlcnJ1cHRfYTE7CkBAIC0xNjM2LDEyICsxNjI5LDEzIEBACiAJZWZ4X293b3JkX3QgcmVnOwogCiAJLyogRGlzYWJsZSBNU0kvTVNJLVggaW50ZXJydXB0cyAqLwotCWVmeF9mb3JfZWFjaF9jaGFubmVsX3dpdGhfaW50ZXJydXB0KGNoYW5uZWwsIGVmeCkKKwllZnhfZm9yX2VhY2hfY2hhbm5lbF93aXRoX2ludGVycnVwdChjaGFubmVsLCBlZngpIHsKIAkJaWYgKGNoYW5uZWwtPmlycSkKIAkJCWZyZWVfaXJxKGNoYW5uZWwtPmlycSwgY2hhbm5lbCk7CisJfQogCiAJLyogQUNLIGxlZ2FjeSBpbnRlcnJ1cHQgKi8KLQlpZiAoRkFMQ09OX1JFVihlZngpID49IEZBTENPTl9SRVZfQjApCisJaWYgKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKQogCQlmYWxjb25fcmVhZChlZngsICZyZWcsIElOVF9JU1IwX0IwKTsKIAllbHNlCiAJCWZhbGNvbl9pcnFfYWNrX2ExKGVmeCk7CkBAIC0xNzMyLDcgKzE3MjYsNyBAQAogCWVmeF9vd29yZF90IHRlbXA7CiAJaW50IGNvdW50OwogCi0JaWYgKChGQUxDT05fUkVWKGVmeCkgPCBGQUxDT05fUkVWX0IwKSB8fAorCWlmICgoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkgfHwKIAkgICAgKGVmeC0+bG9vcGJhY2tfbW9kZSAhPSBMT09QQkFDS19OT05FKSkKIAkJcmV0dXJuOwogCkBAIC0xNzg1LDcgKzE3NzksNyBAQAogewogCWVmeF9vd29yZF90IHRlbXA7CiAKLQlpZiAoRkFMQ09OX1JFVihlZngpIDwgRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkKIAkJcmV0dXJuOwogCiAJLyogSXNvbGF0ZSB0aGUgTUFDIC0+IFJYICovCkBAIC0xODIzLDcgKzE4MTcsNyBAQAogCQkJICAgICBNQUNfU1BFRUQsIGxpbmtfc3BlZWQpOwogCS8qIE9uIEIwLCBNQUMgYmFja3ByZXNzdXJlIGNhbiBiZSBkaXNhYmxlZCBhbmQgcGFja2V0cyBnZXQKIAkgKiBkaXNjYXJkZWQuICovCi0JaWYgKEZBTENPTl9SRVYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKSB7CisJaWYgKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKSB7CiAJCUVGWF9TRVRfT1dPUkRfRklFTEQocmVnLCBUWEZJRk9fRFJBSU5fRU5fQjAsCiAJCQkJICAgICFlZngtPmxpbmtfdXApOwogCX0KQEAgLTE4NDEsNyArMTgzNSw3IEBACiAJRUZYX1NFVF9PV09SRF9GSUVMRF9WRVIoZWZ4LCByZWcsIFJYX1hPRkZfTUFDX0VOLCB0eF9mYyk7CiAKIAkvKiBVbmlzb2xhdGUgdGhlIE1BQyAtPiBSWCAqLwotCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApCiAJCUVGWF9TRVRfT1dPUkRfRklFTEQocmVnLCBSWF9JTkdSX0VOX0IwLCAxKTsKIAlmYWxjb25fd3JpdGUoZWZ4LCAmcmVnLCBSWF9DRkdfUkVHX0tFUik7CiB9CkBAIC0xODU2LDcgKzE4NTAsNyBAQAogCQlyZXR1cm4gMDsKIAogCS8qIFN0YXRpc3RpY3MgZmV0Y2ggd2lsbCBmYWlsIGlmIHRoZSBNQUMgaXMgaW4gVFggZHJhaW4gKi8KLQlpZiAoRkFMQ09OX1JFVihlZngpID49IEZBTENPTl9SRVZfQjApIHsKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApIHsKIAkJZWZ4X293b3JkX3QgdGVtcDsKIAkJZmFsY29uX3JlYWQoZWZ4LCAmdGVtcCwgTUFDMF9DVFJMX1JFR19LRVIpOwogCQlpZiAoRUZYX09XT1JEX0ZJRUxEKHRlbXAsIFRYRklGT19EUkFJTl9FTl9CMCkpCkBAIC0xOTQwLDcgKzE5MzQsNyBAQAogc3RhdGljIHZvaWQgZmFsY29uX21kaW9fd3JpdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldF9kZXYsIGludCBwaHlfaWQsCiAJCQkgICAgICBpbnQgYWRkciwgaW50IHZhbHVlKQogewotCXN0cnVjdCBlZnhfbmljICplZnggPSAoc3RydWN0IGVmeF9uaWMgKiluZXRfZGV2LT5wcml2OworCXN0cnVjdCBlZnhfbmljICplZnggPSBuZXRfZGV2LT5wcml2OwogCXVuc2lnbmVkIGludCBwaHlfaWQyID0gcGh5X2lkICYgRkFMQ09OX1BIWV9JRF9JRF9NQVNLOwogCWVmeF9vd29yZF90IHJlZzsKIApAQCAtMjAwOCw3ICsyMDAyLDcgQEAKICAqIGNvdWxkIGJlIHJlYWQsIC0xIHdpbGwgYmUgcmV0dXJuZWQuICovCiBzdGF0aWMgaW50IGZhbGNvbl9tZGlvX3JlYWQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldF9kZXYsIGludCBwaHlfaWQsIGludCBhZGRyKQogewotCXN0cnVjdCBlZnhfbmljICplZnggPSAoc3RydWN0IGVmeF9uaWMgKiluZXRfZGV2LT5wcml2OworCXN0cnVjdCBlZnhfbmljICplZnggPSBuZXRfZGV2LT5wcml2OwogCXVuc2lnbmVkIGludCBwaHlfYWRkciA9IHBoeV9pZCAmIEZBTENPTl9QSFlfSURfSURfTUFTSzsKIAllZnhfb3dvcmRfdCByZWc7CiAJaW50IHZhbHVlID0gLTE7CkBAIC0yMTEzLDcgKzIxMDcsNyBAQAogCWZhbGNvbl9pbml0X21kaW8oJmVmeC0+bWlpKTsKIAogCS8qIEhhcmR3YXJlIGZsb3cgY3RybC4gRmFsY29uQSBSWCBGSUZPIHRvbyBzbWFsbCBmb3IgcGF1c2UgZ2VuZXJhdGlvbiAqLwotCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApCiAJCWVmeC0+Zmxvd19jb250cm9sID0gRUZYX0ZDX1JYIHwgRUZYX0ZDX1RYOwogCWVsc2UKIAkJZWZ4LT5mbG93X2NvbnRyb2wgPSBFRlhfRkNfUlg7CkBAIC0yMzczLDcgKzIzNjcsNyBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQlzd2l0Y2ggKEZBTENPTl9SRVYoZWZ4KSkgeworCXN3aXRjaCAoZmFsY29uX3JldihlZngpKSB7CiAJY2FzZSBGQUxDT05fUkVWX0EwOgogCWNhc2UgMHhmZjoKIAkJRUZYX0VSUihlZngsICJGYWxjb24gcmV2IEEwIG5vdCBzdXBwb3J0ZWRcbiIpOwpAQCAtMjM5OSw3ICsyMzkzLDcgQEAKIAkJYnJlYWs7CiAKIAlkZWZhdWx0OgotCQlFRlhfRVJSKGVmeCwgIlVua25vd24gRmFsY29uIHJldiAlZFxuIiwgRkFMQ09OX1JFVihlZngpKTsKKwkJRUZYX0VSUihlZngsICJVbmtub3duIEZhbGNvbiByZXYgJWRcbiIsIGZhbGNvbl9yZXYoZWZ4KSk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIApAQCAtMjQxOSw3ICsyNDEzLDcgQEAKIAogCS8qIEFsbG9jYXRlIHN0b3JhZ2UgZm9yIGhhcmR3YXJlIHNwZWNpZmljIGRhdGEgKi8KIAluaWNfZGF0YSA9IGt6YWxsb2Moc2l6ZW9mKCpuaWNfZGF0YSksIEdGUF9LRVJORUwpOwotCWVmeC0+bmljX2RhdGEgPSAodm9pZCAqKSBuaWNfZGF0YTsKKwllZngtPm5pY19kYXRhID0gbmljX2RhdGE7CiAKIAkvKiBEZXRlcm1pbmUgbnVtYmVyIG9mIHBvcnRzIGV0Yy4gKi8KIAlyYyA9IGZhbGNvbl9wcm9iZV9uaWNfdmFyaWFudChlZngpOwpAQCAtMjQ4OSwxMyArMjQ4MywxMCBAQAogICovCiBpbnQgZmFsY29uX2luaXRfbmljKHN0cnVjdCBlZnhfbmljICplZngpCiB7Ci0Jc3RydWN0IGZhbGNvbl9uaWNfZGF0YSAqZGF0YTsKIAllZnhfb3dvcmRfdCB0ZW1wOwogCXVuc2lnbmVkIHRocmVzaDsKIAlpbnQgcmM7CiAKLQlkYXRhID0gKHN0cnVjdCBmYWxjb25fbmljX2RhdGEgKillZngtPm5pY19kYXRhOwotCiAJLyogU2V0IHVwIHRoZSBhZGRyZXNzIHJlZ2lvbiByZWdpc3Rlci4gVGhpcyBpcyBvbmx5IG5lZWRlZAogCSAqIGZvciB0aGUgQjAgRlBHQSwgYnV0IHNpbmNlIHdlIGFyZSBqdXN0IHB1c2hpbmcgaW4gdGhlCiAJICogcmVzZXQgZGVmYXVsdHMgdGhpcyBtYXkgYXMgd2VsbCBiZSB1bmNvbmRpdGlvbmFsLiAqLwpAQCAtMjU2Miw3ICsyNTUzLDcgQEAKIAogCS8qIFNldCBudW1iZXIgb2YgUlNTIHF1ZXVlcyBmb3IgcmVjZWl2ZSBwYXRoLiAqLwogCWZhbGNvbl9yZWFkKGVmeCwgJnRlbXAsIFJYX0ZJTFRFUl9DVExfUkVHKTsKLQlpZiAoRkFMQ09OX1JFVihlZngpID49IEZBTENPTl9SRVZfQjApCisJaWYgKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKQogCQlFRlhfU0VUX09XT1JEX0ZJRUxEKHRlbXAsIE5VTV9LRVIsIDApOwogCWVsc2UKIAkJRUZYX1NFVF9PV09SRF9GSUVMRCh0ZW1wLCBOVU1fS0VSLCBlZngtPnJzc19xdWV1ZXMgLSAxKTsKQEAgLTI2MDAsNyArMjU5MSw3IEBACiAJLyogUHJlZmV0Y2ggdGhyZXNob2xkIDIgPT4gZmV0Y2ggd2hlbiBkZXNjcmlwdG9yIGNhY2hlIGhhbGYgZW1wdHkgKi8KIAlFRlhfU0VUX09XT1JEX0ZJRUxEKHRlbXAsIFRYX1BSRUZfVEhSRVNIT0xELCAyKTsKIAkvKiBTcXVhc2ggVFggb2YgcGFja2V0cyBvZiAxNiBieXRlcyBvciBsZXNzICovCi0JaWYgKEZBTENPTl9SRVYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwICYmIEVGWF9XT1JLQVJPVU5EXzkxNDEoZWZ4KSkKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjAgJiYgRUZYX1dPUktBUk9VTkRfOTE0MShlZngpKQogCQlFRlhfU0VUX09XT1JEX0ZJRUxEKHRlbXAsIFRYX0ZMVVNIX01JTl9MRU5fRU5fQjAsIDEpOwogCWZhbGNvbl93cml0ZShlZngsICZ0ZW1wLCBUWF9DRkcyX1JFR19LRVIpOwogCkBAIC0yNjE3LDcgKzI2MDgsNyBAQAogCWlmIChFRlhfV09SS0FST1VORF83NTc1KGVmeCkpCiAJCUVGWF9TRVRfT1dPUkRfRklFTERfVkVSKGVmeCwgdGVtcCwgUlhfVVNSX0JVRl9TSVpFLAogCQkJCQkoMyAqIDQwOTYpIC8gMzIpOwotCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApCiAJCUVGWF9TRVRfT1dPUkRfRklFTEQodGVtcCwgUlhfSU5HUl9FTl9CMCwgMSk7CiAKIAkvKiBSWCBGSUZPIGZsb3cgY29udHJvbCB0aHJlc2hvbGRzICovCkBAIC0yNjMzLDcgKzI2MjQsNyBAQAogCWZhbGNvbl93cml0ZShlZngsICZ0ZW1wLCBSWF9DRkdfUkVHX0tFUik7CiAKIAkvKiBTZXQgZGVzdGluYXRpb24gb2YgYm90aCBUWCBhbmQgUlggRmx1c2ggZXZlbnRzICovCi0JaWYgKEZBTENPTl9SRVYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKSB7CisJaWYgKGZhbGNvbl9yZXYoZWZ4KSA+PSBGQUxDT05fUkVWX0IwKSB7CiAJCUVGWF9QT1BVTEFURV9PV09SRF8xKHRlbXAsIEZMU19FVlFfSUQsIDApOwogCQlmYWxjb25fd3JpdGUoZWZ4LCAmdGVtcCwgRFBfQ1RSTF9SRUcpOwogCX0KQEAgLTI2NDcsNyArMjYzOCw3IEBACiAKIAlmYWxjb25fZnJlZV9idWZmZXIoZWZ4LCAmZWZ4LT5pcnFfc3RhdHVzKTsKIAotCSh2b2lkKSBmYWxjb25fcmVzZXRfaHcoZWZ4LCBSRVNFVF9UWVBFX0FMTCk7CisJZmFsY29uX3Jlc2V0X2h3KGVmeCwgUkVTRVRfVFlQRV9BTEwpOwogCiAJLyogUmVsZWFzZSB0aGUgc2Vjb25kIGZ1bmN0aW9uIGFmdGVyIHRoZSByZXNldCAqLwogCWlmIChuaWNfZGF0YS0+cGNpX2RldjIpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb24uaCBiL2RyaXZlcnMvbmV0L3NmYy9mYWxjb24uaAppbmRleCA2MTE3NDAzLi40OTJmOWJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zZmMvZmFsY29uLmgKKysrIGIvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbi5oCkBAIC0yMyw3ICsyMywxMCBAQAogCUZBTENPTl9SRVZfQjAgPSAyLAogfTsKIAotI2RlZmluZSBGQUxDT05fUkVWKGVmeCkgKChlZngpLT5wY2lfZGV2LT5yZXZpc2lvbikKK3N0YXRpYyBpbmxpbmUgaW50IGZhbGNvbl9yZXYoc3RydWN0IGVmeF9uaWMgKmVmeCkKK3sKKwlyZXR1cm4gZWZ4LT5wY2lfZGV2LT5yZXZpc2lvbjsKK30KIAogZXh0ZXJuIHN0cnVjdCBlZnhfbmljX3R5cGUgZmFsY29uX2FfbmljX3R5cGU7CiBleHRlcm4gc3RydWN0IGVmeF9uaWNfdHlwZSBmYWxjb25fYl9uaWNfdHlwZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25faHdkZWZzLmggYi9kcml2ZXJzL25ldC9zZmMvZmFsY29uX2h3ZGVmcy5oCmluZGV4IDA2ZTJkNjguLjZkMDAzMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25faHdkZWZzLmgKKysrIGIvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbl9od2RlZnMuaApAQCAtMTEyNSw3ICsxMTI1LDcgQEAKIAl1OCBwb3J0MV9waHlfdHlwZTsKIAlfX2xlMTYgYXNpY19zdWJfcmV2aXNpb247CiAJX19sZTE2IGJvYXJkX3JldmlzaW9uOwotfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Cit9IF9fcGFja2VkOwogCiAjZGVmaW5lIE5WQ09ORklHX0JBU0UgMHgzMDAKICNkZWZpbmUgTlZDT05GSUdfQk9BUkRfTUFHSUNfTlVNIDB4RkExQwpAQCAtMTE0NCw2ICsxMTQ0LDYgQEAKIAlfX2xlMTYgYm9hcmRfc3RydWN0X3ZlcjsKIAlfX2xlMTYgYm9hcmRfY2hlY2tzdW07CiAJc3RydWN0IGZhbGNvbl9udmNvbmZpZ19ib2FyZF92MiBib2FyZF92MjsKLX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworfSBfX3BhY2tlZDsKIAogI2VuZGlmIC8qIEVGWF9GQUxDT05fSFdERUZTX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25faW8uaCBiL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25faW8uaAppbmRleCBlYTA4MTg0Li42NjcwY2RmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zZmMvZmFsY29uX2lvLmgKKysrIGIvZHJpdmVycy9uZXQvc2ZjL2ZhbGNvbl9pby5oCkBAIC01NiwxNCArNTYsMjcgQEAKICNkZWZpbmUgRkFMQ09OX1VTRV9RV09SRF9JTyAxCiAjZW5kaWYKIAotI2RlZmluZSBfZmFsY29uX3dyaXRlcShlZngsIHZhbHVlLCByZWcpIFwKLQlfX3Jhd193cml0ZXEoKF9fZm9yY2UgdTY0KSAodmFsdWUpLCAoZWZ4KS0+bWVtYmFzZSArIChyZWcpKQotI2RlZmluZSBfZmFsY29uX3dyaXRlbChlZngsIHZhbHVlLCByZWcpIFwKLQlfX3Jhd193cml0ZWwoKF9fZm9yY2UgdTMyKSAodmFsdWUpLCAoZWZ4KS0+bWVtYmFzZSArIChyZWcpKQotI2RlZmluZSBfZmFsY29uX3JlYWRxKGVmeCwgcmVnKSBcCi0JKChfX2ZvcmNlIF9fbGU2NCkgX19yYXdfcmVhZHEoKGVmeCktPm1lbWJhc2UgKyAocmVnKSkpCi0jZGVmaW5lIF9mYWxjb25fcmVhZGwoZWZ4LCByZWcpIFwKLQkoKF9fZm9yY2UgX19sZTMyKSBfX3Jhd19yZWFkbCgoZWZ4KS0+bWVtYmFzZSArIChyZWcpKSkKKyNpZmRlZiBGQUxDT05fVVNFX1FXT1JEX0lPCitzdGF0aWMgaW5saW5lIHZvaWQgX2ZhbGNvbl93cml0ZXEoc3RydWN0IGVmeF9uaWMgKmVmeCwgX19sZTY0IHZhbHVlLAorCQkJCSAgdW5zaWduZWQgaW50IHJlZykKK3sKKwlfX3Jhd193cml0ZXEoKF9fZm9yY2UgdTY0KXZhbHVlLCBlZngtPm1lbWJhc2UgKyByZWcpOworfQorc3RhdGljIGlubGluZSBfX2xlNjQgX2ZhbGNvbl9yZWFkcShzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgcmVnKQoreworCXJldHVybiAoX19mb3JjZSBfX2xlNjQpX19yYXdfcmVhZHEoZWZ4LT5tZW1iYXNlICsgcmVnKTsKK30KKyNlbmRpZgorCitzdGF0aWMgaW5saW5lIHZvaWQgX2ZhbGNvbl93cml0ZWwoc3RydWN0IGVmeF9uaWMgKmVmeCwgX19sZTMyIHZhbHVlLAorCQkJCSAgdW5zaWduZWQgaW50IHJlZykKK3sKKwlfX3Jhd193cml0ZWwoKF9fZm9yY2UgdTMyKXZhbHVlLCBlZngtPm1lbWJhc2UgKyByZWcpOworfQorc3RhdGljIGlubGluZSBfX2xlMzIgX2ZhbGNvbl9yZWFkbChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgcmVnKQoreworCXJldHVybiAoX19mb3JjZSBfX2xlMzIpX19yYXdfcmVhZGwoZWZ4LT5tZW1iYXNlICsgcmVnKTsKK30KIAogLyogV3JpdGVzIHRvIGEgbm9ybWFsIDE2LWJ5dGUgRmFsY29uIHJlZ2lzdGVyLCBsb2NraW5nIGFzIGFwcHJvcHJpYXRlLiAqLwogc3RhdGljIGlubGluZSB2b2lkIGZhbGNvbl93cml0ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBlZnhfb3dvcmRfdCAqdmFsdWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvZmFsY29uX3htYWMuYyBiL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25feG1hYy5jCmluZGV4IGE3NGI3OTMuLjU1YzBkOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25feG1hYy5jCisrKyBiL2RyaXZlcnMvbmV0L3NmYy9mYWxjb25feG1hYy5jCkBAIC0yMjEsNyArMjIxLDcgQEAKIHsKIAllZnhfZHdvcmRfdCByZWc7CiAKLQlpZiAoRkFMQ09OX1JFVihlZngpIDwgRkFMQ09OX1JFVl9CMCkKKwlpZiAoZmFsY29uX3JldihlZngpIDwgRkFMQ09OX1JFVl9CMCkKIAkJcmV0dXJuIDE7CiAKIAkvKiBUaGUgSVNSIGxhdGNoZXMsIHNvIGNsZWFyIGl0IGFuZCByZS1yZWFkICovCkBAIC0yNDEsNyArMjQxLDcgQEAKIHsKIAllZnhfZHdvcmRfdCByZWc7CiAKLQlpZiAoKEZBTENPTl9SRVYoZWZ4KSA8IEZBTENPTl9SRVZfQjApIHx8IExPT1BCQUNLX0lOVEVSTkFMKGVmeCkpCisJaWYgKChmYWxjb25fcmV2KGVmeCkgPCBGQUxDT05fUkVWX0IwKSB8fCBMT09QQkFDS19JTlRFUk5BTChlZngpKQogCQlyZXR1cm47CiAKIAkvKiBGbHVzaCB0aGUgSVNSICovCkBAIC00NTQsMTIgKzQ1NCwxMiBAQAogCiAJCUVGWF9MT0coZWZ4LCAiJXMgQ2xvYmJlcmluZyBYQVVJICglZCB0cmllcyBsZWZ0KS5cbiIsCiAJCQlfX2Z1bmNfXywgdHJpZXMpOwotCQkodm9pZCkgZmFsY29uX3Jlc2V0X3hhdWkoZWZ4KTsKKwkJZmFsY29uX3Jlc2V0X3hhdWkoZWZ4KTsKIAkJdWRlbGF5KDIwMCk7CiAJCXRyaWVzLS07CiAJfQogCi0JRUZYX0VSUihlZngsICJGYWlsZWQgdG8gYnJpbmcgWEFVSSBsaW5rIGJhY2sgdXAgaW4gJWQgdHJpZXMhXG4iLAorCUVGWF9MT0coZWZ4LCAiRmFpbGVkIHRvIGJyaW5nIFhBVUkgbGluayBiYWNrIHVwIGluICVkIHRyaWVzIVxuIiwKIAkJbWF4X3RyaWVzKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTU3Miw3ICs1NzIsNyBAQAogCXhhdWlfbGlua19vayA9IGZhbGNvbl94YXVpX2xpbmtfb2soZWZ4KTsKIAogCWlmIChFRlhfV09SS0FST1VORF81MTQ3KGVmeCkgJiYgIXhhdWlfbGlua19vaykKLQkJKHZvaWQpIGZhbGNvbl9yZXNldF94YXVpKGVmeCk7CisJCWZhbGNvbl9yZXNldF94YXVpKGVmeCk7CiAKIAkvKiBDYWxsIHRoZSBQSFkgY2hlY2tfaHcgcm91dGluZSAqLwogCXJjID0gZWZ4LT5waHlfb3AtPmNoZWNrX2h3KGVmeCk7CkBAIC02MzksNyArNjM5LDcgQEAKIAlyZXNldCA9ICgoZmxvd19jb250cm9sICYgRUZYX0ZDX1RYKSAmJgogCQkgIShlZngtPmZsb3dfY29udHJvbCAmIEVGWF9GQ19UWCkpOwogCWlmIChFRlhfV09SS0FST1VORF8xMTQ4MihlZngpICYmIHJlc2V0KSB7Ci0JCWlmIChGQUxDT05fUkVWKGVmeCkgPj0gRkFMQ09OX1JFVl9CMCkgeworCQlpZiAoZmFsY29uX3JldihlZngpID49IEZBTENPTl9SRVZfQjApIHsKIAkJCS8qIFJlY292ZXIgYnkgcmVzZXR0aW5nIHRoZSBFTSBibG9jayAqLwogCQkJaWYgKGVmeC0+bGlua191cCkKIAkJCQlmYWxjb25fZHJhaW5fdHhfZmlmbyhlZngpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc2ZjL25ldF9kcml2ZXIuaCBiL2RyaXZlcnMvbmV0L3NmYy9uZXRfZHJpdmVyLmgKaW5kZXggNTlmMjYxYi4uNWUyMGU3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc2ZjL25ldF9kcml2ZXIuaAorKysgYi9kcml2ZXJzL25ldC9zZmMvbmV0X2RyaXZlci5oCkBAIC00Miw3ICs0Miw3IEBACiAjaWZuZGVmIEVGWF9EUklWRVJfTkFNRQogI2RlZmluZSBFRlhfRFJJVkVSX05BTUUJInNmYyIKICNlbmRpZgotI2RlZmluZSBFRlhfRFJJVkVSX1ZFUlNJT04JIjIuMi4wMTM2IgorI2RlZmluZSBFRlhfRFJJVkVSX1ZFUlNJT04JIjIuMiIKIAogI2lmZGVmIEVGWF9FTkFCTEVfREVCVUcKICNkZWZpbmUgRUZYX0JVR19PTl9QQVJBTk9JRCh4KSBCVUdfT04oeCkKQEAgLTUyLDI4ICs1MiwxOSBAQAogI2RlZmluZSBFRlhfV0FSTl9PTl9QQVJBTk9JRCh4KSBkbyB7fSB3aGlsZSAoMCkKICNlbmRpZgogCi0jZGVmaW5lIE5FVF9ERVZfUkVHSVNURVJFRChlZngpCQkJCQlcCi0JKChlZngpLT5uZXRfZGV2LT5yZWdfc3RhdGUgPT0gTkVUUkVHX1JFR0lTVEVSRUQpCi0KLS8qIEluY2x1ZGUgbmV0IGRldmljZSBuYW1lIGluIGxvZyBtZXNzYWdlcyBpZiBpdCBoYXMgYmVlbiByZWdpc3RlcmVkLgotICogVXNlIGVmeC0+bmFtZSBub3QgZWZ4LT5uZXRfZGV2LT5uYW1lIHNvIHRoYXQgcmFjZXMgd2l0aCAodW4pcmVnaXN0cmF0aW9uCi0gKiBhcmUgaGFybWxlc3MuCi0gKi8KLSNkZWZpbmUgTkVUX0RFVl9OQU1FKGVmeCkgKE5FVF9ERVZfUkVHSVNURVJFRChlZngpID8gKGVmeCktPm5hbWUgOiAiIikKLQogLyogVW4tcmF0ZS1saW1pdGVkIGxvZ2dpbmcgKi8KICNkZWZpbmUgRUZYX0VSUihlZngsIGZtdCwgYXJncy4uLikgXAotZGV2X2VycigmKChlZngpLT5wY2lfZGV2LT5kZXYpLCAiRVJSOiAlcyAiIGZtdCwgTkVUX0RFVl9OQU1FKGVmeCksICMjYXJncykKK2Rldl9lcnIoJigoZWZ4KS0+cGNpX2Rldi0+ZGV2KSwgIkVSUjogJXMgIiBmbXQsIGVmeF9kZXZfbmFtZShlZngpLCAjI2FyZ3MpCiAKICNkZWZpbmUgRUZYX0lORk8oZWZ4LCBmbXQsIGFyZ3MuLi4pIFwKLWRldl9pbmZvKCYoKGVmeCktPnBjaV9kZXYtPmRldiksICJJTkZPOiAlcyAiIGZtdCwgTkVUX0RFVl9OQU1FKGVmeCksICMjYXJncykKK2Rldl9pbmZvKCYoKGVmeCktPnBjaV9kZXYtPmRldiksICJJTkZPOiAlcyAiIGZtdCwgZWZ4X2Rldl9uYW1lKGVmeCksICMjYXJncykKIAogI2lmZGVmIEVGWF9FTkFCTEVfREVCVUcKICNkZWZpbmUgRUZYX0xPRyhlZngsIGZtdCwgYXJncy4uLikgXAotZGV2X2luZm8oJigoZWZ4KS0+cGNpX2Rldi0+ZGV2KSwgIkRCRzogJXMgIiBmbXQsIE5FVF9ERVZfTkFNRShlZngpLCAjI2FyZ3MpCitkZXZfaW5mbygmKChlZngpLT5wY2lfZGV2LT5kZXYpLCAiREJHOiAlcyAiIGZtdCwgZWZ4X2Rldl9uYW1lKGVmeCksICMjYXJncykKICNlbHNlCiAjZGVmaW5lIEVGWF9MT0coZWZ4LCBmbXQsIGFyZ3MuLi4pIFwKLWRldl9kYmcoJigoZWZ4KS0+cGNpX2Rldi0+ZGV2KSwgIkRCRzogJXMgIiBmbXQsIE5FVF9ERVZfTkFNRShlZngpLCAjI2FyZ3MpCitkZXZfZGJnKCYoKGVmeCktPnBjaV9kZXYtPmRldiksICJEQkc6ICVzICIgZm10LCBlZnhfZGV2X25hbWUoZWZ4KSwgIyNhcmdzKQogI2VuZGlmCiAKICNkZWZpbmUgRUZYX1RSQUNFKGVmeCwgZm10LCBhcmdzLi4uKSBkbyB7fSB3aGlsZSAoMCkKQEAgLTkwLDExICs4MSw2IEBACiAjZGVmaW5lIEVGWF9MT0dfUkwoZWZ4LCBmbXQsIGFyZ3MuLi4pIFwKIGRvIHtpZiAobmV0X3JhdGVsaW1pdCgpKSBFRlhfTE9HKGVmeCwgZm10LCAjI2FyZ3MpOyB9IHdoaWxlICgwKQogCi0vKiBLZXJuZWwgaGVhZGVycyBtYXkgcmVkZWZpbmUgaW5saW5lIGFueXdheSAqLwotI2lmbmRlZiBpbmxpbmUKLSNkZWZpbmUgaW5saW5lIGlubGluZSBfX2F0dHJpYnV0ZV9fICgoYWx3YXlzX2lubGluZSkpCi0jZW5kaWYKLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogRWZ4IGRhdGEgc3RydWN0dXJlcwpAQCAtNjk1LDcgKzY4MSw3IEBACiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxdWV1ZTsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVzZXRfd29yazsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIG1vbml0b3Jfd29yazsKLQl1bnNpZ25lZCBsb25nIG1lbWJhc2VfcGh5czsKKwlyZXNvdXJjZV9zaXplX3QgbWVtYmFzZV9waHlzOwogCXZvaWQgX19pb21lbSAqbWVtYmFzZTsKIAlzcGlubG9ja190IGJpdV9sb2NrOwogCWVudW0gZWZ4X2ludF9tb2RlIGludGVycnVwdF9tb2RlOwpAQCAtNzE5LDcgKzcwNSw3IEBACiAKIAl1bnNpZ25lZCBuX3J4X25vZGVzY19kcm9wX2NudDsKIAotCXZvaWQgKm5pY19kYXRhOworCXN0cnVjdCBmYWxjb25fbmljX2RhdGEgKm5pY19kYXRhOwogCiAJc3RydWN0IG11dGV4IG1hY19sb2NrOwogCWludCBwb3J0X2VuYWJsZWQ7CkBAIC03NjAsNiArNzQ2LDIwIEBACiAJdm9pZCAqbG9vcGJhY2tfc2VsZnRlc3Q7CiB9OwogCitzdGF0aWMgaW5saW5lIGludCBlZnhfZGV2X3JlZ2lzdGVyZWQoc3RydWN0IGVmeF9uaWMgKmVmeCkKK3sKKwlyZXR1cm4gZWZ4LT5uZXRfZGV2LT5yZWdfc3RhdGUgPT0gTkVUUkVHX1JFR0lTVEVSRUQ7Cit9CisKKy8qIE5ldCBkZXZpY2UgbmFtZSwgZm9yIGluY2x1c2lvbiBpbiBsb2cgbWVzc2FnZXMgaWYgaXQgaGFzIGJlZW4gcmVnaXN0ZXJlZC4KKyAqIFVzZSBlZngtPm5hbWUgbm90IGVmeC0+bmV0X2Rldi0+bmFtZSBzbyB0aGF0IHJhY2VzIHdpdGggKHVuKXJlZ2lzdHJhdGlvbgorICogYXJlIGhhcm1sZXNzLgorICovCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmVmeF9kZXZfbmFtZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQoreworCXJldHVybiBlZnhfZGV2X3JlZ2lzdGVyZWQoZWZ4KSA/IGVmeC0+bmFtZSA6ICIiOworfQorCiAvKioKICAqIHN0cnVjdCBlZnhfbmljX3R5cGUgLSBFZnggZGV2aWNlIHR5cGUgZGVmaW5pdGlvbgogICogQG1lbV9iYXI6IE1lbW9yeSBCQVIgbnVtYmVyCkBAIC03OTUsNyArNzk1LDcgQEAKIAl1bnNpZ25lZCBpbnQgdHhkX3JpbmdfbWFzazsKIAl1bnNpZ25lZCBpbnQgcnhkX3JpbmdfbWFzazsKIAl1bnNpZ25lZCBpbnQgZXZxX3NpemU7Ci0JZG1hX2FkZHJfdCBtYXhfZG1hX21hc2s7CisJdTY0IG1heF9kbWFfbWFzazsKIAl1bnNpZ25lZCBpbnQgdHhfZG1hX21hc2s7CiAJdW5zaWduZWQgYnVnNTM5MV9tYXNrOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvcnguYyBiL2RyaXZlcnMvbmV0L3NmYy9yeC5jCmluZGV4IDY3MDYyMjMuLjYwMWIwMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L3NmYy9yeC5jCkBAIC04NiwxNCArODYsMTcgQEAKICAqLwogI2RlZmluZSBFRlhfUlhEX0hFQURfUk9PTSAyCiAKLS8qIE1hY3JvcyBmb3IgemVyby1vcmRlciBwYWdlcyAocG90ZW50aWFsbHkpIGNvbnRhaW5pbmcgbXVsdGlwbGUgUlggYnVmZmVycyAqLwotI2RlZmluZSBSWF9EQVRBX09GRlNFVChfZGF0YSkJCQkJXAotCSgoKHVuc2lnbmVkIGxvbmcpIChfZGF0YSkpICYgKFBBR0VfU0laRS0xKSkKLSNkZWZpbmUgUlhfQlVGX09GRlNFVChfcnhfYnVmKQkJCQlcCi0JUlhfREFUQV9PRkZTRVQoKF9yeF9idWYpLT5kYXRhKQotCi0jZGVmaW5lIFJYX1BBR0VfU0laRShfZWZ4KQkJCQlcCi0JKFBBR0VfU0laRSAqICgxdSA8PCAoX2VmeCktPnJ4X2J1ZmZlcl9vcmRlcikpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBlZnhfcnhfYnVmX29mZnNldChzdHJ1Y3QgZWZ4X3J4X2J1ZmZlciAqYnVmKQoreworCS8qIE9mZnNldCBpcyBhbHdheXMgd2l0aGluIG9uZSBwYWdlLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGNvbnNpZGVyCisJICogdGhlIHBhZ2Ugb3JkZXIuCisJICovCisJcmV0dXJuIChfX2ZvcmNlIHVuc2lnbmVkIGxvbmcpIGJ1Zi0+ZGF0YSAmIChQQUdFX1NJWkUgLSAxKTsKK30KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGVmeF9yeF9idWZfc2l6ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQoreworCXJldHVybiBQQUdFX1NJWkUgPDwgZWZ4LT5yeF9idWZmZXJfb3JkZXI7Cit9CiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDYsNyArMTA5LDcgQEAKIHN0YXRpYyBpbnQgZWZ4X2xyb19nZXRfc2tiX2hkcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB2b2lkICoqaXBfaGRyLAogCQkJICAgICAgIHZvaWQgKip0Y3B1ZHBfaGRyLCB1NjQgKmhkcl9mbGFncywgdm9pZCAqcHJpdikKIHsKLQlzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwgPSAoc3RydWN0IGVmeF9jaGFubmVsICopcHJpdjsKKwlzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwgPSBwcml2OwogCXN0cnVjdCBpcGhkciAqaXBoOwogCXN0cnVjdCB0Y3BoZHIgKnRoOwogCkBAIC0xMzEsMTIgKzEzNCwxMiBAQAogCQkJICAgIHZvaWQgKippcF9oZHIsIHZvaWQgKip0Y3B1ZHBfaGRyLCB1NjQgKmhkcl9mbGFncywKIAkJCSAgICB2b2lkICpwcml2KQogewotCXN0cnVjdCBlZnhfY2hhbm5lbCAqY2hhbm5lbCA9IChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKilwcml2OworCXN0cnVjdCBlZnhfY2hhbm5lbCAqY2hhbm5lbCA9IHByaXY7CiAJc3RydWN0IGV0aGhkciAqZWg7CiAJc3RydWN0IGlwaGRyICppcGg7CiAKIAkvKiBXZSBzdXBwb3J0IEV0aGVySUkgYW5kIFZMQU4gZW5jYXBzdWxhdGVkIElQdjQgKi8KLQllaCA9IChzdHJ1Y3QgZXRoaGRyICopKHBhZ2VfYWRkcmVzcyhmcmFnLT5wYWdlKSArIGZyYWctPnBhZ2Vfb2Zmc2V0KTsKKwllaCA9IHBhZ2VfYWRkcmVzcyhmcmFnLT5wYWdlKSArIGZyYWctPnBhZ2Vfb2Zmc2V0OwogCSptYWNfaGRyID0gZWg7CiAKIAlpZiAoZWgtPmhfcHJvdG8gPT0gaHRvbnMoRVRIX1BfSVApKSB7CkBAIC0yNjksNyArMjcyLDcgQEAKIAkJCXJldHVybiAtRU5PTUVNOwogCiAJCWRtYV9hZGRyID0gcGNpX21hcF9wYWdlKGVmeC0+cGNpX2RldiwgcnhfYnVmLT5wYWdlLAotCQkJCQkwLCBSWF9QQUdFX1NJWkUoZWZ4KSwKKwkJCQkJMCwgZWZ4X3J4X2J1Zl9zaXplKGVmeCksCiAJCQkJCVBDSV9ETUFfRlJPTURFVklDRSk7CiAKIAkJaWYgKHVubGlrZWx5KHBjaV9kbWFfbWFwcGluZ19lcnJvcihkbWFfYWRkcikpKSB7CkBAIC0yODAsMTQgKzI4MywxNCBAQAogCiAJCXJ4X3F1ZXVlLT5idWZfcGFnZSA9IHJ4X2J1Zi0+cGFnZTsKIAkJcnhfcXVldWUtPmJ1Zl9kbWFfYWRkciA9IGRtYV9hZGRyOwotCQlyeF9xdWV1ZS0+YnVmX2RhdGEgPSAoKGNoYXIgKikgcGFnZV9hZGRyZXNzKHJ4X2J1Zi0+cGFnZSkgKworCQlyeF9xdWV1ZS0+YnVmX2RhdGEgPSAocGFnZV9hZGRyZXNzKHJ4X2J1Zi0+cGFnZSkgKwogCQkJCSAgICAgIEVGWF9QQUdFX0lQX0FMSUdOKTsKIAl9CiAKLQlvZmZzZXQgPSBSWF9EQVRBX09GRlNFVChyeF9xdWV1ZS0+YnVmX2RhdGEpOwogCXJ4X2J1Zi0+bGVuID0gYnl0ZXM7Ci0JcnhfYnVmLT5kbWFfYWRkciA9IHJ4X3F1ZXVlLT5idWZfZG1hX2FkZHIgKyBvZmZzZXQ7CiAJcnhfYnVmLT5kYXRhID0gcnhfcXVldWUtPmJ1Zl9kYXRhOworCW9mZnNldCA9IGVmeF9yeF9idWZfb2Zmc2V0KHJ4X2J1Zik7CisJcnhfYnVmLT5kbWFfYWRkciA9IHJ4X3F1ZXVlLT5idWZfZG1hX2FkZHIgKyBvZmZzZXQ7CiAKIAkvKiBUcnkgdG8gcGFjayBtdWx0aXBsZSBidWZmZXJzIHBlciBwYWdlICovCiAJaWYgKGVmeC0+cnhfYnVmZmVyX29yZGVyID09IDApIHsKQEAgLTI5NSw3ICsyOTgsNyBAQAogCQlyeF9xdWV1ZS0+YnVmX2RhdGEgKz0gKChieXRlcyArIDB4MWZmKSAmIH4weDFmZik7CiAJCW9mZnNldCArPSAoKGJ5dGVzICsgMHgxZmYpICYgfjB4MWZmKTsKIAotCQlzcGFjZSA9IFJYX1BBR0VfU0laRShlZngpIC0gb2Zmc2V0OworCQlzcGFjZSA9IGVmeF9yeF9idWZfc2l6ZShlZngpIC0gb2Zmc2V0OwogCQlpZiAoc3BhY2UgPj0gYnl0ZXMpIHsKIAkJCS8qIFJlZnMgZHJvcHBlZCBvbiBrZXJuZWwgcmVsZWFzaW5nIGVhY2ggc2tiICovCiAJCQlnZXRfcGFnZShyeF9xdWV1ZS0+YnVmX3BhZ2UpOwpAQCAtMzQ0LDcgKzM0Nyw4IEBACiAJCUVGWF9CVUdfT05fUEFSQU5PSUQocnhfYnVmLT5za2IpOwogCQlpZiAocnhfYnVmLT51bm1hcF9hZGRyKSB7CiAJCQlwY2lfdW5tYXBfcGFnZShlZngtPnBjaV9kZXYsIHJ4X2J1Zi0+dW5tYXBfYWRkciwKLQkJCQkgICAgICAgUlhfUEFHRV9TSVpFKGVmeCksIFBDSV9ETUFfRlJPTURFVklDRSk7CisJCQkJICAgICAgIGVmeF9yeF9idWZfc2l6ZShlZngpLAorCQkJCSAgICAgICBQQ0lfRE1BX0ZST01ERVZJQ0UpOwogCQkJcnhfYnVmLT51bm1hcF9hZGRyID0gMDsKIAkJfQogCX0gZWxzZSBpZiAobGlrZWx5KHJ4X2J1Zi0+c2tiKSkgewpAQCAtNDAwLDkgKzQwNCwxMCBAQAogCQlyZXR1cm4gMDsKIAogCS8qIFJlY29yZCBtaW5pbXVtIGZpbGwgbGV2ZWwgKi8KLQlpZiAodW5saWtlbHkoZmlsbF9sZXZlbCA8IHJ4X3F1ZXVlLT5taW5fZmlsbCkpCisJaWYgKHVubGlrZWx5KGZpbGxfbGV2ZWwgPCByeF9xdWV1ZS0+bWluX2ZpbGwpKSB7CiAJCWlmIChmaWxsX2xldmVsKQogCQkJcnhfcXVldWUtPm1pbl9maWxsID0gZmlsbF9sZXZlbDsKKwl9CiAKIAkvKiBBY3F1aXJlIFJYIGFkZCBsb2NrLiAgSWYgdGhpcyBsb2NrIGlzIGNvbnRlbmRlZCwgdGhlbiBhIGZhc3QKIAkgKiBmaWxsIG11c3QgYWxyZWFkeSBiZSBpbiBwcm9ncmVzcyAoZS5nLiBpbiB0aGUgcmVmaWxsCkBAIC01NTIsNyArNTU3LDcgQEAKIAkJc3RydWN0IHNrYl9mcmFnX3N0cnVjdCBmcmFnczsKIAogCQlmcmFncy5wYWdlID0gcnhfYnVmLT5wYWdlOwotCQlmcmFncy5wYWdlX29mZnNldCA9IFJYX0JVRl9PRkZTRVQocnhfYnVmKTsKKwkJZnJhZ3MucGFnZV9vZmZzZXQgPSBlZnhfcnhfYnVmX29mZnNldChyeF9idWYpOwogCQlmcmFncy5zaXplID0gcnhfYnVmLT5sZW47CiAKIAkJbHJvX3JlY2VpdmVfZnJhZ3MobHJvX21nciwgJmZyYWdzLCByeF9idWYtPmxlbiwKQEAgLTU5Nyw3ICs2MDIsNyBAQAogCWlmICh1bmxpa2VseShyeF9idWYtPmxlbiA+IGhkcl9sZW4pKSB7CiAJCXN0cnVjdCBza2JfZnJhZ19zdHJ1Y3QgKmZyYWcgPSBza2Jfc2hpbmZvKHNrYiktPmZyYWdzOwogCQlmcmFnLT5wYWdlID0gcnhfYnVmLT5wYWdlOwotCQlmcmFnLT5wYWdlX29mZnNldCA9IFJYX0JVRl9PRkZTRVQocnhfYnVmKSArIGhkcl9sZW47CisJCWZyYWctPnBhZ2Vfb2Zmc2V0ID0gZWZ4X3J4X2J1Zl9vZmZzZXQocnhfYnVmKSArIGhkcl9sZW47CiAJCWZyYWctPnNpemUgPSBza2ItPmxlbiAtIGhkcl9sZW47CiAJCXNrYl9zaGluZm8oc2tiKS0+bnJfZnJhZ3MgPSAxOwogCQlza2ItPmRhdGFfbGVuID0gZnJhZy0+c2l6ZTsKQEAgLTg1MSw3ICs4NTYsOCBAQAogCS8qIEZvciBhIHBhZ2UgdGhhdCBpcyBwYXJ0LXdheSB0aHJvdWdoIHNwbGl0dGluZyBpbnRvIFJYIGJ1ZmZlcnMgKi8KIAlpZiAocnhfcXVldWUtPmJ1Zl9wYWdlICE9IE5VTEwpIHsKIAkJcGNpX3VubWFwX3BhZ2UocnhfcXVldWUtPmVmeC0+cGNpX2RldiwgcnhfcXVldWUtPmJ1Zl9kbWFfYWRkciwKLQkJCSAgICAgICBSWF9QQUdFX1NJWkUocnhfcXVldWUtPmVmeCksIFBDSV9ETUFfRlJPTURFVklDRSk7CisJCQkgICAgICAgZWZ4X3J4X2J1Zl9zaXplKHJ4X3F1ZXVlLT5lZngpLAorCQkJICAgICAgIFBDSV9ETUFfRlJPTURFVklDRSk7CiAJCV9fZnJlZV9wYWdlcyhyeF9xdWV1ZS0+YnVmX3BhZ2UsCiAJCQkgICAgIHJ4X3F1ZXVlLT5lZngtPnJ4X2J1ZmZlcl9vcmRlcik7CiAJCXJ4X3F1ZXVlLT5idWZfcGFnZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvc2VsZnRlc3QuYyBiL2RyaXZlcnMvbmV0L3NmYy9zZWxmdGVzdC5jCmluZGV4IGNiZGExNTkuLjNiMmRlOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9zZWxmdGVzdC5jCisrKyBiL2RyaXZlcnMvbmV0L3NmYy9zZWxmdGVzdC5jCkBAIC0yOTAsNyArMjkwLDcgQEAKIAogCXBheWxvYWQgPSAmc3RhdGUtPnBheWxvYWQ7CiAJCi0JcmVjZWl2ZWQgPSAoc3RydWN0IGVmeF9sb29wYmFja19wYXlsb2FkICopKGNoYXIgKikgYnVmX3B0cjsKKwlyZWNlaXZlZCA9IChzdHJ1Y3QgZWZ4X2xvb3BiYWNrX3BheWxvYWQgKikgYnVmX3B0cjsKIAlyZWNlaXZlZC0+aXAuc2FkZHIgPSBwYXlsb2FkLT5pcC5zYWRkcjsKIAlyZWNlaXZlZC0+aXAuY2hlY2sgPSBwYXlsb2FkLT5pcC5jaGVjazsKIAkKQEAgLTQyNCwxMCArNDI0LDEwIEBACiAJCSAqIGludGVycnVwdCBoYW5kbGVyLiAqLwogCQlzbXBfd21iKCk7CiAKLQkJaWYgKE5FVF9ERVZfUkVHSVNURVJFRChlZngpKQorCQlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpCiAJCQluZXRpZl90eF9sb2NrX2JoKGVmeC0+bmV0X2Rldik7CiAJCXJjID0gZWZ4X3htaXQoZWZ4LCB0eF9xdWV1ZSwgc2tiKTsKLQkJaWYgKE5FVF9ERVZfUkVHSVNURVJFRChlZngpKQorCQlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpCiAJCQluZXRpZl90eF91bmxvY2tfYmgoZWZ4LT5uZXRfZGV2KTsKIAogCQlpZiAocmMgIT0gTkVUREVWX1RYX09LKSB7CkBAIC00NTMsNyArNDUzLDcgQEAKIAlpbnQgdHhfZG9uZSA9IDAsIHJ4X2dvb2QsIHJ4X2JhZDsKIAlpbnQgaSwgcmMgPSAwOwogCi0JaWYgKE5FVF9ERVZfUkVHSVNURVJFRChlZngpKQorCWlmIChlZnhfZGV2X3JlZ2lzdGVyZWQoZWZ4KSkKIAkJbmV0aWZfdHhfbG9ja19iaChlZngtPm5ldF9kZXYpOwogCiAJLyogQ291bnQgdGhlIG51bWJlciBvZiB0eCBjb21wbGV0aW9ucywgYW5kIGRlY3JlbWVudCB0aGUgcmVmY250LiBBbnkKQEAgLTQ2NSw3ICs0NjUsNyBAQAogCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCX0KIAotCWlmIChORVRfREVWX1JFR0lTVEVSRUQoZWZ4KSkKKwlpZiAoZWZ4X2Rldl9yZWdpc3RlcmVkKGVmeCkpCiAJCW5ldGlmX3R4X3VubG9ja19iaChlZngtPm5ldF9kZXYpOwogCiAJLyogQ2hlY2sgVFggY29tcGxldGlvbiBhbmQgcmVjZWl2ZWQgcGFja2V0IGNvdW50cyAqLwpAQCAtNTE3LDYgKzUxNyw4IEBACiAJCXN0YXRlLT5wYWNrZXRfY291bnQgPSBtaW4oMSA8PCAoaSA8PCAyKSwgc3RhdGUtPnBhY2tldF9jb3VudCk7CiAJCXN0YXRlLT5za2JzID0ga3phbGxvYyhzaXplb2Yoc3RhdGUtPnNrYnNbMF0pICoKIAkJCQkgICAgICBzdGF0ZS0+cGFja2V0X2NvdW50LCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFzdGF0ZS0+c2ticykKKwkJCXJldHVybiAtRU5PTUVNOwogCQlzdGF0ZS0+Zmx1c2ggPSAwOwogCiAJCUVGWF9MT0coZWZ4LCAiVFggcXVldWUgJWQgdGVzdGluZyAlcyBsb29wYmFjayB3aXRoICVkICIKQEAgLTcwMCw3ICs3MDIsNyBAQAogCSAqICJmbHVzaGluZyIgc28gYWxsIGluZmxpZ2h0IHBhY2tldHMgYXJlIGRyb3BwZWQgKi8KIAlCVUdfT04oZWZ4LT5sb29wYmFja19zZWxmdGVzdCk7CiAJc3RhdGUtPmZsdXNoID0gMTsKLQllZngtPmxvb3BiYWNrX3NlbGZ0ZXN0ID0gKHZvaWQgKilzdGF0ZTsKKwllZngtPmxvb3BiYWNrX3NlbGZ0ZXN0ID0gc3RhdGU7CiAKIAlyYyA9IGVmeF90ZXN0X2xvb3BiYWNrcyhlZngsIHRlc3RzLCBsb29wYmFja19tb2Rlcyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy9zZmU0MDAxLmMgYi9kcml2ZXJzL25ldC9zZmMvc2ZlNDAwMS5jCmluZGV4IDcyNWQxYTUuLjY2YTBkMTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy9zZmU0MDAxLmMKKysrIGIvZHJpdmVycy9uZXQvc2ZjL3NmZTQwMDEuYwpAQCAtMTE2LDE4ICsxMTYsMTggQEAKIAogCS8qIFR1cm4gb2ZmIGFsbCBwb3dlciByYWlscyAqLwogCW91dCA9IDB4ZmY7Ci0JKHZvaWQpIGVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9PVVQsICZvdXQsIDEpOworCWVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9PVVQsICZvdXQsIDEpOwogCiAJLyogRGlzYWJsZSBwb3J0IDEgb3V0cHV0cyBvbiBJTyBleHBhbmRlciAqLwogCWNmZyA9IDB4ZmY7Ci0JKHZvaWQpIGVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMV9DT05GSUcsICZjZmcsIDEpOworCWVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMV9DT05GSUcsICZjZmcsIDEpOwogCiAJLyogRGlzYWJsZSBwb3J0IDAgb3V0cHV0cyBvbiBJTyBleHBhbmRlciAqLwogCWNmZyA9IDB4ZmY7Ci0JKHZvaWQpIGVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9DT05GSUcsICZjZmcsIDEpOworCWVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9DT05GSUcsICZjZmcsIDEpOwogCiAJLyogQ2xlYXIgYW55IG92ZXItdGVtcGVyYXR1cmUgYWxlcnQgKi8KLQkodm9pZCkgZWZ4X2kyY19yZWFkKGkyYywgTUFYNjY0NywgUlNMLCAmaW4sIDEpOworCWVmeF9pMmNfcmVhZChpMmMsIE1BWDY2NDcsIFJTTCwgJmluLCAxKTsKIH0KIAogLyogVGhlIFAwX0VOXzNWM1ggbGluZSBvbiBTRkU0MDAxIGJvYXJkcyAoZnJvbSBBMiBvbndhcmQpIGlzIGNvbm5lY3RlZApAQCAtMjUzLDE0ICsyNTMsMTQgQEAKIGZhaWwzOgogCS8qIFR1cm4gb2ZmIGFsbCBwb3dlciByYWlscyAqLwogCW91dCA9IDB4ZmY7Ci0JKHZvaWQpIGVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9PVVQsICZvdXQsIDEpOworCWVmeF9pMmNfd3JpdGUoaTJjLCBQQ0E5NTM5LCBQMF9PVVQsICZvdXQsIDEpOwogCS8qIERpc2FibGUgcG9ydCAxIG91dHB1dHMgb24gSU8gZXhwYW5kZXIgKi8KIAlvdXQgPSAweGZmOwotCSh2b2lkKSBlZnhfaTJjX3dyaXRlKGkyYywgUENBOTUzOSwgUDFfQ09ORklHLCAmb3V0LCAxKTsKKwllZnhfaTJjX3dyaXRlKGkyYywgUENBOTUzOSwgUDFfQ09ORklHLCAmb3V0LCAxKTsKIGZhaWwyOgogCS8qIERpc2FibGUgcG9ydCAwIG91dHB1dHMgb24gSU8gZXhwYW5kZXIgKi8KIAlvdXQgPSAweGZmOwotCSh2b2lkKSBlZnhfaTJjX3dyaXRlKGkyYywgUENBOTUzOSwgUDBfQ09ORklHLCAmb3V0LCAxKTsKKwllZnhfaTJjX3dyaXRlKGkyYywgUENBOTUzOSwgUDBfQ09ORklHLCAmb3V0LCAxKTsKIGZhaWwxOgogCXJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy90ZW54cHJlc3MuYyBiL2RyaXZlcnMvbmV0L3NmYy90ZW54cHJlc3MuYwppbmRleCBiMWNkNmRlLi5jMDE0NjA2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zZmMvdGVueHByZXNzLmMKKysrIGIvZHJpdmVycy9uZXQvc2ZjL3RlbnhwcmVzcy5jCkBAIC0yMTEsNiArMjExLDggQEAKIAlpbnQgcmMgPSAwOwogCiAJcGh5X2RhdGEgPSBremFsbG9jKHNpemVvZigqcGh5X2RhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBoeV9kYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKIAllZngtPnBoeV9kYXRhID0gcGh5X2RhdGE7CiAKIAl0ZW54cHJlc3Nfc2V0X3N0YXRlKGVmeCwgVEVOWFBSRVNTX1NUQVRVU19OT1JNQUwpOwpAQCAtMzc2LDcgKzM3OCw3IEBACiAJICogcGVyZm9ybSBhIHNwZWNpYWwgc29mdHdhcmUgcmVzZXQgKi8KIAlpZiAoKHBoeV9kYXRhLT50eF9kaXNhYmxlZCAmJiAhZWZ4LT50eF9kaXNhYmxlZCkgfHwKIAkgICAgbG9vcF9jaGFuZ2UpIHsKLQkJKHZvaWQpIHRlbnhwcmVzc19zcGVjaWFsX3Jlc2V0KGVmeCk7CisJCXRlbnhwcmVzc19zcGVjaWFsX3Jlc2V0KGVmeCk7CiAJCWZhbGNvbl9yZXNldF94YXVpKGVmeCk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zZmMvdHguYyBiL2RyaXZlcnMvbmV0L3NmYy90eC5jCmluZGV4IDliNDM2ZjUuLjVjZGQwODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy90eC5jCisrKyBiL2RyaXZlcnMvbmV0L3NmYy90eC5jCkBAIC0zODcsNyArMzg3LDcgQEAKIAlpZiAodW5saWtlbHkodHhfcXVldWUtPnN0b3BwZWQpKSB7CiAJCWZpbGxfbGV2ZWwgPSB0eF9xdWV1ZS0+aW5zZXJ0X2NvdW50IC0gdHhfcXVldWUtPnJlYWRfY291bnQ7CiAJCWlmIChmaWxsX2xldmVsIDwgRUZYX05FVERFVl9UWF9USFJFU0hPTEQodHhfcXVldWUpKSB7Ci0JCQlFRlhfQlVHX09OX1BBUkFOT0lEKCFORVRfREVWX1JFR0lTVEVSRUQoZWZ4KSk7CisJCQlFRlhfQlVHX09OX1BBUkFOT0lEKCFlZnhfZGV2X3JlZ2lzdGVyZWQoZWZ4KSk7CiAKIAkJCS8qIERvIHRoaXMgdW5kZXIgbmV0aWZfdHhfbG9jaygpLCB0byBhdm9pZCByYWNpbmcKIAkJCSAqIHdpdGggZWZ4X3htaXQoKS4gKi8KQEAgLTYzOSwxMSArNjM5LDEyIEBACiAJYmFzZV9kbWEgPSB0c29oLT5kbWFfYWRkciAmIFBBR0VfTUFTSzsKIAogCXAgPSAmdHhfcXVldWUtPnRzb19oZWFkZXJzX2ZyZWU7Ci0Jd2hpbGUgKCpwICE9IE5VTEwpCisJd2hpbGUgKCpwICE9IE5VTEwpIHsKIAkJaWYgKCgodW5zaWduZWQgbG9uZykqcCAmIFBBR0VfTUFTSykgPT0gYmFzZV9rdmEpCiAJCQkqcCA9ICgqcCktPm5leHQ7CiAJCWVsc2UKIAkJCXAgPSAmKCpwKS0+bmV4dDsKKwl9CiAKIAlwY2lfZnJlZV9jb25zaXN0ZW50KHBjaV9kZXYsIFBBR0VfU0laRSwgKHZvaWQgKiliYXNlX2t2YSwgYmFzZV9kbWEpOwogfQpAQCAtOTM5LDkgKzk0MCwxMCBAQAogCiAJLyogQWxsb2NhdGUgYSBETUEtbWFwcGVkIGhlYWRlciBidWZmZXIuICovCiAJaWYgKGxpa2VseShUU09IX1NJWkUoc3QtPnAuaGVhZGVyX2xlbmd0aCkgPD0gVFNPSF9TVERfU0laRSkpIHsKLQkJaWYgKHR4X3F1ZXVlLT50c29faGVhZGVyc19mcmVlID09IE5VTEwpCisJCWlmICh0eF9xdWV1ZS0+dHNvX2hlYWRlcnNfZnJlZSA9PSBOVUxMKSB7CiAJCQlpZiAoZWZ4X3Rzb2hfYmxvY2tfYWxsb2ModHhfcXVldWUpKQogCQkJCXJldHVybiAtMTsKKwkJfQogCQlFRlhfQlVHX09OX1BBUkFOT0lEKCF0eF9xdWV1ZS0+dHNvX2hlYWRlcnNfZnJlZSk7CiAJCXRzb2ggPSB0eF9xdWV1ZS0+dHNvX2hlYWRlcnNfZnJlZTsKIAkJdHhfcXVldWUtPnRzb19oZWFkZXJzX2ZyZWUgPSB0c29oLT5uZXh0OwpAQCAtMTEwNiw5ICsxMTA4LDEwIEBACiB7CiAJdW5zaWduZWQgaTsKIAotCWlmICh0eF9xdWV1ZS0+YnVmZmVyKQorCWlmICh0eF9xdWV1ZS0+YnVmZmVyKSB7CiAJCWZvciAoaSA9IDA7IGkgPD0gdHhfcXVldWUtPmVmeC0+dHlwZS0+dHhkX3JpbmdfbWFzazsgKytpKQogCQkJZWZ4X3Rzb2hfZnJlZSh0eF9xdWV1ZSwgJnR4X3F1ZXVlLT5idWZmZXJbaV0pOworCX0KIAogCXdoaWxlICh0eF9xdWV1ZS0+dHNvX2hlYWRlcnNfZnJlZSAhPSBOVUxMKQogCQllZnhfdHNvaF9ibG9ja19mcmVlKHR4X3F1ZXVlLCB0eF9xdWV1ZS0+dHNvX2hlYWRlcnNfZnJlZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy93b3JrYXJvdW5kcy5oIGIvZHJpdmVycy9uZXQvc2ZjL3dvcmthcm91bmRzLmgKaW5kZXggZGNhNjJmMS4uMzVhYjE5YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy93b3JrYXJvdW5kcy5oCisrKyBiL2RyaXZlcnMvbmV0L3NmYy93b3JrYXJvdW5kcy5oCkBAIC0xNiw3ICsxNiw3IEBACiAgKi8KIAogI2RlZmluZSBFRlhfV09SS0FST1VORF9BTFdBWVMoZWZ4KSAxCi0jZGVmaW5lIEVGWF9XT1JLQVJPVU5EX0ZBTENPTl9BKGVmeCkgKEZBTENPTl9SRVYoZWZ4KSA8PSBGQUxDT05fUkVWX0ExKQorI2RlZmluZSBFRlhfV09SS0FST1VORF9GQUxDT05fQShlZngpIChmYWxjb25fcmV2KGVmeCkgPD0gRkFMQ09OX1JFVl9BMSkKIAogLyogWEFVSSByZXNldHMgaWYgbGluayBub3QgZGV0ZWN0ZWQgKi8KICNkZWZpbmUgRUZYX1dPUktBUk9VTkRfNTE0NyBFRlhfV09SS0FST1VORF9BTFdBWVMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NmYy94ZnBfcGh5LmMgYi9kcml2ZXJzL25ldC9zZmMveGZwX3BoeS5jCmluZGV4IDNiOWY5ZGQuLmYzNjg0YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3NmYy94ZnBfcGh5LmMKKysrIGIvZHJpdmVycy9uZXQvc2ZjL3hmcF9waHkuYwpAQCAtODUsNyArODUsOSBAQAogCWludCByYzsKIAogCXBoeV9kYXRhID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHhmcF9waHlfZGF0YSksIEdGUF9LRVJORUwpOwotCWVmeC0+cGh5X2RhdGEgPSAodm9pZCAqKSBwaHlfZGF0YTsKKwlpZiAoIXBoeV9kYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKwllZngtPnBoeV9kYXRhID0gcGh5X2RhdGE7CiAKIAlFRlhfSU5GTyhlZngsICJYRlA6IFBIWSBJRCByZWcgJXggKE9VSSAleCBtb2RlbCAleCByZXZpc2lvbiIKIAkJICIgJXgpXG4iLCBkZXZpZCwgTURJT19JRF9PVUkoZGV2aWQpLCBNRElPX0lEX01PREVMKGRldmlkKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NreTIuYyBiL2RyaXZlcnMvbmV0L3NreTIuYwppbmRleCBmMjI2YmNhLi5jOGE1ZWYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9za3kyLmMKKysrIGIvZHJpdmVycy9uZXQvc2t5Mi5jCkBAIC0xMTgsNiArMTE4LDcgQEAKIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTIpIH0sIC8qIDg4RTgwMzggKi8KIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTMpIH0sIC8qIDg4RTgwMzkgKi8KIAl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTQpIH0sIC8qIDg4RTgwNDAgKi8KKwl7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NQVJWRUxMLCAweDQzNTUpIH0sIC8qIDg4RTgwNDBUICovCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgMHg0MzU2KSB9LCAvKiA4OEVDMDMzICovCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgMHg0MzU3KSB9LCAvKiA4OEU4MDQyICovCiAJeyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUFSVkVMTCwgMHg0MzVBKSB9LCAvKiA4OEU4MDQ4ICovCkBAIC0xMTU5LDE3ICsxMTYwLDkgQEAKIH0KIAogI2lmZGVmIFNLWTJfVkxBTl9UQUdfVVNFRAotc3RhdGljIHZvaWQgc2t5Ml92bGFuX3J4X3JlZ2lzdGVyKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB2bGFuX2dyb3VwICpncnApCitzdGF0aWMgdm9pZCBza3kyX3NldF92bGFuX21vZGUoc3RydWN0IHNreTJfaHcgKmh3LCB1MTYgcG9ydCwgYm9vbCBvbm9mZikKIHsKLQlzdHJ1Y3Qgc2t5Ml9wb3J0ICpza3kyID0gbmV0ZGV2X3ByaXYoZGV2KTsKLQlzdHJ1Y3Qgc2t5Ml9odyAqaHcgPSBza3kyLT5odzsKLQl1MTYgcG9ydCA9IHNreTItPnBvcnQ7Ci0KLQluZXRpZl90eF9sb2NrX2JoKGRldik7Ci0JbmFwaV9kaXNhYmxlKCZody0+bmFwaSk7Ci0KLQlza3kyLT52bGdycCA9IGdycDsKLQlpZiAoZ3JwKSB7CisJaWYgKG9ub2ZmKSB7CiAJCXNreTJfd3JpdGUzMihodywgU0tfUkVHKHBvcnQsIFJYX0dNRl9DVFJMX1QpLAogCQkJICAgICBSWF9WTEFOX1NUUklQX09OKTsKIAkJc2t5Ml93cml0ZTMyKGh3LCBTS19SRUcocG9ydCwgVFhfR01GX0NUUkxfVCksCkBAIC0xMTgwLDYgKzExNzMsMTkgQEAKIAkJc2t5Ml93cml0ZTMyKGh3LCBTS19SRUcocG9ydCwgVFhfR01GX0NUUkxfVCksCiAJCQkgICAgIFRYX1ZMQU5fVEFHX09GRik7CiAJfQorfQorCitzdGF0aWMgdm9pZCBza3kyX3ZsYW5fcnhfcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHZsYW5fZ3JvdXAgKmdycCkKK3sKKwlzdHJ1Y3Qgc2t5Ml9wb3J0ICpza3kyID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlzdHJ1Y3Qgc2t5Ml9odyAqaHcgPSBza3kyLT5odzsKKwl1MTYgcG9ydCA9IHNreTItPnBvcnQ7CisKKwluZXRpZl90eF9sb2NrX2JoKGRldik7CisJbmFwaV9kaXNhYmxlKCZody0+bmFwaSk7CisKKwlza3kyLT52bGdycCA9IGdycDsKKwlza3kyX3NldF92bGFuX21vZGUoaHcsIHBvcnQsIGdycCAhPSBOVUxMKTsKIAogCXNreTJfcmVhZDMyKGh3LCBCMF9ZMl9TUF9MSVNSKTsKIAluYXBpX2VuYWJsZSgmaHctPm5hcGkpOwpAQCAtMTQxOCw2ICsxNDI0LDEwIEBACiAJc2t5Ml9wcmVmZXRjaF9pbml0KGh3LCB0eHFhZGRyW3BvcnRdLCBza3kyLT50eF9sZV9tYXAsCiAJCQkgICBUWF9SSU5HX1NJWkUgLSAxKTsKIAorI2lmZGVmIFNLWTJfVkxBTl9UQUdfVVNFRAorCXNreTJfc2V0X3ZsYW5fbW9kZShodywgcG9ydCwgc2t5Mi0+dmxncnAgIT0gTlVMTCk7CisjZW5kaWYKKwogCWVyciA9IHNreTJfcnhfc3RhcnQoc2t5Mik7CiAJaWYgKGVycikKIAkJZ290byBlcnJfb3V0OwpAQCAtNDM5NSw3ICs0NDA1LDkgQEAKIAkJCWlmIChlcnIpIHsKIAkJCQlwcmludGsoS0VSTl9FUlIgUEZYICIlczogY291bGQgbm90IHVwOiAlZFxuIiwKIAkJCQkgICAgICAgZGV2LT5uYW1lLCBlcnIpOworCQkJCXJ0bmxfbG9jaygpOwogCQkJCWRldl9jbG9zZShkZXYpOworCQkJCXJ0bmxfdW5sb2NrKCk7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NtYzkxMXguYyBiL2RyaXZlcnMvbmV0L3NtYzkxMXguYwppbmRleCA0ZTI4MDAyLi5lMmVlOTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zbWM5MTF4LmMKKysrIGIvZHJpdmVycy9uZXQvc21jOTExeC5jCkBAIC0xMzYsNyArMTM2LDYgQEAKIAogCS8qIHdvcmsgcXVldWUgKi8KIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcGh5X2NvbmZpZ3VyZTsKLQlpbnQgd29ya19wZW5kaW5nOwogCiAJaW50IHR4X3Rocm90dGxlOwogCXNwaW5sb2NrX3QgbG9jazsKQEAgLTk2MCwxMSArOTU5LDExIEBACiAJICogV2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgaWYgcGh5X3R5cGUgaXMgemVyby4KIAkgKi8KIAlpZiAobHAtPnBoeV90eXBlID09IDApCi0JCSBnb3RvIHNtYzkxMXhfcGh5X2NvbmZpZ3VyZV9leGl0X25vbG9jazsKKwkJcmV0dXJuOwogCiAJaWYgKHNtYzkxMXhfcGh5X3Jlc2V0KGRldiwgcGh5YWRkcikpIHsKIAkJcHJpbnRrKCIlczogUEhZIHJlc2V0IHRpbWVkIG91dFxuIiwgZGV2LT5uYW1lKTsKLQkJZ290byBzbWM5MTF4X3BoeV9jb25maWd1cmVfZXhpdF9ub2xvY2s7CisJCXJldHVybjsKIAl9CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmxwLT5sb2NrLCBmbGFncyk7CiAKQEAgLTEwMzMsOCArMTAzMiw2IEBACiAKIHNtYzkxMXhfcGh5X2NvbmZpZ3VyZV9leGl0OgogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmxwLT5sb2NrLCBmbGFncyk7Ci1zbWM5MTF4X3BoeV9jb25maWd1cmVfZXhpdF9ub2xvY2s6Ci0JbHAtPndvcmtfcGVuZGluZyA9IDA7CiB9CiAKIC8qCkBAIC0xMzU2LDExICsxMzUzLDggQEAKIAkgKiBzbWM5MTF4X3BoeV9jb25maWd1cmUoKSBjYWxscyBtc2xlZXAoKSB3aGljaCBjYWxscyBzY2hlZHVsZV90aW1lb3V0KCkKIAkgKiB3aGljaCBjYWxscyBzY2hlZHVsZSgpLgkgSGVuY2Ugd2UgdXNlIGEgd29yayBxdWV1ZS4KIAkgKi8KLQlpZiAobHAtPnBoeV90eXBlICE9IDApIHsKLQkJaWYgKHNjaGVkdWxlX3dvcmsoJmxwLT5waHlfY29uZmlndXJlKSkgewotCQkJbHAtPndvcmtfcGVuZGluZyA9IDE7Ci0JCX0KLQl9CisJaWYgKGxwLT5waHlfdHlwZSAhPSAwKQorCQlzY2hlZHVsZV93b3JrKCZscC0+cGh5X2NvbmZpZ3VyZSk7CiAKIAkvKiBXZSBjYW4gYWNjZXB0IFRYIHBhY2tldHMgYWdhaW4gKi8KIAlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsKQEAgLTE1MzEsMTYgKzE1MjUsOCBAQAogCWlmIChscC0+cGh5X3R5cGUgIT0gMCkgewogCQkvKiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IG5vIGNhbGxzIHRvCiAJCSAqIHNtYzkxMXhfcGh5X2NvbmZpZ3VyZSBhcmUgcGVuZGluZy4KLQotCQkgKiBmbHVzaF9zY2hlZHVsZWRfd29yaygpIGNhbm5vdCBiZSBjYWxsZWQgYmVjYXVzZSB3ZQotCQkgKiBhcmUgcnVubmluZyB3aXRoIHRoZSBuZXRsaW5rIHNlbWFwaG9yZSBoZWxkIChmcm9tCi0JCSAqIGRldmluZXRfaW9jdGwoKSkgYW5kIHRoZSBwZW5kaW5nIHdvcmsgcXVldWUKLQkJICogY29udGFpbnMgbGlua3dhdGNoX2V2ZW50KCkgKHNjaGVkdWxlZCBieQotCQkgKiBuZXRpZl9jYXJyaWVyX29mZigpIGFib3ZlKS4gbGlua3dhdGNoX2V2ZW50KCkgYWxzbwotCQkgKiB3YW50cyB0aGUgbmV0bGluayBzZW1hcGhvcmUuCiAJCSAqLwotCQl3aGlsZSAobHAtPndvcmtfcGVuZGluZykKLQkJCXNjaGVkdWxlKCk7CisJCWNhbmNlbF93b3JrX3N5bmMoJmxwLT5waHlfY29uZmlndXJlKTsKIAkJc21jOTExeF9waHlfcG93ZXJkb3duKGRldiwgbHAtPm1paS5waHlfaWQpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvc21jOTF4LmMgYi9kcml2ZXJzL25ldC9zbWM5MXguYwppbmRleCBhMTg4ZTMzLi5mMjA1MWIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zbWM5MXguYworKysgYi9kcml2ZXJzL25ldC9zbWM5MXguYwpAQCAtMTAxNiwxNSArMTAxNiw4IEBACiAKIAkvKiBXZSBuZWVkIHRvIGVuc3VyZSB0aGF0IG5vIGNhbGxzIHRvIHNtY19waHlfY29uZmlndXJlIGFyZQogCSAgIHBlbmRpbmcuCi0KLQkgICBmbHVzaF9zY2hlZHVsZWRfd29yaygpIGNhbm5vdCBiZSBjYWxsZWQgYmVjYXVzZSB3ZSBhcmUKLQkgICBydW5uaW5nIHdpdGggdGhlIG5ldGxpbmsgc2VtYXBob3JlIGhlbGQgKGZyb20KLQkgICBkZXZpbmV0X2lvY3RsKCkpIGFuZCB0aGUgcGVuZGluZyB3b3JrIHF1ZXVlIGNvbnRhaW5zCi0JICAgbGlua3dhdGNoX2V2ZW50KCkgKHNjaGVkdWxlZCBieSBuZXRpZl9jYXJyaWVyX29mZigpCi0JICAgYWJvdmUpLiBsaW5rd2F0Y2hfZXZlbnQoKSBhbHNvIHdhbnRzIHRoZSBuZXRsaW5rIHNlbWFwaG9yZS4KIAkqLwotCXdoaWxlKGxwLT53b3JrX3BlbmRpbmcpCi0JCXlpZWxkKCk7CisJY2FuY2VsX3dvcmtfc3luYygmbHAtPnBoeV9jb25maWd1cmUpOwogCiAJYm1jciA9IHNtY19waHlfcmVhZChkZXYsIHBoeSwgTUlJX0JNQ1IpOwogCXNtY19waHlfd3JpdGUoZGV2LCBwaHksIE1JSV9CTUNSLCBibWNyIHwgQk1DUl9QRE9XTik7CkBAIC0xMTYxLDcgKzExNTQsNiBAQAogc21jX3BoeV9jb25maWd1cmVfZXhpdDoKIAlTTUNfU0VMRUNUX0JBTksobHAsIDIpOwogCXNwaW5fdW5sb2NrX2lycSgmbHAtPmxvY2spOwotCWxwLT53b3JrX3BlbmRpbmcgPSAwOwogfQogCiAvKgpAQCAtMTM4OSwxMSArMTM4MSw4IEBACiAJICogc21jX3BoeV9jb25maWd1cmUoKSBjYWxscyBtc2xlZXAoKSB3aGljaCBjYWxscyBzY2hlZHVsZV90aW1lb3V0KCkKIAkgKiB3aGljaCBjYWxscyBzY2hlZHVsZSgpLiAgSGVuY2Ugd2UgdXNlIGEgd29yayBxdWV1ZS4KIAkgKi8KLQlpZiAobHAtPnBoeV90eXBlICE9IDApIHsKLQkJaWYgKHNjaGVkdWxlX3dvcmsoJmxwLT5waHlfY29uZmlndXJlKSkgewotCQkJbHAtPndvcmtfcGVuZGluZyA9IDE7Ci0JCX0KLQl9CisJaWYgKGxwLT5waHlfdHlwZSAhPSAwKQorCQlzY2hlZHVsZV93b3JrKCZscC0+cGh5X2NvbmZpZ3VyZSk7CiAKIAkvKiBXZSBjYW4gYWNjZXB0IFRYIHBhY2tldHMgYWdhaW4gKi8KIAlkZXYtPnRyYW5zX3N0YXJ0ID0gamlmZmllczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NtYzkxeC5oIGIvZHJpdmVycy9uZXQvc21jOTF4LmgKaW5kZXggNjllOTdhMS4uODYwNjgxOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvc21jOTF4LmgKKysrIGIvZHJpdmVycy9uZXQvc21jOTF4LmgKQEAgLTkzLDE0ICs5MywxNCBAQAogI2RlZmluZSBTTUNfaW5zdyhhLCByLCBwLCBsKSAJaW5zdyAoKHVuc2lnbmVkIGxvbmcgKikoKGEpICsgKHIpKSwgcCwgbCkKICMgZW5kaWYKIC8qIGNoZWNrIGlmIHRoZSBtYWMgaW4gcmVnIGlzIHZhbGlkICovCi0jZGVmaW5lIFNNQ19HRVRfTUFDX0FERFIoYWRkcikJCQkJCVwKKyNkZWZpbmUgU01DX0dFVF9NQUNfQUREUihscCwgYWRkcikJCQkJXAogCWRvIHsJCQkJCQkJXAogCQl1bnNpZ25lZCBpbnQgX192OwkJCQlcCi0JCV9fdiA9IFNNQ19pbncoaW9hZGRyLCBBRERSMF9SRUcpOwkJXAorCQlfX3YgPSBTTUNfaW53KGlvYWRkciwgQUREUjBfUkVHKGxwKSk7CQlcCiAJCWFkZHJbMF0gPSBfX3Y7IGFkZHJbMV0gPSBfX3YgPj4gODsJCVwKLQkJX192ID0gU01DX2ludyhpb2FkZHIsIEFERFIxX1JFRyk7CQlcCisJCV9fdiA9IFNNQ19pbncoaW9hZGRyLCBBRERSMV9SRUcobHApKTsJCVwKIAkJYWRkclsyXSA9IF9fdjsgYWRkclszXSA9IF9fdiA+PiA4OwkJXAotCQlfX3YgPSBTTUNfaW53KGlvYWRkciwgQUREUjJfUkVHKTsJCVwKKwkJX192ID0gU01DX2ludyhpb2FkZHIsIEFERFIyX1JFRyhscCkpOwkJXAogCQlhZGRyWzRdID0gX192OyBhZGRyWzVdID0gX192ID4+IDg7CQlcCiAJCWlmICgqKHUzMiAqKSgmYWRkclswXSkgPT0gMHhGRkZGRkZGRikgewkJXAogCQkJcmFuZG9tX2V0aGVyX2FkZHIoYWRkcik7CQlcCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zdW5obWUuYyBiL2RyaXZlcnMvbmV0L3N1bmhtZS5jCmluZGV4IGI0ZTdmMzAuLjFhYTQyNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3N1bmhtZS5jCisrKyBiL2RyaXZlcnMvbmV0L3N1bmhtZS5jCkBAIC0xMTEsNyArMTExLDcgQEAKIAlzdHJ1Y3QgaG1lX3R4X2xvZ2VudCAqdGxwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlzYXZlX2FuZF9jbGkoZmxhZ3MpOworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAl0bHAgPSAmdHhfbG9nW3R4bG9nX2N1cl9lbnRyeV07CiAJdGxwLT50c3RhbXAgPSAodW5zaWduZWQgaW50KWppZmZpZXM7CiAJdGxwLT50eF9uZXcgPSBocC0+dHhfbmV3OwpAQCAtMTE5LDcgKzExOSw3IEBACiAJdGxwLT5hY3Rpb24gPSBhOwogCXRscC0+c3RhdHVzID0gczsKIAl0eGxvZ19jdXJfZW50cnkgPSAodHhsb2dfY3VyX2VudHJ5ICsgMSkgJiAoVFhfTE9HX0xFTiAtIDEpOwotCXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIHN0YXRpYyBfX2lubGluZV9fIHZvaWQgdHhfZHVtcF9sb2codm9pZCkKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RjMzU4MTUuYyBiL2RyaXZlcnMvbmV0L3RjMzU4MTUuYwppbmRleCAxMGU0ZTg1Li5iMDdiOGNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90YzM1ODE1LmMKKysrIGIvZHJpdmVycy9uZXQvdGMzNTgxNS5jCkBAIC0xMzk0LDYgKzEzOTQsNyBAQAogCXRjMzU4MTVfY2hpcF9pbml0KGRldik7CiAJc3Bpbl91bmxvY2tfaXJxKCZscC0+bG9jayk7CiAKKwluZXRpZl9jYXJyaWVyX29mZihkZXYpOwogCS8qIHNjaGVkdWxlIGEgbGluayBzdGF0ZSBjaGVjayAqLwogCXBoeV9zdGFydChscC0+cGh5X2Rldik7CiAKQEAgLTE3MzUsNyArMTczNiw2IEBACiAJCQlza2IgPSBscC0+cnhfc2tic1tjdXJfYmRdLnNrYjsKIAkJCXByZWZldGNoKHNrYi0+ZGF0YSk7CiAJCQlscC0+cnhfc2tic1tjdXJfYmRdLnNrYiA9IE5VTEw7Ci0JCQlscC0+ZmJsX2NvdW50LS07CiAJCQlwY2lfdW5tYXBfc2luZ2xlKGxwLT5wY2lfZGV2LAogCQkJCQkgbHAtPnJ4X3NrYnNbY3VyX2JkXS5za2JfZG1hLAogCQkJCQkgUlhfQlVGX1NJWkUsIFBDSV9ETUFfRlJPTURFVklDRSk7CkBAIC0xNzkxLDYgKzE3OTEsNyBAQAogI2lmZGVmIFRDMzU4MTVfVVNFX1BBQ0tFREJVRkZFUgogCQkJd2hpbGUgKGxwLT5mYmxfY3VyaWQgIT0gaWQpCiAjZWxzZQorCQkJbHAtPmZibF9jb3VudC0tOwogCQkJd2hpbGUgKGxwLT5mYmxfY291bnQgPCBSWF9CVUZfTlVNKQogI2VuZGlmCiAJCQl7CkBAIC0yNDUzLDYgKzI0NTQsNyBAQAogCQlyZXR1cm4gMDsKIAlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBkZXYsIFBDSV9EMCk7CiAJdGMzNTgxNV9yZXN0YXJ0KGRldik7CisJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAlpZiAobHAtPnBoeV9kZXYpCiAJCXBoeV9zdGFydChscC0+cGh5X2Rldik7CiAJbmV0aWZfZGV2aWNlX2F0dGFjaChkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdGczLmMgYi9kcml2ZXJzL25ldC90ZzMuYwppbmRleCAwN2IzZjc3Li5jYzRiZGU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZzMuYworKysgYi9kcml2ZXJzL25ldC90ZzMuYwpAQCAtNjQsOCArNjQsOCBAQAogCiAjZGVmaW5lIERSVl9NT0RVTEVfTkFNRQkJInRnMyIKICNkZWZpbmUgUEZYIERSVl9NT0RVTEVfTkFNRQkiOiAiCi0jZGVmaW5lIERSVl9NT0RVTEVfVkVSU0lPTgkiMy45MiIKLSNkZWZpbmUgRFJWX01PRFVMRV9SRUxEQVRFCSJNYXkgMiwgMjAwOCIKKyNkZWZpbmUgRFJWX01PRFVMRV9WRVJTSU9OCSIzLjkyLjEiCisjZGVmaW5lIERSVl9NT0RVTEVfUkVMREFURQkiSnVuZSA5LCAyMDA4IgogCiAjZGVmaW5lIFRHM19ERUZfTUFDX01PREUJMAogI2RlZmluZSBURzNfREVGX1JYX01PREUJCTAKQEAgLTEyOTUsNiArMTI5NSwyMSBAQAogCQkJCSAgICAgR1JDX0xDTENUUkxfR1BJT19PVVRQVVQwIHwKIAkJCQkgICAgIEdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMSksCiAJCQkJICAgIDEwMCk7CisJCX0gZWxzZSBpZiAodHAtPnBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX1RJR09OM181NzYxKSB7CisJCQkvKiBUaGUgNTc2MSBub24tZSBkZXZpY2Ugc3dhcHMgR1BJTyAwIGFuZCBHUElPIDIuICovCisJCQl1MzIgZ3JjX2xvY2FsX2N0cmwgPSBHUkNfTENMQ1RSTF9HUElPX09FMCB8CisJCQkJCSAgICAgR1JDX0xDTENUUkxfR1BJT19PRTEgfAorCQkJCQkgICAgIEdSQ19MQ0xDVFJMX0dQSU9fT0UyIHwKKwkJCQkJICAgICBHUkNfTENMQ1RSTF9HUElPX09VVFBVVDAgfAorCQkJCQkgICAgIEdSQ19MQ0xDVFJMX0dQSU9fT1VUUFVUMSB8CisJCQkJCSAgICAgdHAtPmdyY19sb2NhbF9jdHJsOworCQkJdHczMl93YWl0X2YoR1JDX0xPQ0FMX0NUUkwsIGdyY19sb2NhbF9jdHJsLCAxMDApOworCisJCQlncmNfbG9jYWxfY3RybCB8PSBHUkNfTENMQ1RSTF9HUElPX09VVFBVVDI7CisJCQl0dzMyX3dhaXRfZihHUkNfTE9DQUxfQ1RSTCwgZ3JjX2xvY2FsX2N0cmwsIDEwMCk7CisKKwkJCWdyY19sb2NhbF9jdHJsICY9IH5HUkNfTENMQ1RSTF9HUElPX09VVFBVVDA7CisJCQl0dzMyX3dhaXRfZihHUkNfTE9DQUxfQ1RSTCwgZ3JjX2xvY2FsX2N0cmwsIDEwMCk7CiAJCX0gZWxzZSB7CiAJCQl1MzIgbm9fZ3BpbzI7CiAJCQl1MzIgZ3JjX2xvY2FsX2N0cmwgPSAwOwpAQCAtMzE2OCw4ICszMTgzLDcgQEAKIAllcnIgfD0gdGczX3JlYWRwaHkodHAsIE1JSV9CTUNSLCAmYm1jcik7CiAKIAlpZiAoKHRwLT5saW5rX2NvbmZpZy5hdXRvbmVnID09IEFVVE9ORUdfRU5BQkxFKSAmJiAhZm9yY2VfcmVzZXQgJiYKLQkgICAgKHRwLT50ZzNfZmxhZ3MyICYgVEczX0ZMRzJfUEFSQUxMRUxfREVURUNUKSAmJgotCSAgICAgdHAtPmxpbmtfY29uZmlnLmZsb3djdHJsID09IHRwLT5saW5rX2NvbmZpZy5hY3RpdmVfZmxvd2N0cmwpIHsKKwkgICAgKHRwLT50ZzNfZmxhZ3MyICYgVEczX0ZMRzJfUEFSQUxMRUxfREVURUNUKSkgewogCQkvKiBkbyBub3RoaW5nLCBqdXN0IGNoZWNrIGZvciBsaW5rIHVwIGF0IHRoZSBlbmQgKi8KIAl9IGVsc2UgaWYgKHRwLT5saW5rX2NvbmZpZy5hdXRvbmVnID09IEFVVE9ORUdfRU5BQkxFKSB7CiAJCXUzMiBhZHYsIG5ld19hZHY7CkBAIC04NTk5LDcgKzg2MTMsNyBAQAogCQkgICAoY21kLT5zcGVlZCA9PSBTUEVFRF8xMDAwKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJZWxzZSBpZiAoKGNtZC0+c3BlZWQgPT0gU1BFRURfMTAwMCkgJiYKLQkJICh0cC0+dGczX2ZsYWdzMiAmIFRHM19GTEFHXzEwXzEwMF9PTkxZKSkKKwkJICh0cC0+dGczX2ZsYWdzICYgVEczX0ZMQUdfMTBfMTAwX09OTFkpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXRnM19mdWxsX2xvY2sodHAsIDApOwpAQCAtMTE3NjgsNiArMTE3ODIsMTUgQEAKIAlpZiAoR0VUX0FTSUNfUkVWKHRwLT5wY2lfY2hpcF9yZXZfaWQpID09IEFTSUNfUkVWXzU3NTUpCiAJCXRwLT5ncmNfbG9jYWxfY3RybCB8PSBHUkNfTENMQ1RSTF9HUElPX1VBUlRfU0VMOwogCisJaWYgKHRwLT5wZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9USUdPTjNfNTc2MSkgeworCQkvKiBUdXJuIG9mZiB0aGUgZGVidWcgVUFSVC4gKi8KKwkJdHAtPmdyY19sb2NhbF9jdHJsIHw9IEdSQ19MQ0xDVFJMX0dQSU9fVUFSVF9TRUw7CisJCWlmICh0cC0+dGczX2ZsYWdzMiAmIFRHM19GTEcyX0lTX05JQykKKwkJCS8qIEtlZXAgVk1haW4gcG93ZXIuICovCisJCQl0cC0+Z3JjX2xvY2FsX2N0cmwgfD0gR1JDX0xDTENUUkxfR1BJT19PRTAgfAorCQkJCQkgICAgICBHUkNfTENMQ1RSTF9HUElPX09VVFBVVDA7CisJfQorCiAJLyogRm9yY2UgdGhlIGNoaXAgaW50byBEMC4gKi8KIAllcnIgPSB0ZzNfc2V0X3Bvd2VyX3N0YXRlKHRwLCBQQ0lfRDApOwogCWlmIChlcnIpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy8zYzM1OS5oIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nLzNjMzU5LmgKaW5kZXggYjg4MGNiYS4uNzRjZjhlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nLzNjMzU5LmgKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nLzNjMzU5LmgKQEAgLTI2NCw3ICsyNjQsNyBAQAogCXUxNiBhc2I7CiAKIAl1OCBfX2lvbWVtICp4bF9tbWlvOwotCWNoYXIgKnhsX2NhcmRfbmFtZTsKKwljb25zdCBjaGFyICp4bF9jYXJkX25hbWU7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgOyAKIAkKIAlzcGlubG9ja190IHhsX2xvY2sgOyAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9vbHltcGljLmggYi9kcml2ZXJzL25ldC90b2tlbnJpbmcvb2x5bXBpYy5oCmluZGV4IGM5MTk1NjMuLjEwZmJiYTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9vbHltcGljLmgKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL29seW1waWMuaApAQCAtMjU0LDcgKzI1NCw3IEBACiAJdTggX19pb21lbSAqb2x5bXBpY19tbWlvOwogCXU4IF9faW9tZW0gKm9seW1waWNfbGFwOwogCXN0cnVjdCBwY2lfZGV2ICpwZGV2IDsgCi0JY2hhciAqb2x5bXBpY19jYXJkX25hbWUgOyAKKwljb25zdCBjaGFyICpvbHltcGljX2NhcmRfbmFtZTsKIAogCXNwaW5sb2NrX3Qgb2x5bXBpY19sb2NrIDsgCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0ci5jIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKaW5kZXggNWYxYzUwNy4uZmE3M2U2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KICNpbmNsdWRlIDxsaW51eC90cmRldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAKICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC01OSw3ICs2MCw2IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgInNtY3RyLmgiICAgICAgICAgICAgICAgLyogT3VyIFN0dWZmICovCi0jaW5jbHVkZSAic21jdHJfZmlybXdhcmUuaCIgICAgICAvKiBTTUMgYWRhcHRlciBmaXJtd2FyZSAqLwogCiBzdGF0aWMgY2hhciB2ZXJzaW9uW10gX19pbml0ZGF0YSA9IEtFUk5fSU5GTyAic21jdHIuYzogdjEuNCA3LzEyLzAwIGJ5IGpzY2hsc3RAc2FtYmEub3JnXG4iOwogc3RhdGljIGNvbnN0IGNoYXIgY2FyZG5hbWVbXSA9ICJzbWN0ciI7CkBAIC0xMDMsNyArMTAzLDggQEAKIHN0YXRpYyBpbnQgc21jdHJfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiAKIC8qIEQgKi8KLXN0YXRpYyBpbnQgc21jdHJfZGVjb2RlX2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOworc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkgY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdyk7CiBzdGF0aWMgaW50IHNtY3RyX2Rpc2FibGVfMTZiaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CiBzdGF0aWMgaW50IHNtY3RyX2Rpc2FibGVfYWRhcHRlcl9jdHJsX3N0b3JlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpOwogc3RhdGljIGludCBzbWN0cl9kaXNhYmxlX2JpY19pbnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CkBAIC03NDgsNyArNzQ5LDggQEAKICAgICAgICAgcmV0dXJuICgwKTsKIH0KIAotc3RhdGljIGludCBzbWN0cl9kZWNvZGVfZmlybXdhcmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgc21jdHJfZGVjb2RlX2Zpcm13YXJlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCisJCQkJIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCiB7CiAgICAgICAgIHN0cnVjdCBuZXRfbG9jYWwgKnRwID0gbmV0ZGV2X3ByaXYoZGV2KTsKICAgICAgICAgc2hvcnQgYml0ID0gMHg4MCwgc2hpZnQgPSAxMjsKQEAgLTc2MiwxMCArNzY0LDEwIEBACiAgICAgICAgIGlmKHNtY3RyX2RlYnVnID4gMTApCiAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBzbWN0cl9kZWNvZGVfZmlybXdhcmVcbiIsIGRldi0+bmFtZSk7CiAKLSAgICAgICAgd2VpZ2h0ICA9ICoobG9uZyAqKSh0cC0+cHRyX3Vjb2RlICsgV0VJR0hUX09GRlNFVCk7Ci0gICAgICAgIHRzaXplICAgPSAqKF9fdTggKikodHAtPnB0cl91Y29kZSArIFRSRUVfU0laRV9PRkZTRVQpOwotICAgICAgICB0cmVlICAgID0gKERFQ09ERV9UUkVFX05PREUgKikodHAtPnB0cl91Y29kZSArIFRSRUVfT0ZGU0VUKTsKLSAgICAgICAgdWNvZGUgICA9IChfX3U4ICopKHRwLT5wdHJfdWNvZGUgKyBUUkVFX09GRlNFVAorICAgICAgICB3ZWlnaHQgID0gKihsb25nICopKGZ3LT5kYXRhICsgV0VJR0hUX09GRlNFVCk7CisgICAgICAgIHRzaXplICAgPSAqKF9fdTggKikoZnctPmRhdGEgKyBUUkVFX1NJWkVfT0ZGU0VUKTsKKyAgICAgICAgdHJlZSAgICA9IChERUNPREVfVFJFRV9OT0RFICopKGZ3LT5kYXRhICsgVFJFRV9PRkZTRVQpOworICAgICAgICB1Y29kZSAgID0gKF9fdTggKikoZnctPmRhdGEgKyBUUkVFX09GRlNFVAogICAgICAgICAgICAgICAgICAgICAgICAgKyAodHNpemUgKiBzaXplb2YoREVDT0RFX1RSRUVfTk9ERSkpKTsKICAgICAgICAgbWVtICAgICA9IChfX3UxNiAqKSh0cC0+cmFtX2FjY2Vzcyk7CiAKQEAgLTI5NjMsMzQgKzI5NjUsNDQgQEAKIHN0YXRpYyBpbnQgc21jdHJfbG9hZF9maXJtd2FyZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogICAgICAgICBzdHJ1Y3QgbmV0X2xvY2FsICp0cCA9IG5ldGRldl9wcml2KGRldik7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKICAgICAgICAgX191MTYgaSwgY2hlY2tzdW0gPSAwOwogICAgICAgICBpbnQgZXJyID0gMDsKIAogICAgICAgICBpZihzbWN0cl9kZWJ1ZyA+IDEwKQogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogc21jdHJfbG9hZF9maXJtd2FyZVxuIiwgZGV2LT5uYW1lKTsKIAotICAgICAgICB0cC0+cHRyX3Vjb2RlICAgICAgICAgICA9IHNtY3RyX2NvZGU7CisJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZ3LCAidHJfc21jdHIuYmluIiwgJmRldi0+ZGV2KSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBmaXJtd2FyZSBub3QgZm91bmRcbiIsIGRldi0+bmFtZSk7CisJCXJldHVybiAoVUNPREVfTk9UX1BSRVNFTlQpOworCX0KKwogICAgICAgICB0cC0+bnVtX29mX3R4X2J1ZmZzICAgICA9IDQ7CiAgICAgICAgIHRwLT5tb2RlX2JpdHMgICAgICAgICAgfD0gVU1BQzsKICAgICAgICAgdHAtPnJlY2VpdmVfbWFzayAgICAgICAgPSAwOwogICAgICAgICB0cC0+bWF4X3BhY2tldF9zaXplICAgICA9IDQxNzc7CiAKICAgICAgICAgLyogQ2FuIG9ubHkgdXBsb2FkIHRoZSBmaXJtd2FyZSBvbmNlIHBlciBhZGFwdGVyIHJlc2V0LiAqLwotICAgICAgICBpZih0cC0+bWljcm9jb2RlX3ZlcnNpb24gIT0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX1BSRVNFTlQpOworICAgICAgICBpZiAodHAtPm1pY3JvY29kZV92ZXJzaW9uICE9IDApIHsKKwkJZXJyID0gKFVDT0RFX1BSRVNFTlQpOworCQlnb3RvIG91dDsKKwl9CiAKICAgICAgICAgLyogVmVyaWZ5IHRoZSBmaXJtd2FyZSBleGlzdHMgYW5kIGlzIHRoZXJlIGluIHRoZSByaWdodCBhbW91bnQuICovCi0gICAgICAgIGlmICghdHAtPnB0cl91Y29kZQotICAgICAgICAgICAgICAgIHx8ICgqKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkgPCBVQ09ERV9WRVJTSU9OKSkKKyAgICAgICAgaWYgKCFmdy0+ZGF0YQorICAgICAgICAgICAgICAgIHx8ICgqKGZ3LT5kYXRhICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpIDwgVUNPREVfVkVSU0lPTikpCiAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX05PVF9QUkVTRU5UKTsKKyAgICAgICAgICAgICAgICBlcnIgPSAoVUNPREVfTk9UX1BSRVNFTlQpOworCQlnb3RvIG91dDsKICAgICAgICAgfQogCiAgICAgICAgIC8qIFVDT0RFX1NJWkUgaXMgbm90IGluY2x1ZGVkIGluIENoZWNrc3VtLiAqLwotICAgICAgICBmb3IoaSA9IDA7IGkgPCAqKChfX3UxNiAqKSh0cC0+cHRyX3Vjb2RlICsgVUNPREVfU0laRV9PRkZTRVQpKTsgaSArPSAyKQotICAgICAgICAgICAgICAgIGNoZWNrc3VtICs9ICooKF9fdTE2ICopKHRwLT5wdHJfdWNvZGUgKyAyICsgaSkpOwotICAgICAgICBpZihjaGVja3N1bSkKLSAgICAgICAgICAgICAgICByZXR1cm4gKFVDT0RFX05PVF9QUkVTRU5UKTsKKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgKigoX191MTYgKikoZnctPmRhdGEgKyBVQ09ERV9TSVpFX09GRlNFVCkpOyBpICs9IDIpCisgICAgICAgICAgICAgICAgY2hlY2tzdW0gKz0gKigoX191MTYgKikoZnctPmRhdGEgKyAyICsgaSkpOworICAgICAgICBpZiAoY2hlY2tzdW0pIHsKKwkJZXJyID0gKFVDT0RFX05PVF9QUkVTRU5UKTsKKwkJZ290byBvdXQ7CisJfQogCiAgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSBhIHZhbGlkIGZpcm13YXJlIGltYWdlLCBsZXRzIGtpY2sgaXQgb24gdXAuICovCiAgICAgICAgIHNtY3RyX2VuYWJsZV9hZGFwdGVyX3JhbShkZXYpOwpAQCAtMjk5OCw3ICszMDEwLDcgQEAKICAgICAgICAgc21jdHJfc2V0X3BhZ2UoZGV2LCAoX191OCAqKXRwLT5yYW1fYWNjZXNzKTsKIAogICAgICAgICBpZigoc21jdHJfY2hlY2tzdW1fZmlybXdhcmUoZGV2KSkKLSAgICAgICAgICAgICAgICB8fCAoKih0cC0+cHRyX3Vjb2RlICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpCisgICAgICAgICAgICAgICAgfHwgKCooZnctPmRhdGEgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCkKICAgICAgICAgICAgICAgICA+IHRwLT5taWNyb2NvZGVfdmVyc2lvbikpCiAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzbWN0cl9lbmFibGVfYWRhcHRlcl9jdHJsX3N0b3JlKGRldik7CkBAIC0zMDA3LDkgKzMwMTksOSBAQAogICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IENTX1JBTV9TSVpFOyBpICs9IDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAqKChfX3UxNiAqKSh0cC0+cmFtX2FjY2VzcyArIGkpKSA9IDA7CiAKLSAgICAgICAgICAgICAgICBzbWN0cl9kZWNvZGVfZmlybXdhcmUoZGV2KTsKKyAgICAgICAgICAgICAgICBzbWN0cl9kZWNvZGVfZmlybXdhcmUoZGV2LCBmdyk7CiAKLSAgICAgICAgICAgICAgICB0cC0+bWljcm9jb2RlX3ZlcnNpb24gPSAqKHRwLT5wdHJfdWNvZGUgKyBVQ09ERV9WRVJTSU9OX09GRlNFVCk7ICAgICAgICAgICAgICAgICooKF9fdTE2ICopKHRwLT5yYW1fYWNjZXNzICsgQ1NfUkFNX1ZFUlNJT05fT0ZGU0VUKSkKKyAgICAgICAgICAgICAgICB0cC0+bWljcm9jb2RlX3ZlcnNpb24gPSAqKGZ3LT5kYXRhICsgVUNPREVfVkVSU0lPTl9PRkZTRVQpOyAgICAgICAgICAgICAgICAqKChfX3UxNiAqKSh0cC0+cmFtX2FjY2VzcyArIENTX1JBTV9WRVJTSU9OX09GRlNFVCkpCiAgICAgICAgICAgICAgICAgICAgICAgICA9ICh0cC0+bWljcm9jb2RlX3ZlcnNpb24gPDwgOCk7CiAgICAgICAgICAgICAgICAgKigoX191MTYgKikodHAtPnJhbV9hY2Nlc3MgKyBDU19SQU1fQ0hFQ0tTVU1fT0ZGU0VUKSkKICAgICAgICAgICAgICAgICAgICAgICAgID0gfih0cC0+bWljcm9jb2RlX3ZlcnNpb24gPDwgOCkgKyAxOwpAQCAtMzAyMyw3ICszMDM1LDggQEAKICAgICAgICAgICAgICAgICBlcnIgPSBVQ09ERV9QUkVTRU5UOwogCiAgICAgICAgIHNtY3RyX2Rpc2FibGVfMTZiaXQoZGV2KTsKLQorIG91dDoKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKICAgICAgICAgcmV0dXJuIChlcnIpOwogfQogCkBAIC01NjUxLDYgKzU2NjQsNyBAQAogc3RhdGljIGludCBpcnFbU01DVFJfTUFYX0FEQVBURVJTXTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJ0cl9zbWN0ci5iaW4iKTsKIAogbW9kdWxlX3BhcmFtX2FycmF5KGlvLCBpbnQsIE5VTEwsIDApOwogbW9kdWxlX3BhcmFtX2FycmF5KGlycSwgaW50LCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0ci5oIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKaW5kZXggODhkZmEyZS4uNTJkZjdkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKKysrIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyLmgKQEAgLTEwNDIsOCArMTA0Miw2IEBACiAgICAgICAgIF9fdTE2ICAgICAgICAgICAgZnVuY3Rpb25hbF9hZGRyZXNzWzJdOwogICAgICAgICBfX3UxNiAgICAgICAgICAgIGJpdHdpc2VfZ3JvdXBfYWRkcmVzc1syXTsKIAotCWNvbnN0IF9fdTggICAgICAgKnB0cl91Y29kZTsKLQogCV9fdTgJCWNsZWFudXA7CiAKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkIFNlbmRTa2JRdWV1ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Rva2VucmluZy9zbWN0cl9maXJtd2FyZS5oIGIvZHJpdmVycy9uZXQvdG9rZW5yaW5nL3NtY3RyX2Zpcm13YXJlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI5MmU1MGRkZi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL25ldC90b2tlbnJpbmcvc21jdHJfZmlybXdhcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDk3OCArMCwwIEBACi0vKgotICogVGhlIGZpcm13YXJlIHRoaXMgZHJpdmVyIGRvd25sb2FkcyBpbnRvIHRoZSB0b2tlbnJpbmcgY2FyZCBpcyBhCi0gKiBzZXBhcmF0ZSBwcm9ncmFtIGFuZCBpcyBub3QgR1BMJ2Qgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoZSBMaW51eAotICogc2lkZSBkcml2ZXIgYW5kIHRoZSByb3V0aW5lIHRoYXQgbG9hZHMgdGhpcyBkYXRhIGludG8gdGhlIGNhcmQgYXJlLgotICoKLSAqIFRoaXMgZmlybXdhcmUgaXMgbGljZW5zZWQgdG8geW91IHN0cmljdGx5IGZvciB1c2UgaW4gY29uanVuY3Rpb24KLSAqIHdpdGggdGhlIHVzZSBvZiBTTUMgVG9rZW5SaW5nIGFkYXB0ZXJzLiBUaGVyZSBpcyBubyB3YXJhbnR5Ci0gKiBleHByZXNzZWQgb3IgaW1wbGllZCBhYm91dCBpdHMgZml0bmVzcyBmb3IgYW55IHB1cnBvc2UuCi0gKi8KLQotLyogc21jdHJfZmlybXdhcmUuaDogU01DIFRva2VuUmluZyBkcml2ZXIgZmlybXdhcmUgZHVtcCBmb3IgTGludXguCi0gKgotICogTm90ZXM6Ci0gKiAgLSBUaGlzIGlzIGFuIDhLIGJpbmFyeSBpbWFnZS4gKE1DVC5CSU4gdjYuM0MxIDAzLzAxLzk1KQotICoKLSAqIEF1dGhvcnM6Ci0gKiAgLSBKYXkgU2NodWxpc3QgPGpzY2hsc3RAc2FtYmEub3JnPgotICovCi0KLQotI2lmIGRlZmluZWQoQ09ORklHX1NNQ1RSKSB8fCBkZWZpbmVkKENPTkZJR19TTUNUUl9NT0RVTEUpCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHNtY3RyX2NvZGVbXSA9IHsKLQkweDBCQywgMHgwMUQsIDB4MDEyLCAweDAzQiwgMHgwNjMsIDB4MEI0LCAweDBFOSwgMHgwMDAsCi0JMHgwMDAsIDB4MDFGLCAweDAwMCwgMHgwMDEsIDB4MDAxLCAweDAwMCwgMHgwMDIsIDB4MDA1LAotCTB4MDAxLCAweDAwMCwgMHgwMDYsIDB4MDAzLCAweDAwMSwgMHgwMDAsIDB4MDA0LCAweDAwOSwKLQkweDAwMSwgMHgwMDAsIDB4MDBBLCAweDAwNywgMHgwMDEsIDB4MDAwLCAweDAwOCwgMHgwMEIsCi0JMHgwMDEsIDB4MDAwLCAweDAwQywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDBGLAotCTB4MDAxLCAweDAwMCwgMHgwMTAsIDB4MDBELCAweDAwMSwgMHgwMDAsIDB4MDBFLCAweDAxMywKLQkweDAwMSwgMHgwMDAsIDB4MDE0LCAweDAxMSwgMHgwMDEsIDB4MDAwLCAweDAxMiwgMHgwMDAsCi0JMHgwMDAsIDB4MDA1LCAweDAwMCwgMHgwMTUsIDB4MDAxLCAweDAwMCwgMHgwMTYsIDB4MDE5LAotCTB4MDAxLCAweDAwMCwgMHgwMUEsIDB4MDE3LCAweDAwMSwgMHgwMDAsIDB4MDE4LCAweDAwMCwKLQkweDAwMCwgMHgwMEUsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDAxLCAweDAwMCwgMHgwMDAsCi0JMHgwMDAsIDB4MDA0LCAweDAwMCwgMHgwMUIsIDB4MDAxLCAweDAwMCwgMHgwMUMsIDB4MDAwLAotCTB4MDAwLCAweDAwNywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMEYsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMEIsIDB4MDAwLCAweDAxRCwgMHgwMDEsIDB4MDAwLCAweDAxRSwgMHgwMDAsCi0JMHgwMDAsIDB4MDA4LCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwMiwgMHgwMDAsIDB4MDAwLAotCTB4MDAwLCAweDAwQywgMHgwMDAsIDB4MDAwLCAweDAwMCwgMHgwMDYsIDB4MDAwLCAweDAwMCwKLQkweDAwMCwgMHgwMEQsIDB4MDAwLCAweDAwMCwgMHgwMDAsIDB4MDAzLCAweDAwMCwgMHgwMDAsCi0JMHgwMDAsIDB4MDBBLCAweDAwMCwgMHgwMDAsIDB4MDAwLCAweDAwOSwgMHgwMDAsIDB4MDA0LAotCTB4MDc4LCAweDBDNiwgMHgwQkMsIDB4MDAxLCAweDA5NCwgMHgwMDQsIDB4MDkzLCAweDA4MCwKLQkweDBDOCwgMHgwNDAsIDB4MDYyLCAweDBFOSwgMHgwREEsIDB4MDFDLCAweDAyQywgMHgwMTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU4LAotCTB4MDBCLCAweDBFOSwgMHgwRTUsIDB4MEQ1LCAweDA5NSwgMHgwQzEsIDB4MDlELCAweDA3NywKLQkweDBDRSwgMHgwQkIsIDB4MEEwLCAweDA2RSwgMHgwMUMsIDB4MDA1LCAweDBGNiwgMHgwNzcsCi0JMHgwQzYsIDB4MDAyLCAweDBGQSwgMHgwOTYsIDB4MDcwLCAweDBFOCwgMHgwMUQsIDB4MEMwLAotCTB4MDE3LCAweDAwRSwgMHgwMDIsIDB4MEZBLCAweDA1OCwgMHgwN0QsIDB4MEMwLCAweDA1RiwKLQkweDA3MiwgMHgwQ0UsIDB4MEVDLCAweDBBNCwgMHgwQzMsIDB4MDg0LCAweDA5MCwgMHgwN0EsCi0JMHgwMzAsIDB4MENELCAweDA4RCwgMHgwNzksIDB4MDE5LCAweDBFNywgMHgwNkMsIDB4MDI0LAotCTB4MDI3LCAweDA5QywgMHgwMDgsIDB4MDM5LCAweDAwNywgMHgwMzgsIDB4MEE4LCAweDA0QSwKLQkweDA0QywgMHgwRUEsIDB4MDRELCAweDA5OCwgMHgwOUIsIDB4MDI0LCAweDA0QywgMHgwQzAsCi0JMHgwMjYsIDB4MEQzLCAweDBFNywgMHgwNTQsIDB4MDVBLCAweDA0RCwgMHgwRjIsIDB4MDRDLAotCTB4MDBDLCAweDAxMywgMHgwMjMsIDB4MDQ5LCAweDA5MCwgMHgwMzIsIDB4MDZFLCAweDBBNCwKLQkweDBERiwgMHgwOTMsIDB4MDcxLCAweDAxMywgMHgwNzcsIDB4MDI2LCAweDBFMSwgMHgwMjYsCi0JMHgwRjgsIDB4MDI2LCAweDAwQywgMHgwNEMsIDB4MDEyLCAweDAyNiwgMHgwMDgsIDB4MDA5LAotCTB4MDgyLCAweDA4MiwgMHgwNjAsIDB4MEE5LCAweDAzMCwgMHgwNzksIDB4MDM2LCAweDBCMCwKLQkweDBCMiwgMHgwQTgsIDB4MEE3LCAweDA3MiwgMHgwNjQsIDB4MDhGLCAweDA5QiwgMHgwMzMsCi0JMHgwMzMsIDB4MEY5LCAweDBCOCwgMHgwMzksIDB4MEQ1LCAweDAxMSwgMHgwNzMsIDB4MEFBLAotCTB4MDc1LCAweDAyNiwgMHgwNUQsIDB4MDI2LCAweDA1MSwgMHgwOTMsIDB4MDJBLCAweDA0OSwKLQkweDA5NCwgMHgwQzksIDB4MDk1LCAweDA4OSwgMHgwQkMsIDB4MDRELCAweDBDOCwgMHgwOUIsCi0JMHgwODAsIDB4MDlCLCAweDBBMCwgMHgwOTksIDB4MDA2LCAweDA0QywgMHgwODYsIDB4MDI2LAotCTB4MDU4LCAweDA5QiwgMHgwQTQsIDB4MDlCLCAweDA5OSwgMHgwMzcsIDB4MDYyLCAweDA2QywKLQkweDA2NywgMHgwOUIsIDB4MDMzLCAweDAzMCwgMHgwQkYsIDB4MDM2LCAweDA2NiwgMHgwNjEsCi0JMHgwQkYsIDB4MDM2LCAweDBFQywgMHgwQzUsIDB4MEJELCAweDA2NiwgMHgwODIsIDB4MDVBLAotCTB4MDUwLCAweDAzMSwgMHgwRDUsIDB4MDlELCAweDA5OCwgMHgwMTgsIDB4MDI5LCAweDAzQywKLQkweDA5OCwgMHgwODYsIDB4MDRDLCAweDAxNywgMHgwMjYsIDB4MDNFLCAweDAyQywgMHgwQjgsCi0JMHgwNjksIDB4MDNCLCAweDA0OSwgMHgwMkUsIDB4MEI0LCAweDAwOCwgMHgwNDMsIDB4MDFBLAotCTB4MEE0LCAweDBGOSwgMHgwQjMsIDB4MDUxLCAweDBGMSwgMHgwMTAsIDB4MEYzLCAweDA0MywKLQkweDBDRCwgMHgwMDgsIDB4MDZGLCAweDA2MywgMHgwNzksIDB4MEIzLCAweDAzMywgMHgwMEUsCi0JMHgwMTMsIDB4MDk4LCAweDA0OSwgMHgwOTgsIDB4MDA0LCAweDBEQSwgMHgwN0MsIDB4MEUwLAotCTB4MDUyLCAweDA3OSwgMHgwMzEsIDB4MDBDLCAweDA5OCwgMHgwMkUsIDB4MDRELCAweDBBQywKLQkweDAyQywgMHgwODQsIDB4MDE0LCAweDBFRSwgMHgwNEMsIDB4MEZFLCAweDA2NywgMHgwNUUsCi0JMHgwRTQsIDB4MDlBLCAweDA3NSwgMHgwMjksIDB4MEQ3LCAweDBBOSwgMHgwMzUsIDB4MDNBLAotCTB4MDk0LCAweDA1QiwgMHgwRDUsIDB4MDlCLCAweDA1OCwgMHgwQjQsIDB4MEFGLCAweDA3NSwKLQkweDA2NiwgMHgwQUYsIDB4MDE0LCAweDBBOSwgMHgwRUYsIDB4MDQwLCAweDA5NSwgMHgwMjUsCi0JMHgwMDgsIDB4MEI5LCAweDBBRCwgMHgwNDIsIDB4MEZDLCAweDBEOCwgMHgwRDksIDB4MDhDLAotCTB4MDMzLCAweDAwRSwgMHgwMTMsIDB4MDk4LCAweDA2NiwgMHgwMUUsIDB4MDQ1LCAweDBBQywKLQkweDBCMCwgMHgwMEMsIDB4MDQyLCAweDBEMywgMHgwQ0MsIDB4MEE2LCAweDAxMiwgMHgwNjIsCi0JMHgwREUsIDB4MEI0LCAweDBCMSwgMHgwODAsIDB4MDQ5LCAweDA3RCwgMHgwQTIsIDB4MERFLAotCTB4MEI0LCAweDAxOCwgMHgwQzAsIDB4MDI0LCAweDA4NCwgMHgwRTYsIDB4MDU0LCAweDBGNSwKLQkweDA4MywgMHgwNDYsIDB4MDAxLCAweDA2OCwgMHgwMUEsIDB4MDYzLCAweDAwQywgMHgwQzYsCi0JMHgwMTIsIDB4MDY0LCAweDBGQSwgMHgwNEMsIDB4MDM1LCAweDAxQywgMHgwMkMsIDB4MDBFLAotCTB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwKLQkweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFELCAweDBENywgMHgwMDIsCi0JMHgwNzAsIDB4MEUwLCAweDA0QywgMHgwRjMsIDB4MEExLCAweDBDMSwgMHgwRDUsIDB4MEMwLAotCTB4MDNDLCAweDBCOSwgMHgwNjksIDB4MDM5LCAweDA2MCwgMHgwNEUsIDB4MDU4LCAweDA3NywKLQkweDAwMiwgMHgwNjcsIDB4MDkzLCAweDAzQywgMHgwOTksIDB4MEU0LCAweDBDRiwgMHgwMzgsCi0JMHgwMUMsIDB4MDk3LCAweDAyRSwgMHgwNDAsIDB4MDFCLCAweDA5MCwgMHgwMzEsIDB4MDQ2LAotCTB4MEEzLCAweDA1RSwgMHgwMEUsIDB4MDg4LCAweDAzNCwgMHgwNkEsIDB4MDM1LCAweDBFMCwKLQkweDBFOCwgMHgwQUEsIDB4MDM1LCAweDAxQSwgMHgwQTksIDB4MEY1LCAweDAxNSwgMHgwNDYsCi0JMHgwQTMsIDB4MEVBLCAweDA3RCwgMHgwNEEsIDB4MEEzLCAweDA1MSwgMHgwQUEsIDB4MDlGLAotCTB4MDcwLCAweDA1NCwgMHgwQTYsIDB4MDU3LCAweDAyRSwgMHgwQjQsIDB4MENELCAweDBDOCwKLQkweDBBMywgMHgwMEMsIDB4MEMxLCAweDBEQSwgMHgwQzYsIDB4MEUxLCAweDBDQiwgMHgwN0EsCi0JMHgwRDQsIDB4MDFDLCAweDA2OCwgMHgwRkYsIDB4MENGLCAweDA1NSwgMHgwQTgsIDB4MEMwLAotCTB4MDJELCAweDA4NSwgMHgwMTEsIDB4MDE3LCAweDA0NCwgMHgwMkEsIDB4MDMwLCAweDAwQiwKLQkweDA0QSwgMHgwODgsIDB4MEMyLCAweDA0RCwgMHgwQjUsIDB4MDIwLCAweDBENSwgMHgwMjYsCi0JMHgwMDEsIDB4MDY5LCAweDA1MSwgMHgwNjksIDB4MDUyLCAweDAxOSwgMHgwNTIsIDB4MDYwLAotCTB4MDE2LCAweDA5NSwgMHgwMTYsIDB4MDgyLCAweDA5NiwgMHgwNTQsIDB4MDk4LCAweDAwNSwKLQkweDBBNSwgMHgwNDUsIDB4MEYzLCAweDBERCwgMHgwNkEsIDB4MEY5LCAweDAyOCwgMHgwMTgsCi0JMHgwRUYsIDB4MDAwLCAweDAzMCwgMHgwMzAsIDB4MDUxLCAweDA0RSwgMHgwNDQsIDB4MDVELAotCTB4MDEyLCAweDBEMSwgMHgwNDMsIDB4MEU2LCAweDAxMiwgMHgwNkYsIDB4MDlFLCAweDBCQSwKLQkweDBDQywgMHgwREYsIDB4MDI1LCAweDAwMywgMHgwMUQsIDB4MEUwLCAweDAwNiwgMHgwMDYsCi0JMHgwMEEsIDB4MDMwLCAweDBDQywgMHgwQTksIDB4MEVCLCAweDAyRCwgMHgwMDAsIDB4MDg2LAotCTB4MEE2LCAweDAxMiwgMHgwNjUsIDB4MDRGLCAweDA1NiwgMHgwRDYsIDB4MDY1LCAweDA0OSwKLQkweDA1RiwgMHgwM0QsIDB4MEU4LCAweDAzNywgMHgwQzksIDB4MDQwLCAweDBDNywgMHgwNzgsCi0JMHgwMDEsIDB4MDgxLCAweDA4MiwgMHgwOEMsIDB4MDMzLCAweDAxOCwgMHgwNDksIDB4MDgwLAotCTB4MEFFLCAweDA0MCwgMHgwQzUsIDB4MDE4LCAweDAwNSwgMHgwOUMsIDB4MDZELCAweDAxOCwKLQkweDA2NiwgMHgwMEUsIDB4MEYzLCAweDBBMCwgMHgwQzYsIDB4MDEyLCAweDA2MiwgMHgwREUsCi0JMHgwRjUsIDB4MDA0LCAweDBCNCwgMHgwQUMsIDB4MDZCLCAweDBDNiwgMHgwMTksIDB4MDkxLAotCTB4MDczLCAweDAwNSwgMHgwNDgsIDB4MDJFLCAweDA3MiwgMHgwOTQsIDB4MDgwLCAweDA3MywKLQkweDBBMSwgMHgwQzgsIDB4MDQ3LCAweDAzNiwgMHgwNjYsIDB4MDY0LCAweDAyRiwgMHgwMzYsCi0JMHgwNjYsIDB4MDY0LCAweDAwNywgMHgwOTksIDB4MDAyLCAweDA5MSwgMHgwOEUsIDB4MDcyLAotCTB4MEQxLCAweDAwRiwgMHgwOUQsIDB4MDA2LCAweDAzMSwgMHgwNzMsIDB4MEEwLCAweDBDMywKLQkweDA1MSwgMHgwNkEsIDB4MDFBLCAweDAyMCwgMHgwQkYsIDB4MDNBLCAweDAwQywgMHgwMkMsCi0JMHgwNzMsIDB4MDg3LCAweDA0MywgMHgwNUUsIDB4MDYwLCAweDAwMiwgMHgwMjMsIDB4MEZDLAotCTB4MEUwLCAweDBENiwgMHgwMzUsIDB4MEVGLCAweDA5RSwgMHgwRjUsIDB4MEVGLCAweDA5MiwKLQkweDA4MSwgMHgwOEUsIDB4MEYwLCAweDAwMywgMHgwMDMsIDB4MDA1LCAweDAxOCwgMHgwNjYsCi0JMHgwNDUsIDB4MENDLCAweDAwQiwgMHgwNDgsIDB4MDJFLCAweDA3MCwgMHgwMEEsIDB4MDQwLAotCTB4MDM5LCAweDBEMCwgMHgwRTQsIDB4MDIzLCAweDA5QiwgMHgwMzMsIDB4MDMyLCAweDAxNywKLQkweDA5QiwgMHgwMzMsIDB4MDMyLCAweDAwMywgMHgwQ0MsIDB4MDg1LCAweDA0OCwgMHgwQzcsCi0JMHgwMzgsIDB4MDE0LCAweDBBNSwgMHgwQ0UsIDB4MDI5LCAweDA3RSwgMHgwRDIsIDB4MDgwLAotCTB4MEExLCAweDBBOCwgMHgwQjQsIDB4MDQ4LCAweDA4OCwgMHgwMkYsIDB4MENFLCAweDA4MywKLQkweDAwQiwgMHgwMUMsIDB4MEUxLCAweDBEMCwgMHgwRDcsIDB4MDk4LCAweDAwNCwgMHgwODgsCi0JMHgwODcsIDB4MENFLCAweDA5NiwgMHgwMzEsIDB4MDczLCAweDBBNSwgMHgwOEYsIDB4MEYzLAotCTB4MDgzLCAweDA1OCwgMHgwRDcsIDB4MEJFLCAweDA3QiwgMHgwODIsIDB4MEFGLCAweDA5MiwKLQkweDA4MSwgMHgwOEUsIDB4MEYwLCAweDAwMywgMHgwMDMsIDB4MDA1LCAweDAxOCwgMHgwNjYsCi0JMHgwNDUsIDB4MENDLCAweDAxNSwgMHgwMjAsIDB4MEI5LCAweDBDOCwgMHgwMjksIDB4MDAwLAotCTB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA2QywgMHgwQ0MsIDB4MEM4LCAweDA1RSwKLQkweDA2QywgMHgwQ0MsIDB4MEM4LCAweDAwRiwgMHgwMzIsIDB4MDA1LCAweDAyMywgMHgwMUMsCi0JMHgwRTQsIDB4MDUwLCAweDBENCwgMHgwNUEsIDB4MDE3LCAweDA4OCwgMHgwMkYsIDB4MENFLAotCTB4MDgzLCAweDAxMCwgMHgwRjksIDB4MEQwLCAweDAyMywgMHgwMTcsIDB4MDNBLCAweDAwNCwKLQkweDAzNSwgMHgwRTYsIDB4MDAwLCAweDAyMiwgMHgwMTYsIDB4MDM5LCAweDBDMywgMHgwQTMsCi0JMHgwRkMsIDB4MEUwLCAweDBENiwgMHgwMzUsIDB4MEUwLCAweDBCRiwgMHgwRjQsIDB4MDE4LAotCTB4MEYyLCAweDAyRCwgMHgwNEQsIDB4MDQzLCAweDA1MSwgMHgwNkUsIDB4MDVBLCAweDAyMiwKLQkweDAxRiwgMHgwMzAsIDB4MEQ0LCAweDAxNywgMHgwRTcsIDB4MDQxLCAweDA5MSwgMHgwNzMsCi0JMHgwMDUsIDB4MDQ4LCAweDAyRSwgMHgwNzcsIDB4MDY5LCAweDAwMCwgMHgwRTcsIDB4MDQzLAotCTB4MDkwLCAweDA4RSwgMHgwNkMsIDB4MENDLCAweDBDOCwgMHgwNUUsIDB4MDZDLCAweDBDQywKLQkweDBDOCwgMHgwMEYsIDB4MDMyLCAweDAwNSwgMHgwMjMsIDB4MDFDLCAweDBFRiwgMHgwNEMsCi0JMHgwNEUsIDB4MDA2LCAweDAwNCwgMHgwQzksIDB4MDlFLCAweDAwQiwgMHgwRkYsIDB4MDQxLAotCTB4MDhGLCAweDAyMiwgMHgwRDQsIDB4MEQ0LCAweDAzNSwgMHgwMTYsIDB4MEU1LCAweDBBMiwKLQkweDAyMSwgMHgwRjMsIDB4MDVBLCAweDA4MiwgMHgwRkMsIDB4MEU4LCAweDAzMiwgMHgwMkUsCi0JMHgwNjAsIDB4MEE5LCAweDAwNSwgMHgwQ0UsIDB4MDEzLCAweDA0OCwgMHgwMDcsIDB4MDNBLAotCTB4MDFDLCAweDA4NCwgMHgwNzMsIDB4MDY2LCAweDA2NiwgMHgwNDIsIDB4MEYzLCAweDA2NiwKLQkweDA2NiwgMHgwNDAsIDB4MDc5LCAweDA5MCwgMHgwMjksIDB4MDE4LCAweDBFNywgMHgwMEEsCi0JMHgwOTgsIDB4MDlDLCAweDAwQSwgMHgwOUUsIDB4MEI1LCAweDAxMiwgMHgwNUMsIDB4MDdDLAotCTB4MEMzLCAweDAzMSwgMHgwOEIsIDB4MDk4LCAweDAyQSwgMHgwN0MsIDB4MEQzLCAweDBFRCwKLQkweDAzOCwgMHgwRTksIDB4MEQzLCAweDA0RSwgMHgwNzQsIDB4MEVELCAweDA0OSwgMHgwOUUsCi0JMHgwMEIsIDB4MEZGLCAweDA0MSwgMHgwOEYsIDB4MDIyLCAweDBENCwgMHgwRDQsIDB4MDM1LAotCTB4MDE2LCAweDBFNSwgMHgwQTIsIDB4MDJELCAweDBFQiwgMHgwNDUsIDB4MDMzLCAweDA4RiwKLQkweDBGQywgMHgwRjcsIDB4MEEwLCAweDA1RiwgMHgwMjUsIDB4MDAzLCAweDAxRCwgMHgwRTQsCi0JMHgwMEUsIDB4MDA2LCAweDAwQSwgMHgwMzAsIDB4MENDLCAweDAwQywgMHgwRjMsIDB4MEVCLAotCTB4MDQwLCAweDBERSwgMHgwNjEsIDB4MEE4LCAweDA3MCwgMHgwOTIsIDB4MDBBLCAweDAwMCwKLQkweDBFMSwgMHgwMjQsIDB4MDFFLCAweDAwMCwgMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDAsCi0JMHgwRTEsIDB4MDI0LCAweDAxRSwgMHgwMDAsIDB4MEUxLCAweDAyNCwgMHgwMUUsIDB4MDAwLAotCTB4MEUxLCAweDAyNCwgMHgwMUUsIDB4MDAxLCAweDAwRiwgMHgwOTgsIDB4MDJBLCAweDAwQiwKLQkweDBGMywgMHgwQTAsIDB4MEM4LCAweDBCOSwgMHgwQTIsIDB4MEE0LCAweDAxNywgMHgwM0EsCi0JMHgwNjksIDB4MDAwLCAweDBFNywgMHgwNDMsIDB4MDkwLCAweDA4RSwgMHgwNzUsIDB4MDQ4LAotCTB4MDVFLCAweDA3MCwgMHgwNjksIDB4MDAxLCAweDBFNiwgMHgwMDAsIDB4MDUyLCAweDAzMSwKLQkweDBDQywgMHgwMTgsIDB4MDE0LCAweDBBNSwgMHgwQ0MsIDB4MDA5LCAweDA4MiwgMHgwOTQsCi0JMHgwNzMsIDB4MDBDLCAweDBBMCwgMHgwOTEsIDB4MEY1LCAweDAyNSwgMHgwQ0MsIDB4MDA3LAotCTB4MDA2LCAweDA4NCwgMHgwODQsIDB4MDlGLCAweDAzMCwgMHgwQTIsIDB4MEE0LCAweDA3RCwKLQkweDA1MCwgMHgwNzUsIDB4MEE2LCAweDA2NSwgMHgwMDEsIDB4MDRBLCAweDA4RSwgMHgwQjQsCi0JMHgwQ0MsIDB4MEM0LCAweDAzNSwgMHgwNTQsIDB4MDc1LCAweDA2NiwgMHgwQTQsIDB4MDk3LAotCTB4MDdBLCAweDA4OSwgMHgwNTAsIDB4MDUzLCAweDAxMywgMHgwODAsIDB4MDE5LCAweDBFMywKLQkweDA0OSwgMHgwNUMsIDB4MDZELCAweDBDRSwgMHgwQTksIDB4MDQwLCAweDAzNSwgMHgwMDYsCi0JMHgwNzgsIDB4MEQyLCAweDA1NywgMHgwMDYsIDB4MEYxLCAweDBCMywgMHgwMkEsIDB4MDhELAotCTB4MDk3LCAweDAyMywgMHgwNjIsIDB4MDkyLCAweDA1RCwgMHgwNjksIDB4MDk5LCAweDAxQywKLQkweDA2QSwgMHgwMzYsIDB4MEU2LCAweDBDRCwgMHgwNDYsIDB4MDEyLCAweDA2RiwgMHgwOUUsCi0JMHgwRTEsIDB4MEFCLCAweDBFNCwgMHgwQTMsIDB4MDBDLCAweDBDMCwgMHgwREUsIDB4MEFDLAotCTB4MEQ0LCAweDAwRCwgMHgwMjgsIDB4MDFCLCAweDBEMCwgMHgwMTIsIDB4MEE1LCAweDAwMCwKLQkweDBGOCwgMHgwNEIsIDB4MEFELCAweDAzMywgMHgwMjgsIDB4MDA2LCAweDBBMCwgMHgwREUsCi0JMHgwMTQsIDB4MDk3LCAweDAzQSwgMHgwODksIDB4MDVELCAweDBDMCwgMHgwMEQsIDB4MEUzLAotCTB4MDA2LCAweDA5MCwgMHgwOTIsIDB4MDVELCAweDA2OSwgMHgwOTgsIDB4MDY2LCAweDBCOSwKLQkweDAxOSwgMHgwOTUsIDB4MEU0LCAweDBBOCwgMHgwQ0YsIDB4MDlELCAweDAzMywgMHgwMTgsCi0JMHgwNDksIDB4MEJFLCAweDA3QiwgMHgwODYsIDB4MEFGLCAweDA5MiwgMHgwOEMsIDB4MDMzLAotCTB4MDI0LCAweDAxNCwgMHgwMEMsIDB4MEY0LCAweDA4MywgMHgwMjQsIDB4MDIxLCAweDBDMiwKLQkweDA3MCwgMHgwQkYsIDB4MEY0LCAweDAxOCwgMHgwRjIsIDB4MDJELCAweDA0RCwgMHgwNDMsCi0JMHgwNTEsIDB4MDZFLCAweDA1QSwgMHgwMjIsIDB4MDFGLCAweDAzMiwgMHgwQTgsIDB4MDJGLAotCTB4MENFLCAweDA4MywgMHgwMjIsIDB4MEU2LCAweDAwNSwgMHgwQTQsIDB4MDE3LCAweDAzQSwKLQkweDA2OSwgMHgwMDAsIDB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA3NSwgMHgwNDgsCi0JMHgwNUUsIDB4MDcwLCAweDA2OSwgMHgwMDEsIDB4MEU2LCAweDA0MiwgMHgwQTQsIDB4MDYzLAotCTB4MDk4LCAweDAwMiwgMHgwMjksIDB4MDRCLCAweDA5QSwgMHgwMjksIDB4MDc4LCAweDBFOSwKLQkweDA0MCwgMHgwNTMsIDB4MDEzLCAweDA4MSwgMHgwODEsIDB4MDMyLCAweDA2NywgMHgwODIsCi0JMHgwRkYsIDB4MEQwLCAweDA2MywgMHgwQzgsIDB4MEI1LCAweDAzNSwgMHgwMEQsIDB4MDQ1LAotCTB4MEFFLCAweDA1MCwgMHgwMDgsIDB4MDdDLCAweDBFMCwgMHgwRDAsIDB4MDVGLCAweDA5RCwKLQkweDAwNiwgMHgwNDUsIDB4MENDLCAweDAwMSwgMHgwQTQsIDB4MDE3LCAweDAzQSwgMHgwNjksCi0JMHgwMDAsIDB4MEU3LCAweDA0MywgMHgwOTAsIDB4MDhFLCAweDA3NSwgMHgwNDgsIDB4MDVFLAotCTB4MDcwLCAweDA2OSwgMHgwMDEsIDB4MEU2LCAweDA1OSwgMHgwQTQsIDB4MDYzLCAweDA5OCwKLQkweDAxQywgMHgwNTIsIDB4MDk3LCAweDAzQiwgMHgwMzAsIDB4MDUyLCAweDA4RSwgMHgwN0QsCi0JMHgwMkEsIDB4MDA5LCAweDAxRiwgMHgwNTEsIDB4MEVCLCAweDBBNCwgMHgwQTQsIDB4MDBBLAotCTB4MEI5LCAweDA5NCwgMHgwODcsIDB4MEFFLCAweDBDNSwgMHgwMzEsIDB4MDM4LCAweDAwMiwKLQkweDBGRiwgMHgwRDAsIDB4MDYzLCAweDBDOCwgMHgwQjUsIDB4MDM1LCAweDAwRCwgMHgwNDUsCi0JMHgwQUUsIDB4MDUwLCAweDAwOCwgMHgwN0MsIDB4MEVBLCAweDAyMCwgMHgwQkYsIDB4MDNBLAotCTB4MDBDLCAweDA4QiwgMHgwOUEsIDB4MDE2LCAweDA5MCwgMHgwNUMsIDB4MEU5LCAweDBBNCwKLQkweDAwMywgMHgwOUQsIDB4MDBFLCAweDA0MiwgMHgwMzksIDB4MEQ1LCAweDAyMSwgMHgwNzksCi0JMHgwOTUsIDB4MDQ4LCAweDAwRiwgMHgwMzAsIDB4MDBBLCAweDA5MSwgMHgwOEUsIDB4MDYwLAotCTB4MEVCLCAweDAyOSwgMHgwNzMsIDB4MDAwLCAweDAwOSwgMHgwNTQsIDB4MDA0LCAweDBDQSwKLQkweDA4MiwgMHgwNjUsIDB4MDUyLCAweDA2NSwgMHgwRTQsIDB4MENBLCAweDAyMiwgMHgwNjUsCi0JMHgwNzIsIDB4MDY1LCAweDAwOSwgMHgwMzIsIDB4MEUwLCAweDA5OSwgMHgwNzIsIDB4MDRDLAotCTB4MEM0LCAweDBFMCwgMHgwMEIsIDB4MEZGLCAweDA0MSwgMHgwOEYsIDB4MDIyLCAweDBENCwKLQkweDBENCwgMHgwMzUsIDB4MDE2LCAweDBCOSwgMHgwNDAsIDB4MDIxLCAweDBGMywgMHgwOEEsCi0JMHgwODIsIDB4MEZDLCAweDBFOCwgMHgwMzIsIDB4MDJFLCAweDA2MCwgMHgwQTksIDB4MDA1LAotCTB4MENFLCAweDA5QSwgMHgwNDAsIDB4MDM5LCAweDBEMCwgMHgwRTQsIDB4MDIzLCAweDA5RCwKLQkweDA1MiwgMHgwMTcsIDB4MDk5LCAweDA1NCwgMHgwNjEsIDB4MDk5LCAweDAwMSwgMHgwRTYsCi0JMHgwNDAsIDB4MEE0LCAweDA2MywgMHgwOTgsIDB4MDA0LCAweDBCMSwgMHgwODQsIDB4MDk4LAotCTB4MDE4LCAweDBFRiwgMHgwMkQsIDB4MDAzLCAweDAwNSwgMHgwMzEsIDB4MDM4LCAweDAwMiwKLQkweDBGRiwgMHgwRDAsIDB4MDYzLCAweDBDOCwgMHgwQjUsIDB4MDM1LCAweDAwRCwgMHgwNDUsCi0JMHgwQjksIDB4MDY4LCAweDA4OCwgMHgwN0MsIDB4MEUwLCAweDA1MCwgMHgwNUYsIDB4MDlELAotCTB4MDA2LCAweDA0NSwgMHgwQ0MsIDB4MDgxLCAweDA0OCwgMHgwMkUsIDB4MDcxLCAweDAzNCwKLQkweDA4RiwgMHgwNDgsIDB4MDAxLCAweDA0OCwgMHgwMTUsIDB4MDIxLCAweDAwNSwgMHgwMjEsCi0JMHgwRTksIDB4MDBBLCAweDA1MiwgMHgwMDMsIDB4MENFLCAweDA1QSwgMHgwNDYsIDB4MDM5LAotCTB4MENGLCAweDA0NywgMHgwOEUsIDB4MDYwLCAweDBBQiwgMHgwMUEsIDB4MEYzLCAweDA1MywKLQkweDA0MywgMHgwRUIsIDB4MDM1LCAweDAyNCwgMHgwQjgsIDB4MDFCLCAweDAzMCwgMHgwMDcsCi0JMHgwMDksIDB4MDhBLCAweDA3NCwgMHgwMkYsIDB4MDdFLCAweDA0MSwgMHgwNzQsIDB4MDFFLAotCTB4MDFELCAweDAwRCwgMHgwODcsIDB4MDQ2LCAweDA0OSwgMHgwRDUsIDB4MDk1LCAweDBEMSwKLQkweDBENSwgMHgwRDUsIDB4MEJCLCAweDBBOSwgMHgwNEUsIDB4MDgyLCAweDA5RCwgMHgwMDUsCi0JMHgwM0EsIDB4MDBBLCAweDA3NCwgMHgwMTQsIDB4MEU4LCAweDAyOSwgMHgwRDAsIDB4MDQyLAotCTB4MDc0LCAweDA1QiwgMHgwQ0UsIDB4MDUwLCAweDBDNCwgMHgwMDcsIDB4MDQ1LCAweDBCQywKLQkweDBFMiwgMHgwMEMsIDB4MDQwLCAweDA3NCwgMHgwNUIsIDB4MENFLCAweDA4MywgMHgwMDQsCi0JMHgwRjksIDB4MDk1LCAweDA0RCwgMHgwMTMsIDB4MDYzLCAweDA1RSwgMHgwNkYsIDB4MDMxLAotCTB4MDNCLCAweDBBMCwgMHgwOEIsIDB4MEEyLCAweDBDNSwgMHgwMzksIDB4MDhELCAweDA3OCwKLQkweDAzQSwgMHgwMjIsIDB4MEEwLCAweDAwMCwgMHgwNkIsIDB4MEMxLCAweDBEMSwgMHgwNTQsCi0JMHgwNjAsIDB4MDE2LCAweDBEOSwgMHgwOTEsIDB4MEEyLCAweDBFNywgMHgwNDMsIDB4MDhDLAotCTB4MDI0LCAweDBEQywgMHgwMUMsIDB4MEUwLCAweDA1MSwgMHgwMTcsIDB4MDM5LCAweDA2QiwKLQkweDAzQiwgMHgwQ0MsIDB4MDRCLCAweDA0MiwgMHgwMkUsIDB4MDZCLCAweDA1MCwgMHgwQkYsCi0JMHgwMzYsIDB4MDM2LCAweDA2NSwgMHgwNEYsIDB4MDdBLCAweDAxOCwgMHgwNTUsIDB4MDI1LAotCTB4MDc4LCAweDA5OCwgMHgwMjMsIDB4MEU3LCAweDA1MCwgMHgwM0UsIDB4MEYzLCAweDA4MSwKLQkweDA0QywgMHgwMDIsIDB4MDZELCAweDAzRSwgMHgwNzEsIDB4MDUzLCAweDBBRiwgMHgwNzgsCi0JMHgwQTksIDB4MEQ0LCAweDBBNiwgMHgwMjksIDB4MEIxLCAweDBCQywgMHgwRDksIDB4MDk5LAotCTB4MEIyLCAweDA4RSwgMHgwNjIsIDB4MDhGLCAweDAyMiwgMHgwMkUsIDB4MDc1LCAweDAxNiwKLQkweDBCMCwgMHgwQjIsIDB4MEFCLCAweDAyMywgMHgwMjgsIDB4MDE2LCAweDA1NCwgMHgwNTIsCi0JMHgwMzEsIDB4MEJDLCAweDBEOSwgMHgwOTksIDB4MEIyLCAweDA4RSwgMHgwNjYsIDB4MDE5LAotCTB4MDAyLCAweDAyRSwgMHgwNzUsIDB4MDE2LCAweDA1MCwgMHgwMkMsIDB4MEE5LCAweDBDOCwKLQkweDBDNiwgMHgwRjUsIDB4MDIwLCAweDBEMywgMHgwRTQsIDB4MDdGLCAweDA0RiwgMHgwOUMsCi0JMHgwMEEsIDB4MEQ2LCAweDAxNiwgMHgwN0YsIDB4MDkwLCAweDBFRSwgMHgwNEMsIDB4MEVCLAotCTB4MENGLCAweDBFMiwgMHgwODgsIDB4MEJBLCAweDAyRiwgMHgwNDIsIDB4MDg2LCAweDBBRSwKLQkweDBCRCwgMHgwRTUsIDB4MEE3LCAweDA1MiwgMHgwOUYsIDB4MDkzLCAweDA2MywgMHgwNzksCi0JMHgwRUIsIDB4MDMzLCAweDAwOCwgMHgwRjksIDB4MDk0LCAweDA1MiwgMHgwNDcsIDB4MENELAotCTB4MDk5LCAweDAyNSwgMHgwNkYsIDB4MDNBLCAweDAwQywgMHgwMTMsIDB4MEU2LCAweDA1NSwKLQkweDAzNCwgMHgwNEMsIDB4MDVBLCAweDA0RCwgMHgwQjUsIDB4MDIzLCAweDA5NSwgMHgwQTUsCi0JMHgwNDgsIDB4MDExLCAweDA1QSwgMHgwMEEsIDB4MDQzLCAweDA5NSwgMHgwQUMsIDB4MDJDLAotCTB4MEJBLCAweDAyNCwgMHgwMDUsIDB4MDQ5LCAweDBCMSwgMHgwQkMsIDB4MENBLCAweDBBNywKLQkweDA3MiwgMHgwNkMsIDB4MDZCLCAweDBDNSwgMHgwQkQsIDB4MEU4LCAweDAzMSwgMHgwNjksCi0JMHgwNTIsIDB4MDVELCAweDAwNiwgMHgwMTIsIDB4MDY1LCAweDAzRSwgMHgwQjEsIDB4MDUwLAotCTB4MDRDLCAweDA3RCwgMHgwNEYsIDB4MEFDLCAweDAwQSwgMHgwMzAsIDB4MDBCLCAweDAzNiwKLQkweDA2NCwgMHgwMTEsIDB4MDczLCAweDA4QSwgMHgwODMsIDB4MDhFLCAweDA3NSwgMHgwMTIsCi0JMHgwOUYsIDB4MDdCLCAweDBEMiwgMHgwOTksIDB4MDU4LCAweDBFRSwgMHgwODIsIDB4MDJFLAotCTB4MDc3LCAweDBBMCwgMHgwRTMsIDB4MDlELCAweDA1RCwgMHgwNEYsIDB4MEJDLCAweDAyQSwKLQkweDA1MywgMHgwMjksIDB4MDUzLCAweDBERSwgMHgwOTMsIDB4MDI0LCAweDBCQSwgMHgwQjMsCi0JMHgwMzYsIDB4MEFBLCAweDA0QSwgMHgwQzYsIDB4MDc5LCAweDBENCwgMHgwQjksIDB4MERFLAotCTB4MDYyLCAweDA1QSwgMHgwMTEsIDB4MDczLCAweDA1MCwgMHgwNTAsIDB4MEJGLCAweDAzNywKLQkweDAzNiwgMHgwNkYsIDB4MDEzLCAweDAyMywgMHgwQkEsIDB4MDBDLCAweDAyNCwgMHgwQ0UsCi0JMHgwQkQsIDB4MEUyLCAweDBBNywgMHgwNTIsIDB4MEIyLCAweDA4RSwgMHgwNkIsIDB4MDYwLAotCTB4MDYyLCAweDAyRSwgMHgwNzUsIDB4MDEzLCAweDAzMCwgMHgwQUMsIDB4MEEwLCAweDA1OSwKLQkweDBDQSwgMHgwNjQsIDB4MDYzLCAweDA3OSwgMHgwQjMsIDB4MDMzLCAweDA2NSwgMHgwMUMsCi0JMHgwQ0MsIDB4MDMyLCAweDAwNCwgMHgwNUMsIDB4MEVBLCAweDAyQywgMHgwQTAsIDB4MDU5LAotCTB4MERGLCAweDAyMywgMHgwMUIsIDB4MEQ0LCAweDA4MywgMHgwNTIsIDB4MDQ3LCAweDBERCwKLQkweDA3OSwgMHgwOTYsIDB4MEQ0LCAweDA5RSwgMHgwQjMsIDB4MDUyLCAweDA0QiwgMHgwQTIsCi0JMHgwNUEsIDB4MDFBLCAweDA4RCwgMHgwNUQsIDB4MDdCLCAweDA4MiwgMHgwQTcsIDB4MDUyLAotCTB4MEIyLCAweDA4RSwgMHgwNjYsIDB4MDE5LCAweDAwMiwgMHgwMkUsIDB4MDc1LCAweDAxNiwKLQkweDA1MCwgMHgwMkMsIDB4MDhDLCAweDAzMiwgMHgwMUQsIDB4MDdCLCAweDA4RSwgMHgwQTcsCi0JMHgwNTIsIDB4MEIxLCAweDBCQywgMHgwRDksIDB4MDk5LCAweDA5OCwgMHgwMDQsIDB4MERBLAotCTB4MDdDLCAweDBFMiwgMHgwQUMsIDB4MEZFLCAweDA2NiwgMHgwMTksIDB4MDAyLCAweDAyRSwKLQkweDA2NSwgMHgwNTAsIDB4MEJGLCAweDAzMywgMHgwNjYsIDB4MDY0LCAweDBGRSwgMHgwNzQsCi0JMHgwMTgsIDB4MDg2LCAweDA0QywgMHgwMTcsIDB4MDI2LCAweDBENiwgMHgwMTYsIDB4MDUyLAotCTB4MDM5LCAweDAxOCwgMHgwREUsIDB4MDdBLCAweDBDQywgMHgwQzIsIDB4MDNFLCAweDA2NSwKLQkweDAxNCwgMHgwOTEsIDB4MEYzLCAweDA2NiwgMHgwNDksIDB4MDA4LCAweDA2RSwgMHgwODMsCi0JMHgwMDksIDB4MDMzLCAweDBBRiwgMHgwMzEsIDB4MEVELCAweDAwRCwgMHgwOUQsIDB4MDA2LAotCTB4MDEyLCAweDA2MiwgMHgwMkEsIDB4MDMxLCAweDA4RCwgMHgwNkQsIDB4MEU3LCAweDA0MSwKLQkweDA4MiwgMHgwN0MsIDB4MENBLCAweDBBNiwgMHgwODksIDB4MDg3LCAweDAwOSwgMHgwMkUsCi0JMHgwMjksIDB4MEIxLCAweDBBRiwgMHgwMTAsIDB4MDM5LCAweDBENiwgMHgwNjQsIDB4MDk3LAotCTB4MDMwLCAweDAxRCwgMHgwNDIsIDB4MDc1LCAweDA5MywgMHgwNDQsIDB4MDAyLCAweDA4QywKLQkweDAyNCwgMHgwRDIsIDB4MDdBLCAweDBCMywgMHgwNTAsIDB4MEY2LCAweDA4OSwgMHgwMDUsCi0JMHgwNDMsIDB4MDVFLCAweDA2MSwgMHgwOTgsIDB4MEMwLCAweDAyQywgMHgwOTIsIDB4MDI1LAotCTB4MDNDLCAweDA4QiwgMHgwMjQsIDB4MDg5LCAweDA0OSwgMHgwMDUsIDB4MDQ5LCAweDBFNywKLQkweDAwQywgMHgwQjksIDB4MDg0LCAweDA5OCwgMHgwQjcsIDB4MEFELCAweDAzMywgMHgwNDQsCi0JMHgwQUUsIDB4MDVBLCAweDA1MSwgMHgwODYsIDB4MDYwLCAweDA5RiwgMHgwMzgsIDB4MEE5LAotCTB4MEEyLCAweDA2QywgMHgwNkIsIDB4MEM0LCAweDA4RSwgMHgwRjQsIDB4MDVFLCAweDA0OSwKLQkweDA0NiwgMHgwMTIsIDB4MDYyLCAweDBERSwgMHgwQjQsIDB4MENELCAweDAyMSwgMHgwNUMsCi0JMHgwQjQsIDB4MEEzLCAweDAwQywgMHgwQzEsIDB4MDNFLCAweDA3MiwgMHgwMjksIDB4MEEyLAotCTB4MDZDLCAweDA2QiwgMHgwQzYsIDB4MDEyLCAweDA2MiwgMHgwNDcsIDB4MEYwLCAweDBFOCwKLQkweDBDMywgMHgwMzIsIDB4MDA0LCAweDAzNSwgMHgwNDAsIDB4MDkyLCAweDBBNCwgMHgwODIsCi0JMHgwODgsIDB4MDEwLCAweDA5MiwgMHgwN0MsIDB4MENCLCAweDBENCwgMHgwMkYsIDB4MEE0LAotCTB4MDAyLCAweDAxMSwgMHgwODQsIDB4MDk4LCAweDBCNywgMHgwQUQsIDB4MDMzLCAweDA0NCwKLQkweDBBRSwgMHgwNUEsIDB4MDUxLCAweDA4NiwgMHgwNjAsIDB4MDlGLCAweDAzOCwgMHgwQTksCi0JMHgwQTIsIDB4MDZDLCAweDA2QiwgMHgwQzQsIDB4MDhFLCAweDBGNCwgMHgwNUUsIDB4MDQ5LAotCTB4MDQ0LCAweDAwOCwgMHgwNDksIDB4MDNFLCAweDA2NSwgMHgwRUEsIDB4MDE3LCAweDBEMiwKLQkweDAwMSwgMHgwMDgsIDB4MEMyLCAweDA0QywgMHgwNUIsIDB4MEQ2LCAweDA5OSwgMHgwQTQsCi0JMHgwMkIsIDB4MDk2LCAweDA5NCwgMHgwNjEsIDB4MDk4LCAweDAyNywgMHgwQ0UsIDB4MDQ1LAotCTB4MDM0LCAweDA0RCwgMHgwOEQsIDB4MDc4LCAweDA4MSwgMHgwMDksIDB4MDI3LCAweDBDQywKLQkweDBCRCwgMHgwMTIsIDB4MDI4LCAweDA2QywgMHgwNTgsIDB4MEFGLCAweDBCNiwgMHgwRjMsCi0JMHgwQTAsIDB4MEMxLCAweDAzRSwgMHgwNjUsIDB4MDUzLCAweDA0NCwgMHgwRDgsIDB4MEQ3LAotCTB4MDkyLCAweDA4RSwgMHgwN0QsIDB4MDRCLCAweDBDMiwgMHgwRkEsIDB4MDYxLCAweDAyNiwKLQkweDAwNiwgMHgwM0EsIDB4MEIzLCAweDA2QiwgMHgwMDMsIDB4MDA1LCAweDA0OSwgMHgwRTcsCi0JMHgwMEMsIDB4MEI5LCAweDA2RiwgMHgwNUEsIDB4MDY2LCAweDA5NSwgMHgwNUMsIDB4MEI0LAotCTB4MEEzLCAweDAwQywgMHgwQzEsIDB4MDNFLCAweDA3MCwgMHgwMjksIDB4MEEyLCAweDA2RSwKLQkweDBBNCwgMHgwREYsIDB4MDkzLCAweDA3MSwgMHgwMTMsIDB4MDc3LCAweDAyNiwgMHgwRTEsCi0JMHgwMjYsIDB4MEY4LCAweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA5NCwgMHgwNzMsIDB4MEY5LAotCTB4MDJGLCAweDAwQiwgMHgwRTksIDB4MDg0LCAweDA5OCwgMHgwMTgsIDB4MEVBLCAweDBDQywKLQkweDBFQywgMHgwMEMsIDB4MDE1LCAweDAyNywgMHgwOUMsIDB4MDMyLCAweDBGRiwgMHgwM0QsCi0JMHgwNTYsIDB4MEFGLCAweDA5MiwgMHgwOEIsIDB4MDdBLCAweDBEMywgMHgwMzUsIDB4MEQ1LAotCTB4MENCLCAweDA0QSwgMHgwMzAsIDB4MENDLCAweDAxMywgMHgwRTcsIDB4MDAyLCAweDA5QSwKLQkweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA5NCwgMHgwNzMsIDB4MDQxLCAweDA5NywgMHgwOTEsCi0JMHgwRjQsIDB4MDgzLCAweDBDRSwgMHgwMDQsIDB4MDIwLCAweDA2MiwgMHgwOEIsIDB4MDA1LAotCTB4MDE2LCAweDA0OSwgMHgwOEMsIDB4MDI0LCAweDBDMCwgMHgwQzcsIDB4MDU2LCAweDA5MCwKLQkweDBDMCwgMHgwQzEsIDB4MDUyLCAweDA3OSwgMHgwQzMsIDB4MDJFLCAweDA1QiwgMHgwRDUsCi0JMHgwQTYsIDB4MDcyLCAweDBEMiwgMHgwOTQsIDB4MEZBLCAweDBBRCwgMHgwNTgsIDB4MEM4LAotCTB4MEZBLCAweDA5RiwgMHgwNTQsIDB4MEIzLCAweDAzMiwgMHgwNEIsIDB4MEI5LCAweDA1NCwKLQkweDBBNiwgMHgwNTEsIDB4MDg2LCAweDA2QiwgMHgwNzksIDB4MEQwLCAweDA2MCwgMHgwOUYsCi0JMHgwMzIsIDB4MDA1LCAweDAzNCwgMHgwNEQsIDB4MDhELCAweDA3QSwgMHgwNEQsIDB4MDFFLAotCTB4MDdBLCAweDBCMywgMHgwNTEsIDB4MDAwLCAweDBBOSwgMHgwM0QsIDB4MDU5LCAweDBBOCwKLQkweDA3QiwgMHgwNDQsIDB4MDgyLCAweDBBMSwgMHgwQUYsIDB4MDRBLCAweDA4RCwgMHgwNTIsCi0JMHgwQTksIDB4MDUyLCAweDA0MSwgMHgwNDksIDB4MDRGLCAweDAzQSwgMHgwMkUsIDB4MDQwLAotCTB4MEE0LCAweDA5OSwgMHgwNTAsIDB4MEJFLCAweDA5MCwgMHgwMDgsIDB4MDUyLCAweDA3OSwKLQkweDBDMywgMHgwMkUsIDB4MDYxLCAweDAyNiwgMHgwMkQsIDB4MEVCLCAweDA0QywgMHgwRDAsCi0JMHgwMTUsIDB4MENCLCAweDA0QSwgMHgwMzAsIDB4MENDLCAweDAxMywgMHgwRTcsIDB4MDAyLAotCTB4MDlBLCAweDAyNiwgMHgwQzYsIDB4MEJDLCAweDA0OCwgMHgwRkUsIDB4MDFELCAweDAyNSwKLQkweDA0NiwgMHgwQTksIDB4MDU0LCAweDBBOSwgMHgwMjAsIDB4MEE0LCAweDBBNywgMHgwOUQsCi0JMHgwMTcsIDB4MDIwLCAweDA1MiwgMHgwNEMsIDB4MEE4LCAweDA1RiwgMHgwNDgsIDB4MDA0LAotCTB4MDIzLCAweDAwOSwgMHgwMzEsIDB4MDZGLCAweDA1QSwgMHgwNjYsIDB4MDgwLCAweDBBRSwKLQkweDA1QSwgMHgwNTEsIDB4MDg2LCAweDA2MCwgMHgwOUYsIDB4MDM4LCAweDAxNCwgMHgwRDEsCi0JMHgwMzYsIDB4MDM1LCAweDBFNCwgMHgwQTcsIDB4MDlELCAweDAxNywgMHgwMjAsIDB4MDUyLAotCTB4MDRDLCAweDBBMiwgMHgwNDUsIDB4MDBELCAweDA4QiwgMHgwMTUsIDB4MEY0LCAweDA5MSwKLQkweDBERSwgMHgwOEIsIDB4MEM5LCAweDAyOCwgMHgwQzIsIDB4MDRDLCAweDA1QiwgMHgwRDYsCi0JMHgwOTksIDB4MEE5LCAweDA1QywgMHgwQjQsIDB4MEEzLCAweDAwQywgMHgwRDYsIDB4MEYzLAotCTB4MEEwLCAweDBDMSwgMHgwM0UsIDB4MDY0LCAweDAwQSwgMHgwNjgsIDB4MDlCLCAweDAxQSwKLQkweDBGMSwgMHgwNkQsIDB4MDRDLCAweDBBQSwgMHgwOTIsIDB4MEUwLCAweDAzNiwgMHgwOTQsCi0JMHgwNzAsIDB4MDlCLCAweDAyOSwgMHgwNzgsIDB4MDEzLCAweDBBRSwgMHgwQjMsIDB4MEFBLAotCTB4MDg1LCAweDBENCwgMHgwNDMsIDB4MDc1LCAweDAwOSwgMHgwM0EsIDB4MEM5LCAweDBFQiwKLQkweDAzNSwgMHgwMjQsIDB4MEI4LCAweDAxQiwgMHgwMzIsIDB4MDhFLCAweDAxMywgMHgwNDgsCi0JMHgwN0UsIDB4MDRFLCAweDBGRCwgMHgwNDAsIDB4MEZELCAweDA0MCwgMHgwRkQsIDB4MDQwLAotCTB4MEZELCAweDA0MCwgMHgwRkQsIDB4MDQwLCAweDBGQywgMHgwMTMsIDB4MEY0LCAweDAyMSwKLQkweDBGOSwgMHgwMTcsIDB4MDQ1LCAweDA4QSwgMHgwMzAsIDB4MDBCLCAweDAzMywgMHgwNUYsCi0JMHgwODMsIDB4MEEyLCAweDAyQSwgMHgwMzAsIDB4MDBCLCAweDAzMywgMHgwNUYsIDB4MDgzLAotCTB4MEEyLCAweDBBOCwgMHgwQzAsIDB4MDJELCAweDBCMywgMHgwMjAsIDB4MDcwLCAweDA5MiwKLQkweDAxMywgMHgwOUEsIDB4MERFLCAweDA3NCwgMHgwMTgsIDB4MDI3LCAweDBDQywgMHgwQUEsCi0JMHgwNjgsIDB4MDlCLCAweDAxQSwgMHgwRjcsIDB4MDA3LCAweDA0NSwgMHgwNTEsIDB4MDgwLAotCTB4MDVCLCAweDA2NiwgMHgwNDcsIDB4MDA3LCAweDAzOCwgMHgwQTgsIDB4MDIzLCAweDBFNywKLQkweDA1MSwgMHgwMTEsIDB4MDNGLCAweDBFMCwgMHgwRTgsIDB4MDg1LCAweDA0NiwgMHgwMDEsCi0JMHgwNkQsIDB4MDk5LCAweDAwNiwgMHgwMTIsIDB4MDY1LCAweDA0RiwgMHgwN0EsIDB4MDIwLAotCTB4MDI0LCAweDBCQSwgMHgwQjMsIDB4MDMyLCAweDAxNSwgMHgwMjUsIDB4MDdCLCAweDBBRCwKLQkweDAzMywgMHgwNzgsIDB4MEFFLCAweDAwRSwgMHgwNzMsIDB4MEQwLCAweDA0NywgMHgwQ0UsCi0JMHgwQTcsIDB4MDMwLCAweDBDQywgMHgwNDQsIDB4MEZGLCAweDA4MywgMHgwQTIsIDB4MEE4LAotCTB4MEMwLCAweDAyQywgMHgwRDksIDB4MDkxLCAweDBDMSwgMHgwRDEsIDB4MDE1LCAweDAxOCwKLQkweDAwNSwgMHgwOUIsIDB4MDMyLCAweDAwOCwgMHgwQkEsIDB4MDJDLCAweDA1MSwgMHgwODAsCi0JMHgwNTksIDB4MEIzLCAweDAyMCwgMHgwNzAsIDB4MDkyLCAweDBFMiwgMHgwOTgsIDB4MDg5LAotCTB4MEZELCAweDBCQywgMHgwRUUsIDB4MDE4LCAweDA5MCwgMHgwRkMsIDB4MDhCLCAweDBBMiwKLQkweDBDNSwgMHgwMkIsIDB4MDBELCAweDA3OCwgMHgwM0EsIDB4MDIyLCAweDBBNSwgMHgwNjEsCi0JMHgwQUYsIDB4MDA3LCAweDA0NSwgMHgwNTEsIDB4MDgwLCAweDA1QiwgMHgwNjYsIDB4MDQ0LAotCTB4MDlFLCAweDBCMywgMHgwNTIsIDB4MDRCLCAweDA4MywgMHgwQUQsIDB4MEM3LCAweDAwOSwKLQkweDBCRSwgMHgwMUYsIDB4MDlGLCAweDA3NCwgMHgwNjUsIDB4MDVELCAweDAwQSwgMHgwMTcsCi0JMHgwN0MsIDB4MEFCLCAweDBBMCwgMHgwQzIsIDB4MDRDLCAweDAzOCwgMHgwNDksIDB4MDEyLAotCTB4MDJFLCAweDAzOCwgMHgwNDksIDB4MDA3LCAweDBBMywgMHgwMEMsIDB4MEMxLCAweDAzRSwKLQkweDA2NSwgMHgwNTMsIDB4MDQ0LCAweDBEOCwgMHgwRDcsIDB4MEFELCAweDBFNywgMHgwMDAsCi0JMHgwMzIsIDB4MDRCLCAweDA5QiwgMHgwMzMsIDB4MDM0LCAweDA0QSwgMHgwMDMsIDB4MDAwLAotCTB4MDlELCAweDAyNSwgMHgwQ0UsIDB4MDgzLCAweDAyNCwgMHgwQjgsIDB4MDE5LCAweDA5OSwKLQkweDA4QywgMHgwMDIsIDB4MDEyLCAweDA0QiwgMHgwQTEsIDB4MDk5LCAweDBEOCwgMHgwQzAsCi0JMHgwMjcsIDB4MDQ5LCAweDA3MywgMHgwQ0YsIDB4MEY5LCAweDAzQywgMHgwRjQsIDB4MDdDLAotCTB4MEU3LCAweDA5OCwgMHgwMDQsIDB4MEU5LCAweDAyRSwgMHgwN0YsIDB4MDM5LCAweDBFMywKLQkweDA0RiwgMHgwNDYsIDB4MDUzLCAweDBDMCwgMHgwNjAsIDB4MDEzLCAweDBBNCwgMHgwQjksCi0JMHgwRTUsIDB4MDNDLCAweDAwMywgMHgwREUsIDB4MDhGLCAweDA5QywgMHgwRjMsIDB4MDAwLAotCTB4MDlDLCAweDA2RiwgMHgwQ0YsIDB4MDNFLCAweDA4NSwgMHgwRjksIDB4MEEzLCAweDAzNiwKLQkweDAwMiwgMHgwMUUsIDB4MDYwLCAweDAzOCwgMHgwOTIsIDB4MDNFLCAweDA2MywgMHgwMUEsCi0JMHgwMTAsIDB4MDlGLCAweDBDRiwgMHgwMTgsIDB4MDEwLCAweDA5MiwgMHgwQkMsIDB4MEQwLAotCTB4MEE0LCAweDAwQywgMHgwREMsIDB4MEMwLCAweDAwRiwgMHgwOUMsIDB4MDk3LCAweDAzNCwKLQkweDA2MiwgMHgwQjYsIDB4MEU3LCAweDBGMywgMHgwRjMsIDB4MEE1LCAweDBDRiwgMHgwMTgsCi0JMHgwNDIsIDB4MDM0LCAweDAxQywgMHgwQzIsIDB4MENBLCAweDBGQSwgMHgwOEUsIDB4MDY4LAotCTB4MDUyLCAweDAwNiwgMHgwQUYsIDB4MDNDLCAweDBBMywgMHgwMEQsIDB4MEJGLCAweDA5RSwKLQkweDA1MCwgMHgwRTEsIDB4MEQxLCAweDA3MywgMHgwQ0EsIDB4MEUwLCAweDAzQSwgMHgwRkMsCi0JMHgwQzEsIDB4MDA5LCAweDAxQSwgMHgwMUUsIDB4MDZBLCAweDA1QywgMHgwNUIsIDB4MDhFLAotCTB4MDYzLCAweDA0RSwgMHgwNzcsIDB4MDczLCAweDBDQywgMHgwNjEsIDB4MDY3LCAweDBERCwKLQkweDBFNiwgMHgwNkMsIDB4MDQ4LCAweDBEMSwgMHgwRjMsIDB4MDFCLCAweDAyNCwgMHgwNjksCi0JMHgwNTEsIDB4MDA4LCAweDBENCwgMHgwNDIsIDB4MDFCLCAweDBGNCwgMHgwNjcsIDB4MEQxLAotCTB4MDgwLCAweDA0RSwgMHgwMkYsIDB4MEQwLCAweDA4QywgMHgwRDgsIDB4MDMwLCAweDAwOSwKLQkweDBDMiwgMHgwMUUsIDB4MDgwLCAweDAxQywgMHgwNDYsIDB4MDAxLCAweDAzQSwgMHgwNDcsCi0JMHgwRDAsIDB4MDMxLCAweDBBMSwgMHgwMDYsIDB4MDAxLCAweDAzQSwgMHgwN0YsIDB4MDQ2LAotCTB4MDMwLCAweDAyMSwgMHgwMTgsIDB4MDA0LCAweDBFOSwgMHgwNUUsIDB4MDg0LCAweDAyOSwKLQkweDAwMCwgMHgwQzAsIDB4MDI3LCAweDBDRCwgMHgwRDAsIDB4MDAwLCAweDA3QywgMHgwOTgsCi0JMHgwMDQsIDB4MEY5LCAweDAyRSwgMHgwODQsIDB4MDYyLCAweDA4QywgMHgwMDIsIDB4MDdELAotCTB4MEJBLCAweDAzRSwgMHgwN0UsIDB4MDRDLCAweDAwMiwgMHgwN0QsIDB4MDJFLCAweDA4QywKLQkweDA2MSwgMHgwMDgsIDB4MDMwLCAweDAwOSwgMHgwRjQsIDB4MDFELCAweDAwMSwgMHgwNjUsCi0JMHgwNzMsIDB4MDAwLCAweDA5RiwgMHgwNTEsIDB4MEQwLCAweDA4NSwgMHgwMjAsIDB4MDE4LAotCTB4MDA0LCAweDBGQSwgMHgwQkQsIDB4MDE5LCAweDA0NiwgMHgwMTgsIDB4MEMwLCAweDAyNywKLQkweDBERiwgMHgwRDEsIDB4MDk0LCAweDAzOCwgMHgwNEMsIDB4MDAyLCAweDA3RCwgMHgwMTcsCi0JMHgwNDYsIDB4MDU3LCAweDAwMSwgMHgwMzAsIDB4MDA5LCAweDBGNSwgMHgwRkEsIDB4MDAxLAotCTB4MDA5LCAweDAwNiwgMHgwMDEsIDB4MDNFLCAweDA4NywgMHgwQTEsIDB4MDRCLCAweDA4OCwKLQkweDBDMCwgMHgwMjcsIDB4MERDLCAweDA3NCwgMHgwMEQsIDB4MDM5LCAweDBEMywgMHgwMDAsCi0JMHgwOUYsIDB4MDczLCAweDBEMCwgMHgwMzAsIDB4MEIzLCAweDA5OCwgMHgwMDQsIDB4MEZCLAotCTB4MEJELCAweDAwNiwgMHgwQzQsIDB4MDgzLCAweDAwMCwgMHgwOUYsIDB4MDQ3LCAweDBEMCwKLQkweDAzNiwgMHgwNDgsIDB4MENDLCAweDAwMiwgMHgwNzEsIDB4MEJGLCAweDAzRiwgMHgwOUEsCi0JMHgwMTcsIDB4MEU2LCAweDAzRiwgMHgwMDgsIDB4MDIxLCAweDBFNiwgMHgwOTIsIDB4MEE0LAotCTB4MDhGLCAweDA5QSwgMHgwMTAsIDB4MDMxLCAweDBBNywgMHgwRjMsIDB4MDEwLCAweDBCMSwKLQkweDA4NCwgMHgwQUYsIDB4MDNBLCAweDBBQywgMHgwREMsIDB4MEY3LCAweDA3MywgMHgwRjIsCi0JMHgwNUMsIDB4MEM2LCAweDAyQSwgMHgwREIsIDB4MDlFLCAweDA3RSwgMHgwN0UsIDB4MDk3LAotCTB4MDMxLCAweDAwOCwgMHgwNjMsIDB4MEQwLCAweDA3MywgMHgwN0IsIDB4MDQzLCAweDBBOCwKLQkweDBFNiwgMHgwM0QsIDB4MDM0LCAweDBFQSwgMHgwRjMsIDB4MEUzLCAweDAxNSwgMHgwQkYsCi0JMHgwOUYsIDB4MDE4LCAweDA1RiwgMHgwNDUsIDB4MENGLCAweDBFOCwgMHgwOUYsIDB4MDVGLAotCTB4MDlBLCAweDA1QiwgMHgwMDMsIDB4MEQwLCAweDBGMywgMHgwRDMsIDB4MENFLCAweDAzNywKLQkweDAxQywgMHgwRDAsIDB4MDBGLCAweDBCQiwgMHgwOUUsIDB4MDY4LCAweDA3OCwgMHgwM0IsCi0JMHgwQkMsIDB4MENBLCAweDAzMSwgMHgwRTgsIDB4MEY5LCAweDBBMiwgMHgwMDIsIDB4MDEyLAotCTB4MEEyLCAweDA3MywgMHgwNTEsIDB4MDA4LCAweDA2RiwgMHgwRDEsIDB4MEYzLCAweDA0NiwKLQkweDAwMSwgMHgwMzgsIDB4MEJGLCAweDA0MCwgMHgwRkMsIDB4MDIzLCAweDAwMCwgMHgwOUMsCi0JMHgwMjEsIDB4MEU4LCAweDA0OSwgMHgwNTEsIDB4MDgwLCAweDA0RSwgMHgwOTEsIDB4MEY0LAotCTB4MDIxLCAweDAwMywgMHgwMTksIDB4MDgwLCAweDA0RSwgMHgwOUYsIDB4MEQwLCAweDAyMSwKLQkweDA2MywgMHgwMDYsIDB4MDAxLCAweDAzQSwgMHgwNTYsIDB4MDhDLCAweDAwMiwgMHgwNzQsCi0JMHgwRkUsIDB4MDc1LCAweDA0OSwgMHgwNUUsIDB4MDYzLCAweDBEMywgMHgwNEEsIDB4MDU0LAotCTB4MDQyLCAweDAzNSwgMHgwMTMsIDB4MEE3LCAweDBEMSwgMHgwODAsIDB4MDRFLCAweDA5NSwKLQkweDBFOCwgMHgwMUUsIDB4MDlBLCAweDA0QywgMHgwMDIsIDB4MDdDLCAweDBERCwgMHgwMUIsCi0JMHgwQjksIDB4MEU2LCAweDAwMSwgMHgwM0UsIDB4MDRCLCAweDBBMCwgMHgwNjIsIDB4MEEzLAotCTB4MDAwLCAweDA5RiwgMHgwNkUsIDB4MDhDLCAweDBGQywgMHgwRjMsIDB4MDAwLCAweDA5RiwKLQkweDA0QiwgMHgwQTAsIDB4MDQyLCAweDAxOCwgMHgwQ0MsIDB4MDAyLCAweDA3RCwgMHgwMDcsCi0JMHgwNDMsIDB4MERBLCAweDAxMywgMHgwMDAsIDB4MDlGLCAweDA1MSwgMHgwRDAsIDB4MDNELAotCTB4MDM0LCAweDA5OCwgMHgwMDQsIDB4MEZBLCAweDBCRCwgMHgwMUMsIDB4MDYyLCAweDA4QywKLQkweDAwMiwgMHgwN0QsIDB4MEZELCAweDAxQywgMHgwNjEsIDB4MDczLCAweDAwMCwgMHgwOUYsCi0JMHgwNDUsIDB4MEQxLCAweDBGNCwgMHgwNEUsIDB4MDYwLCAweDAxMywgMHgwRUIsIDB4MEY0LAotCTB4MDI1LCAweDBCMCwgMHgwMzMsIDB4MDAwLCAweDA5RiwgMHgwNDMsIDB4MEQxLCAweDBBNywKLQkweDA5QywgMHgwMTgsIDB4MDA0LCAweDBGQiwgMHgwOEUsIDB4MDg0LCAweDAwMywgMHgwRTksCi0JMHgwODAsIDB4MDRGLCAweDBCOSwgMHgwRTgsIDB4MDQzLCAweDBDMSwgMHgwMzAsIDB4MDA5LAotCTB4MEY3LCAweDA3QSwgMHgwMEEsIDB4MDMxLCAweDA5OCwgMHgwMDQsIDB4MEZBLCAweDAzRSwKLQkweDA4NCwgMHgwNDAsIDB4MDQxLCAweDA4MCwgMHgwNEUsIDB4MDgyLCAweDBFNywgMHgwNDEsCi0JMHgwODcsIDB4MDA5LCAweDAyMywgMHgwMDQsIDB4MDIzLCAweDAwMCwgMHgwOUQsIDB4MDA1LAotCTB4MENFLCAweDA5NiwgMHgwMUMsIDB4MDI0LCAweDA4QywgMHgwMTAsIDB4MDhDLCAweDAwMiwKLQkweDA3NCwgMHgwMTcsIDB4MDNBLCAweDAwNCwgMHgwMzgsIDB4MDQ5LCAweDAxOCwgMHgwMjEsCi0JMHgwMTgsIDB4MDA0LCAweDBFOCwgMHgwMkUsIDB4MDc0LCAweDA1MCwgMHgwRTEsIDB4MDI0LAotCTB4MDYwLCAweDA4NCwgMHgwNjAsIDB4MDEzLCAweDBBMCwgMHgwQjksIDB4MEQ0LCAweDAxMSwKLQkweDBDMiwgMHgwNDgsIDB4MEMxLCAweDAwOCwgMHgwQzAsIDB4MDI3LCAweDA0MSwgMHgwNzMsCi0JMHgwQTgsIDB4MDIzLCAweDA4NCwgMHgwOTEsIDB4MDgyLCAweDAxMSwgMHgwODAsIDB4MDRFLAotCTB4MDgyLCAweDBFNywgMHgwNTIsIDB4MDhFLCAweDAxMiwgMHgwNDYsIDB4MDA4LCAweDA0NiwKLQkweDAwMSwgMHgwM0EsIDB4MDBCLCAweDA5RCwgMHgwNDAsIDB4MDFDLCAweDAyNCwgMHgwOEMsCi0JMHgwMTAsIDB4MDhDLCAweDAwMiwgMHgwNzQsIDB4MDE3LCAweDAzQSwgMHgwMDksIDB4MDBFLAotCTB4MDEyLCAweDA0NiwgMHgwMDgsIDB4MDQ2LCAweDAwMSwgMHgwM0EsIDB4MDBCLCAweDA5OCwKLQkweDA2QSwgMHgwMUMsIDB4MDI0LCAweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRTgsCi0JMHgwMkUsIDB4MDZCLCAweDA1MCwgMHgwRTEsIDB4MDI1LCAweDA4NywgMHgwMDgsIDB4MEMwLAotCTB4MDI3LCAweDA0MSwgMHgwNzMsIDB4MDA1LCAweDA0MywgMHgwODQsIDB4MDk2LCAweDAxQywKLQkweDAyMywgMHgwMDAsIDB4MDlELCAweDAwNSwgMHgwQ0MsIDB4MEFBLCAweDAxQywgMHgwMjQsCi0JMHgwQjAsIDB4MEUxLCAweDAxOCwgMHgwMDQsIDB4MEU4LCAweDAyRSwgMHgwNzAsIDB4MDY4LAotCTB4MDcwLCAweDA5MiwgMHgwQzMsIDB4MDg0LCAweDA2MCwgMHgwMTMsIDB4MEU1LCAweDA0NCwKLQkweDBGOSwgMHgwNDAsIDB4MDlELCAweDAwNSwgMHgwQ0UsIDB4MDVBLCAweDAxQywgMHgwMjQsCi0JMHgwQjAsIDB4MEUxLCAweDAxOCwgMHgwMDQsIDB4MEY5LCAweDBEMSwgMHgwM0UsIDB4MDcwLAotCTB4MDI3LCAweDBDRiwgMHgwMTMsIDB4MEU1LCAweDA0NCwgMHgwMkMsIDB4MEEwLCAweDA0MiwKLQkweDBDQiwgMHgwODksIDB4MEYyLCAweDAyMSwgMHgwM0EsIDB4MDBCLCAweDA5QywgMHgwMEEsCi0JMHgwMUMsIDB4MDI0LCAweDBCMCwgMHgwRTEsIDB4MDE4LCAweDAwNCwgMHgwRjksIDB4MEQxLAotCTB4MDBCLCAweDAzOCwgMHgwMTAsIDB4MEIzLCAweDBDNCwgMHgwMjEsIDB4MDM5LCAweDAzNiwKLQkweDA1QywgMHgwNDIsIDB4MEM4LCAweDA4NCwgMHgwMkIsIDB4MDc5LCAweDBEMCwgMHgwNjEsCi0JMHgwQzIsIDB4MDc0LCAweDAxNSwgMHgwMjQsIDB4MEJBLCAweDBEMywgMHgwMzEsIDB4MEU1LAotCTB4MDU5LCAweDAwOCwgMHgwMjksIDB4MDA4LCAweDBFMCwgMHgwNjYsIDB4MDYzLCAweDA0MiwKLQkweDA5NSwgMHgwMTIsIDB4MDgxLCAweDAwMCwgMHgwMjksIDB4MDBCLCAweDBDMSwgMHgwNTEsCi0JMHgwMjQsIDB4MEI4LCAweDAxOSwgMHgwOTksIDB4MDkwLCAweDAyMiwgMHgwOTAsIDB4MEI0LAotCTB4MDE4LCAweDBBMCwgMHgwOTEsIDB4MDQxLCAweDAwMSwgMHgwNDEsIDB4MDQxLCAweDA0MSwKLQkweDA1MiwgMHgwODMsIDB4MENBLCAweDA0MCwgMHgwMjgsIDB4MDY4LCAweDAyOSwgMHgwMDgsCi0JMHgwQkEsIDB4MDE2LCAweDAxMCwgMHgwOUMsIDB4MDk5LCAweDAwQiwgMHgwNTYsIDB4MDk0LAotCTB4MDkwLCAweDA1MiwgMHgwMTUsIDB4MDc0LCAweDBDMCwgMHgwMjcsIDB4MDFBLCAweDAyQSwKLQkweDBEMiwgMHgwOTAsIDB4MDI1LCAweDBEMywgMHgwMDAsIDB4MDlELCAweDAyOCwgMHgwQUIsCi0JMHgwNEEsIDB4MDQyLCAweDAxNywgMHgwNEMsIDB4MDAyLCAweDA3MCwgMHgwRDQsIDB4MDg0LAotCTB4MDJFLCAweDA5OCwgMHgwMDQsIDB4MEUxLCAweDAyQSwgMHgwNDIsIDB4MDE3LCAweDA0QywKLQkweDAwMiwgMHgwNzAsIDB4MDgyLCAweDA5MCwgMHgwNEIsIDB4MEE2LCAweDAwMSwgMHgwMzgsCi0JMHgwNTEsIDB4MDQ4LCAweDA0MiwgMHgwRTksIDB4MDgwLCAweDA0RSwgMHgwMTUsIDB4MEE0LAotCTB4MDIxLCAweDA3NCwgMHgwQzAsIDB4MDI3LCAweDAwRiwgMHgwQTQsIDB4MDEyLCAweDBFOSwKLQkweDA4MCwgMHgwNEUsIDB4MDgyLCAweDBBQywgMHgwODAsIDB4MEFDLCAweDBBMCwgMHgwQUMsCi0JMHgwQTksIDB4MDU5LCAweDBFNSwgMHgwNjQsIDB4MDQ1LCAweDA2NSwgMHgwQ0EsIDB4MEM4LAotCTB4MDRBLCAweDBDRSwgMHgwMEEsIDB4MENFLCAweDA0QSwgMHgwQ0UsIDB4MDk1LCAweDA5MSwKLQkweDA5NSwgMHgwOTQsIDB4MDk1LCAweDA5MywgMHgwMjksIDB4MDI1LCAweDBDMCwgMHgwQ0MsCi0JMHgwQ0MsIDB4MDg4LCAweDBBNCwgMHgwOTcsIDB4MDU2LCAweDAzNiwgMHgwNjQsIDB4MDcyLAotCTB4MDkwLCAweDA1NCwgMHgwOEEsIDB4MDlDLCAweDA0NSwgMHgwMDgsIDB4MEI5LCAweDBCNywKLQkweDA2NiwgMHgwMTIsIDB4MDkzLCAweDAwOSwgMHgwQzksIDB4MEIyLCAweDA3NCwgMHgwOEUsCi0JMHgwQkEsIDB4MDYwLCAweDAxMywgMHgwRTUsIDB4MDM0LCAweDA4RSwgMHgwQkEsIDB4MDYwLAotCTB4MDEzLCAweDBFNCwgMHgwNzQsIDB4MDhFLCAweDBCQSwgMHgwNjAsIDB4MDEzLCAweDBFNSwKLQkweDA2OSwgMHgwMUQsIDB4MDc0LCAweDBDMCwgMHgwMjcsIDB4MENBLCAweDAyOSwgMHgwMUQsCi0JMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwQ0UsIDB4MEQyLCAweDAyNSwgMHgwRDMsIDB4MDAwLAotCTB4MDlGLCAweDAzOCwgMHgwQTQsIDB4MDRCLCAweDBBNiwgMHgwMDEsIDB4MDNFLCAweDA1RSwKLQkweDA5MSwgMHgwMkUsIDB4MDk4LCAweDAwNCwgMHgwRjksIDB4MDE1LCAweDAyMiwgMHgwNUQsCi0JMHgwMzAsIDB4MDA5LCAweDBGMywgMHgwRTksIDB4MDEyLCAweDBFOSwgMHgwODAsIDB4MDRGLAotCTB4MDkwLCAweDA1MiwgMHgwMjUsIDB4MEQzLCAweDAwMCwgMHgwOUQsIDB4MEM1LCAweDA0OCwKLQkweDAyNSwgMHgwRDMsIDB4MDAwLCAweDA5QywgMHgwNDUsIDB4MENFLCAweDBDRCwgMHgwMDksCi0JMHgwQzksIDB4MEIyLCAweDAxQSwgMHgwNDQsIDB4MEJBLCAweDA2MCwgMHgwMTMsIDB4MEU3LAotCTB4MDM0LCAweDA4OSwgMHgwNzQsIDB4MEMwLCAweDAyNywgMHgwMUMsIDB4MDI3LCAweDBCNywKLQkweDA5QywgMHgwODAsIDB4MEMyLCAweDBENywgMHgwNzYsIDB4MDU5LCAweDA5QiwgMHgwOTMsCi0JMHgwMEMsIDB4MDY0LCAweDBDMywgMHgwMUQsIDB4MDFCLCAweDBGNCwgMHgwNDUsIDB4MDRCLAotCTB4MEM3LCAweDBDNiwgMHgwM0EsIDB4MDM3LCAweDBFOCwgMHgwODEsIDB4MDRCLCAweDBDNywKLQkweDBDNiwgMHgwM0EsIDB4MDM3LCAweDBFOCwgMHgwOTEsIDB4MDRCLCAweDBDNywgMHgwQzYsCi0JMHgwMzIsIDB4MDYxLCAweDA4RSwgMHgwQjMsIDB4MEJDLCAweDBDMywgMHgwNEEsIDB4MDIyLAotCTB4MEU2LCAweDBCNSwgMHgwMjQsIDB4MDk3LCAweDA3MSwgMHgwQzksIDB4MDg3LCAweDBCNCwKLQkweDAzMSwgMHgwQUUsIDB4MDczLCAweDBBMiwgMHgwQ0YsIDB4MDM5LCAweDBEMiwgMHgwNUQsCi0JMHgwMDQsIDB4MDQ0LCAweDA0MiwgMHgwQzAsIDB4MEQ2LCAweDBERSwgMHgwNzEsIDB4MDA2LAotCTB4MDE2LCAweDBCQiwgMHgwREIsIDB4MENFLCAweDA4MywgMHgwMEMsIDB4MDY0LCAweDBDMywKLQkweDAxRCwgMHgwMzEsIDB4MDEzLCAweDAwNCwgMHgwRjksIDB4MDk1LCAweDA0RCwgMHgwMTMsCi0JMHgwMzIsIDB4MDkzLCAweDA2MywgMHgwNUUsIDB4MDY2LCAweDAxNCwgMHgwQ0MsIDB4MDI5LAotCTB4MDJBLCAweDA1MywgMHgwMzAsIDB4MEE2LCAweDA2MSwgMHgwNEMsIDB4MEMyLCAweDA5OSwKLQkweDA4NSwgMHgwM0EsIDB4MDcyLCAweDBDQywgMHgwQzIsIDB4MDk5LCAweDA4NSwgMHgwMDYsCi0JMHgwMUIsIDB4MEIzLCAweDAwQSwgMHgwNjYsIDB4MDE0LCAweDAxNCwgMHgwMjQsIDB4MDk5LAotCTB4MDg1LCAweDAzMywgMHgwMEEsIDB4MDA4LCAweDBCMSwgMHgwODYsIDB4MDYxLCAweDA0QywKLQkweDBDMiwgMHgwODQsIDB4MDIxLCAweDA2OCwgMHgwNzMsIDB4MDNCLCAweDAzMCwgMHgwQTYsCi0JMHgwNjEsIDB4MDQxLCAweDA0RSwgMHgwQTUsIDB4MDk4LCAweDA1MywgMHgwMzAsIDB4MEFDLAotCTB4MDU5LCAweDA3NiwgMHgwNjEsIDB4MDRDLCAweDBDMiwgMHgwQjAsIDB4MDhELCAweDBENiwKLQkweDA2MSwgMHgwNEMsIDB4MEMyLCAweDBCMCwgMHgwMkMsIDB4MEY2LCAweDA2MSwgMHgwNEMsCi0JMHgwQzIsIDB4MEIxLCAweDA4QywgMHgwQTUsIDB4MDk4LCAweDA1MywgMHgwMzAsIDB4MEFDLAotCTB4MDBGLCAweDAyNCwgMHgwQ0MsIDB4MDI5LCAweDA5OCwgMHgwNTYsIDB4MDBGLCAweDAyOCwKLQkweDA2NiwgMHgwMTUsIDB4MDkyLCAweDAxQSwgMHgwMTksIDB4MDg1LCAweDAzMywgMHgwMEEsCi0JMHgwQ0EsIDB4MDg1LCAweDAwQywgMHgwQzIsIDB4MDk5LCAweDA4NSwgMHgwNjUsIDB4MEMzLAotCTB4MEQ5LCAweDA4NSwgMHgwMzMsIDB4MDBBLCAweDBDRSwgMHgwNzAsIDB4MDg2LCAweDA2MSwKLQkweDA0QywgMHgwQzIsIDB4MEIzLCAweDA5NywgMHgwNzEsIDB4MDBDLCAweDA5OSwgMHgwM0IsCi0JMHgwQ0MsIDB4MDgzLCAweDA1OCwgMHgwMEIsIDB4MEVBLCAweDA3NywgMHgwOUQsIDB4MDA2LAotCTB4MDRBLCAweDBCRSwgMHgwMDQsIDB4MDc0LCAweDA2MCwgMHgwRTAsIDB4MEQxLCAweDA0RSwKLQkweDAzOCwgMHgwNEMsIDB4MDNFLCAweDBFRSwgMHgwM0UsIDB4MEVFLCAweDAzRSwgMHgwRUUsCi0JMHgwM0UsIDB4MEVFLCAweDAzMCwgMHgwQkIsIDB4MENBLCAweDBFMSwgMHgwMUYsIDB4MDc3LAotCTB4MDFGLCAweDA3NywgMHgwMUYsIDB4MDc3LCAweDAxRiwgMHgwNzcsIDB4MDI3LCAweDA3MCwKLQkweDA4RiwgMHgwQkIsIDB4MDgwLCAweDAwRSwgMHgwMTEsIDB4MEY3LCAweDA3MSwgMHgwRjcsCi0JMHgwN0MsIDB4MDZGLCAweDAzQywgMHgwQjMsIDB4MDM2LCAweDAwMiwgMHgwRkIsIDB4MDhELAotCTB4MEU2LCAweDA1NSwgMHgwNzAsIDB4MDdGLCAweDAyRCwgMHgwMjQsIDB4MDY5LCAweDA1NSwKLQkweDA0RiwgMHgwNTgsIDB4MEE5LCAweDAyMywgMHgwMUYsIDB4MDU0LCAweDBGNywgMHgwOEEsCi0JMHgwOTUsIDB4MDI1LCAweDAyQiwgMHgwNzUsIDB4MDBDLCAweDBDQywgMHgwQUMsIDB4MDU2LAotCTB4MDUxLCAweDBDQywgMHgwNTEsIDB4MEU0LCAweDA0NSwgMHgwQ0UsIDB4MEEyLCAweDAxMiwKLQkweDAzOSwgMHgwQzAsIDB4MEEwLCAweDBBRiwgMHgwNTYsIDB4MDZBLCAweDA0OSwgMHgwN0YsCi0JMHgwMDIsIDB4MDhDLCAweDAwOSwgMHgwRjgsIDB4MDBCLCAweDBFQiwgMHgwQUYsIDB4MDU2LAotCTB4MDc2LCAweDA2NywgMHgwNTIsIDB4MEIyLCAweDA4RSwgMHgwNjksIDB4MEE3LCAweDAxMSwKLQkweDA3MywgMHgwQTgsIDB4MEIxLCAweDBCQywgMHgwQ0EsIDB4MEEwLCAweDBBOSwgMHgwMzYsCi0JMHgwNTAsIDB4MDJDLCAweDA5OCwgMHgwRTcsIDB4MDBBLCAweDBGNSwgMHgwNjYsIDB4MEE0LAotCTB4MDk3LCAweDBFMiwgMHgwNUEsIDB4MDMwLCAweDAyNywgMHgwQkEsIDB4MEY3LCAweDA4MywKLQkweDA0RSwgMHgwQTUsIDB4MDMzLCAweDAwQSwgMHgwNjYsIDB4MDE1LCAweDA4RCwgMHgwRTYsCi0JMHgwNTUsIDB4MDM5LCAweDBEMiwgMHgwQTcsIDB4MEFDLCAweDA1NCwgMHgwNjAsIDB4MDE2LAotCTB4MDcwLCAweDAxQiwgMHgwNzIsIDB4MDhFLCAweDA2MiwgMHgwOEYsIDB4MDIyLCAweDAyRSwKLQkweDA3NSwgMHgwMTYsIDB4MDAyLCAweDBGQiwgMHgwOEQsIDB4MEU2LCAweDAwQSwgMHgwOTUsCi0JMHgwM0QsIDB4MDYyLCAweDBBMywgMHgwMDAsIDB4MEI3LCAweDAwMSwgMHgwQjUsIDB4MDUzLAotCTB4MERFLCAweDAyQSwgMHgwNTQsIDB4MDk0LCAweDBBRCwgMHgwRDQsIDB4MDMzLCAweDAzMiwKLQkweDBCMSwgMHgwNTksIDB4MDQ3LCAweDAzMSwgMHgwNDcsIDB4MDkxLCAweDAxNywgMHgwM0EsCi0JMHgwODgsIDB4MDQ4LCAweDBFNywgMHgwMDIsIDB4MEIwLCAweDAxNywgMHgwREMsIDB4MDY3LAotCTB4MDlELCAweDA0QiwgMHgwOEQsIDB4MEU3LCAweDA1MiwgMHgwQUEsIDB4MDdCLCAweDBENCwKLQkweDBBQSwgMHgwOTIsIDB4MEJELCAweDBENiwgMHgwOTksIDB4MEJDLCAweDA1NiwgMHgwMDIsCi0JMHgwRkIsIDB4MDhDLCAweDBGMywgMHgwNjYsIDB4MDY2LCAweDBDNiwgMHgwRjMsIDB4MDY2LAotCTB4MDY2LCAweDA2MiwgMHgwOTksIDB4MDJBLCAweDBGOCwgMHgwMTgsIDB4MDY4LCAweDA3MCwKLQkweDBCMCwgMHgwOEEsIDB4MDBELCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTIsCi0JMHgwMzIsIDB4MEUxLCAweDA0MCwgMHgwNUMsIDB4MDM4LCAweDAwQiwgMHgwRUEsIDB4MDlCLAotCTB4MDg3LCAweDAwMSwgMHgwN0QsIDB4MEMwLCAweDA1RiwgMHgwNzAsIDB4MDE3LCAweDBEQywKLQkweDAwNSwgMHgwRjUsIDB4MERDLCAweDA5QiwgMHgwMDEsIDB4MDdELCAweDA2MSwgMHgwNEQsCi0JMHgwODAsIDB4MEJFLCAweDBBNywgMHgwNzksIDB4MDgyLCAweDBBMiwgMHgwMUYsIDB4MDUwLAotCTB4MDE1LCAweDAyQSwgMHgwOEYsIDB4MDhCLCAweDAxQywgMHgwRTUsIDB4MEE1LCAweDAxMywKLQkweDA4NCwgMHgwNTgsIDB4MEU3LCAweDAwMiwgMHgwOTEsIDB4MDU0LCAweDAwNSwgMHgwMDIsCi0JMHgwNEIsIDB4MEJELCAweDAyMiwgMHgwMUEsIDB4MDk0LCAweDA3RiwgMHgwOUMsIDB4MDFBLAotCTB4MEMwLCAweDA1RiwgMHgwNDIsIDB4MDFBLCAweDAyMSwgMHgwRDEsIDB4MDgwLCAweDA1OSwKLQkweDBDMCwgMHgwNkQsIDB4MDFDLCAweDAyQywgMHgwMEEsIDB4MDgzLCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NCwgMHgwMUMsIDB4MEI4LCAweDA1QywgMHgwNkUsIDB4MDE3LCAweDA5QywKLQkweDAyRiwgMHgwMzgsIDB4MDVFLCAweDA3MCwgMHgwRTcsIDB4MEI4LCAweDA1RSwgMHgwNzAsCi0JMHgwQkMsIDB4MEUxLCAweDA3OSwgMHgwQzIsIDB4MEYzLCAweDA4NSwgMHgwRTcsIDB4MDBCLAotCTB4MENFLCAweDAxNywgMHgwOUMsIDB4MDI5LCAweDA5QywgMHgwMjksIDB4MDlDLCAweDAyOSwKLQkweDA5QywgMHgwMjMsIDB4MDBGLCAweDA1OCwgMHgwMTQsIDB4MEVFLCAweDAzNSwgMHgwNzcsCi0JMHgwMjYsIDB4MDIxLCAweDA5MywgMHgwMDUsIDB4MEM5LCAweDBCMCwgMHgwMTcsIDB4MEQyLAotCTB4MDFELCAweDAxOCwgMHgwOEEsIDB4MDIxLCAweDA5MywgMHgwMDUsIDB4MEM5LCAweDBCMCwKLQkweDAxNywgMHgwRDEsIDB4MDg3LCAweDBBQywgMHgwMEEsIDB4MDc0LCAweDAwRiwgMHgwQUUsCi0JMHgwRjUsIDB4MDVBLCAweDA4MiwgMHgwQTMsIDB4MEU0LCAweDAzQSwgMHgwMzEsIDB4MDE0LAotCTB4MEJCLCAweDBENywgMHgwNTksIDB4MDk5LCAweDA3NCwgMHgwQTIsIDB4MDE5LCAweDAzMCwKLQkweDA1QywgMHgwOUIsIDB4MDAxLCAweDA3RCwgMHgwMTgsIDB4MDdBLCAweDBDMCwgMHgwQTcsCi0JMHgwNDAsIDB4MEY4LCAweDA0MywgMHgwRDQsIDB4MDYzLCAweDA4OSwgMHgwMjUsIDB4MEQwLAotCTB4MDEwLCAweDBENiwgMHgwMUMsIDB4MDZBLCAweDAxMCwgMHgwRjUsIDB4MDU1LCAweDA4OSwKLQkweDAyNSwgMHgwRDEsIDB4MDUxLCAweDA2NiwgMHgwMUYsIDB4MDUxLCAweDBGNSwgMHgwOTEsCi0JMHgwNDksIDB4MDJFLCAweDA4OSwgMHgwMTUsIDB4MDk4LCAweDA2QSwgMHgwQTMsIDB4MEUwLAotCTB4MDhBLCAweDA5NCwgMHgwNjUsIDB4MDY0LCAweDAwRSwgMHgwMTMsIDB4MDE3LCAweDAzOCwKLQkweDBBOCwgMHgwODYsIDB4MDRDLCAweDAxNywgMHgwMjYsIDB4MEMwLCAweDA1RiwgMHgwNDYsCi0JMHgwMUUsIDB4MEIwLCAweDAyOCwgMHgwNjMsIDB4MDFGLCAweDAwOCwgMHgwN0EsIDB4MDhDLAotCTB4MDcxLCAweDAyNCwgMHgwQkEsIDB4MDAyLCAweDAxQSwgMHgwRDAsIDB4MDBELCAweDA0MiwKLQkweDAxRSwgMHgwQUEsIDB4MEIxLCAweDAyNCwgMHgwQkEsIDB4MDJBLCAweDAyRCwgMHgwMzEsCi0JMHgwRjUsIDB4MDFGLCAweDA1OCwgMHgwNzQsIDB4MDkyLCAweDBFOCwgMHgwODcsIDB4MDVBLAotCTB4MDYzLCAweDA1MiwgMHgwREUsIDB4MEY0LCAweDA1MSwgMHgwNjksIDB4MDRBLCAweDAzRSwKLQkweDAwOSwgMHgwNjksIDB4MDQ2LCAweDA1MCwgMHgwRjAsIDB4MEUxLCAweDAzMSwgMHgwNzMsCi0JMHgwMDUsIDB4MDQ1LCAweDBCRCwgMHgwNTksIDB4MDhELCAweDA4QiwgMHgwNEEsIDB4MDdDLAotCTB4MEQzLCAweDBFRCwgMHgwMzgsIDB4MEU5LCAweDBEMywgMHgwNEUsIDB4MDc0LCAweDBFRCwKLQkweDA0NCwgMHgwMzIsIDB4MDYwLCAweDBCOSwgMHgwMzYsIDB4MDAyLCAweDBGQSwgMHgwNUIsCi0JMHgwREUsIDB4MDhBLCAweDAyRCwgMHgwMjksIDB4MEQwLCAweDBFMSwgMHgwMjEsIDB4MEY1LAotCTB4MEEzLCAweDA5MiwgMHgwMjEsIDB4MEYyLCAweDAxOSwgMHgwMzAsIDB4MDVDLCAweDA5QiwKLQkweDAwMSwgMHgwN0QsIDB4MDIxLCAweDBGNSwgMHgwQTAsIDB4MEM2LCAweDAwMSwgMHgwNjcsCi0JMHgwMDEsIDB4MEI0LCAweDA0NSwgMHgwQ0UsIDB4MEE1LCAweDAxMiwgMHgwMzksIDB4MEQ0LAotCTB4MDFDLCAweDAwNSwgMHgwRjQsIDB4MDQwLCAweDBBMSwgMHgwQzIsIDB4MEMzLCAweDA1MCwKLQkweDA2QSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsCi0JMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwQUEsIDB4MEFBLCAweDBBQSwgMHgwODEsIDB4MEFGLAotCTB4MDg2LCAweDA5RiwgMHgwMTksIDB4MDFCLCAweDBFNywgMHgwODEsIDB4MEYzLCAweDA2NSwKLQkweDBGMiwgMHgwODAsIDB4MEJFLCAweDA3MCwgMHgwMTcsIDB4MERGLCAweDBERiwgMHgwMzgsCi0JMHgwMEIsIDB4MEVCLCAweDAwRCwgMHgwQzMsIDB4MDgwLCAweDBCRSwgMHgwQTcsIDB4MDBGLAotCTB4MDk1LCAweDA0RiwgMHgwNUEsIDB4MDk0LCAweDBDMCwgMHgwMkMsIDB4MEQ4LCAweDBCMSwKLQkweDBBNywgMHgwQ0UsIDB4MDVBLCAweDAxMSwgMHgwNzMsIDB4MEE4LCAweDAzQSwgMHgwQzIsCi0JMHgwQ0MsIDB4MEI2LCAweDAzMCwgMHgwMTcsIDB4MERDLCAweDA2RiwgMHgwMzUsIDB4MEE5LAotCTB4MDgwLCAweDA0RCwgMHgwQTcsIDB4MENFLCAweDAyQSwgMHgwMTgsIDB4MDc5LCAweDBDNSwKLQkweDA0OSwgMHgwREUsIDB4MDYxLCAweDBBOCwgMHgwMjIsIDB4MEU3LCAweDA1MCwgMHgwMzMsCi0JMHgwRjksIDB4MDk4LCAweDA2NCwgMHgwMDgsIDB4MEI5LCAweDA5NSwgMHgwNDIsIDB4MEZDLAotCTB4MENDLCAweDBEOSwgMHgwOTUsIDB4MDNELCAweDA2MiwgMHgwQTIsIDB4MDQ4LCAweDBENCwKLQkweDA0OCwgMHgwRTcsIDB4MDAyLCAweDA4OCwgMHgwQjksIDB4MEMxLCAweDBBMCwgMHgwRTMsCi0JMHgwOUQsIDB4MDRFLCAweDA2MiwgMHgwRTYsIDB4MENDLCAweDBDNiwgMHgwNkIsIDB4MENFLAotCTB4MDgzLCAweDAxMCwgMHgwQzksIDB4MDgyLCAweDBFNCwgMHgwREEsIDB4MEMyLCAweDBDOCwKLQkweDAxRSwgMHgwQzMsIDB4MEI5LCAweDAzNiwgMHgwMDIsIDB4MEZBLCAweDBBOSwgMHgwRUIsCi0JMHgwNEUsIDB4MDMwLCAweDAzMCwgMHgwRkEsIDB4MDBELCAweDBGMCwgMHgwQTksIDB4MEVCLAotCTB4MDQwLCAweDBCOSwgMHgwMEYsIDB4MEFBLCAweDA3QSwgMHgwRDIsIDB4MEMyLCAweDBDOCwKLQkweDBGQSwgMHgwQTcsIDB4MEFELCAweDA0MSwgMHgwMEEsIDB4MDQ3LCAweDBENSwgMHgwM0QsCi0JMHgwNjgsIDB4MEFDLCAweDBGMSwgMHgwRjUsIDB4MDRGLCAweDA1QSwgMHgwOTcsIDB4MDU0LAotCTB4MDdELCAweDA0RiwgMHgwQTgsIDB4MEFBLCAweDA1NSwgMHgwMUYsIDB4MDExLCAweDA3MywKLQkweDA1QSwgMHgwQjAsIDB4MDE3LCAweDBERSwgMHgwNUQsIDB4MDU5LCAweDBBOSwgMHgwMjUsCi0JMHgwRDAsIDB4MDU1LCAweDAyQSwgMHgwNDYsIDB4MEJDLCAweDBCOCwgMHgwMjIsIDB4MEFFLAotCTB4MDQ1LCAweDAyOSwgMHgwM0UsIDB4MDE0LCAweDBGQSwgMHgwRTEsIDB4MDk5LCAweDA5NCwKLQkweDBDQSwgMHgwNEEsIDB4MEJFLCAweDAzRCwgMHgwRDYsIDB4MDk5LCAweDA5MiwgMHgwNUQsCi0JMHgwMTUsIDB4MDE3LCAweDBDOCwgMHgwRDcsIDB4MERDLCAweDAxNSwgMHgwMTcsIDB4MDhBLAotCTB4MDQwLCAweDAxRiwgMHgwMEEsIDB4MDlFLCAweDBBQywgMHgwQzksIDB4MDY1LCAweDA0OSwKLQkweDA1QywgMHgwMUQsIDB4MDEwLCAweDA2OCwgMHgwNEEsIDB4MDNFLCAweDA1QiwgMHgwREUsCi0JMHgwODMsIDB4MDE2LCAweDA5NSwgMHgwODAsIDB4MEJFLCAweDA5MSwgMHgwNzQsIDB4MDU4LAotCTB4MEE0LCAweDAwMCwgMHgwN0MsIDB4MDM4LCAweDBFNywgMHgwNTYsIDB4MDMwLCAweDAxNywKLQkweDBERiwgMHgwNzUsIDB4MEE2LCAweDA2NCwgMHgwOTcsIDB4MDQ1LCAweDAyMCwgMHgwOUQsCi0JMHgwMDMsIDB4MDVGLCAweDA3MCwgMHgwNTQsIDB4MDVFLCAweDAyOSwgMHgwMUQsIDB4MEYwLAotCTB4MEE5LCAweDBFQSwgMHgwQ0MsIDB4MDg2LCAweDA1NCwgMHgwOTUsIDB4MEMxLCAweDBEMSwKLQkweDAwNiwgMHgwODMsIDB4MDBGLCAweDBBQSwgMHgwN0IsIDB4MEQwLCAweDA2NSwgMHgwNDksCi0JMHgwNDUsIDB4MEJELCAweDBFOSwgMHgwNjIsIDB4MEQyLCAweDA5MSwgMHgwREYsIDB4MDA0LAotCTB4MDVELCAweDAxNiwgMHgwMjksIDB4MDFDLCAweDA3RCwgMHgwNEYsIDB4MEFDLCAweDAxQSwKLQkweDA0NywgMHgwMUEsIDB4MEE5LCAweDBGNSwgMHgwNjcsIDB4MDY2LCAweDA1MywgMHgwMjgsCi0JMHgwQjcsIDB4MEJELCAweDAyQywgMHgwNUEsIDB4MDUyLCAweDAzQiwgMHgwRTMsIDB4MERELAotCTB4MDU5LCAweDBBOSwgMHgwMjUsIDB4MEQxLCAweDBBOCwgMHgwQUMsIDB4MDA4LCAweDA2QiwKLQkweDBFRSwgMHgwMDgsIDB4MEFCLCAweDBDNSwgMHgwMjAsIDB4MDJGLCAweDA4NSwgMHgwNEYsCi0JMHgwNTYsIDB4MDY2LCAweDA3NSwgMHgwNDksIDB4MDVDLCAweDAxQywgMHgwMTgsIDB4MDFELAotCTB4MDgxLCAweDBDMiwgMHgwNjQsIDB4MDA1LCAweDBGMCwgMHgwODAsIDB4MEJFLCAweDAzNSwKLQkweDA1QywgMHgwRDAsIDB4MDE3LCAweDBDMiwgMHgwNTUsIDB4MEYwLCAweDA5NSwgMHgwN0MsCi0JMHgwMjUsIDB4MDVGLCAweDAwOCwgMHgwMEIsIDB4MEUxLCAweDAwMSwgMHgwN0MsIDB4MDdCLAotCTB4MEFCLCAweDAzNSwgMHgwMjQsIDB4MEJBLCAweDAxMCwgMHgwNTUsIDB4MDkzLCAweDAxQSwKLQkweDBGQiwgMHgwODIsIDB4MDJBLCAweDBGMSwgMHgwNDgsIDB4MEQ3LCAweDBDMiwgMHgwQTcsCi0JMHgwQUIsIDB4MDMxLCAweDBCMiwgMHgwQTQsIDB4MEFDLCAweDA2MywgMHgwOUQsIDB4MDRBLAotCTB4MDhELCAweDA3QywgMHgwN0IsIDB4MEFCLCAweDAzNSwgMHgwMjQsIDB4MEJBLCAweDAxMCwKLQkweDA1NCwgMHgwMzAsIDB4MDhELCAweDA3RCwgMHgwQzEsIDB4MDE1LCAweDA3OCwgMHgwQUMsCi0JMHgwNkYsIDB4MDVBLCAweDA5NCwgMHgwNjAsIDB4MDFBLCAweDBFMywgMHgwNzksIDB4MEQ0LAotCTB4MEFBLCAweDA0RiwgMHgwODUsIDB4MDRGLCAweDA1NiwgMHgwNjYsIDB4MEQ1LCAweDA0OSwKLQkweDA1OCwgMHgwQzcsIDB4MDNBLCAweDA5NSwgMHgwNDksIDB4MEYwLCAweDA0NSwgMHgwRDEsCi0JMHgwNjIsIDB4MDk0LCAweDA4NiwgMHgwQkMsIDB4MDFELCAweDAxMywgMHgwRDIsIDB4MDkwLAotCTB4MEZGLCAweDBDRiwgMHgwN0EsIDB4MDgzLCAweDBGMiwgMHgwNTAsIDB4MDMxLCAweDBERSwKLQkweDAwMCwgMHgwNjAsIDB4MDYwLCAweDBBMSwgMHgwMTcsIDB4MDM1LCAweDBBOCwgMHgwNUYsCi0JMHgwOUIsIDB4MDFCLCAweDAzNywgMHgwMDcsIDB4MDQ0LCAweDAxQSwgMHgwMzAsIDB4MDBCLAotCTB4MDM4LCAweDAwRCwgMHgwQkMsIDB4MDFDLCAweDBFMCwgMHgwRDAsIDB4MDQ3LCAweDBDRSwKLQkweDBBMCwgMHgwQUEsIDB4MDdBLCAweDBBMSwgMHgwOTgsIDB4MDZBLCAweDA5MiwgMHgwOTUsCi0JMHgwM0QsIDB4MDY4LCAweDAzMSwgMHgwODAsIDB4MDVCLCAweDA4MCwgMHgwREEsIDB4MEE5LAotCTB4MEVGLCAweDA0MSwgMHgwOTUsIDB4MDI1LCAweDAxNiwgMHgwRjcsIDB4MEE1LCAweDA4QiwKLQkweDA0QSwgMHgwQzYsIDB4MDc5LCAweDBCMywgMHgwMzMsIDB4MDYwLCAweDAyRiwgMHgwQUEsCi0JMHgwOUUsIDB4MEIxLCAweDA1MSwgMHgwODAsIDB4MDU5LCAweDA5RSwgMHgwQ0EsIDB4MEE3LAotCTB4MEFDLCAweDAwQSwgMHgwMzAsIDB4MDBCLCAweDA2NywgMHgwQjIsIDB4MEFELCAweDBENSwKLQkweDBEQSwgMHgwOTIsIDB4MDVELCAweDAxNywgMHgwQTMsIDB4MDAwLCAweDBCMywgMHgwMkQsCi0JMHgwOTUsIDB4MDZFLCAweDAwOCwgMHgwQTksIDB4MDU4LCAweDBBMSwgMHgwMTcsIDB4MDNBLAotCTB4MDhCLCAweDAwMSwgMHgwN0QsIDB4MDU0LCAweDBGNywgMHgwOEUsIDB4MDk1LCAweDAyNSwKLQkweDAwOCwgMHgwMUMsIDB4MEUwLCAweDA1NiwgMHgwMDIsIDB4MEZCLCAweDBDMSwgMHgwRDEsCi0JMHgwMTUsIDB4MDE4LCAweDAwNSwgMHgwOTIsIDB4MDZCLCAweDAzQywgMHgwMUQsIDB4MDEyLAotCTB4MDI4LCAweDBDMCwgMHgwMkMsIDB4MEE1LCAweDA2QywgMHgwMTEsIDB4MDcwLCAweDAxNywKLQkweDBCMiwgMHgwMzgsIDB4MDRELCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQjQsCi0JMHgwRUMsIDB4MDRBLCAweDBFRCwgMHgwQjMsIDB4MDlFLCAweDAwMiwgMHgwRkIsIDB4MDgwLAotCTB4MEJFLCAweDBFMCwgMHgwMkYsIDB4MEIxLCAweDAzOSwgMHgwOTMsIDB4MDNFLCAweDA2RCwKLQkweDBFNywgMHgwMTAsIDB4MDYwLCAweDA5RiwgMHgwMzIsIDB4MEE5LCAweDBBMiwgMHgwNkMsCi0JMHgwMDUsIDB4MEY0LCAweDA0MCwgMHgwRTYsIDB4MDBBLCAweDA5NSwgMHgwM0QsIDB4MDZBLAotCTB4MDIzLCAweDAwMCwgMHgwQjMsIDB4MDgwLCAweDBEQSwgMHgwQTcsIDB4MEQ2LCAweDAyQSwKLQkweDAwMywgMHgwMEQsIDB4MDcwLCAweDAxNywgMHgwRDIsIDB4MDJFLCAweDA3NiwgMHgwMjksCi0JMHgwNEYsIDB4MEJDLCAweDA1NCwgMHgwQTYsIDB4MDUxLCAweDA2RiwgMHgwN0EsIDB4MDU4LAotCTB4MEI0LCAweDBBQywgMHgwMDUsIDB4MEY0LCAweDA4QiwgMHgwQTIsIDB4MEY0LCAweDAwRSwKLQkweDAzNSwgMHgwMEQsIDB4MDQ5LCAweDAyRSwgMHgwQjQsIDB4MENDLCAweDAxOCwgMHgwQTUsCi0JMHgwQzgsIDB4MEY4LCAweDA0QSwgMHgwOTcsIDB4MDIzLCAweDBFMSwgMHgwMDUsIDB4MDJFLAotCTB4MDQ3LCAweDBDMiwgMHgwOEEsIDB4MDVDLCAweDA4RiwgMHgwODUsIDB4MDY5LCAweDA3MiwKLQkweDAzRSwgMHgwMUYsIDB4MDRBLCAweDBDMywgMHgwNTUsIDB4MDFGLCAweDA1NiwgMHgwNDMsCi0JMHgwMzIsIDB4MDhDLCAweDBBMywgMHgwNUUsIDB4MDYwLCAweDBBOCwgMHgwNDUsIDB4MENFLAotCTB4MDBELCAweDA2MCwgMHgwMkYsIDB4MEEzLCAweDA4NCwgMHgwOUQsIDB4MEQ4LCAweDBGMCwKLQkweDAxNywgMHgwRDIsIDB4MDJFLCAweDAwRSwgMHgwMUIsIDB4MDIzLCAweDA4NCwgMHgwRDgsCi0JMHgwMEIsIDB4MEVCLCAweDA4OSwgMHgwRjMsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLAotCTB4MEJCLCAweDAzOSwgMHgwODUsIDB4MERGLCAweDAyMiwgMHgwMDMsIDB4MEU3LCAweDAwMSwKLQkweDA3RCwgMHgwQzAsIDB4MDVGLCAweDA3MCwgMHgwMTcsIDB4MEQxLCAweDAxNywgMHgwMzgsCi0JMHgwMTQsIDB4MDVCLCAweDBENiwgMHgwQTIsIDB4MDc0LCAweDAwRCwgMHgwNEIsIDB4MDdBLAotCTB4MEIzLCAweDAzMSwgMHgwOTYsIDB4MDk0LCAweDA2QiwgMHgwQ0MsIDB4MDM1LCAweDAyMywKLQkweDBENywgMHgwNDksIDB4MDQ4LCAweDAxNSwgMHgwNzMsIDB4MDI5LCAweDAwRiwgMHgwNUQsCi0JMHgwOEEsIDB4MEMwLCAweDA1RiwgMHgwNEQsIDB4MDc5LCAweDA4NCwgMHgwMzUsIDB4MDgwLAotCTB4MEJFLCAweDA4OCwgMHgwMUMsIDB4MEMzLCAweDA1MiwgMHgwOUYsIDB4MDU5LCAweDA2OCwKLQkweDBDMCwgMHgwMkMsIDB4MEUwLCAweDAzNiwgMHgwQUEsIDB4MDdCLCAweDBDRCwgMHgwNEEsCi0JMHgwOTIsIDB4MEJFLCAweDBGMywgMHgwODEsIDB4MDRBLCAweDA3RCwgMHgwNUIsIDB4MDU5LAotCTB4MDk0LCAweDBDQSwgMHgwMUMsIDB4MDI0LCAweDBFRSwgMHgwQzcsIDB4MDgwLCAweDBCRSwKLQkweDA4OCwgMHgwMUMsIDB4MEMzLCAweDA1MiwgMHgwOUYsIDB4MDU5LCAweDA2OCwgMHgwQzAsCi0JMHgwMkMsIDB4MEUwLCAweDAzNiwgMHgwQUEsIDB4MDdCLCAweDBDRCwgMHgwNEEsIDB4MDkyLAotCTB4MEJFLCAweDBGMywgMHgwODEsIDB4MDQzLCAweDA4NCwgMHgwOUMsIDB4MDdCLCAweDAzOCwKLQkweDAwQiwgMHgwRUIsIDB4MEFGLCAweDA3MCwgMHgwRDQsIDB4MEVBLCAweDA1MywgMHgwMDAsCi0JMHgwOUIsIDB4MDRGLCAweDA5QywgMHgwNTQsIDB4MDMwLCAweDBGMywgMHgwOEEsIDB4MDk0LAotCTB4MEZBLCAweDBCNiwgMHgwQjMsIDB4MDI5LCAweDA5NCwgMHgwMjIsIDB4MEU2LCAweDAxQSwKLQkweDA4NSwgMHgwRjksIDB4MEIwLCAweDA1OSwgMHgwOTMsIDB4MEY5LCAweDBEMiwgMHgwQzQsCi0JMHgwMzIsIDB4MDYwLCAweDBCOSwgMHgwMzYsIDB4MEIwLCAweDBCMywgMHgwOTAsIDB4MEQ5LAotCTB4MDc3LCAweDAyNiwgMHgwMUMsIDB4MDI3LCAweDAyMiwgMHgwRTgsIDB4MDk2LCAweDBCNCwKLQkweDAyMywgMHgwRUEsIDB4MDlFLCAweDBCNSwgMHgwMTEsIDB4MDgwLCAweDA1OSwgMHgwNjUsCi0JMHgwODYsIDB4MDIwLCAweDA3MywgMHgwOTYsIDB4MDhELCAweDA3OSwgMHgwQUQsIDB4MDU4LAotCTB4MDBCLCAweDBFOSwgMHgwMTcsIDB4MDQ0LCAweDA4QSwgMHgwNEEsIDB4MDA3LCAweDBENywKLQkweDA3QSwgMHgwODIsIDB4MEExLCAweDA5MCwgMHgwRkEsIDB4MEVGLCAweDAwMSwgMHgwNTQsCi0JMHgwQkEsIDB4MDUwLCAweDBENCwgMHgwNTksIDB4MDFFLCAweDAyQywgMHgwRTksIDB4MEYzLAotCTB4MDhBLCAweDA5OSwgMHgwODUsIDB4MDZCLCAweDAwQiwgMHgwMjMsIDB4MDE1LCAweDA5NywKLQkweDA3MiwgMHgwNjEsIDB4MDE3LCAweDAzMCwgMHgwRDQsIDB4MDJDLCAweDA3MywgMHgwODcsCi0JMHgwNDgsIDB4MEFBLCAweDAwMiwgMHgwODEsIDB4MDI1LCAweDBERSwgMHgwOTEsIDB4MDBELAotCTB4MDRBLCAweDBDMCwgMHgwNUYsIDB4MDdFLCAweDBEMiwgMHgwODAsIDB4MEE1LCAweDAzRSwKLQkweDBCMiwgMHgwRDAsIDB4MEM4LCAweDA2QiwgMHgwODAsIDB4MEJFLCAweDA4OCwgMHgwMUMsCi0JMHgwRUEsIDB4MDA5LCAweDAxNywgMHgwNDQsIDB4MDFBLCAweDAzNywgMHgwMUEsIDB4MDkxLAotCTB4MDc0LCAweDA1OCwgMHgwQTMsIDB4MDcxLCAweDBBRiwgMHgwMDcsIDB4MDQ0LCAweDA1NCwKLQkweDA2RSwgMHgwMzUsIDB4MEUwLCAweDBFOCwgMHgwQUEsIDB4MDY0LCAweDAwRiwgMHgwOTAsCi0JMHgwRkEsIDB4MEQwLCAweDA2MywgMHgwMDAsIDB4MEIzLCAweDA4MCwgMHgwREEsIDB4MDJDLAotCTB4MDczLCAweDA4NywgMHgwNDgsIDB4MEFBLCAweDAwMiwgMHgwODEsIDB4MDI1LCAweDBERSwKLQkweDA5MSwgMHgwMEQsIDB4MDRBLCAweDBDMCwgMHgwNUYsIDB4MDQ4LCAweDBCQSwgMHgwMjcsCi0JMHgwQTMsIDB4MDAwLCAweDBCNywgMHgwMDEsIDB4MEI3LCAweDA0RiwgMHgwOUMsIDB4MEI0LAotCTB4MDZCLCAweDBDQywgMHgwMzUsIDB4MDE2LCAweDBGNSwgMHgwNjYsIDB4MDYzLCAweDAyRCwKLQkweDAyOSwgMHgwMUUsIDB4MEJBLCAweDA0QSwgMHgwNDAsIDB4MEFCLCAweDA5OSwgMHgwNDgsCi0JMHgwN0EsIDB4MEVDLCAweDA1MCwgMHgwOEIsIDB4MDlDLCAweDAwOCwgMHgwMjIsIDB4MEZDLAotCTB4MEY5LCAweDBCMiwgMHgwNTUsIDB4MDNELCAweDA2MiwgMHgwQTksIDB4MDIzLCAweDA1MSwKLQkweDAyMywgMHgwOUMsIDB4MDBBLCAweDAzQywgMHgwNzMsIDB4MDBELCAweDA0NCwgMHgwNUMsCi0JMHgwRTEsIDB4MDUwLCAweDA3MSwgMHgwQ0UsIDB4MEExLCAweDAxRiwgMHgwRTcsIDB4MDE1LAotCTB4MDZCLCAweDAwQiwgMHgwMjUsIDB4MEVELCAweDAwQiwgMHgwOTMsIDB4MDYwLCAweDAyRiwKLQkweDBBQSwgMHgwOUUsIDB4MEFDLCAweDAzNiwgMHgwNjUsIDB4MDQ5LCAweDA1RiwgMHgwN0EsCi0JMHgwMjAsIDB4MDUwLCAweDAwOCwgMHgwN0YsIDB4MEVGLCAweDAzOSwgMHgwMTQsIDB4MDQ5LAotCTB4MDAxLCAweDAxMSwgMHgwODEsIDB4MDA0LCAweDA2MCwgMHgwNDAsIDB4MENDLCAweDA1OSwKLQkweDBDMCwgMHgwQUQsIDB4MDIzLCAweDBFQiwgMHgwNDEsIDB4MEIwLCAweDA4MSwgMHgwRjIsCi0JMHgwM0EsIDB4MDQxLCAweDBBQSwgMHgwNTAsIDB4MDQzLCAweDBFNCwgMHgwRDQsIDB4MDg2LAotCTB4MDU0LCAweDBBMCwgMHgwODcsIDB4MEMxLCAweDA1MiwgMHgwQ0EsIDB4MDkzLCAweDAwMSwKLQkweDAzMiwgMHgwNTQsIDB4MDlELCAweDAyNCwgMHgwMDIsIDB4MDAwLCAweDAwMCwgMHgwNTIsCi0JMHgwQUYsIDB4MDE2LCAweDA0NiwgMHgwQTcsIDB4MDkxLCAweDA2NywgMHgwMDgsIDB4MEI0LAotCTB4MDA0LCAweDA1MSwgMHgwRjEsIDB4MDY1LCAweDAxOSwgMHgwQjQsIDB4MDZFLCAweDAyRCwKLQkweDBDMCwgMHgwQUQsIDB4MDQ5LCAweDAwMCwgMHgwOTIsIDB4MDU3LCAweDAxQiwgMHgwNzQsCi0JMHgwNDUsIDB4MDVGLCAweDAyMywgMHgwNTEsIDB4MEI3LCAweDA0NCwgMHgwMEEsIDB4MDEwLAotCTB4MDA2LCAweDBBMywgMHgwNkUsIDB4MDhCLCAweDA2QiwgMHgwMDgsIDB4MDFGLCAweDAxOSwKLQkweDBEMSwgMHgwRTYsIDB4MDgwLCAweDA4MiwgMHgwODAsIDB4MDU0LCAweDAwNCwgMHgwMkEsCi0JMHgwNDUsIDB4MDkxLCAweDBBOSwgMHgwRTQsIDB4MDU5LCAweDBDMiwgMHgwMkQsIDB4MDAxLAotCTB4MDE0LCAweDAwNCwgMHgwNTAsIDB4MEQzLCAweDBGQywgMHgwNTUsIDB4MDg0LCAweDA2MSwKLQkweDBEOSwgMHgwODAsIDB4MDUxLCAweDAyRiwgMHgwRTIsIDB4MDFGLCAweDA0NiwgMHgwNUYsCi0JMHgwNDAsIDB4MEUwLCAweDAyMCwgMHgwMTUsIDB4MDRBLCAweDBCQywgMHgwNTksIDB4MDFBLAotCTB4MDlFLCAweDA0NSwgMHgwOUMsIDB4MDIyLCAweDBEMCwgMHgwMTEsIDB4MDQ4LCAweDBDQiwKLQkweDBFOCwgMHgwMTQsIDB4MDA4LCAweDAwMSwgMHgwNTQsIDB4MDE1LCAweDBFMiwgMHgwQzgsCi0JMHgwRDQsIDB4MEYyLCAweDAyQywgMHgwRTEsIDB4MDE2LCAweDA4MCwgMHgwOEEsIDB4MDQ2LAotCTB4MDVGLCAweDA1MiwgMHgwN0MsIDB4MEQ5LCAweDBBOCwgMHgwRjgsIDB4MDg4LCAweDBEMCwKLQkweDA1QSwgMHgwM0MsIDB4MEQyLCAweDA1QywgMHgwNUIsIDB4MDgwLCAweDBEQSwgMHgwQTcsCi0JMHgwRDYsIDB4MDVBLCAweDAwOCwgMHgwODYsIDB4MEE0LCAweDA1RCwgMHgwMTcsIDB4MEEwLAotCTB4MEMzLCAweDA1MiwgMHgwMkUsIDB4MDg4LCAweDBBOCwgMHgwMjIsIDB4MDFGLCAweDA1MywKLQkweDBFQSwgMHgwREEsIDB4MENDLCAweDBBNiwgMHgwNTAsIDB4MEUxLCAweDAyNywgMHgwNzYsCi0JMHgwM0MsIDB4MDA1LCAweDBGNSwgMHgwNEYsIDB4MEFCLCAweDA2QiwgMHgwMzIsIDB4MDk5LAotCTB4MDQzLCAweDA4NCwgMHgwOUMsIDB4MDdCLCAweDAzOCwgMHgwMEIsIDB4MEU5LCAweDAyNywKLQkweDBBQywgMHgwRDQsIDB4MDkyLCAweDBFMCwgMHgwMEUsIDB4MERBLCAweDAzOCwgMHgwNEQsCi0JMHgwODAsIDB4MEJFLCAweDBFNiwgMHgwN0QsIDB4MDUwLCAweDBCQSwgMHgwNTEsIDB4MEFFLAotCTB4MDY2LCAweDBFRiwgMHgwQkMsIDB4MERDLCAweDA3QiwgMHgwODcsIDB4MDFFLCAweDAwMiwKLQkweDBGQSwgMHgwOTMsIDB4MEU2LCAweDBDRCwgMHgwNDcsIDB4MEM0LCAweDA0MywgMHgwQ0QsCi0JMHgwMEYsIDB4MDM0LCAweDA5RCwgMHgwQTMsIDB4MDAwLCAweDBCMCwgMHgwNTUsIDB4MDAxLAotCTB4MEFFLCAweDAwMywgMHgwODQsIDB4MDA0LCAweDBDRSwgMHgwMDEsIDB4MEQwLCAweDBFMSwKLQkweDA3MCwgMHgwMDIsIDB4MDgwLCAweDAwRSwgMHgwODksIDB4MEU5LCAweDAyMiwgMHgwMUYsCi0JMHgwRTAsIDB4MEU4LCAweDA5NiwgMHgwQjAsIDB4MDExLCAweDBGNCwgMHgwQzIsIDB4MENFLAotCTB4MDAzLCAweDA2QSwgMHgwNDQsIDB4MDJELCAweDBDMCwgMHgwNkQsIDB4MDQ4LCAweDAwNSwKLQkweDBCOCwgMHgwMEQsIDB4MEEzLCAweDAwMCwgMHgwQjcsIDB4MDc2LCAweDBENSwgMHgwREUsCi0JMHgwQjEsIDB4MDUwLCAweDBEQywgMHgwN0QsIDB4MDc3LCAweDBCQywgMHgwNTQsIDB4MEJBLAotCTB4MDUyLCAweDA3RiwgMHgwNTgsIDB4MDE0LCAweDAzNCwgMHgwMEYsIDB4MDlBLCAweDBGMywKLQkweDA4MSwgMHgwNTgsIDB4MDBCLCAweDBFQSwgMHgwRUYsIDB4MDU4LCAweDAxNCwgMHgwNjAsCi0JMHgwMTYsIDB4MEE1LCAweDA2QywgMHgwMkUsIDB4MEY3LCAweDA4MSwgMHgwNEIsIDB4MEE1LAotCTB4MDZGLCAweDA3RCwgMHgwNUQsIDB4MEVFLCAweDBCNSwgMHgwMkUsIDB4MDk1LCAweDA4MCwKLQkweDBCRSwgMHgwRjAsIDB4MDczLCAweDBCRCwgMHgwMDQsIDB4MDdDLCAweDBFQSwgMHgwRkUsCi0JMHgwRUIsIDB4MDRDLCAweDBERSwgMHgwMjksIDB4MDUzLCAweDBERCwgMHgwNkEsIDB4MDU0LAotCTB4MDk0LCAweDBBOSwgMHgwRUEsIDB4MDBBLCAweDA4QywgMHgwMDIsIDB4MEQ2LCAweDA0QywKLQkweDAzQywgMHgwMDUsIDB4MEY0LCAweDAwMCwgMHgwRUEsIDB4MENELCAweDA1NiwgMHgwQUYsCi0JMHgwQzAsIDB4MDQ3LCAweDBEMiwgMHgwOUMsIDB4MDhELCAweDAyOSwgMHgwQ0EsIDB4MEUwLAotCTB4MDJGLCAweDBBRSwgMHgwQkQsIDB4MDc1LCAweDA5OSwgMHgwOUQsIDB4MDRBLCAweDBGOSwKLQkweDBFRiwgMHgwNTEsIDB4MDdDLCAweDA5NCwgMHgwMEMsIDB4MDc3LCAweDA4MCwgMHgwMTgsCi0JMHgwMTgsIDB4MDI5LCAweDAyQSwgMHgwRjgsIDB4MEUwLCAweDBFOCwgMHgwQUEsIDB4MDMwLAotCTB4MDBCLCAweDAyQSwgMHgwOTgsIDB4MDdDLCAweDAxRCwgMHgwMTEsIDB4MDUxLCAweDA4MCwKLQkweDA1OSwgMHgwNTQsIDB4MEMzLCAweDA1MSwgMHgwRjUsIDB4MDFCLCAweDAzMywgMHgwMjQsCi0JMHgwQkIsIDB4MDgyLCAweDBBNSwgMHgwMTksIDB4MDVDLCAweDAxRCwgMHgwMTAsIDB4MDI4LAotCTB4MEMwLCAweDAyQywgMHgwOUEsIDB4MEM3LCAweDBDMSwgMHgwRDEsIDB4MDIyLCAweDA4QywKLQkweDAwMiwgMHgwQzksIDB4MDk0LCAweDA2NCwgMHgwNUMsIDB4MDBDLCAweDBENiwgMHgwOEUsCi0JMHgwMTMsIDB4MDYwLCAweDAyRiwgMHgwQjgsIDB4MDBCLCAweDBFQSwgMHgwMzAsIDB4MEUzLAotCTB4MEMwLCAweDA1RiwgMHgwNDgsIDB4MERDLCAweDA3OCwgMHgwMEIsIDB4MEU4LCAweDAwMCwKLQkweDBFMywgMHgwQzAsIDB4MDVGLCAweDA2QywgMHgwMzgsIDB4MEQ1LCAweDAyRSwgMHgwMzUsCi0JMHgwNEYsIDB4MDVBLCAweDA4QSwgMHgwNjEsIDB4MEFBLCAweDA5RiwgMHgwNTYsIDB4MDFCLAotCTB4MDMyLCAweDA5OSwgMHgwNDYsIDB4MDQyLCAweDBDOCwgMHgwMDEsIDB4MDBDLCAweDA0NSwKLQkweDBDRSwgMHgwQTUsIDB4MDE3LCAweDBFNiwgMHgwQzYsIDB4MENFLCAweDBBOSwgMHgwRUIsCi0JMHgwMTUsIDB4MDE2LCAweDA0NiwgMHgwQTIsIDB4MDQ3LCAweDAzOCwgMHgwMTQsIDB4MDQzLAotCTB4MDI2LCAweDAyMiwgMHgwRTcsIDB4MDNELCAweDA2MCwgMHgwMkYsIDB4MEFBLCAweDA5RSwKLQkweDBCNSwgMHgwMTIsIDB4MEUwLCAweDA3RiwgMHgwMDEsIDB4MDdELCAweDBFMywgMHgwRTcsCi0JMHgwMDIsIDB4MDkzLCAweDBGOSwgMHgwOTUsIDB4MDQ0LCAweDA1QywgMHgwRTUsIDB4MEEwLAotCTB4MEUzLCAweDA5RCwgMHgwNEEsIDB4MDdGLCAweDA5QywgMHgwNTQsIDB4MEE5LCAweDBFQiwKLQkweDA1MSwgMHgwMDUsIDB4MDQ2LCAweDBCOSwgMHgwRkMsIDB4MEMwLCAweDAxQiwgMHgwMjIsCi0JMHgwMkUsIDB4MDY0LCAweDA1NCwgMHgwMkYsIDB4MENELCAweDA0NiwgMHgwQ0MsIDB4MEE3LAotCTB4MEQ1LCAweDA4NiwgMHgwQ0MsIDB4MEE2LCAweDA1MCwgMHgwNTUsIDB4MEM2LCAweDA0NSwKLQkweDBDRSwgMHgwNUEsIDB4MDBFLCAweDAzOSwgMHgwRDQsIDB4MEE3LCAweDBGOSwgMHgwQzUsCi0JMHgwNEEsIDB4MDlFLCAweDBCNSwgMHgwMTEsIDB4MDgwLCAweDA1OSwgMHgwQzAsIDB4MDZELAotCTB4MENGLCAweDBFNiwgMHgwMDAsIDB4MEQ5LCAweDAxMSwgMHgwNzMsIDB4MDIyLCAweDBBMSwKLQkweDA3RSwgMHgwNkEsIDB4MDM2LCAweDA2NSwgMHgwM0UsIDB4MEFDLCAweDAzNiwgMHgwNjUsCi0JMHgwMzIsIDB4MEIwLCAweDAxNywgMHgwREQsIDB4MDNFLCAweDA3MiwgMHgwRDIsIDB4MDc5LAotCTB4MDMxLCAweDAwQywgMHgwOTgsIDB4MDJFLCAweDA0QywgMHgwMjAsIDB4MDczLCAweDAyQSwKLQkweDA4RiwgMHgwRjMsIDB4MDhBLCAweDBBRCwgMHgwRTcsIDB4MDQxLCAweDA4MiwgMHgwN0MsCi0JMHgwQ0EsIDB4MEE2LCAweDA4OSwgMHgwQjUsIDB4MDg1LCAweDA5RiwgMHgwQjAsIDB4MEYwLAotCTB4MDE3LCAweDBENSwgMHgwMUYsIDB4MDU0LCAweDA1NCwgMHgwMjUsIDB4MDFBLCAweDBBOCwKLQkweDBGRiwgMHgwMkEsIDB4MDk0LCAweDA2NSwgMHgwMTEsIDB4MEQ3LCAweDA0OSwgMHgwNDQsCi0JMHgwRDUsIDB4MENDLCAweDBBMCwgMHgwNTUsIDB4MEQ4LCAweDBBRSwgMHgwMEUsIDB4MDg4LAotCTB4MDE0LCAweDA2MCwgMHgwMTYsIDB4MDRELCAweDA2MywgMHgwMjIsIDB4MEUwLCAweDA3MiwKLQkweDA4NiwgMHgwMzgsIDB4MDRELCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQjgsCi0JMHgwMEIsIDB4MEVFLCAweDAwMiwgMHgwRkIsIDB4MDgxLCAweDAzOCwgMHgwRjAsIDB4MDE3LAotCTB4MEQ3LCAweDBENywgMHgwMUUsIDB4MDAyLCAweDBGQSwgMHgwRkEsIDB4MEUzLCAweDBDMCwKLQkweDA1RiwgMHgwNEMsIDB4MDg1LCAweDA5MCwgMHgwMDIsIDB4MDE4LCAweDBDOCwgMHgwNUIsCi0JMHgwODAsIDB4MERBLCAweDAzMCwgMHgwMEIsIDB4MDcwLCAweDAxQiwgMHgwNEMsIDB4MDIyLAotCTB4MEQzLCAweDA0QywgMHgwMzMsIDB4MDAzLCAweDA4QywgMHgwMkUsIDB4MDRDLCAweDA0MywKLQkweDAyNiwgMHgwRDAsIDB4MEY1LCAweDA2MywgMHgwNjYsIDB4MEQwLCAweDA5NSwgMHgwQTcsCi0JMHgwQ0UsIDB4MDQ1LCAweDAzMywgMHgwMEEsIDB4MEQ2LCAweDAxNiwgMHgwNDIsIDB4MDM4LAotCTB4MDZFLCAweDBFNCwgMHgwQ0UsIDB4MEJELCAweDA1OSwgMHgwMkMsIDB4MEQyLCAweDBBQiwKLQkweDBCQSwgMHgwOTQsIDB4MDlELCAweDBFNiwgMHgwMUEsIDB4MEIwLCAweDAxNywgMHgwRDUsCi0JMHgwNEYsIDB4MDVBLCAweDA4QiwgMHgwMDksIDB4MDFBLCAweDA4OCwgMHgwQjksIDB4MEM1LAotCTB4MDQyLCAweDA0NywgMHgwMzAsIDB4MEQ0LCAweDAzMiwgMHgwMTYsIDB4MDcyLCAweDA4OCwKLQkweDA2NSwgMHgwQkQsIDB4MDU5LCAweDA5OSwgMHgwMjUsIDB4MEE1LCAweDA2MCwgMHgwMkYsCi0JMHgwQjgsIDB4MDYwLCAweDBGMywgMHgwMDgsIDB4MEI3LCAweDA0QSwgMHgwMUEsIDB4MDhGLAotCTB4MEFCLCAweDAwRCwgMHgwOTksIDB4MDQ2LCAweDA1MSwgMHgwQUYsIDB4MDM4LCAweDBBOCwKLQkweDA4RSwgMHgwOTAsIDB4MDY1LCAweDAxMywgMHgwNTIsIDB4MDE4LCAweDBBMCwgMHgwNTQsCi0JMHgwQjEsIDB4MDQyLCAweDAyRSwgMHgwNjEsIDB4MEE4LCAweDA0OCwgMHgwRTcsIDB4MDJELAotCTB4MDE2LCAweDBGNywgMHgwQTgsIDB4MDA1LCAweDBBNSwgMHgwNjAsIDB4MDJGLCAweDBBNCwKLQkweDA3NSwgMHgwRDIsIDB4MDUxLCAweDAzNSwgMHgwNzMsIDB4MDI4LCAweDAxNSwgMHgwNzYsCi0JMHgwMkIsIDB4MDgzLCAweDBBMiwgMHgwMDUsIDB4MDE4LCAweDAwNSwgMHgwOTMsIDB4MDU4LAotCTB4MEM4LCAweDBCOCwgMHgwMDYsIDB4MDI4LCAweDA2MywgMHgwODQsIDB4MEQ4LCAweDAwQiwKLQkweDBFRSwgMHgwMDIsIDB4MEZCLCAweDA4MCwgMHgwQkUsIDB4MEUwLCAweDAyRiwgMHgwQTAsCi0JMHgwNDMsIDB4MEE3LCAweDAwMSwgMHgwN0QsIDB4MDRDLCAweDBFMywgMHgwQzAsIDB4MDVGLAotCTB4MDcwLCAweDAxNywgMHgwREMsIDB4MDA1LCAweDBGNCwgMHgwNjQsIDB4MDJELCAweDBDMCwKLQkweDA2RCwgMHgwMTgsIDB4MDA1LCAweDBCOCwgMHgwMEQsIDB4MEE1LCAweDBCRCwgMHgwNkEsCi0JMHgwMjMsIDB4MDg2LCAweDBBQSwgMHgwOUUsIDB4MEI1LCAweDAxMSwgMHgwQTQsIDB4MDZBLAotCTB4MEEzLCAweDBFQSwgMHgwOEEsIDB4MDhELCAweDAyMywgMHgwRTEsIDB4MDE3LCAweDAzOCwKLQkweDAzNCwgMHgwNjksIDB4MDcxLCAweDA5OCwgMHgwNDUsIDB4MEE2LCAweDA5OCwgMHgwNkEsCi0JMHgwM0UsIDB4MEFDLCAweDAzNiwgMHgwNjUsIDB4MDE5LCAweDA0NiwgMHgwQkMsIDB4MEUyLAotCTB4MEEyLCAweDAzQSwgMHgwNDEsIDB4MDk0LCAweDA0RCwgMHgwNDgsIDB4MDYyLCAweDA4MSwKLQkweDA1MiwgMHgwQzUsIDB4MDE2LCAweDBGNywgMHgwQTgsIDB4MDhCLCAweDA0QSwgMHgwNTQsCi0JMHgwRjUsIDB4MEE4LCAweDA4QywgMHgwMDIsIDB4MERDLCAweDAwNiwgMHgwRDEsIDB4MDAzLAotCTB4MDlDLCAweDBCNCwgMHgwQTksIDB4MEVFLCAweDAwQSwgMHgwOTUsIDB4MDI1LCAweDAyQSwKLQkweDA3QSwgMHgwQUQsIDB4MDQ2LCAweDAwMSwgMHgwNjcsIDB4MDAxLCAweDBCNSwgMHgwRDcsCi0JMHgwQUMsIDB4MDBBLCAweDAzMCwgMHgwMEIsIDB4MDZDLCAweDA0OSwgMHgwMzUsIDB4MEU2LAotCTB4MEI1LCAweDA2NywgMHgwRjMsIDB4MDAwLCAweDA2QywgMHgwODgsIDB4MEI5LCAweDA5MSwKLQkweDA1MCwgMHgwQkYsIDB4MDMxLCAweDAxQiwgMHgwMzIsIDB4MEE3LCAweDBCOCwgMHgwNjgsCi0JMHgwOTUsIDB4MDI1LCAweDA3QiwgMHgwQUQsIDB4MDMzLCAweDA3OCwgMHgwQTcsIDB4MENELAotCTB4MDNFLCAweDBEMywgMHgwOEUsIDB4MDlELCAweDAzNCwgMHgwRTcsIDB4MDRFLCAweDBENCwKLQkweDAyMiwgMHgwRTcsIDB4MDA2LCAweDA4NCwgMHgwOEUsIDB4MDYwLCAweDBBOCwgMHgwRkYsCi0JMHgwMzgsIDB4MEFCLCAweDA4MywgMHgwOUMsIDB4MDJBLCAweDAwOCwgMHgwRjksIDB4MEQ0LAotCTB4MDIwLCAweDA2MywgMHgwQkMsIDB4MDFBLCAweDAwNiwgMHgwMEEsIDB4MEMwLCAweDA1RiwKLQkweDA0NiwgMHgwNDIsIDB4MERDLCAweDAwNiwgMHgwRDEsIDB4MDgwLCAweDA1QiwgMHgwODAsCi0JMHgwREEsIDB4MDIyLCAweDBFNiwgMHgwMUEsIDB4MDg0LCAweDA4RSwgMHgwNzIsIDB4MEQxLAotCTB4MDZGLCAweDA1QSwgMHgwODAsIDB4MDg3LCAweDAxQSwgMHgwQUEsIDB4MDdBLCAweDBENCwKLQkweDA0OCwgMHgwQzgsIDB4MEQ1LCAweDA0NywgMHgwRDUsIDB4MDE1LCAweDAyMywgMHgwMjMsCi0JMHgwRTEsIDB4MDE3LCAweDAzOCwgMHgwMzQsIDB4MDhDLCAweDBCQSwgMHgwNEIsIDB4MDdCLAotCTB4MEQ0LCAweDAwMiwgMHgwRDIsIDB4MDhDLCAweDAyMiwgMHgwREMsIDB4MDA2LCAweDBENSwKLQkweDAxRiwgMHgwNTYsIDB4MDFCLCAweDAzMiwgMHgwOEMsIDB4MEEzLCAweDA1RSwgMHgwNzEsCi0JMHgwNTEsIDB4MDFELCAweDAyMCwgMHgwQ0EsIDB4MDI2LCAweDBBNCwgMHgwMzEsIDB4MDQwLAotCTB4MEE5LCAweDA2MiwgMHgwQjAsIDB4MDE3LCAweDBERiwgMHgwOUUsIDB4MEY0LCAweDBCNywKLQkweDBDOSwgMHgwNDAsIDB4MEM3LCAweDA3OCwgMHgwMDEsIDB4MDgxLCAweDA4MiwgMHgwQjgsCi0JMHgwMzgsIDB4MDM5LCAweDA0OSwgMHgwMUMsIDB4MDI2LCAweDBDMCwgMHgwNUYsIDB4MDcwLAotCTB4MDE3LCAweDBENCwgMHgwQUIsIDB4MEUxLCAweDAyQSwgMHgwRjgsIDB4MDRBLCAweDBCRSwKLQkweDAxMiwgMHgwQUYsIDB4MDhGLCAweDA5NywgMHgwNEYsIDB4MENCLCAweDBBNywgMHgwMDEsCi0JMHgwN0QsIDB4MERBLCAweDA4MCwgMHgwQUEsIDB4MDkxLCAweDA2NCwgMHgwN0YsIDB4MDRBLAotCTB4MDgxLCAweDBENSwgMHgwMjIsIDB4MEM4LCAweDBGRSwgMHgwODIsIDB4MDgwLCAweDAyNSwKLQkweDA0OCwgMHgwQjIsIDB4MDNFLCAweDBCQiwgMHgwREMsIDB4MDM1LCAweDAyRSwgMHgwOTQsCi0JMHgwMDcsIDB4MEU4LCAweDA4QSwgMHgwOUMsIDB4MDAzLCAweDBFMiwgMHgwNEIsIDB4MEE1LAotCTB4MDc3LCAweDBBQiwgMHgwQjMsIDB4MDMyLCAweDBFOSwgMHgwNEIsIDB4MEJELCAweDA1OSwKLQkweDA4NiwgMHgwODQsIDB4MDk3LCAweDA3QSwgMHgwMDQsIDB4MEJBLCAweDA1MywgMHgwRTEsCi0JMHgwMzIsIDB4MEVGLCAweDA1MCwgMHgwRDQsIDB4MEU2LCAweDAzNSwgMHgwNTMsIDB4MEVCLAotCTB4MDAyLCAweDA5QywgMHgwQzcsIDB4MEQ3LCAweDA3QSwgMHgwQjMsIDB4MDMwLCAweDBEMiwKLQkweDA1RCwgMHgwRUEsIDB4MDAyLCAweDBFOSwgMHgwNDQsIDB4MDVELCAweDAxNiwgMHgwMjgsCi0JMHgwQzAsIDB4MDJDLCAweDBFMCwgMHgwMzYsIDB4MDkxLCAweDA3NCwgMHgwNDUsIDB4MDU5LAotCTB4MDE4LCAweDBENSwgMHgwNEYsIDB4MEFDLCAweDAwQSwgMHgwQzQsIDB4MDM1LCAweDAzMCwKLQkweDA4QiwgMHgwMzgsIDB4MDY5LCAweDAyQiwgMHgwQkQsIDB4MDU5LCAweDA5OCwgMHgwNjksCi0JMHgwMkUsIDB4MEY1LCAweDAxMiwgMHgwRTksIDB4MDU4LCAweDA2NywgMHgwNEEsIDB4MEVGLAotCTB4MDUwLCAweDBENSwgMHgwOEUsIDB4MDNFLCAweDAxQywgMHgwQTQsIDB4MEIwLCAweDBDRSwKLQkweDA5MywgMHgwMjEsIDB4MDZFLCAweDAxQSwgMHgwNDgsIDB4MDFGLCAweDBBMiwgMHgwMkEsCi0JMHgwQzMsIDB4MDBELCAweDA1NywgMHgwN0EsIDB4MEIzLCAweDAwRCwgMHgwMDksIDB4MDJFLAotCTB4MEY0LCAweDA0MywgMHgwNUQsIDB4MDI4LCAweDA4QiwgMHgwODMsIDB4MDIwLCAweDA5MiwKLQkweDAzOCwgMHgwNEQsIDB4MDgwLCAweDBCRSwgMHgwRTAsIDB4MDJGLCAweDBBQywgMHgwMTcsCi0JMHgwNDksIDB4MEIzLCAweDBBNSwgMHgwODIsIDB4MEU5LCAweDAzRSwgMHgwRTksIDB4MDM2LAotCTB4MDc0LCAweDBFMCwgMHgwMkYsIDB4MEE2LCAweDBDRSwgMHgwOUMsIDB4MDA1LCAweDBGNCwKLQkweDBDMiwgMHgwMkMsIDB4MDhDLCAweDA1MiwgMHgwNTcsIDB4MDdBLCAweDBENCwgMHgwOEQsCi0JMHgwNDgsIDB4MEZBLCAweDBFRiwgMHgwNTAsIDB4MEQ1LCAweDBBRSwgMHgwMzUsIDB4MDUzLAotCTB4MEVCLCAweDAwMiwgMHgwODYsIDB4MDIxLCAweDBBQSwgMHgwRUYsIDB4MDU2LCAweDA2NiwKLQkweDAxQSwgMHgwNEIsIDB4MEJELCAweDA0NCwgMHgwQkEsIDB4MDUwLCAweDBDNCwgMHgwRTksCi0JMHgwNTMsIDB4MEVCLCAweDAwMiwgMHgwODYsIDB4MDgxLCAweDBGNSwgMHgwREUsIDB4MEExLAotCTB4MEE4LCAweDA2MiwgMHgwMUYsIDB4MDVELCAweDBGRSwgMHgwQTIsIDB4MDVELCAweDAyOSwKLQkweDA3NywgMHgwQTgsIDB4MDZBLCAweDA2MSwgMHgwOEQsIDB4MDQwLCAweDBGRCwgMHgwMTEsCi0JMHgwNTMsIDB4MDBDLCAweDA2QSwgMHgwQTcsIDB4MEQ2LCAweDAwNSwgMHgwMzAsIDB4MEM3LAotCTB4MEQ3LCAweDA3RiwgMHgwQTksIDB4MDU3LCAweDA0QSwgMHgwNUQsIDB4MEVCLCAweDA0OCwKLQkweDAxQiwgMHgwMEMsIDB4MDdDLCAweDA4QiwgMHgwOUQsIDB4MDhBLCAweDA1MywgMHgwRUYsCi0JMHgwNjYsIDB4MDk0LCAweDBDQSwgMHgwNTQsIDB4MEY1LCAweDBBMCwgMHgwQzYsIDB4MDAxLAotCTB4MDZFLCAweDAwMywgMHgwNkEsIDB4MDlGLCAweDA1NiwgMHgwNzYsIDB4MDY1LCAweDAzMiwKLQkweDA4QiwgMHgwN0IsIDB4MEQyLCAweDBDNSwgMHgwQTUsIDB4MDYwLCAweDAyRiwgMHgwQUEsCi0JMHgwN0QsIDB4MDY1LCAweDBBMywgMHgwMDAsIDB4MEI3LCAweDAwMSwgMHgwQjQsIDB4MEM4LAotCTB4MDVBLCAweDAwNywgMHgwOEYsIDB4MEVELCAweDAwMSwgMHgwRDUsIDB4MDI3LCAweDA5MSwKLQkweDA2NywgMHgwMDEsIDB4MEI0LCAweDA4QiwgMHgwOUMsIDB4MDU0LCAweDAxQywgMHgwNzMsCi0JMHgwQTgsIDB4MDg0LCAweDA1QywgMHgwQzEsIDB4MDUwLCAweDBCRiwgMHgwMzYsIDB4MDU2LAotCTB4MDYwLCAweDBBQiwgMHgwOEMsIDB4MDhCLCAweDA5QywgMHgwNTQsIDB4MDFDLCAweDA3MywKLQkweDBBOCwgMHgwODQsIDB4MDVDLCAweDBDMSwgMHgwNTAsIDB4MEJGLCAweDAzNiwgMHgwNTYsCi0JMHgwNkMsIDB4MDA1LCAweDBGNSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwMzAsIDB4MDBCLAotCTB4MDI5LCAweDA1QiwgMHgwMTksIDB4MEZDLCAweDBGNiwgMHgwOTQsIDB4MDQ1LCAweDBDRiwKLQkweDAxNSwgMHgwMEIsIDB4MEYzLCAweDAzQywgMHgwQjMsIDB4MDJBLCAweDA3QSwgMHgwQzUsCi0JMHgwNDYsIDB4MDAxLCAweDA2NCwgMHgwOEEsIDB4MDMxLCAweDAyMywgMHgwOUMsIDB4MDBBLAotCTB4MDVELCAweDBFQSwgMHgwMzQsIDB4MDMzLCAweDAyRSwgMHgwOTUsIDB4MEM3LCAweDBDRSwKLQkweDAyQSwgMHgwNEYsIDB4MEU2LCAweDA1MCwgMHgwMjAsIDB4MEI5LCAweDAzMSwgMHgwMEMsCi0JMHgwOUIsIDB4MEVGLCAweDAzOSwgMHgwMTQsIDB4MDQ1LCAweDBDRSwgMHgwNDUsIDB4MDA3LAotCTB4MDFDLCAweDBFQSwgMHgwNDYsIDB4MDg3LCAweDBBQiwgMHgwMUIsIDB4MDM2LCAweDA4NCwKLQkweDBBNywgMHgwNUUsIDB4MEFDLCAweDA5NiwgMHgwNjcsIDB4MDUyLCAweDBCMCwgMHgwMTcsCi0JMHgwREMsIDB4MEZFLCAweDA3QiwgMHgwNEEsIDB4MDIyLCAweDBFNywgMHgwOEEsIDB4MDg1LAotCTB4MEY5LCAweDA5RSwgMHgwNTksIDB4MDk3LCAweDA3QSwgMHgwOEQsIDB4MDBDLCAweDBDQiwKLQkweDBBNSwgMHgwMjcsIDB4MEYzLCAweDBBMCwgMHgwNDQsIDB4MDMyLCAweDA2MCwgMHgwQjksCi0JMHgwMzcsIDB4MERFLCAweDA3MiwgMHgwMjgsIDB4MDhCLCAweDA5QywgMHgwOEEsIDB4MDBFLAotCTB4MDM5LCAweDBENCwgMHgwOEMsIDB4MDA1LCAweDBGNywgMHgwRTcsIDB4MEI4LCAweDAyQSwKLQkweDBGOSwgMHgwMjgsIDB4MDE4LCAweDBFRiwgMHgwMDAsIDB4MDMwLCAweDAzMCwgMHgwNTcsCi0JMHgwMDcsIDB4MDQ0LCAweDAwQSwgMHgwNTAsIDB4MDhGLCAweDBGMCwgMHgwNzMsIDB4MDkxLAotCTB4MDQxLCAweDAxRiwgMHgwM0EsIDB4MDkwLCAweDA0NSwgMHgwQzAsIDB4MEJCLCAweDAxOCwKLQkweDBFMSwgMHgwMzYsIDB4MDAyLCAweDBGQiwgMHgwRkIsIDB4MDlFLCAweDAwMiwgMHgwRkEsCi0JMHgwRUUsIDB4MEU3LCAweDBGNSwgMHgwQ0YsIDB4MDAxLCAweDA3RCwgMHgwMTAsIDB4MDVDLAotCTB4MEYwLCAweDAxNywgMHgwRDEsIDB4MDA1LCAweDBDRiwgMHgwMDEsIDB4MDdELCAweDA1MywKLQkweDBFQiwgMHgwMkQsIDB4MDE4LCAweDAwNSwgMHgwQjgsIDB4MDBELCAweDBBNiwgMHgwNDIsCi0JMHgwREMsIDB4MDA2LCAweDBEMywgMHgwMTcsIDB4MDM1LCAweDBBOCwgMHgwOEIsIDB4MDlDLAotCTB4MDBBLCAweDAwRSwgMHgwMzksIDB4MEQ0LCAweDAwQywgMHgwRkUsIDB4MDdCLCAweDA0QSwKLQkweDAyMiwgMHgwRTYsIDB4MDU1LCAweDAwQiwgMHgwRjMsIDB4MDMxLCAweDBCMywgMHgwNjAsCi0JMHgwMkYsIDB4MEJDLCAweDA3QywgMHgwRTIsIDB4MEE0LCAweDBGRSwgMHgwNjUsIDB4MDUxLAotCTB4MDE3LCAweDAzOCwgMHgwMTQsIDB4MDFDLCAweDA3MywgMHgwQTgsIDB4MDE5LCAweDBGQywKLQkweDBGNiwgMHgwOTQsIDB4MDQ1LCAweDBDQywgMHgwQUEsIDB4MDE3LCAweDBFNiwgMHgwNjMsCi0JMHgwNjYsIDB4MDBBLCAweDBCOCwgMHgwQ0MsIDB4MDg1LCAweDBBMSwgMHgwNTgsIDB4MEY2LAotCTB4MEEyLCAweDAzNSwgMHgwNDgsIDB4MDQ4LCAweDA3RiwgMHgwNEEsIDB4MDg5LCAweDA5NSwKLQkweDAyMSwgMHgwMjEsIDB4MEZELCAweDAwNSwgMHgwMDIsIDB4MDU0LCAweDA5RSwgMHgwNDUsCi0JMHgwOTEsIDB4MDBFLCAweDAzQywgMHgwMDUsIDB4MEY1LCAweDAwNywgMHgwNDAsIDB4MDU1LAotCTB4MDQ4LCAweDA1MiwgMHgwM0UsIDB4MDg2LCAweDBBMCwgMHgwNzUsIDB4MDQ4LCAweDA1MiwKLQkweDAzRSwgMHgwQjUsIDB4MDAwLCAweDA0QSwgMHgwOUMsIDB4MDAwLCAweDA2QiwgMHgwQzcsCi0JMHgwQ0UsIDB4MDQ1LCAweDAyNywgMHgwRjMsIDB4MDJBLCAweDA4NCwgMHgwMzcsIDB4MDM1LAotCTB4MERFLCAweDBBMCwgMHgwQUIsIDB4MDIzLCAweDAxQSwgMHgwQUUsIDB4MEY1LCAweDA4MywKLQkweDA1OSwgMHgwMTgsIDB4MEQ3LCAweDA0MywgMHgwREUsIDB4MDJBLCAweDBEMCwgMHgwOTQsCi0JMHgwRUIsIDB4MERFLCAweDAwNSwgMHgwM0EsIDB4MDk1LCAweDA5RiwgMHgwQ0MsIDB4MEMzLAotCTB4MDIwLCAweDA0NSwgMHgwQ0MsIDB4MEFBLCAweDAxNywgMHgwRTYsIDB4MDY2LCAweDBDQywKLQkweDA0MywgMHgwMjYsIDB4MDRGLCAweDBFNywgMHgwNDEsIDB4MDIyLCAweDAyRSwgMHgwNzAsCi0JMHgwNjgsIDB4MDM4LCAweDBFNywgMHgwNTMsIDB4MEUwLCAweDAyRiwgMHgwQUIsIDB4MEJDLAotCTB4MDEyLCAweDBEMiwgMHgwRTksIDB4MDU4LCAweDAwQiwgMHgwRUEsIDB4MEE3LCAweDBBRCwKLQkweDA0NSwgMHgwQTEsIDB4MDFGLCAweDBDMCwgMHgwNUYsIDB4MDc4LCAweDAzOSwgMHgwQzgsCi0JMHgwQTAsIDB4MDhGLCAweDA5RCwgMHgwNDgsIDB4MDFDLCAweDAyNCwgMHgwRUUsIDB4MEM3LAotCTB4MDgwLCAweDBCRSwgMHgwQkEsIDB4MEY1LCAweDA2RCwgMHgwNjYsIDB4MDQ5LCAweDA3NywKLQkweDAwRCwgMHgwNEUsIDB4MEE1LCAweDAzMCwgMHgwMDksIDB4MEI0LCAweDBGOSwgMHgwQzUsCi0JMHgwNDMsIDB4MDBGLCAweDAzOCwgMHgwQTksIDB4MDNGLCAweDA5RCwgMHgwMDIsIDB4MEZCLAotCTB4MENFLCAweDA0NSwgMHgwMTEsIDB4MDczLCAweDA5MSwgMHgwNDEsIDB4MEM3LCAweDAzQSwKLQkweDA5MSwgMHgwOUYsIDB4MENGLCAweDA2OSwgMHgwNDQsIDB4MDVDLCAweDBGMSwgMHgwNTAsCi0JMHgwQkYsIDB4MDMzLCAweDBDQiwgMHgwMzIsIDB4MEE3LCAweDBBQywgMHgwNTQsIDB4MDkwLAotCTB4MDhELCAweDA0NCwgMHgwOEUsIDB4MDcwLCAweDAyOSwgMHgwNzcsIDB4MEE4LCAweDBEMCwKLQkweDBDQywgMHgwQkEsIDB4MDU2LCAweDBCMCwgMHgwQjIsIDB4MDlELCAweDA4QywgMHgwODYsCi0JMHgwNEMsIDB4MDE3LCAweDAyNiwgMHgwNzcsIDB4MDI2LCAweDAxQywgMHgwMjcsIDB4MDFDLAotCTB4MDI0LCAweDA5RSwgMHgwMjMsIDB4MDYxLCAweDBCRSwgMHgwOEUsIDB4MDEyLCAweDA0RiwKLQkweDAxMSwgMHgwODcsIDB4MDFDLCAweDBFQSwgMHgwNUMsIDB4MDA1LCAweDBGNSwgMHgwRDcsCi0JMHgwQjgsIDB4MDZBLCAweDA3NSwgMHgwMjksIDB4MDc3LCAweDBBQiwgMHgwMEQsIDB4MDk5LAotCTB4MDc0LCAweDBBNSwgMHgwNEYsIDB4MDcyLCAweDBBMCwgMHgwQUEsIDB4MDRBLCAweDBDNiwKLQkweDBGMywgMHgwNjYsIDB4MDY2LCAweDBDNiwgMHgwMzksIDB4MDgyLCAweDBBRiwgMHgwNzUsCi0JMHgwQTYsIDB4MDZGLCAweDAxNCwgMHgwNkIsIDB4MENFLCAweDAwNSwgMHgwNzAsIDB4MDczLAotCTB4MDk2LCAweDA4MiwgMHgwM0UsIDB4MDc1LCAweDAyOCwgMHgwRTEsIDB4MDNBLCAweDBBNywKLQkweDBBRCwgMHgwNDQsIDB4MDYwLCAweDAxNiwgMHgwNTIsIDB4MEI2LCAweDAxRCwgMHgwN0EsCi0JMHgwQjYsIDB4MEIzLCAweDAyNCwgMHgwQkIsIDB4MDg2LCAweDBBNywgMHgwNTIsIDB4MDk4LAotCTB4MDA0LCAweDBEQSwgMHgwN0MsIDB4MEUyLCAweDBBMSwgMHgwODcsIDB4MDlDLCAweDA1NSwKLQkweDBGNywgMHgwOUMsIDB4MEI1LCAweDBBQywgMHgwMkMsIDB4MDk1LCAweDAzMywgMHgwQjksCi0JMHgwMzEsIDB4MDA1LCAweDBEOSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwMzAsIDB4MDBCLAotCTB4MDI5LCAweDA1QiwgMHgwMDIsIDB4MDJFLCAweDA2MSwgMHgwNUEsIDB4MDE3LCAweDBFNiwKLQkweDA5QywgMHgwQjMsIDB4MDJBLCAweDA3QSwgMHgwQzUsIDB4MDQwLCAweDAyMSwgMHgwQTgsCi0JMHgwOTEsIDB4MENFLCAweDAwNSwgMHgwMjcsIDB4MEYzLCAweDBBNSwgMHgwODgsIDB4MDY0LAotCTB4MEMxLCAweDA3MiwgMHgwNjUsIDB4MDRGLCAweDA1OCwgMHgwMTQsIDB4MDBDLCAweDA4RCwKLQkweDA3RSwgMHgwRjMsIDB4MDgxLCAweDA0NCwgMHgwNUMsIDB4MEVGLCAweDA0MSwgMHgwQzcsCi0JMHgwM0EsIDB4MEJFLCAweDAwMiwgMHgwRkEsIDB4MEE5LCAweDBFQSwgMHgwQ0UsIDB4MENDLAotCTB4MEE5LCAweDAyOSwgMHgwNTMsIDB4MEQ2LCAweDBBMiwgMHgwNDYsIDB4MDQ3LCAweDBERCwKLQkweDA3QSwgMHgwQzAsIDB4MEEzLCAweDAwMCwgMHgwODYsIDB4MEUyLCAweDA5QiwgMHgwMjksCi0JMHgwNzgsIDB4MDhCLCAweDA4MSwgMHgwMDksIDB4MDk4LCAweDA3MCwgMHgwOUIsIDB4MDI5LAotCTB4MDc5LCAweDA1RCwgMHgwRDksIDB4MDcyLCAweDBFRCwgMHgwOTQsIDB4MEJDLCAweDBCOSwKLQkweDA3NiwgMHgwMTMsIDB4MDNCLCAweDAyQSwgMHgwNUQsIDB4MEIyLCAweDA5NywgMHgwOTUsCi0JMHgwMkUsIDB4MEQ5LCAweDA0QiwgMHgwQ0EsIDB4MDdELCAweDA1QiwgMHgwNTksIDB4MDk0LAotCTB4MENBLCAweDAxQywgMHgwMjQsIDB4MEVFLCAweDBDNywgMHgwOTQsIDB4MEJDLCAweDBDMCwKLQkweDAyNiwgMHgwRDMsIDB4MEU3LCAweDAxNSwgMHgwMEMsIDB4MDNDLCAweDBFMiwgMHgwQUMsCi0JMHgwRkUsIDB4MDdCLCAweDA0QSwgMHgwMjIsIDB4MEU3LCAweDA4QSwgMHgwODUsIDB4MEY5LAotCTB4MDlFLCAweDA1OSwgMHgwOTcsIDB4MDdBLCAweDA4RCwgMHgwMEMsIDB4MENCLCAweDBBNSwKLQkweDAyNywgMHgwRjMsIDB4MEEwLCAweDA0MSwgMHgwNzIsIDB4MDYyLCAweDAxOSwgMHgwMzcsCi0JMHgwREUsIDB4MDcwLCAweDAyOCwgMHgwOEIsIDB4MDlDLCAweDA4QSwgMHgwMEUsIDB4MDM5LAotCTB4MEQ0LCAweDA4RCwgMHgwMEYsIDB4MDU2LCAweDAzNiwgMHgwNkQsIDB4MDA5LCAweDA0RSwKLQkweDBCRCwgMHgwNTksIDB4MDJDLCAweDBDRSwgMHgwQTUsIDB4MDZCLCAweDAwQiwgMHgwMjIsCi0JMHgwRDksIDB4MDlELCAweDBDOSwgMHgwQjIsIDB4MDk3LCAweDBCRSwgMHgwRjMsIDB4MDgxLAotCTB4MDRBLCAweDA3RCwgMHgwNjUsIDB4MEEzLCAweDAwMCwgMHgwOTMsIDB4MDhGLCAweDA2NywKLQkweDAyOSwgMHgwNzgsIDB4MEMyLCAweDA0RCwgMHgwQzEsIDB4MEQxLCAweDAwNiwgMHgwODIsCi0JMHgwMzEsIDB4MEFGLCAweDAwNywgMHgwMzgsIDB4MDM0LCAweDAxMSwgMHgwRjMsIDB4MEE4LAotCTB4MDJBLCAweDA5RSwgMHgwQTgsIDB4MDY2LCAweDAxQSwgMHgwQTQsIDB4MEE1LCAweDA0RiwKLQkweDA1QSwgMHgwMEMsIDB4MDExLCAweDA4RiwgMHgwQUEsIDB4MDdCLCAweDBEMCwgMHgwNjUsCi0JMHgwNDksIDB4MDQ1LCAweDBCRCwgMHgwRTksIDB4MDYyLCAweDBEMiwgMHgwQjEsIDB4MDlFLAotCTB4MDZDLCAweDBDQywgMHgwQzYsIDB4MDE5LCAweDA4NywgMHgwMDksIDB4MEMzLCAweDA4RSwKLQkweDA3NSwgMHgwNDEsIDB4MDFGLCAweDAzQSwgMHgwQTUsIDB4MDEzLCAweDBENSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsCi0JMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LAotCTB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1NSwKLQkweDA1NSwgMHgwNTUsIDB4MDU1LCAweDA1QSwgMHgwQ0MsIDB4MDkwCi0gfTsKLQotI2VuZGlmCS8qIGRlZmluZWQoQ09ORklHX1NNQ1RSKSB8fCBkZWZpbmVkKENPTkZJR19TTUNUUl9NT0RVTEUpICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dWxpcC90dWxpcF9jb3JlLmMgYi9kcml2ZXJzL25ldC90dWxpcC90dWxpcF9jb3JlLmMKaW5kZXggZjlkMTNmYS4uYWY4ZDJjNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdHVsaXAvdHVsaXBfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bGlwL3R1bGlwX2NvcmUuYwpAQCAtNzMxLDcgKzczMSw3IEBACiAJdm9pZCBfX2lvbWVtICppb2FkZHIgPSB0cC0+YmFzZV9hZGRyOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlmbHVzaF9zY2hlZHVsZWRfd29yaygpOworCWNhbmNlbF93b3JrX3N5bmMoJnRwLT5tZWRpYV93b3JrKTsKIAogI2lmZGVmIENPTkZJR19UVUxJUF9OQVBJCiAJbmFwaV9kaXNhYmxlKCZ0cC0+bmFwaSk7CkBAIC0xNzI5LDEyICsxNzI5LDE1IEBACiAJaWYgKCFkZXYpCiAJCXJldHVybiAtRUlOVkFMOwogCi0JaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKLQkJdHVsaXBfZG93bihkZXYpOworCWlmICghbmV0aWZfcnVubmluZyhkZXYpKQorCQlnb3RvIHNhdmVfc3RhdGU7CisKKwl0dWxpcF9kb3duKGRldik7CiAKIAluZXRpZl9kZXZpY2VfZGV0YWNoKGRldik7CiAJZnJlZV9pcnEoZGV2LT5pcnEsIGRldik7CiAKK3NhdmVfc3RhdGU6CiAJcGNpX3NhdmVfc3RhdGUocGRldik7CiAJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOwogCXBjaV9zZXRfcG93ZXJfc3RhdGUocGRldiwgcGNpX2Nob29zZV9zdGF0ZShwZGV2LCBzdGF0ZSkpOwpAQCAtMTc1NCw2ICsxNzU3LDkgQEAKIAlwY2lfc2V0X3Bvd2VyX3N0YXRlKHBkZXYsIFBDSV9EMCk7CiAJcGNpX3Jlc3RvcmVfc3RhdGUocGRldik7CiAKKwlpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSkKKwkJcmV0dXJuIDA7CisKIAlpZiAoKHJldHZhbCA9IHBjaV9lbmFibGVfZGV2aWNlKHBkZXYpKSkgewogCQlwcmludGsgKEtFUk5fRVJSICJ0dWxpcDogcGNpX2VuYWJsZV9kZXZpY2UgZmFpbGVkIGluIHJlc3VtZVxuIik7CiAJCXJldHVybiByZXR2YWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dWxpcC91bGk1MjZ4LmMgYi9kcml2ZXJzL25ldC90dWxpcC91bGk1MjZ4LmMKaW5kZXggMjUxMWNhNy4uZTllNjI4NjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bGlwL3VsaTUyNnguYworKysgYi9kcml2ZXJzL25ldC90dWxpcC91bGk1MjZ4LmMKQEAgLTIyNSw2ICsyMjUsOSBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBuZXRkZXZfZXRodG9vbF9vcHM7CiBzdGF0aWMgdTE2IHJlYWRfc3JvbV93b3JkKGxvbmcsIGludCk7CiBzdGF0aWMgaXJxcmV0dXJuX3QgdWxpNTI2eF9pbnRlcnJ1cHQoaW50LCB2b2lkICopOworI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSCitzdGF0aWMgdm9pZCB1bGk1MjZ4X3BvbGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7CisjZW5kaWYKIHN0YXRpYyB2b2lkIHVsaTUyNnhfZGVzY3JpcHRvcl9pbml0KHN0cnVjdCB1bGk1MjZ4X2JvYXJkX2luZm8gKiwgdW5zaWduZWQgbG9uZyk7CiBzdGF0aWMgdm9pZCBhbGxvY2F0ZV9yeF9idWZmZXIoc3RydWN0IHVsaTUyNnhfYm9hcmRfaW5mbyAqKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9jcjYodTMyLCB1bnNpZ25lZCBsb25nKTsKQEAgLTMzOSw2ICszNDIsOSBAQAogCWRldi0+Z2V0X3N0YXRzID0gJnVsaTUyNnhfZ2V0X3N0YXRzOwogCWRldi0+c2V0X211bHRpY2FzdF9saXN0ID0gJnVsaTUyNnhfc2V0X2ZpbHRlcl9tb2RlOwogCWRldi0+ZXRodG9vbF9vcHMgPSAmbmV0ZGV2X2V0aHRvb2xfb3BzOworI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSCisJZGV2LT5wb2xsX2NvbnRyb2xsZXIgPSAmdWxpNTI2eF9wb2xsOworI2VuZGlmCiAJc3Bpbl9sb2NrX2luaXQoJmRiLT5sb2NrKTsKIAogCkBAIC02ODEsOCArNjg3LDkgQEAKIAlkYi0+Y3I1X2RhdGEgPSBpbmwoaW9hZGRyICsgRENSNSk7CiAJb3V0bChkYi0+Y3I1X2RhdGEsIGlvYWRkciArIERDUjUpOwogCWlmICggIShkYi0+Y3I1X2RhdGEgJiAweDE4MGMxKSApIHsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGItPmxvY2ssIGZsYWdzKTsKKwkJLyogUmVzdG9yZSBDUjcgdG8gZW5hYmxlIGludGVycnVwdCBtYXNrICovCiAJCW91dGwoZGItPmNyN19kYXRhLCBpb2FkZHIgKyBEQ1I3KTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGItPmxvY2ssIGZsYWdzKTsKIAkJcmV0dXJuIElSUV9IQU5ETEVEOwogCX0KIApAQCAtNzE1LDYgKzcyMiwxMyBAQAogCXJldHVybiBJUlFfSEFORExFRDsKIH0KIAorI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9MTEVSCitzdGF0aWMgdm9pZCB1bGk1MjZ4X3BvbGwoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKK3sKKwkvKiBJU1IgZ3JhYnMgdGhlIGlycXNhdmUgbG9jaywgc28gdGhpcyBzaG91bGQgYmUgc2FmZSAqLworCXVsaTUyNnhfaW50ZXJydXB0KGRldi0+aXJxLCBkZXYpOworfQorI2VuZGlmCiAKIC8qCiAgKglGcmVlIFRYIHJlc291cmNlIGFmdGVyIFRYIGNvbXBsZXRlCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IDBjZTA3YTMuLmViYTEyNzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvZmNudGwuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0zMTMsNiArMzE0LDIxIEBACiAKIAlzd2l0Y2ggKHR1bi0+ZmxhZ3MgJiBUVU5fVFlQRV9NQVNLKSB7CiAJY2FzZSBUVU5fVFVOX0RFVjoKKwkJaWYgKHR1bi0+ZmxhZ3MgJiBUVU5fTk9fUEkpIHsKKwkJCXN3aXRjaCAoc2tiLT5kYXRhWzBdICYgMHhmMCkgeworCQkJY2FzZSAweDQwOgorCQkJCXBpLnByb3RvID0gaHRvbnMoRVRIX1BfSVApOworCQkJCWJyZWFrOworCQkJY2FzZSAweDYwOgorCQkJCXBpLnByb3RvID0gaHRvbnMoRVRIX1BfSVBWNik7CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCXR1bi0+ZGV2LT5zdGF0cy5yeF9kcm9wcGVkKys7CisJCQkJa2ZyZWVfc2tiKHNrYik7CisJCQkJcmV0dXJuIC1FSU5WQUw7CisJCQl9CisJCX0KKwogCQlza2JfcmVzZXRfbWFjX2hlYWRlcihza2IpOwogCQlza2ItPnByb3RvY29sID0gcGkucHJvdG87CiAJCXNrYi0+ZGV2ID0gdHVuLT5kZXY7CkBAIC01ODcsNiArNjAzLDEyIEBACiAJdHVuLT5hdHRhY2hlZCA9IDE7CiAJZ2V0X25ldChkZXZfbmV0KHR1bi0+ZGV2KSk7CiAKKwkvKiBNYWtlIHN1cmUgcGVyc2lzdGVudCBkZXZpY2VzIGRvIG5vdCBnZXQgc3R1Y2sgaW4KKwkgKiB4b2ZmIHN0YXRlLgorCSAqLworCWlmIChuZXRpZl9ydW5uaW5nKHR1bi0+ZGV2KSkKKwkJbmV0aWZfd2FrZV9xdWV1ZSh0dW4tPmRldik7CisKIAlzdHJjcHkoaWZyLT5pZnJfbmFtZSwgdHVuLT5kZXYtPm5hbWUpOwogCXJldHVybiAwOwogCkBAIC03ODEsMjIgKzgwMywyNiBAQAogCiAJREJHKEtFUk5fSU5GTyAiJXM6IHR1bl9jaHJfZmFzeW5jICVkXG4iLCB0dW4tPmRldi0+bmFtZSwgb24pOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoKHJldCA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmdHVuLT5mYXN5bmMpKSA8IDApCi0JCXJldHVybiByZXQ7CisJCWdvdG8gb3V0OwogCiAJaWYgKG9uKSB7CiAJCXJldCA9IF9fZl9zZXRvd24oZmlsZSwgdGFza19waWQoY3VycmVudCksIFBJRFRZUEVfUElELCAwKTsKIAkJaWYgKHJldCkKLQkJCXJldHVybiByZXQ7CisJCQlnb3RvIG91dDsKIAkJdHVuLT5mbGFncyB8PSBUVU5fRkFTWU5DOwogCX0gZWxzZQogCQl0dW4tPmZsYWdzICY9IH5UVU5fRkFTWU5DOwotCi0JcmV0dXJuIDA7CisJcmV0ID0gMDsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCB0dW5fY2hyX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJREJHMShLRVJOX0lORk8gInR1blg6IHR1bl9jaHJfb3BlblxuIik7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VjY19nZXRoLmMgYi9kcml2ZXJzL25ldC91Y2NfZ2V0aC5jCmluZGV4IGNhMGJkYWMuLmZiMGI5MTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VjY19nZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvdWNjX2dldGguYwpAQCAtMjM3LDcgKzIzNyw3IEBACiAJc2tiLT5kZXYgPSB1Z2V0aC0+ZGV2OwogCiAJb3V0X2JlMzIoJigoc3RydWN0IHFlX2JkIF9faW9tZW0gKiliZCktPmJ1ZiwKLQkJICAgICAgZG1hX21hcF9zaW5nbGUoTlVMTCwKKwkJICAgICAgZG1hX21hcF9zaW5nbGUoJnVnZXRoLT5kZXYtPmRldiwKIAkJCQkgICAgIHNrYi0+ZGF0YSwKIAkJCQkgICAgIHVnZXRoLT51Z19pbmZvLT51Zl9pbmZvLm1heF9yeF9idWZfbGVuZ3RoICsKIAkJCQkgICAgIFVDQ19HRVRIX1JYX0RBVEFfQlVGX0FMSUdOTUVOVCwKQEAgLTIxNTgsNyArMjE1OCw3IEBACiAJCQljb250aW51ZTsKIAkJZm9yIChqID0gMDsgaiA8IHVnZXRoLT51Z19pbmZvLT5iZFJpbmdMZW5UeFtpXTsgaisrKSB7CiAJCQlpZiAodWdldGgtPnR4X3NrYnVmZltpXVtqXSkgewotCQkJCWRtYV91bm1hcF9zaW5nbGUoTlVMTCwKKwkJCQlkbWFfdW5tYXBfc2luZ2xlKCZ1Z2V0aC0+ZGV2LT5kZXYsCiAJCQkJCQkgaW5fYmUzMigmKChzdHJ1Y3QgcWVfYmQgX19pb21lbSAqKWJkKS0+YnVmKSwKIAkJCQkJCSAoaW5fYmUzMigodTMyIF9faW9tZW0gKiliZCkgJgogCQkJCQkJICBCRF9MRU5HVEhfTUFTSyksCkBAIC0yMTg2LDcgKzIxODYsNyBAQAogCQkJYmQgPSB1Z2V0aC0+cF9yeF9iZF9yaW5nW2ldOwogCQkJZm9yIChqID0gMDsgaiA8IHVnZXRoLT51Z19pbmZvLT5iZFJpbmdMZW5SeFtpXTsgaisrKSB7CiAJCQkJaWYgKHVnZXRoLT5yeF9za2J1ZmZbaV1bal0pIHsKLQkJCQkJZG1hX3VubWFwX3NpbmdsZShOVUxMLAorCQkJCQlkbWFfdW5tYXBfc2luZ2xlKCZ1Z2V0aC0+ZGV2LT5kZXYsCiAJCQkJCQlpbl9iZTMyKCYoKHN0cnVjdCBxZV9iZCBfX2lvbWVtICopYmQpLT5idWYpLAogCQkJCQkJdWdldGgtPnVnX2luZm8tPgogCQkJCQkJdWZfaW5mby5tYXhfcnhfYnVmX2xlbmd0aCArCkBAIC0zNDA2LDcgKzM0MDYsOCBAQAogCiAJLyogc2V0IHVwIHRoZSBidWZmZXIgZGVzY3JpcHRvciAqLwogCW91dF9iZTMyKCYoKHN0cnVjdCBxZV9iZCBfX2lvbWVtICopYmQpLT5idWYsCi0JCSAgICAgIGRtYV9tYXBfc2luZ2xlKE5VTEwsIHNrYi0+ZGF0YSwgc2tiLT5sZW4sIERNQV9UT19ERVZJQ0UpKTsKKwkJICAgICAgZG1hX21hcF9zaW5nbGUoJnVnZXRoLT5kZXYtPmRldiwgc2tiLT5kYXRhLAorCQkJICAgICAgc2tiLT5sZW4sIERNQV9UT19ERVZJQ0UpKTsKIAogCS8qIHByaW50ayhLRVJOX0RFQlVHInNrYi0+ZGF0YSBpcyAweCV4XG4iLHNrYi0+ZGF0YSk7ICovCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VjY19nZXRoX2V0aHRvb2wuYyBiL2RyaXZlcnMvbmV0L3VjY19nZXRoX2V0aHRvb2wuYwppbmRleCAyOTliN2YxLi5mNTgzOWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91Y2NfZ2V0aF9ldGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvdWNjX2dldGhfZXRodG9vbC5jCkBAIC03Myw2ICs3Myw3IEBACiAJInR4LWZyYW1lcy1vayIsCiAJInR4LWV4Y2Vzc2l2ZS1kaWZmZXItZnJhbWVzIiwKIAkidHgtMjU2LTUxMS1mcmFtZXMiLAorCSJ0eC01MTItMTAyMy1mcmFtZXMiLAogCSJ0eC0xMDI0LTE1MTgtZnJhbWVzIiwKIAkidHgtanVtYm8tZnJhbWVzIiwKIH07CkBAIC0zMDgsNyArMzA5LDcgQEAKIAkJYnVmICs9IFVFQ19UWF9GV19TVEFUU19MRU4gKiBFVEhfR1NUUklOR19MRU47CiAJfQogCWlmIChzdGF0c19tb2RlICYgVUNDX0dFVEhfU1RBVElTVElDU19HQVRIRVJJTkdfTU9ERV9GSVJNV0FSRV9SWCkKLQkJbWVtY3B5KGJ1ZiwgdHhfZndfc3RhdF9nc3RyaW5ncywgVUVDX1JYX0ZXX1NUQVRTX0xFTiAqCisJCW1lbWNweShidWYsIHJ4X2Z3X3N0YXRfZ3N0cmluZ3MsIFVFQ19SWF9GV19TVEFUU19MRU4gKgogCQkJICAgICAgIAlFVEhfR1NUUklOR19MRU4pOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC91c2IvYXNpeC5jIGIvZHJpdmVycy9uZXQvdXNiL2FzaXguYwppbmRleCBkYzZmMDk3Li4zN2VjZjg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvYXNpeC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9hc2l4LmMKQEAgLTE0NDAsNiArMTQ0MCwxMCBAQAogCS8vIEJlbGtpbiBGNUQ1MDU1CiAJVVNCX0RFVklDRSgweDA1MGQsIDB4NTA1NSksCiAJLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcpICZheDg4MTc4X2luZm8sCit9LCB7CisJLy8gQXBwbGUgVVNCIEV0aGVybmV0IEFkYXB0ZXIKKwlVU0JfREVWSUNFKDB4MDVhYywgMHgxNDAyKSwKKwkuZHJpdmVyX2luZm8gPSAodW5zaWduZWQgbG9uZykgJmF4ODg3NzJfaW5mbywKIH0sCiAJeyB9LAkJLy8gRU5ECiB9OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2thd2V0aC5jIGIvZHJpdmVycy9uZXQvdXNiL2thd2V0aC5jCmluZGV4IDBkY2ZjMDMuLmQ2ODI5ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGguYworKysgYi9kcml2ZXJzL25ldC91c2Iva2F3ZXRoLmMKQEAgLTU3LDEzICs1NywxMiBAQAogI2luY2x1ZGUgPGxpbnV4L2V0aHRvb2wuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2J5dGVvcmRlci5oPgogCiAjdW5kZWYgREVCVUcKIAotI2luY2x1ZGUgImthd2V0aGZ3LmgiCi0KICNkZWZpbmUgS0FXRVRIX01UVQkJCTE1MTQKICNkZWZpbmUgS0FXRVRIX0JVRl9TSVpFCQkJMTY2NAogI2RlZmluZSBLQVdFVEhfVFhfVElNRU9VVAkJKDUgKiBIWikKQEAgLTEwOCw2ICsxMDcsMTAgQEAKIE1PRFVMRV9BVVRIT1IoIk1pY2hhZWwgWmFwcGUgPHphcG1hbkBpbnRlcmxhbi5uZXQ+LCBTdGVwaGFuZSBBbG5ldCA8c3RlcGhhbmVAdS1waWNhcmRpZS5mcj4sIEJyYWQgSGFyZHMgPGJoYXJkc0BiaWdwb25kLm5ldC5hdT4gYW5kIE9saXZlciBOZXVrdW0gPG9saXZlckBuZXVrdW0ub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJLTDVVU0IxMDEgVVNCIEV0aGVybmV0IGRyaXZlciIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0ZJUk1XQVJFKCJrYXdldGgvbmV3X2NvZGUuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC9uZXdfY29kZV9maXguYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC90cmlnZ2VyX2NvZGUuYmluIik7CitNT0RVTEVfRklSTVdBUkUoImthd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbiIpOwogCiBzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZVtdID0gImthd2V0aCI7CiAKQEAgLTM4NSwxNyArMzg4LDI4IEBACiAgKiAgICAga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyBpbnQga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKHN0cnVjdCBrYXdldGhfZGV2aWNlICprYXdldGgsCi0JCQkJICAgIF9fdTggKmRhdGEsCi0JCQkJICAgIF9fdTE2IGRhdGFfbGVuLAorCQkJCSAgICBjb25zdCBjaGFyICpmd25hbWUsCiAJCQkJICAgIF9fdTggaW50ZXJydXB0LAogCQkJCSAgICBfX3U4IHR5cGUpCiB7Ci0JaWYoZGF0YV9sZW4gPiBLQVdFVEhfRklSTVdBUkVfQlVGX1NJWkUpCXsKLQkJZXJyKCJGaXJtd2FyZSB0b28gYmlnOiAlZCIsIGRhdGFfbGVuKTsKLQkJcmV0dXJuIC1FTk9TUEM7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwlpbnQgZGF0YV9sZW47CisJaW50IHJldDsKKworCXJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmZ3LCBmd25hbWUsICZrYXdldGgtPmRldi0+ZGV2KTsKKwlpZiAocmV0KSB7CisJCWVycigiRmlybXdhcmUgcmVxdWVzdCBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAotCW1lbWNweShrYXdldGgtPmZpcm13YXJlX2J1ZiwgZGF0YSwgZGF0YV9sZW4pOworCWlmIChmdy0+c2l6ZSA+IEtBV0VUSF9GSVJNV0FSRV9CVUZfU0laRSkgeworCQllcnIoIkZpcm13YXJlIHRvbyBiaWc6ICV6dSIsIGZ3LT5zaXplKTsKKwkJcmV0dXJuIC1FTk9TUEM7CisJfQorCWRhdGFfbGVuID0gZnctPnNpemU7CisJbWVtY3B5KGthd2V0aC0+ZmlybXdhcmVfYnVmLCBmdy0+ZGF0YSwgZnctPnNpemUpOworCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAKIAlrYXdldGgtPmZpcm13YXJlX2J1ZlsyXSA9IChkYXRhX2xlbiAmIDB4RkYpIC0gNzsKIAlrYXdldGgtPmZpcm13YXJlX2J1ZlszXSA9IGRhdGFfbGVuID4+IDg7CkBAIC00MDYsOCArNDIwLDcgQEAKIAkJICAga2F3ZXRoLT5maXJtd2FyZV9idWZbMl0pOwogCiAJZGJnKCJEb3dubG9hZGluZyBmaXJtd2FyZSBhdCAlcCB0byBrYXdldGggZGV2aWNlIGF0ICVwIiwKLQkgICAgZGF0YSwKLQkgICAga2F3ZXRoKTsKKwkgICAgZnctPmRhdGEsIGthd2V0aCk7CiAJZGJnKCJGaXJtd2FyZSBsZW5ndGg6ICVkIiwgZGF0YV9sZW4pOwogCiAJcmV0dXJuIGthd2V0aF9jb250cm9sKGthd2V0aCwKQEAgLTcwNiw3ICs3MTksNyBAQAogCXVzYl9raWxsX3VyYihrYXdldGgtPnJ4X3VyYik7CiAJdXNiX2tpbGxfdXJiKGthd2V0aC0+dHhfdXJiKTsKIAotCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZrYXdldGgtPmxvd21lbV93b3JrKTsKIAogCS8qIGEgc2NoZWR1bGVkIHdvcmsgbWF5IGhhdmUgcmVzdWJtaXR0ZWQsCiAJICAgd2UgaGl0IHRoZW0gYWdhaW4gKi8KQEAgLTEwMDksOCArMTAyMiw3IEBACiAJCWluZm8oIkRvd25sb2FkaW5nIGZpcm13YXJlLi4uIik7CiAJCWthd2V0aC0+ZmlybXdhcmVfYnVmID0gKF9fdTggKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CiAJCWlmICgocmVzdWx0ID0ga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKGthd2V0aCwKLQkJCQkJCSAgICAgIGthd2V0aF9uZXdfY29kZSwKLQkJCQkJCSAgICAgIGxlbl9rYXdldGhfbmV3X2NvZGUsCisJCQkJCQkgICAgICAia2F3ZXRoL25ld19jb2RlLmJpbiIsCiAJCQkJCQkgICAgICAxMDAsCiAJCQkJCQkgICAgICAyKSkgPCAwKSB7CiAJCQllcnIoIkVycm9yIGRvd25sb2FkaW5nIGZpcm13YXJlICglZCkiLCByZXN1bHQpOwpAQCAtMTAxOCw4ICsxMDMwLDcgQEAKIAkJfQogCiAJCWlmICgocmVzdWx0ID0ga2F3ZXRoX2Rvd25sb2FkX2Zpcm13YXJlKGthd2V0aCwKLQkJCQkJCSAgICAgIGthd2V0aF9uZXdfY29kZV9maXgsCi0JCQkJCQkgICAgICBsZW5fa2F3ZXRoX25ld19jb2RlX2ZpeCwKKwkJCQkJCSAgICAgICJrYXdldGgvbmV3X2NvZGVfZml4LmJpbiIsCiAJCQkJCQkgICAgICAxMDAsCiAJCQkJCQkgICAgICAzKSkgPCAwKSB7CiAJCQllcnIoIkVycm9yIGRvd25sb2FkaW5nIGZpcm13YXJlIGZpeCAoJWQpIiwgcmVzdWx0KTsKQEAgLTEwMjcsOCArMTAzOCw3IEBACiAJCX0KIAogCQlpZiAoKHJlc3VsdCA9IGthd2V0aF9kb3dubG9hZF9maXJtd2FyZShrYXdldGgsCi0JCQkJCQkgICAgICBrYXdldGhfdHJpZ2dlcl9jb2RlLAotCQkJCQkJICAgICAgbGVuX2thd2V0aF90cmlnZ2VyX2NvZGUsCisJCQkJCQkgICAgICAia2F3ZXRoL3RyaWdnZXJfY29kZS5iaW4iLAogCQkJCQkJICAgICAgMTI2LAogCQkJCQkJICAgICAgMikpIDwgMCkgewogCQkJZXJyKCJFcnJvciBkb3dubG9hZGluZyB0cmlnZ2VyIGNvZGUgKCVkKSIsIHJlc3VsdCk7CkBAIC0xMDM3LDggKzEwNDcsNyBAQAogCQl9CiAKIAkJaWYgKChyZXN1bHQgPSBrYXdldGhfZG93bmxvYWRfZmlybXdhcmUoa2F3ZXRoLAotCQkJCQkJICAgICAga2F3ZXRoX3RyaWdnZXJfY29kZV9maXgsCi0JCQkJCQkgICAgICBsZW5fa2F3ZXRoX3RyaWdnZXJfY29kZV9maXgsCisJCQkJCQkgICAgICAia2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluIiwKIAkJCQkJCSAgICAgIDEyNiwKIAkJCQkJCSAgICAgIDMpKSA8IDApIHsKIAkJCWVycigiRXJyb3IgZG93bmxvYWRpbmcgdHJpZ2dlciBjb2RlIGZpeCAoJWQpIiwgcmVzdWx0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9rYXdldGhmdy5oIGIvZHJpdmVycy9uZXQvdXNiL2thd2V0aGZ3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmODVmY2IuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy9uZXQvdXNiL2thd2V0aGZ3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NTcgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qIE5PVEU6IEI2L0MzIGlzIGRhdGEgaGVhZGVyIHNpZ25hdHVyZSAgICovCi0vKiAgICAgICAweEFBLzB4QkIgaXMgZGF0YSBsZW5ndGggPSB0b3RhbCAqLwotLyogICAgICAgYnl0ZXMgLSA3LCAweENDIGlzIHR5cGUsIDB4REQgaXMgKi8KLS8qICAgICAgIGludGVycnVwdCB0byB1c2UuICAgICAgICAgICAgICAgICovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF90cmlnZ2VyX2NvZGUKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIF9fdTgga2F3ZXRoX3RyaWdnZXJfY29kZVtdID0gCi17Ci0gICAgMHhCNiwgMHhDMywgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwKLSAgICAweGM4LCAweDA3LCAweGEwLCAweDAwLCAweGYwLCAweDA3LCAweDVlLCAweDAwLAotICAgIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4MGEsIDB4MDAsIDB4MDgsIDB4MDAsCi0gICAgMHhmMCwgMHgwOSwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHhlNywgMHgwNywKLSAgICAweDM2LCAweDAwLCAweDAwLCAweDAwLCAweGYwLCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4NTAsIDB4YzMsIDB4MTAsIDB4YzAsCi0gICAgMHhmMCwgMHgwOSwgMHgwZSwgMHhjMCwgMHgwMCwgMHgwMCwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweDBlLCAweGMwLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4MTcsIDB4MDIsIDB4YzgsIDB4MDcsIDB4YTAsIDB4MDAsCi0gICAgMHhlNywgMHgxNywgMHg1MCwgMHhjMywgMHgxMCwgMHhjMCwgMHgzMCwgMHhkOCwKLSAgICAweDA0LCAweDAwLCAweDMwLCAweDVjLCAweDA4LCAweDAwLCAweDA0LCAweDAwLAotICAgIDB4YjAsIDB4YzAsIDB4MDYsIDB4MDAsIDB4YzgsIDB4MDUsIDB4ZTcsIDB4MDUsCi0gICAgMHgwMCwgMHhjMCwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwgMHg0OSwgMHhhZiwKLSAgICAweGMwLCAweDA3LCAweDAwLCAweDAwLCAweDYwLCAweGFmLCAweDRhLCAweGFmLAotICAgIDB4MDAsIDB4MGMsIDB4MGMsIDB4MDAsIDB4NDAsIDB4ZDIsIDB4MDAsIDB4MWMsCi0gICAgMHgwYywgMHgwMCwgMHg0MCwgMHhkMiwgMHgzMCwgMHgwMCwgMHgwOCwgMHgwMCwKLSAgICAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweGYwLCAweDA3LAotICAgIDB4ODYsIDB4MDAsIDB4MDYsIDB4MDAsIDB4NjcsIDB4Y2YsIDB4MjcsIDB4MGMsCi0gICAgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyNywgMHgwYywgMHgwMCwgMHgwMCwKLSAgICAweDBlLCAweGMwLCAweDQ5LCAweGFmLCAweDY0LCAweGFmLCAweGMwLCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4NGIsIDB4YWYsIDB4NGEsIDB4YWYsIDB4NWEsIDB4Y2YsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDk0LCAweDAwLCAweDA1LCAweDAwLAotICAgIDB4MDAsIDB4MDAKLX07Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF90cmlnZ2VyX2NvZGVfZml4Ci0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXN0YXRpYyBfX3U4IGthd2V0aF90cmlnZ2VyX2NvZGVfZml4W10gPSAKLXsKLSAgICAweEI2LCAweEMzLCAweEFBLCAweEJCLCAweENDLCAweERELAotICAgIDB4MDIsIDB4MDAsIDB4MDYsIDB4MDAsIDB4MTgsIDB4MDAsIDB4M2UsIDB4MDAsCi0gICAgMHg4MCwgMHgwMCwgMHg5OCwgMHgwMCwgMHhhYSwgMHgwMCwKLSAgICAweDAwLCAweDAwCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF9uZXdfY29kZQotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgX191OCBrYXdldGhfbmV3X2NvZGVbXSA9IAotewotICAgIDB4QjYsIDB4QzMsIDB4QUEsIDB4QkIsIDB4Q0MsIDB4REQsCi0gICAgMHg5ZiwgMHhjZiwgMHhkZSwgMHgwNiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGM0LCAweDA2LCAweDk3LCAweGMxLCAweGU3LCAweDY3LCAweGZmLCAweDFmLAotICAgIDB4MjgsIDB4YzAsIDB4ZTcsIDB4ODcsIDB4MDAsIDB4MDQsIDB4MjQsIDB4YzAsCi0gICAgMHhlNywgMHg2NywgMHhmZiwgMHhmOSwgMHgyMiwgMHhjMCwgMHg5NywgMHhjZiwKLSAgICAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGU3LCAweDA5LCAweGEyLCAweGMwLAotICAgIDB4YmUsIDB4MDYsIDB4OWYsIDB4YWYsIDB4MzYsIDB4MDAsIDB4ZTcsIDB4MDUsCi0gICAgMHgwMCwgMHhjMCwgMHhhNywgMHhjZiwgMHhiYywgMHgwNiwgMHg5NywgMHhjZiwKLSAgICAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweGI4LCAweDA2LCAweGE3LCAweGExLAotICAgIDB4YjgsIDB4MDYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHgxNCwgMHgwOCwgMHgwYSwgMHhjMCwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwKLSAgICAweGE0LCAweGMwLCAweGE3LCAweGMwLCAweDdhLCAweDA2LCAweDlmLCAweGFmLAotICAgIDB4OTIsIDB4MDcsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4MTQsIDB4MDgsCi0gICAgMHhlNywgMHg1NywgMHhmZiwgMHhmZiwgMHhiYSwgMHgwNiwgMHg5ZiwgMHhhMCwKLSAgICAweDM4LCAweDAwLCAweGU3LCAweDU5LCAweGJhLCAweDA2LCAweGJlLCAweDA2LAotICAgIDB4OWYsIDB4YTAsIDB4MzgsIDB4MDAsIDB4YzgsIDB4MDksIDB4Y2EsIDB4MDYsCi0gICAgMHgwOCwgMHg2MiwgMHg5ZiwgMHhhMSwgMHgzNiwgMHgwOCwgMHhjMCwgMHgwOSwKLSAgICAweDc2LCAweDA2LCAweDAwLCAweDYwLCAweGE3LCAweGMwLCAweDdhLCAweDA2LAotICAgIDB4OWYsIDB4YWYsIDB4Y2MsIDB4MDIsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhiOCwgMHgwNiwgMHhhNywgMHhjMSwgMHg3YSwgMHgwNiwgMHg5ZiwgMHhhZiwKLSAgICAweDA0LCAweDAwLCAweGU3LCAweDU3LCAweDAwLCAweDAwLCAweDhlLCAweDA2LAotICAgIDB4MGEsIDB4YzEsIDB4ZTcsIDB4MDksIDB4MjAsIDB4YzAsIDB4MTAsIDB4MDgsCi0gICAgMHhlNywgMHhkMCwgMHgxMCwgMHgwOCwgMHhlNywgMHg2NywgMHg0MCwgMHgwMCwKLSAgICAweDEwLCAweDA4LCAweDlmLCAweGFmLCAweDkyLCAweDBjLCAweGMwLCAweDA5LAotICAgIDB4ZDAsIDB4MDYsIDB4MDAsIDB4NjAsIDB4MDUsIDB4YzQsIDB4YzAsIDB4NTksCi0gICAgMHhiZSwgMHgwNiwgMHgwMiwgMHhjMCwgMHg5ZiwgMHhhZiwgMHhlYywgMHgwMCwKLSAgICAweDlmLCAweGFmLCAweDM0LCAweDAyLCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YTYsIDB4MDYsIDB4OWYsIDB4YTAsIDB4N2EsIDB4MDIsIDB4YTcsIDB4Y2YsCi0gICAgMHg3YSwgMHgwNiwgMHg0OCwgMHgwMiwgMHhlNywgMHgwOSwgMHhiZSwgMHgwNiwKLSAgICAweGQwLCAweDA2LCAweGM4LCAweDM3LCAweDA0LCAweDAwLCAweDlmLCAweGFmLAotICAgIDB4MDgsIDB4MDMsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhjZSwgMHgwNiwgMHg5NywgMHhjMCwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwKLSAgICAweGMxLCAweGRmLCAweGM4LCAweDA5LCAweGM2LCAweDA2LCAweDA4LCAweDYyLAotICAgIDB4MTQsIDB4YzAsIDB4MjcsIDB4MDQsIDB4YzYsIDB4MDYsIDB4MTAsIDB4OTQsCi0gICAgMHhmMCwgMHgwNywgMHgxMCwgMHgwOCwgMHgwMiwgMHgwMCwgMHhjMSwgMHgwNywKLSAgICAweDAxLCAweDAwLCAweDcwLCAweDAwLCAweDA0LCAweDAwLCAweGYwLCAweDA3LAotICAgIDB4MzAsIDB4MDEsIDB4MDYsIDB4MDAsIDB4NTAsIDB4YWYsIDB4ZTcsIDB4MDcsCi0gICAgMHhmZiwgMHhmZiwgMHhkMCwgMHgwNiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGNlLCAweDA2LCAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLAotICAgIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4NDgsIDB4MDIsCi0gICAgMHhkMCwgMHgwOSwgMHhjNiwgMHgwNiwgMHgyNywgMHgwMiwgMHhjNiwgMHgwNiwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDk3LCAweGNmLCAweDQ4LCAweDAyLAotICAgIDB4YzgsIDB4MzcsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGMsIDB4MGMsIDB4MDAsCi0gICAgMHgwMCwgMHg2MCwgMHgyMSwgMHhjMCwgMHhjMCwgMHgzNywgMHgzZSwgMHgwMCwKLSAgICAweDIzLCAweGM5LCAweGMwLCAweDU3LCAweGI0LCAweDA1LCAweDFiLCAweGM4LAotICAgIDB4YzAsIDB4MTcsIDB4M2YsIDB4MDAsIDB4YzAsIDB4NjcsIDB4YzAsIDB4ZmYsCi0gICAgMHgzMCwgMHgwMCwgMHgwOCwgMHgwMCwgMHhmMCwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDA0LCAweDAwLCAweDAwLCAweDAyLCAweGMwLCAweDE3LCAweDRjLCAweDAwLAotICAgIDB4MzAsIDB4MDAsIDB4MDYsIDB4MDAsIDB4ZjAsIDB4MDcsIDB4YTAsIDB4MDEsCi0gICAgMHgwYSwgMHgwMCwgMHg0OCwgMHgwMiwgMHhjMSwgMHgwNywgMHgwMiwgMHgwMCwKLSAgICAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGMxLCAweGRmLCAweDUxLCAweGFmLAotICAgIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsIDB4OWYsIDB4YWYsCi0gICAgMHgwOCwgMHgwMywgMHg5ZiwgMHhhZiwgMHg3YSwgMHgwMiwgMHg5NywgMHhjZiwKLSAgICAweDlmLCAweGFmLCAweDdhLCAweDAyLCAweGM5LCAweDM3LCAweDA0LCAweDAwLAotICAgIDB4YzEsIDB4ZGYsIDB4YzgsIDB4MDksIDB4YTIsIDB4MDYsIDB4NTAsIDB4MDIsCi0gICAgMHg2NywgMHgwMiwgMHhhMiwgMHgwNiwgMHhkMSwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweDI3LCAweGQ4LCAweGFhLCAweDA2LCAweGMwLCAweGRmLCAweDlmLCAweGFmLAotICAgIDB4YzQsIDB4MDEsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhkMiwgMHgwNiwgMHg5NywgMHhjMSwgMHhlNywgMHg1NywgMHgwMSwgMHgwMCwKLSAgICAweGE4LCAweDA2LCAweDk3LCAweGMwLCAweGM4LCAweDA5LCAweGEwLCAweDA2LAotICAgIDB4MDgsIDB4NjIsIDB4OTcsIDB4YzAsIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsCi0gICAgMHgwZSwgMHgwMCwgMHgyNywgMHgwMCwgMHgzNCwgMHgwMSwgMHgyNywgMHgwYywKLSAgICAweDBjLCAweDAwLCAweDM2LCAweDAxLCAweGU3LCAweDA3LCAweDUwLCAweGMzLAotICAgIDB4MTIsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4Y2MsIDB4MGIsIDB4MDIsIDB4MDAsCi0gICAgMHhlNywgMHgwNywgMHgwMSwgMHgwMCwgMHhhOCwgMHgwNiwgMHhlNywgMHgwNywKLSAgICAweDA1LCAweDAwLCAweDkwLCAweGMwLCAweDk3LCAweGNmLCAweGM4LCAweDA5LAotICAgIDB4YTQsIDB4MDYsIDB4MDgsIDB4NjIsIDB4MDIsIDB4YzAsIDB4MTAsIDB4NjQsCi0gICAgMHgwNywgMHhjMSwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg5ZSwgMHgwNiwKLSAgICAweGU3LCAweDA3LCAweDcyLCAweDA0LCAweDI0LCAweDAwLCAweDk3LCAweGNmLAotICAgIDB4MjcsIDB4MDQsIDB4YTQsIDB4MDYsIDB4YzgsIDB4MTcsIDB4MGUsIDB4MDAsCi0gICAgMHgyNywgMHgwMiwgMHg5ZSwgMHgwNiwgMHhlNywgMHgwNywgMHg4MCwgMHgwNCwKLSAgICAweDI0LCAweDAwLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LCAweDAwLCAweGMwLAotICAgIDB4YzEsIDB4ZGYsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OTAsIDB4MDYsCi0gICAgMHgxMywgMHhjMSwgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweDllLCAweDA2LCAweDEzLCAweGMwLCAweGU3LCAweDA5LAotICAgIDB4OWUsIDB4MDYsIDB4MzAsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4ZjIsIDB4MDUsCi0gICAgMHgzMiwgMHgwMSwgMHhlNywgMHgwNywgMHgxMCwgMHgwMCwgMHg5NiwgMHhjMCwKLSAgICAweGU3LCAweDA5LCAweDllLCAweDA2LCAweDkwLCAweDA2LCAweDA0LCAweGNmLAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OWUsIDB4MDYsIDB4MDIsIDB4YzEsCi0gICAgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwKLSAgICAweDk3LCAweGNmLCAweGQ3LCAweDA5LCAweDAwLCAweGMwLCAweGMxLCAweGRmLAotICAgIDB4MDgsIDB4OTIsIDB4ZTcsIDB4NTcsIDB4MDIsIDB4MDAsIDB4YWEsIDB4MDYsCi0gICAgMHgwMiwgMHhjMywgMHhjOCwgMHgwOSwgMHhhNCwgMHgwNiwgMHgyNywgMHgwMiwKLSAgICAweGE2LCAweDA2LCAweDA4LCAweDYyLCAweDAzLCAweGMxLCAweGU3LCAweDA1LAotICAgIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsIDB4MjcsIDB4MDQsIDB4YTQsIDB4MDYsCi0gICAgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwgMHhmMCwgMHgwNywgMHg0MCwgMHgwMCwKLSAgICAweDA4LCAweDAwLCAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLAotICAgIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsIDB4MGMsIDB4MDAsIDB4MzAsIDB4MDAsCi0gICAgMHgwNiwgMHgwMCwgMHhmMCwgMHgwNywgMHg0NiwgMHgwMSwgMHgwYSwgMHgwMCwKLSAgICAweGM4LCAweDE3LCAweDA0LCAweDAwLCAweGMxLCAweDA3LCAweDAyLCAweDAwLAotICAgIDB4NTEsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHg5NiwgMHgwNiwgMHg5NywgMHhjMCwgMHhjMSwgMHhkZiwgMHhjOCwgMHgwOSwKLSAgICAweDk2LCAweDA2LCAweDI3LCAweDA0LCAweDk2LCAweDA2LCAweDI3LCAweDUyLAotICAgIDB4OTgsIDB4MDYsIDB4MDMsIDB4YzEsIDB4ZTcsIDB4MDcsIDB4OTYsIDB4MDYsCi0gICAgMHg5OCwgMHgwNiwgMHhjMCwgMHhkZiwgMHgxNywgMHgwMiwgMHhjOCwgMHgxNywKLSAgICAweDBlLCAweDAwLCAweDlmLCAweGFmLCAweGJhLCAweDAzLCAweGM4LCAweDA1LAotICAgIDB4MDAsIDB4NjAsIDB4MDMsIDB4YzAsIDB4OWYsIDB4YWYsIDB4MjQsIDB4MDMsCi0gICAgMHg5NywgMHhjZiwgMHg5ZiwgMHhhZiwgMHgwOCwgMHgwMywgMHg5NywgMHhjZiwKLSAgICAweDU3LCAweDAyLCAweGM5LCAweDA3LCAweGE0LCAweDA2LCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4YzEsIDB4ZGYsIDB4MDgsIDB4NjIsIDB4MWIsIDB4YzAsCi0gICAgMHg1MCwgMHgwNCwgMHgxMSwgMHgwMiwgMHhlNywgMHgwNSwgMHgwMCwgMHhjMCwKLSAgICAweGM5LCAweDA1LCAweDk3LCAweGNmLCAweDk3LCAweDAyLCAweGNhLCAweDA5LAotICAgIDB4ZDYsIDB4MDYsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MDQsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgwNiwgMHgwMCwgMHhjYSwgMHgxNywKLSAgICAweDJjLCAweDAwLCAweGY4LCAweDc3LCAweDAxLCAweDAwLCAweDBlLCAweDAwLAotICAgIDB4MDYsIDB4YzAsIDB4Y2EsIDB4ZDksIDB4ZjgsIDB4NTcsIDB4ZmYsIDB4MDAsCi0gICAgMHgwZSwgMHgwMCwgMHgwMSwgMHhjMSwgMHhjYSwgMHhkOSwgMHgyMiwgMHgxYywKLSAgICAweDBjLCAweDAwLCAweGUyLCAweDI3LCAweDAwLCAweDAwLCAweGUyLCAweDE3LAotICAgIDB4MDEsIDB4MDAsIDB4ZTIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MDUsCi0gICAgMHgwMCwgMHgwYywgMHgwYywgMHgwMCwgMHhjMCwgMHgxNywgMHg0MSwgMHgwMCwKLSAgICAweGMwLCAweDY3LCAweGMwLCAweGZmLCAweDMwLCAweDAwLCAweDA4LCAweDAwLAotICAgIDB4MDAsIDB4MDIsIDB4YzAsIDB4MTcsIDB4MGMsIDB4MDAsIDB4MzAsIDB4MDAsCi0gICAgMHgwNiwgMHgwMCwgMHhmMCwgMHgwNywgMHhkYSwgMHgwMCwgMHgwYSwgMHgwMCwKLSAgICAweGYwLCAweDA3LCAweDAwLCAweDAwLCAweDA0LCAweDAwLCAweDAwLCAweDBjLAotICAgIDB4MDgsIDB4MDAsIDB4NDAsIDB4ZDEsIDB4MDEsIDB4MDAsIDB4YzAsIDB4MTksCi0gICAgMHhjZSwgMHgwNiwgMHhjMCwgMHg1OSwgMHhjMiwgMHgwNiwgMHgwNCwgMHhjOSwKLSAgICAweDQ5LCAweGFmLCAweDlmLCAweGFmLCAweGVjLCAweDAwLCAweDRhLCAweGFmLAotICAgIDB4NjcsIDB4MTAsIDB4Y2UsIDB4MDYsIDB4YzgsIDB4MTcsIDB4MDQsIDB4MDAsCi0gICAgMHhjMSwgMHgwNywgMHgwMSwgMHgwMCwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwKLSAgICAweGMxLCAweGRmLCAweDUwLCAweGFmLCAweGU3LCAweDA1LCAweDAwLCAweGMwLAotICAgIDB4OTcsIDB4Y2YsIDB4YzAsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzEsIDB4MDksCi0gICAgMHhhYywgMHgwNiwgMHhjMSwgMHg3NywgMHgwMSwgMHgwMCwgMHg5NywgMHhjMSwKLSAgICAweGQ4LCAweDc3LCAweDAxLCAweDAwLCAweDEyLCAweGMwLCAweGM5LCAweDA3LAotICAgIDB4NmEsIDB4MDYsIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDQsIDB4MDQsIDB4YzEsCi0gICAgMHhjMSwgMHg3NywgMHgwOCwgMHgwMCwgMHgxMywgMHhjMCwgMHg5NywgMHhjZiwKLSAgICAweGMxLCAweDc3LCAweDAyLCAweDAwLCAweDk3LCAweGMxLCAweGMxLCAweDc3LAotICAgIDB4MTAsIDB4MDAsIDB4MGMsIDB4YzAsIDB4OWYsIDB4YWYsIDB4MmMsIDB4MDQsCi0gICAgMHg5NywgMHhjZiwgMHhjMSwgMHg3NywgMHgwNCwgMHgwMCwgMHgwNiwgMHhjMCwKLSAgICAweGM5LCAweDA3LCAweDcwLCAweDA2LCAweDlmLCAweGFmLCAweDA4LCAweDA0LAotICAgIDB4OTcsIDB4YzAsIDB4MDAsIDB4Y2YsIDB4MDAsIDB4OTAsIDB4OTcsIDB4Y2YsCi0gICAgMHg1MCwgMHg1NCwgMHg5NywgMHhjMSwgMHg3MCwgMHg1YywgMHgwMiwgMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDk3LCAweGMxLCAweDcwLCAweDVjLCAweDA0LCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4OTcsIDB4Y2YsIDB4ODAsIDB4MDEsIDB4YzAsIDB4MDAsCi0gICAgMHg2MCwgMHgwMCwgMHgzMCwgMHgwMCwgMHgxOCwgMHgwMCwgMHgwYywgMHgwMCwKLSAgICAweDA2LCAweDAwLCAweDAwLCAweDAwLCAweGNiLCAweDA5LCAweGIyLCAweDA2LAotICAgIDB4Y2MsIDB4MDksIDB4YjQsIDB4MDYsIDB4MGIsIDB4NTMsIDB4MTEsIDB4YzAsCi0gICAgMHhjOSwgMHgwMiwgMHhjYSwgMHgwNywgMHgxYywgMHgwNCwgMHg5ZiwgMHhhZiwKLSAgICAweDA4LCAweDA0LCAweDk3LCAweGMwLCAweDBhLCAweGM4LCAweDgyLCAweDA4LAotICAgIDB4MGEsIDB4Y2YsIDB4ODIsIDB4MDgsIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDQsCi0gICAgMHg5NywgMHhjMCwgMHgwNSwgMHhjMiwgMHg4OSwgMHgzMCwgMHg4MiwgMHg2MCwKLSAgICAweDc4LCAweGMxLCAweDAwLCAweDkwLCAweDk3LCAweGNmLCAweDg5LCAweDEwLAotICAgIDB4MDksIDB4NTMsIDB4NzksIDB4YzIsIDB4ODksIDB4MzAsIDB4ODIsIDB4MDgsCi0gICAgMHg3YSwgMHhjZiwgMHhjMCwgMHhkZiwgMHg5NywgMHhjZiwgMHhjMCwgMHhkZiwKLSAgICAweDk3LCAweGNmLCAweGU3LCAweDA5LCAweDk2LCAweGMwLCAweDkyLCAweDA2LAotICAgIDB4ZTcsIDB4MDksIDB4OTgsIDB4YzAsIDB4OTQsIDB4MDYsIDB4MGYsIDB4Y2YsCi0gICAgMHhlNywgMHgwOSwgMHg5NiwgMHhjMCwgMHg5MiwgMHgwNiwgMHhlNywgMHgwOSwKLSAgICAweDk4LCAweGMwLCAweDk0LCAweDA2LCAweGU3LCAweDA5LCAweDllLCAweDA2LAotICAgIDB4MzAsIDB4MDEsIDB4ZTcsIDB4MDcsIDB4ZjIsIDB4MDUsIDB4MzIsIDB4MDEsCi0gICAgMHhlNywgMHgwNywgMHgxMCwgMHgwMCwgMHg5NiwgMHhjMCwgMHhkNywgMHgwOSwKLSAgICAweDAwLCAweGMwLCAweDE3LCAweDAyLCAweGM4LCAweDA5LCAweDkwLCAweDA2LAotICAgIDB4YzgsIDB4MzcsIDB4MGUsIDB4MDAsIDB4ZTcsIDB4NzcsIDB4MmEsIDB4MDAsCi0gICAgMHg5MiwgMHgwNiwgMHgzMCwgMHhjMCwgMHg5NywgMHgwMiwgMHhjYSwgMHgwOSwKLSAgICAweGQ2LCAweDA2LCAweGU3LCAweDc3LCAweDIwLCAweDAwLCAweDkyLCAweDA2LAotICAgIDB4MGUsIDB4YzAsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MTAsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMCwgMHhlNywgMHg3NywKLSAgICAweDBhLCAweDAwLCAweDkyLCAweDA2LCAweGNhLCAweDA1LCAweDFlLCAweGMwLAotICAgIDB4OTcsIDB4MDIsIDB4Y2EsIDB4MDksIDB4ZDYsIDB4MDYsIDB4ZjIsIDB4MTcsCi0gICAgMHgwMSwgMHgwMCwgMHgwYywgMHgwMCwgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDBlLCAweDAwLCAweGU3LCAweDc3LCAweDAyLCAweDAwLCAweDkyLCAweDA2LAotICAgIDB4MDcsIDB4YzAsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4NDQsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMCwgMHgwNiwgMHhjZiwKLSAgICAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDYwLCAweDAwLCAweGYyLCAweDI3LAotICAgIDB4MDAsIDB4MDAsIDB4NjIsIDB4MDAsIDB4Y2EsIDB4MDUsIDB4OWYsIDB4YWYsCi0gICAgMHgwOCwgMHgwMywgMHgwZiwgMHhjZiwgMHg1NywgMHgwMiwgMHgwOSwgMHgwMiwKLSAgICAweGYxLCAweDA5LCAweDk0LCAweDA2LCAweDBjLCAweDAwLCAweGYxLCAweGRhLAotICAgIDB4MGMsIDB4MDAsIDB4YzgsIDB4MDksIDB4OTgsIDB4MDYsIDB4NTAsIDB4MDIsCi0gICAgMHg2NywgMHgwMiwgMHg5OCwgMHgwNiwgMHhkMSwgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGM5LCAweDA1LCAweGU3LCAweDA5LCAweDllLCAweDA2LCAweDkwLCAweDA2LAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4OTAsIDB4MDYsIDB4MDIsIDB4YzAsCi0gICAgMHg5ZiwgMHhhZiwgMHgwNiwgMHgwMiwgMHhjOCwgMHgwNSwgMHhlNywgMHgwNSwKLSAgICAweDAwLCAweGMwLCAweGMwLCAweGRmLCAweDk3LCAweGNmLCAweGQ3LCAweDA5LAotICAgIDB4MDAsIDB4YzAsIDB4MTcsIDB4MDAsIDB4MTcsIDB4MDIsIDB4OTcsIDB4MDIsCi0gICAgMHhjMCwgMHgwOSwgMHg5MiwgMHhjMCwgMHhlNywgMHgwNywgMHgwNCwgMHgwMCwKLSAgICAweDkwLCAweGMwLCAweGNhLCAweDA5LCAweGQ2LCAweDA2LCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4YTgsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4NmEsIDB4MDQsCi0gICAgMHgwMiwgMHgwMCwgMHhjMCwgMHg3NywgMHgwMiwgMHgwMCwgMHgwOCwgMHhjMCwKLSAgICAweGYyLCAweDE3LCAweDAxLCAweDAwLCAweDUwLCAweDAwLCAweGYyLCAweDI3LAotICAgIDB4MDAsIDB4MDAsIDB4NTIsIDB4MDAsIDB4OWYsIDB4Y2YsIDB4MjQsIDB4MDYsCi0gICAgMHhjMCwgMHg3NywgMHgxMCwgMHgwMCwgMHgwNiwgMHhjMCwgMHhmMiwgMHgxNywKLSAgICAweDAxLCAweDAwLCAweDU4LCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLAotICAgIDB4NWEsIDB4MDAsIDB4YzAsIDB4NzcsIDB4ODAsIDB4MDAsIDB4MDYsIDB4YzAsCi0gICAgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwgMHg3MCwgMHgwMCwgMHhmMiwgMHgyNywKLSAgICAweDAwLCAweDAwLCAweDcyLCAweDAwLCAweGMwLCAweDc3LCAweDA4LCAweDAwLAotICAgIDB4MWQsIDB4YzEsIDB4ZjIsIDB4MTcsIDB4MDEsIDB4MDAsIDB4MDgsIDB4MDAsCi0gICAgMHhmMiwgMHgyNywgMHgwMCwgMHgwMCwgMHgwYSwgMHgwMCwgMHhjMCwgMHg3NywKLSAgICAweDAwLCAweDAyLCAweDA2LCAweGMwLCAweGYyLCAweDE3LCAweDAxLCAweDAwLAotICAgIDB4NjQsIDB4MDAsIDB4ZjIsIDB4MjcsIDB4MDAsIDB4MDAsIDB4NjYsIDB4MDAsCi0gICAgMHhjMCwgMHg3NywgMHg0MCwgMHgwMCwgMHgwNiwgMHhjMCwgMHhmMiwgMHgxNywKLSAgICAweDAxLCAweDAwLCAweDVjLCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLAotICAgIDB4NWUsIDB4MDAsIDB4YzAsIDB4NzcsIDB4MDEsIDB4MDAsIDB4MDEsIDB4YzAsCi0gICAgMHgxYiwgMHhjZiwgMHgxYSwgMHhjZiwgMHhmMiwgMHgxNywgMHgwMSwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweGYyLCAweDI3LCAweDAwLCAweDAwLCAweDAyLCAweDAwLAotICAgIDB4YzgsIDB4MDksIDB4MzQsIDB4MDEsIDB4Y2EsIDB4MTcsIDB4MTQsIDB4MDAsCi0gICAgMHhkOCwgMHg3NywgMHgwMSwgMHgwMCwgMHgwNSwgMHhjMCwgMHhjYSwgMHhkOSwKLSAgICAweGQ4LCAweDU3LCAweGZmLCAweDAwLCAweDAxLCAweGMwLCAweGNhLCAweGQ5LAotICAgIDB4ZTIsIDB4MTksIDB4OTQsIDB4YzAsIDB4ZTIsIDB4MjcsIDB4MDAsIDB4MDAsCi0gICAgMHhlMiwgMHgxNywgMHgwMSwgMHgwMCwgMHhlMiwgMHgyNywgMHgwMCwgMHgwMCwKLSAgICAweDlmLCAweGFmLCAweDQwLCAweDA2LCAweDlmLCAweGFmLCAweGM0LCAweDAxLAotICAgIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsIDB4ZDIsIDB4MDYsIDB4OWYsIDB4YTEsCi0gICAgMHgwZSwgMHgwYSwgMHhjYSwgMHgwNSwgMHhjOCwgMHgwNSwgMHhjMCwgMHgwNSwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweGMwLCAweGRmLCAweDk3LCAweGNmLAotICAgIDB4YzgsIDB4MDksIDB4YTAsIDB4MDYsIDB4MDgsIDB4NjIsIDB4OTcsIDB4YzAsCi0gICAgMHgyNywgMHgwNCwgMHhhMCwgMHgwNiwgMHgyNywgMHg1MiwgMHhhMiwgMHgwNiwKLSAgICAweDAzLCAweGMxLCAweGU3LCAweDA3LCAweGEwLCAweDA2LCAweGEyLCAweDA2LAotICAgIDB4OWYsIDB4YWYsIDB4MDgsIDB4MDMsIDB4ZTcsIDB4NTcsIDB4MDAsIDB4MDAsCi0gICAgMHhhYSwgMHgwNiwgMHgwMiwgMHhjMCwgMHgyNywgMHhkYSwgMHhhYSwgMHgwNiwKLSAgICAweDk3LCAweGNmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHgzZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAgIDB4ZmYsIDB4ZmYsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gICAgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwgMHhmYiwgMHgxMywgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDgwLCAweGIyLCAweDAwLCAweDA2LCAweGMyLCAweGU3LCAweDA3LAotICAgIDB4ZWUsIDB4MGIsIDB4MTIsIDB4MDAsIDB4ZTcsIDB4MDcsIDB4MzQsIDB4MGMsCi0gICAgMHhiMiwgMHgwMCwgMHhlNywgMHgwNywgMHhjNiwgMHgwNywgMHhmMiwgMHgwMiwKLSAgICAweGM4LCAweDA5LCAweGI0LCAweDAwLCAweGY4LCAweDA3LCAweDAyLCAweDAwLAotICAgIDB4MGQsIDB4MDAsIDB4ZDcsIDB4MDksIDB4MGUsIDB4YzAsIDB4ZTcsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHgwZSwgMHhjMCwgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwKLSAgICAweGM4LCAweDE3LCAweDA5LCAweDAwLCAweGM5LCAweDA3LCAweGRhLCAweDA2LAotICAgIDB4YzAsIDB4MDcsIDB4MDQsIDB4MDAsIDB4NjgsIDB4MGEsIDB4MDAsIDB4ZGEsCi0gICAgMHg3ZCwgMHhjMSwgMHhlNywgMHgwOSwgMHhjMCwgMHgwMCwgMHg3YywgMHgwNiwKLSAgICAweGU3LCAweDA5LCAweGJlLCAweDAwLCAweDc4LCAweDA2LCAweGU3LCAweDA5LAotICAgIDB4MTAsIDB4MDAsIDB4YmMsIDB4MDYsIDB4YzgsIDB4MDcsIDB4ZDYsIDB4MDcsCi0gICAgMHg5ZiwgMHhhZiwgMHhhZSwgMHgwNywgMHg5ZiwgMHhhZiwgMHgwMCwgMHgwYSwKLSAgICAweGM4LCAweDA5LCAweGRlLCAweDAwLCAweDAwLCAweDBlLCAweDBmLCAweDAwLAotICAgIDB4NDEsIDB4OTAsIDB4OWYsIDB4ZGUsIDB4MDYsIDB4MDAsIDB4NDQsIDB4YWYsCi0gICAgMHgyNywgMHgwMCwgMHhiMiwgMHgwNiwgMHgyNywgMHgwMCwgMHhiNCwgMHgwNiwKLSAgICAweDI3LCAweDAwLCAweGI2LCAweDA2LCAweGMwLCAweDA3LCAweDc0LCAweDAwLAotICAgIDB4NDQsIDB4YWYsIDB4MjcsIDB4MDAsIDB4ZDYsIDB4MDYsIDB4MDgsIDB4MDAsCi0gICAgMHgwMCwgMHg5MCwgMHhjMSwgMHgwNywgMHgzYSwgMHgwMCwgMHgyMCwgMHgwMCwKLSAgICAweDAxLCAweGRhLCAweDdkLCAweGMxLCAweDlmLCAweGFmLCAweGJhLCAweDA5LAotICAgIDB4YzAsIDB4MDcsIDB4NDQsIDB4MDAsIDB4NDgsIDB4YWYsIDB4MjcsIDB4MDAsCi0gICAgMHg3YSwgMHgwNiwgMHg5ZiwgMHhhZiwgMHg5NiwgMHgwYSwgMHhlNywgMHgwNywKLSAgICAweDAxLCAweDAwLCAweGMwLCAweDA2LCAweGU3LCAweDA1LCAweDBlLCAweGMwLAotICAgIDB4OTcsIDB4Y2YsIDB4NDksIDB4YWYsIDB4ZTcsIDB4ODcsIDB4NDMsIDB4MDAsCi0gICAgMHgwZSwgMHhjMCwgMHhlNywgMHgwNywgMHhmZiwgMHhmZiwgMHhiZSwgMHgwNiwKLSAgICAweDlmLCAweGFmLCAweGFlLCAweDBhLCAweGMwLCAweDA3LCAweDAxLCAweDAwLAotICAgIDB4NjAsIDB4YWYsIDB4NGEsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4MDAsIDB4MDgsCi0gICAgMHgwOSwgMHgwOCwgMHgxMSwgMHgwOCwgMHgwMCwgMHhkYSwgMHg3YywgMHhjMSwKLSAgICAweDk3LCAweGNmLCAweDY3LCAweDA0LCAweGNjLCAweDAyLCAweGMwLCAweGRmLAotICAgIDB4NTEsIDB4OTQsIDB4YjEsIDB4YWYsIDB4MDYsIDB4MDAsIDB4YzEsIDB4ZGYsCi0gICAgMHhjOSwgMHgwOSwgMHhjYywgMHgwMiwgMHg0OSwgMHg2MiwgMHg3NSwgMHhjMSwKLSAgICAweGMwLCAweGRmLCAweGE3LCAweGNmLCAweGQ2LCAweDAyLCAweDBlLCAweDAwLAotICAgIDB4MjQsIDB4MDAsIDB4ODAsIDB4MDQsIDB4MjIsIDB4MDAsIDB4NGUsIDB4MDUsCi0gICAgMHhkMCwgMHgwMCwgMHgwZSwgMHgwYSwgMHhhYSwgMHgwMCwgMHgzMCwgMHgwOCwKLSAgICAweGJlLCAweDAwLCAweDRhLCAweDBhLCAweDEwLCAweDAwLCAweDIwLCAweDAwLAotICAgIDB4MDQsIDB4MDAsIDB4NmUsIDB4MDQsIDB4MDIsIDB4MDAsIDB4NmEsIDB4MDQsCi0gICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyNCwgMHhjMCwgMHgwNCwgMHgwNCwKLSAgICAweDI4LCAweGMwLCAweGZlLCAweGZiLCAweDFlLCAweGMwLCAweDAwLCAweDA0LAotICAgIDB4MjIsIDB4YzAsIDB4ZmYsIDB4ZjQsIDB4YzAsIDB4MDAsIDB4OTAsIDB4MDksCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmZiwgMHhmZiwgMHg1NiwgMHgwOCwKLSAgICAweDYwLCAweDA4LCAweGQwLCAweDA4LCAweGRhLCAweDA4LCAweDAwLCAweDA5LAotICAgIDB4MDQsIDB4MDksIDB4MDgsIDB4MDksIDB4MzIsIDB4MDksIDB4NDIsIDB4MDksCi0gICAgMHg1MCwgMHgwOSwgMHg1MiwgMHgwOSwgMHg1YSwgMHgwOSwgMHg1YSwgMHgwOSwKLSAgICAweDI3LCAweDAyLCAweGNhLCAweDA2LCAweDk3LCAweGNmLCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MDYsIDB4MGEsIDB4MGUsIDB4MDEsIDB4MDAsCi0gICAgMHhjYSwgMHg1NywgMHgwZSwgMHgwMCwgMHg5ZiwgMHhjMywgMHg1YSwgMHgwOSwKLSAgICAweGNhLCAweDM3LCAweDAwLCAweDAwLCAweDlmLCAweGMyLCAweDVhLCAweDA5LAotICAgIDB4MGEsIDB4ZDIsIDB4YjIsIDB4Y2YsIDB4MTYsIDB4MDgsIDB4YzgsIDB4MDksCi0gICAgMHhkZSwgMHgwMCwgMHgwNywgMHgwNiwgMHg5ZiwgMHhjZiwgMHg2YywgMHgwOSwKLSAgICAweDE3LCAweDAyLCAweGM4LCAweDA5LCAweGRlLCAweDAwLCAweDAwLCAweDBlLAotICAgIDB4MGYsIDB4MDAsIDB4NDEsIDB4OTAsIDB4OWYsIDB4ZGUsIDB4MDYsIDB4MDAsCi0gICAgMHhjOCwgMHgwNSwgMHgzMCwgMHg1MCwgMHgwNiwgMHgwMCwgMHg5ZiwgMHhjOCwKLSAgICAweDVhLCAweDA5LCAweDI3LCAweDBjLCAweDAyLCAweDAwLCAweGIwLCAweDA2LAotICAgIDB4YzAsIDB4MDksIDB4YjIsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YjQsIDB4MDYsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHhhZSwgMHgwNiwgMHgyNywgMHgwMCwKLSAgICAweDgwLCAweDA2LCAweDAwLCAweDFjLCAweDA2LCAweDAwLCAweDI3LCAweDAwLAotICAgIDB4YjYsIDB4MDYsIDB4NDEsIDB4OTAsIDB4NjcsIDB4NTAsIDB4YjAsIDB4MDYsCi0gICAgMHgwZCwgMHhjMCwgMHg2NywgMHgwMCwgMHg3ZSwgMHgwNiwgMHgyNywgMHgwYywKLSAgICAweDA2LCAweDAwLCAweDgyLCAweDA2LCAweGU3LCAweDA3LCAweGJjLCAweDA4LAotICAgIDB4ODQsIDB4MDYsIDB4YzgsIDB4MDcsIDB4N2UsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHg1MSwgMHhhZiwgMHg5NywgMHhjZiwgMHg5ZiwgMHhhZiwgMHg0OCwgMHgwYywKLSAgICAweGU3LCAweDA5LCAweGI2LCAweDA2LCAweGI0LCAweDA2LCAweGU3LCAweDA5LAotICAgIDB4YjAsIDB4MDYsIDB4YWUsIDB4MDYsIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHgyNywgMHgwYywgMHgwMiwgMHgwMCwgMHhhYywgMHgwNiwgMHg1OSwgMHhhZiwKLSAgICAweDk3LCAweGNmLCAweDA5LCAweDBjLCAweDAyLCAweDAwLCAweDA5LCAweGRhLAotICAgIDB4NDksIDB4ZDIsIDB4YzksIDB4MTksIDB4ZDYsIDB4MDYsIDB4YzgsIDB4MDcsCi0gICAgMHg3ZSwgMHgwNiwgMHhlMCwgMHgwNywgMHgwMCwgMHgwMCwgMHg2MCwgMHgwMiwKLSAgICAweGUwLCAweDA3LCAweDA0LCAweDAwLCAweGQwLCAweDA3LCAweGNjLCAweDA4LAotICAgIDB4NDgsIDB4ZGIsIDB4NDEsIDB4OTAsIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHg1OSwgMHhhZiwgMHg5NywgMHhjZiwgMHg1OSwgMHhhZiwgMHg5NywgMHhjZiwKLSAgICAweGYwLCAweDU3LCAweDA2LCAweDAwLCAweDA2LCAweDAwLCAweDI1LCAweGMxLAotICAgIDB4ZTcsIDB4MDcsIDB4NzAsIDB4MDYsIDB4ODAsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHg2NywgMHgwMCwgMHg3ZSwgMHgwNiwgMHgyNywgMHgwYywgMHgwNiwgMHgwMCwKLSAgICAweDgyLCAweDA2LCAweGU3LCAweDA3LCAweDhjLCAweDA5LCAweDg0LCAweDA2LAotICAgIDB4YzgsIDB4MDcsIDB4N2UsIDB4MDYsIDB4NDEsIDB4OTAsIDB4NTEsIDB4YWYsCi0gICAgMHg5NywgMHhjZiwgMHgwNywgMHgwYywgMHgwNiwgMHgwMCwgMHhjNywgMHg1NywKLSAgICAweDA2LCAweDAwLCAweDBmLCAweGMxLCAweGM4LCAweDA3LCAweDcwLCAweDA2LAotICAgIDB4MTUsIDB4Y2YsIDB4MDAsIDB4MGMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4ZGEsCi0gICAgMHg0MCwgMHhkMSwgMHgyNywgMHgwMCwgMHhjMiwgMHgwNiwgMHgxZSwgMHhjZiwKLSAgICAweDFkLCAweGNmLCAweDI3LCAweDBjLCAweDAyLCAweDAwLCAweGNjLCAweDA2LAotICAgIDB4MTksIDB4Y2YsIDB4MjcsIDB4MDIsIDB4MjAsIDB4MDEsIDB4ZTcsIDB4MDcsCi0gICAgMHgwOCwgMHgwMCwgMHgyMiwgMHgwMSwgMHhlNywgMHgwNywgMHgxMywgMHgwMCwKLSAgICAweGIwLCAweGMwLCAweDk3LCAweGNmLCAweDQxLCAweDkwLCAweDY3LCAweDAwLAotICAgIDB4N2UsIDB4MDYsIDB4ZTcsIDB4MDEsIDB4ODIsIDB4MDYsIDB4MjcsIDB4MDIsCi0gICAgMHg4MCwgMHgwNiwgMHhlNywgMHgwNywgMHg4YywgMHgwOSwgMHg4NCwgMHgwNiwKLSAgICAweGM4LCAweDA3LCAweDdlLCAweDA2LCAweGMxLCAweDA3LCAweDAwLCAweDgwLAotICAgIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4NTksIDB4YWYsIDB4OTcsIDB4Y2YsCi0gICAgMHgwMCwgMHg2MCwgMHgwNSwgMHhjMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGM0LCAweDA2LCAweGE3LCAweGNmLCAweDdjLCAweDA2LCAweDlmLCAweGFmLAotICAgIDB4MDAsIDB4MGEsIDB4ZTcsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzQsIDB4MDYsCi0gICAgMHg0OSwgMHhhZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHgwNywgMHhhZiwKLSAgICAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDRhLCAweGFmLCAweGE3LCAweGNmLAotICAgIDB4N2MsIDB4MDYsIDB4YzAsIDB4MDcsIDB4ZmUsIDB4N2YsIDB4NDQsIDB4YWYsCi0gICAgMHg0MCwgMHgwMCwgMHhjMCwgMHgzNywgMHgwMCwgMHgwMSwgMHg0MSwgMHg5MCwKLSAgICAweGMwLCAweDM3LCAweDA4LCAweDAwLCAweGRmLCAweGRlLCAweDUwLCAweDA2LAotICAgIDB4YzAsIDB4NTcsIDB4MTAsIDB4MDAsIDB4MDIsIDB4YzIsIDB4YzAsIDB4MDcsCi0gICAgMHgxMCwgMHgwMCwgMHgyNywgMHgwMCwgMHg5YSwgMHgwNiwgMHg0MSwgMHg5MCwKLSAgICAweDlmLCAweGRlLCAweDQwLCAweDA2LCAweDQ0LCAweGFmLCAweDI3LCAweDAwLAotICAgIDB4OWMsIDB4MDYsIDB4YzAsIDB4MDksIDB4OWEsIDB4MDYsIDB4NDEsIDB4OTAsCi0gICAgMHgwMCwgMHhkMiwgMHgwMCwgMHhkOCwgMHg5ZiwgMHhkZSwgMHgwOCwgMHgwMCwKLSAgICAweDQ0LCAweGFmLCAweDI3LCAweDAwLCAweGM4LCAweDA2LCAweDk3LCAweGNmLAotICAgIDB4ZTcsIDB4ODcsIDB4MDAsIDB4ODQsIDB4MjgsIDB4YzAsIDB4ZTcsIDB4NjcsCi0gICAgMHhmZiwgMHhmYiwgMHgyNCwgMHhjMCwgMHg5NywgMHhjZiwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweGQyLCAweDA2LCAweGU3LCAweDU3LCAweDAwLCAweDAwLAotICAgIDB4YTgsIDB4MDYsIDB4OTcsIDB4YzEsIDB4OWYsIDB4YWYsIDB4MDAsIDB4MGEsCi0gICAgMHhlNywgMHg4NywgMHgwMCwgMHgwNiwgMHgyMiwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDkwLCAweGMwLCAweGU3LCAweDY3LCAweGZlLCAweGZmLAotICAgIDB4M2UsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MjYsIDB4MDAsIDB4MGEsIDB4YzAsCi0gICAgMHhlNywgMHg4NywgMHgwMSwgMHgwMCwgMHgzZSwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweGZmLCAweGZmLCAweGJlLCAweDA2LCAweDlmLCAweGFmLCAweDEwLCAweDBiLAotICAgIDB4OTcsIDB4Y2YsIDB4MTcsIDB4MDAsIDB4YTcsIDB4YWYsIDB4NzgsIDB4MDYsCi0gICAgMHhjMCwgMHgwNSwgMHgyNywgMHgwMCwgMHg3NiwgMHgwNiwgMHhlNywgMHg4NywKLSAgICAweDAxLCAweDAwLCAweGQyLCAweDA2LCAweDlmLCAweGFmLCAweDAwLCAweDBhLAotICAgIDB4ZTcsIDB4MDcsIDB4MGMsIDB4MDAsIDB4NDAsIDB4YzAsIDB4OWYsIDB4YWYsCi0gICAgMHgxMCwgMHgwYiwgMHgwMCwgMHg5MCwgMHgyNywgMHgwMCwgMHhhNiwgMHgwNiwKLSAgICAweDI3LCAweDAwLCAweGFhLCAweDA2LCAweGU3LCAweDA5LCAweGIyLCAweDA2LAotICAgIDB4YjQsIDB4MDYsIDB4MjcsIDB4MDAsIDB4YWUsIDB4MDYsIDB4MjcsIDB4MDAsCi0gICAgMHhhYywgMHgwNiwgMHg5ZiwgMHhhZiwgMHhhZSwgMHgwYSwgMHhjMCwgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDI3LCAweDAwLCAweGIyLCAweDAyLCAweDI3LCAweDAwLAotICAgIDB4YjQsIDB4MDIsIDB4MjcsIDB4MDAsIDB4OGUsIDB4MDYsIDB4YzAsIDB4MDcsCi0gICAgMHgwNiwgMHgwMCwgMHhjOCwgMHgwOSwgMHhkZSwgMHgwMCwgMHhjOCwgMHgxNywKLSAgICAweDAzLCAweDAwLCAweGM5LCAweDA3LCAweDcwLCAweDA2LCAweDI5LCAweDBhLAotICAgIDB4MDAsIDB4ZGEsIDB4N2QsIDB4YzEsIDB4OTcsIDB4Y2YsIDB4ZDcsIDB4MDksCi0gICAgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwgMHgwMCwgMHg5MCwgMHgyNywgMHgwMCwKLSAgICAweDk2LCAweDA2LCAweGU3LCAweDA3LCAweDk2LCAweDA2LCAweDk4LCAweDA2LAotICAgIDB4MjcsIDB4MDAsIDB4YTAsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4YTAsIDB4MDYsCi0gICAgMHhhMiwgMHgwNiwgMHgyNywgMHgwMCwgMHhhNiwgMHgwNiwgMHgyNywgMHgwMCwKLSAgICAweDkwLCAweDA2LCAweDI3LCAweDAwLCAweDllLCAweDA2LCAweGM4LCAweDA5LAotICAgIDB4OWMsIDB4MDYsIDB4YzEsIDB4MDksIDB4OWEsIDB4MDYsIDB4YzksIDB4MDcsCi0gICAgMHhhNCwgMHgwNiwgMHgxMSwgMHgwMiwgMHgwOSwgMHgwMiwgMHhjOCwgMHgxNywKLSAgICAweDQwLCAweDA2LCAweDAxLCAweGRhLCAweDdhLCAweGMxLCAweDUxLCAweDk0LAotICAgIDB4YzgsIDB4MDksIDB4YzgsIDB4MDYsIDB4YzksIDB4MDcsIDB4YzYsIDB4MDYsCi0gICAgMHhjMSwgMHgwOSwgMHg5YSwgMHgwNiwgMHgxMSwgMHgwMiwgMHgwOSwgMHgwMiwKLSAgICAweGM4LCAweDE3LCAweDA4LCAweDAwLCAweDAxLCAweGRhLCAweDdhLCAweGMxLAotICAgIDB4NTEsIDB4OTQsIDB4ZTcsIDB4MDUsIDB4MDAsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHg3NiwgMHgwNiwgMHg5NywgMHhjMCwKLSAgICAweDlmLCAweGFmLCAweDA0LCAweDAwLCAweGU3LCAweDA5LCAweGJlLCAweDA2LAotICAgIDB4YmEsIDB4MDYsIDB4ZTcsIDB4NTcsIDB4ZmYsIDB4ZmYsIDB4YmEsIDB4MDYsCi0gICAgMHgwNCwgMHhjMSwgMHhlNywgMHgwNywgMHgxMCwgMHgwYiwgMHhiOCwgMHgwNiwKLSAgICAweDk3LCAweGNmLCAweGU3LCAweDE3LCAweDMyLCAweDAwLCAweGJhLCAweDA2LAotICAgIDB4ZTcsIDB4NjcsIDB4ZmYsIDB4MDcsIDB4YmEsIDB4MDYsIDB4ZTcsIDB4MDcsCi0gICAgMHg0NiwgMHgwYiwgMHhiOCwgMHgwNiwgMHg5NywgMHhjZiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweGMwLCAweDA2LCAweDIzLCAweGMwLCAweGU3LCAweDA3LAotICAgIDB4MDQsIDB4MDAsIDB4OTAsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4ODAsCi0gICAgMHg4MCwgMHhjMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwKLSAgICAweGU3LCAweDA3LCAweDAwLCAweDgwLCAweDgwLCAweGMwLCAweGMwLCAweDA3LAotICAgIDB4MDAsIDB4MDAsIDB4YzAsIDB4MDcsIDB4MDAsIDB4MDAsIDB4YzAsIDB4MDcsCi0gICAgMHgwMCwgMHgwMCwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwKLSAgICAweGU3LCAweDA3LCAweDAwLCAweDgwLCAweDgwLCAweGMwLCAweGU3LCAweDA3LAotICAgIDB4MDAsIDB4ODAsIDB4NDAsIDB4YzAsIDB4YzAsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwgMHg0MCwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweDgwLCAweGMwLCAweGU3LCAweDA3LCAweDA0LCAweDAwLAotICAgIDB4OTAsIDB4YzAsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDIsIDB4NDAsIDB4YzAsCi0gICAgMHhlNywgMHgwNywgMHgwYywgMHgwMiwgMHg0MCwgMHhjMCwgMHhlNywgMHgwNywKLSAgICAweDAwLCAweDAwLCAweGMwLCAweDA2LCAweGU3LCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4YjgsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsIDB4ZDIsIDB4MDYsCi0gICAgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHhjMSwgMHhkZiwgMHg5ZiwgMHhhZiwKLSAgICAweDM0LCAweDAyLCAweGU3LCAweDA1LCAweDAwLCAweGMwLCAweDlmLCAweGFmLAotICAgIDB4YzQsIDB4MDEsIDB4OTcsIDB4Y2YsIDB4ZDcsIDB4MDksIDB4MDAsIDB4YzAsCi0gICAgMHgxNywgMHgwMCwgMHgxNywgMHgwMiwgMHg5NywgMHgwMiwgMHhlNywgMHg1NywKLSAgICAweDAwLCAweDAwLCAweGE4LCAweDA2LCAweDA2LCAweGMwLCAweGMwLCAweDA5LAotICAgIDB4OTIsIDB4YzAsIDB4YzAsIDB4NzcsIDB4MDksIDB4MDIsIDB4OWYsIDB4YzEsCi0gICAgMHg1YywgMHgwNSwgMHg5ZiwgMHhjZiwgMHgzMiwgMHgwNiwgMHhkNywgMHgwOSwKLSAgICAweDBlLCAweGMwLCAweGU3LCAweDA3LCAweDAwLCAweDAwLCAweDBlLCAweGMwLAotICAgIDB4OWYsIDB4YWYsIDB4MDIsIDB4MGMsIDB4ZTcsIDB4MDUsIDB4MGUsIDB4YzAsCi0gICAgMHg5NywgMHhjZiwgMHhkNywgMHgwOSwgMHgwMCwgMHhjMCwgMHgxNywgMHgwMiwKLSAgICAweGM4LCAweDA5LCAweGIwLCAweGMwLCAweGU3LCAweDY3LCAweGZlLCAweDdmLAotICAgIDB4YjAsIDB4YzAsIDB4YzgsIDB4NzcsIDB4MDAsIDB4MjAsIDB4OWYsIDB4YzEsCi0gICAgMHg2NCwgMHhlYiwgMHhlNywgMHg1NywgMHgwMCwgMHgwMCwgMHhjOCwgMHgwMiwKLSAgICAweDlmLCAweGMxLCAweDgwLCAweGViLCAweGM4LCAweDk5LCAweGNhLCAweDAyLAotICAgIDB4YzgsIDB4NjcsIDB4MDQsIDB4MDAsIDB4OWYsIDB4YzEsIDB4OTYsIDB4ZWIsCi0gICAgMHg5ZiwgMHhjZiwgMHg0YywgMHhlYiwgMHhlNywgMHgwNywgMHgwMCwgMHgwMCwKLSAgICAweGE2LCAweGMwLCAweGU3LCAweDA5LCAweGIwLCAweGMwLCAweGM4LCAweDAyLAotICAgIDB4ZTcsIDB4MDcsIDB4MDMsIDB4MDAsIDB4YjAsIDB4YzAsIDB4OTcsIDB4Y2YsCi0gICAgMHhjMCwgMHgwOSwgMHhiMCwgMHgwNiwgMHhjMCwgMHgzNywgMHgwMSwgMHgwMCwKLSAgICAweDk3LCAweGM5LCAweGM5LCAweDA5LCAweGIyLCAweDA2LCAweDAyLCAweDAwLAotICAgIDB4NDEsIDB4OTAsIDB4NDgsIDB4MDIsIDB4YzksIDB4MTcsIDB4MDYsIDB4MDAsCi0gICAgMHg5ZiwgMHhhZiwgMHgwOCwgMHgwNCwgMHg5ZiwgMHhhMiwgMHg3MiwgMHgwYywKLSAgICAweDAyLCAweGRhLCAweDc3LCAweGMxLCAweDQxLCAweDYwLCAweDcxLCAweGMxLAotICAgIDB4OTcsIDB4Y2YsIDB4MTcsIDB4MDIsIDB4NTcsIDB4MDIsIDB4NDMsIDB4MDQsCi0gICAgMHgyMSwgMHgwNCwgMHhlMCwgMHgwMCwgMHg0MywgMHgwNCwgMHgyMSwgMHgwNCwKLSAgICAweGUwLCAweDAwLCAweDQzLCAweDA0LCAweDIxLCAweDA0LCAweGUwLCAweDAwLAotICAgIDB4YzEsIDB4MDcsIDB4MDEsIDB4MDAsIDB4YzksIDB4MDUsIDB4YzgsIDB4MDUsCi0gICAgMHg5NywgMHhjZiwgMHhlNywgMHgwNywgMHgwMSwgMHgwMCwgMHg4ZSwgMHgwNiwKLSAgICAweGM4LCAweDA3LCAweDg2LCAweDA2LCAweGU3LCAweDA3LCAweDAwLCAweDAwLAotICAgIDB4ODYsIDB4MDYsIDB4ZTcsIDB4MDcsIDB4MTAsIDB4MDgsIDB4ODgsIDB4MDYsCi0gICAgMHhlNywgMHgwNywgMHgwNCwgMHgwMCwgMHg4YSwgMHgwNiwgMHhlNywgMHgwNywKLSAgICAweGJjLCAweDBjLCAweDhjLCAweDA2LCAweGMxLCAweDA3LCAweDAzLCAweDgwLAotICAgIDB4NTAsIDB4YWYsIDB4OTcsIDB4Y2YsIDB4ZTcsIDB4MDcsIDB4MDAsIDB4MDAsCi0gICAgMHg4ZSwgMHgwNiwgMHg5NywgMHhjZiwKLSAgICAweDAwLCAweDAwCi19OwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogICAgIGthd2V0aF9uZXdfY29kZV9maXgKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIF9fdTgga2F3ZXRoX25ld19jb2RlX2ZpeFtdID0gCi17Ci0gICAgMHhCNiwgMHhDMywgMHhBQSwgMHhCQiwgMHhDQywgMHhERCwKLSAgICAweDAyLCAweDAwLCAweDA4LCAweDAwLCAweDI4LCAweDAwLCAweDJjLCAweDAwLAotICAgIDB4MzQsIDB4MDAsIDB4M2MsIDB4MDAsIDB4NDAsIDB4MDAsIDB4NDgsIDB4MDAsCi0gICAgMHg1NCwgMHgwMCwgMHg1OCwgMHgwMCwgMHg1ZSwgMHgwMCwgMHg2NCwgMHgwMCwKLSAgICAweDY4LCAweDAwLCAweDZlLCAweDAwLCAweDZjLCAweDAwLCAweDcyLCAweDAwLAotICAgIDB4NzYsIDB4MDAsIDB4N2MsIDB4MDAsIDB4ODAsIDB4MDAsIDB4ODYsIDB4MDAsCi0gICAgMHg4YSwgMHgwMCwgMHg5MCwgMHgwMCwgMHg5NCwgMHgwMCwgMHg5OCwgMHgwMCwKLSAgICAweDllLCAweDAwLCAweGE2LCAweDAwLCAweGFhLCAweDAwLCAweGIwLCAweDAwLAotICAgIDB4YjQsIDB4MDAsIDB4YjgsIDB4MDAsIDB4YzAsIDB4MDAsIDB4YzYsIDB4MDAsCi0gICAgMHhjYSwgMHgwMCwgMHhkMCwgMHgwMCwgMHhkNCwgMHgwMCwgMHhkOCwgMHgwMCwKLSAgICAweGUwLCAweDAwLCAweGRlLCAweDAwLCAweGU4LCAweDAwLCAweGYwLCAweDAwLAotICAgIDB4ZmMsIDB4MDAsIDB4MDQsIDB4MDEsIDB4MGEsIDB4MDEsIDB4MTgsIDB4MDEsCi0gICAgMHgyMiwgMHgwMSwgMHgyOCwgMHgwMSwgMHgzYSwgMHgwMSwgMHgzZSwgMHgwMSwKLSAgICAweDdlLCAweDAxLCAweDk4LCAweDAxLCAweDljLCAweDAxLCAweGEyLCAweDAxLAotICAgIDB4YWMsIDB4MDEsIDB4YjIsIDB4MDEsIDB4YmEsIDB4MDEsIDB4YzAsIDB4MDEsCi0gICAgMHhjOCwgMHgwMSwgMHhkMCwgMHgwMSwgMHhkNiwgMHgwMSwgMHhmNCwgMHgwMSwKLSAgICAweGZjLCAweDAxLCAweDA4LCAweDAyLCAweDE2LCAweDAyLCAweDFhLCAweDAyLAotICAgIDB4MjIsIDB4MDIsIDB4MmEsIDB4MDIsIDB4MmUsIDB4MDIsIDB4M2UsIDB4MDIsCi0gICAgMHg0NCwgMHgwMiwgMHg0YSwgMHgwMiwgMHg1MCwgMHgwMiwgMHg2NCwgMHgwMiwKLSAgICAweDYyLCAweDAyLCAweDZjLCAweDAyLCAweDcyLCAweDAyLCAweDg2LCAweDAyLAotICAgIDB4OGMsIDB4MDIsIDB4OTAsIDB4MDIsIDB4OWUsIDB4MDIsIDB4YmMsIDB4MDIsCi0gICAgMHhkMCwgMHgwMiwgMHhkOCwgMHgwMiwgMHhkYywgMHgwMiwgMHhlMCwgMHgwMiwKLSAgICAweGU4LCAweDAyLCAweGU2LCAweDAyLCAweGY0LCAweDAyLCAweGZlLCAweDAyLAotICAgIDB4MDQsIDB4MDMsIDB4MGMsIDB4MDMsIDB4MjgsIDB4MDMsIDB4N2MsIDB4MDMsCi0gICAgMHg5MCwgMHgwMywgMHg5NCwgMHgwMywgMHg5YywgMHgwMywgMHhhMiwgMHgwMywKLSAgICAweGMwLCAweDAzLCAweGQwLCAweDAzLCAweGQ0LCAweDAzLCAweGVlLCAweDAzLAotICAgIDB4ZmEsIDB4MDMsIDB4ZmUsIDB4MDMsIDB4MmUsIDB4MDQsIDB4MzIsIDB4MDQsCi0gICAgMHgzYywgMHgwNCwgMHg0MCwgMHgwNCwgMHg0ZSwgMHgwNCwgMHg3NiwgMHgwNCwKLSAgICAweDdjLCAweDA0LCAweDg0LCAweDA0LCAweDhhLCAweDA0LCAweDhlLCAweDA0LAotICAgIDB4YTYsIDB4MDQsIDB4YjAsIDB4MDQsIDB4YjgsIDB4MDQsIDB4YmUsIDB4MDQsCi0gICAgMHhkMiwgMHgwNCwgMHhkYywgMHgwNCwgMHhlZSwgMHgwNCwgMHgxMCwgMHgwNSwKLSAgICAweDFhLCAweDA1LCAweDI0LCAweDA1LCAweDJhLCAweDA1LCAweDM2LCAweDA1LAotICAgIDB4MzQsIDB4MDUsIDB4M2MsIDB4MDUsIDB4NDIsIDB4MDUsIDB4NjQsIDB4MDUsCi0gICAgMHg2YSwgMHgwNSwgMHg2ZSwgMHgwNSwgMHg4NiwgMHgwNSwgMHgyMiwgMHgwNiwKLSAgICAweDI2LCAweDA2LCAweDJjLCAweDA2LCAweDMwLCAweDA2LCAweDQyLCAweDA2LAotICAgIDB4NGEsIDB4MDYsIDB4NGUsIDB4MDYsIDB4NTYsIDB4MDYsIDB4NTQsIDB4MDYsCi0gICAgMHg1YSwgMHgwNiwgMHg2MCwgMHgwNiwgMHg2NiwgMHgwNiwgMHhlOCwgMHgwNiwKLSAgICAweGVlLCAweDA2LCAweGY0LCAweDA2LCAweDE2LCAweDA3LCAweDI2LCAweDA3LAotICAgIDB4MmMsIDB4MDcsIDB4MzIsIDB4MDcsIDB4MzYsIDB4MDcsIDB4M2EsIDB4MDcsCi0gICAgMHgzZSwgMHgwNywgMHg1MiwgMHgwNywgMHg1NiwgMHgwNywgMHg1YSwgMHgwNywKLSAgICAweDY0LCAweDA3LCAweDc2LCAweDA3LCAweDdhLCAweDA3LCAweDgwLCAweDA3LAotICAgIDB4ODQsIDB4MDcsIDB4OGEsIDB4MDcsIDB4OWUsIDB4MDcsIDB4YTIsIDB4MDcsCi0gICAgMHhkYSwgMHgwNywgMHhkZSwgMHgwNywgMHhlMiwgMHgwNywgMHhlNiwgMHgwNywKLSAgICAweGVhLCAweDA3LCAweGVlLCAweDA3LCAweGYyLCAweDA3LCAweGY2LCAweDA3LAotICAgIDB4MGUsIDB4MDgsIDB4MTYsIDB4MDgsIDB4MTgsIDB4MDgsIDB4MWEsIDB4MDgsCi0gICAgMHgxYywgMHgwOCwgMHgxZSwgMHgwOCwgMHgyMCwgMHgwOCwgMHgyMiwgMHgwOCwKLSAgICAweDI0LCAweDA4LCAweDI2LCAweDA4LCAweDI4LCAweDA4LCAweDJhLCAweDA4LAotICAgIDB4MmMsIDB4MDgsIDB4MmUsIDB4MDgsIDB4MzIsIDB4MDgsIDB4M2EsIDB4MDgsCi0gICAgMHg0NiwgMHgwOCwgMHg0ZSwgMHgwOCwgMHg1NCwgMHgwOCwgMHg1ZSwgMHgwOCwKLSAgICAweDc4LCAweDA4LCAweDdlLCAweDA4LCAweDgyLCAweDA4LCAweDg2LCAweDA4LAotICAgIDB4OGMsIDB4MDgsIDB4OTAsIDB4MDgsIDB4OTgsIDB4MDgsIDB4OWUsIDB4MDgsCi0gICAgMHhhNCwgMHgwOCwgMHhhYSwgMHgwOCwgMHhiMCwgMHgwOCwgMHhhZSwgMHgwOCwKLSAgICAweGI0LCAweDA4LCAweGJlLCAweDA4LCAweGM0LCAweDA4LCAweGMyLCAweDA4LAotICAgIDB4Y2EsIDB4MDgsIDB4YzgsIDB4MDgsIDB4ZDQsIDB4MDgsIDB4ZTQsIDB4MDgsCi0gICAgMHhlOCwgMHgwOCwgMHhmNiwgMHgwOCwgMHgxNCwgMHgwOSwgMHgxMiwgMHgwOSwKLSAgICAweDFhLCAweDA5LCAweDIwLCAweDA5LCAweDI2LCAweDA5LCAweDI0LCAweDA5LAotICAgIDB4MmEsIDB4MDksIDB4M2UsIDB4MDksIDB4NGMsIDB4MDksIDB4NTYsIDB4MDksCi0gICAgMHg3MCwgMHgwOSwgMHg3NCwgMHgwOSwgMHg3OCwgMHgwOSwgMHg3ZSwgMHgwOSwKLSAgICAweDdjLCAweDA5LCAweDgyLCAweDA5LCAweDk4LCAweDA5LCAweDljLCAweDA5LAotICAgIDB4YTAsIDB4MDksIDB4YTYsIDB4MDksIDB4YjgsIDB4MDksIDB4ZGMsIDB4MDksCi0gICAgMHhlOCwgMHgwOSwgMHhlYywgMHgwOSwgMHhmYywgMHgwOSwgMHgxMiwgMHgwYSwKLSAgICAweDE4LCAweDBhLCAweDFlLCAweDBhLCAweDQyLCAweDBhLCAweDQ2LCAweDBhLAotICAgIDB4NGUsIDB4MGEsIDB4NTQsIDB4MGEsIDB4NWEsIDB4MGEsIDB4NWUsIDB4MGEsCi0gICAgMHg2OCwgMHgwYSwgMHg2ZSwgMHgwYSwgMHg3MiwgMHgwYSwgMHg3OCwgMHgwYSwKLSAgICAweDc2LCAweDBhLCAweDdjLCAweDBhLCAweDgwLCAweDBhLCAweDg0LCAweDBhLAotICAgIDB4OTQsIDB4MGEsIDB4YTQsIDB4MGEsIDB4YjgsIDB4MGEsIDB4YmUsIDB4MGEsCi0gICAgMHhiYywgMHgwYSwgMHhjMiwgMHgwYSwgMHhjOCwgMHgwYSwgMHhjNiwgMHgwYSwKLSAgICAweGNjLCAweDBhLCAweGQwLCAweDBhLCAweGQ0LCAweDBhLCAweGQ4LCAweDBhLAotICAgIDB4ZGMsIDB4MGEsIDB4ZTAsIDB4MGEsIDB4ZjIsIDB4MGEsIDB4ZjYsIDB4MGEsCi0gICAgMHhmYSwgMHgwYSwgMHgxNCwgMHgwYiwgMHgxYSwgMHgwYiwgMHgyMCwgMHgwYiwKLSAgICAweDFlLCAweDBiLCAweDI2LCAweDBiLCAweDJlLCAweDBiLCAweDJjLCAweDBiLAotICAgIDB4MzYsIDB4MGIsIDB4M2MsIDB4MGIsIDB4NDIsIDB4MGIsIDB4NDAsIDB4MGIsCi0gICAgMHg0YSwgMHgwYiwgMHhhYSwgMHgwYiwgMHhiMCwgMHgwYiwgMHhiNiwgMHgwYiwKLSAgICAweGMwLCAweDBiLCAweGM4LCAweDBiLCAweGRhLCAweDBiLCAweGU4LCAweDBiLAotICAgIDB4ZWMsIDB4MGIsIDB4ZmEsIDB4MGIsIDB4NGEsIDB4MGMsIDB4NTQsIDB4MGMsCi0gICAgMHg2MiwgMHgwYywgMHg2NiwgMHgwYywgMHg5NiwgMHgwYywgMHg5YSwgMHgwYywKLSAgICAweGEwLCAweDBjLCAweGE2LCAweDBjLCAweGE0LCAweDBjLCAweGFjLCAweDBjLAotICAgIDB4YjIsIDB4MGMsIDB4YjAsIDB4MGMsIDB4YzAsIDB4MGMsCi0gICAgMHgwMCwgMHgwMAotfTsKLQotCi1zdGF0aWMgY29uc3QgaW50IGxlbl9rYXdldGhfdHJpZ2dlcl9jb2RlID0gc2l6ZW9mKGthd2V0aF90cmlnZ2VyX2NvZGUpOwotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX3RyaWdnZXJfY29kZV9maXggPSBzaXplb2Yoa2F3ZXRoX3RyaWdnZXJfY29kZV9maXgpOwotc3RhdGljIGNvbnN0IGludCBsZW5fa2F3ZXRoX25ld19jb2RlID0gc2l6ZW9mKGthd2V0aF9uZXdfY29kZSk7Ci1zdGF0aWMgY29uc3QgaW50IGxlbl9rYXdldGhfbmV3X2NvZGVfZml4ID0gc2l6ZW9mKGthd2V0aF9uZXdfY29kZV9maXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3JuZGlzX2hvc3QuYyBiL2RyaXZlcnMvbmV0L3VzYi9ybmRpc19ob3N0LmMKaW5kZXggMzk2OWI3YS4uYWU0NjdmMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3VzYi9ybmRpc19ob3N0LmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3JuZGlzX2hvc3QuYwpAQCAtMTk0LDcgKzE5NCw3IEBACiAJCQlkZXZfZGJnKCZpbmZvLT5jb250cm9sLT5kZXYsCiAJCQkJInJuZGlzIHJlc3BvbnNlIGVycm9yLCBjb2RlICVkXG4iLCByZXR2YWwpOwogCQl9Ci0JCW1zbGVlcCgyKTsKKwkJbXNsZWVwKDIwKTsKIAl9CiAJZGV2X2RiZygmaW5mby0+Y29udHJvbC0+ZGV2LCAicm5kaXMgcmVzcG9uc2UgdGltZW91dFxuIik7CiAJcmV0dXJuIC1FVElNRURPVVQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMgYi9kcml2ZXJzL25ldC92aXJ0aW9fbmV0LmMKaW5kZXggZjkyNmI1YS4uNDQ1MjMwNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvdmlydGlvX25ldC5jCisrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpb19uZXQuYwpAQCAtNDQsOSArNDQsMTYgQEAKIAkvKiBUaGUgc2tiIHdlIGNvdWxkbid0IHNlbmQgYmVjYXVzZSBidWZmZXJzIHdlcmUgZnVsbC4gKi8KIAlzdHJ1Y3Qgc2tfYnVmZiAqbGFzdF94bWl0X3NrYjsKIAorCS8qIElmIHdlIG5lZWQgdG8gZnJlZSBpbiBhIHRpbWVyLCB0aGlzIGlzIGl0LiAqLworCXN0cnVjdCB0aW1lcl9saXN0IHhtaXRfZnJlZV90aW1lcjsKKwogCS8qIE51bWJlciBvZiBpbnB1dCBidWZmZXJzLCBhbmQgbWF4IHdlJ3ZlIGV2ZXIgaGFkLiAqLwogCXVuc2lnbmVkIGludCBudW0sIG1heDsKIAorCS8qIEZvciBjbGVhbmluZyB1cCBhZnRlciB0cmFuc21pc3Npb24uICovCisJc3RydWN0IHRhc2tsZXRfc3RydWN0IHRhc2tsZXQ7CisJYm9vbCBmcmVlX2luX3Rhc2tsZXQ7CisKIAkvKiBSZWNlaXZlICYgc2VuZCBxdWV1ZXMuICovCiAJc3RydWN0IHNrX2J1ZmZfaGVhZCByZWN2OwogCXN0cnVjdCBza19idWZmX2hlYWQgc2VuZDsKQEAgLTY4LDggKzc1LDEzIEBACiAKIAkvKiBTdXBwcmVzcyBmdXJ0aGVyIGludGVycnVwdHMuICovCiAJc3ZxLT52cV9vcHMtPmRpc2FibGVfY2Ioc3ZxKTsKLQkvKiBXZSB3ZXJlIHdhaXRpbmcgZm9yIG1vcmUgb3V0cHV0IGJ1ZmZlcnMuICovCisKKwkvKiBXZSB3ZXJlIHByb2JhYmx5IHdhaXRpbmcgZm9yIG1vcmUgb3V0cHV0IGJ1ZmZlcnMuICovCiAJbmV0aWZfd2FrZV9xdWV1ZSh2aS0+ZGV2KTsKKworCS8qIE1ha2Ugc3VyZSB3ZSByZS14bWl0IGxhc3RfeG1pdF9za2I6IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhY2tldHMKKwkgKiBxdWV1ZWQsIHN0YXJ0X3htaXQgd29uJ3QgYmUgY2FsbGVkLiAqLworCXRhc2tsZXRfc2NoZWR1bGUoJnZpLT50YXNrbGV0KTsKIH0KIAogc3RhdGljIHZvaWQgcmVjZWl2ZV9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKQEAgLTg2LDkgKzk4LDcgQEAKIAlCVUdfT04obGVuID4gTUFYX1BBQ0tFVF9MRU4pOwogCiAJc2tiX3RyaW0oc2tiLCBsZW4pOwotCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIGRldik7Ci0JcHJfZGVidWcoIlJlY2VpdmluZyBza2IgcHJvdG8gMHglMDR4IGxlbiAlaSB0eXBlICVpXG4iLAotCQkgbnRvaHMoc2tiLT5wcm90b2NvbCksIHNrYi0+bGVuLCBza2ItPnBrdF90eXBlKTsKKwogCWRldi0+c3RhdHMucnhfYnl0ZXMgKz0gc2tiLT5sZW47CiAJZGV2LT5zdGF0cy5yeF9wYWNrZXRzKys7CiAKQEAgLTk4LDYgKzEwOCwxMCBAQAogCQkJZ290byBmcmFtZV9lcnI7CiAJfQogCisJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgZGV2KTsKKwlwcl9kZWJ1ZygiUmVjZWl2aW5nIHNrYiBwcm90byAweCUwNHggbGVuICVpIHR5cGUgJWlcbiIsCisJCSBudG9ocyhza2ItPnByb3RvY29sKSwgc2tiLT5sZW4sIHNrYi0+cGt0X3R5cGUpOworCiAJaWYgKGhkci0+Z3NvX3R5cGUgIT0gVklSVElPX05FVF9IRFJfR1NPX05PTkUpIHsKIAkJcHJfZGVidWcoIkdTTyFcbiIpOwogCQlzd2l0Y2ggKGhkci0+Z3NvX3R5cGUgJiB+VklSVElPX05FVF9IRFJfR1NPX0VDTikgewpAQCAtMjMwLDkgKzI0NCwyNSBAQAogCX0KIH0KIAorLyogSWYgdGhlIHZpcnRpbyB0cmFuc3BvcnQgZG9lc24ndCBhbHdheXMgbm90aWZ5IHVzIHdoZW4gYWxsIGluLWZsaWdodCBwYWNrZXRzCisgKiBhcmUgY29uc3VtZWQsIHdlIGZhbGwgYmFjayB0byB1c2luZyB0aGlzIGZ1bmN0aW9uIG9uIGEgdGltZXIgdG8gZnJlZSB0aGVtLiAqLworc3RhdGljIHZvaWQgeG1pdF9mcmVlKHVuc2lnbmVkIGxvbmcgZGF0YSkKK3sKKwlzdHJ1Y3QgdmlydG5ldF9pbmZvICp2aSA9ICh2b2lkICopZGF0YTsKKworCW5ldGlmX3R4X2xvY2sodmktPmRldik7CisKKwlmcmVlX29sZF94bWl0X3NrYnModmkpOworCisJaWYgKCFza2JfcXVldWVfZW1wdHkoJnZpLT5zZW5kKSkKKwkJbW9kX3RpbWVyKCZ2aS0+eG1pdF9mcmVlX3RpbWVyLCBqaWZmaWVzICsgKEhaLzEwKSk7CisKKwluZXRpZl90eF91bmxvY2sodmktPmRldik7Cit9CisKIHN0YXRpYyBpbnQgeG1pdF9za2Ioc3RydWN0IHZpcnRuZXRfaW5mbyAqdmksIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0JaW50IG51bTsKKwlpbnQgbnVtLCBlcnI7CiAJc3RydWN0IHNjYXR0ZXJsaXN0IHNnWzIrTUFYX1NLQl9GUkFHU107CiAJc3RydWN0IHZpcnRpb19uZXRfaGRyICpoZHI7CiAJY29uc3QgdW5zaWduZWQgY2hhciAqZGVzdCA9ICgoc3RydWN0IGV0aGhkciAqKXNrYi0+ZGF0YSktPmhfZGVzdDsKQEAgLTI3NSw3ICszMDUsMjUgQEAKIAl2bmV0X2hkcl90b19zZyhzZywgc2tiKTsKIAludW0gPSBza2JfdG9fc2d2ZWMoc2tiLCBzZysxLCAwLCBza2ItPmxlbikgKyAxOwogCi0JcmV0dXJuIHZpLT5zdnEtPnZxX29wcy0+YWRkX2J1Zih2aS0+c3ZxLCBzZywgbnVtLCAwLCBza2IpOworCWVyciA9IHZpLT5zdnEtPnZxX29wcy0+YWRkX2J1Zih2aS0+c3ZxLCBzZywgbnVtLCAwLCBza2IpOworCWlmICghZXJyICYmICF2aS0+ZnJlZV9pbl90YXNrbGV0KQorCQltb2RfdGltZXIoJnZpLT54bWl0X2ZyZWVfdGltZXIsIGppZmZpZXMgKyAoSFovMTApKTsKKworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyB2b2lkIHhtaXRfdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJc3RydWN0IHZpcnRuZXRfaW5mbyAqdmkgPSAodm9pZCAqKWRhdGE7CisKKwluZXRpZl90eF9sb2NrX2JoKHZpLT5kZXYpOworCWlmICh2aS0+bGFzdF94bWl0X3NrYiAmJiB4bWl0X3NrYih2aSwgdmktPmxhc3RfeG1pdF9za2IpID09IDApIHsKKwkJdmktPnN2cS0+dnFfb3BzLT5raWNrKHZpLT5zdnEpOworCQl2aS0+bGFzdF94bWl0X3NrYiA9IE5VTEw7CisJfQorCWlmICh2aS0+ZnJlZV9pbl90YXNrbGV0KQorCQlmcmVlX29sZF94bWl0X3NrYnModmkpOworCW5ldGlmX3R4X3VubG9ja19iaCh2aS0+ZGV2KTsKIH0KIAogc3RhdGljIGludCBzdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC0yODcsMjEgKzMzNSwyNSBAQAogCWZyZWVfb2xkX3htaXRfc2ticyh2aSk7CiAKIAkvKiBJZiB3ZSBoYXMgYSBidWZmZXIgbGVmdCBvdmVyIGZyb20gbGFzdCB0aW1lLCBzZW5kIGl0IG5vdy4gKi8KLQlpZiAodmktPmxhc3RfeG1pdF9za2IpIHsKKwlpZiAodW5saWtlbHkodmktPmxhc3RfeG1pdF9za2IpKSB7CiAJCWlmICh4bWl0X3NrYih2aSwgdmktPmxhc3RfeG1pdF9za2IpICE9IDApIHsKIAkJCS8qIERyb3AgdGhpcyBza2I6IHdlIG9ubHkgcXVldWUgb25lLiAqLwogCQkJdmktPmRldi0+c3RhdHMudHhfZHJvcHBlZCsrOwogCQkJa2ZyZWVfc2tiKHNrYik7CisJCQlza2IgPSBOVUxMOwogCQkJZ290byBzdG9wX3F1ZXVlOwogCQl9CiAJCXZpLT5sYXN0X3htaXRfc2tiID0gTlVMTDsKIAl9CiAKIAkvKiBQdXQgbmV3IG9uZSBpbiBzZW5kIHF1ZXVlIGFuZCBkbyB0cmFuc21pdCAqLwotCV9fc2tiX3F1ZXVlX2hlYWQoJnZpLT5zZW5kLCBza2IpOwotCWlmICh4bWl0X3NrYih2aSwgc2tiKSAhPSAwKSB7Ci0JCXZpLT5sYXN0X3htaXRfc2tiID0gc2tiOwotCQlnb3RvIHN0b3BfcXVldWU7CisJaWYgKGxpa2VseShza2IpKSB7CisJCV9fc2tiX3F1ZXVlX2hlYWQoJnZpLT5zZW5kLCBza2IpOworCQlpZiAoeG1pdF9za2IodmksIHNrYikgIT0gMCkgeworCQkJdmktPmxhc3RfeG1pdF9za2IgPSBza2I7CisJCQlza2IgPSBOVUxMOworCQkJZ290byBzdG9wX3F1ZXVlOworCQl9CiAJfQogZG9uZToKIAl2aS0+c3ZxLT52cV9vcHMtPmtpY2sodmktPnN2cSk7CkBAIC00MTEsNiArNDYzLDEwIEBACiAJdmktPnZkZXYgPSB2ZGV2OwogCXZkZXYtPnByaXYgPSB2aTsKIAorCS8qIElmIHRoZXkgZ2l2ZSB1cyBhIGNhbGxiYWNrIHdoZW4gYWxsIGJ1ZmZlcnMgYXJlIGRvbmUsIHdlIGRvbid0IG5lZWQKKwkgKiB0aGUgdGltZXIuICovCisJdmktPmZyZWVfaW5fdGFza2xldCA9IHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LFZJUlRJT19GX05PVElGWV9PTl9FTVBUWSk7CisKIAkvKiBXZSBleHBlY3QgdHdvIHZpcnRxdWV1ZXMsIHJlY2VpdmUgdGhlbiBzZW5kLiAqLwogCXZpLT5ydnEgPSB2ZGV2LT5jb25maWctPmZpbmRfdnEodmRldiwgMCwgc2tiX3JlY3ZfZG9uZSk7CiAJaWYgKElTX0VSUih2aS0+cnZxKSkgewpAQCAtNDI4LDYgKzQ4NCwxMSBAQAogCXNrYl9xdWV1ZV9oZWFkX2luaXQoJnZpLT5yZWN2KTsKIAlza2JfcXVldWVfaGVhZF9pbml0KCZ2aS0+c2VuZCk7CiAKKwl0YXNrbGV0X2luaXQoJnZpLT50YXNrbGV0LCB4bWl0X3Rhc2tsZXQsICh1bnNpZ25lZCBsb25nKXZpKTsKKworCWlmICghdmktPmZyZWVfaW5fdGFza2xldCkKKwkJc2V0dXBfdGltZXIoJnZpLT54bWl0X2ZyZWVfdGltZXIsIHhtaXRfZnJlZSwgKHVuc2lnbmVkIGxvbmcpdmkpOworCiAJZXJyID0gcmVnaXN0ZXJfbmV0ZGV2KGRldik7CiAJaWYgKGVycikgewogCQlwcl9kZWJ1ZygidmlydGlvX25ldDogcmVnaXN0ZXJpbmcgZGV2aWNlIGZhaWxlZFxuIik7CkBAIC00NjUsMTMgKzUyNiwxNSBAQAogCS8qIFN0b3AgYWxsIHRoZSB2aXJ0cXVldWVzLiAqLwogCXZkZXYtPmNvbmZpZy0+cmVzZXQodmRldik7CiAKKwlpZiAoIXZpLT5mcmVlX2luX3Rhc2tsZXQpCisJCWRlbF90aW1lcl9zeW5jKCZ2aS0+eG1pdF9mcmVlX3RpbWVyKTsKKwogCS8qIEZyZWUgb3VyIHNrYnMgaW4gc2VuZCBhbmQgcmVjdiBxdWV1ZXMsIGlmIGFueS4gKi8KIAl3aGlsZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJnZpLT5yZWN2KSkgIT0gTlVMTCkgewogCQlrZnJlZV9za2Ioc2tiKTsKIAkJdmktPm51bS0tOwogCX0KLQl3aGlsZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJnZpLT5zZW5kKSkgIT0gTlVMTCkKLQkJa2ZyZWVfc2tiKHNrYik7CisJX19za2JfcXVldWVfcHVyZ2UoJnZpLT5zZW5kKTsKIAogCUJVR19PTih2aS0+bnVtICE9IDApOwogCkBAIC00ODksNyArNTUyLDcgQEAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZmVhdHVyZXNbXSA9IHsKIAlWSVJUSU9fTkVUX0ZfQ1NVTSwgVklSVElPX05FVF9GX0dTTywgVklSVElPX05FVF9GX01BQywKIAlWSVJUSU9fTkVUX0ZfSE9TVF9UU080LCBWSVJUSU9fTkVUX0ZfSE9TVF9VRk8sIFZJUlRJT19ORVRfRl9IT1NUX1RTTzYsCi0JVklSVElPX05FVF9GX0hPU1RfRUNOLAorCVZJUlRJT19ORVRfRl9IT1NUX0VDTiwgVklSVElPX0ZfTk9USUZZX09OX0VNUFRZLAogfTsKIAogc3RhdGljIHN0cnVjdCB2aXJ0aW9fZHJpdmVyIHZpcnRpb19uZXQgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4vY29zYS5jIGIvZHJpdmVycy9uZXQvd2FuL2Nvc2EuYwppbmRleCBiMGZjZTEzLi41ODI3MzI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4vY29zYS5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9jb3NhLmMKQEAgLTkyLDYgKzkyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI3VuZGVmIENPU0FfU0xPV19JTwkvKiBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5ICovCiAKQEAgLTk3MCwxNSArOTcxLDIxIEBACiAJc3RydWN0IGNoYW5uZWxfZGF0YSAqY2hhbjsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBuOworCWludCByZXQgPSAwOwogCisJbG9ja19rZXJuZWwoKTsKIAlpZiAoKG49aW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpPj5DQVJEX01JTk9SX0JJVFMpCi0JCT49IG5yX2NhcmRzKQotCQlyZXR1cm4gLUVOT0RFVjsKKwkJPj0gbnJfY2FyZHMpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCWNvc2EgPSBjb3NhX2NhcmRzK247CiAKIAlpZiAoKG49aW1pbm9yKGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpCi0JCSYgKCgxPDxDQVJEX01JTk9SX0JJVFMpLTEpKSA+PSBjb3NhLT5uY2hhbm5lbHMpCi0JCXJldHVybiAtRU5PREVWOworCQkmICgoMTw8Q0FSRF9NSU5PUl9CSVRTKS0xKSkgPj0gY29zYS0+bmNoYW5uZWxzKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAljaGFuID0gY29zYS0+Y2hhbiArIG47CiAJCiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gY2hhbjsKQEAgLTk4Nyw3ICs5OTQsOCBAQAogCiAJaWYgKGNoYW4tPnVzYWdlIDwgMCkgeyAvKiBpbiBuZXRkZXYgbW9kZSAqLwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjb3NhLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAtRUJVU1k7CisJCXJldCA9IC1FQlVTWTsKKwkJZ290byBvdXQ7CiAJfQogCWNvc2EtPnVzYWdlKys7CiAJY2hhbi0+dXNhZ2UrKzsKQEAgLTk5Niw3ICsxMDA0LDkgQEAKIAljaGFuLT5zZXR1cF9yeCA9IGNocmRldl9zZXR1cF9yeDsKIAljaGFuLT5yeF9kb25lID0gY2hyZGV2X3J4X2RvbmU7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY29zYS0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50IGNvc2FfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjLmMgYi9kcml2ZXJzL25ldC93YW4vaGRsYy5jCmluZGV4IDlhODNjOWQuLjdmOTg0ODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjLmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2hkbGMuYwpAQCAtNDMsOCArNDMsNyBAQAogCiAjdW5kZWYgREVCVUdfTElOSwogCi1zdGF0aWMgc3RydWN0IGhkbGNfcHJvdG8gKmZpcnN0X3Byb3RvID0gTlVMTDsKLQorc3RhdGljIHN0cnVjdCBoZGxjX3Byb3RvICpmaXJzdF9wcm90bzsKIAogc3RhdGljIGludCBoZGxjX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpCiB7CkBAIC0zMTQsMjEgKzMxMywyNSBAQAogCiB2b2lkIHJlZ2lzdGVyX2hkbGNfcHJvdG9jb2woc3RydWN0IGhkbGNfcHJvdG8gKnByb3RvKQogeworCXJ0bmxfbG9jaygpOwogCXByb3RvLT5uZXh0ID0gZmlyc3RfcHJvdG87CiAJZmlyc3RfcHJvdG8gPSBwcm90bzsKKwlydG5sX3VubG9jaygpOwogfQogCiAKIHZvaWQgdW5yZWdpc3Rlcl9oZGxjX3Byb3RvY29sKHN0cnVjdCBoZGxjX3Byb3RvICpwcm90bykKIHsKLQlzdHJ1Y3QgaGRsY19wcm90byAqKnAgPSAmZmlyc3RfcHJvdG87Ci0Jd2hpbGUgKCpwKSB7Ci0JCWlmICgqcCA9PSBwcm90bykgewotCQkJKnAgPSBwcm90by0+bmV4dDsKLQkJCXJldHVybjsKLQkJfQorCXN0cnVjdCBoZGxjX3Byb3RvICoqcDsKKworCXJ0bmxfbG9jaygpOworCXAgPSAmZmlyc3RfcHJvdG87CisJd2hpbGUgKCpwICE9IHByb3RvKSB7CisJCUJVR19PTighKnApOwogCQlwID0gJigoKnApLT5uZXh0KTsKIAl9CisJKnAgPSBwcm90by0+bmV4dDsKKwlydG5sX3VubG9jaygpOwogfQogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2Npc2NvLmMgYi9kcml2ZXJzL25ldC93YW4vaGRsY19jaXNjby5jCmluZGV4IDcxMzNjNjguLjc2MmQyMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2Npc2NvLmMKKysrIGIvZHJpdmVycy9uZXQvd2FuL2hkbGNfY2lzY28uYwpAQCAtNTYsNiArNTYsNyBAQAogCWNpc2NvX3Byb3RvIHNldHRpbmdzOwogCiAJc3RydWN0IHRpbWVyX2xpc3QgdGltZXI7CisJc3BpbmxvY2tfdCBsb2NrOwogCXVuc2lnbmVkIGxvbmcgbGFzdF9wb2xsOwogCWludCB1cDsKIAlpbnQgcmVxdWVzdF9zZW50OwpAQCAtMTU4LDYgKzE1OSw3IEBACiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHNrYi0+ZGV2OwogCWhkbGNfZGV2aWNlICpoZGxjID0gZGV2X3RvX2hkbGMoZGV2KTsKKwlzdHJ1Y3QgY2lzY29fc3RhdGUgKnN0ID0gc3RhdGUoaGRsYyk7CiAJc3RydWN0IGhkbGNfaGVhZGVyICpkYXRhID0gKHN0cnVjdCBoZGxjX2hlYWRlciopc2tiLT5kYXRhOwogCXN0cnVjdCBjaXNjb19wYWNrZXQgKmNpc2NvX2RhdGE7CiAJc3RydWN0IGluX2RldmljZSAqaW5fZGV2OwpAQCAtMjIwLDExICsyMjIsMTIgQEAKIAkJCWdvdG8gcnhfZXJyb3I7CiAKIAkJY2FzZSBDSVNDT19LRUVQQUxJVkVfUkVROgotCQkJc3RhdGUoaGRsYyktPnJ4c2VxID0gbnRvaGwoY2lzY29fZGF0YS0+cGFyMSk7Ci0JCQlpZiAoc3RhdGUoaGRsYyktPnJlcXVlc3Rfc2VudCAmJgotCQkJICAgIG50b2hsKGNpc2NvX2RhdGEtPnBhcjIpID09IHN0YXRlKGhkbGMpLT50eHNlcSkgewotCQkJCXN0YXRlKGhkbGMpLT5sYXN0X3BvbGwgPSBqaWZmaWVzOwotCQkJCWlmICghc3RhdGUoaGRsYyktPnVwKSB7CisJCQlzcGluX2xvY2soJnN0LT5sb2NrKTsKKwkJCXN0LT5yeHNlcSA9IG50b2hsKGNpc2NvX2RhdGEtPnBhcjEpOworCQkJaWYgKHN0LT5yZXF1ZXN0X3NlbnQgJiYKKwkJCSAgICBudG9obChjaXNjb19kYXRhLT5wYXIyKSA9PSBzdC0+dHhzZXEpIHsKKwkJCQlzdC0+bGFzdF9wb2xsID0gamlmZmllczsKKwkJCQlpZiAoIXN0LT51cCkgewogCQkJCQl1MzIgc2VjLCBtaW4sIGhycywgZGF5czsKIAkJCQkJc2VjID0gbnRvaGwoY2lzY29fZGF0YS0+dGltZSkgLyAxMDAwOwogCQkJCQltaW4gPSBzZWMgLyA2MDsgc2VjIC09IG1pbiAqIDYwOwpAQCAtMjMyLDEyICsyMzUsMTIgQEAKIAkJCQkJZGF5cyA9IGhycyAvIDI0OyBocnMgLT0gZGF5cyAqIDI0OwogCQkJCQlwcmludGsoS0VSTl9JTkZPICIlczogTGluayB1cCAocGVlciAiCiAJCQkJCSAgICAgICAidXB0aW1lICV1ZCV1aCV1bSV1cylcbiIsCi0JCQkJCSAgICAgICBkZXYtPm5hbWUsIGRheXMsIGhycywKLQkJCQkJICAgICAgIG1pbiwgc2VjKTsKKwkJCQkJICAgICAgIGRldi0+bmFtZSwgZGF5cywgaHJzLCBtaW4sIHNlYyk7CiAJCQkJCW5ldGlmX2Rvcm1hbnRfb2ZmKGRldik7Ci0JCQkJCXN0YXRlKGhkbGMpLT51cCA9IDE7CisJCQkJCXN0LT51cCA9IDE7CiAJCQkJfQogCQkJfQorCQkJc3Bpbl91bmxvY2soJnN0LT5sb2NrKTsKIAogCQkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJCXJldHVybiBORVRfUlhfU1VDQ0VTUzsKQEAgLTI2MSwyNCArMjY0LDI1IEBACiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IChzdHJ1Y3QgbmV0X2RldmljZSAqKWFyZzsKIAloZGxjX2RldmljZSAqaGRsYyA9IGRldl90b19oZGxjKGRldik7CisJc3RydWN0IGNpc2NvX3N0YXRlICpzdCA9IHN0YXRlKGhkbGMpOwogCi0JaWYgKHN0YXRlKGhkbGMpLT51cCAmJgotCSAgICB0aW1lX2FmdGVyKGppZmZpZXMsIHN0YXRlKGhkbGMpLT5sYXN0X3BvbGwgKwotCQkgICAgICAgc3RhdGUoaGRsYyktPnNldHRpbmdzLnRpbWVvdXQgKiBIWikpIHsKLQkJc3RhdGUoaGRsYyktPnVwID0gMDsKKwlzcGluX2xvY2soJnN0LT5sb2NrKTsKKwlpZiAoc3QtPnVwICYmCisJICAgIHRpbWVfYWZ0ZXIoamlmZmllcywgc3QtPmxhc3RfcG9sbCArIHN0LT5zZXR0aW5ncy50aW1lb3V0ICogSFopKSB7CisJCXN0LT51cCA9IDA7CiAJCXByaW50ayhLRVJOX0lORk8gIiVzOiBMaW5rIGRvd25cbiIsIGRldi0+bmFtZSk7CiAJCW5ldGlmX2Rvcm1hbnRfb24oZGV2KTsKIAl9CiAKLQljaXNjb19rZWVwYWxpdmVfc2VuZChkZXYsIENJU0NPX0tFRVBBTElWRV9SRVEsCi0JCQkgICAgIGh0b25sKCsrc3RhdGUoaGRsYyktPnR4c2VxKSwKLQkJCSAgICAgaHRvbmwoc3RhdGUoaGRsYyktPnJ4c2VxKSk7Ci0Jc3RhdGUoaGRsYyktPnJlcXVlc3Rfc2VudCA9IDE7Ci0Jc3RhdGUoaGRsYyktPnRpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsKLQkJc3RhdGUoaGRsYyktPnNldHRpbmdzLmludGVydmFsICogSFo7Ci0Jc3RhdGUoaGRsYyktPnRpbWVyLmZ1bmN0aW9uID0gY2lzY29fdGltZXI7Ci0Jc3RhdGUoaGRsYyktPnRpbWVyLmRhdGEgPSBhcmc7Ci0JYWRkX3RpbWVyKCZzdGF0ZShoZGxjKS0+dGltZXIpOworCWNpc2NvX2tlZXBhbGl2ZV9zZW5kKGRldiwgQ0lTQ09fS0VFUEFMSVZFX1JFUSwgaHRvbmwoKytzdC0+dHhzZXEpLAorCQkJICAgICBodG9ubChzdC0+cnhzZXEpKTsKKwlzdC0+cmVxdWVzdF9zZW50ID0gMTsKKwlzcGluX3VubG9jaygmc3QtPmxvY2spOworCisJc3QtPnRpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgc3QtPnNldHRpbmdzLmludGVydmFsICogSFo7CisJc3QtPnRpbWVyLmZ1bmN0aW9uID0gY2lzY29fdGltZXI7CisJc3QtPnRpbWVyLmRhdGEgPSBhcmc7CisJYWRkX3RpbWVyKCZzdC0+dGltZXIpOwogfQogCiAKQEAgLTI4NiwxNSArMjkwLDIwIEBACiBzdGF0aWMgdm9pZCBjaXNjb19zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogewogCWhkbGNfZGV2aWNlICpoZGxjID0gZGV2X3RvX2hkbGMoZGV2KTsKLQlzdGF0ZShoZGxjKS0+dXAgPSAwOwotCXN0YXRlKGhkbGMpLT5yZXF1ZXN0X3NlbnQgPSAwOwotCXN0YXRlKGhkbGMpLT50eHNlcSA9IHN0YXRlKGhkbGMpLT5yeHNlcSA9IDA7CisJc3RydWN0IGNpc2NvX3N0YXRlICpzdCA9IHN0YXRlKGhkbGMpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQlpbml0X3RpbWVyKCZzdGF0ZShoZGxjKS0+dGltZXIpOwotCXN0YXRlKGhkbGMpLT50aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaOyAvKkZpcnN0IHBvbGwgYWZ0ZXIgMXMqLwotCXN0YXRlKGhkbGMpLT50aW1lci5mdW5jdGlvbiA9IGNpc2NvX3RpbWVyOwotCXN0YXRlKGhkbGMpLT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpZGV2OwotCWFkZF90aW1lcigmc3RhdGUoaGRsYyktPnRpbWVyKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3QtPmxvY2ssIGZsYWdzKTsKKwlzdC0+dXAgPSAwOworCXN0LT5yZXF1ZXN0X3NlbnQgPSAwOworCXN0LT50eHNlcSA9IHN0LT5yeHNlcSA9IDA7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3QtPmxvY2ssIGZsYWdzKTsKKworCWluaXRfdGltZXIoJnN0LT50aW1lcik7CisJc3QtPnRpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICsgSFo7IC8qIEZpcnN0IHBvbGwgYWZ0ZXIgMSBzICovCisJc3QtPnRpbWVyLmZ1bmN0aW9uID0gY2lzY29fdGltZXI7CisJc3QtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZylkZXY7CisJYWRkX3RpbWVyKCZzdC0+dGltZXIpOwogfQogCiAKQEAgLTMwMiwxMCArMzExLDE2IEBACiBzdGF0aWMgdm9pZCBjaXNjb19zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiB7CiAJaGRsY19kZXZpY2UgKmhkbGMgPSBkZXZfdG9faGRsYyhkZXYpOwotCWRlbF90aW1lcl9zeW5jKCZzdGF0ZShoZGxjKS0+dGltZXIpOworCXN0cnVjdCBjaXNjb19zdGF0ZSAqc3QgPSBzdGF0ZShoZGxjKTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZGVsX3RpbWVyX3N5bmMoJnN0LT50aW1lcik7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3QtPmxvY2ssIGZsYWdzKTsKIAluZXRpZl9kb3JtYW50X29uKGRldik7Ci0Jc3RhdGUoaGRsYyktPnVwID0gMDsKLQlzdGF0ZShoZGxjKS0+cmVxdWVzdF9zZW50ID0gMDsKKwlzdC0+dXAgPSAwOworCXN0LT5yZXF1ZXN0X3NlbnQgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0LT5sb2NrLCBmbGFncyk7CiB9CiAKIApAQCAtMzY3LDYgKzM4Miw3IEBACiAJCQlyZXR1cm4gcmVzdWx0OwogCiAJCW1lbWNweSgmc3RhdGUoaGRsYyktPnNldHRpbmdzLCAmbmV3X3NldHRpbmdzLCBzaXplKTsKKwkJc3Bpbl9sb2NrX2luaXQoJnN0YXRlKGhkbGMpLT5sb2NrKTsKIAkJZGV2LT5oYXJkX3N0YXJ0X3htaXQgPSBoZGxjLT54bWl0OwogCQlkZXYtPmhlYWRlcl9vcHMgPSAmY2lzY29faGVhZGVyX29wczsKIAkJZGV2LT50eXBlID0gQVJQSFJEX0NJU0NPOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYyBiL2RyaXZlcnMvbmV0L3dhbi9oZGxjX2ZyLmMKaW5kZXggNTIwYmIwYi4uNmQzNTE1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2FuL2hkbGNfZnIuYworKysgYi9kcml2ZXJzL25ldC93YW4vaGRsY19mci5jCkBAIC0xMDA4LDYgKzEwMDgsNyBAQAogCQlzdGF0cy0+cnhfYnl0ZXMgKz0gc2tiLT5sZW47CiAJCWlmIChwdmMtPnN0YXRlLmJlY24pCiAJCQlzdGF0cy0+cnhfY29tcHJlc3NlZCsrOworCQlza2ItPmRldiA9IGRldjsKIAkJbmV0aWZfcngoc2tiKTsKIAkJcmV0dXJuIE5FVF9SWF9TVUNDRVNTOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jIGIvZHJpdmVycy9uZXQvd2FuL3gyNV9hc3kuYwppbmRleCAyNDllMTgwLi4wNjlmOGJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93YW4veDI1X2FzeS5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi94MjVfYXN5LmMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC94MjUuaD4KICNpbmNsdWRlIDxsaW51eC9sYXBiLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3J0bmV0bGluay5oPgogI2luY2x1ZGUgIngyNV9hc3kuaCIKIAogI2luY2x1ZGUgPG5ldC94MjVkZXZpY2UuaD4KQEAgLTYwMSw4ICs2MDIsMTAgQEAKIAlpZiAoIXNsIHx8IHNsLT5tYWdpYyAhPSBYMjVfQVNZX01BR0lDKQogCQlyZXR1cm47CiAKKwlydG5sX2xvY2soKTsKIAlpZiAoc2wtPmRldi0+ZmxhZ3MgJiBJRkZfVVApCiAJCWRldl9jbG9zZShzbC0+ZGV2KTsKKwlydG5sX3VubG9jaygpOwogCiAJdHR5LT5kaXNjX2RhdGEgPSBOVUxMOwogCXNsLT50dHkgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYWlyby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYWlyby5jCmluZGV4IDRlMWM2OTAuLjMyMDE5ZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Fpcm8uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9haXJvLmMKQEAgLTI5MDUsNyArMjkwNSw3IEBACiAKIHN0YXRpYyBpbnQgd2FpdGJ1c3kgKHN0cnVjdCBhaXJvX2luZm8gKmFpKSB7CiAJaW50IGRlbGF5ID0gMDsKLQl3aGlsZSAoKElONDUwMCAoYWksIENPTU1BTkQpICYgQ09NTUFORF9CVVNZKSAmJiAoZGVsYXkgPCAxMDAwMCkpIHsKKwl3aGlsZSAoKElONDUwMChhaSwgQ09NTUFORCkgJiBDT01NQU5EX0JVU1kpICYmIChkZWxheSA8IDEwMDAwKSkgewogCQl1ZGVsYXkgKDEwKTsKIAkJaWYgKCgrK2RlbGF5ICUgMjApID09IDApCiAJCQlPVVQ0NTAwKGFpLCBFVkFDSywgRVZfQ0xFQVJDT01NQU5EQlVTWSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRtZWwuYwppbmRleCA0MzhlNjNlLi5kMWFjZWY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdG1lbC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0bWVsLmMKQEAgLTU2MCw3ICs1NjAsNyBAQAogc3RhdGljIHZvaWQgYnVpbGRfd3BhX21pYihzdHJ1Y3QgYXRtZWxfcHJpdmF0ZSAqcHJpdik7CiBzdGF0aWMgaW50IGF0bWVsX2lvY3RsKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBpZnJlcSAqcnEsIGludCBjbWQpOwogc3RhdGljIHZvaWQgYXRtZWxfY29weV90b19jYXJkKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUxNiBkZXN0LAotCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKnNyYywgdTE2IGxlbik7CisJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3JjLCB1MTYgbGVuKTsKIHN0YXRpYyB2b2lkIGF0bWVsX2NvcHlfdG9faG9zdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyICpkZXN0LAogCQkJICAgICAgIHUxNiBzcmMsIHUxNiBsZW4pOwogc3RhdGljIHZvaWQgYXRtZWxfc2V0X2djcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MTYgbWFzayk7CkBAIC0zODUzLDcgKzM4NTMsNyBAQAogCWlmIChwcml2LT5jYXJkX3R5cGUgPT0gQ0FSRF9UWVBFX0VFUFJPTSkgewogCQkvKiBjb3B5IGluIGZpcm13YXJlIGlmIG5lZWRlZCAqLwogCQljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5ID0gTlVMTDsKLQkJdW5zaWduZWQgY2hhciAqZnc7CisJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmZ3OwogCQlpbnQgbGVuID0gcHJpdi0+ZmlybXdhcmVfbGVuZ3RoOwogCQlpZiAoIShmdyA9IHByaXYtPmZpcm13YXJlKSkgewogCQkJaWYgKHByaXYtPmZpcm13YXJlX3R5cGUgPT0gQVRNRUxfRldfVFlQRV9OT05FKSB7CkBAIC00MTIwLDcgKzQxMjAsNyBAQAogfQogCiBzdGF0aWMgdm9pZCBhdG1lbF9jb3B5X3RvX2NhcmQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTE2IGRlc3QsCi0JCQkgICAgICAgdW5zaWduZWQgY2hhciAqc3JjLCB1MTYgbGVuKQorCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNyYywgdTE2IGxlbikKIHsKIAlpbnQgaTsKIAlhdG1lbF93cml0ZUFSKGRldiwgZGVzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvYjQzLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvYjQzLmgKaW5kZXggMzc3ODNjZC4uZDNkYjI5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2I0My5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaApAQCAtNjMwLDcgKzYzMCw2IEBACiAKIC8qIENvbnRleHQgaW5mb3JtYXRpb24gZm9yIGEgbm9pc2UgY2FsY3VsYXRpb24gKExpbmsgUXVhbGl0eSkuICovCiBzdHJ1Y3QgYjQzX25vaXNlX2NhbGN1bGF0aW9uIHsKLQl1OCBjaGFubmVsX2F0X3N0YXJ0OwogCWJvb2wgY2FsY3VsYXRpb25fcnVubmluZzsKIAl1OCBucl9zYW1wbGVzOwogCXM4IHNhbXBsZXNbOF1bNF07CkBAIC03MzcsNiArNzM2LDcgQEAKIAlzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgYmVhY29uX3R4Y3RsOwogCWJvb2wgYmVhY29uMF91cGxvYWRlZDsKIAlib29sIGJlYWNvbjFfdXBsb2FkZWQ7CisJYm9vbCBiZWFjb25fdGVtcGxhdGVzX3ZpcmdpbjsgLyogTmV2ZXIgd3JvdGUgdGhlIHRlbXBsYXRlcz8gKi8KIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgYmVhY29uX3VwZGF0ZV90cmlnZ2VyOwogCiAJLyogVGhlIGN1cnJlbnQgUU9TIHBhcmFtZXRlcnMgZm9yIHRoZSA0IHF1ZXVlcy4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9kbWEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9kbWEuYwppbmRleCA2ZGNiYjNjLi5lMjNmMmYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvZG1hLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2RtYS5jCkBAIC03OTUsNjYgKzc5NSwyMyBAQAogewogCXN0cnVjdCBiNDNfZG1hcmluZyAqcmluZzsKIAlpbnQgZXJyOwotCWludCBucl9zbG90czsKIAlkbWFfYWRkcl90IGRtYV90ZXN0OwogCiAJcmluZyA9IGt6YWxsb2Moc2l6ZW9mKCpyaW5nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5nKQogCQlnb3RvIG91dDsKLQlyaW5nLT50eXBlID0gdHlwZTsKIAotCW5yX3Nsb3RzID0gQjQzX1JYUklOR19TTE9UUzsKKwlyaW5nLT5ucl9zbG90cyA9IEI0M19SWFJJTkdfU0xPVFM7CiAJaWYgKGZvcl90eCkKLQkJbnJfc2xvdHMgPSBCNDNfVFhSSU5HX1NMT1RTOworCQlyaW5nLT5ucl9zbG90cyA9IEI0M19UWFJJTkdfU0xPVFM7CiAKLQlyaW5nLT5tZXRhID0ga2NhbGxvYyhucl9zbG90cywgc2l6ZW9mKHN0cnVjdCBiNDNfZG1hZGVzY19tZXRhKSwKKwlyaW5nLT5tZXRhID0ga2NhbGxvYyhyaW5nLT5ucl9zbG90cywgc2l6ZW9mKHN0cnVjdCBiNDNfZG1hZGVzY19tZXRhKSwKIAkJCSAgICAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFyaW5nLT5tZXRhKQogCQlnb3RvIGVycl9rZnJlZV9yaW5nOwotCWlmIChmb3JfdHgpIHsKLQkJcmluZy0+dHhoZHJfY2FjaGUgPSBrY2FsbG9jKG5yX3Nsb3RzLAotCQkJCQkgICAgYjQzX3R4aGRyX3NpemUoZGV2KSwKLQkJCQkJICAgIEdGUF9LRVJORUwpOwotCQlpZiAoIXJpbmctPnR4aGRyX2NhY2hlKQotCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKIAotCQkvKiB0ZXN0IGZvciBhYmlsaXR5IHRvIGRtYSB0byB0eGhkcl9jYWNoZSAqLwotCQlkbWFfdGVzdCA9IGRtYV9tYXBfc2luZ2xlKGRldi0+ZGV2LT5kbWFfZGV2LAotCQkJCQkgIHJpbmctPnR4aGRyX2NhY2hlLAotCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJCSAgRE1BX1RPX0RFVklDRSk7Ci0KLQkJaWYgKGI0M19kbWFfbWFwcGluZ19lcnJvcihyaW5nLCBkbWFfdGVzdCwKLQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgewotCQkJLyogdWdoIHJlYWxsb2MgKi8KLQkJCWtmcmVlKHJpbmctPnR4aGRyX2NhY2hlKTsKLQkJCXJpbmctPnR4aGRyX2NhY2hlID0ga2NhbGxvYyhucl9zbG90cywKLQkJCQkJCSAgICBiNDNfdHhoZHJfc2l6ZShkZXYpLAotCQkJCQkJICAgIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKLQkJCWlmICghcmluZy0+dHhoZHJfY2FjaGUpCi0JCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKLQotCQkJZG1hX3Rlc3QgPSBkbWFfbWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKLQkJCQkJCSAgcmluZy0+dHhoZHJfY2FjaGUsCi0JCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJCQkgIERNQV9UT19ERVZJQ0UpOwotCi0JCQlpZiAoYjQzX2RtYV9tYXBwaW5nX2Vycm9yKHJpbmcsIGRtYV90ZXN0LAotCQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgewotCi0JCQkJYjQzZXJyKGRldi0+d2wsCi0JCQkJICAgICAgICJUWEhEUiBETUEgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOwotCQkJCWdvdG8gZXJyX2tmcmVlX3R4aGRyX2NhY2hlOwotCQkJfQotCQl9Ci0KLQkJZG1hX3VubWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKLQkJCQkgZG1hX3Rlc3QsIGI0M190eGhkcl9zaXplKGRldiksCi0JCQkJIERNQV9UT19ERVZJQ0UpOwotCX0KLQorCXJpbmctPnR5cGUgPSB0eXBlOwogCXJpbmctPmRldiA9IGRldjsKLQlyaW5nLT5ucl9zbG90cyA9IG5yX3Nsb3RzOwogCXJpbmctPm1taW9fYmFzZSA9IGI0M19kbWFjb250cm9sbGVyX2Jhc2UodHlwZSwgY29udHJvbGxlcl9pbmRleCk7CiAJcmluZy0+aW5kZXggPSBjb250cm9sbGVyX2luZGV4OwogCWlmICh0eXBlID09IEI0M19ETUFfNjRCSVQpCkBAIC04NzksNiArODM2LDQ4IEBACiAJcmluZy0+bGFzdF9pbmplY3RlZF9vdmVyZmxvdyA9IGppZmZpZXM7CiAjZW5kaWYKIAorCWlmIChmb3JfdHgpIHsKKwkJcmluZy0+dHhoZHJfY2FjaGUgPSBrY2FsbG9jKHJpbmctPm5yX3Nsb3RzLAorCQkJCQkgICAgYjQzX3R4aGRyX3NpemUoZGV2KSwKKwkJCQkJICAgIEdGUF9LRVJORUwpOworCQlpZiAoIXJpbmctPnR4aGRyX2NhY2hlKQorCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKKworCQkvKiB0ZXN0IGZvciBhYmlsaXR5IHRvIGRtYSB0byB0eGhkcl9jYWNoZSAqLworCQlkbWFfdGVzdCA9IGRtYV9tYXBfc2luZ2xlKGRldi0+ZGV2LT5kbWFfZGV2LAorCQkJCQkgIHJpbmctPnR4aGRyX2NhY2hlLAorCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJCSAgRE1BX1RPX0RFVklDRSk7CisKKwkJaWYgKGI0M19kbWFfbWFwcGluZ19lcnJvcihyaW5nLCBkbWFfdGVzdCwKKwkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgeworCQkJLyogdWdoIHJlYWxsb2MgKi8KKwkJCWtmcmVlKHJpbmctPnR4aGRyX2NhY2hlKTsKKwkJCXJpbmctPnR4aGRyX2NhY2hlID0ga2NhbGxvYyhyaW5nLT5ucl9zbG90cywKKwkJCQkJCSAgICBiNDNfdHhoZHJfc2l6ZShkZXYpLAorCQkJCQkJICAgIEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwkJCWlmICghcmluZy0+dHhoZHJfY2FjaGUpCisJCQkJZ290byBlcnJfa2ZyZWVfbWV0YTsKKworCQkJZG1hX3Rlc3QgPSBkbWFfbWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKKwkJCQkJCSAgcmluZy0+dHhoZHJfY2FjaGUsCisJCQkJCQkgIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJCQkgIERNQV9UT19ERVZJQ0UpOworCisJCQlpZiAoYjQzX2RtYV9tYXBwaW5nX2Vycm9yKHJpbmcsIGRtYV90ZXN0LAorCQkJCQkJICBiNDNfdHhoZHJfc2l6ZShkZXYpLCAxKSkgeworCisJCQkJYjQzZXJyKGRldi0+d2wsCisJCQkJICAgICAgICJUWEhEUiBETUEgYWxsb2NhdGlvbiBmYWlsZWRcbiIpOworCQkJCWdvdG8gZXJyX2tmcmVlX3R4aGRyX2NhY2hlOworCQkJfQorCQl9CisKKwkJZG1hX3VubWFwX3NpbmdsZShkZXYtPmRldi0+ZG1hX2RldiwKKwkJCQkgZG1hX3Rlc3QsIGI0M190eGhkcl9zaXplKGRldiksCisJCQkJIERNQV9UT19ERVZJQ0UpOworCX0KKwogCWVyciA9IGFsbG9jX3JpbmdtZW1vcnkocmluZyk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfa2ZyZWVfdHhoZHJfY2FjaGU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbGVkcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL2xlZHMuYwppbmRleCAzNmE5YzQyLi43NmY0YzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbGVkcy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9sZWRzLmMKQEAgLTcyLDYgKzcyLDkgQEAKIAlzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYgPSBsZWQtPmRldjsKIAlib29sIHJhZGlvX2VuYWJsZWQ7CiAKKwlpZiAodW5saWtlbHkoYjQzX3N0YXR1cyhkZXYpIDwgQjQzX1NUQVRfSU5JVElBTElaRUQpKQorCQlyZXR1cm47CisKIAkvKiBDaGVja2luZyB0aGUgcmFkaW8tZW5hYmxlZCBzdGF0dXMgaGVyZSBpcyBzbGlnaHRseSByYWN5LAogCSAqIGJ1dCB3ZSB3YW50IHRvIGF2b2lkIHRoZSBsb2NraW5nIG92ZXJoZWFkIGFuZCB3ZSBkb24ndCBjYXJlCiAJICogd2hldGhlciB0aGUgTEVEIGhhcyB0aGUgd3Jvbmcgc3RhdGUgZm9yIGEgc2Vjb25kLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9tYWluLmMKaW5kZXggOGZkYmE5NC4uYTcwODI3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL21haW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvbWFpbi5jCkBAIC0xMTQ1LDcgKzExNDUsNiBAQAogCWI0M19qc3NpX3dyaXRlKGRldiwgMHg3RjdGN0Y3Rik7CiAJYjQzX3dyaXRlMzIoZGV2LCBCNDNfTU1JT19NQUNDTUQsCiAJCSAgICBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKSB8IEI0M19NQUNDTURfQkdOT0lTRSk7Ci0JQjQzX1dBUk5fT04oZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCAhPSBkZXYtPnBoeS5jaGFubmVsKTsKIH0KIAogc3RhdGljIHZvaWQgYjQzX2NhbGN1bGF0ZV9saW5rX3F1YWxpdHkoc3RydWN0IGI0M193bGRldiAqZGV2KQpAQCAtMTE1NCw3ICsxMTUzLDYgQEAKIAogCWlmIChkZXYtPm5vaXNlY2FsYy5jYWxjdWxhdGlvbl9ydW5uaW5nKQogCQlyZXR1cm47Ci0JZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCA9IGRldi0+cGh5LmNoYW5uZWw7CiAJZGV2LT5ub2lzZWNhbGMuY2FsY3VsYXRpb25fcnVubmluZyA9IDE7CiAJZGV2LT5ub2lzZWNhbGMubnJfc2FtcGxlcyA9IDA7CiAKQEAgLTExNzEsOSArMTE2OSwxNiBAQAogCiAJLyogQm90dG9tIGhhbGYgb2YgTGluayBRdWFsaXR5IGNhbGN1bGF0aW9uLiAqLwogCisJLyogUG9zc2libGUgcmFjZSBjb25kaXRpb246IEl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIKKwkgKiBjaGFuZ2VkIHRvIGEgZGlmZmVyZW50IGNoYW5uZWwgaW4gdGhlIG1lYW50aW1lIHNpbmNlIHdlCisJICogc3RhcnRlZCB0aGUgY2FsY3VsYXRpb24uIFdlIGlnbm9yZSB0aGF0IGZhY3QsIHNpbmNlIGl0J3MKKwkgKiBub3QgcmVhbGx5IHRoYXQgbXVjaCBvZiBhIHByb2JsZW0uIFRoZSBiYWNrZ3JvdW5kIG5vaXNlIGlzCisJICogYW4gZXN0aW1hdGlvbiBvbmx5IGFueXdheS4gU2xpZ2h0bHkgd3JvbmcgcmVzdWx0cyB3aWxsIGdldCBkYW1wZWQKKwkgKiBieSB0aGUgYXZlcmFnaW5nIG9mIHRoZSA4IHNhbXBsZSByb3VuZHMuIEFkZGl0aW9uYWxseSB0aGUKKwkgKiB2YWx1ZSBpcyBzaG9ydGxpdmVkLiBTbyBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBuZXh0IG5vaXNlCisJICogY2FsY3VsYXRpb24gcm91bmQgc29vbi4gKi8KKwogCUI0M19XQVJOX09OKCFkZXYtPm5vaXNlY2FsYy5jYWxjdWxhdGlvbl9ydW5uaW5nKTsKLQlpZiAoZGV2LT5ub2lzZWNhbGMuY2hhbm5lbF9hdF9zdGFydCAhPSBwaHktPmNoYW5uZWwpCi0JCWdvdG8gZHJvcF9jYWxjdWxhdGlvbjsKIAkqKChfX2xlMzIgKilub2lzZSkgPSBjcHVfdG9fbGUzMihiNDNfanNzaV9yZWFkKGRldikpOwogCWlmIChub2lzZVswXSA9PSAweDdGIHx8IG5vaXNlWzFdID09IDB4N0YgfHwKIAkgICAgbm9pc2VbMl0gPT0gMHg3RiB8fCBub2lzZVszXSA9PSAweDdGKQpAQCAtMTIxNCwxMSArMTIxOSwxMCBAQAogCQkJYXZlcmFnZSAtPSA0ODsKIAogCQlkZXYtPnN0YXRzLmxpbmtfbm9pc2UgPSBhdmVyYWdlOwotCSAgICAgIGRyb3BfY2FsY3VsYXRpb246CiAJCWRldi0+bm9pc2VjYWxjLmNhbGN1bGF0aW9uX3J1bm5pbmcgPSAwOwogCQlyZXR1cm47CiAJfQotICAgICAgZ2VuZXJhdGVfbmV3OgorZ2VuZXJhdGVfbmV3OgogCWI0M19nZW5lcmF0ZV9ub2lzZV9zYW1wbGUoZGV2KTsKIH0KIApAQCAtMTU0NCw2ICsxNTQ4LDMwIEBACiAJa2ZyZWUocHJvYmVfcmVzcF9kYXRhKTsKIH0KIAorc3RhdGljIHZvaWQgYjQzX3VwbG9hZF9iZWFjb24wKHN0cnVjdCBiNDNfd2xkZXYgKmRldikKK3sKKwlzdHJ1Y3QgYjQzX3dsICp3bCA9IGRldi0+d2w7CisKKwlpZiAod2wtPmJlYWNvbjBfdXBsb2FkZWQpCisJCXJldHVybjsKKwliNDNfd3JpdGVfYmVhY29uX3RlbXBsYXRlKGRldiwgMHg2OCwgMHgxOCk7CisJLyogRklYTUU6IFByb2JlIHJlc3AgdXBsb2FkIGRvZXNuJ3QgcmVhbGx5IGJlbG9uZyBoZXJlLAorCSAqICAgICAgICBidXQgd2UgZG9uJ3QgdXNlIHRoYXQgZmVhdHVyZSBhbnl3YXkuICovCisJYjQzX3dyaXRlX3Byb2JlX3Jlc3BfdGVtcGxhdGUoZGV2LCAweDI2OCwgMHg0QSwKKwkJCQkgICAgICAmX19iNDNfcmF0ZXRhYmxlWzNdKTsKKwl3bC0+YmVhY29uMF91cGxvYWRlZCA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIGI0M191cGxvYWRfYmVhY29uMShzdHJ1Y3QgYjQzX3dsZGV2ICpkZXYpCit7CisJc3RydWN0IGI0M193bCAqd2wgPSBkZXYtPndsOworCisJaWYgKHdsLT5iZWFjb24xX3VwbG9hZGVkKQorCQlyZXR1cm47CisJYjQzX3dyaXRlX2JlYWNvbl90ZW1wbGF0ZShkZXYsIDB4NDY4LCAweDFBKTsKKwl3bC0+YmVhY29uMV91cGxvYWRlZCA9IDE7Cit9CisKIHN0YXRpYyB2b2lkIGhhbmRsZV9pcnFfYmVhY29uKHN0cnVjdCBiNDNfd2xkZXYgKmRldikKIHsKIAlzdHJ1Y3QgYjQzX3dsICp3bCA9IGRldi0+d2w7CkBAIC0xNTY4LDI0ICsxNTk2LDI3IEBACiAJCXJldHVybjsKIAl9CiAKLQlpZiAoIWJlYWNvbjBfdmFsaWQpIHsKLQkJaWYgKCF3bC0+YmVhY29uMF91cGxvYWRlZCkgewotCQkJYjQzX3dyaXRlX2JlYWNvbl90ZW1wbGF0ZShkZXYsIDB4NjgsIDB4MTgpOwotCQkJYjQzX3dyaXRlX3Byb2JlX3Jlc3BfdGVtcGxhdGUoZGV2LCAweDI2OCwgMHg0QSwKLQkJCQkJCSAgICAgICZfX2I0M19yYXRldGFibGVbM10pOwotCQkJd2wtPmJlYWNvbjBfdXBsb2FkZWQgPSAxOwotCQl9CisJaWYgKHVubGlrZWx5KHdsLT5iZWFjb25fdGVtcGxhdGVzX3ZpcmdpbikpIHsKKwkJLyogV2UgbmV2ZXIgdXBsb2FkZWQgYSBiZWFjb24gYmVmb3JlLgorCQkgKiBVcGxvYWQgYm90aCB0ZW1wbGF0ZXMgbm93LCBidXQgb25seSBtYXJrIG9uZSB2YWxpZC4gKi8KKwkJd2wtPmJlYWNvbl90ZW1wbGF0ZXNfdmlyZ2luID0gMDsKKwkJYjQzX3VwbG9hZF9iZWFjb24wKGRldik7CisJCWI0M191cGxvYWRfYmVhY29uMShkZXYpOwogCQljbWQgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKTsKIAkJY21kIHw9IEI0M19NQUNDTURfQkVBQ09OMF9WQUxJRDsKIAkJYjQzX3dyaXRlMzIoZGV2LCBCNDNfTU1JT19NQUNDTUQsIGNtZCk7Ci0JfSBlbHNlIGlmICghYmVhY29uMV92YWxpZCkgewotCQlpZiAoIXdsLT5iZWFjb24xX3VwbG9hZGVkKSB7Ci0JCQliNDNfd3JpdGVfYmVhY29uX3RlbXBsYXRlKGRldiwgMHg0NjgsIDB4MUEpOwotCQkJd2wtPmJlYWNvbjFfdXBsb2FkZWQgPSAxOworCX0gZWxzZSB7CisJCWlmICghYmVhY29uMF92YWxpZCkgeworCQkJYjQzX3VwbG9hZF9iZWFjb24wKGRldik7CisJCQljbWQgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKTsKKwkJCWNtZCB8PSBCNDNfTUFDQ01EX0JFQUNPTjBfVkFMSUQ7CisJCQliNDNfd3JpdGUzMihkZXYsIEI0M19NTUlPX01BQ0NNRCwgY21kKTsKKwkJfSBlbHNlIGlmICghYmVhY29uMV92YWxpZCkgeworCQkJYjQzX3VwbG9hZF9iZWFjb24xKGRldik7CisJCQljbWQgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKTsKKwkJCWNtZCB8PSBCNDNfTUFDQ01EX0JFQUNPTjFfVkFMSUQ7CisJCQliNDNfd3JpdGUzMihkZXYsIEI0M19NTUlPX01BQ0NNRCwgY21kKTsKIAkJfQotCQljbWQgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9fTUFDQ01EKTsKLQkJY21kIHw9IEI0M19NQUNDTURfQkVBQ09OMV9WQUxJRDsKLQkJYjQzX3dyaXRlMzIoZGV2LCBCNDNfTU1JT19NQUNDTUQsIGNtZCk7CiAJfQogfQogCkBAIC0yODUyLDEyICsyODgzLDExIEBACiAKIAlpZiAodW5saWtlbHkoc2tiLT5sZW4gPCAyICsgMiArIDYpKSB7CiAJCS8qIFRvbyBzaG9ydCwgdGhpcyBjYW4ndCBiZSBhIHZhbGlkIGZyYW1lLiAqLwotCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwotCQlyZXR1cm4gTkVUREVWX1RYX09LOworCQlnb3RvIGRyb3BfcGFja2V0OwogCX0KIAlCNDNfV0FSTl9PTihza2Jfc2hpbmZvKHNrYiktPm5yX2ZyYWdzKTsKIAlpZiAodW5saWtlbHkoIWRldikpCi0JCXJldHVybiBORVRERVZfVFhfQlVTWTsKKwkJZ290byBkcm9wX3BhY2tldDsKIAogCS8qIFRyYW5zbWlzc2lvbnMgb24gc2VwZXJhdGUgcXVldWVzIGNhbiBydW4gY29uY3VycmVudGx5LiAqLwogCXJlYWRfbG9ja19pcnFzYXZlKCZ3bC0+dHhfbG9jaywgZmxhZ3MpOwpAQCAtMjg3Myw3ICsyOTAzLDEyIEBACiAJcmVhZF91bmxvY2tfaXJxcmVzdG9yZSgmd2wtPnR4X2xvY2ssIGZsYWdzKTsKIAogCWlmICh1bmxpa2VseShlcnIpKQotCQlyZXR1cm4gTkVUREVWX1RYX0JVU1k7CisJCWdvdG8gZHJvcF9wYWNrZXQ7CisJcmV0dXJuIE5FVERFVl9UWF9PSzsKKworZHJvcF9wYWNrZXQ6CisJLyogV2UgY2FuIG5vdCB0cmFuc21pdCB0aGlzIHBhY2tldC4gRHJvcCBpdC4gKi8KKwlkZXZfa2ZyZWVfc2tiX2FueShza2IpOwogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKQEAgLTQwNzMsNiArNDEwOCw5IEBACiAJd2wtPmZpbHRlcl9mbGFncyA9IDA7CiAJd2wtPnJhZGlvdGFwX2VuYWJsZWQgPSAwOwogCWI0M19xb3NfY2xlYXIod2wpOworCXdsLT5iZWFjb24wX3VwbG9hZGVkID0gMDsKKwl3bC0+YmVhY29uMV91cGxvYWRlZCA9IDA7CisJd2wtPmJlYWNvbl90ZW1wbGF0ZXNfdmlyZ2luID0gMTsKIAogCS8qIEZpcnN0IHJlZ2lzdGVyIFJGa2lsbC4KIAkgKiBMRURzIHRoYXQgYXJlIHJlZ2lzdGVyZWQgbGF0ZXIgZGVwZW5kIG9uIGl0LiAqLwpAQCAtNDI0MSw3ICs0Mjc5LDkgQEAKIAkJCWdvdG8gb3V0OwogCQl9CiAJfQotICAgICAgb3V0Ogorb3V0OgorCWlmIChlcnIpCisJCXdsLT5jdXJyZW50X2RldiA9IE5VTEw7IC8qIEZhaWxlZCB0byBpbml0IHRoZSBkZXYuICovCiAJbXV0ZXhfdW5sb2NrKCZ3bC0+bXV0ZXgpOwogCWlmIChlcnIpCiAJCWI0M2Vycih3bCwgIkNvbnRyb2xsZXIgcmVzdGFydCBGQUlMRURcbiIpOwpAQCAtNDM4Miw5ICs0NDIyLDExIEBACiAJc3RydWN0IGI0M193bGRldiAqd2xkZXY7CiAJc3RydWN0IGI0M193bCAqd2w7CiAKKwkvKiBEbyBub3QgY2FuY2VsIGllZWU4MDIxMS13b3JrcXVldWUgYmFzZWQgd29yayBoZXJlLgorCSAqIFNlZSBjb21tZW50IGluIGI0M19yZW1vdmUoKS4gKi8KKwogCXdsZGV2ID0gc3NiX2dldF9kcnZkYXRhKGRldik7CiAJd2wgPSB3bGRldi0+d2w7Ci0JY2FuY2VsX3dvcmtfc3luYygmd2xkZXYtPnJlc3RhcnRfd29yayk7CiAJYjQzX2RlYnVnZnNfcmVtb3ZlX2RldmljZSh3bGRldik7CiAJYjQzX3dpcmVsZXNzX2NvcmVfZGV0YWNoKHdsZGV2KTsKIAlsaXN0X2RlbCgmd2xkZXYtPmxpc3QpOwpAQCAtNDU2OSw2ICs0NjExLDEwIEBACiAJc3RydWN0IGI0M193bCAqd2wgPSBzc2JfZ2V0X2RldnR5cGVkYXRhKGRldik7CiAJc3RydWN0IGI0M193bGRldiAqd2xkZXYgPSBzc2JfZ2V0X2RydmRhdGEoZGV2KTsKIAorCS8qIFdlIG11c3QgY2FuY2VsIGFueSB3b3JrIGhlcmUgYmVmb3JlIHVucmVnaXN0ZXJpbmcgZnJvbSBpZWVlODAyMTEsCisJICogYXMgdGhlIGllZWU4MDIxMSB1bnJlZyB3aWxsIGRlc3Ryb3kgdGhlIHdvcmtxdWV1ZS4gKi8KKwljYW5jZWxfd29ya19zeW5jKCZ3bGRldi0+cmVzdGFydF93b3JrKTsKKwogCUI0M19XQVJOX09OKCF3bCk7CiAJaWYgKHdsLT5jdXJyZW50X2RldiA9PSB3bGRldikKIAkJaWVlZTgwMjExX3VucmVnaXN0ZXJfaHcod2wtPmh3KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9kbWEuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9kbWEuYwppbmRleCBjOTkwZjg3Li45M2RkYzFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvZG1hLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L2RtYS5jCkBAIC04NzYsNiArODc2LDcgQEAKIAlpZiAoIXJpbmcpCiAJCWdvdG8gb3V0OwogCXJpbmctPnR5cGUgPSB0eXBlOworCXJpbmctPmRldiA9IGRldjsKIAogCW5yX3Nsb3RzID0gQjQzbGVnYWN5X1JYUklOR19TTE9UUzsKIAlpZiAoZm9yX3R4KQpAQCAtOTIyLDcgKzkyMyw2IEBACiAJCQkJIERNQV9UT19ERVZJQ0UpOwogCX0KIAotCXJpbmctPmRldiA9IGRldjsKIAlyaW5nLT5ucl9zbG90cyA9IG5yX3Nsb3RzOwogCXJpbmctPm1taW9fYmFzZSA9IGI0M2xlZ2FjeV9kbWFjb250cm9sbGVyX2Jhc2UodHlwZSwgY29udHJvbGxlcl9pbmRleCk7CiAJcmluZy0+aW5kZXggPSBjb250cm9sbGVyX2luZGV4OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0M2xlZ2FjeS9tYWluLmMKaW5kZXggMTRhNWVlYS4uM2U2MTJkMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzbGVnYWN5L21haW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDNsZWdhY3kvbWFpbi5jCkBAIC0yMzc4LDggKzIzNzgsMTAgQEAKIAl9IGVsc2UKIAkJZXJyID0gYjQzbGVnYWN5X2RtYV90eChkZXYsIHNrYiwgY3RsKTsKIG91dDoKLQlpZiAodW5saWtlbHkoZXJyKSkKLQkJcmV0dXJuIE5FVERFVl9UWF9CVVNZOworCWlmICh1bmxpa2VseShlcnIpKSB7CisJCS8qIERyb3AgdGhlIHBhY2tldC4gKi8KKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwl9CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIApAQCAtMzAzOSw3ICszMDQxLDYgQEAKIC8qIExvY2tpbmc6IHdsLT5tdXRleCAqLwogc3RhdGljIHZvaWQgYjQzbGVnYWN5X3dpcmVsZXNzX2NvcmVfZXhpdChzdHJ1Y3QgYjQzbGVnYWN5X3dsZGV2ICpkZXYpCiB7Ci0Jc3RydWN0IGI0M2xlZ2FjeV93bCAqd2wgPSBkZXYtPndsOwogCXN0cnVjdCBiNDNsZWdhY3lfcGh5ICpwaHkgPSAmZGV2LT5waHk7CiAJdTMyIG1hY2N0bDsKIApAQCAtMzA1NCwxMiArMzA1NSw2IEBACiAJbWFjY3RsIHw9IEI0M2xlZ2FjeV9NQUNDVExfUFNNX0pNUDA7CiAJYjQzbGVnYWN5X3dyaXRlMzIoZGV2LCBCNDNsZWdhY3lfTU1JT19NQUNDVEwsIG1hY2N0bCk7CiAKLQltdXRleF91bmxvY2soJndsLT5tdXRleCk7Ci0JLyogTXVzdCB1bmxvY2sgYXMgaXQgd291bGQgb3RoZXJ3aXNlIGRlYWRsb2NrLiBObyByYWNlcyBoZXJlLgotCSAqIENhbmNlbCBwb3NzaWJseSBwZW5kaW5nIHdvcmtxdWV1ZXMuICovCi0JY2FuY2VsX3dvcmtfc3luYygmZGV2LT5yZXN0YXJ0X3dvcmspOwotCW11dGV4X2xvY2soJndsLT5tdXRleCk7Ci0KIAliNDNsZWdhY3lfbGVkc19leGl0KGRldik7CiAJYjQzbGVnYWN5X3JuZ19leGl0KGRldi0+d2wpOwogCWI0M2xlZ2FjeV9waW9fZnJlZShkZXYpOwpAQCAtMzQ4Niw2ICszNDgxLDggQEAKIAkJfQogCX0KIG91dDoKKwlpZiAoZXJyKQorCQl3bC0+Y3VycmVudF9kZXYgPSBOVUxMOyAvKiBGYWlsZWQgdG8gaW5pdCB0aGUgZGV2LiAqLwogCW11dGV4X3VubG9jaygmd2wtPm11dGV4KTsKIAlpZiAoZXJyKQogCQliNDNsZWdhY3llcnIod2wsICJDb250cm9sbGVyIHJlc3RhcnQgRkFJTEVEXG4iKTsKQEAgLTM2MTgsOSArMzYxNSwxMSBAQAogCXN0cnVjdCBiNDNsZWdhY3lfd2xkZXYgKndsZGV2OwogCXN0cnVjdCBiNDNsZWdhY3lfd2wgKndsOwogCisJLyogRG8gbm90IGNhbmNlbCBpZWVlODAyMTEtd29ya3F1ZXVlIGJhc2VkIHdvcmsgaGVyZS4KKwkgKiBTZWUgY29tbWVudCBpbiBiNDNsZWdhY3lfcmVtb3ZlKCkuICovCisKIAl3bGRldiA9IHNzYl9nZXRfZHJ2ZGF0YShkZXYpOwogCXdsID0gd2xkZXYtPndsOwotCWNhbmNlbF93b3JrX3N5bmMoJndsZGV2LT5yZXN0YXJ0X3dvcmspOwogCWI0M2xlZ2FjeV9kZWJ1Z2ZzX3JlbW92ZV9kZXZpY2Uod2xkZXYpOwogCWI0M2xlZ2FjeV93aXJlbGVzc19jb3JlX2RldGFjaCh3bGRldik7CiAJbGlzdF9kZWwoJndsZGV2LT5saXN0KTsKQEAgLTM3ODksNiArMzc4OCwxMCBAQAogCXN0cnVjdCBiNDNsZWdhY3lfd2wgKndsID0gc3NiX2dldF9kZXZ0eXBlZGF0YShkZXYpOwogCXN0cnVjdCBiNDNsZWdhY3lfd2xkZXYgKndsZGV2ID0gc3NiX2dldF9kcnZkYXRhKGRldik7CiAKKwkvKiBXZSBtdXN0IGNhbmNlbCBhbnkgd29yayBoZXJlIGJlZm9yZSB1bnJlZ2lzdGVyaW5nIGZyb20gaWVlZTgwMjExLAorCSAqIGFzIHRoZSBpZWVlODAyMTEgdW5yZWcgd2lsbCBkZXN0cm95IHRoZSB3b3JrcXVldWUuICovCisJY2FuY2VsX3dvcmtfc3luYygmd2xkZXYtPnJlc3RhcnRfd29yayk7CisKIAlCNDNsZWdhY3lfV0FSTl9PTighd2wpOwogCWlmICh3bC0+Y3VycmVudF9kZXYgPT0gd2xkZXYpCiAJCWllZWU4MDIxMV91bnJlZ2lzdGVyX2h3KHdsLT5odyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwXzgwMjExX3J4LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwXzgwMjExX3J4LmMKaW5kZXggNGZkNzM4MC4uMDIwZjQ1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF84MDIxMV9yeC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfODAyMTFfcnguYwpAQCAtNjQsNyArNjQsNyBAQAogCWludCBoZHJsZW4sIHBoZHJsZW4sIGhlYWRfbmVlZCwgdGFpbF9uZWVkOwogCXUxNiBmYzsKIAlpbnQgcHJpc21faGVhZGVyLCByZXQ7Ci0Jc3RydWN0IGllZWU4MDIxMV9oZHJfNGFkZHIgKmhkcjsKKwlzdHJ1Y3QgaWVlZTgwMjExX2hkcl80YWRkciAqZmhkcjsKIAogCWlmYWNlID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlsb2NhbCA9IGlmYWNlLT5sb2NhbDsKQEAgLTgzLDggKzgzLDggQEAKIAkJcGhkcmxlbiA9IDA7CiAJfQogCi0JaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyXzRhZGRyICopIHNrYi0+ZGF0YTsKLQlmYyA9IGxlMTZfdG9fY3B1KGhkci0+ZnJhbWVfY3RsKTsKKwlmaGRyID0gKHN0cnVjdCBpZWVlODAyMTFfaGRyXzRhZGRyICopIHNrYi0+ZGF0YTsKKwlmYyA9IGxlMTZfdG9fY3B1KGZoZHItPmZyYW1lX2N0bCk7CiAKIAlpZiAodHlwZSA9PSBQUklTTTJfUlhfTUdNVCAmJiAoZmMgJiBJRUVFODAyMTFfRkNUTF9WRVJTKSkgewogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IGRyb3BwZWQgbWFuYWdlbWVudCBmcmFtZSB3aXRoIGhlYWRlciAiCkBAIC01NTEsNyArNTUxLDcgQEAKIAkgICAgIGhkci0+YWRkcjFbMl0gIT0gMHhmZiB8fCBoZHItPmFkZHIxWzNdICE9IDB4ZmYgfHwKIAkgICAgIGhkci0+YWRkcjFbNF0gIT0gMHhmZiB8fCBoZHItPmFkZHIxWzVdICE9IDB4ZmYpKSB7CiAJCS8qIFJBIChvciBCU1NJRCkgaXMgbm90IG91cnMgLSBkcm9wICovCi0JCVBERUJVRyhERUJVR19FWFRSQSwgIiVzOiByZWNlaXZlZCBXRFMgZnJhbWUgd2l0aCAiCisJCVBERUJVRyhERUJVR19FWFRSQTIsICIlczogcmVjZWl2ZWQgV0RTIGZyYW1lIHdpdGggIgogCQkgICAgICAgIm5vdCBvd24gb3IgYnJvYWRjYXN0ICVzPSVzXG4iLAogCQkgICAgICAgbG9jYWwtPmRldi0+bmFtZSwKIAkJICAgICAgIGZjICYgSUVFRTgwMjExX0ZDVExfRlJPTURTID8gIlJBIiA6ICJCU1NJRCIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2FwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2FwLmMKaW5kZXggMGFjZDk1OC4uYWI5ODFhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9hcC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfYXAuYwpAQCAtMTkzMCw3ICsxOTMwLDcgQEAKIAkJUERFQlVHKERFQlVHX1BTLCAiICAgUFNQT0xMIGFuZCBBSURbMTU6MTRdIG5vdCBzZXRcbiIpOwogCQlyZXR1cm47CiAJfQotCWFpZCAmPSB+QklUKDE1KSAmIH5CSVQoMTQpOworCWFpZCAmPSB+KEJJVCgxNSkgfCBCSVQoMTQpKTsKIAlpZiAoYWlkID09IDAgfHwgYWlkID4gTUFYX0FJRF9UQUJMRV9TSVpFKSB7CiAJCVBERUJVRyhERUJVR19QUywgIiAgIGludmFsaWQgYWlkPSVkXG4iLCBhaWQpOwogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2NzLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2NzLmMKaW5kZXggZWQ0MzE3YTEuLjNiNGU1NWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfY3MuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2NzLmMKQEAgLTUzMywxMCArNTMzLDEwIEBACiBkbyB7IGxhc3RfZm4gPSAoZm4pOyBpZiAoKGxhc3RfcmV0ID0gKHJldCkpICE9IDApIGdvdG8gY3NfZmFpbGVkOyB9IHdoaWxlICgwKQogCiAjZGVmaW5lIENGR19DSEVDSzIoZm4sIHJldGYpIFwKLWRvIHsgaW50IHJldCA9IChyZXRmKTsgXAotaWYgKHJldCAhPSAwKSB7IFwKLQlQREVCVUcoREVCVUdfRVhUUkEsICJDYXJkU2VydmljZXMoIiAjZm4gIikgcmV0dXJuZWQgJWRcbiIsIHJldCk7IFwKLQljc19lcnJvcihsaW5rLCBmbiwgcmV0KTsgXAorZG8geyBpbnQgX3JldCA9IChyZXRmKTsgXAoraWYgKF9yZXQgIT0gMCkgeyBcCisJUERFQlVHKERFQlVHX0VYVFJBLCAiQ2FyZFNlcnZpY2VzKCIgI2ZuICIpIHJldHVybmVkICVkXG4iLCBfcmV0KTsgXAorCWNzX2Vycm9yKGxpbmssIGZuLCBfcmV0KTsgXAogCWdvdG8gbmV4dF9lbnRyeTsgXAogfSBcCiB9IHdoaWxlICgwKQpAQCAtNzc3LDggKzc3NywxMCBAQAogCWludCBkZXZfb3BlbiA9IDA7CiAJc3RydWN0IGhvc3RhcF9pbnRlcmZhY2UgKmlmYWNlID0gTlVMTDsKIAotCWlmIChkZXYpCi0JCWlmYWNlID0gbmV0ZGV2X3ByaXYoZGV2KTsKKwlpZiAoIWRldikKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpZmFjZSA9IG5ldGRldl9wcml2KGRldik7CiAKIAlQREVCVUcoREVCVUdfRVhUUkEsICIlczogQ1NfRVZFTlRfUE1fU1VTUEVORFxuIiwgZGV2X2luZm8pOwogCWlmIChpZmFjZSAmJiBpZmFjZS0+bG9jYWwpCkBAIC03OTgsOCArODAwLDEwIEBACiAJaW50IGRldl9vcGVuID0gMDsKIAlzdHJ1Y3QgaG9zdGFwX2ludGVyZmFjZSAqaWZhY2UgPSBOVUxMOwogCi0JaWYgKGRldikKLQkJaWZhY2UgPSBuZXRkZXZfcHJpdihkZXYpOworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWlmYWNlID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAogCVBERUJVRyhERUJVR19FWFRSQSwgIiVzOiBDU19FVkVOVF9QTV9SRVNVTUVcbiIsIGRldl9pbmZvKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaG9zdGFwL2hvc3RhcF9ody5jCmluZGV4IGNkZjkwYzQuLjkzNmY1MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfaHcuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX2h3LmMKQEAgLTI4MzUsNyArMjgzNSw3IEBACiB7CiAJbG9jYWxfaW5mb190ICpsb2NhbCA9IChsb2NhbF9pbmZvX3QgKikgZGF0YTsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gbG9jYWwtPmRldjsKLQl1MTYgY2hhbm5lbDsKKwl1MTYgY2hhbjsKIAogCWlmIChsb2NhbC0+cGFzc2l2ZV9zY2FuX2ludGVydmFsIDw9IDApCiAJCXJldHVybjsKQEAgLTI4NzIsMTEgKzI4NzIsMTEgQEAKIAogCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IHBhc3NpdmUgc2NhbiBjaGFubmVsICVkXG4iLAogCQkgICAgICAgZGV2LT5uYW1lLCBsb2NhbC0+cGFzc2l2ZV9zY2FuX2NoYW5uZWwpOwotCQljaGFubmVsID0gbG9jYWwtPnBhc3NpdmVfc2Nhbl9jaGFubmVsOworCQljaGFuID0gbG9jYWwtPnBhc3NpdmVfc2Nhbl9jaGFubmVsOwogCQlsb2NhbC0+cGFzc2l2ZV9zY2FuX3N0YXRlID0gUEFTU0lWRV9TQ0FOX1dBSVQ7CiAJCWxvY2FsLT5wYXNzaXZlX3NjYW5fdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBIWiAvIDEwOwogCX0gZWxzZSB7Ci0JCWNoYW5uZWwgPSBsb2NhbC0+Y2hhbm5lbDsKKwkJY2hhbiA9IGxvY2FsLT5jaGFubmVsOwogCQlsb2NhbC0+cGFzc2l2ZV9zY2FuX3N0YXRlID0gUEFTU0lWRV9TQ0FOX0xJU1RFTjsKIAkJbG9jYWwtPnBhc3NpdmVfc2Nhbl90aW1lci5leHBpcmVzID0gamlmZmllcyArCiAJCQlsb2NhbC0+cGFzc2l2ZV9zY2FuX2ludGVydmFsICogSFo7CkBAIC0yODg0LDkgKzI4ODQsOSBAQAogCiAJaWYgKGhmYTM4NHhfY21kX2NhbGxiYWNrKGRldiwgSEZBMzg0WF9DTURDT0RFX1RFU1QgfAogCQkJCSAoSEZBMzg0WF9URVNUX0NIQU5HRV9DSEFOTkVMIDw8IDgpLAotCQkJCSBjaGFubmVsLCBOVUxMLCAwKSkKKwkJCQkgY2hhbiwgTlVMTCwgMCkpCiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IHBhc3NpdmUgc2NhbiBjaGFubmVsIHNldCAlZCAiCi0JCSAgICAgICAiZmFpbGVkXG4iLCBkZXYtPm5hbWUsIGNoYW5uZWwpOworCQkgICAgICAgImZhaWxlZFxuIiwgZGV2LT5uYW1lLCBjaGFuKTsKIAogCWFkZF90aW1lcigmbG9jYWwtPnBhc3NpdmVfc2Nhbl90aW1lcik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ob3N0YXAvaG9zdGFwX21haW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfbWFpbi5jCmluZGV4IDIwZDM4N2YuLmEzOGU4NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2hvc3RhcC9ob3N0YXBfbWFpbi5jCkBAIC01OTQsNyArNTk0LDggQEAKIH0KIAogCi1pbnQgaG9zdGFwXzgwMjExX2hlYWRlcl9wYXJzZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1bnNpZ25lZCBjaGFyICpoYWRkcikKK3N0YXRpYyBpbnQgaG9zdGFwXzgwMjExX2hlYWRlcl9wYXJzZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCSAgICAgdW5zaWduZWQgY2hhciAqaGFkZHIpCiB7CiAJc3RydWN0IGhvc3RhcF9pbnRlcmZhY2UgKmlmYWNlID0gbmV0ZGV2X3ByaXYoc2tiLT5kZXYpOwogCWxvY2FsX2luZm9fdCAqbG9jYWwgPSBpZmFjZS0+bG9jYWw7CkBAIC02ODIsNyArNjgzLDEzIEBACiAJCW5ldGlmX2RldmljZV9kZXRhY2goZGV2KTsKIAl9CiAKLQlmbHVzaF9zY2hlZHVsZWRfd29yaygpOworCWNhbmNlbF93b3JrX3N5bmMoJmxvY2FsLT5yZXNldF9xdWV1ZSk7CisJY2FuY2VsX3dvcmtfc3luYygmbG9jYWwtPnNldF9tdWx0aWNhc3RfbGlzdF9xdWV1ZSk7CisJY2FuY2VsX3dvcmtfc3luYygmbG9jYWwtPnNldF90aW1fcXVldWUpOworI2lmbmRlZiBQUklTTTJfTk9fU1RBVElPTl9NT0RFUworCWNhbmNlbF93b3JrX3N5bmMoJmxvY2FsLT5pbmZvX3F1ZXVlKTsKKyNlbmRpZgorCWNhbmNlbF93b3JrX3N5bmMoJmxvY2FsLT5jb21tc19xdWFsX3VwZGF0ZSk7CiAKIAltb2R1bGVfcHV0KGxvY2FsLT5od19tb2R1bGUpOwogCkBAIC04NTEsNyArODU4LDYgQEAKIAkucmVidWlsZAk9IGV0aF9yZWJ1aWxkX2hlYWRlciwKIAkuY2FjaGUJCT0gZXRoX2hlYWRlcl9jYWNoZSwKIAkuY2FjaGVfdXBkYXRlCT0gZXRoX2hlYWRlcl9jYWNoZV91cGRhdGUsCi0KIAkucGFyc2UJCT0gaG9zdGFwXzgwMjExX2hlYWRlcl9wYXJzZSwKIH07CiBFWFBPUlRfU1lNQk9MKGhvc3RhcF84MDIxMV9vcHMpOwpAQCAtMTE0NCw3ICsxMTUwLDYgQEAKIEVYUE9SVF9TWU1CT0woaG9zdGFwX3NldF9hdXRoX2FsZ3MpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfZHVtcF9yeF9oZWFkZXIpOwogRVhQT1JUX1NZTUJPTChob3N0YXBfZHVtcF90eF9oZWFkZXIpOwotRVhQT1JUX1NZTUJPTChob3N0YXBfODAyMTFfaGVhZGVyX3BhcnNlKTsKIEVYUE9SVF9TWU1CT0woaG9zdGFwXzgwMjExX2dldF9oZHJsZW4pOwogRVhQT1JUX1NZTUJPTChob3N0YXBfZ2V0X3N0YXRzKTsKIEVYUE9SVF9TWU1CT0woaG9zdGFwX3NldHVwX2Rldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmMKaW5kZXggZDc0YzA2MS4uNmU3MDQ2MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MjIwMC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzIyMDAuYwpAQCAtMTc1Myw2ICsxNzUzLDggQEAKIAogCQlpZiAocHJpdi0+d29ya3F1ZXVlKSB7CiAJCQljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3NjYW4pOworCQkJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2Nhbik7CisJCQljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJCQljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5zY2FuX2V2ZW50KTsKIAkJfQogCQlxdWV1ZV93b3JrKHByaXYtPndvcmtxdWV1ZSwgJnByaXYtPmRvd24pOwpAQCAtMjAwNSw2ICsyMDA3LDggQEAKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlKCZwcml2LT53YWl0X2NvbW1hbmRfcXVldWUpOwogCQlwcml2LT5zdGF0dXMgJj0gfihTVEFUVVNfQVNTT0NJQVRFRCB8IFNUQVRVU19BU1NPQ0lBVElORyk7CiAJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3Rfc2Nhbik7CisJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3RfZGlyZWN0X3NjYW4pOworCQljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnNjYW5fZXZlbnQpOwogCQlzY2hlZHVsZV93b3JrKCZwcml2LT5saW5rX2Rvd24pOwogCQlxdWV1ZV9kZWxheWVkX3dvcmsocHJpdi0+d29ya3F1ZXVlLCAmcHJpdi0+cmZfa2lsbCwgMiAqIEhaKTsKQEAgLTQ3MTIsNiArNDcxNiwxMiBAQAogCQkJcHJpdi0+c3RhdHVzICY9IH5TVEFUVVNfU0NBTl9GT1JDRUQ7CiAjZW5kaWYJCQkJLyogQ09ORklHX0lQVzIyMDBfTU9OSVRPUiAqLwogCisJCQkvKiBEbyBxdWV1ZWQgZGlyZWN0IHNjYW5zIGZpcnN0ICovCisJCQlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkcpIHsKKwkJCQlxdWV1ZV9kZWxheWVkX3dvcmsocHJpdi0+d29ya3F1ZXVlLAorCQkJCQkJICAgJnByaXYtPnJlcXVlc3RfZGlyZWN0X3NjYW4sIDApOworCQkJfQorCiAJCQlpZiAoIShwcml2LT5zdGF0dXMgJiAoU1RBVFVTX0FTU09DSUFURUQgfAogCQkJCQkgICAgICBTVEFUVVNfQVNTT0NJQVRJTkcgfAogCQkJCQkgICAgICBTVEFUVVNfUk9BTUlORyB8CkBAIC02MjY3LDcgKzYyNzcsNyBAQAogCX0KIH0KIAotc3RhdGljIGludCBpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihzdHJ1Y3QgaXB3X3ByaXYgKnByaXYsIGludCB0eXBlKQorc3RhdGljIGludCBpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihzdHJ1Y3QgaXB3X3ByaXYgKnByaXYsIGludCB0eXBlLCBpbnQgZGlyZWN0KQogewogCXN0cnVjdCBpcHdfc2Nhbl9yZXF1ZXN0X2V4dCBzY2FuOwogCWludCBlcnIgPSAwLCBzY2FuX3R5cGU7CkBAIC02Mjc4LDIyICs2Mjg4LDMxIEBACiAKIAltdXRleF9sb2NrKCZwcml2LT5tdXRleCk7CiAKKwlpZiAoZGlyZWN0ICYmIChwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkX2xlbiA9PSAwKSkgeworCQlJUFdfREVCVUdfSEMoIkRpcmVjdCBzY2FuIHJlcXVlc3RlZCBidXQgbm8gU1NJRCB0byBzY2FuIGZvclxuIik7CisJCXByaXYtPnN0YXR1cyAmPSB+U1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkc7CisJCWdvdG8gZG9uZTsKKwl9CisKIAlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX1NDQU5OSU5HKSB7Ci0JCUlQV19ERUJVR19IQygiQ29uY3VycmVudCBzY2FuIHJlcXVlc3RlZC4gIElnbm9yaW5nLlxuIik7Ci0JCXByaXYtPnN0YXR1cyB8PSBTVEFUVVNfU0NBTl9QRU5ESU5HOworCQlJUFdfREVCVUdfSEMoIkNvbmN1cnJlbnQgc2NhbiByZXF1ZXN0ZWQuICBRdWV1aW5nLlxuIik7CisJCXByaXYtPnN0YXR1cyB8PSBkaXJlY3QgPyBTVEFUVVNfRElSRUNUX1NDQU5fUEVORElORyA6CisJCQkJCVNUQVRVU19TQ0FOX1BFTkRJTkc7CiAJCWdvdG8gZG9uZTsKIAl9CiAKIAlpZiAoIShwcml2LT5zdGF0dXMgJiBTVEFUVVNfU0NBTl9GT1JDRUQpICYmCiAJICAgIHByaXYtPnN0YXR1cyAmIFNUQVRVU19TQ0FOX0FCT1JUSU5HKSB7CiAJCUlQV19ERUJVR19IQygiU2NhbiByZXF1ZXN0IHdoaWxlIGFib3J0IHBlbmRpbmcuICBRdWV1aW5nLlxuIik7Ci0JCXByaXYtPnN0YXR1cyB8PSBTVEFUVVNfU0NBTl9QRU5ESU5HOworCQlwcml2LT5zdGF0dXMgfD0gZGlyZWN0ID8gU1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkcgOgorCQkJCQlTVEFUVVNfU0NBTl9QRU5ESU5HOwogCQlnb3RvIGRvbmU7CiAJfQogCiAJaWYgKHByaXYtPnN0YXR1cyAmIFNUQVRVU19SRl9LSUxMX01BU0spIHsKLQkJSVBXX0RFQlVHX0hDKCJBYm9ydGluZyBzY2FuIGR1ZSB0byBSRiBLaWxsIGFjdGl2YXRpb25cbiIpOwotCQlwcml2LT5zdGF0dXMgfD0gU1RBVFVTX1NDQU5fUEVORElORzsKKwkJSVBXX0RFQlVHX0hDKCJRdWV1aW5nIHNjYW4gZHVlIHRvIFJGIEtpbGwgYWN0aXZhdGlvblxuIik7CisJCXByaXYtPnN0YXR1cyB8PSBkaXJlY3QgPyBTVEFUVVNfRElSRUNUX1NDQU5fUEVORElORyA6CisJCQkJCVNUQVRVU19TQ0FOX1BFTkRJTkc7CiAJCWdvdG8gZG9uZTsKIAl9CiAKQEAgLTYzMjEsNiArNjM0MCw3IEBACiAJCWNwdV90b19sZTE2KDIwKTsKIAogICAJc2Nhbi5kd2VsbF90aW1lW0lQV19TQ0FOX1BBU1NJVkVfRlVMTF9EV0VMTF9TQ0FOXSA9IGNwdV90b19sZTE2KDEyMCk7CisJc2Nhbi5kd2VsbF90aW1lW0lQV19TQ0FOX0FDVElWRV9ESVJFQ1RfU0NBTl0gPSBjcHVfdG9fbGUxNigyMCk7CiAKICNpZmRlZiBDT05GSUdfSVBXMjIwMF9NT05JVE9SCiAJaWYgKHByaXYtPmllZWUtPml3X21vZGUgPT0gSVdfTU9ERV9NT05JVE9SKSB7CkBAIC02MzYwLDEzICs2MzgwLDIzIEBACiAJCQljcHVfdG9fbGUxNigyMDAwKTsKIAl9IGVsc2UgewogI2VuZGlmCQkJCS8qIENPTkZJR19JUFcyMjAwX01PTklUT1IgKi8KLQkJLyogSWYgd2UgYXJlIHJvYW1pbmcsIHRoZW4gbWFrZSB0aGlzIGEgZGlyZWN0ZWQgc2NhbiBmb3IgdGhlCi0JCSAqIGN1cnJlbnQgbmV0d29yay4gIE90aGVyd2lzZSwgZW5zdXJlIHRoYXQgZXZlcnkgb3RoZXIgc2NhbgotCQkgKiBpcyBhIGZhc3QgY2hhbm5lbCBob3Agc2NhbiAqLwotCQlpZiAoKHByaXYtPnN0YXR1cyAmIFNUQVRVU19ST0FNSU5HKQotCQkgICAgfHwgKCEocHJpdi0+c3RhdHVzICYgU1RBVFVTX0FTU09DSUFURUQpCi0JCQkmJiAocHJpdi0+Y29uZmlnICYgQ0ZHX1NUQVRJQ19FU1NJRCkKLQkJCSYmIChsZTMyX3RvX2NwdShzY2FuLmZ1bGxfc2Nhbl9pbmRleCkgJSAyKSkpIHsKKwkJLyogSG9ub3IgZGlyZWN0IHNjYW5zIGZpcnN0LCBvdGhlcndpc2UgaWYgd2UgYXJlIHJvYW1pbmcgbWFrZQorCQkgKiB0aGlzIGEgZGlyZWN0IHNjYW4gZm9yIHRoZSBjdXJyZW50IG5ldHdvcmsuICBGaW5hbGx5LAorCQkgKiBlbnN1cmUgdGhhdCBldmVyeSBvdGhlciBzY2FuIGlzIGEgZmFzdCBjaGFubmVsIGhvcCBzY2FuICovCisJCWlmIChkaXJlY3QpIHsKKwkJCWVyciA9IGlwd19zZW5kX3NzaWQocHJpdiwgcHJpdi0+ZGlyZWN0X3NjYW5fc3NpZCwKKwkJCSAgICAgICAgICAgICAgICAgICAgcHJpdi0+ZGlyZWN0X3NjYW5fc3NpZF9sZW4pOworCQkJaWYgKGVycikgeworCQkJCUlQV19ERUJVR19IQygiQXR0ZW1wdCB0byBzZW5kIFNTSUQgY29tbWFuZCAgIgorCQkJCQkgICAgICJmYWlsZWRcbiIpOworCQkJCWdvdG8gZG9uZTsKKwkJCX0KKworCQkJc2Nhbl90eXBlID0gSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9BTkRfRElSRUNUX1NDQU47CisJCX0gZWxzZSBpZiAoKHByaXYtPnN0YXR1cyAmIFNUQVRVU19ST0FNSU5HKQorCQkJICAgfHwgKCEocHJpdi0+c3RhdHVzICYgU1RBVFVTX0FTU09DSUFURUQpCisJCQkgICAgICAgJiYgKHByaXYtPmNvbmZpZyAmIENGR19TVEFUSUNfRVNTSUQpCisJCQkgICAgICAgJiYgKGxlMzJfdG9fY3B1KHNjYW4uZnVsbF9zY2FuX2luZGV4KSAlIDIpKSkgewogCQkJZXJyID0gaXB3X3NlbmRfc3NpZChwcml2LCBwcml2LT5lc3NpZCwgcHJpdi0+ZXNzaWRfbGVuKTsKIAkJCWlmIChlcnIpIHsKIAkJCQlJUFdfREVCVUdfSEMoIkF0dGVtcHQgdG8gc2VuZCBTU0lEIGNvbW1hbmQgIgpAQCAtNjM5MSw3ICs2NDIxLDEyIEBACiAJfQogCiAJcHJpdi0+c3RhdHVzIHw9IFNUQVRVU19TQ0FOTklORzsKLQlwcml2LT5zdGF0dXMgJj0gflNUQVRVU19TQ0FOX1BFTkRJTkc7CisJaWYgKGRpcmVjdCkgeworCQlwcml2LT5zdGF0dXMgJj0gflNUQVRVU19ESVJFQ1RfU0NBTl9QRU5ESU5HOworCQlwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkX2xlbiA9IDA7CisJfSBlbHNlCisJCXByaXYtPnN0YXR1cyAmPSB+U1RBVFVTX1NDQU5fUEVORElORzsKKwogCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsICZwcml2LT5zY2FuX2NoZWNrLAogCQkJICAgSVBXX1NDQU5fQ0hFQ0tfV0FUQ0hET0cpOwogZG9uZToKQEAgLTY0MDIsMTUgKzY0MzcsMjIgQEAKIHN0YXRpYyB2b2lkIGlwd19yZXF1ZXN0X3Bhc3NpdmVfc2NhbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGlwd19wcml2ICpwcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBpcHdfcHJpdiwgcmVxdWVzdF9wYXNzaXZlX3NjYW4pOwotICAJaXB3X3JlcXVlc3Rfc2Nhbl9oZWxwZXIocHJpdiwgSVdfU0NBTl9UWVBFX1BBU1NJVkUpOworCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGlwd19wcml2LCByZXF1ZXN0X3Bhc3NpdmVfc2Nhbi53b3JrKTsKKwlpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihwcml2LCBJV19TQ0FOX1RZUEVfUEFTU0lWRSwgMCk7CiB9CiAKIHN0YXRpYyB2b2lkIGlwd19yZXF1ZXN0X3NjYW4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBpcHdfcHJpdiAqcHJpdiA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXB3X3ByaXYsIHJlcXVlc3Rfc2Nhbi53b3JrKTsKLQlpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihwcml2LCBJV19TQ0FOX1RZUEVfQUNUSVZFKTsKKwlpcHdfcmVxdWVzdF9zY2FuX2hlbHBlcihwcml2LCBJV19TQ0FOX1RZUEVfQUNUSVZFLCAwKTsKK30KKworc3RhdGljIHZvaWQgaXB3X3JlcXVlc3RfZGlyZWN0X3NjYW4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBpcHdfcHJpdiAqcHJpdiA9CisJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXB3X3ByaXYsIHJlcXVlc3RfZGlyZWN0X3NjYW4ud29yayk7CisJaXB3X3JlcXVlc3Rfc2Nhbl9oZWxwZXIocHJpdiwgSVdfU0NBTl9UWVBFX0FDVElWRSwgMSk7CiB9CiAKIHN0YXRpYyB2b2lkIGlwd19iZ19hYm9ydF9zY2FuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTc1NTgsOCArNzYwMCwzMSBAQAogCSAgICBwcml2LT5pZWVlLT5pd19tb2RlID09IElXX01PREVfQURIT0MgJiYKIAkgICAgcHJpdi0+Y29uZmlnICYgQ0ZHX0FESE9DX0NSRUFURSAmJgogCSAgICBwcml2LT5jb25maWcgJiBDRkdfU1RBVElDX0VTU0lEICYmCi0JICAgIHByaXYtPmNvbmZpZyAmIENGR19TVEFUSUNfQ0hBTk5FTCAmJgotCSAgICAhbGlzdF9lbXB0eSgmcHJpdi0+aWVlZS0+bmV0d29ya19mcmVlX2xpc3QpKSB7CisJICAgIHByaXYtPmNvbmZpZyAmIENGR19TVEFUSUNfQ0hBTk5FTCkgeworCQkvKiBVc2Ugb2xkZXN0IG5ldHdvcmsgaWYgdGhlIGZyZWUgbGlzdCBpcyBlbXB0eSAqLworCQlpZiAobGlzdF9lbXB0eSgmcHJpdi0+aWVlZS0+bmV0d29ya19mcmVlX2xpc3QpKSB7CisJCQlzdHJ1Y3QgaWVlZTgwMjExX25ldHdvcmsgKm9sZGVzdCA9IE5VTEw7CisJCQlzdHJ1Y3QgaWVlZTgwMjExX25ldHdvcmsgKnRhcmdldDsKKwkJCURFQ0xBUkVfTUFDX0JVRihtYWMpOworCisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRhcmdldCwgJnByaXYtPmllZWUtPm5ldHdvcmtfbGlzdCwgbGlzdCkgeworCQkJCWlmICgob2xkZXN0ID09IE5VTEwpIHx8CisJCQkJICAgICh0YXJnZXQtPmxhc3Rfc2Nhbm5lZCA8IG9sZGVzdC0+bGFzdF9zY2FubmVkKSkKKwkJCQkJb2xkZXN0ID0gdGFyZ2V0OworCQkJfQorCisJCQkvKiBJZiB0aGVyZSBhcmUgbm8gbW9yZSBzbG90cywgZXhwaXJlIHRoZSBvbGRlc3QgKi8KKwkJCWxpc3RfZGVsKCZvbGRlc3QtPmxpc3QpOworCQkJdGFyZ2V0ID0gb2xkZXN0OworCQkJSVBXX0RFQlVHX0FTU09DKCJFeHBpcmVkICclcycgKCVzKSBmcm9tICIKKwkJCQkJIm5ldHdvcmsgbGlzdC5cbiIsCisJCQkJCWVzY2FwZV9lc3NpZCh0YXJnZXQtPnNzaWQsCisJCQkJCQkgICAgIHRhcmdldC0+c3NpZF9sZW4pLAorCQkJCQlwcmludF9tYWMobWFjLCB0YXJnZXQtPmJzc2lkKSk7CisJCQlsaXN0X2FkZF90YWlsKCZ0YXJnZXQtPmxpc3QsCisJCQkJICAgICAgJnByaXYtPmllZWUtPm5ldHdvcmtfZnJlZV9saXN0KTsKKwkJfQorCiAJCWVsZW1lbnQgPSBwcml2LT5pZWVlLT5uZXR3b3JrX2ZyZWVfbGlzdC5uZXh0OwogCQluZXR3b3JrID0gbGlzdF9lbnRyeShlbGVtZW50LCBzdHJ1Y3QgaWVlZTgwMjExX25ldHdvcmssIGxpc3QpOwogCQlpcHdfYWRob2NfY3JlYXRlKHByaXYsIG5ldHdvcmspOwpAQCAtOTQ1NCw5OSArOTUxOSwzOCBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGlwd19yZXF1ZXN0X2RpcmVjdF9zY2FuKHN0cnVjdCBpcHdfcHJpdiAqcHJpdiwgY2hhciAqZXNzaWQsCi0JCQkJICAgaW50IGVzc2lkX2xlbikKLXsKLQlzdHJ1Y3QgaXB3X3NjYW5fcmVxdWVzdF9leHQgc2NhbjsKLQlpbnQgZXJyID0gMCwgc2Nhbl90eXBlOwotCi0JaWYgKCEocHJpdi0+c3RhdHVzICYgU1RBVFVTX0lOSVQpIHx8Ci0JICAgIChwcml2LT5zdGF0dXMgJiBTVEFUVVNfRVhJVF9QRU5ESU5HKSkKLQkJcmV0dXJuIDA7Ci0KLQltdXRleF9sb2NrKCZwcml2LT5tdXRleCk7Ci0KLQlpZiAocHJpdi0+c3RhdHVzICYgU1RBVFVTX1JGX0tJTExfTUFTSykgewotCQlJUFdfREVCVUdfSEMoIkFib3J0aW5nIHNjYW4gZHVlIHRvIFJGIGtpbGwgYWN0aXZhdGlvblxuIik7Ci0JCXByaXYtPnN0YXR1cyB8PSBTVEFUVVNfU0NBTl9QRU5ESU5HOwotCQlnb3RvIGRvbmU7Ci0JfQotCi0JSVBXX0RFQlVHX0hDKCJzdGFydGluZyByZXF1ZXN0IGRpcmVjdCBzY2FuIVxuIik7Ci0KLQlpZiAocHJpdi0+c3RhdHVzICYgKFNUQVRVU19TQ0FOTklORyB8IFNUQVRVU19TQ0FOX0FCT1JUSU5HKSkgewotCQkvKiBXZSBzaG91bGQgbm90IHNsZWVwIGhlcmU7IG90aGVyd2lzZSB3ZSB3aWxsIGJsb2NrIG1vc3QKLQkJICogb2YgdGhlIHN5c3RlbSAoZm9yIGluc3RhbmNlLCB3ZSBob2xkIHJ0bmxfbG9jayB3aGVuIHdlCi0JCSAqIGdldCBoZXJlKS4KLQkJICovCi0JCWVyciA9IC1FQUdBSU47Ci0JCWdvdG8gZG9uZTsKLQl9Ci0JbWVtc2V0KCZzY2FuLCAwLCBzaXplb2Yoc2NhbikpOwotCi0JaWYgKHByaXYtPmNvbmZpZyAmIENGR19TUEVFRF9TQ0FOKQotCQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9TQ0FOXSA9Ci0JCSAgICBjcHVfdG9fbGUxNigzMCk7Ci0JZWxzZQotCQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9TQ0FOXSA9Ci0JCSAgICBjcHVfdG9fbGUxNigyMCk7Ci0KLQlzY2FuLmR3ZWxsX3RpbWVbSVBXX1NDQU5fQUNUSVZFX0JST0FEQ0FTVF9BTkRfRElSRUNUX1NDQU5dID0KLQkgICAgY3B1X3RvX2xlMTYoMjApOwotCXNjYW4uZHdlbGxfdGltZVtJUFdfU0NBTl9QQVNTSVZFX0ZVTExfRFdFTExfU0NBTl0gPSBjcHVfdG9fbGUxNigxMjApOwotCXNjYW4uZHdlbGxfdGltZVtJUFdfU0NBTl9BQ1RJVkVfRElSRUNUX1NDQU5dID0gY3B1X3RvX2xlMTYoMjApOwotCi0Jc2Nhbi5mdWxsX3NjYW5faW5kZXggPSBjcHVfdG9fbGUzMihpZWVlODAyMTFfZ2V0X3NjYW5zKHByaXYtPmllZWUpKTsKLQotCWVyciA9IGlwd19zZW5kX3NzaWQocHJpdiwgZXNzaWQsIGVzc2lkX2xlbik7Ci0JaWYgKGVycikgewotCQlJUFdfREVCVUdfSEMoIkF0dGVtcHQgdG8gc2VuZCBTU0lEIGNvbW1hbmQgZmFpbGVkXG4iKTsKLQkJZ290byBkb25lOwotCX0KLQlzY2FuX3R5cGUgPSBJUFdfU0NBTl9BQ1RJVkVfQlJPQURDQVNUX0FORF9ESVJFQ1RfU0NBTjsKLQotCWlwd19hZGRfc2Nhbl9jaGFubmVscyhwcml2LCAmc2Nhbiwgc2Nhbl90eXBlKTsKLQotCWVyciA9IGlwd19zZW5kX3NjYW5fcmVxdWVzdF9leHQocHJpdiwgJnNjYW4pOwotCWlmIChlcnIpIHsKLQkJSVBXX0RFQlVHX0hDKCJTZW5kaW5nIHNjYW4gY29tbWFuZCBmYWlsZWQ6ICUwOFhcbiIsIGVycik7Ci0JCWdvdG8gZG9uZTsKLQl9Ci0KLQlwcml2LT5zdGF0dXMgfD0gU1RBVFVTX1NDQU5OSU5HOwotCi0gICAgICBkb25lOgotCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOwotCXJldHVybiBlcnI7Ci19Ci0KIHN0YXRpYyBpbnQgaXB3X3d4X3NldF9zY2FuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3QgaXdfcmVxdWVzdF9pbmZvICppbmZvLAogCQkJICAgdW5pb24gaXdyZXFfZGF0YSAqd3JxdSwgY2hhciAqZXh0cmEpCiB7CiAJc3RydWN0IGlwd19wcml2ICpwcml2ID0gaWVlZTgwMjExX3ByaXYoZGV2KTsKIAlzdHJ1Y3QgaXdfc2Nhbl9yZXEgKnJlcSA9IChzdHJ1Y3QgaXdfc2Nhbl9yZXEgKilleHRyYTsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrICp3b3JrID0gTlVMTDsKIAogCW11dGV4X2xvY2soJnByaXYtPm11dGV4KTsKKwogCXByaXYtPnVzZXJfcmVxdWVzdGVkX3NjYW4gPSAxOwotCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOwogCiAJaWYgKHdycXUtPmRhdGEubGVuZ3RoID09IHNpemVvZihzdHJ1Y3QgaXdfc2Nhbl9yZXEpKSB7CiAJCWlmICh3cnF1LT5kYXRhLmZsYWdzICYgSVdfU0NBTl9USElTX0VTU0lEKSB7Ci0JCQlpcHdfcmVxdWVzdF9kaXJlY3Rfc2Nhbihwcml2LCByZXEtPmVzc2lkLAotCQkJCQkJcmVxLT5lc3NpZF9sZW4pOwotCQkJcmV0dXJuIDA7CisJCQlpbnQgbGVuID0gbWluKChpbnQpcmVxLT5lc3NpZF9sZW4sCisJCQkgICAgICAgICAgICAgIChpbnQpc2l6ZW9mKHByaXYtPmRpcmVjdF9zY2FuX3NzaWQpKTsKKwkJCW1lbWNweShwcml2LT5kaXJlY3Rfc2Nhbl9zc2lkLCByZXEtPmVzc2lkLCBsZW4pOworCQkJcHJpdi0+ZGlyZWN0X3NjYW5fc3NpZF9sZW4gPSBsZW47CisJCQl3b3JrID0gJnByaXYtPnJlcXVlc3RfZGlyZWN0X3NjYW47CisJCX0gZWxzZSBpZiAocmVxLT5zY2FuX3R5cGUgPT0gSVdfU0NBTl9UWVBFX1BBU1NJVkUpIHsKKwkJCXdvcmsgPSAmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW47CiAJCX0KLQkJaWYgKHJlcS0+c2Nhbl90eXBlID09IElXX1NDQU5fVFlQRV9QQVNTSVZFKSB7Ci0JCQlxdWV1ZV93b3JrKHByaXYtPndvcmtxdWV1ZSwKLQkJCQkgICAmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4pOwotCQkJcmV0dXJuIDA7Ci0JCX0KKwl9IGVsc2UgeworCQkvKiBOb3JtYWwgYWN0aXZlIGJyb2FkY2FzdCBzY2FuICovCisJCXdvcmsgPSAmcHJpdi0+cmVxdWVzdF9zY2FuOwogCX0KIAorCW11dGV4X3VubG9jaygmcHJpdi0+bXV0ZXgpOworCiAJSVBXX0RFQlVHX1dYKCJTdGFydCBzY2FuXG4iKTsKIAotCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsICZwcml2LT5yZXF1ZXN0X3NjYW4sIDApOworCXF1ZXVlX2RlbGF5ZWRfd29yayhwcml2LT53b3JrcXVldWUsIHdvcmssIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDcwOCw2ICsxMDcxMiw4IEBACiAJfQogCiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X2RpcmVjdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9ldmVudCk7CiAJaXB3X3Jlc2V0X3N0YXRzKHByaXYpOwogCS8qIEVuc3VyZSB0aGUgcmF0ZSBpcyB1cGRhdGVkIGltbWVkaWF0ZWx5ICovCkBAIC0xMDczOCw2ICsxMDc0NCw4IEBACiAKIAkvKiBDYW5jZWwgYW55IHF1ZXVlZCB3b3JrIC4uLiAqLwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnJlcXVlc3Rfc2Nhbik7CisJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2Nhbik7CisJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4pOwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPmFkaG9jX2NoZWNrKTsKIAljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5nYXRoZXJfc3RhdHMpOwogCkBAIC0xMDc3Nyw4ICsxMDc4NSw5IEBACiAJSU5JVF9XT1JLKCZwcml2LT51cCwgaXB3X2JnX3VwKTsKIAlJTklUX1dPUksoJnByaXYtPmRvd24sIGlwd19iZ19kb3duKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cmVxdWVzdF9zY2FuLCBpcHdfcmVxdWVzdF9zY2FuKTsKKwlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+cmVxdWVzdF9kaXJlY3Rfc2NhbiwgaXB3X3JlcXVlc3RfZGlyZWN0X3NjYW4pOworCUlOSVRfREVMQVlFRF9XT1JLKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2NhbiwgaXB3X3JlcXVlc3RfcGFzc2l2ZV9zY2FuKTsKIAlJTklUX0RFTEFZRURfV09SSygmcHJpdi0+c2Nhbl9ldmVudCwgaXB3X3NjYW5fZXZlbnQpOwotCUlOSVRfV09SSygmcHJpdi0+cmVxdWVzdF9wYXNzaXZlX3NjYW4sIGlwd19yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJSU5JVF9ERUxBWUVEX1dPUksoJnByaXYtPmdhdGhlcl9zdGF0cywgaXB3X2JnX2dhdGhlcl9zdGF0cyk7CiAJSU5JVF9XT1JLKCZwcml2LT5hYm9ydF9zY2FuLCBpcHdfYmdfYWJvcnRfc2Nhbik7CiAJSU5JVF9XT1JLKCZwcml2LT5yb2FtLCBpcHdfYmdfcm9hbSk7CkBAIC0xMTgxMiw2ICsxMTgyMSw4IEBACiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+YWRob2NfY2hlY2spOwogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPmdhdGhlcl9zdGF0cyk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmVxdWVzdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X2RpcmVjdF9zY2FuKTsKKwljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5yZXF1ZXN0X3Bhc3NpdmVfc2Nhbik7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9ldmVudCk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+cmZfa2lsbCk7CiAJY2FuY2VsX2RlbGF5ZWRfd29yaygmcHJpdi0+c2Nhbl9jaGVjayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pcHcyMjAwLmgKaW5kZXggY2QzMjk1Yi4uZDRhYjI4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXB3MjIwMC5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2lwdzIyMDAuaApAQCAtMTAzNyw2ICsxMDM3LDcgQEAKICNkZWZpbmUgU1RBVFVTX0RJU0FTU09DX1BFTkRJTkcgKDE8PDEyKQogI2RlZmluZSBTVEFUVVNfU1RBVEVfUEVORElORyAgICAoMTw8MTMpCiAKKyNkZWZpbmUgU1RBVFVTX0RJUkVDVF9TQ0FOX1BFTkRJTkcgKDE8PDE5KQogI2RlZmluZSBTVEFUVVNfU0NBTl9QRU5ESU5HICAgICAoMTw8MjApCiAjZGVmaW5lIFNUQVRVU19TQ0FOTklORyAgICAgICAgICgxPDwyMSkKICNkZWZpbmUgU1RBVFVTX1NDQU5fQUJPUlRJTkcgICAgKDE8PDIyKQpAQCAtMTI5Miw2ICsxMjkzLDggQEAKIAlzdHJ1Y3QgaXdfcHVibGljX2RhdGEgd2lyZWxlc3NfZGF0YTsKIAogCWludCB1c2VyX3JlcXVlc3RlZF9zY2FuOworCXU4IGRpcmVjdF9zY2FuX3NzaWRbSVdfRVNTSURfTUFYX1NJWkVdOworCXU4IGRpcmVjdF9zY2FuX3NzaWRfbGVuOwogCiAJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxdWV1ZTsKIApAQCAtMTMwMSw4ICsxMzA0LDkgQEAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgc3lzdGVtX2NvbmZpZzsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgcnhfcmVwbGVuaXNoOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVxdWVzdF9zY2FuOworCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVxdWVzdF9kaXJlY3Rfc2NhbjsKKwlzdHJ1Y3QgZGVsYXllZF93b3JrIHJlcXVlc3RfcGFzc2l2ZV9zY2FuOwogCXN0cnVjdCBkZWxheWVkX3dvcmsgc2Nhbl9ldmVudDsKLSAgCXN0cnVjdCB3b3JrX3N0cnVjdCByZXF1ZXN0X3Bhc3NpdmVfc2NhbjsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgYWRhcHRlcl9yZXN0YXJ0OwogCXN0cnVjdCBkZWxheWVkX3dvcmsgcmZfa2lsbDsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LWxlZC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMzk0NS1sZWQuYwppbmRleCBkMjAwZDA4Li44YjE1MjhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LWxlZC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUtbGVkLmMKQEAgLTIyOSwxNCArMjI5LDE1IEBACiAJbGVkLT5sZWRfZGV2LmJyaWdodG5lc3Nfc2V0ID0gaXdsMzk0NV9sZWRfYnJpZ2h0bmVzc19zZXQ7CiAJbGVkLT5sZWRfZGV2LmRlZmF1bHRfdHJpZ2dlciA9IHRyaWdnZXI7CiAKKwlsZWQtPnByaXYgPSBwcml2OworCWxlZC0+dHlwZSA9IHR5cGU7CisKIAlyZXQgPSBsZWRfY2xhc3NkZXZfcmVnaXN0ZXIoZGV2aWNlLCAmbGVkLT5sZWRfZGV2KTsKIAlpZiAocmV0KSB7CiAJCUlXTF9FUlJPUigiRXJyb3I6IGZhaWxlZCB0byByZWdpc3RlciBsZWQgaGFuZGxlci5cbiIpOwogCQlyZXR1cm4gcmV0OwogCX0KIAotCWxlZC0+cHJpdiA9IHByaXY7Ci0JbGVkLT50eXBlID0gdHlwZTsKIAlsZWQtPnJlZ2lzdGVyZWQgPSAxOwogCiAJaWYgKHNldF9sZWQgJiYgbGVkLT5sZWRfb24pCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC0zOTQ1LmMKaW5kZXggNjJhM2Q4Zi4uNTVhYzg1MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtMzk0NS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTM5NDUuYwpAQCAtNDQ5LDcgKzQ0OSw3IEBACiAKIAlpZiAocHJpbnRfc3VtbWFyeSkgewogCQljaGFyICp0aXRsZTsKLQkJdTMyIHJhdGU7CisJCWludCByYXRlOwogCiAJCWlmIChodW5kcmVkKQogCQkJdGl0bGUgPSAiMTAwRnJhbWVzIjsKQEAgLTQ4Nyw3ICs0ODcsNyBAQAogCQkgKiAgICBidXQgeW91IGNhbiBoYWNrIGl0IHRvIHNob3cgbW9yZSwgaWYgeW91J2QgbGlrZSB0by4gKi8KIAkJaWYgKGRhdGFmcmFtZSkKIAkJCUlXTF9ERUJVR19SWCgiJXM6IG1oZD0weCUwNHgsIGRzdD0weCUwMngsICIKLQkJCQkgICAgICJsZW49JXUsIHJzc2k9JWQsIGNobmw9JWQsIHJhdGU9JXUsIFxuIiwKKwkJCQkgICAgICJsZW49JXUsIHJzc2k9JWQsIGNobmw9JWQsIHJhdGU9JWQsIFxuIiwKIAkJCQkgICAgIHRpdGxlLCBmYywgaGVhZGVyLT5hZGRyMVs1XSwKIAkJCQkgICAgIGxlbmd0aCwgcnNzaSwgY2hhbm5lbCwgcmF0ZSk7CiAJCWVsc2UgewpAQCAtNTg4LDggKzU4OCwxMiBAQAogCiAJaWYgKHJhdGUgPT0gLTEpCiAJCWl3bDM5NDVfcnQtPnJ0X3JhdGUgPSAwOwotCWVsc2UKKwllbHNlIHsKKwkJaWYgKHN0YXRzLT5iYW5kID09IElFRUU4MDIxMV9CQU5EXzVHSFopCisJCQlyYXRlICs9IElXTF9GSVJTVF9PRkRNX1JBVEU7CisKIAkJaXdsMzk0NV9ydC0+cnRfcmF0ZSA9IGl3bDM5NDVfcmF0ZXNbcmF0ZV0uaWVlZTsKKwl9CiAKIAkvKiBhbnRlbm5hIG51bWJlciAqLwogCWFudGVubmEgPSBwaHlfZmxhZ3NfaHcgJiBSWF9SRVNfUEhZX0ZMQUdTX0FOVEVOTkFfTVNLOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS1ycy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS1ycy5jCmluZGV4IGM5ODQ3YjEuLjNhN2YwY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTQ5NjUtcnMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC00OTY1LXJzLmMKQEAgLTExNjIsNyArMTE2Miw2IEBACiAKIAkJCS8qIEhpZ2hlciByYXRlIG5vdCBhdmFpbGFibGUsIHVzZSB0aGUgb3JpZ2luYWwgKi8KIAkJCX0gZWxzZSB7Ci0JCQkJbmV3X3JhdGUgPSByYXRlOwogCQkJCWJyZWFrOwogCQkJfQogCQl9CkBAIC0yMDA5LDcgKzIwMDgsNyBAQAogCSAqIDIpICBOb3QganVzdCBmaW5pc2hpbmcgdXAgYSBzZWFyY2gKIAkgKiAzKSAgQWxsb3dpbmcgYSBuZXcgc2VhcmNoCiAJICovCi0JaWYgKCF1cGRhdGVfbHEgJiYgIWRvbmVfc2VhcmNoICYmICFscV9zdGEtPnN0YXlfaW5fdGJsKSB7CisJaWYgKCF1cGRhdGVfbHEgJiYgIWRvbmVfc2VhcmNoICYmICFscV9zdGEtPnN0YXlfaW5fdGJsICYmIHdpbmRvdy0+Y291bnRlcikgewogCQkvKiBTYXZlIGN1cnJlbnQgdGhyb3VnaHB1dCB0byBjb21wYXJlIHdpdGggInNlYXJjaCIgdGhyb3VnaHB1dCovCiAJCWxxX3N0YS0+bGFzdF90cHQgPSBjdXJyZW50X3RwdDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtNDk2NS5jCmluZGV4IGJmMTllYjguLmRlMzMwYWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLTQ5NjUuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC00OTY1LmMKQEAgLTM1MjgsOCArMzUyOCwxMiBAQAogCiAJaWYgKHJhdGUgPT0gLTEpCiAJCWl3bDQ5NjVfcnQtPnJ0X3JhdGUgPSAwOwotCWVsc2UKKwllbHNlIHsKKwkJaWYgKHN0YXRzLT5iYW5kID09IElFRUU4MDIxMV9CQU5EXzVHSFopCisJCQlyYXRlICs9IElXTF9GSVJTVF9PRkRNX1JBVEU7CisKIAkJaXdsNDk2NV9ydC0+cnRfcmF0ZSA9IGl3bDQ5NjVfcmF0ZXNbcmF0ZV0uaWVlZTsKKwl9CiAKIAkvKgogCSAqICJhbnRlbm5hIG51bWJlciIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDM5NDUtYmFzZS5jCmluZGV4IDEzOTI1YjYuLjYwMjdlMTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsMzk0NS1iYXNlLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wzOTQ1LWJhc2UuYwpAQCAtMjIyNyw3ICsyMjI3LDEwIEBACiAJfQogCiAJSVdMX0RFQlVHX0lORk8oIlN0YXJ0aW5nIHNjYW4uLi5cbiIpOwotCXByaXYtPnNjYW5fYmFuZHMgPSAyOworCWlmIChwcml2LT5jZmctPnNrdSAmIElXTF9TS1VfRykKKwkJcHJpdi0+c2Nhbl9iYW5kcyB8PSBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWik7CisJaWYgKHByaXYtPmNmZy0+c2t1ICYgSVdMX1NLVV9BKQorCQlwcml2LT5zY2FuX2JhbmRzIHw9IEJJVChJRUVFODAyMTFfQkFORF81R0haKTsKIAlzZXRfYml0KFNUQVRVU19TQ0FOTklORywgJnByaXYtPnN0YXR1cyk7CiAJcHJpdi0+c2Nhbl9zdGFydCA9IGppZmZpZXM7CiAJcHJpdi0+c2Nhbl9wYXNzX3N0YXJ0ID0gcHJpdi0+c2Nhbl9zdGFydDsKQEAgLTMzNTIsMTMgKzMzNTUsMTggQEAKIAljYW5jZWxfZGVsYXllZF93b3JrKCZwcml2LT5zY2FuX2NoZWNrKTsKIAogCUlXTF9ERUJVR19JTkZPKCJTY2FuIHBhc3Mgb24gJXNHSHogdG9vayAlZG1zXG4iLAotCQkgICAgICAgKHByaXYtPnNjYW5fYmFuZHMgPT0gMikgPyAiMi40IiA6ICI1LjIiLAorCQkgICAgICAgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpID8KKwkJCQkJCQkiMi40IiA6ICI1LjIiLAogCQkgICAgICAgamlmZmllc190b19tc2VjcyhlbGFwc2VkX2ppZmZpZXMKIAkJCQkJKHByaXYtPnNjYW5fcGFzc19zdGFydCwgamlmZmllcykpKTsKIAotCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0Ci0JICogb2YgcGVuZGluZyBiYW5kcyB0byBzY2FuICovCi0JcHJpdi0+c2Nhbl9iYW5kcy0tOworCS8qIFJlbW92ZSB0aGlzIHNjYW5uZWQgYmFuZCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcKKwkgKiBiYW5kcyB0byBzY2FuLCBiYW5kIEcgcHJlY2VkZXMgQSBpbiBvcmRlciBvZiBzY2FubmluZworCSAqIGFzIHNlZW4gaW4gaXdsMzk0NV9iZ19yZXF1ZXN0X3NjYW4gKi8KKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyAmPSB+QklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWVsc2UgaWYgKHByaXYtPnNjYW5fYmFuZHMgJiAgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAKIAkvKiBJZiBhIHJlcXVlc3QgdG8gYWJvcnQgd2FzIGdpdmVuLCBvciB0aGUgc2NhbiBkaWQgbm90IHN1Y2NlZWQKIAkgKiB0aGVuIHdlIHJlc2V0IHRoZSBzY2FuIHN0YXRlIG1hY2hpbmUgYW5kIHRlcm1pbmF0ZSwKQEAgLTQ5NzIsNyArNDk4MCw3IEBACiAKIAkJY2hfaW5mbyA9IGl3bDM5NDVfZ2V0X2NoYW5uZWxfaW5mbyhwcml2LCBiYW5kLCBzY2FuX2NoLT5jaGFubmVsKTsKIAkJaWYgKCFpc19jaGFubmVsX3ZhbGlkKGNoX2luZm8pKSB7Ci0JCQlJV0xfREVCVUdfU0NBTigiQ2hhbm5lbCAlZCBpcyBJTlZBTElEIGZvciB0aGlzIFNLVS5cbiIsCisJCQlJV0xfREVCVUdfU0NBTigiQ2hhbm5lbCAlZCBpcyBJTlZBTElEIGZvciB0aGlzIGJhbmQuXG4iLAogCQkJCSAgICAgICBzY2FuX2NoLT5jaGFubmVsKTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC02MzE1LDIxICs2MzIzLDE2IEBACiAKIAkvKiBmbGFncyArIHJhdGUgc2VsZWN0aW9uICovCiAKLQlzd2l0Y2ggKHByaXYtPnNjYW5fYmFuZHMpIHsKLQljYXNlIDI6CisJaWYgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpIHsKIAkJc2Nhbi0+ZmxhZ3MgPSBSWE9OX0ZMR19CQU5EXzI0R19NU0sgfCBSWE9OX0ZMR19BVVRPX0RFVEVDVF9NU0s7CiAJCXNjYW4tPnR4X2NtZC5yYXRlID0gSVdMX1JBVEVfMU1fUExDUDsKIAkJc2Nhbi0+Z29vZF9DUkNfdGggPSAwOwogCQliYW5kID0gSUVFRTgwMjExX0JBTkRfMkdIWjsKLQkJYnJlYWs7Ci0KLQljYXNlIDE6CisJfSBlbHNlIGlmIChwcml2LT5zY2FuX2JhbmRzICYgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKSB7CiAJCXNjYW4tPnR4X2NtZC5yYXRlID0gSVdMX1JBVEVfNk1fUExDUDsKIAkJc2Nhbi0+Z29vZF9DUkNfdGggPSBJV0xfR09PRF9DUkNfVEg7CiAJCWJhbmQgPSBJRUVFODAyMTFfQkFORF81R0haOwotCQlicmVhazsKLQotCWRlZmF1bHQ6CisJfSBlbHNlIHsKIAkJSVdMX1dBUk5JTkcoIkludmFsaWQgc2NhbiBiYW5kIGNvdW50XG4iKTsKIAkJZ290byBkb25lOwogCX0KQEAgLTY2ODQsNyArNjY4Nyw4IEBACiAKIAlpZiAocHJpdi0+aXdfbW9kZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9NTlRSKSB7CiAJCUlXTF9ERUJVR19NQUM4MDIxMSgibGVhdmUgLSBtb25pdG9yXG4iKTsKLQkJcmV0dXJuIC0xOworCQlkZXZfa2ZyZWVfc2tiX2FueShza2IpOworCQlyZXR1cm4gMDsKIAl9CiAKIAlJV0xfREVCVUdfVFgoImRldi0+eG1pdCglZCBieXRlcykgYXQgcmF0ZSAweCUwMnhcbiIsIHNrYi0+bGVuLApAQCAtNjc3MCw3ICs2Nzc0LDcgQEAKIAljaF9pbmZvID0gaXdsMzk0NV9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGNvbmYtPmNoYW5uZWwtPmJhbmQsCiAJCQkJCSAgIGNvbmYtPmNoYW5uZWwtPmh3X3ZhbHVlKTsKIAlpZiAoIWlzX2NoYW5uZWxfdmFsaWQoY2hfaW5mbykpIHsKLQkJSVdMX0RFQlVHX1NDQU4oIkNoYW5uZWwgJWQgWyVkXSBpcyBJTlZBTElEIGZvciB0aGlzIFNLVS5cbiIsCisJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIFslZF0gaXMgSU5WQUxJRCBmb3IgdGhpcyBiYW5kLlxuIiwKIAkJCSAgICAgICBjb25mLT5jaGFubmVsLT5od192YWx1ZSwgY29uZi0+Y2hhbm5lbC0+YmFuZCk7CiAJCUlXTF9ERUJVR19NQUM4MDIxMSgibGVhdmUgLSBpbnZhbGlkIGNoYW5uZWxcbiIpOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDQ5NjUtYmFzZS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2w0OTY1LWJhc2UuYwppbmRleCA4ODNiNDJmLi4wYmQ1NWJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bDQ5NjUtYmFzZS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsNDk2NS1iYXNlLmMKQEAgLTE3NzQsNyArMTc3NCwxMCBAQAogCX0KIAogCUlXTF9ERUJVR19JTkZPKCJTdGFydGluZyBzY2FuLi4uXG4iKTsKLQlwcml2LT5zY2FuX2JhbmRzID0gMjsKKwlpZiAocHJpdi0+Y2ZnLT5za3UgJiBJV0xfU0tVX0cpCisJCXByaXYtPnNjYW5fYmFuZHMgfD0gQklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWlmIChwcml2LT5jZmctPnNrdSAmIElXTF9TS1VfQSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyB8PSBCSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAJc2V0X2JpdChTVEFUVVNfU0NBTk5JTkcsICZwcml2LT5zdGF0dXMpOwogCXByaXYtPnNjYW5fc3RhcnQgPSBqaWZmaWVzOwogCXByaXYtPnNjYW5fcGFzc19zdGFydCA9IHByaXYtPnNjYW5fc3RhcnQ7CkBAIC0zMDIzLDggKzMwMjYsOSBAQAogCiAJSVdMX0RFQlVHX1RYX1JFUExZKCJUeCBxdWV1ZSByZWNsYWltICVkXG4iLCBpbmRleCk7CiAJaWYgKGluZGV4ICE9IC0xKSB7Ci0JCWludCBmcmVlZCA9IGl3bDQ5NjVfdHhfcXVldWVfcmVjbGFpbShwcml2LCB0eHFfaWQsIGluZGV4KTsKICNpZmRlZiBDT05GSUdfSVdMNDk2NV9IVAorCQlpbnQgZnJlZWQgPSBpd2w0OTY1X3R4X3F1ZXVlX3JlY2xhaW0ocHJpdiwgdHhxX2lkLCBpbmRleCk7CisKIAkJaWYgKHRpZCAhPSBNQVhfVElEX0NPVU5UKQogCQkJcHJpdi0+c3RhdGlvbnNbc3RhX2lkXS50aWRbdGlkXS50ZmRzX2luX3F1ZXVlIC09IGZyZWVkOwogCQlpZiAoaXdsNDk2NV9xdWV1ZV9zcGFjZSgmdHhxLT5xKSA+IHR4cS0+cS5sb3dfbWFyayAmJgpAQCAtMzI3NiwxMyArMzI4MCwxOCBAQAogCWNhbmNlbF9kZWxheWVkX3dvcmsoJnByaXYtPnNjYW5fY2hlY2spOwogCiAJSVdMX0RFQlVHX0lORk8oIlNjYW4gcGFzcyBvbiAlc0dIeiB0b29rICVkbXNcbiIsCi0JCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyA9PSAyKSA/ICIyLjQiIDogIjUuMiIsCisJCSAgICAgICAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkgPworCQkJCQkJIjIuNCIgOiAiNS4yIiwKIAkJICAgICAgIGppZmZpZXNfdG9fbXNlY3MoZWxhcHNlZF9qaWZmaWVzCiAJCQkJCShwcml2LT5zY2FuX3Bhc3Nfc3RhcnQsIGppZmZpZXMpKSk7CiAKLQkvKiBSZW1vdmUgdGhpcyBzY2FubmVkIGJhbmQgZnJvbSB0aGUgbGlzdAotCSAqIG9mIHBlbmRpbmcgYmFuZHMgdG8gc2NhbiAqLwotCXByaXYtPnNjYW5fYmFuZHMtLTsKKwkvKiBSZW1vdmUgdGhpcyBzY2FubmVkIGJhbmQgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nCisJICogYmFuZHMgdG8gc2NhbiwgYmFuZCBHIHByZWNlZGVzIEEgaW4gb3JkZXIgb2Ygc2Nhbm5pbmcKKwkgKiBhcyBzZWVuIGluIGl3bF9iZ19yZXF1ZXN0X3NjYW4gKi8KKwlpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF8yR0haKSkKKwkJcHJpdi0+c2Nhbl9iYW5kcyAmPSB+QklUKElFRUU4MDIxMV9CQU5EXzJHSFopOworCWVsc2UgaWYgKHByaXYtPnNjYW5fYmFuZHMgJiAgQklUKElFRUU4MDIxMV9CQU5EXzVHSFopKQorCQlwcml2LT5zY2FuX2JhbmRzICY9IH5CSVQoSUVFRTgwMjExX0JBTkRfNUdIWik7CiAKIAkvKiBJZiBhIHJlcXVlc3QgdG8gYWJvcnQgd2FzIGdpdmVuLCBvciB0aGUgc2NhbiBkaWQgbm90IHN1Y2NlZWQKIAkgKiB0aGVuIHdlIHJlc2V0IHRoZSBzY2FuIHN0YXRlIG1hY2hpbmUgYW5kIHRlcm1pbmF0ZSwKQEAgLTMyOTIsNyArMzMwMSw3IEBACiAJCWNsZWFyX2JpdChTVEFUVVNfU0NBTl9BQk9SVElORywgJnByaXYtPnN0YXR1cyk7CiAJfSBlbHNlIHsKIAkJLyogSWYgdGhlcmUgYXJlIG1vcmUgYmFuZHMgb24gdGhpcyBzY2FuIHBhc3MgcmVzY2hlZHVsZSAqLwotCQlpZiAocHJpdi0+c2Nhbl9iYW5kcyA+IDApCisJCWlmIChwcml2LT5zY2FuX2JhbmRzKQogCQkJZ290byByZXNjaGVkdWxlOwogCX0KIApAQCAtNDYzNSwxMCArNDY0NCw5IEBACiAKIAkJc2Nhbl9jaC0+Y2hhbm5lbCA9IGllZWU4MDIxMV9mcmVxdWVuY3lfdG9fY2hhbm5lbChjaGFubmVsc1tpXS5jZW50ZXJfZnJlcSk7CiAKLQkJY2hfaW5mbyA9IGl3bF9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGJhbmQsCi0JCQkJCSBzY2FuX2NoLT5jaGFubmVsKTsKKwkJY2hfaW5mbyA9IGl3bF9nZXRfY2hhbm5lbF9pbmZvKHByaXYsIGJhbmQsIHNjYW5fY2gtPmNoYW5uZWwpOwogCQlpZiAoIWlzX2NoYW5uZWxfdmFsaWQoY2hfaW5mbykpIHsKLQkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgU0tVLlxuIiwKKwkJCUlXTF9ERUJVR19TQ0FOKCJDaGFubmVsICVkIGlzIElOVkFMSUQgZm9yIHRoaXMgYmFuZC5cbiIsCiAJCQkJICAgICAgIHNjYW5fY2gtPmNoYW5uZWwpOwogCQkJY29udGludWU7CiAJCX0KQEAgLTU4MzAsOCArNTgzOCw3IEBACiAJc2Nhbi0+dHhfY21kLnN0b3BfdGltZS5saWZlX3RpbWUgPSBUWF9DTURfTElGRV9USU1FX0lORklOSVRFOwogCiAKLQlzd2l0Y2ggKHByaXYtPnNjYW5fYmFuZHMpIHsKLQljYXNlIDI6CisJaWYgKHByaXYtPnNjYW5fYmFuZHMgJiBCSVQoSUVFRTgwMjExX0JBTkRfMkdIWikpIHsKIAkJc2Nhbi0+ZmxhZ3MgPSBSWE9OX0ZMR19CQU5EXzI0R19NU0sgfCBSWE9OX0ZMR19BVVRPX0RFVEVDVF9NU0s7CiAJCXNjYW4tPnR4X2NtZC5yYXRlX25fZmxhZ3MgPQogCQkJCWl3bDQ5NjVfaHdfc2V0X3JhdGVfbl9mbGFncyhJV0xfUkFURV8xTV9QTENQLApAQCAtNTgzOSwxNyArNTg0NiwxMyBAQAogCiAJCXNjYW4tPmdvb2RfQ1JDX3RoID0gMDsKIAkJYmFuZCA9IElFRUU4MDIxMV9CQU5EXzJHSFo7Ci0JCWJyZWFrOwotCi0JY2FzZSAxOgorCX0gZWxzZSBpZiAocHJpdi0+c2Nhbl9iYW5kcyAmIEJJVChJRUVFODAyMTFfQkFORF81R0haKSkgewogCQlzY2FuLT50eF9jbWQucmF0ZV9uX2ZsYWdzID0KIAkJCQlpd2w0OTY1X2h3X3NldF9yYXRlX25fZmxhZ3MoSVdMX1JBVEVfNk1fUExDUCwKIAkJCQlSQVRFX01DU19BTlRfQl9NU0spOwogCQlzY2FuLT5nb29kX0NSQ190aCA9IElXTF9HT09EX0NSQ19USDsKIAkJYmFuZCA9IElFRUU4MDIxMV9CQU5EXzVHSFo7Ci0JCWJyZWFrOwotCi0JZGVmYXVsdDoKKwl9IGVsc2UgewogCQlJV0xfV0FSTklORygiSW52YWxpZCBzY2FuIGJhbmQgY291bnRcbiIpOwogCQlnb3RvIGRvbmU7CiAJfQpAQCAtNjIzNCw3ICs2MjM3LDggQEAKIAogCWlmIChwcml2LT5pd19tb2RlID09IElFRUU4MDIxMV9JRl9UWVBFX01OVFIpIHsKIAkJSVdMX0RFQlVHX01BQzgwMjExKCJsZWF2ZSAtIG1vbml0b3JcbiIpOwotCQlyZXR1cm4gLTE7CisJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJCXJldHVybiAwOwogCX0KIAogCUlXTF9ERUJVR19UWCgiZGV2LT54bWl0KCVkIGJ5dGVzKSBhdCByYXRlIDB4JTAyeFxuIiwgc2tiLT5sZW4sCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9jbWQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCmluZGV4IDYzMjhiOTUuLjgxMjRmZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2NtZC5jCkBAIC0xODQyLDYgKzE4NDIsOSBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAKKwkvKiBXZSBkb24ndCBnZXQgYSByZXNwb25zZSBvbiB0aGUgc2xlZXAtY29uZmlybWF0aW9uICovCisJcHJpdi0+ZG5sZF9zZW50ID0gRE5MRF9SRVNfUkVDRUlWRUQ7CisKIAkvKiBJZiBub3RoaW5nIHRvIGRvLCBnbyBiYWNrIHRvIHNsZWVwICg/KSAqLwogCWlmICghX19rZmlmb19sZW4ocHJpdi0+ZXZlbnRfZmlmbykgJiYgIXByaXYtPnJlc3BfbGVuW3ByaXYtPnJlc3BfaWR4XSkKIAkJcHJpdi0+cHNzdGF0ZSA9IFBTX1NUQVRFX1NMRUVQOwpAQCAtMTkwNCwxMiArMTkwNywxMiBAQAogCiAJbGJzX2RlYl9lbnRlcihMQlNfREVCX0hPU1QpOwogCisJc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAJaWYgKHByaXYtPmRubGRfc2VudCkgewogCQlhbGxvd2VkID0gMDsKIAkJbGJzX2RlYl9ob3N0KCJkbmxkX3NlbnQgd2FzIHNldFxuIik7CiAJfQogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnByaXYtPmRyaXZlcl9sb2NrLCBmbGFncyk7CiAJLyogSW4tcHJvZ3Jlc3MgY29tbWFuZD8gKi8KIAlpZiAocHJpdi0+Y3VyX2NtZCkgewogCQlhbGxvd2VkID0gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2RlYnVnZnMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2RlYnVnZnMuYwppbmRleCBhZDJmYWJjLi4wYWEwY2UzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvZGVidWdmcy5jCkBAIC0zMTIsOCArMzEyLDggQEAKIAlpZiAodGx2X3R5cGUgIT0gVExWX1RZUEVfQkNOTUlTUykKIAkJdGx2LT5mcmVxID0gZnJlcTsKIAotCS8qIFRoZSBjb21tYW5kIGhlYWRlciwgdGhlIGV2ZW50IG1hc2ssIGFuZCB0aGUgb25lIFRMViAqLwotCWV2ZW50cy0+aGRyLnNpemUgPSBjcHVfdG9fbGUxNihzaXplb2YoZXZlbnRzLT5oZHIpICsgMiArIHNpemVvZigqdGx2KSk7CisJLyogVGhlIGNvbW1hbmQgaGVhZGVyLCB0aGUgYWN0aW9uLCB0aGUgZXZlbnQgbWFzaywgYW5kIG9uZSBUTFYgKi8KKwlldmVudHMtPmhkci5zaXplID0gY3B1X3RvX2xlMTYoc2l6ZW9mKGV2ZW50cy0+aGRyKSArIDQgKyBzaXplb2YoKnRsdikpOwogCiAJcmV0ID0gbGJzX2NtZF93aXRoX3Jlc3BvbnNlKHByaXYsIENNRF84MDJfMTFfU1VCU0NSSUJFX0VWRU5ULCBldmVudHMpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9jcy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfY3MuYwppbmRleCA1NDI4MGUyLi5kMDc1YjQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9jcy5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX2NzLmMKQEAgLTEyMiw3ICsxMjIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIGlmX2NzX3dyaXRlMTZfcmVwKAogCXN0cnVjdCBpZl9jc19jYXJkICpjYXJkLAogCXVpbnQgcmVnLAotCXZvaWQgKmJ1ZiwKKwljb25zdCB2b2lkICpidWYsCiAJdW5zaWduZWQgbG9uZyBjb3VudCkKIHsKIAlpZiAoZGVidWdfb3V0cHV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfc2Rpby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfc2Rpby5jCmluZGV4IDUxZjY2NGIuLjNkZDUzN2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX3NkaW8uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9pZl9zZGlvLmMKQEAgLTM5Miw3ICszOTIsNyBAQAogCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAl1OCAqY2h1bmtfYnVmZmVyOwogCXUzMiBjaHVua19zaXplOwotCXU4ICpmaXJtd2FyZTsKKwljb25zdCB1OCAqZmlybXdhcmU7CiAJc2l6ZV90IHNpemU7CiAKIAlsYnNfZGViX2VudGVyKExCU19ERUJfU0RJTyk7CkBAIC01MDgsNyArNTA4LDcgQEAKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiAJdTggKmNodW5rX2J1ZmZlcjsKIAl1MzIgY2h1bmtfc2l6ZTsKLQl1OCAqZmlybXdhcmU7CisJY29uc3QgdTggKmZpcm13YXJlOwogCXNpemVfdCBzaXplLCByZXFfc2l6ZTsKIAogCWxic19kZWJfZW50ZXIoTEJTX0RFQl9TRElPKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL2lmX3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfdXNiLmMKaW5kZXggODAzMmRmNy4uNGRjZDQwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvaWZfdXNiLmMKQEAgLTI5Myw3ICsyOTMsNyBAQAogc3RhdGljIGludCBpZl91c2Jfc2VuZF9md19wa3Qoc3RydWN0IGlmX3VzYl9jYXJkICpjYXJkcCkKIHsKIAlzdHJ1Y3QgZndkYXRhICpmd2RhdGEgPSBjYXJkcC0+ZXBfb3V0X2J1ZjsKLQl1aW50OF90ICpmaXJtd2FyZSA9IGNhcmRwLT5mdy0+ZGF0YTsKKwljb25zdCB1aW50OF90ICpmaXJtd2FyZSA9IGNhcmRwLT5mdy0+ZGF0YTsKIAogCS8qIElmIHdlIGdvdCBhIENSQyBmYWlsdXJlIG9uIHRoZSBsYXN0IGJsb2NrLCBiYWNrCiAJICAgdXAgYW5kIHJldHJ5IGl0ICovCkBAIC03NDYsNyArNzQ2LDcgQEAKICAqICAgICAgICAgbGVuICAgICAgICAgICAgICAgaW1hZ2UgbGVuZ3RoCiAgKiAgQHJldHVybiAgICAgMCBvciAtMQogICovCi1zdGF0aWMgaW50IGNoZWNrX2Z3ZmlsZV9mb3JtYXQodWludDhfdCAqZGF0YSwgdWludDMyX3QgdG90bGVuKQorc3RhdGljIGludCBjaGVja19md2ZpbGVfZm9ybWF0KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHVpbnQzMl90IHRvdGxlbikKIHsKIAl1aW50MzJfdCBiaW5jbWQsIGV4aXQ7CiAJdWludDMyX3QgYmxrc2l6ZSwgb2Zmc2V0LCBsZW47CkBAIC05MjUsNiArOTI1LDcgQEAKIAkuaWRfdGFibGUgPSBpZl91c2JfdGFibGUsCiAJLnN1c3BlbmQgPSBpZl91c2Jfc3VzcGVuZCwKIAkucmVzdW1lID0gaWZfdXNiX3Jlc3VtZSwKKwkucmVzZXRfcmVzdW1lID0gaWZfdXNiX3Jlc3VtZSwKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGlmX3VzYl9pbml0X21vZHVsZSh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbGliZXJ0YXMvbWFpbi5jCmluZGV4IGUxZjA2NjAuLmFjZmM0YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL21haW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9tYWluLmMKQEAgLTczMiw4ICs3MzIsOCBAQAogCQlsYnNfZGViX3RocmVhZCgiNDogY3VycmVudHR4c2tiICVwLCBkbmxkX3NlbnQgJWRcbiIsCiAJCSAgICAgICBwcml2LT5jdXJyZW50dHhza2IsIHByaXYtPmRubGRfc2VudCk7CiAKLQkJc3Bpbl9sb2NrX2lycSgmcHJpdi0+ZHJpdmVyX2xvY2spOwogCQkvKiBQcm9jZXNzIGFueSBwZW5kaW5nIGNvbW1hbmQgcmVzcG9uc2UgKi8KKwkJc3Bpbl9sb2NrX2lycSgmcHJpdi0+ZHJpdmVyX2xvY2spOwogCQlyZXNwX2lkeCA9IHByaXYtPnJlc3BfaWR4OwogCQlpZiAocHJpdi0+cmVzcF9sZW5bcmVzcF9pZHhdKSB7CiAJCQlzcGluX3VubG9ja19pcnEoJnByaXYtPmRyaXZlcl9sb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL3NjYW4uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL3NjYW4uYwppbmRleCBkNDQ4Yzk3MC4uMzg3ZDQ4NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2xpYmVydGFzL3NjYW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9saWJlcnRhcy9zY2FuLmMKQEAgLTU2NywxMSArNTY3LDExIEBACiAJcG9zICs9IDg7CiAKIAkvKiBiZWFjb24gaW50ZXJ2YWwgaXMgMiBieXRlcyBsb25nICovCi0JYnNzLT5iZWFjb25wZXJpb2QgPSBsZTE2X3RvX2NwdXAoKHZvaWQgKikgcG9zKTsKKwlic3MtPmJlYWNvbnBlcmlvZCA9IGdldF91bmFsaWduZWRfbGUxNihwb3MpOwogCXBvcyArPSAyOwogCiAJLyogY2FwYWJpbGl0eSBpbmZvcm1hdGlvbiBpcyAyIGJ5dGVzIGxvbmcgKi8KLQlic3MtPmNhcGFiaWxpdHkgPSBsZTE2X3RvX2NwdXAoKHZvaWQgKikgcG9zKTsKKwlic3MtPmNhcGFiaWxpdHkgPSBnZXRfdW5hbGlnbmVkX2xlMTYocG9zKTsKIAlsYnNfZGViX3NjYW4oInByb2Nlc3NfYnNzOiBjYXBhYmlsaXRpZXMgMHglMDR4XG4iLCBic3MtPmNhcGFiaWxpdHkpOwogCXBvcyArPSAyOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9wNTQvcDU0dXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9wNTQvcDU0dXNiLmMKaW5kZXggOThkZGJiMy4uODE1YzA5NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcDU0L3A1NHVzYi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYwpAQCAtNDksNiArNDksNyBAQAogCXtVU0JfREVWSUNFKDB4NTA0MSwgMHgyMjM1KX0sCS8qIExpbmtzeXMgV1VTQjU0RyBQb3J0YWJsZSAqLwogCiAJLyogVmVyc2lvbiAyIGRldmljZXMgKDM4ODcpICovCisJe1VTQl9ERVZJQ0UoMHgwNDcxLCAweDEyMzApfSwgICAvKiBQaGlsaXBzIENQV1VBMDU0LzAwICovCiAJe1VTQl9ERVZJQ0UoMHgwNTBkLCAweDcwNTApfSwJLyogQmVsa2luIEY1RDcwNTAgdmVyIDEwMDAgKi8KIAl7VVNCX0RFVklDRSgweDA1NzIsIDB4MjAwMCl9LAkvKiBDb2hpYmEgUHJvdG8gYm9hcmQgKi8KIAl7VVNCX0RFVklDRSgweDA1NzIsIDB4MjAwMil9LAkvKiBDb2hpYmEgUHJvdG8gYm9hcmQgKi8KQEAgLTM3NSw3ICszNzYsOCBAQAogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZndfZW50cnkgPSBOVUxMOwogCWludCBlcnIsIGFsZW47CiAJdTggY2FycnkgPSAwOwotCXU4ICpidWYsICp0bXAsICpkYXRhOworCXU4ICpidWYsICp0bXA7CisJY29uc3QgdTggKmRhdGE7CiAJdW5zaWduZWQgaW50IGxlZnQsIHJlbWFpbnMsIGJsb2NrX3NpemU7CiAJc3RydWN0IHgyX2hlYWRlciAqaGRyOwogCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKQEAgLTUyMiw3ICs1MjQsNyBAQAogCXZvaWQgKmJ1ZjsKIAlfX2xlMzIgcmVnOwogCXVuc2lnbmVkIGludCByZW1haW5zLCBvZmZzZXQ7Ci0JdTggKmRhdGE7CisJY29uc3QgdTggKmRhdGE7CiAKIAlidWYgPSBrbWFsbG9jKDUxMiwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFidWYpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ByaXNtNTQvaXNscGNpX2V0aC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcHJpc201NC9pc2xwY2lfZXRoLmMKaW5kZXggNzYyZTg1Yi4uZTQzYmFlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcHJpc201NC9pc2xwY2lfZXRoLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcHJpc201NC9pc2xwY2lfZXRoLmMKQEAgLTI5MCw3ICsyOTAsNyBAQAogCiAJCWF2cy0+dmVyc2lvbiA9IGNwdV90b19iZTMyKFA4MDIxMUNBUFRVUkVfVkVSU0lPTik7CiAJCWF2cy0+bGVuZ3RoID0gY3B1X3RvX2JlMzIoc2l6ZW9mIChzdHJ1Y3QgYXZzXzgwMjExXzFfaGVhZGVyKSk7Ci0JCWF2cy0+bWFjdGltZSA9IGNwdV90b19iZTY0KGxlNjRfdG9fY3B1KGNsb2NrKSk7CisJCWF2cy0+bWFjdGltZSA9IGNwdV90b19iZTY0KGNsb2NrKTsKIAkJYXZzLT5ob3N0dGltZSA9IGNwdV90b19iZTY0KGppZmZpZXMpOwogCQlhdnMtPnBoeXR5cGUgPSBjcHVfdG9fYmUzMig2KTsJLypPRkRNOiA2IGZvciAoZyksIDggZm9yIChhKSAqLwogCQlhdnMtPmNoYW5uZWwgPSBjcHVfdG9fYmUzMihjaGFubmVsX29mX2ZyZXEoZnJlcSkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mvcm5kaXNfd2xhbi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mvcm5kaXNfd2xhbi5jCmluZGV4IGQwYjFmYjEuLjE4Yzk5MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JuZGlzX3dsYW4uYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ybmRpc193bGFuLmMKQEAgLTExNiw2ICsxMTYsNyBAQAogI2RlZmluZSBPSURfODAyXzExX0VOQ1JZUFRJT05fU1RBVFVTCQljY3B1MigweDBkMDEwMTFiKQogI2RlZmluZSBPSURfODAyXzExX0FERF9LRVkJCQljY3B1MigweDBkMDEwMTFkKQogI2RlZmluZSBPSURfODAyXzExX1JFTU9WRV9LRVkJCQljY3B1MigweDBkMDEwMTFlKQorI2RlZmluZSBPSURfODAyXzExX0FTU09DSUFUSU9OX0lORk9STUFUSU9OCWNjcHUyKDB4MGQwMTAxMWYpCiAjZGVmaW5lIE9JRF84MDJfMTFfUE1LSUQJCQljY3B1MigweDBkMDEwMTIzKQogI2RlZmluZSBPSURfODAyXzExX05FVFdPUktfVFlQRVNfU1VQUE9SVEVECWNjcHUyKDB4MGQwMTAyMDMpCiAjZGVmaW5lIE9JRF84MDJfMTFfTkVUV09SS19UWVBFX0lOX1VTRQkJY2NwdTIoMHgwZDAxMDIwNCkKQEAgLTI3MSw2ICsyNzIsMjYgQEAKIAlfX2xlMzIgdmFsdWVfbGVuZ3RoOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAorc3RydWN0IG5kaXNfODAyMTFfYXNzb2NfaW5mbyB7CisJX19sZTMyIGxlbmd0aDsKKwlfX2xlMTYgcmVxX2llczsKKwlzdHJ1Y3QgcmVxX2llIHsKKwkJX19sZTE2IGNhcGE7CisJCV9fbGUxNiBsaXN0ZW5faW50ZXJ2YWw7CisJCXU4IGN1cl9hcF9hZGRyZXNzWzZdOworCX0gcmVxX2llOworCV9fbGUzMiByZXFfaWVfbGVuZ3RoOworCV9fbGUzMiBvZmZzZXRfcmVxX2llczsKKwlfX2xlMTYgcmVzcF9pZXM7CisJc3RydWN0IHJlc3BfaWUgeworCQlfX2xlMTYgY2FwYTsKKwkJX19sZTE2IHN0YXR1c19jb2RlOworCQlfX2xlMTYgYXNzb2NfaWQ7CisJfSByZXNwX2llOworCV9fbGUzMiByZXNwX2llX2xlbmd0aDsKKwlfX2xlMzIgb2Zmc2V0X3Jlc3BfaWVzOworfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKKwogLyogdGhlc2UgaGF2ZSB0byBtYXRjaCB3aGF0IGlzIGluIHdwYV9zdXBwbGljYW50ICovCiBlbnVtIHdwYV9hbGcgeyBXUEFfQUxHX05PTkUsIFdQQV9BTEdfV0VQLCBXUEFfQUxHX1RLSVAsIFdQQV9BTEdfQ0NNUCB9OwogZW51bSB3cGFfY2lwaGVyIHsgQ0lQSEVSX05PTkUsIENJUEhFUl9XRVA0MCwgQ0lQSEVSX1RLSVAsIENJUEhFUl9DQ01QLApAQCAtNjc0LDYgKzY5NSwxMiBAQAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgZ2V0X2Fzc29jaWF0aW9uX2luZm8oc3RydWN0IHVzYm5ldCAqdXNiZGV2LAorCQkJc3RydWN0IG5kaXNfODAyMTFfYXNzb2NfaW5mbyAqaW5mbywgaW50IGxlbikKK3sKKwlyZXR1cm4gcm5kaXNfcXVlcnlfb2lkKHVzYmRldiwgT0lEXzgwMl8xMV9BU1NPQ0lBVElPTl9JTkZPUk1BVElPTiwKKwkJCQlpbmZvLCAmbGVuKTsKK30KIAogc3RhdGljIGludCBpc19hc3NvY2lhdGVkKHN0cnVjdCB1c2JuZXQgKnVzYmRldikKIHsKQEAgLTIxODIsMTEgKzIyMDksNDAgQEAKIAlzdHJ1Y3QgdXNibmV0ICp1c2JkZXYgPSBwcml2LT51c2JkZXY7CiAJdW5pb24gaXdyZXFfZGF0YSBldnQ7CiAJdW5zaWduZWQgY2hhciBic3NpZFtFVEhfQUxFTl07Ci0JaW50IHJldDsKKwlzdHJ1Y3QgbmRpc184MDIxMV9hc3NvY19pbmZvICppbmZvOworCWludCBhc3NvY19zaXplID0gc2l6ZW9mKCppbmZvKSArIElXX0NVU1RPTV9NQVggKyAzMjsKKwlpbnQgcmV0LCBvZmZzZXQ7CiAKIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KFdPUktfQ09OTkVDVElPTl9FVkVOVCwgJnByaXYtPndvcmtfcGVuZGluZykpIHsKLQkJcmV0ID0gZ2V0X2Jzc2lkKHVzYmRldiwgYnNzaWQpOworCQlpbmZvID0ga3phbGxvYyhhc3NvY19zaXplLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFpbmZvKQorCQkJZ290byBnZXRfYnNzaWQ7CiAKKwkJLyogR2V0IGFzc29jaWF0aW9uIGluZm8gSUVzIGZyb20gZGV2aWNlIGFuZCBzZW5kIHRoZW0gYmFjayB0bworCQkgKiB1c2Vyc3BhY2UuICovCisJCXJldCA9IGdldF9hc3NvY2lhdGlvbl9pbmZvKHVzYmRldiwgaW5mbywgYXNzb2Nfc2l6ZSk7CisJCWlmICghcmV0KSB7CisJCQlldnQuZGF0YS5sZW5ndGggPSBsZTMyX3RvX2NwdShpbmZvLT5yZXFfaWVfbGVuZ3RoKTsKKwkJCWlmIChldnQuZGF0YS5sZW5ndGggPiAwKSB7CisJCQkJb2Zmc2V0ID0gbGUzMl90b19jcHUoaW5mby0+b2Zmc2V0X3JlcV9pZXMpOworCQkJCXdpcmVsZXNzX3NlbmRfZXZlbnQodXNiZGV2LT5uZXQsCisJCQkJCUlXRVZBU1NPQ1JFUUlFLCAmZXZ0LAorCQkJCQkoY2hhciAqKWluZm8gKyBvZmZzZXQpOworCQkJfQorCisJCQlldnQuZGF0YS5sZW5ndGggPSBsZTMyX3RvX2NwdShpbmZvLT5yZXNwX2llX2xlbmd0aCk7CisJCQlpZiAoZXZ0LmRhdGEubGVuZ3RoID4gMCkgeworCQkJCW9mZnNldCA9IGxlMzJfdG9fY3B1KGluZm8tPm9mZnNldF9yZXNwX2llcyk7CisJCQkJd2lyZWxlc3Nfc2VuZF9ldmVudCh1c2JkZXYtPm5ldCwKKwkJCQkJSVdFVkFTU09DUkVTUElFLCAmZXZ0LAorCQkJCQkoY2hhciAqKWluZm8gKyBvZmZzZXQpOworCQkJfQorCQl9CisKKwkJa2ZyZWUoaW5mbyk7CisKK2dldF9ic3NpZDoKKwkJcmV0ID0gZ2V0X2Jzc2lkKHVzYmRldiwgYnNzaWQpOwogCQlpZiAoIXJldCkgewogCQkJZXZ0LmRhdGEuZmxhZ3MgPSAwOwogCQkJZXZ0LmRhdGEubGVuZ3RoID0gMDsKQEAgLTI0MTQsNiArMjQ3MCwxMSBAQAogCWVsc2UgaWYgKHByaXYtPnBhcmFtX3Bvd2VyX3NhdmUgPiAyKQogCQlwcml2LT5wYXJhbV9wb3dlcl9zYXZlID0gMjsKIAorCWlmIChwcml2LT5wYXJhbV9wb3dlcl9vdXRwdXQgPCAwKQorCQlwcml2LT5wYXJhbV9wb3dlcl9vdXRwdXQgPSAwOworCWVsc2UgaWYgKHByaXYtPnBhcmFtX3Bvd2VyX291dHB1dCA+IDMpCisJCXByaXYtPnBhcmFtX3Bvd2VyX291dHB1dCA9IDM7CisKIAlpZiAocHJpdi0+cGFyYW1fcm9hbXRyaWdnZXIgPCAtODApCiAJCXByaXYtPnBhcmFtX3JvYW10cmlnZ2VyID0gLTgwOwogCWVsc2UgaWYgKHByaXYtPnBhcmFtX3JvYW10cmlnZ2VyID4gLTYwKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL0tjb25maWcgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvS2NvbmZpZwppbmRleCBhYjEwMjllLi4yZDYxMTg3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvS2NvbmZpZworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvS2NvbmZpZwpAQCAtMzIsMTIgKzMyLDEzIEBACiBjb25maWcgUlQyWDAwX0xJQl9SRktJTEwKIAlib29sZWFuCiAJZGVwZW5kcyBvbiBSVDJYMDBfTElCCisJZGVwZW5kcyBvbiBJTlBVVAogCXNlbGVjdCBSRktJTEwKIAlzZWxlY3QgSU5QVVRfUE9MTERFVgogCiBjb25maWcgUlQyWDAwX0xJQl9MRURTCiAJYm9vbGVhbgotCWRlcGVuZHMgb24gUlQyWDAwX0xJQgorCWRlcGVuZHMgb24gUlQyWDAwX0xJQiAmJiBORVdfTEVEUwogCiBjb25maWcgUlQyNDAwUENJCiAJdHJpc3RhdGUgIlJhbGluayBydDI0MDAgcGNpL3BjbWNpYSBzdXBwb3J0IgpAQCAtNTEsNyArNTIsNyBAQAogCiBjb25maWcgUlQyNDAwUENJX1JGS0lMTAogCWJvb2wgIlJUMjQwMCByZmtpbGwgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUMjQwMFBDSQorCWRlcGVuZHMgb24gUlQyNDAwUENJICYmIElOUFVUCiAJc2VsZWN0IFJUMlgwMF9MSUJfUkZLSUxMCiAJLS0taGVscC0tLQogCSAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIGludGVncmF0ZWQgcnQyNDAwIGRldmljZXMgdGhhdCBmZWF0dXJlIGEKQEAgLTYwLDcgKzYxLDcgQEAKIAogY29uZmlnIFJUMjQwMFBDSV9MRURTCiAJYm9vbCAiUlQyNDAwIGxlZHMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUMjQwMFBDSQorCWRlcGVuZHMgb24gUlQyNDAwUENJICYmIE5FV19MRURTCiAJc2VsZWN0IExFRFNfQ0xBU1MKIAlzZWxlY3QgUlQyWDAwX0xJQl9MRURTCiAJLS0taGVscC0tLQpAQCAtNzgsNyArNzksNyBAQAogCiBjb25maWcgUlQyNTAwUENJX1JGS0lMTAogCWJvb2wgIlJUMjUwMCByZmtpbGwgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUMjUwMFBDSQorCWRlcGVuZHMgb24gUlQyNTAwUENJICYmIElOUFVUCiAJc2VsZWN0IFJUMlgwMF9MSUJfUkZLSUxMCiAJLS0taGVscC0tLQogCSAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIGludGVncmF0ZWQgcnQyNTAwIGRldmljZXMgdGhhdCBmZWF0dXJlIGEKQEAgLTg3LDcgKzg4LDcgQEAKIAogY29uZmlnIFJUMjUwMFBDSV9MRURTCiAJYm9vbCAiUlQyNTAwIGxlZHMgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFJUMjUwMFBDSQorCWRlcGVuZHMgb24gUlQyNTAwUENJICYmIE5FV19MRURTCiAJc2VsZWN0IExFRFNfQ0xBU1MKIAlzZWxlY3QgUlQyWDAwX0xJQl9MRURTCiAJLS0taGVscC0tLQpAQCAtMTA3LDcgKzEwOCw3IEBACiAKIGNvbmZpZyBSVDYxUENJX1JGS0lMTAogCWJvb2wgIlJUNjEgcmZraWxsIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBSVDYxUENJCisJZGVwZW5kcyBvbiBSVDYxUENJICYmIElOUFVUCiAJc2VsZWN0IFJUMlgwMF9MSUJfUkZLSUxMCiAJLS0taGVscC0tLQogCSAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIGludGVncmF0ZWQgcnQ2MSBkZXZpY2VzIHRoYXQgZmVhdHVyZSBhCkBAIC0xMTYsNyArMTE3LDcgQEAKIAogY29uZmlnIFJUNjFQQ0lfTEVEUwogCWJvb2wgIlJUNjEgbGVkcyBzdXBwb3J0IgotCWRlcGVuZHMgb24gUlQ2MVBDSQorCWRlcGVuZHMgb24gUlQ2MVBDSSAmJiBORVdfTEVEUwogCXNlbGVjdCBMRURTX0NMQVNTCiAJc2VsZWN0IFJUMlgwMF9MSUJfTEVEUwogCS0tLWhlbHAtLS0KQEAgLTEzMyw3ICsxMzQsNyBAQAogCiBjb25maWcgUlQyNTAwVVNCX0xFRFMKIAlib29sICJSVDI1MDAgbGVkcyBzdXBwb3J0IgotCWRlcGVuZHMgb24gUlQyNTAwVVNCCisJZGVwZW5kcyBvbiBSVDI1MDBVU0IgJiYgTkVXX0xFRFMKIAlzZWxlY3QgTEVEU19DTEFTUwogCXNlbGVjdCBSVDJYMDBfTElCX0xFRFMKIAktLS1oZWxwLS0tCkBAIC0xNTIsNyArMTUzLDcgQEAKIAogY29uZmlnIFJUNzNVU0JfTEVEUwogCWJvb2wgIlJUNzMgbGVkcyBzdXBwb3J0IgotCWRlcGVuZHMgb24gUlQ3M1VTQgorCWRlcGVuZHMgb24gUlQ3M1VTQiAmJiBORVdfTEVEUwogCXNlbGVjdCBMRURTX0NMQVNTCiAJc2VsZWN0IFJUMlgwMF9MSUJfTEVEUwogCS0tLWhlbHAtLS0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI0MDBwY2kuYwppbmRleCA1NjBiOWM3Li5iMzZlZDFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNDAwcGNpLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjQwMHBjaS5jCkBAIC03MzEsNiArNzMxLDE3IEBACiAJCQkgICAocnQyeDAwZGV2LT5yeC0+ZGF0YV9zaXplIC8gMTI4KSk7CiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgQ1NSOSwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgQ1NSMTQsICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ04sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQ0ZQLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEFUSU1XLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0NGUF9DT1VOVF9QUkVMT0FELCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEJDTV9QUkVMT0FELCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxNCwgcmVnKTsKKwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIENOVDMsIDB4M2YwODAwMDApOwogCiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBBUkNTUjAsICZyZWcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHBjaS5jCmluZGV4IGE1ZWQ1NGIuLmY3NzMxZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDBwY2kuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwcGNpLmMKQEAgLTgyNCw2ICs4MjQsMTcgQEAKIAlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTFfQ1dfU0VMRUNULCAwKTsKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxMSwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgQ1NSMTQsICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X1RCQ04sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBDU1IxNF9UQ0ZQLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEFUSU1XLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfQkVBQ09OX0dFTiwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIENTUjE0X0NGUF9DT1VOVF9QUkVMT0FELCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQ1NSMTRfVEJDTV9QUkVMT0FELCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBDU1IxNCwgcmVnKTsKKwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIENOVDMsIDApOwogCiAJcnQyeDAwcGNpX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWENTUjgsICZyZWcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjUwMHVzYi5jCmluZGV4IGZkYmQwZWYuLmQ5MDUxMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI1MDB1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyNTAwdXNiLmMKQEAgLTEzOCwxMSArMTM4LDggQEAKIAkgKiBXYWl0IHVudGlsIHRoZSBCQlAgYmVjb21lcyByZWFkeS4KIAkgKi8KIAlyZWcgPSBydDI1MDB1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQxNihyZWcsIFBIWV9DU1I4X0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1I4IHJlZ2lzdGVyIGJ1c3kuIFdyaXRlIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBCQlAuCkBAIC0xNTUsNiArMTUyLDEzIEBACiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlX2xvY2socnQyeDAwZGV2LCBQSFlfQ1NSNywgcmVnKTsKIAogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBXcml0ZSBmYWlsZWQuXG4iKTsKIH0KIAogc3RhdGljIHZvaWQgcnQyNTAwdXNiX2JicF9yZWFkKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsCkBAIC0xNjgsMTAgKzE3Miw4IEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQyNTAwdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQlyZXR1cm47Ci0JfQorCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkKKwkJZ290byBleGl0X2ZhaWw7CiAKIAkvKgogCSAqIFdyaXRlIHRoZSByZXF1ZXN0IGludG8gdGhlIEJCUC4KQEAgLTE4NiwxNyArMTg4LDIxIEBACiAJICogV2FpdCB1bnRpbCB0aGUgQkJQIGJlY29tZXMgcmVhZHkuCiAJICovCiAJcmVnID0gcnQyNTAwdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSOF9CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQkqdmFsdWUgPSAweGZmOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDE2KHJlZywgUEhZX0NTUjhfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3JlYWRfbG9jayhydDJ4MDBkZXYsIFBIWV9DU1I3LCAmcmVnKTsKIAkqdmFsdWUgPSBydDJ4MDBfZ2V0X2ZpZWxkMTYocmVnLCBQSFlfQ1NSN19EQVRBKTsKIAogCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJcmV0dXJuOworCitleGl0X2ZhaWw6CisJbXV0ZXhfdW5sb2NrKCZydDJ4MDBkZXYtPnVzYl9jYWNoZV9tdXRleCk7CisKKwlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSOCByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOworCSp2YWx1ZSA9IDB4ZmY7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0MjUwMHVzYl9yZl93cml0ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LApAQCAtNzk1LDYgKzgwMSwxMyBAQAogCXJ0MngwMF9zZXRfZmllbGQxNigmcmVnLCBUWFJYX0NTUjhfQkJQX0lEMV9WQUxJRCwgMCk7CiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1I4LCByZWcpOwogCisJcnQyNTAwdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWFJYX0NTUjE5LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9UU0ZfQ09VTlQsIDApOworCXJ0MngwMF9zZXRfZmllbGQxNigmcmVnLCBUWFJYX0NTUjE5X1RTRl9TWU5DLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9UQkNOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMTYoJnJlZywgVFhSWF9DU1IxOV9CRUFDT05fR0VOLCAwKTsKKwlydDI1MDB1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjE5LCByZWcpOworCiAJcnQyNTAwdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IyMSwgMHhlNzhmKTsKIAlydDI1MDB1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBNQUNfQ1NSOSwgMHhmZjFkKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oCmluZGV4IDU3YmRjMTUuLmE3NGUxYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDAuaAorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwLmgKQEAgLTMyOCw2ICszMjgsMTEgQEAKIAlyZXR1cm4gREVGQVVMVF9SU1NJOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgcnQyeDAwX3Jlc2V0X2xpbmtfYW50X3Jzc2koc3RydWN0IGxpbmsgKmxpbmspCit7CisJbGluay0+YW50LnJzc2lfYW50ID0gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgcnQyeDAwX2dldF9saW5rX2FudF9yc3NpX2hpc3Rvcnkoc3RydWN0IGxpbmsgKmxpbmssCiAJCQkJCQkgICBlbnVtIGFudGVubmEgYW50KQogewpAQCAtNTA2LDggKzUxMSw4IEBACiAJICovCiAJaW50ICgqcHJvYmVfaHcpIChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KTsKIAljaGFyICooKmdldF9maXJtd2FyZV9uYW1lKSAoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldik7Ci0JdTE2ICgqZ2V0X2Zpcm13YXJlX2NyYykgKHZvaWQgKmRhdGEsIGNvbnN0IHNpemVfdCBsZW4pOwotCWludCAoKmxvYWRfZmlybXdhcmUpIChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCB2b2lkICpkYXRhLAorCXUxNiAoKmdldF9maXJtd2FyZV9jcmMpIChjb25zdCB2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKTsKKwlpbnQgKCpsb2FkX2Zpcm13YXJlKSAoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgY29uc3Qgdm9pZCAqZGF0YSwKIAkJCSAgICAgIGNvbnN0IHNpemVfdCBsZW4pOwogCiAJLyoKQEAgLTgxNiw2ICs4MjEsNyBAQAogCS8qCiAJICogU2NoZWR1bGVkIHdvcmsuCiAJICovCisJc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKndvcmtxdWV1ZTsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaW50Zl93b3JrOwogCXN0cnVjdCB3b3JrX3N0cnVjdCBmaWx0ZXJfd29yazsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMGNvbmZpZy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMGNvbmZpZy5jCmluZGV4IGE5OTMwYTAuLjQ4NjA4ZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBjb25maWcuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwY29uZmlnLmMKQEAgLTEyOSw2ICsxMjksNyBAQAogCSAqLwogCXJ0MngwMGRldi0+b3BzLT5saWItPmNvbmZpZyhydDJ4MDBkZXYsICZsaWJjb25mLCBDT05GSUdfVVBEQVRFX0FOVEVOTkEpOwogCXJ0MngwMGxpYl9yZXNldF9saW5rX3R1bmVyKHJ0MngwMGRldik7CisJcnQyeDAwX3Jlc2V0X2xpbmtfYW50X3Jzc2koJnJ0MngwMGRldi0+bGluayk7CiAKIAlydDJ4MDBkZXYtPmxpbmsuYW50LmFjdGl2ZS5yeCA9IGxpYmNvbmYuYW50LnJ4OwogCXJ0MngwMGRldi0+bGluay5hbnQuYWN0aXZlLnR4ID0gbGliY29uZi5hbnQudHg7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwZGV2LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwZGV2LmMKaW5kZXggYjIyYzAyNy4uYzk5N2Q0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMGRldi5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBkZXYuYwpAQCAtNzUsNyArNzUsNyBAQAogCiAJcnQyeDAwbGliX3Jlc2V0X2xpbmtfdHVuZXIocnQyeDAwZGV2KTsKIAotCXF1ZXVlX2RlbGF5ZWRfd29yayhydDJ4MDBkZXYtPmh3LT53b3JrcXVldWUsCisJcXVldWVfZGVsYXllZF93b3JrKHJ0MngwMGRldi0+d29ya3F1ZXVlLAogCQkJICAgJnJ0MngwMGRldi0+bGluay53b3JrLCBMSU5LX1RVTkVfSU5URVJWQUwpOwogfQogCkBAIC0xMzcsMTQgKzEzNyw2IEBACiAJCXJldHVybjsKIAogCS8qCi0JICogU3RvcCBhbGwgc2NoZWR1bGVkIHdvcmsuCi0JICovCi0JaWYgKHdvcmtfcGVuZGluZygmcnQyeDAwZGV2LT5pbnRmX3dvcmspKQotCQljYW5jZWxfd29ya19zeW5jKCZydDJ4MDBkZXYtPmludGZfd29yayk7Ci0JaWYgKHdvcmtfcGVuZGluZygmcnQyeDAwZGV2LT5maWx0ZXJfd29yaykpCi0JCWNhbmNlbF93b3JrX3N5bmMoJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmspOwotCi0JLyoKIAkgKiBTdG9wIHRoZSBUWCBxdWV1ZXMuCiAJICovCiAJaWVlZTgwMjExX3N0b3BfcXVldWVzKHJ0MngwMGRldi0+aHcpOwpAQCAtMzk4LDggKzM5MCw4IEBACiAJICogSW5jcmVhc2UgdHVuZXIgY291bnRlciwgYW5kIHJlc2NoZWR1bGUgdGhlIG5leHQgbGluayB0dW5lciBydW4uCiAJICovCiAJcnQyeDAwZGV2LT5saW5rLmNvdW50Kys7Ci0JcXVldWVfZGVsYXllZF93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+bGluay53b3JrLAotCQkJICAgTElOS19UVU5FX0lOVEVSVkFMKTsKKwlxdWV1ZV9kZWxheWVkX3dvcmsocnQyeDAwZGV2LT53b3JrcXVldWUsCisJCQkgICAmcnQyeDAwZGV2LT5saW5rLndvcmssIExJTktfVFVORV9JTlRFUlZBTCk7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0MngwMGxpYl9wYWNrZXRmaWx0ZXJfc2NoZWR1bGVkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKQEAgLTQzMyw2ICs0MjUsMTUgQEAKIAogCXNwaW5fdW5sb2NrKCZpbnRmLT5sb2NrKTsKIAorCS8qCisJICogSXQgaXMgcG9zc2libGUgdGhlIHJhZGlvIHdhcyBkaXNhYmxlZCB3aGlsZSB0aGUgd29yayBoYWQgYmVlbgorCSAqIHNjaGVkdWxlZC4gSWYgdGhhdCBoYXBwZW5zIHdlIHNob3VsZCByZXR1cm4gaGVyZSBpbW1lZGlhdGVseSwKKwkgKiBub3RlIHRoYXQgaW4gdGhlIHNwaW5sb2NrIHByb3RlY3RlZCBhcmVhIGFib3ZlIHRoZSBkZWxheWVkX2ZsYWdzCisJICogaGF2ZSBiZWVuIGNsZWFyZWQgY29ycmVjdGx5LgorCSAqLworCWlmICghdGVzdF9iaXQoREVWSUNFX0VOQUJMRURfUkFESU8sICZydDJ4MDBkZXYtPmZsYWdzKSkKKwkJcmV0dXJuOworCiAJaWYgKGRlbGF5ZWRfZmxhZ3MgJiBERUxBWUVEX1VQREFURV9CRUFDT04pIHsKIAkJc2tiID0gaWVlZTgwMjExX2JlYWNvbl9nZXQocnQyeDAwZGV2LT5odywgdmlmLCAmY29udHJvbCk7CiAJCWlmIChza2IgJiYgcnQyeDAwZGV2LT5vcHMtPmh3LT5iZWFjb25fdXBkYXRlKHJ0MngwMGRldi0+aHcsCkBAIC00NDEsNyArNDQyLDcgQEAKIAl9CiAKIAlpZiAoZGVsYXllZF9mbGFncyAmIERFTEFZRURfQ09ORklHX0VSUCkKLQkJcnQyeDAwbGliX2NvbmZpZ19lcnAocnQyeDAwZGV2LCBpbnRmLCAmaW50Zi0+Y29uZik7CisJCXJ0MngwMGxpYl9jb25maWdfZXJwKHJ0MngwMGRldiwgaW50ZiwgJmNvbmYpOwogCiAJaWYgKGRlbGF5ZWRfZmxhZ3MgJiBERUxBWUVEX0xFRF9BU1NPQykKIAkJcnQyeDAwbGVkc19sZWRfYXNzb2MocnQyeDAwZGV2LCAhIXJ0MngwMGRldi0+aW50Zl9hc3NvY2lhdGVkKTsKQEAgLTQ4MywxMSArNDg0LDExIEBACiAJaWYgKCF0ZXN0X2JpdChERVZJQ0VfRU5BQkxFRF9SQURJTywgJnJ0MngwMGRldi0+ZmxhZ3MpKQogCQlyZXR1cm47CiAKLQlpZWVlODAyMTFfaXRlcmF0ZV9hY3RpdmVfaW50ZXJmYWNlcyhydDJ4MDBkZXYtPmh3LAotCQkJCQkgICAgcnQyeDAwbGliX2JlYWNvbmRvbmVfaXRlciwKLQkJCQkJICAgIHJ0MngwMGRldik7CisJaWVlZTgwMjExX2l0ZXJhdGVfYWN0aXZlX2ludGVyZmFjZXNfYXRvbWljKHJ0MngwMGRldi0+aHcsCisJCQkJCQkgICBydDJ4MDBsaWJfYmVhY29uZG9uZV9pdGVyLAorCQkJCQkJICAgcnQyeDAwZGV2KTsKIAotCXF1ZXVlX3dvcmsocnQyeDAwZGV2LT5ody0+d29ya3F1ZXVlLCAmcnQyeDAwZGV2LT5pbnRmX3dvcmspOworCXF1ZXVlX3dvcmsocnQyeDAwZGV2LT53b3JrcXVldWUsICZydDJ4MDBkZXYtPmludGZfd29yayk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChydDJ4MDBsaWJfYmVhY29uZG9uZSk7CiAKQEAgLTUwNyw3ICs1MDgsNyBAQAogCSAqIFVwZGF0ZSBUWCBzdGF0aXN0aWNzLgogCSAqLwogCXJ0MngwMGRldi0+bGluay5xdWFsLnR4X3N1Y2Nlc3MgKz0gc3VjY2VzczsKLQlydDJ4MDBkZXYtPmxpbmsucXVhbC50eF9mYWlsZWQgKz0gdHhkZXNjLT5yZXRyeSArIGZhaWw7CisJcnQyeDAwZGV2LT5saW5rLnF1YWwudHhfZmFpbGVkICs9IGZhaWw7CiAKIAkvKgogCSAqIEluaXRpYWxpemUgVFggc3RhdHVzCkBAIC0xMTMwLDYgKzExMzEsMTAgQEAKIAkvKgogCSAqIEluaXRpYWxpemUgY29uZmlndXJhdGlvbiB3b3JrLgogCSAqLworCXJ0MngwMGRldi0+d29ya3F1ZXVlID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoInJ0MngwMGxpYiIpOworCWlmICghcnQyeDAwZGV2LT53b3JrcXVldWUpCisJCWdvdG8gZXhpdDsKKwogCUlOSVRfV09SSygmcnQyeDAwZGV2LT5pbnRmX3dvcmssIHJ0MngwMGxpYl9pbnRmX3NjaGVkdWxlZCk7CiAJSU5JVF9XT1JLKCZydDJ4MDBkZXYtPmZpbHRlcl93b3JrLCBydDJ4MDBsaWJfcGFja2V0ZmlsdGVyX3NjaGVkdWxlZCk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJnJ0MngwMGRldi0+bGluay53b3JrLCBydDJ4MDBsaWJfbGlua190dW5lcik7CkBAIC0xMTkwLDYgKzExOTUsMTMgQEAKIAlydDJ4MDBsZWRzX3VucmVnaXN0ZXIocnQyeDAwZGV2KTsKIAogCS8qCisJICogU3RvcCBhbGwgcXVldWVkIHdvcmsuIE5vdGUgdGhhdCBtb3N0IHRhc2tzIHdpbGwgYWxyZWFkeSBiZSBoYWx0ZWQKKwkgKiBkdXJpbmcgcnQyeDAwbGliX2Rpc2FibGVfcmFkaW8oKSBhbmQgcnQyeDAwbGliX3VuaW5pdGlhbGl6ZSgpLgorCSAqLworCWZsdXNoX3dvcmtxdWV1ZShydDJ4MDBkZXYtPndvcmtxdWV1ZSk7CisJZGVzdHJveV93b3JrcXVldWUocnQyeDAwZGV2LT53b3JrcXVldWUpOworCisJLyoKIAkgKiBGcmVlIGllZWU4MDIxMV9odyBtZW1vcnkuCiAJICovCiAJcnQyeDAwbGliX3JlbW92ZV9odyhydDJ4MDBkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMG1hYy5jCmluZGV4IGMyMDZiNTAuLjljYjAyM2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBtYWMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwbWFjLmMKQEAgLTkzLDYgKzkzLDcgQEAKIAkgKi8KIAlpZiAoIXRlc3RfYml0KERFVklDRV9QUkVTRU5ULCAmcnQyeDAwZGV2LT5mbGFncykpIHsKIAkJaWVlZTgwMjExX3N0b3BfcXVldWVzKGh3KTsKKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKIAkJcmV0dXJuIE5FVERFVl9UWF9PSzsKIAl9CiAKQEAgLTQyNyw3ICs0MjgsNyBAQAogCWlmICghdGVzdF9iaXQoRFJJVkVSX1JFUVVJUkVfU0NIRURVTEVELCAmcnQyeDAwZGV2LT5mbGFncykpCiAJCXJ0MngwMGRldi0+b3BzLT5saWItPmNvbmZpZ19maWx0ZXIocnQyeDAwZGV2LCAqdG90YWxfZmxhZ3MpOwogCWVsc2UKLQkJcXVldWVfd29yayhydDJ4MDBkZXYtPmh3LT53b3JrcXVldWUsICZydDJ4MDBkZXYtPmZpbHRlcl93b3JrKTsKKwkJcXVldWVfd29yayhydDJ4MDBkZXYtPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+ZmlsdGVyX3dvcmspOwogfQogRVhQT1JUX1NZTUJPTF9HUEwocnQyeDAwbWFjX2NvbmZpZ3VyZV9maWx0ZXIpOwogCkBAIC01MDgsNyArNTA5LDcgQEAKIAltZW1jcHkoJmludGYtPmNvbmYsIGJzc19jb25mLCBzaXplb2YoKmJzc19jb25mKSk7CiAJaWYgKGRlbGF5ZWQpIHsKIAkJaW50Zi0+ZGVsYXllZF9mbGFncyB8PSBkZWxheWVkOwotCQlxdWV1ZV93b3JrKHJ0MngwMGRldi0+aHctPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKKwkJcXVldWVfd29yayhydDJ4MDBkZXYtPndvcmtxdWV1ZSwgJnJ0MngwMGRldi0+aW50Zl93b3JrKTsKIAl9CiAJc3Bpbl91bmxvY2soJmludGYtPmxvY2spOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5jCmluZGV4IDk3MWFmMjUuLjYwODkzZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBwY2kuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmMKQEAgLTQxMiw4ICs0MTIsNyBAQAogCWlmIChwY2lfc2V0X213aShwY2lfZGV2KSkKIAkJRVJST1JfUFJPQkUoIk1XSSBub3QgYXZhaWxhYmxlLlxuIik7CiAKLQlpZiAocGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfNjRCSVRfTUFTSykgJiYKLQkgICAgcGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfMzJCSVRfTUFTSykpIHsKKwlpZiAocGNpX3NldF9kbWFfbWFzayhwY2lfZGV2LCBETUFfMzJCSVRfTUFTSykpIHsKIAkJRVJST1JfUFJPQkUoIlBDSSBETUEgbm90IHN1cHBvcnRlZC5cbiIpOwogCQlyZXR2YWwgPSAtRUlPOwogCQlnb3RvIGV4aXRfZGlzYWJsZV9kZXZpY2U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwcGNpLmgKaW5kZXggOWQxY2RiOS4uYjQxOTY3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHBjaS5oCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDBwY2kuaApAQCAtODIsNyArODIsNyBAQAogc3RhdGljIGlubGluZSB2b2lkCiBydDJ4MDBwY2lfcmVnaXN0ZXJfbXVsdGl3cml0ZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LAogCQkJICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyBvZmZzZXQsCi0JCQkgICAgICB2b2lkICp2YWx1ZSwgY29uc3QgdTE2IGxlbmd0aCkKKwkJCSAgICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBjb25zdCB1MTYgbGVuZ3RoKQogewogCW1lbWNweV90b2lvKHJ0MngwMGRldi0+Y3NyLmJhc2UgKyBvZmZzZXQsIHZhbHVlLCBsZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHVzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMHVzYi5jCmluZGV4IDVhMzMxNjcuLmU1Y2VhZTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4MDB1c2IuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwdXNiLmMKQEAgLTM2Miw2ICszNjIsMTIgQEAKIAkJfQogCX0KIAorCS8qCisJICogS2lsbCBndWFyZGlhbiB1cmIgKGlmIHJlcXVpcmVkIGJ5IGRyaXZlcikuCisJICovCisJaWYgKCF0ZXN0X2JpdChEUklWRVJfUkVRVUlSRV9CRUFDT05fR1VBUkQsICZydDJ4MDBkZXYtPmZsYWdzKSkKKwkJcmV0dXJuOworCiAJZm9yIChpID0gMDsgaSA8IHJ0MngwMGRldi0+YmNuLT5saW1pdDsgaSsrKSB7CiAJCXByaXZfYmNuID0gcnQyeDAwZGV2LT5iY24tPmVudHJpZXNbaV0ucHJpdl9kYXRhOwogCQl1c2Jfa2lsbF91cmIocHJpdl9iY24tPnVyYik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ2MXBjaS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NjFwY2kuYwppbmRleCAxNGJjN2IyLi41ODBmOTBiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ2MXBjaS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDYxcGNpLmMKQEAgLTkxNSw3ICs5MTUsNyBAQAogCXJldHVybiBmd19uYW1lOwogfQogCi1zdGF0aWMgdTE2IHJ0NjFwY2lfZ2V0X2Zpcm13YXJlX2NyYyh2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKQorc3RhdGljIHUxNiBydDYxcGNpX2dldF9maXJtd2FyZV9jcmMoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAl1MTYgY3JjOwogCkBAIC05MzIsNyArOTMyLDcgQEAKIAlyZXR1cm4gY3JjOwogfQogCi1zdGF0aWMgaW50IHJ0NjFwY2lfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCB2b2lkICpkYXRhLAorc3RhdGljIGludCBydDYxcGNpX2xvYWRfZmlybXdhcmUoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwgY29uc3Qgdm9pZCAqZGF0YSwKIAkJCQkgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAlpbnQgaTsKQEAgLTEyMDEsNiArMTIwMSwxNSBAQAogCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjhfQUNLX0NUU181NE1CUywgNDIpOwogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIFRYUlhfQ1NSOCwgcmVnKTsKIAorCXJ0MngwMHBjaV9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgVFhSWF9DU1I5LCAmcmVnKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X0JFQUNPTl9JTlRFUlZBTCwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UU0ZfVElDS0lORywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UU0ZfU1lOQywgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9UQlRUX0VOQUJMRSwgMCk7CisJcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIFRYUlhfQ1NSOV9CRUFDT05fR0VOLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RJTUVTVEFNUF9DT01QRU5TQVRFLCAwKTsKKwlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjksIHJlZyk7CisKIAlydDJ4MDBwY2lfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjE1LCAweDAwMDAwMDBmKTsKIAogCXJ0MngwMHBjaV9yZWdpc3Rlcl93cml0ZShydDJ4MDBkZXYsIE1BQ19DU1I2LCAweDAwMDAwZmZmKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDczdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQ3M3VzYi5jCmluZGV4IGRhMTlhM2EuLjZhNjJkNmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDczdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0NzN1c2IuYwpAQCAtMTM0LDExICsxMzQsOCBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0NzN1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1IzIHJlZ2lzdGVyIGJ1c3kuIFdyaXRlIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgZGF0YSBpbnRvIHRoZSBCQlAuCkBAIC0xNTEsNiArMTQ4LDEzIEBACiAKIAlydDczdXNiX3JlZ2lzdGVyX3dyaXRlX2xvY2socnQyeDAwZGV2LCBQSFlfQ1NSMywgcmVnKTsKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gV3JpdGUgZmFpbGVkLlxuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHJ0NzN1c2JfYmJwX3JlYWQoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwKQEAgLTE2NCwxMSArMTY4LDggQEAKIAkgKiBXYWl0IHVudGlsIHRoZSBCQlAgYmVjb21lcyByZWFkeS4KIAkgKi8KIAlyZWcgPSBydDczdXNiX2JicF9jaGVjayhydDJ4MDBkZXYpOwotCWlmIChydDJ4MDBfZ2V0X2ZpZWxkMzIocmVnLCBQSFlfQ1NSM19CVVNZKSkgewotCQlFUlJPUihydDJ4MDBkZXYsICJQSFlfQ1NSMyByZWdpc3RlciBidXN5LiBSZWFkIGZhaWxlZC5cbiIpOwotCQltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKLQkJcmV0dXJuOwotCX0KKwlpZiAocnQyeDAwX2dldF9maWVsZDMyKHJlZywgUEhZX0NTUjNfQlVTWSkpCisJCWdvdG8gZXhpdF9mYWlsOwogCiAJLyoKIAkgKiBXcml0ZSB0aGUgcmVxdWVzdCBpbnRvIHRoZSBCQlAuCkBAIC0xODQsMTQgKzE4NSwxOSBAQAogCSAqIFdhaXQgdW50aWwgdGhlIEJCUCBiZWNvbWVzIHJlYWR5LgogCSAqLwogCXJlZyA9IHJ0NzN1c2JfYmJwX2NoZWNrKHJ0MngwMGRldik7Ci0JaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKSB7Ci0JCUVSUk9SKHJ0MngwMGRldiwgIlBIWV9DU1IzIHJlZ2lzdGVyIGJ1c3kuIFJlYWQgZmFpbGVkLlxuIik7Ci0JCSp2YWx1ZSA9IDB4ZmY7Ci0JCXJldHVybjsKLQl9CisJaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX0JVU1kpKQorCQlnb3RvIGV4aXRfZmFpbDsKIAogCSp2YWx1ZSA9IHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIFBIWV9DU1IzX1ZBTFVFKTsKIAltdXRleF91bmxvY2soJnJ0MngwMGRldi0+dXNiX2NhY2hlX211dGV4KTsKKworCXJldHVybjsKKworZXhpdF9mYWlsOgorCW11dGV4X3VubG9jaygmcnQyeDAwZGV2LT51c2JfY2FjaGVfbXV0ZXgpOworCisJRVJST1IocnQyeDAwZGV2LCAiUEhZX0NTUjMgcmVnaXN0ZXIgYnVzeS4gUmVhZCBmYWlsZWQuXG4iKTsKKwkqdmFsdWUgPSAweGZmOwogfQogCiBzdGF0aWMgdm9pZCBydDczdXNiX3JmX3dyaXRlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsCkBAIC04NTAsNyArODU2LDcgQEAKIAlyZXR1cm4gRklSTVdBUkVfUlQyNTcxOwogfQogCi1zdGF0aWMgdTE2IHJ0NzN1c2JfZ2V0X2Zpcm13YXJlX2NyYyh2b2lkICpkYXRhLCBjb25zdCBzaXplX3QgbGVuKQorc3RhdGljIHUxNiBydDczdXNiX2dldF9maXJtd2FyZV9jcmMoY29uc3Qgdm9pZCAqZGF0YSwgY29uc3Qgc2l6ZV90IGxlbikKIHsKIAl1MTYgY3JjOwogCkBAIC04NjcsMTMgKzg3MywxMyBAQAogCXJldHVybiBjcmM7CiB9CiAKLXN0YXRpYyBpbnQgcnQ3M3VzYl9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYsIHZvaWQgKmRhdGEsCitzdGF0aWMgaW50IHJ0NzN1c2JfbG9hZF9maXJtd2FyZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2LCBjb25zdCB2b2lkICpkYXRhLAogCQkJCSBjb25zdCBzaXplX3QgbGVuKQogewogCXVuc2lnbmVkIGludCBpOwogCWludCBzdGF0dXM7CiAJdTMyIHJlZzsKLQljaGFyICpwdHIgPSBkYXRhOworCWNvbnN0IGNoYXIgKnB0ciA9IGRhdGE7CiAJY2hhciAqY2FjaGU7CiAJaW50IGJ1ZmxlbjsKIAlpbnQgdGltZW91dDsKQEAgLTEwMDAsNiArMTAwNiwxNSBAQAogCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjhfQUNLX0NUU181NE1CUywgNDIpOwogCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjgsIHJlZyk7CiAKKwlydDczdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBUWFJYX0NTUjksICZyZWcpOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfQkVBQ09OX0lOVEVSVkFMLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RTRl9USUNLSU5HLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RTRl9TWU5DLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X1RCVFRfRU5BQkxFLCAwKTsKKwlydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgVFhSWF9DU1I5X0JFQUNPTl9HRU4sIDApOworCXJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBUWFJYX0NTUjlfVElNRVNUQU1QX0NPTVBFTlNBVEUsIDApOworCXJ0NzN1c2JfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWFJYX0NTUjksIHJlZyk7CisKIAlydDczdXNiX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhSWF9DU1IxNSwgMHgwMDAwMDAwZik7CiAKIAlydDczdXNiX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBNQUNfQ1NSNiwgJnJlZyk7CkBAIC0yMTMxLDYgKzIxNDYsNyBAQAogCS8qIEQtTGluayAqLwogCXsgVVNCX0RFVklDRSgweDA3ZDEsIDB4M2MwMyksIFVTQl9ERVZJQ0VfREFUQSgmcnQ3M3VzYl9vcHMpIH0sCiAJeyBVU0JfREVWSUNFKDB4MDdkMSwgMHgzYzA0KSwgVVNCX0RFVklDRV9EQVRBKCZydDczdXNiX29wcykgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwN2QxLCAweDNjMDYpLCBVU0JfREVWSUNFX0RBVEEoJnJ0NzN1c2Jfb3BzKSB9LAogCXsgVVNCX0RFVklDRSgweDA3ZDEsIDB4M2MwNyksIFVTQl9ERVZJQ0VfREFUQSgmcnQ3M3VzYl9vcHMpIH0sCiAJLyogR2VtdGVrICovCiAJeyBVU0JfREVWSUNFKDB4MTVhOSwgMHgwMDA0KSwgVVNCX0RFVklDRV9EQVRBKCZydDczdXNiX29wcykgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxODBfZ3JmNTEwMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9ncmY1MTAxLmMKaW5kZXggNWQ0NzkzNS4uOTQ3ZWU1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9ncmY1MTAxLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9ncmY1MTAxLmMKQEAgLTg4LDcgKzg4LDcgQEAKIAl3cml0ZV9ncmY1MTAxKGRldiwgMHgwQiwgY2hhbik7CiAJd3JpdGVfZ3JmNTEwMShkZXYsIDB4MDcsIDB4MTAwMCk7CiAKLQlncmY1MTAxX3dyaXRlX3BoeV9hbnRlbm5hKGRldiwgY2hhbik7CisJZ3JmNTEwMV93cml0ZV9waHlfYW50ZW5uYShkZXYsIGNoYW5uZWwpOwogfQogCiBzdGF0aWMgdm9pZCBncmY1MTAxX3JmX3N0b3Aoc3RydWN0IGllZWU4MDIxMV9odyAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9tYXgyODIwLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGw4MTgwX21heDI4MjAuYwppbmRleCBhMzRkZmQzLi42YzgyNWZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGw4MTgwX21heDI4MjAuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGw4MTgwX21heDI4MjAuYwpAQCAtNzgsNyArNzgsOCBAQAogCQkJCSAgIHN0cnVjdCBpZWVlODAyMTFfY29uZiAqY29uZikKIHsKIAlzdHJ1Y3QgcnRsODE4MF9wcml2ICpwcml2ID0gZGV2LT5wcml2OwotCWludCBjaGFubmVsID0gaWVlZTgwMjExX2ZyZXF1ZW5jeV90b19jaGFubmVsKGNvbmYtPmNoYW5uZWwtPmNlbnRlcl9mcmVxKTsKKwlpbnQgY2hhbm5lbCA9IGNvbmYgPworCQlpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoY29uZi0+Y2hhbm5lbC0+Y2VudGVyX2ZyZXEpIDogMTsKIAl1bnNpZ25lZCBpbnQgY2hhbl9pZHggPSBjaGFubmVsIC0gMTsKIAl1MzIgdHhwdyA9IHByaXYtPmNoYW5uZWxzW2NoYW5faWR4XS5od192YWx1ZSAmIDB4RkY7CiAJdTMyIGNoYW4gPSBtYXgyODIwX2NoYW5bY2hhbl9pZHhdOwpAQCAtODcsNyArODgsNyBAQAogCSAqIHNhMjQwMCwgZm9yIE1BWElNIHdlIGRvIHRoaXMgZGlyZWN0bHkgZnJvbSBCQiAqLwogCXJ0bDgxODBfd3JpdGVfcGh5KGRldiwgMywgdHhwdyk7CiAKLQltYXgyODIwX3dyaXRlX3BoeV9hbnRlbm5hKGRldiwgY2hhbik7CisJbWF4MjgyMF93cml0ZV9waHlfYW50ZW5uYShkZXYsIGNoYW5uZWwpOwogCXdyaXRlX21heDI4MjAoZGV2LCAzLCBjaGFuKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9zYTI0MDAuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0bDgxODBfc2EyNDAwLmMKaW5kZXggMDMxMWI0ZS4uY2VhNGUwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsODE4MF9zYTI0MDAuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGw4MTgwX3NhMjQwMC5jCkBAIC04Niw3ICs4Niw3IEBACiAKIAl3cml0ZV9zYTI0MDAoZGV2LCA3LCB0eHB3KTsKIAotCXNhMjQwMF93cml0ZV9waHlfYW50ZW5uYShkZXYsIGNoYW4pOworCXNhMjQwMF93cml0ZV9waHlfYW50ZW5uYShkZXYsIGNoYW5uZWwpOwogCiAJd3JpdGVfc2EyNDAwKGRldiwgMCwgY2hhbik7CiAJd3JpdGVfc2EyNDAwKGRldiwgMSwgMHhiYjUwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIwMS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKaW5kZXggZDVjMGM2Ni4uNzhiYWEwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjAxLmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIHN0YXRpYyBpbnQgemQxMjAxX2Z3X3VwbG9hZChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCBpbnQgYXBmdykKIHsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5OwotCWNoYXIgKmRhdGE7CisJY29uc3QgY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBsb25nIGxlbjsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGNoYXIgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwppbmRleCA2NDI0ZTVhLi42OTRlOTVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy96ZDEyMTFydy96ZF9tYWMuYwpAQCAtNzE5LDcgKzcxOSw3IEBACiAJZmMgPSBsZTE2X3RvX2NwdSgqKChfX2xlMTYgKikgYnVmZmVyKSk7CiAKIAlpc19xb3MgPSAoKGZjICYgSUVFRTgwMjExX0ZDVExfRlRZUEUpID09IElFRUU4MDIxMV9GVFlQRV9EQVRBKSAmJgotCQkgKChmYyAmIElFRUU4MDIxMV9GQ1RMX1NUWVBFKSA9PSBJRUVFODAyMTFfU1RZUEVfUU9TX0RBVEEpOworCQkgKGZjICYgSUVFRTgwMjExX1NUWVBFX1FPU19EQVRBKTsKIAlpc180YWRkciA9IChmYyAmIChJRUVFODAyMTFfRkNUTF9UT0RTIHwgSUVFRTgwMjExX0ZDVExfRlJPTURTKSkgPT0KIAkJICAgKElFRUU4MDIxMV9GQ1RMX1RPRFMgfCBJRUVFODAyMTFfRkNUTF9GUk9NRFMpOwogCW5lZWRfcGFkZGluZyA9IGlzX3FvcyBeIGlzXzRhZGRyOwpAQCAtNzY1LDYgKzc2NSw3IEBACiB7CiAJc3RydWN0IHpkX21hYyAqbWFjID0gemRfaHdfbWFjKGh3KTsKIAltYWMtPnR5cGUgPSBJRUVFODAyMTFfSUZfVFlQRV9JTlZBTElEOworCXpkX3NldF9iZWFjb25faW50ZXJ2YWwoJm1hYy0+Y2hpcCwgMCk7CiAJemRfd3JpdGVfbWFjX2FkZHIoJm1hYy0+Y2hpcCwgTlVMTCk7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3pkMTIxMXJ3L3pkX3VzYi5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKaW5kZXggODk0MWY1ZS4uNmNkYWQ5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvemQxMjExcncvemRfdXNiLmMKQEAgLTY0LDYgKzY0LDcgQEAKIAl7IFVTQl9ERVZJQ0UoMHgwNzliLCAweDAwNjIpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDE1ODIsIDB4NjAwMyksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDUwZCwgMHg3MDVjKSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwODNhLCAweGU1MDYpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LAogCXsgVVNCX0RFVklDRSgweDA4M2EsIDB4NDUwNSksIC5kcml2ZXJfaW5mbyA9IERFVklDRV9aRDEyMTFCIH0sCiAJeyBVU0JfREVWSUNFKDB4MDQ3MSwgMHgxMjM2KSwgLmRyaXZlcl9pbmZvID0gREVWSUNFX1pEMTIxMUIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2IxLCAweDAwMjQpLCAuZHJpdmVyX2luZm8gPSBERVZJQ0VfWkQxMjExQiB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwppbmRleCA4YmRkZmYxLi5lZjY3MWQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYworKysgYi9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYwpAQCAtOTQ2LDggKzk0Niw3IEBACiAJCXdvcmtfZG9uZSsrOwogCX0KIAotCXdoaWxlICgoc2tiID0gX19za2JfZGVxdWV1ZSgmZXJycSkpKQotCQlrZnJlZV9za2Ioc2tiKTsKKwlfX3NrYl9xdWV1ZV9wdXJnZSgmZXJycSk7CiAKIAl3b3JrX2RvbmUgLT0gaGFuZGxlX2luY29taW5nX3F1ZXVlKGRldiwgJnJ4cSk7CiAKQEAgLTEwNzksOCArMTA3OCw3IEBACiAJCX0KIAl9CiAKLQl3aGlsZSAoKHNrYiA9IF9fc2tiX2RlcXVldWUoJmZyZWVfbGlzdCkpICE9IE5VTEwpCi0JCWRldl9rZnJlZV9za2Ioc2tiKTsKKwlfX3NrYl9xdWV1ZV9wdXJnZSgmZnJlZV9saXN0KTsKIAogCXNwaW5fdW5sb2NrX2JoKCZucC0+cnhfbG9jayk7CiB9CkBAIC0xMzI2LDcgKzEzMjQsNyBAQAogCQlnb3RvIGZhaWw7CiAJfQogCi0JdHhzID0gKHN0cnVjdCB4ZW5fbmV0aWZfdHhfc3JpbmcgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJdHhzID0gKHN0cnVjdCB4ZW5fbmV0aWZfdHhfc3JpbmcgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX05PSU8gfCBfX0dGUF9ISUdIKTsKIAlpZiAoIXR4cykgewogCQllcnIgPSAtRU5PTUVNOwogCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwgZXJyLCAiYWxsb2NhdGluZyB0eCByaW5nIHBhZ2UiKTsKQEAgLTEzNDIsNyArMTM0MCw3IEBACiAJfQogCiAJaW5mby0+dHhfcmluZ19yZWYgPSBlcnI7Ci0JcnhzID0gKHN0cnVjdCB4ZW5fbmV0aWZfcnhfc3JpbmcgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7CisJcnhzID0gKHN0cnVjdCB4ZW5fbmV0aWZfcnhfc3JpbmcgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX05PSU8gfCBfX0dGUF9ISUdIKTsKIAlpZiAoIXJ4cykgewogCQllcnIgPSAtRU5PTUVNOwogCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwgZXJyLCAiYWxsb2NhdGluZyByeCByaW5nIHBhZ2UiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvb2Yvb2ZfaTJjLmMgYi9kcml2ZXJzL29mL29mX2kyYy5jCmluZGV4IDcxNWE0NDQuLmIyY2NkY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvb2Yvb2ZfaTJjLmMKKysrIGIvZHJpdmVycy9vZi9vZl9pMmMuYwpAQCAtMjEsNyArMjEsNiBAQAogfTsKIAogc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyX2RldmljZSBpMmNfZGV2aWNlc1tdID0gewotCXsgImRhbGxhcyxkczEzNzQiLCAicnRjLWRzMTM3NCIgfSwKIH07CiAKIHN0YXRpYyBpbnQgb2ZfZmluZF9pMmNfZHJpdmVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGFyaXNjL2Vpc2FfZWVwcm9tLmMgYi9kcml2ZXJzL3BhcmlzYy9laXNhX2VlcHJvbS5jCmluZGV4IDg2ZTljODQuLjVhYzIwNzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGFyaXNjL2Vpc2FfZWVwcm9tLmMKKysrIGIvZHJpdmVycy9wYXJpc2MvZWlzYV9lZXByb20uYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CkBAIC04Myw2ICs4NCw4IEBACiAKIHN0YXRpYyBpbnQgZWlzYV9lZXByb21fb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOworCiAJaWYgKGZpbGUtPmZfbW9kZSAmIDIpCiAJCXJldHVybiAtRUlOVkFMOwogICAgCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9hY2Nlc3MuYyBiL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCmluZGV4IGVjOGY3MDAuLjM5YmI5NmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCisrKyBiL2RyaXZlcnMvcGNpL2FjY2Vzcy5jCkBAIC0xNzgsOCArMTc4LDcgQEAKIAlpbnQgcmV0OwogCWludCBiZWdpbiwgZW5kLCBpOwogCi0JaWYgKHBvcyA8IDAgfHwgcG9zID4gUENJX1ZQRF9QQ0kyMl9TSVpFIHx8Ci0JICAgIHNpemUgPiBQQ0lfVlBEX1BDSTIyX1NJWkUgIC0gcG9zKQorCWlmIChwb3MgPCAwIHx8IHBvcyA+IHZwZC0+YmFzZS5sZW4gfHwgc2l6ZSA+IHZwZC0+YmFzZS5sZW4gIC0gcG9zKQogCQlyZXR1cm4gLUVJTlZBTDsKIAlpZiAoc2l6ZSA9PSAwKQogCQlyZXR1cm4gMDsKQEAgLTIyMyw4ICsyMjIsOCBAQAogCXUzMiB2YWw7CiAJaW50IHJldDsKIAotCWlmIChwb3MgPCAwIHx8IHBvcyA+IFBDSV9WUERfUENJMjJfU0laRSB8fCBwb3MgJiAzIHx8Ci0JICAgIHNpemUgPiBQQ0lfVlBEX1BDSTIyX1NJWkUgLSBwb3MgfHwgc2l6ZSA8IDQpCisJaWYgKHBvcyA8IDAgfHwgcG9zID4gdnBkLT5iYXNlLmxlbiB8fCBwb3MgJiAzIHx8CisJICAgIHNpemUgPiB2cGQtPmJhc2UubGVuIC0gcG9zIHx8IHNpemUgPCA0KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXZhbCA9ICh1OCkgKmJ1ZisrOwpAQCAtMjU1LDExICsyNTQsNiBAQAogCXJldHVybiA0OwogfQogCi1zdGF0aWMgaW50IHBjaV92cGRfcGNpMjJfZ2V0X3NpemUoc3RydWN0IHBjaV9kZXYgKmRldikKLXsKLQlyZXR1cm4gUENJX1ZQRF9QQ0kyMl9TSVpFOwotfQotCiBzdGF0aWMgdm9pZCBwY2lfdnBkX3BjaTIyX3JlbGVhc2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlrZnJlZShjb250YWluZXJfb2YoZGV2LT52cGQsIHN0cnVjdCBwY2lfdnBkX3BjaTIyLCBiYXNlKSk7CkBAIC0yNjgsNyArMjYyLDYgQEAKIHN0YXRpYyBzdHJ1Y3QgcGNpX3ZwZF9vcHMgcGNpX3ZwZF9wY2kyMl9vcHMgPSB7CiAJLnJlYWQgPSBwY2lfdnBkX3BjaTIyX3JlYWQsCiAJLndyaXRlID0gcGNpX3ZwZF9wY2kyMl93cml0ZSwKLQkuZ2V0X3NpemUgPSBwY2lfdnBkX3BjaTIyX2dldF9zaXplLAogCS5yZWxlYXNlID0gcGNpX3ZwZF9wY2kyMl9yZWxlYXNlLAogfTsKIApAQCAtMjg0LDYgKzI3Nyw3IEBACiAJaWYgKCF2cGQpCiAJCXJldHVybiAtRU5PTUVNOwogCisJdnBkLT5iYXNlLmxlbiA9IFBDSV9WUERfUENJMjJfU0laRTsKIAl2cGQtPmJhc2Uub3BzID0gJnBjaV92cGRfcGNpMjJfb3BzOwogCXNwaW5fbG9ja19pbml0KCZ2cGQtPmxvY2spOwogCXZwZC0+Y2FwID0gY2FwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9hY3BpcGhwX2dsdWUuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvYWNwaXBocF9nbHVlLmMKaW5kZXggNjQ4NTk2ZC4uOTExNTZmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9hY3BpcGhwX2dsdWUuYworKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL2FjcGlwaHBfZ2x1ZS5jCkBAIC03MDAsOSArNzAwLDEwIEBACiAJYWNwaV93YWxrX25hbWVzcGFjZShBQ1BJX1RZUEVfREVWSUNFLCBoYW5kbGUsICh1MzIpMSwKIAkJCQljbGVhbnVwX3AycF9icmlkZ2UsIE5VTEwsIE5VTEwpOwogCi0JaWYgKCEoYnJpZGdlID0gYWNwaXBocF9oYW5kbGVfdG9fYnJpZGdlKGhhbmRsZSkpKQotCQlyZXR1cm4gQUVfT0s7Ci0JY2xlYW51cF9icmlkZ2UoYnJpZGdlKTsKKwlicmlkZ2UgPSBhY3BpcGhwX2hhbmRsZV90b19icmlkZ2UoaGFuZGxlKTsKKwlpZiAoYnJpZGdlKQorCQljbGVhbnVwX2JyaWRnZShicmlkZ2UpOworCiAJcmV0dXJuIEFFX09LOwogfQogCkBAIC03MTUsOSArNzE2LDE5IEBACiAJYWNwaV93YWxrX25hbWVzcGFjZShBQ1BJX1RZUEVfREVWSUNFLCBoYW5kbGUsCiAJCQkJKHUzMikxLCBjbGVhbnVwX3AycF9icmlkZ2UsIE5VTEwsIE5VTEwpOwogCisJLyoKKwkgKiBPbiByb290IGJyaWRnZXMgd2l0aCBob3RwbHVnIHNsb3RzIGRpcmVjdGx5IHVuZGVybmVhdGggKGllLAorCSAqIG5vIHAycCBicmlkZ2UgaW5iZXR3ZWVuKSwgd2UgY2FsbCBjbGVhbnVwX2JyaWRnZSgpLiAKKwkgKgorCSAqIFRoZSBlbHNlIGNsYXVzZSBjbGVhbnMgdXAgcm9vdCBicmlkZ2VzIHRoYXQgZWl0aGVyIGhhZCBubworCSAqIGhvdHBsdWcgc2xvdHMgYXQgYWxsLCBvciBoYWQgYSBwMnAgYnJpZGdlIHVuZGVybmVhdGguCisJICovCiAJYnJpZGdlID0gYWNwaXBocF9oYW5kbGVfdG9fYnJpZGdlKGhhbmRsZSk7CiAJaWYgKGJyaWRnZSkKIAkJY2xlYW51cF9icmlkZ2UoYnJpZGdlKTsKKwllbHNlCisJCWFjcGlfcmVtb3ZlX25vdGlmeV9oYW5kbGVyKGhhbmRsZSwgQUNQSV9TWVNURU1fTk9USUZZLAorCQkJCQkgICBoYW5kbGVfaG90cGx1Z19ldmVudF9icmlkZ2UpOwogfQogCiBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKiBnZXRfYXBpY19wY2lfaW5mbyhhY3BpX2hhbmRsZSBoYW5kbGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaV9ob3RwbHVnX2NvcmUuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpX2hvdHBsdWdfY29yZS5jCmluZGV4IDkyNWJhMTYuLmExMTAyMWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpX2hvdHBsdWdfY29yZS5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpX2hvdHBsdWdfY29yZS5jCkBAIC02MTksNiArNjE5LDcgQEAKIGludCBwY2lfaHBfcmVnaXN0ZXIgKHN0cnVjdCBob3RwbHVnX3Nsb3QgKnNsb3QpCiB7CiAJaW50IHJlc3VsdDsKKwlzdHJ1Y3QgaG90cGx1Z19zbG90ICp0bXA7CiAKIAlpZiAoc2xvdCA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTYzMCw3ICs2MzEsMTEgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JLyogdGhpcyBjYW4gZmFpbCBpZiB3ZSBoYXZlIGFscmVhZHkgcmVnaXN0ZXJlZCBhIHNsb3Qgd2l0aCB0aGUgc2FtZSBuYW1lICovCisJLyogQ2hlY2sgaWYgd2UgaGF2ZSBhbHJlYWR5IHJlZ2lzdGVyZWQgYSBzbG90IHdpdGggdGhlIHNhbWUgbmFtZS4gKi8KKwl0bXAgPSBnZXRfc2xvdF9mcm9tX25hbWUoc2xvdC0+bmFtZSk7CisJaWYgKHRtcCkKKwkJcmV0dXJuIC1FRVhJU1Q7CisKIAlzbG90LT5rb2JqLmtzZXQgPSBwY2lfaG90cGx1Z19zbG90c19rc2V0OwogCXJlc3VsdCA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKCZzbG90LT5rb2JqLCAmaG90cGx1Z19zbG90X2t0eXBlLCBOVUxMLAogCQkJCSAgICAgICIlcyIsIHNsb3QtPm5hbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHAuaCBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwLmgKaW5kZXggODI2NGE3Ni4uNzljOWRkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHAuaAorKysgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocC5oCkBAIC05Nyw2ICs5Nyw3IEBACiAJdTggY2FwX2Jhc2U7CiAJc3RydWN0IHRpbWVyX2xpc3QgcG9sbF90aW1lcjsKIAl2b2xhdGlsZSBpbnQgY21kX2J1c3k7CisJdW5zaWduZWQgaW50IG5vX2NtZF9jb21wbGV0ZToxOwogfTsKIAogI2RlZmluZSBJTlRfQlVUVE9OX0lHTk9SRQkJMApAQCAtMTM1LDYgKzEzNiw3IEBACiAjZGVmaW5lIFBXUl9MRURfUFJTTgkweDAwMDAwMDEwCiAjZGVmaW5lIEhQX1NVUFJfUk1fU1VQCTB4MDAwMDAwMjAKICNkZWZpbmUgRU1JX1BSU04JMHgwMDAyMDAwMAorI2RlZmluZSBOT19DTURfQ01QTF9TVVAJMHgwMDA0MDAwMAogCiAjZGVmaW5lIEFUVE5fQlVUVE4oY3RybCkJKChjdHJsKS0+c2xvdF9jYXAgJiBBVFROX0JVVFROX1BSU04pCiAjZGVmaW5lIFBPV0VSX0NUUkwoY3RybCkJKChjdHJsKS0+c2xvdF9jYXAgJiBQV1JfQ1RSTF9QUlNOKQpAQCAtMTQzLDEzICsxNDUsMTQgQEAKICNkZWZpbmUgUFdSX0xFRChjdHJsKQkJKChjdHJsKS0+c2xvdF9jYXAgJiBQV1JfTEVEX1BSU04pCiAjZGVmaW5lIEhQX1NVUFJfUk0oY3RybCkJKChjdHJsKS0+c2xvdF9jYXAgJiBIUF9TVVBSX1JNX1NVUCkKICNkZWZpbmUgRU1JKGN0cmwpCQkoKGN0cmwpLT5zbG90X2NhcCAmIEVNSV9QUlNOKQorI2RlZmluZSBOT19DTURfQ01QTChjdHJsKQkoKGN0cmwpLT5zbG90X2NhcCAmIE5PX0NNRF9DTVBMX1NVUCkKIAogZXh0ZXJuIGludCBwY2llaHBfc3lzZnNfZW5hYmxlX3Nsb3Qoc3RydWN0IHNsb3QgKnNsb3QpOwogZXh0ZXJuIGludCBwY2llaHBfc3lzZnNfZGlzYWJsZV9zbG90KHN0cnVjdCBzbG90ICpzbG90KTsKLWV4dGVybiB1OCBwY2llaHBfaGFuZGxlX2F0dGVudGlvbl9idXR0b24odTggaHBfc2xvdCwgc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpOwotZXh0ZXJuIHU4IHBjaWVocF9oYW5kbGVfc3dpdGNoX2NoYW5nZSh1OCBocF9zbG90LCBzdHJ1Y3QgY29udHJvbGxlciAqY3RybCk7Ci1leHRlcm4gdTggcGNpZWhwX2hhbmRsZV9wcmVzZW5jZV9jaGFuZ2UodTggaHBfc2xvdCwgc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpOwotZXh0ZXJuIHU4IHBjaWVocF9oYW5kbGVfcG93ZXJfZmF1bHQodTggaHBfc2xvdCwgc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpOworZXh0ZXJuIHU4IHBjaWVocF9oYW5kbGVfYXR0ZW50aW9uX2J1dHRvbihzdHJ1Y3Qgc2xvdCAqcF9zbG90KTsKKyAgZXh0ZXJuIHU4IHBjaWVocF9oYW5kbGVfc3dpdGNoX2NoYW5nZShzdHJ1Y3Qgc2xvdCAqcF9zbG90KTsKK2V4dGVybiB1OCBwY2llaHBfaGFuZGxlX3ByZXNlbmNlX2NoYW5nZShzdHJ1Y3Qgc2xvdCAqcF9zbG90KTsKK2V4dGVybiB1OCBwY2llaHBfaGFuZGxlX3Bvd2VyX2ZhdWx0KHN0cnVjdCBzbG90ICpwX3Nsb3QpOwogZXh0ZXJuIGludCBwY2llaHBfY29uZmlndXJlX2RldmljZShzdHJ1Y3Qgc2xvdCAqcF9zbG90KTsKIGV4dGVybiBpbnQgcGNpZWhwX3VuY29uZmlndXJlX2RldmljZShzdHJ1Y3Qgc2xvdCAqcF9zbG90KTsKIGV4dGVybiB2b2lkIHBjaWVocF9xdWV1ZV9wdXNoYnV0dG9uX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2NvcmUuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2NvcmUuYwppbmRleCA0M2Q4ZGRiLi40OGEyZWQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jb3JlLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfY29yZS5jCkBAIC0yNTQsNyArMjU0LDExIEBACiAJCSAgICBzbG90LT5ocF9zbG90LCBzbG90LT5udW1iZXIsIGN0cmwtPnNsb3RfZGV2aWNlX29mZnNldCk7CiAJCXJldHZhbCA9IHBjaV9ocF9yZWdpc3Rlcihob3RwbHVnX3Nsb3QpOwogCQlpZiAocmV0dmFsKSB7Ci0JCQllcnIgKCJwY2lfaHBfcmVnaXN0ZXIgZmFpbGVkIHdpdGggZXJyb3IgJWRcbiIsIHJldHZhbCk7CisJCQllcnIoInBjaV9ocF9yZWdpc3RlciBmYWlsZWQgd2l0aCBlcnJvciAlZFxuIiwgcmV0dmFsKTsKKwkJCWlmIChyZXR2YWwgPT0gLUVFWElTVCkKKwkJCQllcnIoIkZhaWxlZCB0byByZWdpc3RlciBzbG90IGJlY2F1c2Ugb2YgbmFtZSAiCisJCQkJICAgICJjb2xsaXNpb24uIFRyeSBcJ3BjaWVocF9zbG90X3dpdGhfYnVzXCcgIgorCQkJCSAgICAibW9kdWxlIG9wdGlvbi5cbiIpOwogCQkJZ290byBlcnJvcl9pbmZvOwogCQl9CiAJCS8qIGNyZWF0ZSBhZGRpdGlvbmFsIHN5c2ZzIGVudHJpZXMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2N0cmwuYwppbmRleCAwYTdhYTYyLi45NmE1ZDU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9jdHJsLmMKKysrIGIvZHJpdmVycy9wY2kvaG90cGx1Zy9wY2llaHBfY3RybC5jCkBAIC01NSwxNiArNTUsMTMgQEAKIAlyZXR1cm4gMDsKIH0KIAotdTggcGNpZWhwX2hhbmRsZV9hdHRlbnRpb25fYnV0dG9uKHU4IGhwX3Nsb3QsIHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQordTggcGNpZWhwX2hhbmRsZV9hdHRlbnRpb25fYnV0dG9uKHN0cnVjdCBzbG90ICpwX3Nsb3QpCiB7Ci0Jc3RydWN0IHNsb3QgKnBfc2xvdDsKIAl1MzIgZXZlbnRfdHlwZTsKIAogCS8qIEF0dGVudGlvbiBCdXR0b24gQ2hhbmdlICovCiAJZGJnKCJwY2llaHA6ICBBdHRlbnRpb24gYnV0dG9uIGludGVycnVwdCByZWNlaXZlZC5cbiIpOwogCi0JcF9zbG90ID0gcGNpZWhwX2ZpbmRfc2xvdChjdHJsLCBocF9zbG90ICsgY3RybC0+c2xvdF9kZXZpY2Vfb2Zmc2V0KTsKLQogCS8qCiAJICogIEJ1dHRvbiBwcmVzc2VkIC0gU2VlIGlmIG5lZWQgdG8gVEFLRSBBQ1RJT04hISEKIAkgKi8KQEAgLTc2LDE4ICs3MywxNSBAQAogCXJldHVybiAwOwogfQogCi11OCBwY2llaHBfaGFuZGxlX3N3aXRjaF9jaGFuZ2UodTggaHBfc2xvdCwgc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpCit1OCBwY2llaHBfaGFuZGxlX3N3aXRjaF9jaGFuZ2Uoc3RydWN0IHNsb3QgKnBfc2xvdCkKIHsKLQlzdHJ1Y3Qgc2xvdCAqcF9zbG90OwogCXU4IGdldHN0YXR1czsKIAl1MzIgZXZlbnRfdHlwZTsKIAogCS8qIFN3aXRjaCBDaGFuZ2UgKi8KIAlkYmcoInBjaWVocDogIFN3aXRjaCBpbnRlcnJ1cHQgcmVjZWl2ZWQuXG4iKTsKIAotCXBfc2xvdCA9IHBjaWVocF9maW5kX3Nsb3QoY3RybCwgaHBfc2xvdCArIGN0cmwtPnNsb3RfZGV2aWNlX29mZnNldCk7CiAJcF9zbG90LT5ocGNfb3BzLT5nZXRfbGF0Y2hfc3RhdHVzKHBfc2xvdCwgJmdldHN0YXR1cyk7Ci0KIAlpZiAoZ2V0c3RhdHVzKSB7CiAJCS8qCiAJCSAqIFN3aXRjaCBvcGVuZWQKQEAgLTEwNywxNyArMTAxLDE0IEBACiAJcmV0dXJuIDE7CiB9CiAKLXU4IHBjaWVocF9oYW5kbGVfcHJlc2VuY2VfY2hhbmdlKHU4IGhwX3Nsb3QsIHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQordTggcGNpZWhwX2hhbmRsZV9wcmVzZW5jZV9jaGFuZ2Uoc3RydWN0IHNsb3QgKnBfc2xvdCkKIHsKLQlzdHJ1Y3Qgc2xvdCAqcF9zbG90OwogCXUzMiBldmVudF90eXBlOwogCXU4IHByZXNlbmNlX3NhdmU7CiAKIAkvKiBQcmVzZW5jZSBDaGFuZ2UgKi8KIAlkYmcoInBjaWVocDogIFByZXNlbmNlL05vdGlmeSBpbnB1dCBjaGFuZ2UuXG4iKTsKIAotCXBfc2xvdCA9IHBjaWVocF9maW5kX3Nsb3QoY3RybCwgaHBfc2xvdCArIGN0cmwtPnNsb3RfZGV2aWNlX29mZnNldCk7Ci0KIAkvKiBTd2l0Y2ggaXMgb3BlbiwgYXNzdW1lIGEgcHJlc2VuY2UgY2hhbmdlCiAJICogU2F2ZSB0aGUgcHJlc2VuY2Ugc3RhdGUKIAkgKi8KQEAgLTE0MSwxNiArMTMyLDEzIEBACiAJcmV0dXJuIDE7CiB9CiAKLXU4IHBjaWVocF9oYW5kbGVfcG93ZXJfZmF1bHQodTggaHBfc2xvdCwgc3RydWN0IGNvbnRyb2xsZXIgKmN0cmwpCit1OCBwY2llaHBfaGFuZGxlX3Bvd2VyX2ZhdWx0KHN0cnVjdCBzbG90ICpwX3Nsb3QpCiB7Ci0Jc3RydWN0IHNsb3QgKnBfc2xvdDsKIAl1MzIgZXZlbnRfdHlwZTsKIAogCS8qIHBvd2VyIGZhdWx0ICovCiAJZGJnKCJwY2llaHA6ICBQb3dlciBmYXVsdCBpbnRlcnJ1cHQgcmVjZWl2ZWQuXG4iKTsKIAotCXBfc2xvdCA9IHBjaWVocF9maW5kX3Nsb3QoY3RybCwgaHBfc2xvdCArIGN0cmwtPnNsb3RfZGV2aWNlX29mZnNldCk7Ci0KIAlpZiAoICEocF9zbG90LT5ocGNfb3BzLT5xdWVyeV9wb3dlcl9mYXVsdChwX3Nsb3QpKSkgewogCQkvKgogCQkgKiBwb3dlciBmYXVsdCBDbGVhcmVkCkBAIC0xNjMsNyArMTUxLDcgQEAKIAkJICovCiAJCWluZm8oIlBvd2VyIGZhdWx0IG9uIFNsb3QoJXMpXG4iLCBwX3Nsb3QtPm5hbWUpOwogCQlldmVudF90eXBlID0gSU5UX1BPV0VSX0ZBVUxUOwotCQlpbmZvKCJwb3dlciBmYXVsdCBiaXQgJXggc2V0XG4iLCBocF9zbG90KTsKKwkJaW5mbygicG93ZXIgZmF1bHQgYml0ICV4IHNldFxuIiwgMCk7CiAJfQogCiAJcXVldWVfaW50ZXJydXB0X2V2ZW50KHBfc2xvdCwgZXZlbnRfdHlwZSk7CkBAIC0xODYsNiArMTc0LDEzIEBACiAJCX0KIAl9CiAKKwkvKgorCSAqIEFmdGVyIHR1cm5pbmcgcG93ZXIgb2ZmLCB3ZSBtdXN0IHdhaXQgZm9yIGF0IGxlYXN0IDEgc2Vjb25kCisJICogYmVmb3JlIHRha2luZyBhbnkgYWN0aW9uIHRoYXQgcmVsaWVzIG9uIHBvd2VyIGhhdmluZyBiZWVuCisJICogcmVtb3ZlZCBmcm9tIHRoZSBzbG90L2FkYXB0ZXIuCisJICovCisJbXNsZWVwKDEwMDApOworCiAJaWYgKFBXUl9MRUQoY3RybCkpCiAJCXBzbG90LT5ocGNfb3BzLT5ncmVlbl9sZWRfb2ZmKHBzbG90KTsKIApAQCAtMjg5LDYgKzI4NCwxMyBAQAogCQl9CiAJfQogCisJLyoKKwkgKiBBZnRlciB0dXJuaW5nIHBvd2VyIG9mZiwgd2UgbXVzdCB3YWl0IGZvciBhdCBsZWFzdCAxIHNlY29uZAorCSAqIGJlZm9yZSB0YWtpbmcgYW55IGFjdGlvbiB0aGF0IHJlbGllcyBvbiBwb3dlciBoYXZpbmcgYmVlbgorCSAqIHJlbW92ZWQgZnJvbSB0aGUgc2xvdC9hZGFwdGVyLgorCSAqLworCW1zbGVlcCgxMDAwKTsKKwogCWlmIChQV1JfTEVEKGN0cmwpKQogCQkvKiB0dXJuIG9mZiBHcmVlbiBMRUQgKi8KIAkJcF9zbG90LT5ocGNfb3BzLT5ncmVlbl9sZWRfb2ZmKHBfc2xvdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3BjaWVocF9ocGMuYyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jCmluZGV4IDg5MWY4MWEuLjc5ZjEwNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcGNpZWhwX2hwYy5jCkBAIC0yNDcsMTQgKzI0NywzOCBAQAogCQlmcmVlX2lycShjdHJsLT5wY2lfZGV2LT5pcnEsIGN0cmwpOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBwY2llX3dhaXRfY21kKHN0cnVjdCBjb250cm9sbGVyICpjdHJsKQorc3RhdGljIGlubGluZSBpbnQgcGNpZV9wb2xsX2NtZChzdHJ1Y3QgY29udHJvbGxlciAqY3RybCkKK3sKKwl1MTYgc2xvdF9zdGF0dXM7CisJaW50IHRpbWVvdXQgPSAxMDAwOworCisJaWYgKCFwY2llaHBfcmVhZHcoY3RybCwgU0xPVFNUQVRVUywgJnNsb3Rfc3RhdHVzKSkKKwkJaWYgKHNsb3Rfc3RhdHVzICYgQ01EX0NPTVBMRVRFRCkKKwkJCWdvdG8gY29tcGxldGVkOworCWZvciAodGltZW91dCA9IDEwMDA7IHRpbWVvdXQgPiAwOyB0aW1lb3V0IC09IDEwMCkgeworCQltc2xlZXAoMTAwKTsKKwkJaWYgKCFwY2llaHBfcmVhZHcoY3RybCwgU0xPVFNUQVRVUywgJnNsb3Rfc3RhdHVzKSkKKwkJCWlmIChzbG90X3N0YXR1cyAmIENNRF9DT01QTEVURUQpCisJCQkJZ290byBjb21wbGV0ZWQ7CisJfQorCXJldHVybiAwOwkvKiB0aW1lb3V0ICovCisKK2NvbXBsZXRlZDoKKwlwY2llaHBfd3JpdGV3KGN0cmwsIFNMT1RTVEFUVVMsIENNRF9DT01QTEVURUQpOworCXJldHVybiB0aW1lb3V0OworfQorCitzdGF0aWMgaW5saW5lIGludCBwY2llX3dhaXRfY21kKHN0cnVjdCBjb250cm9sbGVyICpjdHJsLCBpbnQgcG9sbCkKIHsKIAlpbnQgcmV0dmFsID0gMDsKIAl1bnNpZ25lZCBpbnQgbXNlY3MgPSBwY2llaHBfcG9sbF9tb2RlID8gMjUwMCA6IDEwMDA7CiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllcyhtc2Vjcyk7CiAJaW50IHJjOwogCi0JcmMgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChjdHJsLT5xdWV1ZSwKKwlpZiAocG9sbCkKKwkJcmMgPSBwY2llX3BvbGxfY21kKGN0cmwpOworCWVsc2UKKwkJcmMgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChjdHJsLT5xdWV1ZSwKIAkJCQkJICAgICAgIWN0cmwtPmNtZF9idXN5LCB0aW1lb3V0KTsKIAlpZiAoIXJjKQogCQlkYmcoIkNvbW1hbmQgbm90IGNvbXBsZXRlZCBpbiAxMDAwIG1zZWNcbiIpOwpAQCAtMjg2LDEyICszMTAsMjggQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JaWYgKChzbG90X3N0YXR1cyAmIENNRF9DT01QTEVURUQpID09IENNRF9DT01QTEVURUQgKSB7Ci0JCS8qIEFmdGVyIDEgc2VjIGFuZCBDTURfQ09NUExFVEVEIHN0aWxsIG5vdCBzZXQsIGp1c3QKLQkJICAgcHJvY2VlZCBmb3J3YXJkIHRvIGlzc3VlIHRoZSBuZXh0IGNvbW1hbmQgYWNjb3JkaW5nCi0JCSAgIHRvIHNwZWMuICBKdXN0IHByaW50IG91dCB0aGUgZXJyb3IgbWVzc2FnZSAqLwotCQlkYmcoIiVzOiBDTURfQ09NUExFVEVEIG5vdCBjbGVhciBhZnRlciAxIHNlYy5cbiIsCi0JCSAgICBfX2Z1bmNfXyk7CisJaWYgKHNsb3Rfc3RhdHVzICYgQ01EX0NPTVBMRVRFRCkgeworCQlpZiAoIWN0cmwtPm5vX2NtZF9jb21wbGV0ZSkgeworCQkJLyoKKwkJCSAqIEFmdGVyIDEgc2VjIGFuZCBDTURfQ09NUExFVEVEIHN0aWxsIG5vdCBzZXQsIGp1c3QKKwkJCSAqIHByb2NlZWQgZm9yd2FyZCB0byBpc3N1ZSB0aGUgbmV4dCBjb21tYW5kIGFjY29yZGluZworCQkJICogdG8gc3BlYy4gSnVzdCBwcmludCBvdXQgdGhlIGVycm9yIG1lc3NhZ2UuCisJCQkgKi8KKwkJCWRiZygiJXM6IENNRF9DT01QTEVURUQgbm90IGNsZWFyIGFmdGVyIDEgc2VjLlxuIiwKKwkJCSAgICBfX2Z1bmNfXyk7CisJCX0gZWxzZSBpZiAoIU5PX0NNRF9DTVBMKGN0cmwpKSB7CisJCQkvKgorCQkJICogVGhpcyBjb250cm9sbGVyIHNlbW1zIHRvIG5vdGlmeSBvZiBjb21tYW5kIGNvbXBsZXRlZAorCQkJICogZXZlbnQgZXZlbiB0aG91Z2ggaXQgc3VwcG9ydHMgbm9uZSBvZiBwb3dlcgorCQkJICogY29udHJvbGxlciwgYXR0ZW50aW9uIGxlZCwgcG93ZXIgbGVkIGFuZCBFTUkuCisJCQkgKi8KKwkJCWRiZygiJXM6IFVuZXhwZWN0ZWQgQ01EX0NPTVBMRVRFRC4gTmVlZCB0byB3YWl0IGZvciAiCisJCQkgICAgImNvbW1hbmQgY29tcGxldGVkIGV2ZW50LlxuIiwgX19mdW5jX18pOworCQkJY3RybC0+bm9fY21kX2NvbXBsZXRlID0gMDsKKwkJfSBlbHNlIHsKKwkJCWRiZygiJXM6IFVuZXhwZWN0ZWQgQ01EX0NPTVBMRVRFRC4gTWF5YmUgdGhlICIKKwkJCSAgICAiY29udHJvbGxlciBpcyBicm9rZW4uXG4iLCBfX2Z1bmNfXyk7CisJCX0KIAl9CiAKIAlyZXR2YWwgPSBwY2llaHBfcmVhZHcoY3RybCwgU0xPVENUUkwsICZzbG90X2N0cmwpOwpAQCAtMzE1LDggKzM1NSwxOCBAQAogCS8qCiAJICogV2FpdCBmb3IgY29tbWFuZCBjb21wbGV0aW9uLgogCSAqLwotCWlmICghcmV0dmFsKQotCQlyZXR2YWwgPSBwY2llX3dhaXRfY21kKGN0cmwpOworCWlmICghcmV0dmFsICYmICFjdHJsLT5ub19jbWRfY29tcGxldGUpIHsKKwkJaW50IHBvbGwgPSAwOworCQkvKgorCQkgKiBpZiBob3RwbHVnIGludGVycnVwdCBpcyBub3QgZW5hYmxlZCBvciBjb21tYW5kCisJCSAqIGNvbXBsZXRlZCBpbnRlcnJ1cHQgaXMgbm90IGVuYWJsZWQsIHdlIG5lZWQgdG8gcG9sbAorCQkgKiBjb21tYW5kIGNvbXBsZXRlZCBldmVudC4KKwkJICovCisJCWlmICghKHNsb3RfY3RybCAmIEhQX0lOVFJfRU5BQkxFKSB8fAorCQkgICAgIShzbG90X2N0cmwgJiBDTURfQ01QTF9JTlRSX0VOQUJMRSkpCisJCQlwb2xsID0gMTsKKyAgICAgICAgICAgICAgICByZXR2YWwgPSBwY2llX3dhaXRfY21kKGN0cmwsIHBvbGwpOworCX0KICBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZjdHJsLT5jdHJsX2xvY2spOwogCXJldHVybiByZXR2YWw7CkBAIC03MDQsMTMgKzc1NCw2IEBACiAJfQogCWRiZygiJXM6IFNMT1RDVFJMICV4IHdyaXRlIGNtZCAleFxuIiwKIAkgICAgX19mdW5jX18sIGN0cmwtPmNhcF9iYXNlICsgU0xPVENUUkwsIHNsb3RfY21kKTsKLQotCS8qCi0JICogQWZ0ZXIgdHVybmluZyBwb3dlciBvZmYsIHdlIG11c3Qgd2FpdCBmb3IgYXQgbGVhc3QgMSBzZWNvbmQKLQkgKiBiZWZvcmUgdGFraW5nIGFueSBhY3Rpb24gdGhhdCByZWxpZXMgb24gcG93ZXIgaGF2aW5nIGJlZW4KLQkgKiByZW1vdmVkIGZyb20gdGhlIHNsb3QvYWRhcHRlci4KLQkgKi8KLQltc2xlZXAoMTAwMCk7CiAgb3V0OgogCWlmIChjaGFuZ2VkKQogCQlwY2llX3VubWFza19iYWRfZGxscChjdHJsKTsKQEAgLTcyMiw2ICs3NjUsNyBAQAogewogCXN0cnVjdCBjb250cm9sbGVyICpjdHJsID0gKHN0cnVjdCBjb250cm9sbGVyICopZGV2X2lkOwogCXUxNiBkZXRlY3RlZCwgaW50cl9sb2M7CisJc3RydWN0IHNsb3QgKnBfc2xvdDsKIAogCS8qCiAJICogSW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoYXQgYWxsIGludGVycnVwdCBldmVudHMgYXJlCkBAIC03NTYsMjEgKzgwMCwzOCBAQAogCQl3YWtlX3VwX2ludGVycnVwdGlibGUoJmN0cmwtPnF1ZXVlKTsKIAl9CiAKKwlpZiAoIShpbnRyX2xvYyAmIH5DTURfQ09NUExFVEVEKSkKKwkJcmV0dXJuIElSUV9IQU5ETEVEOworCisJLyoKKwkgKiBSZXR1cm4gd2l0aG91dCBoYW5kbGluZyBldmVudHMgaWYgdGhpcyBoYW5kbGVyIHJvdXRpbmUgaXMKKwkgKiBjYWxsZWQgYmVmb3JlIGNvbnRyb2xsZXIgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4gVGhpcyBtYXkKKwkgKiBoYXBwZW4gaWYgaG90cGx1ZyBldmVudCBvciBhbm90aGVyIGludGVycnVwdCB0aGF0IHNoYXJlcworCSAqIHRoZSBJUlEgd2l0aCBwY2llaHAgYXJyaXZlcyBiZWZvcmUgc2xvdCBpbml0aWFsaXphdGlvbiBpcworCSAqIGRvbmUgYWZ0ZXIgaW50ZXJydXB0IGhhbmRsZXIgaXMgcmVnaXN0ZXJlZC4KKwkgKgorCSAqIEZJWE1FIC0gTmVlZCBtb3JlIHN0cnVjdHVyYWwgZml4ZXMuIFdlIG5lZWQgdG8gYmUgcmVhZHkgdG8KKwkgKiBoYW5kbGUgdGhlIGV2ZW50IGJlZm9yZSBpbnN0YWxsaW5nIGludGVycnVwdCBoYW5kbGVyLgorCSAqLworCXBfc2xvdCA9IHBjaWVocF9maW5kX3Nsb3QoY3RybCwgY3RybC0+c2xvdF9kZXZpY2Vfb2Zmc2V0KTsKKwlpZiAoIXBfc2xvdCB8fCAhcF9zbG90LT5ocGNfb3BzKQorCQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisKIAkvKiBDaGVjayBNUkwgU2Vuc29yIENoYW5nZWQgKi8KIAlpZiAoaW50cl9sb2MgJiBNUkxfU0VOU19DSEFOR0VEKQotCQlwY2llaHBfaGFuZGxlX3N3aXRjaF9jaGFuZ2UoMCwgY3RybCk7CisJCXBjaWVocF9oYW5kbGVfc3dpdGNoX2NoYW5nZShwX3Nsb3QpOwogCiAJLyogQ2hlY2sgQXR0ZW50aW9uIEJ1dHRvbiBQcmVzc2VkICovCiAJaWYgKGludHJfbG9jICYgQVRUTl9CVVRUTl9QUkVTU0VEKQotCQlwY2llaHBfaGFuZGxlX2F0dGVudGlvbl9idXR0b24oMCwgY3RybCk7CisJCXBjaWVocF9oYW5kbGVfYXR0ZW50aW9uX2J1dHRvbihwX3Nsb3QpOwogCiAJLyogQ2hlY2sgUHJlc2VuY2UgRGV0ZWN0IENoYW5nZWQgKi8KIAlpZiAoaW50cl9sb2MgJiBQUlNOX0RFVEVDVF9DSEFOR0VEKQotCQlwY2llaHBfaGFuZGxlX3ByZXNlbmNlX2NoYW5nZSgwLCBjdHJsKTsKKwkJcGNpZWhwX2hhbmRsZV9wcmVzZW5jZV9jaGFuZ2UocF9zbG90KTsKIAogCS8qIENoZWNrIFBvd2VyIEZhdWx0IERldGVjdGVkICovCiAJaWYgKGludHJfbG9jICYgUFdSX0ZBVUxUX0RFVEVDVEVEKQotCQlwY2llaHBfaGFuZGxlX3Bvd2VyX2ZhdWx0KDAsIGN0cmwpOworCQlwY2llaHBfaGFuZGxlX3Bvd2VyX2ZhdWx0KHBfc2xvdCk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0xMDI4LDYgKzEwODksMTIgQEAKIHN0YXRpYyBpbnQgcGNpZV9pbml0X2hhcmR3YXJlX3BhcnQxKHN0cnVjdCBjb250cm9sbGVyICpjdHJsLAogCQkJCSAgICBzdHJ1Y3QgcGNpZV9kZXZpY2UgKmRldikKIHsKKwkvKiBDbGVhciBhbGwgcmVtYWluaW5nIGV2ZW50IGJpdHMgaW4gU2xvdCBTdGF0dXMgcmVnaXN0ZXIgKi8KKwlpZiAocGNpZWhwX3dyaXRldyhjdHJsLCBTTE9UU1RBVFVTLCAweDFmKSkgeworCQllcnIoIiVzOiBDYW5ub3Qgd3JpdGUgdG8gU0xPVFNUQVRVUyByZWdpc3RlclxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLTE7CisJfQorCiAJLyogTWFzayBIb3QtcGx1ZyBJbnRlcnJ1cHQgRW5hYmxlICovCiAJaWYgKHBjaWVfd3JpdGVfY21kKGN0cmwsIDAsIEhQX0lOVFJfRU5BQkxFIHwgQ01EX0NNUExfSU5UUl9FTkFCTEUpKSB7CiAJCWVycigiJXM6IENhbm5vdCBtYXNrIGhvdHBsdWcgaW50ZXJydXB0IGVuYWJsZVxuIiwgX19mdW5jX18pOwpAQCAtMTA0MCwxNiArMTEwNyw2IEBACiB7CiAJdTE2IGNtZCwgbWFzazsKIAotCS8qCi0JICogV2UgbmVlZCB0byBjbGVhciBhbGwgZXZlbnRzIGJlZm9yZSBlbmFibGluZyBob3RwbHVnIGludGVycnVwdAotCSAqIG5vdGlmaWNhdGlvbiBtZWNoYW5pc20gaW4gb3JkZXIgZm9yIGhvdHBsdWcgY29udHJvbGVyIHRvCi0JICogZ2VuZXJhdGUgaW50ZXJydXB0cy4KLQkgKi8KLQlpZiAocGNpZWhwX3dyaXRldyhjdHJsLCBTTE9UU1RBVFVTLCAweDFmKSkgewotCQllcnIoIiVzOiBDYW5ub3Qgd3JpdGUgdG8gU0xPVFNUQVRVUyByZWdpc3RlclxuIiwgX19GVU5DVElPTl9fKTsKLQkJcmV0dXJuIC0xOwotCX0KLQogCWNtZCA9IFBSU05fREVURUNUX0VOQUJMRTsKIAlpZiAoQVRUTl9CVVRUTihjdHJsKSkKIAkJY21kIHw9IEFUVE5fQlVUVE5fRU5BQkxFOwpAQCAtMTExNiw2ICsxMTczLDcgQEAKIAlkYmcoIiAgUG93ZXIgSW5kaWNhdG9yICAgICAgOiAlM3NcbiIsIFBXUl9MRUQoY3RybCkgICAgPyAieWVzIiA6ICJubyIpOwogCWRiZygiICBIb3QtUGx1ZyBTdXJwcmlzZSAgICA6ICUzc1xuIiwgSFBfU1VQUl9STShjdHJsKSA/ICJ5ZXMiIDogIm5vIik7CiAJZGJnKCIgIEVNSSBQcmVzZW50ICAgICAgICAgIDogJTNzXG4iLCBFTUkoY3RybCkgICAgICAgID8gInllcyIgOiAibm8iKTsKKwlkYmcoIiAgQ29tYW1uZCBDb21wbGV0ZWQgICAgOiAlM3NcbiIsIE5PX0NNRF9DTVBMKGN0cmwpPyAibm8iIDogInllcyIpOwogCXBjaWVocF9yZWFkdyhjdHJsLCBTTE9UU1RBVFVTLCAmcmVnMTYpOwogCWRiZygiU2xvdCBTdGF0dXMgICAgICAgICAgICA6IDB4JTA0eFxuIiwgcmVnMTYpOwogCXBjaWVocF9yZWFkdyhjdHJsLCBTTE9UU1RBVFVTLCAmcmVnMTYpOwpAQCAtMTE0Nyw2ICsxMjA1LDE1IEBACiAJbXV0ZXhfaW5pdCgmY3RybC0+Y3RybF9sb2NrKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZjdHJsLT5xdWV1ZSk7CiAJZGJnX2N0cmwoY3RybCk7CisJLyoKKwkgKiBDb250cm9sbGVyIGRvZXNuJ3Qgbm90aWZ5IG9mIGNvbW1hbmQgY29tcGxldGlvbiBpZiB0aGUgIk5vCisJICogQ29tbWFuZCBDb21wbGV0ZWQgU3VwcG9ydCIgYml0IGlzIHNldCBpbiBTbG90IENhcGFiaWxpdHkKKwkgKiByZWdpc3RlciBvciB0aGUgY29udHJvbGxlciBzdXBwb3J0cyBub25lIG9mIHBvd2VyCisJICogY29udHJvbGxlciwgYXR0ZW50aW9uIGxlZCwgcG93ZXIgbGVkIGFuZCBFTUkuCisJICovCisJaWYgKE5PX0NNRF9DTVBMKGN0cmwpIHx8CisJICAgICEoUE9XRVJfQ1RSTChjdHJsKSB8IEFUVE5fTEVEKGN0cmwpIHwgUFdSX0xFRChjdHJsKSB8IEVNSShjdHJsKSkpCisJICAgIGN0cmwtPm5vX2NtZF9jb21wbGV0ZSA9IDE7CiAKIAlpbmZvKCJIUEMgdmVuZG9yX2lkICV4IGRldmljZV9pZCAleCBzc192aWQgJXggc3NfZGlkICV4XG4iLAogCSAgICAgcGRldi0+dmVuZG9yLCBwZGV2LT5kZXZpY2UsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3JwYWRscGFyX3N5c2ZzLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3JwYWRscGFyX3N5c2ZzLmMKaW5kZXggZTMyMTQ4YS4uNzc5YzVkYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9ycGFkbHBhcl9zeXNmcy5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvcnBhZGxwYXJfc3lzZnMuYwpAQCAtMTgsOCArMTgsMTIgQEAKICNpbmNsdWRlICJycGFkbHBhci5oIgogCiAjZGVmaW5lIERMUEFSX0tPQkpfTkFNRSAgICAgICAiY29udHJvbCIKLSNkZWZpbmUgQUREX1NMT1RfQVRUUl9OQU1FICAgICJhZGRfc2xvdCIKLSNkZWZpbmUgUkVNT1ZFX1NMT1RfQVRUUl9OQU1FICJyZW1vdmVfc2xvdCIKKworLyogVGhvc2UgdHdvIGhhdmUgbm8gcXVvdGVzIGJlY2F1c2UgdGhleSBhcmUgcGFzc2VkIHRvIF9fQVRUUigpIHdoaWNoCisgKiBzdHJpbmdpZmllcyB0aGUgYXJndW1lbnQgKHl1Y2sgISkKKyAqLworI2RlZmluZSBBRERfU0xPVF9BVFRSX05BTUUgICAgYWRkX3Nsb3QKKyNkZWZpbmUgUkVNT1ZFX1NMT1RfQVRUUl9OQU1FIHJlbW92ZV9zbG90CiAKICNkZWZpbmUgTUFYX0RSQ19OQU1FX0xFTiA2NAogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jb3JlLmMgYi9kcml2ZXJzL3BjaS9ob3RwbHVnL3NocGNocF9jb3JlLmMKaW5kZXggMTY0ODA3Ni4uOTc4NDg2NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaG90cGx1Zy9zaHBjaHBfY29yZS5jCisrKyBiL2RyaXZlcnMvcGNpL2hvdHBsdWcvc2hwY2hwX2NvcmUuYwpAQCAtMTYyLDYgKzE2MiwxMCBAQAogCQlyZXR2YWwgPSBwY2lfaHBfcmVnaXN0ZXIoc2xvdC0+aG90cGx1Z19zbG90KTsKIAkJaWYgKHJldHZhbCkgewogCQkJZXJyKCJwY2lfaHBfcmVnaXN0ZXIgZmFpbGVkIHdpdGggZXJyb3IgJWRcbiIsIHJldHZhbCk7CisJCQlpZiAocmV0dmFsID09IC1FRVhJU1QpCisJCQkJZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIgc2xvdCBiZWNhdXNlIG9mIG5hbWUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxpc2lvbi4gVHJ5IFwnc2hwY2hwX3Nsb3Rfd2l0aF9idXNcJyAiCisJCQkJICAgICJtb2R1bGUgb3B0aW9uLlxuIik7CiAJCQlnb3RvIGVycm9yX2luZm87CiAJCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvcGNpL2ludGVsLWlvbW11LmMKaW5kZXggNjZjMGZkMi4uYmIwNjQyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvaW50ZWwtaW9tbXUuYworKysgYi9kcml2ZXJzL3BjaS9pbnRlbC1pb21tdS5jCkBAIC0xNjM3LDEyICsxNjM3LDQzIEBACiB9CiAKICNpZmRlZiBDT05GSUdfRE1BUl9HRlhfV0EKLWV4dGVybiBpbnQgYXJjaF9nZXRfcmFtX3JhbmdlKGludCBzbG90LCB1NjQgKmFkZHIsIHU2NCAqc2l6ZSk7CitzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIHsKKwlzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKwlpbnQgcmV0OworfTsKKworc3RhdGljIGludCBfX2luaXQgaW9tbXVfcHJlcGFyZV93b3JrX2ZuKHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCQkgdW5zaWduZWQgbG9uZyBlbmRfcGZuLCB2b2lkICpkYXRheCkKK3sKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICpkYXRhOworCisJZGF0YSA9IChzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhICopZGF0YXg7CisKKwlkYXRhLT5yZXQgPSBpb21tdV9wcmVwYXJlX2lkZW50aXR5X21hcChkYXRhLT5wZGV2LAorCQkJCXN0YXJ0X3Bmbjw8UEFHRV9TSElGVCwgZW5kX3Bmbjw8UEFHRV9TSElGVCk7CisJcmV0dXJuIGRhdGEtPnJldDsKKworfQorCitzdGF0aWMgaW50IF9faW5pdCBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisJaW50IG5pZDsKKwlzdHJ1Y3QgaW9tbXVfcHJlcGFyZV9kYXRhIGRhdGE7CisKKwlkYXRhLnBkZXYgPSBwZGV2OworCWRhdGEucmV0ID0gMDsKKworCWZvcl9lYWNoX29ubGluZV9ub2RlKG5pZCkgeworCQl3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMobmlkLCBpb21tdV9wcmVwYXJlX3dvcmtfZm4sICZkYXRhKTsKKwkJaWYgKGRhdGEucmV0KQorCQkJcmV0dXJuIGRhdGEucmV0OworCX0KKwlyZXR1cm4gZGF0YS5yZXQ7Cit9CisKIHN0YXRpYyB2b2lkIF9faW5pdCBpb21tdV9wcmVwYXJlX2dmeF9tYXBwaW5nKHZvaWQpCiB7CiAJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBOVUxMOwotCXU2NCBiYXNlLCBzaXplOwotCWludCBzbG90OwogCWludCByZXQ7CiAKIAlmb3JfZWFjaF9wY2lfZGV2KHBkZXYpIHsKQEAgLTE2NTEsMTcgKzE2ODIsOSBAQAogCQkJY29udGludWU7CiAJCXByaW50ayhLRVJOX0lORk8gIklPTU1VOiBnZnggZGV2aWNlICVzIDEtMSBtYXBwaW5nXG4iLAogCQkJcGNpX25hbWUocGRldikpOwotCQlzbG90ID0gYXJjaF9nZXRfcmFtX3JhbmdlKDAsICZiYXNlLCAmc2l6ZSk7Ci0JCXdoaWxlIChzbG90ID49IDApIHsKLQkJCXJldCA9IGlvbW11X3ByZXBhcmVfaWRlbnRpdHlfbWFwKHBkZXYsCi0JCQkJCWJhc2UsIGJhc2UgKyBzaXplKTsKLQkJCWlmIChyZXQpCi0JCQkJZ290byBlcnJvcjsKLQkJCXNsb3QgPSBhcmNoX2dldF9yYW1fcmFuZ2Uoc2xvdCwgJmJhc2UsICZzaXplKTsKLQkJfQotCQljb250aW51ZTsKLWVycm9yOgotCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOworCQlyZXQgPSBpb21tdV9wcmVwYXJlX3dpdGhfYWN0aXZlX3JlZ2lvbnMocGRldik7CisJCWlmIChyZXQpCisJCQlwcmludGsoS0VSTl9FUlIgIklPTU1VOiBtYXBwaW5nIHJlc2VydmVkIHJlZ2lvbiBmYWlsZWRcbiIpOwogCX0KIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jIGIvZHJpdmVycy9wY2kvcGNpLWRyaXZlci5jCmluZGV4IDcyY2Y2MWUuLmUxNjM3YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaS1kcml2ZXIuYworKysgYi9kcml2ZXJzL3BjaS9wY2ktZHJpdmVyLmMKQEAgLTE4MSw3ICsxODEsNyBAQAogCSAgIGFueSBuZWVkIHRvIGNoYW5nZSBpdC4gKi8KIAlzdHJ1Y3QgbWVtcG9saWN5ICpvbGRwb2w7CiAJY3B1bWFza190IG9sZG1hc2sgPSBjdXJyZW50LT5jcHVzX2FsbG93ZWQ7Ci0JaW50IG5vZGUgPSBwY2lidXNfdG9fbm9kZShkZXYtPmJ1cyk7CisJaW50IG5vZGUgPSBkZXZfdG9fbm9kZSgmZGV2LT5kZXYpOwogCiAJaWYgKG5vZGUgPj0gMCkgewogCQlub2RlX3RvX2NwdW1hc2tfcHRyKG5vZGVjcHVtYXNrLCBub2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaS1zeXNmcy5jIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKaW5kZXggMjcxZDQxYy4uOWM3MTg1OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKKysrIGIvZHJpdmVycy9wY2kvcGNpLXN5c2ZzLmMKQEAgLTQ4OSwxMyArNDg5LDEzIEBACiAgKiBAa29iajoga29iamVjdCBmb3IgbWFwcGluZwogICogQGF0dHI6IHN0cnVjdCBiaW5fYXR0cmlidXRlIGZvciB0aGUgZmlsZSBiZWluZyBtYXBwZWQKICAqIEB2bWE6IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCBwYXNzZWQgaW50byB0aGUgbW1hcAorICogQHdyaXRlX2NvbWJpbmU6IDEgZm9yIHdyaXRlX2NvbWJpbmUgbWFwcGluZwogICoKICAqIFVzZSB0aGUgcmVndWxhciBQQ0kgbWFwcGluZyByb3V0aW5lcyB0byBtYXAgYSBQQ0kgcmVzb3VyY2UgaW50byB1c2Vyc3BhY2UuCi0gKiBGSVhNRTogd3JpdGUgY29tYmluaW5nPyAgbWF5YmUgYXV0b21hdGljIGZvciBwcmVmZXRjaGFibGUgcmVnaW9ucz8KICAqLwogc3RhdGljIGludAogcGNpX21tYXBfcmVzb3VyY2Uoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAotCQkgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQorCQkgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBpbnQgd3JpdGVfY29tYmluZSkKIHsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3BjaV9kZXYoY29udGFpbmVyX29mKGtvYmosCiAJCQkJCQkgICAgICAgc3RydWN0IGRldmljZSwga29iaikpOwpAQCAtNTE4LDcgKzUxOCwyMSBAQAogCXZtYS0+dm1fcGdvZmYgKz0gc3RhcnQgPj4gUEFHRV9TSElGVDsKIAltbWFwX3R5cGUgPSByZXMtPmZsYWdzICYgSU9SRVNPVVJDRV9NRU0gPyBwY2lfbW1hcF9tZW0gOiBwY2lfbW1hcF9pbzsKIAotCXJldHVybiBwY2lfbW1hcF9wYWdlX3JhbmdlKHBkZXYsIHZtYSwgbW1hcF90eXBlLCAwKTsKKwlyZXR1cm4gcGNpX21tYXBfcGFnZV9yYW5nZShwZGV2LCB2bWEsIG1tYXBfdHlwZSwgd3JpdGVfY29tYmluZSk7Cit9CisKK3N0YXRpYyBpbnQKK3BjaV9tbWFwX3Jlc291cmNlX3VjKHN0cnVjdCBrb2JqZWN0ICprb2JqLCBzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqYXR0ciwKKwkJICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlyZXR1cm4gcGNpX21tYXBfcmVzb3VyY2Uoa29iaiwgYXR0ciwgdm1hLCAwKTsKK30KKworc3RhdGljIGludAorcGNpX21tYXBfcmVzb3VyY2Vfd2Moc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyLAorCQkgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQoreworCXJldHVybiBwY2lfbW1hcF9yZXNvdXJjZShrb2JqLCBhdHRyLCB2bWEsIDEpOwogfQogCiAvKioKQEAgLTU0MSw5ICs1NTUsNDYgQEAKIAkJCXN5c2ZzX3JlbW92ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIHJlc19hdHRyKTsKIAkJCWtmcmVlKHJlc19hdHRyKTsKIAkJfQorCisJCXJlc19hdHRyID0gcGRldi0+cmVzX2F0dHJfd2NbaV07CisJCWlmIChyZXNfYXR0cikgeworCQkJc3lzZnNfcmVtb3ZlX2Jpbl9maWxlKCZwZGV2LT5kZXYua29iaiwgcmVzX2F0dHIpOworCQkJa2ZyZWUocmVzX2F0dHIpOworCQl9CiAJfQogfQogCitzdGF0aWMgaW50IHBjaV9jcmVhdGVfYXR0cihzdHJ1Y3QgcGNpX2RldiAqcGRldiwgaW50IG51bSwgaW50IHdyaXRlX2NvbWJpbmUpCit7CisJLyogYWxsb2NhdGUgYXR0cmlidXRlIHN0cnVjdHVyZSwgcGlnZ3liYWNrIGF0dHJpYnV0ZSBuYW1lICovCisJaW50IG5hbWVfbGVuID0gd3JpdGVfY29tYmluZSA/IDEzIDogMTA7CisJc3RydWN0IGJpbl9hdHRyaWJ1dGUgKnJlc19hdHRyOworCWludCByZXR2YWw7CisKKwlyZXNfYXR0ciA9IGt6YWxsb2Moc2l6ZW9mKCpyZXNfYXR0cikgKyBuYW1lX2xlbiwgR0ZQX0FUT01JQyk7CisJaWYgKHJlc19hdHRyKSB7CisJCWNoYXIgKnJlc19hdHRyX25hbWUgPSAoY2hhciAqKShyZXNfYXR0ciArIDEpOworCisJCWlmICh3cml0ZV9jb21iaW5lKSB7CisJCQlwZGV2LT5yZXNfYXR0cl93Y1tudW1dID0gcmVzX2F0dHI7CisJCQlzcHJpbnRmKHJlc19hdHRyX25hbWUsICJyZXNvdXJjZSVkX3djIiwgbnVtKTsKKwkJCXJlc19hdHRyLT5tbWFwID0gcGNpX21tYXBfcmVzb3VyY2Vfd2M7CisJCX0gZWxzZSB7CisJCQlwZGV2LT5yZXNfYXR0cltudW1dID0gcmVzX2F0dHI7CisJCQlzcHJpbnRmKHJlc19hdHRyX25hbWUsICJyZXNvdXJjZSVkIiwgbnVtKTsKKwkJCXJlc19hdHRyLT5tbWFwID0gcGNpX21tYXBfcmVzb3VyY2VfdWM7CisJCX0KKwkJcmVzX2F0dHItPmF0dHIubmFtZSA9IHJlc19hdHRyX25hbWU7CisJCXJlc19hdHRyLT5hdHRyLm1vZGUgPSBTX0lSVVNSIHwgU19JV1VTUjsKKwkJcmVzX2F0dHItPnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIG51bSk7CisJCXJlc19hdHRyLT5wcml2YXRlID0gJnBkZXYtPnJlc291cmNlW251bV07CisJCXJldHZhbCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIHJlc19hdHRyKTsKKwl9IGVsc2UKKwkJcmV0dmFsID0gLUVOT01FTTsKKworCXJldHVybiByZXR2YWw7Cit9CisKIC8qKgogICogcGNpX2NyZWF0ZV9yZXNvdXJjZV9maWxlcyAtIGNyZWF0ZSByZXNvdXJjZSBmaWxlcyBpbiBzeXNmcyBmb3IgQGRldgogICogQGRldjogZGV2IGluIHF1ZXN0aW9uCkBAIC01NTcsMzEgKzYwOCwxOSBAQAogCiAJLyogRXhwb3NlIHRoZSBQQ0kgcmVzb3VyY2VzIGZyb20gdGhpcyBkZXZpY2UgYXMgZmlsZXMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgUENJX1JPTV9SRVNPVVJDRTsgaSsrKSB7Ci0JCXN0cnVjdCBiaW5fYXR0cmlidXRlICpyZXNfYXR0cjsKIAogCQkvKiBza2lwIGVtcHR5IHJlc291cmNlcyAqLwogCQlpZiAoIXBjaV9yZXNvdXJjZV9sZW4ocGRldiwgaSkpCiAJCQljb250aW51ZTsKIAotCQkvKiBhbGxvY2F0ZSBhdHRyaWJ1dGUgc3RydWN0dXJlLCBwaWdneWJhY2sgYXR0cmlidXRlIG5hbWUgKi8KLQkJcmVzX2F0dHIgPSBremFsbG9jKHNpemVvZigqcmVzX2F0dHIpICsgMTAsIEdGUF9BVE9NSUMpOwotCQlpZiAocmVzX2F0dHIpIHsKLQkJCWNoYXIgKnJlc19hdHRyX25hbWUgPSAoY2hhciAqKShyZXNfYXR0ciArIDEpOworCQlyZXR2YWwgPSBwY2lfY3JlYXRlX2F0dHIocGRldiwgaSwgMCk7CisJCS8qIGZvciBwcmVmZXRjaGFibGUgcmVzb3VyY2VzLCBjcmVhdGUgYSBXQyBtYXBwYWJsZSBmaWxlICovCisJCWlmICghcmV0dmFsICYmIHBkZXYtPnJlc291cmNlW2ldLmZsYWdzICYgSU9SRVNPVVJDRV9QUkVGRVRDSCkKKwkJCXJldHZhbCA9IHBjaV9jcmVhdGVfYXR0cihwZGV2LCBpLCAxKTsKIAotCQkJcGRldi0+cmVzX2F0dHJbaV0gPSByZXNfYXR0cjsKLQkJCXNwcmludGYocmVzX2F0dHJfbmFtZSwgInJlc291cmNlJWQiLCBpKTsKLQkJCXJlc19hdHRyLT5hdHRyLm5hbWUgPSByZXNfYXR0cl9uYW1lOwotCQkJcmVzX2F0dHItPmF0dHIubW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSOwotCQkJcmVzX2F0dHItPnNpemUgPSBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIGkpOwotCQkJcmVzX2F0dHItPm1tYXAgPSBwY2lfbW1hcF9yZXNvdXJjZTsKLQkJCXJlc19hdHRyLT5wcml2YXRlID0gJnBkZXYtPnJlc291cmNlW2ldOwotCQkJcmV0dmFsID0gc3lzZnNfY3JlYXRlX2Jpbl9maWxlKCZwZGV2LT5kZXYua29iaiwgcmVzX2F0dHIpOwotCQkJaWYgKHJldHZhbCkgewotCQkJCXBjaV9yZW1vdmVfcmVzb3VyY2VfZmlsZXMocGRldik7Ci0JCQkJcmV0dXJuIHJldHZhbDsKLQkJCX0KLQkJfSBlbHNlIHsKLQkJCXJldHVybiAtRU5PTUVNOworCQlpZiAocmV0dmFsKSB7CisJCQlwY2lfcmVtb3ZlX3Jlc291cmNlX2ZpbGVzKHBkZXYpOworCQkJcmV0dXJuIHJldHZhbDsKIAkJfQogCX0KIAlyZXR1cm4gMDsKQEAgLTY5Nyw5ICs3MzYsOSBAQAogCQlhdHRyID0ga3phbGxvYyhzaXplb2YoKmF0dHIpLCBHRlBfQVRPTUlDKTsKIAkJaWYgKGF0dHIpIHsKIAkJCXBkZXYtPnZwZC0+YXR0ciA9IGF0dHI7Ci0JCQlhdHRyLT5zaXplID0gcGRldi0+dnBkLT5vcHMtPmdldF9zaXplKHBkZXYpOworCQkJYXR0ci0+c2l6ZSA9IHBkZXYtPnZwZC0+bGVuOwogCQkJYXR0ci0+YXR0ci5uYW1lID0gInZwZCI7Ci0JCQlhdHRyLT5hdHRyLm1vZGUgPSBTX0lSVUdPIHwgU19JV1VTUjsKKwkJCWF0dHItPmF0dHIubW9kZSA9IFNfSVJVU1IgfCBTX0lXVVNSOwogCQkJYXR0ci0+cmVhZCA9IHBjaV9yZWFkX3ZwZDsKIAkJCWF0dHItPndyaXRlID0gcGNpX3dyaXRlX3ZwZDsKIAkJCXJldHZhbCA9IHN5c2ZzX2NyZWF0ZV9iaW5fZmlsZSgmcGRldi0+ZGV2LmtvYmosIGF0dHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcGNpLmggYi9kcml2ZXJzL3BjaS9wY2kuaAppbmRleCAwYTQ5N2MxYi4uMDA0MDhjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvcGNpLmgKKysrIGIvZHJpdmVycy9wY2kvcGNpLmgKQEAgLTIxLDExICsyMSwxMSBAQAogc3RydWN0IHBjaV92cGRfb3BzIHsKIAlpbnQgKCpyZWFkKShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgcG9zLCBpbnQgc2l6ZSwgY2hhciAqYnVmKTsKIAlpbnQgKCp3cml0ZSkoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IHBvcywgaW50IHNpemUsIGNvbnN0IGNoYXIgKmJ1Zik7Ci0JaW50ICgqZ2V0X3NpemUpKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwogCXZvaWQgKCpyZWxlYXNlKShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIH07CiAKIHN0cnVjdCBwY2lfdnBkIHsKKwl1bnNpZ25lZCBpbnQgbGVuOwogCXN0cnVjdCBwY2lfdnBkX29wcyAqb3BzOwogCXN0cnVjdCBiaW5fYXR0cmlidXRlICphdHRyOyAvKiBkZXNjcmlwdG9yIGZvciBzeXNmcyBWUEQgZW50cnkgKi8KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2llL2FzcG0uYyBiL2RyaXZlcnMvcGNpL3BjaWUvYXNwbS5jCmluZGV4IDYxZmVkYjIuLmY4MjQ5NTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3BjaWUvYXNwbS5jCisrKyBiL2RyaXZlcnMvcGNpL3BjaWUvYXNwbS5jCkBAIC01MDYsNiArNTA2LDIzIEBACiAJcGRldi0+bGlua19zdGF0ZSA9IE5VTEw7CiB9CiAKK3N0YXRpYyBpbnQgcGNpZV9hc3BtX3Nhbml0eV9jaGVjayhzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKwlzdHJ1Y3QgcGNpX2RldiAqY2hpbGRfZGV2OworCWludCBjaGlsZF9wb3M7CisKKwkvKgorCSAqIFNvbWUgZnVuY3Rpb25zIGluIGEgc2xvdCBtaWdodCBub3QgYWxsIGJlIFBDSUUgZnVuY3Rpb25zLCB2ZXJ5CisJICogc3RyYW5nZS4gRGlzYWJsZSBBU1BNIGZvciB0aGUgd2hvbGUgc2xvdAorCSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkoY2hpbGRfZGV2LCAmcGRldi0+c3Vib3JkaW5hdGUtPmRldmljZXMsIGJ1c19saXN0KSB7CisJCWNoaWxkX3BvcyA9IHBjaV9maW5kX2NhcGFiaWxpdHkoY2hpbGRfZGV2LCBQQ0lfQ0FQX0lEX0VYUCk7CisJCWlmICghY2hpbGRfcG9zKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCiAvKgogICogcGNpZV9hc3BtX2luaXRfbGlua19zdGF0ZTogSW5pdGlhdGUgUENJIGV4cHJlc3MgbGluayBzdGF0ZS4KICAqIEl0IGlzIGNhbGxlZCBhZnRlciB0aGUgcGNpZSBhbmQgaXRzIGNoaWxkcmVuIGRldmljZXMgYXJlIHNjYW5lZC4KQEAgLTUyNiw2ICs1NDMsOSBAQAogCWlmIChsaXN0X2VtcHR5KCZwZGV2LT5zdWJvcmRpbmF0ZS0+ZGV2aWNlcykpCiAJCWdvdG8gb3V0OwogCisJaWYgKHBjaWVfYXNwbV9zYW5pdHlfY2hlY2socGRldikpCisJCWdvdG8gb3V0OworCiAJbXV0ZXhfbG9jaygmYXNwbV9sb2NrKTsKIAogCWxpbmtfc3RhdGUgPSBremFsbG9jKHNpemVvZigqbGlua19zdGF0ZSksIEdGUF9LRVJORUwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvcXVpcmtzLmMgYi9kcml2ZXJzL3BjaS9xdWlya3MuYwppbmRleCBkYWJiNTYzLi4zMzhhM2Y5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9xdWlya3MuYworKysgYi9kcml2ZXJzL3BjaS9xdWlya3MuYwpAQCAtMTY3MCw2ICsxNjcwLDQ4IEBACiB9CiBERUNMQVJFX1BDSV9GSVhVUF9FQVJMWShQQ0lfVkVORE9SX0lEX1ZJQSwgMHgzMjRlLCBxdWlya192aWFfY3g3MDBfcGNpX3BhcmtpbmdfY2FjaGluZyk7CiAKKy8qCisgKiBGb3IgQnJvYWRjb20gNTcwNiwgNTcwOCwgNTcwOSByZXYuIEEgbmljcywgYW55IHJlYWQgYmV5b25kIHRoZQorICogVlBEIGVuZCB0YWcgd2lsbCBoYW5nIHRoZSBkZXZpY2UuICBUaGlzIHByb2JsZW0gd2FzIGluaXRpYWxseQorICogb2JzZXJ2ZWQgd2hlbiBhIHZwZCBlbnRyeSB3YXMgY3JlYXRlZCBpbiBzeXNmcworICogKCcvc3lzL2J1cy9wY2kvZGV2aWNlcy88aWQ+L3ZwZCcpLiAgIEEgcmVhZCB0byB0aGlzIHN5c2ZzIGVudHJ5CisgKiB3aWxsIGR1bXAgMzJrIG9mIGRhdGEuICBSZWFkaW5nIGEgZnVsbCAzMmsgd2lsbCBjYXVzZSBhbiBhY2Nlc3MKKyAqIGJleW9uZCB0aGUgVlBEIGVuZCB0YWcgY2F1c2luZyB0aGUgZGV2aWNlIHRvIGhhbmcuICBPbmNlIHRoZSBkZXZpY2UKKyAqIGlzIGh1bmcsIHRoZSBibngyIGRyaXZlciB3aWxsIG5vdCBiZSBhYmxlIHRvIHJlc2V0IHRoZSBkZXZpY2UuCisgKiBXZSBiZWxpZXZlIHRoYXQgaXQgaXMgbGVnYWwgdG8gcmVhZCBiZXlvbmQgdGhlIGVuZCB0YWcgYW5kCisgKiB0aGVyZWZvcmUgdGhlIHNvbHV0aW9uIGlzIHRvIGxpbWl0IHRoZSByZWFkL3dyaXRlIGxlbmd0aC4KKyAqLworc3RhdGljIHZvaWQgX19kZXZpbml0IHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQoc3RydWN0IHBjaV9kZXYgKmRldikKK3sKKwkvKiAgT25seSBkaXNhYmxlIHRoZSBWUEQgY2FwYWJpbGl0eSBmb3IgNTcwNiwgNTcwOCwgYW5kIDU3MDkgcmV2LiBBICovCisJaWYgKChkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX05YMl81NzA2KSB8fAorCSAgICAoZGV2LT5kZXZpY2UgPT0gUENJX0RFVklDRV9JRF9OWDJfNTcwOCkgfHwKKwkgICAgKChkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX05YMl81NzA5KSAmJgorCSAgICAgKGRldi0+cmV2aXNpb24gJiAweGYwKSA9PSAweDApKSB7CisJCWlmIChkZXYtPnZwZCkKKwkJCWRldi0+dnBkLT5sZW4gPSAweDgwOworCX0KK30KKworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwNiwKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDZTLAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwOCwKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDhTLAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfQlJPQURDT00sCisJCQkgUENJX0RFVklDRV9JRF9OWDJfNTcwOSwKKwkJCSBxdWlya19icmNtXzU3MHhfbGltaXRfdnBkKTsKK0RFQ0xBUkVfUENJX0ZJWFVQX0hFQURFUihQQ0lfVkVORE9SX0lEX0JST0FEQ09NLAorCQkJIFBDSV9ERVZJQ0VfSURfTlgyXzU3MDlTLAorCQkJIHF1aXJrX2JyY21fNTcweF9saW1pdF92cGQpOworCiAjaWZkZWYgQ09ORklHX1BDSV9NU0kKIC8qIFNvbWUgY2hpcHNldHMgZG8gbm90IHN1cHBvcnQgTVNJLiBXZSBjYW5ub3QgZWFzaWx5IHJlbHkgb24gc2V0dGluZwogICogUENJX0JVU19GTEFHU19OT19NU0kgaW4gaXRzIGJ1cyBmbGFncyBiZWNhdXNlIHRoZXJlIGFyZSBhY3R1YWxseQpAQCAtMTY4NSw2ICsxNzI3LDcgQEAKIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfU0VSVkVSV09SS1MsIFBDSV9ERVZJQ0VfSURfU0VSVkVSV09SS1NfR0NOQl9MRSwgcXVpcmtfZGlzYWJsZV9hbGxfbXNpKTsKIERFQ0xBUkVfUENJX0ZJWFVQX0ZJTkFMKFBDSV9WRU5ET1JfSURfQVRJLCBQQ0lfREVWSUNFX0lEX0FUSV9SUzQwMF8yMDAsIHF1aXJrX2Rpc2FibGVfYWxsX21zaSk7CiBERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX0FUSSwgUENJX0RFVklDRV9JRF9BVElfUlM0ODAsIHF1aXJrX2Rpc2FibGVfYWxsX21zaSk7CitERUNMQVJFX1BDSV9GSVhVUF9GSU5BTChQQ0lfVkVORE9SX0lEX1ZJQSwgUENJX0RFVklDRV9JRF9WSUFfVlQzMzM2LCBxdWlya19kaXNhYmxlX2FsbF9tc2kpOwogREVDTEFSRV9QQ0lfRklYVVBfRklOQUwoUENJX1ZFTkRPUl9JRF9WSUEsIFBDSV9ERVZJQ0VfSURfVklBX1ZUMzM1MSwgcXVpcmtfZGlzYWJsZV9hbGxfbXNpKTsKIAogLyogRGlzYWJsZSBNU0kgb24gY2hpcHNldHMgdGhhdCBhcmUga25vd24gdG8gbm90IHN1cHBvcnQgaXQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL0tjb25maWcgYi9kcml2ZXJzL3BjbWNpYS9LY29uZmlnCmluZGV4IDFiMGViNWEuLmU0NTQwMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL0tjb25maWcKKysrIGIvZHJpdmVycy9wY21jaWEvS2NvbmZpZwpAQCAtMjYzLDYgKzI2MywxMyBAQAogCSAgU2F5IFkgaGVyZSB0byBzdXBwb3J0IHRoZSBDb21wYWN0Rmxhc2ggY29udHJvbGxlciBvbiBPTUFQLgogCSAgTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBzdXBwb3J0ICJUcnVlIElERSIgbW9kZS4KIAorY29uZmlnIEJGSU5fQ0ZQQ01DSUEKKwl0cmlzdGF0ZSAiQmxhY2tmaW4gQ29tcGFjdEZsYXNoIFBDTUNJQSBEcml2ZXIiCisJZGVwZW5kcyBvbiBQQ01DSUEgJiYgQkxBQ0tGSU4KKwloZWxwCisJICBTYXkgWSBoZXJlIHRvIHN1cHBvcnQgdGhlIENvbXBhY3RGbGFzaCBQQ01DSUEgZHJpdmVyIGZvciBCbGFja2Zpbi4KKworCiBjb25maWcgQVQ5MV9DRgogCXRyaXN0YXRlICJBVDkxIENvbXBhY3RGbGFzaCBDb250cm9sbGVyIgogCWRlcGVuZHMgb24gUENNQ0lBICYmIEFSQ0hfQVQ5MVJNOTIwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvTWFrZWZpbGUgYi9kcml2ZXJzL3BjbWNpYS9NYWtlZmlsZQppbmRleCA2ZjY0NzhiLi44NWM2Y2M5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3BjbWNpYS9NYWtlZmlsZQpAQCAtMzYsNiArMzYsNyBAQAogb2JqLSQoQ09ORklHX1BDTUNJQV9WUkM0MTcxKQkJCSs9IHZyYzQxNzFfY2FyZC5vCiBvYmotJChDT05GSUdfUENNQ0lBX1ZSQzQxNzMpCQkJKz0gdnJjNDE3M19jYXJkdS5vCiBvYmotJChDT05GSUdfT01BUF9DRikJCQkJKz0gb21hcF9jZi5vCitvYmotJChDT05GSUdfQkZJTl9DRlBDTUNJQSkJCQkrPSBiZmluX2NmX3BjbWNpYS5vCiBvYmotJChDT05GSUdfQVQ5MV9DRikJCQkJKz0gYXQ5MV9jZi5vCiBvYmotJChDT05GSUdfRUxFQ1RSQV9DRikJCQkrPSBlbGVjdHJhX2NmLm8KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX2dlbmVyaWMuaCBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9nZW5lcmljLmgKaW5kZXggMWU0NjdiYi4uYTUzZWY1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX2dlbmVyaWMuaAorKysgYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfZ2VuZXJpYy5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKIApAQCAtMzQsOSArMzMsOSBAQAogI2RlZmluZSBBVTEwMDBfUENNQ0lBX0lPX1NQRUVEICAgICAgICgyNTUpCiAjZGVmaW5lIEFVMTAwMF9QQ01DSUFfTUVNX1NQRUVEICAgICAgKDMwMCkKIAotI2RlZmluZSBBVTFYX1NPQ0swX0lPICAgICAgICAweEYwMDAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0swX1BIWVNfQVRUUiAweEY0MDAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0swX1BIWVNfTUVNICAweEY4MDAwMDAwMAorI2RlZmluZSBBVTFYX1NPQ0swX0lPICAgICAgICAweEYwMDAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0swX1BIWVNfQVRUUiAweEY0MDAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0swX1BIWVNfTUVNICAweEY4MDAwMDAwMFVMTAogLyogcHNldWRvIDMyIGJpdCBwaHlzIGFkZHJlc3Nlcywgd2hpY2ggZ2V0IGZpeGVkIHVwIHRvIHRoZQogICogcmVhbCAzNiBiaXQgYWRkcmVzcyBpbiBmaXh1cF9iaWdwaHlzX2FkZHIoKSAqLwogI2RlZmluZSBBVTFYX1NPQ0swX1BTRVVET19QSFlTX0FUVFIgMHhGNDAwMDAwMApAQCAtNDUsMTYgKzQ0LDIwIEBACiAvKiBwY21jaWEgc29ja2V0IDEgbmVlZHMgZXh0ZXJuYWwgZ2x1ZSBsb2dpYyBzbyB0aGUgbWVtb3J5IG1hcAogICogZGlmZmVycyBmcm9tIGJvYXJkIHRvIGJvYXJkLgogICovCi0jaWYgZGVmaW5lZChDT05GSUdfTUlQU19QQjEwMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxMTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTUwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19QQjE1NTApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfUEIxMjAwKQotI2RlZmluZSBBVTFYX1NPQ0sxX0lPICAgICAgICAweEYwODAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfQVRUUiAweEY0ODAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfTUVNICAweEY4ODAwMDAwMAorI2lmIGRlZmluZWQoQ09ORklHX01JUFNfUEIxMDAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTEwMCkgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX01JUFNfUEIxNTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX1BCMTU1MCkgfHwgXAorICAgIGRlZmluZWQoQ09ORklHX01JUFNfUEIxMjAwKQorI2RlZmluZSBBVTFYX1NPQ0sxX0lPICAgICAgICAweEYwODAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfQVRUUiAweEY0ODAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfTUVNICAweEY4ODAwMDAwMFVMTAogI2RlZmluZSBBVTFYX1NPQ0sxX1BTRVVET19QSFlTX0FUVFIgMHhGNDgwMDAwMAogI2RlZmluZSBBVTFYX1NPQ0sxX1BTRVVET19QSFlTX01FTSAgMHhGODgwMDAwMAotI2VsaWYgZGVmaW5lZChDT05GSUdfTUlQU19EQjEwMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxMTAwKSB8fCBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTUwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjE1NTApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxMjAwKQotI2RlZmluZSBBVTFYX1NPQ0sxX0lPICAgICAgICAweEYwNDAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfQVRUUiAweEY0NDAwMDAwMAotI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfTUVNICAweEY4NDAwMDAwMAorI2VsaWYgZGVmaW5lZChDT05GSUdfTUlQU19EQjEwMDApIHx8IGRlZmluZWQoQ09ORklHX01JUFNfREIxMTAwKSB8fCBcCisgICAgICBkZWZpbmVkKENPTkZJR19NSVBTX0RCMTUwMCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19EQjE1NTApIHx8IFwKKyAgICAgIGRlZmluZWQoQ09ORklHX01JUFNfREIxMjAwKQorI2RlZmluZSBBVTFYX1NPQ0sxX0lPICAgICAgICAweEYwNDAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfQVRUUiAweEY0NDAwMDAwMFVMTAorI2RlZmluZSBBVTFYX1NPQ0sxX1BIWVNfTUVNICAweEY4NDAwMDAwMFVMTAogI2RlZmluZSBBVTFYX1NPQ0sxX1BTRVVET19QSFlTX0FUVFIgMHhGNDQwMDAwMAogI2RlZmluZSBBVTFYX1NPQ0sxX1BTRVVET19QSFlTX01FTSAgMHhGODQwMDAwMAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfcGIxeDAwLmMgYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfcGIxeDAwLmMKaW5kZXggMTU3ZTQxNC4uYWExY2Q0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvYXUxMDAwX3BiMXgwMC5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF9wYjF4MDAuYwpAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9idXNfb3BzLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF94eHMxNTAwLmMgYi9kcml2ZXJzL3BjbWNpYS9hdTEwMDBfeHhzMTUwMC5jCmluZGV4IGM3OGVkNTMuLjhhOWIxOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2F1MTAwMF94eHMxNTAwLmMKKysrIGIvZHJpdmVycy9wY21jaWEvYXUxMDAwX3h4czE1MDAuYwpAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9idXNfb3BzLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2JmaW5fY2ZfcGNtY2lhLmMgYi9kcml2ZXJzL3BjbWNpYS9iZmluX2NmX3BjbWNpYS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiNzMzODg2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9wY21jaWEvYmZpbl9jZl9wY21jaWEuYwpAQCAtMCwwICsxLDMzOSBAQAorLyoKKyAqIGZpbGU6IGRyaXZlcnMvcGNtY2lhL2JmaW5fY2YuYworICoKKyAqIGJhc2VkIG9uOiBkcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMKKyAqIG9tYXBfY2YuYyAtLSBPTUFQIDE2eHggQ29tcGFjdEZsYXNoIGNvbnRyb2xsZXIgZHJpdmVyCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA1IERhdmlkIEJyb3duZWxsCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCBNaWNoYWVsIEhlbm5lcmljaCBBbmFsb2cgRGV2aWNlcyBJbmMuCisgKgorICogYnVnczogICAgICAgICBlbnRlciBidWdzIGF0IGh0dHA6Ly9ibGFja2Zpbi51Y2xpbnV4Lm9yZy8KKyAqCisgKiB0aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBnbnUgZ2VuZXJhbCBwdWJsaWMgbGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBmcmVlIHNvZnR3YXJlIGZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIHRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IHdpdGhvdXQgYW55IHdhcnJhbnR5OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIG1lcmNoYW50YWJpbGl0eSBvciBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4gIHNlZSB0aGUKKyAqIGdudSBnZW5lcmFsIHB1YmxpYyBsaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogeW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgZ251IGdlbmVyYWwgcHVibGljIGxpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgY29weWluZy4KKyAqIGlmIG5vdCwgd3JpdGUgdG8gdGhlIGZyZWUgc29mdHdhcmUgZm91bmRhdGlvbiwKKyAqIDU5IHRlbXBsZSBwbGFjZSAtIHN1aXRlIDMzMCwgYm9zdG9uLCBtYSAwMjExMS0xMzA3LCB1c2EuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CisjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisKKyNkZWZpbmUJU1pfMUsJMHgwMDAwMDQwMAorI2RlZmluZQlTWl84SwkweDAwMDAyMDAwCisjZGVmaW5lCVNaXzJLCSgyICogU1pfMUspCisKKyNkZWZpbmUJUE9MTF9JTlRFUlZBTAkoMiAqIEhaKQorCisjZGVmaW5lCUNGX0FUQVNFTF9FTkEgCTB4MjAzMTE4MDIJLyogSW52ZXJ0cyBSRVNFVCAqLworI2RlZmluZQlDRl9BVEFTRUxfRElTIAkweDIwMzExODAwCisKKyNkZWZpbmUgYmZpbl9jZl9wcmVzZW50KHBmeCkgKGdwaW9fZ2V0X3ZhbHVlKHBmeCkpCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZVtdID0gImJmaW5fY2ZfcGNtY2lhIjsKKworc3RydWN0IGJmaW5fY2Zfc29ja2V0IHsKKwlzdHJ1Y3QgcGNtY2lhX3NvY2tldCBzb2NrZXQ7CisKKwlzdHJ1Y3QgdGltZXJfbGlzdCB0aW1lcjsKKwl1bnNpZ25lZCBwcmVzZW50OjE7CisJdW5zaWduZWQgYWN0aXZlOjE7CisKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2OworCXVuc2lnbmVkIGxvbmcgcGh5c19jZl9pbzsKKwl1bnNpZ25lZCBsb25nIHBoeXNfY2ZfYXR0cjsKKwl1X2ludCBpcnE7CisJdV9zaG9ydCBjZF9wZng7Cit9OworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBpbnQgYmZpbl9jZl9yZXNldCh2b2lkKQoreworCW91dHcoMCwgQ0ZfQVRBU0VMX0VOQSk7CisJbWRlbGF5KDIwMCk7CisJb3V0dygwLCBDRl9BVEFTRUxfRElTKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJmaW5fY2Zfc3NfaW5pdChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcykKK3sKKwlyZXR1cm4gMDsKK30KKworLyogdGhlIHRpbWVyIGlzIHByaW1hcmlseSB0byBraWNrIHRoaXMgc29ja2V0J3MgcGNjYXJkZCAqLworc3RhdGljIHZvaWQgYmZpbl9jZl90aW1lcih1bnNpZ25lZCBsb25nIF9jZikKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmID0gKHZvaWQgKilfY2Y7CisJdW5zaWduZWQgc2hvcnQgcHJlc2VudCA9IGJmaW5fY2ZfcHJlc2VudChjZi0+Y2RfcGZ4KTsKKworCWlmIChwcmVzZW50ICE9IGNmLT5wcmVzZW50KSB7CisJCWNmLT5wcmVzZW50ID0gcHJlc2VudDsKKwkJZGV2X2RiZygmY2YtPnBkZXYtPmRldiwgIjogY2FyZCAlc1xuIiwKKwkJCSBwcmVzZW50ID8gInByZXNlbnQiIDogImdvbmUiKTsKKwkJcGNtY2lhX3BhcnNlX2V2ZW50cygmY2YtPnNvY2tldCwgU1NfREVURUNUKTsKKwl9CisKKwlpZiAoY2YtPmFjdGl2ZSkKKwkJbW9kX3RpbWVyKCZjZi0+dGltZXIsIGppZmZpZXMgKyBQT0xMX0lOVEVSVkFMKTsKK30KKworc3RhdGljIGludCBiZmluX2NmX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHVfaW50ICpzcCkKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCisJaWYgKCFzcCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljZiA9IGNvbnRhaW5lcl9vZihzLCBzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQsIHNvY2tldCk7CisKKwlpZiAoYmZpbl9jZl9wcmVzZW50KGNmLT5jZF9wZngpKSB7CisJCSpzcCA9IFNTX1JFQURZIHwgU1NfREVURUNUIHwgU1NfUE9XRVJPTiB8IFNTXzNWQ0FSRDsKKwkJcy0+aXJxLkFzc2lnbmVkSVJRID0gMDsKKwkJcy0+cGNpX2lycSA9IGNmLT5pcnE7CisKKwl9IGVsc2UKKwkJKnNwID0gMDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorYmZpbl9jZl9zZXRfc29ja2V0KHN0cnVjdCBwY21jaWFfc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0X3N0YXRlX3QgKnMpCit7CisKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCWNmID0gY29udGFpbmVyX29mKHNvY2ssIHN0cnVjdCBiZmluX2NmX3NvY2tldCwgc29ja2V0KTsKKworCXN3aXRjaCAocy0+VmNjKSB7CisJY2FzZSAwOgorCWNhc2UgMzM6CisJCWJyZWFrOworCWNhc2UgNTA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWlmIChzLT5mbGFncyAmIFNTX1JFU0VUKSB7CisJCWRpc2FibGVfaXJxKGNmLT5pcnEpOworCQliZmluX2NmX3Jlc2V0KCk7CisJCWVuYWJsZV9pcnEoY2YtPmlycSk7CisJfQorCisJZGV2X2RiZygmY2YtPnBkZXYtPmRldiwgIjogVmNjICVkLCBpb19pcnEgJWQsIGZsYWdzICUwNHggY3NjICUwNHhcbiIsCisJCSBzLT5WY2MsIHMtPmlvX2lycSwgcy0+ZmxhZ3MsIHMtPmNzY19tYXNrKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJmaW5fY2Zfc3Nfc3VzcGVuZChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcykKK3sKKwlyZXR1cm4gYmZpbl9jZl9zZXRfc29ja2V0KHMsICZkZWFkX3NvY2tldCk7Cit9CisKKy8qIHJlZ2lvbnMgYXJlIDJLIGVhY2g6ICBtZW0sIGF0dHJpYiwgaW8gKGFuZCByZXNlcnZlZC1mb3ItaWRlKSAqLworCitzdGF0aWMgaW50IGJmaW5fY2Zfc2V0X2lvX21hcChzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHBjY2FyZF9pb19tYXAgKmlvKQoreworCXN0cnVjdCBiZmluX2NmX3NvY2tldCAqY2Y7CisKKwljZiA9IGNvbnRhaW5lcl9vZihzLCBzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQsIHNvY2tldCk7CisJaW8tPmZsYWdzICY9IE1BUF9BQ1RJVkUgfCBNQVBfQVRUUklCIHwgTUFQXzE2QklUOworCWlvLT5zdGFydCA9IGNmLT5waHlzX2NmX2lvOworCWlvLT5zdG9wID0gaW8tPnN0YXJ0ICsgU1pfMksgLSAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitiZmluX2NmX3NldF9tZW1fbWFwKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBzdHJ1Y3QgcGNjYXJkX21lbV9tYXAgKm1hcCkKK3sKKwlzdHJ1Y3QgYmZpbl9jZl9zb2NrZXQgKmNmOworCisJaWYgKG1hcC0+Y2FyZF9zdGFydCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJY2YgPSBjb250YWluZXJfb2Yocywgc3RydWN0IGJmaW5fY2Zfc29ja2V0LCBzb2NrZXQpOworCW1hcC0+c3RhdGljX3N0YXJ0ID0gY2YtPnBoeXNfY2ZfaW87CisJbWFwLT5mbGFncyAmPSBNQVBfQUNUSVZFIHwgTUFQX0FUVFJJQiB8IE1BUF8xNkJJVDsKKwlpZiAobWFwLT5mbGFncyAmIE1BUF9BVFRSSUIpCisJCW1hcC0+c3RhdGljX3N0YXJ0ID0gY2YtPnBoeXNfY2ZfYXR0cjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBjY2FyZF9vcGVyYXRpb25zIGJmaW5fY2Zfb3BzID0geworCS5pbml0ID0gYmZpbl9jZl9zc19pbml0LAorCS5zdXNwZW5kID0gYmZpbl9jZl9zc19zdXNwZW5kLAorCS5nZXRfc3RhdHVzID0gYmZpbl9jZl9nZXRfc3RhdHVzLAorCS5zZXRfc29ja2V0ID0gYmZpbl9jZl9zZXRfc29ja2V0LAorCS5zZXRfaW9fbWFwID0gYmZpbl9jZl9zZXRfaW9fbWFwLAorCS5zZXRfbWVtX21hcCA9IGJmaW5fY2Zfc2V0X21lbV9tYXAsCit9OworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGludCBfX2RldmluaXQgYmZpbl9jZl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBiZmluX2NmX3NvY2tldCAqY2Y7CisJc3RydWN0IHJlc291cmNlICppb19tZW0sICphdHRyX21lbTsKKwlpbnQgaXJxOworCXVuc2lnbmVkIHNob3J0IGNkX3BmeDsKKwlpbnQgc3RhdHVzID0gMDsKKworCWRldl9pbmZvKCZwZGV2LT5kZXYsICJCbGFja2ZpbiBDb21wYWN0Rmxhc2gvUENNQ0lBIFNvY2tldCBEcml2ZXJcbiIpOworCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlpZiAoIWlycSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljZF9wZnggPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOwkvKkNhcmQgRGV0ZWN0IEdQSU8gUElOICovCisKKwlpZiAoZ3Bpb19yZXF1ZXN0KGNkX3BmeCwgInBjbWNpYTogQ0QiKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsCisJCSAgICAgICAiRmFpbGVkIHJvIHJlcXVlc3QgQ2FyZCBEZXRlY3QgR1BJT18lZFxuIiwKKwkJICAgICAgIGNkX3BmeCk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCWdwaW9fZGlyZWN0aW9uX2lucHV0KGNkX3BmeCk7CisKKwljZiA9IGt6YWxsb2Moc2l6ZW9mICpjZiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjZikgeworCQlncGlvX2ZyZWUoY2RfcGZ4KTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJY2YtPmNkX3BmeCA9IGNkX3BmeDsKKworCXNldHVwX3RpbWVyKCZjZi0+dGltZXIsIGJmaW5fY2ZfdGltZXIsICh1bnNpZ25lZCBsb25nKWNmKTsKKworCWNmLT5wZGV2ID0gcGRldjsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBjZik7CisKKwljZi0+aXJxID0gaXJxOworCWNmLT5zb2NrZXQucGNpX2lycSA9IGlycTsKKworCXNldF9pcnFfdHlwZShpcnEsIElSUUZfVFJJR0dFUl9MT1cpOworCisJaW9fbWVtID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlhdHRyX21lbSA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMSk7CisKKwlpZiAoIWlvX21lbSB8fCAhYXR0cl9tZW0pCisJCWdvdG8gZmFpbDA7CisKKwljZi0+cGh5c19jZl9pbyA9IGlvX21lbS0+c3RhcnQ7CisJY2YtPnBoeXNfY2ZfYXR0ciA9IGF0dHJfbWVtLT5zdGFydDsKKworCS8qIHBjbWNpYSBsYXllciBvbmx5IHJlbWFwcyAicmVhbCIgbWVtb3J5ICovCisJY2YtPnNvY2tldC5pb19vZmZzZXQgPSAodW5zaWduZWQgbG9uZykKKwkgICAgaW9yZW1hcChjZi0+cGh5c19jZl9pbywgU1pfMkspOworCisJaWYgKCFjZi0+c29ja2V0LmlvX29mZnNldCkKKwkJZ290byBmYWlsMDsKKworCWRldl9lcnIoJnBkZXYtPmRldiwgIjogb24gaXJxICVkXG4iLCBpcnEpOworCisJZGV2X2RiZygmcGRldi0+ZGV2LCAiOiAlc1xuIiwKKwkJIGJmaW5fY2ZfcHJlc2VudChjZi0+Y2RfcGZ4KSA/ICJwcmVzZW50IiA6ICIobm90IHByZXNlbnQpIik7CisKKwljZi0+c29ja2V0Lm93bmVyID0gVEhJU19NT0RVTEU7CisJY2YtPnNvY2tldC5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKKwljZi0+c29ja2V0Lm9wcyA9ICZiZmluX2NmX29wczsKKwljZi0+c29ja2V0LnJlc291cmNlX29wcyA9ICZwY2NhcmRfc3RhdGljX29wczsKKwljZi0+c29ja2V0LmZlYXR1cmVzID0gU1NfQ0FQX1BDQ0FSRCB8IFNTX0NBUF9TVEFUSUNfTUFQCisJICAgIHwgU1NfQ0FQX01FTV9BTElHTjsKKwljZi0+c29ja2V0Lm1hcF9zaXplID0gU1pfMks7CisKKwlzdGF0dXMgPSBwY21jaWFfcmVnaXN0ZXJfc29ja2V0KCZjZi0+c29ja2V0KTsKKwlpZiAoc3RhdHVzIDwgMCkKKwkJZ290byBmYWlsMjsKKworCWNmLT5hY3RpdmUgPSAxOworCW1vZF90aW1lcigmY2YtPnRpbWVyLCBqaWZmaWVzICsgUE9MTF9JTlRFUlZBTCk7CisJcmV0dXJuIDA7CisKK2ZhaWwyOgorCWlvdW5tYXAoKHZvaWQgX19pb21lbSAqKWNmLT5zb2NrZXQuaW9fb2Zmc2V0KTsKKwlyZWxlYXNlX21lbV9yZWdpb24oY2YtPnBoeXNfY2ZfaW8sIFNaXzhLKTsKKworZmFpbDA6CisJZ3Bpb19mcmVlKGNmLT5jZF9wZngpOworCWtmcmVlKGNmKTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBpbnQgX19kZXZleGl0IGJmaW5fY2ZfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGJmaW5fY2Zfc29ja2V0ICpjZiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJZ3Bpb19mcmVlKGNmLT5jZF9wZngpOworCWNmLT5hY3RpdmUgPSAwOworCXBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCgmY2YtPnNvY2tldCk7CisJZGVsX3RpbWVyX3N5bmMoJmNmLT50aW1lcik7CisJaW91bm1hcCgodm9pZCBfX2lvbWVtICopY2YtPnNvY2tldC5pb19vZmZzZXQpOworCXJlbGVhc2VfbWVtX3JlZ2lvbihjZi0+cGh5c19jZl9pbywgU1pfOEspOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCWtmcmVlKGNmKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiZmluX2NmX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IG1lc2cpCit7CisJcmV0dXJuIHBjbWNpYV9zb2NrZXRfZGV2X3N1c3BlbmQoJnBkZXYtPmRldiwgbWVzZyk7Cit9CisKK3N0YXRpYyBpbnQgYmZpbl9jZl9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlyZXR1cm4gcGNtY2lhX3NvY2tldF9kZXZfcmVzdW1lKCZwZGV2LT5kZXYpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiZmluX2NmX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkgICAubmFtZSA9IChjaGFyICopZHJpdmVyX25hbWUsCisJCSAgIC5vd25lciA9IFRISVNfTU9EVUxFLAorCQkgICB9LAorCS5wcm9iZSA9IGJmaW5fY2ZfcHJvYmUsCisJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKGJmaW5fY2ZfcmVtb3ZlKSwKKwkuc3VzcGVuZCA9IGJmaW5fY2Zfc3VzcGVuZCwKKwkucmVzdW1lID0gYmZpbl9jZl9yZXN1bWUsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBiZmluX2NmX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZiZmluX2NmX2RyaXZlcik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBiZmluX2NmX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmYmZpbl9jZl9kcml2ZXIpOworfQorCittb2R1bGVfaW5pdChiZmluX2NmX2luaXQpOworbW9kdWxlX2V4aXQoYmZpbl9jZl9leGl0KTsKKworTU9EVUxFX0FVVEhPUigiTWljaGFlbCBIZW5uZXJpY2ggPGhlbm5lcmljaEBibGFja2Zpbi51Y2xpbnV4Lm9yZz4iKQorTU9EVUxFX0RFU0NSSVBUSU9OKCJCRklOIENGL1BDTUNJQSBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2NhcmRidXMuYyBiL2RyaXZlcnMvcGNtY2lhL2NhcmRidXMuYwppbmRleCBmYjJmMzhkLi45MTFjYTBlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9jYXJkYnVzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvY2FyZGJ1cy5jCkBAIC0zMCwxMSArMzAsOSBAQAogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvY2lzdHBsLmMgYi9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYwppbmRleCAzNjM3OTUzLi45ZmNmZjBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYworKysgYi9kcml2ZXJzL3BjbWNpYS9jaXN0cGwuYwpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXN0cGwuaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgpAQCAtMTQzOSwxMCArMTQzOCwxMSBAQAogICAgIAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCiAKLWludCBwY2NhcmRfdmFsaWRhdGVfY2lzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBpbnQgZnVuY3Rpb24sIGNpc2luZm9fdCAqaW5mbykKK2ludCBwY2NhcmRfdmFsaWRhdGVfY2lzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBpbnQgZnVuY3Rpb24sIHVuc2lnbmVkIGludCAqaW5mbykKIHsKICAgICB0dXBsZV90ICp0dXBsZTsKICAgICBjaXNwYXJzZV90ICpwOworICAgIHVuc2lnbmVkIGludCBjb3VudCA9IDA7CiAgICAgaW50IHJldCwgcmVzZXJ2ZWQsIGRldl9vayA9IDAsIGlkZW50X29rID0gMDsKIAogICAgIGlmICghcykKQEAgLTE0NTcsNyArMTQ1Nyw3IEBACiAJcmV0dXJuIENTX09VVF9PRl9SRVNPVVJDRTsKICAgICB9CiAKLSAgICBpbmZvLT5DaGFpbnMgPSByZXNlcnZlZCA9IDA7CisgICAgY291bnQgPSByZXNlcnZlZCA9IDA7CiAgICAgdHVwbGUtPkRlc2lyZWRUdXBsZSA9IFJFVFVSTl9GSVJTVF9UVVBMRTsKICAgICB0dXBsZS0+QXR0cmlidXRlcyA9IFRVUExFX1JFVFVSTl9DT01NT047CiAgICAgcmV0ID0gcGNjYXJkX2dldF9maXJzdF90dXBsZShzLCBmdW5jdGlvbiwgdHVwbGUpOwpAQCAtMTQ4Miw3ICsxNDgyLDcgQEAKICAgICBpZiAoIWRldl9vayAmJiAhaWRlbnRfb2spCiAJZ290byBkb25lOwogCi0gICAgZm9yIChpbmZvLT5DaGFpbnMgPSAxOyBpbmZvLT5DaGFpbnMgPCBNQVhfVFVQTEVTOyBpbmZvLT5DaGFpbnMrKykgeworICAgIGZvciAoY291bnQgPSAxOyBjb3VudCA8IE1BWF9UVVBMRVM7IGNvdW50KyspIHsKIAlyZXQgPSBwY2NhcmRfZ2V0X25leHRfdHVwbGUocywgZnVuY3Rpb24sIHR1cGxlKTsKIAlpZiAocmV0ICE9IENTX1NVQ0NFU1MpIGJyZWFrOwogCWlmICgoKHR1cGxlLT5UdXBsZUNvZGUgPiAweDIzKSAmJiAodHVwbGUtPlR1cGxlQ29kZSA8IDB4NDApKSB8fApAQCAtMTQ5MCwxMSArMTQ5MCwxMyBAQAogCSAgICAoKHR1cGxlLT5UdXBsZUNvZGUgPiAweDkwKSAmJiAodHVwbGUtPlR1cGxlQ29kZSA8IDB4ZmYpKSkKIAkgICAgcmVzZXJ2ZWQrKzsKICAgICB9Ci0gICAgaWYgKChpbmZvLT5DaGFpbnMgPT0gTUFYX1RVUExFUykgfHwgKHJlc2VydmVkID4gNSkgfHwKLQkoKCFkZXZfb2sgfHwgIWlkZW50X29rKSAmJiAoaW5mby0+Q2hhaW5zID4gMTApKSkKLQlpbmZvLT5DaGFpbnMgPSAwOworICAgIGlmICgoY291bnQpIHx8IChyZXNlcnZlZCA+IDUpIHx8CisJKCghZGV2X29rIHx8ICFpZGVudF9vaykgJiYgKGNvdW50ID4gMTApKSkKKwljb3VudCA9IDA7CiAKIGRvbmU6CisgICAgaWYgKGluZm8pCisJICAgICppbmZvID0gY291bnQ7CiAgICAga2ZyZWUodHVwbGUpOwogICAgIGtmcmVlKHApOwogICAgIHJldHVybiBDU19TVUNDRVNTOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvY3MuYyBiL2RyaXZlcnMvcGNtY2lhL2NzLmMKaW5kZXggMjkyNzZiZC4uZDEyMDczOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY3MuYworKysgYi9kcml2ZXJzL3BjbWNpYS9jcy5jCkBAIC0zMiwxMSArMzIsOSBAQAogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KQEAgLTIzOCw3ICsyMzYsNiBAQAogCiAJaW5pdF9jb21wbGV0aW9uKCZzb2NrZXQtPnNvY2tldF9yZWxlYXNlZCk7CiAJaW5pdF9jb21wbGV0aW9uKCZzb2NrZXQtPnRocmVhZF9kb25lKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzb2NrZXQtPnRocmVhZF93YWl0KTsKIAltdXRleF9pbml0KCZzb2NrZXQtPnNrdF9tdXRleCk7CiAJc3Bpbl9sb2NrX2luaXQoJnNvY2tldC0+dGhyZWFkX2xvY2spOwogCkBAIC0yNzgsMTAgKzI3NSw5IEBACiAKIAljc19kYmcoc29ja2V0LCAwLCAicGNtY2lhX3VucmVnaXN0ZXJfc29ja2V0KDB4JXApXG4iLCBzb2NrZXQtPm9wcyk7CiAKLQlpZiAoc29ja2V0LT50aHJlYWQpIHsKLQkJd2FrZV91cCgmc29ja2V0LT50aHJlYWRfd2FpdCk7CisJaWYgKHNvY2tldC0+dGhyZWFkKQogCQlrdGhyZWFkX3N0b3Aoc29ja2V0LT50aHJlYWQpOwotCX0KKwogCXJlbGVhc2VfY2lzX21lbShzb2NrZXQpOwogCiAJLyogcmVtb3ZlIGZyb20gb3VyIG93biBsaXN0ICovCkBAIC02MzUsNyArNjMxLDYgQEAKIHN0YXRpYyBpbnQgcGNjYXJkZCh2b2lkICpfX3NrdCkKIHsKIAlzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqc2t0ID0gX19za3Q7Ci0JREVDTEFSRV9XQUlUUVVFVUUod2FpdCwgY3VycmVudCk7CiAJaW50IHJldDsKIAogCXNrdC0+dGhyZWFkID0gY3VycmVudDsKQEAgLTY1Niw3ICs2NTEsNiBAQAogCWlmIChyZXQpCiAJCWRldl93YXJuKCZza3QtPmRldiwgImVyciAlZCBhZGRpbmcgc29ja2V0IGF0dHJpYnV0ZXNcbiIsIHJldCk7CiAKLQlhZGRfd2FpdF9xdWV1ZSgmc2t0LT50aHJlYWRfd2FpdCwgJndhaXQpOwogCWNvbXBsZXRlKCZza3QtPnRocmVhZF9kb25lKTsKIAogCXNldF9mcmVlemFibGUoKTsKQEAgLTY5NCw4ICs2ODgsNiBAQAogCS8qIG1ha2Ugc3VyZSB3ZSBhcmUgcnVubmluZyBiZWZvcmUgd2UgZXhpdCAqLwogCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CiAKLQlyZW1vdmVfd2FpdF9xdWV1ZSgmc2t0LT50aHJlYWRfd2FpdCwgJndhaXQpOwotCiAJLyogcmVtb3ZlIGZyb20gdGhlIGRldmljZSBjb3JlICovCiAJcGNjYXJkX3N5c2ZzX3JlbW92ZV9zb2NrZXQoJnNrdC0+ZGV2KTsKIAlkZXZpY2VfdW5yZWdpc3Rlcigmc2t0LT5kZXYpOwpAQCAtNzE2LDcgKzcwOCw3IEBACiAJCXMtPnRocmVhZF9ldmVudHMgfD0gZXZlbnRzOwogCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT50aHJlYWRfbG9jaywgZmxhZ3MpOwogCi0JCXdha2VfdXAoJnMtPnRocmVhZF93YWl0KTsKKwkJd2FrZV91cF9wcm9jZXNzKHMtPnRocmVhZCk7CiAJfQogfSAvKiBwY21jaWFfcGFyc2VfZXZlbnRzICovCiBFWFBPUlRfU1lNQk9MKHBjbWNpYV9wYXJzZV9ldmVudHMpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvY3NfaW50ZXJuYWwuaCBiL2RyaXZlcnMvcGNtY2lhL2NzX2ludGVybmFsLmgKaW5kZXggZTdkNWQxNC4uNjNkYzFhMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvY3NfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL3BjbWNpYS9jc19pbnRlcm5hbC5oCkBAIC0yNiwxOCArMjYsNiBAQAogI2RlZmluZSBDTElFTlRfV0lOX1JFUShpKQkoMHgxPDwoaSkpCiAjZGVmaW5lIENMSUVOVF9DQVJEQlVTCQkweDgwMDAKIAotI2RlZmluZSBSRUdJT05fTUFHSUMJMHhFM0M5Ci10eXBlZGVmIHN0cnVjdCByZWdpb25fdCB7Ci0gICAgdV9zaG9ydAkJcmVnaW9uX21hZ2ljOwotICAgIHVfc2hvcnQJCXN0YXRlOwotICAgIGRldl9pbmZvX3QJCWRldl9pbmZvOwotICAgIHN0cnVjdCBwY21jaWFfZGV2aWNlCSptdGQ7Ci0gICAgdV9pbnQJCU1lZGlhSUQ7Ci0gICAgcmVnaW9uX2luZm9fdAlpbmZvOwotfSByZWdpb25fdDsKLQotI2RlZmluZSBSRUdJT05fU1RBTEUJMHgwMQotCiAvKiBFYWNoIGNhcmQgZnVuY3Rpb24gZ2V0cyBvbmUgb2YgdGhlc2UgZ3V5cyAqLwogdHlwZWRlZiBzdHJ1Y3QgY29uZmlnX3QgewogCXN0cnVjdCBrcmVmCXJlZjsKQEAgLTEzMCw3ICsxMTgsNiBAQAogaW50IHBjbWNpYV9nZXRfd2luZG93KHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB3aW5kb3dfaGFuZGxlX3QgKmhhbmRsZSwgaW50IGlkeCwgd2luX3JlcV90ICpyZXEpOwogaW50IHBjY2FyZF9nZXRfY29uZmlndXJhdGlvbl9pbmZvKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNvbmZpZ19pbmZvX3QgKmNvbmZpZyk7CiBpbnQgcGNjYXJkX3Jlc2V0X2NhcmQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnNrdCk7Ci1pbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwgY3Nfc3RhdHVzX3QgKnN0YXR1cyk7CiAKIAogc3RydWN0IHBjbWNpYV9jYWxsYmFja3sKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2RzLmMgYi9kcml2ZXJzL3BjbWNpYS9kcy5jCmluZGV4IGU0MDc3NTQuLjQxNzRkOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2RzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvZHMuYwpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2tyZWYuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgogCi0jZGVmaW5lIElOX0NBUkRfU0VSVklDRVMKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CkBAIC03NDEsOSArNzQwLDggQEAKIAogc3RhdGljIGludCBwY21jaWFfY2FyZF9hZGQoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCiB7Ci0JY2lzaW5mb190IGNpc2luZm87CiAJY2lzdHBsX2xvbmdsaW5rX21mY190IG1mYzsKLQl1bnNpZ25lZCBpbnQgbm9fZnVuY3MsIGk7CisJdW5zaWduZWQgaW50IG5vX2Z1bmNzLCBpLCBub19jaGFpbnM7CiAJaW50IHJldCA9IDA7CiAKIAlpZiAoIShzLT5yZXNvdXJjZV9zZXR1cF9kb25lKSkgewpAQCAtNzU3LDggKzc1NSw4IEBACiAJCXJldHVybiAtRUFHQUlOOyAvKiB0cnkgYWdhaW4sIGJ1dCBsYXRlci4uLiAqLwogCX0KIAotCXJldCA9IHBjY2FyZF92YWxpZGF0ZV9jaXMocywgQklORF9GTl9BTEwsICZjaXNpbmZvKTsKLQlpZiAocmV0IHx8ICFjaXNpbmZvLkNoYWlucykgeworCXJldCA9IHBjY2FyZF92YWxpZGF0ZV9jaXMocywgQklORF9GTl9BTEwsICZub19jaGFpbnMpOworCWlmIChyZXQgfHwgIW5vX2NoYWlucykgewogCQlkc19kYmcoMCwgImludmFsaWQgQ0lTIG9yIGludmFsaWQgcmVzb3VyY2VzXG4iKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQpAQCAtODUyLDcgKzg1MCw3IEBACiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMgPSBkZXYtPnNvY2tldDsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwotCWNoYXIgcGF0aFsyMF07CisJY2hhciBwYXRoW0ZJUk1XQVJFX05BTUVfTUFYXTsKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAlpbnQgbm9fZnVuY3M7CiAJaW50IG9sZF9mdW5jczsKQEAgLTg2NCw3ICs4NjIsNyBAQAogCiAJZHNfZGJnKDEsICJ0cnlpbmcgdG8gbG9hZCBDSVMgZmlsZSAlc1xuIiwgZmlsZW5hbWUpOwogCi0JaWYgKHN0cmxlbihmaWxlbmFtZSkgPiAxNCkgeworCWlmIChzdHJsZW4oZmlsZW5hbWUpID4gKEZJUk1XQVJFX05BTUVfTUFYIC0gMSkpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAicGNtY2lhOiBDSVMgZmlsZW5hbWUgaXMgdG9vIGxvbmcgWyVzXVxuIiwKIAkJCWZpbGVuYW1lKTsKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9lbGVjdHJhX2NmLmMgYi9kcml2ZXJzL3BjbWNpYS9lbGVjdHJhX2NmLmMKaW5kZXggMGE2Y2VhMS4uNTJkMGFhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvZWxlY3RyYV9jZi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2VsZWN0cmFfY2YuYwpAQCAtMzUyLDYgKzM1Miw3IEBACiAJfSwKIAl7fSwKIH07CitNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlbGVjdHJhX2NmX21hdGNoKTsKIAogc3RhdGljIHN0cnVjdCBvZl9wbGF0Zm9ybV9kcml2ZXIgZWxlY3RyYV9jZl9kcml2ZXIgPSB7CiAJLm5hbWUJICAgPSAoY2hhciAqKWRyaXZlcl9uYW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jIGIvZHJpdmVycy9wY21jaWEvaGQ2NDQ2NV9zcy5jCmluZGV4IGYyZTgxMGYuLmZiMmJjMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2hkNjQ0NjVfc3MuYworKysgYi9kcml2ZXJzL3BjbWNpYS9oZDY0NDY1X3NzLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogJElkOiBoZDY0NDY1X3NzLmMsdiAxLjcgMjAwMy8wNy8wNiAxNDo0Mjo1MCBsZXRoYWwgRXhwICQKLSAqCiAgKiBEZXZpY2UgZHJpdmVyIGZvciB0aGUgUENNQ0lBIGNvbnRyb2xsZXIgbW9kdWxlIG9mIHRoZQogICogSGl0YWNoaSBIRDY0NDY1IGhhbmRoZWxkIGNvbXBhbmlvbiBjaGlwLgogICoKQEAgLTQ4LDcgKzQ2LDYgQEAKICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAjZGVmaW5lIE1PRE5BTUUgImhkNjQ0NjVfc3MiCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTIuYyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCmluZGV4IGUxMzYxODYuLjQ2NTYxZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5Mi5jCkBAIC01LDggKzUsNiBAQAogICoKICAqIEF1dGhvcjogQXJqYW4gVmFuIERlIFZlbiA8YXJqYW52QHJlZGhhdC5jb20+CiAgKiBMb29zbHkgYmFzZWQgb24gaTgyMzY1LmMgZnJvbSB0aGUgcGNtY2lhLWNzIHBhY2thZ2UKLSAqCi0gKiAkSWQ6IGk4MjA5MmFhLmMsdiAxLjIgMjAwMS8xMC8yMyAxNDo0MzozNCBhcmphbnYgRXhwICQKICAqLwogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oIGIvZHJpdmVycy9wY21jaWEvaTgyMDkyYWEuaAppbmRleCBiMGQ0NTMzLi44ODM2ZDM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9pODIwOTJhYS5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL2k4MjA5MmFhLmgKQEAgLTMsOCArMyw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KIAotLyogJElkOiBpODIwOTJhYS5oLHYgMS4xLjEuMSAyMDAxLzA5LzE5IDE0OjUzOjE1IGR3bXcyIEV4cCAkICovCi0KIC8qIERlYnVnaW5nIGRlZmluZXMgKi8KICNpZmRlZiBOT1RSQUNFCiAjZGVmaW5lIGVudGVyKHgpICAgcHJpbnRrKCJFbnRlcjogJXMsICVzIGxpbmUgJWlcbiIseCxfX0ZJTEVfXyxfX0xJTkVfXykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL2k4MjM2NS5jIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKaW5kZXggMzJhMmFiMS4uNjhmNmIyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKKysrIGIvZHJpdmVycy9wY21jaWEvaTgyMzY1LmMKQEAgLTEyNjMsNyArMTI2Myw3IEBACiAKICAgICByZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwogICAgIGlmIChyZXQpCi0JcmV0dXJuIHJldDsKKwlnb3RvIGVycl9vdXQ7CiAKICAgICBpODIzNjVfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJpODIzNjUiLCAwKTsKICAgICBpZiAoaTgyMzY1X2RldmljZSkgewpAQCAtMTI3MywxMCArMTI3Myw4IEBACiAgICAgfSBlbHNlCiAJICAgIHJldCA9IC1FTk9NRU07CiAKLSAgICBpZiAocmV0KSB7Ci0JZHJpdmVyX3VucmVnaXN0ZXIoJmk4MjM2NV9kcml2ZXIpOwotCXJldHVybiByZXQ7Ci0gICAgfQorICAgIGlmIChyZXQpCisJZ290byBlcnJfZHJpdmVyX3VucmVnaXN0ZXI7CiAKICAgICBwcmludGsoS0VSTl9JTkZPICJJbnRlbCBJU0EgUENJQyBwcm9iZTogIik7CiAgICAgc29ja2V0cyA9IDA7CkBAIC0xMjg1LDE2ICsxMjgzLDE3IEBACiAKICAgICBpZiAoc29ja2V0cyA9PSAwKSB7CiAJcHJpbnRrKCJub3QgZm91bmQuXG4iKTsKLQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKLQlyZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOwotCWRyaXZlcl91bnJlZ2lzdGVyKCZpODIzNjVfZHJpdmVyKTsKLQlyZXR1cm4gLUVOT0RFVjsKKwlyZXQgPSAtRU5PREVWOworCWdvdG8gZXJyX2Rldl91bnJlZ2lzdGVyOwogICAgIH0KIAogICAgIC8qIFNldCB1cCBpbnRlcnJ1cHQgaGFuZGxlcihzKSAqLwogICAgIGlmIChncmFiX2lycSAhPSAwKQotCXJlcXVlc3RfaXJxKGNzX2lycSwgcGNpY19pbnRlcnJ1cHQsIDAsICJpODIzNjUiLCBwY2ljX2ludGVycnVwdCk7Ci0gICAgCisJcmV0ID0gcmVxdWVzdF9pcnEoY3NfaXJxLCBwY2ljX2ludGVycnVwdCwgMCwgImk4MjM2NSIsIHBjaWNfaW50ZXJydXB0KTsKKworICAgIGlmIChyZXQpCisJZ290byBlcnJfc29ja2V0X3JlbGVhc2U7CisKICAgICAvKiByZWdpc3RlciBzb2NrZXRzIHdpdGggdGhlIHBjbWNpYSBjb3JlICovCiAgICAgZm9yIChpID0gMDsgaSA8IHNvY2tldHM7IGkrKykgewogCSAgICBzb2NrZXRbaV0uc29ja2V0LmRldi5wYXJlbnQgPSAmaTgyMzY1X2RldmljZS0+ZGV2OwpAQCAtMTMyNCw3ICsxMzIzLDIzIEBACiAgICAgfQogICAgIAogICAgIHJldHVybiAwOwotICAgIAorZXJyX3NvY2tldF9yZWxlYXNlOgorICAgIGZvciAoaSA9IDA7IGkgPCBzb2NrZXRzOyBpKyspIHsKKwkvKiBUdXJuIG9mZiBhbGwgaW50ZXJydXB0IHNvdXJjZXMhICovCisJaTM2NV9zZXQoaSwgSTM2NV9DU0NJTlQsIDApOworCXJlbGVhc2VfcmVnaW9uKHNvY2tldFtpXS5pb2FkZHIsIDIpOworICAgIH0KK2Vycl9kZXZfdW5yZWdpc3RlcjoKKyAgICBwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihpODIzNjVfZGV2aWNlKTsKKyAgICByZWxlYXNlX3JlZ2lvbihpMzY1X2Jhc2UsIDIpOworI2lmZGVmIENPTkZJR19QTlAKKyAgICBpZiAoaTgyMzY1X3BucGRldikKKwlwbnBfZGlzYWJsZV9kZXYoaTgyMzY1X3BucGRldik7CisjZW5kaWYKK2Vycl9kcml2ZXJfdW5yZWdpc3RlcjoKKyAgICBkcml2ZXJfdW5yZWdpc3RlcigmaTgyMzY1X2RyaXZlcik7CitlcnJfb3V0OgorICAgIHJldHVybiByZXQ7CiB9IC8qIGluaXRfaTgyMzY1ICovCiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2k4MjM2NSh2b2lkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYyBiL2RyaXZlcnMvcGNtY2lhL204eHhfcGNtY2lhLmMKaW5kZXggYWM3MGQyYy4uMTNhNWZiZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvbTh4eF9wY21jaWEuYworKysgYi9kcml2ZXJzL3BjbWNpYS9tOHh4X3BjbWNpYS5jCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIG04eHhfcGNtY2lhLmMgLSBMaW51eCBQQ01DSUEgc29ja2V0IGRyaXZlciBmb3IgdGhlIG1wYzh4eCBzZXJpZXMuCiAgKgotICogKEMpIDE5OTktMjAwMCBNYWdudXMgRGFtbSA8ZGFtbUBiaXRzbWFydC5jb20+CisgKiAoQykgMTk5OS0yMDAwIE1hZ251cyBEYW1tIDxkYW1tQG9wZW5zb3VyY2Uuc2U+CiAgKiAoQykgMjAwMS0yMDAyIE1vbnRhdmlzdGEgU29mdHdhcmUsIEluYy4KICAqICAgICA8bWxvY2tlQG12aXN0YS5jb20+CiAgKgpAQCAtNjAsNyArNjAsNiBAQAogI2luY2x1ZGUgPGFzbS9vZl9kZXZpY2UuaD4KICNpbmNsdWRlIDxhc20vb2ZfcGxhdGZvcm0uaD4KIAotI2luY2x1ZGUgPHBjbWNpYS92ZXJzaW9uLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMgYi9kcml2ZXJzL3BjbWNpYS9vbWFwX2NmLmMKaW5kZXggNDYzMTRiNC4uNTY5Yjc0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvb21hcF9jZi5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL29tYXBfY2YuYwpAQCAtMzgsMTkgKzM4LDE5IEBACiAjZGVmaW5lCUNGX0JBU0UJMHhmZmZlMjgwMAogCiAvKiBzdGF0dXM7IHJlYWQgYWZ0ZXIgSVJRICovCi0jZGVmaW5lIENGX1NUQVRVU19SRUcJCV9fUkVHMTYoQ0ZfQkFTRSArIDB4MDApCisjZGVmaW5lIENGX1NUQVRVUwkJCShDRl9CQVNFICsgMHgwMCkKICMJZGVmaW5lCUNGX1NUQVRVU19CQURfUkVBRAkoMSA8PCAyKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0JBRF9XUklURQkoMSA8PCAxKQogIwlkZWZpbmUJQ0ZfU1RBVFVTX0NBUkRfREVURUNUCSgxIDw8IDApCiAKIC8qIHdoaWNoIGNoaXBzZWxlY3QgKENTMC4uQ1MzKSBpcyB1c2VkIGZvciBDRiAoYWN0aXZlIGxvdykgKi8KLSNkZWZpbmUgQ0ZfQ0ZHX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwMikKKyNkZWZpbmUgQ0ZfQ0ZHCQkJCShDRl9CQVNFICsgMHgwMikKIAogLyogY2FyZCByZXNldCAqLwotI2RlZmluZSBDRl9DT05UUk9MX1JFRwkJX19SRUcxNihDRl9CQVNFICsgMHgwNCkKKyNkZWZpbmUgQ0ZfQ09OVFJPTAkJCShDRl9CQVNFICsgMHgwNCkKICMJZGVmaW5lCUNGX0NPTlRST0xfUkVTRVQJKDEgPDwgMCkKIAotI2RlZmluZSBvbWFwX2NmX3ByZXNlbnQoKSAoIShDRl9TVEFUVVNfUkVHICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKKyNkZWZpbmUgb21hcF9jZl9wcmVzZW50KCkgKCEob21hcF9yZWFkdyhDRl9TVEFUVVMpICYgQ0ZfU1RBVFVTX0NBUkRfREVURUNUKSkKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTEzOSwxMSArMTM5LDExIEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWNvbnRyb2wgPSBDRl9DT05UUk9MX1JFRzsKKwljb250cm9sID0gb21hcF9yZWFkdyhDRl9DT05UUk9MKTsKIAlpZiAocy0+ZmxhZ3MgJiBTU19SRVNFVCkKLQkJQ0ZfQ09OVFJPTF9SRUcgPSBDRl9DT05UUk9MX1JFU0VUOworCQlvbWFwX3dyaXRldyhDRl9DT05UUk9MX1JFU0VULCBDRl9DT05UUk9MKTsKIAllbHNlCi0JCUNGX0NPTlRST0xfUkVHID0gMDsKKwkJb21hcF93cml0ZXcoMCwgQ0ZfQ09OVFJPTCk7CiAKIAlwcl9kZWJ1ZygiJXM6IFZjYyAlZCwgaW9faXJxICVkLCBmbGFncyAlMDR4IGNzYyAlMDR4XG4iLAogCQlkcml2ZXJfbmFtZSwgcy0+VmNjLCBzLT5pb19pcnEsIHMtPmZsYWdzLCBzLT5jc2NfbWFzayk7CkBAIC0yNzAsNyArMjcwLDcgQEAKIAlvbWFwX2NmZ19yZWcoVjEwXzE2MTBfQ0ZfSVJFUSk7CiAJb21hcF9jZmdfcmVnKFcxMF8xNjEwX0NGX1JFU0VUKTsKIAotCUNGX0NGR19SRUcgPSB+KDEgPDwgc2VnKTsKKwlvbWFwX3dyaXRldyh+KDEgPDwgc2VnKSwgQ0ZfQ0ZHKTsKIAogCXByX2luZm8oIiVzOiBjcyVkIG9uIGlycSAlZFxuIiwgZHJpdmVyX25hbWUsIHNlZywgaXJxKTsKIApAQCAtMjc5LDE0ICsyNzksMTUgQEAKIAkgKiBDRi9QQ01DSUEgdmFyaWFudHMuLi4KIAkgKi8KIAlwcl9kZWJ1ZygiJXM6IGNzJWQsIHByZXZpb3VzIGNjcyAlMDh4IGFjcyAlMDh4XG4iLCBkcml2ZXJfbmFtZSwKLQkJCXNlZywgRU1JRlNfQ0NTKHNlZyksIEVNSUZTX0FDUyhzZWcpKTsKLQlFTUlGU19DQ1Moc2VnKSA9IDB4MDAwNGExYjM7CS8qIHN5bmNoIG1vZGUgNCBldGMgKi8KLQlFTUlGU19BQ1Moc2VnKSA9IDB4MDAwMDAwMDA7CS8qIE9FIGhvbGQvc2V0dXAgKi8KKwkJc2VnLCBvbWFwX3JlYWRsKEVNSUZTX0NDUyhzZWcpKSwgb21hcF9yZWFkbChFTUlGU19BQ1Moc2VnKSkpOworCW9tYXBfd3JpdGVsKDB4MDAwNGExYjMsIEVNSUZTX0NDUyhzZWcpKTsJLyogc3luY2ggbW9kZSA0IGV0YyAqLworCW9tYXBfd3JpdGVsKDB4MDAwMDAwMDAsIEVNSUZTX0FDUyhzZWcpKTsJLyogT0UgaG9sZC9zZXR1cCAqLwogCiAJLyogQ0YgdXNlcyBhcm14b3JfY2ssIHdoaWNoIGlzICJhbHdheXMiIGF2YWlsYWJsZSAqLwogCiAJcHJfZGVidWcoIiVzOiBzdHMgJTA0eCBjZmcgJTA0eCBjb250cm9sICUwNHggJXNcbiIsIGRyaXZlcl9uYW1lLAotCQlDRl9TVEFUVVNfUkVHLCBDRl9DRkdfUkVHLCBDRl9DT05UUk9MX1JFRywKKwkJb21hcF9yZWFkdyhDRl9TVEFUVVMpLCBvbWFwX3JlYWR3KENGX0NGRyksCisJCW9tYXBfcmVhZHcoQ0ZfQ09OVFJPTCksCiAJCW9tYXBfY2ZfcHJlc2VudCgpID8gInByZXNlbnQiIDogIihub3QgcHJlc2VudCkiKTsKIAogCWNmLT5zb2NrZXQub3duZXIgPSBUSElTX01PRFVMRTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9pb2N0bC5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKaW5kZXggNWYxODZhYi4uNDE5Zjk3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX2lvY3RsLmMKQEAgLTI3LDEyICsyNywxMyBAQAogI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgorI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KICNpbmNsdWRlIDxwY21jaWEvc3MuaD4KIApAQCAtMTM4LDYgKzEzOSwxNTQgQEAKIH0KICNlbmRpZgogCisKKyNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCisKK3N0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKK3sKKwlpbnQgaXJxOworCXUzMiBtYXNrOworCisJaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROworCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKKwkJcmV0dXJuIENTX0JBRF9JUlE7CisKKwlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCisJCXJldHVybiAwOworCisJbWFzayA9IDEgPDwgaXJxOworCisJaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKKwkJcmV0dXJuIDA7CisKKwlzLT5pcnFfbWFzayAmPSB+bWFzazsKKworCXJldHVybiAwOworfQorCisjZWxzZQorCitzdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7CisJcmV0dXJuIENTX1NVQ0NFU1M7Cit9CisKKyNlbmRpZgorCitzdGF0aWMgaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKQoreworCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzOworCWludCByZXQgPSBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJZG93bl9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOworCWxpc3RfZm9yX2VhY2hfZW50cnkocywgJnBjbWNpYV9zb2NrZXRfbGlzdCwgc29ja2V0X2xpc3QpIHsKKworCQlpZiAoYWRqLT5SZXNvdXJjZSA9PSBSRVNfSVJRKQorCQkJcmV0ID0gYWRqdXN0X2lycShzLCBhZGopOworCisJCWVsc2UgaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX2lvKSB7CisJCQl1bnNpZ25lZCBsb25nIGJlZ2luLCBlbmQ7CisKKwkJCS8qIHlvdSBjYW4ndCB1c2UgdGhlIG9sZCBpbnRlcmZhY2UgaWYgdGhlIG5ldworCQkJICogb25lIHdhcyB1c2VkIGJlZm9yZSAqLworCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCWlmICgocy0+cmVzb3VyY2Vfc2V0dXBfbmV3KSAmJgorCQkJICAgICEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkgeworCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQljb250aW51ZTsKKwkJCX0gZWxzZSBpZiAoIShzLT5yZXNvdXJjZV9zZXR1cF9vbGQpKQorCQkJCXMtPnJlc291cmNlX3NldHVwX29sZCA9IDE7CisJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisKKwkJCXN3aXRjaCAoYWRqLT5SZXNvdXJjZSkgeworCQkJY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgorCQkJCWJlZ2luID0gYWRqLT5yZXNvdXJjZS5tZW1vcnkuQmFzZTsKKwkJCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7CisJCQkJaWYgKHMtPnJlc291cmNlX29wcy0+YWRkX21lbSkKKwkJCQkJcmV0ID1zLT5yZXNvdXJjZV9vcHMtPmFkZF9tZW0ocywgYWRqLT5BY3Rpb24sIGJlZ2luLCBlbmQpOworCQkJY2FzZSBSRVNfSU9fUkFOR0U6CisJCQkJYmVnaW4gPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0OworCQkJCWVuZCA9IGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQgKyBhZGotPnJlc291cmNlLmlvLk51bVBvcnRzIC0gMTsKKwkJCQlpZiAocy0+cmVzb3VyY2Vfb3BzLT5hZGRfaW8pCisJCQkJCXJldCA9IHMtPnJlc291cmNlX29wcy0+YWRkX2lvKHMsIGFkai0+QWN0aW9uLCBiZWdpbiwgZW5kKTsKKwkJCX0KKwkJCWlmICghcmV0KSB7CisJCQkJLyogYXMgdGhlcmUncyBubyB3YXkgd2Uga25vdyB0aGlzIGlzIHRoZQorCQkJCSAqIGxhc3QgY2FsbCB0byBhZGp1c3RfcmVzb3VyY2VfaW5mbywgd2UKKwkJCQkgKiBhbHdheXMgbmVlZCB0byBhc3N1bWUgdGhpcyBpcyB0aGUgbGF0ZXN0CisJCQkJICogb25lLi4uICovCisJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnMtPmxvY2ssIGZsYWdzKTsKKwkJCQlzLT5yZXNvdXJjZV9zZXR1cF9kb25lID0gMTsKKwkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CisJCQl9CisJCX0KKwl9CisJdXBfcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKKworCXJldHVybiAocmV0KTsKK30KKworLyoqIHBjY2FyZF9nZXRfc3RhdHVzCisgKgorICogR2V0IHRoZSBjdXJyZW50IHNvY2tldCBzdGF0ZSBiaXRzLiAgV2UgZG9uJ3Qgc3VwcG9ydCB0aGUgbGF0Y2hlZAorICogU29ja2V0U3RhdGUgeWV0OiBJIGhhdmVuJ3Qgc2VlbiBhbnkgcG9pbnQgZm9yIGl0LgorICovCisKK3N0YXRpYyBpbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsCisJCQkgICAgIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKKwkJCSAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKK3sKKwljb25maWdfdCAqYzsKKwlpbnQgdmFsOworCisJcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOworCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOworCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQorCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOworCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQorCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKKworCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7CisKKwlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKKwkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKKwkJdV9jaGFyIHJlZzsKKwkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7CisJCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJCX0gZWxzZSB7CisJCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KKwkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKKwkJfQorCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgeworCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7CisJCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOworCQl9CisJCXJldHVybiBDU19TVUNDRVNTOworCX0KKwlzdGF0dXMtPkNhcmRTdGF0ZSB8PQorCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7CisJc3RhdHVzLT5DYXJkU3RhdGUgfD0KKwkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOworCXN0YXR1cy0+Q2FyZFN0YXRlIHw9CisJCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOworCXJldHVybiBDU19TVUNDRVNTOworfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLworCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogICAgIFRoZXNlIG1hbmFnZSBhIHJpbmcgYnVmZmVyIG9mIGV2ZW50cyBwZW5kaW5nIGZvciBvbmUgdXNlciBwcm9jZXNzCkBAIC0zOTcsMjAgKzU0NiwyNyBAQAogICAgIHN0cnVjdCBwY21jaWFfc29ja2V0ICpzOwogICAgIHVzZXJfaW5mb190ICp1c2VyOwogICAgIHN0YXRpYyBpbnQgd2FybmluZ19wcmludGVkID0gMDsKKyAgICBpbnQgcmV0ID0gMDsKIAogICAgIGRzX2RiZygwLCAiZHNfb3Blbihzb2NrZXQgJWQpXG4iLCBpKTsKIAorICAgIGxvY2tfa2VybmVsKCk7CiAgICAgcyA9IHBjbWNpYV9nZXRfc29ja2V0X2J5X25yKGkpOwotICAgIGlmICghcykKLQkgICAgcmV0dXJuIC1FTk9ERVY7CisgICAgaWYgKCFzKSB7CisJICAgIHJldCA9IC1FTk9ERVY7CisJICAgIGdvdG8gb3V0OworICAgIH0KICAgICBzID0gcGNtY2lhX2dldF9zb2NrZXQocyk7Ci0gICAgaWYgKCFzKQotCSAgICByZXR1cm4gLUVOT0RFVjsKKyAgICBpZiAoIXMpIHsKKwkgICAgcmV0ID0gLUVOT0RFVjsKKwkgICAgZ290byBvdXQ7CisgICAgfQogCiAgICAgaWYgKChmaWxlLT5mX2ZsYWdzICYgT19BQ0NNT0RFKSAhPSBPX1JET05MWSkgewogCSAgICBpZiAocy0+cGNtY2lhX3N0YXRlLmJ1c3kpIHsKIAkJICAgIHBjbWNpYV9wdXRfc29ja2V0KHMpOwotCQkgICAgcmV0dXJuIC1FQlVTWTsKKwkJICAgIHJldCA9IC1FQlVTWTsKKwkJICAgIGdvdG8gb3V0OwogCSAgICB9CiAJZWxzZQogCSAgICBzLT5wY21jaWFfc3RhdGUuYnVzeSA9IDE7CkBAIC00MTksNyArNTc1LDggQEAKICAgICB1c2VyID0ga21hbGxvYyhzaXplb2YodXNlcl9pbmZvX3QpLCBHRlBfS0VSTkVMKTsKICAgICBpZiAoIXVzZXIpIHsKIAkgICAgcGNtY2lhX3B1dF9zb2NrZXQocyk7Ci0JICAgIHJldHVybiAtRU5PTUVNOworCSAgICByZXQgPSAtRU5PTUVNOworCSAgICBnb3RvIG91dDsKICAgICB9CiAgICAgdXNlci0+ZXZlbnRfdGFpbCA9IHVzZXItPmV2ZW50X2hlYWQgPSAwOwogICAgIHVzZXItPm5leHQgPSBzLT51c2VyOwpAQCAtNDQxLDcgKzU5OCw5IEBACiAKICAgICBpZiAocy0+cGNtY2lhX3N0YXRlLnByZXNlbnQpCiAJcXVldWVfZXZlbnQodXNlciwgQ1NfRVZFTlRfQ0FSRF9JTlNFUlRJT04pOwotICAgIHJldHVybiAwOworb3V0OgorICAgIHVubG9ja19rZXJuZWwoKTsKKyAgICByZXR1cm4gcmV0OwogfSAvKiBkc19vcGVuICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtNTQ2LDggKzcwNSw2IEBACiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwogCi1leHRlcm4gaW50IHBjbWNpYV9hZGp1c3RfcmVzb3VyY2VfaW5mbyhhZGp1c3RfdCAqYWRqKTsKLQogc3RhdGljIGludCBkc19pb2N0bChzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxlLAogCQkgICAgdV9pbnQgY21kLCB1X2xvbmcgYXJnKQogewpAQCAtNjQ5LDcgKzgwNiw3IEBACiAJbXV0ZXhfbG9jaygmcy0+c2t0X211dGV4KTsKIAlwY21jaWFfdmFsaWRhdGVfbWVtKHMpOwogCW11dGV4X3VubG9jaygmcy0+c2t0X211dGV4KTsKLQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvKTsKKwlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCAmYnVmLT5jaXNpbmZvLkNoYWlucyk7CiAJYnJlYWs7CiAgICAgY2FzZSBEU19TVVNQRU5EX0NBUkQ6CiAJcmV0ID0gcGNtY2lhX3N1c3BlbmRfY2FyZChzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3BjbWNpYV9yZXNvdXJjZS5jIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKaW5kZXggMWQxMjhmYi4uNDg4NGExOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcGNtY2lhX3Jlc291cmNlLmMKQEAgLTIxLDExICsyMSw5IEBACiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAKLSNkZWZpbmUgSU5fQ0FSRF9TRVJWSUNFUwogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgPHBjbWNpYS9jaXNyZWcuaD4KICNpbmNsdWRlIDxwY21jaWEvZHMuaD4KQEAgLTMxMSw3NCArMzA5LDYgQEAKIEVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF93aW5kb3cpOwogCiAKLS8qKiBwY2NhcmRfZ2V0X3N0YXR1cwotICoKLSAqIEdldCB0aGUgY3VycmVudCBzb2NrZXQgc3RhdGUgYml0cy4gIFdlIGRvbid0IHN1cHBvcnQgdGhlIGxhdGNoZWQKLSAqIFNvY2tldFN0YXRlIHlldDogSSBoYXZlbid0IHNlZW4gYW55IHBvaW50IGZvciBpdC4KLSAqLwotCi1pbnQgcGNjYXJkX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwKLQkJICAgICAgY3Nfc3RhdHVzX3QgKnN0YXR1cykKLXsKLQljb25maWdfdCAqYzsKLQlpbnQgdmFsOwotCi0Jcy0+b3BzLT5nZXRfc3RhdHVzKHMsICZ2YWwpOwotCXN0YXR1cy0+Q2FyZFN0YXRlID0gc3RhdHVzLT5Tb2NrZXRTdGF0ZSA9IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0RFVEVDVCkgPyBDU19FVkVOVF9DQVJEX0RFVEVDVCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX0NBUkRCVVMpID8gQ1NfRVZFTlRfQ0JfREVURUNUIDogMDsKLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSAodmFsICYgU1NfM1ZDQVJEKSA/IENTX0VWRU5UXzNWQ0FSRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0gKHZhbCAmIFNTX1hWQ0FSRCkgPyBDU19FVkVOVF9YVkNBUkQgOiAwOwotCWlmIChzLT5zdGF0ZSAmIFNPQ0tFVF9TVVNQRU5EKQotCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PSBDU19FVkVOVF9QTV9TVVNQRU5EOwotCWlmICghKHMtPnN0YXRlICYgU09DS0VUX1BSRVNFTlQpKQotCQlyZXR1cm4gQ1NfTk9fQ0FSRDsKLQotCWMgPSAocF9kZXYpID8gcF9kZXYtPmZ1bmN0aW9uX2NvbmZpZyA6IE5VTEw7Ci0KLQlpZiAoKGMgIT0gTlVMTCkgJiYgKGMtPnN0YXRlICYgQ09ORklHX0xPQ0tFRCkgJiYKLQkgICAgKGMtPkludFR5cGUgJiAoSU5UX01FTU9SWV9BTkRfSU8gfCBJTlRfWk9PTUVEX1ZJREVPKSkpIHsKLQkJdV9jaGFyIHJlZzsKLQkJaWYgKGMtPkNhcmRWYWx1ZXMgJiBQUkVTRU5UX1BJTl9SRVBMQUNFKSB7Ci0JCQlwY21jaWFfcmVhZF9jaXNfbWVtKHMsIDEsIChjLT5Db25maWdCYXNlK0NJU1JFR19QUlIpPj4xLCAxLCAmcmVnKTsKLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCQkJKHJlZyAmIFBSUl9XUF9TVEFUVVMpID8gQ1NfRVZFTlRfV1JJVEVfUFJPVEVDVCA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfUkVBRFlfU1RBVFVTKSA/IENTX0VWRU5UX1JFQURZX0NIQU5HRSA6IDA7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBQUlJfQlZEMl9TVEFUVVMpID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCQkJc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJCQkocmVnICYgUFJSX0JWRDFfU1RBVFVTKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBObyBQUlI/ICBUaGVuIGFzc3VtZSB3ZSdyZSBhbHdheXMgcmVhZHkgKi8KLQkJCXN0YXR1cy0+Q2FyZFN0YXRlIHw9IENTX0VWRU5UX1JFQURZX0NIQU5HRTsKLQkJfQotCQlpZiAoYy0+Q2FyZFZhbHVlcyAmIFBSRVNFTlRfRVhUX1NUQVRVUykgewotCQkJcGNtY2lhX3JlYWRfY2lzX21lbShzLCAxLCAoYy0+Q29uZmlnQmFzZStDSVNSRUdfRVNSKT4+MSwgMSwgJnJlZyk7Ci0JCQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkJCShyZWcgJiBFU1JfUkVRX0FUVE4pID8gQ1NfRVZFTlRfUkVRVUVTVF9BVFRFTlRJT04gOiAwOwotCQl9Ci0JCXJldHVybiBDU19TVUNDRVNTOwotCX0KLQlzdGF0dXMtPkNhcmRTdGF0ZSB8PQotCQkodmFsICYgU1NfV1JQUk9UKSA/IENTX0VWRU5UX1dSSVRFX1BST1RFQ1QgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19CQVRERUFEKSA/IENTX0VWRU5UX0JBVFRFUllfREVBRCA6IDA7Ci0Jc3RhdHVzLT5DYXJkU3RhdGUgfD0KLQkJKHZhbCAmIFNTX0JBVFdBUk4pID8gQ1NfRVZFTlRfQkFUVEVSWV9MT1cgOiAwOwotCXN0YXR1cy0+Q2FyZFN0YXRlIHw9Ci0JCSh2YWwgJiBTU19SRUFEWSkgPyBDU19FVkVOVF9SRUFEWV9DSEFOR0UgOiAwOwotCXJldHVybiBDU19TVUNDRVNTOwotfSAvKiBwY2NhcmRfZ2V0X3N0YXR1cyAqLwotCi1pbnQgcGNtY2lhX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjc19zdGF0dXNfdCAqc3RhdHVzKQotewotCXJldHVybiBwY2NhcmRfZ2V0X3N0YXR1cyhwX2Rldi0+c29ja2V0LCBwX2Rldiwgc3RhdHVzKTsKLX0KLUVYUE9SVF9TWU1CT0wocGNtY2lhX2dldF9zdGF0dXMpOwotCi0KLQogLyoqIHBjbWNpYV9nZXRfbWVtX3BhZ2UKICAqCiAgKiBDaGFuZ2UgdGhlIGNhcmQgYWRkcmVzcyBvZiBhbiBhbHJlYWR5IG9wZW4gbWVtb3J5IHdpbmRvdy4KQEAgLTgxMiw2ICs3NDIsMTUgQEAKIAkJdHlwZSA9IElSUUZfU0hBUkVEOwogCiAjaWZkZWYgQ09ORklHX1BDTUNJQV9QUk9CRQorCisjaWZkZWYgSVJRX05PQVVUT0VOCisJLyogaWYgdGhlIHVuZGVybHlpbmcgSVJRIGluZnJhc3RydWN0dXJlIGFsbG93cyBmb3IgaXQsIG9ubHkgYWxsb2NhdGUKKwkgKiB0aGUgSVJRLCBidXQgZG8gbm90IGVuYWJsZSBpdAorCSAqLworCWlmICghKHJlcS0+QXR0cmlidXRlcyAmIElSUV9IQU5ETEVfUFJFU0VOVCkpCisJCXR5cGUgfD0gSVJRX05PQVVUT0VOOworI2VuZGlmIC8qIElSUV9OT0FVVE9FTiAqLworCiAJaWYgKHMtPmlycS5Bc3NpZ25lZElSUSAhPSAwKSB7CiAJCS8qIElmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBhc3NpZ25lZCwgaXQgbXVzdCBiZSB0aGUgc2FtZSAqLwogCQlpcnEgPSBzLT5pcnEuQXNzaWduZWRJUlE7CkBAIC05NjYsNyArOTA1LDcgQEAKIAlwY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uKHBfZGV2KTsKIAlwY21jaWFfcmVsZWFzZV9pbyhwX2RldiwgJnBfZGV2LT5pbyk7CiAJcGNtY2lhX3JlbGVhc2VfaXJxKHBfZGV2LCAmcF9kZXYtPmlycSk7Ci0JaWYgKCZwX2Rldi0+d2luKQorCWlmIChwX2Rldi0+d2luKQogCQlwY21jaWFfcmVsZWFzZV93aW5kb3cocF9kZXYtPndpbik7CiB9CiBFWFBPUlRfU1lNQk9MKHBjbWNpYV9kaXNhYmxlX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2Jhc2UuYwppbmRleCA5NDE0MTYzLi5jY2ZkZjE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfYmFzZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9iYXNlLmMKQEAgLTMzLDcgKzMzLDYgQEAKIAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogCiAjaW5jbHVkZSAiY3NfaW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfY21feDI3MC5jCmluZGV4IGU3YWIwNjAuLmYxMjNmY2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9jbV94MjcwLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X2NtX3gyNzAuYwpAQCAtMTgsNiArMTgsNyBAQAogCiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KIAogI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LWdwaW8uaD4KQEAgLTEzMCw3ICsxMzEsNyBAQAogfQogCiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBjbXgyNzBfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gY214MjcwX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBjbXgyNzBfcGNtY2lhX3NodXRkb3duLApAQCAtMTQ3LDE1ICsxNDgsMjEgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX2FybWNvcmUoKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKIAljbXgyNzBfcGNtY2lhX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygicHhhMnh4LXBjbWNpYSIsIC0xKTsKIAogCWlmICghY214MjcwX3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JY214MjcwX3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJmNteDI3MF9wY21jaWFfb3BzOworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGRfZGF0YShjbXgyNzBfcGNtY2lhX2RldmljZSwgJmNteDI3MF9wY21jaWFfb3BzLAorCQkJCSAgICAgICBzaXplb2YoY214MjcwX3BjbWNpYV9vcHMpKTsKIAotCXByaW50ayhLRVJOX0lORk8gIlJlZ2lzdGVyaW5nIGNtLXgyNzAgUENNQ0lBIGludGVyZmFjZS5cbiIpOwotCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoY214MjcwX3BjbWNpYV9kZXZpY2UpOworCWlmIChyZXQgPT0gMCkgeworCQlwcmludGsoS0VSTl9JTkZPICJSZWdpc3RlcmluZyBjbS14MjcwIFBDTUNJQSBpbnRlcmZhY2UuXG4iKTsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChjbXgyNzBfcGNtY2lhX2RldmljZSk7CisJfQogCiAJaWYgKHJldCkKIAkJcGxhdGZvcm1fZGV2aWNlX3B1dChjbXgyNzBfcGNtY2lhX2RldmljZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfbWFpbnN0b25lLmMKaW5kZXggMTQ1Yjg1ZS4uOTJkMWNjMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvcHhhMnh4X21haW5zdG9uZS5jCisrKyBiL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9tYWluc3RvbmUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAKICNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgpAQCAtMTM2LDcgKzEzNyw3IEBACiB7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyA9IHsKK3N0YXRpYyBzdHJ1Y3QgcGNtY2lhX2xvd19sZXZlbCBtc3RfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQJCT0gbXN0X3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93bgkJPSBtc3RfcGNtY2lhX2h3X3NodXRkb3duLApAQCAtMTUzLDEzICsxNTQsMTcgQEAKIHsKIAlpbnQgcmV0OwogCisJaWYgKCFtYWNoaW5lX2lzX21haW5zdG9uZSgpKQorCQlyZXR1cm4gLUVOT0RFVjsKKwogCW1zdF9wY21jaWFfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJweGEyeHgtcGNtY2lhIiwgLTEpOwogCWlmICghbXN0X3BjbWNpYV9kZXZpY2UpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXN0X3BjbWNpYV9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhID0gJm1zdF9wY21jaWFfb3BzOwotCi0JcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKG1zdF9wY21jaWFfZGV2aWNlLCAmbXN0X3BjbWNpYV9vcHMsCisJCQkJICAgICAgIHNpemVvZihtc3RfcGNtY2lhX29wcykpOworCWlmIChyZXQgPT0gMCkKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChtc3RfcGNtY2lhX2RldmljZSk7CiAKIAlpZiAocmV0KQogCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KG1zdF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMgYi9kcml2ZXJzL3BjbWNpYS9weGEyeHhfc2hhcnBzbC5jCmluZGV4IGQ1YzMzYmQuLmQ3MWY5M2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3B4YTJ4eF9zaGFycHNsLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcHhhMnh4X3NoYXJwc2wuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAJc2hhcnBzbF9wY21jaWFfaW5pdF9yZXNldChza3QpOwogfQogCi1zdGF0aWMgc3RydWN0IHBjbWNpYV9sb3dfbGV2ZWwgc2hhcnBzbF9wY21jaWFfb3BzID0geworc3RhdGljIHN0cnVjdCBwY21jaWFfbG93X2xldmVsIHNoYXJwc2xfcGNtY2lhX29wcyBfX2luaXRkYXRhID0gewogCS5vd25lciAgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCiAJLmh3X2luaXQgICAgICAgICAgICAgICAgPSBzaGFycHNsX3BjbWNpYV9od19pbml0LAogCS5od19zaHV0ZG93biAgICAgICAgICAgID0gc2hhcnBzbF9wY21jaWFfaHdfc2h1dGRvd24sCkBAIC0yNjEsMTAgKzI2MSwxMiBAQAogCWlmICghc2hhcnBzbF9wY21jaWFfZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBsYXRmb3JtX2RhdGEgPSAmc2hhcnBzbF9wY21jaWFfb3BzOwotCXNoYXJwc2xfcGNtY2lhX2RldmljZS0+ZGV2LnBhcmVudCA9IHBsYXRmb3JtX3Njb29wX2NvbmZpZy0+ZGV2c1swXS5kZXY7Ci0KLQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkKHNoYXJwc2xfcGNtY2lhX2RldmljZSk7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHNoYXJwc2xfcGNtY2lhX2RldmljZSwKKwkJCSZzaGFycHNsX3BjbWNpYV9vcHMsIHNpemVvZihzaGFycHNsX3BjbWNpYV9vcHMpKTsKKwlpZiAocmV0ID09IDApIHsKKwkJc2hhcnBzbF9wY21jaWFfZGV2aWNlLT5kZXYucGFyZW50ID0gcGxhdGZvcm1fc2Nvb3BfY29uZmlnLT5kZXZzWzBdLmRldjsKKwkJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChzaGFycHNsX3BjbWNpYV9kZXZpY2UpOworCX0KIAogCWlmIChyZXQpCiAJCXBsYXRmb3JtX2RldmljZV9wdXQoc2hhcnBzbF9wY21jaWFfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX21nci5jCmluZGV4IGNlMjIyNjIuLmMwZTJhZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbWdyLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19tZ3IuYwpAQCAtMjEsODYgKzIxLDYgQEAKICNpbmNsdWRlICJjc19pbnRlcm5hbC5oIgogCiAKLSNpZmRlZiBDT05GSUdfUENNQ0lBX0lPQ1RMCi0KLSNpZmRlZiBDT05GSUdfUENNQ0lBX1BST0JFCi0KLXN0YXRpYyBpbnQgYWRqdXN0X2lycShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgYWRqdXN0X3QgKmFkaikKLXsKLQlpbnQgaXJxOwotCXUzMiBtYXNrOwotCi0JaXJxID0gYWRqLT5yZXNvdXJjZS5pcnEuSVJROwotCWlmICgoaXJxIDwgMCkgfHwgKGlycSA+IDE1KSkKLQkJcmV0dXJuIENTX0JBRF9JUlE7Ci0KLQlpZiAoYWRqLT5BY3Rpb24gIT0gUkVNT1ZFX01BTkFHRURfUkVTT1VSQ0UpCi0JCXJldHVybiAwOwotCi0JbWFzayA9IDEgPDwgaXJxOwotCi0JaWYgKCEocy0+aXJxX21hc2sgJiBtYXNrKSkKLQkJcmV0dXJuIDA7Ci0KLQlzLT5pcnFfbWFzayAmPSB+bWFzazsKLQotCXJldHVybiAwOwotfQotCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBhZGp1c3RfaXJxKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKSB7Ci0JcmV0dXJuIENTX1NVQ0NFU1M7Ci19Ci0KLSNlbmRpZgotCi0KLWludCBwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8oYWRqdXN0X3QgKmFkaikKLXsKLQlzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqczsKLQlpbnQgcmV0ID0gQ1NfVU5TVVBQT1JURURfRlVOQ1RJT047Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCWRvd25fcmVhZCgmcGNtY2lhX3NvY2tldF9saXN0X3J3c2VtKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHMsICZwY21jaWFfc29ja2V0X2xpc3QsIHNvY2tldF9saXN0KSB7Ci0KLQkJaWYgKGFkai0+UmVzb3VyY2UgPT0gUkVTX0lSUSkKLQkJCXJldCA9IGFkanVzdF9pcnEocywgYWRqKTsKLQotCQllbHNlIGlmIChzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZSkgewotCi0JCQkvKiB5b3UgY2FuJ3QgdXNlIHRoZSBvbGQgaW50ZXJmYWNlIGlmIHRoZSBuZXcKLQkJCSAqIG9uZSB3YXMgdXNlZCBiZWZvcmUgKi8KLQkJCXNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQlpZiAoKHMtPnJlc291cmNlX3NldHVwX25ldykgJiYKLQkJCSAgICAhKHMtPnJlc291cmNlX3NldHVwX29sZCkpIHsKLQkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7Ci0JCQkJY29udGludWU7Ci0JCQl9IGVsc2UgaWYgKCEocy0+cmVzb3VyY2Vfc2V0dXBfb2xkKSkKLQkJCQlzLT5yZXNvdXJjZV9zZXR1cF9vbGQgPSAxOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcy0+bG9jaywgZmxhZ3MpOwotCi0JCQlyZXQgPSBzLT5yZXNvdXJjZV9vcHMtPmFkanVzdF9yZXNvdXJjZShzLCBhZGopOwotCQkJaWYgKCFyZXQpIHsKLQkJCQkvKiBhcyB0aGVyZSdzIG5vIHdheSB3ZSBrbm93IHRoaXMgaXMgdGhlCi0JCQkJICogbGFzdCBjYWxsIHRvIGFkanVzdF9yZXNvdXJjZV9pbmZvLCB3ZQotCQkJCSAqIGFsd2F5cyBuZWVkIHRvIGFzc3VtZSB0aGlzIGlzIHRoZSBsYXRlc3QKLQkJCQkgKiBvbmUuLi4gKi8KLQkJCQlzcGluX2xvY2tfaXJxc2F2ZSgmcy0+bG9jaywgZmxhZ3MpOwotCQkJCXMtPnJlc291cmNlX3NldHVwX2RvbmUgPSAxOwotCQkJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKLQkJCX0KLQkJfQotCX0KLQl1cF9yZWFkKCZwY21jaWFfc29ja2V0X2xpc3RfcndzZW0pOwotCi0JcmV0dXJuIChyZXQpOwotfQotRVhQT1JUX1NZTUJPTChwY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8pOwotCi0jZW5kaWYKLQogaW50IHBjbWNpYV92YWxpZGF0ZV9tZW0oc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpCiB7CiAJaWYgKHMtPnJlc291cmNlX29wcy0+dmFsaWRhdGVfbWVtKQpAQCAtMTY0LDcgKzg0LDggQEAKIAkuYWRqdXN0X2lvX3JlZ2lvbiA9IE5VTEwsCiAJLmZpbmRfaW8gPSBOVUxMLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKQEAgLTI2NCw3ICsxODUsOCBAQAogCS5hZGp1c3RfaW9fcmVnaW9uID0gaW9keW5fYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IGlvZHluX2ZpbmRfaW9fcmVnaW9uLAogCS5maW5kX21lbSA9IE5VTEwsCi0JLmFkanVzdF9yZXNvdXJjZSA9IE5VTEwsCisJLmFkZF9pbyA9IE5VTEwsCisJLmFkZF9tZW0gPSBOVUxMLAogCS5pbml0ID0gc3RhdGljX2luaXQsCiAJLmV4aXQgPSBOVUxMLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMgYi9kcml2ZXJzL3BjbWNpYS9yc3JjX25vbnN0YXRpYy5jCmluZGV4IDBmY2Y3NjMuLmQwYzFkNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNtY2lhL3JzcmNfbm9uc3RhdGljLmMKKysrIGIvZHJpdmVycy9wY21jaWEvcnNyY19ub25zdGF0aWMuYwpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKQEAgLTI2MSwyMSArMjYwLDIyIEBACiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KIAogLyogVmFsaWRhdGlvbiBmdW5jdGlvbiBmb3IgY2FyZHMgd2l0aCBhIHZhbGlkIENJUyAqLwotc3RhdGljIGludCByZWFkYWJsZShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywgc3RydWN0IHJlc291cmNlICpyZXMsIGNpc2luZm9fdCAqaW5mbykKK3N0YXRpYyBpbnQgcmVhZGFibGUoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHN0cnVjdCByZXNvdXJjZSAqcmVzLAorCQkgICAgdW5zaWduZWQgaW50ICpjb3VudCkKIHsKIAlpbnQgcmV0ID0gLTE7CiAKIAlzLT5jaXNfbWVtLnJlcyA9IHJlczsKIAlzLT5jaXNfdmlydCA9IGlvcmVtYXAocmVzLT5zdGFydCwgcy0+bWFwX3NpemUpOwogCWlmIChzLT5jaXNfdmlydCkgewotCQlyZXQgPSBwY2NhcmRfdmFsaWRhdGVfY2lzKHMsIEJJTkRfRk5fQUxMLCBpbmZvKTsKKwkJcmV0ID0gcGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgY291bnQpOwogCQkvKiBpbnZhbGlkYXRlIG1hcHBpbmcgYW5kIENJUyBjYWNoZSAqLwogCQlpb3VubWFwKHMtPmNpc192aXJ0KTsKIAkJcy0+Y2lzX3ZpcnQgPSBOVUxMOwogCQlkZXN0cm95X2Npc19jYWNoZShzKTsKIAl9CiAJcy0+Y2lzX21lbS5yZXMgPSBOVUxMOwotCWlmICgocmV0ICE9IDApIHx8IChpbmZvLT5DaGFpbnMgPT0gMCkpCisJaWYgKChyZXQgIT0gMCkgfHwgKGNvdW50ID09IDApKQogCQlyZXR1cm4gMDsKIAlyZXR1cm4gMTsKIH0KQEAgLTMxNiw3ICszMTYsNyBAQAogY2lzX3JlYWRhYmxlKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKIHsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnJlczEsICpyZXMyOwotCWNpc2luZm9fdCBpbmZvMSwgaW5mbzI7CisJdW5zaWduZWQgaW50IGluZm8xLCBpbmZvMjsKIAlpbnQgcmV0ID0gMDsKIAogCXJlczEgPSBjbGFpbV9yZWdpb24ocywgYmFzZSwgc2l6ZS8yLCBJT1JFU09VUkNFX01FTSwgImNzIG1lbW9yeSBwcm9iZSIpOwpAQCAtMzMwLDcgKzMzMCw3IEBACiAJZnJlZV9yZWdpb24ocmVzMik7CiAJZnJlZV9yZWdpb24ocmVzMSk7CiAKLQlyZXR1cm4gKHJldCA9PSAyKSAmJiAoaW5mbzEuQ2hhaW5zID09IGluZm8yLkNoYWlucyk7CisJcmV0dXJuIChyZXQgPT0gMikgJiYgKGluZm8xID09IGluZm8yKTsKIH0KIAogc3RhdGljIGludApAQCAtNzY2LDIxICs3NjYsNiBAQAogfQogCiAKLXN0YXRpYyBpbnQgbm9uc3RhdGljX2FkanVzdF9yZXNvdXJjZV9pbmZvKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCBhZGp1c3RfdCAqYWRqKQotewotCXVuc2lnbmVkIGxvbmcgZW5kOwotCi0Jc3dpdGNoIChhZGotPlJlc291cmNlKSB7Ci0JY2FzZSBSRVNfTUVNT1JZX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlICsgYWRqLT5yZXNvdXJjZS5tZW1vcnkuU2l6ZSAtIDE7Ci0JCXJldHVybiBhZGp1c3RfbWVtb3J5KHMsIGFkai0+QWN0aW9uLCBhZGotPnJlc291cmNlLm1lbW9yeS5CYXNlLCBlbmQpOwotCWNhc2UgUkVTX0lPX1JBTkdFOgotCQllbmQgPSBhZGotPnJlc291cmNlLmlvLkJhc2VQb3J0ICsgYWRqLT5yZXNvdXJjZS5pby5OdW1Qb3J0cyAtIDE7Ci0JCXJldHVybiBhZGp1c3RfaW8ocywgYWRqLT5BY3Rpb24sIGFkai0+cmVzb3VyY2UuaW8uQmFzZVBvcnQsIGVuZCk7Ci0JfQotCXJldHVybiBDU19VTlNVUFBPUlRFRF9GVU5DVElPTjsKLX0KLQogI2lmZGVmIENPTkZJR19QQ0kKIHN0YXRpYyBpbnQgbm9uc3RhdGljX2F1dG9hZGRfcmVzb3VyY2VzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKQogewpAQCAtODg5LDcgKzg3NCw4IEBACiAJLmFkanVzdF9pb19yZWdpb24gPSBub25zdGF0aWNfYWRqdXN0X2lvX3JlZ2lvbiwKIAkuZmluZF9pbyA9IG5vbnN0YXRpY19maW5kX2lvX3JlZ2lvbiwKIAkuZmluZF9tZW0gPSBub25zdGF0aWNfZmluZF9tZW1fcmVnaW9uLAotCS5hZGp1c3RfcmVzb3VyY2UgPSBub25zdGF0aWNfYWRqdXN0X3Jlc291cmNlX2luZm8sCisJLmFkZF9pbyA9IGFkanVzdF9pbywKKwkuYWRkX21lbSA9IGFkanVzdF9tZW1vcnksCiAJLmluaXQgPSBub25zdGF0aWNfaW5pdCwKIAkuZXhpdCA9IG5vbnN0YXRpY19yZWxlYXNlX3Jlc291cmNlX2RiLAogfTsKQEAgLTEwMDgsNDEgKzk5NCwzNCBAQAogfQogc3RhdGljIERFVklDRV9BVFRSKGF2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLCAwNjAwLCBzaG93X21lbV9kYiwgc3RvcmVfbWVtX2RiKTsKIAotc3RhdGljIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICpwY2NhcmRfcnNyY19hdHRyaWJ1dGVzW10gPSB7Ci0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfaW8sCi0JJmRldl9hdHRyX2F2YWlsYWJsZV9yZXNvdXJjZXNfbWVtLAorc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnBjY2FyZF9yc3JjX2F0dHJpYnV0ZXNbXSA9IHsKKwkmZGV2X2F0dHJfYXZhaWxhYmxlX3Jlc291cmNlc19pby5hdHRyLAorCSZkZXZfYXR0cl9hdmFpbGFibGVfcmVzb3VyY2VzX21lbS5hdHRyLAogCU5VTEwsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCByc3JjX2F0dHJpYnV0ZXMgPSB7CisJLmF0dHJzID0gcGNjYXJkX3JzcmNfYXR0cmlidXRlcywKK307CisKIHN0YXRpYyBpbnQgX19kZXZpbml0IHBjY2FyZF9zeXNmc19hZGRfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgIHN0cnVjdCBjbGFzc19pbnRlcmZhY2UgKmNsYXNzX2ludGYpCiB7CiAJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKLQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqKmF0dHI7Ci0JaW50IHJldCA9IDA7CisKIAlpZiAocy0+cmVzb3VyY2Vfb3BzICE9ICZwY2NhcmRfbm9uc3RhdGljX29wcykKIAkJcmV0dXJuIDA7Ci0KLQlmb3IgKGF0dHIgPSBwY2NhcmRfcnNyY19hdHRyaWJ1dGVzOyAqYXR0cjsgYXR0cisrKSB7Ci0JCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICphdHRyKTsKLQkJaWYgKHJldCkKLQkJCWJyZWFrOwotCX0KLQotCXJldHVybiByZXQ7CisJcmV0dXJuIHN5c2ZzX2NyZWF0ZV9ncm91cCgmZGV2LT5rb2JqLCAmcnNyY19hdHRyaWJ1dGVzKTsKIH0KIAogc3RhdGljIHZvaWQgX19kZXZleGl0IHBjY2FyZF9zeXNmc19yZW1vdmVfcnNyYyhzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgICBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlICpjbGFzc19pbnRmKQogewogCXN0cnVjdCBwY21jaWFfc29ja2V0ICpzID0gZGV2X2dldF9kcnZkYXRhKGRldik7Ci0Jc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKiphdHRyOwogCiAJaWYgKHMtPnJlc291cmNlX29wcyAhPSAmcGNjYXJkX25vbnN0YXRpY19vcHMpCiAJCXJldHVybjsKLQotCWZvciAoYXR0ciA9IHBjY2FyZF9yc3JjX2F0dHJpYnV0ZXM7ICphdHRyOyBhdHRyKyspCi0JCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICphdHRyKTsKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJmRldi0+a29iaiwgJnJzcmNfYXR0cmlidXRlcyk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgY2xhc3NfaW50ZXJmYWNlIHBjY2FyZF9yc3JjX2ludGVyZmFjZSBfX3JlZmRhdGEgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmggYi9kcml2ZXJzL3BjbWNpYS9zb2NfY29tbW9uLmgKaW5kZXggMWVkYzFkYS4uOTFlZjZhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29jX2NvbW1vbi5oCisrKyBiL2RyaXZlcnMvcGNtY2lhL3NvY19jb21tb24uaApAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgPHBjbWNpYS9jc190eXBlcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9jcy5oPgogI2luY2x1ZGUgPHBjbWNpYS9zcy5oPgotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3RwbC5oPgogI2luY2x1ZGUgImNzX2ludGVybmFsLmgiCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3NvY2tldF9zeXNmcy5jIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKaW5kZXggNTYyMzg0ZC4uMDA2YTI5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKKysrIGIvZHJpdmVycy9wY21jaWEvc29ja2V0X3N5c2ZzLmMKQEAgLTI3LDExICsyNyw5IEBACiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KIAotI2RlZmluZSBJTl9DQVJEX1NFUlZJQ0VTCiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL3NzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzLmg+Ci0jaW5jbHVkZSA8cGNtY2lhL2J1bGttZW0uaD4KICNpbmNsdWRlIDxwY21jaWEvY2lzdHBsLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2Npc3JlZy5oPgogI2luY2x1ZGUgPHBjbWNpYS9kcy5oPgpAQCAtMjkzLDcgKzI5MSw3IEBACiAJCWNvdW50ID0gMDsKIAllbHNlIHsKIAkJc3RydWN0IHBjbWNpYV9zb2NrZXQgKnM7Ci0JCWNpc2luZm9fdCBjaXNpbmZvOworCQl1bnNpZ25lZCBpbnQgY2hhaW5zOwogCiAJCWlmIChvZmYgKyBjb3VudCA+IHNpemUpCiAJCQljb3VudCA9IHNpemUgLSBvZmY7CkBAIC0zMDIsOSArMzAwLDkgQEAKIAogCQlpZiAoIShzLT5zdGF0ZSAmIFNPQ0tFVF9QUkVTRU5UKSkKIAkJCXJldHVybiAtRU5PREVWOwotCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNpc2luZm8pKQorCQlpZiAocGNjYXJkX3ZhbGlkYXRlX2NpcyhzLCBCSU5EX0ZOX0FMTCwgJmNoYWlucykpCiAJCQlyZXR1cm4gLUVJTzsKLQkJaWYgKCFjaXNpbmZvLkNoYWlucykKKwkJaWYgKCFjaGFpbnMpCiAJCQlyZXR1cm4gLUVOT0RBVEE7CiAKIAkJY291bnQgPSBwY2NhcmRfZXh0cmFjdF9jaXMocywgYnVmLCBvZmYsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNtY2lhL3RpMTEzeC5oIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKaW5kZXggZDI5NjU3Yi4uMTI5ZGI3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKKysrIGIvZHJpdmVycy9wY21jaWEvdGkxMTN4LmgKQEAgLTE1NSw3ICsxNTUsNyBAQAogI2RlZmluZSBFTkVfVEVTVF9DOV9UTFRFTkFCTEUJCTB4MDIKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjAJCTB4MDQKICNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEJCTB4MDgKLSNkZWZpbmUgRU5FX1RFU1RfQzlfUEZFTkFCTEUJCShFTkVfVEVTVF9DOV9QRkVOQUJMRV9GMCB8IEVORV9URVNUX0M5X1BGRU5BQkxFX0YwKQorI2RlZmluZSBFTkVfVEVTVF9DOV9QRkVOQUJMRQkJKEVORV9URVNUX0M5X1BGRU5BQkxFX0YwIHwgRU5FX1RFU1RfQzlfUEZFTkFCTEVfRjEpCiAjZGVmaW5lIEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAJMHg0MAogI2RlZmluZSBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxCTB4ODAKICNkZWZpbmUgRU5FX1RFU1RfQzlfV1BESVNBTEJMRQkJKEVORV9URVNUX0M5X1dQRElTQUxCTEVfRjAgfCBFTkVfVEVTVF9DOV9XUERJU0FMQkxFX0YxKQpAQCAtNjkyLDcgKzY5Miw3IEBACiAJCWdvdG8gb3V0OwogCiAJLyogY2hlY2sgc3RhdGUgKi8KLQl5ZW50YV9nZXRfc3RhdHVzKCZzb2NrZXQtPnNvY2tldCwgJnN0YXRlKTsKKwl5ZW50YV9nZXRfc3RhdHVzKCZzbG90Mi0+c29ja2V0LCAmc3RhdGUpOwogCWlmIChzdGF0ZSAmIFNTX0RFVEVDVCkgewogCQlyZXQgPSAwOwogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG5wL3BucGFjcGkvcnNwYXJzZXIuYyBiL2RyaXZlcnMvcG5wL3BucGFjcGkvcnNwYXJzZXIuYwppbmRleCAwMjAxYzhhLi40NmM3OTFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BucC9wbnBhY3BpL3JzcGFyc2VyLmMKKysrIGIvZHJpdmVycy9wbnAvcG5wYWNwaS9yc3BhcnNlci5jCkBAIC01MCwxNSArNTAsMTcgQEAKIAkJCWZsYWdzID0gSU9SRVNPVVJDRV9JUlFfSElHSEVER0U7CiAJfQogCi0JaWYgKHNoYXJlYWJsZSkKKwlpZiAoc2hhcmVhYmxlID09IEFDUElfU0hBUkVEKQogCQlmbGFncyB8PSBJT1JFU09VUkNFX0lSUV9TSEFSRUFCTEU7CiAKIAlyZXR1cm4gZmxhZ3M7CiB9CiAKLXN0YXRpYyB2b2lkIGRlY29kZV9pcnFfZmxhZ3MoaW50IGZsYWcsIGludCAqdHJpZ2dlcmluZywgaW50ICpwb2xhcml0eSkKK3N0YXRpYyB2b2lkIGRlY29kZV9pcnFfZmxhZ3Moc3RydWN0IHBucF9kZXYgKmRldiwgaW50IGZsYWdzLCBpbnQgKnRyaWdnZXJpbmcsCisJCQkgICAgIGludCAqcG9sYXJpdHksIGludCAqc2hhcmVhYmxlKQogewotCXN3aXRjaCAoZmxhZykgeworCXN3aXRjaCAoZmxhZ3MgJiAoSU9SRVNPVVJDRV9JUlFfTE9XTEVWRUwgfCBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwgfAorCQkJIElPUkVTT1VSQ0VfSVJRX0xPV0VER0UgIHwgSU9SRVNPVVJDRV9JUlFfSElHSEVER0UpKSB7CiAJY2FzZSBJT1JFU09VUkNFX0lSUV9MT1dMRVZFTDoKIAkJKnRyaWdnZXJpbmcgPSBBQ1BJX0xFVkVMX1NFTlNJVElWRTsKIAkJKnBvbGFyaXR5ID0gQUNQSV9BQ1RJVkVfTE9XOwpAQCAtNzUsNyArNzcsMTggQEAKIAkJKnRyaWdnZXJpbmcgPSBBQ1BJX0VER0VfU0VOU0lUSVZFOwogCQkqcG9sYXJpdHkgPSBBQ1BJX0FDVElWRV9ISUdIOwogCQlicmVhazsKKwlkZWZhdWx0OgorCQlkZXZfZXJyKCZkZXYtPmRldiwgImNhbid0IGVuY29kZSBpbnZhbGlkIElSUSBtb2RlICUjeFxuIiwKKwkJCWZsYWdzKTsKKwkJKnRyaWdnZXJpbmcgPSBBQ1BJX0VER0VfU0VOU0lUSVZFOworCQkqcG9sYXJpdHkgPSBBQ1BJX0FDVElWRV9ISUdIOworCQlicmVhazsKIAl9CisKKwlpZiAoZmxhZ3MgJiBJT1JFU09VUkNFX0lSUV9TSEFSRUFCTEUpCisJCSpzaGFyZWFibGUgPSBBQ1BJX1NIQVJFRDsKKwllbHNlCisJCSpzaGFyZWFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKIH0KIAogc3RhdGljIHZvaWQgcG5wYWNwaV9wYXJzZV9hbGxvY2F0ZWRfaXJxcmVzb3VyY2Uoc3RydWN0IHBucF9kZXYgKmRldiwKQEAgLTc0Miw2ICs3NTUsOSBAQAogCWlmIChwbnBhY3BpX3N1cHBvcnRlZF9yZXNvdXJjZShyZXMpKSB7CiAJCSgqcmVzb3VyY2UpLT50eXBlID0gcmVzLT50eXBlOwogCQkoKnJlc291cmNlKS0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBhY3BpX3Jlc291cmNlKTsKKwkJaWYgKHJlcy0+dHlwZSA9PSBBQ1BJX1JFU09VUkNFX1RZUEVfSVJRKQorCQkJKCpyZXNvdXJjZSktPmRhdGEuaXJxLmRlc2NyaXB0b3JfbGVuZ3RoID0KKwkJCQkJcmVzLT5kYXRhLmlycS5kZXNjcmlwdG9yX2xlbmd0aDsKIAkJKCpyZXNvdXJjZSkrKzsKIAl9CiAKQEAgLTc4OCwyMiArODA0LDIxIEBACiAJCQkgICAgICAgc3RydWN0IHJlc291cmNlICpwKQogewogCXN0cnVjdCBhY3BpX3Jlc291cmNlX2lycSAqaXJxID0gJnJlc291cmNlLT5kYXRhLmlycTsKLQlpbnQgdHJpZ2dlcmluZywgcG9sYXJpdHk7CisJaW50IHRyaWdnZXJpbmcsIHBvbGFyaXR5LCBzaGFyZWFibGU7CiAKLQlkZWNvZGVfaXJxX2ZsYWdzKHAtPmZsYWdzICYgSU9SRVNPVVJDRV9CSVRTLCAmdHJpZ2dlcmluZywgJnBvbGFyaXR5KTsKKwlkZWNvZGVfaXJxX2ZsYWdzKGRldiwgcC0+ZmxhZ3MsICZ0cmlnZ2VyaW5nLCAmcG9sYXJpdHksICZzaGFyZWFibGUpOwogCWlycS0+dHJpZ2dlcmluZyA9IHRyaWdnZXJpbmc7CiAJaXJxLT5wb2xhcml0eSA9IHBvbGFyaXR5OwotCWlmICh0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUpCi0JCWlycS0+c2hhcmFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKLQllbHNlCi0JCWlycS0+c2hhcmFibGUgPSBBQ1BJX1NIQVJFRDsKKwlpcnEtPnNoYXJhYmxlID0gc2hhcmVhYmxlOwogCWlycS0+aW50ZXJydXB0X2NvdW50ID0gMTsKIAlpcnEtPmludGVycnVwdHNbMF0gPSBwLT5zdGFydDsKIAotCWRldl9kYmcoJmRldi0+ZGV2LCAiICBlbmNvZGUgaXJxICVkICVzICVzICVzXG4iLCAoaW50KSBwLT5zdGFydCwKKwlkZXZfZGJnKCZkZXYtPmRldiwgIiAgZW5jb2RlIGlycSAlZCAlcyAlcyAlcyAoJWQtYnl0ZSBkZXNjcmlwdG9yKVxuIiwKKwkJKGludCkgcC0+c3RhcnQsCiAJCXRyaWdnZXJpbmcgPT0gQUNQSV9MRVZFTF9TRU5TSVRJVkUgPyAibGV2ZWwiIDogImVkZ2UiLAogCQlwb2xhcml0eSA9PSBBQ1BJX0FDVElWRV9MT1cgPyAibG93IiA6ICJoaWdoIiwKLQkJaXJxLT5zaGFyYWJsZSA9PSBBQ1BJX1NIQVJFRCA/ICJzaGFyZWQiIDogImV4Y2x1c2l2ZSIpOworCQlpcnEtPnNoYXJhYmxlID09IEFDUElfU0hBUkVEID8gInNoYXJlZCIgOiAiZXhjbHVzaXZlIiwKKwkJaXJxLT5kZXNjcmlwdG9yX2xlbmd0aCk7CiB9CiAKIHN0YXRpYyB2b2lkIHBucGFjcGlfZW5jb2RlX2V4dF9pcnEoc3RydWN0IHBucF9kZXYgKmRldiwKQEAgLTgxMSwxNiArODI2LDEzIEBACiAJCQkJICAgc3RydWN0IHJlc291cmNlICpwKQogewogCXN0cnVjdCBhY3BpX3Jlc291cmNlX2V4dGVuZGVkX2lycSAqZXh0ZW5kZWRfaXJxID0gJnJlc291cmNlLT5kYXRhLmV4dGVuZGVkX2lycTsKLQlpbnQgdHJpZ2dlcmluZywgcG9sYXJpdHk7CisJaW50IHRyaWdnZXJpbmcsIHBvbGFyaXR5LCBzaGFyZWFibGU7CiAKLQlkZWNvZGVfaXJxX2ZsYWdzKHAtPmZsYWdzICYgSU9SRVNPVVJDRV9CSVRTLCAmdHJpZ2dlcmluZywgJnBvbGFyaXR5KTsKKwlkZWNvZGVfaXJxX2ZsYWdzKGRldiwgcC0+ZmxhZ3MsICZ0cmlnZ2VyaW5nLCAmcG9sYXJpdHksICZzaGFyZWFibGUpOwogCWV4dGVuZGVkX2lycS0+cHJvZHVjZXJfY29uc3VtZXIgPSBBQ1BJX0NPTlNVTUVSOwogCWV4dGVuZGVkX2lycS0+dHJpZ2dlcmluZyA9IHRyaWdnZXJpbmc7CiAJZXh0ZW5kZWRfaXJxLT5wb2xhcml0eSA9IHBvbGFyaXR5OwotCWlmICh0cmlnZ2VyaW5nID09IEFDUElfRURHRV9TRU5TSVRJVkUpCi0JCWV4dGVuZGVkX2lycS0+c2hhcmFibGUgPSBBQ1BJX0VYQ0xVU0lWRTsKLQllbHNlCi0JCWV4dGVuZGVkX2lycS0+c2hhcmFibGUgPSBBQ1BJX1NIQVJFRDsKKwlleHRlbmRlZF9pcnEtPnNoYXJhYmxlID0gc2hhcmVhYmxlOwogCWV4dGVuZGVkX2lycS0+aW50ZXJydXB0X2NvdW50ID0gMTsKIAlleHRlbmRlZF9pcnEtPmludGVycnVwdHNbMF0gPSBwLT5zdGFydDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbnAvcXVpcmtzLmMgYi9kcml2ZXJzL3BucC9xdWlya3MuYwppbmRleCBlMmI3ZGU0Li4xZmYzYmI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BucC9xdWlya3MuYworKysgYi9kcml2ZXJzL3BucC9xdWlya3MuYwpAQCAtMjg2LDcgKzI4Niw3IEBACiAJCQkJCXBjaV9uYW1lKHBkZXYpLCBpLAogCQkJCQkodW5zaWduZWQgbG9uZyBsb25nKSBwY2lfc3RhcnQsCiAJCQkJCSh1bnNpZ25lZCBsb25nIGxvbmcpIHBjaV9lbmQpOwotCQkJCXJlcy0+ZmxhZ3MgPSAwOworCQkJCXJlcy0+ZmxhZ3MgfD0gSU9SRVNPVVJDRV9ESVNBQkxFRDsKIAkJCX0KIAkJfQogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcG5wL3N5c3RlbS5jIGIvZHJpdmVycy9wbnAvc3lzdGVtLmMKaW5kZXggOWMyNDk2ZC4uY2Y0ZTA3YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbnAvc3lzdGVtLmMKKysrIGIvZHJpdmVycy9wbnAvc3lzdGVtLmMKQEAgLTgxLDcgKzgxLDcgQEAKIAl9CiAKIAlmb3IgKGkgPSAwOyAocmVzID0gcG5wX2dldF9yZXNvdXJjZShkZXYsIElPUkVTT1VSQ0VfTUVNLCBpKSk7IGkrKykgewotCQlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfVU5TRVQpCisJCWlmIChyZXMtPmZsYWdzICYgKElPUkVTT1VSQ0VfVU5TRVQgfCBJT1JFU09VUkNFX0RJU0FCTEVEKSkKIAkJCWNvbnRpbnVlOwogCiAJCXJlc2VydmVfcmFuZ2UoZGV2LCByZXMtPnN0YXJ0LCByZXMtPmVuZCwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bvd2VyL3Bvd2VyX3N1cHBseV9zeXNmcy5jIGIvZHJpdmVycy9wb3dlci9wb3dlcl9zdXBwbHlfc3lzZnMuYwppbmRleCBjNDQ0ZDZiLi40OTIxNWRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bvd2VyL3Bvd2VyX3N1cHBseV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvcG93ZXIvcG93ZXJfc3VwcGx5X3N5c2ZzLmMKQEAgLTIwMSw3ICsyMDEsNyBAQAogCiAJZGV2X2RiZyhkZXYsICJ1ZXZlbnRcbiIpOwogCi0JaWYgKCFwc3kpIHsKKwlpZiAoIXBzeSB8fCAhcHN5LT5kZXYpIHsKIAkJZGV2X2RiZyhkZXYsICJObyBwb3dlciBzdXBwbHkgeWV0XG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3JhcGlkaW8vcmlvLWRyaXZlci5jIGIvZHJpdmVycy9yYXBpZGlvL3Jpby1kcml2ZXIuYwppbmRleCAzY2U5ZjNkLi45NTZkM2U3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3JhcGlkaW8vcmlvLWRyaXZlci5jCisrKyBiL2RyaXZlcnMvcmFwaWRpby9yaW8tZHJpdmVyLmMKQEAgLTEwMSw4ICsxMDEsOCBAQAogCQlpZiAoZXJyb3IgPj0gMCkgewogCQkJcmRldi0+ZHJpdmVyID0gcmRydjsKIAkJCWVycm9yID0gMDsKKwkJfSBlbHNlCiAJCQlyaW9fZGV2X3B1dChyZGV2KTsKLQkJfQogCX0KIAlyZXR1cm4gZXJyb3I7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9LY29uZmlnIGIvZHJpdmVycy9ydGMvS2NvbmZpZwppbmRleCA2Y2MyYzAzLi5mYzg1YmYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9LY29uZmlnCisrKyBiL2RyaXZlcnMvcnRjL0tjb25maWcKQEAgLTI1Niw2ICsyNTYsMTcgQEAKIAkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiBJZiBzbyB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBydGMtczM1MzkwYS4KIAorY29uZmlnIFJUQ19EUlZfRk0zMTMwCisJdHJpc3RhdGUgIlJhbXRyb24gRk0zMTMwIgorCWhlbHAKKwkgIElmIHlvdSBzYXkgWSBoZXJlIHlvdSB3aWxsIGdldCBzdXBwb3J0IGZvciB0aGUKKwkgIFJhbXRyb24gRk0zMTMwIFJUQyBjaGlwcy4KKwkgIFJhbXRyb24gRk0zMTMwIGlzIGEgY2hpcCB3aXRoIHR3byBzZXBhcmF0ZSBkZXZpY2VzIGluc2lkZSwKKwkgIFJUQyBjbG9jayBhbmQgRlJBTS4gVGhpcyBkcml2ZXIgcHJvdmlkZXMgb25seSBSVEMgZnVuY3Rpb25hbGl0eS4KKworCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuIElmIHNvIHRoZSBtb2R1bGUKKwkgIHdpbGwgYmUgY2FsbGVkIHJ0Yy1mbTMxMzAuCisKIGVuZGlmICMgSTJDCiAKIGNvbW1lbnQgIlNQSSBSVEMgZHJpdmVycyIKQEAgLTQ1OCw2ICs0NjksMTYgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHJ0Yy12cjQxeHguCiAKK2NvbmZpZyBSVENfRFJWX1BMMDMwCisJdHJpc3RhdGUgIkFSTSBBTUJBIFBMMDMwIFJUQyIKKwlkZXBlbmRzIG9uIEFSTV9BTUJBCisJaGVscAorCSAgSWYgeW91IHNheSBZIGhlcmUgeW91IHdpbGwgZ2V0IGFjY2VzcyB0byBBUk0gQU1CQQorCSAgUHJpbWVDZWxsIFBMMDMwIFJUQyBmb3VuZCBvbiBjZXJ0YWluIEFSTSBTT0NzLgorCisJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUKKwkgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBydGMtcGwwMzAuCisKIGNvbmZpZyBSVENfRFJWX1BMMDMxCiAJdHJpc3RhdGUgIkFSTSBBTUJBIFBMMDMxIFJUQyIKIAlkZXBlbmRzIG9uIEFSTV9BTUJBCkBAIC00ODQsMTIgKzUwNSwxMyBAQAogCSAgdGhpcyBpcyBwb3dlcmVkIGJ5IHRoZSBiYWNrdXAgcG93ZXIgc3VwcGx5LgogCiBjb25maWcgUlRDX0RSVl9BVDkxU0FNOQotCXRyaXN0YXRlICJBVDkxU0FNOXgiCisJdHJpc3RhdGUgIkFUOTFTQU05eC9BVDkxQ0FQOSIKIAlkZXBlbmRzIG9uIEFSQ0hfQVQ5MSAmJiAhKEFSQ0hfQVQ5MVJNOTIwMCB8fCBBUkNIX0FUOTFYNDApCiAJaGVscAotCSAgUlRDIGRyaXZlciBmb3IgdGhlIEF0bWVsIEFUOTFTQU05eCBpbnRlcm5hbCBSVFQgKFJlYWwgVGltZSBUaW1lcikuCi0JICBUaGVzZSB0aW1lcnMgYXJlIHBvd2VyZWQgYnkgdGhlIGJhY2t1cCBwb3dlciBzdXBwbHkgKHN1Y2ggYXMgYQotCSAgc21hbGwgY29pbiBjZWxsIGJhdHRlcnkpLCBidXQgZG8gbm90IG5lZWQgdG8gYmUgdXNlZCBhcyBSVENzLgorCSAgUlRDIGRyaXZlciBmb3IgdGhlIEF0bWVsIEFUOTFTQU05eCBhbmQgQVQ5MUNBUDkgaW50ZXJuYWwgUlRUCisJICAoUmVhbCBUaW1lIFRpbWVyKS4gVGhlc2UgdGltZXJzIGFyZSBwb3dlcmVkIGJ5IHRoZSBiYWNrdXAgcG93ZXIKKwkgIHN1cHBseSAoc3VjaCBhcyBhIHNtYWxsIGNvaW4gY2VsbCBiYXR0ZXJ5KSwgYnV0IGRvIG5vdCBuZWVkIHRvCisJICBiZSB1c2VkIGFzIFJUQ3MuCiAKIAkgIChPbiBBVDkxU0FNOXJsIGNoaXBzIHlvdSBwcm9iYWJseSB3YW50IHRvIHVzZSB0aGUgZGVkaWNhdGVkIFJUQwogCSAgbW9kdWxlIGFuZCBsZWF2ZSB0aGUgUlRUIGF2YWlsYWJsZSBmb3Igb3RoZXIgdXNlcy4pCkBAIC01MzQsNCArNTU2LDEyIEBACiAJaGVscAogCSAgSWYgeW91IHNheSB5ZXMgaGVyZSB5b3UgZ2V0IHN1cHBvcnQgZm9yIHRoZSBSaWNvaCBSUzVDMzEzIFJUQyBjaGlwcy4KIAorY29uZmlnIFJUQ19EUlZfUFBDCisgICAgICAgdHJpc3RhdGUgIlBvd2VyUEMgbWFjaGluZSBkZXBlbmRlbnQgUlRDIHN1cHBvcnQiCisgICAgICAgZGVwZW5kcyBvbiBQUENfTUVSR0UKKyAgICAgICBoZWxwCisJIFRoZSBQb3dlclBDIGtlcm5lbCBoYXMgbWFjaGluZS1zcGVjaWZpYyBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZworCSB0aGUgUlRDLiBUaGlzIGV4cG9zZXMgdGhhdCBmdW5jdGlvbmFsaXR5IHRocm91Z2ggdGhlIGdlbmVyaWMgUlRDCisJIGNsYXNzLgorCiBlbmRpZiAjIFJUQ19DTEFTUwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvTWFrZWZpbGUgYi9kcml2ZXJzL3J0Yy9NYWtlZmlsZQppbmRleCA4NzJmMTIxOGYuLmI1ZDlkNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvcnRjL01ha2VmaWxlCkBAIC0zMSw2ICszMSw3IEBACiBvYmotJChDT05GSUdfUlRDX0RSVl9EUzE2NzIpCSs9IHJ0Yy1kczE2NzIubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfRFMxNzQyKQkrPSBydGMtZHMxNzQyLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0VQOTNYWCkJKz0gcnRjLWVwOTN4eC5vCitvYmotJChDT05GSUdfUlRDX0RSVl9GTTMxMzApCSs9IHJ0Yy1mbTMxMzAubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfSVNMMTIwOCkJKz0gcnRjLWlzbDEyMDgubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfTTQxVDgwKQkrPSBydGMtbTQxdDgwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX000OFQ1OSkJKz0gcnRjLW00OHQ1OS5vCkBAIC00MCw3ICs0MSw5IEBACiBvYmotJChDT05GSUdfUlRDX0RSVl9PTUFQKQkrPSBydGMtb21hcC5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9QQ0Y4NTYzKQkrPSBydGMtcGNmODU2My5vCiBvYmotJChDT05GSUdfUlRDX0RSVl9QQ0Y4NTgzKQkrPSBydGMtcGNmODU4My5vCitvYmotJChDT05GSUdfUlRDX0RSVl9QTDAzMCkJKz0gcnRjLXBsMDMwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1BMMDMxKQkrPSBydGMtcGwwMzEubworb2JqLSQoQ09ORklHX1JUQ19EUlZfUFBDKQkrPSBydGMtcHBjLm8KIG9iai0kKENPTkZJR19SVENfRFJWX1I5NzAxKQkrPSBydGMtcjk3MDEubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUlM1QzMxMykJKz0gcnRjLXJzNWMzMTMubwogb2JqLSQoQ09ORklHX1JUQ19EUlZfUlM1QzM0OCkJKz0gcnRjLXJzNWMzNDgubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvaW50ZXJmYWNlLmMgYi9kcml2ZXJzL3J0Yy9pbnRlcmZhY2UuYwppbmRleCA3ZTNhZDRmLi41OGI3MzM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9pbnRlcmZhY2UuYworKysgYi9kcml2ZXJzL3J0Yy9pbnRlcmZhY2UuYwpAQCAtMTI2LDEyICsxMjYsMjUgQEAKIAlpbnQgZXJyOwogCXN0cnVjdCBydGNfdGltZSBiZWZvcmUsIG5vdzsKIAlpbnQgZmlyc3RfdGltZSA9IDE7CisJdW5zaWduZWQgbG9uZyB0X25vdywgdF9hbG07CisJZW51bSB7IG5vbmUsIGRheSwgbW9udGgsIHllYXIgfSBtaXNzaW5nID0gbm9uZTsKKwl1bnNpZ25lZCBkYXlzOwogCi0JLyogVGhlIGxvd2VyIGxldmVsIFJUQyBkcml2ZXIgbWF5IG5vdCBiZSBjYXBhYmxlIG9mIGZpbGxpbmcKLQkgKiBpbiBhbGwgZmllbGRzIG9mIHRoZSBydGNfdGltZSBzdHJ1Y3QgKGVnLiBydGMtY21vcyksCi0JICogYW5kIHNvIG1pZ2h0IGluc3RlYWQgcmV0dXJuIC0xIGluIHNvbWUgZmllbGRzLgotCSAqIFdlIGRlYWwgd2l0aCB0aGF0IGhlcmUgYnkgZ3JhYmJpbmcgYSBjdXJyZW50IFJUQyB0aW1lc3RhbXAKLQkgKiBhbmQgdXNpbmcgdmFsdWVzIGZyb20gdGhhdCBmb3IgYW55IG1pc3NpbmcgKC0xKSB2YWx1ZXMuCisJLyogVGhlIGxvd2VyIGxldmVsIFJUQyBkcml2ZXIgbWF5IHJldHVybiAtMSBpbiBzb21lIGZpZWxkcywKKwkgKiBjcmVhdGluZyBpbnZhbGlkIGFsYXJtLT50aW1lIHZhbHVlcywgZm9yIHJlYXNvbnMgbGlrZToKKwkgKgorCSAqICAgLSBUaGUgaGFyZHdhcmUgbWF5IG5vdCBiZSBjYXBhYmxlIG9mIGZpbGxpbmcgdGhlbSBpbjsKKwkgKiAgICAgbWFueSBhbGFybXMgbWF0Y2ggb25seSBvbiB0aW1lLW9mLWRheSBmaWVsZHMsIG5vdAorCSAqICAgICBkYXkvbW9udGgveWVhciBjYWxlbmRhciBkYXRhLgorCSAqCisJICogICAtIFNvbWUgaGFyZHdhcmUgdXNlcyBpbGxlZ2FsIHZhbHVlcyBhcyAid2lsZGNhcmQiIG1hdGNoCisJICogICAgIHZhbHVlcywgd2hpY2ggbm9uLUxpbnV4IGZpcm13YXJlIChsaWtlIGEgQklPUykgbWF5IHRyeQorCSAqICAgICB0byBzZXQgdXAgYXMgZS5nLiAiYWxhcm0gMTUgbWludXRlcyBhZnRlciBlYWNoIGhvdXIiLgorCSAqICAgICBMaW51eCB1c2VzIG9ubHkgb25lc2hvdCBhbGFybXMuCisJICoKKwkgKiBXaGVuIHdlIHNlZSB0aGF0IGhlcmUsIHdlIGRlYWwgd2l0aCBpdCBieSB1c2luZyB2YWx1ZXMgZnJvbQorCSAqIGEgY3VycmVudCBSVEMgdGltZXN0YW1wIGZvciBhbnkgbWlzc2luZyAoLTEpIHZhbHVlcy4gIFRoZQorCSAqIFJUQyBkcml2ZXIgcHJldmVudHMgInBlcmlvZGljIGFsYXJtIiBtb2Rlcy4KIAkgKgogCSAqIEJ1dCB0aGlzIGNhbiBiZSByYWNleSwgYmVjYXVzZSBzb21lIGZpZWxkcyBvZiB0aGUgUlRDIHRpbWVzdGFtcAogCSAqIG1heSBoYXZlIHdyYXBwZWQgaW4gdGhlIGludGVydmFsIHNpbmNlIHdlIHJlYWQgdGhlIFJUQyBhbGFybSwKQEAgLTE3NCw2ICsxODcsMTAgQEAKIAkJaWYgKCFhbGFybS0+ZW5hYmxlZCkKIAkJCXJldHVybiAwOwogCisJCS8qIGZ1bGwtZnVuY3Rpb24gUlRDcyB3b24ndCBoYXZlIHN1Y2ggbWlzc2luZyBmaWVsZHMgKi8KKwkJaWYgKHJ0Y192YWxpZF90bSgmYWxhcm0tPnRpbWUpID09IDApCisJCQlyZXR1cm4gMDsKKwogCQkvKiBnZXQgdGhlICJhZnRlciIgdGltZXN0YW1wLCB0byBkZXRlY3Qgd3JhcHBlZCBmaWVsZHMgKi8KIAkJZXJyID0gcnRjX3JlYWRfdGltZShydGMsICZub3cpOwogCQlpZiAoZXJyIDwgMCkKQEAgLTE4MywyMiArMjAwLDg1IEBACiAJfSB3aGlsZSAoICAgYmVmb3JlLnRtX21pbiAgICE9IG5vdy50bV9taW4KIAkJIHx8IGJlZm9yZS50bV9ob3VyICAhPSBub3cudG1faG91cgogCQkgfHwgYmVmb3JlLnRtX21vbiAgICE9IG5vdy50bV9tb24KLQkJIHx8IGJlZm9yZS50bV95ZWFyICAhPSBub3cudG1feWVhcgotCQkgfHwgYmVmb3JlLnRtX2lzZHN0ICE9IG5vdy50bV9pc2RzdCk7CisJCSB8fCBiZWZvcmUudG1feWVhciAgIT0gbm93LnRtX3llYXIpOwogCi0JLyogRmlsbCBpbiBhbnkgbWlzc2luZyBhbGFybSBmaWVsZHMgdXNpbmcgdGhlIHRpbWVzdGFtcCAqLworCS8qIEZpbGwgaW4gdGhlIG1pc3NpbmcgYWxhcm0gZmllbGRzIHVzaW5nIHRoZSB0aW1lc3RhbXA7IHdlCisJICoga25vdyB0aGVyZSdzIGF0IGxlYXN0IG9uZSBzaW5jZSBhbGFybS0+dGltZSBpcyBpbnZhbGlkLgorCSAqLwogCWlmIChhbGFybS0+dGltZS50bV9zZWMgPT0gLTEpCiAJCWFsYXJtLT50aW1lLnRtX3NlYyA9IG5vdy50bV9zZWM7CiAJaWYgKGFsYXJtLT50aW1lLnRtX21pbiA9PSAtMSkKIAkJYWxhcm0tPnRpbWUudG1fbWluID0gbm93LnRtX21pbjsKIAlpZiAoYWxhcm0tPnRpbWUudG1faG91ciA9PSAtMSkKIAkJYWxhcm0tPnRpbWUudG1faG91ciA9IG5vdy50bV9ob3VyOwotCWlmIChhbGFybS0+dGltZS50bV9tZGF5ID09IC0xKQorCisJLyogRm9yIHNpbXBsaWNpdHksIG9ubHkgc3VwcG9ydCBkYXRlIHJvbGxvdmVyIGZvciBub3cgKi8KKwlpZiAoYWxhcm0tPnRpbWUudG1fbWRheSA9PSAtMSkgewogCQlhbGFybS0+dGltZS50bV9tZGF5ID0gbm93LnRtX21kYXk7Ci0JaWYgKGFsYXJtLT50aW1lLnRtX21vbiA9PSAtMSkKKwkJbWlzc2luZyA9IGRheTsKKwl9CisJaWYgKGFsYXJtLT50aW1lLnRtX21vbiA9PSAtMSkgewogCQlhbGFybS0+dGltZS50bV9tb24gPSBub3cudG1fbW9uOwotCWlmIChhbGFybS0+dGltZS50bV95ZWFyID09IC0xKQorCQlpZiAobWlzc2luZyA9PSBub25lKQorCQkJbWlzc2luZyA9IG1vbnRoOworCX0KKwlpZiAoYWxhcm0tPnRpbWUudG1feWVhciA9PSAtMSkgewogCQlhbGFybS0+dGltZS50bV95ZWFyID0gbm93LnRtX3llYXI7CisJCWlmIChtaXNzaW5nID09IG5vbmUpCisJCQltaXNzaW5nID0geWVhcjsKKwl9CisKKwkvKiB3aXRoIGx1Y2ssIG5vIHJvbGxvdmVyIGlzIG5lZWRlZCAqLworCXJ0Y190bV90b190aW1lKCZub3csICZ0X25vdyk7CisJcnRjX3RtX3RvX3RpbWUoJmFsYXJtLT50aW1lLCAmdF9hbG0pOworCWlmICh0X25vdyA8IHRfYWxtKQorCQlnb3RvIGRvbmU7CisKKwlzd2l0Y2ggKG1pc3NpbmcpIHsKKworCS8qIDI0IGhvdXIgcm9sbG92ZXIgLi4uIGlmIGl0J3Mgbm93IDEwYW0gTW9uZGF5LCBhbiBhbGFybSB0aGF0CisJICogdGhhdCB3aWxsIHRyaWdnZXIgYXQgNWFtIHdpbGwgZG8gc28gYXQgNWFtIFR1ZXNkYXksIHdoaWNoCisJICogY291bGQgYWxzbyBiZSBpbiB0aGUgbmV4dCBtb250aCBvciB5ZWFyLiAgVGhpcyBpcyBhIGNvbW1vbgorCSAqIGNhc2UsIGVzcGVjaWFsbHkgZm9yIFBDcy4KKwkgKi8KKwljYXNlIGRheToKKwkJZGV2X2RiZygmcnRjLT5kZXYsICJhbGFybSByb2xsb3ZlcjogJXNcbiIsICJkYXkiKTsKKwkJdF9hbG0gKz0gMjQgKiA2MCAqIDYwOworCQlydGNfdGltZV90b190bSh0X2FsbSwgJmFsYXJtLT50aW1lKTsKKwkJYnJlYWs7CisKKwkvKiBNb250aCByb2xsb3ZlciAuLi4gaWYgaXQncyB0aGUgMzF0aCwgYW4gYWxhcm0gb24gdGhlIDNyZCB3aWxsCisJICogYmUgbmV4dCBtb250aC4gIEFuIGFsYXJtIG1hdGNoaW5nIG9uIHRoZSAzMHRoLCAyOXRoLCBvciAyOHRoCisJICogbWF5IGVuZCB1cCBpbiB0aGUgbW9udGggYWZ0ZXIgdGhhdCEgIE1hbnkgbmV3ZXIgUENzIHN1cHBvcnQKKwkgKiB0aGlzIHR5cGUgb2YgYWxhcm0uCisJICovCisJY2FzZSBtb250aDoKKwkJZGV2X2RiZygmcnRjLT5kZXYsICJhbGFybSByb2xsb3ZlcjogJXNcbiIsICJtb250aCIpOworCQlkbyB7CisJCQlpZiAoYWxhcm0tPnRpbWUudG1fbW9uIDwgMTEpCisJCQkJYWxhcm0tPnRpbWUudG1fbW9uKys7CisJCQllbHNlIHsKKwkJCQlhbGFybS0+dGltZS50bV9tb24gPSAwOworCQkJCWFsYXJtLT50aW1lLnRtX3llYXIrKzsKKwkJCX0KKwkJCWRheXMgPSBydGNfbW9udGhfZGF5cyhhbGFybS0+dGltZS50bV9tb24sCisJCQkJCWFsYXJtLT50aW1lLnRtX3llYXIpOworCQl9IHdoaWxlIChkYXlzIDwgYWxhcm0tPnRpbWUudG1fbWRheSk7CisJCWJyZWFrOworCisJLyogWWVhciByb2xsb3ZlciAuLi4gZWFzeSBleGNlcHQgZm9yIGxlYXAgeWVhcnMhICovCisJY2FzZSB5ZWFyOgorCQlkZXZfZGJnKCZydGMtPmRldiwgImFsYXJtIHJvbGxvdmVyOiAlc1xuIiwgInllYXIiKTsKKwkJZG8geworCQkJYWxhcm0tPnRpbWUudG1feWVhcisrOworCQl9IHdoaWxlICghcnRjX3ZhbGlkX3RtKCZhbGFybS0+dGltZSkpOworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCWRldl93YXJuKCZydGMtPmRldiwgImFsYXJtIHJvbGxvdmVyIG5vdCBoYW5kbGVkXG4iKTsKKwl9CisKK2RvbmU6CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChydGNfcmVhZF9hbGFybSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtYXQzMmFwNzAweC5jIGIvZHJpdmVycy9ydGMvcnRjLWF0MzJhcDcwMHguYwppbmRleCA0MjI0NGYxLi45MGI5YTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXQzMmFwNzAweC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDMyYXA3MDB4LmMKQEAgLTk0LDggKzk0LDExIEBACiB7CiAJc3RydWN0IHJ0Y19hdDMyYXA3MDB4ICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKIAorCXNwaW5fbG9ja19pcnEoJnJ0Yy0+bG9jayk7CiAJcnRjX3RpbWVfdG9fdG0ocnRjLT5hbGFybV90aW1lLCAmYWxybS0+dGltZSk7Ci0JYWxybS0+cGVuZGluZyA9IHJ0Y19yZWFkbChydGMsIElNUikgJiBSVENfQklUKElNUl9UT1BJKSA/IDEgOiAwOworCWFscm0tPmVuYWJsZWQgPSBydGNfcmVhZGwocnRjLCBJTVIpICYgUlRDX0JJVChJTVJfVE9QSSkgPyAxIDogMDsKKwlhbHJtLT5wZW5kaW5nID0gcnRjX3JlYWRsKHJ0YywgSVNSKSAmIFJUQ19CSVQoSVNSX1RPUEkpID8gMSA6IDA7CisJc3Bpbl91bmxvY2tfaXJxKCZydGMtPmxvY2spOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMTksNyArMTIyLDcgQEAKIAlzcGluX2xvY2tfaXJxKCZydGMtPmxvY2spOwogCXJ0Yy0+YWxhcm1fdGltZSA9IGFsYXJtX3VuaXhfdGltZTsKIAlydGNfd3JpdGVsKHJ0YywgVE9QLCBydGMtPmFsYXJtX3RpbWUpOwotCWlmIChhbHJtLT5wZW5kaW5nKQorCWlmIChhbHJtLT5lbmFibGVkKQogCQlydGNfd3JpdGVsKHJ0YywgQ1RSTCwgcnRjX3JlYWRsKHJ0YywgQ1RSTCkKIAkJCQl8IFJUQ19CSVQoQ1RSTF9UT1BFTikpOwogCWVsc2UKQEAgLTI2Miw2ICsyNjUsNyBAQAogCX0KIAogCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHJ0Yyk7CisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDEpOwogCiAJZGV2X2luZm8oJnBkZXYtPmRldiwgIkF0bWVsIFJUQyBmb3IgQVQzMkFQNzAweCBhdCAlMDhseCBpcnEgJWxkXG4iLAogCQkJKHVuc2lnbmVkIGxvbmcpcnRjLT5yZWdzLCBydGMtPmlycSk7CkBAIC0yODEsNiArMjg1LDggQEAKIHsKIAlzdHJ1Y3QgcnRjX2F0MzJhcDcwMHggKnJ0YyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDApOworCiAJZnJlZV9pcnEocnRjLT5pcnEsIHJ0Yyk7CiAJaW91bm1hcChydGMtPnJlZ3MpOwogCXJ0Y19kZXZpY2VfdW5yZWdpc3RlcihydGMtPnJ0Yyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jIGIvZHJpdmVycy9ydGMvcnRjLWF0OTFybTkyMDAuYwppbmRleCAzOWU2NGFiLi45YzNkYjkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtYXQ5MXJtOTIwMC5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1hdDkxcm05MjAwLmMKQEAgLTI5LDEwICsyOSw2IEBACiAjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KLSNpbmNsdWRlIDxhc20vcnRjLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+Ci0KICNpbmNsdWRlIDxhc20vYXJjaC9hdDkxX3J0Yy5oPgogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1hdDkxc2FtOS5jIGIvZHJpdmVycy9ydGMvcnRjLWF0OTFzYW05LmMKaW5kZXggMzhkODc0Mi4uZjAyNDZlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWF0OTFzYW05LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWF0OTFzYW05LmMKQEAgLTE5LDcgKzE5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9pb2N0bC5oPgogCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvYXQ5MV9ydHQuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWNtb3MuYyBiL2RyaXZlcnMvcnRjL3J0Yy1jbW9zLmMKaW5kZXggZDA2MGEwNi4uZDdiYjliYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLWNtb3MuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtY21vcy5jCkBAIC05MDUsMTkgKzkwNSw3IEBACiAJLnJlc3VtZQkJPSBjbW9zX3BucF9yZXN1bWUsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBjbW9zX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gcG5wX3JlZ2lzdGVyX2RyaXZlcigmY21vc19wbnBfZHJpdmVyKTsKLX0KLW1vZHVsZV9pbml0KGNtb3NfaW5pdCk7Ci0KLXN0YXRpYyB2b2lkIF9fZXhpdCBjbW9zX2V4aXQodm9pZCkKLXsKLQlwbnBfdW5yZWdpc3Rlcl9kcml2ZXIoJmNtb3NfcG5wX2RyaXZlcik7Ci19Ci1tb2R1bGVfZXhpdChjbW9zX2V4aXQpOwotCi0jZWxzZQkvKiBubyBQTlAgKi8KKyNlbmRpZgkvKiBDT05GSUdfUE5QICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTk1OCwyMCArOTQ2LDMzIEBACiAKIHN0YXRpYyBpbnQgX19pbml0IGNtb3NfaW5pdCh2b2lkKQogeworI2lmZGVmCUNPTkZJR19QTlAKKwlpZiAocG5wX3BsYXRmb3JtX2RldmljZXMpCisJCXJldHVybiBwbnBfcmVnaXN0ZXJfZHJpdmVyKCZjbW9zX3BucF9kcml2ZXIpOworCWVsc2UKKwkJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9wcm9iZSgmY21vc19wbGF0Zm9ybV9kcml2ZXIsCisJCQljbW9zX3BsYXRmb3JtX3Byb2JlKTsKKyNlbHNlCiAJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9wcm9iZSgmY21vc19wbGF0Zm9ybV9kcml2ZXIsCiAJCQljbW9zX3BsYXRmb3JtX3Byb2JlKTsKKyNlbmRpZiAvKiBDT05GSUdfUE5QICovCiB9CiBtb2R1bGVfaW5pdChjbW9zX2luaXQpOwogCiBzdGF0aWMgdm9pZCBfX2V4aXQgY21vc19leGl0KHZvaWQpCiB7CisjaWZkZWYJQ09ORklHX1BOUAorCWlmIChwbnBfcGxhdGZvcm1fZGV2aWNlcykKKwkJcG5wX3VucmVnaXN0ZXJfZHJpdmVyKCZjbW9zX3BucF9kcml2ZXIpOworCWVsc2UKKwkJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmNtb3NfcGxhdGZvcm1fZHJpdmVyKTsKKyNlbHNlCiAJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmNtb3NfcGxhdGZvcm1fZHJpdmVyKTsKKyNlbmRpZiAvKiBDT05GSUdfUE5QICovCiB9CiBtb2R1bGVfZXhpdChjbW9zX2V4aXQpOwogCiAKLSNlbmRpZgkvKiAhUE5QICovCi0KIE1PRFVMRV9BVVRIT1IoIkRhdmlkIEJyb3duZWxsIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkRyaXZlciBmb3IgUEMtc3R5bGUgJ0NNT1MnIFJUQ3MiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1kZXYuYyBiL2RyaXZlcnMvcnRjL3J0Yy1kZXYuYwppbmRleCA5MGRmYTBkLi4wMTE0YTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtZGV2LmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLWRldi5jCkBAIC0xMyw2ICsxMyw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9ydGMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgInJ0Yy1jb3JlLmgiCiAKIHN0YXRpYyBkZXZfdCBydGNfZGV2dDsKQEAgLTI2LDggKzI3LDExIEBACiAJCQkJCXN0cnVjdCBydGNfZGV2aWNlLCBjaGFyX2Rldik7CiAJY29uc3Qgc3RydWN0IHJ0Y19jbGFzc19vcHMgKm9wcyA9IHJ0Yy0+b3BzOwogCi0JaWYgKHRlc3RfYW5kX3NldF9iaXRfbG9jayhSVENfREVWX0JVU1ksICZydGMtPmZsYWdzKSkKLQkJcmV0dXJuIC1FQlVTWTsKKwlsb2NrX2tlcm5lbCgpOworCWlmICh0ZXN0X2FuZF9zZXRfYml0X2xvY2soUlRDX0RFVl9CVVNZLCAmcnRjLT5mbGFncykpIHsKKwkJZXJyID0gLUVCVVNZOworCQlnb3RvIG91dDsKKwl9CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBydGM7CiAKQEAgLTM3LDExICs0MSwxMyBAQAogCQlydGMtPmlycV9kYXRhID0gMDsKIAkJc3Bpbl91bmxvY2tfaXJxKCZydGMtPmlycV9sb2NrKTsKIAotCQlyZXR1cm4gMDsKKwkJZ290byBvdXQ7CiAJfQogCiAJLyogc29tZXRoaW5nIGhhcyBnb25lIHdyb25nICovCiAJY2xlYXJfYml0X3VubG9jayhSVENfREVWX0JVU1ksICZydGMtPmZsYWdzKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWRzMTM3NC5jIGIvZHJpdmVycy9ydGMvcnRjLWRzMTM3NC5jCmluZGV4IGZhMmQyZjguLjY0MGFjZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1kczEzNzQuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtZHMxMzc0LmMKQEAgLTQyLDcgKzQyLDcgQEAKICNkZWZpbmUgRFMxMzc0X1JFR19UQ1IJCTB4MDkgLyogVHJpY2tsZSBDaGFyZ2UgKi8KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIGRzMTM3NF9pZFtdID0gewotCXsgInJ0Yy1kczEzNzQiLCAwIH0sCisJeyAiZHMxMzc0IiwgMCB9LAogCXsgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCBkczEzNzRfaWQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLWZtMzEzMC5jIGIvZHJpdmVycy9ydGMvcnRjLWZtMzEzMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZmRmY2IKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3J0Yy9ydGMtZm0zMTMwLmMKQEAgLTAsMCArMSw1MDEgQEAKKy8qCisgKiBydGMtZm0zMTMwLmMgLSBSVEMgZHJpdmVyIGZvciBSYW10cm9uIEZNMzEzMCBJMkMgY2hpcC4KKyAqCisgKiAgQ29weXJpZ2h0IChDKSAyMDA4IFNlcmdleSBMYXBpbgorICogIEJhc2VkIG9uIGRzMTMwNyBkcml2ZXIgYnkgSmFtZXMgQ2hhcG1hbiBhbmQgRGF2aWQgQnJvd25lbGwKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9ydGMuaD4KKyNpbmNsdWRlIDxsaW51eC9iY2QuaD4KKworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0wJKDB4MCkKKyNkZWZpbmUgRk0zMTMwX0NBTF9DT05UUk9MCSgweDEpCisjZGVmaW5lIEZNMzEzMF9SVENfU0VDT05EUwkoMHgyKQorI2RlZmluZSBGTTMxMzBfUlRDX01JTlVURVMJKDB4MykKKyNkZWZpbmUgRk0zMTMwX1JUQ19IT1VSUwkoMHg0KQorI2RlZmluZSBGTTMxMzBfUlRDX0RBWQkJKDB4NSkKKyNkZWZpbmUgRk0zMTMwX1JUQ19EQVRFCQkoMHg2KQorI2RlZmluZSBGTTMxMzBfUlRDX01PTlRIUwkoMHg3KQorI2RlZmluZSBGTTMxMzBfUlRDX1lFQVJTCSgweDgpCisKKyNkZWZpbmUgRk0zMTMwX0FMQVJNX1NFQ09ORFMJKDB4OSkKKyNkZWZpbmUgRk0zMTMwX0FMQVJNX01JTlVURVMJKDB4YSkKKyNkZWZpbmUgRk0zMTMwX0FMQVJNX0hPVVJTCSgweGIpCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9EQVRFCSgweGMpCisjZGVmaW5lIEZNMzEzMF9BTEFSTV9NT05USFMJKDB4ZCkKKyNkZWZpbmUgRk0zMTMwX0FMQVJNX1dQX0NPTlRST0wJKDB4ZSkKKworI2RlZmluZSBGTTMxMzBfQ0FMX0NPTlRST0xfQklUX25PU0NFTiAoMSA8PCA3KSAvKiBPc2NpYWxsYXRvciBlbmFibGVkICovCisjZGVmaW5lIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfTEIgKDEgPDwgNykgLyogTG93IGJhdHRlcnkgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRiAoMSA8PCA2KSAvKiBBbGFybSBmbGFnICovCisjZGVmaW5lIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQ0YgKDEgPDwgNSkgLyogQ2VudHVyeSBvdmVyZmxvdyAqLworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1BPUiAoMSA8PCA0KSAvKiBQb3dlciBvbiByZXNldCAqLworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0FFTiAoMSA8PCAzKSAvKiBBbGFybSBlbmFibGUgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9DQUwgKDEgPDwgMikgLyogQ2FsaWJyYXRpb24gbW9kZSAqLworI2RlZmluZSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1dSSVRFICgxIDw8IDEpIC8qIFc9MSAtPiB3cml0ZSBtb2RlIFc9MCBub3JtYWwgKi8KKyNkZWZpbmUgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9SRUFEICgxIDw8IDApIC8qIFI9MSAtPiByZWFkIG1vZGUgUj0wIG5vcm1hbCAqLworCisjZGVmaW5lIEZNMzEzMF9DTE9DS19SRUdTIDcKKyNkZWZpbmUgRk0zMTMwX0FMQVJNX1JFR1MgNQorCitzdHJ1Y3QgZm0zMTMwIHsKKwl1OAkJCXJlZ19hZGRyX3RpbWU7CisJdTggCQkJcmVnX2FkZHJfYWxhcm07CisJdTgJCQlyZWdzWzE1XTsKKwlzdHJ1Y3QgaTJjX21zZwkJbXNnWzRdOworCXN0cnVjdCBpMmNfY2xpZW50CSpjbGllbnQ7CisJc3RydWN0IHJ0Y19kZXZpY2UJKnJ0YzsKKwlpbnQJCQlkYXRhX3ZhbGlkOworCWludAkJCWFsYXJtOworfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCBmbTMxMzBfaWRbXSA9IHsKKwl7ICJmbTMxMzAiLCAwIH0sCisJeyB9Cit9OworTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIGZtMzEzMF9pZCk7CisKKyNkZWZpbmUgRk0zMTMwX01PREVfTk9STUFMCQkwCisjZGVmaW5lIEZNMzEzMF9NT0RFX1dSSVRFCQkxCisjZGVmaW5lIEZNMzEzMF9NT0RFX1JFQUQJCTIKKworc3RhdGljIHZvaWQgZm0zMTMwX3J0Y19tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IG1vZGUpCit7CisJc3RydWN0IGZtMzEzMCAqZm0zMTMwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisKKwlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSA9CisJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MKTsKKwlzd2l0Y2ggKG1vZGUpIHsKKwljYXNlIEZNMzEzMF9NT0RFX05PUk1BTDoKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJj0KKwkJCX4oRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9XUklURSB8CisJCQlGTTMxMzBfUlRDX0NPTlRST0xfQklUX1JFQUQpOworCQlicmVhazsKKwljYXNlIEZNMzEzMF9NT0RFX1dSSVRFOgorCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSB8PSBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1dSSVRFOworCQlicmVhazsKKwljYXNlIEZNMzEzMF9NT0RFX1JFQUQ6CisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdIHw9IEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfUkVBRDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZGV2X2RiZyhkZXYsICJpbnZhbGlkIG1vZGUgJWRcbiIsIG1vZGUpOworCQlicmVhazsKKwl9CisJLyogQ2hlY2tpbmcgZm9yIGFsYXJtICovCisJaWYgKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRikgeworCQlmbTMxMzAtPmFsYXJtID0gMTsKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJj0gfkZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUY7CisJfQorCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZm0zMTMwLT5jbGllbnQsCisJCSBGTTMxMzBfUlRDX0NPTlRST0wsIGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdKTsKK30KKworc3RhdGljIGludCBmbTMxMzBfZ2V0X3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnQpCit7CisJc3RydWN0IGZtMzEzMCAqZm0zMTMwID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJaW50CQl0bXA7CisKKwlpZiAoIWZtMzEzMC0+ZGF0YV92YWxpZCkgeworCQkvKiBXZSBoYXZlIGludmFsaWQgZGF0YSBpbiBSVEMsIHByb2JhYmx5IGR1ZQorCQl0byBiYXR0ZXJ5IGZhdWx0cyBvciBvdGhlciBwcm9ibGVtcy4gUmV0dXJuIEVJTworCQlmb3Igbm93LCBpdCB3aWxsIGFsbG93IHVzIHRvIHNldCBkYXRhIGxhdGVyIGluc3RlZAorCQlvZiBlcnJvciBkdXJpbmcgcHJvYmluZyB3aGljaCBkaXNhYmxlcyBkZXZpY2UgKi8KKwkJcmV0dXJuIC1FSU87CisJfQorCWZtMzEzMF9ydGNfbW9kZShkZXYsIEZNMzEzMF9NT0RFX1JFQUQpOworCisJLyogcmVhZCB0aGUgUlRDIGRhdGUgYW5kIHRpbWUgcmVnaXN0ZXJzIGFsbCBhdCBvbmNlICovCisJdG1wID0gaTJjX3RyYW5zZmVyKHRvX2kyY19hZGFwdGVyKGZtMzEzMC0+Y2xpZW50LT5kZXYucGFyZW50KSwKKwkJCWZtMzEzMC0+bXNnLCAyKTsKKwlpZiAodG1wICE9IDIpIHsKKwkJZGV2X2VycihkZXYsICIlcyBlcnJvciAlZFxuIiwgInJlYWQiLCB0bXApOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwlmbTMxMzBfcnRjX21vZGUoZGV2LCBGTTMxMzBfTU9ERV9OT1JNQUwpOworCisJZGV2X2RiZyhkZXYsICIlczogJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4IgorCQkJIiUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQkicmVhZCIsCisJCQlmbTMxMzAtPnJlZ3NbMF0sIGZtMzEzMC0+cmVnc1sxXSwKKwkJCWZtMzEzMC0+cmVnc1syXSwgZm0zMTMwLT5yZWdzWzNdLAorCQkJZm0zMTMwLT5yZWdzWzRdLCBmbTMxMzAtPnJlZ3NbNV0sCisJCQlmbTMxMzAtPnJlZ3NbNl0sIGZtMzEzMC0+cmVnc1s3XSwKKwkJCWZtMzEzMC0+cmVnc1s4XSwgZm0zMTMwLT5yZWdzWzldLAorCQkJZm0zMTMwLT5yZWdzWzB4YV0sIGZtMzEzMC0+cmVnc1sweGJdLAorCQkJZm0zMTMwLT5yZWdzWzB4Y10sIGZtMzEzMC0+cmVnc1sweGRdLAorCQkJZm0zMTMwLT5yZWdzWzB4ZV0pOworCisJdC0+dG1fc2VjID0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19TRUNPTkRTXSAmIDB4N2YpOworCXQtPnRtX21pbiA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfTUlOVVRFU10gJiAweDdmKTsKKwl0bXAgPSBmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19IT1VSU10gJiAweDNmOworCXQtPnRtX2hvdXIgPSBCQ0QyQklOKHRtcCk7CisJdC0+dG1fd2RheSA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfREFZXSAmIDB4MDcpIC0gMTsKKwl0LT50bV9tZGF5ID0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19EQVRFXSAmIDB4M2YpOworCXRtcCA9IGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX01PTlRIU10gJiAweDFmOworCXQtPnRtX21vbiA9IEJDRDJCSU4odG1wKSAtIDE7CisKKwkvKiBhc3N1bWUgMjBZWSBub3QgMTlZWSwgYW5kIGlnbm9yZSBDRiBiaXQgKi8KKwl0LT50bV95ZWFyID0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19ZRUFSU10pICsgMTAwOworCisJZGV2X2RiZyhkZXYsICIlcyBzZWNzPSVkLCBtaW5zPSVkLCAiCisJCSJob3Vycz0lZCwgbWRheT0lZCwgbW9uPSVkLCB5ZWFyPSVkLCB3ZGF5PSVkXG4iLAorCQkicmVhZCIsIHQtPnRtX3NlYywgdC0+dG1fbWluLAorCQl0LT50bV9ob3VyLCB0LT50bV9tZGF5LAorCQl0LT50bV9tb24sIHQtPnRtX3llYXIsIHQtPnRtX3dkYXkpOworCisJLyogaW5pdGlhbCBjbG9jayBzZXR0aW5nIGNhbiBiZSB1bmRlZmluZWQgKi8KKwlyZXR1cm4gcnRjX3ZhbGlkX3RtKHQpOworfQorCisKK3N0YXRpYyBpbnQgZm0zMTMwX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0KQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludAkJdG1wLCBpOworCXU4CQkqYnVmID0gZm0zMTMwLT5yZWdzOworCisJZGV2X2RiZyhkZXYsICIlcyBzZWNzPSVkLCBtaW5zPSVkLCAiCisJCSJob3Vycz0lZCwgbWRheT0lZCwgbW9uPSVkLCB5ZWFyPSVkLCB3ZGF5PSVkXG4iLAorCQkid3JpdGUiLCB0LT50bV9zZWMsIHQtPnRtX21pbiwKKwkJdC0+dG1faG91ciwgdC0+dG1fbWRheSwKKwkJdC0+dG1fbW9uLCB0LT50bV95ZWFyLCB0LT50bV93ZGF5KTsKKworCS8qIGZpcnN0IHJlZ2lzdGVyIGFkZHIgKi8KKwlidWZbRk0zMTMwX1JUQ19TRUNPTkRTXSA9IEJJTjJCQ0QodC0+dG1fc2VjKTsKKwlidWZbRk0zMTMwX1JUQ19NSU5VVEVTXSA9IEJJTjJCQ0QodC0+dG1fbWluKTsKKwlidWZbRk0zMTMwX1JUQ19IT1VSU10gPSBCSU4yQkNEKHQtPnRtX2hvdXIpOworCWJ1ZltGTTMxMzBfUlRDX0RBWV0gPSBCSU4yQkNEKHQtPnRtX3dkYXkgKyAxKTsKKwlidWZbRk0zMTMwX1JUQ19EQVRFXSA9IEJJTjJCQ0QodC0+dG1fbWRheSk7CisJYnVmW0ZNMzEzMF9SVENfTU9OVEhTXSA9IEJJTjJCQ0QodC0+dG1fbW9uICsgMSk7CisKKwkvKiBhc3N1bWUgMjBZWSBub3QgMTlZWSAqLworCXRtcCA9IHQtPnRtX3llYXIgLSAxMDA7CisJYnVmW0ZNMzEzMF9SVENfWUVBUlNdID0gQklOMkJDRCh0bXApOworCisJZGV2X2RiZyhkZXYsICIlczogJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCIKKwkJIiUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJIndyaXRlIiwgYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdLAorCQlidWZbNF0sIGJ1Zls1XSwgYnVmWzZdLCBidWZbN10sCisJCWJ1Zls4XSwgYnVmWzldLCBidWZbMHhhXSwgYnVmWzB4Yl0sCisJCWJ1ZlsweGNdLCBidWZbMHhkXSwgYnVmWzB4ZV0pOworCisJZm0zMTMwX3J0Y19tb2RlKGRldiwgRk0zMTMwX01PREVfV1JJVEUpOworCisJLyogV3JpdGluZyB0aW1lIHJlZ2lzdGVycywgd2UgZG9uJ3Qgc3VwcG9ydCBtdWx0aWJ5dGUgdHJhbnNmZXJzICovCisJZm9yIChpID0gMDsgaSA8IEZNMzEzMF9DTE9DS19SRUdTOyBpKyspIHsKKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwKKwkJCQkJRk0zMTMwX1JUQ19TRUNPTkRTICsgaSwKKwkJCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfU0VDT05EUyArIGldKTsKKwl9CisKKwlmbTMxMzBfcnRjX21vZGUoZGV2LCBGTTMxMzBfTU9ERV9OT1JNQUwpOworCisJLyogV2UgYXNzdW1lIGhlcmUgdGhhdCBkYXRhIGFyZSB2YWxpZCBvbmNlIHdyaXR0ZW4gKi8KKwlpZiAoIWZtMzEzMC0+ZGF0YV92YWxpZCkKKwkJZm0zMTMwLT5kYXRhX3ZhbGlkID0gMTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBmbTMxMzBfcmVhZF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCWludCB0bXA7CisJc3RydWN0IHJ0Y190aW1lICp0bSA9ICZhbHJtLT50aW1lOworCS8qIHJlYWQgdGhlIFJUQyBhbGFybSByZWdpc3RlcnMgYWxsIGF0IG9uY2UgKi8KKwl0bXAgPSBpMmNfdHJhbnNmZXIodG9faTJjX2FkYXB0ZXIoZm0zMTMwLT5jbGllbnQtPmRldi5wYXJlbnQpLAorCQkJJmZtMzEzMC0+bXNnWzJdLCAyKTsKKwlpZiAodG1wICE9IDIpIHsKKwkJZGV2X2VycihkZXYsICIlcyBlcnJvciAlZFxuIiwgInJlYWQiLCB0bXApOworCQlyZXR1cm4gLUVJTzsKKwl9CisJZGV2X2RiZyhkZXYsICJhbGFybSByZWFkICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fU0VDT05EU10sCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX01JTlVURVNdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9IT1VSU10sCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX0RBVEVdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9NT05USFNdKTsKKworCisJdG0tPnRtX3NlYwk9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9TRUNPTkRTXSAmIDB4N0YpOworCXRtLT50bV9taW4JPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTUlOVVRFU10gJiAweDdGKTsKKwl0bS0+dG1faG91cgk9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9IT1VSU10gJiAweDNGKTsKKwl0bS0+dG1fbWRheQk9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9EQVRFXSAmIDB4M0YpOworCXRtLT50bV9tb24JPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTU9OVEhTXSAmIDB4MUYpOworCWlmICh0bS0+dG1fbW9uID4gMCkKKwkJdG0tPnRtX21vbiAtPSAxOyAvKiBSVEMgaXMgMS0xMiwgdG1fbW9uIGlzIDAtMTEgKi8KKwlkZXZfZGJnKGRldiwgIiVzIHNlY3M9JWQsIG1pbnM9JWQsICIKKwkJImhvdXJzPSVkLCBtZGF5PSVkLCBtb249JWQsIHllYXI9JWQsIHdkYXk9JWRcbiIsCisJCSJyZWFkIGFsYXJtIiwgdG0tPnRtX3NlYywgdG0tPnRtX21pbiwKKwkJdG0tPnRtX2hvdXIsIHRtLT50bV9tZGF5LAorCQl0bS0+dG1fbW9uLCB0bS0+dG1feWVhciwgdG0tPnRtX3dkYXkpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZm0zMTMwX3NldF9hbGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtICphbHJtKQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBydGNfdGltZSAqdG0gPSAmYWxybS0+dGltZTsKKwlpbnQgaTsKKworCWRldl9kYmcoZGV2LCAiJXMgc2Vjcz0lZCwgbWlucz0lZCwgIgorCQkiaG91cnM9JWQsIG1kYXk9JWQsIG1vbj0lZCwgeWVhcj0lZCwgd2RheT0lZFxuIiwKKwkJIndyaXRlIGFsYXJtIiwgdG0tPnRtX3NlYywgdG0tPnRtX21pbiwKKwkJdG0tPnRtX2hvdXIsIHRtLT50bV9tZGF5LAorCQl0bS0+dG1fbW9uLCB0bS0+dG1feWVhciwgdG0tPnRtX3dkYXkpOworCisJaWYgKHRtLT50bV9zZWMgIT0gLTEpCisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fU0VDT05EU10gPQorCQkJQklOMkJDRCh0bS0+dG1fc2VjKSB8IDB4ODA7CisKKwlpZiAodG0tPnRtX21pbiAhPSAtMSkKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9NSU5VVEVTXSA9CisJCQlCSU4yQkNEKHRtLT50bV9taW4pIHwgMHg4MDsKKworCWlmICh0bS0+dG1faG91ciAhPSAtMSkKKwkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9IT1VSU10gPQorCQkJQklOMkJDRCh0bS0+dG1faG91cikgfCAweDgwOworCisJaWYgKHRtLT50bV9tZGF5ICE9IC0xKQorCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX0RBVEVdID0KKwkJCUJJTjJCQ0QodG0tPnRtX21kYXkpIHwgMHg4MDsKKworCWlmICh0bS0+dG1fbW9uICE9IC0xKQorCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX01PTlRIU10gPQorCQkJQklOMkJDRCh0bS0+dG1fbW9uICsgMSkgfCAweDgwOworCisJZGV2X2RiZyhkZXYsICJhbGFybSB3cml0ZSAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnhcbiIsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX1NFQ09ORFNdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9NSU5VVEVTXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fSE9VUlNdLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9BTEFSTV9EQVRFXSwKKwkJCWZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fTU9OVEhTXSk7CisJLyogV3JpdGluZyB0aW1lIHJlZ2lzdGVycywgd2UgZG9uJ3Qgc3VwcG9ydCBtdWx0aWJ5dGUgdHJhbnNmZXJzICovCisJZm9yIChpID0gMDsgaSA8IEZNMzEzMF9BTEFSTV9SRUdTOyBpKyspIHsKKwkJaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShmbTMxMzAtPmNsaWVudCwKKwkJCQkJRk0zMTMwX0FMQVJNX1NFQ09ORFMgKyBpLAorCQkJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0FMQVJNX1NFQ09ORFMgKyBpXSk7CisJfQorCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdID0KKwkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGZtMzEzMC0+Y2xpZW50LCBGTTMxMzBfUlRDX0NPTlRST0wpOworCS8qIENoZWNraW5nIGZvciBhbGFybSAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUYpIHsKKwkJZm0zMTMwLT5hbGFybSA9IDE7CisJCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICY9IH5GTTMxMzBfUlRDX0NPTlRST0xfQklUX0FGOworCX0KKwlpZiAoYWxybS0+ZW5hYmxlZCkgeworCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGZtMzEzMC0+Y2xpZW50LCBGTTMxMzBfUlRDX0NPTlRST0wsCisJCQkoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJgorCQkJCX4oRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9DQUwpKSB8CisJCQkJCUZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQUVOKTsKKwl9IGVsc2UgeworCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGZtMzEzMC0+Y2xpZW50LCBGTTMxMzBfUlRDX0NPTlRST0wsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmCisJCQkJfihGTTMxMzBfUlRDX0NPTlRST0xfQklUX0FFTikpOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzIGZtMzEzMF9ydGNfb3BzID0geworCS5yZWFkX3RpbWUJPSBmbTMxMzBfZ2V0X3RpbWUsCisJLnNldF90aW1lCT0gZm0zMTMwX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCT0gZm0zMTMwX3JlYWRfYWxhcm0sCisJLnNldF9hbGFybQk9IGZtMzEzMF9zZXRfYWxhcm0sCit9OworCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZm0zMTMwX2RyaXZlcjsKKworc3RhdGljIGludCBfX2RldmluaXQgZm0zMTMwX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCisJCQkJICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQpCit7CisJc3RydWN0IGZtMzEzMAkJKmZtMzEzMDsKKwlpbnQJCQllcnIgPSAtRU5PREVWOworCWludAkJCXRtcDsKKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIJKmFkYXB0ZXIgPSB0b19pMmNfYWRhcHRlcihjbGllbnQtPmRldi5wYXJlbnQpOworCisJaWYgKCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShhZGFwdGVyLAorCQkJSTJDX0ZVTkNfSTJDIHwgSTJDX0ZVTkNfU01CVVNfV1JJVEVfQllURV9EQVRBKSkKKwkJcmV0dXJuIC1FSU87CisKKwlmbTMxMzAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZm0zMTMwKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoIWZtMzEzMCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlmbTMxMzAtPmNsaWVudCA9IGNsaWVudDsKKwlpMmNfc2V0X2NsaWVudGRhdGEoY2xpZW50LCBmbTMxMzApOworCWZtMzEzMC0+cmVnX2FkZHJfdGltZSA9IEZNMzEzMF9SVENfU0VDT05EUzsKKwlmbTMxMzAtPnJlZ19hZGRyX2FsYXJtID0gRk0zMTMwX0FMQVJNX1NFQ09ORFM7CisKKwkvKiBNZXNzYWdlcyB0byByZWFkIHRpbWUgKi8KKwlmbTMxMzAtPm1zZ1swXS5hZGRyID0gY2xpZW50LT5hZGRyOworCWZtMzEzMC0+bXNnWzBdLmZsYWdzID0gMDsKKwlmbTMxMzAtPm1zZ1swXS5sZW4gPSAxOworCWZtMzEzMC0+bXNnWzBdLmJ1ZiA9ICZmbTMxMzAtPnJlZ19hZGRyX3RpbWU7CisKKwlmbTMxMzAtPm1zZ1sxXS5hZGRyID0gY2xpZW50LT5hZGRyOworCWZtMzEzMC0+bXNnWzFdLmZsYWdzID0gSTJDX01fUkQ7CisJZm0zMTMwLT5tc2dbMV0ubGVuID0gRk0zMTMwX0NMT0NLX1JFR1M7CisJZm0zMTMwLT5tc2dbMV0uYnVmID0gJmZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX1NFQ09ORFNdOworCisJLyogTWVzc2FnZXMgdG8gcmVhZCBhbGFybSAqLworCWZtMzEzMC0+bXNnWzJdLmFkZHIgPSBjbGllbnQtPmFkZHI7CisJZm0zMTMwLT5tc2dbMl0uZmxhZ3MgPSAwOworCWZtMzEzMC0+bXNnWzJdLmxlbiA9IDE7CisJZm0zMTMwLT5tc2dbMl0uYnVmID0gJmZtMzEzMC0+cmVnX2FkZHJfYWxhcm07CisKKwlmbTMxMzAtPm1zZ1szXS5hZGRyID0gY2xpZW50LT5hZGRyOworCWZtMzEzMC0+bXNnWzNdLmZsYWdzID0gSTJDX01fUkQ7CisJZm0zMTMwLT5tc2dbM10ubGVuID0gRk0zMTMwX0FMQVJNX1JFR1M7CisJZm0zMTMwLT5tc2dbM10uYnVmID0gJmZtMzEzMC0+cmVnc1tGTTMxMzBfQUxBUk1fU0VDT05EU107CisKKwlmbTMxMzAtPmRhdGFfdmFsaWQgPSAwOworCisJdG1wID0gaTJjX3RyYW5zZmVyKGFkYXB0ZXIsIGZtMzEzMC0+bXNnLCA0KTsKKwlpZiAodG1wICE9IDQpIHsKKwkJcHJfZGVidWcoInJlYWQgZXJyb3IgJWRcbiIsIHRtcCk7CisJCWVyciA9IC1FSU87CisJCWdvdG8gZXhpdF9mcmVlOworCX0KKworCWZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdID0KKwkJaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MKTsKKwlmbTMxMzAtPnJlZ3NbRk0zMTMwX0NBTF9DT05UUk9MXSA9CisJCWkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YShjbGllbnQsIEZNMzEzMF9DQUxfQ09OVFJPTCk7CisKKwkvKiBDaGVja2luZyBmb3IgYWxhcm0gKi8KKwlpZiAoZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX0FGKSB7CisJCWZtMzEzMC0+YWxhcm0gPSAxOworCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmPSB+Rk0zMTMwX1JUQ19DT05UUk9MX0JJVF9BRjsKKwl9CisKKwkvKiBEaXNhYmxpbmcgY2FsaWJyYXRpb24gbW9kZSAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfQ0FMKQorCQlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX1JUQ19DT05UUk9MLAorCQkJZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJgorCQkJCX4oRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9DQUwpKTsKKwkJZGV2X3dhcm4oJmNsaWVudC0+ZGV2LCAiRGlzYWJsaW5nIGNhbGlicmF0aW9uIG1vZGUhXG4iKTsKKworCS8qIERpc2FibGluZyByZWFkIGFuZCB3cml0ZSBtb2RlcyAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfV1JJVEUgfHwKKwkgICAgZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfQ09OVFJPTF0gJiBGTTMxMzBfUlRDX0NPTlRST0xfQklUX1JFQUQpCisJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBGTTMxMzBfUlRDX0NPTlRST0wsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmCisJCQkJfihGTTMxMzBfUlRDX0NPTlRST0xfQklUX1JFQUQgfAorCQkJCQlGTTMxMzBfUlRDX0NPTlRST0xfQklUX1dSSVRFKSk7CisJCWRldl93YXJuKCZjbGllbnQtPmRldiwgIkRpc2FibGluZyBSRUFEIG9yIFdSSVRFIG1vZGUhXG4iKTsKKworCS8qIG9zY2lsbGF0b3Igb2ZmPyAgdHVybiBpdCBvbiwgc28gY2xvY2sgY2FuIHRpY2suICovCisJaWYgKGZtMzEzMC0+cmVnc1tGTTMxMzBfQ0FMX0NPTlRST0xdICYgRk0zMTMwX0NBTF9DT05UUk9MX0JJVF9uT1NDRU4pCisJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBGTTMxMzBfQ0FMX0NPTlRST0wsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX0NBTF9DT05UUk9MXSAmCisJCQkJfihGTTMxMzBfQ0FMX0NPTlRST0xfQklUX25PU0NFTikpOworCisJLyogb3NjaWxsYXRvciBmYXVsdD8gIGNsZWFyIGZsYWcsIGFuZCB3YXJuICovCisJaWYgKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0NPTlRST0xdICYgRk0zMTMwX1JUQ19DT05UUk9MX0JJVF9MQikKKwkJZGV2X3dhcm4oJmNsaWVudC0+ZGV2LCAiTG93IGJhdHRlcnkhXG4iKTsKKworCS8qIG9zY2lsbGF0b3IgZmF1bHQ/ICBjbGVhciBmbGFnLCBhbmQgd2FybiAqLworCWlmIChmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmIEZNMzEzMF9SVENfQ09OVFJPTF9CSVRfUE9SKSB7CisJCWkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoY2xpZW50LCBGTTMxMzBfUlRDX0NPTlRST0wsCisJCQlmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19DT05UUk9MXSAmCisJCQkJfkZNMzEzMF9SVENfQ09OVFJPTF9CSVRfUE9SKTsKKwkJZGV2X3dhcm4oJmNsaWVudC0+ZGV2LCAiU0VUIFRJTUUhXG4iKTsKKwl9CisJLyogQUNTIGlzIGNvbnRyb2xsZWQgYnkgYWxhcm0gKi8KKwlpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhKGNsaWVudCwgRk0zMTMwX0FMQVJNX1dQX0NPTlRST0wsIDB4ODApOworCisJLyogVE9ETyAqLworCS8qIFRPRE8gbmVlZCB0byBzYW5pdHkgY2hlY2sgYWxhcm0gKi8KKwl0bXAgPSBmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19TRUNPTkRTXTsKKwl0bXAgPSBCQ0QyQklOKHRtcCAmIDB4N2YpOworCWlmICh0bXAgPiA2MCkKKwkJZ290byBleGl0X2JhZDsKKwl0bXAgPSBCQ0QyQklOKGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX01JTlVURVNdICYgMHg3Zik7CisJaWYgKHRtcCA+IDYwKQorCQlnb3RvIGV4aXRfYmFkOworCisJdG1wID0gQkNEMkJJTihmbTMxMzAtPnJlZ3NbRk0zMTMwX1JUQ19EQVRFXSAmIDB4M2YpOworCWlmICh0bXAgPT0gMCB8fCB0bXAgPiAzMSkKKwkJZ290byBleGl0X2JhZDsKKworCXRtcCA9IEJDRDJCSU4oZm0zMTMwLT5yZWdzW0ZNMzEzMF9SVENfTU9OVEhTXSAmIDB4MWYpOworCWlmICh0bXAgPT0gMCB8fCB0bXAgPiAxMikKKwkJZ290byBleGl0X2JhZDsKKworCXRtcCA9IGZtMzEzMC0+cmVnc1tGTTMxMzBfUlRDX0hPVVJTXTsKKworCWZtMzEzMC0+ZGF0YV92YWxpZCA9IDE7CisKK2V4aXRfYmFkOgorCWlmICghZm0zMTMwLT5kYXRhX3ZhbGlkKQorCQlkZXZfZGJnKCZjbGllbnQtPmRldiwKKwkJCQkiJXM6ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCIKKwkJCQkiJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJCSJib2d1cyByZWdpc3RlcnMiLAorCQkJZm0zMTMwLT5yZWdzWzBdLCBmbTMxMzAtPnJlZ3NbMV0sCisJCQlmbTMxMzAtPnJlZ3NbMl0sIGZtMzEzMC0+cmVnc1szXSwKKwkJCWZtMzEzMC0+cmVnc1s0XSwgZm0zMTMwLT5yZWdzWzVdLAorCQkJZm0zMTMwLT5yZWdzWzZdLCBmbTMxMzAtPnJlZ3NbN10sCisJCQlmbTMxMzAtPnJlZ3NbOF0sIGZtMzEzMC0+cmVnc1s5XSwKKwkJCWZtMzEzMC0+cmVnc1sweGFdLCBmbTMxMzAtPnJlZ3NbMHhiXSwKKwkJCWZtMzEzMC0+cmVnc1sweGNdLCBmbTMxMzAtPnJlZ3NbMHhkXSwKKwkJCWZtMzEzMC0+cmVnc1sweGVdKTsKKworCS8qIFdlIHdvbid0IGJhaWwgb3V0IGhlcmUgYmVjYXVzZSB3ZSBqdXN0IGdvdCBpbnZhbGlkIGRhdGEuCisJICAgVGltZSBzZXR0aW5nIGZyb20gdS1ib290IGRvZXNuJ3Qgd29yayBhbnl3YXkgKi8KKwlmbTMxMzAtPnJ0YyA9IHJ0Y19kZXZpY2VfcmVnaXN0ZXIoY2xpZW50LT5uYW1lLCAmY2xpZW50LT5kZXYsCisJCQkJJmZtMzEzMF9ydGNfb3BzLCBUSElTX01PRFVMRSk7CisJaWYgKElTX0VSUihmbTMxMzAtPnJ0YykpIHsKKwkJZXJyID0gUFRSX0VSUihmbTMxMzAtPnJ0Yyk7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAorCQkJInVuYWJsZSB0byByZWdpc3RlciB0aGUgY2xhc3MgZGV2aWNlXG4iKTsKKwkJZ290byBleGl0X2ZyZWU7CisJfQorCXJldHVybiAwOworZXhpdF9mcmVlOgorCWtmcmVlKGZtMzEzMCk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIGludCBfX2RldmV4aXQgZm0zMTMwX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBmbTMxMzAgKmZtMzEzMCA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCisJcnRjX2RldmljZV91bnJlZ2lzdGVyKGZtMzEzMC0+cnRjKTsKKwlrZnJlZShmbTMxMzApOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgZm0zMTMwX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZQk9ICJydGMtZm0zMTMwIiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKKwkucHJvYmUJCT0gZm0zMTMwX3Byb2JlLAorCS5yZW1vdmUJCT0gX19kZXZleGl0X3AoZm0zMTMwX3JlbW92ZSksCisJLmlkX3RhYmxlCT0gZm0zMTMwX2lkLAorfTsKKworc3RhdGljIGludCBfX2luaXQgZm0zMTMwX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gaTJjX2FkZF9kcml2ZXIoJmZtMzEzMF9kcml2ZXIpOworfQorbW9kdWxlX2luaXQoZm0zMTMwX2luaXQpOworCitzdGF0aWMgdm9pZCBfX2V4aXQgZm0zMTMwX2V4aXQodm9pZCkKK3sKKwlpMmNfZGVsX2RyaXZlcigmZm0zMTMwX2RyaXZlcik7Cit9Cittb2R1bGVfZXhpdChmbTMxMzBfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiUlRDIGRyaXZlciBmb3IgRk0zMTMwIik7CitNT0RVTEVfQVVUSE9SKCJTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLW00MXQ4MC5jIGIvZHJpdmVycy9ydGMvcnRjLW00MXQ4MC5jCmluZGV4IGEzZTA4ODAuLjBhMTljMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1tNDF0ODAuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMtbTQxdDgwLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvcnRjLmg+CkBAIC02NTUsMTIgKzY1NiwxNiBAQAogc3RhdGljIGludCB3ZHRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpZiAoTUlOT1IoaW5vZGUtPmlfcmRldikgPT0gV0FUQ0hET0dfTUlOT1IpIHsKLQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJndkdF9pc19vcGVuKSkKKwkJbG9ja19rZXJuZWwoKTsKKwkJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgJndkdF9pc19vcGVuKSkgeworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQogCQkvKgogCQkgKglBY3RpdmF0ZQogCQkgKi8KIAkJd2R0X2lzX29wZW4gPSAxOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAwOwogCX0KIAlyZXR1cm4gLUVOT0RFVjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1vbWFwLmMgYi9kcml2ZXJzL3J0Yy9ydGMtb21hcC5jCmluZGV4IDU4ZjgxYzcuLmViMjNkODQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcnRjL3J0Yy1vbWFwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLW9tYXAuYwpAQCAtMjIsNyArMjIsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgogCiAKIC8qIFRoZSBPTUFQMSBSVEMgaXMgYSB5ZWFyL21vbnRoL2RheS9ob3Vycy9taW51dGVzL3NlY29uZHMgQkNEIGNsb2NrCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jIGIvZHJpdmVycy9ydGMvcnRjLXBjZjg1NjMuYwppbmRleCAwZmM0YzM2Li43NDhhNTAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtcGNmODU2My5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wY2Y4NTYzLmMKQEAgLTMwMiw2ICszMDIsNyBAQAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgcGNmODU2M19pZFtdID0gewogCXsgInBjZjg1NjMiLCAwIH0sCisJeyAicnRjODU2NCIsIDAgfSwKIAl7IH0KIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKGkyYywgcGNmODU2M19pZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NDhlZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYwpAQCAtMCwwICsxLDIxNyBAQAorLyoKKyAqICBsaW51eC9kcml2ZXJzL3J0Yy9ydGMtcGwwMzAuYworICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMSBEZWVwIEJsdWUgU29sdXRpb25zIEx0ZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcnRjLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2FtYmEvYnVzLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKworI2RlZmluZSBSVENfRFIJCSgwKQorI2RlZmluZSBSVENfTVIJCSg0KQorI2RlZmluZSBSVENfU1RBVAkoOCkKKyNkZWZpbmUgUlRDX0VPSQkJKDgpCisjZGVmaW5lIFJUQ19MUgkJKDEyKQorI2RlZmluZSBSVENfQ1IJCSgxNikKKyNkZWZpbmUgUlRDX0NSX01JRQkoMSA8PCAwKQorCitzdHJ1Y3QgcGwwMzBfcnRjIHsKKwlzdHJ1Y3QgcnRjX2RldmljZQkqcnRjOworCXZvaWQgX19pb21lbQkJKmJhc2U7Cit9OworCitzdGF0aWMgaXJxcmV0dXJuX3QgcGwwMzBfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfaWQ7CisJd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19FT0kpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworc3RhdGljIGludCBwbDAzMF9vcGVuKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcGwwMzBfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7Cit9CisKK3N0YXRpYyBpbnQgcGwwMzBfaW9jdGwoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gLUVOT0lPQ1RMQ01EOworfQorCitzdGF0aWMgaW50IHBsMDMwX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCXJ0Y190aW1lX3RvX3RtKHJlYWRsKHJ0Yy0+YmFzZSArIFJUQ19NUiksICZhbHJtLT50aW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwbDAzMF9zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRpbWU7CisJaW50IHJldDsKKworCS8qCisJICogQXQgdGhlIG1vbWVudCwgd2UgY2FuIG9ubHkgZGVhbCB3aXRoIG5vbi13aWxkY2FyZGVkIGFsYXJtIHRpbWVzLgorCSAqLworCXJldCA9IHJ0Y192YWxpZF90bSgmYWxybS0+dGltZSk7CisJaWYgKHJldCA9PSAwKQorCQlyZXQgPSBydGNfdG1fdG9fdGltZSgmYWxybS0+dGltZSwgJnRpbWUpOworCWlmIChyZXQgPT0gMCkKKwkJd3JpdGVsKHRpbWUsIHJ0Yy0+YmFzZSArIFJUQ19NUik7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwbDAzMF9yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQoreworCXN0cnVjdCBwbDAzMF9ydGMgKnJ0YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCisJcnRjX3RpbWVfdG9fdG0ocmVhZGwocnRjLT5iYXNlICsgUlRDX0RSKSwgdG0pOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBTZXQgdGhlIFJUQyB0aW1lLiAgVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgYWNjdXJhdGVseSBzZXQKKyAqIHRoZSBwb2ludCBhdCB3aGljaCB0aGUgY291bnRlciB1cGRhdGVzLgorICoKKyAqIEFsc28sIHNpbmNlIFJUQ19MUiBpcyB0cmFuc2ZlcnJlZCB0byBSVENfQ1Igb24gbmV4dCByaXNpbmcKKyAqIGVkZ2Ugb2YgdGhlIDFIeiBjbG9jaywgd2UgbXVzdCB3cml0ZSB0aGUgdGltZSBvbmUgc2Vjb25kCisgKiBpbiBhZHZhbmNlLgorICovCitzdGF0aWMgaW50IHBsMDMwX3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y190aW1lICp0bSkKK3sKKwlzdHJ1Y3QgcGwwMzBfcnRjICpydGMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKwl1bnNpZ25lZCBsb25nIHRpbWU7CisJaW50IHJldDsKKworCXJldCA9IHJ0Y190bV90b190aW1lKHRtLCAmdGltZSk7CisJaWYgKHJldCA9PSAwKQorCQl3cml0ZWwodGltZSArIDEsIHJ0Yy0+YmFzZSArIFJUQ19MUik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHJ0Y19jbGFzc19vcHMgcGwwMzBfb3BzID0geworCS5vcGVuCQk9IHBsMDMwX29wZW4sCisJLnJlbGVhc2UJPSBwbDAzMF9yZWxlYXNlLAorCS5pb2N0bAkJPSBwbDAzMF9pb2N0bCwKKwkucmVhZF90aW1lCT0gcGwwMzBfcmVhZF90aW1lLAorCS5zZXRfdGltZQk9IHBsMDMwX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCT0gcGwwMzBfcmVhZF9hbGFybSwKKwkuc2V0X2FsYXJtCT0gcGwwMzBfc2V0X2FsYXJtLAorfTsKKworc3RhdGljIGludCBwbDAzMF9wcm9iZShzdHJ1Y3QgYW1iYV9kZXZpY2UgKmRldiwgdm9pZCAqaWQpCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjOworCWludCByZXQ7CisKKwlyZXQgPSBhbWJhX3JlcXVlc3RfcmVnaW9ucyhkZXYsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3JlcTsKKworCXJ0YyA9IGttYWxsb2Moc2l6ZW9mKCpydGMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJ0YykgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9ydGM7CisJfQorCisJcnRjLT5iYXNlID0gaW9yZW1hcChkZXYtPnJlcy5zdGFydCwgU1pfNEspOworCWlmICghcnRjLT5iYXNlKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX21hcDsKKwl9CisKKwlfX3Jhd193cml0ZWwoMCwgcnRjLT5iYXNlICsgUlRDX0NSKTsKKwlfX3Jhd193cml0ZWwoMCwgcnRjLT5iYXNlICsgUlRDX0VPSSk7CisKKwlhbWJhX3NldF9kcnZkYXRhKGRldiwgcnRjKTsKKworCXJldCA9IHJlcXVlc3RfaXJxKGRldi0+aXJxWzBdLCBwbDAzMF9pbnRlcnJ1cHQsIElSUUZfRElTQUJMRUQsCisJCQkgICJydGMtcGwwMzAiLCBydGMpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX2lycTsKKworCXJ0Yy0+cnRjID0gcnRjX2RldmljZV9yZWdpc3RlcigicGwwMzAiLCAmZGV2LT5kZXYsICZwbDAzMF9vcHMsCisJCQkJICAgICAgIFRISVNfTU9EVUxFKTsKKwlpZiAoSVNfRVJSKHJ0Yy0+cnRjKSkgeworCQlyZXQgPSBQVFJfRVJSKHJ0Yy0+cnRjKTsKKwkJZ290byBlcnJfcmVnOworCX0KKworCXJldHVybiAwOworCisgZXJyX3JlZzoKKwlmcmVlX2lycShkZXYtPmlycVswXSwgcnRjKTsKKyBlcnJfaXJxOgorCWlvdW5tYXAocnRjLT5iYXNlKTsKKyBlcnJfbWFwOgorCWtmcmVlKHJ0Yyk7CisgZXJyX3J0YzoKKwlhbWJhX3JlbGVhc2VfcmVnaW9ucyhkZXYpOworIGVycl9yZXE6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBwbDAzMF9yZW1vdmUoc3RydWN0IGFtYmFfZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHBsMDMwX3J0YyAqcnRjID0gYW1iYV9nZXRfZHJ2ZGF0YShkZXYpOworCisJYW1iYV9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworCisJd3JpdGVsKDAsIHJ0Yy0+YmFzZSArIFJUQ19DUik7CisKKwlmcmVlX2lycShkZXYtPmlycVswXSwgcnRjKTsKKwlydGNfZGV2aWNlX3VucmVnaXN0ZXIocnRjLT5ydGMpOworCWlvdW5tYXAocnRjLT5iYXNlKTsKKwlrZnJlZShydGMpOworCWFtYmFfcmVsZWFzZV9yZWdpb25zKGRldik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBhbWJhX2lkIHBsMDMwX2lkc1tdID0geworCXsKKwkJLmlkCT0gMHgwMDA0MTAzMCwKKwkJLm1hc2sJPSAweDAwMGZmZmZmLAorCX0sCisJeyAwLCAwIH0sCit9OworCitzdGF0aWMgc3RydWN0IGFtYmFfZHJpdmVyIHBsMDMwX2RyaXZlciA9IHsKKwkuZHJ2CQk9IHsKKwkJLm5hbWUJPSAicnRjLXBsMDMwIiwKKwl9LAorCS5wcm9iZQkJPSBwbDAzMF9wcm9iZSwKKwkucmVtb3ZlCQk9IHBsMDMwX3JlbW92ZSwKKwkuaWRfdGFibGUJPSBwbDAzMF9pZHMsCit9OworCitzdGF0aWMgaW50IF9faW5pdCBwbDAzMF9pbml0KHZvaWQpCit7CisJcmV0dXJuIGFtYmFfZHJpdmVyX3JlZ2lzdGVyKCZwbDAzMF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcGwwMzBfZXhpdCh2b2lkKQoreworCWFtYmFfZHJpdmVyX3VucmVnaXN0ZXIoJnBsMDMwX2RyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KHBsMDMwX2luaXQpOworbW9kdWxlX2V4aXQocGwwMzBfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIlJ1c3NlbGwgS2luZyA8cm1rQGFybS5saW51eC5vcmcudWs+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFSTSBBTUJBIFBMMDMwIFJUQyBEcml2ZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1wbDAzMS5jIGIvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKaW5kZXggMmZkNDllZC4uMDhiNDYxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXBsMDMxLmMKQEAgLTEyLDIzICsxMiwxMiBAQAogICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uCiAgKiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCi0KLSNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9ydGMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KLSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9wbS5oPgotI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgotCiAjaW5jbHVkZSA8bGludXgvYW1iYS9idXMuaD4KLQotI2luY2x1ZGUgPGFzbS9pby5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vcnRjLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAogLyoKICAqIFJlZ2lzdGVyIGRlZmluaXRpb25zCkBAIC0xNDIsMTMgKzEzMSwxMiBAQAogewogCXN0cnVjdCBwbDAzMV9sb2NhbCAqbGRhdGEgPSBkZXZfZ2V0X2RydmRhdGEoJmFkZXYtPmRldik7CiAKLQlpZiAobGRhdGEpIHsKLQkJZGV2X3NldF9kcnZkYXRhKCZhZGV2LT5kZXYsIE5VTEwpOwotCQlmcmVlX2lycShhZGV2LT5pcnFbMF0sIGxkYXRhLT5ydGMpOwotCQlydGNfZGV2aWNlX3VucmVnaXN0ZXIobGRhdGEtPnJ0Yyk7Ci0JCWlvdW5tYXAobGRhdGEtPmJhc2UpOwotCQlrZnJlZShsZGF0YSk7Ci0JfQorCWFtYmFfc2V0X2RydmRhdGEoYWRldiwgTlVMTCk7CisJZnJlZV9pcnEoYWRldi0+aXJxWzBdLCBsZGF0YS0+cnRjKTsKKwlydGNfZGV2aWNlX3VucmVnaXN0ZXIobGRhdGEtPnJ0Yyk7CisJaW91bm1hcChsZGF0YS0+YmFzZSk7CisJa2ZyZWUobGRhdGEpOworCWFtYmFfcmVsZWFzZV9yZWdpb25zKGFkZXYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTgsMTMgKzE0NiwxNSBAQAogCWludCByZXQ7CiAJc3RydWN0IHBsMDMxX2xvY2FsICpsZGF0YTsKIAorCXJldCA9IGFtYmFfcmVxdWVzdF9yZWdpb25zKGFkZXYsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3JlcTsKIAogCWxkYXRhID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHBsMDMxX2xvY2FsKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFsZGF0YSkgewogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKIAl9Ci0JZGV2X3NldF9kcnZkYXRhKCZhZGV2LT5kZXYsIGxkYXRhKTsKIAogCWxkYXRhLT5iYXNlID0gaW9yZW1hcChhZGV2LT5yZXMuc3RhcnQsCiAJCQkgICAgICBhZGV2LT5yZXMuZW5kIC0gYWRldi0+cmVzLnN0YXJ0ICsgMSk7CkBAIC0xNzMsNiArMTYzLDggQEAKIAkJZ290byBvdXRfbm9fcmVtYXA7CiAJfQogCisJYW1iYV9zZXRfZHJ2ZGF0YShhZGV2LCBsZGF0YSk7CisKIAlpZiAocmVxdWVzdF9pcnEoYWRldi0+aXJxWzBdLCBwbDAzMV9pbnRlcnJ1cHQsIElSUUZfRElTQUJMRUQsCiAJCQkicnRjLXBsMDMxIiwgbGRhdGEtPnJ0YykpIHsKIAkJcmV0ID0gLUVJTzsKQEAgLTE5MiwxMCArMTg0LDEyIEBACiAJZnJlZV9pcnEoYWRldi0+aXJxWzBdLCBsZGF0YS0+cnRjKTsKIG91dF9ub19pcnE6CiAJaW91bm1hcChsZGF0YS0+YmFzZSk7CisJYW1iYV9zZXRfZHJ2ZGF0YShhZGV2LCBOVUxMKTsKIG91dF9ub19yZW1hcDoKLQlkZXZfc2V0X2RydmRhdGEoJmFkZXYtPmRldiwgTlVMTCk7CiAJa2ZyZWUobGRhdGEpOwogb3V0OgorCWFtYmFfcmVsZWFzZV9yZWdpb25zKGFkZXYpOworZXJyX3JlcToKIAlyZXR1cm4gcmV0OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtcHBjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtcHBjLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhlOTdlMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1wcGMuYwpAQCAtMCwwICsxLDY5IEBACisvKgorICogUlRDIGRyaXZlciBmb3IgcHBjX21kIFJUQyBmdW5jdGlvbnMKKyAqCisgKiDCqSAyMDA3IFJlZCBIYXQsIEluYy4KKyAqCisgKiBBdXRob3I6IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoZGVwLmg+CisKK3N0YXRpYyBpbnQgcHBjX3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQoreworCXBwY19tZC5nZXRfcnRjX3RpbWUodG0pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBwY19ydGNfc2V0X3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQoreworCXJldHVybiBwcGNfbWQuc2V0X3J0Y190aW1lKHRtKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzIHBwY19ydGNfb3BzID0geworCS5zZXRfdGltZSA9IHBwY19ydGNfc2V0X3RpbWUsCisJLnJlYWRfdGltZSA9IHBwY19ydGNfcmVhZF90aW1lLAorfTsKKworc3RhdGljIHN0cnVjdCBydGNfZGV2aWNlICpydGM7CitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcHBjX3J0Y19wZGV2OworCitzdGF0aWMgaW50IF9faW5pdCBwcGNfcnRjX2luaXQodm9pZCkKK3sKKwlpZiAoIXBwY19tZC5nZXRfcnRjX3RpbWUgfHwgIXBwY19tZC5zZXRfcnRjX3RpbWUpCisJCXJldHVybiAtRU5PREVWOworCisJcHBjX3J0Y19wZGV2ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyX3NpbXBsZSgicHBjLXJ0YyIsIDAsIE5VTEwsIDApOworCWlmIChJU19FUlIocHBjX3J0Y19wZGV2KSkKKwkJcmV0dXJuIFBUUl9FUlIocHBjX3J0Y19wZGV2KTsKKworCXJ0YyA9IHJ0Y19kZXZpY2VfcmVnaXN0ZXIoInBwY19tZCIsICZwcGNfcnRjX3BkZXYtPmRldiwKKwkJCQkgICZwcGNfcnRjX29wcywgVEhJU19NT0RVTEUpOworCWlmIChJU19FUlIocnRjKSkgeworCQlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihwcGNfcnRjX3BkZXYpOworCQlyZXR1cm4gUFRSX0VSUihydGMpOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgcHBjX3J0Y19leGl0KHZvaWQpCit7CisJcnRjX2RldmljZV91bnJlZ2lzdGVyKHJ0Yyk7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIocHBjX3J0Y19wZGV2KTsKK30KKworbW9kdWxlX2luaXQocHBjX3J0Y19pbml0KTsKK21vZHVsZV9leGl0KHBwY19ydGNfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9BVVRIT1IoIkRhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiR2VuZXJpYyBSVEMgY2xhc3MgZHJpdmVyIGZvciBQb3dlclBDIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3J0Yy9ydGMtczNjLmMgYi9kcml2ZXJzL3J0Yy9ydGMtczNjLmMKaW5kZXggZjI2ZTBjYS4uZmVkODZlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvcnRjLXMzYy5jCisrKyBiL2RyaXZlcnMvcnRjL3J0Yy1zM2MuYwpAQCAtMjYsMTAgKzI2LDYgQEAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vcnRjLmg+Ci0KLSNpbmNsdWRlIDxhc20vbWFjaC90aW1lLmg+Ci0KICNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1ydGMuaD4KIAogLyogSSBoYXZlIHlldCB0byBmaW5kIGFuIFMzQyBpbXBsZW1lbnRhdGlvbiB3aXRoIG1vcmUgdGhhbiBvbmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL3J0Yy1zYTExMDAuYyBiL2RyaXZlcnMvcnRjL3J0Yy1zYTExMDAuYwppbmRleCA4MmY2MmQyLi5mNDcyOTRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMtc2ExMTAwLmMKKysrIGIvZHJpdmVycy9ydGMvcnRjLXNhMTEwMC5jCkBAIC0zMyw3ICszMyw2IEBACiAKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3J0Yy5oPgogCiAjaWZkZWYgQ09ORklHX0FSQ0hfUFhBCiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KQEAgLTQ3LDYgKzQ2LDQyIEBACiBzdGF0aWMgc3RydWN0IHJ0Y190aW1lIHJ0Y19hbGFybTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soc2ExMTAwX3J0Y19sb2NrKTsKIAorc3RhdGljIGlubGluZSBpbnQgcnRjX3BlcmlvZGljX2FsYXJtKHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJcmV0dXJuICAodG0tPnRtX3llYXIgPT0gLTEpIHx8CisJCSgodW5zaWduZWQpdG0tPnRtX21vbiA+PSAxMikgfHwKKwkJKCh1bnNpZ25lZCkodG0tPnRtX21kYXkgLSAxKSA+PSAzMSkgfHwKKwkJKCh1bnNpZ25lZCl0bS0+dG1faG91ciA+IDIzKSB8fAorCQkoKHVuc2lnbmVkKXRtLT50bV9taW4gPiA1OSkgfHwKKwkJKCh1bnNpZ25lZCl0bS0+dG1fc2VjID4gNTkpOworfQorCisvKgorICogQ2FsY3VsYXRlIHRoZSBuZXh0IGFsYXJtIHRpbWUgZ2l2ZW4gdGhlIHJlcXVlc3RlZCBhbGFybSB0aW1lIG1hc2sKKyAqIGFuZCB0aGUgY3VycmVudCB0aW1lLgorICovCitzdGF0aWMgdm9pZCBydGNfbmV4dF9hbGFybV90aW1lKHN0cnVjdCBydGNfdGltZSAqbmV4dCwgc3RydWN0IHJ0Y190aW1lICpub3csIHN0cnVjdCBydGNfdGltZSAqYWxybSkKK3sKKwl1bnNpZ25lZCBsb25nIG5leHRfdGltZTsKKwl1bnNpZ25lZCBsb25nIG5vd190aW1lOworCisJbmV4dC0+dG1feWVhciA9IG5vdy0+dG1feWVhcjsKKwluZXh0LT50bV9tb24gPSBub3ctPnRtX21vbjsKKwluZXh0LT50bV9tZGF5ID0gbm93LT50bV9tZGF5OworCW5leHQtPnRtX2hvdXIgPSBhbHJtLT50bV9ob3VyOworCW5leHQtPnRtX21pbiA9IGFscm0tPnRtX21pbjsKKwluZXh0LT50bV9zZWMgPSBhbHJtLT50bV9zZWM7CisKKwlydGNfdG1fdG9fdGltZShub3csICZub3dfdGltZSk7CisJcnRjX3RtX3RvX3RpbWUobmV4dCwgJm5leHRfdGltZSk7CisKKwlpZiAobmV4dF90aW1lIDwgbm93X3RpbWUpIHsKKwkJLyogQWR2YW5jZSBvbmUgZGF5ICovCisJCW5leHRfdGltZSArPSA2MCAqIDYwICogMjQ7CisJCXJ0Y190aW1lX3RvX3RtKG5leHRfdGltZSwgbmV4dCk7CisJfQorfQorCiBzdGF0aWMgaW50IHJ0Y191cGRhdGVfYWxhcm0oc3RydWN0IHJ0Y190aW1lICphbHJtKQogewogCXN0cnVjdCBydGNfdGltZSBhbGFybV90bSwgbm93X3RtOwpAQCAtMzMxLDE0ICszNjYsMTQgQEAKIAkJUkNOUiA9IDA7CiAJfQogCisJZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDEpOworCiAJcnRjID0gcnRjX2RldmljZV9yZWdpc3RlcihwZGV2LT5uYW1lLCAmcGRldi0+ZGV2LCAmc2ExMTAwX3J0Y19vcHMsCiAJCQkJVEhJU19NT0RVTEUpOwogCiAJaWYgKElTX0VSUihydGMpKQogCQlyZXR1cm4gUFRSX0VSUihydGMpOwogCi0JZGV2aWNlX2luaXRfd2FrZXVwKCZwZGV2LT5kZXYsIDEpOwotCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcnRjKTsKIAogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLXgxMjA1LmMgYi9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYwppbmRleCBlYWY1NTk0Li43ZGNmYmExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYworKysgYi9kcml2ZXJzL3J0Yy9ydGMteDEyMDUuYwpAQCAtNzEsNiArNzEsNyBAQAogI2RlZmluZSBYMTIwNV9TUl9SVENGCQkweDAxCS8qIENsb2NrIGZhaWx1cmUgKi8KICNkZWZpbmUgWDEyMDVfU1JfV0VMCQkweDAyCS8qIFdyaXRlIEVuYWJsZSBMYXRjaCAqLwogI2RlZmluZSBYMTIwNV9TUl9SV0VMCQkweDA0CS8qIFJlZ2lzdGVyIFdyaXRlIEVuYWJsZSAqLworI2RlZmluZSBYMTIwNV9TUl9BTDAJCTB4MjAJLyogQWxhcm0gMCBtYXRjaCAqLwogCiAjZGVmaW5lIFgxMjA1X0RUUl9EVFIwCQkweDAxCiAjZGVmaW5lIFgxMjA1X0RUUl9EVFIxCQkweDAyCkBAIC03OCw2ICs3OSw4IEBACiAKICNkZWZpbmUgWDEyMDVfSFJfTUlMCQkweDgwCS8qIFNldCBpbiBjY3IuaG91ciBmb3IgMjQgaHIgbW9kZSAqLwogCisjZGVmaW5lIFgxMjA1X0lOVF9BTDBFCQkweDIwCS8qIEFsYXJtIDAgZW5hYmxlICovCisKIHN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciB4MTIwNV9kcml2ZXI7CiAKIC8qCkBAIC04OSw4ICs5Miw4IEBACiAJCQkJdW5zaWduZWQgY2hhciByZWdfYmFzZSkKIHsKIAl1bnNpZ25lZCBjaGFyIGR0X2FkZHJbMl0gPSB7IDAsIHJlZ19iYXNlIH07Ci0KIAl1bnNpZ25lZCBjaGFyIGJ1Zls4XTsKKwlpbnQgaTsKIAogCXN0cnVjdCBpMmNfbXNnIG1zZ3NbXSA9IHsKIAkJeyBjbGllbnQtPmFkZHIsIDAsIDIsIGR0X2FkZHIgfSwJLyogc2V0dXAgcmVhZCBwdHIgKi8KQEAgLTk4LDcgKzEwMSw3IEBACiAJfTsKIAogCS8qIHJlYWQgZGF0ZSByZWdpc3RlcnMgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTExMCw2ICsxMTMsMTEgQEAKIAkJYnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSwgYnVmWzNdLAogCQlidWZbNF0sIGJ1Zls1XSwgYnVmWzZdLCBidWZbN10pOwogCisJLyogTWFzayBvdXQgdGhlIGVuYWJsZSBiaXRzIGlmIHRoZXNlIGFyZSBhbGFybSByZWdpc3RlcnMgKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkKKwkJZm9yIChpID0gMDsgaSA8PSA0OyBpKyspCisJCQlidWZbaV0gJj0gMHg3RjsKKwogCXRtLT50bV9zZWMgPSBCQ0QyQklOKGJ1ZltDQ1JfU0VDXSk7CiAJdG0tPnRtX21pbiA9IEJDRDJCSU4oYnVmW0NDUl9NSU5dKTsKIAl0bS0+dG1faG91ciA9IEJDRDJCSU4oYnVmW0NDUl9IT1VSXSAmIDB4M0YpOyAvKiBociBpcyAwLTIzICovCkBAIC0xMzgsNyArMTQ2LDcgQEAKIAl9OwogCiAJLyogcmVhZCBzdGF0dXMgcmVnaXN0ZXIgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTE0NywxMCArMTU1LDExIEBACiB9CiAKIHN0YXRpYyBpbnQgeDEyMDVfc2V0X2RhdGV0aW1lKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIHN0cnVjdCBydGNfdGltZSAqdG0sCi0JCQkJaW50IGRhdGV0b28sIHU4IHJlZ19iYXNlKQorCQkJaW50IGRhdGV0b28sIHU4IHJlZ19iYXNlLCB1bnNpZ25lZCBjaGFyIGFsbV9lbmFibGUpCiB7Ci0JaW50IGksIHhmZXI7CisJaW50IGksIHhmZXIsIG5ieXRlczsKIAl1bnNpZ25lZCBjaGFyIGJ1Zls4XTsKKwl1bnNpZ25lZCBjaGFyIHJkYXRhWzEwXSA9IHsgMCwgcmVnX2Jhc2UgfTsKIAogCXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHdlbFszXSA9IHsgMCwgWDEyMDVfUkVHX1NSLAogCQkJCQkJWDEyMDVfU1JfV0VMIH07CkBAIC0xODksNiArMTk4LDExIEBACiAJCWJ1ZltDQ1JfWTJLXSA9IEJJTjJCQ0QodG0tPnRtX3llYXIgLyAxMDApOwogCX0KIAorCS8qIElmIHdyaXRpbmcgYWxhcm0gcmVnaXN0ZXJzLCBzZXQgY29tcGFyZSBiaXRzIG9uIHJlZ2lzdGVycyAwLTQgKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkKKwkJZm9yIChpID0gMDsgaSA8PSA0OyBpKyspCisJCQlidWZbaV0gfD0gMHg4MDsKKwogCS8qIHRoaXMgc2VxdWVuY2UgaXMgcmVxdWlyZWQgdG8gdW5sb2NrIHRoZSBjaGlwICovCiAJaWYgKCh4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgd2VsLCAzKSkgIT0gMykgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiB3ZWwgLSAlZFxuIiwgX19mdW5jX18sIHhmZXIpOwpAQCAtMjAwLDE5ICsyMTQsNTcgQEAKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JLyogd3JpdGUgcmVnaXN0ZXIncyBkYXRhICovCi0JZm9yIChpID0gMDsgaSA8IChkYXRldG9vID8gOCA6IDMpOyBpKyspIHsKLQkJdW5zaWduZWQgY2hhciByZGF0YVszXSA9IHsgMCwgcmVnX2Jhc2UgKyBpLCBidWZbaV0gfTsKIAotCQl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcmRhdGEsIDMpOworCS8qIHdyaXRlIHJlZ2lzdGVyJ3MgZGF0YSAqLworCWlmIChkYXRldG9vKQorCQluYnl0ZXMgPSA4OworCWVsc2UKKwkJbmJ5dGVzID0gMzsKKwlmb3IgKGkgPSAwOyBpIDwgbmJ5dGVzOyBpKyspCisJCXJkYXRhWzIraV0gPSBidWZbaV07CisKKwl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcmRhdGEsIG5ieXRlcysyKTsKKwlpZiAoeGZlciAhPSBuYnl0ZXMrMikgeworCQlkZXZfZXJyKCZjbGllbnQtPmRldiwKKwkJCSIlczogcmVzdWx0PSVkIGFkZHI9JTAyeCwgZGF0YT0lMDJ4XG4iLAorCQkJX19mdW5jX18sCisJCQkgeGZlciwgcmRhdGFbMV0sIHJkYXRhWzJdKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCisJLyogSWYgd2Ugd3JvdGUgdG8gdGhlIG5vbnZvbGF0aWxlIHJlZ2lvbiwgd2FpdCAxMG1zZWMgZm9yIHdyaXRlIGN5Y2xlKi8KKwlpZiAocmVnX2Jhc2UgPCBYMTIwNV9DQ1JfQkFTRSkgeworCQl1bnNpZ25lZCBjaGFyIGFsMGVbM10gPSB7IDAsIFgxMjA1X1JFR19JTlQsIDAgfTsKKworCQltc2xlZXAoMTApOworCisJCS8qIC4uLmFuZCBzZXQgb3IgY2xlYXIgdGhlIEFMMEUgYml0IGluIHRoZSBJTlQgcmVnaXN0ZXIgKi8KKworCQkvKiBOZWVkIHRvIHNldCBSV0VMIGFnYWluIGFzIHRoZSB3cml0ZSBoYXMgY2xlYXJlZCBpdCAqLworCQl4ZmVyID0gaTJjX21hc3Rlcl9zZW5kKGNsaWVudCwgcndlbCwgMyk7CiAJCWlmICh4ZmVyICE9IDMpIHsKIAkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LAotCQkJCSIlczogeGZlcj0lZCBhZGRyPSUwMngsIGRhdGE9JTAyeFxuIiwKKwkJCQkiJXM6IGFsb2UgcndlbCAtICVkXG4iLAogCQkJCV9fZnVuY19fLAotCQkJCSB4ZmVyLCByZGF0YVsxXSwgcmRhdGFbMl0pOworCQkJCXhmZXIpOwogCQkJcmV0dXJuIC1FSU87CiAJCX0KLQl9OworCisJCWlmIChhbG1fZW5hYmxlKQorCQkJYWwwZVsyXSA9IFgxMjA1X0lOVF9BTDBFOworCisJCXhmZXIgPSBpMmNfbWFzdGVyX3NlbmQoY2xpZW50LCBhbDBlLCAzKTsKKwkJaWYgKHhmZXIgIT0gMykgeworCQkJZGV2X2VycigmY2xpZW50LT5kZXYsCisJCQkJIiVzOiBhbDBlIC0gJWRcbiIsCisJCQkJX19mdW5jX18sCisJCQkJeGZlcik7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCisJCS8qIGFuZCB3YWl0IDEwbXNlYyBhZ2FpbiBmb3IgdGhpcyB3cml0ZSB0byBjb21wbGV0ZSAqLworCQltc2xlZXAoMTApOworCX0KIAogCS8qIGRpc2FibGUgZnVydGhlciB3cml0ZXMgKi8KIAlpZiAoKHhmZXIgPSBpMmNfbWFzdGVyX3NlbmQoY2xpZW50LCBkaXN3ZSwgMykpICE9IDMpIHsKQEAgLTIzMCw5ICsyODIsOSBAQAogCiAJdG0udG1faG91ciA9IHRtLnRtX21pbiA9IHRtLnRtX3NlYyA9IDA7CiAKLQlpZiAoKGVyciA9IHgxMjA1X3NldF9kYXRldGltZShjbGllbnQsICZ0bSwgMCwgWDEyMDVfQ0NSX0JBU0UpKSA8IDApCi0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LAotCQkJInVuYWJsZSB0byByZXN0YXJ0IHRoZSBvc2NpbGxhdG9yXG4iKTsKKwllcnIgPSB4MTIwNV9zZXRfZGF0ZXRpbWUoY2xpZW50LCAmdG0sIDAsIFgxMjA1X0NDUl9CQVNFLCAwKTsKKwlpZiAoZXJyIDwgMCkKKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJ1bmFibGUgdG8gcmVzdGFydCB0aGUgb3NjaWxsYXRvclxuIik7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtMjQ4LDcgKzMwMCw3IEBACiAJfTsKIAogCS8qIHJlYWQgZHRyIHJlZ2lzdGVyICovCi0JaWYgKChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikpICE9IDIpIHsKKwlpZiAoaTJjX3RyYW5zZmVyKGNsaWVudC0+YWRhcHRlciwgJm1zZ3NbMF0sIDIpICE9IDIpIHsKIAkJZGV2X2VycigmY2xpZW50LT5kZXYsICIlczogcmVhZCBlcnJvclxuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVJTzsKIAl9CkBAIC0yODAsNyArMzMyLDcgQEAKIAl9OwogCiAJLyogcmVhZCBhdHIgcmVnaXN0ZXIgKi8KLQlpZiAoKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSkgIT0gMikgeworCWlmIChpMmNfdHJhbnNmZXIoY2xpZW50LT5hZGFwdGVyLCAmbXNnc1swXSwgMikgIT0gMikgewogCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgIiVzOiByZWFkIGVycm9yXG4iLCBfX2Z1bmNfXyk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTQwMywxNCArNDU1LDMzIEBACiAKIHN0YXRpYyBpbnQgeDEyMDVfcnRjX3JlYWRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKIHsKLQlyZXR1cm4geDEyMDVfZ2V0X2RhdGV0aW1lKHRvX2kyY19jbGllbnQoZGV2KSwKLQkJJmFscm0tPnRpbWUsIFgxMjA1X0FMTTBfQkFTRSk7CisJaW50IGVycjsKKwl1bnNpZ25lZCBjaGFyIGludHJlZywgc3RhdHVzOworCXN0YXRpYyB1bnNpZ25lZCBjaGFyIGludF9hZGRyWzJdID0geyAwLCBYMTIwNV9SRUdfSU5UIH07CisJc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCA9IHRvX2kyY19jbGllbnQoZGV2KTsKKwlzdHJ1Y3QgaTJjX21zZyBtc2dzW10gPSB7CisJCXsgY2xpZW50LT5hZGRyLCAwLCAyLCBpbnRfYWRkciB9LCAgICAgICAgLyogc2V0dXAgcmVhZCBwdHIgKi8KKwkJeyBjbGllbnQtPmFkZHIsIEkyQ19NX1JELCAxLCAmaW50cmVnIH0sICAvKiByZWFkIElOVCByZWdpc3RlciAqLworCX07CisKKwkvKiByZWFkIGludGVycnVwdCByZWdpc3RlciBhbmQgc3RhdHVzIHJlZ2lzdGVyICovCisJaWYgKGkyY190cmFuc2ZlcihjbGllbnQtPmFkYXB0ZXIsICZtc2dzWzBdLCAyKSAhPSAyKSB7CisJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiJXM6IHJlYWQgZXJyb3JcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCWVyciA9IHgxMjA1X2dldF9zdGF0dXMoY2xpZW50LCAmc3RhdHVzKTsKKwlpZiAoZXJyID09IDApIHsKKwkJYWxybS0+cGVuZGluZyA9IChzdGF0dXMgJiBYMTIwNV9TUl9BTDApID8gMSA6IDA7CisJCWFscm0tPmVuYWJsZWQgPSAoaW50cmVnICYgWDEyMDVfSU5UX0FMMEUpID8gMSA6IDA7CisJCWVyciA9IHgxMjA1X2dldF9kYXRldGltZShjbGllbnQsICZhbHJtLT50aW1lLCBYMTIwNV9BTE0wX0JBU0UpOworCX0KKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19zZXRfYWxhcm0oc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3drYWxybSAqYWxybSkKIHsKIAlyZXR1cm4geDEyMDVfc2V0X2RhdGV0aW1lKHRvX2kyY19jbGllbnQoZGV2KSwKLQkJJmFscm0tPnRpbWUsIDEsIFgxMjA1X0FMTTBfQkFTRSk7CisJCSZhbHJtLT50aW1lLCAxLCBYMTIwNV9BTE0wX0JBU0UsIGFscm0tPmVuYWJsZWQpOwogfQogCiBzdGF0aWMgaW50IHgxMjA1X3J0Y19yZWFkX3RpbWUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgcnRjX3RpbWUgKnRtKQpAQCAtNDIyLDcgKzQ5Myw3IEBACiBzdGF0aWMgaW50IHgxMjA1X3J0Y19zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCiB7CiAJcmV0dXJuIHgxMjA1X3NldF9kYXRldGltZSh0b19pMmNfY2xpZW50KGRldiksCi0JCXRtLCAxLCBYMTIwNV9DQ1JfQkFTRSk7CisJCXRtLCAxLCBYMTIwNV9DQ1JfQkFTRSwgMCk7CiB9CiAKIHN0YXRpYyBpbnQgeDEyMDVfcnRjX3Byb2Moc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZC5jCmluZGV4IDhiYTNmMTMuLjFiNmM1MmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2QuYwpAQCAtNjMsNiArNjMsNyBAQAogICovCiBzdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3QgZGFzZF9pbml0X3dhaXRxOwogc3RhdGljIHdhaXRfcXVldWVfaGVhZF90IGRhc2RfZmx1c2hfd3E7CitzdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3QgZ2VuZXJpY193YWl0cTsKIAogLyoKICAqIEFsbG9jYXRlIG1lbW9yeSBmb3IgYSBuZXcgZGV2aWNlIHN0cnVjdHVyZS4KQEAgLTk5NCwxNCArOTk1LDE0IEBACiAJbm93ID0gZ2V0X2Nsb2NrKCk7CiAKIAlEQkZfRVZFTlQoREJGX0VSUiwgIkludGVycnVwdDogYnVzX2lkICVzIENTL0RTICUwNHggaXAgJTA4eCIsCi0JCSAgY2Rldi0+ZGV2LmJ1c19pZCwgKChpcmItPnNjc3cuY3N0YXQ8PDgpfGlyYi0+c2Nzdy5kc3RhdCksCi0JCSAgKHVuc2lnbmVkIGludCkgaW50cGFybSk7CisJCSAgY2Rldi0+ZGV2LmJ1c19pZCwgKChpcmItPnNjc3cuY21kLmNzdGF0IDw8IDgpIHwKKwkJICBpcmItPnNjc3cuY21kLmRzdGF0KSwgKHVuc2lnbmVkIGludCkgaW50cGFybSk7CiAKIAkvKiBjaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0cyAqLwogCWNxciA9IChzdHJ1Y3QgZGFzZF9jY3dfcmVxICopIGludHBhcm07Ci0JaWYgKCFjcXIgfHwgKChpcmItPnNjc3cuY2MgPT0gMSkgJiYKLQkJICAgICAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYKLQkJICAgICAoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpICkgeworCWlmICghY3FyIHx8ICgoaXJiLT5zY3N3LmNtZC5jYyA9PSAxKSAmJgorCQkgICAgIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYKKwkJICAgICAoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkgewogCQlpZiAoY3FyICYmIGNxci0+c3RhdHVzID09IERBU0RfQ1FSX0lOX0lPKQogCQkJY3FyLT5zdGF0dXMgPSBEQVNEX0NRUl9RVUVVRUQ7CiAJCWRldmljZSA9IGRhc2RfZGV2aWNlX2Zyb21fY2Rldl9sb2NrZWQoY2Rldik7CkBAIC0xMDI0LDcgKzEwMjUsNyBAQAogCiAJLyogQ2hlY2sgZm9yIGNsZWFyIHBlbmRpbmcgKi8KIAlpZiAoY3FyLT5zdGF0dXMgPT0gREFTRF9DUVJfQ0xFQVJfUEVORElORyAmJgotCSAgICBpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CisJICAgIGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CiAJCWNxci0+c3RhdHVzID0gREFTRF9DUVJfQ0xFQVJFRDsKIAkJZGFzZF9kZXZpY2VfY2xlYXJfdGltZXIoZGV2aWNlKTsKIAkJd2FrZV91cCgmZGFzZF9mbHVzaF93cSk7CkBAIC0xMDQwLDExICsxMDQxLDExIEBACiAJCXJldHVybjsKIAl9CiAJREJGX0RFVl9FVkVOVChEQkZfREVCVUcsIGRldmljZSwgIkludDogQ1MvRFMgMHglMDR4IGZvciBjcXIgJXAiLAotCQkgICAgICAoKGlyYi0+c2Nzdy5jc3RhdCA8PCA4KSB8IGlyYi0+c2Nzdy5kc3RhdCksIGNxcik7CisJCSAgICAgICgoaXJiLT5zY3N3LmNtZC5jc3RhdCA8PCA4KSB8IGlyYi0+c2Nzdy5jbWQuZHN0YXQpLCBjcXIpOwogCW5leHQgPSBOVUxMOwogCWV4cGlyZXMgPSAwOwotCWlmIChpcmItPnNjc3cuZHN0YXQgPT0gKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSAmJgotCSAgICBpcmItPnNjc3cuY3N0YXQgPT0gMCAmJiAhaXJiLT5lc3cuZXN3MC5lcncuY29ucykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCkgJiYKKwkgICAgaXJiLT5zY3N3LmNtZC5jc3RhdCA9PSAwICYmICFpcmItPmVzdy5lc3cwLmVydy5jb25zKSB7CiAJCS8qIHJlcXVlc3Qgd2FzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgKi8KIAkJY3FyLT5zdGF0dXMgPSBEQVNEX0NRUl9TVUNDRVNTOwogCQljcXItPnN0b3BjbGsgPSBub3c7CkBAIC0xMTUxLDExICsxMTUyLDE1IEBACiAJc3RydWN0IGxpc3RfaGVhZCAqbCwgKm47CiAJc3RydWN0IGRhc2RfY2N3X3JlcSAqY3FyOwogCXN0cnVjdCBkYXNkX2Jsb2NrICpibG9jazsKKwl2b2lkICgqY2FsbGJhY2spKHN0cnVjdCBkYXNkX2Njd19yZXEgKiwgdm9pZCAqZGF0YSk7CisJdm9pZCAqY2FsbGJhY2tfZGF0YTsKIAogCWxpc3RfZm9yX2VhY2hfc2FmZShsLCBuLCBmaW5hbF9xdWV1ZSkgewogCQljcXIgPSBsaXN0X2VudHJ5KGwsIHN0cnVjdCBkYXNkX2Njd19yZXEsIGRldmxpc3QpOwogCQlsaXN0X2RlbF9pbml0KCZjcXItPmRldmxpc3QpOwogCQlibG9jayA9IGNxci0+YmxvY2s7CisJCWNhbGxiYWNrID0gY3FyLT5jYWxsYmFjazsKKwkJY2FsbGJhY2tfZGF0YSA9IGNxci0+Y2FsbGJhY2tfZGF0YTsKIAkJaWYgKGJsb2NrKQogCQkJc3Bpbl9sb2NrX2JoKCZibG9jay0+cXVldWVfbG9jayk7CiAJCXN3aXRjaCAoY3FyLT5zdGF0dXMpIHsKQEAgLTExNzYsNyArMTE4MSw3IEBACiAJCQlCVUcoKTsKIAkJfQogCQlpZiAoY3FyLT5jYWxsYmFjayAhPSBOVUxMKQotCQkJKGNxci0+Y2FsbGJhY2spKGNxciwgY3FyLT5jYWxsYmFja19kYXRhKTsKKwkJCShjYWxsYmFjaykoY3FyLCBjYWxsYmFja19kYXRhKTsKIAkJaWYgKGJsb2NrKQogCQkJc3Bpbl91bmxvY2tfYmgoJmJsb2NrLT5xdWV1ZV9sb2NrKTsKIAl9CkBAIC0xNDA2LDE3ICsxNDExLDE1IEBACiAgKi8KIGludCBkYXNkX3NsZWVwX29uKHN0cnVjdCBkYXNkX2Njd19yZXEgKmNxcikKIHsKLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X3E7CiAJc3RydWN0IGRhc2RfZGV2aWNlICpkZXZpY2U7CiAJaW50IHJjOwogCiAJZGV2aWNlID0gY3FyLT5zdGFydGRldjsKIAotCWluaXRfd2FpdHF1ZXVlX2hlYWQgKCZ3YWl0X3EpOwogCWNxci0+Y2FsbGJhY2sgPSBkYXNkX3dha2V1cF9jYjsKLQljcXItPmNhbGxiYWNrX2RhdGEgPSAodm9pZCAqKSAmd2FpdF9xOworCWNxci0+Y2FsbGJhY2tfZGF0YSA9ICh2b2lkICopICZnZW5lcmljX3dhaXRxOwogCWRhc2RfYWRkX3JlcXVlc3RfdGFpbChjcXIpOwotCXdhaXRfZXZlbnQod2FpdF9xLCBfd2FpdF9mb3Jfd2FrZXVwKGNxcikpOworCXdhaXRfZXZlbnQoZ2VuZXJpY193YWl0cSwgX3dhaXRfZm9yX3dha2V1cChjcXIpKTsKIAogCS8qIFJlcXVlc3Qgc3RhdHVzIGlzIGVpdGhlciBkb25lIG9yIGZhaWxlZC4gKi8KIAlyYyA9IChjcXItPnN0YXR1cyA9PSBEQVNEX0NRUl9ET05FKSA/IDAgOiAtRUlPOwpAQCAtMTQyOSwyMCArMTQzMiwxOCBAQAogICovCiBpbnQgZGFzZF9zbGVlcF9vbl9pbnRlcnJ1cHRpYmxlKHN0cnVjdCBkYXNkX2Njd19yZXEgKmNxcikKIHsKLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X3E7CiAJc3RydWN0IGRhc2RfZGV2aWNlICpkZXZpY2U7CiAJaW50IHJjOwogCiAJZGV2aWNlID0gY3FyLT5zdGFydGRldjsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkICgmd2FpdF9xKTsKIAljcXItPmNhbGxiYWNrID0gZGFzZF93YWtldXBfY2I7Ci0JY3FyLT5jYWxsYmFja19kYXRhID0gKHZvaWQgKikgJndhaXRfcTsKKwljcXItPmNhbGxiYWNrX2RhdGEgPSAodm9pZCAqKSAmZ2VuZXJpY193YWl0cTsKIAlkYXNkX2FkZF9yZXF1ZXN0X3RhaWwoY3FyKTsKLQlyYyA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSh3YWl0X3EsIF93YWl0X2Zvcl93YWtldXAoY3FyKSk7CisJcmMgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZ2VuZXJpY193YWl0cSwgX3dhaXRfZm9yX3dha2V1cChjcXIpKTsKIAlpZiAocmMgPT0gLUVSRVNUQVJUU1lTKSB7CiAJCWRhc2RfY2FuY2VsX3JlcShjcXIpOwogCQkvKiB3YWl0IChub24taW50ZXJydXB0aWJsZSkgZm9yIGZpbmFsIHN0YXR1cyAqLwotCQl3YWl0X2V2ZW50KHdhaXRfcSwgX3dhaXRfZm9yX3dha2V1cChjcXIpKTsKKwkJd2FpdF9ldmVudChnZW5lcmljX3dhaXRxLCBfd2FpdF9mb3Jfd2FrZXVwKGNxcikpOwogCX0KIAlyYyA9IChjcXItPnN0YXR1cyA9PSBEQVNEX0NRUl9ET05FKSA/IDAgOiAtRUlPOwogCXJldHVybiByYzsKQEAgLTE0NjYsNyArMTQ2Nyw2IEBACiAKIGludCBkYXNkX3NsZWVwX29uX2ltbWVkaWF0bHkoc3RydWN0IGRhc2RfY2N3X3JlcSAqY3FyKQogewotCXdhaXRfcXVldWVfaGVhZF90IHdhaXRfcTsKIAlzdHJ1Y3QgZGFzZF9kZXZpY2UgKmRldmljZTsKIAlpbnQgcmM7CiAKQEAgLTE0NzgsOSArMTQ3OCw4IEBACiAJCXJldHVybiByYzsKIAl9CiAKLQlpbml0X3dhaXRxdWV1ZV9oZWFkICgmd2FpdF9xKTsKIAljcXItPmNhbGxiYWNrID0gZGFzZF93YWtldXBfY2I7Ci0JY3FyLT5jYWxsYmFja19kYXRhID0gKHZvaWQgKikgJndhaXRfcTsKKwljcXItPmNhbGxiYWNrX2RhdGEgPSAodm9pZCAqKSAmZ2VuZXJpY193YWl0cTsKIAljcXItPnN0YXR1cyA9IERBU0RfQ1FSX1FVRVVFRDsKIAlsaXN0X2FkZCgmY3FyLT5kZXZsaXN0LCAmZGV2aWNlLT5jY3dfcXVldWUpOwogCkBAIC0xNDg5LDcgKzE0ODgsNyBAQAogCiAJc3Bpbl91bmxvY2tfaXJxKGdldF9jY3dkZXZfbG9jayhkZXZpY2UtPmNkZXYpKTsKIAotCXdhaXRfZXZlbnQod2FpdF9xLCBfd2FpdF9mb3Jfd2FrZXVwKGNxcikpOworCXdhaXRfZXZlbnQoZ2VuZXJpY193YWl0cSwgX3dhaXRfZm9yX3dha2V1cChjcXIpKTsKIAogCS8qIFJlcXVlc3Qgc3RhdHVzIGlzIGVpdGhlciBkb25lIG9yIGZhaWxlZC4gKi8KIAlyYyA9IChjcXItPnN0YXR1cyA9PSBEQVNEX0NRUl9ET05FKSA/IDAgOiAtRUlPOwpAQCAtMjQzMCw2ICsyNDI5LDcgQEAKIAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRhc2RfaW5pdF93YWl0cSk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZGFzZF9mbHVzaF93cSk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZ2VuZXJpY193YWl0cSk7CiAKIAkvKiByZWdpc3RlciAnY29tbW9uJyBEQVNEIGRlYnVnIGFyZWEsIHVzZWQgZm9yIGFsbCBEQkZfWFhYIGNhbGxzICovCiAJZGFzZF9kZWJ1Z19hcmVhID0gZGVidWdfcmVnaXN0ZXIoImRhc2QiLCAxLCAxLCA4ICogc2l6ZW9mKGxvbmcpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkXzM5OTBfZXJwLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF8zOTkwX2VycC5jCmluZGV4IGU2NzAwZGYuLjVjNmU2ZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkXzM5OTBfZXJwLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfMzk5MF9lcnAuYwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAKIAogCS8qIGRldGVybWluZSB0aGUgYWRkcmVzcyBvZiB0aGUgQ0NXIHRvIGJlIHJlc3RhcnRlZCAqLwogCS8qIEltcHJlY2lzZSBlbmRpbmcgaXMgbm90IHNldCAtPiBhZGRyIGZyb20gSVJCLVNDU1cgKi8KLQljcGEgPSBkZWZhdWx0X2VycC0+cmVmZXJzLT5pcmIuc2Nzdy5jcGE7CisJY3BhID0gZGVmYXVsdF9lcnAtPnJlZmVycy0+aXJiLnNjc3cuY21kLmNwYTsKIAogCWlmIChjcGEgPT0gMCkgewogCkBAIC0xNzI1LDcgKzE3MjUsNyBAQAogCiAJLyogZGV0ZXJtaW5lIHRoZSBhZGRyZXNzIG9mIHRoZSBDQ1cgdG8gYmUgcmVzdGFydGVkICovCiAJLyogSW1wcmVjaXNlIGVuZGluZyBpcyBub3Qgc2V0IC0+IGFkZHIgZnJvbSBJUkItU0NTVyAqLwotCWNwYSA9IHByZXZpb3VzX2VycC0+aXJiLnNjc3cuY3BhOworCWNwYSA9IHByZXZpb3VzX2VycC0+aXJiLnNjc3cuY21kLmNwYTsKIAogCWlmIChjcGEgPT0gMCkgewogCkBAIC0yMTcxLDcgKzIxNzEsNyBAQAogewogCXN0cnVjdCBkYXNkX2RldmljZSAqZGV2aWNlID0gZXJwLT5zdGFydGRldjsKIAotCWlmIChlcnAtPnJlZmVycy0+aXJiLnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEsKKwlpZiAoZXJwLT5yZWZlcnMtPmlyYi5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISwogCQkJCQkgICB8IFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEspKSB7CiAJCURFVl9NRVNTQUdFKEtFUk5fREVCVUcsIGRldmljZSwgIiVzIiwKIAkJCSAgICAiY2hhbm5lbCBvciBpbnRlcmZhY2UgY29udHJvbCBjaGVjayIpOwpAQCAtMjM1Miw5ICsyMzUyLDkgQEAKIAogCWlmICgoY3FyMS0+aXJiLmVzdy5lc3cwLmVydy5jb25zID09IDApICYmCiAJICAgIChjcXIyLT5pcmIuZXN3LmVzdzAuZXJ3LmNvbnMgPT0gMCkpCXsKLQkJaWYgKChjcXIxLT5pcmIuc2Nzdy5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCWlmICgoY3FyMS0+aXJiLnNjc3cuY21kLmNzdGF0ICYgKFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJCQkJICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKSkgPT0KLQkJICAgIChjcXIyLT5pcmIuc2Nzdy5jc3RhdCAmIChTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCSAgICAoY3FyMi0+aXJiLnNjc3cuY21kLmNzdGF0ICYgKFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLIHwKIAkJCQkJICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKSkpCiAJCQlyZXR1cm4gMTsgLyogbWF0Y2ggd2l0aCBpZmNjKi8KIAl9CkBAIC0yNjIyLDggKzI2MjIsOSBAQAogCX0KIAogCS8qIGRvdWJsZS1jaGVjayBpZiBjdXJyZW50IGVycC9jcXIgd2FzIHN1Y2Nlc3NmdWxsICovCi0JaWYgKChjcXItPmlyYi5zY3N3LmNzdGF0ID09IDB4MDApICYmCi0JICAgIChjcXItPmlyYi5zY3N3LmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EfERFVl9TVEFUX0RFVl9FTkQpKSkgeworCWlmICgoY3FyLT5pcmIuc2Nzdy5jbWQuY3N0YXQgPT0gMHgwMCkgJiYKKwkgICAgKGNxci0+aXJiLnNjc3cuY21kLmRzdGF0ID09CisJICAgICAoREVWX1NUQVRfQ0hOX0VORCB8IERFVl9TVEFUX0RFVl9FTkQpKSkgewogCiAJCURFVl9NRVNTQUdFKEtFUk5fREVCVUcsIGRldmljZSwKIAkJCSAgICAiRVJQIGNhbGxlZCBmb3Igc3VjY2Vzc2Z1bCByZXF1ZXN0ICVwIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWNrZC5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWNrZC5jCmluZGV4IGEwZWRhZTAuLmUwYjc3MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vja2QuYworKysgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9lY2tkLmMKQEAgLTE0MDQsMTMgKzE0MDQsMTQgQEAKIAogCS8qIGZpcnN0IG9mIGFsbCBjaGVjayBmb3Igc3RhdGUgY2hhbmdlIHBlbmRpbmcgaW50ZXJydXB0ICovCiAJbWFzayA9IERFVl9TVEFUX0FUVEVOVElPTiB8IERFVl9TVEFUX0RFVl9FTkQgfCBERVZfU1RBVF9VTklUX0VYQ0VQOwotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgbWFzaykgPT0gbWFzaykgeworCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIG1hc2spID09IG1hc2spIHsKIAkJZGFzZF9nZW5lcmljX2hhbmRsZV9zdGF0ZV9jaGFuZ2UoZGV2aWNlKTsKIAkJcmV0dXJuOwogCX0KIAogCS8qIHN1bW1hcnkgdW5pdCBjaGVjayAqLwotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYgaXJiLT5lY3dbN10gPT0gMHgwRCkgeworCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJICAgIChpcmItPmVjd1s3XSA9PSAweDBEKSkgewogCQlkYXNkX2FsaWFzX2hhbmRsZV9zdW1tYXJ5X3VuaXRfY2hlY2soZGV2aWNlLCBpcmIpOwogCQlyZXR1cm47CiAJfQpAQCAtMjA2OCwxMSArMjA2OSwxMSBAQAogCQkgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgaW4gcmVxOiAlcCBDUzogMHglMDJYIERTOiAweCUwMlhcbiIsIHJlcSwKLQkJICAgICAgIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0KTsKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgZGV2aWNlICVzOiBGYWlsaW5nIENDVzogJXBcbiIsCiAJCSAgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQsCi0JCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY3BhKTsKKwkJICAgICAgICh2b2lkICopIChhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKTsKIAlpZiAoaXJiLT5lc3cuZXN3MC5lcncuY29ucykgewogCQlmb3IgKHNsID0gMDsgc2wgPCA0OyBzbCsrKSB7CiAJCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCkBAIC0yMTIyLDcgKzIxMjMsOCBAQAogCQkvKiBzY3N3LT5jZGEgaXMgZWl0aGVyIHZhbGlkIG9yIHplcm8gICovCiAJCWxlbiA9IDA7CiAJCWZyb20gPSArK3RvOwotCQlmYWlsID0gKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNwYTsgLyogZmFpbGluZyBDQ1cgKi8KKwkJZmFpbCA9IChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpCisJCQkJaXJiLT5zY3N3LmNtZC5jcGE7IC8qIGZhaWxpbmcgQ0NXICovCiAJCWlmIChmcm9tIDwgIGZhaWwgLSAyKSB7CiAJCQlmcm9tID0gZmFpbCAtIDI7ICAgICAvKiB0aGVyZSBpcyBhIGdhcCAtIHByaW50IGhlYWRlciAqLwogCQkJbGVuICs9IHNwcmludGYocGFnZSwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUiAiLi4uLi4uXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kYXNkX2Vlci5jIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKaW5kZXggNmU1M2FiNi4uMjlkYTQ0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZWVyLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CkBAIC01MjUsNiArNTI2LDcgQEAKIAllZXJiID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGVlcmJ1ZmZlciksIEdGUF9LRVJORUwpOwogCWlmICghZWVyYikKIAkJcmV0dXJuIC1FTk9NRU07CisJbG9ja19rZXJuZWwoKTsKIAllZXJiLT5idWZmZXJfcGFnZV9jb3VudCA9IGVlcl9wYWdlczsKIAlpZiAoZWVyYi0+YnVmZmVyX3BhZ2VfY291bnQgPCAxIHx8CiAJICAgIGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50ID4gSU5UX01BWCAvIFBBR0VfU0laRSkgewpAQCAtNTMyLDYgKzUzNCw3IEBACiAJCU1FU1NBR0UoS0VSTl9XQVJOSU5HLCAiY2FuJ3Qgb3BlbiBkZXZpY2Ugc2luY2UgbW9kdWxlICIKIAkJCSJwYXJhbWV0ZXIgZWVyX3BhZ2VzIGlzIHNtYWxsZXIgdGhlbiAxIG9yIgogCQkJIiBiaWdnZXIgdGhlbiAlZCIsIChpbnQpKElOVF9NQVggLyBQQUdFX1NJWkUpKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJZWVyYi0+YnVmZmVyc2l6ZSA9IGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50ICogUEFHRV9TSVpFOwpAQCAtNTM5LDEyICs1NDIsMTQgQEAKIAkJCSAgICAgICBHRlBfS0VSTkVMKTsKICAgICAgICAgaWYgKCFlZXJiLT5idWZmZXIpIHsKIAkJa2ZyZWUoZWVyYik7CisJCXVubG9ja19rZXJuZWwoKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKIAl9CiAJaWYgKGRhc2RfZWVyX2FsbG9jYXRlX2J1ZmZlcl9wYWdlcyhlZXJiLT5idWZmZXIsCiAJCQkJCSAgIGVlcmItPmJ1ZmZlcl9wYWdlX2NvdW50KSkgewogCQlrZnJlZShlZXJiLT5idWZmZXIpOwogCQlrZnJlZShlZXJiKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gZWVyYjsKQEAgLTU1Miw2ICs1NTcsNyBAQAogCWxpc3RfYWRkKCZlZXJiLT5saXN0LCAmYnVmZmVybGlzdCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYnVmZmVybG9jaywgZmxhZ3MpOwogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlucCxmaWxwKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Jsb2NrL2Rhc2RfZmJhLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYwppbmRleCAxMTY2MTE1Li5hZWU0NjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYworKysgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGFzZF9mYmEuYwpAQCAtMjIyLDcgKzIyMiw3IEBACiAKIAkvKiBmaXJzdCBvZiBhbGwgY2hlY2sgZm9yIHN0YXRlIGNoYW5nZSBwZW5kaW5nIGludGVycnVwdCAqLwogCW1hc2sgPSBERVZfU1RBVF9BVFRFTlRJT04gfCBERVZfU1RBVF9ERVZfRU5EIHwgREVWX1NUQVRfVU5JVF9FWENFUDsKLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIG1hc2spID09IG1hc2spIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBtYXNrKSA9PSBtYXNrKSB7CiAJCWRhc2RfZ2VuZXJpY19oYW5kbGVfc3RhdGVfY2hhbmdlKGRldmljZSk7CiAJCXJldHVybjsKIAl9CkBAIC00NDksMTEgKzQ0OSwxMSBAQAogCQkgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgaW4gcmVxOiAlcCBDUzogMHglMDJYIERTOiAweCUwMlhcbiIsIHJlcSwKLQkJICAgICAgIGlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0KTsKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuY3N0YXQsIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCWxlbiArPSBzcHJpbnRmKHBhZ2UgKyBsZW4sIEtFUk5fRVJSIFBSSU5US19IRUFERVIKIAkJICAgICAgICIgZGV2aWNlICVzOiBGYWlsaW5nIENDVzogJXBcbiIsCiAJCSAgICAgICBkZXZpY2UtPmNkZXYtPmRldi5idXNfaWQsCi0JCSAgICAgICAodm9pZCAqKSAoYWRkcl90KSBpcmItPnNjc3cuY3BhKTsKKwkJICAgICAgICh2b2lkICopIChhZGRyX3QpIGlyYi0+c2Nzdy5jbWQuY3BhKTsKIAlpZiAoaXJiLT5lc3cuZXN3MC5lcncuY29ucykgewogCQlmb3IgKHNsID0gMDsgc2wgPCA0OyBzbCsrKSB7CiAJCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCkBAIC00OTgsMTEgKzQ5OCwxMSBAQAogCiAJLyogcHJpbnQgZmFpbGluZyBDQ1cgYXJlYSAqLwogCWxlbiA9IDA7Ci0JaWYgKGFjdCA8ICAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNwYSkgLSAyKSB7Ci0JCWFjdCA9ICgoc3RydWN0IGNjdzEgKikoYWRkcl90KSBpcmItPnNjc3cuY3BhKSAtIDI7CisJaWYgKGFjdCA8ICAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpIC0gMikgeworCQlhY3QgPSAoKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpIC0gMjsKIAkJbGVuICs9IHNwcmludGYocGFnZSArIGxlbiwgS0VSTl9FUlIgUFJJTlRLX0hFQURFUiAiLi4uLi4uXG4iKTsKIAl9Ci0JZW5kID0gbWluKChzdHJ1Y3QgY2N3MSAqKShhZGRyX3QpIGlyYi0+c2Nzdy5jcGEgKyAyLCBsYXN0KTsKKwllbmQgPSBtaW4oKHN0cnVjdCBjY3cxICopKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEgKyAyLCBsYXN0KTsKIAl3aGlsZSAoYWN0IDw9IGVuZCkgewogCQlsZW4gKz0gc3ByaW50ZihwYWdlICsgbGVuLCBLRVJOX0VSUiBQUklOVEtfSEVBREVSCiAJCQkgICAgICAgIiBDQ1cgJXA6ICUwOFggJTA4WCBEQVQ6IiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMgYi9kcml2ZXJzL3MzOTAvYmxvY2svZGNzc2Jsay5jCmluZGV4IGJiNTJkMmYuLjAxZmNkZDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay9kY3NzYmxrLmMKKysrIGIvZHJpdmVycy9zMzkwL2Jsb2NrL2Rjc3NibGsuYwpAQCAtMTY3LDEwICsxNjcsOCBAQAogCXN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvICpkZXZfaW5mbzsKIAlpbnQgcmM7CiAKLQlpZiAoKGNvdW50ID4gMSkgJiYgKGluYnVmWzFdICE9ICdcbicpICYmIChpbmJ1ZlsxXSAhPSAnXDAnKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIHZhbHVlLCBtdXN0IGJlIDAgb3IgMVxuIik7CisJaWYgKChjb3VudCA+IDEpICYmIChpbmJ1ZlsxXSAhPSAnXG4nKSAmJiAoaW5idWZbMV0gIT0gJ1wwJykpCiAJCXJldHVybiAtRUlOVkFMOwotCX0KIAlkb3duX3dyaXRlKCZkY3NzYmxrX2RldmljZXNfc2VtKTsKIAlkZXZfaW5mbyA9IGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBkY3NzYmxrX2Rldl9pbmZvLCBkZXYpOwogCWlmIChhdG9taWNfcmVhZCgmZGV2X2luZm8tPnVzZV9jb3VudCkpIHsKQEAgLTIxNSw3ICsyMTMsNiBAQAogCQkJc2V0X2Rpc2tfcm8oZGV2X2luZm8tPmdkLCAwKTsKIAkJfQogCX0gZWxzZSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgdmFsdWUsIG11c3QgYmUgMCBvciAxXG4iKTsKIAkJcmMgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKIAl9CkBAIC0yNTgsMTAgKzI1NSw4IEBACiB7CiAJc3RydWN0IGRjc3NibGtfZGV2X2luZm8gKmRldl9pbmZvOwogCi0JaWYgKChjb3VudCA+IDEpICYmIChpbmJ1ZlsxXSAhPSAnXG4nKSAmJiAoaW5idWZbMV0gIT0gJ1wwJykpIHsKLQkJUFJJTlRfV0FSTigiSW52YWxpZCB2YWx1ZSwgbXVzdCBiZSAwIG9yIDFcbiIpOworCWlmICgoY291bnQgPiAxKSAmJiAoaW5idWZbMV0gIT0gJ1xuJykgJiYgKGluYnVmWzFdICE9ICdcMCcpKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJZGV2X2luZm8gPSBjb250YWluZXJfb2YoZGV2LCBzdHJ1Y3QgZGNzc2Jsa19kZXZfaW5mbywgZGV2KTsKIAogCWRvd25fd3JpdGUoJmRjc3NibGtfZGV2aWNlc19zZW0pOwpAQCAtMjg5LDcgKzI4NCw2IEBACiAJCX0KIAl9IGVsc2UgewogCQl1cF93cml0ZSgmZGNzc2Jsa19kZXZpY2VzX3NlbSk7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgdmFsdWUsIG11c3QgYmUgMCBvciAxXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXVwX3dyaXRlKCZkY3NzYmxrX2RldmljZXNfc2VtKTsKQEAgLTQ0MSw3ICs0MzUsNiBAQAogCWdvdG8gb3V0OwogCiB1bnJlZ2lzdGVyX2RldjoKLQlQUklOVF9FUlIoImRldmljZV9jcmVhdGVfZmlsZSgpIGZhaWxlZCFcbiIpOwogCWxpc3RfZGVsKCZkZXZfaW5mby0+bGgpOwogCWJsa19jbGVhbnVwX3F1ZXVlKGRldl9pbmZvLT5kY3NzYmxrX3F1ZXVlKTsKIAlkZXZfaW5mby0+Z2QtPnF1ZXVlID0gTlVMTDsKQEAgLTcwMiwxMCArNjk1LDggQEAKIHN0YXRpYyB2b2lkIF9fZXhpdAogZGNzc2Jsa19leGl0KHZvaWQpCiB7Ci0JUFJJTlRfREVCVUcoIkRDU1NCTE9DSyBFWElULi4uXG4iKTsKIAlzMzkwX3Jvb3RfZGV2X3VucmVnaXN0ZXIoZGNzc2Jsa19yb290X2Rldik7CiAJdW5yZWdpc3Rlcl9ibGtkZXYoZGNzc2Jsa19tYWpvciwgRENTU0JMS19OQU1FKTsKLQlQUklOVF9ERUJVRygiLi4uZmluaXNoZWQhXG4iKTsKIH0KIAogc3RhdGljIGludCBfX2luaXQKQEAgLTcxMywyNyArNzA0LDIxIEBACiB7CiAJaW50IHJjOwogCi0JUFJJTlRfREVCVUcoIkRDU1NCTE9DSyBJTklULi4uXG4iKTsKIAlkY3NzYmxrX3Jvb3RfZGV2ID0gczM5MF9yb290X2Rldl9yZWdpc3RlcigiZGNzc2JsayIpOwotCWlmIChJU19FUlIoZGNzc2Jsa19yb290X2RldikpIHsKLQkJUFJJTlRfRVJSKCJkZXZpY2VfcmVnaXN0ZXIoKSBmYWlsZWQhXG4iKTsKKwlpZiAoSVNfRVJSKGRjc3NibGtfcm9vdF9kZXYpKQogCQlyZXR1cm4gUFRSX0VSUihkY3NzYmxrX3Jvb3RfZGV2KTsKLQl9CiAJcmMgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoZGNzc2Jsa19yb290X2RldiwgJmRldl9hdHRyX2FkZCk7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX0VSUigiZGV2aWNlX2NyZWF0ZV9maWxlKGFkZCkgZmFpbGVkIVxuIik7CiAJCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihkY3NzYmxrX3Jvb3RfZGV2KTsKIAkJcmV0dXJuIHJjOwogCX0KIAlyYyA9IGRldmljZV9jcmVhdGVfZmlsZShkY3NzYmxrX3Jvb3RfZGV2LCAmZGV2X2F0dHJfcmVtb3ZlKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfRVJSKCJkZXZpY2VfY3JlYXRlX2ZpbGUocmVtb3ZlKSBmYWlsZWQhXG4iKTsKIAkJczM5MF9yb290X2Rldl91bnJlZ2lzdGVyKGRjc3NibGtfcm9vdF9kZXYpOwogCQlyZXR1cm4gcmM7CiAJfQogCXJjID0gcmVnaXN0ZXJfYmxrZGV2KDAsIERDU1NCTEtfTkFNRSk7CiAJaWYgKHJjIDwgMCkgewotCQlQUklOVF9FUlIoIkNhbid0IGdldCBkeW5hbWljIG1ham9yIVxuIik7CiAJCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihkY3NzYmxrX3Jvb3RfZGV2KTsKIAkJcmV0dXJuIHJjOwogCX0KQEAgLTc0Miw3ICs3MjcsNiBAQAogCiAJZGNzc2Jsa19jaGVja19wYXJhbXMoKTsKIAotCVBSSU5UX0RFQlVHKCIuLi5maW5pc2hlZCFcbiIpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvYmxvY2sveHByYW0uYyBiL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCmluZGV4IGYyMzFiYzIuLmRkOWI5ODYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCisrKyBiL2RyaXZlcnMvczM5MC9ibG9jay94cHJhbS5jCkBAIC0xMDAsMTUgKzEwMCwxMCBAQAogCQk6ICIrZCIgKGNjKSA6ICJhIiAoX19wYShwYWdlX2FkZHIpKSwgImQiICh4cGFnZV9pbmRleCkgOiAiY2MiKTsKIAlpZiAoY2MgPT0gMykKIAkJcmV0dXJuIC1FTlhJTzsKLQlpZiAoY2MgPT0gMikgewotCQlQUklOVF9FUlIoImV4cGFuZGVkIHN0b3JhZ2UgbG9zdCFcbiIpOworCWlmIChjYyA9PSAyKQogCQlyZXR1cm4gLUVOWElPOwotCX0KLQlpZiAoY2MgPT0gMSkgewotCQlQUklOVF9FUlIoInBhZ2UgaW4gZmFpbGVkIGZvciBwYWdlIGluZGV4ICV1LlxuIiwKLQkJCSAgeHBhZ2VfaW5kZXgpOworCWlmIChjYyA9PSAxKQogCQlyZXR1cm4gLUVJTzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzNSwxNSArMTMwLDEwIEBACiAJCTogIitkIiAoY2MpIDogImEiIChfX3BhKHBhZ2VfYWRkcikpLCAiZCIgKHhwYWdlX2luZGV4KSA6ICJjYyIpOwogCWlmIChjYyA9PSAzKQogCQlyZXR1cm4gLUVOWElPOwotCWlmIChjYyA9PSAyKSB7Ci0JCVBSSU5UX0VSUigiZXhwYW5kZWQgc3RvcmFnZSBsb3N0IVxuIik7CisJaWYgKGNjID09IDIpCiAJCXJldHVybiAtRU5YSU87Ci0JfQotCWlmIChjYyA9PSAxKSB7Ci0JCVBSSU5UX0VSUigicGFnZSBvdXQgZmFpbGVkIGZvciBwYWdlIGluZGV4ICV1LlxuIiwKLQkJCSAgeHBhZ2VfaW5kZXgpOworCWlmIChjYyA9PSAxKQogCQlyZXR1cm4gLUVJTzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYyBiL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYwppbmRleCAzZTU2NTNjLi5kM2VjOWI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjE1LmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzIxNS5jCkBAIC05Myw5ICs5Myw2IEBACiAJc3RydWN0IHJhdzMyMTVfcmVxICpxdWV1ZWRfd3JpdGU7LyogcG9pbnRlciB0byBxdWV1ZWQgd3JpdGUgcmVxdWVzdHMgKi8KIAl3YWl0X3F1ZXVlX2hlYWRfdCBlbXB0eV93YWl0OyAvKiB3YWl0IHF1ZXVlIGZvciBmbHVzaGluZyAqLwogCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOyAgICAgIC8qIHRpbWVyIGZvciBkZWxheWVkIG91dHB1dCAqLwotCWNoYXIgKm1lc3NhZ2U7CQkgICAgICAvKiBwZW5kaW5nIG1lc3NhZ2UgZnJvbSByYXczMjE1X2lycSAqLwotCWludCBtc2dfZHN0YXQ7CQkgICAgICAvKiBkc3RhdCBmb3IgcGVuZGluZyBtZXNzYWdlICovCi0JaW50IG1zZ19jc3RhdDsJCSAgICAgIC8qIGNzdGF0IGZvciBwZW5kaW5nIG1lc3NhZ2UgKi8KIAlpbnQgbGluZV9wb3M7CQkgICAgICAvKiBwb3NpdGlvbiBvbiB0aGUgbGluZSAoZm9yIHRhYnMpICovCiAJY2hhciB1YnVmZmVyWzgwXTsJICAgICAgLyogY29weV9mcm9tX3VzZXIgYnVmZmVyICovCiB9OwpAQCAtMzU5LDExICszNTYsNiBAQAogCXJhdzMyMTVfbWtfd3JpdGVfcmVxKHJhdyk7CiAJcmF3MzIxNV90cnlfaW8ocmF3KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGdldF9jY3dkZXZfbG9jayhyYXctPmNkZXYpLCBmbGFncyk7Ci0JLyogQ2hlY2sgZm9yIHBlbmRpbmcgbWVzc2FnZSBmcm9tIHJhdzMyMTVfaXJxICovCi0JaWYgKHJhdy0+bWVzc2FnZSAhPSBOVUxMKSB7Ci0JCXByaW50ayhyYXctPm1lc3NhZ2UsIHJhdy0+bXNnX2RzdGF0LCByYXctPm1zZ19jc3RhdCk7Ci0JCXJhdy0+bWVzc2FnZSA9IE5VTEw7Ci0JfQogCXR0eSA9IHJhdy0+dHR5OwogCWlmICh0dHkgIT0gTlVMTCAmJgogCSAgICBSQVczMjE1X0JVRkZFUl9TSVpFIC0gcmF3LT5jb3VudCA+PSBSQVczMjE1X01JTl9TUEFDRSkgewpAQCAtMzgxLDIwICszNzMsMTQgQEAKIAlzdHJ1Y3QgcmF3MzIxNV9yZXEgKnJlcTsKIAlzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogCWludCBjc3RhdCwgZHN0YXQ7Ci0JaW50IGNvdW50LCBzbGVuOworCWludCBjb3VudDsKIAogCXJhdyA9IGNkZXYtPmRldi5kcml2ZXJfZGF0YTsKIAlyZXEgPSAoc3RydWN0IHJhdzMyMTVfcmVxICopIGludHBhcm07Ci0JY3N0YXQgPSBpcmItPnNjc3cuY3N0YXQ7Ci0JZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7Ci0JaWYgKGNzdGF0ICE9IDApIHsKLQkJcmF3LT5tZXNzYWdlID0gS0VSTl9XQVJOSU5HCi0JCQkiR290IG5vbnplcm8gY2hhbm5lbCBzdGF0dXMgaW4gcmF3MzIxNV9pcnEgIgotCQkJIihkZXYgc3RzIDB4JTJ4LCBzY2ggc3RzIDB4JTJ4KSI7Ci0JCXJhdy0+bXNnX2RzdGF0ID0gZHN0YXQ7Ci0JCXJhdy0+bXNnX2NzdGF0ID0gY3N0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKKwlpZiAoY3N0YXQgIT0gMCkKIAkJdGFza2xldF9zY2hlZHVsZSgmcmF3LT50YXNrbGV0KTsKLQl9CiAJaWYgKGRzdGF0ICYgMHgwMSkgeyAvKiB3ZSBnb3QgYSB1bml0IGV4Y2VwdGlvbiAqLwogCQlkc3RhdCAmPSB+MHgwMTsJIC8qIHdlIGNhbiBpZ25vcmUgaXQgKi8KIAl9CkBAIC00MDQsOCArMzkwLDYgQEAKIAkJCWJyZWFrOwogCQkvKiBBdHRlbnRpb24gaW50ZXJydXB0LCBzb21lb25lIGhpdCB0aGUgZW50ZXIga2V5ICovCiAJCXJhdzMyMTVfbWtfcmVhZF9yZXEocmF3KTsKLQkJaWYgKE1BQ0hJTkVfSVNfUDM5MCkKLQkJCW1lbXNldChyYXctPmluYnVmLCAwLCBSQVczMjE1X0lOQlVGX1NJWkUpOwogCQl0YXNrbGV0X3NjaGVkdWxlKCZyYXctPnRhc2tsZXQpOwogCQlicmVhazsKIAljYXNlIDB4MDg6CkBAIC00MTUsNyArMzk5LDcgQEAKIAkJCXJldHVybjsJCSAgICAgLyogVGhhdCBzaG91bGRuJ3QgaGFwcGVuIC4uLiAqLwogCQlpZiAocmVxLT50eXBlID09IFJBVzMyMTVfUkVBRCkgewogCQkJLyogc3RvcmUgcmVzaWR1YWwgY291bnQsIHRoZW4gd2FpdCBmb3IgZGV2aWNlIGVuZCAqLwotCQkJcmVxLT5yZXNpZHVhbCA9IGlyYi0+c2Nzdy5jb3VudDsKKwkJCXJlcS0+cmVzaWR1YWwgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCQl9CiAJCWlmIChkc3RhdCA9PSAweDA4KQogCQkJYnJlYWs7CkBAIC00MjgsMTEgKzQxMiw2IEBACiAKIAkJCXR0eSA9IHJhdy0+dHR5OwogCQkJY291bnQgPSAxNjAgLSByZXEtPnJlc2lkdWFsOwotCQkJaWYgKE1BQ0hJTkVfSVNfUDM5MCkgewotCQkJCXNsZW4gPSBzdHJubGVuKHJhdy0+aW5idWYsIFJBVzMyMTVfSU5CVUZfU0laRSk7Ci0JCQkJaWYgKGNvdW50ID4gc2xlbikKLQkJCQkJY291bnQgPSBzbGVuOwotCQkJfSBlbHNlCiAJCQlFQkNBU0MocmF3LT5pbmJ1ZiwgY291bnQpOwogCQkJY2NoYXIgPSBjdHJsY2hhcl9oYW5kbGUocmF3LT5pbmJ1ZiwgY291bnQsIHR0eSk7CiAJCQlzd2l0Y2ggKGNjaGFyICYgQ1RSTENIQVJfTUFTSykgewpAQCAtNDgxLDExICs0NjAsNiBAQAogCQkJcmF3LT5mbGFncyAmPSB+UkFXMzIxNV9XT1JLSU5HOwogCQkJcmF3MzIxNV9mcmVlX3JlcShyZXEpOwogCQl9Ci0JCXJhdy0+bWVzc2FnZSA9IEtFUk5fV0FSTklORwotCQkJIlNwdXJpb3VzIGludGVycnVwdCBpbiBpbiByYXczMjE1X2lycSAiCi0JCQkiKGRldiBzdHMgMHglMngsIHNjaCBzdHMgMHglMngpIjsKLQkJcmF3LT5tc2dfZHN0YXQgPSBkc3RhdDsKLQkJcmF3LT5tc2dfY3N0YXQgPSBjc3RhdDsKIAkJdGFza2xldF9zY2hlZHVsZSgmcmF3LT50YXNrbGV0KTsKIAl9CiAJcmV0dXJuOwpAQCAtODgzLDcgKzg1Nyw2IEBACiAJCWZyZWVfYm9vdG1lbSgodW5zaWduZWQgbG9uZykgcmF3LT5idWZmZXIsIFJBVzMyMTVfQlVGRkVSX1NJWkUpOwogCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHJhdywgc2l6ZW9mKHN0cnVjdCByYXczMjE1X2luZm8pKTsKIAkJcmF3MzIxNVswXSA9IE5VTEw7Ci0JCXByaW50aygiQ291bGRuJ3QgZmluZCBhIDMyMTUgY29uc29sZSBkZXZpY2VcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJcmVnaXN0ZXJfY29uc29sZSgmY29uMzIxNSk7CkBAIC0xMTU3LDcgKzExMzAsNiBAQAogCXR0eV9zZXRfb3BlcmF0aW9ucyhkcml2ZXIsICZ0dHkzMjE1X29wcyk7CiAJcmV0ID0gdHR5X3JlZ2lzdGVyX2RyaXZlcihkcml2ZXIpOwogCWlmIChyZXQpIHsKLQkJcHJpbnRrKCJDb3VsZG4ndCByZWdpc3RlciB0dHkzMjE1IGRyaXZlclxuIik7CiAJCXB1dF90dHlfZHJpdmVyKGRyaXZlcik7CiAJCXJldHVybiByZXQ7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvY29uMzI3MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzI3MC5jCmluZGV4IDBiMDQwNTUuLjNjMDc5NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyNzAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjcwLmMKQEAgLTQxMSwxNSArNDExLDE1IEBACiBjb24zMjcwX2lycShzdHJ1Y3QgY29uMzI3MCAqY3AsIHN0cnVjdCByYXczMjcwX3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJLyogSGFuZGxlIEFUVE4uIFNjaGVkdWxlIHRhc2tsZXQgdG8gcmVhZCBhaWQuICovCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikKIAkJY29uMzI3MF9pc3N1ZV9yZWFkKGNwKTsKIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvZnMzMjcwLmMKaW5kZXggZWYzNmYyMTMuLmQxOGU2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL2ZzMzI3MC5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9jY3dkZXYuaD4KICNpbmNsdWRlIDxhc20vY2lvLmg+CkBAIC0yMTYsMTcgKzIxNywxNyBAQAogZnMzMjcwX2lycShzdHJ1Y3QgZnMzMjcwICpmcCwgc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnEsIHN0cnVjdCBpcmIgKmlyYikKIHsKIAkvKiBIYW5kbGUgQVRUTi4gU2V0IGluZGljYXRpb24gYW5kIHdha2Ugd2FpdGVycyBmb3IgYXR0ZW50aW9uLiAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgewogCQlmcC0+YXR0ZW50aW9uID0gMTsKIAkJd2FrZV91cCgmZnAtPndhaXQpOwogCX0KIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KQEAgLTQyMSw2ICs0MjIsNyBAQAogCiAJaWYgKGltYWpvcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKSAhPSBJQk1fRlMzMjcwX01BSk9SKQogCQlyZXR1cm4gLUVOT0RFVjsKKwlsb2NrX2tlcm5lbCgpOwogCW1pbm9yID0gaW1pbm9yKGZpbHAtPmZfcGF0aC5kZW50cnktPmRfaW5vZGUpOwogCS8qIENoZWNrIGZvciBtaW5vciAwIG11bHRpcGxleGVyLiAqLwogCWlmIChtaW5vciA9PSAwKSB7CkBAIC00MjksNyArNDMxLDggQEAKIAkJdHR5ID0gZ2V0X2N1cnJlbnRfdHR5KCk7CiAJCWlmICghdHR5IHx8IHR0eS0+ZHJpdmVyLT5tYWpvciAhPSBJQk1fVFRZMzI3MF9NQUpPUikgewogCQkJbXV0ZXhfdW5sb2NrKCZ0dHlfbXV0ZXgpOwotCQkJcmV0dXJuIC1FTk9ERVY7CisJCQlyYyA9IC1FTk9ERVY7CisJCQlnb3RvIG91dDsKIAkJfQogCQltaW5vciA9IHR0eS0+aW5kZXggKyBSQVczMjcwX0ZJUlNUTUlOT1I7CiAJCW11dGV4X3VubG9jaygmdHR5X211dGV4KTsKQEAgLTQzOCwxOSArNDQxLDIyIEBACiAJZnAgPSAoc3RydWN0IGZzMzI3MCAqKSByYXczMjcwX2ZpbmRfdmlldygmZnMzMjcwX2ZuLCBtaW5vcik7CiAJaWYgKCFJU19FUlIoZnApKSB7CiAJCXJhdzMyNzBfcHV0X3ZpZXcoJmZwLT52aWV3KTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmMgPSAtRUJVU1k7CisJCWdvdG8gb3V0OwogCX0KIAkvKiBBbGxvY2F0ZSBmdWxsc2NyZWVuIHZpZXcgc3RydWN0dXJlLiAqLwogCWZwID0gZnMzMjcwX2FsbG9jX3ZpZXcoKTsKLQlpZiAoSVNfRVJSKGZwKSkKLQkJcmV0dXJuIFBUUl9FUlIoZnApOworCWlmIChJU19FUlIoZnApKSB7CisJCXJjID0gUFRSX0VSUihmcCk7CisJCWdvdG8gb3V0OworCX0KIAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmZwLT53YWl0KTsKIAlmcC0+ZnNfcGlkID0gZ2V0X3BpZCh0YXNrX3BpZChjdXJyZW50KSk7CiAJcmMgPSByYXczMjcwX2FkZF92aWV3KCZmcC0+dmlldywgJmZzMzI3MF9mbiwgbWlub3IpOwogCWlmIChyYykgewogCQlmczMyNzBfZnJlZV92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXQ7CiAJfQogCiAJLyogQWxsb2NhdGUgaWRhbC1idWZmZXIuICovCkBAIC00NTgsNyArNDY0LDggQEAKIAlpZiAoSVNfRVJSKGliKSkgewogCQlyYXczMjcwX3B1dF92aWV3KCZmcC0+dmlldyk7CiAJCXJhdzMyNzBfZGVsX3ZpZXcoJmZwLT52aWV3KTsKLQkJcmV0dXJuIFBUUl9FUlIoZnApOworCQlyYyA9IFBUUl9FUlIoZnApOworCQlnb3RvIG91dDsKIAl9CiAJZnAtPnJkYnVmID0gaWI7CiAKQEAgLTQ2Niw5ICs0NzMsMTEgQEAKIAlpZiAocmMpIHsKIAkJcmF3MzI3MF9wdXRfdmlldygmZnAtPnZpZXcpOwogCQlyYXczMjcwX2RlbF92aWV3KCZmcC0+dmlldyk7Ci0JCXJldHVybiByYzsKKwkJZ290byBvdXQ7CiAJfQogCWZpbHAtPnByaXZhdGVfZGF0YSA9IGZwOworb3V0OgorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTEyLDExICs1MjEsOCBAQAogCWludCByYzsKIAogCXJjID0gcmVnaXN0ZXJfY2hyZGV2KElCTV9GUzMyNzBfTUFKT1IsICJmczMyNzAiLCAmZnMzMjcwX2ZvcHMpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgImZzMzI3MCBjYW4ndCBnZXQgbWFqb3IgbnVtYmVyICVkOiBlcnJubyAlZFxuIiwKLQkJICAgICAgIElCTV9GUzMyNzBfTUFKT1IsIHJjKTsKKwlpZiAocmMpCiAJCXJldHVybiByYzsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL21vbnJlYWRlci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKaW5kZXggMWUxZjUwNi4uMzVmZDhkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvbW9ucmVhZGVyLmMKQEAgLTMsMTQgKzMsMTQgQEAKICAqCiAgKiBDaGFyYWN0ZXIgZGV2aWNlIGRyaXZlciBmb3IgcmVhZGluZyB6L1ZNICpNT05JVE9SIHNlcnZpY2UgcmVjb3Jkcy4KICAqCi0gKiBDb3B5cmlnaHQgMjAwNCBJQk0gQ29ycG9yYXRpb24sIElCTSBEZXV0c2NobGFuZCBFbnR3aWNrbHVuZyBHbWJILgotICoKLSAqIEF1dGhvcjogR2VyYWxkIFNjaGFlZmVyIDxnZXJhbGRzY0BkZS5pYm0uY29tPgorICogICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDQsIDIwMDgKKyAqICAgQXV0aG9yOiBHZXJhbGQgU2NoYWVmZXIgPGdlcmFsZC5zY2hhZWZlckBkZS5pYm0uY29tPgogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KQEAgLTE4LDEyICsxOCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CisjaW5jbHVkZSA8bmV0L2l1Y3YvaXVjdi5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2ViY2RpYy5oPgogI2luY2x1ZGUgPGFzbS9leHRtZW0uaD4KLSNpbmNsdWRlIDxsaW51eC9wb2xsLmg+Ci0jaW5jbHVkZSA8bmV0L2l1Y3YvaXVjdi5oPgotCiAKIC8vI2RlZmluZSBNT05fREVCVUcJCQkvKiBEZWJ1ZyBtZXNzYWdlcyBvbi9vZmYgKi8KIApAQCAtMTUyLDEwICsxNTEsNyBAQAogCSAgICAobW9uX21jYV9lbmQobW9ubXNnKSA+IG1vbl9kY3NzX2VuZCkgfHwKIAkgICAgKG1vbl9tY2Ffc3RhcnQobW9ubXNnKSA8IG1vbl9kY3NzX3N0YXJ0KSB8fAogCSAgICAoKG1vbl9tY2FfdHlwZShtb25tc2csIDEpID09IDApICYmIChtb25fbWNhX3R5cGUobW9ubXNnLCAyKSA9PSAwKSkpCi0JewotCQlQX0RFQlVHKCJSRUFELCBJR05PUkVEIElOVkFMSUQgTUNBXG5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE2NCwxMCArMTYwLDYgQEAKIHsKIAlpbnQgcmM7CiAKLQlQX0RFQlVHKCJyZWFkLCBSRVBMWTogcGF0aGlkID0gMHglMDRYLCBtc2dpZCA9IDB4JTA4WCwgdHJnY2xzID0gIgotCQkiMHglMDhYXG5cbiIsCi0JCW1vbnByaXYtPnBhdGgtPnBhdGhpZCwgbW9ubXNnLT5tc2cuaWQsIG1vbm1zZy0+bXNnLmNsYXNzKTsKLQogCXJjID0gaXVjdl9tZXNzYWdlX3JlcGx5KG1vbnByaXYtPnBhdGgsICZtb25tc2ctPm1zZywKIAkJCQlJVUNWX0lQUk1EQVRBLCBOVUxMLCAwKTsKIAlhdG9taWNfZGVjKCZtb25wcml2LT5tc2dsaW1fY291bnQpOwpAQCAtMjAyLDE1ICsxOTQsMTIgQEAKIAlzdHJ1Y3QgbW9uX3ByaXZhdGUgKm1vbnByaXY7CiAKIAltb25wcml2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vbl9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFtb25wcml2KSB7Ci0JCVBfRVJST1IoIm5vIG1lbW9yeSBmb3IgbW9ucHJpdlxuIik7CisJaWYgKCFtb25wcml2KQogCQlyZXR1cm4gTlVMTDsKLQl9CiAJZm9yIChpID0gMDsgaSA8IE1PTl9NU0dMSU07IGkrKykgewogCQltb25wcml2LT5tc2dfYXJyYXlbaV0gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgbW9uX21zZyksCiAJCQkJCQkgICAgR0ZQX0tFUk5FTCk7CiAJCWlmICghbW9ucHJpdi0+bXNnX2FycmF5W2ldKSB7Ci0JCQlQX0VSUk9SKCJvcGVuLCBubyBtZW1vcnkgZm9yIG1zZ19hcnJheVxuIik7CiAJCQltb25fZnJlZV9tZW0obW9ucHJpdik7CiAJCQlyZXR1cm4gTlVMTDsKIAkJfQpAQCAtMjE4LDQxICsyMDcsMTAgQEAKIAlyZXR1cm4gbW9ucHJpdjsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIG1vbl9yZWFkX2RlYnVnKHN0cnVjdCBtb25fbXNnICptb25tc2csCi0JCQkJICBzdHJ1Y3QgbW9uX3ByaXZhdGUgKm1vbnByaXYpCi17Ci0jaWZkZWYgTU9OX0RFQlVHCi0JdTggbXNnX3R5cGVbMl0sIG1jYV90eXBlOwotCXVuc2lnbmVkIGxvbmcgcmVjb3Jkc19sZW47Ci0KLQlyZWNvcmRzX2xlbiA9IG1vbl9yZWNfZW5kKG1vbm1zZykgLSBtb25fcmVjX3N0YXJ0KG1vbm1zZykgKyAxOwotCi0JbWVtY3B5KG1zZ190eXBlLCAmbW9ubXNnLT5tc2cuY2xhc3MsIDIpOwotCUVCQ0FTQyhtc2dfdHlwZSwgMik7Ci0JbWNhX3R5cGUgPSBtb25fbWNhX3R5cGUobW9ubXNnLCAwKTsKLQlFQkNBU0MoJm1jYV90eXBlLCAxKTsKLQotCVBfREVCVUcoInJlYWQsIG1vbl9yZWFkX2luZGV4ID0gJWksIG1vbl93cml0ZV9pbmRleCA9ICVpXG4iLAotCQltb25wcml2LT5yZWFkX2luZGV4LCBtb25wcml2LT53cml0ZV9pbmRleCk7Ci0JUF9ERUJVRygicmVhZCwgcGF0aGlkID0gMHglMDRYLCBtc2dpZCA9IDB4JTA4WCwgdHJnY2xzID0gMHglMDhYXG4iLAotCQltb25wcml2LT5wYXRoLT5wYXRoaWQsIG1vbm1zZy0+bXNnLmlkLCBtb25tc2ctPm1zZy5jbGFzcyk7Ci0JUF9ERUJVRygicmVhZCwgbXNnX3R5cGUgPSAnJWMlYycsIG1jYV90eXBlID0gJyVjJyAvIDB4JVggLyAweCVYXG4iLAotCQltc2dfdHlwZVswXSwgbXNnX3R5cGVbMV0sIG1jYV90eXBlID8gbWNhX3R5cGUgOiAnWCcsCi0JCW1vbl9tY2FfdHlwZShtb25tc2csIDEpLCBtb25fbWNhX3R5cGUobW9ubXNnLCAyKSk7Ci0JUF9ERUJVRygicmVhZCwgTUNBOiBzdGFydCA9IDB4JWxYLCBlbmQgPSAweCVsWFxuIiwKLQkJbW9uX21jYV9zdGFydChtb25tc2cpLCBtb25fbWNhX2VuZChtb25tc2cpKTsKLQlQX0RFQlVHKCJyZWFkLCBSRUM6IHN0YXJ0ID0gMHglWCwgZW5kID0gMHglWCwgbGVuID0gJWx1XG5cbiIsCi0JCW1vbl9yZWNfc3RhcnQobW9ubXNnKSwgbW9uX3JlY19lbmQobW9ubXNnKSwgcmVjb3Jkc19sZW4pOwotCWlmIChtb25fbWNhX3NpemUobW9ubXNnKSA+IDEyKQotCQlQX0RFQlVHKCJSRUFELCBNT1JFIFRIQU4gT05FIE1DQVxuXG4iKTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgbW9uX25leHRfbWNhKHN0cnVjdCBtb25fbXNnICptb25tc2cpCiB7CiAJaWYgKGxpa2VseSgobW9uX21jYV9zaXplKG1vbm1zZykgLSBtb25tc2ctPm1jYV9vZmZzZXQpID09IDEyKSkKIAkJcmV0dXJuOwotCVBfREVCVUcoIlJFQUQsIE5FWFQgTUNBXG5cbiIpOwogCW1vbm1zZy0+bWNhX29mZnNldCArPSAxMjsKIAltb25tc2ctPnBvcyA9IDA7CiB9CkBAIC0yNjksNyArMjI3LDYgQEAKIAkJbW9ubXNnLT5tc2dsaW1fcmVhY2hlZCA9IDA7CiAJCW1vbm1zZy0+cG9zID0gMDsKIAkJbW9ubXNnLT5tY2Ffb2Zmc2V0ID0gMDsKLQkJUF9XQVJOSU5HKCJyZWFkLCBtZXNzYWdlIGxpbWl0IHJlYWNoZWRcbiIpOwogCQltb25wcml2LT5yZWFkX2luZGV4ID0gKG1vbnByaXYtPnJlYWRfaW5kZXggKyAxKSAlCiAJCQkJICAgICAgTU9OX01TR0xJTTsKIAkJYXRvbWljX2RlYygmbW9ucHJpdi0+cmVhZF9yZWFkeSk7CkBAIC0yODYsMTAgKzI0Myw2IEBACiB7CiAJc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2ID0gcGF0aC0+cHJpdmF0ZTsKIAotCVBfREVCVUcoIklVQ1YgY29ubmVjdGlvbiBjb21wbGV0ZWRcbiIpOwotCVBfREVCVUcoIklVQ1YgQUNDRVBUIChmcm9tICpNT05JVE9SKTogVmVyc2lvbiA9IDB4JTAyWCwgRXZlbnQgPSAiCi0JCSIweCUwMlgsIFNhbXBsZSA9IDB4JTAyWFxuIiwKLQkJaXB1c2VyWzBdLCBpcHVzZXJbMV0sIGlwdXNlclsyXSk7CiAJYXRvbWljX3NldCgmbW9ucHJpdi0+aXVjdl9jb25uZWN0ZWQsIDEpOwogCXdha2VfdXAoJm1vbl9jb25uX3dhaXRfcXVldWUpOwogfQpAQCAtMzEwLDcgKzI2Myw2IEBACiB7CiAJc3RydWN0IG1vbl9wcml2YXRlICptb25wcml2ID0gcGF0aC0+cHJpdmF0ZTsKIAotCVBfREVCVUcoIklVQ1YgbWVzc2FnZSBwZW5kaW5nXG4iKTsKIAltZW1jcHkoJm1vbnByaXYtPm1zZ19hcnJheVttb25wcml2LT53cml0ZV9pbmRleF0tPm1zZywKIAkgICAgICAgbXNnLCBzaXplb2YoKm1zZykpOwogCWlmIChhdG9taWNfaW5jX3JldHVybigmbW9ucHJpdi0+bXNnbGltX2NvdW50KSA9PSBNT05fTVNHTElNKSB7CkBAIC0zNDAsNiArMjkyLDcgQEAKIAkvKgogCSAqIG9ubHkgb25lIHVzZXIgYWxsb3dlZAogCSAqLworCWxvY2tfa2VybmVsKCk7CiAJcmMgPSAtRUJVU1k7CiAJaWYgKHRlc3RfYW5kX3NldF9iaXQoTU9OX0lOX1VTRSwgJm1vbl9pbl91c2UpKQogCQlnb3RvIG91dDsKQEAgLTM3NSw4ICszMjgsOCBAQAogCQlyYyA9IC1FSU87CiAJCWdvdG8gb3V0X3BhdGg7CiAJfQotCVBfSU5GTygib3BlbiwgZXN0YWJsaXNoZWQgY29ubmVjdGlvbiB0byAqTU9OSVRPUiBzZXJ2aWNlXG5cbiIpOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IG1vbnByaXY7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKIAogb3V0X3BhdGg6CkBAIC0zODYsNiArMzM5LDcgQEAKIG91dF91c2U6CiAJY2xlYXJfYml0KE1PTl9JTl9VU0UsICZtb25faW5fdXNlKTsKIG91dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC00MDAsOCArMzU0LDYgQEAKIAlyYyA9IGl1Y3ZfcGF0aF9zZXZlcihtb25wcml2LT5wYXRoLCB1c2VyX2RhdGFfc2V2ZXIpOwogCWlmIChyYykKIAkJUF9FUlJPUigiY2xvc2UsIGl1Y3Zfc2V2ZXIgZmFpbGVkIHdpdGggcmMgPSAlaVxuIiwgcmMpOwotCWVsc2UKLQkJUF9JTkZPKCJjbG9zZSwgdGVybWluYXRlZCBjb25uZWN0aW9uIHRvICpNT05JVE9SIHNlcnZpY2VcbiIpOwogCiAJYXRvbWljX3NldCgmbW9ucHJpdi0+aXVjdl9zZXZlcmVkLCAwKTsKIAlhdG9taWNfc2V0KCZtb25wcml2LT5pdWN2X2Nvbm5lY3RlZCwgMCk7CkBAIC00NDIsMTAgKzM5NCw4IEBACiAJCW1vbm1zZyA9IG1vbnByaXYtPm1zZ19hcnJheVttb25wcml2LT5yZWFkX2luZGV4XTsKIAl9CiAKLQlpZiAoIW1vbm1zZy0+cG9zKSB7CisJaWYgKCFtb25tc2ctPnBvcykKIAkJbW9ubXNnLT5wb3MgPSBtb25fbWNhX3N0YXJ0KG1vbm1zZykgKyBtb25tc2ctPm1jYV9vZmZzZXQ7Ci0JCW1vbl9yZWFkX2RlYnVnKG1vbm1zZywgbW9ucHJpdik7Ci0JfQogCWlmIChtb25fY2hlY2tfbWNhKG1vbm1zZykpCiAJCWdvdG8gcmVwbHk7CiAKQEAgLTUzMSw3ICs0ODEsNiBAQAogCQlQX0VSUk9SKCJmYWlsZWQgdG8gcmVnaXN0ZXIgd2l0aCBpdWN2IGRyaXZlclxuIik7CiAJCXJldHVybiByYzsKIAl9Ci0JUF9JTkZPKCJvcGVuLCByZWdpc3RlcmVkIHdpdGggSVVDVlxuIik7CiAKIAlyYyA9IHNlZ21lbnRfdHlwZShtb25fZGNzc19uYW1lKTsKIAlpZiAocmMgPCAwKSB7CkBAIC01NTUsMTMgKzUwNCw4IEBACiAJZGNzc19ta25hbWUobW9uX2Rjc3NfbmFtZSwgJnVzZXJfZGF0YV9jb25uZWN0WzhdKTsKIAogCXJjID0gbWlzY19yZWdpc3RlcigmbW9uX2Rldik7Ci0JaWYgKHJjIDwgMCApIHsKLQkJUF9FUlJPUigibWlzY19yZWdpc3RlciBmYWlsZWQsIHJjID0gJWlcbiIsIHJjKTsKKwlpZiAocmMgPCAwICkKIAkJZ290byBvdXQ7Ci0JfQotCVBfSU5GTygiTG9hZGVkIHNlZ21lbnQgJXMgZnJvbSAlcCB0byAlcCwgc2l6ZSA9ICVsdSBCeXRlXG4iLAotCQltb25fZGNzc19uYW1lLCAodm9pZCAqKSBtb25fZGNzc19zdGFydCwgKHZvaWQgKikgbW9uX2Rjc3NfZW5kLAotCQltb25fZGNzc19lbmQgLSBtb25fZGNzc19zdGFydCArIDEpOwogCXJldHVybiAwOwogCiBvdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9tb253cml0ZXIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCmluZGV4IGE4NmMwNTMuLjRkNzFhYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL21vbndyaXRlci5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgpAQCAtMTc5LDEwICsxODAsMTIgQEAKIAltb25wcml2ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1vbl9wcml2YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtb25wcml2KQogCQlyZXR1cm4gLUVOT01FTTsKKwlsb2NrX2tlcm5lbCgpOwogCUlOSVRfTElTVF9IRUFEKCZtb25wcml2LT5saXN0KTsKIAltb25wcml2LT5oZHJfdG9fcmVhZCA9IHNpemVvZihtb25wcml2LT5oZHIpOwogCW11dGV4X2luaXQoJm1vbnByaXYtPnRocmVhZF9tdXRleCk7CiAJZmlscC0+cHJpdmF0ZV9kYXRhID0gbW9ucHJpdjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9yYXczMjcwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9yYXczMjcwLmMKaW5kZXggMGQ5OGYxZi4uODFhOTZlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvcmF3MzI3MC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3JhdzMyNzAuYwpAQCAtMTUzLDE5ICsxNTMsMTAgQEAKIAlzdHJ1Y3QgcmF3MzI3MF9yZXF1ZXN0ICpycTsKIAogCXJxID0gYWxsb2NfYm9vdG1lbV9sb3coc2l6ZW9mKHN0cnVjdCByYXczMjcwKSk7Ci0JaWYgKCFycSkKLQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0JbWVtc2V0KHJxLCAwLCBzaXplb2Yoc3RydWN0IHJhdzMyNzBfcmVxdWVzdCkpOwogCiAJLyogYWxsb2Mgb3V0cHV0IGJ1ZmZlci4gKi8KLQlpZiAoc2l6ZSA+IDApIHsKKwlpZiAoc2l6ZSA+IDApCiAJCXJxLT5idWZmZXIgPSBhbGxvY19ib290bWVtX2xvdyhzaXplKTsKLQkJaWYgKCFycS0+YnVmZmVyKSB7Ci0JCQlmcmVlX2Jvb3RtZW0oKHVuc2lnbmVkIGxvbmcpIHJxLAotCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCByYXczMjcwKSk7Ci0JCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQkJfQotCX0KIAlycS0+c2l6ZSA9IHNpemU7CiAJSU5JVF9MSVNUX0hFQUQoJnJxLT5saXN0KTsKIApAQCAtMzcyLDE3ICszNjMsMTcgQEAKIAogCWlmIChJU19FUlIoaXJiKSkKIAkJcmMgPSBSQVczMjcwX0lPX1JFVFJZOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX0hBTFRfRlVOQykgeworCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKIAkJcnEtPnJjID0gLUVJTzsKIAkJcmMgPSBSQVczMjcwX0lPX0RPTkU7Ci0JfSBlbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgPT0gIChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCB8Ci0JCQkJCURFVl9TVEFUX1VOSVRfRVhDRVApKSB7CisJfSBlbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCB8CisJCQkJCSAgIERFVl9TVEFUX1VOSVRfRVhDRVApKSB7CiAJCS8qIEhhbmRsZSBDRS1ERS1VRSBhbmQgc3Vic2VxdWVudCBVREUgKi8KIAkJc2V0X2JpdChSQVczMjcwX0ZMQUdTX0JVU1ksICZycC0+ZmxhZ3MpOwogCQlyYyA9IFJBVzMyNzBfSU9fQlVTWTsKIAl9IGVsc2UgaWYgKHRlc3RfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnJwLT5mbGFncykpIHsKIAkJLyogV2FpdCBmb3IgVURFIGlmIGJ1c3kgZmxhZyBpcyBzZXQuICovCi0JCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewogCQkJY2xlYXJfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnJwLT5mbGFncyk7CiAJCQkvKiBHb3QgaXQsIG5vdyByZXRyeS4gKi8KIAkJCXJjID0gUkFXMzI3MF9JT19SRVRSWTsKQEAgLTQ5Nyw3ICs0ODgsNyBAQAogCSAqIFVuaXQtQ2hlY2sgUHJvY2Vzc2luZzoKIAkgKiBFeHBlY3QgQ29tbWFuZCBSZWplY3Qgb3IgSW50ZXJ2ZW50aW9uIFJlcXVpcmVkLgogCSAqLwotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAJCS8qIFJlcXVlc3QgZmluaXNoZWQgYWJub3JtYWxseS4gKi8KIAkJaWYgKGlyYi0+ZWN3WzBdICYgU05TMF9JTlRFUlZFTlRJT05fUkVRKSB7CiAJCQlzZXRfYml0KFJBVzMyNzBfRkxBR1NfQlVTWSwgJnZpZXctPmRldi0+ZmxhZ3MpOwpAQCAtNTA1LDE2ICs0OTYsMTYgQEAKIAkJfQogCX0KIAlpZiAocnEpIHsKLQkJaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAJCQlpZiAoaXJiLT5lY3dbMF0gJiBTTlMwX0NNRF9SRUpFQ1QpCiAJCQkJcnEtPnJjID0gLUVPUE5PVFNVUFA7CiAJCQllbHNlCiAJCQkJcnEtPnJjID0gLUVJTzsKIAkJfSBlbHNlCiAJCQkvKiBSZXF1ZXN0IGZpbmlzaGVkIG5vcm1hbGx5LiBDb3B5IHJlc2lkdWFsIGNvdW50LiAqLwotCQkJcnEtPnJlc2NudCA9IGlyYi0+c2Nzdy5jb3VudDsKKwkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCX0KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJc2V0X2JpdChSQVczMjcwX0ZMQUdTX0FUVE4sICZ2aWV3LT5kZXYtPmZsYWdzKTsKIAkJd2FrZV91cCgmcmF3MzI3MF93YWl0X3F1ZXVlKTsKIAl9CkBAIC01NDksNyArNTQwLDYgQEAKIAkJICAgc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnEpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQl3YWl0X3F1ZXVlX2hlYWRfdCB3cTsKIAlpbnQgcmM7CiAKICNpZmRlZiBDT05GSUdfVE4zMjcwX0NPTlNPTEUKQEAgLTU2NiwyMCArNTU2LDIwIEBACiAJCXJldHVybiBycS0+cmM7CiAJfQogI2VuZGlmCi0JaW5pdF93YWl0cXVldWVfaGVhZCgmd3EpOwogCXJxLT5jYWxsYmFjayA9IHJhdzMyNzBfd2FrZV9pbml0OwotCXJxLT5jYWxsYmFja19kYXRhID0gJndxOworCXJxLT5jYWxsYmFja19kYXRhID0gJnJhdzMyNzBfd2FpdF9xdWV1ZTsKIAlzcGluX2xvY2tfaXJxc2F2ZShnZXRfY2N3ZGV2X2xvY2sodmlldy0+ZGV2LT5jZGV2KSwgZmxhZ3MpOwogCXJjID0gX19yYXczMjcwX3N0YXJ0KHJwLCB2aWV3LCBycSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2sodmlldy0+ZGV2LT5jZGV2KSwgZmxhZ3MpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCS8qIE5vdyB3YWl0IGZvciB0aGUgY29tcGxldGlvbi4gKi8KLQlyYyA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSh3cSwgcmF3MzI3MF9yZXF1ZXN0X2ZpbmFsKHJxKSk7CisJcmMgPSB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUocmF3MzI3MF93YWl0X3F1ZXVlLAorCQkJCSAgICAgIHJhdzMyNzBfcmVxdWVzdF9maW5hbChycSkpOwogCWlmIChyYyA9PSAtRVJFU1RBUlRTWVMpIHsJLyogSW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuICovCiAJCXJhdzMyNzBfaGFsdF9pbyh2aWV3LT5kZXYsIHJxKTsKIAkJLyogTm8gd2FpdCBmb3IgdGhlIGhhbHQgdG8gY29tcGxldGUuICovCi0JCXdhaXRfZXZlbnQod3EsIHJhdzMyNzBfcmVxdWVzdF9maW5hbChycSkpOworCQl3YWl0X2V2ZW50KHJhdzMyNzBfd2FpdF9xdWV1ZSwgcmF3MzI3MF9yZXF1ZXN0X2ZpbmFsKHJxKSk7CiAJCXJldHVybiAtRVJFU1RBUlRTWVM7CiAJfQogCXJldHVybiBycS0+cmM7CkBAIC02MjAsNyArNjEwLDYgQEAKIAkJcnAtPmNvbHMgPSAxMzI7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgInZyZGNjcm1kIGlzIDB4JS44eFxuIiwgbW9kZWwpOwogCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwLmMKaW5kZXggMmM3YTFlZS4uM2M4YjI1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHAuYwpAQCAtNTA2LDYgKzUwNiw4IEBACiAJaWYgKHNjYnVmLT52YWxpZGl0eV9zY2xwX3NlbmRfbWFzaykKIAkJc2NscF9zZW5kX21hc2sgPSBzY2J1Zi0+c2NscF9zZW5kX21hc2s7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF9sb2NrLCBmbGFncyk7CisJaWYgKHNjYnVmLT52YWxpZGl0eV9zY2xwX2FjdGl2ZV9mYWNpbGl0eV9tYXNrKQorCQlzY2xwX2ZhY2lsaXRpZXMgPSBzY2J1Zi0+c2NscF9hY3RpdmVfZmFjaWxpdHlfbWFzazsKIAlzY2xwX2Rpc3BhdGNoX3N0YXRlX2NoYW5nZSgpOwogfQogCkBAIC03ODIsMTEgKzc4NCw5IEBACiAJLyogSXMgdGhpcyB0aGUgaW50ZXJydXB0IHdlIGFyZSB3YWl0aW5nIGZvcj8gKi8KIAlpZiAoZmluaXNoZWRfc2NjYiA9PSAwKQogCQlyZXR1cm47Ci0JaWYgKGZpbmlzaGVkX3NjY2IgIT0gKHUzMikgKGFkZHJfdCkgc2NscF9pbml0X3NjY2IpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyBTQ0xQX0hFQURFUiAidW5zb2xpY2l0ZWQgaW50ZXJydXB0ICIKLQkJICAgICAgICJmb3IgYnVmZmVyIGF0IDB4JXhcbiIsIGZpbmlzaGVkX3NjY2IpOwotCQlyZXR1cm47Ci0JfQorCWlmIChmaW5pc2hlZF9zY2NiICE9ICh1MzIpIChhZGRyX3QpIHNjbHBfaW5pdF9zY2NiKQorCQlwYW5pYygic2NscDogdW5zb2xpY2l0ZWQgaW50ZXJydXB0IGZvciBidWZmZXIgYXQgMHgleFxuIiwKKwkJICAgICAgZmluaXNoZWRfc2NjYik7CiAJc3Bpbl9sb2NrKCZzY2xwX2xvY2spOwogCWlmIChzY2xwX3J1bm5pbmdfc3RhdGUgPT0gc2NscF9ydW5uaW5nX3N0YXRlX3J1bm5pbmcpIHsKIAkJc2NscF9pbml0X3JlcS5zdGF0dXMgPSBTQ0xQX1JFUV9ET05FOwpAQCAtODgzLDggKzg4Myw2IEBACiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgcmM7CiAKLQlpZiAoIU1BQ0hJTkVfSEFTX1NDTFApCi0JCXJldHVybiAtRU5PREVWOwogCXNwaW5fbG9ja19pcnFzYXZlKCZzY2xwX2xvY2ssIGZsYWdzKTsKIAkvKiBDaGVjayBmb3IgcHJldmlvdXMgb3IgcnVubmluZyBpbml0aWFsaXphdGlvbiAqLwogCWlmIChzY2xwX2luaXRfc3RhdGUgIT0gc2NscF9pbml0X3N0YXRlX3VuaW5pdGlhbGl6ZWQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NtZC5jCmluZGV4IGI1YzIzMzkuLjBjMmI3NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY21kLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jbWQuYwpAQCAtMTEsNiArMTEsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW16b25lLmg+CisjaW5jbHVkZSA8bGludXgvbWVtb3J5Lmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KICNpbmNsdWRlICJzY2xwLmgiCkBAIC00Myw2ICs0Niw4IEBACiAKIHU2NCBzY2xwX2ZhY2lsaXRpZXM7CiBzdGF0aWMgdTggc2NscF9mYWM4NDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcnptOworc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBybm1heDsKIAogc3RhdGljIGludCBfX2luaXQgc2NscF9jbWRfc3luY19lYXJseShzY2xwX2NtZHdfdCBjbWQsIHZvaWQgKnNjY2IpCiB7CkBAIC02Miw3ICs2Nyw3IEBACiAJcmV0dXJuIHJjOwogfQogCi12b2lkIF9faW5pdCBzY2xwX3JlYWRfaW5mb19lYXJseSh2b2lkKQorc3RhdGljIHZvaWQgX19pbml0IHNjbHBfcmVhZF9pbmZvX2Vhcmx5KHZvaWQpCiB7CiAJaW50IHJjOwogCWludCBpOwpAQCAtOTIsMzQgKzk3LDMzIEBACiAKIHZvaWQgX19pbml0IHNjbHBfZmFjaWxpdGllc19kZXRlY3Qodm9pZCkKIHsKLQlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQotCQlyZXR1cm47Ci0Jc2NscF9mYWNpbGl0aWVzID0gZWFybHlfcmVhZF9pbmZvX3NjY2IuZmFjaWxpdGllczsKLQlzY2xwX2ZhYzg0ID0gZWFybHlfcmVhZF9pbmZvX3NjY2IuZmFjODQ7Ci19Ci0KLXVuc2lnbmVkIGxvbmcgbG9uZyBfX2luaXQgc2NscF9tZW1vcnlfZGV0ZWN0KHZvaWQpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIG1lbXNpemU7CiAJc3RydWN0IHJlYWRfaW5mb19zY2NiICpzY2NiOwogCisJc2NscF9yZWFkX2luZm9fZWFybHkoKTsKIAlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQotCQlyZXR1cm4gMDsKKwkJcmV0dXJuOworCiAJc2NjYiA9ICZlYXJseV9yZWFkX2luZm9fc2NjYjsKLQlpZiAoc2NjYi0+cm5zaXplKQotCQltZW1zaXplID0gc2NjYi0+cm5zaXplIDw8IDIwOwotCWVsc2UKLQkJbWVtc2l6ZSA9IHNjY2ItPnJuc2l6ZTIgPDwgMjA7Ci0JaWYgKHNjY2ItPnJubWF4KQotCQltZW1zaXplICo9IHNjY2ItPnJubWF4OwotCWVsc2UKLQkJbWVtc2l6ZSAqPSBzY2NiLT5ybm1heDI7Ci0JcmV0dXJuIG1lbXNpemU7CisJc2NscF9mYWNpbGl0aWVzID0gc2NjYi0+ZmFjaWxpdGllczsKKwlzY2xwX2ZhYzg0ID0gc2NjYi0+ZmFjODQ7CisJcm5tYXggPSBzY2NiLT5ybm1heCA/IHNjY2ItPnJubWF4IDogc2NjYi0+cm5tYXgyOworCXJ6bSA9IHNjY2ItPnJuc2l6ZSA/IHNjY2ItPnJuc2l6ZSA6IHNjY2ItPnJuc2l6ZTI7CisJcnptIDw8PSAyMDsKK30KKwordW5zaWduZWQgbG9uZyBsb25nIHNjbHBfZ2V0X3JubWF4KHZvaWQpCit7CisJcmV0dXJuIHJubWF4OworfQorCit1bnNpZ25lZCBsb25nIGxvbmcgc2NscF9nZXRfcnptKHZvaWQpCit7CisJcmV0dXJuIHJ6bTsKIH0KIAogLyoKLSAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgc2NscF9tZW1vcnlfZGV0ZWN0KCksIHdoaWNoIGdldHMgY2FsbGVkCi0gKiBlYXJseSBmcm9tIGVhcmx5LmMgY29kZS4gVGhlcmVmb3JlIHRoZSBzY2NiIHNob3VsZCBoYXZlIHZhbGlkIGNvbnRlbnRzLgorICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBhZnRlciBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KCksIHdoaWNoIGdldHMKKyAqIGNhbGxlZCBmcm9tIGVhcmx5LmMgY29kZS4gVGhlcmVmb3JlIHRoZSBzY2NiIHNob3VsZCBoYXZlIHZhbGlkIGNvbnRlbnRzLgogICovCiB2b2lkIF9faW5pdCBzY2xwX2dldF9pcGxfaW5mbyhzdHJ1Y3Qgc2NscF9pcGxfaW5mbyAqaW5mbykKIHsKQEAgLTI3OCw2ICsyODIsMzA1IEBACiAJcmV0dXJuIGRvX2NwdV9jb25maWd1cmUoU0NMUF9DTURXX0RFQ09ORklHVVJFX0NQVSB8IGNwdSA8PCA4KTsKIH0KIAorI2lmZGVmIENPTkZJR19NRU1PUllfSE9UUExVRworCitzdGF0aWMgREVGSU5FX01VVEVYKHNjbHBfbWVtX211dGV4KTsKK3N0YXRpYyBMSVNUX0hFQUQoc2NscF9tZW1fbGlzdCk7CitzdGF0aWMgdTggc2NscF9tYXhfc3RvcmFnZV9pZDsKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHNjbHBfc3RvcmFnZV9pZHNbMjU2IC8gQklUU19QRVJfTE9OR107CisKK3N0cnVjdCBtZW1vcnlfaW5jcmVtZW50IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CisJdTE2IHJuOworCWludCBzdGFuZGJ5OworCWludCB1c2Vjb3VudDsKK307CisKK3N0cnVjdCBhc3NpZ25fc3RvcmFnZV9zY2NiIHsKKwlzdHJ1Y3Qgc2NjYl9oZWFkZXIgaGVhZGVyOworCXUxNiBybjsKK30gX19wYWNrZWQ7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcm4yYWRkcih1MTYgcm4pCit7CisJcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIChybiAtIDEpICogcnptOworfQorCitzdGF0aWMgaW50IGRvX2Fzc2lnbl9zdG9yYWdlKHNjbHBfY21kd190IGNtZCwgdTE2IHJuKQoreworCXN0cnVjdCBhc3NpZ25fc3RvcmFnZV9zY2NiICpzY2NiOworCWludCByYzsKKworCXNjY2IgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJcmV0dXJuIC1FTk9NRU07CisJc2NjYi0+aGVhZGVyLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlzY2NiLT5ybiA9IHJuOworCXJjID0gZG9fc3luY19yZXF1ZXN0KGNtZCwgc2NjYik7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJY2FzZSAweDAwMjA6CisJY2FzZSAweDAxMjA6CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJjID0gLUVJTzsKKwkJYnJlYWs7CisJfQorb3V0OgorCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZykgc2NjYik7CisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IHNjbHBfYXNzaWduX3N0b3JhZ2UodTE2IHJuKQoreworCXJldHVybiBkb19hc3NpZ25fc3RvcmFnZSgweDAwMGQwMDAxLCBybik7Cit9CisKK3N0YXRpYyBpbnQgc2NscF91bmFzc2lnbl9zdG9yYWdlKHUxNiBybikKK3sKKwlyZXR1cm4gZG9fYXNzaWduX3N0b3JhZ2UoMHgwMDBjMDAwMSwgcm4pOworfQorCitzdHJ1Y3QgYXR0YWNoX3N0b3JhZ2Vfc2NjYiB7CisJc3RydWN0IHNjY2JfaGVhZGVyIGhlYWRlcjsKKwl1MTYgOjE2OworCXUxNiBhc3NpZ25lZDsKKwl1MzIgOjMyOworCXUzMiBlbnRyaWVzWzBdOworfSBfX3BhY2tlZDsKKworc3RhdGljIGludCBzY2xwX2F0dGFjaF9zdG9yYWdlKHU4IGlkKQoreworCXN0cnVjdCBhdHRhY2hfc3RvcmFnZV9zY2NiICpzY2NiOworCWludCByYzsKKwlpbnQgaTsKKworCXNjY2IgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJcmV0dXJuIC1FTk9NRU07CisJc2NjYi0+aGVhZGVyLmxlbmd0aCA9IFBBR0VfU0laRTsKKwlyYyA9IGRvX3N5bmNfcmVxdWVzdCgweDAwMDgwMDAxIHwgaWQgPDwgOCwgc2NjYik7CisJaWYgKHJjKQorCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJY2FzZSAweDAwMjA6CisJCXNldF9iaXQoaWQsIHNjbHBfc3RvcmFnZV9pZHMpOworCQlmb3IgKGkgPSAwOyBpIDwgc2NjYi0+YXNzaWduZWQ7IGkrKykKKwkJCXNjbHBfdW5hc3NpZ25fc3RvcmFnZShzY2NiLT5lbnRyaWVzW2ldID4+IDE2KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmMgPSAtRUlPOworCQlicmVhazsKKwl9CitvdXQ6CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKSBzY2NiKTsKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQgc2NscF9tZW1fY2hhbmdlX3N0YXRlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkgaW50IG9ubGluZSkKK3sKKwlzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCAqaW5jcjsKKwl1bnNpZ25lZCBsb25nIGxvbmcgaXN0YXJ0OworCWludCByYyA9IDA7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGluY3IsICZzY2xwX21lbV9saXN0LCBsaXN0KSB7CisJCWlzdGFydCA9IHJuMmFkZHIoaW5jci0+cm4pOworCQlpZiAoc3RhcnQgKyBzaXplIC0gMSA8IGlzdGFydCkKKwkJCWJyZWFrOworCQlpZiAoc3RhcnQgPiBpc3RhcnQgKyByem0gLSAxKQorCQkJY29udGludWU7CisJCWlmIChvbmxpbmUpIHsKKwkJCWlmIChpbmNyLT51c2Vjb3VudCsrKQorCQkJCWNvbnRpbnVlOworCQkJLyoKKwkJCSAqIERvbid0IGJyZWFrIHRoZSBsb29wIGlmIG9uZSBhc3NpZ24gZmFpbHMuIExvb3AgbWF5CisJCQkgKiBiZSB3YWxrZWQgYWdhaW4gb24gQ0FOQ0VMIGFuZCB3ZSBjYW4ndCBzYXZlCisJCQkgKiBpbmZvcm1hdGlvbiBpZiBzdGF0ZSBjaGFuZ2VkIGJlZm9yZSBvciBub3QuCisJCQkgKiBTbyBjb250aW51ZSBhbmQgaW5jcmVhc2UgdXNlY291bnQgZm9yIGFsbCBpbmNyZW1lbnRzLgorCQkJICovCisJCQlyYyB8PSBzY2xwX2Fzc2lnbl9zdG9yYWdlKGluY3ItPnJuKTsKKwkJfSBlbHNlIHsKKwkJCWlmICgtLWluY3ItPnVzZWNvdW50KQorCQkJCWNvbnRpbnVlOworCQkJc2NscF91bmFzc2lnbl9zdG9yYWdlKGluY3ItPnJuKTsKKwkJfQorCX0KKwlyZXR1cm4gcmMgPyAtRUlPIDogMDsKK30KKworc3RhdGljIGludCBzY2xwX21lbV9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAorCQkJICAgICB1bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqZGF0YSkKK3sKKwl1bnNpZ25lZCBsb25nIHN0YXJ0LCBzaXplOworCXN0cnVjdCBtZW1vcnlfbm90aWZ5ICphcmc7CisJdW5zaWduZWQgY2hhciBpZDsKKwlpbnQgcmMgPSAwOworCisJYXJnID0gZGF0YTsKKwlzdGFydCA9IGFyZy0+c3RhcnRfcGZuIDw8IFBBR0VfU0hJRlQ7CisJc2l6ZSA9IGFyZy0+bnJfcGFnZXMgPDwgUEFHRV9TSElGVDsKKwltdXRleF9sb2NrKCZzY2xwX21lbV9tdXRleCk7CisJZm9yIChpZCA9IDA7IGlkIDw9IHNjbHBfbWF4X3N0b3JhZ2VfaWQ7IGlkKyspCisJCWlmICghdGVzdF9iaXQoaWQsIHNjbHBfc3RvcmFnZV9pZHMpKQorCQkJc2NscF9hdHRhY2hfc3RvcmFnZShpZCk7CisJc3dpdGNoIChhY3Rpb24pIHsKKwljYXNlIE1FTV9PTkxJTkU6CisJCWJyZWFrOworCWNhc2UgTUVNX0dPSU5HX09OTElORToKKwkJcmMgPSBzY2xwX21lbV9jaGFuZ2Vfc3RhdGUoc3RhcnQsIHNpemUsIDEpOworCQlicmVhazsKKwljYXNlIE1FTV9DQU5DRUxfT05MSU5FOgorCQlzY2xwX21lbV9jaGFuZ2Vfc3RhdGUoc3RhcnQsIHNpemUsIDApOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyYyA9IC1FSU5WQUw7CisJCWJyZWFrOworCX0KKwltdXRleF91bmxvY2soJnNjbHBfbWVtX211dGV4KTsKKwlyZXR1cm4gcmMgPyBOT1RJRllfQkFEIDogTk9USUZZX09LOworfQorCitzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHNjbHBfbWVtX25iID0geworCS5ub3RpZmllcl9jYWxsID0gc2NscF9tZW1fbm90aWZpZXIsCit9OworCitzdGF0aWMgdm9pZCBfX2luaXQgYWRkX21lbW9yeV9tZXJnZWQodTE2IHJuKQoreworCXN0YXRpYyB1MTYgZmlyc3Rfcm4sIG51bTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsIHNpemU7CisKKwlpZiAocm4gJiYgZmlyc3Rfcm4gJiYgKGZpcnN0X3JuICsgbnVtID09IHJuKSkgeworCQludW0rKzsKKwkJcmV0dXJuOworCX0KKwlpZiAoIWZpcnN0X3JuKQorCQlnb3RvIHNraXBfYWRkOworCXN0YXJ0ID0gcm4yYWRkcihmaXJzdF9ybik7CisJc2l6ZSA9ICh1bnNpZ25lZCBsb25nIGxvbmcgKSBudW0gKiByem07CisJaWYgKHN0YXJ0ID49IFZNRU1fTUFYX1BIWVMpCisJCWdvdG8gc2tpcF9hZGQ7CisJaWYgKHN0YXJ0ICsgc2l6ZSA+IFZNRU1fTUFYX1BIWVMpCisJCXNpemUgPSBWTUVNX01BWF9QSFlTIC0gc3RhcnQ7CisJYWRkX21lbW9yeSgwLCBzdGFydCwgc2l6ZSk7Citza2lwX2FkZDoKKwlmaXJzdF9ybiA9IHJuOworCW51bSA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBzY2xwX2FkZF9zdGFuZGJ5X21lbW9yeSh2b2lkKQoreworCXN0cnVjdCBtZW1vcnlfaW5jcmVtZW50ICppbmNyOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShpbmNyLCAmc2NscF9tZW1fbGlzdCwgbGlzdCkKKwkJaWYgKGluY3ItPnN0YW5kYnkpCisJCQlhZGRfbWVtb3J5X21lcmdlZChpbmNyLT5ybik7CisJYWRkX21lbW9yeV9tZXJnZWQoMCk7Cit9CisKK3N0YXRpYyB2b2lkIF9faW5pdCBpbnNlcnRfaW5jcmVtZW50KHUxNiBybiwgaW50IHN0YW5kYnksIGludCBhc3NpZ25lZCkKK3sKKwlzdHJ1Y3QgbWVtb3J5X2luY3JlbWVudCAqaW5jciwgKm5ld19pbmNyOworCXN0cnVjdCBsaXN0X2hlYWQgKnByZXY7CisJdTE2IGxhc3Rfcm47CisKKwluZXdfaW5jciA9IGt6YWxsb2Moc2l6ZW9mKCpuZXdfaW5jciksIEdGUF9LRVJORUwpOworCWlmICghbmV3X2luY3IpCisJCXJldHVybjsKKwluZXdfaW5jci0+cm4gPSBybjsKKwluZXdfaW5jci0+c3RhbmRieSA9IHN0YW5kYnk7CisJbGFzdF9ybiA9IDA7CisJcHJldiA9ICZzY2xwX21lbV9saXN0OworCWxpc3RfZm9yX2VhY2hfZW50cnkoaW5jciwgJnNjbHBfbWVtX2xpc3QsIGxpc3QpIHsKKwkJaWYgKGFzc2lnbmVkICYmIGluY3ItPnJuID4gcm4pCisJCQlicmVhazsKKwkJaWYgKCFhc3NpZ25lZCAmJiBpbmNyLT5ybiAtIGxhc3Rfcm4gPiAxKQorCQkJYnJlYWs7CisJCWxhc3Rfcm4gPSBpbmNyLT5ybjsKKwkJcHJldiA9ICZpbmNyLT5saXN0OworCX0KKwlpZiAoIWFzc2lnbmVkKQorCQluZXdfaW5jci0+cm4gPSBsYXN0X3JuICsgMTsKKwlpZiAobmV3X2luY3ItPnJuID4gcm5tYXgpIHsKKwkJa2ZyZWUobmV3X2luY3IpOworCQlyZXR1cm47CisJfQorCWxpc3RfYWRkKCZuZXdfaW5jci0+bGlzdCwgcHJldik7Cit9CisKK3N0cnVjdCByZWFkX3N0b3JhZ2Vfc2NjYiB7CisJc3RydWN0IHNjY2JfaGVhZGVyIGhlYWRlcjsKKwl1MTYgbWF4X2lkOworCXUxNiBhc3NpZ25lZDsKKwl1MTYgc3RhbmRieTsKKwl1MTYgOjE2OworCXUzMiBlbnRyaWVzWzBdOworfSBfX3BhY2tlZDsKKworc3RhdGljIGludCBfX2luaXQgc2NscF9kZXRlY3Rfc3RhbmRieV9tZW1vcnkodm9pZCkKK3sKKwlzdHJ1Y3QgcmVhZF9zdG9yYWdlX3NjY2IgKnNjY2I7CisJaW50IGksIGlkLCBhc3NpZ25lZCwgcmM7CisKKwlpZiAoIWVhcmx5X3JlYWRfaW5mb19zY2NiX3ZhbGlkKQorCQlyZXR1cm4gMDsKKwlpZiAoKHNjbHBfZmFjaWxpdGllcyAmIDB4ZTAwMDAwMDAwMDAwVUxMKSAhPSAweGUwMDAwMDAwMDAwMFVMTCkKKwkJcmV0dXJuIDA7CisJcmMgPSAtRU5PTUVNOworCXNjY2IgPSAodm9pZCAqKSBfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NjYikKKwkJZ290byBvdXQ7CisJYXNzaWduZWQgPSAwOworCWZvciAoaWQgPSAwOyBpZCA8PSBzY2xwX21heF9zdG9yYWdlX2lkOyBpZCsrKSB7CisJCW1lbXNldChzY2NiLCAwLCBQQUdFX1NJWkUpOworCQlzY2NiLT5oZWFkZXIubGVuZ3RoID0gUEFHRV9TSVpFOworCQlyYyA9IGRvX3N5bmNfcmVxdWVzdCgweDAwMDQwMDAxIHwgaWQgPDwgOCwgc2NjYik7CisJCWlmIChyYykKKwkJCWdvdG8gb3V0OworCQlzd2l0Y2ggKHNjY2ItPmhlYWRlci5yZXNwb25zZV9jb2RlKSB7CisJCWNhc2UgMHgwMDEwOgorCQkJc2V0X2JpdChpZCwgc2NscF9zdG9yYWdlX2lkcyk7CisJCQlmb3IgKGkgPSAwOyBpIDwgc2NjYi0+YXNzaWduZWQ7IGkrKykgeworCQkJCWlmICghc2NjYi0+ZW50cmllc1tpXSkKKwkJCQkJY29udGludWU7CisJCQkJYXNzaWduZWQrKzsKKwkJCQlpbnNlcnRfaW5jcmVtZW50KHNjY2ItPmVudHJpZXNbaV0gPj4gMTYsIDAsIDEpOworCQkJfQorCQkJYnJlYWs7CisJCWNhc2UgMHgwMzEwOgorCQkJYnJlYWs7CisJCWNhc2UgMHgwNDEwOgorCQkJZm9yIChpID0gMDsgaSA8IHNjY2ItPmFzc2lnbmVkOyBpKyspIHsKKwkJCQlpZiAoIXNjY2ItPmVudHJpZXNbaV0pCisJCQkJCWNvbnRpbnVlOworCQkJCWFzc2lnbmVkKys7CisJCQkJaW5zZXJ0X2luY3JlbWVudChzY2NiLT5lbnRyaWVzW2ldID4+IDE2LCAxLCAxKTsKKwkJCX0KKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmMgPSAtRUlPOworCQkJYnJlYWs7CisJCX0KKwkJaWYgKCFyYykKKwkJCXNjbHBfbWF4X3N0b3JhZ2VfaWQgPSBzY2NiLT5tYXhfaWQ7CisJfQorCWlmIChyYyB8fCBsaXN0X2VtcHR5KCZzY2xwX21lbV9saXN0KSkKKwkJZ290byBvdXQ7CisJZm9yIChpID0gMTsgaSA8PSBybm1heCAtIGFzc2lnbmVkOyBpKyspCisJCWluc2VydF9pbmNyZW1lbnQoMCwgMSwgMCk7CisJcmMgPSByZWdpc3Rlcl9tZW1vcnlfbm90aWZpZXIoJnNjbHBfbWVtX25iKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCXNjbHBfYWRkX3N0YW5kYnlfbWVtb3J5KCk7CitvdXQ6CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKSBzY2NiKTsKKwlyZXR1cm4gcmM7Cit9CitfX2luaXRjYWxsKHNjbHBfZGV0ZWN0X3N0YW5kYnlfbWVtb3J5KTsKKworI2VuZGlmIC8qIENPTkZJR19NRU1PUllfSE9UUExVRyAqLworCiAvKgogICogQ2hhbm5lbCBwYXRoIGNvbmZpZ3VyYXRpb24gcmVsYXRlZCBmdW5jdGlvbnMuCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2Nvbi5jCmluZGV4IGVhZDEwNDMuLjdlNjE5YzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb24uYwpAQCAtMTQsMTQgKzE0LDEzIEBACiAjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KICNpbmNsdWRlIDxsaW51eC9qaWZmaWVzLmg+CiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgorI2luY2x1ZGUgPGxpbnV4L3Rlcm1pb3MuaD4KICNpbmNsdWRlIDxsaW51eC9lcnIuaD4KIAogI2luY2x1ZGUgInNjbHAuaCIKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAjaW5jbHVkZSAic2NscF90dHkuaCIKIAotI2RlZmluZSBTQ0xQX0NPTl9QUklOVF9IRUFERVIgInNjbHAgY29uc29sZSBkcml2ZXI6ICIKLQogI2RlZmluZSBzY2xwX2NvbnNvbGVfbWFqb3IgNAkJLyogVFRZQVVYX01BSk9SICovCiAjZGVmaW5lIHNjbHBfY29uc29sZV9taW5vciA2NAogI2RlZmluZSBzY2xwX2NvbnNvbGVfbmFtZSAgInR0eVMiCkBAIC0yMjIsOCArMjIxLDYgQEAKIAlJTklUX0xJU1RfSEVBRCgmc2NscF9jb25fcGFnZXMpOwogCWZvciAoaSA9IDA7IGkgPCBNQVhfQ09OU09MRV9QQUdFUzsgaSsrKSB7CiAJCXBhZ2UgPSBhbGxvY19ib290bWVtX2xvd19wYWdlcyhQQUdFX1NJWkUpOwotCQlpZiAocGFnZSA9PSBOVUxMKQotCQkJcmV0dXJuIC1FTk9NRU07CiAJCWxpc3RfYWRkX3RhaWwoKHN0cnVjdCBsaXN0X2hlYWQgKikgcGFnZSwgJnNjbHBfY29uX3BhZ2VzKTsKIAl9CiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfY29uX291dHF1ZXVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uZmlnLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX2NvbmZpZy5jCmluZGV4IDllNzg0ZDUuLmZmZjRmZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY29uZmlnLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jb25maWcuYwpAQCAtOCw2ICs4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvc3lzZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvd29ya3F1ZXVlLmg+CiAjaW5jbHVkZSA8YXNtL3NtcC5oPgpAQCAtNDAsOSArNDEsMTkgQEAKIAlwdXRfb25saW5lX2NwdXMoKTsKIH0KIAotc3RhdGljIHZvaWQgc2NscF9jcHVfY2hhbmdlX25vdGlmeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCitzdGF0aWMgaW50IHNjbHBfY3B1X2t0aHJlYWQodm9pZCAqZGF0YSkKIHsKIAlzbXBfcmVzY2FuX2NwdXMoKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19yZWYgc2NscF9jcHVfY2hhbmdlX25vdGlmeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJLyogQ2FuJ3QgY2FsbCBzbXBfcmVzY2FuX2NwdXMoKSBmcm9tICB3b3JrcXVldWUgY29udGV4dCBzaW5jZSBpdCBtYXkKKwkgKiBkZWFkbG9jayBpbiBjYXNlIG9mIGNwdSBob3RwbHVnLiBTbyB3ZSBoYXZlIHRvIGNyZWF0ZSBhIGtlcm5lbAorCSAqIHRocmVhZCBpbiBvcmRlciB0byBjYWxsIGl0LgorCSAqLworCWt0aHJlYWRfcnVuKHNjbHBfY3B1X2t0aHJlYWQsIE5VTEwsICJjcHVfcmVzY2FuIik7CiB9CiAKIHN0YXRpYyB2b2lkIHNjbHBfY29uZl9yZWNlaXZlcl9mbihzdHJ1Y3QgZXZidWZfaGVhZGVyICpldmJ1ZikKQEAgLTc0LDEwICs4NSw4IEBACiAJSU5JVF9XT1JLKCZzY2xwX2NwdV9jaGFuZ2Vfd29yaywgc2NscF9jcHVfY2hhbmdlX25vdGlmeSk7CiAKIAlyYyA9IHNjbHBfcmVnaXN0ZXIoJnNjbHBfY29uZl9yZWdpc3Rlcik7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBUQUcgImZhaWxlZCB0byByZWdpc3RlciAoJWQpLlxuIiwgcmMpOworCWlmIChyYykKIAkJcmV0dXJuIHJjOwotCX0KIAogCWlmICghKHNjbHBfY29uZl9yZWdpc3Rlci5zY2xwX3NlbmRfbWFzayAmIEVWVFlQX0NPTkZNR01EQVRBX01BU0spKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgVEFHICJubyBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQuXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfY3BpX3N5cy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKaW5kZXggOWYzNzQ1Ni4uZDg4N2JkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9jcGlfc3lzLmMKQEAgLTI3LDYgKzI3LDggQEAKICNkZWZpbmUgQ1BJX0xFTkdUSF9OQU1FIDgKICNkZWZpbmUgQ1BJX0xFTkdUSF9MRVZFTCAxNgogCitzdGF0aWMgREVGSU5FX01VVEVYKHNjbHBfY3BpX211dGV4KTsKKwogc3RydWN0IGNwaV9ldmJ1ZiB7CiAJc3RydWN0IGV2YnVmX2hlYWRlciBoZWFkZXI7CiAJdTgJaWRfZm9ybWF0OwpAQCAtMTI0LDIxICsxMjYsMTUgQEAKIAlpbnQgcmVzcG9uc2U7CiAKIAlyYyA9IHNjbHBfcmVnaXN0ZXIoJnNjbHBfY3BpX2V2ZW50KTsKLQlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY3BpOiBjb3VsZCBub3QgcmVnaXN0ZXIgIgotCQkJInRvIGhhcmR3YXJlIGNvbnNvbGUuXG4iKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0OwotCX0KIAlpZiAoIShzY2xwX2NwaV9ldmVudC5zY2xwX3JlY2VpdmVfbWFzayAmIEVWVFlQX0NUTFBST0dJREVOVF9NQVNLKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJjcGk6IG5vIGNvbnRyb2wgcHJvZ3JhbSAiCi0JCQkiaWRlbnRpZmljYXRpb24gc3VwcG9ydFxuIik7CiAJCXJjID0gLUVPUE5PVFNVUFA7CiAJCWdvdG8gb3V0X3VucmVnaXN0ZXI7CiAJfQogCiAJcmVxID0gY3BpX3ByZXBhcmVfcmVxKCk7CiAJaWYgKElTX0VSUihyZXEpKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNwaTogY291bGQgbm90IGFsbG9jYXRlIHJlcXVlc3RcbiIpOwogCQlyYyA9IFBUUl9FUlIocmVxKTsKIAkJZ290byBvdXRfdW5yZWdpc3RlcjsKIAl9CkBAIC0xNDgsMTAgKzE0NCw4IEBACiAKIAkvKiBBZGQgcmVxdWVzdCB0byBzY2xwIHF1ZXVlICovCiAJcmMgPSBzY2xwX2FkZF9yZXF1ZXN0KHJlcSk7Ci0JaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgImNwaTogY291bGQgbm90IHN0YXJ0IHJlcXVlc3RcbiIpOworCWlmIChyYykKIAkJZ290byBvdXRfZnJlZV9yZXE7Ci0JfQogCiAJd2FpdF9mb3JfY29tcGxldGlvbigmY29tcGxldGlvbik7CiAKQEAgLTIyMyw3ICsyMTcsMTIgQEAKIHN0YXRpYyBzc2l6ZV90IHN5c3RlbV9uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLCBjaGFyICpwYWdlKQogewotCXJldHVybiBzbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgc3lzdGVtX25hbWUpOworCWludCByYzsKKworCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKKwlyYyA9IHNucHJpbnRmKHBhZ2UsIFBBR0VfU0laRSwgIiVzXG4iLCBzeXN0ZW1fbmFtZSk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fbmFtZV9zdG9yZShzdHJ1Y3Qga29iamVjdCAqa29iaiwKQEAgLTIzNyw3ICsyMzYsOSBAQAogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCisJbXV0ZXhfbG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCXNldF9zdHJpbmcoc3lzdGVtX25hbWUsIGJ1Zik7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CiAKIAlyZXR1cm4gbGVuOwogfQpAQCAtMjQ4LDcgKzI0OSwxMiBAQAogc3RhdGljIHNzaXplX3Qgc3lzcGxleF9uYW1lX3Nob3coc3RydWN0IGtvYmplY3QgKmtvYmosCiAJCQkJIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKLQlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3BsZXhfbmFtZSk7CisJaW50IHJjOworCisJbXV0ZXhfbG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJjID0gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3BsZXhfbmFtZSk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmV0dXJuIHJjOwogfQogCiBzdGF0aWMgc3NpemVfdCBzeXNwbGV4X25hbWVfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCkBAIC0yNjIsNyArMjY4LDkgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3BsZXhfbmFtZSwgYnVmKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAogCXJldHVybiBsZW47CiB9CkBAIC0yNzMsNyArMjgxLDEyIEBACiBzdGF0aWMgc3NpemVfdCBzeXN0ZW1fdHlwZV9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCXN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqcGFnZSkKIHsKLQlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJXNcbiIsIHN5c3RlbV90eXBlKTsKKwlpbnQgcmM7CisKKwltdXRleF9sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisJcmMgPSBzbnByaW50ZihwYWdlLCBQQUdFX1NJWkUsICIlc1xuIiwgc3lzdGVtX3R5cGUpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOworCXJldHVybiByYzsKIH0KIAogc3RhdGljIHNzaXplX3Qgc3lzdGVtX3R5cGVfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCkBAIC0yODcsNyArMzAwLDkgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV90eXBlLCBidWYpOworCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCiAJcmV0dXJuIGxlbjsKIH0KQEAgLTI5OCw4ICszMTMsMTEgQEAKIHN0YXRpYyBzc2l6ZV90IHN5c3RlbV9sZXZlbF9zaG93KHN0cnVjdCBrb2JqZWN0ICprb2JqLAogCQkJCSBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKnBhZ2UpCiB7Ci0JdW5zaWduZWQgbG9uZyBsb25nIGxldmVsID0gc3lzdGVtX2xldmVsOworCXVuc2lnbmVkIGxvbmcgbG9uZyBsZXZlbDsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKKwlsZXZlbCA9IHN5c3RlbV9sZXZlbDsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAlyZXR1cm4gc25wcmludGYocGFnZSwgUEFHRV9TSVpFLCAiJSMwMThsbHhcbiIsIGxldmVsKTsKIH0KIApAQCAtMzIwLDggKzMzOCw5IEBACiAJaWYgKCplbmRwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzeXN0ZW1fbGV2ZWwgPSBsZXZlbDsKLQorCW11dGV4X3VubG9jaygmc2NscF9jcGlfbXV0ZXgpOwogCXJldHVybiBsZW47CiB9CiAKQEAgLTMzNCw3ICszNTMsOSBAQAogewogCWludCByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlyYyA9IGNwaV9yZXEoKTsKKwltdXRleF91bmxvY2soJnNjbHBfY3BpX211dGV4KTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIApAQCAtMzczLDEyICszOTQsMTYgQEAKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAorCW11dGV4X2xvY2soJnNjbHBfY3BpX211dGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV9uYW1lLCBzeXN0ZW0pOwogCXNldF9zdHJpbmcoc3lzcGxleF9uYW1lLCBzeXNwbGV4KTsKIAlzZXRfc3RyaW5nKHN5c3RlbV90eXBlLCB0eXBlKTsKIAlzeXN0ZW1fbGV2ZWwgPSBsZXZlbDsKIAotCXJldHVybiBjcGlfcmVxKCk7CisJcmMgPSBjcGlfcmVxKCk7CisJbXV0ZXhfdW5sb2NrKCZzY2xwX2NwaV9tdXRleCk7CisKKwlyZXR1cm4gcmM7CiB9CiBFWFBPUlRfU1lNQk9MKHNjbHBfY3BpX3NldF9kYXRhKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9xdWllc2NlLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYwppbmRleCA0NWZmMjVlLi44NGMxOTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3F1aWVzY2UuYwpAQCAtNTEsMTMgKzUxLDcgQEAKIHN0YXRpYyBpbnQgX19pbml0CiBzY2xwX3F1aWVzY2VfaW5pdCh2b2lkKQogewotCWludCByYzsKLQotCXJjID0gc2NscF9yZWdpc3Rlcigmc2NscF9xdWllc2NlX2V2ZW50KTsKLQlpZiAocmMpCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgInNjbHA6IGNvdWxkIG5vdCByZWdpc3RlciBxdWllc2NlIGhhbmRsZXIgIgotCQkgICAgICAgIihyYz0lZClcbiIsIHJjKTsKLQlyZXR1cm4gcmM7CisJcmV0dXJuIHNjbHBfcmVnaXN0ZXIoJnNjbHBfcXVpZXNjZV9ldmVudCk7CiB9CiAKIG1vZHVsZV9pbml0KHNjbHBfcXVpZXNjZV9pbml0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYwppbmRleCBkYTA5NzgxLi43MTBhZjQyNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9ydy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfcncuYwpAQCAtMTksOCArMTksNiBAQAogI2luY2x1ZGUgInNjbHAuaCIKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAKLSNkZWZpbmUgU0NMUF9SV19QUklOVF9IRUFERVIgInNjbHAgbG93IGxldmVsIGRyaXZlcjogIgotCiAvKgogICogVGhlIHJvb20gZm9yIHRoZSBTQ0NCIChvbmx5IGZvciB3cml0aW5nKSBpcyBub3QgZXF1YWwgdG8gYSBwYWdlcyBzaXplCiAgKiAoYXMgaXQgaXMgc3BlY2lmaWVkIGFzIHRoZSBtYXhpbXVtIHNpemUgaW4gdGhlIFNDTFAgZG9jdW1lbnRhdGlvbikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfc2RpYXMuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfc2RpYXMuYwppbmRleCAxYzA2NDk3Li44Yjg1NDg1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3NkaWFzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF9zZGlhcy5jCkBAIC0yMzksMTAgKzIzOSw4IEBACiAJZGVidWdfcmVnaXN0ZXJfdmlldyhzZGlhc19kYmYsICZkZWJ1Z19zcHJpbnRmX3ZpZXcpOwogCWRlYnVnX3NldF9sZXZlbChzZGlhc19kYmYsIDYpOwogCXJjID0gc2NscF9yZWdpc3Rlcigmc2NscF9zZGlhc19yZWdpc3Rlcik7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygic2NscCByZWdpc3RlciBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJcmV0dXJuIHJjOwotCX0KIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzZGlhc193cSk7CiAJVFJBQ0UoImluaXQgZG9uZVxuIik7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5jIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuYwppbmRleCA0MGIxMTUyLi40MzRiYTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmMKQEAgLTEzLDcgKzEzLDYgQEAKICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC90dHlfZHJpdmVyLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KLSNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTI1LDggKzI0LDYgQEAKICNpbmNsdWRlICJzY2xwX3J3LmgiCiAjaW5jbHVkZSAic2NscF90dHkuaCIKIAotI2RlZmluZSBTQ0xQX1RUWV9QUklOVF9IRUFERVIgInNjbHAgdHR5IGRyaXZlcjogIgotCiAvKgogICogc2l6ZSBvZiBhIGJ1ZmZlciB0aGF0IGNvbGxlY3RzIHNpbmdsZSBjaGFyYWN0ZXJzIGNvbWluZyBpbgogICogdmlhIHNjbHBfdHR5X3B1dF9jaGFyKCkKQEAgLTUwLDggKzQ3LDYgQEAKIHN0YXRpYyBzdHJ1Y3Qgc2NscF9idWZmZXIgKnNjbHBfdHR5YnVmOwogLyogVGltZXIgZm9yIGRlbGF5ZWQgb3V0cHV0IG9mIGNvbnNvbGUgbWVzc2FnZXMuICovCiBzdGF0aWMgc3RydWN0IHRpbWVyX2xpc3Qgc2NscF90dHlfdGltZXI7Ci0vKiBXYWl0cXVldWUgdG8gd2FpdCBmb3IgYnVmZmVycyB0byBnZXQgZW1wdHkuICovCi1zdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3Qgc2NscF90dHlfd2FpdHE7CiAKIHN0YXRpYyBzdHJ1Y3QgdHR5X3N0cnVjdCAqc2NscF90dHk7CiBzdGF0aWMgdW5zaWduZWQgY2hhciBzY2xwX3R0eV9jaGFyc1tTQ0xQX1RUWV9CVUZfU0laRV07CkBAIC01OSwxOSArNTQsMTEgQEAKIAogc3RydWN0IHR0eV9kcml2ZXIgKnNjbHBfdHR5X2RyaXZlcjsKIAotc3RhdGljIHN0cnVjdCBzY2xwX2lvY3RscyBzY2xwX2lvY3RsczsKLXN0YXRpYyBzdHJ1Y3Qgc2NscF9pb2N0bHMgc2NscF9pb2N0bHNfaW5pdCA9Ci17Ci0JOCwJCQkvKiAxIGhvci4gdGFiLiA9IDggc3BhY2VzICovCi0JMCwJCQkvKiBubyBlY2hvIG9mIGlucHV0IGJ5IHRoaXMgZHJpdmVyICovCi0JODAsCQkJLyogODAgY2hhcmFjdGVycy9saW5lICovCi0JMSwJCQkvKiB3cml0ZSBhZnRlciAxLzEwIHMgd2l0aG91dCBmaW5hbCBuZXcgbGluZSAqLwotCU1BWF9LTUVNX1BBR0VTLAkJLyogcXVpY2sgZml4OiBhdm9pZCBfX2FsbG9jX3BhZ2VzICovCi0JTUFYX0tNRU1fUEFHRVMsCQkvKiB0YWtlIDMyLzY0IHBhZ2VzIGZyb20ga2VybmVsIG1lbW9yeSwgKi8KLQkwLAkJCS8qIGRvIG5vdCBjb252ZXJ0IHRvIGxvd2VyIGNhc2UgKi8KLQkweDZjCQkJLyogdG8gc2VwcmF0ZSB1cHBlciBhbmQgbG93ZXIgY2FzZSAqLwotCQkJCS8qICgnJScgaW4gRUJDRElDKSAqLwotfTsKK3N0YXRpYyBpbnQgc2NscF90dHlfdG9sb3dlcjsKK3N0YXRpYyBpbnQgc2NscF90dHlfY29sdW1ucyA9IDgwOworCisjZGVmaW5lIFNQQUNFU19QRVJfVEFCIDgKKyNkZWZpbmUgQ0FTRV9ERUxJTUlURVIgMHg2YyAvKiB0byBzZXBhcmF0ZSB1cHBlciBhbmQgbG93ZXIgY2FzZSAoJSBpbiBFQkNESUMpICovCiAKIC8qIFRoaXMgcm91dGluZSBpcyBjYWxsZWQgd2hlbmV2ZXIgd2UgdHJ5IHRvIG9wZW4gYSBTQ0xQIHRlcm1pbmFsLiAqLwogc3RhdGljIGludApAQCAtOTIsMTM2ICs3OSw2IEBACiAJc2NscF90dHkgPSBOVUxMOwogfQogCi0vKiBleGVjdXRlIGNvbW1hbmRzIHRvIGNvbnRyb2wgdGhlIGkvbyBiZWhhdmlvdXIgb2YgdGhlIFNDTFAgdHR5IGF0IHJ1bnRpbWUgKi8KLXN0YXRpYyBpbnQKLXNjbHBfdHR5X2lvY3RsKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHN0cnVjdCBmaWxlICogZmlsZSwKLQkgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQl1bnNpZ25lZCBpbnQgb2J1ZjsKLQlpbnQgY2hlY2s7Ci0JaW50IHJjOwotCi0JaWYgKHR0eS0+ZmxhZ3MgJiAoMSA8PCBUVFlfSU9fRVJST1IpKQotCQlyZXR1cm4gLUVJTzsKLQlyYyA9IDA7Ci0JY2hlY2sgPSAwOwotCXN3aXRjaCAoY21kKSB7Ci0JY2FzZSBUSU9DU0NMUFNIVEFCOgotCQkvKiBzZXQgd2lkdGggb2YgaG9yaXpvbnRhbCB0YWIJKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmh0YWIsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJZWxzZQotCQkJY2hlY2sgPSAxOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0hUQUI6Ci0JCS8qIGdldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYgkqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuaHRhYiwgKHVuc2lnbmVkIHNob3J0IF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0VDSE86Ci0JCS8qIGVuYWJsZS9kaXNhYmxlIGVjaG8gb2YgaW5wdXQgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmVjaG8sICh1bnNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR0VDSE86Ci0JCS8qIElzIGVjaG8gb2YgaW5wdXQgZW5hYmxlZCA/ICAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuZWNobywgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBTQ09MUzoKLQkJLyogc2V0IG51bWJlciBvZiBjb2x1bW5zIGZvciBvdXRwdXQgICovCi0JCWlmIChnZXRfdXNlcihzY2xwX2lvY3Rscy5jb2x1bW5zLCAodW5zaWduZWQgc2hvcnQgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWVsc2UKLQkJCWNoZWNrID0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdDT0xTOgotCQkvKiBnZXQgbnVtYmVyIG9mIGNvbHVtbnMgZm9yIG91dHB1dCAgKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLmNvbHVtbnMsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNOTDoKLQkJLyogZW5hYmxlL2Rpc2FibGUgd3JpdGluZyB3aXRob3V0IGZpbmFsIG5ldyBsaW5lIGNoYXJhY3RlciAgKi8KLQkJaWYgKGdldF91c2VyKHNjbHBfaW9jdGxzLmZpbmFsX25sLCAoc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHTkw6Ci0JCS8qIElzIHdyaXRpbmcgd2l0aG91dCBmaW5hbCBuZXcgbGluZSBjaGFyYWN0ZXIgZW5hYmxlZCA/ICAqLwotCQlpZiAocHV0X3VzZXIoc2NscF9pb2N0bHMuZmluYWxfbmwsIChzaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNPQlVGOgotCQkvKgotCQkgKiBzZXQgdGhlIG1heGltdW0gYnVmZmVycyBzaXplIGZvciBvdXRwdXQsIHdpbGwgYmUgcm91bmRlZAotCQkgKiB1cCB0byBuZXh0IDRrQiBib3VuZGFyeSBhbmQgc3RvcmVkIGFzIG51bWJlciBvZiBTQ0NCcwotCQkgKiAoNGtCIEJ1ZmZlcnMpIGxpbWl0YXRpb246IDI1NiB4IDRrQgotCQkgKi8KLQkJaWYgKGdldF91c2VyKG9idWYsICh1bnNpZ25lZCBpbnQgX191c2VyICopIGFyZykgPT0gMCkgewotCQkJaWYgKG9idWYgJiAweEZGRikKLQkJCQlzY2xwX2lvY3Rscy5tYXhfc2NjYiA9IChvYnVmID4+IDEyKSArIDE7Ci0JCQllbHNlCi0JCQkJc2NscF9pb2N0bHMubWF4X3NjY2IgPSAob2J1ZiA+PiAxMik7Ci0JCX0gZWxzZQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQR09CVUY6Ci0JCS8qIGdldCB0aGUgbWF4aW11bSBidWZmZXJzIHNpemUgZm9yIG91dHB1dCAgKi8KLQkJb2J1ZiA9IHNjbHBfaW9jdGxzLm1heF9zY2NiIDw8IDEyOwotCQlpZiAocHV0X3VzZXIob2J1ZiwgKHVuc2lnbmVkIGludCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUEdLQlVGOgotCQkvKiBnZXQgdGhlIG51bWJlciBvZiBidWZmZXJzIGdvdCBmcm9tIGtlcm5lbCBhdCBzdGFydHVwICovCi0JCWlmIChwdXRfdXNlcihzY2xwX2lvY3Rscy5rbWVtX3NjY2IsICh1bnNpZ25lZCBzaG9ydCBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNDQVNFOgotCQkvKiBlbmFibGUvZGlzYWJsZSBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSAqLwotCQlpZiAoZ2V0X3VzZXIoc2NscF9pb2N0bHMudG9sb3dlciwgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHQ0FTRToKLQkJLyogSXMgY29udmVyc2lvbiBmcm9tIHVwcGVyIHRvIGxvd2VyIGNhc2Ugb2YgaW5wdXQgZW5hYmxlZD8gKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLnRvbG93ZXIsICh1bnNpZ25lZCBjaGFyIF9fdXNlciAqKSBhcmcpKQotCQkJcmMgPSAtRUZBVUxUOwotCQlicmVhazsKLQljYXNlIFRJT0NTQ0xQU0RFTElNOgotCQkvKgotCQkgKiBzZXQgc3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCBmb3Igc2VwYXJhdGluZyB1cHBlciBhbmQKLQkJICogbG93ZXIgY2FzZSwgMHgwMCBkaXNhYmxlcyB0aGlzIGZlYXR1cmUKLQkJICovCi0JCWlmIChnZXRfdXNlcihzY2xwX2lvY3Rscy5kZWxpbSwgKHVuc2lnbmVkIGNoYXIgX191c2VyICopIGFyZykpCi0JCQlyYyA9IC1FRkFVTFQ7Ci0JCWJyZWFrOwotCWNhc2UgVElPQ1NDTFBHREVMSU06Ci0JCS8qCi0JCSAqIGdldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZAotCQkgKiBsb3dlciBjYXNlLCAweDAwIGRpc2FibGVzIHRoaXMgZmVhdHVyZQotCQkgKi8KLQkJaWYgKHB1dF91c2VyKHNjbHBfaW9jdGxzLmRlbGltLCAodW5zaWduZWQgY2hhciBfX3VzZXIgKikgYXJnKSkKLQkJCXJjID0gLUVGQVVMVDsKLQkJYnJlYWs7Ci0JY2FzZSBUSU9DU0NMUFNJTklUOgotCQkvKiBzZXQgaW5pdGlhbCAoZGVmYXVsdCkgc2NscCBpb2N0bHMgICovCi0JCXNjbHBfaW9jdGxzID0gc2NscF9pb2N0bHNfaW5pdDsKLQkJY2hlY2sgPSAxOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyYyA9IC1FTk9JT0NUTENNRDsKLQkJYnJlYWs7Ci0JfQotCWlmIChjaGVjaykgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCkgewotCQkJc2NscF9zZXRfaHRhYihzY2xwX3R0eWJ1Ziwgc2NscF9pb2N0bHMuaHRhYik7Ci0JCQlzY2xwX3NldF9jb2x1bW5zKHNjbHBfdHR5YnVmLCBzY2xwX2lvY3Rscy5jb2x1bW5zKTsKLQkJfQotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JfQotCXJldHVybiByYzsKLX0KLQogLyoKICAqIFRoaXMgcm91dGluZSByZXR1cm5zIHRoZSBudW1iZXJzIG9mIGNoYXJhY3RlcnMgdGhlIHR0eSBkcml2ZXIKICAqIHdpbGwgYWNjZXB0IGZvciBxdWV1aW5nIHRvIGJlIHdyaXR0ZW4uICBUaGlzIG51bWJlciBpcyBzdWJqZWN0CkBAIC0yNjgsNyArMTI1LDYgQEAKIAkJCQkJICAgIHN0cnVjdCBzY2xwX2J1ZmZlciwgbGlzdCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAl9IHdoaWxlIChidWZmZXIgJiYgc2NscF9lbWl0X2J1ZmZlcihidWZmZXIsIHNjbHBfdHR5YnVmX2NhbGxiYWNrKSk7Ci0Jd2FrZV91cCgmc2NscF90dHlfd2FpdHEpOwogCS8qIGNoZWNrIGlmIHRoZSB0dHkgbmVlZHMgYSB3YWtlIHVwIGNhbGwgKi8KIAlpZiAoc2NscF90dHkgIT0gTlVMTCkgewogCQl0dHlfd2FrZXVwKHNjbHBfdHR5KTsKQEAgLTMxNiwzNyArMTcyLDM3IEBACiAvKgogICogV3JpdGUgYSBzdHJpbmcgdG8gdGhlIHNjbHAgdHR5LgogICovCi1zdGF0aWMgdm9pZAotc2NscF90dHlfd3JpdGVfc3RyaW5nKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnN0ciwgaW50IGNvdW50KQorc3RhdGljIGludCBzY2xwX3R0eV93cml0ZV9zdHJpbmcoY29uc3QgdW5zaWduZWQgY2hhciAqc3RyLCBpbnQgY291bnQsIGludCBtYXlfZmFpbCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXZvaWQgKnBhZ2U7CiAJaW50IHdyaXR0ZW47CisJaW50IG92ZXJhbGxfd3JpdHRlbjsKIAlzdHJ1Y3Qgc2NscF9idWZmZXIgKmJ1ZjsKIAogCWlmIChjb3VudCA8PSAwKQotCQlyZXR1cm47CisJCXJldHVybiAwOworCW92ZXJhbGxfd3JpdHRlbiA9IDA7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAlkbyB7CiAJCS8qIENyZWF0ZSBhIHNjbHAgb3V0cHV0IGJ1ZmZlciBpZiBub25lIGV4aXN0cyB5ZXQgKi8KIAkJaWYgKHNjbHBfdHR5YnVmID09IE5VTEwpIHsKIAkJCXdoaWxlIChsaXN0X2VtcHR5KCZzY2xwX3R0eV9wYWdlcykpIHsKIAkJCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3R0eV9sb2NrLCBmbGFncyk7Ci0JCQkJaWYgKGluX2ludGVycnVwdCgpKQotCQkJCQlzY2xwX3N5bmNfd2FpdCgpOworCQkJCWlmIChtYXlfZmFpbCkKKwkJCQkJZ290byBvdXQ7CiAJCQkJZWxzZQotCQkJCQl3YWl0X2V2ZW50KHNjbHBfdHR5X3dhaXRxLAotCQkJCQkJIWxpc3RfZW1wdHkoJnNjbHBfdHR5X3BhZ2VzKSk7CisJCQkJCXNjbHBfc3luY193YWl0KCk7CiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdHR5X2xvY2ssIGZsYWdzKTsKIAkJCX0KIAkJCXBhZ2UgPSBzY2xwX3R0eV9wYWdlcy5uZXh0OwogCQkJbGlzdF9kZWwoKHN0cnVjdCBsaXN0X2hlYWQgKikgcGFnZSk7Ci0JCQlzY2xwX3R0eWJ1ZiA9IHNjbHBfbWFrZV9idWZmZXIocGFnZSwKLQkJCQkJCSAgICAgICBzY2xwX2lvY3Rscy5jb2x1bW5zLAotCQkJCQkJICAgICAgIHNjbHBfaW9jdGxzLmh0YWIpOworCQkJc2NscF90dHlidWYgPSBzY2xwX21ha2VfYnVmZmVyKHBhZ2UsIHNjbHBfdHR5X2NvbHVtbnMsCisJCQkJCQkgICAgICAgU1BBQ0VTX1BFUl9UQUIpOwogCQl9CiAJCS8qIHRyeSB0byB3cml0ZSB0aGUgc3RyaW5nIHRvIHRoZSBjdXJyZW50IG91dHB1dCBidWZmZXIgKi8KIAkJd3JpdHRlbiA9IHNjbHBfd3JpdGUoc2NscF90dHlidWYsIHN0ciwgY291bnQpOworCQlvdmVyYWxsX3dyaXR0ZW4gKz0gd3JpdHRlbjsKIAkJaWYgKHdyaXR0ZW4gPT0gY291bnQpCiAJCQlicmVhazsKIAkJLyoKQEAgLTM2MywyNyArMjE5LDE3IEBACiAJCWNvdW50IC09IHdyaXR0ZW47CiAJfSB3aGlsZSAoY291bnQgPiAwKTsKIAkvKiBTZXR1cCB0aW1lciB0byBvdXRwdXQgY3VycmVudCBjb25zb2xlIGJ1ZmZlciBhZnRlciAxLzEwIHNlY29uZCAqLwotCWlmIChzY2xwX2lvY3Rscy5maW5hbF9ubCkgewotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCAmJgotCQkgICAgc2NscF9jaGFyc19pbl9idWZmZXIoc2NscF90dHlidWYpICE9IDAgJiYKLQkJICAgICF0aW1lcl9wZW5kaW5nKCZzY2xwX3R0eV90aW1lcikpIHsKLQkJCWluaXRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKLQkJCXNjbHBfdHR5X3RpbWVyLmZ1bmN0aW9uID0gc2NscF90dHlfdGltZW91dDsKLQkJCXNjbHBfdHR5X3RpbWVyLmRhdGEgPSAwVUw7Ci0JCQlzY2xwX3R0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaLzEwOwotCQkJYWRkX3RpbWVyKCZzY2xwX3R0eV90aW1lcik7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAoc2NscF90dHlidWYgIT0gTlVMTCAmJgotCQkgICAgc2NscF9jaGFyc19pbl9idWZmZXIoc2NscF90dHlidWYpICE9IDApIHsKLQkJCWJ1ZiA9IHNjbHBfdHR5YnVmOwotCQkJc2NscF90dHlidWYgPSBOVUxMOwotCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQkJX19zY2xwX3R0eWJ1Zl9lbWl0KGJ1Zik7Ci0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOwotCQl9CisJaWYgKHNjbHBfdHR5YnVmICYmIHNjbHBfY2hhcnNfaW5fYnVmZmVyKHNjbHBfdHR5YnVmKSAmJgorCSAgICAhdGltZXJfcGVuZGluZygmc2NscF90dHlfdGltZXIpKSB7CisJCWluaXRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKKwkJc2NscF90dHlfdGltZXIuZnVuY3Rpb24gPSBzY2xwX3R0eV90aW1lb3V0OworCQlzY2xwX3R0eV90aW1lci5kYXRhID0gMFVMOworCQlzY2xwX3R0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaLzEwOworCQlhZGRfdGltZXIoJnNjbHBfdHR5X3RpbWVyKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF90dHlfbG9jaywgZmxhZ3MpOworb3V0OgorCXJldHVybiBvdmVyYWxsX3dyaXR0ZW47CiB9CiAKIC8qCkBAIC0zOTUsMTEgKzI0MSwxMCBAQAogc2NscF90dHlfd3JpdGUoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpCiB7CiAJaWYgKHNjbHBfdHR5X2NoYXJzX2NvdW50ID4gMCkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAl9Ci0Jc2NscF90dHlfd3JpdGVfc3RyaW5nKGJ1ZiwgY291bnQpOwotCXJldHVybiBjb3VudDsKKwlyZXR1cm4gc2NscF90dHlfd3JpdGVfc3RyaW5nKGJ1ZiwgY291bnQsIDEpOwogfQogCiAvKgpAQCAtNDE3LDkgKzI2MiwxMCBAQAogewogCXNjbHBfdHR5X2NoYXJzW3NjbHBfdHR5X2NoYXJzX2NvdW50KytdID0gY2g7CiAJaWYgKGNoID09ICdcbicgfHwgc2NscF90dHlfY2hhcnNfY291bnQgPj0gU0NMUF9UVFlfQlVGX1NJWkUpIHsKLQkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCk7CisJCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQsIDApOwogCQlzY2xwX3R0eV9jaGFyc19jb3VudCA9IDA7Ci0JfSByZXR1cm4gMTsKKwl9CisJcmV0dXJuIDE7CiB9CiAKIC8qCkBAIC00MzAsNyArMjc2LDcgQEAKIHNjbHBfdHR5X2ZsdXNoX2NoYXJzKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpCiB7CiAJaWYgKHNjbHBfdHR5X2NoYXJzX2NvdW50ID4gMCkgewotCQlzY2xwX3R0eV93cml0ZV9zdHJpbmcoc2NscF90dHlfY2hhcnMsIHNjbHBfdHR5X2NoYXJzX2NvdW50KTsKKwkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCwgMCk7CiAJCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAl9CiB9CkBAIC00NjksNyArMzE1LDcgQEAKIHNjbHBfdHR5X2ZsdXNoX2J1ZmZlcihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogewogCWlmIChzY2xwX3R0eV9jaGFyc19jb3VudCA+IDApIHsKLQkJc2NscF90dHlfd3JpdGVfc3RyaW5nKHNjbHBfdHR5X2NoYXJzLCBzY2xwX3R0eV9jaGFyc19jb3VudCk7CisJCXNjbHBfdHR5X3dyaXRlX3N0cmluZyhzY2xwX3R0eV9jaGFycywgc2NscF90dHlfY2hhcnNfY291bnQsIDApOwogCQlzY2xwX3R0eV9jaGFyc19jb3VudCA9IDA7CiAJfQogfQpAQCAtNTE3LDkgKzM2Myw3IEBACiAgKiBtb2RpZml5IG9yaWdpbmFsIHN0cmluZywKICAqIHJldHVybnMgbGVuZ3RoIG9mIHJlc3VsdGluZyBzdHJpbmcKICAqLwotc3RhdGljIGludAotc2NscF9zd2l0Y2hfY2FzZXModW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQsCi0JCSAgdW5zaWduZWQgY2hhciBkZWxpbSwgaW50IHRvbG93ZXIpCitzdGF0aWMgaW50IHNjbHBfc3dpdGNoX2Nhc2VzKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50KQogewogCXVuc2lnbmVkIGNoYXIgKmlwLCAqb3A7CiAJaW50IHRvZ2dsZTsKQEAgLTUyOSw5ICszNzMsOSBAQAogCWlwID0gb3AgPSBidWY7CiAJd2hpbGUgKGNvdW50LS0gPiAwKSB7CiAJCS8qIGNvbXBhcmUgd2l0aCBzcGVjaWFsIGNoYXJhY3RlciAqLwotCQlpZiAoKmlwID09IGRlbGltKSB7CisJCWlmICgqaXAgPT0gQ0FTRV9ERUxJTUlURVIpIHsKIAkJCS8qIGZvbGxvd2VkIGJ5IGFub3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXI/ICovCi0JCQlpZiAoY291bnQgJiYgaXBbMV0gPT0gZGVsaW0pIHsKKwkJCWlmIChjb3VudCAmJiBpcFsxXSA9PSBDQVNFX0RFTElNSVRFUikgewogCQkJCS8qCiAJCQkJICogLi4uIHRoZW4gcHV0IGEgc2luZ2xlIGNvcHkgb2YgdGhlIHNwZWNpYWwKIAkJCQkgKiBjaGFyYWN0ZXIgdG8gdGhlIG91dHB1dCBzdHJpbmcKQEAgLTU1MCw3ICszOTQsNyBAQAogCQkJLyogbm90IHRoZSBzcGVjaWFsIGNoYXJhY3RlciAqLwogCQkJaWYgKHRvZ2dsZSkKIAkJCQkvKiBidXQgY2FzZSBzd2l0Y2hpbmcgaXMgb24gKi8KLQkJCQlpZiAodG9sb3dlcikKKwkJCQlpZiAoc2NscF90dHlfdG9sb3dlcikKIAkJCQkJLyogc3dpdGNoIHRvIHVwcGVyY2FzZSAqLwogCQkJCQkqb3ArKyA9IF9lYmNfdG91cHBlclsoaW50KSAqaXArK107CiAJCQkJZWxzZQpAQCAtNTcwLDMwICs0MTQsMTIgQEAKIAlpbnQgY291bnQ7CiAKIAljb3VudCA9IGVuZCAtIHN0YXJ0OwotCS8qCi0JICogaWYgc2V0IGluIGlvY3RsIGNvbnZlcnQgRUJDRElDIHRvIGxvd2VyIGNhc2UKLQkgKiAobW9kaWZ5IG9yaWdpbmFsIGlucHV0IGluIFNDQ0IpCi0JICovCi0JaWYgKHNjbHBfaW9jdGxzLnRvbG93ZXIpCisJaWYgKHNjbHBfdHR5X3RvbG93ZXIpCiAJCUVCQ19UT0xPV0VSKHN0YXJ0LCBjb3VudCk7Ci0KLQkvKgotCSAqIGlmIHNldCBpbiBpb2N0bCBmaW5kIG91dCBjaGFyYWN0ZXJzIGluIGxvd2VyIG9yIHVwcGVyIGNhc2UKLQkgKiAoZGVwZW5kcyBvbiBjdXJyZW50IGNhc2UpIHNlcGFyYXRlZCBieSBhIHNwZWNpYWwgY2hhcmFjdGVyLAotCSAqIHdvcmtzIG9uIEVCQ0RJQwotCSAqLwotCWlmIChzY2xwX2lvY3Rscy5kZWxpbSkKLQkJY291bnQgPSBzY2xwX3N3aXRjaF9jYXNlcyhzdGFydCwgY291bnQsCi0JCQkJCSAgc2NscF9pb2N0bHMuZGVsaW0sCi0JCQkJCSAgc2NscF9pb2N0bHMudG9sb3dlcik7Ci0KKwljb3VudCA9IHNjbHBfc3dpdGNoX2Nhc2VzKHN0YXJ0LCBjb3VudCk7CiAJLyogY29udmVydCBFQkNESUMgdG8gQVNDSUkgKG1vZGlmeSBvcmlnaW5hbCBpbnB1dCBpbiBTQ0NCKSAqLwogCXNjbHBfZWJjYXNjX3N0cihzdGFydCwgY291bnQpOwogCi0JLyogaWYgc2V0IGluIGlvY3RsIHdyaXRlIG9wZXJhdG9ycyBpbnB1dCB0byBjb25zb2xlICAqLwotCWlmIChzY2xwX2lvY3Rscy5lY2hvKQotCQlzY2xwX3R0eV93cml0ZShzY2xwX3R0eSwgc3RhcnQsIGNvdW50KTsKLQogCS8qIHRyYW5zZmVyIGlucHV0IHRvIGhpZ2ggbGV2ZWwgZHJpdmVyICovCiAJc2NscF90dHlfaW5wdXQoc3RhcnQsIGNvdW50KTsKIH0KQEAgLTcxNyw3ICs1NDMsNiBAQAogCS53cml0ZV9yb29tID0gc2NscF90dHlfd3JpdGVfcm9vbSwKIAkuY2hhcnNfaW5fYnVmZmVyID0gc2NscF90dHlfY2hhcnNfaW5fYnVmZmVyLAogCS5mbHVzaF9idWZmZXIgPSBzY2xwX3R0eV9mbHVzaF9idWZmZXIsCi0JLmlvY3RsID0gc2NscF90dHlfaW9jdGwsCiB9OwogCiBzdGF0aWMgaW50IF9faW5pdApAQCAtNzM2LDkgKzU2MSw2IEBACiAKIAlyYyA9IHNjbHBfcndfaW5pdCgpOwogCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgU0NMUF9UVFlfUFJJTlRfSEVBREVSCi0JCSAgICAgICAiY291bGQgbm90IHJlZ2lzdGVyIHR0eSAtICIKLQkJICAgICAgICJzY2xwX3J3X2luaXQgcmV0dXJuZWQgJWRcbiIsIHJjKTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJjOwogCX0KQEAgLTc1NCw3ICs1NzYsNiBAQAogCX0KIAlJTklUX0xJU1RfSEVBRCgmc2NscF90dHlfb3V0cXVldWUpOwogCXNwaW5fbG9ja19pbml0KCZzY2xwX3R0eV9sb2NrKTsKLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZzY2xwX3R0eV93YWl0cSk7CiAJaW5pdF90aW1lcigmc2NscF90dHlfdGltZXIpOwogCXNjbHBfdHR5YnVmID0gTlVMTDsKIAlzY2xwX3R0eV9idWZmZXJfY291bnQgPSAwOwpAQCAtNzYzLDExICs1ODQsMTAgQEAKIAkJICogc2F2ZSA0IGNoYXJhY3RlcnMgZm9yIHRoZSBDUFUgbnVtYmVyCiAJCSAqIHdyaXR0ZW4gYXQgc3RhcnQgb2YgZWFjaCBsaW5lIGJ5IFZNL0NQCiAJCSAqLwotCQlzY2xwX2lvY3Rsc19pbml0LmNvbHVtbnMgPSA3NjsKKwkJc2NscF90dHlfY29sdW1ucyA9IDc2OwogCQkvKiBjYXNlIGlucHV0IGxpbmVzIHRvIGxvd2VyY2FzZSAqLwotCQlzY2xwX2lvY3Rsc19pbml0LnRvbG93ZXIgPSAxOworCQlzY2xwX3R0eV90b2xvd2VyID0gMTsKIAl9Ci0Jc2NscF9pb2N0bHMgPSBzY2xwX2lvY3Rsc19pbml0OwogCXNjbHBfdHR5X2NoYXJzX2NvdW50ID0gMDsKIAlzY2xwX3R0eSA9IE5VTEw7CiAKQEAgLTc5Miw5ICs2MTIsNiBAQAogCXR0eV9zZXRfb3BlcmF0aW9ucyhkcml2ZXIsICZzY2xwX29wcyk7CiAJcmMgPSB0dHlfcmVnaXN0ZXJfZHJpdmVyKGRyaXZlcik7CiAJaWYgKHJjKSB7Ci0JCXByaW50ayhLRVJOX0VSUiBTQ0xQX1RUWV9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInR0eV9yZWdpc3Rlcl9kcml2ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJjOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmggYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3R0eS5oCmluZGV4IDBjZTJjMWYuLjRiOTY1YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdHR5LmgKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvc2NscF90dHkuaApAQCAtMTEsNjEgKzExLDggQEAKICNpZm5kZWYgX19TQ0xQX1RUWV9IX18KICNkZWZpbmUgX19TQ0xQX1RUWV9IX18KIAotI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0jaW5jbHVkZSA8bGludXgvdGVybWlvcy5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eV9kcml2ZXIuaD4KIAotLyogVGhpcyBpcyB0aGUgdHlwZSBvZiBkYXRhIHN0cnVjdHVyZXMgc3RvcmluZyBzY2xwIGlvY3RsIHNldHRpbmcuICovCi1zdHJ1Y3Qgc2NscF9pb2N0bHMgewotCXVuc2lnbmVkIHNob3J0IGh0YWI7Ci0JdW5zaWduZWQgY2hhciBlY2hvOwotCXVuc2lnbmVkIHNob3J0IGNvbHVtbnM7Ci0JdW5zaWduZWQgY2hhciBmaW5hbF9ubDsKLQl1bnNpZ25lZCBzaG9ydCBtYXhfc2NjYjsKLQl1bnNpZ25lZCBzaG9ydCBrbWVtX3NjY2I7CS8qIGNhbid0IGJlIG1vZGlmaWVkIGF0IHJ1biB0aW1lICovCi0JdW5zaWduZWQgY2hhciB0b2xvd2VyOwotCXVuc2lnbmVkIGNoYXIgZGVsaW07Ci19OwotCi0vKiBtdXN0IGJlIHVuaXF1ZSwgRklYTUU6IG11c3QgYmUgYWRkZWQgaW4gRG9jdW1lbnRhdGlvbi9pb2N0bF9udW1iZXIudHh0ICovCi0jZGVmaW5lIFNDTFBfSU9DVExfTEVUVEVSICdCJwotCi0vKiBzZXQgd2lkdGggb2YgaG9yaXpvbnRhbCB0YWJ1bGF0b3IgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSFRBQglfSU9XKFNDTFBfSU9DVExfTEVUVEVSLCAwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIGVuYWJsZS9kaXNhYmxlIGVjaG8gb2YgaW5wdXQgKGluZGVwZW5kZW50IGZyb20gbGluZSBkaXNjaXBsaW5lKSAqLwotI2RlZmluZSBUSU9DU0NMUFNFQ0hPCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDEsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgbnVtYmVyIG9mIGNvbHVtcyBmb3Igb3V0cHV0ICovCi0jZGVmaW5lIFRJT0NTQ0xQU0NPTFMJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBlbmFibGUvZGlzYWJsZSB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyICovCi0jZGVmaW5lIFRJT0NTQ0xQU05MCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDQsIHNpZ25lZCBjaGFyKQotLyogc2V0IHRoZSBtYXhpbXVtIGJ1ZmZlcnMgc2l6ZSBmb3Igb3V0cHV0LCByb3VuZGVkIHVwIHRvIG5leHQgNGtCIGJvdW5kYXJ5ICovCi0jZGVmaW5lIFRJT0NTQ0xQU09CVUYJX0lPVyhTQ0xQX0lPQ1RMX0xFVFRFUiwgNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBzZXQgaW5pdGlhbCAoZGVmYXVsdCkgc2NscCBpb2N0bHMgKi8KLSNkZWZpbmUgVElPQ1NDTFBTSU5JVAlfSU8oU0NMUF9JT0NUTF9MRVRURVIsIDYpCi0vKiBlbmFibGUvZGlzYWJsZSBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCAqLwotI2RlZmluZSBUSU9DU0NMUFNDQVNFCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDcsIHVuc2lnbmVkIGNoYXIpCi0vKiBzZXQgc3BlY2lhbCBjaGFyYWN0ZXIgdXNlZCBmb3Igc2VwYXJhdGluZyB1cHBlciBhbmQgbG93ZXIgY2FzZSwgKi8KLS8qIDB4MDAgZGlzYWJsZXMgdGhpcyBmZWF0dXJlICovCi0jZGVmaW5lIFRJT0NTQ0xQU0RFTElNCV9JT1coU0NMUF9JT0NUTF9MRVRURVIsIDksIHVuc2lnbmVkIGNoYXIpCi0KLS8qIGdldCB3aWR0aCBvZiBob3Jpem9udGFsIHRhYnVsYXRvciAqLwotI2RlZmluZSBUSU9DU0NMUEdIVEFCCV9JT1IoU0NMUF9JT0NUTF9MRVRURVIsIDEwLCB1bnNpZ25lZCBzaG9ydCkKLS8qIElzIGVjaG8gb2YgaW5wdXQgZW5hYmxlZCA/IChpbmRlcGVuZGVudCBmcm9tIGxpbmUgZGlzY2lwbGluZSkgKi8KLSNkZWZpbmUgVElPQ1NDTFBHRUNITwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMSwgdW5zaWduZWQgY2hhcikKLS8qIGdldCBudW1iZXIgb2YgY29sdW1zIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ09MUwlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxMiwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyB3cml0aW5nIHdpdGhvdXQgZmluYWwgbmV3IGxpbmUgY2hhcmFjdGVyIGVuYWJsZWQgPyAqLwotI2RlZmluZSBUSU9DU0NMUEdOTAlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNCwgc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG1heGltdW0gYnVmZmVycyBzaXplIGZvciBvdXRwdXQgKi8KLSNkZWZpbmUgVElPQ1NDTFBHT0JVRglfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNSwgdW5zaWduZWQgc2hvcnQpCi0vKiBJcyBjb252ZXJzaW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgY2FzZSBvZiBpbnB1dCBlbmFibGVkID8gKi8KLSNkZWZpbmUgVElPQ1NDTFBHQ0FTRQlfSU9SKFNDTFBfSU9DVExfTEVUVEVSLCAxNywgdW5zaWduZWQgY2hhcikKLS8qIGdldCBzcGVjaWFsIGNoYXJhY3RlciB1c2VkIGZvciBzZXBhcmF0aW5nIHVwcGVyIGFuZCBsb3dlciBjYXNlLCAqLwotLyogMHgwMCBkaXNhYmxlcyB0aGlzIGZlYXR1cmUgKi8KLSNkZWZpbmUgVElPQ1NDTFBHREVMSU0JX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMTksIHVuc2lnbmVkIGNoYXIpCi0vKiBnZXQgdGhlIG51bWJlciBvZiBidWZmZXJzL3BhZ2VzIGdvdCBmcm9tIGtlcm5lbCBhdCBzdGFydHVwICovCi0jZGVmaW5lIFRJT0NTQ0xQR0tCVUYJX0lPUihTQ0xQX0lPQ1RMX0xFVFRFUiwgMjAsIHVuc2lnbmVkIHNob3J0KQotCiBleHRlcm4gc3RydWN0IHR0eV9kcml2ZXIgKnNjbHBfdHR5X2RyaXZlcjsKIAogI2VuZGlmCS8qIF9fU0NMUF9UVFlfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci9zY2xwX3Z0MjIwLmMKaW5kZXggMzU3MDdjMC4uYWQ1MTczOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvc2NscF92dDIyMC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3NjbHBfdnQyMjAuYwpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSAic2NscC5oIgogCi0jZGVmaW5lIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSIAkic2NscCB2dDIyMCB0dHkgZHJpdmVyOiAiCiAjZGVmaW5lIFNDTFBfVlQyMjBfTUFKT1IJCVRUWV9NQUpPUgogI2RlZmluZSBTQ0xQX1ZUMjIwX01JTk9SCQk2NQogI2RlZmluZSBTQ0xQX1ZUMjIwX0RSSVZFUl9OQU1FCQkic2NscF92dDIyMCIKQEAgLTcxLDkgKzcwLDYgQEAKIC8qIE51bWJlciBvZiByZXF1ZXN0cyBpbiBvdXRxdWV1ZSAqLwogc3RhdGljIGludCBzY2xwX3Z0MjIwX291dHF1ZXVlX2NvdW50OwogCi0vKiBXYWl0IHF1ZXVlIHVzZWQgdG8gZGVsYXkgd3JpdGUgcmVxdWVzdHMgd2hpbGUgd2UndmUgcnVuIG91dCBvZiBidWZmZXJzICovCi1zdGF0aWMgd2FpdF9xdWV1ZV9oZWFkX3Qgc2NscF92dDIyMF93YWl0cTsKLQogLyogVGltZXIgdXNlZCBmb3IgZGVsYXlpbmcgd3JpdGUgcmVxdWVzdHMgdG8gbWVyZ2Ugc3Vic2VxdWVudCBtZXNzYWdlcyBpbnRvCiAgKiBhIHNpbmdsZSBidWZmZXIgKi8KIHN0YXRpYyBzdHJ1Y3QgdGltZXJfbGlzdCBzY2xwX3Z0MjIwX3RpbWVyOwpAQCAtODUsOCArODEsOCBAQAogLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gY3VycmVudCByZXF1ZXN0IGJ1ZmZlciAqLwogc3RhdGljIGludCBzY2xwX3Z0MjIwX2J1ZmZlcmVkX2NoYXJzOwogCi0vKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGlzIGRyaXZlciBoYXMgYWxyZWFkeSBiZWVuIGluaXRpYWxpemVkICovCi1zdGF0aWMgaW50IHNjbHBfdnQyMjBfaW5pdGlhbGl6ZWQgPSAwOworLyogQ291bnRlciBjb250cm9sbGluZyBjb3JlIGRyaXZlciBpbml0aWFsaXphdGlvbi4gKi8KK3N0YXRpYyBpbnQgX19pbml0ZGF0YSBzY2xwX3Z0MjIwX2luaXRfY291bnQ7CiAKIC8qIEZsYWcgaW5kaWNhdGluZyB0aGF0IHNjbHBfdnQyMjBfY3VycmVudF9yZXF1ZXN0IHNob3VsZCByZWFsbHkKICAqIGhhdmUgYmVlbiBhbHJlYWR5IHF1ZXVlZCBidXQgd2Fzbid0IGJlY2F1c2UgdGhlIFNDTFAgd2FzIHByb2Nlc3NpbmcKQEAgLTEzMyw3ICsxMjksNiBAQAogCX0gd2hpbGUgKHJlcXVlc3QgJiYgX19zY2xwX3Z0MjIwX2VtaXQocmVxdWVzdCkpOwogCWlmIChyZXF1ZXN0ID09IE5VTEwgJiYgc2NscF92dDIyMF9mbHVzaF9sYXRlcikKIAkJc2NscF92dDIyMF9lbWl0X2N1cnJlbnQoKTsKLQl3YWtlX3VwKCZzY2xwX3Z0MjIwX3dhaXRxKTsKIAkvKiBDaGVjayBpZiB0aGUgdHR5IG5lZWRzIGEgd2FrZSB1cCBjYWxsICovCiAJaWYgKHNjbHBfdnQyMjBfdHR5ICE9IE5VTEwpIHsKIAkJdHR5X3dha2V1cChzY2xwX3Z0MjIwX3R0eSk7CkBAIC0zODMsNyArMzc4LDcgQEAKICAqLwogc3RhdGljIGludAogX19zY2xwX3Z0MjIwX3dyaXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGNvdW50LCBpbnQgZG9fc2NoZWR1bGUsCi0JCSAgIGludCBjb252ZXJ0bGYsIGludCBtYXlfc2NoZWR1bGUpCisJCSAgIGludCBjb252ZXJ0bGYsIGludCBtYXlfZmFpbCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXZvaWQgKnBhZ2U7CkBAIC0zOTUsMTUgKzM5MCwxNCBAQAogCW92ZXJhbGxfd3JpdHRlbiA9IDA7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdnQyMjBfbG9jaywgZmxhZ3MpOwogCWRvIHsKLQkJLyogQ3JlYXRlIGEgc2NscCBvdXRwdXQgYnVmZmVyIGlmIG5vbmUgZXhpc3RzIHlldCAqLworCQkvKiBDcmVhdGUgYW4gc2NscCBvdXRwdXQgYnVmZmVyIGlmIG5vbmUgZXhpc3RzIHlldCAqLwogCQlpZiAoc2NscF92dDIyMF9jdXJyZW50X3JlcXVlc3QgPT0gTlVMTCkgewogCQkJd2hpbGUgKGxpc3RfZW1wdHkoJnNjbHBfdnQyMjBfZW1wdHkpKSB7CiAJCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NscF92dDIyMF9sb2NrLCBmbGFncyk7Ci0JCQkJaWYgKGluX2ludGVycnVwdCgpIHx8ICFtYXlfc2NoZWR1bGUpCi0JCQkJCXNjbHBfc3luY193YWl0KCk7CisJCQkJaWYgKG1heV9mYWlsKQorCQkJCQlnb3RvIG91dDsKIAkJCQllbHNlCi0JCQkJCXdhaXRfZXZlbnQoc2NscF92dDIyMF93YWl0cSwKLQkJCQkJCSFsaXN0X2VtcHR5KCZzY2xwX3Z0MjIwX2VtcHR5KSk7CisJCQkJCXNjbHBfc3luY193YWl0KCk7CiAJCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnNjbHBfdnQyMjBfbG9jaywgZmxhZ3MpOwogCQkJfQogCQkJcGFnZSA9ICh2b2lkICopIHNjbHBfdnQyMjBfZW1wdHkubmV4dDsKQEAgLTQzNyw2ICs0MzEsNyBAQAogCQlhZGRfdGltZXIoJnNjbHBfdnQyMjBfdGltZXIpOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzY2xwX3Z0MjIwX2xvY2ssIGZsYWdzKTsKK291dDoKIAlyZXR1cm4gb3ZlcmFsbF93cml0dGVuOwogfQogCkBAIC01MjAsMTkgKzUxNSwxMSBAQAogICogY2hhcmFjdGVyIHRvIHRoZSB0dHkgZGV2aWNlLiAgSWYgdGhlIGtlcm5lbCB1c2VzIHRoaXMgcm91dGluZSwKICAqIGl0IG11c3QgY2FsbCB0aGUgZmx1c2hfY2hhcnMoKSByb3V0aW5lIChpZiBkZWZpbmVkKSB3aGVuIGl0IGlzCiAgKiBkb25lIHN0dWZmaW5nIGNoYXJhY3RlcnMgaW50byB0aGUgZHJpdmVyLgotICoKLSAqIE5PVEU6IGluY2x1ZGUvbGludXgvdHR5X2RyaXZlci5oIHNwZWNpZmllcyB0aGF0IGEgY2hhcmFjdGVyIHNob3VsZCBiZQotICogaWdub3JlZCBpZiB0aGVyZSBpcyBubyByb29tIGluIHRoZSBxdWV1ZS4gVGhpcyBkcml2ZXIgaW1wbGVtZW50cyBhIGRpZmZlcmVudAotICogc2VtYW50aWMgaW4gdGhhdCBpdCB3aWxsIGJsb2NrIHdoZW4gdGhlcmUgaXMgbm8gbW9yZSByb29tIGxlZnQuCi0gKgotICogRklYTUU6IHB1dGNoYXIgY2FuIGN1cnJlbnRseSBiZSBjYWxsZWQgZnJvbSBCSCBhbmQgb3RoZXIgbm9uIGJsb2NraW5nCi0gKiBoYW5kbGVycyBzbyAgdGhpcyBzZW1hbnRpYyBpc24ndCBhIGdvb2QgaWRlYS4KICAqLwogc3RhdGljIGludAogc2NscF92dDIyMF9wdXRfY2hhcihzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCB1bnNpZ25lZCBjaGFyIGNoKQogewotCV9fc2NscF92dDIyMF93cml0ZSgmY2gsIDEsIDAsIDAsIDEpOwotCXJldHVybiAxOworCXJldHVybiBfX3NjbHBfdnQyMjBfd3JpdGUoJmNoLCAxLCAwLCAwLCAxKTsKIH0KIAogLyoKQEAgLTYyMSwxMCArNjA4LDggQEAKIAlzY2xwX3Z0MjIwX2VtaXRfY3VycmVudCgpOwogfQogCi0vKgotICogSW5pdGlhbGl6ZSBhbGwgcmVsZXZhbnQgY29tcG9uZW50cyBhbmQgcmVnaXN0ZXIgZHJpdmVyIHdpdGggc3lzdGVtLgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgX19zY2xwX3Z0MjIwX2NsZWFudXAodm9pZCkKKy8qIFJlbGVhc2UgYWxsb2NhdGVkIHBhZ2VzLiAqLworc3RhdGljIHZvaWQgX19pbml0IF9fc2NscF92dDIyMF9mcmVlX3BhZ2VzKHZvaWQpCiB7CiAJc3RydWN0IGxpc3RfaGVhZCAqcGFnZSwgKnA7CiAKQEAgLTYzNSwyNSArNjIwLDMzIEBACiAJCWVsc2UKIAkJCWZyZWVfYm9vdG1lbSgodW5zaWduZWQgbG9uZykgcGFnZSwgUEFHRV9TSVpFKTsKIAl9Ci0JaWYgKCFsaXN0X2VtcHR5KCZzY2xwX3Z0MjIwX3JlZ2lzdGVyLmxpc3QpKQotCQlzY2xwX3VucmVnaXN0ZXIoJnNjbHBfdnQyMjBfcmVnaXN0ZXIpOwotCXNjbHBfdnQyMjBfaW5pdGlhbGl6ZWQgPSAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBfX3NjbHBfdnQyMjBfaW5pdCh2b2lkKQorLyogUmVsZWFzZSBtZW1vcnkgYW5kIHVucmVnaXN0ZXIgZnJvbSBzY2xwIGNvcmUuIENvbnRyb2xsZWQgYnkgaW5pdCBjb3VudGluZyAtCisgKiBvbmx5IHRoZSBsYXN0IGludm9rZXIgd2lsbCBhY3R1YWxseSBwZXJmb3JtIHRoZXNlIGFjdGlvbnMuICovCitzdGF0aWMgdm9pZCBfX2luaXQgX19zY2xwX3Z0MjIwX2NsZWFudXAodm9pZCkKK3sKKwlzY2xwX3Z0MjIwX2luaXRfY291bnQtLTsKKwlpZiAoc2NscF92dDIyMF9pbml0X2NvdW50ICE9IDApCisJCXJldHVybjsKKwlzY2xwX3VucmVnaXN0ZXIoJnNjbHBfdnQyMjBfcmVnaXN0ZXIpOworCV9fc2NscF92dDIyMF9mcmVlX3BhZ2VzKCk7Cit9CisKKy8qIEFsbG9jYXRlIGJ1ZmZlciBwYWdlcyBhbmQgcmVnaXN0ZXIgd2l0aCBzY2xwIGNvcmUuIENvbnRyb2xsZWQgYnkgaW5pdAorICogY291bnRpbmcgLSBvbmx5IHRoZSBmaXJzdCBpbnZva2VyIHdpbGwgYWN0dWFsbHkgcGVyZm9ybSB0aGVzZSBhY3Rpb25zLiAqLworc3RhdGljIGludCBfX2luaXQgX19zY2xwX3Z0MjIwX2luaXQoaW50IG51bV9wYWdlcykKIHsKIAl2b2lkICpwYWdlOwogCWludCBpOwotCWludCBudW1fcGFnZXM7CiAJaW50IHJjOwogCi0JaWYgKHNjbHBfdnQyMjBfaW5pdGlhbGl6ZWQpCisJc2NscF92dDIyMF9pbml0X2NvdW50Kys7CisJaWYgKHNjbHBfdnQyMjBfaW5pdF9jb3VudCAhPSAxKQogCQlyZXR1cm4gMDsKLQlzY2xwX3Z0MjIwX2luaXRpYWxpemVkID0gMTsKIAlzcGluX2xvY2tfaW5pdCgmc2NscF92dDIyMF9sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmc2NscF92dDIyMF9lbXB0eSk7CiAJSU5JVF9MSVNUX0hFQUQoJnNjbHBfdnQyMjBfb3V0cXVldWUpOwotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnNjbHBfdnQyMjBfd2FpdHEpOwogCWluaXRfdGltZXIoJnNjbHBfdnQyMjBfdGltZXIpOwogCXNjbHBfdnQyMjBfY3VycmVudF9yZXF1ZXN0ID0gTlVMTDsKIAlzY2xwX3Z0MjIwX2J1ZmZlcmVkX2NoYXJzID0gMDsKQEAgLTY2MiwyNCArNjU1LDIyIEBACiAJc2NscF92dDIyMF9mbHVzaF9sYXRlciA9IDA7CiAKIAkvKiBBbGxvY2F0ZSBwYWdlcyBmb3Igb3V0cHV0IGJ1ZmZlcmluZyAqLwotCW51bV9wYWdlcyA9IHNsYWJfaXNfYXZhaWxhYmxlKCkgPyBNQVhfS01FTV9QQUdFUyA6IE1BWF9DT05TT0xFX1BBR0VTOwogCWZvciAoaSA9IDA7IGkgPCBudW1fcGFnZXM7IGkrKykgewogCQlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkKIAkJCXBhZ2UgPSAodm9pZCAqKSBnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCQllbHNlCiAJCQlwYWdlID0gYWxsb2NfYm9vdG1lbV9sb3dfcGFnZXMoUEFHRV9TSVpFKTsKIAkJaWYgKCFwYWdlKSB7Ci0JCQlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwotCQkJcmV0dXJuIC1FTk9NRU07CisJCQlyYyA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKIAkJfQogCQlsaXN0X2FkZF90YWlsKChzdHJ1Y3QgbGlzdF9oZWFkICopIHBhZ2UsICZzY2xwX3Z0MjIwX2VtcHR5KTsKIAl9CiAJcmMgPSBzY2xwX3JlZ2lzdGVyKCZzY2xwX3Z0MjIwX3JlZ2lzdGVyKTsKK291dDoKIAlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSIFNDTFBfVlQyMjBfUFJJTlRfSEVBREVSCi0JCSAgICAgICAiY291bGQgbm90IHJlZ2lzdGVyIHZ0MjIwIC0gIgotCQkgICAgICAgInNjbHBfcmVnaXN0ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwkJX19zY2xwX3Z0MjIwX2ZyZWVfcGFnZXMoKTsKKwkJc2NscF92dDIyMF9pbml0X2NvdW50LS07CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTcwMiwxNSArNjkzLDEzIEBACiB7CiAJc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlcjsKIAlpbnQgcmM7Ci0JaW50IGNsZWFudXA7CiAKIAkvKiBOb3RlOiB3ZSdyZSBub3QgdGVzdGluZyBmb3IgQ09OU09MRV9JU19TQ0xQIGhlcmUgdG8gcHJlc2VydmUKIAkgKiBzeW1tZXRyeSBiZXR3ZWVuIFZNIGFuZCBMUEFSIHN5c3RlbXMgcmVnYXJkaW5nIHR0eVMxLiAqLwogCWRyaXZlciA9IGFsbG9jX3R0eV9kcml2ZXIoMSk7CiAJaWYgKCFkcml2ZXIpCiAJCXJldHVybiAtRU5PTUVNOwotCWNsZWFudXAgPSAhc2NscF92dDIyMF9pbml0aWFsaXplZDsKLQlyYyA9IF9fc2NscF92dDIyMF9pbml0KCk7CisJcmMgPSBfX3NjbHBfdnQyMjBfaW5pdChNQVhfS01FTV9QQUdFUyk7CiAJaWYgKHJjKQogCQlnb3RvIG91dF9kcml2ZXI7CiAKQEAgLTcyNiwxOCArNzE1LDEzIEBACiAJdHR5X3NldF9vcGVyYXRpb25zKGRyaXZlciwgJnNjbHBfdnQyMjBfb3BzKTsKIAogCXJjID0gdHR5X3JlZ2lzdGVyX2RyaXZlcihkcml2ZXIpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgU0NMUF9WVDIyMF9QUklOVF9IRUFERVIKLQkJICAgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdHR5IC0gIgotCQkgICAgICAgInR0eV9yZWdpc3Rlcl9kcml2ZXIgcmV0dXJuZWQgJWRcbiIsIHJjKTsKKwlpZiAocmMpCiAJCWdvdG8gb3V0X2luaXQ7Ci0JfQogCXNjbHBfdnQyMjBfZHJpdmVyID0gZHJpdmVyOwogCXJldHVybiAwOwogCiBvdXRfaW5pdDoKLQlpZiAoY2xlYW51cCkKLQkJX19zY2xwX3Z0MjIwX2NsZWFudXAoKTsKKwlfX3NjbHBfdnQyMjBfY2xlYW51cCgpOwogb3V0X2RyaXZlcjoKIAlwdXRfdHR5X2RyaXZlcihkcml2ZXIpOwogCXJldHVybiByYzsKQEAgLTc4OCw3ICs3NzIsNyBAQAogCiAJaWYgKCFDT05TT0xFX0lTX1NDTFApCiAJCXJldHVybiAwOwotCXJjID0gX19zY2xwX3Z0MjIwX2luaXQoKTsKKwlyYyA9IF9fc2NscF92dDIyMF9pbml0KE1BWF9DT05TT0xFX1BBR0VTKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAkvKiBBdHRhY2ggbGludXggY29uc29sZSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZS5oIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZS5oCmluZGV4IGRkZGY4ZDYuLmQwZDU2NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGUuaAorKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlLmgKQEAgLTIzMSw2ICsyMzEsOSBAQAogCS8qIFJlcXVlc3QgcXVldWUuICovCiAJc3RydWN0IGxpc3RfaGVhZAkJcmVxX3F1ZXVlOwogCisJLyogUmVxdWVzdCB3YWl0IHF1ZXVlLiAqLworCXdhaXRfcXVldWVfaGVhZF90CQl3YWl0X3F1ZXVlOworCiAJLyogRWFjaCB0YXBlIGRldmljZSBoYXMgKGN1cnJlbnRseSkgdHdvIG1pbm9yIG51bWJlcnMuICovCiAJaW50CQkJCWZpcnN0X21pbm9yOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM0eHguYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCmluZGV4IDg3NGFkZjMuLjIyY2EzNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfMzR4eC5jCkBAIC0xOTYsNyArMTk2LDcgQEAKIHN0YXRpYyBpbnQKIHRhcGVfMzR4eF91bnNvbGljaXRlZF9pcnEoc3RydWN0IHRhcGVfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IDB4ODUgLyogUkVBRFkgKi8pIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAweDg1KSB7IC8qIFJFQURZICovCiAJCS8qIEEgbWVkaXVtIHdhcyBpbnNlcnRlZCBpbiB0aGUgZHJpdmUuICovCiAJCURCRl9FVkVOVCg2LCAieHV1ZCBtZWRcbiIpOwogCQl0YXBlXzM0eHhfZGVsZXRlX3NiaWRfZnJvbShkZXZpY2UsIDApOwpAQCAtODQ0LDIyICs4NDQsMjIgQEAKIAlpZiAocmVxdWVzdCA9PSBOVUxMKQogCQlyZXR1cm4gdGFwZV8zNHh4X3Vuc29saWNpdGVkX2lycShkZXZpY2UsIGlyYik7CiAKLQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApICYmCi0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSAmJgorCWlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApICYmCisJICAgIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgJiYKIAkgICAgKHJlcXVlc3QtPm9wID09IFRPX1dSSSkpIHsKIAkJLyogV3JpdGUgYXQgZW5kIG9mIHZvbHVtZSAqLwogCQlQUklOVF9JTkZPKCJFbmQgb2Ygdm9sdW1lXG4iKTsgLyogWFhYICovCiAJCXJldHVybiB0YXBlXzM0eHhfZXJwX2ZhaWxlZChyZXF1ZXN0LCAtRU5PU1BDKTsKIAl9CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCiAJCXJldHVybiB0YXBlXzM0eHhfdW5pdF9jaGVjayhkZXZpY2UsIHJlcXVlc3QsIGlyYik7CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewogCQkvKgogCQkgKiBBIHVuaXQgZXhjZXB0aW9uIG9jY3VycyBvbiBza2lwcGluZyBvdmVyIGEgdGFwZW1hcmsgYmxvY2suCiAJCSAqLwotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgeworCQlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfRVhDRVApIHsKIAkJCWlmIChyZXF1ZXN0LT5vcCA9PSBUT19CU0IgfHwgcmVxdWVzdC0+b3AgPT0gVE9fRlNCKQogCQkJCXJlcXVlc3QtPnJlc2NudCsrOwogCQkJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV8zNTkwLmMgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYwppbmRleCA4MjQ2ZWYzLi44Mzk5ODc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlXzM1OTAuYwpAQCAtODM3LDEzICs4MzcsMTMgQEAKIHN0YXRpYyBpbnQKIHRhcGVfMzU5MF91bnNvbGljaXRlZF9pcnEoc3RydWN0IHRhcGVfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IERFVl9TVEFUX0NITl9FTkQpCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gREVWX1NUQVRfQ0hOX0VORCkKIAkJLyogUHJvYmFibHkgcmVzdWx0IG9mIGhhbHQgc3NjaCAqLwogCQlyZXR1cm4gVEFQRV9JT19QRU5ESU5HOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5kc3RhdCA9PSAweDg1KQorCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4NSkKIAkJLyogRGV2aWNlIFJlYWR5ICovCiAJCURCRl9FVkVOVCgzLCAidW5zb2wuaXJxISB0YXBlIHJlYWR5OiAlMDh4XG4iLCBkZXZpY2UtPmNkZXZfaWQpOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWVsc2UgaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJdGFwZV8zNTkwX3NjaGVkdWxlX3dvcmsoZGV2aWNlLCBUT19SRUFEX0FUVE1TRyk7CiAJfSBlbHNlIHsKIAkJREJGX0VWRU5UKDMsICJ1bnNvbC5pcnEhIGRldiBlbmQ6ICUwOHhcbiIsIGRldmljZS0+Y2Rldl9pZCk7CkBAIC0xNTE1LDE4ICsxNTE1LDE5IEBACiAJaWYgKHJlcXVlc3QgPT0gTlVMTCkKIAkJcmV0dXJuIHRhcGVfMzU5MF91bnNvbGljaXRlZF9pcnEoZGV2aWNlLCBpcmIpOwogCi0JaWYgKChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgotCSAgICAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgJiYgKHJlcXVlc3QtPm9wID09IFRPX1dSSSkpIHsKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpICYmCisJICAgIChyZXF1ZXN0LT5vcCA9PSBUT19XUkkpKSB7CiAJCS8qIFdyaXRlIGF0IGVuZCBvZiB2b2x1bWUgKi8KIAkJREJGX0VWRU5UKDIsICJFbmQgb2Ygdm9sdW1lXG4iKTsKIAkJcmV0dXJuIHRhcGVfMzU5MF9lcnBfZmFpbGVkKGRldmljZSwgcmVxdWVzdCwgaXJiLCAtRU5PU1BDKTsKIAl9CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spCiAJCXJldHVybiB0YXBlXzM1OTBfdW5pdF9jaGVjayhkZXZpY2UsIHJlcXVlc3QsIGlyYik7CiAKLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ID09IERFVl9TVEFUX1VOSVRfRVhDRVApIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0RFVl9FTkQpIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gREVWX1NUQVRfVU5JVF9FWENFUCkgewogCQkJaWYgKHJlcXVlc3QtPm9wID09IFRPX0ZTQiB8fCByZXF1ZXN0LT5vcCA9PSBUT19CU0IpCiAJCQkJcmVxdWVzdC0+cmVzY250Kys7CiAJCQllbHNlCkBAIC0xNTM2LDEyICsxNTM3LDEyIEBACiAJCXJldHVybiB0YXBlXzM1OTBfZG9uZShkZXZpY2UsIHJlcXVlc3QpOwogCX0KIAotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSB7CiAJCURCRl9FVkVOVCgyLCAiY2FubmVsIGVuZFxuIik7CiAJCXJldHVybiBUQVBFX0lPX1BFTkRJTkc7CiAJfQogCi0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0FUVEVOVElPTikgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CiAJCURCRl9FVkVOVCgyLCAiVW5pdCBBdHRlbnRpb24gd2hlbiBidXN5Li5cbiIpOwogCQlyZXR1cm4gVEFQRV9JT19QRU5ESU5HOwogCX0KQEAgLTE1OTgsNyArMTU5OSw3IEBACiAJcmMgPSB0YXBlXzM1OTBfcmVhZF9kZXZfY2hhcnMoZGV2aWNlLCByZGNfZGF0YSk7CiAJaWYgKHJjKSB7CiAJCURCRl9MSCgzLCAiUmVhZCBkZXZpY2UgY2hhcmFjdGVyaXN0aWNzIGZhaWxlZCFcbiIpOwotCQlnb3RvIGZhaWxfa21hbGxvYzsKKwkJZ290byBmYWlsX3JkY19kYXRhOwogCX0KIAlyYyA9IHRhcGVfc3RkX2Fzc2lnbihkZXZpY2UpOwogCWlmIChyYykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfYmxvY2suYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfYmxvY2suYwppbmRleCBkZGM0YTExLi45NWRhNzJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2Jsb2NrLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9ibG9jay5jCkBAIC0xNzksMTEgKzE3OSwxMSBAQAogCQkJdGFwZWJsb2NrX2VuZF9yZXF1ZXN0KHJlcSwgLUVJTyk7CiAJCQljb250aW51ZTsKIAkJfQorCQlibGtkZXZfZGVxdWV1ZV9yZXF1ZXN0KHJlcSk7CisJCW5yX3F1ZXVlZCsrOwogCQlzcGluX3VubG9ja19pcnEoJmRldmljZS0+YmxrX2RhdGEucmVxdWVzdF9xdWV1ZV9sb2NrKTsKIAkJcmMgPSB0YXBlYmxvY2tfc3RhcnRfcmVxdWVzdChkZXZpY2UsIHJlcSk7CiAJCXNwaW5fbG9ja19pcnEoJmRldmljZS0+YmxrX2RhdGEucmVxdWVzdF9xdWV1ZV9sb2NrKTsKLQkJYmxrZGV2X2RlcXVldWVfcmVxdWVzdChyZXEpOwotCQlucl9xdWV1ZWQrKzsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZpY2UtPmJsa19kYXRhLnJlcXVlc3RfcXVldWVfbG9jayk7CiAJYXRvbWljX3NldCgmZGV2aWNlLT5ibGtfZGF0YS5yZXF1ZXVlX3NjaGVkdWxlZCwgMCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NoYXIuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCmluZGV4IGViZTg0MDYuLjY4NzcyMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3RhcGVfY2hhci5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbXRpby5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC0yODksMjEgKzI5MCwyNiBAQAogCWlmIChpbWFqb3IoZmlscC0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSkgIT0gdGFwZWNoYXJfbWFqb3IpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAltaW5vciA9IGltaW5vcihmaWxwLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlKTsKIAlkZXZpY2UgPSB0YXBlX2dldF9kZXZpY2UobWlub3IgLyBUQVBFX01JTk9SU19QRVJfREVWKTsKIAlpZiAoSVNfRVJSKGRldmljZSkpIHsKIAkJREJGX0VWRU5UKDMsICJUQ0hBUjpvcGVuOiB0YXBlX2dldF9kZXZpY2UoKSBmYWlsZWRcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihkZXZpY2UpOworCQlyYyA9IFBUUl9FUlIoZGV2aWNlKTsKKwkJZ290byBvdXQ7CiAJfQogCiAKIAlyYyA9IHRhcGVfb3BlbihkZXZpY2UpOwogCWlmIChyYyA9PSAwKSB7CiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9IGRldmljZTsKLQkJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOworCQlyYyA9IG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogCX0KLQl0YXBlX3B1dF9kZXZpY2UoZGV2aWNlKTsKKwllbHNlCisJCXRhcGVfcHV0X2RldmljZShkZXZpY2UpOwogCitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdGFwZV9jb3JlLmMgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYwppbmRleCA3NmU0NGViLi4xODFhNTQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci90YXBlX2NvcmUuYwpAQCAtNDQ5LDYgKzQ0OSw3IEBACiAJSU5JVF9MSVNUX0hFQUQoJmRldmljZS0+cmVxX3F1ZXVlKTsKIAlJTklUX0xJU1RfSEVBRCgmZGV2aWNlLT5ub2RlKTsKIAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZkZXZpY2UtPnN0YXRlX2NoYW5nZV93cSk7CisJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2aWNlLT53YWl0X3F1ZXVlKTsKIAlkZXZpY2UtPnRhcGVfc3RhdGUgPSBUU19JTklUOwogCWRldmljZS0+bWVkaXVtX3N0YXRlID0gTVNfVU5LTk9XTjsKIAkqZGV2aWNlLT5tb2Rlc2V0X2J5dGUgPSAwOwpAQCAtODM4LDcgKzgzOSw3IEBACiAKIAlQUklOVF9JTkZPKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKIAlQUklOVF9JTkZPKCJEU1RBVCA6ICUwMnggIENTVEFUOiAlMDJ4CUNQQTogJTA0eFxuIiwKLQkJICAgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5jcGEpOworCQkgICBpcmItPnNjc3cuY21kLmRzdGF0LCBpcmItPnNjc3cuY21kLmNzdGF0LCBpcmItPnNjc3cuY21kLmNwYSk7CiAJUFJJTlRfSU5GTygiREVWSUNFOiAlc1xuIiwgZGV2aWNlLT5jZGV2LT5kZXYuYnVzX2lkKTsKIAlpZiAocmVxdWVzdCAhPSBOVUxMKQogCQlQUklOVF9JTkZPKCJPUAkgIDogJXNcbiIsIHRhcGVfb3BfdmVyYm9zZVtyZXF1ZXN0LT5vcF0pOwpAQCAtODY2LDcgKzg2Nyw3IEBACiAJZWxzZQogCQlvcCA9ICItLS0iOwogCURCRl9FVkVOVCgzLCAiRFNUQVQgOiAlMDJ4ICAgQ1NUQVQ6ICUwMnhcbiIsCi0JCSAgaXJiLT5zY3N3LmRzdGF0LGlyYi0+c2Nzdy5jc3RhdCk7CisJCSAgaXJiLT5zY3N3LmNtZC5kc3RhdCwgaXJiLT5zY3N3LmNtZC5jc3RhdCk7CiAJREJGX0VWRU5UKDMsICJERVZJQ0U6ICUwOHggT1BcdDogJXNcbiIsIGRldmljZS0+Y2Rldl9pZCwgb3ApOwogCXNwdHIgPSAodW5zaWduZWQgaW50ICopIGlyYi0+ZWN3OwogCURCRl9FVkVOVCgzLCAiJTA4eCAlMDh4XG4iLCBzcHRyWzBdLCBzcHRyWzFdKTsKQEAgLTk1NCwyMSArOTU1LDE5IEBACiBpbnQKIHRhcGVfZG9faW8oc3RydWN0IHRhcGVfZGV2aWNlICpkZXZpY2UsIHN0cnVjdCB0YXBlX3JlcXVlc3QgKnJlcXVlc3QpCiB7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3Qgd3E7CiAJaW50IHJjOwogCi0JaW5pdF93YWl0cXVldWVfaGVhZCgmd3EpOwogCXNwaW5fbG9ja19pcnEoZ2V0X2Njd2Rldl9sb2NrKGRldmljZS0+Y2RldikpOwogCS8qIFNldHVwIGNhbGxiYWNrICovCiAJcmVxdWVzdC0+Y2FsbGJhY2sgPSBfX3RhcGVfd2FrZV91cDsKLQlyZXF1ZXN0LT5jYWxsYmFja19kYXRhID0gJndxOworCXJlcXVlc3QtPmNhbGxiYWNrX2RhdGEgPSAmZGV2aWNlLT53YWl0X3F1ZXVlOwogCS8qIEFkZCByZXF1ZXN0IHRvIHJlcXVlc3QgcXVldWUgYW5kIHRyeSB0byBzdGFydCBpdC4gKi8KIAlyYyA9IF9fdGFwZV9zdGFydF9yZXF1ZXN0KGRldmljZSwgcmVxdWVzdCk7CiAJc3Bpbl91bmxvY2tfaXJxKGdldF9jY3dkZXZfbG9jayhkZXZpY2UtPmNkZXYpKTsKIAlpZiAocmMpCiAJCXJldHVybiByYzsKIAkvKiBSZXF1ZXN0IGFkZGVkIHRvIHRoZSBxdWV1ZS4gV2FpdCBmb3IgaXRzIGNvbXBsZXRpb24uICovCi0Jd2FpdF9ldmVudCh3cSwgKHJlcXVlc3QtPmNhbGxiYWNrID09IE5VTEwpKTsKKwl3YWl0X2V2ZW50KGRldmljZS0+d2FpdF9xdWV1ZSwgKHJlcXVlc3QtPmNhbGxiYWNrID09IE5VTEwpKTsKIAkvKiBHZXQgcmMgZnJvbSByZXF1ZXN0ICovCiAJcmV0dXJuIHJlcXVlc3QtPnJjOwogfQpAQCAtOTg5LDIwICs5ODgsMTkgQEAKIHRhcGVfZG9faW9faW50ZXJydXB0aWJsZShzdHJ1Y3QgdGFwZV9kZXZpY2UgKmRldmljZSwKIAkJCSBzdHJ1Y3QgdGFwZV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXdhaXRfcXVldWVfaGVhZF90IHdxOwogCWludCByYzsKIAotCWluaXRfd2FpdHF1ZXVlX2hlYWQoJndxKTsKIAlzcGluX2xvY2tfaXJxKGdldF9jY3dkZXZfbG9jayhkZXZpY2UtPmNkZXYpKTsKIAkvKiBTZXR1cCBjYWxsYmFjayAqLwogCXJlcXVlc3QtPmNhbGxiYWNrID0gX190YXBlX3dha2VfdXBfaW50ZXJydXB0aWJsZTsKLQlyZXF1ZXN0LT5jYWxsYmFja19kYXRhID0gJndxOworCXJlcXVlc3QtPmNhbGxiYWNrX2RhdGEgPSAmZGV2aWNlLT53YWl0X3F1ZXVlOwogCXJjID0gX190YXBlX3N0YXJ0X3JlcXVlc3QoZGV2aWNlLCByZXF1ZXN0KTsKIAlzcGluX3VubG9ja19pcnEoZ2V0X2Njd2Rldl9sb2NrKGRldmljZS0+Y2RldikpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCS8qIFJlcXVlc3QgYWRkZWQgdG8gdGhlIHF1ZXVlLiBXYWl0IGZvciBpdHMgY29tcGxldGlvbi4gKi8KLQlyYyA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSh3cSwgKHJlcXVlc3QtPmNhbGxiYWNrID09IE5VTEwpKTsKKwlyYyA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZShkZXZpY2UtPndhaXRfcXVldWUsCisJCQkJICAgICAgKHJlcXVlc3QtPmNhbGxiYWNrID09IE5VTEwpKTsKIAlpZiAocmMgIT0gLUVSRVNUQVJUU1lTKQogCQkvKiBSZXF1ZXN0IGZpbmlzaGVkIG5vcm1hbGx5LiAqLwogCQlyZXR1cm4gcmVxdWVzdC0+cmM7CkBAIC0xMDE1LDcgKzEwMTMsNyBAQAogCQkvKiBXYWl0IGZvciB0aGUgaW50ZXJydXB0IHRoYXQgYWNrbm93bGVkZ2VzIHRoZSBoYWx0LiAqLwogCQlkbyB7CiAJCQlyYyA9IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZSgKLQkJCQl3cSwKKwkJCQlkZXZpY2UtPndhaXRfcXVldWUsCiAJCQkJKHJlcXVlc3QtPmNhbGxiYWNrID09IE5VTEwpCiAJCQkpOwogCQl9IHdoaWxlIChyYyA9PSAtRVJFU1RBUlRTWVMpOwpAQCAtMTA4NSwxMCArMTA4MywxMSBAQAogCSAqIGVycm9yIG1pZ2h0IHN0aWxsIGFwcGx5LiBTbyB3ZSBqdXN0IHNjaGVkdWxlIHRoZSByZXF1ZXN0IHRvIGJlCiAJICogc3RhcnRlZCBsYXRlci4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmNjICE9IDAgJiYgKGlyYi0+c2Nzdy5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgIT0gMCAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCiAJICAgIChyZXF1ZXN0LT5zdGF0dXMgPT0gVEFQRV9SRVFVRVNUX0lOX0lPKSkgewogCQlEQkZfRVZFTlQoMywiKCUwOHgpOiBkZWZlcnJlZCBjYz0laSwgZmN0bD0laS4gcmVzdGFydGluZ1xuIiwKLQkJCWRldmljZS0+Y2Rldl9pZCwgaXJiLT5zY3N3LmNjLCBpcmItPnNjc3cuZmN0bCk7CisJCQlkZXZpY2UtPmNkZXZfaWQsIGlyYi0+c2Nzdy5jbWQuY2MsIGlyYi0+c2Nzdy5jbWQuZmN0bCk7CiAJCXJlcXVlc3QtPnN0YXR1cyA9IFRBUEVfUkVRVUVTVF9RVUVVRUQ7CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmZGV2aWNlLT50YXBlX2RuciwgSFopOwogCQlyZXR1cm47CkBAIC0xMDk2LDggKzEwOTUsOCBAQAogCiAJLyogTWF5IGJlIGFuIHVuc29saWNpdGVkIGlycSAqLwogCWlmKHJlcXVlc3QgIT0gTlVMTCkKLQkJcmVxdWVzdC0+cmVzY250ID0gaXJiLT5zY3N3LmNvdW50OwotCWVsc2UgaWYgKChpcmItPnNjc3cuZHN0YXQgPT0gMHg4NSB8fCBpcmItPnNjc3cuZHN0YXQgPT0gMHg4MCkgJiYKKwkJcmVxdWVzdC0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKKwllbHNlIGlmICgoaXJiLT5zY3N3LmNtZC5kc3RhdCA9PSAweDg1IHx8IGlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMHg4MCkgJiYKIAkJICFsaXN0X2VtcHR5KCZkZXZpY2UtPnJlcV9xdWV1ZSkpIHsKIAkJLyogTm90IFJlYWR5IHRvIFJlYWR5IGFmdGVyIGxvbmcgYnVzeSA/ICovCiAJCXN0cnVjdCB0YXBlX3JlcXVlc3QgKnJlcTsKQEAgLTExMTMsNyArMTExMiw3IEBACiAJCQlyZXR1cm47CiAJCX0KIAl9Ci0JaWYgKGlyYi0+c2Nzdy5kc3RhdCAhPSAweDBjKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgIT0gMHgwYykgewogCQkvKiBTZXQgdGhlICdPTkxJTkUnIGZsYWcgZGVwZW5kaW5nIG9uIHNlbnNlIGJ5dGUgMSAqLwogCQlpZigqKCgoX191OCAqKSBpcmItPmVjdykgKyAxKSAmIFNFTlNFX0RSSVZFX09OTElORSkKIAkJCWRldmljZS0+dGFwZV9nZW5lcmljX3N0YXR1cyB8PSBHTVRfT05MSU5FKH4wKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaGFyL3R0eTMyNzAuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3R0eTMyNzAuYwppbmRleCA1MDQzMTUwLi5hN2ZlNjMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci90dHkzMjcwLmMKKysrIGIvZHJpdmVycy9zMzkwL2NoYXIvdHR5MzI3MC5jCkBAIC02NjMsNyArNjYzLDcgQEAKIHR0eTMyNzBfaXJxKHN0cnVjdCB0dHkzMjcwICp0cCwgc3RydWN0IHJhdzMyNzBfcmVxdWVzdCAqcnEsIHN0cnVjdCBpcmIgKmlyYikKIHsKIAkvKiBIYW5kbGUgQVRUTi4gU2NoZWR1bGUgdGFza2xldCB0byByZWFkIGFpZC4gKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJaWYgKCF0cC0+dGhyb3R0bGUpCiAJCQl0dHkzMjcwX2lzc3VlX3JlYWQodHAsIDApOwogCQllbHNlCkBAIC02NzEsMTEgKzY3MSwxMSBAQAogCX0KIAogCWlmIChycSkgewotCQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKQogCQkJcnEtPnJjID0gLUVJTzsKIAkJZWxzZQogCQkJLyogTm9ybWFsIGVuZC4gQ29weSByZXNpZHVhbCBjb3VudC4gKi8KLQkJCXJxLT5yZXNjbnQgPSBpcmItPnNjc3cuY291bnQ7CisJCQlycS0+cmVzY250ID0gaXJiLT5zY3N3LmNtZC5jb3VudDsKIAl9CiAJcmV0dXJuIFJBVzMyNzBfSU9fRE9ORTsKIH0KQEAgLTE3OTIsMTUgKzE3OTIsMTIgQEAKIAl0dHlfc2V0X29wZXJhdGlvbnMoZHJpdmVyLCAmdHR5MzI3MF9vcHMpOwogCXJldCA9IHR0eV9yZWdpc3Rlcl9kcml2ZXIoZHJpdmVyKTsKIAlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidHR5MzI3MCByZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggJWRcbiIsIHJldCk7CiAJCXB1dF90dHlfZHJpdmVyKGRyaXZlcik7CiAJCXJldHVybiByZXQ7CiAJfQogCXR0eTMyNzBfZHJpdmVyID0gZHJpdmVyOwogCXJldCA9IHJhdzMyNzBfcmVnaXN0ZXJfbm90aWZpZXIodHR5MzI3MF9ub3RpZmllcik7CiAJaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgInR0eTMyNzAgbm90aWZpZXIgcmVnaXN0cmF0aW9uIGZhaWxlZCAiCi0JCSAgICAgICAid2l0aCAlZFxuIiwgcmV0KTsKIAkJcHV0X3R0eV9kcml2ZXIoZHJpdmVyKTsKIAkJcmV0dXJuIHJldDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm1jcC5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm1jcC5jCmluZGV4IDJmNDE5YjAuLjA5ZTdkOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3ZtY3AuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bWNwLmMKQEAgLTE2LDYgKzE2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vY3BjbWQuaD4KICNpbmNsdWRlIDxhc20vZGVidWcuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgpAQCAtMzksMTEgKzQwLDE0IEBACiAJc2Vzc2lvbiA9IGttYWxsb2Moc2l6ZW9mKCpzZXNzaW9uKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzZXNzaW9uKQogCQlyZXR1cm4gLUVOT01FTTsKKworCWxvY2tfa2VybmVsKCk7CiAJc2Vzc2lvbi0+YnVmc2l6ZSA9IFBBR0VfU0laRTsKIAlzZXNzaW9uLT5yZXNwb25zZSA9IE5VTEw7CiAJc2Vzc2lvbi0+cmVzcF9zaXplID0gMDsKIAltdXRleF9pbml0KCZzZXNzaW9uLT5tdXRleCk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gc2Vzc2lvbjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOwogfQogCkBAIC02MSwzMCArNjUsMjQgQEAKIHN0YXRpYyBzc2l6ZV90CiB2bWNwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICpidWZmLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKLQlzaXplX3QgdG9jb3B5OworCXNzaXplX3QgcmV0OworCXNpemVfdCBzaXplOwogCXN0cnVjdCB2bWNwX3Nlc3Npb24gKnNlc3Npb247CiAKLQlzZXNzaW9uID0gKHN0cnVjdCB2bWNwX3Nlc3Npb24gKilmaWxlLT5wcml2YXRlX2RhdGE7CisJc2Vzc2lvbiA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlpZiAobXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZzZXNzaW9uLT5tdXRleCkpCiAJCXJldHVybiAtRVJFU1RBUlRTWVM7CiAJaWYgKCFzZXNzaW9uLT5yZXNwb25zZSkgewogCQltdXRleF91bmxvY2soJnNlc3Npb24tPm11dGV4KTsKIAkJcmV0dXJuIDA7CiAJfQotCWlmICgqcHBvcyA+IHNlc3Npb24tPnJlc3Bfc2l6ZSkgewotCQltdXRleF91bmxvY2soJnNlc3Npb24tPm11dGV4KTsKLQkJcmV0dXJuIDA7Ci0JfQotCXRvY29weSA9IG1pbihzZXNzaW9uLT5yZXNwX3NpemUgLSAoc2l6ZV90KSAoKnBwb3MpLCBjb3VudCk7Ci0JdG9jb3B5ID0gbWluKHRvY29weSwgc2Vzc2lvbi0+YnVmc2l6ZSAtIChzaXplX3QpICgqcHBvcykpOworCXNpemUgPSBtaW5fdChzaXplX3QsIHNlc3Npb24tPnJlc3Bfc2l6ZSwgc2Vzc2lvbi0+YnVmc2l6ZSk7CisJcmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoYnVmZiwgY291bnQsIHBwb3MsCisJCQkJCXNlc3Npb24tPnJlc3BvbnNlLCBzaXplKTsKIAotCWlmIChjb3B5X3RvX3VzZXIoYnVmZiwgc2Vzc2lvbi0+cmVzcG9uc2UgKyAoKnBwb3MpLCB0b2NvcHkpKSB7Ci0JCW11dGV4X3VubG9jaygmc2Vzc2lvbi0+bXV0ZXgpOwotCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAJbXV0ZXhfdW5sb2NrKCZzZXNzaW9uLT5tdXRleCk7Ci0JKnBwb3MgKz0gdG9jb3B5OwotCXJldHVybiB0b2NvcHk7CisKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgc3NpemVfdApAQCAtMTk4LDI3ICsxOTYsMjMgQEAKIAkJUFJJTlRfV0FSTigiei9WTSBDUCBpbnRlcmZhY2UgaXMgb25seSBhdmFpbGFibGUgdW5kZXIgei9WTVxuIik7CiAJCXJldHVybiAtRU5PREVWOwogCX0KKwogCXZtY3BfZGVidWcgPSBkZWJ1Z19yZWdpc3Rlcigidm1jcCIsIDEsIDEsIDI0MCk7Ci0JaWYgKCF2bWNwX2RlYnVnKSB7Ci0JCVBSSU5UX0VSUigiei9WTSBDUCBpbnRlcmZhY2Ugbm90IGxvYWRlZC4gQ291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSAgICJkZWJ1ZyBmZWF0dXJlXG4iKTsKKwlpZiAoIXZtY3BfZGVidWcpCiAJCXJldHVybiAtRU5PTUVNOwotCX0KKwogCXJldCA9IGRlYnVnX3JlZ2lzdGVyX3ZpZXcodm1jcF9kZWJ1ZywgJmRlYnVnX2hleF9hc2NpaV92aWV3KTsKIAlpZiAocmV0KSB7Ci0JCVBSSU5UX0VSUigiei9WTSBDUCBpbnRlcmZhY2Ugbm90IGxvYWRlZC4gQ291bGQgbm90IHJlZ2lzdGVyICIKLQkJCSAgImRlYnVnIGZlYXR1cmUgdmlldy4gRXJyb3IgY29kZTogJWRcbiIsIHJldCk7CiAJCWRlYnVnX3VucmVnaXN0ZXIodm1jcF9kZWJ1Zyk7CiAJCXJldHVybiByZXQ7CiAJfQorCiAJcmV0ID0gbWlzY19yZWdpc3Rlcigmdm1jcF9kZXYpOwogCWlmIChyZXQpIHsKLQkJUFJJTlRfRVJSKCJ6L1ZNIENQIGludGVyZmFjZSBub3QgbG9hZGVkLiBDb3VsZCBub3QgcmVnaXN0ZXIgIgotCQkJICAgIm1pc2MgZGV2aWNlLiBFcnJvciBjb2RlOiAlZFxuIiwgcmV0KTsKIAkJZGVidWdfdW5yZWdpc3Rlcih2bWNwX2RlYnVnKTsKIAkJcmV0dXJuIHJldDsKIAl9Ci0JUFJJTlRfSU5GTygiei9WTSBDUCBpbnRlcmZhY2UgbG9hZGVkXG4iKTsKKwogCXJldHVybiAwOwogfQogCkBAIC0yMjYsNyArMjIwLDYgQEAKIHsKIAltaXNjX2RlcmVnaXN0ZXIoJnZtY3BfZGV2KTsKIAlkZWJ1Z191bnJlZ2lzdGVyKHZtY3BfZGVidWcpOwotCVBSSU5UX0lORk8oInovVk0gQ1AgaW50ZXJmYWNlIHVubG9hZGVkLlxuIik7CiB9CiAKIG1vZHVsZV9pbml0KHZtY3BfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci92bWxvZ3Jkci5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm1sb2dyZHIuYwppbmRleCAyYzI0MjhjLi5jMzFmYWVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2hhci92bWxvZ3Jkci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtbG9ncmRyLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAKIApAQCAtMjE2LDkgKzIxNyw3IEBACiAJY2hhciAqdGFpbDsKIAlpbnQgbGVuLGk7CiAKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiBxdWVyeSBjb21tYW5kOiAlc1xuIiwgY3BfY29tbWFuZCk7CiAJY3BjbWQoY3BfY29tbWFuZCwgY3BfcmVzcG9uc2UsIHNpemVvZihjcF9yZXNwb25zZSksIE5VTEwpOwotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlc3BvbnNlOiAlcyIsIGNwX3Jlc3BvbnNlKTsKIAlsZW4gPSBzdHJubGVuKGNwX3Jlc3BvbnNlLHNpemVvZihjcF9yZXNwb25zZSkpOwogCS8vIG5vdyB0aGUgcGFyc2luZwogCXRhaWw9c3RybmNocihjcF9yZXNwb25zZSxsZW4sJz0nKTsKQEAgLTI2OCwxMSArMjY3LDcgQEAKIAkJCSBsb2dwdHItPnJlY29yZGluZ19uYW1lLAogCQkJIHFpZF9zdHJpbmcpOwogCi0JCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyBjb21tYW5kOiAlc1xuIiwKLQkJCWNwX2NvbW1hbmQpOwogCQljcGNtZChjcF9jb21tYW5kLCBjcF9yZXNwb25zZSwgc2l6ZW9mKGNwX3Jlc3BvbnNlKSwgTlVMTCk7Ci0JCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyByZXNwb25zZTogJXMiLAotCQkJY3BfcmVzcG9uc2UpOwogCX0KIAogCW1lbXNldChjcF9jb21tYW5kLCAweDAwLCBzaXplb2YoY3BfY29tbWFuZCkpOwpAQCAtMjgyLDEwICsyNzcsNyBAQAogCQlvbm9mZiwKIAkJcWlkX3N0cmluZyk7CiAKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgY29tbWFuZDogJXNcbiIsIGNwX2NvbW1hbmQpOwogCWNwY21kKGNwX2NvbW1hbmQsIGNwX3Jlc3BvbnNlLCBzaXplb2YoY3BfcmVzcG9uc2UpLCBOVUxMKTsKLQlwcmludGsgKEtFUk5fREVCVUcgInZtbG9ncmRyOiByZWNvcmRpbmcgcmVzcG9uc2U6ICVzIiwKLQkJY3BfcmVzcG9uc2UpOwogCS8qIFRoZSByZWNvcmRpbmcgY29tbWFuZCB3aWxsIHVzdWFsbHkgYW5zd2VyIHdpdGggJ0NvbW1hbmQgY29tcGxldGUnCiAJICogb24gc3VjY2VzcywgYnV0IHdoZW4gdGhlIHNwZWNpZmljIHNlcnZpY2Ugd2FzIG5ldmVyIGNvbm5lY3RlZAogCSAqIGJlZm9yZSB0aGVuIHRoZXJlIG1pZ2h0IGJlIGFuIGFkZGl0aW9uYWwgaW5mb3JtYXRpb25hbCBtZXNzYWdlCkBAIC0zMTksOSArMzExLDExIEBACiAJCXJldHVybiAtRU5PU1lTOwogCiAJLyogQmVzdXJlIHRoaXMgZGV2aWNlIGhhc24ndCBhbHJlYWR5IGJlZW4gb3BlbmVkICovCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfYmgoJmxvZ3B0ci0+cHJpdl9sb2NrKTsKIAlpZiAobG9ncHRyLT5kZXZfaW5fdXNlKQl7CiAJCXNwaW5fdW5sb2NrX2JoKCZsb2dwdHItPnByaXZfbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKIAl9CiAJbG9ncHRyLT5kZXZfaW5fdXNlID0gMTsKQEAgLTM2NSw3ICszNTksOSBAQAogCQkgICB8fCAobG9ncHRyLT5pdWN2X3BhdGhfc2V2ZXJlZCkpOwogCWlmIChsb2dwdHItPml1Y3ZfcGF0aF9zZXZlcmVkKQogCQlnb3RvIG91dF9yZWNvcmQ7Ci0gCXJldHVybiBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKKyAJcmV0ID0gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlscCk7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiByZXQ7CiAKIG91dF9yZWNvcmQ6CiAJaWYgKGxvZ3B0ci0+YXV0b3JlY29yZGluZykKQEAgLTM3NSw2ICszNzEsNyBAQAogCWxvZ3B0ci0+cGF0aCA9IE5VTEw7CiBvdXRfZGV2OgogCWxvZ3B0ci0+ZGV2X2luX3VzZSA9IDA7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAtRUlPOwogfQogCkBAIC01NjcsMTAgKzU2NCw3IEBACiAJCQkgIlJFQ09SRElORyAlcyBQVVJHRSAiLAogCQkJIHByaXYtPnJlY29yZGluZ19uYW1lKTsKIAotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyBjb21tYW5kOiAlc1xuIiwgY3BfY29tbWFuZCk7CiAJY3BjbWQoY3BfY29tbWFuZCwgY3BfcmVzcG9uc2UsIHNpemVvZihjcF9yZXNwb25zZSksIE5VTEwpOwotCXByaW50ayAoS0VSTl9ERUJVRyAidm1sb2dyZHI6IHJlY29yZGluZyByZXNwb25zZTogJXMiLAotCQljcF9yZXNwb25zZSk7CiAKIAlyZXR1cm4gY291bnQ7CiB9CkBAIC02ODIsMjggKzY3NiwyMCBAQAogCiAJLyogUmVnaXN0ZXIgd2l0aCBpdWN2IGRyaXZlciAqLwogCXJldCA9IGl1Y3ZfcmVnaXN0ZXIoJnZtbG9ncmRyX2l1Y3ZfaGFuZGxlciwgMSk7Ci0JaWYgKHJldCkgewotCQlwcmludGsgKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIHJlZ2lzdGVyIHdpdGggIgotCQkJIml1Y3YgZHJpdmVyXG4iKTsKKwlpZiAocmV0KQogCQlnb3RvIG91dDsKLQl9CiAKIAlyZXQgPSBkcml2ZXJfcmVnaXN0ZXIoJnZtbG9ncmRyX2RyaXZlcik7Ci0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgInZtbG9ncmRyOiBmYWlsZWQgdG8gcmVnaXN0ZXIgZHJpdmVyLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfaXVjdjsKLQl9CiAKIAlyZXQgPSBkcml2ZXJfY3JlYXRlX2ZpbGUoJnZtbG9ncmRyX2RyaXZlciwKIAkJCQkgJmRyaXZlcl9hdHRyX3JlY29yZGluZ19zdGF0dXMpOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJ2bWxvZ3JkcjogZmFpbGVkIHRvIGFkZCBkcml2ZXIgYXR0cmlidXRlLlxuIik7CisJaWYgKHJldCkKIAkJZ290byBvdXRfZHJpdmVyOwotCX0KIAogCXZtbG9ncmRyX2NsYXNzID0gY2xhc3NfY3JlYXRlKFRISVNfTU9EVUxFLCAidm1sb2dyZHIiKTsKIAlpZiAoSVNfRVJSKHZtbG9ncmRyX2NsYXNzKSkgewotCQlwcmludGsoS0VSTl9FUlIgInZtbG9ncmRyOiBmYWlsZWQgdG8gY3JlYXRlIGNsYXNzLlxuIik7CiAJCXJldCA9IFBUUl9FUlIodm1sb2dyZHJfY2xhc3MpOwogCQl2bWxvZ3Jkcl9jbGFzcyA9IE5VTEw7CiAJCWdvdG8gb3V0X2F0dHI7CkBAIC04NzEsMTIgKzg1NywxMCBAQAogCXJjID0gdm1sb2dyZHJfcmVnaXN0ZXJfY2RldihkZXYpOwogCWlmIChyYykKIAkJZ290byBjbGVhbnVwOwotCXByaW50ayAoS0VSTl9JTkZPICJ2bWxvZ3JkcjogZHJpdmVyIGxvYWRlZFxuIik7CiAJcmV0dXJuIDA7CiAKIGNsZWFudXA6CiAJdm1sb2dyZHJfY2xlYW51cCgpOwotCXByaW50ayAoS0VSTl9FUlIgInZtbG9ncmRyOiBkcml2ZXIgbm90IGxvYWRlZC5cbiIpOwogCXJldHVybiByYzsKIH0KIApAQCAtODg0LDcgKzg2OCw2IEBACiBzdGF0aWMgdm9pZCBfX2V4aXQgdm1sb2dyZHJfZXhpdCh2b2lkKQogewogCXZtbG9ncmRyX2NsZWFudXAoKTsKLQlwcmludGsgKEtFUk5fSU5GTyAidm1sb2dyZHI6IGRyaXZlciB1bmxvYWRlZFxuIik7CiAJcmV0dXJuOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2hhci92bXVyLmMgYi9kcml2ZXJzL3MzOTAvY2hhci92bXVyLmMKaW5kZXggODNhZTlhOC4uMGE5ZjFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvdm11ci5jCisrKyBiL2RyaXZlcnMvczM5MC9jaGFyL3ZtdXIuYwpAQCAtOSw2ICs5LDcgQEAKICAqLwogCiAjaW5jbHVkZSA8bGludXgvY2Rldi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9jaW8uaD4KQEAgLTI3Nyw3ICsyNzgsOCBAQAogCXN0cnVjdCB1cmRldiAqdXJkOwogCiAJVFJBQ0UoInVyX2ludF9oYW5kbGVyOiBpbnRwYXJtPTB4JWx4IGNzdGF0PSUwMnggZHN0YXQ9JTAyeCByZXM9JXVcbiIsCi0JICAgICAgaW50cGFybSwgaXJiLT5zY3N3LmNzdGF0LCBpcmItPnNjc3cuZHN0YXQsIGlyYi0+c2Nzdy5jb3VudCk7CisJICAgICAgaW50cGFybSwgaXJiLT5zY3N3LmNtZC5jc3RhdCwgaXJiLT5zY3N3LmNtZC5kc3RhdCwKKwkgICAgICBpcmItPnNjc3cuY21kLmNvdW50KTsKIAogCWlmICghaW50cGFybSkgewogCQlUUkFDRSgidXJfaW50X2hhbmRsZXI6IHVuc29saWNpdGVkIGludGVycnVwdFxuIik7CkBAIC0yODgsNyArMjkwLDcgQEAKIAkvKiBPbiBzcGVjaWFsIGNvbmRpdGlvbnMgaXJiIGlzIGFuIGVycm9yIHBvaW50ZXIgKi8KIAlpZiAoSVNfRVJSKGlyYikpCiAJCXVyZC0+aW9fcmVxdWVzdF9yYyA9IFBUUl9FUlIoaXJiKTsKLQllbHNlIGlmIChpcmItPnNjc3cuZHN0YXQgPT0gKERFVl9TVEFUX0NITl9FTkQgfCBERVZfU1RBVF9ERVZfRU5EKSkKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmRzdGF0ID09IChERVZfU1RBVF9DSE5fRU5EIHwgREVWX1NUQVRfREVWX0VORCkpCiAJCXVyZC0+aW9fcmVxdWVzdF9yYyA9IDA7CiAJZWxzZQogCQl1cmQtPmlvX3JlcXVlc3RfcmMgPSAtRUlPOwpAQCAtNjY4LDcgKzY3MCw3IEBACiAKIAlpZiAoYWNjbW9kZSA9PSBPX1JEV1IpCiAJCXJldHVybiAtRUFDQ0VTOwotCisJbG9ja19rZXJuZWwoKTsKIAkvKgogCSAqIFdlIHRyZWF0IHRoZSBtaW5vciBudW1iZXIgYXMgdGhlIGRldm5vIG9mIHRoZSB1ciBkZXZpY2UKIAkgKiB0byBmaW5kIGluIHRoZSBkcml2ZXIgdHJlZS4KQEAgLTY3Niw4ICs2NzgsMTAgQEAKIAlkZXZubyA9IE1JTk9SKGZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3JkZXYpOwogCiAJdXJkID0gdXJkZXZfZ2V0X2Zyb21fZGV2bm8oZGV2bm8pOwotCWlmICghdXJkKQotCQlyZXR1cm4gLUVOWElPOworCWlmICghdXJkKSB7CisJCXJjID0gLUVOWElPOworCQlnb3RvIG91dDsKKwl9CiAKIAlzcGluX2xvY2soJnVyZC0+b3Blbl9sb2NrKTsKIAl3aGlsZSAodXJkLT5vcGVuX2ZsYWcpIHsKQEAgLTcyMCw2ICs3MjQsNyBAQAogCQlnb3RvIGZhaWxfdXJmaWxlX2ZyZWU7CiAJdXJmLT5maWxlX3JlY2xlbiA9IHJjOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHVyZjsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGZhaWxfdXJmaWxlX2ZyZWU6CkBAIC03MzAsNiArNzM1LDggQEAKIAlzcGluX3VubG9jaygmdXJkLT5vcGVuX2xvY2spOwogZmFpbF9wdXQ6CiAJdXJkZXZfcHV0KHVyZCk7CitvdXQ6CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvdm13YXRjaGRvZy5jIGIvZHJpdmVycy9zMzkwL2NoYXIvdm13YXRjaGRvZy5jCmluZGV4IDE5ZjgzODkuLjIxYTJhODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL3Ztd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci92bXdhdGNoZG9nLmMKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9lYmNkaWMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTkyLDIzICs5MywxNSBAQAogCiAJZnVuYyA9IHZtd2R0X2NvbmNlYWwgPyAod2R0X2luaXQgfCB3ZHRfY29uY2VhbCkgOiB3ZHRfaW5pdDsKIAlyZXQgPSBfX2RpYWcyODgoZnVuYywgdm13ZHRfaW50ZXJ2YWwsIGViY19jbWQsIGxlbik7CisJV0FSTl9PTihyZXQgIT0gMCk7CiAJa2ZyZWUoZWJjX2NtZCk7Ci0KLQlpZiAocmV0KSB7Ci0JCXByaW50ayhLRVJOX1dBUk5JTkcgIiVzOiBwcm9ibGVtIHNldHRpbmcgaW50ZXJ2YWwgJWQsICIKLQkJCSJjbWQgJXNcbiIsIF9fZnVuY19fLCB2bXdkdF9pbnRlcnZhbCwKLQkJCXZtd2R0X2NtZCk7Ci0JfQogCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgdm13ZHRfZGlzYWJsZSh2b2lkKQogewogCWludCByZXQgPSBfX2RpYWcyODgod2R0X2NhbmNlbCwgMCwgIiIsIDApOwotCWlmIChyZXQpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IHByb2JsZW0gZGlzYWJsaW5nIHdhdGNoZG9nXG4iLAotCQkJX19mdW5jX18pOwotCX0KKwlXQVJOX09OKHJldCAhPSAwKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMjEsMjEgKzExNCwyMyBAQAogCXN0YXRpYyBjaGFyIF9faW5pdGRhdGEgZWJjX2JlZ2luW10gPSB7CiAJCTE5NCwgMTk3LCAxOTksIDIwMSwgMjEzCiAJfTsKLQlpZiAoX19kaWFnMjg4KHdkdF9pbml0LCAxNSwgZWJjX2JlZ2luLCBzaXplb2YoZWJjX2JlZ2luKSkgIT0gMCkgewotCQlwcmludGsoS0VSTl9JTkZPICJ6L1ZNIHdhdGNoZG9nIG5vdCBhdmFpbGFibGVcbiIpOworCWlmIChfX2RpYWcyODgod2R0X2luaXQsIDE1LCBlYmNfYmVnaW4sIHNpemVvZihlYmNfYmVnaW4pKSAhPSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJcmV0dXJuIHZtd2R0X2Rpc2FibGUoKTsKIH0KIAogc3RhdGljIGludCB2bXdkdF9vcGVuKHN0cnVjdCBpbm9kZSAqaSwgc3RydWN0IGZpbGUgKmYpCiB7CiAJaW50IHJldDsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdm13ZHRfaXNfb3BlbikpCisJbG9ja19rZXJuZWwoKTsKKwlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAmdm13ZHRfaXNfb3BlbikpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVCVVNZOworCX0KIAlyZXQgPSB2bXdkdF9rZWVwYWxpdmUoKTsKIAlpZiAocmV0KQogCQljbGVhcl9iaXQoMCwgJnZtd2R0X2lzX29wZW4pOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gcmV0ID8gcmV0IDogbm9uc2Vla2FibGVfb3BlbihpLCBmKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NoYXIvemNvcmUuYyBiL2RyaXZlcnMvczM5MC9jaGFyL3pjb3JlLmMKaW5kZXggYmJiZDE0ZS4uMDQ3ZGQ5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NoYXIvemNvcmUuYworKysgYi9kcml2ZXJzL3MzOTAvY2hhci96Y29yZS5jCkBAIC0yMjMsMTIgKzIyMywxMCBAQAogCS8qIGdldCBpbmZvIGZvciBib290IGNwdSBmcm9tIGxvd2NvcmUsIHN0b3JlZCBpbiB0aGUgSFNBICovCiAKIAlzYSA9IGttYWxsb2Moc2l6ZW9mKCpzYSksIEdGUF9LRVJORUwpOwotCWlmICghc2EpIHsKLQkJRVJST1JfTVNHKCJrbWFsbG9jIGZhaWxlZDogJXM6ICVpXG4iLF9fZnVuY19fLCBfX0xJTkVfXyk7CisJaWYgKCFzYSkKIAkJcmV0dXJuIC1FTk9NRU07Ci0JfQogCWlmIChtZW1jcHlfaHNhX2tlcm5lbChzYSwgc3lzX2luZm8uc2FfYmFzZSwgc3lzX2luZm8uc2Ffc2l6ZSkgPCAwKSB7Ci0JCUVSUk9SX01TRygiY291bGQgbm90IGNvcHkgZnJvbSBIU0FcbiIpOworCQlUUkFDRSgiY291bGQgbm90IGNvcHkgZnJvbSBIU0FcbiIpOwogCQlrZnJlZShzYSk7CiAJCXJldHVybiAtRUlPOwogCX0KQEAgLTUxMSw2ICs1MDksOCBAQAogICovCiBzdGF0aWMgaW50IF9faW5pdCBzeXNfaW5mb19pbml0KGVudW0gYXJjaF9pZCBhcmNoKQogeworCWludCByYzsKKwogCXN3aXRjaCAoYXJjaCkgewogCWNhc2UgQVJDSF9TMzkwWDoKIAkJTVNHKCJERVRFQ1RFRCAnUzM5MFggKDY0IGJpdCkgT1MnXG4iKTsKQEAgLTUyOSwxMCArNTI5LDkgQEAKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXN5c19pbmZvLmFyY2ggPSBhcmNoOwotCWlmIChpbml0X2NwdV9pbmZvKGFyY2gpKSB7Ci0JCUVSUk9SX01TRygiZ2V0IGNwdSBpbmZvIGZhaWxlZFxuIik7Ci0JCXJldHVybiAtRU5PTUVNOwotCX0KKwlyYyA9IGluaXRfY3B1X2luZm8oYXJjaCk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CiAJc3lzX2luZm8ubWVtX3NpemUgPSByZWFsX21lbW9yeV9zaXplOwogCiAJcmV0dXJuIDA7CkBAIC01NDQsMTIgKzU0MywxMiBAQAogCiAJcmMgPSBzY2xwX3NkaWFzX2Jsa19jb3VudCgpOwogCWlmIChyYyA8IDApIHsKLQkJRVJST1JfTVNHKCJDb3VsZCBub3QgZGV0ZXJtaW5lIEhTQSBzaXplXG4iKTsKKwkJVFJBQ0UoIkNvdWxkIG5vdCBkZXRlcm1pbmUgSFNBIHNpemVcbiIpOwogCQlyZXR1cm4gcmM7CiAJfQogCWFjdF9oc2Ffc2l6ZSA9IChyYyAtIDEpICogUEFHRV9TSVpFOwogCWlmIChhY3RfaHNhX3NpemUgPCBaRkNQRFVNUF9IU0FfU0laRSkgewotCQlFUlJPUl9NU0coIkhTQSBzaXplIHRvbyBzbWFsbDogJWlcbiIsIGFjdF9oc2Ffc2l6ZSk7CisJCVRSQUNFKCJIU0Egc2l6ZSB0b28gc21hbGw6ICVpXG4iLCBhY3RfaHNhX3NpemUpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIDA7CkBAIC01OTAsMTYgKzU4OSwxMiBAQAogCQlnb3RvIGZhaWw7CiAKIAlyYyA9IGNoZWNrX3NkaWFzKCk7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygiRHVtcCBpbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJZ290byBmYWlsOwotCX0KIAogCXJjID0gbWVtY3B5X2hzYV9rZXJuZWwoJmFyY2gsIF9fTENfQVJfTU9ERV9JRCwgMSk7Ci0JaWYgKHJjKSB7Ci0JCUVSUk9SX01TRygic2RpYWwgbWVtY3B5IGZvciBhcmNoIGlkIGZhaWxlZFxuIik7CisJaWYgKHJjKQogCQlnb3RvIGZhaWw7Ci0JfQogCiAjaWZuZGVmIF9fczM5MHhfXwogCWlmIChhcmNoID09IEFSQ0hfUzM5MFgpIHsKQEAgLTYxMCwxMCArNjA1LDggQEAKICNlbmRpZgogCiAJcmMgPSBzeXNfaW5mb19pbml0KGFyY2gpOwotCWlmIChyYykgewotCQlFUlJPUl9NU0coImFyY2ggaW5pdCBmYWlsZWRcbiIpOworCWlmIChyYykKIAkJZ290byBmYWlsOwotCX0KIAogCXpjb3JlX2hlYWRlcl9pbml0KGFyY2gsICZ6Y29yZV9oZWFkZXIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL01ha2VmaWxlIGIvZHJpdmVycy9zMzkwL2Npby9NYWtlZmlsZQppbmRleCBjZmFmNzdiLi45MWU5ZTNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vTWFrZWZpbGUKQEAgLTIsOSArMiwxMSBAQAogIyBNYWtlZmlsZSBmb3IgdGhlIFMvMzkwIGNvbW1vbiBpL28gZHJpdmVycwogIwogCi1vYmoteSArPSBhaXJxLm8gYmxhY2tsaXN0Lm8gY2hzYy5vIGNpby5vIGNzcy5vIGNocC5vIGlkc2V0Lm8KK29iai15ICs9IGFpcnEubyBibGFja2xpc3QubyBjaHNjLm8gY2lvLm8gY3NzLm8gY2hwLm8gaWRzZXQubyBpc2MubyBzY3N3Lm8gXAorCWZjeC5vIGl0Y3cubwogY2N3X2RldmljZS1vYmpzICs9IGRldmljZS5vIGRldmljZV9mc20ubyBkZXZpY2Vfb3BzLm8KIGNjd19kZXZpY2Utb2JqcyArPSBkZXZpY2VfaWQubyBkZXZpY2VfcGdpZC5vIGRldmljZV9zdGF0dXMubwogb2JqLXkgKz0gY2N3X2RldmljZS5vIGNtZi5vCitvYmotJChDT05GSUdfQ0hTQ19TQ0gpICs9IGNoc2Nfc2NoLm8KIG9iai0kKENPTkZJR19DQ1dHUk9VUCkgKz0gY2N3Z3JvdXAubwogb2JqLSQoQ09ORklHX1FESU8pICs9IHFkaW8ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9haXJxLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYwppbmRleCBiN2EwN2E4Li5mZTZjZWExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2FpcnEuYwpAQCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAKICNpbmNsdWRlIDxhc20vYWlycS5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgpAQCAtMzMsMTUgKzM0LDE1IEBACiAJdm9pZCAqZHJ2X2RhdGE7CiB9OwogCi1zdGF0aWMgdW5pb24gaW5kaWNhdG9yX3QgaW5kaWNhdG9yczsKLXN0YXRpYyBzdHJ1Y3QgYWlycV90ICphaXJxc1tOUl9BSVJRU107CitzdGF0aWMgdW5pb24gaW5kaWNhdG9yX3QgaW5kaWNhdG9yc1tNQVhfSVNDXTsKK3N0YXRpYyBzdHJ1Y3QgYWlycV90ICphaXJxc1tNQVhfSVNDXVtOUl9BSVJRU107CiAKLXN0YXRpYyBpbnQgcmVnaXN0ZXJfYWlycShzdHJ1Y3QgYWlycV90ICphaXJxKQorc3RhdGljIGludCByZWdpc3Rlcl9haXJxKHN0cnVjdCBhaXJxX3QgKmFpcnEsIHU4IGlzYykKIHsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBOUl9BSVJRUzsgaSsrKQotCQlpZiAoIWNtcHhjaGcoJmFpcnFzW2ldLCBOVUxMLCBhaXJxKSkKKwkJaWYgKCFjbXB4Y2hnKCZhaXJxc1tpc2NdW2ldLCBOVUxMLCBhaXJxKSkKIAkJCXJldHVybiBpOwogCXJldHVybiAtRU5PTUVNOwogfQpAQCAtNTAsMTggKzUxLDIxIEBACiAgKiBzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KCkgLSByZWdpc3RlciBhZGFwdGVyIGludGVycnVwdCBoYW5kbGVyCiAgKiBAaGFuZGxlcjogYWRhcHRlciBoYW5kbGVyIHRvIGJlIHJlZ2lzdGVyZWQKICAqIEBkcnZfZGF0YTogZHJpdmVyIGRhdGEgcGFzc2VkIHdpdGggZWFjaCBjYWxsIHRvIHRoZSBoYW5kbGVyCisgKiBAaXNjOiBpc2MgZm9yIHdoaWNoIHRoZSBoYW5kbGVyIHNob3VsZCBiZSBjYWxsZWQKICAqCiAgKiBSZXR1cm5zOgogICogIFBvaW50ZXIgdG8gdGhlIGluZGljYXRvciB0byBiZSB1c2VkIG9uIHN1Y2Nlc3MKICAqICBFUlJfUFRSKCkgaWYgcmVnaXN0cmF0aW9uIGZhaWxlZAogICovCiB2b2lkICpzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KGFkYXB0ZXJfaW50X2hhbmRsZXJfdCBoYW5kbGVyLAotCQkJCSAgICAgIHZvaWQgKmRydl9kYXRhKQorCQkJCSAgICAgIHZvaWQgKmRydl9kYXRhLCB1OCBpc2MpCiB7CiAJc3RydWN0IGFpcnFfdCAqYWlycTsKIAljaGFyIGRiZl90eHRbMTZdOwogCWludCByZXQ7CiAKKwlpZiAoaXNjID4gTUFYX0lTQykKKwkJcmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7CiAJYWlycSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBhaXJxX3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWFpcnEpIHsKIAkJcmV0ID0gLUVOT01FTTsKQEAgLTY5LDM0ICs3MywzNSBAQAogCX0KIAlhaXJxLT5oYW5kbGVyID0gaGFuZGxlcjsKIAlhaXJxLT5kcnZfZGF0YSA9IGRydl9kYXRhOwotCXJldCA9IHJlZ2lzdGVyX2FpcnEoYWlycSk7Ci0JaWYgKHJldCA8IDApCi0JCWtmcmVlKGFpcnEpOworCisJcmV0ID0gcmVnaXN0ZXJfYWlycShhaXJxLCBpc2MpOwogb3V0OgogCXNucHJpbnRmKGRiZl90eHQsIHNpemVvZihkYmZfdHh0KSwgInJhaXJxOiVkIiwgcmV0KTsKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgZGJmX3R4dCk7Ci0JaWYgKHJldCA8IDApCisJaWYgKHJldCA8IDApIHsKKwkJa2ZyZWUoYWlycSk7CiAJCXJldHVybiBFUlJfUFRSKHJldCk7Ci0JZWxzZQotCQlyZXR1cm4gJmluZGljYXRvcnMuYnl0ZVtyZXRdOworCX0gZWxzZQorCQlyZXR1cm4gJmluZGljYXRvcnNbaXNjXS5ieXRlW3JldF07CiB9CiBFWFBPUlRfU1lNQk9MKHMzOTBfcmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQpOwogCiAvKioKICAqIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCAtIHVucmVnaXN0ZXIgYWRhcHRlciBpbnRlcnJ1cHQgaGFuZGxlcgogICogQGluZDogaW5kaWNhdG9yIGZvciB3aGljaCB0aGUgaGFuZGxlciBpcyB0byBiZSB1bnJlZ2lzdGVyZWQKKyAqIEBpc2M6IGludGVycnVwdGlvbiBzdWJjbGFzcwogICovCi12b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICppbmQpCit2b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICppbmQsIHU4IGlzYykKIHsKIAlzdHJ1Y3QgYWlycV90ICphaXJxOwogCWNoYXIgZGJmX3R4dFsxNl07CiAJaW50IGk7CiAKLQlpID0gKGludCkgKChhZGRyX3QpIGluZCkgLSAoKGFkZHJfdCkgJmluZGljYXRvcnMuYnl0ZVswXSk7CisJaSA9IChpbnQpICgoYWRkcl90KSBpbmQpIC0gKChhZGRyX3QpICZpbmRpY2F0b3JzW2lzY10uYnl0ZVswXSk7CiAJc25wcmludGYoZGJmX3R4dCwgc2l6ZW9mKGRiZl90eHQpLCAidXJhaXJxOiVkIiwgaSk7CiAJQ0lPX1RSQUNFX0VWRU5UKDQsIGRiZl90eHQpOwotCWluZGljYXRvcnMuYnl0ZVtpXSA9IDA7Ci0JYWlycSA9IHhjaGcoJmFpcnFzW2ldLCBOVUxMKTsKKwlpbmRpY2F0b3JzW2lzY10uYnl0ZVtpXSA9IDA7CisJYWlycSA9IHhjaGcoJmFpcnFzW2lzY11baV0sIE5VTEwpOwogCS8qCiAJICogQWxsb3cgaW50ZXJydXB0cyB0byBjb21wbGV0ZS4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBhaXJxIGhhbmRsZQogCSAqIGlzIG5vIGxvbmdlciByZWZlcmVuY2VkIGJ5IGFueSBpbnRlcnJ1cHQgaGFuZGxlci4KQEAgLTEwOCw3ICsxMTMsNyBAQAogCiAjZGVmaW5lIElORElDQVRPUl9NQVNLCSgweGZmVUwgPDwgKChOUl9BSVJRU19QRVJfV09SRCAtIDEpICogOCkpCiAKLXZvaWQgZG9fYWRhcHRlcl9JTyh2b2lkKQordm9pZCBkb19hZGFwdGVyX0lPKHU4IGlzYykKIHsKIAlpbnQgdzsKIAlpbnQgaTsKQEAgLTEyMCwyMiArMTI1LDIyIEBACiAJICogZmV0Y2ggb3BlcmF0aW9ucy4KIAkgKi8KIAlmb3IgKHcgPSAwOyB3IDwgTlJfQUlSUV9XT1JEUzsgdysrKSB7Ci0JCXdvcmQgPSBpbmRpY2F0b3JzLndvcmRbd107CisJCXdvcmQgPSBpbmRpY2F0b3JzW2lzY10ud29yZFt3XTsKIAkJaSA9IHcgKiBOUl9BSVJRU19QRVJfV09SRDsKIAkJLyoKIAkJICogQ2hlY2sgYnl0ZXMgd2l0aGluIHdvcmQgZm9yIGFjdGl2ZSBpbmRpY2F0b3JzLgogCQkgKi8KIAkJd2hpbGUgKHdvcmQpIHsKIAkJCWlmICh3b3JkICYgSU5ESUNBVE9SX01BU0spIHsKLQkJCQlhaXJxID0gYWlycXNbaV07CisJCQkJYWlycSA9IGFpcnFzW2lzY11baV07CiAJCQkJaWYgKGxpa2VseShhaXJxKSkKLQkJCQkJYWlycS0+aGFuZGxlcigmaW5kaWNhdG9ycy5ieXRlW2ldLAorCQkJCQlhaXJxLT5oYW5kbGVyKCZpbmRpY2F0b3JzW2lzY10uYnl0ZVtpXSwKIAkJCQkJCSAgICAgIGFpcnEtPmRydl9kYXRhKTsKIAkJCQllbHNlCiAJCQkJCS8qCiAJCQkJCSAqIFJlc2V0IGlsbC1iZWhhdmVkIGluZGljYXRvci4KIAkJCQkJICovCi0JCQkJCWluZGljYXRvcnMuYnl0ZVtpXSA9IDA7CisJCQkJCWluZGljYXRvcnNbaXNjXS5ieXRlW2ldID0gMDsKIAkJCX0KIAkJCXdvcmQgPDw9IDg7CiAJCQlpKys7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2JsYWNrbGlzdC5jIGIvZHJpdmVycy9zMzkwL2Npby9ibGFja2xpc3QuYwppbmRleCBhNGE1ZjJlLi4wYmZjYmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2JsYWNrbGlzdC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vYmxhY2tsaXN0LmMKQEAgLTk3LDggKzk3LDggQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBwYXJzZV9idXNpZChjaGFyICpzdHIsIGludCAqY3NzaWQsIGludCAqc3NpZCwgaW50ICpkZXZubywKLQkJICAgICAgIGludCBtc2d0cmlnZ2VyKQorc3RhdGljIGludCBwYXJzZV9idXNpZChjaGFyICpzdHIsIHVuc2lnbmVkIGludCAqY3NzaWQsIHVuc2lnbmVkIGludCAqc3NpZCwKKwkJICAgICAgIHVuc2lnbmVkIGludCAqZGV2bm8sIGludCBtc2d0cmlnZ2VyKQogewogCWNoYXIgKnN0cl93b3JrOwogCWludCB2YWwsIHJjLCByZXQ7CkBAIC0xNDgsNyArMTQ4LDcgQEAKIHN0YXRpYyBpbnQgYmxhY2tsaXN0X3BhcnNlX3BhcmFtZXRlcnMoY2hhciAqc3RyLCByYW5nZV9hY3Rpb24gYWN0aW9uLAogCQkJCSAgICAgIGludCBtc2d0cmlnZ2VyKQogewotCWludCBmcm9tX2Nzc2lkLCB0b19jc3NpZCwgZnJvbV9zc2lkLCB0b19zc2lkLCBmcm9tLCB0bzsKKwl1bnNpZ25lZCBpbnQgZnJvbV9jc3NpZCwgdG9fY3NzaWQsIGZyb21fc3NpZCwgdG9fc3NpZCwgZnJvbSwgdG87CiAJaW50IHJjLCB0b3RhbHJjOwogCWNoYXIgKnBhcm07CiAJcmFuZ2VfYWN0aW9uIHJhOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHAuYyBiL2RyaXZlcnMvczM5MC9jaW8vY2hwLmMKaW5kZXggMjk3Y2RjZS4uZGIwMGIwNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jaHAuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2NocC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSA8YXNtL3NjbHAuaD4KIAorI2luY2x1ZGUgIi4uL3MzOTBtYWNoLmgiCiAjaW5jbHVkZSAiY2lvLmgiCiAjaW5jbHVkZSAiY3NzLmgiCiAjaW5jbHVkZSAiaW9hc20uaCIKQEAgLTk0LDYgKzk1LDcgQEAKIAl9CiAJcmV0dXJuIG9wbTsKIH0KK0VYUE9SVF9TWU1CT0xfR1BMKGNocF9nZXRfc2NoX29wbSk7CiAKIC8qKgogICogY2hwX2lzX3JlZ2lzdGVyZWQgLSBjaGVjayBpZiBhIGNoYW5uZWwtcGF0aCBpcyByZWdpc3RlcmVkCkBAIC0xMjEsMTEgKzEyMyw4IEBACiAJQ0lPX1RSQUNFX0VWRU5UKDIsIGRiZl90ZXh0KTsKIAogCXN0YXR1cyA9IGNocF9nZXRfc3RhdHVzKGNocGlkKTsKLQlpZiAoIW9uICYmICFzdGF0dXMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJjaW86IGNocGlkICV4LiUwMnggaXMgYWxyZWFkeSBvZmZsaW5lXG4iLAotCQkgICAgICAgY2hwaWQuY3NzaWQsIGNocGlkLmlkKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQorCWlmICghb24gJiYgIXN0YXR1cykKKwkJcmV0dXJuIDA7CiAKIAlzZXRfY2hwX2xvZ2ljYWxseV9vbmxpbmUoY2hwaWQsIG9uKTsKIAljaHNjX2NocF92YXJ5KGNocGlkLCBvbik7CkBAIC0xNDEsMjEgKzE0MCwxNCBAQAogewogCXN0cnVjdCBjaGFubmVsX3BhdGggKmNocDsKIAlzdHJ1Y3QgZGV2aWNlICpkZXZpY2U7Ci0JdW5zaWduZWQgaW50IHNpemU7CiAKIAlkZXZpY2UgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGRldmljZSwga29iaik7CiAJY2hwID0gdG9fY2hhbm5lbHBhdGgoZGV2aWNlKTsKIAlpZiAoIWNocC0+Y21nX2NoYXJzKQogCQlyZXR1cm4gMDsKIAotCXNpemUgPSBzaXplb2Yoc3RydWN0IGNtZ19jaGFycyk7Ci0KLQlpZiAob2ZmID4gc2l6ZSkKLQkJcmV0dXJuIDA7Ci0JaWYgKG9mZiArIGNvdW50ID4gc2l6ZSkKLQkJY291bnQgPSBzaXplIC0gb2ZmOwotCW1lbWNweShidWYsIGNocC0+Y21nX2NoYXJzICsgb2ZmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXJldHVybiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcihidWYsIGNvdW50LCAmb2ZmLAorCQkJCWNocC0+Y21nX2NoYXJzLCBzaXplb2Yoc3RydWN0IGNtZ19jaGFycykpOwogfQogCiBzdGF0aWMgc3RydWN0IGJpbl9hdHRyaWJ1dGUgY2hwX21lYXN1cmVtZW50X2NoYXJzX2F0dHIgPSB7CkBAIC00MDUsNyArMzk3LDcgQEAKIAkJIGNocGlkLmlkKTsKIAogCS8qIE9idGFpbiBjaGFubmVsIHBhdGggZGVzY3JpcHRpb24gYW5kIGZpbGwgaXQgaW4uICovCi0JcmV0ID0gY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2NyaXB0aW9uKGNocGlkLCAmY2hwLT5kZXNjKTsKKwlyZXQgPSBjaHNjX2RldGVybWluZV9iYXNlX2NoYW5uZWxfcGF0aF9kZXNjKGNocGlkLCAmY2hwLT5kZXNjKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF9mcmVlOwogCWlmICgoY2hwLT5kZXNjLmZsYWdzICYgMHg4MCkgPT0gMCkgewpAQCAtNDEzLDggKzQwNSw3IEBACiAJCWdvdG8gb3V0X2ZyZWU7CiAJfQogCS8qIEdldCBjaGFubmVsLW1lYXN1cmVtZW50IGNoYXJhY3RlcmlzdGljcy4gKi8KLQlpZiAoY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCAmJiBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2NtYwotCSAgICAmJiBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkgeworCWlmIChjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2NtYyAmJiBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkgewogCQlyZXQgPSBjaHNjX2dldF9jaGFubmVsX21lYXN1cmVtZW50X2NoYXJzKGNocCk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIG91dF9mcmVlOwpAQCAtNDc2LDI2ICs0NjcsNzQgQEAKIAogLyoqCiAgKiBjaHBfcHJvY2Vzc19jcncgLSBwcm9jZXNzIGNoYW5uZWwtcGF0aCBzdGF0dXMgY2hhbmdlCi0gKiBAaWQ6IGNoYW5uZWwtcGF0aCBJRCBudW1iZXIKLSAqIEBzdGF0dXM6IG5vbi16ZXJvIGlmIGNoYW5uZWwtcGF0aCBoYXMgYmVjb21lIGF2YWlsYWJsZSwgemVybyBvdGhlcndpc2UKKyAqIEBjcncwOiBjaGFubmVsIHJlcG9ydC13b3JkIHRvIGhhbmRsZXIKKyAqIEBjcncxOiBzZWNvbmQgY2hhbm5lbC1yZXBvcnQgd29yZCAoYWx3YXlzIE5VTEwpCisgKiBAb3ZlcmZsb3c6IGNydyBvdmVyZmxvdyBpbmRpY2F0aW9uCiAgKgogICogSGFuZGxlIGNoYW5uZWwtcmVwb3J0LXdvcmRzIGluZGljYXRpbmcgdGhhdCB0aGUgc3RhdHVzIG9mIGEgY2hhbm5lbC1wYXRoCiAgKiBoYXMgY2hhbmdlZC4KICAqLwotdm9pZCBjaHBfcHJvY2Vzc19jcncoaW50IGlkLCBpbnQgc3RhdHVzKQorc3RhdGljIHZvaWQgY2hwX3Byb2Nlc3NfY3J3KHN0cnVjdCBjcncgKmNydzAsIHN0cnVjdCBjcncgKmNydzEsCisJCQkgICAgaW50IG92ZXJmbG93KQogewogCXN0cnVjdCBjaHBfaWQgY2hwaWQ7CiAKKwlpZiAob3ZlcmZsb3cpIHsKKwkJY3NzX3NjaGVkdWxlX2V2YWxfYWxsKCk7CisJCXJldHVybjsKKwl9CisJQ0lPX0NSV19FVkVOVCgyLCAiQ1JXIHJlcG9ydHMgc2xjdD0lZCwgb2Zsdz0lZCwgIgorCQkgICAgICAiY2huPSVkLCByc2M9JVgsIGFuYz0lZCwgZXJjPSVYLCByc2lkPSVYXG4iLAorCQkgICAgICBjcncwLT5zbGN0LCBjcncwLT5vZmx3LCBjcncwLT5jaG4sIGNydzAtPnJzYywgY3J3MC0+YW5jLAorCQkgICAgICBjcncwLT5lcmMsIGNydzAtPnJzaWQpOworCS8qCisJICogQ2hlY2sgZm9yIHNvbGljaXRlZCBtYWNoaW5lIGNoZWNrcy4gVGhlc2UgYXJlCisJICogY3JlYXRlZCBieSByZXNldCBjaGFubmVsIHBhdGggYW5kIG5lZWQgbm90IGJlCisJICogaGFuZGxlZCBoZXJlLgorCSAqLworCWlmIChjcncwLT5zbGN0KSB7CisJCUNJT19DUldfRVZFTlQoMiwgInNvbGljaXRlZCBtYWNoaW5lIGNoZWNrIGZvciAiCisJCQkgICAgICAiY2hhbm5lbCBwYXRoICUwMlhcbiIsIGNydzAtPnJzaWQpOworCQlyZXR1cm47CisJfQogCWNocF9pZF9pbml0KCZjaHBpZCk7Ci0JY2hwaWQuaWQgPSBpZDsKLQlpZiAoc3RhdHVzKSB7CisJY2hwaWQuaWQgPSBjcncwLT5yc2lkOworCXN3aXRjaCAoY3J3MC0+ZXJjKSB7CisJY2FzZSBDUldfRVJDX0lQQVJNOiAvKiBQYXRoIGhhcyBjb21lLiAqLwogCQlpZiAoIWNocF9pc19yZWdpc3RlcmVkKGNocGlkKSkKIAkJCWNocF9uZXcoY2hwaWQpOwogCQljaHNjX2NocF9vbmxpbmUoY2hwaWQpOwotCX0gZWxzZQorCQlicmVhazsKKwljYXNlIENSV19FUkNfUEVSUkk6IC8qIFBhdGggaGFzIGdvbmUuICovCisJY2FzZSBDUldfRVJDX1BFUlJOOgogCQljaHNjX2NocF9vZmZsaW5lKGNocGlkKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJQ0lPX0NSV19FVkVOVCgyLCAiRG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlIGVyYz0leFxuIiwKKwkJCSAgICAgIGNydzAtPmVyYyk7CisJfQogfQogCitpbnQgY2hwX3NzZF9nZXRfbWFzayhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqc3NkLCBzdHJ1Y3QgY2hwX2xpbmsgKmxpbmspCit7CisJaW50IGk7CisJaW50IG1hc2s7CisKKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCW1hc2sgPSAweDgwID4+IGk7CisJCWlmICghKHNzZC0+cGF0aF9tYXNrICYgbWFzaykpCisJCQljb250aW51ZTsKKwkJaWYgKCFjaHBfaWRfaXNfZXF1YWwoJnNzZC0+Y2hwaWRbaV0sICZsaW5rLT5jaHBpZCkpCisJCQljb250aW51ZTsKKwkJaWYgKChzc2QtPmZsYV92YWxpZF9tYXNrICYgbWFzaykgJiYKKwkJICAgICgoc3NkLT5mbGFbaV0gJiBsaW5rLT5mbGFfbWFzaykgIT0gbGluay0+ZmxhKSkKKwkJCWNvbnRpbnVlOworCQlyZXR1cm4gbWFzazsKKwl9CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChjaHBfc3NkX2dldF9tYXNrKTsKKwogc3RhdGljIGlubGluZSBpbnQgaW5mb19iaXRfbnVtKHN0cnVjdCBjaHBfaWQgaWQpCiB7CiAJcmV0dXJuIGlkLmlkICsgaWQuY3NzaWQgKiAoX19NQVhfQ0hQSUQgKyAxKTsKQEAgLTU3NSw2ICs2MTQsNyBAQAogewogCXN0cnVjdCBjaHBfaWQgY2hwaWQ7CiAJZW51bSBjZmdfdGFza190IHQ7CisJaW50IHJjOwogCiAJbXV0ZXhfbG9jaygmY2ZnX2xvY2spOwogCXQgPSBjZmdfbm9uZTsKQEAgLTU4OSwxNCArNjI5LDI0IEBACiAKIAlzd2l0Y2ggKHQpIHsKIAljYXNlIGNmZ19jb25maWd1cmU6Ci0JCXNjbHBfY2hwX2NvbmZpZ3VyZShjaHBpZCk7Ci0JCWluZm9fZXhwaXJlKCk7Ci0JCWNoc2NfY2hwX29ubGluZShjaHBpZCk7CisJCXJjID0gc2NscF9jaHBfY29uZmlndXJlKGNocGlkKTsKKwkJaWYgKHJjKQorCQkJQ0lPX01TR19FVkVOVCgyLCAiY2hwOiBzY2xwX2NocF9jb25maWd1cmUoJXguJTAyeCk9IgorCQkJCSAgICAgICIlZFxuIiwgY2hwaWQuY3NzaWQsIGNocGlkLmlkLCByYyk7CisJCWVsc2UgeworCQkJaW5mb19leHBpcmUoKTsKKwkJCWNoc2NfY2hwX29ubGluZShjaHBpZCk7CisJCX0KIAkJYnJlYWs7CiAJY2FzZSBjZmdfZGVjb25maWd1cmU6Ci0JCXNjbHBfY2hwX2RlY29uZmlndXJlKGNocGlkKTsKLQkJaW5mb19leHBpcmUoKTsKLQkJY2hzY19jaHBfb2ZmbGluZShjaHBpZCk7CisJCXJjID0gc2NscF9jaHBfZGVjb25maWd1cmUoY2hwaWQpOworCQlpZiAocmMpCisJCQlDSU9fTVNHX0VWRU5UKDIsICJjaHA6IHNjbHBfY2hwX2RlY29uZmlndXJlKCV4LiUwMngpPSIKKwkJCQkgICAgICAiJWRcbiIsIGNocGlkLmNzc2lkLCBjaHBpZC5pZCwgcmMpOworCQllbHNlIHsKKwkJCWluZm9fZXhwaXJlKCk7CisJCQljaHNjX2NocF9vZmZsaW5lKGNocGlkKTsKKwkJfQogCQlicmVhazsKIAljYXNlIGNmZ19ub25lOgogCQkvKiBHZXQgdXBkYXRlZCBpbmZvcm1hdGlvbiBhZnRlciBsYXN0IGNoYW5nZS4gKi8KQEAgLTY1NCwxMCArNzA0LDE2IEBACiBzdGF0aWMgaW50IF9faW5pdCBjaHBfaW5pdCh2b2lkKQogewogCXN0cnVjdCBjaHBfaWQgY2hwaWQ7CisJaW50IHJldDsKIAorCXJldCA9IHMzOTBfcmVnaXN0ZXJfY3J3X2hhbmRsZXIoQ1JXX1JTQ19DUEFUSCwgY2hwX3Byb2Nlc3NfY3J3KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OwogCWNocF93cSA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKCJjaW9fY2hwIik7Ci0JaWYgKCFjaHBfd3EpCisJaWYgKCFjaHBfd3EpIHsKKwkJczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1BBVEgpOwogCQlyZXR1cm4gLUVOT01FTTsKKwl9CiAJSU5JVF9XT1JLKCZjZmdfd29yaywgY2ZnX2Z1bmMpOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmNmZ193YWl0X3F1ZXVlKTsKIAlpZiAoaW5mb191cGRhdGUoKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2hwLmggYi9kcml2ZXJzL3MzOTAvY2lvL2NocC5oCmluZGV4IDY1Mjg2NTYuLjI2YzNkMjI0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2NocC5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY2hwLmgKQEAgLTEyLDEyICsxMiwyNCBAQAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgogI2luY2x1ZGUgImNoc2MuaCIKKyNpbmNsdWRlICJjc3MuaCIKIAogI2RlZmluZSBDSFBfU1RBVFVTX1NUQU5EQlkJCTAKICNkZWZpbmUgQ0hQX1NUQVRVU19DT05GSUdVUkVECQkxCiAjZGVmaW5lIENIUF9TVEFUVVNfUkVTRVJWRUQJCTIKICNkZWZpbmUgQ0hQX1NUQVRVU19OT1RfUkVDT0dOSVpFRAkzCiAKKyNkZWZpbmUgQ0hQX09OTElORSAwCisjZGVmaW5lIENIUF9PRkZMSU5FIDEKKyNkZWZpbmUgQ0hQX1ZBUllfT04gMgorI2RlZmluZSBDSFBfVkFSWV9PRkYgMworCitzdHJ1Y3QgY2hwX2xpbmsgeworCXN0cnVjdCBjaHBfaWQgY2hwaWQ7CisJdTMyIGZsYV9tYXNrOworCXUxNiBmbGE7Cit9OworCiBzdGF0aWMgaW5saW5lIGludCBjaHBfdGVzdF9iaXQodTggKmJpdG1hcCwgaW50IG51bSkKIHsKIAlpbnQgYnl0ZSA9IG51bSA+PiAzOwpAQCAtNDIsMTIgKzU0LDExIEBACiB1OCBjaHBfZ2V0X3NjaF9vcG0oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CiBpbnQgY2hwX2lzX3JlZ2lzdGVyZWQoc3RydWN0IGNocF9pZCBjaHBpZCk7CiB2b2lkICpjaHBfZ2V0X2NocF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwotdm9pZCBjaHBfcHJvY2Vzc19jcncoaW50IGlkLCBpbnQgYXZhaWxhYmxlKTsKIHZvaWQgY2hwX3JlbW92ZV9jbWdfYXR0cihzdHJ1Y3QgY2hhbm5lbF9wYXRoICpjaHApOwogaW50IGNocF9hZGRfY21nX2F0dHIoc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwKTsKIGludCBjaHBfbmV3KHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogdm9pZCBjaHBfY2ZnX3NjaGVkdWxlKHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBjb25maWd1cmUpOwogdm9pZCBjaHBfY2ZnX2NhbmNlbF9kZWNvbmZpZ3VyZShzdHJ1Y3QgY2hwX2lkIGNocGlkKTsKIGludCBjaHBfaW5mb19nZXRfc3RhdHVzKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwotCitpbnQgY2hwX3NzZF9nZXRfbWFzayhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqLCBzdHJ1Y3QgY2hwX2xpbmsgKik7CiAjZW5kaWYgLyogUzM5MF9DSFBfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwppbmRleCA1ZGU4NjkwLi42NTI2NGEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwpAQCAtMiw4ICsyLDcgQEAKICAqICBkcml2ZXJzL3MzOTAvY2lvL2Noc2MuYwogICogICBTLzM5MCBjb21tb24gSS9PIHJvdXRpbmVzIC0tIGNoYW5uZWwgc3Vic3lzdGVtIGNhbGwKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMiBJQk0gRGV1dHNjaGxhbmQgRW50d2lja2x1bmcgR21iSCwKLSAqCQkJICAgICAgSUJNIENvcnBvcmF0aW9uCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTksMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgQXJuZCBCZXJnbWFubiAoYXJuZGJAZGUuaWJtLmNvbSkKQEAgLTE2LDcgKzE1LDkgQEAKIAogI2luY2x1ZGUgPGFzbS9jaW8uaD4KICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KKyNpbmNsdWRlIDxhc20vY2hzYy5oPgogCisjaW5jbHVkZSAiLi4vczM5MG1hY2guaCIKICNpbmNsdWRlICJjc3MuaCIKICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjaW9fZGVidWcuaCIKQEAgLTEyNyw3NyArMTI4LDEyIEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBjaGVja19mb3JfaW9fb25fcGF0aChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBpbnQgbWFzaykKLXsKLQlpbnQgY2M7Ci0KLQljYyA9IHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKTsKLQlpZiAoY2MpCi0JCXJldHVybiAwOwotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAmJiBzY2gtPnNjaGliLnBtY3cubHB1bSA9PSBtYXNrKQotCQlyZXR1cm4gMTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgdGVybWluYXRlX2ludGVybmFsX2lvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0JaWYgKGNpb19jbGVhcihzY2gpKSB7Ci0JCS8qIFJlY2hlY2sgZGV2aWNlIGluIGNhc2UgY2xlYXIgZmFpbGVkLiAqLwotCQlzY2gtPmxwbSA9IDA7Ci0JCWlmIChkZXZpY2VfdHJpZ2dlcl92ZXJpZnkoc2NoKSAhPSAwKQotCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Ci0JCXJldHVybjsKLQl9Ci0JLyogUmVxdWVzdCByZXRyeSBvZiBpbnRlcm5hbCBvcGVyYXRpb24uICovCi0JZGV2aWNlX3NldF9pbnRyZXRyeShzY2gpOwotCS8qIENhbGwgaGFuZGxlci4gKi8KLQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnRlcm1pbmF0aW9uKQotCQlzY2gtPmRyaXZlci0+dGVybWluYXRpb24oc2NoKTsKLX0KLQogc3RhdGljIGludCBzMzkwX3N1YmNoYW5uZWxfcmVtb3ZlX2NocGlkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHZvaWQgKmRhdGEpCiB7Ci0JaW50IGo7Ci0JaW50IG1hc2s7Ci0Jc3RydWN0IGNocF9pZCAqY2hwaWQgPSBkYXRhOwotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWZvciAoaiA9IDA7IGogPCA4OyBqKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gajsKLQkJaWYgKChzY2gtPnNjaGliLnBtY3cucGltICYgbWFzaykgJiYKLQkJICAgIChzY2gtPnNjaGliLnBtY3cuY2hwaWRbal0gPT0gY2hwaWQtPmlkKSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaiA+PSA4KQotCQlyZXR1cm4gMDsKLQogCXNwaW5fbG9ja19pcnEoc2NoLT5sb2NrKTsKLQotCXN0c2NoKHNjaC0+c2NoaWQsICZzY2hpYik7Ci0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2hpYikpCi0JCWdvdG8gb3V0X3VucmVnOwotCW1lbWNweSgmc2NoLT5zY2hpYiwgJnNjaGliLCBzaXplb2Yoc3RydWN0IHNjaGliKSk7Ci0JLyogQ2hlY2sgZm9yIHNpbmdsZSBwYXRoIGRldmljZXMuICovCi0JaWYgKHNjaC0+c2NoaWIucG1jdy5waW0gPT0gMHg4MCkKLQkJZ290byBvdXRfdW5yZWc7Ci0KLQlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgewotCQlpZiAoZGV2aWNlX2lzX29ubGluZShzY2gpKQotCQkJZGV2aWNlX2tpbGxfaW8oc2NoKTsKLQkJZWxzZSB7Ci0JCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoKTsKLQkJCS8qIFJlLXN0YXJ0IHBhdGggdmVyaWZpY2F0aW9uLiAqLwotCQkJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogdHJpZ2dlciBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KLQkJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci0JCWVsc2UgaWYgKHNjaC0+bHBtID09IG1hc2spCisJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQpCisJCWlmIChzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KHNjaCwgZGF0YSwgQ0hQX09GRkxJTkUpICE9IDApCiAJCQlnb3RvIG91dF91bnJlZzsKLQl9Ci0KIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIAlyZXR1cm4gMDsKIApAQCAtMjExLDE1ICsxNDcsMTggQEAKIHZvaWQgY2hzY19jaHBfb2ZmbGluZShzdHJ1Y3QgY2hwX2lkIGNocGlkKQogewogCWNoYXIgZGJmX3R4dFsxNV07CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAKIAlzcHJpbnRmKGRiZl90eHQsICJjaHByJXguJTAyeCIsIGNocGlkLmNzc2lkLCBjaHBpZC5pZCk7CiAJQ0lPX1RSQUNFX0VWRU5UKDIsIGRiZl90eHQpOwogCiAJaWYgKGNocF9nZXRfc3RhdHVzKGNocGlkKSA8PSAwKQogCQlyZXR1cm47CisJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGNocF9saW5rKSk7CisJbGluay5jaHBpZCA9IGNocGlkOwogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCiAJY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCgpOwotCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKHMzOTBfc3ViY2hhbm5lbF9yZW1vdmVfY2hwaWQsIE5VTEwsICZjaHBpZCk7CisJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoczM5MF9zdWJjaGFubmVsX3JlbW92ZV9jaHBpZCwgTlVMTCwgJmxpbmspOwogfQogCiBzdGF0aWMgaW50IHMzOTBfcHJvY2Vzc19yZXNfYWNjX25ld19zY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvaWQgKmRhdGEpCkBAIC0yNDIsNjcgKzE4MSwyNSBAQAogCXJldHVybiAwOwogfQogCi1zdHJ1Y3QgcmVzX2FjY19kYXRhIHsKLQlzdHJ1Y3QgY2hwX2lkIGNocGlkOwotCXUzMiBmbGFfbWFzazsKLQl1MTYgZmxhOwotfTsKLQotc3RhdGljIGludCBnZXRfcmVzX2NocGlkX21hc2soc3RydWN0IGNoc2Nfc3NkX2luZm8gKnNzZCwKLQkJCSAgICAgIHN0cnVjdCByZXNfYWNjX2RhdGEgKmRhdGEpCi17Ci0JaW50IGk7Ci0JaW50IG1hc2s7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7Ci0JCW1hc2sgPSAweDgwID4+IGk7Ci0JCWlmICghKHNzZC0+cGF0aF9tYXNrICYgbWFzaykpCi0JCQljb250aW51ZTsKLQkJaWYgKCFjaHBfaWRfaXNfZXF1YWwoJnNzZC0+Y2hwaWRbaV0sICZkYXRhLT5jaHBpZCkpCi0JCQljb250aW51ZTsKLQkJaWYgKChzc2QtPmZsYV92YWxpZF9tYXNrICYgbWFzaykgJiYKLQkJICAgICgoc3NkLT5mbGFbaV0gJiBkYXRhLT5mbGFfbWFzaykgIT0gZGF0YS0+ZmxhKSkKLQkJCWNvbnRpbnVlOwotCQlyZXR1cm4gbWFzazsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgX19zMzkwX3Byb2Nlc3NfcmVzX2FjYyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCB2b2lkICpkYXRhKQogewotCWludCBjaHBfbWFzaywgb2xkX2xwbTsKLQlzdHJ1Y3QgcmVzX2FjY19kYXRhICpyZXNfZGF0YSA9IGRhdGE7Ci0KIAlzcGluX2xvY2tfaXJxKHNjaC0+bG9jayk7Ci0JY2hwX21hc2sgPSBnZXRfcmVzX2NocGlkX21hc2soJnNjaC0+c3NkX2luZm8sIHJlc19kYXRhKTsKLQlpZiAoY2hwX21hc2sgPT0gMCkKLQkJZ290byBvdXQ7Ci0JaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKLQkJZ290byBvdXQ7Ci0Jb2xkX2xwbSA9IHNjaC0+bHBtOwotCXNjaC0+bHBtID0gKChzY2gtPnNjaGliLnBtY3cucGltICYKLQkJICAgICBzY2gtPnNjaGliLnBtY3cucGFtICYKLQkJICAgICBzY2gtPnNjaGliLnBtY3cucG9tKQotCQkgICAgfCBjaHBfbWFzaykgJiBzY2gtPm9wbTsKLQlpZiAoIW9sZF9scG0gJiYgc2NoLT5scG0pCi0JCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKLQllbHNlIGlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+dmVyaWZ5KQotCQlzY2gtPmRyaXZlci0+dmVyaWZ5KHNjaCk7Ci1vdXQ6CisJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQpCisJCXNjaC0+ZHJpdmVyLT5jaHBfZXZlbnQoc2NoLCBkYXRhLCBDSFBfT05MSU5FKTsKIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBzMzkwX3Byb2Nlc3NfcmVzX2FjYyAoc3RydWN0IHJlc19hY2NfZGF0YSAqcmVzX2RhdGEpCitzdGF0aWMgdm9pZCBzMzkwX3Byb2Nlc3NfcmVzX2FjYyhzdHJ1Y3QgY2hwX2xpbmsgKmxpbmspCiB7CiAJY2hhciBkYmZfdHh0WzE1XTsKIAotCXNwcmludGYoZGJmX3R4dCwgImFjY3ByJXguJTAyeCIsIHJlc19kYXRhLT5jaHBpZC5jc3NpZCwKLQkJcmVzX2RhdGEtPmNocGlkLmlkKTsKKwlzcHJpbnRmKGRiZl90eHQsICJhY2NwciV4LiUwMngiLCBsaW5rLT5jaHBpZC5jc3NpZCwKKwkJbGluay0+Y2hwaWQuaWQpOwogCUNJT19UUkFDRV9FVkVOVCggMiwgZGJmX3R4dCk7Ci0JaWYgKHJlc19kYXRhLT5mbGEgIT0gMCkgewotCQlzcHJpbnRmKGRiZl90eHQsICJmbGEleCIsIHJlc19kYXRhLT5mbGEpOworCWlmIChsaW5rLT5mbGEgIT0gMCkgeworCQlzcHJpbnRmKGRiZl90eHQsICJmbGEleCIsIGxpbmstPmZsYSk7CiAJCUNJT19UUkFDRV9FVkVOVCggMiwgZGJmX3R4dCk7CiAJfQogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCkBAIC0zMTUsNyArMjEyLDcgQEAKIAkgKiB3aWxsIHdlIGhhdmUgdG8gZG8uCiAJICovCiAJZm9yX2VhY2hfc3ViY2hhbm5lbF9zdGFnZWQoX19zMzkwX3Byb2Nlc3NfcmVzX2FjYywKLQkJCQkgICBzMzkwX3Byb2Nlc3NfcmVzX2FjY19uZXdfc2NoLCByZXNfZGF0YSk7CisJCQkJICAgczM5MF9wcm9jZXNzX3Jlc19hY2NfbmV3X3NjaCwgbGluayk7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTM4OCw3ICsyODUsNyBAQAogCiBzdGF0aWMgdm9pZCBjaHNjX3Byb2Nlc3Nfc2VpX3Jlc19hY2Moc3RydWN0IGNoc2Nfc2VpX2FyZWEgKnNlaV9hcmVhKQogewotCXN0cnVjdCByZXNfYWNjX2RhdGEgcmVzX2RhdGE7CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAJc3RydWN0IGNocF9pZCBjaHBpZDsKIAlpbnQgc3RhdHVzOwogCkBAIC00MDQsMTggKzMwMSwxOCBAQAogCQljaHBfbmV3KGNocGlkKTsKIAllbHNlIGlmICghc3RhdHVzKQogCQlyZXR1cm47Ci0JbWVtc2V0KCZyZXNfZGF0YSwgMCwgc2l6ZW9mKHN0cnVjdCByZXNfYWNjX2RhdGEpKTsKLQlyZXNfZGF0YS5jaHBpZCA9IGNocGlkOworCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKHN0cnVjdCBjaHBfbGluaykpOworCWxpbmsuY2hwaWQgPSBjaHBpZDsKIAlpZiAoKHNlaV9hcmVhLT52ZiAmIDB4YzApICE9IDApIHsKLQkJcmVzX2RhdGEuZmxhID0gc2VpX2FyZWEtPmZsYTsKKwkJbGluay5mbGEgPSBzZWlfYXJlYS0+ZmxhOwogCQlpZiAoKHNlaV9hcmVhLT52ZiAmIDB4YzApID09IDB4YzApCiAJCQkvKiBmdWxsIGxpbmsgYWRkcmVzcyAqLwotCQkJcmVzX2RhdGEuZmxhX21hc2sgPSAweGZmZmY7CisJCQlsaW5rLmZsYV9tYXNrID0gMHhmZmZmOwogCQllbHNlCiAJCQkvKiBsaW5rIGFkZHJlc3MgKi8KLQkJCXJlc19kYXRhLmZsYV9tYXNrID0gMHhmZjAwOworCQkJbGluay5mbGFfbWFzayA9IDB4ZmYwMDsKIAl9Ci0JczM5MF9wcm9jZXNzX3Jlc19hY2MoJnJlc19kYXRhKTsKKwlzMzkwX3Byb2Nlc3NfcmVzX2FjYygmbGluayk7CiB9CiAKIHN0cnVjdCBjaHBfY29uZmlnX2RhdGEgewpAQCAtNDgwLDE3ICszNzcsMjUgQEAKIAl9CiB9CiAKLXZvaWQgY2hzY19wcm9jZXNzX2Nydyh2b2lkKQorc3RhdGljIHZvaWQgY2hzY19wcm9jZXNzX2NydyhzdHJ1Y3QgY3J3ICpjcncwLCBzdHJ1Y3QgY3J3ICpjcncxLCBpbnQgb3ZlcmZsb3cpCiB7CiAJc3RydWN0IGNoc2Nfc2VpX2FyZWEgKnNlaV9hcmVhOwogCisJaWYgKG92ZXJmbG93KSB7CisJCWNzc19zY2hlZHVsZV9ldmFsX2FsbCgpOworCQlyZXR1cm47CisJfQorCUNJT19DUldfRVZFTlQoMiwgIkNSVyByZXBvcnRzIHNsY3Q9JWQsIG9mbHc9JWQsICIKKwkJICAgICAgImNobj0lZCwgcnNjPSVYLCBhbmM9JWQsIGVyYz0lWCwgcnNpZD0lWFxuIiwKKwkJICAgICAgY3J3MC0+c2xjdCwgY3J3MC0+b2ZsdywgY3J3MC0+Y2huLCBjcncwLT5yc2MsIGNydzAtPmFuYywKKwkJICAgICAgY3J3MC0+ZXJjLCBjcncwLT5yc2lkKTsKIAlpZiAoIXNlaV9wYWdlKQogCQlyZXR1cm47CiAJLyogQWNjZXNzIHRvIHNlaV9wYWdlIGlzIHNlcmlhbGl6ZWQgdGhyb3VnaCBtYWNoaW5lIGNoZWNrIGhhbmRsZXIKIAkgKiB0aHJlYWQsIHNvIG5vIG5lZWQgZm9yIGxvY2tpbmcuICovCiAJc2VpX2FyZWEgPSBzZWlfcGFnZTsKIAotCUNJT19UUkFDRV9FVkVOVCggMiwgInByY3NzIik7CisJQ0lPX1RSQUNFX0VWRU5UKDIsICJwcmNzcyIpOwogCWRvIHsKIAkJbWVtc2V0KHNlaV9hcmVhLCAwLCBzaXplb2YoKnNlaV9hcmVhKSk7CiAJCXNlaV9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKQEAgLTUwOSwxMTQgKzQxNCwzNiBAQAogCX0gd2hpbGUgKHNlaV9hcmVhLT5mbGFncyAmIDB4ODApOwogfQogCi1zdGF0aWMgaW50IF9fY2hwX2FkZF9uZXdfc2NoKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCB2b2lkICpkYXRhKQotewotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWlmIChzdHNjaF9lcnIoc2NoaWQsICZzY2hpYikpCi0JCS8qIFdlJ3JlIHRocm91Z2ggKi8KLQkJcmV0dXJuIC1FTlhJTzsKLQotCS8qIFB1dCBpdCBvbiB0aGUgc2xvdyBwYXRoLiAqLwotCWNzc19zY2hlZHVsZV9ldmFsKHNjaGlkKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IF9fY2hwX2FkZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCB2b2lkICpkYXRhKQotewotCWludCBpLCBtYXNrOwotCXN0cnVjdCBjaHBfaWQgKmNocGlkID0gZGF0YTsKLQotCXNwaW5fbG9ja19pcnEoc2NoLT5sb2NrKTsKLQlmb3IgKGk9MDsgaTw4OyBpKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gaTsKLQkJaWYgKChzY2gtPnNjaGliLnBtY3cucGltICYgbWFzaykgJiYKLQkJICAgIChzY2gtPnNjaGliLnBtY3cuY2hwaWRbaV0gPT0gY2hwaWQtPmlkKSkKLQkJCWJyZWFrOwotCX0KLQlpZiAoaT09OCkgewotCQlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKLQkJcmV0dXJuIDA7Ci0JfQotCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikpIHsKLQkJc3Bpbl91bmxvY2tfaXJxKHNjaC0+bG9jayk7Ci0JCWNzc19zY2hlZHVsZV9ldmFsKHNjaC0+c2NoaWQpOwotCQlyZXR1cm4gMDsKLQl9Ci0Jc2NoLT5scG0gPSAoKHNjaC0+c2NoaWIucG1jdy5waW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0gJgotCQkgICAgIHNjaC0+c2NoaWIucG1jdy5wb20pCi0JCSAgICB8IG1hc2spICYgc2NoLT5vcG07Ci0KLQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCi0Jc3Bpbl91bmxvY2tfaXJxKHNjaC0+bG9jayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogdm9pZCBjaHNjX2NocF9vbmxpbmUoc3RydWN0IGNocF9pZCBjaHBpZCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOworCXN0cnVjdCBjaHBfbGluayBsaW5rOwogCiAJc3ByaW50ZihkYmZfdHh0LCAiY2FkZCV4LiUwMngiLCBjaHBpZC5jc3NpZCwgY2hwaWQuaWQpOwogCUNJT19UUkFDRV9FVkVOVCgyLCBkYmZfdHh0KTsKIAogCWlmIChjaHBfZ2V0X3N0YXR1cyhjaHBpZCkgIT0gMCkgeworCQltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwkJbGluay5jaHBpZCA9IGNocGlkOwogCQkvKiBXYWl0IHVudGlsIHByZXZpb3VzIGFjdGlvbnMgaGF2ZSBzZXR0bGVkLiAqLwogCQljc3Nfd2FpdF9mb3Jfc2xvd19wYXRoKCk7Ci0JCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKF9fY2hwX2FkZCwgX19jaHBfYWRkX25ld19zY2gsCi0JCQkJCSAgICZjaHBpZCk7CisJCWZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKF9fczM5MF9wcm9jZXNzX3Jlc19hY2MsIE5VTEwsCisJCQkJCSAgICZsaW5rKTsKIAl9CiB9CiAKIHN0YXRpYyB2b2lkIF9fczM5MF9zdWJjaGFubmVsX3ZhcnlfY2hwaWQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKIAkJCQkJIHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBvbikKIHsKLQlpbnQgY2hwLCBvbGRfbHBtOwotCWludCBtYXNrOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IGNocF9saW5rIGxpbms7CiAKKwltZW1zZXQoJmxpbmssIDAsIHNpemVvZihzdHJ1Y3QgY2hwX2xpbmspKTsKKwlsaW5rLmNocGlkID0gY2hwaWQ7CiAJc3Bpbl9sb2NrX2lycXNhdmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0Jb2xkX2xwbSA9IHNjaC0+bHBtOwotCWZvciAoY2hwID0gMDsgY2hwIDwgODsgY2hwKyspIHsKLQkJbWFzayA9IDB4ODAgPj4gY2hwOwotCQlpZiAoIShzY2gtPnNzZF9pbmZvLnBhdGhfbWFzayAmIG1hc2spKQotCQkJY29udGludWU7Ci0JCWlmICghY2hwX2lkX2lzX2VxdWFsKCZzY2gtPnNzZF9pbmZvLmNocGlkW2NocF0sICZjaHBpZCkpCi0JCQljb250aW51ZTsKLQotCQlpZiAob24pIHsKLQkJCXNjaC0+b3BtIHw9IG1hc2s7Ci0JCQlzY2gtPmxwbSB8PSBtYXNrOwotCQkJaWYgKCFvbGRfbHBtKQotCQkJCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKLQkJCWVsc2UgaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT52ZXJpZnkpCi0JCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQkJYnJlYWs7Ci0JCX0KLQkJc2NoLT5vcG0gJj0gfm1hc2s7Ci0JCXNjaC0+bHBtICY9IH5tYXNrOwotCQlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgewotCQkJaWYgKGRldmljZV9pc19vbmxpbmUoc2NoKSkKLQkJCQkvKiBQYXRoIHZlcmlmaWNhdGlvbiBpcyBkb25lIGFmdGVyIGtpbGxpbmcuICovCi0JCQkJZGV2aWNlX2tpbGxfaW8oc2NoKTsKLQkJCWVsc2UgewotCQkJCS8qIEtpbGwgYW5kIHJldHJ5IGludGVybmFsIEkvTy4gKi8KLQkJCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoKTsKLQkJCQkvKiBSZS1zdGFydCBwYXRoIHZlcmlmaWNhdGlvbi4gKi8KLQkJCQlpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCQkJc2NoLT5kcml2ZXItPnZlcmlmeShzY2gpOwotCQkJfQotCQl9IGVsc2UgaWYgKCFzY2gtPmxwbSkgewotCQkJaWYgKGRldmljZV90cmlnZ2VyX3ZlcmlmeShzY2gpICE9IDApCi0JCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7Ci0JCX0gZWxzZSBpZiAoc2NoLT5kcml2ZXIgJiYgc2NoLT5kcml2ZXItPnZlcmlmeSkKLQkJCXNjaC0+ZHJpdmVyLT52ZXJpZnkoc2NoKTsKLQkJYnJlYWs7Ci0JfQorCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KQorCQlzY2gtPmRyaXZlci0+Y2hwX2V2ZW50KHNjaCwgJmxpbmssCisJCQkJICAgICAgIG9uID8gQ0hQX1ZBUllfT04gOiBDSFBfVkFSWV9PRkYpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CiB9CiAKQEAgLTY1Niw2ICs0ODMsMTAgQEAKICAqLwogaW50IGNoc2NfY2hwX3Zhcnkoc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IG9uKQogeworCXN0cnVjdCBjaHBfbGluayBsaW5rOworCisJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGNocF9saW5rKSk7CisJbGluay5jaHBpZCA9IGNocGlkOwogCS8qIFdhaXQgdW50aWwgcHJldmlvdXMgYWN0aW9ucyBoYXZlIHNldHRsZWQuICovCiAJY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCgpOwogCS8qCkBAIC02NjQsMTAgKzQ5NSwxMCBAQAogCiAJaWYgKG9uKQogCQlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChzMzkwX3N1YmNoYW5uZWxfdmFyeV9jaHBpZF9vbiwKLQkJCQkJICAgX19zMzkwX3ZhcnlfY2hwaWRfb24sICZjaHBpZCk7CisJCQkJCSAgIF9fczM5MF92YXJ5X2NocGlkX29uLCAmbGluayk7CiAJZWxzZQogCQlmb3JfZWFjaF9zdWJjaGFubmVsX3N0YWdlZChzMzkwX3N1YmNoYW5uZWxfdmFyeV9jaHBpZF9vZmYsCi0JCQkJCSAgIE5VTEwsICZjaHBpZCk7CisJCQkJCSAgIE5VTEwsICZsaW5rKTsKIAogCXJldHVybiAwOwogfQpAQCAtNzk3LDIzICs2MjgsMzMgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2NyaXB0aW9uKHN0cnVjdCBjaHBfaWQgY2hwaWQsCi0JCQkJCSAgICBzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgKmRlc2MpCitpbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2Moc3RydWN0IGNocF9pZCBjaHBpZCwgaW50IGZtdCwgaW50IHJmbXQsCisJCQkJICAgICBpbnQgYywgaW50IG0sCisJCQkJICAgICBzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3QgKnJlc3ApCiB7CiAJaW50IGNjb2RlLCByZXQ7CiAKIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKLQkJdTMyIDogMjQ7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIGMgOiAxOworCQl1MzIgZm10IDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogNDsKKwkJdTMyIHJmbXQgOiA0OwogCQl1MzIgZmlyc3RfY2hwaWQgOiA4OwogCQl1MzIgOiAyNDsKIAkJdTMyIGxhc3RfY2hwaWQgOiA4OwogCQl1MzIgemVyb2VzMTsKIAkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOwotCQl1MzIgemVyb2VzMjsKLQkJc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjIGRlc2M7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOwogCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY3BkX2FyZWE7CiAKKwlpZiAoKHJmbXQgPT0gMSkgJiYgIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5mY3MpCisJCXJldHVybiAtRUlOVkFMOworCWlmICgocmZtdCA9PSAyKSAmJiAhY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmNpYikKKwkJcmV0dXJuIC1FSU5WQUw7CiAJc2NwZF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwogCWlmICghc2NwZF9hcmVhKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTgyMSw4ICs2NjIsMTMgQEAKIAlzY3BkX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOwogCXNjcGRfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDAyOwogCisJc2NwZF9hcmVhLT5jc3NpZCA9IGNocGlkLmNzc2lkOwogCXNjcGRfYXJlYS0+Zmlyc3RfY2hwaWQgPSBjaHBpZC5pZDsKIAlzY3BkX2FyZWEtPmxhc3RfY2hwaWQgPSBjaHBpZC5pZDsKKwlzY3BkX2FyZWEtPm0gPSBtOworCXNjcGRfYXJlYS0+YyA9IGM7CisJc2NwZF9hcmVhLT5mbXQgPSBmbXQ7CisJc2NwZF9hcmVhLT5yZm10ID0gcmZtdDsKIAogCWNjb2RlID0gY2hzYyhzY3BkX2FyZWEpOwogCWlmIChjY29kZSA+IDApIHsKQEAgLTgzMyw4ICs2NzksNyBAQAogCXJldCA9IGNoc2NfZXJyb3JfZnJvbV9yZXNwb25zZShzY3BkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOwogCWlmIChyZXQgPT0gMCkKIAkJLyogU3VjY2Vzcy4gKi8KLQkJbWVtY3B5KGRlc2MsICZzY3BkX2FyZWEtPmRlc2MsCi0JCSAgICAgICBzaXplb2Yoc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjKSk7CisJCW1lbWNweShyZXNwLCAmc2NwZF9hcmVhLT5yZXNwb25zZSwgc2NwZF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOwogCWVsc2UKIAkJQ0lPX0NSV19FVkVOVCgyLCAiY2hzYzogc2NwZCBmYWlsZWQgKHJjPSUwNHgpXG4iLAogCQkJICAgICAgc2NwZF9hcmVhLT5yZXNwb25zZS5jb2RlKTsKQEAgLTg0Miw2ICs2ODcsMjUgQEAKIAlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NwZF9hcmVhKTsKIAlyZXR1cm4gcmV0OwogfQorRVhQT1JUX1NZTUJPTF9HUEwoY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2MpOworCitpbnQgY2hzY19kZXRlcm1pbmVfYmFzZV9jaGFubmVsX3BhdGhfZGVzYyhzdHJ1Y3QgY2hwX2lkIGNocGlkLAorCQkJCQkgIHN0cnVjdCBjaGFubmVsX3BhdGhfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3QgKmNoc2NfcmVzcDsKKwlpbnQgcmV0OworCisJY2hzY19yZXNwID0ga3phbGxvYyhzaXplb2YoKmNoc2NfcmVzcCksIEdGUF9LRVJORUwpOworCWlmICghY2hzY19yZXNwKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXQgPSBjaHNjX2RldGVybWluZV9jaGFubmVsX3BhdGhfZGVzYyhjaHBpZCwgMCwgMCwgMCwgMCwgY2hzY19yZXNwKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9mcmVlOworCW1lbWNweShkZXNjLCAmY2hzY19yZXNwLT5kYXRhLCBjaHNjX3Jlc3AtPmxlbmd0aCk7CitvdXRfZnJlZToKKwlrZnJlZShjaHNjX3Jlc3ApOworCXJldHVybiByZXQ7Cit9CiAKIHN0YXRpYyB2b2lkCiBjaHNjX2luaXRpYWxpemVfY21nX2NoYXJzKHN0cnVjdCBjaGFubmVsX3BhdGggKmNocCwgdTggY21jdiwKQEAgLTkzNywxNSArODAxLDIzIEBACiAKIGludCBfX2luaXQgY2hzY19hbGxvY19zZWlfYXJlYSh2b2lkKQogeworCWludCByZXQ7CisKIAlzZWlfcGFnZSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKLQlpZiAoIXNlaV9wYWdlKQorCWlmICghc2VpX3BhZ2UpIHsKIAkJQ0lPX01TR19FVkVOVCgwLCAiQ2FuJ3QgYWxsb2NhdGUgcGFnZSBmb3IgcHJvY2Vzc2luZyBvZiAiCiAJCQkgICAgICAiY2hzYyBtYWNoaW5lIGNoZWNrcyFcbiIpOwotCXJldHVybiAoc2VpX3BhZ2UgPyAwIDogLUVOT01FTSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwlyZXQgPSBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTLCBjaHNjX3Byb2Nlc3NfY3J3KTsKKwlpZiAocmV0KQorCQlrZnJlZShzZWlfcGFnZSk7CisJcmV0dXJuIHJldDsKIH0KIAogdm9pZCBfX2luaXQgY2hzY19mcmVlX3NlaV9hcmVhKHZvaWQpCiB7CisJczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTKTsKIAlrZnJlZShzZWlfcGFnZSk7CiB9CiAKQEAgLTEwNDMsMyArOTE1LDUyIEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcyk7CiBFWFBPUlRfU1lNQk9MX0dQTChjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3MpOworCitpbnQgY2hzY19zc3RwYyh2b2lkICpwYWdlLCB1bnNpZ25lZCBpbnQgb3AsIHUxNiBjdHJsKQoreworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1bnNpZ25lZCBpbnQgcnN2ZDA7CisJCXVuc2lnbmVkIGludCBvcCA6IDg7CisJCXVuc2lnbmVkIGludCByc3ZkMSA6IDg7CisJCXVuc2lnbmVkIGludCBjdHJsIDogMTY7CisJCXVuc2lnbmVkIGludCByc3ZkMls1XTsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1bnNpZ25lZCBpbnQgcnN2ZDNbN107CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnJyOworCWludCByYzsKKworCW1lbXNldChwYWdlLCAwLCBQQUdFX1NJWkUpOworCXJyID0gcGFnZTsKKwlyci0+cmVxdWVzdC5sZW5ndGggPSAweDAwMjA7CisJcnItPnJlcXVlc3QuY29kZSA9IDB4MDAzMzsKKwlyci0+b3AgPSBvcDsKKwlyci0+Y3RybCA9IGN0cmw7CisJcmMgPSBjaHNjKHJyKTsKKwlpZiAocmMpCisJCXJldHVybiAtRUlPOworCXJjID0gKHJyLT5yZXNwb25zZS5jb2RlID09IDB4MDAwMSkgPyAwIDogLUVJTzsKKwlyZXR1cm4gcmM7Cit9CisKK2ludCBjaHNjX3NzdHBpKHZvaWQgKnBhZ2UsIHZvaWQgKnJlc3VsdCwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXVuc2lnbmVkIGludCByc3ZkMFszXTsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQljaGFyIGRhdGFbc2l6ZV07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnJyOworCWludCByYzsKKworCW1lbXNldChwYWdlLCAwLCBQQUdFX1NJWkUpOworCXJyID0gcGFnZTsKKwlyci0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJcnItPnJlcXVlc3QuY29kZSA9IDB4MDAzODsKKwlyYyA9IGNoc2MocnIpOworCWlmIChyYykKKwkJcmV0dXJuIC1FSU87CisJbWVtY3B5KHJlc3VsdCwgJnJyLT5kYXRhLCBzaXplKTsKKwlyZXR1cm4gKHJyLT5yZXNwb25zZS5jb2RlID09IDB4MDAwMSkgPyAwIDogLUVJTzsKK30KKwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaAppbmRleCBkMWY1ZGIxLi5mYjZjNGQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2MuaApAQCAtNCw3ICs0LDggQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL2Noc2MuaD4KKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogI2RlZmluZSBDSFNDX1NEQV9PQ19NU1MgICAweDIKIApAQCAtMzYsMTQgKzM3LDE1IEBACiAKIHN0cnVjdCBjaGFubmVsX3BhdGg7CiAKLWV4dGVybiB2b2lkIGNoc2NfcHJvY2Vzc19jcncodm9pZCk7Ci0KIHN0cnVjdCBjc3NfZ2VuZXJhbF9jaGFyIHsKLQl1NjQgOiA0MTsKKwl1NjQgOiAxMjsKKwl1MzIgZHluaW8gOiAxOwkgLyogYml0IDEyICovCisJdTMyIDogMjg7CiAJdTMyIGFpZiA6IDE7ICAgICAvKiBiaXQgNDEgKi8KIAl1MzIgOiAzOwogCXUzMiBtY3NzIDogMTsgICAgLyogYml0IDQ1ICovCi0JdTMyIDogMjsKKwl1MzIgZmNzIDogMTsJIC8qIGJpdCA0NiAqLworCXUzMiA6IDE7CiAJdTMyIGV4dF9tYiA6IDE7ICAvKiBiaXQgNDggKi8KIAl1MzIgOiA3OwogCXUzMiBhaWZfdGRkIDogMTsgLyogYml0IDU2ICovCkBAIC01MSw3ICs1MywxMSBAQAogCXUzMiBxZWJzbSA6IDE7ICAgLyogYml0IDU4ICovCiAJdTMyIDogODsKIAl1MzIgYWlmX29zYSA6IDE7IC8qIGJpdCA2NyAqLwotCXUzMiA6IDI4OworCXUzMiA6IDE0OworCXUzMiBjaWIgOiAxOwkgLyogYml0IDgyICovCisJdTMyIDogNTsKKwl1MzIgZmN4IDogMTsJIC8qIGJpdCA4OCAqLworCXUzMiA6IDc7CiB9X19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0cnVjdCBjc3NfY2hzY19jaGFyIHsKQEAgLTc4LDcgKzg0LDYgQEAKIGV4dGVybiBpbnQgY2hzY19nZXRfc3NkX2luZm8oc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsCiAJCQkgICAgIHN0cnVjdCBjaHNjX3NzZF9pbmZvICpzc2QpOwogZXh0ZXJuIGludCBjaHNjX2RldGVybWluZV9jc3NfY2hhcmFjdGVyaXN0aWNzKHZvaWQpOwotZXh0ZXJuIGludCBjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsOwogZXh0ZXJuIGludCBjaHNjX2FsbG9jX3NlaV9hcmVhKHZvaWQpOwogZXh0ZXJuIHZvaWQgY2hzY19mcmVlX3NlaV9hcmVhKHZvaWQpOwogCkBAIC04Nyw4ICs5MiwxMSBAQAogZXh0ZXJuIGludCBjaHNjX3NlY20oc3RydWN0IGNoYW5uZWxfc3Vic3lzdGVtICosIGludCk7CiAKIGludCBjaHNjX2NocF92YXJ5KHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBvbik7Ci1pbnQgY2hzY19kZXRlcm1pbmVfY2hhbm5lbF9wYXRoX2Rlc2NyaXB0aW9uKHN0cnVjdCBjaHBfaWQgY2hwaWQsCi0JCQkJCSAgICBzdHJ1Y3QgY2hhbm5lbF9wYXRoX2Rlc2MgKmRlc2MpOworaW50IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQsIGludCBmbXQsIGludCByZm10LAorCQkJCSAgICAgaW50IGMsIGludCBtLAorCQkJCSAgICAgc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0ICpyZXNwKTsKK2ludCBjaHNjX2RldGVybWluZV9iYXNlX2NoYW5uZWxfcGF0aF9kZXNjKHN0cnVjdCBjaHBfaWQgY2hwaWQsCisJCQkJCSAgc3RydWN0IGNoYW5uZWxfcGF0aF9kZXNjICpkZXNjKTsKIHZvaWQgY2hzY19jaHBfb25saW5lKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogdm9pZCBjaHNjX2NocF9vZmZsaW5lKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwogaW50IGNoc2NfZ2V0X2NoYW5uZWxfbWVhc3VyZW1lbnRfY2hhcnMoc3RydWN0IGNoYW5uZWxfcGF0aCAqY2hwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2hzY19zY2guYyBiL2RyaXZlcnMvczM5MC9jaW8vY2hzY19zY2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MWNhODdhCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5jCkBAIC0wLDAgKzEsODIwIEBACisvKgorICogRHJpdmVyIGZvciBzMzkwIGNoc2Mgc3ViY2hhbm5lbHMKKyAqCisgKiBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqIEF1dGhvcihzKTogQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlIDxhc20vY2hzYy5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KKworI2luY2x1ZGUgImNpby5oIgorI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgorI2luY2x1ZGUgImNzcy5oIgorI2luY2x1ZGUgImNoc2Nfc2NoLmgiCisjaW5jbHVkZSAiaW9hc20uaCIKKworc3RhdGljIGRlYnVnX2luZm9fdCAqY2hzY19kZWJ1Z19tc2dfaWQ7CitzdGF0aWMgZGVidWdfaW5mb190ICpjaHNjX2RlYnVnX2xvZ19pZDsKKworI2RlZmluZSBDSFNDX01TRyhpbXAsIGFyZ3MuLi4pIGRvIHsJCQkJCVwKKwkJZGVidWdfc3ByaW50Zl9ldmVudChjaHNjX2RlYnVnX21zZ19pZCwgaW1wICwgIyNhcmdzKTsJXAorCX0gd2hpbGUgKDApCisKKyNkZWZpbmUgQ0hTQ19MT0coaW1wLCB0eHQpIGRvIHsJCQkJCVwKKwkJZGVidWdfdGV4dF9ldmVudChjaHNjX2RlYnVnX2xvZ19pZCwgaW1wICwgdHh0KTsJXAorCX0gd2hpbGUgKDApCisKK3N0YXRpYyB2b2lkIENIU0NfTE9HX0hFWChpbnQgbGV2ZWwsIHZvaWQgKmRhdGEsIGludCBsZW5ndGgpCit7CisJd2hpbGUgKGxlbmd0aCA+IDApIHsKKwkJZGVidWdfZXZlbnQoY2hzY19kZWJ1Z19sb2dfaWQsIGxldmVsLCBkYXRhLCBsZW5ndGgpOworCQlsZW5ndGggLT0gY2hzY19kZWJ1Z19sb2dfaWQtPmJ1Zl9zaXplOworCQlkYXRhICs9IGNoc2NfZGVidWdfbG9nX2lkLT5idWZfc2l6ZTsKKwl9Cit9CisKK01PRFVMRV9BVVRIT1IoIklCTSBDb3Jwb3JhdGlvbiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJkcml2ZXIgZm9yIHMzOTAgY2hzYyBzdWJjaGFubmVscyIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworCitzdGF0aWMgdm9pZCBjaHNjX3N1YmNoYW5uZWxfaXJxKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJc3RydWN0IGNoc2NfcHJpdmF0ZSAqcHJpdmF0ZSA9IHNjaC0+cHJpdmF0ZTsKKwlzdHJ1Y3QgY2hzY19yZXF1ZXN0ICpyZXF1ZXN0ID0gcHJpdmF0ZS0+cmVxdWVzdDsKKwlzdHJ1Y3QgaXJiICppcmIgPSAoc3RydWN0IGlyYiAqKV9fTENfSVJCOworCisJQ0hTQ19MT0coNCwgImlyYiIpOworCUNIU0NfTE9HX0hFWCg0LCBpcmIsIHNpemVvZigqaXJiKSk7CisJLyogQ29weSBpcmIgdG8gcHJvdmlkZWQgcmVxdWVzdCBhbmQgc2V0IGRvbmUuICovCisJaWYgKCFyZXF1ZXN0KSB7CisJCUNIU0NfTVNHKDAsICJJbnRlcnJ1cHQgb24gc2NoIDAuJXguJTA0eCB3aXRoIG5vIHJlcXVlc3RcbiIsCisJCQkgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubyk7CisJCXJldHVybjsKKwl9CisJcHJpdmF0ZS0+cmVxdWVzdCA9IE5VTEw7CisJbWVtY3B5KCZyZXF1ZXN0LT5pcmIsIGlyYiwgc2l6ZW9mKCppcmIpKTsKKwlzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CisJY29tcGxldGUoJnJlcXVlc3QtPmNvbXBsZXRpb24pOworCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKK30KKworc3RhdGljIGludCBjaHNjX3N1YmNoYW5uZWxfcHJvYmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgY2hzY19wcml2YXRlICpwcml2YXRlOworCWludCByZXQ7CisKKwlDSFNDX01TRyg2LCAiRGV0ZWN0ZWQgY2hzYyBzdWJjaGFubmVsIDAuJXguJTA0eFxuIiwKKwkJIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8pOworCXNjaC0+aXNjID0gQ0hTQ19TQ0hfSVNDOworCXByaXZhdGUgPSBremFsbG9jKHNpemVvZigqcHJpdmF0ZSksIEdGUF9LRVJORUwpOworCWlmICghcHJpdmF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisJcmV0ID0gY2lvX2VuYWJsZV9zdWJjaGFubmVsKHNjaCwgKHUzMikodW5zaWduZWQgbG9uZylzY2gpOworCWlmIChyZXQpIHsKKwkJQ0hTQ19NU0coMCwgIkZhaWxlZCB0byBlbmFibGUgMC4leC4lMDR4OiAlZFxuIiwKKwkJCSBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCByZXQpOworCQlrZnJlZShwcml2YXRlKTsKKwl9IGVsc2UgeworCQlzY2gtPnByaXZhdGUgPSBwcml2YXRlOworCQlpZiAoc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzKSB7CisJCQlzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOworCQkJa29iamVjdF91ZXZlbnQoJnNjaC0+ZGV2LmtvYmosIEtPQkpfQUREKTsKKwkJfQorCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2Nfc3ViY2hhbm5lbF9yZW1vdmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgY2hzY19wcml2YXRlICpwcml2YXRlOworCisJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOworCXByaXZhdGUgPSBzY2gtPnByaXZhdGU7CisJc2NoLT5wcml2YXRlID0gTlVMTDsKKwlpZiAocHJpdmF0ZS0+cmVxdWVzdCkgeworCQljb21wbGV0ZSgmcHJpdmF0ZS0+cmVxdWVzdC0+Y29tcGxldGlvbik7CisJCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKKwl9CisJa2ZyZWUocHJpdmF0ZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2Nfc3ViY2hhbm5lbF9zaHV0ZG93bihzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsKK30KKworc3RhdGljIHN0cnVjdCBjc3NfZGV2aWNlX2lkIGNoc2Nfc3ViY2hhbm5lbF9pZHNbXSA9IHsKKwl7IC5tYXRjaF9mbGFncyA9IDB4MSwgLnR5cGUgPVNVQkNIQU5ORUxfVFlQRV9DSFNDLCB9LAorCXsgLyogZW5kIG9mIGxpc3QgKi8gfSwKK307CitNT0RVTEVfREVWSUNFX1RBQkxFKGNzcywgY2hzY19zdWJjaGFubmVsX2lkcyk7CisKK3N0YXRpYyBzdHJ1Y3QgY3NzX2RyaXZlciBjaHNjX3N1YmNoYW5uZWxfZHJpdmVyID0geworCS5vd25lciA9IFRISVNfTU9EVUxFLAorCS5zdWJjaGFubmVsX3R5cGUgPSBjaHNjX3N1YmNoYW5uZWxfaWRzLAorCS5pcnEgPSBjaHNjX3N1YmNoYW5uZWxfaXJxLAorCS5wcm9iZSA9IGNoc2Nfc3ViY2hhbm5lbF9wcm9iZSwKKwkucmVtb3ZlID0gY2hzY19zdWJjaGFubmVsX3JlbW92ZSwKKwkuc2h1dGRvd24gPSBjaHNjX3N1YmNoYW5uZWxfc2h1dGRvd24sCisJLm5hbWUgPSAiY2hzY19zdWJjaGFubmVsIiwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfaW5pdF9kYmZzKHZvaWQpCit7CisJY2hzY19kZWJ1Z19tc2dfaWQgPSBkZWJ1Z19yZWdpc3RlcigiY2hzY19tc2ciLCAxNiwgMSwKKwkJCQkJICAgMTYgKiBzaXplb2YobG9uZykpOworCWlmICghY2hzY19kZWJ1Z19tc2dfaWQpCisJCWdvdG8gb3V0OworCWRlYnVnX3JlZ2lzdGVyX3ZpZXcoY2hzY19kZWJ1Z19tc2dfaWQsICZkZWJ1Z19zcHJpbnRmX3ZpZXcpOworCWRlYnVnX3NldF9sZXZlbChjaHNjX2RlYnVnX21zZ19pZCwgMik7CisJY2hzY19kZWJ1Z19sb2dfaWQgPSBkZWJ1Z19yZWdpc3RlcigiY2hzY19sb2ciLCAxNiwgMSwgMTYpOworCWlmICghY2hzY19kZWJ1Z19sb2dfaWQpCisJCWdvdG8gb3V0OworCWRlYnVnX3JlZ2lzdGVyX3ZpZXcoY2hzY19kZWJ1Z19sb2dfaWQsICZkZWJ1Z19oZXhfYXNjaWlfdmlldyk7CisJZGVidWdfc2V0X2xldmVsKGNoc2NfZGVidWdfbG9nX2lkLCAyKTsKKwlyZXR1cm4gMDsKK291dDoKKwlpZiAoY2hzY19kZWJ1Z19tc2dfaWQpCisJCWRlYnVnX3VucmVnaXN0ZXIoY2hzY19kZWJ1Z19tc2dfaWQpOworCXJldHVybiAtRU5PTUVNOworfQorCitzdGF0aWMgdm9pZCBjaHNjX3JlbW92ZV9kYmZzKHZvaWQpCit7CisJZGVidWdfdW5yZWdpc3RlcihjaHNjX2RlYnVnX2xvZ19pZCk7CisJZGVidWdfdW5yZWdpc3RlcihjaHNjX2RlYnVnX21zZ19pZCk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfaW5pdF9zY2hfZHJpdmVyKHZvaWQpCit7CisJcmV0dXJuIGNzc19kcml2ZXJfcmVnaXN0ZXIoJmNoc2Nfc3ViY2hhbm5lbF9kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBjaHNjX2NsZWFudXBfc2NoX2RyaXZlcih2b2lkKQoreworCWNzc19kcml2ZXJfdW5yZWdpc3RlcigmY2hzY19zdWJjaGFubmVsX2RyaXZlcik7Cit9CisKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soY2hzY19sb2NrKTsKKworc3RhdGljIGludCBjaHNjX3N1YmNoYW5uZWxfbWF0Y2hfbmV4dF9mcmVlKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNjaC0+c2NoaWIucG1jdy5lbmEgJiYgIXNjc3dfZmN0bCgmc2NoLT5zY2hpYi5zY3N3KTsKK30KKworc3RhdGljIHN0cnVjdCBzdWJjaGFubmVsICpjaHNjX2dldF9uZXh0X3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisKKwlkZXYgPSBkcml2ZXJfZmluZF9kZXZpY2UoJmNoc2Nfc3ViY2hhbm5lbF9kcml2ZXIuZHJ2LAorCQkJCSBzY2ggPyAmc2NoLT5kZXYgOiBOVUxMLCBOVUxMLAorCQkJCSBjaHNjX3N1YmNoYW5uZWxfbWF0Y2hfbmV4dF9mcmVlKTsKKwlyZXR1cm4gZGV2ID8gdG9fc3ViY2hhbm5lbChkZXYpIDogTlVMTDsKK30KKworLyoqCisgKiBjaHNjX2FzeW5jKCkgLSB0cnkgdG8gc3RhcnQgYSBjaHNjIHJlcXVlc3QgYXN5bmNocm9ub3VzbHkKKyAqIEBjaHNjX2FyZWE6IHJlcXVlc3QgdG8gYmUgc3RhcnRlZAorICogQHJlcXVlc3Q6IHJlcXVlc3Qgc3RydWN0dXJlIHRvIGFzc29jaWF0ZQorICoKKyAqIFRyaWVzIHRvIHN0YXJ0IGEgY2hzYyByZXF1ZXN0IG9uIG9uZSBvZiB0aGUgZXhpc3RpbmcgY2hzYyBzdWJjaGFubmVscy4KKyAqIFJldHVybnM6CisgKiAgJTAgaWYgdGhlIHJlcXVlc3Qgd2FzIHBlcmZvcm1lZCBzeW5jaHJvbm91c2x5CisgKiAgJS1FSU5QUk9HUkVTUyBpZiB0aGUgcmVxdWVzdCB3YXMgc3VjY2Vzc2Z1bGx5IHN0YXJ0ZWQKKyAqICAlLUVCVVNZIGlmIGFsbCBjaHNjIHN1YmNoYW5uZWxzIGFyZSBidXN5CisgKiAgJS1FTk9ERVYgaWYgbm8gY2hzYyBzdWJjaGFubmVscyBhcmUgYXZhaWxhYmxlCisgKiBDb250ZXh0OgorICogIGludGVycnVwdHMgZGlzYWJsZWQsIGNoc2NfbG9jayBoZWxkCisgKi8KK3N0YXRpYyBpbnQgY2hzY19hc3luYyhzdHJ1Y3QgY2hzY19hc3luY19hcmVhICpjaHNjX2FyZWEsCisJCSAgICAgIHN0cnVjdCBjaHNjX3JlcXVlc3QgKnJlcXVlc3QpCit7CisJaW50IGNjOworCXN0cnVjdCBjaHNjX3ByaXZhdGUgKnByaXZhdGU7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IE5VTEw7CisJaW50IHJldCA9IC1FTk9ERVY7CisJY2hhciBkYmZbMTBdOworCisJY2hzY19hcmVhLT5oZWFkZXIua2V5ID0gUEFHRV9ERUZBVUxUX0tFWTsKKwl3aGlsZSAoKHNjaCA9IGNoc2NfZ2V0X25leHRfc3ViY2hhbm5lbChzY2gpKSkgeworCQlzcGluX2xvY2soc2NoLT5sb2NrKTsKKwkJcHJpdmF0ZSA9IHNjaC0+cHJpdmF0ZTsKKwkJaWYgKHByaXZhdGUtPnJlcXVlc3QpIHsKKwkJCXNwaW5fdW5sb2NrKHNjaC0+bG9jayk7CisJCQlyZXQgPSAtRUJVU1k7CisJCQljb250aW51ZTsKKwkJfQorCQljaHNjX2FyZWEtPmhlYWRlci5zaWQgPSBzY2gtPnNjaGlkOworCQlDSFNDX0xPRygyLCAic2NoaWQiKTsKKwkJQ0hTQ19MT0dfSEVYKDIsICZzY2gtPnNjaGlkLCBzaXplb2Yoc2NoLT5zY2hpZCkpOworCQljYyA9IGNoc2MoY2hzY19hcmVhKTsKKwkJc3ByaW50ZihkYmYsICJjYzolZCIsIGNjKTsKKwkJQ0hTQ19MT0coMiwgZGJmKTsKKwkJc3dpdGNoIChjYykgeworCQljYXNlIDA6CisJCQlyZXQgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgMToKKwkJCXNjaC0+c2NoaWIuc2Nzdy5jbWQuZmN0bCB8PSBTQ1NXX0ZDVExfU1RBUlRfRlVOQzsKKwkJCXJldCA9IC1FSU5QUk9HUkVTUzsKKwkJCXByaXZhdGUtPnJlcXVlc3QgPSByZXF1ZXN0OworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJcmV0ID0gLUVOT0RFVjsKKwkJfQorCQlzcGluX3VubG9jayhzY2gtPmxvY2spOworCQlDSFNDX01TRygyLCAiY2hzYyBvbiAwLiV4LiUwNHggcmV0dXJuZWQgY2M9JWRcbiIsCisJCQkgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgY2MpOworCQlpZiAocmV0ID09IC1FSU5QUk9HUkVTUykKKwkJCXJldHVybiAtRUlOUFJPR1JFU1M7CisJCXB1dF9kZXZpY2UoJnNjaC0+ZGV2KTsKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGNoc2NfbG9nX2NvbW1hbmQoc3RydWN0IGNoc2NfYXN5bmNfYXJlYSAqY2hzY19hcmVhKQoreworCWNoYXIgZGJmWzEwXTsKKworCXNwcmludGYoZGJmLCAiQ0hTQzoleCIsIGNoc2NfYXJlYS0+aGVhZGVyLmNvZGUpOworCUNIU0NfTE9HKDAsIGRiZik7CisJQ0hTQ19MT0dfSEVYKDAsIGNoc2NfYXJlYSwgMzIpOworfQorCitzdGF0aWMgaW50IGNoc2NfZXhhbWluZV9pcmIoc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdCkKK3sKKwlpbnQgYmFja2VkX3VwOworCisJaWYgKCFzY3N3X3N0Y3RsKCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKQorCQlyZXR1cm4gLUVJTzsKKwliYWNrZWRfdXAgPSBzY3N3X2NzdGF0KCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ0hOX1NUQVRfQ0hBSU5fQ0hFQ0s7CisJcmVxdWVzdC0+aXJiLnNjc3cuY21kLmNzdGF0ICY9IH5TQ0hOX1NUQVRfQ0hBSU5fQ0hFQ0s7CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSA9PSAwKQorCQlyZXR1cm4gMDsKKwlpZiAoIWJhY2tlZF91cCkKKwkJcmV0dXJuIDA7CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9QUk9HX0NIRUNLKQorCQlyZXR1cm4gLUVJTzsKKwlpZiAoc2Nzd19jc3RhdCgmcmVxdWVzdC0+aXJiLnNjc3cpICYgU0NITl9TVEFUX1BST1RfQ0hFQ0spCisJCXJldHVybiAtRVBFUk07CisJaWYgKHNjc3dfY3N0YXQoJnJlcXVlc3QtPmlyYi5zY3N3KSAmIFNDSE5fU1RBVF9DSE5fREFUQV9DSEspCisJCXJldHVybiAtRUFHQUlOOworCWlmIChzY3N3X2NzdGF0KCZyZXF1ZXN0LT5pcmIuc2NzdykgJiBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLKQorCQlyZXR1cm4gLUVBR0FJTjsKKwlyZXR1cm4gLUVJTzsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX3N0YXJ0KHZvaWQgX191c2VyICp1c2VyX2FyZWEpCit7CisJc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdDsKKwlzdHJ1Y3QgY2hzY19hc3luY19hcmVhICpjaHNjX2FyZWE7CisJaW50IHJldDsKKwljaGFyIGRiZlsxMF07CisKKwlpZiAoIWNzc19nZW5lcmFsX2NoYXJhY3RlcmlzdGljcy5keW5pbykKKwkJLyogSXQgbWFrZXMgbm8gc2Vuc2UgdG8gdHJ5LiAqLworCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJY2hzY19hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0RNQSB8IEdGUF9LRVJORUwpOworCWlmICghY2hzY19hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwlyZXF1ZXN0ID0ga3phbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJlcXVlc3QpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaW5pdF9jb21wbGV0aW9uKCZyZXF1ZXN0LT5jb21wbGV0aW9uKTsKKwlpZiAoY29weV9mcm9tX3VzZXIoY2hzY19hcmVhLCB1c2VyX2FyZWEsIFBBR0VfU0laRSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJY2hzY19sb2dfY29tbWFuZChjaHNjX2FyZWEpOworCXNwaW5fbG9ja19pcnEoJmNoc2NfbG9jayk7CisJcmV0ID0gY2hzY19hc3luYyhjaHNjX2FyZWEsIHJlcXVlc3QpOworCXNwaW5fdW5sb2NrX2lycSgmY2hzY19sb2NrKTsKKwlpZiAocmV0ID09IC1FSU5QUk9HUkVTUykgeworCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZyZXF1ZXN0LT5jb21wbGV0aW9uKTsKKwkJcmV0ID0gY2hzY19leGFtaW5lX2lyYihyZXF1ZXN0KTsKKwl9CisJLyogY29weSBhcmVhIGJhY2sgdG8gdXNlciAqLworCWlmICghcmV0KQorCQlpZiAoY29weV90b191c2VyKHVzZXJfYXJlYSwgY2hzY19hcmVhLCBQQUdFX1NJWkUpKQorCQkJcmV0ID0gLUVGQVVMVDsKK291dF9mcmVlOgorCXNwcmludGYoZGJmLCAicmV0OiVkIiwgcmV0KTsKKwlDSFNDX0xPRygwLCBkYmYpOworCWtmcmVlKHJlcXVlc3QpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyljaHNjX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9pbmZvX2NoYW5uZWxfcGF0aCh2b2lkIF9fdXNlciAqdXNlcl9jZCkKK3sKKwlzdHJ1Y3QgY2hzY19jaHBfY2QgKmNkOworCWludCByZXQsIGNjb2RlOworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1MzIgOiAyOworCQl1MzIgbSA6IDE7CisJCXUzMiA6IDE7CisJCXUzMiBmbXQxIDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogODsKKwkJdTMyIGZpcnN0X2NocGlkIDogODsKKwkJdTMyIDogMjQ7CisJCXUzMiBsYXN0X2NocGlkIDogODsKKwkJdTMyIDogMzI7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAyMF07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNjcGNkX2FyZWE7CisKKwlzY3BjZF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NwY2RfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY2QgPSBremFsbG9jKHNpemVvZigqY2QpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNkKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjZCwgdXNlcl9jZCwgc2l6ZW9mKCpjZCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNjcGNkX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDEwOworCXNjcGNkX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAyODsKKwlzY3BjZF9hcmVhLT5tID0gY2QtPm07CisJc2NwY2RfYXJlYS0+Zm10MSA9IGNkLT5mbXQ7CisJc2NwY2RfYXJlYS0+Y3NzaWQgPSBjZC0+Y2hwaWQuY3NzaWQ7CisJc2NwY2RfYXJlYS0+Zmlyc3RfY2hwaWQgPSBjZC0+Y2hwaWQuaWQ7CisJc2NwY2RfYXJlYS0+bGFzdF9jaHBpZCA9IGNkLT5jaHBpZC5pZDsKKworCWNjb2RlID0gY2hzYyhzY3BjZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2NwY2RfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNjcGNkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjcGNkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNkLT5jcGNiLCAmc2NwY2RfYXJlYS0+cmVzcG9uc2UsIHNjcGNkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NkLCBjZCwgc2l6ZW9mKCpjZCkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NwY2RfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2luZm9fY3Uodm9pZCBfX3VzZXIgKnVzZXJfY2QpCit7CisJc3RydWN0IGNoc2NfY3VfY2QgKmNkOworCWludCByZXQsIGNjb2RlOworCXN0cnVjdCB7CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXF1ZXN0OworCQl1MzIgOiAyOworCQl1MzIgbSA6IDE7CisJCXUzMiA6IDE7CisJCXUzMiBmbXQxIDogNDsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogODsKKwkJdTMyIGZpcnN0X2N1biA6IDg7CisJCXUzMiA6IDI0OworCQl1MzIgbGFzdF9jdW4gOiA4OworCQl1MzIgOiAzMjsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlc3BvbnNlOworCQl1OCBkYXRhW1BBR0VfU0laRSAtIDIwXTsKKwl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKSAqc2N1Y2RfYXJlYTsKKworCXNjdWNkX2FyZWEgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMIHwgR0ZQX0RNQSk7CisJaWYgKCFzY3VjZF9hcmVhKQorCQlyZXR1cm4gLUVOT01FTTsKKwljZCA9IGt6YWxsb2Moc2l6ZW9mKCpjZCksIEdGUF9LRVJORUwpOworCWlmICghY2QpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKGNvcHlfZnJvbV91c2VyKGNkLCB1c2VyX2NkLCBzaXplb2YoKmNkKSkpIHsKKwkJcmV0ID0gLUVGQVVMVDsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJc2N1Y2RfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJc2N1Y2RfYXJlYS0+cmVxdWVzdC5jb2RlID0gMHgwMDI4OworCXNjdWNkX2FyZWEtPm0gPSBjZC0+bTsKKwlzY3VjZF9hcmVhLT5mbXQxID0gY2QtPmZtdDsKKwlzY3VjZF9hcmVhLT5jc3NpZCA9IGNkLT5jc3NpZDsKKwlzY3VjZF9hcmVhLT5maXJzdF9jdW4gPSBjZC0+Y3VuOworCXNjdWNkX2FyZWEtPmxhc3RfY3VuID0gY2QtPmN1bjsKKworCWNjb2RlID0gY2hzYyhzY3VjZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2N1Y2RfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNjdWNkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjdWNkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNkLT5jdWNiLCAmc2N1Y2RfYXJlYS0+cmVzcG9uc2UsIHNjdWNkX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NkLCBjZCwgc2l6ZW9mKCpjZCkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNkKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2N1Y2RfYXJlYSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBjaHNjX2lvY3RsX2luZm9fc2NoX2N1KHZvaWQgX191c2VyICp1c2VyX2N1ZCkKK3sKKwlzdHJ1Y3QgY2hzY19zY2hfY3VkICpjdWQ7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogNTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgOiAyOworCQl1MzIgc3NpZCA6IDI7CisJCXUzMiBmaXJzdF9zY2ggOiAxNjsKKwkJdTMyIDogODsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIGxhc3Rfc2NoIDogMTY7CisJCXUzMiA6IDMyOworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzc2N1ZF9hcmVhOworCisJc3NjdWRfYXJlYSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNzY3VkX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCWN1ZCA9IGt6YWxsb2Moc2l6ZW9mKCpjdWQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWN1ZCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoY3VkLCB1c2VyX2N1ZCwgc2l6ZW9mKCpjdWQpKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlzc2N1ZF9hcmVhLT5yZXF1ZXN0Lmxlbmd0aCA9IDB4MDAxMDsKKwlzc2N1ZF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMDY7CisJc3NjdWRfYXJlYS0+bSA9IGN1ZC0+c2NoaWQubTsKKwlzc2N1ZF9hcmVhLT5mbXQxID0gY3VkLT5mbXQ7CisJc3NjdWRfYXJlYS0+c3NpZCA9IGN1ZC0+c2NoaWQuc3NpZDsKKwlzc2N1ZF9hcmVhLT5maXJzdF9zY2ggPSBjdWQtPnNjaGlkLnNjaF9ubzsKKwlzc2N1ZF9hcmVhLT5jc3NpZCA9IGN1ZC0+c2NoaWQuY3NzaWQ7CisJc3NjdWRfYXJlYS0+bGFzdF9zY2ggPSBjdWQtPnNjaGlkLnNjaF9ubzsKKworCWNjb2RlID0gY2hzYyhzc2N1ZF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc3NjdWRfYXJlYS0+cmVzcG9uc2UuY29kZSAhPSAweDAwMDEpIHsKKwkJcmV0ID0gLUVJTzsKKwkJQ0hTQ19NU0coMCwgInNzY3VkOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNzY3VkX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmN1ZC0+c2N1YiwgJnNzY3VkX2FyZWEtPnJlc3BvbnNlLCBzc2N1ZF9hcmVhLT5yZXNwb25zZS5sZW5ndGgpOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9jdWQsIGN1ZCwgc2l6ZW9mKCpjdWQpKSkKKwkJcmV0ID0gLUVGQVVMVDsKKwllbHNlCisJCXJldCA9IDA7CitvdXRfZnJlZToKKwlrZnJlZShjdWQpOworCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZylzc2N1ZF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfY29uZl9pbmZvKHZvaWQgX191c2VyICp1c2VyX2NpKQoreworCXN0cnVjdCBjaHNjX2NvbmZfaW5mbyAqY2k7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiA6IDI7CisJCXUzMiBtIDogMTsKKwkJdTMyIDogMTsKKwkJdTMyIGZtdDEgOiA0OworCQl1MzIgY3NzaWQgOiA4OworCQl1MzIgOiA2OworCQl1MzIgc3NpZCA6IDI7CisJCXUzMiA6IDg7CisJCXU2NCA6IDY0OworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMjBdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY2lfYXJlYTsKKworCXNjaV9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2NpX2FyZWEpCisJCXJldHVybiAtRU5PTUVNOworCWNpID0ga3phbGxvYyhzaXplb2YoKmNpKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjaSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoY29weV9mcm9tX3VzZXIoY2ksIHVzZXJfY2ksIHNpemVvZigqY2kpKSkgeworCQlyZXQgPSAtRUZBVUxUOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlzY2lfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMTA7CisJc2NpX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAxMjsKKwlzY2lfYXJlYS0+bSA9IGNpLT5pZC5tOworCXNjaV9hcmVhLT5mbXQxID0gY2ktPmZtdDsKKwlzY2lfYXJlYS0+Y3NzaWQgPSBjaS0+aWQuY3NzaWQ7CisJc2NpX2FyZWEtPnNzaWQgPSBjaS0+aWQuc3NpZDsKKworCWNjb2RlID0gY2hzYyhzY2lfYXJlYSk7CisJaWYgKGNjb2RlICE9IDApIHsKKwkJcmV0ID0gLUVJTzsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJaWYgKHNjaV9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2NpOiByZXNwb25zZSBjb2RlPSV4XG4iLAorCQkJIHNjaV9hcmVhLT5yZXNwb25zZS5jb2RlKTsKKwkJZ290byBvdXRfZnJlZTsKKwl9CisJbWVtY3B5KCZjaS0+c2NpZCwgJnNjaV9hcmVhLT5yZXNwb25zZSwgc2NpX2FyZWEtPnJlc3BvbnNlLmxlbmd0aCk7CisJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2NpLCBjaSwgc2l6ZW9mKCpjaSkpKQorCQlyZXQgPSAtRUZBVUxUOworCWVsc2UKKwkJcmV0ID0gMDsKK291dF9mcmVlOgorCWtmcmVlKGNpKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NpX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9jb25mX2NvbXBfbGlzdCh2b2lkIF9fdXNlciAqdXNlcl9jY2wpCit7CisJc3RydWN0IGNoc2NfY29tcF9saXN0ICpjY2w7CisJaW50IHJldCwgY2NvZGU7CisJc3RydWN0IHsKKwkJc3RydWN0IGNoc2NfaGVhZGVyIHJlcXVlc3Q7CisJCXUzMiBjdHlwZSA6IDg7CisJCXUzMiA6IDQ7CisJCXUzMiBmbXQgOiA0OworCQl1MzIgOiAxNjsKKwkJdTY0IDogNjQ7CisJCXUzMiBsaXN0X3Bhcm1bMl07CisJCXU2NCA6IDY0OworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVzcG9uc2U7CisJCXU4IGRhdGFbUEFHRV9TSVpFIC0gMzZdOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpzY2NsX2FyZWE7CisJc3RydWN0IHsKKwkJdTMyIG0gOiAxOworCQl1MzIgOiAzMTsKKwkJdTMyIGNzc2lkIDogODsKKwkJdTMyIDogMTY7CisJCXUzMiBjaHBpZCA6IDg7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKmNocGlkX3Bhcm07CisJc3RydWN0IHsKKwkJdTMyIGZfY3NzaWQgOiA4OworCQl1MzIgbF9jc3NpZCA6IDg7CisJCXUzMiA6IDE2OworCQl1MzIgcmVzOworCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpICpjc3NpZHNfcGFybTsKKworCXNjY2xfYXJlYSA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BKTsKKwlpZiAoIXNjY2xfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJY2NsID0ga3phbGxvYyhzaXplb2YoKmNjbCksIEdGUF9LRVJORUwpOworCWlmICghY2NsKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihjY2wsIHVzZXJfY2NsLCBzaXplb2YoKmNjbCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNjY2xfYXJlYS0+cmVxdWVzdC5sZW5ndGggPSAweDAwMjA7CisJc2NjbF9hcmVhLT5yZXF1ZXN0LmNvZGUgPSAweDAwMzA7CisJc2NjbF9hcmVhLT5mbXQgPSBjY2wtPnJlcS5mbXQ7CisJc2NjbF9hcmVhLT5jdHlwZSA9IGNjbC0+cmVxLmN0eXBlOworCXN3aXRjaCAoc2NjbF9hcmVhLT5jdHlwZSkgeworCWNhc2UgQ0NMX0NVX09OX0NIUDoKKwljYXNlIENDTF9JT1BfQ0hQOgorCQljaHBpZF9wYXJtID0gKHZvaWQgKikmc2NjbF9hcmVhLT5saXN0X3Bhcm07CisJCWNocGlkX3Bhcm0tPm0gPSBjY2wtPnJlcS5jaHBpZC5tOworCQljaHBpZF9wYXJtLT5jc3NpZCA9IGNjbC0+cmVxLmNocGlkLmNocC5jc3NpZDsKKwkJY2hwaWRfcGFybS0+Y2hwaWQgPSBjY2wtPnJlcS5jaHBpZC5jaHAuaWQ7CisJCWJyZWFrOworCWNhc2UgQ0NMX0NTU19JTUc6CisJY2FzZSBDQ0xfQ1NTX0lNR19DT05GX0NIQVI6CisJCWNzc2lkc19wYXJtID0gKHZvaWQgKikmc2NjbF9hcmVhLT5saXN0X3Bhcm07CisJCWNzc2lkc19wYXJtLT5mX2Nzc2lkID0gY2NsLT5yZXEuY3NzaWRzLmZfY3NzaWQ7CisJCWNzc2lkc19wYXJtLT5sX2Nzc2lkID0gY2NsLT5yZXEuY3NzaWRzLmxfY3NzaWQ7CisJCWJyZWFrOworCX0KKwljY29kZSA9IGNoc2Moc2NjbF9hcmVhKTsKKwlpZiAoY2NvZGUgIT0gMCkgeworCQlyZXQgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKwlpZiAoc2NjbF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2NjbDogcmVzcG9uc2UgY29kZT0leFxuIiwKKwkJCSBzY2NsX2FyZWEtPnJlc3BvbnNlLmNvZGUpOworCQlnb3RvIG91dF9mcmVlOworCX0KKwltZW1jcHkoJmNjbC0+c2NjbCwgJnNjY2xfYXJlYS0+cmVzcG9uc2UsIHNjY2xfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfY2NsLCBjY2wsIHNpemVvZigqY2NsKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoY2NsKTsKKwlmcmVlX3BhZ2UoKHVuc2lnbmVkIGxvbmcpc2NjbF9hcmVhKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGNoc2NfaW9jdGxfY2hwZCh2b2lkIF9fdXNlciAqdXNlcl9jaHBkKQoreworCXN0cnVjdCBjaHNjX2NwZF9pbmZvICpjaHBkOworCWludCByZXQ7CisKKwljaHBkID0ga3phbGxvYyhzaXplb2YoKmNocGQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWNocGQpCisJCXJldHVybiAtRU5PTUVNOworCWlmIChjb3B5X2Zyb21fdXNlcihjaHBkLCB1c2VyX2NocGQsIHNpemVvZigqY2hwZCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXJldCA9IGNoc2NfZGV0ZXJtaW5lX2NoYW5uZWxfcGF0aF9kZXNjKGNocGQtPmNocGlkLCBjaHBkLT5mbXQsCisJCQkJCSAgICAgICBjaHBkLT5yZm10LCBjaHBkLT5jLCBjaHBkLT5tLAorCQkJCQkgICAgICAgJmNocGQtPmNocGRiKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dF9mcmVlOworCWlmIChjb3B5X3RvX3VzZXIodXNlcl9jaHBkLCBjaHBkLCBzaXplb2YoKmNocGQpKSkKKwkJcmV0ID0gLUVGQVVMVDsKK291dF9mcmVlOgorCWtmcmVlKGNocGQpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgY2hzY19pb2N0bF9kY2FsKHZvaWQgX191c2VyICp1c2VyX2RjYWwpCit7CisJc3RydWN0IGNoc2NfZGNhbCAqZGNhbDsKKwlpbnQgcmV0LCBjY29kZTsKKwlzdHJ1Y3QgeworCQlzdHJ1Y3QgY2hzY19oZWFkZXIgcmVxdWVzdDsKKwkJdTMyIGF0eXBlIDogODsKKwkJdTMyIDogNDsKKwkJdTMyIGZtdCA6IDQ7CisJCXUzMiA6IDE2OworCQl1MzIgcmVzMFsyXTsKKwkJdTMyIGxpc3RfcGFybVsyXTsKKwkJdTMyIHJlczFbMl07CisJCXN0cnVjdCBjaHNjX2hlYWRlciByZXNwb25zZTsKKwkJdTggZGF0YVtQQUdFX1NJWkUgLSAzNl07CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgKnNkY2FsX2FyZWE7CisKKwlzZGNhbF9hcmVhID0gKHZvaWQgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOworCWlmICghc2RjYWxfYXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisJZGNhbCA9IGt6YWxsb2Moc2l6ZW9mKCpkY2FsKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkY2FsKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChjb3B5X2Zyb21fdXNlcihkY2FsLCB1c2VyX2RjYWwsIHNpemVvZigqZGNhbCkpKSB7CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCXNkY2FsX2FyZWEtPnJlcXVlc3QubGVuZ3RoID0gMHgwMDIwOworCXNkY2FsX2FyZWEtPnJlcXVlc3QuY29kZSA9IDB4MDAzNDsKKwlzZGNhbF9hcmVhLT5hdHlwZSA9IGRjYWwtPnJlcS5hdHlwZTsKKwlzZGNhbF9hcmVhLT5mbXQgPSBkY2FsLT5yZXEuZm10OworCW1lbWNweSgmc2RjYWxfYXJlYS0+bGlzdF9wYXJtLCAmZGNhbC0+cmVxLmxpc3RfcGFybSwKKwkgICAgICAgc2l6ZW9mKHNkY2FsX2FyZWEtPmxpc3RfcGFybSkpOworCisJY2NvZGUgPSBjaHNjKHNkY2FsX2FyZWEpOworCWlmIChjY29kZSAhPSAwKSB7CisJCXJldCA9IC1FSU87CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCWlmIChzZGNhbF9hcmVhLT5yZXNwb25zZS5jb2RlICE9IDB4MDAwMSkgeworCQlyZXQgPSAtRUlPOworCQlDSFNDX01TRygwLCAic2RjYWw6IHJlc3BvbnNlIGNvZGU9JXhcbiIsCisJCQkgc2RjYWxfYXJlYS0+cmVzcG9uc2UuY29kZSk7CisJCWdvdG8gb3V0X2ZyZWU7CisJfQorCW1lbWNweSgmZGNhbC0+c2RjYWwsICZzZGNhbF9hcmVhLT5yZXNwb25zZSwKKwkgICAgICAgc2RjYWxfYXJlYS0+cmVzcG9uc2UubGVuZ3RoKTsKKwlpZiAoY29weV90b191c2VyKHVzZXJfZGNhbCwgZGNhbCwgc2l6ZW9mKCpkY2FsKSkpCisJCXJldCA9IC1FRkFVTFQ7CisJZWxzZQorCQlyZXQgPSAwOworb3V0X2ZyZWU6CisJa2ZyZWUoZGNhbCk7CisJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXNkY2FsX2FyZWEpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBsb25nIGNoc2NfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlDSFNDX01TRygyLCAiY2hzY19pb2N0bCBjYWxsZWQsIGNtZD0leFxuIiwgY21kKTsKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgQ0hTQ19TVEFSVDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfc3RhcnQoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DSEFOTkVMX1BBVEg6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fY2hhbm5lbF9wYXRoKCh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDSFNDX0lORk9fQ1U6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fY3UoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19TQ0hfQ1U6CisJCXJldHVybiBjaHNjX2lvY3RsX2luZm9fc2NoX2N1KCh2b2lkIF9fdXNlciAqKWFyZyk7CisJY2FzZSBDSFNDX0lORk9fQ0k6CisJCXJldHVybiBjaHNjX2lvY3RsX2NvbmZfaW5mbygodm9pZCBfX3VzZXIgKilhcmcpOworCWNhc2UgQ0hTQ19JTkZPX0NDTDoKKwkJcmV0dXJuIGNoc2NfaW9jdGxfY29uZl9jb21wX2xpc3QoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19DUEQ6CisJCXJldHVybiBjaHNjX2lvY3RsX2NocGQoKHZvaWQgX191c2VyICopYXJnKTsKKwljYXNlIENIU0NfSU5GT19EQ0FMOgorCQlyZXR1cm4gY2hzY19pb2N0bF9kY2FsKCh2b2lkIF9fdXNlciAqKWFyZyk7CisJZGVmYXVsdDogLyogdW5rbm93biBpb2N0bCBudW1iZXIgKi8KKwkJcmV0dXJuIC1FTk9JT0NUTENNRDsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGNoc2NfZm9wcyA9IHsKKwkub3duZXIgPSBUSElTX01PRFVMRSwKKwkudW5sb2NrZWRfaW9jdGwgPSBjaHNjX2lvY3RsLAorCS5jb21wYXRfaW9jdGwgPSBjaHNjX2lvY3RsLAorfTsKKworc3RhdGljIHN0cnVjdCBtaXNjZGV2aWNlIGNoc2NfbWlzY19kZXZpY2UgPSB7CisJLm1pbm9yID0gTUlTQ19EWU5BTUlDX01JTk9SLAorCS5uYW1lID0gImNoc2MiLAorCS5mb3BzID0gJmNoc2NfZm9wcywKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2NfbWlzY19pbml0KHZvaWQpCit7CisJcmV0dXJuIG1pc2NfcmVnaXN0ZXIoJmNoc2NfbWlzY19kZXZpY2UpOworfQorCitzdGF0aWMgdm9pZCBjaHNjX21pc2NfY2xlYW51cCh2b2lkKQoreworCW1pc2NfZGVyZWdpc3RlcigmY2hzY19taXNjX2RldmljZSk7Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGNoc2Nfc2NoX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gY2hzY19pbml0X2RiZnMoKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCWlzY19yZWdpc3RlcihDSFNDX1NDSF9JU0MpOworCXJldCA9IGNoc2NfaW5pdF9zY2hfZHJpdmVyKCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZGJmOworCXJldCA9IGNoc2NfbWlzY19pbml0KCk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfZHJpdmVyOworCXJldHVybiByZXQ7CitvdXRfZHJpdmVyOgorCWNoc2NfY2xlYW51cF9zY2hfZHJpdmVyKCk7CitvdXRfZGJmOgorCWlzY191bnJlZ2lzdGVyKENIU0NfU0NIX0lTQyk7CisJY2hzY19yZW1vdmVfZGJmcygpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBjaHNjX3NjaF9leGl0KHZvaWQpCit7CisJY2hzY19taXNjX2NsZWFudXAoKTsKKwljaHNjX2NsZWFudXBfc2NoX2RyaXZlcigpOworCWlzY191bnJlZ2lzdGVyKENIU0NfU0NIX0lTQyk7CisJY2hzY19yZW1vdmVfZGJmcygpOworfQorCittb2R1bGVfaW5pdChjaHNjX3NjaF9pbml0KTsKK21vZHVsZV9leGl0KGNoc2Nfc2NoX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5oIGIvZHJpdmVycy9zMzkwL2Npby9jaHNjX3NjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWViZmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Noc2Nfc2NoLmgKQEAgLTAsMCArMSwxMyBAQAorI2lmbmRlZiBfQ0hTQ19TQ0hfSAorI2RlZmluZSBfQ0hTQ19TQ0hfSAorCitzdHJ1Y3QgY2hzY19yZXF1ZXN0IHsKKwlzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uOworCXN0cnVjdCBpcmIgaXJiOworfTsKKworc3RydWN0IGNoc2NfcHJpdmF0ZSB7CisJc3RydWN0IGNoc2NfcmVxdWVzdCAqcmVxdWVzdDsKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jaW8uYyBiL2RyaXZlcnMvczM5MC9jaW8vY2lvLmMKaW5kZXggODJjNmEyZC4uMzNiZmY4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jaW8uYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Npby5jCkBAIC0yLDcgKzIsNyBAQAogICogIGRyaXZlcnMvczM5MC9jaW8vY2lvLmMKICAqICAgUy8zOTAgY29tbW9uIEkvTyByb3V0aW5lcyAtLSBsb3cgbGV2ZWwgaS9vIGNhbGxzCiAgKgotICogICAgQ29weXJpZ2h0IChDKSBJQk0gQ29ycC4gMTk5OSwyMDA2CisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDE5OTksMjAwOAogICogICAgQXV0aG9yKHMpOiBJbmdvIEFkbHVuZyAoYWRsdW5nQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgQXJuZCBCZXJnbWFubiAoYXJuZGJAZGUuaWJtLmNvbSkKQEAgLTI0LDcgKzI0LDkgQEAKICNpbmNsdWRlIDxhc20vaXBsLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CiAjaW5jbHVkZSA8YXNtL2FpcnEuaD4KKyNpbmNsdWRlIDxhc20vaXNjLmg+CiAjaW5jbHVkZSA8YXNtL2NwdS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KICNpbmNsdWRlICJjaW8uaCIKICNpbmNsdWRlICJjc3MuaCIKICNpbmNsdWRlICJjaHNjLmgiCkBAIC03Miw3ICs3NCw2IEBACiAJCWRlYnVnX3VucmVnaXN0ZXIoY2lvX2RlYnVnX3RyYWNlX2lkKTsKIAlpZiAoY2lvX2RlYnVnX2Nyd19pZCkKIAkJZGVidWdfdW5yZWdpc3RlcihjaW9fZGVidWdfY3J3X2lkKTsKLQlwcmludGsoS0VSTl9XQVJOSU5HImNpbzogY291bGQgbm90IGluaXRpYWxpemUgZGVidWdnaW5nXG4iKTsKIAlyZXR1cm4gLTE7CiB9CiAKQEAgLTEyOCw3ICsxMjksNyBAQAogCWxvY2FsX2JoX2Rpc2FibGUoKTsKIAlpcnFfZW50ZXIgKCk7CiAJc3Bpbl9sb2NrKHNjaC0+bG9jayk7Ci0JbWVtY3B5ICgmc2NoLT5zY2hpYi5zY3N3LCAmaXJiLT5zY3N3LCBzaXplb2YgKHN0cnVjdCBzY3N3KSk7CisJbWVtY3B5KCZzY2gtPnNjaGliLnNjc3csICZpcmItPnNjc3csIHNpemVvZih1bmlvbiBzY3N3KSk7CiAJaWYgKHNjaC0+ZHJpdmVyICYmIHNjaC0+ZHJpdmVyLT5pcnEpCiAJCXNjaC0+ZHJpdmVyLT5pcnEoc2NoKTsKIAlzcGluX3VubG9jayhzY2gtPmxvY2spOwpAQCAtMTY3LDMwICsxNjgsMzAgQEAKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKLQlzdHJ1Y3Qgb3JiICpvcmI7CisJdW5pb24gb3JiICpvcmI7CiAKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgInN0SU8iKTsKIAlDSU9fVFJBQ0VfRVZFTlQoNCwgc2NoLT5kZXYuYnVzX2lkKTsKIAogCW9yYiA9ICZ0b19pb19wcml2YXRlKHNjaCktPm9yYjsKIAkvKiBzY2ggaXMgYWx3YXlzIHVuZGVyIDJHLiAqLwotCW9yYi0+aW50cGFybSA9ICh1MzIpKGFkZHJfdClzY2g7Ci0Jb3JiLT5mbXQgPSAxOworCW9yYi0+Y21kLmludHBhcm0gPSAodTMyKShhZGRyX3Qpc2NoOworCW9yYi0+Y21kLmZtdCA9IDE7CiAKLQlvcmItPnBmY2ggPSBzY2gtPm9wdGlvbnMucHJlZmV0Y2ggPT0gMDsKLQlvcmItPnNwbmQgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZDsKLQlvcmItPnNzaWMgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZCAmJiBzY2gtPm9wdGlvbnMuaW50ZXI7Ci0Jb3JiLT5scG0gPSAobHBtICE9IDApID8gbHBtIDogc2NoLT5scG07CisJb3JiLT5jbWQucGZjaCA9IHNjaC0+b3B0aW9ucy5wcmVmZXRjaCA9PSAwOworCW9yYi0+Y21kLnNwbmQgPSBzY2gtPm9wdGlvbnMuc3VzcGVuZDsKKwlvcmItPmNtZC5zc2ljID0gc2NoLT5vcHRpb25zLnN1c3BlbmQgJiYgc2NoLT5vcHRpb25zLmludGVyOworCW9yYi0+Y21kLmxwbSA9IChscG0gIT0gMCkgPyBscG0gOiBzY2gtPmxwbTsKICNpZmRlZiBDT05GSUdfNjRCSVQKIAkvKgogCSAqIGZvciA2NCBiaXQgd2UgYWx3YXlzIHN1cHBvcnQgNjQgYml0IElEQVdzIHdpdGggNGsgcGFnZSBzaXplIG9ubHkKIAkgKi8KLQlvcmItPmM2NCA9IDE7Ci0Jb3JiLT5pMmsgPSAwOworCW9yYi0+Y21kLmM2NCA9IDE7CisJb3JiLT5jbWQuaTJrID0gMDsKICNlbmRpZgotCW9yYi0+a2V5ID0ga2V5ID4+IDQ7CisJb3JiLT5jbWQua2V5ID0ga2V5ID4+IDQ7CiAJLyogaXNzdWUgIlN0YXJ0IFN1YmNoYW5uZWwiICovCi0Jb3JiLT5jcGEgPSAoX191MzIpIF9fcGEoY3BhKTsKKwlvcmItPmNtZC5jcGEgPSAoX191MzIpIF9fcGEoY3BhKTsKIAljY29kZSA9IHNzY2goc2NoLT5zY2hpZCwgb3JiKTsKIAogCS8qIHByb2Nlc3MgY29uZGl0aW9uIGNvZGUgKi8KQEAgLTIwMiw3ICsyMDMsNyBAQAogCQkvKgogCQkgKiBpbml0aWFsaXplIGRldmljZSBzdGF0dXMgaW5mb3JtYXRpb24KIAkJICovCi0JCXNjaC0+c2NoaWIuc2Nzdy5hY3RsIHw9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOworCQlzY2gtPnNjaGliLnNjc3cuY21kLmFjdGwgfD0gU0NTV19BQ1RMX1NUQVJUX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToJCS8qIHN0YXR1cyBwZW5kaW5nICovCiAJY2FzZSAyOgkJLyogYnVzeSAqLwpAQCAtMjM3LDcgKzIzOCw3IEBACiAKIAlzd2l0Y2ggKGNjb2RlKSB7CiAJY2FzZSAwOgotCQlzY2gtPnNjaGliLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfUkVTVU1FX1BFTkQ7CisJCXNjaC0+c2NoaWIuc2Nzdy5jbWQuYWN0bCB8PSBTQ1NXX0FDVExfUkVTVU1FX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToKIAkJcmV0dXJuIC1FQlVTWTsKQEAgLTI3Nyw3ICsyNzgsNyBAQAogCiAJc3dpdGNoIChjY29kZSkgewogCWNhc2UgMDoKLQkJc2NoLT5zY2hpYi5zY3N3LmFjdGwgfD0gU0NTV19BQ1RMX0hBTFRfUEVORDsKKwkJc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsIHw9IFNDU1dfQUNUTF9IQUxUX1BFTkQ7CiAJCXJldHVybiAwOwogCWNhc2UgMToJCS8qIHN0YXR1cyBwZW5kaW5nICovCiAJY2FzZSAyOgkJLyogYnVzeSAqLwpAQCAtMzEyLDcgKzMxMyw3IEBACiAKIAlzd2l0Y2ggKGNjb2RlKSB7CiAJY2FzZSAwOgotCQlzY2gtPnNjaGliLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfQ0xFQVJfUEVORDsKKwkJc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsIHw9IFNDU1dfQUNUTF9DTEVBUl9QRU5EOwogCQlyZXR1cm4gMDsKIAlkZWZhdWx0OgkJLyogZGV2aWNlIG5vdCBvcGVyYXRpb25hbCAqLwogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTM4Nyw4ICszODgsMTAgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0vKgotICogRW5hYmxlIHN1YmNoYW5uZWwuCisvKioKKyAqIGNpb19lbmFibGVfc3ViY2hhbm5lbCAtIGVuYWJsZSBhIHN1YmNoYW5uZWwuCisgKiBAc2NoOiBzdWJjaGFubmVsIHRvIGJlIGVuYWJsZWQKKyAqIEBpbnRwYXJtOiBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyIHRvIHNldAogICovCiBpbnQgY2lvX2VuYWJsZV9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHUzMiBpbnRwYXJtKQogewpAQCAtNDM0LDEyICs0MzcsMTMgQEAKIAlDSU9fVFJBQ0VfRVZFTlQgKDIsIGRiZl90eHQpOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaW9fZW5hYmxlX3N1YmNoYW5uZWwpOwogCi0vKgotICogRGlzYWJsZSBzdWJjaGFubmVsLgorLyoqCisgKiBjaW9fZGlzYWJsZV9zdWJjaGFubmVsIC0gZGlzYWJsZSBhIHN1YmNoYW5uZWwuCisgKiBAc2NoOiBzdWJjaGFubmVsIHRvIGRpc2FibGUKICAqLwotaW50Ci1jaW9fZGlzYWJsZV9zdWJjaGFubmVsIChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoraW50IGNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKQEAgLTQ1NSw3ICs0NTksNyBAQAogCWlmIChjY29kZSA9PSAzKQkJLyogTm90IG9wZXJhdGlvbmFsLiAqLwogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQorCWlmIChzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgIT0gMCkKIAkJLyoKIAkJICogdGhlIGRpc2FibGUgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIHdoaWxlIHRoZXJlIGFyZQogCQkgKiAgcmVxdWVzdHMgcGVuZGluZyBmb3IgY29tcGxldGlvbiAhCkBAIC00ODQsNiArNDg4LDcgQEAKIAlDSU9fVFJBQ0VfRVZFTlQgKDIsIGRiZl90eHQpOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjaW9fZGlzYWJsZV9zdWJjaGFubmVsKTsKIAogaW50IGNpb19jcmVhdGVfc2NoX2xvY2soc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKQEAgLTQ5NCwyNyArNDk5LDYxIEBACiAJcmV0dXJuIDA7CiB9CiAKLS8qCi0gKiBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbCgpCitzdGF0aWMgaW50IGNpb19jaGVja19kZXZub19ibGFja2xpc3RlZChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCWlmIChpc19ibGFja2xpc3RlZChzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWIucG1jdy5kZXYpKSB7CisJCS8qCisJCSAqIFRoaXMgZGV2aWNlIG11c3Qgbm90IGJlIGtub3duIHRvIExpbnV4LiBTbyB3ZSBzaW1wbHkKKwkJICogc2F5IHRoYXQgdGhlcmUgaXMgbm8gZGV2aWNlIGFuZCByZXR1cm4gRU5PREVWLgorCQkgKi8KKwkJQ0lPX01TR19FVkVOVCg2LCAiQmxhY2tsaXN0ZWQgZGV2aWNlIGRldGVjdGVkICIKKwkJCSAgICAgICJhdCBkZXZubyAlMDRYLCBzdWJjaGFubmVsIHNldCAleFxuIiwKKwkJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5kZXYsIHNjaC0+c2NoaWQuc3NpZCk7CisJCXJldHVybiAtRU5PREVWOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjaW9fdmFsaWRhdGVfaW9fc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCS8qIEluaXRpYWxpemF0aW9uIGZvciBpbyBzdWJjaGFubmVscy4gKi8KKwlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIERldm5vIGlzIHZhbGlkLiAqLworCXJldHVybiBjaW9fY2hlY2tfZGV2bm9fYmxhY2tsaXN0ZWQoc2NoKTsKK30KKworc3RhdGljIGludCBjaW9fdmFsaWRhdGVfbXNnX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwkvKiBJbml0aWFsaXphdGlvbiBmb3IgbWVzc2FnZSBzdWJjaGFubmVscy4gKi8KKwlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCS8qIERldm5vIGlzIHZhbGlkLiAqLworCXJldHVybiBjaW9fY2hlY2tfZGV2bm9fYmxhY2tsaXN0ZWQoc2NoKTsKK30KKworLyoqCisgKiBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbCAtIGJhc2ljIHZhbGlkYXRpb24gb2Ygc3ViY2hhbm5lbAorICogQHNjaDogc3ViY2hhbm5lbCBzdHJ1Y3R1cmUgdG8gYmUgZmlsbGVkIG91dAorICogQHNjaGlkOiBzdWJjaGFubmVsIGlkCiAgKgogICogRmluZCBvdXQgc3ViY2hhbm5lbCB0eXBlIGFuZCBpbml0aWFsaXplIHN0cnVjdCBzdWJjaGFubmVsLgogICogUmV0dXJuIGNvZGVzOgotICogICBTVUJDSEFOTkVMX1RZUEVfSU8gZm9yIGEgbm9ybWFsIGlvIHN1YmNoYW5uZWwKLSAqICAgU1VCQ0hBTk5FTF9UWVBFX0NIU0MgZm9yIGEgY2hzYyBzdWJjaGFubmVsCi0gKiAgIFNVQkNIQU5ORUxfVFlQRV9NRVNTQUdFIGZvciBhIG1lc3NhZ2luZyBzdWJjaGFubmVsCi0gKiAgIFNVQkNIQU5ORUxfVFlQRV9BRE0gZm9yIGEgYWRtKD8pIHN1YmNoYW5uZWwKKyAqICAgMCBvbiBzdWNjZXNzCiAgKiAgIC1FTlhJTyBmb3Igbm9uLWRlZmluZWQgc3ViY2hhbm5lbHMKLSAqICAgLUVOT0RFViBmb3Igc3ViY2hhbm5lbHMgd2l0aCBpbnZhbGlkIGRldmljZSBudW1iZXIgb3IgYmxhY2tsaXN0ZWQgZGV2aWNlcworICogICAtRU5PREVWIGZvciBpbnZhbGlkIHN1YmNoYW5uZWxzIG9yIGJsYWNrbGlzdGVkIGRldmljZXMKKyAqICAgLUVJTyBmb3Igc3ViY2hhbm5lbHMgaW4gYW4gaW52YWxpZCBzdWJjaGFubmVsIHNldAogICovCi1pbnQKLWNpb192YWxpZGF0ZV9zdWJjaGFubmVsIChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKK2ludCBjaW9fdmFsaWRhdGVfc3ViY2hhbm5lbChzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKIHsKIAljaGFyIGRiZl90eHRbMTVdOwogCWludCBjY29kZTsKIAlpbnQgZXJyOwogCi0Jc3ByaW50ZiAoZGJmX3R4dCwgInZhbHNjaCV4Iiwgc2NoaWQuc2NoX25vKTsKLQlDSU9fVFJBQ0VfRVZFTlQgKDQsIGRiZl90eHQpOworCXNwcmludGYoZGJmX3R4dCwgInZhbHNjaCV4Iiwgc2NoaWQuc2NoX25vKTsKKwlDSU9fVFJBQ0VfRVZFTlQoNCwgZGJmX3R4dCk7CiAKIAkvKiBOdWtlIGFsbCBmaWVsZHMuICovCiAJbWVtc2V0KHNjaCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsKSk7CkBAIC01NDYsNjUgKzU4NSwyMSBAQAogCS8qIENvcHkgc3ViY2hhbm5lbCB0eXBlIGZyb20gcGF0aCBtYW5hZ2VtZW50IGNvbnRyb2wgd29yZC4gKi8KIAlzY2gtPnN0ID0gc2NoLT5zY2hpYi5wbWN3LnN0OwogCi0JLyoKLQkgKiAuLi4ganVzdCBiZWluZyBjdXJpb3VzIHdlIGNoZWNrIGZvciBub24gSS9PIHN1YmNoYW5uZWxzCi0JICovCi0JaWYgKHNjaC0+c3QgIT0gMCkgewotCQlDSU9fTVNHX0VWRU5UKDQsICJTdWJjaGFubmVsIDAuJXguJTA0eCByZXBvcnRzICIKLQkJCSAgICAgICJub24tSS9PIHN1YmNoYW5uZWwgdHlwZSAlMDRYXG4iLAotCQkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgc2NoLT5zdCk7Ci0JCS8qIFdlIHN0b3AgaGVyZSBmb3Igbm9uLWlvIHN1YmNoYW5uZWxzLiAqLwotCQllcnIgPSBzY2gtPnN0OwotCQlnb3RvIG91dDsKKwlzd2l0Y2ggKHNjaC0+c3QpIHsKKwljYXNlIFNVQkNIQU5ORUxfVFlQRV9JTzoKKwkJZXJyID0gY2lvX3ZhbGlkYXRlX2lvX3N1YmNoYW5uZWwoc2NoKTsKKwkJYnJlYWs7CisJY2FzZSBTVUJDSEFOTkVMX1RZUEVfTVNHOgorCQllcnIgPSBjaW9fdmFsaWRhdGVfbXNnX3N1YmNoYW5uZWwoc2NoKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZXJyID0gMDsKIAl9Ci0KLQkvKiBJbml0aWFsaXphdGlvbiBmb3IgaW8gc3ViY2hhbm5lbHMuICovCi0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2gtPnNjaGliKSkgewotCQllcnIgPSAtRU5PREVWOworCWlmIChlcnIpCiAJCWdvdG8gb3V0OwotCX0KIAotCS8qIERldm5vIGlzIHZhbGlkLiAqLwotCWlmIChpc19ibGFja2xpc3RlZCAoc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGliLnBtY3cuZGV2KSkgewotCQkvKgotCQkgKiBUaGlzIGRldmljZSBtdXN0IG5vdCBiZSBrbm93biB0byBMaW51eC4gU28gd2Ugc2ltcGx5Ci0JCSAqIHNheSB0aGF0IHRoZXJlIGlzIG5vIGRldmljZSBhbmQgcmV0dXJuIEVOT0RFVi4KLQkJICovCi0JCUNJT19NU0dfRVZFTlQoNiwgIkJsYWNrbGlzdGVkIGRldmljZSBkZXRlY3RlZCAiCi0JCQkgICAgICAiYXQgZGV2bm8gJTA0WCwgc3ViY2hhbm5lbCBzZXQgJXhcbiIsCi0JCQkgICAgICBzY2gtPnNjaGliLnBtY3cuZGV2LCBzY2gtPnNjaGlkLnNzaWQpOwotCQllcnIgPSAtRU5PREVWOwotCQlnb3RvIG91dDsKLQl9Ci0JaWYgKGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQotCQlzY2gtPm9wbSA9IDB4ZmY7Ci0JZWxzZQotCQlzY2gtPm9wbSA9IGNocF9nZXRfc2NoX29wbShzY2gpOwotCXNjaC0+bHBtID0gc2NoLT5zY2hpYi5wbWN3LnBhbSAmIHNjaC0+b3BtOwotCXNjaC0+aXNjID0gMzsKLQotCUNJT19NU0dfRVZFTlQoNiwgIkRldGVjdGVkIGRldmljZSAlMDR4IG9uIHN1YmNoYW5uZWwgMC4leC4lMDRYICIKLQkJICAgICAgIi0gUElNID0gJTAyWCwgUEFNID0gJTAyWCwgUE9NID0gJTAyWFxuIiwKLQkJICAgICAgc2NoLT5zY2hpYi5wbWN3LmRldiwgc2NoLT5zY2hpZC5zc2lkLAotCQkgICAgICBzY2gtPnNjaGlkLnNjaF9ubywgc2NoLT5zY2hpYi5wbWN3LnBpbSwKLQkJICAgICAgc2NoLT5zY2hpYi5wbWN3LnBhbSwgc2NoLT5zY2hpYi5wbWN3LnBvbSk7Ci0KLQkvKgotCSAqIFdlIG5vdyBoYXZlIHRvIGluaXRpYWxseSAuLi4KLQkgKiAgLi4uIGVuYWJsZSAiY29uY3VycmVudCBzZW5zZSIKLQkgKiAgLi4uIGVuYWJsZSAibXVsdGlwYXRoIG1vZGUiIGlmIG1vcmUgdGhhbiBvbmUKLQkgKgkgIENIUElEIGlzIGF2YWlsYWJsZS4gVGhpcyBpcyBkb25lIHJlZ2FyZGxlc3MKLQkgKgkgIHdoZXRoZXIgbXVsdGlwbGUgcGF0aHMgYXJlIGF2YWlsYWJsZSBmb3IgdXMuCi0JICovCi0Jc2NoLT5zY2hpYi5wbWN3LmNzZW5zZSA9IDE7CS8qIGNvbmN1cnJlbnQgc2Vuc2UgKi8KLQlzY2gtPnNjaGliLnBtY3cuZW5hID0gMDsKLQlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCi0JCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7CS8qIG11bHRpcGF0aCBtb2RlICovCi0JLyogY2xlYW4gdXAgcG9zc2libGUgcmVzaWR1YWwgY21mIHN0dWZmICovCi0Jc2NoLT5zY2hpYi5wbWN3Lm1tZSA9IDA7Ci0Jc2NoLT5zY2hpYi5wbWN3Lm1iZmMgPSAwOwotCXNjaC0+c2NoaWIucG1jdy5tYmkgPSAwOwotCXNjaC0+c2NoaWIubWJhID0gMDsKKwlDSU9fTVNHX0VWRU5UKDQsICJTdWJjaGFubmVsIDAuJXguJTA0eCByZXBvcnRzIHN1YmNoYW5uZWwgdHlwZSAlMDRYXG4iLAorCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCBzY2gtPnN0KTsKIAlyZXR1cm4gMDsKIG91dDoKIAlpZiAoIWNpb19pc19jb25zb2xlKHNjaGlkKSkKQEAgLTY0NSw3ICs2NDAsNyBAQAogCQkgKi8KIAkJaWYgKHRwaV9pbmZvLT5hZGFwdGVyX0lPID09IDEgJiYKIAkJICAgIHRwaV9pbmZvLT5pbnRfdHlwZSA9PSBJT19JTlRFUlJVUFRfVFlQRSkgewotCQkJZG9fYWRhcHRlcl9JTygpOworCQkJZG9fYWRhcHRlcl9JTyh0cGlfaW5mby0+aXNjKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXNjaCA9IChzdHJ1Y3Qgc3ViY2hhbm5lbCAqKSh1bnNpZ25lZCBsb25nKXRwaV9pbmZvLT5pbnRwYXJtOwpAQCAtNzA0LDkgKzY5OSw5IEBACiAJaWYgKCFjb25zb2xlX3N1YmNoYW5uZWxfaW5fdXNlKQogCQlyZXR1cm47CiAKLQkvKiBkaXNhYmxlIGFsbCBidXQgaXNjIDcgKGNvbnNvbGUgZGV2aWNlKSAqLworCS8qIGRpc2FibGUgYWxsIGJ1dCB0aGUgY29uc29sZSBpc2MgKi8KIAlfX2N0bF9zdG9yZSAoc2F2ZV9jcjYsIDYsIDYpOwotCWNyNiA9IDB4MDEwMDAwMDA7CisJY3I2ID0gMVVMIDw8ICgzMSAtIENPTlNPTEVfSVNDKTsKIAlfX2N0bF9sb2FkIChjcjYsIDYsIDYpOwogCiAJZG8gewpAQCAtNzE0LDcgKzcwOSw3IEBACiAJCWlmICghY2lvX3RwaSgpKQogCQkJY3B1X3JlbGF4KCk7CiAJCXNwaW5fbG9jayhjb25zb2xlX3N1YmNoYW5uZWwubG9jayk7Ci0JfSB3aGlsZSAoY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnNjc3cuYWN0bCAhPSAwKTsKKwl9IHdoaWxlIChjb25zb2xlX3N1YmNoYW5uZWwuc2NoaWIuc2Nzdy5jbWQuYWN0bCAhPSAwKTsKIAkvKgogCSAqIHJlc3RvcmUgcHJldmlvdXMgaXNjIHZhbHVlCiAJICovCkBAIC03NTksNyArNzU0LDYgQEAKIAkJLyogdW5saWtlIGluIDIuNCwgd2UgY2Fubm90IGF1dG9wcm9iZSBoZXJlLCBzaW5jZQogCQkgKiB0aGUgY2hhbm5lbCBzdWJzeXN0ZW0gaXMgbm90IGZ1bGx5IGluaXRpYWxpemVkLgogCQkgKiBXaXRoIHNvbWUgbHVjaywgdGhlIEhXQyBjb25zb2xlIGNhbiB0YWtlIG92ZXIgKi8KLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBObyBjY3cgY29uc29sZSBmb3VuZCFcbiIpOwogCQlyZXR1cm4gLTE7CiAJfQogCXJldHVybiBjb25zb2xlX2lycTsKQEAgLTc3Niw2ICs3NzAsNyBAQAogCXNjaF9ubyA9IGNpb19nZXRfY29uc29sZV9zY2hfbm8oKTsKIAlpZiAoc2NoX25vID09IC0xKSB7CiAJCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOworCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IE5vIGNjdyBjb25zb2xlIGZvdW5kIVxuIik7CiAJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCX0KIAltZW1zZXQoJmNvbnNvbGVfc3ViY2hhbm5lbCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsKSk7CkBAIC03ODgsMTUgKzc4MywxNSBAQAogCX0KIAogCS8qCi0JICogZW5hYmxlIGNvbnNvbGUgSS9PLWludGVycnVwdCBzdWJjbGFzcyA3CisJICogZW5hYmxlIGNvbnNvbGUgSS9PLWludGVycnVwdCBzdWJjbGFzcwogCSAqLwotCWN0bF9zZXRfYml0KDYsIDI0KTsKLQljb25zb2xlX3N1YmNoYW5uZWwuaXNjID0gNzsKLQljb25zb2xlX3N1YmNoYW5uZWwuc2NoaWIucG1jdy5pc2MgPSA3OworCWlzY19yZWdpc3RlcihDT05TT0xFX0lTQyk7CisJY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnBtY3cuaXNjID0gQ09OU09MRV9JU0M7CiAJY29uc29sZV9zdWJjaGFubmVsLnNjaGliLnBtY3cuaW50cGFybSA9CiAJCSh1MzIpKGFkZHJfdCkmY29uc29sZV9zdWJjaGFubmVsOwogCXJldCA9IGNpb19tb2RpZnkoJmNvbnNvbGVfc3ViY2hhbm5lbCk7CiAJaWYgKHJldCkgeworCQlpc2NfdW5yZWdpc3RlcihDT05TT0xFX0lTQyk7CiAJCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOwogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KQEAgLTgwOCw3ICs4MDMsNyBAQAogewogCWNvbnNvbGVfc3ViY2hhbm5lbC5zY2hpYi5wbWN3LmludHBhcm0gPSAwOwogCWNpb19tb2RpZnkoJmNvbnNvbGVfc3ViY2hhbm5lbCk7Ci0JY3RsX2NsZWFyX2JpdCg2LCAyNCk7CisJaXNjX3VucmVnaXN0ZXIoQ09OU09MRV9JU0MpOwogCWNvbnNvbGVfc3ViY2hhbm5lbF9pbl91c2UgPSAwOwogfQogCkBAIC04NjIsNyArODU3LDcgQEAKIH0KIAogc3RhdGljIGludAotX19jbGVhcl9zdWJjaGFubmVsX2Vhc3koc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpCitfX2NsZWFyX2lvX3N1YmNoYW5uZWxfZWFzeShzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCkKIHsKIAlpbnQgcmV0cnk7CiAKQEAgLTg4MSw2ICs4NzYsMTIgQEAKIAlyZXR1cm4gLUVCVVNZOwogfQogCitzdGF0aWMgdm9pZCBfX2NsZWFyX2Noc2Nfc3ViY2hhbm5lbF9lYXN5KHZvaWQpCit7CisJLyogSXQgc2VlbXMgd2UgY2FuIG9ubHkgd2FpdCBmb3IgYSBiaXQgaGVyZSA6LyAqLworCXVkZWxheV9yZXNldCgxMDApOworfQorCiBzdGF0aWMgaW50IHBnbV9jaGVja19vY2N1cmVkOwogCiBzdGF0aWMgdm9pZCBjaW9fcmVzZXRfcGdtX2NoZWNrX2hhbmRsZXIodm9pZCkKQEAgLTkxOSwxMSArOTIwLDIyIEBACiAJY2FzZSAtRU5PREVWOgogCQlicmVhazsKIAlkZWZhdWx0OiAvKiAtRUJVU1kgKi8KLQkJaWYgKF9fY2xlYXJfc3ViY2hhbm5lbF9lYXN5KHNjaGlkKSkKLQkJCWJyZWFrOyAvKiBnaXZlIHVwLi4uICovCisJCXN3aXRjaCAoc2NoaWIucG1jdy5zdCkgeworCQljYXNlIFNVQkNIQU5ORUxfVFlQRV9JTzoKKwkJCWlmIChfX2NsZWFyX2lvX3N1YmNoYW5uZWxfZWFzeShzY2hpZCkpCisJCQkJZ290byBvdXQ7IC8qIGdpdmUgdXAuLi4gKi8KKwkJCWJyZWFrOworCQljYXNlIFNVQkNIQU5ORUxfVFlQRV9DSFNDOgorCQkJX19jbGVhcl9jaHNjX3N1YmNoYW5uZWxfZWFzeSgpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQkvKiBObyBkZWZhdWx0IGNsZWFyIHN0cmF0ZWd5ICovCisJCQlicmVhazsKKwkJfQogCQlzdHNjaChzY2hpZCwgJnNjaGliKTsKIAkJX19kaXNhYmxlX3N1YmNoYW5uZWxfZWFzeShzY2hpZCwgJnNjaGliKTsKIAl9CitvdXQ6CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEwNjYsMyArMTA3OCw2MSBAQAogCWlwbGluZm8tPmlzX3FkaW8gPSBzY2hpYi5wbWN3LnFmOwogCXJldHVybiAwOwogfQorCisvKioKKyAqIGNpb190bV9zdGFydF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAc2NoOiBzdWJjaGFubmVsIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKiBAa2V5OiBzdG9yYWdlIGtleSB0byB1c2UgZm9yIHN0b3JhZ2UgYWNjZXNzCisgKgorICogU3RhcnQgdGhlIHRjdyBvbiB0aGUgZ2l2ZW4gc3ViY2hhbm5lbC4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IGNpb190bV9zdGFydF9rZXkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgc3RydWN0IHRjdyAqdGN3LCB1OCBscG0sIHU4IGtleSkKK3sKKwlpbnQgY2M7CisJdW5pb24gb3JiICpvcmIgPSAmdG9faW9fcHJpdmF0ZShzY2gpLT5vcmI7CisKKwltZW1zZXQob3JiLCAwLCBzaXplb2YodW5pb24gb3JiKSk7CisJb3JiLT50bS5pbnRwYXJtID0gKHUzMikgKGFkZHJfdCkgc2NoOworCW9yYi0+dG0ua2V5ID0ga2V5ID4+IDQ7CisJb3JiLT50bS5iID0gMTsKKwlvcmItPnRtLmxwbSA9IGxwbSA/IGxwbSA6IHNjaC0+bHBtOworCW9yYi0+dG0udGN3ID0gKHUzMikgKGFkZHJfdCkgdGN3OworCWNjID0gc3NjaChzY2gtPnNjaGlkLCBvcmIpOworCXN3aXRjaCAoY2MpIHsKKwljYXNlIDA6CisJCXJldHVybiAwOworCWNhc2UgMToKKwljYXNlIDI6CisJCXJldHVybiAtRUJVU1k7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGNpb19zdGFydF9oYW5kbGVfbm90b3BlcihzY2gsIGxwbSk7CisJfQorfQorCisvKioKKyAqIGNpb190bV9pbnRyZyAtIHBlcmZvcm0gaW50ZXJyb2dhdGUgZnVuY3Rpb24KKyAqIEBzY2ggLSBzdWJjaGFubmVsIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIGludGVycm9nYXRlIGZ1bmN0aW9uCisgKgorICogSWYgdGhlIHNwZWNpZmllZCBzdWJjaGFubmVsIGlzIHJ1bm5pbmcgaW4gdHJhbnNwb3J0LW1vZGUsIHBlcmZvcm0gdGhlCisgKiBpbnRlcnJvZ2F0ZSBmdW5jdGlvbi4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8gb3RoZXJ3aWUuCisgKi8KK2ludCBjaW9fdG1faW50cmcoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3sKKwlpbnQgY2M7CisKKwlpZiAoIXRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiLnRtLmIpCisJCXJldHVybiAtRUlOVkFMOworCWNjID0geHNjaChzY2gtPnNjaGlkKTsKKwlzd2l0Y2ggKGNjKSB7CisJY2FzZSAwOgorCWNhc2UgMjoKKwkJcmV0dXJuIDA7CisJY2FzZSAxOgorCQlyZXR1cm4gLUVCVVNZOworCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PREVWOworCX0KK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY2lvLmggYi9kcml2ZXJzL3MzOTAvY2lvL2Npby5oCmluZGV4IDZlOTMzYWUuLjNiMjM2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY2lvLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jaW8uaApAQCAtMyw5ICszLDEyIEBACiAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisjaW5jbHVkZSA8YXNtL3NjaGlkLmg+CiAjaW5jbHVkZSAiY2hzYy5oIgotI2luY2x1ZGUgInNjaGlkLmgiCiAKIC8qCiAgKiBwYXRoIG1hbmFnZW1lbnQgY29udHJvbCB3b3JkCkBAIC0xMyw3ICsxNiw3IEBACiBzdHJ1Y3QgcG1jdyB7CiAJdTMyIGludHBhcm07CQkvKiBpbnRlcnJ1cHRpb24gcGFyYW1ldGVyICovCiAJdTMyIHFmCSA6IDE7CQkvKiBxZGlvIGZhY2lsaXR5ICovCi0JdTMyIHJlczAgOiAxOwkJLyogcmVzZXJ2ZWQgemVyb3MgKi8KKwl1MzIgdwkgOiAxOwogCXUzMiBpc2MgIDogMzsJCS8qIGludGVycnVwdGlvbiBzdWJsYXNzICovCiAJdTMyIHJlczUgOiAzOwkJLyogcmVzZXJ2ZWQgemVyb3MgKi8KIAl1MzIgZW5hICA6IDE7CQkvKiBlbmFibGVkICovCkBAIC00Nyw3ICs1MCw3IEBACiAgKi8KIHN0cnVjdCBzY2hpYiB7CiAJc3RydWN0IHBtY3cgcG1jdzsJIC8qIHBhdGggbWFuYWdlbWVudCBjb250cm9sIHdvcmQgKi8KLQlzdHJ1Y3Qgc2NzdyBzY3N3OwkgLyogc3ViY2hhbm5lbCBzdGF0dXMgd29yZCAqLworCXVuaW9uIHNjc3cgc2NzdzsJIC8qIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQgKi8KIAlfX3U2NCBtYmE7ICAgICAgICAgICAgICAgLyogbWVhc3VyZW1lbnQgYmxvY2sgYWRkcmVzcyAqLwogCV9fdTggbWRhWzRdOwkJIC8qIG1vZGVsIGRlcGVuZGVudCBhcmVhICovCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwpAQCAtOTksOCArMTAyLDExIEBACiBleHRlcm4gaW50IGNpb19nZXRfb3B0aW9ucyAoc3RydWN0IHN1YmNoYW5uZWwgKik7CiBleHRlcm4gaW50IGNpb19tb2RpZnkgKHN0cnVjdCBzdWJjaGFubmVsICopOwogCitpbnQgY2lvX3RtX3N0YXJ0X2tleShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoLCBzdHJ1Y3QgdGN3ICp0Y3csIHU4IGxwbSwgdTgga2V5KTsKK2ludCBjaW9fdG1faW50cmcoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CisKIGludCBjaW9fY3JlYXRlX3NjaF9sb2NrKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkb19hZGFwdGVyX0lPKHZvaWQpOwordm9pZCBkb19hZGFwdGVyX0lPKHU4IGlzYyk7CiB2b2lkIGRvX0lSUShzdHJ1Y3QgcHRfcmVncyAqKTsKIAogLyogVXNlIHdpdGggY2FyZS4gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vY21mLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2NtZi5jCmluZGV4IDI4MDhiNjguLmE5MGIyOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vY21mLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9jbWYuYwpAQCAtMzQxLDEyICszNDEsMTIgQEAKIAlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQogCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChzY2gtPnNjaGliLnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSB7CisJaWYgKHNjc3dfZmN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSB7CiAJCS8qIERvbid0IGNvcHkgaWYgYSBzdGFydCBmdW5jdGlvbiBpcyBpbiBwcm9ncmVzcy4gKi8KLQkJaWYgKCghKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpICYmCi0JCSAgICAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgJgorCQlpZiAoKCEoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpICYmCisJCSAgICAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYKIAkJICAgICAoU0NTV19BQ1RMX0RFVkFDVCB8IFNDU1dfQUNUTF9TQ0hBQ1QpKSAmJgotCQkgICAgKCEoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkpCisJCSAgICAoIShzY3N3X3N0Y3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkpCiAJCQlyZXR1cm4gLUVCVVNZOwogCX0KIAljbWJfZGF0YSA9IGNkZXYtPnByaXZhdGUtPmNtYjsKQEAgLTYxMiw5ICs2MTIsNiBAQAogCQkJZnJlZV9wYWdlcygodW5zaWduZWQgbG9uZyltZW0sIGdldF9vcmRlcihzaXplKSk7CiAJCX0gZWxzZSBpZiAoIW1lbSkgewogCQkJLyogbm8gbHVjayAqLwotCQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBmYWlsZWQgdG8gYWxsb2NhdGUgYXJlYSAiCi0JCQkgICAgICAgImZvciBtZWFzdXJpbmcgJWQgc3ViY2hhbm5lbHNcbiIsCi0JCQkgICAgICAgY21iX2FyZWEubnVtX2NoYW5uZWxzKTsKIAkJCXJldCA9IC1FTk9NRU07CiAJCQlnb3RvIG91dDsKIAkJfSBlbHNlIHsKQEAgLTEyMzAsMTMgKzEyMjcsOSBAQAogCXN3aXRjaCAodmFsKSB7CiAJY2FzZSAwOgogCQlyZXQgPSBkaXNhYmxlX2NtZihjZGV2KTsKLQkJaWYgKHJldCkKLQkJCWRldl9pbmZvKCZjZGV2LT5kZXYsICJkaXNhYmxlX2NtZiBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAkJYnJlYWs7CiAJY2FzZSAxOgogCQlyZXQgPSBlbmFibGVfY21mKGNkZXYpOwotCQlpZiAocmV0ICYmIHJldCAhPSAtRUJVU1kpCi0JCQlkZXZfaW5mbygmY2Rldi0+ZGV2LCAiZW5hYmxlX2NtZiBmYWlsZWQgKCVkKVxuIiwgcmV0KTsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMzQ0LDggKzEzMzcsNyBAQAogCSAqIHRvIGJhc2ljIG1vZGUuCiAJICovCiAJaWYgKGZvcm1hdCA9PSBDTUZfQVVUT0RFVEVDVCkgewotCQlpZiAoIWNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgfHwKLQkJICAgICFjc3NfZ2VuZXJhbF9jaGFyYWN0ZXJpc3RpY3MuZXh0X21iKSB7CisJCWlmICghY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmV4dF9tYikgewogCQkJZm9ybWF0ID0gQ01GX0JBU0lDOwogCQl9IGVsc2UgewogCQkJZm9ybWF0ID0gQ01GX0VYVEVOREVEOwpAQCAtMTM2NSw4ICsxMzU3LDYgQEAKIAkJY21ib3BzID0gJmNtYm9wc19leHRlbmRlZDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJcHJpbnRrKEtFUk5fRVJSICJjaW86IEludmFsaWQgZm9ybWF0ICVkIGZvciBjaGFubmVsICIKLQkJCSJtZWFzdXJlbWVudCBmYWNpbGl0eVxuIiwgZm9ybWF0KTsKIAkJcmV0dXJuIDE7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jIGIvZHJpdmVycy9zMzkwL2Npby9jc3MuYwppbmRleCBhNzY5NTY1Li40NmMwMjFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmMKQEAgLTIsOCArMiw3IEBACiAgKiAgZHJpdmVycy9zMzkwL2Npby9jc3MuYwogICogIGRyaXZlciBmb3IgY2hhbm5lbCBzdWJzeXN0ZW0KICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEFybmQgQmVyZ21hbm4gKGFybmRiQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqLwpAQCAtMTQsNyArMTMsOSBAQAogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAorI2luY2x1ZGUgIi4uL3MzOTBtYWNoLmgiCiAjaW5jbHVkZSAiY3NzLmgiCiAjaW5jbHVkZSAiY2lvLmgiCiAjaW5jbHVkZSAiY2lvX2RlYnVnLmgiCkBAIC0zMCw4ICszMSw2IEBACiAKIHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY2hhbm5lbF9zdWJzeXN0ZW1zW19fTUFYX0NTU0lEICsgMV07CiAKLWludCBjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsID0gMDsKLQogaW50CiBmb3JfZWFjaF9zdWJjaGFubmVsKGludCgqZm4pKHN0cnVjdCBzdWJjaGFubmVsX2lkLCB2b2lkICopLCB2b2lkICpkYXRhKQogewpAQCAtMTIxLDI1ICsxMjAsNiBAQAogCQlrZnJlZShzY2gpOwogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KLQotCWlmIChzY2gtPnN0ICE9IFNVQkNIQU5ORUxfVFlQRV9JTykgewotCQkvKiBGb3Igbm93IHdlIGlnbm9yZSBhbGwgbm9uLWlvIHN1YmNoYW5uZWxzLiAqLwotCQlrZnJlZShzY2gpOwotCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKLQl9Ci0KLQkvKiAKLQkgKiBTZXQgaW50cGFybSB0byBzdWJjaGFubmVsIGFkZHJlc3MuCi0JICogVGhpcyBpcyBmaW5lIGV2ZW4gb24gNjRiaXQgc2luY2UgdGhlIHN1YmNoYW5uZWwgaXMgYWx3YXlzIGxvY2F0ZWQKLQkgKiB1bmRlciAyRy4KLQkgKi8KLQlzY2gtPnNjaGliLnBtY3cuaW50cGFybSA9ICh1MzIpKGFkZHJfdClzY2g7Ci0JcmV0ID0gY2lvX21vZGlmeShzY2gpOwotCWlmIChyZXQpIHsKLQkJa2ZyZWUoc2NoLT5sb2NrKTsKLQkJa2ZyZWUoc2NoKTsKLQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKLQl9CiAJcmV0dXJuIHNjaDsKIH0KIApAQCAtMTc3LDEyICsxNTcsMTggQEAKIAlyZXR1cm4gcmV0OwogfQogCisvKioKKyAqIGNzc19zY2hfZGV2aWNlX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVyIGEgc3ViY2hhbm5lbAorICogQHNjaDogc3ViY2hhbm5lbCB0byBiZSB1bnJlZ2lzdGVyZWQKKyAqLwogdm9pZCBjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCiB7CiAJbXV0ZXhfbG9jaygmc2NoLT5yZWdfbXV0ZXgpOwotCWRldmljZV91bnJlZ2lzdGVyKCZzY2gtPmRldik7CisJaWYgKGRldmljZV9pc19yZWdpc3RlcmVkKCZzY2gtPmRldikpCisJCWRldmljZV91bnJlZ2lzdGVyKCZzY2gtPmRldik7CiAJbXV0ZXhfdW5sb2NrKCZzY2gtPnJlZ19tdXRleCk7CiB9CitFWFBPUlRfU1lNQk9MX0dQTChjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKTsKIAogc3RhdGljIHZvaWQgc3NkX2Zyb21fcG1jdyhzdHJ1Y3QgY2hzY19zc2RfaW5mbyAqc3NkLCBzdHJ1Y3QgcG1jdyAqcG1jdykKIHsKQEAgLTIyOSw2ICsyMTUsNDEgQEAKIAl9CiB9CiAKK3N0YXRpYyBzc2l6ZV90IHR5cGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiJTAxeFxuIiwgc2NoLT5zdCk7Cit9CisKK3N0YXRpYyBERVZJQ0VfQVRUUih0eXBlLCAwNDQ0LCB0eXBlX3Nob3csIE5VTEwpOworCitzdGF0aWMgc3NpemVfdCBtb2RhbGlhc19zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCisJCQkgICAgIGNoYXIgKmJ1ZikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChkZXYpOworCisJcmV0dXJuIHNwcmludGYoYnVmLCAiY3NzOnQlMDFYXG4iLCBzY2gtPnN0KTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKG1vZGFsaWFzLCAwNDQ0LCBtb2RhbGlhc19zaG93LCBOVUxMKTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnN1YmNoX2F0dHJzW10gPSB7CisJJmRldl9hdHRyX3R5cGUuYXR0ciwKKwkmZGV2X2F0dHJfbW9kYWxpYXMuYXR0ciwKKwlOVUxMLAorfTsKKworc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgc3ViY2hfYXR0cl9ncm91cCA9IHsKKwkuYXR0cnMgPSBzdWJjaF9hdHRycywKK307CisKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpkZWZhdWx0X3N1YmNoX2F0dHJfZ3JvdXBzW10gPSB7CisJJnN1YmNoX2F0dHJfZ3JvdXAsCisJTlVMTCwKK307CisKIHN0YXRpYyBpbnQgY3NzX3JlZ2lzdGVyX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKIHsKIAlpbnQgcmV0OwpAQCAtMjM3LDE2ICsyNTgsMTcgQEAKIAlzY2gtPmRldi5wYXJlbnQgPSAmY2hhbm5lbF9zdWJzeXN0ZW1zWzBdLT5kZXZpY2U7CiAJc2NoLT5kZXYuYnVzID0gJmNzc19idXNfdHlwZTsKIAlzY2gtPmRldi5yZWxlYXNlID0gJmNzc19zdWJjaGFubmVsX3JlbGVhc2U7Ci0Jc2NoLT5kZXYuZ3JvdXBzID0gc3ViY2hfYXR0cl9ncm91cHM7CisJc2NoLT5kZXYuZ3JvdXBzID0gZGVmYXVsdF9zdWJjaF9hdHRyX2dyb3VwczsKIAkvKgogCSAqIFdlIGRvbid0IHdhbnQgdG8gZ2VuZXJhdGUgdWV2ZW50cyBmb3IgSS9PIHN1YmNoYW5uZWxzIHRoYXQgZG9uJ3QKIAkgKiBoYXZlIGEgd29ya2luZyBjY3cgZGV2aWNlIGJlaGluZCB0aGVtIHNpbmNlIHRoZXkgd2lsbCBiZQogCSAqIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhleSBjYW4gYmUgdXNlZCBhbnl3YXksIHNvIHdlIGRlbGF5IHRoZSBhZGQKIAkgKiB1ZXZlbnQgdW50aWwgYWZ0ZXIgZGV2aWNlIHJlY29nbml0aW9uIHdhcyBzdWNjZXNzZnVsLgorCSAqIE5vdGUgdGhhdCB3ZSBzdXBwcmVzcyB0aGUgdWV2ZW50IGZvciBhbGwgc3ViY2hhbm5lbCB0eXBlczsKKwkgKiB0aGUgc3ViY2hhbm5lbCBkcml2ZXIgY2FuIGRlY2lkZSBpdHNlbGYgd2hlbiBpdCB3YW50cyB0byBpbmZvcm0KKwkgKiB1c2Vyc3BhY2Ugb2YgaXRzIGV4aXN0ZW5jZS4KIAkgKi8KLQlpZiAoIWNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQotCQkvKiBDb25zb2xlIGlzIHNwZWNpYWwsIG5vIG5lZWQgdG8gc3VwcHJlc3MuICovCi0JCXNjaC0+ZGV2LnVldmVudF9zdXBwcmVzcyA9IDE7CisJc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzID0gMTsKIAljc3NfdXBkYXRlX3NzZF9pbmZvKHNjaCk7CiAJLyogbWFrZSBpdCBrbm93biB0byB0aGUgc3lzdGVtICovCiAJcmV0ID0gY3NzX3NjaF9kZXZpY2VfcmVnaXN0ZXIoc2NoKTsKQEAgLTI1NSwxMCArMjc3LDE5IEBACiAJCQkgICAgICBzY2gtPnNjaGlkLnNzaWQsIHNjaC0+c2NoaWQuc2NoX25vLCByZXQpOwogCQlyZXR1cm4gcmV0OwogCX0KKwlpZiAoIXNjaC0+ZHJpdmVyKSB7CisJCS8qCisJCSAqIE5vIGRyaXZlciBtYXRjaGVkLiBHZW5lcmF0ZSB0aGUgdWV2ZW50IG5vdyBzbyB0aGF0CisJCSAqIGEgZml0dGluZyBkcml2ZXIgbW9kdWxlIG1heSBiZSBsb2FkZWQgYmFzZWQgb24gdGhlCisJCSAqIG1vZGFsaWFzLgorCQkgKi8KKwkJc2NoLT5kZXYudWV2ZW50X3N1cHByZXNzID0gMDsKKwkJa29iamVjdF91ZXZlbnQoJnNjaC0+ZGV2LmtvYmosIEtPQkpfQUREKTsKKwl9CiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBjc3NfcHJvYmVfZGV2aWNlKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkKQoraW50IGNzc19wcm9iZV9kZXZpY2Uoc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoOwpAQCAtMzAxLDExNiArMzMyLDEyIEBACiB7CiAJaWYgKChzY2hpYi0+cG1jdy5zdCA9PSBTVUJDSEFOTkVMX1RZUEVfSU8pICYmICFzY2hpYi0+cG1jdy5kbnYpCiAJCXJldHVybiAwOworCWlmICgoc2NoaWItPnBtY3cuc3QgPT0gU1VCQ0hBTk5FTF9UWVBFX01TRykgJiYgIXNjaGliLT5wbWN3LncpCisJCXJldHVybiAwOwogCXJldHVybiAxOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoY3NzX3NjaF9pc192YWxpZCk7CiAKLXN0YXRpYyBpbnQgY3NzX2dldF9zdWJjaGFubmVsX3N0YXR1cyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBzY2hpYiBzY2hpYjsKLQotCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoaWIpKQotCQlyZXR1cm4gQ0lPX0dPTkU7Ci0JaWYgKCFjc3Nfc2NoX2lzX3ZhbGlkKCZzY2hpYikpCi0JCXJldHVybiBDSU9fR09ORTsKLQlpZiAoc2NoLT5zY2hpYi5wbWN3LmRudiAmJiAoc2NoaWIucG1jdy5kZXYgIT0gc2NoLT5zY2hpYi5wbWN3LmRldikpCi0JCXJldHVybiBDSU9fUkVWQUxJREFURTsKLQlpZiAoIXNjaC0+bHBtKQotCQlyZXR1cm4gQ0lPX05PX1BBVEg7Ci0JcmV0dXJuIENJT19PUEVSOwotfQotCi1zdGF0aWMgaW50IGNzc19ldmFsdWF0ZV9rbm93bl9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIGludCBzbG93KQotewotCWludCBldmVudCwgcmV0LCBkaXNjOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JZW51bSB7IE5PTkUsIFVOUkVHSVNURVIsIFVOUkVHSVNURVJfUFJPQkUsIFJFUFJPQkUgfSBhY3Rpb247Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQlkaXNjID0gZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChzY2gpOwotCWlmIChkaXNjICYmIHNsb3cpIHsKLQkJLyogRGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBkaXJlY3RseSBvbmx5LiovCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAwOwotCX0KLQkvKiBObyBpbnRlcnJ1cHQgYWZ0ZXIgbWFjaGluZSBjaGVjayAtIGtpbGwgcGVuZGluZyB0aW1lcnMuICovCi0JZGV2aWNlX2tpbGxfcGVuZGluZ190aW1lcihzY2gpOwotCWlmICghZGlzYyAmJiAhc2xvdykgewotCQkvKiBOb24tZGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBvbiB0aGUgc2xvdyBwYXRoLiAqLwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQlyZXR1cm4gLUVBR0FJTjsKLQl9Ci0JZXZlbnQgPSBjc3NfZ2V0X3N1YmNoYW5uZWxfc3RhdHVzKHNjaCk7Ci0JQ0lPX01TR19FVkVOVCg0LCAiRXZhbHVhdGluZyBzY2hpZCAwLiV4LiUwNHgsIGV2ZW50ICVkLCAlcywgJXMgcGF0aC5cbiIsCi0JCSAgICAgIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIGV2ZW50LAotCQkgICAgICBkaXNjID8gImRpc2Nvbm5lY3RlZCIgOiAibm9ybWFsIiwKLQkJICAgICAgc2xvdyA/ICJzbG93IiA6ICJmYXN0Iik7Ci0JLyogQW5hbHl6ZSBzdWJjaGFubmVsIHN0YXR1cy4gKi8KLQlhY3Rpb24gPSBOT05FOwotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIENJT19OT19QQVRIOgotCQlpZiAoZGlzYykgewotCQkJLyogQ2hlY2sgaWYgcGF0aHMgaGF2ZSBiZWNvbWUgYXZhaWxhYmxlLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJCWJyZWFrOwotCQl9Ci0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgQ0lPX0dPTkU6Ci0JCS8qIFByZXZlbnQgdW53YW50ZWQgZWZmZWN0cyB3aGVuIG9wZW5pbmcgbG9jay4gKi8KLQkJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOwotCQlkZXZpY2Vfc2V0X2Rpc2Nvbm5lY3RlZChzY2gpOwotCQkvKiBBc2sgZHJpdmVyIHdoYXQgdG8gZG8gd2l0aCBkZXZpY2UuICovCi0JCWFjdGlvbiA9IFVOUkVHSVNURVI7Ci0JCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+bm90aWZ5KSB7Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQkJcmV0ID0gc2NoLT5kcml2ZXItPm5vdGlmeShzY2gsIGV2ZW50KTsKLQkJCXNwaW5fbG9ja19pcnFzYXZlKHNjaC0+bG9jaywgZmxhZ3MpOwotCQkJaWYgKHJldCkKLQkJCQlhY3Rpb24gPSBOT05FOwotCQl9Ci0JCWJyZWFrOwotCWNhc2UgQ0lPX1JFVkFMSURBVEU6Ci0JCS8qIERldmljZSB3aWxsIGJlIHJlbW92ZWQsIHNvIG5vIG5vdGlmeSBuZWNlc3NhcnkuICovCi0JCWlmIChkaXNjKQotCQkJLyogUmVwcm9iZSBiZWNhdXNlIGltbWVkaWF0ZSB1bnJlZ2lzdGVyIG1pZ2h0IGJsb2NrLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJZWxzZQotCQkJYWN0aW9uID0gVU5SRUdJU1RFUl9QUk9CRTsKLQkJYnJlYWs7Ci0JY2FzZSBDSU9fT1BFUjoKLQkJaWYgKGRpc2MpCi0JCQkvKiBHZXQgZGV2aWNlIG9wZXJhdGlvbmFsIGFnYWluLiAqLwotCQkJYWN0aW9uID0gUkVQUk9CRTsKLQkJYnJlYWs7Ci0JfQotCS8qIFBlcmZvcm0gYWN0aW9uLiAqLwotCXJldCA9IDA7Ci0Jc3dpdGNoIChhY3Rpb24pIHsKLQljYXNlIFVOUkVHSVNURVI6Ci0JY2FzZSBVTlJFR0lTVEVSX1BST0JFOgotCQkvKiBVbnJlZ2lzdGVyIGRldmljZSAod2lsbCB1c2Ugc3ViY2hhbm5lbCBsb2NrKS4gKi8KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkJY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzY2gpOwotCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKLQotCQkvKiBSZXNldCBpbnRwYXJtIHRvIHplcm9lcy4gKi8KLQkJc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAwOwotCQljaW9fbW9kaWZ5KHNjaCk7Ci0JCWJyZWFrOwotCWNhc2UgUkVQUk9CRToKLQkJZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzY2gpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlicmVhazsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKLQkvKiBQcm9iZSBpZiBuZWNlc3NhcnkuICovCi0JaWYgKGFjdGlvbiA9PSBVTlJFR0lTVEVSX1BST0JFKQotCQlyZXQgPSBjc3NfcHJvYmVfZGV2aWNlKHNjaC0+c2NoaWQpOwotCi0JcmV0dXJuIHJldDsKLX0KLQogc3RhdGljIGludCBjc3NfZXZhbHVhdGVfbmV3X3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIGludCBzbG93KQogewogCXN0cnVjdCBzY2hpYiBzY2hpYjsKQEAgLTQyOSw2ICszNTYsMjEgQEAKIAlyZXR1cm4gY3NzX3Byb2JlX2RldmljZShzY2hpZCk7CiB9CiAKK3N0YXRpYyBpbnQgY3NzX2V2YWx1YXRlX2tub3duX3N1YmNoYW5uZWwoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IHNsb3cpCit7CisJaW50IHJldCA9IDA7CisKKwlpZiAoc2NoLT5kcml2ZXIpIHsKKwkJaWYgKHNjaC0+ZHJpdmVyLT5zY2hfZXZlbnQpCisJCQlyZXQgPSBzY2gtPmRyaXZlci0+c2NoX2V2ZW50KHNjaCwgc2xvdyk7CisJCWVsc2UKKwkJCWRldl9kYmcoJnNjaC0+ZGV2LAorCQkJCSJHb3Qgc3ViY2hhbm5lbCBtYWNoaW5lIGNoZWNrIGJ1dCAiCisJCQkJIm5vIHNjaF9ldmVudCBoYW5kbGVyIHByb3ZpZGVkLlxuIik7CisJfQorCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyB2b2lkIGNzc19ldmFsdWF0ZV9zdWJjaGFubmVsKHN0cnVjdCBzdWJjaGFubmVsX2lkIHNjaGlkLCBpbnQgc2xvdykKIHsKIAlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoOwpAQCAtNTk2LDE4ICs1MzgsMjkgQEAKIC8qCiAgKiBDYWxsZWQgZnJvbSB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyIGZvciBzdWJjaGFubmVsIHJlcG9ydCB3b3Jkcy4KICAqLwotdm9pZCBjc3NfcHJvY2Vzc19jcncoaW50IHJzaWQxLCBpbnQgcnNpZDIpCitzdGF0aWMgdm9pZCBjc3NfcHJvY2Vzc19jcncoc3RydWN0IGNydyAqY3J3MCwgc3RydWN0IGNydyAqY3J3MSwgaW50IG92ZXJmbG93KQogewogCXN0cnVjdCBzdWJjaGFubmVsX2lkIG1jaGtfc2NoaWQ7CiAKLQlDSU9fQ1JXX0VWRU5UKDIsICJzb3VyY2UgaXMgc3ViY2hhbm5lbCAlMDRYLCBzdWJzeXN0ZW0gaWQgJXhcbiIsCi0JCSAgICAgIHJzaWQxLCByc2lkMik7CisJaWYgKG92ZXJmbG93KSB7CisJCWNzc19zY2hlZHVsZV9ldmFsX2FsbCgpOworCQlyZXR1cm47CisJfQorCUNJT19DUldfRVZFTlQoMiwgIkNSVzAgcmVwb3J0cyBzbGN0PSVkLCBvZmx3PSVkLCAiCisJCSAgICAgICJjaG49JWQsIHJzYz0lWCwgYW5jPSVkLCBlcmM9JVgsIHJzaWQ9JVhcbiIsCisJCSAgICAgIGNydzAtPnNsY3QsIGNydzAtPm9mbHcsIGNydzAtPmNobiwgY3J3MC0+cnNjLCBjcncwLT5hbmMsCisJCSAgICAgIGNydzAtPmVyYywgY3J3MC0+cnNpZCk7CisJaWYgKGNydzEpCisJCUNJT19DUldfRVZFTlQoMiwgIkNSVzEgcmVwb3J0cyBzbGN0PSVkLCBvZmx3PSVkLCAiCisJCQkgICAgICAiY2huPSVkLCByc2M9JVgsIGFuYz0lZCwgZXJjPSVYLCByc2lkPSVYXG4iLAorCQkJICAgICAgY3J3MS0+c2xjdCwgY3J3MS0+b2ZsdywgY3J3MS0+Y2huLCBjcncxLT5yc2MsCisJCQkgICAgICBjcncxLT5hbmMsIGNydzEtPmVyYywgY3J3MS0+cnNpZCk7CiAJaW5pdF9zdWJjaGFubmVsX2lkKCZtY2hrX3NjaGlkKTsKLQltY2hrX3NjaGlkLnNjaF9ubyA9IHJzaWQxOwotCWlmIChyc2lkMiAhPSAwKQotCQltY2hrX3NjaGlkLnNzaWQgPSAocnNpZDIgPj4gOCkgJiAzOworCW1jaGtfc2NoaWQuc2NoX25vID0gY3J3MC0+cnNpZDsKKwlpZiAoY3J3MSkKKwkJbWNoa19zY2hpZC5zc2lkID0gKGNydzEtPnJzaWQgPj4gOCkgJiAzOwogCi0JLyogCisJLyoKIAkgKiBTaW5jZSB3ZSBhcmUgYWx3YXlzIHByZXNlbnRlZCB3aXRoIElQSSBpbiB0aGUgQ1JXLCB3ZSBoYXZlIHRvCiAJICogdXNlIHN0c2NoKCkgdG8gZmluZCBvdXQgaWYgdGhlIHN1YmNoYW5uZWwgaW4gcXVlc3Rpb24gaGFzIGNvbWUKIAkgKiBvciBnb25lLgpAQCAtNjU4LDcgKzYxMSw3IEBACiBzdGF0aWMgdm9pZCBfX2luaXQKIGNzc19nZW5lcmF0ZV9wZ2lkKHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY3NzLCB1MzIgdG9kX2hpZ2gpCiB7Ci0JaWYgKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgJiYgY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLm1jc3MpIHsKKwlpZiAoY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLm1jc3MpIHsKIAkJY3NzLT5nbG9iYWxfcGdpZC5wZ2lkX2hpZ2guZXh0X2Nzc2lkLnZlcnNpb24gPSAweDgwOwogCQljc3MtPmdsb2JhbF9wZ2lkLnBnaWRfaGlnaC5leHRfY3NzaWQuY3NzaWQgPSBjc3MtPmNzc2lkOwogCX0gZWxzZSB7CkBAIC03OTUsOCArNzQ4LDYgQEAKIAlyZXQgPSBjaHNjX2RldGVybWluZV9jc3NfY2hhcmFjdGVyaXN0aWNzKCk7CiAJaWYgKHJldCA9PSAtRU5PTUVNKQogCQlnb3RvIG91dDsgLyogTm8gbmVlZCB0byBjb250aW51ZS4gKi8KLQlpZiAocmV0ID09IDApCi0JCWNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwgPSAxOwogCiAJcmV0ID0gY2hzY19hbGxvY19zZWlfYXJlYSgpOwogCWlmIChyZXQpCkBAIC04MDYsNiArNzU3LDEwIEBACiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKKwlyZXQgPSBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfU0NILCBjc3NfcHJvY2Vzc19jcncpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCiAJaWYgKChyZXQgPSBidXNfcmVnaXN0ZXIoJmNzc19idXNfdHlwZSkpKQogCQlnb3RvIG91dDsKIApAQCAtODM2LDggKzc5MSw3IEBACiAJCXJldCA9IGRldmljZV9yZWdpc3RlcigmY3NzLT5kZXZpY2UpOwogCQlpZiAocmV0KQogCQkJZ290byBvdXRfZnJlZV9hbGw7Ci0JCWlmIChjc3NfY2hhcmFjdGVyaXN0aWNzX2F2YWlsICYmCi0JCSAgICBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkgeworCQlpZiAoY3NzX2Noc2NfY2hhcmFjdGVyaXN0aWNzLnNlY20pIHsKIAkJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZSgmY3NzLT5kZXZpY2UsCiAJCQkJCQkgJmRldl9hdHRyX2NtX2VuYWJsZSk7CiAJCQlpZiAocmV0KQpAQCAtODUyLDcgKzgwNiw4IEBACiAJCWdvdG8gb3V0X3BzZXVkbzsKIAljc3NfaW5pdF9kb25lID0gMTsKIAotCWN0bF9zZXRfYml0KDYsIDI4KTsKKwkvKiBFbmFibGUgZGVmYXVsdCBpc2MgZm9yIEkvTyBzdWJjaGFubmVscy4gKi8KKwlpc2NfcmVnaXN0ZXIoSU9fU0NIX0lTQyk7CiAKIAlmb3JfZWFjaF9zdWJjaGFubmVsKF9faW5pdF9jaGFubmVsX3N1YnN5c3RlbSwgTlVMTCk7CiAJcmV0dXJuIDA7CkBAIC04NzUsNyArODMwLDcgQEAKIAkJaS0tOwogCQljc3MgPSBjaGFubmVsX3N1YnN5c3RlbXNbaV07CiAJCWRldmljZV91bnJlZ2lzdGVyKCZjc3MtPnBzZXVkb19zdWJjaGFubmVsLT5kZXYpOwotCQlpZiAoY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCAmJiBjc3NfY2hzY19jaGFyYWN0ZXJpc3RpY3Muc2VjbSkKKwkJaWYgKGNzc19jaHNjX2NoYXJhY3RlcmlzdGljcy5zZWNtKQogCQkJZGV2aWNlX3JlbW92ZV9maWxlKCZjc3MtPmRldmljZSwKIAkJCQkJICAgJmRldl9hdHRyX2NtX2VuYWJsZSk7CiAJCWRldmljZV91bnJlZ2lzdGVyKCZjc3MtPmRldmljZSk7CkBAIC04ODMsNiArODM4LDcgQEAKIG91dF9idXM6CiAJYnVzX3VucmVnaXN0ZXIoJmNzc19idXNfdHlwZSk7CiBvdXQ6CisJczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKENSV19SU0NfQ1NTKTsKIAljaHNjX2ZyZWVfc2VpX2FyZWEoKTsKIAlrZnJlZShzbG93X3N1YmNoYW5uZWxfc2V0KTsKIAlwcmludGsoS0VSTl9XQVJOSU5HImNpbzogZmFpbGVkIHRvIGluaXRpYWxpemUgY3NzIGRyaXZlciAoJWQpIVxuIiwKQEAgLTg5NSwxOSArODUxLDE2IEBACiAJcmV0dXJuIHNjaCA9PSB0b19jc3Moc2NoLT5kZXYucGFyZW50KS0+cHNldWRvX3N1YmNoYW5uZWw7CiB9CiAKLS8qCi0gKiBmaW5kIGEgZHJpdmVyIGZvciBhIHN1YmNoYW5uZWwuIFRoZXkgaWRlbnRpZnkgYnkgdGhlIHN1YmNoYW5uZWwKLSAqIHR5cGUgd2l0aCB0aGUgZXhjZXB0aW9uIHRoYXQgdGhlIGNvbnNvbGUgc3ViY2hhbm5lbCBkcml2ZXIgaGFzIGl0cyBvd24KLSAqIHN1YmNoYW5uZWwgdHlwZSBhbHRob3VnaCB0aGUgZGV2aWNlIGlzIGFuIGkvbyBzdWJjaGFubmVsCi0gKi8KLXN0YXRpYyBpbnQKLWNzc19idXNfbWF0Y2ggKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9kcml2ZXIgKmRydikKK3N0YXRpYyBpbnQgY3NzX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpCiB7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRvX3N1YmNoYW5uZWwoZGV2KTsKIAlzdHJ1Y3QgY3NzX2RyaXZlciAqZHJpdmVyID0gdG9fY3NzZHJpdmVyKGRydik7CisJc3RydWN0IGNzc19kZXZpY2VfaWQgKmlkOwogCi0JaWYgKHNjaC0+c3QgPT0gZHJpdmVyLT5zdWJjaGFubmVsX3R5cGUpCi0JCXJldHVybiAxOworCWZvciAoaWQgPSBkcml2ZXItPnN1YmNoYW5uZWxfdHlwZTsgaWQtPm1hdGNoX2ZsYWdzOyBpZCsrKSB7CisJCWlmIChzY2gtPnN0ID09IGlkLT50eXBlKQorCQkJcmV0dXJuIDE7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC05NDUsMTIgKzg5OCwyNSBAQAogCQlzY2gtPmRyaXZlci0+c2h1dGRvd24oc2NoKTsKIH0KIAorc3RhdGljIGludCBjc3NfdWV2ZW50KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGtvYmpfdWV2ZW50X2VudiAqZW52KQoreworCXN0cnVjdCBzdWJjaGFubmVsICpzY2ggPSB0b19zdWJjaGFubmVsKGRldik7CisJaW50IHJldDsKKworCXJldCA9IGFkZF91ZXZlbnRfdmFyKGVudiwgIlNUPSUwMVgiLCBzY2gtPnN0KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldCA9IGFkZF91ZXZlbnRfdmFyKGVudiwgIk1PREFMSUFTPWNzczp0JTAxWCIsIHNjaC0+c3QpOworCXJldHVybiByZXQ7Cit9CisKIHN0cnVjdCBidXNfdHlwZSBjc3NfYnVzX3R5cGUgPSB7CiAJLm5hbWUgICAgID0gImNzcyIsCiAJLm1hdGNoICAgID0gY3NzX2J1c19tYXRjaCwKIAkucHJvYmUgICAgPSBjc3NfcHJvYmUsCiAJLnJlbW92ZSAgID0gY3NzX3JlbW92ZSwKIAkuc2h1dGRvd24gPSBjc3Nfc2h1dGRvd24sCisJLnVldmVudCAgID0gY3NzX3VldmVudCwKIH07CiAKIC8qKgpAQCAtOTg1LDQgKzk1MSwzIEBACiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIEVYUE9SVF9TWU1CT0woY3NzX2J1c190eXBlKTsKLUVYUE9SVF9TWU1CT0xfR1BMKGNzc19jaGFyYWN0ZXJpc3RpY3NfYXZhaWwpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9jc3MuaCBiL2RyaXZlcnMvczM5MC9jaW8vY3NzLmgKaW5kZXggZTE5MTM1MS4uNTdlYmYxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9jc3MuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2Nzcy5oCkBAIC05LDggKzksNyBAQAogCiAjaW5jbHVkZSA8YXNtL2Npby5oPgogI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgotCi0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogLyoKICAqIHBhdGggZ3JvdXBpbmcgc3R1ZmYKQEAgLTU4LDIwICs1NywyOCBAQAogCV9fdTMyIHRvZF9oaWdoOwkJLyogaGlnaCB3b3JkIFRPRCBjbG9jayAqLwogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAKLS8qCi0gKiBBIGNzcyBkcml2ZXIgaGFuZGxlcyBhbGwgc3ViY2hhbm5lbHMgb2Ygb25lIHR5cGUuCi0gKiBDdXJyZW50bHksIHdlIG9ubHkgY2FyZSBhYm91dCBJL08gc3ViY2hhbm5lbHMgKHR5cGUgMCksIHRoZXNlCi0gKiBoYXZlIGEgY2N3X2RldmljZSBjb25uZWN0ZWQgdG8gdGhlbS4KLSAqLwogc3RydWN0IHN1YmNoYW5uZWw7CitzdHJ1Y3QgY2hwX2xpbms7CisvKioKKyAqIHN0cnVjdCBjc3NfZHJpdmVyIC0gZGV2aWNlIGRyaXZlciBmb3Igc3ViY2hhbm5lbHMKKyAqIEBvd25lcjogb3duaW5nIG1vZHVsZQorICogQHN1YmNoYW5uZWxfdHlwZTogc3ViY2hhbm5lbCB0eXBlIHN1cHBvcnRlZCBieSB0aGlzIGRyaXZlcgorICogQGRydjogZW1iZWRkZWQgZGV2aWNlIGRyaXZlciBzdHJ1Y3R1cmUKKyAqIEBpcnE6IGNhbGxlZCBvbiBpbnRlcnJ1cHRzCisgKiBAY2hwX2V2ZW50OiBjYWxsZWQgZm9yIGV2ZW50cyBhZmZlY3RpbmcgYSBjaGFubmVsIHBhdGgKKyAqIEBzY2hfZXZlbnQ6IGNhbGxlZCBmb3IgZXZlbnRzIGFmZmVjdGluZyB0aGUgc3ViY2hhbm5lbAorICogQHByb2JlOiBmdW5jdGlvbiBjYWxsZWQgb24gcHJvYmUKKyAqIEByZW1vdmU6IGZ1bmN0aW9uIGNhbGxlZCBvbiByZW1vdmUKKyAqIEBzaHV0ZG93bjogY2FsbGVkIGF0IGRldmljZSBzaHV0ZG93bgorICogQG5hbWU6IG5hbWUgb2YgdGhlIGRldmljZSBkcml2ZXIKKyAqLwogc3RydWN0IGNzc19kcml2ZXIgewogCXN0cnVjdCBtb2R1bGUgKm93bmVyOwotCXVuc2lnbmVkIGludCBzdWJjaGFubmVsX3R5cGU7CisJc3RydWN0IGNzc19kZXZpY2VfaWQgKnN1YmNoYW5uZWxfdHlwZTsKIAlzdHJ1Y3QgZGV2aWNlX2RyaXZlciBkcnY7CiAJdm9pZCAoKmlycSkoc3RydWN0IHN1YmNoYW5uZWwgKik7Ci0JaW50ICgqbm90aWZ5KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBpbnQpOwotCXZvaWQgKCp2ZXJpZnkpKHN0cnVjdCBzdWJjaGFubmVsICopOwotCXZvaWQgKCp0ZXJtaW5hdGlvbikoc3RydWN0IHN1YmNoYW5uZWwgKik7CisJaW50ICgqY2hwX2V2ZW50KShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBzdHJ1Y3QgY2hwX2xpbmsgKiwgaW50KTsKKwlpbnQgKCpzY2hfZXZlbnQpKHN0cnVjdCBzdWJjaGFubmVsICosIGludCk7CiAJaW50ICgqcHJvYmUpKHN0cnVjdCBzdWJjaGFubmVsICopOwogCWludCAoKnJlbW92ZSkoc3RydWN0IHN1YmNoYW5uZWwgKik7CiAJdm9pZCAoKnNodXRkb3duKShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKQEAgLTg5LDEzICs5NiwxMyBAQAogZXh0ZXJuIHZvaWQgY3NzX2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBjc3NfZHJpdmVyICopOwogCiBleHRlcm4gdm9pZCBjc3Nfc2NoX2RldmljZV91bnJlZ2lzdGVyKHN0cnVjdCBzdWJjaGFubmVsICopOwotZXh0ZXJuIHN0cnVjdCBzdWJjaGFubmVsICogZ2V0X3N1YmNoYW5uZWxfYnlfc2NoaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQpOworZXh0ZXJuIGludCBjc3NfcHJvYmVfZGV2aWNlKHN0cnVjdCBzdWJjaGFubmVsX2lkKTsKK2V4dGVybiBzdHJ1Y3Qgc3ViY2hhbm5lbCAqZ2V0X3N1YmNoYW5uZWxfYnlfc2NoaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQpOwogZXh0ZXJuIGludCBjc3NfaW5pdF9kb25lOwogaW50IGZvcl9lYWNoX3N1YmNoYW5uZWxfc3RhZ2VkKGludCAoKmZuX2tub3duKShzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCB2b2lkICopLAogCQkJICAgICAgIGludCAoKmZuX3Vua25vd24pKHN0cnVjdCBzdWJjaGFubmVsX2lkLAogCQkJICAgICAgIHZvaWQgKiksIHZvaWQgKmRhdGEpOwogZXh0ZXJuIGludCBmb3JfZWFjaF9zdWJjaGFubmVsKGludCgqZm4pKHN0cnVjdCBzdWJjaGFubmVsX2lkLCB2b2lkICopLCB2b2lkICopOwotZXh0ZXJuIHZvaWQgY3NzX3Byb2Nlc3NfY3J3KGludCwgaW50KTsKIGV4dGVybiB2b2lkIGNzc19yZWl0ZXJhdGVfc3ViY2hhbm5lbHModm9pZCk7CiB2b2lkIGNzc191cGRhdGVfc3NkX2luZm8oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7CiAKQEAgLTEyMSwyMCArMTI4LDYgQEAKIGV4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgY3NzX2J1c190eXBlOwogZXh0ZXJuIHN0cnVjdCBjaGFubmVsX3N1YnN5c3RlbSAqY2hhbm5lbF9zdWJzeXN0ZW1zW107CiAKLS8qIFNvbWUgaGVscGVyIGZ1bmN0aW9ucyBmb3IgZGlzY29ubmVjdGVkIHN0YXRlLiAqLwotaW50IGRldmljZV9pc19kaXNjb25uZWN0ZWQoc3RydWN0IHN1YmNoYW5uZWwgKik7Ci12b2lkIGRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkZXZpY2VfdHJpZ2dlcl9yZXByb2JlKHN0cnVjdCBzdWJjaGFubmVsICopOwotCi0vKiBIZWxwZXIgZnVuY3Rpb25zIGZvciB2YXJ5IG9uL29mZi4gKi8KLWludCBkZXZpY2VfaXNfb25saW5lKHN0cnVjdCBzdWJjaGFubmVsICopOwotdm9pZCBkZXZpY2Vfa2lsbF9pbyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXZvaWQgZGV2aWNlX3NldF9pbnRyZXRyeShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKTsKLWludCBkZXZpY2VfdHJpZ2dlcl92ZXJpZnkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCk7Ci0KLS8qIE1hY2hpbmUgY2hlY2sgaGVscGVyIGZ1bmN0aW9uLiAqLwotdm9pZCBkZXZpY2Vfa2lsbF9wZW5kaW5nX3RpbWVyKHN0cnVjdCBzdWJjaGFubmVsICopOwotCiAvKiBIZWxwZXIgZnVuY3Rpb25zIHRvIGJ1aWxkIGxpc3RzIGZvciB0aGUgc2xvdyBwYXRoLiAqLwogdm9pZCBjc3Nfc2NoZWR1bGVfZXZhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCk7CiB2b2lkIGNzc19zY2hlZHVsZV9ldmFsX2FsbCh2b2lkKTsKQEAgLTE0NSw2ICsxMzgsNCBAQAogCiBleHRlcm4gc3RydWN0IHdvcmtxdWV1ZV9zdHJ1Y3QgKnNsb3dfcGF0aF93cTsKIHZvaWQgY3NzX3dhaXRfZm9yX3Nsb3dfcGF0aCh2b2lkKTsKLQotZXh0ZXJuIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnN1YmNoX2F0dHJfZ3JvdXBzW107CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCmluZGV4IGUyMjgxM2QuLmU4MThkMGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuYwpAQCAtMiw4ICsyLDcgQEAKICAqICBkcml2ZXJzL3MzOTAvY2lvL2RldmljZS5jCiAgKiAgYnVzIGRyaXZlciBmb3IgY2N3IGRldmljZXMKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IEFybmQgQmVyZ21hbm4gKGFybmRiQGRlLmlibS5jb20pCiAgKgkJIENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgTWFydGluIFNjaHdpZGVmc2t5IChzY2h3aWRlZnNreUBkZS5pYm0uY29tKQpAQCAtMjMsNyArMjIsOSBAQAogI2luY2x1ZGUgPGFzbS9jaW8uaD4KICNpbmNsdWRlIDxhc20vcGFyYW0uaD4JCS8qIEhaICovCiAjaW5jbHVkZSA8YXNtL2NtYi5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KIAorI2luY2x1ZGUgImNocC5oIgogI2luY2x1ZGUgImNpby5oIgogI2luY2x1ZGUgImNpb19kZWJ1Zy5oIgogI2luY2x1ZGUgImNzcy5oIgpAQCAtMTI1LDE5ICsxMjYsMjQgQEAKIHN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfaXJxKHN0cnVjdCBzdWJjaGFubmVsICopOwogc3RhdGljIGludCBpb19zdWJjaGFubmVsX3Byb2JlKHN0cnVjdCBzdWJjaGFubmVsICopOwogc3RhdGljIGludCBpb19zdWJjaGFubmVsX3JlbW92ZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqKTsKLXN0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9ub3RpZnkoc3RydWN0IHN1YmNoYW5uZWwgKiwgaW50KTsKLXN0YXRpYyB2b2lkIGlvX3N1YmNoYW5uZWxfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICopOwotc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9pb3Rlcm0oc3RydWN0IHN1YmNoYW5uZWwgKik7CiBzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX3NodXRkb3duKHN0cnVjdCBzdWJjaGFubmVsICopOworc3RhdGljIGludCBpb19zdWJjaGFubmVsX3NjaF9ldmVudChzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBpbnQpOworc3RhdGljIGludCBpb19zdWJjaGFubmVsX2NocF9ldmVudChzdHJ1Y3Qgc3ViY2hhbm5lbCAqLCBzdHJ1Y3QgY2hwX2xpbmsgKiwKKwkJCQkgICBpbnQpOworCitzdGF0aWMgc3RydWN0IGNzc19kZXZpY2VfaWQgaW9fc3ViY2hhbm5lbF9pZHNbXSA9IHsKKwl7IC5tYXRjaF9mbGFncyA9IDB4MSwgLnR5cGUgPSBTVUJDSEFOTkVMX1RZUEVfSU8sIH0sCisJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAorfTsKK01PRFVMRV9ERVZJQ0VfVEFCTEUoY3NzLCBpb19zdWJjaGFubmVsX2lkcyk7CiAKIHN0YXRpYyBzdHJ1Y3QgY3NzX2RyaXZlciBpb19zdWJjaGFubmVsX2RyaXZlciA9IHsKIAkub3duZXIgPSBUSElTX01PRFVMRSwKLQkuc3ViY2hhbm5lbF90eXBlID0gU1VCQ0hBTk5FTF9UWVBFX0lPLAorCS5zdWJjaGFubmVsX3R5cGUgPSBpb19zdWJjaGFubmVsX2lkcywKIAkubmFtZSA9ICJpb19zdWJjaGFubmVsIiwKIAkuaXJxID0gaW9fc3ViY2hhbm5lbF9pcnEsCi0JLm5vdGlmeSA9IGlvX3N1YmNoYW5uZWxfbm90aWZ5LAotCS52ZXJpZnkgPSBpb19zdWJjaGFubmVsX3ZlcmlmeSwKLQkudGVybWluYXRpb24gPSBpb19zdWJjaGFubmVsX2lvdGVybSwKKwkuc2NoX2V2ZW50ID0gaW9fc3ViY2hhbm5lbF9zY2hfZXZlbnQsCisJLmNocF9ldmVudCA9IGlvX3N1YmNoYW5uZWxfY2hwX2V2ZW50LAogCS5wcm9iZSA9IGlvX3N1YmNoYW5uZWxfcHJvYmUsCiAJLnJlbW92ZSA9IGlvX3N1YmNoYW5uZWxfcmVtb3ZlLAogCS5zaHV0ZG93biA9IGlvX3N1YmNoYW5uZWxfc2h1dGRvd24sCkBAIC00ODcsMjUgKzQ5MywyMiBAQAogCQljY3dfZGV2aWNlX3NldF9vbmxpbmUoY2Rldik7CiAJcmV0dXJuIDA7CiB9Ci1zdGF0aWMgdm9pZCBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IGZvcmNlKQorc3RhdGljIGludCBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IGZvcmNlKQogewogCWludCByZXQ7CiAKIAlyZXQgPSBvbmxpbmVfc3RvcmVfcmVjb2dfYW5kX29ubGluZShjZGV2KTsKIAlpZiAocmV0KQotCQlyZXR1cm47CisJCXJldHVybiByZXQ7CiAJaWYgKGZvcmNlICYmIGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9CT1hFRCkgewogCQlyZXQgPSBjY3dfZGV2aWNlX3N0bGNrKGNkZXYpOwotCQlpZiAocmV0KSB7Ci0JCQlkZXZfd2FybigmY2Rldi0+ZGV2LAotCQkJCSAiY2N3X2RldmljZV9zdGxjayByZXR1cm5lZCAlZCFcbiIsIHJldCk7Ci0JCQlyZXR1cm47Ci0JCX0KKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAJCWlmIChjZGV2LT5pZC5jdV90eXBlID09IDApCiAJCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9IERFVl9TVEFURV9OT1RfT1BFUjsKIAkJb25saW5lX3N0b3JlX3JlY29nX2FuZF9vbmxpbmUoY2Rldik7CiAJfQotCisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzc2l6ZV90IG9ubGluZV9zdG9yZSAoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKQEAgLTUzOCw4ICs1NDEsOSBAQAogCQlyZXQgPSBjb3VudDsKIAkJYnJlYWs7CiAJY2FzZSAxOgotCQlvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShjZGV2LCBmb3JjZSk7Ci0JCXJldCA9IGNvdW50OworCQlyZXQgPSBvbmxpbmVfc3RvcmVfaGFuZGxlX29ubGluZShjZGV2LCBmb3JjZSk7CisJCWlmICghcmV0KQorCQkJcmV0ID0gY291bnQ7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldCA9IC1FSU5WQUw7CkBAIC01ODQsMTkgKzU4OCwxNCBAQAogc3RhdGljIERFVklDRV9BVFRSKG9ubGluZSwgMDY0NCwgb25saW5lX3Nob3csIG9ubGluZV9zdG9yZSk7CiBzdGF0aWMgREVWSUNFX0FUVFIoYXZhaWxhYmlsaXR5LCAwNDQ0LCBhdmFpbGFibGVfc2hvdywgTlVMTCk7CiAKLXN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICogc3ViY2hfYXR0cnNbXSA9IHsKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICppb19zdWJjaGFubmVsX2F0dHJzW10gPSB7CiAJJmRldl9hdHRyX2NocGlkcy5hdHRyLAogCSZkZXZfYXR0cl9waW1wYW1wb20uYXR0ciwKIAlOVUxMLAogfTsKIAotc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgc3ViY2hfYXR0cl9ncm91cCA9IHsKLQkuYXR0cnMgPSBzdWJjaF9hdHRycywKLX07Ci0KLXN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKnN1YmNoX2F0dHJfZ3JvdXBzW10gPSB7Ci0JJnN1YmNoX2F0dHJfZ3JvdXAsCi0JTlVMTCwKK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGlvX3N1YmNoYW5uZWxfYXR0cl9ncm91cCA9IHsKKwkuYXR0cnMgPSBpb19zdWJjaGFubmVsX2F0dHJzLAogfTsKIAogc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKiBjY3dkZXZfYXR0cnNbXSA9IHsKQEAgLTc5MCw3ICs3ODksNyBAQAogCXNjaF9zZXRfY2RldihzY2gsIGNkZXYpOwogCWNkZXYtPnByaXZhdGUtPnNjaGlkID0gc2NoLT5zY2hpZDsKIAljZGV2LT5jY3dsb2NrID0gc2NoLT5sb2NrOwotCWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc2NoKTsKKwljY3dfZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShjZGV2KTsKIAlzcGluX3VubG9ja19pcnEoc2NoLT5sb2NrKTsKIH0KIApAQCAtMTAzNyw3ICsxMDM2LDYgQEAKIAlzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlICpwcml2OwogCiAJc2NoX3NldF9jZGV2KHNjaCwgY2Rldik7Ci0Jc2NoLT5kcml2ZXIgPSAmaW9fc3ViY2hhbm5lbF9kcml2ZXI7CiAJY2Rldi0+Y2N3bG9jayA9IHNjaC0+bG9jazsKIAogCS8qIEluaXQgcHJpdmF0ZSBkYXRhLiAqLwpAQCAtMTEyMiw4ICsxMTIwLDMzIEBACiAJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX0lOVEVSUlVQVCk7CiB9CiAKLXN0YXRpYyBpbnQKLWlvX3N1YmNoYW5uZWxfcHJvYmUgKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX2luaXRfZmllbGRzKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit7CisJaWYgKGNpb19pc19jb25zb2xlKHNjaC0+c2NoaWQpKQorCQlzY2gtPm9wbSA9IDB4ZmY7CisJZWxzZQorCQlzY2gtPm9wbSA9IGNocF9nZXRfc2NoX29wbShzY2gpOworCXNjaC0+bHBtID0gc2NoLT5zY2hpYi5wbWN3LnBhbSAmIHNjaC0+b3BtOworCXNjaC0+aXNjID0gY2lvX2lzX2NvbnNvbGUoc2NoLT5zY2hpZCkgPyBDT05TT0xFX0lTQyA6IElPX1NDSF9JU0M7CisKKwlDSU9fTVNHX0VWRU5UKDYsICJEZXRlY3RlZCBkZXZpY2UgJTA0eCBvbiBzdWJjaGFubmVsIDAuJXguJTA0WCIKKwkJICAgICAgIiAtIFBJTSA9ICUwMlgsIFBBTSA9ICUwMlgsIFBPTSA9ICUwMlhcbiIsCisJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5kZXYsIHNjaC0+c2NoaWQuc3NpZCwKKwkJICAgICAgc2NoLT5zY2hpZC5zY2hfbm8sIHNjaC0+c2NoaWIucG1jdy5waW0sCisJCSAgICAgIHNjaC0+c2NoaWIucG1jdy5wYW0sIHNjaC0+c2NoaWIucG1jdy5wb20pOworCS8qIEluaXRpYWxseSBzZXQgdXAgc29tZSBmaWVsZHMgaW4gdGhlIHBtY3cuICovCisJc2NoLT5zY2hpYi5wbWN3LmVuYSA9IDA7CisJc2NoLT5zY2hpYi5wbWN3LmNzZW5zZSA9IDE7CS8qIGNvbmN1cnJlbnQgc2Vuc2UgKi8KKwlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCisJCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7IC8qIG11bHRpcGF0aCBtb2RlICovCisJLyogY2xlYW4gdXAgcG9zc2libGUgcmVzaWR1YWwgY21mIHN0dWZmICovCisJc2NoLT5zY2hpYi5wbWN3Lm1tZSA9IDA7CisJc2NoLT5zY2hpYi5wbWN3Lm1iZmMgPSAwOworCXNjaC0+c2NoaWIucG1jdy5tYmkgPSAwOworCXNjaC0+c2NoaWIubWJhID0gMDsKK30KKworc3RhdGljIGludCBpb19zdWJjaGFubmVsX3Byb2JlKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCiB7CiAJc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CiAJaW50IHJjOwpAQCAtMTEzMiwxMSArMTE1NSwyMSBAQAogCiAJY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCWlmIChjZGV2KSB7CisJCXJjID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZzY2gtPmRldi5rb2JqLAorCQkJCQkmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKKwkJaWYgKHJjKQorCQkJQ0lPX01TR19FVkVOVCgwLCAiRmFpbGVkIHRvIGNyZWF0ZSBpbyBzdWJjaGFubmVsICIKKwkJCQkgICAgICAiYXR0cmlidXRlcyBmb3Igc3ViY2hhbm5lbCAiCisJCQkJICAgICAgIjAuJXguJTA0eCAocmM9JWQpXG4iLAorCQkJCSAgICAgIHNjaC0+c2NoaWQuc3NpZCwgc2NoLT5zY2hpZC5zY2hfbm8sIHJjKTsKIAkJLyoKIAkJICogVGhpcyBzdWJjaGFubmVsIGFscmVhZHkgaGFzIGFuIGFzc29jaWF0ZWQgY2N3X2RldmljZS4KLQkJICogUmVnaXN0ZXIgaXQgYW5kIGV4aXQuIFRoaXMgaGFwcGVucyBmb3IgYWxsIGVhcmx5Ci0JCSAqIGRldmljZSwgZS5nLiB0aGUgY29uc29sZS4KKwkJICogVGhyb3cgdGhlIGRlbGF5ZWQgdWV2ZW50IGZvciB0aGUgc3ViY2hhbm5lbCwgcmVnaXN0ZXIKKwkJICogdGhlIGNjd19kZXZpY2UgYW5kIGV4aXQuIFRoaXMgaGFwcGVucyBmb3IgYWxsIGVhcmx5CisJCSAqIGRldmljZXMsIGUuZy4gdGhlIGNvbnNvbGUuCiAJCSAqLworCQlzY2gtPmRldi51ZXZlbnRfc3VwcHJlc3MgPSAwOworCQlrb2JqZWN0X3VldmVudCgmc2NoLT5kZXYua29iaiwgS09CSl9BREQpOwogCQljZGV2LT5kZXYuZ3JvdXBzID0gY2N3ZGV2X2F0dHJfZ3JvdXBzOwogCQlkZXZpY2VfaW5pdGlhbGl6ZSgmY2Rldi0+ZGV2KTsKIAkJY2N3X2RldmljZV9yZWdpc3RlcihjZGV2KTsKQEAgLTExNTIsMTcgKzExODUsMjQgQEAKIAkJCWdldF9kZXZpY2UoJmNkZXYtPmRldik7CiAJCXJldHVybiAwOwogCX0KKwlpb19zdWJjaGFubmVsX2luaXRfZmllbGRzKHNjaCk7CiAJLyoKIAkgKiBGaXJzdCBjaGVjayBpZiBhIGZpdHRpbmcgZGV2aWNlIG1heSBiZSBmb3VuZCBhbW9uZ3N0IHRoZQogCSAqIGRpc2Nvbm5lY3RlZCBkZXZpY2VzIG9yIGluIHRoZSBvcnBoYW5hZ2UuCiAJICovCiAJZGV2X2lkLmRldm5vID0gc2NoLT5zY2hpYi5wbWN3LmRldjsKIAlkZXZfaWQuc3NpZCA9IHNjaC0+c2NoaWQuc3NpZDsKKwlyYyA9IHN5c2ZzX2NyZWF0ZV9ncm91cCgmc2NoLT5kZXYua29iaiwKKwkJCQkmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKKwlpZiAocmMpCisJCXJldHVybiByYzsKIAkvKiBBbGxvY2F0ZSBJL08gc3ViY2hhbm5lbCBwcml2YXRlIGRhdGEuICovCiAJc2NoLT5wcml2YXRlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGlvX3N1YmNoYW5uZWxfcHJpdmF0ZSksCiAJCQkgICAgICAgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmICghc2NoLT5wcml2YXRlKQotCQlyZXR1cm4gLUVOT01FTTsKKwlpZiAoIXNjaC0+cHJpdmF0ZSkgeworCQlyYyA9IC1FTk9NRU07CisJCWdvdG8gb3V0X2VycjsKKwl9CiAJY2RldiA9IGdldF9kaXNjX2Njd2Rldl9ieV9kZXZfaWQoJmRldl9pZCwgTlVMTCk7CiAJaWYgKCFjZGV2KQogCQljZGV2ID0gZ2V0X29ycGhhbmVkX2Njd2Rldl9ieV9kZXZfaWQodG9fY3NzKHNjaC0+ZGV2LnBhcmVudCksCkBAIC0xMTgxLDggKzEyMjEsOCBAQAogCX0KIAljZGV2ID0gaW9fc3ViY2hhbm5lbF9jcmVhdGVfY2N3ZGV2KHNjaCk7CiAJaWYgKElTX0VSUihjZGV2KSkgewotCQlrZnJlZShzY2gtPnByaXZhdGUpOwotCQlyZXR1cm4gUFRSX0VSUihjZGV2KTsKKwkJcmMgPSBQVFJfRVJSKGNkZXYpOworCQlnb3RvIG91dF9lcnI7CiAJfQogCXJjID0gaW9fc3ViY2hhbm5lbF9yZWNvZyhjZGV2LCBzY2gpOwogCWlmIChyYykgewpAQCAtMTE5MSw5ICsxMjMxLDEyIEBACiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CiAJCWlmIChjZGV2LT5kZXYucmVsZWFzZSkKIAkJCWNkZXYtPmRldi5yZWxlYXNlKCZjZGV2LT5kZXYpOwotCQlrZnJlZShzY2gtPnByaXZhdGUpOworCQlnb3RvIG91dF9lcnI7CiAJfQotCisJcmV0dXJuIDA7CitvdXRfZXJyOgorCWtmcmVlKHNjaC0+cHJpdmF0ZSk7CisJc3lzZnNfcmVtb3ZlX2dyb3VwKCZzY2gtPmRldi5rb2JqLCAmaW9fc3ViY2hhbm5lbF9hdHRyX2dyb3VwKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTEyMTQsNiArMTI1Nyw3IEBACiAJY2N3X2RldmljZV91bnJlZ2lzdGVyKGNkZXYpOwogCXB1dF9kZXZpY2UoJmNkZXYtPmRldik7CiAJa2ZyZWUoc2NoLT5wcml2YXRlKTsKKwlzeXNmc19yZW1vdmVfZ3JvdXAoJnNjaC0+ZGV2LmtvYmosICZpb19zdWJjaGFubmVsX2F0dHJfZ3JvdXApOwogCXJldHVybiAwOwogfQogCkBAIC0xMjI0LDExICsxMjY4LDcgQEAKIAljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7CiAJaWYgKCFjZGV2KQogCQlyZXR1cm4gMDsKLQlpZiAoIWNkZXYtPmRydikKLQkJcmV0dXJuIDA7Ci0JaWYgKCFjZGV2LT5vbmxpbmUpCi0JCXJldHVybiAwOwotCXJldHVybiBjZGV2LT5kcnYtPm5vdGlmeSA/IGNkZXYtPmRydi0+bm90aWZ5KGNkZXYsIGV2ZW50KSA6IDA7CisJcmV0dXJuIGNjd19kZXZpY2Vfbm90aWZ5KGNkZXYsIGV2ZW50KTsKIH0KIAogc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF92ZXJpZnkoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKQEAgLTEyNDAsMjAgKzEyODAsOTQgQEAKIAkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKIH0KIAotc3RhdGljIHZvaWQgaW9fc3ViY2hhbm5lbF9pb3Rlcm0oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3N0YXRpYyBpbnQgY2hlY2tfZm9yX2lvX29uX3BhdGgoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IG1hc2spCit7CisJaW50IGNjOworCisJY2MgPSBzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CisJaWYgKGNjKQorCQlyZXR1cm4gMDsKKwlpZiAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYmIHNjaC0+c2NoaWIucG1jdy5scHVtID09IG1hc2spCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKKwkJCQkgIHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQoreworCWlmIChjaW9fY2xlYXIoc2NoKSkgeworCQkvKiBSZWNoZWNrIGRldmljZSBpbiBjYXNlIGNsZWFyIGZhaWxlZC4gKi8KKwkJc2NoLT5scG0gPSAwOworCQlpZiAoY2Rldi0+b25saW5lKQorCQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKKwkJZWxzZQorCQkJY3NzX3NjaGVkdWxlX2V2YWwoc2NoLT5zY2hpZCk7CisJCXJldHVybjsKKwl9CisJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfQ0xFQVJfVkVSSUZZOworCS8qIFJlcXVlc3QgcmV0cnkgb2YgaW50ZXJuYWwgb3BlcmF0aW9uLiAqLworCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMTsKKwkvKiBDYWxsIGhhbmRsZXIuICovCisJaWYgKGNkZXYtPmhhbmRsZXIpCisJCWNkZXYtPmhhbmRsZXIoY2RldiwgY2Rldi0+cHJpdmF0ZS0+aW50cGFybSwKKwkJCSAgICAgIEVSUl9QVFIoLUVJTykpOworfQorCitzdGF0aWMgdm9pZCBpb19zdWJjaGFubmVsX3Rlcm1pbmF0ZV9wYXRoKHN0cnVjdCBzdWJjaGFubmVsICpzY2gsIHU4IG1hc2spCiB7CiAJc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CiAKIAljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7CiAJaWYgKCFjZGV2KQogCQlyZXR1cm47Ci0JLyogSW50ZXJuYWwgSS9PIHdpbGwgYmUgcmV0cmllZCBieSB0aGUgaW50ZXJydXB0IGhhbmRsZXIuICovCi0JaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KQotCQlyZXR1cm47Ci0JY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfQ0xFQVJfVkVSSUZZOwotCWlmIChjZGV2LT5oYW5kbGVyKQotCQljZGV2LT5oYW5kbGVyKGNkZXYsIGNkZXYtPnByaXZhdGUtPmludHBhcm0sCi0JCQkgICAgICBFUlJfUFRSKC1FSU8pKTsKKwlpZiAoY2hlY2tfZm9yX2lvX29uX3BhdGgoc2NoLCBtYXNrKSkgeworCQlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX09OTElORSkKKwkJCWNjd19kZXZpY2Vfa2lsbF9pbyhjZGV2KTsKKwkJZWxzZSB7CisJCQl0ZXJtaW5hdGVfaW50ZXJuYWxfaW8oc2NoLCBjZGV2KTsKKwkJCS8qIFJlLXN0YXJ0IHBhdGggdmVyaWZpY2F0aW9uLiAqLworCQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKKwkJfQorCX0gZWxzZQorCQkvKiB0cmlnZ2VyIHBhdGggdmVyaWZpY2F0aW9uLiAqLworCQlkZXZfZnNtX2V2ZW50KGNkZXYsIERFVl9FVkVOVF9WRVJJRlkpOworCit9CisKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9jaHBfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwKKwkJCQkgICBzdHJ1Y3QgY2hwX2xpbmsgKmxpbmssIGludCBldmVudCkKK3sKKwlpbnQgbWFzazsKKworCW1hc2sgPSBjaHBfc3NkX2dldF9tYXNrKCZzY2gtPnNzZF9pbmZvLCBsaW5rKTsKKwlpZiAoIW1hc2spCisJCXJldHVybiAwOworCXN3aXRjaCAoZXZlbnQpIHsKKwljYXNlIENIUF9WQVJZX09GRjoKKwkJc2NoLT5vcG0gJj0gfm1hc2s7CisJCXNjaC0+bHBtICY9IH5tYXNrOworCQlpb19zdWJjaGFubmVsX3Rlcm1pbmF0ZV9wYXRoKHNjaCwgbWFzayk7CisJCWJyZWFrOworCWNhc2UgQ0hQX1ZBUllfT046CisJCXNjaC0+b3BtIHw9IG1hc2s7CisJCXNjaC0+bHBtIHw9IG1hc2s7CisJCWlvX3N1YmNoYW5uZWxfdmVyaWZ5KHNjaCk7CisJCWJyZWFrOworCWNhc2UgQ0hQX09GRkxJTkU6CisJCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikpCisJCQlyZXR1cm4gLUVOWElPOworCQlpZiAoIWNzc19zY2hfaXNfdmFsaWQoJnNjaC0+c2NoaWIpKQorCQkJcmV0dXJuIC1FTk9ERVY7CisJCWlvX3N1YmNoYW5uZWxfdGVybWluYXRlX3BhdGgoc2NoLCBtYXNrKTsKKwkJYnJlYWs7CisJY2FzZSBDSFBfT05MSU5FOgorCQlpZiAoc3RzY2goc2NoLT5zY2hpZCwgJnNjaC0+c2NoaWIpKQorCQkJcmV0dXJuIC1FTlhJTzsKKwkJc2NoLT5scG0gfD0gbWFzayAmIHNjaC0+b3BtOworCQlpb19zdWJjaGFubmVsX3ZlcmlmeShzY2gpOworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xMjg1LDYgKzEzOTksMTk1IEBACiAJY2lvX2Rpc2FibGVfc3ViY2hhbm5lbChzY2gpOwogfQogCitzdGF0aWMgaW50IGlvX3N1YmNoYW5uZWxfZ2V0X3N0YXR1cyhzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQoreworCXN0cnVjdCBzY2hpYiBzY2hpYjsKKworCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoaWIpIHx8ICFzY2hpYi5wbWN3LmRudikKKwkJcmV0dXJuIENJT19HT05FOworCWlmIChzY2gtPnNjaGliLnBtY3cuZG52ICYmIChzY2hpYi5wbWN3LmRldiAhPSBzY2gtPnNjaGliLnBtY3cuZGV2KSkKKwkJcmV0dXJuIENJT19SRVZBTElEQVRFOworCWlmICghc2NoLT5scG0pCisJCXJldHVybiBDSU9fTk9fUEFUSDsKKwlyZXR1cm4gQ0lPX09QRVI7Cit9CisKK3N0YXRpYyBpbnQgZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlpZiAoIWNkZXYpCisJCXJldHVybiAwOworCXJldHVybiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRCB8fAorCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfRElTQ09OTkVDVEVEX1NFTlNFX0lEKTsKK30KKworc3RhdGljIGludCByZWNvdmVyeV9jaGVjayhzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGNjd19kZXZpY2UgKmNkZXYgPSB0b19jY3dkZXYoZGV2KTsKKwlpbnQgKnJlZG8gPSBkYXRhOworCisJc3Bpbl9sb2NrX2lycShjZGV2LT5jY3dsb2NrKTsKKwlzd2l0Y2ggKGNkZXYtPnByaXZhdGUtPnN0YXRlKSB7CisJY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEOgorCQlDSU9fTVNHX0VWRU5UKDMsICJyZWNvdmVyeTogdHJpZ2dlciAwLiV4LiUwNHhcbiIsCisJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuc3NpZCwKKwkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubyk7CisJCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7CisJCSpyZWRvID0gMTsKKwkJYnJlYWs7CisJY2FzZSBERVZfU1RBVEVfRElTQ09OTkVDVEVEX1NFTlNFX0lEOgorCQkqcmVkbyA9IDE7CisJCWJyZWFrOworCX0KKwlzcGluX3VubG9ja19pcnEoY2Rldi0+Y2N3bG9jayk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcmVjb3Zlcnlfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqdW51c2VkKQoreworCWludCByZWRvID0gMDsKKworCWJ1c19mb3JfZWFjaF9kZXYoJmNjd19idXNfdHlwZSwgTlVMTCwgJnJlZG8sIHJlY292ZXJ5X2NoZWNrKTsKKwlpZiAocmVkbykgeworCQlzcGluX2xvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKKwkJaWYgKCF0aW1lcl9wZW5kaW5nKCZyZWNvdmVyeV90aW1lcikpIHsKKwkJCWlmIChyZWNvdmVyeV9waGFzZSA8IEFSUkFZX1NJWkUocmVjb3ZlcnlfZGVsYXkpIC0gMSkKKwkJCQlyZWNvdmVyeV9waGFzZSsrOworCQkJbW9kX3RpbWVyKCZyZWNvdmVyeV90aW1lciwgamlmZmllcyArCisJCQkJICByZWNvdmVyeV9kZWxheVtyZWNvdmVyeV9waGFzZV0gKiBIWik7CisJCX0KKwkJc3Bpbl91bmxvY2tfaXJxKCZyZWNvdmVyeV9sb2NrKTsKKwl9IGVsc2UKKwkJQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IGVuZFxuIik7Cit9CisKK3N0YXRpYyBERUNMQVJFX1dPUksocmVjb3Zlcnlfd29yaywgcmVjb3Zlcnlfd29ya19mdW5jKTsKKworc3RhdGljIHZvaWQgcmVjb3ZlcnlfZnVuYyh1bnNpZ25lZCBsb25nIGRhdGEpCit7CisJLyoKKwkgKiBXZSBjYW4ndCBkbyBvdXIgcmVjb3ZlcnkgaW4gc29mdGlycSBjb250ZXh0IGFuZCBpdCdzIG5vdAorCSAqIHBlcmZvcm1hbmNlIGNyaXRpY2FsLCBzbyB3ZSBzY2hlZHVsZSBpdC4KKwkgKi8KKwlzY2hlZHVsZV93b3JrKCZyZWNvdmVyeV93b3JrKTsKK30KKworc3RhdGljIHZvaWQgY2N3X2RldmljZV9zY2hlZHVsZV9yZWNvdmVyeSh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlDSU9fTVNHX0VWRU5UKDQsICJyZWNvdmVyeTogc2NoZWR1bGVcbiIpOworCXNwaW5fbG9ja19pcnFzYXZlKCZyZWNvdmVyeV9sb2NrLCBmbGFncyk7CisJaWYgKCF0aW1lcl9wZW5kaW5nKCZyZWNvdmVyeV90aW1lcikgfHwgKHJlY292ZXJ5X3BoYXNlICE9IDApKSB7CisJCXJlY292ZXJ5X3BoYXNlID0gMDsKKwkJbW9kX3RpbWVyKCZyZWNvdmVyeV90aW1lciwgamlmZmllcyArIHJlY292ZXJ5X2RlbGF5WzBdICogSFopOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyZWNvdmVyeV9sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIGRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KQoreworCWlmICghY2RldikKKwkJcmV0dXJuOworCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CisJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIgPSAwOworCWNkZXYtPnByaXZhdGUtPnN0YXRlID0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRDsKKwlpZiAoY2Rldi0+b25saW5lKQorCQljY3dfZGV2aWNlX3NjaGVkdWxlX3JlY292ZXJ5KCk7Cit9CisKK3N0YXRpYyBpbnQgaW9fc3ViY2hhbm5lbF9zY2hfZXZlbnQoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCwgaW50IHNsb3cpCit7CisJaW50IGV2ZW50LCByZXQsIGRpc2M7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwllbnVtIHsgTk9ORSwgVU5SRUdJU1RFUiwgVU5SRUdJU1RFUl9QUk9CRSwgUkVQUk9CRSB9IGFjdGlvbjsKKwlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldjsKKworCXNwaW5fbG9ja19pcnFzYXZlKHNjaC0+bG9jaywgZmxhZ3MpOworCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKKwlkaXNjID0gZGV2aWNlX2lzX2Rpc2Nvbm5lY3RlZChjZGV2KTsKKwlpZiAoZGlzYyAmJiBzbG93KSB7CisJCS8qIERpc2Nvbm5lY3RlZCBkZXZpY2VzIGFyZSBldmFsdWF0ZWQgZGlyZWN0bHkgb25seS4qLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gMDsKKwl9CisJLyogTm8gaW50ZXJydXB0IGFmdGVyIG1hY2hpbmUgY2hlY2sgLSBraWxsIHBlbmRpbmcgdGltZXJzLiAqLworCWlmIChjZGV2KQorCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOworCWlmICghZGlzYyAmJiAhc2xvdykgeworCQkvKiBOb24tZGlzY29ubmVjdGVkIGRldmljZXMgYXJlIGV2YWx1YXRlZCBvbiB0aGUgc2xvdyBwYXRoLiAqLworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisJZXZlbnQgPSBpb19zdWJjaGFubmVsX2dldF9zdGF0dXMoc2NoKTsKKwlDSU9fTVNHX0VWRU5UKDQsICJFdmFsdWF0aW5nIHNjaGlkIDAuJXguJTA0eCwgZXZlbnQgJWQsICVzLCAlcyBwYXRoLlxuIiwKKwkJICAgICAgc2NoLT5zY2hpZC5zc2lkLCBzY2gtPnNjaGlkLnNjaF9ubywgZXZlbnQsCisJCSAgICAgIGRpc2MgPyAiZGlzY29ubmVjdGVkIiA6ICJub3JtYWwiLAorCQkgICAgICBzbG93ID8gInNsb3ciIDogImZhc3QiKTsKKwkvKiBBbmFseXplIHN1YmNoYW5uZWwgc3RhdHVzLiAqLworCWFjdGlvbiA9IE5PTkU7CisJc3dpdGNoIChldmVudCkgeworCWNhc2UgQ0lPX05PX1BBVEg6CisJCWlmIChkaXNjKSB7CisJCQkvKiBDaGVjayBpZiBwYXRocyBoYXZlIGJlY29tZSBhdmFpbGFibGUuICovCisJCQlhY3Rpb24gPSBSRVBST0JFOworCQkJYnJlYWs7CisJCX0KKwkJLyogZmFsbCB0aHJvdWdoICovCisJY2FzZSBDSU9fR09ORToKKwkJLyogUHJldmVudCB1bndhbnRlZCBlZmZlY3RzIHdoZW4gb3BlbmluZyBsb2NrLiAqLworCQljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7CisJCWRldmljZV9zZXRfZGlzY29ubmVjdGVkKGNkZXYpOworCQkvKiBBc2sgZHJpdmVyIHdoYXQgdG8gZG8gd2l0aCBkZXZpY2UuICovCisJCWFjdGlvbiA9IFVOUkVHSVNURVI7CisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoc2NoLT5sb2NrLCBmbGFncyk7CisJCXJldCA9IGlvX3N1YmNoYW5uZWxfbm90aWZ5KHNjaCwgZXZlbnQpOworCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJaWYgKHJldCkKKwkJCWFjdGlvbiA9IE5PTkU7CisJCWJyZWFrOworCWNhc2UgQ0lPX1JFVkFMSURBVEU6CisJCS8qIERldmljZSB3aWxsIGJlIHJlbW92ZWQsIHNvIG5vIG5vdGlmeSBuZWNlc3NhcnkuICovCisJCWlmIChkaXNjKQorCQkJLyogUmVwcm9iZSBiZWNhdXNlIGltbWVkaWF0ZSB1bnJlZ2lzdGVyIG1pZ2h0IGJsb2NrLiAqLworCQkJYWN0aW9uID0gUkVQUk9CRTsKKwkJZWxzZQorCQkJYWN0aW9uID0gVU5SRUdJU1RFUl9QUk9CRTsKKwkJYnJlYWs7CisJY2FzZSBDSU9fT1BFUjoKKwkJaWYgKGRpc2MpCisJCQkvKiBHZXQgZGV2aWNlIG9wZXJhdGlvbmFsIGFnYWluLiAqLworCQkJYWN0aW9uID0gUkVQUk9CRTsKKwkJYnJlYWs7CisJfQorCS8qIFBlcmZvcm0gYWN0aW9uLiAqLworCXJldCA9IDA7CisJc3dpdGNoIChhY3Rpb24pIHsKKwljYXNlIFVOUkVHSVNURVI6CisJY2FzZSBVTlJFR0lTVEVSX1BST0JFOgorCQkvKiBVbnJlZ2lzdGVyIGRldmljZSAod2lsbCB1c2Ugc3ViY2hhbm5lbCBsb2NrKS4gKi8KKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShzY2gtPmxvY2ssIGZsYWdzKTsKKwkJY3NzX3NjaF9kZXZpY2VfdW5yZWdpc3RlcihzY2gpOworCQlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKKworCQkvKiBSZXNldCBpbnRwYXJtIHRvIHplcm9lcy4gKi8KKwkJc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAwOworCQljaW9fbW9kaWZ5KHNjaCk7CisJCWJyZWFrOworCWNhc2UgUkVQUk9CRToKKwkJY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoY2Rldik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWJyZWFrOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOworCS8qIFByb2JlIGlmIG5lY2Vzc2FyeS4gKi8KKwlpZiAoYWN0aW9uID09IFVOUkVHSVNURVJfUFJPQkUpCisJCXJldCA9IGNzc19wcm9iZV9kZXZpY2Uoc2NoLT5zY2hpZCk7CisKKwlyZXR1cm4gcmV0OworfQorCiAjaWZkZWYgQ09ORklHX0NDV19DT05TT0xFCiBzdGF0aWMgc3RydWN0IGNjd19kZXZpY2UgY29uc29sZV9jZGV2Owogc3RhdGljIHN0cnVjdCBjY3dfZGV2aWNlX3ByaXZhdGUgY29uc29sZV9wcml2YXRlOwpAQCAtMTI5NywxNCArMTYwMCwxNiBAQAogCXJldHVybiAmY2N3X2NvbnNvbGVfbG9jazsKIH0KIAotc3RhdGljIGludAotY2N3X2RldmljZV9jb25zb2xlX2VuYWJsZSAoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCitzdGF0aWMgaW50IGNjd19kZXZpY2VfY29uc29sZV9lbmFibGUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsCisJCQkJICAgICBzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQogewogCWludCByYzsKIAogCS8qIEF0dGFjaCBzdWJjaGFubmVsIHByaXZhdGUgZGF0YS4gKi8KIAlzY2gtPnByaXZhdGUgPSBjaW9fZ2V0X2NvbnNvbGVfcHJpdigpOwogCW1lbXNldChzY2gtPnByaXZhdGUsIDAsIHNpemVvZihzdHJ1Y3QgaW9fc3ViY2hhbm5lbF9wcml2YXRlKSk7CisJaW9fc3ViY2hhbm5lbF9pbml0X2ZpZWxkcyhzY2gpOworCXNjaC0+ZHJpdmVyID0gJmlvX3N1YmNoYW5uZWxfZHJpdmVyOwogCS8qIEluaXRpYWxpemUgdGhlIGNjd19kZXZpY2Ugc3RydWN0dXJlLiAqLwogCWNkZXYtPmRldi5wYXJlbnQ9ICZzY2gtPmRldjsKIAlyYyA9IGlvX3N1YmNoYW5uZWxfcmVjb2coY2Rldiwgc2NoKTsKQEAgLTE1MTUsNzEgKzE4MjAsNiBAQAogCXJldHVybiBzY2gtPnNjaGlkOwogfQogCi1zdGF0aWMgaW50IHJlY292ZXJ5X2NoZWNrKHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKLXsKLQlzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiA9IHRvX2Njd2RldihkZXYpOwotCWludCAqcmVkbyA9IGRhdGE7Ci0KLQlzcGluX2xvY2tfaXJxKGNkZXYtPmNjd2xvY2spOwotCXN3aXRjaCAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUpIHsKLQljYXNlIERFVl9TVEFURV9ESVNDT05ORUNURUQ6Ci0JCUNJT19NU0dfRVZFTlQoNCwgInJlY292ZXJ5OiB0cmlnZ2VyIDAuJXguJTA0eFxuIiwKLQkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5zc2lkLAotCQkJICAgICAgY2Rldi0+cHJpdmF0ZS0+ZGV2X2lkLmRldm5vKTsKLQkJZGV2X2ZzbV9ldmVudChjZGV2LCBERVZfRVZFTlRfVkVSSUZZKTsKLQkJKnJlZG8gPSAxOwotCQlicmVhazsKLQljYXNlIERFVl9TVEFURV9ESVNDT05ORUNURURfU0VOU0VfSUQ6Ci0JCSpyZWRvID0gMTsKLQkJYnJlYWs7Ci0JfQotCXNwaW5fdW5sb2NrX2lycShjZGV2LT5jY3dsb2NrKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCByZWNvdmVyeV93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp1bnVzZWQpCi17Ci0JaW50IHJlZG8gPSAwOwotCi0JYnVzX2Zvcl9lYWNoX2RldigmY2N3X2J1c190eXBlLCBOVUxMLCAmcmVkbywgcmVjb3ZlcnlfY2hlY2spOwotCWlmIChyZWRvKSB7Ci0JCXNwaW5fbG9ja19pcnEoJnJlY292ZXJ5X2xvY2spOwotCQlpZiAoIXRpbWVyX3BlbmRpbmcoJnJlY292ZXJ5X3RpbWVyKSkgewotCQkJaWYgKHJlY292ZXJ5X3BoYXNlIDwgQVJSQVlfU0laRShyZWNvdmVyeV9kZWxheSkgLSAxKQotCQkJCXJlY292ZXJ5X3BoYXNlKys7Ci0JCQltb2RfdGltZXIoJnJlY292ZXJ5X3RpbWVyLCBqaWZmaWVzICsKLQkJCQkgIHJlY292ZXJ5X2RlbGF5W3JlY292ZXJ5X3BoYXNlXSAqIEhaKTsKLQkJfQotCQlzcGluX3VubG9ja19pcnEoJnJlY292ZXJ5X2xvY2spOwotCX0gZWxzZQotCQlDSU9fTVNHX0VWRU5UKDQsICJyZWNvdmVyeTogZW5kXG4iKTsKLX0KLQotc3RhdGljIERFQ0xBUkVfV09SSyhyZWNvdmVyeV93b3JrLCByZWNvdmVyeV93b3JrX2Z1bmMpOwotCi1zdGF0aWMgdm9pZCByZWNvdmVyeV9mdW5jKHVuc2lnbmVkIGxvbmcgZGF0YSkKLXsKLQkvKgotCSAqIFdlIGNhbid0IGRvIG91ciByZWNvdmVyeSBpbiBzb2Z0aXJxIGNvbnRleHQgYW5kIGl0J3Mgbm90Ci0JICogcGVyZm9ybWFuY2UgY3JpdGljYWwsIHNvIHdlIHNjaGVkdWxlIGl0LgotCSAqLwotCXNjaGVkdWxlX3dvcmsoJnJlY292ZXJ5X3dvcmspOwotfQotCi12b2lkIGNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3Zlcnkodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JQ0lPX01TR19FVkVOVCg0LCAicmVjb3Zlcnk6IHNjaGVkdWxlXG4iKTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOwotCWlmICghdGltZXJfcGVuZGluZygmcmVjb3ZlcnlfdGltZXIpIHx8IChyZWNvdmVyeV9waGFzZSAhPSAwKSkgewotCQlyZWNvdmVyeV9waGFzZSA9IDA7Ci0JCW1vZF90aW1lcigmcmVjb3ZlcnlfdGltZXIsIGppZmZpZXMgKyByZWNvdmVyeV9kZWxheVswXSAqIEhaKTsKLQl9Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmVjb3ZlcnlfbG9jaywgZmxhZ3MpOwotfQotCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2Vfc2V0X29ubGluZSk7CiBFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2Vfc2V0X29mZmxpbmUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuaCBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmgKaW5kZXggY2IwODA5Mi4uOTgwMGE4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2UuaAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5oCkBAIC04OCw4ICs4OCw2IEBACiBpbnQgY2N3X2RldmljZV9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKik7CiBpbnQgY2N3X2RldmljZV9vZmZsaW5lKHN0cnVjdCBjY3dfZGV2aWNlICopOwogCi12b2lkIGNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3Zlcnkodm9pZCk7Ci0KIC8qIEZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIGRldmljZSBzdGF0dXMgYW5kIGJhc2ljIHNlbnNlIHN0dWZmLiAqLwogdm9pZCBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfaXJiKHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCBpcmIgKik7CiB2b2lkIGNjd19kZXZpY2VfYWNjdW11bGF0ZV9iYXNpY19zZW5zZShzdHJ1Y3QgY2N3X2RldmljZSAqLCBzdHJ1Y3QgaXJiICopOwpAQCAtMTE4LDYgKzExNiwxMSBAQAogCiBpbnQgY2N3X2RldmljZV9zdGxjayhzdHJ1Y3QgY2N3X2RldmljZSAqKTsKIAorLyogSGVscGVyIGZ1bmN0aW9uIGZvciBtYWNoaW5lIGNoZWNrIGhhbmRsaW5nLiAqLwordm9pZCBjY3dfZGV2aWNlX3RyaWdnZXJfcmVwcm9iZShzdHJ1Y3QgY2N3X2RldmljZSAqKTsKK3ZvaWQgY2N3X2RldmljZV9raWxsX2lvKHN0cnVjdCBjY3dfZGV2aWNlICopOworaW50IGNjd19kZXZpY2Vfbm90aWZ5KHN0cnVjdCBjY3dfZGV2aWNlICosIGludCk7CisKIC8qIHFkaW8gbmVlZHMgdGhpcy4gKi8KIHZvaWQgY2N3X2RldmljZV9zZXRfdGltZW91dChzdHJ1Y3QgY2N3X2RldmljZSAqLCBpbnQpOwogZXh0ZXJuIHN0cnVjdCBzdWJjaGFubmVsX2lkIGNjd19kZXZpY2VfZ2V0X3N1YmNoYW5uZWxfaWQoc3RydWN0IGNjd19kZXZpY2UgKik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9mc20uYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCmluZGV4IGUyNjhkNWEuLjhiNWZlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2ZzbS5jCkBAIC0yLDggKzIsNyBAQAogICogZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfZnNtLmMKICAqIGZpbml0ZSBzdGF0ZSBtYWNoaW5lIGZvciBkZXZpY2UgaGFuZGxpbmcKICAqCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDIgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsCi0gKgkJCSBJQk0gQ29ycG9yYXRpb24KKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwMiwyMDA4CiAgKiAgICBBdXRob3Iocyk6IENvcm5lbGlhIEh1Y2sgKGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbSkKICAqCQkgTWFydGluIFNjaHdpZGVmc2t5IChzY2h3aWRlZnNreUBkZS5pYm0uY29tKQogICovCkBAIC0yNyw2NSArMjYsNiBAQAogCiBzdGF0aWMgaW50IHRpbWVvdXRfbG9nX2VuYWJsZWQ7CiAKLWludAotZGV2aWNlX2lzX29ubGluZShzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoKQotewotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwotCWlmICghY2RldikKLQkJcmV0dXJuIDA7Ci0JcmV0dXJuIChjZGV2LT5wcml2YXRlLT5zdGF0ZSA9PSBERVZfU1RBVEVfT05MSU5FKTsKLX0KLQotaW50Ci1kZXZpY2VfaXNfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gKGNkZXYtPnByaXZhdGUtPnN0YXRlID09IERFVl9TVEFURV9ESVNDT05ORUNURUQgfHwKLQkJY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRF9TRU5TRV9JRCk7Ci19Ci0KLXZvaWQKLWRldmljZV9zZXRfZGlzY29ubmVjdGVkKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKLQljZGV2LT5wcml2YXRlLT5mbGFncy5mYWtlX2lyYiA9IDA7Ci0JY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPSBERVZfU1RBVEVfRElTQ09OTkVDVEVEOwotCWlmIChjZGV2LT5vbmxpbmUpCi0JCWNjd19kZXZpY2Vfc2NoZWR1bGVfcmVjb3ZlcnkoKTsKLX0KLQotdm9pZCBkZXZpY2Vfc2V0X2ludHJldHJ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAxOwotfQotCi1pbnQgZGV2aWNlX3RyaWdnZXJfdmVyaWZ5KHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2IHx8ICFjZGV2LT5vbmxpbmUpCi0JCXJldHVybiAtRUlOVkFMOwotCWRldl9mc21fZXZlbnQoY2RldiwgREVWX0VWRU5UX1ZFUklGWSk7Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgX19pbml0IGNjd190aW1lb3V0X2xvZ19zZXR1cChjaGFyICp1bnVzZWQpCiB7CiAJdGltZW91dF9sb2dfZW5hYmxlZCA9IDE7CkBAIC05OSwzMSArMzksNDMgQEAKIAlzdHJ1Y3Qgc2NoaWIgc2NoaWI7CiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKIAlzdHJ1Y3QgaW9fc3ViY2hhbm5lbF9wcml2YXRlICpwcml2YXRlOworCXVuaW9uIG9yYiAqb3JiOwogCWludCBjYzsKIAogCXNjaCA9IHRvX3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7CiAJcHJpdmF0ZSA9IHRvX2lvX3ByaXZhdGUoc2NoKTsKKwlvcmIgPSAmcHJpdmF0ZS0+b3JiOwogCWNjID0gc3RzY2goc2NoLT5zY2hpZCwgJnNjaGliKTsKIAogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSB0aW1lb3V0IG9jY3VycmVkIGF0ICVsbHgsICIKIAkgICAgICAgImRldmljZSBpbmZvcm1hdGlvbjpcbiIsIGdldF9jbG9jaygpKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IG9yYjpcbiIpOwogCXByaW50X2hleF9kdW1wKEtFUk5fV0FSTklORywgImNpbzogICIsIERVTVBfUFJFRklYX05PTkUsIDE2LCAxLAotCQkgICAgICAgJnByaXZhdGUtPm9yYiwgc2l6ZW9mKHByaXZhdGUtPm9yYiksIDApOworCQkgICAgICAgb3JiLCBzaXplb2YoKm9yYiksIDApOwogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSBidXMgaWQ6ICVzXG4iLCBjZGV2LT5kZXYuYnVzX2lkKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN1YmNoYW5uZWwgYnVzIGlkOiAlc1xuIiwgc2NoLT5kZXYuYnVzX2lkKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN1YmNoYW5uZWwgbHBtOiAlMDJ4LCBvcG06ICUwMngsICIKIAkgICAgICAgInZwbTogJTAyeFxuIiwgc2NoLT5scG0sIHNjaC0+b3BtLCBzY2gtPnZwbSk7CiAKLQlpZiAoKHZvaWQgKikoYWRkcl90KXByaXZhdGUtPm9yYi5jcGEgPT0gJnByaXZhdGUtPnNlbnNlX2NjdyB8fAotCSAgICAodm9pZCAqKShhZGRyX3QpcHJpdmF0ZS0+b3JiLmNwYSA9PSBjZGV2LT5wcml2YXRlLT5pY2N3cykKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJvZ3JhbSAoaW50ZXJuKTpcbiIpOwotCWVsc2UKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IGNoYW5uZWwgcHJvZ3JhbTpcbiIpOworCWlmIChvcmItPnRtLmIpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBvcmIgaW5kaWNhdGVzIHRyYW5zcG9ydCBtb2RlXG4iKTsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiY2lvOiBsYXN0IHRjdzpcbiIpOworCQlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKKwkJCSAgICAgICAodm9pZCAqKShhZGRyX3Qpb3JiLT50bS50Y3csCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB0Y3cpLCAwKTsKKwl9IGVsc2UgeworCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IG9yYiBpbmRpY2F0ZXMgY29tbWFuZCBtb2RlXG4iKTsKKwkJaWYgKCh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEgPT0gJnByaXZhdGUtPnNlbnNlX2NjdyB8fAorCQkgICAgKHZvaWQgKikoYWRkcl90KW9yYi0+Y21kLmNwYSA9PSBjZGV2LT5wcml2YXRlLT5pY2N3cykKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogbGFzdCBjaGFubmVsIHByb2dyYW0gIgorCQkJICAgICAgICIoaW50ZXJuKTpcbiIpOworCQllbHNlCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IGxhc3QgY2hhbm5lbCBwcm9ncmFtOlxuIik7CiAKLQlwcmludF9oZXhfZHVtcChLRVJOX1dBUk5JTkcsICJjaW86ICAiLCBEVU1QX1BSRUZJWF9OT05FLCAxNiwgMSwKLQkJICAgICAgICh2b2lkICopKGFkZHJfdClwcml2YXRlLT5vcmIuY3BhLAotCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBjY3cxKSwgMCk7CisJCXByaW50X2hleF9kdW1wKEtFUk5fV0FSTklORywgImNpbzogICIsIERVTVBfUFJFRklYX05PTkUsIDE2LCAxLAorCQkJICAgICAgICh2b2lkICopKGFkZHJfdClvcmItPmNtZC5jcGEsCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBjY3cxKSwgMCk7CisJfQogCXByaW50ayhLRVJOX1dBUk5JTkcgImNpbzogY2N3IGRldmljZSBzdGF0ZTogJWRcbiIsCiAJICAgICAgIGNkZXYtPnByaXZhdGUtPnN0YXRlKTsKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjaW86IHN0b3JlIHN1YmNoYW5uZWwgcmV0dXJuZWQ6IGNjPSVkXG4iLCBjYyk7CkBAIC0xNzEsMTggKzEyMyw2IEBACiAJYWRkX3RpbWVyKCZjZGV2LT5wcml2YXRlLT50aW1lcik7CiB9CiAKLS8qIEtpbGwgYW55IHBlbmRpbmcgdGltZXJzIGFmdGVyIG1hY2hpbmUgY2hlY2suICovCi12b2lkCi1kZXZpY2Vfa2lsbF9wZW5kaW5nX3RpbWVyKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCi17Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7Ci0KLQljZGV2ID0gc2NoX2dldF9jZGV2KHNjaCk7Ci0JaWYgKCFjZGV2KQotCQlyZXR1cm47Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKLX0KLQogLyoKICAqIENhbmNlbCBydW5uaW5nIGkvby4gVGhpcyBpcyBjYWxsZWQgcmVwZWF0ZWRseSBzaW5jZSBoYWx0L2NsZWFyIGFyZQogICogYXN5bmNocm9ub3VzIG9wZXJhdGlvbnMuIFdlIGRvIG9uZSB0cnkgd2l0aCBjaW9fY2FuY2VsLCB0d28gdHJpZXMKQEAgLTIwNSwxNSArMTQ1LDE4IEBACiAJCS8qIE5vdCBvcGVyYXRpb25hbCAtPiBkb25lLiAqLwogCQlyZXR1cm4gMDsKIAkvKiBTdGFnZSAxOiBjYW5jZWwgaW8uICovCi0JaWYgKCEoc2NoLT5zY2hpYi5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfSEFMVF9QRU5EKSAmJgotCSAgICAhKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX0NMRUFSX1BFTkQpKSB7Ci0JCXJldCA9IGNpb19jYW5jZWwoc2NoKTsKLQkJaWYgKHJldCAhPSAtRUlOVkFMKQotCQkJcmV0dXJuIHJldDsKLQkJLyogY2FuY2VsIGlvIHVuc3VjY2Vzc2Z1bC4gRnJvbSBub3cgb24gaXQgaXMgYXN5bmNocm9ub3VzLiAqLworCWlmICghKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9IQUxUX1BFTkQpICYmCisJICAgICEoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICYgU0NTV19BQ1RMX0NMRUFSX1BFTkQpKSB7CisJCWlmICghc2Nzd19pc190bSgmc2NoLT5zY2hpYi5zY3N3KSkgeworCQkJcmV0ID0gY2lvX2NhbmNlbChzY2gpOworCQkJaWYgKHJldCAhPSAtRUlOVkFMKQorCQkJCXJldHVybiByZXQ7CisJCX0KKwkJLyogY2FuY2VsIGlvIHVuc3VjY2Vzc2Z1bCBvciBub3QgYXBwbGljYWJsZSAodHJhbnNwb3J0IG1vZGUpLgorCQkgKiBDb250aW51ZSB3aXRoIGFzeW5jaHJvbm91cyBpbnN0cnVjdGlvbnMuICovCiAJCWNkZXYtPnByaXZhdGUtPmlyZXRyeSA9IDM7CS8qIDMgaGFsdCByZXRyaWVzLiAqLwogCX0KLQlpZiAoIShzY2gtPnNjaGliLnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgeworCWlmICghKHNjc3dfYWN0bCgmc2NoLT5zY2hpYi5zY3N3KSAmIFNDU1dfQUNUTF9DTEVBUl9QRU5EKSkgewogCQkvKiBTdGFnZSAyOiBoYWx0IGlvLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+aXJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5pcmV0cnktLTsKQEAgLTM4OCwzNCArMzMxLDMwIEBACiAJfQogfQogCitpbnQgY2N3X2RldmljZV9ub3RpZnkoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIGludCBldmVudCkKK3sKKwlpZiAoIWNkZXYtPmRydikKKwkJcmV0dXJuIDA7CisJaWYgKCFjZGV2LT5vbmxpbmUpCisJCXJldHVybiAwOworCXJldHVybiBjZGV2LT5kcnYtPm5vdGlmeSA/IGNkZXYtPmRydi0+bm90aWZ5KGNkZXYsIGV2ZW50KSA6IDA7Cit9CisKIHN0YXRpYyB2b2lkCiBjY3dfZGV2aWNlX29wZXJfbm90aWZ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlICpwcml2OwogCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwotCXN0cnVjdCBzdWJjaGFubmVsICpzY2g7CiAJaW50IHJldDsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJcHJpdiA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgY2N3X2RldmljZV9wcml2YXRlLCBraWNrX3dvcmspOwogCWNkZXYgPSBwcml2LT5jZGV2OwotCXNwaW5fbG9ja19pcnFzYXZlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKLQlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwotCWlmIChzY2gtPmRyaXZlciAmJiBzY2gtPmRyaXZlci0+bm90aWZ5KSB7Ci0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwotCQlyZXQgPSBzY2gtPmRyaXZlci0+bm90aWZ5KHNjaCwgQ0lPX09QRVIpOwotCQlzcGluX2xvY2tfaXJxc2F2ZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7Ci0JfSBlbHNlCi0JCXJldCA9IDA7CisJcmV0ID0gY2N3X2RldmljZV9ub3RpZnkoY2RldiwgQ0lPX09QRVIpOwogCWlmIChyZXQpIHsKIAkJLyogUmVlbmFibGUgY2hhbm5lbCBtZWFzdXJlbWVudHMsIGlmIG5lZWRlZC4gKi8KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShjZGV2LT5jY3dsb2NrLCBmbGFncyk7CiAJCWNtZl9yZWVuYWJsZShjZGV2KTsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoY2Rldi0+Y2N3bG9jaywgZmxhZ3MpOwogCQl3YWtlX3VwKCZjZGV2LT5wcml2YXRlLT53YWl0X3EpOwotCX0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKGNkZXYtPmNjd2xvY2ssIGZsYWdzKTsKLQlpZiAoIXJldCkKKwl9IGVsc2UKIAkJLyogRHJpdmVyIGRvZXNuJ3Qgd2FudCBkZXZpY2UgYmFjay4gKi8KIAkJY2N3X2RldmljZV9kb191bnJlZ19yZXJlZyh3b3JrKTsKIH0KQEAgLTYyMSwxMCArNTYwLDExIEBACiAJCS8qIERlbGl2ZXIgZmFrZSBpcmIgdG8gZGV2aWNlIGRyaXZlciwgaWYgbmVlZGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIpIHsKIAkJCW1lbXNldCgmY2Rldi0+cHJpdmF0ZS0+aXJiLCAwLCBzaXplb2Yoc3RydWN0IGlyYikpOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY2MgPSAxOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZmN0bCA9IFNDU1dfRkNUTF9TVEFSVF9GVU5DOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuYWN0bCA9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOwotCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuc3RjdGwgPSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EOworCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmNjID0gMTsKKwkJCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5mY3RsID0gU0NTV19GQ1RMX1NUQVJUX0ZVTkM7CisJCQljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCA9IFNDU1dfQUNUTF9TVEFSVF9QRU5EOworCQkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLnN0Y3RsID0KKwkJCQlTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EOwogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZmFrZV9pcmIgPSAwOwogCQkJaWYgKGNkZXYtPmhhbmRsZXIpCiAJCQkJY2Rldi0+aGFuZGxlcihjZGV2LCBjZGV2LT5wcml2YXRlLT5pbnRwYXJtLApAQCAtNzE4LDEzICs2NTgsMTAgQEAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlmIChzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYikgfHwgIXNjaC0+c2NoaWIucG1jdy5kbnYpCiAJCXJldHVybiAtRU5PREVWOwotCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKSB7Ci0JCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQotCQkJcmV0dXJuIC1FQlVTWTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCWlmIChzY2gtPnNjaGliLnNjc3cuYWN0bCAhPSAwKQorCWlmIChzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgIT0gMCkKIAkJcmV0dXJuIC1FQlVTWTsKKwlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJLyogQXJlIHdlIGRvaW5nIHBhdGggZ3JvdXBpbmc/ICovCiAJaWYgKCFjZGV2LT5wcml2YXRlLT5vcHRpb25zLnBncm91cCkgewogCQkvKiBObywgc2V0IHN0YXRlIG9mZmxpbmUgaW1tZWRpYXRlbHkuICovCkBAIC03OTksOSArNzM2LDkgQEAKIAkgKi8KIAlzdHNjaChzY2gtPnNjaGlkLCAmc2NoLT5zY2hpYik7CiAKLQlpZiAoc2NoLT5zY2hpYi5zY3N3LmFjdGwgIT0gMCB8fAotCSAgICAoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHsKKwlpZiAoc2Nzd19hY3RsKCZzY2gtPnNjaGliLnNjc3cpICE9IDAgfHwKKwkgICAgKHNjc3dfc3RjdGwoJnNjaC0+c2NoaWIuc2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCSAgICAoc2Nzd19zdGN0bCgmY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cpICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHsKIAkJLyoKIAkJICogTm8gZmluYWwgc3RhdHVzIHlldCBvciBmaW5hbCBzdGF0dXMgbm90IHlldCBkZWxpdmVyZWQKIAkJICogdG8gdGhlIGRldmljZSBkcml2ZXIuIENhbid0IGRvIHBhdGggdmVyZmljYXRpb24gbm93LApAQCAtODIzLDEzICs3NjAsMTMgQEAKIGNjd19kZXZpY2VfaXJxKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBlbnVtIGRldl9ldmVudCBkZXZfZXZlbnQpCiB7CiAJc3RydWN0IGlyYiAqaXJiOworCWludCBpc19jbWQ7CiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKKwlpc19jbWQgPSAhc2Nzd19pc190bSgmaXJiLT5zY3N3KTsKIAkvKiBDaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0LiAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgIAkJKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpCi0JICAgICYmICghaXJiLT5zY3N3LmNjKSkgewotCQlpZiAoKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJaWYgKCFzY3N3X2lzX3NvbGljaXRlZCgmaXJiLT5zY3N3KSkgeworCQlpZiAoaXNfY21kICYmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgJiYKIAkJICAgICFpcmItPmVzdy5lc3cwLmVydy5jb25zKSB7CiAJCQkvKiBVbml0IGNoZWNrIGJ1dCBubyBzZW5zZSBkYXRhLiBOZWVkIGJhc2ljIHNlbnNlLiAqLwogCQkJaWYgKGNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKSAhPSAwKQpAQCAtODQ4LDcgKzc4NSw3IEBACiAJfQogCS8qIEFjY3VtdWxhdGUgc3RhdHVzIGFuZCBmaW5kIG91dCBpZiBhIGJhc2ljIHNlbnNlIGlzIG5lZWRlZC4gKi8KIAljY3dfZGV2aWNlX2FjY3VtdWxhdGVfaXJiKGNkZXYsIGlyYik7Ci0JaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UpIHsKKwlpZiAoaXNfY21kICYmIGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UpIHsKIAkJaWYgKGNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKSA9PSAwKSB7CiAJCQljZGV2LT5wcml2YXRlLT5zdGF0ZSA9IERFVl9TVEFURV9XNFNFTlNFOwogCQl9CkBAIC04OTIsOSArODI5LDkgQEAKIAogCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCS8qIENoZWNrIGZvciB1bnNvbGljaXRlZCBpbnRlcnJ1cHQuICovCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAJCShTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKSB7Ci0JCWlmIChpcmItPnNjc3cuY2MgPT0gMSkKKwlpZiAoc2Nzd19zdGN0bCgmaXJiLT5zY3N3KSA9PQorCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgeworCQlpZiAoc2Nzd19jYygmaXJiLT5zY3N3KSA9PSAxKQogCQkJLyogQmFzaWMgc2Vuc2UgaGFzbid0IHN0YXJ0ZWQuIFRyeSBhZ2Fpbi4gKi8KIAkJCWNjd19kZXZpY2VfZG9fc2Vuc2UoY2RldiwgaXJiKTsKIAkJZWxzZSB7CkBAIC05MTIsNyArODQ5LDggQEAKIAkgKiBvbmx5IGRlbGl2ZXIgdGhlIGhhbHQvY2xlYXIgaW50ZXJydXB0IHRvIHRoZSBkZXZpY2UgZHJpdmVyIGFzIGlmIGl0CiAJICogaGFkIGtpbGxlZCB0aGUgb3JpZ2luYWwgcmVxdWVzdC4KIAkgKi8KLQlpZiAoaXJiLT5zY3N3LmZjdGwgJiAoU0NTV19GQ1RMX0NMRUFSX0ZVTkMgfCBTQ1NXX0ZDVExfSEFMVF9GVU5DKSkgeworCWlmIChzY3N3X2ZjdGwoJmlyYi0+c2NzdykgJgorCSAgICAoU0NTV19GQ1RMX0NMRUFSX0ZVTkMgfCBTQ1NXX0ZDVExfSEFMVF9GVU5DKSkgewogCQkvKiBSZXRyeSBCYXNpYyBTZW5zZSBpZiByZXF1ZXN0ZWQuICovCiAJCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAwOwpAQCAtOTg2LDEyICs5MjQsMTAgQEAKIAkJCSAgICAgIEVSUl9QVFIoLUVJTykpOwogfQogCi12b2lkIGRldmljZV9raWxsX2lvKHN0cnVjdCBzdWJjaGFubmVsICpzY2gpCit2b2lkIGNjd19kZXZpY2Vfa2lsbF9pbyhzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKIHsKIAlpbnQgcmV0OwotCXN0cnVjdCBjY3dfZGV2aWNlICpjZGV2OwogCi0JY2RldiA9IHNjaF9nZXRfY2RldihzY2gpOwogCXJldCA9IGNjd19kZXZpY2VfY2FuY2VsX2hhbHRfY2xlYXIoY2Rldik7CiAJaWYgKHJldCA9PSAtRUJVU1kpIHsKIAkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAzKkhaKTsKQEAgLTEwMjEsOSArOTU3LDkgQEAKIAljYXNlIERFVl9FVkVOVF9JTlRFUlJVUFQ6CiAJCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCQkvKiBDaGVjayBmb3IgdW5zb2xpY2l0ZWQgaW50ZXJydXB0LiAqLwotCQlpZiAoKGlyYi0+c2Nzdy5zdGN0bCA9PQorCQlpZiAoKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgPT0KIAkJICAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgJiYKLQkJICAgICghaXJiLT5zY3N3LmNjKSkKKwkJICAgICghc2Nzd19jYygmaXJiLT5zY3N3KSkpCiAJCQkvKiBGSVhNRTogd2Ugc2hvdWxkIHJlc3RhcnQgc3RsY2sgaGVyZSwgYnV0IHRoaXMKIAkJCSAqIGlzIGV4dHJlbWVseSB1bmxpa2VseSAuLi4gKi8KIAkJCWdvdG8gb3V0X3dha2V1cDsKQEAgLTEwNTUsMTcgKzk5MSwxNCBAQAogCWNjd19kZXZpY2Vfc2Vuc2VfaWRfc3RhcnQoY2Rldik7CiB9CiAKLXZvaWQKLWRldmljZV90cmlnZ2VyX3JlcHJvYmUoc3RydWN0IHN1YmNoYW5uZWwgKnNjaCkKK3ZvaWQgY2N3X2RldmljZV90cmlnZ2VyX3JlcHJvYmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpCiB7Ci0Jc3RydWN0IGNjd19kZXZpY2UgKmNkZXY7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKIAotCWNkZXYgPSBzY2hfZ2V0X2NkZXYoc2NoKTsKLQlpZiAoIWNkZXYpCi0JCXJldHVybjsKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX0RJU0NPTk5FQ1RFRCkKIAkJcmV0dXJuOwogCisJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAkvKiBVcGRhdGUgc29tZSB2YWx1ZXMuICovCiAJaWYgKHN0c2NoKHNjaC0+c2NoaWQsICZzY2gtPnNjaGliKSkKIAkJcmV0dXJuOwpAQCAtMTA4MSw3ICsxMDE0LDYgQEAKIAlzY2gtPnNjaGliLnBtY3cuZW5hID0gMDsKIAlpZiAoKHNjaC0+bHBtICYgKHNjaC0+bHBtIC0gMSkpICE9IDApCiAJCXNjaC0+c2NoaWIucG1jdy5tcCA9IDE7Ci0Jc2NoLT5zY2hpYi5wbWN3LmludHBhcm0gPSAodTMyKShhZGRyX3Qpc2NoOwogCS8qIFdlIHNob3VsZCBhbHNvIHVkYXRlIHNzZCBpbmZvLCBidXQgdGhpcyBoYXMgdG8gd2FpdC4gKi8KIAkvKiBDaGVjayBpZiB0aGlzIGlzIGFub3RoZXIgZGV2aWNlIHdoaWNoIGFwcGVhcmVkIG9uIHRoZSBzYW1lIHNjaC4gKi8KIAlpZiAoc2NoLT5zY2hpYi5wbWN3LmRldiAhPSBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8pIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2lkLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCmluZGV4IGNiYTcwMjA1Li4xYmRhYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9pZC5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX2lkLmMKQEAgLTE5Niw3ICsxOTYsNyBAQAogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7CiAKIAkvKiBDaGVjayB0aGUgZXJyb3IgY2FzZXMuICovCi0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2Vuc2UgSUQgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTIzNCwxMCArMjM0LDEwIEBACiAJCQkgICAgICBpcmItPmVjd1s2XSwgaXJiLT5lY3dbN10pOwogCQlyZXR1cm4gLUVBR0FJTjsKIAl9Ci0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAzKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgPT0gMykgewogCQl1OCBscG07CiAKLQkJbHBtID0gdG9faW9fcHJpdmF0ZShzY2gpLT5vcmIubHBtOworCQlscG0gPSB0b19pb19wcml2YXRlKHNjaCktPm9yYi5jbWQubHBtOwogCQlpZiAoKGxwbSAmIHNjaC0+c2NoaWIucG1jdy5waW0gJiBzY2gtPnNjaGliLnBtY3cucGFtKSAhPSAwKQogCQkJQ0lPX01TR19FVkVOVCg0LCAiU2Vuc2VJRCA6IHBhdGggJTAyWCBmb3IgZGV2aWNlICUwNHggIgogCQkJCSAgICAgICJvbiBzdWJjaGFubmVsIDAuJXguJTA0eCBpcyAiCkBAIC0yNDgsOSArMjQ4LDkgQEAKIAl9CiAKIAkvKiBEaWQgd2UgZ2V0IGEgcHJvcGVyIGFuc3dlciA/ICovCi0JaWYgKGlyYi0+c2Nzdy5jYyA9PSAwICYmIGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSAhPSAweEZGRkYgJiYKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAwICYmIGNkZXYtPnByaXZhdGUtPnNlbnNlaWQuY3VfdHlwZSAhPSAweEZGRkYgJiYKIAkgICAgY2Rldi0+cHJpdmF0ZS0+c2Vuc2VpZC5yZXNlcnZlZCA9PSAweEZGKSB7Ci0JCWlmIChpcmItPnNjc3cuY291bnQgPCBzaXplb2Yoc3RydWN0IHNlbnNlaWQpIC0gOCkKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY291bnQgPCBzaXplb2Yoc3RydWN0IHNlbnNlaWQpIC0gOCkKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmVzaWQgPSAxOwogCQlyZXR1cm4gMDsgLyogU3VjY2VzcyAqLwogCX0KQEAgLTI2MCw3ICsyNjAsNyBAQAogCQkgICAgICAic3ViY2hhbm5lbCAwLiV4LiUwNHggcmV0dXJucyBzdGF0dXMgJTAyWCUwMlhcbiIsCiAJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLAogCQkgICAgICBzY2gtPnNjaGlkLnNjaF9ubywKLQkJICAgICAgaXJiLT5zY3N3LmRzdGF0LCBpcmItPnNjc3cuY3N0YXQpOworCQkgICAgICBpcmItPnNjc3cuY21kLmRzdGF0LCBpcmItPnNjc3cuY21kLmNzdGF0KTsKIAlyZXR1cm4gLUVBR0FJTjsKIH0KIApAQCAtMjc3LDkgKzI3Nyw5IEBACiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAkvKiBSZXRyeSBzZW5zZSBpZCwgaWYgbmVlZGVkLiAqLwotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewotCQlpZiAoKGlyYi0+c2Nzdy5jYyA9PSAxKSB8fCAhaXJiLT5zY3N3LmFjdGwpIHsKKwkJaWYgKChpcmItPnNjc3cuY21kLmNjID09IDEpIHx8ICFpcmItPnNjc3cuY21kLmFjdGwpIHsKIAkJCXJldCA9IF9fY2N3X2RldmljZV9zZW5zZV9pZF9zdGFydChjZGV2KTsKIAkJCWlmIChyZXQgJiYgcmV0ICE9IC1FQlVTWSkKIAkJCQljY3dfZGV2aWNlX3NlbnNlX2lkX2RvbmUoY2RldiwgcmV0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX29wcy5jIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKaW5kZXggZjMwOGFkNS4uZWUxYTI4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2Vfb3BzLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxhc20vY2N3ZGV2Lmg+CiAjaW5jbHVkZSA8YXNtL2lkYWxzLmg+CiAjaW5jbHVkZSA8YXNtL2NocGlkLmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgogCiAjaW5jbHVkZSAiY2lvLmgiCiAjaW5jbHVkZSAiY2lvX2RlYnVnLmgiCkBAIC0xNzksOCArMTgwLDggQEAKIAkJCXJldHVybiAtRUJVU1k7CiAJfQogCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FIHx8Ci0JICAgICgoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKLQkgICAgICEoc2NoLT5zY2hpYi5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSkgfHwKKwkgICAgKChzY2gtPnNjaGliLnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKKwkgICAgICEoc2NoLT5zY2hpYi5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykpIHx8CiAJICAgIGNkZXYtPnByaXZhdGUtPmZsYWdzLmRvdmVyaWZ5KQogCQlyZXR1cm4gLUVCVVNZOwogCXJldCA9IGNpb19zZXRfb3B0aW9ucyAoc2NoLCBmbGFncyk7CkBAIC0zNzksNyArMzgwLDcgQEAKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgPT0gREVWX1NUQVRFX05PVF9PUEVSKQogCQlyZXR1cm4gLUVOT0RFVjsKIAlpZiAoY2Rldi0+cHJpdmF0ZS0+c3RhdGUgIT0gREVWX1NUQVRFX09OTElORSB8fAotCSAgICAhKHNjaC0+c2NoaWIuc2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCisJICAgICEoc2NoLT5zY2hpYi5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCiAJCXJldHVybiAtRUlOVkFMOwogCXJldHVybiBjaW9fcmVzdW1lKHNjaCk7CiB9CkBAIC00MDQsNyArNDA1LDcgQEAKIAkgKiAgLSBmYXN0IG5vdGlmaWNhdGlvbiB3YXMgcmVxdWVzdGVkIChwcmltYXJ5IHN0YXR1cykKIAkgKiAgLSB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzCiAJICovCi0Jc3RjdGwgPSBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5zdGN0bDsKKwlzdGN0bCA9IHNjc3dfc3RjdGwoJmNkZXYtPnByaXZhdGUtPmlyYi5zY3N3KTsKIAllbmRpbmdfc3RhdHVzID0gKHN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAogCQkoc3RjdGwgPT0gKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpIHx8CiAJCShzdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKQEAgLTUyOCwxNCArNTI5LDE1IEBACiAJCWNpb19kaXNhYmxlX3N1YmNoYW5uZWwoc2NoKTsgLy9GSVhNRTogcmV0dXJuIGNvZGU/CiAJCWdvdG8gb3V0X3VubG9jazsKIAl9Ci0JY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuYWN0bCB8PSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKKwljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCB8PSBTQ1NXX0FDVExfU1RBUlRfUEVORDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKHNjaC0+bG9jaywgZmxhZ3MpOwotCXdhaXRfZXZlbnQoY2Rldi0+cHJpdmF0ZS0+d2FpdF9xLCBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5hY3RsID09IDApOworCXdhaXRfZXZlbnQoY2Rldi0+cHJpdmF0ZS0+d2FpdF9xLAorCQkgICBjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuYWN0bCA9PSAwKTsKIAlzcGluX2xvY2tfaXJxc2F2ZShzY2gtPmxvY2ssIGZsYWdzKTsKIAljaW9fZGlzYWJsZV9zdWJjaGFubmVsKHNjaCk7IC8vRklYTUU6IHJldHVybiBjb2RlPwotCWlmICgoY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZHN0YXQgIT0KKwlpZiAoKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5kc3RhdCAhPQogCSAgICAgKERFVl9TVEFUX0NITl9FTkR8REVWX1NUQVRfREVWX0VORCkpIHx8Ci0JICAgIChjZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jc3RhdCAhPSAwKSkKKwkgICAgKGNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5jc3RhdCAhPSAwKSkKIAkJcmV0ID0gLUVJTzsKIAkvKiBDbGVhciBpcmIuICovCiAJbWVtc2V0KCZjZGV2LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CkBAIC01NjgsNiArNTcwLDEyMiBAQAogfQogRVhQT1JUX1NZTUJPTChjY3dfZGV2aWNlX2dldF9pZCk7CiAKKy8qKgorICogY2N3X2RldmljZV90bV9zdGFydF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGtleTogc3RvcmFnZSBrZXkgdG8gdXNlIGZvciBzdG9yYWdlIGFjY2VzcworICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIGNjdyBkZXZpY2UuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtLCB1OCBrZXkpCit7CisJc3RydWN0IHN1YmNoYW5uZWwgKnNjaDsKKwlpbnQgcmM7CisKKwlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOworCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKQorCQlyZXR1cm4gLUVJTzsKKwkvKiBBZGp1c3QgcmVxdWVzdGVkIHBhdGggbWFzayB0byBleGNsdWRlZCB2YXJpZWQgb2ZmIHBhdGhzLiAqLworCWlmIChscG0pIHsKKwkJbHBtICY9IHNjaC0+b3BtOworCQlpZiAobHBtID09IDApCisJCQlyZXR1cm4gLUVBQ0NFUzsKKwl9CisJcmMgPSBjaW9fdG1fc3RhcnRfa2V5KHNjaCwgdGN3LCBscG0sIGtleSk7CisJaWYgKHJjID09IDApCisJCWNkZXYtPnByaXZhdGUtPmludHBhcm0gPSBpbnRwYXJtOworCXJldHVybiByYzsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF9rZXkpOworCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkgLSBwZXJmb3JtIHN0YXJ0IGZ1bmN0aW9uCisgKiBAY2RldjogY2N3IGRldmljZSBvbiB3aGljaCB0byBwZXJmb3JtIHRoZSBzdGFydCBmdW5jdGlvbgorICogQHRjdzogdHJhbnNwb3J0LWNvbW1hbmQgd29yZCB0byBiZSBzdGFydGVkCisgKiBAaW50cGFybTogdXNlciBkZWZpbmVkIHBhcmFtZXRlciB0byBiZSBwYXNzZWQgdG8gdGhlIGludGVycnVwdCBoYW5kbGVyCisgKiBAbHBtOiBtYXNrIG9mIHBhdGhzIHRvIHVzZQorICogQGtleTogc3RvcmFnZSBrZXkgdG8gdXNlIGZvciBzdG9yYWdlIGFjY2VzcworICogQGV4cGlyZXM6IHRpbWUgc3BhbiBpbiBqaWZmaWVzIGFmdGVyIHdoaWNoIHRvIGFib3J0IHJlcXVlc3QKKyAqCisgKiBTdGFydCB0aGUgdGN3IG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbiBzdWNjZXNzLCBub24temVybworICogb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJCSAgICB1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSwgdTgga2V5LAorCQkJCSAgICBpbnQgZXhwaXJlcykKK3sKKwlpbnQgcmV0OworCisJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCBleHBpcmVzKTsKKwlyZXQgPSBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShjZGV2LCB0Y3csIGludHBhcm0sIGxwbSwga2V5KTsKKwlpZiAocmV0ICE9IDApCisJCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CisJcmV0dXJuIHJldDsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0X2tleSk7CisKKy8qKgorICogY2N3X2RldmljZV90bV9zdGFydCAtIHBlcmZvcm0gc3RhcnQgZnVuY3Rpb24KKyAqIEBjZGV2OiBjY3cgZGV2aWNlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBpbnRwYXJtOiB1c2VyIGRlZmluZWQgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgaW50ZXJydXB0IGhhbmRsZXIKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKgorICogU3RhcnQgdGhlIHRjdyBvbiB0aGUgZ2l2ZW4gY2N3IGRldmljZS4gUmV0dXJuIHplcm8gb24gc3VjY2Vzcywgbm9uLXplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IGNjd19kZXZpY2VfdG1fc3RhcnQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCXVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtKQoreworCXJldHVybiBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShjZGV2LCB0Y3csIGludHBhcm0sIGxwbSwKKwkJCQkgICAgICAgUEFHRV9ERUZBVUxUX0tFWSk7Cit9CitFWFBPUlRfU1lNQk9MKGNjd19kZXZpY2VfdG1fc3RhcnQpOworCisvKioKKyAqIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dCAtIHBlcmZvcm0gc3RhcnQgZnVuY3Rpb24KKyAqIEBjZGV2OiBjY3cgZGV2aWNlIG9uIHdoaWNoIHRvIHBlcmZvcm0gdGhlIHN0YXJ0IGZ1bmN0aW9uCisgKiBAdGN3OiB0cmFuc3BvcnQtY29tbWFuZCB3b3JkIHRvIGJlIHN0YXJ0ZWQKKyAqIEBpbnRwYXJtOiB1c2VyIGRlZmluZWQgcGFyYW1ldGVyIHRvIGJlIHBhc3NlZCB0byB0aGUgaW50ZXJydXB0IGhhbmRsZXIKKyAqIEBscG06IG1hc2sgb2YgcGF0aHMgdG8gdXNlCisgKiBAZXhwaXJlczogdGltZSBzcGFuIGluIGppZmZpZXMgYWZ0ZXIgd2hpY2ggdG8gYWJvcnQgcmVxdWVzdAorICoKKyAqIFN0YXJ0IHRoZSB0Y3cgb24gdGhlIGdpdmVuIGNjdyBkZXZpY2UuIFJldHVybiB6ZXJvIG9uIHN1Y2Nlc3MsIG5vbi16ZXJvCisgKiBvdGhlcndpc2UuCisgKi8KK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X3RpbWVvdXQoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCB0Y3cgKnRjdywKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIGludHBhcm0sIHU4IGxwbSwgaW50IGV4cGlyZXMpCit7CisJcmV0dXJuIGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoY2RldiwgdGN3LCBpbnRwYXJtLCBscG0sCisJCQkJCSAgICAgICBQQUdFX0RFRkFVTFRfS0VZLCBleHBpcmVzKTsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KTsKKworLyoqCisgKiBjY3dfZGV2aWNlX3RtX2ludHJnIC0gcGVyZm9ybSBpbnRlcnJvZ2F0ZSBmdW5jdGlvbgorICogQGNkZXY6IGNjdyBkZXZpY2Ugb24gd2hpY2ggdG8gcGVyZm9ybSB0aGUgaW50ZXJyb2dhdGUgZnVuY3Rpb24KKyAqCisgKiBQZXJmb3JtIGFuIGludGVycm9nYXRlIGZ1bmN0aW9uIG9uIHRoZSBnaXZlbiBjY3cgZGV2aWNlLiBSZXR1cm4gemVybyBvbgorICogc3VjY2Vzcywgbm9uLXplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgY2N3X2RldmljZV90bV9pbnRyZyhzdHJ1Y3QgY2N3X2RldmljZSAqY2RldikKK3sKKwlzdHJ1Y3Qgc3ViY2hhbm5lbCAqc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKKworCWlmIChjZGV2LT5wcml2YXRlLT5zdGF0ZSAhPSBERVZfU1RBVEVfT05MSU5FKQorCQlyZXR1cm4gLUVJTzsKKwlpZiAoIXNjc3dfaXNfdG0oJnNjaC0+c2NoaWIuc2NzdykgfHwKKwkgICAgIShzY3N3X2FjdGwoJnNjaC0+c2NoaWIuc2NzdykgfCBTQ1NXX0FDVExfU1RBUlRfUEVORCkpCisJCXJldHVybiAtRUlOVkFMOworCXJldHVybiBjaW9fdG1faW50cmcoc2NoKTsKK30KK0VYUE9SVF9TWU1CT0woY2N3X2RldmljZV90bV9pbnRyZyk7CisKIC8vIEZJWE1FOiB0aGVzZSBoYXZlIHRvIGdvOgogCiBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYwppbmRleCA1Y2Y3YmUwLi44NmJjOTRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9wZ2lkLmMKKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jCkBAIC0yOCwxMyArMjgsMTMgQEAKICAqIEhlbHBlciBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnRlcnJ1cHQgY29udGV4dCB0byBkZWNpZGUgd2hldGhlciBhbgogICogb3BlcmF0aW9uIHNob3VsZCBiZSB0cmllZCBhZ2Fpbi4KICAqLwotc3RhdGljIGludCBfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KHN0cnVjdCBzY3N3ICpzY3N3KQorc3RhdGljIGludCBfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KHVuaW9uIHNjc3cgKnNjc3cpCiB7CiAJLyogQ0MgaXMgb25seSB2YWxpZCBpZiBzdGFydCBmdW5jdGlvbiBiaXQgaXMgc2V0LiAqLwotCWlmICgoc2Nzdy0+ZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJiBzY3N3LT5jYyA9PSAxKQorCWlmICgoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgJiYgc2Nzdy0+Y21kLmNjID09IDEpCiAJCXJldHVybiAxOwogCS8qIE5vIG1vcmUgYWN0aXZpdHkuIEZvciBzZW5zZSBhbmQgc2V0IFBHSUQgd2Ugc3R1YmJvcm5seSB0cnkgYWdhaW4uICovCi0JaWYgKCFzY3N3LT5hY3RsKQorCWlmICghc2Nzdy0+Y21kLmFjdGwpCiAJCXJldHVybiAxOwogCXJldHVybiAwOwogfQpAQCAtMTI1LDcgKzEyNSw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2Vuc2UgUEdJRCBpZiByZXF1ZXN0ZWQuICovCiAJCWlmIChjZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSkgewogCQkJY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkgPSAwOwpAQCAtMTU1LDEwICsxNTUsMTAgQEAKIAkJCSAgICAgIGlyYi0+ZWN3WzZdLCBpcmItPmVjd1s3XSk7CiAJCXJldHVybiAtRUFHQUlOOwogCX0KLQlpZiAoaXJiLT5zY3N3LmNjID09IDMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAzKSB7CiAJCXU4IGxwbTsKIAotCQlscG0gPSB0b19pb19wcml2YXRlKHNjaCktPm9yYi5scG07CisJCWxwbSA9IHRvX2lvX3ByaXZhdGUoc2NoKS0+b3JiLmNtZC5scG07CiAJCUNJT19NU0dfRVZFTlQoMywgIlNOSUQgLSBEZXZpY2UgJTA0eCBvbiBTdWJjaGFubmVsIDAuJXguJTA0eCwiCiAJCQkgICAgICAiIGxwbSAlMDJYLCBiZWNhbWUgJ25vdCBvcGVyYXRpb25hbCdcbiIsCiAJCQkgICAgICBjZGV2LT5wcml2YXRlLT5kZXZfaWQuZGV2bm8sIHNjaC0+c2NoaWQuc3NpZCwKQEAgLTE4OCw3ICsxODgsNyBAQAogCiAJaXJiID0gKHN0cnVjdCBpcmIgKikgX19MQ19JUkI7CiAKLQlpZiAoaXJiLT5zY3N3LnN0Y3RsID09CisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgKFNDU1dfU1RDVExfU1RBVFVTX1BFTkQgfCBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykpIHsKIAkJaWYgKF9fY2N3X2RldmljZV9zaG91bGRfcmV0cnkoJmlyYi0+c2NzdykpIHsKIAkJCXJldCA9IF9fY2N3X2RldmljZV9zZW5zZV9wZ2lkX3N0YXJ0KGNkZXYpOwpAQCAtMzMxLDcgKzMzMSw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgU2V0IFBHSUQgaWYgcmVxdWVzdGVkLiAqLwogCQlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuaW50cmV0cnkpIHsKIAkJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5ID0gMDsKQEAgLTM1NSw3ICszNTUsNyBAQAogCQkJICAgICAgaXJiLT5lY3dbNl0sIGlyYi0+ZWN3WzddKTsKIAkJcmV0dXJuIC1FQUdBSU47CiAJfQotCWlmIChpcmItPnNjc3cuY2MgPT0gMykgeworCWlmIChpcmItPnNjc3cuY21kLmNjID09IDMpIHsKIAkJQ0lPX01TR19FVkVOVCgzLCAiU1BJRCAtIERldmljZSAlMDR4IG9uIFN1YmNoYW5uZWwgMC4leC4lMDR4LCIKIAkJCSAgICAgICIgbHBtICUwMlgsIGJlY2FtZSAnbm90IG9wZXJhdGlvbmFsJ1xuIiwKIAkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLApAQCAtMzc2LDcgKzM3Niw3IEBACiAKIAlzY2ggPSB0b19zdWJjaGFubmVsKGNkZXYtPmRldi5wYXJlbnQpOwogCWlyYiA9ICZjZGV2LT5wcml2YXRlLT5pcmI7Ci0JaWYgKGlyYi0+c2Nzdy5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMgfCBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpIHsKIAkJLyogUmV0cnkgTk9QIGlmIHJlcXVlc3RlZC4gKi8KIAkJaWYgKGNkZXYtPnByaXZhdGUtPmZsYWdzLmludHJldHJ5KSB7CiAJCQljZGV2LT5wcml2YXRlLT5mbGFncy5pbnRyZXRyeSA9IDA7CkBAIC0zODQsNyArMzg0LDcgQEAKIAkJfQogCQlyZXR1cm4gLUVUSU1FOwogCX0KLQlpZiAoaXJiLT5zY3N3LmNjID09IDMpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jYyA9PSAzKSB7CiAJCUNJT19NU0dfRVZFTlQoMywgIk5PUCAtIERldmljZSAlMDR4IG9uIFN1YmNoYW5uZWwgMC4leC4lMDR4LCIKIAkJCSAgICAgICIgbHBtICUwMlgsIGJlY2FtZSAnbm90IG9wZXJhdGlvbmFsJ1xuIiwKIAkJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgc2NoLT5zY2hpZC5zc2lkLApAQCAtNDM4LDcgKzQzOCw3IEBACiAKIAlpcmIgPSAoc3RydWN0IGlyYiAqKSBfX0xDX0lSQjsKIAotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0KKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQogCSAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgewogCQlpZiAoX19jY3dfZGV2aWNlX3Nob3VsZF9yZXRyeSgmaXJiLT5zY3N3KSkKIAkJCV9fY2N3X2RldmljZV92ZXJpZnlfc3RhcnQoY2Rldik7CkBAIC01NDQsNyArNTQ0LDcgQEAKIAogCWlyYiA9IChzdHJ1Y3QgaXJiICopIF9fTENfSVJCOwogCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCA9PQorCWlmIChpcmItPnNjc3cuY21kLnN0Y3RsID09CiAJICAgIChTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EIHwgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpKSB7CiAJCWlmIChfX2Njd19kZXZpY2Vfc2hvdWxkX3JldHJ5KCZpcmItPnNjc3cpKQogCQkJX19jY3dfZGV2aWNlX2Rpc2JhbmRfc3RhcnQoY2Rldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2RldmljZV9zdGF0dXMuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCmluZGV4IDRhMzg5OTMuLjFiMDNjNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3N0YXR1cy5jCkBAIC0yOSw5ICsyOSwxMSBAQAogc3RhdGljIHZvaWQKIGNjd19kZXZpY2VfbXNnX2NvbnRyb2xfY2hlY2soc3RydWN0IGNjd19kZXZpY2UgKmNkZXYsIHN0cnVjdCBpcmIgKmlyYikKIHsKLQlpZiAoIShpcmItPnNjc3cuY3N0YXQgJiAoU0NITl9TVEFUX0NITl9EQVRBX0NISyB8Ci0JCQkJIFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfAotCQkJCSBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykpKQorCWNoYXIgZGJmX3RleHRbMTVdOworCisJaWYgKCFzY3N3X2lzX3ZhbGlkX2NzdGF0KCZpcmItPnNjc3cpIHx8CisJICAgICEoc2Nzd19jc3RhdCgmaXJiLT5zY3N3KSAmIChTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwKKwkgICAgICBTQ0hOX1NUQVRfQ0hOX0NUUkxfQ0hLIHwgU0NITl9TVEFUX0lOVEZfQ1RSTF9DSEspKSkKIAkJcmV0dXJuOwogCUNJT19NU0dfRVZFTlQoMCwgIkNoYW5uZWwtQ2hlY2sgb3IgSW50ZXJmYWNlLUNvbnRyb2wtQ2hlY2sgIgogCQkgICAgICAicmVjZWl2ZWQiCkBAIC0zOSwxNSArNDEsMTAgQEAKIAkJICAgICAgIjogJTAyWCBzY2hfc3RhdCA6ICUwMlhcbiIsCiAJCSAgICAgIGNkZXYtPnByaXZhdGUtPmRldl9pZC5kZXZubywgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc3NpZCwKIAkJICAgICAgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vLAotCQkgICAgICBpcmItPnNjc3cuZHN0YXQsIGlyYi0+c2Nzdy5jc3RhdCk7Ci0KLQlpZiAoaXJiLT5zY3N3LmNjICE9IDMpIHsKLQkJY2hhciBkYmZfdGV4dFsxNV07Ci0KLQkJc3ByaW50ZihkYmZfdGV4dCwgImNoayV4IiwgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vKTsKLQkJQ0lPX1RSQUNFX0VWRU5UKDAsIGRiZl90ZXh0KTsKLQkJQ0lPX0hFWF9FVkVOVCgwLCBpcmIsIHNpemVvZiAoc3RydWN0IGlyYikpOwotCX0KKwkJICAgICAgc2Nzd19kc3RhdCgmaXJiLT5zY3N3KSwgc2Nzd19jc3RhdCgmaXJiLT5zY3N3KSk7CisJc3ByaW50ZihkYmZfdGV4dCwgImNoayV4IiwgY2Rldi0+cHJpdmF0ZS0+c2NoaWQuc2NoX25vKTsKKwlDSU9fVFJBQ0VfRVZFTlQoMCwgZGJmX3RleHQpOworCUNJT19IRVhfRVZFTlQoMCwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOwogfQogCiAvKgpAQCAtODEsMTIgKzc4LDEyIEBACiAJICogYXJlIGNvbmRpdGlvbiB0aGF0IGhhdmUgdG8gYmUgbWV0IGZvciB0aGUgZXh0ZW5kZWQgY29udHJvbAogCSAqIGJpdCB0byBoYXZlIG1lYW5pbmcuIFNpY2suCiAJICovCi0JY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZWN0bCA9IDA7Ci0JaWYgKChpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUykgJiYKLQkgICAgIShpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykpCi0JCWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmVjdGwgPSBpcmItPnNjc3cuZWN0bDsKKwljZGV2LT5wcml2YXRlLT5pcmIuc2Nzdy5jbWQuZWN0bCA9IDA7CisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9BTEVSVF9TVEFUVVMpICYmCisJICAgICEoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSkKKwkJY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuY21kLmVjdGwgPSBpcmItPnNjc3cuY21kLmVjdGw7CiAJLyogQ2hlY2sgaWYgZXh0ZW5kZWQgY29udHJvbCB3b3JkIGlzIHZhbGlkLiAqLwotCWlmICghY2Rldi0+cHJpdmF0ZS0+aXJiLnNjc3cuZWN0bCkKKwlpZiAoIWNkZXYtPnByaXZhdGUtPmlyYi5zY3N3LmNtZC5lY3RsKQogCQlyZXR1cm47CiAJLyogQ29weSBjb25jdXJyZW50IHNlbnNlIC8gbW9kZWwgZGVwZW5kZW50IGluZm9ybWF0aW9uLiAqLwogCW1lbWNweSAoJmNkZXYtPnByaXZhdGUtPmlyYi5lY3csIGlyYi0+ZWN3LCBzaXplb2YgKGlyYi0+ZWN3KSk7CkBAIC05OCwxMSArOTUsMTIgQEAKIHN0YXRpYyBpbnQKIGNjd19kZXZpY2VfYWNjdW11bGF0ZV9lc3dfdmFsaWQoc3RydWN0IGlyYiAqaXJiKQogewotCWlmICghaXJiLT5zY3N3LmVzd2YgJiYgaXJiLT5zY3N3LnN0Y3RsID09IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpCisJaWYgKCFpcmItPnNjc3cuY21kLmVzd2YgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkpCiAJCXJldHVybiAwOwotCWlmIChpcmItPnNjc3cuc3RjdGwgPT0gCi0JICAgIAkJKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCi0JICAgICEoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkKKwlpZiAoaXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICEoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCiAJCXJldHVybiAwOwogCXJldHVybiAxOwogfQpAQCAtMTI1LDcgKzEyMyw3IEBACiAJY2Rldl9pcmItPmVzdy5lc3cxLmxwdW0gPSBpcmItPmVzdy5lc3cxLmxwdW07CiAKIAkvKiBDb3B5IHN1YmNoYW5uZWwgbG9nb3V0IGluZm9ybWF0aW9uIGlmIGVzdyBpcyBvZiBmb3JtYXQgMC4gKi8KLQlpZiAoaXJiLT5zY3N3LmVzd2YpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5lc3dmKSB7CiAJCWNkZXZfc3VibG9nID0gJmNkZXZfaXJiLT5lc3cuZXN3MC5zdWJsb2c7CiAJCXN1YmxvZyA9ICZpcmItPmVzdy5lc3cwLnN1YmxvZzsKIAkJLyogQ29weSBleHRlbmRlZCBzdGF0dXMgZmxhZ3MuICovCkBAIC0xMzQsNyArMTMyLDcgQEAKIAkJICogQ29weSBmaWVsZHMgdGhhdCBoYXZlIGEgbWVhbmluZyBmb3IgY2hhbm5lbCBkYXRhIGNoZWNrCiAJCSAqIGNoYW5uZWwgY29udHJvbCBjaGVjayBhbmQgaW50ZXJmYWNlIGNvbnRyb2wgY2hlY2suCiAJCSAqLwotCQlpZiAoaXJiLT5zY3N3LmNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fREFUQV9DSEsgfAorCQlpZiAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmIChTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLIHwKIAkJCQkgICAgICAgU0NITl9TVEFUX0NITl9DVFJMX0NISyB8CiAJCQkJICAgICAgIFNDSE5fU1RBVF9JTlRGX0NUUkxfQ0hLKSkgewogCQkJLyogQ29weSBhbmNpbGxhcnkgcmVwb3J0IGJpdC4gKi8KQEAgLTE1NSw3ICsxNTMsNyBAQAogCQkvKiBDb3B5IGkvby1lcnJvciBhbGVydC4gKi8KIAkJY2Rldl9zdWJsb2ctPmlvZXJyID0gc3VibG9nLT5pb2VycjsKIAkJLyogQ29weSBjaGFubmVsIHBhdGggdGltZW91dCBiaXQuICovCi0JCWlmIChpcmItPnNjc3cuY3N0YXQgJiBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISykKIAkJCWNkZXZfaXJiLT5lc3cuZXN3MC5lcncuY3B0ID0gaXJiLT5lc3cuZXN3MC5lcncuY3B0OwogCQkvKiBDb3B5IGZhaWxpbmcgc3RvcmFnZSBhZGRyZXNzIHZhbGlkaXR5IGZsYWcuICovCiAJCWNkZXZfaXJiLT5lc3cuZXN3MC5lcncuZnNhdmYgPSBpcmItPmVzdy5lc3cwLmVydy5mc2F2ZjsKQEAgLTIwMCwyNCArMTk4LDI0IEBACiAJICogSWYgbm90LCB0aGUgcmVtYWluaW5nIGJpdCBoYXZlIG5vIG1lYW5pbmcgYW5kIHdlIG11c3QgaWdub3JlIHRoZW0uCiAJICogVGhlIGVzdyBpcyBub3QgbWVhbmluZ2Z1bCBhcyB3ZWxsLi4uCiAJICovCi0JaWYgKCEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpCisJaWYgKCEoc2Nzd19zdGN0bCgmaXJiLT5zY3N3KSAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQogCQlyZXR1cm47CiAKIAkvKiBDaGVjayBmb3IgY2hhbm5lbCBjaGVja3MgYW5kIGludGVyZmFjZSBjb250cm9sIGNoZWNrcy4gKi8KIAljY3dfZGV2aWNlX21zZ19jb250cm9sX2NoZWNrKGNkZXYsIGlyYik7CiAKIAkvKiBDaGVjayBmb3IgcGF0aCBub3Qgb3BlcmF0aW9uYWwuICovCi0JaWYgKGlyYi0+c2Nzdy5wbm8gJiYgaXJiLT5zY3N3LmZjdGwgIT0gMCAmJgotCSAgICAoIShpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgfHwKLQkgICAgIChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSkKKwlpZiAoc2Nzd19pc192YWxpZF9wbm8oJmlyYi0+c2NzdykgJiYgc2Nzd19wbm8oJmlyYi0+c2NzdykpCiAJCWNjd19kZXZpY2VfcGF0aF9ub3RvcGVyKGNkZXYpOwotCisJLyogTm8gaXJiIGFjY3VtdWxhdGlvbiBmb3IgdHJhbnNwb3J0IG1vZGUgaXJicy4gKi8KKwlpZiAoc2Nzd19pc190bSgmaXJiLT5zY3N3KSkgeworCQltZW1jcHkoJmNkZXYtPnByaXZhdGUtPmlyYiwgaXJiLCBzaXplb2Yoc3RydWN0IGlyYikpOworCQlyZXR1cm47CisJfQogCS8qCiAJICogRG9uJ3QgYWNjdW11bGF0ZSB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzLgogCSAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkgJiYKLQkgICAgKCFpcmItPnNjc3cuY2MpKQorCWlmICghc2Nzd19pc19zb2xpY2l0ZWQoJmlyYi0+c2NzdykpCiAJCXJldHVybjsKIAogCWNkZXZfaXJiID0gJmNkZXYtPnByaXZhdGUtPmlyYjsKQEAgLTIyNyw2MiArMjI1LDYzIEBACiAJICogc3RhdHVzIGF0IHRoZSBzdWJjaGFubmVsIGhhcyBiZWVuIGNsZWFyZWQgYW5kIHdlIG11c3Qgbm90IHBhc3MKIAkgKiBpbnRlcm1lZGlhdGUgYWNjdW11bGF0ZWQgc3RhdHVzIHRvIHRoZSBkZXZpY2UgZHJpdmVyLgogCSAqLwotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKQorCWlmIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfQ0xFQVJfRlVOQykKIAkJbWVtc2V0KCZjZGV2LT5wcml2YXRlLT5pcmIsIDAsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CiAKIAkvKiBDb3B5IGJpdHMgd2hpY2ggYXJlIHZhbGlkIG9ubHkgZm9yIHRoZSBzdGFydCBmdW5jdGlvbi4gKi8KLQlpZiAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgeworCWlmIChpcmItPnNjc3cuY21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykgewogCQkvKiBDb3B5IGtleS4gKi8KLQkJY2Rldl9pcmItPnNjc3cua2V5ID0gaXJiLT5zY3N3LmtleTsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmtleSA9IGlyYi0+c2Nzdy5jbWQua2V5OwogCQkvKiBDb3B5IHN1c3BlbmQgY29udHJvbCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LnNjdGwgPSBpcmItPnNjc3cuc2N0bDsKKwkJY2Rldl9pcmItPnNjc3cuY21kLnNjdGwgPSBpcmItPnNjc3cuY21kLnNjdGw7CiAJCS8qIEFjY3VtdWxhdGUgZGVmZXJyZWQgY29uZGl0aW9uIGNvZGUuICovCi0JCWNkZXZfaXJiLT5zY3N3LmNjIHw9IGlyYi0+c2Nzdy5jYzsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmNjIHw9IGlyYi0+c2Nzdy5jbWQuY2M7CiAJCS8qIENvcHkgY2N3IGZvcm1hdCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LmZtdCA9IGlyYi0+c2Nzdy5mbXQ7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5mbXQgPSBpcmItPnNjc3cuY21kLmZtdDsKIAkJLyogQ29weSBwcmVmZXRjaCBiaXQuICovCi0JCWNkZXZfaXJiLT5zY3N3LnBmY2ggPSBpcmItPnNjc3cucGZjaDsKKwkJY2Rldl9pcmItPnNjc3cuY21kLnBmY2ggPSBpcmItPnNjc3cuY21kLnBmY2g7CiAJCS8qIENvcHkgaW5pdGlhbC1zdGF0dXMtaW50ZXJydXB0aW9uLWNvbnRyb2wuICovCi0JCWNkZXZfaXJiLT5zY3N3LmlzaWMgPSBpcmItPnNjc3cuaXNpYzsKKwkJY2Rldl9pcmItPnNjc3cuY21kLmlzaWMgPSBpcmItPnNjc3cuY21kLmlzaWM7CiAJCS8qIENvcHkgYWRkcmVzcyBsaW1pdCBjaGVja2luZyBjb250cm9sLiAqLwotCQljZGV2X2lyYi0+c2Nzdy5hbGNjID0gaXJiLT5zY3N3LmFsY2M7CisJCWNkZXZfaXJiLT5zY3N3LmNtZC5hbGNjID0gaXJiLT5zY3N3LmNtZC5hbGNjOwogCQkvKiBDb3B5IHN1cHByZXNzIHN1c3BlbmQgYml0LiAqLwotCQljZGV2X2lyYi0+c2Nzdy5zc2kgPSBpcmItPnNjc3cuc3NpOworCQljZGV2X2lyYi0+c2Nzdy5jbWQuc3NpID0gaXJiLT5zY3N3LmNtZC5zc2k7CiAJfQogCiAJLyogVGFrZSBjYXJlIG9mIHRoZSBleHRlbmRlZCBjb250cm9sIGJpdCBhbmQgZXh0ZW5kZWQgY29udHJvbCB3b3JkLiAqLwogCWNjd19kZXZpY2VfYWNjdW11bGF0ZV9lY3coY2RldiwgaXJiKTsKIAkgICAgCiAJLyogQWNjdW11bGF0ZSBmdW5jdGlvbiBjb250cm9sLiAqLwotCWNkZXZfaXJiLT5zY3N3LmZjdGwgfD0gaXJiLT5zY3N3LmZjdGw7CisJY2Rldl9pcmItPnNjc3cuY21kLmZjdGwgfD0gaXJiLT5zY3N3LmNtZC5mY3RsOwogCS8qIENvcHkgYWN0aXZpdHkgY29udHJvbC4gKi8KLQljZGV2X2lyYi0+c2Nzdy5hY3RsPSBpcmItPnNjc3cuYWN0bDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuYWN0bCA9IGlyYi0+c2Nzdy5jbWQuYWN0bDsKIAkvKiBBY2N1bXVsYXRlIHN0YXR1cyBjb250cm9sLiAqLwotCWNkZXZfaXJiLT5zY3N3LnN0Y3RsIHw9IGlyYi0+c2Nzdy5zdGN0bDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuc3RjdGwgfD0gaXJiLT5zY3N3LmNtZC5zdGN0bDsKIAkvKgogCSAqIENvcHkgY2N3IGFkZHJlc3MgaWYgaXQgaXMgdmFsaWQuIFRoaXMgaXMgYSBiaXQgc2ltcGxpZmllZAogCSAqIGJ1dCBzaG91bGQgYmUgY2xvc2UgZW5vdWdoIGZvciBhbGwgcHJhY3RpY2FsIHB1cnBvc2VzLgogCSAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgfHwKLQkgICAgKChpcmItPnNjc3cuc3RjdGwgPT0gCisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgfHwKKwkgICAgKChpcmItPnNjc3cuY21kLnN0Y3RsID09CiAJICAgICAgKFNDU1dfU1RDVExfSU5URVJfU1RBVFVTfFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSAmJgotCSAgICAgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX0RFVkFDVCkgJiYKLQkgICAgIChpcmItPnNjc3cuYWN0bCAmIFNDU1dfQUNUTF9TQ0hBQ1QpKSB8fAotCSAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkKLQkJY2Rldl9pcmItPnNjc3cuY3BhID0gaXJiLT5zY3N3LmNwYTsKKwkgICAgIChpcmItPnNjc3cuY21kLmFjdGwgJiBTQ1NXX0FDVExfREVWQUNUKSAmJgorCSAgICAgKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TQ0hBQ1QpKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkpCisJCWNkZXZfaXJiLT5zY3N3LmNtZC5jcGEgPSBpcmItPnNjc3cuY21kLmNwYTsKIAkvKiBBY2N1bXVsYXRlIGRldmljZSBzdGF0dXMsIGJ1dCBub3QgdGhlIGRldmljZSBidXN5IGZsYWcuICovCi0JY2Rldl9pcmItPnNjc3cuZHN0YXQgJj0gfkRFVl9TVEFUX0JVU1k7CisJY2Rldl9pcmItPnNjc3cuY21kLmRzdGF0ICY9IH5ERVZfU1RBVF9CVVNZOwogCS8qIGRzdGF0IGlzIG5vdCBhbHdheXMgdmFsaWQuICovCi0JaWYgKGlyYi0+c2Nzdy5zdGN0bCAmCisJaWYgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgJgogCSAgICAoU0NTV19TVENUTF9QUklNX1NUQVRVUyB8IFNDU1dfU1RDVExfU0VDX1NUQVRVUwogCSAgICAgfCBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUyB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSkKLQkJY2Rldl9pcmItPnNjc3cuZHN0YXQgfD0gaXJiLT5zY3N3LmRzdGF0OworCQljZGV2X2lyYi0+c2Nzdy5jbWQuZHN0YXQgfD0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAkvKiBBY2N1bXVsYXRlIHN1YmNoYW5uZWwgc3RhdHVzLiAqLwotCWNkZXZfaXJiLT5zY3N3LmNzdGF0IHw9IGlyYi0+c2Nzdy5jc3RhdDsKKwljZGV2X2lyYi0+c2Nzdy5jbWQuY3N0YXQgfD0gaXJiLT5zY3N3LmNtZC5jc3RhdDsKIAkvKiBDb3B5IHJlc2lkdWFsIGNvdW50IGlmIGl0IGlzIHZhbGlkLiAqLwotCWlmICgoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKLQkgICAgKGlyYi0+c2Nzdy5jc3RhdCAmIH4oU0NITl9TVEFUX1BDSSB8IFNDSE5fU1RBVF9JTkNPUlJfTEVOKSkgPT0gMCkKLQkJY2Rldl9pcmItPnNjc3cuY291bnQgPSBpcmItPnNjc3cuY291bnQ7CisJaWYgKChpcmItPnNjc3cuY21kLnN0Y3RsICYgU0NTV19TVENUTF9QUklNX1NUQVRVUykgJiYKKwkgICAgKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiB+KFNDSE5fU1RBVF9QQ0kgfCBTQ0hOX1NUQVRfSU5DT1JSX0xFTikpCisJICAgICA9PSAwKQorCQljZGV2X2lyYi0+c2Nzdy5jbWQuY291bnQgPSBpcmItPnNjc3cuY21kLmNvdW50OwogCiAJLyogVGFrZSBjYXJlIG9mIGJpdHMgaW4gdGhlIGV4dGVuZGVkIHN0YXR1cyB3b3JkLiAqLwogCWNjd19kZXZpY2VfYWNjdW11bGF0ZV9lc3coY2RldiwgaXJiKTsKQEAgLTI5OSw3ICsyOTgsNyBAQAogCSAqCSBzZW5zZSBmYWNpbGl0eSBhdmFpbGFibGUvc3VwcG9ydGVkIHdoZW4gZW5hYmxpbmcgdGhlCiAJICoJIGNvbmN1cnJlbnQgc2Vuc2UgZmFjaWxpdHkuCiAJICovCi0JaWYgKChjZGV2X2lyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCisJaWYgKChjZGV2X2lyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgogCSAgICAhKGNkZXZfaXJiLT5lc3cuZXN3MC5lcncuY29ucykpCiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAxOwogfQpAQCAtMzE3LDcgKzMxNiw3IEBACiAJc2NoID0gdG9fc3ViY2hhbm5lbChjZGV2LT5kZXYucGFyZW50KTsKIAogCS8qIEEgc2Vuc2UgaXMgcmVxdWlyZWQsIGNhbiB3ZSBkbyBpdCBub3cgPyAqLwotCWlmICgoaXJiLT5zY3N3LmFjdGwgICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgIT0gMCkKKwlpZiAoc2Nzd19hY3RsKCZpcmItPnNjc3cpICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkKIAkJLyoKIAkJICogd2UgcmVjZWl2ZWQgYW4gVW5pdCBDaGVjayBidXQgd2UgaGF2ZSBubyBmaW5hbAogCQkgKiAgc3RhdHVzIHlldCwgdGhlcmVmb3JlIHdlIG11c3QgZGVsYXkgdGhlIFNFTlNFCkBAIC0zNTUsMjAgKzM1NCwxOCBAQAogCSAqIElmIG5vdCwgdGhlIHJlbWFpbmluZyBiaXQgaGF2ZSBubyBtZWFuaW5nIGFuZCB3ZSBtdXN0IGlnbm9yZSB0aGVtLgogCSAqIFRoZSBlc3cgaXMgbm90IG1lYW5pbmdmdWwgYXMgd2VsbC4uLgogCSAqLwotCWlmICghKGlyYi0+c2Nzdy5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKQorCWlmICghKHNjc3dfc3RjdGwoJmlyYi0+c2NzdykgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkKIAkJcmV0dXJuOwogCiAJLyogQ2hlY2sgZm9yIGNoYW5uZWwgY2hlY2tzIGFuZCBpbnRlcmZhY2UgY29udHJvbCBjaGVja3MuICovCiAJY2N3X2RldmljZV9tc2dfY29udHJvbF9jaGVjayhjZGV2LCBpcmIpOwogCiAJLyogQ2hlY2sgZm9yIHBhdGggbm90IG9wZXJhdGlvbmFsLiAqLwotCWlmIChpcmItPnNjc3cucG5vICYmIGlyYi0+c2Nzdy5mY3RsICE9IDAgJiYKLQkgICAgKCEoaXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8Ci0JICAgICAoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpCisJaWYgKHNjc3dfaXNfdmFsaWRfcG5vKCZpcmItPnNjc3cpICYmIHNjc3dfcG5vKCZpcmItPnNjc3cpKQogCQljY3dfZGV2aWNlX3BhdGhfbm90b3BlcihjZGV2KTsKIAotCWlmICghKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spICYmCi0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9DSE5fRU5EKSkgeworCWlmICghKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSAmJgorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpKSB7CiAJCWNkZXYtPnByaXZhdGUtPmlyYi5lc3cuZXN3MC5lcncuY29ucyA9IDE7CiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAwOwogCX0KQEAgLTM4NiwxMSArMzgzLDExIEBACiBjY3dfZGV2aWNlX2FjY3VtdWxhdGVfYW5kX3NlbnNlKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2LCBzdHJ1Y3QgaXJiICppcmIpCiB7CiAJY2N3X2RldmljZV9hY2N1bXVsYXRlX2lyYihjZGV2LCBpcmIpOwotCWlmICgoaXJiLT5zY3N3LmFjdGwgICYgKFNDU1dfQUNUTF9ERVZBQ1QgfCBTQ1NXX0FDVExfU0NIQUNUKSkgIT0gMCkKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuYWN0bCAgJiAoU0NTV19BQ1RMX0RFVkFDVCB8IFNDU1dfQUNUTF9TQ0hBQ1QpKSAhPSAwKQogCQlyZXR1cm4gLUVCVVNZOwogCS8qIENoZWNrIGZvciBiYXNpYyBzZW5zZS4gKi8KIAlpZiAoY2Rldi0+cHJpdmF0ZS0+ZmxhZ3MuZG9zZW5zZSAmJgotCSAgICAhKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spKSB7CisJICAgICEoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spKSB7CiAJCWNkZXYtPnByaXZhdGUtPmlyYi5lc3cuZXN3MC5lcncuY29ucyA9IDE7CiAJCWNkZXYtPnByaXZhdGUtPmZsYWdzLmRvc2Vuc2UgPSAwOwogCQlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vZmN4LmMgYi9kcml2ZXJzL3MzOTAvY2lvL2ZjeC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxNjc3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL2ZjeC5jCkBAIC0wLDAgKzEsMzUwIEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgYXNzZW1ibGluZyBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KKyNpbmNsdWRlICJjaW8uaCIKKworLyoqCisgKiB0Y3dfZ2V0X2ludHJnIC0gcmV0dXJuIHBvaW50ZXIgdG8gYXNzb2NpYXRlZCBpbnRlcnJvZ2F0ZSB0Y3cKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIHRjdworICoKKyAqIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIGludGVycm9nYXRlIHRjdyBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCB0Y3cKKyAqIG9yICVOVUxMIGlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgaW50ZXJyb2dhdGUgdGN3LgorICovCitzdHJ1Y3QgdGN3ICp0Y3dfZ2V0X2ludHJnKHN0cnVjdCB0Y3cgKnRjdykKK3sKKwlyZXR1cm4gKHN0cnVjdCB0Y3cgKikgKChhZGRyX3QpIHRjdy0+aW50cmcpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfZ2V0X2ludHJnKTsKKworLyoqCisgKiB0Y3dfZ2V0X2RhdGEgLSByZXR1cm4gcG9pbnRlciB0byBpbnB1dC9vdXRwdXQgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqCisgKiBSZXR1cm4gdGhlIGlucHV0IG9yIG91dHB1dCBkYXRhIGFkZHJlc3Mgc3BlY2lmaWVkIGluIHRoZSB0Y3cgZGVwZW5kaW5nCisgKiBvbiB3aGV0aGVyIHRoZSByLWJpdCBvciB0aGUgdy1iaXQgaXMgc2V0LiBJZiBuZWl0aGVyIGJpdCBpcyBzZXQsIHJldHVybgorICogJU5VTEwuCisgKi8KK3ZvaWQgKnRjd19nZXRfZGF0YShzdHJ1Y3QgdGN3ICp0Y3cpCit7CisJaWYgKHRjdy0+cikKKwkJcmV0dXJuICh2b2lkICopICgoYWRkcl90KSB0Y3ctPmlucHV0KTsKKwlpZiAodGN3LT53KQorCQlyZXR1cm4gKHZvaWQgKikgKChhZGRyX3QpIHRjdy0+b3V0cHV0KTsKKwlyZXR1cm4gTlVMTDsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF9kYXRhKTsKKworLyoqCisgKiB0Y3dfZ2V0X3RjY2IgLSByZXR1cm4gcG9pbnRlciB0byB0Y2NiIGFzc29jaWF0ZWQgd2l0aCB0Y3cKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIHRjdworICoKKyAqIFJldHVybiBwb2ludGVyIHRvIHRoZSB0Y2NiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRjdy4KKyAqLworc3RydWN0IHRjY2IgKnRjd19nZXRfdGNjYihzdHJ1Y3QgdGN3ICp0Y3cpCit7CisJcmV0dXJuIChzdHJ1Y3QgdGNjYiAqKSAoKGFkZHJfdCkgdGN3LT50Y2NiKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2dldF90Y2NiKTsKKworLyoqCisgKiB0Y3dfZ2V0X3RzYiAtIHJldHVybiBwb2ludGVyIHRvIHRzYiBhc3NvY2lhdGVkIHdpdGggdGN3CisgKiBAdGN3OiBwb2ludGVyIHRvIHRoZSB0Y3cKKyAqCisgKiBSZXR1cm4gcG9pbnRlciB0byB0aGUgdHNiIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHRjdy4KKyAqLworc3RydWN0IHRzYiAqdGN3X2dldF90c2Ioc3RydWN0IHRjdyAqdGN3KQoreworCXJldHVybiAoc3RydWN0IHRzYiAqKSAoKGFkZHJfdCkgdGN3LT50c2IpOworfQorRVhQT1JUX1NZTUJPTCh0Y3dfZ2V0X3RzYik7CisKKy8qKgorICogdGN3X2luaXQgLSBpbml0aWFsaXplIHRjdyBkYXRhIHN0cnVjdHVyZQorICogQHRjdzogcG9pbnRlciB0byB0aGUgdGN3IHRvIGJlIGluaXRpYWxpemVkCisgKiBAcjogaW5pdGlhbCB2YWx1ZSBvZiB0aGUgci1iaXQKKyAqIEB3OiBpbml0aWFsIHZhbHVlIG9mIHRoZSB3LWJpdAorICoKKyAqIEluaXRpYWxpemUgYWxsIGZpZWxkcyBvZiB0aGUgc3BlY2lmaWVkIHRjdyBkYXRhIHN0cnVjdHVyZSB3aXRoIHplcm8gYW5kCisgKiBmaWxsIGluIHRoZSBmb3JtYXQsIGZsYWdzLCByIGFuZCB3IGZpZWxkcy4KKyAqLwordm9pZCB0Y3dfaW5pdChzdHJ1Y3QgdGN3ICp0Y3csIGludCByLCBpbnQgdykKK3sKKwltZW1zZXQodGN3LCAwLCBzaXplb2Yoc3RydWN0IHRjdykpOworCXRjdy0+Zm9ybWF0ID0gVENXX0ZPUk1BVF9ERUZBVUxUOworCXRjdy0+ZmxhZ3MgPSBUQ1dfRkxBR1NfVElEQVdfRk9STUFUKFRDV19USURBV19GT1JNQVRfREVGQVVMVCk7CisJaWYgKHIpCisJCXRjdy0+ciA9IDE7CisJaWYgKHcpCisJCXRjdy0+dyA9IDE7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19pbml0KTsKKworc3RhdGljIGlubGluZSBzaXplX3QgdGNhX3NpemUoc3RydWN0IHRjY2IgKnRjY2IpCit7CisJcmV0dXJuIHRjY2ItPnRjYWgudGNhbCAtIDEyOworfQorCitzdGF0aWMgdTMyIGNhbGNfZGN3X2NvdW50KHN0cnVjdCB0Y2NiICp0Y2NiKQoreworCWludCBvZmZzZXQ7CisJc3RydWN0IGRjdyAqZGN3OworCXUzMiBjb3VudCA9IDA7CisJc2l6ZV90IHNpemU7CisKKwlzaXplID0gdGNhX3NpemUodGNjYik7CisJZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBzaXplOykgeworCQlkY3cgPSAoc3RydWN0IGRjdyAqKSAmdGNjYi0+dGNhW29mZnNldF07CisJCWNvdW50ICs9IGRjdy0+Y291bnQ7CisJCWlmICghKGRjdy0+ZmxhZ3MgJiBEQ1dfRkxBR1NfQ0MpKQorCQkJYnJlYWs7CisJCW9mZnNldCArPSBzaXplb2Yoc3RydWN0IGRjdykgKyBBTElHTigoaW50KSBkY3ctPmNkX2NvdW50LCA0KTsKKwl9CisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgdTMyIGNhbGNfY2JjX3NpemUoc3RydWN0IHRpZGF3ICp0aWRhdywgaW50IG51bSkKK3sKKwlpbnQgaTsKKwl1MzIgY2JjX2RhdGE7CisJdTMyIGNiY19jb3VudCA9IDA7CisJdTY0IGRhdGFfY291bnQgPSAwOworCisJZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CisJCWlmICh0aWRhd1tpXS5mbGFncyAmIFRJREFXX0ZMQUdTX0xBU1QpCisJCQlicmVhazsKKwkJLyogVE9ETzogZmluZCBvdXQgaWYgcGFkZGluZyBhcHBsaWVzIHRvIHRvdGFsIG9mIGRhdGEKKwkJICogdHJhbnNmZXJyZWQgb3IgZGF0YSB0cmFuc2ZlcnJlZCBieSB0aGlzIHRpZGF3LiBBc3N1bXB0aW9uOgorCQkgKiBhcHBsaWVzIHRvIHRvdGFsLiAqLworCQlkYXRhX2NvdW50ICs9IHRpZGF3W2ldLmNvdW50OworCQlpZiAodGlkYXdbaV0uZmxhZ3MgJiBUSURBV19GTEFHU19JTlNFUlRfQ0JDKSB7CisJCQljYmNfZGF0YSA9IDQgKyBBTElHTihkYXRhX2NvdW50LCA0KSAtIGRhdGFfY291bnQ7CisJCQljYmNfY291bnQgKz0gY2JjX2RhdGE7CisJCQlkYXRhX2NvdW50ICs9IGNiY19kYXRhOworCQl9CisJfQorCXJldHVybiBjYmNfY291bnQ7Cit9CisKKy8qKgorICogdGN3X2ZpbmFsaXplIC0gZmluYWxpemUgdGN3IGxlbmd0aCBmaWVsZHMgYW5kIHRpZGF3IGxpc3QKKyAqIEB0Y3c6IHBvaW50ZXIgdG8gdGhlIHRjdworICogQG51bV90aWRhd3M6IHRoZSBudW1iZXIgb2YgdGlkYXdzIHVzZWQgdG8gYWRkcmVzcyBpbnB1dC9vdXRwdXQgZGF0YSBvciB6ZXJvCisgKiBpZiBubyB0aWRhIGlzIHVzZWQKKyAqCisgKiBDYWxjdWxhdGUgdGhlIGlucHV0LS9vdXRwdXQtY291bnQgYW5kIHRjY2JsIGZpZWxkIGluIHRoZSB0Y3csIGFkZCBhCisgKiB0Y2F0IHRoZSB0Y2NiIGFuZCB0ZXJtaW5hdGUgdGhlIGRhdGEgdGlkYXcgbGlzdCBpZiB1c2VkLgorICoKKyAqIE5vdGU6IGluIGNhc2UgaW5wdXQtIG9yIG91dHB1dC10aWRhIGlzIHVzZWQsIHRoZSB0aWRhdy1saXN0IG11c3QgYmUgc3RvcmVkCisgKiBpbiBjb250aWd1b3VzIHN0b3JhZ2UgKG5vIHR0aWMpLiBUaGUgdGNhbCBmaWVsZCBpbiB0aGUgdGNjYiBtdXN0IGJlCisgKiB1cC10by1kYXRlLgorICovCit2b2lkIHRjd19maW5hbGl6ZShzdHJ1Y3QgdGN3ICp0Y3csIGludCBudW1fdGlkYXdzKQoreworCXN0cnVjdCB0aWRhdyAqdGlkYXc7CisJc3RydWN0IHRjY2IgKnRjY2I7CisJc3RydWN0IHRjY2JfdGNhdCAqdGNhdDsKKwl1MzIgY291bnQ7CisKKwkvKiBUZXJtaW5hdGUgdGlkYXcgbGlzdC4gKi8KKwl0aWRhdyA9IHRjd19nZXRfZGF0YSh0Y3cpOworCWlmIChudW1fdGlkYXdzID4gMCkKKwkJdGlkYXdbbnVtX3RpZGF3cyAtIDFdLmZsYWdzIHw9IFRJREFXX0ZMQUdTX0xBU1Q7CisJLyogQWRkIHRjYXQgdG8gdGNjYi4gKi8KKwl0Y2NiID0gdGN3X2dldF90Y2NiKHRjdyk7CisJdGNhdCA9IChzdHJ1Y3QgdGNjYl90Y2F0ICopICZ0Y2NiLT50Y2FbdGNhX3NpemUodGNjYildOworCW1lbXNldCh0Y2F0LCAwLCBzaXplb2YodGNhdCkpOworCS8qIENhbGN1bGF0ZSB0Y3cgaW5wdXQvb3V0cHV0IGNvdW50IGFuZCB0Y2F0IHRyYW5zcG9ydCBjb3VudC4gKi8KKwljb3VudCA9IGNhbGNfZGN3X2NvdW50KHRjY2IpOworCWlmICh0Y3ctPncgJiYgKHRjdy0+ZmxhZ3MgJiBUQ1dfRkxBR1NfT1VUUFVUX1RJREEpKQorCQljb3VudCArPSBjYWxjX2NiY19zaXplKHRpZGF3LCBudW1fdGlkYXdzKTsKKwlpZiAodGN3LT5yKQorCQl0Y3ctPmlucHV0X2NvdW50ID0gY291bnQ7CisJZWxzZSBpZiAodGN3LT53KQorCQl0Y3ctPm91dHB1dF9jb3VudCA9IGNvdW50OworCXRjYXQtPmNvdW50ID0gQUxJR04oY291bnQsIDQpICsgNDsKKwkvKiBDYWxjdWxhdGUgdGNjYmwuICovCisJdGN3LT50Y2NibCA9IChzaXplb2Yoc3RydWN0IHRjY2IpICsgdGNhX3NpemUodGNjYikgKworCQkgICAgICBzaXplb2Yoc3RydWN0IHRjY2JfdGNhdCkgLSAyMCkgPj4gMjsKK30KK0VYUE9SVF9TWU1CT0wodGN3X2ZpbmFsaXplKTsKKworLyoqCisgKiB0Y3dfc2V0X2ludHJnIC0gc2V0IHRoZSBpbnRlcnJvZ2F0ZSB0Y3cgYWRkcmVzcyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAaW50cmdfdGN3OiB0aGUgYWRkcmVzcyBvZiB0aGUgaW50ZXJyb2dhdGUgdGN3CisgKgorICogU2V0IHRoZSBhZGRyZXNzIG9mIHRoZSBpbnRlcnJvZ2F0ZSB0Y3cgaW4gdGhlIHNwZWNpZmllZCB0Y3cuCisgKi8KK3ZvaWQgdGN3X3NldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3csIHN0cnVjdCB0Y3cgKmludHJnX3RjdykKK3sKKwl0Y3ctPmludHJnID0gKHUzMikgKChhZGRyX3QpIGludHJnX3Rjdyk7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfaW50cmcpOworCisvKioKKyAqIHRjd19zZXRfZGF0YSAtIHNldCBkYXRhIGFkZHJlc3MgYW5kIHRpZGEgZmxhZyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAZGF0YTogdGhlIGRhdGEgYWRkcmVzcworICogQHVzZV90aWRhbDogemVybyBvZiB0aGUgZGF0YSBhZGRyZXNzIHNwZWNpZmllcyBhIGNvbnRpZ3VvdXMgYmxvY2sgb2YgZGF0YSwKKyAqIG5vbi16ZXJvIGlmIGl0IHNwZWNpZmllcyBhIGxpc3QgaWYgdGlkYXdzLgorICoKKyAqIFNldCB0aGUgaW5wdXQvb3V0cHV0IGRhdGEgYWRkcmVzcyBvZiBhIHRjdyAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUKKyAqIHItZmxhZyBhbmQgdy1mbGFnKS4gSWYgQHVzZV90aWRhbCBpcyBub24temVybywgdGhlIGNvcnJlc3BvbmRpbmcgdGlkYSBmbGFnCisgKiBpcyBzZXQgYXMgd2VsbC4KKyAqLwordm9pZCB0Y3dfc2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3LCB2b2lkICpkYXRhLCBpbnQgdXNlX3RpZGFsKQoreworCWlmICh0Y3ctPnIpIHsKKwkJdGN3LT5pbnB1dCA9ICh1NjQpICgoYWRkcl90KSBkYXRhKTsKKwkJaWYgKHVzZV90aWRhbCkKKwkJCXRjdy0+ZmxhZ3MgfD0gVENXX0ZMQUdTX0lOUFVUX1RJREE7CisJfSBlbHNlIGlmICh0Y3ctPncpIHsKKwkJdGN3LT5vdXRwdXQgPSAodTY0KSAoKGFkZHJfdCkgZGF0YSk7CisJCWlmICh1c2VfdGlkYWwpCisJCQl0Y3ctPmZsYWdzIHw9IFRDV19GTEFHU19PVVRQVVRfVElEQTsKKwl9Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfZGF0YSk7CisKKy8qKgorICogdGN3X3NldF90Y2NiIC0gc2V0IHRjY2IgYWRkcmVzcyBvZiBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAdGNjYjogdGhlIHRjY2IgYWRkcmVzcworICoKKyAqIFNldCB0aGUgYWRkcmVzcyBvZiB0aGUgdGNjYiBpbiB0aGUgc3BlY2lmaWVkIHRjdy4KKyAqLwordm9pZCB0Y3dfc2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGNjYiAqdGNjYikKK3sKKwl0Y3ctPnRjY2IgPSAodTY0KSAoKGFkZHJfdCkgdGNjYik7Cit9CitFWFBPUlRfU1lNQk9MKHRjd19zZXRfdGNjYik7CisKKy8qKgorICogdGN3X3NldF90c2IgLSBzZXQgdHNiIGFkZHJlc3Mgb2YgYSB0Y3cKKyAqIEB0Y3c6IHRoZSB0Y3cgYWRkcmVzcworICogQHRzYjogdGhlIHRzYiBhZGRyZXNzCisgKgorICogU2V0IHRoZSBhZGRyZXNzIG9mIHRoZSB0c2IgaW4gdGhlIHNwZWNpZmllZCB0Y3cuCisgKi8KK3ZvaWQgdGN3X3NldF90c2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdHNiICp0c2IpCit7CisJdGN3LT50c2IgPSAodTY0KSAoKGFkZHJfdCkgdHNiKTsKK30KK0VYUE9SVF9TWU1CT0wodGN3X3NldF90c2IpOworCisvKioKKyAqIHRjY2JfaW5pdCAtIGluaXRpYWxpemUgdGNjYgorICogQHRjY2I6IHRoZSB0Y2NiIGFkZHJlc3MKKyAqIEBzaXplOiB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSB0Y2NiCisgKiBAc2FjOiB0aGUgc2VydmljZS1hY3Rpb24tY29kZSB0byBiZSB1c2VyCisgKgorICogSW5pdGlhbGl6ZSB0aGUgaGVhZGVyIG9mIHRoZSBzcGVjaWZpZWQgdGNjYiBieSByZXNldHRpbmcgYWxsIHZhbHVlcyB0byB6ZXJvCisgKiBhbmQgZmlsbGluZyBpbiBkZWZhdWx0cyBmb3IgZm9ybWF0LCBzYWMgYW5kIGluaXRpYWwgdGNhbCBmaWVsZHMuCisgKi8KK3ZvaWQgdGNjYl9pbml0KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3Qgc2l6ZSwgdTMyIHNhYykKK3sKKwltZW1zZXQodGNjYiwgMCwgc2l6ZSk7CisJdGNjYi0+dGNhaC5mb3JtYXQgPSBUQ0NCX0ZPUk1BVF9ERUZBVUxUOworCXRjY2ItPnRjYWguc2FjID0gc2FjOworCXRjY2ItPnRjYWgudGNhbCA9IDEyOworfQorRVhQT1JUX1NZTUJPTCh0Y2NiX2luaXQpOworCisvKioKKyAqIHRzYl9pbml0IC0gaW5pdGlhbGl6ZSB0c2IKKyAqIEB0c2I6IHRoZSB0c2IgYWRkcmVzcworICoKKyAqIEluaXRpYWxpemUgdGhlIHNwZWNpZmllZCB0c2IgYnkgcmVzZXR0aW5nIGFsbCB2YWx1ZXMgdG8gemVyby4KKyAqLwordm9pZCB0c2JfaW5pdChzdHJ1Y3QgdHNiICp0c2IpCit7CisJbWVtc2V0KHRzYiwgMCwgc2l6ZW9mKHRzYikpOworfQorRVhQT1JUX1NZTUJPTCh0c2JfaW5pdCk7CisKKy8qKgorICogdGNjYl9hZGRfZGN3IC0gYWRkIGEgZGN3IHRvIHRoZSB0Y2NiCisgKiBAdGNjYjogdGhlIHRjY2IgYWRkcmVzcworICogQHRjY2Jfc2l6ZTogdGhlIG1heGltdW0gdGNjYiBzaXplCisgKiBAY21kOiB0aGUgZGN3IGNvbW1hbmQKKyAqIEBmbGFnczogZmxhZ3MgZm9yIHRoZSBkY3cKKyAqIEBjZDogcG9pbnRlciB0byBjb250cm9sIGRhdGEgZm9yIHRoaXMgZGN3IG9yIE5VTEwgaWYgbm9uZSBpcyByZXF1aXJlZAorICogQGNkX2NvdW50OiBudW1iZXIgb2YgY29udHJvbCBkYXRhIGJ5dGVzIGZvciB0aGlzIGRjdworICogQGNvdW50OiBudW1iZXIgb2YgZGF0YSBieXRlcyBmb3IgdGhpcyBkY3cKKyAqCisgKiBBZGQgYSBuZXcgZGN3IHRvIHRoZSBzcGVjaWZpZWQgdGNjYiBieSB3cml0aW5nIHRoZSBkY3cgaW5mb3JtYXRpb24gc3BlY2lmaWVkCisgKiBieSBAY21kLCBAZmxhZ3MsIEBjZCwgQGNkX2NvdW50IGFuZCBAY291bnQgdG8gdGhlIHRjYSBvZiB0aGUgdGNjYi4gUmV0dXJuCisgKiBhIHBvaW50ZXIgdG8gdGhlIG5ld2x5IGFkZGVkIGRjdyBvbiBzdWNjZXNzIG9yIC0lRU5PU1BDIGlmIHRoZSBuZXcgZGN3CisgKiB3b3VsZCBleGNlZWQgdGhlIGF2YWlsYWJsZSBzcGFjZSBhcyBkZWZpbmVkIGJ5IEB0Y2NiX3NpemUuCisgKgorICogTm90ZTogdGhlIHRjYWwgZmllbGQgb2YgdGhlIHRjY2IgaGVhZGVyIHdpbGwgYmUgdXBkYXRlcyB0byByZWZsZWN0IGFkZGVkCisgKiBjb250ZW50LgorICovCitzdHJ1Y3QgZGN3ICp0Y2NiX2FkZF9kY3coc3RydWN0IHRjY2IgKnRjY2IsIHNpemVfdCB0Y2NiX3NpemUsIHU4IGNtZCwgdTggZmxhZ3MsCisJCQkgdm9pZCAqY2QsIHU4IGNkX2NvdW50LCB1MzIgY291bnQpCit7CisJc3RydWN0IGRjdyAqZGN3OworCWludCBzaXplOworCWludCB0Y2Ffb2Zmc2V0OworCisJLyogQ2hlY2sgZm9yIHNwYWNlLiAqLworCXRjYV9vZmZzZXQgPSB0Y2Ffc2l6ZSh0Y2NiKTsKKwlzaXplID0gQUxJR04oc2l6ZW9mKHN0cnVjdCBkY3cpICsgY2RfY291bnQsIDQpOworCWlmIChzaXplb2Yoc3RydWN0IHRjY2JfdGNhaCkgKyB0Y2Ffb2Zmc2V0ICsgc2l6ZSArCisJICAgIHNpemVvZihzdHJ1Y3QgdGNjYl90Y2F0KSA+IHRjY2Jfc2l6ZSkKKwkJcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CisJLyogQWRkIGRjdyB0byB0Y2EuICovCisJZGN3ID0gKHN0cnVjdCBkY3cgKikgJnRjY2ItPnRjYVt0Y2Ffb2Zmc2V0XTsKKwltZW1zZXQoZGN3LCAwLCBzaXplKTsKKwlkY3ctPmNtZCA9IGNtZDsKKwlkY3ctPmZsYWdzID0gZmxhZ3M7CisJZGN3LT5jb3VudCA9IGNvdW50OworCWRjdy0+Y2RfY291bnQgPSBjZF9jb3VudDsKKwlpZiAoY2QpCisJCW1lbWNweSgmZGN3LT5jZFswXSwgY2QsIGNkX2NvdW50KTsKKwl0Y2NiLT50Y2FoLnRjYWwgKz0gc2l6ZTsKKwlyZXR1cm4gZGN3OworfQorRVhQT1JUX1NZTUJPTCh0Y2NiX2FkZF9kY3cpOworCisvKioKKyAqIHRjd19hZGRfdGlkYXcgLSBhZGQgYSB0aWRhdyB0byBhIHRjdworICogQHRjdzogdGhlIHRjdyBhZGRyZXNzCisgKiBAbnVtX3RpZGF3czogdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHRpZGF3cworICogQGZsYWdzOiBmbGFncyBmb3IgdGhlIG5ldyB0aWRhdworICogQGFkZHI6IGFkZHJlc3MgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBjb3VudDogY291bnQgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqCisgKiBBZGQgYSBuZXcgdGlkYXcgdG8gdGhlIGlucHV0L291dHB1dCBkYXRhIHRpZGF3LWxpc3Qgb2YgdGhlIHNwZWNpZmllZCB0Y3cKKyAqIChkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSByLWZsYWcgYW5kIHctZmxhZykgYW5kIHJldHVybiBhIHBvaW50ZXIgdG8KKyAqIHRoZSBuZXcgdGlkYXcuCisgKgorICogTm90ZTogdGhlIHRpZGF3LWxpc3QgaXMgYXNzdW1lZCB0byBiZSBjb250aWd1b3VzIHdpdGggbm8gdHRpY3MuIFRoZSBjYWxsZXIKKyAqIG11c3QgZW5zdXJlIHRoYXQgdGhlcmUgaXMgZW5vdWdoIHNwYWNlIGZvciB0aGUgbmV3IHRpZGF3LiBUaGUgbGFzdC10aWRhdworICogZmxhZyBmb3IgdGhlIGxhc3QgdGlkYXcgaW4gdGhlIGxpc3Qgd2lsbCBiZSBzZXQgYnkgdGN3X2ZpbmFsaXplLgorICovCitzdHJ1Y3QgdGlkYXcgKnRjd19hZGRfdGlkYXcoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cywgdTggZmxhZ3MsCisJCQkgICAgdm9pZCAqYWRkciwgdTMyIGNvdW50KQoreworCXN0cnVjdCB0aWRhdyAqdGlkYXc7CisKKwkvKiBBZGQgdGlkYXcgdG8gdGlkYXctbGlzdC4gKi8KKwl0aWRhdyA9ICgoc3RydWN0IHRpZGF3ICopIHRjd19nZXRfZGF0YSh0Y3cpKSArIG51bV90aWRhd3M7CisJbWVtc2V0KHRpZGF3LCAwLCBzaXplb2Yoc3RydWN0IHRpZGF3KSk7CisJdGlkYXctPmZsYWdzID0gZmxhZ3M7CisJdGlkYXctPmNvdW50ID0gY291bnQ7CisJdGlkYXctPmFkZHIgPSAodTY0KSAoKGFkZHJfdCkgYWRkcik7CisJcmV0dXJuIHRpZGF3OworfQorRVhQT1JUX1NZTUJPTCh0Y3dfYWRkX3RpZGF3KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaWRzZXQuaCBiL2RyaXZlcnMvczM5MC9jaW8vaWRzZXQuaAppbmRleCAxNDQ0NjZhLi41MjgwNjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lkc2V0LmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pZHNldC5oCkBAIC04LDcgKzgsNyBAQAogI2lmbmRlZiBTMzkwX0lEU0VUX0gKICNkZWZpbmUgUzM5MF9JRFNFVF9IIFMzOTBfSURTRVRfSAogCi0jaW5jbHVkZSAic2NoaWQuaCIKKyNpbmNsdWRlIDxhc20vc2NoaWQuaD4KIAogc3RydWN0IGlkc2V0OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lvX3NjaC5oIGIvZHJpdmVycy9zMzkwL2Npby9pb19zY2guaAppbmRleCA4YzYxMzE2Li4zZjhmMWNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lvX3NjaC5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaW9fc2NoLmgKQEAgLTEsMTIgKzEsMTIgQEAKICNpZm5kZWYgUzM5MF9JT19TQ0hfSAogI2RlZmluZSBTMzkwX0lPX1NDSF9ICiAKLSNpbmNsdWRlICJzY2hpZC5oIgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAvKgotICogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sKKyAqIGNvbW1hbmQtbW9kZSBvcGVyYXRpb24gcmVxdWVzdCBibG9jawogICovCi1zdHJ1Y3Qgb3JiIHsKK3N0cnVjdCBjbWRfb3JiIHsKIAl1MzIgaW50cGFybTsJLyogaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLwogCXUzMiBrZXkgIDogNDsJLyogZmxhZ3MsIGxpa2Uga2V5LCBzdXNwZW5kIGNvbnRyb2wsIGV0Yy4gKi8KIAl1MzIgc3BuZCA6IDE7CS8qIHN1c3BlbmQgY29udHJvbCAqLwpAQCAtMjgsOCArMjgsMzYgQEAKIAl1MzIgY3BhOwkvKiBjaGFubmVsIHByb2dyYW0gYWRkcmVzcyAqLwogfSAgX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg0KSkpOwogCisvKgorICogdHJhbnNwb3J0LW1vZGUgb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sKKyAqLworc3RydWN0IHRtX29yYiB7CisJdTMyIGludHBhcm07CisJdTMyIGtleTo0OworCXUzMiA6OTsKKwl1MzIgYjoxOworCXUzMiA6MjsKKwl1MzIgbHBtOjg7CisJdTMyIDo3OworCXUzMiB4OjE7CisJdTMyIHRjdzsKKwl1MzIgcHJpbzo4OworCXUzMiA6ODsKKwl1MzIgcnN2cGdtOjg7CisJdTMyIDo4OworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgOjMyOworCXUzMiA6MzI7Cit9ICBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDQpKSk7CisKK3VuaW9uIG9yYiB7CisJc3RydWN0IGNtZF9vcmIgY21kOworCXN0cnVjdCB0bV9vcmIgdG07Cit9ICBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDQpKSk7CisKIHN0cnVjdCBpb19zdWJjaGFubmVsX3ByaXZhdGUgewotCXN0cnVjdCBvcmIgb3JiOwkJLyogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sgKi8KKwl1bmlvbiBvcmIgb3JiOwkJLyogb3BlcmF0aW9uIHJlcXVlc3QgYmxvY2sgKi8KIAlzdHJ1Y3QgY2N3MSBzZW5zZV9jY3c7CS8qIHN0YXRpYyBjY3cgZm9yIHNlbnNlIGNvbW1hbmQgKi8KIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoOCkpKTsKIApAQCAtOTUsMTYgKzEyMywxOCBAQAogCXZvaWQgKmNtYl93YWl0OwkJCS8qIGRlZmVycmVkIGNtYiBlbmFibGUvZGlzYWJsZSAqLwogfTsKIAotc3RhdGljIGlubGluZSBpbnQgc3NjaChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZCwgdm9sYXRpbGUgc3RydWN0IG9yYiAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IHNzY2goc3RydWN0IHN1YmNoYW5uZWxfaWQgc2NoaWQsIHZvbGF0aWxlIHVuaW9uIG9yYiAqYWRkcikKIHsKIAlyZWdpc3RlciBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCByZWcxIGFzbSgiMSIpID0gc2NoaWQ7Ci0JaW50IGNjb2RlOworCWludCBjY29kZSA9IC1FSU87CiAKIAlhc20gdm9sYXRpbGUoCiAJCSIJc3NjaAkwKCUyKVxuIgotCQkiCWlwbQklMFxuIgotCQkiCXNybAklMCwyOCIKLQkJOiAiPWQiIChjY29kZSkgOiAiZCIgKHJlZzEpLCAiYSIgKGFkZHIpLCAibSIgKCphZGRyKSA6ICJjYyIpOworCQkiMDoJaXBtCSUwXG4iCisJCSIJc3JsCSUwLDI4XG4iCisJCSIxOlxuIgorCQlFWF9UQUJMRSgwYiwgMWIpCisJCTogIitkIiAoY2NvZGUpIDogImQiIChyZWcxKSwgImEiIChhZGRyKSwgIm0iICgqYWRkcikgOiAiY2MiKTsKIAlyZXR1cm4gY2NvZGU7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaW9hc20uaCBiL2RyaXZlcnMvczM5MC9jaW8vaW9hc20uaAppbmRleCA2NTJlYTM2Li45ZmEyYWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL2lvYXNtLmgKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pb2FzbS5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBTMzkwX0NJT19JT0FTTV9ICiAKICNpbmNsdWRlIDxhc20vY2hwaWQuaD4KLSNpbmNsdWRlICJzY2hpZC5oIgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAvKgogICogVFBJIGluZm8gc3RydWN0dXJlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL2lzYy5jIGIvZHJpdmVycy9zMzkwL2Npby9pc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTkyMDg3Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9zMzkwL2Npby9pc2MuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogRnVuY3Rpb25zIGZvciByZWdpc3RyYXRpb24gb2YgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzc2VzIG9uIHMzOTAuCisgKgorICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiBBdXRob3JzOiBTZWJhc3RpYW4gT3R0IDxzZWJvdHRAbGludXgudm5ldC5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9pc2MuaD4KKworc3RhdGljIHVuc2lnbmVkIGludCBpc2NfcmVmc1tNQVhfSVNDICsgMV07CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKGlzY19yZWZfbG9jayk7CisKKworLyoqCisgKiBpc2NfcmVnaXN0ZXIgLSByZWdpc3RlciBhbiBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzLgorICogQGlzYzogSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyB0byByZWdpc3RlcgorICoKKyAqIFRoZSBudW1iZXIgb2YgdXNlcnMgZm9yIEBpc2MgaXMgaW5jcmVhc2VkLiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB1c2VyIHRvCisgKiByZWdpc3RlciBAaXNjLCB0aGUgY29ycmVzcG9uZGluZyBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzIG1hc2sgaXMgZW5hYmxlZC4KKyAqCisgKiBDb250ZXh0OgorICogICBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGJlIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLwordm9pZCBpc2NfcmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYykKK3sKKwlpZiAoaXNjID4gTUFYX0lTQykgeworCQlXQVJOX09OKDEpOworCQlyZXR1cm47CisJfQorCisJc3Bpbl9sb2NrKCZpc2NfcmVmX2xvY2spOworCWlmIChpc2NfcmVmc1tpc2NdID09IDApCisJCWN0bF9zZXRfYml0KDYsIDMxIC0gaXNjKTsKKwlpc2NfcmVmc1tpc2NdKys7CisJc3Bpbl91bmxvY2soJmlzY19yZWZfbG9jayk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChpc2NfcmVnaXN0ZXIpOworCisvKioKKyAqIGlzY191bnJlZ2lzdGVyIC0gdW5yZWdpc3RlciBhbiBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzLgorICogQGlzYzogSS9PIGludGVycnVwdGlvbiBzdWJjbGFzcyB0byB1bnJlZ2lzdGVyCisgKgorICogVGhlIG51bWJlciBvZiB1c2VycyBmb3IgQGlzYyBpcyBkZWNyZWFzZWQuIElmIHRoaXMgaXMgdGhlIGxhc3QgdXNlciB0bworICogdW5yZWdpc3RlciBAaXNjLCB0aGUgY29ycmVzcG9uZGluZyBJL08gaW50ZXJydXB0aW9uIHN1YmNsYXNzIG1hc2sgaXMKKyAqIGRpc2FibGVkLgorICogTm90ZTogVGhpcyBmdW5jdGlvbiBtdXN0IG5vdCBiZSBjYWxsZWQgaWYgaXNjX3JlZ2lzdGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkCisgKiBiZWZvcmUgYnkgdGhlIGRyaXZlciBmb3IgQGlzYy4KKyAqCisgKiBDb250ZXh0OgorICogICBUaGlzIGZ1bmN0aW9uIG11c3Qgbm90IGJlIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4KKyAqLwordm9pZCBpc2NfdW5yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaXNjKQoreworCXNwaW5fbG9jaygmaXNjX3JlZl9sb2NrKTsKKwkvKiBjaGVjayBmb3IgbWlzdXNlICovCisJaWYgKGlzYyA+IE1BWF9JU0MgfHwgaXNjX3JlZnNbaXNjXSA9PSAwKSB7CisJCVdBUk5fT04oMSk7CisJCWdvdG8gb3V0X3VubG9jazsKKwl9CisJaWYgKGlzY19yZWZzW2lzY10gPT0gMSkKKwkJY3RsX2NsZWFyX2JpdCg2LCAzMSAtIGlzYyk7CisJaXNjX3JlZnNbaXNjXS0tOworb3V0X3VubG9jazoKKwlzcGluX3VubG9jaygmaXNjX3JlZl9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGlzY191bnJlZ2lzdGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vaXRjdy5jIGIvZHJpdmVycy9zMzkwL2Npby9pdGN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTdkYTlhYgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vaXRjdy5jCkBAIC0wLDAgKzEsMzI3IEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgaW5jcmVtZW50YWwgY29uc3RydWN0aW9uIG9mIGZjeCBlbmFibGVkIEkvTyBjb250cm9sIGJsb2Nrcy4KKyAqCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogUGV0ZXIgT2JlcnBhcmxlaXRlciA8cGV0ZXIub2JlcnBhcmxlaXRlckBkZS5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8YXNtL2ZjeC5oPgorI2luY2x1ZGUgPGFzbS9pdGN3Lmg+CisKKy8qKgorICogc3RydWN0IGl0Y3cgLSBpbmNyZW1lbnRhbCB0Y3cgaGVscGVyIGRhdGEgdHlwZQorICoKKyAqIFRoaXMgc3RydWN0dXJlIHNlcnZlcyBhcyBhIGhhbmRsZSBmb3IgdGhlIGluY3JlbWVudGFsIGNvbnN0cnVjdGlvbiBvZiBhCisgKiB0Y3cgYW5kIGFzc29jaWF0ZWQgdGNjYiwgdHNiLCBkYXRhIHRpZGF3LWxpc3QgcGx1cyBhbiBvcHRpb25hbCBpbnRlcnJvZ2F0ZQorICogdGN3IGFuZCBhc3NvY2lhdGVkIGRhdGEuIFRoZSBkYXRhIHN0cnVjdHVyZXMgYXJlIGNvbnRhaW5lZCBpbnNpZGUgYSBzaW5nbGUKKyAqIGNvbnRpZ3VvdXMgYnVmZmVyIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgorICoKKyAqIFRoZSBpdGN3IGNvbnN0cnVjdGlvbiBmdW5jdGlvbnMgdGFrZSBjYXJlIG9mIG92ZXJhbGwgZGF0YSBpbnRlZ3JpdHk6CisgKiAtIHJlc2V0IHVudXNlZCBmaWVsZHMgdG8gemVybworICogLSBmaWxsIGluIHJlcXVpcmVkIHBvaW50ZXJzCisgKiAtIGVuc3VyZSByZXF1aXJlZCBhbGlnbm1lbnQgZm9yIGRhdGEgc3RydWN0dXJlcworICogLSBwcmV2ZW50IGRhdGEgc3RydWN0dXJlcyB0byBjcm9zcyA0ay1ieXRlIGJvdW5kYXJ5IHdoZXJlIHJlcXVpcmVkCisgKiAtIGNhbGN1bGF0ZSB0Y2NiLXJlbGF0ZWQgbGVuZ3RoIGZpZWxkcworICogLSBvcHRpb25hbGx5IHByb3ZpZGUgcmVhZHktbWFkZSBpbnRlcnJvZ2F0ZSB0Y3cgYW5kIGFzc29jaWF0ZWQgc3RydWN0dXJlcworICoKKyAqIFJlc3RyaWN0aW9ucyBhcHBseSB0byB0aGUgaXRjd3MgY3JlYXRlZCB3aXRoIHRoZXNlIGNvbnN0cnVjdGlvbiBmdW5jdGlvbnM6CisgKiAtIHRpZGEgb25seSBzdXBwb3J0ZWQgZm9yIGRhdGEgYWRkcmVzcywgbm90IGZvciB0Y2NiCisgKiAtIG9ubHkgY29udGlndW91cyB0aWRhdy1saXN0cyAobm8gdHRpYykKKyAqIC0gdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIHBlciBpdGN3IG1heSBub3QgZXhjZWVkIDRrIGJ5dGVzCisgKiAtIGVpdGhlciByZWFkIG9yIHdyaXRlIG9wZXJhdGlvbiAobWF5IG5vdCB3b3JrIHdpdGggcj0wIGFuZCB3PTApCisgKgorICogRXhhbXBsZToKKyAqIHN0cnVjdCBpdGN3ICppdGN3OworICogdm9pZCAqYnVmZmVyOworICogc2l6ZV90IHNpemU7CisgKgorICogc2l6ZSA9IGl0Y3dfY2FsY19zaXplKDEsIDIsIDApOworICogYnVmZmVyID0ga21hbGxvYyhzaXplLCBHRlBfRE1BKTsKKyAqIGlmICghYnVmZmVyKQorICoJcmV0dXJuIC1FTk9NRU07CisgKiBpdGN3ID0gaXRjd19pbml0KGJ1ZmZlciwgc2l6ZSwgSVRDV19PUF9SRUFELCAxLCAyLCAwKTsKKyAqIGlmIChJU19FUlIoaXRjdykpCisgKglyZXR1cm4gUFRSX0VSKGl0Y3cpOworICogaXRjd19hZGRfZGN3KGl0Y3csIDB4MiwgMCwgTlVMTCwgMCwgNzIpOworICogaXRjd19hZGRfdGlkYXcoaXRjdywgMCwgMHgzMDAwMCwgMjApOworICogaXRjd19hZGRfdGlkYXcoaXRjdywgMCwgMHg0MDAwMCwgNTIpOworICogaXRjd19maW5hbGl6ZShpdGN3KTsKKyAqCisgKi8KK3N0cnVjdCBpdGN3IHsKKwlzdHJ1Y3QgdGN3ICp0Y3c7CisJc3RydWN0IHRjdyAqaW50cmdfdGN3OworCWludCBudW1fdGlkYXdzOworCWludCBtYXhfdGlkYXdzOworCWludCBpbnRyZ19udW1fdGlkYXdzOworCWludCBpbnRyZ19tYXhfdGlkYXdzOworfTsKKworLyoqCisgKiBpdGN3X2dldF90Y3cgLSByZXR1cm4gcG9pbnRlciB0byB0Y3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICoKKyAqIFJldHVybiBwb2ludGVyIHRvIHRoZSB0Y3cgYXNzb2NpYXRlZCB3aXRoIHRoZSBpdGN3LgorICovCitzdHJ1Y3QgdGN3ICppdGN3X2dldF90Y3coc3RydWN0IGl0Y3cgKml0Y3cpCit7CisJcmV0dXJuIGl0Y3ctPnRjdzsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19nZXRfdGN3KTsKKworLyoqCisgKiBpdGN3X2NhbGNfc2l6ZSAtIHJldHVybiB0aGUgc2l6ZSBvZiBhbiBpdGN3IHdpdGggdGhlIGdpdmVuIHBhcmFtZXRlcnMKKyAqIEBpbnRyZzogaWYgbm9uLXplcm8sIGFkZCBhbiBpbnRlcnJvZ2F0ZSB0Y3cKKyAqIEBtYXhfdGlkYXdzOiBtYXhpbXVtIG51bWJlciBvZiB0aWRhd3MgdG8gYmUgdXNlZCBmb3IgZGF0YSBhZGRyZXNzaW5nIG9yIHplcm8KKyAqIGlmIG5vIHRpZGEgaXMgdG8gYmUgdXNlZC4KKyAqIEBpbnRyZ19tYXhfdGlkYXdzOiBtYXhpbXVtIG51bWJlciBvZiB0aWRhd3MgdG8gYmUgdXNlZCBmb3IgZGF0YSBhZGRyZXNzaW5nCisgKiBieSB0aGUgaW50ZXJyb2dhdGUgdGN3LCBpZiBzcGVjaWZpZWQKKyAqCisgKiBDYWxjdWxhdGUgYW5kIHJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlcXVpcmVkIHRvIGhvbGQgYW4gaXRjdyB3aXRoIHRoZQorICogZ2l2ZW4gcGFyYW1ldGVycyBhbmQgYXNzdW1pbmcgdGNjYnMgd2l0aCBtYXhpbXVtIHNpemUuCisgKgorICogTm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgc2l6ZSBhbHNvIGNvbnRhaW5zIGJ5dGVzIG5lZWRlZCBmb3IgYWxpZ25tZW50CisgKiBwYWRkaW5nIGFzIHdlbGwgYXMgcGFkZGluZyB0byBlbnN1cmUgdGhhdCBkYXRhIHN0cnVjdHVyZXMgZG9uJ3QgY3Jvc3MgYQorICogNGstYm91bmRhcnkgd2hlcmUgcmVxdWlyZWQuCisgKi8KK3NpemVfdCBpdGN3X2NhbGNfc2l6ZShpbnQgaW50cmcsIGludCBtYXhfdGlkYXdzLCBpbnQgaW50cmdfbWF4X3RpZGF3cykKK3sKKwlzaXplX3QgbGVuOworCisJLyogTWFpbiBkYXRhLiAqLworCWxlbiA9IHNpemVvZihzdHJ1Y3QgaXRjdyk7CisJbGVuICs9IC8qIFRDVyAqLyBzaXplb2Yoc3RydWN0IHRjdykgKyAvKiBUQ0NCICovIFRDQ0JfTUFYX1NJWkUgKworCSAgICAgICAvKiBUU0IgKi8gc2l6ZW9mKHN0cnVjdCB0c2IpICsKKwkgICAgICAgLyogVElEQUwgKi8gbWF4X3RpZGF3cyAqIHNpemVvZihzdHJ1Y3QgdGlkYXcpOworCS8qIEludGVycm9nYXRlIGRhdGEuICovCisJaWYgKGludHJnKSB7CisJCWxlbiArPSAvKiBUQ1cgKi8gc2l6ZW9mKHN0cnVjdCB0Y3cpICsgLyogVENDQiAqLyBUQ0NCX01BWF9TSVpFICsKKwkJICAgICAgIC8qIFRTQiAqLyBzaXplb2Yoc3RydWN0IHRzYikgKworCQkgICAgICAgLyogVElEQUwgKi8gaW50cmdfbWF4X3RpZGF3cyAqIHNpemVvZihzdHJ1Y3QgdGlkYXcpOworCX0KKwkvKiBNYXhpbXVtIHJlcXVpcmVkIGFsaWdubWVudCBwYWRkaW5nLiAqLworCWxlbiArPSAvKiBJbml0aWFsIFRDVyAqLyA2MyArIC8qIEludGVycm9nYXRlIFRDQ0IgKi8gNzsKKwkvKiBNYXhpbXVtIHBhZGRpbmcgZm9yIHN0cnVjdHVyZXMgdGhhdCBtYXkgbm90IGNyb3NzIDRrIGJvdW5kYXJ5LiAqLworCWlmICgobWF4X3RpZGF3cyA+IDApIHx8IChpbnRyZ19tYXhfdGlkYXdzID4gMCkpCisJCWxlbiArPSBtYXgobWF4X3RpZGF3cywgaW50cmdfbWF4X3RpZGF3cykgKgorCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB0aWRhdykgLSAxOworCXJldHVybiBsZW47Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfY2FsY19zaXplKTsKKworI2RlZmluZSBDUk9TUzRLKHgsIGwpCSgoKHgpICYgfjQwOTUpICE9ICgoeCArIGwpICYgfjQwOTUpKQorCitzdGF0aWMgaW5saW5lIHZvaWQgKmZpdF9jaHVuayhhZGRyX3QgKnN0YXJ0LCBhZGRyX3QgZW5kLCBzaXplX3QgbGVuLAorCQkJICAgICAgaW50IGFsaWduLCBpbnQgY2hlY2tfNGspCit7CisJYWRkcl90IGFkZHI7CisKKwlhZGRyID0gQUxJR04oKnN0YXJ0LCBhbGlnbik7CisJaWYgKGNoZWNrXzRrICYmIENST1NTNEsoYWRkciwgbGVuKSkgeworCQlhZGRyID0gQUxJR04oYWRkciwgNDA5Nik7CisJCWFkZHIgPSBBTElHTihhZGRyLCBhbGlnbik7CisJfQorCWlmIChhZGRyICsgbGVuID4gZW5kKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PU1BDKTsKKwkqc3RhcnQgPSBhZGRyICsgbGVuOworCXJldHVybiAodm9pZCAqKSBhZGRyOworfQorCisvKioKKyAqIGl0Y3dfaW5pdCAtIGluaXRpYWxpemUgaW5jcmVtZW50YWwgdGN3IGRhdGEgc3RydWN0dXJlCisgKiBAYnVmZmVyOiBhZGRyZXNzIG9mIGJ1ZmZlciB0byB1c2UgZm9yIGRhdGEgc3RydWN0dXJlcworICogQHNpemU6IG51bWJlciBvZiBieXRlcyBpbiBidWZmZXIKKyAqIEBvcDogJUlUQ1dfT1BfUkVBRCBmb3IgYSByZWFkIG9wZXJhdGlvbiB0Y3csICVJVENXX09QX1dSSVRFIGZvciBhIHdyaXRlCisgKiBvcGVyYXRpb24gdGN3CisgKiBAaW50cmc6IGlmIG5vbi16ZXJvLCBhZGQgYW5kIGluaXRpYWxpemUgYW4gaW50ZXJyb2dhdGUgdGN3CisgKiBAbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZyBvciB6ZXJvCisgKiBpZiBubyB0aWRhIGlzIHRvIGJlIHVzZWQuCisgKiBAaW50cmdfbWF4X3RpZGF3czogbWF4aW11bSBudW1iZXIgb2YgdGlkYXdzIHRvIGJlIHVzZWQgZm9yIGRhdGEgYWRkcmVzc2luZworICogYnkgdGhlIGludGVycm9nYXRlIHRjdywgaWYgc3BlY2lmaWVkCisgKgorICogUHJlcGFyZSB0aGUgc3BlY2lmaWVkIGJ1ZmZlciB0byBiZSB1c2VkIGFzIGFuIGluY3JlbWVudGFsIHRjdywgaS5lLiBhCisgKiBoZWxwZXIgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgYSB2YWxpZCB0Y3cgYnkKKyAqIHN1Y2Nlc3NpdmUgY2FsbHMgdG8gb3RoZXIgaGVscGVyIGZ1bmN0aW9ucy4gTm90ZTogdGhlIGJ1ZmZlciBuZWVkcyB0byBiZQorICogbG9jYXRlZCBiZWxvdyB0aGUgMkcgYWRkcmVzcyBsaW1pdC4gVGhlIHJlc3VsdGluZyB0Y3cgaGFzIHRoZSBmb2xsb3dpbmcKKyAqIHJlc3RyaWN0aW9uczoKKyAqICAtIG5vIHRjY2IgdGlkYWwKKyAqICAtIGlucHV0L291dHB1dCB0aWRhbCBpcyBjb250aWd1b3VzIChubyB0dGljKQorICogIC0gdG90YWwgZGF0YSBzaG91bGQgbm90IGV4Y2VlZCA0aworICogIC0gdGN3IHNwZWNpZmllcyBlaXRoZXIgcmVhZCBvciB3cml0ZSBvcGVyYXRpb24KKyAqCisgKiBPbiBzdWNjZXNzLCByZXR1cm4gcG9pbnRlciB0byB0aGUgcmVzdWx0aW5nIGluY3JlbWVudGFsIHRjdyBkYXRhIHN0cnVjdHVyZSwKKyAqIEVSUl9QVFIgb3RoZXJ3aXNlLgorICovCitzdHJ1Y3QgaXRjdyAqaXRjd19pbml0KHZvaWQgKmJ1ZmZlciwgc2l6ZV90IHNpemUsIGludCBvcCwgaW50IGludHJnLAorCQkgICAgICAgaW50IG1heF90aWRhd3MsIGludCBpbnRyZ19tYXhfdGlkYXdzKQoreworCXN0cnVjdCBpdGN3ICppdGN3OworCXZvaWQgKmNodW5rOworCWFkZHJfdCBzdGFydDsKKwlhZGRyX3QgZW5kOworCisJLyogQ2hlY2sgZm9yIDJHIGxpbWl0LiAqLworCXN0YXJ0ID0gKGFkZHJfdCkgYnVmZmVyOworCWVuZCA9IHN0YXJ0ICsgc2l6ZTsKKwlpZiAoZW5kID4gKDEgPDwgMzEpKQorCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKKwltZW1zZXQoYnVmZmVyLCAwLCBzaXplKTsKKwkvKiBJVENXLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IGl0Y3cpLCAxLCAwKTsKKwlpZiAoSVNfRVJSKGNodW5rKSkKKwkJcmV0dXJuIGNodW5rOworCWl0Y3cgPSBjaHVuazsKKwlpdGN3LT5tYXhfdGlkYXdzID0gbWF4X3RpZGF3czsKKwlpdGN3LT5pbnRyZ19tYXhfdGlkYXdzID0gaW50cmdfbWF4X3RpZGF3czsKKwkvKiBNYWluIFRDVy4gKi8KKwljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0Y3cpLCA2NCwgMCk7CisJaWYgKElTX0VSUihjaHVuaykpCisJCXJldHVybiBjaHVuazsKKwlpdGN3LT50Y3cgPSBjaHVuazsKKwl0Y3dfaW5pdChpdGN3LT50Y3csIChvcCA9PSBJVENXX09QX1JFQUQpID8gMSA6IDAsCisJCSAob3AgPT0gSVRDV19PUF9XUklURSkgPyAxIDogMCk7CisJLyogSW50ZXJyb2dhdGUgVENXLiAqLworCWlmIChpbnRyZykgeworCQljaHVuayA9IGZpdF9jaHVuaygmc3RhcnQsIGVuZCwgc2l6ZW9mKHN0cnVjdCB0Y3cpLCA2NCwgMCk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQlpdGN3LT5pbnRyZ190Y3cgPSBjaHVuazsKKwkJdGN3X2luaXQoaXRjdy0+aW50cmdfdGN3LCAxLCAwKTsKKwkJdGN3X3NldF9pbnRyZyhpdGN3LT50Y3csIGl0Y3ctPmludHJnX3Rjdyk7CisJfQorCS8qIERhdGEgVElEQUwuICovCisJaWYgKG1heF90aWRhd3MgPiAwKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRpZGF3KSAqCisJCQkJICBtYXhfdGlkYXdzLCAxNiwgMSk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0Y3dfc2V0X2RhdGEoaXRjdy0+dGN3LCBjaHVuaywgMSk7CisJfQorCS8qIEludGVycm9nYXRlIGRhdGEgVElEQUwuICovCisJaWYgKGludHJnICYmIChpbnRyZ19tYXhfdGlkYXdzID4gMCkpIHsKKwkJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdGlkYXcpICoKKwkJCQkgIGludHJnX21heF90aWRhd3MsIDE2LCAxKTsKKwkJaWYgKElTX0VSUihjaHVuaykpCisJCQlyZXR1cm4gY2h1bms7CisJCXRjd19zZXRfZGF0YShpdGN3LT5pbnRyZ190Y3csIGNodW5rLCAxKTsKKwl9CisJLyogVFNCLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBzaXplb2Yoc3RydWN0IHRzYiksIDgsIDApOworCWlmIChJU19FUlIoY2h1bmspKQorCQlyZXR1cm4gY2h1bms7CisJdHNiX2luaXQoY2h1bmspOworCXRjd19zZXRfdHNiKGl0Y3ctPnRjdywgY2h1bmspOworCS8qIEludGVycm9nYXRlIFRTQi4gKi8KKwlpZiAoaW50cmcpIHsKKwkJY2h1bmsgPSBmaXRfY2h1bmsoJnN0YXJ0LCBlbmQsIHNpemVvZihzdHJ1Y3QgdHNiKSwgOCwgMCk7CisJCWlmIChJU19FUlIoY2h1bmspKQorCQkJcmV0dXJuIGNodW5rOworCQl0c2JfaW5pdChjaHVuayk7CisJCXRjd19zZXRfdHNiKGl0Y3ctPmludHJnX3RjdywgY2h1bmspOworCX0KKwkvKiBUQ0NCLiAqLworCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBUQ0NCX01BWF9TSVpFLCA4LCAwKTsKKwlpZiAoSVNfRVJSKGNodW5rKSkKKwkJcmV0dXJuIGNodW5rOworCXRjY2JfaW5pdChjaHVuaywgVENDQl9NQVhfU0laRSwgVENDQl9TQUNfREVGQVVMVCk7CisJdGN3X3NldF90Y2NiKGl0Y3ctPnRjdywgY2h1bmspOworCS8qIEludGVycm9nYXRlIFRDQ0IuICovCisJaWYgKGludHJnKSB7CisJCWNodW5rID0gZml0X2NodW5rKCZzdGFydCwgZW5kLCBUQ0NCX01BWF9TSVpFLCA4LCAwKTsKKwkJaWYgKElTX0VSUihjaHVuaykpCisJCQlyZXR1cm4gY2h1bms7CisJCXRjY2JfaW5pdChjaHVuaywgVENDQl9NQVhfU0laRSwgVENDQl9TQUNfSU5UUkcpOworCQl0Y3dfc2V0X3RjY2IoaXRjdy0+aW50cmdfdGN3LCBjaHVuayk7CisJCXRjY2JfYWRkX2RjdyhjaHVuaywgVENDQl9NQVhfU0laRSwgRENXX0NNRF9JTlRSRywgMCwgTlVMTCwKKwkJCSAgICAgc2l6ZW9mKHN0cnVjdCBkY3dfaW50cmdfZGF0YSksIDApOworCQl0Y3dfZmluYWxpemUoaXRjdy0+aW50cmdfdGN3LCAwKTsKKwl9CisJcmV0dXJuIGl0Y3c7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfaW5pdCk7CisKKy8qKgorICogaXRjd19hZGRfZGN3IC0gYWRkIGEgZGN3IHRvIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICogQGNtZDogdGhlIGRjdyBjb21tYW5kCisgKiBAZmxhZ3M6IGZsYWdzIGZvciB0aGUgZGN3CisgKiBAY2Q6IGFkZHJlc3Mgb2YgY29udHJvbCBkYXRhIGZvciB0aGlzIGRjdyBvciBOVUxMIGlmIG5vbmUgaXMgcmVxdWlyZWQKKyAqIEBjZF9jb3VudDogbnVtYmVyIG9mIGNvbnRyb2wgZGF0YSBieXRlcyBmb3IgdGhpcyBkY3cKKyAqIEBjb3VudDogbnVtYmVyIG9mIGRhdGEgYnl0ZXMgZm9yIHRoaXMgZGN3CisgKgorICogQWRkIGEgbmV3IGRjdyB0byB0aGUgc3BlY2lmaWVkIGl0Y3cgYnkgd3JpdGluZyB0aGUgZGN3IGluZm9ybWF0aW9uIHNwZWNpZmllZAorICogYnkgQGNtZCwgQGZsYWdzLCBAY2QsIEBjZF9jb3VudCBhbmQgQGNvdW50IHRvIHRoZSB0Y2Egb2YgdGhlIHRjY2IuIFJldHVybgorICogYSBwb2ludGVyIHRvIHRoZSBuZXdseSBhZGRlZCBkY3cgb24gc3VjY2VzcyBvciAtJUVOT1NQQyBpZiB0aGUgbmV3IGRjdworICogd291bGQgZXhjZWVkIHRoZSBhdmFpbGFibGUgc3BhY2UuCisgKgorICogTm90ZTogdGhlIHRjYWwgZmllbGQgb2YgdGhlIHRjY2IgaGVhZGVyIHdpbGwgYmUgdXBkYXRlZCB0byByZWZsZWN0IGFkZGVkCisgKiBjb250ZW50LgorICovCitzdHJ1Y3QgZGN3ICppdGN3X2FkZF9kY3coc3RydWN0IGl0Y3cgKml0Y3csIHU4IGNtZCwgdTggZmxhZ3MsIHZvaWQgKmNkLAorCQkJIHU4IGNkX2NvdW50LCB1MzIgY291bnQpCit7CisJcmV0dXJuIHRjY2JfYWRkX2Rjdyh0Y3dfZ2V0X3RjY2IoaXRjdy0+dGN3KSwgVENDQl9NQVhfU0laRSwgY21kLAorCQkJICAgIGZsYWdzLCBjZCwgY2RfY291bnQsIGNvdW50KTsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19hZGRfZGN3KTsKKworLyoqCisgKiBpdGN3X2FkZF90aWRhdyAtIGFkZCBhIHRpZGF3IHRvIHRoZSBpdGN3CisgKiBAaXRjdzogYWRkcmVzcyBvZiB0aGUgaXRjdworICogQGZsYWdzOiBmbGFncyBmb3IgdGhlIG5ldyB0aWRhdworICogQGFkZHI6IGFkZHJlc3MgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqIEBjb3VudDogY291bnQgdmFsdWUgZm9yIHRoZSBuZXcgdGlkYXcKKyAqCisgKiBBZGQgYSBuZXcgdGlkYXcgdG8gdGhlIGlucHV0L291dHB1dCBkYXRhIHRpZGF3LWxpc3Qgb2YgdGhlIHNwZWNpZmllZCBpdGN3CisgKiAoZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgci1mbGFnIGFuZCB3LWZsYWcpLiBSZXR1cm4gYSBwb2ludGVyIHRvCisgKiB0aGUgbmV3IHRpZGF3IG9uIHN1Y2Nlc3Mgb3IgLSVFTk9TUEMgaWYgdGhlIG5ldyB0aWRhdyB3b3VsZCBleGNlZWQgdGhlCisgKiBhdmFpbGFibGUgc3BhY2UuCisgKgorICogTm90ZTogdGhlIHRpZGF3LWxpc3QgaXMgYXNzdW1lZCB0byBiZSBjb250aWd1b3VzIHdpdGggbm8gdHRpY3MuIFRoZQorICogbGFzdC10aWRhdyBmbGFnIGZvciB0aGUgbGFzdCB0aWRhdyBpbiB0aGUgbGlzdCB3aWxsIGJlIHNldCBieSBpdGN3X2ZpbmFsaXplLgorICovCitzdHJ1Y3QgdGlkYXcgKml0Y3dfYWRkX3RpZGF3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBmbGFncywgdm9pZCAqYWRkciwgdTMyIGNvdW50KQoreworCWlmIChpdGN3LT5udW1fdGlkYXdzID49IGl0Y3ctPm1heF90aWRhd3MpCisJCXJldHVybiBFUlJfUFRSKC1FTk9TUEMpOworCXJldHVybiB0Y3dfYWRkX3RpZGF3KGl0Y3ctPnRjdywgaXRjdy0+bnVtX3RpZGF3cysrLCBmbGFncywgYWRkciwgY291bnQpOworfQorRVhQT1JUX1NZTUJPTChpdGN3X2FkZF90aWRhdyk7CisKKy8qKgorICogaXRjd19zZXRfZGF0YSAtIHNldCBkYXRhIGFkZHJlc3MgYW5kIHRpZGEgZmxhZyBvZiB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqIEBhZGRyOiB0aGUgZGF0YSBhZGRyZXNzCisgKiBAdXNlX3RpZGFsOiB6ZXJvIG9mIHRoZSBkYXRhIGFkZHJlc3Mgc3BlY2lmaWVzIGEgY29udGlndW91cyBibG9jayBvZiBkYXRhLAorICogbm9uLXplcm8gaWYgaXQgc3BlY2lmaWVzIGEgbGlzdCBpZiB0aWRhd3MuCisgKgorICogU2V0IHRoZSBpbnB1dC9vdXRwdXQgZGF0YSBhZGRyZXNzIG9mIHRoZSBpdGN3IChkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZQorICogci1mbGFnIGFuZCB3LWZsYWcpLiBJZiBAdXNlX3RpZGFsIGlzIG5vbi16ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB0aWRhIGZsYWcKKyAqIGlzIHNldCBhcyB3ZWxsLgorICovCit2b2lkIGl0Y3dfc2V0X2RhdGEoc3RydWN0IGl0Y3cgKml0Y3csIHZvaWQgKmFkZHIsIGludCB1c2VfdGlkYWwpCit7CisJdGN3X3NldF9kYXRhKGl0Y3ctPnRjdywgYWRkciwgdXNlX3RpZGFsKTsKK30KK0VYUE9SVF9TWU1CT0woaXRjd19zZXRfZGF0YSk7CisKKy8qKgorICogaXRjd19maW5hbGl6ZSAtIGNhbGN1bGF0ZSBsZW5ndGggYW5kIGNvdW50IGZpZWxkcyBvZiB0aGUgaXRjdworICogQGl0Y3c6IGFkZHJlc3Mgb2YgdGhlIGl0Y3cKKyAqCisgKiBDYWxjdWxhdGUgdGN3IGlucHV0LS9vdXRwdXQtY291bnQgYW5kIHRjY2JsIGZpZWxkcyBhbmQgYWRkIGEgdGNhdCB0aGUgdGNjYi4KKyAqIEluIGNhc2UgaW5wdXQtIG9yIG91dHB1dC10aWRhIGlzIHVzZWQsIHRoZSB0aWRhdy1saXN0IG11c3QgYmUgc3RvcmVkIGluCisgKiBjb250aW51b3VzIHN0b3JhZ2UgKG5vIHR0aWMpLiBUaGUgdGNhbCBmaWVsZCBpbiB0aGUgdGNjYiBtdXN0IGJlCisgKiB1cC10by1kYXRlLgorICovCit2b2lkIGl0Y3dfZmluYWxpemUoc3RydWN0IGl0Y3cgKml0Y3cpCit7CisJdGN3X2ZpbmFsaXplKGl0Y3ctPnRjdywgaXRjdy0+bnVtX3RpZGF3cyk7Cit9CitFWFBPUlRfU1lNQk9MKGl0Y3dfZmluYWxpemUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2Npby9xZGlvLmMgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYwppbmRleCA0NDVjZjM2Li4yYmYzNmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYworKysgYi9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uYwpAQCAtMjA4Miw3ICsyMDgyLDYgQEAKIAlkZWZhdWx0OgogCQlCVUcoKTsKIAl9Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIAl3YWtlX3VwKCZjZGV2LT5wcml2YXRlLT53YWl0X3EpOwogfQogCkBAIC0yMTIxLDYgKzIxMjAsOCBAQAogCQljYXNlIC1FSU86CiAJCQlRRElPX1BSSU5UX0VSUigiaS9vIGVycm9yIG9uIGRldmljZSAlc1xuIiwKIAkJCQkgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCk7CisJCQlxZGlvX3NldF9zdGF0ZShpcnFfcHRyLCBRRElPX0lSUV9TVEFURV9FUlIpOworCQkJd2FrZV91cCgmY2Rldi0+cHJpdmF0ZS0+d2FpdF9xKTsKIAkJCXJldHVybjsKIAkJY2FzZSAtRVRJTUVET1VUOgogCQkJcWRpb190aW1lb3V0X2hhbmRsZXIoY2Rldik7CkBAIC0yMTM5LDggKzIxNDAsOCBAQAogCVFESU9fREJGX1RFWFQ0KDAsIHRyYWNlLCBkYmZfdGV4dCk7CiAjZW5kaWYgLyogQ09ORklHX1FESU9fREVCVUcgKi8KIAotICAgICAgICBjc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLSAgICAgICAgZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAogCXN3aXRjaCAoaXJxX3B0ci0+c3RhdGUpIHsKIAljYXNlIFFESU9fSVJRX1NUQVRFX0lOQUNUSVZFOgpAQCAtMjM1Myw5ICsyMzU0LDYgQEAKIHsKIAljaGFyIGRiZl90ZXh0WzE1XTsKIAotCWlmICghY3NzX2NoYXJhY3RlcmlzdGljc19hdmFpbCkKLQkJcmV0dXJuIC1FSU87Ci0KIAkvKiBDaGVjayBmb3IgYml0IDQxLiAqLwogCWlmICghY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmFpZikgewogCQlRRElPX1BSSU5UX1dBUk4oIkFkYXB0ZXIgaW50ZXJydXB0aW9uIGZhY2lsaXR5IG5vdCAiIFwKQEAgLTI2NjcsMTIgKzI2NjUsMTIgQEAKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2soY2RldiksIGZsYWdzKTsKIAl9IGVsc2UgaWYgKHJjID09IDApIHsKIAkJcWRpb19zZXRfc3RhdGUoaXJxX3B0ciwgUURJT19JUlFfU1RBVEVfQ0xFQU5VUCk7Ci0JCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgdGltZW91dCk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLGZsYWdzKTsKIAotCQl3YWl0X2V2ZW50KGNkZXYtPnByaXZhdGUtPndhaXRfcSwKLQkJCSAgIGlycV9wdHItPnN0YXRlID09IFFESU9fSVJRX1NUQVRFX0lOQUNUSVZFIHx8Ci0JCQkgICBpcnFfcHRyLT5zdGF0ZSA9PSBRRElPX0lSUV9TVEFURV9FUlIpOworCQl3YWl0X2V2ZW50X2ludGVycnVwdGlibGVfdGltZW91dChjZGV2LT5wcml2YXRlLT53YWl0X3EsCisJCQlpcnFfcHRyLT5zdGF0ZSA9PSBRRElPX0lSUV9TVEFURV9JTkFDVElWRSB8fAorCQkJaXJxX3B0ci0+c3RhdGUgPT0gUURJT19JUlFfU1RBVEVfRVJSLAorCQkJdGltZW91dCk7CiAJfSBlbHNlIHsKIAkJUURJT19QUklOVF9JTkZPKCJjY3dfZGV2aWNlX3toYWx0LGNsZWFyfSByZXR1cm5lZCAlZCBmb3IgIgogCQkJCSJkZXZpY2UgJXNcbiIsIHJlc3VsdCwgY2Rldi0+ZGV2LmJ1c19pZCk7CkBAIC0yNjkyLDcgKzI2OTAsNiBAQAogCiAJLyogSWdub3JlIGVycm9ycy4gKi8KIAlxZGlvX3NldF9zdGF0ZShpcnFfcHRyLCBRRElPX0lSUV9TVEFURV9JTkFDVElWRSk7Ci0JY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKIG91dDoKIAl1cCgmaXJxX3B0ci0+c2V0dGluZ191cF9zZW1hKTsKIAlyZXR1cm4gcmVzdWx0OwpAQCAtMjkwNywxMyArMjkwNCwxMCBAQAogCVFESU9fREJGX1RFWFQwKDAsc2V0dXAsZGJmX3RleHQpOwogCVFESU9fREJGX1RFWFQwKDAsdHJhY2UsZGJmX3RleHQpOwogCi0JaWYgKHFkaW9fZXN0YWJsaXNoX2lycV9jaGVja19mb3JfZXJyb3JzKGNkZXYsIGNzdGF0LCBkc3RhdCkpIHsKLQkJY2N3X2RldmljZV9zZXRfdGltZW91dChjZGV2LCAwKTsKKwlpZiAocWRpb19lc3RhYmxpc2hfaXJxX2NoZWNrX2Zvcl9lcnJvcnMoY2RldiwgY3N0YXQsIGRzdGF0KSkKIAkJcmV0dXJuOwotCX0KIAogCXFkaW9fc2V0X3N0YXRlKGlycV9wdHIsUURJT19JUlFfU1RBVEVfRVNUQUJMSVNIRUQpOwotCWNjd19kZXZpY2Vfc2V0X3RpbWVvdXQoY2RldiwgMCk7CiB9CiAKIGludApAQCAtMzE5Niw4ICszMTkwLDYgQEAKIAkJCQlpcnFfcHRyLT5zY2hpZC5zc2lkLCBpcnFfcHRyLT5zY2hpZC5zY2hfbm8sCiAJCQkJcmVzdWx0LCByZXN1bHQyKTsKIAkJcmVzdWx0PXJlc3VsdDI7Ci0JCWlmIChyZXN1bHQpCi0JCQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwogCX0KIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLHNhdmVmbGFncyk7CkBAIC0zMjc5LDcgKzMyNzEsNiBAQAogCiAJc3Bpbl9sb2NrX2lycXNhdmUoZ2V0X2Njd2Rldl9sb2NrKGNkZXYpLHNhdmVmbGFncyk7CiAKLQljY3dfZGV2aWNlX3NldF90aW1lb3V0KGNkZXYsIDApOwogCWNjd19kZXZpY2Vfc2V0X29wdGlvbnMoY2RldiwgQ0NXREVWX1JFUE9SVF9BTEwpOwogCXJlc3VsdD1jY3dfZGV2aWNlX3N0YXJ0KGNkZXYsJmlycV9wdHItPmNjdyxRRElPX0RPSU5HX0FDVElWQVRFLAogCQkJCTAsIERPSU9fREVOWV9QUkVGRVRDSCk7CkBAIC0zNzIyLDcgKzM3MTMsOCBAQAogCWNoYXIgZGJmX3RleHRbMjBdOwogCiAJdGlxZGlvX2luZCA9Ci0JCXMzOTBfcmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQoJnRpcWRpb190aGluaW50X2hhbmRsZXIsIE5VTEwpOworCQlzMzkwX3JlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KCZ0aXFkaW9fdGhpbmludF9oYW5kbGVyLCBOVUxMLAorCQkJCQkJVElRRElPX1RISU5JTlRfSVNDKTsKIAlpZiAoSVNfRVJSKHRpcWRpb19pbmQpKSB7CiAJCXNwcmludGYoZGJmX3RleHQsICJyZWd0aG4lbHgiLCBQVFJfRVJSKHRpcWRpb19pbmQpKTsKIAkJUURJT19EQkZfVEVYVDAoMCxzZXR1cCxkYmZfdGV4dCk7CkBAIC0zNzM4LDcgKzM3MzAsOCBAQAogdGlxZGlvX3VucmVnaXN0ZXJfdGhpbmludHModm9pZCkKIHsKIAlpZiAodGlxZGlvX2luZCkKLQkJczM5MF91bnJlZ2lzdGVyX2FkYXB0ZXJfaW50ZXJydXB0KHRpcWRpb19pbmQpOworCQlzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodGlxZGlvX2luZCwKKwkJCQkJCSAgVElRRElPX1RISU5JTlRfSVNDKTsKIH0KIAogc3RhdGljIGludApAQCAtMzg5OSw2ICszODkyLDcgQEAKIAkJCQkJICAgIHFkaW9fbWVtcG9vbF9hbGxvYywKIAkJCQkJICAgIHFkaW9fbWVtcG9vbF9mcmVlLCBOVUxMKTsKIAorCWlzY19yZWdpc3RlcihRRElPX0FJUlFfSVNDKTsKIAlpZiAodGlxZGlvX2NoZWNrX2Noc2NfYXZhaWxhYmlsaXR5KCkpCiAJCVFESU9fUFJJTlRfRVJSKCJOb3QgYWxsIENIU0NzIHN1cHBvcnRlZC4gQ29udGludWluZy5cbiIpOwogCkBAIC0zOTExLDYgKzM5MDUsNyBAQAogY2xlYW51cF9RRElPKHZvaWQpCiB7CiAJdGlxZGlvX3VucmVnaXN0ZXJfdGhpbmludHMoKTsKKwlpc2NfdW5yZWdpc3RlcihRRElPX0FJUlFfSVNDKTsKIAlxZGlvX3JlbW92ZV9wcm9jZnNfZW50cnkoKTsKIAlxZGlvX3JlbGVhc2VfcWRpb19tZW1vcnkoKTsKIAlxZGlvX3VucmVnaXN0ZXJfZGJmX3ZpZXdzKCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL3FkaW8uaCBiL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCmluZGV4IGMzZGY2YjIuLjc2NTYwODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCisrKyBiL2RyaXZlcnMvczM5MC9jaW8vcWRpby5oCkBAIC0yLDggKzIsOCBAQAogI2RlZmluZSBfQ0lPX1FESU9fSAogCiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLQotI2luY2x1ZGUgInNjaGlkLmgiCisjaW5jbHVkZSA8YXNtL2lzYy5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgogCiAjaWZkZWYgQ09ORklHX1FESU9fREVCVUcKICNkZWZpbmUgUURJT19WRVJCT1NFX0xFVkVMIDkKQEAgLTI2LDcgKzI2LDcgQEAKICAqLwogI2RlZmluZSBJUURJT19GSUxMX0xFVkVMX1RPX1BPTEwgNAogCi0jZGVmaW5lIFRJUURJT19USElOSU5UX0lTQyAzCisjZGVmaW5lIFRJUURJT19USElOSU5UX0lTQyBRRElPX0FJUlFfSVNDCiAjZGVmaW5lIFRJUURJT19ERUxBWV9UQVJHRVQgMAogI2RlZmluZSBRRElPX0JVU1lfQklUX1BBVElFTkNFIDEwMCAvKiBpbiBtaWNyb3NlY3MgKi8KICNkZWZpbmUgUURJT19CVVNZX0JJVF9HSVZFX1VQIDEwMDAwMDAwIC8qIDEwIHNlY29uZHMgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jaW8vc2NoaWQuaCBiL2RyaXZlcnMvczM5MC9jaW8vc2NoaWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQzMjhmZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3MzOTAvY2lvL3NjaGlkLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0jaWZuZGVmIFMzOTBfU0NISURfSAotI2RlZmluZSBTMzkwX1NDSElEX0gKLQotc3RydWN0IHN1YmNoYW5uZWxfaWQgewotCV9fdTMyIHJlc2VydmVkOjEzOwotCV9fdTMyIHNzaWQ6MjsKLQlfX3UzMiBvbmU6MTsKLQlfX3UzMiBzY2hfbm86MTY7Ci19IF9fYXR0cmlidXRlX18gKChwYWNrZWQsYWxpZ25lZCg0KSkpOwotCi0KLS8qIEhlbHBlciBmdW5jdGlvbiBmb3Igc2FuZSBzdGF0ZSBvZiBwcmUtYWxsb2NhdGVkIHN1YmNoYW5uZWxfaWQuICovCi1zdGF0aWMgaW5saW5lIHZvaWQKLWluaXRfc3ViY2hhbm5lbF9pZChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQpCi17Ci0JbWVtc2V0KHNjaGlkLCAwLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKLQlzY2hpZC0+b25lID0gMTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQKLXNjaGlkX2VxdWFsKHN0cnVjdCBzdWJjaGFubmVsX2lkICpzY2hpZDEsIHN0cnVjdCBzdWJjaGFubmVsX2lkICpzY2hpZDIpCi17Ci0JcmV0dXJuICFtZW1jbXAoc2NoaWQxLCBzY2hpZDIsIHNpemVvZihzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCkpOwotfQotCi0jZW5kaWYgLyogUzM5MF9TQ0hJRF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY2lvL3Njc3cuYyBiL2RyaXZlcnMvczM5MC9jaW8vc2Nzdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZGEyNWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3MzOTAvY2lvL3Njc3cuYwpAQCAtMCwwICsxLDg0MyBAQAorLyoKKyAqICBIZWxwZXIgZnVuY3Rpb25zIGZvciBzY3N3IGFjY2Vzcy4KKyAqCisgKiAgICBDb3B5cmlnaHQgSUJNIENvcnAuIDIwMDgKKyAqICAgIEF1dGhvcihzKTogUGV0ZXIgT2JlcnBhcmxlaXRlciA8cGV0ZXIub2JlcnBhcmxlaXRlckBkZS5pYm0uY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGFzbS9jaW8uaD4KKyNpbmNsdWRlICJjc3MuaCIKKyNpbmNsdWRlICJjaHNjLmgiCisKKy8qKgorICogc2Nzd19pc190bSAtIGNoZWNrIGZvciB0cmFuc3BvcnQgbW9kZSBzY3N3CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyBhIHRyYW5zcG9ydCBtb2RlIHNjc3csIHplcm8KKyAqIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfaXNfdG0odW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gY3NzX2dlbmVyYWxfY2hhcmFjdGVyaXN0aWNzLmZjeCAmJiAoc2Nzdy0+dG0ueCA9PSAxKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc190bSk7CisKKy8qKgorICogc2Nzd19rZXkgLSByZXR1cm4gc2NzdyBrZXkgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBrZXkgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2tleSh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0ua2V5OworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5rZXk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfa2V5KTsKKworLyoqCisgKiBzY3N3X2Vzd2YgLSByZXR1cm4gc2NzdyBlc3dmIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uZXN3ZjsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZXN3ZjsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19lc3dmKTsKKworLyoqCisgKiBzY3N3X2NjIC0gcmV0dXJuIHNjc3cgY2MgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmNjOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5jYzsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jYyk7CisKKy8qKgorICogc2Nzd19lY3RsIC0gcmV0dXJuIHNjc3cgZWN0bCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLmVjdGw7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmVjdGw7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZWN0bCk7CisKKy8qKgorICogc2Nzd19wbm8gLSByZXR1cm4gc2NzdyBwbm8gZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBwbm8gZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X3Bubyh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0ucG5vOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5wbm87Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfcG5vKTsKKworLyoqCisgKiBzY3N3X2ZjdGwgLSByZXR1cm4gc2NzdyBmY3RsIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZmN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uZmN0bDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZmN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19mY3RsKTsKKworLyoqCisgKiBzY3N3X2FjdGwgLSByZXR1cm4gc2NzdyBhY3RsIGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgYWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfYWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uYWN0bDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuYWN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19hY3RsKTsKKworLyoqCisgKiBzY3N3X3N0Y3RsIC0gcmV0dXJuIHNjc3cgc3RjdGwgZmllbGQKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3csIHJlZ2FyZGxlc3Mgb2YKKyAqIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqLwordTMyIHNjc3dfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3ctPnRtLnN0Y3RsOworCWVsc2UKKwkJcmV0dXJuIHNjc3ctPmNtZC5zdGN0bDsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19zdGN0bCk7CisKKy8qKgorICogc2Nzd19kc3RhdCAtIHJldHVybiBzY3N3IGRzdGF0IGZpZWxkCisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZHN0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3LCByZWdhcmRsZXNzIG9mCisgKiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKi8KK3UzMiBzY3N3X2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3LT50bS5kc3RhdDsKKwllbHNlCisJCXJldHVybiBzY3N3LT5jbWQuZHN0YXQ7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfZHN0YXQpOworCisvKioKKyAqIHNjc3dfY3N0YXQgLSByZXR1cm4gc2NzdyBjc3RhdCBmaWVsZAorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdywgcmVnYXJkbGVzcyBvZgorICogd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICovCit1MzIgc2Nzd19jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzdy0+dG0uY3N0YXQ7CisJZWxzZQorCQlyZXR1cm4gc2Nzdy0+Y21kLmNzdGF0OworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NzdGF0KTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9rZXkgLSBjaGVjayBrZXkgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGtleSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9rZXkodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9rZXkpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX3NjdGwgLSBjaGVjayBmY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBmY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9zY3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9lc3dmKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZXN3Zik7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfY2MgLSBjaGVjayBjYyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY2MgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJICAgICAgIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfY2MpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCAtIGNoZWNrIGZtdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZm10IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2ZtdCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfcGZjaCAtIGNoZWNrIHBmY2ggZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHBmY2ggZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfcGZjaCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3BmY2gpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2lzaWMgLSBjaGVjayBpc2ljIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBpc2ljIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2lzaWModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9pc2ljKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9hbGNjIC0gY2hlY2sgYWxjYyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgYWxjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9hbGNjKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfYWxjYyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfc3NpIC0gY2hlY2sgc3NpIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzc2kgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfc3NpKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfc3NpKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF96Y2MgLSBjaGVjayB6Y2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHpjYyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF96Y2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpICYmCisJICAgICAgIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3pjYyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCAtIGNoZWNrIGVjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgIShzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX0lOVEVSX1NUQVRVUykgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfcG5vIC0gY2hlY2sgcG5vIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBwbm8gZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuZmN0bCAhPSAwKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKCEoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8CisJCSAoKHNjc3ctPmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSAmJgorCQkgIChzY3N3LT5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3Bubyk7CisKKy8qKgorICogc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCAtIGNoZWNrIGZjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBjb21tYW5kIG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX2ZjdGwpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2FjdGwgLSBjaGVjayBhY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBhY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2FjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9hY3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9zdGN0bCAtIGNoZWNrIHN0Y3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9zdGN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKTsKKworLyoqCisgKiBzY3N3X2NtZF9pc192YWxpZF9kc3RhdCAtIGNoZWNrIGRzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBkc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIGNvbW1hbmQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X2NtZF9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+Y21kLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgKHNjc3ctPmNtZC5jYyAhPSAzKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19jbWRfaXNfdmFsaWRfZHN0YXQpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0IC0gY2hlY2sgY3N0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgY29tbWFuZCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoc2Nzdy0+Y21kLmNjICE9IDMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2NtZF9pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9rZXkgLSBjaGVjayBrZXkgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGtleSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2tleSk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9lc3dmKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2NjIC0gY2hlY2sgY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNjIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9jYyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uZmN0bCAmIFNDU1dfRkNUTF9TVEFSVF9GVU5DKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9jYyk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mbXQgLSBjaGVjayBmbXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZtdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZm10KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZm10KTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX3ggLSBjaGVjayB4IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSB4IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF94KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfeCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9xIC0gY2hlY2sgcSBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgcSBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfcSh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3EpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfZWN0bCAtIGNoZWNrIGVjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGVjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2VjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgJiYKKwkgICAgICAgIShzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfSU5URVJfU1RBVFVTKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9wbm8gLSBjaGVjayBwbm8gZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHBubyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5mY3RsICE9IDApICYmCisJICAgICAgIChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgICghKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpIHx8CisJCSAoKHNjc3ctPnRtLnN0Y3RsICYgU0NTV19TVENUTF9JTlRFUl9TVEFUVVMpICYmCisJCSAgKHNjc3ctPnRtLmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSkpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3Bubyk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mY3RsIC0gY2hlY2sgZmN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZmN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZmN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9hY3RsIC0gY2hlY2sgYWN0bCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgYWN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfYWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCS8qIE9ubHkgdmFsaWQgaWYgcG1jdy5kbnYgPT0gMSovCisJcmV0dXJuIDE7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfYWN0bCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9zdGN0bCAtIGNoZWNrIHN0Y3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBzdGN0bCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwkvKiBPbmx5IHZhbGlkIGlmIHBtY3cuZG52ID09IDEqLworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX3N0Y3RsKTsKKworLyoqCisgKiBzY3N3X3RtX2lzX3ZhbGlkX2RzdGF0IC0gY2hlY2sgZHN0YXQgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGRzdGF0IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgdHJhbnNwb3J0IG1vZGUgc2NzdyBpcworICogdmFsaWQsIHplcm8gb3RoZXJ3aXNlLgorICovCitpbnQgc2Nzd190bV9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAoc2Nzdy0+dG0uc3RjdGwgJiBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSAmJgorCSAgICAgICAoc2Nzdy0+dG0uY2MgIT0gMyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfZHN0YXQpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfY3N0YXQgLSBjaGVjayBjc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY3N0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5zdGN0bCAmIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpICYmCisJICAgICAgIChzY3N3LT50bS5jYyAhPSAzKTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd190bV9pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd190bV9pc192YWxpZF9mY3hzIC0gY2hlY2sgZmN4cyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZmN4cyBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zcG9ydCBtb2RlIHNjc3cgaXMKKyAqIHZhbGlkLCB6ZXJvIG90aGVyd2lzZS4KKyAqLworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN4cyh1bmlvbiBzY3N3ICpzY3N3KQoreworCXJldHVybiAxOworfQorRVhQT1JUX1NZTUJPTChzY3N3X3RtX2lzX3ZhbGlkX2ZjeHMpOworCisvKioKKyAqIHNjc3dfdG1faXNfdmFsaWRfc2NoeHMgLSBjaGVjayBzY2h4cyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgc2NoeHMgZmllbGQgb2YgdGhlIHNwZWNpZmllZCB0cmFuc3BvcnQgbW9kZSBzY3N3IGlzCisgKiB2YWxpZCwgemVybyBvdGhlcndpc2UuCisgKi8KK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT50bS5jc3RhdCAmIChTQ0hOX1NUQVRfUFJPR19DSEVDSyB8CisJCQkJICBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CisJCQkJICBTQ0hOX1NUQVRfUFJPVF9DSEVDSyB8CisJCQkJICBTQ0hOX1NUQVRfQ0hOX0RBVEFfQ0hLKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfdmFsaWRfc2NoeHMpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfYWN0bCAtIGNoZWNrIGFjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGFjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2FjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfYWN0bChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9hY3RsKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2NjIC0gY2hlY2sgY2MgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGNjIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfY2Moc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfY2Moc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfY2MpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfY3N0YXQgLSBjaGVjayBjc3RhdCBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY3N0YXQgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9jc3RhdCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9jc3RhdChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9jc3RhdChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9jc3RhdCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9kc3RhdCAtIGNoZWNrIGRzdGF0IGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBkc3RhdCBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2RzdGF0KHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2RzdGF0KTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2VjdGwgLSBjaGVjayBlY3RsIGZpZWxkIHZhbGlkaXR5CisgKiBAc2NzdzogcG9pbnRlciB0byBzY3N3CisgKgorICogUmV0dXJuIG5vbi16ZXJvIGlmIHRoZSBlY3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KQoreworCWlmIChzY3N3X2lzX3RtKHNjc3cpKQorCQlyZXR1cm4gc2Nzd190bV9pc192YWxpZF9lY3RsKHNjc3cpOworCWVsc2UKKwkJcmV0dXJuIHNjc3dfY21kX2lzX3ZhbGlkX2VjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfZWN0bCk7CisKKy8qKgorICogc2Nzd19pc192YWxpZF9lc3dmIC0gY2hlY2sgZXN3ZiBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgZXN3ZiBmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIHNjc3cgaXMgdmFsaWQsCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgaXMgYSB0cmFuc3BvcnQgbW9kZSBvciBjb21tYW5kIG1vZGUgc2Nzdy4KKyAqIFJldHVybiB6ZXJvIGlmIHRoZSBmaWVsZCBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgdmFsdWUuCisgKi8KK2ludCBzY3N3X2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfZXN3ZihzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9lc3dmKHNjc3cpOworfQorRVhQT1JUX1NZTUJPTChzY3N3X2lzX3ZhbGlkX2Vzd2YpOworCisvKioKKyAqIHNjc3dfaXNfdmFsaWRfZmN0bCAtIGNoZWNrIGZjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIGZjdGwgZmllbGQgb2YgdGhlIHNwZWNpZmllZCBzY3N3IGlzIHZhbGlkLAorICogcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGlzIGEgdHJhbnNwb3J0IG1vZGUgb3IgY29tbWFuZCBtb2RlIHNjc3cuCisgKiBSZXR1cm4gemVybyBpZiB0aGUgZmllbGQgZG9lcyBub3QgY29udGFpbiBhIHZhbGlkIHZhbHVlLgorICovCitpbnQgc2Nzd19pc192YWxpZF9mY3RsKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfZmN0bChzY3N3KTsKK30KK0VYUE9SVF9TWU1CT0woc2Nzd19pc192YWxpZF9mY3RsKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX2tleSAtIGNoZWNrIGtleSBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUga2V5IGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX2tleShzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9rZXkoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfa2V5KTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX3BubyAtIGNoZWNrIHBubyBmaWVsZCB2YWxpZGl0eQorICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgcG5vIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfcG5vKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3ZhbGlkX3BubyhzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc192YWxpZF9wbm8oc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfcG5vKTsKKworLyoqCisgKiBzY3N3X2lzX3ZhbGlkX3N0Y3RsIC0gY2hlY2sgc3RjdGwgZmllbGQgdmFsaWRpdHkKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHN0Y3RsIGZpZWxkIG9mIHRoZSBzcGVjaWZpZWQgc2NzdyBpcyB2YWxpZCwKKyAqIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBhIHRyYW5zcG9ydCBtb2RlIG9yIGNvbW1hbmQgbW9kZSBzY3N3LgorICogUmV0dXJuIHplcm8gaWYgdGhlIGZpZWxkIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCB2YWx1ZS4KKyAqLworaW50IHNjc3dfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2NzdykKK3sKKwlpZiAoc2Nzd19pc190bShzY3N3KSkKKwkJcmV0dXJuIHNjc3dfdG1faXNfdmFsaWRfc3RjdGwoc2Nzdyk7CisJZWxzZQorCQlyZXR1cm4gc2Nzd19jbWRfaXNfdmFsaWRfc3RjdGwoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfdmFsaWRfc3RjdGwpOworCisvKioKKyAqIHNjc3dfY21kX2lzX3NvbGljaXRlZCAtIGNoZWNrIGZvciBzb2xpY2l0ZWQgc2NzdworICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgY29tbWFuZCBtb2RlIHNjc3cgaW5kaWNhdGVzIHRoYXQgdGhlIGFzc29jaWF0ZWQKKyAqIHN0YXR1cyBjb25kaXRpb24gaXMgc29saWNpdGVkLCB6ZXJvIGlmIGl0IGlzIHVuc29saWNpdGVkLgorICovCitpbnQgc2Nzd19jbWRfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJcmV0dXJuIChzY3N3LT5jbWQuY2MgIT0gMCkgfHwgKHNjc3ctPmNtZC5zdGN0bCAhPQorCQkoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfY21kX2lzX3NvbGljaXRlZCk7CisKKy8qKgorICogc2Nzd190bV9pc19zb2xpY2l0ZWQgLSBjaGVjayBmb3Igc29saWNpdGVkIHNjc3cKKyAqIEBzY3N3OiBwb2ludGVyIHRvIHNjc3cKKyAqCisgKiBSZXR1cm4gbm9uLXplcm8gaWYgdGhlIHRyYW5zcG9ydCBtb2RlIHNjc3cgaW5kaWNhdGVzIHRoYXQgdGhlIGFzc29jaWF0ZWQKKyAqIHN0YXR1cyBjb25kaXRpb24gaXMgc29saWNpdGVkLCB6ZXJvIGlmIGl0IGlzIHVuc29saWNpdGVkLgorICovCitpbnQgc2Nzd190bV9pc19zb2xpY2l0ZWQodW5pb24gc2NzdyAqc2NzdykKK3sKKwlyZXR1cm4gKHNjc3ctPnRtLmNjICE9IDApIHx8IChzY3N3LT50bS5zdGN0bCAhPQorCQkoU0NTV19TVENUTF9TVEFUVVNfUEVORCB8IFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTKSk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfdG1faXNfc29saWNpdGVkKTsKKworLyoqCisgKiBzY3N3X2lzX3NvbGljaXRlZCAtIGNoZWNrIGZvciBzb2xpY2l0ZWQgc2NzdworICogQHNjc3c6IHBvaW50ZXIgdG8gc2NzdworICoKKyAqIFJldHVybiBub24temVybyBpZiB0aGUgdHJhbnNwb3J0IG9yIGNvbW1hbmQgbW9kZSBzY3N3IGluZGljYXRlcyB0aGF0IHRoZQorICogYXNzb2NpYXRlZCBzdGF0dXMgY29uZGl0aW9uIGlzIHNvbGljaXRlZCwgemVybyBpZiBpdCBpcyB1bnNvbGljaXRlZC4KKyAqLworaW50IHNjc3dfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpCit7CisJaWYgKHNjc3dfaXNfdG0oc2NzdykpCisJCXJldHVybiBzY3N3X3RtX2lzX3NvbGljaXRlZChzY3N3KTsKKwllbHNlCisJCXJldHVybiBzY3N3X2NtZF9pc19zb2xpY2l0ZWQoc2Nzdyk7Cit9CitFWFBPUlRfU1lNQk9MKHNjc3dfaXNfc29saWNpdGVkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5jCmluZGV4IGExYWIzZTMuLjYyYjZiNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuYwpAQCAtMzQsMTMgKzM0LDE1IEBACiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxhc20vczM5MF9yZGV2Lmg+CiAjaW5jbHVkZSA8YXNtL3Jlc2V0Lmg+CisjaW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+CiAKICNpbmNsdWRlICJhcF9idXMuaCIKIAogLyogU29tZSBwcm90b3R5cGVzLiAqLwogc3RhdGljIHZvaWQgYXBfc2Nhbl9idXMoc3RydWN0IHdvcmtfc3RydWN0ICopOwogc3RhdGljIHZvaWQgYXBfcG9sbF9hbGwodW5zaWduZWQgbG9uZyk7Ci1zdGF0aWMgdm9pZCBhcF9wb2xsX3RpbWVvdXQodW5zaWduZWQgbG9uZyk7CitzdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgYXBfcG9sbF90aW1lb3V0KHN0cnVjdCBocnRpbWVyICopOwogc3RhdGljIGludCBhcF9wb2xsX3RocmVhZF9zdGFydCh2b2lkKTsKIHN0YXRpYyB2b2lkIGFwX3BvbGxfdGhyZWFkX3N0b3Aodm9pZCk7CiBzdGF0aWMgdm9pZCBhcF9yZXF1ZXN0X3RpbWVvdXQodW5zaWduZWQgbG9uZyk7CkBAIC04MCwxMiArODIsMTUgQEAKIC8qCiAgKiBUYXNrbGV0ICYgdGltZXIgZm9yIEFQIHJlcXVlc3QgcG9sbGluZy4KICAqLwotc3RhdGljIHN0cnVjdCB0aW1lcl9saXN0IGFwX3BvbGxfdGltZXIgPSBUSU1FUl9JTklUSUFMSVpFUihhcF9wb2xsX3RpbWVvdXQsMCwwKTsKIHN0YXRpYyBERUNMQVJFX1RBU0tMRVQoYXBfdGFza2xldCwgYXBfcG9sbF9hbGwsIDApOwogc3RhdGljIGF0b21pY190IGFwX3BvbGxfcmVxdWVzdHMgPSBBVE9NSUNfSU5JVCgwKTsKIHN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChhcF9wb2xsX3dhaXQpOwogc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqYXBfcG9sbF9rdGhyZWFkID0gTlVMTDsKIHN0YXRpYyBERUZJTkVfTVVURVgoYXBfcG9sbF90aHJlYWRfbXV0ZXgpOworc3RhdGljIHN0cnVjdCBocnRpbWVyIGFwX3BvbGxfdGltZXI7CisvKiBJbiBMUEFSIHBvbGwgd2l0aCA0a0h6IGZyZXF1ZW5jeS4gUG9sbCBldmVyeSAyNTAwMDAgbmFub3NlY29uZHMuCisgKiBJZiB6L1ZNIGNoYW5nZSB0byAxNTAwMDAwIG5hbm9zZWNvbmRzIHRvIGFkanVzdCB0byB6L1ZNIHBvbGxpbmcuKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcG9sbF90aW1lb3V0ID0gMjUwMDAwOwogCiAvKioKICAqIGFwX2ludHJ1Y3Rpb25zX2F2YWlsYWJsZSgpIC0gVGVzdCBpZiBBUCBpbnN0cnVjdGlvbnMgYXJlIGF2YWlsYWJsZS4KQEAgLTYzNiwxMSArNjQxLDM5IEBACiAKIHN0YXRpYyBCVVNfQVRUUihwb2xsX3RocmVhZCwgMDY0NCwgYXBfcG9sbF90aHJlYWRfc2hvdywgYXBfcG9sbF90aHJlYWRfc3RvcmUpOwogCitzdGF0aWMgc3NpemVfdCBwb2xsX3RpbWVvdXRfc2hvdyhzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY2hhciAqYnVmKQoreworCXJldHVybiBzbnByaW50ZihidWYsIFBBR0VfU0laRSwgIiVsbHVcbiIsIHBvbGxfdGltZW91dCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHBvbGxfdGltZW91dF9zdG9yZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywgY29uc3QgY2hhciAqYnVmLAorCQkJCSAgc2l6ZV90IGNvdW50KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyB0aW1lOworCWt0aW1lX3QgaHJfdGltZTsKKworCS8qIDEyMCBzZWNvbmRzID0gbWF4aW11bSBwb2xsIGludGVydmFsICovCisJaWYgKHNzY2FuZihidWYsICIlbGx1XG4iLCAmdGltZSkgIT0gMSB8fCB0aW1lIDwgMSB8fCB0aW1lID4gMTIwMDAwMDAwMDAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlwb2xsX3RpbWVvdXQgPSB0aW1lOworCWhyX3RpbWUgPSBrdGltZV9zZXQoMCwgcG9sbF90aW1lb3V0KTsKKworCWlmICghaHJ0aW1lcl9pc19xdWV1ZWQoJmFwX3BvbGxfdGltZXIpIHx8CisJICAgICFocnRpbWVyX2ZvcndhcmQoJmFwX3BvbGxfdGltZXIsIGFwX3BvbGxfdGltZXIuZXhwaXJlcywgaHJfdGltZSkpIHsKKwkJYXBfcG9sbF90aW1lci5leHBpcmVzID0gaHJfdGltZTsKKwkJaHJ0aW1lcl9zdGFydCgmYXBfcG9sbF90aW1lciwgaHJfdGltZSwgSFJUSU1FUl9NT0RFX0FCUyk7CisJfQorCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIEJVU19BVFRSKHBvbGxfdGltZW91dCwgMDY0NCwgcG9sbF90aW1lb3V0X3Nob3csIHBvbGxfdGltZW91dF9zdG9yZSk7CisKIHN0YXRpYyBzdHJ1Y3QgYnVzX2F0dHJpYnV0ZSAqY29uc3QgYXBfYnVzX2F0dHJzW10gPSB7CiAJJmJ1c19hdHRyX2FwX2RvbWFpbiwKIAkmYnVzX2F0dHJfY29uZmlnX3RpbWUsCiAJJmJ1c19hdHRyX3BvbGxfdGhyZWFkLAotCU5VTEwKKwkmYnVzX2F0dHJfcG9sbF90aW1lb3V0LAorCU5VTEwsCiB9OwogCiAvKioKQEAgLTg5NSw5ICs5MjgsMTAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGFwX3NjaGVkdWxlX3BvbGxfdGltZXIodm9pZCkKIHsKLQlpZiAodGltZXJfcGVuZGluZygmYXBfcG9sbF90aW1lcikpCisJaWYgKGhydGltZXJfaXNfcXVldWVkKCZhcF9wb2xsX3RpbWVyKSkKIAkJcmV0dXJuOwotCW1vZF90aW1lcigmYXBfcG9sbF90aW1lciwgamlmZmllcyArIEFQX1BPTExfVElNRSk7CisJaHJ0aW1lcl9zdGFydCgmYXBfcG9sbF90aW1lciwga3RpbWVfc2V0KDAsIHBvbGxfdGltZW91dCksCisJCSAgICAgIEhSVElNRVJfTU9ERV9BQlMpOwogfQogCiAvKioKQEAgLTExMTUsMTMgKzExNDksMTQgQEAKIAogLyoqCiAgKiBhcF9wb2xsX3RpbWVvdXQoKTogQVAgcmVjZWl2ZSBwb2xsaW5nIGZvciBmaW5pc2hlZCBBUCByZXF1ZXN0cy4KLSAqIEB1bnVzZWQ6IFVudXNlZCB2YXJpYWJsZS4KKyAqIEB1bnVzZWQ6IFVudXNlZCBwb2ludGVyLgogICoKLSAqIFNjaGVkdWxlcyB0aGUgQVAgdGFza2xldC4KKyAqIFNjaGVkdWxlcyB0aGUgQVAgdGFza2xldCB1c2luZyBhIGhpZ2ggcmVzb2x1dGlvbiB0aW1lci4KICAqLwotc3RhdGljIHZvaWQgYXBfcG9sbF90aW1lb3V0KHVuc2lnbmVkIGxvbmcgdW51c2VkKQorc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IGFwX3BvbGxfdGltZW91dChzdHJ1Y3QgaHJ0aW1lciAqdW51c2VkKQogewogCXRhc2tsZXRfc2NoZWR1bGUoJmFwX3Rhc2tsZXQpOworCXJldHVybiBIUlRJTUVSX05PUkVTVEFSVDsKIH0KIAogLyoqCkBAIC0xMzQ0LDYgKzEzNzksMTQgQEAKIAlhcF9jb25maWdfdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBhcF9jb25maWdfdGltZSAqIEhaOwogCWFkZF90aW1lcigmYXBfY29uZmlnX3RpbWVyKTsKIAorCS8qIFNldHVwIHRoZSBoaWdoIHJlc3VsdGlvbiBwb2xsIHRpbWVyLgorCSAqIElmIHdlIGFyZSBydW5uaW5nIHVuZGVyIHovVk0gYWRqdXN0IHBvbGxpbmcgdG8gei9WTSBwb2xsaW5nIHJhdGUuCisJICovCisJaWYgKE1BQ0hJTkVfSVNfVk0pCisJCXBvbGxfdGltZW91dCA9IDE1MDAwMDA7CisJaHJ0aW1lcl9pbml0KCZhcF9wb2xsX3RpbWVyLCBDTE9DS19NT05PVE9OSUMsIEhSVElNRVJfTU9ERV9BQlMpOworCWFwX3BvbGxfdGltZXIuZnVuY3Rpb24gPSBhcF9wb2xsX3RpbWVvdXQ7CisKIAkvKiBTdGFydCB0aGUgbG93IHByaW9yaXR5IEFQIGJ1cyBwb2xsIHRocmVhZC4gKi8KIAlpZiAoYXBfdGhyZWFkX2ZsYWcpIHsKIAkJcmMgPSBhcF9wb2xsX3RocmVhZF9zdGFydCgpOwpAQCAtMTM1NSw3ICsxMzk4LDcgQEAKIAogb3V0X3dvcms6CiAJZGVsX3RpbWVyX3N5bmMoJmFwX2NvbmZpZ190aW1lcik7Ci0JZGVsX3RpbWVyX3N5bmMoJmFwX3BvbGxfdGltZXIpOworCWhydGltZXJfY2FuY2VsKCZhcF9wb2xsX3RpbWVyKTsKIAlkZXN0cm95X3dvcmtxdWV1ZShhcF93b3JrX3F1ZXVlKTsKIG91dF9yb290OgogCXMzOTBfcm9vdF9kZXZfdW5yZWdpc3RlcihhcF9yb290X2RldmljZSk7CkBAIC0xMzg2LDcgKzE0MjksNyBAQAogCWFwX3Jlc2V0X2RvbWFpbigpOwogCWFwX3BvbGxfdGhyZWFkX3N0b3AoKTsKIAlkZWxfdGltZXJfc3luYygmYXBfY29uZmlnX3RpbWVyKTsKLQlkZWxfdGltZXJfc3luYygmYXBfcG9sbF90aW1lcik7CisJaHJ0aW1lcl9jYW5jZWwoJmFwX3BvbGxfdGltZXIpOwogCWRlc3Ryb3lfd29ya3F1ZXVlKGFwX3dvcmtfcXVldWUpOwogCXRhc2tsZXRfa2lsbCgmYXBfdGFza2xldCk7CiAJczM5MF9yb290X2Rldl91bnJlZ2lzdGVyKGFwX3Jvb3RfZGV2aWNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmggYi9kcml2ZXJzL3MzOTAvY3J5cHRvL2FwX2J1cy5oCmluZGV4IGMxZTEyMDAuLjQ0NjM3OGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vYXBfYnVzLmgKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by9hcF9idXMuaApAQCAtOTIsNiArOTIsOCBAQAogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9QQ0lYQ0MJNQogI2RlZmluZSBBUF9ERVZJQ0VfVFlQRV9DRVgyQQk2CiAjZGVmaW5lIEFQX0RFVklDRV9UWVBFX0NFWDJDCTcKKyNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYMkEyCTgKKyNkZWZpbmUgQVBfREVWSUNFX1RZUEVfQ0VYMkMyCTkKIAogLyoKICAqIEFQIHJlc2V0IGZsYWcgc3RhdGVzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCmluZGV4IDRkMzZlODAuLmNiMjJiOTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vYXRvbWljLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC9od19yYW5kb20uaD4KQEAgLTMwMCw3ICszMDEsOSBAQAogICovCiBzdGF0aWMgaW50IHpjcnlwdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogeworCWxvY2tfa2VybmVsKCk7CiAJYXRvbWljX2luYygmemNyeXB0X29wZW5fY291bnQpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTA2OCwxMCArMTA3MSw4IEBACiAKICNkZWZpbmUgTEJVRlNJWkUgMTIwMFVMCiAJbGJ1ZiA9IGttYWxsb2MoTEJVRlNJWkUsIEdGUF9LRVJORUwpOwotCWlmICghbGJ1ZikgewotCQlQUklOVEsoImttYWxsb2MgZmFpbGVkIVxuIik7CisJaWYgKCFsYnVmKQogCQlyZXR1cm4gMDsKLQl9CiAKIAlsb2NhbF9jb3VudCA9IG1pbihMQlVGU0laRSAtIDEsIGNvdW50KTsKIAlpZiAoY29weV9mcm9tX3VzZXIobGJ1ZiwgYnVmZmVyLCBsb2NhbF9jb3VudCkgIT0gMCkgewpAQCAtMTA4MSwyMyArMTA4MiwxNSBAQAogCWxidWZbbG9jYWxfY291bnRdID0gJ1wwJzsKIAogCXB0ciA9IHN0cnN0cihsYnVmLCAiT25saW5lIGRldmljZXMiKTsKLQlpZiAoIXB0cikgewotCQlQUklOVEsoIlVuYWJsZSB0byBwYXJzZSBkYXRhIChtaXNzaW5nIFwiT25saW5lIGRldmljZXNcIilcbiIpOworCWlmICghcHRyKQogCQlnb3RvIG91dDsKLQl9CiAJcHRyID0gc3Ryc3RyKHB0ciwgIlxuIik7Ci0JaWYgKCFwdHIpIHsKLQkJUFJJTlRLKCJVbmFibGUgdG8gcGFyc2UgZGF0YSAobWlzc2luZyBuZXdsaW5lICIKLQkJICAgICAgICJhZnRlciBcIk9ubGluZSBkZXZpY2VzXCIpXG4iKTsKKwlpZiAoIXB0cikKIAkJZ290byBvdXQ7Ci0JfQogCXB0cisrOwogCi0JaWYgKHN0cnN0cihwdHIsICJXYWl0aW5nIHdvcmsgZWxlbWVudCBjb3VudHMiKSA9PSBOVUxMKSB7Ci0JCVBSSU5USygiVW5hYmxlIHRvIHBhcnNlIGRhdGEgKG1pc3NpbmcgIgotCQkgICAgICAgIlwiV2FpdGluZyB3b3JrIGVsZW1lbnQgY291bnRzXCIpXG4iKTsKKwlpZiAoc3Ryc3RyKHB0ciwgIldhaXRpbmcgd29yayBlbGVtZW50IGNvdW50cyIpID09IE5VTEwpCiAJCWdvdG8gb3V0OwotCX0KIAogCWZvciAoaiA9IDA7IGogPCA2NCAmJiAqcHRyOyBwdHIrKykgewogCQkvKgpAQCAtMTE5NywxNiArMTE5MCwxMiBAQAogCiAJLyogUmVnaXN0ZXIgdGhlIHJlcXVlc3Qgc3ByYXllci4gKi8KIAlyYyA9IG1pc2NfcmVnaXN0ZXIoJnpjcnlwdF9taXNjX2RldmljZSk7Ci0JaWYgKHJjIDwgMCkgewotCQlQUklOVEtXKEtFUk5fRVJSICJtaXNjX3JlZ2lzdGVyIChtaW5vciAlZCkgZmFpbGVkIHdpdGggJWRcbiIsCi0JCQl6Y3J5cHRfbWlzY19kZXZpY2UubWlub3IsIHJjKTsKKwlpZiAocmMgPCAwKQogCQlnb3RvIG91dDsKLQl9CiAKIAkvKiBTZXQgdXAgdGhlIHByb2MgZmlsZSBzeXN0ZW0gKi8KIAl6Y3J5cHRfZW50cnkgPSBjcmVhdGVfcHJvY19lbnRyeSgiZHJpdmVyL3o5MGNyeXB0IiwgMDY0NCwgTlVMTCk7CiAJaWYgKCF6Y3J5cHRfZW50cnkpIHsKLQkJUFJJTlRLKCJDb3VsZG4ndCBjcmVhdGUgejkwY3J5cHQgcHJvYyBlbnRyeVxuIik7CiAJCXJjID0gLUVOT01FTTsKIAkJZ290byBvdXRfbWlzYzsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9hcGkuaCBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCmluZGV4IDVjNmUyMjIuLjFkMWVjNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCisrKyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2FwaS5oCkBAIC0zMCwzNCArMzAsNiBAQAogI2lmbmRlZiBfWkNSWVBUX0FQSV9IXwogI2RlZmluZSBfWkNSWVBUX0FQSV9IXwogCi0vKioKLSAqIE1hY3JvIGRlZmluaXRpb25zCi0gKgotICogUERFQlVHIGRlYnVncyBpbiB0aGUgZm9ybSAiemNyeXB0OiBmdW5jdGlvbl9uYW1lIC0+IG1lc3NhZ2UiCi0gKgotICogUFJJTlRLIGlzIGxpa2UgUERFQlVHLCBleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgZW5hYmxlZAotICogUFJJTlRLTiBpcyBsaWtlIFBSSU5USywgZXhjZXB0IHRoYXQgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgZnVuY3Rpb24gbmFtZQotICogUFJJTlRLVyBpcyBsaWtlIFBSSU5USywgZXhjZXB0IHRoYXQgaXQgdXNlcyBLRVJOX1dBUk5JTkcKLSAqIFBSSU5US0MgaXMgbGlrZSBQUklOVEssIGV4Y2VwdCB0aGF0IGl0IHVzZXMgS0VSTl9DUklUCi0gKi8KLSNkZWZpbmUgREVWX05BTUUJInpjcnlwdCIKLQotI2RlZmluZSBQUklOVEsoZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgREVWX05BTUUgIjogJXMgLT4gIiBmbXQsIF9fZnVuY19fICwgIyMgYXJncykKLSNkZWZpbmUgUFJJTlRLTihmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9ERUJVRyBERVZfTkFNRSAiOiAiIGZtdCwgIyMgYXJncykKLSNkZWZpbmUgUFJJTlRLVyhmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIERFVl9OQU1FICI6ICVzIC0+ICIgZm10LCBfX2Z1bmNfXyAsICMjIGFyZ3MpCi0jZGVmaW5lIFBSSU5US0MoZm10LCBhcmdzLi4uKSBcCi0JcHJpbnRrKEtFUk5fQ1JJVCBERVZfTkFNRSAiOiAlcyAtPiAiIGZtdCwgX19mdW5jX18gLCAjIyBhcmdzKQotCi0jaWZkZWYgWkNSWVBUX0RFQlVHCi0jZGVmaW5lIFBERUJVRyhmbXQsIGFyZ3MuLi4pIFwKLQlwcmludGsoS0VSTl9ERUJVRyBERVZfTkFNRSAiOiAlcyAtPiAiIGZtdCwgX19mdW5jX18gLCAjIyBhcmdzKQotI2Vsc2UKLSNkZWZpbmUgUERFQlVHKGZtdCwgYXJncy4uLikgZG8ge30gd2hpbGUgKDApCi0jZW5kaWYKLQogI2luY2x1ZGUgImFwX2J1cy5oIgogI2luY2x1ZGUgPGFzbS96Y3J5cHQuaD4KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4MmEuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2NleDJhLmMKaW5kZXggMDg2NTdmNi4uNTRmNGNiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfY2V4MmEuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9jZXgyYS5jCkBAIC00OSw2ICs0OSw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9jZXgyYV9pZHNbXSA9IHsKIAl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQSkgfSwKKwl7IEFQX0RFVklDRShBUF9ERVZJQ0VfVFlQRV9DRVgyQTIpIH0sCiAJeyAvKiBlbmQgb2YgbGlzdCAqLyB9LAogfTsKIApAQCAtMjQyLDkgKzI0Myw2IEBACiAJCXJldHVybiBjb252ZXJ0X3R5cGU4MCh6ZGV2LCByZXBseSwKIAkJCQkgICAgICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfZXJyb3IuaCBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X2Vycm9yLmgKaW5kZXggM2UyN2ZlNy4uMDNiYTI3ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfZXJyb3IuaAorKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9lcnJvci5oCkBAIC05MiwxMCArOTIsNiBAQAogewogCXN0cnVjdCBlcnJvcl9oZHIgKmVoZHIgPSByZXBseS0+bWVzc2FnZTsKIAotCVBSSU5USygiSGFyZHdhcmUgZXJyb3IgOiBUeXBlICUwMnggTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCSAgICAgICBlaGRyLT50eXBlLCAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlICsgNCkpOwotCiAJc3dpdGNoIChlaGRyLT5yZXBseV9jb2RlKSB7CiAJY2FzZSBSRVA4Ml9FUlJPUl9PUEVSQU5EX0lOVkFMSUQ6CiAJY2FzZSBSRVA4Ml9FUlJPUl9PUEVSQU5EX1NJWkU6CkBAIC0xMjMsOCArMTE5LDYgQEAKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CiAJZGVmYXVsdDoKLQkJUFJJTlRLVygidW5rbm93biB0eXBlICUwMnggcmVwbHkgY29kZSA9ICVkXG4iLAotCQkJZWhkci0+dHlwZSwgZWhkci0+cmVwbHlfY29kZSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNhLmMgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYS5jCmluZGV4IDZlOTNiNDcuLjEyZGE0ODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNhLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2EuYwpAQCAtMjI2LDkgKzIyNiw2IEBACiAJCXJldHVybiBjb252ZXJ0X3R5cGU4NCh6ZGV2LCByZXBseSwKIAkJCQkgICAgICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAlkZWZhdWx0OiAvKiBVbmtub3duIHJlc3BvbnNlIHR5cGUsIHRoaXMgc2hvdWxkIE5FVkVSIEVWRVIgaGFwcGVuICovCi0JCVBSSU5USygiVW5yZWNvZ25pemVkIE1lc3NhZ2UgSGVhZGVyOiAlMDh4JTA4eFxuIiwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIHJlcGx5LT5tZXNzYWdlLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgKHJlcGx5LT5tZXNzYWdlKzQpKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2MuYyBiL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaWNjLmMKaW5kZXggMTdlYTU2Yy4uNzc5OTUyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpY2MuYworKysgYi9kcml2ZXJzL3MzOTAvY3J5cHRvL3pjcnlwdF9wY2ljYy5jCkBAIC0zNjEsMjYgKzM2MSwxOCBAQAogCXNlcnZpY2VfcmMgPSBsZTE2X3RvX2NwdShtc2ctPmNwcmIuY2NwX3J0Y29kZSk7CiAJaWYgKHVubGlrZWx5KHNlcnZpY2VfcmMgIT0gMCkpIHsKIAkJc2VydmljZV9ycyA9IGxlMTZfdG9fY3B1KG1zZy0+Y3ByYi5jY3BfcnNjb2RlKTsKLQkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY2KSB7Ci0JCQlQREVCVUcoIkJhZCBibG9jayBmb3JtYXQgb24gUENJQ0NcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjUpIHsKLQkJCVBERUJVRygiUHJvYmFibHkgYW4gZXZlbiBtb2R1bHVzIG9uIFBDSUNDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDY1KQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCX0KIAkJaWYgKHNlcnZpY2VfcmMgPT0gOCAmJiBzZXJ2aWNlX3JzID09IDc3MCkgewotCQkJUERFQlVHKCJJbnZhbGlkIGtleSBsZW5ndGggb24gUENJQ0NcbiIpOwogCQkJemRldi0+bWF4X21vZF9zaXplID0gUENJQ0NfTUFYX01PRF9TSVpFX09MRDsKIAkJCXJldHVybiAtRUFHQUlOOwogCQl9CiAJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3ODMpIHsKLQkJCVBERUJVRygiRXh0ZW5kZWQgYml0bGVuZ3RocyBub3QgZW5hYmxlZCBvbiBQQ0lDQ1xuIik7CiAJCQl6ZGV2LT5tYXhfbW9kX3NpemUgPSBQQ0lDQ19NQVhfTU9EX1NJWkVfT0xEOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KLQkJUFJJTlRLKCJVbmtub3duIHNlcnZpY2UgcmMvcnMgKFBDSUNDKTogJWQvJWRcbiIsCi0JCSAgICAgICBzZXJ2aWNlX3JjLCBzZXJ2aWNlX3JzKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNDM0LDkgKzQyNiw2IEBACiAJCQkJCSAgICAgIG91dHB1dGRhdGEsIG91dHB1dGRhdGFsZW5ndGgpOwogCQkvKiBubyBicmVhaywgaW5jb3JyZWN0IGNwcmIgdmVyc2lvbiBpcyBhbiB1bmtub3duIHJlc3BvbnNlICovCiAJZGVmYXVsdDogLyogVW5rbm93biByZXNwb25zZSB0eXBlLCB0aGlzIHNob3VsZCBORVZFUiBFVkVSIGhhcHBlbiAqLwotCQlQUklOVEsoIlVucmVjb2duaXplZCBNZXNzYWdlIEhlYWRlcjogJTA4eCUwOHhcbiIsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSByZXBseS0+bWVzc2FnZSwKLQkJICAgICAgICoodW5zaWduZWQgaW50ICopIChyZXBseS0+bWVzc2FnZSs0KSk7CiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9jcnlwdG8vemNyeXB0X3BjaXhjYy5jIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKaW5kZXggMGJjOWIzMS4uZDhhZDM2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKKysrIGIvZHJpdmVycy9zMzkwL2NyeXB0by96Y3J5cHRfcGNpeGNjLmMKQEAgLTcyLDYgKzcyLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgYXBfZGV2aWNlX2lkIHpjcnlwdF9wY2l4Y2NfaWRzW10gPSB7CiAJeyBBUF9ERVZJQ0UoQVBfREVWSUNFX1RZUEVfUENJWENDKSB9LAogCXsgQVBfREVWSUNFKEFQX0RFVklDRV9UWVBFX0NFWDJDKSB9LAorCXsgQVBfREVWSUNFKEFQX0RFVklDRV9UWVBFX0NFWDJDMikgfSwKIAl7IC8qIGVuZCBvZiBsaXN0ICovIH0sCiB9OwogCkBAIC0yODksMzggKzI5MCwxOSBAQAogCWFwX21zZy0+bGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCB0eXBlNl9oZHIpICsKIAkJQ0VJTDQoeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgpICsKIAkJeGNSQi0+cmVxdWVzdF9kYXRhX2xlbmd0aDsKLQlpZiAoYXBfbXNnLT5sZW5ndGggPiBQQ0lYQ0NfTUFYX1hDUkJfTUVTU0FHRV9TSVpFKSB7Ci0JCVBSSU5USygiQ29tYmluZWQgbWVzc2FnZSBpcyB0b28gbGFyZ2UgKCVsZC8lZC8lZCkuXG4iLAotCQkgICAgc2l6ZW9mKHN0cnVjdCB0eXBlNl9oZHIpLAotCQkgICAgeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgsCi0JCSAgICB4Y1JCLT5yZXF1ZXN0X2RhdGFfbGVuZ3RoKTsKKwlpZiAoYXBfbXNnLT5sZW5ndGggPiBQQ0lYQ0NfTUFYX1hDUkJfTUVTU0FHRV9TSVpFKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0JaWYgKENFSUw0KHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCkgPgotCSAgICBQQ0lYQ0NfTUFYX1hDUkJfUkVQTFlfU0laRSkgewotCQlQREVCVUcoIlJlcGx5IENQUkIgbGVuZ3RoIGlzIHRvbyBsYXJnZSAoJWQpLlxuIiwKLQkJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKTsKKwlpZiAoQ0VJTDQoeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9SRVBMWV9TSVpFKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9Ci0JaWYgKENFSUw0KHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9EQVRBX1NJWkUpIHsKLQkJUERFQlVHKCJSZXBseSBkYXRhIGJsb2NrIGxlbmd0aCBpcyB0b28gbGFyZ2UgKCVkKS5cbiIsCi0JCSAgICB4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCk7CisJaWYgKENFSUw0KHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKSA+IFBDSVhDQ19NQVhfWENSQl9EQVRBX1NJWkUpCiAJCXJldHVybiAtRUZBVUxUOwotCX0KIAlyZXBseWxlbiA9IENFSUw0KHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCkgKwogCQlDRUlMNCh4Y1JCLT5yZXBseV9kYXRhX2xlbmd0aCkgKwogCQlzaXplb2Yoc3RydWN0IHR5cGU4Nl9mbXQyX21zZyk7CiAJaWYgKHJlcGx5bGVuID4gUENJWENDX01BWF9YQ1JCX1JFU1BPTlNFX1NJWkUpIHsKLQkJUERFQlVHKCJSZXBseSBDUFJCICsgZGF0YSBibG9jayA+IFBDSVhDQ19NQVhfWENSQl9SRVNQT05TRV9TSVpFIgotCQkgICAgICAgIiAoJWQvJWQvJWQpLlxuIiwKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgdHlwZTg2X2ZtdDJfbXNnKSwKLQkJICAgICAgIHhjUkItPnJlcGx5X2NvbnRyb2xfYmxrX2xlbmd0aCwKLQkJICAgICAgIHhjUkItPnJlcGx5X2RhdGFfbGVuZ3RoKTsKIAkJeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoID0gUENJWENDX01BWF9YQ1JCX1JFU1BPTlNFX1NJWkUgLQogCQkJKHNpemVvZihzdHJ1Y3QgdHlwZTg2X2ZtdDJfbXNnKSArCiAJCQkgICAgQ0VJTDQoeGNSQi0+cmVwbHlfZGF0YV9sZW5ndGgpKTsKLQkJUERFQlVHKCJDYXBwaW5nIFJlcGx5IENQUkIgbGVuZ3RoIGF0ICVkXG4iLAotCQkgICAgICAgeGNSQi0+cmVwbHlfY29udHJvbF9ibGtfbGVuZ3RoKTsKIAl9CiAKIAkvKiBwcmVwYXJlIHR5cGU2IGhlYWRlciAqLwpAQCAtMzM5LDExICszMjEsOCBAQAogCQkgICAgeGNSQi0+cmVxdWVzdF9jb250cm9sX2Jsa19sZW5ndGgpKQogCQlyZXR1cm4gLUVGQVVMVDsKIAlpZiAobXNnLT5jcHJieC5jcHJiX2xlbiArIHNpemVvZihtc2ctPmhkci5mdW5jdGlvbl9jb2RlKSA+Ci0JICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKSB7Ci0JCVBERUJVRygiY3ByYl9sZW4gdG9vIGxhcmdlICglZC8lZClcbiIsIG1zZy0+Y3ByYnguY3ByYl9sZW4sCi0JCSAgICB4Y1JCLT5yZXF1ZXN0X2NvbnRyb2xfYmxrX2xlbmd0aCk7CisJICAgIHhjUkItPnJlcXVlc3RfY29udHJvbF9ibGtfbGVuZ3RoKQogCQlyZXR1cm4gLUVGQVVMVDsKLQl9CiAJZnVuY3Rpb25fY29kZSA9ICgodW5zaWduZWQgY2hhciAqKSZtc2ctPmNwcmJ4KSArIG1zZy0+Y3ByYnguY3ByYl9sZW47CiAJbWVtY3B5KG1zZy0+aGRyLmZ1bmN0aW9uX2NvZGUsIGZ1bmN0aW9uX2NvZGUsIHNpemVvZihtc2ctPmhkci5mdW5jdGlvbl9jb2RlKSk7CiAKQEAgLTQ3MSwyOSArNDUwLDE4IEBACiAJc2VydmljZV9yYyA9IG1zZy0+Y3ByYnguY2NwX3J0Y29kZTsKIAlpZiAodW5saWtlbHkoc2VydmljZV9yYyAhPSAwKSkgewogCQlzZXJ2aWNlX3JzID0gbXNnLT5jcHJieC5jY3BfcnNjb2RlOwotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpIHsKLQkJCVBERUJVRygiQmFkIGJsb2NrIGZvcm1hdCBvbiBQQ0lYQ0MvQ0VYMkNcbiIpOworCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjYpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNjUpIHsKLQkJCVBERUJVRygiUHJvYmFibHkgYW4gZXZlbiBtb2R1bHVzIG9uIFBDSVhDQy9DRVgyQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA2NSkKIAkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3NzApIHsKLQkJCVBERUJVRygiSW52YWxpZCBrZXkgbGVuZ3RoIG9uIFBDSVhDQy9DRVgyQ1xuIik7CisJCWlmIChzZXJ2aWNlX3JjID09IDggJiYgc2VydmljZV9ycyA9PSA3NzApCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQogCQlpZiAoc2VydmljZV9yYyA9PSA4ICYmIHNlcnZpY2VfcnMgPT0gNzgzKSB7Ci0JCQlQREVCVUcoIkV4dGVuZGVkIGJpdGxlbmd0aHMgbm90IGVuYWJsZWQgb24gUENJWENDL0NFWDJDXG4iKTsKIAkJCXpkZXYtPm1pbl9tb2Rfc2l6ZSA9IFBDSVhDQ19NSU5fTU9EX1NJWkVfT0xEOwogCQkJcmV0dXJuIC1FQUdBSU47CiAJCX0KLQkJaWYgKHNlcnZpY2VfcmMgPT0gMTIgJiYgc2VydmljZV9ycyA9PSA3NjkpIHsKLQkJCVBERUJVRygiSW52YWxpZCBrZXkgb24gUENJWENDL0NFWDJDXG4iKTsKKwkJaWYgKHNlcnZpY2VfcmMgPT0gMTIgJiYgc2VydmljZV9ycyA9PSA3NjkpCiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlQUklOVEsoIlVua25vd24gc2VydmljZSByYy9ycyAoUENJWENDL0NFWDJDKTogJWQvJWRcbiIsCi0JCSAgICAgICBzZXJ2aWNlX3JjLCBzZXJ2aWNlX3JzKTsKIAkJemRldi0+b25saW5lID0gMDsKIAkJcmV0dXJuIC1FQUdBSU47CS8qIHJlcGVhdCB0aGUgcmVxdWVzdCBvbiBhIGRpZmZlcmVudCBkZXZpY2UuICovCiAJfQpAQCAtNTY5LDExICs1MzcsOCBAQAogCX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSkgKm1zZyA9IHJlcGx5LT5tZXNzYWdlOwogCWNoYXIgKmRhdGEgPSByZXBseS0+bWVzc2FnZTsKIAotCWlmIChtc2ctPmNwcmJ4LmNjcF9ydGNvZGUgIT0gMCB8fCBtc2ctPmNwcmJ4LmNjcF9yc2NvZGUgIT0gMCkgewotCQlQREVCVUcoIlJORyByZXNwb25zZSBlcnJvciBvbiBQQ0lYQ0MvQ0VYMkMgcmM9JWh1L3JzPSVodVxuIiwKLQkJICAgICAgIHJjLCBycyk7CisJaWYgKG1zZy0+Y3ByYnguY2NwX3J0Y29kZSAhPSAwIHx8IG1zZy0+Y3ByYnguY2NwX3JzY29kZSAhPSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKLQl9CiAJbWVtY3B5KGJ1ZmZlciwgZGF0YSArIG1zZy0+Zm10Mi5vZmZzZXQyLCBtc2ctPmZtdDIuY291bnQyKTsKIAlyZXR1cm4gbXNnLT5mbXQyLmNvdW50MjsKIH0KQEAgLTU5OCw5ICs1NjMsNiBAQAogCQkJCQkJICBvdXRwdXRkYXRhLCBvdXRwdXRkYXRhbGVuZ3RoKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CkBAIC02MjcsOSArNTg5LDYgQEAKIAkJCXJldHVybiBjb252ZXJ0X3R5cGU4Nl94Y3JiKHpkZXYsIHJlcGx5LCB4Y1JCKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl4Y1JCLT5zdGF0dXMgPSAweDAwMDgwNDRETDsgLyogSEREX0ludmFsaWRQYXJtICovCiAJCXpkZXYtPm9ubGluZSA9IDA7CiAJCXJldHVybiAtRUFHQUlOOwkvKiByZXBlYXQgdGhlIHJlcXVlc3Qgb24gYSBkaWZmZXJlbnQgZGV2aWNlLiAqLwpAQCAtNjUzLDkgKzYxMiw2IEBACiAJCQlyZXR1cm4gY29udmVydF90eXBlODZfcm5nKHpkZXYsIHJlcGx5LCBkYXRhKTsKIAkJLyogbm8gYnJlYWssIGluY29ycmVjdCBjcHJiIHZlcnNpb24gaXMgYW4gdW5rbm93biByZXNwb25zZSAqLwogCWRlZmF1bHQ6IC8qIFVua25vd24gcmVzcG9uc2UgdHlwZSwgdGhpcyBzaG91bGQgTkVWRVIgRVZFUiBoYXBwZW4gKi8KLQkJUFJJTlRLKCJVbnJlY29nbml6ZWQgTWVzc2FnZSBIZWFkZXI6ICUwOHglMDh4XG4iLAotCQkgICAgICAgKih1bnNpZ25lZCBpbnQgKikgcmVwbHktPm1lc3NhZ2UsCi0JCSAgICAgICAqKHVuc2lnbmVkIGludCAqKSAocmVwbHktPm1lc3NhZ2UrNCkpOwogCQl6ZGV2LT5vbmxpbmUgPSAwOwogCQlyZXR1cm4gLUVBR0FJTjsJLyogcmVwZWF0IHRoZSByZXF1ZXN0IG9uIGEgZGlmZmVyZW50IGRldmljZS4gKi8KIAl9CkBAIC03MDAsMTAgKzY1Niw3IEBACiAJCQltZW1jcHkobXNnLT5tZXNzYWdlLCByZXBseS0+bWVzc2FnZSwgbGVuZ3RoKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJUFJJTlRLKCJJbnZhbGlkIGludGVybmFsIHJlc3BvbnNlIHR5cGU6ICVpXG4iLAotCQkJICAgIHJlc3BfdHlwZS0+dHlwZSk7Ci0JCQltZW1jcHkobXNnLT5tZXNzYWdlLCAmZXJyb3JfcmVwbHksCi0JCQkgICAgc2l6ZW9mIGVycm9yX3JlcGx5KTsKKwkJCW1lbWNweShtc2ctPm1lc3NhZ2UsICZlcnJvcl9yZXBseSwgc2l6ZW9mIGVycm9yX3JlcGx5KTsKIAkJfQogCX0gZWxzZQogCQltZW1jcHkobXNnLT5tZXNzYWdlLCByZXBseS0+bWVzc2FnZSwgc2l6ZW9mIGVycm9yX3JlcGx5KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9rdm0va3ZtX3ZpcnRpby5jIGIvZHJpdmVycy9zMzkwL2t2bS9rdm1fdmlydGlvLmMKaW5kZXggOWY1NWNlNi4uNWFiMzQzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL2t2bS9rdm1fdmlydGlvLmMKKysrIGIvZHJpdmVycy9zMzkwL2t2bS9rdm1fdmlydGlvLmMKQEAgLTMxLDExICszMSw2IEBACiAgKi8KIHN0YXRpYyB2b2lkICprdm1fZGV2aWNlczsKIAotLyoKLSAqIFVuaXF1ZSBudW1iZXJpbmcgZm9yIGt2bSBkZXZpY2VzLgotICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGRldl9pbmRleDsKLQogc3RydWN0IGt2bV9kZXZpY2UgewogCXN0cnVjdCB2aXJ0aW9fZGV2aWNlIHZkZXY7CiAJc3RydWN0IGt2bV9kZXZpY2VfZGVzYyAqZGVzYzsKQEAgLTI1MCwyNiArMjQ1LDI1IEBACiAgKiBhZGRzIGEgbmV3IGRldmljZSBhbmQgcmVnaXN0ZXIgaXQgd2l0aCB2aXJ0aW8KICAqIGFwcHJvcHJpYXRlIGRyaXZlcnMgYXJlIGxvYWRlZCBieSB0aGUgZGV2aWNlIG1vZGVsCiAgKi8KLXN0YXRpYyB2b2lkIGFkZF9rdm1fZGV2aWNlKHN0cnVjdCBrdm1fZGV2aWNlX2Rlc2MgKmQpCitzdGF0aWMgdm9pZCBhZGRfa3ZtX2RldmljZShzdHJ1Y3Qga3ZtX2RldmljZV9kZXNjICpkLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQogewogCXN0cnVjdCBrdm1fZGV2aWNlICprZGV2OwogCiAJa2RldiA9IGt6YWxsb2Moc2l6ZW9mKCprZGV2KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFrZGV2KSB7Ci0JCXByaW50ayhLRVJOX0VNRVJHICJDYW5ub3QgYWxsb2NhdGUga3ZtIGRldiAldVxuIiwKLQkJICAgICAgIGRldl9pbmRleCsrKTsKKwkJcHJpbnRrKEtFUk5fRU1FUkcgIkNhbm5vdCBhbGxvY2F0ZSBrdm0gZGV2ICV1IHR5cGUgJXVcbiIsCisJCSAgICAgICBvZmZzZXQsIGQtPnR5cGUpOwogCQlyZXR1cm47CiAJfQogCiAJa2Rldi0+dmRldi5kZXYucGFyZW50ID0gJmt2bV9yb290OwotCWtkZXYtPnZkZXYuaW5kZXggPSBkZXZfaW5kZXgrKzsKIAlrZGV2LT52ZGV2LmlkLmRldmljZSA9IGQtPnR5cGU7CiAJa2Rldi0+dmRldi5jb25maWcgPSAma3ZtX3ZxX2NvbmZpZ3NwYWNlX29wczsKIAlrZGV2LT5kZXNjID0gZDsKIAogCWlmIChyZWdpc3Rlcl92aXJ0aW9fZGV2aWNlKCZrZGV2LT52ZGV2KSAhPSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIHJlZ2lzdGVyIGt2bSBkZXZpY2UgJXVcbiIsCi0JCSAgICAgICBrZGV2LT52ZGV2LmluZGV4KTsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gcmVnaXN0ZXIga3ZtIGRldmljZSAldSB0eXBlICV1XG4iLAorCQkgICAgICAgb2Zmc2V0LCBkLT50eXBlKTsKIAkJa2ZyZWUoa2Rldik7CiAJfQogfQpAQCAtMjg5LDcgKzI4Myw3IEBACiAJCWlmIChkLT50eXBlID09IDApCiAJCQlicmVhazsKIAotCQlhZGRfa3ZtX2RldmljZShkKTsKKwkJYWRkX2t2bV9kZXZpY2UoZCwgaSk7CiAJfQogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L2NsYXcuYyBiL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCmluZGV4IDA0YTFkN2IuLmM2NDQ2NjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvY2xhdy5jCkBAIC03MDMsNyArNzAzLDggQEAKIAlpZiAoIWNkZXYtPmRldi5kcml2ZXJfZGF0YSkgewogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX1dBUk5JTkcgImNsYXc6IHVuc29saWNpdGVkIGludGVycnVwdCBmb3IgZGV2aWNlOiIKIAkJIAkiJXMgcmVjZWl2ZWQgYy0lMDJ4IGQtJTAyeFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNkZXYtPmRldi5idXNfaWQsaXJiLT5zY3N3LmNzdGF0LCBpcmItPnNjc3cuZHN0YXQpOworCQkgICAgICAgY2Rldi0+ZGV2LmJ1c19pZCwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJICAgICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogI2lmZGVmIEZVTkNUUkFDRQogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gImNsYXc6ICVzKCkgIgogCQkJImV4aXQgb24gbGluZSAlZFxuIixfX2Z1bmNfXyxfX0xJTkVfXyk7CkBAIC03MzIsMjIgKzczMywyMyBAQAogI2lmZGVmIElPVFJBQ0UKICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IGludGVycnVwdCBmb3IgZGV2aWNlOiAlMDR4ICIKIAkJInJlY2VpdmVkIGMtJTAyeCBkLSUwMnggc3RhdGUtJTAyeFxuIiwKLSAgICAgICAgICAgICAgICBkZXYtPm5hbWUsIHBfY2gtPmRldm5vLCBpcmItPnNjc3cuY3N0YXQsCi0JCWlyYi0+c2Nzdy5kc3RhdCwgcF9jaC0+Y2xhd19zdGF0ZSk7CisJICAgICAgIGRldi0+bmFtZSwgcF9jaC0+ZGV2bm8sIGlyYi0+c2Nzdy5jbWQuY3N0YXQsCisJICAgICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQsIHBfY2gtPmNsYXdfc3RhdGUpOwogI2VuZGlmCiAKIAkvKiBDb3B5IGludGVycnVwdGlvbiByZXNwb25zZSBibG9jay4gKi8KIAltZW1jcHkocF9jaC0+aXJiLCBpcmIsIHNpemVvZihzdHJ1Y3QgaXJiKSk7CiAKICAgICAgICAgLyogQ2hlY2sgZm9yIGdvb2Qgc3ViY2hhbm5lbCByZXR1cm4gY29kZSwgb3RoZXJ3aXNlIGVycm9yIG1lc3NhZ2UgKi8KLSAgICAgICAgaWYgKGlyYi0+c2Nzdy5jc3RhdCAgJiYgICEoaXJiLT5zY3N3LmNzdGF0ICYgU0NITl9TVEFUX1BDSSkpIHsKKwlpZiAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmJiAhKGlyYi0+c2Nzdy5jbWQuY3N0YXQgJiBTQ0hOX1NUQVRfUENJKSkgewogICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBzdWJjaGFubmVsIGNoZWNrIGZvciBkZXZpY2U6ICUwNHggLSIKIAkJCSIgU2NoIFN0YXQgJTAyeCAgRGV2IFN0YXQgJTAyeCBDUEEgLSAlMDR4XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgZGV2LT5uYW1lLCBwX2NoLT5kZXZubywKLQkJCWlyYi0+c2Nzdy5jc3RhdCwgaXJiLT5zY3N3LmRzdGF0LGlyYi0+c2Nzdy5jcGEpOworCQkJaXJiLT5zY3N3LmNtZC5jc3RhdCwgaXJiLT5zY3N3LmNtZC5kc3RhdCwKKwkJCWlyYi0+c2Nzdy5jbWQuY3BhKTsKICNpZmRlZiBJT1RSQUNFCiAJCWR1bXBpdCgoY2hhciAqKWlyYixzaXplb2Yoc3RydWN0IGlyYikpOwotCQlkdW1waXQoKGNoYXIgKikodW5zaWduZWQgbG9uZylpcmItPnNjc3cuY3BhLAorCQlkdW1waXQoKGNoYXIgKikodW5zaWduZWQgbG9uZylpcmItPnNjc3cuY21kLmNwYSwKIAkJCXNpemVvZihzdHJ1Y3QgY2N3MSkpOwogI2VuZGlmCiAjaWZkZWYgRlVOQ1RSQUNFCkBAIC03NTksMjIgKzc2MSwyNCBAQAogICAgICAgICB9CiAKICAgICAgICAgLyogQ2hlY2sgdGhlIHJlYXNvbi1jb2RlIG9mIGEgdW5pdCBjaGVjayAqLwotICAgICAgICBpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykKICAgICAgICAgICAgICAgICBjY3dfY2hlY2tfdW5pdF9jaGVjayhwX2NoLCBpcmItPmVjd1swXSk7Ci0gICAgICAgIH0KIAogICAgICAgICAvKiBTdGF0ZSBtYWNoaW5lIHRvIGJyaW5nIHRoZSBjb25uZWN0aW9uIHVwLCBkb3duIGFuZCB0byByZXN0YXJ0ICovCi0gICAgICAgIHBfY2gtPmxhc3RfZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJcF9jaC0+bGFzdF9kc3RhdCA9IGlyYi0+c2Nzdy5jbWQuZHN0YXQ7CiAKICAgICAgICAgc3dpdGNoIChwX2NoLT5jbGF3X3N0YXRlKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBDTEFXX1NUT1A6LyogSEFMVF9JTyBieSBjbGF3X3JlbGVhc2UgKGhhbHQgc2VxdWVuY2UpICovCiAjaWZkZWYgREVCVUdNU0cKICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBDTEFXX1NUT1AgZW50ZXJcbiIsIGRldi0+bmFtZSk7CiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0KLQkgICAgIAkJKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJCVNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8CisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCQkoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJCSBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CiAjaWZkZWYgRlVOQ1RSQUNFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiVzIEV4aXQgb24gbGluZSAlZFxuIiwKIAkJCQkJZGV2LT5uYW1lLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTc5OCwxMCArODAyLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZPICIlczogcHJvY2VzcyBDTEFXX1NUQVRfSEFMVF9JT1xuIiwKIAkJCQlkZXYtPm5hbWUpOwogI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISgocF9jaC0+aXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAJCShTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKKwkJCWlmICghKChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsICYKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8CisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkJCSAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJICAgICAgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgewogI2lmZGVmIEZVTkNUUkFDRQogCQkJCXByaW50ayhLRVJOX0lORk8gIiVzOiVzIEV4aXQgb24gbGluZSAlZFxuIiwKIAkJCQkJZGV2LT5uYW1lLF9fZnVuY19fLF9fTElORV9fKTsKQEAgLTgyOCw4ICs4MzUsOCBAQAogCQkJCQkiaW50ZXJydXB0IGZvciBkZXZpY2U6IgogCQkJCSAJIiVzIHJlY2VpdmVkIGMtJTAyeCBkLSUwMnhcbiIsCiAgICAgICAgICAgICAgICAgCQkgICAgICAgIGNkZXYtPmRldi5idXNfaWQsCi0JCQkJCWlyYi0+c2Nzdy5jc3RhdCwKLQkJCQkJaXJiLT5zY3N3LmRzdGF0KTsKKwkJCQkJaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJCQkJaXJiLT5zY3N3LmNtZC5kc3RhdCk7CiAJCQkJcmV0dXJuOwogCQkJCX0KICNpZmRlZiBERUJVR01TRwpAQCAtODQ0LDcgKzg1MSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgY2FzZSBDTEFXX1NUQVJUX1JFQUQ6CiAJCQlDTEFXX0RCRl9URVhUKDQsdHJhY2UsIlJlYWRJUlEiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwX2NoLT5pcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CisJCQlpZiAocF9jaC0+aXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX1VOSVRfQ0hFQ0spIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYml0KDAsICh2b2lkICopJnBfY2gtPklPX2FjdGl2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocF9jaC0+aXJiLT5lY3dbMF0gJiAweDQxKSA9PSAweDQxIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocF9jaC0+aXJiLT5lY3dbMF0gJiAweDQwKSA9PSAweDQwIHx8CkBAIC04NjMsOCArODcwLDggQEAKIAkJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJub3RyZHkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBfY2gtPmlyYi0+c2Nzdy5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpICYmCi0JCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5kc3RhdD09MCkpIHsKKwkJCWlmICgocF9jaC0+aXJiLT5zY3N3LmNtZC5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpICYmCisJCQkgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgPT0gMCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3RfYW5kX3NldF9iaXQoQ0xBV19CSF9BQ1RJVkUsCiAJCQkJCSh2b2lkICopJnBfY2gtPmZsYWdfYSkgPT0gMCkgewogCQkJCQl0YXNrbGV0X3NjaGVkdWxlKCZwX2NoLT50YXNrbGV0KTsKQEAgLTg3OSwxMCArODg2LDEzIEBACiAJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJQQ0lfcmVhZCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZighKChwX2NoLT5pcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIAkJIChwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkgKHBfY2gtPmlyYi0+c2Nzdy5zdGN0bCA9PQotCSAgICAgCQkgKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwgU0NTV19TVENUTF9TVEFUVVNfUEVORCkpKSkgeworCQkJaWYgKCEoKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgJgorCQkJICAgICAgIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkJCSAgICAgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KKwkJCSAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpIHx8CisJCQkgICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgICAoU0NTV19TVENUTF9BTEVSVF9TVEFUVVMgfAorCQkJICAgICAgIFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKICNpZmRlZiBGVU5DVFJBQ0UKIAkJCQlwcmludGsoS0VSTl9JTkZPICIlczolcyBFeGl0IG9uIGxpbmUgJWRcbiIsCiAJCQkJCWRldi0+bmFtZSxfX2Z1bmNfXyxfX0xJTkVfXyk7CkBAIC05MTEsNyArOTIxLDcgQEAKIAkJCUNMQVdfREJGX1RFWFQoNCx0cmFjZSwiUmRJUlFYaXQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICBjYXNlIENMQVdfU1RBUlRfV1JJVEU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocF9jaC0+aXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCQkJaWYgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIiVzOiBVbml0IENoZWNrIE9jY3VyZWQgaW4gIgogCQkJCQkid3JpdGUgY2hhbm5lbFxuIixkZXYtPm5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcl9iaXQoMCwgKHZvaWQgKikmcF9jaC0+SU9fYWN0aXZlKTsKQEAgLTkzNCwxNiArOTQ0LDE5IEBACiAJCQkJQ0xBV19EQkZfVEVYVCg0LHRyYWNlLCJyc3RydHdydCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocF9jaC0+aXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9FWENFUCkgeworCQkJaWYgKHBfY2gtPmlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9VTklUX0VYQ0VQKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJfYml0KDAsICh2b2lkICopJnBfY2gtPklPX2FjdGl2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiJXM6IFVuaXQgRXhjZXB0aW9uICIKIAkJCQkJCSJPY2N1cmVkIGluIHdyaXRlIGNoYW5uZWxcbiIsCiAJCQkJCQlkZXYtPm5hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgaWYoISgocF9jaC0+aXJiLT5zY3N3LnN0Y3RsICYgU0NTV19TVENUTF9TRUNfU1RBVFVTKSB8fAotCSAgICAJCShwX2NoLT5pcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgCQkocF9jaC0+aXJiLT5zY3N3LnN0Y3RsID09Ci0JICAgICAJCShTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkpIHsKKwkJCWlmICghKChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsICYKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8CisJCQkgICAgIChwX2NoLT5pcmItPnNjc3cuY21kLnN0Y3RsID09CisJCQkgICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSB8fAorCQkJICAgICAocF9jaC0+aXJiLT5zY3N3LmNtZC5zdGN0bCA9PQorCQkJICAgICAgKFNDU1dfU1RDVExfQUxFUlRfU1RBVFVTIHwKKwkJCSAgICAgICBTQ1NXX1NUQ1RMX1NUQVRVU19QRU5EKSkpKSB7CiAjaWZkZWYgRlVOQ1RSQUNFCiAJCQkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6JXMgRXhpdCBvbiBsaW5lICVkXG4iLAogCQkJCQlkZXYtPm5hbWUsX19mdW5jX18sX19MSU5FX18pOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX2ZzbXMuYyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9mc21zLmMKaW5kZXggMmExMDZmMy4uN2U2YmQzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX2ZzbXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fZnNtcy5jCkBAIC0yNTcsOSArMjU3LDkgQEAKIAlpZiAoZHVyYXRpb24gPiBjaC0+cHJvZi50eF90aW1lKQogCQljaC0+cHJvZi50eF90aW1lID0gZHVyYXRpb247CiAKLQlpZiAoY2gtPmlyYi0+c2Nzdy5jb3VudCAhPSAwKQorCWlmIChjaC0+aXJiLT5zY3N3LmNtZC5jb3VudCAhPSAwKQogCQljdGNtX3ByX2RlYnVnKCIlczogVFggbm90IGNvbXBsZXRlLCByZW1haW5pbmcgJWQgYnl0ZXNcbiIsCi0JCQkgICAgIGRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jb3VudCk7CisJCQkgICAgIGRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQpOwogCWZzbV9kZWx0aW1lcigmY2gtPnRpbWVyKTsKIAl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZjaC0+aW9fcXVldWUpKSkgewogCQlwcml2LT5zdGF0cy50eF9wYWNrZXRzKys7CkBAIC0zNTMsNyArMzUzLDcgQEAKIAlzdHJ1Y3QgY2hhbm5lbCAqY2ggPSBhcmc7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IGNoLT5uZXRkZXY7CiAJc3RydWN0IGN0Y21fcHJpdiAqcHJpdiA9IGRldi0+cHJpdjsKLQlpbnQgbGVuID0gY2gtPm1heF9idWZzaXplIC0gY2gtPmlyYi0+c2Nzdy5jb3VudDsKKwlpbnQgbGVuID0gY2gtPm1heF9idWZzaXplIC0gY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQ7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IGNoLT50cmFuc19za2I7CiAJX191MTYgYmxvY2tfbGVuID0gKigoX191MTYgKilza2ItPmRhdGEpOwogCWludCBjaGVja19sZW47CkBAIC0xMjM0LDkgKzEyMzQsOSBAQAogCWlmIChkdXJhdGlvbiA+IGNoLT5wcm9mLnR4X3RpbWUpCiAJCWNoLT5wcm9mLnR4X3RpbWUgPSBkdXJhdGlvbjsKIAotCWlmIChjaC0+aXJiLT5zY3N3LmNvdW50ICE9IDApCisJaWYgKGNoLT5pcmItPnNjc3cuY21kLmNvdW50ICE9IDApCiAJCWN0Y21fcHJfZGVidWcoIiVzOiBUWCBub3QgY29tcGxldGUsIHJlbWFpbmluZyAlZCBieXRlc1xuIiwKLQkJCQlkZXYtPm5hbWUsIGNoLT5pcmItPnNjc3cuY291bnQpOworCQkJCWRldi0+bmFtZSwgY2gtPmlyYi0+c2Nzdy5jbWQuY291bnQpOwogCWZzbV9kZWx0aW1lcigmY2gtPnRpbWVyKTsKIAl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZjaC0+aW9fcXVldWUpKSkgewogCQlwcml2LT5zdGF0cy50eF9wYWNrZXRzKys7CkBAIC0xMzk0LDcgKzEzOTQsNyBAQAogCXN0cnVjdCBza19idWZmCQkqc2tiID0gY2gtPnRyYW5zX3NrYjsKIAlzdHJ1Y3Qgc2tfYnVmZgkJKm5ld19za2I7CiAJdW5zaWduZWQgbG9uZwlzYXZlZmxhZ3MgPSAwOwkvKiBhdm9pZHMgY29tcGlsZXIgd2FybmluZyAqLwotCWludCBsZW4JPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNvdW50OworCWludCBsZW4JPSBjaC0+bWF4X2J1ZnNpemUgLSBjaC0+aXJiLT5zY3N3LmNtZC5jb3VudDsKIAogCWlmIChkb19kZWJ1Z19kYXRhKSB7CiAJCUNUQ01fREJGX1RFWFRfKFRSQUNFLCBDVENfREJGX0RFQlVHLCAibXBjX2NoX3J4ICVzIGNwOiVpICVzXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvY3RjbV9tYWluLmMKaW5kZXggZDUyODQzZC4uNmIxM2MxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdGNtX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N0Y21fbWFpbi5jCkBAIC0xMjM2LDggKzEyMzYsOCBAQAogCS8qIENoZWNrIGZvciB1bnNvbGljaXRlZCBpbnRlcnJ1cHRzLiAqLwogCWlmIChjZ2RldiA9PSBOVUxMKSB7CiAJCWN0Y21fcHJfd2FybigiY3RjbTogR290IHVuc29saWNpdGVkIGlycTogJXMgYy0lMDJ4IGQtJTAyeFxuIiwKLQkJCSAgICBjZGV2LT5kZXYuYnVzX2lkLCBpcmItPnNjc3cuY3N0YXQsCi0JCQkgICAgaXJiLT5zY3N3LmRzdGF0KTsKKwkJCSAgICBjZGV2LT5kZXYuYnVzX2lkLCBpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJICAgIGlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMjY2LDQwICsxMjY2LDQwIEBACiAJCQkJInJlY2VpdmVkIGMtJTAyeCBkLSUwMnhcbiIsCiAJCQkJZGV2LT5uYW1lLAogCQkJCWNoLT5pZCwKLQkJCQlpcmItPnNjc3cuY3N0YXQsCi0JCQkJaXJiLT5zY3N3LmRzdGF0KTsKKwkJCQlpcmItPnNjc3cuY21kLmNzdGF0LAorCQkJCWlyYi0+c2Nzdy5jbWQuZHN0YXQpOwogCiAJLyogQ29weSBpbnRlcnJ1cHRpb24gcmVzcG9uc2UgYmxvY2suICovCiAJbWVtY3B5KGNoLT5pcmIsIGlyYiwgc2l6ZW9mKHN0cnVjdCBpcmIpKTsKIAogCS8qIENoZWNrIGZvciBnb29kIHN1YmNoYW5uZWwgcmV0dXJuIGNvZGUsIG90aGVyd2lzZSBlcnJvciBtZXNzYWdlICovCi0JaWYgKGlyYi0+c2Nzdy5jc3RhdCkgeworCWlmIChpcmItPnNjc3cuY21kLmNzdGF0KSB7CiAJCWZzbV9ldmVudChjaC0+ZnNtLCBDVENfRVZFTlRfU0NfVU5LTk9XTiwgY2gpOwogCQljdGNtX3ByX3dhcm4oIiVzOiBzdWJjaGFubmVsIGNoZWNrIGZvciBkZXY6ICVzIC0gJTAyeCAlMDJ4XG4iLAotCQkJICAgIGRldi0+bmFtZSwgY2gtPmlkLCBpcmItPnNjc3cuY3N0YXQsCi0JCQkgICAgaXJiLT5zY3N3LmRzdGF0KTsKKwkJCSAgICBkZXYtPm5hbWUsIGNoLT5pZCwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJCSAgICBpcmItPnNjc3cuY21kLmRzdGF0KTsKIAkJcmV0dXJuOwogCX0KIAogCS8qIENoZWNrIHRoZSByZWFzb24tY29kZSBvZiBhIHVuaXQgY2hlY2sgKi8KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgeworCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykgewogCQljY3dfdW5pdF9jaGVjayhjaCwgaXJiLT5lY3dbMF0pOwogCQlyZXR1cm47CiAJfQotCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9CVVNZKSB7Ci0JCWlmIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pCisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9CVVNZKSB7CisJCWlmIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKQogCQkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9BVFROQlVTWSwgY2gpOwogCQllbHNlCiAJCQlmc21fZXZlbnQoY2gtPmZzbSwgQ1RDX0VWRU5UX0JVU1ksIGNoKTsKIAkJcmV0dXJuOwogCX0KLQlpZiAoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfQVRURU5USU9OKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9BVFRFTlRJT04pIHsKIAkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9BVFROLCBjaCk7CiAJCXJldHVybjsKIAl9Ci0JaWYgKChpcmItPnNjc3cuc3RjdGwgJiBTQ1NXX1NUQ1RMX1NFQ19TVEFUVVMpIHx8Ci0JICAgIChpcmItPnNjc3cuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKLQkgICAgKGlyYi0+c2Nzdy5zdGN0bCA9PQorCWlmICgoaXJiLT5zY3N3LmNtZC5zdGN0bCAmIFNDU1dfU1RDVExfU0VDX1NUQVRVUykgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0gU0NTV19TVENUTF9TVEFUVVNfUEVORCkgfHwKKwkgICAgKGlyYi0+c2Nzdy5jbWQuc3RjdGwgPT0KIAkgICAgIChTQ1NXX1NUQ1RMX0FMRVJUX1NUQVRVUyB8IFNDU1dfU1RDVExfU1RBVFVTX1BFTkQpKSkKIAkJZnNtX2V2ZW50KGNoLT5mc20sIENUQ19FVkVOVF9GSU5TVEFULCBjaCk7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguYyBiL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmMKaW5kZXggOGU3Njk3My4uZjRhMzIzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9jdTMwODguYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5jCkBAIC0zNiw3ICszNiw2IEBACiAJIkNUQy9BIiwKIAkiRVNDT04gY2hhbm5lbCIsCiAJIkZJQ09OIGNoYW5uZWwiLAotCSJQMzkwIExDUyBjYXJkIiwKIAkiT1NBIExDUyBjYXJkIiwKIAkiQ0xBVyBjaGFubmVsIGRldmljZSIsCiAJInVua25vd24gY2hhbm5lbCB0eXBlIiwKQEAgLTQ5LDcgKzQ4LDYgQEAKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDA4KSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX3BhcmFsbGVsIH0sCiAJeyBDQ1dfREVWSUNFKDB4MzA4OCwgMHgxZiksIC5kcml2ZXJfaW5mbyA9IGNoYW5uZWxfdHlwZV9lc2NvbiB9LAogCXsgQ0NXX0RFVklDRSgweDMwODgsIDB4MWUpLCAuZHJpdmVyX2luZm8gPSBjaGFubmVsX3R5cGVfZmljb24gfSwKLQl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDAxKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX3AzOTAgfSwKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDYwKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX29zYTIgfSwKIAl7IENDV19ERVZJQ0UoMHgzMDg4LCAweDYxKSwgLmRyaXZlcl9pbmZvID0gY2hhbm5lbF90eXBlX2NsYXcgfSwKIAl7IC8qIGVuZCBvZiBsaXN0ICovIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmggYi9kcml2ZXJzL3MzOTAvbmV0L2N1MzA4OC5oCmluZGV4IDE3NTM2NjEuLmQ4NTU4YTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvY3UzMDg4LmgKKysrIGIvZHJpdmVycy9zMzkwL25ldC9jdTMwODguaApAQCAtMTcsOSArMTcsNiBAQAogCS8qIERldmljZSBpcyBhIEZJQ09OIGNoYW5uZWwgKi8KIAljaGFubmVsX3R5cGVfZmljb24sCiAKLQkvKiBEZXZpY2UgaXMgYSBQMzkwIExDUyBjYXJkICovCi0JY2hhbm5lbF90eXBlX3AzOTAsCi0KIAkvKiBEZXZpY2UgaXMgYSBPU0EyIGNhcmQgKi8KIAljaGFubmVsX3R5cGVfb3NhMiwKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9sY3MuYyBiL2RyaXZlcnMvczM5MC9uZXQvbGNzLmMKaW5kZXggZGQyMmY0Yi4uNmRlMjgzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9sY3MuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L2xjcy5jCkBAIC0xMzI3LDggKzEzMjcsOCBAQAogCWNoYXIgKnNlbnNlOwogCiAJc2Vuc2UgPSAoY2hhciAqKSBpcmItPmVjdzsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJaWYgKGNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfCBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCSAgICAgU0NITl9TVEFUX0NITl9EQVRBX0NISyB8IFNDSE5fU1RBVF9DSEFJTl9DSEVDSyB8CkBAIC0xMzg4LDExICsxMzg4LDEzIEBACiAJZWxzZQogCQljaGFubmVsID0gJmNhcmQtPndyaXRlOwogCi0JY3N0YXQgPSBpcmItPnNjc3cuY3N0YXQ7Ci0JZHN0YXQgPSBpcmItPnNjc3cuZHN0YXQ7CisJY3N0YXQgPSBpcmItPnNjc3cuY21kLmNzdGF0OworCWRzdGF0ID0gaXJiLT5zY3N3LmNtZC5kc3RhdDsKIAlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiUmludCVzIixjZGV2LT5kZXYuYnVzX2lkKTsKLQlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IixpcmItPnNjc3cuY3N0YXQsIGlyYi0+c2Nzdy5kc3RhdCk7Ci0JTENTX0RCRl9URVhUXyg1LCB0cmFjZSwgIiU0eCU0eCIsaXJiLT5zY3N3LmZjdGwsIGlyYi0+c2Nzdy5hY3RsKTsKKwlMQ1NfREJGX1RFWFRfKDUsIHRyYWNlLCAiJTR4JTR4IiwgaXJiLT5zY3N3LmNtZC5jc3RhdCwKKwkJICAgICAgaXJiLT5zY3N3LmNtZC5kc3RhdCk7CisJTENTX0RCRl9URVhUXyg1LCB0cmFjZSwgIiU0eCU0eCIsIGlyYi0+c2Nzdy5jbWQuZmN0bCwKKwkJICAgICAgaXJiLT5zY3N3LmNtZC5hY3RsKTsKIAogCS8qIENoZWNrIGZvciBjaGFubmVsIGFuZCBkZXZpY2UgZXJyb3JzIHByZXNlbnRlZCAqLwogCXJjID0gbGNzX2dldF9wcm9ibGVtKGNkZXYsIGlyYik7CkBAIC0xNDEwLDExICsxNDEyLDExIEBACiAJfQogCS8qIEhvdyBmYXIgaW4gdGhlIGNjdyBjaGFpbiBoYXZlIHdlIHByb2Nlc3NlZD8gKi8KIAlpZiAoKGNoYW5uZWwtPnN0YXRlICE9IExDU19DSF9TVEFURV9JTklUKSAmJgotCSAgICAoaXJiLT5zY3N3LmZjdGwgJiBTQ1NXX0ZDVExfU1RBUlRfRlVOQykpIHsKLQkJaW5kZXggPSAoc3RydWN0IGNjdzEgKikgX192YSgoYWRkcl90KSBpcmItPnNjc3cuY3BhKQorCSAgICAoaXJiLT5zY3N3LmNtZC5mY3RsICYgU0NTV19GQ1RMX1NUQVJUX0ZVTkMpKSB7CisJCWluZGV4ID0gKHN0cnVjdCBjY3cxICopIF9fdmEoKGFkZHJfdCkgaXJiLT5zY3N3LmNtZC5jcGEpCiAJCQktIGNoYW5uZWwtPmNjd3M7Ci0JCWlmICgoaXJiLT5zY3N3LmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKSB8fAotCQkgICAgKGlyYi0+c2Nzdy5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpKQorCQlpZiAoKGlyYi0+c2Nzdy5jbWQuYWN0bCAmIFNDU1dfQUNUTF9TVVNQRU5ERUQpIHx8CisJCSAgICAoaXJiLT5zY3N3LmNtZC5jc3RhdCAmIFNDSE5fU1RBVF9QQ0kpKQogCQkJLyogQmxvb2R5IGlvIHN1YnN5c3RlbSB0ZWxscyB1cyBsaWVzIGFib3V0IGNwYS4uLiAqLwogCQkJaW5kZXggPSAoaW5kZXggLSAxKSAmIChMQ1NfTlVNX0JVRkZTIC0gMSk7CiAJCXdoaWxlIChjaGFubmVsLT5pb19pZHggIT0gaW5kZXgpIHsKQEAgLTE0MjUsMjUgKzE0MjcsMjQgQEAKIAkJfQogCX0KIAotCWlmICgoaXJiLT5zY3N3LmRzdGF0ICYgREVWX1NUQVRfREVWX0VORCkgfHwKLQkgICAgKGlyYi0+c2Nzdy5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpIHx8Ci0JICAgIChpcmItPnNjc3cuZHN0YXQgJiBERVZfU1RBVF9VTklUX0NIRUNLKSkKKwlpZiAoKGlyYi0+c2Nzdy5jbWQuZHN0YXQgJiBERVZfU1RBVF9ERVZfRU5EKSB8fAorCSAgICAoaXJiLT5zY3N3LmNtZC5kc3RhdCAmIERFVl9TVEFUX0NITl9FTkQpIHx8CisJICAgIChpcmItPnNjc3cuY21kLmRzdGF0ICYgREVWX1NUQVRfVU5JVF9DSEVDSykpCiAJCS8qIE1hcmsgY2hhbm5lbCBhcyBzdG9wcGVkLiAqLwogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9TVE9QUEVEOwotCWVsc2UgaWYgKGlyYi0+c2Nzdy5hY3RsICYgU0NTV19BQ1RMX1NVU1BFTkRFRCkKKwllbHNlIGlmIChpcmItPnNjc3cuY21kLmFjdGwgJiBTQ1NXX0FDVExfU1VTUEVOREVEKQogCQkvKiBDQ1cgZXhlY3V0aW9uIHN0b3BwZWQgb24gYSBzdXNwZW5kIGJpdC4gKi8KIAkJY2hhbm5lbC0+c3RhdGUgPSBMQ1NfQ0hfU1RBVEVfU1VTUEVOREVEOwotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKLQkJaWYgKGlyYi0+c2Nzdy5jYyAhPSAwKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9IQUxUX0ZVTkMpIHsKKwkJaWYgKGlyYi0+c2Nzdy5jbWQuY2MgIT0gMCkgewogCQkJY2N3X2RldmljZV9oYWx0KGNoYW5uZWwtPmNjd2RldiwgKGFkZHJfdCkgY2hhbm5lbCk7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyogVGhlIGNoYW5uZWwgaGFzIGJlZW4gc3RvcHBlZCBieSBoYWx0X0lPLiAqLwogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9IQUxURUQ7CiAJfQotCWlmIChpcmItPnNjc3cuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKSB7CisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIFNDU1dfRkNUTF9DTEVBUl9GVU5DKQogCQljaGFubmVsLT5zdGF0ZSA9IExDU19DSF9TVEFURV9DTEVBUkVEOwotCX0KIAkvKiBEbyB0aGUgcmVzdCBpbiB0aGUgdGFza2xldC4gKi8KIAl0YXNrbGV0X3NjaGVkdWxlKCZjaGFubmVsLT5pcnFfdGFza2xldCk7CiB9CkBAIC0xNzYxLDcgKzE3NjIsNyBAQAogCQkJCW5ldGlmX2NhcnJpZXJfb2ZmKGNhcmQtPmRldik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCVBSSU5UX0lORk8oIlVOUkVDT0dOSVpFRCBMR1cgQ09NTUFORFxuIik7CisJCQlMQ1NfREJGX1RFWFQoNSwgdHJhY2UsICJub0xHV2NtZCIpOwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UKQEAgLTIwNDIsMTMgKzIwNDMsMTIgQEAKIAlMQ1NfREJGX1RFWFQoMiwgc2V0dXAsICJhZGRfZGV2Iik7CiAgICAgICAgIGNhcmQgPSBsY3NfYWxsb2NfY2FyZCgpOwogICAgICAgICBpZiAoIWNhcmQpIHsKLSAgICAgICAgICAgICAgICBQUklOVF9FUlIoIkFsbG9jYXRpb24gb2YgbGNzIGNhcmQgZmFpbGVkXG4iKTsKKwkJTENTX0RCRl9URVhUXygyLCBzZXR1cCwgIiAgcmMlZCIsIC1FTk9NRU0pOwogCQlwdXRfZGV2aWNlKCZjY3dnZGV2LT5kZXYpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwogICAgICAgICB9CiAJcmV0ID0gc3lzZnNfY3JlYXRlX2dyb3VwKCZjY3dnZGV2LT5kZXYua29iaiwgJmxjc19hdHRyX2dyb3VwKTsKIAlpZiAocmV0KSB7Ci0gICAgICAgICAgICAgICAgUFJJTlRfRVJSKCJDcmVhdGluZyBhdHRyaWJ1dGVzIGZhaWxlZCIpOwogCQlsY3NfZnJlZV9jYXJkKGNhcmQpOwogCQlwdXRfZGV2aWNlKCZjY3dnZGV2LT5kZXYpOwogCQlyZXR1cm4gcmV0OwpAQCAtMjE0MCw3ICsyMTQwLDYgQEAKIAlkZWZhdWx0OgogCQlMQ1NfREJGX1RFWFQoMywgc2V0dXAsICJlcnJpbml0Iik7CiAJCVBSSU5UX0VSUigiTENTOiBJbml0aWFsaXphdGlvbiBmYWlsZWRcbiIpOwotCQlQUklOVF9FUlIoIkxDUzogTm8gZGV2aWNlIGZvdW5kIVxuIik7CiAJCWdvdG8gb3V0OwogCX0KIAlpZiAoIWRldikKQEAgLTIyNjksNyArMjI2OCw2IEBACiAJaWYgKCFjYXJkKQogCQlyZXR1cm47CiAKLQlQUklOVF9JTkZPKCJSZW1vdmluZyBsY3MgZ3JvdXAgZGV2aWNlIC4uLi5cbiIpOwogCUxDU19EQkZfVEVYVCgzLCBzZXR1cCwgInJlbWRldiIpOwogCUxDU19EQkZfSEVYKDMsIHNldHVwLCAmY2FyZCwgc2l6ZW9mKHZvaWQqKSk7CiAJaWYgKGNjd2dkZXYtPnN0YXRlID09IENDV0dST1VQX09OTElORSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9uZXRpdWN2LmMgYi9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYwppbmRleCBlNGJhNmEwLi45MjQyYjVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L25ldGl1Y3YuYwpAQCAtNjI1LDkgKzYyNSw2IEBACiAJCW9mZnNldCArPSBoZWFkZXItPm5leHQ7CiAJCWhlYWRlci0+bmV4dCAtPSBORVRJVUNWX0hEUkxFTjsKIAkJaWYgKHNrYl90YWlscm9vbShwc2tiKSA8IGhlYWRlci0+bmV4dCkgewotCQkJUFJJTlRfV0FSTigiJXM6IElsbGVnYWwgbmV4dCBmaWVsZCBpbiBpdWN2IGhlYWRlcjogIgotCQkJICAgICAgICIlZCA+ICVkXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSwgaGVhZGVyLT5uZXh0LCBza2JfdGFpbHJvb20ocHNrYikpOwogCQkJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgIklsbGVnYWwgbmV4dCBmaWVsZDogJWQgPiAlZFxuIiwKIAkJCQloZWFkZXItPm5leHQsIHNrYl90YWlscm9vbShwc2tiKSk7CiAJCQlyZXR1cm47CkBAIC02MzYsOCArNjMzLDYgQEAKIAkJc2tiX3Jlc2V0X21hY19oZWFkZXIocHNrYik7CiAJCXNrYiA9IGRldl9hbGxvY19za2IocHNrYi0+bGVuKTsKIAkJaWYgKCFza2IpIHsKLQkJCVBSSU5UX1dBUk4oIiVzIE91dCBvZiBtZW1vcnkgaW4gbmV0aXVjdl91bnBhY2tfc2tiXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSk7CiAJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkJIk91dCBvZiBtZW1vcnkgaW4gbmV0aXVjdl91bnBhY2tfc2tiXG4iKTsKIAkJCXByaXZwdHItPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKQEAgLTY3NCw3ICs2NjksNiBAQAogCiAJaWYgKCFjb25uLT5uZXRkZXYpIHsKIAkJaXVjdl9tZXNzYWdlX3JlamVjdChjb25uLT5wYXRoLCBtc2cpOwotCQlQUklOVF9XQVJOKCJSZWNlaXZlZCBkYXRhIGZvciB1bmxpbmtlZCBjb25uZWN0aW9uXG4iKTsKIAkJSVVDVl9EQkZfVEVYVChkYXRhLCAyLAogCQkJICAgICAgIlJlY2VpdmVkIGRhdGEgZm9yIHVubGlua2VkIGNvbm5lY3Rpb25cbiIpOwogCQlyZXR1cm47CkBAIC02ODIsOCArNjc2LDYgQEAKIAlpZiAobXNnLT5sZW5ndGggPiBjb25uLT5tYXhfYnVmZnNpemUpIHsKIAkJaXVjdl9tZXNzYWdlX3JlamVjdChjb25uLT5wYXRoLCBtc2cpOwogCQlwcml2cHRyLT5zdGF0cy5yeF9kcm9wcGVkKys7Ci0JCVBSSU5UX1dBUk4oIm1zZ2xlbiAlZCA+IG1heF9idWZmc2l6ZSAlZFxuIiwKLQkJCSAgIG1zZy0+bGVuZ3RoLCBjb25uLT5tYXhfYnVmZnNpemUpOwogCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAibXNnbGVuICVkID4gbWF4X2J1ZmZzaXplICVkXG4iLAogCQkJICAgICAgIG1zZy0+bGVuZ3RoLCBjb25uLT5tYXhfYnVmZnNpemUpOwogCQlyZXR1cm47CkBAIC02OTUsNyArNjg3LDYgQEAKIAkJCQkgIG1zZy0+bGVuZ3RoLCBOVUxMKTsKIAlpZiAocmMgfHwgbXNnLT5sZW5ndGggPCA1KSB7CiAJCXByaXZwdHItPnN0YXRzLnJ4X2Vycm9ycysrOwotCQlQUklOVF9XQVJOKCJpdWN2X3JlY2VpdmUgcmV0dXJuZWQgJTA4eFxuIiwgcmMpOwogCQlJVUNWX0RCRl9URVhUXyhkYXRhLCAyLCAicmMgJWQgZnJvbSBpdWN2X3JlY2VpdmVcbiIsIHJjKTsKIAkJcmV0dXJuOwogCX0KQEAgLTc3OCw3ICs3NjksNiBAQAogCQlmc21fbmV3c3RhdGUoZmksIENPTk5fU1RBVEVfSURMRSk7CiAJCWlmIChwcml2cHRyKQogCQkJcHJpdnB0ci0+c3RhdHMudHhfZXJyb3JzICs9IHR4cGFja2V0czsKLQkJUFJJTlRfV0FSTigiaXVjdl9zZW5kIHJldHVybmVkICUwOHhcbiIsCXJjKTsKIAkJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgInJjICVkIGZyb20gaXVjdl9zZW5kXG4iLCByYyk7CiAJfSBlbHNlIHsKIAkJaWYgKHByaXZwdHIpIHsKQEAgLTgwNiw4ICs3OTYsNiBAQAogCXBhdGgtPmZsYWdzID0gMDsKIAlyYyA9IGl1Y3ZfcGF0aF9hY2NlcHQocGF0aCwgJm5ldGl1Y3ZfaGFuZGxlciwgTlVMTCwgY29ubik7CiAJaWYgKHJjKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBJVUNWIGFjY2VwdCBmYWlsZWQgd2l0aCBlcnJvciAlZFxuIiwKLQkJICAgICAgIG5ldGRldi0+bmFtZSwgcmMpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwgInJjICVkIGZyb20gaXVjdl9hY2NlcHQiLCByYyk7CiAJCXJldHVybjsKIAl9CkBAIC04NzMsNyArODYxLDcgQEAKIAlJVUNWX0RCRl9URVhUKHRyYWNlLCAzLCBfX2Z1bmNfXyk7CiAKIAlmc21fbmV3c3RhdGUoZmksIENPTk5fU1RBVEVfU1RBUlRXQUlUKTsKLQlQUklOVF9ERUJVRygiJXMoJyVzJyk6IGNvbm5lY3RpbmcgLi4uXG4iLAorCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAiJXMoJyVzJyk6IGNvbm5lY3RpbmcgLi4uXG4iLAogCQkgICAgY29ubi0+bmV0ZGV2LT5uYW1lLCBjb25uLT51c2VyaWQpOwogCiAJLyoKQEAgLTk2OCw4ICs5NTYsOCBAQAogCXN0cnVjdCBpdWN2X2Nvbm5lY3Rpb24gKmNvbm4gPSBhcmc7CiAJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IGNvbm4tPm5ldGRldjsKIAotCVBSSU5UX1dBUk4oIiVzOiBDYW5ub3QgY29ubmVjdCB3aXRob3V0IHVzZXJuYW1lXG4iLCBuZXRkZXYtPm5hbWUpOwotCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgImNvbm5fYWN0aW9uX2ludmFsIGNhbGxlZFxuIik7CisJSVVDVl9EQkZfVEVYVF8oZGF0YSwgMiwgIiVzKCclcycpOiBjb25uX2FjdGlvbl9pbnZhbCBjYWxsZWRcbiIsCisJCW5ldGRldi0+bmFtZSwgY29ubi0+dXNlcmlkKTsKIH0KIAogc3RhdGljIGNvbnN0IGZzbV9ub2RlIGNvbm5fZnNtW10gPSB7CkBAIC0xMDc3LDkgKzEwNjUsNiBAQAogCQkJCSJjb25uZWN0aW9uIGlzIHVwIGFuZCBydW5uaW5nXG4iKTsKIAkJCWJyZWFrOwogCQljYXNlIERFVl9TVEFURV9TVE9QV0FJVDoKLQkJCVBSSU5UX0lORk8oCi0JCQkgICAgICAgIiVzOiBnb3QgY29ubmVjdGlvbiBVUCBldmVudCBkdXJpbmcgc2h1dGRvd24hXG4iLAotCQkJICAgICAgIGRldi0+bmFtZSk7CiAJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkJImRldl9hY3Rpb25fY29ubnVwOiBpbiBERVZfU1RBVEVfU1RPUFdBSVRcbiIpOwogCQkJYnJlYWs7CkBAIC0xMTc0LDggKzExNTksNiBAQAogCQkJbnNrYiA9IGFsbG9jX3NrYihza2ItPmxlbiArIE5FVElVQ1ZfSERSTEVOICsKIAkJCQkJIE5FVElVQ1ZfSERSTEVOLCBHRlBfQVRPTUlDIHwgR0ZQX0RNQSk7CiAJCQlpZiAoIW5za2IpIHsKLQkJCQlQUklOVF9XQVJOKCIlczogQ291bGQgbm90IGFsbG9jYXRlIHR4X3NrYlxuIiwKLQkJCQkgICAgICAgY29ubi0+bmV0ZGV2LT5uYW1lKTsKIAkJCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsICJhbGxvY19za2IgZmFpbGVkXG4iKTsKIAkJCQlyYyA9IC1FTk9NRU07CiAJCQkJcmV0dXJuIHJjOwpAQCAtMTIyMyw3ICsxMjA2LDYgQEAKIAkJCQlza2JfcHVsbChza2IsIE5FVElVQ1ZfSERSTEVOKTsKIAkJCQlza2JfdHJpbShza2IsIHNrYi0+bGVuIC0gTkVUSVVDVl9IRFJMRU4pOwogCQkJfQotCQkJUFJJTlRfV0FSTigiaXVjdl9zZW5kIHJldHVybmVkICUwOHhcbiIsCXJjKTsKIAkJCUlVQ1ZfREJGX1RFWFRfKGRhdGEsIDIsICJyYyAlZCBmcm9tIGl1Y3Zfc2VuZFxuIiwgcmMpOwogCQl9IGVsc2UgewogCQkJaWYgKGNvcGllZCkKQEAgLTEyOTMsMTQgKzEyNzUsMTEgQEAKIAkgKiBTb21lIHNhbml0eSBjaGVja3MgLi4uCiAJICovCiAJaWYgKHNrYiA9PSBOVUxMKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBOVUxMIHNrX2J1ZmYgcGFzc2VkXG4iLCBkZXYtPm5hbWUpOwogCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsICJuZXRpdWN2X3R4OiBza2IgaXMgTlVMTFxuIik7CiAJCXByaXZwdHItPnN0YXRzLnR4X2Ryb3BwZWQrKzsKIAkJcmV0dXJuIDA7CiAJfQogCWlmIChza2JfaGVhZHJvb20oc2tiKSA8IE5FVElVQ1ZfSERSTEVOKSB7Ci0JCVBSSU5UX1dBUk4oIiVzOiBHb3Qgc2tfYnVmZiB3aXRoIGhlYWQgcm9vbSA8ICVsZCBieXRlc1xuIiwKLQkJICAgICAgIGRldi0+bmFtZSwgTkVUSVVDVl9IRFJMRU4pOwogCQlJVUNWX0RCRl9URVhUKGRhdGEsIDIsCiAJCQkibmV0aXVjdl90eDogc2tiX2hlYWRyb29tIDwgTkVUSVVDVl9IRFJMRU5cbiIpOwogCQlkZXZfa2ZyZWVfc2tiKHNrYik7CkBAIC0xMzkzLDcgKzEzNzIsNiBAQAogCiAJSVVDVl9EQkZfVEVYVCh0cmFjZSwgMywgX19mdW5jX18pOwogCWlmIChjb3VudCA+IDkpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogdXNlcm5hbWUgdG9vIGxvbmcgKCVkKSFcbiIsIChpbnQpIGNvdW50KTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkgICAgICAgIiVkIGlzIGxlbmd0aCBvZiB1c2VybmFtZVxuIiwgKGludCkgY291bnQpOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE0MDksNyArMTM4Nyw2IEBACiAJCQkvKiB0cmFpbGluZyBsZiwgZ3JyICovCiAJCQlicmVhazsKIAkJfQotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBJbnZhbGlkIGNoYXIgJWMgaW4gdXNlcm5hbWUhXG4iLCAqcCk7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLAogCQkJICAgICAgICJ1c2VybmFtZTogaW52YWxpZCBjaGFyYWN0ZXIgJWNcbiIsICpwKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xNDIxLDE4ICsxMzk4LDE1IEBACiAJaWYgKG1lbWNtcCh1c2VybmFtZSwgcHJpdi0+Y29ubi0+dXNlcmlkLCA5KSAmJgogCSAgICAobmRldi0+ZmxhZ3MgJiAoSUZGX1VQIHwgSUZGX1JVTk5JTkcpKSkgewogCQkvKiB1c2VybmFtZSBjaGFuZ2VkIHdoaWxlIHRoZSBpbnRlcmZhY2UgaXMgYWN0aXZlLiAqLwotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBkZXZpY2UgJXMgYWN0aXZlLCBjb25uZWN0ZWQgdG8gJXNcbiIsCi0JCQkgICBkZXYtPmJ1c19pZCwgcHJpdi0+Y29ubi0+dXNlcmlkKTsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogdXNlciBjYW5ub3QgYmUgdXBkYXRlZFxuIik7CiAJCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJ1c2VyX3dyaXRlOiBkZXZpY2UgYWN0aXZlXG4iKTsKLQkJcmV0dXJuIC1FQlVTWTsKKwkJcmV0dXJuIC1FUEVSTTsKIAl9CiAJcmVhZF9sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNwLCAmaXVjdl9jb25uZWN0aW9uX2xpc3QsIGxpc3QpIHsKIAkJaWYgKCFzdHJuY21wKHVzZXJuYW1lLCBjcC0+dXNlcmlkLCA5KSAmJiBjcC0+bmV0ZGV2ICE9IG5kZXYpIHsKIAkJCXJlYWRfdW5sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKLQkJCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvbm5lY3Rpb24gdG8gJXMgYWxyZWFkeSAiCi0JCQkJICAgImV4aXN0c1xuIiwgdXNlcm5hbWUpOworCQkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJ1c2VyX3dyaXRlOiBDb25uZWN0aW9uICIKKwkJCQkidG8gJXMgYWxyZWFkeSBleGlzdHNcbiIsIHVzZXJuYW1lKTsKIAkJCXJldHVybiAtRUVYSVNUOwogCQl9CiAJfQpAQCAtMTQ2NiwxMyArMTQ0MCwxMCBAQAogCWJzMSA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgJmUsIDApOwogCiAJaWYgKGUgJiYgKCFpc3NwYWNlKCplKSkpIHsKLQkJUFJJTlRfV0FSTigibmV0aXVjdjogSW52YWxpZCBjaGFyYWN0ZXIgaW4gYnVmZmVyIVxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAiYnVmZmVyX3dyaXRlOiBpbnZhbGlkIGNoYXIgJWNcbiIsICplKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmIChiczEgPiBORVRJVUNWX0JVRlNJWkVfTUFYKSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEdpdmVuIGJ1ZmZlciBzaXplICVkIHRvbyBsYXJnZS5cbiIsCi0JCQliczEpOwogCQlJVUNWX0RCRl9URVhUXyhzZXR1cCwgMiwKIAkJCSJidWZmZXJfd3JpdGU6IGJ1ZmZlciBzaXplICVkIHRvbyBsYXJnZVxuIiwKIAkJCWJzMSk7CkBAIC0xNDgwLDE2ICsxNDUxLDEyIEBACiAJfQogCWlmICgobmRldi0+ZmxhZ3MgJiBJRkZfUlVOTklORykgJiYKIAkgICAgKGJzMSA8IChuZGV2LT5tdHUgKyBORVRJVUNWX0hEUkxFTiArIDIpKSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBHaXZlbiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGwuXG4iLAotCQkJYnMxKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkiYnVmZmVyX3dyaXRlOiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGxcbiIsCiAJCQliczEpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJaWYgKGJzMSA8ICg1NzYgKyBORVRJVUNWX0hEUkxFTiArIE5FVElVQ1ZfSERSTEVOKSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiBHaXZlbiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGwuXG4iLAotCQkJYnMxKTsKIAkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsCiAJCQkiYnVmZmVyX3dyaXRlOiBidWZmZXIgc2l6ZSAlZCB0b28gc21hbGxcbiIsCiAJCQliczEpOwpAQCAtMTk2Myw3ICsxOTMwLDYgQEAKIAogCUlVQ1ZfREJGX1RFWFQodHJhY2UsIDMsIF9fZnVuY19fKTsKIAlpZiAoY291bnQ+OSkgewotCQlQUklOVF9XQVJOKCJuZXRpdWN2OiB1c2VybmFtZSB0b28gbG9uZyAoJWQpIVxuIiwgKGludCljb3VudCk7CiAJCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJjb25uX3dyaXRlOiB0b28gbG9uZ1xuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTE5NzYsNyArMTk0Miw2IEBACiAJCWlmICgqcCA9PSAnXG4nKQogCQkJLyogdHJhaWxpbmcgbGYsIGdyciAqLwogCQkJYnJlYWs7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IEludmFsaWQgY2hhcmFjdGVyIGluIHVzZXJuYW1lIVxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLAogCQkJICAgICAgICJjb25uX3dyaXRlOiBpbnZhbGlkIGNoYXJhY3RlciAlY1xuIiwgKnApOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTE5ODksOCArMTk1NCw4IEBACiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjcCwgJml1Y3ZfY29ubmVjdGlvbl9saXN0LCBsaXN0KSB7CiAJCWlmICghc3RybmNtcCh1c2VybmFtZSwgY3AtPnVzZXJpZCwgOSkpIHsKIAkJCXJlYWRfdW5sb2NrX2JoKCZpdWN2X2Nvbm5lY3Rpb25fcndsb2NrKTsKLQkJCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvbm5lY3Rpb24gdG8gJXMgYWxyZWFkeSAiCi0JCQkJICAgImV4aXN0c1xuIiwgdXNlcm5hbWUpOworCQkJSVVDVl9EQkZfVEVYVF8oc2V0dXAsIDIsICJjb25uX3dyaXRlOiBDb25uZWN0aW9uICIKKwkJCQkidG8gJXMgYWxyZWFkeSBleGlzdHNcbiIsIHVzZXJuYW1lKTsKIAkJCXJldHVybiAtRUVYSVNUOwogCQl9CiAJfQpAQCAtMTk5OCw5ICsxOTYzLDYgQEAKIAogCWRldiA9IG5ldGl1Y3ZfaW5pdF9uZXRkZXZpY2UodXNlcm5hbWUpOwogCWlmICghZGV2KSB7Ci0JCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvdWxkIG5vdCBhbGxvY2F0ZSBuZXR3b3JrIGRldmljZSAiCi0JCQkgICAic3RydWN0dXJlIGZvciB1c2VyICclcydcbiIsCi0JCQkgICBuZXRpdWN2X3ByaW50bmFtZSh1c2VybmFtZSkpOwogCQlJVUNWX0RCRl9URVhUKHNldHVwLCAyLCAiTlVMTCBmcm9tIG5ldGl1Y3ZfaW5pdF9uZXRkZXZpY2VcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBAIC0yMDIwLDE1ICsxOTgyLDEyIEBACiAJaWYgKHJjKQogCQlnb3RvIG91dF91bnJlZzsKIAotCVBSSU5UX0lORk8oIiVzOiAnJXMnXG4iLCBkZXYtPm5hbWUsIG5ldGl1Y3ZfcHJpbnRuYW1lKHVzZXJuYW1lKSk7CiAKIAlyZXR1cm4gY291bnQ7CiAKIG91dF91bnJlZzoKIAluZXRpdWN2X3VucmVnaXN0ZXJfZGV2aWNlKHByaXYtPmRldik7CiBvdXRfZnJlZV9uZGV2OgotCVBSSU5UX1dBUk4oIm5ldGl1Y3Y6IENvdWxkIG5vdCByZWdpc3RlciAnJXMnXG4iLCBkZXYtPm5hbWUpOwotCUlVQ1ZfREJGX1RFWFQoc2V0dXAsIDIsICJjb25uX3dyaXRlOiBjb3VsZCBub3QgcmVnaXN0ZXJcbiIpOwogCW5ldGl1Y3ZfZnJlZV9uZXRkZXZpY2UoZGV2KTsKIAlyZXR1cm4gcmM7CiB9CkBAIC0yMDczLDE0ICsyMDMyLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQUklOVF9XQVJOKCJuZXRpdWN2OiAlcyBjYW5ub3QgYmUgcmVtb3ZlZFxuIiwKIAkJCQkgICBuZGV2LT5uYW1lKTsKIAkJCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgInJlbW92ZV93cml0ZTogc3RpbGwgYWN0aXZlXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisJCQlyZXR1cm4gLUVQRVJNOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB1bnJlZ2lzdGVyX25ldGRldihuZGV2KTsKICAgICAgICAgICAgICAgICBuZXRpdWN2X3VucmVnaXN0ZXJfZGV2aWNlKGRldik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgICAgICB9CiAJcmVhZF91bmxvY2tfYmgoJml1Y3ZfY29ubmVjdGlvbl9yd2xvY2spOwotICAgICAgICBQUklOVF9XQVJOKCJuZXRpdWN2OiBuZXQgZGV2aWNlICVzIHVua25vd25cbiIsIG5hbWUpOwogCUlVQ1ZfREJGX1RFWFQoZGF0YSwgMiwgInJlbW92ZV93cml0ZTogdW5rbm93biBkZXZpY2VcbiIpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIH0KQEAgLTIxNDgsNyArMjEwNiw2IEBACiAJbmV0aXVjdl9kcml2ZXIuZ3JvdXBzID0gbmV0aXVjdl9kcnZfYXR0cl9ncm91cHM7CiAJcmMgPSBkcml2ZXJfcmVnaXN0ZXIoJm5ldGl1Y3ZfZHJpdmVyKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfRVJSKCJORVRJVUNWOiBmYWlsZWQgdG8gcmVnaXN0ZXIgZHJpdmVyLlxuIik7CiAJCUlVQ1ZfREJGX1RFWFRfKHNldHVwLCAyLCAicmV0ICVkIGZyb20gZHJpdmVyX3JlZ2lzdGVyXG4iLCByYyk7CiAJCWdvdG8gb3V0X2l1Y3Y7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jCmluZGV4IDQzNmJmMWYuLjBhYzU0ZGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKQEAgLTI5MCw5ICsyOTAsNiBAQAogCQkJY2FyZC0+ZGV2LT5mZWF0dXJlcyB8PSBORVRJRl9GX1RTTyB8IE5FVElGX0ZfU0cgfAogCQkJCQkJTkVUSUZfRl9IV19DU1VNOwogCQl9IGVsc2UgewotCQkJUFJJTlRfV0FSTigiVFNPIG5vdCBzdXBwb3J0ZWQgb24gJXMuICIKLQkJCQkgICAibGFyZ2Vfc2VuZCBzZXQgdG8gJ25vJy5cbiIsCi0JCQkJICAgY2FyZC0+ZGV2LT5uYW1lKTsKIAkJCWNhcmQtPmRldi0+ZmVhdHVyZXMgJj0gfihORVRJRl9GX1RTTyB8IE5FVElGX0ZfU0cgfAogCQkJCQkJTkVUSUZfRl9IV19DU1VNKTsKIAkJCWNhcmQtPm9wdGlvbnMubGFyZ2Vfc2VuZCA9IFFFVEhfTEFSR0VfU0VORF9OTzsKQEAgLTQyMyw3ICs0MjAsNyBAQAogCQkJCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDMsICJ1cmxhIik7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgotCQkJCVBSSU5UX1dBUk4oIlJlY2VpdmVkIGRhdGEgaXMgSVBBICIKKwkJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJSZWNlaXZlZCBkYXRhIGlzIElQQSAiCiAJCQkJCSAgICJidXQgbm90IGEgcmVwbHkhXG4iKTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTczOCw4ICs3MzUsOCBAQAogCWNoYXIgKnNlbnNlOwogCiAJc2Vuc2UgPSAoY2hhciAqKSBpcmItPmVjdzsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJaWYgKGNzdGF0ICYgKFNDSE5fU1RBVF9DSE5fQ1RSTF9DSEsgfCBTQ0hOX1NUQVRfSU5URl9DVFJMX0NISyB8CiAJCSAgICAgU0NITl9TVEFUX0NITl9EQVRBX0NISyB8IFNDSE5fU1RBVF9DSEFJTl9DSEVDSyB8CkBAIC04MjYsOCArODIzLDggQEAKIAogCWlmIChfX3FldGhfY2hlY2tfaXJiX2Vycm9yKGNkZXYsIGludHBhcm0sIGlyYikpCiAJCXJldHVybjsKLQljc3RhdCA9IGlyYi0+c2Nzdy5jc3RhdDsKLQlkc3RhdCA9IGlyYi0+c2Nzdy5kc3RhdDsKKwljc3RhdCA9IGlyYi0+c2Nzdy5jbWQuY3N0YXQ7CisJZHN0YXQgPSBpcmItPnNjc3cuY21kLmRzdGF0OwogCiAJY2FyZCA9IENBUkRfRlJPTV9DREVWKGNkZXYpOwogCWlmICghY2FyZCkKQEAgLTg0NSwxMCArODQyLDEwIEBACiAJfQogCWF0b21pY19zZXQoJmNoYW5uZWwtPmlycV9wZW5kaW5nLCAwKTsKIAotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpCisJaWYgKGlyYi0+c2Nzdy5jbWQuZmN0bCAmIChTQ1NXX0ZDVExfQ0xFQVJfRlVOQykpCiAJCWNoYW5uZWwtPnN0YXRlID0gQ0hfU1RBVEVfU1RPUFBFRDsKIAotCWlmIChpcmItPnNjc3cuZmN0bCAmIChTQ1NXX0ZDVExfSEFMVF9GVU5DKSkKKwlpZiAoaXJiLT5zY3N3LmNtZC5mY3RsICYgKFNDU1dfRkNUTF9IQUxUX0ZVTkMpKQogCQljaGFubmVsLT5zdGF0ZSA9IENIX1NUQVRFX0hBTFRFRDsKIAogCS8qbGV0J3Mgd2FrZSB1cCBpbW1lZGlhdGVseSBvbiBkYXRhIGNoYW5uZWwqLwpAQCAtMTQwNywxMiArMTQwNCw2IEBACiAJfQogfQogCi1zdGF0aWMgaW5saW5lIF9fdTE2IHFldGhfcmF3X2Rldm5vX2Zyb21fYnVzX2lkKGNoYXIgKmlkKQotewotCWlkICs9IChzdHJsZW4oaWQpIC0gNCk7Ci0JcmV0dXJuIChfX3UxNikgc2ltcGxlX3N0cnRvdWwoaWQsICZpZCwgMTYpOwotfQotCiBzdGF0aWMgaW50IHFldGhfaWR4X2FjdGl2YXRlX2dldF9hbnN3ZXIoc3RydWN0IHFldGhfY2hhbm5lbCAqY2hhbm5lbCwKIAkJdm9pZCAoKmlkeF9yZXBseV9jYikoc3RydWN0IHFldGhfY2hhbm5lbCAqLAogCQkJc3RydWN0IHFldGhfY21kX2J1ZmZlciAqKSkKQEAgLTE0MzksNyArMTQzMCw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShnZXRfY2N3ZGV2X2xvY2soY2hhbm5lbC0+Y2N3ZGV2KSwgZmxhZ3MpOwogCiAJaWYgKHJjKSB7Ci0JCVBSSU5UX0VSUigiRXJyb3IyIGluIGFjdGl2YXRpbmcgY2hhbm5lbCByYz0lZFxuIiwgcmMpOworCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJFcnJvcjIgaW4gYWN0aXZhdGluZyBjaGFubmVsIHJjPSVkXG4iLCByYyk7CiAJCVFFVEhfREJGX1RFWFRfKFNFVFVQLCAyLCAiMmVyciVkIiwgcmMpOwogCQlhdG9taWNfc2V0KCZjaGFubmVsLT5pcnFfcGVuZGluZywgMCk7CiAJCXdha2VfdXAoJmNhcmQtPndhaXRfcSk7CkBAIC0xNDY4LDYgKzE0NTksNyBAQAogCV9fdTE2IHRlbXA7CiAJX191OCB0bXA7CiAJaW50IHJjOworCXN0cnVjdCBjY3dfZGV2X2lkIHRlbXBfZGV2aWQ7CiAKIAljYXJkID0gQ0FSRF9GUk9NX0NERVYoY2hhbm5lbC0+Y2N3ZGV2KTsKIApAQCAtMTQ5NCw4ICsxNDg2LDggQEAKIAkgICAgICAgJmNhcmQtPnRva2VuLmlzc3Vlcl9ybV93LCBRRVRIX01QQ19UT0tFTl9MRU5HVEgpOwogCW1lbWNweShRRVRIX0lEWF9BQ1RfRlVOQ19MRVZFTChpb2ItPmRhdGEpLAogCSAgICAgICAmY2FyZC0+aW5mby5mdW5jX2xldmVsLCBzaXplb2YoX191MTYpKTsKLQl0ZW1wID0gcWV0aF9yYXdfZGV2bm9fZnJvbV9idXNfaWQoQ0FSRF9EREVWX0lEKGNhcmQpKTsKLQltZW1jcHkoUUVUSF9JRFhfQUNUX1FESU9fREVWX0NVQShpb2ItPmRhdGEpLCAmdGVtcCwgMik7CisJY2N3X2RldmljZV9nZXRfaWQoQ0FSRF9EREVWKGNhcmQpLCAmdGVtcF9kZXZpZCk7CisJbWVtY3B5KFFFVEhfSURYX0FDVF9RRElPX0RFVl9DVUEoaW9iLT5kYXRhKSwgJnRlbXBfZGV2aWQuZGV2bm8sIDIpOwogCXRlbXAgPSAoY2FyZC0+aW5mby5jdWxhIDw8IDgpICsgY2FyZC0+aW5mby51bml0X2FkZHIyOwogCW1lbWNweShRRVRIX0lEWF9BQ1RfUURJT19ERVZfUkVBTEFERFIoaW9iLT5kYXRhKSwgJnRlbXAsIDIpOwogCkBAIC0xNTA4LDcgKzE1MDAsOCBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNoYW5uZWwtPmNjd2RldiksIGZsYWdzKTsKIAogCWlmIChyYykgewotCQlQUklOVF9FUlIoIkVycm9yMSBpbiBhY3RpdmF0aW5nIGNoYW5uZWwuIHJjPSVkXG4iLCByYyk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkVycm9yMSBpbiBhY3RpdmF0aW5nIGNoYW5uZWwuIHJjPSVkXG4iLAorCQkJcmMpOwogCQlRRVRIX0RCRl9URVhUXyhTRVRVUCwgMiwgIjFlcnIlZCIsIHJjKTsKIAkJYXRvbWljX3NldCgmY2hhbm5lbC0+aXJxX3BlbmRpbmcsIDApOwogCQl3YWtlX3VwKCZjYXJkLT53YWl0X3EpOwpAQCAtMTY1OCw3ICsxNjUxLDYgQEAKIAogCXJlcGx5ID0gcWV0aF9hbGxvY19yZXBseShjYXJkKTsKIAlpZiAoIXJlcGx5KSB7Ci0JCVBSSU5UX1dBUk4oIkNvdWxkIG5vdCBhbGxvYyBxZXRoX3JlcGx5IVxuIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAlyZXBseS0+Y2FsbGJhY2sgPSByZXBseV9jYjsKQEAgLTI2MTIsMTUgKzI2MDQsOSBAQAogCQlpZiAobmV3Y291bnQgPCBjb3VudCkgewogCQkJLyogd2UgYXJlIGluIG1lbW9yeSBzaG9ydGFnZSBzbyB3ZSBzd2l0Y2ggYmFjayB0bwogCQkJICAgdHJhZGl0aW9uYWwgc2tiIGFsbG9jYXRpb24gYW5kIGRyb3AgcGFja2FnZXMgKi8KLQkJCWlmICghYXRvbWljX3JlYWQoJmNhcmQtPmZvcmNlX2FsbG9jX3NrYikgJiYKLQkJCSAgICBuZXRfcmF0ZWxpbWl0KCkpCi0JCQkJUFJJTlRfV0FSTigiU3dpdGNoIHRvIGFsbG9jIHNrYlxuIik7CiAJCQlhdG9taWNfc2V0KCZjYXJkLT5mb3JjZV9hbGxvY19za2IsIDMpOwogCQkJY291bnQgPSBuZXdjb3VudDsKIAkJfSBlbHNlIHsKLQkJCWlmICgoYXRvbWljX3JlYWQoJmNhcmQtPmZvcmNlX2FsbG9jX3NrYikgPT0gMSkgJiYKLQkJCSAgICBuZXRfcmF0ZWxpbWl0KCkpCi0JCQkJUFJJTlRfV0FSTigiU3dpdGNoIHRvIHNnXG4iKTsKIAkJCWF0b21pY19hZGRfdW5sZXNzKCZjYXJkLT5mb3JjZV9hbGxvY19za2IsIC0xLCAwKTsKIAkJfQogCkBAIC0zMDM0LDcgKzMwMjAsNyBAQAogCQllbGVtZW50c19uZWVkZWQgPSAxICsgKCgoKCh1bnNpZ25lZCBsb25nKSBoZHIpICUgUEFHRV9TSVpFKQogCQkJKyBza2ItPmxlbikgPj4gUEFHRV9TSElGVCk7CiAJaWYgKChlbGVtZW50c19uZWVkZWQgKyBlbGVtcykgPiBRRVRIX01BWF9CVUZGRVJfRUxFTUVOVFMoY2FyZCkpIHsKLQkJUFJJTlRfRVJSKCJJbnZhbGlkIHNpemUgb2YgSVAgcGFja2V0ICIKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiSW52YWxpZCBzaXplIG9mIElQIHBhY2tldCAiCiAJCQkiKE51bWJlcj0lZCAvIExlbmd0aD0lZCkuIERpc2NhcmRlZC5cbiIsCiAJCQkoZWxlbWVudHNfbmVlZGVkK2VsZW1zKSwgc2tiLT5sZW4pOwogCQlyZXR1cm4gMDsKQEAgLTMyNDcsOCArMzIzMyw2IEBACiAJCQkgKiBmcmVlIGJ1ZmZlcnMpIHRvIGhhbmRsZSBlZGRwIGNvbnRleHQgKi8KIAkJCWlmIChxZXRoX2VkZHBfY2hlY2tfYnVmZmVyc19mb3JfY29udGV4dChxdWV1ZSwgY3R4KQogCQkJCTwgMCkgewotCQkJCWlmIChuZXRfcmF0ZWxpbWl0KCkpCi0JCQkJCVBSSU5UX1dBUk4oImVkZHAgdHhfZHJvcHBlZCAxXG4iKTsKIAkJCQlyYyA9IC1FQlVTWTsKIAkJCQlnb3RvIG91dDsKIAkJCX0KQEAgLTMyNjAsNyArMzI0NCw2IEBACiAJCXRtcCA9IHFldGhfZWRkcF9maWxsX2J1ZmZlcihxdWV1ZSwgY3R4LAogCQkJCQkJcXVldWUtPm5leHRfYnVmX3RvX2ZpbGwpOwogCQlpZiAodG1wIDwgMCkgewotCQkJUFJJTlRfRVJSKCJlZGRwIHR4X2Ryb3BwZWQgMlxuIik7CiAJCQlyYyA9IC1FQlVTWTsKIAkJCWdvdG8gb3V0OwogCQl9CkBAIC0zNjAyLDggKzM1ODUsNiBAQAogCiAJaWYgKCghcWV0aF9hZHBfc3VwcG9ydGVkKGNhcmQsIElQQV9TRVRBRFBfU0VUX1NOTVBfQ09OVFJPTCkpICYmCiAJICAgICghY2FyZC0+b3B0aW9ucy5sYXllcjIpKSB7Ci0JCVBSSU5UX1dBUk4oIlNOTVAgUXVlcnkgTUlCUyBub3Qgc3VwcG9ydGVkICIKLQkJCSAgICJvbiAlcyFcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCS8qIHNraXAgNCBieXRlcyAoZGF0YV9sZW4gc3RydWN0IG1lbWJlcikgdG8gZ2V0IHJlcV9sZW4gKi8KQEAgLTM2MzQsNyArMzYxNSw3IEBACiAJcmMgPSBxZXRoX3NlbmRfaXBhX3NubXBfY21kKGNhcmQsIGlvYiwgUUVUSF9TRVRBRFBfQkFTRV9MRU4gKyByZXFfbGVuLAogCQkJCSAgICBxZXRoX3NubXBfY29tbWFuZF9jYiwgKHZvaWQgKikmcWluZm8pOwogCWlmIChyYykKLQkJUFJJTlRfV0FSTigiU05NUCBjb21tYW5kIGZhaWxlZCBvbiAlczogKDB4JXgpXG4iLAorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJTTk1QIGNvbW1hbmQgZmFpbGVkIG9uICVzOiAoMHgleClcbiIsCiAJCQkgICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLCByYyk7CiAJZWxzZSB7CiAJCWlmIChjb3B5X3RvX3VzZXIodWRhdGEsIHFpbmZvLnVkYXRhLCBxaW5mby51ZGF0YV9sZW4pKQpAQCAtMzgwNyw4ICszNzg4LDggQEAKIAlpZiAobXBubykKIAkJbXBubyA9IG1pbihtcG5vIC0gMSwgUUVUSF9NQVhfUE9SVE5PKTsKIAlpZiAoY2FyZC0+aW5mby5wb3J0bm8gPiBtcG5vKSB7Ci0JCVBSSU5UX0VSUigiRGV2aWNlICVzIGRvZXMgbm90IG9mZmVyIHBvcnQgbnVtYmVyICVkIFxuLiIsCi0JCQlDQVJEX0JVU19JRChjYXJkKSwgY2FyZC0+aW5mby5wb3J0bm8pOworCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJEZXZpY2UgJXMgZG9lcyBub3Qgb2ZmZXIgcG9ydCBudW1iZXIgJWQiCisJCQkiXG4uIiwgQ0FSRF9CVVNfSUQoY2FyZCksIGNhcmQtPmluZm8ucG9ydG5vKTsKIAkJcmMgPSAtRU5PREVWOwogCQlnb3RvIG91dDsKIAl9CkBAIC0zOTg1LDggKzM5NjYsNiBAQAogCXJldHVybiBza2I7CiBub19tZW06CiAJaWYgKG5ldF9yYXRlbGltaXQoKSkgewotCQlQUklOVF9XQVJOKCJObyBtZW1vcnkgZm9yIHBhY2tldCByZWNlaXZlZCBvbiAlcy5cbiIsCi0JCQkgICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKIAkJUUVUSF9EQkZfVEVYVChUUkFDRSwgMiwgIm5vc2tibWVtIik7CiAJCVFFVEhfREJGX1RFWFRfKFRSQUNFLCAyLCAiJXMiLCBDQVJEX0JVU19JRChjYXJkKSk7CiAJfQpAQCAtNDAwNCwxNSArMzk4MywxNyBAQAogCX0KIH0KIAotdm9pZCBxZXRoX2RiZl9sb25ndGV4dChlbnVtIHFldGhfZGJmX25hbWVzIGRiZl9uaXgsIGludCBsZXZlbCwgY2hhciAqdGV4dCwgLi4uKQordm9pZCBxZXRoX2RiZl9sb25ndGV4dChlbnVtIHFldGhfZGJmX25hbWVzIGRiZl9uaXgsIGludCBsZXZlbCwgY2hhciAqZm10LCAuLi4pCiB7CiAJY2hhciBkYmZfdHh0X2J1ZlszMl07CisJdmFfbGlzdCBhcmdzOwogCiAJaWYgKGxldmVsID4gKHFldGhfZGJmW2RiZl9uaXhdLmlkKS0+bGV2ZWwpCiAJCXJldHVybjsKLQlzbnByaW50ZihkYmZfdHh0X2J1Ziwgc2l6ZW9mKGRiZl90eHRfYnVmKSwgdGV4dCk7CisJdmFfc3RhcnQoYXJncywgZm10KTsKKwl2c25wcmludGYoZGJmX3R4dF9idWYsIHNpemVvZihkYmZfdHh0X2J1ZiksIGZtdCwgYXJncyk7CisJdmFfZW5kKGFyZ3MpOwogCWRlYnVnX3RleHRfZXZlbnQocWV0aF9kYmZbZGJmX25peF0uaWQsIGxldmVsLCBkYmZfdHh0X2J1Zik7Ci0JCiB9CiBFWFBPUlRfU1lNQk9MX0dQTChxZXRoX2RiZl9sb25ndGV4dCk7CiAKQEAgLTQxMTEsNyArNDA5Miw2IEBACiAKIAlyYyA9IHFldGhfZGV0ZXJtaW5lX2NhcmRfdHlwZShjYXJkKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfV0FSTigiJXM6IG5vdCBhIHZhbGlkIGNhcmQgdHlwZVxuIiwgX19mdW5jX18pOwogCQlRRVRIX0RCRl9URVhUXyhTRVRVUCwgMiwgIjNlcnIlZCIsIHJjKTsKIAkJZ290byBlcnJfY2FyZDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9vZmZsLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9vZmZsLmMKaW5kZXggODIyZGY4My4uNDUyODc0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfb2ZmbC5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX29mZmwuYwpAQCAtMTIyLDggKzEyMiw4IEBACiAJCQlpZiAoZWxlbWVudCA9PSAwKQogCQkJCXJldHVybiAtRUJVU1k7CiAJCQllbHNlIHsKLQkJCQlQUklOVF9XQVJOKCJjb3VsZCBvbmx5IHBhcnRpYWxseSBmaWxsIGVkZHAgIgotCQkJCQkgICAiYnVmZmVyIVxuIik7CisJCQkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGQgb25seSBwYXJ0aWFsbHkgZmlsbCIKKwkJCQkJImVkZHAgYnVmZmVyIVxuIik7CiAJCQkJZ290byBvdXQ7CiAJCQl9CiAJCX0KQEAgLTE0Myw4ICsxNDMsNiBAQAogCQlpZiAobXVzdF9yZWZjbnQpIHsKIAkJCW11c3RfcmVmY250ID0gMDsKIAkJCWlmIChxZXRoX2VkZHBfYnVmX3JlZl9jb250ZXh0KGJ1ZiwgY3R4KSkgewotCQkJCVBSSU5UX1dBUk4oIm5vIG1lbW9yeSB0byBjcmVhdGUgZWRkcCBjb250ZXh0ICIKLQkJCQkJICAgInJlZmVyZW5jZVxuIik7CiAJCQkJZ290byBvdXRfY2hlY2s7CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX3N5cy5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKaW5kZXggMDhhNTBmMC4uYzI2ZTg0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfc3lzLmMKQEAgLTEyOSw3ICsxMjksNiBAQAogCiAJcG9ydG5vID0gc2ltcGxlX3N0cnRvdWwoYnVmLCAmdG1wLCAxNik7CiAJaWYgKHBvcnRubyA+IFFFVEhfTUFYX1BPUlROTykgewotCQlQUklOVF9XQVJOKCJwb3J0bm8gMHglWCBpcyBvdXQgb2YgcmFuZ2VcbiIsIHBvcnRubyk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMjIzLDggKzIyMiw2IEBACiAJICogaWYgdGhvdWdoIHdlIGhhdmUgdG8gcGVybWl0IHByaW9yaXR5IHF1ZXVlaW5nCiAJICovCiAJaWYgKGNhcmQtPnFkaW8ubm9fb3V0X3F1ZXVlcyA9PSAxKSB7Ci0JCVBSSU5UX1dBUk4oIlByaW9yaXR5IHF1ZXVlaW5nIGRpc2FibGVkIGR1ZSAiCi0JCQkgICAidG8gaGFyZHdhcmUgbGltaXRhdGlvbnMhXG4iKTsKIAkJY2FyZC0+cWRpby5kb19wcmlvX3F1ZXVlaW5nID0gUUVUSF9QUklPUV9ERUZBVUxUOwogCQlyZXR1cm4gLUVQRVJNOwogCX0KQEAgLTI1MCw3ICsyNDcsNiBAQAogCQljYXJkLT5xZGlvLmRvX3ByaW9fcXVldWVpbmcgPSBRRVRIX05PX1BSSU9fUVVFVUVJTkc7CiAJCWNhcmQtPnFkaW8uZGVmYXVsdF9vdXRfcXVldWUgPSBRRVRIX0RFRkFVTFRfUVVFVUU7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigiVW5rbm93biBxdWV1ZWluZyB0eXBlICclcydcbiIsIHRtcCk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC0yOTEsOSArMjg3LDYgQEAKIAkJKChjbnQgPiBRRVRIX0lOX0JVRl9DT1VOVF9NQVgpID8gUUVUSF9JTl9CVUZfQ09VTlRfTUFYIDogY250KTsKIAlpZiAob2xkX2NudCAhPSBjbnQpIHsKIAkJcmMgPSBxZXRoX3JlYWxsb2NfYnVmZmVyX3Bvb2woY2FyZCwgY250KTsKLQkJaWYgKHJjKQotCQkJUFJJTlRfV0FSTigiRXJyb3IgKCVkKSB3aGlsZSBzZXR0aW5nICIKLQkJCQkgICAiYnVmZmVyIGNvdW50LlxuIiwgcmMpOwogCX0KIAlyZXR1cm4gY291bnQ7CiB9CkBAIC0zNTUsNyArMzQ4LDYgQEAKIAkJY2FyZC0+cGVyZl9zdGF0cy5pbml0aWFsX3J4X3BhY2tldHMgPSBjYXJkLT5zdGF0cy5yeF9wYWNrZXRzOwogCQljYXJkLT5wZXJmX3N0YXRzLmluaXRpYWxfdHhfcGFja2V0cyA9IGNhcmQtPnN0YXRzLnR4X3BhY2tldHM7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigicGVyZm9ybWFuY2Vfc3RhdHM6IHdyaXRlIDAgb3IgMSB0byB0aGlzIGZpbGUhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTM5OSw3ICszOTEsNiBAQAogCQluZXdkaXMgPSBRRVRIX0RJU0NJUExJTkVfTEFZRVIyOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlQUklOVF9XQVJOKCJsYXllcjI6IHdyaXRlIDAgb3IgMSB0byB0aGlzIGZpbGUhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC00NjMsNyArNDU0LDYgQEAKIAl9IGVsc2UgaWYgKCFzdHJjbXAodG1wLCAiVFNPIikpIHsKIAkJdHlwZSA9IFFFVEhfTEFSR0VfU0VORF9UU087CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigibGFyZ2Vfc2VuZDogaW52YWxpZCBtb2RlICVzIVxuIiwgdG1wKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmIChjYXJkLT5vcHRpb25zLmxhcmdlX3NlbmQgPT0gdHlwZSkKQEAgLTUwMyw4ICs0OTMsNiBAQAogCWlmIChpIDw9IG1heF92YWx1ZSkgewogCQkqdmFsdWUgPSBpOwogCX0gZWxzZSB7Ci0JCVBSSU5UX1dBUk4oImJsa3QgdG90YWwgdGltZTogd3JpdGUgdmFsdWVzIGJldHdlZW4iCi0JCQkgICAiIDAgYW5kICVkIHRvIHRoaXMgZmlsZSFcbiIsIG1heF92YWx1ZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wyX21haW4uYwppbmRleCA4NmVjNTBkLi5mNjgyZjdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDJfbWFpbi5jCisrKyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sMl9tYWluLmMKQEAgLTEwMSwxOSArMTAxLDE2IEBACiB7CiAJc3RydWN0IHFldGhfY2FyZCAqY2FyZDsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldjsKLQl1bnNpZ25lZCBjaGFyICpyZWFkbm87Ci0JX191MTYgdGVtcF9kZXZfbm8sIGNhcmRfZGV2X25vOwotCWNoYXIgKmVuZHA7CisJX191MTYgdGVtcF9kZXZfbm87CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlzdHJ1Y3QgY2N3X2Rldl9pZCByZWFkX2RldmlkOwogCiAJbmRldiA9IE5VTEw7CiAJbWVtY3B5KCZ0ZW1wX2Rldl9ubywgcmVhZF9kZXZfbm8sIDIpOwogCXJlYWRfbG9ja19pcnFzYXZlKCZxZXRoX2NvcmVfY2FyZF9saXN0LnJ3bG9jaywgZmxhZ3MpOwogCWxpc3RfZm9yX2VhY2hfZW50cnkoY2FyZCwgJnFldGhfY29yZV9jYXJkX2xpc3QubGlzdCwgbGlzdCkgewotCQlyZWFkbm8gPSBDQVJEX1JERVZfSUQoY2FyZCk7Ci0JCXJlYWRubyArPSAoc3RybGVuKHJlYWRubykgLSA0KTsKLQkJY2FyZF9kZXZfbm8gPSBzaW1wbGVfc3RydG91bChyZWFkbm8sICZlbmRwLCAxNik7Ci0JCWlmIChjYXJkX2Rldl9ubyA9PSB0ZW1wX2Rldl9ubykgeworCQljY3dfZGV2aWNlX2dldF9pZChDQVJEX1JERVYoY2FyZCksICZyZWFkX2RldmlkKTsKKwkJaWYgKHJlYWRfZGV2aWQuZGV2bm8gPT0gdGVtcF9kZXZfbm8pIHsKIAkJCW5kZXYgPSBjYXJkLT5kZXY7CiAJCQlicmVhazsKIAkJfQpAQCAtMTM0LDE0ICsxMzEsMTQgQEAKIAltYWMgPSAmY21kLT5kYXRhLnNldGRlbG1hYy5tYWNbMF07CiAJLyogTUFDIGFscmVhZHkgcmVnaXN0ZXJlZCwgbmVlZGVkIGluIGNvdXBsZS91bmNvdXBsZSBjYXNlICovCiAJaWYgKGNtZC0+aGRyLnJldHVybl9jb2RlID09IDB4MjAwNSkgewotCQlQUklOVF9XQVJOKCJHcm91cCBNQUMgJTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4OiUwMnggIiBcCisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkdyb3VwIE1BQyAlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCAiCiAJCQkgICJhbHJlYWR5IGV4aXN0aW5nIG9uICVzIFxuIiwKIAkJCSAgbWFjWzBdLCBtYWNbMV0sIG1hY1syXSwgbWFjWzNdLCBtYWNbNF0sIG1hY1s1XSwKIAkJCSAgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCWNtZC0+aGRyLnJldHVybl9jb2RlID0gMDsKIAl9CiAJaWYgKGNtZC0+aGRyLnJldHVybl9jb2RlKQotCQlQUklOVF9FUlIoIkNvdWxkIG5vdCBzZXQgZ3JvdXAgTUFDICIgXAorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJDb3VsZCBub3Qgc2V0IGdyb3VwIE1BQyAiCiAJCQkgICIlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6JTAyeCBvbiAlczogJXhcbiIsCiAJCQkgIG1hY1swXSwgbWFjWzFdLCBtYWNbMl0sIG1hY1szXSwgbWFjWzRdLCBtYWNbNV0sCiAJCQkgIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksIGNtZC0+aGRyLnJldHVybl9jb2RlKTsKQEAgLTE2Niw3ICsxNjMsNyBAQAogCWNtZCA9IChzdHJ1Y3QgcWV0aF9pcGFfY21kICopIGRhdGE7CiAJbWFjID0gJmNtZC0+ZGF0YS5zZXRkZWxtYWMubWFjWzBdOwogCWlmIChjbWQtPmhkci5yZXR1cm5fY29kZSkKLQkJUFJJTlRfRVJSKCJDb3VsZCBub3QgZGVsZXRlIGdyb3VwIE1BQyAiIFwKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiQ291bGQgbm90IGRlbGV0ZSBncm91cCBNQUMgIgogCQkJICAiJTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4OiUwMnggb24gJXM6ICV4XG4iLAogCQkJICBtYWNbMF0sIG1hY1sxXSwgbWFjWzJdLCBtYWNbM10sIG1hY1s0XSwgbWFjWzVdLAogCQkJICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLCBjbWQtPmhkci5yZXR1cm5fY29kZSk7CkBAIC0xODYsMTAgKzE4Myw4IEBACiAKIAltYyA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBxZXRoX21jX21hYyksIEdGUF9BVE9NSUMpOwogCi0JaWYgKCFtYykgewotCQlQUklOVF9FUlIoIm5vIG1lbSB2b3IgbWMgbWFjIGFkZHJlc3NcbiIpOworCWlmICghbWMpCiAJCXJldHVybjsKLQl9CiAKIAltZW1jcHkobWMtPm1jX2FkZHIsIG1hYywgT1NBX0FERFJfTEVOKTsKIAltYy0+bWNfYWRkcmxlbiA9IE9TQV9BRERSX0xFTjsKQEAgLTI4MCw3ICsyNzUsNyBAQAogCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDIsICJMMnNkdmNiIik7CiAJY21kID0gKHN0cnVjdCBxZXRoX2lwYV9jbWQgKikgZGF0YTsKIAlpZiAoY21kLT5oZHIucmV0dXJuX2NvZGUpIHsKLQkJUFJJTlRfRVJSKCJFcnJvciBpbiBwcm9jZXNzaW5nIFZMQU4gJWkgb24gJXM6IDB4JXguICIKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiRXJyb3IgaW4gcHJvY2Vzc2luZyBWTEFOICVpIG9uICVzOiAweCV4LiAiCiAJCQkgICJDb250aW51aW5nXG4iLCBjbWQtPmRhdGEuc2V0ZGVsdmxhbi52bGFuX2lkLAogCQkJICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLCBjbWQtPmhkci5yZXR1cm5fY29kZSk7CiAJCVFFVEhfREJGX1RFWFRfKFRSQUNFLCAyLCAiTDJWTCU0eCIsIGNtZC0+aGRyLmNvbW1hbmQpOwpAQCAtMzMzLDggKzMyOCw2IEBACiAJCXNwaW5fbG9ja19iaCgmY2FyZC0+dmxhbmxvY2spOwogCQlsaXN0X2FkZF90YWlsKCZpZC0+bGlzdCwgJmNhcmQtPnZpZF9saXN0KTsKIAkJc3Bpbl91bmxvY2tfYmgoJmNhcmQtPnZsYW5sb2NrKTsKLQl9IGVsc2UgewotCQlQUklOVF9FUlIoIm5vIG1lbW9yeSBmb3IgdmlkXG4iKTsKIAl9CiB9CiAKQEAgLTU1MCwxNiArNTQzLDE1IEBACiAKIAlyYyA9IHFldGhfcXVlcnlfc2V0YWRhcHRlcnBhcm1zKGNhcmQpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCJjb3VsZCBub3QgcXVlcnkgYWRhcHRlciBwYXJhbWV0ZXJzIG9uIGRldmljZSAlczogIgotCQkJICAgIngleFxuIiwgQ0FSRF9CVVNfSUQoY2FyZCksIHJjKTsKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGQgbm90IHF1ZXJ5IGFkYXB0ZXIgcGFyYW1ldGVycyBvbiAiCisJCQkiZGV2aWNlICVzOiB4JXhcbiIsIENBUkRfQlVTX0lEKGNhcmQpLCByYyk7CiAJfQogCiAJaWYgKGNhcmQtPmluZm8uZ3Vlc3RsYW4pIHsKIAkJcmMgPSBxZXRoX3NldGFkcHBhcm1zX2NoYW5nZV9tYWNhZGRyKGNhcmQpOwogCQlpZiAocmMpIHsKLQkJCVBSSU5UX1dBUk4oImNvdWxkbid0IGdldCBNQUMgYWRkcmVzcyBvbiAiCi0JCQkgICAiZGV2aWNlICVzOiB4JXhcbiIsCi0JCQkgICBDQVJEX0JVU19JRChjYXJkKSwgcmMpOworCQkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGRuJ3QgZ2V0IE1BQyBhZGRyZXNzIG9uICIKKwkJCQkiZGV2aWNlICVzOiB4JXhcbiIsIENBUkRfQlVTX0lEKGNhcmQpLCByYyk7CiAJCQlRRVRIX0RCRl9URVhUXyhTRVRVUCwgMiwgIjFlcnIlZCIsIHJjKTsKIAkJCXJldHVybiByYzsKIAkJfQpAQCAtNTg1LDggKzU3Nyw2IEBACiAJfQogCiAJaWYgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9PU04pIHsKLQkJUFJJTlRfV0FSTigiU2V0dGluZyBNQUMgYWRkcmVzcyBvbiAlcyBpcyBub3Qgc3VwcG9ydGVkLlxuIiwKLQkJCSAgIGRldi0+bmFtZSk7CiAJCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDMsICJzZXRtY09TTiIpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQpAQCAtNjY2LDcgKzY1Niw3IEBACiAJCWN0eCA9IHFldGhfZWRkcF9jcmVhdGVfY29udGV4dChjYXJkLCBuZXdfc2tiLCBoZHIsCiAJCQkJCQlza2ItPnNrLT5za19wcm90b2NvbCk7CiAJCWlmIChjdHggPT0gTlVMTCkgewotCQkJUFJJTlRfV0FSTigiY291bGQgbm90IGNyZWF0ZSBlZGRwIGNvbnRleHRcbiIpOworCQkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGQgbm90IGNyZWF0ZSBlZGRwIGNvbnRleHRcbiIpOwogCQkJZ290byB0eF9kcm9wOwogCQl9CiAJfSBlbHNlIHsKQEAgLTczMSw2ICs3MjEsNyBAQAogCWlmICgobmV3X3NrYiAhPSBza2IpICYmIG5ld19za2IpCiAJCWRldl9rZnJlZV9za2JfYW55KG5ld19za2IpOwogCWRldl9rZnJlZV9za2JfYW55KHNrYik7CisJbmV0aWZfd2FrZV9xdWV1ZShkZXYpOwogCXJldHVybiBORVRERVZfVFhfT0s7CiB9CiAKQEAgLTExNTUsNyArMTE0Niw3IEBACiAJCQkgICAgICAoYWRkcl90KSBpb2IsIDAsIDApOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoZ2V0X2Njd2Rldl9sb2NrKGNhcmQtPndyaXRlLmNjd2RldiksIGZsYWdzKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfV0FSTigicWV0aF9vc25fc2VuZF9jb250cm9sX2RhdGE6ICIKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAicWV0aF9vc25fc2VuZF9jb250cm9sX2RhdGE6ICIKIAkJCSAgICJjY3dfZGV2aWNlX3N0YXJ0IHJjID0gJWlcbiIsIHJjKTsKIAkJUUVUSF9EQkZfVEVYVF8oVFJBQ0UsIDIsICIgZXJyJWQiLCByYyk7CiAJCXFldGhfcmVsZWFzZV9idWZmZXIoaW9iLT5jaGFubmVsLCBpb2IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYyBiL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19tYWluLmMKaW5kZXggOTRhOGVhZC4uMDZkZWFlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfbWFpbi5jCkBAIC0zMTEsNyArMzExLDYgQEAKIAogCWFkZHIgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcWV0aF9pcGFkZHIpLCBHRlBfQVRPTUlDKTsKIAlpZiAoYWRkciA9PSBOVUxMKSB7Ci0JCVBSSU5UX1dBUk4oIk5vdCBlbm91Z2ggbWVtb3J5IHRvIGFkZCBhZGRyZXNzXG4iKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQogCWFkZHItPnR5cGUgPSBRRVRIX0lQX1RZUEVfTk9STUFMOwpAQCAtNjQ5LDE1ICs2NDgsNiBAQAogCQl9CiAJfQogb3V0X2ludmFsOgotCVBSSU5UX1dBUk4oIlJvdXRpbmcgdHlwZSAnJXMnIG5vdCBzdXBwb3J0ZWQgZm9yIGludGVyZmFjZSAlcy5cbiIKLQkJICAgIlJvdXRlciBzdGF0dXMgc2V0IHRvICdubyByb3V0ZXInLlxuIiwKLQkJICAgKCgqdHlwZSA9PSBQUklNQVJZX1JPVVRFUik/ICJwcmltYXJ5IHJvdXRlciIgOgotCQkgICAgKCp0eXBlID09IFNFQ09OREFSWV9ST1VURVIpPyAic2Vjb25kYXJ5IHJvdXRlciIgOgotCQkgICAgKCp0eXBlID09IFBSSU1BUllfQ09OTkVDVE9SKT8gInByaW1hcnkgY29ubmVjdG9yIiA6Ci0JCSAgICAoKnR5cGUgPT0gU0VDT05EQVJZX0NPTk5FQ1RPUik/ICJzZWNvbmRhcnkgY29ubmVjdG9yIiA6Ci0JCSAgICAoKnR5cGUgPT0gTVVMVElDQVNUX1JPVVRFUik/ICJtdWx0aWNhc3Qgcm91dGVyIiA6Ci0JCSAgICAidW5rbm93biIpLAotCQkgICBjYXJkLT5kZXYtPm5hbWUpOwogCSp0eXBlID0gTk9fUk9VVEVSOwogfQogCkBAIC02NzQsOSArNjY0LDkgQEAKIAkJCQkgIFFFVEhfUFJPVF9JUFY0KTsKIAlpZiAocmMpIHsKIAkJY2FyZC0+b3B0aW9ucy5yb3V0ZTQudHlwZSA9IE5PX1JPVVRFUjsKLQkJUFJJTlRfV0FSTigiRXJyb3IgKDB4JTA0eCkgd2hpbGUgc2V0dGluZyByb3V0aW5nIHR5cGUgb24gJXMuICIKLQkJCSAgICJUeXBlIHNldCB0byAnbm8gcm91dGVyJy5cbiIsCi0JCQkgICByYywgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkVycm9yICgweCUwNHgpIHdoaWxlIHNldHRpbmcgcm91dGluZyB0eXBlIgorCQkJIiBvbiAlcy4gVHlwZSBzZXQgdG8gJ25vIHJvdXRlcicuXG4iLCByYywKKwkJCVFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCX0KIAlyZXR1cm4gcmM7CiB9CkBAIC02OTcsOSArNjg3LDkgQEAKIAkJCQkgIFFFVEhfUFJPVF9JUFY2KTsKIAlpZiAocmMpIHsKIAkJY2FyZC0+b3B0aW9ucy5yb3V0ZTYudHlwZSA9IE5PX1JPVVRFUjsKLQkJUFJJTlRfV0FSTigiRXJyb3IgKDB4JTA0eCkgd2hpbGUgc2V0dGluZyByb3V0aW5nIHR5cGUgb24gJXMuICIKLQkJCSAgICJUeXBlIHNldCB0byAnbm8gcm91dGVyJy5cbiIsCi0JCQkgICByYywgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkVycm9yICgweCUwNHgpIHdoaWxlIHNldHRpbmcgcm91dGluZyB0eXBlIgorCQkJIiBvbiAlcy4gVHlwZSBzZXQgdG8gJ25vIHJvdXRlcicuXG4iLCByYywKKwkJCVFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCX0KICNlbmRpZgogCXJldHVybiByYzsKQEAgLTczNyw3ICs3MjcsNiBAQAogCQlpZiAoIW1lbWNtcChpcGF0b2UtPmFkZHIsIG5ldy0+YWRkciwKIAkJCSAgICAoaXBhdG9lLT5wcm90byA9PSBRRVRIX1BST1RfSVBWNCk/IDQ6MTYpICYmCiAJCSAgICAoaXBhdG9lLT5tYXNrX2JpdHMgPT0gbmV3LT5tYXNrX2JpdHMpKSB7Ci0JCQlQUklOVF9XQVJOKCJpcGF0byBlbnRyeSBhbHJlYWR5IGV4aXN0cyFcbiIpOwogCQkJcmMgPSAtRUVYSVNUOwogCQkJYnJlYWs7CiAJCX0KQEAgLTgwMiw3ICs3OTEsNiBAQAogCQlyYyA9IC1FRVhJU1Q7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2FyZC0+aXBfbG9jaywgZmxhZ3MpOwogCWlmIChyYykgewotCQlQUklOVF9XQVJOKCJDYW5ub3QgYWRkIFZJUEEuIEFkZHJlc3MgYWxyZWFkeSBleGlzdHMhXG4iKTsKIAkJcmV0dXJuIHJjOwogCX0KIAlpZiAoIXFldGhfbDNfYWRkX2lwKGNhcmQsIGlwYWRkcikpCkBAIC04NjcsNyArODU1LDYgQEAKIAkJcmMgPSAtRUVYSVNUOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNhcmQtPmlwX2xvY2ssIGZsYWdzKTsKIAlpZiAocmMpIHsKLQkJUFJJTlRfV0FSTigiQ2Fubm90IGFkZCBSWElQLiBBZGRyZXNzIGFscmVhZHkgZXhpc3RzIVxuIik7CiAJCXJldHVybiByYzsKIAl9CiAJaWYgKCFxZXRoX2wzX2FkZF9pcChjYXJkLCBpcGFkZHIpKQpAQCAtOTU3LDE1ICs5NDQsOCBAQAogCWVsc2UKIAkJcmMgPSBxZXRoX2wzX3NlbmRfc2V0ZGVsaXAoY2FyZCwgYWRkciwgSVBBX0NNRF9ERUxJUCwKIAkJCQkJYWRkci0+ZGVsX2ZsYWdzKTsKLQlpZiAocmMpIHsKKwlpZiAocmMpCiAJCVFFVEhfREJGX1RFWFQoVFJBQ0UsIDIsICJmYWlsZWQiKTsKLQkJLyogVE9ETzogcmUtYWN0aXZhdGUgdGhpcyB3YXJuaW5nIGFzIHNvb24gYXMgd2UgaGF2ZSBhCi0JCSAqIGNsZWFuIG1pcmNvIGNvZGUKLQkJcWV0aF9pcGFkZHJfdG9fc3RyaW5nKGFkZHItPnByb3RvLCAodTggKikmYWRkci0+dSwgYnVmKTsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IGRlcmVnaXN0ZXIgSVAgYWRkcmVzcyAlcyAocmM9JXgpXG4iLAotCQkJICAgYnVmLCByYyk7Ci0JCSovCi0JfQogCiAJcmV0dXJuIHJjOwogfQpAQCAtMTAyMCwyMyArMTAwMCwyMyBAQAogCQkJCQlJUEFfU0VUQURQX1NFVF9CUk9BRENBU1RfTU9ERSwKIAkJCQkJY2FyZC0+b3B0aW9ucy5icm9hZGNhc3RfbW9kZSk7CiAJCWlmIChyYykKLQkJCVBSSU5UX1dBUk4oImNvdWxkbid0IHNldCBicm9hZGNhc3QgbW9kZSBvbiAiCisJCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJjb3VsZG4ndCBzZXQgYnJvYWRjYXN0IG1vZGUgb24gIgogCQkJCSAgICJkZXZpY2UgJXM6IHgleFxuIiwKIAkJCQkgICBDQVJEX0JVU19JRChjYXJkKSwgcmMpOwogCQlyYyA9IHFldGhfbDNfc2VuZF9zZXRhZHBfbW9kZShjYXJkLAogCQkJCQlJUEFfU0VUQURQX0FMVEVSX01BQ19BRERSRVNTLAogCQkJCQljYXJkLT5vcHRpb25zLm1hY2FkZHJfbW9kZSk7CiAJCWlmIChyYykKLQkJCVBSSU5UX1dBUk4oImNvdWxkbid0IHNldCBtYWNhZGRyIG1vZGUgb24gIgorCQkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGRuJ3Qgc2V0IG1hY2FkZHIgbW9kZSBvbiAiCiAJCQkJICAgImRldmljZSAlczogeCV4XG4iLCBDQVJEX0JVU19JRChjYXJkKSwgcmMpOwogCQlyZXR1cm4gcmM7CiAJfQogCWlmIChjYXJkLT5vcHRpb25zLmJyb2FkY2FzdF9tb2RlID09IFFFVEhfVFJfQlJPQURDQVNUX0xPQ0FMKQotCQlQUklOVF9XQVJOKCJzZXQgYWRhcHRlciBwYXJhbWV0ZXJzIG5vdCBhdmFpbGFibGUgIgorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJzZXQgYWRhcHRlciBwYXJhbWV0ZXJzIG5vdCBhdmFpbGFibGUgIgogCQkJICAgInRvIHNldCBicm9hZGNhc3QgbW9kZSwgdXNpbmcgQUxMUklOR1MgIgogCQkJICAgIm9uIGRldmljZSAlczpcbiIsIENBUkRfQlVTX0lEKGNhcmQpKTsKIAlpZiAoY2FyZC0+b3B0aW9ucy5tYWNhZGRyX21vZGUgPT0gUUVUSF9UUl9NQUNBRERSX0NBTk9OSUNBTCkKLQkJUFJJTlRfV0FSTigic2V0IGFkYXB0ZXIgcGFyYW1ldGVycyBub3QgYXZhaWxhYmxlICIKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAic2V0IGFkYXB0ZXIgcGFyYW1ldGVycyBub3QgYXZhaWxhYmxlICIKIAkJCSAgICJ0byBzZXQgbWFjYWRkciBtb2RlLCB1c2luZyBOT05DQU5PTklDQUwgIgogCQkJICAgIm9uIGRldmljZSAlczpcbiIsIENBUkRfQlVTX0lEKGNhcmQpKTsKIAlyZXR1cm4gMDsKQEAgLTIwNzAsNyArMjA1MCw3IEBACiAJCWNhcmQgPSBuZXRkZXZfcHJpdihkZXYpOwogCWVsc2UgaWYgKHJjID09IFFFVEhfVkxBTl9DQVJEKQogCQljYXJkID0gbmV0ZGV2X3ByaXYodmxhbl9kZXZfaW5mbyhkZXYpLT5yZWFsX2Rldik7Ci0JaWYgKGNhcmQtPm9wdGlvbnMubGF5ZXIyKQorCWlmIChjYXJkICYmIGNhcmQtPm9wdGlvbnMubGF5ZXIyKQogCQljYXJkID0gTlVMTDsKIAlRRVRIX0RCRl9URVhUXyhUUkFDRSwgNCwgIiVkIiwgcmMpOwogCXJldHVybiBjYXJkIDsKQEAgLTIxODIsOCArMjE2Miw2IEBACiAJaWYgKGNhcmQtPmluZm8uZ3Vlc3RsYW4pCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAlpZiAoIXFldGhfaXNfc3VwcG9ydGVkKGNhcmQsIElQQV9BUlBfUFJPQ0VTU0lORykpIHsKLQkJUFJJTlRfV0FSTigiQVJQIHByb2Nlc3Npbmcgbm90IHN1cHBvcnRlZCAiCi0JCQkgICAib24gJXMhXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCX0KIAlyYyA9IHFldGhfbDNfc2VuZF9zaW1wbGVfc2V0YXNzcGFybXMoY2FyZCwgSVBBX0FSUF9QUk9DRVNTSU5HLApAQCAtMjE5MSw4ICsyMTY5LDggQEAKIAkJCQkJICBub19lbnRyaWVzKTsKIAlpZiAocmMpIHsKIAkJdG1wID0gcmM7Ci0JCVBSSU5UX1dBUk4oIkNvdWxkIG5vdCBzZXQgbnVtYmVyIG9mIEFSUCBlbnRyaWVzIG9uICVzOiAiCi0JCQkiJXMgKDB4JXgvJWQpXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAorCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJDb3VsZCBub3Qgc2V0IG51bWJlciBvZiBBUlAgZW50cmllcyBvbiAiCisJCQkiJXM6ICVzICgweCV4LyVkKVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKIAkJCXFldGhfbDNfYXJwX2dldF9lcnJvcl9jYXVzZSgmcmMpLCB0bXAsIHRtcCk7CiAJfQogCXJldHVybiByYzsKQEAgLTIyNjAsOSArMjIzOCw2IEBACiAJCQlxZGF0YS0+bm9fZW50cmllcyAqIHVlbnRyeV9zaXplKXsKIAkJUUVUSF9EQkZfVEVYVF8oVFJBQ0UsIDQsICJxYWVyMyVpIiwgLUVOT01FTSk7CiAJCWNtZC0+aGRyLnJldHVybl9jb2RlID0gLUVOT01FTTsKLQkJUFJJTlRfV0FSTigicXVlcnkgQVJQIHVzZXIgc3BhY2UgYnVmZmVyIGlzIHRvbyBzbWFsbCBmb3IgIgotCQkJICAgInRoZSByZXR1cm5lZCBudW1iZXIgb2YgQVJQIGVudHJpZXMuICIKLQkJCSAgICJBYm9ydGluZyBxdWVyeSFcbiIpOwogCQlnb3RvIG91dF9lcnJvcjsKIAl9CiAJUUVUSF9EQkZfVEVYVF8oVFJBQ0UsIDQsICJhbm9yZSVpIiwKQEAgLTIzMjQsOCArMjI5OSw2IEBACiAKIAlpZiAoIXFldGhfaXNfc3VwcG9ydGVkKGNhcmQsLypJUEFfUVVFUllfQVJQX0FERFJfSU5GTyovCiAJCQkgICAgICAgSVBBX0FSUF9QUk9DRVNTSU5HKSkgewotCQlQUklOVF9XQVJOKCJBUlAgcHJvY2Vzc2luZyBub3Qgc3VwcG9ydGVkICIKLQkJCSAgICJvbiAlcyFcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCS8qIGdldCBzaXplIG9mIHVzZXJzcGFjZSBidWZmZXIgYW5kIG1hc2tfYml0cyAtPiA2IGJ5dGVzICovCkBAIC0yMzQ0LDcgKzIzMTcsNyBAQAogCQkJCSAgIHFldGhfbDNfYXJwX3F1ZXJ5X2NiLCAodm9pZCAqKSZxaW5mbyk7CiAJaWYgKHJjKSB7CiAJCXRtcCA9IHJjOwotCQlQUklOVF9XQVJOKCJFcnJvciB3aGlsZSBxdWVyeWluZyBBUlAgY2FjaGUgb24gJXM6ICVzICIKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiRXJyb3Igd2hpbGUgcXVlcnlpbmcgQVJQIGNhY2hlIG9uICVzOiAlcyAiCiAJCQkiKDB4JXgvJWQpXG4iLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAogCQkJcWV0aF9sM19hcnBfZ2V0X2Vycm9yX2NhdXNlKCZyYyksIHRtcCwgdG1wKTsKIAkJaWYgKGNvcHlfdG9fdXNlcih1ZGF0YSwgcWluZm8udWRhdGEsIDQpKQpAQCAtMjM3NSw4ICsyMzQ4LDYgQEAKIAlpZiAoY2FyZC0+aW5mby5ndWVzdGxhbikKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmICghcWV0aF9pc19zdXBwb3J0ZWQoY2FyZCwgSVBBX0FSUF9QUk9DRVNTSU5HKSkgewotCQlQUklOVF9XQVJOKCJBUlAgcHJvY2Vzc2luZyBub3Qgc3VwcG9ydGVkICIKLQkJCSAgICJvbiAlcyFcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCkBAIC0yMzkxLDEwICsyMzYyLDkgQEAKIAlpZiAocmMpIHsKIAkJdG1wID0gcmM7CiAJCXFldGhfbDNfaXBhZGRyNF90b19zdHJpbmcoKHU4ICopZW50cnktPmlwYWRkciwgYnVmKTsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IGFkZCBBUlAgZW50cnkgZm9yIGFkZHJlc3MgJXMgb24gJXM6ICIKLQkJCSAgICIlcyAoMHgleC8lZClcbiIsCi0JCQkgICBidWYsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksCi0JCQkgICBxZXRoX2wzX2FycF9nZXRfZXJyb3JfY2F1c2UoJnJjKSwgdG1wLCB0bXApOworCQlRRVRIX0RCRl9NRVNTQUdFKDIsICJDb3VsZCBub3QgYWRkIEFSUCBlbnRyeSBmb3IgYWRkcmVzcyAlcyAiCisJCQkib24gJXM6ICVzICgweCV4LyVkKVxuIiwgYnVmLCBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpLAorCQkJcWV0aF9sM19hcnBfZ2V0X2Vycm9yX2NhdXNlKCZyYyksIHRtcCwgdG1wKTsKIAl9CiAJcmV0dXJuIHJjOwogfQpAQCAtMjQxNyw4ICsyMzg3LDYgQEAKIAlpZiAoY2FyZC0+aW5mby5ndWVzdGxhbikKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCWlmICghcWV0aF9pc19zdXBwb3J0ZWQoY2FyZCwgSVBBX0FSUF9QUk9DRVNTSU5HKSkgewotCQlQUklOVF9XQVJOKCJBUlAgcHJvY2Vzc2luZyBub3Qgc3VwcG9ydGVkICIKLQkJCSAgICJvbiAlcyFcbiIsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCkpOwogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCW1lbWNweShidWYsIGVudHJ5LCAxMik7CkBAIC0yNDMzLDEwICsyNDAxLDkgQEAKIAkJdG1wID0gcmM7CiAJCW1lbXNldChidWYsIDAsIDE2KTsKIAkJcWV0aF9sM19pcGFkZHI0X3RvX3N0cmluZygodTggKillbnRyeS0+aXBhZGRyLCBidWYpOwotCQlQUklOVF9XQVJOKCJDb3VsZCBub3QgZGVsZXRlIEFSUCBlbnRyeSBmb3IgYWRkcmVzcyAlcyBvbiAlczogIgotCQkJICAgIiVzICgweCV4LyVkKVxuIiwKLQkJCSAgIGJ1ZiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKLQkJCSAgIHFldGhfbDNfYXJwX2dldF9lcnJvcl9jYXVzZSgmcmMpLCB0bXAsIHRtcCk7CisJCVFFVEhfREJGX01FU1NBR0UoMiwgIkNvdWxkIG5vdCBkZWxldGUgQVJQIGVudHJ5IGZvciBhZGRyZXNzICVzIgorCQkJIiBvbiAlczogJXMgKDB4JXgvJWQpXG4iLCBidWYsIFFFVEhfQ0FSRF9JRk5BTUUoY2FyZCksCisJCQlxZXRoX2wzX2FycF9nZXRfZXJyb3JfY2F1c2UoJnJjKSwgdG1wLCB0bXApOwogCX0KIAlyZXR1cm4gcmM7CiB9CkBAIC0yNDU2LDE2ICsyNDIzLDE0IEBACiAJaWYgKGNhcmQtPmluZm8uZ3Vlc3RsYW4gfHwgKGNhcmQtPmluZm8udHlwZSA9PSBRRVRIX0NBUkRfVFlQRV9JUUQpKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJaWYgKCFxZXRoX2lzX3N1cHBvcnRlZChjYXJkLCBJUEFfQVJQX1BST0NFU1NJTkcpKSB7Ci0JCVBSSU5UX1dBUk4oIkFSUCBwcm9jZXNzaW5nIG5vdCBzdXBwb3J0ZWQgIgotCQkJICAgIm9uICVzIVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSk7CiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAJcmMgPSBxZXRoX2wzX3NlbmRfc2ltcGxlX3NldGFzc3Bhcm1zKGNhcmQsIElQQV9BUlBfUFJPQ0VTU0lORywKIAkJCQkJICBJUEFfQ01EX0FTU19BUlBfRkxVU0hfQ0FDSEUsIDApOwogCWlmIChyYykgewogCQl0bXAgPSByYzsKLQkJUFJJTlRfV0FSTigiQ291bGQgbm90IGZsdXNoIEFSUCBjYWNoZSBvbiAlczogJXMgKDB4JXgvJWQpXG4iLAotCQkJUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKKwkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiQ291bGQgbm90IGZsdXNoIEFSUCBjYWNoZSBvbiAlczogJXMgIgorCQkJIigweCV4LyVkKVxuIiwgUUVUSF9DQVJEX0lGTkFNRShjYXJkKSwKIAkJCXFldGhfbDNfYXJwX2dldF9lcnJvcl9jYXVzZSgmcmMpLCB0bXAsIHRtcCk7CiAJfQogCXJldHVybiByYzsKQEAgLTI3MjQsNyArMjY4OSw3IEBACiAJCWN0eCA9IHFldGhfZWRkcF9jcmVhdGVfY29udGV4dChjYXJkLCBuZXdfc2tiLCBoZHIsCiAJCQkJCQlza2ItPnNrLT5za19wcm90b2NvbCk7CiAJCWlmIChjdHggPT0gTlVMTCkgewotCQkJUFJJTlRfV0FSTigiY291bGQgbm90IGNyZWF0ZSBlZGRwIGNvbnRleHRcbiIpOworCQkJUUVUSF9EQkZfTUVTU0FHRSgyLCAiY291bGQgbm90IGNyZWF0ZSBlZGRwIGNvbnRleHRcbiIpOwogCQkJZ290byB0eF9kcm9wOwogCQl9CiAJfSBlbHNlIHsKQEAgLTI3OTIsNiArMjc1Nyw3IEBACiAJaWYgKChuZXdfc2tiICE9IHNrYikgJiYgbmV3X3NrYikKIAkJZGV2X2tmcmVlX3NrYl9hbnkobmV3X3NrYik7CiAJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwluZXRpZl93YWtlX3F1ZXVlKGRldik7CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRoX2wzX3N5cy5jCmluZGV4IDA4ZjUxZmQuLmFjMTk5MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9uZXQvcWV0aF9sM19zeXMuYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfbDNfc3lzLmMKQEAgLTg1LDcgKzg1LDYgQEAKIAl9IGVsc2UgaWYgKCFzdHJjbXAodG1wLCAibXVsdGljYXN0X3JvdXRlciIpKSB7CiAJCXJvdXRlLT50eXBlID0gTVVMVElDQVNUX1JPVVRFUjsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIHJvdXRpbmcgdHlwZSAnJXMnLlxuIiwgdG1wKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCWlmICgoKGNhcmQtPnN0YXRlID09IENBUkRfU1RBVEVfU09GVFNFVFVQKSB8fApAQCAtMTM3LDkgKzEzNiw2IEBACiAJCXJldHVybiAtRUlOVkFMOwogCiAJaWYgKCFxZXRoX2lzX3N1cHBvcnRlZChjYXJkLCBJUEFfSVBWNikpIHsKLQkJUFJJTlRfV0FSTigiSVB2NiBub3Qgc3VwcG9ydGVkIGZvciBpbnRlcmZhY2UgJXMuXG4iCi0JCQkgICAiUm91dGluZyBzdGF0dXMgbm8gY2hhbmdlZC5cbiIsCi0JCQkgICBRRVRIX0NBUkRfSUZOQU1FKGNhcmQpKTsKIAkJcmV0dXJuIC1FTk9UU1VQUDsKIAl9CiAKQEAgLTE3OSw3ICsxNzUsNiBAQAogCWlmICgoaSA9PSAwKSB8fCAoaSA9PSAxKSkKIAkJY2FyZC0+b3B0aW9ucy5mYWtlX2Jyb2FkY2FzdCA9IGk7CiAJZWxzZSB7Ci0JCVBSSU5UX1dBUk4oImZha2VfYnJvYWRjYXN0OiB3cml0ZSAwIG9yIDEgdG8gdGhpcyBmaWxlIVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC0yMjAsNyArMjE1LDYgQEAKIAogCWlmICghKChjYXJkLT5pbmZvLmxpbmtfdHlwZSA9PSBRRVRIX0xJTktfVFlQRV9IU1RSKSB8fAogCSAgICAgIChjYXJkLT5pbmZvLmxpbmtfdHlwZSA9PSBRRVRIX0xJTktfVFlQRV9MQU5FX1RSKSkpIHsKLQkJUFJJTlRfV0FSTigiRGV2aWNlIGlzIG5vdCBhIHRva2VucmluZyBkZXZpY2UhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCkBAIC0yMzMsOCArMjI3LDYgQEAKIAkJY2FyZC0+b3B0aW9ucy5icm9hZGNhc3RfbW9kZSA9IFFFVEhfVFJfQlJPQURDQVNUX0FMTFJJTkdTOwogCQlyZXR1cm4gY291bnQ7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigiYnJvYWRjYXN0X21vZGU6IGludmFsaWQgbW9kZSAlcyFcbiIsCi0JCQkgICB0bXApOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtMjc1LDcgKzI2Nyw2IEBACiAKIAlpZiAoISgoY2FyZC0+aW5mby5saW5rX3R5cGUgPT0gUUVUSF9MSU5LX1RZUEVfSFNUUikgfHwKIAkgICAgICAoY2FyZC0+aW5mby5saW5rX3R5cGUgPT0gUUVUSF9MSU5LX1RZUEVfTEFORV9UUikpKSB7Ci0JCVBSSU5UX1dBUk4oIkRldmljZSBpcyBub3QgYSB0b2tlbnJpbmcgZGV2aWNlIVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAtMjg1LDcgKzI3Niw2IEBACiAJCQlRRVRIX1RSX01BQ0FERFJfQ0FOT05JQ0FMIDoKIAkJCVFFVEhfVFJfTUFDQUREUl9OT05DQU5PTklDQUw7CiAJZWxzZSB7Ci0JCVBSSU5UX1dBUk4oImNhbm9uaWNhbF9tYWNhZGRyOiB3cml0ZSAwIG9yIDEgdG8gdGhpcyBmaWxlIVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gY291bnQ7CkBAIC0zMjcsNyArMzE3LDYgQEAKIAllbHNlIGlmICghc3RyY21wKHRtcCwgIm5vX2NoZWNrc3VtbWluZyIpKQogCQljYXJkLT5vcHRpb25zLmNoZWNrc3VtX3R5cGUgPSBOT19DSEVDS1NVTU1JTkc7CiAJZWxzZSB7Ci0JCVBSSU5UX1dBUk4oIlVua25vd24gY2hlY2tzdW1taW5nIHR5cGUgJyVzJ1xuIiwgdG1wKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTM4Miw4ICszNzEsNiBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcCh0bXAsICIwIikpIHsKIAkJY2FyZC0+aXBhdG8uZW5hYmxlZCA9IDA7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigiaXBhdG9fZW5hYmxlOiB3cml0ZSAwLCAxIG9yICd0b2dnbGUnIHRvICIKLQkJCSAgICJ0aGlzIGZpbGVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtNDIyLDggKzQwOSw2IEBACiAJfSBlbHNlIGlmICghc3RyY21wKHRtcCwgIjAiKSkgewogCQljYXJkLT5pcGF0by5pbnZlcnQ0ID0gMDsKIAl9IGVsc2UgewotCQlQUklOVF9XQVJOKCJpcGF0b19pbnZlcnQ0OiB3cml0ZSAwLCAxIG9yICd0b2dnbGUnIHRvICIKLQkJCSAgICJ0aGlzIGZpbGVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIGNvdW50OwpAQCAtNDg2LDEzICs0NzEsMTAgQEAKIAkvKiBnZXQgYWRkcmVzcyBzdHJpbmcgKi8KIAllbmQgPSBzdHJjaHIoc3RhcnQsICcvJyk7CiAJaWYgKCFlbmQgfHwgKGVuZCAtIHN0YXJ0ID49IDQwKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIGZvcm1hdCBmb3IgaXBhdG9fYWRkeC9kZWx4LiAiCi0JCQkgICAiVXNlIDxpcCBhZGRyPi88bWFzayBiaXRzPlxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlzdHJuY3B5KGJ1ZmZlciwgc3RhcnQsIGVuZCAtIHN0YXJ0KTsKIAlpZiAocWV0aF9sM19zdHJpbmdfdG9faXBhZGRyKGJ1ZmZlciwgcHJvdG8sIGFkZHIpKSB7Ci0JCVBSSU5UX1dBUk4oIkludmFsaWQgSVAgYWRkcmVzcyBmb3JtYXQhXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXN0YXJ0ID0gZW5kICsgMTsKQEAgLTUwMCw3ICs0ODIsNiBAQAogCWlmICghc3RybGVuKHN0YXJ0KSB8fAogCSAgICAodG1wID09IHN0YXJ0KSB8fAogCSAgICAoKm1hc2tfYml0cyA+ICgocHJvdG8gPT0gUUVUSF9QUk9UX0lQVjQpID8gMzIgOiAxMjgpKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIG1hc2sgYml0cyBmb3IgaXBhdG9fYWRkeC9kZWx4ICFcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAJcmV0dXJuIDA7CkBAIC01MjAsNyArNTAxLDYgQEAKIAogCWlwYXRvZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBxZXRoX2lwYXRvX2VudHJ5KSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFpcGF0b2UpIHsKLQkJUFJJTlRfV0FSTigiTm8gbWVtb3J5IHRvIGFsbG9jYXRlIGlwYXRvIGVudHJ5XG4iKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCWlwYXRvZS0+cHJvdG8gPSBwcm90bzsKQEAgLTYwOSw4ICs1ODksNiBAQAogCX0gZWxzZSBpZiAoIXN0cmNtcCh0bXAsICIwIikpIHsKIAkJY2FyZC0+aXBhdG8uaW52ZXJ0NiA9IDA7CiAJfSBlbHNlIHsKLQkJUFJJTlRfV0FSTigiaXBhdG9faW52ZXJ0Njogd3JpdGUgMCwgMSBvciAndG9nZ2xlJyB0byAiCi0JCQkgICAidGhpcyBmaWxlXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXJldHVybiBjb3VudDsKQEAgLTcyNCw3ICs3MDIsNiBAQAogCQkgdTggKmFkZHIpCiB7CiAJaWYgKHFldGhfbDNfc3RyaW5nX3RvX2lwYWRkcihidWYsIHByb3RvLCBhZGRyKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIElQIGFkZHJlc3MgZm9ybWF0IVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gMDsKQEAgLTg5MSw3ICs4NjgsNiBAQAogCQkgdTggKmFkZHIpCiB7CiAJaWYgKHFldGhfbDNfc3RyaW5nX3RvX2lwYWRkcihidWYsIHByb3RvLCBhZGRyKSkgewotCQlQUklOVF9XQVJOKCJJbnZhbGlkIElQIGFkZHJlc3MgZm9ybWF0IVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9uZXQvc21zZ2l1Y3YuYyBiL2RyaXZlcnMvczM5MC9uZXQvc21zZ2l1Y3YuYwppbmRleCA4NzM1YTQxLi4xNjRlMDkwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3MzOTAvbmV0L3Ntc2dpdWN2LmMKKysrIGIvZHJpdmVycy9zMzkwL25ldC9zbXNnaXVjdi5jCkBAIC0xNTYsMTEgKzE1Niw4IEBACiAJaWYgKHJjICE9IDApCiAJCWdvdG8gb3V0OwogCXJjID0gaXVjdl9yZWdpc3Rlcigmc21zZ19oYW5kbGVyLCAxKTsKLQlpZiAocmMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJTTVNHSVVDVjogZmFpbGVkIHRvIHJlZ2lzdGVyIHRvIGl1Y3YiKTsKLQkJcmMgPSAtRUlPOwkvKiBiZXR0ZXIgZXJybm8gPyAqLworCWlmIChyYykKIAkJZ290byBvdXRfZHJpdmVyOwotCX0KIAlzbXNnX3BhdGggPSBpdWN2X3BhdGhfYWxsb2MoMjU1LCAwLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNtc2dfcGF0aCkgewogCQlyYyA9IC1FTk9NRU07CkBAIC0xNjgsMTEgKzE2NSw4IEBACiAJfQogCXJjID0gaXVjdl9wYXRoX2Nvbm5lY3Qoc21zZ19wYXRoLCAmc21zZ19oYW5kbGVyLCAiKk1TRyAgICAiLAogCQkJICAgICAgIE5VTEwsIE5VTEwsIE5VTEwpOwotCWlmIChyYykgewotCQlwcmludGsoS0VSTl9FUlIgIlNNU0dJVUNWOiBmYWlsZWQgdG8gY29ubmVjdCB0byAqTVNHIik7Ci0JCXJjID0gLUVJTzsJLyogYmV0dGVyIGVycm5vID8gKi8KKwlpZiAocmMpCiAJCWdvdG8gb3V0X2ZyZWU7Ci0JfQogCWNwY21kKCJTRVQgU01TRyBJVUNWIiwgTlVMTCwgMCwgTlVMTCk7CiAJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvczM5MC9zMzkwbWFjaC5jIGIvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmMKaW5kZXggNTA4MGYzNC4uODM0ZTllZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmMKKysrIGIvZHJpdmVycy9zMzkwL3MzOTBtYWNoLmMKQEAgLTIsMTAgKzIsMTAgQEAKICAqICBkcml2ZXJzL3MzOTAvczM5MG1hY2guYwogICogICBTLzM5MCBtYWNoaW5lIGNoZWNrIGhhbmRsZXIKICAqCi0gKiAgUzM5MCB2ZXJzaW9uCi0gKiAgICBDb3B5cmlnaHQgKEMpIDIwMDAgSUJNIERldXRzY2hsYW5kIEVudHdpY2tsdW5nIEdtYkgsIElCTSBDb3Jwb3JhdGlvbgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDAwLDIwMDgKICAqICAgIEF1dGhvcihzKTogSW5nbyBBZGx1bmcgKGFkbHVuZ0BkZS5pYm0uY29tKQogICoJCSBNYXJ0aW4gU2Nod2lkZWZza3kgKHNjaHdpZGVmc2t5QGRlLmlibS5jb20pCisgKgkJIENvcm5lbGlhIEh1Y2sgPGNvcm5lbGlhLmh1Y2tAZGUuaWJtLmNvbT4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMTgsMTAgKzE4LDYgQEAKICNpbmNsdWRlIDxhc20vZXRyLmg+CiAjaW5jbHVkZSA8YXNtL2xvd2NvcmUuaD4KICNpbmNsdWRlIDxhc20vY2lvLmg+Ci0jaW5jbHVkZSAiY2lvL2Npby5oIgotI2luY2x1ZGUgImNpby9jaHNjLmgiCi0jaW5jbHVkZSAiY2lvL2Nzcy5oIgotI2luY2x1ZGUgImNpby9jaHAuaCIKICNpbmNsdWRlICJzMzkwbWFjaC5oIgogCiBzdGF0aWMgc3RydWN0IHNlbWFwaG9yZSBtX3NlbTsKQEAgLTM2LDEzICszMiw0MCBAQAogCWZvcig7Oyk7CiB9CiAKK3N0YXRpYyBjcndfaGFuZGxlcl90IGNyd19oYW5kbGVyc1tOUl9SU0NTXTsKKworLyoqCisgKiBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKCkgLSByZWdpc3RlciBhIGNoYW5uZWwgcmVwb3J0IHdvcmQgaGFuZGxlcgorICogQHJzYzogcmVwb3J0aW5nIHNvdXJjZSBjb2RlIHRvIGhhbmRsZQorICogQGhhbmRsZXI6IGhhbmRsZXIgdG8gYmUgcmVnaXN0ZXJlZAorICoKKyAqIFJldHVybnMgJTAgb24gc3VjY2VzcyBhbmQgYSBuZWdhdGl2ZSBlcnJvciB2YWx1ZSBvdGhlcndpc2UuCisgKi8KK2ludCBzMzkwX3JlZ2lzdGVyX2Nyd19oYW5kbGVyKGludCByc2MsIGNyd19oYW5kbGVyX3QgaGFuZGxlcikKK3sKKwlpZiAoKHJzYyA8IDApIHx8IChyc2MgPj0gTlJfUlNDUykpCisJCXJldHVybiAtRUlOVkFMOworCWlmICghY21weGNoZygmY3J3X2hhbmRsZXJzW3JzY10sIE5VTEwsIGhhbmRsZXIpKQorCQlyZXR1cm4gMDsKKwlyZXR1cm4gLUVCVVNZOworfQorCisvKioKKyAqIHMzOTBfdW5yZWdpc3Rlcl9jcndfaGFuZGxlcigpIC0gdW5yZWdpc3RlciBhIGNoYW5uZWwgcmVwb3J0IHdvcmQgaGFuZGxlcgorICogQHJzYzogcmVwb3J0aW5nIHNvdXJjZSBjb2RlIHRvIGhhbmRsZQorICovCit2b2lkIHMzOTBfdW5yZWdpc3Rlcl9jcndfaGFuZGxlcihpbnQgcnNjKQoreworCWlmICgocnNjIDwgMCkgfHwgKHJzYyA+PSBOUl9SU0NTKSkKKwkJcmV0dXJuOworCXhjaGcoJmNyd19oYW5kbGVyc1tyc2NdLCBOVUxMKTsKKwlzeW5jaHJvbml6ZV9zY2hlZCgpOworfQorCiAvKgogICogUmV0cmlldmUgQ1JXcyBhbmQgY2FsbCBmdW5jdGlvbiB0byBoYW5kbGUgZXZlbnQuCi0gKgotICogTm90ZSA6IHdlIGN1cnJlbnRseSBwcm9jZXNzIENSV3MgZm9yIGlvIGFuZCBjaHNjIHN1YmNoYW5uZWxzIG9ubHkKICAqLwotc3RhdGljIGludAotczM5MF9jb2xsZWN0X2Nyd19pbmZvKHZvaWQgKnBhcmFtKQorc3RhdGljIGludCBzMzkwX2NvbGxlY3RfY3J3X2luZm8odm9pZCAqcGFyYW0pCiB7CiAJc3RydWN0IGNydyBjcndbMl07CiAJaW50IGNjb2RlOwpAQCAtODQsNTcgKzEwNywyNCBAQAogCQkgICAgICAgY3J3W2NoYWluXS5yc2lkKTsKIAkJLyogQ2hlY2sgZm9yIG92ZXJmbG93cy4gKi8KIAkJaWYgKGNyd1tjaGFpbl0ub2ZsdykgeworCQkJaW50IGk7CisKIAkJCXByX2RlYnVnKCIlczogY3J3IG92ZXJmbG93IGRldGVjdGVkIVxuIiwgX19mdW5jX18pOwotCQkJY3NzX3NjaGVkdWxlX2V2YWxfYWxsKCk7CisJCQlmb3IgKGkgPSAwOyBpIDwgTlJfUlNDUzsgaSsrKSB7CisJCQkJaWYgKGNyd19oYW5kbGVyc1tpXSkKKwkJCQkJY3J3X2hhbmRsZXJzW2ldKE5VTEwsIE5VTEwsIDEpOworCQkJfQogCQkJY2hhaW4gPSAwOwogCQkJY29udGludWU7CiAJCX0KLQkJc3dpdGNoIChjcndbY2hhaW5dLnJzYykgewotCQljYXNlIENSV19SU0NfU0NIOgotCQkJaWYgKGNyd1swXS5jaG4gJiYgIWNoYWluKQotCQkJCWJyZWFrOwotCQkJcHJfZGVidWcoInNvdXJjZSBpcyBzdWJjaGFubmVsICUwNFhcbiIsIGNyd1swXS5yc2lkKTsKLQkJCWNzc19wcm9jZXNzX2NydyhjcndbMF0ucnNpZCwgY2hhaW4gPyBjcndbMV0ucnNpZCA6IDApOwotCQkJYnJlYWs7Ci0JCWNhc2UgQ1JXX1JTQ19NT05JVE9SOgotCQkJcHJfZGVidWcoInNvdXJjZSBpcyBtb25pdG9yaW5nIGZhY2lsaXR5XG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIENSV19SU0NfQ1BBVEg6Ci0JCQlwcl9kZWJ1Zygic291cmNlIGlzIGNoYW5uZWwgcGF0aCAlMDJYXG4iLCBjcndbMF0ucnNpZCk7Ci0JCQkvKgotCQkJICogQ2hlY2sgZm9yIHNvbGljaXRlZCBtYWNoaW5lIGNoZWNrcy4gVGhlc2UgYXJlCi0JCQkgKiBjcmVhdGVkIGJ5IHJlc2V0IGNoYW5uZWwgcGF0aCBhbmQgbmVlZCBub3QgYmUKLQkJCSAqIHJlcG9ydGVkIHRvIHRoZSBjb21tb24gSS9PIGxheWVyLgotCQkJICovCi0JCQlpZiAoY3J3W2NoYWluXS5zbGN0KSB7Ci0JCQkJcHJfZGVidWcoInNvbGljaXRlZCBtYWNoaW5lIGNoZWNrIGZvciAiCi0JCQkJCSAiY2hhbm5lbCBwYXRoICUwMlhcbiIsIGNyd1swXS5yc2lkKTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCXN3aXRjaCAoY3J3WzBdLmVyYykgewotCQkJY2FzZSBDUldfRVJDX0lQQVJNOiAvKiBQYXRoIGhhcyBjb21lLiAqLwotCQkJCWNocF9wcm9jZXNzX2NydyhjcndbMF0ucnNpZCwgMSk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIENSV19FUkNfUEVSUkk6IC8qIFBhdGggaGFzIGdvbmUuICovCi0JCQljYXNlIENSV19FUkNfUEVSUk46Ci0JCQkJY2hwX3Byb2Nlc3NfY3J3KGNyd1swXS5yc2lkLCAwKTsKLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJcHJfZGVidWcoIkRvbid0IGtub3cgaG93IHRvIGhhbmRsZSBlcmM9JXhcbiIsCi0JCQkJCSBjcndbMF0uZXJjKTsKLQkJCX0KLQkJCWJyZWFrOwotCQljYXNlIENSV19SU0NfQ09ORklHOgotCQkJcHJfZGVidWcoInNvdXJjZSBpcyBjb25maWd1cmF0aW9uLWFsZXJ0IGZhY2lsaXR5XG4iKTsKLQkJCWJyZWFrOwotCQljYXNlIENSV19SU0NfQ1NTOgotCQkJcHJfZGVidWcoInNvdXJjZSBpcyBjaGFubmVsIHN1YnN5c3RlbVxuIik7Ci0JCQljaHNjX3Byb2Nlc3NfY3J3KCk7Ci0JCQlicmVhazsKLQkJZGVmYXVsdDoKLQkJCXByX2RlYnVnKCJ1bmtub3duIHNvdXJjZVxuIik7Ci0JCQlicmVhazsKKwkJaWYgKGNyd1swXS5jaG4gJiYgIWNoYWluKSB7CisJCQljaGFpbisrOworCQkJY29udGludWU7CiAJCX0KKwkJaWYgKGNyd19oYW5kbGVyc1tjcndbY2hhaW5dLnJzY10pCisJCQljcndfaGFuZGxlcnNbY3J3W2NoYWluXS5yc2NdKCZjcndbMF0sCisJCQkJCQkgICAgIGNoYWluID8gJmNyd1sxXSA6IE5VTEwsCisJCQkJCQkgICAgIDApOwogCQkvKiBjaGFpbiBpcyBhbHdheXMgMCBvciAxIGhlcmUuICovCiAJCWNoYWluID0gY3J3W2NoYWluXS5jaG4gPyBjaGFpbiArIDEgOiAwOwogCX0KQEAgLTIwNyw2ICsxOTcsNyBAQAogCQlkb19leGl0KFNJR1NFR1YpOwogCX0KIH0KK0VYUE9SVF9TWU1CT0xfR1BMKHMzOTBfaGFuZGxlX21jY2spOwogCiAvKgogICogcmV0dXJucyAwIGlmIGFsbCByZWdpc3RlcnMgY291bGQgYmUgdmFsaWRhdGVkCkBAIC00NjcsNiArNDU4LDEwIEBACiAJCQlldHJfc3luY19jaGVjaygpOwogCQlpZiAoUzM5MF9sb3djb3JlLmV4dGVybmFsX2RhbWFnZV9jb2RlICYgKDFVIDw8IEVEX0VUUl9TV0lUQ0gpKQogCQkJZXRyX3N3aXRjaF90b19sb2NhbCgpOworCQlpZiAoUzM5MF9sb3djb3JlLmV4dGVybmFsX2RhbWFnZV9jb2RlICYgKDFVIDw8IEVEX1NUUF9TWU5DKSkKKwkJCXN0cF9zeW5jX2NoZWNrKCk7CisJCWlmIChTMzkwX2xvd2NvcmUuZXh0ZXJuYWxfZGFtYWdlX2NvZGUgJiAoMVUgPDwgRURfU1RQX0lTTEFORCkpCisJCQlzdHBfaXNsYW5kX2NoZWNrKCk7CiAJfQogCiAJaWYgKG1jaS0+c2UpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3MzOTAvczM5MG1hY2guaCBiL2RyaXZlcnMvczM5MC9zMzkwbWFjaC5oCmluZGV4IGNhNjgxZjkuLmQzOWY4YjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9zMzkwbWFjaC5oCisrKyBiL2RyaXZlcnMvczM5MC9zMzkwbWFjaC5oCkBAIC03Miw2ICs3MiwxMyBAQAogCV9fdTMyIHJzaWQgICAgOiAxNjsgICAvKiByZXBvcnRpbmctc291cmNlIElEICovCiB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKIAordHlwZWRlZiB2b2lkICgqY3J3X2hhbmRsZXJfdCkoc3RydWN0IGNydyAqLCBzdHJ1Y3QgY3J3ICosIGludCk7CisKK2V4dGVybiBpbnQgczM5MF9yZWdpc3Rlcl9jcndfaGFuZGxlcihpbnQgcnNjLCBjcndfaGFuZGxlcl90IGhhbmRsZXIpOworZXh0ZXJuIHZvaWQgczM5MF91bnJlZ2lzdGVyX2Nyd19oYW5kbGVyKGludCByc2MpOworCisjZGVmaW5lIE5SX1JTQ1MgMTYKKwogI2RlZmluZSBDUldfUlNDX01PTklUT1IgIDB4MiAgLyogbW9uaXRvcmluZyBmYWNpbGl0eSAqLwogI2RlZmluZSBDUldfUlNDX1NDSCAgICAgIDB4MyAgLyogc3ViY2hhbm5lbCAqLwogI2RlZmluZSBDUldfUlNDX0NQQVRIICAgIDB4NCAgLyogY2hhbm5lbCBwYXRoICovCkBAIC0xMDUsNiArMTEyLDkgQEAKICNkZWZpbmUgRURfRVRSX1NZTkMJMTIJLyogRXh0ZXJuYWwgZGFtYWdlIEVUUiBzeW5jIGNoZWNrICovCiAjZGVmaW5lIEVEX0VUUl9TV0lUQ0gJMTMJLyogRXh0ZXJuYWwgZGFtYWdlIEVUUiBzd2l0Y2ggdG8gbG9jYWwgKi8KIAorI2RlZmluZSBFRF9TVFBfU1lOQwk3CS8qIEV4dGVybmFsIGRhbWFnZSBTVFAgc3luYyBjaGVjayAqLworI2RlZmluZSBFRF9TVFBfSVNMQU5ECTYJLyogRXh0ZXJuYWwgZGFtYWdlIFNUUCBpc2xhbmQgY2hlY2sgKi8KKwogc3RydWN0IHB0X3JlZ3M7CiAKIHZvaWQgczM5MF9oYW5kbGVfbWNjayh2b2lkKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2JwcC5jIGIvZHJpdmVycy9zYnVzL2NoYXIvYnBwLmMKaW5kZXggMDNjOTY2MC4uYmJhMjFlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvYnBwLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvYnBwLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC90aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CkBAIC00MjksNiArNDMwLDcgQEAKICAgICAgIHVuc2lnbmVkIG1pbm9yID0gaW1pbm9yKGlub2RlKTsKICAgICAgIGludCByZXQ7CiAKKyAgICAgIGxvY2tfa2VybmVsKCk7CiAgICAgICBzcGluX2xvY2soJmJwcF9vcGVuX2xvY2spOwogICAgICAgcmV0ID0gMDsKICAgICAgIGlmIChtaW5vciA+PSBCUFBfTk8pIHsKQEAgLTQ0NCw2ICs0NDYsNyBAQAogCSAgICAgIH0KICAgICAgIH0KICAgICAgIHNwaW5fdW5sb2NrKCZicHBfb3Blbl9sb2NrKTsKKyAgICAgIHVubG9ja19rZXJuZWwoKTsKIAogICAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2Nwd2F0Y2hkb2cuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2Nwd2F0Y2hkb2cuYwppbmRleCAyMzU3MDM0Li4yM2FiZmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9jcHdhdGNoZG9nLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvY3B3YXRjaGRvZy5jCkBAIC0yNzksNiArMjc5LDcgQEAKIAogc3RhdGljIGludCB3ZF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmKQogeworCWxvY2tfa2VybmVsKCk7CiAJc3dpdGNoKGltaW5vcihpbm9kZSkpCiAJewogCQljYXNlIFdEMF9NSU5PUjoKQEAgLTI5MSw2ICsyOTIsNyBAQAogCQkJZi0+cHJpdmF0ZV9kYXRhID0gJndkX2Rldi53YXRjaGRvZ1tXRDJfSURdOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CisJCQl1bmxvY2tfa2VybmVsKCk7CiAJCQlyZXR1cm4oLUVOT0RFVik7CiAJfQogCkBAIC0zMDQsMTEgKzMwNiwxMyBAQAogCQkJCQkJKHZvaWQgKil3ZF9kZXYucmVncykpIHsKIAkJCXByaW50aygiJXM6IENhbm5vdCByZWdpc3RlciBJUlEgJWRcbiIsIAogCQkJCVdEX09CUE5BTUUsIHdkX2Rldi5pcnEpOworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuKC1FQlVTWSk7CiAJCX0KIAkJd2RfZGV2LmluaXRpYWxpemVkID0gMTsKIAl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuKG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGYpKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvZGlzcGxheTdzZWcuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL2Rpc3BsYXk3c2VnLmMKaW5kZXggMzI3OWExYi4uZDhmNWMwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvZGlzcGxheTdzZWcuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9kaXNwbGF5N3NlZy5jCkBAIC05NCw2ICs5NCw3IEBACiB7CiAJaWYgKEQ3U19NSU5PUiAhPSBpbWlub3IoaW5vZGUpKQogCQlyZXR1cm4gLUVOT0RFVjsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCWF0b21pY19pbmMoJmQ3c191c2Vycyk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9lbnZjdHJsLmMgYi9kcml2ZXJzL3NidXMvY2hhci9lbnZjdHJsLmMKaW5kZXggZGFkYWJlZi4uYTQwODQwMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvZW52Y3RybC5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL2VudmN0cmwuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9rbW9kLmg+CiAjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgPGFzbS9lYnVzLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTY5NCw2ICs2OTUsNyBAQAogc3RhdGljIGludAogZW52Y3RybF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZmlsZS0+cHJpdmF0ZV9kYXRhID0gTlVMTDsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2J1cy9jaGFyL2ZsYXNoLmMgYi9kcml2ZXJzL3NidXMvY2hhci9mbGFzaC5jCmluZGV4IDQ0ZTAzOTguLjdkOTVlMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL2ZsYXNoLmMKKysrIGIvZHJpdmVycy9zYnVzL2NoYXIvZmxhc2guYwpAQCAtMTI3LDkgKzEyNywxMyBAQAogc3RhdGljIGludAogZmxhc2hfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKLQlpZiAodGVzdF9hbmRfc2V0X2JpdCgwLCAodm9pZCAqKSZmbGFzaC5idXN5KSAhPSAwKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgKHZvaWQgKikmZmxhc2guYnVzeSkgIT0gMCkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CisJfQogCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9qc2ZsYXNoLmMgYi9kcml2ZXJzL3NidXMvY2hhci9qc2ZsYXNoLmMKaW5kZXggNGI3MDc5Zi4uMmJlYzljYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvanNmbGFzaC5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL2pzZmxhc2guYwpAQCAtMjcsNiArMjcsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC00MTcsMTEgKzQxOCwxNyBAQAogCiBzdGF0aWMgaW50IGpzZl9vcGVuKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgZmlsZSAqIGZpbHApCiB7Ci0KLQlpZiAoanNmMC5iYXNlID09IDApIHJldHVybiAtRU5YSU87Ci0JaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgKHZvaWQgKikmanNmMC5idXN5KSAhPSAwKQorCWxvY2tfa2VybmVsKCk7CisJaWYgKGpzZjAuYmFzZSA9PSAwKSB7CisJCXVubG9ja19rZXJuZWwoKTsKKwkJcmV0dXJuIC1FTlhJTzsKKwl9CisJaWYgKHRlc3RfYW5kX3NldF9iaXQoMCwgKHZvaWQgKikmanNmMC5idXN5KSAhPSAwKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FQlVTWTsKKwl9CiAKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CS8qIFhYWCBXaGF0IHNlY3VyaXR5PyAqLwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NidXMvY2hhci9vcGVucHJvbS5jIGIvZHJpdmVycy9zYnVzL2NoYXIvb3BlbnByb20uYwppbmRleCBmYmZlYjg5Li4yOWRjNzM1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9vcGVucHJvbS5jCisrKyBiL2RyaXZlcnMvc2J1cy9jaGFyL29wZW5wcm9tLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC02ODksOSArNjkwLDExIEBACiAJaWYgKCFkYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAorCWxvY2tfa2VybmVsKCk7CiAJZGF0YS0+Y3VycmVudF9ub2RlID0gb2ZfZmluZF9ub2RlX2J5X3BhdGgoIi8iKTsKIAlkYXRhLT5sYXN0bm9kZSA9IGRhdGEtPmN1cnJlbnRfbm9kZTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSAodm9pZCAqKSBkYXRhOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvcmlvd2F0Y2hkb2cuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL3Jpb3dhdGNoZG9nLmMKaW5kZXggYTJmYzZiOC4uODhjMGZjNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvcmlvd2F0Y2hkb2cuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9yaW93YXRjaGRvZy5jCkBAIC0xMSw2ICsxMSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vZWJ1cy5oPgpAQCAtMTE2LDYgKzExNyw3IEBACiAKIHN0YXRpYyBpbnQgcmlvd2Rfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbHApOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvcnRjLmMgYi9kcml2ZXJzL3NidXMvY2hhci9ydGMuYwppbmRleCAxOGQxOGYxLi5iMDQyOTkxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NidXMvY2hhci9ydGMuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci9ydGMuYwpAQCAtMTIsNiArMTIsNyBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9taXNjZGV2aWNlLmg+CkBAIC0yMTMsNiArMjE0LDcgQEAKIHsKIAlpbnQgcmV0OwogCisJbG9ja19rZXJuZWwoKTsKIAlzcGluX2xvY2tfaXJxKCZtb3N0ZWtfbG9jayk7CiAJaWYgKHJ0Y19idXN5KSB7CiAJCXJldCA9IC1FQlVTWTsKQEAgLTIyMSw2ICsyMjMsNyBAQAogCQlyZXQgPSAwOwogCX0KIAlzcGluX3VubG9ja19pcnEoJm1vc3Rla19sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvdWN0cmwuYyBiL2RyaXZlcnMvc2J1cy9jaGFyL3VjdHJsLmMKaW5kZXggMzgzZjMyYy4uNTEzYmE2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zYnVzL2NoYXIvdWN0cmwuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci91Y3RybC5jCkBAIC05LDYgKzksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KQEAgLTIxMSw4ICsyMTIsMTAgQEAKIHN0YXRpYyBpbnQKIHVjdHJsX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJbG9ja19rZXJuZWwoKTsKIAl1Y3RybF9nZXRfZXZlbnRfc3RhdHVzKCk7CiAJdWN0cmxfZ2V0X2V4dGVybmFsX3N0YXR1cygpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zYnVzL2NoYXIvdmZjX2Rldi5jIGIvZHJpdmVycy9zYnVzL2NoYXIvdmZjX2Rldi5jCmluZGV4IGQ0ZjhmY2QuLjFmNmNiOGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2J1cy9jaGFyL3ZmY19kZXYuYworKysgYi9kcml2ZXJzL3NidXMvY2hhci92ZmNfZGV2LmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL29wZW5wcm9tLmg+CiAjaW5jbHVkZSA8YXNtL29wbGliLmg+CkBAIC0xNzgsMTQgKzE3OSwxNyBAQAogewogCXN0cnVjdCB2ZmNfZGV2ICpkZXY7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9jaygmdmZjX2Rldl9sb2NrKTsKIAlkZXYgPSB2ZmNfZ2V0X2Rldl9wdHIoaW1pbm9yKGlub2RlKSk7CiAJaWYgKGRldiA9PSBOVUxMKSB7CiAJCXNwaW5fdW5sb2NrKCZ2ZmNfZGV2X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PREVWOwogCX0KIAlpZiAoZGV2LT5idXN5KSB7CiAJCXNwaW5fdW5sb2NrKCZ2ZmNfZGV2X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRUJVU1k7CiAJfQogCkBAIC0yMDIsNiArMjA2LDcgQEAKIAl2ZmNfY2FwdHN0YXRfcmVzZXQoZGV2KTsKIAkKIAl2ZmNfdW5sb2NrX2RldmljZShkZXYpOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpLzN3LTl4eHguYyBiL2RyaXZlcnMvc2NzaS8zdy05eHh4LmMKaW5kZXggYjMxZmFlYy4uNzA0NTUxMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpLzN3LTl4eHguYworKysgYi9kcml2ZXJzL3Njc2kvM3ctOXh4eC5jCkBAIC04NCw2ICs4NCw3IEBACiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KQEAgLTg2MiwxMSArODYzLDEzIEBACiB9IC8qIEVuZCB0d2FfY2hyZGV2X2lvY3RsKCkgKi8KIAogLyogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIG9wZW4gZm9yIHRoZSBjaGFyYWN0ZXIgZGV2aWNlICovCisvKiBOT1RFIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIHJhY2Ugd2l0aCByZW1vdmUuICovCiBzdGF0aWMgaW50IHR3YV9jaHJkZXZfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAl1bnNpZ25lZCBpbnQgbWlub3JfbnVtYmVyOwogCWludCByZXR2YWwgPSBUV19JT0NUTF9FUlJPUl9PU19FTk9ERVY7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCW1pbm9yX251bWJlciA9IGltaW5vcihpbm9kZSk7CiAJaWYgKG1pbm9yX251bWJlciA+PSB0d2FfZGV2aWNlX2V4dGVuc2lvbl9jb3VudCkKIAkJZ290byBvdXQ7CkBAIC0xMjc4LDcgKzEyODEsNyBAQAogCQkJZXJyb3IgPSAwOwogCQkJLyogQ2hlY2sgZm9yIGNvbW1hbmQgcGFja2V0IGVycm9ycyAqLwogCQkJaWYgKGZ1bGxfY29tbWFuZF9wYWNrZXQtPmNvbW1hbmQubmV3Y29tbWFuZC5zdGF0dXMgIT0gMCkgewotCQkJCWlmICh0d19kZXYtPnNyYltyZXF1ZXN0X2lkXSAhPSAwKSB7CisJCQkJaWYgKHR3X2Rldi0+c3JiW3JlcXVlc3RfaWRdICE9IE5VTEwpIHsKIAkJCQkJZXJyb3IgPSB0d2FfZmlsbF9zZW5zZSh0d19kZXYsIHJlcXVlc3RfaWQsIDEsIDEpOwogCQkJCX0gZWxzZSB7CiAJCQkJCS8qIFNraXAgaW9jdGwgZXJyb3IgcHJpbnRzICovCkBAIC0xMjkwLDcgKzEyOTMsNyBAQAogCiAJCQkvKiBDaGVjayBmb3IgY29ycmVjdCBzdGF0ZSAqLwogCQkJaWYgKHR3X2Rldi0+c3RhdGVbcmVxdWVzdF9pZF0gIT0gVFdfU19QT1NURUQpIHsKLQkJCQlpZiAodHdfZGV2LT5zcmJbcmVxdWVzdF9pZF0gIT0gMCkgeworCQkJCWlmICh0d19kZXYtPnNyYltyZXF1ZXN0X2lkXSAhPSBOVUxMKSB7CiAJCQkJCVRXX1BSSU5USyh0d19kZXYtPmhvc3QsIFRXX0RSSVZFUiwgMHgxYSwgIlJlY2VpdmVkIGEgcmVxdWVzdCBpZCB0aGF0IHdhc24ndCBwb3N0ZWQiKTsKIAkJCQkJVFdfQ0xFQVJfQUxMX0lOVEVSUlVQVFModHdfZGV2KTsKIAkJCQkJZ290byB0d2FfaW50ZXJydXB0X2JhaWw7CkBAIC0xMjk4LDcgKzEzMDEsNyBAQAogCQkJfQogCiAJCQkvKiBDaGVjayBmb3IgaW50ZXJuYWwgY29tbWFuZCBjb21wbGV0aW9uICovCi0JCQlpZiAodHdfZGV2LT5zcmJbcmVxdWVzdF9pZF0gPT0gMCkgeworCQkJaWYgKHR3X2Rldi0+c3JiW3JlcXVlc3RfaWRdID09IE5VTEwpIHsKIAkJCQlpZiAocmVxdWVzdF9pZCAhPSB0d19kZXYtPmNocmRldl9yZXF1ZXN0X2lkKSB7CiAJCQkJCWlmICh0d2FfYWVuX2NvbXBsZXRlKHR3X2RldiwgcmVxdWVzdF9pZCkpCiAJCQkJCQlUV19QUklOVEsodHdfZGV2LT5ob3N0LCBUV19EUklWRVIsIDB4MWIsICJFcnJvciBjb21wbGV0aW5nIEFFTiBkdXJpbmcgYXR0ZW50aW9uIGludGVycnVwdCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpLzN3LXh4eHguYyBiL2RyaXZlcnMvc2NzaS8zdy14eHh4LmMKaW5kZXggOGMyMjMyOS4uYTA1MzdmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpLzN3LXh4eHguYworKysgYi9kcml2ZXJzL3Njc2kvM3cteHh4eC5jCkBAIC0xOTgsNiArMTk4LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgpAQCAtMTAyNywxMCArMTAyOCwxMiBAQAogfSAvKiBFbmQgdHdfY2hyZGV2X2lvY3RsKCkgKi8KIAogLyogVGhpcyBmdW5jdGlvbiBoYW5kbGVzIG9wZW4gZm9yIHRoZSBjaGFyYWN0ZXIgZGV2aWNlICovCisvKiBOT1RFIHRoYXQgdGhpcyBmdW5jdGlvbiByYWNlcyB3aXRoIHJlbW92ZS4gKi8KIHN0YXRpYyBpbnQgdHdfY2hyZGV2X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJdW5zaWduZWQgaW50IG1pbm9yX251bWJlcjsKIAorCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJZHByaW50ayhLRVJOX1dBUk5JTkcgIjN3LXh4eHg6IHR3X2lvY3RsX29wZW4oKVxuIik7CiAKIAltaW5vcl9udW1iZXIgPSBpbWlub3IoaW5vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYyBiL2RyaXZlcnMvc2NzaS9hYWNyYWlkL2xpbml0LmMKaW5kZXggMWY3YzgzNi4uNjhjMTQwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FhY3JhaWQvbGluaXQuYworKysgYi9kcml2ZXJzL3Njc2kvYWFjcmFpZC9saW5pdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KQEAgLTY2Nyw2ICs2NjgsNyBAQAogCXVuc2lnbmVkIG1pbm9yX251bWJlciA9IGltaW5vcihpbm9kZSk7CiAJaW50IGVyciA9IC1FTk9ERVY7CiAKKwlsb2NrX2tlcm5lbCgpOyAgLyogQktMIHB1c2hkb3duOiBub3RoaW5nIGVsc2UgcHJvdGVjdHMgdGhpcyBsaXN0ICovCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShhYWMsICZhYWNfZGV2aWNlcywgZW50cnkpIHsKIAkJaWYgKGFhYy0+aWQgPT0gbWlub3JfbnVtYmVyKSB7CiAJCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBhYWM7CkBAIC02NzQsNiArNjc2LDcgQEAKIAkJCWJyZWFrOwogCQl9CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiBlcnI7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYWhhMTUyeC5jIGIvZHJpdmVycy9zY3NpL2FoYTE1MnguYwppbmRleCAxZGNhMTc3Li4wODk5Y2I2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvYWhhMTUyeC5jCisrKyBiL2RyaXZlcnMvc2NzaS9haGExNTJ4LmMKQEAgLTM1ODIsNyArMzU4Miw3IEBACiAJaWYgKGkgPT0gQVJSQVlfU0laRShwb3J0cykpCiAJCXJldHVybiAwOwogCi0JaWYgKCByZXF1ZXN0X3JlZ2lvbihzZXR1cC0+aW9fcG9ydCwgSU9fUkFOR0UsICJhaGExNTJ4Iik9PTAgKSB7CisJaWYgKCFyZXF1ZXN0X3JlZ2lvbihzZXR1cC0+aW9fcG9ydCwgSU9fUkFOR0UsICJhaGExNTJ4IikpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJhaGExNTJ4OiBpbyBwb3J0IDB4JXggYnVzeS5cbiIsIHNldHVwLT5pb19wb3J0KTsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtMzg0Miw3ICszODQyLDcgQEAKIAkJCWlmICgoc2V0dXBfY291bnQgPT0gMSkgJiYgKHNldHVwWzBdLmlvX3BvcnQgPT0gcG9ydHNbaV0pKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoIHJlcXVlc3RfcmVnaW9uKHBvcnRzW2ldLCBJT19SQU5HRSwgImFoYTE1MngiKT09MCApIHsKKwkJCWlmICghcmVxdWVzdF9yZWdpb24ocG9ydHNbaV0sIElPX1JBTkdFLCAiYWhhMTUyeCIpKSB7CiAJCQkJcHJpbnRrKEtFUk5fRVJSICJhaGExNTJ4OiBpbyBwb3J0IDB4JXggYnVzeS5cbiIsIHBvcnRzW2ldKTsKIAkJCQljb250aW51ZTsKIAkJCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmMgYi9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5jCmluZGV4IDQ0NDZlM2QuLjg2MzBhNzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmMKKysrIGIvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuYwpAQCAtMTA5Myw5ICsxMDkzLDkgQEAKICAqIEBieXRlc190b192ZXJpZnk6IHRvdGFsIGJ5dGVzIHRvIHZlcmlmeQogICovCiBpbnQgYXNkX3ZlcmlmeV9mbGFzaF9zZWcoc3RydWN0IGFzZF9oYV9zdHJ1Y3QgKmFzZF9oYSwKLQkJdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b192ZXJpZnkpCisJCQkgY29uc3Qgdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b192ZXJpZnkpCiB7Ci0JdTggKnNyY19idWY7CisJY29uc3QgdTggKnNyY19idWY7CiAJdTggZmxhc2hfY2hhcjsKIAlpbnQgZXJyOwogCXUzMiBudl9vZmZzZXQsIHJlZywgaTsKQEAgLTExMDUsNyArMTEwNSw3IEBACiAKIAllcnIgPSBGTEFTSF9PSzsKIAludl9vZmZzZXQgPSBkZXN0X29mZnNldDsKLQlzcmNfYnVmID0gKHU4ICopc3JjOworCXNyY19idWYgPSAoY29uc3QgdTggKilzcmM7CiAJZm9yIChpID0gMDsgaSA8IGJ5dGVzX3RvX3ZlcmlmeTsgaSsrKSB7CiAJCWZsYXNoX2NoYXIgPSBhc2RfcmVhZF9yZWdfYnl0ZShhc2RfaGEsIHJlZyArIG52X29mZnNldCArIGkpOwogCQlpZiAoZmxhc2hfY2hhciAhPSBzcmNfYnVmW2ldKSB7CkBAIC0xMTI0LDkgKzExMjQsOSBAQAogICogQGJ5dGVzX3RvX3dyaXRlOiB0b3RhbCBieXRlcyB0byB3cml0ZQogICovCiBpbnQgYXNkX3dyaXRlX2ZsYXNoX3NlZyhzdHJ1Y3QgYXNkX2hhX3N0cnVjdCAqYXNkX2hhLAotCQl2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3dyaXRlKQorCQkJY29uc3Qgdm9pZCAqc3JjLCB1MzIgZGVzdF9vZmZzZXQsIHUzMiBieXRlc190b193cml0ZSkKIHsKLQl1OCAqc3JjX2J1ZjsKKwljb25zdCB1OCAqc3JjX2J1ZjsKIAl1MzIgbnZfb2Zmc2V0LCByZWcsIGk7CiAJaW50IGVycjsKIApAQCAtMTE1Myw3ICsxMTUzLDcgQEAKIAkJcmV0dXJuIGVycjsKIAl9CiAKLQlzcmNfYnVmID0gKHU4ICopc3JjOworCXNyY19idWYgPSAoY29uc3QgdTggKilzcmM7CiAJZm9yIChpID0gMDsgaSA8IGJ5dGVzX3RvX3dyaXRlOyBpKyspIHsKIAkJLyogU2V0dXAgcHJvZ3JhbSBjb21tYW5kIHNlcXVlbmNlICovCiAJCXN3aXRjaCAoYXNkX2hhLT5od19wcm9mLmZsYXNoLm1ldGhvZCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuaCBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2RzLmgKaW5kZXggYmI5Nzk1YS4uYTA2ZGMwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZHMuaAorKysgYi9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3Nkcy5oCkBAIC0xMTAsOSArMTEwLDkgQEAKIH07CiAKIGludCBhc2RfdmVyaWZ5X2ZsYXNoX3NlZyhzdHJ1Y3QgYXNkX2hhX3N0cnVjdCAqYXNkX2hhLAotCQl2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3ZlcmlmeSk7CisJCWNvbnN0IHZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fdmVyaWZ5KTsKIGludCBhc2Rfd3JpdGVfZmxhc2hfc2VnKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEsCi0JCXZvaWQgKnNyYywgdTMyIGRlc3Rfb2Zmc2V0LCB1MzIgYnl0ZXNfdG9fd3JpdGUpOworCQljb25zdCB2b2lkICpzcmMsIHUzMiBkZXN0X29mZnNldCwgdTMyIGJ5dGVzX3RvX3dyaXRlKTsKIGludCBhc2RfY2hrX3dyaXRlX3N0YXR1cyhzdHJ1Y3QgYXNkX2hhX3N0cnVjdCAqYXNkX2hhLAogCQl1MzIgc2VjdG9yX2FkZHIsIHU4IGVyYXNlX2ZsYWcpOwogaW50IGFzZF9jaGVja19mbGFzaF90eXBlKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZXEuYyBiL2RyaXZlcnMvc2NzaS9haWM5NHh4L2FpYzk0eHhfc2VxLmMKaW5kZXggZjQyNzJhYy4uOGY5OGUzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FpYzk0eHgvYWljOTR4eF9zZXEuYworKysgYi9kcml2ZXJzL3Njc2kvYWljOTR4eC9haWM5NHh4X3NlcS5jCkBAIC00Niw3ICs0Niw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpcm13YXJlICpzZXF1ZW5jZXJfZnc7CiBzdGF0aWMgdTE2IGNzZXFfdmVjc1tDU0VRX05VTV9WRUNTXSwgbHNlcV92ZWNzW0xTRVFfTlVNX1ZFQ1NdLCBtb2RlMl90YXNrLAogCWNzZXFfaWRsZV9sb29wLCBsc2VxX2lkbGVfbG9vcDsKLXN0YXRpYyB1OCAqY3NlcV9jb2RlLCAqbHNlcV9jb2RlOworc3RhdGljIGNvbnN0IHU4ICpjc2VxX2NvZGUsICpsc2VxX2NvZGU7CiBzdGF0aWMgdTMyIGNzZXFfY29kZV9zaXplLCBsc2VxX2NvZGVfc2l6ZTsKIAogc3RhdGljIHUxNiBmaXJzdF9zY2Jfc2l0ZV9ubyA9IDB4RkZGRjsKQEAgLTEyMzUsNyArMTIzNSw4IEBACiBzdGF0aWMgaW50IGFzZF9yZXF1ZXN0X2Zpcm13YXJlKHN0cnVjdCBhc2RfaGFfc3RydWN0ICphc2RfaGEpCiB7CiAJaW50IGVyciwgaTsKLQlzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyIGhlYWRlciwgKmhkcl9wdHI7CisJc3RydWN0IHNlcXVlbmNlcl9maWxlX2hlYWRlciBoZWFkZXI7CisJY29uc3Qgc3RydWN0IHNlcXVlbmNlcl9maWxlX2hlYWRlciAqaGRyX3B0cjsKIAl1MzIgY3N1bSA9IDA7CiAJdTE2ICpwdHJfY3NlcV92ZWNzLCAqcHRyX2xzZXFfdmVjczsKIApAQCAtMTI0OSw3ICsxMjUwLDcgQEAKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCi0JaGRyX3B0ciA9IChzdHJ1Y3Qgc2VxdWVuY2VyX2ZpbGVfaGVhZGVyICopc2VxdWVuY2VyX2Z3LT5kYXRhOworCWhkcl9wdHIgPSAoY29uc3Qgc3RydWN0IHNlcXVlbmNlcl9maWxlX2hlYWRlciAqKXNlcXVlbmNlcl9mdy0+ZGF0YTsKIAogCWhlYWRlci5jc3VtID0gbGUzMl90b19jcHUoaGRyX3B0ci0+Y3N1bSk7CiAJaGVhZGVyLm1ham9yID0gbGUzMl90b19jcHUoaGRyX3B0ci0+bWFqb3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9LY29uZmlnIGIvZHJpdmVycy9zY3NpL2FybS9LY29uZmlnCmluZGV4IDcyMzYxNDMuLmE4NTg3ZjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vS2NvbmZpZworKysgYi9kcml2ZXJzL3Njc2kvYXJtL0tjb25maWcKQEAgLTMsNyArMyw3IEBACiAjCiBjb25maWcgU0NTSV9BQ09STlNDU0lfMwogCXRyaXN0YXRlICJBY29ybiBTQ1NJIGNhcmQgKGFrYTMwKSBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVJDSF9BQ09STiAmJiBTQ1NJICYmIEJST0tFTgorCWRlcGVuZHMgb24gQVJDSF9BQ09STiAmJiBTQ1NJCiAJc2VsZWN0IFNDU0lfU1BJX0FUVFJTCiAJaGVscAogCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBBY29ybiBTQ1NJIGNhcmQgKGFrYTMwKS4gSWYgeW91IGhhdmUgYW4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLWlvLlMgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS1pby5TCmluZGV4IDkzNDY3ZTYuLjVjZWJlMzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLWlvLlMKKysrIGIvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2ktaW8uUwpAQCAtMTAsMTcgKzEwLDEwIEBACiAjaW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogCi0jaWYgKElPX0JBU0UgPT0gKFBDSU9fQkFTRSAmIDB4ZmYwMDAwMDApKQotI2RlZmluZSBBRERSKG9mZixyZWcpCQkJCQkJXAotCQl0c3QJb2ZmLCAkMHg4MDAwMDAwMAkJCTtcCi0JCW1vdglyZWcsICRJT19CQVNFCQkJCTtcCi0JCW9ycmVxCXJlZywgcmVnLCAkKFBDSU9fQkFTRSAmIDB4MDBmZjAwMDApCi0jZWxzZQotI2RlZmluZSBBRERSKG9mZixyZWcpCQkJCQkJXAotCQl0c3QJb2ZmLCAkMHg4MDAwMDAwMAkJCTtcCi0JCW1vdm5lCXJlZywgJElPX0JBU0UJCQkJO1wKLQkJbW92ZXEJcmVnLCAkKFBDSU9fQkFTRSAmIDB4ZmYwMDAwMDApCQk7XAotCQlvcnJlcQlyZWcsIHJlZywgJChQQ0lPX0JBU0UgJiAweDAwZmYwMDAwKQorI2lmIGRlZmluZWQoX19BUENTXzMyX18pCisjZGVmaW5lIExPQURSRUdTKHQscixsLi4uKQlsZG0jI3QJciwgbAorI2VsaWYgZGVmaW5lZChfX0FQQ1NfMjZfXykKKyNkZWZpbmUgTE9BRFJFR1ModCxyLGwuLi4pCWxkbSMjdAlyLCBsIyNeCiAjZW5kaWYKIAogQCBQdXJwb3NlOiB0cmFuc2ZlciBhIGJsb2NrIG9mIGRhdGEgZnJvbSB0aGUgYWNvcm4gc2NzaSBjYXJkIHRvIG1lbW9yeQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYyBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmMKaW5kZXggOGU1M2YwMi4uOTE4Y2NmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuYworKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5jCkBAIC0xMjMsMTIgKzEyMyw2IEBACiAjZGVmaW5lIERCRyhjbWQseHh4Li4uKSB4eHgKICNlbmRpZgogCi0jaWZuZGVmIFNUUklOR0lGWQotI2RlZmluZSBTVFJJTkdJRlkoeCkgI3gKLSNlbmRpZgotI2RlZmluZSBTVFJ4KHgpIFNUUklOR0lGWSh4KQotI2RlZmluZSBOT19XUklURV9TVFIgU1RSeChOT19XUklURSkKLQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgpAQCAtMTQxLDkgKzEzNSwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmdpZnkuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgogCiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9lY2FyZC5oPgogCiAjaW5jbHVkZSAiLi4vc2NzaS5oIgpAQCAtMjAzLDQ0ICsxOTgsNDYgQEAKICAqIE1pc2NlbGxhbmVvdXMKICAqLwogCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNiaWNfYXJtX3dyaXRlKHVuc2lnbmVkIGludCBpb19wb3J0LCBpbnQgcmVnLCBpbnQgdmFsdWUpCisvKiBPZmZzZXRzIGZyb20gTUVNQyBiYXNlICovCisjZGVmaW5lIFNCSUNfUkVHSURYCTB4MjAwMAorI2RlZmluZSBTQklDX1JFR1ZBTAkweDIwMDQKKyNkZWZpbmUgRE1BQ19PRkZTRVQJMHgzMDAwCisKKy8qIE9mZnNldHMgZnJvbSBGQVNUIElPQyBiYXNlICovCisjZGVmaW5lIElOVF9SRUcJCTB4MjAwMAorI2RlZmluZSBQQUdFX1JFRwkweDMwMDAKKworc3RhdGljIGlubGluZSB2b2lkIHNiaWNfYXJtX3dyaXRlKEFTX0hvc3QgKmhvc3QsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKIHsKLSAgICBfX3Jhd193cml0ZWIocmVnLCBpb19wb3J0KTsKLSAgICBfX3Jhd193cml0ZWIodmFsdWUsIGlvX3BvcnQgKyA0KTsKKyAgICB3cml0ZWIocmVnLCBob3N0LT5iYXNlICsgU0JJQ19SRUdJRFgpOworICAgIHdyaXRlYih2YWx1ZSwgaG9zdC0+YmFzZSArIFNCSUNfUkVHVkFMKTsKIH0KIAotI2RlZmluZSBzYmljX2FybV93cml0ZW5leHQoaW8sdmFsKSBcCi0JX19yYXdfd3JpdGViKCh2YWwpLCAoaW8pICsgNCkKLQotc3RhdGljIGlubGluZQotaW50IHNiaWNfYXJtX3JlYWQodW5zaWduZWQgaW50IGlvX3BvcnQsIGludCByZWcpCitzdGF0aWMgaW5saW5lIGludCBzYmljX2FybV9yZWFkKEFTX0hvc3QgKmhvc3QsIHVuc2lnbmVkIGludCByZWcpCiB7CiAgICAgaWYocmVnID09IFNCSUNfQVNSKQotCSAgIHJldHVybiBfX3Jhd19yZWFkbChpb19wb3J0KSAmIDI1NTsKLSAgICBfX3Jhd193cml0ZWIocmVnLCBpb19wb3J0KTsKLSAgICByZXR1cm4gX19yYXdfcmVhZGwoaW9fcG9ydCArIDQpICYgMjU1OworCSAgIHJldHVybiByZWFkbChob3N0LT5iYXNlICsgU0JJQ19SRUdJRFgpICYgMjU1OworICAgIHdyaXRlYihyZWcsIGhvc3QtPmJhc2UgKyBTQklDX1JFR0lEWCk7CisgICAgcmV0dXJuIHJlYWRsKGhvc3QtPmJhc2UgKyBTQklDX1JFR1ZBTCkgJiAyNTU7CiB9CiAKLSNkZWZpbmUgc2JpY19hcm1fcmVhZG5leHQoaW8pIFwKLQlfX3Jhd19yZWFkYigoaW8pICsgNCkKKyNkZWZpbmUgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIHZhbCkJd3JpdGViKCh2YWwpLCAoaG9zdCktPmJhc2UgKyBTQklDX1JFR1ZBTCkKKyNkZWZpbmUgc2JpY19hcm1fcmVhZG5leHQoaG9zdCkgCXJlYWRiKChob3N0KS0+YmFzZSArIFNCSUNfUkVHVkFMKQogCiAjaWZkZWYgVVNFX0RNQUMKLSNkZWZpbmUgZG1hY19yZWFkKGlvX3BvcnQscmVnKSBcCi0JaW5iKChpb19wb3J0KSArIChyZWcpKQorI2RlZmluZSBkbWFjX3JlYWQoaG9zdCxyZWcpIFwKKwlyZWFkYigoaG9zdCktPmJhc2UgKyBETUFDX09GRlNFVCArICgocmVnKSA8PCAyKSkKIAotI2RlZmluZSBkbWFjX3dyaXRlKGlvX3BvcnQscmVnLHZhbHVlKSBcCi0JKHsgb3V0YigodmFsdWUpLCAoaW9fcG9ydCkgKyAocmVnKSk7IH0pCisjZGVmaW5lIGRtYWNfd3JpdGUoaG9zdCxyZWcsdmFsdWUpIFwKKwkoeyB3cml0ZWIoKHZhbHVlKSwgKGhvc3QpLT5iYXNlICsgRE1BQ19PRkZTRVQgKyAoKHJlZykgPDwgMikpOyB9KQogCi0jZGVmaW5lIGRtYWNfY2xlYXJpbnRyKGlvX3BvcnQpIFwKLQkoeyBvdXRiKDAsIChpb19wb3J0KSk7IH0pCisjZGVmaW5lIGRtYWNfY2xlYXJpbnRyKGhvc3QpIAl3cml0ZWIoMCwgKGhvc3QpLT5mYXN0ICsgSU5UX1JFRykKIAotc3RhdGljIGlubGluZQotdW5zaWduZWQgaW50IGRtYWNfYWRkcmVzcyh1bnNpZ25lZCBpbnQgaW9fcG9ydCkKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGRtYWNfYWRkcmVzcyhBU19Ib3N0ICpob3N0KQogewotICAgIHJldHVybiBkbWFjX3JlYWQoaW9fcG9ydCwgRE1BQ19UWEFEUkhJKSA8PCAxNiB8Ci0JICAgZG1hY19yZWFkKGlvX3BvcnQsIERNQUNfVFhBRFJNRCkgPDwgOCB8Ci0JICAgZG1hY19yZWFkKGlvX3BvcnQsIERNQUNfVFhBRFJMTyk7CisgICAgcmV0dXJuIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQURSSEkpIDw8IDE2IHwKKwkgICBkbWFjX3JlYWQoaG9zdCwgRE1BQ19UWEFEUk1EKSA8PCA4IHwKKwkgICBkbWFjX3JlYWQoaG9zdCwgRE1BQ19UWEFEUkxPKTsKIH0KIAogc3RhdGljCkBAIC0yNDgsMTUgKzI0NSwxNSBAQAogewogCXVuc2lnbmVkIGludCBtb2RlLCBhZGRyLCBsZW47CiAKLQltb2RlID0gZG1hY19yZWFkKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01PREVDT04pOwotCWFkZHIgPSBkbWFjX2FkZHJlc3MoaG9zdC0+ZG1hLmlvX3BvcnQpOwotCWxlbiAgPSBkbWFjX3JlYWQoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhDTlRISSkgPDwgOCB8Ci0JICAgICAgIGRtYWNfcmVhZChob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWENOVExPKTsKKwltb2RlID0gZG1hY19yZWFkKGhvc3QsIERNQUNfTU9ERUNPTik7CisJYWRkciA9IGRtYWNfYWRkcmVzcyhob3N0KTsKKwlsZW4gID0gZG1hY19yZWFkKGhvc3QsIERNQUNfVFhDTlRISSkgPDwgOCB8CisJICAgICAgIGRtYWNfcmVhZChob3N0LCBETUFDX1RYQ05UTE8pOwogCiAJcHJpbnRrKCJzY3NpJWQ6ICVzOiBETUFDICUwMnggQCUwNngrJTA0eCBtc2sgJTAyeCwgIiwKIAkJaG9zdC0+aG9zdC0+aG9zdF9ubywgd2hlcmUsCiAJCW1vZGUsIGFkZHIsIChsZW4gKyAxKSAmIDB4ZmZmZiwKLQkJZG1hY19yZWFkKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01BU0tSRUcpKTsKKwkJZG1hY19yZWFkKGhvc3QsIERNQUNfTUFTS1JFRykpOwogCiAJcHJpbnRrKCJETUEgQCUwNngsICIsIGhvc3QtPmRtYS5zdGFydF9hZGRyKTsKIAlwcmludGsoIkJIIEAlcCArJTA0eCwgIiwgaG9zdC0+c2NzaS5TQ3AucHRyLApAQCAtMjcyLDkgKzI2OSw5IEBACiB7CiAgICAgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAKLSAgICBsZW5ndGggPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19UUkFOU0NOVEgpIDw8IDE2OwotICAgIGxlbmd0aCB8PSBzYmljX2FybV9yZWFkbmV4dChob3N0LT5zY3NpLmlvX3BvcnQpIDw8IDg7Ci0gICAgbGVuZ3RoIHw9IHNiaWNfYXJtX3JlYWRuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCk7CisgICAgbGVuZ3RoID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1RSQU5TQ05USCkgPDwgMTY7CisgICAgbGVuZ3RoIHw9IHNiaWNfYXJtX3JlYWRuZXh0KGhvc3QpIDw8IDg7CisgICAgbGVuZ3RoIHw9IHNiaWNfYXJtX3JlYWRuZXh0KGhvc3QpOwogCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0KQEAgLTI4NSw3ICsyODIsNyBAQAogCWludCBhc3I7CiAKIAlkbyB7Ci0JCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0FTUik7CisJCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOwogCiAJCWlmICgoYXNyICYgc3RhdF9tYXNrKSA9PSBzdGF0KQogCQkJcmV0dXJuIDA7CkBAIC0zMDQsNyArMzAxLDcgQEAKICAgICBpZiAoYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfQ0lQLCAwLCAxMDAwLCAiaXNzdWluZyBjb21tYW5kIikpCiAJcmV0dXJuIC0xOwogCi0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0NNTkQsIGNvbW1hbmQpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfQ01ORCwgY29tbWFuZCk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTMzMSwyMCArMzI4LDIwIEBACiAKICAgICAvKiBhc3NlcnQgcmVzZXQgbGluZSAqLwogICAgIGhvc3QtPmNhcmQucGFnZV9yZWcgPSAweDgwOwotICAgIG91dGIoaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKyAgICB3cml0ZWIoaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIAogICAgIC8qIHdhaXQgMyBjcy4gIFNDU0kgc3RhbmRhcmQgc2F5cyAyNW1zLiAqLwogICAgIGFjb3Juc2NzaV9jc2RlbGF5KDMpOwogCiAgICAgaG9zdC0+Y2FyZC5wYWdlX3JlZyA9IDA7Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgLyoKICAgICAgKiBTaG91bGQgZ2V0IGEgcmVzZXQgZnJvbSB0aGUgY2FyZAogICAgICAqLwogICAgIHRpbWVvdXQgPSAxMDAwOwogICAgIGRvIHsKLQlpZiAoaW5iKGhvc3QtPmNhcmQuaW9faW50cikgJiA4KQorCWlmIChyZWFkYihob3N0LT5mYXN0ICsgSU5UX1JFRykgJiA4KQogCSAgICBicmVhazsKIAl1ZGVsYXkoMSk7CiAgICAgfSB3aGlsZSAoLS10aW1lb3V0KTsKQEAgLTM1MywxOSArMzUwLDE5IEBACiAJcHJpbnRrKCJzY3NpJWQ6IHRpbWVvdXQgd2hpbGUgcmVzZXR0aW5nIGNhcmRcbiIsCiAJCWhvc3QtPmhvc3QtPmhvc3Rfbm8pOwogCi0gICAgc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKLSAgICBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpOworICAgIHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19TU1IpOwogCiAgICAgLyogc2V0dXAgc2JpYyAtIFdEMzNDOTNBICovCi0gICAgc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ01ORCwgQ01ORF9SRVNFVCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19PV05JRCwgT1dOSURfRUFGIHwgaG9zdC0+aG9zdC0+dGhpc19pZCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKIAogICAgIC8qCiAgICAgICogQ29tbWFuZCBzaG91bGQgY2F1c2UgYSByZXNldCBpbnRlcnJ1cHQKICAgICAgKi8KICAgICB0aW1lb3V0ID0gMTAwMDsKICAgICBkbyB7Ci0JaWYgKGluYihob3N0LT5jYXJkLmlvX2ludHIpICYgOCkKKwlpZiAocmVhZGIoaG9zdC0+ZmFzdCArIElOVF9SRUcpICYgOCkKIAkgICAgYnJlYWs7CiAJdWRlbGF5KDEpOwogICAgIH0gd2hpbGUgKC0tdGltZW91dCk7CkBAIC0zNzQsMjYgKzM3MSwyNiBAQAogCXByaW50aygic2NzaSVkOiB0aW1lb3V0IHdoaWxlIHJlc2V0dGluZyBjYXJkXG4iLAogCQlob3N0LT5ob3N0LT5ob3N0X25vKTsKIAotICAgIHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0FTUik7Ci0gICAgaWYgKHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1NTUikgIT0gMHgwMSkKKyAgICBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKKyAgICBpZiAoc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUikgIT0gMHgwMSkKIAlwcmludGsoS0VSTl9DUklUICJzY3NpJWQ6IFdEMzNDOTNBIGRpZG4ndCBnaXZlIGVuaGFuY2VkIHJlc2V0IGludGVycnVwdFxuIiwKIAkJaG9zdC0+aG9zdC0+aG9zdF9ubyk7CiAKLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ1RSTCwgSU5JVF9TQklDRE1BIHwgQ1RSTF9JREkpOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBTWU5DSFRSQU5TRkVSXzJEQkEpOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfQ1RSTCwgSU5JVF9TQklDRE1BIHwgQ1RSTF9JREkpOworICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfVElNRU9VVCwgVElNRU9VVF9USU1FKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOwogCiAgICAgaG9zdC0+Y2FyZC5wYWdlX3JlZyA9IDB4NDA7Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgLyogc2V0dXAgZG1hYyAtIHVQQzcxMDcxICovCi0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19JTklULCAwKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfSU5JVCwgMCk7CiAjaWZkZWYgVVNFX0RNQUMKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0lOSVQsIElOSVRfOEJJVCk7Ci0gICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19DSEFOTkVMLCBDSEFOTkVMXzApOwotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfREVWQ09OMCwgSU5JVF9ERVZDT04wKTsKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX0RFVkNPTjEsIElOSVRfREVWQ09OMSk7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX0lOSVQsIElOSVRfOEJJVCk7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX0NIQU5ORUwsIENIQU5ORUxfMCk7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX0RFVkNPTjAsIElOSVRfREVWQ09OMCk7CisgICAgZG1hY193cml0ZShob3N0LCBETUFDX0RFVkNPTjEsIElOSVRfREVWQ09OMSk7CiAjZW5kaWYKIAogICAgIGhvc3QtPlNDcG50ID0gTlVMTDsKQEAgLTc0MSw5ICs3MzgsOSBAQAogICAgICAqIElmIHdlIGhhdmUgYW4gaW50ZXJydXB0IHBlbmRpbmcsIHRoZW4gd2UgbWF5IGhhdmUgYmVlbiByZXNlbGVjdGVkLgogICAgICAqIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byB3cml0ZSB0byB0aGUgcmVnaXN0ZXJzCiAgICAgICovCi0gICAgaWYgKCEoc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKSAmIChBU1JfSU5UfEFTUl9CU1l8QVNSX0NJUCkpKSB7Ci0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RFU1RJRCwgU0NwbnQtPmRldmljZS0+aWQpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX1NFTFdJVEhBVE4pOworICAgIGlmICghKHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19BU1IpICYgKEFTUl9JTlR8QVNSX0JTWXxBU1JfQ0lQKSkpIHsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0RFU1RJRCwgU0NwbnQtPmRldmljZS0+aWQpOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfQ01ORCwgQ01ORF9TRUxXSVRIQVROKTsKICAgICB9CiAKICAgICAvKgpAQCAtODA3LDcgKzgwNCw3IEBACiAJc3RydWN0IHNjc2lfY21uZCAqU0NwbnQgPSAqU0NwbnRwOwogCiAgICAgLyogY2xlYW4gdXAgKi8KLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU09VUkNFSUQsIFNPVVJDRUlEX0VSIHwgU09VUkNFSURfRFNQKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NPVVJDRUlELCBTT1VSQ0VJRF9FUiB8IFNPVVJDRUlEX0RTUCk7CiAKICAgICBob3N0LT5zdGF0cy5maW5zICs9IDE7CiAKQEAgLTkxOCwxMyArOTE1LDEzIEBACiB2b2lkIGFjb3Juc2NzaV9kYXRhX3JlYWQoQVNfSG9zdCAqaG9zdCwgY2hhciAqcHRyLAogCQkJCSB1bnNpZ25lZCBpbnQgc3RhcnRfYWRkciwgdW5zaWduZWQgaW50IGxlbmd0aCkKIHsKLSAgICBleHRlcm4gdm9pZCBfX2Fjb3Juc2NzaV9pbihpbnQgcG9ydCwgY2hhciAqYnVmLCBpbnQgbGVuKTsKKyAgICBleHRlcm4gdm9pZCBfX2Fjb3Juc2NzaV9pbih2b2lkIF9faW9tZW0gKiwgY2hhciAqYnVmLCBpbnQgbGVuKTsKICAgICB1bnNpZ25lZCBpbnQgcGFnZSwgb2Zmc2V0LCBsZW4gPSBsZW5ndGg7CiAKICAgICBwYWdlID0gKHN0YXJ0X2FkZHIgPj4gMTIpOwogICAgIG9mZnNldCA9IHN0YXJ0X2FkZHIgJiAoKDEgPDwgMTIpIC0gMSk7CiAKLSAgICBvdXRiKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIAogICAgIHdoaWxlIChsZW4gPiAwKSB7CiAJdW5zaWduZWQgaW50IHRoaXNfbGVuOwpAQCAtOTM0LDcgKzkzMSw3IEBACiAJZWxzZQogCSAgICB0aGlzX2xlbiA9IGxlbjsKIAotCV9fYWNvcm5zY3NpX2luKGhvc3QtPmNhcmQuaW9fcmFtICsgKG9mZnNldCA8PCAxKSwgcHRyLCB0aGlzX2xlbik7CisJX19hY29ybnNjc2lfaW4oaG9zdC0+YmFzZSArIChvZmZzZXQgPDwgMSksIHB0ciwgdGhpc19sZW4pOwogCiAJb2Zmc2V0ICs9IHRoaXNfbGVuOwogCXB0ciArPSB0aGlzX2xlbjsKQEAgLTk0MywxMCArOTQwLDEwIEBACiAJaWYgKG9mZnNldCA9PSAoMSA8PCAxMikpIHsKIAkgICAgb2Zmc2V0ID0gMDsKIAkgICAgcGFnZSArKzsKLQkgICAgb3V0YigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKwkgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCX0KICAgICB9Ci0gICAgb3V0Yihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5jYXJkLmlvX3BhZ2UpOworICAgIHdyaXRlYihob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogfQogCiAvKgpAQCAtOTYzLDEzICs5NjAsMTMgQEAKIHZvaWQgYWNvcm5zY3NpX2RhdGFfd3JpdGUoQVNfSG9zdCAqaG9zdCwgY2hhciAqcHRyLAogCQkJCSB1bnNpZ25lZCBpbnQgc3RhcnRfYWRkciwgdW5zaWduZWQgaW50IGxlbmd0aCkKIHsKLSAgICBleHRlcm4gdm9pZCBfX2Fjb3Juc2NzaV9vdXQoaW50IHBvcnQsIGNoYXIgKmJ1ZiwgaW50IGxlbik7CisgICAgZXh0ZXJuIHZvaWQgX19hY29ybnNjc2lfb3V0KHZvaWQgX19pb21lbSAqLCBjaGFyICpidWYsIGludCBsZW4pOwogICAgIHVuc2lnbmVkIGludCBwYWdlLCBvZmZzZXQsIGxlbiA9IGxlbmd0aDsKIAogICAgIHBhZ2UgPSAoc3RhcnRfYWRkciA+PiAxMik7CiAgICAgb2Zmc2V0ID0gc3RhcnRfYWRkciAmICgoMSA8PCAxMikgLSAxKTsKIAotICAgIG91dGIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisgICAgd3JpdGViKChwYWdlICYgMHgzZikgfCBob3N0LT5jYXJkLnBhZ2VfcmVnLCBob3N0LT5mYXN0ICsgUEFHRV9SRUcpOwogCiAgICAgd2hpbGUgKGxlbiA+IDApIHsKIAl1bnNpZ25lZCBpbnQgdGhpc19sZW47CkBAIC05NzksNyArOTc2LDcgQEAKIAllbHNlCiAJICAgIHRoaXNfbGVuID0gbGVuOwogCi0JX19hY29ybnNjc2lfb3V0KGhvc3QtPmNhcmQuaW9fcmFtICsgKG9mZnNldCA8PCAxKSwgcHRyLCB0aGlzX2xlbik7CisJX19hY29ybnNjc2lfb3V0KGhvc3QtPmJhc2UgKyAob2Zmc2V0IDw8IDEpLCBwdHIsIHRoaXNfbGVuKTsKIAogCW9mZnNldCArPSB0aGlzX2xlbjsKIAlwdHIgKz0gdGhpc19sZW47CkBAIC05ODgsMTAgKzk4NSwxMCBAQAogCWlmIChvZmZzZXQgPT0gKDEgPDwgMTIpKSB7CiAJICAgIG9mZnNldCA9IDA7CiAJICAgIHBhZ2UgKys7Ci0JICAgIG91dGIoKHBhZ2UgJiAweDNmKSB8IGhvc3QtPmNhcmQucGFnZV9yZWcsIGhvc3QtPmNhcmQuaW9fcGFnZSk7CisJICAgIHdyaXRlYigocGFnZSAmIDB4M2YpIHwgaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIAl9CiAgICAgfQotICAgIG91dGIoaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+Y2FyZC5pb19wYWdlKTsKKyAgICB3cml0ZWIoaG9zdC0+Y2FyZC5wYWdlX3JlZywgaG9zdC0+ZmFzdCArIFBBR0VfUkVHKTsKIH0KIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTEwMDgsOCArMTAwNSw4IEBACiBzdGF0aWMgaW5saW5lCiB2b2lkIGFjb3Juc2NzaV9kbWFfc3RvcChBU19Ib3N0ICpob3N0KQogewotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7Ci0gICAgZG1hY19jbGVhcmludHIoaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIpOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKKyAgICBkbWFjX2NsZWFyaW50cihob3N0KTsKIAogI2lmIChERUJVRyAmIERFQlVHX0RNQSkKICAgICBEQkcoaG9zdC0+U0NwbnQsIGFjb3Juc2NzaV9kdW1wZG1hKGhvc3QsICJzdG9wIikpOwpAQCAtMTAzMSw3ICsxMDI4LDcgQEAKIAogICAgIGhvc3QtPmRtYS5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CiAKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKIAogICAgIGlmIChkaXJlY3Rpb24gPT0gRE1BX09VVCkgewogI2lmIChERUJVRyAmIERFQlVHX05PX1dSSVRFKQpAQCAtMTA2MiwxMyArMTA1OSwxMyBAQAogCQkJCWxlbmd0aCk7CiAKIAlsZW5ndGggLT0gMTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05UTE8sIGxlbmd0aCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWENOVEhJLCBsZW5ndGggPj4gOCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkxPLCBhZGRyZXNzKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTUQsIGFkZHJlc3MgPj4gOCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkhJLCAwKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01PREVDT04sIG1vZGUpOwotCWRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PRkYpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVExPLCBsZW5ndGgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWENOVEhJLCBsZW5ndGggPj4gOCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTE8sIGFkZHJlc3MpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUk1ELCBhZGRyZXNzID4+IDgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCAwKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfTU9ERUNPTiwgbW9kZSk7CisJZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKIAogI2lmIChERUJVRyAmIERFQlVHX0RNQSkKIAlEQkcoaG9zdC0+U0NwbnQsIGFjb3Juc2NzaV9kdW1wZG1hKGhvc3QsICJzdHJ0IikpOwpAQCAtMTA4OCw4ICsxMDg1LDggQEAKIHN0YXRpYwogdm9pZCBhY29ybnNjc2lfZG1hX2NsZWFudXAoQVNfSG9zdCAqaG9zdCkKIHsKLSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01BU0tSRUcsIE1BU0tfT04pOwotICAgIGRtYWNfY2xlYXJpbnRyKGhvc3QtPmRtYS5pb19pbnRyX2NsZWFyKTsKKyAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfTUFTS1JFRywgTUFTS19PTik7CisgICAgZG1hY19jbGVhcmludHIoaG9zdCk7CiAKICAgICAvKgogICAgICAqIENoZWNrIGZvciBhIHBlbmRpbmcgdHJhbnNmZXIKQEAgLTExMTYsNyArMTExMyw3IEBACiAJLyoKIAkgKiBDYWxjdWxhdGUgbnVtYmVyIG9mIGJ5dGVzIHRyYW5zZmVycmVkIGZyb20gRE1BLgogCSAqLwotCXRyYW5zZmVycmVkID0gZG1hY19hZGRyZXNzKGhvc3QtPmRtYS5pb19wb3J0KSAtIGhvc3QtPmRtYS5zdGFydF9hZGRyOworCXRyYW5zZmVycmVkID0gZG1hY19hZGRyZXNzKGhvc3QpIC0gaG9zdC0+ZG1hLnN0YXJ0X2FkZHI7CiAJaG9zdC0+ZG1hLnRyYW5zZmVycmVkICs9IHRyYW5zZmVycmVkOwogCiAJaWYgKGhvc3QtPmRtYS5kaXJlY3Rpb24gPT0gRE1BX0lOKQpAQCAtMTE1MiwxMyArMTE0OSwxMyBAQAogICAgIERCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgImludGkiKSk7CiAjZW5kaWYKIAotICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfTUFTS1JFRywgTUFTS19PTik7Ci0gICAgZG1hY19jbGVhcmludHIoaG9zdC0+ZG1hLmlvX2ludHJfY2xlYXIpOworICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09OKTsKKyAgICBkbWFjX2NsZWFyaW50cihob3N0KTsKIAogICAgIC8qCiAgICAgICogQ2FsY3VsYXRlIGFtb3VudCB0cmFuc2ZlcnJlZCB2aWEgRE1BCiAgICAgICovCi0gICAgdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdC0+ZG1hLmlvX3BvcnQpIC0gaG9zdC0+ZG1hLnN0YXJ0X2FkZHI7CisgICAgdHJhbnNmZXJyZWQgPSBkbWFjX2FkZHJlc3MoaG9zdCkgLSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKICAgICBob3N0LT5kbWEudHJhbnNmZXJyZWQgKz0gdHJhbnNmZXJyZWQ7CiAKICAgICAvKgpAQCAtMTE5MCwxMiArMTE4NywxMiBAQAogCQkJCWxlbmd0aCk7CiAKIAlsZW5ndGggLT0gMTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05UTE8sIGxlbmd0aCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWENOVEhJLCBsZW5ndGggPj4gOCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkxPLCBhZGRyZXNzKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTUQsIGFkZHJlc3MgPj4gOCk7Ci0JZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkhJLCAwKTsKLQlkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhDTlRMTywgbGVuZ3RoKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhDTlRISSwgbGVuZ3RoID4+IDgpOworCWRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkxPLCBhZGRyZXNzKTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJNRCwgYWRkcmVzcyA+PiA4KTsKKwlkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJISSwgMCk7CisJZG1hY193cml0ZShob3N0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKIAogI2lmIChERUJVRyAmIERFQlVHX0RNQSkKIAlEQkcoaG9zdC0+U0NwbnQsIGFjb3Juc2NzaV9kdW1wZG1hKGhvc3QsICJpbnRvIikpOwpAQCAtMTIwOSwxNSArMTIwNiwxNSBAQAogCSAqIGF0dGVudGlvbiBjb25kaXRpb24uICBXZSBjb250aW51ZSBnaXZpbmcgb25lIGJ5dGUgdW50aWwKIAkgKiB0aGUgZGV2aWNlIHJlY29nbmlzZXMgdGhlIGF0dGVudGlvbi4KIAkgKi8KLQlpZiAoZG1hY19yZWFkKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1NUQVRVUykgJiBTVEFUVVNfUlEwKSB7CisJaWYgKGRtYWNfcmVhZChob3N0LCBETUFDX1NUQVRVUykgJiBTVEFUVVNfUlEwKSB7CiAJICAgIGFjb3Juc2NzaV9hYm9ydGNtZChob3N0LCBob3N0LT5TQ3BudC0+dGFnKTsKIAotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05UTE8sIDApOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQ05USEksIDApOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTE8sIDApOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSTUQsIDApOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX1RYQURSSEksIDApOwotCSAgICBkbWFjX3dyaXRlKGhvc3QtPmRtYS5pb19wb3J0LCBETUFDX01BU0tSRUcsIE1BU0tfT0ZGKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQ05UTE8sIDApOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhDTlRISSwgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkxPLCAwKTsKKwkgICAgZG1hY193cml0ZShob3N0LCBETUFDX1RYQURSTUQsIDApOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJISSwgMCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19NQVNLUkVHLCBNQVNLX09GRik7CiAJfQogI2VuZGlmCiAgICAgfQpAQCAtMTI3MSw5ICsxMjY4LDkgQEAKIAkgICAgaG9zdC0+ZG1hLnhmZXJfc2V0dXAgPSAwOwogCWVsc2UgewogCSAgICB0cmFuc2ZlcnJlZCArPSBob3N0LT5kbWEuc3RhcnRfYWRkcjsKLQkgICAgZG1hY193cml0ZShob3N0LT5kbWEuaW9fcG9ydCwgRE1BQ19UWEFEUkxPLCB0cmFuc2ZlcnJlZCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJNRCwgdHJhbnNmZXJyZWQgPj4gOCk7Ci0JICAgIGRtYWNfd3JpdGUoaG9zdC0+ZG1hLmlvX3BvcnQsIERNQUNfVFhBRFJISSwgdHJhbnNmZXJyZWQgPj4gMTYpOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJMTywgdHJhbnNmZXJyZWQpOworCSAgICBkbWFjX3dyaXRlKGhvc3QsIERNQUNfVFhBRFJNRCwgdHJhbnNmZXJyZWQgPj4gOCk7CisJICAgIGRtYWNfd3JpdGUoaG9zdCwgRE1BQ19UWEFEUkhJLCB0cmFuc2ZlcnJlZCA+PiAxNik7CiAjaWYgKERFQlVHICYgKERFQlVHX0RNQXxERUJVR19XUklURSkpCiAJICAgIERCRyhob3N0LT5TQ3BudCwgYWNvcm5zY3NpX2R1bXBkbWEoaG9zdCwgImFkam8iKSk7CiAjZW5kaWYKQEAgLTEyOTIsMTIgKzEyODksMTIgQEAKIAlpbnQgbXlfcHRyID0gKnB0cjsKIAogCXdoaWxlIChteV9wdHIgPCBsZW4pIHsKLQkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKKwkJYXNyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CiAKIAkJaWYgKGFzciAmIEFTUl9EQlIpIHsKIAkJCXRpbWVvdXQgPSBtYXhfdGltZW91dDsKIAotCQkJc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEsIGJ5dGVzW215X3B0cisrXSk7CisJCQlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0RBVEEsIGJ5dGVzW215X3B0cisrXSk7CiAJCX0gZWxzZSBpZiAoYXNyICYgQVNSX0lOVCkKIAkJCWJyZWFrOwogCQllbHNlIGlmICgtLXRpbWVvdXQgPT0gMCkKQEAgLTEzMjAsOSArMTMxNyw5IEBACiB7CiAJc3RydWN0IHNjc2lfY21uZCAqU0NwbnQgPSBob3N0LT5TQ3BudDsKIAotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19UUkFOU0NOVEgsIDApOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIDApOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIFNDcG50LT5jbWRfbGVuIC0gaG9zdC0+c2NzaS5TQ3Auc2VudF9jb21tYW5kKTsKKyAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1RSQU5TQ05USCwgMCk7CisgICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIDApOworICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LCBTQ3BudC0+Y21kX2xlbiAtIGhvc3QtPnNjc2kuU0NwLnNlbnRfY29tbWFuZCk7CiAKICAgICBhY29ybnNjc2lfc2JpY19pc3N1ZWNtZChob3N0LCBDTU5EX1hGRVJJTkZPKTsKIApAQCAtMTM1MSw3ICsxMzQ4LDcgQEAKIAogCWFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0RCUiwgQVNSX0RCUiwgMTAwMCwgInNlbmRpbmcgbWVzc2FnZSAxIik7CiAKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfREFUQSwgTk9QKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0RBVEEsIE5PUCk7CiAKIAlob3N0LT5zY3NpLmxhc3RfbWVzc2FnZSA9IE5PUDsKICNpZiAoREVCVUcgJiBERUJVR19NRVNTQUdFUykKQEAgLTEzNjUsNyArMTM2Miw3IEBACiAKIAlhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9EQlIsIEFTUl9EQlIsIDEwMDAsICJzZW5kaW5nIG1lc3NhZ2UgMiIpOwogCi0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEsIG1zZy0+bXNnWzBdKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX0RBVEEsIG1zZy0+bXNnWzBdKTsKIAogCWhvc3QtPnNjc2kubGFzdF9tZXNzYWdlID0gbXNnLT5tc2dbMF07CiAjaWYgKERFQlVHICYgREVCVUdfTUVTU0FHRVMpCkBAIC0xMzgyLDkgKzEzNzksOSBAQAogCSAqICBpbml0aWF0b3IuICBUaGlzIHByb3ZpZGVzIGFuIGludGVybG9jayBzbyB0aGF0IHRoZQogCSAqICBpbml0aWF0b3IgY2FuIGRldGVybWluZSB3aGljaCBtZXNzYWdlIGJ5dGUgaXMgcmVqZWN0ZWQuCiAJICovCi0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX1RSQU5TQ05USCwgMCk7Ci0Jc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgMCk7Ci0Jc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QtPnNjc2kuaW9fcG9ydCwgbWVzc2FnZV9sZW5ndGgpOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfVFJBTlNDTlRILCAwKTsKKwlzYmljX2FybV93cml0ZW5leHQoaG9zdCwgMCk7CisJc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIG1lc3NhZ2VfbGVuZ3RoKTsKIAlhY29ybnNjc2lfc2JpY19pc3N1ZWNtZChob3N0LCBDTU5EX1hGRVJJTkZPKTsKIAogCW1zZ25yID0gMDsKQEAgLTE0MjEsNyArMTQxOCw3IEBACiB7CiAgICAgYWNvcm5zY3NpX3NiaWNfaXNzdWVjbWQoaG9zdCwgQ01ORF9YRkVSSU5GT3xDTU5EX1NCVCk7CiAgICAgYWNvcm5zY3NpX3NiaWNfd2FpdChob3N0LCBBU1JfREJSLCBBU1JfREJSLCAxMDAwLCAicmVhZGluZyBzdGF0dXMgYnl0ZSIpOwotICAgIGhvc3QtPnNjc2kuU0NwLlN0YXR1cyA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0RBVEEpOworICAgIGhvc3QtPnNjc2kuU0NwLlN0YXR1cyA9IHNiaWNfYXJtX3JlYWQoaG9zdCwgU0JJQ19EQVRBKTsKIH0KIAogLyoKQEAgLTE0MzgsMTIgKzE0MzUsMTIgQEAKIAogICAgIGFjb3Juc2NzaV9zYmljX3dhaXQoaG9zdCwgQVNSX0RCUiwgQVNSX0RCUiwgMTAwMCwgImZvciBtZXNzYWdlIGJ5dGUiKTsKIAotICAgIG1lc3NhZ2UgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19EQVRBKTsKKyAgICBtZXNzYWdlID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0RBVEEpOwogCiAgICAgLyogd2FpdCBmb3IgTVNHSU4tWEZFUi1QQVVTRUQgKi8KICAgICBhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9JTlQsIEFTUl9JTlQsIDEwMDAsICJmb3IgaW50ZXJydXB0IGFmdGVyIG1lc3NhZ2UgYnl0ZSIpOwogCi0gICAgc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKTsKKyAgICBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAogICAgIHJldHVybiBtZXNzYWdlOwogfQpAQCAtMTQ4MCw3ICsxNDc3LDcgQEAKIAogCSAgICAvKiB3YWl0IGZvciBuZXh0IG1zZy1pbiAqLwogCSAgICBhY29ybnNjc2lfc2JpY193YWl0KGhvc3QsIEFTUl9JTlQsIEFTUl9JTlQsIDEwMDAsICJmb3IgaW50ZXJydXB0IGFmdGVyIG5lZ2F0ZSBhY2siKTsKLQkgICAgc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKTsKKwkgICAgc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUik7CiAJfQogICAgIH0gd2hpbGUgKG1zZ2lkeCA8IG1zZ2xlbik7CiAKQEAgLTE2MDIsNyArMTU5OSw3IEBACiAJCSAgICBob3N0LT5ob3N0LT5ob3N0X25vLCBhY29ybnNjc2lfdGFyZ2V0KGhvc3QpKTsKIAkgICAgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIgPSBTWU5DSFRSQU5TRkVSXzJEQkE7CiAJICAgIGhvc3QtPmRldmljZVtob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZF0uc3luY19zdGF0ZSA9IFNZTkNfQVNZTkNIUk9OT1VTOwotCSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOworCSAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIGhvc3QtPmRldmljZVtob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZF0uc3luY194ZmVyKTsKIAkgICAgYnJlYWs7CiAKIAlkZWZhdWx0OgpAQCAtMTY1Miw3ICsxNjQ5LDcgQEAKIAkJaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIgPQogCQkJY2FsY19zeW5jX3hmZXIocGVyaW9kICogNCwgbGVuZ3RoKTsKIAkgICAgfQotCSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOworCSAgICBzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIGhvc3QtPmRldmljZVtob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZF0uc3luY194ZmVyKTsKIAkgICAgYnJlYWs7CiAjZWxzZQogCSAgICAvKiBXZSBkbyBub3QgYWNjZXB0IHN5bmNocm9ub3VzIHRyYW5zZmVycy4gIFJlc3BvbmQgd2l0aCBhCkBAIC0xNzkyLDEwICsxNzg5LDEwIEBACiAKICAgICByZXNpZHVhbCA9IHNjc2lfYnVmZmxlbihob3N0LT5TQ3BudCkgLSBob3N0LT5zY3NpLlNDcC5zY3NpX3hmZXJyZWQ7CiAKLSAgICBzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1lOQ0hUUkFOU0ZFUiwgaG9zdC0+ZGV2aWNlW2hvc3QtPlNDcG50LT5kZXZpY2UtPmlkXS5zeW5jX3hmZXIpOwotICAgIHNiaWNfYXJtX3dyaXRlbmV4dChob3N0LT5zY3NpLmlvX3BvcnQsIHJlc2lkdWFsID4+IDE2KTsKLSAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCByZXNpZHVhbCA+PiA4KTsKLSAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdC0+c2NzaS5pb19wb3J0LCByZXNpZHVhbCk7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBob3N0LT5kZXZpY2VbaG9zdC0+U0NwbnQtPmRldmljZS0+aWRdLnN5bmNfeGZlcik7CisgICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIHJlc2lkdWFsID4+IDE2KTsKKyAgICBzYmljX2FybV93cml0ZW5leHQoaG9zdCwgcmVzaWR1YWwgPj4gOCk7CisgICAgc2JpY19hcm1fd3JpdGVuZXh0KGhvc3QsIHJlc2lkdWFsKTsKICAgICBhY29ybnNjc2lfc2JpY19pc3N1ZWNtZChob3N0LCBDTU5EX1hGRVJJTkZPKTsKICAgICByZXR1cm4gMTsKIH0KQEAgLTE4MTYsNyArMTgxMyw3IEBACiB7CiAgICAgdW5zaWduZWQgaW50IHRhcmdldCwgbHVuLCBvayA9IDA7CiAKLSAgICB0YXJnZXQgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TT1VSQ0VJRCk7CisgICAgdGFyZ2V0ID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NPVVJDRUlEKTsKIAogICAgIGlmICghKHRhcmdldCAmIDgpKQogCXByaW50ayhLRVJOX0VSUiAic2NzaSVkOiBpbnZhbGlkIHNvdXJjZSBpZCBhZnRlciByZXNlbGVjdGlvbiAiCkBAIC0xODMyLDcgKzE4MjksNyBAQAogCWhvc3QtPlNDcG50ID0gTlVMTDsKICAgICB9CiAKLSAgICBsdW4gPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19EQVRBKSAmIDc7CisgICAgbHVuID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0RBVEEpICYgNzsKIAogICAgIGhvc3QtPnNjc2kucmVjb25uZWN0ZWQudGFyZ2V0ID0gdGFyZ2V0OwogICAgIGhvc3QtPnNjc2kucmVjb25uZWN0ZWQubHVuID0gbHVuOwpAQCAtMTk1Miw3ICsxOTQ5LDcgQEAKIHZvaWQgYWNvcm5zY3NpX2Fib3J0Y21kKEFTX0hvc3QgKmhvc3QsIHVuc2lnbmVkIGNoYXIgdGFnKQogewogICAgIGhvc3QtPnNjc2kucGhhc2UgPSBQSEFTRV9BQk9SVEVEOwotICAgIHNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19DTU5ELCBDTU5EX0FTU0VSVEFUTik7CisgICAgc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX0FTU0VSVEFUTik7CiAKICAgICBtc2dxdWV1ZV9mbHVzaCgmaG9zdC0+c2NzaS5tc2dzKTsKICNpZmRlZiBDT05GSUdfU0NTSV9BQ09STlNDU0lfVEFHR0VEX1FVRVVFCkBAIC0xOTc5LDExICsxOTc2LDExIEBACiB7CiAgICAgdW5zaWduZWQgaW50IGFzciwgc3NyOwogCi0gICAgYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKKyAgICBhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKICAgICBpZiAoIShhc3IgJiBBU1JfSU5UKSkKIAlyZXR1cm4gSU5UUl9JRExFOwogCi0gICAgc3NyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKTsKKyAgICBzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAogI2lmIChERUJVRyAmIERFQlVHX1BIQVNFUykKICAgICBwcmludF9zYmljX3N0YXR1cyhhc3IsIHNzciwgaG9zdC0+c2NzaS5waGFzZSk7CkBAIC0xOTk5LDE1ICsxOTk2LDE1IEBACiAJcHJpbnRrKEtFUk5fRVJSICJzY3NpJWQ6IHJlc2V0IGluIHN0YW5kYXJkIG1vZGUgYnV0IHdhbnRlZCBhZHZhbmNlZCBtb2RlLlxuIiwKIAkJaG9zdC0+aG9zdC0+aG9zdF9ubyk7CiAJLyogc2V0dXAgc2JpYyAtIFdEMzNDOTNBICovCi0Jc2JpY19hcm1fd3JpdGUoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX09XTklELCBPV05JRF9FQUYgfCBob3N0LT5ob3N0LT50aGlzX2lkKTsKLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ01ORCwgQ01ORF9SRVNFVCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19PV05JRCwgT1dOSURfRUFGIHwgaG9zdC0+aG9zdC0+dGhpc19pZCk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19DTU5ELCBDTU5EX1JFU0VUKTsKIAlyZXR1cm4gSU5UUl9JRExFOwogCiAgICAgY2FzZSAweDAxOgkJCQkvKiByZXNldCBzdGF0ZSAtIGFkdmFuY2VkCQkJKi8KLQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ1RSTCwgSU5JVF9TQklDRE1BIHwgQ1RSTF9JREkpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19USU1FT1VULCBUSU1FT1VUX1RJTUUpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TWU5DSFRSQU5TRkVSLCBTWU5DSFRSQU5TRkVSXzJEQkEpOwotCXNiaWNfYXJtX3dyaXRlKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfQ1RSTCwgSU5JVF9TQklDRE1BIHwgQ1RSTF9JREkpOworCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfVElNRU9VVCwgVElNRU9VVF9USU1FKTsKKwlzYmljX2FybV93cml0ZShob3N0LCBTQklDX1NZTkNIVFJBTlNGRVIsIFNZTkNIVFJBTlNGRVJfMkRCQSk7CisJc2JpY19hcm1fd3JpdGUoaG9zdCwgU0JJQ19TT1VSQ0VJRCwgU09VUkNFSURfRVIgfCBTT1VSQ0VJRF9EU1ApOwogCW1zZ3F1ZXVlX2ZsdXNoKCZob3N0LT5zY3NpLm1zZ3MpOwogCXJldHVybiBJTlRSX0lETEU7CiAKQEAgLTIwMjUsMTAgKzIwMjIsMTAgQEAKIAkgICAgbXNncXVldWVfZmx1c2goJmhvc3QtPnNjc2kubXNncyk7CiAJICAgIGhvc3QtPmRtYS50cmFuc2ZlcnJlZCA9IGhvc3QtPnNjc2kuU0NwLnNjc2lfeGZlcnJlZDsKIAkgICAgLyogMzNDOTMgZ2l2ZXMgbmV4dCBpbnRlcnJ1cHQgaW5kaWNhdGluZyBidXMgcGhhc2UgKi8KLQkgICAgYXNyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQVNSKTsKKwkgICAgYXNyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX0FTUik7CiAJICAgIGlmICghKGFzciAmIEFTUl9JTlQpKQogCQlicmVhazsKLQkgICAgc3NyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKTsKKwkgICAgc3NyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUik7CiAJICAgIEFERF9TVEFUVVMoOCwgc3NyLCBob3N0LT5zY3NpLnBoYXNlLCAxKTsKIAkgICAgQUREX1NUQVRVUyhob3N0LT5TQ3BudC0+ZGV2aWNlLT5pZCwgc3NyLCBob3N0LT5zY3NpLnBoYXNlLCAxKTsKIAkgICAgZ290byBjb25uZWN0ZWQ7CkBAIC0yNDc2LDExICsyNDczLDExIEBACiAgICAgZG8gewogCXJldCA9IElOVFJfSURMRTsKIAotCWlvc3RhdHVzID0gaW5iKGhvc3QtPmNhcmQuaW9faW50cik7CisJaW9zdGF0dXMgPSByZWFkYihob3N0LT5mYXN0ICsgSU5UX1JFRyk7CiAKIAlpZiAoaW9zdGF0dXMgJiAyKSB7CiAJICAgIGFjb3Juc2NzaV9kbWFfaW50cihob3N0KTsKLQkgICAgaW9zdGF0dXMgPSBpbmIoaG9zdC0+Y2FyZC5pb19pbnRyKTsKKwkgICAgaW9zdGF0dXMgPSByZWFkYihob3N0LT5mYXN0ICsgSU5UX1JFRyk7CiAJfQogCiAJaWYgKGlvc3RhdHVzICYgOCkKQEAgLTI2NTUsNyArMjY1Miw3IEBACiAJCSAqIGJ1c3lsdW4gYml0LgogCQkgKi8KIAkJY2FzZSBQSEFTRV9DT05ORUNURUQ6Ci0JCQlzYmljX2FybV93cml0ZShob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfQ01ORCwgQ01ORF9ESVNDT05ORUNUKTsKKwkJCXNiaWNfYXJtX3dyaXRlKGhvc3QsIFNCSUNfQ01ORCwgQ01ORF9ESVNDT05ORUNUKTsKIAkJCWhvc3QtPlNDcG50ID0gTlVMTDsKIAkJCXJlcyA9IHJlc19zdWNjZXNzX2NsZWFyOwogCQkJYnJlYWs7CkBAIC0yNjk5LDggKzI2OTYsOCBAQAogI2lmIChERUJVRyAmIERFQlVHX0FCT1JUKQogCXsKIAkJaW50IGFzciwgc3NyOwotCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19BU1IpOwotCQlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QtPnNjc2kuaW9fcG9ydCwgU0JJQ19TU1IpOworCQlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKKwkJc3NyID0gc2JpY19hcm1fcmVhZChob3N0LCBTQklDX1NTUik7CiAKIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiYWNvcm5zY3NpX2Fib3J0OiAiKTsKIAkJcHJpbnRfc2JpY19zdGF0dXMoYXNyLCBzc3IsIGhvc3QtPnNjc2kucGhhc2UpOwpAQCAtMjczMSw5ICsyNzI4LDcgQEAKIC8vI2lmIChERUJVRyAmIERFQlVHX0FCT1JUKQogCQlwcmludGsoInN1Y2Nlc3NcbiIpOwogLy8jZW5kaWYKLQkJU0NwbnQtPnJlc3VsdCA9IERJRF9BQk9SVCA8PCAxNjsKLQkJU0NwbnQtPnNjc2lfZG9uZShTQ3BudCk7Ci0JCXJlc3VsdCA9IFNDU0lfQUJPUlRfU1VDQ0VTUzsKKwkJcmVzdWx0ID0gU1VDQ0VTUzsKIAkJYnJlYWs7CiAKIAkvKgpAQCAtMjc0NSw3ICsyNzQwLDcgQEAKIC8vI2lmIChERUJVRyAmIERFQlVHX0FCT1JUKQogCQlwcmludGsoInNub296ZVxuIik7CiAvLyNlbmRpZgotCQlyZXN1bHQgPSBTQ1NJX0FCT1JUX1NOT09aRTsKKwkJcmVzdWx0ID0gRkFJTEVEOwogCQlicmVhazsKIAogCS8qCkBAIC0yNzU1LDExICsyNzUwLDcgQEAKIAlkZWZhdWx0OgogCWNhc2UgcmVzX25vdF9ydW5uaW5nOgogCQlhY29ybnNjc2lfZHVtcGxvZyhob3N0LCBTQ3BudC0+ZGV2aWNlLT5pZCk7Ci0jaWYgKERFQlVHICYgREVCVUdfQUJPUlQpCi0JCXJlc3VsdCA9IFNDU0lfQUJPUlRfU05PT1pFOwotI2Vsc2UKLQkJcmVzdWx0ID0gU0NTSV9BQk9SVF9OT1RfUlVOTklORzsKLSNlbmRpZgorCQlyZXN1bHQgPSBGQUlMRUQ7CiAvLyNpZiAoREVCVUcgJiBERUJVR19BQk9SVCkKIAkJcHJpbnRrKCJub3QgcnVubmluZ1xuIik7CiAvLyNlbmRpZgpAQCAtMjc3MCwxMyArMjc2MSwxMiBAQAogfQogCiAvKgotICogUHJvdG90eXBlOiBpbnQgYWNvcm5zY3NpX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50LCB1bnNpZ25lZCBpbnQgcmVzZXRfZmxhZ3MpCisgKiBQcm90b3R5cGU6IGludCBhY29ybnNjc2lfcmVzZXQoc3RydWN0IHNjc2lfY21uZCAqU0NwbnQpCiAgKiBQdXJwb3NlICA6IHJlc2V0IGEgY29tbWFuZCBvbiB0aGlzIGhvc3QvcmVzZXQgdGhpcyBob3N0CiAgKiBQYXJhbXMgICA6IFNDcG50ICAtIGNvbW1hbmQgY2F1c2luZyByZXNldAotICoJICAgICAgcmVzdWx0IC0gd2hhdCB0eXBlIG9mIHJlc2V0IHRvIHBlcmZvcm0KICAqIFJldHVybnMgIDogb25lIG9mIFNDU0lfUkVTRVRfIG1hY3JvcwogICovCi1pbnQgYWNvcm5zY3NpX3Jlc2V0KHN0cnVjdCBzY3NpX2NtbmQgKlNDcG50LCB1bnNpZ25lZCBpbnQgcmVzZXRfZmxhZ3MpCitpbnQgYWNvcm5zY3NpX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3BudCkKIHsKIAlBU19Ib3N0ICpob3N0ID0gKEFTX0hvc3QgKilTQ3BudC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsKIAlzdHJ1Y3Qgc2NzaV9jbW5kICpTQ3B0cjsKQEAgLTI3ODcsOCArMjc3Nyw4IEBACiAgICAgewogCWludCBhc3IsIHNzcjsKIAotCWFzciA9IHNiaWNfYXJtX3JlYWQoaG9zdC0+c2NzaS5pb19wb3J0LCBTQklDX0FTUik7Ci0Jc3NyID0gc2JpY19hcm1fcmVhZChob3N0LT5zY3NpLmlvX3BvcnQsIFNCSUNfU1NSKTsKKwlhc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfQVNSKTsKKwlzc3IgPSBzYmljX2FybV9yZWFkKGhvc3QsIFNCSUNfU1NSKTsKIAogCXByaW50ayhLRVJOX1dBUk5JTkcgImFjb3Juc2NzaV9yZXNldDogIik7CiAJcHJpbnRfc2JpY19zdGF0dXMoYXNyLCBzc3IsIGhvc3QtPnNjc2kucGhhc2UpOwpAQCAtMjc5OCwyOCArMjc4OCwxNiBAQAogCiAgICAgYWNvcm5zY3NpX2RtYV9zdG9wKGhvc3QpOwogCi0gICAgU0NwdHIgPSBob3N0LT5TQ3BudDsKLQogICAgIC8qCiAgICAgICogZG8gaGFyZCByZXNldC4gIFRoaXMgcmVzZXRzIGFsbCBkZXZpY2VzIG9uIHRoaXMgaG9zdCwgYW5kIHNvIHdlCiAgICAgICogbXVzdCBzZXQgdGhlIHJlc2V0IHN0YXR1cyBvbiBhbGwgY29tbWFuZHMuCiAgICAgICovCiAgICAgYWNvcm5zY3NpX3Jlc2V0Y2FyZChob3N0KTsKIAotICAgIC8qCi0gICAgICogcmVwb3J0IHJlc2V0IG9uIGNvbW1hbmRzIGN1cnJlbnQgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZAotICAgICAqLwotICAgIGFjb3Juc2NzaV9yZXBvcnRzdGF0dXMoJmhvc3QtPlNDcG50LCAmU0NwdHIsIERJRF9SRVNFVCk7Ci0KICAgICB3aGlsZSAoKFNDcHRyID0gcXVldWVfcmVtb3ZlKCZob3N0LT5xdWV1ZXMuZGlzY29ubmVjdGVkKSkgIT0gTlVMTCkKLQlhY29ybnNjc2lfcmVwb3J0c3RhdHVzKCZTQ3B0ciwgJlNDcG50LCBESURfUkVTRVQpOworCTsKIAotICAgIGlmIChTQ3BudCkgewotCVNDcG50LT5yZXN1bHQgPSBESURfUkVTRVQgPDwgMTY7Ci0JU0NwbnQtPnNjc2lfZG9uZShTQ3BudCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIFNDU0lfUkVTRVRfQlVTX1JFU0VUIHwgU0NTSV9SRVNFVF9IT1NUX1JFU0VUIHwgU0NTSV9SRVNFVF9TVUNDRVNTOworICAgIHJldHVybiBTVUNDRVNTOwogfQogCiAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTI4NTAsNyArMjgyOCw3IEBACiAgICAgIiBMSU5LIgogI2VuZGlmCiAjaWYgKERFQlVHICYgREVCVUdfTk9fV1JJVEUpCi0gICAgIiBOT1dSSVRFICgiTk9fV1JJVEVfU1RSIikiCisgICAgIiBOT1dSSVRFICgiIF9fc3RyaW5naWZ5KE5PX1dSSVRFKSAiKSIKICNlbmRpZgogCQksIGhvc3QtPmhvc3R0LT5uYW1lLCBob3N0LT5pb19wb3J0LCBob3N0LT5pcnEsCiAJCVZFUl9NQUpPUiwgVkVSX01JTk9SLCBWRVJfUEFUQ0gpOwpAQCAtMjg4MSwxNSArMjg1OSwxNSBAQAogICAgICIgTElOSyIKICNlbmRpZgogI2lmIChERUJVRyAmIERFQlVHX05PX1dSSVRFKQotICAgICIgTk9XUklURSAoIk5PX1dSSVRFX1NUUiIpIgorICAgICIgTk9XUklURSAoIiBfX3N0cmluZ2lmeShOT19XUklURSkgIikiCiAjZW5kaWYKIAkJIlxuXG4iLCBWRVJfTUFKT1IsIFZFUl9NSU5PUiwgVkVSX1BBVENIKTsKIAotICAgIHAgKz0gc3ByaW50ZihwLAkiU0JJQzogV0QzM0M5M0EgIEFkZHJlc3M6ICUwOFggIElSUSA6ICVkXG4iLAotCQkJaG9zdC0+c2NzaS5pb19wb3J0LCBob3N0LT5zY3NpLmlycSk7CisgICAgcCArPSBzcHJpbnRmKHAsCSJTQklDOiBXRDMzQzkzQSAgQWRkcmVzczogJXAgICAgSVJRIDogJWRcbiIsCisJCQlob3N0LT5iYXNlICsgU0JJQ19SRUdJRFgsIGhvc3QtPnNjc2kuaXJxKTsKICNpZmRlZiBVU0VfRE1BQwotICAgIHAgKz0gc3ByaW50ZihwLAkiRE1BQzogdVBDNzEwNzEgIEFkZHJlc3M6ICUwOFggIElSUSA6ICVkXG5cbiIsCi0JCQlob3N0LT5kbWEuaW9fcG9ydCwgaG9zdC0+c2NzaS5pcnEpOworICAgIHAgKz0gc3ByaW50ZihwLAkiRE1BQzogdVBDNzEwNzEgIEFkZHJlc3M6ICVwICBJUlEgOiAlZFxuXG4iLAorCQkJaG9zdC0+YmFzZSArIERNQUNfT0ZGU0VULCBob3N0LT5zY3NpLmlycSk7CiAjZW5kaWYKIAogICAgIHAgKz0gc3ByaW50ZihwLAkiU3RhdGlzdGljczpcbiIKQEAgLTI5NzYsOSArMjk1NCw4IEBACiAJLm5hbWUJCQk9ICJBY29yblNDU0kiLAogCS5pbmZvCQkJPSBhY29ybnNjc2lfaW5mbywKIAkucXVldWVjb21tYW5kCQk9IGFjb3Juc2NzaV9xdWV1ZWNtZCwKLSN3YXJuaW5nIGZpeG1lCi0JLmFib3J0CQkJPSBhY29ybnNjc2lfYWJvcnQsCi0JLnJlc2V0CQkJPSBhY29ybnNjc2lfcmVzZXQsCisJLmVoX2Fib3J0X2hhbmRsZXIJPSBhY29ybnNjc2lfYWJvcnQsCisJLmVoX2J1c19yZXNldF9oYW5kbGVyCT0gYWNvcm5zY3NpX2J1c19yZXNldCwKIAkuY2FuX3F1ZXVlCQk9IDE2LAogCS50aGlzX2lkCQk9IDcsCiAJLnNnX3RhYmxlc2l6ZQkJPSBTR19BTEwsCkBAIC0yOTkyLDQ4ICsyOTY5LDM3IEBACiB7CiAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdDsKIAlBU19Ib3N0ICphc2hvc3Q7Ci0JaW50IHJldCA9IC1FTk9NRU07CisJaW50IHJldDsKKworCXJldCA9IGVjYXJkX3JlcXVlc3RfcmVzb3VyY2VzKGVjKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKIAogCWhvc3QgPSBzY3NpX2hvc3RfYWxsb2MoJmFjb3Juc2NzaV90ZW1wbGF0ZSwgc2l6ZW9mKEFTX0hvc3QpKTsKLQlpZiAoIWhvc3QpCi0JCWdvdG8gb3V0OworCWlmICghaG9zdCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIG91dF9yZWxlYXNlOworCX0KIAogCWFzaG9zdCA9IChBU19Ib3N0ICopaG9zdC0+aG9zdGRhdGE7CiAKLQlob3N0LT5pb19wb3J0ID0gZWNhcmRfYWRkcmVzcyhlYywgRUNBUkRfTUVNQywgMCk7CisJYXNob3N0LT5iYXNlID0gZWNhcmRtX2lvbWFwKGVjLCBFQ0FSRF9SRVNfTUVNQywgMCwgMCk7CisJYXNob3N0LT5mYXN0ID0gZWNhcmRtX2lvbWFwKGVjLCBFQ0FSRF9SRVNfSU9DRkFTVCwgMCwgMCk7CisJaWYgKCFhc2hvc3QtPmJhc2UgfHwgIWFzaG9zdC0+ZmFzdCkKKwkJZ290byBvdXRfcHV0OworCiAJaG9zdC0+aXJxID0gZWMtPmlycTsKKwlhc2hvc3QtPmhvc3QgPSBob3N0OworCWFzaG9zdC0+c2NzaS5pcnEgPSBob3N0LT5pcnE7CiAKLQlhc2hvc3QtPmhvc3QJCT0gaG9zdDsKLQlhc2hvc3QtPnNjc2kuaW9fcG9ydAk9IGlvYWRkcihob3N0LT5pb19wb3J0ICsgMHg4MDApOwotCWFzaG9zdC0+c2NzaS5pcnEJPSBob3N0LT5pcnE7Ci0JYXNob3N0LT5jYXJkLmlvX2ludHIJPSBQT0RfU1BBQ0UoaG9zdC0+aW9fcG9ydCkgKyAweDgwMDsKLQlhc2hvc3QtPmNhcmQuaW9fcGFnZQk9IFBPRF9TUEFDRShob3N0LT5pb19wb3J0KSArIDB4YzAwOwotCWFzaG9zdC0+Y2FyZC5pb19yYW0JPSBpb2FkZHIoaG9zdC0+aW9fcG9ydCk7Ci0JYXNob3N0LT5kbWEuaW9fcG9ydAk9IGhvc3QtPmlvX3BvcnQgKyAweGMwMDsKLQlhc2hvc3QtPmRtYS5pb19pbnRyX2NsZWFyID0gUE9EX1NQQUNFKGhvc3QtPmlvX3BvcnQpICsgMHg4MDA7Ci0KLQllYy0+aXJxYWRkcgk9IChjaGFyICopaW9hZGRyKGFzaG9zdC0+Y2FyZC5pb19pbnRyKTsKKwllYy0+aXJxYWRkcgk9IGFzaG9zdC0+ZmFzdCArIElOVF9SRUc7CiAJZWMtPmlycW1hc2sJPSAweDBhOwogCi0JcmV0ID0gLUVCVVNZOwotCWlmICghcmVxdWVzdF9yZWdpb24oaG9zdC0+aW9fcG9ydCArIDB4ODAwLCAyLCAiYWNvcm5zY3NpKHNiaWMpIikpCi0JCWdvdG8gZXJyXzE7Ci0JaWYgKCFyZXF1ZXN0X3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9faW50ciwgMSwgImFjb3Juc2NzaShpbnRyKSIpKQotCQlnb3RvIGVycl8yOwotCWlmICghcmVxdWVzdF9yZWdpb24oYXNob3N0LT5jYXJkLmlvX3BhZ2UsIDEsICJhY29ybnNjc2kocGFnZSkiKSkKLQkJZ290byBlcnJfMzsKLSNpZmRlZiBVU0VfRE1BQwotCWlmICghcmVxdWVzdF9yZWdpb24oYXNob3N0LT5kbWEuaW9fcG9ydCwgMjU2LCAiYWNvcm5zY3NpKGRtYWMpIikpCi0JCWdvdG8gZXJyXzQ7Ci0jZW5kaWYKLQlpZiAoIXJlcXVlc3RfcmVnaW9uKGhvc3QtPmlvX3BvcnQsIDIwNDgsICJhY29ybnNjc2kocmFtKSIpKQotCQlnb3RvIGVycl81OwotCiAJcmV0ID0gcmVxdWVzdF9pcnEoaG9zdC0+aXJxLCBhY29ybnNjc2lfaW50ciwgSVJRRl9ESVNBQkxFRCwgImFjb3Juc2NzaSIsIGFzaG9zdCk7CiAJaWYgKHJldCkgewogCQlwcmludGsoS0VSTl9DUklUICJzY3NpJWQ6IElSUSVkIG5vdCBmcmVlOiAlZFxuIiwKIAkJCWhvc3QtPmhvc3Rfbm8sIGFzaG9zdC0+c2NzaS5pcnEsIHJldCk7Ci0JCWdvdG8gZXJyXzY7CisJCWdvdG8gb3V0X3B1dDsKIAl9CiAKIAltZW1zZXQoJmFzaG9zdC0+c3RhdHMsIDAsIHNpemVvZiAoYXNob3N0LT5zdGF0cykpOwpAQCAtMzA0NSwyNyArMzAxMSwyMiBAQAogCiAJcmV0ID0gc2NzaV9hZGRfaG9zdChob3N0LCAmZWMtPmRldik7CiAJaWYgKHJldCkKLQkJZ290byBlcnJfNzsKKwkJZ290byBvdXRfaXJxOwogCiAJc2NzaV9zY2FuX2hvc3QoaG9zdCk7CiAJZ290byBvdXQ7CiAKLSBlcnJfNzoKKyBvdXRfaXJxOgogCWZyZWVfaXJxKGhvc3QtPmlycSwgYXNob3N0KTsKLSBlcnJfNjoKLQlyZWxlYXNlX3JlZ2lvbihob3N0LT5pb19wb3J0LCAyMDQ4KTsKLSBlcnJfNToKLSNpZmRlZiBVU0VfRE1BQwotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+ZG1hLmlvX3BvcnQsIDI1Nik7Ci0jZW5kaWYKLSBlcnJfNDoKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9fcGFnZSwgMSk7Ci0gZXJyXzM6Ci0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5jYXJkLmlvX2ludHIsIDEpOyAgICAKLSBlcnJfMjoKLQlyZWxlYXNlX3JlZ2lvbihob3N0LT5pb19wb3J0ICsgMHg4MDAsIDIpOwotIGVycl8xOgorCW1zZ3F1ZXVlX2ZyZWUoJmFzaG9zdC0+c2NzaS5tc2dzKTsKKwlxdWV1ZV9mcmVlKCZhc2hvc3QtPnF1ZXVlcy5kaXNjb25uZWN0ZWQpOworCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmlzc3VlKTsKKyBvdXRfcHV0OgorCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmZhc3QpOworCWVjYXJkbV9pb3VubWFwKGVjLCBhc2hvc3QtPmJhc2UpOwogCXNjc2lfaG9zdF9wdXQoaG9zdCk7Cisgb3V0X3JlbGVhc2U6CisJZWNhcmRfcmVsZWFzZV9yZXNvdXJjZXMoZWMpOwogIG91dDoKIAlyZXR1cm4gcmV0OwogfQpAQCAtMzA4MSwyMCArMzA0MiwxNyBAQAogCS8qCiAJICogUHV0IGNhcmQgaW50byBSRVNFVCBzdGF0ZQogCSAqLwotCW91dGIoMHg4MCwgYXNob3N0LT5jYXJkLmlvX3BhZ2UpOworCXdyaXRlYigweDgwLCBhc2hvc3QtPmZhc3QgKyBQQUdFX1JFRyk7CiAKIAlmcmVlX2lycShob3N0LT5pcnEsIGFzaG9zdCk7CiAKLQlyZWxlYXNlX3JlZ2lvbihob3N0LT5pb19wb3J0ICsgMHg4MDAsIDIpOwotCXJlbGVhc2VfcmVnaW9uKGFzaG9zdC0+Y2FyZC5pb19pbnRyLCAxKTsKLQlyZWxlYXNlX3JlZ2lvbihhc2hvc3QtPmNhcmQuaW9fcGFnZSwgMSk7Ci0JcmVsZWFzZV9yZWdpb24oYXNob3N0LT5kbWEuaW9fcG9ydCwgMjU2KTsKLQlyZWxlYXNlX3JlZ2lvbihob3N0LT5pb19wb3J0LCAyMDQ4KTsKLQogCW1zZ3F1ZXVlX2ZyZWUoJmFzaG9zdC0+c2NzaS5tc2dzKTsKIAlxdWV1ZV9mcmVlKCZhc2hvc3QtPnF1ZXVlcy5kaXNjb25uZWN0ZWQpOwogCXF1ZXVlX2ZyZWUoJmFzaG9zdC0+cXVldWVzLmlzc3VlKTsKKwllY2FyZG1faW91bm1hcChlYywgYXNob3N0LT5mYXN0KTsKKwllY2FyZG1faW91bm1hcChlYywgYXNob3N0LT5iYXNlKTsKIAlzY3NpX2hvc3RfcHV0KGhvc3QpOworCWVjYXJkX3JlbGVhc2VfcmVzb3VyY2VzKGVjKTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBlY2FyZF9pZCBhY29ybnNjc2lfY2lkc1tdID0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuaCBiL2RyaXZlcnMvc2NzaS9hcm0vYWNvcm5zY3NpLmgKaW5kZXggZDExNDI0Yi4uOGQyMTcyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2FybS9hY29ybnNjc2kuaAorKysgYi9kcml2ZXJzL3Njc2kvYXJtL2Fjb3Juc2NzaS5oCkBAIC0xNzksNyArMTc5LDYgQEAKIAogLyogbWlzY2VsbGFuZW91cyBpbnRlcm5hbCB2YXJpYWJsZXMgKi8KIAotI2RlZmluZSBQT0RfU1BBQ0UoeCkJKCh4KSArIDB4ZDAwMDApCiAjZGVmaW5lIE1BU0tfT04JCShNQVNLUkVHX00zfE1BU0tSRUdfTTJ8TUFTS1JFR19NMXxNQVNLUkVHX00wKQogI2RlZmluZSBNQVNLX09GRgkoTUFTS1JFR19NM3xNQVNLUkVHX00yfE1BU0tSRUdfTTEpCiAKQEAgLTI3OSwxMCArMjc4LDExIEBACiAgICAgc3RydWN0IFNjc2lfSG9zdAkqaG9zdDsJCQkvKiBob3N0CQkJCQkqLwogICAgIHN0cnVjdCBzY3NpX2NtbmQJKlNDcG50OwkJCS8qIGN1cnJlbnRseSBwcm9jZXNzaW5nIGNvbW1hbmQJCSovCiAgICAgc3RydWN0IHNjc2lfY21uZAkqb3JpZ1NDcG50OwkJLyogb3JpZ2luYWwgY29ubmVjdGluZyBjb21tYW5kCQkqLworICAgIHZvaWQgX19pb21lbQkqYmFzZTsJCQkvKiBtZW1jIGJhc2UgYWRkcmVzcyAJCQkqLworICAgIHZvaWQgX19pb21lbQkqZmFzdDsJCQkvKiBmYXN0IGlvYyBiYXNlIGFkZHJlc3MJCSovCiAKICAgICAvKiBkcml2ZXIgaW5mb3JtYXRpb24gKi8KICAgICBzdHJ1Y3QgewotCXVuc2lnbmVkIGludAlpb19wb3J0OwkJLyogYmFzZSBhZGRyZXNzIG9mIFdEMzNDOTMJCSovCiAJdW5zaWduZWQgaW50CWlycTsJCQkvKiBpbnRlcnJ1cHQJCQkJKi8KIAlwaGFzZV90CQlwaGFzZTsJCQkvKiBjdXJyZW50IHBoYXNlCQkJKi8KIApAQCAtMzI5LDggKzMyOSw2IEBACiAKICAgICAvKiBETUEgaW5mbyAqLwogICAgIHN0cnVjdCB7Ci0JdW5zaWduZWQgaW50CWlvX3BvcnQ7CQkvKiBiYXNlIGFkZHJlc3Mgb2YgRE1BIGNvbnRyb2xsZXIJKi8KLQl1bnNpZ25lZCBpbnQJaW9faW50cl9jbGVhcjsJCS8qIGFkZHJlc3Mgb2YgRE1BIGludGVycnVwdCBjbGVhcgkqLwogCXVuc2lnbmVkIGludAlmcmVlX2FkZHI7CQkvKiBuZXh0IGZyZWUgYWRkcmVzcwkJCSovCiAJdW5zaWduZWQgaW50CXN0YXJ0X2FkZHI7CQkvKiBzdGFydCBhZGRyZXNzIG9mIGN1cnJlbnQgdHJhbnNmZXIJKi8KIAlkbWFkaXJfdAlkaXJlY3Rpb247CQkvKiBkbWEgZGlyZWN0aW9uCQkJKi8KQEAgLTM0NSw5ICszNDMsNiBAQAogCiAgICAgLyogY2FyZCBpbmZvICovCiAgICAgc3RydWN0IHsKLQl1bnNpZ25lZCBpbnQJaW9faW50cjsJCS8qIGJhc2UgYWRkcmVzcyBvZiBpbnRlcnJ1cHQgaWQgcmVnCSovCi0JdW5zaWduZWQgaW50CWlvX3BhZ2U7CQkvKiBiYXNlIGFkZHJlc3Mgb2YgcGFnZSByZWcJCSovCi0JdW5zaWduZWQgaW50CWlvX3JhbTsJCQkvKiBiYXNlIGFkZHJlc3Mgb2YgUkFNIGFjY2VzcwkJKi8KIAl1bnNpZ25lZCBjaGFyCXBhZ2VfcmVnOwkJLyogY3VycmVudCBzZXR0aW5nIG9mIHBhZ2UgcmVnCQkqLwogICAgIH0gY2FyZDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2F0cDg3MHUuYyBiL2RyaXZlcnMvc2NzaS9hdHA4NzB1LmMKaW5kZXggZGI2ZGU1ZS4uN2QzMTE1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2F0cDg3MHUuYworKysgYi9kcml2ZXJzL3Njc2kvYXRwODcwdS5jCkBAIC03NDcsNyArNzQ3LDcgQEAKIAkJZGV2LT5xdWhkW2NdID0gMDsKIAl9CiAJd29ya3JlcSA9IGRldi0+cXVlcmVxW2NdW2Rldi0+cXVoZFtjXV07Ci0JaWYgKGRldi0+aWRbY11bc2NtZF9pZCh3b3JrcmVxKV0uY3Vycl9yZXEgPT0gMCkgewkKKwlpZiAoZGV2LT5pZFtjXVtzY21kX2lkKHdvcmtyZXEpXS5jdXJyX3JlcSA9PSBOVUxMKSB7CiAJCWRldi0+aWRbY11bc2NtZF9pZCh3b3JrcmVxKV0uY3Vycl9yZXEgPSB3b3JrcmVxOwogCQlkZXYtPmxhc3RfY21kW2NdID0gc2NtZF9pZCh3b3JrcmVxKTsKIAkJZ290byBjbWRfc3VicDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9jaC5jIGIvZHJpdmVycy9zY3NpL2NoLmMKaW5kZXggYzRiOTM4Yi4uYWEyMDExYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2NoLmMKKysrIGIvZHJpdmVycy9zY3NpL2NoLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9jaGlvLmg+CQkJLyogaGVyZSBhcmUgYWxsIHRoZSBpb2N0bHMgKi8KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPGxpbnV4L2lkci5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfY21uZC5oPgpAQCAtNTcxLDE2ICs1NzIsMTkgQEAKIAlzY3NpX2NoYW5nZXIgKmNoOwogCWludCBtaW5vciA9IGltaW5vcihpbm9kZSk7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXNwaW5fbG9jaygmY2hfaW5kZXhfbG9jayk7CiAJY2ggPSBpZHJfZmluZCgmY2hfaW5kZXhfaWRyLCBtaW5vcik7CiAKIAlpZiAoTlVMTCA9PSBjaCB8fCBzY3NpX2RldmljZV9nZXQoY2gtPmRldmljZSkpIHsKIAkJc3Bpbl91bmxvY2soJmNoX2luZGV4X2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCXNwaW5fdW5sb2NrKCZjaF9pbmRleF9sb2NrKTsKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IGNoOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2RwdC9kcHRzaWcuaCBiL2RyaXZlcnMvc2NzaS9kcHQvZHB0c2lnLmgKaW5kZXggNzJjODk5Mi4uYTY2NDRiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2RwdC9kcHRzaWcuaAorKysgYi9kcml2ZXJzL3Njc2kvZHB0L2RwdHNpZy5oCkBAIC04NSw3ICs4NSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qIFdoYXQgdHlwZSBvZiBwcm9jZXNzb3IgdGhlIGZpbGUgaXMgbWVhbnQgdG8gcnVuIG9uLiAqLwogLyogVGhpcyB3aWxsIGxldCB1cyBrbm93IHdoZXRoZXIgdG8gcmVhZCBzaWdXT1JEcyBhcyBoaWdoL2xvdyBvciBsb3cvaGlnaC4gKi8KLSNkZWZpbmUgUFJPQ19JTlRFTCAgICAgIDB4MDAgICAgLyogSW50ZWwgODB4ODYgKi8KKyNkZWZpbmUgUFJPQ19JTlRFTCAgICAgIDB4MDAgICAgLyogSW50ZWwgODB4ODYvaWE2NCAqLwogI2RlZmluZSBQUk9DX01PVE9ST0xBICAgMHgwMSAgICAvKiBNb3Rvcm9sYSA2OEsgKi8KICNkZWZpbmUgUFJPQ19NSVBTNDAwMCAgIDB4MDIgICAgLyogTUlQUyBSSVNDIDQwMDAgKi8KICNkZWZpbmUgUFJPQ19BTFBIQSAgICAgIDB4MDMgICAgLyogREVDIEFscGhhICovCkBAIC0xMDQsNiArMTA0LDcgQEAKICNkZWZpbmUgUFJPQ180ODYgICAgICAgIDB4MDggICAgLyogSW50ZWwgODA0ODYgKi8KICNkZWZpbmUgUFJPQ19QRU5USVVNICAgIDB4MTAgICAgLyogSW50ZWwgNTg2IGFrYSBQNSBha2EgUGVudGl1bSAqLwogI2RlZmluZSBQUk9DX1NFWElVTQkweDIwCS8qIEludGVsIDY4NiBha2EgUDYgYWthIFBlbnRpdW0gUHJvIG9yIE1NWCAqLworI2RlZmluZSBQUk9DX0lBNjQJMHg0MAkvKiBJbnRlbCBJQTY0IHByb2Nlc3NvciAqLwogCiAvKiBQUk9DX2k5NjA6ICovCiAjZGVmaW5lIFBST0NfOTYwUlggICAgICAweDAxICAgIC8qIEludGVsIDgwOTYwUkMvUkQgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMgYi9kcml2ZXJzL3Njc2kvZHB0X2kyby5jCmluZGV4IDg1MDg4MTYuLjJiYzMwZTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9kcHRfaTJvLmMKKysrIGIvZHJpdmVycy9zY3NpL2RwdF9pMm8uYwpAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgkvKiBmb3IgcHJpbnRrICovCiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KIApAQCAtMTcyNywxMCArMTcyOCwxMiBAQAogCWludCBtaW5vcjsKIAlhZHB0X2hiYSogcEhiYTsKIAorCWxvY2tfa2VybmVsKCk7CiAJLy9UT0RPIGNoZWNrIGZvciByb290IGFjY2VzcwogCS8vCiAJbWlub3IgPSBpbWlub3IoaW5vZGUpOwogCWlmIChtaW5vciA+PSBoYmFfY291bnQpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOWElPOwogCX0KIAltdXRleF9sb2NrKCZhZHB0X2NvbmZpZ3VyYXRpb25fbG9jayk7CkBAIC0xNzQxLDYgKzE3NDQsNyBAQAogCX0KIAlpZiAocEhiYSA9PSBOVUxMKSB7CiAJCW11dGV4X3VubG9jaygmYWRwdF9jb25maWd1cmF0aW9uX2xvY2spOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCkBAIC0xNzUxLDYgKzE3NTUsNyBAQAogCiAJcEhiYS0+aW5fdXNlID0gMTsKIAltdXRleF91bmxvY2soJmFkcHRfY29uZmlndXJhdGlvbl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9lc3Bfc2NzaS5jIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKaW5kZXggYTBiNmQ0MS4uNTlmYmVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2VzcF9zY3NpLmMKQEAgLTIzNTksNiArMjM1OSwyNCBAQAogfQogRVhQT1JUX1NZTUJPTChzY3NpX2VzcF91bnJlZ2lzdGVyKTsKIAorc3RhdGljIGludCBlc3BfdGFyZ2V0X2FsbG9jKHN0cnVjdCBzY3NpX3RhcmdldCAqc3RhcmdldCkKK3sKKwlzdHJ1Y3QgZXNwICplc3AgPSBzaG9zdF9wcml2KGRldl90b19zaG9zdCgmc3RhcmdldC0+ZGV2KSk7CisJc3RydWN0IGVzcF90YXJnZXRfZGF0YSAqdHAgPSAmZXNwLT50YXJnZXRbc3RhcmdldC0+aWRdOworCisJdHAtPnN0YXJnZXQgPSBzdGFyZ2V0OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGVzcF90YXJnZXRfZGVzdHJveShzdHJ1Y3Qgc2NzaV90YXJnZXQgKnN0YXJnZXQpCit7CisJc3RydWN0IGVzcCAqZXNwID0gc2hvc3RfcHJpdihkZXZfdG9fc2hvc3QoJnN0YXJnZXQtPmRldikpOworCXN0cnVjdCBlc3BfdGFyZ2V0X2RhdGEgKnRwID0gJmVzcC0+dGFyZ2V0W3N0YXJnZXQtPmlkXTsKKworCXRwLT5zdGFyZ2V0ID0gTlVMTDsKK30KKwogc3RhdGljIGludCBlc3Bfc2xhdmVfYWxsb2Moc3RydWN0IHNjc2lfZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGVzcCAqZXNwID0gc2hvc3RfcHJpdihkZXYtPmhvc3QpOwpAQCAtMjM3MCw4ICsyMzg4LDYgQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJZGV2LT5ob3N0ZGF0YSA9IGxwOwogCi0JdHAtPnN0YXJnZXQgPSBkZXYtPnNkZXZfdGFyZ2V0OwotCiAJc3BpX21pbl9wZXJpb2QodHAtPnN0YXJnZXQpID0gZXNwLT5taW5fcGVyaW9kOwogCXNwaV9tYXhfb2Zmc2V0KHRwLT5zdGFyZ2V0KSA9IDE1OwogCkBAIC0yNjA4LDYgKzI2MjQsOCBAQAogCS5uYW1lCQkJPSAiZXNwIiwKIAkuaW5mbwkJCT0gZXNwX2luZm8sCiAJLnF1ZXVlY29tbWFuZAkJPSBlc3BfcXVldWVjb21tYW5kLAorCS50YXJnZXRfYWxsb2MJCT0gZXNwX3RhcmdldF9hbGxvYywKKwkudGFyZ2V0X2Rlc3Ryb3kJCT0gZXNwX3RhcmdldF9kZXN0cm95LAogCS5zbGF2ZV9hbGxvYwkJPSBlc3Bfc2xhdmVfYWxsb2MsCiAJLnNsYXZlX2NvbmZpZ3VyZQk9IGVzcF9zbGF2ZV9jb25maWd1cmUsCiAJLnNsYXZlX2Rlc3Ryb3kJCT0gZXNwX3NsYXZlX2Rlc3Ryb3ksCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvZ2R0aC5jIGIvZHJpdmVycy9zY3NpL2dkdGguYwppbmRleCA0Njc3MWQ0Li44MjJkNTIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvZ2R0aC5jCisrKyBiL2RyaXZlcnMvc2NzaS9nZHRoLmMKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2lmZGVmIEdEVEhfUlRDCiAjaW5jbHVkZSA8bGludXgvbWMxNDY4MThydGMuaD4KQEAgLTQwMTksMTAgKzQwMjAsMTIgQEAKIHsKICAgICBnZHRoX2hhX3N0ciAqaGE7CiAKKyAgICBsb2NrX2tlcm5lbCgpOwogICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoaGEsICZnZHRoX2luc3RhbmNlcywgbGlzdCkgewogICAgICAgICBpZiAoIWhhLT5zZGV2KQogICAgICAgICAgICAgaGEtPnNkZXYgPSBzY3NpX2dldF9ob3N0X2RldihoYS0+c2hvc3QpOwogICAgIH0KKyAgICB1bmxvY2tfa2VybmVsKCk7CiAKICAgICBUUkFDRSgoImdkdGhfb3BlbigpXG4iKSk7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaG9zdHMuYyBiL2RyaXZlcnMvc2NzaS9ob3N0cy5jCmluZGV4IDM2OTAzNjAuLmM2NDU3YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9ob3N0cy5jCisrKyBiL2RyaXZlcnMvc2NzaS9ob3N0cy5jCkBAIC00NTYsNiArNDU2LDEwIEBACiAgKgogICogUmV0dXJuIHZhbHVlOgogICoJQSBwb2ludGVyIHRvIGxvY2F0ZWQgU2NzaV9Ib3N0IG9yIE5VTEwuCisgKgorICoJVGhlIGNhbGxlciBtdXN0IGRvIGEgc2NzaV9ob3N0X3B1dCgpIHRvIGRyb3AgdGhlIHJlZmVyZW5jZQorICoJdGhhdCBzY3NpX2hvc3RfZ2V0KCkgdG9vay4gVGhlIHB1dF9kZXZpY2UoKSBiZWxvdyBkcm9wcGVkCisgKgl0aGUgcmVmZXJlbmNlIGZyb20gY2xhc3NfZmluZF9kZXZpY2UoKS4KICAqKi8KIHN0cnVjdCBTY3NpX0hvc3QgKnNjc2lfaG9zdF9sb29rdXAodW5zaWduZWQgc2hvcnQgaG9zdG51bSkKIHsKQEAgLTQ2Myw5ICs0NjcsMTAgQEAKIAlzdHJ1Y3QgU2NzaV9Ib3N0ICpzaG9zdCA9IEVSUl9QVFIoLUVOWElPKTsKIAogCWNkZXYgPSBjbGFzc19maW5kX2RldmljZSgmc2hvc3RfY2xhc3MsICZob3N0bnVtLCBfX3Njc2lfaG9zdF9tYXRjaCk7Ci0JaWYgKGNkZXYpCisJaWYgKGNkZXYpIHsKIAkJc2hvc3QgPSBzY3NpX2hvc3RfZ2V0KGNsYXNzX3RvX3Nob3N0KGNkZXYpKTsKLQorCQlwdXRfZGV2aWNlKGNkZXYpOworCX0KIAlyZXR1cm4gc2hvc3Q7CiB9CiBFWFBPUlRfU1lNQk9MKHNjc2lfaG9zdF9sb29rdXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2hwdGlvcC5jIGIvZHJpdmVycy9zY3NpL2hwdGlvcC5jCmluZGV4IGFhYTQ4ZTAuLmRhODc2ZDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9ocHRpb3AuYworKysgYi9kcml2ZXJzL3Njc2kvaHB0aW9wLmMKQEAgLTQ0NCw3ICs0NDQsNyBAQAogCWlmICghKHBjaV9yZXNvdXJjZV9mbGFncyhwY2lkZXYsIGluZGV4KSAmIElPUkVTT1VSQ0VfTUVNKSkgewogCQlwcmludGsoS0VSTl9FUlIgInNjc2klZDogcGNpIHJlc291cmNlIGludmFsaWRcbiIsCiAJCQkJaGJhLT5ob3N0LT5ob3N0X25vKTsKLQkJcmV0dXJuIDA7CisJCXJldHVybiBOVUxMOwogCX0KIAogCW1lbV9iYXNlX3BoeSA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2lkZXYsIGluZGV4KTsKQEAgLTQ1NCw3ICs0NTQsNyBAQAogCWlmICghbWVtX2Jhc2VfdmlydCkgewogCQlwcmludGsoS0VSTl9FUlIgInNjc2klZDogRmFpbCB0byBpb3JlbWFwIG1lbW9yeSBzcGFjZVxuIiwKIAkJCQloYmEtPmhvc3QtPmhvc3Rfbm8pOwotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIE5VTEw7CiAJfQogCXJldHVybiBtZW1fYmFzZV92aXJ0OwogfQpAQCAtNDc2LDExICs0NzYsMTEgQEAKIHN0YXRpYyBpbnQgaHB0aW9wX21hcF9wY2lfYmFyX212KHN0cnVjdCBocHRpb3BfaGJhICpoYmEpCiB7CiAJaGJhLT51Lm12LnJlZ3MgPSBocHRpb3BfbWFwX3BjaV9iYXIoaGJhLCAwKTsKLQlpZiAoaGJhLT51Lm12LnJlZ3MgPT0gMCkKKwlpZiAoaGJhLT51Lm12LnJlZ3MgPT0gTlVMTCkKIAkJcmV0dXJuIC0xOwogCiAJaGJhLT51Lm12Lm11ID0gaHB0aW9wX21hcF9wY2lfYmFyKGhiYSwgMik7Ci0JaWYgKGhiYS0+dS5tdi5tdSA9PSAwKSB7CisJaWYgKGhiYS0+dS5tdi5tdSA9PSBOVUxMKSB7CiAJCWlvdW5tYXAoaGJhLT51Lm12LnJlZ3MpOwogCQlyZXR1cm4gLTE7CiAJfQpAQCAtMTIxMCw4ICsxMjEwLDggQEAKIAogc3RhdGljIHN0cnVjdCBocHRpb3BfYWRhcHRlcl9vcHMgaHB0aW9wX2l0bF9vcHMgPSB7CiAJLmlvcF93YWl0X3JlYWR5ICAgID0gaW9wX3dhaXRfcmVhZHlfaXRsLAotCS5pbnRlcm5hbF9tZW1hbGxvYyA9IDAsCi0JLmludGVybmFsX21lbWZyZWUgID0gMCwKKwkuaW50ZXJuYWxfbWVtYWxsb2MgPSBOVUxMLAorCS5pbnRlcm5hbF9tZW1mcmVlICA9IE5VTEwsCiAJLm1hcF9wY2lfYmFyICAgICAgID0gaHB0aW9wX21hcF9wY2lfYmFyX2l0bCwKIAkudW5tYXBfcGNpX2JhciAgICAgPSBocHRpb3BfdW5tYXBfcGNpX2Jhcl9pdGwsCiAJLmVuYWJsZV9pbnRyICAgICAgID0gaHB0aW9wX2VuYWJsZV9pbnRyX2l0bCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pYm12c2NzaS9pYm12c2NzaS5jIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3NpLmMKaW5kZXggY2NmZDhhYy4uNWQyMzM2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3NpLmMKKysrIGIvZHJpdmVycy9zY3NpL2libXZzY3NpL2libXZzY3NpLmMKQEAgLTEzNDgsNyArMTM0OCw3IEBACiAKIAlkZWxfdGltZXIoJmV2dF9zdHJ1Y3QtPnRpbWVyKTsKIAotCWlmIChjcnEtPnN0YXR1cyAhPSBWSU9TUlBfT0sgJiYgZXZ0X3N0cnVjdC0+Y21uZCkKKwlpZiAoKGNycS0+c3RhdHVzICE9IFZJT1NSUF9PSyAmJiBjcnEtPnN0YXR1cyAhPSBWSU9TUlBfT0syKSAmJiBldnRfc3RydWN0LT5jbW5kKQogCQlldnRfc3RydWN0LT5jbW5kLT5yZXN1bHQgPSBESURfRVJST1IgPDwgMTY7CiAJaWYgKGV2dF9zdHJ1Y3QtPmRvbmUpCiAJCWV2dF9zdHJ1Y3QtPmRvbmUoZXZ0X3N0cnVjdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvdmlvc3JwLmggYi9kcml2ZXJzL3Njc2kvaWJtdnNjc2kvdmlvc3JwLmgKaW5kZXggNGM0YWFkYi4uMjA0NjA0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL2libXZzY3NpL3Zpb3NycC5oCisrKyBiL2RyaXZlcnMvc2NzaS9pYm12c2NzaS92aW9zcnAuaApAQCAtNjUsNyArNjUsOCBAQAogCVZJT1NSUF9WSU9MQVRFU19NQVhfWEZFUiA9IDB4MiwKIAlWSU9TUlBfUEFSVE5FUl9QQU5JQyA9IDB4MywKIAlWSU9TUlBfREVWSUNFX0JVU1kgPSAweDgsCi0JVklPU1JQX0FEQVBURVJfRkFJTCA9IDB4MTAKKwlWSU9TUlBfQURBUFRFUl9GQUlMID0gMHgxMCwKKwlWSU9TUlBfT0syID0gMHg5OSwKIH07CiAKIHN0cnVjdCB2aW9zcnBfY3JxIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9pcHIuYyBiL2RyaXZlcnMvc2NzaS9pcHIuYwppbmRleCA5OTllOTFlLi5lN2EzYTY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvaXByLmMKKysrIGIvZHJpdmVycy9zY3NpL2lwci5jCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KICNpbmNsdWRlIDxsaW51eC9saWJhdGEuaD4KKyNpbmNsdWRlIDxsaW51eC9oZHJlZy5oPgogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CkBAIC00OTEzLDggKzQ5MTQsMTEgQEAKIAlzdHJ1Y3QgaXByX3Jlc291cmNlX2VudHJ5ICpyZXM7CiAKIAlyZXMgPSAoc3RydWN0IGlwcl9yZXNvdXJjZV9lbnRyeSAqKXNkZXYtPmhvc3RkYXRhOwotCWlmIChyZXMgJiYgaXByX2lzX2dhdGEocmVzKSkKKwlpZiAocmVzICYmIGlwcl9pc19nYXRhKHJlcykpIHsKKwkJaWYgKGNtZCA9PSBIRElPX0dFVF9JREVOVElUWSkKKwkJCXJldHVybiAtRU5PVFRZOwogCQlyZXR1cm4gYXRhX3Njc2lfaW9jdGwoc2RldiwgY21kLCBhcmcpOworCX0KIAogCXJldHVybiAtRUlOVkFMOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwppbmRleCAxODU1MWFhLi4yOGM5ZGE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYworKysgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpY2FtLmg+CiAKICNpbmNsdWRlICJzY3NpLmgiCkBAIC0zMjcyLDEyICszMjczLDEyIEBACiAgKiBAZmlsZXAgLSB1bnVzZWQKICAqCiAgKiBSb3V0aW5lcyBmb3IgdGhlIGNoYXJhY3Rlci9pb2N0bCBpbnRlcmZhY2UgdG8gdGhlIGRyaXZlci4gRmluZCBvdXQgaWYgdGhpcwotICogaXMgYSB2YWxpZCBvcGVuLiBJZiB5ZXMsIGluY3JlbWVudCB0aGUgbW9kdWxlIHVzZSBjb3VudCBzbyB0aGF0IGl0IGNhbm5vdAotICogYmUgdW5sb2FkZWQuCisgKiBpcyBhIHZhbGlkIG9wZW4uIAogICovCiBzdGF0aWMgaW50CiBtZWdhZGV2X29wZW4gKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlcCkKIHsKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCS8qCiAJICogT25seSBhbGxvdyBzdXBlcnVzZXIgdG8gYWNjZXNzIHByaXZhdGUgaW9jdGwgaW50ZXJmYWNlCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfbW0uYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCmluZGV4IDBhZDIxNWUuLmFjM2IyODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9tbS5jCkBAIC0xNSw2ICsxNSw3IEBACiAgKiBDb21tb24gbWFuYWdlbWVudCBtb2R1bGUKICAqLwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlICJtZWdhcmFpZF9tbS5oIgogCiAKQEAgLTk2LDYgKzk3LDcgQEAKIAkgKi8KIAlpZiAoIWNhcGFibGUoQ0FQX1NZU19BRE1JTikpIHJldHVybiAoLUVBQ0NFUyk7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMgYi9kcml2ZXJzL3Njc2kvbWVnYXJhaWQvbWVnYXJhaWRfc2FzLmMKaW5kZXggN2Q4NGM4Yi4uZmM3YWMxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL21lZ2FyYWlkL21lZ2FyYWlkX3Nhcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC9tZWdhcmFpZF9zYXMuYwpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KQEAgLTI4NjMsNiArMjg2NCw3IEBACiAgKi8KIHN0YXRpYyBpbnQgbWVnYXNhc19tZ210X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGVwKQogeworCWN5Y2xlX2tlcm5lbF9sb2NrKCk7CiAJLyoKIAkgKiBBbGxvdyBvbmx5IHRob3NlIHVzZXJzIHdpdGggYWRtaW4gcmlnaHRzCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvb3NzdC5jIGIvZHJpdmVycy9zY3NpL29zc3QuYwppbmRleCAyNDNkOGJlLi4xYzc5Zjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvb3NzdC5jCisrKyBiL2RyaXZlcnMvc2NzaS9vc3N0LmMKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgpAQCAtNDM1OSw3ICs0MzYwLDcgQEAKIAogCiAvKiBPcGVuIHRoZSBkZXZpY2UgKi8KLXN0YXRpYyBpbnQgb3Nfc2NzaV90YXBlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCkKK3N0YXRpYyBpbnQgX19vc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQogewogCXVuc2lnbmVkIHNob3J0CSAgICAgIGZsYWdzOwogCWludAkJICAgICAgaSwgYl9zaXplLCBuZXdfc2Vzc2lvbiA9IDAsIHJldHZhbCA9IDA7CkBAIC00NzI1LDYgKzQ3MjYsMTggQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCisvKiBCS0wgcHVzaGRvd246IHNwYWdoZXR0aSBhdm9pZGFuY2Ugd3JhcHBlciAqLworc3RhdGljIGludCBvc19zY3NpX3RhcGVfb3BlbihzdHJ1Y3QgaW5vZGUgKiBpbm9kZSwgc3RydWN0IGZpbGUgKiBmaWxwKQoreworCWludCByZXQ7CisKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IF9fb3Nfc2NzaV90YXBlX29wZW4oaW5vZGUsIGZpbHApOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OworfQorCisKIAogLyogRmx1c2ggdGhlIHRhcGUgYnVmZmVyIGJlZm9yZSBjbG9zZSAqLwogc3RhdGljIGludCBvc19zY3NpX3RhcGVfZmx1c2goc3RydWN0IGZpbGUgKiBmaWxwLCBmbF9vd25lcl90IGlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTEyODAuYyBiL2RyaXZlcnMvc2NzaS9xbGExMjgwLmMKaW5kZXggNTFlMmYyOS4uMzc1NGFiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTEyODAuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMTI4MC5jCkBAIC0yODExLDcgKzI4MTEsNyBAQAogCiAJLyogQ2hlY2sgZm9yIHJvb20gaW4gb3V0c3RhbmRpbmcgY29tbWFuZCBsaXN0LiAqLwogCWZvciAoY250ID0gMDsgY250IDwgTUFYX09VVFNUQU5ESU5HX0NPTU1BTkRTICYmCi0JCSAgICAgaGEtPm91dHN0YW5kaW5nX2NtZHNbY250XSAhPSAwOyBjbnQrKyk7CisJCSAgICAgaGEtPm91dHN0YW5kaW5nX2NtZHNbY250XSAhPSBOVUxMOyBjbnQrKyk7CiAKIAlpZiAoY250ID49IE1BWF9PVVRTVEFORElOR19DT01NQU5EUykgewogCQlzdGF0dXMgPSAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2F0dHIuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9hdHRyLmMKaW5kZXggMjg3NjkwOC4uOGRkODhmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2F0dHIuYworKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfYXR0ci5jCkBAIC03MCw2ICs3MCw5IEBACiAJY2FzZSAyOgogCQlxbGEyeDAwX2FsbG9jX2Z3X2R1bXAoaGEpOwogCQlicmVhazsKKwljYXNlIDM6CisJCXFsYTJ4MDBfc3lzdGVtX2Vycm9yKGhhKTsKKwkJYnJlYWs7CiAJfQogCXJldHVybiAoY291bnQpOwogfQpAQCAtODg2LDkgKzg4OSwxMyBAQAogc3RhdGljIHZvaWQKIHFsYTJ4MDBfZ2V0X2hvc3RfcG9ydF90eXBlKHN0cnVjdCBTY3NpX0hvc3QgKnNob3N0KQogewotCXNjc2lfcWxhX2hvc3RfdCAqaGEgPSB0b19xbGFfcGFyZW50KHNob3N0X3ByaXYoc2hvc3QpKTsKKwlzY3NpX3FsYV9ob3N0X3QgKmhhID0gc2hvc3RfcHJpdihzaG9zdCk7CiAJdWludDMyX3QgcG9ydF90eXBlID0gRkNfUE9SVFRZUEVfVU5LTk9XTjsKIAorCWlmIChoYS0+cGFyZW50KSB7CisJCWZjX2hvc3RfcG9ydF90eXBlKHNob3N0KSA9IEZDX1BPUlRUWVBFX05QSVY7CisJCXJldHVybjsKKwl9CiAJc3dpdGNoIChoYS0+Y3VycmVudF90b3BvbG9neSkgewogCWNhc2UgSVNQX0NGR19OTDoKIAkJcG9ydF90eXBlID0gRkNfUE9SVFRZUEVfTFBPUlQ7CkBAIC0xMTcyLDEwICsxMTc5LDEwIEBACiAJcWxhMjR4eF9kaXNhYmxlX3ZwKHZoYSk7CiAJcWxhMjR4eF9kZWFsbG9jYXRlX3ZwX2lkKHZoYSk7CiAKLQlkb3duKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF9sb2NrKCZoYS0+dnBvcnRfbG9jayk7CiAJaGEtPmN1cl92cG9ydF9jb3VudC0tOwogCWNsZWFyX2JpdCh2aGEtPnZwX2lkeCwgaGEtPnZwX2lkeF9tYXApOwotCXVwKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF91bmxvY2soJmhhLT52cG9ydF9sb2NrKTsKIAogCWtmcmVlKHZoYS0+bm9kZV9uYW1lKTsKIAlrZnJlZSh2aGEtPnBvcnRfbmFtZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmggYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKaW5kZXggMjk5ZWNjZi4uOGRkNjAwMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9kZWYuaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZGVmLmgKQEAgLTI0NTcsNyArMjQ1Nyw3IEBACiAjZGVmaW5lIE1CWF9JTlRSX1dBSVQJMgogI2RlZmluZSBNQlhfVVBEQVRFX0ZMQVNIX0FDVElWRQkzCiAKLQlzdHJ1Y3Qgc2VtYXBob3JlIHZwb3J0X3NlbTsJLyogVmlydHVhbCBwb3J0IHN5bmNocm9uaXphdGlvbiAqLworCXN0cnVjdCBtdXRleCB2cG9ydF9sb2NrOwkvKiBWaXJ0dWFsIHBvcnQgc3luY2hyb25pemF0aW9uICovCiAJc3RydWN0IGNvbXBsZXRpb24gbWJ4X2NtZF9jb21wOwkvKiBTZXJpYWxpemUgbWJ4IGFjY2VzcyAqLwogCXN0cnVjdCBjb21wbGV0aW9uIG1ieF9pbnRyX2NvbXA7ICAvKiBVc2VkIGZvciBjb21wbGV0aW9uIG5vdGlmaWNhdGlvbiAqLwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZ2JsLmggYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfZ2JsLmgKaW5kZXggZjg4MjcwNi4uOWI0YmViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2dibC5oCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9nYmwuaApAQCAtMjI4LDYgKzIyOCw5IEBACiBleHRlcm4gaW50IHFsYTI0eHhfbHVuX3Jlc2V0KHN0cnVjdCBmY19wb3J0ICosIHVuc2lnbmVkIGludCk7CiAKIGV4dGVybiBpbnQKK3FsYTJ4MDBfc3lzdGVtX2Vycm9yKHNjc2lfcWxhX2hvc3RfdCAqKTsKKworZXh0ZXJuIGludAogcWxhMngwMF9zZXRfc2VyZGVzX3BhcmFtcyhzY3NpX3FsYV9ob3N0X3QgKiwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCk7CiAKIGV4dGVybiBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbmxpbmUuaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pbmxpbmUuaAppbmRleCBlOWJhZTI3Li45MmZhZmJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaW5saW5lLmgKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lubGluZS5oCkBAIC0zNCw3ICszNCwxMSBAQAogc3RhdGljIGlubGluZSB2b2lkCiBxbGEyeDAwX3BvbGwoc2NzaV9xbGFfaG9zdF90ICpoYSkKIHsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCWhhLT5pc3Bfb3BzLT5pbnRyX2hhbmRsZXIoMCwgaGEpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAogc3RhdGljIF9faW5saW5lX18gc2NzaV9xbGFfaG9zdF90ICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pc3IuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9pc3IuYwppbmRleCA1ZDlhNjRhLi5lYzYzYjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfaXNyLmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX2lzci5jCkBAIC0yNzIsOCArMjcyLDYgQEAKIAl1aW50MzJfdAlyc2NuX2VudHJ5LCBob3N0X3BpZDsKIAl1aW50OF90CQlyc2NuX3F1ZXVlX2luZGV4OwogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7Ci0Jc2NzaV9xbGFfaG9zdF90CSp2aGE7Ci0JaW50CQlpOwogCiAJLyogU2V0dXAgdG8gcHJvY2VzcyBSSU8gY29tcGxldGlvbi4gKi8KIAloYW5kbGVfY250ID0gMDsKQEAgLTU0NCwxOCArNTQyLDEwIEBACiAJCWJyZWFrOwogCiAJY2FzZSBNQkFfUE9SVF9VUERBVEU6CQkvKiBQb3J0IGRhdGFiYXNlIHVwZGF0ZSAqLwotCQlpZiAoKGhhLT5mbGFncy5ucGl2X3N1cHBvcnRlZCkgJiYgKGhhLT5udW1fdmhvc3RzKSkgewotCQkJZm9yX2VhY2hfbWFwcGVkX3ZwX2lkeChoYSwgaSkgewotCQkJCWxpc3RfZm9yX2VhY2hfZW50cnkodmhhLCAmaGEtPnZwX2xpc3QsCi0JCQkJICAgIHZwX2xpc3QpIHsKLQkJCQkJaWYgKChtYlszXSAmIDB4ZmYpCi0JCQkJCSAgICA9PSB2aGEtPnZwX2lkeCkgewotCQkJCQkJaGEgPSB2aGE7Ci0JCQkJCQlicmVhazsKLQkJCQkJfQotCQkJCX0KLQkJCX0KLQkJfQorCQkvKiBPbmx5IGhhbmRsZSBTQ05zIGZvciBvdXIgVnBvcnQgaW5kZXguICovCisJCWlmIChoYS0+cGFyZW50ICYmIGhhLT52cF9pZHggIT0gKG1iWzNdICYgMHhmZikpCisJCQlicmVhazsKKwogCQkvKgogCQkgKiBJZiBQT1JUIFVQREFURSBpcyBnbG9iYWwgKHJlY2lldmVkIExJUF9PQ0NVUkVEL0xJUF9SRVNFVAogCQkgKiBldmVudCBldGMuIGVhcmxpZXIgaW5kaWNhdGluZyBsb29wIGlzIGRvd24pIHRoZW4gcHJvY2VzcwpAQCAtNTkwLDE4ICs1ODAsMTIgQEAKIAkJYnJlYWs7CiAKIAljYXNlIE1CQV9SU0NOX1VQREFURToJCS8qIFN0YXRlIENoYW5nZSBSZWdpc3RyYXRpb24gKi8KLQkJaWYgKChoYS0+ZmxhZ3MubnBpdl9zdXBwb3J0ZWQpICYmIChoYS0+bnVtX3Zob3N0cykpIHsKLQkJCWZvcl9lYWNoX21hcHBlZF92cF9pZHgoaGEsIGkpIHsKLQkJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHZoYSwgJmhhLT52cF9saXN0LAotCQkJCSAgICB2cF9saXN0KSB7Ci0JCQkJCWlmICgobWJbM10gJiAweGZmKQotCQkJCQkgICAgPT0gdmhhLT52cF9pZHgpIHsKLQkJCQkJCWhhID0gdmhhOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9Ci0JCX0KKwkJLyogQ2hlY2sgaWYgdGhlIFZwb3J0IGhhcyBpc3N1ZWQgYSBTQ1IgKi8KKwkJaWYgKGhhLT5wYXJlbnQgJiYgdGVzdF9iaXQoVlBfU0NSX05FRURFRCwgJmhhLT52cF9mbGFncykpCisJCQlicmVhazsKKwkJLyogT25seSBoYW5kbGUgU0NOcyBmb3Igb3VyIFZwb3J0IGluZGV4LiAqLworCQlpZiAoaGEtPnBhcmVudCAmJiBoYS0+dnBfaWR4ICE9IChtYlszXSAmIDB4ZmYpKQorCQkJYnJlYWs7CiAKIAkJREVCVUcyKHByaW50aygic2NzaSglbGQpOiBBc3luY2hyb25vdXMgUlNDUiBVUERBVEUuXG4iLAogCQkgICAgaGEtPmhvc3Rfbm8pKTsKQEAgLTExMzIsMjUgKzExMTYsNiBAQAogCQkJCWJyZWFrOwogCiAJCQlxbGEyeDAwX2hhbmRsZV9zZW5zZShzcCwgc2Vuc2VfZGF0YSwgc2Vuc2VfbGVuKTsKLQotCQkJLyoKLQkJCSAqIEluIGNhc2Ugb2YgYSBVbmRlcnJ1biBjb25kaXRpb24sIHNldCBib3RoIHRoZSBsc2NzaQotCQkJICogc3RhdHVzIGFuZCB0aGUgY29tcGxldGlvbiBzdGF0dXMgdG8gYXBwcm9wcmlhdGUKLQkJCSAqIHZhbHVlcy4KLQkJCSAqLwotCQkJaWYgKHJlc2lkICYmCi0JCQkgICAgKCh1bnNpZ25lZCkoc2NzaV9idWZmbGVuKGNwKSAtIHJlc2lkKSA8Ci0JCQkgICAgIGNwLT51bmRlcmZsb3cpKSB7Ci0JCQkJREVCVUcyKHFsYV9wcmludGsoS0VSTl9JTkZPLCBoYSwKLQkJCQkgICAgInNjc2koJWxkOiVkOiVkOiVkKTogTWlkLWxheWVyIHVuZGVyZmxvdyAiCi0JCQkJICAgICJkZXRlY3RlZCAoJXggb2YgJXggYnl0ZXMpLi4ucmV0dXJuaW5nICIKLQkJCQkgICAgImVycm9yIHN0YXR1cy5cbiIsIGhhLT5ob3N0X25vLAotCQkJCSAgICBjcC0+ZGV2aWNlLT5jaGFubmVsLCBjcC0+ZGV2aWNlLT5pZCwKLQkJCQkgICAgY3AtPmRldmljZS0+bHVuLCByZXNpZCwKLQkJCQkgICAgc2NzaV9idWZmbGVuKGNwKSkpOwotCi0JCQkJY3AtPnJlc3VsdCA9IERJRF9FUlJPUiA8PCAxNiB8IGxzY3NpX3N0YXR1czsKLQkJCX0KIAkJfSBlbHNlIHsKIAkJCS8qCiAJCQkgKiBJZiBSSVNDIHJlcG9ydHMgdW5kZXJydW4gYW5kIHRhcmdldCBkb2VzIG5vdCByZXBvcnQKQEAgLTE2MzksMTIgKzE2MDQsMTIgQEAKIAloYSA9IGRldl9pZDsKIAlyZWcgPSAmaGEtPmlvYmFzZS0+aXNwMjQ7CiAKLQlzcGluX2xvY2soJmhhLT5oYXJkd2FyZV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZoYS0+aGFyZHdhcmVfbG9jayk7CiAKIAlxbGEyNHh4X3Byb2Nlc3NfcmVzcG9uc2VfcXVldWUoaGEpOwogCVdSVF9SRUdfRFdPUkQoJnJlZy0+aGNjciwgSENDUlhfQ0xSX1JJU0NfSU5UKTsKIAotCXNwaW5fdW5sb2NrKCZoYS0+aGFyZHdhcmVfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZoYS0+aGFyZHdhcmVfbG9jayk7CiAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CkBAIC0xNjYzLDcgKzE2MjgsNyBAQAogCXJlZyA9ICZoYS0+aW9iYXNlLT5pc3AyNDsKIAlzdGF0dXMgPSAwOwogCi0Jc3Bpbl9sb2NrKCZoYS0+aGFyZHdhcmVfbG9jayk7CisJc3Bpbl9sb2NrX2lycSgmaGEtPmhhcmR3YXJlX2xvY2spOwogCWRvIHsKIAkJc3RhdCA9IFJEX1JFR19EV09SRCgmcmVnLT5ob3N0X3N0YXR1cyk7CiAJCWlmIChzdGF0ICYgSFNSWF9SSVNDX1BBVVNFRCkgewpAQCAtMTcxNiw3ICsxNjgxLDcgQEAKIAkJfQogCQlXUlRfUkVHX0RXT1JEKCZyZWctPmhjY3IsIEhDQ1JYX0NMUl9SSVNDX0lOVCk7CiAJfSB3aGlsZSAoMCk7Ci0Jc3Bpbl91bmxvY2soJmhhLT5oYXJkd2FyZV9sb2NrKTsKKwlzcGluX3VubG9ja19pcnEoJmhhLT5oYXJkd2FyZV9sb2NrKTsKIAogCWlmICh0ZXN0X2JpdChNQlhfSU5UUl9XQUlULCAmaGEtPm1ieF9jbWRfZmxhZ3MpICYmCiAJICAgIChzdGF0dXMgJiBNQlhfSU5URVJSVVBUKSAmJiBoYS0+ZmxhZ3MubWJveF9pbnQpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9tYnguYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9tYnguYwppbmRleCAyMTAwNjA0Li4yNTBkMmY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWJ4LmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21ieC5jCkBAIC0yMzAzLDggKzIzMDMsNiBAQAogCXJldHVybiBfX3FsYTI0eHhfaXNzdWVfdG1mKCJMdW4iLCBUQ0ZfTFVOX1JFU0VULCBmY3BvcnQsIGwpOwogfQogCi0jaWYgMAotCiBpbnQKIHFsYTJ4MDBfc3lzdGVtX2Vycm9yKHNjc2lfcWxhX2hvc3RfdCAqaGEpCiB7CkBAIC0yMzEyLDcgKzIzMTAsNyBAQAogCW1ieF9jbWRfdCBtYzsKIAltYnhfY21kX3QgKm1jcCA9ICZtYzsKIAotCWlmICghSVNfRldJMl9DQVBBQkxFKGhhKSkKKwlpZiAoIUlTX1FMQTIzWFgoaGEpICYmICFJU19GV0kyX0NBUEFCTEUoaGEpKQogCQlyZXR1cm4gUUxBX0ZVTkNUSU9OX0ZBSUxFRDsKIAogCURFQlVHMTEocHJpbnRrKCIlcyglbGQpOiBlbnRlcmVkLlxuIiwgX19mdW5jX18sIGhhLT5ob3N0X25vKSk7CkBAIC0yMzM0LDggKzIzMzIsNiBAQAogCXJldHVybiBydmFsOwogfQogCi0jZW5kaWYgIC8qICAwICAqLwotCiAvKioKICAqIHFsYTJ4MDBfc2V0X3NlcmRlc19wYXJhbXMoKSAtCiAgKiBAaGE6IEhBIGNvbnRleHQKQEAgLTI1MDgsNyArMjUwNCw3IEBACiAJCWlmIChtYikKIAkJCW1lbWNweShtYiwgbWNwLT5tYiwgOCAqIHNpemVvZigqbWIpKTsKIAkJaWYgKGR3b3JkcykKLQkJCSpkd29yZHMgPSBtY3AtPm1iWzZdOworCQkJKmR3b3JkcyA9IGJ1ZmZlcnM7CiAJfQogCiAJcmV0dXJuIHJ2YWw7CkBAIC0yODA3LDkgKzI4MDMsOSBAQAogCSAqLwogCW1hcCA9ICh2cF9pbmRleCAtIDEpIC8gODsKIAlwb3MgPSAodnBfaW5kZXggLSAxKSAmIDc7Ci0JZG93bigmaGEtPnZwb3J0X3NlbSk7CisJbXV0ZXhfbG9jaygmaGEtPnZwb3J0X2xvY2spOwogCXZjZS0+dnBfaWR4X21hcFttYXBdIHw9IDEgPDwgcG9zOwotCXVwKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF91bmxvY2soJmhhLT52cG9ydF9sb2NrKTsKIAogCXJ2YWwgPSBxbGEyeDAwX2lzc3VlX2lvY2IoaGEsIHZjZSwgdmNlX2RtYSwgMCk7CiAJaWYgKHJ2YWwgIT0gUUxBX1NVQ0NFU1MpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9taWQuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9taWQuYwppbmRleCBmMmIwNDk3Li42MmEzYWQ2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfbWlkLmMKKysrIGIvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX21pZC5jCkBAIC0zMiwxMiArMzIsMTIgQEAKIAlzY3NpX3FsYV9ob3N0X3QgKmhhID0gdmhhLT5wYXJlbnQ7CiAKIAkvKiBGaW5kIGFuIGVtcHR5IHNsb3QgYW5kIGFzc2lnbiBhbiB2cF9pZCAqLwotCWRvd24oJmhhLT52cG9ydF9zZW0pOworCW11dGV4X2xvY2soJmhhLT52cG9ydF9sb2NrKTsKIAl2cF9pZCA9IGZpbmRfZmlyc3RfemVyb19iaXQoaGEtPnZwX2lkeF9tYXAsIGhhLT5tYXhfbnBpdl92cG9ydHMgKyAxKTsKIAlpZiAodnBfaWQgPiBoYS0+bWF4X25waXZfdnBvcnRzKSB7CiAJCURFQlVHMTUocHJpbnRrICgidnBfaWQgJWQgaXMgYmlnZ2VyIHRoYW4gbWF4LXN1cHBvcnRlZCAlZC5cbiIsCiAJCSAgICB2cF9pZCwgaGEtPm1heF9ucGl2X3Zwb3J0cykpOwotCQl1cCgmaGEtPnZwb3J0X3NlbSk7CisJCW11dGV4X3VubG9jaygmaGEtPnZwb3J0X2xvY2spOwogCQlyZXR1cm4gdnBfaWQ7CiAJfQogCkBAIC00NSw3ICs0NSw3IEBACiAJaGEtPm51bV92aG9zdHMrKzsKIAl2aGEtPnZwX2lkeCA9IHZwX2lkOwogCWxpc3RfYWRkX3RhaWwoJnZoYS0+dnBfbGlzdCwgJmhhLT52cF9saXN0KTsKLQl1cCgmaGEtPnZwb3J0X3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZoYS0+dnBvcnRfbG9jayk7CiAJcmV0dXJuIHZwX2lkOwogfQogCkBAIC01NSwxMiArNTUsMTIgQEAKIAl1aW50MTZfdCB2cF9pZDsKIAlzY3NpX3FsYV9ob3N0X3QgKmhhID0gdmhhLT5wYXJlbnQ7CiAKLQlkb3duKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF9sb2NrKCZoYS0+dnBvcnRfbG9jayk7CiAJdnBfaWQgPSB2aGEtPnZwX2lkeDsKIAloYS0+bnVtX3Zob3N0cy0tOwogCWNsZWFyX2JpdCh2cF9pZCwgaGEtPnZwX2lkeF9tYXApOwogCWxpc3RfZGVsKCZ2aGEtPnZwX2xpc3QpOwotCXVwKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF91bmxvY2soJmhhLT52cG9ydF9sb2NrKTsKIH0KIAogc3RhdGljIHNjc2lfcWxhX2hvc3RfdCAqCkBAIC0xNDUsOSArMTQ1LDkgQEAKIAl9CiAKIAkvKiBJbml0aWFsaXplIHRoZSBuZXcgdnBvcnQgdW5sZXNzIGl0IGlzIGEgcGVyc2lzdGVudCBwb3J0ICovCi0JZG93bigmaGEtPnZwb3J0X3NlbSk7CisJbXV0ZXhfbG9jaygmaGEtPnZwb3J0X2xvY2spOwogCXJldCA9IHFsYTI0eHhfbW9kaWZ5X3ZwX2NvbmZpZyh2aGEpOwotCXVwKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF91bmxvY2soJmhhLT52cG9ydF9sb2NrKTsKIAogCWlmIChyZXQgIT0gUUxBX1NVQ0NFU1MpIHsKIAkJZmNfdnBvcnRfc2V0X3N0YXRlKHZoYS0+ZmNfdnBvcnQsIEZDX1ZQT1JUX0ZBSUxFRCk7CkBAIC00MDYsNiArNDA2LDcgQEAKIAlJTklUX0xJU1RfSEVBRCgmdmhhLT5saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmdmhhLT5mY3BvcnRzKTsKIAlJTklUX0xJU1RfSEVBRCgmdmhhLT52cF9mY3BvcnRzKTsKKwlJTklUX0xJU1RfSEVBRCgmdmhhLT53b3JrX2xpc3QpOwogCiAJdmhhLT5kcGNfZmxhZ3MgPSAwTDsKIAlzZXRfYml0KFJFR0lTVEVSX0ZETUlfTkVFREVELCAmdmhhLT5kcGNfZmxhZ3MpOwpAQCAtNDM3LDEwICs0MzgsMTAgQEAKIAl2aGEtPmZsYWdzLmluaXRfZG9uZSA9IDE7CiAJbnVtX2hvc3RzKys7CiAKLQlkb3duKCZoYS0+dnBvcnRfc2VtKTsKKwltdXRleF9sb2NrKCZoYS0+dnBvcnRfbG9jayk7CiAJc2V0X2JpdCh2aGEtPnZwX2lkeCwgaGEtPnZwX2lkeF9tYXApOwogCWhhLT5jdXJfdnBvcnRfY291bnQrKzsKLQl1cCgmaGEtPnZwb3J0X3NlbSk7CisJbXV0ZXhfdW5sb2NrKCZoYS0+dnBvcnRfbG9jayk7CiAKIAlyZXR1cm4gdmhhOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCmluZGV4IDMyMjNmZDEuLjQ4ZWFhM2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvdm1hbGxvYy5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgva3RocmVhZC5oPgorI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAKICNpbmNsdWRlIDxzY3NpL3Njc2lfdGNxLmg+CiAjaW5jbHVkZSA8c2NzaS9zY3NpY2FtLmg+CkBAIC0xNjMxLDcgKzE2MzIsNyBAQAogCS8qIGxvYWQgdGhlIEYvVywgcmVhZCBwYXJhbWF0ZXJzLCBhbmQgaW5pdCB0aGUgSC9XICovCiAJaGEtPmluc3RhbmNlID0gbnVtX2hvc3RzOwogCi0JaW5pdF9NVVRFWCgmaGEtPnZwb3J0X3NlbSk7CisJbXV0ZXhfaW5pdCgmaGEtPnZwb3J0X2xvY2spOwogCWluaXRfY29tcGxldGlvbigmaGEtPm1ieF9jbWRfY29tcCk7CiAJY29tcGxldGUoJmhhLT5tYnhfY21kX2NvbXApOwogCWluaXRfY29tcGxldGlvbigmaGEtPm1ieF9pbnRyX2NvbXApOwpAQCAtMjE1NiwxMyArMjE1NywxNCBAQAogcWxhMngwMF9wb3N0X3dvcmsoc3RydWN0IHNjc2lfcWxhX2hvc3QgKmhhLCBzdHJ1Y3QgcWxhX3dvcmtfZXZ0ICplLCBpbnQgbG9ja2VkKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc2NzaV9xbGFfaG9zdF90ICpwaGEgPSB0b19xbGFfcGFyZW50KGhhKTsKIAogCWlmICghbG9ja2VkKQotCQlzcGluX2xvY2tfaXJxc2F2ZSgmaGEtPmhhcmR3YXJlX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBoYS0+aGFyZHdhcmVfbG9jaywgZmxhZ3MpOwogCWxpc3RfYWRkX3RhaWwoJmUtPmxpc3QsICZoYS0+d29ya19saXN0KTsKIAlxbGEyeHh4X3dha2VfZHBjKGhhKTsKIAlpZiAoIWxvY2tlZCkKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaGEtPmhhcmR3YXJlX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGhhLT5oYXJkd2FyZV9sb2NrLCBmbGFncyk7CiAJcmV0dXJuIFFMQV9TVUNDRVNTOwogfQogCkBAIC0yMjAyLDEyICsyMjA0LDEzIEBACiBxbGEyeDAwX2RvX3dvcmsoc3RydWN0IHNjc2lfcWxhX2hvc3QgKmhhKQogewogCXN0cnVjdCBxbGFfd29ya19ldnQgKmU7CisJc2NzaV9xbGFfaG9zdF90ICpwaGEgPSB0b19xbGFfcGFyZW50KGhhKTsKIAotCXNwaW5fbG9ja19pcnEoJmhhLT5oYXJkd2FyZV9sb2NrKTsKKwlzcGluX2xvY2tfaXJxKCZwaGEtPmhhcmR3YXJlX2xvY2spOwogCXdoaWxlICghbGlzdF9lbXB0eSgmaGEtPndvcmtfbGlzdCkpIHsKIAkJZSA9IGxpc3RfZW50cnkoaGEtPndvcmtfbGlzdC5uZXh0LCBzdHJ1Y3QgcWxhX3dvcmtfZXZ0LCBsaXN0KTsKIAkJbGlzdF9kZWxfaW5pdCgmZS0+bGlzdCk7Ci0JCXNwaW5fdW5sb2NrX2lycSgmaGEtPmhhcmR3YXJlX2xvY2spOworCQlzcGluX3VubG9ja19pcnEoJnBoYS0+aGFyZHdhcmVfbG9jayk7CiAKIAkJc3dpdGNoIChlLT50eXBlKSB7CiAJCWNhc2UgUUxBX0VWVF9BRU46CkBAIC0yMjIxLDkgKzIyMjQsOSBAQAogCQl9CiAJCWlmIChlLT5mbGFncyAmIFFMQV9FVlRfRkxBR19GUkVFKQogCQkJa2ZyZWUoZSk7Ci0JCXNwaW5fbG9ja19pcnEoJmhhLT5oYXJkd2FyZV9sb2NrKTsKKwkJc3Bpbl9sb2NrX2lycSgmcGhhLT5oYXJkd2FyZV9sb2NrKTsKIAl9Ci0Jc3Bpbl91bmxvY2tfaXJxKCZoYS0+aGFyZHdhcmVfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZwaGEtPmhhcmR3YXJlX2xvY2spOwogfQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTI2MzQsNyArMjYzNyw3IEBACiAjZGVmaW5lIEZXX0ZJTEVfSVNQMjRYWAkicWwyNDAwX2Z3LmJpbiIKICNkZWZpbmUgRldfRklMRV9JU1AyNVhYCSJxbDI1MDBfZncuYmluIgogCi1zdGF0aWMgREVDTEFSRV9NVVRFWChxbGFfZndfbG9jayk7CitzdGF0aWMgREVGSU5FX01VVEVYKHFsYV9md19sb2NrKTsKIAogc3RhdGljIHN0cnVjdCBmd19ibG9iIHFsYV9md19ibG9ic1tGV19CTE9CU10gPSB7CiAJeyAubmFtZSA9IEZXX0ZJTEVfSVNQMjFYWCwgLnNlZ3MgPSB7IDB4MTAwMCwgMCB9LCB9LApAQCAtMjY2NSw3ICsyNjY4LDcgQEAKIAkJYmxvYiA9ICZxbGFfZndfYmxvYnNbRldfSVNQMjVYWF07CiAJfQogCi0JZG93bigmcWxhX2Z3X2xvY2spOworCW11dGV4X2xvY2soJnFsYV9md19sb2NrKTsKIAlpZiAoYmxvYi0+ZncpCiAJCWdvdG8gb3V0OwogCkBAIC0yNjc4LDcgKzI2ODEsNyBAQAogCX0KIAogb3V0OgotCXVwKCZxbGFfZndfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZxbGFfZndfbG9jayk7CiAJcmV0dXJuIGJsb2I7CiB9CiAKQEAgLTI2ODcsMTEgKzI2OTAsMTEgQEAKIHsKIAlpbnQgaWR4OwogCi0JZG93bigmcWxhX2Z3X2xvY2spOworCW11dGV4X2xvY2soJnFsYV9md19sb2NrKTsKIAlmb3IgKGlkeCA9IDA7IGlkeCA8IEZXX0JMT0JTOyBpZHgrKykKIAkJaWYgKHFsYV9md19ibG9ic1tpZHhdLmZ3KQogCQkJcmVsZWFzZV9maXJtd2FyZShxbGFfZndfYmxvYnNbaWR4XS5mdyk7Ci0JdXAoJnFsYV9md19sb2NrKTsKKwltdXRleF91bmxvY2soJnFsYV9md19sb2NrKTsKIH0KIAogc3RhdGljIHBjaV9lcnNfcmVzdWx0X3QKQEAgLTI4NjQsNyArMjg2Nyw4IEBACiAJCXJldHVybiAtRU5PREVWOwogCX0KIAotCXByaW50ayhLRVJOX0lORk8gIlFMb2dpYyBGaWJyZSBDaGFubmVsIEhCQSBEcml2ZXJcbiIpOworCXByaW50ayhLRVJOX0lORk8gIlFMb2dpYyBGaWJyZSBDaGFubmVsIEhCQSBEcml2ZXI6ICVzXG4iLAorCSAgICBxbGEyeDAwX3ZlcnNpb25fc3RyKTsKIAlyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKCZxbGEyeHh4X3BjaV9kcml2ZXIpOwogCWlmIChyZXQpIHsKIAkJa21lbV9jYWNoZV9kZXN0cm95KHNyYl9jYWNoZXApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3ZlcnNpb24uaCBiL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV92ZXJzaW9uLmgKaW5kZXggYWZlYWUyYi4uZDA1OGM4OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX3ZlcnNpb24uaAorKysgYi9kcml2ZXJzL3Njc2kvcWxhMnh4eC9xbGFfdmVyc2lvbi5oCkBAIC03LDcgKzcsNyBAQAogLyoKICAqIERyaXZlciB2ZXJzaW9uCiAgKi8KLSNkZWZpbmUgUUxBMlhYWF9WRVJTSU9OICAgICAgIjguMDIuMDEtazIiCisjZGVmaW5lIFFMQTJYWFhfVkVSU0lPTiAgICAgICI4LjAyLjAxLWs0IgogCiAjZGVmaW5lIFFMQV9EUklWRVJfTUFKT1JfVkVSCTgKICNkZWZpbmUgUUxBX0RSSVZFUl9NSU5PUl9WRVIJMgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwppbmRleCBhODJkMmZlLi5jYmY1NWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV9saWIuYwpAQCAtMjA3LDYgKzIwNywxNSBAQAogCSAqLwogCWJsa19leGVjdXRlX3JxKHJlcS0+cSwgTlVMTCwgcmVxLCAxKTsKIAorCS8qCisJICogU29tZSBkZXZpY2VzIChVU0IgbWFzcy1zdG9yYWdlIGluIHBhcnRpY3VsYXIpIG1heSB0cmFuc2ZlcgorCSAqIGdhcmJhZ2UgZGF0YSB0b2dldGhlciB3aXRoIGEgcmVzaWR1ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIGRhdGEKKwkgKiBpcyBpbnZhbGlkLiAgUHJldmVudCB0aGUgZ2FyYmFnZSBmcm9tIGJlaW5nIG1pc2ludGVycHJldGVkCisJICogYW5kIHByZXZlbnQgc2VjdXJpdHkgbGVha3MgYnkgemVyb2luZyBvdXQgdGhlIGV4Y2VzcyBkYXRhLgorCSAqLworCWlmICh1bmxpa2VseShyZXEtPmRhdGFfbGVuID4gMCAmJiByZXEtPmRhdGFfbGVuIDw9IGJ1ZmZsZW4pKQorCQltZW1zZXQoYnVmZmVyICsgKGJ1ZmZsZW4gLSByZXEtPmRhdGFfbGVuKSwgMCwgcmVxLT5kYXRhX2xlbik7CisKIAlyZXQgPSByZXEtPmVycm9yczsKICBvdXQ6CiAJYmxrX3B1dF9yZXF1ZXN0KHJlcSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2NzaV9zeXNmcy5jIGIvZHJpdmVycy9zY3NpL3Njc2lfc3lzZnMuYwppbmRleCAwNDkxMDNmLi45M2QyYjY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV9zeXNmcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9zY3NpX3N5c2ZzLmMKQEAgLTM1OSw3ICszNTksMTIgQEAKIAogc3RhdGljIGludCBzY3NpX2J1c191ZXZlbnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYpCiB7Ci0Jc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2ID0gdG9fc2NzaV9kZXZpY2UoZGV2KTsKKwlzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNkZXY7CisKKwlpZiAoZGV2LT50eXBlICE9ICZzY3NpX2Rldl90eXBlKQorCQlyZXR1cm4gMDsKKworCXNkZXYgPSB0b19zY3NpX2RldmljZShkZXYpOwogCiAJYWRkX3VldmVudF92YXIoZW52LCAiTU9EQUxJQVM9IiBTQ1NJX0RFVklDRV9NT0RBTElBU19GTVQsIHNkZXYtPnR5cGUpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3Njc2lfdGd0X2lmLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYwppbmRleCBkMjU1N2RiLi4wZTk1MzNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYworKysgYi9kcml2ZXJzL3Njc2kvc2NzaV90Z3RfaWYuYwpAQCAtMjEsNiArMjEsNyBAQAogICovCiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPG5ldC90Y3AuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KICNpbmNsdWRlIDxzY3NpL3Njc2lfY21uZC5oPgpAQCAtMzIxLDYgKzMyMiw3IEBACiB7CiAJdHhfcmluZy50cl9pZHggPSByeF9yaW5nLnRyX2lkeCA9IDA7CiAKKwljeWNsZV9rZXJuZWxfbG9jaygpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2VzLmMgYi9kcml2ZXJzL3Njc2kvc2VzLmMKaW5kZXggNDVkZjgzYi4uMGZlMDMxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3Nlcy5jCisrKyBiL2RyaXZlcnMvc2NzaS9zZXMuYwpAQCAtNjEsNyArNjEsNyBAQAogCXJldHVybiBlcnI7CiB9CiAKLSNkZWZpbmUgU0VTX1RJTUVPVVQgMzAKKyNkZWZpbmUgU0VTX1RJTUVPVVQgKDMwICogSFopCiAjZGVmaW5lIFNFU19SRVRSSUVTIDMKIAogc3RhdGljIGludCBzZXNfcmVjdl9kaWFnKHN0cnVjdCBzY3NpX2RldmljZSAqc2RldiwgaW50IHBhZ2VfY29kZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmMKaW5kZXggZWEwZWRkMS4uZmNjZDJlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NnLmMKKysrIGIvZHJpdmVycy9zY3NpL3NnLmMKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L3NjYXR0ZXJsaXN0Lmg+CiAjaW5jbHVkZSA8bGludXgvYmxrdHJhY2VfYXBpLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KIAogI2luY2x1ZGUgInNjc2kuaCIKICNpbmNsdWRlIDxzY3NpL3Njc2lfZGJnLmg+CkBAIC0xODIsOCArMTgzLDkgQEAKIAkJCSBpbnQgdGFibGVzaXplKTsKIHN0YXRpYyBzc2l6ZV90IHNnX25ld19yZWFkKFNnX2ZkICogc2ZwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsCiAJCQkgICBTZ19yZXF1ZXN0ICogc3JwKTsKLXN0YXRpYyBzc2l6ZV90IHNnX25ld193cml0ZShTZ19mZCAqIHNmcCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAotCQkJICAgIGludCBibG9ja2luZywgaW50IHJlYWRfb25seSwgU2dfcmVxdWVzdCAqKiBvX3NycCk7CitzdGF0aWMgc3NpemVfdCBzZ19uZXdfd3JpdGUoU2dfZmQgKnNmcCwgc3RydWN0IGZpbGUgKmZpbGUsCisJCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsIGludCBibG9ja2luZywKKwkJCWludCByZWFkX29ubHksIFNnX3JlcXVlc3QgKipvX3NycCk7CiBzdGF0aWMgaW50IHNnX2NvbW1vbl93cml0ZShTZ19mZCAqIHNmcCwgU2dfcmVxdWVzdCAqIHNycCwKIAkJCSAgIHVuc2lnbmVkIGNoYXIgKmNtbmQsIGludCB0aW1lb3V0LCBpbnQgYmxvY2tpbmcpOwogc3RhdGljIGludCBzZ191X2lvdmVjKHNnX2lvX2hkcl90ICogaHAsIGludCBzZ19udW0sIGludCBpbmQsCkBAIC0yMDQsNyArMjA2LDYgQEAKIHN0YXRpYyBTZ19yZXF1ZXN0ICpzZ19hZGRfcmVxdWVzdChTZ19mZCAqIHNmcCk7CiBzdGF0aWMgaW50IHNnX3JlbW92ZV9yZXF1ZXN0KFNnX2ZkICogc2ZwLCBTZ19yZXF1ZXN0ICogc3JwKTsKIHN0YXRpYyBpbnQgc2dfcmVzX2luX3VzZShTZ19mZCAqIHNmcCk7Ci1zdGF0aWMgaW50IHNnX2FsbG93X2FjY2Vzcyh1bnNpZ25lZCBjaGFyIG9wY29kZSwgY2hhciBkZXZfdHlwZSk7CiBzdGF0aWMgaW50IHNnX2J1aWxkX2RpcmVjdChTZ19yZXF1ZXN0ICogc3JwLCBTZ19mZCAqIHNmcCwgaW50IGR4ZmVyX2xlbik7CiBzdGF0aWMgU2dfZGV2aWNlICpzZ19nZXRfZGV2KGludCBkZXYpOwogI2lmZGVmIENPTkZJR19TQ1NJX1BST0NfRlMKQEAgLTIyNywxOSArMjI4LDI2IEBACiAJaW50IHJlczsKIAlpbnQgcmV0dmFsOwogCisJbG9ja19rZXJuZWwoKTsKIAlub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsKIAlTQ1NJX0xPR19USU1FT1VUKDMsIHByaW50aygic2dfb3BlbjogZGV2PSVkLCBmbGFncz0weCV4XG4iLCBkZXYsIGZsYWdzKSk7CiAJc2RwID0gc2dfZ2V0X2RldihkZXYpOwotCWlmICgoIXNkcCkgfHwgKCFzZHAtPmRldmljZSkpCisJaWYgKCghc2RwKSB8fCAoIXNkcC0+ZGV2aWNlKSkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5YSU87Ci0JaWYgKHNkcC0+ZGV0YWNoZWQpCisJfQorCWlmIChzZHAtPmRldGFjaGVkKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CisJfQogCiAJLyogVGhpcyBkcml2ZXIncyBtb2R1bGUgY291bnQgYnVtcGVkIGJ5IGZvcHNfZ2V0IGluIDxsaW51eC9mcy5oPiAqLwogCS8qIFByZXZlbnQgdGhlIGRldmljZSBkcml2ZXIgZnJvbSB2YW5pc2hpbmcgd2hpbGUgd2Ugc2xlZXAgKi8KIAlyZXR2YWwgPSBzY3NpX2RldmljZV9nZXQoc2RwLT5kZXZpY2UpOwotCWlmIChyZXR2YWwpCisJaWYgKHJldHZhbCkgeworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiByZXR2YWw7CisJfQogCiAJaWYgKCEoKGZsYWdzICYgT19OT05CTE9DSykgfHwKIAkgICAgICBzY3NpX2Jsb2NrX3doZW5fcHJvY2Vzc2luZ19lcnJvcnMoc2RwLT5kZXZpY2UpKSkgewpAQCAtMjk1LDEwICszMDMsMTIgQEAKIAkJcmV0dmFsID0gLUVOT01FTTsKIAkJZ290byBlcnJvcl9vdXQ7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogICAgICAgZXJyb3Jfb3V0OgogCXNjc2lfZGV2aWNlX3B1dChzZHAtPmRldmljZSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXR2YWw7CiB9CiAKQEAgLTU0NCw3ICs1NTQsNyBAQAogCQlyZXR1cm4gLUVGQVVMVDsKIAlibG9ja2luZyA9ICEoZmlscC0+Zl9mbGFncyAmIE9fTk9OQkxPQ0spOwogCWlmIChvbGRfaGRyLnJlcGx5X2xlbiA8IDApCi0JCXJldHVybiBzZ19uZXdfd3JpdGUoc2ZwLCBidWYsIGNvdW50LCBibG9ja2luZywgMCwgTlVMTCk7CisJCXJldHVybiBzZ19uZXdfd3JpdGUoc2ZwLCBmaWxwLCBidWYsIGNvdW50LCBibG9ja2luZywgMCwgTlVMTCk7CiAJaWYgKGNvdW50IDwgKFNaX1NHX0hFQURFUiArIDYpKQogCQlyZXR1cm4gLUVJTzsJLyogVGhlIG1pbmltdW0gc2NzaSBjb21tYW5kIGxlbmd0aCBpcyA2IGJ5dGVzLiAqLwogCkBAIC02MjEsOCArNjMxLDkgQEAKIH0KIAogc3RhdGljIHNzaXplX3QKLXNnX25ld193cml0ZShTZ19mZCAqIHNmcCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LAotCSAgICAgaW50IGJsb2NraW5nLCBpbnQgcmVhZF9vbmx5LCBTZ19yZXF1ZXN0ICoqIG9fc3JwKQorc2dfbmV3X3dyaXRlKFNnX2ZkICpzZnAsIHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAorCQkgc2l6ZV90IGNvdW50LCBpbnQgYmxvY2tpbmcsIGludCByZWFkX29ubHksCisJCSBTZ19yZXF1ZXN0ICoqb19zcnApCiB7CiAJaW50IGs7CiAJU2dfcmVxdWVzdCAqc3JwOwpAQCAtNjc4LDggKzY4OSw3IEBACiAJCXNnX3JlbW92ZV9yZXF1ZXN0KHNmcCwgc3JwKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQotCWlmIChyZWFkX29ubHkgJiYKLQkgICAgKCFzZ19hbGxvd19hY2Nlc3MoY21uZFswXSwgc2ZwLT5wYXJlbnRkcC0+ZGV2aWNlLT50eXBlKSkpIHsKKwlpZiAocmVhZF9vbmx5ICYmICFibGtfdmVyaWZ5X2NvbW1hbmQoZmlsZSwgY21uZCkpIHsKIAkJc2dfcmVtb3ZlX3JlcXVlc3Qoc2ZwLCBzcnApOwogCQlyZXR1cm4gLUVQRVJNOwogCX0KQEAgLTc5OSw3ICs4MDksNyBAQAogCQkJaWYgKCFhY2Nlc3Nfb2soVkVSSUZZX1dSSVRFLCBwLCBTWl9TR19JT19IRFIpKQogCQkJCXJldHVybiAtRUZBVUxUOwogCQkJcmVzdWx0ID0KLQkJCSAgICBzZ19uZXdfd3JpdGUoc2ZwLCBwLCBTWl9TR19JT19IRFIsCisJCQkgICAgc2dfbmV3X3dyaXRlKHNmcCwgZmlscCwgcCwgU1pfU0dfSU9fSERSLAogCQkJCQkgYmxvY2tpbmcsIHJlYWRfb25seSwgJnNycCk7CiAJCQlpZiAocmVzdWx0IDwgMCkKIAkJCQlyZXR1cm4gcmVzdWx0OwpAQCAtMTA0OCw3ICsxMDU4LDcgQEAKIAogCQkJaWYgKGNvcHlfZnJvbV91c2VyKCZvcGNvZGUsIHNpb2NwLT5kYXRhLCAxKSkKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCWlmICghc2dfYWxsb3dfYWNjZXNzKG9wY29kZSwgc2RwLT5kZXZpY2UtPnR5cGUpKQorCQkJaWYgKCFibGtfdmVyaWZ5X2NvbW1hbmQoZmlscCwgJm9wY29kZSkpCiAJCQkJcmV0dXJuIC1FUEVSTTsKIAkJfQogCQlyZXR1cm4gc2dfc2NzaV9pb2N0bChmaWxwLCBzZHAtPmRldmljZS0+cmVxdWVzdF9xdWV1ZSwgTlVMTCwgcCk7CkBAIC0yNTAyLDMwICsyNTEyLDYgQEAKIAlfX2ZyZWVfcGFnZXMocGFnZSwgb3JkZXIpOwogfQogCi0jaWZuZGVmIE1BSU5URU5BTkNFX0lOX0NNRAotI2RlZmluZSBNQUlOVEVOQU5DRV9JTl9DTUQgMHhhMwotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIGFsbG93X29wc1tdID0geyBURVNUX1VOSVRfUkVBRFksIFJFUVVFU1RfU0VOU0UsCi0JSU5RVUlSWSwgUkVBRF9DQVBBQ0lUWSwgUkVBRF9CVUZGRVIsIFJFQURfNiwgUkVBRF8xMCwgUkVBRF8xMiwKLQlSRUFEXzE2LCBNT0RFX1NFTlNFLCBNT0RFX1NFTlNFXzEwLCBMT0dfU0VOU0UsIFJFUE9SVF9MVU5TLAotCVNFUlZJQ0VfQUNUSU9OX0lOLCBSRUNFSVZFX0RJQUdOT1NUSUMsIFJFQURfTE9ORywgTUFJTlRFTkFOQ0VfSU5fQ01ECi19OwotCi1zdGF0aWMgaW50Ci1zZ19hbGxvd19hY2Nlc3ModW5zaWduZWQgY2hhciBvcGNvZGUsIGNoYXIgZGV2X3R5cGUpCi17Ci0JaW50IGs7Ci0KLQlpZiAoVFlQRV9TQ0FOTkVSID09IGRldl90eXBlKQkvKiBUWVBFX1JPTSBtYXliZSBidXJuZXIgKi8KLQkJcmV0dXJuIDE7Ci0JZm9yIChrID0gMDsgayA8IHNpemVvZiAoYWxsb3dfb3BzKTsgKytrKSB7Ci0JCWlmIChvcGNvZGUgPT0gYWxsb3dfb3BzW2tdKQotCQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotCiAjaWZkZWYgQ09ORklHX1NDU0lfUFJPQ19GUwogc3RhdGljIGludAogc2dfaWRyX21heF9pZChpbnQgaWQsIHZvaWQgKnAsIHZvaWQgKmRhdGEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc3IuYyBiL2RyaXZlcnMvc2NzaS9zci5jCmluZGV4IDdlZTg2ZDRhNy4uMjdmNWJmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3NyLmMKKysrIGIvZHJpdmVycy9zY3NpL3NyLmMKQEAgLTE3OCw2ICsxNzgsOSBAQAogCQl0aGVfcmVzdWx0ID0gc2NzaV9leGVjdXRlX3JlcShzZGV2LCBjbWQsIERNQV9OT05FLCBOVUxMLAogCQkJCQkgICAgICAwLCBzc2hkciwgU1JfVElNRU9VVCwKIAkJCQkJICAgICAgcmV0cmllcy0tKTsKKwkJaWYgKHNjc2lfc2Vuc2VfdmFsaWQoc3NoZHIpICYmCisJCSAgICBzc2hkci0+c2Vuc2Vfa2V5ID09IFVOSVRfQVRURU5USU9OKQorCQkJc2Rldi0+Y2hhbmdlZCA9IDE7CiAKIAl9IHdoaWxlIChyZXRyaWVzID4gMCAmJgogCQkgKCFzY3NpX3N0YXR1c19pc19nb29kKHRoZV9yZXN1bHQpIHx8CkBAIC02NzAsMjQgKzY3MywyMCBAQAogc3RhdGljIHZvaWQgZ2V0X3NlY3RvcnNpemUoc3RydWN0IHNjc2lfY2QgKmNkKQogewogCXVuc2lnbmVkIGNoYXIgY21kWzEwXTsKLQl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJdW5zaWduZWQgY2hhciBidWZmZXJbOF07CiAJaW50IHRoZV9yZXN1bHQsIHJldHJpZXMgPSAzOwogCWludCBzZWN0b3Jfc2l6ZTsKIAlzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcXVldWU7CiAKLQlidWZmZXIgPSBrbWFsbG9jKDUxMiwgR0ZQX0tFUk5FTCB8IEdGUF9ETUEpOwotCWlmICghYnVmZmVyKQotCQlnb3RvIEVub21lbTsKLQogCWRvIHsKIAkJY21kWzBdID0gUkVBRF9DQVBBQ0lUWTsKIAkJbWVtc2V0KCh2b2lkICopICZjbWRbMV0sIDAsIDkpOwotCQltZW1zZXQoYnVmZmVyLCAwLCA4KTsKKwkJbWVtc2V0KGJ1ZmZlciwgMCwgc2l6ZW9mKGJ1ZmZlcikpOwogCiAJCS8qIERvIHRoZSBjb21tYW5kIGFuZCB3YWl0Li4gKi8KIAkJdGhlX3Jlc3VsdCA9IHNjc2lfZXhlY3V0ZV9yZXEoY2QtPmRldmljZSwgY21kLCBETUFfRlJPTV9ERVZJQ0UsCi0JCQkJCSAgICAgIGJ1ZmZlciwgOCwgTlVMTCwgU1JfVElNRU9VVCwKLQkJCQkJICAgICAgTUFYX1JFVFJJRVMpOworCQkJCQkgICAgICBidWZmZXIsIHNpemVvZihidWZmZXIpLCBOVUxMLAorCQkJCQkgICAgICBTUl9USU1FT1VULCBNQVhfUkVUUklFUyk7CiAKIAkJcmV0cmllcy0tOwogCkBAIC03NDIsMTQgKzc0MSw4IEBACiAKIAlxdWV1ZSA9IGNkLT5kZXZpY2UtPnJlcXVlc3RfcXVldWU7CiAJYmxrX3F1ZXVlX2hhcmRzZWN0X3NpemUocXVldWUsIHNlY3Rvcl9zaXplKTsKLW91dDoKLQlrZnJlZShidWZmZXIpOwotCXJldHVybjsKIAotRW5vbWVtOgotCWNkLT5jYXBhY2l0eSA9IDB4MWZmZmZmOwotCWNkLT5kZXZpY2UtPnNlY3Rvcl9zaXplID0gMjA0ODsJLyogQSBndWVzcywganVzdCBpbiBjYXNlICovCi0JZ290byBvdXQ7CisJcmV0dXJuOwogfQogCiBzdGF0aWMgdm9pZCBnZXRfY2FwYWJpbGl0aWVzKHN0cnVjdCBzY3NpX2NkICpjZCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zdC5jIGIvZHJpdmVycy9zY3NpL3N0LmMKaW5kZXggNmU1YTViYi4uNDY4NGNjNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zY3NpL3N0LmMKKysrIGIvZHJpdmVycy9zY3NpL3N0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9jZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGFzbS9kbWEuaD4KQEAgLTExMTMsNyArMTExNCw3IEBACiB9CiAKIAotDC8qIE9wZW4gdGhlIGRldmljZS4gTmVlZHMgdG8gYmUgY2FsbGVkIHdpdGggQktMIG9ubHkgYmVjYXVzZSBvZiBpbmNyZW1lbnRpbmcgdGhlIFNDU0kgaG9zdAorDC8qIE9wZW4gdGhlIGRldmljZS4gTmVlZHMgdG8gdGFrZSB0aGUgQktMIG9ubHkgYmVjYXVzZSBvZiBpbmNyZW1lbnRpbmcgdGhlIFNDU0kgaG9zdAogICAgbW9kdWxlIGNvdW50LiAqLwogc3RhdGljIGludCBzdF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogewpAQCAtMTEyMyw2ICsxMTI0LDcgQEAKIAlpbnQgZGV2ID0gVEFQRV9OUihpbm9kZSk7CiAJY2hhciAqbmFtZTsKIAorCWxvY2tfa2VybmVsKCk7CiAJLyoKIAkgKiBXZSByZWFsbHkgd2FudCB0byBkbyBub25zZWVrYWJsZV9vcGVuKGlub2RlLCBmaWxwKTsgaGVyZSwgYnV0IHNvbWUKIAkgKiB2ZXJzaW9ucyBvZiB0YXIgaW5jb3JyZWN0bHkgY2FsbCBsc2VlayBvbiB0YXBlcyBhbmQgYmFpbCBvdXQgaWYgdGhhdApAQCAtMTEzMCw4ICsxMTMyLDEwIEBACiAJICovCiAJZmlscC0+Zl9tb2RlICY9IH4oRk1PREVfUFJFQUQgfCBGTU9ERV9QV1JJVEUpOwogCi0JaWYgKCEoU1RwID0gc2NzaV90YXBlX2dldChkZXYpKSkKKwlpZiAoIShTVHAgPSBzY3NpX3RhcGVfZ2V0KGRldikpKSB7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTlhJTzsKKwl9CiAKIAl3cml0ZV9sb2NrKCZzdF9kZXZfYXJyX2xvY2spOwogCWZpbHAtPnByaXZhdGVfZGF0YSA9IFNUcDsKQEAgLTExNDAsNiArMTE0NCw3IEBACiAJaWYgKFNUcC0+aW5fdXNlKSB7CiAJCXdyaXRlX3VubG9jaygmc3RfZGV2X2Fycl9sb2NrKTsKIAkJc2NzaV90YXBlX3B1dChTVHApOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCURFQiggcHJpbnRrKFNUX0RFQl9NU0cgIiVzOiBEZXZpY2UgYWxyZWFkeSBpbiB1c2UuXG4iLCBuYW1lKTsgKQogCQlyZXR1cm4gKC1FQlVTWSk7CiAJfQpAQCAtMTE4OCwxMiArMTE5MywxNCBAQAogCQkJcmV0dmFsID0gKC1FSU8pOwogCQlnb3RvIGVycl9vdXQ7CiAJfQorCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogIGVycl9vdXQ6CiAJbm9ybWFsaXplX2J1ZmZlcihTVHAtPmJ1ZmZlcik7CiAJU1RwLT5pbl91c2UgPSAwOwogCXNjc2lfdGFwZV9wdXQoU1RwKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldHZhbDsKIAogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvODI1MC5jIGIvZHJpdmVycy9zZXJpYWwvODI1MC5jCmluZGV4IDE0MDBlYTYuLmJlOTVlNTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsLzgyNTAuYworKysgYi9kcml2ZXJzL3NlcmlhbC84MjUwLmMKQEAgLTQzLDcgKzQzLDYgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9pcnEuaD4KLSNpbmNsdWRlIDxhc20vc2VyaWFsLmg+CiAKICNpbmNsdWRlICI4MjUwLmgiCiAKQEAgLTkzLDYgKzkyLDcgQEAKICAqLwogI2RlZmluZSBDT05GSUdfSFVCNiAxCiAKKyNpbmNsdWRlIDxhc20vc2VyaWFsLmg+CiAvKgogICogU0VSSUFMX1BPUlRfREZOUyB0ZWxscyB1cyBhYm91dCBidWlsdC1pbiBwb3J0cyB0aGF0IGhhdmUgbm8KICAqIHN0YW5kYXJkIGVudW1lcmF0aW9uIG1lY2hhbmlzbS4gICBQbGF0Zm9ybXMgdGhhdCBjYW4gZmluZCBhbGwKQEAgLTE1NDcsOCArMTU0Nyw2IEBACiAJCWktPmhlYWQgPSAmdXAtPmxpc3Q7CiAJCXNwaW5fdW5sb2NrX2lycSgmaS0+bG9jayk7CiAKLQkJaXJxX2ZsYWdzIHw9IFNFUklBTF9FWFRSQV9JUlFfRkxBR1M7Ci0KIAkJcmV0ID0gcmVxdWVzdF9pcnEodXAtPnBvcnQuaXJxLCBzZXJpYWw4MjUwX2ludGVycnVwdCwKIAkJCQkgIGlycV9mbGFncywgInNlcmlhbCIsIGkpOwogCQlpZiAocmV0IDwgMCkKQEAgLTI2MjUsNiArMjYyMyw5IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IHNlcmlhbDgyNTBfY29uc29sZV9pbml0KHZvaWQpCiB7CisJaWYgKG5yX3VhcnRzID4gVUFSVF9OUikKKwkJbnJfdWFydHMgPSBVQVJUX05SOworCiAJc2VyaWFsODI1MF9pc2FfaW5pdF9wb3J0cygpOwogCXJlZ2lzdGVyX2NvbnNvbGUoJnNlcmlhbDgyNTBfY29uc29sZSk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC84MjUwLmggYi9kcml2ZXJzL3NlcmlhbC84MjUwLmgKaW5kZXggYTEwYTQwYy4uOTFiZDI4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvODI1MC5oCisrKyBiL2RyaXZlcnMvc2VyaWFsLzgyNTAuaApAQCAtNzgsOCArNzgsMyBAQAogI2Vsc2UKICNkZWZpbmUgQUxQSEFfS0xVREdFX01DUiAwCiAjZW5kaWYKLQotI2lmbmRlZiBTRVJJQUxfRVhUUkFfSVJRX0ZMQUdTCi0jZGVmaW5lIFNFUklBTF9FWFRSQV9JUlFfRkxBR1MgMAotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsLzgyNTBfcGNpLmMgYi9kcml2ZXJzL3NlcmlhbC84MjUwX3BjaS5jCmluZGV4IDUzZmExOWMuLjc4OGMzNTU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC84MjUwX3BjaS5jCisrKyBiL2RyaXZlcnMvc2VyaWFsLzgyNTBfcGNpLmMKQEAgLTI2MDIsNyArMjYwMiwxMiBAQAogCXsJUENJX1ZFTkRPUl9JRF9JTlRBU0hJRUxELCBQQ0lfREVWSUNFX0lEX0lOVEFTSElFTERfSVMyMDAsCiAJCVBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsCS8qIDEzNWEuMDgxMSAqLwogCQlwYm5fYjJfMl8xMTUyMDAgfSwKLQorCS8qCisJICogSW50YVNoaWVsZCBJUy00MDAKKwkgKi8KKwl7CVBDSV9WRU5ET1JfSURfSU5UQVNISUVMRCwgUENJX0RFVklDRV9JRF9JTlRBU0hJRUxEX0lTNDAwLAorCQlQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAgICAvKiAxMzVhLjBkYzAgKi8KKwkJcGJuX2IyXzRfMTE1MjAwIH0sCiAJLyoKIAkgKiBQZXJsZSBQQ0ktUkFTIGNhcmRzCiAJICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9LY29uZmlnIGIvZHJpdmVycy9zZXJpYWwvS2NvbmZpZwppbmRleCA5YmM0Mjc2Li4xOGNhOTA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvc2VyaWFsL0tjb25maWcKQEAgLTQ0OCwyMiArNDQ4LDI3IEBACiAJICB5b3VyIGJvb3QgbG9hZGVyIChsaWxvIG9yIGxvYWRsaW4pIGFib3V0IGhvdyB0byBwYXNzIG9wdGlvbnMgdG8gdGhlCiAJICBrZXJuZWwgYXQgYm9vdCB0aW1lLikKIAotY29uZmlnIFNFUklBTF9TM0MyNDEwCi0JdHJpc3RhdGUgIlNhbXN1bmcgUzNDMjQxMC9TM0MyNDQwL1MzQzI0NDIvUzNDMjQxMiBTZXJpYWwgcG9ydCBzdXBwb3J0IgotCWRlcGVuZHMgb24gQVJNICYmIEFSQ0hfUzNDMjQxMAotCXNlbGVjdCBTRVJJQUxfQ09SRQorY29uZmlnIFNFUklBTF9TQU1TVU5HCisJdHJpc3RhdGUgIlNhbXN1bmcgU29DIHNlcmlhbCBzdXBwb3J0IgorCWRlcGVuZHMgb24gQVJNICYmIFBMQVRfUzNDMjRYWAogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIHRoZSBvbi1jaGlwIFVBUlRzIG9uIHRoZSBTYW1zdW5nIFMzQzI0WFggc2VyaWVzIENQVXMsCiAJICBwcm92aWRpbmcgL2Rldi90dHlTQUMwLCAxIGFuZCAyIChub3RlLCBzb21lIG1hY2hpbmVzIG1heSBub3QKIAkgIHByb3ZpZGUgYWxsIG9mIHRoZXNlIHBvcnRzLCBkZXBlbmRpbmcgb24gaG93IHRoZSBzZXJpYWwgcG9ydAogCSAgcGlucyBhcmUgY29uZmlndXJlZC4KIAotCSAgQ3VycmVudGx5IHRoaXMgZHJpdmVyIHN1cHBvcnRzIHRoZSBVQVJUUyBvbiB0aGUgUzNDMjQxMCwgUzNDMjQ0MCwKLQkgIFMzQzI0NDIsIFMzQzI0MTIgYW5kIFMzQzI0MTMgQ1BVcy4KK2NvbmZpZyBTRVJJQUxfU0FNU1VOR19ERUJVRworCWJvb2wgIlNhbXN1bmcgU29DIHNlcmlhbCBkZWJ1ZyIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HCisJaGVscAorCSAgQWRkIHN1cHBvcnQgZm9yIGRlYnVnZ2luZyB0aGUgc2VyaWFsIGRyaXZlci4gU2luY2UgdGhpcyBpcworCSAgZ2VuZXJhbGx5IGJlaW5nIHVzZWQgYXMgYSBjb25zb2xlLCB3ZSB1c2Ugb3VyIG93biBvdXRwdXQKKwkgIHJvdXRpbmVzIHRoYXQgZ28gdmlhIHRoZSBsb3ctbGV2ZWwgZGVidWcgcHJpbnRhc2NpaSgpCisJICBmdW5jdGlvbi4KIAotY29uZmlnIFNFUklBTF9TM0MyNDEwX0NPTlNPTEUKLQlib29sICJTdXBwb3J0IGZvciBjb25zb2xlIG9uIFMzQzI0MTAgc2VyaWFsIHBvcnQiCi0JZGVwZW5kcyBvbiBTRVJJQUxfUzNDMjQxMD15Citjb25maWcgU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCWJvb2wgIlN1cHBvcnQgZm9yIGNvbnNvbGUgb24gU2Ftc3VuZyBTb0Mgc2VyaWFsIHBvcnQiCisJZGVwZW5kcyBvbiBTRVJJQUxfU0FNU1VORz15CiAJc2VsZWN0IFNFUklBTF9DT1JFX0NPTlNPTEUKIAloZWxwCiAJICBBbGxvdyBzZWxlY3Rpb24gb2YgdGhlIFMzQzI0WFggb24tYm9hcmQgc2VyaWFsIHBvcnRzIGZvciB1c2UgYXMKQEAgLTQ3Niw2ICs0ODEsMzcgQEAKIAkgIHlvdXIgYm9vdCBsb2FkZXIgYWJvdXQgaG93IHRvIHBhc3Mgb3B0aW9ucyB0byB0aGUga2VybmVsIGF0CiAJICBib290IHRpbWUuKQogCitjb25maWcgU0VSSUFMX1MzQzI0MDAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDEwIFNlcmlhbCBwb3J0IHN1cHBvcnQiCisJZGVwZW5kcyBvbiBBUk0gJiYgU0VSSUFMX1NBTVNVTkcgJiYgQ1BVX1MzQzI0MDAKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0MDAKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDAwIFNvQworCitjb25maWcgU0VSSUFMX1MzQzI0MTAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDEwIFNlcmlhbCBwb3J0IHN1cHBvcnQiCisJZGVwZW5kcyBvbiBTRVJJQUxfU0FNU1VORyAmJiBDUFVfUzNDMjQxMAorCWRlZmF1bHQgeSBpZiBDUFVfUzNDMjQxMAorCWhlbHAKKwkgIFNlcmlhbCBwb3J0IHN1cHBvcnQgZm9yIHRoZSBTYW1zdW5nIFMzQzI0MTAgU29DCisKK2NvbmZpZyBTRVJJQUxfUzNDMjQxMgorCXRyaXN0YXRlICJTYW1zdW5nIFMzQzI0MTIvUzNDMjQxMyBTZXJpYWwgcG9ydCBzdXBwb3J0IgorCWRlcGVuZHMgb24gU0VSSUFMX1NBTVNVTkcgJiYgQ1BVX1MzQzI0MTIKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0MTIKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDEyIGFuZCBTM0MyNDEzIFNvQworCitjb25maWcgU0VSSUFMX1MzQzI0NDAKKwl0cmlzdGF0ZSAiU2Ftc3VuZyBTM0MyNDQwL1MzQzI0NDIgU2VyaWFsIHBvcnQgc3VwcG9ydCIKKwlkZXBlbmRzIG9uIFNFUklBTF9TQU1TVU5HICYmIChDUFVfUzNDMjQ0MCB8fCBDUFVfUzNDMjQ0MikKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0NDAKKwlkZWZhdWx0IHkgaWYgQ1BVX1MzQzI0NDIKKwloZWxwCisJICBTZXJpYWwgcG9ydCBzdXBwb3J0IGZvciB0aGUgU2Ftc3VuZyBTM0MyNDQwIGFuZCBTM0MyNDQyIFNvQworCisKKwogY29uZmlnIFNFUklBTF9EWgogCWJvb2wgIkRFQ3N0YXRpb24gRFogc2VyaWFsIGRyaXZlciIKIAlkZXBlbmRzIG9uIE1BQ0hfREVDU1RBVElPTiAmJiAzMkJJVApAQCAtNzUzLDcgKzc4OSw3IEBACiAKIGNvbmZpZyBTRVJJQUxfSU1YCiAJYm9vbCAiSU1YIHNlcmlhbCBwb3J0IHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBBUk0gJiYgQVJDSF9JTVgKKwlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9JTVggfHwgQVJDSF9NWEMpCiAJc2VsZWN0IFNFUklBTF9DT1JFCiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBtYWNoaW5lIGJhc2VkIG9uIGEgTW90b3JvbGEgSU1YIENQVSB5b3UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL01ha2VmaWxlIGIvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKaW5kZXggMGQ5YzA5Yi4uN2Q4NWMxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKQEAgLTI4LDcgKzI4LDExIEBACiBvYmotJChDT05GSUdfU0VSSUFMX1NBMTEwMCkgKz0gc2ExMTAwLm8KIG9iai0kKENPTkZJR19TRVJJQUxfQkZJTikgKz0gYmZpbl81eHgubwogb2JqLSQoQ09ORklHX1NFUklBTF9CRklOX1NQT1JUKSArPSBiZmluX3Nwb3J0X3VhcnQubworb2JqLSQoQ09ORklHX1NFUklBTF9TQU1TVU5HKSArPSBzYW1zdW5nLm8KK29iai0kKENPTkZJR19TRVJJQUxfUzNDMjQwMCkgKz0gczNjMjQwMC5vCiBvYmotJChDT05GSUdfU0VSSUFMX1MzQzI0MTApICs9IHMzYzI0MTAubworb2JqLSQoQ09ORklHX1NFUklBTF9TM0MyNDEyKSArPSBzM2MyNDEyLm8KK29iai0kKENPTkZJR19TRVJJQUxfUzNDMjQ0MCkgKz0gczNjMjQ0MC5vCiBvYmotJChDT05GSUdfU0VSSUFMX1NVTkNPUkUpICs9IHN1bmNvcmUubwogb2JqLSQoQ09ORklHX1NFUklBTF9TVU5IVikgKz0gc3VuaHYubwogb2JqLSQoQ09ORklHX1NFUklBTF9TVU5aSUxPRykgKz0gc3Vuemlsb2cubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMgYi9kcml2ZXJzL3NlcmlhbC9hdG1lbF9zZXJpYWwuYwppbmRleCBjMDY1YTcwLi42YWVlZjIyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKQEAgLTEzMTgsNyArMTMxOCw3IEBACiAJICogSWYgdGhlIGJhdWQgcmF0ZSBnZW5lcmF0b3IgaXNuJ3QgcnVubmluZywgdGhlIHBvcnQgd2Fzbid0CiAJICogaW5pdGlhbGl6ZWQgYnkgdGhlIGJvb3QgbG9hZGVyLgogCSAqLwotCXF1b3QgPSBVQVJUX0dFVF9CUkdSKHBvcnQpOworCXF1b3QgPSBVQVJUX0dFVF9CUkdSKHBvcnQpICYgQVRNRUxfVVNfQ0Q7CiAJaWYgKCFxdW90KQogCQlyZXR1cm47CiAKQEAgLTE0MzksMTQgKzE0MzksMjkgQEAKIH07CiAKICNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBib29sIGF0bWVsX3NlcmlhbF9jbGtfd2lsbF9zdG9wKHZvaWQpCit7CisjaWZkZWYgQ09ORklHX0FSQ0hfQVQ5MQorCXJldHVybiBhdDkxX3N1c3BlbmRfZW50ZXJpbmdfc2xvd19jbG9jaygpOworI2Vsc2UKKwlyZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogc3RhdGljIGludCBhdG1lbF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAogCQkJCXBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKIAlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IGF0bWVsX3VhcnRfcG9ydCAqYXRtZWxfcG9ydCA9IHRvX2F0bWVsX3VhcnRfcG9ydChwb3J0KTsKIAorCWlmIChhdG1lbF9pc19jb25zb2xlX3BvcnQocG9ydCkgJiYgY29uc29sZV9zdXNwZW5kX2VuYWJsZWQpIHsKKwkJLyogRHJhaW4gdGhlIFRYIHNoaWZ0ZXIgKi8KKwkJd2hpbGUgKCEoVUFSVF9HRVRfQ1NSKHBvcnQpICYgQVRNRUxfVVNfVFhFTVBUWSkpCisJCQljcHVfcmVsYXgoKTsKKwl9CisKIAlpZiAoZGV2aWNlX21heV93YWtldXAoJnBkZXYtPmRldikKLQkgICAgJiYgIWF0OTFfc3VzcGVuZF9lbnRlcmluZ19zbG93X2Nsb2NrKCkpCisJICAgICYmICFhdG1lbF9zZXJpYWxfY2xrX3dpbGxfc3RvcCgpKQogCQllbmFibGVfaXJxX3dha2UocG9ydC0+aXJxKTsKIAllbHNlIHsKIAkJdWFydF9zdXNwZW5kX3BvcnQoJmF0bWVsX3VhcnQsIHBvcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvYmZpbl81eHguYyBiL2RyaXZlcnMvc2VyaWFsL2JmaW5fNXh4LmMKaW5kZXggZDZiNGVhZC4uZmQ5YmI3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvYmZpbl81eHguYworKysgYi9kcml2ZXJzL3NlcmlhbC9iZmluXzV4eC5jCkBAIC00OSw2ICs0OSw3IEBACiAjZGVmaW5lIERNQV9SWF9ZQ09VTlQJCShQQUdFX1NJWkUgLyBETUFfUlhfWENPVU5UKQogCiAjZGVmaW5lIERNQV9SWF9GTFVTSF9KSUZGSUVTCShIWiAvIDUwKQorI2RlZmluZSBDVFNfQ0hFQ0tfSklGRklFUwkoSFogLyA1MCkKIAogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9ETUEKIHN0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX2RtYV90eF9jaGFycyhzdHJ1Y3QgYmZpbl9zZXJpYWxfcG9ydCAqdWFydCk7CkBAIC0yOTAsMTEgKzI5MSw2IEBACiB7CiAJc3RydWN0IGNpcmNfYnVmICp4bWl0ID0gJnVhcnQtPnBvcnQuaW5mby0+eG1pdDsKIAotCWlmICh1YXJ0LT5wb3J0LnhfY2hhcikgewotCQlVQVJUX1BVVF9DSEFSKHVhcnQsIHVhcnQtPnBvcnQueF9jaGFyKTsKLQkJdWFydC0+cG9ydC5pY291bnQudHgrKzsKLQkJdWFydC0+cG9ydC54X2NoYXIgPSAwOwotCX0KIAkvKgogCSAqIENoZWNrIHRoZSBtb2RlbSBjb250cm9sIGxpbmVzIGJlZm9yZQogCSAqIHRyYW5zbWl0dGluZyBhbnl0aGluZy4KQEAgLTMwNiw2ICszMDIsMTIgQEAKIAkJcmV0dXJuOwogCX0KIAorCWlmICh1YXJ0LT5wb3J0LnhfY2hhcikgeworCQlVQVJUX1BVVF9DSEFSKHVhcnQsIHVhcnQtPnBvcnQueF9jaGFyKTsKKwkJdWFydC0+cG9ydC5pY291bnQudHgrKzsKKwkJdWFydC0+cG9ydC54X2NoYXIgPSAwOworCX0KKwogCXdoaWxlICgoVUFSVF9HRVRfTFNSKHVhcnQpICYgVEhSRSkgJiYgeG1pdC0+dGFpbCAhPSB4bWl0LT5oZWFkKSB7CiAJCVVBUlRfUFVUX0NIQVIodWFydCwgeG1pdC0+YnVmW3htaXQtPnRhaWxdKTsKIAkJeG1pdC0+dGFpbCA9ICh4bWl0LT50YWlsICsgMSkgJiAoVUFSVF9YTUlUX1NJWkUgLSAxKTsKQEAgLTM0NSwxNSArMzQ3LDYgQEAKIH0KICNlbmRpZgogCi0jaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotc3RhdGljIHZvaWQgYmZpbl9zZXJpYWxfZG9fd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCi17Ci0Jc3RydWN0IGJmaW5fc2VyaWFsX3BvcnQgKnVhcnQgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGJmaW5fc2VyaWFsX3BvcnQsIGN0c193b3JrcXVldWUpOwotCi0JYmZpbl9zZXJpYWxfbWN0cmxfY2hlY2sodWFydCk7Ci19Ci0jZW5kaWYKLQogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9ETUEKIHN0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX2RtYV90eF9jaGFycyhzdHJ1Y3QgYmZpbl9zZXJpYWxfcG9ydCAqdWFydCkKIHsKQEAgLTM2MSw2ICszNTQsMTIgQEAKIAogCXVhcnQtPnR4X2RvbmUgPSAwOwogCisJLyoKKwkgKiBDaGVjayB0aGUgbW9kZW0gY29udHJvbCBsaW5lcyBiZWZvcmUKKwkgKiB0cmFuc21pdHRpbmcgYW55dGhpbmcuCisJICovCisJYmZpbl9zZXJpYWxfbWN0cmxfY2hlY2sodWFydCk7CisKIAlpZiAodWFydF9jaXJjX2VtcHR5KHhtaXQpIHx8IHVhcnRfdHhfc3RvcHBlZCgmdWFydC0+cG9ydCkpIHsKIAkJdWFydC0+dHhfY291bnQgPSAwOwogCQl1YXJ0LT50eF9kb25lID0gMTsKQEAgLTM3MywxMiArMzcyLDYgQEAKIAkJdWFydC0+cG9ydC54X2NoYXIgPSAwOwogCX0KIAotCS8qCi0JICogQ2hlY2sgdGhlIG1vZGVtIGNvbnRyb2wgbGluZXMgYmVmb3JlCi0JICogdHJhbnNtaXR0aW5nIGFueXRoaW5nLgotCSAqLwotCWJmaW5fc2VyaWFsX21jdHJsX2NoZWNrKHVhcnQpOwotCiAJdWFydC0+dHhfY291bnQgPSBDSVJDX0NOVCh4bWl0LT5oZWFkLCB4bWl0LT50YWlsLCBVQVJUX1hNSVRfU0laRSk7CiAJaWYgKHVhcnQtPnR4X2NvdW50ID4gKFVBUlRfWE1JVF9TSVpFIC0geG1pdC0+dGFpbCkpCiAJCXVhcnQtPnR4X2NvdW50ID0gVUFSVF9YTUlUX1NJWkUgLSB4bWl0LT50YWlsOwpAQCAtNTMwLDExICs1MjMsNyBAQAogCWlmICh1YXJ0LT5jdHNfcGluIDwgMCkKIAkJcmV0dXJuIFRJT0NNX0NUUyB8IFRJT0NNX0RTUiB8IFRJT0NNX0NBUjsKIAotIyBpZmRlZiBCRjU0eAotCWlmIChVQVJUX0dFVF9NU1IodWFydCkgJiBDVFMpCi0jIGVsc2UKLQlpZiAoZ3Bpb19nZXRfdmFsdWUodWFydC0+Y3RzX3BpbikpCi0jIGVuZGlmCisJaWYgKFVBUlRfR0VUX0NUUyh1YXJ0KSkKIAkJcmV0dXJuIFRJT0NNX0RTUiB8IFRJT0NNX0NBUjsKIAllbHNlCiAjZW5kaWYKQEAgLTU0OSwxNyArNTM4LDkgQEAKIAkJcmV0dXJuOwogCiAJaWYgKG1jdHJsICYgVElPQ01fUlRTKQotIyBpZmRlZiBCRjU0eAotCQlVQVJUX1BVVF9NQ1IodWFydCwgVUFSVF9HRVRfTUNSKHVhcnQpICYgfk1SVFMpOwotIyBlbHNlCi0JCWdwaW9fc2V0X3ZhbHVlKHVhcnQtPnJ0c19waW4sIDApOwotIyBlbmRpZgorCQlVQVJUX0NMRUFSX1JUUyh1YXJ0KTsKIAllbHNlCi0jIGlmZGVmIEJGNTR4Ci0JCVVBUlRfUFVUX01DUih1YXJ0LCBVQVJUX0dFVF9NQ1IodWFydCkgfCBNUlRTKTsKLSMgZWxzZQotCQlncGlvX3NldF92YWx1ZSh1YXJ0LT5ydHNfcGluLCAxKTsKLSMgZW5kaWYKKwkJVUFSVF9TRVRfUlRTKHVhcnQpOwogI2VuZGlmCiB9CiAKQEAgLTU3Nyw3ICs1NTgsMTAgQEAKIAl1YXJ0X2hhbmRsZV9jdHNfY2hhbmdlKCZ1YXJ0LT5wb3J0LCBzdGF0dXMgJiBUSU9DTV9DVFMpOwogCWlmICghKHN0YXR1cyAmIFRJT0NNX0NUUykpIHsKIAkJdHR5LT5od19zdG9wcGVkID0gMTsKLQkJc2NoZWR1bGVfd29yaygmdWFydC0+Y3RzX3dvcmtxdWV1ZSk7CisJCXVhcnQtPmN0c190aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpKHVhcnQpOworCQl1YXJ0LT5jdHNfdGltZXIuZnVuY3Rpb24gPSAodm9pZCAqKWJmaW5fc2VyaWFsX21jdHJsX2NoZWNrOworCQl1YXJ0LT5jdHNfdGltZXIuZXhwaXJlcyA9IGppZmZpZXMgKyBDVFNfQ0hFQ0tfSklGRklFUzsKKwkJYWRkX3RpbWVyKCYodWFydC0+Y3RzX3RpbWVyKSk7CiAJfSBlbHNlIHsKIAkJdHR5LT5od19zdG9wcGVkID0gMDsKIAl9CkBAIC03NTIsMTEgKzczNiw3IEBACiAKIAkvKiBEaXNhYmxlIFVBUlQgKi8KIAlpZXIgPSBVQVJUX0dFVF9JRVIodWFydCk7Ci0jaWZkZWYgQ09ORklHX0JGNTR4Ci0JVUFSVF9DTEVBUl9JRVIodWFydCwgMHhGKTsKLSNlbHNlCi0JVUFSVF9QVVRfSUVSKHVhcnQsIDApOwotI2VuZGlmCisJVUFSVF9ESVNBQkxFX0lOVFModWFydCk7CiAKIAkvKiBTZXQgRExBQiBpbiBMQ1IgdG8gQWNjZXNzIERMTCBhbmQgRExIICovCiAJVUFSVF9TRVRfRExBQih1YXJ0KTsKQEAgLTc3MSwxMSArNzUxLDcgQEAKIAlVQVJUX1BVVF9MQ1IodWFydCwgbGNyKTsKIAogCS8qIEVuYWJsZSBVQVJUICovCi0jaWZkZWYgQ09ORklHX0JGNTR4Ci0JVUFSVF9TRVRfSUVSKHVhcnQsIGllcik7Ci0jZWxzZQotCVVBUlRfUFVUX0lFUih1YXJ0LCBpZXIpOwotI2VuZGlmCisJVUFSVF9FTkFCTEVfSU5UUyh1YXJ0LCBpZXIpOwogCiAJdmFsID0gVUFSVF9HRVRfR0NUTCh1YXJ0KTsKIAl2YWwgfD0gVUNFTjsKQEAgLTgzMywxNSArODA5LDE1IEBACiAgKiBFbmFibGUgdGhlIElyREEgZnVuY3Rpb24gaWYgdHR5LT5sZGlzYy5udW0gaXMgTl9JUkRBLgogICogSW4gb3RoZXIgY2FzZXMsIGRpc2FibGUgSXJEQSBmdW5jdGlvbi4KICAqLwotc3RhdGljIHZvaWQgYmZpbl9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKK3N0YXRpYyB2b2lkIGJmaW5fc2VyaWFsX3NldF9sZGlzYyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQogewotCWludCBsaW5lID0gdHR5LT5pbmRleDsKKwlpbnQgbGluZSA9IHBvcnQtPmxpbmU7CiAJdW5zaWduZWQgc2hvcnQgdmFsOwogCi0JaWYgKGxpbmUgPj0gdHR5LT5kcml2ZXItPm51bSkKKwlpZiAobGluZSA+PSBwb3J0LT5pbmZvLT50dHktPmRyaXZlci0+bnVtKQogCQlyZXR1cm47CiAKLQlzd2l0Y2ggKHR0eS0+bGRpc2MubnVtKSB7CisJc3dpdGNoIChwb3J0LT5pbmZvLT50dHktPmxkaXNjLm51bSkgewogCWNhc2UgTl9JUkRBOgogCQl2YWwgPSBVQVJUX0dFVF9HQ1RMKCZiZmluX3NlcmlhbF9wb3J0c1tsaW5lXSk7CiAJCXZhbCB8PSAoSVJFTiB8IFJQT0xDKTsKQEAgLTg2Niw2ICs4NDIsNyBAQAogCS5zdGFydHVwCT0gYmZpbl9zZXJpYWxfc3RhcnR1cCwKIAkuc2h1dGRvd24JPSBiZmluX3NlcmlhbF9zaHV0ZG93biwKIAkuc2V0X3Rlcm1pb3MJPSBiZmluX3NlcmlhbF9zZXRfdGVybWlvcywKKwkuc2V0X2xkaXNjCT0gYmZpbl9zZXJpYWxfc2V0X2xkaXNjLAogCS50eXBlCQk9IGJmaW5fc2VyaWFsX3R5cGUsCiAJLnJlbGVhc2VfcG9ydAk9IGJmaW5fc2VyaWFsX3JlbGVhc2VfcG9ydCwKIAkucmVxdWVzdF9wb3J0CT0gYmZpbl9zZXJpYWxfcmVxdWVzdF9wb3J0LApAQCAtOTA0LDcgKzg4MSw3IEBACiAJCWluaXRfdGltZXIoJihiZmluX3NlcmlhbF9wb3J0c1tpXS5yeF9kbWFfdGltZXIpKTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQkJSU5JVF9XT1JLKCZiZmluX3NlcmlhbF9wb3J0c1tpXS5jdHNfd29ya3F1ZXVlLCBiZmluX3NlcmlhbF9kb193b3JrKTsKKwkJaW5pdF90aW1lcigmKGJmaW5fc2VyaWFsX3BvcnRzW2ldLmN0c190aW1lcikpOwogCQliZmluX3NlcmlhbF9wb3J0c1tpXS5jdHNfcGluCSAgICA9CiAJCQliZmluX3NlcmlhbF9yZXNvdXJjZVtpXS51YXJ0X2N0c19waW47CiAJCWJmaW5fc2VyaWFsX3BvcnRzW2ldLnJ0c19waW4JICAgID0KQEAgLTEyMDYsNyArMTE4Myw2IEBACiAKIAlyZXQgPSB1YXJ0X3JlZ2lzdGVyX2RyaXZlcigmYmZpbl9zZXJpYWxfcmVnKTsKIAlpZiAocmV0ID09IDApIHsKLQkJYmZpbl9zZXJpYWxfcmVnLnR0eV9kcml2ZXItPnNldF9sZGlzYyA9IGJmaW5fc2V0X2xkaXNjOwogCQlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmJmaW5fc2VyaWFsX2RyaXZlcik7CiAJCWlmIChyZXQpIHsKIAkJCXByX2RlYnVnKCJ1YXJ0IHJlZ2lzdGVyIGZhaWxlZFxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9pbXguYyBiL2RyaXZlcnMvc2VyaWFsL2lteC5jCmluZGV4IDVhMzc1YmYuLjY0YWNiMzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL2lteC5jCisrKyBiL2RyaXZlcnMvc2VyaWFsL2lteC5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgpAQCAtNjEsNiArNjIsMTEgQEAKICNkZWZpbmUgVUJJUiAgMHhhNCAvKiBCUk0gSW5jcmVtZW50YWwgUmVnaXN0ZXIgKi8KICNkZWZpbmUgVUJNUiAgMHhhOCAvKiBCUk0gTW9kdWxhdG9yIFJlZ2lzdGVyICovCiAjZGVmaW5lIFVCUkMgIDB4YWMgLyogQmF1ZCBSYXRlIENvdW50IFJlZ2lzdGVyICovCisjaWYgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDMgfHwgZGVmaW5lZCBDT05GSUdfQVJDSF9NWDIKKyNkZWZpbmUgT05FTVMgMHhiMCAvKiBPbmUgTWlsbGlzZWNvbmQgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVRTICAgMHhiNCAvKiBVQVJUIFRlc3QgUmVnaXN0ZXIgKi8KKyNlbmRpZgorI2lmZGVmIENPTkZJR19BUkNIX0lNWAogI2RlZmluZSBCSVBSMSAweGIwIC8qIEluY3JlbWVudGFsIFByZXNldCBSZWdpc3RlciAxICovCiAjZGVmaW5lIEJJUFIyIDB4YjQgLyogSW5jcmVtZW50YWwgUHJlc2V0IFJlZ2lzdGVyIDIgKi8KICNkZWZpbmUgQklQUjMgMHhiOCAvKiBJbmNyZW1lbnRhbCBQcmVzZXQgUmVnaXN0ZXIgMyAqLwpAQCAtNzAsNiArNzYsNyBAQAogI2RlZmluZSBCTVBSMyAweGM4IC8qIEJSTSBNb2R1bGF0b3IgUmVnaXN0ZXIgMyAqLwogI2RlZmluZSBCTVBSNCAweGNjIC8qIEJSTSBNb2R1bGF0b3IgUmVnaXN0ZXIgNCAqLwogI2RlZmluZSBVVFMgICAweGQwIC8qIFVBUlQgVGVzdCBSZWdpc3RlciAqLworI2VuZGlmCiAKIC8qIFVBUlQgQ29udHJvbCBSZWdpc3RlciBCaXQgRmllbGRzLiovCiAjZGVmaW5lICBVUlhEX0NIQVJSRFkgICAgKDE8PDE1KQpAQCAtODksNyArOTYsMTIgQEAKICNkZWZpbmUgIFVDUjFfUlRTREVOICAgICAoMTw8NSkJIC8qIFJUUyBkZWx0YSBpbnRlcnJ1cHQgZW5hYmxlICovCiAjZGVmaW5lICBVQ1IxX1NOREJSSyAgICAgKDE8PDQpCSAvKiBTZW5kIGJyZWFrICovCiAjZGVmaW5lICBVQ1IxX1RETUFFTiAgICAgKDE8PDMpCSAvKiBUcmFuc21pdHRlciByZWFkeSBETUEgZW5hYmxlICovCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCiAjZGVmaW5lICBVQ1IxX1VBUlRDTEtFTiAgKDE8PDIpCSAvKiBVQVJUIGNsb2NrIGVuYWJsZWQgKi8KKyNlbmRpZgorI2lmIGRlZmluZWQgQ09ORklHX0FSQ0hfTVgzIHx8IGRlZmluZWQgQ09ORklHX0FSQ0hfTVgyCisjZGVmaW5lICBVQ1IxX1VBUlRDTEtFTiAgKDApCSAvKiBub3QgcHJlc2VudCBvbiBteDIvbXgzICovCisjZW5kaWYKICNkZWZpbmUgIFVDUjFfRE9aRSAgICAgICAoMTw8MSkJIC8qIERvemUgKi8KICNkZWZpbmUgIFVDUjFfVUFSVEVOICAgICAoMTw8MCkJIC8qIFVBUlQgZW5hYmxlZCAqLwogI2RlZmluZSAgVUNSMl9FU0NJICAgICAJICgxPDwxNSkgLyogRXNjYXBlIHNlcSBpbnRlcnJ1cHQgZW5hYmxlICovCkBAIC0xNjMsOCArMTc1LDE5IEBACiAjZGVmaW5lICBVVFNfU09GVFJTVAkgKDE8PDApCSAvKiBTb2Z0d2FyZSByZXNldCAqLwogCiAvKiBXZSd2ZSBiZWVuIGFzc2lnbmVkIGEgcmFuZ2Ugb24gdGhlICJMb3ctZGVuc2l0eSBzZXJpYWwgcG9ydHMiIG1ham9yICovCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCiAjZGVmaW5lIFNFUklBTF9JTVhfTUFKT1IJMjA0CiAjZGVmaW5lIE1JTk9SX1NUQVJUCQk0MQorI2RlZmluZSBERVZfTkFNRQkJInR0eVNNWCIKKyNkZWZpbmUgTUFYX0lOVEVSTkFMX0lSUQlJTVhfSVJRUworI2VuZGlmCisKKyNpZiBkZWZpbmVkIENPTkZJR19BUkNIX01YMyB8fCBkZWZpbmVkIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBTRVJJQUxfSU1YX01BSk9SICAgICAgICAyMDcKKyNkZWZpbmUgTUlOT1JfU1RBUlQJICAgICAgICAxNgorI2RlZmluZSBERVZfTkFNRQkJInR0eW14YyIKKyNkZWZpbmUgTUFYX0lOVEVSTkFMX0lSUQlNWENfTUFYX0lOVF9MSU5FUworI2VuZGlmCiAKIC8qCiAgKiBUaGlzIGRldGVybWluZXMgaG93IG9mdGVuIHdlIGNoZWNrIHRoZSBtb2RlbSBzdGF0dXMgc2lnbmFscwpAQCAtMTc2LDEyICsxOTksMTUgQEAKIAogI2RlZmluZSBEUklWRVJfTkFNRSAiSU1YLXVhcnQiCiAKKyNkZWZpbmUgVUFSVF9OUiA4CisKIHN0cnVjdCBpbXhfcG9ydCB7CiAJc3RydWN0IHVhcnRfcG9ydAlwb3J0OwogCXN0cnVjdCB0aW1lcl9saXN0CXRpbWVyOwogCXVuc2lnbmVkIGludAkJb2xkX3N0YXR1czsKIAlpbnQJCQl0eGlycSxyeGlycSxydHNpcnE7CiAJaW50CQkJaGF2ZV9ydHNjdHM6MTsKKwlzdHJ1Y3QgY2xrCQkqY2xrOwogfTsKIAogLyoKQEAgLTQwNSw2ICs0MzEsMjYgQEAKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKK3N0YXRpYyBpcnFyZXR1cm5fdCBpbXhfaW50KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gZGV2X2lkOworCXVuc2lnbmVkIGludCBzdHM7CisKKwlzdHMgPSByZWFkbChzcG9ydC0+cG9ydC5tZW1iYXNlICsgVVNSMSk7CisKKwlpZiAoc3RzICYgVVNSMV9SUkRZKQorCQlpbXhfcnhpbnQoaXJxLCBkZXZfaWQpOworCisJaWYgKHN0cyAmIFVTUjFfVFJEWSAmJgorCQkJcmVhZGwoc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjEpICYgVUNSMV9UWE1QVFlFTikKKwkJaW14X3R4aW50KGlycSwgZGV2X2lkKTsKKworCWlmIChzdHMgJiBVU1IxX1JUU1MpCisJCWlteF9ydHNpbnQoaXJxLCBkZXZfaWQpOworCisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCiAvKgogICogUmV0dXJuIFRJT0NTRVJfVEVNVCB3aGVuIHRyYW5zbWl0dGVyIGlzIG5vdCBidXN5LgogICovCkBAIC00NzcsNyArNTIzLDggQEAKIAkgKiBSRkRJViBpcyBzZXQgc3VjaCB3YXkgdG8gc2F0aXNmeSByZXF1ZXN0ZWQgdWFydGNsayB2YWx1ZQogCSAqLwogCXZhbCA9IFRYVEwgPDwgMTAgfCBSWFRMOwotCXVmY3JfcmZkaXYgPSAoaW14X2dldF9wZXJjbGsxKCkgKyBzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gMikgLyBzcG9ydC0+cG9ydC51YXJ0Y2xrOworCXVmY3JfcmZkaXYgPSAoY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspICsgc3BvcnQtPnBvcnQudWFydGNsayAvIDIpCisJCQkvIHNwb3J0LT5wb3J0LnVhcnRjbGs7CiAKIAlpZighdWZjcl9yZmRpdikKIAkJdWZjcl9yZmRpdiA9IDE7CkBAIC01MDksMjEgKzU1NiwzNCBAQAogCXdyaXRlbCh0ZW1wICYgflVDUjRfRFJFTiwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjQpOwogCiAJLyoKLQkgKiBBbGxvY2F0ZSB0aGUgSVJRCisJICogQWxsb2NhdGUgdGhlIElSUShzKSBpLk1YMSBoYXMgdGhyZWUgaW50ZXJydXB0cyB3aGVyZWFzIGxhdGVyCisJICogY2hpcHMgb25seSBoYXZlIG9uZSBpbnRlcnJ1cHQuCiAJICovCi0JcmV0dmFsID0gcmVxdWVzdF9pcnEoc3BvcnQtPnJ4aXJxLCBpbXhfcnhpbnQsIDAsCi0JCQkgICAgIERSSVZFUl9OQU1FLCBzcG9ydCk7Ci0JaWYgKHJldHZhbCkgZ290byBlcnJvcl9vdXQxOworCWlmIChzcG9ydC0+dHhpcnEgPiAwKSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5yeGlycSwgaW14X3J4aW50LCAwLAorCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpCisJCQlnb3RvIGVycm9yX291dDE7CiAKLQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+dHhpcnEsIGlteF90eGludCwgMCwKLQkJCSAgICAgRFJJVkVSX05BTUUsIHNwb3J0KTsKLQlpZiAocmV0dmFsKSBnb3RvIGVycm9yX291dDI7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT50eGlycSwgaW14X3R4aW50LCAwLAorCQkJCURSSVZFUl9OQU1FLCBzcG9ydCk7CisJCWlmIChyZXR2YWwpCisJCQlnb3RvIGVycm9yX291dDI7CiAKLQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+cnRzaXJxLCBpbXhfcnRzaW50LAotCQkJICAgICAoc3BvcnQtPnJ0c2lycSA8IElNWF9JUlFTKSA/IDAgOgorCQlyZXR2YWwgPSByZXF1ZXN0X2lycShzcG9ydC0+cnRzaXJxLCBpbXhfcnRzaW50LAorCQkJICAgICAoc3BvcnQtPnJ0c2lycSA8IE1BWF9JTlRFUk5BTF9JUlEpID8gMCA6CiAJCQkgICAgICAgSVJRRl9UUklHR0VSX0ZBTExJTkcgfCBJUlFGX1RSSUdHRVJfUklTSU5HLAotCQkJICAgICBEUklWRVJfTkFNRSwgc3BvcnQpOwotCWlmIChyZXR2YWwpIGdvdG8gZXJyb3Jfb3V0MzsKKwkJCQlEUklWRVJfTkFNRSwgc3BvcnQpOworCQlpZiAocmV0dmFsKQorCQkJZ290byBlcnJvcl9vdXQzOworCX0gZWxzZSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHNwb3J0LT5wb3J0LmlycSwgaW14X2ludCwgMCwKKwkJCQlEUklWRVJfTkFNRSwgc3BvcnQpOworCQlpZiAocmV0dmFsKSB7CisJCQlmcmVlX2lycShzcG9ydC0+cG9ydC5pcnEsIHNwb3J0KTsKKwkJCWdvdG8gZXJyb3Jfb3V0MTsKKwkJfQorCX0KIAogCS8qCiAJICogRmluYWxseSwgY2xlYXIgYW5kIGVuYWJsZSBpbnRlcnJ1cHRzCkBAIC01NDgsOSArNjA4LDExIEBACiAJcmV0dXJuIDA7CiAKIGVycm9yX291dDM6Ci0JZnJlZV9pcnEoc3BvcnQtPnR4aXJxLCBzcG9ydCk7CisJaWYgKHNwb3J0LT50eGlycSkKKwkJZnJlZV9pcnEoc3BvcnQtPnR4aXJxLCBzcG9ydCk7CiBlcnJvcl9vdXQyOgotCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOworCWlmIChzcG9ydC0+cnhpcnEpCisJCWZyZWVfaXJxKHNwb3J0LT5yeGlycSwgc3BvcnQpOwogZXJyb3Jfb3V0MToKIAlyZXR1cm4gcmV0dmFsOwogfQpAQCAtNTY4LDkgKzYzMCwxMiBAQAogCS8qCiAJICogRnJlZSB0aGUgaW50ZXJydXB0cwogCSAqLwotCWZyZWVfaXJxKHNwb3J0LT5ydHNpcnEsIHNwb3J0KTsKLQlmcmVlX2lycShzcG9ydC0+dHhpcnEsIHNwb3J0KTsKLQlmcmVlX2lycShzcG9ydC0+cnhpcnEsIHNwb3J0KTsKKwlpZiAoc3BvcnQtPnR4aXJxID4gMCkgeworCQlmcmVlX2lycShzcG9ydC0+cnRzaXJxLCBzcG9ydCk7CisJCWZyZWVfaXJxKHNwb3J0LT50eGlycSwgc3BvcnQpOworCQlmcmVlX2lycShzcG9ydC0+cnhpcnEsIHNwb3J0KTsKKwl9IGVsc2UKKwkJZnJlZV9pcnEoc3BvcnQtPnBvcnQuaXJxLCBzcG9ydCk7CiAKIAkvKgogCSAqIERpc2FibGUgYWxsIGludGVycnVwdHMsIHBvcnQgYW5kIGJyZWFrIGNvbmRpdGlvbi4KQEAgLTU4OSw2ICs2NTQsNyBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgaW50IHVjcjIsIG9sZF91Y3IxLCBvbGRfdHhyeGVuLCBiYXVkLCBxdW90OwogCXVuc2lnbmVkIGludCBvbGRfY3NpemUgPSBvbGQgPyBvbGQtPmNfY2ZsYWcgJiBDU0laRSA6IENTODsKKwl1bnNpZ25lZCBpbnQgZGl2LCBudW0sIGRlbm9tLCB1ZmNyOwogCiAJLyoKIAkgKiBJZiB3ZSBkb24ndCBzdXBwb3J0IG1vZGVtIGNvbnRyb2wgbGluZXMsIGRvbid0IGFsbG93CkBAIC02MzQsNyArNzAwLDcgQEAKIAkvKgogCSAqIEFzayB0aGUgY29yZSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHVzLgogCSAqLwotCWJhdWQgPSB1YXJ0X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCAwLCBwb3J0LT51YXJ0Y2xrLzE2KTsKKwliYXVkID0gdWFydF9nZXRfYmF1ZF9yYXRlKHBvcnQsIHRlcm1pb3MsIG9sZCwgNTAsIHBvcnQtPnVhcnRjbGsgLyAxNik7CiAJcXVvdCA9IHVhcnRfZ2V0X2Rpdmlzb3IocG9ydCwgYmF1ZCk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmc3BvcnQtPnBvcnQubG9jaywgZmxhZ3MpOwpAQCAtNjg0LDE0ICs3NTAsNDEgQEAKIAkJCXNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQ1IyKTsKIAlvbGRfdHhyeGVuICY9IChVQ1IyX1RYRU4gfCBVQ1IyX1JYRU4pOwogCi0JLyogc2V0IHRoZSBiYXVkIHJhdGUuIFdlIGFzc3VtZSB1YXJ0Y2xrID0gMTYgTUh6Ci0JICoKLQkgKiBiYXVkICogMTYgICBVQklSIC0gMQotCSAqIC0tLS0tLS0tLSA9IC0tLS0tLS0tCi0JICogIHVhcnRjbGsgICAgVUJNUiAtIDEKLQkgKi8KLQl3cml0ZWwoKGJhdWQgLyAxMDApIC0gMSwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVCSVIpOwotCXdyaXRlbCgxMDAwMCAtIDEsIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBVQk1SKTsKKwlkaXYgPSBzcG9ydC0+cG9ydC51YXJ0Y2xrIC8gKGJhdWQgKiAxNik7CisJaWYgKGRpdiA+IDcpCisJCWRpdiA9IDc7CisJaWYgKCFkaXYpCisJCWRpdiA9IDE7CisKKwludW0gPSBiYXVkOworCWRlbm9tID0gcG9ydC0+dWFydGNsayAvIGRpdiAvIDE2OworCisJLyogc2hpZnQgbnVtIGFuZCBkZW5vbSByaWdodCB1bnRpbCB0aGV5IGZpdCBpbnRvIDE2IGJpdHMgKi8KKwl3aGlsZSAobnVtID4gMHgxMDAwMCB8fCBkZW5vbSA+IDB4MTAwMDApIHsKKwkJbnVtID4+PSAxOworCQlkZW5vbSA+Pj0gMTsKKwl9CisJaWYgKG51bSA+IDApCisJCW51bSAtPSAxOworCWlmIChkZW5vbSA+IDApCisJCWRlbm9tIC09IDE7CisKKwl3cml0ZWwobnVtLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUJJUik7CisJd3JpdGVsKGRlbm9tLCBzcG9ydC0+cG9ydC5tZW1iYXNlICsgVUJNUik7CisKKwlpZiAoZGl2ID09IDcpCisJCWRpdiA9IDY7IC8qIDYgaW4gUkZESVYgbWVhbnMgZGl2aWRlIGJ5IDcgKi8KKwllbHNlCisJCWRpdiA9IDYgLSBkaXY7CisKKwl1ZmNyID0gcmVhZGwoc3BvcnQtPnBvcnQubWVtYmFzZSArIFVGQ1IpOworCXVmY3IgPSAodWZjciAmICh+VUZDUl9SRkRJVikpIHwKKwkgICAgKGRpdiA8PCA3KTsKKwl3cml0ZWwodWZjciwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVGQ1IpOworCisjaWZkZWYgT05FTVMKKwl3cml0ZWwoc3BvcnQtPnBvcnQudWFydGNsayAvIGRpdiAvIDEwMDAsIHNwb3J0LT5wb3J0Lm1lbWJhc2UgKyBPTkVNUyk7CisjZW5kaWYKIAogCXdyaXRlbChvbGRfdWNyMSwgc3BvcnQtPnBvcnQubWVtYmFzZSArIFVDUjEpOwogCkBAIC04MDEsNjUgKzg5NCw3IEBACiAJLnZlcmlmeV9wb3J0CT0gaW14X3ZlcmlmeV9wb3J0LAogfTsKIAotc3RhdGljIHN0cnVjdCBpbXhfcG9ydCBpbXhfcG9ydHNbXSA9IHsKLQl7Ci0JLnR4aXJxICA9IFVBUlQxX01JTlRfVFgsCi0JLnJ4aXJxICA9IFVBUlQxX01JTlRfUlgsCi0JLnJ0c2lycSA9IFVBUlQxX01JTlRfUlRTLAotCS5wb3J0CT0gewotCQkudHlwZQkJPSBQT1JUX0lNWCwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLm1lbWJhc2UJPSAodm9pZCAqKUlNWF9VQVJUMV9CQVNFLAotCQkubWFwYmFzZQk9IDB4MDAyMDYwMDAsCi0JCS5pcnEJCT0gVUFSVDFfTUlOVF9SWCwKLQkJLnVhcnRjbGsJPSAxNjAwMDAwMCwKLQkJLmZpZm9zaXplCT0gMzIsCi0JCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLm9wcwkJPSAmaW14X3BvcHMsCi0JCS5saW5lCQk9IDAsCi0JfSwKLQl9LCB7Ci0JLnR4aXJxICA9IFVBUlQyX01JTlRfVFgsCi0JLnJ4aXJxICA9IFVBUlQyX01JTlRfUlgsCi0JLnJ0c2lycSA9IFVBUlQyX01JTlRfUlRTLAotCS5wb3J0CT0gewotCQkudHlwZQkJPSBQT1JUX0lNWCwKLQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJLm1lbWJhc2UJPSAodm9pZCAqKUlNWF9VQVJUMl9CQVNFLAotCQkubWFwYmFzZQk9IDB4MDAyMDcwMDAsCi0JCS5pcnEJCT0gVUFSVDJfTUlOVF9SWCwKLQkJLnVhcnRjbGsJPSAxNjAwMDAwMCwKLQkJLmZpZm9zaXplCT0gMzIsCi0JCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJLm9wcwkJPSAmaW14X3BvcHMsCi0JCS5saW5lCQk9IDEsCi0JfSwKLQl9Ci19OwotCi0vKgotICogU2V0dXAgdGhlIElNWCBzZXJpYWwgcG9ydHMuCi0gKiBOb3RlIGFsc28gdGhhdCB3ZSBzdXBwb3J0ICJjb25zb2xlPXR0eVNNWHgiIHdoZXJlICJ4IiBpcyBlaXRoZXIgMCBvciAxLgotICogV2hpY2ggc2VyaWFsIHBvcnQgdGhpcyBlbmRzIHVwIGJlaW5nIGRlcGVuZHMgb24gdGhlIG1hY2hpbmUgeW91J3JlCi0gKiBydW5uaW5nIHRoaXMga2VybmVsIG9uLiAgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlzIGlzIGEgZ29vZCBpZGVhLAotICogYnV0IHRoYXQncyB0aGUgd2F5IGl0IHRyYWRpdGlvbmFsbHkgd29ya3MuCi0gKgotICovCi1zdGF0aWMgdm9pZCBfX2luaXQgaW14X2luaXRfcG9ydHModm9pZCkKLXsKLQlzdGF0aWMgaW50IGZpcnN0ID0gMTsKLQlpbnQgaTsKLQotCWlmICghZmlyc3QpCi0JCXJldHVybjsKLQlmaXJzdCA9IDA7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbXhfcG9ydHMpOyBpKyspIHsKLQkJaW5pdF90aW1lcigmaW14X3BvcnRzW2ldLnRpbWVyKTsKLQkJaW14X3BvcnRzW2ldLnRpbWVyLmZ1bmN0aW9uID0gaW14X3RpbWVvdXQ7Ci0JCWlteF9wb3J0c1tpXS50aW1lci5kYXRhICAgICA9ICh1bnNpZ25lZCBsb25nKSZpbXhfcG9ydHNbaV07Ci0JfQotfQorc3RhdGljIHN0cnVjdCBpbXhfcG9ydCAqaW14X3BvcnRzW1VBUlRfTlJdOwogCiAjaWZkZWYgQ09ORklHX1NFUklBTF9JTVhfQ09OU09MRQogc3RhdGljIHZvaWQgaW14X2NvbnNvbGVfcHV0Y2hhcihzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgY2gpCkBAIC04NzgsNyArOTEzLDcgQEAKIHN0YXRpYyB2b2lkCiBpbXhfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsIHVuc2lnbmVkIGludCBjb3VudCkKIHsKLQlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gJmlteF9wb3J0c1tjby0+aW5kZXhdOworCXN0cnVjdCBpbXhfcG9ydCAqc3BvcnQgPSBpbXhfcG9ydHNbY28tPmluZGV4XTsKIAl1bnNpZ25lZCBpbnQgb2xkX3VjcjEsIG9sZF91Y3IyOwogCiAJLyoKQEAgLTk0NCw3ICs5NzksNyBAQAogCQllbHNlCiAJCQl1Y2ZyX3JmZGl2ID0gNiAtIHVjZnJfcmZkaXY7CiAKLQkJdWFydGNsayA9IGlteF9nZXRfcGVyY2xrMSgpOworCQl1YXJ0Y2xrID0gY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspOwogCQl1YXJ0Y2xrIC89IHVjZnJfcmZkaXY7CiAKIAkJewkvKgpAQCAtOTg0LDcgKzEwMTksNyBAQAogCSAqLwogCWlmIChjby0+aW5kZXggPT0gLTEgfHwgY28tPmluZGV4ID49IEFSUkFZX1NJWkUoaW14X3BvcnRzKSkKIAkJY28tPmluZGV4ID0gMDsKLQlzcG9ydCA9ICZpbXhfcG9ydHNbY28tPmluZGV4XTsKKwlzcG9ydCA9IGlteF9wb3J0c1tjby0+aW5kZXhdOwogCiAJaWYgKG9wdGlvbnMpCiAJCXVhcnRfcGFyc2Vfb3B0aW9ucyhvcHRpb25zLCAmYmF1ZCwgJnBhcml0eSwgJmJpdHMsICZmbG93KTsKQEAgLTk5OCw3ICsxMDMzLDcgQEAKIAogc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBpbXhfcmVnOwogc3RhdGljIHN0cnVjdCBjb25zb2xlIGlteF9jb25zb2xlID0gewotCS5uYW1lCQk9ICJ0dHlTTVgiLAorCS5uYW1lCQk9IERFVl9OQU1FLAogCS53cml0ZQkJPSBpbXhfY29uc29sZV93cml0ZSwKIAkuZGV2aWNlCQk9IHVhcnRfY29uc29sZV9kZXZpY2UsCiAJLnNldHVwCQk9IGlteF9jb25zb2xlX3NldHVwLApAQCAtMTAwNywxNCArMTA0Miw2IEBACiAJLmRhdGEJCT0gJmlteF9yZWcsCiB9OwogCi1zdGF0aWMgaW50IF9faW5pdCBpbXhfcnNfY29uc29sZV9pbml0KHZvaWQpCi17Ci0JaW14X2luaXRfcG9ydHMoKTsKLQlyZWdpc3Rlcl9jb25zb2xlKCZpbXhfY29uc29sZSk7Ci0JcmV0dXJuIDA7Ci19Ci1jb25zb2xlX2luaXRjYWxsKGlteF9yc19jb25zb2xlX2luaXQpOwotCiAjZGVmaW5lIElNWF9DT05TT0xFCSZpbXhfY29uc29sZQogI2Vsc2UKICNkZWZpbmUgSU1YX0NPTlNPTEUJTlVMTApAQCAtMTAyMyw3ICsxMDUwLDcgQEAKIHN0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgaW14X3JlZyA9IHsKIAkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKIAkuZHJpdmVyX25hbWUgICAgPSBEUklWRVJfTkFNRSwKLQkuZGV2X25hbWUgICAgICAgPSAidHR5U01YIiwKKwkuZGV2X25hbWUgICAgICAgPSBERVZfTkFNRSwKIAkubWFqb3IgICAgICAgICAgPSBTRVJJQUxfSU1YX01BSk9SLAogCS5taW5vciAgICAgICAgICA9IE1JTk9SX1NUQVJULAogCS5uciAgICAgICAgICAgICA9IEFSUkFZX1NJWkUoaW14X3BvcnRzKSwKQEAgLTEwNTAsMjkgKzEwNzcsOTggQEAKICAgICAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc2VyaWFsX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgaW50IHNlcmlhbF9pbXhfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0OwogCXN0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgKnBkYXRhOworCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKIAotCWlteF9wb3J0c1tkZXYtPmlkXS5wb3J0LmRldiA9ICZkZXYtPmRldjsKKwlzcG9ydCA9IGt6YWxsb2Moc2l6ZW9mKCpzcG9ydCksIEdGUF9LRVJORUwpOworCWlmICghc3BvcnQpCisJCXJldHVybiAtRU5PTUVNOwogCi0JcGRhdGEgPSAoc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqKWRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAoIXJlcykgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIGZyZWU7CisJfQorCisJYmFzZSA9IGlvcmVtYXAocmVzLT5zdGFydCwgUEFHRV9TSVpFKTsKKwlpZiAoIWJhc2UpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBmcmVlOworCX0KKworCXNwb3J0LT5wb3J0LmRldiA9ICZwZGV2LT5kZXY7CisJc3BvcnQtPnBvcnQubWFwYmFzZSA9IHJlcy0+c3RhcnQ7CisJc3BvcnQtPnBvcnQubWVtYmFzZSA9IGJhc2U7CisJc3BvcnQtPnBvcnQudHlwZSA9IFBPUlRfSU1YLAorCXNwb3J0LT5wb3J0LmlvdHlwZSA9IFVQSU9fTUVNOworCXNwb3J0LT5wb3J0LmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJc3BvcnQtPnJ4aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlzcG9ydC0+dHhpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDEpOworCXNwb3J0LT5ydHNpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDIpOworCXNwb3J0LT5wb3J0LmZpZm9zaXplID0gMzI7CisJc3BvcnQtPnBvcnQub3BzID0gJmlteF9wb3BzOworCXNwb3J0LT5wb3J0LmZsYWdzID0gVVBGX0JPT1RfQVVUT0NPTkY7CisJc3BvcnQtPnBvcnQubGluZSA9IHBkZXYtPmlkOworCWluaXRfdGltZXIoJnNwb3J0LT50aW1lcik7CisJc3BvcnQtPnRpbWVyLmZ1bmN0aW9uID0gaW14X3RpbWVvdXQ7CisJc3BvcnQtPnRpbWVyLmRhdGEgICAgID0gKHVuc2lnbmVkIGxvbmcpc3BvcnQ7CisKKwlzcG9ydC0+Y2xrID0gY2xrX2dldCgmcGRldi0+ZGV2LCAidWFydF9jbGsiKTsKKwlpZiAoSVNfRVJSKHNwb3J0LT5jbGspKSB7CisJCXJldCA9IFBUUl9FUlIoc3BvcnQtPmNsayk7CisJCWdvdG8gdW5tYXA7CisJfQorCWNsa19lbmFibGUoc3BvcnQtPmNsayk7CisKKwlzcG9ydC0+cG9ydC51YXJ0Y2xrID0gY2xrX2dldF9yYXRlKHNwb3J0LT5jbGspOworCisJaW14X3BvcnRzW3BkZXYtPmlkXSA9IHNwb3J0OworCisJcGRhdGEgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKIAlpZihwZGF0YSAmJiAocGRhdGEtPmZsYWdzICYgSU1YVUFSVF9IQVZFX1JUU0NUUykpCi0JCWlteF9wb3J0c1tkZXYtPmlkXS5oYXZlX3J0c2N0cyA9IDE7CisJCXNwb3J0LT5oYXZlX3J0c2N0cyA9IDE7CiAKLQl1YXJ0X2FkZF9vbmVfcG9ydCgmaW14X3JlZywgJmlteF9wb3J0c1tkZXYtPmlkXS5wb3J0KTsKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsICZpbXhfcG9ydHNbZGV2LT5pZF0pOworCWlmIChwZGF0YS0+aW5pdCkKKwkJcGRhdGEtPmluaXQocGRldik7CisKKwl1YXJ0X2FkZF9vbmVfcG9ydCgmaW14X3JlZywgJnNwb3J0LT5wb3J0KTsKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCAmc3BvcnQtPnBvcnQpOworCiAJcmV0dXJuIDA7Cit1bm1hcDoKKwlpb3VubWFwKHNwb3J0LT5wb3J0Lm1lbWJhc2UpOworZnJlZToKKwlrZnJlZShzcG9ydCk7CisKKwlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHNlcmlhbF9pbXhfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgc2VyaWFsX2lteF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIHsKLQlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKKwlzdHJ1Y3QgaW14dWFydF9wbGF0Zm9ybV9kYXRhICpwZGF0YTsKKwlzdHJ1Y3QgaW14X3BvcnQgKnNwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsIE5VTEwpOworCXBkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CiAKLQlpZiAoc3BvcnQpCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisKKwlpZiAoc3BvcnQpIHsKIAkJdWFydF9yZW1vdmVfb25lX3BvcnQoJmlteF9yZWcsICZzcG9ydC0+cG9ydCk7CisJCWNsa19wdXQoc3BvcnQtPmNsayk7CisJfQorCisJY2xrX2Rpc2FibGUoc3BvcnQtPmNsayk7CisKKwlpZiAocGRhdGEtPmV4aXQpCisJCXBkYXRhLT5leGl0KHBkZXYpOworCisJaW91bm1hcChzcG9ydC0+cG9ydC5tZW1iYXNlKTsKKwlrZnJlZShzcG9ydCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTEwOTUsOCArMTE5MSw2IEBACiAKIAlwcmludGsoS0VSTl9JTkZPICJTZXJpYWw6IElNWCBkcml2ZXJcbiIpOwogCi0JaW14X2luaXRfcG9ydHMoKTsKLQogCXJldCA9IHVhcnRfcmVnaXN0ZXJfZHJpdmVyKCZpbXhfcmVnKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvczNjMjQwMC5jIGIvZHJpdmVycy9zZXJpYWwvczNjMjQwMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMTAyMDUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDAwLmMKQEAgLTAsMCArMSwxMDYgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0MC5jCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFNvQyBvbmJvYXJkIFVBUlRzLgorICoKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUgU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKworI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKK3N0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfZ2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCisJCQkJICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJY2xrLT5kaXZpc29yID0gMTsKKwljbGstPm5hbWUgPSAicGNsayI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCWRiZygiczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKKwkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgY2ZnLT51Y29uKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIGNmZy0+dWxjb24pOworCisJLyogcmVzZXQgYm90aCBmaWZvcyAqLworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uIHwgUzNDMjQxMF9VRkNPTl9SRVNFVEJPVEgpOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyBzM2MyNDAwX3VhcnRfaW5mID0geworCS5uYW1lCQk9ICJTYW1zdW5nIFMzQzI0MDAgVUFSVCIsCisJLnR5cGUJCT0gUE9SVF9TM0MyNDAwLAorCS5maWZvc2l6ZQk9IDE2LAorCS5yeF9maWZvbWFzawk9IFMzQzI0MTBfVUZTVEFUX1JYTUFTSywKKwkucnhfZmlmb3NoaWZ0CT0gUzNDMjQxMF9VRlNUQVRfUlhTSElGVCwKKwkucnhfZmlmb2Z1bGwJPSBTM0MyNDEwX1VGU1RBVF9SWEZVTEwsCisJLnR4X2ZpZm9mdWxsCT0gUzNDMjQxMF9VRlNUQVRfVFhGVUxMLAorCS50eF9maWZvbWFzawk9IFMzQzI0MTBfVUZTVEFUX1RYTUFTSywKKwkudHhfZmlmb3NoaWZ0CT0gUzNDMjQxMF9VRlNUQVRfVFhTSElGVCwKKwkuZ2V0X2Nsa3NyYwk9IHMzYzI0MDBfc2VyaWFsX2dldHNvdXJjZSwKKwkuc2V0X2Nsa3NyYwk9IHMzYzI0MDBfc2VyaWFsX3NldHNvdXJjZSwKKwkucmVzZXRfcG9ydAk9IHMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydCwKK307CisKK3N0YXRpYyBpbnQgczNjMjQwMF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDAwX3VhcnRfaW5mKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQwMF9zZXJpYWxfZHJ2ID0geworCS5wcm9iZQkJPSBzM2MyNDAwX3NlcmlhbF9wcm9iZSwKKwkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjQwMC11YXJ0IiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKK307CisKK3MzYzI0eHhfY29uc29sZV9pbml0KCZzM2MyNDAwX3NlcmlhbF9kcnYsICZzM2MyNDAwX3VhcnRfaW5mKTsKKworc3RhdGljIGlubGluZSBpbnQgczNjMjQwMF9zZXJpYWxfaW5pdCh2b2lkKQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDAwX3NlcmlhbF9kcnYsICZzM2MyNDAwX3VhcnRfaW5mKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MDBfc2VyaWFsX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQwMF9zZXJpYWxfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjQwMF9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDAwX3NlcmlhbF9leGl0KTsKKworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOworTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJTYW1zdW5nIFMzQzI0MDAgU29DIFNlcmlhbCBwb3J0IGRyaXZlciIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDAwLXVhcnQiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYwppbmRleCAyYjZhMDEzLi5jNWYwM2Y0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDEwLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvczNjMjQxMC5jCkBAIC0xLDEyNzAgKzEsMzAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL3NlcmlhbC9zM2MyNDEwLmMKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0MTAuYwogICoKLSAqIERyaXZlciBmb3Igb25ib2FyZCBVQVJUcyBvbiB0aGUgU2Ftc3VuZyBTM0MyNFhYCisgKiBEcml2ZXIgZm9yIFNhbXN1bmcgUzNDMjQxMCBTb0Mgb25ib2FyZCBVQVJUcy4KICAqCi0gKiBCYXNlZCBvbiBkcml2ZXJzL2NoYXIvc2VyaWFsLmMgYW5kIGRyaXZlcnMvY2hhci8yMTI4NS5jCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLwogICoKLSAqIEJlbiBEb29rcywgKGMpIDIwMDMtMjAwNSBTaW10ZWMgRWxlY3Ryb25pY3MKLSAqCWh0dHA6Ly93d3cuc2ltdGVjLmNvLnVrL3Byb2R1Y3RzL1NXTElOVVgvCi0gKgotICogQ2hhbmdlbG9nOgotICoKLSAqIDIyLUp1bC0yMDA0ICBCSkQgIEZpbmlzaGVkIG9mZiBkZXZpY2UgcmV3cml0ZQotICoKLSAqIDIxLUp1bC0yMDA0ICBCSkQgIFRoYW5rcyB0byA8aGVyYmV0QDEzdGhmbG9vci5hdD4gZm9yIHBvaW50aW5nIG91dAotICogICAgICAgICAgICAgICAgICAgcHJvYmxlbXMgd2l0aCBiYXVkIHJhdGUgYW5kIGxvc3Mgb2YgSVIgc2V0dGluZ3MuIFVwZGF0ZQotICogICAgICAgICAgICAgICAgICAgdG8gYWRkIGNvbmZpZ3VyYXRpb24gdmlhIHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmUKLSAqCi0gKiAyOC1TZXAtMjAwNCAgQkpEICBSZS13cml0ZSBmb3IgdGhlIGZvbGxvd2luZyBpdGVtcwotICoJCSAgICAgLSBTM0MyNDEwIGFuZCBTM0MyNDQwIHNlcmlhbCBzdXBwb3J0Ci0gKgkJICAgICAtIFBvd2VyIE1hbmFnZW1lbnQgc3VwcG9ydAotICoJCSAgICAgLSBGaXggY29uc29sZSB2aWEgSXJEQSBkZXZpY2VzCi0gKgkJICAgICAtIFN5c1JlcSAoSGVyYmVydCBQw7Z0emwpCi0gKgkJICAgICAtIEJyZWFrIGNoYXJhY3RlciBoYW5kbGluZyAoSGVyYmVydCBQw7Z0emwpCi0gKgkJICAgICAtIHNwaW4tbG9jayBpbml0aWFsaXNhdGlvbiAoRGltaXRyeSBBbmRyaWMpCi0gKgkJICAgICAtIGFkZGVkIGNsb2NrIGNvbnRyb2wKLSAqCQkgICAgIC0gdXBkYXRlZCBpbml0IGNvZGUgdG8gdXNlIHBsYXRmb3JtX2RldmljZSBpbmZvCi0gKgotICogMDYtTWFyLTIwMDUgIEJKRCAgQWRkIHMzYzI0NDAgZmNsayBjbG9jayBzb3VyY2UKLSAqCi0gKiAwOS1NYXItMjAwNSAgQkpEICBBZGQgczNjMjQwMCBzdXBwb3J0Ci0gKgotICogMTAtTWFyLTIwMDUgIExDVlIgQ2hhbmdlZCBTM0MyNDEwX1ZBX1VBUlQgdG8gUzNDMjRYWF9WQV9VQVJUCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKi8KIAotLyogTm90ZSBvbiAyNDQwIGZjbGsgY2xvY2sgc291cmNlIGhhbmRsaW5nCi0gKgotICogV2hpbHN0IGl0IGlzIHBvc3NpYmxlIHRvIHVzZSB0aGUgZmNsayBhcyBjbG9jayBzb3VyY2UsIHRoZSBtZXRob2QKLSAqIG9mIHByb3Blcmx5IHN3aXRjaGluZyB0b28vZnJvbSB0aGlzIGlzIGN1cnJlbnRseSB1bi1pbXBsZW1lbnRlZCwgc28KLSAqIHdoaWNoZXZlciB3YXkgaXMgY29uZmlndXJlZCBhdCBzdGFydHVwIGlzIHRoZSBvbmUgdGhhdCB3aWxsIGJlIHVzZWQuCi0qLwotCi0vKiBIb3RlIG9uIDI0MTAgZXJyb3IgaGFuZGxpbmcKLSAqCi0gKiBUaGUgczNjMjQxMCBtYW51YWwgaGFzIGEgbG92ZS9oYXRlIGFmZmFpciB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUKLSAqIFVFUlNUQVQgcmVnaXN0ZXIgaW4gdGhlIFVBUlQgYmxvY2tzLCBhbmQga2VlcHMgbWFya2luZyBzb21lIG9mIHRoZQotICogZXJyb3IgYml0cyBhcyByZXNlcnZlZC4gSGF2aW5nIGNoZWNrZWQgd2l0aCB0aGUgczNjMjQxMHgwMSwKLSAqIGl0IGNvcGVzIHdpdGggQlJFQUtzIHByb3Blcmx5LCBzbyBJIGFtIGhhcHB5IHRvIGlnbm9yZSB0aGUgUkVTRVJWRUQKLSAqIGZlYXR1cmUgZnJvbSB0aGUgbGF0dGVyIHZlcnNpb25zIG9mIHRoZSBtYW51YWwuCi0gKgotICogSWYgaXQgYmVjb21lcyBhcGFycmVudCB0aGF0IGxhdHRlciB2ZXJzaW9ucyBvZiB0aGUgMjQxMCByZW1vdmUgdGhlc2UKLSAqIGJpdHMsIHRoZW4gYWN0aW9uIHdpbGwgaGF2ZSB0byBiZSB0YWtlbiB0byBkaWZmZXJlbnRpYXRlIHRoZSB2ZXJzaW9ucwotICogYW5kIGNoYW5nZSB0aGUgcG9saWN5IG9uIEJSRUFLCi0gKgotICogQkpELCAwNC1Ob3YtMjAwNAotKi8KLQotCi0jaWYgZGVmaW5lZChDT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRSkgJiYgZGVmaW5lZChDT05GSUdfTUFHSUNfU1lTUlEpCi0jZGVmaW5lIFNVUFBPUlRfU1lTUlEKLSNlbmRpZgotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9jb25zb2xlLmg+Ci0jaW5jbHVkZSA8bGludXgvdHR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgotI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0jaW5jbHVkZSA8bGludXgvY2xrLmg+CiAKLSNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vaXJxLmg+Ci0KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAogI2luY2x1ZGUgPGFzbS9wbGF0LXMzYy9yZWdzLXNlcmlhbC5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgogCi0vKiBzdHJ1Y3R1cmVzICovCi0KLXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyB7Ci0JY2hhcgkJCSpuYW1lOwotCXVuc2lnbmVkIGludAkJdHlwZTsKLQl1bnNpZ25lZCBpbnQJCWZpZm9zaXplOwotCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9tYXNrOwotCXVuc2lnbmVkIGxvbmcJCXJ4X2ZpZm9zaGlmdDsKLQl1bnNpZ25lZCBsb25nCQlyeF9maWZvZnVsbDsKLQl1bnNpZ25lZCBsb25nCQl0eF9maWZvbWFzazsKLQl1bnNpZ25lZCBsb25nCQl0eF9maWZvc2hpZnQ7Ci0JdW5zaWduZWQgbG9uZwkJdHhfZmlmb2Z1bGw7Ci0KLQkvKiBjbG9jayBzb3VyY2UgY29udHJvbCAqLwotCi0JaW50ICgqZ2V0X2Nsa3NyYykoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKTsKLQlpbnQgKCpzZXRfY2xrc3JjKShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspOwotCi0JLyogdWFydCBjb250cm9scyAqLwotCWludCAoKnJlc2V0X3BvcnQpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqKTsKLX07Ci0KLXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCB7Ci0JdW5zaWduZWQgY2hhcgkJCXJ4X2NsYWltZWQ7Ci0JdW5zaWduZWQgY2hhcgkJCXR4X2NsYWltZWQ7Ci0KLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8JKmluZm87Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMJKmNsa3NyYzsKLQlzdHJ1Y3QgY2xrCQkJKmNsazsKLQlzdHJ1Y3QgY2xrCQkJKmJhdWRjbGs7Ci0Jc3RydWN0IHVhcnRfcG9ydAkJcG9ydDsKLX07Ci0KLQotLyogY29uZmlndXJhdGlvbiBkZWZpbmVzICovCi0KLSNpZiAwCi0jaWYgMQotLyogc2VuZCBkZWJ1ZyB0byB0aGUgbG93LWxldmVsIG91dHB1dCByb3V0aW5lcyAqLwotCi1leHRlcm4gdm9pZCBwcmludGFzY2lpKGNvbnN0IGNoYXIgKik7Ci0KLXN0YXRpYyB2b2lkCi1zM2MyNHh4X3NlcmlhbF9kYmcoY29uc3QgY2hhciAqZm10LCAuLi4pCi17Ci0JdmFfbGlzdCB2YTsKLQljaGFyIGJ1ZmZbMjU2XTsKLQotCXZhX3N0YXJ0KHZhLCBmbXQpOwotCXZzcHJpbnRmKGJ1ZmYsIGZtdCwgdmEpOwotCXZhX2VuZCh2YSk7Ci0KLQlwcmludGFzY2lpKGJ1ZmYpOwotfQotCi0jZGVmaW5lIGRiZyh4Li4uKSBzM2MyNHh4X3NlcmlhbF9kYmcoeCkKLQotI2Vsc2UKLSNkZWZpbmUgZGJnKHguLi4pIHByaW50ayhLRVJOX0RFQlVHICJzM2MyNHh4OiAiKTsKLSNlbmRpZgotI2Vsc2UgLyogbm8gZGVidWcgKi8KLSNkZWZpbmUgZGJnKHguLi4pIGRvIHt9IHdoaWxlKDApCi0jZW5kaWYKLQotLyogVUFSVCBuYW1lIGFuZCBkZXZpY2UgZGVmaW5pdGlvbnMgKi8KLQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9OQU1FCSJ0dHlTQUMiCi0jZGVmaW5lIFMzQzI0WFhfU0VSSUFMX01BSk9SCTIwNAotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9NSU5PUgk2NAotCi0KLS8qIGNvbnZlcnNpb24gZnVuY3Rpb25zICovCi0KLSNkZWZpbmUgczNjMjR4eF9kZXZfdG9fcG9ydChfX2RldikgKHN0cnVjdCB1YXJ0X3BvcnQgKilkZXZfZ2V0X2RydmRhdGEoX19kZXYpCi0jZGVmaW5lIHMzYzI0eHhfZGV2X3RvX2NmZyhfX2RldikgKHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKikoKF9fZGV2KS0+cGxhdGZvcm1fZGF0YSkKLQotLyogd2UgY2FuIHN1cHBvcnQgMyB1YXJ0cywgYnV0IG5vdCBhbHdheXMgdXNlIHRoZW0gKi8KLQotI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAotI2RlZmluZSBOUl9QT1JUUyAoMikKLSNlbHNlCi0jZGVmaW5lIE5SX1BPUlRTICgzKQotI2VuZGlmCi0KLS8qIHBvcnQgaXJxIG51bWJlcnMgKi8KLQotI2RlZmluZSBUWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxICsgMSkKLSNkZWZpbmUgUlhfSVJRKHBvcnQpICgocG9ydCktPmlycSkKLQotLyogcmVnaXN0ZXIgYWNjZXNzIGNvbnRyb2xzICovCi0KLSNkZWZpbmUgcG9ydGFkZHIocG9ydCwgcmVnKSAoKHBvcnQpLT5tZW1iYXNlICsgKHJlZykpCi0KLSNkZWZpbmUgcmRfcmVnYihwb3J0LCByZWcpIChfX3Jhd19yZWFkYihwb3J0YWRkcihwb3J0LCByZWcpKSkKLSNkZWZpbmUgcmRfcmVnbChwb3J0LCByZWcpIChfX3Jhd19yZWFkbChwb3J0YWRkcihwb3J0LCByZWcpKSkKLQotI2RlZmluZSB3cl9yZWdiKHBvcnQsIHJlZywgdmFsKSBcCi0gIGRvIHsgX19yYXdfd3JpdGViKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSk7IH0gd2hpbGUoMCkKLQotI2RlZmluZSB3cl9yZWdsKHBvcnQsIHJlZywgdmFsKSBcCi0gIGRvIHsgX19yYXdfd3JpdGVsKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSk7IH0gd2hpbGUoMCkKLQotLyogbWFjcm9zIHRvIGNoYW5nZSBvbmUgdGhpbmcgdG8gYW5vdGhlciAqLwotCi0jZGVmaW5lIHR4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzBdKQotI2RlZmluZSByeF9lbmFibGVkKHBvcnQpICgocG9ydCktPnVudXNlZFsxXSkKLQotLyogZmxhZyB0byBpZ25vcmUgYWxsIGNoYXJhY3RlcnMgY29tbWluZyBpbiAqLwotI2RlZmluZSBSWFNUQVRfRFVNTVlfUkVBRCAoMHgxMDAwMDAwMCkKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnRvX291cnBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gY29udGFpbmVyX29mKHBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCwgcG9ydCk7Ci19Ci0KLS8qIHRyYW5zbGF0ZSBhIHBvcnQgdG8gdGhlIGRldmljZSBuYW1lICovCi0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gdG9fcGxhdGZvcm1fZGV2aWNlKHBvcnQtPmRldiktPm5hbWU7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZXR1cm4gKHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKSAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpOwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCB1Y29uLCB1ZmNvbjsKLQlpbnQgY291bnQgPSAxMDAwMDsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7Ci0KLQl3aGlsZSAoLS1jb3VudCAmJiAhczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCkpCi0JCXVkZWxheSgxMDApOwotCi0JdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOwotCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKLQotCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0JdWNvbiB8PSBTM0MyNDEwX1VDT05fUlhJUlFNT0RFOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IHVjb247Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOwotCi0JdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQl1Y29uICY9IH5TM0MyNDEwX1VDT05fUlhJUlFNT0RFOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAwOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmICh0eF9lbmFibGVkKHBvcnQpKSB7Ci0JCWRpc2FibGVfaXJxKFRYX0lSUShwb3J0KSk7Ci0JCXR4X2VuYWJsZWQocG9ydCkgPSAwOwotCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQotCQkJczNjMjR4eF9zZXJpYWxfcnhfZW5hYmxlKHBvcnQpOwotCX0KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlpZiAoIXR4X2VuYWJsZWQocG9ydCkpIHsKLQkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykKLQkJCXMzYzI0eHhfc2VyaWFsX3J4X2Rpc2FibGUocG9ydCk7Ci0KLQkJZW5hYmxlX2lycShUWF9JUlEocG9ydCkpOwotCQl0eF9lbmFibGVkKHBvcnQpID0gMTsKLQl9Ci19Ci0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF9yeChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWlmIChyeF9lbmFibGVkKHBvcnQpKSB7Ci0JCWRiZygiczNjMjR4eF9zZXJpYWxfc3RvcF9yeDogcG9ydD0lcFxuIiwgcG9ydCk7Ci0JCWRpc2FibGVfaXJxKFJYX0lSUShwb3J0KSk7Ci0JCXJ4X2VuYWJsZWQocG9ydCkgPSAwOwotCX0KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfZW5hYmxlX21zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICpzM2MyNHh4X3BvcnRfdG9faW5mbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXJldHVybiB0b19vdXJwb3J0KHBvcnQpLT5pbmZvOwotfQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKnMzYzI0eHhfcG9ydF90b19jZmcoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlpZiAocG9ydC0+ZGV2ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0dXJuIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopcG9ydC0+ZGV2LT5wbGF0Zm9ybV9kYXRhOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAotCQkJCSAgICAgdW5zaWduZWQgbG9uZyB1ZnN0YXQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gb3VycG9ydC0+aW5mbzsKLQotCWlmICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvZnVsbCkKLQkJcmV0dXJuIGluZm8tPmZpZm9zaXplOwotCi0JcmV0dXJuICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvbWFzaykgPj4gaW5mby0+cnhfZmlmb3NoaWZ0OwotfQotCi0KLS8qID8gLSB3aGVyZSBoYXMgcGFyaXR5IGdvbmU/PyAqLwotI2RlZmluZSBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZICgweDEwMDApCi0KLXN0YXRpYyBpcnFyZXR1cm5fdAotczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMoaW50IGlycSwgdm9pZCAqZGV2X2lkKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IGRldl9pZDsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7Ci0Jc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPmluZm8tPnR0eTsKLQl1bnNpZ25lZCBpbnQgdWZjb24sIGNoLCBmbGFnLCB1ZnN0YXQsIHVlcnN0YXQ7Ci0JaW50IG1heF9jb3VudCA9IDY0OwotCi0Jd2hpbGUgKG1heF9jb3VudC0tID4gMCkgewotCQl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7Ci0JCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCi0JCWlmIChzM2MyNHh4X3NlcmlhbF9yeF9maWZvY250KG91cnBvcnQsIHVmc3RhdCkgPT0gMCkKLQkJCWJyZWFrOwotCi0JCXVlcnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUVSU1RBVCk7Ci0JCWNoID0gcmRfcmVnYihwb3J0LCBTM0MyNDEwX1VSWEgpOwotCi0JCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKLQkJCWludCB0eGUgPSBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KTsKLQotCQkJaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKLQkJCQlpZiAoIXR4ZSkgewotCQkJCQlyeF9lbmFibGVkKHBvcnQpID0gMDsKLQkJCQkJY29udGludWU7Ci0JCQkJfQotCQkJfSBlbHNlIHsKLQkJCQlpZiAodHhlKSB7Ci0JCQkJCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKLQkJCQkJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCB1ZmNvbik7Ci0JCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCQkJCQlnb3RvIG91dDsKLQkJCQl9Ci0JCQkJY29udGludWU7Ci0JCQl9Ci0JCX0KLQotCQkvKiBpbnNlcnQgdGhlIGNoYXJhY3RlciBpbnRvIHRoZSBidWZmZXIgKi8KLQotCQlmbGFnID0gVFRZX05PUk1BTDsKLQkJcG9ydC0+aWNvdW50LnJ4Kys7Ci0KLQkJaWYgKHVubGlrZWx5KHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQU5ZKSkgewotCQkJZGJnKCJyeGVycjogcG9ydCBjaD0weCUwMngsIHJ4cz0weCUwOHhcbiIsCi0JCQkgICAgY2gsIHVlcnN0YXQpOwotCi0JCQkvKiBjaGVjayBmb3IgYnJlYWsgKi8KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKSB7Ci0JCQkJZGJnKCJicmVhayFcbiIpOwotCQkJCXBvcnQtPmljb3VudC5icmsrKzsKLQkJCQlpZiAodWFydF9oYW5kbGVfYnJlYWsocG9ydCkpCi0JCQkJICAgIGdvdG8gaWdub3JlX2NoYXI7Ci0JCQl9Ci0KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0ZSQU1FKQotCQkJCXBvcnQtPmljb3VudC5mcmFtZSsrOwotCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTikKLQkJCQlwb3J0LT5pY291bnQub3ZlcnJ1bisrOwotCi0JCQl1ZXJzdGF0ICY9IHBvcnQtPnJlYWRfc3RhdHVzX21hc2s7Ci0KLQkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKQotCQkJCWZsYWcgPSBUVFlfQlJFQUs7Ci0JCQllbHNlIGlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX1BBUklUWSkKLQkJCQlmbGFnID0gVFRZX1BBUklUWTsKLQkJCWVsc2UgaWYgKHVlcnN0YXQgJiAoIFMzQzI0MTBfVUVSU1RBVF9GUkFNRSB8IFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKSkKLQkJCQlmbGFnID0gVFRZX0ZSQU1FOwotCQl9Ci0KLQkJaWYgKHVhcnRfaGFuZGxlX3N5c3JxX2NoYXIocG9ydCwgY2gpKQotCQkJZ290byBpZ25vcmVfY2hhcjsKLQotCQl1YXJ0X2luc2VydF9jaGFyKHBvcnQsIHVlcnN0YXQsIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOLCBjaCwgZmxhZyk7Ci0KLQlpZ25vcmVfY2hhcjoKLQkJY29udGludWU7Ci0JfQotCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7Ci0KLSBvdXQ6Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi1zdGF0aWMgaXJxcmV0dXJuX3QgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMoaW50IGlycSwgdm9pZCAqaWQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gaWQ7Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OwotCXN0cnVjdCBjaXJjX2J1ZiAqeG1pdCA9ICZwb3J0LT5pbmZvLT54bWl0OwotCWludCBjb3VudCA9IDI1NjsKLQotCWlmIChwb3J0LT54X2NoYXIpIHsKLQkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHBvcnQtPnhfY2hhcik7Ci0JCXBvcnQtPmljb3VudC50eCsrOwotCQlwb3J0LT54X2NoYXIgPSAwOwotCQlnb3RvIG91dDsKLQl9Ci0KLQkvKiBpZiB0aGVyZSBpc250IGFueXRoaW5nIG1vcmUgdG8gdHJhbnNtaXQsIG9yIHRoZSB1YXJ0IGlzIG5vdwotCSAqIHN0b3BwZWQsIGRpc2FibGUgdGhlIHVhcnQgYW5kIGV4aXQKLQkqLwotCi0JaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSB8fCB1YXJ0X3R4X3N0b3BwZWQocG9ydCkpIHsKLQkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKLQkJZ290byBvdXQ7Ci0JfQotCi0JLyogdHJ5IGFuZCBkcmFpbiB0aGUgYnVmZmVyLi4uICovCi0KLQl3aGlsZSAoIXVhcnRfY2lyY19lbXB0eSh4bWl0KSAmJiBjb3VudC0tID4gMCkgewotCQlpZiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCkgJiBvdXJwb3J0LT5pbmZvLT50eF9maWZvZnVsbCkKLQkJCWJyZWFrOwotCi0JCXdyX3JlZ2IocG9ydCwgUzNDMjQxMF9VVFhILCB4bWl0LT5idWZbeG1pdC0+dGFpbF0pOwotCQl4bWl0LT50YWlsID0gKHhtaXQtPnRhaWwgKyAxKSAmIChVQVJUX1hNSVRfU0laRSAtIDEpOwotCQlwb3J0LT5pY291bnQudHgrKzsKLQl9Ci0KLQlpZiAodWFydF9jaXJjX2NoYXJzX3BlbmRpbmcoeG1pdCkgPCBXQUtFVVBfQ0hBUlMpCi0JCXVhcnRfd3JpdGVfd2FrZXVwKHBvcnQpOwotCi0JaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSkKLQkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKLQotIG91dDoKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfdHhfZW1wdHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQl1bnNpZ25lZCBsb25nIHVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCXVuc2lnbmVkIGxvbmcgdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOwotCi0JaWYgKHVmY29uICYgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkgewotCQlpZiAoKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9tYXNrKSAhPSAwIHx8Ci0JCSAgICAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpKQotCQkJcmV0dXJuIDA7Ci0KLQkJcmV0dXJuIDE7Ci0JfQotCi0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOwotfQotCi0vKiBubyBtb2RlbSBjb250cm9sIGxpbmVzICovCi1zdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXVuc2lnbmVkIGludCB1bXN0YXQgPSByZF9yZWdiKHBvcnQsUzNDMjQxMF9VTVNUQVQpOwotCi0JaWYgKHVtc3RhdCAmIFMzQzI0MTBfVU1TVEFUX0NUUykKLQkJcmV0dXJuIFRJT0NNX0NBUiB8IFRJT0NNX0RTUiB8IFRJT0NNX0NUUzsKLQllbHNlCi0JCXJldHVybiBUSU9DTV9DQVIgfCBUSU9DTV9EU1I7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgbWN0cmwpCi17Ci0JLyogdG9kbyAtIHBvc3NpYmx5IHJlbW92ZSBBRkMgYW5kIGRvIG1hbnVhbCBDVFMgKi8KLX0KLQotc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBicmVha19zdGF0ZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGludCB1Y29uOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQotCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0KLQlpZiAoYnJlYWtfc3RhdGUpCi0JCXVjb24gfD0gUzNDMjQxMF9VQ09OX1NCUkVBSzsKLQllbHNlCi0JCXVjb24gJj0gflMzQzI0MTBfVUNPTl9TQlJFQUs7Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7Ci0KLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5sb2NrLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3NodXRkb3duKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQotCWlmIChvdXJwb3J0LT50eF9jbGFpbWVkKSB7Ci0JCWZyZWVfaXJxKFRYX0lSUShwb3J0KSwgb3VycG9ydCk7Ci0JCXR4X2VuYWJsZWQocG9ydCkgPSAwOwotCQlvdXJwb3J0LT50eF9jbGFpbWVkID0gMDsKLQl9Ci0KLQlpZiAob3VycG9ydC0+cnhfY2xhaW1lZCkgewotCQlmcmVlX2lycShSWF9JUlEocG9ydCksIG91cnBvcnQpOwotCQlvdXJwb3J0LT5yeF9jbGFpbWVkID0gMDsKLQkJcnhfZW5hYmxlZChwb3J0KSA9IDA7Ci0JfQotfQotCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3RhcnR1cChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cDogcG9ydD0lcCAoJTA4bHgsJXApXG4iLAotCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlKTsKLQotCXJ4X2VuYWJsZWQocG9ydCkgPSAxOwotCi0JcmV0ID0gcmVxdWVzdF9pcnEoUlhfSVJRKHBvcnQpLAotCQkJICBzM2MyNHh4X3NlcmlhbF9yeF9jaGFycywgMCwKLQkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOwotCi0JaWYgKHJldCAhPSAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiY2Fubm90IGdldCBpcnEgJWRcbiIsIFJYX0lSUShwb3J0KSk7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0Jb3VycG9ydC0+cnhfY2xhaW1lZCA9IDE7Ci0KLQlkYmcoInJlcXVlc3RpbmcgdHggaXJxLi4uXG4iKTsKLQotCXR4X2VuYWJsZWQocG9ydCkgPSAxOwotCi0JcmV0ID0gcmVxdWVzdF9pcnEoVFhfSVJRKHBvcnQpLAotCQkJICBzM2MyNHh4X3NlcmlhbF90eF9jaGFycywgMCwKLQkJCSAgczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCksIG91cnBvcnQpOwotCi0JaWYgKHJldCkgewotCQlwcmludGsoS0VSTl9FUlIgImNhbm5vdCBnZXQgaXJxICVkXG4iLCBUWF9JUlEocG9ydCkpOwotCQlnb3RvIGVycjsKLQl9Ci0KLQlvdXJwb3J0LT50eF9jbGFpbWVkID0gMTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfc3RhcnR1cCBva1xuIik7Ci0KLQkvKiB0aGUgcG9ydCByZXNldCBjb2RlIHNob3VsZCBoYXZlIGRvbmUgdGhlIGNvcnJlY3QKLQkgKiByZWdpc3RlciBzZXR1cCBmb3IgdGhlIHBvcnQgY29udHJvbHMgKi8KLQotCXJldHVybiByZXQ7Ci0KLSBlcnI6Ci0JczNjMjR4eF9zZXJpYWxfc2h1dGRvd24ocG9ydCk7Ci0JcmV0dXJuIHJldDsKLX0KLQotLyogcG93ZXIgcG93ZXIgbWFuYWdlbWVudCBjb250cm9sICovCi0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX3BtKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCBsZXZlbCwKLQkJCSAgICAgIHVuc2lnbmVkIGludCBvbGQpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQotCXN3aXRjaCAobGV2ZWwpIHsKLQljYXNlIDM6Ci0JCWlmICghSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspICYmIG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCkKLQkJCWNsa19kaXNhYmxlKG91cnBvcnQtPmJhdWRjbGspOwotCi0JCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7Ci0JCWJyZWFrOwotCi0JY2FzZSAwOgotCQljbGtfZW5hYmxlKG91cnBvcnQtPmNsayk7Ci0KLQkJaWYgKCFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykgJiYgb3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMKQotCQkJY2xrX2VuYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKLQotCQlicmVhazsKLQlkZWZhdWx0OgotCQlwcmludGsoS0VSTl9FUlIgInMzYzI0eHhfc2VyaWFsOiB1bmtub3duIHBtICVkXG4iLCBsZXZlbCk7Ci0JfQotfQotCi0vKiBiYXVkIHJhdGUgY2FsY3VsYXRpb24KLSAqCi0gKiBUaGUgVUFSVHMgb24gdGhlIFMzQzI0MTAvUzNDMjQ0MCBjYW4gdGFrZSB0aGVpciBjbG9ja3MgZnJvbSBhIG51bWJlcgotICogb2YgZGlmZmVyZW50IHNvdXJjZXMsIGluY2x1ZGluZyB0aGUgcGVyaXBoZXJhbCBjbG9jayAoInBjbGsiKSBhbmQgYW4KLSAqIGV4dGVybmFsIGNsb2NrICgidWNsayIpLiBUaGUgUzNDMjQ0MCBhbHNvIGFkZHMgdGhlIGNvcmUgY2xvY2sgKCJmY2xrIikKLSAqIHdpdGggYSBwcm9ncmFtbWFibGUgZXh0cmEgZGl2aXNvci4KLSAqCi0gKiBUaGUgZm9sbG93aW5nIGNvZGUgZ29lcyB0aHJvdWdoIHRoZSBjbG9jayBzb3VyY2VzLCBhbmQgY2FsY3VsYXRlcyB0aGUKLSAqIGJhdWQgY2xvY2tzIChhbmQgdGhlIHJlc3VsdGFudCBhY3R1YWwgYmF1ZCByYXRlcykgYW5kIHRoZW4gdHJpZXMgdG8KLSAqIHBpY2sgdGhlIGNsb3Nlc3Qgb25lIGFuZCBzZWxlY3QgdGhhdC4KLSAqCi0qLwotCi0KLSNkZWZpbmUgTUFYX0NMS1MgKDgpCi0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyB0bXBfY2xrc3JjID0gewotCS5uYW1lCQk9ICJwY2xrIiwKLQkubWluX2JhdWQJPSAwLAotCS5tYXhfYmF1ZAk9IDAsCi0JLmRpdmlzb3IJPSAxLAotfTsKLQotc3RhdGljIGlubGluZSBpbnQKLXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqYykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCXJldHVybiAoaW5mby0+Z2V0X2Nsa3NyYykocG9ydCwgYyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50Ci1zM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmMpCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7Ci0KLQlyZXR1cm4gKGluZm8tPnNldF9jbGtzcmMpKHBvcnQsIGMpOwotfQotCi1zdHJ1Y3QgYmF1ZF9jYWxjIHsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYwkqY2xrc3JjOwotCXVuc2lnbmVkIGludAkJCSBjYWxjOwotCXVuc2lnbmVkIGludAkJCSBxdW90OwotCXN0cnVjdCBjbGsJCQkqc3JjOwotfTsKLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChzdHJ1Y3QgYmF1ZF9jYWxjICpjYWxjLAotCQkJCSAgIHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3NyYywKLQkJCQkgICB1bnNpZ25lZCBpbnQgYmF1ZCkKLXsKLQl1bnNpZ25lZCBsb25nIHJhdGU7Ci0KLQljYWxjLT5zcmMgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLT5uYW1lKTsKLQlpZiAoY2FsYy0+c3JjID09IE5VTEwgfHwgSVNfRVJSKGNhbGMtPnNyYykpCi0JCXJldHVybiAwOwotCi0JcmF0ZSA9IGNsa19nZXRfcmF0ZShjYWxjLT5zcmMpOwotCXJhdGUgLz0gY2xrc3JjLT5kaXZpc29yOwotCi0JY2FsYy0+Y2xrc3JjID0gY2xrc3JjOwotCWNhbGMtPnF1b3QgPSAocmF0ZSArICg4ICogYmF1ZCkpIC8gKDE2ICogYmF1ZCk7Ci0JY2FsYy0+Y2FsYyA9IChyYXRlIC8gKGNhbGMtPnF1b3QgKiAxNikpOwotCi0JY2FsYy0+cXVvdC0tOwotCXJldHVybiAxOwotfQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldGNsayhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCQkgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICoqY2xrc3JjLAotCQkJCQkgIHN0cnVjdCBjbGsgKipjbGssCi0JCQkJCSAgdW5zaWduZWQgaW50IGJhdWQpCi17Ci0Jc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnID0gczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrcDsKLQlzdHJ1Y3QgYmF1ZF9jYWxjIHJlc1tNQVhfQ0xLU107Ci0Jc3RydWN0IGJhdWRfY2FsYyAqcmVzcHRyLCAqYmVzdCwgKnNwdHI7Ci0JaW50IGk7Ci0KLQljbGtwID0gY2ZnLT5jbG9ja3M7Ci0JYmVzdCA9IE5VTEw7Ci0KLQlpZiAoY2ZnLT5jbG9ja3Nfc2l6ZSA8IDIpIHsKLQkJaWYgKGNmZy0+Y2xvY2tzX3NpemUgPT0gMCkKLQkJCWNsa3AgPSAmdG1wX2Nsa3NyYzsKLQotCQkvKiBjaGVjayB0byBzZWUgaWYgd2UncmUgc291cmNpbmcgZmNsaywgYW5kIGlmIHNvIHdlJ3JlCi0JCSAqIGdvaW5nIHRvIGhhdmUgdG8gdXBkYXRlIHRoZSBjbG9jayBzb3VyY2UKLQkJICovCi0KLQkJaWYgKHN0cmNtcChjbGtwLT5uYW1lLCAiZmNsayIpID09IDApIHsKLQkJCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIHNyYzsKLQotCQkJczNjMjR4eF9zZXJpYWxfZ2V0c291cmNlKHBvcnQsICZzcmMpOwotCi0JCQkvKiBjaGVjayB0aGF0IHRoZSBwb3J0IGFscmVhZHkgdXNpbmcgZmNsaywgYW5kIGlmCi0JCQkgKiBub3QsIHRoZW4gcmUtc2VsZWN0IGZjbGsKLQkJCSAqLwotCi0JCQlpZiAoc3RyY21wKHNyYy5uYW1lLCBjbGtwLT5uYW1lKSA9PSAwKSB7Ci0JCQkJczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHBvcnQsIGNsa3ApOwotCQkJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmc3JjKTsKLQkJCX0KLQotCQkJY2xrcC0+ZGl2aXNvciA9IHNyYy5kaXZpc29yOwotCQl9Ci0KLQkJczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQocmVzLCBwb3J0LCBjbGtwLCBiYXVkKTsKLQkJYmVzdCA9IHJlczsKLQkJcmVzcHRyID0gYmVzdCArIDE7Ci0JfSBlbHNlIHsKLQkJcmVzcHRyID0gcmVzOwotCi0JCWZvciAoaSA9IDA7IGkgPCBjZmctPmNsb2Nrc19zaXplOyBpKyssIGNsa3ArKykgewotCQkJaWYgKHMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHJlc3B0ciwgcG9ydCwgY2xrcCwgYmF1ZCkpCi0JCQkJcmVzcHRyKys7Ci0JCX0KLQl9Ci0KLQkvKiBvaywgd2Ugbm93IG5lZWQgdG8gc2VsZWN0IHRoZSBiZXN0IGNsb2NrIHdlIGZvdW5kICovCi0KLQlpZiAoIWJlc3QpIHsKLQkJdW5zaWduZWQgaW50IGRldmlhdGlvbiA9ICgxPDwzMCl8KCgxPDwzMCktMSk7Ci0JCWludCBjYWxjX2RldmlhdGlvbjsKLQotCQlmb3IgKHNwdHIgPSByZXM7IHNwdHIgPCByZXNwdHI7IHNwdHIrKykgewotCQkJcHJpbnRrKEtFUk5fREVCVUcKLQkJCSAgICAgICAiZm91bmQgY2xrICVwICglcykgcXVvdCAlZCwgY2FsYyAlZFxuIiwKLQkJCSAgICAgICBzcHRyLT5jbGtzcmMsIHNwdHItPmNsa3NyYy0+bmFtZSwKLQkJCSAgICAgICBzcHRyLT5xdW90LCBzcHRyLT5jYWxjKTsKLQotCQkJY2FsY19kZXZpYXRpb24gPSBiYXVkIC0gc3B0ci0+Y2FsYzsKLQkJCWlmIChjYWxjX2RldmlhdGlvbiA8IDApCi0JCQkJY2FsY19kZXZpYXRpb24gPSAtY2FsY19kZXZpYXRpb247Ci0KLQkJCWlmIChjYWxjX2RldmlhdGlvbiA8IGRldmlhdGlvbikgewotCQkJCWJlc3QgPSBzcHRyOwotCQkJCWRldmlhdGlvbiA9IGNhbGNfZGV2aWF0aW9uOwotCQkJfQotCQl9Ci0KLQkJcHJpbnRrKEtFUk5fREVCVUcgImJlc3QgJXAgKGRldmlhdGlvbiAlZClcbiIsIGJlc3QsIGRldmlhdGlvbik7Ci0JfQotCi0JcHJpbnRrKEtFUk5fREVCVUcgInNlbGVjdGVkIGNsb2NrICVwICglcykgcXVvdCAlZCwgY2FsYyAlZFxuIiwKLQkgICAgICAgYmVzdC0+Y2xrc3JjLCBiZXN0LT5jbGtzcmMtPm5hbWUsIGJlc3QtPnF1b3QsIGJlc3QtPmNhbGMpOwotCi0JLyogc3RvcmUgcmVzdWx0cyB0byBwYXNzIGJhY2sgKi8KLQotCSpjbGtzcmMgPSBiZXN0LT5jbGtzcmM7Ci0JKmNsayAgICA9IGJlc3QtPnNyYzsKLQotCXJldHVybiBiZXN0LT5xdW90OwotfQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKnRlcm1pb3MsCi0JCQkJICAgICAgIHN0cnVjdCBrdGVybWlvcyAqb2xkKQotewotCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZyA9IHMzYzI0eHhfcG9ydF90b19jZmcocG9ydCk7Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gdG9fb3VycG9ydChwb3J0KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrc3JjID0gTlVMTDsKLQlzdHJ1Y3QgY2xrICpjbGsgPSBOVUxMOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgaW50IGJhdWQsIHF1b3Q7Ci0JdW5zaWduZWQgaW50IHVsY29uOwotCXVuc2lnbmVkIGludCB1bWNvbjsKLQotCS8qCi0JICogV2UgZG9uJ3Qgc3VwcG9ydCBtb2RlbSBjb250cm9sIGxpbmVzLgotCSAqLwotCXRlcm1pb3MtPmNfY2ZsYWcgJj0gfihIVVBDTCB8IENNU1BBUik7Ci0JdGVybWlvcy0+Y19jZmxhZyB8PSBDTE9DQUw7Ci0KLQkvKgotCSAqIEFzayB0aGUgY29yZSB0byBjYWxjdWxhdGUgdGhlIGRpdmlzb3IgZm9yIHVzLgotCSAqLwotCi0JYmF1ZCA9IHVhcnRfZ2V0X2JhdWRfcmF0ZShwb3J0LCB0ZXJtaW9zLCBvbGQsIDAsIDExNTIwMCo4KTsKLQotCWlmIChiYXVkID09IDM4NDAwICYmIChwb3J0LT5mbGFncyAmIFVQRl9TUERfTUFTSykgPT0gVVBGX1NQRF9DVVNUKQotCQlxdW90ID0gcG9ydC0+Y3VzdG9tX2Rpdmlzb3I7Ci0JZWxzZQotCQlxdW90ID0gczNjMjR4eF9zZXJpYWxfZ2V0Y2xrKHBvcnQsICZjbGtzcmMsICZjbGssIGJhdWQpOwotCi0JLyogY2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgIHRvIGNoYW5nZSBjbG9jayBzb3VyY2UgKi8KLQotCWlmIChvdXJwb3J0LT5jbGtzcmMgIT0gY2xrc3JjIHx8IG91cnBvcnQtPmJhdWRjbGsgIT0gY2xrKSB7Ci0JCXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShwb3J0LCBjbGtzcmMpOwotCi0JCWlmIChvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwgJiYgIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSkgewotCQkJY2xrX2Rpc2FibGUob3VycG9ydC0+YmF1ZGNsayk7Ci0JCQlvdXJwb3J0LT5iYXVkY2xrICA9IE5VTEw7Ci0JCX0KLQotCQljbGtfZW5hYmxlKGNsayk7Ci0KLQkJb3VycG9ydC0+Y2xrc3JjID0gY2xrc3JjOwotCQlvdXJwb3J0LT5iYXVkY2xrID0gY2xrOwotCX0KLQotCXN3aXRjaCAodGVybWlvcy0+Y19jZmxhZyAmIENTSVpFKSB7Ci0JY2FzZSBDUzU6Ci0JCWRiZygiY29uZmlnOiA1Yml0cy9jaGFyXG4iKTsKLQkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M1OwotCQlicmVhazsKLQljYXNlIENTNjoKLQkJZGJnKCJjb25maWc6IDZiaXRzL2NoYXJcbiIpOwotCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzY7Ci0JCWJyZWFrOwotCWNhc2UgQ1M3OgotCQlkYmcoImNvbmZpZzogN2JpdHMvY2hhclxuIik7Ci0JCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNzsKLQkJYnJlYWs7Ci0JY2FzZSBDUzg6Ci0JZGVmYXVsdDoKLQkJZGJnKCJjb25maWc6IDhiaXRzL2NoYXJcbiIpOwotCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzg7Ci0JCWJyZWFrOwotCX0KLQotCS8qIHByZXNlcnZlIG9yaWdpbmFsIGxjb24gSVIgc2V0dGluZ3MgKi8KLQl1bGNvbiB8PSAoY2ZnLT51bGNvbiAmIFMzQzI0MTBfTENPTl9JUk0pOwotCi0JaWYgKHRlcm1pb3MtPmNfY2ZsYWcgJiBDU1RPUEIpCi0JCXVsY29uIHw9IFMzQzI0MTBfTENPTl9TVE9QQjsKLQotCXVtY29uID0gKHRlcm1pb3MtPmNfY2ZsYWcgJiBDUlRTQ1RTKSA/IFMzQzI0MTBfVU1DT01fQUZDIDogMDsKLQotCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFSRU5CKSB7Ci0JCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgUEFST0REKQotCQkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BPREQ7Ci0JCWVsc2UKLQkJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QRVZFTjsKLQl9IGVsc2UgewotCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUE5PTkU7Ci0JfQotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLQotCWRiZygic2V0dGluZyB1bGNvbiB0byAlMDh4LCBicmRkaXYgdG8gJWRcbiIsIHVsY29uLCBxdW90KTsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgdWxjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQlJESVYsIHF1b3QpOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTUNPTiwgdW1jb24pOwotCi0JZGJnKCJ1YXJ0OiB1bGNvbiA9IDB4JTA4eCwgdWNvbiA9IDB4JTA4eCwgdWZjb24gPSAweCUwOHhcbiIsCi0JICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiksCi0JICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKSwKLQkgICAgcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OKSk7Ci0KLQkvKgotCSAqIFVwZGF0ZSB0aGUgcGVyLXBvcnQgdGltZW91dC4KLQkgKi8KLQl1YXJ0X3VwZGF0ZV90aW1lb3V0KHBvcnQsIHRlcm1pb3MtPmNfY2ZsYWcsIGJhdWQpOwotCi0JLyoKLQkgKiBXaGljaCBjaGFyYWN0ZXIgc3RhdHVzIGZsYWdzIGFyZSB3ZSBpbnRlcmVzdGVkIGluPwotCSAqLwotCXBvcnQtPnJlYWRfc3RhdHVzX21hc2sgPSBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTjsKLQlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElOUENLKQotCQlwb3J0LT5yZWFkX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRSB8IFMzQzI0MTBfVUVSU1RBVF9QQVJJVFk7Ci0KLQkvKgotCSAqIFdoaWNoIGNoYXJhY3RlciBzdGF0dXMgZmxhZ3Mgc2hvdWxkIHdlIGlnbm9yZT8KLQkgKi8KLQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgPSAwOwotCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSUdOUEFSKQotCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUzNDMjQxMF9VRVJTVEFUX09WRVJSVU47Ci0JaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJR05CUksgJiYgdGVybWlvcy0+Y19pZmxhZyAmIElHTlBBUikKLQkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9GUkFNRTsKLQotCS8qCi0JICogSWdub3JlIGFsbCBjaGFyYWN0ZXJzIGlmIENSRUFEIGlzIG5vdCBzZXQuCi0JICovCi0JaWYgKCh0ZXJtaW9zLT5jX2NmbGFnICYgQ1JFQUQpID09IDApCi0JCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBSWFNUQVRfRFVNTVlfUkVBRDsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKLX0KLQotc3RhdGljIGNvbnN0IGNoYXIgKnMzYzI0eHhfc2VyaWFsX3R5cGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlzd2l0Y2ggKHBvcnQtPnR5cGUpIHsKLQljYXNlIFBPUlRfUzNDMjQxMDoKLQkJcmV0dXJuICJTM0MyNDEwIjsKLQljYXNlIFBPUlRfUzNDMjQ0MDoKLQkJcmV0dXJuICJTM0MyNDQwIjsKLQljYXNlIFBPUlRfUzNDMjQxMjoKLQkJcmV0dXJuICJTM0MyNDEyIjsKLQlkZWZhdWx0OgotCQlyZXR1cm4gTlVMTDsKLQl9Ci19Ci0KLSNkZWZpbmUgTUFQX1NJWkUgKDB4MTAwKQotCi1zdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKLXsKLQlyZWxlYXNlX21lbV9yZWdpb24ocG9ydC0+bWFwYmFzZSwgTUFQX1NJWkUpOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQotewotCWNvbnN0IGNoYXIgKm5hbWUgPSBzM2MyNHh4X3NlcmlhbF9wb3J0bmFtZShwb3J0KTsKLQlyZXR1cm4gcmVxdWVzdF9tZW1fcmVnaW9uKHBvcnQtPm1hcGJhc2UsIE1BUF9TSVpFLCBuYW1lKSA/IDAgOiAtRUJVU1k7Ci19Ci0KLXN0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX2NvbmZpZ19wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBmbGFncykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCWlmIChmbGFncyAmIFVBUlRfQ09ORklHX1RZUEUgJiYKLQkgICAgczNjMjR4eF9zZXJpYWxfcmVxdWVzdF9wb3J0KHBvcnQpID09IDApCi0JCXBvcnQtPnR5cGUgPSBpbmZvLT50eXBlOwotfQotCi0vKgotICogdmVyaWZ5IHRoZSBuZXcgc2VyaWFsX3N0cnVjdCAoZm9yIFRJT0NTU0VSSUFMKS4KLSAqLwotc3RhdGljIGludAotczNjMjR4eF9zZXJpYWxfdmVyaWZ5X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHNlcmlhbF9zdHJ1Y3QgKnNlcikKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKLQotCWlmIChzZXItPnR5cGUgIT0gUE9SVF9VTktOT1dOICYmIHNlci0+dHlwZSAhPSBpbmZvLT50eXBlKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXJldHVybiAwOwotfQotCi0KLSNpZmRlZiBDT05GSUdfU0VSSUFMX1MzQzI0MTBfQ09OU09MRQotCi1zdGF0aWMgc3RydWN0IGNvbnNvbGUgczNjMjR4eF9zZXJpYWxfY29uc29sZTsKLQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFICZzM2MyNHh4X3NlcmlhbF9jb25zb2xlCi0jZWxzZQotI2RlZmluZSBTM0MyNFhYX1NFUklBTF9DT05TT0xFIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgc3RydWN0IHVhcnRfb3BzIHMzYzI0eHhfc2VyaWFsX29wcyA9IHsKLQkucG0JCT0gczNjMjR4eF9zZXJpYWxfcG0sCi0JLnR4X2VtcHR5CT0gczNjMjR4eF9zZXJpYWxfdHhfZW1wdHksCi0JLmdldF9tY3RybAk9IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybCwKLQkuc2V0X21jdHJsCT0gczNjMjR4eF9zZXJpYWxfc2V0X21jdHJsLAotCS5zdG9wX3R4CT0gczNjMjR4eF9zZXJpYWxfc3RvcF90eCwKLQkuc3RhcnRfdHgJPSBzM2MyNHh4X3NlcmlhbF9zdGFydF90eCwKLQkuc3RvcF9yeAk9IHMzYzI0eHhfc2VyaWFsX3N0b3BfcngsCi0JLmVuYWJsZV9tcwk9IHMzYzI0eHhfc2VyaWFsX2VuYWJsZV9tcywKLQkuYnJlYWtfY3RsCT0gczNjMjR4eF9zZXJpYWxfYnJlYWtfY3RsLAotCS5zdGFydHVwCT0gczNjMjR4eF9zZXJpYWxfc3RhcnR1cCwKLQkuc2h1dGRvd24JPSBzM2MyNHh4X3NlcmlhbF9zaHV0ZG93biwKLQkuc2V0X3Rlcm1pb3MJPSBzM2MyNHh4X3NlcmlhbF9zZXRfdGVybWlvcywKLQkudHlwZQkJPSBzM2MyNHh4X3NlcmlhbF90eXBlLAotCS5yZWxlYXNlX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9yZWxlYXNlX3BvcnQsCi0JLnJlcXVlc3RfcG9ydAk9IHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydCwKLQkuY29uZmlnX3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9jb25maWdfcG9ydCwKLQkudmVyaWZ5X3BvcnQJPSBzM2MyNHh4X3NlcmlhbF92ZXJpZnlfcG9ydCwKLX07Ci0KLQotc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciBzM2MyNHh4X3VhcnRfZHJ2ID0gewotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkuZGV2X25hbWUJPSAiczNjMjQxMF9zZXJpYWwiLAotCS5ucgkJPSAzLAotCS5jb25zCQk9IFMzQzI0WFhfU0VSSUFMX0NPTlNPTEUsCi0JLmRyaXZlcl9uYW1lCT0gUzNDMjRYWF9TRVJJQUxfTkFNRSwKLQkubWFqb3IJCT0gUzNDMjRYWF9TRVJJQUxfTUFKT1IsCi0JLm1pbm9yCQk9IFMzQzI0WFhfU0VSSUFMX01JTk9SLAotfTsKLQotc3RhdGljIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCBzM2MyNHh4X3NlcmlhbF9wb3J0c1tOUl9QT1JUU10gPSB7Ci0JWzBdID0gewotCQkucG9ydCA9IHsKLQkJCS5sb2NrCQk9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHMzYzI0eHhfc2VyaWFsX3BvcnRzWzBdLnBvcnQubG9jayksCi0JCQkuaW90eXBlCQk9IFVQSU9fTUVNLAotCQkJLmlycQkJPSBJUlFfUzNDVUFSVF9SWDAsCi0JCQkudWFydGNsawk9IDAsCi0JCQkuZmlmb3NpemUJPSAxNiwKLQkJCS5vcHMJCT0gJnMzYzI0eHhfc2VyaWFsX29wcywKLQkJCS5mbGFncwkJPSBVUEZfQk9PVF9BVVRPQ09ORiwKLQkJCS5saW5lCQk9IDAsCi0JCX0KLQl9LAotCVsxXSA9IHsKLQkJLnBvcnQgPSB7Ci0JCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1sxXS5wb3J0LmxvY2spLAotCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgxLAotCQkJLnVhcnRjbGsJPSAwLAotCQkJLmZpZm9zaXplCT0gMTYsCi0JCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCi0JCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCi0JCQkubGluZQkJPSAxLAotCQl9Ci0JfSwKLSNpZiBOUl9QT1JUUyA+IDIKLQotCVsyXSA9IHsKLQkJLnBvcnQgPSB7Ci0JCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1syXS5wb3J0LmxvY2spLAotCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKLQkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgyLAotCQkJLnVhcnRjbGsJPSAwLAotCQkJLmZpZm9zaXplCT0gMTYsCi0JCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCi0JCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCi0JCQkubGluZQkJPSAyLAotCQl9Ci0JfQotI2VuZGlmCi19OwotCi0vKiBzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQKLSAqCi0gKiB3cmFwcGVyIHRvIGNhbGwgdGhlIHNwZWNpZmljIHJlc2V0IGZvciB0aGlzIHBvcnQgKHJlc2V0IHRoZSBmaWZvcwotICogYW5kIHRoZSBzZXR0aW5ncykKLSovCi0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICogcG9ydCwKLQkJCQkJICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOwotCi0JcmV0dXJuIChpbmZvLT5yZXNldF9wb3J0KShwb3J0LCBjZmcpOwotfQotCi0vKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQKLSAqCi0gKiBpbml0aWFsaXNlIGEgc2luZ2xlIHNlcmlhbCBwb3J0IGZyb20gdGhlIHBsYXRmb3JtIGRldmljZSBnaXZlbgotICovCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvLAotCQkJCSAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0ZGV2KQotewotCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKLQlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmc7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBwb3J0PSVwLCBwbGF0ZGV2PSVwXG4iLCBwb3J0LCBwbGF0ZGV2KTsKLQotCWlmIChwbGF0ZGV2ID09IE5VTEwpCi0JCXJldHVybiAtRU5PREVWOwotCi0JY2ZnID0gczNjMjR4eF9kZXZfdG9fY2ZnKCZwbGF0ZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQtPm1hcGJhc2UgIT0gMCkKLQkJcmV0dXJuIDA7Ci0KLQlpZiAoY2ZnLT5od3BvcnQgPiAzKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCS8qIHNldHVwIGluZm8gZm9yIHBvcnQgKi8KLQlwb3J0LT5kZXYJPSAmcGxhdGRldi0+ZGV2OwotCW91cnBvcnQtPmluZm8JPSBpbmZvOwotCi0JLyogY29weSB0aGUgaW5mbyBpbiBmcm9tIHByb3ZpZGVkIHN0cnVjdHVyZSAqLwotCW91cnBvcnQtPnBvcnQuZmlmb3NpemUgPSBpbmZvLT5maWZvc2l6ZTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiAlcCAoaHcgJWQpLi4uXG4iLCBwb3J0LCBjZmctPmh3cG9ydCk7Ci0KLQlwb3J0LT51YXJ0Y2xrID0gMTsKLQotCWlmIChjZmctPnVhcnRfZmxhZ3MgJiBVUEZfQ09OU19GTE9XKSB7Ci0JCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBlbmFibGluZyBmbG93IGNvbnRyb2xcbiIpOwotCQlwb3J0LT5mbGFncyB8PSBVUEZfQ09OU19GTE9XOwotCX0KLQotCS8qIHNvcnQgb3VyIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzZXMgZm9yIGVhY2ggVUFSVCAqLwotCi0JcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBsYXRkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKLQlpZiAocmVzID09IE5VTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gZmluZCBtZW1vcnkgcmVzb3VyY2UgZm9yIHVhcnRcbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlkYmcoInJlc291cmNlICVwICglbHguLiVseClcbiIsIHJlcywgcmVzLT5zdGFydCwgcmVzLT5lbmQpOwotCi0JcG9ydC0+bWFwYmFzZQk9IHJlcy0+c3RhcnQ7Ci0JcG9ydC0+bWVtYmFzZQk9IFMzQzI0WFhfVkFfVUFSVCArIChyZXMtPnN0YXJ0IC0gUzNDMjRYWF9QQV9VQVJUKTsKLQlyZXQgPSBwbGF0Zm9ybV9nZXRfaXJxKHBsYXRkZXYsIDApOwotCWlmIChyZXQgPCAwKQotCQlwb3J0LT5pcnEgPSAwOwotCWVsc2UKLQkJcG9ydC0+aXJxID0gcmV0OwotCi0Jb3VycG9ydC0+Y2xrCT0gY2xrX2dldCgmcGxhdGRldi0+ZGV2LCAidWFydCIpOwotCi0JZGJnKCJwb3J0OiBtYXA9JTA4eCwgbWVtPSUwOHgsIGlycT0lZCwgY2xvY2s9JWxkXG4iLAotCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlLCBwb3J0LT5pcnEsIHBvcnQtPnVhcnRjbGspOwotCi0JLyogcmVzZXQgdGhlIGZpZm9zIChhbmQgc2V0dXAgdGhlIHVhcnQpICovCi0JczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0KHBvcnQsIGNmZyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIERldmljZSBkcml2ZXIgc2VyaWFsIHBvcnQgcHJvYmUgKi8KLQotc3RhdGljIGludCBwcm9iZV9pbmRleCA9IDA7Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LAotCQkJCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQ7Ci0JaW50IHJldDsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfcHJvYmUoJXAsICVwKSAlZFxuIiwgZGV2LCBpbmZvLCBwcm9iZV9pbmRleCk7Ci0KLQlvdXJwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW3Byb2JlX2luZGV4XTsKLQlwcm9iZV9pbmRleCsrOwotCi0JZGJnKCIlczogaW5pdGlhbGlzaW5nIHBvcnQgJXAuLi5cbiIsIF9fZnVuY19fLCBvdXJwb3J0KTsKLQotCXJldCA9IHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydChvdXJwb3J0LCBpbmZvLCBkZXYpOwotCWlmIChyZXQgPCAwKQotCQlnb3RvIHByb2JlX2VycjsKLQotCWRiZygiJXM6IGFkZGluZyBwb3J0XG4iLCBfX2Z1bmNfXyk7Ci0JdWFydF9hZGRfb25lX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsICZvdXJwb3J0LT5wb3J0KTsKLQlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShkZXYsICZvdXJwb3J0LT5wb3J0KTsKLQotCXJldHVybiAwOwotCi0gcHJvYmVfZXJyOgotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQpCi0JCXVhcnRfcmVtb3ZlX29uZV9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi0vKiBVQVJUIHBvd2VyIG1hbmFnZW1lbnQgY29kZSAqLwotCi0jaWZkZWYgQ09ORklHX1BNCi0KLXN0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOwotCi0JaWYgKHBvcnQpCi0JCXVhcnRfc3VzcGVuZF9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoJmRldi0+ZGV2KTsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOwotCi0JaWYgKHBvcnQpIHsKLQkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOwotCQlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KSk7Ci0JCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7Ci0KLQkJdWFydF9yZXN1bWVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgcG9ydCk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0jZGVmaW5lIHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQgTlVMTAotI2RlZmluZSBzM2MyNHh4X3NlcmlhbF9yZXN1bWUgIE5VTEwKLSNlbmRpZgotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXQoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAotCQkJICAgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKLXsKLQlkYmcoInMzYzI0eHhfc2VyaWFsX2luaXQoJXAsJXApXG4iLCBkcnYsIGluZm8pOwotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoZHJ2KTsKLX0KLQotCi0vKiBub3cgY29tZXMgdGhlIGNvZGUgdG8gaW5pdGlhbGlzZSBlaXRoZXIgdGhlIHMzYzI0MTAgb3IgczNjMjQ0MCBzZXJpYWwKLSAqIHBvcnQgaW5mb3JtYXRpb24KLSovCi0KLS8qIGNwdSBzcGVjaWZpYyB2YXJpYXRpb25zIG9uIHRoZSBzZXJpYWwgcG9ydCBzdXBwb3J0ICovCi0KLSNpZmRlZiBDT05GSUdfQ1BVX1MzQzI0MDAKLQotc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKLXsKLQljbGstPmRpdmlzb3IgPSAxOwotCWNsay0+bmFtZSA9ICJwY2xrIjsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MDBfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0JZGJnKCJzM2MyNDAwX3NlcmlhbF9yZXNldHBvcnQ6IHBvcnQ9JXAgKCUwOGx4KSwgY2ZnPSVwXG4iLAotCSAgICBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOwotCi0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sICBjZmctPnVjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7Ci0KLQkvKiByZXNldCBib3RoIGZpZm9zICovCi0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MDBfdWFydF9pbmYgPSB7Ci0JLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQwMCBVQVJUIiwKLQkudHlwZQkJPSBQT1JUX1MzQzI0MDAsCi0JLmZpZm9zaXplCT0gMTYsCi0JLnJ4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfUlhNQVNLLAotCS5yeF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9SWFNISUZULAotCS5yeF9maWZvZnVsbAk9IFMzQzI0MTBfVUZTVEFUX1JYRlVMTCwKLQkudHhfZmlmb2Z1bGwJPSBTM0MyNDEwX1VGU1RBVF9UWEZVTEwsCi0JLnR4X2ZpZm9tYXNrCT0gUzNDMjQxMF9VRlNUQVRfVFhNQVNLLAotCS50eF9maWZvc2hpZnQJPSBTM0MyNDEwX1VGU1RBVF9UWFNISUZULAotCS5nZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfZ2V0c291cmNlLAotCS5zZXRfY2xrc3JjCT0gczNjMjQwMF9zZXJpYWxfc2V0c291cmNlLAotCS5yZXNldF9wb3J0CT0gczNjMjQwMF9zZXJpYWxfcmVzZXRwb3J0LAotfTsKLQotc3RhdGljIGludCBzM2MyNDAwX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0MDBfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDAwX3NlcmlhbF9kcnYgPSB7Ci0JLnByb2JlCQk9IHMzYzI0MDBfc2VyaWFsX3Byb2JlLAotCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAotCS5zdXNwZW5kCT0gczNjMjR4eF9zZXJpYWxfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAiczNjMjQwMC11YXJ0IiwKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JfSwKLX07Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0MDBfc2VyaWFsX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQwMF9zZXJpYWxfZHJ2LCAmczNjMjQwMF91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDAwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnMzYzI0MDBfc2VyaWFsX2Rydik7Ci19Ci0KLSNkZWZpbmUgczNjMjQwMF91YXJ0X2luZl9hdCAmczNjMjQwMF91YXJ0X2luZgotI2Vsc2UKLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQwMF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQwMF9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MDBfdWFydF9pbmZfYXQgTlVMTAotCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDAwICovCi0KLS8qIFMzQzI0MTAgc3VwcG9ydCAqLwotCi0jaWZkZWYgQ09ORklHX0NQVV9TM0MyNDEwCisjaW5jbHVkZSAic2Ftc3VuZy5oIgogCiBzdGF0aWMgaW50IHMzYzI0MTBfc2VyaWFsX3NldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAogCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQpAQCAtMTMyMyw4ICs4Myw2IEBACiAJLnJlc2V0X3BvcnQJPSBzM2MyNDEwX3NlcmlhbF9yZXNldHBvcnQsCiB9OwogCi0vKiBkZXZpY2UgbWFuYWdlbWVudCAqLwotCiBzdGF0aWMgaW50IHMzYzI0MTBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKIHsKIAlyZXR1cm4gczNjMjR4eF9zZXJpYWxfcHJvYmUoZGV2LCAmczNjMjQxMF91YXJ0X2luZik7CkBAIC0xMzMzLDYxMiArOTEsMjggQEAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHMzYzI0MTBfc2VyaWFsX2RydiA9IHsKIAkucHJvYmUJCT0gczNjMjQxMF9zZXJpYWxfcHJvYmUsCiAJLnJlbW92ZQkJPSBzM2MyNHh4X3NlcmlhbF9yZW1vdmUsCi0JLnN1c3BlbmQJPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kLAotCS5yZXN1bWUJCT0gczNjMjR4eF9zZXJpYWxfcmVzdW1lLAogCS5kcml2ZXIJCT0gewogCQkubmFtZQk9ICJzM2MyNDEwLXVhcnQiLAogCQkub3duZXIJPSBUSElTX01PRFVMRSwKIAl9LAogfTsKIAotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMF9zZXJpYWxfaW5pdCh2b2lkKQorczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0MTBfc2VyaWFsX2RydiwgJnMzYzI0MTBfdWFydF9pbmYpOworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNDEwX3NlcmlhbF9pbml0KHZvaWQpCiB7CiAJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0MTBfc2VyaWFsX2RydiwgJnMzYzI0MTBfdWFydF9pbmYpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMF9zZXJpYWxfZXhpdCh2b2lkKQorc3RhdGljIHZvaWQgX19leGl0IHMzYzI0MTBfc2VyaWFsX2V4aXQodm9pZCkKIHsKIAlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQxMF9zZXJpYWxfZHJ2KTsKIH0KIAotI2RlZmluZSBzM2MyNDEwX3VhcnRfaW5mX2F0ICZzM2MyNDEwX3VhcnRfaW5mCi0jZWxzZQorbW9kdWxlX2luaXQoczNjMjQxMF9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDEwX3NlcmlhbF9leGl0KTsKIAotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMF9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MTBfdWFydF9pbmZfYXQgTlVMTAotCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDEwICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19DUFVfUzNDMjQ0MCkgfHwgZGVmaW5lZChDT05GSUdfQ1BVX1MzQzI0NDIpCi0KLXN0YXRpYyBpbnQgczNjMjQ0MF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsCi0JCQkJICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCS8vIHRvZG8gLSBwcm9wZXIgZmNsazw+bm9uZmNsayBzd2l0Y2ggLy8KLQotCXVjb24gJj0gflMzQzI0NDBfVUNPTl9DTEtNQVNLOwotCi0JaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1Y2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDQwX1VDT05fVUNMSzsKLQllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAicGNsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1BDTEs7Ci0JZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgImZjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9GQ0xLOwotCWVsc2UgewotCQlwcmludGsoS0VSTl9FUlIgInVua25vd24gY2xvY2sgc291cmNlICVzXG4iLCBjbGstPm5hbWUpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKLXsKLQl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7Ci0JdW5zaWduZWQgbG9uZyB1Y29uMCwgdWNvbjEsIHVjb24yOwotCi0Jc3dpdGNoICh1Y29uICYgUzNDMjQ0MF9VQ09OX0NMS01BU0spIHsKLQljYXNlIFMzQzI0NDBfVUNPTl9VQ0xLOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAidWNsayI7Ci0JCWJyZWFrOwotCi0JY2FzZSBTM0MyNDQwX1VDT05fUENMSzoKLQljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLMjoKLQkJY2xrLT5kaXZpc29yID0gMTsKLQkJY2xrLT5uYW1lID0gInBjbGsiOwotCQlicmVhazsKLQotCWNhc2UgUzNDMjQ0MF9VQ09OX0ZDTEs6Ci0JCS8qIHRoZSBmdW4gb2YgY2FsY3VsYXRpbmcgdGhlIHVhcnQgZGl2aXNvcnMgb24KLQkJICogdGhlIHMzYzI0NDAgKi8KLQotCQl1Y29uMCA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDAgKyBTM0MyNDEwX1VDT04pOwotCQl1Y29uMSA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDEgKyBTM0MyNDEwX1VDT04pOwotCQl1Y29uMiA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDIgKyBTM0MyNDEwX1VDT04pOwotCi0JCXByaW50aygidWNvbnM6ICUwOGx4LCAlMDhseCwgJTA4bHhcbiIsIHVjb24wLCB1Y29uMSwgdWNvbjIpOwotCi0JCXVjb24wICY9IFMzQzI0NDBfVUNPTjBfRElWTUFTSzsKLQkJdWNvbjEgJj0gUzNDMjQ0MF9VQ09OMV9ESVZNQVNLOwotCQl1Y29uMiAmPSBTM0MyNDQwX1VDT04yX0RJVk1BU0s7Ci0KLQkJaWYgKHVjb24wICE9IDApIHsKLQkJCWNsay0+ZGl2aXNvciA9IHVjb24wID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKLQkJCWNsay0+ZGl2aXNvciArPSA2OwotCQl9IGVsc2UgaWYgKHVjb24xICE9IDApIHsKLQkJCWNsay0+ZGl2aXNvciA9IHVjb24xID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKLQkJCWNsay0+ZGl2aXNvciArPSAyMTsKLQkJfSBlbHNlIGlmICh1Y29uMiAhPSAwKSB7Ci0JCQljbGstPmRpdmlzb3IgPSB1Y29uMiA+PiBTM0MyNDQwX1VDT05fRElWU0hJRlQ7Ci0JCQljbGstPmRpdmlzb3IgKz0gMzY7Ci0JCX0gZWxzZSB7Ci0JCQkvKiBtYW51YWwgY2FsaW1zIDQ0LCBzZWVtcyB0byBiZSA5ICovCi0JCQljbGstPmRpdmlzb3IgPSA5OwotCQl9Ci0KLQkJY2xrLT5uYW1lID0gImZjbGsiOwotCQlicmVhazsKLQl9Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCWRiZygiczNjMjQ0MF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKLQkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKLQotCS8qIGVuc3VyZSB3ZSBkb24ndCBjaGFuZ2UgdGhlIGNsb2NrIHNldHRpbmdzLi4uICovCi0KLQl1Y29uICY9IChTM0MyNDQwX1VDT04wX0RJVk1BU0sgfCAoMzw8MTApKTsKLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKLQotCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQ0MF91YXJ0X2luZiA9IHsKLQkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDQwIFVBUlQiLAotCS50eXBlCQk9IFBPUlRfUzNDMjQ0MCwKLQkuZmlmb3NpemUJPSA2NCwKLQkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCi0JLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCi0JLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAotCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKLQkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCi0JLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCi0JLmdldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2UsCi0JLnNldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2UsCi0JLnJlc2V0X3BvcnQJPSBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQsCi19OwotCi0vKiBkZXZpY2UgbWFuYWdlbWVudCAqLwotCi1zdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKLXsKLQlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7Ci0JcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0NDBfdWFydF9pbmYpOwotfQotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDQwX3NlcmlhbF9kcnYgPSB7Ci0JLnByb2JlCQk9IHMzYzI0NDBfc2VyaWFsX3Byb2JlLAotCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAotCS5zdXNwZW5kCT0gczNjMjR4eF9zZXJpYWxfc3VzcGVuZCwKLQkucmVzdW1lCQk9IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm5hbWUJPSAiczNjMjQ0MC11YXJ0IiwKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JfSwKLX07Ci0KLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQ0MF9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDQwX3NlcmlhbF9kcnYsICZzM2MyNDQwX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHMzYzI0NDBfc2VyaWFsX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQ0MF9zZXJpYWxfZHJ2KTsKLX0KLQotI2RlZmluZSBzM2MyNDQwX3VhcnRfaW5mX2F0ICZzM2MyNDQwX3VhcnRfaW5mCi0jZWxzZQotCi1zdGF0aWMgaW5saW5lIGludCBzM2MyNDQwX3NlcmlhbF9pbml0KHZvaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDQwX3NlcmlhbF9leGl0KHZvaWQpCi17Ci19Ci0KLSNkZWZpbmUgczNjMjQ0MF91YXJ0X2luZl9hdCBOVUxMCi0jZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDQwICovCi0KLSNpZiBkZWZpbmVkKENPTkZJR19DUFVfUzNDMjQxMikKLQotc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKLQkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JdWNvbiAmPSB+UzNDMjQxMl9VQ09OX0NMS01BU0s7Ci0KLQlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQotCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOwotCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKLQkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKLQllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAidXN5c2NsayIpID09IDApCi0JCXVjb24gfD0gUzNDMjQxMl9VQ09OX1VTWVNDTEs7Ci0JZWxzZSB7Ci0JCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQotewotCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKLQotCXN3aXRjaCAodWNvbiAmIFMzQzI0MTJfVUNPTl9DTEtNQVNLKSB7Ci0JY2FzZSBTM0MyNDEyX1VDT05fVUNMSzoKLQkJY2xrLT5kaXZpc29yID0gMTsKLQkJY2xrLT5uYW1lID0gInVjbGsiOwotCQlicmVhazsKLQotCWNhc2UgUzNDMjQxMl9VQ09OX1BDTEs6Ci0JY2FzZSBTM0MyNDEyX1VDT05fUENMSzI6Ci0JCWNsay0+ZGl2aXNvciA9IDE7Ci0JCWNsay0+bmFtZSA9ICJwY2xrIjsKLQkJYnJlYWs7Ci0KLQljYXNlIFMzQzI0MTJfVUNPTl9VU1lTQ0xLOgotCQljbGstPmRpdmlzb3IgPSAxOwotCQljbGstPm5hbWUgPSAidXN5c2NsayI7Ci0JCWJyZWFrOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAotCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCi17Ci0JdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCi0JZGJnKCIlczogcG9ydD0lcCAoJTA4bHgpLCBjZmc9JXBcbiIsCi0JICAgIF9fZnVuY19fLCBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOwotCi0JLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KLQotCXVjb24gJj0gUzNDMjQxMl9VQ09OX0NMS01BU0s7Ci0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgIHVjb24gfCBjZmctPnVjb24pOwotCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7Ci0KLQkvKiByZXNldCBib3RoIGZpZm9zICovCi0KLQl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7Ci0Jd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MTJfdWFydF9pbmYgPSB7Ci0JLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQxMiBVQVJUIiwKLQkudHlwZQkJPSBQT1JUX1MzQzI0MTIsCi0JLmZpZm9zaXplCT0gNjQsCi0JLnJ4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfUlhNQVNLLAotCS5yeF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9SWFNISUZULAotCS5yeF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1JYRlVMTCwKLQkudHhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9UWEZVTEwsCi0JLnR4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfVFhNQVNLLAotCS50eF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9UWFNISUZULAotCS5nZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlLAotCS5zZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfc2V0c291cmNlLAotCS5yZXNldF9wb3J0CT0gczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0LAotfTsKLQotLyogZGV2aWNlIG1hbmFnZW1lbnQgKi8KLQotc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0JZGJnKCJzM2MyNDQwX3NlcmlhbF9wcm9iZTogZGV2PSVwXG4iLCBkZXYpOwotCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDEyX3VhcnRfaW5mKTsKLX0KLQotc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQxMl9zZXJpYWxfZHJ2ID0gewotCS5wcm9iZQkJPSBzM2MyNDEyX3NlcmlhbF9wcm9iZSwKLQkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKLQkuc3VzcGVuZAk9IHMzYzI0eHhfc2VyaWFsX3N1c3BlbmQsCi0JLnJlc3VtZQkJPSBzM2MyNHh4X3NlcmlhbF9yZXN1bWUsCi0JLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInMzYzI0MTItdWFydCIsCi0JCS5vd25lcgk9IFRISVNfTU9EVUxFLAotCX0sCi19OwotCi0KLXN0YXRpYyBpbmxpbmUgaW50IHMzYzI0MTJfc2VyaWFsX2luaXQodm9pZCkKLXsKLQlyZXR1cm4gczNjMjR4eF9zZXJpYWxfaW5pdCgmczNjMjQxMl9zZXJpYWxfZHJ2LCAmczNjMjQxMl91YXJ0X2luZik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzM2MyNDEyX3NlcmlhbF9leGl0KHZvaWQpCi17Ci0JcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnMzYzI0MTJfc2VyaWFsX2Rydik7Ci19Ci0KLSNkZWZpbmUgczNjMjQxMl91YXJ0X2luZl9hdCAmczNjMjQxMl91YXJ0X2luZgotI2Vsc2UKLQotc3RhdGljIGlubGluZSBpbnQgczNjMjQxMl9zZXJpYWxfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgczNjMjQxMl9zZXJpYWxfZXhpdCh2b2lkKQotewotfQotCi0jZGVmaW5lIHMzYzI0MTJfdWFydF9pbmZfYXQgTlVMTAotI2VuZGlmIC8qIENPTkZJR19DUFVfUzNDMjQ0MCAqLwotCi0KLS8qIG1vZHVsZSBpbml0aWFsaXNhdGlvbiBjb2RlICovCi0KLXN0YXRpYyBpbnQgX19pbml0IHMzYzI0eHhfc2VyaWFsX21vZGluaXQodm9pZCkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gdWFydF9yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOwotCWlmIChyZXQgPCAwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIHJlZ2lzdGVyIFVBUlQgZHJpdmVyXG4iKTsKLQkJcmV0dXJuIC0xOwotCX0KLQotCXMzYzI0MDBfc2VyaWFsX2luaXQoKTsKLQlzM2MyNDEwX3NlcmlhbF9pbml0KCk7Ci0JczNjMjQxMl9zZXJpYWxfaW5pdCgpOwotCXMzYzI0NDBfc2VyaWFsX2luaXQoKTsKLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgczNjMjR4eF9zZXJpYWxfbW9kZXhpdCh2b2lkKQotewotCXMzYzI0MDBfc2VyaWFsX2V4aXQoKTsKLQlzM2MyNDEwX3NlcmlhbF9leGl0KCk7Ci0JczNjMjQxMl9zZXJpYWxfZXhpdCgpOwotCXMzYzI0NDBfc2VyaWFsX2V4aXQoKTsKLQotCXVhcnRfdW5yZWdpc3Rlcl9kcml2ZXIoJnMzYzI0eHhfdWFydF9kcnYpOwotfQotCi0KLW1vZHVsZV9pbml0KHMzYzI0eHhfc2VyaWFsX21vZGluaXQpOwotbW9kdWxlX2V4aXQoczNjMjR4eF9zZXJpYWxfbW9kZXhpdCk7Ci0KLS8qIENvbnNvbGUgY29kZSAqLwotCi0jaWZkZWYgQ09ORklHX1NFUklBTF9TM0MyNDEwX0NPTlNPTEUKLQotc3RhdGljIHN0cnVjdCB1YXJ0X3BvcnQgKmNvbnNfdWFydDsKLQotc3RhdGljIGludAotczNjMjR4eF9zZXJpYWxfY29uc29sZV90eHJkeShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgdWZjb24pCi17Ci0Jc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7Ci0JdW5zaWduZWQgbG9uZyB1ZnN0YXQsIHV0cnN0YXQ7Ci0KLQlpZiAodWZjb24gJiBTM0MyNDEwX1VGQ09OX0ZJRk9NT0RFKSB7Ci0JCS8qIGZpZm8gbW9kZSAtIGNoZWNrIGFtbW91bnQgb2YgZGF0YSBpbiBmaWZvIHJlZ2lzdGVycy4uLiAqLwotCi0JCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOwotCQlyZXR1cm4gKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9mdWxsKSA/IDAgOiAxOwotCX0KLQotCS8qIGluIG5vbi1maWZvIG1vZGUsIHdlIGdvIGFuZCB1c2UgdGhlIHR4IGJ1ZmZlciBlbXB0eSAqLwotCi0JdXRyc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKTsKLQlyZXR1cm4gKHV0cnN0YXQgJiBTM0MyNDEwX1VUUlNUQVRfVFhFKSA/IDEgOiAwOwotfQotCi1zdGF0aWMgdm9pZAotczNjMjR4eF9zZXJpYWxfY29uc29sZV9wdXRjaGFyKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIGludCBjaCkKLXsKLQl1bnNpZ25lZCBpbnQgdWZjb24gPSByZF9yZWdsKGNvbnNfdWFydCwgUzNDMjQxMF9VRkNPTik7Ci0Jd2hpbGUgKCFzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3R4cmR5KHBvcnQsIHVmY29uKSkKLQkJYmFycmllcigpOwotCXdyX3JlZ2IoY29uc191YXJ0LCBTM0MyNDEwX1VUWEgsIGNoKTsKLX0KLQotc3RhdGljIHZvaWQKLXMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfd3JpdGUoc3RydWN0IGNvbnNvbGUgKmNvLCBjb25zdCBjaGFyICpzLAotCQkJICAgICB1bnNpZ25lZCBpbnQgY291bnQpCi17Ci0JdWFydF9jb25zb2xlX3dyaXRlKGNvbnNfdWFydCwgcywgY291bnQsIHMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfcHV0Y2hhcik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9faW5pdAotczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50ICpiYXVkLAotCQkJICAgaW50ICpwYXJpdHksIGludCAqYml0cykKLXsKLQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyBjbGtzcmM7Ci0Jc3RydWN0IGNsayAqY2xrOwotCXVuc2lnbmVkIGludCB1bGNvbjsKLQl1bnNpZ25lZCBpbnQgdWNvbjsKLQl1bnNpZ25lZCBpbnQgdWJyZGl2OwotCXVuc2lnbmVkIGxvbmcgcmF0ZTsKLQotCXVsY29uICA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTik7Ci0JdWNvbiAgID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOwotCXVicmRpdiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQlJESVYpOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9uczogcG9ydD0lcFxuIgotCSAgICAicmVnaXN0ZXJzOiB1bGNvbj0lMDh4LCB1Y29uPSUwOHgsIHViZHJpdj0lMDh4XG4iLAotCSAgICBwb3J0LCB1bGNvbiwgdWNvbiwgdWJyZGl2KTsKLQotCWlmICgodWNvbiAmIDB4ZikgIT0gMCkgewotCQkvKiBjb25zaWRlciB0aGUgc2VyaWFsIHBvcnQgY29uZmlndXJlZCBpZiB0aGUgdHgvcnggbW9kZSBzZXQgKi8KLQotCQlzd2l0Y2ggKHVsY29uICYgUzNDMjQxMF9MQ09OX0NTTUFTSykgewotCQljYXNlIFMzQzI0MTBfTENPTl9DUzU6Ci0JCQkqYml0cyA9IDU7Ci0JCQlicmVhazsKLQkJY2FzZSBTM0MyNDEwX0xDT05fQ1M2OgotCQkJKmJpdHMgPSA2OwotCQkJYnJlYWs7Ci0JCWNhc2UgUzNDMjQxMF9MQ09OX0NTNzoKLQkJCSpiaXRzID0gNzsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQljYXNlIFMzQzI0MTBfTENPTl9DUzg6Ci0JCQkqYml0cyA9IDg7Ci0JCQlicmVhazsKLQkJfQotCi0JCXN3aXRjaCAodWxjb24gJiBTM0MyNDEwX0xDT05fUE1BU0spIHsKLQkJY2FzZSBTM0MyNDEwX0xDT05fUEVWRU46Ci0JCQkqcGFyaXR5ID0gJ2UnOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBTM0MyNDEwX0xDT05fUE9ERDoKLQkJCSpwYXJpdHkgPSAnbyc7Ci0JCQlicmVhazsKLQotCQljYXNlIFMzQzI0MTBfTENPTl9QTk9ORToKLQkJZGVmYXVsdDoKLQkJCSpwYXJpdHkgPSAnbic7Ci0JCX0KLQotCQkvKiBub3cgY2FsY3VsYXRlIHRoZSBiYXVkIHJhdGUgKi8KLQotCQlzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2UocG9ydCwgJmNsa3NyYyk7Ci0KLQkJY2xrID0gY2xrX2dldChwb3J0LT5kZXYsIGNsa3NyYy5uYW1lKTsKLQkJaWYgKCFJU19FUlIoY2xrKSAmJiBjbGsgIT0gTlVMTCkKLQkJCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2xrKSAvIGNsa3NyYy5kaXZpc29yOwotCQllbHNlCi0JCQlyYXRlID0gMTsKLQotCi0JCSpiYXVkID0gcmF0ZSAvICggMTYgKiAodWJyZGl2ICsgMSkpOwotCQlkYmcoImNhbGN1bGF0ZWQgYmF1ZCAlZFxuIiwgKmJhdWQpOwotCX0KLQotfQotCi0vKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzCi0gKgotICogaW5pdGlhbGlzZSB0aGUgc2VyaWFsIHBvcnRzIGZyb20gdGhlIG1hY2hpbmUgcHJvdmlkZWQgaW5pdGlhbGlzYXRpb24KLSAqIGRhdGEuCi0qLwotCi1zdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX2luaXRfcG9ydHMoc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqcHRyID0gczNjMjR4eF9zZXJpYWxfcG9ydHM7Ci0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqKnBsYXRkZXZfcHRyOwotCWludCBpOwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzOiBpbml0aWFsaXNpbmcgcG9ydHMuLi5cbiIpOwotCi0JcGxhdGRldl9wdHIgPSBzM2MyNHh4X3VhcnRfZGV2czsKLQotCWZvciAoaSA9IDA7IGkgPCBOUl9QT1JUUzsgaSsrLCBwdHIrKywgcGxhdGRldl9wdHIrKykgewotCQlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQocHRyLCBpbmZvLCAqcGxhdGRldl9wdHIpOwotCX0KLQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IF9faW5pdAotczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cChzdHJ1Y3QgY29uc29sZSAqY28sIGNoYXIgKm9wdGlvbnMpCi17Ci0Jc3RydWN0IHVhcnRfcG9ydCAqcG9ydDsKLQlpbnQgYmF1ZCA9IDk2MDA7Ci0JaW50IGJpdHMgPSA4OwotCWludCBwYXJpdHkgPSAnbic7Ci0JaW50IGZsb3cgPSAnbic7Ci0KLQlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IGNvPSVwICglZCksICVzXG4iLAotCSAgICBjbywgY28tPmluZGV4LCBvcHRpb25zKTsKLQotCS8qIGlzIHRoaXMgYSB2YWxpZCBwb3J0ICovCi0KLQlpZiAoY28tPmluZGV4ID09IC0xIHx8IGNvLT5pbmRleCA+PSBOUl9QT1JUUykKLQkJY28tPmluZGV4ID0gMDsKLQotCXBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbY28tPmluZGV4XS5wb3J0OwotCi0JLyogaXMgdGhlIHBvcnQgY29uZmlndXJlZD8gKi8KLQotCWlmIChwb3J0LT5tYXBiYXNlID09IDB4MCkgewotCQljby0+aW5kZXggPSAwOwotCQlwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW2NvLT5pbmRleF0ucG9ydDsKLQl9Ci0KLQljb25zX3VhcnQgPSBwb3J0OwotCi0JZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBwb3J0PSVwICglZClcbiIsIHBvcnQsIGNvLT5pbmRleCk7Ci0KLQkvKgotCSAqIENoZWNrIHdoZXRoZXIgYW4gaW52YWxpZCB1YXJ0IG51bWJlciBoYXMgYmVlbiBzcGVjaWZpZWQsIGFuZAotCSAqIGlmIHNvLCBzZWFyY2ggZm9yIHRoZSBmaXJzdCBhdmFpbGFibGUgcG9ydCB0aGF0IGRvZXMgaGF2ZQotCSAqIGNvbnNvbGUgc3VwcG9ydC4KLQkgKi8KLQlpZiAob3B0aW9ucykKLQkJdWFydF9wYXJzZV9vcHRpb25zKG9wdGlvbnMsICZiYXVkLCAmcGFyaXR5LCAmYml0cywgJmZsb3cpOwotCWVsc2UKLQkJczNjMjR4eF9zZXJpYWxfZ2V0X29wdGlvbnMocG9ydCwgJmJhdWQsICZwYXJpdHksICZiaXRzKTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogYmF1ZCAlZFxuIiwgYmF1ZCk7Ci0KLQlyZXR1cm4gdWFydF9zZXRfb3B0aW9ucyhwb3J0LCBjbywgYmF1ZCwgcGFyaXR5LCBiaXRzLCBmbG93KTsKLX0KLQotLyogczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGUKLSAqCi0gKiBpbml0aWFsaXNlIHRoZSBjb25zb2xlIGZyb20gb25lIG9mIHRoZSB1YXJ0IGRyaXZlcnMKLSovCi0KLXN0YXRpYyBzdHJ1Y3QgY29uc29sZSBzM2MyNHh4X3NlcmlhbF9jb25zb2xlID0KLXsKLQkubmFtZQkJPSBTM0MyNFhYX1NFUklBTF9OQU1FLAotCS5kZXZpY2UJCT0gdWFydF9jb25zb2xlX2RldmljZSwKLQkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSLAotCS5pbmRleAkJPSAtMSwKLQkud3JpdGUJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZSwKLQkuc2V0dXAJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cAotfTsKLQotc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZSh2b2lkKQotewotCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbzsKLQlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYgPSBzM2MyNHh4X3VhcnRfZGV2c1swXTsKLQotCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGVcbiIpOwotCi0JLyogc2VsZWN0IGRyaXZlciBiYXNlZCBvbiB0aGUgY3B1ICovCi0KLQlpZiAoZGV2ID09IE5VTEwpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkZXZpY2VzIGZvciBjb25zb2xlIGluaXRcbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoc3RyY21wKGRldi0+bmFtZSwgInMzYzI0MDAtdWFydCIpID09IDApIHsKLQkJaW5mbyA9IHMzYzI0MDBfdWFydF9pbmZfYXQ7Ci0JfSBlbHNlIGlmIChzdHJjbXAoZGV2LT5uYW1lLCAiczNjMjQxMC11YXJ0IikgPT0gMCkgewotCQlpbmZvID0gczNjMjQxMF91YXJ0X2luZl9hdDsKLQl9IGVsc2UgaWYgKHN0cmNtcChkZXYtPm5hbWUsICJzM2MyNDQwLXVhcnQiKSA9PSAwKSB7Ci0JCWluZm8gPSBzM2MyNDQwX3VhcnRfaW5mX2F0OwotCX0gZWxzZSBpZiAoc3RyY21wKGRldi0+bmFtZSwgInMzYzI0MTItdWFydCIpID09IDApIHsKLQkJaW5mbyA9IHMzYzI0MTJfdWFydF9pbmZfYXQ7Ci0JfSBlbHNlIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkcml2ZXIgZm9yICVzXG4iLCBkZXYtPm5hbWUpOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQlpZiAoaW5mbyA9PSBOVUxMKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiczNjMjR4eDogbm8gZHJpdmVyIGZvciBjb25zb2xlXG4iKTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JczNjMjR4eF9zZXJpYWxfY29uc29sZS5kYXRhID0gJnMzYzI0eHhfdWFydF9kcnY7Ci0JczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0cyhpbmZvKTsKLQotCXJlZ2lzdGVyX2NvbnNvbGUoJnMzYzI0eHhfc2VyaWFsX2NvbnNvbGUpOwotCXJldHVybiAwOwotfQotCi1jb25zb2xlX2luaXRjYWxsKHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKTsKLQotI2VuZGlmIC8qIENPTkZJR19TRVJJQUxfUzNDMjQxMF9DT05TT0xFICovCi0KLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKLU1PRFVMRV9ERVNDUklQVElPTigiU2Ftc3VuZyBTM0MyNDEwL1MzQzI0NDAvUzNDMjQxMiBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQwMC11YXJ0Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQxMCBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CiBNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTAtdWFydCIpOwotTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpzM2MyNDEyLXVhcnQiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06czNjMjQ0MC11YXJ0Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zM2MyNDEyLmMgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDEyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2UwYzIyMAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvc2VyaWFsL3MzYzI0MTIuYwpAQCAtMCwwICsxLDE1MSBAQAorLyogbGludXgvZHJpdmVycy9zZXJpYWwvczNjMjQxMi5jCisgKgorICogRHJpdmVyIGZvciBTYW1zdW5nIFMzQzI0MTIgYW5kIFMzQzI0MTMgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisKKyNpbmNsdWRlIDxhc20vaXJxLmg+CisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisKKyNpbmNsdWRlIDxhc20vcGxhdC1zM2MvcmVncy1zZXJpYWwuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9yZWdzLWdwaW8uaD4KKworI2luY2x1ZGUgInNhbXN1bmcuaCIKKworc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJdWNvbiAmPSB+UzNDMjQxMl9VQ09OX0NMS01BU0s7CisKKwlpZiAoc3RyY21wKGNsay0+bmFtZSwgInVjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9VQ0xLOworCWVsc2UgaWYgKHN0cmNtcChjbGstPm5hbWUsICJwY2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDQwX1VDT05fUENMSzsKKwllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAidXN5c2NsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQxMl9VQ09OX1VTWVNDTEs7CisJZWxzZSB7CisJCXByaW50ayhLRVJOX0VSUiAidW5rbm93biBjbG9jayBzb3VyY2UgJXNcbiIsIGNsay0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKwlyZXR1cm4gMDsKK30KKworCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX2dldHNvdXJjZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKQoreworCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKworCXN3aXRjaCAodWNvbiAmIFMzQzI0MTJfVUNPTl9DTEtNQVNLKSB7CisJY2FzZSBTM0MyNDEyX1VDT05fVUNMSzoKKwkJY2xrLT5kaXZpc29yID0gMTsKKwkJY2xrLT5uYW1lID0gInVjbGsiOworCQlicmVhazsKKworCWNhc2UgUzNDMjQxMl9VQ09OX1BDTEs6CisJY2FzZSBTM0MyNDEyX1VDT05fUENMSzI6CisJCWNsay0+ZGl2aXNvciA9IDE7CisJCWNsay0+bmFtZSA9ICJwY2xrIjsKKwkJYnJlYWs7CisKKwljYXNlIFMzQzI0MTJfVUNPTl9VU1lTQ0xLOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAidXN5c2NsayI7CisJCWJyZWFrOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0MTJfc2VyaWFsX3Jlc2V0cG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgICBzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcpCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJZGJnKCIlczogcG9ydD0lcCAoJTA4bHgpLCBjZmc9JXBcbiIsCisJICAgIF9fZnVuY19fLCBwb3J0LCBwb3J0LT5tYXBiYXNlLCBjZmcpOworCisJLyogZW5zdXJlIHdlIGRvbid0IGNoYW5nZSB0aGUgY2xvY2sgc2V0dGluZ3MuLi4gKi8KKworCXVjb24gJj0gUzNDMjQxMl9VQ09OX0NMS01BU0s7CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgIHVjb24gfCBjZmctPnVjb24pOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VTENPTiwgY2ZnLT51bGNvbik7CisKKwkvKiByZXNldCBib3RoIGZpZm9zICovCisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24gfCBTM0MyNDEwX1VGQ09OX1JFU0VUQk9USCk7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCBjZmctPnVmY29uKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvIHMzYzI0MTJfdWFydF9pbmYgPSB7CisJLm5hbWUJCT0gIlNhbXN1bmcgUzNDMjQxMiBVQVJUIiwKKwkudHlwZQkJPSBQT1JUX1MzQzI0MTIsCisJLmZpZm9zaXplCT0gNjQsCisJLnJ4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfUlhNQVNLLAorCS5yeF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9SWFNISUZULAorCS5yeF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1JYRlVMTCwKKwkudHhfZmlmb2Z1bGwJPSBTM0MyNDQwX1VGU1RBVF9UWEZVTEwsCisJLnR4X2ZpZm9tYXNrCT0gUzNDMjQ0MF9VRlNUQVRfVFhNQVNLLAorCS50eF9maWZvc2hpZnQJPSBTM0MyNDQwX1VGU1RBVF9UWFNISUZULAorCS5nZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfZ2V0c291cmNlLAorCS5zZXRfY2xrc3JjCT0gczNjMjQxMl9zZXJpYWxfc2V0c291cmNlLAorCS5yZXNldF9wb3J0CT0gczNjMjQxMl9zZXJpYWxfcmVzZXRwb3J0LAorfTsKKworLyogZGV2aWNlIG1hbmFnZW1lbnQgKi8KKworc3RhdGljIGludCBzM2MyNDEyX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJZGJnKCJzM2MyNDQwX3NlcmlhbF9wcm9iZTogZGV2PSVwXG4iLCBkZXYpOworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9wcm9iZShkZXYsICZzM2MyNDEyX3VhcnRfaW5mKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgczNjMjQxMl9zZXJpYWxfZHJ2ID0geworCS5wcm9iZQkJPSBzM2MyNDEyX3NlcmlhbF9wcm9iZSwKKwkucmVtb3ZlCQk9IHMzYzI0eHhfc2VyaWFsX3JlbW92ZSwKKwkuZHJpdmVyCQk9IHsKKwkJLm5hbWUJPSAiczNjMjQxMi11YXJ0IiwKKwkJLm93bmVyCT0gVEhJU19NT0RVTEUsCisJfSwKK307CisKK3MzYzI0eHhfY29uc29sZV9pbml0KCZzM2MyNDEyX3NlcmlhbF9kcnYsICZzM2MyNDEyX3VhcnRfaW5mKTsKKworc3RhdGljIGlubGluZSBpbnQgczNjMjQxMl9zZXJpYWxfaW5pdCh2b2lkKQoreworCXJldHVybiBzM2MyNHh4X3NlcmlhbF9pbml0KCZzM2MyNDEyX3NlcmlhbF9kcnYsICZzM2MyNDEyX3VhcnRfaW5mKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHMzYzI0MTJfc2VyaWFsX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmczNjMjQxMl9zZXJpYWxfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjQxMl9zZXJpYWxfaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNDEyX3NlcmlhbF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJTYW1zdW5nIFMzQzI0MTIsUzNDMjQxMyBTb0MgU2VyaWFsIHBvcnQgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJCZW4gRG9va3MgPGJlbkBzaW10ZWMuY28udWs+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTItdWFydCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvczNjMjQ0MC5jIGIvZHJpdmVycy9zZXJpYWwvczNjMjQ0MC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Zjk1NGIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zM2MyNDQwLmMKQEAgLTAsMCArMSwxODEgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3MzYzI0NDAuYworICoKKyAqIERyaXZlciBmb3IgU2Ftc3VuZyBTM0MyNDQwIGFuZCBTM0MyNDQyIFNvQyBvbmJvYXJkIFVBUlRzLgorICoKKyAqIEJlbiBEb29rcywgQ29weXJpZ2h0IChjKSAyMDAzLTIwMDUsMjAwOCBTaW10ZWMgRWxlY3Ryb25pY3MKKyAqCWh0dHA6Ly9hcm1saW51eC5zaW10ZWMuY28udWsvCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfY29yZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbC5oPgorCisjaW5jbHVkZSA8YXNtL2lycS5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGspCit7CisJdW5zaWduZWQgbG9uZyB1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJLyogdG9kbyAtIHByb3BlciBmY2xrPD5ub25mY2xrIHN3aXRjaC4gKi8KKworCXVjb24gJj0gflMzQzI0NDBfVUNPTl9DTEtNQVNLOworCisJaWYgKHN0cmNtcChjbGstPm5hbWUsICJ1Y2xrIikgPT0gMCkKKwkJdWNvbiB8PSBTM0MyNDQwX1VDT05fVUNMSzsKKwllbHNlIGlmIChzdHJjbXAoY2xrLT5uYW1lLCAicGNsayIpID09IDApCisJCXVjb24gfD0gUzNDMjQ0MF9VQ09OX1BDTEs7CisJZWxzZSBpZiAoc3RyY21wKGNsay0+bmFtZSwgImZjbGsiKSA9PSAwKQorCQl1Y29uIHw9IFMzQzI0NDBfVUNPTl9GQ0xLOworCWVsc2UgeworCQlwcmludGsoS0VSTl9FUlIgInVua25vd24gY2xvY2sgc291cmNlICVzXG4iLCBjbGstPm5hbWUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiwgdWNvbik7CisJcmV0dXJuIDA7Cit9CisKKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsaykKK3sKKwl1bnNpZ25lZCBsb25nIHVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdW5zaWduZWQgbG9uZyB1Y29uMCwgdWNvbjEsIHVjb24yOworCisJc3dpdGNoICh1Y29uICYgUzNDMjQ0MF9VQ09OX0NMS01BU0spIHsKKwljYXNlIFMzQzI0NDBfVUNPTl9VQ0xLOgorCQljbGstPmRpdmlzb3IgPSAxOworCQljbGstPm5hbWUgPSAidWNsayI7CisJCWJyZWFrOworCisJY2FzZSBTM0MyNDQwX1VDT05fUENMSzoKKwljYXNlIFMzQzI0NDBfVUNPTl9QQ0xLMjoKKwkJY2xrLT5kaXZpc29yID0gMTsKKwkJY2xrLT5uYW1lID0gInBjbGsiOworCQlicmVhazsKKworCWNhc2UgUzNDMjQ0MF9VQ09OX0ZDTEs6CisJCS8qIHRoZSBmdW4gb2YgY2FsY3VsYXRpbmcgdGhlIHVhcnQgZGl2aXNvcnMgb24KKwkJICogdGhlIHMzYzI0NDAgKi8KKworCQl1Y29uMCA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDAgKyBTM0MyNDEwX1VDT04pOworCQl1Y29uMSA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDEgKyBTM0MyNDEwX1VDT04pOworCQl1Y29uMiA9IF9fcmF3X3JlYWRsKFMzQzI0WFhfVkFfVUFSVDIgKyBTM0MyNDEwX1VDT04pOworCisJCXByaW50aygidWNvbnM6ICUwOGx4LCAlMDhseCwgJTA4bHhcbiIsIHVjb24wLCB1Y29uMSwgdWNvbjIpOworCisJCXVjb24wICY9IFMzQzI0NDBfVUNPTjBfRElWTUFTSzsKKwkJdWNvbjEgJj0gUzNDMjQ0MF9VQ09OMV9ESVZNQVNLOworCQl1Y29uMiAmPSBTM0MyNDQwX1VDT04yX0RJVk1BU0s7CisKKwkJaWYgKHVjb24wICE9IDApIHsKKwkJCWNsay0+ZGl2aXNvciA9IHVjb24wID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKKwkJCWNsay0+ZGl2aXNvciArPSA2OworCQl9IGVsc2UgaWYgKHVjb24xICE9IDApIHsKKwkJCWNsay0+ZGl2aXNvciA9IHVjb24xID4+IFMzQzI0NDBfVUNPTl9ESVZTSElGVDsKKwkJCWNsay0+ZGl2aXNvciArPSAyMTsKKwkJfSBlbHNlIGlmICh1Y29uMiAhPSAwKSB7CisJCQljbGstPmRpdmlzb3IgPSB1Y29uMiA+PiBTM0MyNDQwX1VDT05fRElWU0hJRlQ7CisJCQljbGstPmRpdmlzb3IgKz0gMzY7CisJCX0gZWxzZSB7CisJCQkvKiBtYW51YWwgY2FsaW1zIDQ0LCBzZWVtcyB0byBiZSA5ICovCisJCQljbGstPmRpdmlzb3IgPSA5OworCQl9CisKKwkJY2xrLT5uYW1lID0gImZjbGsiOworCQlicmVhazsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCXVuc2lnbmVkIGxvbmcgdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKworCWRiZygiczNjMjQ0MF9zZXJpYWxfcmVzZXRwb3J0OiBwb3J0PSVwICglMDhseCksIGNmZz0lcFxuIiwKKwkgICAgcG9ydCwgcG9ydC0+bWFwYmFzZSwgY2ZnKTsKKworCS8qIGVuc3VyZSB3ZSBkb24ndCBjaGFuZ2UgdGhlIGNsb2NrIHNldHRpbmdzLi4uICovCisKKwl1Y29uICY9IChTM0MyNDQwX1VDT04wX0RJVk1BU0sgfCAoMzw8MTApKTsKKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCAgdWNvbiB8IGNmZy0+dWNvbik7CisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OLCBjZmctPnVsY29uKTsKKworCS8qIHJlc2V0IGJvdGggZmlmb3MgKi8KKworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTiwgY2ZnLT51ZmNvbiB8IFMzQzI0MTBfVUZDT05fUkVTRVRCT1RIKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIGNmZy0+dWZjb24pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gczNjMjQ0MF91YXJ0X2luZiA9IHsKKwkubmFtZQkJPSAiU2Ftc3VuZyBTM0MyNDQwIFVBUlQiLAorCS50eXBlCQk9IFBPUlRfUzNDMjQ0MCwKKwkuZmlmb3NpemUJPSA2NCwKKwkucnhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9SWE1BU0ssCisJLnJ4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1JYU0hJRlQsCisJLnJ4X2ZpZm9mdWxsCT0gUzNDMjQ0MF9VRlNUQVRfUlhGVUxMLAorCS50eF9maWZvZnVsbAk9IFMzQzI0NDBfVUZTVEFUX1RYRlVMTCwKKwkudHhfZmlmb21hc2sJPSBTM0MyNDQwX1VGU1RBVF9UWE1BU0ssCisJLnR4X2ZpZm9zaGlmdAk9IFMzQzI0NDBfVUZTVEFUX1RYU0hJRlQsCisJLmdldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9nZXRzb3VyY2UsCisJLnNldF9jbGtzcmMJPSBzM2MyNDQwX3NlcmlhbF9zZXRzb3VyY2UsCisJLnJlc2V0X3BvcnQJPSBzM2MyNDQwX3NlcmlhbF9yZXNldHBvcnQsCit9OworCisvKiBkZXZpY2UgbWFuYWdlbWVudCAqLworCitzdGF0aWMgaW50IHMzYzI0NDBfc2VyaWFsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlkYmcoInMzYzI0NDBfc2VyaWFsX3Byb2JlOiBkZXY9JXBcbiIsIGRldik7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3Byb2JlKGRldiwgJnMzYzI0NDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzM2MyNDQwX3NlcmlhbF9kcnYgPSB7CisJLnByb2JlCQk9IHMzYzI0NDBfc2VyaWFsX3Byb2JlLAorCS5yZW1vdmUJCT0gczNjMjR4eF9zZXJpYWxfcmVtb3ZlLAorCS5kcml2ZXIJCT0geworCQkubmFtZQk9ICJzM2MyNDQwLXVhcnQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorfTsKKworczNjMjR4eF9jb25zb2xlX2luaXQoJnMzYzI0NDBfc2VyaWFsX2RydiwgJnMzYzI0NDBfdWFydF9pbmYpOworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNDQwX3NlcmlhbF9pbml0KHZvaWQpCit7CisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXQoJnMzYzI0NDBfc2VyaWFsX2RydiwgJnMzYzI0NDBfdWFydF9pbmYpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgczNjMjQ0MF9zZXJpYWxfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzM2MyNDQwX3NlcmlhbF9kcnYpOworfQorCittb2R1bGVfaW5pdChzM2MyNDQwX3NlcmlhbF9pbml0KTsKK21vZHVsZV9leGl0KHMzYzI0NDBfc2VyaWFsX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgUzNDMjQ0MCxTM0MyNDQyIFNvQyBTZXJpYWwgcG9ydCBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIkJlbiBEb29rcyA8YmVuQHNpbXRlYy5jby51az4iKTsKK01PRFVMRV9MSUNFTlNFKCJHUExpIHYyIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0NDAtdWFydCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5jIGIvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhM2VjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmMKQEAgLTAsMCArMSwxMzE3IEBACisvKiBsaW51eC9kcml2ZXJzL3NlcmlhbC9zYW1zdWluZy5jCisgKgorICogRHJpdmVyIGNvcmUgZm9yIFNhbXN1bmcgU29DIG9uYm9hcmQgVUFSVHMuCisgKgorICogQmVuIERvb2tzLCBDb3B5cmlnaHQgKGMpIDIwMDMtMjAwNSwyMDA4IFNpbXRlYyBFbGVjdHJvbmljcworICoJaHR0cDovL2FybWxpbnV4LnNpbXRlYy5jby51ay8KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworLyogSG90ZSBvbiAyNDEwIGVycm9yIGhhbmRsaW5nCisgKgorICogVGhlIHMzYzI0MTAgbWFudWFsIGhhcyBhIGxvdmUvaGF0ZSBhZmZhaXIgd2l0aCB0aGUgY29udGVudHMgb2YgdGhlCisgKiBVRVJTVEFUIHJlZ2lzdGVyIGluIHRoZSBVQVJUIGJsb2NrcywgYW5kIGtlZXBzIG1hcmtpbmcgc29tZSBvZiB0aGUKKyAqIGVycm9yIGJpdHMgYXMgcmVzZXJ2ZWQuIEhhdmluZyBjaGVja2VkIHdpdGggdGhlIHMzYzI0MTB4MDEsCisgKiBpdCBjb3BlcyB3aXRoIEJSRUFLcyBwcm9wZXJseSwgc28gSSBhbSBoYXBweSB0byBpZ25vcmUgdGhlIFJFU0VSVkVECisgKiBmZWF0dXJlIGZyb20gdGhlIGxhdHRlciB2ZXJzaW9ucyBvZiB0aGUgbWFudWFsLgorICoKKyAqIElmIGl0IGJlY29tZXMgYXBhcnJlbnQgdGhhdCBsYXR0ZXIgdmVyc2lvbnMgb2YgdGhlIDI0MTAgcmVtb3ZlIHRoZXNlCisgKiBiaXRzLCB0aGVuIGFjdGlvbiB3aWxsIGhhdmUgdG8gYmUgdGFrZW4gdG8gZGlmZmVyZW50aWF0ZSB0aGUgdmVyc2lvbnMKKyAqIGFuZCBjaGFuZ2UgdGhlIHBvbGljeSBvbiBCUkVBSworICoKKyAqIEJKRCwgMDQtTm92LTIwMDQKKyovCisKKyNpZiBkZWZpbmVkKENPTkZJR19TRVJJQUxfU0FNU1VOR19DT05TT0xFKSAmJiBkZWZpbmVkKENPTkZJR19NQUdJQ19TWVNSUSkKKyNkZWZpbmUgU1VQUE9SVF9TWVNSUQorI2VuZGlmCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbnNvbGUuaD4KKyNpbmNsdWRlIDxsaW51eC90dHkuaD4KKyNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9jb3JlLmg+CisjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKworI2luY2x1ZGUgPGFzbS9pcnEuaD4KKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaW5jbHVkZSA8YXNtL3BsYXQtczNjL3JlZ3Mtc2VyaWFsLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvcmVncy1ncGlvLmg+CisKKyNpbmNsdWRlICJzYW1zdW5nLmgiCisKKy8qIFVBUlQgbmFtZSBhbmQgZGV2aWNlIGRlZmluaXRpb25zICovCisKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfTkFNRQkidHR5U0FDIgorI2RlZmluZSBTM0MyNFhYX1NFUklBTF9NQUpPUgkyMDQKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfTUlOT1IJNjQKKworLyogd2UgY2FuIHN1cHBvcnQgMyB1YXJ0cywgYnV0IG5vdCBhbHdheXMgdXNlIHRoZW0gKi8KKworI2lmZGVmIENPTkZJR19DUFVfUzNDMjQwMAorI2RlZmluZSBOUl9QT1JUUyAoMikKKyNlbHNlCisjZGVmaW5lIE5SX1BPUlRTICgzKQorI2VuZGlmCisKKy8qIHBvcnQgaXJxIG51bWJlcnMgKi8KKworI2RlZmluZSBUWF9JUlEocG9ydCkgKChwb3J0KS0+aXJxICsgMSkKKyNkZWZpbmUgUlhfSVJRKHBvcnQpICgocG9ydCktPmlycSkKKworLyogbWFjcm9zIHRvIGNoYW5nZSBvbmUgdGhpbmcgdG8gYW5vdGhlciAqLworCisjZGVmaW5lIHR4X2VuYWJsZWQocG9ydCkgKChwb3J0KS0+dW51c2VkWzBdKQorI2RlZmluZSByeF9lbmFibGVkKHBvcnQpICgocG9ydCktPnVudXNlZFsxXSkKKworLyogZmxhZyB0byBpZ25vcmUgYWxsIGNoYXJhY3RlcnMgY29tbWluZyBpbiAqLworI2RlZmluZSBSWFNUQVRfRFVNTVlfUkVBRCAoMHgxMDAwMDAwMCkKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnRvX291cnBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCwgcG9ydCk7Cit9CisKKy8qIHRyYW5zbGF0ZSBhIHBvcnQgdG8gdGhlIGRldmljZSBuYW1lICovCisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gdG9fcGxhdGZvcm1fZGV2aWNlKHBvcnQtPmRldiktPm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlyZXR1cm4gKHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VVFJTVEFUKSAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9yeF9lbmFibGUoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCB1Y29uLCB1ZmNvbjsKKwlpbnQgY291bnQgPSAxMDAwMDsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwl3aGlsZSAoLS1jb3VudCAmJiAhczNjMjR4eF9zZXJpYWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCkpCisJCXVkZWxheSgxMDApOworCisJdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOworCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04sIHVmY29uKTsKKworCXVjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdWNvbiB8PSBTM0MyNDEwX1VDT05fUlhJUlFNT0RFOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKworCXJ4X2VuYWJsZWQocG9ydCkgPSAxOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcnhfZGlzYWJsZShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IHVjb247CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworCisJdWNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OKTsKKwl1Y29uICY9IH5TM0MyNDEwX1VDT05fUlhJUlFNT0RFOworCXdyX3JlZ2wocG9ydCwgUzNDMjQxMF9VQ09OLCB1Y29uKTsKKworCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvcnQtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF90eChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmICh0eF9lbmFibGVkKHBvcnQpKSB7CisJCWRpc2FibGVfaXJxKFRYX0lSUShwb3J0KSk7CisJCXR4X2VuYWJsZWQocG9ydCkgPSAwOworCQlpZiAocG9ydC0+ZmxhZ3MgJiBVUEZfQ09OU19GTE9XKQorCQkJczNjMjR4eF9zZXJpYWxfcnhfZW5hYmxlKHBvcnQpOworCX0KK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlpZiAoIXR4X2VuYWJsZWQocG9ydCkpIHsKKwkJaWYgKHBvcnQtPmZsYWdzICYgVVBGX0NPTlNfRkxPVykKKwkJCXMzYzI0eHhfc2VyaWFsX3J4X2Rpc2FibGUocG9ydCk7CisKKwkJZW5hYmxlX2lycShUWF9JUlEocG9ydCkpOworCQl0eF9lbmFibGVkKHBvcnQpID0gMTsKKwl9Cit9CisKKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc3RvcF9yeChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCWlmIChyeF9lbmFibGVkKHBvcnQpKSB7CisJCWRiZygiczNjMjR4eF9zZXJpYWxfc3RvcF9yeDogcG9ydD0lcFxuIiwgcG9ydCk7CisJCWRpc2FibGVfaXJxKFJYX0lSUShwb3J0KSk7CisJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCX0KK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfZW5hYmxlX21zKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICpzM2MyNHh4X3BvcnRfdG9faW5mbyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXJldHVybiB0b19vdXJwb3J0KHBvcnQpLT5pbmZvOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKnMzYzI0eHhfcG9ydF90b19jZmcoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlpZiAocG9ydC0+ZGV2ID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCisJcmV0dXJuIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopcG9ydC0+ZGV2LT5wbGF0Zm9ybV9kYXRhOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3J4X2ZpZm9jbnQoc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0LAorCQkJCSAgICAgdW5zaWduZWQgbG9uZyB1ZnN0YXQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gb3VycG9ydC0+aW5mbzsKKworCWlmICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvZnVsbCkKKwkJcmV0dXJuIGluZm8tPmZpZm9zaXplOworCisJcmV0dXJuICh1ZnN0YXQgJiBpbmZvLT5yeF9maWZvbWFzaykgPj4gaW5mby0+cnhfZmlmb3NoaWZ0OworfQorCisKKy8qID8gLSB3aGVyZSBoYXMgcGFyaXR5IGdvbmU/PyAqLworI2RlZmluZSBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZICgweDEwMDApCisKK3N0YXRpYyBpcnFyZXR1cm5fdAorczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IGRldl9pZDsKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gJm91cnBvcnQtPnBvcnQ7CisJc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSA9IHBvcnQtPmluZm8tPnR0eTsKKwl1bnNpZ25lZCBpbnQgdWZjb24sIGNoLCBmbGFnLCB1ZnN0YXQsIHVlcnN0YXQ7CisJaW50IG1heF9jb3VudCA9IDY0OworCisJd2hpbGUgKG1heF9jb3VudC0tID4gMCkgeworCQl1ZmNvbiA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTik7CisJCXVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOworCisJCWlmIChzM2MyNHh4X3NlcmlhbF9yeF9maWZvY250KG91cnBvcnQsIHVmc3RhdCkgPT0gMCkKKwkJCWJyZWFrOworCisJCXVlcnN0YXQgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUVSU1RBVCk7CisJCWNoID0gcmRfcmVnYihwb3J0LCBTM0MyNDEwX1VSWEgpOworCisJCWlmIChwb3J0LT5mbGFncyAmIFVQRl9DT05TX0ZMT1cpIHsKKwkJCWludCB0eGUgPSBzM2MyNHh4X3NlcmlhbF90eGVtcHR5X25vZmlmbyhwb3J0KTsKKworCQkJaWYgKHJ4X2VuYWJsZWQocG9ydCkpIHsKKwkJCQlpZiAoIXR4ZSkgeworCQkJCQlyeF9lbmFibGVkKHBvcnQpID0gMDsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQlpZiAodHhlKSB7CisJCQkJCXVmY29uIHw9IFMzQzI0MTBfVUZDT05fUkVTRVRSWDsKKwkJCQkJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VGQ09OLCB1ZmNvbik7CisJCQkJCXJ4X2VuYWJsZWQocG9ydCkgPSAxOworCQkJCQlnb3RvIG91dDsKKwkJCQl9CisJCQkJY29udGludWU7CisJCQl9CisJCX0KKworCQkvKiBpbnNlcnQgdGhlIGNoYXJhY3RlciBpbnRvIHRoZSBidWZmZXIgKi8KKworCQlmbGFnID0gVFRZX05PUk1BTDsKKwkJcG9ydC0+aWNvdW50LnJ4Kys7CisKKwkJaWYgKHVubGlrZWx5KHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfQU5ZKSkgeworCQkJZGJnKCJyeGVycjogcG9ydCBjaD0weCUwMngsIHJ4cz0weCUwOHhcbiIsCisJCQkgICAgY2gsIHVlcnN0YXQpOworCisJCQkvKiBjaGVjayBmb3IgYnJlYWsgKi8KKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKSB7CisJCQkJZGJnKCJicmVhayFcbiIpOworCQkJCXBvcnQtPmljb3VudC5icmsrKzsKKwkJCQlpZiAodWFydF9oYW5kbGVfYnJlYWsocG9ydCkpCisJCQkJICAgIGdvdG8gaWdub3JlX2NoYXI7CisJCQl9CisKKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0ZSQU1FKQorCQkJCXBvcnQtPmljb3VudC5mcmFtZSsrOworCQkJaWYgKHVlcnN0YXQgJiBTM0MyNDEwX1VFUlNUQVRfT1ZFUlJVTikKKwkJCQlwb3J0LT5pY291bnQub3ZlcnJ1bisrOworCisJCQl1ZXJzdGF0ICY9IHBvcnQtPnJlYWRfc3RhdHVzX21hc2s7CisKKwkJCWlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX0JSRUFLKQorCQkJCWZsYWcgPSBUVFlfQlJFQUs7CisJCQllbHNlIGlmICh1ZXJzdGF0ICYgUzNDMjQxMF9VRVJTVEFUX1BBUklUWSkKKwkJCQlmbGFnID0gVFRZX1BBUklUWTsKKwkJCWVsc2UgaWYgKHVlcnN0YXQgJiAoUzNDMjQxMF9VRVJTVEFUX0ZSQU1FIHwKKwkJCQkJICAgIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOKSkKKwkJCQlmbGFnID0gVFRZX0ZSQU1FOworCQl9CisKKwkJaWYgKHVhcnRfaGFuZGxlX3N5c3JxX2NoYXIocG9ydCwgY2gpKQorCQkJZ290byBpZ25vcmVfY2hhcjsKKworCQl1YXJ0X2luc2VydF9jaGFyKHBvcnQsIHVlcnN0YXQsIFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOLAorCQkJCSBjaCwgZmxhZyk7CisKKyBpZ25vcmVfY2hhcjoKKwkJY29udGludWU7CisJfQorCXR0eV9mbGlwX2J1ZmZlcl9wdXNoKHR0eSk7CisKKyBvdXQ6CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3QgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMoaW50IGlycSwgdm9pZCAqaWQpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9wb3J0ICpvdXJwb3J0ID0gaWQ7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9ICZvdXJwb3J0LT5wb3J0OworCXN0cnVjdCBjaXJjX2J1ZiAqeG1pdCA9ICZwb3J0LT5pbmZvLT54bWl0OworCWludCBjb3VudCA9IDI1NjsKKworCWlmIChwb3J0LT54X2NoYXIpIHsKKwkJd3JfcmVnYihwb3J0LCBTM0MyNDEwX1VUWEgsIHBvcnQtPnhfY2hhcik7CisJCXBvcnQtPmljb3VudC50eCsrOworCQlwb3J0LT54X2NoYXIgPSAwOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiBpZiB0aGVyZSBpc250IGFueXRoaW5nIG1vcmUgdG8gdHJhbnNtaXQsIG9yIHRoZSB1YXJ0IGlzIG5vdworCSAqIHN0b3BwZWQsIGRpc2FibGUgdGhlIHVhcnQgYW5kIGV4aXQKKwkqLworCisJaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSB8fCB1YXJ0X3R4X3N0b3BwZWQocG9ydCkpIHsKKwkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogdHJ5IGFuZCBkcmFpbiB0aGUgYnVmZmVyLi4uICovCisKKwl3aGlsZSAoIXVhcnRfY2lyY19lbXB0eSh4bWl0KSAmJiBjb3VudC0tID4gMCkgeworCQlpZiAocmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCkgJiBvdXJwb3J0LT5pbmZvLT50eF9maWZvZnVsbCkKKwkJCWJyZWFrOworCisJCXdyX3JlZ2IocG9ydCwgUzNDMjQxMF9VVFhILCB4bWl0LT5idWZbeG1pdC0+dGFpbF0pOworCQl4bWl0LT50YWlsID0gKHhtaXQtPnRhaWwgKyAxKSAmIChVQVJUX1hNSVRfU0laRSAtIDEpOworCQlwb3J0LT5pY291bnQudHgrKzsKKwl9CisKKwlpZiAodWFydF9jaXJjX2NoYXJzX3BlbmRpbmcoeG1pdCkgPCBXQUtFVVBfQ0hBUlMpCisJCXVhcnRfd3JpdGVfd2FrZXVwKHBvcnQpOworCisJaWYgKHVhcnRfY2lyY19lbXB0eSh4bWl0KSkKKwkJczNjMjR4eF9zZXJpYWxfc3RvcF90eChwb3J0KTsKKworIG91dDoKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgczNjMjR4eF9zZXJpYWxfdHhfZW1wdHkoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKwl1bnNpZ25lZCBsb25nIHVmc3RhdCA9IHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRlNUQVQpOworCXVuc2lnbmVkIGxvbmcgdWZjb24gPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUZDT04pOworCisJaWYgKHVmY29uICYgUzNDMjQxMF9VRkNPTl9GSUZPTU9ERSkgeworCQlpZiAoKHVmc3RhdCAmIGluZm8tPnR4X2ZpZm9tYXNrKSAhPSAwIHx8CisJCSAgICAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpKQorCQkJcmV0dXJuIDA7CisKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX3R4ZW1wdHlfbm9maWZvKHBvcnQpOworfQorCisvKiBubyBtb2RlbSBjb250cm9sIGxpbmVzICovCitzdGF0aWMgdW5zaWduZWQgaW50IHMzYzI0eHhfc2VyaWFsX2dldF9tY3RybChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXVuc2lnbmVkIGludCB1bXN0YXQgPSByZF9yZWdiKHBvcnQsIFMzQzI0MTBfVU1TVEFUKTsKKworCWlmICh1bXN0YXQgJiBTM0MyNDEwX1VNU1RBVF9DVFMpCisJCXJldHVybiBUSU9DTV9DQVIgfCBUSU9DTV9EU1IgfCBUSU9DTV9DVFM7CisJZWxzZQorCQlyZXR1cm4gVElPQ01fQ0FSIHwgVElPQ01fRFNSOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zZXRfbWN0cmwoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdW5zaWduZWQgaW50IG1jdHJsKQoreworCS8qIHRvZG8gLSBwb3NzaWJseSByZW1vdmUgQUZDIGFuZCBkbyBtYW51YWwgQ1RTICovCit9CisKK3N0YXRpYyB2b2lkIHMzYzI0eHhfc2VyaWFsX2JyZWFrX2N0bChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgYnJlYWtfc3RhdGUpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwl1bnNpZ25lZCBpbnQgdWNvbjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwl1Y29uID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04pOworCisJaWYgKGJyZWFrX3N0YXRlKQorCQl1Y29uIHw9IFMzQzI0MTBfVUNPTl9TQlJFQUs7CisJZWxzZQorCQl1Y29uICY9IH5TM0MyNDEwX1VDT05fU0JSRUFLOworCisJd3JfcmVnbChwb3J0LCBTM0MyNDEwX1VDT04sIHVjb24pOworCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9ydC0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9zaHV0ZG93bihzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlpZiAob3VycG9ydC0+dHhfY2xhaW1lZCkgeworCQlmcmVlX2lycShUWF9JUlEocG9ydCksIG91cnBvcnQpOworCQl0eF9lbmFibGVkKHBvcnQpID0gMDsKKwkJb3VycG9ydC0+dHhfY2xhaW1lZCA9IDA7CisJfQorCisJaWYgKG91cnBvcnQtPnJ4X2NsYWltZWQpIHsKKwkJZnJlZV9pcnEoUlhfSVJRKHBvcnQpLCBvdXJwb3J0KTsKKwkJb3VycG9ydC0+cnhfY2xhaW1lZCA9IDA7CisJCXJ4X2VuYWJsZWQocG9ydCkgPSAwOworCX0KK30KKworCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCWludCByZXQ7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX3N0YXJ0dXA6IHBvcnQ9JXAgKCUwOGx4LCVwKVxuIiwKKwkgICAgcG9ydC0+bWFwYmFzZSwgcG9ydC0+bWVtYmFzZSk7CisKKwlyeF9lbmFibGVkKHBvcnQpID0gMTsKKworCXJldCA9IHJlcXVlc3RfaXJxKFJYX0lSUShwb3J0KSwKKwkJCSAgczNjMjR4eF9zZXJpYWxfcnhfY2hhcnMsIDAsCisJCQkgIHMzYzI0eHhfc2VyaWFsX3BvcnRuYW1lKHBvcnQpLCBvdXJwb3J0KTsKKworCWlmIChyZXQgIT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgImNhbm5vdCBnZXQgaXJxICVkXG4iLCBSWF9JUlEocG9ydCkpOworCQlyZXR1cm4gcmV0OworCX0KKworCW91cnBvcnQtPnJ4X2NsYWltZWQgPSAxOworCisJZGJnKCJyZXF1ZXN0aW5nIHR4IGlycS4uLlxuIik7CisKKwl0eF9lbmFibGVkKHBvcnQpID0gMTsKKworCXJldCA9IHJlcXVlc3RfaXJxKFRYX0lSUShwb3J0KSwKKwkJCSAgczNjMjR4eF9zZXJpYWxfdHhfY2hhcnMsIDAsCisJCQkgIHMzYzI0eHhfc2VyaWFsX3BvcnRuYW1lKHBvcnQpLCBvdXJwb3J0KTsKKworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJjYW5ub3QgZ2V0IGlycSAlZFxuIiwgVFhfSVJRKHBvcnQpKTsKKwkJZ290byBlcnI7CisJfQorCisJb3VycG9ydC0+dHhfY2xhaW1lZCA9IDE7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAgb2tcbiIpOworCisJLyogdGhlIHBvcnQgcmVzZXQgY29kZSBzaG91bGQgaGF2ZSBkb25lIHRoZSBjb3JyZWN0CisJICogcmVnaXN0ZXIgc2V0dXAgZm9yIHRoZSBwb3J0IGNvbnRyb2xzICovCisKKwlyZXR1cm4gcmV0OworCisgZXJyOgorCXMzYzI0eHhfc2VyaWFsX3NodXRkb3duKHBvcnQpOworCXJldHVybiByZXQ7Cit9CisKKy8qIHBvd2VyIHBvd2VyIG1hbmFnZW1lbnQgY29udHJvbCAqLworCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9wbShzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCB1bnNpZ25lZCBpbnQgbGV2ZWwsCisJCQkgICAgICB1bnNpZ25lZCBpbnQgb2xkKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSAzOgorCQlpZiAoIUlTX0VSUihvdXJwb3J0LT5iYXVkY2xrKSAmJiBvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwpCisJCQljbGtfZGlzYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKKworCQljbGtfZGlzYWJsZShvdXJwb3J0LT5jbGspOworCQlicmVhazsKKworCWNhc2UgMDoKKwkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOworCisJCWlmICghSVNfRVJSKG91cnBvcnQtPmJhdWRjbGspICYmIG91cnBvcnQtPmJhdWRjbGsgIT0gTlVMTCkKKwkJCWNsa19lbmFibGUob3VycG9ydC0+YmF1ZGNsayk7CisKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4X3NlcmlhbDogdW5rbm93biBwbSAlZFxuIiwgbGV2ZWwpOworCX0KK30KKworLyogYmF1ZCByYXRlIGNhbGN1bGF0aW9uCisgKgorICogVGhlIFVBUlRzIG9uIHRoZSBTM0MyNDEwL1MzQzI0NDAgY2FuIHRha2UgdGhlaXIgY2xvY2tzIGZyb20gYSBudW1iZXIKKyAqIG9mIGRpZmZlcmVudCBzb3VyY2VzLCBpbmNsdWRpbmcgdGhlIHBlcmlwaGVyYWwgY2xvY2sgKCJwY2xrIikgYW5kIGFuCisgKiBleHRlcm5hbCBjbG9jayAoInVjbGsiKS4gVGhlIFMzQzI0NDAgYWxzbyBhZGRzIHRoZSBjb3JlIGNsb2NrICgiZmNsayIpCisgKiB3aXRoIGEgcHJvZ3JhbW1hYmxlIGV4dHJhIGRpdmlzb3IuCisgKgorICogVGhlIGZvbGxvd2luZyBjb2RlIGdvZXMgdGhyb3VnaCB0aGUgY2xvY2sgc291cmNlcywgYW5kIGNhbGN1bGF0ZXMgdGhlCisgKiBiYXVkIGNsb2NrcyAoYW5kIHRoZSByZXN1bHRhbnQgYWN0dWFsIGJhdWQgcmF0ZXMpIGFuZCB0aGVuIHRyaWVzIHRvCisgKiBwaWNrIHRoZSBjbG9zZXN0IG9uZSBhbmQgc2VsZWN0IHRoYXQuCisgKgorKi8KKworCisjZGVmaW5lIE1BWF9DTEtTICg4KQorCitzdGF0aWMgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgdG1wX2Nsa3NyYyA9IHsKKwkubmFtZQkJPSAicGNsayIsCisJLm1pbl9iYXVkCT0gMCwKKwkubWF4X2JhdWQJPSAwLAorCS5kaXZpc29yCT0gMSwKK307CisKK3N0YXRpYyBpbmxpbmUgaW50CitzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2Uoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmMpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlyZXR1cm4gKGluZm8tPmdldF9jbGtzcmMpKHBvcnQsIGMpOworfQorCitzdGF0aWMgaW5saW5lIGludAorczNjMjR4eF9zZXJpYWxfc2V0c291cmNlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCisJcmV0dXJuIChpbmZvLT5zZXRfY2xrc3JjKShwb3J0LCBjKTsKK30KKworc3RydWN0IGJhdWRfY2FsYyB7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMJKmNsa3NyYzsKKwl1bnNpZ25lZCBpbnQJCQkgY2FsYzsKKwl1bnNpZ25lZCBpbnQJCQkgcXVvdDsKKwlzdHJ1Y3QgY2xrCQkJKnNyYzsKK307CisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfY2FsY2JhdWQoc3RydWN0IGJhdWRfY2FsYyAqY2FsYywKKwkJCQkgICBzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LAorCQkJCSAgIHN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjICpjbGtzcmMsCisJCQkJICAgdW5zaWduZWQgaW50IGJhdWQpCit7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJY2FsYy0+c3JjID0gY2xrX2dldChwb3J0LT5kZXYsIGNsa3NyYy0+bmFtZSk7CisJaWYgKGNhbGMtPnNyYyA9PSBOVUxMIHx8IElTX0VSUihjYWxjLT5zcmMpKQorCQlyZXR1cm4gMDsKKworCXJhdGUgPSBjbGtfZ2V0X3JhdGUoY2FsYy0+c3JjKTsKKwlyYXRlIC89IGNsa3NyYy0+ZGl2aXNvcjsKKworCWNhbGMtPmNsa3NyYyA9IGNsa3NyYzsKKwljYWxjLT5xdW90ID0gKHJhdGUgKyAoOCAqIGJhdWQpKSAvICgxNiAqIGJhdWQpOworCWNhbGMtPmNhbGMgPSAocmF0ZSAvIChjYWxjLT5xdW90ICogMTYpKTsKKworCWNhbGMtPnF1b3QtLTsKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludCBzM2MyNHh4X3NlcmlhbF9nZXRjbGsoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkJICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqKmNsa3NyYywKKwkJCQkJICBzdHJ1Y3QgY2xrICoqY2xrLAorCQkJCQkgIHVuc2lnbmVkIGludCBiYXVkKQoreworCXN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKmNmZyA9IHMzYzI0eHhfcG9ydF90b19jZmcocG9ydCk7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3A7CisJc3RydWN0IGJhdWRfY2FsYyByZXNbTUFYX0NMS1NdOworCXN0cnVjdCBiYXVkX2NhbGMgKnJlc3B0ciwgKmJlc3QsICpzcHRyOworCWludCBpOworCisJY2xrcCA9IGNmZy0+Y2xvY2tzOworCWJlc3QgPSBOVUxMOworCisJaWYgKGNmZy0+Y2xvY2tzX3NpemUgPCAyKSB7CisJCWlmIChjZmctPmNsb2Nrc19zaXplID09IDApCisJCQljbGtwID0gJnRtcF9jbGtzcmM7CisKKwkJLyogY2hlY2sgdG8gc2VlIGlmIHdlJ3JlIHNvdXJjaW5nIGZjbGssIGFuZCBpZiBzbyB3ZSdyZQorCQkgKiBnb2luZyB0byBoYXZlIHRvIHVwZGF0ZSB0aGUgY2xvY2sgc291cmNlCisJCSAqLworCisJCWlmIChzdHJjbXAoY2xrcC0+bmFtZSwgImZjbGsiKSA9PSAwKSB7CisJCQlzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyBzcmM7CisKKwkJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmc3JjKTsKKworCQkJLyogY2hlY2sgdGhhdCB0aGUgcG9ydCBhbHJlYWR5IHVzaW5nIGZjbGssIGFuZCBpZgorCQkJICogbm90LCB0aGVuIHJlLXNlbGVjdCBmY2xrCisJCQkgKi8KKworCQkJaWYgKHN0cmNtcChzcmMubmFtZSwgY2xrcC0+bmFtZSkgPT0gMCkgeworCQkJCXMzYzI0eHhfc2VyaWFsX3NldHNvdXJjZShwb3J0LCBjbGtwKTsKKwkJCQlzM2MyNHh4X3NlcmlhbF9nZXRzb3VyY2UocG9ydCwgJnNyYyk7CisJCQl9CisKKwkJCWNsa3AtPmRpdmlzb3IgPSBzcmMuZGl2aXNvcjsKKwkJfQorCisJCXMzYzI0eHhfc2VyaWFsX2NhbGNiYXVkKHJlcywgcG9ydCwgY2xrcCwgYmF1ZCk7CisJCWJlc3QgPSByZXM7CisJCXJlc3B0ciA9IGJlc3QgKyAxOworCX0gZWxzZSB7CisJCXJlc3B0ciA9IHJlczsKKworCQlmb3IgKGkgPSAwOyBpIDwgY2ZnLT5jbG9ja3Nfc2l6ZTsgaSsrLCBjbGtwKyspIHsKKwkJCWlmIChzM2MyNHh4X3NlcmlhbF9jYWxjYmF1ZChyZXNwdHIsIHBvcnQsIGNsa3AsIGJhdWQpKQorCQkJCXJlc3B0cisrOworCQl9CisJfQorCisJLyogb2ssIHdlIG5vdyBuZWVkIHRvIHNlbGVjdCB0aGUgYmVzdCBjbG9jayB3ZSBmb3VuZCAqLworCisJaWYgKCFiZXN0KSB7CisJCXVuc2lnbmVkIGludCBkZXZpYXRpb24gPSAoMTw8MzApfCgoMTw8MzApLTEpOworCQlpbnQgY2FsY19kZXZpYXRpb247CisKKwkJZm9yIChzcHRyID0gcmVzOyBzcHRyIDwgcmVzcHRyOyBzcHRyKyspIHsKKwkJCWNhbGNfZGV2aWF0aW9uID0gYmF1ZCAtIHNwdHItPmNhbGM7CisJCQlpZiAoY2FsY19kZXZpYXRpb24gPCAwKQorCQkJCWNhbGNfZGV2aWF0aW9uID0gLWNhbGNfZGV2aWF0aW9uOworCisJCQlpZiAoY2FsY19kZXZpYXRpb24gPCBkZXZpYXRpb24pIHsKKwkJCQliZXN0ID0gc3B0cjsKKwkJCQlkZXZpYXRpb24gPSBjYWxjX2RldmlhdGlvbjsKKwkJCX0KKwkJfQorCX0KKworCS8qIHN0b3JlIHJlc3VsdHMgdG8gcGFzcyBiYWNrICovCisKKwkqY2xrc3JjID0gYmVzdC0+Y2xrc3JjOworCSpjbGsgICAgPSBiZXN0LT5zcmM7CisKKwlyZXR1cm4gYmVzdC0+cXVvdDsKK30KKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfc2V0X3Rlcm1pb3Moc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkgICAgICAgc3RydWN0IGt0ZXJtaW9zICp0ZXJtaW9zLAorCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKm9sZCkKK3sKKwlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmcgPSBzM2MyNHh4X3BvcnRfdG9fY2ZnKHBvcnQpOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCA9IHRvX291cnBvcnQocG9ydCk7CisJc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsa3NyYyA9IE5VTEw7CisJc3RydWN0IGNsayAqY2xrID0gTlVMTDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGludCBiYXVkLCBxdW90OworCXVuc2lnbmVkIGludCB1bGNvbjsKKwl1bnNpZ25lZCBpbnQgdW1jb247CisKKwkvKgorCSAqIFdlIGRvbid0IHN1cHBvcnQgbW9kZW0gY29udHJvbCBsaW5lcy4KKwkgKi8KKwl0ZXJtaW9zLT5jX2NmbGFnICY9IH4oSFVQQ0wgfCBDTVNQQVIpOworCXRlcm1pb3MtPmNfY2ZsYWcgfD0gQ0xPQ0FMOworCisJLyoKKwkgKiBBc2sgdGhlIGNvcmUgdG8gY2FsY3VsYXRlIHRoZSBkaXZpc29yIGZvciB1cy4KKwkgKi8KKworCWJhdWQgPSB1YXJ0X2dldF9iYXVkX3JhdGUocG9ydCwgdGVybWlvcywgb2xkLCAwLCAxMTUyMDAqOCk7CisKKwlpZiAoYmF1ZCA9PSAzODQwMCAmJiAocG9ydC0+ZmxhZ3MgJiBVUEZfU1BEX01BU0spID09IFVQRl9TUERfQ1VTVCkKKwkJcXVvdCA9IHBvcnQtPmN1c3RvbV9kaXZpc29yOworCWVsc2UKKwkJcXVvdCA9IHMzYzI0eHhfc2VyaWFsX2dldGNsayhwb3J0LCAmY2xrc3JjLCAmY2xrLCBiYXVkKTsKKworCS8qIGNoZWNrIHRvIHNlZSBpZiB3ZSBuZWVkICB0byBjaGFuZ2UgY2xvY2sgc291cmNlICovCisKKwlpZiAob3VycG9ydC0+Y2xrc3JjICE9IGNsa3NyYyB8fCBvdXJwb3J0LT5iYXVkY2xrICE9IGNsaykgeworCQlzM2MyNHh4X3NlcmlhbF9zZXRzb3VyY2UocG9ydCwgY2xrc3JjKTsKKworCQlpZiAob3VycG9ydC0+YmF1ZGNsayAhPSBOVUxMICYmICFJU19FUlIob3VycG9ydC0+YmF1ZGNsaykpIHsKKwkJCWNsa19kaXNhYmxlKG91cnBvcnQtPmJhdWRjbGspOworCQkJb3VycG9ydC0+YmF1ZGNsayAgPSBOVUxMOworCQl9CisKKwkJY2xrX2VuYWJsZShjbGspOworCisJCW91cnBvcnQtPmNsa3NyYyA9IGNsa3NyYzsKKwkJb3VycG9ydC0+YmF1ZGNsayA9IGNsazsKKwl9CisKKwlzd2l0Y2ggKHRlcm1pb3MtPmNfY2ZsYWcgJiBDU0laRSkgeworCWNhc2UgQ1M1OgorCQlkYmcoImNvbmZpZzogNWJpdHMvY2hhclxuIik7CisJCXVsY29uID0gUzNDMjQxMF9MQ09OX0NTNTsKKwkJYnJlYWs7CisJY2FzZSBDUzY6CisJCWRiZygiY29uZmlnOiA2Yml0cy9jaGFyXG4iKTsKKwkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M2OworCQlicmVhazsKKwljYXNlIENTNzoKKwkJZGJnKCJjb25maWc6IDdiaXRzL2NoYXJcbiIpOworCQl1bGNvbiA9IFMzQzI0MTBfTENPTl9DUzc7CisJCWJyZWFrOworCWNhc2UgQ1M4OgorCWRlZmF1bHQ6CisJCWRiZygiY29uZmlnOiA4Yml0cy9jaGFyXG4iKTsKKwkJdWxjb24gPSBTM0MyNDEwX0xDT05fQ1M4OworCQlicmVhazsKKwl9CisKKwkvKiBwcmVzZXJ2ZSBvcmlnaW5hbCBsY29uIElSIHNldHRpbmdzICovCisJdWxjb24gfD0gKGNmZy0+dWxjb24gJiBTM0MyNDEwX0xDT05fSVJNKTsKKworCWlmICh0ZXJtaW9zLT5jX2NmbGFnICYgQ1NUT1BCKQorCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fU1RPUEI7CisKKwl1bWNvbiA9ICh0ZXJtaW9zLT5jX2NmbGFnICYgQ1JUU0NUUykgPyBTM0MyNDEwX1VNQ09NX0FGQyA6IDA7CisKKwlpZiAodGVybWlvcy0+Y19jZmxhZyAmIFBBUkVOQikgeworCQlpZiAodGVybWlvcy0+Y19jZmxhZyAmIFBBUk9ERCkKKwkJCXVsY29uIHw9IFMzQzI0MTBfTENPTl9QT0REOworCQllbHNlCisJCQl1bGNvbiB8PSBTM0MyNDEwX0xDT05fUEVWRU47CisJfSBlbHNlIHsKKwkJdWxjb24gfD0gUzNDMjQxMF9MQ09OX1BOT05FOworCX0KKworCXNwaW5fbG9ja19pcnFzYXZlKCZwb3J0LT5sb2NrLCBmbGFncyk7CisKKwlkYmcoInNldHRpbmcgdWxjb24gdG8gJTA4eCwgYnJkZGl2IHRvICVkXG4iLCB1bGNvbiwgcXVvdCk7CisKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04sIHVsY29uKTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVUJSRElWLCBxdW90KTsKKwl3cl9yZWdsKHBvcnQsIFMzQzI0MTBfVU1DT04sIHVtY29uKTsKKworCWRiZygidWFydDogdWxjb24gPSAweCUwOHgsIHVjb24gPSAweCUwOHgsIHVmY29uID0gMHglMDh4XG4iLAorCSAgICByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUxDT04pLAorCSAgICByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTiksCisJICAgIHJkX3JlZ2wocG9ydCwgUzNDMjQxMF9VRkNPTikpOworCisJLyoKKwkgKiBVcGRhdGUgdGhlIHBlci1wb3J0IHRpbWVvdXQuCisJICovCisJdWFydF91cGRhdGVfdGltZW91dChwb3J0LCB0ZXJtaW9zLT5jX2NmbGFnLCBiYXVkKTsKKworCS8qCisJICogV2hpY2ggY2hhcmFjdGVyIHN0YXR1cyBmbGFncyBhcmUgd2UgaW50ZXJlc3RlZCBpbj8KKwkgKi8KKwlwb3J0LT5yZWFkX3N0YXR1c19tYXNrID0gUzNDMjQxMF9VRVJTVEFUX09WRVJSVU47CisJaWYgKHRlcm1pb3MtPmNfaWZsYWcgJiBJTlBDSykKKwkJcG9ydC0+cmVhZF9zdGF0dXNfbWFzayB8PSBTM0MyNDEwX1VFUlNUQVRfRlJBTUUgfCBTM0MyNDEwX1VFUlNUQVRfUEFSSVRZOworCisJLyoKKwkgKiBXaGljaCBjaGFyYWN0ZXIgc3RhdHVzIGZsYWdzIHNob3VsZCB3ZSBpZ25vcmU/CisJICovCisJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrID0gMDsKKwlpZiAodGVybWlvcy0+Y19pZmxhZyAmIElHTlBBUikKKwkJcG9ydC0+aWdub3JlX3N0YXR1c19tYXNrIHw9IFMzQzI0MTBfVUVSU1RBVF9PVkVSUlVOOworCWlmICh0ZXJtaW9zLT5jX2lmbGFnICYgSUdOQlJLICYmIHRlcm1pb3MtPmNfaWZsYWcgJiBJR05QQVIpCisJCXBvcnQtPmlnbm9yZV9zdGF0dXNfbWFzayB8PSBTM0MyNDEwX1VFUlNUQVRfRlJBTUU7CisKKwkvKgorCSAqIElnbm9yZSBhbGwgY2hhcmFjdGVycyBpZiBDUkVBRCBpcyBub3Qgc2V0LgorCSAqLworCWlmICgodGVybWlvcy0+Y19jZmxhZyAmIENSRUFEKSA9PSAwKQorCQlwb3J0LT5pZ25vcmVfc3RhdHVzX21hc2sgfD0gUlhTVEFUX0RVTU1ZX1JFQUQ7CisKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb3J0LT5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpzM2MyNHh4X3NlcmlhbF90eXBlKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJc3dpdGNoIChwb3J0LT50eXBlKSB7CisJY2FzZSBQT1JUX1MzQzI0MTA6CisJCXJldHVybiAiUzNDMjQxMCI7CisJY2FzZSBQT1JUX1MzQzI0NDA6CisJCXJldHVybiAiUzNDMjQ0MCI7CisJY2FzZSBQT1JUX1MzQzI0MTI6CisJCXJldHVybiAiUzNDMjQxMiI7CisJZGVmYXVsdDoKKwkJcmV0dXJuIE5VTEw7CisJfQorfQorCisjZGVmaW5lIE1BUF9TSVpFICgweDEwMCkKKworc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcmVsZWFzZV9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCit7CisJcmVsZWFzZV9tZW1fcmVnaW9uKHBvcnQtPm1hcGJhc2UsIE1BUF9TSVpFKTsKK30KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9yZXF1ZXN0X3BvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKK3sKKwljb25zdCBjaGFyICpuYW1lID0gczNjMjR4eF9zZXJpYWxfcG9ydG5hbWUocG9ydCk7CisJcmV0dXJuIHJlcXVlc3RfbWVtX3JlZ2lvbihwb3J0LT5tYXBiYXNlLCBNQVBfU0laRSwgbmFtZSkgPyAwIDogLUVCVVNZOworfQorCitzdGF0aWMgdm9pZCBzM2MyNHh4X3NlcmlhbF9jb25maWdfcG9ydChzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlpZiAoZmxhZ3MgJiBVQVJUX0NPTkZJR19UWVBFICYmCisJICAgIHMzYzI0eHhfc2VyaWFsX3JlcXVlc3RfcG9ydChwb3J0KSA9PSAwKQorCQlwb3J0LT50eXBlID0gaW5mby0+dHlwZTsKK30KKworLyoKKyAqIHZlcmlmeSB0aGUgbmV3IHNlcmlhbF9zdHJ1Y3QgKGZvciBUSU9DU1NFUklBTCkuCisgKi8KK3N0YXRpYyBpbnQKK3MzYzI0eHhfc2VyaWFsX3ZlcmlmeV9wb3J0KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHN0cnVjdCBzZXJpYWxfc3RydWN0ICpzZXIpCit7CisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvID0gczNjMjR4eF9wb3J0X3RvX2luZm8ocG9ydCk7CisKKwlpZiAoc2VyLT50eXBlICE9IFBPUlRfVU5LTk9XTiAmJiBzZXItPnR5cGUgIT0gaW5mby0+dHlwZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gMDsKK30KKworCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEUKKworc3RhdGljIHN0cnVjdCBjb25zb2xlIHMzYzI0eHhfc2VyaWFsX2NvbnNvbGU7CisKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfQ09OU09MRSAmczNjMjR4eF9zZXJpYWxfY29uc29sZQorI2Vsc2UKKyNkZWZpbmUgUzNDMjRYWF9TRVJJQUxfQ09OU09MRSBOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCB1YXJ0X29wcyBzM2MyNHh4X3NlcmlhbF9vcHMgPSB7CisJLnBtCQk9IHMzYzI0eHhfc2VyaWFsX3BtLAorCS50eF9lbXB0eQk9IHMzYzI0eHhfc2VyaWFsX3R4X2VtcHR5LAorCS5nZXRfbWN0cmwJPSBzM2MyNHh4X3NlcmlhbF9nZXRfbWN0cmwsCisJLnNldF9tY3RybAk9IHMzYzI0eHhfc2VyaWFsX3NldF9tY3RybCwKKwkuc3RvcF90eAk9IHMzYzI0eHhfc2VyaWFsX3N0b3BfdHgsCisJLnN0YXJ0X3R4CT0gczNjMjR4eF9zZXJpYWxfc3RhcnRfdHgsCisJLnN0b3BfcngJPSBzM2MyNHh4X3NlcmlhbF9zdG9wX3J4LAorCS5lbmFibGVfbXMJPSBzM2MyNHh4X3NlcmlhbF9lbmFibGVfbXMsCisJLmJyZWFrX2N0bAk9IHMzYzI0eHhfc2VyaWFsX2JyZWFrX2N0bCwKKwkuc3RhcnR1cAk9IHMzYzI0eHhfc2VyaWFsX3N0YXJ0dXAsCisJLnNodXRkb3duCT0gczNjMjR4eF9zZXJpYWxfc2h1dGRvd24sCisJLnNldF90ZXJtaW9zCT0gczNjMjR4eF9zZXJpYWxfc2V0X3Rlcm1pb3MsCisJLnR5cGUJCT0gczNjMjR4eF9zZXJpYWxfdHlwZSwKKwkucmVsZWFzZV9wb3J0CT0gczNjMjR4eF9zZXJpYWxfcmVsZWFzZV9wb3J0LAorCS5yZXF1ZXN0X3BvcnQJPSBzM2MyNHh4X3NlcmlhbF9yZXF1ZXN0X3BvcnQsCisJLmNvbmZpZ19wb3J0CT0gczNjMjR4eF9zZXJpYWxfY29uZmlnX3BvcnQsCisJLnZlcmlmeV9wb3J0CT0gczNjMjR4eF9zZXJpYWxfdmVyaWZ5X3BvcnQsCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgczNjMjR4eF91YXJ0X2RydiA9IHsKKwkub3duZXIJCT0gVEhJU19NT0RVTEUsCisJLmRldl9uYW1lCT0gInMzYzI0MTBfc2VyaWFsIiwKKwkubnIJCT0gMywKKwkuY29ucwkJPSBTM0MyNFhYX1NFUklBTF9DT05TT0xFLAorCS5kcml2ZXJfbmFtZQk9IFMzQzI0WFhfU0VSSUFMX05BTUUsCisJLm1ham9yCQk9IFMzQzI0WFhfU0VSSUFMX01BSk9SLAorCS5taW5vcgkJPSBTM0MyNFhYX1NFUklBTF9NSU5PUiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgczNjMjR4eF9zZXJpYWxfcG9ydHNbTlJfUE9SVFNdID0geworCVswXSA9IHsKKwkJLnBvcnQgPSB7CisJCQkubG9jawkJPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzM2MyNHh4X3NlcmlhbF9wb3J0c1swXS5wb3J0LmxvY2spLAorCQkJLmlvdHlwZQkJPSBVUElPX01FTSwKKwkJCS5pcnEJCT0gSVJRX1MzQ1VBUlRfUlgwLAorCQkJLnVhcnRjbGsJPSAwLAorCQkJLmZpZm9zaXplCT0gMTYsCisJCQkub3BzCQk9ICZzM2MyNHh4X3NlcmlhbF9vcHMsCisJCQkuZmxhZ3MJCT0gVVBGX0JPT1RfQVVUT0NPTkYsCisJCQkubGluZQkJPSAwLAorCQl9CisJfSwKKwlbMV0gPSB7CisJCS5wb3J0ID0geworCQkJLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoczNjMjR4eF9zZXJpYWxfcG9ydHNbMV0ucG9ydC5sb2NrKSwKKwkJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCQkuaXJxCQk9IElSUV9TM0NVQVJUX1JYMSwKKwkJCS51YXJ0Y2xrCT0gMCwKKwkJCS5maWZvc2l6ZQk9IDE2LAorCQkJLm9wcwkJPSAmczNjMjR4eF9zZXJpYWxfb3BzLAorCQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAorCQkJLmxpbmUJCT0gMSwKKwkJfQorCX0sCisjaWYgTlJfUE9SVFMgPiAyCisKKwlbMl0gPSB7CisJCS5wb3J0ID0geworCQkJLmxvY2sJCT0gX19TUElOX0xPQ0tfVU5MT0NLRUQoczNjMjR4eF9zZXJpYWxfcG9ydHNbMl0ucG9ydC5sb2NrKSwKKwkJCS5pb3R5cGUJCT0gVVBJT19NRU0sCisJCQkuaXJxCQk9IElSUV9TM0NVQVJUX1JYMiwKKwkJCS51YXJ0Y2xrCT0gMCwKKwkJCS5maWZvc2l6ZQk9IDE2LAorCQkJLm9wcwkJPSAmczNjMjR4eF9zZXJpYWxfb3BzLAorCQkJLmZsYWdzCQk9IFVQRl9CT09UX0FVVE9DT05GLAorCQkJLmxpbmUJCT0gMiwKKwkJfQorCX0KKyNlbmRpZgorfTsKKworLyogczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0CisgKgorICogd3JhcHBlciB0byBjYWxsIHRoZSBzcGVjaWZpYyByZXNldCBmb3IgdGhpcyBwb3J0IChyZXNldCB0aGUgZmlmb3MKKyAqIGFuZCB0aGUgc2V0dGluZ3MpCisqLworCitzdGF0aWMgaW5saW5lIGludCBzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwKKwkJCQkJICAgc3RydWN0IHMzYzI0MTBfdWFydGNmZyAqY2ZnKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbyA9IHMzYzI0eHhfcG9ydF90b19pbmZvKHBvcnQpOworCisJcmV0dXJuIChpbmZvLT5yZXNldF9wb3J0KShwb3J0LCBjZmcpOworfQorCisvKiBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnQKKyAqCisgKiBpbml0aWFsaXNlIGEgc2luZ2xlIHNlcmlhbCBwb3J0IGZyb20gdGhlIHBsYXRmb3JtIGRldmljZSBnaXZlbgorICovCisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCwKKwkJCQkgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvLAorCQkJCSAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwbGF0ZGV2KQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSAmb3VycG9ydC0+cG9ydDsKKwlzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICpjZmc7CisJc3RydWN0IHJlc291cmNlICpyZXM7CisJaW50IHJldDsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBwb3J0PSVwLCBwbGF0ZGV2PSVwXG4iLCBwb3J0LCBwbGF0ZGV2KTsKKworCWlmIChwbGF0ZGV2ID09IE5VTEwpCisJCXJldHVybiAtRU5PREVWOworCisJY2ZnID0gczNjMjR4eF9kZXZfdG9fY2ZnKCZwbGF0ZGV2LT5kZXYpOworCisJaWYgKHBvcnQtPm1hcGJhc2UgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoY2ZnLT5od3BvcnQgPiAzKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCS8qIHNldHVwIGluZm8gZm9yIHBvcnQgKi8KKwlwb3J0LT5kZXYJPSAmcGxhdGRldi0+ZGV2OworCW91cnBvcnQtPmluZm8JPSBpbmZvOworCisJLyogY29weSB0aGUgaW5mbyBpbiBmcm9tIHByb3ZpZGVkIHN0cnVjdHVyZSAqLworCW91cnBvcnQtPnBvcnQuZmlmb3NpemUgPSBpbmZvLT5maWZvc2l6ZTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiAlcCAoaHcgJWQpLi4uXG4iLCBwb3J0LCBjZmctPmh3cG9ydCk7CisKKwlwb3J0LT51YXJ0Y2xrID0gMTsKKworCWlmIChjZmctPnVhcnRfZmxhZ3MgJiBVUEZfQ09OU19GTE9XKSB7CisJCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0OiBlbmFibGluZyBmbG93IGNvbnRyb2xcbiIpOworCQlwb3J0LT5mbGFncyB8PSBVUEZfQ09OU19GTE9XOworCX0KKworCS8qIHNvcnQgb3VyIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzZXMgZm9yIGVhY2ggVUFSVCAqLworCisJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBsYXRkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlpZiAocmVzID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gZmluZCBtZW1vcnkgcmVzb3VyY2UgZm9yIHVhcnRcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkYmcoInJlc291cmNlICVwICglbHguLiVseClcbiIsIHJlcywgcmVzLT5zdGFydCwgcmVzLT5lbmQpOworCisJcG9ydC0+bWFwYmFzZQk9IHJlcy0+c3RhcnQ7CisJcG9ydC0+bWVtYmFzZQk9IFMzQzI0WFhfVkFfVUFSVCArIChyZXMtPnN0YXJ0IC0gUzNDMjRYWF9QQV9VQVJUKTsKKwlyZXQgPSBwbGF0Zm9ybV9nZXRfaXJxKHBsYXRkZXYsIDApOworCWlmIChyZXQgPCAwKQorCQlwb3J0LT5pcnEgPSAwOworCWVsc2UKKwkJcG9ydC0+aXJxID0gcmV0OworCisJb3VycG9ydC0+Y2xrCT0gY2xrX2dldCgmcGxhdGRldi0+ZGV2LCAidWFydCIpOworCisJZGJnKCJwb3J0OiBtYXA9JTA4eCwgbWVtPSUwOHgsIGlycT0lZCwgY2xvY2s9JWxkXG4iLAorCSAgICBwb3J0LT5tYXBiYXNlLCBwb3J0LT5tZW1iYXNlLCBwb3J0LT5pcnEsIHBvcnQtPnVhcnRjbGspOworCisJLyogcmVzZXQgdGhlIGZpZm9zIChhbmQgc2V0dXAgdGhlIHVhcnQpICovCisJczNjMjR4eF9zZXJpYWxfcmVzZXRwb3J0KHBvcnQsIGNmZyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHMzYzI0eHhfc2VyaWFsX3Nob3dfY2xrc3JjKHN0cnVjdCBkZXZpY2UgKmRldiwKKwkJCQkJICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCQkJICBjaGFyICpidWYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoZGV2KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCisJcmV0dXJuIHNucHJpbnRmKGJ1ZiwgUEFHRV9TSVpFLCAiKiAlc1xuIiwgb3VycG9ydC0+Y2xrc3JjLT5uYW1lKTsKK30KKworc3RhdGljIERFVklDRV9BVFRSKGNsb2NrX3NvdXJjZSwgU19JUlVHTywgczNjMjR4eF9zZXJpYWxfc2hvd19jbGtzcmMsIE5VTEwpOworCisvKiBEZXZpY2UgZHJpdmVyIHNlcmlhbCBwb3J0IHByb2JlICovCisKK3N0YXRpYyBpbnQgcHJvYmVfaW5kZXg7CisKK2ludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCisJCQkgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydDsKKwlpbnQgcmV0OworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9wcm9iZSglcCwgJXApICVkXG4iLCBkZXYsIGluZm8sIHByb2JlX2luZGV4KTsKKworCW91cnBvcnQgPSAmczNjMjR4eF9zZXJpYWxfcG9ydHNbcHJvYmVfaW5kZXhdOworCXByb2JlX2luZGV4Kys7CisKKwlkYmcoIiVzOiBpbml0aWFsaXNpbmcgcG9ydCAlcC4uLlxuIiwgX19mdW5jX18sIG91cnBvcnQpOworCisJcmV0ID0gczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KG91cnBvcnQsIGluZm8sIGRldik7CisJaWYgKHJldCA8IDApCisJCWdvdG8gcHJvYmVfZXJyOworCisJZGJnKCIlczogYWRkaW5nIHBvcnRcbiIsIF9fZnVuY19fKTsKKwl1YXJ0X2FkZF9vbmVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgJm91cnBvcnQtPnBvcnQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKGRldiwgJm91cnBvcnQtPnBvcnQpOworCisJcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKCZkZXYtPmRldiwgJmRldl9hdHRyX2Nsb2NrX3NvdXJjZSk7CisJaWYgKHJldCA8IDApCisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGZhaWxlZCB0byBhZGQgY2xrc3JjIGF0dHIuXG4iLCBfX2Z1bmNfXyk7CisKKwlyZXR1cm4gMDsKKworIHByb2JlX2VycjoKKwlyZXR1cm4gcmV0OworfQorCitFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X3NlcmlhbF9wcm9iZSk7CisKK2ludCBzM2MyNHh4X3NlcmlhbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzM2MyNHh4X2Rldl90b19wb3J0KCZkZXYtPmRldik7CisKKwlpZiAocG9ydCkgeworCQlkZXZpY2VfcmVtb3ZlX2ZpbGUoJmRldi0+ZGV2LCAmZGV2X2F0dHJfY2xvY2tfc291cmNlKTsKKwkJdWFydF9yZW1vdmVfb25lX3BvcnQoJnMzYzI0eHhfdWFydF9kcnYsIHBvcnQpOworCX0KKworCXJldHVybiAwOworfQorCitFWFBPUlRfU1lNQk9MX0dQTChzM2MyNHh4X3NlcmlhbF9yZW1vdmUpOworCisvKiBVQVJUIHBvd2VyIG1hbmFnZW1lbnQgY29kZSAqLworCisjaWZkZWYgQ09ORklHX1BNCisKK3N0YXRpYyBpbnQgczNjMjR4eF9zZXJpYWxfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0ID0gczNjMjR4eF9kZXZfdG9fcG9ydCgmZGV2LT5kZXYpOworCisJaWYgKHBvcnQpCisJCXVhcnRfc3VzcGVuZF9wb3J0KCZzM2MyNHh4X3VhcnRfZHJ2LCBwb3J0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHMzYzI0eHhfc2VyaWFsX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHVhcnRfcG9ydCAqcG9ydCA9IHMzYzI0eHhfZGV2X3RvX3BvcnQoJmRldi0+ZGV2KTsKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCisJaWYgKHBvcnQpIHsKKwkJY2xrX2VuYWJsZShvdXJwb3J0LT5jbGspOworCQlzM2MyNHh4X3NlcmlhbF9yZXNldHBvcnQocG9ydCwgczNjMjR4eF9wb3J0X3RvX2NmZyhwb3J0KSk7CisJCWNsa19kaXNhYmxlKG91cnBvcnQtPmNsayk7CisKKwkJdWFydF9yZXN1bWVfcG9ydCgmczNjMjR4eF91YXJ0X2RydiwgcG9ydCk7CisJfQorCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworaW50IHMzYzI0eHhfc2VyaWFsX2luaXQoc3RydWN0IHBsYXRmb3JtX2RyaXZlciAqZHJ2LAorCQkJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICppbmZvKQoreworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdCglcCwlcClcbiIsIGRydiwgaW5mbyk7CisKKyNpZmRlZiBDT05GSUdfUE0KKwlkcnYtPnN1c3BlbmQgPSBzM2MyNHh4X3NlcmlhbF9zdXNwZW5kOworCWRydi0+cmVzdW1lID0gczNjMjR4eF9zZXJpYWxfcmVzdW1lOworI2VuZGlmCisKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKGRydik7Cit9CisKK0VYUE9SVF9TWU1CT0xfR1BMKHMzYzI0eHhfc2VyaWFsX2luaXQpOworCisvKiBtb2R1bGUgaW5pdGlhbGlzYXRpb24gY29kZSAqLworCitzdGF0aWMgaW50IF9faW5pdCBzM2MyNHh4X3NlcmlhbF9tb2Rpbml0KHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IHVhcnRfcmVnaXN0ZXJfZHJpdmVyKCZzM2MyNHh4X3VhcnRfZHJ2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byByZWdpc3RlciBVQVJUIGRyaXZlclxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IHMzYzI0eHhfc2VyaWFsX21vZGV4aXQodm9pZCkKK3sKKwl1YXJ0X3VucmVnaXN0ZXJfZHJpdmVyKCZzM2MyNHh4X3VhcnRfZHJ2KTsKK30KKworbW9kdWxlX2luaXQoczNjMjR4eF9zZXJpYWxfbW9kaW5pdCk7Cittb2R1bGVfZXhpdChzM2MyNHh4X3NlcmlhbF9tb2RleGl0KTsKKworLyogQ29uc29sZSBjb2RlICovCisKKyNpZmRlZiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRQorCitzdGF0aWMgc3RydWN0IHVhcnRfcG9ydCAqY29uc191YXJ0OworCitzdGF0aWMgaW50CitzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3R4cmR5KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGludCB1ZmNvbikKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8gPSBzM2MyNHh4X3BvcnRfdG9faW5mbyhwb3J0KTsKKwl1bnNpZ25lZCBsb25nIHVmc3RhdCwgdXRyc3RhdDsKKworCWlmICh1ZmNvbiAmIFMzQzI0MTBfVUZDT05fRklGT01PREUpIHsKKwkJLyogZmlmbyBtb2RlIC0gY2hlY2sgYW1tb3VudCBvZiBkYXRhIGluIGZpZm8gcmVnaXN0ZXJzLi4uICovCisKKwkJdWZzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VGU1RBVCk7CisJCXJldHVybiAodWZzdGF0ICYgaW5mby0+dHhfZmlmb2Z1bGwpID8gMCA6IDE7CisJfQorCisJLyogaW4gbm9uLWZpZm8gbW9kZSwgd2UgZ28gYW5kIHVzZSB0aGUgdHggYnVmZmVyIGVtcHR5ICovCisKKwl1dHJzdGF0ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VUUlNUQVQpOworCXJldHVybiAodXRyc3RhdCAmIFMzQzI0MTBfVVRSU1RBVF9UWEUpID8gMSA6IDA7Cit9CisKK3N0YXRpYyB2b2lkCitzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3B1dGNoYXIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgaW50IGNoKQoreworCXVuc2lnbmVkIGludCB1ZmNvbiA9IHJkX3JlZ2woY29uc191YXJ0LCBTM0MyNDEwX1VGQ09OKTsKKwl3aGlsZSAoIXMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfdHhyZHkocG9ydCwgdWZjb24pKQorCQliYXJyaWVyKCk7CisJd3JfcmVnYihjb25zX3VhcnQsIFMzQzI0MTBfVVRYSCwgY2gpOworfQorCitzdGF0aWMgdm9pZAorczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsCisJCQkgICAgIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwl1YXJ0X2NvbnNvbGVfd3JpdGUoY29uc191YXJ0LCBzLCBjb3VudCwgczNjMjR4eF9zZXJpYWxfY29uc29sZV9wdXRjaGFyKTsKK30KKworc3RhdGljIHZvaWQgX19pbml0CitzM2MyNHh4X3NlcmlhbF9nZXRfb3B0aW9ucyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgKmJhdWQsCisJCQkgICBpbnQgKnBhcml0eSwgaW50ICpiaXRzKQoreworCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjIGNsa3NyYzsKKwlzdHJ1Y3QgY2xrICpjbGs7CisJdW5zaWduZWQgaW50IHVsY29uOworCXVuc2lnbmVkIGludCB1Y29uOworCXVuc2lnbmVkIGludCB1YnJkaXY7CisJdW5zaWduZWQgbG9uZyByYXRlOworCisJdWxjb24gID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VMQ09OKTsKKwl1Y29uICAgPSByZF9yZWdsKHBvcnQsIFMzQzI0MTBfVUNPTik7CisJdWJyZGl2ID0gcmRfcmVnbChwb3J0LCBTM0MyNDEwX1VCUkRJVik7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zOiBwb3J0PSVwXG4iCisJICAgICJyZWdpc3RlcnM6IHVsY29uPSUwOHgsIHVjb249JTA4eCwgdWJkcml2PSUwOHhcbiIsCisJICAgIHBvcnQsIHVsY29uLCB1Y29uLCB1YnJkaXYpOworCisJaWYgKCh1Y29uICYgMHhmKSAhPSAwKSB7CisJCS8qIGNvbnNpZGVyIHRoZSBzZXJpYWwgcG9ydCBjb25maWd1cmVkIGlmIHRoZSB0eC9yeCBtb2RlIHNldCAqLworCisJCXN3aXRjaCAodWxjb24gJiBTM0MyNDEwX0xDT05fQ1NNQVNLKSB7CisJCWNhc2UgUzNDMjQxMF9MQ09OX0NTNToKKwkJCSpiaXRzID0gNTsKKwkJCWJyZWFrOworCQljYXNlIFMzQzI0MTBfTENPTl9DUzY6CisJCQkqYml0cyA9IDY7CisJCQlicmVhazsKKwkJY2FzZSBTM0MyNDEwX0xDT05fQ1M3OgorCQkJKmJpdHMgPSA3OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCWNhc2UgUzNDMjQxMF9MQ09OX0NTODoKKwkJCSpiaXRzID0gODsKKwkJCWJyZWFrOworCQl9CisKKwkJc3dpdGNoICh1bGNvbiAmIFMzQzI0MTBfTENPTl9QTUFTSykgeworCQljYXNlIFMzQzI0MTBfTENPTl9QRVZFTjoKKwkJCSpwYXJpdHkgPSAnZSc7CisJCQlicmVhazsKKworCQljYXNlIFMzQzI0MTBfTENPTl9QT0REOgorCQkJKnBhcml0eSA9ICdvJzsKKwkJCWJyZWFrOworCisJCWNhc2UgUzNDMjQxMF9MQ09OX1BOT05FOgorCQlkZWZhdWx0OgorCQkJKnBhcml0eSA9ICduJzsKKwkJfQorCisJCS8qIG5vdyBjYWxjdWxhdGUgdGhlIGJhdWQgcmF0ZSAqLworCisJCXMzYzI0eHhfc2VyaWFsX2dldHNvdXJjZShwb3J0LCAmY2xrc3JjKTsKKworCQljbGsgPSBjbGtfZ2V0KHBvcnQtPmRldiwgY2xrc3JjLm5hbWUpOworCQlpZiAoIUlTX0VSUihjbGspICYmIGNsayAhPSBOVUxMKQorCQkJcmF0ZSA9IGNsa19nZXRfcmF0ZShjbGspIC8gY2xrc3JjLmRpdmlzb3I7CisJCWVsc2UKKwkJCXJhdGUgPSAxOworCisKKwkJKmJhdWQgPSByYXRlIC8gKDE2ICogKHVicmRpdiArIDEpKTsKKwkJZGJnKCJjYWxjdWxhdGVkIGJhdWQgJWRcbiIsICpiYXVkKTsKKwl9CisKK30KKworLyogczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0cworICoKKyAqIGluaXRpYWxpc2UgdGhlIHNlcmlhbCBwb3J0cyBmcm9tIHRoZSBtYWNoaW5lIHByb3ZpZGVkIGluaXRpYWxpc2F0aW9uCisgKiBkYXRhLgorKi8KKworc3RhdGljIGludCBzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzKHN0cnVjdCBzM2MyNHh4X3VhcnRfaW5mbyAqaW5mbykKK3sKKwlzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgKnB0ciA9IHMzYzI0eHhfc2VyaWFsX3BvcnRzOworCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKipwbGF0ZGV2X3B0cjsKKwlpbnQgaTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0czogaW5pdGlhbGlzaW5nIHBvcnRzLi4uXG4iKTsKKworCXBsYXRkZXZfcHRyID0gczNjMjR4eF91YXJ0X2RldnM7CisKKwlmb3IgKGkgPSAwOyBpIDwgTlJfUE9SVFM7IGkrKywgcHRyKyssIHBsYXRkZXZfcHRyKyspIHsKKwkJczNjMjR4eF9zZXJpYWxfaW5pdF9wb3J0KHB0ciwgaW5mbywgKnBsYXRkZXZfcHRyKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2luaXQKK3MzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXAoc3RydWN0IGNvbnNvbGUgKmNvLCBjaGFyICpvcHRpb25zKQoreworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQ7CisJaW50IGJhdWQgPSA5NjAwOworCWludCBiaXRzID0gODsKKwlpbnQgcGFyaXR5ID0gJ24nOworCWludCBmbG93ID0gJ24nOworCisJZGJnKCJzM2MyNHh4X3NlcmlhbF9jb25zb2xlX3NldHVwOiBjbz0lcCAoJWQpLCAlc1xuIiwKKwkgICAgY28sIGNvLT5pbmRleCwgb3B0aW9ucyk7CisKKwkvKiBpcyB0aGlzIGEgdmFsaWQgcG9ydCAqLworCisJaWYgKGNvLT5pbmRleCA9PSAtMSB8fCBjby0+aW5kZXggPj0gTlJfUE9SVFMpCisJCWNvLT5pbmRleCA9IDA7CisKKwlwb3J0ID0gJnMzYzI0eHhfc2VyaWFsX3BvcnRzW2NvLT5pbmRleF0ucG9ydDsKKworCS8qIGlzIHRoZSBwb3J0IGNvbmZpZ3VyZWQ/ICovCisKKwlpZiAocG9ydC0+bWFwYmFzZSA9PSAweDApIHsKKwkJY28tPmluZGV4ID0gMDsKKwkJcG9ydCA9ICZzM2MyNHh4X3NlcmlhbF9wb3J0c1tjby0+aW5kZXhdLnBvcnQ7CisJfQorCisJY29uc191YXJ0ID0gcG9ydDsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cDogcG9ydD0lcCAoJWQpXG4iLCBwb3J0LCBjby0+aW5kZXgpOworCisJLyoKKwkgKiBDaGVjayB3aGV0aGVyIGFuIGludmFsaWQgdWFydCBudW1iZXIgaGFzIGJlZW4gc3BlY2lmaWVkLCBhbmQKKwkgKiBpZiBzbywgc2VhcmNoIGZvciB0aGUgZmlyc3QgYXZhaWxhYmxlIHBvcnQgdGhhdCBkb2VzIGhhdmUKKwkgKiBjb25zb2xlIHN1cHBvcnQuCisJICovCisJaWYgKG9wdGlvbnMpCisJCXVhcnRfcGFyc2Vfb3B0aW9ucyhvcHRpb25zLCAmYmF1ZCwgJnBhcml0eSwgJmJpdHMsICZmbG93KTsKKwllbHNlCisJCXMzYzI0eHhfc2VyaWFsX2dldF9vcHRpb25zKHBvcnQsICZiYXVkLCAmcGFyaXR5LCAmYml0cyk7CisKKwlkYmcoInMzYzI0eHhfc2VyaWFsX2NvbnNvbGVfc2V0dXA6IGJhdWQgJWRcbiIsIGJhdWQpOworCisJcmV0dXJuIHVhcnRfc2V0X29wdGlvbnMocG9ydCwgY28sIGJhdWQsIHBhcml0eSwgYml0cywgZmxvdyk7Cit9CisKKy8qIHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlCisgKgorICogaW5pdGlhbGlzZSB0aGUgY29uc29sZSBmcm9tIG9uZSBvZiB0aGUgdWFydCBkcml2ZXJzCisqLworCitzdGF0aWMgc3RydWN0IGNvbnNvbGUgczNjMjR4eF9zZXJpYWxfY29uc29sZSA9IHsKKwkubmFtZQkJPSBTM0MyNFhYX1NFUklBTF9OQU1FLAorCS5kZXZpY2UJCT0gdWFydF9jb25zb2xlX2RldmljZSwKKwkuZmxhZ3MJCT0gQ09OX1BSSU5UQlVGRkVSLAorCS5pbmRleAkJPSAtMSwKKwkud3JpdGUJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV93cml0ZSwKKwkuc2V0dXAJCT0gczNjMjR4eF9zZXJpYWxfY29uc29sZV9zZXR1cAorfTsKKworaW50IHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiwKKwkJCSAgICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pCisKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYgPSBzM2MyNHh4X3VhcnRfZGV2c1swXTsKKworCWRiZygiczNjMjR4eF9zZXJpYWxfaW5pdGNvbnNvbGVcbiIpOworCisJLyogc2VsZWN0IGRyaXZlciBiYXNlZCBvbiB0aGUgY3B1ICovCisKKwlpZiAoZGV2ID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJzM2MyNHh4OiBubyBkZXZpY2VzIGZvciBjb25zb2xlIGluaXRcbiIpOworCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoc3RyY21wKGRldi0+bmFtZSwgZHJ2LT5kcml2ZXIubmFtZSkgIT0gMCkKKwkJcmV0dXJuIDA7CisKKwlzM2MyNHh4X3NlcmlhbF9jb25zb2xlLmRhdGEgPSAmczNjMjR4eF91YXJ0X2RydjsKKwlzM2MyNHh4X3NlcmlhbF9pbml0X3BvcnRzKGluZm8pOworCisJcmVnaXN0ZXJfY29uc29sZSgmczNjMjR4eF9zZXJpYWxfY29uc29sZSk7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfU0VSSUFMX1NBTVNVTkdfQ09OU09MRSAqLworCitNT0RVTEVfREVTQ1JJUFRJT04oIlNhbXN1bmcgU29DIFNlcmlhbCBwb3J0IGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5oIGIvZHJpdmVycy9zZXJpYWwvc2Ftc3VuZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjOTJlYmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3NlcmlhbC9zYW1zdW5nLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qIGxpbnV4L2RyaXZlcnMvc2VyaWFsL3NhbXN1bmcuaAorICoKKyAqIERyaXZlciBmb3IgU2Ftc3VuZyBTb0Mgb25ib2FyZCBVQVJUcy4KKyAqCisgKiBCZW4gRG9va3MsIENvcHlyaWdodCAoYykgMjAwMy0yMDA1LDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCitzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8geworCWNoYXIJCQkqbmFtZTsKKwl1bnNpZ25lZCBpbnQJCXR5cGU7CisJdW5zaWduZWQgaW50CQlmaWZvc2l6ZTsKKwl1bnNpZ25lZCBsb25nCQlyeF9maWZvbWFzazsKKwl1bnNpZ25lZCBsb25nCQlyeF9maWZvc2hpZnQ7CisJdW5zaWduZWQgbG9uZwkJcnhfZmlmb2Z1bGw7CisJdW5zaWduZWQgbG9uZwkJdHhfZmlmb21hc2s7CisJdW5zaWduZWQgbG9uZwkJdHhfZmlmb3NoaWZ0OworCXVuc2lnbmVkIGxvbmcJCXR4X2ZpZm9mdWxsOworCisJLyogY2xvY2sgc291cmNlIGNvbnRyb2wgKi8KKworCWludCAoKmdldF9jbGtzcmMpKHN0cnVjdCB1YXJ0X3BvcnQgKiwgc3RydWN0IHMzYzI0eHhfdWFydF9jbGtzcmMgKmNsayk7CisJaW50ICgqc2V0X2Nsa3NyYykoc3RydWN0IHVhcnRfcG9ydCAqLCBzdHJ1Y3QgczNjMjR4eF91YXJ0X2Nsa3NyYyAqY2xrKTsKKworCS8qIHVhcnQgY29udHJvbHMgKi8KKwlpbnQgKCpyZXNldF9wb3J0KShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBzM2MyNDEwX3VhcnRjZmcgKik7Cit9OworCitzdHJ1Y3QgczNjMjR4eF91YXJ0X3BvcnQgeworCXVuc2lnbmVkIGNoYXIJCQlyeF9jbGFpbWVkOworCXVuc2lnbmVkIGNoYXIJCQl0eF9jbGFpbWVkOworCisJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvCSppbmZvOworCXN0cnVjdCBzM2MyNHh4X3VhcnRfY2xrc3JjCSpjbGtzcmM7CisJc3RydWN0IGNsawkJCSpjbGs7CisJc3RydWN0IGNsawkJCSpiYXVkY2xrOworCXN0cnVjdCB1YXJ0X3BvcnQJCXBvcnQ7Cit9OworCisvKiBjb252ZXJzaW9uIGZ1bmN0aW9ucyAqLworCisjZGVmaW5lIHMzYzI0eHhfZGV2X3RvX3BvcnQoX19kZXYpIChzdHJ1Y3QgdWFydF9wb3J0ICopZGV2X2dldF9kcnZkYXRhKF9fZGV2KQorI2RlZmluZSBzM2MyNHh4X2Rldl90b19jZmcoX19kZXYpIChzdHJ1Y3QgczNjMjQxMF91YXJ0Y2ZnICopKChfX2RldiktPnBsYXRmb3JtX2RhdGEpCisKKy8qIHJlZ2lzdGVyIGFjY2VzcyBjb250cm9scyAqLworCisjZGVmaW5lIHBvcnRhZGRyKHBvcnQsIHJlZykgKChwb3J0KS0+bWVtYmFzZSArIChyZWcpKQorCisjZGVmaW5lIHJkX3JlZ2IocG9ydCwgcmVnKSAoX19yYXdfcmVhZGIocG9ydGFkZHIocG9ydCwgcmVnKSkpCisjZGVmaW5lIHJkX3JlZ2wocG9ydCwgcmVnKSAoX19yYXdfcmVhZGwocG9ydGFkZHIocG9ydCwgcmVnKSkpCisKKyNkZWZpbmUgd3JfcmVnYihwb3J0LCByZWcsIHZhbCkgX19yYXdfd3JpdGViKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSkKKyNkZWZpbmUgd3JfcmVnbChwb3J0LCByZWcsIHZhbCkgX19yYXdfd3JpdGVsKHZhbCwgcG9ydGFkZHIocG9ydCwgcmVnKSkKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCisJCQkJc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICp1YXJ0KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9pbml0Y29uc29sZShzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpkcnYsCisJCQkJICAgICAgc3RydWN0IHMzYzI0eHhfdWFydF9pbmZvICp1YXJ0KTsKKworZXh0ZXJuIGludCBzM2MyNHh4X3NlcmlhbF9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiwKKwkJCSAgICAgICBzdHJ1Y3QgczNjMjR4eF91YXJ0X2luZm8gKmluZm8pOworCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0NPTlNPTEUKKworI2RlZmluZSBzM2MyNHh4X2NvbnNvbGVfaW5pdChfX2RydiwgX19pbmYpCQkJXAorc3RhdGljIGludCBfX2luaXQgczNjX3NlcmlhbF9jb25zb2xlX2luaXQodm9pZCkJCQlcCit7CQkJCQkJCQlcCisJcmV0dXJuIHMzYzI0eHhfc2VyaWFsX2luaXRjb25zb2xlKF9fZHJ2LCBfX2luZik7CVwKK30JCQkJCQkJCVwKKwkJCQkJCQkJXAorY29uc29sZV9pbml0Y2FsbChzM2Nfc2VyaWFsX2NvbnNvbGVfaW5pdCkKKworI2Vsc2UKKyNkZWZpbmUgczNjMjR4eF9jb25zb2xlX2luaXQoZHJ2LCBpbmYpIGV4dGVybiB2b2lkIG5vX2NvbnNvbGUodm9pZCkKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX1NFUklBTF9TQU1TVU5HX0RFQlVHCisKK2V4dGVybiB2b2lkIHByaW50YXNjaWkoY29uc3QgY2hhciAqKTsKKworc3RhdGljIHZvaWQgZGJnKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCXZhX2xpc3QgdmE7CisJY2hhciBidWZmWzI1Nl07CisKKwl2YV9zdGFydCh2YSwgZm10KTsKKwl2c3ByaW50ZihidWZmLCBmbXQsIHZhKTsKKwl2YV9lbmQodmEpOworCisJcHJpbnRhc2NpaShidWZmKTsKK30KKworI2Vsc2UKKyNkZWZpbmUgZGJnKHguLi4pIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvc2IxMjUwLWR1YXJ0LmMgYi9kcml2ZXJzL3NlcmlhbC9zYjEyNTAtZHVhcnQuYwppbmRleCAyZDZjMDhiLi5mOGUxNDQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NlcmlhbC9zYjEyNTAtZHVhcnQuYworKysgYi9kcml2ZXJzL3NlcmlhbC9zYjEyNTAtZHVhcnQuYwpAQCAtOTI0LDcgKzkyNCw3IEBACiAKIHN0YXRpYyBzdHJ1Y3QgdWFydF9kcml2ZXIgc2JkX3JlZyA9IHsKIAkub3duZXIJCT0gVEhJU19NT0RVTEUsCi0JLmRyaXZlcl9uYW1lCT0gInNlcmlhbCIsCisJLmRyaXZlcl9uYW1lCT0gInNiMTI1MF9kdWFydCIsCiAJLmRldl9uYW1lCT0gImR1YXJ0IiwKIAkubWFqb3IJCT0gVFRZX01BSk9SLAogCS5taW5vcgkJPSBTQjEyNTBfRFVBUlRfTUlOT1JfQkFTRSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9jb3JlLmMgYi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfY29yZS5jCmluZGV4IGVhYjAzMjcuLjQyZDJlMTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9jb3JlLmMKKysrIGIvZHJpdmVycy9zZXJpYWwvc2VyaWFsX2NvcmUuYwpAQCAtMTE2NSw2ICsxMTY1LDE1IEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHZvaWQgdWFydF9zZXRfbGRpc2Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkKK3sKKwlzdHJ1Y3QgdWFydF9zdGF0ZSAqc3RhdGUgPSB0dHktPmRyaXZlcl9kYXRhOworCXN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQgPSBzdGF0ZS0+cG9ydDsKKworCWlmIChwb3J0LT5vcHMtPnNldF9sZGlzYykKKwkJcG9ydC0+b3BzLT5zZXRfbGRpc2MocG9ydCk7Cit9CisKIHN0YXRpYyB2b2lkIHVhcnRfc2V0X3Rlcm1pb3Moc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwKIAkJCQkJCXN0cnVjdCBrdGVybWlvcyAqb2xkX3Rlcm1pb3MpCiB7CkBAIC0xOTgyLDcgKzE5OTEsOSBAQAogc3RhdGljIGludCBzZXJpYWxfbWF0Y2hfcG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHVhcnRfbWF0Y2ggKm1hdGNoID0gZGF0YTsKLQlkZXZfdCBkZXZ0ID0gTUtERVYobWF0Y2gtPmRyaXZlci0+bWFqb3IsIG1hdGNoLT5kcml2ZXItPm1pbm9yKSArIG1hdGNoLT5wb3J0LT5saW5lOworCXN0cnVjdCB0dHlfZHJpdmVyICp0dHlfZHJ2ID0gbWF0Y2gtPmRyaXZlci0+dHR5X2RyaXZlcjsKKwlkZXZfdCBkZXZ0ID0gTUtERVYodHR5X2Rydi0+bWFqb3IsIHR0eV9kcnYtPm1pbm9yX3N0YXJ0KSArCisJCW1hdGNoLT5wb3J0LT5saW5lOwogCiAJcmV0dXJuIGRldi0+ZGV2dCA9PSBkZXZ0OyAvKiBBY3R1YWxseSwgb25seSBvbmUgdHR5IHBlciBwb3J0ICovCiB9CkBAIC0yMDU0LDYgKzIwNjUsOCBAQAogaW50IHVhcnRfcmVzdW1lX3BvcnQoc3RydWN0IHVhcnRfZHJpdmVyICpkcnYsIHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCiB7CiAJc3RydWN0IHVhcnRfc3RhdGUgKnN0YXRlID0gZHJ2LT5zdGF0ZSArIHBvcnQtPmxpbmU7CisJc3RydWN0IGRldmljZSAqdHR5X2RldjsKKwlzdHJ1Y3QgdWFydF9tYXRjaCBtYXRjaCA9IHtwb3J0LCBkcnZ9OwogCiAJbXV0ZXhfbG9jaygmc3RhdGUtPm11dGV4KTsKIApAQCAtMjA2Myw3ICsyMDc2LDggQEAKIAkJcmV0dXJuIDA7CiAJfQogCi0JaWYgKCFwb3J0LT5zdXNwZW5kZWQpIHsKKwl0dHlfZGV2ID0gZGV2aWNlX2ZpbmRfY2hpbGQocG9ydC0+ZGV2LCAmbWF0Y2gsIHNlcmlhbF9tYXRjaF9wb3J0KTsKKwlpZiAoIXBvcnQtPnN1c3BlbmRlZCAmJiBkZXZpY2VfbWF5X3dha2V1cCh0dHlfZGV2KSkgewogCQlkaXNhYmxlX2lycV93YWtlKHBvcnQtPmlycSk7CiAJCW11dGV4X3VubG9jaygmc3RhdGUtPm11dGV4KTsKIAkJcmV0dXJuIDA7CkBAIC0yMjg1LDYgKzIyOTksNyBAQAogCS51bnRocm90dGxlCT0gdWFydF91bnRocm90dGxlLAogCS5zZW5kX3hjaGFyCT0gdWFydF9zZW5kX3hjaGFyLAogCS5zZXRfdGVybWlvcwk9IHVhcnRfc2V0X3Rlcm1pb3MsCisJLnNldF9sZGlzYwk9IHVhcnRfc2V0X2xkaXNjLAogCS5zdG9wCQk9IHVhcnRfc3RvcCwKIAkuc3RhcnQJCT0gdWFydF9zdGFydCwKIAkuaGFuZ3VwCQk9IHVhcnRfaGFuZ3VwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zZXJpYWwvdWNjX3VhcnQuYyBiL2RyaXZlcnMvc2VyaWFsL3VjY191YXJ0LmMKaW5kZXggMDE5MTdjNC4uNTY2YThiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJpYWwvdWNjX3VhcnQuYworKysgYi9kcml2ZXJzL3NlcmlhbC91Y2NfdWFydC5jCkBAIC0xOTUsNyArMTk1LDcgQEAKIAogc3RhdGljIHN0cnVjdCB1YXJ0X2RyaXZlciB1Y2NfdWFydF9kcml2ZXIgPSB7CiAJLm93bmVyICAJPSBUSElTX01PRFVMRSwKLQkuZHJpdmVyX25hbWUgICAgPSAic2VyaWFsIiwKKwkuZHJpdmVyX25hbWUgICAgPSAidWNjX3VhcnQiLAogCS5kZXZfbmFtZSAgICAgICA9ICJ0dHlRRSIsCiAJLm1ham9yICAJPSBTRVJJQUxfUUVfTUFKT1IsCiAJLm1pbm9yICAJPSBTRVJJQUxfUUVfTUlOT1IsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGlfaW14LmMgYi9kcml2ZXJzL3NwaS9zcGlfaW14LmMKaW5kZXggYzczMGQwNS4uNTRhYzdiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zcGkvc3BpX2lteC5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaV9pbXguYwpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgogCiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2lycS5oPgpAQCAtMjUwLDYgKzI1MSw4IEBACiAJaW50IHR4X2RtYV9uZWVkc191bm1hcDsKIAlzaXplX3QgdHhfbWFwX2xlbjsKIAl1MzIgZHVtbXlfZG1hX2J1ZiBfX19fY2FjaGVsaW5lX2FsaWduZWQ7CisKKwlzdHJ1Y3QgY2xrICpjbGs7CiB9OwogCiAvKiBSdW50aW1lIHN0YXRlICovCkBAIC04NTUsMTUgKzg1OCwxNSBAQAogCXJldHVybiBkcnZfZGF0YS0+dHJhbnNmZXJfaGFuZGxlcihkcnZfZGF0YSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTMyIHNwaV9zcGVlZF9oeih1MzIgZGF0YV9yYXRlKQorc3RhdGljIGlubGluZSB1MzIgc3BpX3NwZWVkX2h6KHN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEsIHUzMiBkYXRhX3JhdGUpCiB7Ci0JcmV0dXJuIGlteF9nZXRfcGVyY2xrMigpIC8gKDQgPDwgKChkYXRhX3JhdGUpID4+IDEzKSk7CisJcmV0dXJuIGNsa19nZXRfcmF0ZShkcnZfZGF0YS0+Y2xrKSAvICg0IDw8ICgoZGF0YV9yYXRlKSA+PiAxMykpOwogfQogCi1zdGF0aWMgdTMyIHNwaV9kYXRhX3JhdGUodTMyIHNwZWVkX2h6KQorc3RhdGljIHUzMiBzcGlfZGF0YV9yYXRlKHN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEsIHUzMiBzcGVlZF9oeikKIHsKIAl1MzIgZGl2OwotCXUzMiBxdWFudGl6ZWRfaHogPSBpbXhfZ2V0X3BlcmNsazIoKSA+PiAyOworCXUzMiBxdWFudGl6ZWRfaHogPSBjbGtfZ2V0X3JhdGUoZHJ2X2RhdGEtPmNsaykgPj4gMjsKIAogCWZvciAoZGl2ID0gU1BJX1BFUkNMSzJfRElWX01JTjsKIAkJZGl2IDw9IFNQSV9QRVJDTEsyX0RJVl9NQVg7CkBAIC05NDcsNyArOTUwLDcgQEAKIAl0bXAgPSB0cmFuc2Zlci0+c3BlZWRfaHo7CiAJaWYgKHRtcCA9PSAwKQogCQl0bXAgPSBjaGlwLT5tYXhfc3BlZWRfaHo7Ci0JdG1wID0gc3BpX2RhdGFfcmF0ZSh0bXApOworCXRtcCA9IHNwaV9kYXRhX3JhdGUoZHJ2X2RhdGEsIHRtcCk7CiAJdTMyX0VESVQoY29udHJvbCwgU1BJX0NPTlRST0xfREFUQVJBVEUsIHRtcCk7CiAKIAl3cml0ZWwoY29udHJvbCwgcmVncyArIFNQSV9DT05UUk9MKTsKQEAgLTExMDksNyArMTExMiw3IEBACiAJbXNnLT5hY3R1YWxfbGVuZ3RoID0gMDsKIAogCS8qIFBlciB0cmFuc2ZlciBzZXR1cCBjaGVjayAqLwotCW1pbl9zcGVlZF9oeiA9IHNwaV9zcGVlZF9oeihTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pOworCW1pbl9zcGVlZF9oeiA9IHNwaV9zcGVlZF9oeihkcnZfZGF0YSwgU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKTsKIAltYXhfc3BlZWRfaHogPSBzcGktPm1heF9zcGVlZF9oejsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRyYW5zLCAmbXNnLT50cmFuc2ZlcnMsIHRyYW5zZmVyX2xpc3QpIHsKIAkJdG1wID0gdHJhbnMtPmJpdHNfcGVyX3dvcmQ7CkBAIC0xMTc2LDYgKzExNzksNyBAQAogICAgYXBwbGllZCBhbmQgbm90aWZpZWQgdG8gdGhlIGNhbGxpbmcgZHJpdmVyLiAqLwogc3RhdGljIGludCBzZXR1cChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQogeworCXN0cnVjdCBkcml2ZXJfZGF0YSAqZHJ2X2RhdGEgPSBzcGlfbWFzdGVyX2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKIAlzdHJ1Y3Qgc3BpX2lteF9jaGlwICpjaGlwX2luZm87CiAJc3RydWN0IGNoaXBfZGF0YSAqY2hpcDsKIAlpbnQgZmlyc3Rfc2V0dXAgPSAwOwpAQCAtMTMwNCwxNCArMTMwOCwxNCBAQAogCWNoaXAtPm5fYnl0ZXMgPSAodG1wIDw9IDgpID8gMSA6IDI7CiAKIAkvKiBTUEkgZGF0YXJhdGUgKi8KLQl0bXAgPSBzcGlfZGF0YV9yYXRlKHNwaS0+bWF4X3NwZWVkX2h6KTsKKwl0bXAgPSBzcGlfZGF0YV9yYXRlKGRydl9kYXRhLCBzcGktPm1heF9zcGVlZF9oeik7CiAJaWYgKHRtcCA9PSBTUElfQ09OVFJPTF9EQVRBUkFURV9CQUQpIHsKIAkJc3RhdHVzID0gLUVJTlZBTDsKIAkJZGV2X2Vycigmc3BpLT5kZXYsCiAJCQkic2V0dXAgLSAiCiAJCQkiSFcgbWluIHNwZWVkICglZCBIeikgZXhjZWVkcyByZXF1aXJlZCAiCiAJCQkibWF4IHNwZWVkICglZCBIeilcbiIsCi0JCQlzcGlfc3BlZWRfaHooU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKKwkJCXNwaV9zcGVlZF9oeihkcnZfZGF0YSwgU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKIAkJCXNwaS0+bWF4X3NwZWVkX2h6KTsKIAkJaWYgKGZpcnN0X3NldHVwKQogCQkJZ290byBlcnJfZmlyc3Rfc2V0dXA7CkBAIC0xMzIxLDcgKzEzMjUsNyBAQAogCX0gZWxzZSB7CiAJCXUzMl9FRElUKGNoaXAtPmNvbnRyb2wsIFNQSV9DT05UUk9MX0RBVEFSQVRFLCB0bXApOwogCQkvKiBBY3R1YWwgcm91bmRlZCBtYXhfc3BlZWRfaHogKi8KLQkJdG1wID0gc3BpX3NwZWVkX2h6KHRtcCk7CisJCXRtcCA9IHNwaV9zcGVlZF9oeihkcnZfZGF0YSwgdG1wKTsKIAkJc3BpLT5tYXhfc3BlZWRfaHogPSB0bXA7CiAJCWNoaXAtPm1heF9zcGVlZF9oeiA9IHRtcDsKIAl9CkBAIC0xMzUyLDcgKzEzNTYsNyBAQAogCQljaGlwLT5wZXJpb2QgJiBTUElfUEVSSU9EX1dBSVQsCiAJCXNwaS0+bW9kZSwKIAkJc3BpLT5iaXRzX3Blcl93b3JkLAotCQlzcGlfc3BlZWRfaHooU1BJX0NPTlRST0xfREFUQVJBVEVfTUlOKSwKKwkJc3BpX3NwZWVkX2h6KGRydl9kYXRhLCBTUElfQ09OVFJPTF9EQVRBUkFURV9NSU4pLAogCQlzcGktPm1heF9zcGVlZF9oeik7CiAJcmV0dXJuIHN0YXR1czsKIApAQCAtMTQ2NSw2ICsxNDY5LDE0IEBACiAJCWdvdG8gZXJyX25vX3BkYXRhOwogCX0KIAorCWRydl9kYXRhLT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJwZXJjbGsyIik7CisJaWYgKElTX0VSUihkcnZfZGF0YS0+Y2xrKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJwcm9iZSAtIGNhbm5vdCBnZXQgZ2V0XG4iKTsKKwkJc3RhdHVzID0gUFRSX0VSUihkcnZfZGF0YS0+Y2xrKTsKKwkJZ290byBlcnJfbm9fY2xrOworCX0KKwljbGtfZW5hYmxlKGRydl9kYXRhLT5jbGspOworCiAJLyogQWxsb2NhdGUgbWFzdGVyIHdpdGggc3BhY2UgZm9yIGRydl9kYXRhICovCiAJbWFzdGVyID0gc3BpX2FsbG9jX21hc3RlcihkZXYsIHNpemVvZihzdHJ1Y3QgZHJpdmVyX2RhdGEpKTsKIAlpZiAoIW1hc3RlcikgewpAQCAtMTUyNiwyNCArMTUzOCwyNCBAQAogCWRydl9kYXRhLT5yeF9jaGFubmVsID0gLTE7CiAJaWYgKHBsYXRmb3JtX2luZm8tPmVuYWJsZV9kbWEpIHsKIAkJLyogR2V0IHJ4IERNQSBjaGFubmVsICovCi0JCXN0YXR1cyA9IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKCZkcnZfZGF0YS0+cnhfY2hhbm5lbCwKLQkJCSJzcGlfaW14X3J4IiwgRE1BX1BSSU9fSElHSCk7Ci0JCWlmIChzdGF0dXMgPCAwKSB7CisJCWRydl9kYXRhLT5yeF9jaGFubmVsID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oInNwaV9pbXhfcngiLAorCQkJCQkJCSAgICAgICBETUFfUFJJT19ISUdIKTsKKwkJaWYgKGRydl9kYXRhLT5yeF9jaGFubmVsIDwgMCkgewogCQkJZGV2X2VycihkZXYsCiAJCQkJInByb2JlIC0gcHJvYmxlbSAoJWQpIHJlcXVlc3RpbmcgcnggY2hhbm5lbFxuIiwKLQkJCQlzdGF0dXMpOworCQkJCWRydl9kYXRhLT5yeF9jaGFubmVsKTsKIAkJCWdvdG8gZXJyX25vX3J4ZG1hOwogCQl9IGVsc2UKIAkJCWlteF9kbWFfc2V0dXBfaGFuZGxlcnMoZHJ2X2RhdGEtPnJ4X2NoYW5uZWwsIE5VTEwsCiAJCQkJCQlkbWFfZXJyX2hhbmRsZXIsIGRydl9kYXRhKTsKIAogCQkvKiBHZXQgdHggRE1BIGNoYW5uZWwgKi8KLQkJc3RhdHVzID0gaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oJmRydl9kYXRhLT50eF9jaGFubmVsLAotCQkJCQkJInNwaV9pbXhfdHgiLCBETUFfUFJJT19NRURJVU0pOwotCQlpZiAoc3RhdHVzIDwgMCkgeworCQlkcnZfZGF0YS0+dHhfY2hhbm5lbCA9IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKCJzcGlfaW14X3R4IiwKKwkJCQkJCQkgICAgICAgRE1BX1BSSU9fTUVESVVNKTsKKwkJaWYgKGRydl9kYXRhLT50eF9jaGFubmVsIDwgMCkgewogCQkJZGV2X2VycihkZXYsCiAJCQkJInByb2JlIC0gcHJvYmxlbSAoJWQpIHJlcXVlc3RpbmcgdHggY2hhbm5lbFxuIiwKLQkJCQlzdGF0dXMpOworCQkJCWRydl9kYXRhLT50eF9jaGFubmVsKTsKIAkJCWlteF9kbWFfZnJlZShkcnZfZGF0YS0+cnhfY2hhbm5lbCk7CiAJCQlnb3RvIGVycl9ub190eGRtYTsKIAkJfSBlbHNlCkBAIC0xNjIzLDYgKzE2MzUsOSBAQAogCXNwaV9tYXN0ZXJfcHV0KG1hc3Rlcik7CiAKIGVycl9ub19wZGF0YToKKwljbGtfZGlzYWJsZShkcnZfZGF0YS0+Y2xrKTsKKwljbGtfcHV0KGRydl9kYXRhLT5jbGspOworZXJyX25vX2NsazoKIGVycl9ub19tZW06CiAJcmV0dXJuIHN0YXR1czsKIH0KQEAgLTE2NjIsNiArMTY3Nyw5IEBACiAJaWYgKGlycSA+PSAwKQogCQlmcmVlX2lycShpcnEsIGRydl9kYXRhKTsKIAorCWNsa19kaXNhYmxlKGRydl9kYXRhLT5jbGspOworCWNsa19wdXQoZHJ2X2RhdGEtPmNsayk7CisKIAkvKiBSZWxlYXNlIG1hcCByZXNvdXJjZXMgKi8KIAlpb3VubWFwKGRydl9kYXRhLT5yZWdzKTsKIAlyZWxlYXNlX3Jlc291cmNlKGRydl9kYXRhLT5pb2FyZWEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpZGV2LmMgYi9kcml2ZXJzL3NwaS9zcGlkZXYuYwppbmRleCBiMzUxOGNhLi5kZGJlMWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9zcGlkZXYuYworKysgYi9kcml2ZXJzL3NwaS9zcGlkZXYuYwpAQCAtMjUsMTAgKzI1LDEyIEBACiAjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KICNpbmNsdWRlIDxsaW51eC9mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAKICNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpL3NwaWRldi5oPgpAQCAtNjcsMTAgKzY5LDEyIEBACiAJCQkJfCBTUElfTFNCX0ZJUlNUIHwgU1BJXzNXSVJFIHwgU1BJX0xPT1ApCiAKIHN0cnVjdCBzcGlkZXZfZGF0YSB7Ci0Jc3RydWN0IGRldmljZQkJZGV2OworCWRldl90CQkJZGV2dDsKKwlzcGlubG9ja190CQlzcGlfbG9jazsKIAlzdHJ1Y3Qgc3BpX2RldmljZQkqc3BpOwogCXN0cnVjdCBsaXN0X2hlYWQJZGV2aWNlX2VudHJ5OwogCisJLyogYnVmZmVyIGlzIE5VTEwgdW5sZXNzIHRoaXMgZGV2aWNlIGlzIG9wZW4gKHVzZXJzID4gMCkgKi8KIAlzdHJ1Y3QgbXV0ZXgJCWJ1Zl9sb2NrOwogCXVuc2lnbmVkCQl1c2VyczsKIAl1OAkJCSpidWZmZXI7CkBAIC04NSwxMiArODksNzUgQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAorLyoKKyAqIFdlIGNhbid0IHVzZSB0aGUgc3RhbmRhcmQgc3luY2hyb25vdXMgd3JhcHBlcnMgZm9yIGZpbGUgSS9POyB3ZQorICogbmVlZCB0byBwcm90ZWN0IGFnYWluc3QgYXN5bmMgcmVtb3ZhbCBvZiB0aGUgdW5kZXJseWluZyBzcGlfZGV2aWNlLgorICovCitzdGF0aWMgdm9pZCBzcGlkZXZfY29tcGxldGUodm9pZCAqYXJnKQoreworCWNvbXBsZXRlKGFyZyk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitzcGlkZXZfc3luYyhzdHJ1Y3Qgc3BpZGV2X2RhdGEgKnNwaWRldiwgc3RydWN0IHNwaV9tZXNzYWdlICptZXNzYWdlKQoreworCURFQ0xBUkVfQ09NUExFVElPTl9PTlNUQUNLKGRvbmUpOworCWludCBzdGF0dXM7CisKKwltZXNzYWdlLT5jb21wbGV0ZSA9IHNwaWRldl9jb21wbGV0ZTsKKwltZXNzYWdlLT5jb250ZXh0ID0gJmRvbmU7CisKKwlzcGluX2xvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKwlpZiAoc3BpZGV2LT5zcGkgPT0gTlVMTCkKKwkJc3RhdHVzID0gLUVTSFVURE9XTjsKKwllbHNlCisJCXN0YXR1cyA9IHNwaV9hc3luYyhzcGlkZXYtPnNwaSwgbWVzc2FnZSk7CisJc3Bpbl91bmxvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKworCWlmIChzdGF0dXMgPT0gMCkgeworCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZkb25lKTsKKwkJc3RhdHVzID0gbWVzc2FnZS0+c3RhdHVzOworCQlpZiAoc3RhdHVzID09IDApCisJCQlzdGF0dXMgPSBtZXNzYWdlLT5hY3R1YWxfbGVuZ3RoOworCX0KKwlyZXR1cm4gc3RhdHVzOworfQorCitzdGF0aWMgaW5saW5lIHNzaXplX3QKK3NwaWRldl9zeW5jX3dyaXRlKHN0cnVjdCBzcGlkZXZfZGF0YSAqc3BpZGV2LCBzaXplX3QgbGVuKQoreworCXN0cnVjdCBzcGlfdHJhbnNmZXIJdCA9IHsKKwkJCS50eF9idWYJCT0gc3BpZGV2LT5idWZmZXIsCisJCQkubGVuCQk9IGxlbiwKKwkJfTsKKwlzdHJ1Y3Qgc3BpX21lc3NhZ2UJbTsKKworCXNwaV9tZXNzYWdlX2luaXQoJm0pOworCXNwaV9tZXNzYWdlX2FkZF90YWlsKCZ0LCAmbSk7CisJcmV0dXJuIHNwaWRldl9zeW5jKHNwaWRldiwgJm0pOworfQorCitzdGF0aWMgaW5saW5lIHNzaXplX3QKK3NwaWRldl9zeW5jX3JlYWQoc3RydWN0IHNwaWRldl9kYXRhICpzcGlkZXYsIHNpemVfdCBsZW4pCit7CisJc3RydWN0IHNwaV90cmFuc2Zlcgl0ID0geworCQkJLnJ4X2J1ZgkJPSBzcGlkZXYtPmJ1ZmZlciwKKwkJCS5sZW4JCT0gbGVuLAorCQl9OworCXN0cnVjdCBzcGlfbWVzc2FnZQltOworCisJc3BpX21lc3NhZ2VfaW5pdCgmbSk7CisJc3BpX21lc3NhZ2VfYWRkX3RhaWwoJnQsICZtKTsKKwlyZXR1cm4gc3BpZGV2X3N5bmMoc3BpZGV2LCAmbSk7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKIC8qIFJlYWQtb25seSBtZXNzYWdlIHdpdGggY3VycmVudCBkZXZpY2Ugc2V0dXAgKi8KIHN0YXRpYyBzc2l6ZV90CiBzcGlkZXZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKmZfcG9zKQogewogCXN0cnVjdCBzcGlkZXZfZGF0YQkqc3BpZGV2OwotCXN0cnVjdCBzcGlfZGV2aWNlCSpzcGk7CiAJc3NpemVfdAkJCXN0YXR1cyA9IDA7CiAKIAkvKiBjaGlwc2VsZWN0IG9ubHkgdG9nZ2xlcyBhdCBzdGFydCBvciBlbmQgb2Ygb3BlcmF0aW9uICovCkBAIC05OCwxOCArMTY1LDE3IEBACiAJCXJldHVybiAtRU1TR1NJWkU7CiAKIAlzcGlkZXYgPSBmaWxwLT5wcml2YXRlX2RhdGE7Ci0Jc3BpID0gc3BpZGV2LT5zcGk7CiAKIAltdXRleF9sb2NrKCZzcGlkZXYtPmJ1Zl9sb2NrKTsKLQlzdGF0dXMgPSBzcGlfcmVhZChzcGksIHNwaWRldi0+YnVmZmVyLCBjb3VudCk7Ci0JaWYgKHN0YXR1cyA9PSAwKSB7CisJc3RhdHVzID0gc3BpZGV2X3N5bmNfcmVhZChzcGlkZXYsIGNvdW50KTsKKwlpZiAoc3RhdHVzID4gMCkgewogCQl1bnNpZ25lZCBsb25nCW1pc3Npbmc7CiAKLQkJbWlzc2luZyA9IGNvcHlfdG9fdXNlcihidWYsIHNwaWRldi0+YnVmZmVyLCBjb3VudCk7Ci0JCWlmIChjb3VudCAmJiBtaXNzaW5nID09IGNvdW50KQorCQltaXNzaW5nID0gY29weV90b191c2VyKGJ1Ziwgc3BpZGV2LT5idWZmZXIsIHN0YXR1cyk7CisJCWlmIChtaXNzaW5nID09IHN0YXR1cykKIAkJCXN0YXR1cyA9IC1FRkFVTFQ7CiAJCWVsc2UKLQkJCXN0YXR1cyA9IGNvdW50IC0gbWlzc2luZzsKKwkJCXN0YXR1cyA9IHN0YXR1cyAtIG1pc3Npbmc7CiAJfQogCW11dGV4X3VubG9jaygmc3BpZGV2LT5idWZfbG9jayk7CiAKQEAgLTEyMiw3ICsxODgsNiBAQAogCQlzaXplX3QgY291bnQsIGxvZmZfdCAqZl9wb3MpCiB7CiAJc3RydWN0IHNwaWRldl9kYXRhCSpzcGlkZXY7Ci0Jc3RydWN0IHNwaV9kZXZpY2UJKnNwaTsKIAlzc2l6ZV90CQkJc3RhdHVzID0gMDsKIAl1bnNpZ25lZCBsb25nCQltaXNzaW5nOwogCkBAIC0xMzEsMTQgKzE5NiwxMSBAQAogCQlyZXR1cm4gLUVNU0dTSVpFOwogCiAJc3BpZGV2ID0gZmlscC0+cHJpdmF0ZV9kYXRhOwotCXNwaSA9IHNwaWRldi0+c3BpOwogCiAJbXV0ZXhfbG9jaygmc3BpZGV2LT5idWZfbG9jayk7CiAJbWlzc2luZyA9IGNvcHlfZnJvbV91c2VyKHNwaWRldi0+YnVmZmVyLCBidWYsIGNvdW50KTsKIAlpZiAobWlzc2luZyA9PSAwKSB7Ci0JCXN0YXR1cyA9IHNwaV93cml0ZShzcGksIHNwaWRldi0+YnVmZmVyLCBjb3VudCk7Ci0JCWlmIChzdGF0dXMgPT0gMCkKLQkJCXN0YXR1cyA9IGNvdW50OworCQlzdGF0dXMgPSBzcGlkZXZfc3luY193cml0ZShzcGlkZXYsIGNvdW50KTsKIAl9IGVsc2UKIAkJc3RhdHVzID0gLUVGQVVMVDsKIAltdXRleF91bmxvY2soJnNwaWRldi0+YnVmX2xvY2spOwpAQCAtMTUzLDcgKzIxNSw2IEBACiAJc3RydWN0IHNwaV90cmFuc2Zlcgkqa194ZmVyczsKIAlzdHJ1Y3Qgc3BpX3RyYW5zZmVyCSprX3RtcDsKIAlzdHJ1Y3Qgc3BpX2lvY190cmFuc2ZlciAqdV90bXA7Ci0Jc3RydWN0IHNwaV9kZXZpY2UJKnNwaSA9IHNwaWRldi0+c3BpOwogCXVuc2lnbmVkCQluLCB0b3RhbDsKIAl1OAkJCSpidWY7CiAJaW50CQkJc3RhdHVzID0gLUVGQVVMVDsKQEAgLTIxNSw3ICsyNzYsNyBAQAogCQlzcGlfbWVzc2FnZV9hZGRfdGFpbChrX3RtcCwgJm1zZyk7CiAJfQogCi0Jc3RhdHVzID0gc3BpX3N5bmMoc3BpLCAmbXNnKTsKKwlzdGF0dXMgPSBzcGlkZXZfc3luYyhzcGlkZXYsICZtc2cpOwogCWlmIChzdGF0dXMgPCAwKQogCQlnb3RvIGRvbmU7CiAKQEAgLTI2OSw4ICszMzAsMTYgQEAKIAlpZiAoZXJyKQogCQlyZXR1cm4gLUVGQVVMVDsKIAorCS8qIGd1YXJkIGFnYWluc3QgZGV2aWNlIHJlbW92YWwgYmVmb3JlLCBvciB3aGlsZSwKKwkgKiB3ZSBpc3N1ZSB0aGlzIGlvY3RsLgorCSAqLwogCXNwaWRldiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKLQlzcGkgPSBzcGlkZXYtPnNwaTsKKwlzcGluX2xvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKwlzcGkgPSBzcGlfZGV2X2dldChzcGlkZXYtPnNwaSk7CisJc3Bpbl91bmxvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKworCWlmIChzcGkgPT0gTlVMTCkKKwkJcmV0dXJuIC1FU0hVVERPV047CiAKIAlzd2l0Y2ggKGNtZCkgewogCS8qIHJlYWQgcmVxdWVzdHMgKi8KQEAgLTM1Niw4ICs0MjUsMTAgQEAKIAlkZWZhdWx0OgogCQkvKiBzZWdtZW50ZWQgYW5kL29yIGZ1bGwtZHVwbGV4IEkvTyByZXF1ZXN0ICovCiAJCWlmIChfSU9DX05SKGNtZCkgIT0gX0lPQ19OUihTUElfSU9DX01FU1NBR0UoMCkpCi0JCQkJfHwgX0lPQ19ESVIoY21kKSAhPSBfSU9DX1dSSVRFKQotCQkJcmV0dXJuIC1FTk9UVFk7CisJCQkJfHwgX0lPQ19ESVIoY21kKSAhPSBfSU9DX1dSSVRFKSB7CisJCQlyZXR2YWwgPSAtRU5PVFRZOworCQkJYnJlYWs7CisJCX0KIAogCQl0bXAgPSBfSU9DX1NJWkUoY21kKTsKIAkJaWYgKCh0bXAgJSBzaXplb2Yoc3RydWN0IHNwaV9pb2NfdHJhbnNmZXIpKSAhPSAwKSB7CkBAIC0zODUsNiArNDU2LDcgQEAKIAkJa2ZyZWUoaW9jKTsKIAkJYnJlYWs7CiAJfQorCXNwaV9kZXZfcHV0KHNwaSk7CiAJcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtMzkzLDEwICs0NjUsMTEgQEAKIAlzdHJ1Y3Qgc3BpZGV2X2RhdGEJKnNwaWRldjsKIAlpbnQJCQlzdGF0dXMgPSAtRU5YSU87CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJmRldmljZV9saXN0X2xvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShzcGlkZXYsICZkZXZpY2VfbGlzdCwgZGV2aWNlX2VudHJ5KSB7Ci0JCWlmIChzcGlkZXYtPmRldi5kZXZ0ID09IGlub2RlLT5pX3JkZXYpIHsKKwkJaWYgKHNwaWRldi0+ZGV2dCA9PSBpbm9kZS0+aV9yZGV2KSB7CiAJCQlzdGF0dXMgPSAwOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQxOCw2ICs0OTEsNyBAQAogCQlwcl9kZWJ1Zygic3BpZGV2OiBub3RoaW5nIGZvciBtaW5vciAlZFxuIiwgaW1pbm9yKGlub2RlKSk7CiAKIAltdXRleF91bmxvY2soJmRldmljZV9saXN0X2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC00MjksMTAgKzUwMywyMiBAQAogCW11dGV4X2xvY2soJmRldmljZV9saXN0X2xvY2spOwogCXNwaWRldiA9IGZpbHAtPnByaXZhdGVfZGF0YTsKIAlmaWxwLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCisJLyogbGFzdCBjbG9zZT8gKi8KIAlzcGlkZXYtPnVzZXJzLS07CiAJaWYgKCFzcGlkZXYtPnVzZXJzKSB7CisJCWludAkJZG9mcmVlOworCiAJCWtmcmVlKHNwaWRldi0+YnVmZmVyKTsKIAkJc3BpZGV2LT5idWZmZXIgPSBOVUxMOworCisJCS8qIC4uLiBhZnRlciB3ZSB1bmJvdW5kIGZyb20gdGhlIHVuZGVybHlpbmcgZGV2aWNlPyAqLworCQlzcGluX2xvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKwkJZG9mcmVlID0gKHNwaWRldi0+c3BpID09IE5VTEwpOworCQlzcGluX3VubG9ja19pcnEoJnNwaWRldi0+c3BpX2xvY2spOworCisJCWlmIChkb2ZyZWUpCisJCQlrZnJlZShzcGlkZXYpOwogCX0KIAltdXRleF91bmxvY2soJmRldmljZV9saXN0X2xvY2spOwogCkBAIC00NTksMTkgKzU0NSw3IEBACiAgKiBJdCBhbHNvIHNpbXBsaWZpZXMgbWVtb3J5IG1hbmFnZW1lbnQuCiAgKi8KIAotc3RhdGljIHZvaWQgc3BpZGV2X2NsYXNzZGV2X3JlbGVhc2Uoc3RydWN0IGRldmljZSAqZGV2KQotewotCXN0cnVjdCBzcGlkZXZfZGF0YQkqc3BpZGV2OwotCi0Jc3BpZGV2ID0gY29udGFpbmVyX29mKGRldiwgc3RydWN0IHNwaWRldl9kYXRhLCBkZXYpOwotCWtmcmVlKHNwaWRldik7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgY2xhc3Mgc3BpZGV2X2NsYXNzID0gewotCS5uYW1lCQk9ICJzcGlkZXYiLAotCS5vd25lcgkJPSBUSElTX01PRFVMRSwKLQkuZGV2X3JlbGVhc2UJPSBzcGlkZXZfY2xhc3NkZXZfcmVsZWFzZSwKLX07CitzdGF0aWMgc3RydWN0IGNsYXNzICpzcGlkZXZfY2xhc3M7CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTQ4OCw2ICs1NjIsNyBAQAogCiAJLyogSW5pdGlhbGl6ZSB0aGUgZHJpdmVyIGRhdGEgKi8KIAlzcGlkZXYtPnNwaSA9IHNwaTsKKwlzcGluX2xvY2tfaW5pdCgmc3BpZGV2LT5zcGlfbG9jayk7CiAJbXV0ZXhfaW5pdCgmc3BpZGV2LT5idWZfbG9jayk7CiAKIAlJTklUX0xJU1RfSEVBRCgmc3BpZGV2LT5kZXZpY2VfZW50cnkpOwpAQCAtNDk4LDIwICs1NzMsMjAgQEAKIAltdXRleF9sb2NrKCZkZXZpY2VfbGlzdF9sb2NrKTsKIAltaW5vciA9IGZpbmRfZmlyc3RfemVyb19iaXQobWlub3JzLCBOX1NQSV9NSU5PUlMpOwogCWlmIChtaW5vciA8IE5fU1BJX01JTk9SUykgewotCQlzcGlkZXYtPmRldi5wYXJlbnQgPSAmc3BpLT5kZXY7Ci0JCXNwaWRldi0+ZGV2LmNsYXNzID0gJnNwaWRldl9jbGFzczsKLQkJc3BpZGV2LT5kZXYuZGV2dCA9IE1LREVWKFNQSURFVl9NQUpPUiwgbWlub3IpOwotCQlzbnByaW50ZihzcGlkZXYtPmRldi5idXNfaWQsIHNpemVvZiBzcGlkZXYtPmRldi5idXNfaWQsCisJCXN0cnVjdCBkZXZpY2UgKmRldjsKKworCQlzcGlkZXYtPmRldnQgPSBNS0RFVihTUElERVZfTUFKT1IsIG1pbm9yKTsKKwkJZGV2ID0gZGV2aWNlX2NyZWF0ZShzcGlkZXZfY2xhc3MsICZzcGktPmRldiwgc3BpZGV2LT5kZXZ0LAogCQkJCSJzcGlkZXYlZC4lZCIsCiAJCQkJc3BpLT5tYXN0ZXItPmJ1c19udW0sIHNwaS0+Y2hpcF9zZWxlY3QpOwotCQlzdGF0dXMgPSBkZXZpY2VfcmVnaXN0ZXIoJnNwaWRldi0+ZGV2KTsKKwkJc3RhdHVzID0gSVNfRVJSKGRldikgPyBQVFJfRVJSKGRldikgOiAwOwogCX0gZWxzZSB7CiAJCWRldl9kYmcoJnNwaS0+ZGV2LCAibm8gbWlub3IgbnVtYmVyIGF2YWlsYWJsZSFcbiIpOwogCQlzdGF0dXMgPSAtRU5PREVWOwogCX0KIAlpZiAoc3RhdHVzID09IDApIHsKIAkJc2V0X2JpdChtaW5vciwgbWlub3JzKTsKLQkJZGV2X3NldF9kcnZkYXRhKCZzcGktPmRldiwgc3BpZGV2KTsKKwkJc3BpX3NldF9kcnZkYXRhKHNwaSwgc3BpZGV2KTsKIAkJbGlzdF9hZGQoJnNwaWRldi0+ZGV2aWNlX2VudHJ5LCAmZGV2aWNlX2xpc3QpOwogCX0KIAltdXRleF91bmxvY2soJmRldmljZV9saXN0X2xvY2spOwpAQCAtNTI0LDE1ICs1OTksMjEgQEAKIAogc3RhdGljIGludCBzcGlkZXZfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpCiB7Ci0Jc3RydWN0IHNwaWRldl9kYXRhCSpzcGlkZXYgPSBkZXZfZ2V0X2RydmRhdGEoJnNwaS0+ZGV2KTsKKwlzdHJ1Y3Qgc3BpZGV2X2RhdGEJKnNwaWRldiA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOwogCisJLyogbWFrZSBzdXJlIG9wcyBvbiBleGlzdGluZyBmZHMgY2FuIGFib3J0IGNsZWFubHkgKi8KKwlzcGluX2xvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKwlzcGlkZXYtPnNwaSA9IE5VTEw7CisJc3BpX3NldF9kcnZkYXRhKHNwaSwgTlVMTCk7CisJc3Bpbl91bmxvY2tfaXJxKCZzcGlkZXYtPnNwaV9sb2NrKTsKKworCS8qIHByZXZlbnQgbmV3IG9wZW5zICovCiAJbXV0ZXhfbG9jaygmZGV2aWNlX2xpc3RfbG9jayk7Ci0KIAlsaXN0X2RlbCgmc3BpZGV2LT5kZXZpY2VfZW50cnkpOwotCWRldl9zZXRfZHJ2ZGF0YSgmc3BpLT5kZXYsIE5VTEwpOwotCWNsZWFyX2JpdChNSU5PUihzcGlkZXYtPmRldi5kZXZ0KSwgbWlub3JzKTsKLQlkZXZpY2VfdW5yZWdpc3Rlcigmc3BpZGV2LT5kZXYpOwotCisJZGV2aWNlX2Rlc3Ryb3koc3BpZGV2X2NsYXNzLCBzcGlkZXYtPmRldnQpOworCWNsZWFyX2JpdChNSU5PUihzcGlkZXYtPmRldnQpLCBtaW5vcnMpOworCWlmIChzcGlkZXYtPnVzZXJzID09IDApCisJCWtmcmVlKHNwaWRldik7CiAJbXV0ZXhfdW5sb2NrKCZkZXZpY2VfbGlzdF9sb2NrKTsKIAogCXJldHVybiAwOwpAQCAtNTY4LDE1ICs2NDksMTUgQEAKIAlpZiAoc3RhdHVzIDwgMCkKIAkJcmV0dXJuIHN0YXR1czsKIAotCXN0YXR1cyA9IGNsYXNzX3JlZ2lzdGVyKCZzcGlkZXZfY2xhc3MpOwotCWlmIChzdGF0dXMgPCAwKSB7CisJc3BpZGV2X2NsYXNzID0gY2xhc3NfY3JlYXRlKFRISVNfTU9EVUxFLCAic3BpZGV2Iik7CisJaWYgKElTX0VSUihzcGlkZXZfY2xhc3MpKSB7CiAJCXVucmVnaXN0ZXJfY2hyZGV2KFNQSURFVl9NQUpPUiwgc3BpZGV2X3NwaS5kcml2ZXIubmFtZSk7Ci0JCXJldHVybiBzdGF0dXM7CisJCXJldHVybiBQVFJfRVJSKHNwaWRldl9jbGFzcyk7CiAJfQogCiAJc3RhdHVzID0gc3BpX3JlZ2lzdGVyX2RyaXZlcigmc3BpZGV2X3NwaSk7CiAJaWYgKHN0YXR1cyA8IDApIHsKLQkJY2xhc3NfdW5yZWdpc3Rlcigmc3BpZGV2X2NsYXNzKTsKKwkJY2xhc3NfZGVzdHJveShzcGlkZXZfY2xhc3MpOwogCQl1bnJlZ2lzdGVyX2NocmRldihTUElERVZfTUFKT1IsIHNwaWRldl9zcGkuZHJpdmVyLm5hbWUpOwogCX0KIAlyZXR1cm4gc3RhdHVzOwpAQCAtNTg2LDcgKzY2Nyw3IEBACiBzdGF0aWMgdm9pZCBfX2V4aXQgc3BpZGV2X2V4aXQodm9pZCkKIHsKIAlzcGlfdW5yZWdpc3Rlcl9kcml2ZXIoJnNwaWRldl9zcGkpOwotCWNsYXNzX3VucmVnaXN0ZXIoJnNwaWRldl9jbGFzcyk7CisJY2xhc3NfZGVzdHJveShzcGlkZXZfY2xhc3MpOwogCXVucmVnaXN0ZXJfY2hyZGV2KFNQSURFVl9NQUpPUiwgc3BpZGV2X3NwaS5kcml2ZXIubmFtZSk7CiB9CiBtb2R1bGVfZXhpdChzcGlkZXZfZXhpdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NzYi9kcml2ZXJfcGNpY29yZS5jIGIvZHJpdmVycy9zc2IvZHJpdmVyX3BjaWNvcmUuYwppbmRleCA3NWRlZjEzLi41MzhjNTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NzYi9kcml2ZXJfcGNpY29yZS5jCisrKyBiL2RyaXZlcnMvc3NiL2RyaXZlcl9wY2ljb3JlLmMKQEAgLTUzNywxMiArNTM3LDE5IEBACiAJaW50IGVyciA9IDA7CiAJdTMyIHRtcDsKIAotCW1pZ2h0X3NsZWVwKCk7CisJaWYgKGRldi0+YnVzLT5idXN0eXBlICE9IFNTQl9CVVNUWVBFX1BDSSkgeworCQkvKiBUaGlzIFNTQiBkZXZpY2UgaXMgbm90IG9uIGEgUENJIGhvc3QtYnVzLiBTbyB0aGUgSVJRcyBhcmUKKwkJICogbm90IHJvdXRlZCB0aHJvdWdoIHRoZSBQQ0kgY29yZS4KKwkJICogU28gd2UgbXVzdCBub3QgZW5hYmxlIHJvdXRpbmcgdGhyb3VnaCB0aGUgUENJIGNvcmUuICovCisJCWdvdG8gb3V0OworCX0KIAogCWlmICghcGRldikKIAkJZ290byBvdXQ7CiAJYnVzID0gcGRldi0+YnVzOwogCisJbWlnaHRfc2xlZXBfaWYocGRldi0+aWQuY29yZWlkICE9IFNTQl9ERVZfUENJKTsKKwogCS8qIEVuYWJsZSBpbnRlcnJ1cHRzIGZvciB0aGlzIGRldmljZS4gKi8KIAlpZiAoYnVzLT5ob3N0X3BjaSAmJgogCSAgICAoKHBkZXYtPmlkLnJldmlzaW9uID49IDYpIHx8IChwZGV2LT5pZC5jb3JlaWQgPT0gU1NCX0RFVl9QQ0lFKSkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3NiL21haW4uYyBiL2RyaXZlcnMvc3NiL21haW4uYwppbmRleCA3Y2Y4ODUxLi5kMTg0ZjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NzYi9tYWluLmMKKysrIGIvZHJpdmVycy9zc2IvbWFpbi5jCkBAIC0xMTY4LDE1ICsxMTY4LDIxIEBACiBpbnQgc3NiX2RtYV9zZXRfbWFzayhzdHJ1Y3Qgc3NiX2RldmljZSAqc3NiX2RldiwgdTY0IG1hc2spCiB7CiAJc3RydWN0IGRldmljZSAqZG1hX2RldiA9IHNzYl9kZXYtPmRtYV9kZXY7CisJaW50IGVyciA9IDA7CiAKICNpZmRlZiBDT05GSUdfU1NCX1BDSUhPU1QKLQlpZiAoc3NiX2Rldi0+YnVzLT5idXN0eXBlID09IFNTQl9CVVNUWVBFX1BDSSkKLQkJcmV0dXJuIGRtYV9zZXRfbWFzayhkbWFfZGV2LCBtYXNrKTsKKwlpZiAoc3NiX2Rldi0+YnVzLT5idXN0eXBlID09IFNTQl9CVVNUWVBFX1BDSSkgeworCQllcnIgPSBwY2lfc2V0X2RtYV9tYXNrKHNzYl9kZXYtPmJ1cy0+aG9zdF9wY2ksIG1hc2spOworCQlpZiAoZXJyKQorCQkJcmV0dXJuIGVycjsKKwkJZXJyID0gcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHNzYl9kZXYtPmJ1cy0+aG9zdF9wY2ksIG1hc2spOworCQlyZXR1cm4gZXJyOworCX0KICNlbmRpZgogCWRtYV9kZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gbWFzazsKIAlkbWFfZGV2LT5kbWFfbWFzayA9ICZkbWFfZGV2LT5jb2hlcmVudF9kbWFfbWFzazsKIAotCXJldHVybiAwOworCXJldHVybiBlcnI7CiB9CiBFWFBPUlRfU1lNQk9MKHNzYl9kbWFfc2V0X21hc2spOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RlbGVwaG9ueS9waG9uZWRldi5jIGIvZHJpdmVycy90ZWxlcGhvbnkvcGhvbmVkZXYuYwppbmRleCBiY2VhOGQ5Li40ZDc0YmEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RlbGVwaG9ueS9waG9uZWRldi5jCisrKyBiL2RyaXZlcnMvdGVsZXBob255L3Bob25lZGV2LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3Bob25lZGV2Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+CiAKQEAgLTUzLDYgKzU0LDcgQEAKIAlpZiAobWlub3IgPj0gUEhPTkVfTlVNX0RFVklDRVMpCiAJCXJldHVybiAtRU5PREVWOwogCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZwaG9uZV9sb2NrKTsKIAlwID0gcGhvbmVfZGV2aWNlW21pbm9yXTsKIAlpZiAocCkKQEAgLTc5LDYgKzgxLDcgQEAKIAlmb3BzX3B1dChvbGRfZm9wcyk7CiBlbmQ6CiAJbXV0ZXhfdW5sb2NrKCZwaG9uZV9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL0tjb25maWcgYi9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwppbmRleCA0YjYyODUyLi5hODZlOTUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZworKysgYi9kcml2ZXJzL3RoZXJtYWwvS2NvbmZpZwpAQCAtMTIsMyArMTIsMTIgQEAKIAkgIGNvb2xpbmcgZGV2aWNlcy4KIAkgIEFsbCBwbGF0Zm9ybXMgd2l0aCBBQ1BJIHRoZXJtYWwgc3VwcG9ydCBjYW4gdXNlIHRoaXMgZHJpdmVyLgogCSAgSWYgeW91IHdhbnQgdGhpcyBzdXBwb3J0LCB5b3Ugc2hvdWxkIHNheSBZIG9yIE0gaGVyZS4KKworY29uZmlnIFRIRVJNQUxfSFdNT04KKwlib29sICJIYXJkd2FyZSBtb25pdG9yaW5nIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBIV01PTj15IHx8IEhXTU9OPVRIRVJNQUwKKwloZWxwCisJICBUaGUgZ2VuZXJpYyB0aGVybWFsIHN5c2ZzIGRyaXZlcidzIGhhcmR3YXJlIG1vbml0b3Jpbmcgc3VwcG9ydAorCSAgcmVxdWlyZXMgYSAyLjEwLjcvMy4wLjIgb3IgbGF0ZXIgbG0tc2Vuc29ycyB1c2Vyc3BhY2UuCisKKwkgIFNheSBZIGlmIHlvdXIgdXNlci1zcGFjZSBpcyBuZXcgZW5vdWdoLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3RoZXJtYWxfc3lzLmMgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYwppbmRleCA2MDk4Nzg3Li5mZTA3NDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYworKysgYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXMuYwpAQCAtMjk1LDggKzI5NSw4IEBACiAKIC8qIERldmljZSBtYW5hZ2VtZW50ICovCiAKLSNpZiBkZWZpbmVkKENPTkZJR19IV01PTikgfHwJXAotCShkZWZpbmVkKENPTkZJR19IV01PTl9NT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfTU9EVUxFKSkKKyNpZiBkZWZpbmVkKENPTkZJR19USEVSTUFMX0hXTU9OKQorCiAvKiBod21vbiBzeXMgSS9GICovCiAjaW5jbHVkZSA8bGludXgvaHdtb24uaD4KIHN0YXRpYyBMSVNUX0hFQUQodGhlcm1hbF9od21vbl9saXN0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdWlvL3Vpby5jIGIvZHJpdmVycy91aW8vdWlvLmMKaW5kZXggMGExMmU5MC4uNWE3Y2EyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91aW8vdWlvLmMKKysrIGIvZHJpdmVycy91aW8vdWlvLmMKQEAgLTI5NywxMiArMjk3LDE3IEBACiAJc3RydWN0IHVpb19saXN0ZW5lciAqbGlzdGVuZXI7CiAJaW50IHJldCA9IDA7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWlkZXYgPSBpZHJfZmluZCgmdWlvX2lkciwgaW1pbm9yKGlub2RlKSk7Ci0JaWYgKCFpZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoIWlkZXYpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQ7CisJfQogCi0JaWYgKCF0cnlfbW9kdWxlX2dldChpZGV2LT5vd25lcikpCi0JCXJldHVybiAtRU5PREVWOworCWlmICghdHJ5X21vZHVsZV9nZXQoaWRldi0+b3duZXIpKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAogCWxpc3RlbmVyID0ga21hbGxvYyhzaXplb2YoKmxpc3RlbmVyKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFsaXN0ZW5lcikgewpAQCAtMzE5LDcgKzMyNCw3IEBACiAJCWlmIChyZXQpCiAJCQlnb3RvIGVycl9pbmZvb3BlbjsKIAl9Ci0KKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIDA7CiAKIGVycl9pbmZvb3BlbjoKQEAgLTMyOSw2ICszMzQsOCBAQAogCiAJbW9kdWxlX3B1dChpZGV2LT5vd25lcik7CiAKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvYXRtL2N4YWNydS5jIGIvZHJpdmVycy91c2IvYXRtL2N4YWNydS5jCmluZGV4IDVlYTMwOTMuLjkwNTgzZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2F0bS9jeGFjcnUuYworKysgYi9kcml2ZXJzL3VzYi9hdG0vY3hhY3J1LmMKQEAgLTgyMCw3ICs4MjAsNyBAQAogfQogCiBzdGF0aWMgaW50IGN4YWNydV9mdyhzdHJ1Y3QgdXNiX2RldmljZSAqdXNiX2RldiwgZW51bSBjeGFjcnVfZndfcmVxdWVzdCBmdywKLQkJICAgICB1OCBjb2RlMSwgdTggY29kZTIsIHUzMiBhZGRyLCB1OCAqZGF0YSwgaW50IHNpemUpCisJCSAgICAgdTggY29kZTEsIHU4IGNvZGUyLCB1MzIgYWRkciwgY29uc3QgdTggKmRhdGEsIGludCBzaXplKQogewogCWludCByZXQ7CiAJdTggKmJ1ZjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMgYi9kcml2ZXJzL3VzYi9hdG0vdWVhZ2xlLWF0bS5jCmluZGV4IDVmNzFmZjMuLmNiMDFiNTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2F0bS91ZWFnbGUtYXRtLmMKKysrIGIvZHJpdmVycy91c2IvYXRtL3VlYWdsZS1hdG0uYwpAQCAtNTc5LDcgKzU3OSw3IEBACiAgKiB1ZWFfc2VuZF9tb2RlbV9jbWQgLSBTZW5kIGEgY29tbWFuZCBmb3IgcHJlLWZpcm13YXJlIGRldmljZXMuCiAgKi8KIHN0YXRpYyBpbnQgdWVhX3NlbmRfbW9kZW1fY21kKHN0cnVjdCB1c2JfZGV2aWNlICp1c2IsCi0JCXUxNiBhZGRyLCB1MTYgc2l6ZSwgdTggKiBidWZmKQorCQkJICAgICAgdTE2IGFkZHIsIHUxNiBzaXplLCBjb25zdCB1OCAqYnVmZikKIHsKIAlpbnQgcmV0ID0gLUVOT01FTTsKIAl1OCAqeGZlcl9idWZmOwpAQCAtNjA0LDcgKzYwNCw4IEBACiBzdGF0aWMgdm9pZCB1ZWFfdXBsb2FkX3ByZV9maXJtd2FyZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3X2VudHJ5LCB2b2lkICpjb250ZXh0KQogewogCXN0cnVjdCB1c2JfZGV2aWNlICp1c2IgPSBjb250ZXh0OwotCXU4ICpwZncsIHZhbHVlOworCWNvbnN0IHU4ICpwZnc7CisJdTggdmFsdWU7CiAJdTMyIGNyYyA9IDA7CiAJaW50IHJldCwgc2l6ZTsKIApAQCAtNzIwLDcgKzcyMSw3IEBACiAvKgogICogTWFrZSBzdXJlIHRoYXQgdGhlIERTUCBjb2RlIHByb3ZpZGVkIGlzIHNhZmUgdG8gdXNlLgogICovCi1zdGF0aWMgaW50IGNoZWNrX2RzcF9lMSh1OCAqZHNwLCB1bnNpZ25lZCBpbnQgbGVuKQorc3RhdGljIGludCBjaGVja19kc3BfZTEoY29uc3QgdTggKmRzcCwgdW5zaWduZWQgaW50IGxlbikKIHsKIAl1OCBwYWdlY291bnQsIGJsb2NrY291bnQ7CiAJdTE2IGJsb2Nrc2l6ZTsKQEAgLTc3MSw3ICs3NzIsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNoZWNrX2RzcF9lNCh1OCAqZHNwLCBpbnQgbGVuKQorc3RhdGljIGludCBjaGVja19kc3BfZTQoY29uc3QgdTggKmRzcCwgaW50IGxlbikKIHsKIAlpbnQgaTsKIAlzdHJ1Y3QgbDFfY29kZSAqcCA9IChzdHJ1Y3QgbDFfY29kZSAqKSBkc3A7CkBAIC04MTksNyArODIwLDcgQEAKIC8qCiAgKiBzZW5kIGRhdGEgdG8gdGhlIGlkbWEgcGlwZQogICogKi8KLXN0YXRpYyBpbnQgdWVhX2lkbWFfd3JpdGUoc3RydWN0IHVlYV9zb2Z0YyAqc2MsIHZvaWQgKmRhdGEsIHUzMiBzaXplKQorc3RhdGljIGludCB1ZWFfaWRtYV93cml0ZShzdHJ1Y3QgdWVhX3NvZnRjICpzYywgY29uc3Qgdm9pZCAqZGF0YSwgdTMyIHNpemUpCiB7CiAJaW50IHJldCA9IC1FTk9NRU07CiAJdTggKnhmZXJfYnVmZjsKQEAgLTkwMyw3ICs5MDQsNyBAQAogCXUxNiBvdmwgPSBzYy0+b3ZsOwogCXN0cnVjdCBibG9ja19pbmZvX2UxIGJpOwogCi0JdTggKnA7CisJY29uc3QgdTggKnA7CiAJdTggcGFnZWNvdW50LCBibG9ja2NvdW50OwogCXUxNiBibG9ja2FkZHIsIGJsb2Nrc2l6ZTsKIAl1MzIgcGFnZW9mZnNldDsKQEAgLTk4Niw3ICs5ODcsNyBAQAogCWJpLndSZXNlcnZlZCA9IGNwdV90b19iZTE2KFVFQV9SRVNFUlZFRCk7CiAKIAlkbyB7Ci0JCXU4ICpibG9ja29mZnNldDsKKwkJY29uc3QgdTggKmJsb2Nrb2Zmc2V0OwogCQl1bnNpZ25lZCBpbnQgYmxvY2tzaXplOwogCiAJCWJsb2NraWR4ID0gJnAtPnBhZ2VfaGVhZGVyW2Jsb2Nrbm9dOwpAQCAtMTA5NSw3ICsxMDk2LDcgQEAKICNkZWZpbmUgVUNEQ19TRU5EX0VOQ0FQU1VMQVRFRF9DT01NQU5EIDB4MDAKIAogc3RhdGljIGludCB1ZWFfcmVxdWVzdChzdHJ1Y3QgdWVhX3NvZnRjICpzYywKLQkJdTE2IHZhbHVlLCB1MTYgaW5kZXgsIHUxNiBzaXplLCB2b2lkICpkYXRhKQorCQl1MTYgdmFsdWUsIHUxNiBpbmRleCwgdTE2IHNpemUsIGNvbnN0IHZvaWQgKmRhdGEpCiB7CiAJdTggKnhmZXJfYnVmZjsKIAlpbnQgcmV0ID0gLUVOT01FTTsKQEAgLTE4OTEsNyArMTg5Miw4IEBACiB7CiAJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmd19lbnRyeTsKIAlpbnQgcmV0LCBzaXplLCB1LCBsbjsKLQl1OCAqcGZ3LCB2YWx1ZTsKKwljb25zdCB1OCAqcGZ3OworCXU4IHZhbHVlOwogCWNoYXIgKmZ3X25hbWUgPSBGV19ESVIgIjkzMC1mcGdhLmJpbiI7CiAKIAl1ZWFfZW50ZXJzKElOU19UT19VU0JERVYoc2MpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2M2N3gwMC9jNjd4MDAtbGwtaHBpLmMgYi9kcml2ZXJzL3VzYi9jNjd4MDAvYzY3eDAwLWxsLWhwaS5jCmluZGV4IDUxMDBmYmIuLmE5NjM2ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2M2N3gwMC9jNjd4MDAtbGwtaHBpLmMKKysrIGIvZHJpdmVycy91c2IvYzY3eDAwL2M2N3gwMC1sbC1ocGkuYwpAQCAtMTIwLDcgKzEyMCw3IEBACiAgKiBPbmx5IGRhdGEgaXMgbGl0dGxlIGVuZGlhbiwgYWRkciBoYXMgY3B1IGVuZGlhbmVzcwogICovCiBzdGF0aWMgdm9pZCBocGlfd3JpdGVfd29yZHNfbGUxNihzdHJ1Y3QgYzY3eDAwX2RldmljZSAqZGV2LCB1MTYgYWRkciwKLQkJCQkgdTE2ICpkYXRhLCB1MTYgY291bnQpCisJCQkJIF9fbGUxNiAqZGF0YSwgdTE2IGNvdW50KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CkBAIC0xMjksNyArMTI5LDcgQEAKIAogCWhwaV93cml0ZV9yZWcoZGV2LCBIUElfQUREUiwgYWRkcik7CiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCi0JCWhwaV93cml0ZV9yZWcoZGV2LCBIUElfREFUQSwgY3B1X3RvX2xlMTYoKmRhdGErKykpOworCQlocGlfd3JpdGVfcmVnKGRldiwgSFBJX0RBVEEsIGxlMTZfdG9fY3B1KCpkYXRhKyspKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+aHBpLmxvY2ssIGZsYWdzKTsKIH0KQEAgLTEzOCw3ICsxMzgsNyBAQAogICogT25seSBkYXRhIGlzIGxpdHRsZSBlbmRpYW4sIGFkZHIgaGFzIGNwdSBlbmRpYW5lc3MKICAqLwogc3RhdGljIHZvaWQgaHBpX3JlYWRfd29yZHNfbGUxNihzdHJ1Y3QgYzY3eDAwX2RldmljZSAqZGV2LCB1MTYgYWRkciwKLQkJCQl1MTYgKmRhdGEsIHUxNiBjb3VudCkKKwkJCQlfX2xlMTYgKmRhdGEsIHUxNiBjb3VudCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCWludCBpOwpAQCAtMTQ2LDcgKzE0Niw3IEBACiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+aHBpLmxvY2ssIGZsYWdzKTsKIAlocGlfd3JpdGVfcmVnKGRldiwgSFBJX0FERFIsIGFkZHIpOwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQotCQkqZGF0YSsrID0gbGUxNl90b19jcHUoaHBpX3JlYWRfcmVnKGRldiwgSFBJX0RBVEEpKTsKKwkJKmRhdGErKyA9IGNwdV90b19sZTE2KGhwaV9yZWFkX3JlZyhkZXYsIEhQSV9EQVRBKSk7CiAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXYtPmhwaS5sb2NrLCBmbGFncyk7CiB9CkBAIC00MjUsNyArNDI1LDcgQEAKIAkJbGVuLS07CiAJfQogCi0JaHBpX3dyaXRlX3dvcmRzX2xlMTYoZGV2LCBhZGRyLCAodTE2ICopYnVmLCBsZW4gLyAyKTsKKwlocGlfd3JpdGVfd29yZHNfbGUxNihkZXYsIGFkZHIsIChfX2xlMTYgKilidWYsIGxlbiAvIDIpOwogCWJ1ZiArPSBsZW4gJiB+MHgwMTsKIAlhZGRyICs9IGxlbiAmIH4weDAxOwogCWxlbiAmPSAweDAxOwpAQCAtNDU2LDcgKzQ1Niw3IEBACiAJCWxlbi0tOwogCX0KIAotCWhwaV9yZWFkX3dvcmRzX2xlMTYoZGV2LCBhZGRyLCAodTE2ICopYnVmLCBsZW4gLyAyKTsKKwlocGlfcmVhZF93b3Jkc19sZTE2KGRldiwgYWRkciwgKF9fbGUxNiAqKWJ1ZiwgbGVuIC8gMik7CiAJYnVmICs9IGxlbiAmIH4weDAxOwogCWFkZHIgKz0gbGVuICYgfjB4MDE7CiAJbGVuICY9IDB4MDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKaW5kZXggNjNjMzQwNC4uYzMyMDFhZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYworKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKQEAgLTExMjUsOSArMTEyNSw2IEBACiAJZm9yIChpID0gMDsgaSA8IGFjbS0+cnhfYnVmbGltaXQ7IGkrKykKIAkJdXNiX2tpbGxfdXJiKGFjbS0+cnVbaV0udXJiKTsKIAotCUlOSVRfTElTVF9IRUFEKCZhY20tPmZpbGxlZF9yZWFkX2J1ZnMpOwotCUlOSVRfTElTVF9IRUFEKCZhY20tPnNwYXJlX3JlYWRfYnVmcyk7Ci0KIAl0YXNrbGV0X2VuYWJsZSgmYWNtLT51cmJfdGFzayk7CiAKIAljYW5jZWxfd29ya19zeW5jKCZhY20tPndvcmspOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jCmluZGV4IDEwNzY2NmQuLjczMWRiMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy13ZG0uYworKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtd2RtLmMKQEAgLTYxMSw4ICs2MTEsOCBAQAogCQlnb3RvIGVycjsKIAl9CiAKLQlkZXNjLT53TWF4UGFja2V0U2l6ZSA9IGVwLT53TWF4UGFja2V0U2l6ZTsKLQlkZXNjLT5iTWF4UGFja2V0U2l6ZTAgPSBjcHVfdG9fbGUxNih1ZGV2LT5kZXNjcmlwdG9yLmJNYXhQYWNrZXRTaXplMCk7CisJZGVzYy0+d01heFBhY2tldFNpemUgPSBsZTE2X3RvX2NwdShlcC0+d01heFBhY2tldFNpemUpOworCWRlc2MtPmJNYXhQYWNrZXRTaXplMCA9IHVkZXYtPmRlc2NyaXB0b3IuYk1heFBhY2tldFNpemUwOwogCiAJZGVzYy0+b3JxID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHVzYl9jdHJscmVxdWVzdCksIEdGUF9LRVJORUwpOwogCWlmICghZGVzYy0+b3JxKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9kZXZpby5jIGIvZHJpdmVycy91c2IvY29yZS9kZXZpby5jCmluZGV4IGRlMTc3MzguLjkyMThjY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMKQEAgLTU2NSw2ICs1NjUsNyBAQAogCXN0cnVjdCBkZXZfc3RhdGUgKnBzOwogCWludCByZXQ7CiAKKwlsb2NrX2tlcm5lbCgpOwogCS8qIFByb3RlY3QgYWdhaW5zdCBzaW11bHRhbmVvdXMgcmVtb3ZhbCBvciByZWxlYXNlICovCiAJbXV0ZXhfbG9jaygmdXNiZnNfbXV0ZXgpOwogCkBAIC02MTEsNiArNjEyLDcgQEAKIAlpZiAocmV0KQogCQlrZnJlZShwcyk7CiAJbXV0ZXhfdW5sb2NrKCZ1c2Jmc19tdXRleCk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvZmlsZS5jIGIvZHJpdmVycy91c2IvY29yZS9maWxlLmMKaW5kZXggODEzM2M5OS4uYzZhOTUzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9maWxlLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9maWxlLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L3J3c2VtLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KIAogI2luY2x1ZGUgInVzYi5oIgpAQCAtMzMsNiArMzQsNyBAQAogCWludCBlcnIgPSAtRU5PREVWOwogCWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKm9sZF9mb3BzLCAqbmV3X2ZvcHMgPSBOVUxMOwogCisJbG9ja19rZXJuZWwoKTsKIAlkb3duX3JlYWQoJm1pbm9yX3J3c2VtKTsKIAljID0gdXNiX21pbm9yc1ttaW5vcl07CiAKQEAgLTUxLDYgKzUzLDcgQEAKIAlmb3BzX3B1dChvbGRfZm9wcyk7CiAgZG9uZToKIAl1cF9yZWFkKCZtaW5vcl9yd3NlbSk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvZ2VuZXJpYy5jIGIvZHJpdmVycy91c2IvY29yZS9nZW5lcmljLmMKaW5kZXggYzFjYjk0ZS4uN2U5MTJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9nZW5lcmljLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9nZW5lcmljLmMKQEAgLTE1NSw5ICsxNTUsNiBAQAogewogCWludCBlcnIsIGM7CiAKLQkvKiBwdXQgZGV2aWNlLXNwZWNpZmljIGZpbGVzIGludG8gc3lzZnMgKi8KLQl1c2JfY3JlYXRlX3N5c2ZzX2Rldl9maWxlcyh1ZGV2KTsKLQogCS8qIENob29zZSBhbmQgc2V0IHRoZSBjb25maWd1cmF0aW9uLiAgVGhpcyByZWdpc3RlcnMgdGhlIGludGVyZmFjZXMKIAkgKiB3aXRoIHRoZSBkcml2ZXIgY29yZSBhbmQgbGV0cyBpbnRlcmZhY2UgZHJpdmVycyBiaW5kIHRvIHRoZW0uCiAJICovCkBAIC0xODksOCArMTg2LDYgQEAKIAkgKiB1bmNvbmZpZ3VyZSB0aGUgZGV2aWNlICovCiAJaWYgKHVkZXYtPmFjdGNvbmZpZykKIAkJdXNiX3NldF9jb25maWd1cmF0aW9uKHVkZXYsIC0xKTsKLQotCXVzYl9yZW1vdmVfc3lzZnNfZGV2X2ZpbGVzKHVkZXYpOwogfQogCiAjaWZkZWYJQ09ORklHX1BNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jIGIvZHJpdmVycy91c2IvY29yZS9oY2QuYwppbmRleCAwOWE1M2U3Li40MmE0MzY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL2hjZC5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmMKQEAgLTkyNCw2ICs5MjQsMTUgQEAKIAlyZXR1cm4gcmV0dmFsOwogfQogCit2b2lkIHVzYl9lbmFibGVfcm9vdF9odWJfaXJxIChzdHJ1Y3QgdXNiX2J1cyAqYnVzKQoreworCXN0cnVjdCB1c2JfaGNkICpoY2Q7CisKKwloY2QgPSBjb250YWluZXJfb2YgKGJ1cywgc3RydWN0IHVzYl9oY2QsIHNlbGYpOworCWlmIChoY2QtPmRyaXZlci0+aHViX2lycV9lbmFibGUgJiYgaGNkLT5zdGF0ZSAhPSBIQ19TVEFURV9IQUxUKQorCQloY2QtPmRyaXZlci0+aHViX2lycV9lbmFibGUgKGhjZCk7Cit9CisKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIApAQCAtMTY4NCwxOSArMTY5MywzMCBAQAogaXJxcmV0dXJuX3QgdXNiX2hjZF9pcnEgKGludCBpcnEsIHZvaWQgKl9faGNkKQogewogCXN0cnVjdCB1c2JfaGNkCQkqaGNkID0gX19oY2Q7Ci0JaW50CQkJc3RhcnQgPSBoY2QtPnN0YXRlOworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCWlycXJldHVybl90CQlyYzsKIAotCWlmICh1bmxpa2VseShzdGFydCA9PSBIQ19TVEFURV9IQUxUIHx8Ci0JICAgICF0ZXN0X2JpdChIQ0RfRkxBR19IV19BQ0NFU1NJQkxFLCAmaGNkLT5mbGFncykpKQotCQlyZXR1cm4gSVJRX05PTkU7Ci0JaWYgKGhjZC0+ZHJpdmVyLT5pcnEgKGhjZCkgPT0gSVJRX05PTkUpCi0JCXJldHVybiBJUlFfTk9ORTsKKwkvKiBJUlFGX0RJU0FCTEVEIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCBzaGFyZWQgSVJRcworCSAqIHdoZW4gdGhlIGZpcnN0IGhhbmRsZXIgZG9lc24ndCB1c2UgaXQuICBTbyBsZXQncyBqdXN0CisJICogYXNzdW1lIGl0J3MgbmV2ZXIgdXNlZC4KKwkgKi8KKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKLQlzZXRfYml0KEhDRF9GTEFHX1NBV19JUlEsICZoY2QtPmZsYWdzKTsKKwlpZiAodW5saWtlbHkoaGNkLT5zdGF0ZSA9PSBIQ19TVEFURV9IQUxUIHx8CisJCSAgICAgIXRlc3RfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsICZoY2QtPmZsYWdzKSkpIHsKKwkJcmMgPSBJUlFfTk9ORTsKKwl9IGVsc2UgaWYgKGhjZC0+ZHJpdmVyLT5pcnEoaGNkKSA9PSBJUlFfTk9ORSkgeworCQlyYyA9IElSUV9OT05FOworCX0gZWxzZSB7CisJCXNldF9iaXQoSENEX0ZMQUdfU0FXX0lSUSwgJmhjZC0+ZmxhZ3MpOwogCi0JaWYgKHVubGlrZWx5KGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfSEFMVCkpCi0JCXVzYl9oY19kaWVkIChoY2QpOwotCXJldHVybiBJUlFfSEFORExFRDsKKwkJaWYgKHVubGlrZWx5KGhjZC0+c3RhdGUgPT0gSENfU1RBVEVfSEFMVCkpCisJCQl1c2JfaGNfZGllZChoY2QpOworCQlyYyA9IElSUV9IQU5ETEVEOworCX0KKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gcmM7CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC0xODYwLDYgKzE4ODAsMTMgQEAKIAogCS8qIGVuYWJsZSBpcnFzIGp1c3QgYmVmb3JlIHdlIHN0YXJ0IHRoZSBjb250cm9sbGVyICovCiAJaWYgKGhjZC0+ZHJpdmVyLT5pcnEpIHsKKworCQkvKiBJUlFGX0RJU0FCTEVEIGRvZXNuJ3Qgd29yayBhcyBhZHZlcnRpc2VkIHdoZW4gdXNlZCB0b2dldGhlcgorCQkgKiB3aXRoIElSUUZfU0hBUkVELiBBcyB1c2JfaGNkX2lycSgpIHdpbGwgYWx3YXlzIGRpc2FibGUKKwkJICogaW50ZXJydXB0cyB3ZSBjYW4gcmVtb3ZlIGl0IGhlcmUuCisJCSAqLworCQlpcnFmbGFncyAmPSB+SVJRRl9ESVNBQkxFRDsKKwogCQlzbnByaW50ZihoY2QtPmlycV9kZXNjciwgc2l6ZW9mKGhjZC0+aXJxX2Rlc2NyKSwgIiVzOnVzYiVkIiwKIAkJCQloY2QtPmRyaXZlci0+ZGVzY3JpcHRpb24sIGhjZC0+c2VsZi5idXNudW0pOwogCQlpZiAoKHJldHZhbCA9IHJlcXVlc3RfaXJxKGlycW51bSwgJnVzYl9oY2RfaXJxLCBpcnFmbGFncywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmggYi9kcml2ZXJzL3VzYi9jb3JlL2hjZC5oCmluZGV4IDFlNGI4MWUuLmI5ZGUxNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaGNkLmgKKysrIGIvZHJpdmVycy91c2IvY29yZS9oY2QuaApAQCAtMjEwLDkgKzIxMCwxMyBAQAogCWludAkoKmJ1c19zdXNwZW5kKShzdHJ1Y3QgdXNiX2hjZCAqKTsKIAlpbnQJKCpidXNfcmVzdW1lKShzdHJ1Y3QgdXNiX2hjZCAqKTsKIAlpbnQJKCpzdGFydF9wb3J0X3Jlc2V0KShzdHJ1Y3QgdXNiX2hjZCAqLCB1bnNpZ25lZCBwb3J0X251bSk7CisJdm9pZAkoKmh1Yl9pcnFfZW5hYmxlKShzdHJ1Y3QgdXNiX2hjZCAqKTsKKwkJLyogTmVlZGVkIG9ubHkgaWYgcG9ydC1jaGFuZ2UgSVJRcyBhcmUgbGV2ZWwtdHJpZ2dlcmVkICovCiAKIAkJLyogZm9yY2UgaGFuZG92ZXIgb2YgaGlnaC1zcGVlZCBwb3J0IHRvIGZ1bGwtc3BlZWQgY29tcGFuaW9uICovCiAJdm9pZAkoKnJlbGlucXVpc2hfcG9ydCkoc3RydWN0IHVzYl9oY2QgKiwgaW50KTsKKwkJLyogaGFzIGEgcG9ydCBiZWVuIGhhbmRlZCBvdmVyIHRvIGEgY29tcGFuaW9uPyAqLworCWludAkoKnBvcnRfaGFuZGVkX292ZXIpKHN0cnVjdCB1c2JfaGNkICosIGludCk7CiB9OwogCiBleHRlcm4gaW50IHVzYl9oY2RfbGlua191cmJfdG9fZXAoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2ZXJzL3VzYi9jb3JlL2h1Yi5jCmluZGV4IGViNTdmY2MuLjRjZmUzMmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYwpAQCAtNjQ0LDYgKzY0NCw0OCBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiAKKy8qIFRyeSB0byBpZGVudGlmeSB3aGljaCBkZXZpY2VzIG5lZWQgVVNCLVBFUlNJU1QgaGFuZGxpbmcgKi8KK3N0YXRpYyBpbnQgcGVyc2lzdGVudF9kZXZpY2Uoc3RydWN0IHVzYl9kZXZpY2UgKnVkZXYpCit7CisJaW50IGk7CisJaW50IHJldHZhbDsKKwlzdHJ1Y3QgdXNiX2hvc3RfY29uZmlnICphY3Rjb25maWc7CisKKwkvKiBFeHBsaWNpdGx5IG5vdCBtYXJrZWQgcGVyc2lzdGVudD8gKi8KKwlpZiAoIXVkZXYtPnBlcnNpc3RfZW5hYmxlZCkKKwkJcmV0dXJuIDA7CisKKwkvKiBObyBhY3RpdmUgY29uZmlnPyAqLworCWFjdGNvbmZpZyA9IHVkZXYtPmFjdGNvbmZpZzsKKwlpZiAoIWFjdGNvbmZpZykKKwkJcmV0dXJuIDA7CisKKwkvKiBGSVhNRSEgV2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgaXQncyBvcGVuIGhlcmUgb3Igbm90ISAqLworCisJLyoKKwkgKiBDaGVjayB0aGF0IGFsbCB0aGUgaW50ZXJmYWNlIGRyaXZlcnMgaGF2ZSBhCisJICogJ3Jlc2V0X3Jlc3VtZScgZW50cnlwb2ludAorCSAqLworCXJldHZhbCA9IDA7CisJZm9yIChpID0gMDsgaSA8IGFjdGNvbmZpZy0+ZGVzYy5iTnVtSW50ZXJmYWNlczsgaSsrKSB7CisJCXN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRmOworCQlzdHJ1Y3QgdXNiX2RyaXZlciAqZHJpdmVyOworCisJCWludGYgPSBhY3Rjb25maWctPmludGVyZmFjZVtpXTsKKwkJaWYgKCFpbnRmLT5kZXYuZHJpdmVyKQorCQkJY29udGludWU7CisJCWRyaXZlciA9IHRvX3VzYl9kcml2ZXIoaW50Zi0+ZGV2LmRyaXZlcik7CisJCWlmICghZHJpdmVyLT5yZXNldF9yZXN1bWUpCisJCQlyZXR1cm4gMDsKKwkJLyoKKwkJICogV2UgaGF2ZSBhdCBsZWFzdCBvbmUgZHJpdmVyLCBhbmQgdGhhdCBvbmUKKwkJICogaGFzIGEgcmVzZXRfcmVzdW1lIG1ldGhvZC4KKwkJICovCisJCXJldHZhbCA9IDE7CisJfQorCXJldHVybiByZXR2YWw7Cit9CisKIHN0YXRpYyB2b2lkIGh1Yl9yZXN0YXJ0KHN0cnVjdCB1c2JfaHViICpodWIsIGludCB0eXBlKQogewogCXN0cnVjdCB1c2JfZGV2aWNlICpoZGV2ID0gaHViLT5oZGV2OwpAQCAtNjcxLDI2ICs3MTMsMTkgQEAKIAkJfQogCiAJCS8qIFdhcyB0aGUgcG93ZXIgc2Vzc2lvbiBsb3N0IHdoaWxlIHdlIHdlcmUgc3VzcGVuZGVkPyAqLwotCQlzd2l0Y2ggKHR5cGUpIHsKLQkJY2FzZSBIVUJfUkVTRVRfUkVTVU1FOgotCQkJcG9ydHN0YXR1cyA9IDA7Ci0JCQlwb3J0Y2hhbmdlID0gVVNCX1BPUlRfU1RBVF9DX0NPTk5FQ1RJT047Ci0JCQlicmVhazsKKwkJc3RhdHVzID0gaHViX3BvcnRfc3RhdHVzKGh1YiwgcG9ydDEsICZwb3J0c3RhdHVzLCAmcG9ydGNoYW5nZSk7CiAKLQkJY2FzZSBIVUJfUkVTRVQ6Ci0JCWNhc2UgSFVCX1JFU1VNRToKLQkJCXN0YXR1cyA9IGh1Yl9wb3J0X3N0YXR1cyhodWIsIHBvcnQxLAotCQkJCQkmcG9ydHN0YXR1cywgJnBvcnRjaGFuZ2UpOwotCQkJYnJlYWs7Ci0JCX0KKwkJLyogSWYgdGhlIGRldmljZSBpcyBnb25lLCBraHViZCB3aWxsIGhhbmRsZSBpdCBsYXRlciAqLworCQlpZiAoc3RhdHVzID09IDAgJiYgIShwb3J0c3RhdHVzICYgVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKSkKKwkJCWNvbnRpbnVlOwogCiAJCS8qIEZvciAiVVNCX1BFUlNJU1QiLWVuYWJsZWQgY2hpbGRyZW4gd2UgbXVzdAogCQkgKiBtYXJrIHRoZSBjaGlsZCBkZXZpY2UgZm9yIHJlc2V0LXJlc3VtZSBhbmQKIAkJICogdHVybiBvZmYgdGhlIHZhcmlvdXMgc3RhdHVzIGNoYW5nZXMgdG8gcHJldmVudAogCQkgKiBraHViZCBmcm9tIGRpc2Nvbm5lY3RpbmcgaXQgbGF0ZXIuCiAJCSAqLwotCQlpZiAodWRldi0+cGVyc2lzdF9lbmFibGVkICYmIHN0YXR1cyA9PSAwICYmCi0JCQkJIShwb3J0c3RhdHVzICYgVVNCX1BPUlRfU1RBVF9FTkFCTEUpKSB7CisJCWlmIChzdGF0dXMgPT0gMCAmJiAhKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0VOQUJMRSkgJiYKKwkJCQlwZXJzaXN0ZW50X2RldmljZSh1ZGV2KSkgewogCQkJaWYgKHBvcnRjaGFuZ2UgJiBVU0JfUE9SVF9TVEFUX0NfRU5BQkxFKQogCQkJCWNsZWFyX3BvcnRfZmVhdHVyZShodWItPmhkZXYsIHBvcnQxLAogCQkJCQkJVVNCX1BPUlRfRkVBVF9DX0VOQUJMRSk7CkBAIC0xMzI2LDYgKzEzNjEsMTIgQEAKIAogCXVzYl91bmxvY2tfZGV2aWNlKHVkZXYpOwogCisJLyogUmVtb3ZlIHRoZSBkZXZpY2Utc3BlY2lmaWMgZmlsZXMgZnJvbSBzeXNmcy4gIFRoaXMgbXVzdCBiZQorCSAqIGRvbmUgd2l0aCB1ZGV2IHVubG9ja2VkLCBiZWNhdXNlIHNvbWUgb2YgdGhlIGF0dHJpYnV0ZQorCSAqIHJvdXRpbmVzIHRyeSB0byBhY3F1aXJlIHRoZSBkZXZpY2UgbG9jay4KKwkgKi8KKwl1c2JfcmVtb3ZlX3N5c2ZzX2Rldl9maWxlcyh1ZGV2KTsKKwogCS8qIFVucmVnaXN0ZXIgdGhlIGRldmljZS4gIFRoZSBkZXZpY2UgZHJpdmVyIGlzIHJlc3BvbnNpYmxlCiAJICogZm9yIHJlbW92aW5nIHRoZSBkZXZpY2UgZmlsZXMgZnJvbSB1c2JmcyBhbmQgc3lzZnMgYW5kIGZvcgogCSAqIGRlLWNvbmZpZ3VyaW5nIHRoZSBkZXZpY2UuCkBAIC0xNTQxLDYgKzE1ODIsOSBAQAogCQlnb3RvIGZhaWw7CiAJfQogCisJLyogcHV0IGRldmljZS1zcGVjaWZpYyBmaWxlcyBpbnRvIHN5c2ZzICovCisJdXNiX2NyZWF0ZV9zeXNmc19kZXZfZmlsZXModWRldik7CisKIAkvKiBUZWxsIHRoZSB3b3JsZCEgKi8KIAlhbm5vdW5jZV9kZXZpY2UodWRldik7CiAJcmV0dXJuIGVycjsKQEAgLTIwMjksNiArMjA3Myw4IEBACiAJfQogCiAJY2xlYXJfYml0KHBvcnQxLCBodWItPmJ1c3lfYml0cyk7CisJaWYgKCFodWItPmhkZXYtPnBhcmVudCAmJiAhaHViLT5idXN5X2JpdHNbMF0pCisJCXVzYl9lbmFibGVfcm9vdF9odWJfaXJxKGh1Yi0+aGRldi0+YnVzKTsKIAogCWlmIChzdGF0dXMgPT0gMCkKIAkJc3RhdHVzID0gZmluaXNoX3BvcnRfcmVzdW1lKHVkZXYpOwpAQCAtMjc0NCw3ICsyNzkwLDExIEBACiAJCWlmICgoc3RhdHVzID09IC1FTk9UQ09OTikgfHwgKHN0YXR1cyA9PSAtRU5PVFNVUFApKQogCQkJYnJlYWs7CiAJfQotCWRldl9lcnIoaHViX2RldiwgInVuYWJsZSB0byBlbnVtZXJhdGUgVVNCIGRldmljZSBvbiBwb3J0ICVkXG4iLCBwb3J0MSk7CisJaWYgKGh1Yi0+aGRldi0+cGFyZW50IHx8CisJCQkhaGNkLT5kcml2ZXItPnBvcnRfaGFuZGVkX292ZXIgfHwKKwkJCSEoaGNkLT5kcml2ZXItPnBvcnRfaGFuZGVkX292ZXIpKGhjZCwgcG9ydDEpKQorCQlkZXZfZXJyKGh1Yl9kZXYsICJ1bmFibGUgdG8gZW51bWVyYXRlIFVTQiBkZXZpY2Ugb24gcG9ydCAlZFxuIiwKKwkJCQlwb3J0MSk7CiAgCiBkb25lOgogCWh1Yl9wb3J0X2Rpc2FibGUoaHViLCBwb3J0MSwgMSk7CkBAIC0yOTU0LDYgKzMwMDQsMTEgQEAKIAogCQlodWItPmFjdGl2YXRpbmcgPSAwOwogCisJCS8qIElmIHRoaXMgaXMgYSByb290IGh1YiwgdGVsbCB0aGUgSENEIGl0J3Mgb2theSB0bworCQkgKiByZS1lbmFibGUgcG9ydC1jaGFuZ2UgaW50ZXJydXB0cyBub3cuICovCisJCWlmICghaGRldi0+cGFyZW50ICYmICFodWItPmJ1c3lfYml0c1swXSkKKwkJCXVzYl9lbmFibGVfcm9vdF9odWJfaXJxKGhkZXYtPmJ1cyk7CisKIGxvb3BfYXV0b3BtOgogCQkvKiBBbGxvdyBhdXRvc3VzcGVuZCBpZiB3ZSdyZSBub3QgZ29pbmcgdG8gcnVuIGFnYWluICovCiAJCWlmIChsaXN0X2VtcHR5KCZodWItPmV2ZW50X2xpc3QpKQpAQCAtMzE3OSw2ICszMjM0LDggQEAKIAkJCWJyZWFrOwogCX0KIAljbGVhcl9iaXQocG9ydDEsIHBhcmVudF9odWItPmJ1c3lfYml0cyk7CisJaWYgKCFwYXJlbnRfaGRldi0+cGFyZW50ICYmICFwYXJlbnRfaHViLT5idXN5X2JpdHNbMF0pCisJCXVzYl9lbmFibGVfcm9vdF9odWJfaXJxKHBhcmVudF9oZGV2LT5idXMpOwogCiAJaWYgKHJldCA8IDApCiAJCWdvdG8gcmVfZW51bWVyYXRlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKaW5kZXggMmUyMDE5My4uYzA3MGIzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL3F1aXJrcy5jCkBAIC00Nyw2ICs0NywxMyBAQAogCS8qIEVkaXJvbCBTRC0yMCAqLwogCXsgVVNCX0RFVklDRSgweDA1ODIsIDB4MDAyNyksIC5kcml2ZXJfaW5mbyA9IFVTQl9RVUlSS19SRVNFVF9SRVNVTUUgfSwKIAorCS8qIGFwcGxldG91Y2ggKi8KKwl7IFVTQl9ERVZJQ0UoMHgwNWFjLCAweDAyMWEpLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sCisKKwkvKiBBdmlzaW9uIEFWNjAwVSAqLworCXsgVVNCX0RFVklDRSgweDA2MzgsIDB4MGExMyksIC5kcml2ZXJfaW5mbyA9CisJICBVU0JfUVVJUktfU1RSSU5HX0ZFVENIXzI1NSB9LAorCiAJLyogTS1TeXN0ZW1zIEZsYXNoIERpc2sgUGlvbmVlcnMgKi8KIAl7IFVTQl9ERVZJQ0UoMHgwOGVjLCAweDEwMDApLCAuZHJpdmVyX2luZm8gPSBVU0JfUVVJUktfUkVTRVRfUkVTVU1FIH0sCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvc3lzZnMuYyBiL2RyaXZlcnMvdXNiL2NvcmUvc3lzZnMuYwppbmRleCBjNzgzY2IxLi41ZTFmNWQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9jb3JlL3N5c2ZzLmMKKysrIGIvZHJpdmVycy91c2IvY29yZS9zeXNmcy5jCkBAIC01ODgsMzUgKzU4OCwzMyBAQAogCQkJY29udGFpbmVyX29mKGtvYmosIHN0cnVjdCBkZXZpY2UsIGtvYmopKTsKIAlzaXplX3QgbmxlZnQgPSBjb3VudDsKIAlzaXplX3Qgc3JjbGVuLCBuOworCWludCBjZmdubzsKKwl2b2lkICpzcmM7CiAKLQl1c2JfbG9ja19kZXZpY2UodWRldik7Ci0KLQkvKiBUaGUgYmluYXJ5IGF0dHJpYnV0ZSBiZWdpbnMgd2l0aCB0aGUgZGV2aWNlIGRlc2NyaXB0b3IgKi8KLQlzcmNsZW4gPSBzaXplb2Yoc3RydWN0IHVzYl9kZXZpY2VfZGVzY3JpcHRvcik7Ci0JaWYgKG9mZiA8IHNyY2xlbikgewotCQluID0gbWluX3Qoc2l6ZV90LCBubGVmdCwgc3JjbGVuIC0gb2ZmKTsKLQkJbWVtY3B5KGJ1Ziwgb2ZmICsgKGNoYXIgKikgJnVkZXYtPmRlc2NyaXB0b3IsIG4pOwotCQlubGVmdCAtPSBuOwotCQlidWYgKz0gbjsKLQkJb2ZmID0gMDsKLQl9IGVsc2UgewotCQlvZmYgLT0gc3JjbGVuOwotCX0KLQotCS8qIFRoZW4gZm9sbG93cyB0aGUgcmF3IGRlc2NyaXB0b3IgZW50cnkgZm9yIHRoZSBjdXJyZW50Ci0JICogY29uZmlndXJhdGlvbiAoY29uZmlnIHBsdXMgc3Vic2lkaWFyeSBkZXNjcmlwdG9ycykuCisJLyogVGhlIGJpbmFyeSBhdHRyaWJ1dGUgYmVnaW5zIHdpdGggdGhlIGRldmljZSBkZXNjcmlwdG9yLgorCSAqIEZvbGxvd2luZyB0aGF0IGFyZSB0aGUgcmF3IGRlc2NyaXB0b3IgZW50cmllcyBmb3IgYWxsIHRoZQorCSAqIGNvbmZpZ3VyYXRpb25zIChjb25maWcgcGx1cyBzdWJzaWRpYXJ5IGRlc2NyaXB0b3JzKS4KIAkgKi8KLQlpZiAodWRldi0+YWN0Y29uZmlnKSB7Ci0JCWludCBjZmdubyA9IHVkZXYtPmFjdGNvbmZpZyAtIHVkZXYtPmNvbmZpZzsKLQotCQlzcmNsZW4gPSBfX2xlMTZfdG9fY3B1KHVkZXYtPmFjdGNvbmZpZy0+ZGVzYy53VG90YWxMZW5ndGgpOworCWZvciAoY2Znbm8gPSAtMTsgY2Znbm8gPCB1ZGV2LT5kZXNjcmlwdG9yLmJOdW1Db25maWd1cmF0aW9ucyAmJgorCQkJbmxlZnQgPiAwOyArK2NmZ25vKSB7CisJCWlmIChjZmdubyA8IDApIHsKKwkJCXNyYyA9ICZ1ZGV2LT5kZXNjcmlwdG9yOworCQkJc3JjbGVuID0gc2l6ZW9mKHN0cnVjdCB1c2JfZGV2aWNlX2Rlc2NyaXB0b3IpOworCQl9IGVsc2UgeworCQkJc3JjID0gdWRldi0+cmF3ZGVzY3JpcHRvcnNbY2Znbm9dOworCQkJc3JjbGVuID0gX19sZTE2X3RvX2NwdSh1ZGV2LT5jb25maWdbY2Znbm9dLmRlc2MuCisJCQkJCXdUb3RhbExlbmd0aCk7CisJCX0KIAkJaWYgKG9mZiA8IHNyY2xlbikgewotCQkJbiA9IG1pbl90KHNpemVfdCwgbmxlZnQsIHNyY2xlbiAtIG9mZik7Ci0JCQltZW1jcHkoYnVmLCBvZmYgKyB1ZGV2LT5yYXdkZXNjcmlwdG9yc1tjZmdub10sIG4pOworCQkJbiA9IG1pbihubGVmdCwgc3JjbGVuIC0gKHNpemVfdCkgb2ZmKTsKKwkJCW1lbWNweShidWYsIHNyYyArIG9mZiwgbik7CiAJCQlubGVmdCAtPSBuOworCQkJYnVmICs9IG47CisJCQlvZmYgPSAwOworCQl9IGVsc2UgeworCQkJb2ZmIC09IHNyY2xlbjsKIAkJfQogCX0KLQl1c2JfdW5sb2NrX2RldmljZSh1ZGV2KTsKIAlyZXR1cm4gY291bnQgLSBubGVmdDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L0tjb25maWcgYi9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZwppbmRleCA2ZTc4NGQyLi5kNmJhYjBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvS2NvbmZpZwpAQCAtMTE4LDEwICsxMTgsMTAgQEAKIGNvbmZpZyBVU0JfR0FER0VUX0FUTUVMX1VTQkEKIAlib29sZWFuICJBdG1lbCBVU0JBIgogCXNlbGVjdCBVU0JfR0FER0VUX0RVQUxTUEVFRAotCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxQ0FQOQorCWRlcGVuZHMgb24gQVZSMzIgfHwgQVJDSF9BVDkxQ0FQOSB8fCBBUkNIX0FUOTFTQU05UkwKIAloZWxwCiAJICBVU0JBIGlzIHRoZSBpbnRlZ3JhdGVkIGhpZ2gtc3BlZWQgVVNCIERldmljZSBjb250cm9sbGVyIG9uCi0JICB0aGUgQVQzMkFQNzAweCBhbmQgQVQ5MUNBUDkgcHJvY2Vzc29ycyBmcm9tIEF0bWVsLgorCSAgdGhlIEFUMzJBUDcwMHgsIHNvbWUgQVQ5MVNBTTkgYW5kIEFUOTFDQVA5IHByb2Nlc3NvcnMgZnJvbSBBdG1lbC4KIAogY29uZmlnIFVTQl9BVE1FTF9VU0JBCiAJdHJpc3RhdGUKQEAgLTE3Miw3ICsxNzIsNyBAQAogCWRlZmF1bHQgVVNCX0dBREdFVAogCXNlbGVjdCBVU0JfR0FER0VUX1NFTEVDVEVECiAKLWNvbmZpZyBVU0JfR0FER0VUX1BYQTJYWAorY29uZmlnIFVTQl9HQURHRVRfUFhBMjVYCiAJYm9vbGVhbiAiUFhBIDI1eCBvciBJWFAgNHh4IgogCWRlcGVuZHMgb24gKEFSQ0hfUFhBICYmIFBYQTI1eCkgfHwgQVJDSF9JWFA0WFgKIAloZWxwCkBAIC0xODQsMTkgKzE4NCwxOSBAQAogCSAgIHplcm8gKGZvciBjb250cm9sIHRyYW5zZmVycykuCiAKIAkgICBTYXkgInkiIHRvIGxpbmsgdGhlIGRyaXZlciBzdGF0aWNhbGx5LCBvciAibSIgdG8gYnVpbGQgYQotCSAgIGR5bmFtaWNhbGx5IGxpbmtlZCBtb2R1bGUgY2FsbGVkICJweGEyeHhfdWRjIiBhbmQgZm9yY2UgYWxsCisJICAgZHluYW1pY2FsbHkgbGlua2VkIG1vZHVsZSBjYWxsZWQgInB4YTI1eF91ZGMiIGFuZCBmb3JjZSBhbGwKIAkgICBnYWRnZXQgZHJpdmVycyB0byBhbHNvIGJlIGR5bmFtaWNhbGx5IGxpbmtlZC4KIAotY29uZmlnIFVTQl9QWEEyWFgKK2NvbmZpZyBVU0JfUFhBMjVYCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFVTQl9HQURHRVRfUFhBMlhYCisJZGVwZW5kcyBvbiBVU0JfR0FER0VUX1BYQTI1WAogCWRlZmF1bHQgVVNCX0dBREdFVAogCXNlbGVjdCBVU0JfR0FER0VUX1NFTEVDVEVECiAKICMgaWYgdGhlcmUncyBvbmx5IG9uZSBnYWRnZXQgZHJpdmVyLCB1c2luZyBvbmx5IHR3byBidWxrIGVuZHBvaW50cywKICMgZG9uJ3Qgd2FzdGUgbWVtb3J5IGZvciB0aGUgb3RoZXIgZW5kcG9pbnRzCi1jb25maWcgVVNCX1BYQTJYWF9TTUFMTAotCWRlcGVuZHMgb24gVVNCX0dBREdFVF9QWEEyWFgKK2NvbmZpZyBVU0JfUFhBMjVYX1NNQUxMCisJZGVwZW5kcyBvbiBVU0JfR0FER0VUX1BYQTI1WAogCWJvb2wKIAlkZWZhdWx0IG4gaWYgVVNCX0VUSF9STkRJUwogCWRlZmF1bHQgeSBpZiBVU0JfWkVSTwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L01ha2VmaWxlIGIvZHJpdmVycy91c2IvZ2FkZ2V0L01ha2VmaWxlCmluZGV4IDEyMzU3MjUuLmUyNThhZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvTWFrZWZpbGUKQEAgLTgsNyArOCw3IEBACiBvYmotJChDT05GSUdfVVNCX0RVTU1ZX0hDRCkJKz0gZHVtbXlfaGNkLm8KIG9iai0kKENPTkZJR19VU0JfTkVUMjI4MCkJKz0gbmV0MjI4MC5vCiBvYmotJChDT05GSUdfVVNCX0FNRDU1MzZVREMpCSs9IGFtZDU1MzZ1ZGMubwotb2JqLSQoQ09ORklHX1VTQl9QWEEyWFgpCSs9IHB4YTJ4eF91ZGMubworb2JqLSQoQ09ORklHX1VTQl9QWEEyNVgpCSs9IHB4YTI1eF91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9QWEEyN1gpCSs9IHB4YTI3eF91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9HT0tVKQkJKz0gZ29rdV91ZGMubwogb2JqLSQoQ09ORklHX1VTQl9PTUFQKQkJKz0gb21hcF91ZGMubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2F0OTFfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYwppbmRleCAyNzRjNjBhLi5iNmIyYTBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXQ5MV91ZGMuYwpAQCAtODg4LDcgKzg4OCw3IEBACiAJCWF0OTFfdWRwX3dyaXRlKHVkYywgQVQ5MV9VRFBfVFhWQywgMCk7CiAJCWlmIChjcHVfaXNfYXQ5MXJtOTIwMCgpKQogCQkJZ3Bpb19zZXRfdmFsdWUodWRjLT5ib2FyZC5wdWxsdXBfcGluLCBhY3RpdmUpOwotCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSkgeworCQllbHNlIGlmIChjcHVfaXNfYXQ5MXNhbTkyNjAoKSB8fCBjcHVfaXNfYXQ5MXNhbTkyNjMoKSB8fCBjcHVfaXNfYXQ5MXNhbTlnMjAoKSkgewogCQkJdTMyCXR4dmMgPSBhdDkxX3VkcF9yZWFkKHVkYywgQVQ5MV9VRFBfVFhWQyk7CiAKIAkJCXR4dmMgfD0gQVQ5MV9VRFBfVFhWQ19QVU9OOwpAQCAtOTA2LDcgKzkwNiw3IEBACiAJCWF0OTFfdWRwX3dyaXRlKHVkYywgQVQ5MV9VRFBfVFhWQywgQVQ5MV9VRFBfVFhWQ19UWFZESVMpOwogCQlpZiAoY3B1X2lzX2F0OTFybTkyMDAoKSkKIAkJCWdwaW9fc2V0X3ZhbHVlKHVkYy0+Ym9hcmQucHVsbHVwX3BpbiwgIWFjdGl2ZSk7Ci0JCWVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpKSB7CisJCWVsc2UgaWYgKGNwdV9pc19hdDkxc2FtOTI2MCgpIHx8IGNwdV9pc19hdDkxc2FtOTI2MygpIHx8IGNwdV9pc19hdDkxc2FtOWcyMCgpKSB7CiAJCQl1MzIJdHh2YyA9IGF0OTFfdWRwX3JlYWQodWRjLCBBVDkxX1VEUF9UWFZDKTsKIAogCQkJdHh2YyAmPSB+QVQ5MV9VRFBfVFhWQ19QVU9OOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2V0aGVyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYwppbmRleCA4ZDYxZWE2Li40Y2UzOTUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZXRoZXIuYwpAQCAtMjYyLDcgKzI2Miw3IEBACiAvKiBGb3IgQ0RDLWluY2FwYWJsZSBoYXJkd2FyZSwgY2hvb3NlIHRoZSBzaW1wbGUgY2RjIHN1YnNldC4KICAqIEFueXRoaW5nIHRoYXQgdGFsa3MgYnVsayAod2l0aG91dCBub3RhYmxlIGJ1Z3MpIGNhbiBkbyB0aGlzLgogICovCi0jaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMlhYCisjaWZkZWYgQ09ORklHX1VTQl9HQURHRVRfUFhBMjVYCiAjZGVmaW5lCURFVl9DT05GSUdfU1VCU0VUCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2ZzbF91c2IyX3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZzbF91c2IyX3VkYy5jCmluZGV4IDY1MWI4MjcuLjE4Njg3NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mc2xfdXNiMl91ZGMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZnNsX3VzYjJfdWRjLmMKQEAgLTE2MjcsNyArMTYyNyw5IEBACiAJCXVkY19yZXNldF9lcF9xdWV1ZSh1ZGMsIHBpcGUpOwogCiAJLyogcmVwb3J0IGRpc2Nvbm5lY3Q7IHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBxdWllc2NlZCAqLworCXNwaW5fdW5sb2NrKCZ1ZGMtPmxvY2spOwogCXVkYy0+ZHJpdmVyLT5kaXNjb25uZWN0KCZ1ZGMtPmdhZGdldCk7CisJc3Bpbl9sb2NrKCZ1ZGMtPmxvY2spOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvZ2FkZ2V0X2NoaXBzLmggYi9kcml2ZXJzL3VzYi9nYWRnZXQvZ2FkZ2V0X2NoaXBzLmgKaW5kZXggZjdmMTU5Yy4uY2E1MTQ5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L2dhZGdldF9jaGlwcy5oCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9nYWRnZXRfY2hpcHMuaApAQCAtMjksOCArMjksOCBAQAogI2RlZmluZQlnYWRnZXRfaXNfZHVtbXkoZykJMAogI2VuZGlmCiAKLSNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9QWEEyWFgKLSNkZWZpbmUJZ2FkZ2V0X2lzX3B4YShnKQkhc3RyY21wKCJweGEyeHhfdWRjIiwgKGcpLT5uYW1lKQorI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX1BYQTI1WAorI2RlZmluZQlnYWRnZXRfaXNfcHhhKGcpCSFzdHJjbXAoInB4YTI1eF91ZGMiLCAoZyktPm5hbWUpCiAjZWxzZQogI2RlZmluZQlnYWRnZXRfaXNfcHhhKGcpCTAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2lub2RlLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvaW5vZGUuYwppbmRleCA2OWIwYTI3Li5mMTMyYTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvaW5vZGUuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvaW5vZGUuYwpAQCAtMTUwMSw3ICsxNTAxLDcgQEAKIAkJfQogCQlicmVhazsKIAotI2lmbmRlZglDT05GSUdfVVNCX0dBREdFVF9QWEEyWFgKKyNpZm5kZWYJQ09ORklHX1VTQl9HQURHRVRfUFhBMjVYCiAJLyogUFhBIGF1dG9tYWdpY2FsbHkgaGFuZGxlcyB0aGlzIHJlcXVlc3QgdG9vICovCiAJY2FzZSBVU0JfUkVRX0dFVF9DT05GSUdVUkFUSU9OOgogCQlpZiAoY3RybC0+YlJlcXVlc3RUeXBlICE9IDB4ODApCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5jCmluZGV4IDg4MWQ3NGMuLjAzYTdmNDkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5jCkBAIC0xMzUsMTMgKzEzNSwxNyBAQAogCiAJaWYgKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikKIAkJbnVtIHw9IFVEQ19FUF9ESVI7Ci0JVURDX0VQX05VTV9SRUcgPSBudW0gfCBzZWxlY3Q7CisJb21hcF93cml0ZXcobnVtIHwgc2VsZWN0LCBVRENfRVBfTlVNKTsKIAkvKiB3aGVuIHNlbGVjdCwgTVVTVCBkZXNlbGVjdCBsYXRlciAhISAqLwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZGVzZWxlY3RfZXAodm9pZCkKIHsKLQlVRENfRVBfTlVNX1JFRyAmPSB+VURDX0VQX1NFTDsKKwl1MTYgdzsKKworCXcgPSBvbWFwX3JlYWR3KFVEQ19FUF9OVU0pOworCXcgJj0gflVEQ19FUF9TRUw7CisJb21hcF93cml0ZXcodywgVURDX0VQX05VTSk7CiAJLyogNiB3YWl0IHN0YXRlcyBiZWZvcmUgVFggd2lsbCBoYXBwZW4gKi8KIH0KIApAQCAtMjE2LDcgKzIyMCw3IEBACiAJZXAtPmhhc19kbWEgPSAwOwogCWVwLT5sY2ggPSAtMTsKIAl1c2VfZXAoZXAsIFVEQ19FUF9TRUwpOwotCVVEQ19DVFJMX1JFRyA9IHVkYy0+Y2xyX2hhbHQ7CisJb21hcF93cml0ZXcodWRjLT5jbHJfaGFsdCwgVURDX0NUUkwpOwogCWVwLT5hY2t3YWl0ID0gMDsKIAlkZXNlbGVjdF9lcCgpOwogCkBAIC0yMzIsNyArMjM2LDcgQEAKIAlpZiAoZGVzYy0+Ym1BdHRyaWJ1dGVzICE9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MKIAkJCSYmICFlcC0+aGFzX2RtYQogCQkJJiYgIShlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pKSB7Ci0JCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCX0KIApAQCAtMjU5LDcgKzI2Myw3IEBACiAJbnVrZSAoZXAsIC1FU0hVVERPV04pOwogCWVwLT5lcC5tYXhwYWNrZXQgPSBlcC0+bWF4cGFja2V0OwogCWVwLT5oYXNfZG1hID0gMDsKLQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0hBTFQ7CisJb21hcF93cml0ZXcoVURDX1NFVF9IQUxULCBVRENfQ1RSTCk7CiAJbGlzdF9kZWxfaW5pdCgmZXAtPmlzbyk7CiAJZGVsX3RpbWVyKCZlcC0+dGltZXIpOwogCkBAIC0zNjAsMTMgKzM2NCwxMyBAQAogCWlmIChsaWtlbHkoKCgoaW50KWJ1ZikgJiAxKSA9PSAwKSkgewogCQl3cCA9ICh1MTYgKilidWY7CiAJCXdoaWxlIChtYXggPj0gMikgewotCQkJVURDX0RBVEFfUkVHID0gKndwKys7CisJCQlvbWFwX3dyaXRldygqd3ArKywgVURDX0RBVEEpOwogCQkJbWF4IC09IDI7CiAJCX0KIAkJYnVmID0gKHU4ICopd3A7CiAJfQogCXdoaWxlIChtYXgtLSkKLQkJKih2b2xhdGlsZSB1OCAqKSZVRENfREFUQV9SRUcgPSAqYnVmKys7CisJCW9tYXBfd3JpdGViKCpidWYrKywgVURDX0RBVEEpOwogCXJldHVybiBsZW47CiB9CiAKQEAgLTM4NSwxMyArMzg5LDEzIEBACiAJcHJlZmV0Y2goYnVmKTsKIAogCS8qIFBJTy1JTiBpc24ndCBkb3VibGUgYnVmZmVyZWQgZXhjZXB0IGZvciBpc28gKi8KLQllcF9zdGF0ID0gVURDX1NUQVRfRkxHX1JFRzsKKwllcF9zdGF0ID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCWlmIChlcF9zdGF0ICYgVURDX0ZJRk9fVU5XUklUQUJMRSkKIAkJcmV0dXJuIDA7CiAKIAljb3VudCA9IGVwLT5lcC5tYXhwYWNrZXQ7CiAJY291bnQgPSB3cml0ZV9wYWNrZXQoYnVmLCByZXEsIGNvdW50KTsKLQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJZXAtPmFja3dhaXQgPSAxOwogCiAJLyogbGFzdCBwYWNrZXQgaXMgb2Z0ZW4gc2hvcnQgKHNvbWV0aW1lcyBhIHpscCkgKi8KQEAgLTQyNSwxMyArNDI5LDEzIEBACiAJaWYgKGxpa2VseSgoKChpbnQpYnVmKSAmIDEpID09IDApKSB7CiAJCXdwID0gKHUxNiAqKWJ1ZjsKIAkJd2hpbGUgKGF2YWlsID49IDIpIHsKLQkJCSp3cCsrID0gVURDX0RBVEFfUkVHOworCQkJKndwKysgPSBvbWFwX3JlYWR3KFVEQ19EQVRBKTsKIAkJCWF2YWlsIC09IDI7CiAJCX0KIAkJYnVmID0gKHU4ICopd3A7CiAJfQogCXdoaWxlIChhdmFpbC0tKQotCQkqYnVmKysgPSAqKHZvbGF0aWxlIHU4ICopJlVEQ19EQVRBX1JFRzsKKwkJKmJ1ZisrID0gb21hcF9yZWFkYihVRENfREFUQSk7CiAJcmV0dXJuIGxlbjsKIH0KIApAQCAtNDQ2LDcgKzQ1MCw3IEBACiAJcHJlZmV0Y2h3KGJ1Zik7CiAKIAlmb3IgKDs7KSB7Ci0JCXUxNgllcF9zdGF0ID0gVURDX1NUQVRfRkxHX1JFRzsKKwkJdTE2CWVwX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAKIAkJaXNfbGFzdCA9IDA7CiAJCWlmIChlcF9zdGF0ICYgRklGT19FTVBUWSkgewpAQCAtNDYwLDcgKzQ2NCw3IEBACiAJCWlmIChlcF9zdGF0ICYgVURDX0ZJRk9fRlVMTCkKIAkJCWF2YWlsID0gZXAtPmVwLm1heHBhY2tldDsKIAkJZWxzZSAgewotCQkJYXZhaWwgPSBVRENfUlhGU1RBVF9SRUc7CisJCQlhdmFpbCA9IG9tYXBfcmVhZHcoVURDX1JYRlNUQVQpOwogCQkJZXAtPmZuZiA9IGVwLT5kb3VibGVfYnVmOwogCQl9CiAJCWNvdW50ID0gcmVhZF9wYWNrZXQoYnVmLCByZXEsIGF2YWlsKTsKQEAgLTQ3Myw3ICs0NzcsNyBAQAogCQkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FT1ZFUkZMT1c7CiAJCQkJYXZhaWwgLT0gY291bnQ7CiAJCQkJd2hpbGUgKGF2YWlsLS0pCi0JCQkJCSh2b2lkKSAqKHZvbGF0aWxlIHU4ICopJlVEQ19EQVRBX1JFRzsKKwkJCQkJb21hcF9yZWFkdyhVRENfREFUQSk7CiAJCQl9CiAJCX0gZWxzZSBpZiAocmVxLT5yZXEubGVuZ3RoID09IHJlcS0+cmVxLmFjdHVhbCkKIAkJCWlzX2xhc3QgPSAxOwpAQCAtNDkxLDMyICs0OTUsNiBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi1zdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgZG1hX2NzYWModW5zaWduZWQgbGNoKQotewotCWRtYV9hZGRyX3QJY3NhYzsKLQotCS8qIG9tYXAgMy4yLzMuMyBlcnJhdHVtOiBzb21ldGltZXMgMCBpcyByZXR1cm5lZCBpZiBDU0FDL0NEQUMgaXMKLQkgKiByZWFkIGJlZm9yZSB0aGUgRE1BIGNvbnRyb2xsZXIgZmluaXNoZWQgZGlzYWJsaW5nIHRoZSBjaGFubmVsLgotCSAqLwotCWNzYWMgPSBPTUFQX0RNQV9DU0FDX1JFRyhsY2gpOwotCWlmIChjc2FjID09IDApCi0JCWNzYWMgPSBPTUFQX0RNQV9DU0FDX1JFRyhsY2gpOwotCXJldHVybiBjc2FjOwotfQotCi1zdGF0aWMgaW5saW5lIGRtYV9hZGRyX3QgZG1hX2NkYWModW5zaWduZWQgbGNoKQotewotCWRtYV9hZGRyX3QJY2RhYzsKLQotCS8qIG9tYXAgMy4yLzMuMyBlcnJhdHVtOiBzb21ldGltZXMgMCBpcyByZXR1cm5lZCBpZiBDU0FDL0NEQUMgaXMKLQkgKiByZWFkIGJlZm9yZSB0aGUgRE1BIGNvbnRyb2xsZXIgZmluaXNoZWQgZGlzYWJsaW5nIHRoZSBjaGFubmVsLgotCSAqLwotCWNkYWMgPSBPTUFQX0RNQV9DREFDX1JFRyhsY2gpOwotCWlmIChjZGFjID09IDApCi0JCWNkYWMgPSBPTUFQX0RNQV9DREFDX1JFRyhsY2gpOwotCXJldHVybiBjZGFjOwotfQotCiBzdGF0aWMgdTE2IGRtYV9zcmNfbGVuKHN0cnVjdCBvbWFwX2VwICplcCwgZG1hX2FkZHJfdCBzdGFydCkKIHsKIAlkbWFfYWRkcl90CWVuZDsKQEAgLTUyNyw3ICs1MDUsNyBAQAogCWlmIChjcHVfaXNfb21hcDE1eHgoKSkKIAkJcmV0dXJuIDA7CiAKLQllbmQgPSBkbWFfY3NhYyhlcC0+bGNoKTsKKwllbmQgPSBvbWFwX2dldF9kbWFfc3JjX3BvcyhlcC0+bGNoKTsKIAlpZiAoZW5kID09IGVwLT5kbWFfY291bnRlcikKIAkJcmV0dXJuIDA7CiAKQEAgLTUzNywxNSArNTE1LDExIEBACiAJcmV0dXJuIGVuZCAtIHN0YXJ0OwogfQogCi0jZGVmaW5lIERNQV9ERVNUX0xBU1QoeCkgKGNwdV9pc19vbWFwMTV4eCgpIFwKLQkJPyBPTUFQX0RNQV9DU0FDX1JFRyh4KSAvKiByZWFsbHk6IENQQyAqLyBcCi0JCTogZG1hX2NkYWMoeCkpCi0KIHN0YXRpYyB1MTYgZG1hX2Rlc3RfbGVuKHN0cnVjdCBvbWFwX2VwICplcCwgZG1hX2FkZHJfdCBzdGFydCkKIHsKIAlkbWFfYWRkcl90CWVuZDsKIAotCWVuZCA9IERNQV9ERVNUX0xBU1QoZXAtPmxjaCk7CisJZW5kID0gb21hcF9nZXRfZG1hX2RzdF9wb3MoZXAtPmxjaCk7CiAJaWYgKGVuZCA9PSBlcC0+ZG1hX2NvdW50ZXIpCiAJCXJldHVybiAwOwogCkBAIC01NjUsNyArNTM5LDcgQEAKIAogc3RhdGljIHZvaWQgbmV4dF9pbl9kbWEoc3RydWN0IG9tYXBfZXAgKmVwLCBzdHJ1Y3Qgb21hcF9yZXEgKnJlcSkKIHsKLQl1MTYJCXR4ZG1hX2N0cmw7CisJdTE2CQl0eGRtYV9jdHJsLCB3OwogCXVuc2lnbmVkCWxlbmd0aCA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKIAljb25zdCBpbnQJc3luY19tb2RlID0gY3B1X2lzX29tYXAxNXh4KCkKIAkJCQk/IE9NQVBfRE1BX1NZTkNfRlJBTUUKQEAgLTU5NiwxNCArNTcwLDE4IEBACiAJCTAsIDApOwogCiAJb21hcF9zdGFydF9kbWEoZXAtPmxjaCk7Ci0JZXAtPmRtYV9jb3VudGVyID0gZG1hX2NzYWMoZXAtPmxjaCk7Ci0JVURDX0RNQV9JUlFfRU5fUkVHIHw9IFVEQ19UWF9ET05FX0lFKGVwLT5kbWFfY2hhbm5lbCk7Ci0JVURDX1RYRE1BX1JFRyhlcC0+ZG1hX2NoYW5uZWwpID0gVURDX1RYTl9TVEFSVCB8IHR4ZG1hX2N0cmw7CisJZXAtPmRtYV9jb3VudGVyID0gb21hcF9nZXRfZG1hX3NyY19wb3MoZXAtPmxjaCk7CisJdyA9IG9tYXBfcmVhZHcoVURDX0RNQV9JUlFfRU4pOworCXcgfD0gVURDX1RYX0RPTkVfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwlvbWFwX3dyaXRldyh3LCBVRENfRE1BX0lSUV9FTik7CisJb21hcF93cml0ZXcoVURDX1RYTl9TVEFSVCB8IHR4ZG1hX2N0cmwsIFVEQ19UWERNQShlcC0+ZG1hX2NoYW5uZWwpKTsKIAlyZXEtPmRtYV9ieXRlcyA9IGxlbmd0aDsKIH0KIAogc3RhdGljIHZvaWQgZmluaXNoX2luX2RtYShzdHJ1Y3Qgb21hcF9lcCAqZXAsIHN0cnVjdCBvbWFwX3JlcSAqcmVxLCBpbnQgc3RhdHVzKQogeworCXUxNiB3OworCiAJaWYgKHN0YXR1cyA9PSAwKSB7CiAJCXJlcS0+cmVxLmFjdHVhbCArPSByZXEtPmRtYV9ieXRlczsKIApAQCAtNjIwLDcgKzU5OCw5IEBACiAKIAkvKiB0eCBjb21wbGV0aW9uICovCiAJb21hcF9zdG9wX2RtYShlcC0+bGNoKTsKLQlVRENfRE1BX0lSUV9FTl9SRUcgJj0gflVEQ19UWF9ET05FX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJdyA9IG9tYXBfcmVhZHcoVURDX0RNQV9JUlFfRU4pOworCXcgJj0gflVEQ19UWF9ET05FX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJb21hcF93cml0ZXcodywgVURDX0RNQV9JUlFfRU4pOwogCWRvbmUoZXAsIHJlcSwgc3RhdHVzKTsKIH0KIApAQCAtNjI4LDYgKzYwOCw3IEBACiB7CiAJdW5zaWduZWQgcGFja2V0cyA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKIAlpbnQgZG1hX3RyaWdnZXIgPSAwOworCXUxNiB3OwogCiAJaWYgKGNwdV9pc19vbWFwMjR4eCgpKQogCQlkbWFfdHJpZ2dlciA9IE9NQVAyNFhYX0RNQShVU0JfVzJGQ19SWDAsIGVwLT5kbWFfY2hhbm5lbCk7CkBAIC02NTQsMTIgKzYzNSwxNCBAQAogCW9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyhlcC0+bGNoLCBPTUFQX0RNQV9QT1JUX0VNSUZGLAogCQlPTUFQX0RNQV9BTU9ERV9QT1NUX0lOQywgcmVxLT5yZXEuZG1hICsgcmVxLT5yZXEuYWN0dWFsLAogCQkwLCAwKTsKLQllcC0+ZG1hX2NvdW50ZXIgPSBETUFfREVTVF9MQVNUKGVwLT5sY2gpOworCWVwLT5kbWFfY291bnRlciA9IG9tYXBfZ2V0X2RtYV9kc3RfcG9zKGVwLT5sY2gpOwogCi0JVURDX1JYRE1BX1JFRyhlcC0+ZG1hX2NoYW5uZWwpID0gVURDX1JYTl9TVE9QIHwgKHBhY2tldHMgLSAxKTsKLQlVRENfRE1BX0lSUV9FTl9SRUcgfD0gVURDX1JYX0VPVF9JRShlcC0+ZG1hX2NoYW5uZWwpOwotCVVEQ19FUF9OVU1fUkVHID0gKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgMHhmKTsKLQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJb21hcF93cml0ZXcoVURDX1JYTl9TVE9QIHwgKHBhY2tldHMgLSAxKSwgVURDX1JYRE1BKGVwLT5kbWFfY2hhbm5lbCkpOworCXcgPSBvbWFwX3JlYWR3KFVEQ19ETUFfSVJRX0VOKTsKKwl3IHw9IFVEQ19SWF9FT1RfSUUoZXAtPmRtYV9jaGFubmVsKTsKKwlvbWFwX3dyaXRldyh3LCBVRENfRE1BX0lSUV9FTik7CisJb21hcF93cml0ZXcoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiAweGYsIFVEQ19FUF9OVU0pOworCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCiAJb21hcF9zdGFydF9kbWEoZXAtPmxjaCk7CiB9CkBAIC02NjcsNyArNjUwLDcgQEAKIHN0YXRpYyB2b2lkCiBmaW5pc2hfb3V0X2RtYShzdHJ1Y3Qgb21hcF9lcCAqZXAsIHN0cnVjdCBvbWFwX3JlcSAqcmVxLCBpbnQgc3RhdHVzLCBpbnQgb25lKQogewotCXUxNgljb3VudDsKKwl1MTYJY291bnQsIHc7CiAKIAlpZiAoc3RhdHVzID09IDApCiAJCWVwLT5kbWFfY291bnRlciA9ICh1MTYpIChyZXEtPnJlcS5kbWEgKyByZXEtPnJlcS5hY3R1YWwpOwpAQCAtNjg2LDEzICs2NjksMTUgQEAKIAkJcmV0dXJuOwogCiAJLyogcnggY29tcGxldGlvbiAqLwotCVVEQ19ETUFfSVJRX0VOX1JFRyAmPSB+VURDX1JYX0VPVF9JRShlcC0+ZG1hX2NoYW5uZWwpOworCXcgPSBvbWFwX3JlYWR3KFVEQ19ETUFfSVJRX0VOKTsKKwl3ICY9IH5VRENfUlhfRU9UX0lFKGVwLT5kbWFfY2hhbm5lbCk7CisJb21hcF93cml0ZXcodywgVURDX0RNQV9JUlFfRU4pOwogCWRvbmUoZXAsIHJlcSwgc3RhdHVzKTsKIH0KIAogc3RhdGljIHZvaWQgZG1hX2lycShzdHJ1Y3Qgb21hcF91ZGMgKnVkYywgdTE2IGlycV9zcmMpCiB7Ci0JdTE2CQlkbWFuX3N0YXQgPSBVRENfRE1BTl9TVEFUX1JFRzsKKwl1MTYJCWRtYW5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0RNQU5fU1RBVCk7CiAJc3RydWN0IG9tYXBfZXAJKmVwOwogCXN0cnVjdCBvbWFwX3JlcQkqcmVxOwogCkBAIC03MDYsNyArNjkxLDcgQEAKIAkJCQkJCXN0cnVjdCBvbWFwX3JlcSwgcXVldWUpOwogCQkJZmluaXNoX2luX2RtYShlcCwgcmVxLCAwKTsKIAkJfQotCQlVRENfSVJRX1NSQ19SRUcgPSBVRENfVFhOX0RPTkU7CisJCW9tYXBfd3JpdGV3KFVEQ19UWE5fRE9ORSwgVURDX0lSUV9TUkMpOwogCiAJCWlmICghbGlzdF9lbXB0eSAoJmVwLT5xdWV1ZSkpIHsKIAkJCXJlcSA9IGNvbnRhaW5lcl9vZihlcC0+cXVldWUubmV4dCwKQEAgLTcyNSw3ICs3MTAsNyBAQAogCQkJCQlzdHJ1Y3Qgb21hcF9yZXEsIHF1ZXVlKTsKIAkJCWZpbmlzaF9vdXRfZG1hKGVwLCByZXEsIDAsIGRtYW5fc3RhdCAmIFVEQ19ETUFfUlhfU0IpOwogCQl9Ci0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19SWE5fRU9UOworCQlvbWFwX3dyaXRldyhVRENfUlhOX0VPVCwgVURDX0lSUV9TUkMpOwogCiAJCWlmICghbGlzdF9lbXB0eSAoJmVwLT5xdWV1ZSkpIHsKIAkJCXJlcSA9IGNvbnRhaW5lcl9vZihlcC0+cXVldWUubmV4dCwKQEAgLTczOSw3ICs3MjQsNyBAQAogCQllcC0+aXJxcysrOwogCQkvKiBvbWFwMTV4eCBkb2VzIHRoaXMgdW5hc2tlZC4uLiAqLwogCQlWREJHKCIlcywgUlhfQ05UIGlycT9cbiIsIGVwLT5lcC5uYW1lKTsKLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX1JYTl9DTlQ7CisJCW9tYXBfd3JpdGV3KFVEQ19SWE5fQ05ULCBVRENfSVJRX1NSQyk7CiAJfQogfQogCkBAIC03NjIsOSArNzQ3LDkgQEAKIAogCWlzX2luID0gZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOOwogCWlmIChpc19pbikKLQkJcmVnID0gVURDX1RYRE1BX0NGR19SRUc7CisJCXJlZyA9IG9tYXBfcmVhZHcoVURDX1RYRE1BX0NGRyk7CiAJZWxzZQotCQlyZWcgPSBVRENfUlhETUFfQ0ZHX1JFRzsKKwkJcmVnID0gb21hcF9yZWFkdyhVRENfUlhETUFfQ0ZHKTsKIAlyZWcgfD0gVURDX0RNQV9SRVE7CQkvKiAicHVsc2UiIGFjdGl2YXRlZCAqLwogCiAJZXAtPmRtYV9jaGFubmVsID0gMDsKQEAgLTc5Miw3ICs3NzcsNyBAQAogCQlzdGF0dXMgPSBvbWFwX3JlcXVlc3RfZG1hKGRtYV9jaGFubmVsLAogCQkJZXAtPmVwLm5hbWUsIGRtYV9lcnJvciwgZXAsICZlcC0+bGNoKTsKIAkJaWYgKHN0YXR1cyA9PSAwKSB7Ci0JCQlVRENfVFhETUFfQ0ZHX1JFRyA9IHJlZzsKKwkJCW9tYXBfd3JpdGV3KHJlZywgVURDX1RYRE1BX0NGRyk7CiAJCQkvKiBFTUlGRiBvciBTRFJDICovCiAJCQlvbWFwX3NldF9kbWFfc3JjX2J1cnN0X21vZGUoZXAtPmxjaCwKIAkJCQkJCU9NQVBfRE1BX0RBVEFfQlVSU1RfNCk7CkBAIC04MDEsNyArNzg2LDcgQEAKIAkJCW9tYXBfc2V0X2RtYV9kZXN0X3BhcmFtcyhlcC0+bGNoLAogCQkJCU9NQVBfRE1BX1BPUlRfVElQQiwKIAkJCQlPTUFQX0RNQV9BTU9ERV9DT05TVEFOVCwKLQkJCQkodW5zaWduZWQgbG9uZykgaW9fdjJwKCh1MzIpJlVEQ19EQVRBX0RNQV9SRUcpLAorCQkJCSh1bnNpZ25lZCBsb25nKSBpb192MnAoVURDX0RBVEFfRE1BKSwKIAkJCQkwLCAwKTsKIAkJfQogCX0gZWxzZSB7CkBAIC04MTMsMTIgKzc5OCwxMiBAQAogCQlzdGF0dXMgPSBvbWFwX3JlcXVlc3RfZG1hKGRtYV9jaGFubmVsLAogCQkJZXAtPmVwLm5hbWUsIGRtYV9lcnJvciwgZXAsICZlcC0+bGNoKTsKIAkJaWYgKHN0YXR1cyA9PSAwKSB7Ci0JCQlVRENfUlhETUFfQ0ZHX1JFRyA9IHJlZzsKKwkJCW9tYXBfd3JpdGV3KHJlZywgVURDX1JYRE1BX0NGRyk7CiAJCQkvKiBUSVBCICovCiAJCQlvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyhlcC0+bGNoLAogCQkJCU9NQVBfRE1BX1BPUlRfVElQQiwKIAkJCQlPTUFQX0RNQV9BTU9ERV9DT05TVEFOVCwKLQkJCQkodW5zaWduZWQgbG9uZykgaW9fdjJwKCh1MzIpJlVEQ19EQVRBX0RNQV9SRUcpLAorCQkJCSh1bnNpZ25lZCBsb25nKSBpb192MnAoVURDX0RBVEFfRE1BKSwKIAkJCQkwLCAwKTsKIAkJCS8qIEVNSUZGIG9yIFNEUkMgKi8KIAkJCW9tYXBfc2V0X2RtYV9kZXN0X2J1cnN0X21vZGUoZXAtPmxjaCwKQEAgLTgzNCw3ICs4MTksNyBAQAogCiAJCS8qIGNoYW5uZWwgdHlwZSBQOiBodyBzeW5jaCAoZmlmbykgKi8KIAkJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpICYmICFjcHVfaXNfb21hcDE1eHgoKSkKLQkJCU9NQVAxX0RNQV9MQ0hfQ1RSTF9SRUcoZXAtPmxjaCkgPSAyOworCQkJb21hcF9zZXRfZG1hX2NoYW5uZWxfbW9kZShlcC0+bGNoLCBPTUFQX0RNQV9MQ0hfUCk7CiAJfQogCiBqdXN0X3Jlc3RhcnQ6CkBAIC04NjAsNyArODQ1LDcgQEAKIAkJCShpc19pbiA/IHdyaXRlX2ZpZm8gOiByZWFkX2ZpZm8pKGVwLCByZXEpOwogCQkJZGVzZWxlY3RfZXAoKTsKIAkJCWlmICghaXNfaW4pIHsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCQl9CiAJCQkvKiBJTjogNiB3YWl0IHN0YXRlcyBiZWZvcmUgaXQnbGwgdHggKi8KQEAgLTg4MSw3ICs4NjYsNyBAQAogCWVsc2UKIAkJcmVxID0gTlVMTDsKIAotCWFjdGl2ZSA9ICgoMSA8PCA3KSAmIE9NQVBfRE1BX0NDUl9SRUcoZXAtPmxjaCkpICE9IDA7CisJYWN0aXZlID0gb21hcF9nZXRfZG1hX2FjdGl2ZV9zdGF0dXMoZXAtPmxjaCk7CiAKIAlEQkcoIiVzIHJlbGVhc2UgJXMgJWN4ZG1hJWQgJXBcbiIsIGVwLT5lcC5uYW1lLAogCQkJYWN0aXZlID8gImFjdGl2ZSIgOiAiaWRsZSIsCkBAIC04OTQsMjMgKzg3OSwyNSBAQAogCiAJLyogd2FpdCB0aWxsIGN1cnJlbnQgcGFja2V0IERNQSBmaW5pc2hlcywgYW5kIGZpZm8gZW1wdGllcyAqLwogCWlmIChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pIHsKLQkJVURDX1RYRE1BX0NGR19SRUcgPSAoVURDX1RYRE1BX0NGR19SRUcgJiB+bWFzaykgfCBVRENfRE1BX1JFUTsKKwkJb21hcF93cml0ZXcoKG9tYXBfcmVhZHcoVURDX1RYRE1BX0NGRykgJiB+bWFzaykgfCBVRENfRE1BX1JFUSwKKwkJCQkJVURDX1RYRE1BX0NGRyk7CiAKIAkJaWYgKHJlcSkgewogCQkJZmluaXNoX2luX2RtYShlcCwgcmVxLCAtRUNPTk5SRVNFVCk7CiAKIAkJCS8qIGNsZWFyIEZJRk87IGhvc3RzIHByb2JhYmx5IHdvbid0IGVtcHR5IGl0ICovCiAJCQl1c2VfZXAoZXAsIFVEQ19FUF9TRUwpOwotCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKIAkJCWRlc2VsZWN0X2VwKCk7CiAJCX0KLQkJd2hpbGUgKFVEQ19UWERNQV9DRkdfUkVHICYgbWFzaykKKwkJd2hpbGUgKG9tYXBfcmVhZHcoVURDX1RYRE1BX0NGRykgJiBtYXNrKQogCQkJdWRlbGF5KDEwKTsKIAl9IGVsc2UgewotCQlVRENfUlhETUFfQ0ZHX1JFRyA9IChVRENfUlhETUFfQ0ZHX1JFRyAmIH5tYXNrKSB8IFVEQ19ETUFfUkVROworCQlvbWFwX3dyaXRldygob21hcF9yZWFkdyhVRENfUlhETUFfQ0ZHKSAmIH5tYXNrKSB8IFVEQ19ETUFfUkVRLAorCQkJCQlVRENfUlhETUFfQ0ZHKTsKIAogCQkvKiBkbWEgZW1wdGllcyB0aGUgZmlmbyAqLwotCQl3aGlsZSAoVURDX1JYRE1BX0NGR19SRUcgJiBtYXNrKQorCQl3aGlsZSAob21hcF9yZWFkdyhVRENfUlhETUFfQ0ZHKSAmIG1hc2spCiAJCQl1ZGVsYXkoMTApOwogCQlpZiAocmVxKQogCQkJZmluaXNoX291dF9kbWEoZXAsIHJlcSwgLUVDT05OUkVTRVQsIDApOwpAQCAtOTk3LDkgKzk4NCwxMyBAQAogCXJlcS0+cmVxLmFjdHVhbCA9IDA7CiAKIAkvKiBtYXliZSBraWNrc3RhcnQgbm9uLWlzbyBpL28gcXVldWVzICovCi0JaWYgKGlzX2lzbykKLQkJVURDX0lSUV9FTl9SRUcgfD0gVURDX1NPRl9JRTsKLQllbHNlIGlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpICYmICFlcC0+c3RvcHBlZCAmJiAhZXAtPmFja3dhaXQpIHsKKwlpZiAoaXNfaXNvKSB7CisJCXUxNiB3OworCisJCXcgPSBvbWFwX3JlYWR3KFVEQ19JUlFfRU4pOworCQl3IHw9IFVEQ19TT0ZfSUU7CisJCW9tYXBfd3JpdGV3KHcsIFVEQ19JUlFfRU4pOworCX0gZWxzZSBpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSAmJiAhZXAtPnN0b3BwZWQgJiYgIWVwLT5hY2t3YWl0KSB7CiAJCWludAlpc19pbjsKIAogCQlpZiAoZXAtPmJFbmRwb2ludEFkZHJlc3MgPT0gMCkgewpAQCAtMTAxNywyMyArMTAwOCwyMyBAQAogCQkJCSAqIHJlcXVlc3RzIHRvIG5vbi1jb250cm9sIGVuZHBvaW50cwogCQkJCSAqLwogCQkJCWlmICh1ZGMtPmVwMF9zZXRfY29uZmlnKSB7Ci0JCQkJCXUxNglpcnFfZW4gPSBVRENfSVJRX0VOX1JFRzsKKwkJCQkJdTE2CWlycV9lbiA9IG9tYXBfcmVhZHcoVURDX0lSUV9FTik7CiAKIAkJCQkJaXJxX2VuIHw9IFVEQ19EU19DSEdfSUUgfCBVRENfRVAwX0lFOwogCQkJCQlpZiAoIXVkYy0+ZXAwX3Jlc2V0X2NvbmZpZykKIAkJCQkJCWlycV9lbiB8PSBVRENfRVBOX1JYX0lFCiAJCQkJCQkJfCBVRENfRVBOX1RYX0lFOwotCQkJCQlVRENfSVJRX0VOX1JFRyA9IGlycV9lbjsKKwkJCQkJb21hcF93cml0ZXcoaXJxX2VuLCBVRENfSVJRX0VOKTsKIAkJCQl9CiAKIAkJCQkvKiBTVEFUVVMgZm9yIHplcm8gbGVuZ3RoIERBVEEgc3RhZ2VzIGlzCiAJCQkJICogYWx3YXlzIGFuIElOIC4uLiBldmVuIGZvciBJTiB0cmFuc2ZlcnMsCiAJCQkJICogYSB3ZWlyZCBjYXNlIHdoaWNoIHNlZW0gdG8gc3RhbGwgT01BUC4KIAkJCQkgKi8KLQkJCQlVRENfRVBfTlVNX1JFRyA9IChVRENfRVBfU0VMfFVEQ19FUF9ESVIpOwotCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMIHwgVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CisJCQkJb21hcF93cml0ZXcoVURDX0NMUl9FUCwgVURDX0NUUkwpOworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCiAJCQkJLyogY2xlYW51cCAqLwogCQkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwpAQCAtMTA0MiwxMSArMTAzMywxMSBAQAogCiAJCQkvKiBub24tZW1wdHkgREFUQSBzdGFnZSAqLwogCQkJfSBlbHNlIGlmIChpc19pbikgewotCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTHxVRENfRVBfRElSOworCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwgfCBVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCX0gZWxzZSB7CiAJCQkJaWYgKHVkYy0+ZXAwX3NldHVwKQogCQkJCQlnb3RvIGlycV93YWl0OwotCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTDsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMLCBVRENfRVBfTlVNKTsKIAkJCX0KIAkJfSBlbHNlIHsKIAkJCWlzX2luID0gZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOOwpAQCAtMTA2Miw3ICsxMDUzLDcgQEAKIAkJCQlyZXEgPSBOVUxMOwogCQkJZGVzZWxlY3RfZXAoKTsKIAkJCWlmICghaXNfaW4pIHsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCQl9CiAJCQkvKiBJTjogNiB3YWl0IHN0YXRlcyBiZWZvcmUgaXQnbGwgdHggKi8KQEAgLTExMzAsOSArMTEyMSw5IEBACiAJCWVsc2UgaWYgKHZhbHVlKSB7CiAJCQlpZiAoZXAtPnVkYy0+ZXAwX3NldF9jb25maWcpIHsKIAkJCQlXQVJOKCJlcnJvciBjaGFuZ2luZyBjb25maWc/XG4iKTsKLQkJCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfQ0xSX0NGRzsKKwkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0NGRywgVURDX1NZU0NPTjIpOwogCQkJfQotCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX1NUQUxMX0NNRDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TVEFMTF9DTUQsIFVEQ19TWVNDT04yKTsKIAkJCWVwLT51ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJCXN0YXR1cyA9IDA7CiAJCX0gZWxzZSAvKiBOT1AgKi8KQEAgLTExNTksOCArMTE1MCw4IEBACiAJCQkJY2hhbm5lbCA9IDA7CiAKIAkJCXVzZV9lcChlcCwgVURDX0VQX1NFTCk7Ci0JCQlpZiAoVURDX1NUQVRfRkxHX1JFRyAmIFVEQ19OT05fSVNPX0ZJRk9fRU1QVFkpIHsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0hBTFQ7CisJCQlpZiAob21hcF9yZWFkdyhVRENfU1RBVF9GTEcpICYgVURDX05PTl9JU09fRklGT19FTVBUWSkgeworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfSEFMVCwgVURDX0NUUkwpOwogCQkJCXN0YXR1cyA9IDA7CiAJCQl9IGVsc2UKIAkJCQlzdGF0dXMgPSAtRUFHQUlOOwpAQCAtMTE3MCwxMCArMTE2MSwxMCBAQAogCQkJCWRtYV9jaGFubmVsX2NsYWltKGVwLCBjaGFubmVsKTsKIAkJfSBlbHNlIHsKIAkJCXVzZV9lcChlcCwgMCk7Ci0JCQlVRENfQ1RSTF9SRUcgPSBlcC0+dWRjLT5jbHJfaGFsdDsKKwkJCW9tYXBfd3JpdGV3KGVwLT51ZGMtPmNscl9oYWx0LCBVRENfQ1RSTCk7CiAJCQllcC0+YWNrd2FpdCA9IDA7CiAJCQlpZiAoIShlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pKSB7Ci0JCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOworCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQkJfQogCQl9CkBAIC0xMjA1LDcgKzExOTYsNyBAQAogCiBzdGF0aWMgaW50IG9tYXBfZ2V0X2ZyYW1lKHN0cnVjdCB1c2JfZ2FkZ2V0ICpnYWRnZXQpCiB7Ci0JdTE2CXNvZiA9IFVEQ19TT0ZfUkVHOworCXUxNglzb2YgPSBvbWFwX3JlYWR3KFVEQ19TT0YpOwogCXJldHVybiAoc29mICYgVURDX1RTX09LKSA/IChzb2YgJiBVRENfVFMpIDogLUVMMk5TWU5DOwogfQogCkBAIC0xMjI0LDcgKzEyMTUsNyBAQAogCQkgKi8KIAkJaWYgKHVkYy0+ZGV2c3RhdCAmIChVRENfQl9ITlBfRU5BQkxFfFVEQ19SX1dLX09LKSkgewogCQkJREJHKCJyZW1vdGUgd2FrZXVwLi4uXG4iKTsKLQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19STVRfV0tQOworCQkJb21hcF93cml0ZXcoVURDX1JNVF9XS1AsIFVEQ19TWVNDT04yKTsKIAkJCXJldHZhbCA9IDA7CiAJCX0KIApAQCAtMTI0NywxMiArMTIzOCwxMiBAQAogCiAJdWRjID0gY29udGFpbmVyX29mKGdhZGdldCwgc3RydWN0IG9tYXBfdWRjLCBnYWRnZXQpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKLQlzeXNjb24xID0gVURDX1NZU0NPTjFfUkVHOworCXN5c2NvbjEgPSBvbWFwX3JlYWR3KFVEQ19TWVNDT04xKTsKIAlpZiAoaXNfc2VsZnBvd2VyZWQpCiAJCXN5c2NvbjEgfD0gVURDX1NFTEZfUFdSOwogCWVsc2UKIAkJc3lzY29uMSAmPSB+VURDX1NFTEZfUFdSOwotCVVEQ19TWVNDT04xX1JFRyA9IHN5c2NvbjE7CisJb21hcF93cml0ZXcoc3lzY29uMSwgVURDX1NZU0NPTjEpOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnVkYy0+bG9jaywgZmxhZ3MpOwogCiAJcmV0dXJuIDA7CkBAIC0xMjY1LDE4ICsxMjU2LDM2IEBACiAKIHN0YXRpYyB2b2lkIHB1bGx1cF9lbmFibGUoc3RydWN0IG9tYXBfdWRjICp1ZGMpCiB7Ci0JVURDX1NZU0NPTjFfUkVHIHw9IFVEQ19QVUxMVVBfRU47Ci0JaWYgKCFnYWRnZXRfaXNfb3RnKCZ1ZGMtPmdhZGdldCkgJiYgIWNwdV9pc19vbWFwMTV4eCgpKQotCQlPVEdfQ1RSTF9SRUcgfD0gT1RHX0JTRVNTVkxEOwotCVVEQ19JUlFfRU5fUkVHID0gVURDX0RTX0NIR19JRTsKKwl1MTYgdzsKKworCXcgPSBvbWFwX3JlYWR3KFVEQ19TWVNDT04xKTsKKwl3IHw9IFVEQ19QVUxMVVBfRU47CisJb21hcF93cml0ZXcodywgVURDX1NZU0NPTjEpOworCWlmICghZ2FkZ2V0X2lzX290ZygmdWRjLT5nYWRnZXQpICYmICFjcHVfaXNfb21hcDE1eHgoKSkgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJCWwgfD0gT1RHX0JTRVNTVkxEOworCQlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CisJfQorCW9tYXBfd3JpdGV3KFVEQ19EU19DSEdfSUUsIFVEQ19JUlFfRU4pOwogfQogCiBzdGF0aWMgdm9pZCBwdWxsdXBfZGlzYWJsZShzdHJ1Y3Qgb21hcF91ZGMgKnVkYykKIHsKLQlpZiAoIWdhZGdldF9pc19vdGcoJnVkYy0+Z2FkZ2V0KSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpCi0JCU9UR19DVFJMX1JFRyAmPSB+T1RHX0JTRVNTVkxEOwotCVVEQ19JUlFfRU5fUkVHID0gVURDX0RTX0NIR19JRTsKLQlVRENfU1lTQ09OMV9SRUcgJj0gflVEQ19QVUxMVVBfRU47CisJdTE2IHc7CisKKwlpZiAoIWdhZGdldF9pc19vdGcoJnVkYy0+Z2FkZ2V0KSAmJiAhY3B1X2lzX29tYXAxNXh4KCkpIHsKKwkJdTMyIGw7CisKKwkJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCQlsICY9IH5PVEdfQlNFU1NWTEQ7CisJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwl9CisJb21hcF93cml0ZXcoVURDX0RTX0NIR19JRSwgVURDX0lSUV9FTik7CisJdyA9IG9tYXBfcmVhZHcoVURDX1NZU0NPTjEpOworCXcgJj0gflVEQ19QVUxMVVBfRU47CisJb21hcF93cml0ZXcodywgVURDX1NZU0NPTjEpOwogfQogCiBzdGF0aWMgc3RydWN0IG9tYXBfdWRjICp1ZGM7CkBAIC0xMzA0LDYgKzEzMTMsNyBAQAogewogCXN0cnVjdCBvbWFwX3VkYwkqdWRjOwogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7CisJdTMyIGw7CiAKIAl1ZGMgPSBjb250YWluZXJfb2YoZ2FkZ2V0LCBzdHJ1Y3Qgb21hcF91ZGMsIGdhZGdldCk7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVkYy0+bG9jaywgZmxhZ3MpOwpAQCAtMTMxMSwxMCArMTMyMSwxMiBAQAogCXVkYy0+dmJ1c19hY3RpdmUgPSAoaXNfYWN0aXZlICE9IDApOwogCWlmIChjcHVfaXNfb21hcDE1eHgoKSkgewogCQkvKiAic29mdHdhcmUiIGRldGVjdCwgaWdub3JlZCBpZiAhVkJVU19NT0RFXzE1MTAgKi8KKwkJbCA9IG9tYXBfcmVhZGwoRlVOQ19NVVhfQ1RSTF8wKTsKIAkJaWYgKGlzX2FjdGl2ZSkKLQkJCUZVTkNfTVVYX0NUUkxfMF9SRUcgfD0gVkJVU19DVFJMXzE1MTA7CisJCQlsIHw9IFZCVVNfQ1RSTF8xNTEwOwogCQllbHNlCi0JCQlGVU5DX01VWF9DVFJMXzBfUkVHICY9IH5WQlVTX0NUUkxfMTUxMDsKKwkJCWwgJj0gflZCVVNfQ1RSTF8xNTEwOworCQlvbWFwX3dyaXRlbChsLCBGVU5DX01VWF9DVFJMXzApOwogCX0KIAlpZiAodWRjLT5kY19jbGsgIT0gTlVMTCAmJiBpc19hY3RpdmUpIHsKIAkJaWYgKCF1ZGMtPmNsa19yZXF1ZXN0ZWQpIHsKQEAgLTEzODQsOSArMTM5Niw5IEBACiAJCWRtYV9jaGFubmVsX3JlbGVhc2UoZXApOwogCiAJdXNlX2VwKGVwLCAwKTsKLQlVRENfQ1RSTF9SRUcgPSBVRENfQ0xSX0VQOworCW9tYXBfd3JpdGV3KFVEQ19DTFJfRVAsIFVEQ19DVFJMKTsKIAlpZiAoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiYgZXAtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKQotCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0hBTFQ7CisJCW9tYXBfd3JpdGV3KFVEQ19TRVRfSEFMVCwgVURDX0NUUkwpOwogCiAJd2hpbGUgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CiAJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsIHN0cnVjdCBvbWFwX3JlcSwgcXVldWUpOwpAQCAtMTQxNCw4ICsxNDI2LDggQEAKIAlpZiAoIWdhZGdldF9pc19vdGcoJnVkYy0+Z2FkZ2V0KSkKIAkJcmV0dXJuOwogCi0JaWYgKE9UR19DVFJMX1JFRyAmIE9UR19JRCkKLQkJZGV2c3RhdCA9IFVEQ19ERVZTVEFUX1JFRzsKKwlpZiAob21hcF9yZWFkbChPVEdfQ1RSTCkgJiBPVEdfSUQpCisJCWRldnN0YXQgPSBvbWFwX3JlYWR3KFVEQ19ERVZTVEFUKTsKIAllbHNlCiAJCWRldnN0YXQgPSAwOwogCkBAIC0xNDI2LDkgKzE0MzgsMTQgQEAKIAkvKiBFbmFibGUgSE5QIGVhcmx5LCBhdm9pZGluZyByYWNlcyBvbiBzdXNwZW5kIGlycSBwYXRoLgogCSAqIEFTU1VNRVMgT1RHIHN0YXRlIG1hY2hpbmUgQl9CVVNfUkVRIGlucHV0IGlzIHRydWUuCiAJICovCi0JaWYgKHVkYy0+Z2FkZ2V0LmJfaG5wX2VuYWJsZSkKLQkJT1RHX0NUUkxfUkVHID0gKE9UR19DVFJMX1JFRyB8IE9UR19CX0hOUEVOIHwgT1RHX0JfQlVTUkVRKQotCQkJCSYgfk9UR19QVUxMVVA7CisJaWYgKHVkYy0+Z2FkZ2V0LmJfaG5wX2VuYWJsZSkgeworCQl1MzIgbDsKKworCQlsID0gb21hcF9yZWFkbChPVEdfQ1RSTCk7CisJCWwgfD0gT1RHX0JfSE5QRU4gfCBPVEdfQl9CVVNSRVE7CisJCWwgJj0gfk9UR19QVUxMVVA7CisJCW9tYXBfd3JpdGVsKGwsIE9UR19DVFJMKTsKKwl9CiB9CiAKIHN0YXRpYyB2b2lkIGVwMF9pcnEoc3RydWN0IG9tYXBfdWRjICp1ZGMsIHUxNiBpcnFfc3JjKQpAQCAtMTQ0Niw3ICsxNDYzLDcgQEAKIAogCQludWtlKGVwMCwgMCk7CiAJCWlmIChhY2spIHsKLQkJCVVEQ19JUlFfU1JDX1JFRyA9IGFjazsKKwkJCW9tYXBfd3JpdGV3KGFjaywgVURDX0lSUV9TUkMpOwogCQkJaXJxX3NyYyA9IFVEQ19TRVRVUDsKIAkJfQogCX0KQEAgLTE0NjYsOSArMTQ4Myw5IEBACiAJaWYgKGlycV9zcmMgJiBVRENfRVAwX1RYKSB7CiAJCWludAlzdGF0OwogCi0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19FUDBfVFg7Ci0JCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTHxVRENfRVBfRElSOwotCQlzdGF0ID0gVURDX1NUQVRfRkxHX1JFRzsKKwkJb21hcF93cml0ZXcoVURDX0VQMF9UWCwgVURDX0lSUV9TUkMpOworCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMfFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOworCQlzdGF0ID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCQlpZiAoc3RhdCAmIFVEQ19BQ0spIHsKIAkJCWlmICh1ZGMtPmVwMF9pbikgewogCQkJCS8qIHdyaXRlIG5leHQgSU4gcGFja2V0IGZyb20gcmVzcG9uc2UsCkBAIC0xNDc2LDI2ICsxNDkzLDI2IEBACiAJCQkJICovCiAJCQkJaWYgKHJlcSkKIAkJCQkJc3RhdCA9IHdyaXRlX2ZpZm8oZXAwLCByZXEpOwotCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCQlpZiAoIXJlcSAmJiB1ZGMtPmVwMF9wZW5kaW5nKSB7Ci0JCQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTDsKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJCQlVRENfRVBfTlVNX1JFRyA9IDA7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwsIFVEQ19FUF9OVU0pOworCQkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKIAkJCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCQkJfSAvKiBlbHNlOiAgNiB3YWl0IHN0YXRlcyBiZWZvcmUgaXQnbGwgdHggKi8KIAkJCX0gZWxzZSB7CiAJCQkJLyogYWNrIHN0YXR1cyBzdGFnZSBvZiBPVVQgdHJhbnNmZXIgKi8KLQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCQkJaWYgKHJlcSkKIAkJCQkJZG9uZShlcDAsIHJlcSwgMCk7CiAJCQl9CiAJCQlyZXEgPSBOVUxMOwogCQl9IGVsc2UgaWYgKHN0YXQgJiBVRENfU1RBTEwpIHsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfSEFMVDsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfSEFMVCwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCX0gZWxzZSB7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJfQogCX0KIApAQCAtMTUwMyw5ICsxNTIwLDkgQEAKIAlpZiAoaXJxX3NyYyAmIFVEQ19FUDBfUlgpIHsKIAkJaW50CXN0YXQ7CiAKLQkJVURDX0lSUV9TUkNfUkVHID0gVURDX0VQMF9SWDsKLQkJVURDX0VQX05VTV9SRUcgPSBVRENfRVBfU0VMOwotCQlzdGF0ID0gVURDX1NUQVRfRkxHX1JFRzsKKwkJb21hcF93cml0ZXcoVURDX0VQMF9SWCwgVURDX0lSUV9TUkMpOworCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMLCBVRENfRVBfTlVNKTsKKwkJc3RhdCA9IG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKTsKIAkJaWYgKHN0YXQgJiBVRENfQUNLKSB7CiAJCQlpZiAoIXVkYy0+ZXAwX2luKSB7CiAJCQkJc3RhdCA9IDA7CkBAIC0xNTEzLDM0ICsxNTMwLDM1IEBACiAJCQkJICogcmVhY3Rpdml0aW5nIHRoZSBmaWZvOyBzdGFsbCBvbiBlcnJvcnMuCiAJCQkJICovCiAJCQkJaWYgKCFyZXEgfHwgKHN0YXQgPSByZWFkX2ZpZm8oZXAwLCByZXEpKSA8IDApIHsKLQkJCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX1NUQUxMX0NNRDsKKwkJCQkJb21hcF93cml0ZXcoVURDX1NUQUxMX0NNRCwgVURDX1NZU0NPTjIpOwogCQkJCQl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAkJCQkJc3RhdCA9IDA7CiAJCQkJfSBlbHNlIGlmIChzdGF0ID09IDApCi0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCQlVRENfRVBfTlVNX1JFRyA9IDA7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOwogCiAJCQkJLyogYWN0aXZhdGUgc3RhdHVzIHN0YWdlICovCiAJCQkJaWYgKHN0YXQgPT0gMSkgewogCQkJCQlkb25lKGVwMCwgcmVxLCAwKTsKIAkJCQkJLyogdGhhdCBtYXkgaGF2ZSBTVEFMTGVkIGVwMC4uLiAqLwotCQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUx8VURDX0VQX0RJUjsKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKLQkJCQkJVURDX0NUUkxfUkVHID0gVURDX1NFVF9GSUZPX0VOOwotCQkJCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUwgfCBVRENfRVBfRElSLAorCQkJCQkJCVVEQ19FUF9OVU0pOworCQkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CisJCQkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOworCQkJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCQkJfQogCQkJfSBlbHNlIHsKIAkJCQkvKiBhY2sgc3RhdHVzIHN0YWdlIG9mIElOIHRyYW5zZmVyICovCi0JCQkJVURDX0VQX05VTV9SRUcgPSAwOworCQkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOwogCQkJCWlmIChyZXEpCiAJCQkJCWRvbmUoZXAwLCByZXEsIDApOwogCQkJfQogCQl9IGVsc2UgaWYgKHN0YXQgJiBVRENfU1RBTEwpIHsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfSEFMVDsKLQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19DTFJfSEFMVCwgVURDX0NUUkwpOworCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CiAJCX0gZWxzZSB7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IDA7CisJCQlvbWFwX3dyaXRldygwLCBVRENfRVBfTlVNKTsKIAkJfQogCX0KIApAQCAtMTU1NSwxNCArMTU3MywxNCBAQAogCiAJCS8qIHJlYWQgdGhlIChsYXRlc3QpIFNFVFVQIG1lc3NhZ2UgKi8KIAkJZG8gewotCQkJVURDX0VQX05VTV9SRUcgPSBVRENfU0VUVVBfU0VMOworCQkJb21hcF93cml0ZXcoVURDX1NFVFVQX1NFTCwgVURDX0VQX05VTSk7CiAJCQkvKiB0d28gYnl0ZXMgYXQgYSB0aW1lICovCi0JCQl1LndvcmRbMF0gPSBVRENfREFUQV9SRUc7Ci0JCQl1LndvcmRbMV0gPSBVRENfREFUQV9SRUc7Ci0JCQl1LndvcmRbMl0gPSBVRENfREFUQV9SRUc7Ci0JCQl1LndvcmRbM10gPSBVRENfREFUQV9SRUc7Ci0JCQlVRENfRVBfTlVNX1JFRyA9IDA7Ci0JCX0gd2hpbGUgKFVEQ19JUlFfU1JDX1JFRyAmIFVEQ19TRVRVUCk7CisJCQl1LndvcmRbMF0gPSBvbWFwX3JlYWR3KFVEQ19EQVRBKTsKKwkJCXUud29yZFsxXSA9IG9tYXBfcmVhZHcoVURDX0RBVEEpOworCQkJdS53b3JkWzJdID0gb21hcF9yZWFkdyhVRENfREFUQSk7CisJCQl1LndvcmRbM10gPSBvbWFwX3JlYWR3KFVEQ19EQVRBKTsKKwkJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9OVU0pOworCQl9IHdoaWxlIChvbWFwX3JlYWR3KFVEQ19JUlFfU1JDKSAmIFVEQ19TRVRVUCk7CiAKICNkZWZpbmUJd192YWx1ZQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSkKICNkZWZpbmUJd19pbmRleAkJbGUxNl90b19jcHUodS5yLndJbmRleCkKQEAgLTE1OTMsOSArMTYxMSw5IEBACiAJCQkgKiBsYXRlciBpZiBpdCBmYWlscyB0aGUgcmVxdWVzdC4KIAkJCSAqLwogCQkJaWYgKHVkYy0+ZXAwX3Jlc2V0X2NvbmZpZykKLQkJCQlVRENfU1lTQ09OMl9SRUcgPSBVRENfQ0xSX0NGRzsKKwkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0NGRywgVURDX1NZU0NPTjIpOwogCQkJZWxzZQotCQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19ERVZfQ0ZHOworCQkJCW9tYXBfd3JpdGV3KFVEQ19ERVZfQ0ZHLCBVRENfU1lTQ09OMik7CiAJCQl1cGRhdGVfb3RnKHVkYyk7CiAJCQlnb3RvIGRlbGVnYXRlOwogCQljYXNlIFVTQl9SRVFfQ0xFQVJfRkVBVFVSRToKQEAgLTE2MTMsMTAgKzE2MzEsMTAgQEAKIAkJCQkJCXx8ICFlcC0+ZGVzYykKIAkJCQkJZ290byBkb19zdGFsbDsKIAkJCQl1c2VfZXAoZXAsIDApOwotCQkJCVVEQ19DVFJMX1JFRyA9IHVkYy0+Y2xyX2hhbHQ7CisJCQkJb21hcF93cml0ZXcodWRjLT5jbHJfaGFsdCwgVURDX0NUUkwpOwogCQkJCWVwLT5hY2t3YWl0ID0gMDsKIAkJCQlpZiAoIShlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pKSB7Ci0JCQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQkJCX0KIAkJCQkvKiBOT1RFOiAgYXNzdW1lcyB0aGUgaG9zdCBiZWhhdmVzIHNhbmVseSwKQEAgLTE2NDksMTUgKzE2NjcsMTUgQEAKIAkJCX0KIAkJCXVzZV9lcChlcCwgMCk7CiAJCQkvKiBjYW4ndCBoYWx0IGlmIGZpZm8gaXNuJ3QgZW1wdHkuLi4gKi8KLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19DTFJfRVA7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0hBTFQ7CisJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldyhVRENfU0VUX0hBTFQsIFVEQ19DVFJMKTsKIAkJCVZEQkcoIiVzIGhhbHRlZCBieSBob3N0XG4iLCBlcC0+bmFtZSk7CiBlcDBvdXRfc3RhdHVzX3N0YWdlOgogCQkJc3RhdHVzID0gMDsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX1NFTHxVRENfRVBfRElSOwotCQkJVURDX0NUUkxfUkVHID0gVURDX0NMUl9FUDsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKLQkJCVVEQ19FUF9OVU1fUkVHID0gVURDX0VQX0RJUjsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9TRUx8VURDX0VQX0RJUiwgVURDX0VQX05VTSk7CisJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0VQLCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOwogCQkJdWRjLT5lcDBfcGVuZGluZyA9IDA7CiAJCQlicmVhazsKIAkJY2FzZSBVU0JfUkVRX0dFVF9TVEFUVVM6CkBAIC0xNjk0LDEwICsxNzEyLDEwIEBACiAKIHplcm9fc3RhdHVzOgogCQkJLyogcmV0dXJuIHR3byB6ZXJvIGJ5dGVzICovCi0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9TRUx8VURDX0VQX0RJUjsKLQkJCVVEQ19EQVRBX1JFRyA9IDA7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47Ci0JCQlVRENfRVBfTlVNX1JFRyA9IFVEQ19FUF9ESVI7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfU0VMfFVEQ19FUF9ESVIsIFVEQ19FUF9OVU0pOworCQkJb21hcF93cml0ZXcoMCwgVURDX0RBVEEpOworCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CisJCQlvbWFwX3dyaXRldyhVRENfRVBfRElSLCBVRENfRVBfTlVNKTsKIAkJCXN0YXR1cyA9IDA7CiAJCQlWREJHKCJHRVRfU1RBVFVTLCBpbnRlcmZhY2UgJWRcbiIsIHdfaW5kZXgpOwogCQkJLyogbmV4dCwgc3RhdHVzIHN0YWdlICovCkBAIC0xNzA2LDggKzE3MjQsOCBAQAogZGVsZWdhdGU6CiAJCQkvKiBhY3RpdmF0ZSB0aGUgZXAwb3V0IGZpZm8gcmlnaHQgYXdheSAqLwogCQkJaWYgKCF1ZGMtPmVwMF9pbiAmJiB3X2xlbmd0aCkgewotCQkJCVVEQ19FUF9OVU1fUkVHID0gMDsKLQkJCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQkJb21hcF93cml0ZXcoMCwgVURDX0VQX05VTSk7CisJCQkJb21hcF93cml0ZXcoVURDX1NFVF9GSUZPX0VOLCBVRENfQ1RSTCk7CiAJCQl9CiAKIAkJCS8qIGdhZGdldCBkcml2ZXJzIHNlZSBjbGFzcy92ZW5kb3Igc3BlY2lmaWMgcmVxdWVzdHMsCkBAIC0xNzQ4LDkgKzE3NjYsOSBAQAogCQkJCWlmICh1ZGMtPmVwMF9yZXNldF9jb25maWcpCiAJCQkJCVdBUk4oImVycm9yIHJlc2V0dGluZyBjb25maWc/XG4iKTsKIAkJCQllbHNlCi0JCQkJCVVEQ19TWVNDT04yX1JFRyA9IFVEQ19DTFJfQ0ZHOworCQkJCQlvbWFwX3dyaXRldyhVRENfQ0xSX0NGRywgVURDX1NZU0NPTjIpOwogCQkJfQotCQkJVURDX1NZU0NPTjJfUkVHID0gVURDX1NUQUxMX0NNRDsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TVEFMTF9DTUQsIFVEQ19TWVNDT04yKTsKIAkJCXVkYy0+ZXAwX3BlbmRpbmcgPSAwOwogCQl9CiAJfQpAQCAtMTc2NCw3ICsxNzgyLDcgQEAKIHsKIAl1MTYJZGV2c3RhdCwgY2hhbmdlOwogCi0JZGV2c3RhdCA9IFVEQ19ERVZTVEFUX1JFRzsKKwlkZXZzdGF0ID0gb21hcF9yZWFkdyhVRENfREVWU1RBVCk7CiAJY2hhbmdlID0gZGV2c3RhdCBeIHVkYy0+ZGV2c3RhdDsKIAl1ZGMtPmRldnN0YXQgPSBkZXZzdGF0OwogCkBAIC0xODA0LDcgKzE4MjIsOCBAQAogCQkJCUlORk8oIlVTQiByZXNldCBkb25lLCBnYWRnZXQgJXNcbiIsCiAJCQkJCXVkYy0+ZHJpdmVyLT5kcml2ZXIubmFtZSk7CiAJCQkJLyogZXAwIHRyYWZmaWMgaXMgbGVnYWwgZnJvbSBub3cgb24gKi8KLQkJCQlVRENfSVJRX0VOX1JFRyA9IFVEQ19EU19DSEdfSUUgfCBVRENfRVAwX0lFOworCQkJCW9tYXBfd3JpdGV3KFVEQ19EU19DSEdfSUUgfCBVRENfRVAwX0lFLAorCQkJCQkJVURDX0lSUV9FTik7CiAJCQl9CiAJCQljaGFuZ2UgJj0gflVEQ19VU0JfUkVTRVQ7CiAJCX0KQEAgLTE4NDgsNyArMTg2Nyw3IEBACiAJCVZEQkcoImRldnN0YXQgJTAzeCwgaWdub3JlIGNoYW5nZSAlMDN4XG4iLAogCQkJZGV2c3RhdCwgIGNoYW5nZSk7CiAKLQlVRENfSVJRX1NSQ19SRUcgPSBVRENfRFNfQ0hHOworCW9tYXBfd3JpdGV3KFVEQ19EU19DSEcsIFVEQ19JUlFfU1JDKTsKIH0KIAogc3RhdGljIGlycXJldHVybl90IG9tYXBfdWRjX2lycShpbnQgaXJxLCB2b2lkICpfdWRjKQpAQCAtMTg1OSw3ICsxODc4LDcgQEAKIAl1bnNpZ25lZCBsb25nCWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVkYy0+bG9jaywgZmxhZ3MpOwotCWlycV9zcmMgPSBVRENfSVJRX1NSQ19SRUc7CisJaXJxX3NyYyA9IG9tYXBfcmVhZHcoVURDX0lSUV9TUkMpOwogCiAJLyogRGV2aWNlIHN0YXRlIGNoYW5nZSAodXNiIGNoOSBzdHVmZikgKi8KIAlpZiAoaXJxX3NyYyAmIFVEQ19EU19DSEcpIHsKQEAgLTE4ODIsNyArMTkwMSw3IEBACiAJCWlycV9zcmMgJj0gfihVRENfVFhOX0RPTkV8VURDX1JYTl9DTlR8VURDX1JYTl9FT1QpOwogCX0KIAotCWlycV9zcmMgJj0gfihVRENfU09GfFVEQ19FUE5fVFh8VURDX0VQTl9SWCk7CisJaXJxX3NyYyAmPSB+KFVEQ19JUlFfU09GIHwgVURDX0VQTl9UWHxVRENfRVBOX1JYKTsKIAlpZiAoaXJxX3NyYykKIAkJREJHKCJ1ZGNfaXJxLCB1bmhhbmRsZWQgJTAzeFxuIiwgaXJxX3NyYyk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdWRjLT5sb2NrLCBmbGFncyk7CkBAIC0xOTAzLDcgKzE5MjIsNyBAQAogCXNwaW5fbG9ja19pcnFzYXZlKCZlcC0+dWRjLT5sb2NrLCBmbGFncyk7CiAJaWYgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpICYmIGVwLT5hY2t3YWl0KSB7CiAJCXVzZV9lcChlcCwgVURDX0VQX1NFTCk7Ci0JCXN0YXRfZmxnID0gVURDX1NUQVRfRkxHX1JFRzsKKwkJc3RhdF9mbGcgPSBvbWFwX3JlYWR3KFVEQ19TVEFUX0ZMRyk7CiAKIAkJaWYgKChzdGF0X2ZsZyAmIFVEQ19BQ0spICYmICghKHN0YXRfZmxnICYgVURDX0ZJRk9fRU4pCiAJCQkJfHwgKGVwLT5kb3VibGVfYnVmICYmIEhBTEZfRlVMTChzdGF0X2ZsZykpKSkgewpAQCAtMTkxMyw4ICsxOTMyLDggQEAKIAkJCXJlcSA9IGNvbnRhaW5lcl9vZihlcC0+cXVldWUubmV4dCwKIAkJCQkJc3RydWN0IG9tYXBfcmVxLCBxdWV1ZSk7CiAJCQkodm9pZCkgcmVhZF9maWZvKGVwLCByZXEpOwotCQkJVURDX0VQX05VTV9SRUcgPSBlcC0+YkVuZHBvaW50QWRkcmVzczsKLQkJCVVEQ19DVFJMX1JFRyA9IFVEQ19TRVRfRklGT19FTjsKKwkJCW9tYXBfd3JpdGV3KGVwLT5iRW5kcG9pbnRBZGRyZXNzLCBVRENfRVBfTlVNKTsKKwkJCW9tYXBfd3JpdGV3KFVEQ19TRVRfRklGT19FTiwgVURDX0NUUkwpOwogCQkJZXAtPmFja3dhaXQgPSAxICsgZXAtPmRvdWJsZV9idWY7CiAJCX0gZWxzZQogCQkJZGVzZWxlY3RfZXAoKTsKQEAgLTE5MzQsMjAgKzE5NTMsMjAgQEAKIAl1bnNpZ25lZCBsb25nCWZsYWdzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVkYy0+bG9jaywgZmxhZ3MpOwotCWVwbl9zdGF0ID0gVURDX0VQTl9TVEFUX1JFRzsKLQlpcnFfc3JjID0gVURDX0lSUV9TUkNfUkVHOworCWVwbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRVBOX1NUQVQpOworCWlycV9zcmMgPSBvbWFwX3JlYWR3KFVEQ19JUlFfU1JDKTsKIAogCS8qIGhhbmRsZSBPVVQgZmlyc3QsIHRvIGF2b2lkIHNvbWUgd2FzdGVmdWwgTkFLcyAqLwogCWlmIChpcnFfc3JjICYgVURDX0VQTl9SWCkgewogCQllcG51bSA9IChlcG5fc3RhdCA+PiA4KSAmIDB4MGY7Ci0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19FUE5fUlg7CisJCW9tYXBfd3JpdGV3KFVEQ19FUE5fUlgsIFVEQ19JUlFfU1JDKTsKIAkJc3RhdHVzID0gSVJRX0hBTkRMRUQ7CiAJCWVwID0gJnVkYy0+ZXBbZXBudW1dOwogCQllcC0+aXJxcysrOwogCi0JCVVEQ19FUF9OVU1fUkVHID0gZXBudW0gfCBVRENfRVBfU0VMOworCQlvbWFwX3dyaXRldyhlcG51bSB8IFVEQ19FUF9TRUwsIFVEQ19FUF9OVU0pOwogCQllcC0+Zm5mID0gMDsKLQkJaWYgKChVRENfU1RBVF9GTEdfUkVHICYgVURDX0FDSykpIHsKKwkJaWYgKG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKSAmIFVEQ19BQ0spIHsKIAkJCWVwLT5hY2t3YWl0LS07CiAJCQlpZiAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKIAkJCQlpbnQgc3RhdDsKQEAgLTE5NTksMTUgKzE5NzgsMTUgQEAKIAkJCX0KIAkJfQogCQkvKiBtaW4gNiBjbG9jayBkZWxheSBiZWZvcmUgY2xlYXJpbmcgRVBfU0VMIC4uLiAqLwotCQllcG5fc3RhdCA9IFVEQ19FUE5fU1RBVF9SRUc7Ci0JCWVwbl9zdGF0ID0gVURDX0VQTl9TVEFUX1JFRzsKLQkJVURDX0VQX05VTV9SRUcgPSBlcG51bTsKKwkJZXBuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19FUE5fU1RBVCk7CisJCWVwbl9zdGF0ID0gb21hcF9yZWFkdyhVRENfRVBOX1NUQVQpOworCQlvbWFwX3dyaXRldyhlcG51bSwgVURDX0VQX05VTSk7CiAKIAkJLyogZW5hYmxpbmcgZmlmbyBfYWZ0ZXJfIGNsZWFyaW5nIEFDSywgY29udHJhcnkgdG8gZG9jcywKIAkJICogcmVkdWNlcyBsb3NzYWdlOyB0aW1lciBzdGlsbCBuZWVkZWQgdGhvdWdoIChzaWdoKS4KIAkJICovCiAJCWlmIChlcC0+Zm5mKSB7Ci0JCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0ZJRk9fRU47CisJCQlvbWFwX3dyaXRldyhVRENfU0VUX0ZJRk9fRU4sIFVEQ19DVFJMKTsKIAkJCWVwLT5hY2t3YWl0ID0gMSArIGVwLT5kb3VibGVfYnVmOwogCQl9CiAJCW1vZF90aW1lcigmZXAtPnRpbWVyLCBQSU9fT1VUX1RJTUVPVVQpOwpAQCAtMTk3NiwxMyArMTk5NSwxMyBAQAogCS8qIHRoZW4gSU4gdHJhbnNmZXJzICovCiAJZWxzZSBpZiAoaXJxX3NyYyAmIFVEQ19FUE5fVFgpIHsKIAkJZXBudW0gPSBlcG5fc3RhdCAmIDB4MGY7Ci0JCVVEQ19JUlFfU1JDX1JFRyA9IFVEQ19FUE5fVFg7CisJCW9tYXBfd3JpdGV3KFVEQ19FUE5fVFgsIFVEQ19JUlFfU1JDKTsKIAkJc3RhdHVzID0gSVJRX0hBTkRMRUQ7CiAJCWVwID0gJnVkYy0+ZXBbMTYgKyBlcG51bV07CiAJCWVwLT5pcnFzKys7CiAKLQkJVURDX0VQX05VTV9SRUcgPSBlcG51bSB8IFVEQ19FUF9ESVIgfCBVRENfRVBfU0VMOwotCQlpZiAoKFVEQ19TVEFUX0ZMR19SRUcgJiBVRENfQUNLKSkgeworCQlvbWFwX3dyaXRldyhlcG51bSB8IFVEQ19FUF9ESVIgfCBVRENfRVBfU0VMLCBVRENfRVBfTlVNKTsKKwkJaWYgKG9tYXBfcmVhZHcoVURDX1NUQVRfRkxHKSAmIFVEQ19BQ0spIHsKIAkJCWVwLT5hY2t3YWl0ID0gMDsKIAkJCWlmICghbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgewogCQkJCXJlcSA9IGNvbnRhaW5lcl9vZihlcC0+cXVldWUubmV4dCwKQEAgLTE5OTEsOSArMjAxMCw5IEBACiAJCQl9CiAJCX0KIAkJLyogbWluIDYgY2xvY2sgZGVsYXkgYmVmb3JlIGNsZWFyaW5nIEVQX1NFTCAuLi4gKi8KLQkJZXBuX3N0YXQgPSBVRENfRVBOX1NUQVRfUkVHOwotCQllcG5fc3RhdCA9IFVEQ19FUE5fU1RBVF9SRUc7Ci0JCVVEQ19FUF9OVU1fUkVHID0gZXBudW0gfCBVRENfRVBfRElSOworCQllcG5fc3RhdCA9IG9tYXBfcmVhZHcoVURDX0VQTl9TVEFUKTsKKwkJZXBuX3N0YXQgPSBvbWFwX3JlYWR3KFVEQ19FUE5fU1RBVCk7CisJCW9tYXBfd3JpdGV3KGVwbnVtIHwgVURDX0VQX0RJUiwgVURDX0VQX05VTSk7CiAJCS8qIHRoZW4gNiBjbG9ja3MgYmVmb3JlIGl0J2QgdHggKi8KIAl9CiAKQEAgLTIwMjEsNyArMjA0MCw3IEBACiAJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsIHN0cnVjdCBvbWFwX3JlcSwgcXVldWUpOwogCiAJCXVzZV9lcChlcCwgVURDX0VQX1NFTCk7Ci0JCXN0YXQgPSBVRENfU1RBVF9GTEdfUkVHOworCQlzdGF0ID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCiAJCS8qIE5PVEU6IGxpa2UgdGhlIG90aGVyIGNvbnRyb2xsZXIgZHJpdmVycywgdGhpcyBpc24ndAogCQkgKiBjdXJyZW50bHkgcmVwb3J0aW5nIGxvc3Qgb3IgZGFtYWdlZCBmcmFtZXMuCkBAIC0yMDUzLDkgKzIwNzIsMTQgQEAKIAkJaWYgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKQogCQkJcGVuZGluZyA9IDE7CiAJfQotCWlmICghcGVuZGluZykKLQkJVURDX0lSUV9FTl9SRUcgJj0gflVEQ19TT0ZfSUU7Ci0JVURDX0lSUV9TUkNfUkVHID0gVURDX1NPRjsKKwlpZiAoIXBlbmRpbmcpIHsKKwkJdTE2IHc7CisKKwkJdyA9IG9tYXBfcmVhZHcoVURDX0lSUV9FTik7CisJCXcgJj0gflVEQ19TT0ZfSUU7CisJCW9tYXBfd3JpdGV3KHcsIFVEQ19JUlFfRU4pOworCX0KKwlvbWFwX3dyaXRldyhVRENfSVJRX1NPRiwgVURDX0lSUV9TUkMpOwogCiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdWRjLT5sb2NrLCBmbGFncyk7CiAJcmV0dXJuIElSUV9IQU5ETEVEOwpAQCAtMjEwNCw3ICsyMTI4LDcgQEAKIAkJaWYgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykKIAkJCWNvbnRpbnVlOwogCQl1c2VfZXAoZXAsIDApOwotCQlVRENfQ1RSTF9SRUcgPSBVRENfU0VUX0hBTFQ7CisJCW9tYXBfd3JpdGV3KFVEQ19TRVRfSEFMVCwgVURDX0NUUkwpOwogCX0KIAl1ZGMtPmVwMF9wZW5kaW5nID0gMDsKIAl1ZGMtPmVwWzBdLmlycXMgPSAwOwpAQCAtMjEyOCw3ICsyMTUyLDcgQEAKIAl9CiAJREJHKCJib3VuZCB0byBkcml2ZXIgJXNcbiIsIGRyaXZlci0+ZHJpdmVyLm5hbWUpOwogCi0JVURDX0lSUV9TUkNfUkVHID0gVURDX0lSUV9TUkNfTUFTSzsKKwlvbWFwX3dyaXRldyhVRENfSVJRX1NSQ19NQVNLLCBVRENfSVJRX1NSQyk7CiAKIAkvKiBjb25uZWN0IHRvIGJ1cyB0aHJvdWdoIHRyYW5zY2VpdmVyICovCiAJaWYgKHVkYy0+dHJhbnNjZWl2ZXIpIHsKQEAgLTIyMjUsNyArMjI0OSw3IEBACiAJZWxzZQogCQlidWZbMF0gPSAwOwogCi0Jc3RhdF9mbGcgPSBVRENfU1RBVF9GTEdfUkVHOworCXN0YXRfZmxnID0gb21hcF9yZWFkdyhVRENfU1RBVF9GTEcpOwogCXNlcV9wcmludGYocywKIAkJIlxuJXMgJXMlcyVzaXJxcyAlbGQgc3RhdCAlMDR4ICIgRUlHSFRCSVRTIEZPVVJCSVRTICIlc1xuIiwKIAkJZXAtPm5hbWUsIGJ1ZiwKQEAgLTIyOTIsMTEgKzIzMTYsMTEgQEAKIAkJdHJhbnMgPSBDT05UUk9MX0RFVkNPTkZfUkVHOwogCX0gZWxzZSB7CiAJCWN0cmxfbmFtZSA9ICJ0cmFuY2VpdmVyX2N0cmwiOwotCQl0cmFucyA9IFVTQl9UUkFOU0NFSVZFUl9DVFJMX1JFRzsKKwkJdHJhbnMgPSBvbWFwX3JlYWR3KFVTQl9UUkFOU0NFSVZFUl9DVFJMKTsKIAl9CiAJc2VxX3ByaW50ZihzLCAiXG5PVEcgcmV2ICVkLiVkLCAlcyAlMDV4XG4iLAogCQl0bXAgPj4gNCwgdG1wICYgMHhmLCBjdHJsX25hbWUsIHRyYW5zKTsKLQl0bXAgPSBPVEdfU1lTQ09OXzFfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoT1RHX1NZU0NPTl8xKTsKIAlzZXFfcHJpbnRmKHMsICJvdGdfc3lzY29uMSAlMDh4IHVzYjIgJXMsIHVzYjEgJXMsIHVzYjAgJXMsIgogCQkJRk9VUkJJVFMgIlxuIiwgdG1wLAogCQl0cnhfbW9kZShVU0IyX1RSWF9NT0RFKHRtcCksIHRyYW5zICYgQ09ORl9VU0IyX1VOSV9SKSwKQEAgLTIzMDgsNyArMjMzMiw3IEBACiAJCSh0bXAgJiBIU1RfSURMRV9FTikgPyAiICFob3N0IiA6ICIiLAogCQkodG1wICYgREVWX0lETEVfRU4pID8gIiAhZGV2IiA6ICIiLAogCQkodG1wICYgT1RHX1JFU0VUX0RPTkUpID8gIiByZXNldF9kb25lIiA6ICIgcmVzZXRfYWN0aXZlIik7Ci0JdG1wID0gT1RHX1NZU0NPTl8yX1JFRzsKKwl0bXAgPSBvbWFwX3JlYWRsKE9UR19TWVNDT05fMik7CiAJc2VxX3ByaW50ZihzLCAib3RnX3N5c2NvbjIgJTA4eCVzIiBFSUdIVEJJVFMKIAkJCSIgYl9hc2VfYnJzdD0lZCBobWM9JWRcbiIsIHRtcCwKIAkJKHRtcCAmIE9UR19FTikgPyAiIG90Z19lbiIgOiAiIiwKQEAgLTIzMjMsNyArMjM0Nyw3IEBACiAJCSh0bXAgJiBITUNfVExMQVRUQUNIKSA/ICIgdGxsYXR0YWNoIiA6ICIiLAogCQlCX0FTRV9CUlNUKHRtcCksCiAJCU9UR19ITUModG1wKSk7Ci0JdG1wID0gT1RHX0NUUkxfUkVHOworCXRtcCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOwogCXNlcV9wcmludGYocywgIm90Z19jdHJsICAgICUwNngiIEVJR0hUQklUUyBFSUdIVEJJVFMgIiVzXG4iLCB0bXAsCiAJCSh0bXAgJiBPVEdfQVNFU1NWTEQpID8gIiBhc2VzcyIgOiAiIiwKIAkJKHRtcCAmIE9UR19CU0VTU0VORCkgPyAiIGJzZXNzX2VuZCIgOiAiIiwKQEAgLTIzNDMsMTMgKzIzNjcsMTMgQEAKIAkJKHRtcCAmIE9UR19QVV9WQlVTKSA/ICIgcHVfdmIiIDogIiIsCiAJCSh0bXAgJiBPVEdfUFVfSUQpID8gIiBwdV9pZCIgOiAiIgogCQkpOwotCXRtcCA9IE9UR19JUlFfRU5fUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoT1RHX0lSUV9FTik7CiAJc2VxX3ByaW50ZihzLCAib3RnX2lycV9lbiAgJTA0eCIgIlxuIiwgdG1wKTsKLQl0bXAgPSBPVEdfSVJRX1NSQ19SRUc7CisJdG1wID0gb21hcF9yZWFkdyhPVEdfSVJRX1NSQyk7CiAJc2VxX3ByaW50ZihzLCAib3RnX2lycV9zcmMgJTA0eCIgIlxuIiwgdG1wKTsKLQl0bXAgPSBPVEdfT1VUQ1RSTF9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhPVEdfT1VUQ1RSTCk7CiAJc2VxX3ByaW50ZihzLCAib3RnX291dGN0cmwgJTA0eCIgIlxuIiwgdG1wKTsKLQl0bXAgPSBPVEdfVEVTVF9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhPVEdfVEVTVCk7CiAJc2VxX3ByaW50ZihzLCAib3RnX3Rlc3QgICAgJTA0eCIgIlxuIiwgdG1wKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTIzNzAsNyArMjM5NCw3IEBACiAJCWRyaXZlcl9kZXNjLAogCQl1c2VfZG1hID8gICIgKGRtYSkiIDogIiIpOwogCi0JdG1wID0gVURDX1JFVl9SRUcgJiAweGZmOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX1JFVikgJiAweGZmOwogCXNlcV9wcmludGYocywKIAkJIlVEQyByZXYgJWQuJWQsIGZpZm8gbW9kZSAlZCwgZ2FkZ2V0ICVzXG4iCiAJCSJobWMgJWQsIHRyYW5zY2VpdmVyICVzXG4iLApAQCAtMjM4NCwxNiArMjQwOCwxNiBAQAogCQkJCT8gImV4dGVybmFsIiA6ICIobm9uZSkiKSk7CiAJaWYgKGNwdV9jbGFzc19pc19vbWFwMSgpKSB7CiAJCXNlcV9wcmludGYocywgIlVMUEQgY29udHJvbCAlMDR4IHJlcSAlMDR4IHN0YXR1cyAlMDR4XG4iLAotCQkJX19SRUcxNihVTFBEX0NMT0NLX0NUUkwpLAotCQkJX19SRUcxNihVTFBEX1NPRlRfUkVRKSwKLQkJCV9fUkVHMTYoVUxQRF9TVEFUVVNfUkVRKSk7CisJCQlvbWFwX3JlYWR3KFVMUERfQ0xPQ0tfQ1RSTCksCisJCQlvbWFwX3JlYWR3KFVMUERfU09GVF9SRVEpLAorCQkJb21hcF9yZWFkdyhVTFBEX1NUQVRVU19SRVEpKTsKIAl9CiAKIAkvKiBPVEcgY29udHJvbGxlciByZWdpc3RlcnMgKi8KIAlpZiAoIWNwdV9pc19vbWFwMTV4eCgpKQogCQlwcm9jX290Z19zaG93KHMpOwogCi0JdG1wID0gVURDX1NZU0NPTjFfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX1NZU0NPTjEpOwogCXNlcV9wcmludGYocywgIlxuc3lzY29uMSAgICAgJTA0eCIgRUlHSFRCSVRTICJcbiIsIHRtcCwKIAkJKHRtcCAmIFVEQ19DRkdfTE9DSykgPyAiIGNmZ19sb2NrIiA6ICIiLAogCQkodG1wICYgVURDX0RBVEFfRU5ESUFOKSA/ICIgZGF0YV9lbmRpYW4iIDogIiIsCkBAIC0yNDEyLDcgKzI0MzYsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQl0bXAgPSBVRENfREVWU1RBVF9SRUc7CisJdG1wID0gb21hcF9yZWFkdyhVRENfREVWU1RBVCk7CiAJc2VxX3ByaW50ZihzLCAiZGV2c3RhdCAgICAgJTA0eCIgRUlHSFRCSVRTICIlcyVzXG4iLCB0bXAsCiAJCSh0bXAgJiBVRENfQl9ITlBfRU5BQkxFKSA/ICIgYl9obnAiIDogIiIsCiAJCSh0bXAgJiBVRENfQV9ITlBfU1VQUE9SVCkgPyAiIGFfaG5wIiA6ICIiLApAQCAtMjQyNCwyMCArMjQ0OCwyMCBAQAogCQkodG1wICYgVURDX0FERCkgPyAiIEFERCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19ERUYpID8gIiBERUYiIDogIiIsCiAJCSh0bXAgJiBVRENfQVRUKSA/ICIgQVRUIiA6ICIiKTsKLQlzZXFfcHJpbnRmKHMsICJzb2YgICAgICAgICAlMDR4XG4iLCBVRENfU09GX1JFRyk7Ci0JdG1wID0gVURDX0lSUV9FTl9SRUc7CisJc2VxX3ByaW50ZihzLCAic29mICAgICAgICAgJTA0eFxuIiwgb21hcF9yZWFkdyhVRENfU09GKSk7CisJdG1wID0gb21hcF9yZWFkdyhVRENfSVJRX0VOKTsKIAlzZXFfcHJpbnRmKHMsICJpcnFfZW4gICAgICAlMDR4IiBGT1VSQklUUyAiJXNcbiIsIHRtcCwKIAkJKHRtcCAmIFVEQ19TT0ZfSUUpID8gIiBzb2YiIDogIiIsCiAJCSh0bXAgJiBVRENfRVBOX1JYX0lFKSA/ICIgZXBuX3J4IiA6ICIiLAogCQkodG1wICYgVURDX0VQTl9UWF9JRSkgPyAiIGVwbl90eCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19EU19DSEdfSUUpID8gIiBkc19jaGciIDogIiIsCiAJCSh0bXAgJiBVRENfRVAwX0lFKSA/ICIgZXAwIiA6ICIiKTsKLQl0bXAgPSBVRENfSVJRX1NSQ19SRUc7CisJdG1wID0gb21hcF9yZWFkdyhVRENfSVJRX1NSQyk7CiAJc2VxX3ByaW50ZihzLCAiaXJxX3NyYyAgICAgJTA0eCIgRUlHSFRCSVRTICIlcyVzXG4iLCB0bXAsCiAJCSh0bXAgJiBVRENfVFhOX0RPTkUpID8gIiB0eG5fZG9uZSIgOiAiIiwKIAkJKHRtcCAmIFVEQ19SWE5fQ05UKSA/ICIgcnhuX2NudCIgOiAiIiwKIAkJKHRtcCAmIFVEQ19SWE5fRU9UKSA/ICIgcnhuX2VvdCIgOiAiIiwKLQkJKHRtcCAmIFVEQ19TT0YpID8gIiBzb2YiIDogIiIsCisJCSh0bXAgJiBVRENfSVJRX1NPRikgPyAiIHNvZiIgOiAiIiwKIAkJKHRtcCAmIFVEQ19FUE5fUlgpID8gIiBlcG5fcngiIDogIiIsCiAJCSh0bXAgJiBVRENfRVBOX1RYKSA/ICIgZXBuX3R4IiA6ICIiLAogCQkodG1wICYgVURDX0RTX0NIRykgPyAiIGRzX2NoZyIgOiAiIiwKQEAgLTI0NDcsNyArMjQ3MSw3IEBACiAJaWYgKHVzZV9kbWEpIHsKIAkJdW5zaWduZWQgaTsKIAotCQl0bXAgPSBVRENfRE1BX0lSUV9FTl9SRUc7CisJCXRtcCA9IG9tYXBfcmVhZHcoVURDX0RNQV9JUlFfRU4pOwogCQlzZXFfcHJpbnRmKHMsICJkbWFfaXJxX2VuICAlMDR4JXMiIEVJR0hUQklUUyAiXG4iLCB0bXAsCiAJCQkodG1wICYgVURDX1RYX0RPTkVfSUUoMykpID8gIiB0eDJfZG9uZSIgOiAiIiwKIAkJCSh0bXAgJiBVRENfUlhfQ05UX0lFKDMpKSA/ICIgcngyX2NudCIgOiAiIiwKQEAgLTI0NjEsMjkgKzI0ODUsMjkgQEAKIAkJCSh0bXAgJiBVRENfUlhfQ05UX0lFKDEpKSA/ICIgcngwX2NudCIgOiAiIiwKIAkJCSh0bXAgJiBVRENfUlhfRU9UX0lFKDEpKSA/ICIgcngwX2VvdCIgOiAiIik7CiAKLQkJdG1wID0gVURDX1JYRE1BX0NGR19SRUc7CisJCXRtcCA9IG9tYXBfcmVhZHcoVURDX1JYRE1BX0NGRyk7CiAJCXNlcV9wcmludGYocywgInJ4ZG1hX2NmZyAgICUwNHhcbiIsIHRtcCk7CiAJCWlmICh0bXApIHsKIAkJCWZvciAoaSA9IDA7IGkgPCAzOyBpKyspIHsKIAkJCQlpZiAoKHRtcCAmICgweDBmIDw8IChpICogNCkpKSA9PSAwKQogCQkJCQljb250aW51ZTsKIAkJCQlzZXFfcHJpbnRmKHMsICJyeGRtYVslZF0gICAgJTA0eFxuIiwgaSwKLQkJCQkJCVVEQ19SWERNQV9SRUcoaSArIDEpKTsKKwkJCQkJCW9tYXBfcmVhZHcoVURDX1JYRE1BKGkgKyAxKSkpOwogCQkJfQogCQl9Ci0JCXRtcCA9IFVEQ19UWERNQV9DRkdfUkVHOworCQl0bXAgPSBvbWFwX3JlYWR3KFVEQ19UWERNQV9DRkcpOwogCQlzZXFfcHJpbnRmKHMsICJ0eGRtYV9jZmcgICAlMDR4XG4iLCB0bXApOwogCQlpZiAodG1wKSB7CiAJCQlmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKSB7CiAJCQkJaWYgKCEodG1wICYgKDB4MGYgPDwgKGkgKiA0KSkpKQogCQkJCQljb250aW51ZTsKIAkJCQlzZXFfcHJpbnRmKHMsICJ0eGRtYVslZF0gICAgJTA0eFxuIiwgaSwKLQkJCQkJCVVEQ19UWERNQV9SRUcoaSArIDEpKTsKKwkJCQkJCW9tYXBfcmVhZHcoVURDX1RYRE1BKGkgKyAxKSkpOwogCQkJfQogCQl9CiAJfQogCi0JdG1wID0gVURDX0RFVlNUQVRfUkVHOworCXRtcCA9IG9tYXBfcmVhZHcoVURDX0RFVlNUQVQpOwogCWlmICh0bXAgJiBVRENfQVRUKSB7CiAJCXByb2NfZXBfc2hvdyhzLCAmdWRjLT5lcFswXSk7CiAJCWlmICh0bXAgJiBVRENfQUREKSB7CkBAIC0yNTM1LDcgKzI1NTksNyBAQAogICogYnVmZmVyIHNwYWNlIGFtb25nIHRoZSBlbmRwb2ludHMgd2UnbGwgYmUgb3BlcmF0aW5nLgogICoKICAqIE5PVEU6IGFzIG9mIE9NQVAgMTcxMCBFUzIuMCwgd3JpdGluZyBhIG5ldyBlbmRwb2ludCBjb25maWcgd2hlbgotICogVURDX1NZU0NPTl8xX1JFRy5DRkdfTE9DSyBpcyBzZXQgY2FuIG5vdyB3b3JrLiAgV2Ugd29uJ3QgdXNlIHRoYXQKKyAqIFVEQ19TWVNDT05fMS5DRkdfTE9DSyBpcyBzZXQgY2FuIG5vdyB3b3JrLiAgV2Ugd29uJ3QgdXNlIHRoYXQKICAqIGNhcGFiaWxpdHkgeWV0IHRob3VnaC4KICAqLwogc3RhdGljIHVuc2lnbmVkIF9faW5pdApAQCAtMjU5Nyw5ICsyNjIxLDkgQEAKIAkJbmFtZSwgYWRkciwgZXBuX3J4dHgsIG1heHAsIGRidWYgPyAieDIiIDogIiIsIGJ1Zik7CiAKIAlpZiAoYWRkciAmIFVTQl9ESVJfSU4pCi0JCVVEQ19FUF9UWF9SRUcoYWRkciAmIDB4ZikgPSBlcG5fcnh0eDsKKwkJb21hcF93cml0ZXcoZXBuX3J4dHgsIFVEQ19FUF9UWChhZGRyICYgMHhmKSk7CiAJZWxzZQotCQlVRENfRVBfUlhfUkVHKGFkZHIpID0gZXBuX3J4dHg7CisJCW9tYXBfd3JpdGV3KGVwbl9yeHR4LCBVRENfRVBfUlgoYWRkcikpOwogCiAJLyogbmV4dCBlbmRwb2ludCdzIGJ1ZmZlciBzdGFydHMgYWZ0ZXIgdGhpcyBvbmUncyAqLwogCWJ1ZiArPSBtYXhwOwpAQCAtMjYzOCwxNSArMjY2MiwxNSBAQAogCXVuc2lnbmVkCXRtcCwgYnVmOwogCiAJLyogYWJvbGlzaCBhbnkgcHJldmlvdXMgaGFyZHdhcmUgc3RhdGUgKi8KLQlVRENfU1lTQ09OMV9SRUcgPSAwOwotCVVEQ19JUlFfRU5fUkVHID0gMDsKLQlVRENfSVJRX1NSQ19SRUcgPSBVRENfSVJRX1NSQ19NQVNLOwotCVVEQ19ETUFfSVJRX0VOX1JFRyA9IDA7Ci0JVURDX1JYRE1BX0NGR19SRUcgPSAwOwotCVVEQ19UWERNQV9DRkdfUkVHID0gMDsKKwlvbWFwX3dyaXRldygwLCBVRENfU1lTQ09OMSk7CisJb21hcF93cml0ZXcoMCwgVURDX0lSUV9FTik7CisJb21hcF93cml0ZXcoVURDX0lSUV9TUkNfTUFTSywgVURDX0lSUV9TUkMpOworCW9tYXBfd3JpdGV3KDAsIFVEQ19ETUFfSVJRX0VOKTsKKwlvbWFwX3dyaXRldygwLCBVRENfUlhETUFfQ0ZHKTsKKwlvbWFwX3dyaXRldygwLCBVRENfVFhETUFfQ0ZHKTsKIAogCS8qIFVEQ19QVUxMVVBfRU4gZ2F0ZXMgdGhlIGNoaXAgY2xvY2sgKi8KLQkvLyBPVEdfU1lTQ09OXzFfUkVHIHw9IERFVl9JRExFX0VOOworCS8vIE9UR19TWVNDT05fMSB8PSBERVZfSURMRV9FTjsKIAogCXVkYyA9IGt6YWxsb2Moc2l6ZW9mKCp1ZGMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXVkYykKQEAgLTI2NzcsOCArMjcwMSw4IEBACiAKIAkvKiBpbml0aWFsbHkgZGlzYWJsZSBhbGwgbm9uLWVwMCBlbmRwb2ludHMgKi8KIAlmb3IgKHRtcCA9IDE7IHRtcCA8IDE1OyB0bXArKykgewotCQlVRENfRVBfUlhfUkVHKHRtcCkgPSAwOwotCQlVRENfRVBfVFhfUkVHKHRtcCkgPSAwOworCQlvbWFwX3dyaXRldygwLCBVRENfRVBfUlgodG1wKSk7CisJCW9tYXBfd3JpdGV3KDAsIFVEQ19FUF9UWCh0bXApKTsKIAl9CiAKICNkZWZpbmUgT01BUF9CVUxLX0VQKG5hbWUsYWRkcikgXApAQCAtMjc2Myw3ICsyNzg3LDcgQEAKIAkJRVJSKCJ1bnN1cHBvcnRlZCBmaWZvX21vZGUgIyVkXG4iLCBmaWZvX21vZGUpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9Ci0JVURDX1NZU0NPTjFfUkVHID0gVURDX0NGR19MT0NLfFVEQ19TRUxGX1BXUjsKKwlvbWFwX3dyaXRldyhVRENfQ0ZHX0xPQ0t8VURDX1NFTEZfUFdSLCBVRENfU1lTQ09OMSk7CiAJSU5GTygiZmlmbyBtb2RlICVkLCAlZCBieXRlcyBub3QgdXNlZFxuIiwgZmlmb19tb2RlLCAyMDQ4IC0gYnVmKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTI4MDcsNyArMjgzMSw3IEBACiAJfQogCiAJSU5GTygiT01BUCBVREMgcmV2ICVkLiVkJXNcbiIsCi0JCVVEQ19SRVZfUkVHID4+IDQsIFVEQ19SRVZfUkVHICYgMHhmLAorCQlvbWFwX3JlYWR3KFVEQ19SRVYpID4+IDQsIG9tYXBfcmVhZHcoVURDX1JFVikgJiAweGYsCiAJCWNvbmZpZy0+b3RnID8gIiwgTWluaS1BQiIgOiAiIik7CiAKIAkvKiB1c2UgdGhlIG1vZGUgZ2l2ZW4gdG8gdXMgYnkgYm9hcmQgaW5pdCBjb2RlICovCkBAIC0yODIyLDEyICsyODQ2LDEyIEBACiAJCQkgKiBrbm93IHdoZW4gdG8gdHVybiBQVUxMVVBfRU4gb24vb2ZmOyBhbmQgdGhhdAogCQkJICogbWVhbnMgd2UgYWx3YXlzICJuZWVkIiB0aGUgNDhNSHogY2xvY2suCiAJCQkgKi8KLQkJCXUzMiB0bXAgPSBGVU5DX01VWF9DVFJMXzBfUkVHOwotCi0JCQlGVU5DX01VWF9DVFJMXzBfUkVHICY9IH5WQlVTX0NUUkxfMTUxMDsKKwkJCXUzMiB0bXAgPSBvbWFwX3JlYWRsKEZVTkNfTVVYX0NUUkxfMCk7CisJCQl0bXAgJj0gflZCVVNfQ1RSTF8xNTEwOworCQkJb21hcF93cml0ZWwodG1wLCBGVU5DX01VWF9DVFJMXzApOwogCQkJdG1wIHw9IFZCVVNfTU9ERV8xNTEwOwogCQkJdG1wICY9IH5WQlVTX0NUUkxfMTUxMDsKLQkJCUZVTkNfTVVYX0NUUkxfMF9SRUcgPSB0bXA7CisJCQlvbWFwX3dyaXRlbCh0bXAsIEZVTkNfTVVYX0NUUkxfMCk7CiAJCX0KIAl9IGVsc2UgewogCQkvKiBUaGUgdHJhbnNjZWl2ZXIgbWF5IHBhY2thZ2Ugc29tZSBHUElPIGxvZ2ljIG9yIGhhbmRsZQpAQCAtMjkwNyw3ICsyOTMxLDcgQEAKICNlbmRpZgogCiAJLyogc3RhcnRpbmcgd2l0aCBvbWFwMTcxMCBlczIuMCwgY2xlYXIgdG9nZ2xlIGlzIGEgc2VwYXJhdGUgYml0ICovCi0JaWYgKFVEQ19SRVZfUkVHID49IDB4NjEpCisJaWYgKG9tYXBfcmVhZHcoVURDX1JFVikgPj0gMHg2MSkKIAkJdWRjLT5jbHJfaGFsdCA9IFVEQ19SRVNFVF9FUCB8IFVEQ19DTFJEQVRBX1RPR0dMRTsKIAllbHNlCiAJCXVkYy0+Y2xyX2hhbHQgPSBVRENfUkVTRVRfRVA7CkBAIC0zMDA1LDcgKzMwMjksNyBAQAogCQlwdXRfZGV2aWNlKHVkYy0+dHJhbnNjZWl2ZXItPmRldik7CiAJCXVkYy0+dHJhbnNjZWl2ZXIgPSBOVUxMOwogCX0KLQlVRENfU1lTQ09OMV9SRUcgPSAwOworCW9tYXBfd3JpdGV3KDAsIFVEQ19TWVNDT04xKTsKIAogCXJlbW92ZV9wcm9jX2ZpbGUoKTsKIApAQCAtMzAzNiw3ICszMDYwLDcgQEAKICAqCiAgKiBSRVZJU0lUIHdlIHNob3VsZCBwcm9iYWJseSByZWplY3Qgc3VzcGVuZCByZXF1ZXN0cyB3aGVuIHRoZXJlJ3MgYSBob3N0CiAgKiBzZXNzaW9uIGFjdGl2ZSwgcmF0aGVyIHRoYW4gZGlzY29ubmVjdGluZywgYXQgbGVhc3Qgb24gYm9hcmRzIHRoYXQgY2FuCi0gKiByZXBvcnQgVkJVUyBpcnFzIChVRENfREVWU1RBVF9SRUcuVURDX0FUVCkuICBBbmQgaW4gYW55IGNhc2UsIHdlIG5lZWQgdG8KKyAqIHJlcG9ydCBWQlVTIGlycXMgKFVEQ19ERVZTVEFULlVEQ19BVFQpLiAgQW5kIGluIGFueSBjYXNlLCB3ZSBuZWVkIHRvCiAgKiBtYWtlIGhvc3QgcmVzdW1lcyBhbmQgVkJVUyBkZXRlY3Rpb24gdHJpZ2dlciBPTUFQIHdha2V1cCBldmVudHM7IHRoYXQKICAqIG1heSBpbnZvbHZlIHRhbGtpbmcgdG8gYW4gZXh0ZXJuYWwgdHJhbnNjZWl2ZXIgKGUuZy4gaXNwMTMwMSkuCiAgKi8KQEAgLTMwNDUsNyArMzA2OSw3IEBACiB7CiAJdTMyCWRldnN0YXQ7CiAKLQlkZXZzdGF0ID0gVURDX0RFVlNUQVRfUkVHOworCWRldnN0YXQgPSBvbWFwX3JlYWR3KFVEQ19ERVZTVEFUKTsKIAogCS8qIHdlJ3JlIHJlcXVlc3RpbmcgNDggTUh6IGNsb2NrIGlmIHRoZSBwdWxsdXAgaXMgZW5hYmxlZAogCSAqICg9PSB3ZSdyZSBhdHRhY2hlZCB0byB0aGUgaG9zdCkgYW5kIHdlJ3JlIG5vdCBzdXNwZW5kZWQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvb21hcF91ZGMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5oCmluZGV4IGM2YjljYmMuLjg1MjJiYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5oCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9vbWFwX3VkYy5oCkBAIC04LDIzICs4LDIyIEBACiAvKgogICogVVNCIGRldmljZS9lbmRwb2ludCBtYW5hZ2VtZW50IHJlZ2lzdGVycwogICovCi0jZGVmaW5lIFVEQ19SRUcob2Zmc2V0KSAgICAgICAgICAgICAgX19SRUcxNihVRENfQkFTRSArIChvZmZzZXQpKQogCi0jZGVmaW5lCVVEQ19SRVZfUkVHCQkJVURDX1JFRygweDApCS8qIFJldmlzaW9uICovCi0jZGVmaW5lCVVEQ19FUF9OVU1fUkVHCQkJVURDX1JFRygweDQpCS8qIFdoaWNoIGVuZHBvaW50ICovCisjZGVmaW5lCVVEQ19SRVYJCQkJKFVEQ19CQVNFICsgMHgwKQkvKiBSZXZpc2lvbiAqLworI2RlZmluZQlVRENfRVBfTlVNCQkJKFVEQ19CQVNFICsgMHg0KQkvKiBXaGljaCBlbmRwb2ludCAqLwogIwlkZWZpbmUJVURDX1NFVFVQX1NFTAkJKDEgPDwgNikKICMJZGVmaW5lCVVEQ19FUF9TRUwJCSgxIDw8IDUpCiAjCWRlZmluZQlVRENfRVBfRElSCQkoMSA8PCA0KQogCS8qIGxvdyA0IGJpdHMgZm9yIGVuZHBvaW50IG51bWJlciAqLwotI2RlZmluZQlVRENfREFUQV9SRUcJCQlVRENfUkVHKDB4MDgpCS8qIEVuZHBvaW50IEZJRk8gKi8KLSNkZWZpbmUJVURDX0NUUkxfUkVHCQkJVURDX1JFRygweDBDKQkvKiBFbmRwb2ludCBjb250cm9sICovCisjZGVmaW5lCVVEQ19EQVRBCQkJKFVEQ19CQVNFICsgMHgwOCkJLyogRW5kcG9pbnQgRklGTyAqLworI2RlZmluZQlVRENfQ1RSTAkJCShVRENfQkFTRSArIDB4MEMpCS8qIEVuZHBvaW50IGNvbnRyb2wgKi8KICMJZGVmaW5lCVVEQ19DTFJfSEFMVAkJKDEgPDwgNykKICMJZGVmaW5lCVVEQ19TRVRfSEFMVAkJKDEgPDwgNikKICMJZGVmaW5lCVVEQ19DTFJEQVRBX1RPR0dMRQkoMSA8PCAzKQogIwlkZWZpbmUJVURDX1NFVF9GSUZPX0VOCQkoMSA8PCAyKQogIwlkZWZpbmUJVURDX0NMUl9FUAkJKDEgPDwgMSkKICMJZGVmaW5lCVVEQ19SRVNFVF9FUAkJKDEgPDwgMCkKLSNkZWZpbmUJVURDX1NUQVRfRkxHX1JFRwkJVURDX1JFRygweDEwKQkvKiBFbmRwb2ludCBzdGF0dXMgKi8KKyNkZWZpbmUJVURDX1NUQVRfRkxHCQkJKFVEQ19CQVNFICsgMHgxMCkJLyogRW5kcG9pbnQgc3RhdHVzICovCiAjCWRlZmluZQlVRENfTk9fUlhQQUNLRVQJCSgxIDw8IDE1KQogIwlkZWZpbmUJVURDX01JU1NfSU4JCSgxIDw8IDE0KQogIwlkZWZpbmUJVURDX0RBVEFfRkxVU0gJCSgxIDw8IDEzKQpAQCAtMzgsOCArMzcsOCBAQAogIwlkZWZpbmUJVURDX0ZJRk9fRU4JCSgxIDw8IDIpCiAjCWRlZmluZQlVRENfTk9OX0lTT19GSUZPX0VNUFRZCSgxIDw8IDEpCiAjCWRlZmluZQlVRENfTk9OX0lTT19GSUZPX0ZVTEwJKDEgPDwgMCkKLSNkZWZpbmUJVURDX1JYRlNUQVRfUkVHCQkJVURDX1JFRygweDE0KQkvKiBPVVQgYnl0ZWNvdW50ICovCi0jZGVmaW5lCVVEQ19TWVNDT04xX1JFRwkJCVVEQ19SRUcoMHgxOCkJLyogU3lzdGVtIGNvbmZpZyAxICovCisjZGVmaW5lCVVEQ19SWEZTVEFUCQkJKFVEQ19CQVNFICsgMHgxNCkJLyogT1VUIGJ5dGVjb3VudCAqLworI2RlZmluZQlVRENfU1lTQ09OMQkJCShVRENfQkFTRSArIDB4MTgpCS8qIFN5c3RlbSBjb25maWcgMSAqLwogIwlkZWZpbmUJVURDX0NGR19MT0NLCQkoMSA8PCA4KQogIwlkZWZpbmUJVURDX0RBVEFfRU5ESUFOCQkoMSA8PCA3KQogIwlkZWZpbmUJVURDX0RNQV9FTkRJQU4JCSgxIDw8IDYpCkBAIC00OCwxMiArNDcsMTIgQEAKICMJZGVmaW5lCVVEQ19TRUxGX1BXUgkJKDEgPDwgMikKICMJZGVmaW5lCVVEQ19TT0ZGX0RJUwkJKDEgPDwgMSkKICMJZGVmaW5lCVVEQ19QVUxMVVBfRU4JCSgxIDw8IDApCi0jZGVmaW5lCVVEQ19TWVNDT04yX1JFRwkJCVVEQ19SRUcoMHgxQykJLyogU3lzdGVtIGNvbmZpZyAyICovCisjZGVmaW5lCVVEQ19TWVNDT04yCQkJKFVEQ19CQVNFICsgMHgxQykJLyogU3lzdGVtIGNvbmZpZyAyICovCiAjCWRlZmluZQlVRENfUk1UX1dLUAkJKDEgPDwgNikKICMJZGVmaW5lCVVEQ19TVEFMTF9DTUQJCSgxIDw8IDUpCiAjCWRlZmluZQlVRENfREVWX0NGRwkJKDEgPDwgMykKICMJZGVmaW5lCVVEQ19DTFJfQ0ZHCQkoMSA8PCAyKQotI2RlZmluZQlVRENfREVWU1RBVF9SRUcJCQlVRENfUkVHKDB4MjApCS8qIERldmljZSBzdGF0dXMgKi8KKyNkZWZpbmUJVURDX0RFVlNUQVQJCQkoVURDX0JBU0UgKyAweDIwKQkvKiBEZXZpY2Ugc3RhdHVzICovCiAjCWRlZmluZQlVRENfQl9ITlBfRU5BQkxFCSgxIDw8IDkpCiAjCWRlZmluZQlVRENfQV9ITlBfU1VQUE9SVAkoMSA8PCA4KQogIwlkZWZpbmUJVURDX0FfQUxUX0hOUF9TVVBQT1JUCSgxIDw8IDcpCkBAIC02NCwyNiArNjMsMjYgQEAKICMJZGVmaW5lCVVEQ19BREQJCQkoMSA8PCAyKQogIwlkZWZpbmUJVURDX0RFRgkJCSgxIDw8IDEpCiAjCWRlZmluZQlVRENfQVRUCQkJKDEgPDwgMCkKLSNkZWZpbmUJVURDX1NPRl9SRUcJCQlVRENfUkVHKDB4MjQpCS8qIFN0YXJ0IG9mIGZyYW1lICovCisjZGVmaW5lCVVEQ19TT0YJCQkJKFVEQ19CQVNFICsgMHgyNCkJLyogU3RhcnQgb2YgZnJhbWUgKi8KICMJZGVmaW5lCVVEQ19GVF9MT0NLCQkoMSA8PCAxMikKICMJZGVmaW5lCVVEQ19UU19PSwkJKDEgPDwgMTEpCiAjCWRlZmluZQlVRENfVFMJCQkweDAzZmYKLSNkZWZpbmUJVURDX0lSUV9FTl9SRUcJCQlVRENfUkVHKDB4MjgpCS8qIEludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUJVURDX0lSUV9FTgkJCShVRENfQkFTRSArIDB4MjgpCS8qIEludGVycnVwdCBlbmFibGUgKi8KICMJZGVmaW5lCVVEQ19TT0ZfSUUJCSgxIDw8IDcpCiAjCWRlZmluZQlVRENfRVBOX1JYX0lFCQkoMSA8PCA1KQogIwlkZWZpbmUJVURDX0VQTl9UWF9JRQkJKDEgPDwgNCkKICMJZGVmaW5lCVVEQ19EU19DSEdfSUUJCSgxIDw8IDMpCiAjCWRlZmluZQlVRENfRVAwX0lFCQkoMSA8PCAwKQotI2RlZmluZQlVRENfRE1BX0lSUV9FTl9SRUcJCVVEQ19SRUcoMHgyQykJLyogRE1BIGlycSBlbmFibGUgKi8KKyNkZWZpbmUJVURDX0RNQV9JUlFfRU4JCQkoVURDX0JBU0UgKyAweDJDKQkvKiBETUEgaXJxIGVuYWJsZSAqLwogCS8qIHJ4L3R4IGRtYSBjaGFubmVscyBudW1iZXJlZCAxLTMgbm90IDAtMiAqLwogIwlkZWZpbmUJVURDX1RYX0RPTkVfSUUobikJKDEgPDwgKDQgKiAobikgLSAyKSkKICMJZGVmaW5lCVVEQ19SWF9DTlRfSUUobikJKDEgPDwgKDQgKiAobikgLSAzKSkKICMJZGVmaW5lCVVEQ19SWF9FT1RfSUUobikJKDEgPDwgKDQgKiAobikgLSA0KSkKLSNkZWZpbmUJVURDX0lSUV9TUkNfUkVHCQkJVURDX1JFRygweDMwKQkvKiBJbnRlcnJ1cHQgc291cmNlICovCisjZGVmaW5lCVVEQ19JUlFfU1JDCQkJKFVEQ19CQVNFICsgMHgzMCkJLyogSW50ZXJydXB0IHNvdXJjZSAqLwogIwlkZWZpbmUJVURDX1RYTl9ET05FCQkoMSA8PCAxMCkKICMJZGVmaW5lCVVEQ19SWE5fQ05UCQkoMSA8PCA5KQogIwlkZWZpbmUJVURDX1JYTl9FT1QJCSgxIDw8IDgpCi0jCWRlZmluZQlVRENfU09GCQkJKDEgPDwgNykKKyMJZGVmaW5lCVVEQ19JUlFfU09GCQkoMSA8PCA3KQogIwlkZWZpbmUJVURDX0VQTl9SWAkJKDEgPDwgNSkKICMJZGVmaW5lCVVEQ19FUE5fVFgJCSgxIDw8IDQpCiAjCWRlZmluZQlVRENfRFNfQ0hHCQkoMSA8PCAzKQpAQCAtOTEsNDEgKzkwLDQxIEBACiAjCWRlZmluZQlVRENfRVAwX1JYCQkoMSA8PCAxKQogIwlkZWZpbmUJVURDX0VQMF9UWAkJKDEgPDwgMCkKICMJZGVmaW5lCVVEQ19JUlFfU1JDX01BU0sJMHg3YmYKLSNkZWZpbmUJVURDX0VQTl9TVEFUX1JFRwkJVURDX1JFRygweDM0KQkvKiBFUCBpcnEgc3RhdHVzICovCi0jZGVmaW5lCVVEQ19ETUFOX1NUQVRfUkVHCQlVRENfUkVHKDB4MzgpCS8qIERNQSBpcnEgc3RhdHVzICovCisjZGVmaW5lCVVEQ19FUE5fU1RBVAkJCShVRENfQkFTRSArIDB4MzQpCS8qIEVQIGlycSBzdGF0dXMgKi8KKyNkZWZpbmUJVURDX0RNQU5fU1RBVAkJCShVRENfQkFTRSArIDB4MzgpCS8qIERNQSBpcnEgc3RhdHVzICovCiAjCWRlZmluZQlVRENfRE1BX1JYX1NCCQkoMSA8PCAxMikKICMJZGVmaW5lCVVEQ19ETUFfUlhfU1JDKHgpCSgoKHgpPj44KSAmIDB4ZikKICMJZGVmaW5lCVVEQ19ETUFfVFhfU1JDKHgpCSgoKHgpPj4wKSAmIDB4ZikKIAogCiAvKiBETUEgY29uZmlndXJhdGlvbiByZWdpc3RlcnM6ICB1cCB0byB0aHJlZSBjaGFubmVscyBpbiBlYWNoIGRpcmVjdGlvbi4gICovCi0jZGVmaW5lCVVEQ19SWERNQV9DRkdfUkVHCQlVRENfUkVHKDB4NDApCS8qIDMgZXBzIGZvciBSWCBETUEgKi8KKyNkZWZpbmUJVURDX1JYRE1BX0NGRwkJCShVRENfQkFTRSArIDB4NDApCS8qIDMgZXBzIGZvciBSWCBETUEgKi8KICMJZGVmaW5lCVVEQ19ETUFfUkVRCQkoMSA8PCAxMikKLSNkZWZpbmUJVURDX1RYRE1BX0NGR19SRUcJCVVEQ19SRUcoMHg0NCkJLyogMyBlcHMgZm9yIFRYIERNQSAqLwotI2RlZmluZQlVRENfREFUQV9ETUFfUkVHCQlVRENfUkVHKDB4NDgpCS8qIHJ4L3R4IGZpZm8gYWRkciAqLworI2RlZmluZQlVRENfVFhETUFfQ0ZHCQkJKFVEQ19CQVNFICsgMHg0NCkJLyogMyBlcHMgZm9yIFRYIERNQSAqLworI2RlZmluZQlVRENfREFUQV9ETUEJCQkoVURDX0JBU0UgKyAweDQ4KQkvKiByeC90eCBmaWZvIGFkZHIgKi8KIAogLyogcngvdHggZG1hIGNvbnRyb2wsIG51bWJlcmluZyBjaGFubmVscyAxLTMgbm90IDAtMiAqLwotI2RlZmluZQlVRENfVFhETUFfUkVHKGNoYW4pCQlVRENfUkVHKDB4NTAgLSA0ICsgNCAqIChjaGFuKSkKKyNkZWZpbmUJVURDX1RYRE1BKGNoYW4pCQkJKFVEQ19CQVNFICsgMHg1MCAtIDQgKyA0ICogKGNoYW4pKQogIwlkZWZpbmUgVURDX1RYTl9FT1QJCSgxIDw8IDE1KQkvKiBieXRlcyB2cyBwYWNrZXRzICovCiAjCWRlZmluZSBVRENfVFhOX1NUQVJUCQkoMSA8PCAxNCkJLyogc3RhcnQgdHJhbnNmZXIgKi8KICMJZGVmaW5lIFVEQ19UWE5fVFNDCQkweDAzZmYJCS8qIHVuaXRzIGluIHhmZXIgKi8KLSNkZWZpbmUJVURDX1JYRE1BX1JFRyhjaGFuKQkJVURDX1JFRygweDYwIC0gNCArIDQgKiAoY2hhbikpCisjZGVmaW5lCVVEQ19SWERNQShjaGFuKQkJCShVRENfQkFTRSArIDB4NjAgLSA0ICsgNCAqIChjaGFuKSkKICMJZGVmaW5lIFVEQ19SWE5fU1RPUAkJKDEgPDwgMTUpCS8qIGVuYWJsZSBFT1QgaXJxICovCiAjCWRlZmluZSBVRENfUlhOX1RDCQkweDAwZmYJCS8qIHBhY2tldHMgaW4geGZlciAqLwogCiAKIC8qCiAgKiBFbmRwb2ludCBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyAodXNlZCBiZWZvcmUgQ0ZHX0xPQ0sgaXMgc2V0KQotICogVURDX0VQX1RYX1JFRygwKSBpcyB1bnVzZWQKKyAqIFVEQ19FUF9UWCgwKSBpcyB1bnVzZWQKICAqLwotI2RlZmluZQlVRENfRVBfUlhfUkVHKGVuZHBvaW50KQkJVURDX1JFRygweDgwICsgKGVuZHBvaW50KSo0KQorI2RlZmluZQlVRENfRVBfUlgoZW5kcG9pbnQpCQkoVURDX0JBU0UgKyAweDgwICsgKGVuZHBvaW50KSo0KQogIwlkZWZpbmUJVURDX0VQTl9SWF9WQUxJRAkoMSA8PCAxNSkKICMJZGVmaW5lCVVEQ19FUE5fUlhfREIJCSgxIDw8IDE0KQogCS8qIGJ1ZmZlciBzaXplIGluIGJpdHMgMTMsIDEyICovCiAjCWRlZmluZQlVRENfRVBOX1JYX0lTTwkJKDEgPDwgMTEpCiAJLyogYnVmZmVyIHBvaW50ZXIgaW4gbG93IDExIGJpdHMgKi8KLSNkZWZpbmUJVURDX0VQX1RYX1JFRyhlbmRwb2ludCkJCVVEQ19SRUcoMHhjMCArIChlbmRwb2ludCkqNCkKLQkvKiBzYW1lIGJpdGZpZWxkcyBhcyBpbiBSWF9SRUcgKi8KKyNkZWZpbmUJVURDX0VQX1RYKGVuZHBvaW50KQkJKFVEQ19CQVNFICsgMHhjMCArIChlbmRwb2ludCkqNCkKKwkvKiBzYW1lIGJpdGZpZWxkcyBhcyBpbiBSWCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0xOTUsMTQgKzE5NCwxNCBAQAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCi0jZGVmaW5lCU1PRF9DT05GX0NUUkxfMF9SRUcJX19SRUczMihNT0RfQ09ORl9DVFJMXzApCi0jZGVmaW5lCVZCVVNfVzJGQ18xNTEwCQkoMSA8PCAxNykJLyogMCBncGlvMCwgMSBkdmRkMiBwaW4gKi8KKy8qIE1PRF9DT05GX0NUUkxfMCAqLworI2RlZmluZSBWQlVTX1cyRkNfMTUxMAkJKDEgPDwgMTcpCS8qIDAgZ3BpbzAsIDEgZHZkZDIgcGluICovCiAKLSNkZWZpbmUJRlVOQ19NVVhfQ1RSTF8wX1JFRwlfX1JFRzMyKEZVTkNfTVVYX0NUUkxfMCkKKy8qIEZVTkNfTVVYX0NUUkxfMCAqLwogI2RlZmluZQlWQlVTX0NUUkxfMTUxMAkJKDEgPDwgMTkpCS8qIDEgY29ubmVjdGVkIChzb2Z0d2FyZSkgKi8KICNkZWZpbmUJVkJVU19NT0RFXzE1MTAJCSgxIDw8IDE4KQkvKiAwIGhhcmR3YXJlLCAxIHNvZnR3YXJlICovCiAKLSNkZWZpbmUJSE1DXzE1MTAJKChNT0RfQ09ORl9DVFJMXzBfUkVHID4+IDEpICYgMHgzZikKLSNkZWZpbmUJSE1DXzE2MTAJKE9UR19TWVNDT05fMl9SRUcgJiAweDNmKQorI2RlZmluZQlITUNfMTUxMAkoKG9tYXBfcmVhZGwoTU9EX0NPTkZfQ1RSTF8wKSA+PiAxKSAmIDB4M2YpCisjZGVmaW5lCUhNQ18xNjEwCShvbWFwX3JlYWRsKE9UR19TWVNDT05fMikgJiAweDNmKQogI2RlZmluZQlITUMJCShjcHVfaXNfb21hcDE1eHgoKSA/IEhNQ18xNTEwIDogSE1DXzE2MTApCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9wcmludGVyLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHJpbnRlci5jCmluZGV4IDc2YmU3NWUuLmVjOGYyZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9wcmludGVyLmMKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3ByaW50ZXIuYwpAQCAtNDYyLDYgKzQ2Miw3IEBACiAJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CiAJaW50CQkJcmV0ID0gLUVCVVNZOwogCisJbG9ja19rZXJuZWwoKTsKIAlkZXYgPSBjb250YWluZXJfb2YoaW5vZGUtPmlfY2Rldiwgc3RydWN0IHByaW50ZXJfZGV2LCBwcmludGVyX2NkZXYpOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldi0+bG9jaywgZmxhZ3MpOwpAQCAtNDc3LDcgKzQ3OCw3IEBACiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5sb2NrLCBmbGFncyk7CiAKIAlEQkcoZGV2LCAicHJpbnRlcl9vcGVuIHJldHVybmVkICV4XG4iLCByZXQpOwotCisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMWRjZWIKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5jCkBAIC0wLDAgKzEsMjM4OCBAQAorLyoKKyAqIEludGVsIFBYQTI1eCBhbmQgSVhQNHh4IG9uLWNoaXAgZnVsbCBzcGVlZCBVU0IgZGV2aWNlIGNvbnRyb2xsZXJzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDAyIEludHJpbnN5YywgSW5jLiAoRnJhbmsgQmVja2VyKQorICogQ29weXJpZ2h0IChDKSAyMDAzIFJvYmVydCBTY2h3ZWJlbCwgUGVuZ3V0cm9uaXgKKyAqIENvcHlyaWdodCAoQykgMjAwMyBCZW5lZGlrdCBTcHJhbmdlciwgUGVuZ3V0cm9uaXgKKyAqIENvcHlyaWdodCAoQykgMjAwMyBEYXZpZCBCcm93bmVsbAorICogQ29weXJpZ2h0IChDKSAyMDAzIEpvc2h1YSBXaXNlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICoKKyAqLworCisvKiAjZGVmaW5lIFZFUkJPU0VfREVCVUcgKi8KKworI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2lycS5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgorI2luY2x1ZGUgPGxpbnV4L3NlcV9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLmg+CisKKyNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CisjaW5jbHVkZSA8YXNtL2RtYS5oPgorI2luY2x1ZGUgPGFzbS9ncGlvLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8YXNtL3VuYWxpZ25lZC5oPgorCisjaW5jbHVkZSA8bGludXgvdXNiL2NoOS5oPgorI2luY2x1ZGUgPGxpbnV4L3VzYi9nYWRnZXQuaD4KKworLyoKKyAqIFRoaXMgZHJpdmVyIGlzIFBYQTI1eCBvbmx5LiAgR3JhYiB0aGUgcmlnaHQgcmVnaXN0ZXIgZGVmaW5pdGlvbnMuCisgKi8KKyNpZmRlZiBDT05GSUdfQVJDSF9QWEEKKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyNXgtdWRjLmg+CisjZW5kaWYKKworI2luY2x1ZGUgPGFzbS9tYWNoL3VkY19weGEyeHguaD4KKworCisvKgorICogVGhpcyBkcml2ZXIgaGFuZGxlcyB0aGUgVVNCIERldmljZSBDb250cm9sbGVyIChVREMpIGluIEludGVsJ3MgUFhBIDI1eAorICogc2VyaWVzIHByb2Nlc3NvcnMuICBUaGUgVURDIGZvciB0aGUgSVhQIDR4eCBzZXJpZXMgaXMgdmVyeSBzaW1pbGFyLgorICogVGhlcmUgYXJlIGZpZnRlZW4gZW5kcG9pbnRzLCBpbiBhZGRpdGlvbiB0byBlcDAuCisgKgorICogU3VjaCBjb250cm9sbGVyIGRyaXZlcnMgd29yayB3aXRoIGEgZ2FkZ2V0IGRyaXZlci4gIFRoZSBnYWRnZXQgZHJpdmVyCisgKiByZXR1cm5zIGRlc2NyaXB0b3JzLCBpbXBsZW1lbnRzIGNvbmZpZ3VyYXRpb24gYW5kIGRhdGEgcHJvdG9jb2xzIHVzZWQKKyAqIGJ5IHRoZSBob3N0IHRvIGludGVyYWN0IHdpdGggdGhpcyBkZXZpY2UsIGFuZCBhbGxvY2F0ZXMgZW5kcG9pbnRzIHRvCisgKiB0aGUgZGlmZmVyZW50IHByb3RvY29sIGludGVyZmFjZXMuICBUaGUgY29udHJvbGxlciBkcml2ZXIgdmlydHVhbGl6ZXMKKyAqIHVzYiBoYXJkd2FyZSBzbyB0aGF0IHRoZSBnYWRnZXQgZHJpdmVycyB3aWxsIGJlIG1vcmUgcG9ydGFibGUuCisgKgorICogVGhpcyBVREMgaGFyZHdhcmUgd2FudHMgdG8gaW1wbGVtZW50IGEgYml0IHRvbyBtdWNoIFVTQiBwcm90b2NvbCwgc28KKyAqIGl0IGNvbnN0cmFpbnMgdGhlIHNvcnRzIG9mIFVTQiBjb25maWd1cmF0aW9uIGNoYW5nZSBldmVudHMgdGhhdCB3b3JrLgorICogVGhlIGVycmF0YSBmb3IgdGhlc2UgY2hpcHMgYXJlIG1pc2xlYWRpbmc7IHNvbWUgImZpeGVkIiBidWdzIGZyb20KKyAqIHB4YTI1MCBhMC9hMSBiMC9iMS9iMiBzdXJlIGFjdCBsaWtlIHRoZXkncmUgc3RpbGwgdGhlcmUuCisgKgorICogTm90ZSB0aGF0IHRoZSBVREMgaGFyZHdhcmUgc3VwcG9ydHMgRE1BIChleGNlcHQgb24gSVhQKSBidXQgdGhhdCdzCisgKiBub3QgdXNlZCBoZXJlLiAgSU4tRE1BICh0byBob3N0KSBpcyBzaW1wbGUgZW5vdWdoLCB3aGVuIHRoZSBkYXRhIGlzCisgKiBzdWl0YWJseSBhbGlnbmVkICgxNiBieXRlcykgLi4uIHRoZSBuZXR3b3JrIHN0YWNrIGRvZXNuJ3QgZG8gdGhhdCwKKyAqIG90aGVyIHNvZnR3YXJlIGNhbi4gIE9VVC1ETUEgaXMgYnVnZ3kgaW4gbW9zdCBjaGlwIHZlcnNpb25zLCBhcyB3ZWxsCisgKiBhcyBwb29ybHkgZGVzaWduZWQgKGRhdGEgdG9nZ2xlIG5vdCBhdXRvbWF0aWMpLiAgU28gdGhpcyBkcml2ZXIgd29uJ3QKKyAqIGJvdGhlciB1c2luZyBETUEuICAoTW9zdGx5LXdvcmtpbmcgSU4tRE1BIHN1cHBvcnQgd2FzIGF2YWlsYWJsZSBpbgorICoga2VybmVscyBiZWZvcmUgMi42LjIzLCBidXQgd2FzIG5ldmVyIGVuYWJsZWQgb3Igd2VsbCB0ZXN0ZWQuKQorICovCisKKyNkZWZpbmUJRFJJVkVSX1ZFUlNJT04JIjMwLUp1bmUtMjAwNyIKKyNkZWZpbmUJRFJJVkVSX0RFU0MJIlBYQSAyNXggVVNCIERldmljZSBDb250cm9sbGVyIGRyaXZlciIKKworCitzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZSBbXSA9ICJweGEyNXhfdWRjIjsKKworc3RhdGljIGNvbnN0IGNoYXIgZXAwbmFtZSBbXSA9ICJlcDAiOworCisKKyNpZmRlZiBDT05GSUdfQVJDSF9JWFA0WFgKKworLyogY3B1LXNwZWNpZmljIHJlZ2lzdGVyIGFkZHJlc3NlcyBhcmUgY29tcGlsZWQgaW4gdG8gdGhpcyBjb2RlICovCisjaWZkZWYgQ09ORklHX0FSQ0hfUFhBCisjZXJyb3IgIkNhbid0IGNvbmZpZ3VyZSBib3RoIElYUCBhbmQgUFhBIgorI2VuZGlmCisKKy8qIElYUCBkb2Vzbid0IHlldCBzdXBwb3J0IDxsaW51eC9jbGsuaD4gKi8KKyNkZWZpbmUgY2xrX2dldChkZXYsbmFtZSkJTlVMTAorI2RlZmluZSBjbGtfZW5hYmxlKGNsaykJCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgY2xrX2Rpc2FibGUoY2xrKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGNsa19wdXQoY2xrKQkJZG8geyB9IHdoaWxlICgwKQorCisjZW5kaWYKKworI2luY2x1ZGUgInB4YTI1eF91ZGMuaCIKKworCisjaWZkZWYJQ09ORklHX1VTQl9QWEEyNVhfU01BTEwKKyNkZWZpbmUgU0laRV9TVFIJIiAoc21hbGwpIgorI2Vsc2UKKyNkZWZpbmUgU0laRV9TVFIJIiIKKyNlbmRpZgorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCWVuZHBvaW50IHJlbGF0ZWQgcGFydHMgb2YgdGhlIGFwaSB0byB0aGUgdXNiIGNvbnRyb2xsZXIgaGFyZHdhcmUsCisgKgl1c2VkIGJ5IGdhZGdldCBkcml2ZXI7IGFuZCB0aGUgaW5uZXIgdGFsa2VyLXRvLWhhcmR3YXJlIGNvcmUuCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCitzdGF0aWMgdm9pZCBweGEyNXhfZXBfZmlmb19mbHVzaCAoc3RydWN0IHVzYl9lcCAqZXApOworc3RhdGljIHZvaWQgbnVrZSAoc3RydWN0IHB4YTI1eF9lcCAqLCBpbnQgc3RhdHVzKTsKKworLyogb25lIEdQSU8gc2hvdWxkIGJlIHVzZWQgdG8gZGV0ZWN0IFZCVVMgZnJvbSB0aGUgaG9zdCAqLworc3RhdGljIGludCBpc192YnVzX3ByZXNlbnQodm9pZCkKK3sKKwlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoID0gdGhlX2NvbnRyb2xsZXItPm1hY2g7CisKKwlpZiAobWFjaC0+Z3Bpb192YnVzKSB7CisJCWludCB2YWx1ZSA9IGdwaW9fZ2V0X3ZhbHVlKG1hY2gtPmdwaW9fdmJ1cyk7CisJCXJldHVybiBtYWNoLT5ncGlvX3ZidXNfaW52ZXJ0ZWQgPyAhdmFsdWUgOiB2YWx1ZTsKKwl9CisJaWYgKG1hY2gtPnVkY19pc19jb25uZWN0ZWQpCisJCXJldHVybiBtYWNoLT51ZGNfaXNfY29ubmVjdGVkKCk7CisJcmV0dXJuIDE7Cit9CisKKy8qIG9uZSBHUElPIHNob3VsZCBjb250cm9sIGEgRCsgcHVsbHVwLCBzbyBob3N0IHNlZXMgdGhpcyBkZXZpY2UgKG9yIG5vdCkgKi8KK3N0YXRpYyB2b2lkIHB1bGx1cF9vZmYodm9pZCkKK3sKKwlzdHJ1Y3QgcHhhMnh4X3VkY19tYWNoX2luZm8JCSptYWNoID0gdGhlX2NvbnRyb2xsZXItPm1hY2g7CisKKwlpZiAobWFjaC0+Z3Bpb19wdWxsdXApCisJCWdwaW9fc2V0X3ZhbHVlKG1hY2gtPmdwaW9fcHVsbHVwLCAwKTsKKwllbHNlIGlmIChtYWNoLT51ZGNfY29tbWFuZCkKKwkJbWFjaC0+dWRjX2NvbW1hbmQoUFhBMlhYX1VEQ19DTURfRElTQ09OTkVDVCk7Cit9CisKK3N0YXRpYyB2b2lkIHB1bGx1cF9vbih2b2lkKQoreworCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKKworCWlmIChtYWNoLT5ncGlvX3B1bGx1cCkKKwkJZ3Bpb19zZXRfdmFsdWUobWFjaC0+Z3Bpb19wdWxsdXAsIDEpOworCWVsc2UgaWYgKG1hY2gtPnVkY19jb21tYW5kKQorCQltYWNoLT51ZGNfY29tbWFuZChQWEEyWFhfVURDX0NNRF9DT05ORUNUKTsKK30KKworc3RhdGljIHZvaWQgcGlvX2lycV9lbmFibGUoaW50IGJFbmRwb2ludEFkZHJlc3MpCit7CisgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgJj0gMHhmOworICAgICAgICBpZiAoYkVuZHBvaW50QWRkcmVzcyA8IDgpCisgICAgICAgICAgICAgICAgVUlDUjAgJj0gfigxIDw8IGJFbmRwb2ludEFkZHJlc3MpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBiRW5kcG9pbnRBZGRyZXNzIC09IDg7CisgICAgICAgICAgICAgICAgVUlDUjEgJj0gfigxIDw8IGJFbmRwb2ludEFkZHJlc3MpOworCX0KK30KKworc3RhdGljIHZvaWQgcGlvX2lycV9kaXNhYmxlKGludCBiRW5kcG9pbnRBZGRyZXNzKQoreworICAgICAgICBiRW5kcG9pbnRBZGRyZXNzICY9IDB4ZjsKKyAgICAgICAgaWYgKGJFbmRwb2ludEFkZHJlc3MgPCA4KQorICAgICAgICAgICAgICAgIFVJQ1IwIHw9IDEgPDwgYkVuZHBvaW50QWRkcmVzczsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAtPSA4OworICAgICAgICAgICAgICAgIFVJQ1IxIHw9IDEgPDwgYkVuZHBvaW50QWRkcmVzczsKKyAgICAgICAgfQorfQorCisvKiBUaGUgVURDQ1IgcmVnIGNvbnRhaW5zIG1hc2sgYW5kIGludGVycnVwdCBzdGF0dXMgYml0cywKKyAqIHNvIHVzaW5nICd8PScgaXNuJ3Qgc2FmZSBhcyBpdCBtYXkgYWNrIGFuIGludGVycnVwdC4KKyAqLworI2RlZmluZSBVRENDUl9NQVNLX0JJVFMgICAgICAgICAoVURDQ1JfUkVNIHwgVURDQ1JfU1JNIHwgVURDQ1JfVURFKQorCitzdGF0aWMgaW5saW5lIHZvaWQgdWRjX3NldF9tYXNrX1VEQ0NSKGludCBtYXNrKQoreworCVVEQ0NSID0gKFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTKSB8IChtYXNrICYgVURDQ1JfTUFTS19CSVRTKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHVkY19jbGVhcl9tYXNrX1VEQ0NSKGludCBtYXNrKQoreworCVVEQ0NSID0gKFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTKSAmIH4obWFzayAmIFVEQ0NSX01BU0tfQklUUyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfYWNrX2ludF9VRENDUihpbnQgbWFzaykKK3sKKwkvKiB1ZGNjciBjb250YWlucyB0aGUgYml0cyB3ZSBkb250IHdhbnQgdG8gY2hhbmdlICovCisJX191MzIgdWRjY3IgPSBVRENDUiAmIFVEQ0NSX01BU0tfQklUUzsKKworCVVEQ0NSID0gdWRjY3IgfCAobWFzayAmIH5VRENDUl9NQVNLX0JJVFMpOworfQorCisvKgorICogZW5kcG9pbnQgZW5hYmxlL2Rpc2FibGUKKyAqCisgKiB3ZSBuZWVkIHRvIHZlcmlmeSB0aGUgZGVzY3JpcHRvcnMgdXNlZCB0byBlbmFibGUgZW5kcG9pbnRzLiAgc2luY2UgcHhhMjV4CisgKiBlbmRwb2ludCBjb25maWd1cmF0aW9ucyBhcmUgZml4ZWQsIGFuZCBhcmUgcHJldHR5IG11Y2ggYWx3YXlzIGVuYWJsZWQsCisgKiB0aGVyZSdzIG5vdCBhIGxvdCB0byBtYW5hZ2UgaGVyZS4KKyAqCisgKiBiZWNhdXNlIHB4YTI1eCBjYW4ndCBzZWxlY3RpdmVseSBpbml0aWFsaXplIGJ1bGsgKG9yIGludGVycnVwdCkgZW5kcG9pbnRzLAorICogKHJlc2V0dGluZyBlbmRwb2ludCBoYWx0IGFuZCB0b2dnbGUpLCBTRVRfSU5URVJGQUNFIGlzIHVudXNhYmxlIGV4Y2VwdAorICogZm9yIGEgc2luZ2xlIGludGVyZmFjZSAod2l0aCBvbmx5IHRoZSBkZWZhdWx0IGFsdHNldHRpbmcpIGFuZCBmb3IgZ2FkZ2V0CisgKiBkcml2ZXJzIHRoYXQgZG9uJ3QgaGFsdCBlbmRwb2ludHMgKG5vdCByZXNldCBieSBzZXRfaW50ZXJmYWNlKS4gIHRoYXQgYWxzbworICogbWVhbnMgdGhhdCBpZiB5b3UgdXNlIElTTywgeW91IG11c3QgdmlvbGF0ZSB0aGUgVVNCIHNwZWMgcnVsZSB0aGF0IGFsbAorICogaXNvIGVuZHBvaW50cyBtdXN0IGJlIGluIG5vbi1kZWZhdWx0IGFsdHNldHRpbmdzLgorICovCitzdGF0aWMgaW50IHB4YTI1eF9lcF9lbmFibGUgKHN0cnVjdCB1c2JfZXAgKl9lcCwKKwkJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yICpkZXNjKQoreworCXN0cnVjdCBweGEyNXhfZXAgICAgICAgICplcDsKKwlzdHJ1Y3QgcHhhMjV4X3VkYyAgICAgICAqZGV2OworCisJZXAgPSBjb250YWluZXJfb2YgKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICghX2VwIHx8ICFkZXNjIHx8IGVwLT5kZXNjIHx8IF9lcC0+bmFtZSA9PSBlcDBuYW1lCisJCQl8fCBkZXNjLT5iRGVzY3JpcHRvclR5cGUgIT0gVVNCX0RUX0VORFBPSU5UCisJCQl8fCBlcC0+YkVuZHBvaW50QWRkcmVzcyAhPSBkZXNjLT5iRW5kcG9pbnRBZGRyZXNzCisJCQl8fCBlcC0+Zmlmb19zaXplIDwgbGUxNl90b19jcHUKKwkJCQkJCShkZXNjLT53TWF4UGFja2V0U2l6ZSkpIHsKKwkJRE1TRygiJXMsIGJhZCBlcCBvciBkZXNjcmlwdG9yXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIHhmZXIgdHlwZXMgbXVzdCBtYXRjaCwgZXhjZXB0IHRoYXQgaW50ZXJydXB0IH49IGJ1bGsgKi8KKwlpZiAoZXAtPmJtQXR0cmlidXRlcyAhPSBkZXNjLT5ibUF0dHJpYnV0ZXMKKwkJCSYmIGVwLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSworCQkJJiYgZGVzYy0+Ym1BdHRyaWJ1dGVzICE9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCkgeworCQlETVNHKCIlcywgJXMgdHlwZSBtaXNtYXRjaFxuIiwgX19mdW5jX18sIF9lcC0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGhhcmR3YXJlIF9jb3VsZF8gZG8gc21hbGxlciwgYnV0IGRyaXZlciBkb2Vzbid0ICovCisJaWYgKChkZXNjLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSworCQkJCSYmIGxlMTZfdG9fY3B1IChkZXNjLT53TWF4UGFja2V0U2l6ZSkKKwkJCQkJCSE9IEJVTEtfRklGT19TSVpFKQorCQkJfHwgIWRlc2MtPndNYXhQYWNrZXRTaXplKSB7CisJCURNU0coIiVzLCBiYWQgJXMgbWF4cGFja2V0XG4iLCBfX2Z1bmNfXywgX2VwLT5uYW1lKTsKKwkJcmV0dXJuIC1FUkFOR0U7CisJfQorCisJZGV2ID0gZXAtPmRldjsKKwlpZiAoIWRldi0+ZHJpdmVyIHx8IGRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOKSB7CisJCURNU0coIiVzLCBib2d1cyBkZXZpY2Ugc3RhdGVcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FU0hVVERPV047CisJfQorCisJZXAtPmRlc2MgPSBkZXNjOworCWVwLT5zdG9wcGVkID0gMDsKKwllcC0+cGlvX2lycXMgPSAwOworCWVwLT5lcC5tYXhwYWNrZXQgPSBsZTE2X3RvX2NwdSAoZGVzYy0+d01heFBhY2tldFNpemUpOworCisJLyogZmx1c2ggZmlmbyAobW9zdGx5IGZvciBPVVQgYnVmZmVycykgKi8KKwlweGEyNXhfZXBfZmlmb19mbHVzaCAoX2VwKTsKKworCS8qIC4uLiByZXNldCBoYWx0IHN0YXRlIHRvbywgaWYgd2UgY291bGQgLi4uICovCisKKwlEQkcoREJHX1ZFUkJPU0UsICJlbmFibGVkICVzXG4iLCBfZXAtPm5hbWUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB4YTI1eF9lcF9kaXNhYmxlIChzdHJ1Y3QgdXNiX2VwICpfZXApCit7CisJc3RydWN0IHB4YTI1eF9lcAkqZXA7CisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CisKKwllcCA9IGNvbnRhaW5lcl9vZiAoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKCFfZXAgfHwgIWVwLT5kZXNjKSB7CisJCURNU0coIiVzLCAlcyBub3QgZW5hYmxlZFxuIiwgX19mdW5jX18sCisJCQlfZXAgPyBlcC0+ZXAubmFtZSA6IE5VTEwpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJbnVrZSAoZXAsIC1FU0hVVERPV04pOworCisJLyogZmx1c2ggZmlmbyAobW9zdGx5IGZvciBJTiBidWZmZXJzKSAqLworCXB4YTI1eF9lcF9maWZvX2ZsdXNoIChfZXApOworCisJZXAtPmRlc2MgPSBOVUxMOworCWVwLT5zdG9wcGVkID0gMTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlEQkcoREJHX1ZFUkJPU0UsICIlcyBkaXNhYmxlZFxuIiwgX2VwLT5uYW1lKTsKKwlyZXR1cm4gMDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogZm9yIHRoZSBweGEyNXgsIHRoZXNlIGNhbiBqdXN0IHdyYXAga21hbGxvYy9rZnJlZS4gIGdhZGdldCBkcml2ZXJzCisgKiBtdXN0IHN0aWxsIHBhc3MgY29ycmVjdGx5IGluaXRpYWxpemVkIGVuZHBvaW50cywgc2luY2Ugb3RoZXIgY29udHJvbGxlcgorICogZHJpdmVycyBtYXkgY2FyZSBhYm91dCBob3cgaXQncyBjdXJyZW50bHkgc2V0IHVwIChkbWEgaXNzdWVzIGV0YykuCisgKi8KKworLyoKKyAqCXB4YTI1eF9lcF9hbGxvY19yZXF1ZXN0IC0gYWxsb2NhdGUgYSByZXF1ZXN0IGRhdGEgc3RydWN0dXJlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNiX3JlcXVlc3QgKgorcHhhMjV4X2VwX2FsbG9jX3JlcXVlc3QgKHN0cnVjdCB1c2JfZXAgKl9lcCwgZ2ZwX3QgZ2ZwX2ZsYWdzKQoreworCXN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxOworCisJcmVxID0ga3phbGxvYyhzaXplb2YoKnJlcSksIGdmcF9mbGFncyk7CisJaWYgKCFyZXEpCisJCXJldHVybiBOVUxMOworCisJSU5JVF9MSVNUX0hFQUQgKCZyZXEtPnF1ZXVlKTsKKwlyZXR1cm4gJnJlcS0+cmVxOworfQorCisKKy8qCisgKglweGEyNXhfZXBfZnJlZV9yZXF1ZXN0IC0gZGVhbGxvY2F0ZSBhIHJlcXVlc3QgZGF0YSBzdHJ1Y3R1cmUKKyAqLworc3RhdGljIHZvaWQKK3B4YTI1eF9lcF9mcmVlX3JlcXVlc3QgKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQoreworCXN0cnVjdCBweGEyNXhfcmVxdWVzdAkqcmVxOworCisJcmVxID0gY29udGFpbmVyX29mIChfcmVxLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QsIHJlcSk7CisJV0FSTl9PTiAoIWxpc3RfZW1wdHkgKCZyZXEtPnF1ZXVlKSk7CisJa2ZyZWUocmVxKTsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqCWRvbmUgLSByZXRpcmUgYSByZXF1ZXN0OyBjYWxsZXIgYmxvY2tlZCBpcnFzCisgKi8KK3N0YXRpYyB2b2lkIGRvbmUoc3RydWN0IHB4YTI1eF9lcCAqZXAsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxLCBpbnQgc3RhdHVzKQoreworCXVuc2lnbmVkCQlzdG9wcGVkID0gZXAtPnN0b3BwZWQ7CisKKwlsaXN0X2RlbF9pbml0KCZyZXEtPnF1ZXVlKTsKKworCWlmIChsaWtlbHkgKHJlcS0+cmVxLnN0YXR1cyA9PSAtRUlOUFJPR1JFU1MpKQorCQlyZXEtPnJlcS5zdGF0dXMgPSBzdGF0dXM7CisJZWxzZQorCQlzdGF0dXMgPSByZXEtPnJlcS5zdGF0dXM7CisKKwlpZiAoc3RhdHVzICYmIHN0YXR1cyAhPSAtRVNIVVRET1dOKQorCQlEQkcoREJHX1ZFUkJPU0UsICJjb21wbGV0ZSAlcyByZXEgJXAgc3RhdCAlZCBsZW4gJXUvJXVcbiIsCisJCQllcC0+ZXAubmFtZSwgJnJlcS0+cmVxLCBzdGF0dXMsCisJCQlyZXEtPnJlcS5hY3R1YWwsIHJlcS0+cmVxLmxlbmd0aCk7CisKKwkvKiBkb24ndCBtb2RpZnkgcXVldWUgaGVhZHMgZHVyaW5nIGNvbXBsZXRpb24gY2FsbGJhY2sgKi8KKwllcC0+c3RvcHBlZCA9IDE7CisJcmVxLT5yZXEuY29tcGxldGUoJmVwLT5lcCwgJnJlcS0+cmVxKTsKKwllcC0+c3RvcHBlZCA9IHN0b3BwZWQ7Cit9CisKKworc3RhdGljIGlubGluZSB2b2lkIGVwMF9pZGxlIChzdHJ1Y3QgcHhhMjV4X3VkYyAqZGV2KQoreworCWRldi0+ZXAwc3RhdGUgPSBFUDBfSURMRTsKK30KKworc3RhdGljIGludAord3JpdGVfcGFja2V0KHZvbGF0aWxlIHUzMiAqdWRkciwgc3RydWN0IHB4YTI1eF9yZXF1ZXN0ICpyZXEsIHVuc2lnbmVkIG1heCkKK3sKKwl1OAkJKmJ1ZjsKKwl1bnNpZ25lZAlsZW5ndGgsIGNvdW50OworCisJYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOworCXByZWZldGNoKGJ1Zik7CisKKwkvKiBob3cgYmlnIHdpbGwgdGhpcyBwYWNrZXQgYmU/ICovCisJbGVuZ3RoID0gbWluKHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgbWF4KTsKKwlyZXEtPnJlcS5hY3R1YWwgKz0gbGVuZ3RoOworCisJY291bnQgPSBsZW5ndGg7CisJd2hpbGUgKGxpa2VseShjb3VudC0tKSkKKwkJKnVkZHIgPSAqYnVmKys7CisKKwlyZXR1cm4gbGVuZ3RoOworfQorCisvKgorICogd3JpdGUgdG8gYW4gSU4gZW5kcG9pbnQgZmlmbywgYXMgbWFueSBwYWNrZXRzIGFzIHBvc3NpYmxlLgorICogaXJxcyB3aWxsIHVzZSB0aGlzIHRvIHdyaXRlIHRoZSByZXN0IGxhdGVyLgorICogY2FsbGVyIGd1YXJhbnRlZXMgYXQgbGVhc3Qgb25lIHBhY2tldCBidWZmZXIgaXMgcmVhZHkgKG9yIGEgemxwKS4KKyAqLworc3RhdGljIGludAord3JpdGVfZmlmbyAoc3RydWN0IHB4YTI1eF9lcCAqZXAsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkCQltYXg7CisKKwltYXggPSBsZTE2X3RvX2NwdShlcC0+ZGVzYy0+d01heFBhY2tldFNpemUpOworCWRvIHsKKwkJdW5zaWduZWQJY291bnQ7CisJCWludAkJaXNfbGFzdCwgaXNfc2hvcnQ7CisKKwkJY291bnQgPSB3cml0ZV9wYWNrZXQoZXAtPnJlZ191ZGRyLCByZXEsIG1heCk7CisKKwkJLyogbGFzdCBwYWNrZXQgaXMgdXN1YWxseSBzaG9ydCAob3IgYSB6bHApICovCisJCWlmICh1bmxpa2VseSAoY291bnQgIT0gbWF4KSkKKwkJCWlzX2xhc3QgPSBpc19zaG9ydCA9IDE7CisJCWVsc2UgeworCQkJaWYgKGxpa2VseShyZXEtPnJlcS5sZW5ndGggIT0gcmVxLT5yZXEuYWN0dWFsKQorCQkJCQl8fCByZXEtPnJlcS56ZXJvKQorCQkJCWlzX2xhc3QgPSAwOworCQkJZWxzZQorCQkJCWlzX2xhc3QgPSAxOworCQkJLyogaW50ZXJydXB0L2lzbyBtYXhwYWNrZXQgbWF5IG5vdCBmaWxsIHRoZSBmaWZvICovCisJCQlpc19zaG9ydCA9IHVubGlrZWx5IChtYXggPCBlcC0+Zmlmb19zaXplKTsKKwkJfQorCisJCURCRyhEQkdfVkVSWV9OT0lTWSwgIndyb3RlICVzICVkIGJ5dGVzJXMlcyAlZCBsZWZ0ICVwXG4iLAorCQkJZXAtPmVwLm5hbWUsIGNvdW50LAorCQkJaXNfbGFzdCA/ICIvTCIgOiAiIiwgaXNfc2hvcnQgPyAiL1MiIDogIiIsCisJCQlyZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWwsIHJlcSk7CisKKwkJLyogbGV0IGxvb3NlIHRoYXQgcGFja2V0LiBtYXliZSB0cnkgd3JpdGluZyBhbm90aGVyIG9uZSwKKwkJICogZG91YmxlIGJ1ZmZlcmluZyBtaWdodCB3b3JrLiAgVFNQLCBUUEMsIGFuZCBURlMKKwkJICogYml0IHZhbHVlcyBhcmUgdGhlIHNhbWUgZm9yIGFsbCBub3JtYWwgSU4gZW5kcG9pbnRzLgorCQkgKi8KKwkJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UUEM7CisJCWlmIChpc19zaG9ydCkKKwkJCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfVFNQOworCisJCS8qIHJlcXVlc3RzIGNvbXBsZXRlIHdoZW4gYWxsIElOIGRhdGEgaXMgaW4gdGhlIEZJRk8gKi8KKwkJaWYgKGlzX2xhc3QpIHsKKwkJCWRvbmUgKGVwLCByZXEsIDApOworCQkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCisJCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7CisJCQlyZXR1cm4gMTsKKwkJfQorCisJCS8vIFRPRE8gZXhwZXJpbWVudDogaG93IHJvYnVzdCBjYW4gZmlmbyBtb2RlIHR3ZWFraW5nIGJlPworCQkvLyBkb3VibGUgYnVmZmVyaW5nIGlzIG9mZiBpbiB0aGUgZGVmYXVsdCBmaWZvIG1vZGUsIHdoaWNoCisJCS8vIHByZXZlbnRzIFRGUyBmcm9tIGJlaW5nIHNldCBoZXJlLgorCisJfSB3aGlsZSAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpOworCXJldHVybiAwOworfQorCisvKiBjYWxsZXIgYXNzZXJ0cyByZXEtPnBlbmRpbmcgKGVwMCBpcnEgc3RhdHVzIG55ZXQgY2xlYXJlZCk7IHN0YXJ0cworICogZXAwIGRhdGEgc3RhZ2UuICB0aGVzZSBjaGlwcyB3YW50IHZlcnkgc2ltcGxlIHN0YXRlIHRyYW5zaXRpb25zLgorICovCitzdGF0aWMgaW5saW5lCit2b2lkIGVwMHN0YXJ0KHN0cnVjdCBweGEyNXhfdWRjICpkZXYsIHUzMiBmbGFncywgY29uc3QgY2hhciAqdGFnKQoreworCVVEQ0NTMCA9IGZsYWdzfFVEQ0NTMF9TQXxVRENDUzBfT1BSOworCVVTSVIwID0gVVNJUjBfSVIwOworCWRldi0+cmVxX3BlbmRpbmcgPSAwOworCURCRyhEQkdfVkVSWV9OT0lTWSwgIiVzICVzLCAlMDJ4LyUwMnhcbiIsCisJCV9fZnVuY19fLCB0YWcsIFVEQ0NTMCwgZmxhZ3MpOworfQorCitzdGF0aWMgaW50Cit3cml0ZV9lcDBfZmlmbyAoc3RydWN0IHB4YTI1eF9lcCAqZXAsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxKQoreworCXVuc2lnbmVkCWNvdW50OworCWludAkJaXNfc2hvcnQ7CisKKwljb3VudCA9IHdyaXRlX3BhY2tldCgmVUREUjAsIHJlcSwgRVAwX0ZJRk9fU0laRSk7CisJZXAtPmRldi0+c3RhdHMud3JpdGUuYnl0ZXMgKz0gY291bnQ7CisKKwkvKiBsYXN0IHBhY2tldCAibXVzdCBiZSIgc2hvcnQgKG9yIGEgemxwKSAqLworCWlzX3Nob3J0ID0gKGNvdW50ICE9IEVQMF9GSUZPX1NJWkUpOworCisJREJHKERCR19WRVJZX05PSVNZLCAiZXAwaW4gJWQgYnl0ZXMgJWQgbGVmdCAlcFxuIiwgY291bnQsCisJCXJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgcmVxKTsKKworCWlmICh1bmxpa2VseSAoaXNfc2hvcnQpKSB7CisJCWlmIChlcC0+ZGV2LT5yZXFfcGVuZGluZykKKwkJCWVwMHN0YXJ0KGVwLT5kZXYsIFVEQ0NTMF9JUFIsICJzaG9ydCBJTiIpOworCQllbHNlCisJCQlVRENDUzAgPSBVRENDUzBfSVBSOworCisJCWNvdW50ID0gcmVxLT5yZXEubGVuZ3RoOworCQlkb25lIChlcCwgcmVxLCAwKTsKKwkJZXAwX2lkbGUoZXAtPmRldik7CisjaWZuZGVmIENPTkZJR19BUkNIX0lYUDRYWAorI2lmIDEKKwkJLyogVGhpcyBzZWVtcyB0byBnZXQgcmlkIG9mIGxvc3Qgc3RhdHVzIGlycXMgaW4gc29tZSBjYXNlczoKKwkJICogaG9zdCByZXNwb25kcyBxdWlja2x5LCBvciBuZXh0IHJlcXVlc3QgaW52b2x2ZXMgY29uZmlnCisJCSAqIGNoYW5nZSBhdXRvbWFnaWMsIG9yIHNob3VsZCBoYXZlIGJlZW4gaGlkZGVuLCBvciAuLi4KKwkJICoKKwkJICogRklYTUUgZ2V0IHJpZCBvZiBhbGwgdWRlbGF5cyBwb3NzaWJsZS4uLgorCQkgKi8KKwkJaWYgKGNvdW50ID49IEVQMF9GSUZPX1NJWkUpIHsKKwkJCWNvdW50ID0gMTAwOworCQkJZG8geworCQkJCWlmICgoVURDQ1MwICYgVURDQ1MwX09QUikgIT0gMCkgeworCQkJCQkvKiBjbGVhciBPUFIsIGdlbmVyYXRlIGFjayAqLworCQkJCQlVRENDUzAgPSBVRENDUzBfT1BSOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJY291bnQtLTsKKwkJCQl1ZGVsYXkoMSk7CisJCQl9IHdoaWxlIChjb3VudCk7CisJCX0KKyNlbmRpZgorI2VuZGlmCisJfSBlbHNlIGlmIChlcC0+ZGV2LT5yZXFfcGVuZGluZykKKwkJZXAwc3RhcnQoZXAtPmRldiwgMCwgIklOIik7CisJcmV0dXJuIGlzX3Nob3J0OworfQorCisKKy8qCisgKiByZWFkX2ZpZm8gLSAgdW5sb2FkIHBhY2tldChzKSBmcm9tIHRoZSBmaWZvIHdlIHVzZSBmb3IgdXNiIE9VVAorICogdHJhbnNmZXJzIGFuZCBwdXQgdGhlbSBpbnRvIHRoZSByZXF1ZXN0LiAgY2FsbGVyIHNob3VsZCBoYXZlIG1hZGUKKyAqIHN1cmUgdGhlcmUncyBhdCBsZWFzdCBvbmUgcGFja2V0IHJlYWR5LgorICoKKyAqIHJldHVybnMgdHJ1ZSBpZiB0aGUgcmVxdWVzdCBjb21wbGV0ZWQgYmVjYXVzZSBvZiBzaG9ydCBwYWNrZXQgb3IgdGhlCisgKiByZXF1ZXN0IGJ1ZmZlciBoYXZpbmcgZmlsbGVkIChhbmQgbWF5YmUgb3ZlcnJhbiB0aWxsIGVuZC1vZi1wYWNrZXQpLgorICovCitzdGF0aWMgaW50CityZWFkX2ZpZm8gKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QgKnJlcSkKK3sKKwlmb3IgKDs7KSB7CisJCXUzMgkJdWRjY3M7CisJCXU4CQkqYnVmOworCQl1bnNpZ25lZAlidWZmZXJzcGFjZSwgY291bnQsIGlzX3Nob3J0OworCisJCS8qIG1ha2Ugc3VyZSB0aGVyZSdzIGEgcGFja2V0IGluIHRoZSBGSUZPLgorCQkgKiBVRENDU197Qk8sSU99X1JQQyBhcmUgYWxsIHRoZSBzYW1lIGJpdCB2YWx1ZS4KKwkJICogVURDQ1Nfe0JPLElPfV9STkUgYXJlIGFsbCB0aGUgc2FtZSBiaXQgdmFsdWUuCisJCSAqLworCQl1ZGNjcyA9ICplcC0+cmVnX3VkY2NzOworCQlpZiAodW5saWtlbHkgKCh1ZGNjcyAmIFVEQ0NTX0JPX1JQQykgPT0gMCkpCisJCQlicmVhazsKKwkJYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOworCQlwcmVmZXRjaHcoYnVmKTsKKwkJYnVmZmVyc3BhY2UgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7CisKKwkJLyogcmVhZCBhbGwgYnl0ZXMgZnJvbSB0aGlzIHBhY2tldCAqLworCQlpZiAobGlrZWx5ICh1ZGNjcyAmIFVEQ0NTX0JPX1JORSkpIHsKKwkJCWNvdW50ID0gMSArICgweDBmZiAmICplcC0+cmVnX3ViY3IpOworCQkJcmVxLT5yZXEuYWN0dWFsICs9IG1pbiAoY291bnQsIGJ1ZmZlcnNwYWNlKTsKKwkJfSBlbHNlIC8qIHpscCAqLworCQkJY291bnQgPSAwOworCQlpc19zaG9ydCA9IChjb3VudCA8IGVwLT5lcC5tYXhwYWNrZXQpOworCQlEQkcoREJHX1ZFUllfTk9JU1ksICJyZWFkICVzICUwMngsICVkIGJ5dGVzJXMgcmVxICVwICVkLyVkXG4iLAorCQkJZXAtPmVwLm5hbWUsIHVkY2NzLCBjb3VudCwKKwkJCWlzX3Nob3J0ID8gIi9TIiA6ICIiLAorCQkJcmVxLCByZXEtPnJlcS5hY3R1YWwsIHJlcS0+cmVxLmxlbmd0aCk7CisJCXdoaWxlIChsaWtlbHkgKGNvdW50LS0gIT0gMCkpIHsKKwkJCXU4CWJ5dGUgPSAodTgpICplcC0+cmVnX3VkZHI7CisKKwkJCWlmICh1bmxpa2VseSAoYnVmZmVyc3BhY2UgPT0gMCkpIHsKKwkJCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgZHJpdmVyJ3MgYnVmZmVyCisJCQkJICogaXMgc21hbGxlciB0aGFuIHdoYXQgdGhlIGhvc3Qgc2VudC4KKwkJCQkgKiBkaXNjYXJkIHRoZSBleHRyYSBkYXRhLgorCQkJCSAqLworCQkJCWlmIChyZXEtPnJlcS5zdGF0dXMgIT0gLUVPVkVSRkxPVykKKwkJCQkJRE1TRygiJXMgb3ZlcmZsb3cgJWRcbiIsCisJCQkJCQllcC0+ZXAubmFtZSwgY291bnQpOworCQkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FT1ZFUkZMT1c7CisJCQl9IGVsc2UgeworCQkJCSpidWYrKyA9IGJ5dGU7CisJCQkJYnVmZmVyc3BhY2UtLTsKKwkJCX0KKwkJfQorCQkqZXAtPnJlZ191ZGNjcyA9ICBVRENDU19CT19SUEM7CisJCS8qIFJQQy9SU1AvUk5FIGNvdWxkIG5vdyByZWZsZWN0IHRoZSBvdGhlciBwYWNrZXQgYnVmZmVyICovCisKKwkJLyogaXNvIGlzIG9uZSByZXF1ZXN0IHBlciBwYWNrZXQgKi8KKwkJaWYgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykgeworCQkJaWYgKHVkY2NzICYgVURDQ1NfSU9fUk9GKQorCQkJCXJlcS0+cmVxLnN0YXR1cyA9IC1FSE9TVFVOUkVBQ0g7CisJCQkvKiBtb3JlIGxpa2UgImlzX2RvbmUiICovCisJCQlpc19zaG9ydCA9IDE7CisJCX0KKworCQkvKiBjb21wbGV0aW9uICovCisJCWlmIChpc19zaG9ydCB8fCByZXEtPnJlcS5hY3R1YWwgPT0gcmVxLT5yZXEubGVuZ3RoKSB7CisJCQlkb25lIChlcCwgcmVxLCAwKTsKKwkJCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKQorCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOworCQkJcmV0dXJuIDE7CisJCX0KKworCQkvKiBmaW5pc2hlZCB0aGF0IHBhY2tldC4gIHRoZSBuZXh0IG9uZSBtYXkgYmUgd2FpdGluZy4uLiAqLworCX0KKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIHNwZWNpYWwgZXAwIHZlcnNpb24gb2YgdGhlIGFib3ZlLiAgbm8gVUJDUjAgb3IgZG91YmxlIGJ1ZmZlcmluZzsgc3RhdHVzCisgKiBoYW5kc2hha2luZyBpcyBtYWdpYy4gIG1vc3QgZGV2aWNlIHByb3RvY29scyBkb24ndCBuZWVkIGNvbnRyb2wtT1VULgorICogQ0RDIHZlbmRvciBjb21tYW5kcyAoYW5kIFJORElTKSwgbWFzcyBzdG9yYWdlIENCL0NCSSwgYW5kIHNvbWUgb3RoZXIKKyAqIHByb3RvY29scyBkbyB1c2UgdGhlbS4KKyAqLworc3RhdGljIGludAorcmVhZF9lcDBfZmlmbyAoc3RydWN0IHB4YTI1eF9lcCAqZXAsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxKQoreworCXU4CQkqYnVmLCBieXRlOworCXVuc2lnbmVkCWJ1ZmZlcnNwYWNlOworCisJYnVmID0gcmVxLT5yZXEuYnVmICsgcmVxLT5yZXEuYWN0dWFsOworCWJ1ZmZlcnNwYWNlID0gcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsOworCisJd2hpbGUgKFVEQ0NTMCAmIFVEQ0NTMF9STkUpIHsKKwkJYnl0ZSA9ICh1OCkgVUREUjA7CisKKwkJaWYgKHVubGlrZWx5IChidWZmZXJzcGFjZSA9PSAwKSkgeworCQkJLyogdGhpcyBoYXBwZW5zIHdoZW4gdGhlIGRyaXZlcidzIGJ1ZmZlcgorCQkJICogaXMgc21hbGxlciB0aGFuIHdoYXQgdGhlIGhvc3Qgc2VudC4KKwkJCSAqIGRpc2NhcmQgdGhlIGV4dHJhIGRhdGEuCisJCQkgKi8KKwkJCWlmIChyZXEtPnJlcS5zdGF0dXMgIT0gLUVPVkVSRkxPVykKKwkJCQlETVNHKCIlcyBvdmVyZmxvd1xuIiwgZXAtPmVwLm5hbWUpOworCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKKwkJfSBlbHNlIHsKKwkJCSpidWYrKyA9IGJ5dGU7CisJCQlyZXEtPnJlcS5hY3R1YWwrKzsKKwkJCWJ1ZmZlcnNwYWNlLS07CisJCX0KKwl9CisKKwlVRENDUzAgPSBVRENDUzBfT1BSIHwgVURDQ1MwX0lQUjsKKworCS8qIGNvbXBsZXRpb24gKi8KKwlpZiAocmVxLT5yZXEuYWN0dWFsID49IHJlcS0+cmVxLmxlbmd0aCkKKwkJcmV0dXJuIDE7CisKKwkvKiBmaW5pc2hlZCB0aGF0IHBhY2tldC4gIHRoZSBuZXh0IG9uZSBtYXkgYmUgd2FpdGluZy4uLiAqLworCXJldHVybiAwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdGF0aWMgaW50CitweGEyNXhfZXBfcXVldWUoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEsIGdmcF90IGdmcF9mbGFncykKK3sKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKwlzdHJ1Y3QgcHhhMjV4X2VwCSplcDsKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2OworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOworCisJcmVxID0gY29udGFpbmVyX29mKF9yZXEsIHN0cnVjdCBweGEyNXhfcmVxdWVzdCwgcmVxKTsKKwlpZiAodW5saWtlbHkgKCFfcmVxIHx8ICFfcmVxLT5jb21wbGV0ZSB8fCAhX3JlcS0+YnVmCisJCQl8fCAhbGlzdF9lbXB0eSgmcmVxLT5xdWV1ZSkpKSB7CisJCURNU0coIiVzLCBiYWQgcGFyYW1zXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICh1bmxpa2VseSAoIV9lcCB8fCAoIWVwLT5kZXNjICYmIGVwLT5lcC5uYW1lICE9IGVwMG5hbWUpKSkgeworCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWRldiA9IGVwLT5kZXY7CisJaWYgKHVubGlrZWx5ICghZGV2LT5kcml2ZXIKKwkJCXx8IGRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOKSkgeworCQlETVNHKCIlcywgYm9ndXMgZGV2aWNlIHN0YXRlXG4iLCBfX2Z1bmNfXyk7CisJCXJldHVybiAtRVNIVVRET1dOOworCX0KKworCS8qIGlzbyBpcyBhbHdheXMgb25lIHBhY2tldCBwZXIgcmVxdWVzdCwgdGhhdCdzIHRoZSBvbmx5IHdheQorCSAqIHdlIGNhbiByZXBvcnQgcGVyLXBhY2tldCBzdGF0dXMuICB0aGF0IGFsc28gaGVscHMgd2l0aCBkbWEuCisJICovCisJaWYgKHVubGlrZWx5IChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MKKwkJCSYmIHJlcS0+cmVxLmxlbmd0aCA+IGxlMTZfdG9fY3B1CisJCQkJCQkoZXAtPmRlc2MtPndNYXhQYWNrZXRTaXplKSkpCisJCXJldHVybiAtRU1TR1NJWkU7CisKKwlEQkcoREJHX05PSVNZLCAiJXMgcXVldWUgcmVxICVwLCBsZW4gJWQgYnVmICVwXG4iLAorCQlfZXAtPm5hbWUsIF9yZXEsIF9yZXEtPmxlbmd0aCwgX3JlcS0+YnVmKTsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCV9yZXEtPnN0YXR1cyA9IC1FSU5QUk9HUkVTUzsKKwlfcmVxLT5hY3R1YWwgPSAwOworCisJLyoga2lja3N0YXJ0IHRoaXMgaS9vIHF1ZXVlPyAqLworCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpICYmICFlcC0+c3RvcHBlZCkgeworCQlpZiAoZXAtPmRlc2MgPT0gTlVMTC8qIGVwMCAqLykgeworCQkJdW5zaWduZWQJbGVuZ3RoID0gX3JlcS0+bGVuZ3RoOworCisJCQlzd2l0Y2ggKGRldi0+ZXAwc3RhdGUpIHsKKwkJCWNhc2UgRVAwX0lOX0RBVEFfUEhBU0U6CisJCQkJZGV2LT5zdGF0cy53cml0ZS5vcHMrKzsKKwkJCQlpZiAod3JpdGVfZXAwX2ZpZm8oZXAsIHJlcSkpCisJCQkJCXJlcSA9IE5VTEw7CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgRVAwX09VVF9EQVRBX1BIQVNFOgorCQkJCWRldi0+c3RhdHMucmVhZC5vcHMrKzsKKwkJCQkvKiBtZXNzeSAuLi4gKi8KKwkJCQlpZiAoZGV2LT5yZXFfY29uZmlnKSB7CisJCQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMCBjb25maWcgYWNrJXNcbiIsCisJCQkJCQlkZXYtPmhhc19jZnIgPyAgIiIgOiAiIHJhY2VkIik7CisJCQkJCWlmIChkZXYtPmhhc19jZnIpCisJCQkJCQlVRENDRlIgPSBVRENDRlJfQVJFTnxVRENDRlJfQUNNCisJCQkJCQkJfFVEQ0NGUl9NQjE7CisJCQkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfRU5EX1hGRVI7CisJCQkJCWxvY2FsX2lycV9yZXN0b3JlIChmbGFncyk7CisJCQkJCXJldHVybiAwOworCQkJCX0KKwkJCQlpZiAoZGV2LT5yZXFfcGVuZGluZykKKwkJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfSVBSLCAiT1VUIik7CisJCQkJaWYgKGxlbmd0aCA9PSAwIHx8ICgoVURDQ1MwICYgVURDQ1MwX1JORSkgIT0gMAorCQkJCQkJJiYgcmVhZF9lcDBfZmlmbyhlcCwgcmVxKSkpIHsKKwkJCQkJZXAwX2lkbGUoZGV2KTsKKwkJCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJCQkJcmVxID0gTlVMTDsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJRE1TRygiZXAwIGkvbywgb2RkIHN0YXRlICVkXG4iLCBkZXYtPmVwMHN0YXRlKTsKKwkJCQlsb2NhbF9pcnFfcmVzdG9yZSAoZmxhZ3MpOworCQkJCXJldHVybiAtRUwySExUOworCQkJfQorCQkvKiBjYW4gdGhlIEZJRk8gY2FuIHNhdGlzZnkgdGhlIHJlcXVlc3QgaW1tZWRpYXRlbHk/ICovCisJCX0gZWxzZSBpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgIT0gMCkgeworCQkJaWYgKCgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUykgIT0gMAorCQkJCQkmJiB3cml0ZV9maWZvKGVwLCByZXEpKQorCQkJCXJlcSA9IE5VTEw7CisJCX0gZWxzZSBpZiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQk9fUkZTKSAhPSAwCisJCQkJJiYgcmVhZF9maWZvKGVwLCByZXEpKSB7CisJCQlyZXEgPSBOVUxMOworCQl9CisKKwkJaWYgKGxpa2VseSAocmVxICYmIGVwLT5kZXNjKSkKKwkJCXBpb19pcnFfZW5hYmxlKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKKwl9CisKKwkvKiBwaW8gb3IgZG1hIGlycSBoYW5kbGVyIGFkdmFuY2VzIHRoZSBxdWV1ZS4gKi8KKwlpZiAobGlrZWx5KHJlcSAhPSBOVUxMKSkKKwkJbGlzdF9hZGRfdGFpbCgmcmVxLT5xdWV1ZSwgJmVwLT5xdWV1ZSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKKworLyoKKyAqCW51a2UgLSBkZXF1ZXVlIEFMTCByZXF1ZXN0cworICovCitzdGF0aWMgdm9pZCBudWtlKHN0cnVjdCBweGEyNXhfZXAgKmVwLCBpbnQgc3RhdHVzKQoreworCXN0cnVjdCBweGEyNXhfcmVxdWVzdCAqcmVxOworCisJLyogY2FsbGVkIHdpdGggaXJxcyBibG9ja2VkICovCisJd2hpbGUgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CisJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsCisJCQkJc3RydWN0IHB4YTI1eF9yZXF1ZXN0LAorCQkJCXF1ZXVlKTsKKwkJZG9uZShlcCwgcmVxLCBzdGF0dXMpOworCX0KKwlpZiAoZXAtPmRlc2MpCisJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOworfQorCisKKy8qIGRlcXVldWUgSlVTVCBPTkUgcmVxdWVzdCAqLworc3RhdGljIGludCBweGEyNXhfZXBfZGVxdWV1ZShzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSkKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwCSplcDsKKwlzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QJKnJlcTsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKworCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTI1eF9lcCwgZXApOworCWlmICghX2VwIHx8IGVwLT5lcC5uYW1lID09IGVwMG5hbWUpCisJCXJldHVybiAtRUlOVkFMOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJLyogbWFrZSBzdXJlIGl0J3MgYWN0dWFsbHkgcXVldWVkIG9uIHRoaXMgZW5kcG9pbnQgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5IChyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7CisJCWlmICgmcmVxLT5yZXEgPT0gX3JlcSkKKwkJCWJyZWFrOworCX0KKwlpZiAoJnJlcS0+cmVxICE9IF9yZXEpIHsKKwkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlkb25lKGVwLCByZXEsIC1FQ09OTlJFU0VUKTsKKworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKwlyZXR1cm4gMDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGludCBweGEyNXhfZXBfc2V0X2hhbHQoc3RydWN0IHVzYl9lcCAqX2VwLCBpbnQgdmFsdWUpCit7CisJc3RydWN0IHB4YTI1eF9lcAkqZXA7CisJdW5zaWduZWQgbG9uZwkJZmxhZ3M7CisKKwllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAodW5saWtlbHkgKCFfZXAKKwkJCXx8ICghZXAtPmRlc2MgJiYgZXAtPmVwLm5hbWUgIT0gZXAwbmFtZSkpCisJCQl8fCBlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpIHsKKwkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisJaWYgKHZhbHVlID09IDApIHsKKwkJLyogdGhpcyBwYXRoIChyZXNldCB0b2dnbGUraGFsdCkgaXMgbmVlZGVkIHRvIGltcGxlbWVudAorCQkgKiBTRVRfSU5URVJGQUNFIG9uIG5vcm1hbCBoYXJkd2FyZS4gIGJ1dCBpdCBjYW4ndCBiZQorCQkgKiBkb25lIGZyb20gc29mdHdhcmUgb24gdGhlIFBYQSBVREMsIGFuZCB0aGUgaGFyZHdhcmUKKwkJICogZm9yZ2V0cyB0byBkbyBpdCBhcyBwYXJ0IG9mIFNFVF9JTlRFUkZBQ0UgYXV0b21hZ2ljLgorCQkgKi8KKwkJRE1TRygib25seSBob3N0IGNhbiBjbGVhciAlcyBoYWx0XG4iLCBfZXAtPm5hbWUpOworCQlyZXR1cm4gLUVST0ZTOworCX0KKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCWlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwCisJCQkmJiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKSA9PSAwCisJCQkgICB8fCAhbGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkpIHsKKwkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCQlyZXR1cm4gLUVBR0FJTjsKKwl9CisKKwkvKiBGU1QgYml0IGlzIHRoZSBzYW1lIGZvciBjb250cm9sLCBidWxrIGluLCBidWxrIG91dCwgaW50ZXJydXB0IGluICovCisJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9GU1R8VURDQ1NfQklfRlRGOworCisJLyogZXAwIG5lZWRzIHNwZWNpYWwgY2FyZSAqLworCWlmICghZXAtPmRlc2MpIHsKKwkJc3RhcnRfd2F0Y2hkb2coZXAtPmRldik7CisJCWVwLT5kZXYtPnJlcV9wZW5kaW5nID0gMDsKKwkJZXAtPmRldi0+ZXAwc3RhdGUgPSBFUDBfU1RBTEw7CisKKwkvKiBhbmQgYnVsay9pbnRyIGVuZHBvaW50cyBsaWtlIGRyb3BwaW5nIHN0YWxscyB0b28gKi8KKwl9IGVsc2UgeworCQl1bnNpZ25lZCBpOworCQlmb3IgKGkgPSAwOyBpIDwgMTAwMDsgaSArPSAyMCkgeworCQkJaWYgKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfU1NUKQorCQkJCWJyZWFrOworCQkJdWRlbGF5KDIwKTsKKwkJfQorCX0KKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisKKwlEQkcoREJHX1ZFUkJPU0UsICIlcyBoYWx0XG4iLCBfZXAtPm5hbWUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB4YTI1eF9lcF9maWZvX3N0YXR1cyhzdHJ1Y3QgdXNiX2VwICpfZXApCit7CisJc3RydWN0IHB4YTI1eF9lcCAgICAgICAgKmVwOworCisJZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMjV4X2VwLCBlcCk7CisJaWYgKCFfZXApIHsKKwkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisJLyogcHhhIGNhbid0IHJlcG9ydCB1bmNsYWltZWQgYnl0ZXMgZnJvbSBJTiBmaWZvcyAqLworCWlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJaWYgKGVwLT5kZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTgorCQkJfHwgKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQk9fUkZTKSA9PSAwKQorCQlyZXR1cm4gMDsKKwllbHNlCisJCXJldHVybiAoKmVwLT5yZWdfdWJjciAmIDB4ZmZmKSArIDE7Cit9CisKK3N0YXRpYyB2b2lkIHB4YTI1eF9lcF9maWZvX2ZsdXNoKHN0cnVjdCB1c2JfZXAgKl9lcCkKK3sKKwlzdHJ1Y3QgcHhhMjV4X2VwICAgICAgICAqZXA7CisKKwllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyNXhfZXAsIGVwKTsKKwlpZiAoIV9lcCB8fCBlcC0+ZXAubmFtZSA9PSBlcDBuYW1lIHx8ICFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7CisJCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuOworCX0KKworCS8qIHRvZ2dsZSBhbmQgaGFsdCBiaXRzIHN0YXkgdW5jaGFuZ2VkICovCisKKwkvKiBmb3IgT1VULCBqdXN0IHJlYWQgYW5kIGRpc2NhcmQgdGhlIEZJRk8gY29udGVudHMuICovCisJaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pID09IDApIHsKKwkJd2hpbGUgKCgoKmVwLT5yZWdfdWRjY3MpICYgVURDQ1NfQk9fUk5FKSAhPSAwKQorCQkJKHZvaWQpICplcC0+cmVnX3VkZHI7CisJCXJldHVybjsKKwl9CisKKwkvKiBtb3N0IElOIHN0YXR1cyBpcyB0aGUgc2FtZSwgYnV0IElTTyBjYW4ndCBzdGFsbCAqLworCSplcC0+cmVnX3VkY2NzID0gVURDQ1NfQklfVFBDfFVEQ0NTX0JJX0ZURnxVRENDU19CSV9UVVIKKwkJfCAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKQorCQkJPyAwIDogVURDQ1NfQklfU1NUOworfQorCisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2VwX29wcyBweGEyNXhfZXBfb3BzID0geworCS5lbmFibGUJCT0gcHhhMjV4X2VwX2VuYWJsZSwKKwkuZGlzYWJsZQk9IHB4YTI1eF9lcF9kaXNhYmxlLAorCisJLmFsbG9jX3JlcXVlc3QJPSBweGEyNXhfZXBfYWxsb2NfcmVxdWVzdCwKKwkuZnJlZV9yZXF1ZXN0CT0gcHhhMjV4X2VwX2ZyZWVfcmVxdWVzdCwKKworCS5xdWV1ZQkJPSBweGEyNXhfZXBfcXVldWUsCisJLmRlcXVldWUJPSBweGEyNXhfZXBfZGVxdWV1ZSwKKworCS5zZXRfaGFsdAk9IHB4YTI1eF9lcF9zZXRfaGFsdCwKKwkuZmlmb19zdGF0dXMJPSBweGEyNXhfZXBfZmlmb19zdGF0dXMsCisJLmZpZm9fZmx1c2gJPSBweGEyNXhfZXBfZmlmb19mbHVzaCwKK307CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKglkZXZpY2Utc2NvcGVkIHBhcnRzIG9mIHRoZSBhcGkgdG8gdGhlIHVzYiBjb250cm9sbGVyIGhhcmR3YXJlCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfZ2V0X2ZyYW1lKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0KQoreworCXJldHVybiAoKFVGTlJIICYgMHgwNykgPDwgOCkgfCAoVUZOUkwgJiAweGZmKTsKK30KKworc3RhdGljIGludCBweGEyNXhfdWRjX3dha2V1cChzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCkKK3sKKwkvKiBob3N0IG1heSBub3QgaGF2ZSBlbmFibGVkIHJlbW90ZSB3YWtldXAgKi8KKwlpZiAoKFVEQ0NTMCAmIFVEQ0NTMF9EUldGKSA9PSAwKQorCQlyZXR1cm4gLUVIT1NUVU5SRUFDSDsKKwl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfUlNNKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgc3RvcF9hY3Rpdml0eShzdHJ1Y3QgcHhhMjV4X3VkYyAqLCBzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKik7CitzdGF0aWMgdm9pZCB1ZGNfZW5hYmxlIChzdHJ1Y3QgcHhhMjV4X3VkYyAqKTsKK3N0YXRpYyB2b2lkIHVkY19kaXNhYmxlKHN0cnVjdCBweGEyNXhfdWRjICopOworCisvKiBXZSBkaXNhYmxlIHRoZSBVREMgLS0gYW5kIGl0cyA0OCBNSHogY2xvY2sgLS0gd2hlbmV2ZXIgaXQncyBub3QKKyAqIGluIGFjdGl2ZSB1c2UuCisgKi8KK3N0YXRpYyBpbnQgcHVsbHVwKHN0cnVjdCBweGEyNXhfdWRjICp1ZGMpCit7CisJaW50IGlzX2FjdGl2ZSA9IHVkYy0+dmJ1cyAmJiB1ZGMtPnB1bGx1cCAmJiAhdWRjLT5zdXNwZW5kZWQ7CisJRE1TRygiJXNcbiIsIGlzX2FjdGl2ZSA/ICJhY3RpdmUiIDogImluYWN0aXZlIik7CisJaWYgKGlzX2FjdGl2ZSkgeworCQlpZiAoIXVkYy0+YWN0aXZlKSB7CisJCQl1ZGMtPmFjdGl2ZSA9IDE7CisJCQkvKiBFbmFibGUgY2xvY2sgZm9yIFVTQiBkZXZpY2UgKi8KKwkJCWNsa19lbmFibGUodWRjLT5jbGspOworCQkJdWRjX2VuYWJsZSh1ZGMpOworCQl9CisJfSBlbHNlIHsKKwkJaWYgKHVkYy0+YWN0aXZlKSB7CisJCQlpZiAodWRjLT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04pIHsKKwkJCQlETVNHKCJkaXNjb25uZWN0ICVzXG4iLCB1ZGMtPmRyaXZlcgorCQkJCQk/IHVkYy0+ZHJpdmVyLT5kcml2ZXIubmFtZQorCQkJCQk6ICIobm8gZHJpdmVyKSIpOworCQkJCXN0b3BfYWN0aXZpdHkodWRjLCB1ZGMtPmRyaXZlcik7CisJCQl9CisJCQl1ZGNfZGlzYWJsZSh1ZGMpOworCQkJLyogRGlzYWJsZSBjbG9jayBmb3IgVVNCIGRldmljZSAqLworCQkJY2xrX2Rpc2FibGUodWRjLT5jbGspOworCQkJdWRjLT5hY3RpdmUgPSAwOworCQl9CisKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qIFZCVVMgcmVwb3J0aW5nIGxvZ2ljYWxseSBjb21lcyBmcm9tIGEgdHJhbnNjZWl2ZXIgKi8KK3N0YXRpYyBpbnQgcHhhMjV4X3VkY192YnVzX3Nlc3Npb24oc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQsIGludCBpc19hY3RpdmUpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKnVkYzsKKworCXVkYyA9IGNvbnRhaW5lcl9vZihfZ2FkZ2V0LCBzdHJ1Y3QgcHhhMjV4X3VkYywgZ2FkZ2V0KTsKKwl1ZGMtPnZidXMgPSAoaXNfYWN0aXZlICE9IDApOworCURNU0coInZidXMgJXNcbiIsIGlzX2FjdGl2ZSA/ICJzdXBwbGllZCIgOiAiaW5hY3RpdmUiKTsKKwlwdWxsdXAodWRjKTsKKwlyZXR1cm4gMDsKK30KKworLyogZHJpdmVycyBtYXkgaGF2ZSBzb2Z0d2FyZSBjb250cm9sIG92ZXIgRCsgcHVsbHVwICovCitzdGF0aWMgaW50IHB4YTI1eF91ZGNfcHVsbHVwKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0LCBpbnQgaXNfYWN0aXZlKQoreworCXN0cnVjdCBweGEyNXhfdWRjCSp1ZGM7CisKKwl1ZGMgPSBjb250YWluZXJfb2YoX2dhZGdldCwgc3RydWN0IHB4YTI1eF91ZGMsIGdhZGdldCk7CisKKwkvKiBub3QgYWxsIGJvYXJkcyBzdXBwb3J0IHB1bGx1cCBjb250cm9sICovCisJaWYgKCF1ZGMtPm1hY2gtPmdwaW9fcHVsbHVwICYmICF1ZGMtPm1hY2gtPnVkY19jb21tYW5kKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisKKwl1ZGMtPnB1bGx1cCA9IChpc19hY3RpdmUgIT0gMCk7CisJcHVsbHVwKHVkYyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2dhZGdldF9vcHMgcHhhMjV4X3VkY19vcHMgPSB7CisJLmdldF9mcmFtZQk9IHB4YTI1eF91ZGNfZ2V0X2ZyYW1lLAorCS53YWtldXAJCT0gcHhhMjV4X3VkY193YWtldXAsCisJLnZidXNfc2Vzc2lvbgk9IHB4YTI1eF91ZGNfdmJ1c19zZXNzaW9uLAorCS5wdWxsdXAJCT0gcHhhMjV4X3VkY19wdWxsdXAsCisKKwkvLyAudmJ1c19kcmF3IC4uLiBib2FyZHMgbWF5IGNvbnN1bWUgY3VycmVudCBmcm9tIFZCVVMsIHVwIHRvCisJLy8gMTAwLTUwMG1BIGJhc2VkIG9uIGNvbmZpZy4gIHRoZSA1MDB1QSBzdXNwZW5kIGNlaWxpbmcgbWVhbnMKKwkvLyB0aGF0IGV4Y2x1c2l2ZWx5IHZidXMtcG93ZXJlZCBQWEEgZGVzaWducyB2aW9sYXRlIFVTQiBzcGVjcy4KK307CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GUworCitzdGF0aWMgaW50Cit1ZGNfc2VxX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpfZCkKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gbS0+cHJpdmF0ZTsKKwl1bnNpZ25lZCBsb25nCQlmbGFnczsKKwlpbnQJCQlpOworCXUzMgkJCXRtcDsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKworCS8qIGJhc2ljIGRldmljZSBzdGF0dXMgKi8KKwlzZXFfcHJpbnRmKG0sIERSSVZFUl9ERVNDICJcbiIKKwkJIiVzIHZlcnNpb246ICVzXG5HYWRnZXQgZHJpdmVyOiAlc1xuSG9zdCAlc1xuXG4iLAorCQlkcml2ZXJfbmFtZSwgRFJJVkVSX1ZFUlNJT04gU0laRV9TVFIgIihwaW8pIiwKKwkJZGV2LT5kcml2ZXIgPyBkZXYtPmRyaXZlci0+ZHJpdmVyLm5hbWUgOiAiKG5vbmUpIiwKKwkJaXNfdmJ1c19wcmVzZW50KCkgPyAiZnVsbCBzcGVlZCIgOiAiZGlzY29ubmVjdGVkIik7CisKKwkvKiByZWdpc3RlcnMgZm9yIGRldmljZSBhbmQgZXAwICovCisJc2VxX3ByaW50ZihtLAorCQkidWljciAlMDJYLiUwMlgsIHVzaXIgJTAyWC4lMDJ4LCB1Zm5yICUwMlguJTAyWFxuIiwKKwkJVUlDUjEsIFVJQ1IwLCBVU0lSMSwgVVNJUjAsIFVGTlJILCBVRk5STCk7CisKKwl0bXAgPSBVRENDUjsKKwlzZXFfcHJpbnRmKG0sCisJCSJ1ZGNjciAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLCB0bXAsCisJCSh0bXAgJiBVRENDUl9SRU0pID8gIiByZW0iIDogIiIsCisJCSh0bXAgJiBVRENDUl9SU1RJUikgPyAiIHJzdGlyIiA6ICIiLAorCQkodG1wICYgVURDQ1JfU1JNKSA/ICIgc3JtIiA6ICIiLAorCQkodG1wICYgVURDQ1JfU1VTSVIpID8gIiBzdXNpciIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NSX1JFU0lSKSA/ICIgcmVzaXIiIDogIiIsCisJCSh0bXAgJiBVRENDUl9SU00pID8gIiByc20iIDogIiIsCisJCSh0bXAgJiBVRENDUl9VREEpID8gIiB1ZGEiIDogIiIsCisJCSh0bXAgJiBVRENDUl9VREUpID8gIiB1ZGUiIDogIiIpOworCisJdG1wID0gVURDQ1MwOworCXNlcV9wcmludGYobSwKKwkJInVkY2NzMCAlMDJYID0lcyVzJXMlcyVzJXMlcyVzXG4iLCB0bXAsCisJCSh0bXAgJiBVRENDUzBfU0EpID8gIiBzYSIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9STkUpID8gIiBybmUiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfRlNUKSA/ICIgZnN0IiA6ICIiLAorCQkodG1wICYgVURDQ1MwX1NTVCkgPyAiIHNzdCIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9EUldGKSA/ICIgZHdyZiIgOiAiIiwKKwkJKHRtcCAmIFVEQ0NTMF9GVEYpID8gIiBmdGYiIDogIiIsCisJCSh0bXAgJiBVRENDUzBfSVBSKSA/ICIgaXByIiA6ICIiLAorCQkodG1wICYgVURDQ1MwX09QUikgPyAiIG9wciIgOiAiIik7CisKKwlpZiAoZGV2LT5oYXNfY2ZyKSB7CisJCXRtcCA9IFVEQ0NGUjsKKwkJc2VxX3ByaW50ZihtLAorCQkJInVkY2NmciAlMDJYID0lcyVzXG4iLCB0bXAsCisJCQkodG1wICYgVURDQ0ZSX0FSRU4pID8gIiBhcmVuIiA6ICIiLAorCQkJKHRtcCAmIFVEQ0NGUl9BQ00pID8gIiBhY20iIDogIiIpOworCX0KKworCWlmICghaXNfdmJ1c19wcmVzZW50KCkgfHwgIWRldi0+ZHJpdmVyKQorCQlnb3RvIGRvbmU7CisKKwlzZXFfcHJpbnRmKG0sICJlcDAgSU4gJWx1LyVsdSwgT1VUICVsdS8lbHVcbmlycXMgJWx1XG5cbiIsCisJCWRldi0+c3RhdHMud3JpdGUuYnl0ZXMsIGRldi0+c3RhdHMud3JpdGUub3BzLAorCQlkZXYtPnN0YXRzLnJlYWQuYnl0ZXMsIGRldi0+c3RhdHMucmVhZC5vcHMsCisJCWRldi0+c3RhdHMuaXJxcyk7CisKKwkvKiBkdW1wIGVuZHBvaW50IHF1ZXVlcyAqLworCWZvciAoaSA9IDA7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgeworCQlzdHJ1Y3QgcHhhMjV4X2VwCSplcCA9ICZkZXYtPmVwIFtpXTsKKwkJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisKKwkJaWYgKGkgIT0gMCkgeworCQkJY29uc3Qgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yCSpkZXNjOworCisJCQlkZXNjID0gZXAtPmRlc2M7CisJCQlpZiAoIWRlc2MpCisJCQkJY29udGludWU7CisJCQl0bXAgPSAqZGV2LT5lcCBbaV0ucmVnX3VkY2NzOworCQkJc2VxX3ByaW50ZihtLAorCQkJCSIlcyBtYXggJWQgJXMgdWRjY3MgJTAyeCBpcnFzICVsdVxuIiwKKwkJCQllcC0+ZXAubmFtZSwgbGUxNl90b19jcHUoZGVzYy0+d01heFBhY2tldFNpemUpLAorCQkJCSJwaW8iLCB0bXAsIGVwLT5waW9faXJxcyk7CisJCQkvKiBUT0RPIHRyYW5zbGF0ZSBhbGwgZml2ZSBncm91cHMgb2YgdWRjY3MgYml0cyEgKi8KKworCQl9IGVsc2UgLyogZXAwIHNob3VsZCBvbmx5IGhhdmUgb25lIHRyYW5zZmVyIHF1ZXVlZCAqLworCQkJc2VxX3ByaW50ZihtLCAiZXAwIG1heCAxNiBwaW8gaXJxcyAlbHVcbiIsCisJCQkJZXAtPnBpb19pcnFzKTsKKworCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkgeworCQkJc2VxX3ByaW50ZihtLCAiXHQobm90aGluZyBxdWV1ZWQpXG4iKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxLCAmZXAtPnF1ZXVlLCBxdWV1ZSkgeworCQkJc2VxX3ByaW50ZihtLAorCQkJCQkiXHRyZXEgJXAgbGVuICVkLyVkIGJ1ZiAlcFxuIiwKKwkJCQkJJnJlcS0+cmVxLCByZXEtPnJlcS5hY3R1YWwsCisJCQkJCXJlcS0+cmVxLmxlbmd0aCwgcmVxLT5yZXEuYnVmKTsKKwkJfQorCX0KKworZG9uZToKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3VkY19kZWJ1Z2ZzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIHVkY19zZXFfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGRlYnVnX2ZvcHMgPSB7CisJLm9wZW4JCT0gdWRjX2RlYnVnZnNfb3BlbiwKKwkucmVhZAkJPSBzZXFfcmVhZCwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHNpbmdsZV9yZWxlYXNlLAorCS5vd25lcgkJPSBUSElTX01PRFVMRSwKK307CisKKyNkZWZpbmUgY3JlYXRlX2RlYnVnX2ZpbGVzKGRldikgXAorCWRvIHsgXAorCQlkZXYtPmRlYnVnZnNfdWRjID0gZGVidWdmc19jcmVhdGVfZmlsZShkZXYtPmdhZGdldC5uYW1lLCBcCisJCQlTX0lSVUdPLCBOVUxMLCBkZXYsICZkZWJ1Z19mb3BzKTsgXAorCX0gd2hpbGUgKDApCisjZGVmaW5lIHJlbW92ZV9kZWJ1Z19maWxlcyhkZXYpIFwKKwlkbyB7IFwKKwkJaWYgKGRldi0+ZGVidWdmc191ZGMpIFwKKwkJCWRlYnVnZnNfcmVtb3ZlKGRldi0+ZGVidWdmc191ZGMpOyBcCisJfSB3aGlsZSAoMCkKKworI2Vsc2UJLyogIUNPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZJTEVTICovCisKKyNkZWZpbmUgY3JlYXRlX2RlYnVnX2ZpbGVzKGRldikgZG8ge30gd2hpbGUgKDApCisjZGVmaW5lIHJlbW92ZV9kZWJ1Z19maWxlcyhkZXYpIGRvIHt9IHdoaWxlICgwKQorCisjZW5kaWYJLyogQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgKi8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyoKKyAqCXVkY19kaXNhYmxlIC0gZGlzYWJsZSBVU0IgZGV2aWNlIGNvbnRyb2xsZXIKKyAqLworc3RhdGljIHZvaWQgdWRjX2Rpc2FibGUoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwkvKiBibG9jayBhbGwgaXJxcyAqLworCXVkY19zZXRfbWFza19VRENDUihVRENDUl9TUk18VURDQ1JfUkVNKTsKKwlVSUNSMCA9IFVJQ1IxID0gMHhmZjsKKwlVRk5SSCA9IFVGTlJIX1NJTTsKKworCS8qIGlmIGhhcmR3YXJlIHN1cHBvcnRzIGl0LCBkaXNjb25uZWN0IGZyb20gdXNiICovCisJcHVsbHVwX29mZigpOworCisJdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfVURFKTsKKworCWVwMF9pZGxlIChkZXYpOworCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX1VOS05PV047Cit9CisKKworLyoKKyAqCXVkY19yZWluaXQgLSBpbml0aWFsaXplIHNvZnR3YXJlIHN0YXRlCisgKi8KK3N0YXRpYyB2b2lkIHVkY19yZWluaXQoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwl1MzIJaTsKKworCS8qIGRldmljZS9lcDAgcmVjb3JkcyBpbml0ICovCisJSU5JVF9MSVNUX0hFQUQgKCZkZXYtPmdhZGdldC5lcF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCAoJmRldi0+Z2FkZ2V0LmVwMC0+ZXBfbGlzdCk7CisJZGV2LT5lcDBzdGF0ZSA9IEVQMF9JRExFOworCisJLyogYmFzaWMgZW5kcG9pbnQgcmVjb3JkcyBpbml0ICovCisJZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7CisJCXN0cnVjdCBweGEyNXhfZXAgKmVwID0gJmRldi0+ZXBbaV07CisKKwkJaWYgKGkgIT0gMCkKKwkJCWxpc3RfYWRkX3RhaWwgKCZlcC0+ZXAuZXBfbGlzdCwgJmRldi0+Z2FkZ2V0LmVwX2xpc3QpOworCisJCWVwLT5kZXNjID0gTlVMTDsKKwkJZXAtPnN0b3BwZWQgPSAwOworCQlJTklUX0xJU1RfSEVBRCAoJmVwLT5xdWV1ZSk7CisJCWVwLT5waW9faXJxcyA9IDA7CisJfQorCisJLyogdGhlIHJlc3Qgd2FzIHN0YXRpY2FsbHkgaW5pdGlhbGl6ZWQsIGFuZCBpcyByZWFkLW9ubHkgKi8KK30KKworLyogdW50aWwgaXQncyBlbmFibGVkLCB0aGlzIFVEQyBzaG91bGQgYmUgY29tcGxldGVseSBpbnZpc2libGUKKyAqIHRvIGFueSBVU0IgaG9zdC4KKyAqLworc3RhdGljIHZvaWQgdWRjX2VuYWJsZSAoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9VREUpOworCisJLyogdHJ5IHRvIGNsZWFyIHRoZXNlIGJpdHMgYmVmb3JlIHdlIGVuYWJsZSB0aGUgdWRjICovCisJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfU1VTSVJ8LypVRENDUl9SU1RJUnwqL1VEQ0NSX1JFU0lSKTsKKworCWVwMF9pZGxlKGRldik7CisJZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKKwlkZXYtPnN0YXRzLmlycXMgPSAwOworCisJLyoKKwkgKiBzZXF1ZW5jZSB0YWtlbiBmcm9tIGNoYXB0ZXIgMTIuNS4xMCwgUFhBMjUwIEFwcFByb2NEZXZNYW51YWw6CisJICogLSBlbmFibGUgVURDCisJICogLSBpZiBSRVNFVCBpcyBhbHJlYWR5IGluIHByb2dyZXNzLCBhY2sgaW50ZXJydXB0CisJICogLSB1bm1hc2sgcmVzZXQgaW50ZXJydXB0CisJICovCisJdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7CisJaWYgKCEoVURDQ1IgJiBVRENDUl9VREEpKQorCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SU1RJUik7CisKKwlpZiAoZGV2LT5oYXNfY2ZyIC8qIFVEQ19SRVMyIGlzIGRlZmluZWQgKi8pIHsKKwkJLyogcHhhMjU1IChhMCspIGNhbiBhdm9pZCBhIHNldF9jb25maWcgcmFjZSB0aGF0IGNvdWxkCisJCSAqIHByZXZlbnQgZ2FkZ2V0IGRyaXZlcnMgZnJvbSBjb25maWd1cmluZyBjb3JyZWN0bHkKKwkJICovCisJCVVEQ0NGUiA9IFVEQ0NGUl9BQ00gfCBVRENDRlJfTUIxOworCX0gZWxzZSB7CisJCS8qICJVU0IgdGVzdCBtb2RlIiBmb3IgcHhhMjUwIGVycmF0YSA0MC00MiAoc3RlcHBpbmcgYTAsIGExKQorCQkgKiB3aGljaCBjb3VsZCByZXN1bHQgaW4gbWlzc2luZyBwYWNrZXRzIGFuZCBpbnRlcnJ1cHRzLgorCQkgKiBzdXBwb3NlZGx5IG9uZSBiaXQgcGVyIGVuZHBvaW50LCBjb250cm9sbGluZyB3aGV0aGVyIGl0CisJCSAqIGRvdWJsZSBidWZmZXJzIG9yIG5vdDsgQUNNL0FSRU4gYml0cyBmaXQgaW50byB0aGUgaG9sZXMuCisJCSAqIHplcm8gYml0cyAobGlrZSBVU0lSMF9JUngpIGRpc2FibGUgZG91YmxlIGJ1ZmZlcmluZy4KKwkJICovCisJCVVEQ19SRVMxID0gMHgwMDsKKwkJVURDX1JFUzIgPSAweDAwOworCX0KKworCS8qIGVuYWJsZSBzdXNwZW5kL3Jlc3VtZSBhbmQgcmVzZXQgaXJxcyAqLworCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1NSTSB8IFVEQ0NSX1JFTSk7CisKKwkvKiBlbmFibGUgZXAwIGlycXMgKi8KKwlVSUNSMCAmPSB+VUlDUjBfSU0wOworCisJLyogaWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQsIHB1bGx1cCBEKyBhbmQgd2FpdCBmb3IgcmVzZXQgKi8KKwlwdWxsdXBfb24oKTsKK30KKworCisvKiB3aGVuIGEgZHJpdmVyIGlzIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkLCBpdCB3aWxsIHJlY2VpdmUKKyAqIGNvbnRyb2wgcmVxdWVzdHMgaW5jbHVkaW5nIHNldF9jb25maWd1cmF0aW9uKCksIHdoaWNoIGVuYWJsZXMKKyAqIG5vbi1jb250cm9sIHJlcXVlc3RzLiAgdGhlbiB1c2IgdHJhZmZpYyBmb2xsb3dzIHVudGlsIGEKKyAqIGRpc2Nvbm5lY3QgaXMgcmVwb3J0ZWQuICB0aGVuIGEgaG9zdCBtYXkgY29ubmVjdCBhZ2Fpbiwgb3IKKyAqIHRoZSBkcml2ZXIgbWlnaHQgZ2V0IHVuYm91bmQuCisgKi8KK2ludCB1c2JfZ2FkZ2V0X3JlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gdGhlX2NvbnRyb2xsZXI7CisJaW50CQkJcmV0dmFsOworCisJaWYgKCFkcml2ZXIKKwkJCXx8IGRyaXZlci0+c3BlZWQgPCBVU0JfU1BFRURfRlVMTAorCQkJfHwgIWRyaXZlci0+YmluZAorCQkJfHwgIWRyaXZlci0+ZGlzY29ubmVjdAorCQkJfHwgIWRyaXZlci0+c2V0dXApCisJCXJldHVybiAtRUlOVkFMOworCWlmICghZGV2KQorCQlyZXR1cm4gLUVOT0RFVjsKKwlpZiAoZGV2LT5kcml2ZXIpCisJCXJldHVybiAtRUJVU1k7CisKKwkvKiBmaXJzdCBob29rIHVwIHRoZSBkcml2ZXIgLi4uICovCisJZGV2LT5kcml2ZXIgPSBkcml2ZXI7CisJZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9ICZkcml2ZXItPmRyaXZlcjsKKwlkZXYtPnB1bGx1cCA9IDE7CisKKwlyZXR2YWwgPSBkZXZpY2VfYWRkICgmZGV2LT5nYWRnZXQuZGV2KTsKKwlpZiAocmV0dmFsKSB7CitmYWlsOgorCQlkZXYtPmRyaXZlciA9IE5VTEw7CisJCWRldi0+Z2FkZ2V0LmRldi5kcml2ZXIgPSBOVUxMOworCQlyZXR1cm4gcmV0dmFsOworCX0KKwlyZXR2YWwgPSBkcml2ZXItPmJpbmQoJmRldi0+Z2FkZ2V0KTsKKwlpZiAocmV0dmFsKSB7CisJCURNU0coImJpbmQgdG8gZHJpdmVyICVzIC0tPiBlcnJvciAlZFxuIiwKKwkJCQlkcml2ZXItPmRyaXZlci5uYW1lLCByZXR2YWwpOworCQlkZXZpY2VfZGVsICgmZGV2LT5nYWRnZXQuZGV2KTsKKwkJZ290byBmYWlsOworCX0KKworCS8qIC4uLiB0aGVuIGVuYWJsZSBob3N0IGRldGVjdGlvbiBhbmQgZXAwOyBhbmQgd2UncmUgcmVhZHkKKwkgKiBmb3Igc2V0X2NvbmZpZ3VyYXRpb24gYXMgd2VsbCBhcyBldmVudHVhbCBkaXNjb25uZWN0LgorCSAqLworCURNU0coInJlZ2lzdGVyZWQgZ2FkZ2V0IGRyaXZlciAnJXMnXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKKwlwdWxsdXAoZGV2KTsKKwlkdW1wX3N0YXRlKGRldik7CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKHVzYl9nYWRnZXRfcmVnaXN0ZXJfZHJpdmVyKTsKKworc3RhdGljIHZvaWQKK3N0b3BfYWN0aXZpdHkoc3RydWN0IHB4YTI1eF91ZGMgKmRldiwgc3RydWN0IHVzYl9nYWRnZXRfZHJpdmVyICpkcml2ZXIpCit7CisJaW50IGk7CisKKwkvKiBkb24ndCBkaXNjb25uZWN0IGRyaXZlcnMgbW9yZSB0aGFuIG9uY2UgKi8KKwlpZiAoZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pCisJCWRyaXZlciA9IE5VTEw7CisJZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKKworCS8qIHByZXZlbnQgbmV3IHJlcXVlc3Qgc3VibWlzc2lvbnMsIGtpbGwgYW55IG91dHN0YW5kaW5nIHJlcXVlc3RzICAqLworCWZvciAoaSA9IDA7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgeworCQlzdHJ1Y3QgcHhhMjV4X2VwICplcCA9ICZkZXYtPmVwW2ldOworCisJCWVwLT5zdG9wcGVkID0gMTsKKwkJbnVrZShlcCwgLUVTSFVURE9XTik7CisJfQorCWRlbF90aW1lcl9zeW5jKCZkZXYtPnRpbWVyKTsKKworCS8qIHJlcG9ydCBkaXNjb25uZWN0OyB0aGUgZHJpdmVyIGlzIGFscmVhZHkgcXVpZXNjZWQgKi8KKwlpZiAoZHJpdmVyKQorCQlkcml2ZXItPmRpc2Nvbm5lY3QoJmRldi0+Z2FkZ2V0KTsKKworCS8qIHJlLWluaXQgZHJpdmVyLXZpc2libGUgZGF0YSBzdHJ1Y3R1cmVzICovCisJdWRjX3JlaW5pdChkZXYpOworfQorCitpbnQgdXNiX2dhZGdldF91bnJlZ2lzdGVyX2RyaXZlcihzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gdGhlX2NvbnRyb2xsZXI7CisKKwlpZiAoIWRldikKKwkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKCFkcml2ZXIgfHwgZHJpdmVyICE9IGRldi0+ZHJpdmVyIHx8ICFkcml2ZXItPnVuYmluZCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCWRldi0+cHVsbHVwID0gMDsKKwlwdWxsdXAoZGV2KTsKKwlzdG9wX2FjdGl2aXR5KGRldiwgZHJpdmVyKTsKKwlsb2NhbF9pcnFfZW5hYmxlKCk7CisKKwlkcml2ZXItPnVuYmluZCgmZGV2LT5nYWRnZXQpOworCWRldi0+Z2FkZ2V0LmRldi5kcml2ZXIgPSBOVUxMOworCWRldi0+ZHJpdmVyID0gTlVMTDsKKworCWRldmljZV9kZWwgKCZkZXYtPmdhZGdldC5kZXYpOworCisJRE1TRygidW5yZWdpc3RlcmVkIGdhZGdldCBkcml2ZXIgJyVzJ1xuIiwgZHJpdmVyLT5kcml2ZXIubmFtZSk7CisJZHVtcF9zdGF0ZShkZXYpOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTCh1c2JfZ2FkZ2V0X3VucmVnaXN0ZXJfZHJpdmVyKTsKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSworCisvKiBMdWJib2NrIGhhcyBzZXBhcmF0ZSBjb25uZWN0IGFuZCBkaXNjb25uZWN0IGlycXMuICBNb3JlIHR5cGljYWwgZGVzaWducworICogdXNlIG9uZSBHUElPIGFzIHRoZSBWQlVTIElSUSwgYW5kIGFub3RoZXIgdG8gY29udHJvbCB0aGUgRCsgcHVsbHVwLgorICovCisKK3N0YXRpYyBpcnFyZXR1cm5fdAorbHViYm9ja192YnVzX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSBfZGV2OworCWludAkJCXZidXM7CisKKwlkZXYtPnN0YXRzLmlycXMrKzsKKwlzd2l0Y2ggKGlycSkgeworCWNhc2UgTFVCQk9DS19VU0JfSVJROgorCQl2YnVzID0gMTsKKwkJZGlzYWJsZV9pcnEoTFVCQk9DS19VU0JfSVJRKTsKKwkJZW5hYmxlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSk7CisJCWJyZWFrOworCWNhc2UgTFVCQk9DS19VU0JfRElTQ19JUlE6CisJCXZidXMgPSAwOworCQlkaXNhYmxlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSk7CisJCWVuYWJsZV9pcnEoTFVCQk9DS19VU0JfSVJRKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIElSUV9OT05FOworCX0KKworCXB4YTI1eF91ZGNfdmJ1c19zZXNzaW9uKCZkZXYtPmdhZGdldCwgdmJ1cyk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisjZW5kaWYKKworc3RhdGljIGlycXJldHVybl90IHVkY192YnVzX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSBfZGV2OworCWludAkJCXZidXMgPSBncGlvX2dldF92YWx1ZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7CisKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXNfaW52ZXJ0ZWQpCisJCXZidXMgPSAhdmJ1czsKKworCXB4YTI1eF91ZGNfdmJ1c19zZXNzaW9uKCZkZXYtPmdhZGdldCwgdmJ1cyk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9lcF9zdGF0ZSAoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwl1bnNpZ25lZCBpOworCisJLyogaGFyZHdhcmUgU0VUX3tDT05GSUdVUkFUSU9OLElOVEVSRkFDRX0gYXV0b21hZ2ljIHJlc2V0cyBlbmRwb2ludAorCSAqIGZpZm9zLCBhbmQgcGVuZGluZyB0cmFuc2FjdGlvbnMgbXVzdG4ndCBiZSBjb250aW51ZWQgaW4gYW55IGNhc2UuCisJICovCisJZm9yIChpID0gMTsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKQorCQludWtlKCZkZXYtPmVwW2ldLCAtRUNPTk5BQk9SVEVEKTsKK30KKworc3RhdGljIHZvaWQgdWRjX3dhdGNoZG9nKHVuc2lnbmVkIGxvbmcgX2RldikKK3sKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkqZGV2ID0gKHZvaWQgKilfZGV2OworCisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwlpZiAoZGV2LT5lcDBzdGF0ZSA9PSBFUDBfU1RBTEwKKwkJCSYmIChVRENDUzAgJiBVRENDUzBfRlNUKSA9PSAwCisJCQkmJiAoVURDQ1MwICYgVURDQ1MwX1NTVCkgPT0gMCkgeworCQlVRENDUzAgPSBVRENDUzBfRlNUfFVEQ0NTMF9GVEY7CisJCURCRyhEQkdfVkVSQk9TRSwgImVwMCByZS1zdGFsbFxuIik7CisJCXN0YXJ0X3dhdGNoZG9nKGRldik7CisJfQorCWxvY2FsX2lycV9lbmFibGUoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlX2VwMCAoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwl1MzIJCQl1ZGNjczAgPSBVRENDUzA7CisJc3RydWN0IHB4YTI1eF9lcAkqZXAgPSAmZGV2LT5lcCBbMF07CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisJdW5pb24geworCQlzdHJ1Y3QgdXNiX2N0cmxyZXF1ZXN0CXI7CisJCXU4CQkJcmF3IFs4XTsKKwkJdTMyCQkJd29yZCBbMl07CisJfSB1OworCisJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCisJCXJlcSA9IE5VTEw7CisJZWxzZQorCQlyZXEgPSBsaXN0X2VudHJ5KGVwLT5xdWV1ZS5uZXh0LCBzdHJ1Y3QgcHhhMjV4X3JlcXVlc3QsIHF1ZXVlKTsKKworCS8qIGNsZWFyIHN0YWxsIHN0YXR1cyAqLworCWlmICh1ZGNjczAgJiBVRENDUzBfU1NUKSB7CisJCW51a2UoZXAsIC1FUElQRSk7CisJCVVEQ0NTMCA9IFVEQ0NTMF9TU1Q7CisJCWRlbF90aW1lcigmZGV2LT50aW1lcik7CisJCWVwMF9pZGxlKGRldik7CisJfQorCisJLyogcHJldmlvdXMgcmVxdWVzdCB1bmZpbmlzaGVkPyAgbm9uLWVycm9yIGlmZiBiYWNrLXRvLWJhY2sgLi4uICovCisJaWYgKCh1ZGNjczAgJiBVRENDUzBfU0EpICE9IDAgJiYgZGV2LT5lcDBzdGF0ZSAhPSBFUDBfSURMRSkgeworCQludWtlKGVwLCAwKTsKKwkJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKKwkJZXAwX2lkbGUoZGV2KTsKKwl9CisKKwlzd2l0Y2ggKGRldi0+ZXAwc3RhdGUpIHsKKwljYXNlIEVQMF9JRExFOgorCQkvKiBsYXRlLWJyZWFraW5nIHN0YXR1cz8gKi8KKwkJdWRjY3MwID0gVURDQ1MwOworCisJCS8qIHN0YXJ0IGNvbnRyb2wgcmVxdWVzdD8gKi8KKwkJaWYgKGxpa2VseSgodWRjY3MwICYgKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBfFVEQ0NTMF9STkUpKQorCQkJCT09IChVRENDUzBfT1BSfFVEQ0NTMF9TQXxVRENDUzBfUk5FKSkpIHsKKwkJCWludCBpOworCisJCQludWtlIChlcCwgLUVQUk9UTyk7CisKKwkJCS8qIHJlYWQgU0VUVVAgcGFja2V0ICovCisJCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCQkJaWYgKHVubGlrZWx5KCEoVURDQ1MwICYgVURDQ1MwX1JORSkpKSB7CitiYWRfc2V0dXA6CisJCQkJCURNU0coIlNFVFVQICVkIVxuIiwgaSk7CisJCQkJCWdvdG8gc3RhbGw7CisJCQkJfQorCQkJCXUucmF3IFtpXSA9ICh1OCkgVUREUjA7CisJCQl9CisJCQlpZiAodW5saWtlbHkoKFVEQ0NTMCAmIFVEQ0NTMF9STkUpICE9IDApKQorCQkJCWdvdG8gYmFkX3NldHVwOworCitnb3Rfc2V0dXA6CisJCQlEQkcoREJHX1ZFUkJPU0UsICJTRVRVUCAlMDJ4LiUwMnggdiUwNHggaSUwNHggbCUwNHhcbiIsCisJCQkJdS5yLmJSZXF1ZXN0VHlwZSwgdS5yLmJSZXF1ZXN0LAorCQkJCWxlMTZfdG9fY3B1KHUuci53VmFsdWUpLAorCQkJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpLAorCQkJCWxlMTZfdG9fY3B1KHUuci53TGVuZ3RoKSk7CisKKwkJCS8qIGNvcGUgd2l0aCBhdXRvbWFnaWMgZm9yIHNvbWUgc3RhbmRhcmQgcmVxdWVzdHMuICovCisJCQlkZXYtPnJlcV9zdGQgPSAodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9UWVBFX01BU0spCisJCQkJCQk9PSBVU0JfVFlQRV9TVEFOREFSRDsKKwkJCWRldi0+cmVxX2NvbmZpZyA9IDA7CisJCQlkZXYtPnJlcV9wZW5kaW5nID0gMTsKKwkJCXN3aXRjaCAodS5yLmJSZXF1ZXN0KSB7CisJCQkvKiBoYXJkd2FyZSByZXN0cmljdHMgZ2FkZ2V0IGRyaXZlcnMgaGVyZSEgKi8KKwkJCWNhc2UgVVNCX1JFUV9TRVRfQ09ORklHVVJBVElPTjoKKwkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfREVWSUNFKSB7CisJCQkJCS8qIHJlZmxlY3QgaGFyZHdhcmUncyBhdXRvbWFnaWMKKwkJCQkJICogdXAgdG8gdGhlIGdhZGdldCBkcml2ZXIuCisJCQkJCSAqLworY29uZmlnX2NoYW5nZToKKwkJCQkJZGV2LT5yZXFfY29uZmlnID0gMTsKKwkJCQkJY2xlYXJfZXBfc3RhdGUoZGV2KTsKKwkJCQkJLyogaWYgIWhhc19jZnIsIHRoZXJlJ3Mgbm8gc3luY2gKKwkJCQkJICogZWxzZSB1c2UgQVJFTiAobGF0ZXIpIG5vdCBTQXxPUFIKKwkJCQkJICogVVNJUjBfSVIwIGFjdHMgZWRnZSBzZW5zaXRpdmUKKwkJCQkJICovCisJCQkJfQorCQkJCWJyZWFrOworCQkJLyogLi4uIGFuZCBoZXJlLCBldmVuIG1vcmUgLi4uICovCisJCQljYXNlIFVTQl9SRVFfU0VUX0lOVEVSRkFDRToKKwkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfSU5URVJGQUNFKSB7CisJCQkJCS8qIHVkYyBoYXJkd2FyZSBpcyBicm9rZW4gYnkgZGVzaWduOgorCQkJCQkgKiAgLSBhbHRzZXR0aW5nIG1heSBvbmx5IGJlIHplcm87CisJCQkJCSAqICAtIGh3IHJlc2V0cyBhbGwgaW50ZXJmYWNlcycgZXBzOworCQkJCQkgKiAgLSBlcCByZXNldCBkb2Vzbid0IGluY2x1ZGUgaGFsdCg/KS4KKwkJCQkJICovCisJCQkJCURNU0coImJyb2tlbiBzZXRfaW50ZXJmYWNlICglZC8lZClcbiIsCisJCQkJCQlsZTE2X3RvX2NwdSh1LnIud0luZGV4KSwKKwkJCQkJCWxlMTZfdG9fY3B1KHUuci53VmFsdWUpKTsKKwkJCQkJZ290byBjb25maWdfY2hhbmdlOworCQkJCX0KKwkJCQlicmVhazsKKwkJCS8qIGhhcmR3YXJlIHdhcyBzdXBwb3NlZCB0byBoaWRlIHRoaXMgKi8KKwkJCWNhc2UgVVNCX1JFUV9TRVRfQUREUkVTUzoKKwkJCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSA9PSBVU0JfUkVDSVBfREVWSUNFKSB7CisJCQkJCWVwMHN0YXJ0KGRldiwgMCwgImFkZHJlc3MiKTsKKwkJCQkJcmV0dXJuOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKworCQkJaWYgKHUuci5iUmVxdWVzdFR5cGUgJiBVU0JfRElSX0lOKQorCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfSU5fREFUQV9QSEFTRTsKKwkJCWVsc2UKKwkJCQlkZXYtPmVwMHN0YXRlID0gRVAwX09VVF9EQVRBX1BIQVNFOworCisJCQlpID0gZGV2LT5kcml2ZXItPnNldHVwKCZkZXYtPmdhZGdldCwgJnUucik7CisJCQlpZiAoaSA8IDApIHsKKwkJCQkvKiBoYXJkd2FyZSBhdXRvbWFnaWMgcHJldmVudGluZyBTVEFMTC4uLiAqLworCQkJCWlmIChkZXYtPnJlcV9jb25maWcpIHsKKwkJCQkJLyogaGFyZHdhcmUgc29tZXRpbWVzIG5lZ2xlY3RzIHRvIHRlbGwKKwkJCQkJICogdGVsbCB1cyBhYm91dCBjb25maWcgY2hhbmdlIGV2ZW50cywKKwkJCQkJICogc28gbGF0ZXIgb25lcyBtYXkgZmFpbC4uLgorCQkJCQkgKi8KKwkJCQkJV0FSTigiY29uZmlnIGNoYW5nZSAlMDJ4IGZhaWwgJWQ/XG4iLAorCQkJCQkJdS5yLmJSZXF1ZXN0LCBpKTsKKwkJCQkJcmV0dXJuOworCQkJCQkvKiBUT0RPIGV4cGVyaW1lbnQ6ICBpZiBoYXNfY2ZyLAorCQkJCQkgKiBoYXJkd2FyZSBkaWRuJ3QgQUNLOyBtYXliZSB3ZQorCQkJCQkgKiBjb3VsZCBhY3R1YWxseSBTVEFMTCEKKwkJCQkJICovCisJCQkJfQorCQkJCURCRyhEQkdfVkVSQk9TRSwgInByb3RvY29sIFNUQUxMLCAiCisJCQkJCSIlMDJ4IGVyciAlZFxuIiwgVURDQ1MwLCBpKTsKK3N0YWxsOgorCQkJCS8qIHRoZSB3YXRjaGRvZyB0aW1lciBoZWxwcyBkZWFsIHdpdGggY2FzZXMKKwkJCQkgKiB3aGVyZSB1ZGMgc2VlbXMgdG8gY2xlYXIgRlNUIHdyb25nbHksIGFuZAorCQkJCSAqIHRoZW4gTkFLcyBpbnN0ZWFkIG9mIFNUQUxMaW5nLgorCQkJCSAqLworCQkJCWVwMHN0YXJ0KGRldiwgVURDQ1MwX0ZTVHxVRENDUzBfRlRGLCAic3RhbGwiKTsKKwkJCQlzdGFydF93YXRjaGRvZyhkZXYpOworCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfU1RBTEw7CisKKwkJCS8qIGRlZmVycmVkIGkvbyA9PSBubyByZXNwb25zZSB5ZXQgKi8KKwkJCX0gZWxzZSBpZiAoZGV2LT5yZXFfcGVuZGluZykgeworCQkJCWlmIChsaWtlbHkoZGV2LT5lcDBzdGF0ZSA9PSBFUDBfSU5fREFUQV9QSEFTRQorCQkJCQkJfHwgZGV2LT5yZXFfc3RkIHx8IHUuci53TGVuZ3RoKSkKKwkJCQkJZXAwc3RhcnQoZGV2LCAwLCAiZGVmZXIiKTsKKwkJCQllbHNlCisJCQkJCWVwMHN0YXJ0KGRldiwgVURDQ1MwX0lQUiwgImRlZmVyL0lQUiIpOworCQkJfQorCisJCQkvKiBleHBlY3QgYXQgbGVhc3Qgb25lIGRhdGEgb3Igc3RhdHVzIHN0YWdlIGlycSAqLworCQkJcmV0dXJuOworCisJCX0gZWxzZSBpZiAobGlrZWx5KCh1ZGNjczAgJiAoVURDQ1MwX09QUnxVRENDUzBfU0EpKQorCQkJCT09IChVRENDUzBfT1BSfFVEQ0NTMF9TQSkpKSB7CisJCQl1bnNpZ25lZCBpOworCisJCQkvKiBweGEyMTAvMjUwIGVycmF0dW0gMTMxIGZvciBCMC9CMSBzYXlzIFJORSBsaWVzLgorCQkJICogc3RpbGwgb2JzZXJ2ZWQgb24gYSBweGEyNTUgYTAuCisJCQkgKi8KKwkJCURCRyhEQkdfVkVSQk9TRSwgImUxMzFcbiIpOworCQkJbnVrZShlcCwgLUVQUk9UTyk7CisKKwkJCS8qIHJlYWQgU0VUVVAgZGF0YSwgYnV0IGRvbid0IHRydXN0IGl0IHRvbyBtdWNoICovCisJCQlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorCQkJCXUucmF3IFtpXSA9ICh1OCkgVUREUjA7CisJCQlpZiAoKHUuci5iUmVxdWVzdFR5cGUgJiBVU0JfUkVDSVBfTUFTSykKKwkJCQkJPiBVU0JfUkVDSVBfT1RIRVIpCisJCQkJZ290byBzdGFsbDsKKwkJCWlmICh1LndvcmQgWzBdID09IDAgJiYgdS53b3JkIFsxXSA9PSAwKQorCQkJCWdvdG8gc3RhbGw7CisJCQlnb3RvIGdvdF9zZXR1cDsKKwkJfSBlbHNlIHsKKwkJCS8qIHNvbWUgcmFuZG9tIGVhcmx5IElSUToKKwkJCSAqIC0gd2UgYWNrZWQgRlNUCisJCQkgKiAtIElQUiBjbGVhcmVkCisJCQkgKiAtIE9QUiBnb3Qgc2V0LCB3aXRob3V0IFNBIChsaWtlbHkgc3RhdHVzIHN0YWdlKQorCQkJICovCisJCQlVRENDUzAgPSB1ZGNjczAgJiAoVURDQ1MwX1NBfFVEQ0NTMF9PUFIpOworCQl9CisJCWJyZWFrOworCWNhc2UgRVAwX0lOX0RBVEFfUEhBU0U6CQkJLyogR0VUX0RFU0NSSVBUT1IgZXRjICovCisJCWlmICh1ZGNjczAgJiBVRENDUzBfT1BSKSB7CisJCQlVRENDUzAgPSBVRENDUzBfT1BSfFVEQ0NTMF9GVEY7CisJCQlEQkcoREJHX1ZFUkJPU0UsICJlcDBpbiBwcmVtYXR1cmUgc3RhdHVzXG4iKTsKKwkJCWlmIChyZXEpCisJCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJCWVwMF9pZGxlKGRldik7CisJCX0gZWxzZSAvKiBpcnEgd2FzIElQUiBjbGVhcmluZyAqLyB7CisJCQlpZiAocmVxKSB7CisJCQkJLyogdGhpcyBJTiBwYWNrZXQgbWlnaHQgZmluaXNoIHRoZSByZXF1ZXN0ICovCisJCQkJKHZvaWQpIHdyaXRlX2VwMF9maWZvKGVwLCByZXEpOworCQkJfSAvKiBlbHNlIElOIHRva2VuIGJlZm9yZSByZXNwb25zZSB3YXMgd3JpdHRlbiAqLworCQl9CisJCWJyZWFrOworCWNhc2UgRVAwX09VVF9EQVRBX1BIQVNFOgkJLyogU0VUX0RFU0NSSVBUT1IgZXRjICovCisJCWlmICh1ZGNjczAgJiBVRENDUzBfT1BSKSB7CisJCQlpZiAocmVxKSB7CisJCQkJLyogdGhpcyBPVVQgcGFja2V0IG1pZ2h0IGZpbmlzaCB0aGUgcmVxdWVzdCAqLworCQkJCWlmIChyZWFkX2VwMF9maWZvKGVwLCByZXEpKQorCQkJCQlkb25lKGVwLCByZXEsIDApOworCQkJCS8qIGVsc2UgbW9yZSBPVVQgcGFja2V0cyBleHBlY3RlZCAqLworCQkJfSAvKiBlbHNlIE9VVCB0b2tlbiBiZWZvcmUgcmVhZCB3YXMgaXNzdWVkICovCisJCX0gZWxzZSAvKiBpcnEgd2FzIElQUiBjbGVhcmluZyAqLyB7CisJCQlEQkcoREJHX1ZFUkJPU0UsICJlcDBvdXQgcHJlbWF0dXJlIHN0YXR1c1xuIik7CisJCQlpZiAocmVxKQorCQkJCWRvbmUoZXAsIHJlcSwgMCk7CisJCQllcDBfaWRsZShkZXYpOworCQl9CisJCWJyZWFrOworCWNhc2UgRVAwX0VORF9YRkVSOgorCQlpZiAocmVxKQorCQkJZG9uZShlcCwgcmVxLCAwKTsKKwkJLyogYWNrIGNvbnRyb2wtSU4gc3RhdHVzIChtYXliZSBpbi16bHAgd2FzIHNraXBwZWQpCisJCSAqIGFsc28gYXBwZWFycyBhZnRlciBzb21lIGNvbmZpZyBjaGFuZ2UgZXZlbnRzLgorCQkgKi8KKwkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpCisJCQlVRENDUzAgPSBVRENDUzBfT1BSOworCQllcDBfaWRsZShkZXYpOworCQlicmVhazsKKwljYXNlIEVQMF9TVEFMTDoKKwkJVURDQ1MwID0gVURDQ1MwX0ZTVDsKKwkJYnJlYWs7CisJfQorCVVTSVIwID0gVVNJUjBfSVIwOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVfZXAoc3RydWN0IHB4YTI1eF9lcCAqZXApCit7CisJc3RydWN0IHB4YTI1eF9yZXF1ZXN0CSpyZXE7CisJaW50CQkJaXNfaW4gPSBlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU47CisJaW50CQkJY29tcGxldGVkOworCXUzMgkJCXVkY2NzLCB0bXA7CisKKwlkbyB7CisJCWNvbXBsZXRlZCA9IDA7CisJCWlmIChsaWtlbHkgKCFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSkKKwkJCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsCisJCQkJCXN0cnVjdCBweGEyNXhfcmVxdWVzdCwgcXVldWUpOworCQllbHNlCisJCQlyZXEgPSBOVUxMOworCisJCS8vIFRPRE8gY2hlY2sgRlNUIGhhbmRsaW5nCisKKwkJdWRjY3MgPSAqZXAtPnJlZ191ZGNjczsKKwkJaWYgKHVubGlrZWx5KGlzX2luKSkgewkvKiBpcnEgZnJvbSBUUEMsIFNTVCwgb3IgKElTTykgVFVSICovCisJCQl0bXAgPSBVRENDU19CSV9UVVI7CisJCQlpZiAobGlrZWx5KGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykpCisJCQkJdG1wIHw9IFVEQ0NTX0JJX1NTVDsKKwkJCXRtcCAmPSB1ZGNjczsKKwkJCWlmIChsaWtlbHkgKHRtcCkpCisJCQkJKmVwLT5yZWdfdWRjY3MgPSB0bXA7CisJCQlpZiAocmVxICYmIGxpa2VseSAoKHVkY2NzICYgVURDQ1NfQklfVEZTKSAhPSAwKSkKKwkJCQljb21wbGV0ZWQgPSB3cml0ZV9maWZvKGVwLCByZXEpOworCisJCX0gZWxzZSB7CS8qIGlycSBmcm9tIFJQQyAob3IgZm9yIElTTywgUk9GKSAqLworCQkJaWYgKGxpa2VseShlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEspKQorCQkJCXRtcCA9IFVEQ0NTX0JPX1NTVCB8IFVEQ0NTX0JPX0RNRTsKKwkJCWVsc2UKKwkJCQl0bXAgPSBVRENDU19JT19ST0YgfCBVRENDU19JT19ETUU7CisJCQl0bXAgJj0gdWRjY3M7CisJCQlpZiAobGlrZWx5KHRtcCkpCisJCQkJKmVwLT5yZWdfdWRjY3MgPSB0bXA7CisKKwkJCS8qIGZpZm9zIGNhbiBob2xkIHBhY2tldHMsIHJlYWR5IGZvciByZWFkaW5nLi4uICovCisJCQlpZiAobGlrZWx5KHJlcSkpIHsKKwkJCQljb21wbGV0ZWQgPSByZWFkX2ZpZm8oZXAsIHJlcSk7CisJCQl9IGVsc2UKKwkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKKwkJfQorCQllcC0+cGlvX2lycXMrKzsKKwl9IHdoaWxlIChjb21wbGV0ZWQpOworfQorCisvKgorICoJcHhhMjV4X3VkY19pcnEgLSBpbnRlcnJ1cHQgaGFuZGxlcgorICoKKyAqIGF2b2lkIGRlbGF5cyBpbiBlcDAgcHJvY2Vzc2luZy4gdGhlIGNvbnRyb2wgaGFuZHNoYWtpbmcgaXNuJ3QgYWx3YXlzCisgKiB1bmRlciBzb2Z0d2FyZSBjb250cm9sIChweGEyNTBjMCBhbmQgdGhlIHB4YTI1NSBhcmUgYmV0dGVyKSwgYW5kIGRlbGF5cworICogY291bGQgY2F1c2UgdXNiIHByb3RvY29sIGVycm9ycy4KKyAqLworc3RhdGljIGlycXJldHVybl90CitweGEyNXhfdWRjX2lycShpbnQgaXJxLCB2b2lkICpfZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjCSpkZXYgPSBfZGV2OworCWludAkJCWhhbmRsZWQ7CisKKwlkZXYtPnN0YXRzLmlycXMrKzsKKwlkbyB7CisJCXUzMgkJdWRjY3IgPSBVRENDUjsKKworCQloYW5kbGVkID0gMDsKKworCQkvKiBTVVNwZW5kIEludGVycnVwdCBSZXF1ZXN0ICovCisJCWlmICh1bmxpa2VseSh1ZGNjciAmIFVEQ0NSX1NVU0lSKSkgeworCQkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfU1VTSVIpOworCQkJaGFuZGxlZCA9IDE7CisJCQlEQkcoREJHX1ZFUkJPU0UsICJVU0Igc3VzcGVuZCVzXG4iLCBpc192YnVzX3ByZXNlbnQoKQorCQkJCT8gIiIgOiAiK2Rpc2Nvbm5lY3QiKTsKKworCQkJaWYgKCFpc192YnVzX3ByZXNlbnQoKSkKKwkJCQlzdG9wX2FjdGl2aXR5KGRldiwgZGV2LT5kcml2ZXIpOworCQkJZWxzZSBpZiAoZGV2LT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04KKwkJCQkJJiYgZGV2LT5kcml2ZXIKKwkJCQkJJiYgZGV2LT5kcml2ZXItPnN1c3BlbmQpCisJCQkJZGV2LT5kcml2ZXItPnN1c3BlbmQoJmRldi0+Z2FkZ2V0KTsKKwkJCWVwMF9pZGxlIChkZXYpOworCQl9CisKKwkJLyogUkVTdW1lIEludGVycnVwdCBSZXF1ZXN0ICovCisJCWlmICh1bmxpa2VseSh1ZGNjciAmIFVEQ0NSX1JFU0lSKSkgeworCQkJdWRjX2Fja19pbnRfVURDQ1IoVURDQ1JfUkVTSVIpOworCQkJaGFuZGxlZCA9IDE7CisJCQlEQkcoREJHX1ZFUkJPU0UsICJVU0IgcmVzdW1lXG4iKTsKKworCQkJaWYgKGRldi0+Z2FkZ2V0LnNwZWVkICE9IFVTQl9TUEVFRF9VTktOT1dOCisJCQkJCSYmIGRldi0+ZHJpdmVyCisJCQkJCSYmIGRldi0+ZHJpdmVyLT5yZXN1bWUKKwkJCQkJJiYgaXNfdmJ1c19wcmVzZW50KCkpCisJCQkJZGV2LT5kcml2ZXItPnJlc3VtZSgmZGV2LT5nYWRnZXQpOworCQl9CisKKwkJLyogUmVTZVQgSW50ZXJydXB0IFJlcXVlc3QgLSBVU0IgcmVzZXQgKi8KKwkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfUlNUSVIpKSB7CisJCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SU1RJUik7CisJCQloYW5kbGVkID0gMTsKKworCQkJaWYgKChVRENDUiAmIFVEQ0NSX1VEQSkgPT0gMCkgeworCQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXNldCBzdGFydFxuIik7CisKKwkJCQkvKiByZXNldCBkcml2ZXIgYW5kIGVuZHBvaW50cywKKwkJCQkgKiBpbiBjYXNlIHRoYXQncyBub3QgeWV0IGRvbmUKKwkJCQkgKi8KKwkJCQlzdG9wX2FjdGl2aXR5IChkZXYsIGRldi0+ZHJpdmVyKTsKKworCQkJfSBlbHNlIHsKKwkJCQlEQkcoREJHX1ZFUkJPU0UsICJVU0IgcmVzZXQgZW5kXG4iKTsKKwkJCQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9GVUxMOworCQkJCW1lbXNldCgmZGV2LT5zdGF0cywgMCwgc2l6ZW9mIGRldi0+c3RhdHMpOworCQkJCS8qIGRyaXZlciBhbmQgZW5kcG9pbnRzIGFyZSBzdGlsbCByZXNldCAqLworCQkJfQorCisJCX0gZWxzZSB7CisJCQl1MzIJdXNpcjAgPSBVU0lSMCAmIH5VSUNSMDsKKwkJCXUzMgl1c2lyMSA9IFVTSVIxICYgflVJQ1IxOworCQkJaW50CWk7CisKKwkJCWlmICh1bmxpa2VseSAoIXVzaXIwICYmICF1c2lyMSkpCisJCQkJY29udGludWU7CisKKwkJCURCRyhEQkdfVkVSWV9OT0lTWSwgImlycSAlMDJ4LiUwMnhcbiIsIHVzaXIxLCB1c2lyMCk7CisKKwkJCS8qIGNvbnRyb2wgdHJhZmZpYyAqLworCQkJaWYgKHVzaXIwICYgVVNJUjBfSVIwKSB7CisJCQkJZGV2LT5lcFswXS5waW9faXJxcysrOworCQkJCWhhbmRsZV9lcDAoZGV2KTsKKwkJCQloYW5kbGVkID0gMTsKKwkJCX0KKworCQkJLyogZW5kcG9pbnQgZGF0YSB0cmFuc2ZlcnMgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJCQl1MzIJdG1wID0gMSA8PCBpOworCisJCQkJaWYgKGkgJiYgKHVzaXIwICYgdG1wKSkgeworCQkJCQloYW5kbGVfZXAoJmRldi0+ZXBbaV0pOworCQkJCQlVU0lSMCB8PSB0bXA7CisJCQkJCWhhbmRsZWQgPSAxOworCQkJCX0KKwkJCQlpZiAodXNpcjEgJiB0bXApIHsKKwkJCQkJaGFuZGxlX2VwKCZkZXYtPmVwW2krOF0pOworCQkJCQlVU0lSMSB8PSB0bXA7CisJCQkJCWhhbmRsZWQgPSAxOworCQkJCX0KKwkJCX0KKwkJfQorCisJCS8qIHdlIGNvdWxkIGFsc28gYXNrIGZvciAxIG1zZWMgU09GIChTSVIpIGludGVycnVwdHMgKi8KKworCX0gd2hpbGUgKGhhbmRsZWQpOworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIHZvaWQgbm9wX3JlbGVhc2UgKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlETVNHKCIlcyAlc1xuIiwgX19mdW5jX18sIGRldi0+YnVzX2lkKTsKK30KKworLyogdGhpcyB1c2VzIGxvYWQtdGltZSBhbGxvY2F0aW9uIGFuZCBpbml0aWFsaXphdGlvbiAoaW5zdGVhZCBvZgorICogZG9pbmcgaXQgYXQgcnVuLXRpbWUpIHRvIHNhdmUgY29kZSwgZWxpbWluYXRlIGZhdWx0IHBhdGhzLCBhbmQKKyAqIGJlIG1vcmUgb2J2aW91c2x5IGNvcnJlY3QuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcHhhMjV4X3VkYyBtZW1vcnkgPSB7CisJLmdhZGdldCA9IHsKKwkJLm9wcwkJPSAmcHhhMjV4X3VkY19vcHMsCisJCS5lcDAJCT0gJm1lbW9yeS5lcFswXS5lcCwKKwkJLm5hbWUJCT0gZHJpdmVyX25hbWUsCisJCS5kZXYgPSB7CisJCQkuYnVzX2lkCQk9ICJnYWRnZXQiLAorCQkJLnJlbGVhc2UJPSBub3BfcmVsZWFzZSwKKwkJfSwKKwl9LAorCisJLyogY29udHJvbCBlbmRwb2ludCAqLworCS5lcFswXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gZXAwbmFtZSwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gRVAwX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMCwKKwkJLnJlZ191ZGRyCT0gJlVERFIwLAorCX0sCisKKwkvKiBmaXJzdCBncm91cCBvZiBlbmRwb2ludHMgKi8KKwkuZXBbMV0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDFpbi1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzEsCisJCS5yZWdfdWRkcgk9ICZVRERSMSwKKwl9LAorCS5lcFsyXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMm91dC1idWxrIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCisJCX0sCisJCS5kZXYJCT0gJm1lbW9yeSwKKwkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDIsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMiwKKwkJLnJlZ191YmNyCT0gJlVCQ1IyLAorCQkucmVnX3VkZHIJPSAmVUREUjIsCisJfSwKKyNpZm5kZWYgQ09ORklHX1VTQl9QWEEyNVhfU01BTEwKKwkuZXBbM10gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDNpbi1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAzLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzMsCisJCS5yZWdfdWRkcgk9ICZVRERSMywKKwl9LAorCS5lcFs0XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwNG91dC1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDQsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTNCwKKwkJLnJlZ191YmNyCT0gJlVCQ1I0LAorCQkucmVnX3VkZHIJPSAmVUREUjQsCisJfSwKKwkuZXBbNV0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDVpbi1pbnQiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA1LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTNSwKKwkJLnJlZ191ZGRyCT0gJlVERFI1LAorCX0sCisKKwkvKiBzZWNvbmQgZ3JvdXAgb2YgZW5kcG9pbnRzICovCisJLmVwWzZdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA2aW4tYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgNiwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M2LAorCQkucmVnX3VkZHIJPSAmVUREUjYsCisJfSwKKwkuZXBbN10gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDdvdXQtYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSA3LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzcsCisJCS5yZWdfdWJjcgk9ICZVQkNSNywKKwkJLnJlZ191ZGRyCT0gJlVERFI3LAorCX0sCisJLmVwWzhdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXA4aW4taXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgOCwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCisJCS5yZWdfdWRjY3MJPSAmVURDQ1M4LAorCQkucmVnX3VkZHIJPSAmVUREUjgsCisJfSwKKwkuZXBbOV0gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDlvdXQtaXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSA5LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzksCisJCS5yZWdfdWJjcgk9ICZVQkNSOSwKKwkJLnJlZ191ZGRyCT0gJlVERFI5LAorCX0sCisJLmVwWzEwXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTBpbi1pbnQiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMCwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCwKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzEwLAorCQkucmVnX3VkZHIJPSAmVUREUjEwLAorCX0sCisKKwkvKiB0aGlyZCBncm91cCBvZiBlbmRwb2ludHMgKi8KKwkuZXBbMTFdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxMWluLWJ1bGsiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCisJCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDExLAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzExLAorCQkucmVnX3VkZHIJPSAmVUREUjExLAorCX0sCisJLmVwWzEyXSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTJvdXQtYnVsayIsCisJCQkub3BzCQk9ICZweGEyNXhfZXBfb3BzLAorCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSAxMiwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCisJCS5yZWdfdWRjY3MJPSAmVURDQ1MxMiwKKwkJLnJlZ191YmNyCT0gJlVCQ1IxMiwKKwkJLnJlZ191ZGRyCT0gJlVERFIxMiwKKwl9LAorCS5lcFsxM10gPSB7CisJCS5lcCA9IHsKKwkJCS5uYW1lCQk9ICJlcDEzaW4taXNvIiwKKwkJCS5vcHMJCT0gJnB4YTI1eF9lcF9vcHMsCisJCQkubWF4cGFja2V0CT0gSVNPX0ZJRk9fU0laRSwKKwkJfSwKKwkJLmRldgkJPSAmbWVtb3J5LAorCQkuZmlmb19zaXplCT0gSVNPX0ZJRk9fU0laRSwKKwkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTMsCisJCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAorCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTMsCisJCS5yZWdfdWRkcgk9ICZVRERSMTMsCisJfSwKKwkuZXBbMTRdID0geworCQkuZXAgPSB7CisJCQkubmFtZQkJPSAiZXAxNG91dC1pc28iLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IDE0LAorCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzE0LAorCQkucmVnX3ViY3IJPSAmVUJDUjE0LAorCQkucmVnX3VkZHIJPSAmVUREUjE0LAorCX0sCisJLmVwWzE1XSA9IHsKKwkJLmVwID0geworCQkJLm5hbWUJCT0gImVwMTVpbi1pbnQiLAorCQkJLm9wcwkJPSAmcHhhMjV4X2VwX29wcywKKwkJCS5tYXhwYWNrZXQJPSBJTlRfRklGT19TSVpFLAorCQl9LAorCQkuZGV2CQk9ICZtZW1vcnksCisJCS5maWZvX3NpemUJPSBJTlRfRklGT19TSVpFLAorCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxNSwKKwkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lOVCwKKwkJLnJlZ191ZGNjcwk9ICZVRENDUzE1LAorCQkucmVnX3VkZHIJPSAmVUREUjE1LAorCX0sCisjZW5kaWYgLyogIUNPTkZJR19VU0JfUFhBMjVYX1NNQUxMICovCit9OworCisjZGVmaW5lIENQMTVSMF9WRU5ET1JfTUFTSwkweGZmZmZlMDAwCisKKyNpZglkZWZpbmVkKENPTkZJR19BUkNIX1BYQSkKKyNkZWZpbmUgQ1AxNVIwX1hTQ0FMRV9WQUxVRQkweDY5MDUyMDAwCS8qIGludGVsL2FybS94c2NhbGUgKi8KKworI2VsaWYJZGVmaW5lZChDT05GSUdfQVJDSF9JWFA0WFgpCisjZGVmaW5lIENQMTVSMF9YU0NBTEVfVkFMVUUJMHg2OTA1NDAwMAkvKiBpbnRlbC9hcm0vaXhwNHh4ICovCisKKyNlbmRpZgorCisjZGVmaW5lIENQMTVSMF9QUk9EX01BU0sJMHgwMDAwMDNmMAorI2RlZmluZSBQWEEyNXgJCQkweDAwMDAwMTAwCS8qIGFuZCBQWEEyNnggKi8KKyNkZWZpbmUgUFhBMjEwCQkJMHgwMDAwMDEyMAorCisjZGVmaW5lIENQMTVSMF9SRVZfTUFTSwkJMHgwMDAwMDAwZgorCisjZGVmaW5lIENQMTVSMF9QUk9EUkVWX01BU0sJKENQMTVSMF9QUk9EX01BU0sgfCBDUDE1UjBfUkVWX01BU0spCisKKyNkZWZpbmUgUFhBMjU1X0EwCQkweDAwMDAwMTA2CS8qIG9yIFBYQTI2MF9CMSAqLworI2RlZmluZSBQWEEyNTBfQzAJCTB4MDAwMDAxMDUJLyogb3IgUFhBMjZ4X0IwICovCisjZGVmaW5lIFBYQTI1MF9CMgkJMHgwMDAwMDEwNAorI2RlZmluZSBQWEEyNTBfQjEJCTB4MDAwMDAxMDMJLyogb3IgUFhBMjYwX0EwICovCisjZGVmaW5lIFBYQTI1MF9CMAkJMHgwMDAwMDEwMgorI2RlZmluZSBQWEEyNTBfQTEJCTB4MDAwMDAxMDEKKyNkZWZpbmUgUFhBMjUwX0EwCQkweDAwMDAwMTAwCisKKyNkZWZpbmUgUFhBMjEwX0MwCQkweDAwMDAwMTI1CisjZGVmaW5lIFBYQTIxMF9CMgkJMHgwMDAwMDEyNAorI2RlZmluZSBQWEEyMTBfQjEJCTB4MDAwMDAxMjMKKyNkZWZpbmUgUFhBMjEwX0IwCQkweDAwMDAwMTIyCisjZGVmaW5lIElYUDQyNV9BMAkJMHgwMDAwMDFjMQorI2RlZmluZSBJWFA0MjVfQjAJCTB4MDAwMDAxZjEKKyNkZWZpbmUgSVhQNDY1X0FECQkweDAwMDAwMjAwCisKKy8qCisgKglwcm9iZSAtIGJpbmRzIHRvIHRoZSBwbGF0Zm9ybSBkZXZpY2UKKyAqLworc3RhdGljIGludCBfX2luaXQgcHhhMjV4X3VkY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjICpkZXYgPSAmbWVtb3J5OworCWludCByZXR2YWwsIHZidXNfaXJxLCBpcnE7CisJdTMyIGNoaXByZXY7CisKKwkvKiBpbnNpc3Qgb24gSW50ZWwvQVJNL1hTY2FsZSAqLworCWFzbSgibXJjJT8gcDE1LCAwLCAlMCwgYzAsIGMwIiA6ICI9ciIgKGNoaXByZXYpKTsKKwlpZiAoKGNoaXByZXYgJiBDUDE1UjBfVkVORE9SX01BU0spICE9IENQMTVSMF9YU0NBTEVfVkFMVUUpIHsKKwkJcHJfZXJyKCIlczogbm90IFhTY2FsZSFcbiIsIGRyaXZlcl9uYW1lKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJLyogdHJpZ2dlciBjaGlwcmV2LXNwZWNpZmljIGxvZ2ljICovCisJc3dpdGNoIChjaGlwcmV2ICYgQ1AxNVIwX1BST0RSRVZfTUFTSykgeworI2lmCWRlZmluZWQoQ09ORklHX0FSQ0hfUFhBKQorCWNhc2UgUFhBMjU1X0EwOgorCQlkZXYtPmhhc19jZnIgPSAxOworCQlicmVhazsKKwljYXNlIFBYQTI1MF9BMDoKKwljYXNlIFBYQTI1MF9BMToKKwkJLyogQTAvQTEgIm5vdCByZWxlYXNlZCI7IGVwIDEzLCAxNSB1bnVzYWJsZSAqLworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwljYXNlIFBYQTI1MF9CMjogY2FzZSBQWEEyMTBfQjI6CisJY2FzZSBQWEEyNTBfQjE6IGNhc2UgUFhBMjEwX0IxOgorCWNhc2UgUFhBMjUwX0IwOiBjYXNlIFBYQTIxMF9CMDoKKwkJLyogT1VULURNQSBpcyBicm9rZW4gLi4uICovCisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgUFhBMjUwX0MwOiBjYXNlIFBYQTIxMF9DMDoKKwkJYnJlYWs7CisjZWxpZglkZWZpbmVkKENPTkZJR19BUkNIX0lYUDRYWCkKKwljYXNlIElYUDQyNV9BMDoKKwljYXNlIElYUDQyNV9CMDoKKwljYXNlIElYUDQ2NV9BRDoKKwkJZGV2LT5oYXNfY2ZyID0gMTsKKwkJYnJlYWs7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlwcl9lcnIoIiVzOiB1bnJlY29nbml6ZWQgcHJvY2Vzc29yOiAlMDh4XG4iLAorCQkJZHJpdmVyX25hbWUsIGNoaXByZXYpOworCQkvKiBpb3AzeHgsIGl4cDR4eCwgLi4uICovCisJCXJldHVybiAtRU5PREVWOworCX0KKworCWlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKGlycSA8IDApCisJCXJldHVybiAtRU5PREVWOworCisJZGV2LT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsICJVRENDTEsiKTsKKwlpZiAoSVNfRVJSKGRldi0+Y2xrKSkgeworCQlyZXR2YWwgPSBQVFJfRVJSKGRldi0+Y2xrKTsKKwkJZ290byBlcnJfY2xrOworCX0KKworCXByX2RlYnVnKCIlczogSVJRICVkJXMlc1xuIiwgZHJpdmVyX25hbWUsIGlycSwKKwkJZGV2LT5oYXNfY2ZyID8gIiIgOiAiICghY2ZyKSIsCisJCVNJWkVfU1RSICIocGlvKSIKKwkJKTsKKworCS8qIG90aGVyIG5vbi1zdGF0aWMgcGFydHMgb2YgaW5pdCAqLworCWRldi0+ZGV2ID0gJnBkZXYtPmRldjsKKwlkZXYtPm1hY2ggPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKworCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykgeworCQlpZiAoKHJldHZhbCA9IGdwaW9fcmVxdWVzdChkZXYtPm1hY2gtPmdwaW9fdmJ1cywKKwkJCQkicHhhMjV4X3VkYyBHUElPIFZCVVMiKSkpIHsKKwkJCWRldl9kYmcoJnBkZXYtPmRldiwKKwkJCQkiY2FuJ3QgZ2V0IHZidXMgZ3BpbyAlZCwgZXJyOiAlZFxuIiwKKwkJCQlkZXYtPm1hY2gtPmdwaW9fdmJ1cywgcmV0dmFsKTsKKwkJCWdvdG8gZXJyX2dwaW9fdmJ1czsKKwkJfQorCQlncGlvX2RpcmVjdGlvbl9pbnB1dChkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7CisJCXZidXNfaXJxID0gZ3Bpb190b19pcnEoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOworCX0gZWxzZQorCQl2YnVzX2lycSA9IDA7CisKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkgeworCQlpZiAoKHJldHZhbCA9IGdwaW9fcmVxdWVzdChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwLAorCQkJCSJwY2EyNXhfdWRjIEdQSU8gUFVMTFVQIikpKSB7CisJCQlkZXZfZGJnKCZwZGV2LT5kZXYsCisJCQkJImNhbid0IGdldCBwdWxsdXAgZ3BpbyAlZCwgZXJyOiAlZFxuIiwKKwkJCQlkZXYtPm1hY2gtPmdwaW9fcHVsbHVwLCByZXR2YWwpOworCQkJZ290byBlcnJfZ3Bpb19wdWxsdXA7CisJCX0KKwkJZ3Bpb19kaXJlY3Rpb25fb3V0cHV0KGRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsIDApOworCX0KKworCWluaXRfdGltZXIoJmRldi0+dGltZXIpOworCWRldi0+dGltZXIuZnVuY3Rpb24gPSB1ZGNfd2F0Y2hkb2c7CisJZGV2LT50aW1lci5kYXRhID0gKHVuc2lnbmVkIGxvbmcpIGRldjsKKworCWRldmljZV9pbml0aWFsaXplKCZkZXYtPmdhZGdldC5kZXYpOworCWRldi0+Z2FkZ2V0LmRldi5wYXJlbnQgPSAmcGRldi0+ZGV2OworCWRldi0+Z2FkZ2V0LmRldi5kbWFfbWFzayA9IHBkZXYtPmRldi5kbWFfbWFzazsKKworCXRoZV9jb250cm9sbGVyID0gZGV2OworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRldik7CisKKwl1ZGNfZGlzYWJsZShkZXYpOworCXVkY19yZWluaXQoZGV2KTsKKworCWRldi0+dmJ1cyA9IGlzX3ZidXNfcHJlc2VudCgpOworCisJLyogaXJxIHNldHVwIGFmdGVyIG9sZCBoYXJkd2FyZSBzdGF0ZSBpcyBjbGVhbmVkIHVwICovCisJcmV0dmFsID0gcmVxdWVzdF9pcnEoaXJxLCBweGEyNXhfdWRjX2lycSwKKwkJCUlSUUZfRElTQUJMRUQsIGRyaXZlcl9uYW1lLCBkZXYpOworCWlmIChyZXR2YWwgIT0gMCkgeworCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVkLCBlcnIgJWRcbiIsCisJCQlkcml2ZXJfbmFtZSwgaXJxLCByZXR2YWwpOworCQlnb3RvIGVycl9pcnExOworCX0KKwlkZXYtPmdvdF9pcnEgPSAxOworCisjaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSworCWlmIChtYWNoaW5lX2lzX2x1YmJvY2soKSkgeworCQlyZXR2YWwgPSByZXF1ZXN0X2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwKKwkJCQlsdWJib2NrX3ZidXNfaXJxLAorCQkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1NBTVBMRV9SQU5ET00sCisJCQkJZHJpdmVyX25hbWUsIGRldik7CisJCWlmIChyZXR2YWwgIT0gMCkgeworCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAorCQkJCWRyaXZlcl9uYW1lLCBMVUJCT0NLX1VTQl9ESVNDX0lSUSwgcmV0dmFsKTsKK2x1YmJvY2tfZmFpbDA6CisJCQlnb3RvIGVycl9pcnFfbHViOworCQl9CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKExVQkJPQ0tfVVNCX0lSUSwKKwkJCQlsdWJib2NrX3ZidXNfaXJxLAorCQkJCUlSUUZfRElTQUJMRUQgfCBJUlFGX1NBTVBMRV9SQU5ET00sCisJCQkJZHJpdmVyX25hbWUsIGRldik7CisJCWlmIChyZXR2YWwgIT0gMCkgeworCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAorCQkJCWRyaXZlcl9uYW1lLCBMVUJCT0NLX1VTQl9JUlEsIHJldHZhbCk7CisJCQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKKwkJCWdvdG8gbHViYm9ja19mYWlsMDsKKwkJfQorCX0gZWxzZQorI2VuZGlmCisJaWYgKHZidXNfaXJxKSB7CisJCXJldHZhbCA9IHJlcXVlc3RfaXJxKHZidXNfaXJxLCB1ZGNfdmJ1c19pcnEsCisJCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSB8CisJCQkJSVJRRl9UUklHR0VSX1JJU0lORyB8IElSUUZfVFJJR0dFUl9GQUxMSU5HLAorCQkJCWRyaXZlcl9uYW1lLCBkZXYpOworCQlpZiAocmV0dmFsICE9IDApIHsKKwkJCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWksIGVyciAlZFxuIiwKKwkJCQlkcml2ZXJfbmFtZSwgdmJ1c19pcnEsIHJldHZhbCk7CisJCQlnb3RvIGVycl92YnVzX2lycTsKKwkJfQorCX0KKwljcmVhdGVfZGVidWdfZmlsZXMoZGV2KTsKKworCXJldHVybiAwOworCisgZXJyX3ZidXNfaXJxOgorI2lmZGVmCUNPTkZJR19BUkNIX0xVQkJPQ0sKKwlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKKyBlcnJfaXJxX2x1YjoKKyNlbmRpZgorCWZyZWVfaXJxKGlycSwgZGV2KTsKKyBlcnJfaXJxMToKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkKKwkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApOworIGVycl9ncGlvX3B1bGx1cDoKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXMpCisJCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7CisgZXJyX2dwaW9fdmJ1czoKKwljbGtfcHV0KGRldi0+Y2xrKTsKKyBlcnJfY2xrOgorCXJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHB4YTI1eF91ZGNfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqX2RldikKK3sKKwlwdWxsdXBfb2ZmKCk7Cit9CisKK3N0YXRpYyBpbnQgX19leGl0IHB4YTI1eF91ZGNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHB4YTI1eF91ZGMgKmRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJaWYgKGRldi0+ZHJpdmVyKQorCQlyZXR1cm4gLUVCVVNZOworCisJZGV2LT5wdWxsdXAgPSAwOworCXB1bGx1cChkZXYpOworCisJcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldik7CisKKwlpZiAoZGV2LT5nb3RfaXJxKSB7CisJCWZyZWVfaXJxKHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCksIGRldik7CisJCWRldi0+Z290X2lycSA9IDA7CisJfQorI2lmZGVmIENPTkZJR19BUkNIX0xVQkJPQ0sKKwlpZiAobWFjaGluZV9pc19sdWJib2NrKCkpIHsKKwkJZnJlZV9pcnEoTFVCQk9DS19VU0JfRElTQ19JUlEsIGRldik7CisJCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0lSUSwgZGV2KTsKKwl9CisjZW5kaWYKKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3ZidXMpIHsKKwkJZnJlZV9pcnEoZ3Bpb190b19pcnEoZGV2LT5tYWNoLT5ncGlvX3ZidXMpLCBkZXYpOworCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3ZidXMpOworCX0KKwlpZiAoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCkKKwkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb19wdWxsdXApOworCisJY2xrX3B1dChkZXYtPmNsayk7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBOVUxMKTsKKwl0aGVfY29udHJvbGxlciA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNpZmRlZglDT05GSUdfUE0KKworLyogVVNCIHN1c3BlbmQgKGNvbnRyb2xsZWQgYnkgdGhlIGhvc3QpIGFuZCBzeXN0ZW0gc3VzcGVuZCAoY29udHJvbGxlZAorICogYnkgdGhlIFBYQSkgZG9uJ3QgbmVjZXNzYXJpbHkgd29yayB3ZWxsIHRvZ2V0aGVyLiAgSWYgVVNCIGlzIGFjdGl2ZSwKKyAqIHRoZSA0OCBNSHogY2xvY2sgaXMgcmVxdWlyZWQ7IHNvIHRoZSBzeXN0ZW0gY2FuJ3QgZW50ZXIgMzMgTUh6IGlkbGUKKyAqIG1vZGUsIG9yIGFueSBkZWVwZXIgUE0gc2F2aW5nIHN0YXRlLgorICoKKyAqIEZvciBub3csIHdlIHB1bnQgYW5kIGZvcmNpYmx5IGRpc2Nvbm5lY3QgZnJvbSB0aGUgVVNCIGhvc3Qgd2hlbiBQWEEKKyAqIGVudGVycyBhbnkgc3VzcGVuZCBzdGF0ZS4gIFdoaWxlIHdlJ3JlIGRpc2Nvbm5lY3RlZCwgd2UgYWx3YXlzIGRpc2FibGUKKyAqIHRoZSA0OE1IeiBVU0IgY2xvY2sgLi4uIGFsbG93aW5nIFBYQSBzbGVlcCBhbmQvb3IgMzMgTUh6IGlkbGUgc3RhdGVzLgorICogQm9hcmRzIHdpdGhvdXQgc29mdHdhcmUgcHVsbHVwIGNvbnRyb2wgc2hvdWxkbid0IHVzZSB0aG9zZSBzdGF0ZXMuCisgKiBWQlVTIElSUXMgc2hvdWxkIHByb2JhYmx5IGJlIGlnbm9yZWQgc28gdGhhdCB0aGUgUFhBIGRldmljZSBqdXN0IGFjdHMKKyAqICJkZWFkIiB0byBVU0IgaG9zdHMgdW50aWwgc3lzdGVtIHJlc3VtZS4KKyAqLworc3RhdGljIGludCBweGEyNXhfdWRjX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHB4YTI1eF91ZGMJKnVkYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCWlmICghdWRjLT5tYWNoLT5ncGlvX3B1bGx1cCAmJiAhdWRjLT5tYWNoLT51ZGNfY29tbWFuZCkKKwkJV0FSTigiVVNCIGhvc3Qgd29uJ3QgZGV0ZWN0IGRpc2Nvbm5lY3QhXG4iKTsKKwl1ZGMtPnN1c3BlbmRlZCA9IDE7CisKKwlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJcHVsbHVwKHVkYyk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcHhhMjV4X3VkY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBweGEyNXhfdWRjCSp1ZGMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwl1ZGMtPnN1c3BlbmRlZCA9IDA7CisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCXB1bGx1cCh1ZGMpOworCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCXJldHVybiAwOworfQorCisjZWxzZQorI2RlZmluZQlweGEyNXhfdWRjX3N1c3BlbmQJTlVMTAorI2RlZmluZQlweGEyNXhfdWRjX3Jlc3VtZQlOVUxMCisjZW5kaWYKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdWRjX2RyaXZlciA9IHsKKwkuc2h1dGRvd24JPSBweGEyNXhfdWRjX3NodXRkb3duLAorCS5yZW1vdmUJCT0gX19leGl0X3AocHhhMjV4X3VkY19yZW1vdmUpLAorCS5zdXNwZW5kCT0gcHhhMjV4X3VkY19zdXNwZW5kLAorCS5yZXN1bWUJCT0gcHhhMjV4X3VkY19yZXN1bWUsCisJLmRyaXZlcgkJPSB7CisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCQkubmFtZQk9ICJweGEyNXgtdWRjIiwKKwl9LAorfTsKKworc3RhdGljIGludCBfX2luaXQgdWRjX2luaXQodm9pZCkKK3sKKwlwcl9pbmZvKCIlczogdmVyc2lvbiAlc1xuIiwgZHJpdmVyX25hbWUsIERSSVZFUl9WRVJTSU9OKTsKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3Byb2JlKCZ1ZGNfZHJpdmVyLCBweGEyNXhfdWRjX3Byb2JlKTsKK30KK21vZHVsZV9pbml0KHVkY19pbml0KTsKKworc3RhdGljIHZvaWQgX19leGl0IHVkY19leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnVkY19kcml2ZXIpOworfQorbW9kdWxlX2V4aXQodWRjX2V4aXQpOworCitNT0RVTEVfREVTQ1JJUFRJT04oRFJJVkVSX0RFU0MpOworTU9EVUxFX0FVVEhPUigiRnJhbmsgQmVja2VyLCBSb2JlcnQgU2Nod2ViZWwsIERhdmlkIEJyb3duZWxsIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnB4YTI1eC11ZGMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyNXhfdWRjLmggYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkMTFlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjV4X3VkYy5oCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICogSW50ZWwgUFhBMjV4IG9uLWNoaXAgZnVsbCBzcGVlZCBVU0IgZGV2aWNlIGNvbnRyb2xsZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPiwgUGVuZ3V0cm9uaXgKKyAqIENvcHlyaWdodCAoQykgMjAwMyBEYXZpZCBCcm93bmVsbAorICoKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCisgKi8KKworI2lmbmRlZiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMjVYX0gKKyNkZWZpbmUgX19MSU5VWF9VU0JfR0FER0VUX1BYQTI1WF9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBweGEyNXggaGFzIHRoaXMgKG1vdmUgdG8gaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgpICovCisjZGVmaW5lIFVGTlJIX1NJUgkoMSA8PCA3KQkvKiBTT0YgaW50ZXJydXB0IHJlcXVlc3QgKi8KKyNkZWZpbmUgVUZOUkhfU0lNCSgxIDw8IDYpCS8qIFNPRiBpbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBVRk5SSF9JUEUxNAkoMSA8PCA1KQkvKiBJU08gcGFja2V0IGVycm9yLCBlcDE0ICovCisjZGVmaW5lIFVGTlJIX0lQRTkJKDEgPDwgNCkJLyogSVNPIHBhY2tldCBlcnJvciwgZXA5ICovCisjZGVmaW5lIFVGTlJIX0lQRTQJKDEgPDwgMykJLyogSVNPIHBhY2tldCBlcnJvciwgZXA0ICovCisKKy8qIHB4YTI1NSBoYXMgdGhpcyAobW92ZSB0byBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCkgKi8KKyNkZWZpbmUJVURDQ0ZSCQlVRENfUkVTMgkvKiBVREMgQ29udHJvbCBGdW5jdGlvbiBSZWdpc3RlciAqLworI2RlZmluZSBVRENDRlJfQVJFTgkoMSA8PCA3KQkvKiBBQ0sgcmVzcG9uc2UgZW5hYmxlIChub3cpICovCisjZGVmaW5lIFVEQ0NGUl9BQ00JKDEgPDwgMikJLyogQUNLIGNvbnRyb2wgbW9kZSAod2FpdCBmb3IgQVJFTikgKi8KKworLyogbGF0ZXN0IHB4YTI1NSBlcnJhdGEgZGVmaW5lIG5ldyAibXVzdCBiZSBvbmUiIGJpdHMgaW4gVURDQ0ZSICovCisjZGVmaW5lCVVEQ0NGUl9NQjEJKDB4ZmYgJiB+KFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00pKQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCitzdHJ1Y3QgcHhhMjV4X3VkYzsKKworc3RydWN0IHB4YTI1eF9lcCB7CisJc3RydWN0IHVzYl9lcAkJCQllcDsKKwlzdHJ1Y3QgcHhhMjV4X3VkYwkJCSpkZXY7CisKKwljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7CisJc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOworCXVuc2lnbmVkIGxvbmcJCQkJcGlvX2lycXM7CisKKwl1bnNpZ25lZCBzaG9ydAkJCQlmaWZvX3NpemU7CisJdTgJCQkJCWJFbmRwb2ludEFkZHJlc3M7CisJdTgJCQkJCWJtQXR0cmlidXRlczsKKworCXVuc2lnbmVkCQkJCXN0b3BwZWQgOiAxOworCXVuc2lnbmVkCQkJCWRtYV9maXh1cCA6IDE7CisKKwkvKiBVRENDUyA9IFVEQyBDb250cm9sL1N0YXR1cyBmb3IgdGhpcyBFUAorCSAqIFVCQ1IgPSBVREMgQnl0ZSBDb3VudCBSZW1haW5pbmcgKGNvbnRlbnRzIG9mIE9VVCBmaWZvKQorCSAqIFVERFIgPSBVREMgRW5kcG9pbnQgRGF0YSBSZWdpc3RlciAodGhlIGZpZm8pCisJICogRFJDTSA9IERNQSBSZXF1ZXN0IENoYW5uZWwgTWFwCisJICovCisJdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWRjY3M7CisJdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWJjcjsKKwl2b2xhdGlsZSB1MzIJCQkJKnJlZ191ZGRyOworfTsKKworc3RydWN0IHB4YTI1eF9yZXF1ZXN0IHsKKwlzdHJ1Y3QgdXNiX3JlcXVlc3QJCQlyZXE7CisJc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOworfTsKKworZW51bSBlcDBfc3RhdGUgeworCUVQMF9JRExFLAorCUVQMF9JTl9EQVRBX1BIQVNFLAorCUVQMF9PVVRfREFUQV9QSEFTRSwKKwlFUDBfRU5EX1hGRVIsCisJRVAwX1NUQUxMLAorfTsKKworI2RlZmluZSBFUDBfRklGT19TSVpFCSgodW5zaWduZWQpMTYpCisjZGVmaW5lIEJVTEtfRklGT19TSVpFCSgodW5zaWduZWQpNjQpCisjZGVmaW5lIElTT19GSUZPX1NJWkUJKCh1bnNpZ25lZCkyNTYpCisjZGVmaW5lIElOVF9GSUZPX1NJWkUJKCh1bnNpZ25lZCk4KQorCitzdHJ1Y3QgdWRjX3N0YXRzIHsKKwlzdHJ1Y3QgZXAwc3RhdHMgeworCQl1bnNpZ25lZCBsb25nCQlvcHM7CisJCXVuc2lnbmVkIGxvbmcJCWJ5dGVzOworCX0gcmVhZCwgd3JpdGU7CisJdW5zaWduZWQgbG9uZwkJCWlycXM7Cit9OworCisjaWZkZWYgQ09ORklHX1VTQl9QWEEyNVhfU01BTEwKKy8qIHdoZW4gbWVtb3J5J3MgdGlnaHQsIFNNQUxMIGNvbmZpZyBzYXZlcyBjb2RlK2RhdGEuICAqLworI2RlZmluZQlQWEFfVURDX05VTV9FTkRQT0lOVFMJMworI2VuZGlmCisKKyNpZm5kZWYJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCisjZGVmaW5lCVBYQV9VRENfTlVNX0VORFBPSU5UUwkxNgorI2VuZGlmCisKK3N0cnVjdCBweGEyNXhfdWRjIHsKKwlzdHJ1Y3QgdXNiX2dhZGdldAkJCWdhZGdldDsKKwlzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIJCSpkcml2ZXI7CisKKwllbnVtIGVwMF9zdGF0ZQkJCQllcDBzdGF0ZTsKKwlzdHJ1Y3QgdWRjX3N0YXRzCQkJc3RhdHM7CisJdW5zaWduZWQJCQkJZ290X2lycSA6IDEsCisJCQkJCQl2YnVzIDogMSwKKwkJCQkJCXB1bGx1cCA6IDEsCisJCQkJCQloYXNfY2ZyIDogMSwKKwkJCQkJCXJlcV9wZW5kaW5nIDogMSwKKwkJCQkJCXJlcV9zdGQgOiAxLAorCQkJCQkJcmVxX2NvbmZpZyA6IDEsCisJCQkJCQlzdXNwZW5kZWQgOiAxLAorCQkJCQkJYWN0aXZlIDogMTsKKworI2RlZmluZSBzdGFydF93YXRjaGRvZyhkZXYpIG1vZF90aW1lcigmZGV2LT50aW1lciwgamlmZmllcyArIChIWi8yMDApKQorCXN0cnVjdCB0aW1lcl9saXN0CQkJdGltZXI7CisKKwlzdHJ1Y3QgZGV2aWNlCQkJCSpkZXY7CisJc3RydWN0IGNsawkJCQkqY2xrOworCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2g7CisJdTY0CQkJCQlkbWFfbWFzazsKKwlzdHJ1Y3QgcHhhMjV4X2VwCQkJZXAgW1BYQV9VRENfTlVNX0VORFBPSU5UU107CisKKyNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GUworCXN0cnVjdCBkZW50cnkJCQkJKmRlYnVnZnNfdWRjOworI2VuZGlmCit9OworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSworI2luY2x1ZGUgPGFzbS9hcmNoL2x1YmJvY2suaD4KKy8qIGx1YmJvY2sgY2FuIGFsc28gcmVwb3J0IHVzYiBjb25uZWN0L2Rpc2Nvbm5lY3QgaXJxcyAqLworI2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgcHhhMjV4X3VkYyAqdGhlX2NvbnRyb2xsZXI7CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qCisgKiBEZWJ1Z2dpbmcgc3VwcG9ydCB2YW5pc2hlcyBpbiBub24tZGVidWcgYnVpbGRzLiAgREJHX05PUk1BTCBzaG91bGQgYmUKKyAqIG1vc3RseSBzaWxlbnQgZHVyaW5nIG5vcm1hbCB1c2UvdGVzdGluZywgd2l0aCBubyB0aW1pbmcgc2lkZS1lZmZlY3RzLgorICovCisjZGVmaW5lIERCR19OT1JNQUwJMQkvKiBlcnJvciBwYXRocywgZGV2aWNlIHN0YXRlIHRyYW5zaXRpb25zICovCisjZGVmaW5lIERCR19WRVJCT1NFCTIJLyogYWRkIHNvbWUgc3VjY2VzcyBwYXRoIHRyYWNlIGluZm8gKi8KKyNkZWZpbmUgREJHX05PSVNZCTMJLyogLi4uIGV2ZW4gbW9yZTogcmVxdWVzdCBsZXZlbCAqLworI2RlZmluZSBEQkdfVkVSWV9OT0lTWQk0CS8qIC4uLiBldmVuIG1vcmU6IHBhY2tldCBsZXZlbCAqLworCisjZGVmaW5lIERNU0coc3R1ZmYuLi4pCXByX2RlYnVnKCJ1ZGM6ICIgc3R1ZmYpCisKKyNpZmRlZiBERUJVRworCitzdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKTsKKworc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlX25hbWVbXSA9IHsKKwkiRVAwX0lETEUiLAorCSJFUDBfSU5fREFUQV9QSEFTRSIsICJFUDBfT1VUX0RBVEFfUEhBU0UiLAorCSJFUDBfRU5EX1hGRVIiLCAiRVAwX1NUQUxMIgorfTsKKworI2lmZGVmIFZFUkJPU0VfREVCVUcKKyMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfVkVSQk9TRQorI2Vsc2UKKyMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfTk9STUFMCisjZW5kaWYKKworc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKK2R1bXBfdWRjY3IoY29uc3QgY2hhciAqbGFiZWwpCit7CisJdTMyCXVkY2NyID0gVURDQ1I7CisJRE1TRygiJXMgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwKKwkJbGFiZWwsIHVkY2NyLAorCQkodWRjY3IgJiBVRENDUl9SRU0pID8gIiByZW0iIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1NSTSkgPyAiIHNybSIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfU1VTSVIpID8gIiBzdXNpciIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKKwkJKHVkY2NyICYgVURDQ1JfUlNNKSA/ICIgcnNtIiA6ICIiLAorCQkodWRjY3IgJiBVRENDUl9VREEpID8gIiB1ZGEiIDogIiIsCisJCSh1ZGNjciAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7Cit9CisKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCitkdW1wX3VkY2NzMChjb25zdCBjaGFyICpsYWJlbCkKK3sKKwl1MzIJCXVkY2NzMCA9IFVEQ0NTMDsKKworCURNU0coIiVzICVzICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsCisJCWxhYmVsLCBzdGF0ZV9uYW1lW3RoZV9jb250cm9sbGVyLT5lcDBzdGF0ZV0sIHVkY2NzMCwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAorCQkodWRjY3MwICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKKwkJKHVkY2NzMCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCisJCSh1ZGNjczAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKK30KKworc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKK2R1bXBfc3RhdGUoc3RydWN0IHB4YTI1eF91ZGMgKmRldikKK3sKKwl1MzIJCXRtcDsKKwl1bnNpZ25lZAlpOworCisJRE1TRygiJXMgJXMsIHVpY3IgJTAyWC4lMDJYLCB1c2lyICUwMlguJTAyeCwgdWZuciAlMDJYLiUwMlhcbiIsCisJCWlzX3ZidXNfcHJlc2VudCgpID8gImhvc3QgIiA6ICJkaXNjb25uZWN0ZWQiLAorCQlzdGF0ZV9uYW1lW2Rldi0+ZXAwc3RhdGVdLAorCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKKwlkdW1wX3VkY2NyKCJ1ZGNjciIpOworCWlmIChkZXYtPmhhc19jZnIpIHsKKwkJdG1wID0gVURDQ0ZSOworCQlETVNHKCJ1ZGNjZnIgJTAyWCA9JXMlc1xuIiwgdG1wLAorCQkJKHRtcCAmIFVEQ0NGUl9BUkVOKSA/ICIgYXJlbiIgOiAiIiwKKwkJCSh0bXAgJiBVRENDRlJfQUNNKSA/ICIgYWNtIiA6ICIiKTsKKwl9CisKKwlpZiAoIWRldi0+ZHJpdmVyKSB7CisJCURNU0coIm5vIGdhZGdldCBkcml2ZXIgYm91bmRcbiIpOworCQlyZXR1cm47CisJfSBlbHNlCisJCURNU0coImVwMCBkcml2ZXIgJyVzJ1xuIiwgZGV2LT5kcml2ZXItPmRyaXZlci5uYW1lKTsKKworCWlmICghaXNfdmJ1c19wcmVzZW50KCkpCisJCXJldHVybjsKKworCWR1bXBfdWRjY3MwICgidWRjY3MwIik7CisJRE1TRygiZXAwIElOICVsdS8lbHUsIE9VVCAlbHUvJWx1XG4iLAorCQlkZXYtPnN0YXRzLndyaXRlLmJ5dGVzLCBkZXYtPnN0YXRzLndyaXRlLm9wcywKKwkJZGV2LT5zdGF0cy5yZWFkLmJ5dGVzLCBkZXYtPnN0YXRzLnJlYWQub3BzKTsKKworCWZvciAoaSA9IDE7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgeworCQlpZiAoZGV2LT5lcCBbaV0uZGVzYyA9PSBOVUxMKQorCQkJY29udGludWU7CisJCURNU0cgKCJ1ZGNjcyVkID0gJTAyeFxuIiwgaSwgKmRldi0+ZXAtPnJlZ191ZGNjcyk7CisJfQorfQorCisjZWxzZQorCisjZGVmaW5lCWR1bXBfdWRjY3IoeCkJZG97fXdoaWxlKDApCisjZGVmaW5lCWR1bXBfdWRjY3MwKHgpCWRve313aGlsZSgwKQorI2RlZmluZQlkdW1wX3N0YXRlKHgpCWRve313aGlsZSgwKQorCisjZGVmaW5lIFVEQ19ERUJVRyAoKHVuc2lnbmVkKTApCisKKyNlbmRpZgorCisjZGVmaW5lIERCRyhsdmwsIHN0dWZmLi4uKSBkb3tpZiAoKGx2bCkgPD0gVURDX0RFQlVHKSBETVNHKHN0dWZmKTt9d2hpbGUoMCkKKworI2RlZmluZSBFUlIoc3R1ZmYuLi4pCQlwcl9lcnIoInVkYzogIiBzdHVmZikKKyNkZWZpbmUgV0FSTihzdHVmZi4uLikJCXByX3dhcm5pbmcoInVkYzogIiBzdHVmZikKKyNkZWZpbmUgSU5GTyhzdHVmZi4uLikJCXByX2luZm8oInVkYzogIiBzdHVmZikKKworCisjZW5kaWYgLyogX19MSU5VWF9VU0JfR0FER0VUX1BYQTI1WF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuYwppbmRleCBlMDJiZmQ0Li45YzBlODJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmMKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC91c2IvY2g5Lmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL2dhZGdldC5oPgotCisjaW5jbHVkZSA8YXNtL2FyY2gvcHhhMnh4LXJlZ3MuaD4gLyogRklYTUU6IGZvciBQU1NSICovCiAjaW5jbHVkZSA8YXNtL2FyY2gvdWRjLmg+CiAKICNpbmNsdWRlICJweGEyN3hfdWRjLmgiCkBAIC0yMzYwLDE4ICsyMzYwLDE5IEBACiAJICogU29mdHdhcmUgbXVzdCBjb25maWd1cmUgdGhlIFVTQiBPVEcgcGFkLCBVREMsIGFuZCBVSEMKIAkgKiB0byB0aGUgc3RhdGUgdGhleSB3ZXJlIGluIGJlZm9yZSBlbnRlcmluZyBzbGVlcCBtb2RlLgogCSAqLwotCVBTU1IgfD0gUFNTUl9PVEdQSDsKKwlpZiAoY3B1X2lzX3B4YTI3eCgpKQorCQlQU1NSIHw9IFBTU1JfT1RHUEg7CiAKIAlyZXR1cm4gMDsKIH0KICNlbmRpZgogCiAvKiB3b3JrIHdpdGggaG90cGx1ZyBhbmQgY29sZHBsdWcgKi8KLU1PRFVMRV9BTElBUygicGxhdGZvcm06cHhhMnh4LXVkYyIpOworTU9EVUxFX0FMSUFTKCJwbGF0Zm9ybTpweGEyN3gtdWRjIik7CiAKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHVkY19kcml2ZXIgPSB7CiAJLmRyaXZlcgkJPSB7Ci0JCS5uYW1lCT0gInB4YTJ4eC11ZGMiLAorCQkubmFtZQk9ICJweGEyN3gtdWRjIiwKIAkJLm93bmVyCT0gVEhJU19NT0RVTEUsCiAJfSwKIAkucmVtb3ZlCQk9IF9fZXhpdF9wKHB4YV91ZGNfcmVtb3ZlKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmggYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMjd4X3VkYy5oCmluZGV4IDk3NDUzZGIuLjFkMWI3OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyN3hfdWRjLmgKKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTI3eF91ZGMuaApAQCAtNDg0LDEyICs0ODQsNCBAQAogI2RlZmluZSBlcF93YXJuKGVwLCBmbXQsIGFyZy4uLikgXAogCWRldl93YXJuKGVwLT5kZXYtPmRldiwgIiVzOiVzOiIgZm10LCBFUE5BTUUoZXApLCBfX2Z1bmNfXywgIyMgYXJnKQogCi0vKgotICogQ2Fubm90IGluY2x1ZGUgcHhhLXJlZ3MuaCwgYXMgcmVnaXN0ZXIgbmFtZXMgYXJlIHNpbWlsYXIuCi0gKiBTbyBQU1NSIGlzIHJlZGVmaW5lZCBoZXJlLiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2UgVURDIHJlZ2lzdGVycyB3aWxsCi0gKiBiZSBnb25lIGZyb20gcHhhLXJlZ3MuaC4KLSAqLwotI2RlZmluZSBQU1NSCQlfX1JFRygweDQwRjAwMDA0KQkvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX09UR1BICSgxIDw8IDYpCQkvKiBPVEcgUGVyaXBoZXJhbCBIb2xkICovCi0KICNlbmRpZiAvKiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMjdYX0ggKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGY2OTliLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzgzICswLDAgQEAKLS8qCi0gKiBsaW51eC9kcml2ZXJzL3VzYi9nYWRnZXQvcHhhMnh4X3VkYy5jCi0gKiBJbnRlbCBQWEEyNXggYW5kIElYUDR4eCBvbi1jaGlwIGZ1bGwgc3BlZWQgVVNCIGRldmljZSBjb250cm9sbGVycwotICoKLSAqIENvcHlyaWdodCAoQykgMjAwMiBJbnRyaW5zeWMsIEluYy4gKEZyYW5rIEJlY2tlcikKLSAqIENvcHlyaWdodCAoQykgMjAwMyBSb2JlcnQgU2Nod2ViZWwsIFBlbmd1dHJvbml4Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgQmVuZWRpa3QgU3ByYW5nZXIsIFBlbmd1dHJvbml4Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgRGF2aWQgQnJvd25lbGwKLSAqIENvcHlyaWdodCAoQykgMjAwMyBKb3NodWEgV2lzZQotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLSAqCi0gKi8KLQotLyogI2RlZmluZSBWRVJCT1NFX0RFQlVHICovCi0KLSNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KLSNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+Ci0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Ci0jaW5jbHVkZSA8bGludXgvaW5pdC5oPgotI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+Ci0jaW5jbHVkZSA8bGludXgvbGlzdC5oPgotI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+Ci0jaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KLSNpbmNsdWRlIDxsaW51eC9pcnEuaD4KLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4KLSNpbmNsdWRlIDxsaW51eC9lcnIuaD4KLSNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgotI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KLQotI2luY2x1ZGUgPGFzbS9ieXRlb3JkZXIuaD4KLSNpbmNsdWRlIDxhc20vZG1hLmg+Ci0jaW5jbHVkZSA8YXNtL2dwaW8uaD4KLSNpbmNsdWRlIDxhc20vaW8uaD4KLSNpbmNsdWRlIDxhc20vc3lzdGVtLmg+Ci0jaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+Ci0jaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+Ci0KLSNpbmNsdWRlIDxsaW51eC91c2IvY2g5Lmg+Ci0jaW5jbHVkZSA8bGludXgvdXNiL2dhZGdldC5oPgotCi0jaW5jbHVkZSA8YXNtL21hY2gvdWRjX3B4YTJ4eC5oPgotCi0KLS8qCi0gKiBUaGlzIGRyaXZlciBoYW5kbGVzIHRoZSBVU0IgRGV2aWNlIENvbnRyb2xsZXIgKFVEQykgaW4gSW50ZWwncyBQWEEgMjV4Ci0gKiBzZXJpZXMgcHJvY2Vzc29ycy4gIFRoZSBVREMgZm9yIHRoZSBJWFAgNHh4IHNlcmllcyBpcyB2ZXJ5IHNpbWlsYXIuCi0gKiBUaGVyZSBhcmUgZmlmdGVlbiBlbmRwb2ludHMsIGluIGFkZGl0aW9uIHRvIGVwMC4KLSAqCi0gKiBTdWNoIGNvbnRyb2xsZXIgZHJpdmVycyB3b3JrIHdpdGggYSBnYWRnZXQgZHJpdmVyLiAgVGhlIGdhZGdldCBkcml2ZXIKLSAqIHJldHVybnMgZGVzY3JpcHRvcnMsIGltcGxlbWVudHMgY29uZmlndXJhdGlvbiBhbmQgZGF0YSBwcm90b2NvbHMgdXNlZAotICogYnkgdGhlIGhvc3QgdG8gaW50ZXJhY3Qgd2l0aCB0aGlzIGRldmljZSwgYW5kIGFsbG9jYXRlcyBlbmRwb2ludHMgdG8KLSAqIHRoZSBkaWZmZXJlbnQgcHJvdG9jb2wgaW50ZXJmYWNlcy4gIFRoZSBjb250cm9sbGVyIGRyaXZlciB2aXJ0dWFsaXplcwotICogdXNiIGhhcmR3YXJlIHNvIHRoYXQgdGhlIGdhZGdldCBkcml2ZXJzIHdpbGwgYmUgbW9yZSBwb3J0YWJsZS4KLSAqCi0gKiBUaGlzIFVEQyBoYXJkd2FyZSB3YW50cyB0byBpbXBsZW1lbnQgYSBiaXQgdG9vIG11Y2ggVVNCIHByb3RvY29sLCBzbwotICogaXQgY29uc3RyYWlucyB0aGUgc29ydHMgb2YgVVNCIGNvbmZpZ3VyYXRpb24gY2hhbmdlIGV2ZW50cyB0aGF0IHdvcmsuCi0gKiBUaGUgZXJyYXRhIGZvciB0aGVzZSBjaGlwcyBhcmUgbWlzbGVhZGluZzsgc29tZSAiZml4ZWQiIGJ1Z3MgZnJvbQotICogcHhhMjUwIGEwL2ExIGIwL2IxL2IyIHN1cmUgYWN0IGxpa2UgdGhleSdyZSBzdGlsbCB0aGVyZS4KLSAqCi0gKiBOb3RlIHRoYXQgdGhlIFVEQyBoYXJkd2FyZSBzdXBwb3J0cyBETUEgKGV4Y2VwdCBvbiBJWFApIGJ1dCB0aGF0J3MKLSAqIG5vdCB1c2VkIGhlcmUuICBJTi1ETUEgKHRvIGhvc3QpIGlzIHNpbXBsZSBlbm91Z2gsIHdoZW4gdGhlIGRhdGEgaXMKLSAqIHN1aXRhYmx5IGFsaWduZWQgKDE2IGJ5dGVzKSAuLi4gdGhlIG5ldHdvcmsgc3RhY2sgZG9lc24ndCBkbyB0aGF0LAotICogb3RoZXIgc29mdHdhcmUgY2FuLiAgT1VULURNQSBpcyBidWdneSBpbiBtb3N0IGNoaXAgdmVyc2lvbnMsIGFzIHdlbGwKLSAqIGFzIHBvb3JseSBkZXNpZ25lZCAoZGF0YSB0b2dnbGUgbm90IGF1dG9tYXRpYykuICBTbyB0aGlzIGRyaXZlciB3b24ndAotICogYm90aGVyIHVzaW5nIERNQS4gIChNb3N0bHktd29ya2luZyBJTi1ETUEgc3VwcG9ydCB3YXMgYXZhaWxhYmxlIGluCi0gKiBrZXJuZWxzIGJlZm9yZSAyLjYuMjMsIGJ1dCB3YXMgbmV2ZXIgZW5hYmxlZCBvciB3ZWxsIHRlc3RlZC4pCi0gKi8KLQotI2RlZmluZQlEUklWRVJfVkVSU0lPTgkiMzAtSnVuZS0yMDA3IgotI2RlZmluZQlEUklWRVJfREVTQwkiUFhBIDI1eCBVU0IgRGV2aWNlIENvbnRyb2xsZXIgZHJpdmVyIgotCi0KLXN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9uYW1lIFtdID0gInB4YTJ4eF91ZGMiOwotCi1zdGF0aWMgY29uc3QgY2hhciBlcDBuYW1lIFtdID0gImVwMCI7Ci0KLQotI2lmZGVmIENPTkZJR19BUkNIX0lYUDRYWAotCi0vKiBjcHUtc3BlY2lmaWMgcmVnaXN0ZXIgYWRkcmVzc2VzIGFyZSBjb21waWxlZCBpbiB0byB0aGlzIGNvZGUgKi8KLSNpZmRlZiBDT05GSUdfQVJDSF9QWEEKLSNlcnJvciAiQ2FuJ3QgY29uZmlndXJlIGJvdGggSVhQIGFuZCBQWEEiCi0jZW5kaWYKLQotLyogSVhQIGRvZXNuJ3QgeWV0IHN1cHBvcnQgPGxpbnV4L2Nsay5oPiAqLwotI2RlZmluZSBjbGtfZ2V0KGRldixuYW1lKQlOVUxMCi0jZGVmaW5lIGNsa19lbmFibGUoY2xrKQkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBjbGtfZGlzYWJsZShjbGspCWRvIHsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xrX3B1dChjbGspCQlkbyB7IH0gd2hpbGUgKDApCi0KLSNlbmRpZgotCi0jaW5jbHVkZSAicHhhMnh4X3VkYy5oIgotCi0KLSNpZmRlZglDT05GSUdfVVNCX1BYQTJYWF9TTUFMTAotI2RlZmluZSBTSVpFX1NUUgkiIChzbWFsbCkiCi0jZWxzZQotI2RlZmluZSBTSVpFX1NUUgkiIgotI2VuZGlmCi0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICoJZW5kcG9pbnQgcmVsYXRlZCBwYXJ0cyBvZiB0aGUgYXBpIHRvIHRoZSB1c2IgY29udHJvbGxlciBoYXJkd2FyZSwKLSAqCXVzZWQgYnkgZ2FkZ2V0IGRyaXZlcjsgYW5kIHRoZSBpbm5lciB0YWxrZXItdG8taGFyZHdhcmUgY29yZS4KLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0KLXN0YXRpYyB2b2lkIHB4YTJ4eF9lcF9maWZvX2ZsdXNoIChzdHJ1Y3QgdXNiX2VwICplcCk7Ci1zdGF0aWMgdm9pZCBudWtlIChzdHJ1Y3QgcHhhMnh4X2VwICosIGludCBzdGF0dXMpOwotCi0vKiBvbmUgR1BJTyBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgVkJVUyBmcm9tIHRoZSBob3N0ICovCi1zdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKQotewotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKLQotCWlmIChtYWNoLT5ncGlvX3ZidXMpIHsKLQkJaW50IHZhbHVlID0gZ3Bpb19nZXRfdmFsdWUobWFjaC0+Z3Bpb192YnVzKTsKLQkJcmV0dXJuIG1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCA/ICF2YWx1ZSA6IHZhbHVlOwotCX0KLQlpZiAobWFjaC0+dWRjX2lzX2Nvbm5lY3RlZCkKLQkJcmV0dXJuIG1hY2gtPnVkY19pc19jb25uZWN0ZWQoKTsKLQlyZXR1cm4gMTsKLX0KLQotLyogb25lIEdQSU8gc2hvdWxkIGNvbnRyb2wgYSBEKyBwdWxsdXAsIHNvIGhvc3Qgc2VlcyB0aGlzIGRldmljZSAob3Igbm90KSAqLwotc3RhdGljIHZvaWQgcHVsbHVwX29mZih2b2lkKQotewotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2ggPSB0aGVfY29udHJvbGxlci0+bWFjaDsKLQotCWlmIChtYWNoLT5ncGlvX3B1bGx1cCkKLQkJZ3Bpb19zZXRfdmFsdWUobWFjaC0+Z3Bpb19wdWxsdXAsIDApOwotCWVsc2UgaWYgKG1hY2gtPnVkY19jb21tYW5kKQotCQltYWNoLT51ZGNfY29tbWFuZChQWEEyWFhfVURDX0NNRF9ESVNDT05ORUNUKTsKLX0KLQotc3RhdGljIHZvaWQgcHVsbHVwX29uKHZvaWQpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGNfbWFjaF9pbmZvCQkqbWFjaCA9IHRoZV9jb250cm9sbGVyLT5tYWNoOwotCi0JaWYgKG1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX3NldF92YWx1ZShtYWNoLT5ncGlvX3B1bGx1cCwgMSk7Ci0JZWxzZSBpZiAobWFjaC0+dWRjX2NvbW1hbmQpCi0JCW1hY2gtPnVkY19jb21tYW5kKFBYQTJYWF9VRENfQ01EX0NPTk5FQ1QpOwotfQotCi1zdGF0aWMgdm9pZCBwaW9faXJxX2VuYWJsZShpbnQgYkVuZHBvaW50QWRkcmVzcykKLXsKLSAgICAgICAgYkVuZHBvaW50QWRkcmVzcyAmPSAweGY7Ci0gICAgICAgIGlmIChiRW5kcG9pbnRBZGRyZXNzIDwgOCkKLSAgICAgICAgICAgICAgICBVSUNSMCAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGJFbmRwb2ludEFkZHJlc3MgLT0gODsKLSAgICAgICAgICAgICAgICBVSUNSMSAmPSB+KDEgPDwgYkVuZHBvaW50QWRkcmVzcyk7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCBwaW9faXJxX2Rpc2FibGUoaW50IGJFbmRwb2ludEFkZHJlc3MpCi17Ci0gICAgICAgIGJFbmRwb2ludEFkZHJlc3MgJj0gMHhmOwotICAgICAgICBpZiAoYkVuZHBvaW50QWRkcmVzcyA8IDgpCi0gICAgICAgICAgICAgICAgVUlDUjAgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBiRW5kcG9pbnRBZGRyZXNzIC09IDg7Ci0gICAgICAgICAgICAgICAgVUlDUjEgfD0gMSA8PCBiRW5kcG9pbnRBZGRyZXNzOwotICAgICAgICB9Ci19Ci0KLS8qIFRoZSBVRENDUiByZWcgY29udGFpbnMgbWFzayBhbmQgaW50ZXJydXB0IHN0YXR1cyBiaXRzLAotICogc28gdXNpbmcgJ3w9JyBpc24ndCBzYWZlIGFzIGl0IG1heSBhY2sgYW4gaW50ZXJydXB0LgotICovCi0jZGVmaW5lIFVEQ0NSX01BU0tfQklUUyAgICAgICAgIChVRENDUl9SRU0gfCBVRENDUl9TUk0gfCBVRENDUl9VREUpCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCB1ZGNfc2V0X21hc2tfVURDQ1IoaW50IG1hc2spCi17Ci0JVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpIHwgKG1hc2sgJiBVRENDUl9NQVNLX0JJVFMpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgdWRjX2NsZWFyX21hc2tfVURDQ1IoaW50IG1hc2spCi17Ci0JVURDQ1IgPSAoVURDQ1IgJiBVRENDUl9NQVNLX0JJVFMpICYgfihtYXNrICYgVURDQ1JfTUFTS19CSVRTKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVkY19hY2tfaW50X1VEQ0NSKGludCBtYXNrKQotewotCS8qIHVkY2NyIGNvbnRhaW5zIHRoZSBiaXRzIHdlIGRvbnQgd2FudCB0byBjaGFuZ2UgKi8KLQlfX3UzMiB1ZGNjciA9IFVEQ0NSICYgVURDQ1JfTUFTS19CSVRTOwotCi0JVURDQ1IgPSB1ZGNjciB8IChtYXNrICYgflVEQ0NSX01BU0tfQklUUyk7Ci19Ci0KLS8qCi0gKiBlbmRwb2ludCBlbmFibGUvZGlzYWJsZQotICoKLSAqIHdlIG5lZWQgdG8gdmVyaWZ5IHRoZSBkZXNjcmlwdG9ycyB1c2VkIHRvIGVuYWJsZSBlbmRwb2ludHMuICBzaW5jZSBweGEyeHgKLSAqIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zIGFyZSBmaXhlZCwgYW5kIGFyZSBwcmV0dHkgbXVjaCBhbHdheXMgZW5hYmxlZCwKLSAqIHRoZXJlJ3Mgbm90IGEgbG90IHRvIG1hbmFnZSBoZXJlLgotICoKLSAqIGJlY2F1c2UgcHhhMnh4IGNhbid0IHNlbGVjdGl2ZWx5IGluaXRpYWxpemUgYnVsayAob3IgaW50ZXJydXB0KSBlbmRwb2ludHMsCi0gKiAocmVzZXR0aW5nIGVuZHBvaW50IGhhbHQgYW5kIHRvZ2dsZSksIFNFVF9JTlRFUkZBQ0UgaXMgdW51c2FibGUgZXhjZXB0Ci0gKiBmb3IgYSBzaW5nbGUgaW50ZXJmYWNlICh3aXRoIG9ubHkgdGhlIGRlZmF1bHQgYWx0c2V0dGluZykgYW5kIGZvciBnYWRnZXQKLSAqIGRyaXZlcnMgdGhhdCBkb24ndCBoYWx0IGVuZHBvaW50cyAobm90IHJlc2V0IGJ5IHNldF9pbnRlcmZhY2UpLiAgdGhhdCBhbHNvCi0gKiBtZWFucyB0aGF0IGlmIHlvdSB1c2UgSVNPLCB5b3UgbXVzdCB2aW9sYXRlIHRoZSBVU0Igc3BlYyBydWxlIHRoYXQgYWxsCi0gKiBpc28gZW5kcG9pbnRzIG11c3QgYmUgaW4gbm9uLWRlZmF1bHQgYWx0c2V0dGluZ3MuCi0gKi8KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2VuYWJsZSAoc3RydWN0IHVzYl9lcCAqX2VwLAotCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IgKmRlc2MpCi17Ci0Jc3RydWN0IHB4YTJ4eF9lcCAgICAgICAgKmVwOwotCXN0cnVjdCBweGEyeHhfdWRjICAgICAgICpkZXY7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZiAoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXAgfHwgIWRlc2MgfHwgZXAtPmRlc2MgfHwgX2VwLT5uYW1lID09IGVwMG5hbWUKLQkJCXx8IGRlc2MtPmJEZXNjcmlwdG9yVHlwZSAhPSBVU0JfRFRfRU5EUE9JTlQKLQkJCXx8IGVwLT5iRW5kcG9pbnRBZGRyZXNzICE9IGRlc2MtPmJFbmRwb2ludEFkZHJlc3MKLQkJCXx8IGVwLT5maWZvX3NpemUgPCBsZTE2X3RvX2NwdQotCQkJCQkJKGRlc2MtPndNYXhQYWNrZXRTaXplKSkgewotCQlETVNHKCIlcywgYmFkIGVwIG9yIGRlc2NyaXB0b3JcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogeGZlciB0eXBlcyBtdXN0IG1hdGNoLCBleGNlcHQgdGhhdCBpbnRlcnJ1cHQgfj0gYnVsayAqLwotCWlmIChlcC0+Ym1BdHRyaWJ1dGVzICE9IGRlc2MtPmJtQXR0cmlidXRlcwotCQkJJiYgZXAtPmJtQXR0cmlidXRlcyAhPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCi0JCQkmJiBkZXNjLT5ibUF0dHJpYnV0ZXMgIT0gVVNCX0VORFBPSU5UX1hGRVJfSU5UKSB7Ci0JCURNU0coIiVzLCAlcyB0eXBlIG1pc21hdGNoXG4iLCBfX2Z1bmNfXywgX2VwLT5uYW1lKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JLyogaGFyZHdhcmUgX2NvdWxkXyBkbyBzbWFsbGVyLCBidXQgZHJpdmVyIGRvZXNuJ3QgKi8KLQlpZiAoKGRlc2MtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLCi0JCQkJJiYgbGUxNl90b19jcHUgKGRlc2MtPndNYXhQYWNrZXRTaXplKQotCQkJCQkJIT0gQlVMS19GSUZPX1NJWkUpCi0JCQl8fCAhZGVzYy0+d01heFBhY2tldFNpemUpIHsKLQkJRE1TRygiJXMsIGJhZCAlcyBtYXhwYWNrZXRcbiIsIF9fZnVuY19fLCBfZXAtPm5hbWUpOwotCQlyZXR1cm4gLUVSQU5HRTsKLQl9Ci0KLQlkZXYgPSBlcC0+ZGV2OwotCWlmICghZGV2LT5kcml2ZXIgfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pIHsKLQkJRE1TRygiJXMsIGJvZ3VzIGRldmljZSBzdGF0ZVxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVTSFVURE9XTjsKLQl9Ci0KLQllcC0+ZGVzYyA9IGRlc2M7Ci0JZXAtPnN0b3BwZWQgPSAwOwotCWVwLT5waW9faXJxcyA9IDA7Ci0JZXAtPmVwLm1heHBhY2tldCA9IGxlMTZfdG9fY3B1IChkZXNjLT53TWF4UGFja2V0U2l6ZSk7Ci0KLQkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIE9VVCBidWZmZXJzKSAqLwotCXB4YTJ4eF9lcF9maWZvX2ZsdXNoIChfZXApOwotCi0JLyogLi4uIHJlc2V0IGhhbHQgc3RhdGUgdG9vLCBpZiB3ZSBjb3VsZCAuLi4gKi8KLQotCURCRyhEQkdfVkVSQk9TRSwgImVuYWJsZWQgJXNcbiIsIF9lcC0+bmFtZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2Rpc2FibGUgKHN0cnVjdCB1c2JfZXAgKl9lcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotCWVwID0gY29udGFpbmVyX29mIChfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAoIV9lcCB8fCAhZXAtPmRlc2MpIHsKLQkJRE1TRygiJXMsICVzIG5vdCBlbmFibGVkXG4iLCBfX2Z1bmNfXywKLQkJCV9lcCA/IGVwLT5lcC5uYW1lIDogTlVMTCk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQludWtlIChlcCwgLUVTSFVURE9XTik7Ci0KLQkvKiBmbHVzaCBmaWZvIChtb3N0bHkgZm9yIElOIGJ1ZmZlcnMpICovCi0JcHhhMnh4X2VwX2ZpZm9fZmx1c2ggKF9lcCk7Ci0KLQllcC0+ZGVzYyA9IE5VTEw7Ci0JZXAtPnN0b3BwZWQgPSAxOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCURCRyhEQkdfVkVSQk9TRSwgIiVzIGRpc2FibGVkXG4iLCBfZXAtPm5hbWUpOwotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBmb3IgdGhlIHB4YTJ4eCwgdGhlc2UgY2FuIGp1c3Qgd3JhcCBrbWFsbG9jL2tmcmVlLiAgZ2FkZ2V0IGRyaXZlcnMKLSAqIG11c3Qgc3RpbGwgcGFzcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQgZW5kcG9pbnRzLCBzaW5jZSBvdGhlciBjb250cm9sbGVyCi0gKiBkcml2ZXJzIG1heSBjYXJlIGFib3V0IGhvdyBpdCdzIGN1cnJlbnRseSBzZXQgdXAgKGRtYSBpc3N1ZXMgZXRjKS4KLSAqLwotCi0vKgotICoJcHhhMnh4X2VwX2FsbG9jX3JlcXVlc3QgLSBhbGxvY2F0ZSBhIHJlcXVlc3QgZGF0YSBzdHJ1Y3R1cmUKLSAqLwotc3RhdGljIHN0cnVjdCB1c2JfcmVxdWVzdCAqCi1weGEyeHhfZXBfYWxsb2NfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBnZnBfdCBnZnBfZmxhZ3MpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXE7Ci0KLQlyZXEgPSBremFsbG9jKHNpemVvZigqcmVxKSwgZ2ZwX2ZsYWdzKTsKLQlpZiAoIXJlcSkKLQkJcmV0dXJuIE5VTEw7Ci0KLQlJTklUX0xJU1RfSEVBRCAoJnJlcS0+cXVldWUpOwotCXJldHVybiAmcmVxLT5yZXE7Ci19Ci0KLQotLyoKLSAqCXB4YTJ4eF9lcF9mcmVlX3JlcXVlc3QgLSBkZWFsbG9jYXRlIGEgcmVxdWVzdCBkYXRhIHN0cnVjdHVyZQotICovCi1zdGF0aWMgdm9pZAotcHhhMnh4X2VwX2ZyZWVfcmVxdWVzdCAoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0CSpyZXE7Ci0KLQlyZXEgPSBjb250YWluZXJfb2YgKF9yZXEsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcmVxKTsKLQlXQVJOX09OICghbGlzdF9lbXB0eSAoJnJlcS0+cXVldWUpKTsKLQlrZnJlZShyZXEpOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICoJZG9uZSAtIHJldGlyZSBhIHJlcXVlc3Q7IGNhbGxlciBibG9ja2VkIGlycXMKLSAqLwotc3RhdGljIHZvaWQgZG9uZShzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEsIGludCBzdGF0dXMpCi17Ci0JdW5zaWduZWQJCXN0b3BwZWQgPSBlcC0+c3RvcHBlZDsKLQotCWxpc3RfZGVsX2luaXQoJnJlcS0+cXVldWUpOwotCi0JaWYgKGxpa2VseSAocmVxLT5yZXEuc3RhdHVzID09IC1FSU5QUk9HUkVTUykpCi0JCXJlcS0+cmVxLnN0YXR1cyA9IHN0YXR1czsKLQllbHNlCi0JCXN0YXR1cyA9IHJlcS0+cmVxLnN0YXR1czsKLQotCWlmIChzdGF0dXMgJiYgc3RhdHVzICE9IC1FU0hVVERPV04pCi0JCURCRyhEQkdfVkVSQk9TRSwgImNvbXBsZXRlICVzIHJlcSAlcCBzdGF0ICVkIGxlbiAldS8ldVxuIiwKLQkJCWVwLT5lcC5uYW1lLCAmcmVxLT5yZXEsIHN0YXR1cywKLQkJCXJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKLQotCS8qIGRvbid0IG1vZGlmeSBxdWV1ZSBoZWFkcyBkdXJpbmcgY29tcGxldGlvbiBjYWxsYmFjayAqLwotCWVwLT5zdG9wcGVkID0gMTsKLQlyZXEtPnJlcS5jb21wbGV0ZSgmZXAtPmVwLCAmcmVxLT5yZXEpOwotCWVwLT5zdG9wcGVkID0gc3RvcHBlZDsKLX0KLQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZXAwX2lkbGUgKHN0cnVjdCBweGEyeHhfdWRjICpkZXYpCi17Ci0JZGV2LT5lcDBzdGF0ZSA9IEVQMF9JRExFOwotfQotCi1zdGF0aWMgaW50Ci13cml0ZV9wYWNrZXQodm9sYXRpbGUgdTMyICp1ZGRyLCBzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QgKnJlcSwgdW5zaWduZWQgbWF4KQotewotCXU4CQkqYnVmOwotCXVuc2lnbmVkCWxlbmd0aCwgY291bnQ7Ci0KLQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JcHJlZmV0Y2goYnVmKTsKLQotCS8qIGhvdyBiaWcgd2lsbCB0aGlzIHBhY2tldCBiZT8gKi8KLQlsZW5ndGggPSBtaW4ocmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCBtYXgpOwotCXJlcS0+cmVxLmFjdHVhbCArPSBsZW5ndGg7Ci0KLQljb3VudCA9IGxlbmd0aDsKLQl3aGlsZSAobGlrZWx5KGNvdW50LS0pKQotCQkqdWRkciA9ICpidWYrKzsKLQotCXJldHVybiBsZW5ndGg7Ci19Ci0KLS8qCi0gKiB3cml0ZSB0byBhbiBJTiBlbmRwb2ludCBmaWZvLCBhcyBtYW55IHBhY2tldHMgYXMgcG9zc2libGUuCi0gKiBpcnFzIHdpbGwgdXNlIHRoaXMgdG8gd3JpdGUgdGhlIHJlc3QgbGF0ZXIuCi0gKiBjYWxsZXIgZ3VhcmFudGVlcyBhdCBsZWFzdCBvbmUgcGFja2V0IGJ1ZmZlciBpcyByZWFkeSAob3IgYSB6bHApLgotICovCi1zdGF0aWMgaW50Ci13cml0ZV9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdW5zaWduZWQJCW1heDsKLQotCW1heCA9IGxlMTZfdG9fY3B1KGVwLT5kZXNjLT53TWF4UGFja2V0U2l6ZSk7Ci0JZG8gewotCQl1bnNpZ25lZAljb3VudDsKLQkJaW50CQlpc19sYXN0LCBpc19zaG9ydDsKLQotCQljb3VudCA9IHdyaXRlX3BhY2tldChlcC0+cmVnX3VkZHIsIHJlcSwgbWF4KTsKLQotCQkvKiBsYXN0IHBhY2tldCBpcyB1c3VhbGx5IHNob3J0IChvciBhIHpscCkgKi8KLQkJaWYgKHVubGlrZWx5IChjb3VudCAhPSBtYXgpKQotCQkJaXNfbGFzdCA9IGlzX3Nob3J0ID0gMTsKLQkJZWxzZSB7Ci0JCQlpZiAobGlrZWx5KHJlcS0+cmVxLmxlbmd0aCAhPSByZXEtPnJlcS5hY3R1YWwpCi0JCQkJCXx8IHJlcS0+cmVxLnplcm8pCi0JCQkJaXNfbGFzdCA9IDA7Ci0JCQllbHNlCi0JCQkJaXNfbGFzdCA9IDE7Ci0JCQkvKiBpbnRlcnJ1cHQvaXNvIG1heHBhY2tldCBtYXkgbm90IGZpbGwgdGhlIGZpZm8gKi8KLQkJCWlzX3Nob3J0ID0gdW5saWtlbHkgKG1heCA8IGVwLT5maWZvX3NpemUpOwotCQl9Ci0KLQkJREJHKERCR19WRVJZX05PSVNZLCAid3JvdGUgJXMgJWQgYnl0ZXMlcyVzICVkIGxlZnQgJXBcbiIsCi0JCQllcC0+ZXAubmFtZSwgY291bnQsCi0JCQlpc19sYXN0ID8gIi9MIiA6ICIiLCBpc19zaG9ydCA/ICIvUyIgOiAiIiwKLQkJCXJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbCwgcmVxKTsKLQotCQkvKiBsZXQgbG9vc2UgdGhhdCBwYWNrZXQuIG1heWJlIHRyeSB3cml0aW5nIGFub3RoZXIgb25lLAotCQkgKiBkb3VibGUgYnVmZmVyaW5nIG1pZ2h0IHdvcmsuICBUU1AsIFRQQywgYW5kIFRGUwotCQkgKiBiaXQgdmFsdWVzIGFyZSB0aGUgc2FtZSBmb3IgYWxsIG5vcm1hbCBJTiBlbmRwb2ludHMuCi0JCSAqLwotCQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX1RQQzsKLQkJaWYgKGlzX3Nob3J0KQotCQkJKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UU1A7Ci0KLQkJLyogcmVxdWVzdHMgY29tcGxldGUgd2hlbiBhbGwgSU4gZGF0YSBpcyBpbiB0aGUgRklGTyAqLwotCQlpZiAoaXNfbGFzdCkgewotCQkJZG9uZSAoZXAsIHJlcSwgMCk7Ci0JCQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKLQkJCQlwaW9faXJxX2Rpc2FibGUgKGVwLT5iRW5kcG9pbnRBZGRyZXNzKTsKLQkJCXJldHVybiAxOwotCQl9Ci0KLQkJLy8gVE9ETyBleHBlcmltZW50OiBob3cgcm9idXN0IGNhbiBmaWZvIG1vZGUgdHdlYWtpbmcgYmU/Ci0JCS8vIGRvdWJsZSBidWZmZXJpbmcgaXMgb2ZmIGluIHRoZSBkZWZhdWx0IGZpZm8gbW9kZSwgd2hpY2gKLQkJLy8gcHJldmVudHMgVEZTIGZyb20gYmVpbmcgc2V0IGhlcmUuCi0KLQl9IHdoaWxlICgqZXAtPnJlZ191ZGNjcyAmIFVEQ0NTX0JJX1RGUyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIGNhbGxlciBhc3NlcnRzIHJlcS0+cGVuZGluZyAoZXAwIGlycSBzdGF0dXMgbnlldCBjbGVhcmVkKTsgc3RhcnRzCi0gKiBlcDAgZGF0YSBzdGFnZS4gIHRoZXNlIGNoaXBzIHdhbnQgdmVyeSBzaW1wbGUgc3RhdGUgdHJhbnNpdGlvbnMuCi0gKi8KLXN0YXRpYyBpbmxpbmUKLXZvaWQgZXAwc3RhcnQoc3RydWN0IHB4YTJ4eF91ZGMgKmRldiwgdTMyIGZsYWdzLCBjb25zdCBjaGFyICp0YWcpCi17Ci0JVURDQ1MwID0gZmxhZ3N8VURDQ1MwX1NBfFVEQ0NTMF9PUFI7Ci0JVVNJUjAgPSBVU0lSMF9JUjA7Ci0JZGV2LT5yZXFfcGVuZGluZyA9IDA7Ci0JREJHKERCR19WRVJZX05PSVNZLCAiJXMgJXMsICUwMngvJTAyeFxuIiwKLQkJX19mdW5jX18sIHRhZywgVURDQ1MwLCBmbGFncyk7Ci19Ci0KLXN0YXRpYyBpbnQKLXdyaXRlX2VwMF9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdW5zaWduZWQJY291bnQ7Ci0JaW50CQlpc19zaG9ydDsKLQotCWNvdW50ID0gd3JpdGVfcGFja2V0KCZVRERSMCwgcmVxLCBFUDBfRklGT19TSVpFKTsKLQllcC0+ZGV2LT5zdGF0cy53cml0ZS5ieXRlcyArPSBjb3VudDsKLQotCS8qIGxhc3QgcGFja2V0ICJtdXN0IGJlIiBzaG9ydCAob3IgYSB6bHApICovCi0JaXNfc2hvcnQgPSAoY291bnQgIT0gRVAwX0ZJRk9fU0laRSk7Ci0KLQlEQkcoREJHX1ZFUllfTk9JU1ksICJlcDBpbiAlZCBieXRlcyAlZCBsZWZ0ICVwXG4iLCBjb3VudCwKLQkJcmVxLT5yZXEubGVuZ3RoIC0gcmVxLT5yZXEuYWN0dWFsLCByZXEpOwotCi0JaWYgKHVubGlrZWx5IChpc19zaG9ydCkpIHsKLQkJaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQotCQkJZXAwc3RhcnQoZXAtPmRldiwgVURDQ1MwX0lQUiwgInNob3J0IElOIik7Ci0JCWVsc2UKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9JUFI7Ci0KLQkJY291bnQgPSByZXEtPnJlcS5sZW5ndGg7Ci0JCWRvbmUgKGVwLCByZXEsIDApOwotCQllcDBfaWRsZShlcC0+ZGV2KTsKLSNpZm5kZWYgQ09ORklHX0FSQ0hfSVhQNFhYCi0jaWYgMQotCQkvKiBUaGlzIHNlZW1zIHRvIGdldCByaWQgb2YgbG9zdCBzdGF0dXMgaXJxcyBpbiBzb21lIGNhc2VzOgotCQkgKiBob3N0IHJlc3BvbmRzIHF1aWNrbHksIG9yIG5leHQgcmVxdWVzdCBpbnZvbHZlcyBjb25maWcKLQkJICogY2hhbmdlIGF1dG9tYWdpYywgb3Igc2hvdWxkIGhhdmUgYmVlbiBoaWRkZW4sIG9yIC4uLgotCQkgKgotCQkgKiBGSVhNRSBnZXQgcmlkIG9mIGFsbCB1ZGVsYXlzIHBvc3NpYmxlLi4uCi0JCSAqLwotCQlpZiAoY291bnQgPj0gRVAwX0ZJRk9fU0laRSkgewotCQkJY291bnQgPSAxMDA7Ci0JCQlkbyB7Ci0JCQkJaWYgKChVRENDUzAgJiBVRENDUzBfT1BSKSAhPSAwKSB7Ci0JCQkJCS8qIGNsZWFyIE9QUiwgZ2VuZXJhdGUgYWNrICovCi0JCQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCQljb3VudC0tOwotCQkJCXVkZWxheSgxKTsKLQkJCX0gd2hpbGUgKGNvdW50KTsKLQkJfQotI2VuZGlmCi0jZW5kaWYKLQl9IGVsc2UgaWYgKGVwLT5kZXYtPnJlcV9wZW5kaW5nKQotCQllcDBzdGFydChlcC0+ZGV2LCAwLCAiSU4iKTsKLQlyZXR1cm4gaXNfc2hvcnQ7Ci19Ci0KLQotLyoKLSAqIHJlYWRfZmlmbyAtICB1bmxvYWQgcGFja2V0KHMpIGZyb20gdGhlIGZpZm8gd2UgdXNlIGZvciB1c2IgT1VUCi0gKiB0cmFuc2ZlcnMgYW5kIHB1dCB0aGVtIGludG8gdGhlIHJlcXVlc3QuICBjYWxsZXIgc2hvdWxkIGhhdmUgbWFkZQotICogc3VyZSB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwYWNrZXQgcmVhZHkuCi0gKgotICogcmV0dXJucyB0cnVlIGlmIHRoZSByZXF1ZXN0IGNvbXBsZXRlZCBiZWNhdXNlIG9mIHNob3J0IHBhY2tldCBvciB0aGUKLSAqIHJlcXVlc3QgYnVmZmVyIGhhdmluZyBmaWxsZWQgKGFuZCBtYXliZSBvdmVycmFuIHRpbGwgZW5kLW9mLXBhY2tldCkuCi0gKi8KLXN0YXRpYyBpbnQKLXJlYWRfZmlmbyAoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCAqcmVxKQotewotCWZvciAoOzspIHsKLQkJdTMyCQl1ZGNjczsKLQkJdTgJCSpidWY7Ci0JCXVuc2lnbmVkCWJ1ZmZlcnNwYWNlLCBjb3VudCwgaXNfc2hvcnQ7Ci0KLQkJLyogbWFrZSBzdXJlIHRoZXJlJ3MgYSBwYWNrZXQgaW4gdGhlIEZJRk8uCi0JCSAqIFVEQ0NTX3tCTyxJT31fUlBDIGFyZSBhbGwgdGhlIHNhbWUgYml0IHZhbHVlLgotCQkgKiBVRENDU197Qk8sSU99X1JORSBhcmUgYWxsIHRoZSBzYW1lIGJpdCB2YWx1ZS4KLQkJICovCi0JCXVkY2NzID0gKmVwLT5yZWdfdWRjY3M7Ci0JCWlmICh1bmxpa2VseSAoKHVkY2NzICYgVURDQ1NfQk9fUlBDKSA9PSAwKSkKLQkJCWJyZWFrOwotCQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JCXByZWZldGNodyhidWYpOwotCQlidWZmZXJzcGFjZSA9IHJlcS0+cmVxLmxlbmd0aCAtIHJlcS0+cmVxLmFjdHVhbDsKLQotCQkvKiByZWFkIGFsbCBieXRlcyBmcm9tIHRoaXMgcGFja2V0ICovCi0JCWlmIChsaWtlbHkgKHVkY2NzICYgVURDQ1NfQk9fUk5FKSkgewotCQkJY291bnQgPSAxICsgKDB4MGZmICYgKmVwLT5yZWdfdWJjcik7Ci0JCQlyZXEtPnJlcS5hY3R1YWwgKz0gbWluIChjb3VudCwgYnVmZmVyc3BhY2UpOwotCQl9IGVsc2UgLyogemxwICovCi0JCQljb3VudCA9IDA7Ci0JCWlzX3Nob3J0ID0gKGNvdW50IDwgZXAtPmVwLm1heHBhY2tldCk7Ci0JCURCRyhEQkdfVkVSWV9OT0lTWSwgInJlYWQgJXMgJTAyeCwgJWQgYnl0ZXMlcyByZXEgJXAgJWQvJWRcbiIsCi0JCQllcC0+ZXAubmFtZSwgdWRjY3MsIGNvdW50LAotCQkJaXNfc2hvcnQgPyAiL1MiIDogIiIsCi0JCQlyZXEsIHJlcS0+cmVxLmFjdHVhbCwgcmVxLT5yZXEubGVuZ3RoKTsKLQkJd2hpbGUgKGxpa2VseSAoY291bnQtLSAhPSAwKSkgewotCQkJdTgJYnl0ZSA9ICh1OCkgKmVwLT5yZWdfdWRkcjsKLQotCQkJaWYgKHVubGlrZWx5IChidWZmZXJzcGFjZSA9PSAwKSkgewotCQkJCS8qIHRoaXMgaGFwcGVucyB3aGVuIHRoZSBkcml2ZXIncyBidWZmZXIKLQkJCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgotCQkJCSAqIGRpc2NhcmQgdGhlIGV4dHJhIGRhdGEuCi0JCQkJICovCi0JCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQotCQkJCQlETVNHKCIlcyBvdmVyZmxvdyAlZFxuIiwKLQkJCQkJCWVwLT5lcC5uYW1lLCBjb3VudCk7Ci0JCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVPVkVSRkxPVzsKLQkJCX0gZWxzZSB7Ci0JCQkJKmJ1ZisrID0gYnl0ZTsKLQkJCQlidWZmZXJzcGFjZS0tOwotCQkJfQotCQl9Ci0JCSplcC0+cmVnX3VkY2NzID0gIFVEQ0NTX0JPX1JQQzsKLQkJLyogUlBDL1JTUC9STkUgY291bGQgbm93IHJlZmxlY3QgdGhlIG90aGVyIHBhY2tldCBidWZmZXIgKi8KLQotCQkvKiBpc28gaXMgb25lIHJlcXVlc3QgcGVyIHBhY2tldCAqLwotCQlpZiAoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DKSB7Ci0JCQlpZiAodWRjY3MgJiBVRENDU19JT19ST0YpCi0JCQkJcmVxLT5yZXEuc3RhdHVzID0gLUVIT1NUVU5SRUFDSDsKLQkJCS8qIG1vcmUgbGlrZSAiaXNfZG9uZSIgKi8KLQkJCWlzX3Nob3J0ID0gMTsKLQkJfQotCi0JCS8qIGNvbXBsZXRpb24gKi8KLQkJaWYgKGlzX3Nob3J0IHx8IHJlcS0+cmVxLmFjdHVhbCA9PSByZXEtPnJlcS5sZW5ndGgpIHsKLQkJCWRvbmUgKGVwLCByZXEsIDApOwotCQkJaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpCi0JCQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Ci0JCQlyZXR1cm4gMTsKLQkJfQotCi0JCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCi0JfQotCXJldHVybiAwOwotfQotCi0vKgotICogc3BlY2lhbCBlcDAgdmVyc2lvbiBvZiB0aGUgYWJvdmUuICBubyBVQkNSMCBvciBkb3VibGUgYnVmZmVyaW5nOyBzdGF0dXMKLSAqIGhhbmRzaGFraW5nIGlzIG1hZ2ljLiAgbW9zdCBkZXZpY2UgcHJvdG9jb2xzIGRvbid0IG5lZWQgY29udHJvbC1PVVQuCi0gKiBDREMgdmVuZG9yIGNvbW1hbmRzIChhbmQgUk5ESVMpLCBtYXNzIHN0b3JhZ2UgQ0IvQ0JJLCBhbmQgc29tZSBvdGhlcgotICogcHJvdG9jb2xzIGRvIHVzZSB0aGVtLgotICovCi1zdGF0aWMgaW50Ci1yZWFkX2VwMF9maWZvIChzdHJ1Y3QgcHhhMnh4X2VwICplcCwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXEpCi17Ci0JdTgJCSpidWYsIGJ5dGU7Ci0JdW5zaWduZWQJYnVmZmVyc3BhY2U7Ci0KLQlidWYgPSByZXEtPnJlcS5idWYgKyByZXEtPnJlcS5hY3R1YWw7Ci0JYnVmZmVyc3BhY2UgPSByZXEtPnJlcS5sZW5ndGggLSByZXEtPnJlcS5hY3R1YWw7Ci0KLQl3aGlsZSAoVURDQ1MwICYgVURDQ1MwX1JORSkgewotCQlieXRlID0gKHU4KSBVRERSMDsKLQotCQlpZiAodW5saWtlbHkgKGJ1ZmZlcnNwYWNlID09IDApKSB7Ci0JCQkvKiB0aGlzIGhhcHBlbnMgd2hlbiB0aGUgZHJpdmVyJ3MgYnVmZmVyCi0JCQkgKiBpcyBzbWFsbGVyIHRoYW4gd2hhdCB0aGUgaG9zdCBzZW50LgotCQkJICogZGlzY2FyZCB0aGUgZXh0cmEgZGF0YS4KLQkJCSAqLwotCQkJaWYgKHJlcS0+cmVxLnN0YXR1cyAhPSAtRU9WRVJGTE9XKQotCQkJCURNU0coIiVzIG92ZXJmbG93XG4iLCBlcC0+ZXAubmFtZSk7Ci0JCQlyZXEtPnJlcS5zdGF0dXMgPSAtRU9WRVJGTE9XOwotCQl9IGVsc2UgewotCQkJKmJ1ZisrID0gYnl0ZTsKLQkJCXJlcS0+cmVxLmFjdHVhbCsrOwotCQkJYnVmZmVyc3BhY2UtLTsKLQkJfQotCX0KLQotCVVEQ0NTMCA9IFVEQ0NTMF9PUFIgfCBVRENDUzBfSVBSOwotCi0JLyogY29tcGxldGlvbiAqLwotCWlmIChyZXEtPnJlcS5hY3R1YWwgPj0gcmVxLT5yZXEubGVuZ3RoKQotCQlyZXR1cm4gMTsKLQotCS8qIGZpbmlzaGVkIHRoYXQgcGFja2V0LiAgdGhlIG5leHQgb25lIG1heSBiZSB3YWl0aW5nLi4uICovCi0JcmV0dXJuIDA7Ci19Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLXN0YXRpYyBpbnQKLXB4YTJ4eF9lcF9xdWV1ZShzdHJ1Y3QgdXNiX2VwICpfZXAsIHN0cnVjdCB1c2JfcmVxdWVzdCAqX3JlcSwgZ2ZwX3QgZ2ZwX2ZsYWdzKQotewotCXN0cnVjdCBweGEyeHhfcmVxdWVzdAkqcmVxOwotCXN0cnVjdCBweGEyeHhfZXAJKmVwOwotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXY7Ci0JdW5zaWduZWQgbG9uZwkJZmxhZ3M7Ci0KLQlyZXEgPSBjb250YWluZXJfb2YoX3JlcSwgc3RydWN0IHB4YTJ4eF9yZXF1ZXN0LCByZXEpOwotCWlmICh1bmxpa2VseSAoIV9yZXEgfHwgIV9yZXEtPmNvbXBsZXRlIHx8ICFfcmVxLT5idWYKLQkJCXx8ICFsaXN0X2VtcHR5KCZyZXEtPnF1ZXVlKSkpIHsKLQkJRE1TRygiJXMsIGJhZCBwYXJhbXNcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKHVubGlrZWx5ICghX2VwIHx8ICghZXAtPmRlc2MgJiYgZXAtPmVwLm5hbWUgIT0gZXAwbmFtZSkpKSB7Ci0JCURNU0coIiVzLCBiYWQgZXBcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCi0JZGV2ID0gZXAtPmRldjsKLQlpZiAodW5saWtlbHkgKCFkZXYtPmRyaXZlcgotCQkJfHwgZGV2LT5nYWRnZXQuc3BlZWQgPT0gVVNCX1NQRUVEX1VOS05PV04pKSB7Ci0JCURNU0coIiVzLCBib2d1cyBkZXZpY2Ugc3RhdGVcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FU0hVVERPV047Ci0JfQotCi0JLyogaXNvIGlzIGFsd2F5cyBvbmUgcGFja2V0IHBlciByZXF1ZXN0LCB0aGF0J3MgdGhlIG9ubHkgd2F5Ci0JICogd2UgY2FuIHJlcG9ydCBwZXItcGFja2V0IHN0YXR1cy4gIHRoYXQgYWxzbyBoZWxwcyB3aXRoIGRtYS4KLQkgKi8KLQlpZiAodW5saWtlbHkgKGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQwotCQkJJiYgcmVxLT5yZXEubGVuZ3RoID4gbGUxNl90b19jcHUKLQkJCQkJCShlcC0+ZGVzYy0+d01heFBhY2tldFNpemUpKSkKLQkJcmV0dXJuIC1FTVNHU0laRTsKLQotCURCRyhEQkdfTk9JU1ksICIlcyBxdWV1ZSByZXEgJXAsIGxlbiAlZCBidWYgJXBcbiIsCi0JCV9lcC0+bmFtZSwgX3JlcSwgX3JlcS0+bGVuZ3RoLCBfcmVxLT5idWYpOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JX3JlcS0+c3RhdHVzID0gLUVJTlBST0dSRVNTOwotCV9yZXEtPmFjdHVhbCA9IDA7Ci0KLQkvKiBraWNrc3RhcnQgdGhpcyBpL28gcXVldWU/ICovCi0JaWYgKGxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkgJiYgIWVwLT5zdG9wcGVkKSB7Ci0JCWlmIChlcC0+ZGVzYyA9PSBOVUxMLyogZXAwICovKSB7Ci0JCQl1bnNpZ25lZAlsZW5ndGggPSBfcmVxLT5sZW5ndGg7Ci0KLQkJCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgewotCQkJY2FzZSBFUDBfSU5fREFUQV9QSEFTRToKLQkJCQlkZXYtPnN0YXRzLndyaXRlLm9wcysrOwotCQkJCWlmICh3cml0ZV9lcDBfZmlmbyhlcCwgcmVxKSkKLQkJCQkJcmVxID0gTlVMTDsKLQkJCQlicmVhazsKLQotCQkJY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6Ci0JCQkJZGV2LT5zdGF0cy5yZWFkLm9wcysrOwotCQkJCS8qIG1lc3N5IC4uLiAqLwotCQkJCWlmIChkZXYtPnJlcV9jb25maWcpIHsKLQkJCQkJREJHKERCR19WRVJCT1NFLCAiZXAwIGNvbmZpZyBhY2slc1xuIiwKLQkJCQkJCWRldi0+aGFzX2NmciA/ICAiIiA6ICIgcmFjZWQiKTsKLQkJCQkJaWYgKGRldi0+aGFzX2NmcikKLQkJCQkJCVVEQ0NGUiA9IFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00KLQkJCQkJCQl8VURDQ0ZSX01CMTsKLQkJCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9FTkRfWEZFUjsKLQkJCQkJbG9jYWxfaXJxX3Jlc3RvcmUgKGZsYWdzKTsKLQkJCQkJcmV0dXJuIDA7Ci0JCQkJfQotCQkJCWlmIChkZXYtPnJlcV9wZW5kaW5nKQotCQkJCQllcDBzdGFydChkZXYsIFVEQ0NTMF9JUFIsICJPVVQiKTsKLQkJCQlpZiAobGVuZ3RoID09IDAgfHwgKChVRENDUzAgJiBVRENDUzBfUk5FKSAhPSAwCi0JCQkJCQkmJiByZWFkX2VwMF9maWZvKGVwLCByZXEpKSkgewotCQkJCQllcDBfaWRsZShkZXYpOwotCQkJCQlkb25lKGVwLCByZXEsIDApOwotCQkJCQlyZXEgPSBOVUxMOwotCQkJCX0KLQkJCQlicmVhazsKLQotCQkJZGVmYXVsdDoKLQkJCQlETVNHKCJlcDAgaS9vLCBvZGQgc3RhdGUgJWRcbiIsIGRldi0+ZXAwc3RhdGUpOwotCQkJCWxvY2FsX2lycV9yZXN0b3JlIChmbGFncyk7Ci0JCQkJcmV0dXJuIC1FTDJITFQ7Ci0JCQl9Ci0JCS8qIGNhbiB0aGUgRklGTyBjYW4gc2F0aXNmeSB0aGUgcmVxdWVzdCBpbW1lZGlhdGVseT8gKi8KLQkJfSBlbHNlIGlmICgoZXAtPmJFbmRwb2ludEFkZHJlc3MgJiBVU0JfRElSX0lOKSAhPSAwKSB7Ci0JCQlpZiAoKCplcC0+cmVnX3VkY2NzICYgVURDQ1NfQklfVEZTKSAhPSAwCi0JCQkJCSYmIHdyaXRlX2ZpZm8oZXAsIHJlcSkpCi0JCQkJcmVxID0gTlVMTDsKLQkJfSBlbHNlIGlmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpICE9IDAKLQkJCQkmJiByZWFkX2ZpZm8oZXAsIHJlcSkpIHsKLQkJCXJlcSA9IE5VTEw7Ci0JCX0KLQotCQlpZiAobGlrZWx5IChyZXEgJiYgZXAtPmRlc2MpKQotCQkJcGlvX2lycV9lbmFibGUoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotCX0KLQotCS8qIHBpbyBvciBkbWEgaXJxIGhhbmRsZXIgYWR2YW5jZXMgdGhlIHF1ZXVlLiAqLwotCWlmIChsaWtlbHkocmVxICE9IE5VTEwpKQotCQlsaXN0X2FkZF90YWlsKCZyZXEtPnF1ZXVlLCAmZXAtPnF1ZXVlKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotCi0vKgotICoJbnVrZSAtIGRlcXVldWUgQUxMIHJlcXVlc3RzCi0gKi8KLXN0YXRpYyB2b2lkIG51a2Uoc3RydWN0IHB4YTJ4eF9lcCAqZXAsIGludCBzdGF0dXMpCi17Ci0Jc3RydWN0IHB4YTJ4eF9yZXF1ZXN0ICpyZXE7Ci0KLQkvKiBjYWxsZWQgd2l0aCBpcnFzIGJsb2NrZWQgKi8KLQl3aGlsZSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKLQkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKLQkJCQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QsCi0JCQkJcXVldWUpOwotCQlkb25lKGVwLCByZXEsIHN0YXR1cyk7Ci0JfQotCWlmIChlcC0+ZGVzYykKLQkJcGlvX2lycV9kaXNhYmxlIChlcC0+YkVuZHBvaW50QWRkcmVzcyk7Ci19Ci0KLQotLyogZGVxdWV1ZSBKVVNUIE9ORSByZXF1ZXN0ICovCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9kZXF1ZXVlKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQotewotCXN0cnVjdCBweGEyeHhfZXAJKmVwOwotCXN0cnVjdCBweGEyeHhfcmVxdWVzdAkqcmVxOwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwotCi0JZXAgPSBjb250YWluZXJfb2YoX2VwLCBzdHJ1Y3QgcHhhMnh4X2VwLCBlcCk7Ci0JaWYgKCFfZXAgfHwgZXAtPmVwLm5hbWUgPT0gZXAwbmFtZSkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQkvKiBtYWtlIHN1cmUgaXQncyBhY3R1YWxseSBxdWV1ZWQgb24gdGhpcyBlbmRwb2ludCAqLwotCWxpc3RfZm9yX2VhY2hfZW50cnkgKHJlcSwgJmVwLT5xdWV1ZSwgcXVldWUpIHsKLQkJaWYgKCZyZXEtPnJlcSA9PSBfcmVxKQotCQkJYnJlYWs7Ci0JfQotCWlmICgmcmVxLT5yZXEgIT0gX3JlcSkgewotCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWRvbmUoZXAsIHJlcSwgLUVDT05OUkVTRVQpOwotCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgaW50IHB4YTJ4eF9lcF9zZXRfaGFsdChzdHJ1Y3QgdXNiX2VwICpfZXAsIGludCB2YWx1ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcDsKLQl1bnNpZ25lZCBsb25nCQlmbGFnczsKLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICh1bmxpa2VseSAoIV9lcAotCQkJfHwgKCFlcC0+ZGVzYyAmJiBlcC0+ZXAubmFtZSAhPSBlcDBuYW1lKSkKLQkJCXx8IGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQykgewotCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQlpZiAodmFsdWUgPT0gMCkgewotCQkvKiB0aGlzIHBhdGggKHJlc2V0IHRvZ2dsZStoYWx0KSBpcyBuZWVkZWQgdG8gaW1wbGVtZW50Ci0JCSAqIFNFVF9JTlRFUkZBQ0Ugb24gbm9ybWFsIGhhcmR3YXJlLiAgYnV0IGl0IGNhbid0IGJlCi0JCSAqIGRvbmUgZnJvbSBzb2Z0d2FyZSBvbiB0aGUgUFhBIFVEQywgYW5kIHRoZSBoYXJkd2FyZQotCQkgKiBmb3JnZXRzIHRvIGRvIGl0IGFzIHBhcnQgb2YgU0VUX0lOVEVSRkFDRSBhdXRvbWFnaWMuCi0JCSAqLwotCQlETVNHKCJvbmx5IGhvc3QgY2FuIGNsZWFyICVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7Ci0JCXJldHVybiAtRVJPRlM7Ci0JfQotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDAKLQkJCSYmICgoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9URlMpID09IDAKLQkJCSAgIHx8ICFsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSkgewotCQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0JCXJldHVybiAtRUFHQUlOOwotCX0KLQotCS8qIEZTVCBiaXQgaXMgdGhlIHNhbWUgZm9yIGNvbnRyb2wsIGJ1bGsgaW4sIGJ1bGsgb3V0LCBpbnRlcnJ1cHQgaW4gKi8KLQkqZXAtPnJlZ191ZGNjcyA9IFVEQ0NTX0JJX0ZTVHxVRENDU19CSV9GVEY7Ci0KLQkvKiBlcDAgbmVlZHMgc3BlY2lhbCBjYXJlICovCi0JaWYgKCFlcC0+ZGVzYykgewotCQlzdGFydF93YXRjaGRvZyhlcC0+ZGV2KTsKLQkJZXAtPmRldi0+cmVxX3BlbmRpbmcgPSAwOwotCQllcC0+ZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKLQotCS8qIGFuZCBidWxrL2ludHIgZW5kcG9pbnRzIGxpa2UgZHJvcHBpbmcgc3RhbGxzIHRvbyAqLwotCX0gZWxzZSB7Ci0JCXVuc2lnbmVkIGk7Ci0JCWZvciAoaSA9IDA7IGkgPCAxMDAwOyBpICs9IDIwKSB7Ci0JCQlpZiAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CSV9TU1QpCi0JCQkJYnJlYWs7Ci0JCQl1ZGVsYXkoMjApOwotCQl9Ci0JfQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCURCRyhEQkdfVkVSQk9TRSwgIiVzIGhhbHRcbiIsIF9lcC0+bmFtZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgcHhhMnh4X2VwX2ZpZm9fc3RhdHVzKHN0cnVjdCB1c2JfZXAgKl9lcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X2VwICAgICAgICAqZXA7Ci0KLQllcCA9IGNvbnRhaW5lcl9vZihfZXAsIHN0cnVjdCBweGEyeHhfZXAsIGVwKTsKLQlpZiAoIV9lcCkgewotCQlETVNHKCIlcywgYmFkIGVwXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRU5PREVWOwotCX0KLQkvKiBweGEgY2FuJ3QgcmVwb3J0IHVuY2xhaW1lZCBieXRlcyBmcm9tIElOIGZpZm9zICovCi0JaWYgKChlcC0+YkVuZHBvaW50QWRkcmVzcyAmIFVTQl9ESVJfSU4pICE9IDApCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQlpZiAoZXAtPmRldi0+Z2FkZ2V0LnNwZWVkID09IFVTQl9TUEVFRF9VTktOT1dOCi0JCQl8fCAoKmVwLT5yZWdfdWRjY3MgJiBVRENDU19CT19SRlMpID09IDApCi0JCXJldHVybiAwOwotCWVsc2UKLQkJcmV0dXJuICgqZXAtPnJlZ191YmNyICYgMHhmZmYpICsgMTsKLX0KLQotc3RhdGljIHZvaWQgcHhhMnh4X2VwX2ZpZm9fZmx1c2goc3RydWN0IHVzYl9lcCAqX2VwKQotewotCXN0cnVjdCBweGEyeHhfZXAgICAgICAgICplcDsKLQotCWVwID0gY29udGFpbmVyX29mKF9lcCwgc3RydWN0IHB4YTJ4eF9lcCwgZXApOwotCWlmICghX2VwIHx8IGVwLT5lcC5uYW1lID09IGVwMG5hbWUgfHwgIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpIHsKLQkJRE1TRygiJXMsIGJhZCBlcFxuIiwgX19mdW5jX18pOwotCQlyZXR1cm47Ci0JfQotCi0JLyogdG9nZ2xlIGFuZCBoYWx0IGJpdHMgc3RheSB1bmNoYW5nZWQgKi8KLQotCS8qIGZvciBPVVQsIGp1c3QgcmVhZCBhbmQgZGlzY2FyZCB0aGUgRklGTyBjb250ZW50cy4gKi8KLQlpZiAoKGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTikgPT0gMCkgewotCQl3aGlsZSAoKCgqZXAtPnJlZ191ZGNjcykgJiBVRENDU19CT19STkUpICE9IDApCi0JCQkodm9pZCkgKmVwLT5yZWdfdWRkcjsKLQkJcmV0dXJuOwotCX0KLQotCS8qIG1vc3QgSU4gc3RhdHVzIGlzIHRoZSBzYW1lLCBidXQgSVNPIGNhbid0IHN0YWxsICovCi0JKmVwLT5yZWdfdWRjY3MgPSBVRENDU19CSV9UUEN8VURDQ1NfQklfRlRGfFVEQ0NTX0JJX1RVUgotCQl8IChlcC0+Ym1BdHRyaWJ1dGVzID09IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MpCi0JCQk/IDAgOiBVRENDU19CSV9TU1Q7Ci19Ci0KLQotc3RhdGljIHN0cnVjdCB1c2JfZXBfb3BzIHB4YTJ4eF9lcF9vcHMgPSB7Ci0JLmVuYWJsZQkJPSBweGEyeHhfZXBfZW5hYmxlLAotCS5kaXNhYmxlCT0gcHhhMnh4X2VwX2Rpc2FibGUsCi0KLQkuYWxsb2NfcmVxdWVzdAk9IHB4YTJ4eF9lcF9hbGxvY19yZXF1ZXN0LAotCS5mcmVlX3JlcXVlc3QJPSBweGEyeHhfZXBfZnJlZV9yZXF1ZXN0LAotCi0JLnF1ZXVlCQk9IHB4YTJ4eF9lcF9xdWV1ZSwKLQkuZGVxdWV1ZQk9IHB4YTJ4eF9lcF9kZXF1ZXVlLAotCi0JLnNldF9oYWx0CT0gcHhhMnh4X2VwX3NldF9oYWx0LAotCS5maWZvX3N0YXR1cwk9IHB4YTJ4eF9lcF9maWZvX3N0YXR1cywKLQkuZmlmb19mbHVzaAk9IHB4YTJ4eF9lcF9maWZvX2ZsdXNoLAotfTsKLQotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqCWRldmljZS1zY29wZWQgcGFydHMgb2YgdGhlIGFwaSB0byB0aGUgdXNiIGNvbnRyb2xsZXIgaGFyZHdhcmUKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY19nZXRfZnJhbWUoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQpCi17Ci0JcmV0dXJuICgoVUZOUkggJiAweDA3KSA8PCA4KSB8IChVRk5STCAmIDB4ZmYpOwotfQotCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfd2FrZXVwKHN0cnVjdCB1c2JfZ2FkZ2V0ICpfZ2FkZ2V0KQotewotCS8qIGhvc3QgbWF5IG5vdCBoYXZlIGVuYWJsZWQgcmVtb3RlIHdha2V1cCAqLwotCWlmICgoVURDQ1MwICYgVURDQ1MwX0RSV0YpID09IDApCi0JCXJldHVybiAtRUhPU1RVTlJFQUNIOwotCXVkY19zZXRfbWFza19VRENDUihVRENDUl9SU00pOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBzdG9wX2FjdGl2aXR5KHN0cnVjdCBweGEyeHhfdWRjICosIHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqKTsKLXN0YXRpYyB2b2lkIHVkY19lbmFibGUgKHN0cnVjdCBweGEyeHhfdWRjICopOwotc3RhdGljIHZvaWQgdWRjX2Rpc2FibGUoc3RydWN0IHB4YTJ4eF91ZGMgKik7Ci0KLS8qIFdlIGRpc2FibGUgdGhlIFVEQyAtLSBhbmQgaXRzIDQ4IE1IeiBjbG9jayAtLSB3aGVuZXZlciBpdCdzIG5vdAotICogaW4gYWN0aXZlIHVzZS4KLSAqLwotc3RhdGljIGludCBwdWxsdXAoc3RydWN0IHB4YTJ4eF91ZGMgKnVkYykKLXsKLQlpbnQgaXNfYWN0aXZlID0gdWRjLT52YnVzICYmIHVkYy0+cHVsbHVwICYmICF1ZGMtPnN1c3BlbmRlZDsKLQlETVNHKCIlc1xuIiwgaXNfYWN0aXZlID8gImFjdGl2ZSIgOiAiaW5hY3RpdmUiKTsKLQlpZiAoaXNfYWN0aXZlKSB7Ci0JCWlmICghdWRjLT5hY3RpdmUpIHsKLQkJCXVkYy0+YWN0aXZlID0gMTsKLQkJCS8qIEVuYWJsZSBjbG9jayBmb3IgVVNCIGRldmljZSAqLwotCQkJY2xrX2VuYWJsZSh1ZGMtPmNsayk7Ci0JCQl1ZGNfZW5hYmxlKHVkYyk7Ci0JCX0KLQl9IGVsc2UgewotCQlpZiAodWRjLT5hY3RpdmUpIHsKLQkJCWlmICh1ZGMtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTikgewotCQkJCURNU0coImRpc2Nvbm5lY3QgJXNcbiIsIHVkYy0+ZHJpdmVyCi0JCQkJCT8gdWRjLT5kcml2ZXItPmRyaXZlci5uYW1lCi0JCQkJCTogIihubyBkcml2ZXIpIik7Ci0JCQkJc3RvcF9hY3Rpdml0eSh1ZGMsIHVkYy0+ZHJpdmVyKTsKLQkJCX0KLQkJCXVkY19kaXNhYmxlKHVkYyk7Ci0JCQkvKiBEaXNhYmxlIGNsb2NrIGZvciBVU0IgZGV2aWNlICovCi0JCQljbGtfZGlzYWJsZSh1ZGMtPmNsayk7Ci0JCQl1ZGMtPmFjdGl2ZSA9IDA7Ci0JCX0KLQotCX0KLQlyZXR1cm4gMDsKLX0KLQotLyogVkJVUyByZXBvcnRpbmcgbG9naWNhbGx5IGNvbWVzIGZyb20gYSB0cmFuc2NlaXZlciAqLwotc3RhdGljIGludCBweGEyeHhfdWRjX3ZidXNfc2Vzc2lvbihzdHJ1Y3QgdXNiX2dhZGdldCAqX2dhZGdldCwgaW50IGlzX2FjdGl2ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqdWRjOwotCi0JdWRjID0gY29udGFpbmVyX29mKF9nYWRnZXQsIHN0cnVjdCBweGEyeHhfdWRjLCBnYWRnZXQpOwotCXVkYy0+dmJ1cyA9IChpc19hY3RpdmUgIT0gMCk7Ci0JRE1TRygidmJ1cyAlc1xuIiwgaXNfYWN0aXZlID8gInN1cHBsaWVkIiA6ICJpbmFjdGl2ZSIpOwotCXB1bGx1cCh1ZGMpOwotCXJldHVybiAwOwotfQotCi0vKiBkcml2ZXJzIG1heSBoYXZlIHNvZnR3YXJlIGNvbnRyb2wgb3ZlciBEKyBwdWxsdXAgKi8KLXN0YXRpYyBpbnQgcHhhMnh4X3VkY19wdWxsdXAoc3RydWN0IHVzYl9nYWRnZXQgKl9nYWRnZXQsIGludCBpc19hY3RpdmUpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYzsKLQotCXVkYyA9IGNvbnRhaW5lcl9vZihfZ2FkZ2V0LCBzdHJ1Y3QgcHhhMnh4X3VkYywgZ2FkZ2V0KTsKLQotCS8qIG5vdCBhbGwgYm9hcmRzIHN1cHBvcnQgcHVsbHVwIGNvbnRyb2wgKi8KLQlpZiAoIXVkYy0+bWFjaC0+Z3Bpb19wdWxsdXAgJiYgIXVkYy0+bWFjaC0+dWRjX2NvbW1hbmQpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQotCXVkYy0+cHVsbHVwID0gKGlzX2FjdGl2ZSAhPSAwKTsKLQlwdWxsdXAodWRjKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZ2FkZ2V0X29wcyBweGEyeHhfdWRjX29wcyA9IHsKLQkuZ2V0X2ZyYW1lCT0gcHhhMnh4X3VkY19nZXRfZnJhbWUsCi0JLndha2V1cAkJPSBweGEyeHhfdWRjX3dha2V1cCwKLQkudmJ1c19zZXNzaW9uCT0gcHhhMnh4X3VkY192YnVzX3Nlc3Npb24sCi0JLnB1bGx1cAkJPSBweGEyeHhfdWRjX3B1bGx1cCwKLQotCS8vIC52YnVzX2RyYXcgLi4uIGJvYXJkcyBtYXkgY29uc3VtZSBjdXJyZW50IGZyb20gVkJVUywgdXAgdG8KLQkvLyAxMDAtNTAwbUEgYmFzZWQgb24gY29uZmlnLiAgdGhlIDUwMHVBIHN1c3BlbmQgY2VpbGluZyBtZWFucwotCS8vIHRoYXQgZXhjbHVzaXZlbHkgdmJ1cy1wb3dlcmVkIFBYQSBkZXNpZ25zIHZpb2xhdGUgVVNCIHNwZWNzLgotfTsKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmZGVmIENPTkZJR19VU0JfR0FER0VUX0RFQlVHX0ZTCi0KLXN0YXRpYyBpbnQKLXVkY19zZXFfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKl9kKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSBtLT5wcml2YXRlOwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwotCWludAkJCWk7Ci0JdTMyCQkJdG1wOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCi0JLyogYmFzaWMgZGV2aWNlIHN0YXR1cyAqLwotCXNlcV9wcmludGYobSwgRFJJVkVSX0RFU0MgIlxuIgotCQkiJXMgdmVyc2lvbjogJXNcbkdhZGdldCBkcml2ZXI6ICVzXG5Ib3N0ICVzXG5cbiIsCi0JCWRyaXZlcl9uYW1lLCBEUklWRVJfVkVSU0lPTiBTSVpFX1NUUiAiKHBpbykiLAotCQlkZXYtPmRyaXZlciA/IGRldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSA6ICIobm9uZSkiLAotCQlpc192YnVzX3ByZXNlbnQoKSA/ICJmdWxsIHNwZWVkIiA6ICJkaXNjb25uZWN0ZWQiKTsKLQotCS8qIHJlZ2lzdGVycyBmb3IgZGV2aWNlIGFuZCBlcDAgKi8KLQlzZXFfcHJpbnRmKG0sCi0JCSJ1aWNyICUwMlguJTAyWCwgdXNpciAlMDJYLiUwMngsIHVmbnIgJTAyWC4lMDJYXG4iLAotCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKLQotCXRtcCA9IFVEQ0NSOwotCXNlcV9wcmludGYobSwKLQkJInVkY2NyICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKLQkJKHRtcCAmIFVEQ0NSX1JFTSkgPyAiIHJlbSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCi0JCSh0bXAgJiBVRENDUl9TUk0pID8gIiBzcm0iIDogIiIsCi0JCSh0bXAgJiBVRENDUl9TVVNJUikgPyAiIHN1c2lyIiA6ICIiLAotCQkodG1wICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1JTTSkgPyAiIHJzbSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1VEQSkgPyAiIHVkYSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7Ci0KLQl0bXAgPSBVRENDUzA7Ci0Jc2VxX3ByaW50ZihtLAotCQkidWRjY3MwICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsIHRtcCwKLQkJKHRtcCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAotCQkodG1wICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAotCQkodG1wICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAotCQkodG1wICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKLQkJKHRtcCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCi0JCSh0bXAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKLQotCWlmIChkZXYtPmhhc19jZnIpIHsKLQkJdG1wID0gVURDQ0ZSOwotCQlzZXFfcHJpbnRmKG0sCi0JCQkidWRjY2ZyICUwMlggPSVzJXNcbiIsIHRtcCwKLQkJCSh0bXAgJiBVRENDRlJfQVJFTikgPyAiIGFyZW4iIDogIiIsCi0JCQkodG1wICYgVURDQ0ZSX0FDTSkgPyAiIGFjbSIgOiAiIik7Ci0JfQotCi0JaWYgKCFpc192YnVzX3ByZXNlbnQoKSB8fCAhZGV2LT5kcml2ZXIpCi0JCWdvdG8gZG9uZTsKLQotCXNlcV9wcmludGYobSwgImVwMCBJTiAlbHUvJWx1LCBPVVQgJWx1LyVsdVxuaXJxcyAlbHVcblxuIiwKLQkJZGV2LT5zdGF0cy53cml0ZS5ieXRlcywgZGV2LT5zdGF0cy53cml0ZS5vcHMsCi0JCWRldi0+c3RhdHMucmVhZC5ieXRlcywgZGV2LT5zdGF0cy5yZWFkLm9wcywKLQkJZGV2LT5zdGF0cy5pcnFzKTsKLQotCS8qIGR1bXAgZW5kcG9pbnQgcXVldWVzICovCi0JZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7Ci0JCXN0cnVjdCBweGEyeHhfZXAJKmVwID0gJmRldi0+ZXAgW2ldOwotCQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQotCQlpZiAoaSAhPSAwKSB7Ci0JCQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7Ci0KLQkJCWRlc2MgPSBlcC0+ZGVzYzsKLQkJCWlmICghZGVzYykKLQkJCQljb250aW51ZTsKLQkJCXRtcCA9ICpkZXYtPmVwIFtpXS5yZWdfdWRjY3M7Ci0JCQlzZXFfcHJpbnRmKG0sCi0JCQkJIiVzIG1heCAlZCAlcyB1ZGNjcyAlMDJ4IGlycXMgJWx1XG4iLAotCQkJCWVwLT5lcC5uYW1lLCBsZTE2X3RvX2NwdShkZXNjLT53TWF4UGFja2V0U2l6ZSksCi0JCQkJInBpbyIsIHRtcCwgZXAtPnBpb19pcnFzKTsKLQkJCS8qIFRPRE8gdHJhbnNsYXRlIGFsbCBmaXZlIGdyb3VwcyBvZiB1ZGNjcyBiaXRzISAqLwotCi0JCX0gZWxzZSAvKiBlcDAgc2hvdWxkIG9ubHkgaGF2ZSBvbmUgdHJhbnNmZXIgcXVldWVkICovCi0JCQlzZXFfcHJpbnRmKG0sICJlcDAgbWF4IDE2IHBpbyBpcnFzICVsdVxuIiwKLQkJCQllcC0+cGlvX2lycXMpOwotCi0JCWlmIChsaXN0X2VtcHR5KCZlcC0+cXVldWUpKSB7Ci0JCQlzZXFfcHJpbnRmKG0sICJcdChub3RoaW5nIHF1ZXVlZClcbiIpOwotCQkJY29udGludWU7Ci0JCX0KLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7Ci0JCQlzZXFfcHJpbnRmKG0sCi0JCQkJCSJcdHJlcSAlcCBsZW4gJWQvJWQgYnVmICVwXG4iLAotCQkJCQkmcmVxLT5yZXEsIHJlcS0+cmVxLmFjdHVhbCwKLQkJCQkJcmVxLT5yZXEubGVuZ3RoLCByZXEtPnJlcS5idWYpOwotCQl9Ci0JfQotCi1kb25lOgotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotdWRjX2RlYnVnZnNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gc2luZ2xlX29wZW4oZmlsZSwgdWRjX3NlcV9zaG93LCBpbm9kZS0+aV9wcml2YXRlKTsKLX0KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZGVidWdfZm9wcyA9IHsKLQkub3BlbgkJPSB1ZGNfZGVidWdmc19vcGVuLAotCS5yZWFkCQk9IHNlcV9yZWFkLAotCS5sbHNlZWsJCT0gc2VxX2xzZWVrLAotCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCi0JLm93bmVyCQk9IFRISVNfTU9EVUxFLAotfTsKLQotI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBcCi0JZG8geyBcCi0JCWRldi0+ZGVidWdmc191ZGMgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKGRldi0+Z2FkZ2V0Lm5hbWUsIFwKLQkJCVNfSVJVR08sIE5VTEwsIGRldiwgJmRlYnVnX2ZvcHMpOyBcCi0JfSB3aGlsZSAoMCkKLSNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgXAotCWRvIHsgXAotCQlpZiAoZGV2LT5kZWJ1Z2ZzX3VkYykgXAotCQkJZGVidWdmc19yZW1vdmUoZGV2LT5kZWJ1Z2ZzX3VkYyk7IFwKLQl9IHdoaWxlICgwKQotCi0jZWxzZQkvKiAhQ09ORklHX1VTQl9HQURHRVRfREVCVUdfRklMRVMgKi8KLQotI2RlZmluZSBjcmVhdGVfZGVidWdfZmlsZXMoZGV2KSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgcmVtb3ZlX2RlYnVnX2ZpbGVzKGRldikgZG8ge30gd2hpbGUgKDApCi0KLSNlbmRpZgkvKiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GSUxFUyAqLwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICoJdWRjX2Rpc2FibGUgLSBkaXNhYmxlIFVTQiBkZXZpY2UgY29udHJvbGxlcgotICovCi1zdGF0aWMgdm9pZCB1ZGNfZGlzYWJsZShzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCS8qIGJsb2NrIGFsbCBpcnFzICovCi0JdWRjX3NldF9tYXNrX1VEQ0NSKFVEQ0NSX1NSTXxVRENDUl9SRU0pOwotCVVJQ1IwID0gVUlDUjEgPSAweGZmOwotCVVGTlJIID0gVUZOUkhfU0lNOwotCi0JLyogaWYgaGFyZHdhcmUgc3VwcG9ydHMgaXQsIGRpc2Nvbm5lY3QgZnJvbSB1c2IgKi8KLQlwdWxsdXBfb2ZmKCk7Ci0KLQl1ZGNfY2xlYXJfbWFza19VRENDUihVRENDUl9VREUpOwotCi0JZXAwX2lkbGUgKGRldik7Ci0JZGV2LT5nYWRnZXQuc3BlZWQgPSBVU0JfU1BFRURfVU5LTk9XTjsKLX0KLQotCi0vKgotICoJdWRjX3JlaW5pdCAtIGluaXRpYWxpemUgc29mdHdhcmUgc3RhdGUKLSAqLwotc3RhdGljIHZvaWQgdWRjX3JlaW5pdChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXUzMglpOwotCi0JLyogZGV2aWNlL2VwMCByZWNvcmRzIGluaXQgKi8KLQlJTklUX0xJU1RfSEVBRCAoJmRldi0+Z2FkZ2V0LmVwX2xpc3QpOwotCUlOSVRfTElTVF9IRUFEICgmZGV2LT5nYWRnZXQuZXAwLT5lcF9saXN0KTsKLQlkZXYtPmVwMHN0YXRlID0gRVAwX0lETEU7Ci0KLQkvKiBiYXNpYyBlbmRwb2ludCByZWNvcmRzIGluaXQgKi8KLQlmb3IgKGkgPSAwOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspIHsKLQkJc3RydWN0IHB4YTJ4eF9lcCAqZXAgPSAmZGV2LT5lcFtpXTsKLQotCQlpZiAoaSAhPSAwKQotCQkJbGlzdF9hZGRfdGFpbCAoJmVwLT5lcC5lcF9saXN0LCAmZGV2LT5nYWRnZXQuZXBfbGlzdCk7Ci0KLQkJZXAtPmRlc2MgPSBOVUxMOwotCQllcC0+c3RvcHBlZCA9IDA7Ci0JCUlOSVRfTElTVF9IRUFEICgmZXAtPnF1ZXVlKTsKLQkJZXAtPnBpb19pcnFzID0gMDsKLQl9Ci0KLQkvKiB0aGUgcmVzdCB3YXMgc3RhdGljYWxseSBpbml0aWFsaXplZCwgYW5kIGlzIHJlYWQtb25seSAqLwotfQotCi0vKiB1bnRpbCBpdCdzIGVuYWJsZWQsIHRoaXMgVURDIHNob3VsZCBiZSBjb21wbGV0ZWx5IGludmlzaWJsZQotICogdG8gYW55IFVTQiBob3N0LgotICovCi1zdGF0aWMgdm9pZCB1ZGNfZW5hYmxlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXVkY19jbGVhcl9tYXNrX1VEQ0NSKFVEQ0NSX1VERSk7Ci0KLQkvKiB0cnkgdG8gY2xlYXIgdGhlc2UgYml0cyBiZWZvcmUgd2UgZW5hYmxlIHRoZSB1ZGMgKi8KLQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUnwvKlVEQ0NSX1JTVElSfCovVURDQ1JfUkVTSVIpOwotCi0JZXAwX2lkbGUoZGV2KTsKLQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOwotCWRldi0+c3RhdHMuaXJxcyA9IDA7Ci0KLQkvKgotCSAqIHNlcXVlbmNlIHRha2VuIGZyb20gY2hhcHRlciAxMi41LjEwLCBQWEEyNTAgQXBwUHJvY0Rldk1hbnVhbDoKLQkgKiAtIGVuYWJsZSBVREMKLQkgKiAtIGlmIFJFU0VUIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIGFjayBpbnRlcnJ1cHQKLQkgKiAtIHVubWFzayByZXNldCBpbnRlcnJ1cHQKLQkgKi8KLQl1ZGNfc2V0X21hc2tfVURDQ1IoVURDQ1JfVURFKTsKLQlpZiAoIShVRENDUiAmIFVEQ0NSX1VEQSkpCi0JCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKLQotCWlmIChkZXYtPmhhc19jZnIgLyogVURDX1JFUzIgaXMgZGVmaW5lZCAqLykgewotCQkvKiBweGEyNTUgKGEwKykgY2FuIGF2b2lkIGEgc2V0X2NvbmZpZyByYWNlIHRoYXQgY291bGQKLQkJICogcHJldmVudCBnYWRnZXQgZHJpdmVycyBmcm9tIGNvbmZpZ3VyaW5nIGNvcnJlY3RseQotCQkgKi8KLQkJVURDQ0ZSID0gVURDQ0ZSX0FDTSB8IFVEQ0NGUl9NQjE7Ci0JfSBlbHNlIHsKLQkJLyogIlVTQiB0ZXN0IG1vZGUiIGZvciBweGEyNTAgZXJyYXRhIDQwLTQyIChzdGVwcGluZyBhMCwgYTEpCi0JCSAqIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBtaXNzaW5nIHBhY2tldHMgYW5kIGludGVycnVwdHMuCi0JCSAqIHN1cHBvc2VkbHkgb25lIGJpdCBwZXIgZW5kcG9pbnQsIGNvbnRyb2xsaW5nIHdoZXRoZXIgaXQKLQkJICogZG91YmxlIGJ1ZmZlcnMgb3Igbm90OyBBQ00vQVJFTiBiaXRzIGZpdCBpbnRvIHRoZSBob2xlcy4KLQkJICogemVybyBiaXRzIChsaWtlIFVTSVIwX0lSeCkgZGlzYWJsZSBkb3VibGUgYnVmZmVyaW5nLgotCQkgKi8KLQkJVURDX1JFUzEgPSAweDAwOwotCQlVRENfUkVTMiA9IDB4MDA7Ci0JfQotCi0JLyogZW5hYmxlIHN1c3BlbmQvcmVzdW1lIGFuZCByZXNldCBpcnFzICovCi0JdWRjX2NsZWFyX21hc2tfVURDQ1IoVURDQ1JfU1JNIHwgVURDQ1JfUkVNKTsKLQotCS8qIGVuYWJsZSBlcDAgaXJxcyAqLwotCVVJQ1IwICY9IH5VSUNSMF9JTTA7Ci0KLQkvKiBpZiBoYXJkd2FyZSBzdXBwb3J0cyBpdCwgcHVsbHVwIEQrIGFuZCB3YWl0IGZvciByZXNldCAqLwotCXB1bGx1cF9vbigpOwotfQotCi0KLS8qIHdoZW4gYSBkcml2ZXIgaXMgc3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQsIGl0IHdpbGwgcmVjZWl2ZQotICogY29udHJvbCByZXF1ZXN0cyBpbmNsdWRpbmcgc2V0X2NvbmZpZ3VyYXRpb24oKSwgd2hpY2ggZW5hYmxlcwotICogbm9uLWNvbnRyb2wgcmVxdWVzdHMuICB0aGVuIHVzYiB0cmFmZmljIGZvbGxvd3MgdW50aWwgYQotICogZGlzY29ubmVjdCBpcyByZXBvcnRlZC4gIHRoZW4gYSBob3N0IG1heSBjb25uZWN0IGFnYWluLCBvcgotICogdGhlIGRyaXZlciBtaWdodCBnZXQgdW5ib3VuZC4KLSAqLwotaW50IHVzYl9nYWRnZXRfcmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKLQlpbnQJCQlyZXR2YWw7Ci0KLQlpZiAoIWRyaXZlcgotCQkJfHwgZHJpdmVyLT5zcGVlZCA8IFVTQl9TUEVFRF9GVUxMCi0JCQl8fCAhZHJpdmVyLT5iaW5kCi0JCQl8fCAhZHJpdmVyLT5kaXNjb25uZWN0Ci0JCQl8fCAhZHJpdmVyLT5zZXR1cCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JaWYgKCFkZXYpCi0JCXJldHVybiAtRU5PREVWOwotCWlmIChkZXYtPmRyaXZlcikKLQkJcmV0dXJuIC1FQlVTWTsKLQotCS8qIGZpcnN0IGhvb2sgdXAgdGhlIGRyaXZlciAuLi4gKi8KLQlkZXYtPmRyaXZlciA9IGRyaXZlcjsKLQlkZXYtPmdhZGdldC5kZXYuZHJpdmVyID0gJmRyaXZlci0+ZHJpdmVyOwotCWRldi0+cHVsbHVwID0gMTsKLQotCXJldHZhbCA9IGRldmljZV9hZGQgKCZkZXYtPmdhZGdldC5kZXYpOwotCWlmIChyZXR2YWwpIHsKLWZhaWw6Ci0JCWRldi0+ZHJpdmVyID0gTlVMTDsKLQkJZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7Ci0JCXJldHVybiByZXR2YWw7Ci0JfQotCXJldHZhbCA9IGRyaXZlci0+YmluZCgmZGV2LT5nYWRnZXQpOwotCWlmIChyZXR2YWwpIHsKLQkJRE1TRygiYmluZCB0byBkcml2ZXIgJXMgLS0+IGVycm9yICVkXG4iLAotCQkJCWRyaXZlci0+ZHJpdmVyLm5hbWUsIHJldHZhbCk7Ci0JCWRldmljZV9kZWwgKCZkZXYtPmdhZGdldC5kZXYpOwotCQlnb3RvIGZhaWw7Ci0JfQotCi0JLyogLi4uIHRoZW4gZW5hYmxlIGhvc3QgZGV0ZWN0aW9uIGFuZCBlcDA7IGFuZCB3ZSdyZSByZWFkeQotCSAqIGZvciBzZXRfY29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIGV2ZW50dWFsIGRpc2Nvbm5lY3QuCi0JICovCi0JRE1TRygicmVnaXN0ZXJlZCBnYWRnZXQgZHJpdmVyICclcydcbiIsIGRyaXZlci0+ZHJpdmVyLm5hbWUpOwotCXB1bGx1cChkZXYpOwotCWR1bXBfc3RhdGUoZGV2KTsKLQlyZXR1cm4gMDsKLX0KLUVYUE9SVF9TWU1CT0wodXNiX2dhZGdldF9yZWdpc3Rlcl9kcml2ZXIpOwotCi1zdGF0aWMgdm9pZAotc3RvcF9hY3Rpdml0eShzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2LCBzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIgKmRyaXZlcikKLXsKLQlpbnQgaTsKLQotCS8qIGRvbid0IGRpc2Nvbm5lY3QgZHJpdmVycyBtb3JlIHRoYW4gb25jZSAqLwotCWlmIChkZXYtPmdhZGdldC5zcGVlZCA9PSBVU0JfU1BFRURfVU5LTk9XTikKLQkJZHJpdmVyID0gTlVMTDsKLQlkZXYtPmdhZGdldC5zcGVlZCA9IFVTQl9TUEVFRF9VTktOT1dOOwotCi0JLyogcHJldmVudCBuZXcgcmVxdWVzdCBzdWJtaXNzaW9ucywga2lsbCBhbnkgb3V0c3RhbmRpbmcgcmVxdWVzdHMgICovCi0JZm9yIChpID0gMDsgaSA8IFBYQV9VRENfTlVNX0VORFBPSU5UUzsgaSsrKSB7Ci0JCXN0cnVjdCBweGEyeHhfZXAgKmVwID0gJmRldi0+ZXBbaV07Ci0KLQkJZXAtPnN0b3BwZWQgPSAxOwotCQludWtlKGVwLCAtRVNIVVRET1dOKTsKLQl9Ci0JZGVsX3RpbWVyX3N5bmMoJmRldi0+dGltZXIpOwotCi0JLyogcmVwb3J0IGRpc2Nvbm5lY3Q7IHRoZSBkcml2ZXIgaXMgYWxyZWFkeSBxdWllc2NlZCAqLwotCWlmIChkcml2ZXIpCi0JCWRyaXZlci0+ZGlzY29ubmVjdCgmZGV2LT5nYWRnZXQpOwotCi0JLyogcmUtaW5pdCBkcml2ZXItdmlzaWJsZSBkYXRhIHN0cnVjdHVyZXMgKi8KLQl1ZGNfcmVpbml0KGRldik7Ci19Ci0KLWludCB1c2JfZ2FkZ2V0X3VucmVnaXN0ZXJfZHJpdmVyKHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciAqZHJpdmVyKQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSB0aGVfY29udHJvbGxlcjsKLQotCWlmICghZGV2KQotCQlyZXR1cm4gLUVOT0RFVjsKLQlpZiAoIWRyaXZlciB8fCBkcml2ZXIgIT0gZGV2LT5kcml2ZXIgfHwgIWRyaXZlci0+dW5iaW5kKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCWxvY2FsX2lycV9kaXNhYmxlKCk7Ci0JZGV2LT5wdWxsdXAgPSAwOwotCXB1bGx1cChkZXYpOwotCXN0b3BfYWN0aXZpdHkoZGV2LCBkcml2ZXIpOwotCWxvY2FsX2lycV9lbmFibGUoKTsKLQotCWRyaXZlci0+dW5iaW5kKCZkZXYtPmdhZGdldCk7Ci0JZGV2LT5nYWRnZXQuZGV2LmRyaXZlciA9IE5VTEw7Ci0JZGV2LT5kcml2ZXIgPSBOVUxMOwotCi0JZGV2aWNlX2RlbCAoJmRldi0+Z2FkZ2V0LmRldik7Ci0KLQlETVNHKCJ1bnJlZ2lzdGVyZWQgZ2FkZ2V0IGRyaXZlciAnJXMnXG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsKLQlkdW1wX3N0YXRlKGRldik7Ci0JcmV0dXJuIDA7Ci19Ci1FWFBPUlRfU1lNQk9MKHVzYl9nYWRnZXRfdW5yZWdpc3Rlcl9kcml2ZXIpOwotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLSNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCi0KLS8qIEx1YmJvY2sgaGFzIHNlcGFyYXRlIGNvbm5lY3QgYW5kIGRpc2Nvbm5lY3QgaXJxcy4gIE1vcmUgdHlwaWNhbCBkZXNpZ25zCi0gKiB1c2Ugb25lIEdQSU8gYXMgdGhlIFZCVVMgSVJRLCBhbmQgYW5vdGhlciB0byBjb250cm9sIHRoZSBEKyBwdWxsdXAuCi0gKi8KLQotc3RhdGljIGlycXJldHVybl90Ci1sdWJib2NrX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJdmJ1czsKLQotCWRldi0+c3RhdHMuaXJxcysrOwotCXN3aXRjaCAoaXJxKSB7Ci0JY2FzZSBMVUJCT0NLX1VTQl9JUlE6Ci0JCXZidXMgPSAxOwotCQlkaXNhYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOwotCQllbmFibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKLQkJYnJlYWs7Ci0JY2FzZSBMVUJCT0NLX1VTQl9ESVNDX0lSUToKLQkJdmJ1cyA9IDA7Ci0JCWRpc2FibGVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRKTsKLQkJZW5hYmxlX2lycShMVUJCT0NLX1VTQl9JUlEpOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlyZXR1cm4gSVJRX05PTkU7Ci0JfQotCi0JcHhhMnh4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLSNlbmRpZgotCi1zdGF0aWMgaXJxcmV0dXJuX3QgdWRjX3ZidXNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJdmJ1cyA9IGdwaW9fZ2V0X3ZhbHVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLQotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1c19pbnZlcnRlZCkKLQkJdmJ1cyA9ICF2YnVzOwotCi0JcHhhMnh4X3VkY192YnVzX3Nlc3Npb24oJmRldi0+Z2FkZ2V0LCB2YnVzKTsKLQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci19Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2VwX3N0YXRlIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXVuc2lnbmVkIGk7Ci0KLQkvKiBoYXJkd2FyZSBTRVRfe0NPTkZJR1VSQVRJT04sSU5URVJGQUNFfSBhdXRvbWFnaWMgcmVzZXRzIGVuZHBvaW50Ci0JICogZmlmb3MsIGFuZCBwZW5kaW5nIHRyYW5zYWN0aW9ucyBtdXN0bid0IGJlIGNvbnRpbnVlZCBpbiBhbnkgY2FzZS4KLQkgKi8KLQlmb3IgKGkgPSAxOyBpIDwgUFhBX1VEQ19OVU1fRU5EUE9JTlRTOyBpKyspCi0JCW51a2UoJmRldi0+ZXBbaV0sIC1FQ09OTkFCT1JURUQpOwotfQotCi1zdGF0aWMgdm9pZCB1ZGNfd2F0Y2hkb2codW5zaWduZWQgbG9uZyBfZGV2KQotewotCXN0cnVjdCBweGEyeHhfdWRjCSpkZXYgPSAodm9pZCAqKV9kZXY7Ci0KLQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCWlmIChkZXYtPmVwMHN0YXRlID09IEVQMF9TVEFMTAotCQkJJiYgKFVEQ0NTMCAmIFVEQ0NTMF9GU1QpID09IDAKLQkJCSYmIChVRENDUzAgJiBVRENDUzBfU1NUKSA9PSAwKSB7Ci0JCVVEQ0NTMCA9IFVEQ0NTMF9GU1R8VURDQ1MwX0ZURjsKLQkJREJHKERCR19WRVJCT1NFLCAiZXAwIHJlLXN0YWxsXG4iKTsKLQkJc3RhcnRfd2F0Y2hkb2coZGV2KTsKLQl9Ci0JbG9jYWxfaXJxX2VuYWJsZSgpOwotfQotCi1zdGF0aWMgdm9pZCBoYW5kbGVfZXAwIChzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2KQotewotCXUzMgkJCXVkY2NzMCA9IFVEQ0NTMDsKLQlzdHJ1Y3QgcHhhMnh4X2VwCSplcCA9ICZkZXYtPmVwIFswXTsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQl1bmlvbiB7Ci0JCXN0cnVjdCB1c2JfY3RybHJlcXVlc3QJcjsKLQkJdTgJCQlyYXcgWzhdOwotCQl1MzIJCQl3b3JkIFsyXTsKLQl9IHU7Ci0KLQlpZiAobGlzdF9lbXB0eSgmZXAtPnF1ZXVlKSkKLQkJcmVxID0gTlVMTDsKLQllbHNlCi0JCXJlcSA9IGxpc3RfZW50cnkoZXAtPnF1ZXVlLm5leHQsIHN0cnVjdCBweGEyeHhfcmVxdWVzdCwgcXVldWUpOwotCi0JLyogY2xlYXIgc3RhbGwgc3RhdHVzICovCi0JaWYgKHVkY2NzMCAmIFVEQ0NTMF9TU1QpIHsKLQkJbnVrZShlcCwgLUVQSVBFKTsKLQkJVURDQ1MwID0gVURDQ1MwX1NTVDsKLQkJZGVsX3RpbWVyKCZkZXYtPnRpbWVyKTsKLQkJZXAwX2lkbGUoZGV2KTsKLQl9Ci0KLQkvKiBwcmV2aW91cyByZXF1ZXN0IHVuZmluaXNoZWQ/ICBub24tZXJyb3IgaWZmIGJhY2stdG8tYmFjayAuLi4gKi8KLQlpZiAoKHVkY2NzMCAmIFVEQ0NTMF9TQSkgIT0gMCAmJiBkZXYtPmVwMHN0YXRlICE9IEVQMF9JRExFKSB7Ci0JCW51a2UoZXAsIDApOwotCQlkZWxfdGltZXIoJmRldi0+dGltZXIpOwotCQllcDBfaWRsZShkZXYpOwotCX0KLQotCXN3aXRjaCAoZGV2LT5lcDBzdGF0ZSkgewotCWNhc2UgRVAwX0lETEU6Ci0JCS8qIGxhdGUtYnJlYWtpbmcgc3RhdHVzPyAqLwotCQl1ZGNjczAgPSBVRENDUzA7Ci0KLQkJLyogc3RhcnQgY29udHJvbCByZXF1ZXN0PyAqLwotCQlpZiAobGlrZWx5KCh1ZGNjczAgJiAoVURDQ1MwX09QUnxVRENDUzBfU0F8VURDQ1MwX1JORSkpCi0JCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBfFVEQ0NTMF9STkUpKSkgewotCQkJaW50IGk7Ci0KLQkJCW51a2UgKGVwLCAtRVBST1RPKTsKLQotCQkJLyogcmVhZCBTRVRVUCBwYWNrZXQgKi8KLQkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKLQkJCQlpZiAodW5saWtlbHkoIShVRENDUzAgJiBVRENDUzBfUk5FKSkpIHsKLWJhZF9zZXR1cDoKLQkJCQkJRE1TRygiU0VUVVAgJWQhXG4iLCBpKTsKLQkJCQkJZ290byBzdGFsbDsKLQkJCQl9Ci0JCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKLQkJCX0KLQkJCWlmICh1bmxpa2VseSgoVURDQ1MwICYgVURDQ1MwX1JORSkgIT0gMCkpCi0JCQkJZ290byBiYWRfc2V0dXA7Ci0KLWdvdF9zZXR1cDoKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlNFVFVQICUwMnguJTAyeCB2JTA0eCBpJTA0eCBsJTA0eFxuIiwKLQkJCQl1LnIuYlJlcXVlc3RUeXBlLCB1LnIuYlJlcXVlc3QsCi0JCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSksCi0JCQkJbGUxNl90b19jcHUodS5yLndJbmRleCksCi0JCQkJbGUxNl90b19jcHUodS5yLndMZW5ndGgpKTsKLQotCQkJLyogY29wZSB3aXRoIGF1dG9tYWdpYyBmb3Igc29tZSBzdGFuZGFyZCByZXF1ZXN0cy4gKi8KLQkJCWRldi0+cmVxX3N0ZCA9ICh1LnIuYlJlcXVlc3RUeXBlICYgVVNCX1RZUEVfTUFTSykKLQkJCQkJCT09IFVTQl9UWVBFX1NUQU5EQVJEOwotCQkJZGV2LT5yZXFfY29uZmlnID0gMDsKLQkJCWRldi0+cmVxX3BlbmRpbmcgPSAxOwotCQkJc3dpdGNoICh1LnIuYlJlcXVlc3QpIHsKLQkJCS8qIGhhcmR3YXJlIHJlc3RyaWN0cyBnYWRnZXQgZHJpdmVycyBoZXJlISAqLwotCQkJY2FzZSBVU0JfUkVRX1NFVF9DT05GSUdVUkFUSU9OOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKLQkJCQkJLyogcmVmbGVjdCBoYXJkd2FyZSdzIGF1dG9tYWdpYwotCQkJCQkgKiB1cCB0byB0aGUgZ2FkZ2V0IGRyaXZlci4KLQkJCQkJICovCi1jb25maWdfY2hhbmdlOgotCQkJCQlkZXYtPnJlcV9jb25maWcgPSAxOwotCQkJCQljbGVhcl9lcF9zdGF0ZShkZXYpOwotCQkJCQkvKiBpZiAhaGFzX2NmciwgdGhlcmUncyBubyBzeW5jaAotCQkJCQkgKiBlbHNlIHVzZSBBUkVOIChsYXRlcikgbm90IFNBfE9QUgotCQkJCQkgKiBVU0lSMF9JUjAgYWN0cyBlZGdlIHNlbnNpdGl2ZQotCQkJCQkgKi8KLQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQkvKiAuLi4gYW5kIGhlcmUsIGV2ZW4gbW9yZSAuLi4gKi8KLQkJCWNhc2UgVVNCX1JFUV9TRVRfSU5URVJGQUNFOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9JTlRFUkZBQ0UpIHsKLQkJCQkJLyogdWRjIGhhcmR3YXJlIGlzIGJyb2tlbiBieSBkZXNpZ246Ci0JCQkJCSAqICAtIGFsdHNldHRpbmcgbWF5IG9ubHkgYmUgemVybzsKLQkJCQkJICogIC0gaHcgcmVzZXRzIGFsbCBpbnRlcmZhY2VzJyBlcHM7Ci0JCQkJCSAqICAtIGVwIHJlc2V0IGRvZXNuJ3QgaW5jbHVkZSBoYWx0KD8pLgotCQkJCQkgKi8KLQkJCQkJRE1TRygiYnJva2VuIHNldF9pbnRlcmZhY2UgKCVkLyVkKVxuIiwKLQkJCQkJCWxlMTZfdG9fY3B1KHUuci53SW5kZXgpLAotCQkJCQkJbGUxNl90b19jcHUodS5yLndWYWx1ZSkpOwotCQkJCQlnb3RvIGNvbmZpZ19jaGFuZ2U7Ci0JCQkJfQotCQkJCWJyZWFrOwotCQkJLyogaGFyZHdhcmUgd2FzIHN1cHBvc2VkIHRvIGhpZGUgdGhpcyAqLwotCQkJY2FzZSBVU0JfUkVRX1NFVF9BRERSRVNTOgotCQkJCWlmICh1LnIuYlJlcXVlc3RUeXBlID09IFVTQl9SRUNJUF9ERVZJQ0UpIHsKLQkJCQkJZXAwc3RhcnQoZGV2LCAwLCAiYWRkcmVzcyIpOwotCQkJCQlyZXR1cm47Ci0JCQkJfQotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlpZiAodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9ESVJfSU4pCi0JCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9JTl9EQVRBX1BIQVNFOwotCQkJZWxzZQotCQkJCWRldi0+ZXAwc3RhdGUgPSBFUDBfT1VUX0RBVEFfUEhBU0U7Ci0KLQkJCWkgPSBkZXYtPmRyaXZlci0+c2V0dXAoJmRldi0+Z2FkZ2V0LCAmdS5yKTsKLQkJCWlmIChpIDwgMCkgewotCQkJCS8qIGhhcmR3YXJlIGF1dG9tYWdpYyBwcmV2ZW50aW5nIFNUQUxMLi4uICovCi0JCQkJaWYgKGRldi0+cmVxX2NvbmZpZykgewotCQkJCQkvKiBoYXJkd2FyZSBzb21ldGltZXMgbmVnbGVjdHMgdG8gdGVsbAotCQkJCQkgKiB0ZWxsIHVzIGFib3V0IGNvbmZpZyBjaGFuZ2UgZXZlbnRzLAotCQkJCQkgKiBzbyBsYXRlciBvbmVzIG1heSBmYWlsLi4uCi0JCQkJCSAqLwotCQkJCQlXQVJOKCJjb25maWcgY2hhbmdlICUwMnggZmFpbCAlZD9cbiIsCi0JCQkJCQl1LnIuYlJlcXVlc3QsIGkpOwotCQkJCQlyZXR1cm47Ci0JCQkJCS8qIFRPRE8gZXhwZXJpbWVudDogIGlmIGhhc19jZnIsCi0JCQkJCSAqIGhhcmR3YXJlIGRpZG4ndCBBQ0s7IG1heWJlIHdlCi0JCQkJCSAqIGNvdWxkIGFjdHVhbGx5IFNUQUxMIQotCQkJCQkgKi8KLQkJCQl9Ci0JCQkJREJHKERCR19WRVJCT1NFLCAicHJvdG9jb2wgU1RBTEwsICIKLQkJCQkJIiUwMnggZXJyICVkXG4iLCBVRENDUzAsIGkpOwotc3RhbGw6Ci0JCQkJLyogdGhlIHdhdGNoZG9nIHRpbWVyIGhlbHBzIGRlYWwgd2l0aCBjYXNlcwotCQkJCSAqIHdoZXJlIHVkYyBzZWVtcyB0byBjbGVhciBGU1Qgd3JvbmdseSwgYW5kCi0JCQkJICogdGhlbiBOQUtzIGluc3RlYWQgb2YgU1RBTExpbmcuCi0JCQkJICovCi0JCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfRlNUfFVEQ0NTMF9GVEYsICJzdGFsbCIpOwotCQkJCXN0YXJ0X3dhdGNoZG9nKGRldik7Ci0JCQkJZGV2LT5lcDBzdGF0ZSA9IEVQMF9TVEFMTDsKLQotCQkJLyogZGVmZXJyZWQgaS9vID09IG5vIHJlc3BvbnNlIHlldCAqLwotCQkJfSBlbHNlIGlmIChkZXYtPnJlcV9wZW5kaW5nKSB7Ci0JCQkJaWYgKGxpa2VseShkZXYtPmVwMHN0YXRlID09IEVQMF9JTl9EQVRBX1BIQVNFCi0JCQkJCQl8fCBkZXYtPnJlcV9zdGQgfHwgdS5yLndMZW5ndGgpKQotCQkJCQllcDBzdGFydChkZXYsIDAsICJkZWZlciIpOwotCQkJCWVsc2UKLQkJCQkJZXAwc3RhcnQoZGV2LCBVRENDUzBfSVBSLCAiZGVmZXIvSVBSIik7Ci0JCQl9Ci0KLQkJCS8qIGV4cGVjdCBhdCBsZWFzdCBvbmUgZGF0YSBvciBzdGF0dXMgc3RhZ2UgaXJxICovCi0JCQlyZXR1cm47Ci0KLQkJfSBlbHNlIGlmIChsaWtlbHkoKHVkY2NzMCAmIChVRENDUzBfT1BSfFVEQ0NTMF9TQSkpCi0JCQkJPT0gKFVEQ0NTMF9PUFJ8VURDQ1MwX1NBKSkpIHsKLQkJCXVuc2lnbmVkIGk7Ci0KLQkJCS8qIHB4YTIxMC8yNTAgZXJyYXR1bSAxMzEgZm9yIEIwL0IxIHNheXMgUk5FIGxpZXMuCi0JCQkgKiBzdGlsbCBvYnNlcnZlZCBvbiBhIHB4YTI1NSBhMC4KLQkJCSAqLwotCQkJREJHKERCR19WRVJCT1NFLCAiZTEzMVxuIik7Ci0JCQludWtlKGVwLCAtRVBST1RPKTsKLQotCQkJLyogcmVhZCBTRVRVUCBkYXRhLCBidXQgZG9uJ3QgdHJ1c3QgaXQgdG9vIG11Y2ggKi8KLQkJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspCi0JCQkJdS5yYXcgW2ldID0gKHU4KSBVRERSMDsKLQkJCWlmICgodS5yLmJSZXF1ZXN0VHlwZSAmIFVTQl9SRUNJUF9NQVNLKQotCQkJCQk+IFVTQl9SRUNJUF9PVEhFUikKLQkJCQlnb3RvIHN0YWxsOwotCQkJaWYgKHUud29yZCBbMF0gPT0gMCAmJiB1LndvcmQgWzFdID09IDApCi0JCQkJZ290byBzdGFsbDsKLQkJCWdvdG8gZ290X3NldHVwOwotCQl9IGVsc2UgewotCQkJLyogc29tZSByYW5kb20gZWFybHkgSVJROgotCQkJICogLSB3ZSBhY2tlZCBGU1QKLQkJCSAqIC0gSVBSIGNsZWFyZWQKLQkJCSAqIC0gT1BSIGdvdCBzZXQsIHdpdGhvdXQgU0EgKGxpa2VseSBzdGF0dXMgc3RhZ2UpCi0JCQkgKi8KLQkJCVVEQ0NTMCA9IHVkY2NzMCAmIChVRENDUzBfU0F8VURDQ1MwX09QUik7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfSU5fREFUQV9QSEFTRToJCQkvKiBHRVRfREVTQ1JJUFRPUiBldGMgKi8KLQkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFJ8VURDQ1MwX0ZURjsKLQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMGluIHByZW1hdHVyZSBzdGF0dXNcbiIpOwotCQkJaWYgKHJlcSkKLQkJCQlkb25lKGVwLCByZXEsIDApOwotCQkJZXAwX2lkbGUoZGV2KTsKLQkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKLQkJCWlmIChyZXEpIHsKLQkJCQkvKiB0aGlzIElOIHBhY2tldCBtaWdodCBmaW5pc2ggdGhlIHJlcXVlc3QgKi8KLQkJCQkodm9pZCkgd3JpdGVfZXAwX2ZpZm8oZXAsIHJlcSk7Ci0JCQl9IC8qIGVsc2UgSU4gdG9rZW4gYmVmb3JlIHJlc3BvbnNlIHdhcyB3cml0dGVuICovCi0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfT1VUX0RBVEFfUEhBU0U6CQkvKiBTRVRfREVTQ1JJUFRPUiBldGMgKi8KLQkJaWYgKHVkY2NzMCAmIFVEQ0NTMF9PUFIpIHsKLQkJCWlmIChyZXEpIHsKLQkJCQkvKiB0aGlzIE9VVCBwYWNrZXQgbWlnaHQgZmluaXNoIHRoZSByZXF1ZXN0ICovCi0JCQkJaWYgKHJlYWRfZXAwX2ZpZm8oZXAsIHJlcSkpCi0JCQkJCWRvbmUoZXAsIHJlcSwgMCk7Ci0JCQkJLyogZWxzZSBtb3JlIE9VVCBwYWNrZXRzIGV4cGVjdGVkICovCi0JCQl9IC8qIGVsc2UgT1VUIHRva2VuIGJlZm9yZSByZWFkIHdhcyBpc3N1ZWQgKi8KLQkJfSBlbHNlIC8qIGlycSB3YXMgSVBSIGNsZWFyaW5nICovIHsKLQkJCURCRyhEQkdfVkVSQk9TRSwgImVwMG91dCBwcmVtYXR1cmUgc3RhdHVzXG4iKTsKLQkJCWlmIChyZXEpCi0JCQkJZG9uZShlcCwgcmVxLCAwKTsKLQkJCWVwMF9pZGxlKGRldik7Ci0JCX0KLQkJYnJlYWs7Ci0JY2FzZSBFUDBfRU5EX1hGRVI6Ci0JCWlmIChyZXEpCi0JCQlkb25lKGVwLCByZXEsIDApOwotCQkvKiBhY2sgY29udHJvbC1JTiBzdGF0dXMgKG1heWJlIGluLXpscCB3YXMgc2tpcHBlZCkKLQkJICogYWxzbyBhcHBlYXJzIGFmdGVyIHNvbWUgY29uZmlnIGNoYW5nZSBldmVudHMuCi0JCSAqLwotCQlpZiAodWRjY3MwICYgVURDQ1MwX09QUikKLQkJCVVEQ0NTMCA9IFVEQ0NTMF9PUFI7Ci0JCWVwMF9pZGxlKGRldik7Ci0JCWJyZWFrOwotCWNhc2UgRVAwX1NUQUxMOgotCQlVRENDUzAgPSBVRENDUzBfRlNUOwotCQlicmVhazsKLQl9Ci0JVVNJUjAgPSBVU0lSMF9JUjA7Ci19Ci0KLXN0YXRpYyB2b2lkIGhhbmRsZV9lcChzdHJ1Y3QgcHhhMnh4X2VwICplcCkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3JlcXVlc3QJKnJlcTsKLQlpbnQJCQlpc19pbiA9IGVwLT5iRW5kcG9pbnRBZGRyZXNzICYgVVNCX0RJUl9JTjsKLQlpbnQJCQljb21wbGV0ZWQ7Ci0JdTMyCQkJdWRjY3MsIHRtcDsKLQotCWRvIHsKLQkJY29tcGxldGVkID0gMDsKLQkJaWYgKGxpa2VseSAoIWxpc3RfZW1wdHkoJmVwLT5xdWV1ZSkpKQotCQkJcmVxID0gbGlzdF9lbnRyeShlcC0+cXVldWUubmV4dCwKLQkJCQkJc3RydWN0IHB4YTJ4eF9yZXF1ZXN0LCBxdWV1ZSk7Ci0JCWVsc2UKLQkJCXJlcSA9IE5VTEw7Ci0KLQkJLy8gVE9ETyBjaGVjayBGU1QgaGFuZGxpbmcKLQotCQl1ZGNjcyA9ICplcC0+cmVnX3VkY2NzOwotCQlpZiAodW5saWtlbHkoaXNfaW4pKSB7CS8qIGlycSBmcm9tIFRQQywgU1NULCBvciAoSVNPKSBUVVIgKi8KLQkJCXRtcCA9IFVEQ0NTX0JJX1RVUjsKLQkJCWlmIChsaWtlbHkoZXAtPmJtQXR0cmlidXRlcyA9PSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLKSkKLQkJCQl0bXAgfD0gVURDQ1NfQklfU1NUOwotCQkJdG1wICY9IHVkY2NzOwotCQkJaWYgKGxpa2VseSAodG1wKSkKLQkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKLQkJCWlmIChyZXEgJiYgbGlrZWx5ICgodWRjY3MgJiBVRENDU19CSV9URlMpICE9IDApKQotCQkJCWNvbXBsZXRlZCA9IHdyaXRlX2ZpZm8oZXAsIHJlcSk7Ci0KLQkJfSBlbHNlIHsJLyogaXJxIGZyb20gUlBDIChvciBmb3IgSVNPLCBST0YpICovCi0JCQlpZiAobGlrZWx5KGVwLT5ibUF0dHJpYnV0ZXMgPT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSykpCi0JCQkJdG1wID0gVURDQ1NfQk9fU1NUIHwgVURDQ1NfQk9fRE1FOwotCQkJZWxzZQotCQkJCXRtcCA9IFVEQ0NTX0lPX1JPRiB8IFVEQ0NTX0lPX0RNRTsKLQkJCXRtcCAmPSB1ZGNjczsKLQkJCWlmIChsaWtlbHkodG1wKSkKLQkJCQkqZXAtPnJlZ191ZGNjcyA9IHRtcDsKLQotCQkJLyogZmlmb3MgY2FuIGhvbGQgcGFja2V0cywgcmVhZHkgZm9yIHJlYWRpbmcuLi4gKi8KLQkJCWlmIChsaWtlbHkocmVxKSkgewotCQkJCWNvbXBsZXRlZCA9IHJlYWRfZmlmbyhlcCwgcmVxKTsKLQkJCX0gZWxzZQotCQkJCXBpb19pcnFfZGlzYWJsZSAoZXAtPmJFbmRwb2ludEFkZHJlc3MpOwotCQl9Ci0JCWVwLT5waW9faXJxcysrOwotCX0gd2hpbGUgKGNvbXBsZXRlZCk7Ci19Ci0KLS8qCi0gKglweGEyeHhfdWRjX2lycSAtIGludGVycnVwdCBoYW5kbGVyCi0gKgotICogYXZvaWQgZGVsYXlzIGluIGVwMCBwcm9jZXNzaW5nLiB0aGUgY29udHJvbCBoYW5kc2hha2luZyBpc24ndCBhbHdheXMKLSAqIHVuZGVyIHNvZnR3YXJlIGNvbnRyb2wgKHB4YTI1MGMwIGFuZCB0aGUgcHhhMjU1IGFyZSBiZXR0ZXIpLCBhbmQgZGVsYXlzCi0gKiBjb3VsZCBjYXVzZSB1c2IgcHJvdG9jb2wgZXJyb3JzLgotICovCi1zdGF0aWMgaXJxcmV0dXJuX3QKLXB4YTJ4eF91ZGNfaXJxKGludCBpcnEsIHZvaWQgKl9kZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKmRldiA9IF9kZXY7Ci0JaW50CQkJaGFuZGxlZDsKLQotCWRldi0+c3RhdHMuaXJxcysrOwotCWRvIHsKLQkJdTMyCQl1ZGNjciA9IFVEQ0NSOwotCi0JCWhhbmRsZWQgPSAwOwotCi0JCS8qIFNVU3BlbmQgSW50ZXJydXB0IFJlcXVlc3QgKi8KLQkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfU1VTSVIpKSB7Ci0JCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9TVVNJUik7Ci0JCQloYW5kbGVkID0gMTsKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiBzdXNwZW5kJXNcbiIsIGlzX3ZidXNfcHJlc2VudCgpCi0JCQkJPyAiIiA6ICIrZGlzY29ubmVjdCIpOwotCi0JCQlpZiAoIWlzX3ZidXNfcHJlc2VudCgpKQotCQkJCXN0b3BfYWN0aXZpdHkoZGV2LCBkZXYtPmRyaXZlcik7Ci0JCQllbHNlIGlmIChkZXYtPmdhZGdldC5zcGVlZCAhPSBVU0JfU1BFRURfVU5LTk9XTgotCQkJCQkmJiBkZXYtPmRyaXZlcgotCQkJCQkmJiBkZXYtPmRyaXZlci0+c3VzcGVuZCkKLQkJCQlkZXYtPmRyaXZlci0+c3VzcGVuZCgmZGV2LT5nYWRnZXQpOwotCQkJZXAwX2lkbGUgKGRldik7Ci0JCX0KLQotCQkvKiBSRVN1bWUgSW50ZXJydXB0IFJlcXVlc3QgKi8KLQkJaWYgKHVubGlrZWx5KHVkY2NyICYgVURDQ1JfUkVTSVIpKSB7Ci0JCQl1ZGNfYWNrX2ludF9VRENDUihVRENDUl9SRVNJUik7Ci0JCQloYW5kbGVkID0gMTsKLQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXN1bWVcbiIpOwotCi0JCQlpZiAoZGV2LT5nYWRnZXQuc3BlZWQgIT0gVVNCX1NQRUVEX1VOS05PV04KLQkJCQkJJiYgZGV2LT5kcml2ZXIKLQkJCQkJJiYgZGV2LT5kcml2ZXItPnJlc3VtZQotCQkJCQkmJiBpc192YnVzX3ByZXNlbnQoKSkKLQkJCQlkZXYtPmRyaXZlci0+cmVzdW1lKCZkZXYtPmdhZGdldCk7Ci0JCX0KLQotCQkvKiBSZVNlVCBJbnRlcnJ1cHQgUmVxdWVzdCAtIFVTQiByZXNldCAqLwotCQlpZiAodW5saWtlbHkodWRjY3IgJiBVRENDUl9SU1RJUikpIHsKLQkJCXVkY19hY2tfaW50X1VEQ0NSKFVEQ0NSX1JTVElSKTsKLQkJCWhhbmRsZWQgPSAxOwotCi0JCQlpZiAoKFVEQ0NSICYgVURDQ1JfVURBKSA9PSAwKSB7Ci0JCQkJREJHKERCR19WRVJCT1NFLCAiVVNCIHJlc2V0IHN0YXJ0XG4iKTsKLQotCQkJCS8qIHJlc2V0IGRyaXZlciBhbmQgZW5kcG9pbnRzLAotCQkJCSAqIGluIGNhc2UgdGhhdCdzIG5vdCB5ZXQgZG9uZQotCQkJCSAqLwotCQkJCXN0b3BfYWN0aXZpdHkgKGRldiwgZGV2LT5kcml2ZXIpOwotCi0JCQl9IGVsc2UgewotCQkJCURCRyhEQkdfVkVSQk9TRSwgIlVTQiByZXNldCBlbmRcbiIpOwotCQkJCWRldi0+Z2FkZ2V0LnNwZWVkID0gVVNCX1NQRUVEX0ZVTEw7Ci0JCQkJbWVtc2V0KCZkZXYtPnN0YXRzLCAwLCBzaXplb2YgZGV2LT5zdGF0cyk7Ci0JCQkJLyogZHJpdmVyIGFuZCBlbmRwb2ludHMgYXJlIHN0aWxsIHJlc2V0ICovCi0JCQl9Ci0KLQkJfSBlbHNlIHsKLQkJCXUzMgl1c2lyMCA9IFVTSVIwICYgflVJQ1IwOwotCQkJdTMyCXVzaXIxID0gVVNJUjEgJiB+VUlDUjE7Ci0JCQlpbnQJaTsKLQotCQkJaWYgKHVubGlrZWx5ICghdXNpcjAgJiYgIXVzaXIxKSkKLQkJCQljb250aW51ZTsKLQotCQkJREJHKERCR19WRVJZX05PSVNZLCAiaXJxICUwMnguJTAyeFxuIiwgdXNpcjEsIHVzaXIwKTsKLQotCQkJLyogY29udHJvbCB0cmFmZmljICovCi0JCQlpZiAodXNpcjAgJiBVU0lSMF9JUjApIHsKLQkJCQlkZXYtPmVwWzBdLnBpb19pcnFzKys7Ci0JCQkJaGFuZGxlX2VwMChkZXYpOwotCQkJCWhhbmRsZWQgPSAxOwotCQkJfQotCi0JCQkvKiBlbmRwb2ludCBkYXRhIHRyYW5zZmVycyAqLwotCQkJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgewotCQkJCXUzMgl0bXAgPSAxIDw8IGk7Ci0KLQkJCQlpZiAoaSAmJiAodXNpcjAgJiB0bXApKSB7Ci0JCQkJCWhhbmRsZV9lcCgmZGV2LT5lcFtpXSk7Ci0JCQkJCVVTSVIwIHw9IHRtcDsKLQkJCQkJaGFuZGxlZCA9IDE7Ci0JCQkJfQotCQkJCWlmICh1c2lyMSAmIHRtcCkgewotCQkJCQloYW5kbGVfZXAoJmRldi0+ZXBbaSs4XSk7Ci0JCQkJCVVTSVIxIHw9IHRtcDsKLQkJCQkJaGFuZGxlZCA9IDE7Ci0JCQkJfQotCQkJfQotCQl9Ci0KLQkJLyogd2UgY291bGQgYWxzbyBhc2sgZm9yIDEgbXNlYyBTT0YgKFNJUikgaW50ZXJydXB0cyAqLwotCi0JfSB3aGlsZSAoaGFuZGxlZCk7Ci0JcmV0dXJuIElSUV9IQU5ETEVEOwotfQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgdm9pZCBub3BfcmVsZWFzZSAoc3RydWN0IGRldmljZSAqZGV2KQotewotCURNU0coIiVzICVzXG4iLCBfX2Z1bmNfXywgZGV2LT5idXNfaWQpOwotfQotCi0vKiB0aGlzIHVzZXMgbG9hZC10aW1lIGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uIChpbnN0ZWFkIG9mCi0gKiBkb2luZyBpdCBhdCBydW4tdGltZSkgdG8gc2F2ZSBjb2RlLCBlbGltaW5hdGUgZmF1bHQgcGF0aHMsIGFuZAotICogYmUgbW9yZSBvYnZpb3VzbHkgY29ycmVjdC4KLSAqLwotc3RhdGljIHN0cnVjdCBweGEyeHhfdWRjIG1lbW9yeSA9IHsKLQkuZ2FkZ2V0ID0gewotCQkub3BzCQk9ICZweGEyeHhfdWRjX29wcywKLQkJLmVwMAkJPSAmbWVtb3J5LmVwWzBdLmVwLAotCQkubmFtZQkJPSBkcml2ZXJfbmFtZSwKLQkJLmRldiA9IHsKLQkJCS5idXNfaWQJCT0gImdhZGdldCIsCi0JCQkucmVsZWFzZQk9IG5vcF9yZWxlYXNlLAotCQl9LAotCX0sCi0KLQkvKiBjb250cm9sIGVuZHBvaW50ICovCi0JLmVwWzBdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSBlcDBuYW1lLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBFUDBfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MwLAotCQkucmVnX3VkZHIJPSAmVUREUjAsCi0JfSwKLQotCS8qIGZpcnN0IGdyb3VwIG9mIGVuZHBvaW50cyAqLwotCS5lcFsxXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMWluLWJ1bGsiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMSwKLQkJLnJlZ191ZGRyCT0gJlVERFIxLAotCX0sCi0JLmVwWzJdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAyb3V0LWJ1bGsiLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBCVUxLX0ZJRk9fU0laRSwKLQkJfSwKLQkJLmRldgkJPSAmbWVtb3J5LAotCQkuZmlmb19zaXplCT0gQlVMS19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gMiwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0JVTEssCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MyLAotCQkucmVnX3ViY3IJPSAmVUJDUjIsCi0JCS5yZWdfdWRkcgk9ICZVRERSMiwKLQl9LAotI2lmbmRlZiBDT05GSUdfVVNCX1BYQTJYWF9TTUFMTAotCS5lcFszXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwM2luLWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDMsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMywKLQkJLnJlZ191ZGRyCT0gJlVERFIzLAotCX0sCi0JLmVwWzRdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXA0b3V0LWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gNCwKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M0LAotCQkucmVnX3ViY3IJPSAmVUJDUjQsCi0JCS5yZWdfdWRkcgk9ICZVRERSNCwKLQl9LAotCS5lcFs1XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwNWluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDUsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JTlQsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1M1LAotCQkucmVnX3VkZHIJPSAmVUREUjUsCi0JfSwKLQotCS8qIHNlY29uZCBncm91cCBvZiBlbmRwb2ludHMgKi8KLQkuZXBbNl0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDZpbi1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA2LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzYsCi0JCS5yZWdfdWRkcgk9ICZVRERSNiwKLQl9LAotCS5lcFs3XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwN291dC1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDcsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTNywKLQkJLnJlZ191YmNyCT0gJlVCQ1I3LAotCQkucmVnX3VkZHIJPSAmVUREUjcsCi0JfSwKLQkuZXBbOF0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDhpbi1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCA4LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSVNPQywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzgsCi0JCS5yZWdfdWRkcgk9ICZVRERSOCwKLQl9LAotCS5lcFs5XSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwOW91dC1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDksCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTOSwKLQkJLnJlZ191YmNyCT0gJlVCQ1I5LAotCQkucmVnX3VkZHIJPSAmVUREUjksCi0JfSwKLQkuZXBbMTBdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxMGluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDEwLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTAsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTAsCi0JfSwKLQotCS8qIHRoaXJkIGdyb3VwIG9mIGVuZHBvaW50cyAqLwotCS5lcFsxMV0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDExaW4tYnVsayIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IEJVTEtfRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBCVUxLX0ZJRk9fU0laRSwKLQkJLmJFbmRwb2ludEFkZHJlc3MgPSBVU0JfRElSX0lOIHwgMTEsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9CVUxLLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTEsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTEsCi0JfSwKLQkuZXBbMTJdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxMm91dC1idWxrIiwKLQkJCS5vcHMJCT0gJnB4YTJ4eF9lcF9vcHMsCi0JCQkubWF4cGFja2V0CT0gQlVMS19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IEJVTEtfRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IDEyLAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfQlVMSywKLQkJLnJlZ191ZGNjcwk9ICZVRENDUzEyLAotCQkucmVnX3ViY3IJPSAmVUJDUjEyLAotCQkucmVnX3VkZHIJPSAmVUREUjEyLAotCX0sCi0JLmVwWzEzXSA9IHsKLQkJLmVwID0gewotCQkJLm5hbWUJCT0gImVwMTNpbi1pc28iLAotCQkJLm9wcwkJPSAmcHhhMnh4X2VwX29wcywKLQkJCS5tYXhwYWNrZXQJPSBJU09fRklGT19TSVpFLAotCQl9LAotCQkuZGV2CQk9ICZtZW1vcnksCi0JCS5maWZvX3NpemUJPSBJU09fRklGT19TSVpFLAotCQkuYkVuZHBvaW50QWRkcmVzcyA9IFVTQl9ESVJfSU4gfCAxMywKLQkJLmJtQXR0cmlidXRlcwk9IFVTQl9FTkRQT0lOVF9YRkVSX0lTT0MsCi0JCS5yZWdfdWRjY3MJPSAmVURDQ1MxMywKLQkJLnJlZ191ZGRyCT0gJlVERFIxMywKLQl9LAotCS5lcFsxNF0gPSB7Ci0JCS5lcCA9IHsKLQkJCS5uYW1lCQk9ICJlcDE0b3V0LWlzbyIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElTT19GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElTT19GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gMTQsCi0JCS5ibUF0dHJpYnV0ZXMJPSBVU0JfRU5EUE9JTlRfWEZFUl9JU09DLAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTQsCi0JCS5yZWdfdWJjcgk9ICZVQkNSMTQsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTQsCi0JfSwKLQkuZXBbMTVdID0gewotCQkuZXAgPSB7Ci0JCQkubmFtZQkJPSAiZXAxNWluLWludCIsCi0JCQkub3BzCQk9ICZweGEyeHhfZXBfb3BzLAotCQkJLm1heHBhY2tldAk9IElOVF9GSUZPX1NJWkUsCi0JCX0sCi0JCS5kZXYJCT0gJm1lbW9yeSwKLQkJLmZpZm9fc2l6ZQk9IElOVF9GSUZPX1NJWkUsCi0JCS5iRW5kcG9pbnRBZGRyZXNzID0gVVNCX0RJUl9JTiB8IDE1LAotCQkuYm1BdHRyaWJ1dGVzCT0gVVNCX0VORFBPSU5UX1hGRVJfSU5ULAotCQkucmVnX3VkY2NzCT0gJlVEQ0NTMTUsCi0JCS5yZWdfdWRkcgk9ICZVRERSMTUsCi0JfSwKLSNlbmRpZiAvKiAhQ09ORklHX1VTQl9QWEEyWFhfU01BTEwgKi8KLX07Ci0KLSNkZWZpbmUgQ1AxNVIwX1ZFTkRPUl9NQVNLCTB4ZmZmZmUwMDAKLQotI2lmCWRlZmluZWQoQ09ORklHX0FSQ0hfUFhBKQotI2RlZmluZSBDUDE1UjBfWFNDQUxFX1ZBTFVFCTB4NjkwNTIwMDAJLyogaW50ZWwvYXJtL3hzY2FsZSAqLwotCi0jZWxpZglkZWZpbmVkKENPTkZJR19BUkNIX0lYUDRYWCkKLSNkZWZpbmUgQ1AxNVIwX1hTQ0FMRV9WQUxVRQkweDY5MDU0MDAwCS8qIGludGVsL2FybS9peHA0eHggKi8KLQotI2VuZGlmCi0KLSNkZWZpbmUgQ1AxNVIwX1BST0RfTUFTSwkweDAwMDAwM2YwCi0jZGVmaW5lIFBYQTI1eAkJCTB4MDAwMDAxMDAJLyogYW5kIFBYQTI2eCAqLwotI2RlZmluZSBQWEEyMTAJCQkweDAwMDAwMTIwCi0KLSNkZWZpbmUgQ1AxNVIwX1JFVl9NQVNLCQkweDAwMDAwMDBmCi0KLSNkZWZpbmUgQ1AxNVIwX1BST0RSRVZfTUFTSwkoQ1AxNVIwX1BST0RfTUFTSyB8IENQMTVSMF9SRVZfTUFTSykKLQotI2RlZmluZSBQWEEyNTVfQTAJCTB4MDAwMDAxMDYJLyogb3IgUFhBMjYwX0IxICovCi0jZGVmaW5lIFBYQTI1MF9DMAkJMHgwMDAwMDEwNQkvKiBvciBQWEEyNnhfQjAgKi8KLSNkZWZpbmUgUFhBMjUwX0IyCQkweDAwMDAwMTA0Ci0jZGVmaW5lIFBYQTI1MF9CMQkJMHgwMDAwMDEwMwkvKiBvciBQWEEyNjBfQTAgKi8KLSNkZWZpbmUgUFhBMjUwX0IwCQkweDAwMDAwMTAyCi0jZGVmaW5lIFBYQTI1MF9BMQkJMHgwMDAwMDEwMQotI2RlZmluZSBQWEEyNTBfQTAJCTB4MDAwMDAxMDAKLQotI2RlZmluZSBQWEEyMTBfQzAJCTB4MDAwMDAxMjUKLSNkZWZpbmUgUFhBMjEwX0IyCQkweDAwMDAwMTI0Ci0jZGVmaW5lIFBYQTIxMF9CMQkJMHgwMDAwMDEyMwotI2RlZmluZSBQWEEyMTBfQjAJCTB4MDAwMDAxMjIKLSNkZWZpbmUgSVhQNDI1X0EwCQkweDAwMDAwMWMxCi0jZGVmaW5lIElYUDQyNV9CMAkJMHgwMDAwMDFmMQotI2RlZmluZSBJWFA0NjVfQUQJCTB4MDAwMDAyMDAKLQotLyoKLSAqCXByb2JlIC0gYmluZHMgdG8gdGhlIHBsYXRmb3JtIGRldmljZQotICovCi1zdGF0aWMgaW50IF9faW5pdCBweGEyeHhfdWRjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMgKmRldiA9ICZtZW1vcnk7Ci0JaW50IHJldHZhbCwgdmJ1c19pcnEsIGlycTsKLQl1MzIgY2hpcHJldjsKLQotCS8qIGluc2lzdCBvbiBJbnRlbC9BUk0vWFNjYWxlICovCi0JYXNtKCJtcmMlPyBwMTUsIDAsICUwLCBjMCwgYzAiIDogIj1yIiAoY2hpcHJldikpOwotCWlmICgoY2hpcHJldiAmIENQMTVSMF9WRU5ET1JfTUFTSykgIT0gQ1AxNVIwX1hTQ0FMRV9WQUxVRSkgewotCQlwcl9lcnIoIiVzOiBub3QgWFNjYWxlIVxuIiwgZHJpdmVyX25hbWUpOwotCQlyZXR1cm4gLUVOT0RFVjsKLQl9Ci0KLQkvKiB0cmlnZ2VyIGNoaXByZXYtc3BlY2lmaWMgbG9naWMgKi8KLQlzd2l0Y2ggKGNoaXByZXYgJiBDUDE1UjBfUFJPRFJFVl9NQVNLKSB7Ci0jaWYJZGVmaW5lZChDT05GSUdfQVJDSF9QWEEpCi0JY2FzZSBQWEEyNTVfQTA6Ci0JCWRldi0+aGFzX2NmciA9IDE7Ci0JCWJyZWFrOwotCWNhc2UgUFhBMjUwX0EwOgotCWNhc2UgUFhBMjUwX0ExOgotCQkvKiBBMC9BMSAibm90IHJlbGVhc2VkIjsgZXAgMTMsIDE1IHVudXNhYmxlICovCi0JCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgUFhBMjUwX0IyOiBjYXNlIFBYQTIxMF9CMjoKLQljYXNlIFBYQTI1MF9CMTogY2FzZSBQWEEyMTBfQjE6Ci0JY2FzZSBQWEEyNTBfQjA6IGNhc2UgUFhBMjEwX0IwOgotCQkvKiBPVVQtRE1BIGlzIGJyb2tlbiAuLi4gKi8KLQkJLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBQWEEyNTBfQzA6IGNhc2UgUFhBMjEwX0MwOgotCQlicmVhazsKLSNlbGlmCWRlZmluZWQoQ09ORklHX0FSQ0hfSVhQNFhYKQotCWNhc2UgSVhQNDI1X0EwOgotCWNhc2UgSVhQNDI1X0IwOgotCWNhc2UgSVhQNDY1X0FEOgotCQlkZXYtPmhhc19jZnIgPSAxOwotCQlicmVhazsKLSNlbmRpZgotCWRlZmF1bHQ6Ci0JCXByX2VycigiJXM6IHVucmVjb2duaXplZCBwcm9jZXNzb3I6ICUwOHhcbiIsCi0JCQlkcml2ZXJfbmFtZSwgY2hpcHJldik7Ci0JCS8qIGlvcDN4eCwgaXhwNHh4LCAuLi4gKi8KLQkJcmV0dXJuIC1FTk9ERVY7Ci0JfQotCi0JaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkKLQkJcmV0dXJuIC1FTk9ERVY7Ci0KLQlkZXYtPmNsayA9IGNsa19nZXQoJnBkZXYtPmRldiwgIlVEQ0NMSyIpOwotCWlmIChJU19FUlIoZGV2LT5jbGspKSB7Ci0JCXJldHZhbCA9IFBUUl9FUlIoZGV2LT5jbGspOwotCQlnb3RvIGVycl9jbGs7Ci0JfQotCi0JcHJfZGVidWcoIiVzOiBJUlEgJWQlcyVzXG4iLCBkcml2ZXJfbmFtZSwgaXJxLAotCQlkZXYtPmhhc19jZnIgPyAiIiA6ICIgKCFjZnIpIiwKLQkJU0laRV9TVFIgIihwaW8pIgotCQkpOwotCi0JLyogb3RoZXIgbm9uLXN0YXRpYyBwYXJ0cyBvZiBpbml0ICovCi0JZGV2LT5kZXYgPSAmcGRldi0+ZGV2OwotCWRldi0+bWFjaCA9IHBkZXYtPmRldi5wbGF0Zm9ybV9kYXRhOwotCi0JaWYgKGRldi0+bWFjaC0+Z3Bpb192YnVzKSB7Ci0JCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb192YnVzLAotCQkJCSJweGEyeHhfdWRjIEdQSU8gVkJVUyIpKSkgewotCQkJZGV2X2RiZygmcGRldi0+ZGV2LAotCQkJCSJjYW4ndCBnZXQgdmJ1cyBncGlvICVkLCBlcnI6ICVkXG4iLAotCQkJCWRldi0+bWFjaC0+Z3Bpb192YnVzLCByZXR2YWwpOwotCQkJZ290byBlcnJfZ3Bpb192YnVzOwotCQl9Ci0JCWdwaW9fZGlyZWN0aW9uX2lucHV0KGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLQkJdmJ1c19pcnEgPSBncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0JfSBlbHNlCi0JCXZidXNfaXJxID0gMDsKLQotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKSB7Ci0JCWlmICgocmV0dmFsID0gZ3Bpb19yZXF1ZXN0KGRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsCi0JCQkJInBjYTJ4eF91ZGMgR1BJTyBQVUxMVVAiKSkpIHsKLQkJCWRldl9kYmcoJnBkZXYtPmRldiwKLQkJCQkiY2FuJ3QgZ2V0IHB1bGx1cCBncGlvICVkLCBlcnI6ICVkXG4iLAotCQkJCWRldi0+bWFjaC0+Z3Bpb19wdWxsdXAsIHJldHZhbCk7Ci0JCQlnb3RvIGVycl9ncGlvX3B1bGx1cDsKLQkJfQotCQlncGlvX2RpcmVjdGlvbl9vdXRwdXQoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCwgMCk7Ci0JfQotCi0JaW5pdF90aW1lcigmZGV2LT50aW1lcik7Ci0JZGV2LT50aW1lci5mdW5jdGlvbiA9IHVkY193YXRjaGRvZzsKLQlkZXYtPnRpbWVyLmRhdGEgPSAodW5zaWduZWQgbG9uZykgZGV2OwotCi0JZGV2aWNlX2luaXRpYWxpemUoJmRldi0+Z2FkZ2V0LmRldik7Ci0JZGV2LT5nYWRnZXQuZGV2LnBhcmVudCA9ICZwZGV2LT5kZXY7Ci0JZGV2LT5nYWRnZXQuZGV2LmRtYV9tYXNrID0gcGRldi0+ZGV2LmRtYV9tYXNrOwotCi0JdGhlX2NvbnRyb2xsZXIgPSBkZXY7Ci0JcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgZGV2KTsKLQotCXVkY19kaXNhYmxlKGRldik7Ci0JdWRjX3JlaW5pdChkZXYpOwotCi0JZGV2LT52YnVzID0gaXNfdmJ1c19wcmVzZW50KCk7Ci0KLQkvKiBpcnEgc2V0dXAgYWZ0ZXIgb2xkIGhhcmR3YXJlIHN0YXRlIGlzIGNsZWFuZWQgdXAgKi8KLQlyZXR2YWwgPSByZXF1ZXN0X2lycShpcnEsIHB4YTJ4eF91ZGNfaXJxLAotCQkJSVJRRl9ESVNBQkxFRCwgZHJpdmVyX25hbWUsIGRldik7Ci0JaWYgKHJldHZhbCAhPSAwKSB7Ci0JCXByX2VycigiJXM6IGNhbid0IGdldCBpcnEgJWQsIGVyciAlZFxuIiwKLQkJCWRyaXZlcl9uYW1lLCBpcnEsIHJldHZhbCk7Ci0JCWdvdG8gZXJyX2lycTE7Ci0JfQotCWRldi0+Z290X2lycSA9IDE7Ci0KLSNpZmRlZiBDT05GSUdfQVJDSF9MVUJCT0NLCi0JaWYgKG1hY2hpbmVfaXNfbHViYm9jaygpKSB7Ci0JCXJldHZhbCA9IHJlcXVlc3RfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLAotCQkJCWx1YmJvY2tfdmJ1c19pcnEsCi0JCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKLQkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKLQkJaWYgKHJldHZhbCAhPSAwKSB7Ci0JCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCi0JCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0RJU0NfSVJRLCByZXR2YWwpOwotbHViYm9ja19mYWlsMDoKLQkJCWdvdG8gZXJyX2lycV9sdWI7Ci0JCX0KLQkJcmV0dmFsID0gcmVxdWVzdF9pcnEoTFVCQk9DS19VU0JfSVJRLAotCQkJCWx1YmJvY2tfdmJ1c19pcnEsCi0JCQkJSVJRRl9ESVNBQkxFRCB8IElSUUZfU0FNUExFX1JBTkRPTSwKLQkJCQlkcml2ZXJfbmFtZSwgZGV2KTsKLQkJaWYgKHJldHZhbCAhPSAwKSB7Ci0JCQlwcl9lcnIoIiVzOiBjYW4ndCBnZXQgaXJxICVpLCBlcnIgJWRcbiIsCi0JCQkJZHJpdmVyX25hbWUsIExVQkJPQ0tfVVNCX0lSUSwgcmV0dmFsKTsKLQkJCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOwotCQkJZ290byBsdWJib2NrX2ZhaWwwOwotCQl9Ci0JfSBlbHNlCi0jZW5kaWYKLQlpZiAodmJ1c19pcnEpIHsKLQkJcmV0dmFsID0gcmVxdWVzdF9pcnEodmJ1c19pcnEsIHVkY192YnVzX2lycSwKLQkJCQlJUlFGX0RJU0FCTEVEIHwgSVJRRl9TQU1QTEVfUkFORE9NIHwKLQkJCQlJUlFGX1RSSUdHRVJfUklTSU5HIHwgSVJRRl9UUklHR0VSX0ZBTExJTkcsCi0JCQkJZHJpdmVyX25hbWUsIGRldik7Ci0JCWlmIChyZXR2YWwgIT0gMCkgewotCQkJcHJfZXJyKCIlczogY2FuJ3QgZ2V0IGlycSAlaSwgZXJyICVkXG4iLAotCQkJCWRyaXZlcl9uYW1lLCB2YnVzX2lycSwgcmV0dmFsKTsKLQkJCWdvdG8gZXJyX3ZidXNfaXJxOwotCQl9Ci0JfQotCWNyZWF0ZV9kZWJ1Z19maWxlcyhkZXYpOwotCi0JcmV0dXJuIDA7Ci0KLSBlcnJfdmJ1c19pcnE6Ci0jaWZkZWYJQ09ORklHX0FSQ0hfTFVCQk9DSwotCWZyZWVfaXJxKExVQkJPQ0tfVVNCX0RJU0NfSVJRLCBkZXYpOwotIGVycl9pcnFfbHViOgotI2VuZGlmCi0JZnJlZV9pcnEoaXJxLCBkZXYpOwotIGVycl9pcnExOgotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7Ci0gZXJyX2dwaW9fcHVsbHVwOgotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykKLQkJZ3Bpb19mcmVlKGRldi0+bWFjaC0+Z3Bpb192YnVzKTsKLSBlcnJfZ3Bpb192YnVzOgotCWNsa19wdXQoZGV2LT5jbGspOwotIGVycl9jbGs6Ci0JcmV0dXJuIHJldHZhbDsKLX0KLQotc3RhdGljIHZvaWQgcHhhMnh4X3VkY19zaHV0ZG93bihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpfZGV2KQotewotCXB1bGx1cF9vZmYoKTsKLX0KLQotc3RhdGljIGludCBfX2V4aXQgcHhhMnh4X3VkY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYyAqZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Ci0KLQlpZiAoZGV2LT5kcml2ZXIpCi0JCXJldHVybiAtRUJVU1k7Ci0KLQlkZXYtPnB1bGx1cCA9IDA7Ci0JcHVsbHVwKGRldik7Ci0KLQlyZW1vdmVfZGVidWdfZmlsZXMoZGV2KTsKLQotCWlmIChkZXYtPmdvdF9pcnEpIHsKLQkJZnJlZV9pcnEocGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKSwgZGV2KTsKLQkJZGV2LT5nb3RfaXJxID0gMDsKLQl9Ci0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotCWlmIChtYWNoaW5lX2lzX2x1YmJvY2soKSkgewotCQlmcmVlX2lycShMVUJCT0NLX1VTQl9ESVNDX0lSUSwgZGV2KTsKLQkJZnJlZV9pcnEoTFVCQk9DS19VU0JfSVJRLCBkZXYpOwotCX0KLSNlbmRpZgotCWlmIChkZXYtPm1hY2gtPmdwaW9fdmJ1cykgewotCQlmcmVlX2lycShncGlvX3RvX2lycShkZXYtPm1hY2gtPmdwaW9fdmJ1cyksIGRldik7Ci0JCWdwaW9fZnJlZShkZXYtPm1hY2gtPmdwaW9fdmJ1cyk7Ci0JfQotCWlmIChkZXYtPm1hY2gtPmdwaW9fcHVsbHVwKQotCQlncGlvX2ZyZWUoZGV2LT5tYWNoLT5ncGlvX3B1bGx1cCk7Ci0KLQljbGtfcHV0KGRldi0+Y2xrKTsKLQotCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOwotCXRoZV9jb250cm9sbGVyID0gTlVMTDsKLQlyZXR1cm4gMDsKLX0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQotI2lmZGVmCUNPTkZJR19QTQotCi0vKiBVU0Igc3VzcGVuZCAoY29udHJvbGxlZCBieSB0aGUgaG9zdCkgYW5kIHN5c3RlbSBzdXNwZW5kIChjb250cm9sbGVkCi0gKiBieSB0aGUgUFhBKSBkb24ndCBuZWNlc3NhcmlseSB3b3JrIHdlbGwgdG9nZXRoZXIuICBJZiBVU0IgaXMgYWN0aXZlLAotICogdGhlIDQ4IE1IeiBjbG9jayBpcyByZXF1aXJlZDsgc28gdGhlIHN5c3RlbSBjYW4ndCBlbnRlciAzMyBNSHogaWRsZQotICogbW9kZSwgb3IgYW55IGRlZXBlciBQTSBzYXZpbmcgc3RhdGUuCi0gKgotICogRm9yIG5vdywgd2UgcHVudCBhbmQgZm9yY2libHkgZGlzY29ubmVjdCBmcm9tIHRoZSBVU0IgaG9zdCB3aGVuIFBYQQotICogZW50ZXJzIGFueSBzdXNwZW5kIHN0YXRlLiAgV2hpbGUgd2UncmUgZGlzY29ubmVjdGVkLCB3ZSBhbHdheXMgZGlzYWJsZQotICogdGhlIDQ4TUh6IFVTQiBjbG9jayAuLi4gYWxsb3dpbmcgUFhBIHNsZWVwIGFuZC9vciAzMyBNSHogaWRsZSBzdGF0ZXMuCi0gKiBCb2FyZHMgd2l0aG91dCBzb2Z0d2FyZSBwdWxsdXAgY29udHJvbCBzaG91bGRuJ3QgdXNlIHRob3NlIHN0YXRlcy4KLSAqIFZCVVMgSVJRcyBzaG91bGQgcHJvYmFibHkgYmUgaWdub3JlZCBzbyB0aGF0IHRoZSBQWEEgZGV2aWNlIGp1c3QgYWN0cwotICogImRlYWQiIHRvIFVTQiBob3N0cyB1bnRpbCBzeXN0ZW0gcmVzdW1lLgotICovCi1zdGF0aWMgaW50IHB4YTJ4eF91ZGNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKLXsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkqdWRjID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JaWYgKCF1ZGMtPm1hY2gtPmdwaW9fcHVsbHVwICYmICF1ZGMtPm1hY2gtPnVkY19jb21tYW5kKQotCQlXQVJOKCJVU0IgaG9zdCB3b24ndCBkZXRlY3QgZGlzY29ubmVjdCFcbiIpOwotCXVkYy0+c3VzcGVuZGVkID0gMTsKLQotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLQlwdWxsdXAodWRjKTsKLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBweGEyeHhfdWRjX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCi17Ci0Jc3RydWN0IHB4YTJ4eF91ZGMJKnVkYyA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCXVkYy0+c3VzcGVuZGVkID0gMDsKLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0JcHVsbHVwKHVkYyk7Ci0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlCi0jZGVmaW5lCXB4YTJ4eF91ZGNfc3VzcGVuZAlOVUxMCi0jZGVmaW5lCXB4YTJ4eF91ZGNfcmVzdW1lCU5VTEwKLSNlbmRpZgotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB1ZGNfZHJpdmVyID0gewotCS5zaHV0ZG93bgk9IHB4YTJ4eF91ZGNfc2h1dGRvd24sCi0JLnJlbW92ZQkJPSBfX2V4aXRfcChweGEyeHhfdWRjX3JlbW92ZSksCi0JLnN1c3BlbmQJPSBweGEyeHhfdWRjX3N1c3BlbmQsCi0JLnJlc3VtZQkJPSBweGEyeHhfdWRjX3Jlc3VtZSwKLQkuZHJpdmVyCQk9IHsKLQkJLm93bmVyCT0gVEhJU19NT0RVTEUsCi0JCS5uYW1lCT0gInB4YTJ4eC11ZGMiLAotCX0sCi19OwotCi1zdGF0aWMgaW50IF9faW5pdCB1ZGNfaW5pdCh2b2lkKQotewotCXByX2luZm8oIiVzOiB2ZXJzaW9uICVzXG4iLCBkcml2ZXJfbmFtZSwgRFJJVkVSX1ZFUlNJT04pOwotCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJnVkY19kcml2ZXIsIHB4YTJ4eF91ZGNfcHJvYmUpOwotfQotbW9kdWxlX2luaXQodWRjX2luaXQpOwotCi1zdGF0aWMgdm9pZCBfX2V4aXQgdWRjX2V4aXQodm9pZCkKLXsKLQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmdWRjX2RyaXZlcik7Ci19Ci1tb2R1bGVfZXhpdCh1ZGNfZXhpdCk7Ci0KLU1PRFVMRV9ERVNDUklQVElPTihEUklWRVJfREVTQyk7Ci1NT0RVTEVfQVVUSE9SKCJGcmFuayBCZWNrZXIsIFJvYmVydCBTY2h3ZWJlbCwgRGF2aWQgQnJvd25lbGwiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElBUygicGxhdGZvcm06cHhhMnh4LXVkYyIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaCBiL2RyaXZlcnMvdXNiL2dhZGdldC9weGEyeHhfdWRjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyYzE5ZTguLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2NyArMCwwIEBACi0vKgotICogbGludXgvZHJpdmVycy91c2IvZ2FkZ2V0L3B4YTJ4eF91ZGMuaAotICogSW50ZWwgUFhBMnh4IG9uLWNoaXAgZnVsbCBzcGVlZCBVU0IgZGV2aWNlIGNvbnRyb2xsZXIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMgUm9iZXJ0IFNjaHdlYmVsIDxyLnNjaHdlYmVsQHBlbmd1dHJvbml4LmRlPiwgUGVuZ3V0cm9uaXgKLSAqIENvcHlyaWdodCAoQykgMjAwMyBEYXZpZCBCcm93bmVsbAotICoKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0gKi8KLQotI2lmbmRlZiBfX0xJTlVYX1VTQl9HQURHRVRfUFhBMlhYX0gKLSNkZWZpbmUgX19MSU5VWF9VU0JfR0FER0VUX1BYQTJYWF9ICi0KLSNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKiBweGEyeHggaGFzIHRoaXMgKG1vdmUgdG8gaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YS1yZWdzLmgpICovCi0jZGVmaW5lIFVGTlJIX1NJUgkoMSA8PCA3KQkvKiBTT0YgaW50ZXJydXB0IHJlcXVlc3QgKi8KLSNkZWZpbmUgVUZOUkhfU0lNCSgxIDw8IDYpCS8qIFNPRiBpbnRlcnJ1cHQgbWFzayAqLwotI2RlZmluZSBVRk5SSF9JUEUxNAkoMSA8PCA1KQkvKiBJU08gcGFja2V0IGVycm9yLCBlcDE0ICovCi0jZGVmaW5lIFVGTlJIX0lQRTkJKDEgPDwgNCkJLyogSVNPIHBhY2tldCBlcnJvciwgZXA5ICovCi0jZGVmaW5lIFVGTlJIX0lQRTQJKDEgPDwgMykJLyogSVNPIHBhY2tldCBlcnJvciwgZXA0ICovCi0KLS8qIHB4YTI1NSBoYXMgdGhpcyAobW92ZSB0byBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCkgKi8KLSNkZWZpbmUJVURDQ0ZSCQlVRENfUkVTMgkvKiBVREMgQ29udHJvbCBGdW5jdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDRlJfQVJFTgkoMSA8PCA3KQkvKiBBQ0sgcmVzcG9uc2UgZW5hYmxlIChub3cpICovCi0jZGVmaW5lIFVEQ0NGUl9BQ00JKDEgPDwgMikJLyogQUNLIGNvbnRyb2wgbW9kZSAod2FpdCBmb3IgQVJFTikgKi8KLQotLyogbGF0ZXN0IHB4YTI1NSBlcnJhdGEgZGVmaW5lIG5ldyAibXVzdCBiZSBvbmUiIGJpdHMgaW4gVURDQ0ZSICovCi0jZGVmaW5lCVVEQ0NGUl9NQjEJKDB4ZmYgJiB+KFVEQ0NGUl9BUkVOfFVEQ0NGUl9BQ00pKQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi1zdHJ1Y3QgcHhhMnh4X3VkYzsKLQotc3RydWN0IHB4YTJ4eF9lcCB7Ci0Jc3RydWN0IHVzYl9lcAkJCQllcDsKLQlzdHJ1Y3QgcHhhMnh4X3VkYwkJCSpkZXY7Ci0KLQljb25zdCBzdHJ1Y3QgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3IJKmRlc2M7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOwotCXVuc2lnbmVkIGxvbmcJCQkJcGlvX2lycXM7Ci0KLQl1bnNpZ25lZCBzaG9ydAkJCQlmaWZvX3NpemU7Ci0JdTgJCQkJCWJFbmRwb2ludEFkZHJlc3M7Ci0JdTgJCQkJCWJtQXR0cmlidXRlczsKLQotCXVuc2lnbmVkCQkJCXN0b3BwZWQgOiAxOwotCXVuc2lnbmVkCQkJCWRtYV9maXh1cCA6IDE7Ci0KLQkvKiBVRENDUyA9IFVEQyBDb250cm9sL1N0YXR1cyBmb3IgdGhpcyBFUAotCSAqIFVCQ1IgPSBVREMgQnl0ZSBDb3VudCBSZW1haW5pbmcgKGNvbnRlbnRzIG9mIE9VVCBmaWZvKQotCSAqIFVERFIgPSBVREMgRW5kcG9pbnQgRGF0YSBSZWdpc3RlciAodGhlIGZpZm8pCi0JICogRFJDTSA9IERNQSBSZXF1ZXN0IENoYW5uZWwgTWFwCi0JICovCi0Jdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWRjY3M7Ci0Jdm9sYXRpbGUgdTMyCQkJCSpyZWdfdWJjcjsKLQl2b2xhdGlsZSB1MzIJCQkJKnJlZ191ZGRyOwotfTsKLQotc3RydWN0IHB4YTJ4eF9yZXF1ZXN0IHsKLQlzdHJ1Y3QgdXNiX3JlcXVlc3QJCQlyZXE7Ci0Jc3RydWN0IGxpc3RfaGVhZAkJCXF1ZXVlOwotfTsKLQotZW51bSBlcDBfc3RhdGUgewotCUVQMF9JRExFLAotCUVQMF9JTl9EQVRBX1BIQVNFLAotCUVQMF9PVVRfREFUQV9QSEFTRSwKLQlFUDBfRU5EX1hGRVIsCi0JRVAwX1NUQUxMLAotfTsKLQotI2RlZmluZSBFUDBfRklGT19TSVpFCSgodW5zaWduZWQpMTYpCi0jZGVmaW5lIEJVTEtfRklGT19TSVpFCSgodW5zaWduZWQpNjQpCi0jZGVmaW5lIElTT19GSUZPX1NJWkUJKCh1bnNpZ25lZCkyNTYpCi0jZGVmaW5lIElOVF9GSUZPX1NJWkUJKCh1bnNpZ25lZCk4KQotCi1zdHJ1Y3QgdWRjX3N0YXRzIHsKLQlzdHJ1Y3QgZXAwc3RhdHMgewotCQl1bnNpZ25lZCBsb25nCQlvcHM7Ci0JCXVuc2lnbmVkIGxvbmcJCWJ5dGVzOwotCX0gcmVhZCwgd3JpdGU7Ci0JdW5zaWduZWQgbG9uZwkJCWlycXM7Ci19OwotCi0jaWZkZWYgQ09ORklHX1VTQl9QWEEyWFhfU01BTEwKLS8qIHdoZW4gbWVtb3J5J3MgdGlnaHQsIFNNQUxMIGNvbmZpZyBzYXZlcyBjb2RlK2RhdGEuICAqLwotI2RlZmluZQlQWEFfVURDX05VTV9FTkRQT0lOVFMJMwotI2VuZGlmCi0KLSNpZm5kZWYJUFhBX1VEQ19OVU1fRU5EUE9JTlRTCi0jZGVmaW5lCVBYQV9VRENfTlVNX0VORFBPSU5UUwkxNgotI2VuZGlmCi0KLXN0cnVjdCBweGEyeHhfdWRjIHsKLQlzdHJ1Y3QgdXNiX2dhZGdldAkJCWdhZGdldDsKLQlzdHJ1Y3QgdXNiX2dhZGdldF9kcml2ZXIJCSpkcml2ZXI7Ci0KLQllbnVtIGVwMF9zdGF0ZQkJCQllcDBzdGF0ZTsKLQlzdHJ1Y3QgdWRjX3N0YXRzCQkJc3RhdHM7Ci0JdW5zaWduZWQJCQkJZ290X2lycSA6IDEsCi0JCQkJCQl2YnVzIDogMSwKLQkJCQkJCXB1bGx1cCA6IDEsCi0JCQkJCQloYXNfY2ZyIDogMSwKLQkJCQkJCXJlcV9wZW5kaW5nIDogMSwKLQkJCQkJCXJlcV9zdGQgOiAxLAotCQkJCQkJcmVxX2NvbmZpZyA6IDEsCi0JCQkJCQlzdXNwZW5kZWQgOiAxLAotCQkJCQkJYWN0aXZlIDogMTsKLQotI2RlZmluZSBzdGFydF93YXRjaGRvZyhkZXYpIG1vZF90aW1lcigmZGV2LT50aW1lciwgamlmZmllcyArIChIWi8yMDApKQotCXN0cnVjdCB0aW1lcl9saXN0CQkJdGltZXI7Ci0KLQlzdHJ1Y3QgZGV2aWNlCQkJCSpkZXY7Ci0Jc3RydWN0IGNsawkJCQkqY2xrOwotCXN0cnVjdCBweGEyeHhfdWRjX21hY2hfaW5mbwkJKm1hY2g7Ci0JdTY0CQkJCQlkbWFfbWFzazsKLQlzdHJ1Y3QgcHhhMnh4X2VwCQkJZXAgW1BYQV9VRENfTlVNX0VORFBPSU5UU107Ci0KLSNpZmRlZiBDT05GSUdfVVNCX0dBREdFVF9ERUJVR19GUwotCXN0cnVjdCBkZW50cnkJCQkJKmRlYnVnZnNfdWRjOwotI2VuZGlmCi19OwotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0jaWZkZWYgQ09ORklHX0FSQ0hfTFVCQk9DSwotI2luY2x1ZGUgPGFzbS9hcmNoL2x1YmJvY2suaD4KLS8qIGx1YmJvY2sgY2FuIGFsc28gcmVwb3J0IHVzYiBjb25uZWN0L2Rpc2Nvbm5lY3QgaXJxcyAqLwotI2VuZGlmCi0KLXN0YXRpYyBzdHJ1Y3QgcHhhMnh4X3VkYyAqdGhlX2NvbnRyb2xsZXI7Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qCi0gKiBEZWJ1Z2dpbmcgc3VwcG9ydCB2YW5pc2hlcyBpbiBub24tZGVidWcgYnVpbGRzLiAgREJHX05PUk1BTCBzaG91bGQgYmUKLSAqIG1vc3RseSBzaWxlbnQgZHVyaW5nIG5vcm1hbCB1c2UvdGVzdGluZywgd2l0aCBubyB0aW1pbmcgc2lkZS1lZmZlY3RzLgotICovCi0jZGVmaW5lIERCR19OT1JNQUwJMQkvKiBlcnJvciBwYXRocywgZGV2aWNlIHN0YXRlIHRyYW5zaXRpb25zICovCi0jZGVmaW5lIERCR19WRVJCT1NFCTIJLyogYWRkIHNvbWUgc3VjY2VzcyBwYXRoIHRyYWNlIGluZm8gKi8KLSNkZWZpbmUgREJHX05PSVNZCTMJLyogLi4uIGV2ZW4gbW9yZTogcmVxdWVzdCBsZXZlbCAqLwotI2RlZmluZSBEQkdfVkVSWV9OT0lTWQk0CS8qIC4uLiBldmVuIG1vcmU6IHBhY2tldCBsZXZlbCAqLwotCi0jZGVmaW5lIERNU0coc3R1ZmYuLi4pCXByX2RlYnVnKCJ1ZGM6ICIgc3R1ZmYpCi0KLSNpZmRlZiBERUJVRwotCi1zdGF0aWMgaW50IGlzX3ZidXNfcHJlc2VudCh2b2lkKTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKnN0YXRlX25hbWVbXSA9IHsKLQkiRVAwX0lETEUiLAotCSJFUDBfSU5fREFUQV9QSEFTRSIsICJFUDBfT1VUX0RBVEFfUEhBU0UiLAotCSJFUDBfRU5EX1hGRVIiLCAiRVAwX1NUQUxMIgotfTsKLQotI2lmZGVmIFZFUkJPU0VfREVCVUcKLSMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfVkVSQk9TRQotI2Vsc2UKLSMgICAgZGVmaW5lIFVEQ19ERUJVRyBEQkdfTk9STUFMCi0jZW5kaWYKLQotc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKLWR1bXBfdWRjY3IoY29uc3QgY2hhciAqbGFiZWwpCi17Ci0JdTMyCXVkY2NyID0gVURDQ1I7Ci0JRE1TRygiJXMgJTAyWCA9JXMlcyVzJXMlcyVzJXMlc1xuIiwKLQkJbGFiZWwsIHVkY2NyLAotCQkodWRjY3IgJiBVRENDUl9SRU0pID8gIiByZW0iIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1JTVElSKSA/ICIgcnN0aXIiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1NSTSkgPyAiIHNybSIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfU1VTSVIpID8gIiBzdXNpciIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfUkVTSVIpID8gIiByZXNpciIgOiAiIiwKLQkJKHVkY2NyICYgVURDQ1JfUlNNKSA/ICIgcnNtIiA6ICIiLAotCQkodWRjY3IgJiBVRENDUl9VREEpID8gIiB1ZGEiIDogIiIsCi0JCSh1ZGNjciAmIFVEQ0NSX1VERSkgPyAiIHVkZSIgOiAiIik7Ci19Ci0KLXN0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkCi1kdW1wX3VkY2NzMChjb25zdCBjaGFyICpsYWJlbCkKLXsKLQl1MzIJCXVkY2NzMCA9IFVEQ0NTMDsKLQotCURNU0coIiVzICVzICUwMlggPSVzJXMlcyVzJXMlcyVzJXNcbiIsCi0JCWxhYmVsLCBzdGF0ZV9uYW1lW3RoZV9jb250cm9sbGVyLT5lcDBzdGF0ZV0sIHVkY2NzMCwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9TQSkgPyAiIHNhIiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX1JORSkgPyAiIHJuZSIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9GU1QpID8gIiBmc3QiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfU1NUKSA/ICIgc3N0IiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX0RSV0YpID8gIiBkd3JmIiA6ICIiLAotCQkodWRjY3MwICYgVURDQ1MwX0ZURikgPyAiIGZ0ZiIgOiAiIiwKLQkJKHVkY2NzMCAmIFVEQ0NTMF9JUFIpID8gIiBpcHIiIDogIiIsCi0JCSh1ZGNjczAgJiBVRENDUzBfT1BSKSA/ICIgb3ByIiA6ICIiKTsKLX0KLQotc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQKLWR1bXBfc3RhdGUoc3RydWN0IHB4YTJ4eF91ZGMgKmRldikKLXsKLQl1MzIJCXRtcDsKLQl1bnNpZ25lZAlpOwotCi0JRE1TRygiJXMgJXMsIHVpY3IgJTAyWC4lMDJYLCB1c2lyICUwMlguJTAyeCwgdWZuciAlMDJYLiUwMlhcbiIsCi0JCWlzX3ZidXNfcHJlc2VudCgpID8gImhvc3QgIiA6ICJkaXNjb25uZWN0ZWQiLAotCQlzdGF0ZV9uYW1lW2Rldi0+ZXAwc3RhdGVdLAotCQlVSUNSMSwgVUlDUjAsIFVTSVIxLCBVU0lSMCwgVUZOUkgsIFVGTlJMKTsKLQlkdW1wX3VkY2NyKCJ1ZGNjciIpOwotCWlmIChkZXYtPmhhc19jZnIpIHsKLQkJdG1wID0gVURDQ0ZSOwotCQlETVNHKCJ1ZGNjZnIgJTAyWCA9JXMlc1xuIiwgdG1wLAotCQkJKHRtcCAmIFVEQ0NGUl9BUkVOKSA/ICIgYXJlbiIgOiAiIiwKLQkJCSh0bXAgJiBVRENDRlJfQUNNKSA/ICIgYWNtIiA6ICIiKTsKLQl9Ci0KLQlpZiAoIWRldi0+ZHJpdmVyKSB7Ci0JCURNU0coIm5vIGdhZGdldCBkcml2ZXIgYm91bmRcbiIpOwotCQlyZXR1cm47Ci0JfSBlbHNlCi0JCURNU0coImVwMCBkcml2ZXIgJyVzJ1xuIiwgZGV2LT5kcml2ZXItPmRyaXZlci5uYW1lKTsKLQotCWlmICghaXNfdmJ1c19wcmVzZW50KCkpCi0JCXJldHVybjsKLQotCWR1bXBfdWRjY3MwICgidWRjY3MwIik7Ci0JRE1TRygiZXAwIElOICVsdS8lbHUsIE9VVCAlbHUvJWx1XG4iLAotCQlkZXYtPnN0YXRzLndyaXRlLmJ5dGVzLCBkZXYtPnN0YXRzLndyaXRlLm9wcywKLQkJZGV2LT5zdGF0cy5yZWFkLmJ5dGVzLCBkZXYtPnN0YXRzLnJlYWQub3BzKTsKLQotCWZvciAoaSA9IDE7IGkgPCBQWEFfVURDX05VTV9FTkRQT0lOVFM7IGkrKykgewotCQlpZiAoZGV2LT5lcCBbaV0uZGVzYyA9PSBOVUxMKQotCQkJY29udGludWU7Ci0JCURNU0cgKCJ1ZGNjcyVkID0gJTAyeFxuIiwgaSwgKmRldi0+ZXAtPnJlZ191ZGNjcyk7Ci0JfQotfQotCi0jZWxzZQotCi0jZGVmaW5lCWR1bXBfdWRjY3IoeCkJZG97fXdoaWxlKDApCi0jZGVmaW5lCWR1bXBfdWRjY3MwKHgpCWRve313aGlsZSgwKQotI2RlZmluZQlkdW1wX3N0YXRlKHgpCWRve313aGlsZSgwKQotCi0jZGVmaW5lIFVEQ19ERUJVRyAoKHVuc2lnbmVkKTApCi0KLSNlbmRpZgotCi0jZGVmaW5lIERCRyhsdmwsIHN0dWZmLi4uKSBkb3tpZiAoKGx2bCkgPD0gVURDX0RFQlVHKSBETVNHKHN0dWZmKTt9d2hpbGUoMCkKLQotI2RlZmluZSBFUlIoc3R1ZmYuLi4pCQlwcl9lcnIoInVkYzogIiBzdHVmZikKLSNkZWZpbmUgV0FSTihzdHVmZi4uLikJCXByX3dhcm5pbmcoInVkYzogIiBzdHVmZikKLSNkZWZpbmUgSU5GTyhzdHVmZi4uLikJCXByX2luZm8oInVkYzogIiBzdHVmZikKLQotCi0jZW5kaWYgLyogX19MSU5VWF9VU0JfR0FER0VUX1BYQTJYWF9IICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L0tjb25maWcgYi9kcml2ZXJzL3VzYi9ob3N0L0tjb25maWcKaW5kZXggMWVmNmRmMy4uMjI4Nzk3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvS2NvbmZpZwpAQCAtMzAwLDggKzMwMCw4IEBACiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgcjhhNjY1OTctaGNkLgogCiBjb25maWcgU1VQRVJIX09OX0NISVBfUjhBNjY1OTcKLQlib29sZWFuICJFbmFibGUgU3VwZXJIIG9uLWNoaXAgVVNCIGxpa2UgdGhlIFI4QTY2NTk3IgotCWRlcGVuZHMgb24gVVNCX1I4QTY2NTk3X0hDRCAmJiBDUFVfU1VCVFlQRV9TSDczNjYKKwlib29sZWFuICJFbmFibGUgU3VwZXJIIG9uLWNoaXAgUjhBNjY1OTcgVVNCIgorCWRlcGVuZHMgb24gVVNCX1I4QTY2NTk3X0hDRCAmJiAoQ1BVX1NVQlRZUEVfU0g3MzY2IHx8IENQVV9TVUJUWVBFX1NINzcyMykKIAloZWxwCi0JICAgUmVuZXNhcyBTdXBlckggcHJvY2Vzc29yIGhhcyBVU0IgbGlrZSB0aGUgUjhBNjY1OTcuCi0JICAgVGhpcyBkcml2ZXIgc3VwcG9ydGVkIHByb2Nlc3NvciBpcyBTSDczNjYuCisJICAgVGhpcyBkcml2ZXIgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgb24tY2hpcCBSOEE2NjU5NyBpbiB0aGUKKwkgICBTSDczNjYgYW5kIFNINzcyMyBwcm9jZXNzb3JzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWF1MXh4eC5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWF1MXh4eC5jCmluZGV4IDhiNWY5OTEuLjA4YTQzMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1hdTF4eHguYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktYXUxeHh4LmMKQEAgLTIyMyw2ICsyMjMsNyBAQAogCS5idXNfc3VzcGVuZCA9IGVoY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPSBlaGNpX2J1c19yZXN1bWUsCiAJLnJlbGlucXVpc2hfcG9ydCA9IGVoY2lfcmVsaW5xdWlzaF9wb3J0LAorCS5wb3J0X2hhbmRlZF9vdmVyID0gZWhjaV9wb3J0X2hhbmRlZF9vdmVyLAogfTsKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1mc2wuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1mc2wuYwppbmRleCA2ZDliZWQ2Li43MzcwZDYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktZnNsLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWZzbC5jCkBAIC0yNjksNyArMjY5LDcgQEAKIAlpZiAocmV0dmFsKQogCQlyZXR1cm4gcmV0dmFsOwogCi0JZWhjaS0+aXNfdGRpX3JoX3R0ID0gMTsKKwloY2QtPmhhc190dCA9IDE7CiAKIAllaGNpLT5zYnJuID0gMHgyMDsKIApAQCAtMjk1LDEwICsyOTUsNiBAQAogCSAqLwogCS5yZXNldCA9IGVoY2lfZnNsX3NldHVwLAogCS5zdGFydCA9IGVoY2lfcnVuLAotI2lmZGVmCUNPTkZJR19QTQotCS5zdXNwZW5kID0gZWhjaV9idXNfc3VzcGVuZCwKLQkucmVzdW1lID0gZWhjaV9idXNfcmVzdW1lLAotI2VuZGlmCiAJLnN0b3AgPSBlaGNpX3N0b3AsCiAJLnNodXRkb3duID0gZWhjaV9zaHV0ZG93biwKIApAQCAtMzIyLDYgKzMxOCw3IEBACiAJLmJ1c19zdXNwZW5kID0gZWhjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9IGVoY2lfYnVzX3Jlc3VtZSwKIAkucmVsaW5xdWlzaF9wb3J0ID0gZWhjaV9yZWxpbnF1aXNoX3BvcnQsCisJLnBvcnRfaGFuZGVkX292ZXIgPSBlaGNpX3BvcnRfaGFuZGVkX292ZXIsCiB9OwogCiBzdGF0aWMgaW50IGVoY2lfZnNsX2Rydl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWh1Yi5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLWh1Yi5jCmluZGV4IDM4MjU4N2MuLjc0MDgzNWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1odWIuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaHViLmMKQEAgLTYwOSw3ICs2MDksNyBAQAogCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgVVNCX1BPUlRfRkVBVF9DX1NVU1BFTkQ6Ci0JCQkvKiB3ZSBhdXRvLWNsZWFyIHRoaXMgZmVhdHVyZSAqLworCQkJY2xlYXJfYml0KHdJbmRleCwgJmVoY2ktPnBvcnRfY19zdXNwZW5kKTsKIAkJCWJyZWFrOwogCQljYXNlIFVTQl9QT1JUX0ZFQVRfUE9XRVI6CiAJCQlpZiAoSENTX1BQQyAoZWhjaS0+aGNzX3BhcmFtcykpCkBAIC02ODgsNyArNjg4LDcgQEAKIAkJCS8qIHJlc3VtZSBjb21wbGV0ZWQ/ICovCiAJCQllbHNlIGlmICh0aW1lX2FmdGVyX2VxKGppZmZpZXMsCiAJCQkJCWVoY2ktPnJlc2V0X2RvbmVbd0luZGV4XSkpIHsKLQkJCQlzdGF0dXMgfD0gMSA8PCBVU0JfUE9SVF9GRUFUX0NfU1VTUEVORDsKKwkJCQlzZXRfYml0KHdJbmRleCwgJmVoY2ktPnBvcnRfY19zdXNwZW5kKTsKIAkJCQllaGNpLT5yZXNldF9kb25lW3dJbmRleF0gPSAwOwogCiAJCQkJLyogc3RvcCByZXN1bWUgc2lnbmFsaW5nICovCkBAIC03NjUsNiArNzY1LDggQEAKIAkJCXN0YXR1cyB8PSAxIDw8IFVTQl9QT1JUX0ZFQVRfUkVTRVQ7CiAJCWlmICh0ZW1wICYgUE9SVF9QT1dFUikKIAkJCXN0YXR1cyB8PSAxIDw8IFVTQl9QT1JUX0ZFQVRfUE9XRVI7CisJCWlmICh0ZXN0X2JpdCh3SW5kZXgsICZlaGNpLT5wb3J0X2Nfc3VzcGVuZCkpCisJCQlzdGF0dXMgfD0gMSA8PCBVU0JfUE9SVF9GRUFUX0NfU1VTUEVORDsKIAogI2lmbmRlZglWRVJCT1NFX0RFQlVHCiAJaWYgKHN0YXR1cyAmIH4weGZmZmYpCS8qIG9ubHkgaWYgd1BvcnRDaGFuZ2UgaXMgaW50ZXJlc3RpbmcgKi8KQEAgLTg3NSwzICs4NzcsMTMgQEAKIAlzZXRfb3duZXIoZWhjaSwgLS1wb3J0bnVtLCBQT1JUX09XTkVSKTsKIH0KIAorc3RhdGljIGludCBlaGNpX3BvcnRfaGFuZGVkX292ZXIoc3RydWN0IHVzYl9oY2QgKmhjZCwgaW50IHBvcnRudW0pCit7CisJc3RydWN0IGVoY2lfaGNkCQkqZWhjaSA9IGhjZF90b19laGNpKGhjZCk7CisJdTMyIF9faW9tZW0JCSpyZWc7CisKKwlpZiAoZWhjaV9pc19UREkoZWhjaSkpCisJCXJldHVybiAwOworCXJlZyA9ICZlaGNpLT5yZWdzLT5wb3J0X3N0YXR1c1twb3J0bnVtIC0gMV07CisJcmV0dXJuIGVoY2lfcmVhZGwoZWhjaSwgcmVnKSAmIFBPUlRfT1dORVI7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaXhwNHh4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktaXhwNHh4LmMKaW5kZXggNjAxYzg3OS4uOWQwNDJmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLWl4cDR4eC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1peHA0eHguYwpAQCAtMjYsNyArMjYsNyBAQAogCQkrIEhDX0xFTkdUSChlaGNpX3JlYWRsKGVoY2ksICZlaGNpLT5jYXBzLT5oY19jYXBiYXNlKSk7CiAJZWhjaS0+aGNzX3BhcmFtcyA9IGVoY2lfcmVhZGwoZWhjaSwgJmVoY2ktPmNhcHMtPmhjc19wYXJhbXMpOwogCi0JZWhjaS0+aXNfdGRpX3JoX3R0ID0gMTsKKwloY2QtPmhhc190dCA9IDE7CiAJZWhjaV9yZXNldChlaGNpKTsKIAogCXJldHZhbCA9IGVoY2lfaW5pdChoY2QpOwpAQCAtNTgsNiArNTgsOCBAQAogCS5idXNfc3VzcGVuZAkJPSBlaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lCQk9IGVoY2lfYnVzX3Jlc3VtZSwKICNlbmRpZgorCS5yZWxpbnF1aXNoX3BvcnQJPSBlaGNpX3JlbGlucXVpc2hfcG9ydCwKKwkucG9ydF9oYW5kZWRfb3Zlcgk9IGVoY2lfcG9ydF9oYW5kZWRfb3ZlciwKIH07CiAKIHN0YXRpYyBpbnQgaXhwNHh4X2VoY2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1vcmlvbi5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW9yaW9uLmMKaW5kZXggM2FkZmRhOC4uYWI2MjVmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLW9yaW9uLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLW9yaW9uLmMKQEAgLTEzOSwxMCArMTM5LDYgQEAKIAkgKi8KIAkucmVzZXQgPSBlaGNpX29yaW9uX3NldHVwLAogCS5zdGFydCA9IGVoY2lfcnVuLAotI2lmZGVmIENPTkZJR19QTQotCS5zdXNwZW5kID0gZWhjaV9idXNfc3VzcGVuZCwKLQkucmVzdW1lID0gZWhjaV9idXNfcmVzdW1lLAotI2VuZGlmCiAJLnN0b3AgPSBlaGNpX3N0b3AsCiAJLnNodXRkb3duID0gZWhjaV9zaHV0ZG93biwKIApAQCAtMTY1LDYgKzE2MSw4IEBACiAJLmh1Yl9jb250cm9sID0gZWhjaV9odWJfY29udHJvbCwKIAkuYnVzX3N1c3BlbmQgPSBlaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0gZWhjaV9idXNfcmVzdW1lLAorCS5yZWxpbnF1aXNoX3BvcnQgPSBlaGNpX3JlbGlucXVpc2hfcG9ydCwKKwkucG9ydF9oYW5kZWRfb3ZlciA9IGVoY2lfcG9ydF9oYW5kZWRfb3ZlciwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdApAQCAtMjUwLDcgKzI0OCw3IEBACiAJZWhjaS0+cmVncyA9IGhjZC0+cmVncyArIDB4MTAwICsKIAkJSENfTEVOR1RIKGVoY2lfcmVhZGwoZWhjaSwgJmVoY2ktPmNhcHMtPmhjX2NhcGJhc2UpKTsKIAllaGNpLT5oY3NfcGFyYW1zID0gZWhjaV9yZWFkbChlaGNpLCAmZWhjaS0+Y2Fwcy0+aGNzX3BhcmFtcyk7Ci0JZWhjaS0+aXNfdGRpX3JoX3R0ID0gMTsKKwloY2QtPmhhc190dCA9IDE7CiAJZWhjaS0+c2JybiA9IDB4MjA7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXBjaS5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXBjaS5jCmluZGV4IDViYjdmNmIuLmM0NmE1OGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wY2kuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcGNpLmMKQEAgLTEyOSw3ICsxMjksNiBAQAogCXN3aXRjaCAocGRldi0+dmVuZG9yKSB7CiAJY2FzZSBQQ0lfVkVORE9SX0lEX1RESToKIAkJaWYgKHBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX1RESV9FSENJKSB7Ci0JCQllaGNpLT5pc190ZGlfcmhfdHQgPSAxOwogCQkJaGNkLT5oYXNfdHQgPSAxOwogCQkJdGRpX3Jlc2V0KGVoY2kpOwogCQl9CkBAIC0zNzksNyArMzc4LDggQEAKIAkuaHViX2NvbnRyb2wgPQkJZWhjaV9odWJfY29udHJvbCwKIAkuYnVzX3N1c3BlbmQgPQkJZWhjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQllaGNpX2J1c19yZXN1bWUsCi0JLnJlbGlucXVpc2hfcG9ydCA9IAllaGNpX3JlbGlucXVpc2hfcG9ydCwKKwkucmVsaW5xdWlzaF9wb3J0ID0JZWhjaV9yZWxpbnF1aXNoX3BvcnQsCisJLnBvcnRfaGFuZGVkX292ZXIgPQllaGNpX3BvcnRfaGFuZGVkX292ZXIsCiB9OwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXBwYy1vZi5jIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXBwYy1vZi5jCmluZGV4IGVlMzA1YjEuLmIwMThkZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wcGMtb2YuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcHBjLW9mLmMKQEAgLTc2LDYgKzc2LDggQEAKIAkuYnVzX3N1c3BlbmQJCT0gZWhjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZQkJPSBlaGNpX2J1c19yZXN1bWUsCiAjZW5kaWYKKwkucmVsaW5xdWlzaF9wb3J0CT0gZWhjaV9yZWxpbnF1aXNoX3BvcnQsCisJLnBvcnRfaGFuZGVkX292ZXIJPSBlaGNpX3BvcnRfaGFuZGVkX292ZXIsCiB9OwogCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wcGMtc29jLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcHBjLXNvYy5jCmluZGV4IDZjNzYwMzYuLjUyOTU5MGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wcGMtc29jLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLXBwYy1zb2MuYwpAQCAtMTYzLDYgKzE2Myw3IEBACiAJLmJ1c19zdXNwZW5kID0gZWhjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9IGVoY2lfYnVzX3Jlc3VtZSwKIAkucmVsaW5xdWlzaF9wb3J0ID0gZWhjaV9yZWxpbnF1aXNoX3BvcnQsCisJLnBvcnRfaGFuZGVkX292ZXIgPSBlaGNpX3BvcnRfaGFuZGVkX292ZXIsCiB9OwogCiBzdGF0aWMgaW50IGVoY2lfaGNkX3BwY19zb2NfZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcHMzLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcHMzLmMKaW5kZXggNjk3ODIyMi4uMzdlNmFiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXBzMy5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wczMuYwpAQCAtNzMsNiArNzMsNyBAQAogCS5idXNfcmVzdW1lCQk9IGVoY2lfYnVzX3Jlc3VtZSwKICNlbmRpZgogCS5yZWxpbnF1aXNoX3BvcnQJPSBlaGNpX3JlbGlucXVpc2hfcG9ydCwKKwkucG9ydF9oYW5kZWRfb3Zlcgk9IGVoY2lfcG9ydF9oYW5kZWRfb3ZlciwKIH07CiAKIHN0YXRpYyBpbnQgcHMzX2VoY2lfcHJvYmUoc3RydWN0IHBzM19zeXN0ZW1fYnVzX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXNjaGVkLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc2NoZWQuYwppbmRleCBiZTU3NWU0Li5iNzg1M2M4IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc2NoZWQuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc2NoZWQuYwpAQCAtMTM0OSwxOCArMTM0OSwyNyBAQAogCS8qIHdoZW4ncyB0aGUgbGFzdCB1ZnJhbWUgdGhpcyB1cmIgY291bGQgc3RhcnQ/ICovCiAJbWF4ID0gbm93ICsgbW9kOwogCi0JLyogdHlwaWNhbCBjYXNlOiByZXVzZSBjdXJyZW50IHNjaGVkdWxlLiBzdHJlYW0gaXMgc3RpbGwgYWN0aXZlLAotCSAqIGFuZCBubyBnYXBzIGZyb20gaG9zdCBmYWxsaW5nIGJlaGluZCAoaXJxIGRlbGF5cyBldGMpCisJLyogVHlwaWNhbCBjYXNlOiByZXVzZSBjdXJyZW50IHNjaGVkdWxlLCBzdHJlYW0gaXMgc3RpbGwgYWN0aXZlLgorCSAqIEhvcGVmdWxseSB0aGVyZSBhcmUgbm8gZ2FwcyBmcm9tIHRoZSBob3N0IGZhbGxpbmcgYmVoaW5kCisJICogKGlycSBkZWxheXMgZXRjKSwgYnV0IGlmIHRoZXJlIGFyZSB3ZSdsbCB0YWtlIHRoZSBuZXh0CisJICogc2xvdCBpbiB0aGUgc2NoZWR1bGUsIGltcGxpY2l0bHkgYXNzdW1pbmcgVVJCX0lTT19BU0FQLgogCSAqLwogCWlmIChsaWtlbHkgKCFsaXN0X2VtcHR5ICgmc3RyZWFtLT50ZF9saXN0KSkpIHsKIAkJc3RhcnQgPSBzdHJlYW0tPm5leHRfdWZyYW1lOwogCQlpZiAoc3RhcnQgPCBub3cpCiAJCQlzdGFydCArPSBtb2Q7Ci0JCWlmIChsaWtlbHkgKChzdGFydCArIHNjaGVkLT5zcGFuKSA8IG1heCkpCi0JCQlnb3RvIHJlYWR5OwotCQkvKiBlbHNlIGZlbGwgYmVoaW5kOyBzb21lZGF5LCB0cnkgdG8gcmVzY2hlZHVsZSAqLwotCQlzdGF0dXMgPSAtRUwyTlNZTkM7Ci0JCWdvdG8gZmFpbDsKKworCQkvKiBGZWxsIGJlaGluZCAoYnkgdXAgdG8gdHdpY2UgdGhlIHNsb3AgYW1vdW50KT8gKi8KKwkJaWYgKHN0YXJ0ID49IG1heCAtIDIgKiA4ICogU0NIRURVTEVfU0xPUCkKKwkJCXN0YXJ0ICs9IHN0cmVhbS0+aW50ZXJ2YWwgKiBESVZfUk9VTkRfVVAoCisJCQkJCW1heCAtIHN0YXJ0LCBzdHJlYW0tPmludGVydmFsKSAtIG1vZDsKKworCQkvKiBUcmllZCB0byBzY2hlZHVsZSB0b28gZmFyIGludG8gdGhlIGZ1dHVyZT8gKi8KKwkJaWYgKHVubGlrZWx5KChzdGFydCArIHNjaGVkLT5zcGFuKSA+PSBtYXgpKSB7CisJCQlzdGF0dXMgPSAtRUZCSUc7CisJCQlnb3RvIGZhaWw7CisJCX0KKwkJZ290byByZWFkeTsKIAl9CiAKIAkvKiBuZWVkIHRvIHNjaGVkdWxlOyB3aGVuJ3MgdGhlIG5leHQgKHUpZnJhbWUgd2UgY291bGQgc3RhcnQ/CkBAIC0xNjEzLDYgKzE2MjIsOSBAQAogCQl9IGVsc2UgaWYgKGxpa2VseSAoKHQgJiBFSENJX0lTT0NfQUNUSVZFKSA9PSAwKSkgewogCQkJZGVzYy0+c3RhdHVzID0gMDsKIAkJCWRlc2MtPmFjdHVhbF9sZW5ndGggPSBFSENJX0lURF9MRU5HVEggKHQpOworCQl9IGVsc2UgeworCQkJLyogVVJCIHdhcyB0b28gbGF0ZSAqLworCQkJZGVzYy0+c3RhdHVzID0gLUVYREVWOwogCQl9CiAJfQogCkBAIC0yMDk1LDcgKzIxMDcsNyBAQAogc3RhdGljIHZvaWQKIHNjYW5fcGVyaW9kaWMgKHN0cnVjdCBlaGNpX2hjZCAqZWhjaSkKIHsKLQl1bnNpZ25lZAlmcmFtZSwgY2xvY2ssIG5vd191ZnJhbWUsIG1vZDsKKwl1bnNpZ25lZAlub3dfdWZyYW1lLCBmcmFtZSwgY2xvY2ssIGNsb2NrX2ZyYW1lLCBtb2Q7CiAJdW5zaWduZWQJbW9kaWZpZWQ7CiAKIAltb2QgPSBlaGNpLT5wZXJpb2RpY19zaXplIDw8IDM7CkBAIC0yMTExLDYgKzIxMjMsNyBAQAogCWVsc2UKIAkJY2xvY2sgPSBub3dfdWZyYW1lICsgbW9kIC0gMTsKIAljbG9jayAlPSBtb2Q7CisJY2xvY2tfZnJhbWUgPSBjbG9jayA+PiAzOwogCiAJZm9yICg7OykgewogCQl1bmlvbiBlaGNpX3NoYWRvdwlxLCAqcV9wOwpAQCAtMjE1NywyMiArMjE3MCwyNiBAQAogCQkJY2FzZSBRX1RZUEVfSVREOgogCQkJCS8qIElmIHRoaXMgSVREIGlzIHN0aWxsIGFjdGl2ZSwgbGVhdmUgaXQgZm9yCiAJCQkJICogbGF0ZXIgcHJvY2Vzc2luZyAuLi4gY2hlY2sgdGhlIG5leHQgZW50cnkuCisJCQkJICogTm8gbmVlZCB0byBjaGVjayBmb3IgYWN0aXZpdHkgdW5sZXNzIHRoZQorCQkJCSAqIGZyYW1lIGlzIGN1cnJlbnQuCiAJCQkJICovCi0JCQkJcm1iICgpOwotCQkJCWZvciAodWYgPSAwOyB1ZiA8IDggJiYgbGl2ZTsgdWYrKykgewotCQkJCQlpZiAoMCA9PSAocS5pdGQtPmh3X3RyYW5zYWN0aW9uIFt1Zl0KLQkJCQkJCQkmIElURF9BQ1RJVkUoZWhjaSkpKQotCQkJCQkJY29udGludWU7Ci0JCQkJCWluY29tcGxldGUgPSB0cnVlOwotCQkJCQlxX3AgPSAmcS5pdGQtPml0ZF9uZXh0OwotCQkJCQlod19wID0gJnEuaXRkLT5od19uZXh0OwotCQkJCQl0eXBlID0gUV9ORVhUX1RZUEUoZWhjaSwKKwkJCQlpZiAoZnJhbWUgPT0gY2xvY2tfZnJhbWUgJiYgbGl2ZSkgeworCQkJCQlybWIoKTsKKwkJCQkJZm9yICh1ZiA9IDA7IHVmIDwgODsgdWYrKykgeworCQkJCQkJaWYgKHEuaXRkLT5od190cmFuc2FjdGlvblt1Zl0gJgorCQkJCQkJCSAgICBJVERfQUNUSVZFKGVoY2kpKQorCQkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJCWlmICh1ZiA8IDgpIHsKKwkJCQkJCWluY29tcGxldGUgPSB0cnVlOworCQkJCQkJcV9wID0gJnEuaXRkLT5pdGRfbmV4dDsKKwkJCQkJCWh3X3AgPSAmcS5pdGQtPmh3X25leHQ7CisJCQkJCQl0eXBlID0gUV9ORVhUX1RZUEUoZWhjaSwKIAkJCQkJCQlxLml0ZC0+aHdfbmV4dCk7Ci0JCQkJCXEgPSAqcV9wOwotCQkJCQlicmVhazsKKwkJCQkJCXEgPSAqcV9wOworCQkJCQkJYnJlYWs7CisJCQkJCX0KIAkJCQl9Ci0JCQkJaWYgKHVmIDwgOCAmJiBsaXZlKQotCQkJCQlicmVhazsKIAogCQkJCS8qIFRha2UgZmluaXNoZWQgSVREcyBvdXQgb2YgdGhlIHNjaGVkdWxlCiAJCQkJICogYW5kIHByb2Nlc3MgdGhlbTogIHJlY3ljbGUsIG1heWJlIHJlcG9ydApAQCAtMjE4OSw5ICsyMjA2LDEyIEBACiAJCQljYXNlIFFfVFlQRV9TSVREOgogCQkJCS8qIElmIHRoaXMgU0lURCBpcyBzdGlsbCBhY3RpdmUsIGxlYXZlIGl0IGZvcgogCQkJCSAqIGxhdGVyIHByb2Nlc3NpbmcgLi4uIGNoZWNrIHRoZSBuZXh0IGVudHJ5LgorCQkJCSAqIE5vIG5lZWQgdG8gY2hlY2sgZm9yIGFjdGl2aXR5IHVubGVzcyB0aGUKKwkJCQkgKiBmcmFtZSBpcyBjdXJyZW50LgogCQkJCSAqLwotCQkJCWlmICgocS5zaXRkLT5od19yZXN1bHRzICYgU0lURF9BQ1RJVkUoZWhjaSkpCi0JCQkJCQkmJiBsaXZlKSB7CisJCQkJaWYgKGZyYW1lID09IGNsb2NrX2ZyYW1lICYmIGxpdmUgJiYKKwkJCQkJCShxLnNpdGQtPmh3X3Jlc3VsdHMgJgorCQkJCQkJCVNJVERfQUNUSVZFKGVoY2kpKSkgewogCQkJCQlpbmNvbXBsZXRlID0gdHJ1ZTsKIAkJCQkJcV9wID0gJnEuc2l0ZC0+c2l0ZF9uZXh0OwogCQkJCQlod19wID0gJnEuc2l0ZC0+aHdfbmV4dDsKQEAgLTIyNjAsNiArMjI4MCw3IEBACiAKIAkJCS8qIHJlc2NhbiB0aGUgcmVzdCBvZiB0aGlzIGZyYW1lLCB0aGVuIC4uLiAqLwogCQkJY2xvY2sgPSBub3c7CisJCQljbG9ja19mcmFtZSA9IGNsb2NrID4+IDM7CiAJCX0gZWxzZSB7CiAJCQlub3dfdWZyYW1lKys7CiAJCQlub3dfdWZyYW1lICU9IG1vZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS5oIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKaW5kZXggYmY5MmQyMC4uOTAyNDVmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKKysrIGIvZHJpdmVycy91c2IvaG9zdC9laGNpLmgKQEAgLTk3LDYgKzk3LDggQEAKIAkJCWRlZGljYXRlZCB0byB0aGUgY29tcGFuaW9uIGNvbnRyb2xsZXIgKi8KIAl1bnNpZ25lZCBsb25nCQlvd25lZF9wb3J0czsJCS8qIHdoaWNoIHBvcnRzIGFyZQogCQkJb3duZWQgYnkgdGhlIGNvbXBhbmlvbiBkdXJpbmcgYSBidXMgc3VzcGVuZCAqLworCXVuc2lnbmVkIGxvbmcJCXBvcnRfY19zdXNwZW5kOwkJLyogd2hpY2ggcG9ydHMgaGF2ZQorCQkJdGhlIGNoYW5nZS1zdXNwZW5kIGZlYXR1cmUgdHVybmVkIG9uICovCiAKIAkvKiBwZXItSEMgbWVtb3J5IHBvb2xzIChjb3VsZCBiZSBwZXItYnVzLCBidXQgLi4uKSAqLwogCXN0cnVjdCBkbWFfcG9vbAkJKnFoX3Bvb2w7CS8qIHFoIHBlciBhY3RpdmUgdXJiICovCkBAIC0xMTIsNyArMTE0LDYgQEAKIAl1MzIJCQljb21tYW5kOwogCiAJLyogU0lMSUNPTiBRVUlSS1MgKi8KLQl1bnNpZ25lZAkJaXNfdGRpX3JoX3R0OjE7CS8qIFRESSByb290aHViIHdpdGggVFQgKi8KIAl1bnNpZ25lZAkJbm9fc2VsZWN0aXZlX3N1c3BlbmQ6MTsKIAl1bnNpZ25lZAkJaGFzX2ZzbF9wb3J0X2J1ZzoxOyAvKiBGcmVlU2NhbGUgKi8KIAl1bnNpZ25lZAkJYmlnX2VuZGlhbl9tbWlvOjE7CkBAIC0xNzYsNiArMTc3LDE1IEBACiBzdGF0aWMgaW5saW5lIHZvaWQKIHRpbWVyX2FjdGlvbiAoc3RydWN0IGVoY2lfaGNkICplaGNpLCBlbnVtIGVoY2lfdGltZXJfYWN0aW9uIGFjdGlvbikKIHsKKwkvKiBEb24ndCBvdmVycmlkZSB0aW1lb3V0cyB3aGljaCBzaHJpbmsgb3IgKGxhdGVyKSBkaXNhYmxlCisJICogdGhlIGFzeW5jIHJpbmc7IGp1c3QgdGhlIEkvTyB3YXRjaGRvZy4gIE5vdGUgdGhhdCBpZiBhCisJICogU0hSSU5LIHdlcmUgcGVuZGluZywgT0ZGIHdvdWxkIG5ldmVyIGJlIHJlcXVlc3RlZC4KKwkgKi8KKwlpZiAodGltZXJfcGVuZGluZygmZWhjaS0+d2F0Y2hkb2cpCisJCQkmJiAoKEJJVChUSU1FUl9BU1lOQ19TSFJJTkspIHwgQklUKFRJTUVSX0FTWU5DX09GRikpCisJCQkJJiBlaGNpLT5hY3Rpb25zKSkKKwkJcmV0dXJuOworCiAJaWYgKCF0ZXN0X2FuZF9zZXRfYml0IChhY3Rpb24sICZlaGNpLT5hY3Rpb25zKSkgewogCQl1bnNpZ25lZCBsb25nIHQ7CiAKQEAgLTE5MSwxNSArMjAxLDcgQEAKIAkJCXQgPSBFSENJX1NIUklOS19KSUZGSUVTOwogCQkJYnJlYWs7CiAJCX0KLQkJdCArPSBqaWZmaWVzOwotCQkvLyBhbGwgdGltaW5ncyBleGNlcHQgSUFBIHdhdGNoZG9nIGNhbiBiZSBvdmVycmlkZGVuLgotCQkvLyBhc3luYyBxdWV1ZSBTSFJJTksgb2Z0ZW4gcHJlY2VkZXMgSUFBLiAgd2hpbGUgaXQncyByZWFkeQotCQkvLyB0byBnbyBPRkYgbmVpdGhlciBjYW4gbWF0dGVyLCBhbmQgYWZ0ZXJ3YXJkcyB0aGUgSU8KLQkJLy8gd2F0Y2hkb2cgc3RvcHMgdW5sZXNzIHRoZXJlJ3Mgc3RpbGwgcGVyaW9kaWMgdHJhZmZpYy4KLQkJaWYgKHRpbWVfYmVmb3JlX2VxKHQsIGVoY2ktPndhdGNoZG9nLmV4cGlyZXMpCi0JCQkJJiYgdGltZXJfcGVuZGluZyAoJmVoY2ktPndhdGNoZG9nKSkKLQkJCXJldHVybjsKLQkJbW9kX3RpbWVyICgmZWhjaS0+d2F0Y2hkb2csIHQpOworCQltb2RfdGltZXIoJmVoY2ktPndhdGNoZG9nLCB0ICsgamlmZmllcyk7CiAJfQogfQogCkBAIC02NzgsNyArNjgwLDcgQEAKICAqIG5lZWRlZCAobW9zdGx5IGluIHJvb3QgaHViIGNvZGUpLgogICovCiAKLSNkZWZpbmUJZWhjaV9pc19UREkoZSkJCQkoKGUpLT5pc190ZGlfcmhfdHQpCisjZGVmaW5lCWVoY2lfaXNfVERJKGUpCQkJKGVoY2lfdG9faGNkKGUpLT5oYXNfdHQpCiAKIC8qIFJldHVybnMgdGhlIHNwZWVkIG9mIGEgZGV2aWNlIGF0dGFjaGVkIHRvIGEgcG9ydCBvbiB0aGUgcm9vdCBodWIuICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9pc3AxNzYwLWhjZC5jIGIvZHJpdmVycy91c2IvaG9zdC9pc3AxNzYwLWhjZC5jCmluZGV4IGM5Y2VjODcuLjY1YWE1ZWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvaXNwMTc2MC1oY2QuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaGNkLmMKQEAgLTIyMDcsMTQgKzIyMDcsMTQgQEAKIAkJZ290byBlcnJfcHV0OwogCX0KIAotCXJldCA9IHVzYl9hZGRfaGNkKGhjZCwgaXJxLCBpcnFmbGFncyk7Ci0JaWYgKHJldCkKLQkJZ290byBlcnJfdW5tYXA7Ci0KIAloY2QtPmlycSA9IGlycTsKIAloY2QtPnJzcmNfc3RhcnQgPSByZXNfc3RhcnQ7CiAJaGNkLT5yc3JjX2xlbiA9IHJlc19sZW47CiAKKwlyZXQgPSB1c2JfYWRkX2hjZChoY2QsIGlycSwgaXJxZmxhZ3MpOworCWlmIChyZXQpCisJCWdvdG8gZXJyX3VubWFwOworCiAJcmV0dXJuIGhjZDsKIAogZXJyX3VubWFwOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9pc3AxNzYwLWlmLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaWYuYwppbmRleCA0NDBiZjk0Li5jOWRiM2ZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaWYuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L2lzcDE3NjAtaWYuYwpAQCAtMTA0LDggKzEwNCw4IEBACiBzdGF0aWMgdTMyIGlvbGVuZ3RoOwogc3RhdGljIHUzMiBwY2lfbWVtX3BoeTA7CiBzdGF0aWMgdTMyIGxlbmd0aDsKLXN0YXRpYyB1OCAqY2hpcF9hZGRyOwotc3RhdGljIHU4ICppb2Jhc2U7CitzdGF0aWMgdTggX19pb21lbSAqY2hpcF9hZGRyOworc3RhdGljIHU4IF9faW9tZW0gKmlvYmFzZTsKIAogc3RhdGljIGludCBfX2RldmluaXQgaXNwMTc2MV9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKmRldiwKIAkJY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF0OTEuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdDkxLmMKaW5kZXggYzk2ZGIxMS4uZTUzNGY5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF0OTEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXQ5MS5jCkBAIC0yNjEsNiArMjYxLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZiBDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXUxeHh4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktYXUxeHh4LmMKaW5kZXggMWI5YWJkYi4uNjhjMTdmNSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWF1MXh4eC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1hdTF4eHguYwpAQCAtOCw3ICs4LDcgQEAKICAqIEJ1cyBHbHVlIGZvciBBTUQgQWxjaGVteSBBdTF4eHgKICAqCiAgKiBXcml0dGVuIGJ5IENocmlzdG9waGVyIEhvb3ZlciA8Y2hAaHBsLmhwLmNvbT4KLSAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzZWxsIEtpbmcgZXQgYWwuCisgKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c3NlbGwgS2luZyBldCBhbC4KICAqCiAgKiBNb2RpZmllZCBmb3IgTEg3QTQwNCBmcm9tIG9oY2ktc2ExMTExLmMKICAqICBieSBEdXJnZXNoIFBhdHRhbWF0dGEgPHBhdHRhbWF0dGFkQHNoYXJwc2VjLmNvbT4KQEAgLTI4OCw2ICsyODgsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1lcDkzeHguYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1lcDkzeHguYwppbmRleCAwNmFhZGZiLi41YWRhZjM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktZXA5M3h4LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWVwOTN4eC5jCkBAIC0xMzUsNiArMTM1LDcgQEAKIAkuZ2V0X2ZyYW1lX251bWJlcgk9IG9oY2lfZ2V0X2ZyYW1lLAogCS5odWJfc3RhdHVzX2RhdGEJPSBvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wJCT0gb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUJCT0gb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZiBDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQJCT0gb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZQkJPSBvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaGNkLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaGNkLmMKaW5kZXggMzNmMWMxYy4uYTgxNjBkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWhjZC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1oY2QuYwpAQCAtMTA1NCw3ICsxMDU0LDcgQEAKIAogI2lmZGVmIENPTkZJR19NRkRfU001MDEKICNpbmNsdWRlICJvaGNpLXNtNTAxLmMiCi0jZGVmaW5lIFBMQVRGT1JNX0RSSVZFUgkJb2hjaV9oY2Rfc201MDFfZHJpdmVyCisjZGVmaW5lIFNNNTAxX09IQ0lfRFJJVkVSCW9oY2lfaGNkX3NtNTAxX2RyaXZlcgogI2VuZGlmCiAKICNpZgkhZGVmaW5lZChQQ0lfRFJJVkVSKSAmJgkJXApAQCAtMTA2Miw2ICsxMDYyLDcgQEAKIAkhZGVmaW5lZChPRl9QTEFURk9STV9EUklWRVIpICYmCVwKIAkhZGVmaW5lZChTQTExMTFfRFJJVkVSKSAmJglcCiAJIWRlZmluZWQoUFMzX1NZU1RFTV9CVVNfRFJJVkVSKSAmJiBcCisJIWRlZmluZWQoU001MDFfT0hDSV9EUklWRVIpICYmIFwKIAkhZGVmaW5lZChTU0JfT0hDSV9EUklWRVIpCiAjZXJyb3IgIm1pc3NpbmcgYnVzIGdsdWUgZm9yIG9oY2ktaGNkIgogI2VuZGlmCkBAIC0xMTIxLDkgKzExMjIsMTggQEAKIAkJZ290byBlcnJvcl9zc2I7CiAjZW5kaWYKIAorI2lmZGVmIFNNNTAxX09IQ0lfRFJJVkVSCisJcmV0dmFsID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZTTTUwMV9PSENJX0RSSVZFUik7CisJaWYgKHJldHZhbCA8IDApCisJCWdvdG8gZXJyb3Jfc201MDE7CisjZW5kaWYKKwogCXJldHVybiByZXR2YWw7CiAKIAkvKiBFcnJvciBwYXRoICovCisjaWZkZWYgU001MDFfT0hDSV9EUklWRVIKKyBlcnJvcl9zbTUwMToKKyNlbmRpZgogI2lmZGVmIFNTQl9PSENJX0RSSVZFUgogIGVycm9yX3NzYjoKICNlbmRpZgpAQCAtMTE1OSw2ICsxMTY5LDkgQEAKIAogc3RhdGljIHZvaWQgX19leGl0IG9oY2lfaGNkX21vZF9leGl0KHZvaWQpCiB7CisjaWZkZWYgU001MDFfT0hDSV9EUklWRVIKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmU001MDFfT0hDSV9EUklWRVIpOworI2VuZGlmCiAjaWZkZWYgU1NCX09IQ0lfRFJJVkVSCiAJc3NiX2RyaXZlcl91bnJlZ2lzdGVyKCZTU0JfT0hDSV9EUklWRVIpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaHViLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktaHViLmMKaW5kZXggNzlhNzgwMi4uYjU2NzM5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWh1Yi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1odWIuYwpAQCAtMzYsNiArMzYsMTggQEAKIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIAorLyogaGNkLT5odWJfaXJxX2VuYWJsZSgpICovCitzdGF0aWMgdm9pZCBvaGNpX3Joc2NfZW5hYmxlIChzdHJ1Y3QgdXNiX2hjZCAqaGNkKQoreworCXN0cnVjdCBvaGNpX2hjZAkJKm9oY2kgPSBoY2RfdG9fb2hjaSAoaGNkKTsKKworCXNwaW5fbG9ja19pcnEoJm9oY2ktPmxvY2spOworCWlmICghb2hjaS0+YXV0b3N0b3ApCisJCWRlbF90aW1lcigmaGNkLT5yaF90aW1lcik7CS8qIFByZXZlbnQgbmV4dCBwb2xsICovCisJb2hjaV93cml0ZWwob2hjaSwgT0hDSV9JTlRSX1JIU0MsICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKTsKKwlzcGluX3VubG9ja19pcnEoJm9oY2ktPmxvY2spOworfQorCiAjZGVmaW5lIE9IQ0lfU0NIRURfRU5BQkxFUyBcCiAJKE9IQ0lfQ1RSTF9DTEV8T0hDSV9DVFJMX0JMRXxPSENJX0NUUkxfUExFfE9IQ0lfQ1RSTF9JRSkKIApAQCAtMzYyLDI4ICszNzQsMTggQEAKIAkJaW50IGFueV9jb25uZWN0ZWQpCiB7CiAJaW50CXBvbGxfcmggPSAxOwotCWludAlyaHNjOwogCi0JcmhzYyA9IG9oY2lfcmVhZGwob2hjaSwgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpICYgT0hDSV9JTlRSX1JIU0M7CiAJc3dpdGNoIChvaGNpLT5oY19jb250cm9sICYgT0hDSV9DVFJMX0hDRlMpIHsKIAogCWNhc2UgT0hDSV9VU0JfT1BFUjoKLQkJLyogSWYgbm8gc3RhdHVzIGNoYW5nZXMgYXJlIHBlbmRpbmcsIGVuYWJsZSBzdGF0dXMtY2hhbmdlCi0JCSAqIGludGVycnVwdHMuCi0JCSAqLwotCQlpZiAoIXJoc2MgJiYgIWNoYW5nZWQpIHsKLQkJCXJoc2MgPSBPSENJX0lOVFJfUkhTQzsKLQkJCW9oY2lfd3JpdGVsKG9oY2ksIHJoc2MsICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKTsKLQkJfQotCi0JCS8qIEtlZXAgb24gcG9sbGluZyB1bnRpbCB3ZSBrbm93IGEgZGV2aWNlIGlzIGNvbm5lY3RlZAotCQkgKiBhbmQgUkhTQyBpcyBlbmFibGVkLCBvciB1bnRpbCB3ZSBhdXRvc3RvcC4KLQkJICovCisJCS8qIGtlZXAgb24gcG9sbGluZyB1bnRpbCB3ZSBrbm93IGEgZGV2aWNlIGlzIGNvbm5lY3RlZAorCQkgKiBhbmQgUkhTQyBpcyBlbmFibGVkICovCiAJCWlmICghb2hjaS0+YXV0b3N0b3ApIHsKIAkJCWlmIChhbnlfY29ubmVjdGVkIHx8CiAJCQkJCSFkZXZpY2VfbWF5X3dha2V1cCgmb2hjaV90b19oY2Qob2hjaSkKIAkJCQkJCS0+c2VsZi5yb290X2h1Yi0+ZGV2KSkgewotCQkJCWlmIChyaHNjKQorCQkJCWlmIChvaGNpX3JlYWRsKG9oY2ksICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKSAmCisJCQkJCQlPSENJX0lOVFJfUkhTQykKIAkJCQkJcG9sbF9yaCA9IDA7CiAJCQl9IGVsc2UgewogCQkJCW9oY2ktPmF1dG9zdG9wID0gMTsKQEAgLTM5NiwxMyArMzk4LDEyIEBACiAJCQkJb2hjaS0+YXV0b3N0b3AgPSAwOwogCQkJCW9oY2ktPm5leHRfc3RhdGVjaGFuZ2UgPSBqaWZmaWVzICsKIAkJCQkJCVNUQVRFQ0hBTkdFX0RFTEFZOwotCQkJfSBlbHNlIGlmIChyaHNjICYmIHRpbWVfYWZ0ZXJfZXEoamlmZmllcywKKwkJCX0gZWxzZSBpZiAodGltZV9hZnRlcl9lcShqaWZmaWVzLAogCQkJCQkJb2hjaS0+bmV4dF9zdGF0ZWNoYW5nZSkKIAkJCQkJJiYgIW9oY2ktPmVkX3JtX2xpc3QKIAkJCQkJJiYgIShvaGNpLT5oY19jb250cm9sICYKIAkJCQkJCU9IQ0lfU0NIRURfRU5BQkxFUykpIHsKIAkJCQlvaGNpX3JoX3N1c3BlbmQob2hjaSwgMSk7Ci0JCQkJcG9sbF9yaCA9IDA7CiAJCQl9CiAJCX0KIAkJYnJlYWs7CkBAIC00MTYsMTIgKzQxNyw2IEBACiAJCQllbHNlCiAJCQkJdXNiX2hjZF9yZXN1bWVfcm9vdF9odWIob2hjaV90b19oY2Qob2hjaSkpOwogCQl9IGVsc2UgewotCQkJaWYgKCFyaHNjICYmIChvaGNpLT5hdXRvc3RvcCB8fAotCQkJCQlvaGNpX3RvX2hjZChvaGNpKS0+c2VsZi5yb290X2h1Yi0+Ci0JCQkJCQlkb19yZW1vdGVfd2FrZXVwKSkKLQkJCQlvaGNpX3dyaXRlbChvaGNpLCBPSENJX0lOVFJfUkhTQywKLQkJCQkJCSZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKTsKLQogCQkJLyogZXZlcnl0aGluZyBpcyBpZGxlLCBubyBuZWVkIGZvciBwb2xsaW5nICovCiAJCQlwb2xsX3JoID0gMDsKIAkJfQpAQCAtNDQzLDE2ICs0MzgsMTIgQEAKIHN0YXRpYyBpbnQgb2hjaV9yb290X2h1Yl9zdGF0ZV9jaGFuZ2VzKHN0cnVjdCBvaGNpX2hjZCAqb2hjaSwgaW50IGNoYW5nZWQsCiAJCWludCBhbnlfY29ubmVjdGVkKQogewotCS8qIElmIFJIU0MgaXMgZW5hYmxlZCwgZG9uJ3QgcG9sbCAqLwotCWlmIChvaGNpX3JlYWRsKG9oY2ksICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKSAmIE9IQ0lfSU5UUl9SSFNDKQotCQlyZXR1cm4gMDsKKwlpbnQJcG9sbF9yaCA9IDE7CiAKLQkvKiBJZiBubyBzdGF0dXMgY2hhbmdlcyBhcmUgcGVuZGluZywgZW5hYmxlIHN0YXR1cy1jaGFuZ2UgaW50ZXJydXB0cyAqLwotCWlmICghY2hhbmdlZCkgewotCQlvaGNpX3dyaXRlbChvaGNpLCBPSENJX0lOVFJfUkhTQywgJm9oY2ktPnJlZ3MtPmludHJlbmFibGUpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIDE7CisJLyoga2VlcCBvbiBwb2xsaW5nIHVudGlsIFJIU0MgaXMgZW5hYmxlZCAqLworCWlmIChvaGNpX3JlYWRsKG9oY2ksICZvaGNpLT5yZWdzLT5pbnRyZW5hYmxlKSAmIE9IQ0lfSU5UUl9SSFNDKQorCQlwb2xsX3JoID0gMDsKKwlyZXR1cm4gcG9sbF9yaDsKIH0KIAogI2VuZGlmCS8qIENPTkZJR19QTSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWxoN2E0MDQuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1saDdhNDA0LmMKaW5kZXggOTZkMTRmYS4uMWVmNWQ0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWxoN2E0MDQuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktbGg3YTQwNC5jCkBAIC04LDcgKzgsNyBAQAogICogQnVzIEdsdWUgZm9yIFNoYXJwIExIN0E0MDQKICAqCiAgKiBXcml0dGVuIGJ5IENocmlzdG9waGVyIEhvb3ZlciA8Y2hAaHBsLmhwLmNvbT4KLSAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzZWxsIEtpbmcgZXQgYWwuCisgKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c3NlbGwgS2luZyBldCBhbC4KICAqCiAgKiBNb2RpZmllZCBmb3IgTEg3QTQwNCBmcm9tIG9oY2ktc2ExMTExLmMKICAqICBieSBEdXJnZXNoIFBhdHRhbWF0dGEgPHBhdHRhbWF0dGFkQHNoYXJwc2VjLmNvbT4KQEAgLTE5Myw2ICsxOTMsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1vbWFwLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktb21hcC5jCmluZGV4IDY4NTlmYjUuLmExOWE0ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1vbWFwLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLW9tYXAuYwpAQCAtMTY5LDEzICsxNjksMTYgQEAKIHsKIAljb25zdCB1bnNpZ25lZAlwb3J0ID0gb2hjaV90b19oY2Qob2hjaSktPnNlbGYub3RnX3BvcnQgLSAxOwogCXVuc2lnbmVkIGxvbmcJZmxhZ3M7CisJdTMyIGw7CiAKIAlvdGdfc3RhcnRfaG5wKG9oY2ktPnRyYW5zY2VpdmVyKTsKIAogCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIAlvaGNpLT50cmFuc2NlaXZlci0+c3RhdGUgPSBPVEdfU1RBVEVfQV9TVVNQRU5EOwogCXdyaXRlbCAoUkhfUFNfUFNTLCAmb2hjaS0+cmVncy0+cm9vdGh1Yi5wb3J0c3RhdHVzIFtwb3J0XSk7Ci0JT1RHX0NUUkxfUkVHICY9IH5PVEdfQV9CVVNSRVE7CisJbCA9IG9tYXBfcmVhZGwoT1RHX0NUUkwpOworCWwgJj0gfk9UR19BX0JVU1JFUTsKKwlvbWFwX3dyaXRlbChsLCBPVEdfQ1RSTCk7CiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCkBAIC00NjYsNiArNDY5LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcGNpLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcGNpLmMKaW5kZXggM2JmMTc1ZC4uNDY5NmNjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBjaS5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wY2kuYwpAQCAtMzI3LDYgKzMyNyw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDQwMDguYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng0MDA4LmMKaW5kZXggNjY0ZjA3ZS4uMjhiNDU4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDQwMDguYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54NDAwOC5jCkBAIC0yODAsNiArMjgwLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0gb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0gb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPSBvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9IG9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPSBvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54ODU1MC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBueDg1NTAuYwppbmRleCAyODQ2N2UyLi42MDVkNTljIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcG54ODU1MC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wbng4NTUwLmMKQEAgLTIwMSw2ICsyMDEsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtb2YuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtb2YuYwppbmRleCA1MGU1NWRiLi5hNjcyNTI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLW9mLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1vZi5jCkBAIC03Miw2ICs3Miw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1zb2MuYyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wcGMtc29jLmMKaW5kZXggY2QzMzk4Yi4uNTIzYzMwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXBwYy1zb2MuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHBjLXNvYy5jCkBAIC0xNzIsNiArMTcyLDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHMzLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHMzLmMKaW5kZXggYmZkZWIwZDIuLmMxOTM1YWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1wczMuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHMzLmMKQEAgLTY4LDYgKzY4LDcgQEAKIAkuZ2V0X2ZyYW1lX251bWJlcgk9IG9oY2lfZ2V0X2ZyYW1lLAogCS5odWJfc3RhdHVzX2RhdGEJPSBvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wJCT0gb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUJCT0gb2hjaV9yaHNjX2VuYWJsZSwKIAkuc3RhcnRfcG9ydF9yZXNldAk9IG9oY2lfc3RhcnRfcG9ydF9yZXNldCwKICNpZiBkZWZpbmVkKENPTkZJR19QTSkKIAkuYnVzX3N1c3BlbmQgCQk9IG9oY2lfYnVzX3N1c3BlbmQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHhhMjd4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcHhhMjd4LmMKaW5kZXggNzBiMGQ0Yi4uMTI3YjE1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXB4YTI3eC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1weGEyN3guYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvcHhhLXJlZ3MuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEyeHgtcmVncy5oPiAvKiBGSVhNRTogZm9yIFBTU1IgKi8KICNpbmNsdWRlIDxhc20vYXJjaC9vaGNpLmg+CiAKICNkZWZpbmUgUFhBX1VIQ19NQVhfUE9SVE5VTSAgICAzCkBAIC0xMDQsNyArMTA1LDcgQEAKIAlVSENISUUgPSAoVUhDSElFX1VQUklFIHwgVUhDSElFX1JXSUUpOwogCiAJLyogQ2xlYXIgYW55IE9URyBQaW4gSG9sZCAqLwotCWlmIChQU1NSICYgUFNTUl9PVEdQSCkKKwlpZiAoY3B1X2lzX3B4YTI3eCgpICYmIChQU1NSICYgUFNTUl9PVEdQSCkpCiAJCVBTU1IgfD0gUFNTUl9PVEdQSDsKIAogCXJldHVybiAwOwpAQCAtMjk4LDYgKzI5OSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYgIENPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcS5jCmluZGV4IDljOWYzYjUuLjliNTQ3NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYwpAQCAtOTUyLDYgKzk1Miw3IEBACiAJCQlzdHJ1Y3QgdXJiCSp1cmI7CiAJCQl1cmJfcHJpdl90CSp1cmJfcHJpdjsKIAkJCV9faGMzMgkJc2F2ZWJpdHM7CisJCQl1MzIJCXRkSU5GTzsKIAogCQkJdGQgPSBsaXN0X2VudHJ5IChlbnRyeSwgc3RydWN0IHRkLCB0ZF9saXN0KTsKIAkJCXVyYiA9IHRkLT51cmI7CkBAIC05NjYsNiArOTY3LDE3IEBACiAJCQlzYXZlYml0cyA9ICpwcmV2ICYgfmNwdV90b19oYzMyIChvaGNpLCBURF9NQVNLKTsKIAkJCSpwcmV2ID0gdGQtPmh3TmV4dFREIHwgc2F2ZWJpdHM7CiAKKwkJCS8qIElmIHRoaXMgd2FzIHVubGlua2VkLCB0aGUgVEQgbWF5IG5vdCBoYXZlIGJlZW4KKwkJCSAqIHJldGlyZWQgLi4uIHNvIG1hbnVhbGx5IHNhdmUgdGhlIGRhdGEgdG9nZ2xlLgorCQkJICogVGhlIGNvbnRyb2xsZXIgaWdub3JlcyB0aGUgdmFsdWUgd2Ugc2F2ZSBmb3IKKwkJCSAqIGNvbnRyb2wgYW5kIElTTyBlbmRwb2ludHMuCisJCQkgKi8KKwkJCXRkSU5GTyA9IGhjMzJfdG9fY3B1cChvaGNpLCAmdGQtPmh3SU5GTyk7CisJCQlpZiAoKHRkSU5GTyAmIFREX1QpID09IFREX1RfREFUQTApCisJCQkJZWQtPmh3SGVhZFAgJj0gfmNwdV90b19oYzMyKG9oY2ksIEVEX0MpOworCQkJZWxzZSBpZiAoKHRkSU5GTyAmIFREX1QpID09IFREX1RfREFUQTEpCisJCQkJZWQtPmh3SGVhZFAgfD0gY3B1X3RvX2hjMzIob2hjaSwgRURfQyk7CisKIAkJCS8qIEhDIG1heSBoYXZlIHBhcnRseSBwcm9jZXNzZWQgdGhpcyBURCAqLwogCQkJdGRfZG9uZSAob2hjaSwgdXJiLCB0ZCk7CiAJCQl1cmJfcHJpdi0+dGRfY250Kys7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktczNjMjQxMC5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXMzYzI0MTAuYwppbmRleCBhNzNkMmZmLi4zYzdhNzQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktczNjMjQxMC5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zM2MyNDEwLmMKQEAgLTgsNyArOCw3IEBACiAgKiBVU0IgQnVzIEdsdWUgZm9yIFNhbXN1bmcgUzNDMjQxMAogICoKICAqIFdyaXR0ZW4gYnkgQ2hyaXN0b3BoZXIgSG9vdmVyIDxjaEBocGwuaHAuY29tPgotICogQmFzZWQgb24gZnJhZ21lbnRzIG9mIHByZXZpb3VzIGRyaXZlciBieSBSdXNlbGwgS2luZyBldCBhbC4KKyAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzc2VsbCBLaW5nIGV0IGFsLgogICoKICAqIE1vZGlmaWVkIGZvciBTM0MyNDEwIGZyb20gb2hjaS1zYTExMTEuYywgb2hjaS1vbWFwLmMgYW5kIG9oY2ktbGg3YTQwLmMKICAqCWJ5IEJlbiBEb29rcywgPGJlbkBzaW10ZWMuY28udWs+CkBAIC00NjYsNiArNDY2LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9zM2MyNDEwX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9zM2MyNDEwX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNhMTExMS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNhMTExMS5jCmluZGV4IDk5NDM4YzYuLjJlOWRjZWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zYTExMTEuYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2ExMTExLmMKQEAgLTgsNyArOCw3IEBACiAgKiBTQTExMTEgQnVzIEdsdWUKICAqCiAgKiBXcml0dGVuIGJ5IENocmlzdG9waGVyIEhvb3ZlciA8Y2hAaHBsLmhwLmNvbT4KLSAqIEJhc2VkIG9uIGZyYWdtZW50cyBvZiBwcmV2aW91cyBkcml2ZXIgYnkgUnVzZWxsIEtpbmcgZXQgYWwuCisgKiBCYXNlZCBvbiBmcmFnbWVudHMgb2YgcHJldmlvdXMgZHJpdmVyIGJ5IFJ1c3NlbGwgS2luZyBldCBhbC4KICAqCiAgKiBUaGlzIGZpbGUgaXMgbGljZW5jZWQgdW5kZXIgdGhlIEdQTC4KICAqLwpAQCAtMjMxLDYgKzIzMSw3IEBACiAJICovCiAJLmh1Yl9zdGF0dXNfZGF0YSA9CW9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbCA9CQlvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZSA9CW9oY2lfcmhzY19lbmFibGUsCiAjaWZkZWYJQ09ORklHX1BNCiAJLmJ1c19zdXNwZW5kID0JCW9oY2lfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPQkJb2hjaV9idXNfcmVzdW1lLApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNoLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYwppbmRleCA2MGYwM2NjLi5lN2VlNjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYworKysgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc2guYwpAQCAtNjgsNiArNjgsNyBAQAogCSAqLwogCS5odWJfc3RhdHVzX2RhdGEgPQlvaGNpX2h1Yl9zdGF0dXNfZGF0YSwKIAkuaHViX2NvbnRyb2wgPQkJb2hjaV9odWJfY29udHJvbCwKKwkuaHViX2lycV9lbmFibGUgPQlvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZCA9CQlvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lID0JCW9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zbTUwMS5jIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKaW5kZXggZTg5OWE3Ny4uZTYxMDY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNtNTAxLmMKQEAgLTc1LDYgKzc1LDcgQEAKIAkgKi8KIAkuaHViX3N0YXR1c19kYXRhID0Jb2hjaV9odWJfc3RhdHVzX2RhdGEsCiAJLmh1Yl9jb250cm9sID0JCW9oY2lfaHViX2NvbnRyb2wsCisJLmh1Yl9pcnFfZW5hYmxlID0Jb2hjaV9yaHNjX2VuYWJsZSwKICNpZmRlZglDT05GSUdfUE0KIAkuYnVzX3N1c3BlbmQgPQkJb2hjaV9idXNfc3VzcGVuZCwKIAkuYnVzX3Jlc3VtZSA9CQlvaGNpX2J1c19yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc3NiLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktc3NiLmMKaW5kZXggYzQyNjVjYS4uNzI3NTE4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLXNzYi5jCisrKyBiL2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1zc2IuYwpAQCAtODEsNiArODEsNyBAQAogCiAJLmh1Yl9zdGF0dXNfZGF0YQk9IG9oY2lfaHViX3N0YXR1c19kYXRhLAogCS5odWJfY29udHJvbAkJPSBvaGNpX2h1Yl9jb250cm9sLAorCS5odWJfaXJxX2VuYWJsZQkJPSBvaGNpX3Joc2NfZW5hYmxlLAogI2lmZGVmCUNPTkZJR19QTQogCS5idXNfc3VzcGVuZAkJPSBvaGNpX2J1c19zdXNwZW5kLAogCS5idXNfcmVzdW1lCQk9IG9oY2lfYnVzX3Jlc3VtZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvdTEzMi1oY2QuYyBiL2RyaXZlcnMvdXNiL2hvc3QvdTEzMi1oY2QuYwppbmRleCBmMjkzMDc0Li45YjYzMjNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3UxMzItaGNkLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC91MTMyLWhjZC5jCkBAIC0yOTM0LDYgKzI5MzQsMTYgQEAKIAkJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHUxMzJfaHViX2lycV9lbmFibGUoc3RydWN0IHVzYl9oY2QgKmhjZCkKK3sKKwlzdHJ1Y3QgdTEzMiAqdTEzMiA9IGhjZF90b191MTMyKGhjZCk7CisJaWYgKHUxMzItPmdvaW5nID4gMSkgeworCQlkZXZfZXJyKCZ1MTMyLT5wbGF0Zm9ybV9kZXYtPmRldiwgImRldmljZSBoYXMgYmVlbiByZW1vdmVkICVkXG4iCisJCQksIHUxMzItPmdvaW5nKTsKKwl9IGVsc2UgaWYgKHUxMzItPmdvaW5nID4gMCkKKwkJZGV2X2VycigmdTEzMi0+cGxhdGZvcm1fZGV2LT5kZXYsICJkZXZpY2UgaXMgYmVpbmcgcmVtb3ZlZFxuIik7Cit9CisKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCB1MTMyX2J1c19zdXNwZW5kKHN0cnVjdCB1c2JfaGNkICpoY2QpCkBAIC0yOTg1LDYgKzI5OTUsNyBAQAogCS5idXNfc3VzcGVuZCA9IHUxMzJfYnVzX3N1c3BlbmQsCiAJLmJ1c19yZXN1bWUgPSB1MTMyX2J1c19yZXN1bWUsCiAJLnN0YXJ0X3BvcnRfcmVzZXQgPSB1MTMyX3N0YXJ0X3BvcnRfcmVzZXQsCisJLmh1Yl9pcnFfZW5hYmxlID0gdTEzMl9odWJfaXJxX2VuYWJsZSwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL0tjb25maWcgYi9kcml2ZXJzL3VzYi9taXNjL0tjb25maWcKaW5kZXggYTUzZGIxZC4uMDAxNzg5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvS2NvbmZpZwpAQCAtMjY5LDMgKzI2OSwxNSBAQAogCSAgU2VlIDxodHRwOi8vd3d3LmxpbnV4LXVzYi5vcmcvdXNidGVzdC8+IGZvciBtb3JlIGluZm9ybWF0aW9uLAogCSAgaW5jbHVkaW5nIHNhbXBsZSB0ZXN0IGRldmljZSBmaXJtd2FyZSBhbmQgImhvdyB0byB1c2UgaXQiLgogCitjb25maWcgVVNCX0lTSUdIVEZXCisJdHJpc3RhdGUgImlTaWdodCBmaXJtd2FyZSBsb2FkaW5nIHN1cHBvcnQiCisJZGVwZW5kcyBvbiBVU0IKKwlzZWxlY3QgRldfTE9BREVSCisJaGVscAorCSAgVGhpcyBkcml2ZXIgbG9hZHMgZmlybXdhcmUgZm9yIFVTQiBBcHBsZSBpU2lnaHQgY2FtZXJhcywgYWxsb3dpbmcKKwkgIHRoZW0gdG8gYmUgZHJpdmVuIGJ5IHRoZSBVU0IgdmlkZW8gY2xhc3MgZHJpdmVyIGF2YWlsYWJsZSBhdAorCSAgaHR0cDovL2xpbnV4LXV2Yy5iZXJsaW9zLmRlCisKKwkgIFRoZSBmaXJtd2FyZSBmb3IgdGhpcyBkcml2ZXIgbXVzdCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgTWFjT1MKKwkgIGRyaXZlciBiZWZvcmVoYW5kLiBUb29scyBmb3IgZG9pbmcgc28gYXJlIGF2YWlsYWJsZSBhdAorCSAgaHR0cDovL2JlcnNhY2UwMy5mcmVlLmZyCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL01ha2VmaWxlIGIvZHJpdmVycy91c2IvbWlzYy9NYWtlZmlsZQppbmRleCBiNjhlNmI3Li5hYmEwOTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvTWFrZWZpbGUKQEAgLTE0LDYgKzE0LDcgQEAKIG9iai0kKENPTkZJR19VU0JfRlRESV9FTEFOKQkrPSBmdGRpLWVsYW4ubwogb2JqLSQoQ09ORklHX1VTQl9JRE1PVVNFKQkrPSBpZG1vdXNlLm8KIG9iai0kKENPTkZJR19VU0JfSU9XQVJSSU9SKQkrPSBpb3dhcnJpb3Iubworb2JqLSQoQ09ORklHX1VTQl9JU0lHSFRGVykJKz0gaXNpZ2h0X2Zpcm13YXJlLm8KIG9iai0kKENPTkZJR19VU0JfTENEKQkJKz0gdXNibGNkLm8KIG9iai0kKENPTkZJR19VU0JfTEQpCQkrPSBsZHVzYi5vCiBvYmotJChDT05GSUdfVVNCX0xFRCkJCSs9IHVzYmxlZC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTI2LmMgYi9kcml2ZXJzL3VzYi9taXNjL2VtaTI2LmMKaW5kZXggNGI5ZGM4MS4uNGI5OTRhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWkyNi5jCisrKyBiL2RyaXZlcnMvdXNiL21pc2MvZW1pMjYuYwpAQCAtMTYsMTggKzE2LDggQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLQotI2RlZmluZSBNQVhfSU5URUxfSEVYX1JFQ09SRF9MRU5HVEggMTYKLXR5cGVkZWYgc3RydWN0IF9JTlRFTF9IRVhfUkVDT1JECi17Ci0JX191MzIJbGVuZ3RoOwotCV9fdTMyCWFkZHJlc3M7Ci0JX191MzIJdHlwZTsKLQlfX3U4CWRhdGFbTUFYX0lOVEVMX0hFWF9SRUNPUkRfTEVOR1RIXTsKLX0gSU5URUxfSEVYX1JFQ09SRCwgKlBJTlRFTF9IRVhfUkVDT1JEOwotCi0vKiBpbmNsdWRlIGZpcm13YXJlICh2YXJpYWJsZXMpICovCi0jaW5jbHVkZSAiZW1pMjZfZncuaCIKKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KIAogI2RlZmluZSBFTUkyNl9WRU5ET1JfSUQgCQkweDA4NmEgIC8qIEVtYWdpYyBTb2Z0LXVuZCBIYXJkd2FyZSBHbUJIICovCiAjZGVmaW5lIEVNSTI2X1BST0RVQ1RfSUQJCTB4MDEwMAkvKiBFTUkgMnw2IHdpdGhvdXQgZmlybXdhcmUgKi8KQEAgLTQwLDcgKzMwLDkgQEAKICNkZWZpbmUgQ1BVQ1NfUkVHCQkweDdGOTIgIC8qIEVaLVVTQiBDb250cm9sIGFuZCBTdGF0dXMgUmVnaXN0ZXIuICBCaXQgMCBjb250cm9scyA4MDUxIHJlc2V0ICovIAogI2RlZmluZSBJTlRFUk5BTF9SQU0oYWRkcmVzcykgICAoYWRkcmVzcyA8PSBNQVhfSU5URVJOQUxfQUREUkVTUykKIAotc3RhdGljIGludCBlbWkyNl93cml0ZW1lbW9yeSggc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsIF9fdTggYlJlcXVlc3QpOworc3RhdGljIGludCBlbWkyNl93cml0ZW1lbW9yeSggc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsCisJCQkgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLAorCQkJICAgICAgX191OCBiUmVxdWVzdCk7CiBzdGF0aWMgaW50IGVtaTI2X3NldF9yZXNldChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2LCB1bnNpZ25lZCBjaGFyIHJlc2V0X2JpdCk7CiBzdGF0aWMgaW50IGVtaTI2X2xvYWRfZmlybXdhcmUgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpOwogc3RhdGljIGludCBlbWkyNl9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKTsKQEAgLTUwLDcgKzQyLDkgQEAKIAogCiAvKiB0aGFua3MgdG8gZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLmMgY29kZSAqLwotc3RhdGljIGludCBlbWkyNl93cml0ZW1lbW9yeSAoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsIHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsIF9fdTggcmVxdWVzdCkKK3N0YXRpYyBpbnQgZW1pMjZfd3JpdGVtZW1vcnkgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLAorCQkJICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YSwgaW50IGxlbmd0aCwKKwkJCSAgICAgIF9fdTggcmVxdWVzdCkKIHsKIAlpbnQgcmVzdWx0OwogCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciA9ICBrbWVtZHVwKGRhdGEsIGxlbmd0aCwgR0ZQX0tFUk5FTCk7CkBAIC04Myw5ICs3NywxMiBAQAogCiBzdGF0aWMgaW50IGVtaTI2X2xvYWRfZmlybXdhcmUgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYpCiB7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpsb2FkZXJfZncgPSBOVUxMOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqYml0c3RyZWFtX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKIAlpbnQgZXJyOwogCWludCBpOwotCWludCBwb3MgPSAwOwkvKiBQb3NpdGlvbiBpbiBoZXggcmVjb3JkICovCiAJX191MzIgYWRkcjsJLyogQWRkcmVzcyB0byB3cml0ZSAqLwogCV9fdTggKmJ1ZjsKIApAQCAtOTYsNiArOTMsMjMgQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAorCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmbG9hZGVyX2Z3LCAiZW1pMjYvbG9hZGVyLmZ3IiwgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIG5vZnc7CisKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmJpdHN0cmVhbV9mdywgImVtaTI2L2JpdHN0cmVhbS5mdyIsCisJCQkJICAgICZkZXYtPmRldik7CisJaWYgKGVycikKKwkJZ290byBub2Z3OworCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmaXJtd2FyZV9mdywgImVtaTI2L2Zpcm13YXJlLmZ3IiwKKwkJCQkgICAgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKSB7CisJbm9mdzoKKwkJZXJyKCAiJXMgLSByZXF1ZXN0X2Zpcm13YXJlKCkgZmFpbGVkIiwgX19mdW5jX18pOworCQlnb3RvIHdyYXBlcnI7CisJfQorCiAJLyogQXNzZXJ0IHJlc2V0IChzdG9wIHRoZSBDUFUgaW4gdGhlIEVNSSkgKi8KIAllcnIgPSBlbWkyNl9zZXRfcmVzZXQoZGV2LDEpOwogCWlmIChlcnIgPCAwKSB7CkBAIC0xMDMsMTMgKzExNywxNyBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWxvYWRlcl9mdy0+ZGF0YTsKIAkvKiAxLiBXZSBuZWVkIHRvIHB1dCB0aGUgbG9hZGVyIGZvciB0aGUgRlBHQSBpbnRvIHRoZSBFWi1VU0IgKi8KLQlmb3IgKGk9MDsgZ19Mb2FkZXJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBnX0xvYWRlcltpXS5hZGRyZXNzLCBnX0xvYWRlcltpXS5kYXRhLCBnX0xvYWRlcltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwl3aGlsZSAocmVjKSB7CisJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCUFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQlnb3RvIHdyYXBlcnI7CiAJCX0KKwkJcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpOwogCX0KIAogCS8qIERlLWFzc2VydCByZXNldCAobGV0IHRoZSBDUFUgcnVuKSAqLwpAQCAtMTIzLDE1ICsxNDEsMTYgQEAKIAkvKiAyLiBXZSB1cGxvYWQgdGhlIEZQR0EgZmlybXdhcmUgaW50byB0aGUgRU1JCiAJICogTm90ZTogY29sbGVjdCB1cCB0byAxMDIzICh5ZXMhKSBieXRlcyBhbmQgc2VuZCB0aGVtIHdpdGgKIAkgKiBhIHNpbmdsZSByZXF1ZXN0LiBUaGlzIGlzIF9tdWNoXyBmYXN0ZXIhICovCisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWJpdHN0cmVhbV9mdy0+ZGF0YTsKIAlkbyB7CiAJCWkgPSAwOwotCQlhZGRyID0gZ19iaXRzdHJlYW1bcG9zXS5hZGRyZXNzOworCQlhZGRyID0gYmUzMl90b19jcHUocmVjLT5hZGRyKTsKIAogCQkvKiBpbnRlbCBoZXggcmVjb3JkcyBhcmUgdGVybWluYXRlZCB3aXRoIHR5cGUgMCBlbGVtZW50ICovCi0JCXdoaWxlICgoZ19iaXRzdHJlYW1bcG9zXS50eXBlID09IDApICYmIChpICsgZ19iaXRzdHJlYW1bcG9zXS5sZW5ndGggPCBGV19MT0FEX1NJWkUpKSB7Ci0JCQltZW1jcHkoYnVmICsgaSwgZ19iaXRzdHJlYW1bcG9zXS5kYXRhLCBnX2JpdHN0cmVhbVtwb3NdLmxlbmd0aCk7Ci0JCQlpICs9IGdfYml0c3RyZWFtW3Bvc10ubGVuZ3RoOwotCQkJcG9zKys7CisJCXdoaWxlIChyZWMgJiYgKGkgKyBiZTE2X3RvX2NwdShyZWMtPmxlbikgPCBGV19MT0FEX1NJWkUpKSB7CisJCQltZW1jcHkoYnVmICsgaSwgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOworCQkJaSArPSBiZTE2X3RvX2NwdShyZWMtPmxlbik7CisJCQlyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CiAJCX0KIAkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBhZGRyLCBidWYsIGksIEFOQ0hPUl9MT0FEX0ZQR0EpOwogCQlpZiAoZXJyIDwgMCkgewpAQCAtMTQ4LDggKzE2NywxMSBAQAogCX0KIAogCS8qIDMuIFdlIG5lZWQgdG8gcHV0IHRoZSBsb2FkZXIgZm9yIHRoZSBmaXJtd2FyZSBpbnRvIHRoZSBFWi1VU0IgKGFnYWluLi4uKSAqLwotCWZvciAoaT0wOyBnX0xvYWRlcltpXS50eXBlID09IDA7IGkrKykgewotCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGdfTG9hZGVyW2ldLmFkZHJlc3MsIGdfTG9hZGVyW2ldLmRhdGEsIGdfTG9hZGVyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWxvYWRlcl9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWVyciA9IGVtaTI2X3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCUFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQlnb3RvIHdyYXBlcnI7CkBAIC0xNjUsOSArMTg3LDEzIEBACiAJfQogCiAJLyogNC4gV2UgcHV0IHRoZSBwYXJ0IG9mIHRoZSBmaXJtd2FyZSB0aGF0IGxpZXMgaW4gdGhlIGV4dGVybmFsIFJBTSBpbnRvIHRoZSBFWi1VU0IgKi8KLQlmb3IgKGk9MDsgZ19GaXJtd2FyZVtpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoIUlOVEVSTkFMX1JBTShnX0Zpcm13YXJlW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGdfRmlybXdhcmVbaV0uYWRkcmVzcywgZ19GaXJtd2FyZVtpXS5kYXRhLCBnX0Zpcm13YXJlW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfRVhURVJOQUwpOworCisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQlpZiAoIUlOVEVSTkFMX1JBTShiZTMyX3RvX2NwdShyZWMtPmFkZHIpKSkgeworCQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCQlBTkNIT1JfTE9BRF9FWFRFUk5BTCk7CiAJCQlpZiAoZXJyIDwgMCkgewogCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQkJZ290byB3cmFwZXJyOwpAQCAtMTgyLDkgKzIwOCwxMiBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCi0JZm9yIChpPTA7IGdfRmlybXdhcmVbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKElOVEVSTkFMX1JBTShnX0Zpcm13YXJlW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWkyNl93cml0ZW1lbW9yeShkZXYsIGdfRmlybXdhcmVbaV0uYWRkcmVzcywgZ19GaXJtd2FyZVtpXS5kYXRhLCBnX0Zpcm13YXJlW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWZpcm13YXJlX2Z3LT5kYXRhOworCSAgICAgcmVjOyByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJaWYgKElOVEVSTkFMX1JBTShiZTMyX3RvX2NwdShyZWMtPmFkZHIpKSkgeworCQkJZXJyID0gZW1pMjZfd3JpdGVtZW1vcnkoZGV2LCBiZTMyX3RvX2NwdShyZWMtPmFkZHIpLAorCQkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCQlBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CiAJCQlpZiAoZXJyIDwgMCkgewogCQkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQkJZ290byB3cmFwZXJyOwpAQCAtMjA1LDYgKzIzNCwxMCBAQAogCWVyciA9IDE7CiAKIHdyYXBlcnI6CisJcmVsZWFzZV9maXJtd2FyZShsb2FkZXJfZncpOworCXJlbGVhc2VfZmlybXdhcmUoYml0c3RyZWFtX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlX2Z3KTsKKwogCWtmcmVlKGJ1Zik7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTI1Nyw1ICsyOTAsOCBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCJFbWFnaWMgRU1JIDJ8NiBmaXJtd2FyZSBsb2FkZXIuIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKK01PRFVMRV9GSVJNV0FSRSgiZW1pMjYvbG9hZGVyLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImVtaTI2L2JpdHN0cmVhbS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlbWkyNi9maXJtd2FyZS5mdyIpOwogLyogdmk6YWk6c3ludGF4PWM6c3c9ODp0cz04OnR3PTgwCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvZW1pMjZfZncuaCBiL2RyaXZlcnMvdXNiL21pc2MvZW1pMjZfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTQ3ZmYxMC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL2VtaTI2X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1Nzc5ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhyZWUgZGlmZmVyZW50IGZpbGVzLCBwcm92aWRlZCBieSBFbWFnaWMuCi0gKi8KLS8qIGdlbmVyYXRlZCBGcmkgTWFyIDggMTU6MTE6MzUgRUVUIDIwMDIgKi8KLQotLyoKLSAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKLSAqCi0gKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKLSAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAotICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKLSAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KLSAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0gKiBpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0gKiBpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLSAqCi0gKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKLSAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKLSAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKLSAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCi0gKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfYml0c3RyZWFtW109ewoteyAgMTYsIDB4ODAxMCwgMCwgezB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhhYSwweDk5LDB4NTUsMHg2NiwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDcgfSB9LAoteyAgMTYsIDB4ODAyMCwgMCwgezB4MzAsMHgwMSwweDYwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwYiwweDMwLDB4MDEsMHgyMCwweDAxLDB4MDAsMHg4MCwweDNmLDB4MmQgfSB9LAoteyAgMTYsIDB4ODAzMCwgMCwgezB4MzAsMHgwMCwweGMwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDkgfSB9LAoteyAgMTYsIDB4ODA0MCwgMCwgezB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDEgfSB9LAoteyAgMTYsIDB4ODA1MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MDAsMHg1MCwweDAwLDB4M2UsMHgwNCwweDA4LDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODA4MCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4ODQgfSB9LAoteyAgMTYsIDB4ODBiMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODBlMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODExMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODE0MCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE3MCwgMCwgezB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODQgfSB9LAoteyAgMTYsIDB4ODFhMCwgMCwgezB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY3LDB4MTAsMHgwMSwweDE0LDB4MDAsMHgyNSwweDAwLDB4MDUgfSB9LAoteyAgMTYsIDB4ODFiMCwgMCwgezB4NDAsMHgwMSwweDUwLDB4MDAsMHg5NCwweDAwLDB4MTUsMHgwMCwweDA3LDB4NDAsMHgwMSwweGQwLDB4MDAsMHg5NCwweDAwLDB4MjUgfSB9LAoteyAgMTYsIDB4ODFjMCwgMCwgezB4ODAsMHgwMSwweDYwLDB4MDIsMHhkOCwweDAwLDB4ZjYsMHgwMCwweDJmLDB4ODAsMHgwMiwweGUwLDB4MDQsMHhkOCwweDM3LDB4NDQgfSB9LAoteyAgMTYsIDB4ODFkMCwgMCwgezB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMiwweDAwLDB4Y2MsMHg5MCwweDM5LDB4MjAgfSB9LAoteyAgMTYsIDB4ODFlMCwgMCwgezB4MGQsMHg5OCwweDAzLDB4ZDIsMHgwMCwweGU3LDB4ODAsMHgzNywweDA0LDB4MGUsMHhmMSwweDgzLDB4N2UsMHgwMCwweGRmLDB4OTAgfSB9LAoteyAgMTYsIDB4ODFmMCwgMCwgezB4MzEsMHhlNCwweDhmLDB4NzksMHgwMywweDdjLDB4MjAsMHhkZiwweDIyLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgyMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODIwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHg2MiwweDAwLDB4ODAsMHgyNCwweDIyLDB4MjAgfSB9LAoteyAgMTYsIDB4ODIxMCwgMCwgezB4MDgsMHg5OCwweDEyLDB4ZTIsMHgwMCwweDhiLDB4ODEsMHgyMCwweDk0LDB4MDgsMHg3NCwweDAyLDB4MmUsMHgwMCwweDhhLDB4MDEgfSB9LAoteyAgMTYsIDB4ODIyMCwgMCwgezB4MjIsMHhjOCwweDA4LDB4OTIsMHgwMiwweDNkLDB4ODAsMHg4YiwweDYwLDB4MjIsMHg4MCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODIzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDAwLDB4YTAsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI0MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzAsMHgwMCwweGExLDB4MDAsMHgyNCwweDA5LDB4NGEsMHgzMiwweDAyLDB4NDgsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI1MCwgMCwgezB4NjIsMHhjMCwweDA5LDB4YTAsMHg0NiwweGNjLDB4MjQsMHg5MywweDQ5LDB4MmEsMHg4MCwweDQ4LDB4MzAsMHgyMiwweDYyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODI2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhOCwweDEyLDB4YTgsMHgwMCwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI3MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTAsMHgwMCwweDg5LDB4ODAsMHgyMiwweDQ0LDB4MDgsMHhiMCwweDEyLDB4YTgsMHgwMCwweGE5LDB4NDAgfSB9LAoteyAgMTYsIDB4ODI4MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4OTAsMHg4MiwweGFjLDB4MDAsMHg5YiwweDA0LDB4MmEsMHhjNCwweDA4LDB4YjAsMHgwMiwweDcwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTQsMHg4NCwweDAwLDB4ZTksMHg4MCwweGIyLDB4NjQgfSB9LAoteyAgMTYsIDB4ODJhMCwgMCwgezB4NGQsMHhhMCwweDAzLDB4ZWEsMHgyMCwweGU5LDB4YzAsMHgzNiwweDQwLDB4MGUsMHhiMCwweDAzLDB4NDQsMHgwMCwweGZiLDB4OTAgfSB9LAoteyAgMTYsIDB4ODJiMCwgMCwgezB4YjIsMHg4OCwweDBkLDB4YmMsMHgwMywweGVjLDB4MDgsMHg1YiwweDAwLDB4MzgsMHg2MCwweDJjLDB4YjAsMHg2MywweDQwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODJjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNCwweDI2LDB4ZGQsMHg5MCwweDM3LDB4NDAgfSB9LAoteyAgMTYsIDB4ODJkMCwgMCwgezB4NGYsMHhlMCwweDEzLDB4ZjIsMHg4MCwweGZkLDB4MDAsMHgzZCwweGEwLDB4MGQsMHg3MCwweDAzLDB4NzUsMHgwMCwweDVlLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJlMCwgMCwgezB4M2YsMHhhNCwweDBkLDB4ZjksMHgwMywweDVjLDB4MTAsMHhlYiwweDAwLDB4MzcsMHgyMCwweDBmLDB4MzAsMHgwMywweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODJmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZTksMHg4MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ODMwMCwgMCwgezB4MGMsMHhhMSwweDgzLDB4ZTgsMHgwMCwweGU5LDB4MDAsMHgzMiwweDQyLDB4MGUsMHhiMCwweDAzLDB4YWMsMHg0OCwweGU5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODMxMCwgMCwgezB4M2EsMHg4MCwweDBlLDB4YTQsMHgwMywweGVjLDB4MDAsMHhlYiwweDAwLDB4YjIsMHgwMywweDBlLDB4YjAsMHgwYiwweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODMyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyZSwweDgwLDB4ODksMHhkMSwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ODMzMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4YzAsMHgwMCwweDgxLDB4ODAsMHgyMiwweDU4LDB4MDgsMHhmNSwweDAyLDB4MmYsMHg0MCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM0MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MzAsMHg0MywweDdjLDB4MDAsMHg4NywweDAwLDB4MjIsMHg0MCwweDA4LDB4ZjAsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0MiwweDAxLDB4OWEsMHg0NCwweDI4LDB4YTIgfSB9LAoteyAgMTYsIDB4ODM2MCwgMCwgezB4MDgsMHgxOCwweDAyLDB4YzAsMHg4MCwweGExLDB4ODAsMHhhMCwweDAwLDB4MDgsMHgzMCwweDAyLDB4OGUsMHgwMCwweGFiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM3MCwgMCwgezB4MmMsMHg0MCwweDBhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhhMywweDAwLDB4MjAsMHg0NCwweDBhLDB4MzAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODM4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDEsMHgzMiwweDAwLDB4OTYsMHg4MiwweDJiLDB4YTIgfSB9LAoteyAgMTYsIDB4ODM5MCwgMCwgezB4ODgsMHg1YSwweDAyLDB4ZjIsMHgwMCwweDA1LDB4ODAsMHgyOSwweGEwLDB4MDgsMHg3OCwweDQyLDB4YmUsMHgwMCwweDhlLDB4ODQgfSB9LAoteyAgMTYsIDB4ODNhMCwgMCwgezB4MmYsMHg2MSwweDBhLDB4ZDgsMHgwMiwweDRlLDB4MTAsMHhhNywweDgwLDB4MjAsMHgyOCwweDA4LDB4NzgsMHgwMiwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODNiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4ZjIsMHgyNCwweDM4LDB4ODAgfSB9LAoteyAgMTYsIDB4ODNjMCwgMCwgezB4MmMsMHgxYSwweDAzLDB4YzQsMHgwMCwweGUwLDB4NTgsMHhhMCwweDgwLDB4MmUsMHgzMCwweDAzLDB4ODgsMHg0MSwweGUzLDB4MDIgfSB9LAoteyAgMTYsIDB4ODNkMCwgMCwgezB4M2MsMHg0MCwweDA2LDB4MjAsMHgwMywweDhjLDB4MDAsMHhlMywweDAwLDB4MTAsMHgwMCwweDBlLDB4MzEsMHg0MywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4ODNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHg5OCwweDAwLDB4ZWUsMHgwMSwweDM3LDB4ODQgfSB9LAoteyAgMTYsIDB4ODNmMCwgMCwgezB4OWYsMHhkOSwweDAzLDB4ZjAsMHg0OCwweGZkLDB4MTAsMHgzNywweGMwLDB4MDcsMHhiMCwweDAzLDB4NWMsMHgwMCwweGY2LDB4MTAgfSB9LAoteyAgMTYsIDB4ODQwMCwgMCwgezB4MzMsMHhjMCwweDBkLDB4ZTEsMHgwMywweGVkLDB4MjAsMHhkZiwweDEwLDB4M2YsMHg0OCwweDBmLDB4ZjAsMHgyMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ODQxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAyLDB4Y2IsMHg4MCwweDMwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODQyMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTIsMHgwMiwweGM5LDB4MDAsMHgzYSwweDQwLDB4MGQsMHhiNiwweDAzLDB4NjQsMHgwMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQzMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4MDAsMHhmYiwweDAxLDB4M2UsMHhlMCwweDBjLDB4YjAsMHgwMiwweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5NCwweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ODQ1MCwgMCwgezB4MjgsMHg2MCwweDAyLDB4ZDAsMHgwMCwweDg1LDB4MDAsMHgyZCwweDgwLDB4NDgsMHhmMCwweDgyLDB4MWMsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ2MCwgMCwgezB4MmQsMHgwMCwweDBiLDB4NTAsMHgwMiwweGRjLDB4MDAsMHhiNywweGEwLDB4MmYsMHg4MCwweDI4LDB4N2EsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4ODQ3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMxLDB4MDAsMHhiZSwweDAwLDB4ODcsMHg4MCwweDIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODQ4MCwgMCwgezB4MjgsMHg2OCwweDAyLDB4ZDcsMHgwMCwweDg0LDB4ODAsMHgyZCwweGUwLDB4NDksMHg3OSwweDA2LDB4NTMsMHgwOSwweGI1LDB4ODAgfSB9LAoteyAgMTYsIDB4ODQ5MCwgMCwgezB4MmQsMHhlMiwweDBiLDB4NzgsMHgwMiwweGRlLDB4ODAsMHhiNywweDkwLDB4MmQsMHhiMCwweDA4LDB4NzksMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDEwLDB4ODMsMHgwMSwweDI4LDB4YzggfSB9LAoteyAgMTYsIDB4ODRiMCwgMCwgezB4MDgsMHgyMCwweDAyLDB4YzIsMHgwNiwweDgxLDB4MDAsMHgyYywweGM4LDB4ODgsMHgzMCwweDYyLDB4MGUsMHgyMSwweGIzLDB4YTAgfSB9LAoteyAgMTYsIDB4ODRjMCwgMCwgezB4MmMsMHhjMSwweDBiLDB4YjYsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhlMCwweDA4LDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4ODRkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHg0MCwweGIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ODRlMCwgMCwgezB4MGMsMHgyYywweDAyLDB4ZjgsMHgwMCwweGM2LDB4MjAsMHgzZiwweDkwLDB4MGQsMHhhMCwweDAzLDB4N2IsMHgwMSwweGVlLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODRmMCwgMCwgezB4M2YsMHhiNCwweDBmLDB4ZWMsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4M2YsMHhhMCwweDBjLDB4YTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODUwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMywweDAwLDB4ZjgsMHgwOSwweDI2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODUxMCwgMCwgezB4MGYsMHhjMSwweDgzLDB4ZTAsMHgxMCwweGY4LDB4NDAsMHgzYywweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMSwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODUyMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4M2UsMHgxMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODUzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODU0MCwgMCwgezB4NGYsMHg5MCwweDYzLDB4MjYsMHg4NCwweDM5LDB4MDIsMHhiMiwweDQwLDB4MGMsMHg5MSwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODU1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmMSwweDAwLDB4M2EsMHg0NCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ODU2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg0NSwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODU3MCwgMCwgezB4MDgsMHg5MiwweDBhLDB4MjQsMHgwMCwweGI5LDB4MzEsMHgyMiwweDYwLDB4ODgsMHg5NCwweDhhLDB4MjQsMHgyMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODU4MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg2OCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweGEwLDB4OGQsMHg4NCwweDJmLDB4NDAgfSB9LAoteyAgMTYsIDB4ODVhMCwgMCwgezB4MGIsMHhkMSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDRhLDB4MDgsMHgxMCwweDAyLDB4MmMsMHg0MCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODViMCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODVjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgxNCwweDAwLDB4ODUsMHg4MCwweDJkLDB4NDAgfSB9LAoteyAgMTYsIDB4ODVkMCwgMCwgezB4MDgsMHg1MCwweDAyLDB4MDQsMHgwYywweGI5LDB4MDAsMHhhMCwweDUwLDB4MDgsMHgxNCwweDIyLDB4MDQsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVlMCwgMCwgezB4MmMsMHg0MCwweDBiLDB4MTAsMHgwMiwweDA0LDB4MDAsMHhiMSwweDI4LDB4MjAsMHg0YSwweDBiLDB4MTMsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzAsMHg1MCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ODYwMCwgMCwgezB4MGYsMHhjMCwweDQzLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzMCwweDAwLDB4MmMsMHg4MCwweDIzLDB4MjAsMHgwMCwweGY4LDB4NTEgfSB9LAoteyAgMTYsIDB4ODYxMCwgMCwgezB4M2UsMHgxNCwweDhmLDB4ODUsMHgwYiwweDIxLDB4NDAsMHhmOCwweDcwLDB4M2EsMHgwOCwweDBmLDB4ODQsMHg4MywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4ODYyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhjNCwweDAwLDB4ZjksMHgwNCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODYzMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZDQsMHgwMCwweGZkLDB4MDAsMHgzZiwweDUwLDB4MGYsMHg5NCwweDAzLDB4ZjQsMHgwNCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY0MCwgMCwgezB4M2YsMHg0MSwweDhmLDB4ZDAsMHg0MywweGU1LDB4MGMsMHhmOSwweDAyLDB4M2YsMHg0YSwweDBmLDB4OTIsMHgwMywweGU2LDB4MDIgfSB9LAoteyAgMTYsIDB4ODY1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhkNCwweDAxLDB4ZmQsMHgwMCwweDNkLDB4NDAgfSB9LAoteyAgMTYsIDB4ODY2MCwgMCwgezB4MGMsMHhkMCwweDEzLDB4ZjQsMHgwMCwweGQ1LDB4MDAsMHgzMywweDZhLDB4MWMsMHhkYywweDgzLDB4MzQsMHgwMCwweGQxLDB4MDQgfSB9LAoteyAgMTYsIDB4ODY3MCwgMCwgezB4M2UsMHg1MCwweDBjLDB4OTEsMHgwMywweGU2LDB4YzAsMHhkZCwweGIwLDB4MzMsMHg2YSwweDJjLDB4OWMsMHg4MywweGU2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODY4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDA5LDB4ZjgsMHg4MCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY5MCwgMCwgezB4ODgsMHg4MCwweDAwLDB4ZTgsMHgwMCwweGJhLDB4MDAsMHgyMiwweGIwLDB4MDgsMHg4ZSwweDAyLDB4MjgsMHgwMCwweDg4LDB4YTggfSB9LAoteyAgMTYsIDB4ODZhMCwgMCwgezB4MjYsMHgyOCwweDA4LDB4OGEsMHgyMiwweGUyLDB4MDAsMHg4OCwweGU0LDB4MjIsMHgzMCwweDA4LDB4OGMsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4ODZiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgyOCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODZjMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4YzQsMHgwMCwweDk5LDB4MDAsMHgyMCwweDQyLDB4NDgsMHgxMCwweDAyLDB4NjQsMHgwMSwweDkxLDB4ODAgfSB9LAoteyAgMTYsIDB4ODZkMCwgMCwgezB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4YzAsMHg4MSwweDQwLDB4MjAsMHg0YSwweDA4LDB4MTIsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODZlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDk0LDB4YTksMHgwMiwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODZmMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4NjQsMHgwMCwweGI5LDB4MDAsMHg4MiwweDYwLDB4MDgsMHg5MCwweDAyLDB4NjYsMHgwMCwweDg5LDB4MTAgfSB9LAoteyAgMTYsIDB4ODcwMCwgMCwgezB4MjQsMHg2MiwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg4OSwweDAyLDB4MjIsMHg0MCwweDE4LDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4ODcxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4YjksMHgwNCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODcyMCwgMCwgezB4MGMsMHg5MCwweDEzLDB4ZTQsMHgwMCwweGQxLDB4YzAsMHgxMiwweDUwLDB4MjgsMHg5MCwweDAzLDB4NDQsMHgwMCwweGQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODczMCwgMCwgezB4M2UsMHg0MCwweDI4LDB4OTIsMHgwMywweGU0LDB4MDIsMHhkOSwweDAwLDB4MzIsMHg0MiwweDhjLDB4OTAsMHgxMiwweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4ODc0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNiwweDIwLDB4ZjksMHgwMCwweDNlLDB4NDEgfSB9LAoteyAgMTYsIDB4ODc1MCwgMCwgezB4MmQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwLDB4NGYsMHg5MCwweDAxLDB4YTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODc2MCwgMCwgezB4MzYsMHg0MCwweDhmLDB4OTIsMHgwNywweGU0LDB4MDAsMHhmMSwweDAwLDB4YmUsMHg0MCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MjAgfSB9LAoteyAgMTYsIDB4ODc4MCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTAsMHg0MCwweGY4LDB4MDAsMHgzNiwweDEyLDB4MmMsMHgwMCwweDAzLDB4ZTAsMHhjMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODc5MCwgMCwgezB4MzIsMHgxMCwweDBkLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmOCwweDAyLDB4M2UsMHgwOCwweDBmLDB4ODAsMHgwMCwweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODdhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzYSwweDkwLDB4OGUsMHgwMCwweDJkLDB4YTAgfSB9LAoteyAgMTYsIDB4ODdiMCwgMCwgezB4ODAsMHhlOCwweDAyLDB4ZmEsMHgwMCwweGJlLDB4NDAsMHgyMywweDgwLDB4MDgsMHhlOCwweDAyLDB4ZmEsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdjMCwgMCwgezB4MzYsMHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDAsMHhiYSwweDAwLDB4MmYsMHg4MCwweDBiLDB4YTAsMHgwMywweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0NiwweDAyLDB4ODMsMHgwMCwweDJjLDB4ODAgfSB9LAoteyAgMTYsIDB4ODdlMCwgMCwgezB4MDgsMHgyMiwweDQyLDB4YzYsMHg4MCwweGIxLDB4NjAsMHgyZSwweGY0LDB4MDgsMHgzOCwweDIyLDB4Y2UsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdmMCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHhiMSwweDAwLDB4MmUsMHg0MCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxZSwweDAyLDB4ODUsMHgwMSwweDJkLDB4YzIgfSB9LAoteyAgMTYsIDB4ODgxMCwgMCwgezB4YTgsMHg0NCwweDAyLDB4ZDQsMHgwMCwweGJkLDB4MDEsMHgyOSwweDQwLDB4MTgsMHg2OCwweGQyLDB4ZGMsMHgwMCwweDhmLDB4ODAgfSB9LAoteyAgMTYsIDB4ODgyMCwgMCwgezB4MjUsMHhjYywweDI4LDB4NzMsMHg0MiwweGRjLDB4ODAsMHhiNSwweDMwLDB4MmQsMHhjMCwweDFiLDB4NzIsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODgzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDA0LDB4YzYsMHg4MiwweDNkLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODg0MCwgMCwgezB4MGMsMHg0OCwweDEyLDB4ZDYsMHgxMCwweGY1LDB4ODAsMHgzYywweGEwLDB4MGMsMHg3MCwweDAzLDB4ZGUsMHgwMCwweGU3LDB4OTAgfSB9LAoteyAgMTYsIDB4ODg1MCwgMCwgezB4MjMsMHhlYSwweDA0LDB4N2EsMHgwMywweDllLDB4MDAsMHhmNSwweDgwLDB4M2QsMHhlMCwweDBmLDB4N2EsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ODg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MGQsMHhhYywweDAwLDB4OWMsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ODg3MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTQsMHgxMCwweGY5LDB4MDAsMHgzNiwweDAxLDB4MGYsMHhhMCwweDAzLDB4YzAsMHgwMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg4MCwgMCwgezB4M2UsMHhkOCwweDRlLDB4YjAsMHg4MywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjQsMHg0MywweDgyLDB4MDYgfSB9LAoteyAgMTYsIDB4ODg5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkZSwweDAwLDB4Y2YsMHg4NCwweDMxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODhhMCwgMCwgezB4MGUsMHhjOCwweDQzLDB4ZDYsMHgwMCwweGNkLDB4ODAsMHgzMywweGUwLDB4Y2QsMHhkOSwweDAzLDB4M2EsMHgwMCwweGZmLDB4ODggfSB9LAoteyAgMTYsIDB4ODhiMCwgMCwgezB4MzMsMHhlMCwweDBmLDB4ZjksMHgxMywweGZlLDB4MjQsMHhmZCwweDgwLDB4M2YsMHgyMCwweDBjLDB4ZjYsMHg4MywweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4ODUsMHgwMCwweDIxLDB4YzQgfSB9LAoteyAgMTYsIDB4ODhkMCwgMCwgezB4MjgsMHg0MCwweDgyLDB4ZDAsMHgwMCwweGQ1LDB4MDAsMHgyMywweDgwLDB4NDgsMHhjOSwweDAyLDB4MWMsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODhlMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzEsMHgwMiwweGRlLDB4ODAsMHhiNSwweDEwLDB4MmQsMHhjMCwweDI4LDB4ZjAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODhmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg5YywweDAwLDB4OTYsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ODkwMCwgMCwgezB4MGEsMHg0MSwweDAyLDB4ZjUsMHg0MCwweDhkLDB4MDAsMHgyMSwweDQwLDB4MDksMHg1MiwweDAyLDB4OTgsMHgyMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODkxMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzAsMHgwNiwweGRjLDB4ODAsMHhiNSwweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDA0LDB4MDAgfSB9LAoteyAgMTYsIDB4ODkyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MTQsMHhjYywweDEwLDB4OTgsMHgwMCwweDAwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODkzMCwgMCwgezB4ODgsMHgwNCwweDgyLDB4YzAsMHgwMCwweDkxLDB4MDQsMHgyMCwweDAzLDB4MDksMHgwMCwweDAyLDB4OGEsMHgwMCwweGIzLDB4MGEgfSB9LAoteyAgMTYsIDB4ODk0MCwgMCwgezB4MjAsMHhjNCwweDhiLDB4MzQsMHgwMiwweGNjLDB4MDAsMHhiOSwweDAwLDB4MmMsMHhjMCwweDAwLDB4MzAsMHgwMiwweDE4LDB4MDQgfSB9LAoteyAgMTYsIDB4ODk1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhhYywweDAwLDB4ZGIsMHgwMCwweGIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODk2MCwgMCwgezB4MGUsMHg5YywweDAyLDB4YzUsMHgwMCwweGMxLDB4MTAsMHhiMiwweGMwLDB4MGQsMHhiMCwweDBiLDB4YTcsMHgwOCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk3MCwgMCwgezB4YjMsMHhjMCwweDBmLDB4ZmEsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2UsMHhkNCwweDBjLDB4ZjAsMHgwYiwweDJlLDB4MDQgfSB9LAoteyAgMTYsIDB4ODk4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDA0LDB4ZWQsMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODk5MCwgMCwgezB4MGYsMHg4NCwweDAzLDB4ZTUsMHg0MCwweGY5LDB4NDAsMHgzZSwweDYwLDB4Y2UsMHhiNCwweDQzLDB4NjQsMHgwMCwweGZiLDB4ODAgfSB9LAoteyAgMTYsIDB4ODlhMCwgMCwgezB4M2UsMHhjMiwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhmOSwweDAyLDB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGUxLDB4MDAgfSB9LAoteyAgMTYsIDB4ODliMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MTAsMHhmZiwweDAwLDB4Y2UsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4ODljMCwgMCwgezB4MGUsMHhjMCwweDA3LDB4NzQsMHgwNCwweGVjLDB4MDAsMHgxMSwweDgwLDB4MGMsMHhjYSwweDAzLDB4ZmUsMHg2MCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ODlkMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHg4MywweDNjLDB4MDAsMHhkZCwweDAwLDB4YjMsMHg1MCwweDJjLDB4ZjAsMHgwMywweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODllMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg0YywweDA0LDB4OGIsMHgwYiwweDIyLDB4NzAgfSB9LAoteyAgMTYsIDB4ODlmMCwgMCwgezB4MDgsMHgwOCwweDAzLDB4NjcsMHgyMCwweDhhLDB4ODgsMHhhMiwweDAwLDB4MjgsMHg4NCwweDAyLDB4ZTcsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OGEwMCwgMCwgezB4M2UsMHhjMCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiOSwweDAwLDB4MjIsMHg2MSwweDA4LDB4YjAsMHgwMywweDYwLDB4NDAgfSB9LAoteyAgMTYsIDB4OGExMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgyMCwweDIyLDB4ZTIgfSB9LAoteyAgMTYsIDB4OGEyMCwgMCwgezB4MGEsMHg4YywweDAyLDB4MjYsMHgwMCwweGE5LDB4ODAsMHgyYSwweGMwLDB4MDgsMHhiNCwweDQyLDB4ZWQsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OGEzMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweDJjLDB4MDAsMHhiOSwweDAwLDB4MjAsMHg4MCwweDA4LDB4MzAsMHgwMiwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwZSwweDAxLDB4ODEsMHgwMCwweGEwLDB4YzAgfSB9LAoteyAgMTYsIDB4OGE1MCwgMCwgezB4MDgsMHg4MSwweDAyLDB4NDQsMHgwMCwweDgxLDB4MDAsMHgyOCwweDgxLDB4MDgsMHgzMiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE2MCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4ODAsMHhiMSwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgxMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4OGE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MGQsMHg2YywweDAwLDB4YzIsMHgwMSwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4OGE4MCwgMCwgezB4MmUsMHg4MCwweDE2LDB4MmMsMHgwOCwweGU5LDB4MDAsMHgzYSwweDQwLDB4MGMsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGY3LDB4MDAgfSB9LAoteyAgMTYsIDB4OGE5MCwgMCwgezB4MmYsMHhjMCwweDBmLDB4ZjAsMHgwYiwweDJjLDB4MDAsMHhkOSwweDAwLDB4MzAsMHg0MCwweDBjLDB4ZjAsMHgwMywweDYwLDB4MDMgfSB9LAoteyAgMTYsIDB4OGFhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MGQsMHhmOCwweDA4LDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4OGFiMCwgMCwgezB4MGYsMHhjMiwweDE3LDB4ZmMsMHgwMCwweGY3LDB4MDAsMHgzNywweDAwLDB4MGYsMHg4NCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGVkLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4OGFkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4Y2YsMHgzMCwweDE3LDB4NDggfSB9LAoteyAgMTYsIDB4OGFlMCwgMCwgezB4MGMsMHg1OSwweDAzLDB4YjksMHgwMCwweGRmLDB4MjgsMHgzNSwweDI0LDB4MGQsMHg4MiwweGEzLDB4N2MsMHg4MCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFmMCwgMCwgezB4M2YsMHhjOCwweDBmLDB4ZjIsMHgwMywweGU0LDB4YTAsMHhlZiwweDgwLDB4M2YsMHhlMSwweDhjLDB4ZDgsMHg0MywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGIwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlZCwweDQ4LDB4ODksMHgzNCwweGEzLDB4NzAgfSB9LAoteyAgMTYsIDB4OGIxMCwgMCwgezB4MjgsMHhiMCwweDIzLDB4NjAsMHgwMCwweDhiLDB4YzAsMHgyMiwweDQwLDB4MDgsMHhiNCwweDgyLDB4MmYsMHg0MCwweGJmLDB4ZDEgfSB9LAoteyAgMTYsIDB4OGIyMCwgMCwgezB4NmYsMHhmNCwweDhlLDB4YmQsMHgwMiwweGU3LDB4MDAsMHhiYiwweDgwLDB4M2EsMHhlMCwweDA4LDB4OTgsMHgwYSwweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4OGIzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweGIwLDB4OTEsMHgwMCwweGE4LDB4NTAgfSB9LAoteyAgMTYsIDB4OGI0MCwgMCwgezB4MDgsMHhiMiwweDAyLDB4YzgsMHg4NCwweDkzLDB4MDAsMHgyNCwweDQ5LDB4MGIsMHgwMiwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDQgfSB9LAoteyAgMTYsIDB4OGI1MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHg0MiwweDg0LDB4MDAsMHhiMywweDAwLDB4MmUsMHgwMCwweDBhLDB4YjAsMHgxMiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4OGI2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhhYywweDAyLDB4OTksMHgxOCwweDJhLDB4NDQgfSB9LAoteyAgMTYsIDB4OGI3MCwgMCwgezB4MDgsMHhiOCwweDgyLDB4YTIsMHgwMSwweGJiLDB4MDAsMHgyOCwweDYwLDB4MGEsMHhhMCwweDEyLDB4NmMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI4MCwgMCwgezB4NmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGU0LDB4MDAsMHhiYiwweDAwLDB4MmEsMHgwMCwweDJhLDB4YjAsMHgwMiwweDM4LDB4MDQgfSB9LAoteyAgMTYsIDB4OGI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNCwweDA4LDB4ZGEsMHhjMCwweDNhLDB4NjAgfSB9LAoteyAgMTYsIDB4OGJhMCwgMCwgezB4MGMsMHgxOCwweDBhLDB4ZWIsMHgwNCwweGRiLDB4MDAsMHgzNiwweGUwLDB4MDcsMHg4NSwweDgzLDB4NmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJiMCwgMCwgezB4MmUsMHhjMCwweDBmLDB4YjAsMHg0MywweGU0LDB4MDAsMHhlYiwweDAwLDB4M2UsMHg4OCwweDBlLDB4MTgsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4OGJjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4NDEsMHg5YywweDEwLDB4ZTksMHgwMCwweDM3LDB4NjAgfSB9LAoteyAgMTYsIDB4OGJkMCwgMCwgezB4ODcsMHhmMCwweDE3LDB4NzAsMHgwMCwweGNmLDB4MDEsMHgzNywweGMwLDB4NGMsMHg5OCwweDAzLDB4YmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJlMCwgMCwgezB4M2YsMHhjMiwweDBmLDB4ZjAsMHgwMywweGU0LDB4MDAsMHhmZiwweDQwLDB4M2YsMHhlNCwweDBkLDB4ZDksMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNCwweDAwLDB4ZjQsMHgwMCwweDMwLDB4NDAgfSB9LAoteyAgMTYsIDB4OGMwMCwgMCwgezB4MGYsMHhiNCwweDAzLDB4OTksMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGQsMHgwNCwweDIzLDB4MmMsMHgwOCwweGZiLDB4ODggfSB9LAoteyAgMTYsIDB4OGMxMCwgMCwgezB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGU2LDB4MDAsMHhkYiwweDEwLDB4M2UsMHgwMiwweDBmLDB4YjAsMHg4MywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OGMyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4YjksMHg1MCwweGEyLDB4NDggfSB9LAoteyAgMTYsIDB4OGMzMCwgMCwgezB4OGIsMHhiMCwweDAzLDB4MjAsMHgwMCwweGQ3LDB4ODAsMHgyZSwweGQ4LDB4MDAsMHg4MCwweDAyLDB4M2MsMHgwMCwweGJmLDB4ODAgfSB9LAoteyAgMTYsIDB4OGM0MCwgMCwgezB4MjMsMHhlOCwweDhiLDB4ZjAsMHgwMiwweGY0LDB4NDAsMHg4YiwweDQwLDB4MGMsMHg0MiwweDAzLDB4YjYsMHgwMiwweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjIsMHg0NCwweDAwLDB4YzggfSB9LAoteyAgMTYsIDB4OGM2MCwgMCwgezB4MGIsMHgzMCwweDEyLDB4OGMsMHgwMCwweGEzLDB4ODAsMHgyNCwweGM4LDB4MGIsMHgwMCwweDBhLDB4Y2MsMHgwMCwweGIzLDB4NDQgfSB9LAoteyAgMTYsIDB4OGM3MCwgMCwgezB4MDQsMHhjMCwweDFiLDB4MzYsMHgwMiwweGM1LDB4MDEsMHg4MywweDBjLDB4MmMsMHhhMCwweDBiLDB4MzAsMHgwMiwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGM4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDA4LDB4YjcsMHg5MCwweDIxLDB4NjQgfSB9LAoteyAgMTYsIDB4OGM5MCwgMCwgezB4MGIsMHhmOCwweDAyLDB4NGEsMHgwNCwweDk3LDB4ODEsMHgyZiwweGU0LDB4MGEsMHg3OCwweDAyLDB4OWUsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4OGNhMCwgMCwgezB4MjEsMHhlMCwweDhiLDB4NzgsMHg4MiwweGQ2LDB4ODYsMHg4NywweDg0LDB4MmQsMHhhMCwweDBiLDB4NzgsMHgwMiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwNCwweDAwLDB4ZjIsMHgwMCwweDMwLDB4YzAgfSB9LAoteyAgMTYsIDB4OGNjMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4OGMsMHgwMCwweGUzLDB4MGEsMHgzYywweGMwLDB4MGYsMHgxOCwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDIgfSB9LAoteyAgMTYsIDB4OGNkMCwgMCwgezB4MzAsMHhjMCwweDFmLDB4MzAsMHgwMSwweGM2LDB4ODAsMHhjMywweDAwLDB4M2MsMHhjMCwweDBmLDB4MTIsMHgwMywweGRhLDB4MDIgfSB9LAoteyAgMTYsIDB4OGNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MGQsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDEgfSB9LAoteyAgMTYsIDB4OGNmMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4YjgsMHgwOCwweGZmLDB4MDgsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4M2MsMHgyMCwweGZmLDB4MDggfSB9LAoteyAgMTYsIDB4OGQwMCwgMCwgezB4M2IsMHhkMiwweDBmLDB4ZjAsMHgwMywweGY0LDB4NDAsMHhlZiwweDAwLDB4M2YsMHhjNCwweDBmLDB4ZDAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4OGQxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZmUsMHgwMCwweDMyLDB4YzIgfSB9LAoteyAgMTYsIDB4OGQyMCwgMCwgezB4MGMsMHgzMCwweDBiLDB4MjYsMHgwMCwweGZiLDB4ODAsMHgzNiwweGMwLDB4MGQsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4ZTAgfSB9LAoteyAgMTYsIDB4OGQzMCwgMCwgezB4MzIsMHhkMCwweDBmLDB4YjgsMHg0MywweDY0LDB4NDQsMHhkYiwweDA0LDB4M2UsMHg4MCwweDBmLDB4YjAsMHgwMywweGUyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgwMCwweGExLDB4YzAgfSB9LAoteyAgMTYsIDB4OGQ1MCwgMCwgezB4ODgsMHg3MCwweDAzLDB4MTAsMHgwMCwweGI3LDB4MjAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGMsMHg4MCwweGIzLDB4MzAgfSB9LAoteyAgMTYsIDB4OGQ2MCwgMCwgezB4MzEsMHhjOCwweDBiLDB4NzQsMHgwMiwweDE0LDB4MDAsMHg4NywweDQwLDB4MmQsMHhjMCwweDRiLDB4NzAsMHgwMiwweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5NiwweDIwLDB4YjYsMHg4MCwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4OGQ4MCwgMCwgezB4MjgsMHhmOCwweDAyLDB4OTQsMHgxMCwweGI3LDB4ODEsMHgyNywweGUyLDB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4YTAgfSB9LAoteyAgMTYsIDB4OGQ5MCwgMCwgezB4YTksMHhlOCwweDBiLDB4MzgsMHgwMiwweDc2LDB4MDAsMHg4NywweDgwLDB4MmQsMHhhMCwweDBiLDB4NTgsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjZSwweDEwLDB4YjMsMHgwMCwweDIwLDB4YzQgfSB9LAoteyAgMTYsIDB4OGRiMCwgMCwgezB4MDgsMHgyMCwweDAyLDB4ODAsMHgxMCwweGIzLDB4MDAsMHgyMiwweGM4LDB4MDgsMHhiMCwweDAyLDB4Y2MsMHgxMSwweGIzLDB4MDIgfSB9LAoteyAgMTYsIDB4OGRjMCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDA0LDB4MDAsMHg5MywweDgwLDB4MmMsMHhkMiwweDBiLDB4MTAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OGRkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg0MCwweDMyLDB4YTAgfSB9LAoteyAgMTYsIDB4OGRlMCwgMCwgezB4MGMsMHhlNCwweDAzLDB4OTgsMHg4MCwweGZhLDB4MDAsMHgzNywweGEwLDB4MGQsMHhlMCwweDgzLDB4ZTgsMHgwMCwweGZlLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRmMCwgMCwgezB4M2EsMHg4MCwweDBiLDB4YTAsMHgwMywweDY4LDB4MDAsMHhkOCwweGEwLDB4M2YsMHg5MCwweDBmLDB4YTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4OGUwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDA4LDB4ZjgsMHgwOCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUxMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDQgfSB9LAoteyAgMTYsIDB4OGUyMCwgMCwgezB4MzAsMHgxMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4OGU0MCwgMCwgezB4MGUsMHg5MCwweDgzLDB4YTQsMHgwMCwweGM5LDB4ODAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGU1MCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhjOCwweDAwLDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4OGU2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHg0MCwweGEwLDB4NjIgfSB9LAoteyAgMTYsIDB4OGU3MCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MjQsMHgxMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGU4MCwgMCwgezB4MmUsMHg1MiwweDA4LDB4OTQsMHgwMiwweGM0LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg0MCwweDBiLDB4MTAsMHgwMywweDYwLDB4MTAgfSB9LAoteyAgMTYsIDB4OGU5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgxOCwweDIyLDB4NDQgfSB9LAoteyAgMTYsIDB4OGVhMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4YWMsMHgwMCwweDg5LDB4MTAsMHgyZSwweGMwLDB4MGEsMHg5MCwweDAyLDB4YTQsMHgwMCwweGI5LDB4ODAgfSB9LAoteyAgMTYsIDB4OGViMCwgMCwgezB4MmUsMHg2MCwweDA4LDB4OTgsMHgwMiwweGU2LDB4MDIsMHg4OSwweDA4LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGVjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NDggfSB9LAoteyAgMTYsIDB4OGVkMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOCwweDgxLDB4MjMsMHgyYywweDUwLDB4MDgsMHgxMCwweDAyLDB4MDQsMHg4MCwweGIxLDB4MjAgfSB9LAoteyAgMTYsIDB4OGVlMCwgMCwgezB4MmMsMHg0OCwweDI4LDB4MTIsMHgwMiwweGU0LDB4ODAsMHg4MSwweDIwLDB4MmMsMHg0MCwweDBiLDB4OTgsMHgwMiwweDQyLDB4MDUgfSB9LAoteyAgMTYsIDB4OGVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYwMCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTEsMHhlMCwweGNhLDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4NSwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGYxMCwgMCwgezB4MmUsMHgwMCwweDljLDB4YTAsMHgwMywweGUwLDB4MDAsMHhjOCwweDI4LDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDJlLDB4MDEgfSB9LAoteyAgMTYsIDB4OGYyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDQwLDB4ZjUsMHgxMCwweDNmLDB4NDQgfSB9LAoteyAgMTYsIDB4OGYzMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGYxLDB4MTAsMHgzZCwweDQwLDB4OGYsMHhkNCwweDAzLDB4ZTQsMHg1MCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4OGY0MCwgMCwgezB4M2UsMHg0NSwweDBmLDB4OTEsMHgwMywweGQ0LDB4NDAsMHhmYywweDAwLDB4M2YsMHhjMCwweDhmLDB4ZDAsMHgyMywweGU2LDB4MDQgfSB9LAoteyAgMTYsIDB4OGY1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDIwLDB4Y2QsMHhhOCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4OGY2MCwgMCwgezB4OGQsMHhkMCwweDAzLDB4MjYsMHg4MCwweGNkLDB4MDAsMHgzZCwweDUwLDB4MGMsMHg5YSwweDAzLDB4NjQsMHgwMCwweGY5LDB4YTAgfSB9LAoteyAgMTYsIDB4OGY3MCwgMCwgezB4N2EsMHg2YSwweDBmLDB4OWEsMHg2MywweGU2LDB4ODAsMHhjOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGY4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDAwLDB4ODgsMHhlMCwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGY5MCwgMCwgezB4MDgsMHg4MCwweDBhLDB4MjEsMHg0MiwweGM4LDB4MDAsMHgyZSwweDI5LDB4MGMsMHhhNCwweDQyLDB4MjAsMHgwMCwweGI4LDB4NDAgfSB9LAoteyAgMTYsIDB4OGZhMCwgMCwgezB4MmUsMHgwMCwweDBiLDB4ODEsMHgwMiwweGUxLDB4MDAsMHg4OCwweDAyLDB4M2EsMHgwMSwweDBiLDB4YzAsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4OGZiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAyLDB4ODEsMHgwOCwweDI0LDB4NDAgfSB9LAoteyAgMTYsIDB4OGZjMCwgMCwgezB4MDksMHgxMCwweDAyLDB4MDQsMHgwMCwweDkxLDB4MDAsMHgyYywweDQwLDB4NGIsMHgxNCwweDAyLDB4NDQsMHgwMCwweGI1LDB4MTAgfSB9LAoteyAgMTYsIDB4OGZkMCwgMCwgezB4MjksMHg0MCwweDBiLDB4NTAsMHgwMiwweGY1LDB4MDAsMHhiNSwweDAwLDB4MmQsMHg0MCwweDBiLDB4ZDAsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4OGZlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNiwweDAxLDB4ODksMHgwMCwweDI2LDB4NDAgfSB9LAoteyAgMTYsIDB4OGZmMCwgMCwgezB4MDgsMHg5NCwweDAyLDB4MjQsMHgwMSwweDg5LDB4MDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDAyLDB4NmMsMHgwMCwweGJmLDB4MDIgfSB9LAoteyAgMTYsIDB4OTAwMCwgMCwgezB4MmYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGY0LDB4MDIsMHhiZCwweDgwLDB4MmIsMHg0MCwweDhiLDB4ZDgsMHgzYSwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4OTAxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwNSwweDM2LDB4NDEgfSB9LAoteyAgMTYsIDB4OTAyMCwgMCwgezB4MGQsMHgxYywweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQyLDB4MmYsMHg5NCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTAzMCwgMCwgezB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg3MCwweDBmLDB4MTAsMHgwMywweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTA0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg4NCwweDA4LDB4ZjksMHgyNCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4OTA1MCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQxLDB4MGQsMHgxMCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTA2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg2NCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4YzgsMHg4MCwweDMyLDB4MDIgfSB9LAoteyAgMTYsIDB4OTA4MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4MDAsMHgwMCwweGM4LDB4MDgsMHgzYSwweDEwLDB4Y2UsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA5MCwgMCwgezB4M2YsMHgwMCwweDhmLDB4YzAsMHgwMywweGYwLDB4ODAsMHhmYywweDAwLDB4M2YsMHgxOCwweDBmLDB4YzAsMHg0MywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTBhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4OGUsMHgwMCwweGExLDB4ODAgfSB9LAoteyAgMTYsIDB4OTBiMCwgMCwgezB4MGIsMHhlMCwweDAyLDB4MjgsMHgwMCwweGRlLDB4YzIsMHgyMywweDkwLDB4MDAsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBjMCwgMCwgezB4MmUsMHg4MCwweDBiLDB4YTAsMHgwMiwweGU4LDB4MDAsMHhmYSwweDAwLDB4MmUsMHg4MCwweDBiLDB4YTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTksMHg4MSwweDYwLDB4YzAgfSB9LAoteyAgMTYsIDB4OTBlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MGMsMHgwMCwweDkwLDB4MTAsMHgyYSwweGZjLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBmMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTEwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDgyLDB4OTUsMHg0MCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4OTExMCwgMCwgezB4MGIsMHg1MCwweDAyLDB4MWMsMHg4MCwweDkwLDB4ODAsMHgyMywweDAxLDB4MDksMHg3MiwweDEyLDB4ZGMsMHgwMCwweGI2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTEyMCwgMCwgezB4MmQsMHgwMCwweDBiLDB4NDAsMHgwMiwweGQwLDB4MDAsMHhiNCwweDA5LDB4MmQsMHgwMCwweDRiLDB4NDAsMHg4MiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTEzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDgwLDB4ZGQsMHg4MCwweGIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4OTE0MCwgMCwgezB4MGYsMHhkYSwweDAzLDB4MGYsMHg4MCwweGQ0LDB4ODAsMHgzOSwweGUwLDB4MGIsMHg3YSwweDAzLDB4ZGUsMHgwMCwweGY1LDB4ODAgfSB9LAoteyAgMTYsIDB4OTE1MCwgMCwgezB4M2QsMHgyMCwweDBmLDB4NDgsMHgwMywweGQ2LDB4MTAsMHhmNiwweDgxLDB4M2QsMHhlMCwweDhmLDB4NjgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4OTE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZWQsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4OTE3MCwgMCwgezB4MGYsMHg5MSwweDBiLDB4ZWMsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTE4MCwgMCwgezB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGU4LDB4MDAsMHhlOSwweDAxLDB4M2UsMHgwMCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4OTE5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDIwLDB4YmYsMHg4MSwweDMzLDB4YTQgfSB9LAoteyAgMTYsIDB4OTFhMCwgMCwgezB4OGMsMHgxOSwweDAzLDB4M2UsMHgwMCwweGNkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDgzLDB4M2UsMHgwMCwweGVmLDB4ODAgfSB9LAoteyAgMTYsIDB4OTFiMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZjksMHgxMywweGZhLDB4MTAsMHhmZCwweDgwLDB4M2YsMHhhNCwweDBmLDB4ZDgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTFjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4YmYsMHgyMCwweDMxLDB4YzIgfSB9LAoteyAgMTYsIDB4OTFkMCwgMCwgezB4MDgsMHg1YSwweDAyLDB4M2MsMHgwMiwweDg3LDB4MDAsMHgyZCwweDk0LDB4MGIsMHg3MCwweDBhLDB4MWMsMHg0MCwweDg2LDB4MTAgfSB9LAoteyAgMTYsIDB4OTFlMCwgMCwgezB4MmQsMHgwMCwweDBiLDB4NDAsMHgwMiwweGQ0LDB4MDAsMHhmNiwweDAwLDB4MmQsMHg0MCwweDRiLDB4NjAsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTFmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgwMSwweDIzLDB4ODAgfSB9LAoteyAgMTYsIDB4OTIwMCwgMCwgezB4MjgsMHg1MCwweDAyLDB4MWMsMHgwMCwweDg0LDB4MDAsMHgyZCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MWMsMHgwMCwweGI1LDB4MDAgfSB9LAoteyAgMTYsIDB4OTIxMCwgMCwgezB4MmQsMHgwMCwweDBiLDB4NDAsMHgwNiwweGQwLDB4NDAsMHhiNCwweDA4LDB4MmQsMHg4MCwweDBiLDB4NDgsMHgwMiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTIyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDAwLDB4YjMsMHgwOCwweGEwLDB4MjAgfSB9LAoteyAgMTYsIDB4OTIzMCwgMCwgezB4MDgsMHgxMSwweDhhLDB4MGUsMHgwMCwweDgwLDB4MDAsMHgyYywweDkwLDB4MGIsMHgzNywweDAyLDB4MGMsMHgwMCwweDkwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTI0MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHg0MiwweGNjLDB4MDQsMHhhMywweDgwLDB4MmMsMHg1MCwweDBiLDB4MzAsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTI1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZjksMHg4MCwweDMyLDB4NjAgfSB9LAoteyAgMTYsIDB4OTI2MCwgMCwgezB4MGMsMHhkNCwweDAzLDB4M2MsMHg4MCwweDg4LDB4MDAsMHgzZSwweGQwLDB4MGYsMHhmOCwweDAzLDB4MjgsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTI3MCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwNywweGVjLDB4MDEsMHhiYiwweDgwLDB4M2UsMHg1NCwweDBmLDB4YjAsMHgwNiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlZSwweDA4LDB4ZjksMHg4MCwweDNhLDB4YzAgfSB9LAoteyAgMTYsIDB4OTI5MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NDAsMHgzZSwweDU4LDB4MGYsMHhiMCwweDQzLDB4ZTksMHgwMCwweGViLDB4NDQgfSB9LAoteyAgMTYsIDB4OTJhMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MGQsMHhmOCwweDAwLDB4M2UsMHg4MCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTJiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4Y2YsMHgwMCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4OTJjMCwgMCwgezB4MGMsMHhkMCwweDAzLDB4M2MsMHgzMCwweGNjLDB4MDAsMHgzYiwweGMwLDB4MmQsMHhmMCwweDAzLDB4ZDgsMHgwMiwweGNjLDB4MDAgfSB9LAoteyAgMTYsIDB4OTJkMCwgMCwgezB4M2QsMHgwMCwweDBjLDB4YzAsMHgwMywweGY0LDB4MDAsMHhlZSwweDAyLDB4MzcsMHg0MCwweDBjLDB4ZTAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4OTJlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDE4LDB4ODMsMHg4NCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTJmMCwgMCwgezB4NGEsMHgxMCwweDAyLDB4MGMsMHgwMCwweGE4LDB4NDgsMHgyZSwweDYwLDB4MDgsMHhiMCwweDAyLDB4ZTksMHgwMCwweDg5LDB4NDAgfSB9LAoteyAgMTYsIDB4OTMwMCwgMCwgezB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweGU4LDB4MTAsMHhiMSwweDAxLDB4MjAsMHg4MCwweDBhLDB4OTAsMHgwMywweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTMxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHg4MiwweDIyLDB4MDggfSB9LAoteyAgMTYsIDB4OTMyMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MmMsMHgxNCwweDg4LDB4MDQsMHgyYywweDA4LDB4MDgsMHhiMCwweDEyLDB4ZTgsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTMzMCwgMCwgezB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGU4LDB4MDEsMHhiOSwweDAwLDB4MjYsMHgwNCwweDA4LDB4OTAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTM0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4ODMsMHg4MCwweGEyLDB4YzAgfSB9LAoteyAgMTYsIDB4OTM1MCwgMCwgezB4MGEsMHg5MiwweDAyLDB4MmMsMHgwMCwweGEyLDB4MDAsMHgyYywweDAwLDB4MDgsMHgzNCwweDAyLDB4YzgsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTM2MCwgMCwgezB4MmMsMHgwMCwweDI4LDB4MDAsMHgwMiwweGM0LDB4MDEsMHhiYSwweDAwLDB4MjIsMHhjMCwweDAyLDB4MjAsMHgwNiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2EsMHgwMCwweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTM4MCwgMCwgezB4MGMsMHg5MiwweDBiLDB4MmMsMHgwNCwweGM4LDB4MDQsMHgzYSwweDAwLDB4MGMsMHhiNCwweDAzLDB4ZTgsMHgwMCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTM5MCwgMCwgezB4MmUsMHgwMCwweDBjLDB4ODAsMHgzMywweGUxLDB4NDAsMHhlOCwweDAwLDB4MzYsMHgwMCwweDBjLDB4ODAsMHgwMywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4OTNhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNkLDB4MDAgfSB9LAoteyAgMTYsIDB4OTNiMCwgMCwgezB4MGYsMHhkMSwweDBiLDB4ZmMsMHgwMSwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZDgsMHgwMCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4OTNjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4ODAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwNywweGE4LDB4MDYgfSB9LAoteyAgMTYsIDB4OTNkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhmMywweDAwLDB4Y2YsMHg4MCwweDM1LDB4NjAgfSB9LAoteyAgMTYsIDB4OTNlMCwgMCwgezB4NGUsMHg2OCwweDQzLDB4NWMsMHgwMCwweGU3LDB4ODAsMHgzOSwweGMwLDB4MGMsMHhjMSwweDAzLDB4N2UsMHgwMCwweGNmLDB4MzQgfSB9LAoteyAgMTYsIDB4OTNmMCwgMCwgezB4MzUsMHhlMSwweDRkLDB4ZjIsMHgwMywweDdjLDB4MDAsMHhkZiwweDM4LDB4M2YsMHhjOCwweDBmLDB4ZjgsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTQwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTgsMHhjOCwweDAwLDB4ZGIsMHg4NCwweDIyLDB4NjAgfSB9LAoteyAgMTYsIDB4OTQxMCwgMCwgezB4MDgsMHhhYywweDBhLDB4MmMsMHgwMCwweDhiLDB4ODAsMHgyMiwweDMwLDB4MDgsMHg5MSwweDIyLDB4MmMsMHg5MCwweDI3LDB4NjEgfSB9LAoteyAgMTYsIDB4OTQyMCwgMCwgezB4MjIsMHhjYSwweDg4LDB4ZmMsMHgyMiwweGJmLDB4MDAsMHg4YiwweDYyLDB4MmYsMHhkMCwweDA5LDB4YjgsMHgwMywweGIwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTQzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHhlMiwweDgwLDB4YTksMHgwMiwweDI0LDB4NDAgfSB9LAoteyAgMTYsIDB4OTQ0MCwgMCwgezB4ODIsMHgzNCwweDQyLDB4MDQsMHgwMCwweGE5LDB4MDAsMHgyOCwweGM1LDB4NDgsMHgzMiwweDAyLDB4NGMsMHgyMCwweDgzLDB4MzAgfSB9LAoteyAgMTYsIDB4OTQ1MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MzEsMHgwMiwweDBkLDB4MDAsMHhiMywweDIwLDB4MmMsMHhjNCwweDBiLDB4MzAsMHgwMiwweGYyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTQ2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhhYSwweDAyLDB4YjksMHgwNCwweDIyLDB4NjAgfSB9LAoteyAgMTYsIDB4OTQ3MCwgMCwgezB4MjgsMHhiMiwweDAyLDB4MjYsMHgwMCwweDg5LDB4ODgsMHgwMiwweGMwLDB4MDgsMHgzMSwweDEyLDB4ZWMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTQ4MCwgMCwgezB4MmEsMHhkMCwweDA4LDB4YjAsMHgwMiwweGFjLDB4MDAsMHgyYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGIwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhlMiwweDAwLDB4ZTMsMHgwMCwweDM2LDB4MjAgfSB9LAoteyAgMTYsIDB4OTRhMCwgMCwgezB4MGUsMHhhNCwweDYzLDB4NmUsMHgwMCwweGUxLDB4YzAsMHgxYSwweGMxLDB4MGMsMHg4MCwweDAzLDB4NjgsMHg3MCwweGNiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTRiMCwgMCwgezB4MzYsMHg4MCwweDBkLDB4YjAsMHgwMywweDRjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHhjMSwweDBmLDB4YjAsMHgwMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTRjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiOCwweDA0LDB4ZGYsMHgwMCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4OTRkMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZiwweDAwLDB4MmIsMHg5OCwweDAzLDB4M2EsMHgwMCwweDc3LDB4MDAgfSB9LAoteyAgMTYsIDB4OTRlMCwgMCwgezB4MjcsMHhlNCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhkZiwweDAwLDB4M2UsMHhjMCwweDBkLDB4ZjAsMHg0MywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTRmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDAsMHhhNCwweDY4LDB4Y2IsMHgyMCwweDNhLDB4OTAgfSB9LAoteyAgMTYsIDB4OTUwMCwgMCwgezB4MGYsMHgyNCwweGEzLDB4YWMsMHgwMCwweGU5LDB4NTAsMHgzYSwweGMwLDB4MGUsMHhiNCwweDgzLDB4MmMsMHgwOCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4OTUxMCwgMCwgezB4M2EsMHg5MCwweDBlLDB4YjAsMHg4YiwweGVjLDB4ODAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweDkwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTUyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDEsMHgwYSwweDAwLDB4OGIsMHhhMCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4OTUzMCwgMCwgezB4MGQsMHhhOCwweDAyLDB4MmMsMHgwNCwweDg5LDB4NDAsMHgyOCwweGU4LDB4MDgsMHhiMiwweDAyLDB4MmMsMHgwMCwweGFmLDB4MDAgfSB9LAoteyAgMTYsIDB4OTU0MCwgMCwgezB4MDIsMHg4MCwweDA4LDB4N2MsMHgwMywweDNkLDB4ODAsMHgzZiwweDAwLDB4MmYsMHhjMCwweDA4LDB4YjAsMHgwMiwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTU1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OSwweDAwLDB4MDMsMHg0MCwweDI4LDB4YzAgfSB9LAoteyAgMTYsIDB4OTU2MCwgMCwgezB4MmIsMHgyOCwweDRhLDB4MjgsMHgwMCwweGExLDB4MDAsMHg2OCwweGQyLDB4MGEsMHgyMCwweDQyLDB4YTQsMHgwMSwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTU3MCwgMCwgezB4MDIsMHg0MCwweDBhLDB4MzQsMHgwMiwweDBkLDB4MDAsMHgzMywweDAwLDB4MmMsMHhjMCwweDBhLDB4MzAsMHgwMCwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTU4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDEsMHgxYSwweDAwLDB4ODcsMHg5MCwweDIxLDB4ZTQgfSB9LAoteyAgMTYsIDB4OTU5MCwgMCwgezB4MmIsMHhjOCwweDEyLDB4M2EsMHgwMCwweDg1LDB4YzAsMHgyYiwweDIxLDB4MjgsMHg2OCwweDAyLDB4YjYsMHgwMCwweGE3LDB4ODQgfSB9LAoteyAgMTYsIDB4OTVhMCwgMCwgezB4MjMsMHg2MCwweDA4LDB4MzgsMHg4MCwweDFlLDB4MDAsMHhiNywweDgwLDB4MmQsMHhlMCwweDA4LDB4NzgsMHgwMiwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4OTViMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YzEsMHgwMCwweDM4LDB4NTQgfSB9LAoteyAgMTYsIDB4OTVjMCwgMCwgezB4MGYsMHgyNiwweDgzLDB4ODAsMHgwMCwweGUwLDB4MzQsMHgyOCwweGM4LDB4MGUsMHgyYywweDBiLDB4OGMsMHgwMCwweGUzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTVkMCwgMCwgezB4NzgsMHg0NSwweDBlLDB4MzAsMHgwMywweDhlLDB4ODAsMHhmMywweDAwLDB4M2MsMHhjOCwweDBlLDB4MzAsMHgwMywweDkyLDB4MDIgfSB9LAoteyAgMTYsIDB4OTVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiOCwweDAwLDB4ZjUsMHgwMiwweDNmLDB4NDQgfSB9LAoteyAgMTYsIDB4OTVmMCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZjgsMHgwMCwweGJkLDB4MTQsMHgxZiwweGMwLDB4MGYsMHhlMSwweDIzLDB4NWMsMHg0NCwweDlmLDB4NDIgfSB9LAoteyAgMTYsIDB4OTYwMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjQsMHg4MiwweDdkLDB4NDAsMHhmZiwweDEwLDB4M2YsMHhjMCwweDRmLDB4NzAsMHgwNywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4OTYxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlOCwweDAyLDB4Y2IsMHgwMCwweDM4LDB4YzAgfSB9LAoteyAgMTYsIDB4OTYyMCwgMCwgezB4M2MsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4MDAsMHgzZSwweGMwLDB4MGMsMHhiMCwweDAzLDB4MjAsMHgwNCwweGZiLDB4MjEgfSB9LAoteyAgMTYsIDB4OTYzMCwgMCwgezB4M2UsMHg4MCwweDRmLDB4YjQsMHgwMywweGNmLDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjYywweDRmLDB4YjAsMHg0MywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTY0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4OTEsMHg5OCwweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4OTY1MCwgMCwgezB4MDgsMHg0MCwweDAyLDB4ZGMsMHgwNCwweGI1LDB4MDAsMHgyZCwweDAwLDB4MmQsMHg3MCwweDAyLDB4MWMsMHgxYywweGI3LDB4MDIgfSB9LAoteyAgMTYsIDB4OTY2MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzIsMHgwMiwweGRjLDB4MDAsMHg4NywweDQwLDB4MmQsMHhjYSwweDhiLDB4NzAsMHgwMiwweGYyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTY3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhiYSwweDAwLDB4ODcsMHg4OCwweDJiLDB4ZTAgfSB9LAoteyAgMTYsIDB4OTY4MCwgMCwgezB4MTgsMHg3OCwweDIyLDB4ZDYsMHgxMSwweGE0LDB4ODIsMHgyZiwweGUwLDB4MDgsMHg3OCwweDAyLDB4MTIsMHgwMCwweGI3LDB4OTQgfSB9LAoteyAgMTYsIDB4OTY5MCwgMCwgezB4NmQsMHg2MCwweDRiLDB4N2EsMHgwMiwweGRlLDB4NDAsMHhiNywweGEwLDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwNiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTZhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjOSwweDEyLDB4ODMsMHg4MiwweDI4LDB4ZDQgfSB9LAoteyAgMTYsIDB4OTZiMCwgMCwgezB4OTgsMHgwMCwweDA2LDB4ZWYsMHgwNSwweGIxLDB4OTAsMHgyYywweGMxLDB4MDksMHhiNCwweDAyLDB4MGMsMHgwNCwweGIzLDB4MDEgfSB9LAoteyAgMTYsIDB4OTZjMCwgMCwgezB4NmMsMHhmMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTZkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDQwLDB4Y2EsMHg4MCwweDNiLDB4YTAgfSB9LAoteyAgMTYsIDB4OTZlMCwgMCwgezB4NGMsMHhlNSwweDAyLDB4ZjgsMHg4MCwweGVlLDB4MDAsMHgzZCwweDgwLDB4MmMsMHhlMCwweDBmLDB4MzgsMHg4MCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTZmMCwgMCwgezB4M2YsMHhhOSwweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhiYSwweDAyLDB4M2UsMHg4MCwweDhiLDB4YTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTcwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDEwLDB4ZjgsMHgwMCwweDI2LDB4MDIgfSB9LAoteyAgMTYsIDB4OTcxMCwgMCwgezB4MGYsMHg4NCwweDAzLDB4ZTAsMHgyNCwweGY4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweGEzLDB4ZTAsMHgzMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTcyMCwgMCwgezB4MzYsMHgwMiwweDBmLDB4ODAsMHgyMywweGUwLDB4MDQsMHgwOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTczMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweGI2LDB4NDEgfSB9LAoteyAgMTYsIDB4OTc0MCwgMCwgezB4NGUsMHg5OSwweDBiLDB4YTQsMHgwMCwweDY5LDB4MTAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YTQsMHgxMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTc1MCwgMCwgezB4M2UsMHg0MCwweDBkLDB4OTIsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTc2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODEsMHgwMCwweDIwLDB4NDIgfSB9LAoteyAgMTYsIDB4OTc3MCwgMCwgezB4MDgsMHgxNCwweDlhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDUwLDB4MDAsMHg5MCwweDAyLDB4MjQsMHgxMCwweGQ5LDB4MDIgfSB9LAoteyAgMTYsIDB4OTc4MCwgMCwgezB4NmUsMHg0MCwweDBiLDB4OTQsMHgwMywweGE3LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTc5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNiwweDAwLDB4OTksMHgwMCwweGE2LDB4NDEgfSB9LAoteyAgMTYsIDB4OTdhMCwgMCwgezB4MGEsMHg5MCwweDA2LDB4MmMsMHgwMCwweGE5LDB4MDksMHg2ZSwweDUwLDB4MDgsMHg5MSwweDAyLDB4ODQsMHgwNCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTdiMCwgMCwgezB4MGUsMHg0MCwweDBiLDB4OTQsMHgwMiwweGU1LDB4NDksMHhiOSwweDAwLDB4MGEsMHg0MCwweDBhLDB4OTAsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTdjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNiwweDAwLDB4ODEsMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4OTdkMCwgMCwgezB4MDgsMHgxMiwweDIyLDB4MDQsMHg4MSwweGExLDB4MDAsMHgyYywweDQwLDB4MDgsMHgxNiwweDAyLDB4MDQsMHgwMCwweDkxLDB4MjAgfSB9LAoteyAgMTYsIDB4OTdlMCwgMCwgezB4MmMsMHg0MCwweDBiLDB4MTIsMHg0MiwweDg0LDB4ODksMHhiMSwweDIwLDB4MjAsMHg0OCwweDA4LDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHgwMCwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTgwMCwgMCwgezB4MGEsMHg4MCwweDAzLDB4YTEsMHg0MCwweGU4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHgwMCwweDIzLDB4YTEsMHg0MCwweGM4LDB4NTAgfSB9LAoteyAgMTYsIDB4OTgxMCwgMCwgezB4MmUsMHgxNCwweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDUwLDB4M2EsMHgwMCwweDBlLDB4ODAsMHgwMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4OTgyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MWQsMHhkNCwweDAwLDB4ZjUsMHgwMCwweGJmLDB4NDAgfSB9LAoteyAgMTYsIDB4OTgzMCwgMCwgezB4MGYsMHhkMSwweDAzLDB4ZjQsMHg0NCwweGRkLDB4MDIsMHgzZCwweDUwLDB4MmIsMHhkMSwweDIzLDB4ZjQsMHgwMCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4OTg0MCwgMCwgezB4M2YsMHg0MCwweDBkLDB4OTEsMHgwMywweGE0LDB4NDgsMHhmOSwweDEyLDB4M2UsMHg0ZSwweDFmLDB4OTAsMHgwMywweGE2LDB4MDIgfSB9LAoteyAgMTYsIDB4OTg1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4YzUsMHgwNCwweDNiLDB4NDAgfSB9LAoteyAgMTYsIDB4OTg2MCwgMCwgezB4MGYsMHhkOCwweDAzLDB4YTcsMHg4MCwweGZkLDB4MDAsMHhiMywweDY4LDB4MGQsMHhkOCwweDQzLDB4YTUsMHgxMCwweGM5LDB4YTAgfSB9LAoteyAgMTYsIDB4OTg3MCwgMCwgezB4MzIsMHg1MSwweDRmLDB4NWEsMHg0MywweDM2LDB4MDAsMHhjOSwweGEwLDB4N2EsMHg2OCwweDBiLDB4ZDAsMHgwMywweGM2LDB4MDEgfSB9LAoteyAgMTYsIDB4OTg4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDc4LDB4MTgsMHhjYSwweDg4LDB4ODgsMHgwMiwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTg5MCwgMCwgezB4OGQsMHg4NCwweDIyLDB4MjMsMHg0MiwweGY4LDB4MDAsMHgyMiwweDA0LDB4MjgsMHg4YSwweGEyLDB4YWEsMHg5NCwweDg4LDB4ZTkgfSB9LAoteyAgMTYsIDB4OThhMCwgMCwgezB4MjAsMHhhOCwweDBhLDB4ODAsMHgwYSwweDIxLDB4NDAsMHg4MCwweGUyLDB4MmUsMHgyOCwweDBiLDB4ODAsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4OThiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDIwLDB4YTEsMHgwNCwweGE4LDB4YzAgfSB9LAoteyAgMTYsIDB4OThjMCwgMCwgezB4MGIsMHgxYywweDJhLDB4MjQsMHgwMCwweDM5LDB4MDQsMHgyMCwweDQwLDB4MmEsMHgxZSwweDAyLDB4ZTQsMHg4MCwweGIxLDB4MTAgfSB9LAoteyAgMTYsIDB4OThkMCwgMCwgezB4MmEsMHg0OCwweDA5LDB4MTQsMHg0NiwweDA0LDB4MDAsMHg4MSwweDM4LDB4MmMsMHg1YiwweDBiLDB4MTAsMHgwMiwweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OThlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNCwweDEyLDB4YTksMHgyNCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4OThmMCwgMCwgezB4MjksMHg5MCwweDAyLDB4MjQsMHgwMCwweDM5LDB4MDAsMHgwMiwweDU4LDB4MDgsMHgxOCwweDEwLDB4ZTYsMHgwMSwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTkwMCwgMCwgezB4YWEsMHg0NCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MGUsMHg0MSwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4OTkxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZTEsMHgwMSwweDJhLDB4NjQgfSB9LAoteyAgMTYsIDB4OTkyMCwgMCwgezB4MmYsMHg5NCwweDEzLDB4MjQsMHgwMiwweDcxLDB4NjAsMHgxMiwweDYwLDB4NGQsMHg5MCwweDAwLDB4YzUsMHgwMiwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTkzMCwgMCwgezB4M2EsMHg0MCwweDBmLDB4OTAsMHgyMywweDI0LDB4MDIsMHhjOSwweDAyLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMiwweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTk0MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDEsMHhhNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NjAgfSB9LAoteyAgMTYsIDB4OTk1MCwgMCwgezB4YWYsMHg5MCwweDgzLDB4NjQsMHg4OCwweGY5LDB4MjAsMHgzZSwweDYyLDB4MDMsMHg5MCwweDgzLDB4YTQsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTk2MCwgMCwgezB4MzYsMHg2MCwweDBmLDB4MTAsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4N2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTk3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMSwweDAwLDB4YzgsMHg4MiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTk4MCwgMCwgezB4NmYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGQ4LDB4NDAsMHgzMCwweDAwLDB4MGUsMHg4MCwweDAzLDB4NjAsMHgwNCwweGY4LDB4MDEgfSB9LAoteyAgMTYsIDB4OTk5MCwgMCwgezB4M2UsMHgxMCwweDRmLDB4ODAsMHg4YiwweDIyLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwMSwweDBlLDB4ODAsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTlhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHgzOCwweDAwLDB4MGUsMHgwMCwweGE5LDB4OTAgfSB9LAoteyAgMTYsIDB4OTliMCwgMCwgezB4MmYsMHhlNiwweDIwLDB4ODgsMHgwMCwweDllLDB4ODAsMHgyMywweDgwLDB4MGEsMHhlOCwweDAzLDB4MjgsMHgwMCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTljMCwgMCwgezB4MTgsMHg4MCwweDBkLDB4ZWMsMHgwMiwweDM4LDB4ODAsMHhiYSwweDAwLDB4YTIsMHg4MCwweDA4LDB4YTAsMHgwMywweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTlkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2YywweDAyLDB4ODMsMHg4MCwweDIwLDB4YzggfSB9LAoteyAgMTYsIDB4OTllMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4MGMsMHgwMSwweDkyLDB4MTAsMHg2OCwweGMwLDB4M2EsMHgzYywweDAyLDB4Y2MsMHgxMCwweDNiLDB4MDIgfSB9LAoteyAgMTYsIDB4OTlmMCwgMCwgezB4MGMsMHhjMCwweDI4LDB4M2MsMHgwMiwweDRlLDB4MDAsMHhiMywweDAwLDB4MjgsMHhjMCwweDI4LDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OWEwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxNCwweDAwLDB4ODcsMHg0MiwweDJiLDB4YzAgfSB9LAoteyAgMTYsIDB4OWExMCwgMCwgezB4MjksMHg3MCwweDIyLDB4OWMsMHgwMCwweGI2LDB4MDAsMHgyYiwweGMyLDB4MGEsMHg2MCwweDg2LDB4MWMsMHgwMCwweGI3LDB4MjEgfSB9LAoteyAgMTYsIDB4OWEyMCwgMCwgezB4MjksMHhjMCwweDAwLDB4NzQsMHgwMiwweDVjLDB4MDAsMHgzNywweDkxLDB4MDEsMHhlMCwweDA4LDB4NzQsMHgwMiwweGE4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWEzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MCwweDIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWE0MCwgMCwgezB4MmYsMHg3OCwweDAyLDB4OWUsMHgwMCwweDk2LDB4ODAsMHgzOSwweGUwLDB4MmUsMHhmOCwweDAzLDB4ZGUsMHgzMCwweGY3LDB4ZDAgfSB9LAoteyAgMTYsIDB4OWE1MCwgMCwgezB4MmQsMHhmMiwweDAwLDB4NzgsMHgwMywweDUyLDB4MDAsMHhmNywweGEyLDB4M2IsMHhlMCwweDBlLDB4NzgsMHgwNywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4OWE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhiNCwweDAwLDB4ZmIsMHgwMCwweDBjLDB4YzAgfSB9LAoteyAgMTYsIDB4OWE3MCwgMCwgezB4MGYsMHgzMCwweDAzLDB4ZWMsMHgxMCwweGQzLDB4MDAsMHhiNCwweGMwLDB4MmYsMHg4MCwweDAzLDB4NmMsMHg0OCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWE4MCwgMCwgezB4M2UsMHhjOCwweDRkLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmYiwweDIwLDB4MWUsMHhjMCwweDBmLDB4YjAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4OWE5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4Y2MsMHg4MCwweDJiLDB4MmMgfSB9LAoteyAgMTYsIDB4OWFhMCwgMCwgezB4MmYsMHhmOCwweDAzLDB4N2UsMHgwMCwweDZlLDB4ODAsMHgzYiwweGExLDB4MGQsMHhkOCwweDQzLDB4M2UsMHgwMCwweGZmLDB4OTAgfSB9LAoteyAgMTYsIDB4OWFiMCwgMCwgezB4MzMsMHhlMCwweDBmLDB4ZTksMHgzMywweGZlLDB4MDAsMHhjZiwweGMwLDB4M2YsMHhlMiwweDBmLDB4ZDgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWFjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiNCwweDQwLDB4ODcsMHgwMCwweDIxLDB4MDQgfSB9LAoteyAgMTYsIDB4OWFkMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4MWMsMHgwMCwweDg2LDB4MDAsMHgyMSwweGMwLDB4MjgsMHg5MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MTAgfSB9LAoteyAgMTYsIDB4OWFlMCwgMCwgezB4MjEsMHhjMCwweDBmLDB4NzMsMHgwMiwweGNjLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4OWFmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5ZCwweDAwLDB4YTQsMHgwMCwweDI5LDB4NDggfSB9LAoteyAgMTYsIDB4OWIwMCwgMCwgezB4NmEsMHhmMCwweDgyLDB4NGMsMHgwMCwweGFlLDB4MDAsMHhhMSwweGM0LDB4MjksMHg3NCwweDAyLDB4NWMsMHg0MCwweGEzLDB4MTAgfSB9LAoteyAgMTYsIDB4OWIxMCwgMCwgezB4NjEsMHhjMiwweDBiLDB4NjAsMHgwNiwweGM4LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweGMwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWIyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhlNiwweDAxLDB4YTMsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4OWIzMCwgMCwgezB4MjgsMHgzYywweDAyLDB4MGMsMHgwMCwweDgzLDB4NDIsMHgyMCwweGM4LDB4MDgsMHgxMCwweDAyLDB4Y2QsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OWI0MCwgMCwgezB4MjgsMHhmMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDEsMHg4MywweDA0LDB4MmMsMHhjMCwweDgzLDB4MTAsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4OWI1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYSwweDgwLDB4ZWIsMHgwMCwweDM4LDB4YzAgfSB9LAoteyAgMTYsIDB4OWI2MCwgMCwgezB4MGEsMHg5MCwweDAzLDB4N2MsMHgyMiwweGEyLDB4NDAsMHgzMiwweDQ4LDB4MGQsMHhiMCwweDBiLDB4M2UsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWI3MCwgMCwgezB4MzMsMHhmNCwweDBmLDB4OTAsMHgwMywweGVjLDB4MDAsMHg4ZiwweDAyLDB4M2YsMHhjMCwweDBmLDB4OTAsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OWI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlMCwweDAwLDB4ZDksMHgwMiwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4OWI5MCwgMCwgezB4MGUsMHhiNiwweDAzLDB4ZWMsMHgwMCwweGZhLDB4MjAsMHgzZSwweGMwLDB4NGYsMHgyNCwweDIzLDB4YWMsMHg2MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWJhMCwgMCwgezB4YTYsMHhjMCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmYiwweDAwLDB4M2MsMHhjMSwweDBmLDB4OTAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWJiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmOCwweDAyLDB4Y2YsMHgwMCwweDMzLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWJjMCwgMCwgezB4MmMsMHhmMCwweDEzLDB4YmMsMHgwMCwweDJlLDB4MTAsMHhiMSwweDY0LDB4MmUsMHhmMCwweDAyLDB4M2MsMHgwMCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4OWJkMCwgMCwgezB4M2YsMHhjMSwweDRkLDB4ZWMsMHg2MywweGZlLDB4MDAsMHhiNywweDAwLDB4M2IsMHhjMCwweDBjLDB4ZDgsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4OWJlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2YywweDI4LDB4ODEsMHg4MSwweDIyLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWJmMCwgMCwgezB4MGEsMHgzOCwweDAyLDB4M2MsMHgwNCwweGJhLDB4YzksMHgzMiwweGUwLDB4MjAsMHg4NCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWMwMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4OWMsMHgwMiwweGU3LDB4ODEsMHhiYiwweDA0LDB4MjIsMHhjMCwweDBhLDB4OTksMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWMxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyOCwweDQwLDB4ODgsMHg4MCwweDIyLDB4ODggfSB9LAoteyAgMTYsIDB4OWMyMCwgMCwgezB4MjgsMHhiYywweDQyLDB4YWMsMHgwMCwweGJhLDB4MDAsMHgyYSwweDgwLDB4MDgsMHg4NCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWMzMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YjAsMHg4MiwweGU4LDB4OTAsMHhhYiwweDAwLDB4NjIsMHhjMCwweDA4LDB4YjAsMHgxMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWM0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwMCwweDAwLDB4ODksMHgwMCwweDJhLDB4ODAgfSB9LAoteyAgMTYsIDB4OWM1MCwgMCwgezB4MjgsMHhiMiwweDAyLDB4MGMsMHgwMCwweGJhLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgwMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OWM2MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgyMCwweDRjLDB4MTQsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDAwLDB4YzgsMHgwMCwweGIyLDB4YzAgfSB9LAoteyAgMTYsIDB4OWM4MCwgMCwgezB4MmMsMHhiMiwweDAzLDB4YWMsMHgwMCwweGZhLDB4MDAsMHgzYSwweGMwLDB4NGUsMHhhNSwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWM5MCwgMCwgezB4M2YsMHhjMCwweDA5LDB4YTAsMHgwMywweGU5LDB4MDQsMHhlZiwweDAwLDB4YmEsMHhjMCwweDBjLDB4YjAsMHgwMSwweGMwLDB4MDEgfSB9LAoteyAgMTYsIDB4OWNhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhmYywweDAwLDB4ZjUsMHgwMCwweDM1LDB4YzAgfSB9LAoteyAgMTYsIDB4OWNiMCwgMCwgezB4YWYsMHgzNCwweDAzLDB4ZmMsMHgwMCwweGY0LDB4MDAsMHgzOSwweGMwLDB4MGYsMHhjMiwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4OWNjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4YTAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDUgfSB9LAoteyAgMTYsIDB4OWNkMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4ZmYsMHgyOSwweDNkLDB4MjAgfSB9LAoteyAgMTYsIDB4OWNlMCwgMCwgezB4OGUsMHhjMSwweDAzLDB4MzIsMHg0OCwweGRjLDB4ODAsMHgyMywweDI1LDB4MGUsMHhmMiwweDAzLDB4M2MsMHhjMCwweGRmLDB4ODQgfSB9LAoteyAgMTYsIDB4OWNmMCwgMCwgezB4MzMsMHhjOSwweDBmLDB4ZjIsMHgwMywweGZjLDB4MDAsMHhjZiwweDgwLDB4MzMsMHg0MCwweDBjLDB4ZjIsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWQwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlYywweGMwLDB4YmIsMHg2MCwweDJlLDB4MDggfSB9LAoteyAgMTYsIDB4OWQxMCwgMCwgezB4MDgsMHg4MSwweDAyLDB4MjAsMHgwNCwweDg4LDB4MjAsMHgyMCwweDQ4LDB4MDgsMHhmMSwweDgyLDB4MmQsMHhjMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4OWQyMCwgMCwgezB4MjIsMHhkNCwweDA5LDB4ZjUsMHgwMiwweGZjLDB4MDgsMHg4YiwweDAxLDB4MjIsMHg0MCwweDI4LDB4YjQsMHgwMiwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWQzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDIwLDB4YjMsMHgwOSwweDJjLDB4ODIgfSB9LAoteyAgMTYsIDB4OWQ0MCwgMCwgezB4MDgsMHgxMCwweDE2LDB4YTAsMHgxMCwweDkwLDB4MDgsMHgyOCwweDQ4LDB4MGEsMHgzMiwweDAyLDB4MGMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWQ1MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDIsMHg5MywweDAxLDB4MjAsMHgwMCwweDhhLDB4MzEsMHgyMiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWQ2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDA0LDB4YmIsMHgwMCwweDJjLDB4ODAgfSB9LAoteyAgMTYsIDB4OWQ3MCwgMCwgezB4MDgsMHg4NiwweDAyLDB4YTAsMHgyMCwweGEwLDB4MDAsMHgyYSwweDYwLDB4MGEsMHhiMCwweDEwLDB4MmMsMHgwMCwweGFiLDB4MGMgfSB9LAoteyAgMTYsIDB4OWQ4MCwgMCwgezB4NmUsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNjLDB4MDAsMHg5YiwweDAwLDB4MjIsMHg2MCwweDBhLDB4YjAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAwLDB4YmIsMHgwMCwweDNlLDB4MzQgfSB9LAoteyAgMTYsIDB4OWRhMCwgMCwgezB4MDgsMHhhMCwweDBiLDB4ODMsMHgwMCwweGQ5LDB4MDIsMHgzYSwweGUwLDB4MmUsMHhiMCwweDBiLDB4MmMsMHgwMCwweGY4LDB4ODAgfSB9LAoteyAgMTYsIDB4OWRiMCwgMCwgezB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhjYSwweDQwLDB4YjIsMHg3MiwweDBlLDB4YjAsMHgwYiwweGMwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWRjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiYywweDEwLDB4ZmIsMHgwMCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWRkMCwgMCwgezB4MGQsMHhmOCwweDEzLDB4NzAsMHg0OCwweGRkLDB4NDAsMHgzNywweGMyLDB4OGQsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGRkLDB4YzggfSB9LAoteyAgMTYsIDB4OWRlMCwgMCwgezB4MTMsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZSwweDQwLDB4N2YsMHg0MCwweDBkLDB4NzAsMHgwMywweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWRmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMSwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4OWUwMCwgMCwgezB4MDQsMHgxMCwweDAzLDB4MjAsMHg0MCwweGU4LDB4MTAsMHgzYSwweGMwLDB4MGQsMHhiMCwweDAzLDB4YWMsMHgwOCwweGY4LDB4NDAgfSB9LAoteyAgMTYsIDB4OWUxMCwgMCwgezB4YjIsMHhjMCwweDJjLDB4YjAsMHgzMywweGE0LDB4ODIsMHhkYSwweDQwLDB4YmEsMHg0MCwweDBmLDB4YjAsMHgwMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWUyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgzYywweDA4LDB4YmYsMHg4MCwweDIyLDB4YzggfSB9LAoteyAgMTYsIDB4OWUzMCwgMCwgezB4MDgsMHhiNywweDAwLDB4MjMsMHg0NCwweDg4LDB4ZDAsMHgyMiwweGQwLDB4MDgsMHg3MCwweDgyLDB4ZmMsMHgwMCwweGIyLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWU0MCwgMCwgezB4MDMsMHhmNCwweDA4LDB4ZjUsMHgwMiwweDM3LDB4MDQsMHg4YiwweGQxLDB4MjIsMHg2MCwweDRiLDB4ZmQsMHgwMiwweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4OWU1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHgxMCwweGE0LDB4NDAgfSB9LAoteyAgMTYsIDB4OWU2MCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NDgsMHgwMCwweGEwLDB4NDIsMHgyYSwweGQwLDB4MDEsMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4ODAgfSB9LAoteyAgMTYsIDB4OWU3MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzEsMHgwMiwweGNjLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhlOCwweDAzLDB4MzgsMHgwMiwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWU4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDEsMHgxZSwweDAwLDB4YjcsMHg4MCwweDI3LDB4NjQgfSB9LAoteyAgMTYsIDB4OWU5MCwgMCwgezB4NjgsMHg0YSwweDAyLDB4NTIsMHgwMCwweDhjLDB4ODAsMHgyMSwweGUwLDB4MDgsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4OWVhMCwgMCwgezB4MmQsMHhlMiwweDE5LDB4MzksMHgwMiwweDVlLDB4MzAsMHg4NSwweDk4LDB4MjEsMHhlNCwweDBiLDB4NzksMHgwMiwweGQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWViMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHgyMCwweDM0LDB4MDAgfSB9LAoteyAgMTYsIDB4OWVjMCwgMCwgezB4MGMsMHhiOCwweDAzLDB4NDgsMHg4MCwweGUyLDB4MjIsMHgzOCwweGMwLDB4MGQsMHgzMCwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDAgfSB9LAoteyAgMTYsIDB4OWVkMCwgMCwgezB4M2UsMHhjMCwweDBkLDB4MzEsMHgwMywweGVjLDB4MDAsMHhjYiwweDAwLDB4MzgsMHgwNiwweDBmLDB4MzAsMHg4MywweGQyLDB4MDIgfSB9LAoteyAgMTYsIDB4OWVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNiLDB4MDEgfSB9LAoteyAgMTYsIDB4OWVmMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4OTAsMHgwMCwweGY2LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDAxLDB4ZmMsMHgwMCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4OWYwMCwgMCwgezB4MzMsMHhjMiwweDBlLDB4ZjUsMHgxMywweGJjLDB4MDAsMHhlZCwweDAwLDB4M2YsMHhjNCwweDBmLDB4ZjAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4OWYxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNjLDB4YzAgfSB9LAoteyAgMTYsIDB4OWYyMCwgMCwgezB4MGUsMHhhMCwweDAxLDB4NjQsMHgwMSwweGQ4LDB4MDAsMHgzMiwweGUwLDB4MmMsMHhiNSwweDAzLDB4MmMsMHgwMCwweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4OWYzMCwgMCwgezB4N2EsMHhjMCwweDBkLDB4YjQsMHgwMywweDJkLDB4ODAsMHhjOSwweDAyLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4OWY0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDgwLDB4YjcsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4OWY1MCwgMCwgezB4MGQsMHg2MCwweDAyLDB4ZDAsMHgwMSwweDg0LDB4MDAsMHgyMSwweGMwLDB4MDgsMHgzMCwweDAyLDB4MWQsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4OWY2MCwgMCwgezB4MjEsMHhjOCwweDBiLDB4ZjQsMHgwMywweDFlLDB4YzAsMHg4NiwweDAwLDB4MjEsMHhjMCwweDA4LDB4N2MsMHgwMywweDUyLDB4MDQgfSB9LAoteyAgMTYsIDB4OWY3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweGMwLDB4YjcsMHg5MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWY4MCwgMCwgezB4MDgsMHg3OCwweDA2LDB4ZDYsMHgwMSwweGI0LDB4ODIsMHgyMSwweGUwLDB4MDgsMHg3OCwweDBhLDB4MWUsMHgwMCwweGI1LDB4YzAgfSB9LAoteyAgMTYsIDB4OWY5MCwgMCwgezB4MjksMHhlOCwweDA5LDB4NzgsMHgwMiwweDM2LDB4YzEsMHg5NywweDgwLDB4MjgsMHhiMCwweDBhLDB4N2EsMHgwMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWZhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4YmIsMHgwMCwweDJjLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWZiMCwgMCwgezB4MDksMHgzNSwweDgyLDB4YzAsMHhjMSwweGEwLDB4NTEsMHgyMCwweGU0LDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweGJiLDB4YzQgfSB9LAoteyAgMTYsIDB4OWZjMCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDA2LDB4MDAsMHg5MywweDE4LDB4YWEsMHhiMCwweDJhLDB4MzAsMHgwYSwweDUyLDB4MDQgfSB9LAoteyAgMTYsIDB4OWZkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMSwweDNkLDB4YWMgfSB9LAoteyAgMTYsIDB4OWZlMCwgMCwgezB4NGMsMHhlYywweDEzLDB4NzgsMHgxMCwweGY2LDB4ODAsMHhiMywweDkwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCwweGZlLDB4MDAgfSB9LAoteyAgMTYsIDB4OWZmMCwgMCwgezB4M2EsMHg4MSwweDBkLDB4YTAsMHgwZiwweDJhLDB4ODAsMHhkZSwweDA0LDB4M2IsMHhhMCwweDBlLDB4YTAsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTAwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTAxMCwgMCwgezB4MGQsMHg4MCwweDAyLDB4ZTEsMHgwMCwweGQ4LDB4NDgsMHgzZSwweDEyLDB4MGYsMHg4MCwweDEzLDB4NjAsMHgwMCwweGY4LDB4NjAgfSB9LAoteyAgMTYsIDB4YTAyMCwgMCwgezB4M2UsMHgwMCwweDA3LDB4ODAsMHgwMywweGEwLDB4MDIsMHhlOCwweDA0LDB4MjYsMHgwOCwweDA1LDB4ODAsMHgwMywweDkyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTAzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwNCwweDNhLDB4NDAgfSB9LAoteyAgMTYsIDB4YTA0MCwgMCwgezB4MGMsMHgxMiwweDAzLDB4MjQsMHg4MiwweGM5LDB4MDAsMHgzNiwweDQ0LDB4MGYsMHgxMCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTA1MCwgMCwgezB4MzYsMHg0MCwweDA0LDB4OTAsMHgwMywweDA0LDB4MDAsMHhjOSwweDAwLDB4MTIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTA2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHg4MSwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YTA3MCwgMCwgezB4MDgsMHg5MCwweDFhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDY4LDB4MGIsMHg5OSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTA4MCwgMCwgezB4MjIsMHg0MCwweDY4LDB4OTAsMHgwYSwweDI0LDB4MDAsMHg4OSwweDAwLDB4YTIsMHg0MCwweDA4LDB4OTAsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTA5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgxMCwweDIyLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTBhMCwgMCwgezB4MDgsMHg5NCwweDAwLDB4MDQsMHgwNCwweDhiLDB4MDgsMHgyNiwweGMwLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwNCwweGI5LDB4MGMgfSB9LAoteyAgMTYsIDB4YTBiMCwgMCwgezB4MjQsMHg0MCwweDBhLDB4MTAsMHgwMiwweDI0LDB4MDAsMHgyMywweDAyLDB4MmEsMHg0MCwweGE4LDB4MTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YTBjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDkwLDB4YjEsMHgyMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YTBkMCwgMCwgezB4MDgsMHgxMiwweDAyLDB4MGMsMHgxMCwweDgxLDB4MDIsMHhhMCwweDUwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweGIxLDB4MDUgfSB9LAoteyAgMTYsIDB4YTBlMCwgMCwgezB4MDAsMHg0OCwweDBhLDB4MTAsMHgwMiwweDA0LDB4YTAsMHhhMSwweDAwLDB4MjgsMHg0YSwweDA4LDB4MTIsMHgwMCwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHg1MCwweGJhLDB4MTQgfSB9LAoteyAgMTYsIDB4YTEwMCwgMCwgezB4MGMsMHg4NSwweDAzLDB4MDEsMHg0MiwweGM4LDB4NTAsMHgzNCwweDAwLDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTExMCwgMCwgezB4MzYsMHgwMCwweDBlLDB4ODAsMHgxMywweDIwLDB4ODAsMHhlMCwweDAwLDB4MWEsMHgwOCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YTEyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhlNCwweDQ0LDB4ZjksMHgxMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YTEzMCwgMCwgezB4MmYsMHhkMSwweDEzLDB4ZjQsMHgwNCwweGY1LDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5MSwweDBiLDB4ZTQsMHg0MCwweGZmLDB4MjggfSB9LAoteyAgMTYsIDB4YTE0MCwgMCwgezB4YmUsMHg0ZSwweDBkLDB4OTYsMHg4MywweGQ0LDB4YTIsMHhkZCwweDI4LDB4MzcsMHg0YSwweDBmLDB4OTMsMHg4MywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YTE1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MDUsMHhlNCwweDEwLDB4Y2QsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YTE2MCwgMCwgezB4MGYsMHhkMCwweDAzLDB4MzUsMHgwMiwweDVkLDB4MDEsMHgzMSwweDQ0LDB4MGYsMHhkMCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTE3MCwgMCwgezB4MzIsMHg2MCwweDBjLDB4OTgsMHg4MywweGU2LDB4NDAsMHhkOSwweDAwLDB4MzYsMHg2YSwweDBjLDB4OWUsMHg4MywweDI2LDB4MDEgfSB9LAoteyAgMTYsIDB4YTE4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDAwLDB4ODgsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTE5MCwgMCwgezB4MGIsMHg4MCwweDQyLDB4MDIsMHg4MCwweDhhLDB4MDAsMHgyMiwweDIwLDB4ODgsMHg4MCwweDAzLDB4MjAsMHgwOCwweGI4LDB4ODIgfSB9LAoteyAgMTYsIDB4YTFhMCwgMCwgezB4MjIsMHgyMSwweDA4LDB4ODgsMHg4MiwweGUyLDB4NDIsMHg4OCwweGE4LDB4MjIsMHgyMCwweDA4LDB4Y2UsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YTFiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAyLDB4ODEsMHgwMCwweDY4LDB4NDAgfSB9LAoteyAgMTYsIDB4YTFjMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4ODQsMHgwMSwweGI5LDB4MDAsMHgyMCwweDQwLDB4NDksMHgxMCwweDBhLDB4MDQsMHgwMCwweGI1LDB4MDggfSB9LAoteyAgMTYsIDB4YTFkMCwgMCwgezB4MjEsMHg0NiwweDA4LDB4NTAsMHgwMiwweGQ0LDB4MDAsMHg4ZCwweDIwLDB4MjUsMHg0YSwweDBiLDB4NTAsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTFlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNCwweDAwLDB4ODksMHgwNCwweDZlLDB4NTQgfSB9LAoteyAgMTYsIDB4YTFmMCwgMCwgezB4MGIsMHgxMCwweDEyLDB4YTQsMHgwMSwweGE5LDB4MDAsMHhhMiwweDQwLDB4MTgsMHg5MCwweDE2LDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTIwMCwgMCwgezB4MjMsMHg0MCwweDE4LDB4ZDAsMHgwMiwweGY0LDB4MDAsMHg4ZCwweDQwLDB4MjEsMHg0YSwweDBiLDB4ZDAsMHgwMiwweDQ2LDB4MDQgfSB9LAoteyAgMTYsIDB4YTIxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDNhLDB4NTAgfSB9LAoteyAgMTYsIDB4YTIyMCwgMCwgezB4OGYsMHg5NiwweDBiLDB4ODQsMHgwMiwweGYxLDB4MDEsMHgzMCwweDQ4LDB4OGQsMHg5MCwweDAzLDB4MjQsMHgxMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTIzMCwgMCwgezB4YjIsMHg0MCwweDJjLDB4OTAsMHgwMywweGU2LDB4NDAsMHhkMSwweGMwLDB4MzYsMHg1MCwweDJmLDB4OTAsMHgwYiwweDY4LDB4MDQgfSB9LAoteyAgMTYsIDB4YTI0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjAgfSB9LAoteyAgMTYsIDB4YTI1MCwgMCwgezB4MGYsMHg5OSwweGMzLDB4NjQsMHgwMCwweGQ5LDB4MjgsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4NDAgfSB9LAoteyAgMTYsIDB4YTI2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MjAsMHhmOSwweDQwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTI3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMSwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4YTI4MCwgMCwgezB4OGYsMHg4MCwweDAzLDB4ZTAsMHgwMiwweGY4LDB4MDQsMHgzMiwweDAwLDB4MGQsMHg4MCwweDQzLDB4MjAsMHgwMiwweGNjLDB4MDAgfSB9LAoteyAgMTYsIDB4YTI5MCwgMCwgezB4M2YsMHgwMCwweDBmLDB4YzAsMHgxMywweDkwLDB4MDIsMHhkYywweDQwLDB4M2YsMHgxMCwweDRjLDB4YzAsMHgyMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTJhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4YTJiMCwgMCwgezB4MGIsMHhlOCwweDIwLDB4ZjgsMHgwMCwweDRlLDB4YzAsMHgyMywweGEwLDB4MDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTJjMCwgMCwgezB4MmUsMHg4MCwweDFmLDB4YTAsMHgwMiwweDJhLDB4MDYsMHg4YSwweDAwLDB4MmUsMHhhMCwweDAyLDB4NjAsMHgwMywweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTJkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YTJlMCwgMCwgezB4MGIsMHgzZCwweDAyLDB4YzAsMHgwMywweDIzLDB4MDAsMHgyMCwweGUwLDB4MDEsMHhiMCwweDA2LDB4NGMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTJmMCwgMCwgezB4MmUsMHhjMCwweDRiLDB4MzAsMHgwMiwweDhlLDB4MDgsMHg4MywweDgwLDB4MmMsMHhjNCwweDAwLDB4MzQsMHg4ZSwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTMwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDgwLDB4YjUsMHg4MCwweDYxLDB4YzAgfSB9LAoteyAgMTYsIDB4YTMxMCwgMCwgezB4MGIsMHg0MCwweDAyLDB4ZDQsMHgwMCwweDg0LDB4MDgsMHgyMywweGMyLDB4MDgsMHg1MCwweDAyLDB4NWUsMHhjMCwweDg0LDB4MDEgfSB9LAoteyAgMTYsIDB4YTMyMCwgMCwgezB4MmQsMHgwMCwweDhhLDB4MDgsMHgwMiwweDEwLDB4MjQsMHg4NCwweDA4LDB4NmQsMHgwMCwweDBhLDB4MDMsMHgxMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTMzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjUsMHg4MiwweDIxLDB4NjAgfSB9LAoteyAgMTYsIDB4YTM0MCwgMCwgezB4MGYsMHg3OCwweDAzLDB4ZDYsMHgwNCwweGFlLDB4ODAsMHgzMSwweGUwLDB4MGQsMHg1OCwweDIzLDB4N2UsMHgwMCwweGM2LDB4ODAgfSB9LAoteyAgMTYsIDB4YTM1MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4NzgsMHgwMywweDhlLDB4MDAsMHhkNywweDgyLDB4M2QsMHhmMCwweDBjLDB4N2EsMHgwMywweDZhLDB4MDIgfSB9LAoteyAgMTYsIDB4YTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZjEsMHgwMCwweGJhLDB4ZDggfSB9LAoteyAgMTYsIDB4YTM3MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTQsMHgxMiwweGY4LDB4MDAsMHhiZSwweDgwLDB4MGUsMHgxMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTM4MCwgMCwgezB4M2UsMHgwMCwweDVmLDB4ODAsMHgwMywweGUwLDB4MDgsMHhmOCwweDA0LDB4M2MsMHgwMCwweDBmLDB4ODAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YTM5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDIwLDB4ZmYsMHg4MCwweDNmLDB4ZjAgfSB9LAoteyAgMTYsIDB4YTNhMCwgMCwgezB4MGYsMHhmOCwweDAzLDB4ZDIsMHgwMCwweGVmLDB4ODQsMHhiMywweDYxLDB4MGMsMHhiOSwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAgfSB9LAoteyAgMTYsIDB4YTNiMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHgxMywweDIyLDB4MTEsMHhjZCwweDkwLDB4M2YsMHg2MCwweDBjLDB4ZTgsMHgwMywweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTNjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4ZjUsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YTNkMCwgMCwgezB4MGIsMHgwMCwweDAyLDB4ZDQsMHgwNCwweDg0LDB4MjAsMHgyMywweDQwLDB4MDgsMHg1YSwweDAyLDB4ZGMsMHgwMCwweGI0LDB4MDAgfSB9LAoteyAgMTYsIDB4YTNlMCwgMCwgezB4MjEsMHgwMCwweDI4LDB4YzIsMHgwMiwweDFlLDB4MDQsMHg4NiwweDA0LDB4MmQsMHg4OCwweDA4LDB4ZDAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTNmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg5YywweDAwLDB4YjUsMHgwMCwweDJkLDB4NDAgfSB9LAoteyAgMTYsIDB4YTQwMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZjQsMHgyMCwweGE3LDB4MDQsMHgyMSwweGMwLDB4MGEsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTQxMCwgMCwgezB4MjEsMHhjMCwweDA4LDB4NzAsMHgxMiwweDAwLDB4MDAsMHg4NSwweDAwLDB4MmQsMHg0MCwweDg4LDB4NjgsMHgwYSwweDA0LDB4MDAgfSB9LAoteyAgMTYsIDB4YTQyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MTQsMHhjYywweDAwLDB4YTEsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YTQzMCwgMCwgezB4MWIsMHgwOCwweDA2LDB4YzQsMHgyMCwweDgwLDB4MDAsMHgyMCwweDk4LDB4MWEsMHgxMCwweDAyLDB4Y2MsMHgwMCwweGIxLDB4MDggfSB9LAoteyAgMTYsIDB4YTQ0MCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDBjLDB4MDEsMHg4MiwweGMwLDB4MmMsMHhhYywweDI4LDB4OTAsMHgyMiwweDE4LDB4MDQgfSB9LAoteyAgMTYsIDB4YTQ1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4YjMsMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YTQ2MCwgMCwgezB4MGYsMHhiYSwweDAzLDB4ZTUsMHgwMiwweGU5LDB4MDQsMHgzMiwweDkwLDB4YWUsMHhiMCwweDAzLDB4ZmMsMHgxMCwweGZiLDB4NDAgfSB9LAoteyAgMTYsIDB4YTQ3MCwgMCwgezB4YjIsMHgwMCwweDBjLDB4ODAsMHgwYiwweDJjLDB4MDIsMHg4MiwweDE4LDB4M2YsMHhhMCwweDBjLDB4ZDAsMHgwMywweDJlLDB4MDQgfSB9LAoteyAgMTYsIDB4YTQ4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHhlYywweDA0LDB4ZmIsMHgwMSwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YTQ5MCwgMCwgezB4MGYsMHhiNiwweDQzLDB4ZTQsMHgwMCwweGY4LDB4MDAsMHgzZSwweDgwLDB4MDEsMHg5MCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4ODEgfSB9LAoteyAgMTYsIDB4YTRhMCwgMCwgezB4M2UsMHhkMCwweDBkLDB4YjQsMHg1MywweGUwLDB4MDAsMHhmOSwweDQwLDB4M2UsMHg0MCwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTRiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhkYywweDAyLDB4Y2QsMHg4MCwweDMzLDB4NjAgfSB9LAoteyAgMTYsIDB4YTRjMCwgMCwgezB4MmMsMHhkYSwweDAzLDB4ZmMsMHgwMCwweGVjLDB4MDAsMHgzMywweDQwLDB4MGYsMHhmMiwweDAzLDB4N2MsMHgwNCwweGZlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTRkMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4YzgsMHgwMywweDNjLDB4MDAsMHhjZSwweDAwLDB4MzEsMHg4MCwweDBjLDB4ZDEsMHgwMywweDI0LDB4MDQgfSB9LAoteyAgMTYsIDB4YTRlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkxLDB4MDQsMHg2YywweDAwLDB4MDksMHgwMCwweDJhLDB4NjQgfSB9LAoteyAgMTYsIDB4YTRmMCwgMCwgezB4MDgsMHg4ZSwweDAyLDB4YzIsMHgxMCwweGEwLDB4MTAsMHgzZSwweDEwLDB4MGIsMHg5OCwweDAyLDB4ZWMsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTUwMCwgMCwgezB4MDIsMHhkOCwweDA4LDB4YmUsMHgyMiwweDIwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHg1MCwweDA4LDB4YTAsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YTUxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4MGIsMHgyMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YTUyMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4ZTUsMHg0MiwweGFiLDB4MDQsMHgyMiwweDE4LDB4MGIsMHhiMCwweDAyLDB4NmMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTUzMCwgMCwgezB4MjAsMHgwNCwweDA4LDB4MDEsMHgwMiwweDAwLDB4MDQsMHhhOCwweDQwLDB4MjIsMHgxMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDA4LDB4ODMsMHgwMCwweDI4LDB4NDAgfSB9LAoteyAgMTYsIDB4YTU1MCwgMCwgezB4MDgsMHgwNCwweDAyLDB4YzQsMHgwMiwweGE4LDB4MDAsMHgyYywweDAwLDB4MGIsMHgxMiwweDAyLDB4Y2MsMHgwMCwweGIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU2MCwgMCwgezB4MjAsMHhjMCwweDQwLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4YiwweDAwLDB4YTgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDAyLDB4MTEgfSB9LAoteyAgMTYsIDB4YTU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MGQsMHg2YywweDAwLDB4YzksMHgwMCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4YTU4MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMiwweGViLDB4MDAsMHgzMiwweDQwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU5MCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4ODAsMHhjOCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDMgfSB9LAoteyAgMTYsIDB4YTVhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YTViMCwgMCwgezB4MGYsMHhjMiwweDEzLDB4ZjAsMHgwMCwweGY0LDB4MDAsMHgzZiwweDAwLDB4NGYsMHhkNCwweDAzLDB4ZmMsMHgwMCwweGY1LDB4MDAgfSB9LAoteyAgMTYsIDB4YTVjMCwgMCwgezB4M2YsMHhjMCwweDhmLDB4ZjAsMHgwMywweGZjLDB4NDAsMHhmZiwweDAwLDB4MzcsMHhjMCwweDJmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YTVkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweDAwLDB4Y2MsMHgwMCwweDMzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTVlMCwgMCwgezB4MGUsMHhkMCwweDBiLDB4MzMsMHgwMCwweGNjLDB4MDAsMHgzMywweGUwLDB4MGYsMHhjMCwweDgzLDB4N2MsMHgwMCwweGNmLDB4MjAgfSB9LAoteyAgMTYsIDB4YTVmMCwgMCwgezB4N2IsMHgwOSwweDhjLDB4ZjgsMHgwMywweGZlLDB4NTAsMHhjZiwweDM4LDB4M2YsMHhlMSwweDBkLDB4YzIsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTYwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlMiwweDAwLDB4OTgsMHgwOCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4YTYxMCwgMCwgezB4MDgsMHg5OCwweDAyLDB4MjAsMHgwMCwweDg4LDB4ZDAsMHgyMiwweGUwLDB4MGUsMHhiNCwweDIyLDB4N2QsMHgxOSwweDlmLDB4NjkgfSB9LAoteyAgMTYsIDB4YTYyMCwgMCwgezB4MmUsMHg5MCwweDA4LDB4MzAsMHg5MiwweDI4LDB4ODEsMHhkYiwweDY0LDB4MmUsMHhlMSwweDg4LDB4MTYsMHhhMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTYzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDAwLDB4OTAsMHgyNCwweDIwLDB4MDEgfSB9LAoteyAgMTYsIDB4YTY0MCwgMCwgezB4MDgsMHgxMCwweDE2LDB4MDAsMHg4MiwweDgzLDB4MDEsMHgyOCwweGMxLDB4MGIsMHgwMiwweDgyLDB4MGMsMHhlMCwweGEzLDB4MTAgfSB9LAoteyAgMTYsIDB4YTY1MCwgMCwgezB4MjgsMHgwZSwweDFiLDB4OTIsMHgwMiwweDg0LDB4ODQsMHg5MywweDIwLDB4MmUsMHhjMCwweDA4LDB4MzEsMHgwMiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTY2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhOCwweDEwLDB4OTgsMHgwMCwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4YTY3MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MDAsMHg2MCwweDhhLDB4MTAsMHgyYSwweGMwLDB4MGEsMHgyMCwweDAyLDB4NmMsMHgxOCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTY4MCwgMCwgezB4NmUsMHg2MCwweDJiLDB4OTAsMHgwMiwweDQ2LDB4MjAsMHg4YiwweDAwLDB4MmUsMHhjMiwweDA4LDB4YjEsMHg4MiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTY5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNCwweDAyLDB4Y2IsMHgwMCwweGIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YTZhMCwgMCwgezB4MmMsMHg5MiwweDAzLDB4MjcsMHgwMCwweDg4LDB4MDAsMHhiYSwweGMwLDB4MGYsMHg4OCwweDAzLDB4MmMsMHgwMCwweGViLDB4MDQgfSB9LAoteyAgMTYsIDB4YTZiMCwgMCwgezB4M2EsMHhhMCwweGNmLDB4MmMsMHhhMywweGVkLDB4MDAsMHg5YiwweDAwLDB4M2MsMHhmMCwweDJkLDB4OGMsMHgzMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTZjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNCwweDA0LDB4ZWYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTZkMCwgMCwgezB4MGQsMHg1MSwweDAzLDB4ZjAsMHgwMCwweGYxLDB4ODEsMHgzNywweGMwLDB4MGUsMHhmNCwweDAzLDB4OWMsMHgxMCwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTZlMCwgMCwgezB4M2QsMHg4MCwweDBjLDB4ZWMsMHgwNywweGI4LDB4MDgsMHhmZiwweDAyLDB4MWYsMHhjNCwweDBmLDB4YzgsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTZmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg5ZSwweDAwLDB4YzMsMHgwMCwweDM4LDB4NDAgfSB9LAoteyAgMTYsIDB4YTcwMCwgMCwgezB4MGMsMHg5MiwweDAzLDB4YTQsMHg4MCwweGZiLDB4MjAsMHgzYSwweGMwLDB4MGQsMHg5NCwweDAzLDB4MmMsMHg0MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTcxMCwgMCwgezB4M2UsMHgwMSwweDBmLDB4ODAsMHgwMywweGU1LDB4MDAsMHhlYiwweDAwLDB4M2EsMHhjMCwweDBkLDB4ODQsMHgwYiwweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTcyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDA4LDB4OGIsMHgwMiwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YTczMCwgMCwgezB4MDgsMHg5MiwweDAzLDB4MjEsMHgwMCwweDhiLDB4NDgsMHgyMiwweGMwLDB4MGIsMHhiNywweDAyLDB4M2QsMHg0MCwweDNmLDB4MDEgfSB9LAoteyAgMTYsIDB4YTc0MCwgMCwgezB4MjIsMHg3NCwweDBiLDB4OTAsMHgwMiwweDI4LDB4MDQsMHhiZiwweDAwLDB4YjIsMHhjMCwweDBiLDB4ODUsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTc1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0MCwweDAxLDB4ODAsMHgwMCwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTc2MCwgMCwgezB4MDgsMHgyYywweDEyLDB4ODgsMHg0MCwweGIwLDB4NDAsMHgwOCwweGMwLDB4MGIsMHgxOCwweDAyLDB4MGUsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTc3MCwgMCwgezB4MjgsMHgyMCwweDExLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDA5LDB4MDAsMHgwNiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTc4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxMiwweDAwLDB4ODQsMHg4MCwweDIxLDB4YTAgfSB9LAoteyAgMTYsIDB4YTc5MCwgMCwgezB4MjgsMHg2OCwweDEyLDB4M2EsMHgwMCwweDg0LDB4ODAsMHgyNSwweGUwLDB4OGIsMHg1OCwweDAyLDB4MWUsMHg0MCwweGI3LDB4ODIgfSB9LAoteyAgMTYsIDB4YTdhMCwgMCwgezB4MjEsMHhhNiwweDBiLDB4NzgsMHgwMiwweDFhLDB4MDAsMHhiNywweDgwLDB4MjEsMHgyMCwweDBiLDB4NTgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTdiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YzgsMHgyMSwweDM4LDB4MDkgfSB9LAoteyAgMTYsIDB4YTdjMCwgMCwgezB4MGMsMHgyOCwweDAzLDB4ODAsMHgwMSwweGYxLDB4MDAsMHgzOCwweGMwLDB4MGQsMHg4NSwweDAyLDB4MGMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTdkMCwgMCwgezB4MzgsMHg4NSwweDBmLDB4MTAsMHgwMywweDhjLDB4MDAsMHhlYiwweDEwLDB4M2MsMHhjOCwweDBkLDB4MzAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YTdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHg5OCwweDAwLDB4ZmMsMHgwMSwweDNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YTdmMCwgMCwgezB4MGYsMHg2OCwweDAzLDB4ZDAsMHg0MCwweGZjLDB4MDAsMHgzYiwweGMwLDB4MGQsMHhjMCwweDAzLDB4ZmMsMHgyMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTgwMCwgMCwgezB4M2IsMHhjNSwweDBmLDB4ZjAsMHgwYiwweGI0LDB4NDAsMHhmZiwweDE4LDB4M2YsMHgwMCwweDBmLDB4ZjEsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YTgxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZWIsMHgwMCwweGIwLDB4NDEgfSB9LAoteyAgMTYsIDB4YTgyMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTAsMHgwNCwweGNhLDB4MDQsMHhiMCwweGUwLDB4MGUsMHhiMCwweDAzLDB4ZWMsMHg4MCwweGNiLDB4MjAgfSB9LAoteyAgMTYsIDB4YTgzMCwgMCwgezB4MzIsMHg4MSwweDBjLDB4YTAsMHgwMywweGVlLDB4MDAsMHhkYiwweDAwLDB4M2UsMHgwMCwweDBlLDB4YjAsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTg0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5NCwweDA0LDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4YTg1MCwgMCwgezB4NDgsMHg2MCwweDAyLDB4ZjAsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZmMsMHhhMCwweDgzLDB4MjggfSB9LAoteyAgMTYsIDB4YTg2MCwgMCwgezB4YTMsMHg4MCwweDA4LDB4NjAsMHgwMiwweGRjLDB4MDAsMHg4NywweDIwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTg3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YywweDAyLDB4YTMsMHg4MCwweDIxLDB4NjAgfSB9LAoteyAgMTYsIDB4YTg4MCwgMCwgezB4MDgsMHg2OCwweDAyLDB4ZDIsMHgwMCwweDg3LDB4ODAsMHgyMSwweGUwLDB4MjksMHg3OCwweDAyLDB4ZGUsMHg4MCwweDg3LDB4OTAgfSB9LAoteyAgMTYsIDB4YTg5MCwgMCwgezB4MjEsMHhhMCwweDE5LDB4NDgsMHgwMiwweGZlLDB4MDAsMHg5NywweDgwLDB4MmQsMHhlMCwweDBhLDB4MzgsMHg4MiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YThhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAxLDB4ODMsMHg4MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YThiMCwgMCwgezB4MDgsMHgyMCwweDQyLDB4YzAsMHgzMCwweDgzLDB4NzAsMHhhMCwweGMwLDB4ODksMHgzNCwweDAyLDB4Y2MsMHgwMiwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YThjMCwgMCwgezB4NjAsMHhjMCwweDI5LDB4MDAsMHgwMiwweGNlLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjOCwweDBiLDB4YmMsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YThkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDAwLDB4ZWEsMHhlMiwweDMyLDB4OTAgfSB9LAoteyAgMTYsIDB4YThlMCwgMCwgezB4MmMsMHhlMCwweDAzLDB4ZmIsMHgwMiwweGNlLDB4YzAsMHgzMiwweDgwLDB4MGYsMHhlNCwweDAzLDB4ZTgsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4YThmMCwgMCwgezB4MzMsMHg4OCwweDBkLDB4NjQsMHhjMywweGZhLDB4MDAsMHhkYSwweDAwLDB4M2QsMHg5MCwweDBlLDB4ZTAsMHgwYiwweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTkwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhjMCwweDI0LDB4ZjgsMHgwOCwweDNlLDB4MTIgfSB9LAoteyAgMTYsIDB4YTkxMCwgMCwgezB4MGYsMHhjMCwweDAzLDB4ZTAsMHg0OCwweGYwLDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDkzLDB4YzAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTkyMCwgMCwgezB4N2UsMHgwMSwweDBlLDB4ODAsMHhjMiwweGUwLDB4NDAsMHhmOCwweDAwLDB4N2UsMHgwMCwweDhmLDB4ODQsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTkzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNSwweDAwLDB4YzEsMHgwMSwweDMyLDB4NDggfSB9LAoteyAgMTYsIDB4YTk0MCwgMCwgezB4MGMsMHg5OCwweDAzLDB4ZTYsMHg0MCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4NjYsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTk1MCwgMCwgezB4MTgsMHg2MSwweDBjLDB4OTAsMHgwMywweDY0LDB4MjAsMHhmOSwweDA1LDB4M2UsMHg0MCwweDBjLDB4OTAsMHg4MywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTk2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NiwweDIwLDB4ODksMHgwMCwweDIwLDB4NTIgfSB9LAoteyAgMTYsIDB4YTk3MCwgMCwgezB4MjgsMHgxMCwweGMyLDB4MjYsMHgwMiwweGE5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjcsMHgwMCwweGE5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTk4MCwgMCwgezB4MjIsMHg3MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDgsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBhLDB4OTAsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTk5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAyLDB4OGQsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4YTlhMCwgMCwgezB4MDgsMHhkMSwweDAyLDB4ODQsMHgyMCwweDg5LDB4MDAsMHgyMiwweDYwLDB4MGIsMHgxMSwweGYyLDB4MjQsMHhiMCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4YTliMCwgMCwgezB4MmEsMHg0NiwweDA4LDB4OTAsMHg0MiwweDY0LDB4MDgsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTIsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YTljMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgxNCwweDgwLDB4ODUsMHgyMCwweDIzLDB4NDggfSB9LAoteyAgMTYsIDB4YTlkMCwgMCwgezB4MDgsMHg1MiwweDAyLDB4ODQsMHgwOCwweDgxLDB4MDAsMHgyMCwweDQwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweGExLDB4MjAgfSB9LAoteyAgMTYsIDB4YTllMCwgMCwgezB4MjgsMHg0OSwweDI4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHgzMSwweDIwLDB4MmUsMHg0MCwweDA4LDB4MzIsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHg1MCwweGIyLDB4MTQgfSB9LAoteyAgMTYsIDB4YWEwMCwgMCwgezB4MGMsMHhjMCwweDAzLDB4YTEsMHg0MCwweGM4LDB4MDAsMHhiMiwweDAwLDB4MDcsMHg4NSwweDAzLDB4MjEsMHg0MCwweGM4LDB4NTAgfSB9LAoteyAgMTYsIDB4YWExMCwgMCwgezB4M2EsMHgxNSwweDBjLDB4ODUsMHgwMywweDYxLDB4NDAsMHhmOCwweDUxLDB4M2UsMHgwMCwweDJjLDB4ODUsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YWEyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhjNCwweDQ4LDB4ZjksMHgxMCwweDNlLDB4NDQgfSB9LAoteyAgMTYsIDB4YWEzMCwgMCwgezB4NGYsMHg5MSwweDAzLDB4NzQsMHgwMCwweGY1LDB4NDQsMHgzZSwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4YWE0MCwgMCwgezB4MzcsMHg0NCwweDBmLDB4ZDAsMHgwMywweGQ0LDB4MDAsMHhmOSwweDEwLDB4M2YsMHhjMCwweDBmLDB4ZDEsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YWE1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNiwweGEwLDB4ZGQsMHg4YywweDMzLDB4NzggfSB9LAoteyAgMTYsIDB4YWE2MCwgMCwgezB4MGUsMHhkYSwweDAzLDB4MzUsMHgwMCwweGNkLDB4YTAsMHgzMywweDQwLDB4MGQsMHhmOCwweDBiLDB4MzYsMHg4MSwweGU5LDB4ODAgfSB9LAoteyAgMTYsIDB4YWE3MCwgMCwgezB4MzMsMHg3MCwweDBjLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweGMwLDB4M2UsMHhjMCwweDBmLDB4ZGMsMHgwMywweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4YWE4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDA0LDB4YjgsMHg0MCwweDIwLDB4M2MgfSB9LAoteyAgMTYsIDB4YWE5MCwgMCwgezB4MGMsMHg4NSwweDAyLDB4MDIsMHg4NCwweDhhLDB4NDAsMHgyMiwweDAwLDB4MDgsMHg4ZiwweDgyLDB4MjMsMHgwMCwweGI4LDB4ZTggfSB9LAoteyAgMTYsIDB4YWFhMCwgMCwgezB4MjIsMHgyMCwweDA4LDB4ODgsMHgwMiwweGUyLDB4MDAsMHhiOCwweGQwLDB4MmUsMHgwMCwweDBiLDB4OGMsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4YWFiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4OTEsMHgwMCwweDYwLDB4NDggfSB9LAoteyAgMTYsIDB4YWFjMCwgMCwgezB4NGIsMHgxMCwweDAyLDB4MDQsMHg4YSwweDgxLDB4NDAsMHg2MCwweDQwLDB4NDksMHgxMCwweDAyLDB4OGQsMHhhMCwweGExLDB4NDEgfSB9LAoteyAgMTYsIDB4YWFkMCwgMCwgezB4MjAsMHg1MCwweDA5LDB4MTIsMHgyMiwweGM0LDB4ODAsMHhiMSwweDIwLDB4MmMsMHg0MCwweDRiLDB4M2UsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4YWFlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDA4LDB4YjksMHgwNCwweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4YWFmMCwgMCwgezB4NDgsMHhiMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHg4MiwweDQwLDB4MDgsMHg5MCwweGE2LDB4YTQsMHgwMCwweGI5LDB4MDQgfSB9LAoteyAgMTYsIDB4YWIwMCwgMCwgezB4MjIsMHg1NCwweDI5LDB4OTUsMHgwMiwweGU1LDB4NDAsMHhiOSwweDAwLDB4NmUsMHg0MCwweDBiLDB4OTIsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4YWIxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4OTEsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YWIyMCwgMCwgezB4MGYsMHg5MCwweDA5LDB4MjQsMHgwMCwweDg5LDB4OTAsMHgzMiwweDQwLDB4MGQsMHg5NCwweDAzLDB4YTQsMHgwMCwweGU5LDB4MDIgfSB9LAoteyAgMTYsIDB4YWIzMCwgMCwgezB4NzIsMHg2MCwweDBkLDB4OTQsMHgwMywweGU0LDB4MDEsMHhmOSwweDAxLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4YWI0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDQwLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YWI1MCwgMCwgezB4NGYsMHg5MCwweDAzLDB4ZTcsMHgxMCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDEzLDB4NjQsMHgwMCwweGYxLDB4MDAgfSB9LAoteyAgMTYsIDB4YWI2MCwgMCwgezB4YmUsMHg0MCwweDBlLDB4OTAsMHgwMywweGU2LDB4MDgsMHhmOSwweDAxLDB4M2UsMHg2NCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWI3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDggfSB9LAoteyAgMTYsIDB4YWI4MCwgMCwgezB4MGMsMHgwMSwweDBiLDB4MjAsMHg0MCwweGM4LDB4NDAsMHgzMiwweDAwLDB4MGUsMHg4NCwweDgzLDB4MjAsMHgwMCwweGY4LDB4MDQgfSB9LAoteyAgMTYsIDB4YWI5MCwgMCwgezB4M2UsMHgwNCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgxMCwweDBmLDB4ODgsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YWJhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzOCwweDAwLDB4M2UsMHgwNCwweDIzLDB4ODAgfSB9LAoteyAgMTYsIDB4YWJiMCwgMCwgezB4MDgsMHhlYywweDEyLDB4MzksMHg0NCwweGE2LDB4MDAsMHgyOCwweDgxLDB4MDgsMHhlMCwweDAwLDB4MzgsMHgwOCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWJjMCwgMCwgezB4M2YsMHg4MCwweDBiLDB4YTAsMHgwMiwweGE4LDB4MDAsMHg4YSwweDAyLDB4MmUsMHg4MCwweDBiLDB4ZTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWJkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0OCwweDAwLDB4MzEsMHgwMCwweDI0LDB4ZDAgfSB9LAoteyAgMTYsIDB4YWJlMCwgMCwgezB4MDgsMHgzZSwweDEyLDB4YWUsMHgwOCwweDgxLDB4YTAsMHgyYywweGMwLDB4MGEsMHgzOCwweDAwLDB4NGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWJmMCwgMCwgezB4NmUsMHhjMCwweDBhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhhMywweDAwLDB4NmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWMwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxOCwweDAwLDB4YjUsMHgxMCwweDI1LDB4YzAgfSB9LAoteyAgMTYsIDB4YWMxMCwgMCwgezB4MjgsMHg2MCwweDEyLDB4OTAsMHgxMCwweGE1LDB4MDgsMHgyZCwweGMyLDB4MDgsMHg2NCwweDIyLDB4NTgsMHgxOCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4YWMyMCwgMCwgezB4MmQsMHg4MCwweDBiLDB4NzksMHgwMiwweGJlLDB4YzAsMHg4NywweDAxLDB4NmQsMHhjMCwweDBiLDB4NjAsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWMzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjUsMHg4NCwweDM1LDB4MjAgfSB9LAoteyAgMTYsIDB4YWM0MCwgMCwgezB4OGMsMHgxOCwweDAyLDB4OTIsMHgxMCwweGM1LDB4ODAsMHgzZCwweDYwLDB4MGUsMHhjOCwweDBiLDB4NWEsMHgwOCwweDc3LDB4ZjMgfSB9LAoteyAgMTYsIDB4YWM1MCwgMCwgezB4M2QsMHhhMCwweDBmLDB4ZjgsMHgwMywweDFlLDB4YjAsMHhlNywweDg1LDB4M2QsMHhlMCwweDBmLDB4NzgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4YWM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZjEsMHgwNCwweGJhLDB4MDEgfSB9LAoteyAgMTYsIDB4YWM3MCwgMCwgezB4MGYsMHhhMCwweDQzLDB4NjAsMHgwOSwweGUxLDB4MDAsMHgzOCwweDQwLDB4MGUsMHhhMCwweDAzLDB4YTgsMHgxNCwweGZiLDB4MjAgfSB9LAoteyAgMTYsIDB4YWM4MCwgMCwgezB4M2EsMHg4MCwweDBmLDB4YjQsMHgxYiwweDRjLDB4ODAsMHhmYiwweDI5LDB4M2UsMHhjMCwweDBmLDB4YjAsMHgyMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YWM5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmYSwweDAwLDB4Y2QsMHg4MCwweDNiLDB4ZTAgfSB9LAoteyAgMTYsIDB4YWNhMCwgMCwgezB4NGUsMHhmOCwweDAzLDB4ZjIsMHgwMiwweGQ0LDB4ODEsMHgzYiwweGUwLDB4OGUsMHg5OCwweDA3LDB4M2UsMHg0NCwweGVmLDB4OTEgfSB9LAoteyAgMTYsIDB4YWNiMCwgMCwgezB4M2YsMHhlMCwweDRmLDB4ZmMsMHgwNywweGVlLDB4ZDAsMHhjZiwweDk4LDB4MzMsMHhlNCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWNjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDEsMHg5OCwweDAwLDB4ODUsMHgxMCwweDJkLDB4YzQgfSB9LAoteyAgMTYsIDB4YWNkMCwgMCwgezB4MGQsMHgxMSwweDAyLDB4ZjAsMHgwMCwweDg1LDB4MjAsMHgzMSwweGM0LDB4MGIsMHg3YiwweDAwLDB4MzgsMHg0MCwweGQ3LDB4MTAgfSB9LAoteyAgMTYsIDB4YWNlMCwgMCwgezB4MmQsMHg4MCwweDBiLDB4NzAsMHg2MiwweGZlLDB4ZTEsMHg4NywweDE0LDB4MzksMHhjMCwweDBiLDB4NjAsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YWNmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhiYywweDQwLDB4YTUsMHgwMCwweDI5LDB4NDAgfSB9LAoteyAgMTYsIDB4YWQwMCwgMCwgezB4MGIsMHg1MCwweDgyLDB4ZGMsMHg0MCwweDg0LDB4MDQsMHgyZCwweGMwLDB4MGIsMHgxMCwweDA2LDB4NTgsMHg0NCwweGE3LDB4MTAgfSB9LAoteyAgMTYsIDB4YWQxMCwgMCwgezB4MmQsMHg4MCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHg4NywweDA0LDB4MjEsMHhjMiwweDBiLDB4NTAsMHgwMiwweGMwLDB4MTAgfSB9LAoteyAgMTYsIDB4YWQyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDBhLDB4YTEsMHgwMSwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4YWQzMCwgMCwgezB4ODksMHgxOCwweDAyLDB4YzEsMHgwMCwweGExLDB4MDgsMHgyMCwweGMwLDB4MGIsMHgzNCwweDA2LDB4NDAsMHgwMCwweDkzLDB4MDUgfSB9LAoteyAgMTYsIDB4YWQ0MCwgMCwgezB4MmMsMHgxNCwweDBiLDB4M2MsMHg4NiwweGNlLDB4MTAsMHg4MywweDAxLDB4MjgsMHhmMSwweDBiLDB4MTQsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4YWQ1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZWQsMHgwMCwweDNhLDB4YzAgfSB9LAoteyAgMTYsIDB4YWQ2MCwgMCwgezB4MDcsMHhiYywweDYzLDB4ZWQsMHgwMCwweDgxLDB4NDAsMHgzZSwweGMwLDB4MGUsMHg4OCwweDAzLDB4NjQsMHgwMCwweGVmLDB4MDAgfSB9LAoteyAgMTYsIDB4YWQ3MCwgMCwgezB4N2UsMHg1MCwweDBmLDB4ZjAsMHgwMiwweGZkLDB4NDIsMHhjZiwweDAwLDB4NzIsMHhjMCwweDFmLDB4YjQsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YWQ4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlOCwweDAwLDB4OTksMHgwMCwweDNlLDB4ZTAgfSB9LAoteyAgMTYsIDB4YWQ5MCwgMCwgezB4NGYsMHhiNCwweDgzLDB4ZWQsMHg5MCwweDA5LDB4NDAsMHgzZSwweGMwLDB4MGYsMHhhMSwweDgzLDB4YTgsMHgwMSwweGViLDB4MDEgfSB9LAoteyAgMTYsIDB4YWRhMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4YjEsMHgxMywweGVjLDB4MGMsMHhmYiwweDAwLDB4M2EsMHhjMCwweDVmLDB4MjAsMHgyMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWRiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmOCwweDAwLDB4ZmQsMHgwNCwweDNmLDB4YjAgfSB9LAoteyAgMTYsIDB4YWRjMCwgMCwgezB4MGQsMHg2MCwweDAzLDB4M2UsMHgwMCwweGNkLDB4MDAsMHgzMywweGYwLDB4MGYsMHhmMiwweDAxLDB4ZjAsMHgwMCwweGZmLDB4MDMgfSB9LAoteyAgMTYsIDB4YWRkMCwgMCwgezB4M2YsMHgwMywweDBmLDB4ZjAsMHgwMSwweGZjLDB4MDAsMHhmYiwweDAyLDB4MzMsMHhjMiwweDBmLDB4ZjAsMHhlMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4YWRlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YSwweDAwLDB4YjksMHgwMiwweDJlLDB4YTAgfSB9LAoteyAgMTYsIDB4YWRmMCwgMCwgezB4NGEsMHhhYywweDAyLDB4MGUsMHg4MCwweGY5LDB4YzAsMHgzNiwweGUxLDB4MGIsMHhhMCwweDAyLDB4MmEsMHgwOCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4YWUwMCwgMCwgezB4MmUsMHgyMCwweDBlLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhlYiwweDAwLDB4MjIsMHhjMCwweDhiLDB4YjAsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YWUxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyMywweDAwLDB4YTksMHgwMCwweDI4LDB4YzAgfSB9LAoteyAgMTYsIDB4YWUyMCwgMCwgezB4MDksMHhiMiwweDIyLDB4NmMsMHg0MCwweDg5LDB4ODksMHgyYSwweGMwLDB4MGIsMHgxNCwweDA2LDB4MjYsMHgwMCwweGFiLDB4MDIgfSB9LAoteyAgMTYsIDB4YWUzMCwgMCwgezB4NmUsMHhlMCwweDA5LDB4YjAsMHgwNiwweDZjLDB4MDAsMHhiMywweDAyLDB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWU0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwOCwweDAwLDB4YjEsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YWU1MCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHg2NCwweGMwLDB4MGIsMHgzMiwweDBhLDB4MDgsMHgwMCwweDMzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWU2MCwgMCwgezB4NmMsMHg4MCwweDAyLDB4MzAsMHg0NiwweGNjLDB4MTgsMHhhMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MjgsMHgwMiwweDAyLDB4MTEgfSB9LAoteyAgMTYsIDB4YWU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2OCwweDAwLDB4ZTksMHgwMCwweDM4LDB4YzEgfSB9LAoteyAgMTYsIDB4YWU4MCwgMCwgezB4MGQsMHhiMSwweDBiLDB4MmMsMHgwMCwweDg5LDB4MDAsMHgzYSwweGMwLDB4MGIsMHg5MCwweDAzLDB4NjAsMHgwMCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4YWU5MCwgMCwgezB4M2UsMHg4MCwweDBmLDB4ZjAsMHgwMywweGZjLDB4ODAsMHhmZiwweDAwLDB4MzIsMHhjMCwweDhmLDB4ODAsMHgwYiwweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4YWVhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhkOCwweDAwLDB4ZmQsMHgwNCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YWViMCwgMCwgezB4MmYsMHhmMiwweDAzLDB4ZmMsMHgxMSwweGVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDQzLDB4NzAsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YWVjMCwgMCwgezB4M2YsMHgwMCwweDQ2LDB4ZjAsMHgwMywweGZkLDB4MDAsMHhlZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YWVkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHg4MCwweDNkLDB4ZTAgfSB9LAoteyAgMTYsIDB4YWVlMCwgMCwgezB4MGMsMHhmOSwweDEzLDB4ZGUsMHgwMCwweDdmLDB4ODAsMHhiMywweGUwLDB4MGYsMHhmYywweDAzLDB4YmUsMHg0MCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YWVmMCwgMCwgezB4MzMsMHhmMCwweDBmLDB4ZjgsMHgwMywweDdjLDB4MDQsMHhjYywweDgwLDB4MzMsMHhhMCwweDBjLDB4ZjAsMHgwYiwweDMwLDB4MDEgfSB9LAoteyAgMTYsIDB4YWYwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlMCwweDIwLDB4ODgsMHgwMCwweDJlLDB4MjAgfSB9LAoteyAgMTYsIDB4YWYxMCwgMCwgezB4MDgsMHg4MiwweDEyLDB4ZTAsMHg4MCwweGE4LDB4ODEsMHgyMiwweDAyLDB4MGIsMHg4MCwweDAyLDB4MjAsMHg4MCwweGE4LDB4ODAgfSB9LAoteyAgMTYsIDB4YWYyMCwgMCwgezB4MjIsMHgwOCwweDBiLDB4ODAsMHgwMiwweDJjLDB4MDIsMHg4OCwweDA0LDB4YWEsMHgyMCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWYzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlYywweDAwLDB4YTMsMHgwOCwweDJjLDB4ODAgfSB9LAoteyAgMTYsIDB4YWY0MCwgMCwgezB4MDgsMHgzMiwweDAyLDB4YzQsMHgyMCwweGEzLDB4MDAsMHgyOCwweDQwLDB4MGIsMHg5MiwweDAyLDB4ODQsMHgwMCwweGE5LDB4MDEgfSB9LAoteyAgMTYsIDB4YWY1MCwgMCwgezB4MjgsMHhjOCwweDFiLDB4MTIsMHg4MiwweGNjLDB4NDAsMHhhOCwweDAwLDB4MjQsMHhlMCwweDBhLDB4MzAsMHg0MiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4YWY2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhhOCwweDgwLDB4YTgsMHgwMiwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4YWY3MCwgMCwgezB4NjgsMHg4MCwweDEwLDB4YzgsMHgwMCwweGI4LDB4NDAsMHgyYSwweDkwLDB4MGIsMHhhMCwweDAwLDB4MjgsMHgwMCwweGFhLDB4MDggfSB9LAoteyAgMTYsIDB4YWY4MCwgMCwgezB4MmEsMHgwMiwweDAzLDB4MjAsMHgwMiwweDhjLDB4MDAsMHhhOCwweDg4LDB4MmUsMHgyMCwweDBhLDB4YjAsMHgwMiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWY5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlOCwweDA0LDB4ZmEsMHgwMCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4YWZhMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGViLDB4MDAsMHgzYSwweGMwLDB4MGYsMHgyMCwweDUzLDB4YTgsMHgwMCwweGUzLDB4NDAgfSB9LAoteyAgMTYsIDB4YWZiMCwgMCwgezB4MmEsMHg0MCwweDBmLDB4YTAsMHgwMywweDZjLDB4MDAsMHhhOCwweDgwLDB4MzQsMHgyMCwweDFlLDB4YjAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWZjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNCwweDAwLDB4OWQsMHg5MSwweDNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YWZkMCwgMCwgezB4MGYsMHhkYSwweDIzLDB4ZjQsMHgwMCwweGNjLDB4MjAsMHgzNywweDAwLDB4MDcsMHhkMCwweDEzLDB4NzQsMHgwMCwweGJjLDB4MDAgfSB9LAoteyAgMTYsIDB4YWZlMCwgMCwgezB4YjcsMHg4MCwweDBiLDB4ZDAsMHg0MywweDdjLDB4MDAsMHhkYywweDA0LDB4M2IsMHgwMCwweDZkLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWZmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOCwweDAwLDB4ZmEsMHg4MCwweDNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjAwMCwgMCwgezB4MmMsMHhhMCwweDBiLDB4MjAsMHgwMiwweGNiLDB4NjIsMHgzZSwweDUwLDB4MGUsMHg4OCwweDAzLDB4MjAsMHgwMCwweGQ5LDB4MTAgfSB9LAoteyAgMTYsIDB4YjAxMCwgMCwgezB4M2UsMHg3MCwweDhjLDB4ODAsMHgzMywweGVjLDB4ODAsMHhkOCwweDQwLDB4M2EsMHgwMiwweDBkLDB4YjAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjAyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDEsMHgwYywweDAwLDB4MzksMHg4MCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YjAzMCwgMCwgezB4MGMsMHg5ZCwweDgyLDB4MmMsMHgxMCwweGQwLDB4NDAsMHgyZSwweGEwLDB4MDgsMHhiOCwweDAzLDB4NGUsMHgwMiwweDhhLDB4NDAgfSB9LAoteyAgMTYsIDB4YjA0MCwgMCwgezB4MGUsMHhhMCwweDBkLDB4YjAsMHgwMywweDNkLDB4MDAsMHhkMCwweDkwLDB4MzYsMHgxMCwweDBiLDB4ZjAsMHgwMiwweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4YjA1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjEsMHgwMCwweDYwLDB4YzAgfSB9LAoteyAgMTYsIDB4YjA2MCwgMCwgezB4OGEsMHgxOCwweDAyLDB4OGMsMHgwOCwweDgwLDB4NDAsMHgwYywweGEwLDB4MDIsMHgzMCwweDAyLDB4Y2UsMHgwMCwweDgyLDB4NDggfSB9LAoteyAgMTYsIDB4YjA3MCwgMCwgezB4MmMsMHg4MCwweDJiLDB4MzAsMHgwNiwweDhjLDB4MDAsMHg4MSwweDAyLDB4MjAsMHg5MCwweDA5LDB4YjAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjA4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxMiwweDAwLDB4YjYsMHg5MCwweGEzLDB4MzAgfSB9LAoteyAgMTYsIDB4YjA5MCwgMCwgezB4MDgsMHhlOCwweDIyLDB4YjIsMHgxNCwweDg3LDB4ODAsMHgyZCwweDYwLDB4MDgsMHg0OSwweDEyLDB4MTIsMHg2MSwweDk1LDB4OTAgfSB9LAoteyAgMTYsIDB4YjBhMCwgMCwgezB4MmQsMHg2MSwweDBhLDB4NDgsMHgxNiwweDFlLDB4ODAsMHg5NSwweDgwLDB4MjUsMHgyMCwweDBiLDB4NzgsMHgwMiwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjBiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjEsMHgwMCwweDI4LDB4OGMgfSB9LAoteyAgMTYsIDB4YjBjMCwgMCwgezB4OGUsMHgxMCwweDAzLDB4ODQsMHg4MCwweDgwLDB4MDAsMHgyYywweDAyLDB4MGEsMHg5YSwweDAyLDB4ZTQsMHgwMCwweGQwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjBkMCwgMCwgezB4M2UsMHg4MCwweDBiLDB4OTEsMHgwMywweDhlLDB4ODAsMHhjMiwweDA4LDB4MzgsMHg4MCwweDBkLDB4YjAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YjBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiMCwweDAwLDB4ZjYsMHgwMCwweDNmLDB4NDQgfSB9LAoteyAgMTYsIDB4YjBmMCwgMCwgezB4MGYsMHgyMSwweDEzLDB4NzgsMHgwMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhlMCwweDAzLDB4NzgsMHgwMCwweGVmLDB4MDQgfSB9LAoteyAgMTYsIDB4YjEwMCwgMCwgezB4M2YsMHg0MCwweDhkLDB4ZTgsMHgwMywweGRjLDB4MDQsMHhmNiwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHg4MywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YjExMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlOCwweDAwLDB4ZTgsMHg4MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YjEyMCwgMCwgezB4MGYsMHg4OCwweDBiLDB4MjgsMHgwMCwweDc4LDB4MDIsMHgzZSwweDgwLDB4MGUsMHgyOCwweDAzLDB4MjgsMHgwMCwweGNhLDB4ODAgfSB9LAoteyAgMTYsIDB4YjEzMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDAsMHhjOSwweDgwLDB4MzIsMHg4MCwweDBmLDB4YjAsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjE0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg4YywweDAwLDB4OGYsMHgwMCwweGExLDB4ODAgfSB9LAoteyAgMTYsIDB4YjE1MCwgMCwgezB4MGIsMHg3MCwweDQyLDB4MTQsMHgwMCwweGI3LDB4MDAsMHgyZCwweDQxLDB4MGIsMHg1MCwweDQyLDB4MTQsMHgwMCwweGE1LDB4MDAgfSB9LAoteyAgMTYsIDB4YjE2MCwgMCwgezB4YTEsMHhjMCwweDBiLDB4NTAsMHgwMiwweGZjLDB4ODAsMHhhNSwweDAwLDB4MjEsMHgwMCwweDBiLDB4ZjIsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YjE3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHhiYSwweDAwLDB4YTQsMHg4MCwweDI5LDB4MzAgfSB9LAoteyAgMTYsIDB4YjE4MCwgMCwgezB4NGIsMHg0OCwweDA2LDB4NTIsMHgwOCwweGI0LDB4ODAsMHgyZCwweDIwLDB4MGIsMHg0OCwweDQyLDB4MzIsMHgwMCwweDg0LDB4ODAgfSB9LAoteyAgMTYsIDB4YjE5MCwgMCwgezB4MjEsMHgyMCwweDBiLDB4NDgsMHgxMiwweGRlLDB4NDAsMHg4NiwweDgxLDB4MjksMHhhMCwweDBiLDB4NzgsMHgwYSwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjFhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4ODMsMHgwNSwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjFiMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4NmMsMHgxMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzNiwweDRhLDB4MGQsMHgwZCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjFjMCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzQsMHg4MiwweGNjLDB4MDIsMHhhMiwweDAwLDB4MjgsMHgwMCwweDBiLDB4MzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YjFkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDIwLDB4ZWEsMHg0MCwweDMwLDB4YTAgfSB9LAoteyAgMTYsIDB4YjFlMCwgMCwgezB4MDcsMHhhMCwweDQzLDB4NjksMHg0MCwweGZhLDB4MDAsMHgzYywweDgwLDB4MGYsMHhhMCwweDAzLDB4MDgsMHg0MCwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjFmMCwgMCwgezB4MzAsMHhhMCwweDBmLDB4YTQsMHgwMywweGU4LDB4MDAsMHhjZSwweDAwLDB4M2IsMHg5OCwweDBmLDB4YTAsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjIwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhkMiwweDAwLDB4ZmMsMHgwOCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjIxMCwgMCwgezB4MGIsMHhjMiwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4YjIyMCwgMCwgezB4M2YsMHgwNCwweDBmLDB4YzAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4YjYsMHgwMiwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YjIzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NjggfSB9LAoteyAgMTYsIDB4YjI0MCwgMCwgezB4NGMsMHg5MSwweDAxLDB4ZTQsMHgwOCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MmMsMHg5MiwweDAzLDB4ZTQsMHgwMiwweGM5LDB4YTAgfSB9LAoteyAgMTYsIDB4YjI1MCwgMCwgezB4M2UsMHg3MCwweDBlLDB4OTAsMHgwMywweGM2LDB4NDIsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YjI2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg4NiwweDBlLDB4NjAgfSB9LAoteyAgMTYsIDB4YjI3MCwgMCwgezB4MDgsMHg5OCwweDAyLDB4ZTQsMHgwOCwweDg5LDB4MTAsMHgyZSwweDYwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MGMgfSB9LAoteyAgMTYsIDB4YjI4MCwgMCwgezB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMiwweGU2LDB4ODgsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGEwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjI5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4OWQsMHgxMCwweDJmLDB4NDAgfSB9LAoteyAgMTYsIDB4YjJhMCwgMCwgezB4MjgsMHhkMCwweDA2LDB4ZjQsMHgwMiwweGFkLDB4MDAsMHgyZiwweDYwLDB4MDgsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDAgfSB9LAoteyAgMTYsIDB4YjJiMCwgMCwgezB4MmYsMHg0MCwweDBhLDB4ZDAsMHgwMiwweGU0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg2MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjJjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgzNCwweDAwLDB4ODUsMHgwMCwweDJkLDB4NDAgfSB9LAoteyAgMTYsIDB4YjJkMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZDQsMHgwMCwweGE1LDB4MDIsMHgyZCwweDQwLDB4MDgsMHg1MCwweDAwLDB4ZDQsMHgwMCwweDg1LDB4MDAgfSB9LAoteyAgMTYsIDB4YjJlMCwgMCwgezB4MmQsMHg0MCwweDA4LDB4NTQsMHgwMiwweGM0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg2MCwweDBiLDB4MTQsMHgwMiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MiwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjMwMCwgMCwgezB4MGMsMHgwNSwweDAzLDB4ZTEsMHg0MCwweGU4LDB4MDQsMHgzZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4ZTEsMHg0MCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjMxMCwgMCwgezB4M2UsMHgxNCwweDBlLDB4YzAsMHgwMywweGUwLDB4MDAsMHhjMCwweDAyLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgyMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YjMyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDAwLDB4ZjksMHgwMSwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YjMzMCwgMCwgezB4NGYsMHg5MCwweDEzLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgxMCwweGYxLDB4MDAgfSB9LAoteyAgMTYsIDB4YjM0MCwgMCwgezB4MWUsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4ZTAsMHhmZCwweDI4LDB4M2YsMHg0MCwweDBmLDB4OTQsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YjM1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YjM2MCwgMCwgezB4NGQsMHg1MCwweDAyLDB4ZTQsMHgwMCwweDk1LDB4MDQsMHgzMywweDQwLDB4MjgsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4YjM3MCwgMCwgezB4MzMsMHg0MCwweDBmLDB4OTEsMHgwMywweDM0LDB4MDAsMHhjZCwweDQwLDB4MzMsMHg0MCwweDBmLDB4OTgsMHg4MSwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjM4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDEwLDB4YjgsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjM5MCwgMCwgezB4MGIsMHg4MCwweDAyLDB4ZTAsMHgxMCwweGI4LDB4MDAsMHgyMiwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjNhMCwgMCwgezB4MjIsMHgwMCwweDBiLDB4ODgsMHgwMywweGMyLDB4ODAsMHg4OCwweDgwLDB4MjIsMHgwMCwweDBiLDB4OGMsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YjNiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YjNjMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGJiLDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAyLDB4YzQsMHgwMSwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjNkMCwgMCwgezB4MjAsMHg0MCwweDFiLDB4OTAsMHgwMiwweDA0LDB4MjIsMHg4OSwweDAwLDB4MjAsMHg2MCwweDBiLDB4MTIsMHg4MiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjNlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDQ0LDB4YjksMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YjNmMCwgMCwgezB4NGIsMHg5MCwweDAyLDB4ZTQsMHgxMCwweGI5LDB4MDIsMHgwMiwweDQwLDB4MDgsMHg5MSwweDQyLDB4ZTQsMHgwMCwweGI5LDB4ODAgfSB9LAoteyAgMTYsIDB4YjQwMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTIsMHgwMiwweGM0LDB4MDAsMHg5OSwweDQwLDB4MjIsMHg0MCwweDRiLDB4OTAsMHgxMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4YjQxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4YjksMHgwMSwweDNlLDB4NTggfSB9LAoteyAgMTYsIDB4YjQyMCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGQxLDB4MDAsMHgzMiwweDYwLDB4MGMsMHg5OCwweDAyLDB4ZTYsMHg0MCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjQzMCwgMCwgezB4YjIsMHg0MCwweDBmLDB4MTgsMHgwMywweDI0LDB4MDAsMHhjOSwweDgwLDB4MzIsMHg1MCwweDBmLDB4OTAsMHgyMywweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4YjQ0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDIgfSB9LAoteyAgMTYsIDB4YjQ1MCwgMCwgezB4MGIsMHg5MCwweDAzLDB4ZTcsMHgwOCwweGY5LDB4MDAsMHhiZSwweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTgsMHgwMywweGE0LDB4MDAsMHhlOSwweGEwLDB4YmUsMHg0MCwweDBmLDB4MTAsMHgwYiwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMSwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ4MCwgMCwgezB4MGYsMHg4MCwweDhiLDB4MjAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDAxLDB4MGYsMHg4MSwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDggfSB9LAoteyAgMTYsIDB4YjQ5MCwgMCwgezB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAsMHhkOCwweDQwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgxMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjRhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4OGEsMHg4MCwweDJmLDB4OTEgfSB9LAoteyAgMTYsIDB4YjRiMCwgMCwgezB4MGIsMHhlZSwweDAyLDB4MjgsMHgwMSwweGJlLDB4MDAsMHgyMCwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZWEsMHg4MCwweGI2LDB4NDggfSB9LAoteyAgMTYsIDB4YjRjMCwgMCwgezB4MjIsMHg4MCwweDBkLDB4YTAsMHgwMiwweGZhLDB4MDIsMHg4NiwweDQxLDB4YTMsMHhhNiwweDBiLDB4YTAsMHgwMywweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjRkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHg4MCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YjRlMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MGMsMHgxMCwweGIzLDB4MDAsMHgyOCwweGMwLDB4MGIsMHgzOCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjRmMCwgMCwgezB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweGM2LDB4MDEsMHg4MywweDYwLDB4MjAsMHg3MCwweDBiLDB4MzAsMHgwYSwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjUwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgyZSwweDg4LDB4ODUsMHgwOCwweDJkLDB4ODAgfSB9LAoteyAgMTYsIDB4YjUxMCwgMCwgezB4NGIsMHhmOCwweDA2LDB4MWMsMHg4MCwweGI3LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg1MCwweDAyLDB4ZDQsMHgwMCwweGI2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjUyMCwgMCwgezB4MjksMHg2MCwweDA5LDB4NzAsMHgwMiwweGQwLDB4YTAsMHg4ZCwweDAwLDB4MjEsMHg0MCwweDBiLDB4MzIsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjUzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZDUsMHg4MCwweDNkLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjU0MCwgMCwgezB4OGYsMHg3OCwweDAzLDB4MWUsMHg4NCwweGI3LDB4ODIsMHgzZCwweDYwLDB4MGYsMHg1OSwweDAzLDB4ZGUsMHgwMCwweGY3LDB4ODAgfSB9LAoteyAgMTYsIDB4YjU1MCwgMCwgezB4MjksMHg2MCwweDE1LDB4NzgsMHgwMywweGRlLDB4MDAsMHhjNywweDgwLDB4MzEsMHg2MCwweDBmLDB4N2MsMHgwMywweDZhLDB4MDIgfSB9LAoteyAgMTYsIDB4YjU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDQwLDB4ZTksMHgwMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4YjU3MCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZWQsMHgzMCwweGZiLDB4MDAsMHgzNiwweGMxLDB4MGYsMHg5NiwweDAzLDB4ZTQsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjU4MCwgMCwgezB4MzQsMHg0MCwweDBmLDB4YjcsMHg4MywweGVjLDB4NDAsMHgyMSwweDAwLDB4M2UsMHg0MCwweDBmLDB4YjAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YjU5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHg4MSwweDMzLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjVhMCwgMCwgezB4MGYsMHhmOSwweDAzLDB4ZGUsMHgyMCwweGNmLDB4ODEsMHgzZiwweGUwLDB4MDcsMHg3OCwweDAzLDB4M2UsMHgwMCwweGZmLDB4ODAgfSB9LAoteyAgMTYsIDB4YjViMCwgMCwgezB4M2YsMHhlMCwweDA0LDB4ZjgsMHgxMywweGZlLDB4MDIsMHhkZSwweDgwLDB4MzMsMHg2MCwweDBmLDB4ZjgsMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjVjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzQgfSB9LAoteyAgMTYsIDB4YjVkMCwgMCwgezB4MGIsMHg1YSwweDAyLDB4ZGMsMHg0OCwweDg2LDB4NTAsMHgyZCwweGMwLDB4MGIsMHgzMSwweDAyLDB4OTQsMHg2MCwweGI0LDB4MTggfSB9LAoteyAgMTYsIDB4YjVlMCwgMCwgezB4MmQsMHg0MCwweDQ4LDB4NzAsMHgwMiwweGU4LDB4MDAsMHhhNSwweDEwLDB4MjEsMHg0MCwweDBiLDB4NzEsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjVmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YmQsMHgwMCwweDIxLDB4NDIgfSB9LAoteyAgMTYsIDB4YjYwMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZmMsMHgwMiwweDg1LDB4MDAsMHgyNSwweDQwLDB4MGIsMHg1MCwweDAyLDB4OWMsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4YjYxMCwgMCwgezB4MmYsMHg0MCwweDI4LDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhNiwweDAwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjYyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHg2ZCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NTAgfSB9LAoteyAgMTYsIDB4YjYzMCwgMCwgezB4MGIsMHhiMiwweDA2LDB4Y2UsMHgwMCwweGEwLDB4MzQsMHgyZSwweGYwLDB4MGIsMHgxOCwweDAyLDB4ODUsMHgyMCwweGIzLDB4NGEgfSB9LAoteyAgMTYsIDB4YjY0MCwgMCwgezB4MmMsMHg1NCwweDg4LDB4MzgsMHgwMiwweGNjLDB4MTAsMHhhMSwweDAwLDB4MjAsMHhiMCwweDBiLDB4MzAsMHgwMiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4YjY1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZSwweDgwLDB4ZjMsMHgwOCwweDEwLDB4NTQgfSB9LAoteyAgMTYsIDB4YjY2MCwgMCwgezB4MGIsMHg4OCwweDEzLDB4ZmYsMHgwMCwweGMwLDB4ODAsMHgzZSwweDY0LDB4MGYsMHhiNCwweDgzLDB4MDcsMHgwMCwweGY5LDB4YzAgfSB9LAoteyAgMTYsIDB4YjY3MCwgMCwgezB4M2UsMHhmMCwweDBjLDB4ZmMsMHgxMywweGY0LDB4MDAsMHhlYSwweDAwLDB4MzIsMHg3MCwweDBmLDB4ZjAsMHgwYiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjY4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4MTAgfSB9LAoteyAgMTYsIDB4YjY5MCwgMCwgezB4MDcsMHg5MSwweDAzLDB4ZWMsMHhjMCwweDU4LDB4MDAsMHgzZSwweDQ0LDB4MGYsMHg5MiwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjZhMCwgMCwgezB4M2UsMHhjMCwweDhmLDB4YjMsMHgwMywweGUwLDB4MDAsMHhiYiwweDAwLDB4YmUsMHg0NCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjZiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAyLDB4Y2QsMHgwNCwweDMzLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjZjMCwgMCwgezB4MGMsMHhjMCwweDAzLDB4M2MsMHgwOCwweGZlLDB4MDAsMHgzMywweDYwLDB4MmMsMHhkMCwweDAyLDB4YjQsMHg4MCwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjZkMCwgMCwgezB4M2YsMHg1MiwweDA3LDB4ZjAsMHgxMywweGZjLDB4MDAsMHhjZSwweDEwLDB4MzMsMHg0MiwweDBjLDB4YjAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4YjZlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDAwLDB4ODksMHgwMCwweDJhLDB4YjAgfSB9LAoteyAgMTYsIDB4YjZmMCwgMCwgezB4MDgsMHg4OCwweDAyLDB4MmMsMHgwMCwweGJhLDB4MDAsMHgzNiwweDQ0LDB4MDgsMHg5MCwweDAwLDB4MjYsMHgwMCwweGRiLDB4YzAgfSB9LAoteyAgMTYsIDB4YjcwMCwgMCwgezB4MmUsMHg0MCwweDBiLDB4YjAsMHgwMiwweGVjLDB4MDAsMHg4MywweGMwLDB4MjgsMHg0MCwweDBhLDB4YjAsMHgwMiwweGUwLDB4NDAgfSB9LAoteyAgMTYsIDB4YjcxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDIyLDB4MDggfSB9LAoteyAgMTYsIDB4YjcyMCwgMCwgezB4MWEsMHhhMiwweDAyLDB4MmMsMHgxMCwweGI5LDB4MjAsMHgyMiwweDQwLDB4MDgsMHgzMCwweDAyLDB4MmMsMHgwNCwweGFhLDB4NTQgfSB9LAoteyAgMTYsIDB4YjczMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YjAsMHgxMiwweGNjLDB4MDAsMHg4YiwweDA4LDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4ODMsMHgwNCwweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc1MCwgMCwgezB4MGEsMHgwOCwweDgyLDB4MGMsMHgwMCwweGI4LDB4MDAsMHg2NCwweDQwLDB4MDgsMHgzMCwweDAyLDB4YTQsMHgwMCwweGIwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc2MCwgMCwgezB4MmMsMHhjMCwweDhiLDB4MzAsMHgxMCwweGM4LDB4MDIsMHg4YiwweDAwLDB4MmEsMHg0MCwweDBhLDB4MzAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4Yjc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YzksMHgwMCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc4MCwgMCwgezB4MWEsMHg4MiwweDAzLDB4M2MsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHhkMSwweDAzLDB4YWMsMHgwMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc5MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4ZjAsMHgwMywweGVkLDB4MDAsMHhjMywweDAwLDB4MzIsMHhjMCwweDhjLDB4YjAsMHgwMywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4YjdhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhmYywweDAwLDB4ZjUsMHgwMCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjdiMCwgMCwgezB4MGQsMHg4MCwweDRiLDB4ZmMsMHgwMCwweDdjLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMiwweDBiLDB4NzQsMHgwMCwweGRmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjdjMCwgMCwgezB4MWQsMHg0MCwweDhmLDB4ZjAsMHgwMywweGZjLDB4YTAsMHhmZiwweDAwLDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YjdkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4ZGYsMHg4NCwweDNiLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjdlMCwgMCwgezB4MGYsMHhmOCwweDBiLDB4M2UsMHgwMCwweGVjLDB4ODAsMHgzMywweGUxLDB4MGMsMHgzMCwweDAzLDB4M2MsMHg4MCwweGNmLDB4NDggfSB9LAoteyAgMTYsIDB4YjdmMCwgMCwgezB4MzcsMHhjMCwweDBlLDB4NDAsMHgwMywweGUwLDB4YzAsMHhjNywweDkxLDB4YjMsMHgwNCwweDBjLDB4ZjAsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjgwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlZiwweDA0LDB4OGIsMHg4MCwweDIyLDB4NDEgfSB9LAoteyAgMTYsIDB4YjgxMCwgMCwgezB4MGIsMHhiMCwweDgyLDB4MmUsMHgwMCwweDg4LDB4ODAsMHhhMiwweGUwLDB4MGEsMHhhMiwweDkyLDB4YWQsMHg4MCwweDg3LDB4NDIgfSB9LAoteyAgMTYsIDB4YjgyMCwgMCwgezB4MjMsMHhkOCwweDhhLDB4YWQsMHgwMiwweGUwLDB4YzAsMHg4YiwweDAwLDB4MjAsMHg0YywweDQ4LDB4YTQsMHgwMiwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjgzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDU4LDB4YmIsMHgwMCwweDI4LDB4ODAgfSB9LAoteyAgMTYsIDB4Yjg0MCwgMCwgezB4MGIsMHhiMiwweDQyLDB4MjQsMHgwMCwweGE4LDB4MDAsMHgyYSwweGMwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHg2MCwweGEzLDB4MjAgfSB9LAoteyAgMTYsIDB4Yjg1MCwgMCwgezB4MjQsMHhkMiwweDA4LDB4MDAsMHg0MiwweDhjLDB4ODMsMHg5YiwweDAxLDB4MjAsMHg0OSwweDA4LDB4MzMsMHhjMiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4Yjg2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDAwLDB4YWIsMHg4OCwweDIyLDB4YTAgfSB9LAoteyAgMTYsIDB4Yjg3MCwgMCwgezB4MGIsMHhiOCwweDAyLDB4MjYsMHgwYywweGE4LDB4MDAsMHgyYSwweGMwLDB4MGEsMHg5MiwweDAyLDB4YTQsMHgwMCwweGFiLDB4MDYgfSB9LAoteyAgMTYsIDB4Yjg4MCwgMCwgezB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGU4LDB4MDAsMHg5YiwweDAwLDB4MDIsMHg0MCwweDA4LDB4YTAsMHg0MiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4Yjg5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZDMsMHg4MCwweDNhLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjhhMCwgMCwgezB4MGYsMHgxOCwweDAxLDB4MDYsMHgwMCwweGU4LDB4MzAsMHgzOCwweDY2LDB4MGUsMHhiOCwweDAzLDB4MmEsMHg0MCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4YjhiMCwgMCwgezB4MzYsMHhjMSwweDBlLDB4OTYsMHgwMywweGUyLDB4ODAsMHhkYSwweDA4LDB4MzIsMHg4MCwweDJjLDB4YmIsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjhjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg5YywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YjhkMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGRjLDB4ODAsMHgzNywweDYwLDB4MGYsMHhlOCwweDAzLDB4ZmEsMHgwMCwweGRmLDB4MDEgfSB9LAoteyAgMTYsIDB4YjhlMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4YzAsMHg0MywweGU2LDB4NGMsMHhlZiwweGEwLDB4M2YsMHg0NCwweDBmLDB4YTAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjhmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDQwLDB4ZGIsMHgwMCwweDM2LDB4ODAgfSB9LAoteyAgMTYsIDB4YjkwMCwgMCwgezB4MGMsMHg5OCwweDAzLDB4MjYsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGUsMHgxOCwweDAzLDB4ODQsMHgwMiwweGUzLDB4MDEgfSB9LAoteyAgMTYsIDB4YjkxMCwgMCwgezB4MzgsMHhjMSwweDBlLDB4YjQsMHgwMywweGFjLDB4ODAsMHhjYSwweDE4LDB4M2EsMHhkMCwweDJjLDB4MzAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjkyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgzZiwweDQwLDB4YjksMHg4OCwweDJlLDB4ODAgfSB9LAoteyAgMTYsIDB4YjkzMCwgMCwgezB4MDgsMHhiYywweDAyLDB4YTMsMHgwMCwweGIwLDB4MDAsMHgwZSwweGMwLDB4MDgsMHhiMCwweDA2LDB4MjAsMHgwMCwweDhmLDB4MDQgfSB9LAoteyAgMTYsIDB4Yjk0MCwgMCwgezB4MjMsMHhjMSwweDA4LDB4YjksMHgxMiwweDJmLDB4MDAsMHg4MywweDgwLDB4MzYsMHg0MCwweDA4LDB4YWQsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjk1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjIsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4Yjk2MCwgMCwgezB4MDksMHgzMiwweDAyLDB4ODQsMHgwMCwweDMzLDB4MDAsMHgyYywweGIyLDB4MGEsMHgzNiwweDEyLDB4OGMsMHgwOCwweDkzLDB4MDUgfSB9LAoteyAgMTYsIDB4Yjk3MCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MTgsMHgwMiwweGVkLDB4MDAsMHg5MSwweDgwLDB4NmEsMHgwMCwweDA4LDB4MTAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4Yjk4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4Yjk5MCwgMCwgezB4MDksMHg3OCwweDAyLDB4OTcsMHg0MCwweGI0LDB4ODAsMHgyZiwweGEwLDB4MDgsMHhlOCwweDAyLDB4MGUsMHg0MCwweDk3LDB4ODIgfSB9LAoteyAgMTYsIDB4YjlhMCwgMCwgezB4MjEsMHhlMCwweDk4LDB4NjgsMHg4MiwweDFhLDB4MTgsMHg5ZCwweDkwLDB4MmQsMHhhMSwweDE4LDB4NTgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjliMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweGMwLDB4ZjMsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YjljMCwgMCwgezB4MGQsMHhiMCwweDQzLDB4ODQsMHg0MCwweGYwLDB4MDAsMHgzYywweDgyLDB4MGUsMHgzOCwweDEyLDB4OGMsMHg0NCwweGYzLDB4MzAgfSB9LAoteyAgMTYsIDB4YjlkMCwgMCwgezB4YmEsMHhjMSwweDFlLDB4MTAsMHg0NywweDhlLDB4MjIsMHhkMSwweDEwLDB4MzgsMHgxOCwweDBjLDB4MzAsMHg4MywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDQwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YjlmMCwgMCwgezB4MGUsMHhlMCwweDAzLDB4ZjQsMHg0MCwweGZjLDB4MDAsMHgzZCwweGM0LDB4MGYsMHhkMCwweDAxLDB4ZjQsMHg0MSwweGVmLDB4MTggfSB9LAoteyAgMTYsIDB4YmEwMCwgMCwgezB4M2YsMHhjNCwweDFmLDB4ZjAsMHgwMywweGY4LDB4NDgsMHhlZiwweDE0LDB4MzMsMHg4MCwweDBmLDB4YzEsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YmExMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmYywweDQwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YmEyMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4MjQsMHgwMCwweGNiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YTgsMHgwMCwweGRiLDB4MjggfSB9LAoteyAgMTYsIDB4YmEzMCwgMCwgezB4M2UsMHhjNCwweDFmLDB4OTAsMHgyMywweGVjLDB4MDAsMHhjYSwweDAwLDB4MzIsMHhlMCwweDBjLDB4OTAsMHgwMywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmE0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDgwLDB4YjcsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YmE1MCwgMCwgezB4NGIsMHg1MCwweDUyLDB4MTQsMHgwMCwweGQ0LDB4MDEsMHgyZCwweDgwLDB4MGIsMHg2MCwweDAyLDB4ZDgsMHgwMCwweGE3LDB4MjAgfSB9LAoteyAgMTYsIDB4YmE2MCwgMCwgezB4MmQsMHhjNSwweDBiLDB4NDAsMHgxNiwweGRjLDB4MDAsMHg4NCwweDAwLDB4MjMsMHhjMCwweDA4LDB4NDAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4YmE3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDgwLDB4YjcsMHg4MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4YmE4MCwgMCwgezB4MGIsMHg3OCwweDBhLDB4OTYsMHgwMCwweDk0LDB4ODAsMHgyZCwweDYwLDB4MWIsMHg3OCwweDA2LDB4ZDIsMHgwMCwweGE3LDB4ODAgfSB9LAoteyAgMTYsIDB4YmE5MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4NzgsMHgyMiwweGRlLDB4MDAsMHg4NywweDgyLDB4MjEsMHhlMCwweDA4LDB4NTgsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmFhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4YjMsMHhlNCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YmFiMCwgMCwgezB4MWIsMHgyMSwweDAyLDB4ODEsMHgwMCwweDkwLDB4MDAsMHgyYywweGM4LDB4MGIsMHgzOSwweDAyLDB4Y2UsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4YmFjMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNkLDB4MDAsMHg4YiwweDIwLDB4MjAsMHhmMCwweDA4LDB4YjIsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4YmFkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHhhMCwweDNmLDB4ODIgfSB9LAoteyAgMTYsIDB4YmFlMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4OTgsMHgzMCwweGQ2LDB4MDAsMHgzZiwweGEwLDB4MGYsMHhlMCwweDAzLDB4YmEsMHhjMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmFmMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4ZWMsMHgzMywweGY4LDB4MDIsMHhjZSwweDAwLDB4YjMsMHhiOCwweDJjLDB4ZWMsMHg4MywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmIwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDE4LDB4ZjgsMHg0MCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YmIxMCwgMCwgezB4MGYsMHg4MCwweDAyLDB4NjAsMHg4NCwweGY4LDB4MDUsMHgyZSwweDA0LDB4OGYsMHg4MCwweDQxLDB4ZTAsMHgwMCwweDc4LDB4MDIgfSB9LAoteyAgMTYsIDB4YmIyMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODEsMHg4MywweGUwLDB4MjAsMHhmOCwweDAwLDB4YmUsMHgwMiwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YmIzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNiwweDE4LDB4ZjksMHgyMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YmI0MCwgMCwgezB4MGYsMHg5YywweDAzLDB4ZTQsMHg0MCwweGM5LDB4MDAsMHgzMiwweDYxLDB4MGMsMHg5MCwweDEzLDB4YzQsMHgwOCwweGM5LDB4MDEgfSB9LAoteyAgMTYsIDB4YmI1MCwgMCwgezB4M2UsMHg0MSwweDBmLDB4MTgsMHgwMywweDI0LDB4MDAsMHhjOSwweGEwLDB4MzIsMHg0MCwweDBmLDB4OTgsMHg0MywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YmI2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NSwweDAwLDB4YjEsMHhjMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YmI3MCwgMCwgezB4MGIsMHg5YywweDAyLDB4ZTcsMHgxMCwweDg5LDB4MDAsMHgyOCwweDQ0LDB4MDgsMHg5NCwweDIyLDB4ZTQsMHgxMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmI4MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OWYsMHgyMiwweDI2LDB4NjAsMHg4OSwweDgwLDB4MjIsMHg0MCwweDBiLDB4OTEsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmI5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDgwLDB4YjksMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YmJhMCwgMCwgezB4NGIsMHhiNCwweDAyLDB4ZTQsMHgyMCwweDg5LDB4MjAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZWMsMHgwMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmJiMCwgMCwgezB4MmUsMHg0MSwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4OSwweDQwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YmJjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4YjEsMHgwNCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YmJkMCwgMCwgezB4OGIsMHgxMCwweDAyLDB4ZTQsMHgwNSwweDgxLDB4MDAsMHgyOCwweDQwLDB4MjgsMHgxMiwweDEyLDB4YzQsMHg4MiwweDgxLDB4MjAgfSB9LAoteyAgMTYsIDB4YmJlMCwgMCwgezB4MmMsMHg0OCwweDBiLDB4MTIsMHgwYSwweDA0LDB4ODIsMHg4MSwweDAwLDB4MjAsMHg0OCwweDBiLDB4MTIsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweGEwLDB4ZmEsMHgwMiwweDNlLDB4MTQgfSB9LAoteyAgMTYsIDB4YmMwMCwgMCwgezB4MGYsMHg4NSwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4NSwweDAzLDB4YzEsMHg0MCwweGM4LDB4NTMgfSB9LAoteyAgMTYsIDB4YmMxMCwgMCwgezB4M2UsMHgxNCwweDBmLDB4ODAsMHgwMywweDAxLDB4NDgsMHhjMCwweDUwLDB4YjIsMHgxNCwweDBmLDB4ODUsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YmMyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhlNCwweDAwLDB4ZmQsMHgwMCwweGJmLDB4NDAgfSB9LAoteyAgMTYsIDB4YmMzMCwgMCwgezB4MGYsMHg1MCwweDEzLDB4ZDQsMHgwMiwweGZkLDB4MDAsMHgyZiwweGMwLDB4MGYsMHhkMSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4YmM0MCwgMCwgezB4M2UsMHg0NCwweDBmLDB4ZDEsMHgwMywweGY0LDB4NDAsMHhmZiwweDAwLDB4YmYsMHg0NCwweDBmLDB4ZDEsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YmM1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweGEwLDB4ZmQsMHgwMSwweDNlLDB4NDQgfSB9LAoteyAgMTYsIDB4YmM2MCwgMCwgezB4MGYsMHhkMSwweDAzLDB4ZDQsMHgwMCwweGM1LDB4MDAsMHgzMywweDQxLDB4MGYsMHhkYiwweDAzLDB4MjcsMHgyMCwweGQ5LDB4ZTAgfSB9LAoteyAgMTYsIDB4YmM3MCwgMCwgezB4YjIsMHg3MCwweDBkLDB4ZGEsMHg4MywweGY2LDB4NDAsMHhjZiwweDEwLDB4MzIsMHg3OCwweDJkLDB4ZGEsMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YmM4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDAwLDB4YjgsMHgwMCwweDJlLDB4MjggfSB9LAoteyAgMTYsIDB4YmM5MCwgMCwgezB4MGIsMHg4OCwweDQyLDB4ZTAsMHgxMCwweGQ4LDB4MDAsMHgyMiwweDAwLDB4MGIsMHg4YywweDBhLDB4MjMsMHgwMCwweDg4LDB4YzAgfSB9LAoteyAgMTYsIDB4YmNhMCwgMCwgezB4MjIsMHgyOCwweDA4LDB4ODQsMHgwMiwweGMyLDB4ODAsMHg4MCwweGEwLDB4MjIsMHgzMCwweDQ4LDB4YWEsMHg4MiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YmNiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4YmNjMCwgMCwgezB4OGIsMHgxMiwweDAyLDB4YzQsMHgwMCwweDk5LDB4MDIsMHgyOCwweDQwLDB4OGIsMHgxNiwweDAyLDB4ODQsMHg4MSwweDkxLDB4MzAgfSB9LAoteyAgMTYsIDB4YmNkMCwgMCwgezB4MjAsMHg1OCwweDA5LDB4MTAsMHgwMiwweGM1LDB4MDAsMHg4MSwweDAwLDB4NjQsMHg0ZCwweDA4LDB4MzQsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YmNlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhYywweDBjLDB4YjksMHgwNCwweDJlLDB4NDggfSB9LAoteyAgMTYsIDB4YmNmMCwgMCwgezB4MGIsMHg5NCwweDA2LDB4ZTQsMHgwMCwweDk5LDB4NDAsMHhhYSwweDQwLDB4MGIsMHg5MiwweDIyLDB4YTQsMHgwMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmQwMCwgMCwgezB4NjAsMHg0MCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDAsMHg4OSwweDgwLDB4YTYsMHg1MCwweDA4LDB4OTIsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4YmQxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg5OCwweDNlLDB4NDggfSB9LAoteyAgMTYsIDB4YmQyMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4ZTUsMHgyMCwweGQ5LDB4MDAsMHgzYSwweDY0LDB4MGYsMHg5NCwweDgzLDB4YTQsMHhjMCwweGQ5LDB4MDIgfSB9LAoteyAgMTYsIDB4YmQzMCwgMCwgezB4NzIsMHg0MCwweDRkLDB4OTAsMHg0MiwweGU0LDB4ODIsMHhjOSwweDQwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4YmQ0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhYywweDI4LDB4ZjksMHg4OCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YmQ1MCwgMCwgezB4MGYsMHg5OSwweDEzLDB4ZTcsMHgwMCwweGY5LDB4YzAsMHgzNiwweDYwLDB4MGYsMHg5MCwweDAzLDB4NjYsMHgwMCwweGYxLDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ2MCwgMCwgezB4N2UsMHg0MCwweDBmLDB4OTksMHgwNywweGU0LDB4NjAsMHhmOSwweDAwLDB4MzgsMHg0MCwweDBmLDB4OTgsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgxMCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ4MCwgMCwgezB4MGYsMHg4MiwweDBiLDB4MjEsMHgwMCwweGU4LDB4MDAsMHgzNiwweDA0LDB4MGMsMHg4NiwweDAzLDB4ZTEsMHgwMCwweGQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ5MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDYxLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4MDAsMHgwMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmRhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDIwLDB4YmUsMHgwMCwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4YmRiMCwgMCwgezB4MjgsMHhlYywweDAyLDB4MTksMHgwNCwweDgyLDB4MDAsMHgwMywweDgwLDB4MGQsMHhlNCwweDgyLDB4ZTgsMHgwMCwweDhhLDB4MDEgfSB9LAoteyAgMTYsIDB4YmRjMCwgMCwgezB4YWEsMHg4MCwweDhiLDB4ZWQsMHg4MiwweDNiLDB4ODAsMHg4ZSwweDkwLDB4MzYsMHg4MCwweDBiLDB4ZTAsMHgwMywweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmRkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MiwweDAwLDB4YjMsMHg4MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YmRlMCwgMCwgezB4NmIsMHgzNCwweDE2LDB4NDAsMHhjMCwweDgzLDB4MTAsMHgyNCwweDcyLDB4ODgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YmRmMCwgMCwgezB4MjQsMHhjMCwweDBiLDB4MDQsMHgwMiwweDZmLDB4MDksMHg5YiwweDAwLDB4MjQsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmUwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxNCwweDAwLDB4YjcsMHg4MCwweDIzLDB4ZTQgfSB9LAoteyAgMTYsIDB4YmUxMCwgMCwgezB4MjgsMHg3OCwweDgyLDB4NzQsMHgxNCwweDhmLDB4MDAsMHg2MSwweGUwLDB4MDksMHg1MCwweDEyLDB4ZGMsMHgwNCwweDg3LDB4MjIgfSB9LAoteyAgMTYsIDB4YmUyMCwgMCwgezB4MjUsMHhjOCwweDFiLDB4NzgsMHgwMiwweDE0LDB4MDAsMHg5NCwweDQwLDB4YTUsMHhjMCwweDBiLDB4NjAsMHgyMiwweDY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YmUzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDIwLDB4YjcsMHg4MCwweGIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4YmU0MCwgMCwgezB4OGYsMHhmOCwweDAzLDB4MTIsMHgwMiwweGU3LDB4ODAsMHgzNSwweGUwLDB4MGMsMHg2OCwweDA2LDB4Y2YsMHhjMiwweGNmLDB4YjAgfSB9LAoteyAgMTYsIDB4YmU1MCwgMCwgezB4MjUsMHhmNCwweDBmLDB4NTgsMHgwMywweDVhLDB4MDIsMHhkNSwweDgwLDB4NzUsMHhmYSwweDRmLDB4ZjgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4YmU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhNSwweDkwLDB4ZjMsMHgwMCwweDNkLDB4YzAgfSB9LAoteyAgMTYsIDB4YmU3MCwgMCwgezB4NGYsMHhiMCwweDEzLDB4YTgsMHgwNCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGYsMHg4MCwweDQzLDB4ZWMsMHg4MCwweGViLDB4NjAgfSB9LAoteyAgMTYsIDB4YmU4MCwgMCwgezB4M2EsMHhjOSwweDBmLDB4MzAsMHgwMywweGVjLDB4MDAsMHhlOSwweDAwLDB4M2UsMHhjOCwweDBmLDB4YTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YmU5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZWUsMHg4MCwweDNmLDB4ZTAgfSB9LAoteyAgMTYsIDB4YmVhMCwgMCwgezB4MGQsMHg4OSwweDAzLDB4ZDIsMHg0MCwweGU1LDB4ODEsMHgzOSwweGUwLDB4M2MsMHhmOSwweDA3LDB4ZmUsMHgwMCwweGNmLDB4ODggfSB9LAoteyAgMTYsIDB4YmViMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZTgsMHgwMywweGYyLDB4MDgsMHhjZSwweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmVjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5NCwweDQ0LDB4YzYsMHgwMCwweDJmLDB4YzAgfSB9LAoteyAgMTYsIDB4YmVkMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZDAsMHhjNCwweDg1LDB4MjQsMHgyMSwweDkwLDB4MDgsMHg1NCwweDEyLDB4ZGMsMHg4MiwweDA3LDB4MDAgfSB9LAoteyAgMTYsIDB4YmVlMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzAsMHgwNiwweGQ0LDB4MDAsMHg4ZSwweDQ4LDB4MjEsMHhjMCwweDBhLDB4NjAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmVmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTcsMHg0MCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YmYwMCwgMCwgezB4MDgsMHg0MiwweDAyLDB4ZDAsMHgwMCwweGFkLDB4MDAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDIyLDB4ZGMsMHgyOCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4YmYxMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDk4LDB4MDAsMHg5NywweDAwLDB4YTAsMHhjNCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmYyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDA4LDB4OTMsMHgwMCwweDJjLDB4ZTAgfSB9LAoteyAgMTYsIDB4YmYzMCwgMCwgezB4MDgsMHgzYywweDIyLDB4YzEsMHgwMCwweDgxLDB4MDAsMHgyMCwweDgwLDB4ODgsMHgxNSwweDAyLDB4Y2UsMHgzMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YmY0MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4M2MsMHgwMiwweGNjLDB4MDQsMHg5MywweGMwLDB4MjAsMHhmNCwweDRhLDB4MGMsMHg4MiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4YmY1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZTMsMHhjMCwweDFmLDB4ZTAgfSB9LAoteyAgMTYsIDB4YmY2MCwgMCwgezB4NmMsMHgxMCwweDgzLDB4ZTAsMHgwNCwweGViLDB4MDAsMHgzYSwweDUyLDB4NGMsMHhiNCwweDAzLDB4ZmUsMHgwMiwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YmY3MCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ODQsMHg0MywweGUxLDB4MDIsMHhkOCwweGMyLDB4MzMsMHhjMCwweDBjLDB4ODQsMHgwYiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmY4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlOSwweDAwLDB4ZWIsMHgxMCwweDNlLDB4YzQgfSB9LAoteyAgMTYsIDB4YmY5MCwgMCwgezB4MGUsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGZiLDB4MTgsMHgzZSwweGMyLDB4MGYsMHhiNiwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDEgfSB9LAoteyAgMTYsIDB4YmZhMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4MzUsMHgwMywweGM0LDB4MjgsMHhlYSwweDQyLDB4M2UsMHhjMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmZiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDQwLDB4ZmYsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4YmZjMCwgMCwgezB4MGMsMHhjMCwweGEzLDB4MzAsMHgyOCwweGNkLDB4YTAsMHgzMywweGMwLDB4MGMsMHhlOCwweDAzLDB4MGMsMHgwMCwweGVmLDB4MDUgfSB9LAoteyAgMTYsIDB4YmZkMCwgMCwgezB4M2QsMHhjMCwweDBjLDB4Y2EsMHg4MywweDNjLDB4MDAsMHhjZCwweDA4LDB4M2YsMHhjMiwweDBjLDB4YTAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4YmZlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2NywweDAwLDB4YmIsMHg4MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YmZmMCwgMCwgezB4MDgsMHhhYSwweDAyLDB4MDgsMHgwMCwweGExLDB4MDEsMHgzNCwweGQxLDB4MDgsMHhhNCwweDEyLDB4MmMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzAwMCwgMCwgezB4NmUsMHhjMCwweDg4LDB4YjIsMHgwMiwweDJjLDB4MDgsMHg4OSwweDgwLDB4MmUsMHhjMCwweDBhLDB4YTgsMHgwMywweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4YzAxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmEsMHg4MCwweGEyLDB4YzAgfSB9LAoteyAgMTYsIDB4YzAyMCwgMCwgezB4MDgsMHhhOCwweDBhLDB4YTAsMHgwMCwweDhiLDB4MDAsMHhhMiwweGMwLDB4NDgsMHgxMSwweDAyLDB4YWMsMHgwNCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzAzMCwgMCwgezB4MmUsMHhjMCwweDAwLDB4ODAsMHgxMiwweDJhLDB4MDgsMHg4YiwweDE0LDB4MmMsMHhjMCwweDA4LDB4ODgsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4YjIsMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YzA1MCwgMCwgezB4MDgsMHhiMiwweDEyLDB4ODAsMHgwMCwweGFiLDB4MDEsMHgyNCwweGMwLDB4MDgsMHgwMCwweDAyLDB4MGMsMHgwNCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA2MCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweDA3LDB4MDAsMHg4MiwweDAwLDB4MjQsMHhjMCwweDA4LDB4MDgsMHgwMiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmIsMHgwMCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4YzA4MCwgMCwgezB4MGMsMHhhMiwweDAzLDB4YTAsMHgwMCwweGM5LDB4MDAsMHgzMiwweGMwLDB4MjQsMHg5NCwweDAzLDB4M2MsMHgwMiwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA5MCwgMCwgezB4MmYsMHhjMCwweDA0LDB4ODAsMHgwYiwweDA5LDB4MDIsMHhjYiwweDAxLDB4M2YsMHhjMCwweDJjLDB4YTAsMHgwMywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4YzBhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhkYywweDAwLDB4ZmQsMHgwMiwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YzBiMCwgMCwgezB4NGYsMHhlNCwweDEzLDB4NzAsMHgwMCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMiwweDgzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzBjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGE4LDB4MDYgfSB9LAoteyAgMTYsIDB4YzBkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDIwLDB4ZWYsMHgzMCwweDNmLDB4MDQgfSB9LAoteyAgMTYsIDB4YzBlMCwgMCwgezB4NmMsMHg4OCwweDAzLDB4M2EsMHg0MiwweGU0LDB4OTEsMHgzZiwweDBkLDB4MGQsMHg0OCwweDAzLDB4M2MsMHhjMCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4YzBmMCwgMCwgezB4MzMsMHg0NCwweDBjLDB4ZjQsMHgwMywweGZjLDB4ODIsMHhkZiwweDMwLDB4MzMsMHg2MCwweDBkLDB4ZjEsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzEwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhlZCwweDAwLDB4OGIsMHg3MCwweDJlLDB4MTggfSB9LAoteyAgMTYsIDB4YzExMCwgMCwgezB4ODgsMHgyMiwweDRhLDB4MmMsMHg4MiwweGVhLDB4MjYsMHgyZSwweDBjLDB4MGIsMHhiOCwweDQyLDB4M2QsMHg4MCwweGJmLDB4OTAgfSB9LAoteyAgMTYsIDB4YzEyMCwgMCwgezB4MmEsMHg1NCwweDI4LDB4YjQsMHgwMiwweGNkLDB4MDAsMHhkYiwweDQwLDB4MmEsMHg0YSwweDQ4LDB4MzAsMHgwMiwweGEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzEzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweGIwLDB4YTMsMHgwMCwweDZjLDB4MTAgfSB9LAoteyAgMTYsIDB4YzE0MCwgMCwgezB4MDksMHgwMCwweDgyLDB4MjAsMHg4MiwweGEwLDB4MjAsMHgyYywweDg4LDB4NGIsMHg4MCwweDAwLDB4MGMsMHg0MCwweGIzLDB4MDEgfSB9LAoteyAgMTYsIDB4YzE1MCwgMCwgezB4MjAsMHg0OCwweDBiLDB4MzYsMHgwMiwweDhjLDB4ZTAsMHg4MywweDY0LDB4MjQsMHg0MCwweDI4LDB4MzIsMHgwMiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzE2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MTEsMHhhYywweDAwLDB4OGIsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YzE3MCwgMCwgezB4MDksMHg4MCwweDgwLDB4YTYsMHgwMCwweGJhLDB4MTEsMHgyZSwweDg4LDB4MGIsMHhiMCwweDAwLDB4MmMsMHgwMCwweGJiLDB4MDIgfSB9LAoteyAgMTYsIDB4YzE4MCwgMCwgezB4MDIsMHg0MCwweDA5LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAwLDB4MmMsMHhjOCwweDA4LDB4YjgsMHg4MiwweGIwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzE5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4OTIgfSB9LAoteyAgMTYsIDB4YzFhMCwgMCwgezB4MGQsMHg4MCwweDAzLDB4MGEsMHgyMCwweGU5LDB4MDAsMHgzZSwweDUwLDB4NDUsMHg4MCwweDAxLDB4MmMsMHgwNCwweGYzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzFiMCwgMCwgezB4OTAsMHg2MCwweDA5LDB4YjAsMHgwMywweGVjLDB4MDAsMHg4YiwweDAyLDB4MjYsMHg1MCwweDhkLDB4YmMsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzFjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMiwweDNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YzFkMCwgMCwgezB4MGUsMHhmOSwweDAyLDB4N2MsMHgyMiwweGFmLDB4MDAsMHgzZiwweDYwLDB4MDMsMHhjMCwweDBiLDB4ZmMsMHgxMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzFlMCwgMCwgezB4M2YsMHg0YSwweDRlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNywweDAwLDB4MmIsMHg2MCwweDBmLDB4NzAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzFmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMCwweGIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzIwMCwgMCwgezB4MGYsMHg4MiwweDBiLDB4YTksMHgwMCwweGM5LDB4MDAsMHgzMiwweGQyLDB4MGYsMHhhMCwweDgzLDB4YWMsMHgwMCwweGNiLDB4MTAgfSB9LAoteyAgMTYsIDB4YzIxMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhkYiwweDAwLDB4MzIsMHg1MCwweDJjLDB4OTUsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzIyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgzYywweDA0LDB4YmYsMHgwMiwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4YzIzMCwgMCwgezB4MGIsMHg5OCwweDAwLDB4MjksMHgwMCwweGNiLDB4NDAsMHgyMiwweGMwLDB4MGIsMHgyNCwweDAyLDB4M2MsMHgwOCwweDhmLDB4NTAgfSB9LAoteyAgMTYsIDB4YzI0MCwgMCwgezB4MmUsMHg1MCwweDBkLDB4ZjAsMHgwMiwweGZkLDB4NDIsMHg4ZiwweDU4LDB4MjIsMHhlMCwweDQ4LDB4YjUsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YzI1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2YywweDAwLDB4YjMsMHgwMCwweDI0LDB4NDAgfSB9LAoteyAgMTYsIDB4YzI2MCwgMCwgezB4NGIsMHg5NCwweDAwLDB4NDksMHgwMCwweDkwLDB4ODAsMHgwNCwweDMwLDB4MDksMHgwMCwweDBlLDB4NGMsMHgwMCwweDgzLDB4ODAgfSB9LAoteyAgMTYsIDB4YzI3MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzAsMHgyMiwweDZlLDB4NDIsMHg4MywweDgwLDB4MjAsMHg0OCwweDA4LDB4MzgsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzI4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDAwLDB4YjcsMHg4MCwweDY1LDB4MjAgfSB9LAoteyAgMTYsIDB4YzI5MCwgMCwgezB4MGIsMHg3OCwweDgyLDB4N2EsMHgwOCwweDhjLDB4YzAsMHgyNSwweGEzLDB4NGIsMHg3OCwweDAyLDB4NWUsMHgwNCwweDg3LDB4ODQgfSB9LAoteyAgMTYsIDB4YzJhMCwgMCwgezB4MmQsMHg2MSwweDg5LDB4NzgsMHgwMiwweGRlLDB4MDQsMHg4NywweDgwLDB4ZTksMHg2MiwweDA4LDB4NzgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzJiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZmIsMHgwMCwweDM0LDB4NDggfSB9LAoteyAgMTYsIDB4YzJjMCwgMCwgezB4MGYsMHgzYiwweDAzLDB4NDgsMHgwMCwweDkzLDB4NDgsMHgzNCwweDUwLDB4MGQsMHgwMCwweDAzLDB4NmMsMHgwMCwweGMzLDB4MTAgfSB9LAoteyAgMTYsIDB4YzJkMCwgMCwgezB4MWMsMHhjMiwweDA1LDB4MzAsMHgwMywweGNjLDB4NDAsMHhjYiwweDAwLDB4MzIsMHg0MCwweDBjLDB4MjAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YzJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDIwLDB4ZmYsMHgwMSwweDAzLDB4NDAgfSB9LAoteyAgMTYsIDB4YzJmMCwgMCwgezB4MGYsMHhmMCwweDIzLDB4MWMsMHgwMCwweGZmLDB4MDAsMHgzYiwweDgwLDB4MGYsMHhiMCwweDIzLDB4M2MsMHgwMiwweGZmLDB4NTAgfSB9LAoteyAgMTYsIDB4YzMwMCwgMCwgezB4M2QsMHhjNCwweDBmLDB4ZjEsMHgwMywweGVjLDB4MDAsMHhlZiwweDAwLDB4YjcsMHhjMCwweDBmLDB4ZTEsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YzMxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNlLDB4ZTAgfSB9LAoteyAgMTYsIDB4YzMyMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NDgsMHgwMiwweGM4LDB4ODEsMHgzMiwweDAwLDB4MGYsMHg5MCwweDQyLDB4ZWMsMHhhMCwweGZiLDB4MTAgfSB9LAoteyAgMTYsIDB4YzMzMCwgMCwgezB4M2UsMHhlMCwweDBjLDB4YjEsMHgwMywweGVjLDB4NDAsMHhmYiwweDEwLDB4MzIsMHg0MCwweDFmLDB4ZjAsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzM0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgyNCwweDJkLDB4ODAgfSB9LAoteyAgMTYsIDB4YzM1MCwgMCwgezB4MDgsMHg3MCwweDQyLDB4ZDgsMHgxMCwweDhjLDB4MDIsMHgyMSwweDQwLDB4MGIsMHg1MCwweDAyLDB4ZGQsMHgwMCwweGU3LDB4MjAgfSB9LAoteyAgMTYsIDB4YzM2MCwgMCwgezB4MmYsMHg0MCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDUsMHhiNywweDAwLDB4MjEsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzM3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHg5MCwweDJmLDB4NDAgfSB9LAoteyAgMTYsIDB4YzM4MCwgMCwgezB4MGEsMHg2OCwweDAyLDB4N2EsMHgwMCwweDk3LDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4YzM5MCwgMCwgezB4MmQsMHhlMCwweDA4LDB4NzgsMHgwNiwweGRlLDB4MDAsMHhiNywweGEwLDB4MjEsMHg2MCwweDBiLDB4NzgsMHg0MiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzNhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YzNiMCwgMCwgezB4MGEsMHgzNCwweDAyLDB4YzgsMHgwMCwweDgzLDB4NGEsMHgyMCwweGY4LDB4MGIsMHgzMSwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzNjMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhiMiwweDBiLDB4MjAsMHg0MiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzNkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4YmEsMHgwMCwweDNmLDB4ODggfSB9LAoteyAgMTYsIDB4YzNlMCwgMCwgezB4MmUsMHhlMCwweDQzLDB4NTksMHg4OCwweGRlLDB4MDAsMHgzMywweGIwLDB4MGYsMHg2YywweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzNmMCwgMCwgezB4M2UsMHg4MCwweDJjLDB4YTAsMHgwMywweGU4LDB4MDQsMHhmYSwweDAwLDB4MjMsMHhiOCwweDBmLDB4ZTAsMHg4YiwweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzQwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDA0LDB4ZjgsMHgwMSwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YzQxMCwgMCwgezB4MDksMHg4MiwweDIxLDB4ZTAsMHgwMCwweGY4LDB4NDAsMHhiZSwweDE0LDB4MGYsMHg4NCwweDgxLDB4ZTAsMHgwMCwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzQyMCwgMCwgezB4M2UsMHgwMCwweDFmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4YmUsMHgwMCwweDBmLDB4ODgsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YzQzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZTEsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YzQ0MCwgMCwgezB4MGMsMHg5MCwweDQzLDB4ZTQsMHgyMCwweGQ5LDB4MDAsMHgzYywweDQ0LDB4MDgsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDEgfSB9LAoteyAgMTYsIDB4YzQ1MCwgMCwgezB4M2UsMHg0OCwweDBmLDB4MTAsMHg0MywweDI1LDB4MDAsMHhjOSwweDAwLDB4YjIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzQ2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHgwMCwweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4YzQ3MCwgMCwgezB4MDgsMHg5OCwweDAyLDB4ZTYsMHgwOCwweGE5LDB4NjAsMHgyZSwweDQ5LDB4MDgsMHg5NCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzQ4MCwgMCwgezB4MmUsMHg3MCwweDBiLDB4OTAsMHgwMiwweDI2LDB4MDIsMHg4OSwweDAwLDB4YTAsMHg0MCwweDBhLDB4OTAsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzQ5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YzRhMCwgMCwgezB4MDgsMHg5OCwweDA0LDB4ZTYsMHgwMCwweDk5LDB4ODAsMHgyZSwweDQwLDB4MGEsMHhiMSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzRiMCwgMCwgezB4MGUsMHg0MCwweDBiLDB4OTAsMHgwYSwweDA0LDB4MDAsMHg4MSwweDAxLDB4MjIsMHhjMCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YzRjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDgwLDB4YjEsMHgyMCwweDIyLDB4NDggfSB9LAoteyAgMTYsIDB4YzRkMCwgMCwgezB4MDgsMHgxOCwweDA2LDB4YzQsMHgwMCwweGExLDB4MDAsMHgyYywweDQ4LDB4MmEsMHgzMCwweDAyLDB4MDQsMHg4MCwweGIxLDB4MjIgfSB9LAoteyAgMTYsIDB4YzRlMCwgMCwgezB4MmMsMHg0OCwweDBiLDB4MTIsMHgwMiwweDA1LDB4ODAsMHg4MSwweDYwLDB4MjIsMHg1MCwweDBhLDB4MTQsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MTQgfSB9LAoteyAgMTYsIDB4YzUwMCwgMCwgezB4MGMsMHg4NSwweDAzLDB4ZTEsMHg0MCwweGQ4LDB4NTAsMHgzZSwweDE0LDB4MGUsMHg4MCwweDBiLDB4MjEsMHg0MCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzUxMCwgMCwgezB4M2UsMHg5NCwweDBmLDB4ODUsMHgwMywweDIwLDB4MDAsMHhjMCwweDAwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YzUyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhlNCwweDQxLDB4ZjksMHgxMCwweDNkLDB4NDUgfSB9LAoteyAgMTYsIDB4YzUzMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQ1LDB4MGQsMHhkMCwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4YzU0MCwgMCwgezB4M2YsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDIsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4ZDQsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YzU1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YzU2MCwgMCwgezB4MGMsMHhkMCwweDAzLDB4ZjQsMHgwOCwweDhkLDB4MDIsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTQsMHgwMCwweGNkLDB4MDAgfSB9LAoteyAgMTYsIDB4YzU3MCwgMCwgezB4MzMsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDRjLDB4OTgsMHgyMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YzU4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDAwLDB4ZTgsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YzU5MCwgMCwgezB4NDgsMHg4MCwweDAyLDB4ZTgsMHgwMCwweGQwLDB4MDAsMHgyZSwweDgwLDB4MGIsMHg4MCwweDEyLDB4ZTAsMHgwMiwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzVhMCwgMCwgezB4YTIsMHgwMCwweDBhLDB4ODAsMHgxMiwweDIyLDB4MDAsMHhiOCwweDgxLDB4MjIsMHgyOCwweDA4LDB4Y2YsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YzViMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4YzVjMCwgMCwgezB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweDgxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweDkxLDB4MDAgfSB9LAoteyAgMTYsIDB4YzVkMCwgMCwgezB4MjYsMHg0MCwweDA5LDB4MTAsMHgwMiwweDU0LDB4YTAsMHhiNSwweDJjLDB4YTUsMHg0MiwweDA4LDB4NTAsMHg4MiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzVlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDAwLDB4YTksMHgwMCwweDJlLDB4NTAgfSB9LAoteyAgMTYsIDB4YzVmMCwgMCwgezB4NTgsMHg5MCwweDAyLDB4ZTQsMHg4MCwweDliLDB4MDAsMHgyZSwweDQ1LDB4OGIsMHg5MiwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzYwMCwgMCwgezB4MjYsMHg0NCwweDBiLDB4OTAsMHgwMiwweDY0LDB4MDgsMHhiNSwweDAwLDB4MjUsMHg0YSwweDA4LDB4NTEsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4YzYxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NTQgfSB9LAoteyAgMTYsIDB4YzYyMCwgMCwgezB4MGMsMHg5MCwweDQzLDB4YzQsMHgwMCwweGM5LDB4OTAsMHgzZSwweDcwLDB4MGYsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzYzMCwgMCwgezB4MzQsMHg2MCwweDRkLDB4OTAsMHgwYSwweDY0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDJjLDB4OWUsMHgwMywweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4YzY0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4YzY1MCwgMCwgezB4MGYsMHg5YywweDAzLDB4ZTYsMHgzMCwweGY5LDB4MDAsMHgzZSwweDYyLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzY2MCwgMCwgezB4M2EsMHg0MCwweDRlLDB4OTAsMHgwMywweGE0LDB4MDAsMHg3OSwweDBjLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgxYiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzY3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YzY4MCwgMCwgezB4MGMsMHg4MSwweDEzLDB4ZTEsMHgwOCwweGM4LDB4NDgsMHgzMiwweDAwLDB4M2MsMHg4MCwweDAzLDB4YzAsMHgwMCwweGYwLDB4MTAgfSB9LAoteyAgMTYsIDB4YzY5MCwgMCwgezB4M2UsMHgwNiwweDBjLDB4ODAsMHgwMywweGYwLDB4MDgsMHhjYywweDAwLDB4MzMsMHgwNCwweDBjLDB4YzAsMHgwMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzZhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4YmEsMHgwMCwweDJlLDB4ODAgfSB9LAoteyAgMTYsIDB4YzZiMCwgMCwgezB4MDgsMHhlYywweDQyLDB4ZmEsMHgyMCwweDhlLDB4MDAsMHgyMywweGEwLDB4MDgsMHhlOCwweDQyLDB4ZTgsMHgwMCwweGJlLDB4ODAgfSB9LAoteyAgMTYsIDB4YzZjMCwgMCwgezB4MmYsMHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDAsMHhkYSwweDAwLDB4MjIsMHg4MCwweDQ4LDB4ZTAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzZkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YzZlMCwgMCwgezB4MDksMHgzNCwweDgyLDB4YzksMHgwMCwweDgzLDB4ODAsMHgyMCwweGYwLDB4MDgsMHgzMCwweDgyLDB4Y2MsMHgwMCwweGIzLDB4ODAgfSB9LAoteyAgMTYsIDB4YzZmMCwgMCwgezB4MmMsMHhmMCwweDA4LDB4YjAsMHgwMiwweGMxLDB4MjAsMHg4MCwweDAwLDB4YTAsMHgzMiwweDA4LDB4MDAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzcwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweGMwLDB4YjcsMHgwMSwweDJmLDB4YzggfSB9LAoteyAgMTYsIDB4YzcxMCwgMCwgezB4ODksMHg1MCwweDAyLDB4ZDgsMHgwMiwweDg3LDB4YzQsMHgyMSwweGUyLDB4NDgsMHg3MCwweDgyLDB4ZGMsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4YzcyMCwgMCwgezB4MmMsMHg0MCwweDA4LDB4NzIsMHgwMiwweGNlLDB4MDAsMHg5NywweDA4LDB4MjMsMHhjMCwweDA4LDB4NzAsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzczMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjcsMHhlMSwweDNkLDB4ZTggfSB9LAoteyAgMTYsIDB4Yzc0MCwgMCwgezB4MmQsMHg2OCwweDAzLDB4ZjIsMHgwMCwweGM3LDB4ODAsMHhiMCwweGUwLDB4MDgsMHg2OCwweDAzLDB4ZGYsMHg4MCwweGY2LDB4ODAgfSB9LAoteyAgMTYsIDB4Yzc1MCwgMCwgezB4M2QsMHhlMCwweDhjLDB4N2UsMHgwMywweGRhLDB4MDAsMHhjYywweDgwLDB4MzEsMHgyMCwweDBjLDB4YzgsMHgwYiwweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4Yzc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDA4LDB4ZmIsMHgwMCwweDNjLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzc3MCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzc4MCwgMCwgezB4M2UsMHg0MCwweDJmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmYiwweDAwLDB4M2MsMHhjMCwweDJmLDB4YjAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4Yzc5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHg5MiwweDdmLDB4ZWEgfSB9LAoteyAgMTYsIDB4YzdhMCwgMCwgezB4MGMsMHhmOCwweDAzLDB4ZmUsMHgwMCwweGNjLDB4YTAsMHgzZiwweDIwLDB4MGQsMHhmOSwweDAzLDB4M2UsMHgwMCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YzdiMCwgMCwgezB4MzMsMHg2MCwweDBmLDB4ZjgsMHgwMywweGY2LDB4MDAsMHhlZiwweDg0LDB4MzMsMHhlMCwweDJjLDB4YzgsMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzdjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgwMCwweDJmLDB4YzggfSB9LAoteyAgMTYsIDB4YzdkMCwgMCwgezB4MDgsMHg1NCwweDAyLDB4ZDgsMHgwMCwweGQ2LDB4MDQsMHgyZCwweDAxLDB4MDgsMHg2OSwweDAyLDB4MWMsMHgwMCwweDg1LDB4MDAgfSB9LAoteyAgMTYsIDB4YzdlMCwgMCwgezB4MjEsMHg0MywweDBiLDB4NzAsMHgwMywweDlhLDB4YzAsMHg4YywweDAwLDB4YTMsMHgwMiwweDA4LDB4ZjEsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzdmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgwMSwweDJkLDB4Y2MgfSB9LAoteyAgMTYsIDB4YzgwMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwMCwweDk0LDB4MjgsMHgyZCwweGMyLDB4MDgsMHhjMiwweDAyLDB4NWMsMHgwMCwweDg2LDB4MDAgfSB9LAoteyAgMTYsIDB4YzgxMCwgMCwgezB4MjEsMHg4MCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhNywweDEwLDB4MjEsMHhjMCwweDA4LDB4NDgsMHgwMiwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzgyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDA4LDB4YjMsMHgwMCwweDJjLDB4ZjAgfSB9LAoteyAgMTYsIDB4YzgzMCwgMCwgezB4MDgsMHgwNSwweDAyLDB4YzAsMHgyMCwweDkwLDB4ODAsMHgyZSwweDAwLDB4MDgsMHgwMCwweDgyLDB4NGMsMHgwMiwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzg0MCwgMCwgezB4YTAsMHg2MSwweDBiLDB4MzAsMHgwMiwweGEwLDB4MDAsMHg4MCwweDAwLDB4YTAsMHgzMCwweDg4LDB4YjEsMHgwYSwweDQ4LDB4MDQgfSB9LAoteyAgMTYsIDB4Yzg1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmYsMHgwMCwweDJkLDB4YzggfSB9LAoteyAgMTYsIDB4Yzg2MCwgMCwgezB4MGMsMHgzZCwweDAzLDB4ZTQsMHgwMCwweGRiLDB4MDIsMHgzZSwweGYwLDB4MmMsMHg5MCwweDRiLDB4N2MsMHgwMCwweGMxLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzg3MCwgMCwgezB4MzIsMHgyMCwweDRmLDB4ZjAsMHgxMywweGUwLDB4MDAsMHhlOCwweDAxLDB4MzIsMHgwMCwweDhjLDB4YWMsMHgwMywweDZhLDB4MDQgfSB9LAoteyAgMTYsIDB4Yzg4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzIgfSB9LAoteyAgMTYsIDB4Yzg5MCwgMCwgezB4NGYsMHhiMCwweDAzLDB4ZTAsMHgwNCwweGZhLDB4NDAsMHgzZSwweGMyLDB4NGUsMHg5OCwweDIzLDB4YWMsMHgxMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzhhMCwgMCwgezB4M2UsMHg1MCwweDA3LDB4YjAsMHgxMywweGFjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMiwweDBmLDB4OTIsMHgwMywweGEwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzhiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4Y2YsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YzhjMCwgMCwgezB4MGMsMHhjOCwweDIzLDB4MzYsMHg4MiwweGNmLDB4ODAsMHgzZiwweDgwLDB4MGMsMHhlMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MjAgfSB9LAoteyAgMTYsIDB4YzhkMCwgMCwgezB4MzMsMHhjMCwweDBlLDB4ZjAsMHgwMywweGY4LDB4MTAsMHhkYywweDAwLDB4MzMsMHgwMCwweDRjLDB4ZTgsMHgyMSwweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4YzhlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YzhmMCwgMCwgezB4NGEsMHg4ZCwweDQyLDB4MjEsMHgwMCwweDhiLDB4NDIsMHgyZSwweGQyLDB4MDgsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGI4LDB4ODggfSB9LAoteyAgMTYsIDB4YzkwMCwgMCwgezB4MzQsMHg2MiwweDBkLDB4YjAsMHgwMiwweGU0LDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwYSwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YzkxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YzkyMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4MGQsMHgwMCwweDg5LDB4MTAsMHgyZSwweDA4LDB4MjgsMHg5MiwweDAyLDB4ZWMsMHgwNCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzkzMCwgMCwgezB4MjIsMHhhMCwweDA4LDB4YjAsMHgwMiwweDY0LDB4MDIsMHhiMywweDAyLDB4MjAsMHhjMCwweDA4LDB4YTIsMHgwMiwweGEwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4YTMsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzk1MCwgMCwgezB4MGEsMHg5MCwweDIyLDB4MGMsMHgxMCwweDgwLDB4MDAsMHgyYywweDAwLDB4MTgsMHgwMiwweDgyLDB4Y2MsMHgwMCwweGIwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk2MCwgMCwgezB4MjYsMHg0MCwweDA5LDB4MzAsMHgwMiwweGM4LDB4MjAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MTAsMHgwNiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4Yzk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2IsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzk4MCwgMCwgezB4MGMsMHhhMSwweDAyLDB4MjQsMHgwMCwweDg4LDB4MDAsMHgzYywweDAwLDB4MGMsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk5MCwgMCwgezB4MzIsMHg4MCwweDBlLDB4YjAsMHgwMywweGNjLDB4ODAsMHhkYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4YTAsMHgwMywweDgwLDB4MDMgfSB9LAoteyAgMTYsIDB4YzlhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YzliMCwgMCwgezB4NGYsMHhjMiwweDEzLDB4ZDQsMHgxMCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHgwMCwweDAzLDB4YmMsMHgwMCwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4YzljMCwgMCwgezB4M2YsMHg0MCwweDBmLDB4ZjAsMHgyMywweGUwLDB4MTIsMHhmYywweDAxLDB4YmYsMHgwMCwweDBmLDB4ZDAsMHgwMywweDY4LDB4MDIgfSB9LAoteyAgMTYsIDB4YzlkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4YzcsMHg4MCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4YzllMCwgMCwgezB4OGIsMHhiNCwweDAzLDB4YjAsMHhjMCwweGNmLDB4MmUsMHgxZiwweDBjLDB4NGYsMHhjMywweDAzLDB4MzAsMHg4MCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4YzlmMCwgMCwgezB4M2YsMHgwOCwweDBmLDB4ZjAsMHgwMCwweDdjLDB4MDAsMHhmZiwweDIxLDB4MzMsMHhlNCwweDBjLDB4ZTAsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2EwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlZSwweDAwLDB4OGIsMHg4MiwweDIzLDB4ZjAgfSB9LAoteyAgMTYsIDB4Y2ExMCwgMCwgezB4MGIsMHhiNSwweDEyLDB4MGQsMHg4OCwweDg4LDB4YzAsMHgwZSwweDk4LDB4MGIsMHg4NiwweDAyLDB4MjEsMHgwMCwweGJiLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2EyMCwgMCwgezB4MmUsMHhlNCwweDRiLDB4ZjcsMHg4MywweDJmLDB4NDQsMHhiZiwweDkwLDB4MjIsMHhjOCwweDQ4LDB4YTYsMHg4MiwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2EzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDA5LDB4OGEsMHgwMCwweDIwLDB4NTAgfSB9LAoteyAgMTYsIDB4Y2E0MCwgMCwgezB4NGIsMHhiMiwweDBhLDB4ODAsMHhjYywweDgzLDB4MDEsMHgwYywweDhjLDB4MGIsMHgyMywweDBhLDB4MDQsMHg2MCwweGIzLDB4MTQgfSB9LAoteyAgMTYsIDB4Y2E1MCwgMCwgezB4MjQsMHg0MCwweDRiLDB4MzAsMHgwMiwweGNjLDB4MTAsMHhiMywweDAwLDB4MjAsMHhjOCwweGU5LDB4MTEsMHgwNiwweDYyLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2E2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDAxLDB4OGEsMHg4MCwweGEyLDB4NDQgfSB9LAoteyAgMTYsIDB4Y2E3MCwgMCwgezB4MGIsMHhiMCwweDAyLDB4YTEsMHgwNCwweDg4LDB4NDAsMHgyZSwweGEwLDB4MGIsMHgyMCwweDAyLDB4MjgsMHgyMCwweGJiLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2E4MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDgsMHhiYiwweDAwLDB4MjIsMHhjMCwweDA5LDB4YjAsMHgwMiwweDcwLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2E5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzMsMHg4MywweDMyLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2FhMCwgMCwgezB4OGYsMHgwMCwweDAzLDB4YTAsMHgwMiwweGNiLDB4YzQsMHgzZSwweDI4LDB4MDcsMHg4YiwweDAzLDB4MjEsMHgwMCwweGY5LDB4YzAgfSB9LAoteyAgMTYsIDB4Y2FiMCwgMCwgezB4M2UsMHgxMCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDAsMHg3YiwweDAwLDB4MzIsMHhjMCwweDBkLDB4YTAsMHgwMywweDUwLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2FjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg5YywweDAyLDB4ZmYsMHgwMCwweDNmLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2FkMCwgMCwgezB4MGYsMHhmNCwweDQzLDB4NWUsMHg4MCwweGZjLDB4OTQsMHgzZiwweDAwLDB4MGYsMHhjMCwweDJiLDB4ZjIsMHg1MCwweGZkLDB4MjEgfSB9LAoteyAgMTYsIDB4Y2FlMCwgMCwgezB4N2UsMHg4NCwweDhmLDB4ZjAsMHgwMywweDZjLDB4MGMsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBlLDB4NjIsMHgwMywweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2FmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2IwMCwgMCwgezB4MmMsMHg4MCwweDAzLDB4NjksMHgwMCwweGNiLDB4MzAsMHhiMiwweDAwLDB4NGYsMHhiMywweDQzLDB4ZTUsMHgwMCwweGNiLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2IxMCwgMCwgezB4NzIsMHgxOCwweDJjLDB4YjAsMHgwMywweGVjLDB4MjgsMHhjMywweDIxLDB4M2EsMHhjMSwweDBmLDB4OTQsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2IyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgzYywweDAwLDB4OGIsMHgyMCwweDIyLDB4NTAgfSB9LAoteyAgMTYsIDB4Y2IzMCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MjgsMHgwMCwweDg4LDB4YzAsMHgyYSwweDAwLDB4OGIsMHhiNCwweDAyLDB4ZTgsMHgwMCwweGRiLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2I0MCwgMCwgezB4NjIsMHgzMCwweDA4LDB4ZjAsMHgwMiwweGZjLDB4MDAsMHg4ZiwweDgwLDB4MjIsMHhjMCwweDBiLDB4OTUsMHg0NywweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2I1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjEsMHgwMCwweDIwLDB4YzIgfSB9LAoteyAgMTYsIDB4Y2I2MCwgMCwgezB4NDgsMHgzMCwweDAyLDB4NDksMHg4MCwweDgzLDB4NDIsMHg2MCwweDEyLDB4MGIsMHgzMCwweDAyLDB4YzgsMHgwMCwweDgyLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2I3MCwgMCwgezB4MmMsMHgzMCwweDA5LDB4YjAsMHgwMiwweGNmLDB4MDEsMHg4MywweDUwLDB4MmEsMHhjMCwweDBiLDB4MjAsMHgwMiwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2I4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDAwLDB4OWQsMHg4MCwweGEwLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2I5MCwgMCwgezB4MDgsMHg3OSwweDIyLDB4NWUsMHg2MCwweDg3LDB4OTAsMHgyOSwweGEwLDB4MGIsMHg3OCwweDAyLDB4YzYsMHgwMCwweDkyLDB4ODEgfSB9LAoteyAgMTYsIDB4Y2JhMCwgMCwgezB4MDUsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRlLDB4NDAsMHg4NywweDgwLDB4MjEsMHhlMCwweDBiLDB4MjksMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZjIsMHgwMCwweDMwLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2JjMCwgMCwgezB4MDgsMHgzYSwweDAzLDB4NDQsMHgwNCwweGMzLDB4MTQsMHgzMCwweGMwLDB4MGYsMHgyMiwweDAzLDB4Y2MsMHg4MCwweGMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JkMCwgMCwgezB4YTQsMHhkMiwweDBkLDB4MzAsMHgxMywweGNjLDB4MjAsMHhjMywweDAwLDB4MzgsMHhjNCwweDRmLDB4MDQsMHg0MywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2JlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHg5YywweDAwLDB4ZWUsMHgwMCwweDNmLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2JmMCwgMCwgezB4MGYsMHg3MCwweDAzLDB4YjQsMHgwMiwweGY0LDB4MTAsMHgzZiwweGMwLDB4OGYsMHhhMCwweDAzLDB4ZmMsMHgwMCwweDdlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2MwMCwgMCwgezB4M2IsMHhjMCwweDBlLDB4ZjAsMHg4MywweGVjLDB4MDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4Y2MxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmYywweDAwLDB4ZjksMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2MyMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4YWEsMHgxMiwweGNiLDB4MDEsMHgzMiwweDgwLDB4MGYsMHhiMCwweDEzLDB4MjgsMHgxNCwweGY5LDB4ODAgfSB9LAoteyAgMTYsIDB4Y2MzMCwgMCwgezB4M2EsMHg0MCwweDAzLDB4YjQsMHgwMywweGVjLDB4NDIsMHhjYiwweDE4LDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2M0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5ZCwweDAwLDB4YjUsMHgwMCwweDJkLDB4YzQgfSB9LAoteyAgMTYsIDB4Y2M1MCwgMCwgezB4MGIsMHg3MCwweDRiLDB4N2MsMHgwMCwweDg0LDB4MDAsMHgyMSwweDgwLDB4MGIsMHg3MCwweDAyLDB4OTQsMHgxMCwweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2M2MCwgMCwgezB4MjksMHhjMCwweDBiLDB4NzIsMHg4MiwweGRjLDB4MDAsMHg4NywweDIwLDB4MmQsMHhjMSwweDBlLDB4NzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2M3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2M4MCwgMCwgezB4MGIsMHg2OCwweDAyLDB4OWUsMHgwMCwweDgzLDB4ODAsMHgyMSwweGUwLDB4NWIsMHgzOCwweDAyLDB4MWUsMHgwMCwweGI0LDB4YzAgfSB9LAoteyAgMTYsIDB4Y2M5MCwgMCwgezB4MjUsMHhlMCwweDA5LDB4NzgsMHgzMiwweGNlLDB4MDAsMHg5NywweDgwLDB4MmQsMHhlMCwweDBiLDB4NWMsMHg0ZSwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2NhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4YjMsMHg0NCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2NiMCwgMCwgezB4MGIsMHgzYywweDAyLDB4Y2MsMHg0MCwweDkzLDB4MDgsMHgyMCwweGUwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgxMCwweGIzLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2NjMCwgMCwgezB4MjgsMHhkOCwweDFiLDB4MzAsMHgwMiwweGNjLDB4MDgsMHg5MywweDAxLDB4NmMsMHhjMCwweDBhLDB4YjgsMHg4MiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2NkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZjYsMHgxMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4Y2NlMCwgMCwgezB4NGIsMHhlZCwweDgzLDB4YjgsMHgwMCwweGNlLDB4ZTQsMHhiMywweGEzLDB4MGYsMHhlMCwweDAzLDB4MzgsMHgwMCwweGZlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2NmMCwgMCwgezB4M2IsMHg4MCwweDBkLDB4YTAsMHgwMiwweGU4LDB4MDAsMHhkYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4ZTgsMHgwMiwweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2QwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDEwLDB4ZjgsMHg0MCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2QxMCwgMCwgezB4MGYsMHg4MCwweDEzLDB4NjAsMHgwMCwweGUwLDB4MDAsMHgzZSwweDAwLDB4NDMsMHgwOCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDggfSB9LAoteyAgMTYsIDB4Y2QyMCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhlOCwweDQwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgyMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2QzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZDksMHhjMCwweGJlLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2Q0MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MDEsMHg5YSwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4NDAsMHgwOSwweDEwLDB4MGUsMHg0MCwweDBmLDB4OWEsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2Q2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDA0LDB4ODksMHgwNCwweGEyLDB4NjAgfSB9LAoteyAgMTYsIDB4Y2Q3MCwgMCwgezB4OGIsMHg5ZCwweDgwLDB4YTYsMHgwMCwweGI5LDB4ODAsMHgyMiwweDQwLDB4NDgsMHg5OCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q4MCwgMCwgezB4MmUsMHg0MCwweDhiLDB4OTAsMHgwMiwweGU0LDB4OTQsMHg4OSwweDYwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgwYiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4OTksMHgwOCwweGFlLDB4NDggfSB9LAoteyAgMTYsIDB4Y2RhMCwgMCwgezB4NGIsMHgxMCwweDAyLDB4ZTUsMHg4MSwweGI5LDB4MTAsMHgyMCwweDQ0LDB4MWIsMHg5NCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2RiMCwgMCwgezB4NmUsMHg2MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2RjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDgwLDB4ODksMHgwMCwweGEwLDB4NjggfSB9LAoteyAgMTYsIDB4Y2RkMCwgMCwgezB4MGIsMHgxMiwweDAyLDB4ODQsMHg4OSwweGIxLDB4MjAsMHgyMCwweDQ4LDB4MWEsMHgxMiwweDEyLDB4MDQsMHg4MCwweGIxLDB4MjIgfSB9LAoteyAgMTYsIDB4Y2RlMCwgMCwgezB4MGMsMHg0OCwweDBiLDB4MTIsMHgwMiwweGM0LDB4ODEsMHhhMSwweDIwLDB4MmMsMHg0MCwweDBiLDB4MTIsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2RmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZDgsMHgwMCwweGJlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2UwMCwgMCwgezB4MGYsMHgwNSwweDBiLDB4ZTEsMHg0MCwweGY4LDB4MDAsMHgzMiwweDE0LDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2UxMCwgMCwgezB4MmUsMHg4MCwweDBmLDB4ODUsMHgxMywweGUwLDB4MDIsMHhjOCwweDAwLDB4M2UsMHgxNCwweDBmLDB4MDUsMHgwMSwweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4Y2UyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhlNCwweDQwLDB4ZmQsMHgwMCwweGJmLDB4NDQgfSB9LAoteyAgMTYsIDB4Y2UzMCwgMCwgezB4MGYsMHhkMSwweDAzLDB4ZjQsMHg0MCwweDdkLDB4MTAsMHhiZiwweDQ0LDB4NDUsMHhmMSwweDJiLDB4ZjQsMHg0MCwweGZkLDB4MTAgfSB9LAoteyAgMTYsIDB4Y2U0MCwgMCwgezB4M2YsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDEwLDB4M2UsMHg0MCwweDBmLDB4ZDEsMHgwMywweGE2LDB4MDYgfSB9LAoteyAgMTYsIDB4Y2U1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDAwLDB4ZmQsMHgwMCwweDFmLDB4NjIgfSB9LAoteyAgMTYsIDB4Y2U2MCwgMCwgezB4MGYsMHhkOCwweDgyLDB4MzYsMHgwMCwweGJkLDB4YTAsMHgzYiwweDY4LDB4MGMsMHhkYywweDgzLDB4MjYsMHhjOCwweGQ5LDB4YTAgfSB9LAoteyAgMTYsIDB4Y2U3MCwgMCwgezB4MzMsMHg2MCwweDBkLDB4OTksMHg4MywweDU2LDB4MjAsMHhkNSwweGE4LDB4MmUsMHg0NCwweDBjLDB4ZDgsMHg4MywweDg2LDB4MDQgfSB9LAoteyAgMTYsIDB4Y2U4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDQ4LDB4YjgsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2U5MCwgMCwgezB4MGIsMHgwYSwweDgyLDB4MjIsMHgyMCwweGI4LDB4NTAsMHgyMiwweGJhLDB4MDgsMHg4YSwweDIyLDB4MjIsMHg4MCwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2VhMCwgMCwgezB4MjIsMHgwMSwweDA4LDB4MGMsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MmUsMHgyOCwweDg4LDB4ODgsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2ViMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2VjMCwgMCwgezB4MWIsMHgxMCwweDBhLDB4ODQsMHg0MCwweGIxLDB4MDAsMHgyOCwweDU4LDB4MGEsMHgzMiwweDAyLDB4MDUsMHgwMCwweDk5LDB4NDAgfSB9LAoteyAgMTYsIDB4Y2VkMCwgMCwgezB4MjAsMHg2NSwweDA5LDB4MTAsMHg0MiwweGM0LDB4MDAsMHg5MSwweDAwLDB4MmMsMHg0MCwweDBhLDB4MzAsMHg4MiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2VlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2VmMCwgMCwgezB4MWIsMHg5MCwweDAyLDB4YTUsMHg4MCwweGI5LDB4MTAsMHgyMiwweDQ4LDB4MDgsMHgxMCwweDQyLDB4MDQsMHgxMCwweDA5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2YwMCwgMCwgezB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg5YiwweDAwLDB4MmMsMHg0MCwweDBhLDB4OTQsMHgyMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4Y2YxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2YyMCwgMCwgezB4MGYsMHg5MCwweDEzLDB4YTcsMHgxMCwweGY5LDB4NjAsMHhiYSwweDUwLDB4MmUsMHg5YywweDBhLDB4MjUsMHg4NCwweGQxLDB4ZjAgfSB9LAoteyAgMTYsIDB4Y2YzMCwgMCwgezB4YjIsMHg2MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwMywweGE4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Y0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDBjLDB4ZjksMHg5MCwweDNlLDB4NmEgfSB9LAoteyAgMTYsIDB4Y2Y1MCwgMCwgezB4OGYsMHg5MCwweDIzLDB4NjYsMHgwMCwweGYxLDB4MDgsMHgzYywweDQwLDB4MGYsMHg5YywweDQzLDB4ZTQsMHg0MCwweGY5LDB4ODAgfSB9LAoteyAgMTYsIDB4Y2Y2MCwgMCwgezB4M2EsMHg0NCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDQsMHhlOSwweDAyLDB4M2UsMHg0MCwweDJkLDB4OTEsMHgxMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Y3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgyMCwweDNlLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2Y4MCwgMCwgezB4MGMsMHgwMCwweDAzLDB4YTEsMHgyMCwweGU4LDB4NTAsMHgzMiwweDEwLDB4MmMsMHg4YywweDAzLDB4MjEsMHgwMCwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Y5MCwgMCwgezB4MzIsMHgwMiwweDBmLDB4MDAsMHgxMywweDIwLDB4ODgsMHhjOCwweDA4LDB4MzIsMHgwMCwweDBmLDB4OGMsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2ZhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDIwLDB4OGUsMHhlMywweDJmLDB4OTAgfSB9LAoteyAgMTYsIDB4Y2ZiMCwgMCwgezB4MGEsMHhlMCwweDA2LDB4M2IsMHgwMCwweGVlLDB4MDQsMHgyMywweDkwLDB4MDgsMHhlMCwweDAyLDB4MjgsMHgwOCwweDhhLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2ZjMCwgMCwgezB4NzUsMHg5MCwweDhiLDB4YTAsMHg0MSwweDU4LDB4OTAsMHg4ZSwweDgwLDB4MmEsMHg4MSwweDBiLDB4ZTAsMHgwMywweDhhLDB4MTAgfSB9LAoteyAgMTYsIDB4Y2ZkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0ZSwweDAwLDB4YTMsMHgwMCwweDZjLDB4NjAgfSB9LAoteyAgMTYsIDB4Y2ZlMCwgMCwgezB4MDgsMHgzOCwweDFhLDB4OGUsMHg0MCwweGEwLDB4ODAsMHgyMCwweGNjLDB4MDksMHgzMCwweDAyLDB4MGMsMHgwNSwweGEzLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2ZmMCwgMCwgezB4MjgsMHhjNCwweDBiLDB4MzAsMHgwMiwweDBkLDB4MDEsMHg4MywweGMwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDAwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxZSwweDA4LDB4ODcsMHgwMCwweDJkLDB4NjIgfSB9LAoteyAgMTYsIDB4ZDAxMCwgMCwgezB4MGIsMHg3MCwweDkyLDB4MWMsMHgwOCwweGEwLDB4MDAsMHg2MSwweGMwLDB4MDksMHg2MCwweDA2LDB4MWMsMHg4MCwweGE3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDAyMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzIsMHgwMiwweDU4LDB4MDEsMHg4NywweDg4LDB4MjksMHhjMCwweDBiLDB4NjAsMHgxMiwweGE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDAzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZTYsMHg4MCwweDNkLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDA0MCwgMCwgezB4MGMsMHg3OCwweDQyLDB4OTYsMHgwMCwweGU0LDB4ODAsMHhhMywweDYwLDB4MGQsMHg3OCwweDAzLDB4M2YsMHgwMCwweGUzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDA1MCwgMCwgezB4MjEsMHhlMCwweDBmLDB4N2IsMHgwMywweDE2LDB4MDgsMHhjNywweDgwLDB4MzEsMHhlMiwweDRmLDB4NzgsMHg0MywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHg4YywweDAxLDB4ZjgsMHgwMCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDA3MCwgMCwgezB4MGUsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGY4LDB4MDEsMHgzZSwweDQwLDB4NGUsMHgzMCwweDMzLDB4ZWQsMHgyMCwweGRiLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDA4MCwgMCwgezB4YmUsMHhjMCwweDBmLDB4YjQsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhkOCwweDBmLDB4YTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZDA5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4YzcsMHg4NCwweDIzLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDBhMCwgMCwgezB4MGMsMHg3OCwweDBiLDB4YmUsMHgwMCwweGZkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhlYiwweDAzLDB4M2UsMHgwMCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDBiMCwgMCwgezB4M2IsMHgyNSwweDBjLDB4ZjgsMHg4MywweDdlLDB4NDAsMHhjZCwweDgwLDB4MzMsMHhlMiwweDBiLDB4ZjksMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDBjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAyLDB4ODcsMHgwMCwweDE1LDB4NDggfSB9LAoteyAgMTYsIDB4ZDBkMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4MTQsMHgyMCwweGI2LDB4MDAsMHgzNSwweDlhLDB4NDksMHhjOCwweDAzLDB4OWMsMHg4NCwweGE3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDBlMCwgMCwgezB4MzksMHhkMCwweDBhLDB4NzAsMHgwMiwweDFhLDB4MDgsMHhhNCwweDAwLDB4MjEsMHhjMCwweDA5LDB4NjEsMHg0MiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDBmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHgwMCwweDIxLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDEwMCwgMCwgezB4MDgsMHg3MSwweDAyLDB4OTQsMHgwMCwweGI1LDB4MDAsMHgyZCwweDQwLDB4MGIsMHhmMSwweDIyLDB4NWMsMHgwMiwweDA3LDB4MDggfSB9LAoteyAgMTYsIDB4ZDExMCwgMCwgezB4MmMsMHg1MCwweDA4LDB4NzAsMHgwMiwweDUwLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjNCwweDBiLDB4NTAsMHg0MiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDEyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDAwLDB4ODMsMHgwMiwweDI0LDB4NDAgfSB9LAoteyAgMTYsIDB4ZDEzMCwgMCwgezB4MTgsMHgzZCwweDBhLDB4MDEsMHgwMCwweGIwLDB4NTgsMHgyNCwweDIwLDB4MDksMHgzMCwweDAyLDB4OGYsMHg0MCwweDgzLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDE0MCwgMCwgezB4MmMsMHhjMSwweDBhLDB4MzAsMHg0MiwweDA4LDB4MDAsMHhiMywweDAxLDB4NmMsMHhjMCwweDA5LDB4MDgsMHgxNiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDE1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4YywweDAwLDB4OGIsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDE2MCwgMCwgezB4MGMsMHgyNSwweDAzLDB4YTgsMHg0OCwweGY4LDB4ODEsMHgzZSwweDgwLDB4MGYsMHg4MCwweDYzLDB4N2MsMHgwMCwweGNiLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDE3MCwgMCwgezB4M2EsMHhjMCwweDBjLDB4ZjAsMHgwMywweDZjLDB4MDAsMHhjYSwweDAyLDB4YmYsMHhjMCwweDBmLDB4OTgsMHg4YiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDE4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4NTAgfSB9LAoteyAgMTYsIDB4ZDE5MCwgMCwgezB4MmYsMHhhNCwweDBiLDB4YzgsMHgwMCwweGYwLDB4NDAsMHgzZSwweGQwLDB4MGYsMHhhMCwweDMzLDB4ZWMsMHgyMCwweGZiLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDFhMCwgMCwgezB4N2EsMHhlMCwweDBmLDB4YjAsMHgwMywweGVkLDB4MDgsMHhlOSwweDAzLDB4MzIsMHhjMCwweDBkLDB4OTAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDFiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDQwLDB4ZWUsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDFjMCwgMCwgezB4MGMsMHhkYSwweDAzLDB4NzAsMHgwNCwweGNjLDB4MDIsMHhiMSwweGEwLDB4MGUsMHhmMCwweDIzLDB4ZWMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDFkMCwgMCwgezB4MzcsMHgyMCwweGNkLDB4YjAsMHg3MywweGVjLDB4ODgsMHhmYiwweDgwLDB4M2YsMHhjMCwweDBmLDB4MzAsMHgwMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDFlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2ZSwweDAwLDB4ODgsMHg4MCwweDJjLDB4ZTEgfSB9LAoteyAgMTYsIDB4ZDFmMCwgMCwgezB4MDgsMHg5NCwweDBhLDB4YTksMHgwMiwweDg4LDB4NDAsMHgyMiwweGQwLDB4MDgsMHhiOSwweDQyLDB4ZWMsMHgwNCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDIwMCwgMCwgezB4MmMsMHhkNCwweDBkLDB4YjAsMHgwMiwweGVkLDB4MjAsMHhiYiwweGQwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDIxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNCwweDAwLDB4YWIsMHg4MCwweDJlLDB4ZjAgfSB9LAoteyAgMTYsIDB4ZDIyMCwgMCwgezB4MjksMHhhMCwweDgyLDB4NmQsMHgwMCwweDg4LDB4MDgsMHgyMiwweDA0LDB4MDgsMHg5MCwweDQyLDB4ZWMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDIzMCwgMCwgezB4MmEsMHg4MSwweDA4LDB4YjAsMHgwMiwweGU0LDB4MDksMHhiYSwweDA0LDB4MmUsMHhjMSwweDRiLDB4OTgsMHg4MiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDI1MCwgMCwgezB4MGEsMHgyMSwweDAyLDB4ODQsMHgxMCwweDgyLDB4MDAsMHhlMCwweDAwLDB4MTgsMHgwYSwweDEyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI2MCwgMCwgezB4MGMsMHhjMCwweDA5LDB4MzAsMHgwMiwweGNjLDB4OTAsMHhiMCwweDAwLDB4MmMsMHhjMCwweDBiLDB4MTAsMHgwMiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4ZWIsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI4MCwgMCwgezB4MmMsMHhiNCwweDAzLDB4NjQsMHgwOCwweDg4LDB4MDAsMHhiMiwweDAwLDB4MGMsMHhiMiwweDQzLDB4ZmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI5MCwgMCwgezB4NTYsMHgwMCwweDBjLDB4ZjAsMHgwMSwweGU0LDB4MDAsMHhmYiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ODAsMHgwYiwweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZDJhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDJiMCwgMCwgezB4MmQsMHhmMCwweDYxLDB4ZjAsMHgwMCwweGY0LDB4MDAsMHgyNywweDAxLDB4MGQsMHhiMSwweDExLDB4ZmMsMHgwMCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDJjMCwgMCwgezB4MDcsMHhjMCwweDBmLDB4ZjAsMHgwMywweGVjLDB4NDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweDY4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZDJkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNiwweDAwLDB4ZWYsMHg5MCwweDNkLDB4NGMgfSB9LAoteyAgMTYsIDB4ZDJlMCwgMCwgezB4MmMsMHhjMCwweDEzLDB4ZjQsMHgwOCwweGZkLDB4MjAsMHgzNywweDRjLDB4OGUsMHg4MiwweDgzLDB4NzQsMHg4NCwweGRjLDB4YzIgfSB9LAoteyAgMTYsIDB4ZDJmMCwgMCwgezB4M2YsMHhkOCwweDBkLDB4ZjIsMHgwMywweGVjLDB4YzAsMHhmZiwweDgxLDB4M2YsMHgwMCwweDBjLDB4ZjgsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDMwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlNiwweDAwLDB4OGIsMHgyNCwweDJlLDB4NWMgfSB9LAoteyAgMTYsIDB4ZDMxMCwgMCwgezB4MDgsMHg4ZCwweDAyLDB4ZmYsMHg0OCwweGI5LDB4OTAsMHgyZiwweDU0LDB4MGIsMHg4NCwweDgyLDB4M2UsMHg0MCwweGEwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDMyMCwgMCwgezB4MmUsMHhjNCwweDBhLDB4ZmMsMHg0MiwweGVkLDB4ODAsMHhiOSwweDgwLDB4MmUsMHg2MCwweDBhLDB4OTgsMHgxMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDMzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlNCwweDAxLDB4YTMsMHgwMCwweDI4LDB4NDggfSB9LAoteyAgMTYsIDB4ZDM0MCwgMCwgezB4MGEsMHgwMCwweDQyLDB4YzQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQ5LDB4MGIsMHgwYSwweDQyLDB4MDQsMHhhMiwweDkxLDB4MjEgfSB9LAoteyAgMTYsIDB4ZDM1MCwgMCwgezB4MmMsMHhjOSwweDA4LDB4MzEsMHgwMiwweDhjLDB4YzEsMHhhMywweDAwLDB4MmMsMHg0MCwweDA4LDB4MTgsMHgwMiwweGEyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDM2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhMCwweDIwLDB4OGIsMHg4MiwweDJlLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDM3MCwgMCwgezB4NTgsMHg4MCwweDAyLDB4ZTQsMHgwMCwweGJiLDB4MTAsMHgyZSwweDQwLDB4MGIsMHhhMSwweDEyLDB4MGMsMHgwMSwweDg5LDB4MTAgfSB9LAoteyAgMTYsIDB4ZDM4MCwgMCwgezB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGVjLDB4MDEsMHhiOCwweDgwLDB4MmUsMHhlMiwweDBhLDB4YTEsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDM5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYiwweDQwLDB4ZWIsMHg0MCwweDNlLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDNhMCwgMCwgezB4MGUsMHg4NywweDMzLDB4ZTQsMHgwMCwweGI5LDB4YTEsMHgzNiwweGMwLDB4MGUsMHhhOCwweDBiLDB4MjYsMHgwMCwweGRhLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDNiMCwgMCwgezB4M2UsMHhjMCwweDhkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDg1LDB4M2UsMHhlMSwweDA4LDB4YjgsMHgwMywweDkwLDB4MDUgfSB9LAoteyAgMTYsIDB4ZDNjMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiOCwweDAwLDB4ZmYsMHgwMiwweDJmLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDNkMCwgMCwgezB4MDMsMHhlOCwweDgzLDB4ZmMsMHgxMCwweGZkLDB4ODAsMHgxZiwweDQwLDB4MWYsMHhkMCwweDEzLDB4YmUsMHg0MCwweGVlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDNlMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweGZjLDB4MDgsMHhmZCwweDAwLDB4M2MsMHhjMCwweDBmLDB4ZDAsMHgxMSwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDNmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNCwweDAwLDB4ZGIsMHgwMCwweGIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDQwMCwgMCwgezB4MGUsMHg5NCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHhiYSwweGMwLDB4MGMsMHgyMCwweDAzLDB4ZTQsMHg5MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQxMCwgMCwgezB4M2EsMHhjMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDEsMHhmYSwweDAwLDB4M2UsMHhkMCwweDJjLDB4OTgsMHgwMywweDkwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDQyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgwMywweDAwLDB4OGIsMHgwMCwweDIyLDB4NDggfSB9LAoteyAgMTYsIDB4ZDQzMCwgMCwgezB4MDgsMHg4NCwweDIyLDB4MmMsMHgwMCwweGI5LDB4MDAsMHgyMiwweGMwLDB4MDgsMHhhMCwweDAyLDB4ZWQsMHgwMCwweDhiLDB4YTAgfSB9LAoteyAgMTYsIDB4ZDQ0MCwgMCwgezB4MjEsMHhjMCwweDA4LDB4ZjAsMHgwMiwweGZjLDB4MDAsMHhiOSwweDgwLDB4MmUsMHhjMCwweDA4LDB4YTAsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQ1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0NSwweDIwLDB4OTMsMHgwMCwweDIyLDB4ZjggfSB9LAoteyAgMTYsIDB4ZDQ2MCwgMCwgezB4MGIsMHgzMCwweDBhLDB4ODQsMHg0MCwweGIyLDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMCwweDAyLDB4YzQsMHgwMCwweDgwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDQ3MCwgMCwgezB4MjgsMHhjMCwweDI4LDB4MzksMHgwMiwweDRjLDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQ4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgzNiwweDAwLDB4OWYsMHg4MCwweDIxLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDQ5MCwgMCwgezB4MDksMHgzOCwweDAyLDB4OWUsMHgwMCwweGIyLDB4YzAsMHgyMCwweDYwLDB4NDgsMHg0OCwweDEyLDB4ZDYsMHhjNiwweDg2LDB4ZDAgfSB9LAoteyAgMTYsIDB4ZDRhMCwgMCwgezB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMCwweGRlLDB4ODAsMHhiNywweDgyLDB4MmQsMHhlMCwweDA4LDB4ZjgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDRiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDIwLDB4ZDMsMHgxMCwweDMwLDB4YzggfSB9LAoteyAgMTYsIDB4ZDRjMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4ODQsMHgwMCwweGYxLDB4MDAsMHgzMCwweDQwLDB4MjQsMHgxOSwweDAzLDB4ZTQsMHhjMCwweGUwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDRkMCwgMCwgezB4M2EsMHhjMCwweDBjLDB4MzIsMHgwMywweGNlLDB4ODAsMHhiMSwweDI4LDB4M2MsMHhjMCwweDBjLDB4MzAsMHgxMywweDkyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHg5YywweDAwLDB4ZTYsMHgwMCwweDdmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDRmMCwgMCwgezB4MGUsMHhmMCwweDIzLDB4NzQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZmMsMHhkMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDUwMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjQsMHgwMywweGZjLDB4MDAsMHhmZSwweDAwLDB4M2YsMHhjMCwweDBmLDB4NzEsMHgwMywweGQwLDB4MTIgfSB9LAoteyAgMTYsIDB4ZDUxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZSwweDAwLDB4Y2IsMHgwMCwweDE2LDB4YzAgfSB9LAoteyAgMTYsIDB4ZDUyMCwgMCwgezB4MGQsMHg4MCwweDAzLDB4MjcsMHgyMCwweGNiLDB4MDAsMHgzZSwweGMyLDB4MGEsMHhiMCwweDUzLDB4ZTQsMHgyOCwweGMxLDB4ODEgfSB9LAoteyAgMTYsIDB4ZDUzMCwgMCwgezB4MzIsMHhjMSwweDBlLDB4YjksMHgwMywweDJjLDB4MDAsMHhmMSwweDgwLDB4MzUsMHhlMCwweDBjLDB4YjgsMHgwMywweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDU0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAyLDB4ODcsMHgxMCwweDJkLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDU1MCwgMCwgezB4MDgsMHg3MCwweDAzLDB4NWMsMHgwMCwweGE3LDB4MDAsMHgyZCwweDQwLDB4MjgsMHg3MCwweDAyLDB4ZDQsMHgwNCwweDg3LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDU2MCwgMCwgezB4YTEsMHhkMCwweDBiLDB4NzIsMHgwMiwweDFkLDB4MDAsMHhmNywweDAwLDB4MjEsMHhjMCwweDBkLDB4NTAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDU3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4ODUsMHg4MCwweDI1LDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDU4MCwgMCwgezB4MDksMHg3OCwweDAyLDB4MzcsMHgwMywweDg3LDB4ODAsMHgyZiwweGUwLDB4MDgsMHg3OCwweDEyLDB4YzYsMHgxMCwweDhkLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDU5MCwgMCwgezB4MjUsMHhlOCwweDBiLDB4MzgsMHgwMiwweDFlLDB4ODAsMHhiYywweDg0LDB4MjUsMHhlMCwweDA4LDB4NTgsMHgwMiwweDcwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDVhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjZCwweDgwLDB4ODMsMHg4OCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDViMCwgMCwgezB4MDgsMHgzYywweDAyLDB4NGUsMHgwMSwweGEzLDB4ZDIsMHgyZSwweGM0LDB4MDgsMHhiMSwweDAyLDB4Y2MsMHgwMCwweDgzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDVjMCwgMCwgezB4MjQsMHhjMSwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDQwLDB4YTAsMHhkMiwweDA5LDB4MzAsMHgxMiwweDUyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDVkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDAwLDB4Y2EsMHhjMCwweDM2LDB4ODAgfSB9LAoteyAgMTYsIDB4ZDVlMCwgMCwgezB4MGQsMHg2NywweDEzLDB4MjgsMHgwMCwweGNlLDB4MDAsMHgzZSwweGEwLDB4MGMsMHhlZCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDVmMCwgMCwgezB4MzYsMHg4MCwweDFlLDB4YTAsMHgwYiwweDI4LDB4MDQsMHhmZSwweDAwLDB4YjcsMHhiMiwweDBjLDB4ZTAsMHgwYiwweDdhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDYwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDQwLDB4ZjgsMHgxMCwweDJlLDB4MTAgfSB9LAoteyAgMTYsIDB4ZDYxMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMSwweGQ4LDB4MGEsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4YzAsMHgwMiwweGY4LDB4MDggfSB9LAoteyAgMTYsIDB4ZDYyMCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MTAsMHhlOCwweDIwLDB4YmUsMHgwMCwweDBmLDB4ODAsMHgxMywweDkyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDYzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNSwweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDY0MCwgMCwgezB4MGMsMHg5MSwweDAzLDB4MjYsMHgwMCwweDYxLDB4ODAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDY1MCwgMCwgezB4MWUsMHg0MCwweDBjLDB4OWMsMHgwMywweGU0LDB4MDEsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDY2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NywweDAwLDB4YjksMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDY3MCwgMCwgezB4MDAsMHg5YywweDAyLDB4YTYsMHgwMCwweDc5LDB4MDAsMHgyMiwweDQwLDB4MjgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDY4MCwgMCwgezB4MmMsMHg0NCwweDA4LDB4OTgsMHgwMiwweGU0LDB4MDAsMHhiOSwweDgwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YmIsMHgwMCwweDI2LDB4NTAgfSB9LAoteyAgMTYsIDB4ZDZhMCwgMCwgezB4MjgsMHg5MCwweDgyLDB4MjQsMHg4NCwweDk5LDB4MjAsMHgyMiwweDQwLDB4NDksMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDZiMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDYwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDZjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNiwweDAwLDB4YjEsMHgwMCwweDJlLDB4NDggfSB9LAoteyAgMTYsIDB4ZDZkMCwgMCwgezB4MDgsMHgxMiwweDAyLDB4ODQsMHg4MCwweGIxLDB4MjAsMHhhMCwweDQ4LDB4MDksMHgxMiwweDBhLDB4MDQsMHg4MCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDZlMCwgMCwgezB4MmMsMHg0OCwweDI4LDB4MTIsMHg0MiwweGM0LDB4ODgsMHgzMSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MTgsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHg1MCwweDM2LDB4MTQgfSB9LAoteyAgMTYsIDB4ZDcwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGU4LDB4MDAsMHgzMiwweDE0LDB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGM4LDB4NTAgfSB9LAoteyAgMTYsIDB4ZDcxMCwgMCwgezB4M2UsMHgxNCwweDBjLDB4ODAsMHgwMywweGUxLDB4NDAsMHgzOCwweDAwLDB4M2UsMHgwMCwweDhmLDB4ODAsMHgwMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4ZDcyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhkNCwweDAwLDB4ZmIsMHgwNCwweDNkLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDczMCwgMCwgezB4MGYsMHg1MSwweDIzLDB4ZDQsMHg0OCwweGVkLDB4MTAsMHgzZCwweDQ0LDB4NGUsMHhkMSwweDIzLDB4ZjQsMHg0MiwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDc0MCwgMCwgezB4M2UsMHg0NCwweDhmLDB4OTEsMHgwMywweGU0LDB4NTgsMHhmZCwweDAwLDB4M2YsMHg1MCwweDBmLDB4NTAsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4ZDc1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4ZjksMHgwMCwweDNkLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDc2MCwgMCwgezB4MGMsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGRkLDB4MDIsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHg0MCwweGM5LDB4MTAgfSB9LAoteyAgMTYsIDB4ZDc3MCwgMCwgezB4MzcsMHg0MCwweDA3LDB4ZDAsMHgwNywweDI0LDB4MDAsMHhlNSwweDAwLDB4MmYsMHg2YSwweDBmLDB4NzAsMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDc4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDAwLDB4YjgsMHgwMCwweDNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDc5MCwgMCwgezB4ODAsMHg4MCwweDAyLDB4ZTAsMHgwMCwweDg4LDB4MDAsMHgyZSwweDAwLDB4MGEsMHg4MCwweDUzLDB4YTIsMHg4MCwweDJjLDB4YTAgfSB9LAoteyAgMTYsIDB4ZDdhMCwgMCwgezB4MjIsMHgwMCwweDBiLDB4ODAsMHgwYSwweDIwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgxMCwweDA5LDB4ODAsMHgwMywweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDdiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDZjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDdjMCwgMCwgezB4MmEsMHgxMCwweDAyLDB4ODQsMHgwMSwweDgxLDB4ODAsMHgyZSwweDQwLDB4MDksMHgxMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDdkMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDg0LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCwweDBiLDB4OTgsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDdlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNCwweDIwLDB4YjksMHgwMCwweDJhLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDdmMCwgMCwgezB4ODgsMHhiNCwweDAyLDB4ZTYsMHgwMSwweGE5LDB4MjAsMHgyZSwweDQ4LDB4MGEsMHg5MCwweDAwLDB4YTQsMHg0MCwweGFkLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDgwMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTAsMHgxMiwweGE0LDB4MDQsMHhiOSwweDAxLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDgxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHhjMCwweDNlLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDgyMCwgMCwgezB4MGMsMHg5NCwweDEzLDB4YTYsMHgwMiwweGQ5LDB4NDIsMHgxYywweDYwLDB4MGMsMHg5ZSwweDAxLDB4YzYsMHgwNCwweGMxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDgzMCwgMCwgezB4YjIsMHg0MCwweDFmLDB4OTAsMHgwMiwweGE0LDB4MDAsMHhlOSwweDA4LDB4M2UsMHg2OCwweDRmLDB4OTgsMHgwYiwweDY4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDg0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNiwweDQwLDB4ZjksMHgyMCwweDM4LDB4NzAgfSB9LAoteyAgMTYsIDB4ZDg1MCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5YywweDEzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDg2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MTAsMHgwMywweDY0LDB4MTAsMHhmOSwweDBhLDB4M2UsMHg1MCwweDBkLDB4OWEsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDg3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4ZDgsMHgwNCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDg4MCwgMCwgezB4MGMsMHg4MSwweDEzLDB4YzAsMHgwMiwweGQ4LDB4MjAsMHgzZSwweDAwLDB4MmQsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGNjLDB4MDggfSB9LAoteyAgMTYsIDB4ZDg5MCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDAsMHhmOCwweDQxLDB4MzIsMHgwMCwweDA3LDB4ODEsMHg4YiwweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDhhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzYSwweDYwLDB4OGEsMHgwMCwweDJmLDB4YTggfSB9LAoteyAgMTYsIDB4ZDhiMCwgMCwgezB4MGEsMHhlMCwweDIyLDB4ZTgsMHgwMiwweDdlLDB4NDgsMHgyZSwweDgwLDB4MDgsMHhhMCwweDQyLDB4ZTgsMHgwNCwweDhlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDhjMCwgMCwgezB4MjMsMHhhOCwweDBiLDB4YTgsMHg4MiwweGU4LDB4MDAsMHhlZSwweDAwLDB4YTIsMHg4MCwweDRiLDB4NjAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDhkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMCwweDZjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDhlMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDEzLDB4ODEsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2UsMHg0MCwweDgyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDhmMCwgMCwgezB4MjgsMHhlMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHhiMywweDEwLDB4MjQsMHhjMCwweDhiLDB4MzgsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDkwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxZSwweDAwLDB4ODcsMHgyMCwweDJmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDkxMCwgMCwgezB4MGEsMHg3MCwweDAyLDB4ZGMsMHgwYSwweGI2LDB4MDAsMHgyYywweGM4LDB4ODgsMHg3MiwweDA2LDB4ZDgsMHgwMCwweDg2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDkyMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRjLDB4ODQsMHhhZiwweDgwLDB4YTUsMHhjMCwweDBiLDB4ZDAsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDkzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZDcsMHg4MCwweDNkLDB4YTAgfSB9LAoteyAgMTYsIDB4ZDk0MCwgMCwgezB4MWMsMHg3OCwweDEzLDB4ZDYsMHgwMiwweGQ3LDB4ODAsMHgzZCwweGVjLDB4MDgsMHg3ZSwweDIzLDB4ZmUsMHgwMCwweGNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDk1MCwgMCwgezB4MzksMHg2MCwweDBmLDB4NzgsMHgwMywweGRmLDB4MDAsMHhmNiwweDgwLDB4NzUsMHhlMCwweDBmLDB4NzgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHg4YywweDAwLDB4ZmIsMHgxMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDk3MCwgMCwgezB4MWYsMHhhMCwweDIxLDB4Y2MsMHgwMCwweGZhLDB4MDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZTgsMHgwMiwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDk4MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhlYSwweDAxLDB4M2EsMHhjMCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZDk5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmYywweDAwLDB4ZmYsMHg4MCwweDNmLDB4NjAgfSB9LAoteyAgMTYsIDB4ZDlhMCwgMCwgezB4MDgsMHg5OSwweDA3LDB4N2UsMHgwMCwweGRkLDB4ODAsMHgzZiwweGUyLDB4MGMsMHhmOCwweDAzLDB4ZjYsMHgwMiwweGRmLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDliMCwgMCwgezB4YjMsMHhlMCwweDBjLDB4ZjgsMHgwMywweDNlLDB4NDEsMHhjYywweDgwLDB4MzMsMHhlNCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDljMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDQwLDB4YjcsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDlkMCwgMCwgezB4MGQsMHg1YSwweDIyLDB4ZGMsMHg4MCwweDc1LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MSwweDAyLDB4ZjAsMHgyMCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDllMCwgMCwgezB4MjEsMHhjMCwweDBhLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhkNCwweDI4LDB4MjEsMHhjMCwweDBiLDB4NzIsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDlmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDQwLDB4YjcsMHgwMCwweDJkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGEwMCwgMCwgezB4MDgsMHg3MiwweDIyLDB4ZjQsMHgwMCwweDg3LDB4MDAsMHgyZCwweGMyLDB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwMCwweDg3LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGExMCwgMCwgezB4MjUsMHg0MCwweDA5LDB4MzAsMHgwMiwweDVjLDB4MDEsMHhhZCwweDAwLDB4MjksMHhkMCwweDRiLDB4NzAsMHgwMiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGEyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDAwLDB4YmIsMHhjOCwweDJjLDB4YTAgfSB9LAoteyAgMTYsIDB4ZGEzMCwgMCwgezB4MDksMHgyMCwweDAyLDB4Y2UsMHgwMCwweGEzLDB4MDAsMHgyYywweGUwLDB4YTgsMHgzZCwweDQyLDB4YzIsMHgwMCwweDhiLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGE0MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4MzAsMHgwYSwweDZjLDB4MDgsMHhhMywweDQwLDB4YTgsMHhlMCwweDBiLDB4MzQsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZGE1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4ZmYsMHg0OCwweDNjLDB4MjggfSB9LAoteyAgMTYsIDB4ZGE2MCwgMCwgezB4MGMsMHhhOSwweDIzLDB4NmMsMHg4MCwweDhiLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhmYywweDAzLDB4ZWMsMHgwMCwweGQ4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGE3MCwgMCwgezB4MzQsMHg0MCwweDBkLDB4MzAsMHgwMywweDdjLDB4MDIsMHhhMywweDQwLDB4MzgsMHg2OCwweDBmLDB4MjQsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGE4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlZCwweDg4LDB4ZmIsMHgwMCwweDNlLDB4NTAgfSB9LAoteyAgMTYsIDB4ZGE5MCwgMCwgezB4MGYsMHhhMSwweDAzLDB4ZWMsMHgwNCwweDNhLDB4YzAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDgzLDB4ZTgsMHgwMiwweGY4LDB4MTAgfSB9LAoteyAgMTYsIDB4ZGFhMCwgMCwgezB4M2EsMHg0MSwweDBlLDB4OTAsMHgwMywweGFjLDB4MDAsMHg5YiwweDA4LDB4YjYsMHg0MCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGFiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweGIzLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGFjMCwgMCwgezB4MGMsMHg1MCwweDEzLDB4MWMsMHgwOSwweGNkLDB4ODMsMHgzMywweGMwLDB4ODMsMHg3MCwweDAwLDB4M2MsMHgwMCwweGRjLDB4MTAgfSB9LAoteyAgMTYsIDB4ZGFkMCwgMCwgezB4MzIsMHg2MCwweDBlLDB4ZjEsMHg0MywweDJjLDB4MDAsMHhjZSwweDA0LDB4M2IsMHg3MCwweDBjLDB4ZjAsMHg4MywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4ZGFlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2NywweDgwLDB4YmIsMHgwMSwweDYyLDB4MjEgfSB9LAoteyAgMTYsIDB4ZGFmMCwgMCwgezB4OGEsMHg4OSwweDIwLDB4MmMsMHgwMCwweDgwLDB4ZTAsMHgyMiwweGMwLDB4MGIsMHhiMCwweDAzLDB4ZDgsMHgxMCwweDhjLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGIwMCwgMCwgezB4MjIsMHg0MCwweDA1LDB4OTAsMHgwMiwweGFjLDB4MDAsMHhkOCwweDgwLDB4MzYsMHg0MCwweDBhLDB4OTAsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGIxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNiwweDAwLDB4YmIsMHgwMCwweDIyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZGIyMCwgMCwgezB4MDgsMHg4MCwweDAyLDB4MmUsMHgwMCwweDg4LDB4MjAsMHgyMiwweGMwLDB4MDksMHhiMCwweDAyLDB4YTQsMHgwMCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGIzMCwgMCwgezB4NjIsMHhjNCwweDA4LDB4YjAsMHgwNiwweDJjLDB4MDAsMHg4OCwweDgwLDB4MjIsMHg0MSwweDA4LDB4YTAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGI0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4YjMsMHgwMCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGI1MCwgMCwgezB4MGEsMHgwMCwweDgyLDB4MGMsMHgwMCwweDgwLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDIyLDB4YTAsMHgwMCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGI2MCwgMCwgezB4YTAsMHhjMCwweDA5LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MCwweDAwLDB4MjQsMHg0MCwweDBhLDB4MjgsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZmIsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGI4MCwgMCwgezB4MmMsMHg5MiwweDAzLDB4MmMsMHgwMiwweDg4LDB4MDAsMHgzMSwweGMwLDB4MGIsMHhiNSwweDAyLDB4YTQsMHgwMCwweGQxLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGI5MCwgMCwgezB4MzIsMHg0MCwweDBlLDB4OTAsMHgwMywweDJjLDB4NDAsMHhjOSwweDAwLDB4M2EsMHg0MCwweDhjLDB4YTAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZGJhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDJmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGJiMCwgMCwgezB4MGYsMHhjMCwweDAzLDB4ZGMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMxLDB4MGYsMHhmMCwweDQzLDB4ZjAsMHgwMCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGJjMCwgMCwgezB4M2YsMHg0MCwweDRmLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhmNSwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZTAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZGJkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkOCwweDgwLDB4Y2MsMHgwMCwweGI3LDB4MDQgfSB9LAoteyAgMTYsIDB4ZGJlMCwgMCwgezB4NGUsMHhlMSwweDAzLDB4M2MsMHgyMCwweGRmLDB4MTAsMHgzMSwweDgwLDB4MDYsMHhmMCwweDAzLDB4N2YsMHgwMCwweGZmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZGJmMCwgMCwgezB4M2IsMHhjMCwweDBlLDB4ZjIsMHgwMywweDVlLDB4MDAsMHhlZiwweDEwLDB4MzMsMHhkMCwweDJjLDB4ZjIsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGMwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHhlOSwweDAwLDB4ODgsMHhjNiwweDIwLDB4NWMgfSB9LAoteyAgMTYsIDB4ZGMxMCwgMCwgezB4MDgsMHhhNCwweDU3LDB4NjUsMHgwMCwweDhmLDB4NTIsMHgyYSwweGYwLDB4MDksMHhmYywweDAyLDB4MDQsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGMyMCwgMCwgezB4MmQsMHhkOSwweDA5LDB4NzQsMHg4MywweDY0LDB4MjgsMHg4MywweDQ0LDB4MjIsMHg4NCwweDg4LDB4MDYsMHg4MiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGMzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHhjOSwweDAwLDB4ODAsMHgxMCwweDIwLDB4MDggfSB9LAoteyAgMTYsIDB4ZGM0MCwgMCwgezB4MDgsMHgzMSwweDEyLDB4MDQsMHhiMiwweGEzLDB4MDAsMHgyMCwweDg0LDB4MWIsMHgzNCwweDAyLDB4MGMsMHg4MCwweGIzLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGM1MCwgMCwgezB4MmMsMHhjNywweDA5LDB4MzYsMHgwMiwweDhjLDB4ODAsMHg5MywweDQwLDB4YWMsMHhjOCwweDA4LDB4MzEsMHgyOCwweDMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGM2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhOSwweDAwLDB4ODgsMHgwMCwweGEyLDB4NTAgfSB9LAoteyAgMTYsIDB4ZGM3MCwgMCwgezB4MDgsMHgzNSwweDAyLDB4MjQsMHgwMCwweDhiLDB4MDQsMHgyZSwweGMxLDB4MDksMHhiMCwweDAyLDB4MjQsMHg5NCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGM4MCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4NjAsMHg4YiwweDAwLDB4MmUsMHg4MCwweDA4LDB4ODAsMHgwMCwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGM5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlNywweDAyLDB4Y2IsMHgxOCwweGIyLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGNhMCwgMCwgezB4MmMsMHhhYywweDBhLDB4MmUsMHgwOCwweGViLDB4MDAsMHgzMiwweDEyLDB4NGUsMHhiMCwweDAzLDB4MmIsMHg4MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGNiMCwgMCwgezB4M2EsMHhjMCwweDBhLDB4YjAsMHgwMywweGFiLDB4MDgsMHhlYiwweDA0LDB4MmUsMHg0OCwweDBjLDB4YjgsMHg4MywweDAwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGNjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNiwweDgwLDB4ZmYsMHg4MCwweDM5LDB4Y2EgfSB9LAoteyAgMTYsIDB4ZGNkMCwgMCwgezB4MGQsMHhlOCwweDAzLDB4ZDYsMHg0MCwweGU3LDB4MDQsMHgzYiwweDY2LDB4NGUsMHg3MCwweDAzLDB4YjgsMHgwMCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGNlMCwgMCwgezB4M2YsMHhjMCwweDZjLDB4ZjAsMHgwMywweDcwLDB4MDYsMHhlNywweDAwLDB4MzEsMHgwNCwweDBmLDB4YzEsMHg0MywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGNmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4NSwweDAwLDB4Y2IsMHg0MCwweDMyLDB4OTAgfSB9LAoteyAgMTYsIDB4ZGQwMCwgMCwgezB4MmYsMHhiMCwweDBiLDB4NjQsMHg4MCwweGZiLDB4MDgsMHhiYSwweDEwLDB4MGQsMHhiMCwweGE3LDB4MmQsMHgwMCwweGZiLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGQxMCwgMCwgezB4M2UsMHhjMCwweDhlLDB4YjAsMHgwMywweDZkLDB4MDAsMHhkYiwweDAxLDB4MzIsMHg0MCwweDhjLDB4MzMsMHgwMywweDkwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGQyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHgyNCwweDAwLDB4ODMsMHhlMCwweGEyLDB4ZDAgfSB9LAoteyAgMTYsIDB4ZGQzMCwgMCwgezB4NDAsMHhiMCwweDAyLDB4MjUsMHgwNCwweGJmLDB4ODAsMHhhMCwweDUwLDB4MDgsMHhmOCwweDAyLDB4MjAsMHgwMCwweDhiLDB4MDIgfSB9LAoteyAgMTYsIDB4ZGQ0MCwgMCwgezB4MmYsMHhkMCwweDA4LDB4ZjAsMHgwMiwweDI0LDB4MDAsMHg4ZiwweDgwLDB4MzYsMHgwMSwweDA4LDB4ODQsMHg0MiwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGQ1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg0NCwweDAwLDB4ODMsMHg0OCwweDIwLDB4YzQgfSB9LAoteyAgMTYsIDB4ZGQ2MCwgMCwgezB4MDksMHgwMCwweDAyLDB4NDYsMHgwMCwweGIzLDB4MDEsMHhhOCwweDkwLDB4MTksMHgzMCwweDEyLDB4OGMsMHgwMCwweGEzLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGQ3MCwgMCwgezB4MmUsMHhlMiwweDBhLDB4YjAsMHgwMiwweDBjLDB4MDAsMHg4MywweDQ5LDB4MjgsMHhjMCwweDA5LDB4M2MsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGQ4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGYwLDB4MDEsMHgzNiwweDA0LDB4ODMsMHg4MCwweDIxLDB4ZTEgfSB9LAoteyAgMTYsIDB4ZGQ5MCwgMCwgezB4MDgsMHgzOCwweDEyLDB4MWUsMHgyOCwweGIzLDB4OTgsMHgyMSwweGEwLDB4MTksMHgzOCwweDgyLDB4OTYsMHgwMCwweDg3LDB4ODMgfSB9LAoteyAgMTYsIDB4ZGRhMCwgMCwgezB4MmQsMHhlMiwweDA4LDB4NzgsMHgyMiwweDM2LDB4OGMsMHg4NywweDgwLDB4MmQsMHhlMCwweDA5LDB4NzksMHgwMiwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGRiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwNCwweDAwLDB4YzMsMHgzMCwweDMwLDB4YzggfSB9LAoteyAgMTYsIDB4ZGRjMCwgMCwgezB4NGQsMHgwMCwweDBiLDB4NGMsMHg4MCwweGYzLDB4MTIsMHgzOCwweGMwLDB4MGQsMHgzYSwweDAyLDB4OGMsMHg4MCwweGYzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGRkMCwgMCwgezB4M2MsMHhjMCwweDBlLDB4MzAsMHgwYiwweDBlLDB4MDAsMHhjMywweDBjLDB4M2EsMHhjMCwweDBkLDB4MzAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiNCwweDA2LDB4ZmYsMHgxMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZGRmMCwgMCwgezB4MGYsMHhiMCwweDEzLDB4YmMsMHgwMCwweGZmLDB4MTAsMHg3ZiwweGMwLDB4MGUsMHhmMSwweGEzLDB4N2MsMHgwMCwweGZmLDB4MTIgfSB9LAoteyAgMTYsIDB4ZGUwMCwgMCwgezB4M2YsMHhjMiwweDBmLDB4ZjUsMHgyMywweGJjLDB4NDEsMHhlZiwweDE4LDB4MzcsMHg4MCwweGFlLDB4YzAsMHgwMywweDUwLDB4MDYgfSB9LAoteyAgMTYsIDB4ZGUxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZGIsMHgwMCwweDNlLDB4ZGEgfSB9LAoteyAgMTYsIDB4ZGUyMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NjYsMHgxMCwweDhiLDB4MDAsMHgzMiwweDgwLDB4OGMsMHhiNiwweDAzLDB4NGEsMHgwMCwweDRiLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGUzMCwgMCwgezB4MzIsMHhjOCwweDBjLDB4YjQsMHgwMywweDBhLDB4MTAsMHhkYiwweDAwLDB4M2UsMHhjMSwweDBjLDB4YjAsMHg0MywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGU0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MTEsMHhiNCwweDAwLDB4ODcsMHgwNCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZGU1MCwgMCwgezB4MGQsMHg3MCwweDAzLDB4MWMsMHgwOCwweDg3LDB4NDgsMHgyMCwweDgxLDB4MGQsMHg3MiwweDgyLDB4NWMsMHgwMCwweGQ3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGU2MCwgMCwgezB4MjEsMHhjYywweDI4LDB4ZjAsMHgwMiwweDFjLDB4MTAsMHg4NywweDIwLDB4MmMsMHgwMCwweDA4LDB4NDAsMHgwYSwweDMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGU3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5NiwweDAwLDB4YjcsMHg4MSwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZGU4MCwgMCwgezB4MDgsMHg0OCwweDAyLDB4MGUsMHgwNCwweDg3LDB4ODAsMHgyMSwweGUwLDB4MDgsMHg3OCwweDAyLDB4M2UsMHgwMSwweDg3LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGU5MCwgMCwgezB4MjEsMHhlMCwweDE4LDB4NzksMHgwMiwweDNhLDB4MDEsMHg5NywweGEwLDB4MmQsMHg2MCwweDA4LDB4MzgsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGVhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjNiwweDAwLDB4YTMsMHhjNiwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZGViMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MGMsMHgwMSwweDgzLDB4MDAsMHgyMCwweGUwLDB4MDksMHgzMCwweDAyLDB4NGUsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGVjMCwgMCwgezB4MjAsMHhjMCwweDQ5LDB4MzAsMHgyMiwweDBmLDB4NjQsMHg4MywweDAyLDB4NmMsMHhkNCwweDI4LDB4MzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGVkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhhYiwweDgwLDB4ZmEsMHhlMCwweDNjLDB4ODggfSB9LAoteyAgMTYsIDB4ZGVlMCwgMCwgezB4MGMsMHhlMCwweDAyLDB4MjgsMHgwMiwweGNhLDB4MDAsMHhiMywweGE5LDB4MGMsMHhhMCwweDAzLDB4M2IsMHgxMCwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGVmMCwgMCwgezB4YTIsMHg4MCwweDBjLDB4YTAsMHgwYiwweDM4LDB4MDAsMHhkYSwweDAwLDB4M2YsMHhiMCwweDBjLDB4ZTYsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGYwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhjMCwweDIwLDB4OTgsMHgwOCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGYxMCwgMCwgezB4MGYsMHg4MCwweDBiLDB4ZTEsMHgwMCwweGY4LDB4MDEsMHgzYywweDEwLDB4NGYsMHgwMCwweDAzLDB4YTAsMHg0MCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGYyMCwgMCwgezB4M2UsMHgxMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2MsMHgwMiwweDJmLDB4MDQsMHg5MywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGYzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzEsMHhjMSwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGY0MCwgMCwgezB4MGMsMHg5OCwweDAzLDB4MjYsMHg0MCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5OCwweDAzLDB4MjQsMHgyNCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGY1MCwgMCwgezB4M2MsMHg2MCwweDBjLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDgyLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZGY2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NTAgfSB9LAoteyAgMTYsIDB4ZGY3MCwgMCwgezB4MGQsMHg5OCwweDAyLDB4MjUsMHg4MCwweGI5LDB4MDAsMHgyMiwweDUyLDB4MGQsMHg5YywweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGY4MCwgMCwgezB4MmUsMHg2MCwweDA4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSwweDQwLDB4MzYsMHg0MCwweDA4LDB4OTAsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGY5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4OGQsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGZhMCwgMCwgezB4MDgsMHgxMiwweDAyLDB4MjQsMHgwMCwweGExLDB4MTAsMHhhMiwweDYwLDB4MDgsMHg5MiwweDhhLDB4MjQsMHgwMCwweGI5LDB4MDEgfSB9LAoteyAgMTYsIDB4ZGZiMCwgMCwgezB4MmUsMHg0NiwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhiMSwweDUwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHg4MiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGZjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDg0LDB4ODUsMHgyMCwweGExLDB4ZDggfSB9LAoteyAgMTYsIDB4ZGZkMCwgMCwgezB4MDksMHgxMCwweDAyLDB4MDQsMHg4MCwweGIzLDB4MjAsMHgyMCwweDQwLDB4MjksMHgxMiwweDA2LDB4MDQsMHgwMCwweGIxLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGZlMCwgMCwgezB4MmMsMHg0OCwweDI4LDB4MTIsMHgwMiwweDA0LDB4MDAsMHhiMSwweDIwLDB4MjQsMHg0OCwweDA4LDB4MTIsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQyLDB4OGEsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTAwMCwgMCwgezB4MGMsMHgwNSwweDAzLDB4MjEsMHg0MCwweGUwLDB4NTAsMHhiMiwweDAwLDB4MmMsMHg4MCwweDAyLDB4MjEsMHg0MCwweGYwLDB4NTAgfSB9LAoteyAgMTYsIDB4ZTAxMCwgMCwgezB4M2MsMHgxNCwweDBjLDB4ODUsMHgxMywweGExLDB4NTAsMHhmOCwweDUwLDB4MzIsMHgxNCwweDBjLDB4ODUsMHgyMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4ZTAyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQgfSB9LAoteyAgMTYsIDB4ZTAzMCwgMCwgezB4MGYsMHhkNCwweDBiLDB4ZjQsMHg0NCwweGY5LDB4MTAsMHgzZiwweDUwLDB4NGYsMHgxMSwweDAzLDB4ZjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTA0MCwgMCwgezB4M2UsMHg0NCwweDBmLDB4OTEsMHg1MywweGY0LDB4MTQsMHhmOSwweDEwLDB4M2YsMHg0NCwweDBmLDB4ZDEsMHgwMywweGU2LDB4MDIgfSB9LAoteyAgMTYsIDB4ZTA1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MDUsMHhlNiwweGEwLDB4ZGQsMHg4OCwweGIzLDB4NjYgfSB9LAoteyAgMTYsIDB4ZTA2MCwgMCwgezB4MGMsMHhkYywweDgzLDB4MzYsMHg4OCwweGJkLDB4YTAsMHgzNywweDZhLDB4MGMsMHhkYSwweDBiLDB4MjUsMHgwMiwweGM5LDB4NDAgfSB9LAoteyAgMTYsIDB4ZTA3MCwgMCwgezB4M2YsMHg3OCwweDRmLDB4OTgsMHhiMywweGU1LDB4MDQsMHhjZCwweGEwLDB4NzIsMHg3OCwweDBjLDB4ZDgsMHg4YiwweDI2LDB4MTQgfSB9LAoteyAgMTYsIDB4ZTA4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMywweDAwLDB4ODgsMHg0MiwweDIyLDB4MzEgfSB9LAoteyAgMTYsIDB4ZTA5MCwgMCwgezB4MDgsMHgwYSwweDAyLDB4MjIsMHhhMCwweGI4LDB4ZjksMHgyMiwweDEwLDB4MGQsMHg4NCwweDEyLDB4NmEsMHg4MCwweDg4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZTBhMCwgMCwgezB4MmUsMHgyMCwweDBiLDB4MDgsMHgwMiwweGUyLDB4ODAsMHhhOCwweGE4LDB4YTIsMHgzOCwweDQ4LDB4YTgsMHgwMiwweDBlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTBiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweGEyLDB4ODEsMHgwMCwweDIwLDB4NDggfSB9LAoteyAgMTYsIDB4ZTBjMCwgMCwgezB4MDgsMHgxMiwweDQyLDB4NDUsMHgwMCwweGIxLDB4MDAsMHgyNCwweDQwLDB4MDksMHgxNCwweDAyLDB4MjQsMHgwMCwweDgxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTBkMCwgMCwgezB4MmMsMHg1OCwweDBiLDB4MTAsMHg4MiwweGM0LDB4MDQsMHg5MSwweDQwLDB4NjQsMHg2YywweDA4LDB4MzAsMHg4MiwweDEyLDB4MDUgfSB9LAoteyAgMTYsIDB4ZTBlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDEgfSB9LAoteyAgMTYsIDB4ZTBmMCwgMCwgezB4MDgsMHg5MCwweDhhLDB4NjQsMHg4MCwweGI5LDB4MDAsMHgyMiwweDUwLDB4MDksMHg5MCwweDA2LDB4NjQsMHgwOCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTEwMCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwNiwweGM0LDB4MDEsMHhiOSwweDAyLDB4MjYsMHg2MSwweDg4LDB4OTAsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTExMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTEyMCwgMCwgezB4MmMsMHg5NCwweDIzLDB4NjQsMHgwMCwweGI5LDB4MDAsMHgzNiwweDQwLDB4MDksMHg5MCwweDEzLDB4MDUsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTEzMCwgMCwgezB4M2UsMHg0MCwweDRmLDB4OTAsMHgxMywweGU1LDB4YzAsMHhkOSwweDAwLDB4MjYsMHg0MCwweDJjLDB4OTQsMHgwMywweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTE0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDEsMHhhNCwweDAyLDB4ZTksMHgwOCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTE1MCwgMCwgezB4MGYsMHg5MCwweDBiLDB4YTQsMHgwMCwweGYxLDB4MDAsMHgzZSwweDQxLDB4MGYsMHg5MCwweDQzLDB4YTQsMHg4OCwweGU5LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTE2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhlMSwweDAwLDB4M2EsMHg0MCwweDlmLDB4OTIsMHg2MywweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTE3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDEwLDB4ZTAsMHgwMSwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTE4MCwgMCwgezB4OGYsMHg4MCwweDAzLDB4MjAsMHgwMCwweGQ4LDB4MDgsMHgzMCwweDAxLDB4OGMsMHgwMCwweDAzLDB4ZTEsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTE5MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwYiwweDIxLDB4MDAsMHhjOCwweDAwLDB4NzgsMHgwMCwweDBmLDB4ODYsMHgwMywweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4OGUsMHg0MCwweDJiLDB4ODIgfSB9LAoteyAgMTYsIDB4ZTFiMCwgMCwgezB4MGIsMHhhMCwweDAyLDB4M2EsMHgwMCwweDhlLDB4ODAsMHgyMywweDgyLDB4MDgsMHhlMiwweDAyLDB4MjgsMHgxMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFjMCwgMCwgezB4MmYsMHg5OCwweDI4LDB4YTAsMHgxMiwweDI4LDB4MDAsMHg4ZSwweDIwLDB4MmUsMHg4MCwweDRiLDB4ZTQsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAyLDB4YTIsMHg0MCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTFlMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4NGUsMHg0MCwweDkzLDB4YzAsMHhhMCwweDIwLDB4MDgsMHgzNiwweDAyLDB4OGMsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFmMCwgMCwgezB4MmMsMHhlMiwweDA4LDB4MzAsMHgwNiwweDRjLDB4MTIsMHg5MywweDA4LDB4MjgsMHhjMCwweDBiLDB4YjAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTIwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDA4LDB4ODIsMHg0MCwweDI5LDB4NDAgfSB9LAoteyAgMTYsIDB4ZTIxMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4NWUsMHgwOCwweDg0LDB4MDgsMHgyMywweDQwLDB4MDgsMHg3MCwweDA2LDB4MWMsMHg4MCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTIyMCwgMCwgezB4MmQsMHgyMCwweDA4LDB4NzksMHgxMiwweDVjLDB4MDAsMHg5NCwweDAwLDB4MmQsMHhjMCwweDBiLDB4MzAsMHg0MiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTIzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAwLDB4ZTQsMHg4MCwweDMxLDB4YTEgfSB9LAoteyAgMTYsIDB4ZTI0MCwgMCwgezB4MGYsMHg1OCwweDEzLDB4NzYsMHgwMCwweGQwLDB4ODAsMHgzMSwweGMwLDB4MGMsMHgzOCwweDAzLDB4YmUsMHg4MCwweGQ3LDB4ODEgfSB9LAoteyAgMTYsIDB4ZTI1MCwgMCwgezB4M2YsMHgyMCwweDhjLDB4NzksMHgwMywweDdmLDB4MDEsMHhkNiwweDgwLDB4MzksMHhlOCwweDRmLDB4NjgsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhiZSwweDAwLDB4ZmEsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTI3MCwgMCwgezB4OGYsMHg5NiwweDBiLDB4YTQsMHgwMCwweGVhLDB4MDAsMHgzYywweGMwLDB4MGYsMHg5MCwweDAzLDB4YWMsMHgyMCwweGZiLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTI4MCwgMCwgezB4MmUsMHgwMCwweDBmLDB4YjIsMHgwMywweGFkLDB4YTAsMHhlYSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YTAsMHgxYiwweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDA4LDB4ZGUsMHg4MSwweDMzLDB4YTQgfSB9LAoteyAgMTYsIDB4ZTJhMCwgMCwgezB4MGUsMHhmYywweDEzLDB4M2UsMHgwMCwweGZjLDB4ODAsMHgxMywweDIwLDB4MGMsMHg2OCwweDAzLDB4M2UsMHgyMCwweGZmLDB4YzggfSB9LAoteyAgMTYsIDB4ZTJiMCwgMCwgezB4M2YsMHg2MCwweDFkLDB4ZjgsMHgwMywweDdlLDB4MDAsMHhjNywweDgwLDB4MzMsMHhlMiwweDBjLDB4ZDgsMHgwMywweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4ODYsMHg0MSwweDMxLDB4YzQgfSB9LAoteyAgMTYsIDB4ZTJkMCwgMCwgezB4MDgsMHg3OSwweDQyLDB4OWMsMHgwMCwweGJjLDB4MTAsMHgyMSwweDQwLDB4ODUsMHgzNSwweDAzLDB4NWMsMHgwMCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJlMCwgMCwgezB4MmQsMHhjMCwweDA4LDB4NzIsMHgwMiwweDJjLDB4MDAsMHhhNywweDAxLDB4MzcsMHhjMCwweDA4LDB4NTEsMHg0MiwweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg4YywweDQwLDB4ODIsMHgwMCwweDI0LDB4ODEgfSB9LAoteyAgMTYsIDB4ZTMwMCwgMCwgezB4MDgsMHhkOCwweDAyLDB4MTQsMHgyMCwweGI1LDB4MDAsMHgyMCwweDQwLDB4MDksMHg2MCwweDAyLDB4MWMsMHg0MCwweGI3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTMxMCwgMCwgezB4MmMsMHg0MCwweDBiLDB4MzAsMHgyMiwweGRjLDB4MDAsMHg5NywweDAwLDB4MjEsMHhjNCwweDA4LDB4NDAsMHgwMiwweDQ0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTMyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MTQsMHhlYywweDAwLDB4OTIsMHgwNiwweDIwLDB4OTAgfSB9LAoteyAgMTYsIDB4ZTMzMCwgMCwgezB4MzgsMHgxNSwweDAyLDB4ODYsMHgwMCwweGI4LDB4MDAsMHg2MCwweDUwLDB4MDksMHgzMCwweDAyLDB4NGUsMHgwMSwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM0MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4MzAsMHgwMiwweGNlLDB4MjAsMHhiMywweDAwLDB4MjQsMHhmMCwweDQ4LDB4MDIsMHgwYSwweDU4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTM1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2EsMHgwMCwweGE2LDB4OTQgfSB9LAoteyAgMTYsIDB4ZTM2MCwgMCwgezB4MmMsMHg5MCwweDAzLDB4MmUsMHgwMCwweGZiLDB4MDUsMHhiMiwweDg1LDB4MGQsMHg5MCwweDAzLDB4M2YsMHg5MCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM3MCwgMCwgezB4N2UsMHg4MCwweDFmLDB4ZjAsMHg0MywweGZjLDB4MjEsMHg5YSwweDAwLDB4MzMsMHhjOCwweDNjLDB4YjIsMHgwMywweDZhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTM4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHhlYywweDAyLDB4ZWEsMHg0MCwweDNkLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTM5MCwgMCwgezB4MGYsMHgxMCwweDkzLDB4ZWQsMHgwMCwweGZiLDB4NDAsMHgzZSwweDkwLDB4OGYsMHgzMCwweDAzLDB4ZWMsMHg4MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTNhMCwgMCwgezB4M2UsMHg5MSwweDFjLDB4YjAsMHgwMywweDJjLDB4MTAsMHhlOCwweDAwLDB4M2UsMHhjOCwweDFmLDB4OTAsMHgwMywweGE1LDB4MTAgfSB9LAoteyAgMTYsIDB4ZTNiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhmYywweDAyLDB4ZTQsMHgwMCwweDczLDB4YTAgfSB9LAoteyAgMTYsIDB4ZTNjMCwgMCwgezB4MGMsMHhmYywweDAzLDB4N2MsMHgwMiwweGZmLDB4MTAsMHgxMywweGM0LDB4MWMsMHhjMCwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTNkMCwgMCwgezB4MzcsMHhlMCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZCwweDgwLDB4MzEsMHhjMCwweDBjLDB4MzIsMHg2MywweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTNlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0LDB4MDAsMHg2YywweDAwLDB4OGEsMHhjMCwweDIyLDB4YjEgfSB9LAoteyAgMTYsIDB4ZTNmMCwgMCwgezB4OGEsMHhiOCwweDQzLDB4NGEsMHgxMCwweGRiLDB4MjAsMHgyMCwweGYwLDB4MGEsMHg5NCwweDAzLDB4NmMsMHgwMCwweGJiLDB4MDcgfSB9LAoteyAgMTYsIDB4ZTQwMCwgMCwgezB4MjIsMHhiOCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MTEsMHhlOCwweGMwLDB4YjIsMHhjMCwweDJhLDB4OTIsMHgxYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyYywweDAwLDB4YWEsMHg4MCwweDIyLDB4OTggfSB9LAoteyAgMTYsIDB4ZTQyMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MmYsMHgwMywweGJiLDB4MDEsMHgyYSwweDgzLDB4MDgsMHhiMiwweDRlLDB4MmMsMHgwNCwweGFiLDB4MDIgfSB9LAoteyAgMTYsIDB4ZTQzMCwgMCwgezB4MjIsMHhjNCwweDI4LDB4YjAsMHgyMiwweGVjLDB4MDksMHhiMywweDUwLDB4NjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQ0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAxLDB4ODMsMHgwMCwweDYwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTQ1MCwgMCwgezB4MDgsMHgxMiwweDBhLDB4NDQsMHgwMCwweDkzLDB4MDAsMHgyYSwweDgwLDB4NGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQ2MCwgMCwgezB4NjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4NjAsMHhjMCwweDA4LDB4MDAsMHg0NiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MGQsMHg2YywweDAwLDB4ZTgsMHgwMiwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTQ4MCwgMCwgezB4MmMsMHhmMiwweDQzLDB4MmMsMHgwMCwweGZiLDB4MDAsMHhiYSwweGMwLDB4MDgsMHhhNSwweDAyLDB4M2MsMHgwMCwweGVmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQ5MCwgMCwgezB4MzYsMHhjMCwweDRkLDB4ZjAsMHgxMywweGZkLDB4NTEsMHhmYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwMywweDIwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTRhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4N2UsMHgwNCwweDNmLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTRiMCwgMCwgezB4MGYsMHgzMSwweDQzLDB4ZjAsMHgwMiwweGZmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZiwweDAwLDB4M2IsMHhjMCwweDBmLDB4YzAsMHgwMywweGU4LDB4MTYgfSB9LAoteyAgMTYsIDB4ZTRkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMiwweDQwLDB4ZmMsMHg4MCwweDNmLDB4MjQgfSB9LAoteyAgMTYsIDB4ZTRlMCwgMCwgezB4MGQsMHhkOCwweDUzLDB4ZDYsMHgwNCwweGRmLDB4MzIsMHgzZiwweGNjLDB4NGMsMHhjMCwweDQzLDB4ZmMsMHgwMCwweGRmLDB4NjAgfSB9LAoteyAgMTYsIDB4ZTRmMCwgMCwgezB4MzcsMHhjMCwweDBmLDB4YzQsMHgwMywweDdjLDB4ZDAsMHhkZiwweDIwLDB4MzMsMHhkOCwweDBkLDB4ZjgsMHg0MywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTUwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTgsMHhlOCwweDgwLDB4YjAsMHgwMSwweDJlLDB4MDggfSB9LAoteyAgMTYsIDB4ZTUxMCwgMCwgezB4ODgsMHg5MCwweDAyLDB4ZWMsMHgyMCwweDhiLDB4NzAsMHgyZiwweGNjLDB4MDgsMHhiMywweDgyLDB4ZmQsMHhlMCwweGJmLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTUyMCwgMCwgezB4MjIsMHhkOCwweDBiLDB4OTMsMHgwMiwweGZkLDB4YzAsMHhhZiwweDEwLDB4MjgsMHhmMCwweDA4LDB4YmMsMHgxMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTUzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDAwLDB4YjAsMHgwMCwweDJlLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTU0MCwgMCwgezB4MGEsMHgxMiwweDgyLDB4ZWMsMHg4MCwweGIzLDB4MDAsMHgyYywweGM4LDB4MGEsMHgwMCwweDMyLDB4OGMsMHgwMCwweGEzLDB4MzAgfSB9LAoteyAgMTYsIDB4ZTU1MCwgMCwgezB4MjAsMHhkMiwweDA5LDB4MDAsMHgwMiwweDhjLDB4ODAsMHg4MywweDAwLDB4MjgsMHhkOCwweDBiLDB4MzQsMHgxMiwweGYyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTU2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhhYywweDAxLDB4YjgsMHgwMiwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTU3MCwgMCwgezB4MGEsMHg5MCwweDEyLDB4ZWMsMHgxMCwweDhiLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAwLDB4ZWMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTU4MCwgMCwgezB4MjIsMHhjMSwweDBiLDB4OTIsMHgwMiwweGNjLDB4MDEsMHhhYiwweDAwLDB4MmEsMHhjMCwweDAyLDB4YjAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTU5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMCwweDAwLDB4ZmEsMHgwYywweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTVhMCwgMCwgezB4MGYsMHhhMCwweDEzLDB4ZWUsMHgyMCwweGRiLDB4MDAsMHgzZSwweGMwLDB4MmUsMHg4OCwweDUzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTViMCwgMCwgezB4YjIsMHhjMCwweDhmLDB4YWMsMHg4MywweGFjLDB4MDgsMHhkYiwweDAwLDB4MWEsMHhjMCwweDRmLDB4YjAsMHgwMywweGMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTVjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiOCwweDAwLDB4ZmUsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTVkMCwgMCwgezB4MmQsMHhlMCwweDAzLDB4ZmUsMHg4MCwweDdmLDB4MDAsMHgzZiwweGMwLDB4MGQsMHhkMiwweDAzLDB4ZmMsMHgwMCwweGJmLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTVlMCwgMCwgezB4M2UsMHhjMCwweDBkLDB4YzgsMHgwMywweGZjLDB4MGMsMHhmZiwweDAwLDB4M2YsMHhjMCwweDA5LDB4ZjAsMHgyMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTVmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNCwweDAwLDB4ZmEsMHg0MCwweDMyLDB4YzEgfSB9LAoteyAgMTYsIDB4ZTYwMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4MjksMHgwOCwweGRiLDB4MDAsMHgzZSwweGMwLDB4MGUsMHg4NSwweDAzLDB4ZWMsMHgyMCwweGNiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTYxMCwgMCwgezB4M2EsMHhjMCwweDBlLDB4YTQsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2EsMHhjMiwweDBlLDB4YjAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTYyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4YmEsMHg2MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTYzMCwgMCwgezB4MGIsMHhhMCwweDAyLDB4MDgsMHgwMCwweGFmLDB4MDAsMHgyZiwweGQwLDB4MGIsMHhiNSwweDAyLDB4ZmUsMHgwMiwweDhmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY0MCwgMCwgezB4MmYsMHhjMCwweDBkLDB4ODAsMHgwYSwweDNjLDB4MDAsMHhiNywweDAwLDB4MjMsMHhjMiwweDA1LDB4ZjAsMHgyMiwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDQsMHg0MCwweDAwLDB4YjEsMHg4OCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY2MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyZSwweGM4LDB4MGIsMHgwOCwweDA2LDB4NGQsMHg0MCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY3MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MzAsMHgwNiwweDBjLDB4MDgsMHg5MywweDIwLDB4MGEsMHhlMCwweDRhLDB4MzAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTAsMHg1YSwweDAwLDB4YjUsMHg5MCwweDIxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTY5MCwgMCwgezB4MGIsMHg1OCwweDQyLDB4M2UsMHgwMCwweGE3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg2OSwweDAyLDB4ZGUsMHg0MCwweDg3LDB4OTIgfSB9LAoteyAgMTYsIDB4ZTZhMCwgMCwgezB4MmQsMHhlMCwweDA5LDB4MTgsMHgwMiwweDllLDB4MDEsMHhiNywweDgwLDB4MjksMHhlMCwweDAzLDB4NzAsMHgwMiwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0NCwweDAwLDB4ZjEsMHgwMSwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZjMCwgMCwgezB4NWYsMHgxOCwweDAzLDB4MGMsMHgxMCwweDgzLDB4MDAsMHgzYywweGM0LDB4MGUsMHgwNCwweDAzLDB4ZWMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZkMCwgMCwgezB4MzAsMHhjNCwweDBjLDB4MzEsMHgwMywweDhjLDB4MDAsMHhmMywweDAwLDB4MzgsMHhjOCwweDBlLDB4MzEsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZTZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhiYywweDAwLDB4ZmQsMHgwNCwweGJmLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTZmMCwgMCwgezB4NGYsMHg1OCwweDAzLDB4ZjgsMHgwOCwweGVmLDB4MDgsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAxLDB4ZmMsMHgwMCwweGZmLDB4NGMgfSB9LAoteyAgMTYsIDB4ZTcwMCwgMCwgezB4M2YsMHhjMSwweDBmLDB4ZDAsMHgwMywweDNjLDB4MDAsMHhmNywweDAwLDB4MzcsMHhjMiwweDBkLDB4NzIsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ZTcxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhlMiwweDAwLDB4ZGIsMHgwMCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTcyMCwgMCwgezB4NGQsMHhhOCwweDAzLDB4MmMsMHgwOCwweGZiLDB4MDAsMHg3ZSwweGM4LDB4OGYsMHhiMCwweDBiLDB4NmYsMHg0NSwweGViLDB4YzIgfSB9LAoteyAgMTYsIDB4ZTczMCwgMCwgezB4MzYsMHhjMCwweDA3LDB4YTAsMHgwMywweGVmLDB4MjAsMHhjYiwweDUwLDB4YjIsMHhjMCwweDBjLDB4NzksMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTc0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTksMHg5OCwweDAwLDB4OGYsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTc1MCwgMCwgezB4MGIsMHg2MCwweDAzLDB4NWMsMHgwMCwweDM3LDB4MDAsMHgyZCwweGQyLDB4MGIsMHgzMCwweDAyLDB4MGMsMHhhOCwweDg3LDB4MjQgfSB9LAoteyAgMTYsIDB4ZTc2MCwgMCwgezB4MjEsMHhkMCwweDA5LDB4NzAsMHgwMiwweGRkLDB4ODgsMHg4NywweDJhLDB4MjMsMHhlOCwweDA4LDB4NzAsMHgwMiwweDMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTc3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHhiNiwweDAwLDB4OTcsMHg4MCwweDIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZTc4MCwgMCwgezB4MGIsMHg2OCwweDAyLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyZCwweGU4LDB4OGIsMHg0OCwweDgyLDB4MWUsMHg4MCwweGEzLDB4ODQgfSB9LAoteyAgMTYsIDB4ZTc5MCwgMCwgezB4MjUsMHhlOCwweDBiLDB4NjgsMHgwMiwweGNlLDB4MDIsMHg4NywweDgwLDB4MjEsMHhlMCwweDA4LDB4N2EsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTdhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDQsMHhjYywweDA4LDB4ODMsMHg4MiwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZTdiMCwgMCwgezB4OGIsMHgyYSwweDAyLDB4NDgsMHg0MCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDgyLDB4MGMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTdjMCwgMCwgezB4MDAsMHhjMSwweDA5LDB4MzEsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwYSwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTdkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhlOCwweDAwLDB4ZGEsMHhhMCwweDMyLDB4YTggfSB9LAoteyAgMTYsIDB4ZTdlMCwgMCwgezB4OGQsMHhhOCwweDAzLDB4M2IsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhlNCwweDAzLDB4NjgsMHgwMCwweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZTdmMCwgMCwgezB4MzYsMHg4MCwweDBmLDB4ZTQsMHgwMywweGU4LDB4MDAsMHhjYSwweDAwLDB4MzIsMHg4MCwweDJjLDB4YTAsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTgwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDEsMHhhMCwweDEwLDB4ZjgsMHgwMCwweGJlLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTgxMCwgMCwgezB4OGYsMHhjMSwweDAzLDB4ZTAsMHgyNCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDEgfSB9LAoteyAgMTYsIDB4ZTgyMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAxLDB4YmUsMHgxMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTgzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZjksMHg0MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTg0MCwgMCwgezB4Y2YsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgwZSwweDUwLDB4MGYsMHgxYSwweDAzLDB4MjYsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTg1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHg4MSwweGU0LDB4MDAsMHhmOSwweDgwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTg2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDA0LDB4YjEsMHgwNCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTg3MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDUzLDB4MGIsMHg5MiwweDBhLDB4MjYsMHg0OCwweGI5LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTg4MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDgwLDB4MDIsMHg1MCwweDA4LDB4OTAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTg5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MDUsMHgyNCwweDAwLDB4YmQsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZThhMCwgMCwgezB4MGIsMHhkMCwweDEyLDB4YzQsMHgwMCwweDg5LDB4MDIsMHgyZSwweDQwLDB4MGIsMHg5MCwweDIyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZThiMCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiMSwweDIwLDB4MjAsMHg0MCwweDY4LDB4OTAsMHgyMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZThjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTQsMHgxNCwweDAwLDB4YmYsMHgxMiwweGExLDB4NDAgfSB9LAoteyAgMTYsIDB4ZThkMCwgMCwgezB4MGIsMHg1MCwweDAyLDB4YzQsMHgwMCwweGExLDB4MjAsMHgyYywweDQ4LDB4MGIsMHgxMiwweDAyLDB4MDQsMHgxMCwweGIxLDB4MTEgfSB9LAoteyAgMTYsIDB4ZThlMCwgMCwgezB4MmMsMHg0OCwweDBiLDB4MTMsMHgyMiwweGM0LDB4MDAsMHhiMSwweDQwLDB4MjAsMHg1YSwweDA4LDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZThmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHg0MCwweDMyLDB4MTQgfSB9LAoteyAgMTYsIDB4ZTkwMCwgMCwgezB4MGYsMHg0NSwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTAsMHgzZSwweDE1LDB4OGYsMHg4NSwweDAzLDB4MjEsMHhlOCwweGY4LDB4NjggfSB9LAoteyAgMTYsIDB4ZTkxMCwgMCwgezB4M2UsMHgxNCwweDBmLDB4ODQsMHgwMywweGUxLDB4ZTAsMHhmMCwweDI4LDB4MzIsMHhhOCwweGNjLDB4ODAsMHgyMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4ZTkyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MTUsMHhjNCwweDEwLDB4ZjksMHgyMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTkzMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4MTAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTk0MCwgMCwgezB4M2UsMHg0NCwweDBmLDB4ZDMsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBmLDB4OTQsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4ZTk1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhlNCwweDAwLDB4ZmQsMHgxMCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTk2MCwgMCwgezB4MGMsMHhkMCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzZiwweDQwLDB4NGMsMHhkMCwweDAzLDB4ZjYsMHgwMCwweGZkLDB4OTAgfSB9LAoteyAgMTYsIDB4ZTk3MCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweGU2LDB4YTAsMHhmZCwweGE4LDB4MzcsMHg2OCwweDBjLDB4ZDgsMHg4MywweDI2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTk4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDA4LDB4YzgsMHhhMCwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTk5MCwgMCwgezB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHg4MCwweDEyLDB4ZTAsMHgwMCwweGI4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZTlhMCwgMCwgezB4MjIsMHgwMCwweDBkLDB4MGEsMHgwMiwweGUzLDB4ODAsMHhiMCwweGMwLDB4MjAsMHgzNCwweDA4LDB4ODQsMHgwMywweDRlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZTliMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHg4NCwweDA5LDB4YTEsMHgwMCwweDIwLDB4NDEgfSB9LAoteyAgMTYsIDB4ZTljMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDkxLDB4MDAsMHgyYywweDQwLDB4MDgsMHgxMCwweDAyLDB4YzUsMHgwMCwweGIxLDB4NjAgfSB9LAoteyAgMTYsIDB4ZTlkMCwgMCwgezB4MjAsMHg0MCwweDA4LDB4MTAsMHhhMiwweGM0LDB4MjAsMHhiMSwweDI4LDB4MjQsMHg0YSwweDA4LDB4MTAsMHgwMiwweDUyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTllMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTQsMHhhNCwweDAxLDB4ODEsMHgwMCwweGEyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTlmMCwgMCwgezB4YTgsMHg5MCwweDAwLDB4MjUsMHg0MCwweDg5LDB4MDEsMHgyYywweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWEwMCwgMCwgezB4MmEsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDEsMHhiOSwweDA0LDB4MjIsMHg0MSwweDQ4LDB4OTAsMHgwMiwweDQ2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZWExMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTQsMHhhNSwweDIwLDB4ZTksMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWEyMCwgMCwgezB4NGMsMHgxMCwweDBiLDB4MjYsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MmMsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWEzMCwgMCwgezB4YjIsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDJjLDB4OTAsMHgwMywweDY4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZWE0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDEsMHhhNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWE1MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWE2MCwgMCwgezB4MzYsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBmLDB4OTAsMHgwMywweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWE3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhMSwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWE4MCwgMCwgezB4MGYsMHg4MCwweDEzLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDA0LDB4OGMsMHg4MCwweDAzLDB4YTAsMHhjMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWE5MCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjMCwweDA5LDB4MzIsMHgwMCwweDRjLDB4ODAsMHgwMSwweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWFhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4YmUsMHgwMCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWFiMCwgMCwgezB4MGIsMHhlMCwweDAyLDB4ODgsMHgwMCwweGFhLDB4MDAsMHgwMywweGEwLDB4MGEsMHhlNiwweDAyLDB4ZmEsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFjMCwgMCwgezB4MzIsMHg4MCwweDBiLDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4ZSwweDgwLDB4YTMsMHg4MCwweDI4LDB4MjAsMHgwMiwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2YywweDAwLDB4YjMsMHg0OCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWFlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzNCwweDgyLDB4OGUsMHgwNCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFmMCwgMCwgezB4MGEsMHhjMCwweDFiLDB4MzAsMHgwMiwweDBjLDB4MDIsMHg5MCwweDUwLDB4MjAsMHg2MCwweDA4LDB4MzAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWIwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTEsMHgxYywweDgwLDB4YmQsMHgwYSwweDIxLDB4NDggfSB9LAoteyAgMTYsIDB4ZWIxMCwgMCwgezB4MGIsMHg1MiwweDAyLDB4OWMsMHg0MCwweGEzLDB4YTAsMHgyMCwweDgwLDB4MGEsMHg2MCwweDAyLDB4Y2UsMHgwMCwweDg1LDB4MjAgfSB9LAoteyAgMTYsIDB4ZWIyMCwgMCwgezB4MjEsMHhjNCwweDBiLDB4N2EsMHgwNiwweDFlLDB4ODAsMHg5NSwweDIwLDB4MjEsMHg5MCwweDA4LDB4NzAsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWIzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDgsMHgxZSwweDgwLDB4ZjcsMHg4MCwweGIxLDB4NzkgfSB9LAoteyAgMTYsIDB4ZWI0MCwgMCwgezB4MGYsMHhkYiwweDAyLDB4M2UsMHgyMCwweGM3LDB4YTAsMHhiMSwweDYwLDB4Y2MsMHg3OCwweDEzLDB4OTYsMHgwMCwweGYxLDB4ZjAgfSB9LAoteyAgMTYsIDB4ZWI1MCwgMCwgezB4MzksMHhlMiwweDBmLDB4N2IsMHgxMywweDBmLDB4MDAsMHhkNCwweGEwLDB4MzEsMHg2MCwweDJjLDB4NzAsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZWI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTUsMHhhYywweDAwLDB4ZjcsMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWI3MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWQsMHg4MCwweGZiLDB4MTAsMHgzZSwweDQwLDB4MGIsMHhiMCwweDIzLDB4ZWMsMHgwMCwweGY5LDB4MjAgfSB9LAoteyAgMTYsIDB4ZWI4MCwgMCwgezB4M2EsMHhkOCwweDBmLDB4YjAsMHgwYiwweGVkLDB4ODEsMHhlZCwweDEwLDB4M2UsMHg4MCwweDBmLDB4MzAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZWI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHhiZSwweDIwLDB4ZWUsMHg4MCwweDMzLDB4NjAgfSB9LAoteyAgMTYsIDB4ZWJhMCwgMCwgezB4MGMsMHhkOCwweDgzLDB4MWUsMHgwMCwweDZmLDB4ODAsMHgzMywweGUwLDB4MGYsMHhiOCwweDExLDB4MzIsMHgwNCwweGY1LDB4ODAgfSB9LAoteyAgMTYsIDB4ZWJiMCwgMCwgezB4MzMsMHhlMCwweDBmLDB4ZjgsMHg4MywweDJmLDB4NDAsMHhmZSwweDgwLDB4YjMsMHhlMCwweDBjLDB4ZjgsMHgwMywweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWJjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTgsMHg5YywweDAwLDB4YmMsMHgwMCwweGExLDB4NDQgfSB9LAoteyAgMTYsIDB4ZWJkMCwgMCwgezB4MDgsMHgxMCwweDAzLDB4NWMsMHgwMCwweDhmLDB4MDAsMHgyMSwweDgwLDB4MGIsMHhlYSwweDIyLDB4MWMsMHg4MCwweGI1LDB4MDEgfSB9LAoteyAgMTYsIDB4ZWJlMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDFlLDB4ODAsMHhiZSwweDAwLDB4MjMsMHg4MCwweDJhLDB4NzAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWJmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDIwLDB4YTcsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWMwMCwgMCwgezB4MGIsMHg1MCwweDBhLDB4M2MsMHgwMCwweGE3LDB4MDAsMHgyNSwweGMwLDB4MGEsMHg0MywweDAyLDB4MTAsMHgwMCwweGI1LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWMxMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzAsMHg4MiwweDFjLDB4ODAsMHhiNCwweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDA0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWMyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDQsMHg4ZSwweDA0LDB4YjMsMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWMzMCwgMCwgezB4MDksMHgxNCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgyNCwweDgyLDB4MDQsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWM0MCwgMCwgezB4MjAsMHhjMCwweDhiLDB4M2EsMHgwMiwweDJjLDB4MDEsMHhiMCwweDAwLDB4MjAsMHg4MCwweDBhLDB4MzAsMHgwMiwweDFhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWM1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg5ZSwweDAwLDB4ZWIsMHgwNCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWM2MCwgMCwgezB4MmQsMHhkYywweDAzLDB4MWQsMHg2MCwweGVmLDB4MDAsMHgzMiwweDAwLDB4Y2YsMHg5YSwweDAzLDB4MjgsMHgwMCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWM3MCwgMCwgezB4MzMsMHhjMSwweDhiLDB4ZmMsMHgwYiwweDNjLDB4MDAsMHhmYywweDAwLDB4MzIsMHg4MCwweDBjLDB4OTAsMHgwMywweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWM4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhhYywweDEwLDB4ZjgsMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWM5MCwgMCwgezB4MGUsMHg5OCwweDIzLDB4YWMsMHgwNCwweGZiLDB4MDAsMHgzYywweDAwLDB4MGYsMHg4NCwweDIwLDB4ZWQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWNhMCwgMCwgezB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmZCwweDAwLDB4M2UsMHg4MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWNiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHg4MCwweDMzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWNjMCwgMCwgezB4MGMsMHhkMCwweDgzLDB4ZmMsMHgwMCwweGVmLDB4MDAsMHgzZiwweDQwLDB4MGMsMHhmMSwweDQxLDB4MzAsMHgxMCwweGNkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWNkMCwgMCwgezB4M2YsMHhjMCwweDAwLDB4NzAsMHgxMywweDNjLDB4MDAsMHhlNCwweDAwLDB4YjEsMHhkMCwweDBjLDB4MTAsMHgwMywweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWNlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGExLDB4MDQsMHgyYywweDAwLDB4OGEsMHhlNCwweDJhLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWNmMCwgMCwgezB4MjgsMHg5MCwweDAyLDB4ZWMsMHgwMCwweDhiLDB4MDAsMHgzZSwweDAyLDB4MGEsMHg4MCwweDAyLDB4MmMsMHg4MiwweDg5LDB4MDQgfSB9LAoteyAgMTYsIDB4ZWQwMCwgMCwgezB4MmUsMHhjMSwweDBhLDB4YjAsMHgwYSwweDJjLDB4MDAsMHg4OSwweDAyLDB4MjIsMHhmMiwweDJhLDB4OTgsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAyLDB4ODAsMHgxNCwweDJhLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWQyMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZWMsMHgwOCwweGFiLDB4MDQsMHgyZSwweDg0LDB4MDgsMHgxMCwweDgyLDB4ODAsMHgxMCwweDg5LDB4MDMgfSB9LAoteyAgMTYsIDB4ZWQzMCwgMCwgezB4MmMsMHhjMCwweDRhLDB4YjAsMHgyMiwweDJjLDB4MDAsMHhhYSwweDAwLDB4MjIsMHg4MCwweDA4LDB4OTEsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTQsMHgyYywweDAwLDB4ODAsMHgwMCwweDI4LDB4NDAgfSB9LAoteyAgMTYsIDB4ZWQ1MCwgMCwgezB4MDgsMHgxMSwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAsMHgyYywweDgxLDB4MGEsMHgwMCwweDVhLDB4ODgsMHgwMCwweDAxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ2MCwgMCwgezB4MmMsMHhjMCwweDBhLDB4MzAsMHgwMiwweDBjLDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDBhLDB4MTAsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZWQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YzksMHgwMCwweDNhLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWQ4MCwgMCwgezB4MGMsMHhkNCwweDAzLDB4ZmMsMHgwMCwweGViLDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MiwweDAzLDB4YTAsMHgwMCwweDRkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ5MCwgMCwgezB4M2YsMHhjMCwweDBlLDB4ZjAsMHgzMywweDNjLDB4ODAsMHhlOCwweDAwLDB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweDIwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZWRhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNkLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWRiMCwgMCwgezB4MGYsMHg1MCwweDAzLDB4ZmMsMHgwMiwweDNmLDB4MDQsMHgzYiwweDAxLDB4NGYsMHhjNCwweDEzLDB4NzAsMHgwMCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWRjMCwgMCwgezB4M2YsMHhjMCwweDFmLDB4ZjAsMHgwMSwweGZjLDB4NDAsMHhmYywweDAwLDB4M2YsMHhjMCwweDBmLDB4ZDAsMHgxMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZWRkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmOCwweGUwLDB4ZmYsMHg4MCwweDNkLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWRlMCwgMCwgezB4MGQsMHhmMywweDgyLDB4ZjAsMHg4MCwweGZmLDB4NDAsMHgzMSwweGNiLDB4MGMsMHhmMywweDAzLDB4ZmQsMHgwNCwweGVmLDB4YzEgfSB9LAoteyAgMTYsIDB4ZWRmMCwgMCwgezB4MzMsMHhlMCwweDBmLDB4NzksMHgwMywweGZlLDB4MDAsMHhjZiwweDQyLDB4MzMsMHhmMCwweDRjLDB4ZjgsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWUwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MTAsMHhlOSwweDA4LDB4YjksMHg4MSwweDJmLDB4ZjAgfSB9LAoteyAgMTYsIDB4ZWUxMCwgMCwgezB4MDgsMHhmNCwweDUyLDB4ZTksMHgyMCwweGJmLDB4NDAsMHgyMywweGYwLDB4MGEsMHhmMywweDAyLDB4ZmQsMHgwOCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWUyMCwgMCwgezB4MzYsMHhlMCwweDBiLDB4ODAsMHgyMiwweGU4LDB4ODAsMHg4ZiwweDQwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHg4MiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWUzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHhjYywweDAwLDB4YjEsMHg4MCwweDJjLDB4YzUgfSB9LAoteyAgMTYsIDB4ZWU0MCwgMCwgezB4MDksMHgzMiwweDQyLDB4YzgsMHhjMCwweGIzLDB4MzEsMHgyMCwweGMxLDB4MDgsMHgzMiwweDAyLDB4Y2MsMHhkNCwweGJiLDB4MjAgfSB9LAoteyAgMTYsIDB4ZWU1MCwgMCwgezB4NjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MjAsMHg5MywweDYwLDB4MjAsMHg4OCwweDA4LDB4MzIsMHgwMiwweDMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZWU2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MTUsMHhhMCwweDAwLDB4YmIsMHg4MCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWU3MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4ZWEsMHgwMCwweGJiLDB4MDAsMHg2MiwweGMxLDB4MGEsMHhiMCwweDAyLDB4Y2MsMHgwMCwweGFiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWU4MCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YTAsMHgwMCwweGU4LDB4MDAsMHg4MywweDAwLDB4MjIsMHhjMSwweDA4LDB4MzAsMHgwMiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWU5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlOCwweDkwLDB4ZmIsMHg4MCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWVhMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZTIsMHgxMCwweGZiLDB4MDAsMHgzMiwweGMwLDB4NGMsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGU5LDB4NTQgfSB9LAoteyAgMTYsIDB4ZWViMCwgMCwgezB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMywweGU2LDB4MDAsMHhjYiwweDAwLDB4YjIsMHg0MCwweDBjLDB4YjAsMHgwMywweDA0LDB4MDQgfSB9LAoteyAgMTYsIDB4ZWVjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiOCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWVkMCwgMCwgezB4OGYsMHhmMCwweDAzLDB4ZjAsMHgwMCwweGY3LDB4MDIsMHhiZiwweGMxLDB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGRmLDB4MDYgfSB9LAoteyAgMTYsIDB4ZWVlMCwgMCwgezB4MzcsMHhjMCwweDhmLDB4YzksMHgwNywweGZhLDB4OTIsMHhmZiwweDA0LDB4M2YsMHg1MCwweDJmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWVmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MTAsMHhhYywweDAwLDB4YzksMHgwMCwweDNlLDB4YzIgfSB9LAoteyAgMTYsIDB4ZWYwMCwgMCwgezB4MGUsMHhiMCwweDIzLDB4ZTQsMHgwMCwweGViLDB4MDAsMHgzYSwweGM4LDB4MGUsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWYxMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGE0LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg4MCwweDBmLDB4YjAsMHg4MywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZWYyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyOCwweDAwLDB4OGIsMHg3NCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWYzMCwgMCwgezB4MDgsMHhmMCwweDAyLDB4ZTQsMHgwMCwweDhmLDB4MDAsMHgyMSwweGYwLDB4MDgsMHhmMCwweDAyLDB4ZmMsMHgxMCwweGQzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY0MCwgMCwgezB4MmUsMHhjMCwweDBiLDB4OTAsMHgxMiwweDJjLDB4MDAsMHhlZiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjYsMHgwMiwweGY2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg0OCwweDAwLDB4YTMsMHgwMCwweDJjLDB4YzQgfSB9LAoteyAgMTYsIDB4ZWY2MCwgMCwgezB4MGEsMHgzMCwweDAyLDB4YzAsMHgwMCwweGEzLDB4MDAsMHg2OCwweGYwLDB4MGEsMHgzMCwweDEyLDB4Y2MsMHgwNCwweGEyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY3MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGVjLDB4MDAsMHhiMywweDAxLDB4MmUsMHhjMCwweDBiLDB4MzQsMHgwMiwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGIwLDB4MDEsMHgwYywweDAwLDB4ODcsMHg4MCwweDJkLDB4ZTggfSB9LAoteyAgMTYsIDB4ZWY5MCwgMCwgezB4MDgsMHg3OCwweDQyLDB4ZGEsMHgwMCwweDg3LDB4ODAsMHgyNSwweGUwLDB4MDgsMHg3OSwweDAyLDB4Y2UsMHgwMCwweDk2LDB4ODAgfSB9LAoteyAgMTYsIDB4ZWZhMCwgMCwgezB4MmQsMHhlMCwweDBiLDB4ZDksMHgwMiwweGRlLDB4MDAsMHhhNywweDgwLDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwMiwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWZiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZTMsMHgxMCwweDNjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZWZjMCwgMCwgezB4MGEsMHgzOCwweDAzLDB4ZTgsMHgwMCwweGViLDB4MDAsMHgzOCwweGMyLDB4MGEsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGUzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWZkMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4MzQsMHgwMywweGNkLDB4MDAsMHhmMywweDIwLDB4M2MsMHg4OCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZWZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiNCwweDgwLDB4ZmYsMHgwNCwweDNmLDB4YzggfSB9LAoteyAgMTYsIDB4ZWZmMCwgMCwgezB4MGYsMHhmMCwweDgzLDB4ZjgsMHg0MCwweGZmLDB4MTgsMHgzYiwweGMwLDB4MGYsMHhmNCwweDgzLDB4ZmMsMHgwMCwweGVlLDB4MDIgfSB9LAoteyAgMTYsIDB4ZjAwMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhlZiwweDA4LDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgxMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ZjAxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlOCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4ZjIgfSB9LAoteyAgMTYsIDB4ZjAyMCwgMCwgezB4NGQsMHhiMiwweDEzLDB4ZTgsMHgwNCwweGNiLDB4MDEsMHgzMiwweGY4LDB4NGQsMHhiMiwweDEzLDB4NmQsMHgyMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjAzMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4MzAsMHgwMywweDI0LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDhmLDB4YjgsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjA0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MTEsMHg4YywweDAwLDB4ODYsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjA1MCwgMCwgezB4MDgsMHg3MywweDAyLDB4ZDgsMHgxMiwweDg3LDB4MzAsMHgyMCwweGNiLDB4MDgsMHhmMiwweDAyLDB4MWQsMHgwNSwweGI1LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjA2MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NjAsMHgwMywweDUwLDB4MTAsMHhiNywweDA5LDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjA3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4ZTQgfSB9LAoteyAgMTYsIDB4ZjA4MCwgMCwgezB4MDksMHg3YSwweDAyLDB4Y2UsMHgwMSwweDg3LDB4ODAsMHgyMSwweGVjLDB4MDksMHg3OCwweDAyLDB4NWUsMHg4MCwweGI3LDB4YzAgfSB9LAoteyAgMTYsIDB4ZjA5MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4ZjgsMHgwMiwweDFlLDB4MDAsMHhiNywweGEwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjBhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhlZSwweDAwLDB4ODIsMHg4MCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjBiMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAsMHhhMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjBjMCwgMCwgezB4MmMsMHhjMSwweDBiLDB4MzAsMHgwMiwweDRlLDB4MDAsMHhiMywweDAwLDB4MmMsMHhmMSwweDBiLDB4MzAsMHgwYSwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjBkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDgwLDB4YzYsMHgwMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjBlMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZjgsMHg0MCwweGNhLDB4MDAsMHgzMiwweDgwLDB4MGQsMHhhMCwweDEzLDB4NjgsMHgwMCwweGZlLDB4MDIgfSB9LAoteyAgMTYsIDB4ZjBmMCwgMCwgezB4N2UsMHg4MCwweDBmLDB4ZWQsMHg4MywweDM5LDB4MTAsMHhmYSwweDAwLDB4M2YsMHg4YywweDBmLDB4YTAsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjEwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDEyLDB4ZjgsMHg5MCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjExMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDUsMHgzZSwweDAwLDB4MGUsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZjEyMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NjAsMHhmOCwweDAwLDB4N2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjEzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHg4MCwweDMyLDB4NjQgfSB9LAoteyAgMTYsIDB4ZjE0MCwgMCwgezB4MGYsMHg5MCwweDQzLDB4ZTQsMHgwNiwweGMxLDB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE1MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjMSwweDAxLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjE2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHhjMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjE3MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDUwLDB4MWIsMHg5MCwweDIyLDB4MjQsMHgwMCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE4MCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTAsMHgyMiwweDI0LDB4MDgsMHhjOSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTQsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4OTksMHgyMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjFhMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDU4LDB4MGIsMHg5MCwweDAyLDB4ODQsMHgwMCwweGE5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjFiMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4MTAsMHgwYSwweDA0LDB4MDAsMHg5OSwweDAyLDB4MjIsMHhjMSwweDA4LDB4OTAsMHg4MiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjFjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4OTEsMHgwMiwweGEwLDB4YzggfSB9LAoteyAgMTYsIDB4ZjFkMCwgMCwgezB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjIsMHgyMCwweDQ4LDB4OWIsMHgxMiwweDAyLDB4MDQsMHg5MCwweDg5LDB4MDEgfSB9LAoteyAgMTYsIDB4ZjFlMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDA0LDB4MDIsMHg4MSwweDIyLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQyLDB4ZGEsMHgwMSwweDMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjIwMCwgMCwgezB4MGYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGMwLDB4NTAsMHgzYSwweDAxLDB4OGIsMHg4NSwweDIzLDB4YTEsMHg0NCwweGU4LDB4NTAgfSB9LAoteyAgMTYsIDB4ZjIxMCwgMCwgezB4YjIsMHgwMCwweDBmLDB4ODUsMHgwMywweDIxLDB4NDgsMHhkOCwweDUxLDB4MzIsMHgxNCwweDJjLDB4ODUsMHgwMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4ZjIyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNSwweDAwLDB4ZWQsMHgwMiwweDNlLDB4NDQgfSB9LAoteyAgMTYsIDB4ZjIzMCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MTAsMHgzZSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI0MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhlOSwweDEwLDB4YmYsMHg0MCwweDBmLDB4OTAsMHgwMywweDY2LDB4MDYgfSB9LAoteyAgMTYsIDB4ZjI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDIxLDB4YzUsMHgwMCwweDMzLDB4NjggfSB9LAoteyAgMTYsIDB4ZjI2MCwgMCwgezB4MGYsMHg5YSwweDAzLDB4NmYsMHg4OCwweGM5LDB4YzAsMHgzMywweDY4LDB4MGMsMHg5ZSwweDAzLDB4MjcsMHg4MCwweGQ5LDB4NDAgfSB9LAoteyAgMTYsIDB4ZjI3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM1LDB4MTAsMHhkOSwweGU4LDB4MzYsMHg1MCwweDBjLDB4ZDAsMHgwMywweGU2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDA4LDB4ODgsMHgwMCwweDgyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI5MCwgMCwgezB4MGIsMHg4ZSwweDgyLDB4ZWIsMHhjOCwweDg4LDB4ZTAsMHgyMiwweDAwLDB4MjgsMHg4OCwweDQyLDB4YTIsMHg4MCwweDhhLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjJhMCwgMCwgezB4MjIsMHgwMCwweDBiLDB4YWEsMHgwMiwweGUyLDB4MDAsMHg4OCwweGMwLDB4MjIsMHhhOSwweDA4LDB4OGEsMHgwMywweDhlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjJiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHgwMCwweDIwLDB4ZDAgfSB9LAoteyAgMTYsIDB4ZjJjMCwgMCwgezB4MGIsMHgxMSwweDMyLDB4ODQsMHg4NCwweDgxLDB4NjAsMHg2MCwweDUwLDB4MDgsMHgxNiwweDA2LDB4MDUsMHgwMCwweDkxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZjJkMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4MTAsMHg4MiwweGU0LDB4MDksMHg5MSwweDIwLDB4MjQsMHg0MCwweDA4LDB4MTAsMHhjMiwweGQyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjJlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDA0LDB4ODksMHgwNCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjJmMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMiwweDQxLDB4MDAsMHg5MCwweDAyLDB4YTQsMHgwMCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjMwMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTIsMHgyMiwweGU1LDB4ODAsMHg5OSwweDAxLDB4MjIsMHg2MSwweDA4LDB4OTAsMHgwMiwweDg2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjMxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTQsMHhhNSwweDgyLDB4ODEsMHg5MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjMyMCwgMCwgezB4MGYsMHg5MCwweDEzLDB4NjcsMHgwMiwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDIzLDB4MjQsMHgwNCwweGQ5LDB4YzAgfSB9LAoteyAgMTYsIDB4ZjMzMCwgMCwgezB4YjIsMHg0MCwweDBmLDB4OWMsMHgwMywweGU2LDB4MDAsMHhkOSwweDAwLDB4MzYsMHg1MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjM0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDAsMHhhNiwweDgwLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjM1MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTcsMHgwMCwweGQ5LDB4MDAsMHhiYywweDQyLDB4MGYsMHg5MCwweDUzLDB4ZTQsMHgwNCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4ZjM2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTgsMHgwMywweGU2LDB4MDQsMHhlMSwweDAwLDB4M2UsMHg0MCwweDJmLDB4OTAsMHgwMywweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjM3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MSwweDEwLDB4NDgsMHgxMCwweDMyLDB4MDggfSB9LAoteyAgMTYsIDB4ZjM4MCwgMCwgezB4MGMsMHg4MCwweDBmLDB4MjEsMHgwMiwweGM4LDB4MDAsMHgzYSwweDA0LDB4MGYsMHg4MCwweDA3LDB4NjAsMHgwMCwweGY4LDB4NDAgfSB9LAoteyAgMTYsIDB4ZjM5MCwgMCwgezB4YjIsMHgwMCwweDBmLDB4ODQsMHgwYiwweDIwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgxMCwweDBjLDB4ODAsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjNhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDQsMHgyOCwweDA0LDB4OGUsMHg4MCwweDIzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjNiMCwgMCwgezB4MDgsMHhhMCwweDQyLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMywweGEwLDB4NGIsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjNjMCwgMCwgezB4NzYsMHg4MCwweDBiLDB4YTAsMHgwMiwweDA4LDB4MDAsMHg4YSwweDAwLDB4MzIsMHg4MCwweDA4LDB4ZTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjNkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODIsMHgwMCwweDIwLDB4ZDAgfSB9LAoteyAgMTYsIDB4ZjNlMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MGMsMHgwMCwweDliLDB4MDAsMHgyOCwweGMwLDB4MWEsMHhiMCwweDAyLDB4NmMsMHgwMCwweGIzLDB4MDIgfSB9LAoteyAgMTYsIDB4ZjNmMCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhhMywweDAwLDB4MjIsMHhjMCwweDI4LDB4MzQsMHg4MiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxYywweDAwLDB4ODcsMHgwMCwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZjQxMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4MGMsMHgwMCwweDk3LDB4MjAsMHgyNSwweGMwLDB4MGIsMHg3MSwweDAyLDB4ZGMsMHg4MSwweGI3LDB4MjAgfSB9LAoteyAgMTYsIDB4ZjQyMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4N2EsMHg0MiwweDNjLDB4ODAsMHg4NywweDIwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgwZSwweDgyLDB4YzcsMHg4MCwweGIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZjQ0MCwgMCwgezB4MmMsMHhmYSwweDA2LDB4MWUsMHgwOCwweGQzLDB4YjEsMHgzOSwweDYwLDB4NGUsMHg3OCwweDEyLDB4NWUsMHhhMCwweGZmLDB4ZjAgfSB9LAoteyAgMTYsIDB4ZjQ1MCwgMCwgezB4MjEsMHhlMCwweDBmLDB4ZjgsMHgwMywweDFmLDB4MDgsMHhlMywweGEwLDB4MzMsMHhlMCwweDBjLDB4NjgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZjQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDQwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjQ3MCwgMCwgezB4MGYsMHhiMiwweDAzLDB4ZWQsMHhhOCwweGViLDB4MTAsMHgzYSwweDgwLDB4MGYsMHhiMCwweGMzLDB4ZWMsMHg0MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQ4MCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHg4MywweGVjLDB4ODAsMHhlYiwweDcwLDB4YmUsMHhjNCwweDBmLDB4YjAsMHgwMywweDgyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZjQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4Y2UsMHg4MCwweGIzLDB4NjAgfSB9LAoteyAgMTYsIDB4ZjRhMCwgMCwgezB4MGYsMHhmYywweDgzLDB4N2UsMHgyMCwweGVmLDB4YjAsMHgzYiwweGUwLDB4MGYsMHhiOCwweDAzLDB4M2UsMHgwMCwweGNmLDB4ODEgfSB9LAoteyAgMTYsIDB4ZjRiMCwgMCwgezB4M2YsMHhlMCwweDhmLDB4ZjgsMHg4MywweGVmLDB4NDAsMHhmZiwweGMyLDB4MzMsMHhlMSwweDBjLDB4ZjgsMHgwMywweGQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjRjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDgyLDB4ODcsMHgxOCwweDIxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjRkMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MWMsMHg2MCwweGQ3LDB4MTAsMHgyMSwweGQwLDB4MGIsMHg3YiwweDAyLDB4M2MsMHgwMCwweGQ3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjRlMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRlLDB4MDAsMHhiZiwweDAwLDB4YTMsMHhjNCwweDA4LDB4NzAsMHgwMywweGFhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjRmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiYywweDExLDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjUwMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MWMsMHgwMCwweDkzLDB4MjAsMHg2OSwweGMwLDB4MGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjUxMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MjAsMHhiNywweDEwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDg0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjUyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MTQsMHhjZCwweDAwLDB4ODMsMHg0MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjUzMCwgMCwgezB4NGIsMHgzMCwweDAyLDB4MGMsMHgwMSwweDgzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjU0MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDEsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgyMiwweDk4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjU1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZiwweDIwLDB4Y2EsMHhjMCwweDMyLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjU2MCwgMCwgezB4MGYsMHhmMCwweDAzLDB4M2UsMHgwMCwweDlmLDB4MDAsMHgzYSwweDgwLDB4MGYsMHhmMCwweDBiLDB4M2MsMHgwMCwweGNmLDB4OTggfSB9LAoteyAgMTYsIDB4ZjU3MCwgMCwgezB4M2UsMHhjMCwweDBmLDB4ZjYsMHgwMywweGZmLDB4MDAsMHhmZiwweDAwLDB4MzEsMHhlMCwweDJjLDB4YjAsMHgwMywweGFlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjU4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhjYywweDgwLDB4ZmIsMHgwMCwweDNlLDB4NTAgfSB9LAoteyAgMTYsIDB4ZjU5MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMiwweGZiLDB4MDAsMHg3ZSwweDUwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjVhMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjIsMHgwMywweGVjLDB4MjAsMHhmMywweDAwLDB4M2UsMHhjNiwweDBmLDB4OTAsMHgwMywweGEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjViMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAyLDB4Y2YsMHg5OCwweDczLDB4YzggfSB9LAoteyAgMTYsIDB4ZjVjMCwgMCwgezB4MGYsMHg3MCwweDAzLDB4M2MsMHgwMCwweGZmLDB4MDAsMHgzMywweDI4LDB4MGYsMHhiMCwweDAyLDB4MWMsMHgwMCwweDRmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjVkMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAxLDB4MzMsMHhjMCwweDBjLDB4ZTQsMHgwMywweGU0LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjVlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2YywweDAwLDB4ODMsMHg4MCwweGEyLDB4ZjggfSB9LAoteyAgMTYsIDB4ZjVmMCwgMCwgezB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgzMiwweDEwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwNCwweGFiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjYwMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YjAsMHgxMiwweGVjLDB4MDQsMHhlYiwweDAwLDB4MjIsMHhjMCwweDRhLDB4OTQsMHg4MiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjYxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHg2YywweDAwLDB4OGEsMHgwMCwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjYyMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4MDAsMHhhMiwweGMwLDB4MGIsMHgzMCwweDAyLDB4YWMsMHgwMCwweGFiLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjYzMCwgMCwgezB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweGVjLDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgyMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwYywweDAwLDB4OGIsMHgwMSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY1MCwgMCwgezB4MGIsMHgzMCwweDA2LDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgzMiwweDBhLDB4Y2MsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY2MCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAwLDB4MjIsMHhjMCwweDRhLDB4MDAsMHgxMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg2YywweDAwLDB4OGIsMHgwNCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjY4MCwgMCwgezB4MGYsMHhmMSwweDAzLDB4MWMsMHgwMCwweGZmLDB4MDQsMHgzMiwweGMwLDB4MGIsMHhmMiwweDAzLDB4YmMsMHgwMCwweGVmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY5MCwgMCwgezB4M2UsMHhjMCwweDA3LDB4ZjAsMHgwMywweGZjLDB4ODAsMHhmZiwweDAwLDB4YjIsMHhjMCwweDBjLDB4YTAsMHgwMywweGUwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZjZhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhkYywweDAwLDB4ZjUsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjZiMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMSwweGZmLDB4MDIsMHgzYiwweGMwLDB4MGYsMHhmMSwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjZjMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZjAsMHgxMywweGZjLDB4NDAsMHhlZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZjZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhmMiwweDQwLDB4Y2MsMHg4MCwweDM3LDB4MjAgfSB9LAoteyAgMTYsIDB4ZjZlMCwgMCwgezB4MGMsMHhkOCwweDAzLDB4YjAsMHg0NCwweGZjLDB4MDgsMHgzZiwweDBlLDB4MGYsMHhjMSwweDAzLDB4ZmMsMHgwMCwweGNjLDB4OTQgfSB9LAoteyAgMTYsIDB4ZjZmMCwgMCwgezB4M2YsMHgwYSwweDJlLDB4YzQsMHgwMywweDdkLDB4ODAsMHhjZiwweDEwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHg4MywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjcwMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDgsMHhlMCwweDkwLDB4ODgsMHgwMiwweDIyLDB4ODEgfSB9LAoteyAgMTYsIDB4ZjcxMCwgMCwgezB4MDgsMHg5MiwweDEzLDB4YTQsMHg0MCwweDNiLDB4NjAsMHgyMiwweDE4LDB4MGIsMHg4MSwweDAyLDB4ZmMsMHhkNCwweDgxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjcyMCwgMCwgezB4M2EsMHhiMCwweDBhLDB4OTQsMHgwMiwweDNkLDB4NDAsMHhhZiwweDYzLDB4MmYsMHhkZiwweDBiLDB4OTgsMHgwMCwweDIwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjczMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlMCwweDAwLDB4ODgsMHgwMCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4Zjc0MCwgMCwgezB4ODgsMHgzMCwweDgyLDB4YzAsMHgwMCwweGIwLDB4MDgsMHgyOCwweDgwLDB4MGEsMHgxMCwweDAyLDB4Y2MsMHgyMCwweDgwLDB4MDEgfSB9LAoteyAgMTYsIDB4Zjc1MCwgMCwgezB4MmMsMHg0MCwweDFiLDB4MDYsMHgwMiwweDhjLDB4OTAsMHg5MywweDYwLDB4NjgsMHhjMCwweDRhLDB4MDAsMHg0MiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4Zjc2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhhMCwweDAyLDB4ODgsMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4Zjc3MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4ZTQsMHgyMCwweGJiLDB4ODgsMHgyNiwweDk4LDB4MGIsMHg4MCwweDQyLDB4Y2MsMHgxOCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjc4MCwgMCwgezB4MmUsMHhjMiwweDFiLDB4OTgsMHgwMiwweGFjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4OTgsMHg4MiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4Zjc5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlMywweGMwLDB4Y2IsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdhMCwgMCwgezB4MmMsMHg4MCwweDAzLDB4YWUsMHgwOCwweGI5LDB4MDAsMHgzZSwweDcwLDB4MGYsMHhiOSwweDAzLDB4ZWMsMHgwMiwweDQ4LDB4NDggfSB9LAoteyAgMTYsIDB4ZjdiMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4OGMsMHg5MywweGVjLDB4MDAsMHhkYiwweDAwLDB4MWEsMHhjMCwweDBlLDB4YWMsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjdjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiMiwweDAwLDB4ZmYsMHgwMCwweGJiLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjdkMCwgMCwgezB4MGYsMHhjMCwweDQzLDB4YjYsMHg0MCwweGJkLDB4MDAsMHgzYiwweDYwLDB4MGYsMHhlOCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4OTQgfSB9LAoteyAgMTYsIDB4ZjdlMCwgMCwgezB4M2IsMHhlNCwweDBlLDB4NjAsMHgwZiwweDZjLDB4MDgsMHhlZiwweDAxLDB4M2YsMHhjMCwweDBmLDB4NjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMSwweDAwLDB4ZmIsMHgwMCwweDNlLDB4NjAgfSB9LAoteyAgMTYsIDB4ZjgwMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZWQsMHgwMCwweGY5LDB4NDAsMHgzYSwweDAwLDB4MGYsMHg5MCwweDAzLDB4ZWMsMHgwMiwweGM5LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjgxMCwgMCwgezB4MzIsMHhkMCwweDBmLDB4OTAsMHgwMywweDJjLDB4MDgsMHhkYiwweDAwLDB4YjYsMHhjMCwweDBkLDB4YjQsMHgwMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjgyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgwMCwweDAwLDB4YjMsMHg4OSwweDJlLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZjgzMCwgMCwgezB4MGIsMHhhNCwweDAzLDB4YTQsMHgwMSwweGI5LDB4MDAsMHgyZSwweDAxLDB4MGIsMHg5MCwweDQyLDB4ZmMsMHgxMCwweDg5LDB4NTAgfSB9LAoteyAgMTYsIDB4Zjg0MCwgMCwgezB4YTIsMHhjMCwweDhkLDB4YjQsMHgwMiwweDNjLDB4NDQsMHg4ZiwweDAwLDB4MjMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDQsMHgwYywweDAwLDB4YjAsMHg4MCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg2MCwgMCwgezB4MGIsMHgxMiwweDAyLDB4YzgsMHgwMCwweGJhLDB4MDAsMHgyYywweGMwLDB4MGIsMHgyMCwweDAyLDB4Y2MsMHgwMCwweGEyLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg3MCwgMCwgezB4MjAsMHgwMCwweDJiLDB4MmQsMHg5YSwweDJlLDB4NDIsMHg4MywweDAwLDB4MjgsMHhjMCwweDA4LDB4MjAsMHgwMiwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgxZSwweDA0LDB4YjQsMHg4MCwweDJkLDB4YTAgfSB9LAoteyAgMTYsIDB4Zjg5MCwgMCwgezB4MGIsMHg1OCwweDAyLDB4OTIsMHgwMCwweGI2LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg2OCwweDAyLDB4ZGUsMHg0MCwweGE2LDB4ODAgfSB9LAoteyAgMTYsIDB4ZjhhMCwgMCwgezB4MjEsMHgyNCwweDI5LDB4NDgsMHgwMiwweDFlLDB4ODAsMHg4NywweDgwLDB4NjksMHhlMCwweDA4LDB4NjEsMHgwMiwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhiMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTgsMHgwYywweDAwLDB4ZjAsMHgzMCwweDNjLDB4NGMgfSB9LAoteyAgMTYsIDB4ZjhjMCwgMCwgezB4MGYsMHgzMiwweDAzLDB4YzgsMHg4MCwweGIyLDB4MDAsMHgzOCwweDgwLDB4MGYsMHgxYiwweDAzLDB4ZWMsMHgwMCwweGUwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZjhkMCwgMCwgezB4MzAsMHgwNCwweDBmLDB4YjEsMHgwMywweDBlLDB4ODUsMHhjYiwweDAwLDB4M2EsMHhjMCwweDBjLDB4MzEsMHgwMywweGQyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZjhlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWMsMHhiYywweDAwLDB4ZmMsMHgxMSwweDNmLDB4YzQgfSB9LAoteyAgMTYsIDB4ZjhmMCwgMCwgezB4MGYsMHhiOCwweDEzLDB4YjAsMHgwNCwweGZlLDB4MDIsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4ZmQsMHgwMCwweGRmLDB4MTIgfSB9LAoteyAgMTYsIDB4ZjkwMCwgMCwgezB4MWQsMHgwNCwweDBmLDB4ZDAsMHg0MywweGJjLDB4MDEsMHhlZiwweDEwLDB4MzMsMHhjNCwweDBlLDB4ZjMsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ZjkxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhlZSwweDAwLDB4Y2IsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjkyMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4MjgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDQwLDB4M2QsMHhiMCwweDAzLDB4ZWYsMHgwOCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZjkzMCwgMCwgezB4M2EsMHgwMCwweDBjLDB4YTAsMHgwMywweGVjLDB4OTgsMHhmYiwweDIwLDB4MzIsMHhkMiwweDBjLDB4YTgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4Zjk0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4ODcsMHgwMSwweDJkLDB4ODAgfSB9LAoteyAgMTYsIDB4Zjk1MCwgMCwgezB4MGIsMHg0MCwweDQyLDB4MWMsMHgwNCwweDM3LDB4MDAsMHhhMSwweDQwLDB4MDgsMHg2MCwweDAyLDB4Y2MsMHg4MCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk2MCwgMCwgezB4MmQsMHg4MCwweDJlLDB4NzAsMHgwMiwweGRjLDB4YTksMHhiNywweDI4LDB4MjEsMHhkMCwweDA4LDB4NzAsMHgwMiwweDEyLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHhiZSwweDAyLDB4ODcsMHg4MCwweDJkLDB4NjAgfSB9LAoteyAgMTYsIDB4Zjk4MCwgMCwgezB4NGIsMHhlOCwweDAyLDB4NWEsMHgwMSwweGI0LDB4ODgsMHgyOCwweGUwLDB4ODgsMHg3OCwweGMyLDB4ZGUsMHg1MiwweDg2LDB4YzAgfSB9LAoteyAgMTYsIDB4Zjk5MCwgMCwgezB4MjksMHg2MCwweDA4LDB4NjgsMHgwMiwweGRlLDB4NDAsMHhiMywweDkyLDB4ZTEsMHhlOCwweDI4LDB4MjgsMHgwMiwweDcwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjlhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTQsMHhjYywweDAwLDB4OGIsMHg4MCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZjliMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4NGQsMHg4MCwweDliLDB4MjAsMHgyMCwweGUwLDB4MDgsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjljMCwgMCwgezB4MmMsMHhjMCwweDBhLDB4YjAsMHgwMiwweGNjLDB4MDgsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzEsMHgwMiwweDUyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjlkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4Y2EsMHhlMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjllMCwgMCwgezB4MWYsMHhhNCwweDBiLDB4NzksMHgwMCwweGZlLDB4MDAsMHgzZiwweDgyLDB4MWQsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjlmMCwgMCwgezB4M2IsMHg4OCwweDJjLDB4ZTQsMHgwMywweGU4LDB4MDEsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4ZTgsMHgwMywweDdhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmEwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHhhMCwweDAwLDB4ZjgsMHgwOSwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmExMCwgMCwgezB4OGYsMHhjMCwweDgzLDB4YTAsMHgxOCwweGY4LDB4MDAsMHgzYywweDIwLDB4MGYsMHg4OCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDggfSB9LAoteyAgMTYsIDB4ZmEyMCwgMCwgezB4M2UsMHgyMCwweDBlLDB4ODAsMHg4MywweGUxLDB4MDEsMHhmMCwweDAwLDB4M2MsMHgwMCwweDBmLDB4ODAsMHgwYiwweDkyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmEzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZjksMHg0MiwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmE0MCwgMCwgezB4NGMsMHg5OCwweDAzLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4MjQsMHgwMCwweGI5LDB4ODEgfSB9LAoteyAgMTYsIDB4ZmE1MCwgMCwgezB4M2MsMHg0MCwweDBjLDB4OTIsMHgwMywweDI0LDB4MDAsMHhmOSwweDA1LDB4MzIsMHg0MCwweDZjLDB4OTAsMHhjMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmE2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHgyNCwweDE0LDB4YjksMHgwMCwweGEyLDB4NTQgfSB9LAoteyAgMTYsIDB4ZmE3MCwgMCwgezB4MDgsMHg5YiwweDFhLDB4MjQsMHgwMiwweDg5LDB4MDAsMHgyMiwweDQwLDB4MjgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGI5LDB4OTAgfSB9LAoteyAgMTYsIDB4ZmE4MCwgMCwgezB4MmUsMHg0MCwweDI4LDB4OWMsMHg4MiwweDI1LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTgsMHgxMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE5MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YWQsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmFhMCwgMCwgezB4MDgsMHg1MCwweDAyLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHgxMCwweDAyLDB4NjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFiMCwgMCwgezB4NmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI1LDB4MDAsMHhhOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTEsMHgwNiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgxNCwweDAwLDB4YjUsMHgxMCwweGExLDB4NDQgfSB9LAoteyAgMTYsIDB4ZmFkMCwgMCwgezB4MjgsMHg1MCwweDAyLDB4NDQsMHg4MCwweDgxLDB4MzAsMHgyMCwweDQ4LDB4MDgsMHgxMiwweDAyLDB4ODQsMHg0MCwweGIxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZmFlMCwgMCwgezB4NmMsMHhjOCwweDA4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHhiMSwweDM0LDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZTgsMHg0MCwweDMyLDB4OTAgfSB9LAoteyAgMTYsIDB4ZmIwMCwgMCwgezB4MGMsMHhjNSwweDAzLDB4NjEsMHg0MCwweGMwLDB4NDAsMHgzYSwweDE0LDB4MGYsMHg4NSwweDAzLDB4MjEsMHhiMCwweGY4LDB4NTAgfSB9LAoteyAgMTYsIDB4ZmIxMCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODUsMHgwMywweDIxLDB4NDAsMHhmOCwweDQwLDB4YjAsMHgxNCwweDBjLDB4ODAsMHgwMywweGVlLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmIyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MWQsMHhjNCwweDA0LDB4ZjksMHgyMiwweDBlLDB4NDggfSB9LAoteyAgMTYsIDB4ZmIzMCwgMCwgezB4MGYsMHgxMCwweDEzLDB4YjQsMHg0MCwweGZkLDB4MzAsMHgzZiwweDQ0LDB4NGYsMHhkMSwweDAwLDB4ZTQsMHg4NCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmI0MCwgMCwgezB4M2QsMHg0NCwweDBmLDB4ZDEsMHgwYiwweGU0LDB4NDAsMHhmOSwweDMwLDB4M2UsMHg0NCwweDBmLDB4ZDEsMHgwMywweGU2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZmI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MDUsMHhlNCwweDAwLDB4ZGQsMHg0MCwweDNmLDB4NTAgfSB9LAoteyAgMTYsIDB4ZmI2MCwgMCwgezB4MGMsMHhkMCwweDAzLDB4MmMsMHgwMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5MCwweDEzLDB4MjcsMHgwNCwweGY1LDB4MDEgfSB9LAoteyAgMTYsIDB4ZmI3MCwgMCwgezB4MzcsMHg0MCwweDBjLDB4ZjAsMHgwMywweGY2LDB4MjAsMHhmOSwweGE4LDB4MzIsMHg2OCwweDBjLDB4ZDAsMHgwMywweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI4MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDAsMHhlMCwweDAwLDB4ODgsMHhhMCwweDJlLDB4MjggfSB9LAoteyAgMTYsIDB4ZmI5MCwgMCwgezB4MjgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg4LDB4YTAsMHgyMiwweDAwLDB4MGIsMHg4MCwweDBhLDB4NjIsMHg4MCwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJhMCwgMCwgezB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGUxLDB4MDAsMHhiOCwweGUwLDB4MjIsMHgzYSwweDA4LDB4YTAsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmJiMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHg4NCwweDAyLDB4ODEsMHgwMCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmJjMCwgMCwgezB4MDgsMHgxMCwweDBhLDB4NDQsMHgwMiwweDgxLDB4MDgsMHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4NDUsMHg4MCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJkMCwgMCwgezB4MjQsMHg0MCwweDI5LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDA4LDB4MjQsMHg0NCwweDA4LDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmJlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTQsMHhhNCwweDA0LDB4ODksMHgwMSwweDJlLDB4NTAgfSB9LAoteyAgMTYsIDB4ZmJmMCwgMCwgezB4NDgsMHhiMiwweDAyLDB4NjQsMHgwMCwweDkxLDB4MDAsMHgyMiwweDQ2LDB4MGIsMHg5MCwweDAyLDB4NjQsMHgwMCwweGI5LDB4MDEgfSB9LAoteyAgMTYsIDB4ZmMwMCwgMCwgezB4MjYsMHhjMCwweDA5LDB4YjAsMHgxMiwweGU0LDB4MDAsMHhiMSwweDAwLDB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZmMxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDQsMHhlNCwweDAwLDB4YzksMHgwMCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmMyMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMCwweGM5LDB4MDIsMHgzNiwweDUwLDB4MGUsMHg5MywweDAzLDB4MjQsMHgwMCwweGY5LDB4OTAgfSB9LAoteyAgMTYsIDB4ZmMzMCwgMCwgezB4MzYsMHg0OCwweDBkLDB4OTQsMHg4MywweGU0LDB4MDgsMHhmOSwweDAwLDB4YjYsMHg0MCwweDBjLDB4OTQsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZmM0MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmM1MCwgMCwgezB4MGYsMHg5MCwweDEzLDB4YTQsMHgwMCwweGU5LDB4MDIsMHgyZSwweDYxLDB4MDUsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM2MCwgMCwgezB4M2EsMHg0MCwweDBlLDB4OTAsMHg0MywweGU0LDB4MTAsMHhmOSwweDAwLDB4MzgsMHg0MCwweDJmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM3MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMSwweDMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmM4MCwgMCwgezB4MGYsMHg4MCwweDQzLDB4YzAsMHgwMSwweGM4LDB4MDAsMHhiMiwweDAxLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGM4LDB4NDAgfSB9LAoteyAgMTYsIDB4ZmM5MCwgMCwgezB4MzAsMHgwMCwweDhjLDB4ODQsMHg4MywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDZjLDB4ODQsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmNhMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZmNiMCwgMCwgezB4MGIsMHhlYSwweDAyLDB4ZTgsMHgwMCwweGFhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDg2LDB4MjAgfSB9LAoteyAgMTYsIDB4ZmNjMCwgMCwgezB4MzcsMHhhMCwweDhkLDB4ZTQsMHgwMiwweGY4LDB4MDAsMHhkYSwweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHg2YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ZmNlMCwgMCwgezB4MGIsMHhiOCwweDAyLDB4NGMsMHgwNCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHhiMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNmMCwgMCwgezB4MjAsMHg0MCwweDI4LDB4MzQsMHgwMiwweGNlLDB4OTAsMHg4MywweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxYywweGMwLDB4YjUsMHg4OCwweDIxLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmQxMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZGMsMHg4MCwweGEzLDB4MjAsMHgyMSwweGUwLDB4NDgsMHgzMiwweDQyLDB4MGUsMHg5MCwweDhlLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmQyMCwgMCwgezB4NjUsMHg1MCwweDA5LDB4NzAsMHgwMiwweGRlLDB4MjAsMHg5MywweDIxLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQzMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTgsMHgxZSwweDAwLDB4ZmYsMHg4MCwweGIxLDB4YTAgfSB9LAoteyAgMTYsIDB4ZmQ0MCwgMCwgezB4MGYsMHg0OCwweDAyLDB4N2UsMHgwMCwweDg3LDB4YTAsMHgzMywweGUwLDB4MjgsMHg3YSwweDBiLDB4MWYsMHgwMCwweGM0LDB4ODAgfSB9LAoteyAgMTYsIDB4ZmQ1MCwgMCwgezB4MzEsMHg2MCwweDhjLDB4NTgsMHgwMywweGZlLDB4MDAsMHhjNywweGM4LDB4MzMsMHhlOCwweDBjLDB4NTgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ3MCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZWMsMHhhMCwweGZiLDB4NDAsMHgzZSwweGMwLDB4OGYsMHhiNSwweDAzLDB4ZWQsMHg4MCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ4MCwgMCwgezB4M2MsMHg0MCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYiwweDAyLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZmQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MDQsMHhiZSwweDAwLDB4ZmYsMHg4MCwweDNmLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZmRhMCwgMCwgezB4MGYsMHhkOSwweDAzLDB4ZmUsMHgyMCwweGNmLDB4YzgsMHgzMywweGVhLDB4OGYsMHhmYywweDAzLDB4M2YsMHgwMCwweGZkLDB4ODAgfSB9LAoteyAgMTYsIDB4ZmRiMCwgMCwgezB4M2YsMHg2MCwweDBlLDB4ZTgsMHgwMywweGYyLDB4MDAsMHhjZiwweDgwLDB4MmYsMHhmZSwweDBjLDB4NzgsMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRjMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDAsMHg5YywweDAwLDB4YjUsMHgwMiwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4ZmRkMCwgMCwgezB4MGIsMHg1OCwweDQyLDB4ZGMsMHg4MCwweGNmLDB4MDAsMHgyMSwweGMxLDB4MGIsMHgzMCwweDEyLDB4MWMsMHg0MCwweGI0LDB4MDIgfSB9LAoteyAgMTYsIDB4ZmRlMCwgMCwgezB4MmQsMHg0NiwweDA4LDB4NzEsMHgxMiwweGM4LDB4MDAsMHhlNywweDAwLDB4MmQsMHhjNCwweDA4LDB4NzAsMHgwMywweDZhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmRmMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgwMCwweDJkLDB4MDIgfSB9LAoteyAgMTYsIDB4ZmUwMCwgMCwgezB4MGIsMHg0NiwweDAyLDB4ZGMsMHgwOCwweDk3LDB4MDAsMHgyMSwweGM5LDB4MGEsMHgzMCwweDIyLDB4MWMsMHgwMCwweGI0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmUxMCwgMCwgezB4MmQsMHg0MCwweDBhLDB4NTAsMHg4MiwweGM0LDB4MDAsMHhiNywweDAwLDB4MmMsMHhjOCwweDI4LDB4NTAsMHgwMiwweDQwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZmUyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTQsMHg4YywweDE4LDB4YjMsMHgwMCwweDJlLDB4MjAgfSB9LAoteyAgMTYsIDB4ZmUzMCwgMCwgezB4MGIsMHgxOCwweDAyLDB4Y2YsMHg0YSwweDgzLDB4YzIsMHgyMCwweGMxLDB4MGIsMHgzNCwweDIyLDB4MGMsMHgwNCwweGI4LDB4NTggfSB9LAoteyAgMTYsIDB4ZmU0MCwgMCwgezB4MmMsMHg0MCwweDBiLDB4MjgsMHgwMiwweGM4LDB4MDAsMHhhMywweDAwLDB4MmMsMHhjMCwweDA4LDB4MTQsMHgwMiwweDQ4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZmU1MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhiYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZmU2MCwgMCwgezB4MGYsMHhhMCwweDAyLDB4ZmMsMHgwMCwweGRmLDB4YTAsMHhiMywweGMwLDB4MGUsMHhmMCwweDBiLDB4M2MsMHgwMCwweGZiLDB4YzAgfSB9LAoteyAgMTYsIDB4ZmU3MCwgMCwgezB4M2MsMHhhMCwweDBlLDB4YmQsMHgwMywweGVjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBjLDB4MzAsMHgwMywweDZhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZmU4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4MDEgfSB9LAoteyAgMTYsIDB4ZmU5MCwgMCwgezB4OGYsMHhiMSwweDQzLDB4ZWMsMHgwMCwweGYzLDB4MDAsMHgzZSwweGMwLDB4NGYsMHhiMCwweDEzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVhMCwgMCwgezB4M2UsMHg4MCwweDBjLDB4ODQsMHgwMywweGUxLDB4MDAsMHg3MywweDAwLDB4M2UsMHhjMSwweDBmLDB4YjIsMHg0MywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmViMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NTAsMHhmYywweDEwLDB4ZmYsMHg4MCwweDM3LDB4YzAgfSB9LAoteyAgMTYsIDB4ZmVjMCwgMCwgezB4MGMsMHhlMCwweDAzLDB4ZmMsMHgyMCwweGZmLDB4MDgsMHgzMywweGMwLDB4MGYsMHhmMCwweDgzLDB4YmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVkMCwgMCwgezB4MzMsMHhjMCwweDJlLDB4NDAsMHgwMywweDFjLDB4MDEsMHhjZiwweDAwLDB4MTEsMHhjMCwweDRjLDB4ZDAsMHgwMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4ZmVlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDA0LDB4YjMsMHgwMiwweDIyLDB4NzIgfSB9LAoteyAgMTYsIDB4ZmVmMCwgMCwgezB4MDgsMHhhMSwweDE2LDB4ZWMsMHgwMCwweGJiLDB4MDQsMHgyMiwweGMwLDB4MGIsMHhiMCwweDQyLDB4ZWMsMHgwMCwweGJhLDB4MTkgfSB9LAoteyAgMTYsIDB4ZmYwMCwgMCwgezB4YjYsMHhkMCwweDA4LDB4OWMsMHg0YSwweDI2LDB4ODAsMHhkYiwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMywweDYwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmYxMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YjksMHgxMCwweDYyLDB4MjAgfSB9LAoteyAgMTYsIDB4ZmYyMCwgMCwgezB4NDgsMHhhMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgxMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmYzMCwgMCwgezB4NjYsMHgwOCwweDBhLDB4YTgsMHgxMiwweDI2LDB4MTAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDI4LDB4YjAsMHgyNiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwYywweDAwLDB4YjksMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY1MCwgMCwgezB4MDgsMHgzMiwweDAyLDB4Y2MsMHgwNCwweGIzLDB4MDAsMHgyMCwweGMwLDB4NGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY2MCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAxLDB4MDAsMHg5MywweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwNiwweDQyLDB4MTEgfSB9LAoteyAgMTYsIDB4ZmY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWMsMHg2YywweDAwLDB4ZjksMHgwMCwweGIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmY4MCwgMCwgezB4MGMsMHg4MiwweDAyLDB4ZGMsMHgwMSwweGZmLDB4MDAsMHhiMiwweGMwLDB4MGIsMHhmMSwweDAzLDB4YmMsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY5MCwgMCwgezB4MjYsMHg0MCwweDJlLDB4ODAsMHgwMywweDIxLDB4MDQsMHhjZiwweDAwLDB4YmIsMHhjMCwweDBjLDB4OTAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZmZhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmZiMCwgMCwgezB4MGYsMHg4MSwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZjMCwgMCwgezB4MmQsMHg0MCwweDJmLDB4YzAsMHgwMywweGYwLDB4ODgsMHhmZiwweDAwLDB4MzcsMHhjMCwweDhmLDB4ZDAsMHgwMywweGU4LDB4MDIgfSB9LAoteyAgMTYsIDB4ZmZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDQwLDB4ZmYsMHg4MCwweDMzLDB4YzIgfSB9LAoteyAgMTYsIDB4ZmZlMCwgMCwgezB4MGMsMHhmOCwweDAzLDB4N2MsMHhhMCwweGZmLDB4OTAsMHgzZiwweGM0LDB4MmMsMHhiNCwweDAzLDB4YmMsMHg4MCwweGNmLDB4NDAgfSB9LAoteyAgMTYsIDB4ZmZmMCwgMCwgezB4MzcsMHhlMCwweDBmLDB4ZjEsMHg5MywweDZlLDB4NDQsMHhiZiwweDMwLDB4M2YsMHgyMCwweDJjLDB4ZjgsMHg2MywweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODAxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlYywweDAwLDB4ZWIsMHgyMCwweDIzLDB4ZjAgfSB9LAoteyAgMTYsIDB4ODAyMCwgMCwgezB4MDgsMHhiOCwweDUyLDB4M2QsMHgwMCwweGIzLDB4MDAsMHgyZSwweGRjLDB4MDgsMHhmNCwweDQyLDB4MWMsMHg0MiwweDhiLDB4NDAgfSB9LAoteyAgMTYsIDB4ODAzMCwgMCwgezB4MjIsMHhjOCwweDBiLDB4ZjYsMHgwMywweDZjLDB4ODgsMHhiYiwweDMwLDB4MmUsMHgwMCwweDA4LDB4YjIsMHgwMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODA0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YmIsMHgwOCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODA1MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NGMsMHhhMCwweGIzLDB4MjAsMHgyNiwweDgwLDB4ODgsMHgzNiwweDAyLDB4Y2MsMHhhMCwweDkzLDB4NjAgfSB9LAoteyAgMTYsIDB4ODA2MCwgMCwgezB4YTQsMHhjMiwweDBhLDB4MzIsMHg0MiwweDRjLDB4OTAsMHhiMywweDIwLDB4MmMsMHgwYiwweDg4LDB4MzAsMHg4MiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODA3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDA4LDB4YmIsMHgyMiwweGEyLDB4YzAgfSB9LAoteyAgMTYsIDB4ODA4MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweDkwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA5MCwgMCwgezB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDZjLDB4MDAsMHhiYiwweDAyLDB4MmUsMHgyMCwweDA4LDB4YjAsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YjEsMHg4MywweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4ODBiMCwgMCwgezB4MGMsMHgxYSwweDAzLDB4NmMsMHgxMCwweGZiLDB4MDAsMHgzNCwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwOCwweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBjMCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YjAsMHgwYiwweDZjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHgyOCwweDBjLDB4YjAsMHgwMiwweGQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiYywweDAwLDB4ZWQsMHg4MCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ODBlMCwgMCwgezB4MGYsMHhkNCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGM4LDB4MGYsMHhiMCwweDAzLDB4M2MsMHgwMCwweGVlLDB4NDAgfSB9LAoteyAgMTYsIDB4ODBmMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4NzAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODEwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgyMCwweGIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODExMCwgMCwgezB4MGYsMHhiNCwweDAzLDB4YWMsMHgwMiwweGNiLDB4MDAsMHgzMiwweDkwLDB4MGUsMHhiMCwweDAzLDB4NmMsMHgwMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEyMCwgMCwgezB4M2EsMHhjMCwweDBjLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg5MSwweDBmLDB4YjAsMHgwMywweDkwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4YmIsMHg4MCwweDIzLDB4ZDcgfSB9LAoteyAgMTYsIDB4ODE0MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4M2MsMHgxNCwweDhiLDB4MDAsMHg2YSwweDA4LDB4MjgsMHhmMCwweDAwLDB4YmMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE1MCwgMCwgezB4YmUsMHhjMCwweDg4LDB4ZjAsMHgxMywweDJjLDB4MDAsMHhlZiwweDAwLDB4MmUsMHg4MCwweDBiLDB4YjAsMHgwNywweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHg0MCwweDIwLDB4ZDAgfSB9LAoteyAgMTYsIDB4ODE3MCwgMCwgezB4MGIsMHgyOCwweDAyLDB4OGMsMHgwMCwweDgzLDB4MDEsMHgyMCwweGMwLDB4MWEsMHhiOCwweDAwLDB4NmMsMHgxMCwweGExLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE4MCwgMCwgezB4NjgsMHhjMCwweDJhLDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiMywweDAyLDB4MmUsMHgwMCwweDRiLDB4MzAsMHgwMiwweGY4LDB4MDQgfSB9LAoteyAgMTYsIDB4ODE5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDAwLDB4YjcsMHhhMCwweDIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODFhMCwgMCwgezB4MGIsMHhlYywweGMyLDB4MWUsMHgwNCwweDg3LDB4ODAsMHgyOSwweGU0LDB4MDgsMHg3OSwweDgyLDB4OWUsMHg0MCwweGFmLDB4OTAgfSB9LAoteyAgMTYsIDB4ODFiMCwgMCwgezB4MjksMHhlMCwweDBhLDB4MzgsMHgwMCwweDFlLDB4MDAsMHhhNywweDkwLDB4MmQsMHgyNCwweDBiLDB4NzgsMHgwMiwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODFjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDUwLDB4ZmIsMHgwOSwweDMwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODFkMCwgMCwgezB4MGYsMHgyMCwweDAyLDB4OGMsMHg0MCwweGMzLDB4MDAsMHgyMCwweGMwLDB4MGEsMHgzOCwweDAzLDB4NGMsMHg0NCwweGUxLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFlMCwgMCwgezB4YWEsMHhjMCwweDBlLDB4MzEsMHg0MywweDhlLDB4MDAsMHhmMywweDAwLDB4M2MsMHgwMCwweDBmLDB4MzAsMHgwMywweGQyLDB4MDIgfSB9LAoteyAgMTYsIDB4ODFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NGQsMHhiYywweDAwLDB4ZmYsMHgyMCwweDNmLDB4ZDAgfSB9LAoteyAgMTYsIDB4ODIwMCwgMCwgezB4NGYsMHg3MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhmMywweDQzLDB4ZmMsMHg0MCwweGQ3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODIxMCwgMCwgezB4YmYsMHhjMCwweDBkLDB4ZjQsMHhjMywweGZjLDB4NDAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ODIyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDMyLDB4ZDAgfSB9LAoteyAgMTYsIDB4ODIzMCwgMCwgezB4MGQsMHg5MCwweDAxLDB4ZWQsMHhjMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MWYsMHhiYSwweDAzLDB4YWMsMHhjMCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODI0MCwgMCwgezB4MzIsMHhlMCwweDhkLDB4YjQsMHg0MywweGVjLDB4MDAsMHhmYiwweDAwLDB4MzYsMHhhMCwweDBjLDB4YjAsMHgwMywweDZhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzggfSB9LAoteyAgMTYsIDB4ODI2MCwgMCwgezB4MDgsMHg2MCwweDAyLDB4ZGMsMHgyMCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGYsMHg3NCwweGEyLDB4MWMsMHgyOCwweGQ2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODI3MCwgMCwgezB4MzUsMHhjMCwweDA4LDB4NzIsMHgwMiwweDVjLDB4MDgsMHhiNywweDQ0LDB4YTEsMHg4MCwweDQ4LDB4NzAsMHgwMiwweDEyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHg4MCwweDIwLDB4ZTQgfSB9LAoteyAgMTYsIDB4ODI5MCwgMCwgezB4MDksMHg3OCwweDI2LDB4ZGUsMHgwMCwweGI3LDB4ODAsMHgyZCwweGUyLDB4MGEsMHg3MCwweDEyLDB4OGMsMHg4OCwweDgxLDB4ODAgfSB9LAoteyAgMTYsIDB4ODJhMCwgMCwgezB4MjEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiMywweGEwLDB4MjUsMHhhMCwweDI4LDB4NzgsMHgwMiwweDcwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODJiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAxLDB4YmIsMHg4MCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4ODJjMCwgMCwgezB4MDgsMHgzMCwweDQyLDB4ZWMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzMCwweDIyLDB4MGMsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJkMCwgMCwgezB4MjQsMHhjMSwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlMCwweDA4LDB4YjAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4ODJlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwOCwweGIyLDB4ODAgfSB9LAoteyAgMTYsIDB4ODJmMCwgMCwgezB4MGQsMHhlMiwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZiwweDgwLDB4MGEsMHhhMCwweDAzLDB4YTgsMHgwMCwweGNlLDB4NTAgfSB9LAoteyAgMTYsIDB4ODMwMCwgMCwgezB4MzIsMHg4MCwweDA1LDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4MzcsMHhhOCwweDBjLDB4YTAsMHgwMywweDdhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODMxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHg2MCwweDA4LDB4ZjgsMHgwMCwweDNjLDB4MDAgfSB9LAoteyAgMTYsIDB4ODMyMCwgMCwgezB4MGYsMHg4OCwweDAxLDB4ZTAsMHgwMCwweGY4LDB4MDQsMHgzYywweDAwLDB4NGYsMHgwMCwweDEzLDB4YzAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODMzMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDYwLDB4MDAsMHhmOCwweDAyLDB4M2UsMHgwMSwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHg5MCwweDEyLDB4NDAgfSB9LAoteyAgMTYsIDB4ODM1MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDcwLDB4MGUsMHg5NCwweDMzLDB4MjQsMHgwOCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODM2MCwgMCwgezB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4ODM3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHg0MiwweDIyLDB4NjAgfSB9LAoteyAgMTYsIDB4ODM4MCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDMsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMSwweDgxLDB4MDQgfSB9LAoteyAgMTYsIDB4ODM5MCwgMCwgezB4M2UsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAyLDB4MjIsMHg0MCwweDBlLDB4OTAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHg0MCwweDJhLDB4NGEgfSB9LAoteyAgMTYsIDB4ODNiMCwgMCwgezB4MDgsMHg5MSwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDBhLDB4MjQsMHgwNCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODNjMCwgMCwgezB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiMSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODNkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4YjEsMHgwMSwweGE4LDB4NDggfSB9LAoteyAgMTYsIDB4ODNlMCwgMCwgezB4ODgsMHg5MCwweDAyLDB4MDQsMHg4MCwweDgxLDB4NDAsMHgyYywweDUwLDB4MTgsMHgxNCwweDBhLDB4ODQsMHgxMCwweDg5LDB4NDAgfSB9LAoteyAgMTYsIDB4ODNmMCwgMCwgezB4MmMsMHg0MCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHgzMSwweDIwLDB4MjAsMHg0MCwweDBhLDB4MTAsMHgwYSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjAsMHg1MCwweDNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQxMCwgMCwgezB4MmMsMHhhMCwweDAyLDB4YTEsMHg0MiwweGM4LDB4MDAsMHgzZSwweDAwLDB4ZGUsMHgwMCwweDIzLDB4MjEsMHg0MiwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODQyMCwgMCwgezB4MzgsMHgxNCwweDBmLDB4ODUsMHgwMywweGUxLDB4NDAsMHhmOCwweDUwLDB4MzgsMHgxNCwweDBmLDB4MDUsMHgwMywweDJlLDB4MDEgfSB9LAoteyAgMTYsIDB4ODQzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhlNCwweDA4LDB4ZmQsMHgwMCwweDM2LDB4NDQgfSB9LAoteyAgMTYsIDB4ODQ0MCwgMCwgezB4MGYsMHhkMCwweDAzLDB4NjQsMHg0MCwweGY5LDB4MDAsMHgzZCwweDUwLDB4MGYsMHg5NCwweDAzLDB4ZTUsMHgwMCwweDdkLDB4NDAgfSB9LAoteyAgMTYsIDB4ODQ1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBlLDB4OTAsMHgwMywweGU2LDB4MDQgfSB9LAoteyAgMTYsIDB4ODQ2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNCwweDAwLDB4ZmQsMHg0MCwweDMzLDB4NjggfSB9LAoteyAgMTYsIDB4ODQ3MCwgMCwgezB4MGMsMHhkMCwweDAzLDB4ZTcsMHg4MSwweGY5LDB4MDAsMHgzMywweDc4LDB4MGQsMHhkOCwweDEzLDB4MjYsMHhhMCwweGNkLDB4YTAgfSB9LAoteyAgMTYsIDB4ODQ4MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OWIsMHgwMywweDI0LDB4MDAsMHhmOSwweGEwLDB4M2MsMHg0NCwweDJjLDB4OTAsMHgwNywweDg2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMCwweDAwLDB4YjgsMHhhMCwweGEyLDB4MTAgfSB9LAoteyAgMTYsIDB4ODRhMCwgMCwgezB4MTgsMHg4MCwweDAzLDB4ODIsMHg4NCwweGI4LDB4ODAsMHgzNiwweDJjLDB4MmUsMHgwZiwweDAyLDB4YTMsMHhhMCwweGQ4LDB4ZTAgfSB9LAoteyAgMTYsIDB4ODRiMCwgMCwgezB4MzYsMHgyMiwweDhiLDB4MDgsMHgwMywweDQyLDB4YTAsMHhmOCwweGUwLDB4MmUsMHgyOCwweDA4LDB4ODgsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4ODRjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweGEwLDB4NTAgfSB9LAoteyAgMTYsIDB4ODRkMCwgMCwgezB4MjgsMHgzMCwweDAyLDB4YzUsMHg4MCwweGIxLDB4MDgsMHgyMCwweDQwLDB4MDksMHgxMCwweGEyLDB4NDQsMHgwOCwweDgxLDB4NDggfSB9LAoteyAgMTYsIDB4ODRlMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4MTQsMHgwMiwweDA0LDB4ODAsMHhiMSwweDM4LDB4MmMsMHg0OCwweDA4LDB4MTIsMHg4MiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODRmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNCwweDAwLDB4YjEsMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ODUwMCwgMCwgezB4MDgsMHg5MiwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDIsMHgyNiwweDU4LDB4NGEsMHg5MCwweDAyLDB4ZTQsMHgwOCwweDk5LDB4NDAgfSB9LAoteyAgMTYsIDB4ODUxMCwgMCwgezB4MjYsMHg0MCwweDBiLDB4OTAsMHgwMiwweDY0LDB4MDgsMHhiOSwweDAxLDB4MmMsMHg0OCwweDA4LDB4OTAsMHgxMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4ODUyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ODUzMCwgMCwgezB4MDgsMHg5OCwweDgzLDB4ZTQsMHgwNCwweGI5LDB4MDEsMHgzMCwweDQwLDB4MGQsMHg5MCwweDBiLDB4NjQsMHgwMiwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODU0MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwLDB4MWUsMHg1OCwweDBjLDB4OTAsMHgwMywweGE4LDB4MDQgfSB9LAoteyAgMTYsIDB4ODU1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgyMCwweDNjLDB4NDAgfSB9LAoteyAgMTYsIDB4ODU2MCwgMCwgezB4MGYsMHg5OCwweDAzLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQyLDB4OGUsMHgxMCwweDRiLDB4ODQsMHgwNCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ODU3MCwgMCwgezB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMCwweDMyLDB4MDggfSB9LAoteyAgMTYsIDB4ODU5MCwgMCwgezB4MGYsMHg4NCwweDgzLDB4YTAsMHgwNCwweGM4LDB4MDQsMHgzZSwweDAwLDB4ODMsMHg4MCwweDAxLDB4MjAsMHgwMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVhMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4MDAsMHgwMywweGEwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgxMCwweDRlLDB4ODAsMHgxMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODViMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4OGUsMHg5MCwweGEzLDB4ODAgfSB9LAoteyAgMTYsIDB4ODVjMCwgMCwgezB4MGIsMHhlNCwweDAyLDB4MjgsMHgwMCwweGNhLDB4MDAsMHgyZiwweDgwLDB4NGEsMHhhMCwweDEzLDB4YTgsMHgwMCwweGFhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVkMCwgMCwgezB4MzYsMHg4MSwweDBiLDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMywweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHhjMCwweDIwLDB4ZDAgfSB9LAoteyAgMTYsIDB4ODVmMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4OGMsMHgwMCwweDhiLDB4MDAsMHgyYywweGYwLDB4OGIsMHgxOCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYwMCwgMCwgezB4NjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDhjLDB4MDIsMHg4MywweDAwLDB4MjgsMHhjMSwweDBhLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxZSwweDAwLDB4YjQsMHgwYiwweDY5LDB4YzAgfSB9LAoteyAgMTYsIDB4ODYyMCwgMCwgezB4MDksMHg1OCwweDA2LDB4MWUsMHg4MCwweDk3LDB4MTAsMHgyZiwweGMyLDB4NDgsMHg3MCwweDgyLDB4OWMsMHg4MCwweGE3LDB4MDggfSB9LAoteyAgMTYsIDB4ODYzMCwgMCwgezB4MjUsMHhjYywweDBiLDB4NzAsMHgwMiwweDFlLDB4ODEsMHg4NywweGEyLDB4YWIsMHhjNCwweDA4LDB4NzMsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ODY0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDEwLDB4ZGMsMHg4NCwweDIxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODY1MCwgMCwgezB4MGYsMHg3OCwweDQyLDB4OWYsMHgwMiwweGM3LDB4ODgsMHgzZCwweGUwLDB4MmYsMHg3MSwweDAzLDB4NGUsMHgwMCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4ODY2MCwgMCwgezB4MjEsMHhlMiwweDBmLDB4NzgsMHg4MywweDllLDB4NDksMHhjZiwweGQwLDB4MzksMHhlOCwweDBlLDB4NzgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4NGQsMHhhYywweDQwLDB4Y2EsMHgwMCwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4ODY4MCwgMCwgezB4OGYsMHgzMCwweDIzLDB4ZWMsMHhhOCwweGViLDB4NDAsMHgzYywweGMwLDB4MGYsMHg5NiwweDQzLDB4ZWQsMHg4MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY5MCwgMCwgezB4M2UsMHhkOCwweDhmLDB4YjEsMHg0MywweGVkLDB4ODAsMHhmYiwweDIwLDB4MzYsMHhjYSwweDBmLDB4YjAsMHhhMywweDgyLDB4MDYgfSB9LAoteyAgMTYsIDB4ODZhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDgwLDB4ZmMsMHg4MCwweDMxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ODZiMCwgMCwgezB4MDUsMHhhYSwweDEwLDB4ZmUsMHg0NCwweGZmLDB4OTAsMHgzZiwweGUxLDB4Y2YsMHhmOSwweDE3LDB4M2YsMHgyMCwweGQ3LDB4ODAgfSB9LAoteyAgMTYsIDB4ODZjMCwgMCwgezB4OGIsMHhlNCwweDBmLDB4ZjgsMHgwMywweDNlLDB4MzAsMHhmZiwweDgwLDB4MzcsMHhlMCwweDBmLDB4ZjgsMHgwMCwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4YmQsMHgxMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ODZlMCwgMCwgezB4MDgsMHg0YSwweDAyLDB4ZGMsMHhjMCwweGI3LDB4MDAsMHgyZCwweGMyLDB4MGMsMHhkMywweDAyLDB4MWMsMHg4MCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODZmMCwgMCwgezB4MjksMHhjMCwweDRiLDB4NzIsMHgwMiwweDFjLDB4MDAsMHhiNywweDAxLDB4MjEsMHhjMCwweDBiLDB4ZjAsMHgxMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODcwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDkwLDB4MzQsMHgwMCwweDIxLDB4ODAgfSB9LAoteyAgMTYsIDB4ODcxMCwgMCwgezB4MDksMHg3MCwweDAwLDB4NWMsMHgwYywweGI3LDB4MDAsMHgyZCwweGM0LDB4MDgsMHg1MCwweDFhLDB4MGMsMHgwMCwweDk3LDB4MDAgfSB9LAoteyAgMTYsIDB4ODcyMCwgMCwgezB4MjEsMHhjMCwweDRiLDB4MzAsMHgwMiwweDFjLDB4MDAsMHhiNywweDAwLDB4MjUsMHhjMCwweDBiLDB4NzAsMHgwMiwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODczMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDAwLDB4YjAsMHgwMCwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc0MCwgMCwgezB4MDgsMHgzZSwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDIsMHgwYywweGUwLDB4MmIsMHhiMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc1MCwgMCwgezB4MjgsMHhjMCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MTAsMHhiMywweDAwLDB4MjAsMHhkNiwweDAzLDB4MzAsMHgwMiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4ODc2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmIsMHgwMCwweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc3MCwgMCwgezB4MDUsMHhiZSwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAsMHgzZSwweDIwLDB4MGMsMHhiMCwweDAzLDB4M2MsMHgwMCwweGQ5LDB4ODAgfSB9LAoteyAgMTYsIDB4ODc4MCwgMCwgezB4MzMsMHhjMCwweDhiLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4MzcsMHhlMCwweDBmLDB4ZjAsMHgwMywweDZhLDB4MDQgfSB9LAoteyAgMTYsIDB4ODc5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdhMCwgMCwgezB4MGYsMHhhNCwweDIzLDB4Y2MsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgxLDB4MDgsMHg5MCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4MTQgfSB9LAoteyAgMTYsIDB4ODdiMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDM3LDB4ODAgfSB9LAoteyAgMTYsIDB4ODdkMCwgMCwgezB4MGYsMHhmYSwweDAzLDB4ZmMsMHgwMCwweGNmLDB4MDAsMHgzZiwweDkwLDB4MDYsMHhkYywweDIzLDB4M2MsMHgwMCwweGZkLDB4MTAgfSB9LAoteyAgMTYsIDB4ODdlMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHg0MywweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4ODdmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg2YywweDA5LDB4YmIsMHgxOSwweDIyLDB4MzIgfSB9LAoteyAgMTYsIDB4ODgwMCwgMCwgezB4MGIsMHhiZSwweDAzLDB4NmMsMHgwMCwweDhiLDB4MDAsMHgyYywweDkwLDB4MGQsMHhiOCwweDAyLDB4YWMsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgxMCwgMCwgezB4ZjIsMHhjMCwweDBiLDB4YjAsMHgxMiwweGFjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMywweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4ODgyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDEwLDB4YjMsMHgwMCwweDI2LDB4MjAgfSB9LAoteyAgMTYsIDB4ODgzMCwgMCwgezB4MGIsMHg5MCwweDEyLDB4ZWMsMHgwMSwweDhiLDB4MDAsMHgyYSwweGMyLDB4MGEsMHg5MCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg0MCwgMCwgezB4YTIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAxLDB4YjMsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg2MCwgMCwgezB4MGIsMHgwMCwweDAyLDB4OGMsMHgwMCwweDgzLDB4MDAsMHgyZSwweGMwLDB4MGIsMHgzNCwweDAyLDB4OGMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg3MCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBkLDB4MDAsMHhhMywweDAwLDB4YTAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDgyLDB4MDEgfSB9LAoteyAgMTYsIDB4ODg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YmIsMHgwNCwweDM2LDB4ODAgfSB9LAoteyAgMTYsIDB4ODg5MCwgMCwgezB4MGYsMHhiMiwweDAyLDB4ZmMsMHgwMiwweGNmLDB4MDIsMHgzOCwweGMwLDB4MGUsMHhmMCwweDAzLDB4M2MsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhhMCwgMCwgezB4MjMsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNkLDB4MDIsMHhlZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHg0MywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4ODhiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhjMCwgMCwgezB4MGYsMHhmNCwweDIzLDB4N2MsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGQsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhkMCwgMCwgezB4M2IsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4ODgsMHhkZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGE4LDB4MDYgfSB9LAoteyAgMTYsIDB4ODhlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweDUwLDB4Y2UsMHgxMiwweDMzLDB4ZDAgfSB9LAoteyAgMTYsIDB4ODhmMCwgMCwgezB4NGMsMHg4NiwweDgzLDB4MzAsMHg4MCwweDVmLDB4NjgsMHgzMywweGM0LDB4MGYsMHhmMywweDgzLDB4M2MsMHhjMCwweGNjLDB4MzggfSB9LAoteyAgMTYsIDB4ODkwMCwgMCwgezB4YjMsMHgwOCwweDBjLDB4YzYsMHgwMywweGYxLDB4YTAsMHhmZiwweDAwLDB4MzMsMHgyNCwweDBjLDB4YzIsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODkxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlYywweDgwLDB4ZDIsMHgyMCwweDIzLDB4ZDggfSB9LAoteyAgMTYsIDB4ODkyMCwgMCwgezB4MGQsMHg5NiwweDAyLDB4ODgsMHg2MCwweGFmLDB4NDAsMHgyMywweGRjLDB4MGIsMHhmNiwweDAyLDB4M2MsMHhjMiwweDg4LDB4NjAgfSB9LAoteyAgMTYsIDB4ODkzMCwgMCwgezB4MjIsMHg1MiwweDA4LDB4OTEsMHgyMiwweGUxLDB4MDAsMHhiNywweDI0LDB4YTIsMHg0OCwweDhhLDB4ODQsMHg4MiwweDYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODk0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHgwMCwweGUwLDB4YzQgfSB9LAoteyAgMTYsIDB4ODk1MCwgMCwgezB4MGEsMHgwMCwweDAyLDB4MDQsMHg4MCwweGEzLDB4MjAsMHhhOCwweGMwLDB4MWIsMHgzMCwweDBhLDB4MGMsMHgwMCwweGEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk2MCwgMCwgezB4MjgsMHgwYywweDA5LDB4MDIsMHgwMiwweGM0LDB4ODAsMHhiMywweDFjLDB4MjIsMHgwOCwweDE5LDB4MDMsMHgwMiwweGUyLDB4MTEgfSB9LAoteyAgMTYsIDB4ODk3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhNCwweDAwLDB4OTksMHg4MCwweDYyLDB4YzAgfSB9LAoteyAgMTYsIDB4ODk4MCwgMCwgezB4MGIsMHhhMCwweDMyLDB4YTQsMHg1MSwweGFiLDB4MDAsMHgyYSwweGMwLDB4OGIsMHhiMCwweDAwLDB4MGMsMHgwMCwweGE5LDB4YzAgfSB9LAoteyAgMTYsIDB4ODk5MCwgMCwgezB4MmEsMHgyMSwweDA4LDB4YjgsMHgyMiwweGUyLDB4MDAsMHhiYiwweDAwLDB4MjIsMHg4NCwweDFiLDB4YTgsMHg0MiwweDcwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODlhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMiwweDAwLDB4Y2IsMHhjOSwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4ODliMCwgMCwgezB4MGUsMHg4YiwweDEzLDB4MjIsMHgxMCwweGRiLDB4MDEsMHgzMiwweGMwLDB4MGYsMHhiMCwweDBiLDB4MmMsMHgwMCwweDY4LDB4ODEgfSB9LAoteyAgMTYsIDB4ODljMCwgMCwgezB4M2EsMHgyMiwweDJjLDB4ODgsMHgyMywweGUzLDB4MDAsMHhmYiwweDAwLDB4MzAsMHgzMCwweDhkLDB4OWMsMHg4MywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4ODlkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiYSwweDQwLDB4ZjcsMHgwNCwweDNlLDB4YzIgfSB9LAoteyAgMTYsIDB4ODllMCwgMCwgezB4MGQsMHhkOCwweDIzLDB4ZDgsMHgwMCwweDdiLDB4MDAsMHgzNywweGMwLDB4MGYsMHg3MCwweDMzLDB4ZmMsMHgxMCwweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ODlmMCwgMCwgezB4MzUsMHhjMCwweDhmLDB4YzAsMHgwMywweGY0LDB4MDAsMHhmNywweDAyLDB4M2YsMHhlMCwweDBlLDB4ODAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGEwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4MSwweDIwLDB4YzgsMHgwOCwweDMwLDB4YzAgfSB9LAoteyAgMTYsIDB4OGExMCwgMCwgezB4MGMsMHgwMCwweDgzLDB4MjQsMHg0MCwweGMzLDB4ODksMHgzYSwweGMwLDB4MGUsMHhiMCwweDBiLDB4MmMsMHgwOCwweGM5LDB4NDggfSB9LAoteyAgMTYsIDB4OGEyMCwgMCwgezB4NzIsMHg1NCwweDBmLDB4OTEsMHgwMywweGVkLDB4MDIsMHhlYiwweDhhLDB4M2EsMHg2MiwweDhjLDB4ODAsMHgwYiwweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4OGEzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYiwweDA0LDB4ODgsMHg0MCwweGEzLDB4YzIgfSB9LAoteyAgMTYsIDB4OGE0MCwgMCwgezB4MDIsMHhhZSwweDEyLDB4MjcsMHg0MiwweDhmLDB4NDQsMHgyMywweGMyLDB4MGIsMHhmNCwweDAyLDB4M2QsMHgwMCwweDBhLDB4NDAgfSB9LAoteyAgMTYsIDB4OGE1MCwgMCwgezB4MjIsMHhlMCwweDBiLDB4YjUsMHgwMiwweGVjLDB4MjAsMHg4ZiwweDQ0LDB4YTIsMHg0MCwweDhkLDB4YmQsMHgyMywweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OSwweDQwLDB4ODMsMHg4MSwweDI0LDB4YzEgfSB9LAoteyAgMTYsIDB4OGE3MCwgMCwgezB4MDgsMHgyOCwweDAyLDB4MDEsMHgwMCwweDkzLDB4MDAsMHhhMCwweGU4LDB4MGEsMHgzMCwweDgyLDB4OGYsMHg2MCwweGIzLDB4OTAgfSB9LAoteyAgMTYsIDB4OGE4MCwgMCwgezB4NjAsMHhiOCwweDBiLDB4MjgsMHgxMiwweDRhLDB4MDAsMHg5MywweDAwLDB4MjAsMHg5MCwweDA5LDB4MjAsMHgwMiwweDc4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGE5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDAyLDB4ODcsMHhhOCwweDI1LDB4ZTAgfSB9LAoteyAgMTYsIDB4OGFhMCwgMCwgezB4MGEsMHg3YiwweDAyLDB4MWEsMHgwNCwweDg3LDB4ODAsMHgyMSwweGU0LDB4MGIsMHg3OCwweDgyLDB4OGUsMHgwMiwweDk2LDB4OTEgfSB9LAoteyAgMTYsIDB4OGFiMCwgMCwgezB4MjEsMHgyMSwweDBiLDB4NjksMHg0MCwweGRiLDB4NDAsMHg5NywweDkyLDB4MjMsMHhhMCwweDg5LDB4NTgsMHg4MiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGFjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyNSwweDgyLDB4YzMsMHgwMCwweDM0LDB4YzAgfSB9LAoteyAgMTYsIDB4OGFkMCwgMCwgezB4MGMsMHg5YiwweDQzLDB4MDgsMHhkMCwweGQzLDB4MjAsMHgzOCwweGMwLDB4MGUsMHhiMCwweDAzLDB4OGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFlMCwgMCwgezB4MjAsMHg4MCwweDA3LDB4MTAsMHgwMywweGUwLDB4MDAsMHhkMywweDEwLDB4MzgsMHgxOCwweDBkLDB4MzAsMHgwMywweDUyLDB4MDIgfSB9LAoteyAgMTYsIDB4OGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiNCwweDAwLDB4N2YsMHgyMCwweDFiLDB4ZDAgfSB9LAoteyAgMTYsIDB4OGIwMCwgMCwgezB4MGYsMHhmMSwweDAzLDB4ZjgsMHg0MCwweGVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhiNCwweDAzLDB4N2MsMHgyMCwweGNmLDB4MDQgfSB9LAoteyAgMTYsIDB4OGIxMCwgMCwgezB4YmYsMHg0MCwweDBmLDB4ZjAsMHgwMywweGU0LDB4MTAsMHhlZiwweDE4LDB4M2QsMHhjMCwweDBmLDB4ZTAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4OGIyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlOCwweDAwLDB4ZTMsMHgwMCwweGIyLDB4YzQgfSB9LAoteyAgMTYsIDB4OGIzMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4MjQsMHgwMCwweGRiLDB4NjgsMHgzMiwweGM4LDB4MGMsMHhiNCwweDAzLDB4ZWMsMHg4MCwweGM4LDB4ODAgfSB9LAoteyAgMTYsIDB4OGI0MCwgMCwgezB4YjYsMHhlMCwweDBjLDB4YTAsMHgwMywweDJlLDB4MDAsMHhjYiwweGUwLDB4YjIsMHg2MCwweDBjLDB4YjgsMHgwYiwweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAyLDB4ODcsMHgwMCwweGExLDB4YzggfSB9LAoteyAgMTYsIDB4OGI2MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4MWMsMHgwOCwweDk3LDB4MDIsMHgyMSwweGQ0LDB4MDgsMHg3NCwweDAyLDB4ZGMsMHhjMCwweDA3LDB4MDAgfSB9LAoteyAgMTYsIDB4OGI3MCwgMCwgezB4MjEsMHhjMCwweDg4LDB4NzAsMHgwMiwweDE4LDB4MDAsMHg4MywweDA4LDB4MjEsMHhjMCwweDA4LDB4NTAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4OGI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDIwLDB4YWQsMHg4MCwweDI5LDB4ZTAgfSB9LAoteyAgMTYsIDB4OGI5MCwgMCwgezB4MDgsMHg1OCwweDAyLDB4MWUsMHgwMCwweDk3LDB4YjAsMHgyMSwweGU4LDB4MDgsMHg3OCwweDAyLDB4ZGUsMHgxMCwweDE1LDB4ODAgfSB9LAoteyAgMTYsIDB4OGJhMCwgMCwgezB4MjEsMHhhMSwweDA4LDB4NDgsMHgwMiwweDVlLDB4MDAsMHg4NywweGE0LDB4NjUsMHhhMCwweDA4LDB4NzgsMHgwMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjZiwweDEwLDB4ODEsMHg3MCwweGE4LDB4YzAgfSB9LAoteyAgMTYsIDB4OGJjMCwgMCwgezB4MzgsMHgzMCwweDBhLDB4MGQsMHgwMCwweDkzLDB4MDAsMHhhMCwweGMxLDB4MjgsMHgzMCwweDAyLDB4Y2MsMHgwMiwweDgzLDB4ODggfSB9LAoteyAgMTYsIDB4OGJkMCwgMCwgezB4MjAsMHhlMCwweDM4LDB4MzQsMHgwYSwweDRkLDB4NzIsMHg4MywweDAwLDB4MjQsMHhlOCwweDI4LDB4MzQsMHg4MiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4OGJlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDQwLDB4ZWUsMHhjMCwweGJhLDB4ODAgfSB9LAoteyAgMTYsIDB4OGJmMCwgMCwgezB4MGMsMHhlMCwweDAzLDB4MzksMHgxMCwweGRhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRlLDB4YzggfSB9LAoteyAgMTYsIDB4OGMwMCwgMCwgezB4MzMsMHhhMCwweDBjLDB4ZTAsMHgwMywweDdiLDB4MDAsMHhjYSwweDAwLDB4MzcsMHhiMSwweDBjLDB4ZTQsMHgyMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4OGMxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhjMSwweDAwLDB4ZjgsMHgwMCwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGMyMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YzAsMHgyMCwweDM4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDIgfSB9LAoteyAgMTYsIDB4OGMzMCwgMCwgezB4M2EsMHgyNCwweDBmLDB4ODAsMHg4MywweGEwLDB4MDEsMHhmOCwweDA0LDB4M2EsMHgwNCwweDBkLDB4ODAsMHgxMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDQ0LDB4YzEsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4OGM1MCwgMCwgezB4MGMsMHg5MCwweDMyLDB4MjQsMHgwYywweGMxLDB4MDYsMHgzOCwweDQwLDB4MGQsMHg5MCwweDA5LDB4MDQsMHgwMCwweGQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGM2MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MTgsMHgwMywweDI0LDB4MDAsMHhmOSwweDAxLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4OGM3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDA2LDB4ODksMHgwMCwweDJhLDB4NTAgfSB9LAoteyAgMTYsIDB4OGM4MCwgMCwgezB4MDgsMHg5NCwweDBhLDB4MjQsMHgwMCwweDg5LDB4NDIsMHgyMiwweDUwLDB4MGEsMHg5MCwweDEyLDB4MjUsMHgwMCwweDg5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGM5MCwgMCwgezB4MmUsMHg1MCwweDBiLDB4OWMsMHgwYSwweDI1LDB4MTAsMHhiOSwweDAwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDIwLDB4ODksMHgwMCwweDIwLDB4NDIgfSB9LAoteyAgMTYsIDB4OGNiMCwgMCwgezB4MDgsMHgxMCwweGMyLDB4YWMsMHgxMCwweDg5LDB4MDgsMHgyYSwweDQyLDB4MDksMHg5MCwweDAyLDB4MjQsMHgyMCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGNjMCwgMCwgezB4MmUsMHg0MiwweDBhLDB4YjEsMHg4MiwweDJjLDB4MjAsMHhiOSwweDAwLDB4NmUsMHg0MiwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGNkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4ODMsMHgwMCwweDI4LDB4NDggfSB9LAoteyAgMTYsIDB4OGNlMCwgMCwgezB4MDgsMHgxMiwweDYyLDB4OGMsMHg4MCwweDgxLDB4MDAsMHgyMCwweDQwLDB4MDIsMHgxMCwweDAyLDB4ODQsMHg4MCwweDgxLDB4MjAgfSB9LAoteyAgMTYsIDB4OGNmMCwgMCwgezB4MmMsMHg0OSwweDBiLDB4MTIsMHgwNiwweDA0LDB4ODQsMHhiMywweDAyLDB4NmMsMHg0MCwweDBiLDB4MTIsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OGQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweGUwLDB4YzgsMHg3OCwweDMwLDB4MTQgfSB9LAoteyAgMTYsIDB4OGQxMCwgMCwgezB4NGMsMHgwNSwweDEzLDB4YTEsMHg0MiwweGMwLDB4NzgsMHgzOCwweDFlLDB4MGQsMHg4NywweDgzLDB4MDEsMHg0MCwweGQwLDB4NTAgfSB9LAoteyAgMTYsIDB4OGQyMCwgMCwgezB4M2MsMHgxNCwweDBlLDB4MDUsMHgwMywweDAxLDB4NDAsMHhmOCwweDc4LDB4M2MsMHgxNCwweDBmLDB4MDUsMHgwMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4OGQzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDBlLDB4NDQgfSB9LAoteyAgMTYsIDB4OGQ0MCwgMCwgezB4MmYsMHhmMSwweDAzLDB4NzQsMHg0MCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHg0MCwweGZkLDB4MTAgfSB9LAoteyAgMTYsIDB4OGQ1MCwgMCwgezB4M2YsMHg0NCwweDBmLDB4ZDEsMHgwMSwweGY0LDB4NDAsMHhmOSwweDAxLDB4M2YsMHhjMCwweDBmLDB4ZDEsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4OGQ2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDIyLDB4ZTksMHg4OCwweGIyLDB4NDAgfSB9LAoteyAgMTYsIDB4OGQ3MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjQsMHgxNiwweGM5LDB4OGMsMHgzNiwweDdiLDB4OGYsMHg5YywweDgzLDB4YTcsMHg5MCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ4MCwgMCwgezB4M2UsMHg1MCwweDA0LDB4OTQsMHgxMywweDI0LDB4NTAsMHhjOSwweGUwLDB4M2UsMHg1MCwweDBmLDB4OTAsMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMiwweDgwLDB4ODgsMHhhMCwweDIyLDB4MjggfSB9LAoteyAgMTYsIDB4OGRhMCwgMCwgezB4MGIsMHg4YSwweDAyLDB4MmEsMHg4MCwweDg4LDB4YTQsMHgyMiwweDMwLDB4MDgsMHg4ZSwweDBhLDB4MjIsMHgwMiwweDg4LDB4YTAgfSB9LAoteyAgMTYsIDB4OGRiMCwgMCwgezB4MmUsMHgyOCwweDg4LDB4YWEsMHgxMiwweDIyLDB4OTAsMHg4OCwweGY0LDB4MmUsMHgyMCwweDBiLDB4YzgsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4OGRjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhkNCwweDIwLDB4YTUsMHgwOCwweDIxLDB4NDIgfSB9LAoteyAgMTYsIDB4OGRkMCwgMCwgezB4MGIsMHg1MCwweDgyLDB4MTQsMHgzMSwweDg1LDB4MDgsMHgyNSwweDQwLDB4MGEsMHg1MCwweDIyLDB4OTQsMHg0MCwweDg1LDB4MDggfSB9LAoteyAgMTYsIDB4OGRlMCwgMCwgezB4NmQsMHg0MCwweDA4LDB4NTAsMHgwMiwweDU0LDB4MDIsMHg5NSwweDAwLDB4MmQsMHg0OCwweDBiLDB4NTAsMHg4MiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4OGRmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHg4NCwweDAwLDB4OGQsMHgxMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4OGUwMCwgMCwgezB4MGIsMHhkMCwweDAwLDB4MzQsMHgwMSwweDhkLDB4MDAsMHgyMywweDQxLDB4NTgsMHhkMCwweDAyLDB4MzQsMHgwMCwweDhkLDB4MDggfSB9LAoteyAgMTYsIDB4OGUxMCwgMCwgezB4MmYsMHg1MCwweDA4LDB4ZDIsMHgwMiwweDc0LDB4ODAsMHg5ZCwweDAwLDB4MmYsMHg0OCwweDBiLDB4ZGMsMHgwMiwweDQ2LDB4MDQgfSB9LAoteyAgMTYsIDB4OGUyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDQwLDB4ZTksMHhjMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4OGUzMCwgMCwgezB4MGYsMHg5MCwweDA5LDB4MjYsMHgwMCwweGM5LDB4MDQsMHgzNiwweDQwLDB4MWYsMHg5MCwweDIzLDB4YTQsMHgwOCwweGM5LDB4NDAgfSB9LAoteyAgMTYsIDB4OGU0MCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTQsMHgwYiwweDY0LDB4MjAsMHhkOSwweDAyLDB4M2UsMHg0MSwweDBmLDB4OTQsMHgwMywweDY4LDB4MDQgfSB9LAoteyAgMTYsIDB4OGU1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHg4MCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4OGU2MCwgMCwgezB4MGYsMHgxNCwweDAzLDB4YzUsMHgwOCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MWYsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OGU3MCwgMCwgezB4M2MsMHg0MCwweGFmLDB4OTgsMHgwMywweDg2LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTAsMHgwYiwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhiMCwweDAwLDB4ZGMsMHg0MCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU5MCwgMCwgezB4MGYsMHhjMCwweDAzLDB4MzEsMHgwMiwweGM0LDB4MDQsMHhiMSwweDAwLDB4M2MsMHg0MCwweDAzLDB4MTAsMHgwMCwweGZjLDB4NDAgfSB9LAoteyAgMTYsIDB4OGVhMCwgMCwgezB4MzMsMHgwMCwweDBjLDB4YzQsMHgwMywweGIxLDB4MDAsMHhjYywweDAwLDB4YjMsMHgwMCwweDBjLDB4YzQsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4OGViMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4OGEsMHg4MCwweDIyLDB4YTAgfSB9LAoteyAgMTYsIDB4OGVjMCwgMCwgezB4MGIsMHhhMCwweDAyLDB4MmEsMHgwMCwweDhhLDB4ODQsMHgyMiwweGExLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwOCwweGJhLDB4MDEgfSB9LAoteyAgMTYsIDB4OGVkMCwgMCwgezB4MjIsMHg4MCwweDA4LDB4YTAsMHgyYiwweDI4LDB4MDAsMHg4YSwweDgwLDB4MmEsMHg4MCwweDA4LDB4ZTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAyLDB4OWIsMHg4MSwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4OGVmMCwgMCwgezB4OGIsMHgzOCwweDA2LDB4Y2UsMHgwMCwweDkzLDB4ODAsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4MGMsMHgwMCwweGIzLDB4ODAgfSB9LAoteyAgMTYsIDB4OGYwMCwgMCwgezB4NmMsMHhlMCwweDBhLDB4YjAsMHgwMiwweDRjLDB4MDAsMHg5MywweDAwLDB4MjAsMHhlMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxMCwweDA0LDB4ODAsMHgwOCwweDIxLDB4MDIgfSB9LAoteyAgMTYsIDB4OGYyMCwgMCwgezB4NGIsMHg0NCwweDA2LDB4ZDAsMHgyMCwweDkwLDB4MDgsMHgyMSwweDAyLDB4ODAsMHg0NCwweDAyLDB4MTAsMHgwMCwweGI0LDB4YzAgfSB9LAoteyAgMTYsIDB4OGYzMCwgMCwgezB4MmQsMHgxMCwweDQ4LDB4NDAsMHgwMiwweDAwLDB4MDAsMHg5NCwweDg5LDB4MjksMHgzMCwweDA4LDB4NDAsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGY0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzMiwweDAwLDB4ZDYsMHg4MCwweDMxLDB4YTAgfSB9LAoteyAgMTYsIDB4OGY1MCwgMCwgezB4MGYsMHhlOCwweDBiLDB4Y2EsMHgwMCwweGQ2LDB4ODAsMHgyMywweGEwLDB4MDQsMHhmOCwweDBiLDB4MWEsMHgwMCwweGZmLDB4ODAgfSB9LAoteyAgMTYsIDB4OGY2MCwgMCwgezB4YmYsMHhhMCwweDJlLDB4YzgsMHgxMywweGRhLDB4MDIsMHg1ZSwweDgwLDB4NzMsMHhhMCwweDJjLDB4NzgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4OGY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4OGY4MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg4MCwweDAzLDB4ZTQsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OGY5MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YjAsMHgwMywweGU0LDB4MDEsMHhlOSwweDA0LDB4MzYsMHg0MCwweDBmLDB4ODAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4OGZhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4Y2QsMHg4MCwweDMzLDB4NjAgfSB9LAoteyAgMTYsIDB4OGZiMCwgMCwgezB4MGMsMHhkOCwweDQzLDB4MzYsMHgwMCwweGNkLDB4ODAsMHgzMywweDYwLDB4MGMsMHhkOSwweDIzLDB4YmUsMHgwMCwweDRkLDB4ODAgfSB9LAoteyAgMTYsIDB4OGZjMCwgMCwgezB4MzMsMHg2MCwweDA4LDB4ZjgsMHgwYiwweDNlLDB4MDAsMHhmZCwweDg0LDB4M2YsMHg2MCwweDBmLDB4ZjksMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5MCwweDA0LDB4ZGUsMHgwMCwweDIzLDB4ODAgfSB9LAoteyAgMTYsIDB4OGZlMCwgMCwgezB4MDgsMHg2MCwweDAyLDB4YjgsMHgyMCwweDhlLDB4MDQsMHgyMywweDgwLDB4MDgsMHg2OCwweDAyLDB4MTAsMHgwMCwweDhlLDB4MjAgfSB9LAoteyAgMTYsIDB4OGZmMCwgMCwgezB4MjMsMHg4MiwweDA4LDB4NDAsMHgwMiwweDEyLDB4MDAsMHhmNiwweDAwLDB4MmQsMHg4MCwweDBiLDB4NDEsMHhhMCwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTAwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ODQsMHgwMCwweDIxLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAxMCwgMCwgezB4MDgsMHg0MSwweDAyLDB4NTAsMHg0MCwweDk0LDB4MDAsMHgyMSwweDAwLDB4MGEsMHg1MiwweDAyLDB4ZDgsMHgwMCwweDg1LDB4MDIgfSB9LAoteyAgMTYsIDB4OTAyMCwgMCwgezB4MjUsMHgwNCwweDA4LDB4NDAsMHgyMiwweDE4LDB4MDgsMHhiNCwweDAwLDB4MmQsMHgxMCwweDBiLDB4NzgsMHg0MCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhlZSwweDIyLDB4OTMsMHgwMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4OTA0MCwgMCwgezB4MDgsMHgzOCwweDAyLDB4ZWMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGMxLDB4MmEsMHgyMCwweDAyLDB4NjQsMHgwMiwweDgyLDB4MTAgfSB9LAoteyAgMTYsIDB4OTA1MCwgMCwgezB4MjQsMHhmMCwweDBhLDB4M2MsMHg0MiwweDI0LDB4MjgsMHhiMywweDAwLDB4MmMsMHhlMCwweDBiLDB4ODgsMHg4MiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTA2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4Y2IsMHgwMCwweGIyLDB4YzAgfSB9LAoteyAgMTYsIDB4OTA3MCwgMCwgezB4YWMsMHhiZSwweDAzLDB4NmUsMHgwMiwweGRiLDB4MDAsMHhiMiwweGMwLDB4MWUsMHhhMCwweDAzLDB4ZTQsMHgwMCwweGNhLDB4MTEgfSB9LAoteyAgMTYsIDB4OTA4MCwgMCwgezB4YjYsMHhkMCwweGFjLDB4YmMsMHgwMywweDI0LDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweGNmLDB4ODQsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTA5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlMCwweDQwLDB4ZjgsMHgwMCwweDNjLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBhMCwgMCwgezB4MmYsMHg4MiwweDAzLDB4YTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MWQsMHg5MCwweDEzLDB4YTgsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTBiMCwgMCwgezB4M2EsMHgwMCwweDgxLDB4ODMsMHg0MywweGU4LDB4MDAsMHhlOCwweDAzLDB4M2UsMHgwNCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlMCwweDAwLDB4ZDYsMHgwMCwweDM3LDB4ODAgfSB9LAoteyAgMTYsIDB4OTBkMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZjgsMHgwMCwweGNlLDB4MDAsMHgzMywweDgwLDB4MGQsMHhhMCwweDEzLDB4MjAsMHgwOCwweGNlLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBlMCwgMCwgezB4MzMsMHg4MiwweDBjLDB4NDAsMHg3MywweDMwLDB4MTgsMHhjZSwweDAwLDB4MWYsMHg4MCwweDRmLDB4YzEsMHg0MywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4OTBmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg3YywweDAwLDB4OGQsMHgwMCwweDIzLDB4NDAgfSB9LAoteyAgMTYsIDB4OTEwMCwgMCwgezB4MGEsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDAsMHgyMywweDQwLDB4MDgsMHhkNCwweDgwLDB4M2UsMHg0MiwweDhkLDB4NDAgfSB9LAoteyAgMTYsIDB4OTExMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZjAsMHgwMiwweDNlLDB4NDAsMHg4ZCwweDAwLDB4MGYsMHg0MCwweDBiLDB4ZjQsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTEyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OTksMHgwMCwweGE2LDB4NDAgfSB9LAoteyAgMTYsIDB4OTEzMCwgMCwgezB4MDgsMHg5MCwweDA2LDB4ZTQsMHgwMCwweDkxLDB4MDAsMHgyMCwweDQwLDB4ODgsMHgwMCwweDAyLDB4MjQsMHgwOCwweDgwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTE0MCwgMCwgezB4MjAsMHg0MCwweDBhLDB4YjAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MGUsMHg0MCwweDBiLDB4ODQsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTE1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwMCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4OTE2MCwgMCwgezB4MGEsMHgyMSwweDA2LDB4YzgsMHgwMSwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgzMiwweDgyLDB4MDgsMHgwOCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTE3MCwgMCwgezB4NjAsMHg4MCwweDBhLDB4MDAsMHgxMiwweDA4LDB4ODAsMHg4MiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzAsMHgwYSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTE5MCwgMCwgezB4MGMsMHg4NCwweDIzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGQsMHg4MiwweDBiLDB4MjAsMHgwMiwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTFhMCwgMCwgezB4MzIsMHgwMCwweDBlLDB4MDAsMHgwMywweDIwLDB4MDIsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4OTFiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4YmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4OTFjMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHhiZiwweGMwLDB4OGYsMHhiMCwweDAzLDB4ZmMsMHgwOCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4OTFkMCwgMCwgezB4M2YsMHhjMCwweDBkLDB4ZjAsMHgwMywweGVkLDB4MDAsMHhmZiwweDAyLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4OTFlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMCwweDhjLDB4ZmYsMHgwMCwweDNkLDB4NjAgfSB9LAoteyAgMTYsIDB4OTFmMCwgMCwgezB4MmMsMHhiMiwweDgzLDB4N2MsMHg5MCwweGRmLDB4MzgsMHgzMSwweGUwLDB4MGYsMHhmOCwweDAzLDB4M2MsMHgwMCwweGZmLDB4MjAgfSB9LAoteyAgMTYsIDB4OTIwMCwgMCwgezB4M2YsMHhjNCwweDBlLDB4ZjQsMHgwMywweDdjLDB4MDAsMHhmNCwweDgwLDB4MzMsMHgwMCwweDBkLDB4ZjgsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTIxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlMSwweDIwLDB4YmIsMHg2MiwweDJlLDB4NDIgfSB9LAoteyAgMTYsIDB4OTIyMCwgMCwgezB4MjgsMHhmNCwweDQyLDB4M2UsMHg0MCwweDhmLDB4NDQsMHgyMiwweGUwLDB4MGIsMHhiMCwweDgzLDB4N2YsMHg0NCwweGJmLDB4YzEgfSB9LAoteyAgMTYsIDB4OTIzMCwgMCwgezB4MmQsMHhkYywweDJhLDB4ZjYsMHgwMiwweDNmLDB4NDUsMHhiOCwweDgwLDB4MjIsMHg2MSwweDg4LDB4YjgsMHgwMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTI0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNSwweDgwLDB4YjIsMHgxOCwweDJlLDB4YzggfSB9LAoteyAgMTYsIDB4OTI1MCwgMCwgezB4MjksMHgzMCwweDMyLDB4MGMsMHgwOCwweGIzLDB4MjAsMHgyMCwweGMwLDB4NGIsMHg5MiwweDAyLDB4MGMsMHgwMCwweGIzLDB4NDAgfSB9LAoteyAgMTYsIDB4OTI2MCwgMCwgezB4MmMsMHhjMCwweDg5LDB4MzQsMHgxMiwweDRjLDB4MDAsMHhiMCwweDAwLDB4MjQsMHhjMSwweDQ5LDB4MzAsMHgwMiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTI3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhhNCwweDAwLDB4YmEsMHgwYywweDJlLDB4ZTAgfSB9LAoteyAgMTYsIDB4OTI4MCwgMCwgezB4YTksMHhiMCwweDA2LDB4MmMsMHgwMCwweDhiLDB4MDAsMHhhMiwweGMwLDB4MGIsMHg5MCwweDAwLDB4NmMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTI5MCwgMCwgezB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweDZjLDB4MDAsMHhiYSwweDgwLDB4MjYsMHhmMCwweDA4LDB4YjAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTJhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlZSwweDAwLDB4ZmIsMHhjNCwweDNlLDB4NzggfSB9LAoteyAgMTYsIDB4OTJiMCwgMCwgezB4MmQsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZiLDB4MDAsMHgzMiwweGMwLDB4OGIsMHgyNCwweDgzLDB4MmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTJjMCwgMCwgezB4M2UsMHhjMCwweDhmLDB4YjAsMHgwYiwweDZjLDB4MDgsMHhiMiwweGUwLDB4MTYsMHg2MCwweDhkLDB4YjAsMHgyMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTJkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiZSwweDk4LDB4ZmYsMHg0MCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4OTJlMCwgMCwgezB4MGUsMHg3MCwweDAzLDB4ZGMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhlMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OTJmMCwgMCwgezB4M2YsMHhjMCwweDBlLDB4ZjAsMHgwMywweGFjLDB4MDAsMHhmZSwweDAwLDB4YjksMHhjMCwweDBmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTMwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhZCwweDAwLDB4ZmEsMHg0MCwweDNlLDB4ZDAgfSB9LAoteyAgMTYsIDB4OTMxMCwgMCwgezB4MGUsMHhiMiwweDAzLDB4ZWMsMHgwMCwweGMzLDB4MDAsMHgzZSwweGMwLDB4MGMsMHhhMCwweDAzLDB4MmMsMHgwMSwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTMyMCwgMCwgezB4M2MsMHhjMCwweDBlLDB4YjgsMHgwMywweGVjLDB4MDAsMHhkYSwweDAwLDB4M2EsMHhkMCwweDRmLDB4YjAsMHgyMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OTMzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4YmEsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4OTM0MCwgMCwgezB4MDgsMHhmNCwweDA3LDB4YmMsMHgxNCwweGRmLDB4MDAsMHgzZSwweGMwLDB4MWEsMHhhMCwweDUyLDB4YmMsMHgwMCwweGJmLDB4MDQgfSB9LAoteyAgMTYsIDB4OTM1MCwgMCwgezB4M2YsMHhjMCwweDhhLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYSwweDAwLDB4MjIsMHhjOCwweDBmLDB4YjAsMHgwMywweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTM2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OCwweDAxLDB4YjEsMHgwMCwweDZjLDB4YzIgfSB9LAoteyAgMTYsIDB4OTM3MCwgMCwgezB4MGEsMHgzMCwweDQyLDB4Y2MsMHgwMCwweDgzLDB4MDUsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMSwweGIzLDB4MDQgfSB9LAoteyAgMTYsIDB4OTM4MCwgMCwgezB4MmMsMHhjMCwweDBhLDB4MzAsMHgyMiwweDhjLDB4MDAsMHg4MCwweDgwLDB4MjgsMHhjMCwweDBiLDB4MzAsMHgyMiwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTM5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDA4LDB4YjcsMHg4MCwweDZmLDB4ZTAgfSB9LAoteyAgMTYsIDB4OTNhMCwgMCwgezB4MTgsMHg3OCwweDAyLDB4OGUsMHg0MCwweGI3LDB4ODAsMHgyZCwweGUwLDB4MGEsMHg3OCwweDAyLDB4OWUsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4OTNiMCwgMCwgezB4MjksMHhlMSwweDBhLDB4NzgsMHgwMiwweDllLDB4MDEsMHhiYywweDgwLDB4MjksMHhlNCwweDBiLDB4NzgsMHgwMiwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTNjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOSwweDQwLDB4ZjEsMHgyMCwweDNjLDB4YzQgfSB9LAoteyAgMTYsIDB4OTNkMCwgMCwgezB4MGUsMHgzOSwweDAyLDB4Y2MsMHgwMCwweGMzLDB4MDAsMHgyYywweGM0LDB4MDgsMHg5MiwweDAzLDB4OGMsMHg4OCwweGIzLDB4MTAgfSB9LAoteyAgMTYsIDB4OTNlMCwgMCwgezB4MmMsMHhjNCwweDBlLDB4YjAsMHgwNywweDhjLDB4MDAsMHhjMiwweDA4LDB4MzgsMHhjMCwweDBmLDB4MzAsMHg0MywweGQyLDB4MDIgfSB9LAoteyAgMTYsIDB4OTNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDEwLDB4ZmMsMHgwMCwweDdmLDB4YzAgfSB9LAoteyAgMTYsIDB4OTQwMCwgMCwgezB4MGYsMHhmMCwweDgzLDB4ZmMsMHgyMSwweGRmLDB4MDgsMHgzYiwweGMwLDB4OGYsMHg5MCwweDAxLDB4ZmMsMHgyMSwweGZmLDB4MGMgfSB9LAoteyAgMTYsIDB4OTQxMCwgMCwgezB4M2YsMHhjMiwweDBmLDB4ZjEsMHgwMywweGVjLDB4MDAsMHhlZiwweDAwLDB4NzcsMHhjMCwweDFlLDB4ZjAsMHgwMywweDkwLDB4MDYgfSB9LAoteyAgMTYsIDB4OTQyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlOCwweDAxLDB4ZjksMHgwMCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4OTQzMCwgMCwgezB4MGYsMHhiMiwweDAzLDB4ZWUsMHg5MCwweGRiLDB4ZTEsMHgzYSwweGMwLDB4NGQsMHgzOCwweDEzLDB4MmQsMHgzMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTQ0MCwgMCwgezB4M2UsMHhlMCwweDRmLDB4YmEsMHg0MywweDJjLDB4NDAsMHhmYSwweDAwLDB4M2YsMHhjMCwweDhjLDB4YjAsMHgwMywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTQ1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4YjEsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4OTQ2MCwgMCwgezB4MGIsMHg3MSwweDAyLDB4Y2MsMHgyMCwweGE3LDB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MCwweDEzLDB4NWMsMHgwOCwweGI3LDB4MTAgfSB9LAoteyAgMTYsIDB4OTQ3MCwgMCwgezB4MmQsMHhjNCwweDRiLDB4MzQsMHg4MywweDFjLDB4YzEsMHhiNywweDAyLDB4MmQsMHhjMCwweDFhLDB4NzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTQ4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDIwLDB4YjQsMHhjNCwweDI1LDB4YTIgfSB9LAoteyAgMTYsIDB4OTQ5MCwgMCwgezB4MGIsMHg3OCwweDA2LDB4ZGUsMHgwMCwweDgzLDB4ODAsMHgyOSwweGUwLDB4MWIsMHhmOCwweDAyLDB4NWUsMHg4MCwweGE3LDB4YTAgfSB9LAoteyAgMTYsIDB4OTRhMCwgMCwgezB4MmQsMHhjOCwweDBhLDB4NzIsMHgwMiwweDFlLDB4MDAsMHhhNiwweDgwLDB4MjgsMHhlMCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTRiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhlZCwweDAwLDB4YjMsMHg0MCwweDI0LDB4YzMgfSB9LAoteyAgMTYsIDB4OTRjMCwgMCwgezB4MGIsMHgzMCwweDQyLDB4Y2MsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4MWIsMHgzNCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTRkMCwgMCwgezB4MmMsMHhjMCwweDRiLDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDg4LDB4MmMsMHhkNCwweDBhLDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTRlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4ZmUsMHg0MCwweGI3LDB4YTAgfSB9LAoteyAgMTYsIDB4OTRmMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgzYSwweDgwLDB4MGYsMHhlMiwweDAzLDB4NjgsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTUwMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwYiwweDI4LDB4MDAsMHhlZSwweGUwLDB4M2YsMHhiMCwweDA0LDB4YTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTUxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDA0LDB4ZjAsMHgwOCwweDNhLDB4MTAgfSB9LAoteyAgMTYsIDB4OTUyMCwgMCwgezB4MGYsMHg4NCwweDAzLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTUzMCwgMCwgezB4M2MsMHgwMCwweDBmLDB4ODAsMHgwMywweDgwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwOSwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTU0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDIwLDB4ZTksMHgwMCwweDMyLDB4NDQgfSB9LAoteyAgMTYsIDB4OTU1MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDEzLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTU2MCwgMCwgezB4MWUsMHg0MCwweDBjLDB4MTAsMHgwMywweDI0LDB4MDAsMHhjOSwweGEwLDB4M2MsMHg2NCwweDBjLDB4OTAsMHgwMywweDgyLDB4MDQgfSB9LAoteyAgMTYsIDB4OTU3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHgwMCwweDIyLDB4NjggfSB9LAoteyAgMTYsIDB4OTU4MCwgMCwgezB4MDgsMHgxMywweDAyLDB4MjQsMHgwOCwweGY5LDB4MDAsMHgyZSwweDQ4LDB4MWIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTU5MCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMiwweDI0LDB4MDgsMHhmOSwweDQwLDB4MmUsMHg2MCwweDBhLDB4OTAsMHgwNiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTVhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YTksMHgwMCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTViMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDEsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTVjMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4OTIsMHgyMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTVkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDgwLDB4ODEsMHgyMSwweGUwLDB4NTAgfSB9LAoteyAgMTYsIDB4OTVlMCwgMCwgezB4MjgsMHgxNiwweDBhLDB4MDQsMHg4MCwweGExLDB4NDAsMHgyYywweDQwLDB4NGIsMHgxNCwweDIyLDB4YzQsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4OTVmMCwgMCwgezB4MmMsMHg1MCwweDA5LDB4MTQsMHgwMiwweDA0LDB4MDQsMHhiMSwweDAwLDB4MmMsMHg0MCwweDBhLDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZTgsMHg1MCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTYxMCwgMCwgezB4OGMsMHg4MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHgzZSwweDAwLDB4MGIsMHg4MCwweDMzLDB4ZTAsMHgxMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTYyMCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDgsMHhjYSwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGFlLDB4MDMgfSB9LAoteyAgMTYsIDB4OTYzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmYywweDQwLDB4ZmQsMHgxMCwweDJmLDB4NDEgfSB9LAoteyAgMTYsIDB4OTY0MCwgMCwgezB4NGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4NDAsMHgzZSwweDQwLDB4NGYsMHhkMCwweDYzLDB4ZTUsMHgwMCwweGY5LDB4NDAgfSB9LAoteyAgMTYsIDB4OTY1MCwgMCwgezB4M2EsMHg1MCwweDJlLDB4OTQsMHgwMywweDY1LDB4MDAsMHhlZCwweDAwLDB4M2YsMHg1MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4OTY2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhlNiwweDAwLDB4ZjksMHhlMCwweDMzLDB4NTAgfSB9LAoteyAgMTYsIDB4OTY3MCwgMCwgezB4MGMsMHhkYSwweDAzLDB4YTYsMHgwMCwweGQ5LDB4ODAsMHgzZiwweDQwLDB4MGYsMHg5MSwweDAzLDB4YTYsMHgwMCwweGY5LDB4ODggfSB9LAoteyAgMTYsIDB4OTY4MCwgMCwgezB4M2UsMHg2OCwweDBjLDB4ZGUsMHgwMywweDY2LDB4MDAsMHhlZCwweDAwLDB4M2IsMHg2OSwweDBjLDB4OTAsMHgwMywweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OTY5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMSwweDA4LDB4YjgsMHhlMCwweDIwLDB4MjAgfSB9LAoteyAgMTYsIDB4OTZhMCwgMCwgezB4MTgsMHg4ZSwweDI2LDB4ZTEsMHgwMCwweDgwLDB4YTAsMHgyZSwweDAwLDB4NGIsMHg4OCwweDQyLDB4ZTEsMHg1MCwweGI4LDB4NDAgfSB9LAoteyAgMTYsIDB4OTZiMCwgMCwgezB4MmUsMHgyYSwweDBkLDB4MGEsMHgwMiwweDIwLDB4MDgsMHhiOCwweDAwLDB4MmUsMHgxNCwweDBkLDB4ODAsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4OTZjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHg2MCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTZkMCwgMCwgezB4MDgsMHgzMSwweGEyLDB4YzUsMHgwMCwweDkxLDB4NDgsMHgyYywweDQwLDB4MWIsMHgxMiwweDAyLDB4ODQsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4OTZlMCwgMCwgezB4MmMsMHg1MCwweDA5LDB4MTYsMHgwMiwweDA1LDB4MDAsMHhhMywweDA0LDB4MjgsMHg0MCwweDA4LDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OTZmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNCwweDAwLDB4YjksMHgwOCwweDIwLDB4NzAgfSB9LAoteyAgMTYsIDB4OTcwMCwgMCwgezB4MjgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwOCwweGI5LDB4MDMgfSB9LAoteyAgMTYsIDB4OTcxMCwgMCwgezB4MmMsMHg0MCwweDI5LDB4OTAsMHgwMiwweDY0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg2MiwweDA5LDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4OTcyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNSwweDAwLDB4ZjksMHhkMCwweGIyLDB4NzAgfSB9LAoteyAgMTYsIDB4OTczMCwgMCwgezB4MDgsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4MDQsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDIgfSB9LAoteyAgMTYsIDB4OTc0MCwgMCwgezB4M2UsMHg0MCwweDBkLDB4OTAsMHgyYiwweDY0LDB4MDAsMHhlOSwweDhkLDB4M2EsMHg2MCwweDBjLDB4OTAsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTc1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHg4MCwweDNlLDB4NDIgfSB9LAoteyAgMTYsIDB4OTc2MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OTc3MCwgMCwgezB4M2UsMHg0MCwweDJmLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDIyLDB4M2MsMHg0MCwweDRmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTc4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjAsMHg0MCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4OTc5MCwgMCwgezB4MGMsMHg4MCwweDAzLDB4YzAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDIwLDB4MWYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTdhMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhjOCwweGMwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTdiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTUsMHgyOCwweDEwLDB4YmEsMHgwMCwweDIzLDB4YTAgfSB9LAoteyAgMTYsIDB4OTdjMCwgMCwgezB4MGEsMHhlNCwweDAyLDB4ZTgsMHgwMCwweGJhLDB4MDAsMHgyYiwweGExLDB4MGIsMHhhMCwweDAyLDB4ZTgsMHgwMCwweGFhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTdkMCwgMCwgezB4MmEsMHg4MSwweDBhLDB4YTAsMHgwMywweGU4LDB4MDgsMHhkZSwweDAwLDB4MmUsMHg4MCwweDBhLDB4YTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTdlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwNCwweGEwLDB4YjEgfSB9LAoteyAgMTYsIDB4OTdmMCwgMCwgezB4MDgsMHgzNiwweDIyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweGU0LDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTgwMCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MTgsMHgwMiwweDBjLDB4MDAsMHg5MSwweDAxLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwNiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OTgxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweGM4LDB4YjMsMHgyMSwweDIxLDB4YzIgfSB9LAoteyAgMTYsIDB4OTgyMCwgMCwgezB4MmEsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4YTAsMHgyOSwweGMwLDB4MGIsMHg3MiwweDAyLDB4Y2UsMHgwMCwweGE3LDB4ODEgfSB9LAoteyAgMTYsIDB4OTgzMCwgMCwgezB4MjksMHhjMCwweDRhLDB4NzQsMHgwMiwweGZlLDB4MDAsMHg5NywweDAxLDB4MmMsMHhjMCwweDBhLDB4NzAsMHgxMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4OTg0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgwLDB4ZjcsMHhjMCwweDMxLDB4ZTAgfSB9LAoteyAgMTYsIDB4OTg1MCwgMCwgezB4MGMsMHg0OCwweDAzLDB4ZGUsMHgxMSwweGY3LDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3YSwweDAzLDB4ZGUsMHgwMCwweGMzLDB4ODAgfSB9LAoteyAgMTYsIDB4OTg2MCwgMCwgezB4MzMsMHhkOCwweDZjLDB4NzgsMHgwMywweDNlLDB4MDAsMHhkNiwweDgwLDB4M2QsMHhlMCwweDBjLDB4NzgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4OTg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MGQsMHhhYywweDA4LDB4ZmIsMHg4MCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4OTg4MCwgMCwgezB4MGYsMHhkMCwweDAzLDB4ZWMsMHgwNCwweGZiLDB4M2MsMHgzZSwweGMwLDB4MGYsMHhiNiwweDA3LDB4NmMsMHgwMSwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTg5MCwgMCwgezB4M2UsMHhkMCwweDBmLDB4OTQsMHgwNywweGVjLDB4MDEsMHhlYSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4OThhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHhmZSwweDAwLDB4Y2YsMHhhNCwweDNiLDB4NjAgfSB9LAoteyAgMTYsIDB4OThiMCwgMCwgezB4MDgsMHhkOSwweDAzLDB4N2UsMHgwMCwweGNmLDB4ODAsMHgzZiwweDI1LDB4NGYsMHhmYywweDg3LDB4YmUsMHgwMCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4OThjMCwgMCwgezB4N2YsMHhmYywweDBjLDB4ZmMsMHgwMywweDdjLDB4MDAsMHhmNiwweDkwLDB4MzMsMHhlMCwweDBmLDB4ZjgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OThkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDA4LDB4OGYsMHgyOCwweDIxLDB4NDAgfSB9LAoteyAgMTYsIDB4OThlMCwgMCwgezB4MDgsMHhkMCwweDAyLDB4MWMsMHg0MCwweGE3LDB4MjAsMHgzMSwweDA0LDB4MWIsMHg3OCwweDAyLDB4ZGMsMHg4MCwweGQ3LDB4MDAgfSB9LAoteyAgMTYsIDB4OThmMCwgMCwgezB4MmYsMHhjNCwweDFhLDB4ZDAsMHgwMiwweDFlLDB4NDgsMHhiNiwweDAwLDB4NjEsMHhjMCwweDBiLDB4NzAsMHgwNiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTkwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4YywweDAwLDB4ODcsMHgzMCwweDY5LDB4NDQgfSB9LAoteyAgMTYsIDB4OTkxMCwgMCwgezB4MDgsMHg1MCwweDIyLDB4MGMsMHgwMCwweDg3LDB4MDEsMHgyZCwweDQ0LDB4OGIsMHg3MCwweDA2LDB4OGMsMHgxMCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4OTkyMCwgMCwgezB4MjksMHhjOSwweDA4LDB4NTAsMHgwMiwweDFjLDB4NDQsMHhhNiwweDAwLDB4NjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTkzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjZCwweDAwLDB4ODMsMHg4OCwweDYwLDB4NDAgfSB9LAoteyAgMTYsIDB4OTk0MCwgMCwgezB4MDAsMHgxMCwweDAyLDB4NGMsMHgwMCwweDJiLDB4MDAsMHgyYywweDQxLDB4MWIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4OTk1MCwgMCwgezB4MmMsMHhjMCwweDBhLDB4MzAsMHg0MiwweDBjLDB4MDAsMHhiMiwweDQwLDB4MjAsMHhmMSwweDBiLDB4MzAsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4OTk2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZCwweDQxLDB4Y2YsMHhjMCwweGJhLDB4ZjAgfSB9LAoteyAgMTYsIDB4OTk3MCwgMCwgezB4MjgsMHg5MCwweDFiLDB4NmMsMHgwOCwweGNmLDB4MDAsMHgyYywweGMwLDB4MGYsMHhmMCwweDAzLDB4YWMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4OTk4MCwgMCwgezB4M2YsMHhjMCwweDZjLDB4YjAsMHg0YiwweDJjLDB4MDEsMHhmYiwweDQwLDB4MjIsMHhjOCwweDBmLDB4YjAsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4OTk5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDA0LDB4ZmIsMHgwNCwweDNmLDB4ZDQgfSB9LAoteyAgMTYsIDB4OTlhMCwgMCwgezB4MGYsMHgxMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzMiwweGMwLDB4NWYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDQgfSB9LAoteyAgMTYsIDB4OTliMCwgMCwgezB4M2UsMHhjMCwweDRmLDB4MTAsMHgxMywweGVjLDB4MDAsMHhmYiwweDg4LDB4M2UsMHhjMCwweDRmLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTljMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4YzcsMHgwMCwweDMzLDB4NjIgfSB9LAoteyAgMTYsIDB4OTlkMCwgMCwgezB4MGMsMHhjMCwweDBiLDB4M2MsMHgwMCwweGVmLDB4MDAsMHgzMywweGUwLDB4MWMsMHhmMCwweDEzLDB4M2MsMHgwOCwweGY3LDB4MDAgfSB9LAoteyAgMTYsIDB4OTllMCwgMCwgezB4MzEsMHhjMCwweDBlLDB4ZDgsMHgwMywweGJjLDB4MDAsMHhmZSwweDAwLDB4M2QsMHhjNiwweDBjLDB4ZjAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4OTlmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDAwLDB4Y2IsMHgwMywweDIyLDB4NDcgfSB9LAoteyAgMTYsIDB4OWEwMCwgMCwgezB4MDgsMHg5OCwweDQyLDB4MmMsMHgwMCwweDliLDB4MDAsMHgyYSwweGMwLDB4MGEsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDQgfSB9LAoteyAgMTYsIDB4OWExMCwgMCwgezB4MmEsMHhjMCwweDBhLDB4YjAsMHgwMiwweGFjLDB4MDgsMHhmYSwweDAwLDB4MmUsMHg2MCwweDA4LDB4YjAsMHgwMiwweGUwLDB4NDAgfSB9LAoteyAgMTYsIDB4OWEyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OWIsMHgwMCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4OWEzMCwgMCwgezB4MDgsMHg5OCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyMiwweDg4LDB4MDgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWE0MCwgMCwgezB4MjIsMHhjMCwweDhhLDB4OTIsMHgwMiwweGFjLDB4MDAsMHhhYSwweDgwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwNiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWE1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4ODMsMHgwMCwweGEwLDB4NDAgfSB9LAoteyAgMTYsIDB4OWE2MCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyOCwweDgwLDB4MGEsMHgzMiwweDEyLDB4MGMsMHgwMCwweGIzLDB4MDQgfSB9LAoteyAgMTYsIDB4OWE3MCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MzAsMHgyMiwweDhjLDB4MjAsMHhiMiwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAyLDB4Y2IsMHgwMCwweDMwLDB4NDAgfSB9LAoteyAgMTYsIDB4OWE5MCwgMCwgezB4MWMsMHg5NCwweDAzLDB4MmMsMHgwMCwweGVmLDB4MDAsMHgzMiwweGMwLDB4ODgsMHhmMCwweDhiLDB4MmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWFhMCwgMCwgezB4MzMsMHhjMCwweGFlLDB4ZjAsMHgwMywweGFjLDB4ODAsMHhlYSwweDAxLDB4M2UsMHhjMCwweDJjLDB4YjAsMHgwMywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4OWFiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4NDAgfSB9LAoteyAgMTYsIDB4OWFjMCwgMCwgezB4MDcsMHhkMiwweDgzLDB4ZmMsMHgwMCwweGRmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWFkMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZDAsMHgwYiwweGVjLDB4MDAsMHhlZSwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4OWFlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNSwweDAwLDB4Y2YsMHgwOCwweDNmLDB4NDggfSB9LAoteyAgMTYsIDB4OWFmMCwgMCwgezB4MGYsMHhjMywweDkzLDB4NzAsMHhkMCwweGRjLDB4MzAsMHgzZiwweGQ4LDB4MGMsMHhiMiwweDAzLDB4M2MsMHhjMCwweGZmLDB4NDAgfSB9LAoteyAgMTYsIDB4OWIwMCwgMCwgezB4MzMsMHhjNCwweDJjLDB4ZjEsMHgwMywweDYyLDB4NTAsMHhmYywweDM0LDB4MzMsMHgwMCwweDBmLDB4NWMsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWIxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhjNCwweDgwLDB4OGIsMHgwMCwweDJmLDB4NWEgfSB9LAoteyAgMTYsIDB4OWIyMCwgMCwgezB4MGIsMHhhNiwweDEyLDB4MjEsMHhjMCwweDg5LDB4NzAsMHgyZiwweGRjLDB4MDgsMHhmMiwweGMyLDB4M2QsMHhkMCwweGJmLDB4NDAgfSB9LAoteyAgMTYsIDB4OWIzMCwgMCwgezB4MzcsMHhkYywweDg4LDB4ZjUsMHgwYSwweDIwLDB4ODAsMHhlOCwweDEwLDB4MmEsMHgxNiwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWI0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDAwLDB4ODMsMHgwOCwweDJjLDB4NDQgfSB9LAoteyAgMTYsIDB4OWI1MCwgMCwgezB4MGIsMHgwMiwweDAyLDB4MGMsMHgwMCwweDgwLDB4MDAsMHgyYywweGM4LDB4MDgsMHgzMywweDQyLDB4OGMsMHg5MCwweGIzLDB4MzAgfSB9LAoteyAgMTYsIDB4OWI2MCwgMCwgezB4MjgsMHhjOCwweDRhLDB4MzIsMHgxMiwweDgwLDB4MGMsMHhiMCwweGEwLDB4MjgsMHgyOCwweDBiLDB4MTIsMHgwMiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWI3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhMiwweDAwLDB4OGIsMHgwMCwweDJlLDB4NDggfSB9LAoteyAgMTYsIDB4OWI4MCwgMCwgezB4MGIsMHhhMCwweDIyLDB4MjAsMHgyMCwweDg4LDB4ODAsMHgyZSwweGMwLDB4MjgsMHhiMCwweDBhLDB4YWMsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWI5MCwgMCwgezB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGEwLDB4MDAsMHhhYiwweDgyLDB4MmEsMHhhMCwweDBiLDB4YjIsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWJhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlNywweDAwLDB4Y2IsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4OWJiMCwgMCwgezB4Y2YsMHg5YywweDBiLDB4MjEsMHgwMCwweGQ4LDB4ODgsMHgzZSwweGMwLDB4MGMsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWJjMCwgMCwgezB4M2EsMHhjMCwweDBlLDB4YjAsMHg0MywweGU4LDB4NDAsMHhmOCwweDgwLDB4M2EsMHg2MCwweDBmLDB4OTgsMHgwMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWJkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNCwweDAwLDB4ZmYsMHgwMCwweDBmLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWJlMCwgMCwgezB4MDcsMHhhMSwweDAzLDB4ZTgsMHgwMiwweGZiLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDIzLDB4N2MsMHgwMCwweGZmLDB4MDIgfSB9LAoteyAgMTYsIDB4OWJmMCwgMCwgezB4MzUsMHhjMCwweDRkLDB4YjAsMHgwMywweDc0LDB4MjAsMHhmYywweDAxLDB4M2YsMHgwMCwweDBmLDB4ZjgsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWMwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNSwweDAwLDB4Y2IsMHgwMCwweGJhLDB4NDAgfSB9LAoteyAgMTYsIDB4OWMxMCwgMCwgezB4MGMsMHgxNCwweDBiLDB4MmYsMHgyMiwweGM5LDB4NDAsMHgzMiwweGMwLDB4OGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4OWMyMCwgMCwgezB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGU0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHgwMCwweDJjLDB4OTAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4OWMzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDEsMHgyNCwweDAwLDB4OGYsMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4OWM0MCwgMCwgezB4MmMsMHhhNSwweDQyLDB4MjksMHgwMCwweDhiLDB4MDQsMHhhMywweGMxLDB4MGQsMHhmMCwweDBhLDB4M2MsMHgwMCwweGJmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWM1MCwgMCwgezB4M2YsMHhjMCwweDA4LDB4ZjAsMHgwMSwweDY5LDB4MDAsMHhkYSwweDA1LDB4MjIsMHhkMCwweDA4LDB4OTQsMHgwMywweDcyLDB4MDAgfSB9LAoteyAgMTYsIDB4OWM2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2MCwweDQwLDB4ODMsMHgwMSwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4OWM3MCwgMCwgezB4MDksMHgwMCwweDAyLDB4MjAsMHgwMCwweDgyLDB4NjAsMHgyMiwweGMwLDB4MDgsMHgzMCwweDQyLDB4NGMsMHgxMCwweGJiLDB4MDIgfSB9LAoteyAgMTYsIDB4OWM4MCwgMCwgezB4MmMsMHhjMCwweDA4LDB4YjAsMHgxMiwweDA1LDB4MDAsMHg5YiwweDAwLDB4MjAsMHg4MiwweDA5LDB4MzIsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWM5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxNiwweDkwLDB4ODcsMHg4MCwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWNhMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4MTYsMHgxNCwweDg0LDB4ODEsMHgyMSwweGUwLDB4MjksMHgzOSwweDAyLDB4NWUsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4OWNiMCwgMCwgezB4MjgsMHhlMCwweDA4LDB4NzgsMHgwMiwweDdhLDB4ODAsMHg5NiwweDgxLDB4MjEsMHhlMCwweDA5LDB4ZjgsMHgwMiwweDQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWNjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDA5LDB4OGIsMHgxMCwweDM4LDB4NDQgfSB9LAoteyAgMTYsIDB4OWNkMCwgMCwgezB4NGQsMHgyNSwweDEyLDB4MGMsMHgwMCwweGMyLDB4MTAsMHgyMiwweGM4LDB4MGEsMHgzOCwweDAzLDB4Y2MsMHgwMCwweGYzLDB4MTAgfSB9LAoteyAgMTYsIDB4OWNlMCwgMCwgezB4MmMsMHhjMCwweDBjLDB4MzAsMHgwMywweDhhLDB4YzAsMHhkOSwweDEwLDB4MzIsMHg0MCwweDJkLDB4MTAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4OWNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDgwLDB4ZmYsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4OWQwMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGVkLDB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMywweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4OWQxMCwgMCwgezB4M2YsMHhjMiwweDBmLDB4ZjAsMHgwYiwweGQ0LDB4MDAsMHhmZiwweDEwLDB4YmYsMHg4MCwweDBlLDB4ZjAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4OWQyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmYSwweDAwLDB4Y2IsMHgwMiwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4OWQzMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YTAsMHgwMCwweGNiLDB4MDAsMHgzYSwweGNhLDB4MGMsMHhiMywweDEzLDB4YWYsMHgyNCwweGNiLDB4NDggfSB9LAoteyAgMTYsIDB4OWQ0MCwgMCwgezB4MWUsMHhjOCwweDBmLDB4YjYsMHgwMywweDJjLDB4MDAsMHhmYSwweDAwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4OWQ1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDA4LDB4ODcsMHgyMCwweDJkLDB4YzQgfSB9LAoteyAgMTYsIDB4OWQ2MCwgMCwgezB4MGIsMHg1MCwweDEyLDB4ZGMsMHgwNCwweDg3LDB4MDAsMHgyYywweGMwLDB4MDgsMHg3MCwweGEyLDB4MWQsMHgwMCwweGE3LDB4NDAgfSB9LAoteyAgMTYsIDB4OWQ3MCwgMCwgezB4MjUsMHhjYiwweDhiLDB4NzQsMHg4MiwweDFjLDB4MDAsMHhiNywweDAwLDB4MmQsMHhjMSwweDBiLDB4NzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OWQ4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDAxLDB4ODcsMHg5MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWQ5MCwgMCwgezB4MGIsMHg3OCwweDAyLDB4Y2UsMHgwMCwweDg2LDB4ODAsMHgyZCwweGU0LDB4MjksMHg3YSwweDAyLDB4OWUsMHg4MCwweDg3LDB4YTAgfSB9LAoteyAgMTYsIDB4OWRhMCwgMCwgezB4NmQsMHhlOCwweDBiLDB4NzgsMHgwMiwweDFlLDB4MDAsMHhiNSwweDgwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWRiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjZCwweDAwLDB4ODMsMHgwMiwweDJjLDB4ZTAgfSB9LAoteyAgMTYsIDB4OWRjMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4ZTAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4OWRkMCwgMCwgezB4MjQsMHhjMCwweDBiLDB4YjAsMHgwMiwweDBlLDB4MjAsMHhiMywweDA4LDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4OWRlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDgyLDB4Y2EsMHgwMCwweDNlLDB4YTggfSB9LAoteyAgMTYsIDB4OWRmMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZjgsMHgwMiwweDhlLDB4ODAsMHgzZSwweDgwLDB4MGQsMHhhMCwweDViLDB4YTgsMHgwMCwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4OWUwMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDNiLDB4ODAsMHhmZSwweDQyLDB4MmYsMHg4MCwweDBmLDB4YTgsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4OWUxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDIwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4OWUyMCwgMCwgezB4MGYsMHgwNiwweDAzLDB4YzAsMHgwMCwweGY4LDB4MTEsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4OWUzMCwgMCwgezB4MzYsMHgwMCwweDBmLDB4ODAsMHgwYiwweGUwLDB4MDAsMHhmOCwweDA0LDB4M2UsMHgyMCwweDBmLDB4ODEsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4OWU0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4OWU1MCwgMCwgezB4MGMsMHg5YSwweDAzLDB4MjQsMHg0MCwweGM5LDB4YzAsMHgzZSwweDQwLDB4NGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4OWU2MCwgMCwgezB4MzYsMHg0MCwweDA3LDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweDA0LDB4MzIsMHg2MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4OWU3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHgwMiwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4OWU4MCwgMCwgezB4MGEsMHg5MiwweDAyLDB4MjUsMHgwMiwweDg5LDB4ZTAsMHgyZSwweDQwLDB4OTgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4OWU5MCwgMCwgezB4MjIsMHg0MCwweDA5LDB4OTAsMHgwMiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MjIsMHg0NCwweDBiLDB4OWMsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4OWVhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyYywweDAwLDB4YjksMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4OWViMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgyOCwweDg5LDB4MDAsMHgyYywweDQwLDB4NjgsMHg5MCwweDQyLDB4MjQsMHgwYywweGIxLDB4MDQgfSB9LAoteyAgMTYsIDB4OWVjMCwgMCwgezB4MjYsMHg0MCwweDBiLDB4OTAsMHgwYSwweDJjLDB4ODAsMHg4MSwweDAwLDB4MjIsMHg0MCwweGNiLDB4OTIsMHg4MiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OWVkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4YjEsMHgyMCwweDJjLDB4NDggfSB9LAoteyAgMTYsIDB4OWVlMCwgMCwgezB4MGEsMHgxMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MjEsMHgyYywweDRjLDB4MDgsMHgxMSwweDAyLDB4MDQsMHgwOCwweGIxLDB4MTAgfSB9LAoteyAgMTYsIDB4OWVmMCwgMCwgezB4MjAsMHg0YywweDA5LDB4MTIsMHgwMiwweDI0LDB4MDEsMHg5MSwweDIwLDB4YTAsMHg0OCwweDBiLDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweGUwLDB4ZjgsMHg1MCwweDNlLDB4MTQgfSB9LAoteyAgMTYsIDB4OWYxMCwgMCwgezB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGM4LDB4NTAsMHgzZSwweDEwLDB4MDgsMHgwNiwweDgzLDB4MDEsMHhmMCwweGY4LDB4NjggfSB9LAoteyAgMTYsIDB4OWYyMCwgMCwgezB4MzYsMHgxMCwweDBmLDB4MDUsMHgwMywweDI5LDB4NDAsMHhjOCwweDUwLDB4MzIsMHg5NCwweDBmLDB4ODUsMHgwMywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4OWYzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDAwLDB4ZjksMHgxMCwweDNmLDB4NDQgfSB9LAoteyAgMTYsIDB4OWY0MCwgMCwgezB4MGYsMHhkMSwweDBiLDB4ZjQsMHg0MCwweGZkLDB4MTIsMHgyZSwweDRjLDB4MDMsMHg5MiwweDBiLDB4ZTQsMHgwMCwweGY5LDB4MjAgfSB9LAoteyAgMTYsIDB4OWY1MCwgMCwgezB4M2UsMHg0YywweDBmLDB4OTEsMHgwMywweGZjLDB4MDAsMHhmZCwweDEwLDB4M2YsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4OWY2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDIwLDB4YzksMHgwMSwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4OWY3MCwgMCwgezB4MGYsMHhkMCwweDAzLDB4M2MsMHgwMCwweGJkLDB4MDAsMHgzMiwweDYzLDB4MGMsMHg5ZSwweDQzLDB4MjcsMHgwMCwweGU5LDB4YzAgfSB9LAoteyAgMTYsIDB4OWY4MCwgMCwgezB4M2UsMHg2OCwweDBjLDB4OTgsMHgwMywweDM0LDB4MDAsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4OWY5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhjMiwweDIwLDB4ZDgsMHgwMCwweDJlLDB4MDAgfSB9LAoteyAgMTYsIDB4OWZhMCwgMCwgezB4MGIsMHg4MCwweDUyLDB4MjgsMHgwNCwweGI4LDB4MDAsMHgyMiwweDM4LDB4MDgsMHg4OCwweDAzLDB4NjIsMHgwMCwweDg4LDB4ZjAgfSB9LAoteyAgMTYsIDB4OWZiMCwgMCwgezB4MmUsMHgzYSwweDQ4LDB4OGYsMHgwYSwweDIwLDB4MDAsMHhiMCwweDgwLDB4MmUsMHgwMCwweDBiLDB4ODAsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4OWZjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHgwMCwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4OWZkMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyMCwweDQyLDB4NDgsMHgxNCwweDQyLDB4MDUsMHg4MCwweGExLDB4MjAgfSB9LAoteyAgMTYsIDB4OWZlMCwgMCwgezB4MmMsMHg0NCwweDA4LDB4MTAsMHg4MiwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmMsMHg0MCwweDBiLDB4MTAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4OWZmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNSwweDAxLDB4OTksMHgwMCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4YTAwMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjQsMHg0MCwweGJiLDB4MDEsMHgyMiwweDQxLDB4MDgsMHg5MCwweDEyLDB4MjQsMHgwMCwweGE5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTAxMCwgMCwgezB4MmMsMHg0MCwweDA4LDB4MTAsMHg0MCwweDI0LDB4MDgsMHhiOSwweDQwLDB4NmUsMHg1MCwweDBiLDB4OTIsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4YTAyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDE0LDB4YzksMHgwNSwweDNlLDB4NDEgfSB9LAoteyAgMTYsIDB4YTAzMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4MjQsMHgwNCwweGY5LDB4MDgsMHhiMiwweDQwLDB4MmMsMHg5MCwweDBhLDB4MjQsMHgwMCwweGU5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTA0MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4OTAsMHgwMywweDI3LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4YTA1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg4NCwweDg4LDB4ZjksMHgwMCwweDNlLDB4NDggfSB9LAoteyAgMTYsIDB4YTA2MCwgMCwgezB4MGYsMHg5OSwweDAzLDB4ZTYsMHgwMCwweGY5LDB4MDIsMHgzYywweDQwLDB4YWYsMHgxMCwweDAzLDB4ZTQsMHgxMiwweGQ5LDB4MDQgfSB9LAoteyAgMTYsIDB4YTA3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU1LDB4MDAsMHhmOSwweGMwLDB4M2UsMHg2NCwweDBmLDB4OTAsMHg4MywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTA4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTA5MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4MjEsMHgwMCwweGM4LDB4NDAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgxMCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTBhMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4ODAsMHhmOCwweDA0LDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTBiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4Y2EsMHgwMCwweDJlLDB4ODAgfSB9LAoteyAgMTYsIDB4YTBjMCwgMCwgezB4MGIsMHhlOCwweDBhLDB4MzgsMHgxMCwweDhlLDB4YzAsMHgyMiwweDgwLDB4MGQsMHhhMCwweDAyLDB4MjgsMHgwMCwweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTBkMCwgMCwgezB4MDIsMHg4MCwweDI4LDB4YTAsMHgwMiwweGZiLDB4MDAsMHhiYSwweDAwLDB4MzcsMHhiMCwweDQ4LDB4ZWEsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTBlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMSwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YTBmMCwgMCwgezB4OGIsMHhiMCwweDQyLDB4MGMsMHg5MCwweDliLDB4MjAsMHgyMCwweGMwLDB4NDgsMHgzMCwweDQyLDB4MmMsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTEwMCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNkLDB4NDAsMHhiMywweDAwLDB4MjQsMHhjOCwweDA4LDB4MzgsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTExMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxNCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YTEyMCwgMCwgezB4MGIsMHgyNCwweDA2LDB4MTYsMHgwMCwweDkzLDB4MDgsMHgyMSwweGM4LDB4MDksMHgzMSwweDAyLDB4MGMsMHg4MCwweDg3LDB4YTAgfSB9LAoteyAgMTYsIDB4YTEzMCwgMCwgezB4MjEsMHhjMCwweDE4LDB4NzIsMHgwMiwweGRjLDB4MDAsMHhiNywweGI0LDB4MjQsMHhlMywweDA4LDB4NzgsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTE0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAyLDB4OTcsMHhhMCwweDNkLDB4ZjAgfSB9LAoteyAgMTYsIDB4YTE1MCwgMCwgezB4MGYsMHg0OCwweDAzLDB4M2UsMHgwMCwweGQ2LDB4ODAsMHgzMCwweGUwLDB4MmMsMHg3YSwweDAyLDB4MWUsMHg4MiwweGMzLDB4ZjAgfSB9LAoteyAgMTYsIDB4YTE2MCwgMCwgezB4MzMsMHhlYywweDBjLDB4N2MsMHgwMywweGQ2LDB4MDAsMHhmNywweDgwLDB4MzUsMHhlMCwweDBjLDB4ZDgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4YTE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTksMHhhNSwweGEwLDB4ZmIsMHgwMCwweDNlLDB4Y2EgfSB9LAoteyAgMTYsIDB4YTE4MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGVhLDB4MDAsMHgzZSwweGM2LDB4MGYsMHhiNCwweDBiLDB4ZWQsMHg0MCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTE5MCwgMCwgezB4YmUsMHhjMCwweDBmLDB4YjYsMHg0MywweGUwLDB4MDAsMHhmYiwweDAyLDB4M2UsMHg4MCwweDBmLDB4OTAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YTFhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAyLDB4Y2YsMHg4OCwweDNmLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTFiMCwgMCwgezB4MGMsMHhiOSwweDAzLDB4ZmUsMHgwMCwweGRkLDB4ODEsMHgzMywweGUwLDB4OGMsMHhmYywweDAzLDB4M2YsMHgwNCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YTFjMCwgMCwgezB4MzMsMHhlMiwweDRmLDB4ZmMsMHgwMywweDNlLDB4MDAsMHhjZiwweGMwLDB4MzMsMHg2NCwweDBjLDB4ZjgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTFkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5NCwweDQwLDB4ODcsMHgwMCwweDJmLDB4YzEgfSB9LAoteyAgMTYsIDB4YTFlMCwgMCwgezB4MGQsMHg2OSwweGEyLDB4ZDAsMHg0MCwweGJjLDB4MDAsMHgyMywweGMwLDB4MDgsMHhmMCwweDAyLDB4OWMsMHgwMCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4YTFmMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NzAsMHgwYSwweDNjLDB4MDQsMHg4NywweDEwLDB4MjEsMHg0YywweDA4LDB4NjAsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTIwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5ZSwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YTIxMCwgMCwgezB4MDksMHg2MiwweDAyLDB4ZDgsMHgwMCwweDk3LDB4MDAsMHgyMSwweGM0LDB4MDgsMHg3MCwweDAyLDB4MGMsMHg0MCwweDk3LDB4MDAgfSB9LAoteyAgMTYsIDB4YTIyMCwgMCwgezB4MjEsMHhjNCwweDBiLDB4MzAsMHgwMiwweDU4LDB4MDAsMHhhNywweDA4LDB4MjEsMHg4MCwweDA4LDB4NjAsMHg4MiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTIzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhlNCwweDI1LDB4ODMsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YTI0MCwgMCwgezB4MDksMHgyMiwweDAyLDB4Y2MsMHgyMCwweGIyLDB4MDAsMHgyMCwweGMwLDB4MjgsMHhiMCwweDAyLDB4OGMsMHgwMCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTI1MCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzAsMHg0MiwweDZjLDB4MjAsMHg4MywweDA4LDB4MjAsMHhlMiwweDA4LDB4YjgsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4YTI2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhNCwweDAwLDB4Y2YsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTI3MCwgMCwgezB4MGQsMHg5YywweDAzLDB4ZTgsMHgwMCwweGRiLDB4ODAsMHgzMywweGMwLDB4MGMsMHhmMCwweDBiLDB4M2MsMHgwNiwweGRmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTI4MCwgMCwgezB4YjMsMHhjMCwweDBiLDB4ZjAsMHgwNywweDY4LDB4MDAsMHhlZiwweDQwLDB4MzIsMHhhOCwweDBjLDB4YTgsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4YTJhMCwgMCwgezB4MGYsMHg5NCwweDAzLDB4YzUsMHg0MCwweGZhLDB4MzAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4YTJiMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4MzAsMHgxMywweGFkLDB4NDAsMHhmYiwweDAyLDB4M2UsMHhkMCwweDBmLDB4YjQsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTJjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlNCwweDAwLDB4YzcsMHgwMCwweDMxLDB4YzEgfSB9LAoteyAgMTYsIDB4YTJkMCwgMCwgezB4OGMsMHhkMCwweDAzLDB4MzQsMHgwMCwweGNkLDB4MDAsMHgzZCwweGMwLDB4MGMsMHhmMCwweDAxLDB4N2MsMHgwMCwweGRiLDB4MDEgfSB9LAoteyAgMTYsIDB4YTJlMCwgMCwgezB4M2QsMHhjMCwweDRjLDB4ZjAsMHgwYiwweDMwLDB4MDIsMHhjMywweDAwLDB4MzIsMHgwMCwweDBmLDB4ZDAsMHgwMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4YTJmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2ZSwweDQwLDB4OGIsMHgwMCwweDJhLDB4YzAgfSB9LAoteyAgMTYsIDB4YTMwMCwgMCwgezB4MjgsMHg4NCwweDQyLDB4MjIsMHg4MCwweDg4LDB4ODAsMHgzYSwweGMwLDB4MGQsMHhiMCwweDAyLDB4YWMsMHgwOCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTMxMCwgMCwgezB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweDIzLDB4MjAsMHg4YiwweDAwLDB4MjIsMHgzMCwweDhiLDB4OGMsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YTMyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNCwweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YTMzMCwgMCwgezB4MDgsMHgzOCwweDg2LDB4MmEsMHgwMCwweDg5LDB4ODAsMHgyYSwweGMwLDB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwMCwweDliLDB4MDAgfSB9LAoteyAgMTYsIDB4YTM0MCwgMCwgezB4MmUsMHhjMCwweDA4LDB4YjAsMHg0MiwweDI2LDB4MDAsMHg4YiwweDAwLDB4MjIsMHg3MSwweDBiLDB4OGMsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTM1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4ODMsMHgwMCwweDI4LDB4YzAgfSB9LAoteyAgMTYsIDB4YTM2MCwgMCwgezB4MDgsMHgzMiwweDQyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyOCwweGMwLDB4MDksMHgzMCwweDUyLDB4OGMsMHgwOCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTM3MCwgMCwgezB4MmMsMHhjMCwweDE4LDB4MzAsMHgwNiwweDAwLDB4MDAsMHg4MywweDAwLDB4YTAsMHgwMCwweDBiLDB4MDAsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3NCwweDAyLDB4OGIsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4YTM5MCwgMCwgezB4MGMsMHg5MiwweDBiLDB4MjAsMHgwMiwweGM4LDB4MDAsMHgzYiwweGMwLDB4MGMsMHhmNSwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDEgfSB9LAoteyAgMTYsIDB4YTNhMCwgMCwgezB4M2YsMHhjMSwweDA0LDB4ZjAsMHgzMywweDIxLDB4NDAsMHhjZiwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwYiwweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4YTNiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTksMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTNjMCwgMCwgezB4MGYsMHhjNCwweDAzLDB4ZjAsMHgwMCwweDljLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTNkMCwgMCwgezB4MmYsMHhjMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4ODAsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBmLDB4YzAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YTNlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweGMwLDB4ZmYsMHhhMCwweDMxLDB4MjQgfSB9LAoteyAgMTYsIDB4YTNmMCwgMCwgezB4MGUsMHhmMCwweDYzLDB4MTAsMHgwNCwweGVmLDB4NjQsMHgzZiwweGMwLDB4NGMsMHhmMywweDAzLDB4MWMsMHg4MCwweGRmLDB4MDggfSB9LAoteyAgMTYsIDB4YTQwMCwgMCwgezB4MzcsMHhjMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4YTAsMHhmYywweDAwLDB4MzEsMHgwOCwweDJjLDB4ZDIsMHgwMywweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTQxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlMSwweDAwLDB4YmIsMHhjMSwweDIyLDB4NDggfSB9LAoteyAgMTYsIDB4YTQyMCwgMCwgezB4MDgsMHhmZCwweDAyLDB4MmUsMHgwMCwweDk3LDB4MDAsMHgyZiwweGMyLDB4NDgsMHg3MSwweDIzLDB4N2UsMHg0MCwweGJmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTQzMCwgMCwgezB4MjEsMHhjNSwweDRiLDB4ZjUsMHgwMiwweGVmLDB4MDAsMHhiYiwweDQwLDB4MzYsMHhlMCwweDA4LDB4YTgsMHgwMiwweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTQ0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNSwweDg0LDB4YjMsMHgxMSwweGEyLDB4YzkgfSB9LAoteyAgMTYsIDB4YTQ1MCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MDAsMHgwMSwweGIzLDB4MzAsMHgyOCwweGM0LDB4MDgsMHgzMiwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDggfSB9LAoteyAgMTYsIDB4YTQ2MCwgMCwgezB4YTAsMHhjYSwweDBhLDB4MzIsMHg4MiwweDgwLDB4MTAsMHhiMCwweDQxLDB4MjQsMHgxMSwweDA4LDB4MzEsMHgwMiwweGUyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTQ3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhNSwweDAwLDB4YmIsMHgwMCwweDIyLDB4ZTEgfSB9LAoteyAgMTYsIDB4YTQ4MCwgMCwgezB4MjgsMHhiMCwweDAyLDB4MmMsMHg4MCwweDliLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4NmMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTQ5MCwgMCwgezB4MjIsMHhjMCwweDBiLDB4YjAsMHgwMCwweGVjLDB4MjAsMHhiYiwweDAwLDB4MjYsMHhjMCwweDA4LDB4ODAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTRhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMywweDQwLDB4ZjcsMHgwNCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4YTRiMCwgMCwgezB4NGUsMHhiMCwweDIzLDB4MmUsMHgyMCwweGViLDB4MDAsMHgxZSwweGMwLDB4MGMsMHhiMCwweDAxLDB4MmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YTRjMCwgMCwgezB4MzYsMHhjMCwweDFmLDB4YjAsMHgwMywweGUxLDB4NDAsMHhmYiwweDAwLDB4MzYsMHg5OCwweDBjLDB4OTAsMHgwMywweGQwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTRkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNiwweDA0LDB4ZmYsMHgwMiwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTRlMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZmUsMHgwMCwweGVmLDB4MDIsMHgzZCwweGMwLDB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTRmMCwgMCwgezB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNCwweDAwLDB4M2IsMHg0MCwweDBmLDB4YTAsMHgxMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTUwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYSwweDIwLDB4ZWIsMHgxMCwweDM2LDB4YzAgfSB9LAoteyAgMTYsIDB4YTUxMCwgMCwgezB4MGQsMHhiMCwweDA3LDB4ZWMsMHgyMCwweGRiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHhiMCwweDAyLDB4NmMsMHgyMCwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4YTUyMCwgMCwgezB4M2UsMHhjMSwweDBkLDB4YjAsMHgwMywweGUwLDB4MjAsMHhkYiwweGEwLDB4MzIsMHg5MCwweDRjLDB4YjAsMHgwYiwweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YTUzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyZCwweDAwLDB4OGYsMHg4MCwweDIwLDB4YzEgfSB9LAoteyAgMTYsIDB4YTU0MCwgMCwgezB4MDgsMHg3MCwweDEyLDB4Y2YsMHgwMCwweDhmLDB4MDAsMHhhMywweGMwLDB4MGQsMHhmMCwweDAyLDB4M2MsMHgwMCwweDhmLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU1MCwgMCwgezB4MzcsMHhjMCwweDg4LDB4ZjAsMHgwMiwweGVjLDB4MDAsMHg4OCwweDAwLDB4MjAsMHg0MCwweDA4LDB4ODAsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YTMsMHg4MCwweDI0LDB4ODEgfSB9LAoteyAgMTYsIDB4YTU3MCwgMCwgezB4MDksMHgzMCwweDA2LDB4Y2MsMHg0MCwweDkzLDB4MDAsMHgyOCwweGMxLDB4MDgsMHhiMCwweDAyLDB4Y2YsMHg0MCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTU4MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzAsMHgwMiwweGNkLDB4MDAsMHg5MCwweDQwLDB4NjAsMHg0MCwweDI4LDB4MTAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTU5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgwZSwweDAwLDB4ODcsMHg4MCwweDIzLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTVhMCwgMCwgezB4NDgsMHg3OSwweDAyLDB4ZGUsMHg0MSwweDk3LDB4ODAsMHgyOSwweGUwLDB4MTksMHg3OCwweDA2LDB4OWUsMHgwMCwweDg3LDB4ODAgfSB9LAoteyAgMTYsIDB4YTViMCwgMCwgezB4MjUsMHhlMCwweDA4LDB4NzgsMHgwMiwweGQyLDB4MDMsMHg4MywweDgwLDB4MjEsMHhhMCwweDA4LDB4NjgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTVjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YTMsMHgwMCwweDM0LDB4YzAgfSB9LAoteyAgMTYsIDB4YTVkMCwgMCwgezB4MGQsMHgzMCwweDQyLDB4Y2MsMHgwMSwweGQzLDB4MTAsMHgzYSwweGM1LDB4MGMsMHgzOSwweDAzLDB4Y2MsMHgwMCwweGUzLDB4MDQgfSB9LAoteyAgMTYsIDB4YTVlMCwgMCwgezB4M2MsMHhjNCwweDBkLDB4MzAsMHgwMywweGNlLDB4MDAsMHhkMCwweDAwLDB4MzAsMHg0MCwweDBjLDB4MzAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YTVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDAwLDB4ZjcsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTYwMCwgMCwgezB4MWYsMHhmMCwweDUzLDB4ZmMsMHgwMCwweGVmLDB4MDgsMHgzNywweGQxLDB4MGYsMHhmMCwweDgzLDB4N2MsMHgwMCwweGY3LDB4NDAgfSB9LAoteyAgMTYsIDB4YTYxMCwgMCwgezB4M2YsMHhjMSwweDBmLDB4ZjEsMHgwMywweGQwLDB4MDAsMHhmZiwweDAwLDB4YmYsMHg4NCwweDBmLDB4YzgsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YTYyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTYzMCwgMCwgezB4MmMsMHhiZSwweDgzLDB4ZWMsMHgwMCwweGViLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhiNCwweDAzLDB4ZWQsMHgyMCwweGZiLDB4MTAgfSB9LAoteyAgMTYsIDB4YTY0MCwgMCwgezB4YjYsMHhkMiwweDBmLDB4YjQsMHg4MywweGVjLDB4MDAsMHhkYiwweDgwLDB4MzYsMHhjMSwweDBjLDB4OTAsMHgyMSwweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTY1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5NCwweDAwLDB4YjcsMHgwMCwweDJmLDB4YzAgfSB9LAoteyAgMTYsIDB4YTY2MCwgMCwgezB4MDgsMHgzNiwweDAyLDB4MGMsMHgwOCwweDg3LDB4MzAsMHgyZCwweGQ5LDB4OGIsMHg3MiwweDg2LDB4ZGQsMHgwMCwweGIzLDB4MjAgfSB9LAoteyAgMTYsIDB4YTY3MCwgMCwgezB4MjEsMHhjOCwweDBiLDB4NzQsMHgwMiwweGQwLDB4MDIsMHg4NCwweDAwLDB4YTAsMHgwMCwweDI4LDB4MjAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTY4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDAwLDB4YjcsMHg4MCwweDJkLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTY5MCwgMCwgezB4MDgsMHg3YSwweDAyLDB4OWQsMHgwMCwweGE3LDB4YTAsMHgyZCwweGUwLDB4MGIsMHg3OCwweDAyLDB4OWUsMHg4MCwweGE3LDB4ODAgfSB9LAoteyAgMTYsIDB4YTZhMCwgMCwgezB4MjEsMHhlNCwweDA4LDB4N2EsMHgyNiwweDllLDB4MTgsMHg4MywweDA0LDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwYSwweDcwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTZiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAgfSB9LAoteyAgMTYsIDB4YTZjMCwgMCwgezB4NTgsMHgzMCwweDEyLDB4MGUsMHg4MiwweDgzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMSwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YTZkMCwgMCwgezB4MjAsMHhjMSwweDBiLDB4MzAsMHgwMiwweGMwLDB4MDgsMHg4OCwweGQyLDB4MjAsMHgyMCwweDA4LDB4MDAsMHgwMiwweDUyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTZlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDYwLDB4ZmEsMHgwMCwweDNmLDB4ODIgfSB9LAoteyAgMTYsIDB4YTZmMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZmEsMHgwMCwweGFhLDB4MDAsMHgxZSwweDgwLDB4OGYsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGYyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTcwMCwgMCwgezB4MzIsMHg4MCwweDFmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkYSwweDAwLDB4MzYsMHg4OCwweGFjLDB4ZTAsMHgwMywweDdhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTcxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MjAgfSB9LAoteyAgMTYsIDB4YTcyMCwgMCwgezB4NGYsMHg4MCwweDAzLDB4ZTEsMHgwMCwweGYwLDB4MDAsMHgzYywweDAwLDB4MGIsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDIgfSB9LAoteyAgMTYsIDB4YTczMCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHg0MywweGYxLDB4MDAsMHhmYywweDBhLDB4M2QsMHgwMCwweDBmLDB4YzAsMHgwMywweDkyLDB4MDAgfSB9LAoteyAgMTYsIDB4YTc0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNiwweDAwLDB4YzksMHg5MCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YTc1MCwgMCwgezB4MGYsMHg5MiwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzMiwweDQwLDB4MDQsMHg5MCwweDA3LDB4ZTcsMHgwMCwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4YTc2MCwgMCwgezB4MzAsMHg0MCwweDBjLDB4OTAsMHg0MywweGU0LDB4MDksMHhkOSwweDgwLDB4MjIsMHg0MCwweDJjLDB4MTAsMHgwYiwweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YTc3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDYwLDB4ODksMHhjMCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4YTc4MCwgMCwgezB4MGIsMHg5OCwweDI2LDB4YzUsMHg4MCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MjgsMHg5MCwweDEyLDB4ZTcsMHgxMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTc5MCwgMCwgezB4MzYsMHg0MCwweDI4LDB4OTAsMHgxMiwweGM1LDB4ODMsMHhjOSwweDgwLDB4YjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YTdhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4ODksMHg0MCwweDJlLDB4NDEgfSB9LAoteyAgMTYsIDB4YTdiMCwgMCwgezB4NGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAsMHhhMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4ZTUsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTdjMCwgMCwgezB4ZTIsMHg0MSwweDA4LDB4OTAsMHg0MiwweGU0LDB4MDAsMHg5ZCwweDUwLDB4YWIsMHg0YSwweDA4LDB4ZDAsMHgyNiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YTdkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDgyLDB4ODEsMHgyMCwweDJjLDB4NTAgfSB9LAoteyAgMTYsIDB4YTdlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4ZTQsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUwLDB4NGEsMHgxNCwweDMyLDB4YzQsMHgwMCwweGIxLDB4NDAgfSB9LAoteyAgMTYsIDB4YTdmMCwgMCwgezB4MjQsMHg1MSwweDE4LDB4MTQsMHgxMiwweGQ0LDB4MDAsMHg4NSwweDQwLDB4MmQsMHg0MCwweDA4LDB4NTAsMHgwNiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YTgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTgxMCwgMCwgezB4MGYsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGQ4LDB4MDAsMHgzMiwweDAwLDB4MGEsMHg4MCwweDAyLDB4ZTAsMHgxMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTgyMCwgMCwgezB4MzIsMHgwMCwweDA0LDB4ODAsMHgwMywweGUwLDB4MDAsMHhkOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4YzAsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YTgzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NDEgfSB9LAoteyAgMTYsIDB4YTg0MCwgMCwgezB4MGYsMHg5NCwweDAzLDB4ZjUsMHgwMCwweGY5LDB4NDAsMHgzZSwweDUwLDB4MGQsMHg5NCwweDAzLDB4ZTUsMHgxMCwweGY5LDB4NDAgfSB9LAoteyAgMTYsIDB4YTg1MCwgMCwgezB4M2UsMHg1MCwweDRmLDB4OTQsMHgwMywweGM1LDB4MDAsMHhlOSwweDQxLDB4MzYsMHg1MCwweDBmLDB4OTQsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YTg2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDAwLDB4ZmQsMHhhOCwweDNhLDB4NDAgfSB9LAoteyAgMTYsIDB4YTg3MCwgMCwgezB4MGMsMHhkOCwweDIzLDB4MzYsMHgwMCwweGU5LDB4YTAsMHgzZSwweDc4LDB4MGYsMHg5ZSwweDAzLDB4YjYsMHg4MCwweGNkLDB4ZTIgfSB9LAoteyAgMTYsIDB4YTg4MCwgMCwgezB4MzIsMHg2OCwweDBjLDB4OWIsMHgwMywweDM2LDB4ODIsMHg0ZCwweGEwLDB4MzcsMHg2OCwweDhjLDB4OTgsMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YTg5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlYiwweGEwLDB4YjgsMHg0MCwweDIwLDB4MjAgfSB9LAoteyAgMTYsIDB4YThhMCwgMCwgezB4MDgsMHg4NSwweDAyLDB4MjEsMHg1MSwweDg4LDB4YzAsMHgyZSwweDI5LDB4MGIsMHg4ZSwweDAyLDB4ZTEsMHgwMCwweGQ4LDB4ZTAgfSB9LAoteyAgMTYsIDB4YThiMCwgMCwgezB4MjIsMHgzMiwweDBkLDB4OGQsMHgyMywweDYxLDB4NDgsMHg5OCwweGQ0LDB4YTIsMHgxMCwweDI4LDB4ODQsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YThjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjMsMHgwMCwweDJhLDB4NGEgfSB9LAoteyAgMTYsIDB4YThkMCwgMCwgezB4MjgsMHgxMCwweDRlLDB4YTQsMHgwOCwweGExLDB4NjgsMHgyOCwweDQ0LDB4MGIsMHgxNCwweDAyLDB4YzUsMHgwMCwweDgxLDB4NDAgfSB9LAoteyAgMTYsIDB4YThlMCwgMCwgezB4YTAsMHg1MCwweDA4LDB4MTAsMHgwMiwweDA0LDB4MDIsMHg5MSwweDJhLDB4MjAsMHg0NCwweDI4LDB4MTQsMHg0YSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YThmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhYywweDgwLDB4YjksMHgwMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YTkwMCwgMCwgezB4NDgsMHg5MCwweDA2LDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDIyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTkxMCwgMCwgezB4MjIsMHg0MCwweDA5LDB4MTAsMHgwMiwweDY0LDB4MDIsMHg5OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4YTkyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDM4LDB4NTggfSB9LAoteyAgMTYsIDB4YTkzMCwgMCwgezB4MGMsMHg5MCwweDUzLDB4ODQsMHgxNCwweGE5LDB4MDQsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4YTk0MCwgMCwgezB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDQsMHhkOSwweDAwLDB4YjYsMHg0MCwweDRjLDB4OTAsMHgwYiwweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4YTk1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMiwweDNlLDB4NDkgfSB9LAoteyAgMTYsIDB4YTk2MCwgMCwgezB4MGYsMHgxMCwweDQzLDB4NjQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGYxLDB4MDIgfSB9LAoteyAgMTYsIDB4YTk3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4MDIsMHhlOSwweDA0LDB4M2MsMHg0MCwweDBmLDB4MWMsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTk4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDgwLDB4YzgsMHgyMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YTk5MCwgMCwgezB4OGMsMHg4MCwweDBiLDB4MjAsMHgwMCwweGU4LDB4MDIsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4YTAsMHg4MiwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YTlhMCwgMCwgezB4NmMsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MTAsMHhjOCwweDAwLDB4MzIsMHgwMiwweDBjLDB4ODAsMHgwMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YTliMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzOCwweDAwLDB4ODYsMHgwMCwweDJlLDB4ODAgfSB9LAoteyAgMTYsIDB4YTljMCwgMCwgezB4NjgsMHhhOCwweDgwLDB4M2EsMHgwMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZjgsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTlkMCwgMCwgezB4MmUsMHg4MCwweDBiLDB4YTAsMHgwYSwweDNhLDB4MDAsMHg4ZSwweDEwLDB4MjMsMHg4MCwweDA4LDB4YTAsMHgwMywweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YTllMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0ZCwweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YTlmMCwgMCwgezB4MDgsMHgzOCwweDAwLDB4MGMsMHg2MCwweDIzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHg0MCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWEwMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDIsMHg4YSwweDgwLDB4YTAsMHhlMCwweDI4LDB4MzAsMHgwYSwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWExMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxNiwweDIwLDB4ODcsMHgwMiwweDJkLDB4YzEgfSB9LAoteyAgMTYsIDB4YWEyMCwgMCwgezB4NDgsMHg3MCwweDEyLDB4N2MsMHgwMCwweGE3LDB4MjAsMHgyZCwweGM5LDB4MGIsMHg3MiwweDAwLDB4ZGMsMHgwMCwweDg3LDB4MDggfSB9LAoteyAgMTYsIDB4YWEzMCwgMCwgezB4MmQsMHhjNCwweDFiLDB4MzIsMHgwMiwweDFkLDB4MDEsMHg4NywweDQyLDB4MjEsMHhjMiwweDA4LDB4NzAsMHgwMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWE0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAyLDB4YzcsMHg4MCwweDNkLDB4ZWMgfSB9LAoteyAgMTYsIDB4YWE1MCwgMCwgezB4MGMsMHg1OCwweDAzLDB4MWUsMHgwMCwweGU3LDB4ODAsMHgzZCwweGVjLDB4MGYsMHg3ZiwweDAzLDB4OTYsMHgwMCwweGM3LDB4ODAgfSB9LAoteyAgMTYsIDB4YWE2MCwgMCwgezB4MmQsMHhlMiwweDA3LDB4NzksMHgwMywweDBhLDB4MDYsMHhjMywweDgwLDB4MzAsMHgyMCwweDhjLDB4MzgsMHgwMywweDZhLDB4MDIgfSB9LAoteyAgMTYsIDB4YWE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YWE4MCwgMCwgezB4MGYsMHgxMCwweDQzLDB4OGMsMHgwMCwweGRiLDB4MzgsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4Y2MsMHgwNCwweGZiLDB4NDQgfSB9LAoteyAgMTYsIDB4YWE5MCwgMCwgezB4M2UsMHhjMCwweDhmLDB4YjYsMHgxMywweGVjLDB4MDIsMHhmZiwweDAyLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YWFhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmYSwweDAwLDB4ZmYsMHg4MCwweDMxLDB4ZTMgfSB9LAoteyAgMTYsIDB4YWFiMCwgMCwgezB4MGUsMHhmOCwweDIzLDB4ZmUsMHgwMiwweGRmLDB4ODAsMHhiNywweGUyLDB4MGUsMHhmOCwweDAzLDB4N2UsMHgwMCwweDZkLDB4ZDAgfSB9LAoteyAgMTYsIDB4YWFjMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHg5YiwweDc2LDB4YzAsMHhkZiwweDg0LDB4YjMsMHhlMCwweDA0LDB4ZjgsMHgwMywweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWFkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5MCwweDQwLDB4YjcsMHgwMiwweDIxLDB4YzQgfSB9LAoteyAgMTYsIDB4YWFlMCwgMCwgezB4MDgsMHg3YiwweDQyLDB4ZGMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGM0LDB4MGIsMHgzMCwweDAwLDB4MTAsMHg4MCwweDhkLDB4MDAgfSB9LAoteyAgMTYsIDB4YWFmMCwgMCwgezB4MjMsMHhjMCwweDBkLDB4ZjIsMHgwMiwweDA0LDB4NDIsMHg4ZiwweDAwLDB4MjksMHhjOCwweDI4LDB4NzAsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YWIwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NCwweDAwLDB4YjYsMHgwMCwweDIzLDB4YzAgfSB9LAoteyAgMTYsIDB4YWIxMCwgMCwgezB4MGEsMHg3MiwweDAyLDB4OGMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MGEsMHgzMCwweDAyLDB4MDQsMHgwMSwweGE3LDB4MDIgfSB9LAoteyAgMTYsIDB4YWIyMCwgMCwgezB4MjEsMHhjMCwweDA4LDB4NzAsMHg0MiwweDAwLDB4OGEsMHg4NywweDAwLDB4MjEsMHhjMCwweDI4LDB4NzAsMHgwMiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWIzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjNSwweDAwLDB4YjAsMHgwMCwweGEwLDB4ZDAgfSB9LAoteyAgMTYsIDB4YWI0MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4YzksMHg0MiwweDhiLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDIyLDB4MDQsMHgwMCwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWI1MCwgMCwgezB4YTAsMHhjMCwweDQ5LDB4MzAsMHgwMiwweDQ1LDB4NDAsMHg5MywweGMwLDB4YTgsMHhkNCwweDAwLDB4MzUsMHgwMiwweGM4LDB4MDQgfSB9LAoteyAgMTYsIDB4YWI2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4YmIsMHgwMCwweDMxLDB4YzAgfSB9LAoteyAgMTYsIDB4YWI3MCwgMCwgezB4MGUsMHhiMCwweDIzLDB4Y2QsMHgwMCwweGRmLDB4MDAsMHgzNywweGMwLDB4MGUsMHhmMCwweDAxLDB4NjgsMHgwMCwweGUzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWI4MCwgMCwgezB4MzMsMHhjMCwweDFjLDB4ZjAsMHgwMywweDQ1LDB4MDAsMHhkYSwweGM4LDB4OTIsMHhkNCwweDJjLDB4YjQsMHgwMywweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YWI5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlNSwweDIwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YWJhMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4NGYsMHhiMCwweDAzLDB4YWQsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YWJiMCwgMCwgezB4N2UsMHhjMCwweDFmLDB4MzAsMHgwMywweGE0LDB4ODAsMHhlOSwweDIwLDB4M2MsMHhjMCwweDBmLDB4MzIsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWJjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4YzcsMHgwMCwweDMzLDB4YzIgfSB9LAoteyAgMTYsIDB4YWJkMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4M2UsMHgyMCwweGRiLDB4MDAsMHgxMywweGMwLDB4MGMsMHg3MCwweDAzLDB4M2MsMHg4MCwweGVmLDB4MDQgfSB9LAoteyAgMTYsIDB4YWJlMCwgMCwgezB4NzMsMHhjMSwweDBmLDB4ZjAsMHgyMiwweDMwLDB4MDAsMHhjNiwweDAwLDB4YjIsMHhjMCwweDBjLDB4ZjAsMHgwMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4YWJmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg2OSwweDAwLDB4OGIsMHg0NCwweGEyLDB4YzEgfSB9LAoteyAgMTYsIDB4YWMwMCwgMCwgezB4ODgsMHhiMCwweDAzLDB4NmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MjgsMHhiMCwweDBhLDB4MmQsMHgwMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4YWMxMCwgMCwgezB4NjIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDI2LDB4MDIsMHg4YiwweDgwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMywweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YWMyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyOCwweDAxLDB4OGEsMHgwOCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YWMzMCwgMCwgezB4MDgsMHhiMiwweDAyLDB4NmMsMHg0MCwweDliLDB4MDAsMHgyOCwweGMwLDB4NDgsMHhiMCwweDE2LDB4MjksMHgwNCwweGI5LDB4MDEgfSB9LAoteyAgMTYsIDB4YWM0MCwgMCwgezB4MjIsMHhjMCwweDQ5LDB4YjAsMHgwNiwweGFlLDB4MDksMHg4YiwweDgwLDB4MjIsMHhlMCwweDQ4LDB4YjAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWM1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwMCwweDAyLDB4ODIsMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YWM2MCwgMCwgezB4ODgsMHhiMCwweDAyLDB4NDQsMHgwMCwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MDgsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4YWM3MCwgMCwgezB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDhjLDB4MDAsMHg4MywweDgwLDB4MjAsMHhlMCwweDA4LDB4MzAsMHgwYSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YWM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4Y2EsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4YWM5MCwgMCwgezB4MGMsMHhiMiwweDAzLDB4MmMsMHgwMCwweGRmLDB4MDAsMHgzYiwweGMwLDB4NGMsMHhmNSwweDEzLDB4MmMsMHgwNCwweGVmLDB4MDAgfSB9LAoteyAgMTYsIDB4YWNhMCwgMCwgezB4YTMsMHhjMCwweDBkLDB4ZjAsMHgwMywweGE4LDB4NDAsMHhjYiwweDAwLDB4YjIsMHgwMCwweDJjLDB4YjAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4YWNiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmMCwweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YWNjMCwgMCwgezB4MGYsMHhiMSwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YWNkMCwgMCwgezB4M2YsMHhjMCwweDA3LDB4ZjAsMHgwYiwweDdjLDB4MDgsMHhmZiwweDAxLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGE4LDB4MDYgfSB9LAoteyAgMTYsIDB4YWNlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweGM1LDB4ZWQsMHgzMywweDNiLDB4Y2MgfSB9LAoteyAgMTYsIDB4YWNmMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4MzAsMHg0MCwweGZmLDB4MjUsMHgzZiwweGNjLDB4MGMsMHhmMywweDgzLDB4M2MsMHhkMCwweGRmLDB4NDggfSB9LAoteyAgMTYsIDB4YWQwMCwgMCwgezB4MzcsMHgzMCwweDRjLDB4ZjMsMHgwMywweGZkLDB4ODAsMHhjZiwweDI4LDB4MzMsMHhkOCwweDBjLDB4ZjEsMHgwMywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWQxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlYywweGQwLDB4YmIsMHgzMSwweDIwLDB4Y2MgfSB9LAoteyAgMTYsIDB4YWQyMCwgMCwgezB4ODgsMHhmMywweDQyLDB4MjAsMHg1MCwweGJmLDB4OTAsMHgyZiwweGM0LDB4MGEsMHhmNiwweDAyLDB4N2QsMHhjMCwweDhmLDB4NDAgfSB9LAoteyAgMTYsIDB4YWQzMCwgMCwgezB4MjYsMHg0MCwweDhmLDB4ZjYsMHgwMiwweGZkLDB4MDAsMHhmZiwweDA4LDB4MzksMHhjOCwweDA4LDB4ZjYsMHgwMiwweGEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWQ0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDgwLDB4YTEsMHgyMCwweDI4LDB4YzkgfSB9LAoteyAgMTYsIDB4YWQ1MCwgMCwgezB4MDgsMHgzMCwweDlhLDB4MDAsMHgwOSwweGIzLDB4MDAsMHgyYywweGMwLDB4MjAsMHgzMCwweDAyLDB4NGMsMHg5MCwweDgzLDB4MjAgfSB9LAoteyAgMTYsIDB4YWQ2MCwgMCwgezB4MDIsMHgwOCwweDBiLDB4MzMsMHgxMiwweGNkLDB4ODAsMHg5MywweDIwLDB4MjQsMHhkOCwweDA4LDB4MzQsMHgyMiwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4YWQ3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhhZSwweDAwLDB4YmIsMHgxMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YWQ4MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MjYsMHgwMSwweDNiLDB4MDEsMHg2ZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4NGMsMHgwOCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YWQ5MCwgMCwgezB4YTIsMHg4OSwweDBiLDB4YjAsMHgwMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4NmEsMHhjMSwweDI4LDB4YjAsMHgwMiwweGIwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWRhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHg2ZSwweDAwLDB4ZTgsMHhjMSwweDNhLDB4YzAgfSB9LAoteyAgMTYsIDB4YWRiMCwgMCwgezB4MmMsMHhiMCwweDQzLDB4MjYsMHgwMCwweGZiLDB4MDYsMHgzZSwweGMxLDB4MGMsMHhiMCwweDBiLDB4MmMsMHgwMiwweGNiLDB4MDAgfSB9LAoteyAgMTYsIDB4YWRjMCwgMCwgezB4MzQsMHgyMiwweDlmLDB4YjAsMHg0MywweGVjLDB4MDAsMHg5YiwweDAyLDB4MzYsMHhjMSwweDhjLDB4YjAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWRkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiYywweDAwLDB4ZmMsMHg4MCwweDNkLDB4ZDAgfSB9LAoteyAgMTYsIDB4YWRlMCwgMCwgezB4MmYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZiLDB4MDAsMHgzZCwweGMwLDB4MDcsMHgzMCwweDAzLDB4YmMsMHgwMCwweGVmLDB4MDQgfSB9LAoteyAgMTYsIDB4YWRmMCwgMCwgezB4M2YsMHhlMCwweDVlLDB4YjAsMHgwMSwweGZjLDB4MDAsMHhmZiwweDAwLDB4MWIsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWUwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4Y2IsMHgwMSwweDNlLDB4YzkgfSB9LAoteyAgMTYsIDB4YWUxMCwgMCwgezB4MGMsMHhiMCwweDE3LDB4MjAsMHg4NCwweGViLDB4MDAsMHhiMiwweGMxLDB4MGQsMHhiMCwweDAzLDB4NmMsMHgwMCwweGMzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWUyMCwgMCwgezB4MzIsMHg1MCwweDBmLDB4YjAsMHgwMywweDBjLDB4NDAsMHhjMywweDAwLDB4N2UsMHhjMCwweDBjLDB4MzAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YWUzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4OGEsMHg1OCwweDJlLDB4ZTAgfSB9LAoteyAgMTYsIDB4YWU0MCwgMCwgezB4NDgsMHhmMCwweDAyLDB4MmQsMHgwMCwweGVmLDB4MDEsMHgyMywweGMwLDB4MDgsMHhmMCwweDIyLDB4M2MsMHgwNCwweDhmLDB4NjAgfSB9LAoteyAgMTYsIDB4YWU1MCwgMCwgezB4MzYsMHg1NCwweDBiLDB4ZjAsMHgwYSwweDNkLDB4NDAsMHg4ZiwweDAwLDB4MmYsMHhjMCwweDA4LDB4ZjAsMHgwMywweDcyLDB4MDAgfSB9LAoteyAgMTYsIDB4YWU2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0MCwweDAwLDB4ODksMHg4MCwweDJjLDB4MTAgfSB9LAoteyAgMTYsIDB4YWU3MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4NDksMHgwMCwweGEzLDB4YTAsMHgyNCwweGMwLDB4MDksMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4YzkgfSB9LAoteyAgMTYsIDB4YWU4MCwgMCwgezB4MjAsMHg5MCwweDQyLDB4MzAsMHgxMiwweDRkLDB4MDAsMHg4MywweDAwLDB4NmEsMHhjMCwweDA5LDB4MzAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWU5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxNiwweDAwLDB4ODUsMHg4MCwweDZkLDB4NjIgfSB9LAoteyAgMTYsIDB4YWVhMCwgMCwgezB4MDgsMHg3ZSwweDAyLDB4NTYsMHg0MCwweDI3LDB4ODAsMHgyNSwweGUwLDB4MTksMHg3OCwweDA2LDB4MGUsMHgwMCwweDgzLDB4ODAgfSB9LAoteyAgMTYsIDB4YWViMCwgMCwgezB4NjEsMHhhMCwweDBiLDB4NzgsMHgwMiwweDRlLDB4MDAsMHg4NywweDgyLDB4NmQsMHhlMCwweDA5LDB4NzksMHgwMiwweDQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4YWVjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDAyLDB4YzMsMHg2MSwweDNjLDB4ODggfSB9LAoteyAgMTYsIDB4YWVkMCwgMCwgezB4MmMsMHhiYSwweDEyLDB4NDksMHgxMCwweGUzLDB4MmMsMHgzNiwweGMwLDB4MGQsMHgzMCwweDUzLDB4NGMsMHg0NCwweGMzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWVlMCwgMCwgezB4MjAsMHgwMSwweDBmLDB4MzEsMHgwMywweDRjLDB4MDAsMHhjMywweDAxLDB4M2MsMHhjMCwweDJkLDB4YjEsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YWVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YWYwMCwgMCwgezB4NGYsMHhmMSwweDA5LDB4YjAsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGUsMHhmNCwweDAxLDB4ZmQsMHgyNCwweGZmLDB4NDAgfSB9LAoteyAgMTYsIDB4YWYxMCwgMCwgezB4YmYsMHhjMCwweDA3LDB4ZjAsMHgwMywweGJjLDB4MDAsMHg2ZiwweDEwLDB4M2YsMHhjNCwweDFlLDB4ZjEsMHg4MywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YWYyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhjNCwweDAwLDB4ZTgsMHgwNCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YWYzMCwgMCwgezB4MGMsMHhiNiwweDAzLDB4ZTgsMHgwMiwweGNiLDB4MDAsMHgzNiwweGNhLDB4MGYsMHhiNSwweDAzLDB4YWQsMHgwMCwweGZiLDB4MjAgfSB9LAoteyAgMTYsIDB4YWY0MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4YjMsMHgwMywweGVjLDB4ODAsMHhmYiwweGE4LDB4MzIsMHhjNiwweDhjLDB4YjYsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YWY1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5NCwweDAyLDB4ZTYsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWY2MCwgMCwgezB4MDgsMHg3MywweDAyLDB4ZGMsMHgwMCwweDg3LDB4NzAsMHgyZCwweGQwLDB4MGIsMHhmMCwweDAyLDB4MWMsMHg4NCwweGI3LDB4MjAgfSB9LAoteyAgMTYsIDB4YWY3MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzAsMHg4MiwweGRkLDB4MjQsMHhiNywweDQwLDB4MzQsMHhjOSwweDI4LDB4NzIsMHg4MiwweDkyLDB4MDQgfSB9LAoteyAgMTYsIDB4YWY4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHhiZSwweDAyLDB4YWMsMHg4MCwweGExLDB4MjAgfSB9LAoteyAgMTYsIDB4YWY5MCwgMCwgezB4MDgsMHg3OSwweDAwLDB4Y2UsMHgwNCwweDg3LDB4ODAsMHg2NSwweGUwLDB4MGIsMHg3YSwweDAyLDB4OWUsMHgwMCwweGI3LDB4OTAgfSB9LAoteyAgMTYsIDB4YWZhMCwgMCwgezB4NmQsMHhhMCwweDBiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YWZiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhlZCwweDgyLDB4YWIsMHhlMCwweDIwLDB4ZTQgfSB9LAoteyAgMTYsIDB4YWZjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4ZWUsMHgwNCwweDgzLDB4MDAsMHgyYywweGMxLDB4MWIsMHgzMCwweDAyLDB4MGMsMHgwOCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YWZkMCwgMCwgezB4NjQsMHhmNiwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjYsMHhjMCwweDA4LDB4MzAsMHgwMiwweDkyLDB4MDQgfSB9LAoteyAgMTYsIDB4YWZlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDgwLDB4ZWUsMHg0OSwweDMxLDB4YTAgfSB9LAoteyAgMTYsIDB4YWZmMCwgMCwgezB4MmMsMHhhMCwweDAzLDB4ZmEsMHgwMCwweGNhLDB4MDIsMHgzNiwweDgwLDB4MGYsMHhhMCwweDAzLDB4YTgsMHgwMCwweGZhLDB4MDIgfSB9LAoteyAgMTYsIDB4YjAwMCwgMCwgezB4M2YsMHg5MCwweDBmLDB4YTAsMHg2MywweGU4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgyMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjAxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDBhLDB4ZTgsMHgwMCwweDNlLDB4MDggfSB9LAoteyAgMTYsIDB4YjAyMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTMsMHg1MCwweGYwLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjAzMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDEsMHhmOCwweDAxLDB4N2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YjA0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDQwLDB4YzksMHhhMSwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YjA1MCwgMCwgezB4MjAsMHgxMSwweDAxLDB4YTYsMHg0MCwweGM5LDB4ODQsMHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4NDQsMHgwMCwweDQxLDB4MDAgfSB9LAoteyAgMTYsIDB4YjA2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTAsMHgwYiwweDI0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDRjLDB4MTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YjA3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4ODksMHg4MiwweGEyLDB4NDAgfSB9LAoteyAgMTYsIDB4YjA4MCwgMCwgezB4MDgsMHg5YywweDAyLDB4MjUsMHgwMCwweDg5LDB4YzgsMHgyMiwweDQwLDB4MDgsMHg5MCwweDQyLDB4MjQsMHgwMCwweDg5LDB4MjAgfSB9LAoteyAgMTYsIDB4YjA5MCwgMCwgezB4MjIsMHg2MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MTAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMywweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjBhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHgwNCwweDIyLDB4Y2EgfSB9LAoteyAgMTYsIDB4YjBiMCwgMCwgezB4MGEsMHg5MCwweDBhLDB4MjUsMHgwMiwweDg5LDB4MjAsMHgyMCwweDQwLDB4MjgsMHgxMCwweDAyLDB4NjQsMHgwMSwweGE5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjBjMCwgMCwgezB4MjIsMHg0YiwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDEsMHhiOSwweDAwLDB4MmUsMHg0MSwweDI4LDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjBkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDkwLDB4ODEsMHhhMCwweDIwLDB4NDggfSB9LAoteyAgMTYsIDB4YjBlMCwgMCwgezB4MGEsMHgzMiwweDAyLDB4MDQsMHg4MCwweDgxLDB4MDAsMHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDQsMHhkMCwweGExLDB4MjAgfSB9LAoteyAgMTYsIDB4YjBmMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4MTEsMHgwMiwweDA2LDB4MDAsMHhiMSwweDMxLDB4MmMsMHg0OCwweDA4LDB4MTQsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQyLDB4YzgsMHg1NCwweDMyLDB4MTQgfSB9LAoteyAgMTYsIDB4YjExMCwgMCwgezB4MGUsMHg4NSwweDAzLDB4MjEsMHg0NCwweGM4LDB4MjgsMHhiMiwweDFhLDB4NGMsMHg4NiwweDkzLDB4NjEsMHgxNCwweGU4LDB4NTAgfSB9LAoteyAgMTYsIDB4YjEyMCwgMCwgezB4MjIsMHgxNCwweDBmLDB4ODYsMHg4MywweDIxLDB4NDAsMHhmMCwweDQwLDB4MWUsMHgxNCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YjEzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHg3NCwweDQ0LDB4ZjUsMHgxMCwweDNmLDB4NDQgfSB9LAoteyAgMTYsIDB4YjE0MCwgMCwgezB4MGQsMHg5MSwweDAzLDB4NzQsMHg0MCwweGY5LDB4MDAsMHgzZSwweDQ4LDB4MGIsMHg5MiwweDAzLDB4ZTQsMHhjMiwweGQ5LDB4MTAgfSB9LAoteyAgMTYsIDB4YjE1MCwgMCwgezB4YmYsMHg0MCwweDBmLDB4OTIsMHgwMywweGU1LDB4MDQsMHhmOSwweDMwLDB4M2UsMHg0NCwweDBmLDB4OTQsMHg0MywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YjE2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDIyLDB4Y2QsMHhhMSwweDMzLDB4NjEgfSB9LAoteyAgMTYsIDB4YjE3MCwgMCwgezB4MGMsMHhkOCwweGQzLDB4MzQsMHgxMCwweGNkLDB4YTgsMHgzZSwweDYwLDB4OGUsMHg5YywweDkzLDB4YTcsMHgwOCwweGNkLDB4ODAgfSB9LAoteyAgMTYsIDB4YjE4MCwgMCwgezB4MzMsMHg0MCwweDBlLDB4OWEsMHhkMywweDM2LDB4YTAsMHhjOSwweDgwLDB4MzIsMHg2MCwweDBjLDB4OTksMHgwMywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjE5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMywweDg4LDB4OGEsMHhhMCwweDIwLDB4MjggfSB9LAoteyAgMTYsIDB4YjFhMCwgMCwgezB4MDgsMHg4MCwweDIyLDB4MjAsMHgxMiwweDg4LDB4NDAsMHgyYywweDI4LDB4MDgsMHg4YSwweDAyLDB4MjIsMHgwMCwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjFiMCwgMCwgezB4MjIsMHgwMCwweDBiLDB4OGMsMHgwMywweDIxLDB4MDAsMHg4OCwweGQwLDB4YTIsMHgzZSwweDI4LDB4OGQsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4YjFjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjZSwweDIwLDB4YTEsMHg0OCwweDIwLDB4NTIgfSB9LAoteyAgMTYsIDB4YjFkMCwgMCwgezB4MjksMHgxMCwweDAyLDB4MjQsMHgwMywweDgxLDB4MDAsMHgyYywweDUyLDB4MGEsMHgxMCwweDEyLDB4ODUsMHgxMCwweDkxLDB4NDAgfSB9LAoteyAgMTYsIDB4YjFlMCwgMCwgezB4YTQsMHg0MCwweDBhLDB4MTIsMHg4MiwweDQ0LDB4MDAsMHg5MSwweDI4LDB4MjQsMHg0MCwweDI4LDB4MTIsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjFmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDAwLDB4YTksMHgxNCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YjIwMCwgMCwgezB4MDksMHg5MCwweDAyLDB4YTQsMHgwMSwweDg5LDB4MDQsMHgyYywweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDk5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjIxMCwgMCwgezB4MjIsMHg0NCwweDRiLDB4MTAsMHg0MiwweDI0LDB4MTQsMHg5OSwweDAwLDB4MjYsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4YjIyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDQwLDB4ZTksMHg0MCwweGIyLDB4NzggfSB9LAoteyAgMTYsIDB4YjIzMCwgMCwgezB4MGQsMHg5MCwweDBiLDB4MjQsMHgyMiwweGM5LDB4MDMsMHgzZSwweDQxLDB4MGUsMHg5MCwweDAzLDB4YTQsMHgwMiwweGQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjI0MCwgMCwgezB4MTYsMHg1OCwweDA2LDB4OTAsMHgwYiwweDY0LDB4MDIsMHhkOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4YjI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg4NCwweDAwLDB4ZDksMHg4MCwweDNlLDB4NGEgfSB9LAoteyAgMTYsIDB4YjI2MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NjQsMHgyMCwweGY5LDB4MDgsMHgzZSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGUxLDB4MDggfSB9LAoteyAgMTYsIDB4YjI3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhlMSwweDAwLDB4MzgsMHg0MCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA5LDB4ZjAsMHg0MCwweGIwLDB4MTAgfSB9LAoteyAgMTYsIDB4YjI5MCwgMCwgezB4NGMsMHgwMCwweDBiLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzYSwweDAwLDB4MWMsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjJhMCwgMCwgezB4MzYsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjJiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyOCwweDAwLDB4M2UsMHg4OCwweDIzLDB4YTIgfSB9LAoteyAgMTYsIDB4YjJjMCwgMCwgezB4NDgsMHhlMCwweDAwLDB4MTksMHg4MCwweGJlLDB4ODgsMHgyZSwweDgwLDB4MGQsMHhhMCwweDQyLDB4ZTgsMHgwMCwweDhlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjJkMCwgMCwgezB4MjMsMHg5MCwweDA4LDB4YTAsMHgwYSwweDNhLDB4MDAsMHhkYSwweDAwLDB4MzYsMHg4MCwweDBiLDB4YTAsMHgwYSwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjJlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHg4MCwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4YjJmMCwgMCwgezB4MjgsMHgzMCwweGMyLDB4MGYsMHgxMCwweGIzLDB4NDAsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZWMsMHgxMSwweDgzLDB4NDAgfSB9LAoteyAgMTYsIDB4YjMwMCwgMCwgezB4MjgsMHhkMiwweDBhLDB4MzAsMHgwMiwweDBjLDB4YzAsMHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjMxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDAwLDB4YjYsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4YjMyMCwgMCwgezB4MDgsMHgyMCwweGMyLDB4MWMsMHgxMCwweGI1LDB4MDAsMHgyZCwweGM4LDB4MGEsMHg3MiwweDAyLDB4ZGMsMHg0MCwweDg1LDB4MDggfSB9LAoteyAgMTYsIDB4YjMzMCwgMCwgezB4MjksMHhhMiwweDFhLDB4NzIsMHgyMiwweDBjLDB4MDAsMHg5MywweDMwLDB4MDUsMHhjNCwweDBiLDB4MzIsMHgyMiwweDI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjM0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4YjIsMHg4MCwweDMxLDB4MjAgfSB9LAoteyAgMTYsIDB4YjM1MCwgMCwgezB4MGMsMHg1OCwweDAzLDB4MWUsMHgwMCwweGY3LDB4ODAsMHgzOSwweGY4LDB4MGIsMHg3YywweDIyLDB4Y2UsMHg0MCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YjM2MCwgMCwgezB4OWIsMHg2MCwweDJlLDB4M2IsMHgwMywweDFhLDB4MDAsMHhjNywweGE4LDB4MTEsMHhlMCwweDBmLDB4NzgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4YjM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhNCwweDAwLDB4ZmEsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YjM4MCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZTgsMHgwMCwweGZiLDB4MDAsMHgzZSwweGQwLDB4MmQsMHhiNiwweDAzLDB4ZWQsMHgwMiwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YjM5MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4YjAsMHgwNywweGVjLDB4MDAsMHhmYiwweDYwLDB4M2UsMHhjOCwweDBmLDB4YjUsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YjNhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHg4MCwweDMzLDB4YTAgfSB9LAoteyAgMTYsIDB4YjNiMCwgMCwgezB4MGMsMHhmOCwweDBiLDB4MzIsMHg0MCwweGNlLDB4ODEsMHgzNywweGYwLDB4MGMsMHhiYywweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODQgfSB9LAoteyAgMTYsIDB4YjNjMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHg4MywweGU2LDB4MDIsMHhjZiwweDg1LDB4MzMsMHhmMCwweDBjLDB4ZmMsMHgwMywweDAwLDB4MTQgfSB9LAoteyAgMTYsIDB4YjNkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4YmUsMHgwMCwweDM1LDB4YzYgfSB9LAoteyAgMTYsIDB4YjNlMCwgMCwgezB4MjgsMHgzMCwweDAyLDB4MzAsMHg0MCwweDg3LDB4MDAsMHgyMywweGMwLDB4MDgsMHg3YSwweDAyLDB4ZGMsMHgwMCwweGJlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjNmMCwgMCwgezB4MjMsMHhjMCwweDA4LDB4NzAsMHgxMiwweGZlLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjQwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NSwweDIwLDB4YjYsMHgwMCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4YjQxMCwgMCwgezB4MDgsMHgzMSwweDAyLDB4NWMsMHgwMSwweDg3LDB4MDAsMHgyNSwweGMwLDB4MDgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjQyMCwgMCwgezB4MjEsMHhkMCwweDA5LDB4NzAsMHgwMiwweGQ0LDB4MDgsMHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjNCwweDAwLDB4YjAsMHhlMCwweDI0LDB4NjAgfSB9LAoteyAgMTYsIDB4YjQ0MCwgMCwgezB4MDgsMHgyMCwweDA2LDB4NDgsMHgwMSwweDgwLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ1MCwgMCwgezB4MjAsMHg4NCwweDBiLDB4MzAsMHgwMiwweGU4LDB4MDAsMHg5YiwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4YjQ2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4YjksMHhlMCwweDMyLDB4ODAgfSB9LAoteyAgMTYsIDB4YjQ3MCwgMCwgezB4NmMsMHhiMCwweDIzLDB4NmYsMHgwMCwweGMzLDB4MDAsMHgzNywweGMxLDB4M2MsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ4MCwgMCwgezB4YjAsMHhjMCwweDA5LDB4ZjAsMHgwMywweGVjLDB4MTAsMHhkZiwweDAwLDB4NzMsMHhjMCwweDBjLDB4ZjAsMHgwYiwweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDEwLDB4ZjgsMHgwMCwweDNlLDB4NDIgfSB9LAoteyAgMTYsIDB4YjRhMCwgMCwgezB4MGYsMHgyNCwweDAzLDB4YTgsMHg2MCwweGY4LDB4MDAsMHgzYywweGMxLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4NDAgfSB9LAoteyAgMTYsIDB4YjRiMCwgMCwgezB4M2UsMHg4MCwweDA0LDB4YjAsMHgyMywweGUxLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjRjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZWUsMHgwMCwweDNkLDB4MzAgfSB9LAoteyAgMTYsIDB4YjRkMCwgMCwgezB4MGMsMHhjMCwweDAzLDB4MTQsMHgwMCwweGNjLDB4YTAsMHhiMywweGMwLDB4NGMsMHg3MCwweDAzLDB4NWMsMHgxMCwweGRmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjRlMCwgMCwgezB4M2YsMHgwMCwweDBjLDB4ZjAsMHgwMywweGY4LDB4MDAsMHhjZiwweDAwLDB4MjMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDAwLDB4NDAgfSB9LAoteyAgMTYsIDB4YjRmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2NCwweDAwLDB4YmEsMHg4MSwweDJlLDB4NTggfSB9LAoteyAgMTYsIDB4YjUwMCwgMCwgezB4MDgsMHg4OCwweDAyLDB4MjcsMHg4MCwweDg5LDB4MjAsMHgyMiwweGMwLDB4MjgsMHhiMCwweDAyLDB4MmMsMHgwMCwweDg4LDB4ODMgfSB9LAoteyAgMTYsIDB4YjUxMCwgMCwgezB4MmUsMHgyMCwweDA1LDB4YjAsMHg2MiwweGUzLDB4MDAsMHg4YiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMywweDYwLDB4NDAgfSB9LAoteyAgMTYsIDB4YjUyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNiwweDAwLDB4YjksMHg4MSwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4YjUzMCwgMCwgezB4MDgsMHg4YywweDA2LDB4MjYsMHgwMCwweDg4LDB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDE2LDB4NmMsMHgwMCwweDk4LDB4ODggfSB9LAoteyAgMTYsIDB4YjU0MCwgMCwgezB4MmUsMHgyMCwweDA4LDB4YjAsMHgwNCwweGUzLDB4MDEsMHgwYiwweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjU1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4YjAsMHgwMCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YjU2MCwgMCwgezB4MjgsMHgwMCwweDBlLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMiwweDAyLDB4MGMsMHgwMCwweDgwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjU3MCwgMCwgezB4MmUsMHgyMCwweDA5LDB4MzAsMHgwMiwweGM0LDB4MTIsMHg4MywweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmEsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YjU5MCwgMCwgezB4MmMsMHg5MSwweDAzLDB4MjAsMHgwMCwweDhhLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDAzLDB4N2MsMHgwMCwweGQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjVhMCwgMCwgezB4MmUsMHg0MCwweDBjLDB4ZjAsMHgwMywweGUwLDB4ODAsMHhjZiwweDAwLDB4M2IsMHhjMCwweDBjLDB4ZjAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4YjViMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmYywweDAwLDB4ZmMsMHgwMSwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YjVjMCwgMCwgezB4MGYsMHhjMCwweDEzLDB4ZjAsMHgwMCwweGY0LDB4MDAsMHgzZiwweGMxLDB4MGYsMHhmNCwweDIzLDB4ZmMsMHgwOCwweGZjLDB4MDAgfSB9LAoteyAgMTYsIDB4YjVkMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4NDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YjVlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDIwLDB4Y2QsMHgxMCwweDM5LDB4YzggfSB9LAoteyAgMTYsIDB4YjVmMCwgMCwgezB4MGQsMHhjMSwweDAzLDB4M2MsMHg4MCwweGVmLDB4OTAsMHgyMywweGQ4LDB4MGYsMHhmOCwweDAwLDB4ZmUsMHgwMCwweGNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YjYwMCwgMCwgezB4MWYsMHhkMCwweDBmLDB4ZjksMHgwMywweGZmLDB4MDAsMHhlNywweGMwLDB4MzMsMHhjNCwweDBmLDB4ZjAsMHgwMywweGIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjYxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHhmZSwweDAyLDB4ODksMHg0MCwweDIzLDB4ZjAgfSB9LAoteyAgMTYsIDB4YjYyMCwgMCwgezB4MDgsMHg4NSwweDEwLDB4M2MsMHgwMCwweDhiLDB4MDAsMHhhMywweGRjLDB4NGIsMHhiMiwweDgyLDB4ZWMsMHgyMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YjYzMCwgMCwgezB4MjYsMHhjMCwweDRiLDB4YjAsMHgwMiwweGVjLDB4MTAsMHhiOSwweDA0LDB4MmEsMHhjOSwweDBiLDB4YjUsMHg4MCwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjY0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHhjYywweDAwLDB4ODEsMHg2NCwweDI4LDB4YzQgfSB9LAoteyAgMTYsIDB4YjY1MCwgMCwgezB4MDksMHhiMiwweDBhLDB4MGMsMHhmMCwweGEzLDB4MjAsMHgyMCwweGM4LDB4MGIsMHgzMiwweDAyLDB4ZWMsMHgwMiwweDgzLDB4MDggfSB9LAoteyAgMTYsIDB4YjY2MCwgMCwgezB4MmMsMHhjOCwweDA5LDB4MzIsMHgwMiwweGNjLDB4ODAsMHhhYiwweGEwLDB4MjAsMHhjOCwweDBiLDB4MzIsMHgwMCwweGIyLDB4MDEgfSB9LAoteyAgMTYsIDB4YjY3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDEwLDB4ODksMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YjY4MCwgMCwgezB4MDgsMHhiMiwweDEyLDB4MmMsMHgwMiwweDBiLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhiOCwweDAyLDB4ZWMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YjY5MCwgMCwgezB4MjYsMHhjMCwweDRiLDB4YjAsMHg0NiwweGVjLDB4MDAsMHhiOSwweDAwLDB4MGEsMHhjMCwweDBiLDB4YjAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjZhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGQwLDB4MTUsMHhlYywweDEwLDB4YzksMHhlMCwweDNhLDB4YzAgfSB9LAoteyAgMTYsIDB4YjZiMCwgMCwgezB4MGQsMHgyOCwweDAzLDB4MmMsMHgwMCwweGViLDB4MTAsMHgzMiwweGMwLDB4MGYsMHg4MiwweDAzLDB4YzQsMHgwMCwweGNiLDB4MDAgfSB9LAoteyAgMTYsIDB4YjZjMCwgMCwgezB4M2UsMHhjMSwweDBmLDB4YjAsMHgwNiwweGVjLDB4MDgsMHhlOSwweDAwLDB4YjIsMHhjMCwweDBmLDB4YjAsMHgxMywweDkwLDB4MDQgfSB9LAoteyAgMTYsIDB4YjZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg5YywweDAwLDB4ZjUsMHhhMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YjZlMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4ZmMsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhjMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjZmMCwgMCwgezB4MzcsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDA0LDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjcwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MTAsMHhhYywweDAwLDB4ZjksMHg0MCwweDM0LDB4YzAgfSB9LAoteyAgMTYsIDB4YjcxMCwgMCwgezB4MGQsMHhiNCwweDAzLDB4MmMsMHgwMCwweGRiLDB4NDAsMHgzZSwweGMwLDB4MmMsMHg4MCwweDAzLDB4NjQsMHgwOCwweGZiLDB4MTAgfSB9LAoteyAgMTYsIDB4YjcyMCwgMCwgezB4M2UsMHhjNiwweDhmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmOSwweDgwLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwYiwweDE0LDB4MDQgfSB9LAoteyAgMTYsIDB4YjczMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgzZSwweDIwLDB4ZTksMHhjOCwweDM3LDB4ZDQgfSB9LAoteyAgMTYsIDB4Yjc0MCwgMCwgezB4NDgsMHhhYSwweDIyLDB4MWMsMHgwMCwweDhiLDB4MDAsMHg2ZiwweGUwLDB4MDgsMHg4NSwweDgyLDB4ZWQsMHg0MCwweGJiLDB4ODQgfSB9LAoteyAgMTYsIDB4Yjc1MCwgMCwgezB4MmYsMHhjMCwweDRiLDB4YjgsMHgwMywweGFkLDB4NDAsMHhiMywweDAwLDB4MjMsMHhkNCwweDA4LDB4ZjcsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg0YywweDAwLDB4YjEsMHg2NCwweGE0LDB4YzAgfSB9LAoteyAgMTYsIDB4Yjc3MCwgMCwgezB4MDksMHgyMCwweDBhLDB4MGMsMHgwNCwweGI4LDB4MDAsMHg2YywweGMwLDB4MDgsMHgzOCwweDAyLDB4YzgsMHg0MCwweGIzLDB4ODAgfSB9LAoteyAgMTYsIDB4Yjc4MCwgMCwgezB4MmMsMHhkMSwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweDNhLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjc5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGIwLDB4MDEsMHgxZSwweDAwLDB4YTUsMHg4MCwweDI1LDB4ZTAgfSB9LAoteyAgMTYsIDB4YjdhMCwgMCwgezB4ODgsMHgzYSwweDEyLDB4MWUsMHgwMCwweGE2LDB4OTAsMHgyZCwweGUyLDB4MDgsMHg3OSwweDAyLDB4ZGEsMHgwMCwweGI3LDB4ODIgfSB9LAoteyAgMTYsIDB4YjdiMCwgMCwgezB4MmQsMHhlMCwweDAzLDB4NzgsMHg4MiwweDllLDB4MDAsMHhiYywweGMxLDB4MjksMHhlMCwweDA4LDB4NzgsMHgwMiwweDJjLDB4MTAgfSB9LAoteyAgMTYsIDB4YjdjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ5LDB4MDgsMHgwYywweDAwLDB4ZjMsMHgwMCwweDM0LDB4YzAgfSB9LAoteyAgMTYsIDB4YjdkMCwgMCwgezB4MGQsMHgzZSwweDAzLDB4MGMsMHgwMCwweGYwLDB4NDAsMHgyZSwweGMwLDB4MGMsMHgzMCwweDQzLDB4YzgsMHgwMCwweGYzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjdlMCwgMCwgezB4M2MsMHhjMCwweDA3LDB4MzAsMHgwMywweGNjLDB4ODAsMHhmMiwweDAwLDB4MzgsMHhjMCwweDBjLDB4MzAsMHgwMywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4YjdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTksMHhiZCwweDIwLDB4ZjcsMHgwMCwweDNmLDB4YzIgfSB9LAoteyAgMTYsIDB4YjgwMCwgMCwgezB4MGYsMHhmMSwweDBiLDB4ZGMsMHgyMCwweGRlLDB4MDQsMHgzZiwweGQyLDB4MDcsMHhmMCwweDEzLDB4ZjgsMHg0MCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YjgxMCwgMCwgezB4M2YsMHhjMCwweDA3LDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4MzcsMHhjMCwweDBmLDB4NzAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YjgyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MDUsMHhjZiwweDAwLDB4ZGMsMHgwMCwweDNlLDB4Y2EgfSB9LAoteyAgMTYsIDB4YjgzMCwgMCwgezB4MGYsMHhhMCwweDAwLDB4YWMsMHg5MiwweGM5LDB4MDAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDExLDB4YTQsMHgwOCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjg0MCwgMCwgezB4MmUsMHhjMCwweDRmLDB4YjAsMHgyMywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjNCwweDBmLDB4YjAsMHgwMywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjg1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4OTEsMHg5YywweDAwLDB4ODQsMHgwMCwweDAxLDB4YzAgfSB9LAoteyAgMTYsIDB4Yjg2MCwgMCwgezB4NGIsMHg3MCwweDIyLDB4MWMsMHhjMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4NGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweGI3LDB4MDEgfSB9LAoteyAgMTYsIDB4Yjg3MCwgMCwgezB4MjUsMHhkOCwweDBiLDB4NzAsMHgyMiwweGRjLDB4MDAsMHhiNiwweDAwLDB4MmQsMHhjMCwweDBiLDB4NzIsMHgyMiwweGYyLDB4MDQgfSB9LAoteyAgMTYsIDB4Yjg4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDgwLDB4OTcsMHg4MCwweGE5LDB4ZTAgfSB9LAoteyAgMTYsIDB4Yjg5MCwgMCwgezB4MGIsMHhmOCwweDAyLDB4Y2UsMHgwOCwweDg1LDB4ODAsMHgyOSwweGU4LDB4MGIsMHhmYywweDAyLDB4MTcsMHgwMCwweGI3LDB4ODAgfSB9LAoteyAgMTYsIDB4YjhhMCwgMCwgezB4MmQsMHhlMCwweDhiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHhiNCwweGMwLDB4MmQsMHhlOCwweDBiLDB4NzksMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjhiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4ODMsMHgwOCwweGEwLDB4YzAgfSB9LAoteyAgMTYsIDB4YjhjMCwgMCwgezB4OGIsMHgzYywweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHhhMCwweGMwLDB4MWIsMHgzYywweDBhLDB4MGYsMHgyOSwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YjhkMCwgMCwgezB4MjQsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDgwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4YjhlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZGUsMHgwMCwweDNhLDB4ODAgfSB9LAoteyAgMTYsIDB4YjhmMCwgMCwgezB4MGYsMHhlYSwweDAyLDB4ZTgsMHgwMCwweGNlLDB4MDAsMHgzYSwweDgwLDB4MGYsMHhlMCwweDAzLDB4MzgsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YjkwMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmZSwweDAwLDB4M2UsMHg4MCwweDBiLDB4YTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4YjkxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwNCwweGJhLDB4MDEgfSB9LAoteyAgMTYsIDB4YjkyMCwgMCwgezB4MGYsMHg4MiwweDBiLDB4ODAsMHgwNCwweGY4LDB4ODAsMHgzZSwweDAwLDB4MGYsMHg4NiwweDAzLDB4NjAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YjkzMCwgMCwgezB4MzYsMHgwMCwweDBmLDB4ODAsMHgyMywweGUxLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yjk0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAxLDB4ZjksMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4Yjk1MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweDQ5LDB4MDAsMHgzMiwweDQwLDB4MGIsMHg5MCwweDAzLDB4MjQsMHgwMCwweDQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4Yjk2MCwgMCwgezB4M2MsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg2MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4Yjk3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDAwLDB4YjksMHg0MCwweGEyLDB4NjQgfSB9LAoteyAgMTYsIDB4Yjk4MCwgMCwgezB4MGIsMHgxOCwweDAyLDB4MjUsMHgwMCwweGQxLDB4NTAsMHgzNiwweDUwLDB4NGUsMHg5MCwweDBhLDB4MjQsMHgwMiwweDg5LDB4NDAgfSB9LAoteyAgMTYsIDB4Yjk5MCwgMCwgezB4M2EsMHg1MSwweDA4LDB4OTQsMHgwMiwweGU1LDB4MjIsMHg4OSwweDQ0LDB4MmUsMHg2MCwweDI4LDB4OTAsMHgwYSwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YjlhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YjEsMHgwOCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YjliMCwgMCwgezB4NGIsMHg5MiwweDgyLDB4YTUsMHgwMCwweGE5LDB4MDgsMHgyMiwweDUwLDB4MGEsMHgxMCwweDAyLDB4MGMsMHgwMCwweGE5LDB4NDAgfSB9LAoteyAgMTYsIDB4YjljMCwgMCwgezB4NmUsMHg1MCwweDBiLDB4OTQsMHgwMiwweGM0LDB4MDQsMHg4OSwweDQ0LDB4NmMsMHg0OCwweDg4LDB4MTAsMHgwMiwweDQ2LDB4MDAgfSB9LAoteyAgMTYsIDB4YjlkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHgwNCwweDAwLDB4YjEsMHg0MCwweGUwLDB4NDAgfSB9LAoteyAgMTYsIDB4YjllMCwgMCwgezB4MWIsMHgxNCwweDBhLDB4MDQsMHgwMCwweGI5LDB4MDAsMHgyNCwweDQwLDB4MWEsMHgxMCwweDIyLDB4MDQsMHgwMCwweGExLDB4MDAgfSB9LAoteyAgMTYsIDB4YjlmMCwgMCwgezB4MjgsMHg0MCwweDBhLDB4MTAsMHgxMiwweGM0LDB4MDAsMHg4MSwweDAyLDB4NmMsMHg0MCwweDA4LDB4MTIsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4YmEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4YjAsMHgwMCwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4YmExMCwgMCwgezB4NGYsMHg4MCwweDAyLDB4YTEsMHg1MCwweGUwLDB4NTAsMHgzMiwweDE0LDB4MGUsMHhhNSwweDIzLDB4MjEsMHg0MCwweGU4LDB4NTAgfSB9LAoteyAgMTYsIDB4YmEyMCwgMCwgezB4M2UsMHgxNCwweDBmLDB4ODUsMHgwMywweGUxLDB4NDAsMHhjOCwweDUwLDB4MWUsMHgxNCwweDBjLDB4ODUsMHg0MywweDZlLDB4MDMgfSB9LAoteyAgMTYsIDB4YmEzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGQ4LDB4MTksMHhlNSwweDAwLDB4ZmQsMHg0MCwweDNlLDB4NTAgfSB9LAoteyAgMTYsIDB4YmE0MCwgMCwgezB4MGYsMHg3NCwweDAzLDB4YTUsMHgwMCwweDVkLDB4MDAsMHgzZSwweDUwLDB4MGEsMHg1MCwweDEzLDB4ZjQsMHgwMCwweGQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmE1MCwgMCwgezB4M2EsMHg1MCwweDBkLDB4OTAsMHgxMywweGU0LDB4MDAsMHhmZiwweDAwLDB4M2UsMHg1MCwweDBmLDB4OTEsMHgwMywweGE2LDB4MDYgfSB9LAoteyAgMTYsIDB4YmE2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDkwLDB4YmQsMHhlOCwweDIzLDB4NmIgfSB9LAoteyAgMTYsIDB4YmE3MCwgMCwgezB4MGIsMHhkYSwweDBiLDB4MzYsMHg4MCwweGM5LDB4MDAsMHgzMiwweDY4LDB4NDYsMHg5MCwweDQzLDB4ZTQsMHgwMCwweDQ5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmE4MCwgMCwgezB4MzIsMHg2OCwweDBjLDB4OTAsMHgwMywweDI0LDB4NDAsMHhmOSwweDAwLDB4MzIsMHg2MCwweDBjLDB4OWMsMHgwMywweGM2LDB4MDEgfSB9LAoteyAgMTYsIDB4YmE5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDc4LDB4MTAsMHhlMSwweDAwLDB4YjgsMHhlMCwweGEyLDB4MTEgfSB9LAoteyAgMTYsIDB4YmFhMCwgMCwgezB4MGIsMHg4ZSwweDBhLDB4MjMsMHgyMiwweDg4LDB4ODAsMHgyYSwweDMxLDB4MjgsMHg4OCwweDAyLDB4NjIsMHgwMCwweDg4LDB4ODAgfSB9LAoteyAgMTYsIDB4YmFiMCwgMCwgezB4YTIsMHgzMCwweDI4LDB4ODgsMHg4YSwweDIyLDB4MDAsMHhiOCwweGE4LDB4YTIsMHgzOSwweDA4LDB4Y2EsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4YmFjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNSwweDA4LDB4MjEsMHgwMCwweDAwLDB4NDAgfSB9LAoteyAgMTYsIDB4YmFkMCwgMCwgezB4MDMsMHgxNCwweDgyLDB4ODUsMHg4MCwweGFkLDB4MDgsMHgyMSwweDUyLDB4OTgsMHg1MCwweDgyLDB4MzQsMHgyMywweDg1LDB4MDggfSB9LAoteyAgMTYsIDB4YmFlMCwgMCwgezB4MjEsMHg1MiwweDA4LDB4NTAsMHgwNiwweDU0LDB4MDAsMHhiNSwweDIwLDB4MjEsMHg1YSwweDA5LDB4NTQsMHgwMiwweGQyLDB4MDEgfSB9LAoteyAgMTYsIDB4YmFmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhhNCwweDAwLDB4YjksMHg2MSwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4YmIwMCwgMCwgezB4MGIsMHg5MCwweDA2LDB4MDQsMHgwMCwweGFkLDB4MDAsMHg2OSwweDQwLDB4MDgsMHhkMCwweDAyLDB4NzQsMHgwMCwweDg1LDB4MDAgfSB9LAoteyAgMTYsIDB4YmIxMCwgMCwgezB4MDEsMHg0MCwweDAwLDB4NzAsMHgwNiwweDc0LDB4MDQsMHhiNSwweDAwLDB4MjMsMHg0MCwweDA5LDB4ZDAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4YmIyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTQsMHhhNCwweDAwLDB4ZTksMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YmIzMCwgMCwgezB4NGYsMHg5NSwweDBiLDB4YTQsMHgwMCwweGU5LDB4MDAsMHgzMiwweDQwLDB4OGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmI0MCwgMCwgezB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweDY0LDB4MDgsMHhmOSwweDAwLDB4MzIsMHg0MCwweDNkLDB4OTAsMHgwMywweGU4LDB4MDQgfSB9LAoteyAgMTYsIDB4YmI1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDEsMHhhNCwweDA4LDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4YmI2MCwgMCwgezB4NGYsMHg5MCwweDhiLDB4ZTQsMHgwNCwweGQ5LDB4MDEsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCwweGQ5LDB4MDEgfSB9LAoteyAgMTYsIDB4YmI3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBlLDB4OTAsMHgwMywweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmI4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDM2LDB4MjAgfSB9LAoteyAgMTYsIDB4YmI5MCwgMCwgezB4MTcsMHg4NCwweDAzLDB4MjAsMHgyMSwweGM4LDB4MDAsMHg3ZSwweDAyLDB4MmMsMHg4MCwweDQzLDB4MjAsMHgwMCwweGU4LDB4MDIgfSB9LAoteyAgMTYsIDB4YmJhMCwgMCwgezB4M2UsMHgwMSwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhjOCwweDQwLDB4MWUsMHgwMCwweDBmLDB4ODAsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmJiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgyYSwweDg4LDB4YjYsMHgwMiwweDIzLDB4YTAgfSB9LAoteyAgMTYsIDB4YmJjMCwgMCwgezB4MGIsMHhlYywweDQyLDB4MmIsMHgwMCwweGQyLDB4ODAsMHg2ZSwweGIxLDB4MDgsMHhhMCwweDIyLDB4MDgsMHgwMCwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmJkMCwgMCwgezB4M2EsMHg4MCwweDlmLDB4YTAsMHgwMywweGE4LDB4MDAsMHg4YSwweDA0LDB4MmUsMHg4MCwweDBiLDB4YTgsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmJlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjIsMHgwMCwweGE0LDB4ZTEgfSB9LAoteyAgMTYsIDB4YmJmMCwgMCwgezB4OGIsMHhiNCwweDMyLDB4NDcsMHg0NSwweDgzLDB4OTAsMHgyYywweGY0LDB4NGIsMHgzOCwweDEyLDB4MGUsMHg0NCwweGEzLDB4MDEgfSB9LAoteyAgMTYsIDB4YmMwMCwgMCwgezB4MmMsMHhjMCwweDRiLDB4MzAsMHgwMiwweGNlLDB4MDAsMHg5MywweDAwLDB4NmMsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmMxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDAwLDB4YjcsMHg0NCwweDIxLDB4YzIgfSB9LAoteyAgMTYsIDB4YmMyMCwgMCwgezB4MGIsMHg1NCwweDAyLDB4NTQsMHgwNSwweDg3LDB4MDAsMHgyYywweDQwLDB4OWIsMHg2YywweDAyLDB4MTgsMHgxMCwweGE3LDB4MDQgfSB9LAoteyAgMTYsIDB4YmMzMCwgMCwgezB4MjksMHhjMCwweDBhLDB4NzAsMHgwMiwweDliLDB4MDAsMHg5NywweDA0LDB4MGQsMHg4MCwweDBiLDB4NjAsMHg4MiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4YmM0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjMsMHg4MCwweDM1LDB4ZTAgfSB9LAoteyAgMTYsIDB4YmM1MCwgMCwgezB4MGIsMHgzOCwweDAyLDB4NTIsMHgxMCwweDg0LDB4ODAsMHgyZCwweGEwLDB4MGYsMHhmOCwweDBiLDB4MWUsMHgwMCwweGU2LDB4ODAgfSB9LAoteyAgMTYsIDB4YmM2MCwgMCwgezB4MWQsMHhhMCwweDBiLDB4NjgsMHgwMywweGZlLDB4MDIsMHhkNiwweDgwLDB4M2QsMHhlMCwweDBmLDB4NzgsMHgwMywweGVhLDB4MDIgfSB9LAoteyAgMTYsIDB4YmM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBhLDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzEgfSB9LAoteyAgMTYsIDB4YmM4MCwgMCwgezB4OGIsMHg5MCwweDBiLDB4ODAsMHgwYSwweGI4LDB4MDEsMHgyZSwweDAwLDB4MGMsMHhiMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmM5MCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YTAsMHg0MywweGVjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTYsMHgyMywweGMyLDB4MDIgfSB9LAoteyAgMTYsIDB4YmNhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZmUsMHg4MCwweDMzLDB4MjAgfSB9LAoteyAgMTYsIDB4YmNiMCwgMCwgezB4NGUsMHhjOSwweDEyLDB4ZjYsMHg1MCwweGVmLDB4OTAsMHgzZiwweGUwLDB4MGMsMHgxOSwweDAwLDB4YjYsMHg0MiwweGNmLDB4MjEgfSB9LAoteyAgMTYsIDB4YmNjMCwgMCwgezB4M2YsMHhlMCwweDBlLDB4ZjksMHgwMiwweGU2LDB4YzAsMHhmZiwweDgwLDB4M2YsMHhlMCwweDRjLDB4ZGMsMHgwMywweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmNkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTEsMHg5NCwweDAwLDB4YjcsMHgwMCwweDgxLDB4NDAgfSB9LAoteyAgMTYsIDB4YmNlMCwgMCwgezB4MDgsMHgwMywweDAyLDB4MTQsMHhjNCwweDg3LDB4MDEsMHgyZCwweGM4LDB4MDgsMHg2YSwweDEyLDB4MzgsMHg0MCwweDg3LDB4MDIgfSB9LAoteyAgMTYsIDB4YmNmMCwgMCwgezB4MmQsMHhjMCwweDA4LDB4NzEsMHgxMiwweGQyLDB4ODAsMHhiNywweDAwLDB4MmQsMHg4MCwweDA4LDB4NjAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmQwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgxMCwweDIxLDB4ODAgfSB9LAoteyAgMTYsIDB4YmQxMCwgMCwgezB4MDgsMHhmNCwweDEyLDB4OTQsMHgwNCwweGE2LDB4MDAsMHgyYywweGMwLDB4MTgsMHhkMiwweDAyLDB4MTQsMHg0OCwweDg2LDB4MTAgfSB9LAoteyAgMTYsIDB4YmQyMCwgMCwgezB4MmQsMHg4MCwweDBhLDB4NjEsMHgzMiwweGQ0LDB4MDAsMHhiNiwweDE4LDB4MmQsMHhjNCwweDA4LDB4NTgsMHgwMiwweDAwLDB4MTAgfSB9LAoteyAgMTYsIDB4YmQzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjNCwweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YmQ0MCwgMCwgezB4NDAsMHhiMCwweDIyLDB4MDQsMHgwMCwweDgyLDB4ODEsMHgwYywweGMwLDB4MDgsMHgzMCwweDBhLDB4MGEsMHgwMCwweDhhLDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ1MCwgMCwgezB4MmUsMHhjMCwweDA4LDB4YTAsMHgwMiwweGM0LDB4MDAsMHhiYiwweDAwLDB4MmUsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4YmQ2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmIsMHgwMCwweGEwLDB4YzAgfSB9LAoteyAgMTYsIDB4YmQ3MCwgMCwgezB4MjQsMHg5NCwweDIzLDB4YWMsMHgxMCwweGViLDB4YTAsMHgwZSwweGMwLDB4MGMsMHhiMCwweDAyLDB4MmUsMHgyMCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmQ4MCwgMCwgezB4MmUsMHg0MCwweDBlLDB4OTAsMHgwMywweGVjLDB4MDAsMHhmOSwweDgwLDB4M2UsMHg0MCwweDZjLDB4YTAsMHgwYiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YmQ5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhjYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YmRhMCwgMCwgezB4ODksMHg5MCwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDIsMHgzZSwweDQwLDB4NGYsMHhhMCwweDAzLDB4NmQsMHgwMSwweGZiLDB4NDEgfSB9LAoteyAgMTYsIDB4YmRiMCwgMCwgezB4M2UsMHhjMCwweDhmLDB4YjQsMHgwMywweGU4LDB4MDAsMHhmYiwweDIwLDB4M2UsMHg1MCwweDBmLDB4YTQsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmRjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4YzMsMHgyMCwweGIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YmRkMCwgMCwgezB4MGQsMHhkMCwweDAzLDB4MzgsMHgwMCwweGNkLDB4MDAsMHgzZiwweDgwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDIgfSB9LAoteyAgMTYsIDB4YmRlMCwgMCwgezB4MzYsMHgwMCwweDBjLDB4ZDAsMHgwMywweDNmLDB4MDgsMHhmYywweDA0LDB4MTIsMHhjMCwweDBjLDB4YTAsMHgwMywweGMwLDB4NDQgfSB9LAoteyAgMTYsIDB4YmRmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2YywweDAyLDB4OGIsMHhjOCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4YmUwMCwgMCwgezB4MDgsMHg5OCwweDBhLDB4MmEsMHg0MCwweDg5LDB4MjAsMHgyZSwweDAxLDB4OGUsMHhiMCwweDEyLDB4ZWMsMHg4MCwweGJiLDB4ZjAgfSB9LAoteyAgMTYsIDB4YmUxMCwgMCwgezB4MjIsMHhlNSwweDA4LDB4YmQsMHgwMiwweDJlLDB4MDAsMHhiYiwweDkwLDB4MjIsMHhlZCwweDA4LDB4YTIsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmUyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMSwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4YmUzMCwgMCwgezB4NDksMHhhOCwweDFlLDB4MDQsMHgwMCwweDhiLDB4MDEsMHgyZSwweGMwLDB4NDksMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmU0MCwgMCwgezB4MjIsMHg0MCwweDBhLDB4OTAsMHgwMiwweDJjLDB4MDAsMHhiOSwweDAwLDB4MmEsMHg0MCwweDA4LDB4ODAsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmU1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDAwLDB4ODEsMHgwMCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YmU2MCwgMCwgezB4MDgsMHgyMCwweDAyLDB4MDQsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgyMCwweDQyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4YmU3MCwgMCwgezB4MjAsMHhjMCwweDAyLDB4MzAsMHgwMiwweDA4LDB4ODQsMHhiMywweDA0LDB4MDgsMHg0MCwweDA4LDB4MjAsMHgwMiwweGMyLDB4MTEgfSB9LAoteyAgMTYsIDB4YmU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4OGIsMHgwMCwweGIyLDB4ODAgfSB9LAoteyAgMTYsIDB4YmU5MCwgMCwgezB4MGQsMHhiMSwweDAzLDB4MjQsMHgwMiwweGNiLDB4MDEsMHgzZSwweGMwLDB4NGQsMHg5MCwweDQzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YmVhMCwgMCwgezB4YjIsMHgwMCwweDJlLDB4OTAsMHgwYiwweDJjLDB4ODAsMHhmOCwweDAwLDB4YmEsMHhjMCwweDJjLDB4ODAsMHgwMywweGMwLDB4MDMgfSB9LAoteyAgMTYsIDB4YmViMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmNCwweDAwLDB4N2QsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4YmVjMCwgMCwgezB4MGYsMHg3MiwweDAzLDB4ZDQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMSwweDQ3LDB4ZmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YmVkMCwgMCwgezB4M2IsMHhjMCwweDBkLDB4ZjAsMHgxMywweGZjLDB4NTAsMHhmZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4YmVlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweGM0LDB4Y2MsMHgzMywweDNmLDB4MDQgfSB9LAoteyAgMTYsIDB4YmVmMCwgMCwgezB4MmMsMHhmNiwweDAzLDB4MzgsMHg2MCwweGNjLDB4OTAsMHhiMywweDIwLDB4MGYsMHhmMSwweDIzLDB4ZjAsMHg2MCwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4YmYwMCwgMCwgezB4MjMsMHhjOCwweDBjLDB4ZjIsMHg4YSwweDNjLDB4ODEsMHhkZiwweDMwLDB4M2YsMHg2NCwweDBjLDB4ZDgsMHgwMywweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4YmYxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlMCwweGMyLDB4OGEsMHgzMCwweDJlLDB4MTggfSB9LAoteyAgMTYsIDB4YmYyMCwgMCwgezB4MDgsMHhmNSwweDMwLDB4YTUsMHg5NCwweDU4LDB4MjIsMHgyMiwweDIxLDB4NGIsMHhmMywweDAyLDB4ZTEsMHgwMCwweDlmLDB4NzAgfSB9LAoteyAgMTYsIDB4YmYzMCwgMCwgezB4MmIsMHhlNCwweDBhLDB4ZjQsMHgxMiwweDFkLDB4NDAsMHhhZiwweDcyLDB4MmMsMHg0OSwweDJmLDB4MzAsMHg4MiwweGEwLDB4MDYgfSB9LAoteyAgMTYsIDB4YmY0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDgwLDB4ODAsMHhhMCwweDJjLDB4OTggfSB9LAoteyAgMTYsIDB4YmY1MCwgMCwgezB4MDgsMHgzMiwweDIyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyOCwweDAwLDB4MDMsMHgzMiwweDAyLDB4YzAsMHg4NCwweGIzLDB4MGMgfSB9LAoteyAgMTYsIDB4YmY2MCwgMCwgezB4MjAsMHhjMCwweDU4LDB4MzIsMHg5MiwweDhjLDB4MzAsMHhhMywweDIwLDB4MmUsMHhjMCwweDQ4LDB4MTIsMHg0MiwweDYyLDB4MDEgfSB9LAoteyAgMTYsIDB4YmY3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhOCwweDAwLDB4OGIsMHgwMCwweDJlLDB4MjAgfSB9LAoteyAgMTYsIDB4YmY4MCwgMCwgezB4MDgsMHhiMCwweDBhLDB4MjAsMHgwMSwweDk4LDB4MDAsMHgyYSwweDIyLDB4MGIsMHhiMCwweDAyLDB4ZTYsMHgwMCwweDliLDB4MDAgfSB9LAoteyAgMTYsIDB4YmY5MCwgMCwgezB4MjIsMHhjMCwweDBhLDB4YjAsMHgxMiwweGFjLDB4MDQsMHhhYiwweDAwLDB4MmUsMHhjMCwweDAzLDB4YjAsMHgwMiwweGYwLDB4MDAgfSB9LAoteyAgMTYsIDB4YmZhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlNSwweDAwLDB4YzgsMHgwMCwweDNlLDB4YjAgfSB9LAoteyAgMTYsIDB4YmZiMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MjksMHgwMCwweGM4LDB4MDAsMHgzYSwweDIwLDB4NGYsMHhiMCwweDAzLDB4ZTIsMHgyMCwweGZiLDB4MDEgfSB9LAoteyAgMTYsIDB4YmZjMCwgMCwgezB4YjAsMHhjMCwweDBjLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmYiwweDAyLDB4M2MsMHg0MSwweDBjLDB4OTAsMHg0MywweDQ4LDB4MDQgfSB9LAoteyAgMTYsIDB4YmZkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhhMiwweDgwLDB4ZmUsMHg0MCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4YmZlMCwgMCwgezB4MGYsMHhmMCwweDYzLDB4ZWMsMHgwMCwweGJmLDB4YzQsMHgxNywweDQyLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YmZmMCwgMCwgezB4MWYsMHhjMSwweDBmLDB4YjAsMHgwMywweDVjLDB4MDAsMHhmYiwweDAwLDB4M2YsMHg0MCwweDRmLDB4ZjAsMHgwMCwweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzAwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNSwweDAyLDB4YzgsMHgwMCwweDNlLDB4OTAgfSB9LAoteyAgMTYsIDB4YzAxMCwgMCwgezB4MmMsMHhiMCwweDBiLDB4MDEsMHgwNiwweGNiLDB4MDEsMHgzZSwweDUwLDB4NWYsMHhiMCwweDEzLDB4MjEsMHgxMCwweGNiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzAyMCwgMCwgezB4N2UsMHhjMCwweDBjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhjYiwweDAwLDB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzAzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyOCwweDAxLDB4OGIsMHhkMCwweDJjLDB4MzQgfSB9LAoteyAgMTYsIDB4YzA0MCwgMCwgezB4NDgsMHhmZiwweDAyLDB4MzAsMHgwMCwweGFhLDB4MDQsMHgyZSwweDY5LDB4MGYsMHhmMCwweDAzLDB4NjgsMHgxMCwweGRmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA1MCwgMCwgezB4MmYsMHhkNCwweDBkLDB4ZjAsMHgwMiwweDNlLDB4MDAsMHg1ZiwweDA0LDB4YjYsMHhjMCwweDA4LDB4YjAsMHgwMywweDcyLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2OSwweDkwLDB4ODEsMHg4MCwweDJjLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA3MCwgMCwgezB4NDgsMHhiOCwweDAyLDB4MDgsMHgwOSwweDk5LDB4MDAsMHg0YywweGIwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA4MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4YjAsMHg0MCwweDBjLDB4NDAsMHg4MywweDAwLDB4MDAsMHg0MCwweDBhLDB4OTAsMHgwMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzA5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxNiwweDAwLDB4ODQsMHg4OCwweDJkLDB4ZTQgfSB9LAoteyAgMTYsIDB4YzBhMCwgMCwgezB4NDgsMHgzOSwweDAyLDB4MTYsMHgwMCwweGI0LDB4ODAsMHgyZCwweGUwLDB4MGEsMHg3YiwweDA2LDB4NWUsMHgwMCwweDk3LDB4ODAgfSB9LAoteyAgMTYsIDB4YzBiMCwgMCwgezB4MmQsMHhlMiwweDA5LDB4NzgsMHgwMiwweDFlLDB4OTAsMHg5NywweDgwLDB4MjUsMHg2NCwweDhhLDB4NzgsMHgwMiwweDQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzBjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwZCwweDAwLDB4ODEsMHgxMCwweDJjLDB4OTYgfSB9LAoteyAgMTYsIDB4YzBkMCwgMCwgezB4MDgsMHgzMSwweDIzLDB4MGMsMHgwMCwweDkwLDB4MjAsMHgzYywweGM0LDB4MWIsMHhiOCwweDAyLDB4MDgsMHg0MCwweGMzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzBlMCwgMCwgezB4MmMsMHhjNCwweDBkLDB4MzAsMHgwMywweDBlLDB4NDAsMHhjMywweDEwLDB4MzAsMHhjMCwweDRlLDB4MTAsMHgwNywweDFhLDB4MTIgfSB9LAoteyAgMTYsIDB4YzBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhiYywweDAwLDB4N2QsMHgwNSwweDNmLDB4YzUgfSB9LAoteyAgMTYsIDB4YzEwMCwgMCwgezB4MGYsMHhiMSwweDBiLDB4ZjQsMHgwMCwweGVmLDB4MDAsMHgxZiwweDQ1LDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwMSwweGZmLDB4NDAgfSB9LAoteyAgMTYsIDB4YzExMCwgMCwgezB4M2QsMHhjNCwweDFmLDB4ZjAsMHgwNiwweGZjLDB4MTAsMHhmZiwweDAwLDB4M2IsMHhjMSwweDJkLDB4ZjEsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4YzEyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDA0LDB4Y2IsMHgwNCwweDNlLDB4YTAgfSB9LAoteyAgMTYsIDB4YzEzMCwgMCwgezB4NDQsMHhiNiwweDAzLDB4MjgsMHgwNCwweGNiLDB4ODAsMHgzMiwweDgwLDB4MGYsMHhiMywweDkzLDB4NjAsMHgwOCwweGZiLDB4MjAgfSB9LAoteyAgMTYsIDB4YzE0MCwgMCwgezB4M2UsMHhkMiwweDFmLDB4YjMsMHgwMywweDJkLDB4ODAsMHhmYiwweDYxLDB4N2UsMHg0MCwweDhjLDB4OTgsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzE1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg4NCwweDBjLDB4ODYsMHgwNSwweDJkLDB4YzAgfSB9LAoteyAgMTYsIDB4YzE2MCwgMCwgezB4MDgsMHhmNCwweDgyLDB4OGMsMHg5MCwweDg1LDB4MDAsMHhhMSwweGMwLDB4MGIsMHhmMCwweDAyLDB4NWMsMHgwMCwweDM3LDB4MDAgfSB9LAoteyAgMTYsIDB4YzE3MCwgMCwgezB4MmQsMHhkMCwweDBiLDB4NzEsMHgwMiwweDFjLDB4YzgsMHhiNywweDQ4LDB4MmQsMHg0MCwweDBhLDB4NzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzE4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4YTEgfSB9LAoteyAgMTYsIDB4YzE5MCwgMCwgezB4NjAsMHg3OCwweDRhLDB4MTYsMHhkMCwweGE3LDB4ODAsMHgyOSwweGUwLDB4MGIsMHg3OCwweDUyLDB4OTYsMHgwMSwweGI3LDB4OTAgfSB9LAoteyAgMTYsIDB4YzFhMCwgMCwgezB4MmQsMHhlOCwweDBiLDB4N2EsMHgyMiwweDVlLDB4NDAsMHhiNywweGEwLDB4MmYsMHhlMSwweDQ4LDB4NTAsMHgyMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzFiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDEwLDB4ODMsMHg4NCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4YzFjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4YTQsMHgxMCwweDgzLDB4Y2IsMHgyOCwweGUwLDB4MGIsMHgzMCwweDJhLDB4NGYsMHg0MCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzFkMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MTAsMHhiMywweDAyLDB4MmMsMHhjMCwweGFhLDB4MzAsMHgwMiwweDEyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzFlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4Y2UsMHhhMCwweDNmLDB4ODAgfSB9LAoteyAgMTYsIDB4YzFmMCwgMCwgezB4NGMsMHhhMCwweDJiLDB4M2EsMHgwMCwweGNlLDB4NDAsMHgzYiwweGI4LDB4MGYsMHhhMCwweDAzLDB4YjksMHgwMCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzIwMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDY4LDB4MDAsMHhmYSwweDAwLDB4N2UsMHg4MCwweDFjLDB4YTAsMHgwYiwweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzIxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDAyLDB4ZjgsMHgwMCwweDNlLDB4MDQgfSB9LAoteyAgMTYsIDB4YzIyMCwgMCwgezB4OGYsMHgwMCwweDAzLDB4ZTAsMHg0YSwweGY4LDB4MTAsMHgyNiwweDE4LDB4MGYsMHg4MCwweDAzLDB4YTAsMHg4MCwweGY4LDB4MDIgfSB9LAoteyAgMTYsIDB4YzIzMCwgMCwgezB4M2UsMHgwMCwweDhmLDB4MDAsMHgwYiwweGEwLDB4MDAsMHhmOCwweDAyLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgxMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4YzI0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDIwLDB4YzksMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YzI1MCwgMCwgezB4NGQsMHg5OSwweDAzLDB4MjQsMHgwMCwweGM5LDB4MDIsMHgzZSwweDY4LDB4MGYsMHg5MCwweDAyLDB4MjQsMHgwMCwweGU5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzI2MCwgMCwgezB4MzAsMHg0MCwweDhjLDB4OTAsMHgwMywweDA0LDB4NDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzI3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDIwLDB4ODksMHgwNiwweDIyLDB4NTAgfSB9LAoteyAgMTYsIDB4YzI4MCwgMCwgezB4OGIsMHg5YywweGMyLDB4MjQsMHgwMCwweGQ5LDB4MDEsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4MjQsMHgwOCwweGI5LDB4MDEgfSB9LAoteyAgMTYsIDB4YzI5MCwgMCwgezB4MjIsMHg0NiwweDBkLDB4OTAsMHgwYSwweDI2LDB4MDIsMHg4OSwweDAwLDB4MmMsMHg0MCwweDBhLDB4MTAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzJhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgwNiwweDAwLDB4OTEsMHg0MCwweDQyLDB4NzAgfSB9LAoteyAgMTYsIDB4YzJiMCwgMCwgezB4MGIsMHg5MCwweDEyLDB4MmMsMHgwMiwweDhiLDB4MDAsMHgyZSwweDQwLDB4MGIsMHgxMCwweDIyLDB4ZTQsMHgxMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4YzJjMCwgMCwgezB4YTIsMHg0MCwweDQ4LDB4OTAsMHgxMiwweDI0LDB4MDgsMHg5OSwweDAyLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4YzJkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDkyLDB4OTEsMHgyMCwweGUwLDB4NDggfSB9LAoteyAgMTYsIDB4YzJlMCwgMCwgezB4MGIsMHgxMiwweDAyLDB4MDQsMHgwMiwweDkxLDB4MTAsMHgyYywweGMwLDB4MGIsMHgxMCwweDA2LDB4ODQsMHhjMCwweGIxLDB4MTAgfSB9LAoteyAgMTYsIDB4YzJmMCwgMCwgezB4MjAsMHg0OCwweDg5LDB4MTEsMHgwMiwweDA1LDB4ODAsMHg5MSwweDQwLDB4MmUsMHg0NCwweDJhLDB4OTQsMHgwMiwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDMwLDB4MTQgfSB9LAoteyAgMTYsIDB4YzMxMCwgMCwgezB4MGYsMHg4NSwweDBiLDB4MjEsMHhlMCwweDgwLDB4NDAsMHgzZSwweDAwLDB4MGYsMHg4NywweDhiLDB4ZTEsMHgwYywweGY4LDB4NmMgfSB9LAoteyAgMTYsIDB4YzMyMCwgMCwgezB4MzIsMHgwMCwweDg0LDB4MDYsMHg4MywweDIwLDB4MDQsMHhkOCwweDI4LDB4M2UsMHgxMCwweDBjLDB4MDAsMHgwMywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4YzMzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDQwLDB4YWQsMHgxMCwweDNmLDB4NDUgfSB9LAoteyAgMTYsIDB4YzM0MCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZmMsMHgxOCwweDdkLDB4MjAsMHgxZiwweDQxLDB4MGYsMHg5MCwweDAzLDB4NzQsMHhjMCwweGY5LDB4MjEgfSB9LAoteyAgMTYsIDB4YzM1MCwgMCwgezB4M2UsMHg0NCwweDBmLDB4OTIsMHgwMSwweGU0LDB4NDAsMHhlOSwweDAwLDB4M2QsMHg0OCwweDRmLDB4ZDAsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4YzM2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNywweDgwLDB4ZmQsMHhlMCwweDMzLDB4NzAgfSB9LAoteyAgMTYsIDB4YzM3MCwgMCwgezB4MGMsMHhkYSwweDAzLDB4MjYsMHgyMCwweGM5LDB4NDAsMHgzMSwweDQwLDB4MGUsMHg5YSwweDAzLDB4MjQsMHgwMCwweGY5LDB4ODAgfSB9LAoteyAgMTYsIDB4YzM4MCwgMCwgezB4M2IsMHg2MCwweDBmLDB4OWMsMHg4MywweDM2LDB4YTAsMHhmOSwweGExLDB4YjAsMHg0MCwweDBmLDB4OTEsMHgwMywweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4YzM5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMiwweDkwLDB4YjgsMHhhMCwweDIyLDB4MjggfSB9LAoteyAgMTYsIDB4YzNhMCwgMCwgezB4MjgsMHg4OCwweDBhLDB4MjIsMHgwMiwweDg4LDB4YTAsMHgyMiwweDAwLDB4MDgsMHg4OCwweDAyLDB4YzIsMHg4MCwweGI4LDB4ODggfSB9LAoteyAgMTYsIDB4YzNiMCwgMCwgezB4MjIsMHgwNCwweDBiLDB4OGUsMHgwMywweDIyLDB4ODAsMHhiOCwweGQwLDB4MmEsMHgyMCwweDBiLDB4ODgsMHgwMiwweGNlLDB4MDQgfSB9LAoteyAgMTYsIDB4YzNjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDgwLDB4YjEsMHg2MSwweDAwLDB4NTggfSB9LAoteyAgMTYsIDB4YzNkMCwgMCwgezB4NDgsMHgxNiwweDhhLDB4MDQsMHhhMCwweDg5LDB4MDEsMHgyMiwweDQwLDB4MWEsMHgxNCwweDg4LDB4MDQsMHgyMCwweGIxLDB4NDAgfSB9LAoteyAgMTYsIDB4YzNlMCwgMCwgezB4MjgsMHg0MCwweDBiLDB4MTAsMHgwYSwweDA0LDB4MjAsMHhiMSwweDJjLDB4MjAsMHg0YSwweDBiLDB4MTIsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4YzNmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNSwweDkwLDB4YmIsMHg0MCwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YzQwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHg0MCwweDg5LDB4NDIsMHg2MiwweDU4LDB4MDgsMHgxMCwweDAyLDB4ZTUsMHgwMCwweGI5LDB4MDMgfSB9LAoteyAgMTYsIDB4YzQxMCwgMCwgezB4MjIsMHhjMCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MTQsMHgzMSwweDAwLDB4MmEsMHg0NCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDQgfSB9LAoteyAgMTYsIDB4YzQyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhhNSwweDAwLDB4ZjksMHgwMSwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4YzQzMCwgMCwgezB4OGMsMHg5MCwweDAzLDB4MjcsMHgwMCwweGMxLDB4OTQsMHgzMCwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4YzQ0MCwgMCwgezB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg2MCwweDA3LDB4OTAsMHgyNywweGU4LDB4MDUgfSB9LAoteyAgMTYsIDB4YzQ1MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhNCwweDE4LDB4ZjksMHgwMCwweGJlLDB4NDQgfSB9LAoteyAgMTYsIDB4YzQ2MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHhiZSwweDYxLDB4OGYsMHg5MCwweDAzLDB4YTQsMHgwMCwweGYxLDB4MDAgfSB9LAoteyAgMTYsIDB4YzQ3MCwgMCwgezB4MWUsMHg0MCwweDBmLDB4MTAsMHgwMywweDI0LDB4MDgsMHhmOSwweDAwLDB4N2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzQ4MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDgxLDB4ZjgsMHgwMCwweDMyLDB4MDQgfSB9LAoteyAgMTYsIDB4YzQ5MCwgMCwgezB4MGMsMHgwMCwweGQzLDB4MjEsMHgwMCwweGQ4LDB4MDQsMHgzYSwweDE0LDB4OWMsMHg4MCwweDAzLDB4MjEsMHgwMSwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzRhMCwgMCwgezB4MzYsMHgwMCwweDBjLDB4ODAsMHgxMywweDIwLDB4MTAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwMywweGNhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzRiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDQsMHgzYSwweDAwLDB4YmUsMHg4NCwweDIzLDB4ODUgfSB9LAoteyAgMTYsIDB4YzRjMCwgMCwgezB4MDgsMHhlYywweDgzLDB4NjgsMHgwNCwweDhhLDB4MDAsMHgyZiwweDkwLDB4NGQsMHhhMCwweDAyLDB4MjgsMHgwMSwweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzRkMCwgMCwgezB4MjMsMHhiMCwweDBhLDB4YTAsMHgwMiwweDJhLDB4MDgsMHhkYSwweDAxLDB4MjIsMHg4MCwweDBmLDB4YTAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YmIsMHhmMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4YzRmMCwgMCwgezB4MDgsMHgzYywweDBhLDB4MGMsMHgwMCwweDkzLDB4MDEsMHgyOCwweGM4LDB4ODksMHgzMCwweDA2LDB4NGMsMHgwMCwweDgzLDB4MDIgfSB9LAoteyAgMTYsIDB4YzUwMCwgMCwgezB4MmMsMHhmNiwweDA4LDB4MzAsMHgwMiwweDA0LDB4MDAsMHhhMywweDAwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHgwMiwweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4YzUxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZCwweDExLDB4YjMsMHgwMCwweGEwLDB4YzAgfSB9LAoteyAgMTYsIDB4YzUyMCwgMCwgezB4MDgsMHg1MCwweDAyLDB4NWMsMHgxMCwweDg3LDB4MDEsMHg2ZCwweDgxLDB4NDksMHgzMiwweDUyLDB4MWUsMHhjMywweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4YzUzMCwgMCwgezB4MjgsMHhlMCwweDBhLDB4MzIsMHgyNiwweDFmLDB4MDAsMHgzNywweDAwLDB4MjMsMHhlMCwweDBiLDB4NzIsMHgwMiwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzU0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgxMiwweDAwLDB4YjcsMHg4MiwweDMxLDB4MjAgfSB9LAoteyAgMTYsIDB4YzU1MCwgMCwgezB4MDgsMHgwOCwweDM3LDB4MGYsMHgwOCwweGQ3LDB4ZTAsMHgzOSwweDYwLDB4MTksMHg3YSwweDBiLDB4NWUsMHgwYywweDgzLDB4YjIgfSB9LAoteyAgMTYsIDB4YzU2MCwgMCwgezB4N2QsMHhlMCwweDBjLDB4N2EsMHgwYiwweDNlLDB4MDIsMHhhZiwweGEwLDB4YjEsMHhlMCwweDBlLDB4N2EsMHgwMywweGNhLDB4MDIgfSB9LAoteyAgMTYsIDB4YzU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhMCwweDEwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YzU4MCwgMCwgezB4NmYsMHhiMCwweDQzLDB4ZWMsMHgxMSwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiNSwweDAzLDB4ZWMsMHgyMCwweGZiLDB4NTAgfSB9LAoteyAgMTYsIDB4YzU5MCwgMCwgezB4MzYsMHgwMCwweDBmLDB4YjUsMHg0MywweGU1LDB4YTEsMHhkYiwweDc4LDB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4YzVhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHhhMCwweDNmLDB4YTAgfSB9LAoteyAgMTYsIDB4YzViMCwgMCwgezB4MGQsMHhjOSwweDEzLDB4M2UsMHgwMCwweGNmLDB4ZDAsMHgzZCwweGU4LDB4MDIsMHhmZiwweDEzLDB4M2UsMHgwMCwweGNmLDB4ODIgfSB9LAoteyAgMTYsIDB4YzVjMCwgMCwgezB4M2YsMHg2MCwweDBjLDB4ZmMsMHgyMywweDNlLDB4MTAsMHhlZiwweDgwLDB4MzMsMHhmMiwweDBjLDB4ZmMsMHg4MywweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzVkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDQwLDB4YjUsMHgwMSwweDJkLDB4ZDAgfSB9LAoteyAgMTYsIDB4YzVlMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4MWMsMHg0MCwweDU3LDB4MTAsMHgyZCwweDVhLDB4MjgsMHgzMSwweDAyLDB4YmMsMHgwMSwweDk3LDB4MTAgfSB9LAoteyAgMTYsIDB4YzVmMCwgMCwgezB4MmQsMHgwMCwweDBhLDB4NzAsMHgwMiwweDg0LDB4MDQsMHhjZiwweDAwLDB4MjksMHhjMCwweDBhLDB4ZjAsMHgwMiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzYwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4YjcsMHgyYSwweDJkLDB4ODIgfSB9LAoteyAgMTYsIDB4YzYxMCwgMCwgezB4MDgsMHg0MiwweDIyLDB4M2MsMHgwMCwweDg3LDB4MTEsMHgwZCwweGNjLDB4ODgsMHgzMiwweDAyLDB4MWQsMHgwMCwweDk3LDB4MDAgfSB9LAoteyAgMTYsIDB4YzYyMCwgMCwgezB4MmMsMHhjNCwweDA4LDB4MzAsMHgwMiwweDE0LDB4MDAsMHhhNywweDAwLDB4MjMsMHhjMCwweDA5LDB4NzAsMHg4MiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzYzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDYwLDB4MTQsMHhjMCwweDIwLDB4YjAsMHgyMCwweDJjLDB4NTAgfSB9LAoteyAgMTYsIDB4YzY0MCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MmQsMHhjMCwweDkzLDB4ZTIsMHgyYywweDIxLDB4MDgsMHgzMCwweDAyLDB4MGUsMHgwOCwweDkzLDB4MDAgfSB9LAoteyAgMTYsIDB4YzY1MCwgMCwgezB4MmMsMHg0MCwweDBhLDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwLDB4MmEsMHhjMCwweDBiLDB4MzAsMHgwMiwweDE4LDB4MDQgfSB9LAoteyAgMTYsIDB4YzY2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZjgsMHhjMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4YzY3MCwgMCwgezB4MmMsMHhhMCwweDBiLDB4M2YsMHgwMCwweGM3LDB4NjAsMHgzZSwweGQwLDB4MGMsMHhmMCwweDBiLDB4M2MsMHgwMCwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzY4MCwgMCwgezB4M2UsMHg4MCwweDBjLDB4ZjAsMHgwYiwweDJjLDB4MDAsMHhlZiwweDAwLDB4MzMsMHhjMSwweDBkLDB4ZjAsMHgwYiwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4YzY5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDQwLDB4ZjMsMHg0MCwweDNlLDB4NTAgfSB9LAoteyAgMTYsIDB4YzZhMCwgMCwgezB4OGUsMHhiNCwweDAzLDB4ZWMsMHgxMCwweGZiLDB4MDAsMHgzZSwweDA5LDB4MGYsMHhiMCwweDEzLDB4ZWMsMHg0MiwweGViLDB4MDAgfSB9LAoteyAgMTYsIDB4YzZiMCwgMCwgezB4M2MsMHgwMCwweDhmLDB4YjAsMHgxMywweGM0LDB4MTEsMHhlMywweDAwLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzZjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmMsMHg4MCwweDMxLDB4MjIgfSB9LAoteyAgMTYsIDB4YzZkMCwgMCwgezB4MGMsMHhhOCwweDAzLDB4M2MsMHgwMCwweGNmLDB4MDAsMHgzMywweGEwLDB4MGUsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGNmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzZlMCwgMCwgezB4MWYsMHhmMCwweDBjLDB4ZjAsMHgwMywweGY0LDB4MDAsMHhjZiwweDAyLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMiwweDAwLDB4NTQgfSB9LAoteyAgMTYsIDB4YzZmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2ZiwweDAwLDB4YmIsMHhjMCwweDIyLDB4NzAgfSB9LAoteyAgMTYsIDB4YzcwMCwgMCwgezB4MGEsMHhiOSwweDQyLDB4MmMsMHgxMCwweDhiLDB4MDAsMHg3NiwweDExLDB4ODMsMHhiMCwweDAyLDB4ZWMsMHgxMCwweGFiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzcxMCwgMCwgezB4MmUsMHhiMCwweDBhLDB4YjAsMHgwMywweGVjLDB4MDQsMHg4YiwweDAwLDB4YTIsMHhjMCwweDI4LDB4YjAsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4YzcyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHg2NSwweDQwLDB4YjgsMHgyMCwweDIyLDB4NDQgfSB9LAoteyAgMTYsIDB4YzczMCwgMCwgezB4NTgsMHgzNCwweDBhLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDg0LDB4NGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzc0MCwgMCwgezB4NmUsMHhjMCwweDA4LDB4YjAsMHg0MiwweGU2LDB4MDQsMHg4YiwweDAwLDB4MDIsMHhjMCwweDA4LDB4MzAsMHgwMiwweGEwLDB4MDEgfSB9LAoteyAgMTYsIDB4Yzc1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBjLDB4MDAsMHgwMCwweDAwLDB4YjEsMHgwMCwweDIwLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzc2MCwgMCwgezB4MGEsMHgzMCwweDBhLDB4MGMsMHgwMCwweDhiLDB4MDMsMHgyNCwweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzc3MCwgMCwgezB4NmMsMHgwMCwweDBhLDB4MzAsMHgwMiwweDhkLDB4MDAsMHg4MywweDAwLDB4MjAsMHhjMCwweDE4LDB4MzAsMHgwMiwweDgyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg2NCwweDAwLDB4ZjgsMHgwMCwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzc5MCwgMCwgezB4NGMsMHhhMCwweDBiLDB4MmMsMHgwMiwweGNmLDB4MDAsMHgyMiwweDQwLDB4MGUsMHhmNSwweDAzLDB4ZmMsMHgwMCwweGNmLDB4MDEgfSB9LAoteyAgMTYsIDB4YzdhMCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ZjAsMHgxMiwweGRkLDB4MDIsMHhjZiwweDAyLDB4MzMsMHhjMCwweDRjLDB4ZjAsMHgwYiwweDgwLDB4MDMgfSB9LAoteyAgMTYsIDB4YzdiMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE0LDB4MTksMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4NDAgfSB9LAoteyAgMTYsIDB4YzdjMCwgMCwgezB4MGYsMHhiMSwweDAzLDB4ZGMsMHgwMCwweGJmLDB4MDEsMHgzZiwweDAwLDB4MGYsMHhmMiwweDIzLDB4ZmMsMHgxMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzdkMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMSwweGY0LDB4ODQsMHhmZiwweDAwLDB4M2QsMHhjMCwweDRmLDB4ZjAsMHgxMywweDY4LDB4MDYgfSB9LAoteyAgMTYsIDB4YzdlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDQwLDB4ZGYsMHg4MCwweDMzLDB4YzggfSB9LAoteyAgMTYsIDB4YzdmMCwgMCwgezB4MGMsMHhmOCwweDAzLDB4M2MsMHgwYSwweDlmLDB4YzAsMHgzZiwweGYwLDB4MDgsMHhiOCwweDAyLDB4M2UsMHgwMCwweGZmLDB4ODAgfSB9LAoteyAgMTYsIDB4YzgwMCwgMCwgezB4M2YsMHhkOCwweDBjLDB4ZjksMHg2MSwweDJlLDB4NDAsMHg2ZiwweDkwLDB4M2YsMHhlNCwweDhmLDB4ZjEsMHg4MywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4YzgxMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlYywweDA0LDB4OGIsMHg4MCwweDIzLDB4ZjAgfSB9LAoteyAgMTYsIDB4YzgyMCwgMCwgezB4MDgsMHhiOCwweDAyLDB4M2QsMHg0MCwweGFiLDB4MDAsMHgwZSwweDA4LDB4NDgsMHgyMiwweDgyLDB4NmMsMHgyMCwweGJiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzgzMCwgMCwgezB4MmYsMHhkMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSwweDBiLDB4YjAsMHgwMiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4Yzg0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAyLDB4ODMsMHgwMSwweGEwLDB4YzUgfSB9LAoteyAgMTYsIDB4Yzg1MCwgMCwgezB4MDgsMHhiMCwweDRhLDB4NGMsMHhhMCwweDgwLDB4MjQsMHgyOCwweGM4LDB4MDksMHgzMiwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDggfSB9LAoteyAgMTYsIDB4Yzg2MCwgMCwgezB4MmUsMHhkMSwweDI5LDB4YjIsMHgzYSwweDBjLDB4ODQsMHhhMywweDIxLDB4MmMsMHhjOCwweDRiLDB4YjIsMHgwYSwweDMyLDB4MDEgfSB9LAoteyAgMTYsIDB4Yzg3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDA4LDB4OGIsMHgwMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzg4MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4NGMsMHgwMCwweDg4LDB4MjEsMHgyNCwweDIxLDB4MDksMHhiMCwweDQ2LDB4NmMsMHgwMCwweGJiLDB4MDYgfSB9LAoteyAgMTYsIDB4Yzg5MCwgMCwgezB4MmUsMHhjMCwweDA5LDB4YjAsMHgwMiwweDJjLDB4MTAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweDMwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzhhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4Y2IsMHgwMCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4YzhiMCwgMCwgezB4MGMsMHhiOSwweDAyLDB4NmMsMHgwMCwweGNiLDB4YzgsMHgzYSwweGMwLDB4MmQsMHg5MCwweDBiLDB4MmMsMHgwOCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzhjMCwgMCwgezB4M2UsMHhjMCwweDBkLDB4MzAsMHg0MiwweDJjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgxMywweDAwLDB4MDQgfSB9LAoteyAgMTYsIDB4YzhkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiYywweDAwLDB4ZWYsMHgwMCwweDNkLDB4YzAgfSB9LAoteyAgMTYsIDB4YzhlMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4YmMsMHgwNiwweGVmLDB4ODIsMHgzZiwweDQwLDB4NGUsMHhjOSwweDgzLDB4YmMsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4YzhmMCwgMCwgezB4N2YsMHhjMCwweDFjLDB4ZjAsMHgxMywweDdjLDB4MDAsMHhmZiwweDA0LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4YzkwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMiwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4YzkxMCwgMCwgezB4MGUsMHhiMCwweDAzLDB4YWMsMHgyMCwweGQ4LDB4NDAsMHgzZSwweGMwLDB4OGMsMHg5MCwweDBiLDB4MmMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4YzkyMCwgMCwgezB4M2UsMHhjOSwweDBkLDB4YjAsMHgzMywweGVjLDB4MDgsMHhmYiwweDAyLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwYiwweDU0LDB4MDQgfSB9LAoteyAgMTYsIDB4YzkzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyYywweDAwLDB4YjMsMHgwMCwweDJmLDB4YzAgfSB9LAoteyAgMTYsIDB4Yzk0MCwgMCwgezB4MGIsMHgzMCwweDEyLDB4ZmMsMHgwMCwweDg4LDB4YTAsMHgyZSwweDQwLDB4MjgsMHg5NCwweDAyLDB4MmMsMHgxMCwweGJiLDB4MDQgfSB9LAoteyAgMTYsIDB4Yzk1MCwgMCwgezB4MmQsMHhjMCwweDI4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4NzIsMHgwNiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2YywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAgfSB9LAoteyAgMTYsIDB4Yzk3MCwgMCwgezB4MGEsMHgxMCwweDAyLDB4Y2QsMHgwMCwweDkzLDB4MDAsMHgyYywweGMwLDB4MDgsMHhiMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk4MCwgMCwgezB4MjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDNhLDB4MDAgfSB9LAoteyAgMTYsIDB4Yzk5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxZSwweDQwLDB4YjcsMHg4MCwweDJkLDB4ZTIgfSB9LAoteyAgMTYsIDB4YzlhMCwgMCwgezB4MGIsMHg1OCwweDAyLDB4ZGUsMHgwMiwweDk3LDB4ODEsMHgyZiwweGEwLDB4MDgsMHg2OCwweDAyLDB4NWUsMHgwMCwweGI3LDB4ODEgfSB9LAoteyAgMTYsIDB4YzliMCwgMCwgezB4MmYsMHhlMCwweDA4LDB4NzksMHgwMiwweGRlLDB4MDAsMHhiNywweDgxLDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwMiwweDNjLDB4MDAgfSB9LAoteyAgMTYsIDB4YzljMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHgwMCwweDNjLDB4YzAgfSB9LAoteyAgMTYsIDB4YzlkMCwgMCwgezB4MGUsMHgzMiwweDAzLDB4Y2MsMHg4MCwweGQzLDB4MDAsMHgzYywweGM0LDB4MGMsMHgzOSwweDAzLDB4NGMsMHgwOCwweGYzLDB4MWEgfSB9LAoteyAgMTYsIDB4YzllMCwgMCwgezB4M2MsMHhjNiwweDBkLDB4MzAsMHgwMywweGNlLDB4MjAsMHhmMywweDA4LDB4M2MsMHhjMCwweDBmLDB4MzAsMHgwMywweDUyLDB4MDIgfSB9LAoteyAgMTYsIDB4YzlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwMCwweDJlLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2EwMCwgMCwgezB4MGIsMHhiMCwweDAzLDB4Y2MsMHgyMCwweGViLDB4MDAsMHgzYywweDgwLDB4MGYsMHhiMCwweDQxLDB4YWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2ExMCwgMCwgezB4M2MsMHhjMiwweDBmLDB4YjAsMHgwMywweGVjLDB4NDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4MzAsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4Y2EyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZSwweDAyLDB4YzMsMHg4MCwweDMwLDB4Y2UgfSB9LAoteyAgMTYsIDB4Y2EzMCwgMCwgezB4MGQsMHg5OCwweDAzLDB4YWMsMHhhMCwweGMzLDB4ODAsMHhiMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2E0MCwgMCwgezB4M2UsMHhkMiwweDRmLDB4YjAsMHgwOSwweDJlLDB4MDgsMHg0YiwweDAxLDB4M2UsMHhjMCwweDI0LDB4YjAsMHgwMywweGVhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2E1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5YywweDAwLDB4ODcsMHgwMSwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2E2MCwgMCwgezB4NDgsMHg1MCwweDEyLDB4NGMsMHgwMCwweDg3LDB4MDAsMHgzNSwweGMwLDB4NGIsMHg2MCwweDAyLDB4ZGMsMHgwNCwweGI3LDB4MDEgfSB9LAoteyAgMTYsIDB4Y2E3MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMSwweDBjLDB4NzIsMHgwMiwweGYyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2E4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4ODcsMHg4MCwweDIzLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2E5MCwgMCwgezB4MDgsMHhmOCwweDAyLDB4ZGUsMHg4MCwweDhmLDB4ODEsMHgyMSwweGUwLDB4NGIsMHg3OCwweDEyLDB4ZGUsMHgwNCwweDM3LDB4ODAgfSB9LAoteyAgMTYsIDB4Y2FhMCwgMCwgezB4MmQsMHhlOCwweDBiLDB4ZjgsMHgwMiwweDNlLDB4MTgsMHg4NywweDgwLDB4MmYsMHhlMCwweDA5LDB4NzksMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2FiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDAwLDB4ODMsMHgwMCwweGEwLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2FjMCwgMCwgezB4MjgsMHgzMCwweDQyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzOCwweDA2LDB4Y2MsMHgwNCwweGIzLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2FkMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGQyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2FlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDMxLDB4ODAgfSB9LAoteyAgMTYsIDB4Y2FmMCwgMCwgezB4MDgsMHhlMCwweDAyLDB4OTgsMHgwMiwweGNlLDB4MDAsMHgzMywweDg0LDB4MGIsMHhlYSwweDAzLDB4ZTgsMHgwMCwweGJhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2IwMCwgMCwgezB4M2YsMHg4MSwweDBmLDB4YTAsMHgwMywweDI4LDB4MDAsMHhjYSwweDAwLDB4M2UsMHg4MCwweDBkLDB4ZTAsMHgwMywweGZhLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2IxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2IyMCwgMCwgezB4MGUsMHg4NCwweDIzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzYSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2IzMCwgMCwgezB4M2UsMHgxMCwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBkLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2I0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAxLDB4ZjksMHgwMCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2I1MCwgMCwgezB4MGMsMHg5YSwweDEzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5OCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2I2MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4OTgsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2I3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDA0LDB4YjksMHgwMCwweDJlLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2I4MCwgMCwgezB4NjgsMHg5YywweDIyLDB4ZTQsMHgwMiwweDg5LDB4MDEsMHg3YywweDUwLDB4OGQsMHg5OCwweDIyLDB4ZTQsMHg4MCwweGI5LDB4MjAgfSB9LAoteyAgMTYsIDB4Y2I5MCwgMCwgezB4MmUsMHg1MCwweDQ4LDB4MTAsMHgwYiwweDI1LDB4MDAsMHhiOSwweDQ0LDB4MmMsMHg0MCwweDI4LDB4OTAsMHgwMCwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NTAgfSB9LAoteyAgMTYsIDB4Y2JiMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwNCwweDg5LDB4MDAsMHgyZSwweDUwLDB4MGEsMHg5MiwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JjMCwgMCwgezB4MmMsMHg0MCwweDA4LDB4OTEsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNSwweDAwLDB4YjEsMHgwMSwweDJjLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2JlMCwgMCwgezB4NDgsMHgzMCwweDAyLDB4ZTQsMHgwMCwweDgxLDB4MDAsMHgyYSwweDQwLDB4NGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2JmMCwgMCwgezB4MGMsMHhjMCwweDA4LDB4OTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmUsMHg0MCwweDQ4LDB4MTIsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2MwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YjgsMHgwMSwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2MxMCwgMCwgezB4MWMsMHg4MCwweDA3LDB4ZTEsMHg1MCwweGM4LDB4NTAsMHgyZSwweDE0LDB4MWUsMHg4NSwweDAzLDB4ZTEsMHg0MSwweGY4LDB4NTAgfSB9LAoteyAgMTYsIDB4Y2MyMCwgMCwgezB4M2UsMHgxNCwweDBjLDB4ODUsMHgxMywweDIxLDB4NDgsMHhmOCwweDUwLDB4M2UsMHgxNCwweDBjLDB4ODUsMHg0MywweGVlLDB4MDMgfSB9LAoteyAgMTYsIDB4Y2MzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MTksMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NTEgfSB9LAoteyAgMTYsIDB4Y2M0MCwgMCwgezB4MGYsMHg1MCwweDAzLDB4ZTUsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MWQsMHhkMCwweDAzLDB4ZjQsMHgxMCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2M1MCwgMCwgezB4M2UsMHg1MCwweDBmLDB4NTAsMHgwMCwweDk0LDB4MDAsMHhmOSwweDAwLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4Y2M2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhlNCwweDUwLDB4Y2QsMHgwMCwweDMxLDB4NjAgfSB9LAoteyAgMTYsIDB4Y2M3MCwgMCwgezB4MDQsMHhkMCwweDAzLDB4MzYsMHg4MCwweGMxLDB4NDIsMHgyZSwweDUwLDB4MWYsMHg5NCwweDAzLDB4ZTUsMHgwMCwweGU5LDB4MDIgfSB9LAoteyAgMTYsIDB4Y2M4MCwgMCwgezB4MmUsMHg3MiwweDBhLDB4OTAsMHgyMiwweDA1LDB4MDgsMHhlOSwweDQwLDB4M2UsMHg1MCwweDQwLDB4OWMsMHgwMywweDI2LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2M5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhjMiwweDgyLDB4ODgsMHgwMCwweDIyLDB4MTUgfSB9LAoteyAgMTYsIDB4Y2NhMCwgMCwgezB4MDgsMHg4MCwweDAyLDB4MjMsMHg1OCwweDg4LDB4YTAsMHgyZSwweDI4LDB4MGIsMHhhYSwweDQyLDB4ZTIsMHg4MiwweDg4LDB4ODAgfSB9LAoteyAgMTYsIDB4Y2NiMCwgMCwgezB4MmUsMHgzOCwweDI4LDB4ODgsMHgwMiwweDIyLDB4ODAsMHhiOCwweGEwLDB4M2EsMHgyOCwweDA4LDB4Y2QsMHgwMiwweDBlLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2NjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHgwMCwweGE2LDB4NDAgfSB9LAoteyAgMTYsIDB4Y2NkMCwgMCwgezB4MjgsMHgxMCwweDBhLDB4MjQsMHgyNiwweDk1LDB4MDAsMHgwZCwweDQwLDB4MGIsMHg1MCwweDAyLDB4NzQsMHgwMCwweDg1LDB4MDggfSB9LAoteyAgMTYsIDB4Y2NlMCwgMCwgezB4MmYsMHg0MCwweDc5LDB4ZDIsMHhhYSwweDE0LDB4MDAsMHhhNSwweDAxLDB4MmYsMHg0MCwweDM4LDB4NTAsMHgwMiwweDEyLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2NmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDA0LDB4ODksMHgwMCwweDI2LDB4NDAgfSB9LAoteyAgMTYsIDB4Y2QwMCwgMCwgezB4MDgsMHg5MSwweDAyLDB4MjQsMHgxMCwweDlkLDB4MDgsMHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2QxMCwgMCwgezB4MmYsMHg0MCwweDA5LDB4ZDAsMHgwMCwweDM0LDB4MDAsMHhiZCwweDAwLDB4MGIsMHg0MCwweDE4LDB4NzAsMHgwMiwweDA2LDB4MDQgfSB9LAoteyAgMTYsIDB4Y2QyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNCwweDAwLDB4YzksMHgwNSwweDM2LDB4NDEgfSB9LAoteyAgMTYsIDB4Y2QzMCwgMCwgezB4NGMsMHg5MCwweDYzLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGIsMHg5MCwweDAzLDB4NDQsMHgwOCwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q0MCwgMCwgezB4M2UsMHg0MCwweDE1LDB4MTAsMHgwMywweDI0LDB4MDAsMHhlOSwweDAwLDB4M2MsMHg0MCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4Y2Q1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHhhNCwweDA0LDB4ZjksMHgwMCwweDNhLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2Q2MCwgMCwgezB4NGYsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4OTksMHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGY5LDB4MGEgfSB9LAoteyAgMTYsIDB4Y2Q3MCwgMCwgezB4M2UsMHg0MCwweDBlLDB4OTAsMHg0MywweDY0LDB4MjQsMHhmOSwweDA4LDB4M2EsMHg0MiwweDBmLDB4OTAsMHg4YiwweGRhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDEyLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Q5MCwgMCwgezB4MGMsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGM4LDB4NDAsMHgzMiwweDAwLDB4MGYsMHg4NCwweDUzLDB4ZTAsMHgxMCwweGY4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2RhMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHgyMywweDIwLDB4MDAsMHhkOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2RiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzOCwweDAyLDB4ODIsMHgwMCwweGExLDB4ODggfSB9LAoteyAgMTYsIDB4Y2RjMCwgMCwgezB4MDgsMHg2MCwweDIyLDB4YzgsMHgwMCwweDhhLDB4NDAsMHgzNiwweGExLDB4MGIsMHhhMCwweDAyLDB4ZTksMHgxMCwweGJhLDB4NDQgfSB9LAoteyAgMTYsIDB4Y2RkMCwgMCwgezB4MmMsMHg4MCwweDBjLDB4YTQsMHgxMiwweDI5LDB4MDIsMHg4YSwweDQ0LDB4MmUsMHg5OCwweDBiLDB4YTQsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2RlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDEwLDB4ODMsMHgwMCwweDIwLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2RmMCwgMCwgezB4MTgsMHgzMCwweDkyLDB4YzQsMHgwOCwweDkzLDB4NDAsMHgyMCwweGUwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHgwMCwweGIzLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2UwMCwgMCwgezB4MmMsMHhjMCwweDBiLDB4M2EsMHg0MiwweGNkLDB4MDAsMHg4MywweDQwLDB4MmMsMHhkMCwweDBiLDB4MzgsMHgwMiwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2UxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4NDEsMHgxYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2UyMCwgMCwgezB4MjgsMHg3MCwweDAyLDB4ZDEsMHgwMCwweDlkLDB4ODAsMHgyNSwweGMyLDB4NGIsMHg2MCwweDAyLDB4ZGMsMHgwOCwweGI3LDB4MDIgfSB9LAoteyAgMTYsIDB4Y2UzMCwgMCwgezB4MmMsMHhjMCwweDBhLDB4NzQsMHgwMiwweGZlLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4MzQsMHgwMiwweDY4LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2U0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4NCwweDMxLDB4ZTAgfSB9LAoteyAgMTYsIDB4Y2U1MCwgMCwgezB4MGMsMHg2OCwweDAzLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgzMSwweGEwLDB4MGYsMHg1OCwweDEzLDB4ZGUsMHgwOCwweGY3LDB4ODIgfSB9LAoteyAgMTYsIDB4Y2U2MCwgMCwgezB4M2QsMHhhMCwweDBmLDB4ZjgsMHgwYiwweGRlLDB4MDAsMHhjNywweDgwLDB4M2QsMHhlMCwweDBmLDB4NzgsMHg4YiwweDZhLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2U3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhZCwweDgwLDB4ZjMsMHgwMCwweDNlLDB4YzEgfSB9LAoteyAgMTYsIDB4Y2U4MCwgMCwgezB4MGYsMHhhMCwweDIzLDB4YzAsMHgwMiwweGU5LDB4MDAsMHgzZSwweDgxLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2U5MCwgMCwgezB4M2UsMHhjMCwweDBkLDB4YjAsMHgxMywweDJjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDgyLDB4MDIgfSB9LAoteyAgMTYsIDB4Y2VhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDMyLDB4YzcsMHg4MCwweDMzLDB4NjAgfSB9LAoteyAgMTYsIDB4Y2ViMCwgMCwgezB4MGYsMHg3OCwweDAzLDB4M2UsMHhjOCwweDRlLDB4ODAsMHgyMywweDY0LDB4MGMsMHhmOCwweDAzLDB4M2EsMHgwMCwweGNlLDB4ODAgfSB9LAoteyAgMTYsIDB4Y2VjMCwgMCwgezB4MTMsMHhlYywweDA2LDB4ZDgsMHgwMywweDNhLDB4MDAsMHhkZSwweDgwLDB4MzMsMHhhNCwweDBjLDB4YzgsMHgwMywweGQwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2VkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHg5YywweDAwLDB4ODcsMHgxMCwweDAxLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2VlMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4MTgsMHg1MCwweDg0LDB4MDAsMHgyYiwweDQ0LDB4MDgsMHg2MCwweDEyLDB4OTgsMHgwMCwweDg2LDB4MTMgfSB9LAoteyAgMTYsIDB4Y2VmMCwgMCwgezB4MjEsMHhjNCwweDg4LDB4NTAsMHgwMiwweDE4LDB4ODAsMHg4NiwweDAwLDB4MjEsMHg4MCwweDA4LDB4NjEsMHgwMiwweGVhLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2YwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHgwMCwweDIxLDB4NDAgfSB9LAoteyAgMTYsIDB4Y2YxMCwgMCwgezB4MGIsMHhmMSwweDAyLDB4NWMsMHg4MCwweDA2LDB4MDAsMHgyMSwweDAwLDB4ODgsMHhkMCwweDAyLDB4NWMsMHgwMCwweDg3LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2YyMCwgMCwgezB4MjAsMHg4OSwweDhhLDB4ZjEsMHgwMiwweDFjLDB4MDgsMHg4NywweDEwLDB4MjEsMHg4MSwweDg4LDB4NDgsMHgwMiwweGM2LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2YzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDEwLDB4ODMsMHgwNCwweGEwLDB4YzEgfSB9LAoteyAgMTYsIDB4Y2Y0MCwgMCwgezB4MGIsMHgzMCwweDBhLDB4NDgsMHgwYywweDg4LDB4MDYsMHg2MCwweDM4LDB4MDgsMHgwNCwweDQyLDB4ZWMsMHgwMSwweDhiLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2Y1MCwgMCwgezB4MjIsMHhjMSwweDA4LDB4MzAsMHgwYSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHg4MCwweDAwLDB4MjAsMHgwMiwweGQ4LDB4MDQgfSB9LAoteyAgMTYsIDB4Y2Y2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4YzMsMHgwMCwweDIyLDB4ODAgfSB9LAoteyAgMTYsIDB4Y2Y3MCwgMCwgezB4OGYsMHg5MCwweDAzLDB4NjQsMHgwYSwweGNiLDB4MDIsMHhiMiwweGYyLDB4MjAsMHgzNSwweDEyLDB4NjQsMHgwYSwweGM5LDB4MDAgfSB9LAoteyAgMTYsIDB4Y2Y4MCwgMCwgezB4YjIsMHg0MCwweDBlLDB4YTAsMHgwMywweDI0LDB4MGEsMHhjOSwweDAwLDB4YTIsMHg0MCwweDJjLDB4YTAsMHgwMywweGVlLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2Y5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNjLDB4ODAgfSB9LAoteyAgMTYsIDB4Y2ZhMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YTUsMHgwMCwweGRiLDB4NDAsMHgzZSwweGQwLDB4NGQsMHhiNCwweDEzLDB4YTQsMHgwOCwweGZiLDB4MDEgfSB9LAoteyAgMTYsIDB4Y2ZiMCwgMCwgezB4M2UsMHhjMCwweDFjLDB4YTAsMHgwMywweDZjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHg1MCwweDRmLDB4YTQsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2ZjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4Y2ZkMCwgMCwgezB4MGMsMHhlOCwweDQzLDB4MjYsMHgwMCwweGRmLDB4ODAsMHhiMywweGUwLDB4MGYsMHhmOCwweDAzLDB4N2MsMHgwMCwweGNkLDB4MDAgfSB9LAoteyAgMTYsIDB4Y2ZlMCwgMCwgezB4MzMsMHgwNCwweDBjLDB4ZTAsMHgyMywweDM0LDB4NDAsMHhjZCwweDAwLDB4MjMsMHg0MCwweDBjLDB4ZTAsMHgwMywweGUwLDB4MDQgfSB9LAoteyAgMTYsIDB4Y2ZmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2YywweDEwLDB4YmIsMHgwMCwweGEyLDB4ZDIgfSB9LAoteyAgMTYsIDB4ZDAwMCwgMCwgezB4MDgsMHgyOCwweDAyLDB4MDQsMHg2MCwweDhiLDB4MTksMHgyMiwweGM2LDB4MGUsMHhiMSwweDhhLDB4MmUsMHg0MCwweDhiLDB4OTAgfSB9LAoteyAgMTYsIDB4ZDAxMCwgMCwgezB4MjIsMHhjMSwweDA4LDB4YTQsMHg4MiwweDJjLDB4MDAsMHg4YiwweDkwLDB4MjIsMHg2NCwweDQ4LDB4YTQsMHgwMiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDAyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmIsMHgwMCwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDAzMCwgMCwgezB4MDgsMHg5MSwweDJlLDB4MjQsMHgwMCwweDliLDB4MDAsMHgyMiwweGMwLDB4OGIsMHhiMCwweDEyLDB4MjAsMHgwNCwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDA0MCwgMCwgezB4MjIsMHg0MCwweDA4LDB4MTAsMHgyMiwweDIwLDB4MDAsMHg4OCwweDAxLDB4MmEsMHhkMCwweDA4LDB4ODAsMHg0MiwweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDA1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwYywweDAwLDB4YjMsMHgwNCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDA2MCwgMCwgezB4MDgsMHgxMCwweDA2LDB4MDQsMHgxMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4OGIsMHhiMCwweDEyLDB4MDAsMHgwMCwweDgyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDA3MCwgMCwgezB4MjAsMHhjMCwweDI4LDB4MTAsMHg0MiwweDA5LDB4MDYsMHg4MiwweDAwLDB4MjgsMHhjMCwweDA4LDB4MjAsMHgwMiwweGMyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4YmIsMHgwMCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDA5MCwgMCwgezB4MmMsMHhiMCwweDAzLDB4MjQsMHgwMCwweGQzLDB4MDAsMHgzMiwweGMwLDB4NWYsMHhiNSwweDAzLDB4MGMsMHgwMiwweGMxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDBhMCwgMCwgezB4YjIsMHgwMCwweDBjLDB4YjAsMHgwYiwweDA1LDB4MDAsMHhjMSwweDAwLDB4YjgsMHhjMCwweDJjLDB4ODAsMHgxMywweGUwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZDBiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhkYywweDAwLDB4ZmYsMHgwMCwweDFmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDBjMCwgMCwgezB4ODcsMHhmMCwweDAxLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGUsMHg3MCwweDQzLDB4ZmMsMHgxMCwweDdmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDBkMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4NzAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZDBlMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMSwweDg0LDB4ZmUsMHg2MSwweDMxLDB4ZDggfSB9LAoteyAgMTYsIDB4ZDBmMCwgMCwgezB4MGMsMHhiMiwweGMzLDB4ZmMsMHhlMCwweGNjLDB4ODAsMHg3YiwweGMwLDB4MGUsMHhmMSwweDAzLDB4N2MsMHhlMCwweGNjLDB4ODMgfSB9LAoteyAgMTYsIDB4ZDEwMCwgMCwgezB4M2YsMHgyMCwweDBmLDB4ZjAsMHhjYiwweDMyLDB4NDQsMHhkYywweDg0LDB4M2YsMHgyNSwweDRjLDB4ZjIsMHg0MywweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDExMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTAsMHhlNCwweDQ4LDB4YjAsMHgxMCwweDIyLDB4ZGMgfSB9LAoteyAgMTYsIDB4ZDEyMCwgMCwgezB4MDgsMHhiNiwweDAyLDB4ZmQsMHg5MiwweDg4LDB4ODUsMHgyMywweGY0LDB4NDAsMHhmMSwweDAyLDB4ZWQsMHgwMCwweDg4LDB4MmQgfSB9LAoteyAgMTYsIDB4ZDEzMCwgMCwgezB4MGUsMHg2MCwweDBiLDB4YmMsMHgxMiwweDJjLDB4MTAsMHhhOCwweDgyLDB4MmUsMHgwMCwweDBhLDB4ZmMsMHgyMiwweGEwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDE0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDgwLDB4YjMsMHgyMiwweDI4LDB4YzAgfSB9LAoteyAgMTYsIDB4ZDE1MCwgMCwgezB4MDgsMHgzMCwweDgyLDB4Y2MsMHgwMSwweDg4LDB4MDAsMHgyYywweGMwLDB4NGEsMHgzMiwweDAyLDB4Y2MsMHgwMCwweDAxLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDE2MCwgMCwgezB4MjgsMHgwMCwweDRiLDB4YjAsMHgwMiwweGEwLDB4MDAsMHg4MCwweDAwLDB4MmMsMHgwOSwweDA4LDB4MzQsMHgwMiwweDYyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDE3MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhhYywweDA0LDB4YjIsMHgxMCwweDJhLDB4YzEgfSB9LAoteyAgMTYsIDB4ZDE4MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4ZWMsMHgxMCwweDg5LDB4ODAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwOCwweDg4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDE5MCwgMCwgezB4MmUsMHg0MCwweDgzLDB4YjAsMHgwMiwweGEwLDB4NDAsMHhiOSwweDgwLDB4MmMsMHgyMSwweDBhLDB4YjAsMHgwMiwweGYwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDFhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZmEsMHgwMCwweGJhLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDFiMCwgMCwgezB4MmMsMHhiMCwweDQzLDB4ZWMsMHgwMCwweGMwLDB4ODAsMHgzZSwweGMwLDB4OGUsMHhiMCwweDAzLDB4NGMsMHgwYywweGM4LDB4MTAgfSB9LAoteyAgMTYsIDB4ZDFjMCwgMCwgezB4M2UsMHg4MCwweDhmLDB4YjAsMHgwMywweDgyLDB4MTAsMHhkOCwweDgyLDB4M2UsMHgyOCwweDBjLDB4YjAsMHgwYiwweDUwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDFkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHhiNiwweDgwLDB4ZmQsMHgwMiwweDM3LDB4YzEgfSB9LAoteyAgMTYsIDB4ZDFlMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGZkLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDUzLDB4ZmMsMHgwMiwweGZmLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDFmMCwgMCwgezB4MmYsMHhhNCwweDhiLDB4ZjAsMHg4MywweDdjLDB4MDAsMHhhZCwweDAyLDB4MmYsMHg0MCwweDAzLDB4NzAsMHgwMywweGI4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDIwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwNCwweDMyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDIxMCwgMCwgezB4NGMsMHhiMCwweDIzLDB4MmMsMHgwMCwweGY4LDB4NDAsMHgzZSwweGMyLDB4MGMsMHhiMCwweDAzLDB4MmMsMHgwMCwweGZiLDB4NDEgfSB9LAoteyAgMTYsIDB4ZDIyMCwgMCwgezB4MzIsMHhjMiwweDBmLDB4YjAsMHg0MywweDJkLDB4MDAsMHhjOCwweDUwLDB4M2UsMHg0MCwweDBjLDB4YjAsMHgwYiwweDEwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDIzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM4LDB4MDUsMHgyZiwweDkwLDB4YjksMHg1MCwweDAzLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDI0MCwgMCwgezB4MTgsMHhmMCwweDFhLDB4M2MsMHgwMCwweGI5LDB4MzIsMHgyZCwweGUwLDB4MzgsMHhmMCwweDYwLDB4M2MsMHgwNCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI1MCwgMCwgezB4M2UsMHhmMCwweDBiLDB4N2MsMHg4MCwweDJjLDB4MDAsMHhkOSwweGMwLDB4MmUsMHg0MCwweDBkLDB4ZjAsMHgwMiwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YiwweDI0LDB4YjIsMHgxMCwweDAyLDB4YzEgfSB9LAoteyAgMTYsIDB4ZDI3MCwgMCwgezB4MjgsMHgzMCwweDAyLDB4NmMsMHgwNCwweGIyLDB4YzEsMHgyYywweGMwLDB4MDgsMHgzMCwweDAwLDB4MGMsMHgwMCwweGIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI4MCwgMCwgezB4MjgsMHgyNCwweDAzLDB4M2MsMHgwYSwweDAwLDB4MDAsMHg4MiwweGM4LDB4MmMsMHhhMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDI5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDEsMHgxNiwweDAwLDB4YjQsMHg4MCwweDIxLDB4ZTQgfSB9LAoteyAgMTYsIDB4ZDJhMCwgMCwgezB4NDgsMHg3YiwweDAyLDB4NWUsMHgwMCwweGI2LDB4ODAsMHg2ZCwweGUyLDB4NDgsMHg3OSwweDIyLDB4MWUsMHg0MCwweGFjLDB4ODQgfSB9LAoteyAgMTYsIDB4ZDJiMCwgMCwgezB4MmQsMHhlMCwweDBiLDB4ZmEsMHgwMCwweDUyLDB4NDAsMHg5NiwweDgwLDB4MmQsMHhlOCwweDE5LDB4MzgsMHgwMiwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDJjMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDQwLDB4ZjMsMHgxMCwweGIwLDB4YzQgfSB9LAoteyAgMTYsIDB4ZDJkMCwgMCwgezB4MDgsMHgzYSwweDAyLDB4NGMsMHg5MCwweGYzLDB4MTAsMHgzYywweGNjLDB4MDgsMHgzMSwweDAzLDB4MGMsMHg0OSwweGIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDJlMCwgMCwgezB4MzAsMHgwNSwweDBmLDB4MzAsMHgwNywweDIxLDB4NDAsMHg0MywweDAxLDB4M2UsMHhjMiwweDFjLDB4MzAsMHg0MywweDEyLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MGQsMHhiYywweDEwLDB4ZmMsMHgxMCwweDNmLDB4YzUgfSB9LAoteyAgMTYsIDB4ZDMwMCwgMCwgezB4MGYsMHhmMSwweDAxLDB4YmMsMHgwNCwweGZmLDB4MDQsMHgzZiwweGM0LDB4MGYsMHhiMSwweDRiLDB4ZmMsMHg2NCwweGY3LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDMxMCwgMCwgezB4MzcsMHhjMCwweDBmLDB4NzIsMHg1MywweGFjLDB4NDQsMHhmZiwweDAxLDB4M2YsMHhjOSwweDBmLDB4ZjQsMHgwMywweGQwLDB4MDYgfSB9LAoteyAgMTYsIDB4ZDMyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDA4LDB4ZmEsMHgwMCwweDNlLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDMzMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MmMsMHgwMCwweGNiLDB4MDIsMHgzZSwweGNhLDB4MGYsMHhiMiwweDA3LDB4MmUsMHgwMCwweGRiLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDM0MCwgMCwgezB4MzIsMHgwOCwweDBmLDB4MzEsMHgwMywweDJjLDB4MDAsMHhjYiwweDA0LDB4M2UsMHg4MCwweDBjLDB4MzUsMHgwMywweDJhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDM1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTEsMHg5NCwweDAwLDB4YjUsMHgwMCwweDJkLDB4YzggfSB9LAoteyAgMTYsIDB4ZDM2MCwgMCwgezB4MDgsMHg3MCwweDBhLDB4MWMsMHgyMiwweDg3LDB4MDAsMHgyZCwweGM5LDB4MGIsMHhmMiwweDgyLDB4OWMsMHg4MCwweGE2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDM3MCwgMCwgezB4MDksMHg4YiwweDBiLDB4NzAsMHgwYSwweDFjLDB4MDIsMHg4NSwweDAwLDB4MmQsMHg0MCwweDA4LDB4NzAsMHgwMiwweDkyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDM4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHg4MCwweDJjLDB4ZWMgfSB9LAoteyAgMTYsIDB4ZDM5MCwgMCwgezB4MDgsMHg3YiwweDAyLDB4NWUsMHg0MCwweDg1LDB4ODksMHgyZCwweGVjLDB4OGIsMHg3YiwweDAyLDB4NGUsMHg4NCwweDhmLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDNhMCwgMCwgezB4MjUsMHg2NCwweDBiLDB4ZmEsMHgwMiwweDEyLDB4MDgsMHg5NywweDgwLDB4NmYsMHhlMSwweDA4LDB4N2EsMHgwMiwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDNiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTQsMHhjYywweDIwLDB4YjMsMHg2NCwweDJjLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDNjMCwgMCwgezB4MDgsMHgzMCwweDA2LDB4MGMsMHgxMCwweDgzLDB4OGEsMHg2YywweGMwLDB4NWIsMHgzMCwweDQyLDB4Y2MsMHgwMCwweGFiLDB4MTAgfSB9LAoteyAgMTYsIDB4ZDNkMCwgMCwgezB4MmMsMHhmMiwweDBiLDB4MzAsMHgwMiwweDBkLDB4MDAsMHg5MywweDA0LDB4MmMsMHhkNSwweDA4LDB4MzAsMHgwYSwweDkyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDNlMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDAwLDB4ZmUsMHhjMCwweDNlLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDNmMCwgMCwgezB4MmMsMHhhMCwweDAzLDB4NjgsMHgwMCwweGM2LDB4NDAsMHgzZiwweDgwLDB4MGYsMHhhMCwweDAyLDB4NjgsMHgwMCwweGNlLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDQwMCwgMCwgezB4MzYsMHg5MCwweDRmLDB4NjAsMHgwMywweDFiLDB4NzAsMHhkZSwweGQ4LDB4M2YsMHhhMCwweDBjLDB4MjAsMHgwMywweDNhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDQxMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHhlMCwweDQwLDB4ZjgsMHgxMCwweDNlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQyMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YTAsMHgxMCwweGY4LDB4NDIsMHgzZSwweDEwLDB4MWYsMHg4MCwweDAzLDB4YTAsMHgwMCwweGU4LDB4MGMgfSB9LAoteyAgMTYsIDB4ZDQzMCwgMCwgezB4M2EsMHgwNCwweDFmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhlOCwweDQ1LDB4N2UsMHgwMiwweDJmLDB4ODAsMHgwMywweGQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQ0MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHg2NCwweDAwLDB4ZTksMHg4MCwweDMyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDQ1MCwgMCwgezB4MGYsMHg5MCwweDBiLDB4MDQsMHgwOCwweGQ5LDB4ODAsMHgzNiwweDQwLDB4MGYsMHgxMCwweDEzLDB4MjQsMHgwOCwweGY5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQ2MCwgMCwgezB4NzIsMHg3MCwweDBmLDB4OTEsMHgxMywweDI0LDB4MTAsMHhjOSwweDEwLDB4M2UsMHg2OSwweDBjLDB4OTAsMHgwMywweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDQ3MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDQsMHg2NCwweDA4LDB4YjksMHg4MCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDQ4MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4YzQsMHgyMiwweDUyLDB4MGIsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDQ5MCwgMCwgezB4MjIsMHhlMCwweDBiLDB4OTAsMHgxMiwweDI0LDB4MDQsMHhkOSwweDRhLDB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMywweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDRhMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjEsMHgxOCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDRiMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjQsMHgwMCwweDhiLDB4MjAsMHgyNiwweDQ5LDB4MGIsMHg5MCwweDAyLDB4NjQsMHgwMCwweGI5LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDRjMCwgMCwgezB4YTIsMHg0MCwweDBiLDB4OTAsMHg4YSwweDI0LDB4MDAsMHg4YiwweDAwLDB4MmMsMHg0MCwweGE4LDB4OTAsMHgwMiwweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDRkMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwNCwweDg0LDB4YjEsMHgyMCwweGEwLDB4NDggfSB9LAoteyAgMTYsIDB4ZDRlMCwgMCwgezB4MGIsMHgxMSwweDA2LDB4MDQsMHgwMCwweDgzLDB4MDAsMHgwMCwweDQwLDB4NGIsMHgxMSwweDAyLDB4MDQsMHg0OSwweGIxLDB4MTAgfSB9LAoteyAgMTYsIDB4ZDRmMCwgMCwgezB4MjgsMHg0MCwweDBiLDB4MTAsMHgwMiwweDI0LDB4NDEsMHg5MSwweDAwLDB4MmMsMHg1MCwweDA4LDB4MTAsMHgwMiwweDQyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OSwweDQwLDB4ZTgsMHg1MCwweDMyLDB4MTQgfSB9LAoteyAgMTYsIDB4ZDUxMCwgMCwgezB4MGYsMHg4NiwweDkzLDB4MjEsMHhlMiwweGM4LDB4MDAsMHgzNiwweDBhLDB4MGIsMHg4NiwweDhiLDB4NjEsMHhhOCwweGY4LDB4NDAgfSB9LAoteyAgMTYsIDB4ZDUyMCwgMCwgezB4MjIsMHg4MCwweDBmLDB4ODIsMHhhMywweDIxLDB4MDgsMHhjOCwweDAyLDB4M2UsMHgwMCwweDBjLDB4ODAsMHg0MywweDJlLDB4MDMgfSB9LAoteyAgMTYsIDB4ZDUzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MWQsMHhmNCwweDQ4LDB4ZmQsMHgxMiwweDNlLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDU0MCwgMCwgezB4MGYsMHgxMiwweDAzLDB4YzQsMHgwMCwweDdkLDB4MDEsMHgxZSwweDQwLDB4MGIsMHg5MiwweDAzLDB4ZTQsMHg4MCwweGY1LDB4MjAgfSB9LAoteyAgMTYsIDB4ZDU1MCwgMCwgezB4MzYsMHg0MCwweDBmLDB4OTAsMHgwMywweGQ0LDB4OTAsMHg3ZCwweDAwLDB4M2QsMHg0MCwweDBmLDB4OTQsMHgwMywweGU2LDB4MDYgfSB9LAoteyAgMTYsIDB4ZDU2MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweGMxLDB4ZGQsMHg4OCwweDMyLDB4NzIgfSB9LAoteyAgMTYsIDB4ZDU3MCwgMCwgezB4MGMsMHg5OCwweDAzLDB4MjYsMHgyMiwweGRkLDB4MDAsMHgzZiwweDYyLDB4MmMsMHg5OSwweDgzLDB4NDYsMHhhMCwweGM5LDB4NDAgfSB9LAoteyAgMTYsIDB4ZDU4MCwgMCwgezB4YjIsMHg0MCwweDBmLDB4ZDgsMHgwMywweDI0LDB4MDAsMHhmZCwweDAwLDB4MzMsMHg1MSwweDJjLDB4ZDgsMHg4MywweDA2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDU5MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MTAsMHhlMywweGMyLDB4ODgsMHhjMCwweDIyLDB4MzAgfSB9LAoteyAgMTYsIDB4ZDVhMCwgMCwgezB4MDgsMHg4YywweDQyLDB4MjIsMHgxMSwweDhhLDB4MDEsMHgyZSwweDAwLDB4MDgsMHg4OCwweDUyLDB4MjMsMHgwMCwweDgwLDB4YTMgfSB9LAoteyAgMTYsIDB4ZDViMCwgMCwgezB4MmEsMHgwMCwweDRiLDB4ODAsMHg0MiwweDIyLDB4YTAsMHhiOCwweDAwLDB4MjIsMHgyOCwweDA4LDB4ODQsMHgwMiwweDhlLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDVjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHgyZCwweDIwLDB4NDggfSB9LAoteyAgMTYsIDB4ZDVkMCwgMCwgezB4NjgsMHgxNCwweDgwLDB4MDQsMHgyMCwweDgxLDB4MDAsMHgyZSwweDQwLDB4MGIsMHgxMiwweDEyLDB4MDQsMHgyNCwweDgxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZDVlMCwgMCwgezB4MjAsMHg0MCwweDBiLDB4OTQsMHgzMiwweDA0LDB4OTAsMHhiOSwweDAwLDB4MjAsMHg0MCwweDQ4LDB4MTAsMHg0YSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDVmMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhhNCwweDAwLDB4ODksMHgyMCwweDIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDYwMCwgMCwgezB4MDgsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOCwweDg5LDB4NDAgfSB9LAoteyAgMTYsIDB4ZDYxMCwgMCwgezB4MjIsMHg1MCwweDBiLDB4YjAsMHgwMiwweDI0LDB4MjAsMHhiOSwweDA5LDB4YTIsMHg0NCwweDA4LDB4OTAsMHgwMiwweDg2LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDYyMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwOCwweGIyLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDYzMCwgMCwgezB4NGMsMHgxMCwweDIzLDB4MDQsMHgwNCwweGQ5LDB4YzEsMHgzZSwweDQwLDB4OGYsMHg5MCwweDBiLDB4MDQsMHgwOCwweGMxLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDY0MCwgMCwgezB4MTIsMHg0MCwweDBmLDB4OTAsMHg0MywweDI0LDB4MDQsMHhmMSwweDQxLDB4MzAsMHg3OCwweDBjLDB4OTAsMHgwMywweDI4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDY1MCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg4NiwweDY0LDB4ZjksMHg4MCwweDNlLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDY2MCwgMCwgezB4MGYsMHg5MCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4OTgsMHgzZSwweDQwLDB4MmYsMHgxMCwweDAzLDB4YTQsMHgwMiwweGY5LDB4MTAgfSB9LAoteyAgMTYsIDB4ZDY3MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTAsMHgwYiwweGU2LDB4NDAsMHhmOSwweDkwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDY4MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHg0MSwweDMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDY5MCwgMCwgezB4MGMsMHg4MCwweDA3LDB4MjAsMHgxMCwweGM4LDB4MTAsMHgzZSwweDBjLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwNCwweGM4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDZhMCwgMCwgezB4YmEsMHgwMCwweDBmLDB4ODEsMHg0MywweDIwLDB4MDAsMHhmOCwweDcwLDB4M2UsMHgwMCwweDBmLDB4MDAsMHgwYiwweDBhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDZiMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHgzOSwweDAyLDB4OGUsMHgyMCwweGEzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDZjMCwgMCwgezB4MjgsMHhlMCwweDBhLDB4MzgsMHgxMCwweGFlLDB4MDQsMHgzZCwweGExLDB4OGUsMHhlMCwweDAyLDB4ZjgsMHgwMCwweDhlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDZkMCwgMCwgezB4NzYsMHg4MCwweDBiLDB4NjAsMHgwMywweDc4LDB4MDAsMHhiZSwweDQwLDB4MmYsMHg4MiwweDBiLDB4YTAsMHgwMywweGNhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDZlMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0ZCwweDAwLDB4OGIsMHg4OCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDZmMCwgMCwgezB4MTgsMHgzMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4NDQsMHgyYywweGQwLDB4MWIsMHgzMCwweDEyLDB4Y2MsMHgwNiwweDgzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDcwMCwgMCwgezB4MjAsMHhjMSwweDBiLDB4MzAsMHg4MiwweDBjLDB4MDEsMHhiMywweDAwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDcxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDEsMHgxYywweDAwLDB4ODUsMHgwMCwweDIwLDB4Y2MgfSB9LAoteyAgMTYsIDB4ZDcyMCwgMCwgezB4MDgsMHg3MCwweDA2LDB4MWMsMHg4NCwweGE3LDB4MDEsMHgyOSwweGMwLDB4MGIsMHg3MiwweDIyLDB4ZGMsMHg4MCwweDg3LDB4MzQgfSB9LAoteyAgMTYsIDB4ZDczMCwgMCwgezB4NjEsMHg4MCwweDBiLDB4MTAsMHgwMiwweDVjLDB4MDAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZDc0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwZSwweDAwLDB4OGMsMHg4MCwweDMxLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDc1MCwgMCwgezB4MGMsMHhmZSwweDAyLDB4M2YsMHgwMCwweGM1LDB4ODAsMHgyZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZGYsMHhhMCwweGM3LDB4YTAgfSB9LAoteyAgMTYsIDB4ZDc2MCwgMCwgezB4MjEsMHg2MCwweDBmLDB4NzgsMHgwMywweDFlLDB4ODAsMHhmNywweDgwLDB4M2QsMHhlMCwweDBmLDB4NzgsMHgwMywweDJhLDB4MDIgfSB9LAoteyAgMTYsIDB4ZDc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MWQsMHhhYywweDAwLDB4ZjksMHgwMCwweDNlLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDc4MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZhLDB4MDAsMHgzZSwweGMwLDB4MDYsMHhiMCwweDAzLDB4ZWMsMHg4MCwweGZiLDB4MjggfSB9LAoteyAgMTYsIDB4ZDc5MCwgMCwgezB4MzYsMHhkOCwweDRmLDB4YTAsMHgwMywweGVjLDB4MTAsMHhmYSwweDAwLDB4M2UsMHg1MCwweDBmLDB4MzAsMHgwMywweGMyLDB4MDYgfSB9LAoteyAgMTYsIDB4ZDdhMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmYSwweDAwLDB4Y2MsMHg4MCwweGIzLDB4ZTAgfSB9LAoteyAgMTYsIDB4ZDdiMCwgMCwgezB4MGYsMHhmOCwweDAzLDB4M2UsMHgwMCwweGNmLDB4OTAsMHgzZiwweDYwLDB4NGYsMHhmOCwweGMzLDB4M2UsMHgwMCwweGVmLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDdjMCwgMCwgezB4MzMsMHhmMCwweDBjLDB4N2EsMHgwMywweDNlLDB4NzAsMHhjNSwweDkwLDB4MzMsMHhmMSwweDBjLDB4NzgsMHgwMywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDdkMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiOCwweDAwLDB4ODcsMHgwMCwweDIxLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDdlMCwgMCwgezB4MGIsMHg3MCwweDRhLDB4MWMsMHgwMCwweDg3LDB4MTAsMHgyZCwweGMwLDB4NGIsMHg3MSwweDBhLDB4M2MsMHg0NCwweDhmLDB4MTIgfSB9LAoteyAgMTYsIDB4ZDdmMCwgMCwgezB4MjEsMHg4NiwweDBkLDB4NzIsMHgwMiwweDFlLDB4MDAsMHg4NywweDAwLDB4MjMsMHg0MCwweDA4LDB4NzAsMHgwYSwweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDgwMCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODQsMHgwMCwweDI1LDB4YzAgfSB9LAoteyAgMTYsIDB4ZDgxMCwgMCwgezB4MGIsMHg3MSwweDBhLDB4MGMsMHgwMCwweGE3LDB4MTIsMHgyZCwweDg0LDB4MGIsMHg3MCwweDBhLDB4MWMsMHgwMCwweGI3LDB4MDggfSB9LAoteyAgMTYsIDB4ZDgyMCwgMCwgezB4MjMsMHg0MCwweDA5LDB4ZjMsMHgxYSwweDVjLDB4ODYsMHg5NywweDA4LDB4MjUsMHg0MCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDgzMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MTQsMHhjYywweDIwLDB4ODEsMHgyMCwweDI2LDB4YzAgfSB9LAoteyAgMTYsIDB4ZDg0MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweDgyLDB4NDIsMHgyYywweDgwLDB4MGIsMHgzMCwweDIyLDB4MGMsMHgwOCwweDliLDB4ODAgfSB9LAoteyAgMTYsIDB4ZDg1MCwgMCwgezB4MjAsMHhlMCwweDA5LDB4MjAsMHgwMiwweDRkLDB4MDgsMHg5MiwweDAwLDB4MjQsMHhlNSwweDA4LDB4MzAsMHgwYSwweDA4LDB4MDQgfSB9LAoteyAgMTYsIDB4ZDg2MCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZSwweDgyLDB4Y2EsMHhlMCwweGI3LDB4YzAgfSB9LAoteyAgMTYsIDB4ZDg3MCwgMCwgezB4MGYsMHhmMCwweDEzLDB4M2MsMHgwYSwweGM5LDB4YzgsMHgzZSwweDQwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwNCwweGZmLDB4ODQgfSB9LAoteyAgMTYsIDB4ZDg4MCwgMCwgezB4MzIsMHhjMCwweDBkLDB4OTAsMHgxMywweDdjLDB4MDAsMHhkOSwweDAwLDB4ZjYsMHhjMCwweDJjLDB4MTAsMHgwMywweDJhLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDg5MCwgMCwgezB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHhlNCwweDAwLDB4ZjMsMHgwMCwweDNhLDB4YzEgfSB9LAoteyAgMTYsIDB4ZDhhMCwgMCwgezB4NGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDgsMHgzYywweDAwLDB4MGYsMHgzMCwweDEzLDB4ZWMsMHgwMCwweGViLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDhiMCwgMCwgezB4YmUsMHgxOCwweDBmLDB4OTAsMHgyMywweGFjLDB4NjAsMHhlOSwweDAyLDB4M2EsMHg0MCwweDRmLDB4OTAsMHgwMywweGUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDhjMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2EsMHgwMCwweDMzLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDhkMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGNkLDB4MDIsMHg3ZiwweDQwLDB4MGMsMHhmMCwweDQyLDB4M2MsMHgwMCwweGNmLDB4MDggfSB9LAoteyAgMTYsIDB4ZDhlMCwgMCwgezB4MzcsMHgxMCwweDBmLDB4ZDAsMHgwMywweGZjLDB4MTAsMHhjZCwweDA4LDB4M2YsMHg2NiwweDJjLDB4ZDksMHgwMywweDAwLDB4NDQgfSB9LAoteyAgMTYsIDB4ZDhmMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDQsMHg2MywweDgwLDB4OGIsMHhlMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDkwMCwgMCwgezB4MDgsMHhiMCwweDIyLDB4ZWMsMHgwMCwweGQ4LDB4ODAsMHg2ZSwweDIwLDB4NjgsMHhiMCwweDFhLDB4MmMsMHgwMSwweGZiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDkxMCwgMCwgezB4MjIsMHgxOCwweDBiLDB4ODgsMHg0MywweDRjLDB4MDAsMHg4OCwweGEwLDB4MmMsMHhjMCwweDFkLDB4OTAsMHgwMiwweDIwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZDkyMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgwOCwweDgwLDB4OGIsMHgyMCwweDIyLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDkzMCwgMCwgezB4MDgsMHhiMCwweDIyLDB4ZWMsMHgwMCwweDg4LDB4ODgsMHgyZSwweDYyLDB4NDgsMHhiMCwweDFhLDB4Y2MsMHgwMCwweDhiLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDk0MCwgMCwgezB4MjYsMHhjMCwweDRhLDB4ODgsMHgwMiwweGVjLDB4MDAsMHgwOCwweDg0LDB4MmUsMHg0MCwweDA5LDB4OTAsMHgwMiwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDk1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHgwMCwweDAwLDB4ODMsMHgwMCwweDYwLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDk2MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4MDYsMHg2YywweDAwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweGEzLDB4MDQgfSB9LAoteyAgMTYsIDB4ZDk3MCwgMCwgezB4MjAsMHgwMCwweDhiLDB4MDAsMHgwNiwweDRjLDB4MjEsMHg4MCwweDAwLDB4NmMsMHhjMCwweDQ5LDB4MTAsMHgwYSwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZDk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2EsMHgwMCwweGIyLDB4YzEgfSB9LAoteyAgMTYsIDB4ZDk5MCwgMCwgezB4ODgsMHhiNCwweDAzLDB4ZWMsMHgxMCwweGM4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHhiMCwweDBiLDB4YmMsMHgwOCwweDhmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDlhMCwgMCwgezB4MzYsMHgwMCwweDA2LDB4ODAsMHgwMywweGVjLDB4ODAsMHhjOCwweDAyLDB4M2YsMHhjMSwweDBjLDB4OTAsMHgwMywweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4ZDliMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSB9LAoteyAgMTYsIDB4ZDljMCwgMCwgezB4MGYsMHg3MiwweDgzLDB4ZmMsMHgxOCwweGZjLDB4MDMsMHgzZiwweDAwLDB4OGYsMHg3MCwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAgfSB9LAoteyAgMTYsIDB4ZDlkMCwgMCwgezB4M2QsMHgwMCwweDBmLDB4YzAsMHgyMywweDhjLDB4MDYsMHhmYywweDAwLDB4M2YsMHg0MCwweDBlLDB4ZDAsMHgwMywweGU4LDB4MDYgfSB9LAoteyAgMTYsIDB4ZDllMCwgMCwgezB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MSwweDAzLDB4NzAsMHg0MCwweGRjLDB4MTAgfSB9LAoteyAgMTYsIDB4ZDlmMCwgMCwgezB4MzcsMHgwNCwweDBkLDB4YzEsMHgwMywweDcwLDB4NDAsMHhkYywweDEwLDB4MzcsMHgwNCwweDBkLDB4YzEsMHgwMSwweDcwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGEwMCwgMCwgezB4OWMsMHgxMCwweDE3LDB4MTQsMHgwNSwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDE3LDB4MDQsMHgwZCwweGMwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NCwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZGEyMCwgMCwgezB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDIxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwMSwweDcxLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGEzMCwgMCwgezB4NWMsMHg0MCwweDE3LDB4MTAsMHgwNSwweGM0LDB4MDUsMHg3MSwweDA1LDB4NWMsMHg0MSwweDU3LDB4MTAsMHgxNSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGE0MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGE1MCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGE2MCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4NjAsMHgwMCwweDU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGE4MCwgMCwgezB4MTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4MTYsMHgwMCwweDA1LDB4ODAsMHgwNSwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGE5MCwgMCwgezB4NTgsMHgwMCwweDE2LDB4MTgsMHgwMSwweDgwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA1LDB4MjIsMHgwMSwweDFjLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGFiMCwgMCwgezB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgwLDB4NTcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4NDEgfSB9LAoteyAgMTYsIDB4ZGFjMCwgMCwgezB4NWMsMHg4MCwweDU3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxNSwweGMwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGFkMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGFlMCwgMCwgezB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGFmMCwgMCwgezB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGIxMCwgMCwgezB4NDIsMHgyMCwweDEwLDB4ODgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4ODAsMHgwNCwweDIzLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGIyMCwgMCwgezB4MDgsMHg4MCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHgwMCwweDQyLDB4MjAsMHgxMCwweDgwLDB4MjEgfSB9LAoteyAgMTYsIDB4ZGIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0YSwweDA1LDB4NDIsMHg4MSwweDUwLDB4YTAgfSB9LAoteyAgMTYsIDB4ZGI0MCwgMCwgezB4NDQsMHgyYywweDExLDB4MGIsMHgwNCwweDQyLDB4ODEsMHgxMCwweGUwLDB4NTQsMHgyOCwweDExLDB4MDIsMHgwMCwweDQyLDB4ODEgfSB9LAoteyAgMTYsIDB4ZGI1MCwgMCwgezB4MTAsMHhhMCwweDQ0LDB4MzgsMHgxMSwweDBiLDB4MDUsMHg0MiwweDgxLDB4MTAsMHgyMSwweDE0LDB4MjgsMHgxNSwweDAwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGI2MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwYywweDAxLDB4NTcsMHgwMCwweDU0LDB4YzAgfSB9LAoteyAgMTYsIDB4ZGI3MCwgMCwgezB4MTUsMHgzMCwweDA0LDB4NGMsMHgwMSwweDEzLDB4MDAsMHg1NCwweGMwLDB4MTUsMHg3MCwweDA1LDB4NGMsMHgwMSwweDUzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGI4MCwgMCwgezB4NTQsMHhjMCwweDE1LDB4MzAsMHg4NSwweDRjLDB4MDEsMHgxMywweDAwLDB4NTQsMHhjMCwweDE1LDB4MzAsMHgwNSwweDQwLDB4MjEgfSB9LAoteyAgMTYsIDB4ZGI5MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGJhMCwgMCwgezB4MDQsMHgwMCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAsMHgxMCwweDYyLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwNCwweDQxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGJiMCwgMCwgezB4MTAsMHgwMCwweDQ0LDB4MTgsMHgxMSwweDAwLDB4MDAsMHgxMCwweDAwLDB4MTAsMHg4MCwweDA0LDB4MDAsMHgwMSwweDAxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg2MCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGJkMCwgMCwgezB4MjAsMHg4MCwweDA4LDB4NjAsMHgwMiwweDE4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMCwweDA4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGJlMCwgMCwgezB4ODIsMHgwMCwweDAwLDB4ODAsMHg4MCwweDIwLDB4MDIsMHgxOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDAxLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGJmMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDA1LDB4NjQsMHgwMSwweDU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGMwMCwgMCwgezB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGMxMCwgMCwgezB4NTgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCwweDc2LDB4MDAsMHgxNSwweDgwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGMzMCwgMCwgezB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMywweDYwLDB4MDAsMHg5OCwweDAwLDB4MzYsMHgwMCwweDFkLDB4ODgsMHgwNSwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGM0MCwgMCwgezB4ZDgsMHgwMCwweDE2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHg4MCwweDQ2LDB4MDAsMHgwZCwweDgwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGM2MCwgMCwgezB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIyLDB4NDEsMHgwOCwweDE4LDB4YzIsMHgwNCwweDMwLDB4ODkgfSB9LAoteyAgMTYsIDB4ZGM3MCwgMCwgezB4MGMsMHgyMCwweDAzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZGM4MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGM5MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGNhMCwgMCwgezB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZGNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGNjMCwgMCwgezB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzMsMHgwMSwweDMwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGNkMCwgMCwgezB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgzMCwweDEzLDB4MDgsMHgwNCwweGMwLDB4MjEgfSB9LAoteyAgMTYsIDB4ZGNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA1LDB4NjAsMHg4MSwweDU4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGNmMCwgMCwgezB4NTYsMHgwOCwweDExLDB4ODIsMHgwNSwweDYwLDB4ODEsMHg1OCwweDIwLDB4NTYsMHgwOCwweDExLDB4ODMsMHgwMCwweDYwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZGQwMCwgMCwgezB4NTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgzMCwweDU2LDB4MDgsMHgxNSwweDgwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZGQxMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGQyMCwgMCwgezB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDMwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGQzMCwgMCwgezB4MDgsMHgyMCwweDAyLDB4MDAsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAzLDB4MDgsMHgwMCwweDgwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGQ1MCwgMCwgezB4NDYsMHg0OCwweDExLDB4OTIsMHgwNCwweDYwLDB4ODEsMHgxOSwweDIwLDB4NDYsMHgyOCwweDExLDB4ODIsMHgwMCwweDM0LDB4ODEgfSB9LAoteyAgMTYsIDB4ZGQ2MCwgMCwgezB4MTgsMHgyMCwweDQ2LDB4NDgsMHgxMSwweDkyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCwweDQzLDB4MDgsMHgxMSwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg2MCwweDA0LDB4NTgsMHgwMSwweDU2LDB4MDAgfSB9LAoteyAgMTYsIDB4ZGQ4MCwgMCwgezB4NTUsMHg4MCwweDE1LDB4NjAsMHgwNCwweDU4LDB4MDEsMHgxNiwweDAwLDB4NTUsMHg4MCwweDAxLDB4NjAsMHgwNCwweDE4LDB4MDEgfSB9LAoteyAgMTYsIDB4ZGQ5MCwgMCwgezB4NTYsMHgwMCwweDQ1LDB4ODAsMHgxMSwweDYwLDB4MDQsMHg1OCwweDAxLDB4MTYsMHgwMCwweDQxLDB4ODAsMHgxMSwweDQwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGRhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNiwweDAxLDB4NDEsMHg4MCwweDUwLDB4NjAgfSB9LAoteyAgMTYsIDB4ZGRiMCwgMCwgezB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDQxLDB4ODAsMHg1MCwweDYwLDB4MDQsMHgxOCwweDA1LDB4MDYsMHgwMCwweDQxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGRjMCwgMCwgezB4MTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDA2LDB4MDEsMHg0MSwweDgwLDB4NTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDAwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MDAsMHg4MCwweDQwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGRlMCwgMCwgezB4MTAsMHg0OCwweDA0LDB4MTIsMHgwMSwweDAwLDB4ODAsMHg0MSwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDA0LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGRmMCwgMCwgezB4NDAsMHgyMCwweDUwLDB4NDgsMHgwNCwweDEyLDB4MDEsMHgwMCwweDg0LDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSB9LAoteyAgMTYsIDB4ZGUxMCwgMCwgezB4MzAsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNSwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDA1LDB4ODAgfSB9LAoteyAgMTYsIDB4ZGUyMCwgMCwgezB4ZDQsMHg2MCwweDE1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHgxMSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGUzMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDA1LDB4NzEsMHg4MCwweDVjLDB4NjAgfSB9LAoteyAgMTYsIDB4ZGU0MCwgMCwgezB4OTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDIwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwMywweDcwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZGU1MCwgMCwgezB4NWMsMHg2MCwweDU3LDB4MTgsMHgxMSwweGM2LDB4MDUsMHgzMSwweDgxLDB4NWMsMHg2MCwweDc3LDB4MTgsMHgxNSwweGMwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZGU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0NiwweDAzLDB4NzEsMHg4MCwweGRjLDB4NjAgfSB9LAoteyAgMTYsIDB4ZGU3MCwgMCwgezB4MzcsMHgxOCwweDBkLDB4YzYsMHgwMywweDcxLDB4ODAsMHhkZCwweDYwLDB4MzcsMHgxOCwweDA1LDB4YzYsMHgwMSwweDc1LDB4ODEgfSB9LAoteyAgMTYsIDB4ZGU4MCwgMCwgezB4ZGMsMHg2MCwweDM3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDg0LDB4NWMsMHg2MCwweDE3LDB4MTgsMHgxOSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0NiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAgfSB9LAoteyAgMTYsIDB4ZGVhMCwgMCwgezB4NTcsMHgxOCwweDE0LDB4ODYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDA1LDB4YzYsMHgwNCwweDMxLDB4ODEgfSB9LAoteyAgMTYsIDB4ZGViMCwgMCwgezB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgwLDB4NWMsMHg2MCwweDQzLDB4MTgsMHgxNSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGVjMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGVkMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDcwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGVlMCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDE3LDB4MDgsMHgwNCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAxLDB4NjEsMHg4MCwweDU4LDB4NjAgfSB9LAoteyAgMTYsIDB4ZGYwMCwgMCwgezB4MTYsMHgxOCwweDQxLDB4ODYsMHgwMSwweDYxLDB4ODAsMHgxOCwweDYwLDB4MDYsMHgzYywweDA1LDB4ODYsMHgwNCwweDYxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGYxMCwgMCwgezB4MTgsMHg2MCwweDE2LDB4MTgsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgwLDB4NTgsMHg2MCwweDU2LDB4MTgsMHgxNSwweDgwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZGYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGYzMCwgMCwgezB4NTcsMHgwMCwweDE1LDB4YzAsMHgwNCwweDcwLDB4MDEsMHg1YywweDAwLDB4NTcsMHgwMCwweDEwLDB4YzAsMHgwNCwweDcwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZGY0MCwgMCwgezB4MWMsMHgwMCwweDQ3LDB4MDAsMHgxMSwweGMwLDB4MDQsMHg3MCwweDAxLDB4NWMsMHgwMCwweDQ3LDB4MDAsMHgwMSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGY1MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGY2MCwgMCwgezB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGY3MCwgMCwgezB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGY4MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZGY5MCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDExLDB4ODIsMHgwNCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZGZhMCwgMCwgezB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgwMCwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDA1LDB4NDAsMHg4MSwweDUwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZGZjMCwgMCwgezB4NTQsMHgwOCwweDE1LDB4MDIsMHgwNSwweDQwLDB4ODEsMHgxMCwweDIwLDB4NTQsMHgwYywweDE1LDB4NDIsMHgwMCwweDQwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZGZkMCwgMCwgezB4NTAsMHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDUsMHg0MCwweDgxLDB4MTAsMHgyMCwweDE0LDB4MDgsMHgwNSwweDAwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZGZlMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMywweDAxLDB4NTAsMHhjMCwweDU0LDB4MzAgfSB9LAoteyAgMTYsIDB4ZGZmMCwgMCwgezB4MTUsMHgwOCwweDA1LDB4NDIsMHgwMSwweDUwLDB4YzAsMHg1NCwweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAgfSB9LAoteyAgMTYsIDB4ZTAwMCwgMCwgezB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQyLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZTAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTAyMCwgMCwgezB4MDQsMHgyMCwweDAxLDB4ODgsMHgwMCwweDYyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgwMCwweDExLDB4MDgsMHgwMCwweDQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTAzMCwgMCwgezB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAxLDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTA1MCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDIwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgyOCwweDAwLDB4MDIsMHgwMiwweDAwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTA2MCwgMCwgezB4ODAsMHgyMCwweDIwLDB4MGEsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4MDAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTA3MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTA4MCwgMCwgezB4NTYsMHgwMCwweDA1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDA4LDB4NTYsMHgwMCwweDE1LDB4ODAsMHgwNywweDYwLDB4MDIgfSB9LAoteyAgMTYsIDB4ZTA5MCwgMCwgezB4NTgsMHgwMCwweDU2LDB4NDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAzLDB4MTgsMHgwMCwweDc2LDB4MDAsMHgxNSwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTBiMCwgMCwgezB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMSwweDYwLDB4MDAsMHhkOCwweDBhLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNSwweDcwLDB4MDkgfSB9LAoteyAgMTYsIDB4ZTBjMCwgMCwgezB4ZDgsMHgwMSwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDU3LDB4MDAsMHgwZCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4MzAsMHgwMSwweDBjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTBlMCwgMCwgezB4NDMsMHgwMCwweDEwLDB4YzAsMHgwMCwweDMwLDB4MDEsMHgwYywweDAwLDB4NDMsMHgyMCwweDEwLDB4YzAsMHgwNCwweDYwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTBmMCwgMCwgezB4MGMsMHgwMCwweDQzLDB4NDAsMHg1MCwweGMxLDB4MDQsMHgzMCwweDAxLDB4MGMsMHgwMCwweDQ2LDB4MDAsMHgxMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTExMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4ZDAsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTEyMCwgMCwgezB4MGMsMHgwMCwweDAzLDB4NDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGQsMHgwMCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDAxLDB4MzEsMHg0MCwweDRjLDB4NTAgfSB9LAoteyAgMTYsIDB4ZTE0MCwgMCwgezB4MTMsMHgxMCwweDA0LDB4YzQsMHgwMSwweDMxLDB4NDAsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgxMSwweDMxLDB4NDEgfSB9LAoteyAgMTYsIDB4ZTE1MCwgMCwgezB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA1LDB4NjgsMHhjMSwweDVhLDB4MzAgfSB9LAoteyAgMTYsIDB4ZTE3MCwgMCwgezB4NTYsMHg4YywweDExLDB4YTMsMHgwNCwweDY4LDB4YzEsMHgxYSwweDMwLDB4NTYsMHg4YywweDExLDB4YTMsMHgwNSwweDY4LDB4YzAgfSB9LAoteyAgMTYsIDB4ZTE4MCwgMCwgezB4NWEsMHgzMCwweDQ2LDB4OGMsMHgxMSwweGEzLDB4MDQsMHg2OCwweGMxLDB4NWEsMHgzMCwweDE2LDB4OGMsMHgxNSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFhMCwgMCwgezB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgyMCwweDAwLDB4OTAsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFiMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDksMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQ0LDB4NjIsMHgwMSwweDE4LDB4ODQgfSB9LAoteyAgMTYsIDB4ZTFkMCwgMCwgezB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgwMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MTAgfSB9LAoteyAgMTYsIDB4ZTFlMCwgMCwgezB4MTgsMHg4NCwweDQ2LDB4MjEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4NCwweDA2LDB4MjEsMHgxMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ1LDB4NTAsMHgxMSwweDU0LDB4MDQgfSB9LAoteyAgMTYsIDB4ZTIwMCwgMCwgezB4NTUsMHgwMSwweDExLDB4NDAsMHg0NSwweDUwLDB4MTEsMHgxNCwweDAwLDB4NDUsMHgwMSwweDExLDB4NDAsMHg0NCwweDUwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTIxMCwgMCwgezB4MTQsMHgwNCwweDQ1LDB4MDAsMHgxNSwweDQwLDB4NDQsMHg1MCwweDExLDB4MTQsMHgwNCwweDU1LDB4MDEsMHgxMSwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIgfSB9LAoteyAgMTYsIDB4ZTIzMCwgMCwgezB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDgsMHg1MCwweDgyLDB4MDQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDggfSB9LAoteyAgMTYsIDB4ZTI0MCwgMCwgezB4NTAsMHg4MiwweDE0LDB4MjAsMHgwNSwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4NSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAgfSB9LAoteyAgMTYsIDB4ZTI2MCwgMCwgezB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDQwLDB4MGEsMHgwMSwweDAyLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTI3MCwgMCwgezB4NDAsMHhhMCwweDEwLDB4MjgsMHg0NCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAgfSB9LAoteyAgMTYsIDB4ZTI5MCwgMCwgezB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMSwweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgxMCwweDBjLDB4NGMsMHgwMywweDUzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJhMCwgMCwgezB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDRjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4NzIsMHgwMSwweDVjLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTJjMCwgMCwgezB4MTcsMHgyMCwweDA1LDB4YzgsMHgwNiwweDcyLDB4MDEsMHg1YywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwMiwweDcyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTJkMCwgMCwgezB4NWMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDUsMHg3MiwweDAxLDB4NWMsMHg4MCwweDM3LDB4MjAsMHgxMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDE4LDB4NDAsMHhjNiwweDEyLDB4MzEgfSB9LAoteyAgMTYsIDB4ZTJmMCwgMCwgezB4ODQsMHg4YywweDIxLDB4MjMsMHgwOCwweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHgwYywweDYxLDB4MjMsMHgxMCwweDQ4LDB4YzIgfSB9LAoteyAgMTYsIDB4ZTMwMCwgMCwgezB4MTIsMHgzMSwweDg0LDB4OGMsMHgwMSwweDIzLDB4MDgsMHg0OCwweGM2LDB4MTIsMHgzMSwweDA0LDB4OGMsMHg2MSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZTMyMCwgMCwgezB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZTMzMCwgMCwgezB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYywweGRiLDB4MGYsMHhiNiwweGMyLDB4Y2QgfSB9LAoteyAgMTYsIDB4ZTM4MCwgMCwgezB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGRmLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4N2UgfSB9LAoteyAgMTYsIDB4ZTM5MCwgMCwgezB4YzIsMHhjZCwweGIwLDB4YjcsMHhmZCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDNjLDB4NGYsMHhjZiwweDEzLDB4MzMgfSB9LAoteyAgMTYsIDB4ZTNiMCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMywweDNmLDB4YzQsMHhjYywweGYxLDB4MzMsMHgzYywweDRjLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZTNjMCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2YsMHhmZCwweDMzLDB4M2MsMHg0YywweGNmLDB4MTMsMHgzMywweGM0LDB4Y2MsMHhmMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjcgfSB9LAoteyAgMTYsIDB4ZTNlMCwgMCwgezB4ZTQsMHhlYywweDc5LDB4M2IsMHgxZSwweDRlLDB4ZGYsMHg5MywweGJmLDB4ZTQsMHg4ZCwweGY5LDB4M2IsMHg3OCwweDRlLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZTNmMCwgMCwgezB4OTMsMHhiNywweGU0LDB4ZWQsMHhmZCwweDNiLDB4MWUsMHg0ZSwweGRmLDB4OTMsMHhiNywweDg0LDB4ZWQsMHhmOSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAyLDB4NzAsMHg0MCwweDljLDB4MTAgfSB9LAoteyAgMTYsIDB4ZTQxMCwgMCwgezB4MjcsMHgxYywweDA5LDB4YzEsMHgwMSwweDMwLDB4NDAsMHgxYywweDEwLDB4NjcsMHgwNCwweDA5LDB4YzEsMHgwMiwweDcwLDB4NDEgfSB9LAoteyAgMTYsIDB4ZTQyMCwgMCwgezB4OWMsMHgxMSwweDA3LDB4MTQsMHgwMSwweGMxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHg1MCwweDA3LDB4MWMsMHgwMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTQ0MCwgMCwgezB4NTcsMHgxMCwweDU1LDB4YzQsMHgwMSwweDMxLDB4MDAsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTQ1MCwgMCwgezB4ZGMsMHg0MCwweDE3LDB4MTgsMHgxZCwweGM0LDB4MDUsMHg3MSwweDA1LDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxZCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTQ3MCwgMCwgezB4MTIsMHgwMCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTQ4MCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHg2MCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRhMCwgMCwgezB4MDYsMHgwMCwweDQxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4NDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRiMCwgMCwgezB4MTAsMHgwMCwweDA2LDB4MTAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgyMCwweDQ2LDB4MTAsMHgwMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTRkMCwgMCwgezB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4MDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDczLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRlMCwgMCwgezB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGNjLDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTUwMCwgMCwgezB4MDYsMHgwMCwweDAxLDB4ODQsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZTUxMCwgMCwgezB4MTgsMHgwMCwweDA2LDB4MDQsMHgwMSwweDgxLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MTQsMHgwMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSB9LAoteyAgMTYsIDB4ZTUzMCwgMCwgezB4NDIsMHg3MCwweDEwLDB4OGMsMHgwNCwweDIyLDB4MDEsMHgwOCwweGMwLDB4MDIsMHgyMCwweDEwLDB4ODgsMHgwNCwweDIyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTU0MCwgMCwgezB4MDgsMHg4MCwweDQyLDB4NTAsMHgxMCwweDA4LDB4MDQsMHgyMiwweDAxLDB4MDksMHgwMCwweDQyLDB4NDAsMHgxMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZSwweDA0LDB4NGEsMHg4MSwweDEyLDB4YTAgfSB9LAoteyAgMTYsIDB4ZTU2MCwgMCwgezB4NDQsMHhhOCwweDExLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiwweGEwLDB4MDQsMHhhOCwweDExLDB4MmEsMHgwNCwweDRiLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTU3MCwgMCwgezB4MTIsMHhhMCwweDQ0LDB4ODgsMHgwMSwweDJlLDB4MDQsMHg0YSwweDgxLDB4MTIsMHgyMCwweDA0LDB4OTgsMHgwMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHgwZSwweDAwLDB4NTMsMHgwMCwweDE0LDB4YzAgfSB9LAoteyAgMTYsIDB4ZTU5MCwgMCwgezB4MDUsMHgzMCwweDAxLDB4NGMsMHgwMCwweDUzLDB4MDAsMHgxNCwweGUwLDB4MDUsMHgzMCwweDAxLDB4NGMsMHgwMCwweDUzLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTVhMCwgMCwgezB4MDQsMHhjMCwweDA1LDB4MzAsMHgwMCwweDRjLDB4MDAsMHgwMywweDAwLDB4MTQsMHhjMCwweDA1LDB4MzAsMHgwMCwweDQwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZTViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHgwNCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTVjMCwgMCwgezB4MDQsMHg1OCwweDAxLDB4MDQsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTVkMCwgMCwgezB4MDQsMHgwMCwweDQ0LDB4NTgsMHgxMCwweDQ0LDB4MDAsMHgwMCwweDAwLDB4MTEsMHg4MCwweDA0LDB4NTAsMHgxMCwweDQwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZTVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTVmMCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTYwMCwgMCwgezB4ODQsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDQwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZTYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAwLDB4NjAsMHgwMSwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTYyMCwgMCwgezB4NDYsMHgwMCwweDAxLDB4ODAsMHgwNiwweDYwLDB4MDEsMHg5OCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTYzMCwgMCwgezB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHgyMCwweDAxLDB4MTgsMHgwMCwweDY2LDB4MDAsMHgxMSwweDgwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDEsMHg0MCwweDAwLDB4NjAsMHgwMCwweDk4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY1MCwgMCwgezB4MjYsMHgwMCwweDA5LDB4ODAsMHgwMiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MDYsMHgwMCwweDBjLDB4ODAsMHgwMiwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY2MCwgMCwgezB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDIsMHg2MCwweDAwLDB4OTgsMHg4MCwweDA2LDB4MDAsMHgwMSwweDgyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAwLDB4MzAsMHg4MSwweDBjLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTY4MCwgMCwgezB4NDMsMHgwOCwweDEwLDB4YzIsMHgyNCwweDMwLDB4ODEsMHg4YywweDIwLDB4MDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTY5MCwgMCwgezB4MGMsMHgyMCwweDAzLDB4MDgsMHgxOCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxOCwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTZhMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZiMCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHg0MCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4ODAsMHgwMCwweDMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZjMCwgMCwgezB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwMiwweDEwLDB4MzAsMHg4MCwweDBjLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTZlMCwgMCwgezB4MDMsMHgwOCwweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYywweDIwLDB4MDMsMHgwOCwweDAwLDB4YzIsMHgwMSwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTZmMCwgMCwgezB4MGMsMHgyMCwweDAzLDB4MmMsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgzMCwweDQzLDB4MmMsMHgwMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTcwMCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTcxMCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZTcyMCwgMCwgezB4MTgsMHgyMCwweDQ2LDB4MGMsMHgxMSwweGMyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgxMSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTczMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTc0MCwgMCwgezB4MDIsMHgyOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTc1MCwgMCwgezB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMSwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAzLDB4MDgsMHgwMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDEsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTc3MCwgMCwgezB4NDYsMHgyOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZTc4MCwgMCwgezB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgyLDB4MDQsMHg2MCwweDgxLDB4MTgsMHgyMCwweDQzLDB4MDgsMHgxMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MCwweDA0LDB4NTAsMHgwMSwweDE0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZTdhMCwgMCwgezB4NDUsMHgwMCwweDExLDB4NDAsMHgyNSwweDAwLDB4MDAsMHgxNCwweDAwLDB4NDUsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTdiMCwgMCwgezB4MTQsMHgwMCwweDQ1LDB4MDAsMHgwMCwweDQwLDB4MDQsMHg1MCwweDAxLDB4NDAsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQyLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTdjMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAgfSB9LAoteyAgMTYsIDB4ZTdkMCwgMCwgezB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTdlMCwgMCwgezB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwMiwweDA1LDB4MDAsMHg4MCwweDQwLDB4MjEgfSB9LAoteyAgMTYsIDB4ZTgwMCwgMCwgezB4MTAsMHgwOCwweDA0LDB4MDAsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTgxMCwgMCwgezB4NDAsMHgyMCwweDUwLDB4MDgsMHgxNCwweDAyLDB4MTEsMHgwMCwweDg0LDB4NDAsMHgyMCwweDEwLDB4MDgsMHgxNCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0NiwweDAxLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSB9LAoteyAgMTYsIDB4ZTgzMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MTUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTg0MCwgMCwgezB4NTQsMHg2MCwweDE1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTg1MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0NiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAgfSB9LAoteyAgMTYsIDB4ZTg2MCwgMCwgezB4NDUsMHgxOCwweDExLDB4ZDYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEgfSB9LAoteyAgMTYsIDB4ZTg3MCwgMCwgezB4OWMsMHg2MCwweDQ3LDB4MTgsMHgxMSwweGM2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCwweDY3LDB4MTgsMHgxMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAgfSB9LAoteyAgMTYsIDB4ZTg5MCwgMCwgezB4MjcsMHgxOCwweDA5LDB4YzYsMHgwMCwweDcxLDB4ODAsMHg5YywweDYwLDB4NjcsMHgxOCwweDA5LDB4YzYsMHgwMiwweDcxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZThhMCwgMCwgezB4OWMsMHg2MSwweDI3LDB4MTgsMHgwMSwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDA3LDB4MTgsMHgwMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZThiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4NDUsMHg0NiwweDA1LDB4NzEsMHg4MSwweDVjLDB4NjAgfSB9LAoteyAgMTYsIDB4ZThjMCwgMCwgezB4NTcsMHgxOCwweDU1LDB4ZDYsMHgwMSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEgfSB9LAoteyAgMTYsIDB4ZThkMCwgMCwgezB4NWMsMHg2MCwweDU3LDB4MTgsMHgxOCwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDQzLDB4MTgsMHgxOCwweDgyLDB4MTEgfSB9LAoteyAgMTYsIDB4ZThlMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHg1MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZThmMCwgMCwgezB4MTIsMHg0OCwweDA0LDB4OTAsMHgwMSwweDIwLDB4ODAsMHg0OSwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDI0LDB4ODAgfSB9LAoteyAgMTYsIDB4ZTkwMCwgMCwgezB4NDgsMHgyMCwweDEyLDB4NDgsMHgwMCwweDkyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDE3LDB4NDgsMHgwNCwweDgwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwNiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAgfSB9LAoteyAgMTYsIDB4ZTkyMCwgMCwgezB4MDYsMHgzYywweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4NDYsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZTkzMCwgMCwgezB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDQ2LDB4MTgsMHgwMSwweDgwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDEsMHg2MCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTk1MCwgMCwgezB4NDcsMHg4MCwweDExLDB4ZTAsMHgyNCwweDc4LDB4MDEsMHgxZSwweDAwLDB4MDcsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEgfSB9LAoteyAgMTYsIDB4ZTk2MCwgMCwgezB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGUwLDB4MDQsMHgzOCwweDAxLDB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZTk3MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgxMiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTk4MCwgMCwgezB4MDYsMHg0OCwweDAxLDB4OTIsMHgwMCwweDYwLDB4ODAsMHgxOSwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODIsMHgwMCwweDY0LDB4ODAgfSB9LAoteyAgMTYsIDB4ZTk5MCwgMCwgezB4MTgsMHgyMCwweDA2LDB4NDgsMHgwMSwweDkzLDB4MDAsMHgyMCwweDgwLDB4MTgsMHgyMCwweDA2LDB4NDgsMHgwMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSB9LAoteyAgMTYsIDB4ZTliMCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4MDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZTljMCwgMCwgezB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDhhLDB4MDQsMHg2MCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZTlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NDAsMHg4MSwweDEwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZTllMCwgMCwgezB4NDQsMHgwOCwweDExLDB4MDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4MDQsMHgwOCwweDExLDB4MDIsMHgwNCwweDQwLDB4ODEgfSB9LAoteyAgMTYsIDB4ZTlmMCwgMCwgezB4MTAsMHgyMSwweDQ0LDB4MDgsMHgwMSwweDAyLDB4MDQsMHg1MCwweDgxLDB4MTAsMHgyMCwweDA0LDB4MDgsMHgwMSwweDAwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWEwMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwMywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAgfSB9LAoteyAgMTYsIDB4ZWExMCwgMCwgezB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWEyMCwgMCwgezB4MTQsMHgzMCwweDA1LDB4MDgsMHgwMSwweDRhLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MDgsMHgwMSwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWE0MCwgMCwgezB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWE1MCwgMCwgezB4MTAsMHg4MCwweDA0LDB4MjAsMHgxMSwweDAwLDB4MDAsMHg0MiwweDAwLDB4MTAsMHg4MCwweDA0LDB4MjAsMHgxMSwweDAwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZWE2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZWE3MCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWE4MCwgMCwgezB4ODAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWE5MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MCwweDAwLDB4NjAsMHgwMSwweDE4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFhMCwgMCwgezB4NDYsMHgwMCwweDExLDB4ODAsMHgwNiwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZWFiMCwgMCwgezB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDY2LDB4MDAsMHgxMSwweDgwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZWFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MCwweDAyLDB4NjQsMHgwMCwweDk4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFkMCwgMCwgezB4MjYsMHgwMCwweDA5LDB4OTAsMHgwNiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MjYsMHg0MCwweDA5LDB4ODAsMHgwMiwweDYwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFlMCwgMCwgezB4OTgsMHgwMCwweDI2LDB4MDAsMHgwMCwweDkwLDB4MDIsMHg2MCwweDAwLDB4OTgsMHgwMCwweDA3LDB4MDAsMHgwMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg2MCwweDA0LDB4MzgsMHgwNSwweDBlLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWIwMCwgMCwgezB4NDMsMHg4MCwweDEwLDB4ZTAsMHg0NCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDEwLDB4ZTAsMHgwNCwweDM4LDB4MDEgfSB9LAoteyAgMTYsIDB4ZWIxMCwgMCwgezB4MGUsMHgwMCwweDQzLDB4ODAsMHgxOCwweGEwLDB4MDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQ2LDB4ODAsMHgxOCwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWIyMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDAsMHgwMSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAgfSB9LAoteyAgMTYsIDB4ZWIzMCwgMCwgezB4MDMsMHgwNCwweDAwLDB4YzUsMHgwMCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgxNCwweDAwLDB4YzEsMHgwMCwweDMwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWI0MCwgMCwgezB4MGMsMHgxMCwweDAzLDB4MDQsMHgwMCwweDg3LDB4NDAsMHgzMCwweDQwLDB4MGMsMHgxMCwweDAyLDB4MDQsMHgwMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHgwNSwweDAwLDB4MzUsMHg0MCwweDBjLDB4NTAgfSB9LAoteyAgMTYsIDB4ZWI2MCwgMCwgezB4MDMsMHgxNCwweDAwLDB4ZDUsMHgwNCwweDMxLDB4NDEsMHgwYywweDUwLDB4MDMsMHg1YywweDAwLDB4YzUsMHgwMCwweDMxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWI3MCwgMCwgezB4MGMsMHg1MCwweDAzLDB4MTAsMHgwMCwweDk0LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg1MCwweDQzLDB4MTAsMHgwMCwweGMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MywweDA1LDB4MjAsMHhjMSwweDE4LDB4MzAgfSB9LAoteyAgMTYsIDB4ZWI5MCwgMCwgezB4NDYsMHgwYywweDExLDB4OTcsMHgwMCwweDYwLDB4YzAsMHgxOCwweDMwLDB4NDYsMHgxYywweDExLDB4ODMsMHgwNCwweDYwLDB4YzEgfSB9LAoteyAgMTYsIDB4ZWJhMCwgMCwgezB4MTgsMHgzMCwweDUyLDB4MGMsMHgxMSwweDg3LDB4MDQsMHg2MCwweGMxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgxMSwweDgwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWJiMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwMCwweDAwLDB4MjEsMHg0MCwweDA4LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWJjMCwgMCwgezB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWJkMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0OCwweDQ0LDB4MjIsMHgwMSwweDE4LDB4ODQgfSB9LAoteyAgMTYsIDB4ZWJmMCwgMCwgezB4NDYsMHgyMSwweDExLDB4OTgsMHgwMCwweDYyLDB4MTAsMHgxOCwweDg0LDB4NDQsMHgyMCwweDExLDB4ODgsMHg0NCwweDYyLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWMwMCwgMCwgezB4MTgsMHg4NCwweDQyLDB4MjEsMHgxMSwweDgwLDB4NDQsMHg2MiwweDExLDB4MTgsMHg4NCwweDQ2LDB4MjEsMHgxMSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MCwweDA0LDB4NTAsMHgxMSwweDE0LDB4MDQgfSB9LAoteyAgMTYsIDB4ZWMyMCwgMCwgezB4NDUsMHgwMCwweDExLDB4NDEsMHgwMCwweDUwLDB4MTAsMHgxNCwweDAwLDB4NDUsMHgwMSwweDExLDB4NDAsMHg0NCwweDUwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWMzMCwgMCwgezB4MTQsMHgwNCwweDQ1LDB4MDEsMHgwMSwweDQwLDB4NDQsMHg1MCwweDExLDB4MTQsMHgwNCwweDA1LDB4MDEsMHgwMSwweDQwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWM0MCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIgfSB9LAoteyAgMTYsIDB4ZWM1MCwgMCwgezB4MDQsMHgyMCwweDAxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDggfSB9LAoteyAgMTYsIDB4ZWM2MCwgMCwgezB4MTAsMHg4MiwweDA0LDB4MjIsMHg4MSwweDA4LDB4MjAsMHg1MiwweDA4LDB4MTAsMHg4YSwweDA0LDB4MjIsMHg4MSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4NCwweDQwLDB4YTEgfSB9LAoteyAgMTYsIDB4ZWM4MCwgMCwgezB4MTAsMHgyOCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWM5MCwgMCwgezB4NDAsMHhhMCwweDEwLDB4MmMsMHgxNCwweDBhLDB4MDAsMHgwMiwweDgwLDB4NDAsMHhiMCwweDEwLDB4MmMsMHgxNCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAgfSB9LAoteyAgMTYsIDB4ZWNiMCwgMCwgezB4MzUsMHgzMCwweDBjLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAgfSB9LAoteyAgMTYsIDB4ZWNjMCwgMCwgezB4ZDQsMHhkMCwweDM1LDB4MzQsMHgwZCwweDRkLDB4MDIsMHgxMywweDQwLDB4ZDQsMHhkMCwweDM1LDB4MzQsMHgwZCwweDQwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWNkMCwgMCwgezB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwOCwweDA0LDB4NzIsMHgwMSwweDFjLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWNlMCwgMCwgezB4NDcsMHgyMCwweDE1LDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MTEgfSB9LAoteyAgMTYsIDB4ZWNmMCwgMCwgezB4MWMsMHg4MCwweDQ3LDB4MjYsMHgxMSwweGM4LDB4NDQsMHg3MiwweDAxLDB4MWMsMHg5MCwweDY3LDB4MjYsMHgxMSwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA4LDB4NDAsMHhjNiwweDEyLDB4MzEgfSB9LAoteyAgMTYsIDB4ZWQxMCwgMCwgezB4ODQsMHg4YywweDAxLDB4MDMsMHgwOCwweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHgwYywweDYxLDB4MjMsMHgxOCwweDQ4LDB4YzIgfSB9LAoteyAgMTYsIDB4ZWQyMCwgMCwgezB4MTIsMHgzMSwweDg0LDB4OGMsMHgwMSwweDAzLDB4MDgsMHg0OCwweGM2LDB4MTIsMHgzMSwweDA0LDB4OGMsMHgwMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZWQ0MCwgMCwgezB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZWQ1MCwgMCwgezB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZCwweGZiLDB4MGYsMHhiNiwweGMyLDB4Y2QgfSB9LAoteyAgMTYsIDB4ZWRhMCwgMCwgezB4YjAsMHhiNywweGZkLDB4M2YsMHhmYiwweDBiLDB4MzYsMHhjMiwweGRmLDB4YjAsMHhmYiwweDZjLDB4MmMsMHhkYiwweDBiLDB4N2UgfSB9LAoteyAgMTYsIDB4ZWRiMCwgMCwgezB4YzIsMHhjZCwweGIwLDB4YjcsMHhmZCwweDNmLDB4ZmIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGY0LDB4YjcsMHhmZCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweGZjLDB4NGYsMHhjZiwweDEzLDB4MzMgfSB9LAoteyAgMTYsIDB4ZWRkMCwgMCwgezB4YzQsMHhjZiwweGZkLDB4M2YsMHhmYywweDRjLDB4Y2YsMHgxMywweDNmLDB4YzQsMHhmYywweGYxLDB4MzMsMHgzYywweDRjLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZWRlMCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2YsMHhmZCwweDNmLDB4ZmMsMHg0YywweGNmLDB4MTMsMHgzMywweGY0LDB4Y2YsMHhmZCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjcgfSB9LAoteyAgMTYsIDB4ZWUwMCwgMCwgezB4ZTQsMHhlZCwweGY5LDB4M2YsMHhmZSwweDRlLDB4ZGYsMHg5MywweGI3LDB4ZTQsMHhlZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4YzcgfSB9LAoteyAgMTYsIDB4ZWUxMCwgMCwgezB4OTMsMHhiNywweGU0LDB4ZWMsMHg2MSwweDIzLDB4MWUsMHg0ZSwweGRmLDB4OTMsMHhiNywweDg0LDB4ZWMsMHg2MSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4MjQsMHhhMSwweDRhLDB4MjQgfSB9LAoteyAgMTYsIDB4ZWUzMCwgMCwgezB4NjMsMHgwMSwweDE0LDB4MDIsMHg0NCwweDAwLDB4ODEsMHgwYiwweDI4LDB4NzEsMHgwMiwweDEwLDB4ODIsMHg0MCwweDM4LDB4MTEgfSB9LAoteyAgMTYsIDB4ZWU0MCwgMCwgezB4NDEsMHgwNCwweDUwLDB4MDgsMHgxOCwweDgyLDB4ODcsMHgzOCwweDMxLDB4YzMsMHgyYywweDUyLDB4MGEsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQ1LDB4MTIsMHg4MSwweDQ0LDB4ODAgfSB9LAoteyAgMTYsIDB4ZWU2MCwgMCwgezB4NzEsMHgyMSwweDFjLDB4MGEsMHgwNywweDFhLDB4ODEsMHgwMiwweGEwLDB4NTIsMHgyMCwweDE0LDB4NDgsMHgwNywweDEyLDB4ODEgfSB9LAoteyAgMTYsIDB4ZWU3MCwgMCwgezB4YzYsMHg4MCwweDYwLDB4MjAsMHgwOCwweDg4LDB4NDcsMHgwMiwweDAxLDB4NGEsMHg4MCwweDcwLDB4MjAsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweGM1LDB4MmMsMHgwMSwweDRhLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWU5MCwgMCwgezB4NTIsMHgwOSwweDFjLDB4ODAsMHgwNywweDI0LDB4MjEsMHgwOCwweDA4LDB4NzEsMHgwMiwweDEwLDB4ODAsMHg0NSwweDIwLDB4YTEgfSB9LAoteyAgMTYsIDB4ZWVhMCwgMCwgezB4NDksMHgyOCwweDUyLDB4MDEsMHgxNCwweGMwLDB4NDUsMHgwMCwweDkxLDB4YzQsMHgwMCwweDcyLDB4MDIsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDA3LDB4MjAsMHgwMSwweGMxLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWVjMCwgMCwgezB4NzEsMHgwOSwweDEwLDB4ODAsMHgwNywweDAwLDB4MDEsMHgwMSwweDAwLDB4NzAsMHgwOCwweDE4LDB4ODAsMHgwNywweDAwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZWVkMCwgMCwgezB4ODksMHgyMCwweDUyLDB4MDEsMHgwYywweDgwLDB4NDYsMHgzMCwweDgxLDB4NDUsMHgwNCwweDYwLDB4MDAsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGMyLDB4MDIsMHgyMCwweDAwLDB4ODggfSB9LAoteyAgMTYsIDB4ZWVmMCwgMCwgezB4MjAsMHgyMiwweDAwLDB4MDgsMHhjMiwweDIyLDB4ODAsMHg0MCwweDg4LDB4MDIsMHgyMiwweDAwLDB4MDgsMHg4MiwweDBhLDB4YTAgfSB9LAoteyAgMTYsIDB4ZWYwMCwgMCwgezB4MGMsMHhhOCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwYSwweDAwLDB4ODAsMHg4YywweDAyLDB4MjIsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDQzLDB4MDAsMHgwMCwweDQwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZWYyMCwgMCwgezB4MzAsMHgwOCwweDA0LDB4NDAsMHg0MSwweDMwLDB4MTAsMHhjOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMywweDAwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZWYzMCwgMCwgezB4YzAsMHgwMCwweDExLDB4MDgsMHgwMCwweGMyLDB4NDMsMHgxMCwweDgwLDB4YzAsMHgyMCwweDAxLDB4MDgsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweGMzLDB4MGEsMHgyMCwweGMxLDB4OGMgfSB9LAoteyAgMTYsIDB4ZWY1MCwgMCwgezB4MTIsMHgyMiwweDA0LDB4ODgsMHgwMSwweDM2LDB4MjAsMHhjMywweDA4LDB4MTIsMHgyOCwweDA0LDB4MDgsMHgwMSwweDA0LDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY2MCwgMCwgezB4NGEsMHhhOCwweDIyLDB4MDEsMHgwNCwweGM4LDB4NDEsMHgyNiwweDMwLDB4YzAsMHg4OCwweDAyLDB4MjEsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAwLDB4MGEsMHgxMCwweGMxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZWY4MCwgMCwgezB4MzIsMHgyMSwweDBjLDB4ODgsMHg0MywweDAyLDB4ODAsMHg0NCwweDgwLDB4MTIsMHgyOSwweDA0LDB4MDgsMHg0MiwweDBhLDB4OTAgfSB9LAoteyAgMTYsIDB4ZWY5MCwgMCwgezB4OGEsMHg4MCwweDAwLDB4MjAsMHgwNCwweDQ4LDB4MDMsMHgwYSwweDEwLDB4ODIsMHg4MCwweDAwLDB4MjAsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYSwweDg3LDB4MDIsMHhhMSwweDgwLDB4YWMgfSB9LAoteyAgMTYsIDB4ZWZiMCwgMCwgezB4NDMsMHgyOSwweDE0LDB4OGEsMHg4NCwweDAyLDB4YTEsMHgwMCwweGFjLDB4NDEsMHgyMCwweDEwLDB4MDgsMHgwNiwweDI2LDB4MzEgfSB9LAoteyAgMTYsIDB4ZWZjMCwgMCwgezB4ODAsMHhhNCwweDYwLDB4MjAsMHgxNCwweDRhLDB4NDQsMHgzMiwweDgxLDB4ODEsMHhhYywweDYwLDB4MmEsMHgxOCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZWZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDA3LDB4MjIsMHgwMSwweGM1LDB4ODAgfSB9LAoteyAgMTYsIDB4ZWZlMCwgMCwgezB4NzMsMHgyMSwweDFjLDB4YzgsMHgwNywweDJhLDB4MDEsMHgwYywweDgwLDB4NzIsMHgyMCwweDEwLDB4NDgsMHg0NywweDI2LDB4MTEgfSB9LAoteyAgMTYsIDB4ZWZmMCwgMCwgezB4YzUsMHg4MCwweDczLDB4MjAsMHgxYywweDg4LDB4MDcsMHgyYSwweDExLDB4NDksMHg4MCwweDcwLDB4MjAsMHgxNCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjAwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDQ1LDB4MTAsMHgzMSwweGM5LDB4MGMgfSB9LAoteyAgMTYsIDB4ZjAxMCwgMCwgezB4NzMsMHgwMiwweDFjLDB4YzAsMHg0NywweDA0LDB4MDEsMHgwYSwweDBjLDB4NTEsMHgwYSwweDEwLDB4ODIsMHg0NywweDIwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZjAyMCwgMCwgezB4YzgsMHgwMCwweDcyLDB4MDIsMHgxYywweDQwLDB4MDUsMHgzMCwweDExLDB4YzQsMHgwMCwweDcyLDB4MDEsMHgxOCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHgxMCwweDA2LDB4MjQsMHgwMSwweDQ1LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjA0MCwgMCwgezB4NTEsMHg4MSwweDE4LDB4OTAsMHg0NywweDE0LDB4MDEsMHgwNCwweDA0LDB4NzEsMHg4OCwweDEwLDB4MTIsMHgwNSwweDM0LDB4MDEgfSB9LAoteyAgMTYsIDB4ZjA1MCwgMCwgezB4NDQsMHgwNCwweDUxLDB4NDAsMHgxOCwweGQwLDB4MDcsMHgzOCwweDAxLDB4YzQsMHgwNCwweDUyLDB4MDEsMHgxNCwweGMyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg3LDB4MDAsMHgyMSwweDg5LDB4MGMgfSB9LAoteyAgMTYsIDB4ZjA3MCwgMCwgezB4NjAsMHgwMSwweDFjLDB4ZDAsMHg0NSwweDI0LDB4MDEsMHhjMSwweDBjLDB4NDIsMHgwMSwweDAwLDB4MDAsMHhjNSwweDIwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZjA4MCwgMCwgezB4NDEsMHgwOCwweDQwLDB4MDAsMHgxOCwweDgwLDB4NDUsMHgwMCwweDIxLDB4NDEsMHgwYywweDcwLDB4NDIsMHgxYywweGMyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MWMsMHg4MCwweGM0LDB4MjAgfSB9LAoteyAgMTYsIDB4ZjBhMCwgMCwgezB4MzEsMHgwOCwweDEwLDB4NDIsMHg0MiwweDA4LDB4ODAsMHhjNiwweDIwLDB4MzEsMHgwOSwweDAwLDB4MjAsMHgwMywweDFjLDB4OTAgfSB9LAoteyAgMTYsIDB4ZjBiMCwgMCwgezB4YzQsMHgyMCwweDAxLDB4NDksMHgwYywweDQyLDB4NDMsMHgxMCwweDgwLDB4NDQsMHgyMCwweDMxLDB4MDgsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDgzLDB4MjAsMHgzMCwweDQ4LDB4MGMgfSB9LAoteyAgMTYsIDB4ZjBkMCwgMCwgezB4MzIsMHg0MCwweDEwLDB4OTAsMHg4MSwweDI0LDB4MjAsMHhjOCwweDA0LDB4MzIsMHg0MCwweDEwLDB4MjAsMHhjMywweDIwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjBlMCwgMCwgezB4YzgsMHgwMCwweDAyLDB4NGEsMHgwYywweGEwLDB4MDEsMHgyNCwweDEwLDB4YzgsMHgwOCwweDMyLDB4NDEsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDAzLDB4MDAsMHgwMCwweGM5LDB4MDQgfSB9LAoteyAgMTYsIDB4ZjEwMCwgMCwgezB4MzAsMHg0MCwweDAwLDB4OTAsMHgwMCwweDIwLDB4MDAsMHg4MCwweDAwLDB4MTAsMHg0MCwweDEwLDB4MDAsMHg0MCwweDIwLDB4MTAgfSB9LAoteyAgMTYsIDB4ZjExMCwgMCwgezB4YzIsMHgwMCwweDAwLDB4ODAsMHgwOCwweDIwLDB4NDMsMHgwOCwweDEwLDB4ODEsMHgwMCwweDMyLDB4NDAsMHgwYywweGMwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjEyMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjEzMCwgMCwgezB4MTAsMHgwMCwweDAwLDB4ZjAsMHgxMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDAwLDB4ZjAsMHgxMCwweDgwLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweGYwLDB4MTAsMHg5MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNjLDB4M2MsMHgxMCwweDgwLDB4OTAsMHg0MCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE2MCwgMCwgezB4MDAsMHg4MCwweDEwLDB4OTAsMHhhMCwweDkwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgxMCwweDhmLDB4MGYgfSB9LAoteyAgMTYsIDB4ZjE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyNCwweGM2LDB4YmEsMHgwNiwweGMwLDB4MWMgfSB9LAoteyAgMTYsIDB4ZjE5MCwgMCwgezB4NDksMHgyOCwweDYxLDB4MTQsMHgyYiwweDFjLDB4MGUsMHg0MCwweDNmLDB4ZDksMHhiZiwweGQ5LDB4YWEsMHhiYywweDFhLDB4NWYgfSB9LAoteyAgMTYsIDB4ZjFhMCwgMCwgezB4MDAsMHgxMCwweGE2LDB4NTAsMHgzYiwweDYxLDB4YjMsMHgyNSwweGJjLDB4NDAsMHgxOSwweGJmLDB4ZmYsMHhlOSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkyLDB4MTQsMHg5NCwweDgwLDB4MGMgfSB9LAoteyAgMTYsIDB4ZjFjMCwgMCwgezB4MDcsMHgzZiwweDJiLDB4OTQsMHg4NiwweDE0LDB4ODQsMHg4MCwweDI4LDB4MDAsMHgwMCwweDQ5LDB4MTQsMHgwNCwweDg2LDB4MTIgfSB9LAoteyAgMTYsIDB4ZjFkMCwgMCwgezB4ODAsMHgwMCwweDQxLDB4MjcsMHgzNCwweGQwLDB4OTAsMHg4NCwweDkyLDB4MDAsMHgyZCwweDhhLDB4MjEsMHgxZSwweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTIgfSB9LAoteyAgMTYsIDB4ZjFmMCwgMCwgezB4YjEsMHgwMSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDg0LDB4YjEsMHg3OCwweDI4LDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjIwMCwgMCwgezB4MDgsMHhiMSwweDMyLDB4MTQsMHgxNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhhOCwweDIzLDB4NTQsMHgyMSwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MmYsMHhmZiwweGZlLDB4ZjcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhkNywweGZlLDB4ZWYgfSB9LAoteyAgMTYsIDB4ZjIzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MGYsMHhlZiwweDc3LDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhmZiwweGZlLDB4ZWYgfSB9LAoteyAgMTYsIDB4ZjI2MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhiZiwweGZmLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjI5MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4N2YsMHgyZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhmZiwweGZmLDB4ZWYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWYsMHhlZiwweGVmLDB4ZWYgfSB9LAoteyAgMTYsIDB4ZjJjMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGVmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhhZiwweGRmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjJmMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjMyMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFmLDB4ZmYsMHhkZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweGM0LDB4MjQsMHhhMSwweDAwLDB4MmMgfSB9LAoteyAgMTYsIDB4ZjM0MCwgMCwgezB4NTIsMHgwYiwweDE4LDB4YzIsMHg4NiwweDJjLDB4YTEsMHg4MCwweDM4LDB4NjIsMHgwYSwweDA4LDB4NDAsMHhjNCwweDJjLDB4YTEgfSB9LAoteyAgMTYsIDB4ZjM1MCwgMCwgezB4MDgsMHgyOCwweDQyLDB4MGIsMHgxNCwweDAwLDB4ODUsMHgxNCwweGExLDB4MDgsMHgyOCwweDQzLDB4MGEsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MTIsMHgwMSwweDAzLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjM3MCwgMCwgezB4NjEsMHgyMCwweDEwLDB4MDgsMHgwNywweDEyLDB4NDEsMHg0MiwweDgwLDB4NzAsMHgyMCwweDFjLDB4MDgsMHgwNCwweDFhLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjM4MCwgMCwgezB4ODQsMHg4MSwweDQwLDB4MjAsMHgxOCwweDA4LDB4NDYsMHgzNiwweDgxLDB4MDUsMHg4MCwweDYzLDB4MjAsMHgxMCwweDAwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjM5MCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0LDB4MjQsMHgyMSwweDAwLDB4MGMgfSB9LAoteyAgMTYsIDB4ZjNhMCwgMCwgezB4NTIsMHgwMiwweDE0LDB4MDAsMHg4NywweDI4LDB4MjEsMHg4MSwweDA4LDB4NzIsMHgwNiwweDFjLDB4ODIsMHg4NCwweDIwLDB4MjEgfSB9LAoteyAgMTYsIDB4ZjNiMCwgMCwgezB4NDgsMHgxOCwweDQyLDB4MDMsMHg1NCwweDgwLDB4NDUsMHgzMCwweDI1LDB4NGEsMHgxOCwweDUzLDB4MDIsMHgxMCwweDAwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjNjMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4MjIsMHgwMSwweDAxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjNkMCwgMCwgezB4NDIsMHgyMCwweDE4LDB4YzgsMHg0NCwweDIyLDB4MDEsMHg4MCwweDg0LDB4NDIsMHgyMCwweDFjLDB4ODgsMHgwNCwweDIyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjNlMCwgMCwgezB4MDAsMHg4MCwweDQwLDB4MjAsMHgxMCwweDg4LDB4NDQsMHgzNiwweDAxLDB4NDAsMHg4MCwweDQxLDB4MDAsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDgsMHgyMCwweDAwLDB4MGMgfSB9LAoteyAgMTYsIDB4ZjQwMCwgMCwgezB4MjIsMHgwMywweDA0LDB4NDAsMHg4MSwweDAwLDB4MjAsMHg4NCwweDA4LDB4MDMsMHgwMCwweDAwLDB4ODAsMHhjMiwweDAwLDB4MjAgfSB9LAoteyAgMTYsIDB4ZjQxMCwgMCwgezB4YzQsMHgwOCwweDAwLDB4MDMsMHgwOCwweDg4LDB4ODIsMHgxNiwweGEwLDB4NDAsMHg4OCwweDMyLDB4MjIsMHg4MCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAxLDB4MDAsMHg4MCwweDA0LDB4MjAgfSB9LAoteyAgMTYsIDB4ZjQzMCwgMCwgezB4MTAsMHgwOCwweDBjLDB4YzIsMHgxMiwweDEwLDB4ODQsMHhjOCwweDIyLDB4MTIsMHgwOCwweDA0LDB4MDIsMHgwMywweDAwLDB4ODggfSB9LAoteyAgMTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgyMSwweDAwLDB4MGMsMHgwYywweDQwLDB4NDEsMHgzMCwweDAwLDB4ODQsMHgyMCwweDEwLDB4MDgsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDgyLDB4MDYsMHgyMCwweDA4LDB4OGMgfSB9LAoteyAgMTYsIDB4ZjQ2MCwgMCwgezB4MzIsMHgyMiwweDBjLDB4ODgsMHg4MSwweDI2LDB4MjAsMHg0ZCwweDg4LDB4MjMsMHgyMiwweDgwLDB4ODgsMHg4MywweDA2LDB4MjAgfSB9LAoteyAgMTYsIDB4ZjQ3MCwgMCwgezB4MDgsMHg4OCwweDAwLDB4MjMsMHgwNCwweDhhLDB4ODEsMHgzNiwweDIwLDB4NGIsMHg4OCwweDMyLDB4MjIsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAyLDB4MDIsMHgwMCwweDA5LDB4ODAgfSB9LAoteyAgMTYsIDB4ZjQ5MCwgMCwgezB4MzIsMHgyMCwweDA0LDB4ODgsMHg2MCwweDIyLDB4MDAsMHg4OSwweDg0LDB4MDAsMHgyMCwweDA4LDB4OTgsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjRhMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDIsMHgzYSwweDgwLDB4NDgsMHg4MCwweDMwLDB4MjAsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwYSwweGM0LDB4MWEsMHhhMSwweDgwLDB4YTggfSB9LAoteyAgMTYsIDB4ZjRjMCwgMCwgezB4NDEsMHgyYSwweDEwLDB4Y2EsMHhjNywweDFhLDB4YTEsMHgwNCwweGFkLDB4NzEsMHgyYSwweDE4LDB4NGEsMHhkNCwweDA2LDB4YjEgfSB9LAoteyAgMTYsIDB4ZjRkMCwgMCwgezB4MDAsMHhhOCwweDcxLDB4MmEsMHgxMCwweDA4LDB4ODQsMHgyNiwweDI5LDB4MDYsMHhhYywweDUyLDB4MmEsMHgxMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDA0LDB4MmEsMHgwMSwweDQxLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjRmMCwgMCwgezB4NDIsMHgyMCwweDFjLDB4MDAsMHgwNCwweDBhLDB4MDEsMHgwOSwweDg0LDB4NTEsMHgyMCwweDFjLDB4ODgsMHg0NCwweDAyLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjUwMCwgMCwgezB4MDgsMHg4MCwweDQwLDB4MjAsMHgxMCwweDRhLDB4NDcsMHgwMiwweDAxLDB4NDgsMHg4MCwweDYzLDB4MjAsMHgxMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjUxMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweGM0LDB4MTAsMHgyMSwweDgxLDB4MGMgfSB9LAoteyAgMTYsIDB4ZjUyMCwgMCwgezB4NDEsMHgwMiwweDBjLDB4MDAsMHhjMCwweDIwLDB4NjEsMHgwZCwweDBlLDB4NzIsMHgwMiwweDFjLDB4NDAsMHhjNCwweDA4LDB4MzEgfSB9LAoteyAgMTYsIDB4ZjUzMCwgMCwgezB4MDQsMHgxOCwweDQyLDB4MDIsMHgxMCwweDgwLDB4ODcsMHgyMCwweGIxLDB4YzQsMHgwYywweDUzLDB4MDIsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHgyMCwweDA3LDB4MjQsMHgwMSwweGNjLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjU1MCwgMCwgezB4NzIsMHg0MCwweDE0LDB4MDAsMHgwNCwweDI0LDB4MDEsMHgwOCwweDAwLDB4NzMsMHg0MSwweDEwLDB4YzAsMHgwNywweDMwLDB4MTEgfSB9LAoteyAgMTYsIDB4ZjU2MCwgMCwgezB4Y2MsMHgwMCwweDcxLDB4MDEsMHgxMCwweDAyLDB4MDQsMHgyMCwweDgxLDB4NDYsMHgxMCwweDQyLDB4NDAsMHgxMCwweDAyLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweGM1LDB4MTAsMHgyMSwweDAwLDB4MDggfSB9LAoteyAgMTYsIDB4ZjU4MCwgMCwgezB4NjIsMHgwMiwweDFjLDB4OTAsMHhjNSwweDI0LDB4MjEsMHgwMCwweDBjLDB4NzAsMHg4MiwweDFjLDB4MTAsMHhjNCwweDIwLDB4MzEgfSB9LAoteyAgMTYsIDB4ZjU5MCwgMCwgezB4ODgsMHgwMiwweDQwLDB4MDYsMHgxYywweDAwLDB4ODUsMHgwMCwweGExLDB4MDAsMHgwYywweDQwLDB4NDIsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMiwweDA1LDB4MTQsMHg4MCwweDAxLDB4MjAgfSB9LAoteyAgMTYsIDB4ZjViMCwgMCwgezB4MzAsMHgwOCwweDBjLDB4NDIsMHgwNiwweDAwLDB4ODAsMHgwMSwweDI0LDB4NTEsMHgwOCwweDBjLDB4MDIsMHg0MSwweDAwLDB4ODAgfSB9LAoteyAgMTYsIDB4ZjVjMCwgMCwgezB4NGMsMHgyMCwweDAwLDB4MDgsMHgwYywweDMwLDB4NDIsMHgwNCwweDAwLDB4MDQsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweGM2LDB4MjQsMHgyMCwweDAwLDB4MGMgfSB9LAoteyAgMTYsIDB4ZjVlMCwgMCwgezB4MzIsMHhjMiwweDA0LDB4ODAsMHhjNywweDMwLDB4MjAsMHgwMCwweDBjLDB4NTMsMHhjMiwweDA0LDB4MTAsMHhjMiwweDI4LDB4NzAgfSB9LAoteyAgMTYsIDB4ZjVmMCwgMCwgezB4MGMsMHgwOSwweDAyLDB4MDIsMHg0YywweDgwLDB4ODEsMHgwNCwweDMwLDB4MDksMHgwYywweDAyLDB4NDIsMHgxMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4MCwweDAxLDB4MzgsMHgwMCwweDAyLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjYxMCwgMCwgezB4MTIsMHg0MCwweDBjLDB4MjAsMHgwNywweDM0LDB4MDQsMHgwMiwweDAwLDB4NjMsMHgwMSwweDA4LDB4MTAsMHgwMCwweDI0LDB4MTAgfSB9LAoteyAgMTYsIDB4ZjYyMCwgMCwgezB4MDQsMHgwMCwweDAyLDB4MDEsMHgwNCwweDgyLDB4MDEsMHgwOCwweDgwLDB4MDksMHgxMCwweDAyLDB4NDAsMHgxMCwweDAwLDB4MDQgfSB9LAoteyAgMTYsIDB4ZjYzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDIwLDB4MTAsMHg4MCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY0MCwgMCwgezB4MjAsMHg4MCwweDAwLDB4ZjAsMHgyMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDAwLDB4ZDAsMHg4MCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MTAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGNjLDB4NDAgfSB9LAoteyAgMTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNjLDB4M2MsMHgxMCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjY3MCwgMCwgezB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDAwLDB4OTAgfSB9LAoteyAgMTYsIDB4ZjY4MCwgMCwgezB4ODAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDEwLDB4YTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgxMCwweDhjLDB4MDggfSB9LAoteyAgMTYsIDB4ZjY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzNCwweDFhLDB4YmUsMHgxNywweDgwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjZhMCwgMCwgezB4M2UsMHg0MCwweDI2LDB4NmYsMHhiYSwweGUzLDB4MjQsMHg4MCwweDAwLDB4MTYsMHg1OSwweGJkLDB4ODIsMHg4MSwweDgyLDB4ZDggfSB9LAoteyAgMTYsIDB4ZjZiMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MTksMHg5OSwweDg2LDB4ODAsMHg2NCwweDgwLDB4YzAsMHgzZiwweGQ5LDB4OTksMHg4MCwweDAwLDB4MDEgfSB9LAoteyAgMTYsIDB4ZjZjMCwgMCwgezB4ZjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDE2LDB4MDIsMHg5NCwweDAwLDB4MTYgfSB9LAoteyAgMTYsIDB4ZjZkMCwgMCwgezB4YzAsMHgxNiwweDk0LDB4ODIsMHg5MCwweDE2LDB4MTAsMHg4MCwweDIxLDB4MTgsMHgyOCwweDI4LDB4MDIsMHgwYSwweDAyLDB4MDggfSB9LAoteyAgMTYsIDB4ZjZlMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODIsMHg4MCwweDE0LDB4MDAsMHgwMSwweDE0LDB4MTEsMHhhMCwweDQwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODQgfSB9LAoteyAgMTYsIDB4ZjcwMCwgMCwgezB4MDIsMHg4NCwweGE4LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDkxLDB4MjIsMHg4NCwweDQxLDB4YTIsMHgwOCwweDI0LDB4MDEgfSB9LAoteyAgMTYsIDB4ZjcxMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCwweDAxLDB4NDQsMHgwMSwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2UsMHhmNywweGZmLDB4ZjcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhlNywweGI3LDB4ZmYgfSB9LAoteyAgMTYsIDB4Zjc0MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmUsMHg3ZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MzYsMHhiZiwweGZlLDB4ZGYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHhmNywweGRmLDB4ZmYgfSB9LAoteyAgMTYsIDB4Zjc3MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNkLDB4YjcsMHhiNywweGVmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhkZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHhkZiwweGRmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjdhMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhiZiwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweDdmLDB4ZjcgfSB9LAoteyAgMTYsIDB4ZjdkMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHg3ZSwweGZmLDB4ZmYsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZSwweGZmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjgwMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MzcsMHhmZiwweDZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSB9LAoteyAgMTYsIDB4ZjgzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg4MCwgMCwgezB4MzAsMHgwMCwweDQzLDB4MGMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZjkwMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4Zjk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZjljMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYgfSB9LAoteyAgMTYsIDB4ZmEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YgfSB9LAoteyAgMTYsIDB4ZmE4MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MGYgfSB9LAoteyAgMTYsIDB4ZmFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTMsMHg2YiwweDAwLDB4YzAsMHgwMCwweGNmLDB4MmMgfSB9LAoteyAgMTYsIDB4ZmI0MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZmMwMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgzZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDNmLDB4YzAsMHgzZiwweGMwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZmNjMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MGYgfSB9LAoteyAgMTYsIDB4ZmQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4M2YgfSB9LAoteyAgMTYsIDB4ZmQ4MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDNmLDB4YzAsMHgzZiwweGMwLDB4MGYgfSB9LAoteyAgMTYsIDB4ZmRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MzMsMHg1ZCwweDgwLDB4YzAsMHgwMCwweGZkLDB4YWMgfSB9LAoteyAgMTYsIDB4ZmU0MCwgMCwgezB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZmYwMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MzAgfSB9LAoteyAgMTYsIDB4ZmZjMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ZmZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYgfSB9LAoteyAgMTYsIDB4ODAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YgfSB9LAoteyAgMTYsIDB4ODA5MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDMwLDB4YzAsMHgzMCwweGMwLDB4MGYgfSB9LAoteyAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTMsMHg3NCwweGMwLDB4YzAsMHgwMCwweGYwLDB4ZWMgfSB9LAoteyAgMTYsIDB4ODE1MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHhjMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MzAgfSB9LAoteyAgMTYsIDB4ODIxMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4YzAsMHgzZiwweGMwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTksMHg4NiwweDEwLDB4ODAsMHgzMCwweDgyLDB4M2QgfSB9LAoteyAgMTYsIDB4ODJkMCwgMCwgezB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4MGYgfSB9LAoteyAgMTYsIDB4ODMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhjMCwweDBmLDB4MDAsMHgwZiwweDAwLDB4M2YgfSB9LAoteyAgMTYsIDB4ODM5MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGYsMHgwMCwweDNmLDB4YzAsMHgzZiwweGMwLDB4MGYgfSB9LAoteyAgMTYsIDB4ODNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM3LDB4NjUsMHgyNSwweGU0LDB4ODAsMHgwMCwweGIwLDB4ODggfSB9LAoteyAgMTYsIDB4ODQ1MCwgMCwgezB4YWIsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDIsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4ODlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OGZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBkMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDQsMHg3MiwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDMgfSB9LAoteyAgMTYsIDB4OTBlMCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MGMsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTYsIDB4OTExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA1LDB4MzAsMHgwMCwweGEwLDB4MDEgfSB9LAoteyAgMTYsIDB4OTEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHhlMSwweDVhLDB4MDAsMHgwMCwweDAwLDB4MDAgfSB9LAoteyAgMTIsIDB4OTEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH0gfSwKLXsgIDAgLCAweDAwMDAsIDEsIHswIH19Ci19OwotLy8gVkVSU0lPTj0xLjEuMS4xMzEKLS8vIERBVEU9MjAwMWRlYzA2Ci0vLyBQUk9EVUNUPUVNSSAyfDYKLS8qCi0gKiBUaGlzIGZpcm13YXJlIGlzIGZvciB0aGUgRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlCi0gKgotICogVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgRW1hZ2ljCi0gKiBhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQKLSAqIG9yIHB1YmxpYyBhY2Nlc3MgdG8gdGhpcyBmaXJtd2FyZSB3aGljaCBpcyBhIHRyYWRlIHNlY3JldCBvZiBFbWFnaWMsCi0gKiBhbmQgd2hpY2ggbWF5IG5vdCBiZSByZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvCi0gKiBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCBFbWFnaWMncyB3cml0dGVuIGNvbnNlbnQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggdGhlCi0gKiBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UuIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mCi0gKiBhbnkgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsCi0gKiByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LgotICovCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX0Zpcm13YXJlW10gPSB7Ci17ICAgMywweDAwMDAsMCx7MHgwMiwweDQzLDB4NTZ9IH0sCi17ICAgMywweDAwMDMsMCx7MHgwMiwweDRiLDB4Y2R9IH0sCi17ICAgMywweDAwMGIsMCx7MHgwMiwweDRiLDB4ZDJ9IH0sCi17ICAgMywweDAwMTMsMCx7MHgwMiwweDRiLDB4OTJ9IH0sCi17ICAgMywweDAwMWIsMCx7MHgwMiwweDRiLDB4ZDV9IH0sCi17ICAgMywweDAwMjMsMCx7MHgwMiwweDFiLDB4Mzl9IH0sCi17ICAgMywweDAwMmIsMCx7MHgwMiwweDQzLDB4ZTJ9IH0sCi17ICAgMywweDAwMzMsMCx7MHgwMiwweDNmLDB4ZjN9IH0sCi17ICAgMywweDAwM2IsMCx7MHgwMiwweDRiLDB4YzB9IH0sCi17ICAgMywweDAwNDMsMCx7MHgwMiwweDQ3LDB4MDB9IH0sCi17ICAgMywweDAwNGIsMCx7MHgwMiwweDNmLDB4ZmN9IH0sCi17ICAgMywweDAwNTMsMCx7MHgwMiwweDM3LDB4ZmF9IH0sCi17ICAgMywweDAwNWIsMCx7MHgwMiwweDRiLDB4Yzd9IH0sCi17ICAgMywweDAwNjMsMCx7MHgwMiwweDQ2LDB4ZmN9IH0sCi17ICAxNiwweDA1MDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0gfSwKLXsgIDE2LDB4MDUxMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4YjgsMHgwMSwweDAzLDB4MDEsMHgwMCwweDgwLDB4YTAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgwNTIwLDAsezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwYSwweDI0LDB4MDEsMHgwMCwweDAxLDB4NTYsMHgwMCwweDAyLDB4MDEsMHgwMiwweDBjLDB4MjR9IH0sCi17ICAxNiwweDA1MzAsMCx7MHgwMiwweDAxLDB4MDEsMHgwMSwweDAwLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4MjQsMHgwNiwweDA1LDB4MDEsMHgwMn0gfSwKLXsgIDE2LDB4MDU0MCwwLHsweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA5fSB9LAoteyAgMTYsMHgwNTUwLDAsezB4MjQsMHgwMywweDAyLDB4MDQsMHgwMywweDAwLDB4MDUsMHgwMCwweDBjLDB4MjQsMHgwMiwweDAzLDB4MDEsMHgwMiwweDAwLDB4MDJ9IH0sCi17ICAxNiwweDA1NjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4MjQsMHgwNiwweDA2LDB4MDMsMHgwMiwweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MDU3MCwwLHsweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMCwweDAxfSB9LAoteyAgMTYsMHgwNTgwLDAsezB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAxLDB4MDEsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDF9IH0sCi17ICAxNiwweDA1OTAsMCx7MHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDIsMHgxMCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYn0gfSwKLXsgIDE2LDB4MDVhMCwwLHsweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxfSB9LAoteyAgMTYsMHgwNWIwLDAsezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA2LDB4MDAsMHgwOSwweDA0LDB4MDF9IH0sCi17ICAxNiwweDA1YzAsMCx7MHgwMiwweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMCwweDBlLDB4MjQsMHgwMn0gfSwKLXsgIDE2LDB4MDVkMCwwLHsweDAxLDB4MDYsMHgwMiwweDEwLDB4MDIsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwOSwweDA1LDB4MGEsMHgwNSwweDRjfSB9LAoteyAgMTYsMHgwNWUwLDAsezB4MDIsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDUsMHg4ZiwweDAxLDB4MDN9IH0sCi17ICAxNiwweDA1ZjAsMCx7MHgwMCwweDAxLDB4MDYsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAzLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMX0gfSwKLXsgIDE2LDB4MDYwMCwwLHsweDAxLDB4MDAsMHgwMSwweDAwLDB4MGUsMHgyNCwweDAyLDB4MDEsMHgwNiwweDAzLDB4MTgsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwfSB9LAoteyAgMTYsMHgwNjEwLDAsezB4YmIsMHgwMCwweDA5LDB4MDUsMHgwYSwweDA1LDB4NzIsMHgwMywweDAxLDB4MDAsMHg4ZiwweDA3LDB4MjUsMHgwMSwweDAxLDB4MDB9IH0sCi17ICAxNiwweDA2MjAsMCx7MHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDQsMHgwMn0gfSwKLXsgIDE2LDB4MDYzMCwwLHsweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDAsMHgwYiwweDI0LDB4MDIsMHgwMSwweDAyfSB9LAoteyAgMTYsMHgwNjQwLDAsezB4MDMsMHgxOCwweDAxLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDhmLDB4MDd9IH0sCi17ICAxNiwweDA2NTAsMCx7MHgyNSwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA2LDB4MDAsMHgwOX0gfSwKLXsgIDE2LDB4MDY2MCwwLHsweDA0LDB4MDIsMHgwMCwweDAwLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwMSwweDAxLDB4MDEsMHgwMiwweDAwfSB9LAoteyAgMTYsMHgwNjcwLDAsezB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDN9IH0sCi17ICAxNiwweDA2ODAsMCx7MHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4OGMsMHgwNSwweDg0LDB4MDEsMHgwMX0gfSwKLXsgIDE2LDB4MDY5MCwwLHsweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAyLDB4MDEsMHgwMSwweDAyfSB9LAoteyAgMTYsMHgwNmEwLDAsezB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyLDB4MDEsMHgwMiwweDAzLDB4MTh9IH0sCi17ICAxNiwweDA2YjAsMCx7MHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDUsMHg4YywweDA1LDB4NDYsMHgwMn0gfSwKLXsgIDE2LDB4MDZjMCwwLHsweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDUsMHgwYywweDA5LDB4MDEsMHhhMSwweDAxfSB9LAoteyAgMTYsMHgwNmQwLDAsezB4MDUsMHgwYywweDA5LDB4ZTksMHgwNSwweDBjLDB4MDksMHhlYSwweDE1LDB4MDAsMHgyNSwweDAxLDB4OTUsMHgwMiwweDc1LDB4MDF9IH0sCi17ICAxNiwweDA2ZTAsMCx7MHg4MSwweDQyLDB4OTUsMHgwMSwweDc1LDB4MDYsMHg4MSwweDAxLDB4MDUsMHgwYywweDA5LDB4MDAsMHgwNSwweDBjLDB4MDksMHgwMH0gfSwKLXsgIDE2LDB4MDZmMCwwLHsweDE1LDB4MDAsMHgyNSwweDAxLDB4OTUsMHgwMiwweDc1LDB4MDEsMHg5MSwweDA2LDB4OTUsMHgwMSwweDc1LDB4MDYsMHg5MSwweDAzfSB9LAoteyAgMTYsMHgwNzAwLDAsezB4YzAsMHgwNCwweDAzLDB4MDksMHgwNCwweDE4LDB4MDMsMHg0NSwweDAwLDB4NGQsMHgwMCwweDQxLDB4MDAsMHg0NywweDAwLDB4NDl9IH0sCi17ICAxNiwweDA3MTAsMCx7MHgwMCwweDQzLDB4MDAsMHgyMCwweDAwLDB4NDcsMHgwMCwweDZkLDB4MDAsMHg2MiwweDAwLDB4NDgsMHgwMCwweDFlLDB4MDMsMHg0NX0gfSwKLXsgIDE2LDB4MDcyMCwwLHsweDAwLDB4NmQsMHgwMCwweDYxLDB4MDAsMHg2NywweDAwLDB4NjksMHgwMCwweDYzLDB4MDAsMHgyMCwweDAwLDB4NDUsMHgwMCwweDRkfSB9LAoteyAgMTYsMHgwNzMwLDAsezB4MDAsMHg0OSwweDAwLDB4MjAsMHgwMCwweDMyLDB4MDAsMHg3YywweDAwLDB4MzYsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwLDB4NmZ9IH0sCi17ICAxNiwweDA3NDAsMCx7MHgwMCwweDZlLDB4MDAsMHg2NiwweDAwLDB4NjksMHgwMCwweDY3LDB4MDAsMHg3NSwweDAwLDB4NzIsMHgwMCwweDYxLDB4MDAsMHg3NH0gfSwKLXsgIDE2LDB4MDc1MCwwLHsweDAwLDB4NjksMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5fSB9LAoteyAgMTYsMHgwNzYwLDAsezB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDMsMHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwLDB4NzJ9IH0sCi17ICAxNiwweDA3NzAsMCx7MHgwMCwweDY2LDB4MDAsMHg2MSwweDAwLDB4NjMsMHgwMCwweDY1LDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3Mn0gfSwKLXsgICA5LDB4MDc4MCwwLHsweDAwLDB4NjksMHgwMCwweDZlLDB4MDAsMHg2NywweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MDc4OSwwLHsweDc0LDB4MDAsMHhmNSwweDg2LDB4OTAsMHhmZCwweGE1LDB4N2MsMHgwNSwweGEzLDB4ZTUsMHg4MiwweDQ1LDB4ODMsMHg3MCwweGY5fSB9LAoteyAgIDEsMHgwNzk5LDAsezB4MjJ9IH0sCi17ICAxNiwweDA3OWEsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4ODcsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn0gfSwKLXsgIDE2LDB4MDdhYSwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweDhkLDB4ZTAsMHhjMCwweGUwfSB9LAoteyAgMTYsMHgwN2JhLDAsezB4OGMsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4MywweDA1LDB4ODYsMHhjMCwweDg0LDB4YzAsMHg4NSwweGU1LDB4MTh9IH0sCi17ICAxNiwweDA3Y2EsMCx7MHhiNCwweDAyLDB4MDMsMHgwMiwweDA3LDB4ZDksMHhiNCwweDAxLDB4MDMsMHgwMiwweDA3LDB4ZGUsMHgwMiwweDA3LDB4ZmEsMHg3ZH0gfSwKLXsgIDE2LDB4MDdkYSwwLHsweDAxLDB4MDIsMHgwOCwweDE2LDB4ZTUsMHgxOSwweDE0LDB4ZjUsMHgxOSwweGMzLDB4YjUsMHgxMywweDAzLDB4MDIsMHgwNywweGY1fSB9LAoteyAgMTYsMHgwN2VhLDAsezB4NTAsMHgwOSwweGI0LDB4MDAsMHhlYSwweDc1LDB4MTksMHgwYSwweDAyLDB4MDcsMHhkOSwweDdkLDB4MDAsMHgwMiwweDA4LDB4MTZ9IH0sCi17ICAxNiwweDA3ZmEsMCx7MHhlNSwweDE5LDB4MTQsMHhmNSwweDE5LDB4YzMsMHhiNSwweDE0LDB4MDMsMHgwMiwweDA4LDB4MTEsMHg1MCwweDA5LDB4YjQsMHgwMH0gfSwKLXsgIDE2LDB4MDgwYSwwLHsweGNlLDB4NzUsMHgxOSwweDBhLDB4MDIsMHgwNywweGQ5LDB4N2QsMHgwMiwweDAyLDB4MDgsMHgxNiwweDdjLDB4MDUsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwODFhLDAsezB4OTksMHhlMCwweDU0LDB4NDAsMHhkYywweDAzLDB4MDIsMHgwOCwweDQzLDB4YjQsMHgwMCwweDFkLDB4OTAsMHg3ZiwweGUzLDB4NzR9IH0sCi17ICAxNiwweDA4MmEsMCx7MHg3YiwweGYwLDB4YTMsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDQwLDB4ZjAsMHg5MCwweDdmLDB4ZTUsMHhmMH0gfSwKLXsgIDE2LDB4MDgzYSwwLHsweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDAyLDB4MDgsMHgxOCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwfSB9LAoteyAgMTYsMHgwODRhLDAsezB4ZjAsMHg5MCwweDc5LDB4NjUsMHhlMCwweGI0LDB4MDEsMHgwMywweDAyLDB4MDgsMHg5ZSwweGI0LDB4MDIsMHgwMywweDAyLDB4MDh9IH0sCi17ICAxNiwweDA4NWEsMCx7MHg5NiwweGI0LDB4MDMsMHgwMywweDAyLDB4MDgsMHg4ZSwweGI0LDB4MDQsMHgwMywweDAyLDB4MDgsMHg4NiwweGI0LDB4MDUsMHgwM30gfSwKLXsgIDE2LDB4MDg2YSwwLHsweDAyLDB4MDgsMHg3ZSwweGI0LDB4MDYsMHgwMywweDAyLDB4MDgsMHg3NiwweDAyLDB4MDgsMHhmNCwweDA1LDB4ODYsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwODdhLDAsezB4NmMsMHgwMiwweDA4LDB4ZTksMHgwNSwweDg2LDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgwOCwweGRkLDB4MDUsMHg4NiwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDA4OGEsMCx7MHg2YywweDAyLDB4MDgsMHhjZiwweDA1LDB4ODYsMHg5MCwweDdmLDB4NmMsMHgwMiwweDA4LDB4YzAsMHgwNSwweDg2LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDg5YSwwLHsweDZjLDB4MDIsMHgwOCwweGIyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHg2YywweGYwLDB4MDAsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGYwfSB9LAoteyAgMTYsMHgwOGFhLDAsezB4MGQsMHhlZCwweGI0LDB4MmQsMHhmNCwweDAyLDB4MDgsMHhmNCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweDBkLDB4ZWR9IH0sCi17ICAxNiwweDA4YmEsMCx7MHhiNCwweDJkLDB4ZjUsMHgwMiwweDA4LDB4ZjQsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGYwLDB4MDAsMHhmMCwweDBkLDB4ZWQsMHhiNH0gfSwKLXsgIDE2LDB4MDhjYSwwLHsweDMxLDB4ZjQsMHgwMiwweDA4LDB4ZjQsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHgwZCwweGVkLDB4YjQsMHgzMSwweGY1fSB9LAoteyAgMTYsMHgwOGRhLDAsezB4MDIsMHgwOCwweGY0LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHgwZCwweGVkLDB4YjQsMHg2MSwweGY3LDB4MDIsMHgwOCwweGY0LDB4ZjB9IH0sCi17ICAxNiwweDA4ZWEsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4MGQsMHhlZCwweGI0LDB4NjEsMHhmNSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMH0gfSwKLXsgIDE2LDB4MDhmYSwwLHsweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZkfSB9LAoteyAgIDUsMHgwOTBhLDAsezB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMH0gfSwKLXsgICA2LDB4MDkwZiwwLHsweGZmLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0gfSwKLXsgIDE2LDB4MDkxNSwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODMsMHg5MCwweDdmLDB4NmYsMHhlNSwweDBjLDB4ZjAsMHhlNSwweDBkfSB9LAoteyAgMTMsMHgwOTI1LDAsezB4ZjAsMHhlNSwweDBlLDB4ZjAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDA5MzIsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4M30gfSwKLXsgIDE2LDB4MDk0MiwwLHsweDA1LDB4ODYsMHhjMCwweDg0LDB4YzAsMHg4NSwweDkwLDB4NzksMHg3MCwweGUwLDB4ZmYsMHhiZiwweDAwLDB4MDMsMHgwMiwweDBhfSB9LAoteyAgMTYsMHgwOTUyLDAsezB4YjgsMHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDA5NjIsMCx7MHg2MiwweGUwLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHg3Zn0gfSwKLXsgIDE2LDB4MDk3MiwwLHsweGYwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3OSwweDg4LDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgwMiwweDA5fSB9LAoteyAgMTYsMHgwOTgyLDAsezB4YmUsMHhiNCwweDAyLDB4MDMsMHgwMiwweDA5LDB4YzMsMHhiNCwweDAzLDB4MDMsMHgwMiwweDA5LDB4YWMsMHhiNCwweDA0LDB4MDN9IH0sCi17ICAxNiwweDA5OTIsMCx7MHgwMiwweDA5LDB4OWEsMHgwNSwweDg2LDB4MDIsMHgwYSwweGIyLDB4ZWYsMHg1NCwweDAzLDB4ZmUsMHhlZiwweDAzLDB4MDMsMHg1NH0gfSwKLXsgIDE2LDB4MDlhMiwwLHsweDNmLDB4ZmYsMHg5MCwweDdmLDB4NjMsMHgwNSwweDg2LDB4MDIsMHgwOSwweGM5LDB4ZWYsMHg1NCwweDAzLDB4ZmUsMHhlZiwweDAzfSB9LAoteyAgMTYsMHgwOWIyLDAsezB4MDMsMHg1NCwweDNmLDB4ZmYsMHg5MCwweDdmLDB4NjMsMHgwNSwweDg2LDB4MDIsMHgwYSwweDM2LDB4MDUsMHg4NiwweDAyLDB4MGF9IH0sCi17ICAxNiwweDA5YzIsMCx7MHhhNSwweDA1LDB4ODYsMHgwMiwweDBhLDB4OGUsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MDlkMiwwLHsweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2fSB9LAoteyAgMTYsMHgwOWUyLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDA5ZjIsMCx7MHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGRmLDB4Y2EsMHhlZSwweGI0LDB4MDAsMHgwM30gfSwKLXsgIDE2LDB4MGEwMiwwLHsweDAyLDB4MGEsMHhiMiwweGI0LDB4MDEsMHgwMywweDAyLDB4MGEsMHgyNSwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1fSB9LAoteyAgMTYsMHgwYTEyLDAsezB4ODYsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDBhMjIsMCx7MHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4Nn0gfSwKLXsgIDE2LDB4MGEzMiwwLHsweDAyLDB4MGEsMHhiMiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweGUwfSB9LAoteyAgMTMsMHgwYTQyLDAsezB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODZ9IH0sCi17ICAxNiwweDBhNGYsMCx7MHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNSwweDg2LDB4ZGYsMHhkNn0gfSwKLXsgIDE2LDB4MGE1ZiwwLHsweGVlLDB4YjQsMHgwMCwweDAzLDB4MDIsMHgwYSwweGIyLDB4YjQsMHgwMSwweDAzLDB4MDIsMHgwYSwweDgwLDB4ZTAsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwYTZmLDAsezB4ZTAsMHgwNSwweDg2LDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4ZTAsMHhlMCwweDA1LDB4ODYsMHhlMCwweGUwLDB4MDV9IH0sCi17ICAxNiwweDBhN2YsMCx7MHg4NiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4MDUsMHg4NiwweGUwLDB4ZTAsMHgwNSwweDg2LDB4MDIsMHgwYSwweGIyLDB4ZTAsMHhlMH0gfSwKLXsgIDE2LDB4MGE4ZiwwLHsweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwfSB9LAoteyAgMTYsMHgwYTlmLDAsezB4ZGYsMHhlYywweDAyLDB4MGEsMHhiMiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZTB9IH0sCi17ICAxNiwweDBhYWYsMCx7MHhlMCwweGRmLDB4ZjIsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODYsMHhkMH0gfSwKLXsgIDE0LDB4MGFiZiwwLHsweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDBhY2QsMCx7MHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZTAsMHhlOCwweGMwLDB4ZTAsMHg3OCwweGQxLDB4ZTgsMHgxNCwweGY4LDB4NzAsMHhmYn0gfSwKLXsgIDEwLDB4MGFkZCwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfSB9LAoteyAgMTYsMHgwYWU3LDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4OGQsMHhlMCwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDBhZjcsMCx7MHg4YywweGUwLDB4YzAsMHhlMCwweDc1LDB4ODYsMHgwMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMH0gfSwKLXsgIDE2LDB4MGIwNywwLHsweDg1LDB4N2UsMHgwMCwweDkwLDB4NzksMHg4ZSwweGUwLDB4YjQsMHgwMCwweDE2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHgwNiwweGNhfSB9LAoteyAgMTYsMHgwYjE3LDAsezB4YTMsMHhhMywweGEzLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweGZmLDB4OTAsMHg3OSwweDhkLDB4ZjAsMHgwMiwweDBiLDB4Mzl9IH0sCi17ICAxNiwweDBiMjcsMCx7MHg5MCwweDc5LDB4OGQsMHhlMCwweGZmLDB4OTAsMHg3OSwweDhmLDB4ZTAsMHhmZCwweDkwLDB4NzksMHg5MCwweGUwLDB4ZmMsMHgwMn0gfSwKLXsgIDE2LDB4MGIzNywwLHsweDBiLDB4NDYsMHg5MCwweDA2LDB4Y2EsMHgwNSwweDg2LDB4OTAsMHg3ZiwweDAwLDB4MDUsMHg4NiwweDAyLDB4MGIsMHg1MSwweDhkfSB9LAoteyAgMTYsMHgwYjQ3LDAsezB4ODQsMHg4YywweDg1LDB4MDUsMHg4NiwweDkwLDB4N2YsMHgwMCwweDA1LDB4ODYsMHhlMCwweGEzLDB4MDUsMHg4NiwweGYwLDB4YTN9IH0sCi17ICAxNiwweDBiNTcsMCx7MHgwZSwweGVlLDB4YjQsMHg0MCwweDAzLDB4MDIsMHgwYiwweDZjLDB4MDUsMHg4NiwweGRmLDB4ZWUsMHg5MCwweDc5LDB4OGUsMHg3NH0gfSwKLXsgIDE2LDB4MGI2NywwLHsweDAwLDB4ZjAsMHgwMiwweDBiLDB4ODIsMHgwNSwweDg2LDB4YWQsMHg4NCwweGFjLDB4ODUsMHg5MCwweDc5LDB4OGYsMHhlZCwweGYwfSB9LAoteyAgMTYsMHgwYjc3LDAsezB4OTAsMHg3OSwweDkwLDB4ZWMsMHhmMCwweDkwLDB4NzksMHg4ZCwweDFmLDB4ZWYsMHhmMCwweDkwLDB4N2YsMHhiNSwweGVlLDB4ZjB9IH0sCi17ICAxNiwweDBiODcsMCx7MHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODYsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmZH0gfSwKLXsgIDExLDB4MGI5NywwLHsweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDBiYTIsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg1NCwweGUwLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MGJiMiwwLHsweDdmLDB4OTYsMHhlMCwweDQ0LDB4MDgsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4YmYsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgwYmMyLDAsezB4N2YsMHhlMywweDc0LDB4N2IsMHhmMCwweDkwLDB4N2YsMHhlNCwweDc0LDB4NDAsMHhmMCwweDkwLDB4NzksMHg3OCwweGUwLDB4OTB9IH0sCi17ICAxNiwweDBiZDIsMCx7MHg3YiwweDQwLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDQ4LDB4ZjAsMHg5MCwweDdmLDB4ZTUsMHhlMCwweDkwLDB4N2YsMHhlMn0gfSwKLXsgIDE2LDB4MGJlMiwwLHsweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHhmNywweDQ0LDB4MDQsMHhmMCwweDkwLDB4N2YsMHhlMywweDc0fSB9LAoteyAgMTYsMHgwYmYyLDAsezB4N2IsMHhmMCwweDkwLDB4N2YsMHhlNCwweDc0LDB4NDAsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4OTAsMHg3YiwweDQwLDB4ZjB9IH0sCi17ICAxNiwweDBjMDIsMCx7MHg5MCwweDdmLDB4ZTIsMHg3NCwweDQ4LDB4ZjAsMHg5MCwweDdmLDB4ZTUsMHhlMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMH0gfSwKLXsgIDE2LDB4MGMxMiwwLHsweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHhmMywweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDFmLDB4ZjAsMHhkMCwweDgzfSB9LAoteyAgIDcsMHgwYzIyLDAsezB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDBjMjksMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4OTAsMHg3OSwweDJmLDB4ZTAsMHg2NCwweGZmLDB4YzMsMHgyNH0gfSwKLXsgIDExLDB4MGMzOSwwLHsweDAxLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9IH0sCi17ICAxNiwweDBjNDQsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4MjIsMHg1MCwweDAyLDB4ZTcsMHgyMiwweGJiLDB4ZmUsMHgwMn0gfSwKLXsgICA5LDB4MGM1NCwwLHsweGUzLDB4MjIsMHg4OSwweDgyLDB4OGEsMHg4MywweGU0LDB4OTMsMHgyMn0gfSwKLXsgIDE2LDB4MGM1ZCwwLHsweGJiLDB4MDEsMHgwYywweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHgyMiwweDUwfSB9LAoteyAgMTYsMHgwYzZkLDAsezB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGU2LDB4MjIsMHhiYiwweGZlLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4MjJ9IH0sCi17ICAxMywweDBjN2QsMCx7MHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGU0LDB4OTMsMHgyMn0gfSwKLXsgIDE2LDB4MGM4YSwwLHsweGJiLDB4MDEsMHgwNiwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjAsMHgyMiwweDUwLDB4MDIsMHhmNywweDIyLDB4YmIsMHhmZSwweDAxfSB9LAoteyAgIDIsMHgwYzlhLDAsezB4ZjMsMHgyMn0gfSwKLXsgIDE2LDB4MGM5YywwLHsweGY4LDB4YmIsMHgwMSwweDBkLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlOCwweGYwfSB9LAoteyAgMTYsMHgwY2FjLDAsezB4MjIsMHg1MCwweDA2LDB4ZTksMHgyNSwweDgyLDB4YzgsMHhmNiwweDIyLDB4YmIsMHhmZSwweDA1LDB4ZTksMHgyNSwweDgyLDB4Yzh9IH0sCi17ICAgMiwweDBjYmMsMCx7MHhmMiwweDIyfSB9LAoteyAgMTYsMHgwY2JlLDAsezB4YzIsMHhkNSwweGVjLDB4MzAsMHhlNywweDA5LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ZWV9IH0sCi17ICAxNiwweDBjY2UsMCx7MHgzMCwweGU3LDB4MTUsMHhiMiwweGQ1LDB4ZTQsMHhjMywweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgxMiwweDBlLDB4NDAsMHhjM30gfSwKLXsgIDE2LDB4MGNkZSwwLHsweGU0LDB4OWQsMHhmZCwweGU0LDB4OWMsMHhmYywweDgwLDB4MDMsMHgxMiwweDBlLDB4NDAsMHgzMCwweGQ1LDB4MDcsMHhjMywweGU0fSB9LAoteyAgIDYsMHgwY2VlLDAsezB4OWYsMHhmZiwweGU0LDB4OWUsMHhmZSwweDIyfSB9LAoteyAgMTYsMHgwY2Y0LDAsezB4YzUsMHhmMCwweGY4LDB4YTMsMHhlMCwweDI4LDB4ZjAsMHhjNSwweGYwLDB4ZjgsMHhlNSwweDgyLDB4MTUsMHg4MiwweDcwLDB4MDJ9IH0sCi17ICAgNiwweDBkMDQsMCx7MHgxNSwweDgzLDB4ZTAsMHgzOCwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDBkMGEsMCx7MHhiYiwweDAxLDB4MTAsMHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHhmMH0gfSwKLXsgIDE2LDB4MGQxYSwwLHsweGEzLDB4ZTAsMHgyMiwweDUwLDB4MDksMHhlOSwweDI1LDB4ODIsMHhmOCwweDg2LDB4ZjAsMHgwOCwweGU2LDB4MjIsMHhiYiwweGZlfSB9LAoteyAgMTYsMHgwZDJhLDAsezB4MGEsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4ZjUsMHhmMCwweDA4LDB4ZTIsMHgyMiwweGU1LDB4ODMsMHgyYSwweGY1LDB4ODN9IH0sCi17ICAgOCwweDBkM2EsMCx7MHhlOSwweDkzLDB4ZjUsMHhmMCwweGEzLDB4ZTksMHg5MywweDIyfSB9LAoteyAgMTYsMHgwZDQyLDAsezB4ZTgsMHg4ZiwweGYwLDB4YTQsMHhjYywweDhiLDB4ZjAsMHhhNCwweDJjLDB4ZmMsMHhlOSwweDhlLDB4ZjAsMHhhNCwweDJjLDB4ZmN9IH0sCi17ICAxNiwweDBkNTIsMCx7MHg4YSwweGYwLDB4ZWQsMHhhNCwweDJjLDB4ZmMsMHhlYSwweDhlLDB4ZjAsMHhhNCwweGNkLDB4YTgsMHhmMCwweDhiLDB4ZjAsMHhhNH0gfSwKLXsgIDE2LDB4MGQ2MiwwLHsweDJkLDB4Y2MsMHgzOCwweDI1LDB4ZjAsMHhmZCwweGU5LDB4OGYsMHhmMCwweGE0LDB4MmMsMHhjZCwweDM1LDB4ZjAsMHhmYywweGVifSB9LAoteyAgMTYsMHgwZDcyLDAsezB4OGUsMHhmMCwweGE0LDB4ZmUsMHhhOSwweGYwLDB4ZWIsMHg4ZiwweGYwLDB4YTQsMHhjZiwweGM1LDB4ZjAsMHgyZSwweGNkLDB4Mzl9IH0sCi17ICAxNSwweDBkODIsMCx7MHhmZSwweGU0LDB4M2MsMHhmYywweGVhLDB4YTQsMHgyZCwweGNlLDB4MzUsMHhmMCwweGZkLDB4ZTQsMHgzYywweGZjLDB4MjJ9IH0sCi17ICAxNiwweDBkOTEsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH0gfSwKLXsgICAxLDB4MGRhMSwwLHsweDIyfSB9LAoteyAgMTYsMHgwZGEyLDAsezB4YmIsMHgwMSwweDBkLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHgwMiwweDBlLDB4YTF9IH0sCi17ICAxNiwweDBkYjIsMCx7MHg1MCwweDA3LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHgwMiwweDBlLDB4OTUsMHhiYiwweGZlLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOH0gfSwKLXsgIDE2LDB4MGRjMiwwLHsweDAyLDB4MGUsMHhhZCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4MDIsMHgwZSwweGI5fSB9LAoteyAgMTYsMHgwZGQyLDAsezB4YmIsMHgwMSwweDBkLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHgwMiwweDBlLDB4ZDV9IH0sCi17ICAxNiwweDBkZTIsMCx7MHg1MCwweDA3LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHgwMiwweDBlLDB4YzksMHhiYiwweGZlLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOH0gfSwKLXsgICA0LDB4MGRmMiwwLHsweDAyLDB4MGUsMHhlMSwweDIyfSB9LAoteyAgMTYsMHgwZGY2LDAsezB4YmIsMHgwMSwweDBkLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHgwMiwweDBmLDB4MDZ9IH0sCi17ICAxNiwweDBlMDYsMCx7MHg1MCwweDA3LDB4ZTksMHgyNSwweDgyLDB4ZjgsMHgwMiwweDBlLDB4ZWQsMHhiYiwweGZlLDB4MDcsMHhlOSwweDI1LDB4ODIsMHhmOH0gfSwKLXsgICA0LDB4MGUxNiwwLHsweDAyLDB4MGYsMHgzNywweDIyfSB9LAoteyAgMTYsMHgwZTFhLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhmOCwweGU0LDB4OTMsMHg3MCwweDEyLDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwZCwweGEzLDB4YTN9IH0sCi17ICAxNiwweDBlMmEsMCx7MHg5MywweGY4LDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDg4LDB4ODMsMHhlNCwweDczLDB4NzQsMHgwMiwweDkzLDB4NjgsMHg2MH0gfSwKLXsgICA2LDB4MGUzYSwwLHsweGVmLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkZn0gfSwKLXsgIDE2LDB4MGU0MCwwLHsweGJjLDB4MDAsMHgwYiwweGJlLDB4MDAsMHgyOSwweGVmLDB4OGQsMHhmMCwweDg0LDB4ZmYsMHhhZCwweGYwLDB4MjIsMHhlNCwweGNjfSB9LAoteyAgMTYsMHgwZTUwLDAsezB4ZjgsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmLDB4ZmYsMHhlZSwweDMzLDB4ZmUsMHhlYywweDMzLDB4ZmMsMHhlZSwweDlkLDB4ZWN9IH0sCi17ICAxNiwweDBlNjAsMCx7MHg5OCwweDQwLDB4MDUsMHhmYywweGVlLDB4OWQsMHhmZSwweDBmLDB4ZDUsMHhmMCwweGU5LDB4ZTQsMHhjZSwweGZkLDB4MjIsMHhlZH0gfSwKLXsgIDE2LDB4MGU3MCwwLHsweGY4LDB4ZjUsMHhmMCwweGVlLDB4ODQsMHgyMCwweGQyLDB4MWMsMHhmZSwweGFkLDB4ZjAsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmfSB9LAoteyAgMTYsMHgwZTgwLDAsezB4ZmYsMHhlZCwweDMzLDB4ZmQsMHg0MCwweDA3LDB4OTgsMHg1MCwweDA2LDB4ZDUsMHhmMCwweGYyLDB4MjIsMHhjMywweDk4LDB4ZmR9IH0sCi17ICAgNSwweDBlOTAsMCx7MHgwZiwweGQ1LDB4ZjAsMHhlYSwweDIyfSB9LAoteyAgMTIsMHgwZTk1LDAsezB4ZTYsMHhmYywweDA4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmZSwweDA4LDB4ZTYsMHhmZiwweDIyfSB9LAoteyAgMTIsMHgwZWExLDAsezB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDIyfSB9LAoteyAgMTIsMHgwZWFkLDAsezB4ZTIsMHhmYywweDA4LDB4ZTIsMHhmZCwweDA4LDB4ZTIsMHhmZSwweDA4LDB4ZTIsMHhmZiwweDIyfSB9LAoteyAgMTYsMHgwZWI5LDAsezB4ZTQsMHg5MywweGZjLDB4YTMsMHhlNCwweDkzLDB4ZmQsMHhhMywweGU0LDB4OTMsMHhmZSwweGEzLDB4ZTQsMHg5MywweGZmLDB4MjJ9IH0sCi17ICAxMiwweDBlYzksMCx7MHhlYywweGY2LDB4MDgsMHhlZCwweGY2LDB4MDgsMHhlZSwweGY2LDB4MDgsMHhlZiwweGY2LDB4MjJ9IH0sCi17ICAxMiwweDBlZDUsMCx7MHhlYywweGYwLDB4YTMsMHhlZCwweGYwLDB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4MjJ9IH0sCi17ICAxMiwweDBlZTEsMCx7MHhlYywweGYyLDB4MDgsMHhlZCwweGYyLDB4MDgsMHhlZSwweGYyLDB4MDgsMHhlZiwweGYyLDB4MjJ9IH0sCi17ICAxNiwweDBlZWQsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGU0LDB4OTMsMHhmNiwweDA4LDB4NzQsMHgwMSwweDkzLDB4ZjYsMHgwOCwweDc0LDB4MDIsMHg5M30gfSwKLXsgICA5LDB4MGVmZCwwLHsweGY2LDB4MDgsMHg3NCwweDAzLDB4OTMsMHhmNiwweDc0LDB4MDQsMHg3M30gfSwKLXsgIDE2LDB4MGYwNiwwLHsweGE4LDB4ODIsMHg4NSwweDgzLDB4ZjAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDEyLDB4MGYsMHgxZCwweDEyLDB4MGYsMHgxZCwweDEyfSB9LAoteyAgMTYsMHgwZjE2LDAsezB4MGYsMHgxZCwweDEyLDB4MGYsMHgxZCwweGU0LDB4NzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODN9IH0sCi17ICAxNiwweDBmMjYsMCx7MHhjOCwweGM1LDB4ODIsMHhjOCwweGYwLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODMsMHhjOCwweGM1LDB4ODIsMHhjOH0gfSwKLXsgICAxLDB4MGYzNiwwLHsweDIyfSB9LAoteyAgMTYsMHgwZjM3LDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhlNCwweDkzLDB4ZjIsMHgwOCwweDc0LDB4MDEsMHg5MywweGYyLDB4MDgsMHg3NCwweDAyLDB4OTN9IH0sCi17ICAgOSwweDBmNDcsMCx7MHhmMiwweDA4LDB4NzQsMHgwMywweDkzLDB4ZjIsMHg3NCwweDA0LDB4NzN9IH0sCi17ICAxNiwweDBmNTAsMCx7MHhjMiwweGFmLDB4ZDIsMHgyYywweDkwLDB4N2YsMHg5MywweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHg5YywweDc0LDB4YmYsMHhmMH0gfSwKLXsgIDE2LDB4MGY2MCwwLHsweDkwLDB4N2YsMHg5NiwweGUwLDB4NTQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDk0LDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDlkfSB9LAoteyAgMTYsMHgwZjcwLDAsezB4NzQsMHhjZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDk1LDB4NzQsMHhjYywweGYwLDB4ZTR9IH0sCi17ICAxNiwweDBmODAsMCx7MHg5MCwweDdmLDB4OWUsMHhmMCwweGMyLDB4MmQsMHhjMiwweDJhLDB4YzIsMHgyYiwweGMyLDB4MmUsMHg5MCwweDc5LDB4NzQsMHgwNH0gfSwKLXsgIDE2LDB4MGY5MCwwLHsweGYwLDB4MTIsMHgyZSwweDk0LDB4MTIsMHg0OSwweGUyLDB4MTIsMHg0YiwweGU2LDB4MTIsMHgzMiwweDBkLDB4MTIsMHgzYiwweDBkfSB9LAoteyAgMTYsMHgwZmEwLDAsezB4MTIsMHg0MSwweGZkLDB4MTIsMHgzZSwweDk5LDB4ZTUsMHgxZiwweDcwLDB4MTgsMHg3NSwweDFmLDB4MDEsMHgxMiwweDE3LDB4ZmZ9IH0sCi17ICAxNiwweDBmYjAsMCx7MHgxMiwweDJmLDB4ZmYsMHgxMiwweDQ5LDB4YzgsMHgxMiwweDRiLDB4ZDgsMHgxMiwweDRiLDB4ZGEsMHgxMiwweDQ5LDB4NmYsMHgxMn0gfSwKLXsgIDE2LDB4MGZjMCwwLHsweDFiLDB4NDAsMHgxMiwweDM5LDB4OGQsMHg5MCwweDdmLDB4YWYsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhhZSwweGUwfSB9LAoteyAgMTYsMHgwZmQwLDAsezB4NDQsMHgxZiwweGYwLDB4OTAsMHg3ZiwweGFjLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3ZiwweGFkLDB4ZjAsMHg5MCwweDdmLDB4ZGV9IH0sCi17ICAxNiwweDBmZTAsMCx7MHhmMCwweDkwLDB4N2YsMHhkZiwweGYwLDB4OTAsMHg3ZiwweGFiLDB4ZjAsMHg5MCwweDdmLDB4YTksMHhmMCwweDkwLDB4N2YsMHhhYX0gfSwKLXsgIDE2LDB4MGZmMCwwLHsweGYwLDB4NTMsMHg5MSwweGVmLDB4NDMsMHhkOCwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDgsMHgyMCwweDQzLDB4YTgsMHg4MCwweDIyfSB9LAoteyAgMTYsMHgxMDAwLDAsezB4OTAsMHg3OSwweDYzLDB4ZTAsMHgxNCwweDYwLDB4NDQsMHgxNCwweDcwLDB4MDIsMHgyMSwweGQwLDB4MTQsMHg3MCwweDAyLDB4NDF9IH0sCi17ICAxNiwweDEwMTAsMCx7MHhkOSwweDE0LDB4NzAsMHgwMiwweDYxLDB4ZDcsMHgyNCwweDA0LDB4NjAsMHgwMiwweDgxLDB4NTYsMHhlNCwweDkwLDB4NzksMHg3OH0gfSwKLXsgIDE2LDB4MTAyMCwwLHsweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDQ0LDB4MDEsMHhmMCwweDU0LDB4ZmQsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxMDMwLDAsezB4NzksMHg3YiwweGYwLDB4ZTQsMHg5MCwweDc5LDB4ODgsMHhmMCwweGEyLDB4YWYsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTJ9IH0sCi17ICAxNiwweDEwNDAsMCx7MHgwYiwweGEyLDB4ZTUsMHgxMiwweDcwLDB4MDIsMHg4MSwweDU2LDB4ZDIsMHhhZiwweDIyLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NH0gfSwKLXsgIDE2LDB4MTA1MCwwLHsweDAxLDB4NzAsMHg3OSwweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweGZmfSB9LAoteyAgMTYsMHgxMDYwLDAsezB4NzQsMHhmYywweGYwLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjB9IH0sCi17ICAxNiwweDEwNzAsMCx7MHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMn0gfSwKLXsgIDE2LDB4MTA4MCwwLHsweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwfSB9LAoteyAgMTYsMHgxMDkwLDAsezB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmV9IH0sCi17ICAxNiwweDEwYTAsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZH0gfSwKLXsgIDE2LDB4MTBiMCwwLHsweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NCwweDA0fSB9LAoteyAgMTYsMHgxMGMwLDAsezB4ZjAsMHg5MCwweDc5LDB4ODgsMHgxNCwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDJkLDB4ZTB9IH0sCi17ICAxNiwweDEwZDAsMCx7MHg2NCwweDAyLDB4NzAsMHg3OSwweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzNCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MTBlMCwwLHsweGZmLDB4NzQsMHhmYywweGYwLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5fSB9LAoteyAgMTYsMHgxMGYwLDAsezB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjV9IH0sCi17ICAxNiwweDExMDAsMCx7MHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMH0gfSwKLXsgIDE2LDB4MTExMCwwLHsweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0fSB9LAoteyAgMTYsMHgxMTIwLDAsezB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDR9IH0sCi17ICAxNiwweDExMzAsMCx7MHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NH0gfSwKLXsgIDE2LDB4MTE0MCwwLHsweDA0LDB4ZjAsMHg5MCwweDc5LDB4ODgsMHgxNCwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4OTAsMHg3OSwweDJkfSB9LAoteyAgMTYsMHgxMTUwLDAsezB4ZTAsMHg2NCwweDAzLDB4NjAsMHgwMiwweDgxLDB4NTYsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4NjR9IH0sCi17ICAxNiwweDExNjAsMCx7MHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMH0gfSwKLXsgIDE2LDB4MTE3MCwwLHsweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmfSB9LAoteyAgMTYsMHgxMTgwLDAsezB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDExOTAsMCx7MHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTFhMCwwLHsweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxMWIwLDAsezB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzR9IH0sCi17ICAxNiwweDExYzAsMCx7MHgwNCwweGYwLDB4OTAsMHg3OSwweDg4LDB4MTQsMHhmMCwweGU1LDB4MTIsMHg3MCwweDAyLDB4ODEsMHg1NiwweGQyLDB4YWYsMHgyMn0gfSwKLXsgIDE2LDB4MTFkMCwwLHsweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMSwweDcwLDB4N2EsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0fSB9LAoteyAgMTYsMHgxMWUwLDAsezB4ODgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2J9IH0sCi17ICAxNiwweDExZjAsMCx7MHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NTQsMHhmZCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMn0gfSwKLXsgIDE2LDB4MTIwMCwwLHsweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwfSB9LAoteyAgMTYsMHgxMjEwLDAsezB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTB9IH0sCi17ICAxNiwweDEyMjAsMCx7MHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MTIzMCwwLHsweDc5LDB4NzksMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyfSB9LAoteyAgMTYsMHgxMjQwLDAsezB4OTAsMHg3OSwweDgyLDB4NzQsMHgwYywweGYwLDB4OTAsMHg3OSwweDg4LDB4NzQsMHgwMSwweGYwLDB4ZTUsMHgxMiwweDYwLDB4MDJ9IH0sCi17ICAxNiwweDEyNTAsMCx7MHhkMiwweGFmLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAyLDB4NjAsMHgwMiwweDgxLDB4NTYsMHg5MCwweDdmLDB4ZjIsMHhmMH0gfSwKLXsgIDE2LDB4MTI2MCwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweGU0LDB4OTAsMHg3OSwweDc4fSB9LAoteyAgMTYsMHgxMjcwLDAsezB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NDQsMHgwMSwweGYwLDB4NTQsMHhmZCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDEyODAsMCx7MHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTI5MCwwLHsweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwLDB4NzksMHg3ZiwweGUwfSB9LAoteyAgMTYsMHgxMmEwLDAsezB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTB9IH0sCi17ICAxNiwweDEyYjAsMCx7MHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzksMHg4NH0gfSwKLXsgIDE2LDB4MTJjMCwwLHsweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzQsMHgwYywweGYwLDB4OTAsMHg3OSwweDg4LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgxMmQwLDAsezB4ZTUsMHgxMiwweDcwLDB4MDIsMHg4MSwweDU2LDB4ZDIsMHhhZiwweDIyLDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAxLDB4NzB9IH0sCi17ICAxNiwweDEyZTAsMCx7MHg3NywweDkwLDB4N2YsMHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmY30gfSwKLXsgIDE2LDB4MTJmMCwwLHsweGYwLDB4ZTQsMHg5MCwweDc5LDB4NzgsMHhmMCwweDkwLDB4NzksMHg3YiwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NCwweGZjfSB9LAoteyAgMTYsMHgxMzAwLDAsezB4ZjAsMHg5MCwweDc5LDB4N2IsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTJ9IH0sCi17ICAxNiwweDEzMTAsMCx7MHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4MTMyMCwwLHsweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxMzMwLDAsezB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4OTB9IH0sCi17ICAxNiwweDEzNDAsMCx7MHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4ODIsMHg3NCwweDEyLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHg3NH0gfSwKLXsgIDE2LDB4MTM1MCwwLHsweDAyLDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDIsMHg3MCwweDc3fSB9LAoteyAgMTYsMHgxMzYwLDAsezB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweGUwLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjB9IH0sCi17ICAxNiwweDEzNzAsMCx7MHhlNCwweDkwLDB4NzksMHg3OCwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0LDB4ZmMsMHhmMH0gfSwKLXsgIDE2LDB4MTM4MCwwLHsweDkwLDB4NzksMHg3YiwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwfSB9LAoteyAgMTYsMHgxMzkwLDAsezB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2Z9IH0sCi17ICAxNiwweDEzYTAsMCx7MHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MTNiMCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgxM2MwLDAsezB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg4MiwweDc0LDB4MTIsMHhmMCwweDkwLDB4NzksMHg4OCwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDEzZDAsMCx7MHhmMCwweGU1LDB4MTIsMHg2MCwweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjQsMHgwMywweDcwLDB4NzcsMHg5MH0gfSwKLXsgIDE2LDB4MTNlMCwwLHsweDdmLDB4ZjIsMHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweGU0fSB9LAoteyAgMTYsMHgxM2YwLDAsezB4OTAsMHg3OSwweDc4LDB4ZjAsMHg5MCwweDc5LDB4N2IsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTQsMHhmZSwweGYwLDB4NDR9IH0sCi17ICAxNiwweDE0MDAsMCx7MHgwMiwweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYn0gfSwKLXsgIDE2LDB4MTQxMCwwLHsweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwfSB9LAoteyAgMTYsMHgxNDIwLDAsezB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTB9IH0sCi17ICAxNiwweDE0MzAsMCx7MHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzksMHg4NH0gfSwKLXsgIDE2LDB4MTQ0MCwwLHsweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDgyLDB4NzQsMHgwNiwweGYwLDB4OTAsMHg3OSwweDg4LDB4NzQsMHgwNCwweGYwfSB9LAoteyAgIDcsMHgxNDUwLDAsezB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4MjJ9IH0sCi17ICAxNiwweDE0NTcsMCx7MHhjMiwweDI4LDB4YzIsMHgyOSwweDkwLDB4N2YsMHhlOCwweGUwLDB4MTIsMHgwZSwweDFhLDB4MTQsMHg4NCwweDAwLDB4MTQsMHhlMH0gfSwKLXsgIDE2LDB4MTQ2NywwLHsweDAxLDB4MTQsMHhmNiwweDAyLDB4MTYsMHg3YywweDIxLDB4MTYsMHhiZSwweDIyLDB4MTUsMHg5MSwweDgwLDB4MTUsMHhkMSwweDgxfSB9LAoteyAgMTYsMHgxNDc3LDAsezB4MTYsMHgyZSwweDgyLDB4MTYsMHhjZiwweGExLDB4MTcsMHgwNSwweGEyLDB4MDAsMHgwMCwweDE3LDB4MGEsMHg5MCwweDdmLDB4ZTl9IH0sCi17ICAxNiwweDE0ODcsMCx7MHhlMCwweDE0LDB4NjAsMHgxMSwweDI0LDB4ZmUsMHg2MCwweDI4LDB4MjQsMHhmZSwweDYwLDB4M2IsMHgyNCwweGZjLDB4NzAsMHg0MH0gfSwKLXsgIDE2LDB4MTQ5NywwLHsweDEyLDB4NGEsMHgyYSwweGUxLDB4MTYsMHgxMiwweDRiLDB4ZTAsMHg0MCwweDAyLDB4ZTEsMHgxNiwweDkwLDB4N2YsMHhlYSwweGUwfSB9LAoteyAgMTYsMHgxNGE3LDAsezB4YjQsMHgwMSwweDA0LDB4YzIsMHgyYSwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTZ9IH0sCi17ICAxNiwweDE0YjcsMCx7MHgxMiwweDRiLDB4ZTIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGI0LDB4MDEsMHgwNCwweGQyLDB4MmEsMHhlMSwweDE2LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MTRjNywwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2fSB9LAoteyAgMTYsMHgxNGQ3LDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGY1LDB4NzB9IH0sCi17ICAxNiwweDE0ZTcsMCx7MHgwNSwweDEyLDB4NDcsMHg5YywweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MH0gfSwKLXsgIDE2LDB4MTRmNywwLHsweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmQsMHg2MCwweDU0LDB4MjQsMHgwMiwweDYwLDB4MDIsMHhhMSwweDg4LDB4MTIsMHg0YiwweGUwfSB9LAoteyAgMTYsMHgxNTA3LDAsezB4NDAsMHgwMiwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTR9IH0sCi17ICAxNiwweDE1MTcsMCx7MHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4Mn0gfSwKLXsgIDE2LDB4MTUyNywwLHsweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg1NCwweDgwLDB4ZmYsMHgxMywweDEzfSB9LAoteyAgMTYsMHgxNTM3LDAsezB4MTMsMHg1NCwweDFmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDkwLDB4N2YsMHhkNywweGYwLDB4ZTAsMHg0NCwweDIwLDB4ZjB9IH0sCi17ICAxNiwweDE1NDcsMCx7MHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4MTIsMHg0YiwweGUyLDB4NDAsMHgwMn0gfSwKLXsgIDE2LDB4MTU1NywwLHsweGUxLDB4MTYsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTQsMHg4MCwweGZmfSB9LAoteyAgMTYsMHgxNTY3LDAsezB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4MiwweGU0LDB4MzR9IH0sCi17ICAxNiwweDE1NzcsMCx7MHg3ZiwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMX0gfSwKLXsgIDE2LDB4MTU4NywwLHsweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHg2MCwweDEyfSB9LAoteyAgMTYsMHgxNTk3LDAsezB4MjQsMHhmOCwweDYwLDB4MDksMHgyNCwweDAyLDB4NzAsMHgyOSwweDEyLDB4MTcsMHgxZSwweGUxLDB4MTYsMHgxMiwweDRiLDB4YTB9IH0sCi17ICAxNiwweDE1YTcsMCx7MHhlMSwweDE2LDB4MTIsMHg0YiwweGRlLDB4YTIsMHgyYSwweGU0LDB4MzMsMHhmZiwweDI1LDB4ZTAsMHhmZiwweGEyLDB4MmIsMHhlNH0gfSwKLXsgIDE2LDB4MTViNywwLHsweDMzLDB4NGYsMHg5MCwweDdmLDB4MDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweGUxfSB9LAoteyAgMTYsMHgxNWM3LDAsezB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZTksMHhlMCwweDYwLDB4Mzd9IH0sCi17ICAxNiwweDE1ZDcsMCx7MHgyNCwweGY2LDB4NjAsMHgyZSwweDI0LDB4MDQsMHg3MCwweDQxLDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgyNCwweGRlLDB4NjAsMHgwZX0gfSwKLXsgIDE2LDB4MTVlNywwLHsweDA0LDB4NzAsMHgxNiwweGQyLDB4MjksMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHhkMiwweDI5fSB9LAoteyAgMTYsMHgxNWY3LDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHhlMSwweDE2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDE2MDcsMCx7MHhlMSwweDE2LDB4MTIsMHg0NCwweDYzLDB4ZTEsMHgxNiwweDEyLDB4NGIsMHhkZSwweGU0LDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhM30gfSwKLXsgIDE2LDB4MTYxNywwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4ZTEsMHgxNiwweDIwLDB4MjksMHgwNywweDkwLDB4N2YsMHhiNCwweGUwfSB9LAoteyAgMTYsMHgxNjI3LDAsezB4NDQsMHgwMSwweGYwLDB4YzIsMHgyOSwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjQsMHg2MCwweDM0LDB4MjR9IH0sCi17ICAxNiwweDE2MzcsMCx7MHgwYywweDcwLDB4MzksMHgxMiwweDRiLDB4ZGUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGY0LDB4NTQsMHg4MCwweGZmLDB4YzQsMHg1NH0gfSwKLXsgIDE2LDB4MTY0NywwLHsweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSB9LAoteyAgMTYsMHgxNjU3LDAsezB4ODMsMHhlMCwweDU0LDB4ZmQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDE2NjcsMCx7MHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4YjQsMHhlMH0gfSwKLXsgIDE2LDB4MTY3NywwLHsweDQ0LDB4MDEsMHhmMCwweGUxLDB4MTYsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjYsMHg2MCwweDEyLDB4MTQsMHg2MCwweDFhfSB9LAoteyAgMTYsMHgxNjg3LDAsezB4MjQsMHgwMiwweDcwLDB4MWQsMHhkMiwweDI4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDEyLDB4ZDJ9IH0sCi17ICAxNiwweDE2OTcsMCx7MHgyOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0gfSwKLXsgIDE2LDB4MTZhNywwLHsweGYwLDB4MjAsMHgyOCwweDBmLDB4OTAsMHg3OSwweDg1LDB4NzQsMHgwMSwweGYwLDB4MTIsMHg0OSwweDZmLDB4OTAsMHg3ZiwweGM1fSB9LAoteyAgMTYsMHgxNmI3LDAsezB4NzQsMHgwMiwweGYwLDB4YzIsMHgyOCwweDgwLDB4NTgsMHg5MCwweDc5LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHgxMiwweDQ5LDB4NmZ9IH0sCi17ICAxNiwweDE2YzcsMCx7MHg5MCwweDdmLDB4YzUsMHg3NCwweDAyLDB4ZjAsMHg4MCwweDQ3LDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZlLDB4NjAsMHgxMn0gfSwKLXsgIDE2LDB4MTZkNywwLHsweDE0LDB4NjAsMHgxYSwweDI0LDB4MDIsMHg3MCwweDFkLDB4ZDIsMHgyOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgxNmU3LDAsezB4ODAsMHgxMiwweGQyLDB4MjgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxNiwweDE2ZjcsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MjgsMHgwMywweDEyLDB4MWEsMHg3YiwweGMyLDB4MjgsMHg4MCwweDExLDB4MTIsMHgyY30gfSwKLXsgIDE2LDB4MTcwNywwLHsweDJiLDB4ODAsMHgwYywweDEyLDB4NGIsMHhlNCwweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwfSB9LAoteyAgIDcsMHgxNzE3LDAsezB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMiwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDE3MWUsMCx7MHgxMiwweDRiLDB4ZGMsMHg0MCwweDAyLDB4ZTEsMHhlMywweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhmZSwweDYwLDB4MWUsMHgxNH0gfSwKLXsgIDE2LDB4MTcyZSwwLHsweDYwLDB4NDYsMHgxNCwweDYwLDB4NmUsMHgxNCwweDcwLDB4MDIsMHhlMSwweGQ0LDB4MjQsMHgwNCwweDYwLDB4MDIsMHhlMSwweGRjfSB9LAoteyAgMTYsMHgxNzNlLDAsezB4NzQsMHgwNSwweDkwLDB4N2YsMHhkNCwweGYwLDB4NzQsMHgwMCwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWF9IH0sCi17ICAxNiwweDE3NGUsMCx7MHhlMCwweGZmLDB4MTIsMHgzZiwweGEyLDB4OGIsMHgzMywweDhhLDB4MzQsMHg4OSwweDM1LDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZX0gfSwKLXsgIDE2LDB4MTc1ZSwwLHsweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyfSB9LAoteyAgMTYsMHgxNzZlLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHgxMiwweDQ4LDB4MDB9IH0sCi17ICAxNiwweDE3N2UsMCx7MHg4YiwweDMzLDB4OGEsMHgzNCwweDg5LDB4MzUsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZSwweGVlLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MTc4ZSwwLHsweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSB9LAoteyAgMTYsMHgxNzllLDAsezB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmJ9IH0sCi17ICAxNiwweDE3YWUsMCx7MHgxMiwweDQ0LDB4ZDIsMHg4YiwweDMzLDB4OGEsMHgzNCwweDg5LDB4MzUsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZX0gfSwKLXsgIDE2LDB4MTdiZSwwLHsweGVlLDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHhjZiwweGU5LDB4Y2YsMHhlZiwweDkwLDB4N2YsMHhkNSwweGYwLDB4MjIsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgxN2NlLDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9IH0sCi17ICAgNSwweDE3ZGUsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgxN2UzLDAsezB4MjJ9IH0sCi17ICAxNiwweDE3ZTQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDdmLDB4YzQsMHhlNCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3Zn0gfSwKLXsgIDExLDB4MTdmNCwwLHsweGFiLDB4NzQsMHgwNCwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAgMSwweDE3ZmYsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MTgwMCwwLHsweGU0LDB4OTAsMHg3OCwweDE1LDB4ZjAsMHg3YiwweDAxLDB4OTAsMHg3OCwweDEyLDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwfSB9LAoteyAgMTYsMHgxODEwLDAsezB4YTMsMHg3NCwweDU4LDB4ZjAsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTB9IH0sCi17ICAxNiwweDE4MjAsMCx7MHgwMCwweDAxLDB4MTIsMHgwYywweDVkLDB4ZmYsMHg5MCwweDc5LDB4OWEsMHhlMCwweDZmLDB4NjAsMHgxOCwweDkwLDB4NzgsMHgxNX0gfSwKLXsgIDE2LDB4MTgzMCwwLHsweGUwLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwZiwweGUwLDB4MDQsMHhmMCwweDkwLDB4NzgsMHgxMywweGU0LDB4NzUsMHhmMCwweDBmfSB9LAoteyAgMTYsMHgxODQwLDAsezB4MTIsMHgwYywweGY0LDB4ODAsMHhjZiwweDkwLDB4NzgsMHgxNSwweGUwLDB4YjQsMHgwNiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTB9IH0sCi17ICAxNiwweDE4NTAsMCx7MHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHgxMn0gfSwKLXsgIDE2LDB4MTg2MCwwLHsweDBjLDB4NDQsMHhmZiwweDI0LDB4YmYsMHg3MCwweDAyLDB4NDEsMHg3YSwweDI0LDB4ZTAsMHg3MCwweDAyLDB4NDEsMHg0YywweDI0fSB9LAoteyAgMTYsMHgxODcwLDAsezB4MjEsMHg2MCwweDAyLDB4NDEsMHg3MywweDkwLDB4NzksMHg5NywweGUwLDB4MjQsMHhmZSwweDcwLDB4MDIsMHgyMSwweDlhLDB4MTR9IH0sCi17ICAxNiwweDE4ODAsMCx7MHg3MCwweDAyLDB4MjEsMHhlZiwweDI0LDB4MDIsMHg2MCwweDAyLDB4NDEsMHg0NCwweDkwLDB4NzksMHgyZCwweGUwLDB4YTMsMHhmMH0gfSwKLXsgIDE2LDB4MTg5MCwwLHsweDkwLDB4NzksMHgyMywweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHhmZSwweGZiLDB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDBkfSB9LAoteyAgMTYsMHgxOGEwLDAsezB4NDIsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2EsMHhjYiwweGVmLDB4Y2IsMHg5MCwweDc5LDB4MjJ9IH0sCi17ICAxNiwweDE4YjAsMCx7MHhlMCwweGZlLDB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYSwweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOH0gfSwKLXsgIDE2LDB4MThjMCwwLHsweDkwLDB4NzksMHgyMSwweGUwLDB4ZmYsMHhlNCwweGZlLDB4ZWIsMHgyZiwweGZmLDB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkfSB9LAoteyAgMTYsMHgxOGQwLDAsezB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDB9IH0sCi17ICAxNiwweDE4ZTAsMCx7MHgwMiwweDEyLDB4MGQsMHhkMiwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhhMiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMH0gfSwKLXsgIDE2LDB4MThmMCwwLHsweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MDUsMHg5MCwweDc5LDB4MmQsMHgwNCwweGYwLDB4OTAsMHg3OCwweDEyfSB9LAoteyAgMTYsMHgxOTAwLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhhMiwweDdiLDB4ODB9IH0sCi17ICAxNiwweDE5MTAsMCx7MHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MDYsMHg5MCwweDc5LDB4MmQsMHg3NH0gfSwKLXsgIDE2LDB4MTkyMCwwLHsweDAyLDB4ZjAsMHg5MCwweDc4LDB4MTIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgxOTMwLDAsezB4MTIsMHgwZCwweGEyLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzB9IH0sCi17ICAxNiwweDE5NDAsMCx7MHgwNiwweDkwLDB4NzksMHgyZCwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzksMHgyZCwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MDksMHg3NX0gfSwKLXsgIDE2LDB4MTk1MCwwLHsweDBjLDB4NjcsMHg3NSwweDBkLDB4MDYsMHg3NSwweDBlLDB4MGIsMHhlZiwweGI0LDB4MDIsMHgwOCwweGU0LDB4ZjUsMHgwYywweGY1fSB9LAoteyAgMTYsMHgxOTYwLDAsezB4MGQsMHg3NSwweDBlLDB4MGMsMHhlZiwweGI0LDB4MDMsMHgwOCwweGU0LDB4ZjUsMHgwYywweGY1LDB4MGQsMHg3NSwweDBlLDB4MTh9IH0sCi17ICAxNiwweDE5NzAsMCx7MHhlZiwweGI0LDB4MDMsMHgwZCwweDkwLDB4NzksMHgyZSwweGUwLDB4NjQsMHgwMywweDYwLDB4MDUsMHhkMiwweDJmLDB4MTIsMHgzZH0gfSwKLXsgIDE2LDB4MTk4MCwwLHsweDc5LDB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAzLDB4NjAsMHgwYSwweGEzLDB4ZTAsMHhiNCwweDAzLDB4MDUsMHhjMiwweDJmfSB9LAoteyAgMTYsMHgxOTkwLDAsezB4MTIsMHgzZCwweDc5LDB4MTIsMHgxMCwweDAwLDB4MTIsMHgyOCwweDAxLDB4MjIsMHg5MCwweDc5LDB4MjMsMHhlMCwweGZmLDB4ZTR9IH0sCi17ICAxNiwweDE5YTAsMCx7MHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgwZCwweDQyLDB4YzgsMHhlYywweGM4LDB4YzksMHhlZH0gfSwKLXsgIDE2LDB4MTliMCwwLHsweGM5LDB4Y2EsMHhlZSwweGNhLDB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3OSwweDIyLDB4ZTAsMHhmZSwweGU0LDB4ZmMsMHhmZCwweDJifSB9LAoteyAgMTYsMHgxOWMwLDAsezB4ZmIsMHhlYSwweDNlLDB4ZmEsMHhlZCwweDM5LDB4ZjksMHhlYywweDM4LDB4ZjgsMHg5MCwweDc5LDB4MjEsMHhlMCwweGZmLDB4ZTR9IH0sCi17ICAxNiwweDE5ZDAsMCx7MHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZCwweGVjLDB4MzgsMHhmYywweDkwLDB4NzgsMHgxMn0gfSwKLXsgIDE2LDB4MTllMCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDYsMHgxMiwweDBkLDB4ZDIsMHgyMiwweDkwfSB9LAoteyAgMTYsMHgxOWYwLDAsezB4NzksMHgyMywweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHhmZSwweGZiLDB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDBkLDB4NDJ9IH0sCi17ICAxNiwweDFhMDAsMCx7MHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2EsMHhjYiwweGVmLDB4Y2IsMHg5MCwweDc5LDB4MjIsMHhlMH0gfSwKLXsgIDE2LDB4MWExMCwwLHsweGZlLDB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYSwweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwfSB9LAoteyAgMTYsMHgxYTIwLDAsezB4NzksMHgyMSwweGUwLDB4ZmYsMHhlNCwweGZlLDB4ZWIsMHgyZiwweGZmLDB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWN9IH0sCi17ICAxNiwweDFhMzAsMCx7MHgzOCwweGZjLDB4OTAsMHg3OCwweDEyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwYX0gfSwKLXsgIDE2LDB4MWE0MCwwLHsweDEyLDB4MGQsMHhkMiwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHg5NywweGUwfSB9LAoteyAgMTYsMHgxYTUwLDAsezB4MTQsMHg3MCwweDE4LDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZiwweDkwLDB4NzgsMHgxMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDFhNjAsMCx7MHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MGUsMHhlZiwweDEyLDB4MGMsMHg5YywweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0gfSwKLXsgIDEwLDB4MWE3MCwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgxYTdhLDAsezB4MjJ9IH0sCi17ICAxNiwweDFhN2IsMCx7MHhlNCwweGZmLDB4ZmUsMHg3YiwweDAxLDB4OTAsMHg3OCwweDBmLDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NH0gfSwKLXsgIDE2LDB4MWE4YiwwLHsweDJiLDB4ZjAsMHg5MCwweDc4LDB4MGYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgxYTliLDAsezB4MTIsMHgwYywweDVkLDB4ZmQsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDZkLDB4NjAsMHgxMywweGVmLDB4YzMsMHg5NCwweDA1LDB4NTB9IH0sCi17ICAxNiwweDFhYWIsMCx7MHgwZCwweDBmLDB4OTAsMHg3OCwweDEwLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg4MCwweGQ0LDB4OGQsMHgzM30gfSwKLXsgIDE2LDB4MWFiYiwwLHsweDkwLDB4NzgsMHgwZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgxYWNiLDAsezB4NWQsMHhmZCwweDkwLDB4N2YsMHhlZCwweGUwLDB4NmQsMHg2MCwweDEzLDB4ZWUsMHhjMywweDk0LDB4MGIsMHg1MCwweDBkLDB4MGV9IH0sCi17ICAxNiwweDFhZGIsMCx7MHg5MCwweDc4LDB4MTAsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDgwLDB4ZDQsMHg5MCwweDdmLDB4ZWQsMHhlMH0gfSwKLXsgIDE2LDB4MWFlYiwwLHsweGY1LDB4MzQsMHhlZiwweDY0LDB4MDUsMHg2MCwweDAzLDB4YmUsMHgwYiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSB9LAoteyAgMTYsMHgxYWZiLDAsezB4ZjAsMHgyMiwweDkwLDB4NzgsMHgwZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDR9IH0sCi17ICAxNiwweDFiMGIsMCx7MHhmZiwweDI0LDB4ZjAsMHg2MCwweDA4LDB4MjQsMHgwZiwweDcwLDB4MGUsMHgxMiwweDQ5LDB4MmEsMHgyMiwweDEyLDB4NGIsMHg4M30gfSwKLXsgIDE0LDB4MWIxYiwwLHsweDkwLDB4NzksMHgyMCwweGU1LDB4MzQsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDFiMjksMCx7MHgyMn0gfSwKLXsgIDE1LDB4MWIyYSwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4YjQsMHhmZiwweDA0LDB4MTIsMHgzNCwweDE2LDB4MjIsMHgxMiwweDM4LDB4MDAsMHgyMn0gfSwKLXsgICA3LDB4MWIzOSwwLHsweDUzLDB4OTgsMHhmZSwweDUzLDB4OTgsMHhmZCwweDMyfSB9LAoteyAgMTYsMHgxYjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFiZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWM4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxYzkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2MwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFjZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWNlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxY2YwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWQ3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWRkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFkZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWUwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWUzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWU5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNCwweDFlYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFlZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmMmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgICAyLDB4MWYzZSwwLHsweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWY4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDFmZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MWZlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgxZmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjAxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjA3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjBkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIwZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjEwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjEzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjE5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMWQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIxZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjFmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjIyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIyZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE0LDB4MjM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzN2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjM4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyMzllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzYWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2NlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDIzZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjNlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyM2ZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjQ3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNDhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjRkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNGVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI0ZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjUwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjUzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNTdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjU5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI1ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjY4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNjllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjZiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNmNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE0LDB4MjZlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI2ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjcwYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzFjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3MmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjczYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzRjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3NWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc2YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyNzdjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3OGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4Mjc5YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyN2FjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3YmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgIDE2LDB4MjdjYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSB9LAoteyAgMTYsMHgyN2RjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9IH0sCi17ICAxNiwweDI3ZWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0gfSwKLXsgICA1LDB4MjdmYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MjJ9IH0sCi17ICAxNiwweDI4MDEsMCx7MHg5MCwweDc5LDB4NjQsMHhlMCwweDE0LDB4NjAsMHg0NiwweDE0LDB4NzAsMHgwMiwweDQxLDB4M2MsMHgyNCwweDAyLDB4NjAsMHgwMn0gfSwKLXsgIDE2LDB4MjgxMSwwLHsweDgxLDB4MmEsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyODIxLDAsezB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4NTQsMHhmZCwweGYwLDB4NDR9IH0sCi17ICAxNiwweDI4MzEsMCx7MHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYn0gfSwKLXsgIDE2LDB4Mjg0MSwwLHsweGEyLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4ZTQsMHg5MCwweDc5LDB4N2EsMHhmMCwweDIyLDB4OTAsMHg3OSwweDJkfSB9LAoteyAgMTYsMHgyODUxLDAsezB4ZTAsMHg2NCwweDAxLDB4NjAsMHgwMiwweDAxLDB4ZjEsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmZ9IH0sCi17ICAxNiwweDI4NjEsMCx7MHg3NCwweGZjLDB4ZjAsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4N2MsMHhlMCwweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4Mjg3MSwwLHsweGYwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDdlLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyODgxLDAsezB4NzksMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDI4OTEsMCx7MHg3OSwweGUwLDB4OTAsMHg3OSwweDdjLDB4ZjAsMHhhMiwweGFmLDB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYn0gfSwKLXsgIDE2LDB4MjhhMSwwLHsweGEyLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyOGIxLDAsezB4NzksMHg3ZiwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTB9IH0sCi17ICAxNiwweDI4YzEsMCx7MHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMH0gfSwKLXsgIDE2LDB4MjhkMSwwLHsweDkwLDB4NzksMHg4NCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3OSwweDdhLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY1fSB9LAoteyAgMTYsMHgyOGUxLDAsezB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHhlNCwweDkwLDB4NzksMHg4YywweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjB9IH0sCi17ICAxNiwweDI4ZjEsMCx7MHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDIsMHg2MCwweDAyLDB4MjEsMHg5NiwweDkwLDB4N2YsMHhmYywweDc0LDB4YzgsMHhmMH0gfSwKLXsgIDE2LDB4MjkwMSwwLHsweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwfSB9LAoteyAgMTYsMHgyOTExLDAsezB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2UsMHhlMCwweGI0LDB4MDF9IH0sCi17ICAxNiwweDI5MjEsMCx7MHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYn0gfSwKLXsgIDE2LDB4MjkzMSwwLHsweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyfSB9LAoteyAgMTYsMHgyOTQxLDAsezB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDI5NTEsMCx7MHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMH0gfSwKLXsgIDE2LDB4Mjk2MSwwLHsweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMiwweGYwfSB9LAoteyAgMTYsMHgyOTcxLDAsezB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4N2EsMHg3NCwweDAxLDB4ZjB9IH0sCi17ICAxNiwweDI5ODEsMCx7MHg5MCwweDc5LDB4NjUsMHg3NCwweDAzLDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHhlNCwweDkwLDB4NzksMHg4Y30gfSwKLXsgIDE2LDB4Mjk5MSwwLHsweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjAsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHgyYSwweDkwfSB9LAoteyAgMTYsMHgyOWExLDAsezB4N2YsMHhmYywweDc0LDB4OTgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDF9IH0sCi17ICAxNiwweDI5YjEsMCx7MHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MjljMSwwLHsweDc5LDB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwfSB9LAoteyAgMTYsMHgyOWQxLDAsezB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWZ9IH0sCi17ICAxNiwweDI5ZTEsMCx7MHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MjlmMSwwLHsweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYTAxLDAsezB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJhMTEsMCx7MHg3OSwweGUwLDB4NTQsMHhmZCwweGYwLDB4NDQsMHgwNCwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MH0gfSwKLXsgIDE2LDB4MmEyMSwwLHsweDc5LDB4N2EsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjUsMHg3NCwweDA1LDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyfSB9LAoteyAgMTYsMHgyYTMxLDAsezB4YWYsMHhlNCwweDkwLDB4NzksMHg4YywweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjAsMHgyMiwweDkwLDB4NzksMHgyZCwweGUwLDB4NjR9IH0sCi17ICAxNiwweDJhNDEsMCx7MHgwMSwweDYwLDB4MDIsMHg0MSwweGUwLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhiNCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmY30gfSwKLXsgIDE2LDB4MmE1MSwwLHsweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDdjLDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweDU0fSB9LAoteyAgMTYsMHgyYTYxLDAsezB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg3ZSwweGUwLDB4YjQsMHgwMSwweDA5LDB4OTAsMHg3OSwweDc5LDB4ZTB9IH0sCi17ICAxNiwweDJhNzEsMCx7MHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMH0gfSwKLXsgIDE2LDB4MmE4MSwwLHsweDkwLDB4NzksMHg3YywweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweDkwfSB9LAoteyAgMTYsMHgyYTkxLDAsezB4NzksMHg3OCwweDc0LDB4MDIsMHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2Z9IH0sCi17ICAxNiwweDJhYTEsMCx7MHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MmFiMSwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYWMxLDAsezB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3YSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2NSwweDA0LDB4ZjB9IH0sCi17ICAxNiwweDJhZDEsMCx7MHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHhlNCwweDkwLDB4NzksMHg4YywweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MmFlMSwwLHsweDc5LDB4MmQsMHhlMCwweDY0LDB4MDIsMHg2MCwweDAyLDB4NjEsMHg4NSwweDkwLDB4N2YsMHhmYywweDc0LDB4YjAsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyYWYxLDAsezB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTB9IH0sCi17ICAxNiwweDJiMDEsMCx7MHg3OSwweDc5LDB4ZjAsMHg1NCwweGZlLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOX0gfSwKLXsgIDE2LDB4MmIxMSwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwfSB9LAoteyAgMTYsMHgyYjIxLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWZ9IH0sCi17ICAxNiwweDJiMzEsMCx7MHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODQsMHhlMCwweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MmI0MSwwLHsweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4NzksMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwfSB9LAoteyAgMTYsMHgyYjUxLDAsezB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMiwweGYwLDB4NTR9IH0sCi17ICAxNiwweDJiNjEsMCx7MHhmYiwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4N2EsMHg3NCwweDAxLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MmI3MSwwLHsweDc5LDB4NjUsMHg3NCwweDA0LDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHhlNCwweDkwLDB4NzksMHg4YywweGYwfSB9LAoteyAgMTYsMHgyYjgxLDAsezB4OTAsMHg3OSwweDhiLDB4ZjAsMHg5MCwweDc5LDB4MmQsMHhlMCwweDY0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHgyYSwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDJiOTEsMCx7MHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MmJhMSwwLHsweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg1NCwweGZlLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYmIxLDAsezB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOSwweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4Nzl9IH0sCi17ICAxNiwweDJiYzEsMCx7MHg3OSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNH0gfSwKLXsgIDE2LDB4MmJkMSwwLHsweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5LDB4NzgsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYmUxLDAsezB4ODQsMHhlMCwweDkwLDB4NzksMHg3OSwweGYwLDB4OTAsMHg3OSwweDdmLDB4ZTAsMHhiNCwweDAxLDB4MDksMHg5MCwweDc5LDB4Nzl9IH0sCi17ICAxNiwweDJiZjEsMCx7MHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc5LDB4NzksMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OX0gfSwKLXsgIDE2LDB4MmMwMSwwLHsweGUwLDB4NTQsMHhmZCwweGYwLDB4NDQsMHgwNCwweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHgxMiwweDBiLDB4YTIsMHg5MCwweDc5fSB9LAoteyAgMTYsMHgyYzExLDAsezB4N2EsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjUsMHg3NCwweDA2LDB4ZjAsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWZ9IH0sCi17ICAxMCwweDJjMjEsMCx7MHhlNCwweDkwLDB4NzksMHg4YywweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MmMyYiwwLHsweGU0LDB4ZmYsMHg3YiwweDAxLDB4OTAsMHg3OCwweDE2LDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweDU4fSB9LAoteyAgMTYsMHgyYzNiLDAsezB4ZjAsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4MTJ9IH0sCi17ICAxNiwweDJjNGIsMCx7MHgwYywweDVkLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDZlLDB4NjAsMHgxMywweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwZH0gfSwKLXsgIDE2LDB4MmM1YiwwLHsweDBmLDB4OTAsMHg3OCwweDE3LDB4ZTQsMHg3NSwweGYwLDB4MGYsMHgxMiwweDBjLDB4ZjQsMHg4MCwweGQ0LDB4YmYsMHgwNiwweDA4fSB9LAoteyAgMTYsMHgyYzZiLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmF9IH0sCi17ICAxNiwweDJjN2IsMCx7MHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDQsMHhmZiwweDI0LDB4OWYsMHg3MCwweDAyLDB4YzEsMHg2NiwweDI0LDB4MjEsMHg2MH0gfSwKLXsgIDE2LDB4MmM4YiwwLHsweDAyLDB4YzEsMHg4YywweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZSwweDcwLDB4MDIsMHhhMSwweDMwLDB4MTQsMHg3MCwweDAyfSB9LAoteyAgMTYsMHgyYzliLDAsezB4YTEsMHhjOCwweDI0LDB4MDIsMHg2MCwweDAyLDB4YzEsMHg1ZSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHhhMiwweDdiLDB4NDR9IH0sCi17ICAxNiwweDJjYWIsMCx7MHg3YSwweGFjLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NH0gfSwKLXsgIDE2LDB4MmNiYiwwLHsweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWMsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgyY2NiLDAsezB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4YTJ9IH0sCi17ICAxNiwweDJjZGIsMCx7MHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MmNlYiwwLHsweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzfSB9LAoteyAgMTYsMHgyY2ZiLDAsezB4ZjAsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyLDB4MTJ9IH0sCi17ICAxNiwweDJkMGIsMCx7MHgwZCwweGEyLDB4N2IsMHgwMCwweDdhLDB4NzcsMHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NjAsMHgwMn0gfSwKLXsgIDE2LDB4MmQxYiwwLHsweGMxLDB4OTMsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgyZDJiLDAsezB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4Zjl9IH0sCi17ICAxNiwweDJkM2IsMCx7MHg5MCwweDAwLDB4MDYsMHgxMiwweDBkLDB4YTIsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMn0gfSwKLXsgIDE2LDB4MmQ0YiwwLHsweDBkLDB4OTEsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzfSB9LAoteyAgMTYsMHgyZDViLDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc4LDB4MTYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTN9IH0sCi17ICAxNiwweDJkNmIsMCx7MHhlMCwweGY5LDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwZCwweGEyLDB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMH0gfSwKLXsgIDE2LDB4MmQ3YiwwLHsweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwfSB9LAoteyAgMTYsMHgyZDhiLDAsezB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDJkOWIsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGQsMHhhMiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMX0gfSwKLXsgIDE2LDB4MmRhYiwwLHsweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDYwLDB4MDIsMHhjMSwweDkzLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0fSB9LAoteyAgMTYsMHgyZGJiLDAsezB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4MjIsMHg5MCwweDc4LDB4MTZ9IH0sCi17ICAxNiwweDJkY2IsMCx7MHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwZCwweGEyLDB4N2IsMHg0NH0gfSwKLXsgIDE2LDB4MmRkYiwwLHsweDdhLDB4YWMsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgwZCwweDkxLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0fSB9LAoteyAgMTYsMHgyZGViLDAsezB4NDQsMHhmMCwweGEzLDB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTB9IH0sCi17ICAxNiwweDJkZmIsMCx7MHg3OCwweDE2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGQsMHhhMn0gfSwKLXsgIDE2LDB4MmUwYiwwLHsweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MGQsMHg5MSwweDcwLDB4MTMsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgyZTFiLDAsezB4MDAsMHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDN9IH0sCi17ICAxNiwweDJlMmIsMCx7MHhmMCwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MGEsMHgxMn0gfSwKLXsgIDE2LDB4MmUzYiwwLHsweDBkLDB4YTIsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDBkLDB4OTEsMHg3MCwweDQ4fSB9LAoteyAgMTYsMHgyZTRiLDAsezB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhhMywweDc0LDB4NzcsMHhmMCwweGEzLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzR9IH0sCi17ICAxNiwweDJlNWIsMCx7MHgwMywweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNH0gfSwKLXsgIDE2LDB4MmU2YiwwLHsweDdmLDB4NzAsMHgxNiwweDkwLDB4NzgsMHgxNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwfSB9LAoteyAgMTYsMHgyZTdiLDAsezB4MGUsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDAsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgOCwweDJlOGIsMCx7MHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgyZTkzLDAsezB4MjJ9IH0sCi17ICAxNiwweDJlOTQsMCx7MHg3NSwweDM2LDB4MjUsMHg3NSwweDM3LDB4MjQsMHg5MCwweDc5LDB4NzQsMHhlMCwweDY0LDB4MDEsMHg3MCwweDU0LDB4ZjAsMHhmNX0gfSwKLXsgIDE2LDB4MmVhNCwwLHsweDM1LDB4NzUsMHgyMiwweDAxLDB4ZTUsMHgyMiwweDY0LDB4MDEsMHg3MCwweDQ4LDB4OTAsMHg3ZiwweGE1LDB4ZTAsMHg0NCwweDgwfSB9LAoteyAgMTYsMHgyZWI0LDAsezB4ZjAsMHg5MCwweDdmLDB4YTYsMHhlNSwweDM2LDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NCwweDRmLDB4MjUsMHgzNSwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDJlYzQsMCx7MHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDc0LDB4MzUsMHgyNX0gfSwKLXsgIDE2LDB4MmVkNCwwLHsweDM1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHhhNiwweGYwLDB4MTIsMHg0NiwweGMwfSB9LAoteyAgMTYsMHgyZWU0LDAsezB4OTAsMHg3ZiwweGE1LDB4NzQsMHg0MCwweGYwLDB4MTIsMHgwYSwweGNkLDB4MDUsMHgzNSwweGU1LDB4MzUsMHhjMywweDk0LDB4MGR9IH0sCi17ICAxNiwweDJlZjQsMCx7MHg0MCwweGIyLDB4OTAsMHg3OSwweDc1LDB4ZTAsMHg2NCwweDAxLDB4NjAsMHgwMiwweGUxLDB4ZGUsMHhmMCwweDkwLDB4NzksMHgyMH0gfSwKLXsgIDE2LDB4MmYwNCwwLHsweGUwLDB4NjQsMHgwNSwweDYwLDB4MDIsMHhlMSwweDhkLDB4N2IsMHgwMSwweDkwLDB4NzksMHg1YywweDA0LDB4ZjAsMHhhMywweDc0fSB9LAoteyAgMTYsMHgyZjE0LDAsezB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4NzUsMHgzMywweDA3LDB4OTAsMHg3OSwweDVjLDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDJmMjQsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweDcwLDB4MGYsMHg5MCwweDAwLDB4MDQsMHgxMn0gfSwKLXsgIDE2LDB4MmYzNCwwLHsweDBjLDB4NWQsMHg5MCwweDc5LDB4MmYsMHhmMCwweDEyLDB4MGMsMHgyOSwweDgwLDB4MDYsMHg5MCwweDc5LDB4MmYsMHg3NCwweGZmfSB9LAoteyAgMTYsMHgyZjQ0LDAsezB4ZjAsMHhlNCwweGY1LDB4MzUsMHg3NSwweDIyLDB4MDEsMHg3NSwweDM0LDB4MDIsMHhlNSwweDIyLDB4NjQsMHgwMSwweDcwLDB4Mzl9IH0sCi17ICAxNiwweDJmNTQsMCx7MHg5MCwweDdmLDB4YTUsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhhNiwweGU1LDB4MzYsMHhmMCwweDEyLDB4NDYsMHhjMH0gfSwKLXsgIDE2LDB4MmY2NCwwLHsweGFmLDB4MzQsMHgwNSwweDM0LDB4OTAsMHg3ZiwweGE2LDB4ZWYsMHhmMCwweDEyLDB4NDYsMHhjMCwweDkwLDB4NzksMHgyZiwweGUwfSB9LAoteyAgMTYsMHgyZjc0LDAsezB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg5MCwweDdmLDB4YTUsMHg3NCwweDQwLDB4ZjAsMHgxMiwweDBhLDB4Y2R9IH0sCi17ICAxNiwweDJmODQsMCx7MHgwNSwweDM1LDB4ZTUsMHgzNSwweGMzLDB4OTQsMHgwNiwweDQwLDB4YzEsMHg5MCwweDc5LDB4MjAsMHhlMCwweDY0LDB4MDYsMHg3MH0gfSwKLXsgIDE2LDB4MmY5NCwwLHsweDQ5LDB4N2IsMHgwMSwweDkwLDB4NzksMHg1ZiwweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhmZiwweGYwfSB9LAoteyAgMTYsMHgyZmE0LDAsezB4NzUsMHgzMywweDAzLDB4OTAsMHg3OSwweDVmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDB9IH0sCi17ICAxNiwweDJmYjQsMCx7MHgwMSwweDEyLDB4MGMsMHg1ZCwweDcwLDB4MWMsMHg5MCwweDAwLDB4MDQsMHgxMiwweDBjLDB4NWQsMHg5MCwweDc5LDB4MzMsMHhmMH0gfSwKLXsgIDE2LDB4MmZjNCwwLHsweDcwLDB4MDMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDc5LDB4MzMsMHhlMCwweDU0LDB4N2YsMHhmZiwweGYwLDB4MjUsMHhlMCwweGYwfSB9LAoteyAgMTAsMHgyZmQ0LDAsezB4ODAsMHgwNSwweGU0LDB4OTAsMHg3OSwweDMzLDB4ZjAsMHgxMiwweDQ3LDB4ZGZ9IH0sCi17ICAgMSwweDJmZGUsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MmZkZiwwLHsweDkwLDB4NzksMHg3OCwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzksMHg4MywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHhhMiwweGFmfSB9LAoteyAgMTYsMHgyZmVmLDAsezB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4MjJ9IH0sCi17ICAgMSwweDJmZmYsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MzAwMCwwLHsweGU0LDB4ZmUsMHg5MCwweDc5LDB4MjAsMHhlMCwweGZkLDB4YjQsMHgwNSwweDExLDB4OTAsMHg3OCwweDI1LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzMDEwLDAsezB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4YjIsMHhmMCwweDc1LDB4MzUsMHgwNywweGVkLDB4YjQsMHgwNiwweDExLDB4OTB9IH0sCi17ICAxNiwweDMwMjAsMCx7MHg3OCwweDI1LDB4NzQsMHgwMSwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4ZmYsMHhmMCwweDc1LDB4MzUsMHgwM30gfSwKLXsgIDE2LDB4MzAzMCwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg2MCwweDExLDB4MTQsMHg2MCwweDViLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg0MSwweDA1fSB9LAoteyAgMTYsMHgzMDQwLDAsezB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4M2R9IH0sCi17ICAxNiwweDMwNTAsMCx7MHhlNCwweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg1MCwweDJmLDB4OTAsMHg3OCwweDI1LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MzA2MCwwLHsweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwfSB9LAoteyAgMTYsMHgzMDcwLDAsezB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDc4LDB4MjYsMHhlNCwweDc1LDB4ZjB9IH0sCi17ICAxNiwweDMwODAsMCx7MHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhjYiwweDkwLDB4N2YsMHhiNSwweGVlLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH0gfSwKLXsgIDE2LDB4MzA5MCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2UsMHg2MCwweDY0LDB4MTQsMHg3MCwweDAyfSB9LAoteyAgMTYsMHgzMGEwLDAsezB4MjEsMHg1NSwweDE0LDB4NzAsMHgwMiwweDIxLDB4YTksMHgyNCwweDAzLDB4NjAsMHgwMiwweDIxLDB4ZmQsMHhlNCwweGZmLDB4ZWZ9IH0sCi17ICAxNiwweDMwYjAsMCx7MHhjMywweDk1LDB4MzUsMHg1MCwweDQ2LDB4OTAsMHg3OCwweDI1LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDE2LDB4MzBjMCwwLHsweDkwLDB4MDAsMHgwMywweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgzMGQwLDAsezB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWV9IH0sCi17ICAxNiwweDMwZTAsMCx7MHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzBmMCwwLHsweDI2LDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjQsMHg5MCwweDdmLDB4YjUsMHhlZSwweGYwfSB9LAoteyAgMTYsMHgzMTAwLDAsezB4MjIsMHhlNCwweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg1MCwweDQ2LDB4OTAsMHg3OCwweDI1LDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDMxMTAsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NH0gfSwKLXsgIDE2LDB4MzEyMCwwLHsweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzMTMwLDAsezB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODN9IH0sCi17ICAxNiwweDMxNDAsMCx7MHhlZCwweGYwLDB4OTAsMHg3OCwweDI2LDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjQsMHg5MH0gfSwKLXsgIDE2LDB4MzE1MCwwLHsweDdmLDB4YjUsMHhlZSwweGYwLDB4MjIsMHhlNCwweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg1MCwweDQ2LDB4OTAsMHg3OCwweDI1fSB9LAoteyAgMTYsMHgzMTYwLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwNywweDEyLDB4MGMsMHg1ZCwweGZkLDB4Y2N9IH0sCi17ICAxNiwweDMxNzAsMCx7MHhlZSwweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGVkLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4MzE4MCwwLHsweDAwLDB4MDgsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMCwweDJjLDB4ZjUsMHg4MiwweGU0fSB9LAoteyAgMTYsMHgzMTkwLDAsezB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHg3OCwweDI2LDB4ZTQsMHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjR9IH0sCi17ICAxNiwweDMxYTAsMCx7MHgwZiwweDgwLDB4YjQsMHg5MCwweDdmLDB4YjUsMHhlZSwweGYwLDB4MjIsMHhlNCwweGZmLDB4ZWYsMHhjMywweDk1LDB4MzUsMHg1MH0gfSwKLXsgIDE2LDB4MzFiMCwwLHsweDQ2LDB4OTAsMHg3OCwweDI1LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwOSwweDEyfSB9LAoteyAgMTYsMHgzMWMwLDAsezB4MGMsMHg1ZCwweGZkLDB4Y2MsMHhlZSwweGNjLDB4MGUsMHg3NCwweDAwLDB4MmMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9IH0sCi17ICAxNiwweDMxZDAsMCx7MHg4MywweGVkLDB4ZjAsMHg5MCwweDAwLDB4MGEsMHgxMiwweDBjLDB4NWQsMHhmZCwweGNjLDB4ZWUsMHhjYywweDBlLDB4NzQsMHgwMH0gfSwKLXsgIDE2LDB4MzFlMCwwLHsweDJjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZCwweGYwLDB4OTAsMHg3OCwweDI2LDB4ZTQsMHg3NSwweGYwfSB9LAoteyAgMTYsMHgzMWYwLDAsezB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjQsMHg5MCwweDdmLDB4YjUsMHhlZSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxMiwweDMyMDAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDMyMGMsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MzIwZCwwLHsweDdiLDB4MDEsMHg3YSwweDc4LDB4NzksMHgyYiwweDkwLDB4NzgsMHgwMCwweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5fSB9LAoteyAgMTYsMHgzMjFkLDAsezB4ZjAsMHg3NCwweDAxLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDMyMmQsMCx7MHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHhlNCwweDEyLDB4MGMsMHg5Y30gfSwKLXsgIDE2LDB4MzIzZCwwLHsweDkwLDB4NzgsMHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzfSB9LAoteyAgMTYsMHgzMjRkLDAsezB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDc0LDB4MTAsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDMyNWQsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwNSwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMn0gfSwKLXsgIDE2LDB4MzI2ZCwwLHsweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzMjdkLDAsezB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMiwweDEyLDB4MGMsMHg4YSwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMyOGQsMCx7MHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDAyLDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4MzI5ZCwwLHsweDljLDB4OTAsMHgwMCwweDAyLDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyfSB9LAoteyAgMTYsMHgzMmFkLDAsezB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAxLDB4MTJ9IH0sCi17ICAxNiwweDMyYmQsMCx7MHgwYywweDhhLDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMX0gfSwKLXsgIDE2LDB4MzJjZCwwLHsweDc0LDB4MDMsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwMSwweGU0fSB9LAoteyAgMTYsMHgzMmRkLDAsezB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDMyZWQsMCx7MHhmOSwweDc0LDB4MTAsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMH0gfSwKLXsgIDE2LDB4MzJmZCwwLHsweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwNiwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweGU0LDB4MTIsMHgwYywweDljfSB9LAoteyAgMTYsMHgzMzBkLDAsezB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDMzMWQsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMiwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzMyZCwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDA0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgzMzNkLDAsezB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMzNGQsMCx7MHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAyLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4MzM1ZCwwLHsweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDQsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzMzZkLDAsezB4OWMsMHg5MCwweDAwLDB4MDIsMHg3NCwweDA0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDAxLDB4ZTQsMHg3NSwweGYwLDB4MDN9IH0sCi17ICAxNiwweDMzN2QsMCx7MHgxMiwweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4MzM4ZCwwLHsweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwMCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwfSB9LAoteyAgMTYsMHgzMzlkLDAsezB4MDEsMHg3NCwweDAzLDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4NzQsMHgwNCwweDEyLDB4MGMsMHg5YywweDkwLDB4Nzh9IH0sCi17ICAxNiwweDMzYWQsMCx7MHgwMSwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OCwweDAwLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MzNiZCwwLHsweGEzLDB4ZTAsMHhmOSwweDc0LDB4MDIsMHgxMiwweDBjLDB4OGEsMHg5MCwweDc4LDB4MDAsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgzM2NkLDAsezB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzQsMHgwMiwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMiwweDc0LDB4MDR9IH0sCi17ICAxNiwweDMzZGQsMCx7MHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDEsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMH0gfSwKLXsgIDE2LDB4MzNlZCwwLHsweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDAyLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAwfSB9LAoteyAgMTYsMHgzM2ZkLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDEsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAgOCwweDM0MGQsMCx7MHg5MCwweDAwLDB4MDIsMHg3NCwweDA0LDB4MTIsMHgwYywweDljfSB9LAoteyAgIDEsMHgzNDE1LDAsezB4MjJ9IH0sCi17ICAxNiwweDM0MTYsMCx7MHhlNCwweGZlLDB4OTAsMHg3OSwweDIwLDB4ZTAsMHhmZCwweGI0LDB4MDUsMHgxMSwweDkwLDB4NzgsMHgxZiwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MzQyNiwwLHsweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHg3NSwweDM1LDB4MDcsMHhlZCwweGI0LDB4MDYsMHgxMSwweDkwfSB9LAoteyAgMTYsMHgzNDM2LDAsezB4NzgsMHgxZiwweDc0LDB4MDEsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGZmLDB4ZjAsMHg3NSwweDM1LDB4MDN9IH0sCi17ICAxNiwweDM0NDYsMCx7MHg5MCwweDc5LDB4OTksMHhlMCwweDE0LDB4NjAsMHgxMSwweDE0LDB4NjAsMHg1YiwweDI0LDB4MDIsMHg2MCwweDAyLDB4YzEsMHgwNn0gfSwKLXsgIDE2LDB4MzQ1NiwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4OTcsMHhlMCwweDE0LDB4NzAsMHgzZSwweGU0fSB9LAoteyAgMTYsMHgzNDY2LDAsezB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDUwLDB4MmYsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDM0NzYsMCx7MHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgxZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhM30gfSwKLXsgIDE2LDB4MzQ4NiwwLHsweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHhlZCwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgyMCwweGU0LDB4NzUsMHhmMCwweDBifSB9LAoteyAgMTYsMHgzNDk2LDAsezB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGNiLDB4OTAsMHg3OSwweDc1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxNiwweDM0YTYsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDk3LDB4ZTAsMHgyNCwweGZlLDB4NjAsMHg2MywweDE0LDB4NzAsMHgwMn0gfSwKLXsgIDE2LDB4MzRiNiwwLHsweGExLDB4NjQsMHgxNCwweDcwLDB4MDIsMHhhMSwweGIyLDB4MjQsMHgwMywweDYwLDB4MDIsMHhhMSwweGZlLDB4ZTQsMHhmZiwweGVmfSB9LAoteyAgMTYsMHgzNGM2LDAsezB4YzMsMHg5NSwweDM1LDB4NTAsMHg0NCwweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzR9IH0sCi17ICAxNiwweDM0ZDYsMCx7MHg3OSwweGY1LDB4ODMsMHhlMCwweGZkLDB4OTAsMHg3OCwweDFmLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDE2LDB4MzRlNiwwLHsweDkwLDB4MDAsMHgwMywweGVkLDB4MTIsMHgwYywweDljLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNSwweDgyfSB9LAoteyAgMTYsMHgzNGY2LDAsezB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDIwLDB4ZTR9IH0sCi17ICAxNiwweDM1MDYsMCx7MHg3NSwweGYwLDB4MGIsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4YjYsMHg5MCwweDc5LDB4NzUsMHg3NCwweDAxLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MzUxNiwwLHsweGU0LDB4ZmYsMHhlZiwweGMzLDB4OTUsMHgzNSwweDQwLDB4MDIsMHhjMSwweDBkLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxfSB9LAoteyAgMTYsMHgzNTI2LDAsezB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4ZmQsMHg5MCwweDc4LDB4MWYsMHhlMCwweGZiLDB4YTN9IH0sCi17ICAxNiwweDM1MzYsMCx7MHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA1LDB4ZWQsMHgxMiwweDBjLDB4OWMsMHhjZCwweGVlLDB4Y2QsMHgwZX0gfSwKLXsgIDE2LDB4MzU0NiwwLHsweDc0LDB4MjEsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDBjfSB9LAoteyAgMTYsMHgzNTU2LDAsezB4OWMsMHg5MCwweDc4LDB4MjAsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNCwweGU0LDB4ZmZ9IH0sCi17ICAxNiwweDM1NjYsMCx7MHhlZiwweGMzLDB4OTUsMHgzNSwweDQwLDB4MDIsMHhjMSwweDBkLDB4Y2QsMHhlZSwweGNkLDB4MGUsMHg3NCwweDIxLDB4MmQsMHhmNX0gfSwKLXsgIDE2LDB4MzU3NiwwLHsweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4ZmQsMHg5MCwweDc4LDB4MWYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhfSB9LAoteyAgMTYsMHgzNTg2LDAsezB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA3LDB4ZWQsMHgxMiwweDBjLDB4OWMsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjF9IH0sCi17ICAxNiwweDM1OTYsMCx7MHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDBjLDB4OWMsMHg5MH0gfSwKLXsgIDE2LDB4MzVhNiwwLHsweDc4LDB4MjAsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhiNCwweGU0LDB4ZmYsMHhlZiwweGMzfSB9LAoteyAgMTYsMHgzNWI2LDAsezB4OTUsMHgzNSwweDUwLDB4NTMsMHhjZCwweGVlLDB4Y2QsMHgwZSwweDc0LDB4MjEsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4Nzl9IH0sCi17ICAxNiwweDM1YzYsMCx7MHhmNSwweDgzLDB4ZTAsMHhmZCwweDkwLDB4NzgsMHgxZiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MH0gfSwKLXsgIDE2LDB4MzVkNiwwLHsweDAwLDB4MDksMHhlZCwweDEyLDB4MGMsMHg5YywweGNkLDB4ZWUsMHhjZCwweDBlLDB4NzQsMHgyMSwweDJkLDB4ZjUsMHg4MiwweGU0fSB9LAoteyAgMTYsMHgzNWU2LDAsezB4MzQsMHg3OSwweGY1LDB4ODMsMHhlMCwweDkwLDB4MDAsMHgwYSwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgyMCwweGU0LDB4NzV9IH0sCi17ICAxNiwweDM1ZjYsMCx7MHhmMCwweDBiLDB4MTIsMHgwYywweGY0LDB4MGYsMHg4MCwweGI2LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn0gfSwKLXsgICA3LDB4MzYwNiwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHgzNjBkLDAsezB4MjJ9IH0sCi17ICAxNiwweDM2MGUsMCx7MHhlNCwweGZlLDB4OTAsMHg3OSwweDIwLDB4ZTAsMHhmZCwweGI0LDB4MDUsMHgxMCwweDkwLDB4NzgsMHgyOCwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MzYxZSwwLHsweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHg3ZiwweDA3LDB4ZWQsMHhiNCwweDA2LDB4MTAsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzNjJlLDAsezB4MjgsMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhmZiwweGYwLDB4N2YsMHgwMywweDkwLDB4Nzh9IH0sCi17ICAxNiwweDM2M2UsMCx7MHgyOCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDQsMHhmZCwweDkwLDB4N2YsMHhlYX0gfSwKLXsgIDE2LDB4MzY0ZSwwLHsweGUwLDB4NmQsMHg2MCwweDEyLDB4ZWUsMHhjMywweDlmLDB4NTAsMHgwZCwweDkwLDB4NzgsMHgyOSwweGU0LDB4NzUsMHhmMCwweDBifSB9LAoteyAgMTYsMHgzNjVlLDAsezB4MTIsMHgwYywweGY0LDB4MGUsMHg4MCwweGQ4LDB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgxNCwweDYwLDB4NDZ9IH0sCi17ICAxNiwweDM2NmUsMCx7MHgyNCwweDAyLDB4NjAsMHgwMiwweGUxLDB4OWEsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MzY3ZSwwLHsweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgyOCwweGVlLDB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfSB9LAoteyAgMTYsMHgzNjhlLDAsezB4ZjAsMHgyMiwweDkwLDB4NzgsMHgyOCwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDF9IH0sCi17ICAxNiwweDM2OWUsMCx7MHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MzZhZSwwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZSwweDYwLDB4NDAsMHgxNCwweDYwfSB9LAoteyAgMTYsMHgzNmJlLDAsezB4NmYsMHgxNCwweDcwLDB4MDIsMHhlMSwweDYwLDB4MjQsMHgwMywweDYwLDB4MDIsMHhlMSwweDkyLDB4ZWUsMHg2ZiwweDcwLDB4MDh9IH0sCi17ICAxNiwweDM2Y2UsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDI4LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4MzZkZSwwLHsweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMywweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHgwMCwweDA0fSB9LAoteyAgMTYsMHgzNmVlLDAsezB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweGVlLDB4NmZ9IH0sCi17ICAxNiwweDM2ZmUsMCx7MHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzgsMHgyOCwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4MzcwZSwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDUsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwfSB9LAoteyAgMTYsMHgzNzFlLDAsezB4MDAsMHgwNiwweDEyLDB4MGMsMHg1ZCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDM3MmUsMCx7MHhlZSwweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc4LDB4MjgsMHhlMH0gfSwKLXsgIDE2LDB4MzczZSwwLHsweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA3LDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAwfSB9LAoteyAgMTYsMHgzNzRlLDAsezB4ZjAsMHg5MCwweDAwLDB4MDgsMHgxMiwweDBjLDB4NWQsMHg5MCwweDdmLDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDM3NWUsMCx7MHhmMCwweDIyLDB4ZWUsMHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4Mzc2ZSwwLHsweDI4LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MGMsMHg1ZCwweDkwfSB9LAoteyAgMTYsMHgzNzdlLDAsezB4N2YsMHgwMCwweGYwLDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwYywweDVkLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjV9IH0sCi17ICAxNiwweDM3OGUsMCx7MHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMH0gfSwKLXsgICAzLDB4Mzc5ZSwwLHsweDQ0LDB4MDEsMHhmMH0gfSwKLXsgICAxLDB4MzdhMSwwLHsweDIyfSB9LAoteyAgMTYsMHgzN2EyLDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDM3YjIsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn0gfSwKLXsgIDE2LDB4MzdjMiwwLHsweGMwLDB4ZTAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHg5MCwweDc5LDB4ODMsMHhlMCwweDU0fSB9LAoteyAgMTYsMHgzN2QyLDAsezB4ZmQsMHhmMCwweDEyLDB4MmYsMHhkZiwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTB9IH0sCi17ICAxNiwweDM3ZTIsMCx7MHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMH0gfSwKLXsgICA4LDB4MzdmMiwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAgNiwweDM3ZmEsMCx7MHg1MywweDkxLDB4YmYsMHhkMiwweDI2LDB4MzJ9IH0sCi17ICAxNiwweDM4MDAsMCx7MHhlNCwweGZlLDB4OTAsMHg3OSwweDIwLDB4ZTAsMHhmZCwweGI0LDB4MDUsMHgxMCwweDkwLDB4NzgsMHgyMiwweDc0LDB4MDEsMHhmMH0gfSwKLXsgIDE2LDB4MzgxMCwwLHsweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NCwweGIyLDB4ZjAsMHg3ZiwweDA3LDB4ZWQsMHhiNCwweDA2LDB4MTAsMHg5MCwweDc4fSB9LAoteyAgMTYsMHgzODIwLDAsezB4MjIsMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhmZiwweGYwLDB4N2YsMHgwMywweDkwLDB4Nzh9IH0sCi17ICAxNiwweDM4MzAsMCx7MHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDQsMHhmZCwweDkwLDB4NzksMHg5OH0gfSwKLXsgIDE2LDB4Mzg0MCwwLHsweGUwLDB4NmQsMHg2MCwweDEyLDB4ZWUsMHhjMywweDlmLDB4NTAsMHgwZCwweDkwLDB4NzgsMHgyMywweGU0LDB4NzUsMHhmMCwweDBifSB9LAoteyAgMTYsMHgzODUwLDAsezB4MTIsMHgwYywweGY0LDB4MGUsMHg4MCwweGQ4LDB4OTAsMHg3OSwweDk5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgxNCwweDYwLDB4NDh9IH0sCi17ICAxNiwweDM4NjAsMCx7MHgyNCwweDAyLDB4NjAsMHgwMiwweDIxLDB4ODUsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4Mzg3MCwwLHsweDk3LDB4ZTAsMHgxNCwweDcwLDB4MmIsMHhlZSwweDZmLDB4NzAsMHgwOSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzODgwLDAsezB4ODAsMHgxNywweDkwLDB4NzksMHgyMSwweGUwLDB4ZmQsMHg5MCwweDc4LDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTN9IH0sCi17ICAxNiwweDM4OTAsMCx7MHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4ZWQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc5LDB4NzUsMHg3NCwweDAxLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4MzhhMCwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc5LDB4OTcsMHhlMCwweDI0LDB4ZmUsMHg2MCwweDQzfSB9LAoteyAgMTYsMHgzOGIwLDAsezB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4MjEsMHg0ZiwweDI0LDB4MDMsMHg2MCwweDAyLDB4MjEsMHg3ZCwweGVlLDB4NmZ9IH0sCi17ICAxNiwweDM4YzAsMCx7MHg3MCwweDA5LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDIxLDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZH0gfSwKLXsgIDE2LDB4MzhkMCwwLHsweDkwLDB4NzgsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDMsMHhlZCwweDEyfSB9LAoteyAgMTYsMHgzOGUwLDAsezB4MGMsMHg5YywweDkwLDB4NzksMHgyMiwweGUwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwYywweDljLDB4OTAsMHg3OSwweDc1LDB4NzR9IH0sCi17ICAxNiwweDM4ZjAsMCx7MHgwMSwweGYwLDB4MjIsMHhlZSwweDZmLDB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MH0gfSwKLXsgIDE2LDB4MzkwMCwwLHsweDc5LDB4MjEsMHhlMCwweGZkLDB4OTAsMHg3OCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwfSB9LAoteyAgMTYsMHgzOTEwLDAsezB4MDAsMHgwNSwweGVkLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OSwweDIyLDB4ZTAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAxNiwweDM5MjAsMCx7MHgyMiwweGVlLDB4NmYsMHg3MCwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzksMHgyMX0gfSwKLXsgIDE2LDB4MzkzMCwwLHsweGUwLDB4ZmQsMHg5MCwweDc4LDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDA3fSB9LAoteyAgMTYsMHgzOTQwLDAsezB4ZWQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc5LDB4MjIsMHhlMCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MGMsMHg5YywweDIyLDB4ZWV9IH0sCi17ICAxNiwweDM5NTAsMCx7MHg2ZiwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OSwweDIxLDB4ZTAsMHhmZX0gfSwKLXsgIDE2LDB4Mzk2MCwwLHsweDkwLDB4NzgsMHgyMiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDksMHhlZSwweDEyfSB9LAoteyAgMTYsMHgzOTcwLDAsezB4MGMsMHg5YywweDkwLDB4NzksMHgyMiwweGUwLDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwYywweDljLDB4MjIsMHg5MCwweDdmLDB4YjR9IH0sCi17ICAxMiwweDM5ODAsMCx7MHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDM5OGMsMCx7MHgyMn0gfSwKLXsgIDE2LDB4Mzk4ZCwwLHsweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGU0LDB4OTAsMHg3OSwweDgzLDB4ZjAsMHgxMiwweDJmLDB4ZGYsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgzOTlkLDAsezB4ZTAsMHg3NCwweDkwLDB4ZjAsMHg5MCwweDdmLDB4ZTEsMHg3NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4N2YsMHhkZCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDM5YWQsMCx7MHg3ZiwweGExLDB4ZjAsMHg1MywweDhlLDB4ZjgsMHg3NSwweDg4LDB4MDUsMHg3NSwweGI4LDB4MjAsMHg3NSwweGY4LDB4MDEsMHg0M30gfSwKLXsgIDE2LDB4MzliZCwwLHsweDhlLDB4MzAsMHhmNSwweGM4LDB4NzUsMHhjYSwweDdmLDB4NzUsMHhjYiwweGY4LDB4NDMsMHhhOCwweDIwLDB4OTAsMHg3OSwweDc0fSB9LAoteyAgMTYsMHgzOWNkLDAsezB4MDQsMHhmMCwweGMyLDB4MjIsMHhlNCwweGY1LDB4MGYsMHg5MCwweDc5LDB4NzgsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDc5LDB4NjJ9IH0sCi17ICAxNiwweDM5ZGQsMCx7MHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3OSwweDY2LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3OSwweDdiLDB4ZjAsMHhhM30gfSwKLXsgIDE2LDB4MzllZCwwLHsweGYwLDB4OTAsMHg3OSwweDg0LDB4ZjAsMHg5MCwweDc5LDB4N2QsMHhmMCwweDkwLDB4NzksMHg3NSwweGYwLDB4YTMsMHhmMCwweGEzfSB9LAoteyAgMTYsMHgzOWZkLDAsezB4ZjAsMHhjMiwweDIzLDB4YzIsMHgyNCwweGMyLDB4MjUsMHhjMiwweDI2LDB4YzIsMHgyMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjV9IH0sCi17ICAxNiwweDNhMGQsMCx7MHgwYSwweDU0LDB4MjAsMHhmNSwweDBhLDB4NzAsMHgwNiwweDkwLDB4NzksMHg3ZSwweGYwLDB4ODAsMHgwNiwweDkwLDB4NzksMHg3ZX0gfSwKLXsgIDE2LDB4M2ExZCwwLHsweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZjUsMHgwYSwweDU0LDB4MDIsMHhmNSwweDBhLDB4NzAsMHgwNiwweDkwfSB9LAoteyAgMTYsMHgzYTJkLDAsezB4NzksMHg3ZiwweGYwLDB4ODAsMHgwNiwweDkwLDB4NzksMHg3ZiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3OCwweDc0LDB4MDJ9IH0sCi17ICAxNiwweDNhM2QsMCx7MHhmMCwweDkwLDB4NzksMHg4NCwweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2YsMHhlMCwweGI0LDB4MDEsMHgwOX0gfSwKLXsgIDE2LDB4M2E0ZCwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgMTYsMHgzYTVkLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4ODQsMHhmMCwweDEyLDB4MGIsMHhhMiwweDkwLDB4NzksMHg3OCwweDc0LDB4MDF9IH0sCi17ICAxNiwweDNhNmQsMCx7MHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHg5MCwweDc5LDB4N2UsMHhlMCwweGI0LDB4MDEsMHgwOX0gfSwKLXsgIDE2LDB4M2E3ZCwwLHsweDkwLDB4NzksMHg3OSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwfSB9LAoteyAgMTYsMHgzYThkLDAsezB4OTAsMHg3OSwweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweDEyLDB4MGIsMHhhMiwweGU0LDB4OTAsMHg3OSwweDc4LDB4ZjB9IH0sCi17ICAxNiwweDNhOWQsMCx7MHhhMywweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzksMHg4OCwweGYwLDB4MTIsMHgwYiwweGEyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhkZH0gfSwKLXsgIDE2LDB4M2FhZCwwLHsweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMSwweGYwLDB4YTMsMHhmMCwweDEyfSB9LAoteyAgMTYsMHgzYWJkLDAsezB4MGIsMHhhMiwweGU0LDB4OTAsMHg3OSwweDdhLDB4ZjAsMHg5MCwweDc5LDB4ODMsMHgwNCwweGYwLDB4MTIsMHgyZiwweGRmLDB4ZTR9IH0sCi17ICAxNiwweDNhY2QsMCx7MHg5MCwweDc5LDB4MzAsMHhmMCwweDkwLDB4NzksMHg4NSwweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHgxMiwweDJlLDB4OTQsMHg5MH0gfSwKLXsgIDE2LDB4M2FkZCwwLHsweDc5LDB4MmQsMHg3NCwweDAyLDB4ZjAsMHg5MCwweDc5LDB4ODgsMHgxNCwweGYwLDB4YzIsMHgyZiwweGU0LDB4OTAsMHg3OSwweDY4fSB9LAoteyAgMTYsMHgzYWVkLDAsezB4ZjAsMHg5MCwweDc5LDB4OGEsMHhmMCwweDkwLDB4NzksMHg2YSwweGYwLDB4YTMsMHhmMCwweDc1LDB4MTMsMHgwOCwweDc1LDB4MTR9IH0sCi17ICAxNiwweDNhZmQsMCx7MHgwOCwweGY1LDB4MTYsMHhmNSwweDE1LDB4ZjUsMHgxNywweDkwLDB4NzksMHg4YywweGYwLDB4OTAsMHg3OSwweDhiLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4M2IwZCwwLHsweDdiLDB4MDEsMHg3YSwweDc4LDB4NzksMHg1OCwweDkwLDB4NzgsMHgwMywweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5fSB9LAoteyAgMTYsMHgzYjFkLDAsezB4ZjAsMHg3NCwweDQwLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDNiMmQsMCx7MHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MGEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4ZjYsMHgwMH0gfSwKLXsgIDE2LDB4M2IzZCwwLHsweDAwLDB4YmIsMHg4MCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MGQsMHhmNiwweDAwLDB4MDAsMHhhYywweDQ0LDB4OTAsMHgwMCwweDBhfSB9LAoteyAgMTYsMHgzYjRkLDAsezB4MTIsMHgwZCwweGY2LDB4MDAsMHgwMSwweDc3LDB4MDAsMHg5MCwweDc4LDB4MDQsMHhlNCwweDc1LDB4ZjAsMHgwZiwweDEyLDB4MGN9IH0sCi17ICAxNiwweDNiNWQsMCx7MHhmNCwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDQwLDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4M2I2ZCwwLHsweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0fSB9LAoteyAgMTYsMHgzYjdkLDAsezB4OGMsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDIsMHgxMiwweDBkLDB4ZjYsMHgwMCwweDAwLDB4YmIsMHg4MCwweDkwLDB4MDB9IH0sCi17ICAxNiwweDNiOGQsMCx7MHgwNiwweDEyLDB4MGQsMHhmNiwweDAwLDB4MDAsMHhhYywweDQ0LDB4OTAsMHgwMCwweDBhLDB4MTIsMHgwZCwweGY2LDB4MDAsMHgwMX0gfSwKLXsgIDE2LDB4M2I5ZCwwLHsweDc3LDB4MDAsMHg5MCwweDc4LDB4MDQsMHhlNCwweDc1LDB4ZjAsMHgwZiwweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMywweGUwfSB9LAoteyAgMTYsMHgzYmFkLDAsezB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDQwLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTB9IH0sCi17ICAxNiwweDNiYmQsMCx7MHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4OGYsMHgxMiwweDBjLDB4OWMsMHg5MH0gfSwKLXsgIDE2LDB4M2JjZCwwLHsweDc4LDB4MDQsMHhlNCwweDc1LDB4ZjAsMHgwZiwweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzYmRkLDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDQxLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDNiZWQsMCx7MHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4ODQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDQsMHhlNH0gfSwKLXsgIDE2LDB4M2JmZCwwLHsweDc1LDB4ZjAsMHgwZiwweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwfSB9LAoteyAgMTYsMHgzYzBkLDAsezB4ZjksMHg3NCwweDYxLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDNjMWQsMCx7MHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4ODEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MDQsMHhlNCwweDc1LDB4ZjAsMHgwZn0gfSwKLXsgIDE2LDB4M2MyZCwwLHsweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwMywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg3NCwweDYxfSB9LAoteyAgMTYsMHgzYzNkLDAsezB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDAzLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDB9IH0sCi17ICAgNiwweDNjNGQsMCx7MHgwMSwweDc0LDB4MDEsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAgMSwweDNjNTMsMCx7MHgyMn0gfSwKLXsgIDE2LDB4M2M1NCwwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSB9LAoteyAgMTYsMHgzYzY0LDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9IH0sCi17ICAgMiwweDNjNzQsMCx7MHhjMCwweGUwfSB9LAoteyAgMTYsMHgzYzc2LDAsezB4OTAsMHg3ZiwweGEyLDB4ZTAsMHhmNSwweDBiLDB4OTAsMHg3ZiwweDc0LDB4ZTAsMHg5MCwweDc5LDB4NzAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDNjODYsMCx7MHg3NSwweGUwLDB4OTAsMHg3OSwweDcxLDB4ZjAsMHg5MCwweDc5LDB4ODMsMHhlMCwweGZmLDB4ZmUsMHg1NCwweDAyLDB4ZmUsMHg3MH0gfSwKLXsgIDE2LDB4M2M5NiwwLHsweDBkLDB4ZWYsMHg0NCwweDAyLDB4ZjAsMHgxMiwweDJmLDB4ZGYsMHg5MCwweDc5LDB4NzQsMHg3NCwweDAxLDB4ZjAsMHhlNSwweDBifSB9LAoteyAgMTYsMHgzY2E2LDAsezB4MjAsMHhlMiwweDI4LDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHg3YywweDAwLDB4MjQsMHgwMCwweGY1LDB4MTF9IH0sCi17ICAxNiwweDNjYjYsMCx7MHhlYywweDNlLDB4ZjUsMHgxMCwweDkwLDB4NzksMHg4MiwweGUwLDB4ZmQsMHhhZSwweDEwLDB4YWYsMHgxMSwweDEyLDB4MGMsMHhiZX0gfSwKLXsgIDE2LDB4M2NjNiwwLHsweDkwLDB4NzksMHg3MCwweGVmLDB4ZjAsMHg5MCwweDc5LDB4ODksMHg3NCwweDAxLDB4ZjAsMHgxMiwweDQ4LDB4NDMsMHgxMiwweDQ4fSB9LAoteyAgMTYsMHgzY2Q2LDAsezB4NzYsMHg5MCwweDc5LDB4ODksMHhlMCwweDY0LDB4MDEsMHg3MCwweDMyLDB4MTIsMHg0MSwweDA4LDB4OTAsMHg3OSwweDg5LDB4ZTR9IH0sCi17ICAxNiwweDNjZTYsMCx7MHhmMCwweDkwLDB4N2YsMHg5OCwweGUwLDB4NDQsMHg0MCwweGYwLDB4OTAsMHg3ZiwweDllLDB4ZTAsMHg0NCwweDQwLDB4ZjAsMHg5MH0gfSwKLXsgIDE2LDB4M2NmNiwwLHsweDdmLDB4OTUsMHg3NCwweDgwLDB4ZjAsMHg3NSwweGU4LDB4MDEsMHgxMiwweDA5LDB4MzIsMHg3NSwweGU4LDB4MGQsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgzZDA2LDAsezB4OTUsMHg3NCwweGMwLDB4ZjAsMHg3NSwweGU4LDB4MGQsMHhkMiwweDIwLDB4ODAsMHgwNSwweDc1LDB4ZTgsMHgwMSwweGMyLDB4MjB9IH0sCi17ICAxNiwweDNkMTYsMCx7MHgyMCwweDIwLDB4MmIsMHg5MCwweDc5LDB4MmQsMHhlMCwweGZmLDB4YjQsMHgwMSwweDA5LDB4NzUsMHgwYywweDY3LDB4NzUsMHgwZH0gfSwKLXsgIDE2LDB4M2QyNiwwLHsweDA2LDB4NzUsMHgwZSwweDBiLDB4ZWYsMHhiNCwweDAyLDB4MDksMHg3NSwweDBjLDB4MDAsMHg3NSwweDBkLDB4MDAsMHg3NSwweDBlfSB9LAoteyAgMTYsMHgzZDM2LDAsezB4MGMsMHhlZiwweGI0LDB4MDMsMHgwOSwweDc1LDB4MGMsMHgwMCwweDc1LDB4MGQsMHgwMCwweDc1LDB4MGUsMHgxOCwweDc1LDB4Y2F9IH0sCi17ICAxNiwweDNkNDYsMCx7MHg2ZiwweDc1LDB4Y2IsMHhmZSwweGQyLDB4Y2EsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhmMH0gfSwKLXsgIDE2LDB4M2Q1NiwwLHsweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmYiwweGQwfSB9LAoteyAgMTYsMHgzZDY2LDAsezB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjB9IH0sCi17ICAgMywweDNkNzYsMCx7MHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDNkNzksMCx7MHg3NSwweDMzLDB4MjUsMHg3NSwweDM0LDB4MjQsMHg5MCwweDc5LDB4NWMsMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMH0gfSwKLXsgIDE2LDB4M2Q4OSwwLHsweGEzLDB4NzQsMHhiMiwweGYwLDB4MjAsMHgyZiwweDAyLDB4YzEsMHgxNywweGU0LDB4ZjUsMHgzNSwweDc1LDB4MjIsMHgwMSwweDkwfSB9LAoteyAgMTYsMHgzZDk5LDAsezB4NzksMHg1YywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDQsMHgxMiwweDBjLDB4NWR9IH0sCi17ICAxNiwweDNkYTksMCx7MHhmNSwweDM2LDB4NzUsMHgzNSwweDA2LDB4NzQsMHg0MiwweDI1LDB4MzUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4M30gfSwKLXsgIDE2LDB4M2RiOSwwLHsweGU1LDB4MzYsMHhmMCwweDA1LDB4MzUsMHhlNSwweDM1LDB4YjQsMHgwYywweGViLDB4ZTUsMHgzNSwweGMzLDB4OTQsMHgwZCwweDQwfSB9LAoteyAgMTYsMHgzZGM5LDAsezB4MDIsMHhjMSwweDk4LDB4ZTUsMHgyMiwweDY0LDB4MDEsMHg2MCwweDAyLDB4YzEsMHg5OCwweDkwLDB4N2YsMHhhNSwweGUwLDB4NDR9IH0sCi17ICAxNiwweDNkZDksMCx7MHg4MCwweGYwLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHgzMywweGYwLDB4MTIsMHg0NiwweGMwLDB4NzQsMHg0ZiwweDI1LDB4MzUsMHhmNX0gfSwKLXsgIDE2LDB4M2RlOSwwLHsweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NCwweDQyfSB9LAoteyAgMTYsMHgzZGY5LDAsezB4MjUsMHgzNSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyLDB4NDZ9IH0sCi17ICAxNiwweDNlMDksMCx7MHhjMCwweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMCwweDEyLDB4MGEsMHhjZCwweDA1LDB4MzUsMHg4MCwweGFjLDB4ZTQsMHhmNX0gfSwKLXsgIDE2LDB4M2UxOSwwLHsweDM1LDB4NzUsMHgyMiwweDAxLDB4OTAsMHg3OSwweDVjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwfSB9LAoteyAgMTYsMHgzZTI5LDAsezB4MDAsMHgwNCwweDEyLDB4MGMsMHg1ZCwweGY1LDB4MzYsMHg3NSwweDM1LDB4MDYsMHg3NCwweDM1LDB4MjUsMHgzNSwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDNlMzksMCx7MHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTUsMHgzNiwweGYwLDB4MDUsMHgzNSwweGU1LDB4MzUsMHhiNCwweDBjLDB4ZWIsMHhlNX0gfSwKLXsgIDE2LDB4M2U0OSwwLHsweDM1LDB4YzMsMHg5NCwweDBkLDB4NTAsMHg0OSwweGU1LDB4MjIsMHg2NCwweDAxLDB4NzAsMHg0MywweDkwLDB4N2YsMHhhNSwweGUwfSB9LAoteyAgMTYsMHgzZTU5LDAsezB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweGE2LDB4ZTUsMHgzMywweGYwLDB4MTIsMHg0NiwweGMwLDB4NzQsMHg0ZiwweDI1LDB4MzV9IH0sCi17ICAxNiwweDNlNjksMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc5LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweGE2LDB4ZjAsMHgxMiwweDQ2LDB4YzAsMHg3NH0gfSwKLXsgIDE2LDB4M2U3OSwwLHsweDM1LDB4MjUsMHgzNSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4YTYsMHhmMCwweDEyfSB9LAoteyAgMTUsMHgzZTg5LDAsezB4NDYsMHhjMCwweDkwLDB4N2YsMHhhNSwweDc0LDB4NDAsMHhmMCwweDEyLDB4MGEsMHhjZCwweDA1LDB4MzUsMHg4MCwweGIwfSB9LAoteyAgIDEsMHgzZTk4LDAsezB4MjJ9IH0sCi17ICAxNiwweDNlOTksMCx7MHg5MCwweDc4LDB4MDksMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHhiMiwweGYwLDB4ZTQsMHhmZn0gfSwKLXsgIDE2LDB4M2VhOSwwLHsweGZlLDB4OTAsMHg3OCwweDA5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweGVmLDB4MTIsMHgwYywweDhhfSB9LAoteyAgMTYsMHgzZWI5LDAsezB4OTAsMHg3OCwweDA5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweGU0LDB4MTJ9IH0sCi17ICAxNiwweDNlYzksMCx7MHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4NzQsMHgxNSwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwMywweGU0LDB4MTIsMHgwY30gfSwKLXsgIDE2LDB4M2VkOSwwLHsweDljLDB4OTAsMHgwMCwweDA0LDB4NzQsMHhmZiwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNSwweGU0LDB4MTIsMHgwYywweDljfSB9LAoteyAgMTYsMHgzZWU5LDAsezB4OTAsMHgwMCwweDA2LDB4NzQsMHhjMywweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNywweGU0LDB4MTIsMHgwYywweDljLDB4OTB9IH0sCi17ICAxNiwweDNlZjksMCx7MHgwMCwweDA4LDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDksMHhlNCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwYX0gfSwKLXsgIDE2LDB4M2YwOSwwLHsweDc0LDB4MDEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MGEsMHhlNCwweDc1LDB4ZjAsMHgwYiwweDEyLDB4MGMsMHhmNCwweDBmfSB9LAoteyAgMTYsMHgzZjE5LDAsezB4MGUsMHhiZSwweDA3LDB4OGQsMHg5MCwweDc4LDB4MDksMHg3NCwweDAxLDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzR9IH0sCi17ICAxNiwweDNmMjksMCx7MHhmZiwweGYwLDB4ZTQsMHhmZiwweGZlLDB4OTAsMHg3OCwweDA5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOX0gfSwKLXsgIDE2LDB4M2YzOSwwLHsweGVmLDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDA5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwfSB9LAoteyAgMTYsMHgzZjQ5LDAsezB4MDAsMHgwMSwweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDAyLDB4NzQsMHgxNSwweDEyLDB4MGMsMHg5YywweDkwLDB4MDB9IH0sCi17ICAxNiwweDNmNTksMCx7MHgwMywweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA0LDB4NzQsMHg4MCwweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNX0gfSwKLXsgIDE2LDB4M2Y2OSwwLHsweGU0LDB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA2LDB4NzQsMHhjMywweDEyLDB4MGMsMHg5YywweDkwLDB4MDAsMHgwNywweGU0fSB9LAoteyAgMTYsMHgzZjc5LDAsezB4MTIsMHgwYywweDljLDB4OTAsMHgwMCwweDA4LDB4ZTQsMHgxMiwweDBjLDB4OWMsMHg5MCwweDAwLDB4MDksMHhlNCwweDEyLDB4MGN9IH0sCi17ICAxNiwweDNmODksMCx7MHg5YywweDkwLDB4MDAsMHgwYSwweDc0LDB4MDEsMHgxMiwweDBjLDB4OWMsMHg5MCwweDc4LDB4MGEsMHhlNCwweDc1LDB4ZjAsMHgwYn0gfSwKLXsgICA4LDB4M2Y5OSwwLHsweDEyLDB4MGMsMHhmNCwweDBmLDB4MGUsMHhiZSwweDAzLDB4OGR9IH0sCi17ICAgMSwweDNmYTEsMCx7MHgyMn0gfSwKLXsgIDE2LDB4M2ZhMiwwLHsweGU0LDB4ZmUsMHg3NSwweDNkLDB4ZmYsMHg3NSwweDNlLDB4MDUsMHg3NSwweDNmLDB4MTIsMHhhYiwweDNkLDB4YWEsMHgzZSwweGE5fSB9LAoteyAgMTYsMHgzZmIyLDAsezB4M2YsMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHg2NCwweDAyLDB4NzAsMHgyZiwweGNkLDB4ZWUsMHhjZCwweDBlLDB4ZWR9IH0sCi17ICAxNiwweDNmYzIsMCx7MHg2ZiwweDcwLDB4MDEsMHgyMiwweDkwLDB4MDAsMHgwMiwweDEyLDB4MGQsMHgwYSwweDg1LDB4ZjAsMHgzYiwweGY1LDB4M2MsMHg2Mn0gfSwKLXsgIDE2LDB4M2ZkMiwwLHsweDNiLDB4ZTUsMHgzYiwweDYyLDB4M2MsMHhlNSwweDNjLDB4NjIsMHgzYiwweDI5LDB4ZmQsMHhlNSwweDNiLDB4M2EsMHhjOSwweGVkfSB9LAoteyAgMTYsMHgzZmUyLDAsezB4YzksMHg3NSwweDNkLDB4ZmYsMHhmNSwweDNlLDB4ODksMHgzZiwweDgwLDB4YzEsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9IH0sCi17ICAgMSwweDNmZjIsMCx7MHgyMn0gfSwKLXsgICA5LDB4M2ZmMywwLHsweDUzLDB4ZDgsMHhlZiwweDQzLDB4ZDgsMHgyMCwweGMyLDB4MmQsMHgzMn0gfSwKLXsgICA0LDB4M2ZmYywwLHsweDUzLDB4OTEsMHhkZiwweDMyfSB9LAoteyAgMTYsMHg0MDAwLDAsezB4OTAsMHg3OSwweDg3LDB4ZTAsMHhiNCwweDAxLDB4MWQsMHg5MCwweDc5LDB4ODUsMHhlMCwweGI0LDB4MDEsMHgwMywweDEyLDB4NDJ9IH0sCi17ICAxNiwweDQwMTAsMCx7MHhhYSwweDkwLDB4NzksMHg4NiwweGUwLDB4YjQsMHgwMSwweDAzLDB4MTIsMHgxOCwweDAwLDB4ZTQsMHg5MCwweDc5LDB4ODUsMHhmMH0gfSwKLXsgIDE2LDB4NDAyMCwwLHsweGEzLDB4ZjAsMHhhMywweGYwLDB4MTIsMHgyZSwweDk0LDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNSwweDBhLDB4NTQsMHgwMiwweGY1fSB9LAoteyAgMTYsMHg0MDMwLDAsezB4MGEsMHg3MCwweDA0LDB4OTAsMHg3OSwweDdmLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1LDB4MGEsMHg1NCwweDAyLDB4ZmZ9IH0sCi17ICAxNiwweDQwNDAsMCx7MHhmNSwweDBhLDB4YmYsMHgwMiwweDA2LDB4OTAsMHg3OSwweDdmLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmNX0gfSwKLXsgIDE2LDB4NDA1MCwwLHsweDBhLDB4NTQsMHgyMCwweGY1LDB4MGEsMHg3MCwweDA0LDB4OTAsMHg3OSwweDdlLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweGY1fSB9LAoteyAgMTYsMHg0MDYwLDAsezB4MGEsMHg1NCwweDIwLDB4ZmYsMHhmNSwweDBhLDB4YmYsMHgyMCwweDA2LDB4OTAsMHg3OSwweDdlLDB4NzQsMHgwMSwweGYwLDB4OTB9IH0sCi17ICAxNiwweDQwNzAsMCx7MHg3OSwweDdmLDB4ZTAsMHhmZiwweDkwLDB4NzksMHg4MSwweGUwLDB4NmYsMHg2MCwweDM4LDB4OTAsMHg3OSwweDc4LDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4NDA4MCwwLHsweGYwLDB4OTAsMHg3OSwweDg0LDB4ZTAsMHg5MCwweDc5LDB4NzksMHhmMCwweGVmLDB4YjQsMHgwMSwweDA2LDB4ZTAsMHg1NCwweGZlfSB9LAoteyAgMTYsMHg0MDkwLDAsezB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3OSwweDc5LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NzksMHhlMCwweDkwLDB4Nzl9IH0sCi17ICAxNiwweDQwYTAsMCx7MHg4NCwweGYwLDB4YTIsMHhhZiwweGU0LDB4MzMsMHhmNSwweDEyLDB4YzIsMHhhZiwweDEyLDB4MGIsMHhhMiwweGU1LDB4MTIsMHg2MH0gfSwKLXsgIDE2LDB4NDBiMCwwLHsweDAyLDB4ZDIsMHhhZiwweDkwLDB4NzksMHg3ZSwweGUwLDB4ZmYsMHg5MCwweDc5LDB4ODAsMHhlMCwweDZmLDB4NjAsMHgzOCwweDkwfSB9LAoteyAgMTYsMHg0MGMwLDAsezB4NzksMHg3OCwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg3YywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHhlZiwweGI0LDB4MDF9IH0sCi17ICAxNiwweDQwZDAsMCx7MHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzksMHg3OSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3OX0gfSwKLXsgIDE2LDB4NDBlMCwwLHsweDc5LDB4ZTAsMHg5MCwweDc5LDB4N2MsMHhmMCwweGEyLDB4YWYsMHhlNCwweDMzLDB4ZjUsMHgxMiwweGMyLDB4YWYsMHgxMiwweDBifSB9LAoteyAgMTYsMHg0MGYwLDAsezB4YTIsMHhlNSwweDEyLDB4NjAsMHgwMiwweGQyLDB4YWYsMHg5MCwweDc5LDB4N2YsMHhlMCwweDkwLDB4NzksMHg4MSwweGYwLDB4OTB9IH0sCi17ICAgOCwweDQxMDAsMCx7MHg3OSwweDdlLDB4ZTAsMHg5MCwweDc5LDB4ODAsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0MTA4LDAsezB4OTAsMHg3OSwweDJkLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzNSwweDkwLDB4NzksMHg3MCwweGUwLDB4ZmYsMHhkMywweDk0LDB4MmR9IH0sCi17ICAxNiwweDQxMTgsMCx7MHg0MCwweDJiLDB4OTAsMHg3OSwweDY5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY4LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkM30gfSwKLXsgIDE2LDB4NDEyOCwwLHsweDk0LDB4MGYsMHg0MCwweDE5LDB4ZTQsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgwOCwweDkwLDB4NzksMHgyZCwweDc0fSB9LAoteyAgMTYsMHg0MTM4LDAsezB4MDMsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc5LDB4MmQsMHg3NCwweDAyLDB4ZjAsMHgxMiwweDEwLDB4MDAsMHg5MCwweDc5LDB4MmR9IH0sCi17ICAxNiwweDQxNDgsMCx7MHhlMCwweGI0LDB4MDIsMHgyYywweDkwLDB4NzksMHg3MCwweGUwLDB4ZmYsMHhjMywweDk0LDB4MmYsMHg1MCwweDIyLDB4ZWYsMHhkM30gfSwKLXsgIDE2LDB4NDE1OCwwLHsweDk0LDB4MmEsMHg0MCwweDFjLDB4OTAsMHg3OSwweDY5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3OSwweDY4LDB4ZTAsMHgwNCwweGYwfSB9LAoteyAgMTYsMHg0MTY4LDAsezB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MCwweDBhLDB4ZTQsMHhmMCwweDkwLDB4NzksMHgyZCwweDA0LDB4ZjAsMHgxMiwweDEwLDB4MDB9IH0sCi17ICAxNiwweDQxNzgsMCx7MHg5MCwweDc5LDB4MmQsMHhlMCwweGI0LDB4MDIsMHgyNiwweDkwLDB4NzksMHg3MCwweGUwLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgxZH0gfSwKLXsgIDE2LDB4NDE4OCwwLHsweDkwLDB4NzksMHg2OSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzksMHg2OCwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmfSB9LAoteyAgMTYsMHg0MTk4LDAsezB4NDAsMHgwYiwweGU0LDB4ZjAsMHg5MCwweDc5LDB4MmQsMHg3NCwweDAzLDB4ZjAsMHgxMiwweDEwLDB4MDAsMHg5MCwweDc5LDB4MmR9IH0sCi17ICAxNiwweDQxYTgsMCx7MHhlMCwweDY0LDB4MDMsMHg3MCwweDNmLDB4OTAsMHg3OSwweDcwLDB4ZTAsMHhmZiwweGMzLDB4OTQsMHg1ZiwweDUwLDB4MzUsMHg5MH0gfSwKLXsgIDE2LDB4NDFiOCwwLHsweDc5LDB4NjksMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc5LDB4NjgsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzLDB4OTQsMHgwZiwweDQwfSB9LAoteyAgMTYsMHg0MWM4LDAsezB4MjMsMHhlNCwweGYwLDB4ZWYsMHhjMywweDk0LDB4MmYsMHg1MCwweDBjLDB4ZWYsMHhkMywweDk0LDB4MmEsMHg0MCwweDA2LDB4OTB9IH0sCi17ICAxNiwweDQxZDgsMCx7MHg3OSwweDJkLDB4NzQsMHgwMSwweGYwLDB4ZWYsMHhkMywweDk0LDB4MmYsMHg0MCwweDA2LDB4OTAsMHg3OSwweDJkLDB4NzQsMHgwMn0gfSwKLXsgIDE2LDB4NDFlOCwwLHsweGYwLDB4MTIsMHgxMCwweDAwLDB4OTAsMHg3OSwweDY5LDB4ZTAsMHg3MCwweDA1LDB4OTAsMHg3OSwweDY4LDB4ZjAsMHgyMiwweGU0fSB9LAoteyAgIDUsMHg0MWY4LDAsezB4OTAsMHg3OSwweDY5LDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDFmZCwwLHsweDdiLDB4MDEsMHg3YSwweDc4LDB4NzksMHg0YywweDkwLDB4NzgsMHgwNiwweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5fSB9LAoteyAgMTYsMHg0MjBkLDAsezB4ZjAsMHhlNCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwNiwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4Zjl9IH0sCi17ICAxNiwweDQyMWQsMCx7MHg5MCwweDAwLDB4MDEsMHg3NCwweDAxLDB4MTIsMHgwYywweDljLDB4OTAsMHg3OCwweDA3LDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMn0gfSwKLXsgIDE2LDB4NDIyZCwwLHsweDBjLDB4ZjQsMHg5MCwweDc4LDB4MDYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4ZTQsMHgxMiwweDBjfSB9LAoteyAgMTYsMHg0MjNkLDAsezB4OGEsMHg5MCwweDc4LDB4MDYsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAxLDB4NzR9IH0sCi17ICAxNiwweDQyNGQsMCx7MHgwMiwweDEyLDB4MGMsMHg5YywweDkwLDB4NzgsMHgwNywweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4OTAsMHg3OH0gfSwKLXsgIDE2LDB4NDI1ZCwwLHsweDA2LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweGU0LDB4MTIsMHgwYywweDhhLDB4OTAsMHg3OCwweDA2fSB9LAoteyAgMTYsMHg0MjZkLDAsezB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMSwweDc0LDB4MDMsMHgxMiwweDBjLDB4OWN9IH0sCi17ICAxNiwweDQyN2QsMCx7MHg5MCwweDc4LDB4MDcsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDkwLDB4NzgsMHgwNiwweGUwLDB4ZmIsMHhhM30gfSwKLXsgIDE2LDB4NDI4ZCwwLHsweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHhlNCwweDEyLDB4MGMsMHg4YSwweDkwLDB4NzgsMHgwNiwweGUwLDB4ZmIsMHhhMywweGUwfSB9LAoteyAgMTIsMHg0MjlkLDAsezB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHg3NCwweDA0LDB4MTIsMHgwYywweDljfSB9LAoteyAgIDEsMHg0MmE5LDAsezB4MjJ9IH0sCi17ICAxNiwweDQyYWEsMCx7MHhlNCwweGZmLDB4ZmUsMHg3YiwweDAxLDB4OTAsMHg3OCwweDBjLDB4MDQsMHhmMCwweGEzLDB4NzQsMHg3OCwweGYwLDB4YTMsMHg3NH0gfSwKLXsgIDE2LDB4NDJiYSwwLHsweDJiLDB4ZjAsMHg5MCwweDc4LDB4MGMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4OTAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHg0MmNhLDAsezB4MTIsMHgwYywweDVkLDB4ZmQsMHg5MCwweDc5LDB4OWEsMHhlMCwweDZkLDB4NjAsMHgxMywweGVmLDB4YzMsMHg5NCwweDA1LDB4NTB9IH0sCi17ICAxNiwweDQyZGEsMCx7MHgwZCwweDBmLDB4OTAsMHg3OCwweDBkLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHg4MCwweGQ0LDB4OGQsMHgzM30gfSwKLXsgIDE2LDB4NDJlYSwwLHsweDkwLDB4NzgsMHgwYywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjfSB9LAoteyAgMTYsMHg0MmZhLDAsezB4NWQsMHhmZCwweDkwLDB4NzksMHg5YiwweGUwLDB4ZmMsMHg2ZCwweDYwLDB4MTMsMHhlZSwweGMzLDB4OTQsMHgwYiwweDUwLDB4MGR9IH0sCi17ICAxNiwweDQzMGEsMCx7MHgwZSwweDkwLDB4NzgsMHgwZCwweGU0LDB4NzUsMHhmMCwweDAzLDB4MTIsMHgwYywweGY0LDB4ODAsMHhkMywweDhjLDB4MzQsMHhlZn0gfSwKLXsgIDE2LDB4NDMxYSwwLHsweDY0LDB4MDUsMHg2MCwweDAzLDB4YmUsMHgwYiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwfSB9LAoteyAgMTYsMHg0MzJhLDAsezB4NzgsMHgwYywweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHgxMiwweDBjLDB4NDQsMHhmZiwweDI0LDB4ZjB9IH0sCi17ICAxNiwweDQzM2EsMCx7MHg2MCwweDA4LDB4MjQsMHgwZSwweDcwLDB4MGUsMHgxMiwweDQ5LDB4NGQsMHgyMiwweDkwLDB4NzksMHgyMCwweGU1LDB4MzQsMHhmMH0gfSwKLXsgIDExLDB4NDM0YSwwLHsweDEyLDB4MWIsMHgyYSwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDQzNTUsMCx7MHgyMn0gfSwKLXsgIDEyLDB4NDM1NiwwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgzZiwweDAyLDB4NDMsMHg5ZH0gfSwKLXsgIDE2LDB4NDM2MiwwLHsweDAyLDB4NDgsMHhhOSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSB9LAoteyAgMTYsMHg0MzcyLDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9IH0sCi17ICAxNiwweDQzODIsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0gfSwKLXsgIDE2LDB4NDM5MiwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDQ2LDB4NjEsMHhlNCwweDdlfSB9LAoteyAgMTYsMHg0M2EyLDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9IH0sCi17ICAxNiwweDQzYjIsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30gfSwKLXsgIDE2LDB4NDNjMiwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSB9LAoteyAgMTYsMHg0M2QyLDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9IH0sCi17ICAxNiwweDQzZTIsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH0gfSwKLXsgIDE2LDB4NDNmMiwwLHsweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmfSB9LAoteyAgMTYsMHg0NDAyLDAsezB4YzAsMHhlMCwweGMyLDB4Y2EsMHhjMiwweGNmLDB4OTAsMHg3OSwweDdhLDB4ZTAsMHhiNCwweDAxLDB4MWYsMHgxMiwweDRiLDB4YWV9IH0sCi17ICAxNiwweDQ0MTIsMCx7MHgxMiwweDQ3LDB4NTgsMHg1MywweGE4LDB4YTAsMHg5MCwweDdmLDB4YWUsMHhlNCwweGYwLDB4MTIsMHgwNywweGFhLDB4MTIsMHg0Yn0gfSwKLXsgIDE2LDB4NDQyMiwwLHsweGI3LDB4OTAsMHg3ZiwweGFlLDB4NzQsMHgxZiwweGYwLDB4NDMsMHhhOCwweDA1LDB4ODAsMHgwMywweDUzLDB4YTgsMHhhMCwweDUzfSB9LAoteyAgMTYsMHg0NDMyLDAsezB4YTgsMHhmYSwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MDksMHgxNSwweDc1LDB4ZTgsMHgwZCwweDQzLDB4YTgsMHgwNSwweGQwLDB4ZTB9IH0sCi17ICAxNiwweDQ0NDIsMCx7MHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4NDQ1MiwwLHsweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjAsMHhkMCwweGUwfSB9LAoteyAgIDEsMHg0NDYyLDAsezB4MzJ9IH0sCi17ICAxNiwweDQ0NjMsMCx7MHg5MCwweDdmLDB4ZWMsMHhlMCwweGY1LDB4MDksMHgxNCwweDYwLDB4MWQsMHgxNCwweDYwLDB4MmEsMHgxNCwweDYwLDB4MzcsMHgxNH0gfSwKLXsgIDE2LDB4NDQ3MywwLHsweDYwLDB4NDQsMHgyNCwweDA0LDB4NzAsMHg1MCwweDkwLDB4NzksMHg2MiwweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHg0NDgzLDAsezB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDQ3LDB4OTAsMHg3OSwweDYzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNiwweDQ0OTMsMCx7MHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MzcsMHg5MCwweDc5LDB4NjQsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4NDRhMywwLHsweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgyNywweDkwLDB4NzksMHg2NiwweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHg0NGIzLDAsezB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDE3LDB4OTAsMHg3OSwweDY3LDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2Z9IH0sCi17ICAxNSwweDQ0YzMsMCx7MHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGQzLDB4MjJ9IH0sCi17ICAgNCwweDQ0ZDIsMCx7MHg4ZCwweDM2LDB4OGIsMHgzN30gfSwKLXsgIDE2LDB4NDRkNiwwLHsweDEyLDB4M2YsMHhhMiwweGVhLDB4NDksMHg2MCwweDU3LDB4MTIsMHgwYywweDQ0LDB4N2UsMHgwMCwweDI5LDB4ZmYsMHhlZSwweDNhfSB9LAoteyAgMTYsMHg0NGU2LDAsezB4YzksMHhlZiwweGM5LDB4NzUsMHgzOCwweGZmLDB4ZjUsMHgzOSwweDg5LDB4M2EsMHhhYiwweDM4LDB4YWEsMHgzOSwweGE5LDB4M2F9IH0sCi17ICAxNiwweDQ0ZjYsMCx7MHg5MCwweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHhmZiwweDY0LDB4MDQsMHg2MCwweDA1LDB4ZWYsMHg2NCwweDA1LDB4NzAsMHgyZX0gfSwKLXsgIDE2LDB4NDUwNiwwLHsweGVmLDB4YjQsMHgwNCwweDE1LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwYywweDVkLDB4NjUsMHgzNiwweDcwLDB4MGIsMHg5MCwweDAwfSB9LAoteyAgMTYsMHg0NTE2LDAsezB4MDMsMHgxMiwweDBjLDB4NWQsMHg2NSwweDM3LDB4NzAsMHgwMSwweDIyLDB4MTIsMHgwYywweDQ0LDB4N2UsMHgwMCwweDI5LDB4ZmZ9IH0sCi17ICAxNiwweDQ1MjYsMCx7MHhlZSwweDNhLDB4YzksMHhlZiwweGM5LDB4NzUsMHgzOCwweGZmLDB4ZjUsMHgzOSwweDg5LDB4M2EsMHg4MCwweGJjLDB4N2IsMHgwMH0gfSwKLXsgICA0LDB4NDUzNiwwLHsweDdhLDB4MDAsMHg3OSwweDAwfSB9LAoteyAgIDEsMHg0NTNhLDAsezB4MjJ9IH0sCi17ICAxNiwweDQ1M2IsMCx7MHhlNCwweGZmLDB4N2IsMHgwMSwweDkwLDB4NzgsMHgxYywweDA0LDB4ZjAsMHhhMywweDc0LDB4NzgsMHhmMCwweGEzLDB4NzQsMHg0Y30gfSwKLXsgIDE2LDB4NDU0YiwwLHsweGYwLDB4OTAsMHg3OCwweDFjLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsMHhmOSwweDkwLDB4MDAsMHgwMiwweDEyfSB9LAoteyAgMTYsMHg0NTViLDAsezB4MGMsMHg1ZCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg2ZSwweDYwLDB4MTMsMHhlZiwweGMzLDB4OTQsMHgwNCwweDUwLDB4MGR9IH0sCi17ICAxNiwweDQ1NmIsMCx7MHg5MCwweDc4LDB4MWQsMHhlNCwweDc1LDB4ZjAsMHgwMywweDEyLDB4MGMsMHhmNCwweDBmLDB4ODAsMHhkNCwweGJmLDB4MDQsMHgwOX0gfSwKLXsgIDE2LDB4NDU3YiwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxNCwweDkwLDB4NzksMHgyMSwweGUwLDB4ZmYsMHg5MCwweDc4fSB9LAoteyAgMTYsMHg0NThiLDAsezB4MWMsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwweGY5LDB4ZWYsMHgxMiwweDBjLDB4OGEsMHg5MCwweDdmLDB4YzV9IH0sCi17ICAgMywweDQ1OWIsMCx7MHg3NCwweDAxLDB4ZjB9IH0sCi17ICAgMSwweDQ1OWUsMCx7MHgyMn0gfSwKLXsgIDE0LDB4NDU5ZiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlZSwweGMwLDB4ZTAsMHhlZiwweGMwLDB4ZTB9IH0sCi17ICAxNiwweDQ1YWQsMCx7MHg5MCwweDc5LDB4ODUsMHhlMCwweDY0LDB4MDEsMHg2MCwweDA1LDB4YTMsMHhlMCwweGI0LDB4MDEsMHgyZCwweDkwLDB4NzksMHg4N30gfSwKLXsgIDE2LDB4NDViZCwwLHsweDc0LDB4MDEsMHhmMCwweGU0LDB4ZmYsMHg5MCwweDdmLDB4YzUsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgxYiwweDc0fSB9LAoteyAgMTYsMHg0NWNkLDAsezB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MjEsMHgyZiwweGY1LDB4ODJ9IH0sCi17ICAxNiwweDQ1ZGQsMCx7MHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZWUsMHhmMCwweDBmLDB4ODAsMHhkYiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYX0gfSwKLXsgICA0LDB4NDVlZCwwLHsweGUwLDB4NDQsMHgwMSwweGYwfSB9LAoteyAgMTUsMHg0NWYxLDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0NjAwLDAsezB4ZTQsMHhmZiwweDdiLDB4MDEsMHg5MCwweDc4LDB4MTksMHgwNCwweGYwLDB4YTMsMHg3NCwweDc4LDB4ZjAsMHhhMywweDc0LDB4NGN9IH0sCi17ICAxNiwweDQ2MTAsMCx7MHhmMCwweDkwLDB4NzgsMHgxOSwweGUwLDB4ZmIsMHhhMywweGUwLDB4ZmEsMHhhMywweGUwLDB4ZjksMHg5MCwweDAwLDB4MDIsMHgxMn0gfSwKLXsgIDE2LDB4NDYyMCwwLHsweDBjLDB4NWQsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4NmUsMHg2MCwweDEzLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDBkfSB9LAoteyAgMTYsMHg0NjMwLDAsezB4OTAsMHg3OCwweDFhLDB4ZTQsMHg3NSwweGYwLDB4MDMsMHgxMiwweDBjLDB4ZjQsMHgwZiwweDgwLDB4ZDQsMHhiZiwweDA0LDB4MDh9IH0sCi17ICAxNiwweDQ2NDAsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3OCwweDE5LDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYX0gfSwKLXsgIDE2LDB4NDY1MCwwLHsweGEzLDB4ZTAsMHhmOSwweDEyLDB4MGMsMHg0NCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwfSB9LAoteyAgIDEsMHg0NjYwLDAsezB4MjJ9IH0sCi17ICAxNiwweDQ2NjEsMCx7MHgwMSwweDE4LDB4MDIsMHgwMSwweDE5LDB4MGEsMHgwMSwweDFjLDB4MDAsMHhjMSwweDI4LDB4YzEsMHgyOSwweDAxLDB4MWYsMHgwMX0gfSwKLXsgIDE1LDB4NDY3MSwwLHsweDQ0LDB4NzksMHg5ZiwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDEsMHg3OSwweGEzLDB4MDAsMHg0MSwweDc5LDB4YTQsMHgwMH0gfSwKLXsgICA0LDB4NDY4MCwwLHsweDQxLDB4NzksMHg4OSwweDAwfSB9LAoteyAgMTYsMHg0Njg0LDAsezB4MDEsMHgyMiwweDAxLDB4NDEsMHg3OSwweDMxLDB4ZmYsMHg0MSwweDc5LDB4MzQsMHgwMCwweDRkLDB4NzksMHgzNSwweDNmLDB4M2Z9IH0sCi17ICAxNiwweDQ2OTQsMCx7MHgwMCwweDA4LDB4MDAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4NGQsMHg3OSwweDQyLDB4M2YsMHgzZn0gfSwKLXsgIDE2LDB4NDZhNCwwLHsweDA2LDB4MDgsMHgwNCwweDA3LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHg0ZCwweDc5LDB4NGYsMHgwYSwweDBhfSB9LAoteyAgMTEsMHg0NmI0LDAsezB4MDksMHgwMCwweDAxLDB4MDksMHgwMiwweDAzLDB4MDQsMHgwNSwweDA2LDB4MDcsMHgwOH0gfSwKLXsgICAxLDB4NDZiZiwwLHsweDAwfSB9LAoteyAgMTYsMHg0NmMwLDAsezB4MTIsMHgwYSwweGNkLDB4OTAsMHg3ZiwweGE1LDB4ZTAsMHhmNSwweDIxLDB4ZTUsMHgyMSwweDU0LDB4MDEsMHhmNSwweDIxLDB4NjR9IH0sCi17ICAxNiwweDQ2ZDAsMCx7MHgwMSwweDYwLDB4MjgsMHhlNSwweDIyLDB4NjQsMHgwMSwweDcwLDB4MjIsMHg5MCwweDdmLDB4YTUsMHhlMCwweGY1LDB4MjEsMHg1NH0gfSwKLXsgIDE2LDB4NDZlMCwwLHsweDAyLDB4ZjUsMHgyMSwweDcwLDB4MDMsMHg3NSwweDIyLDB4MDEsMHg5MCwweDdmLDB4YTUsMHhlMCwweGY1LDB4MjEsMHg1NCwweDA0fSB9LAoteyAgMTIsMHg0NmYwLDAsezB4ZmYsMHhmNSwweDIxLDB4YmYsMHgwNCwweGQzLDB4NzUsMHgyMiwweDAxLDB4ODAsMHhjZSwweDIyfSB9LAoteyAgIDQsMHg0NmZjLDAsezB4NTMsMHhkOCwweGY3LDB4MzJ9IH0sCi17ICAxNiwweDQ3MDAsMCx7MHgwMiwweDQ5LDB4ZmEsMHgwMCwweDAyLDB4M2MsMHg1NCwweDAwLDB4MDIsMHgxNywweGU0LDB4MDAsMHgwMiwweDRhLDB4MTIsMHgwMH0gfSwKLXsgIDE2LDB4NDcxMCwwLHsweDAyLDB4MzcsMHhhMiwweDAwLDB4MDIsMHg0NywweGZmLDB4MDAsMHgwMiwweDRhLDB4NDEsMHgwMCwweDAyLDB4NDUsMHg5ZiwweDAwfSB9LAoteyAgMTYsMHg0NzIwLDAsezB4MDIsMHg0OSwweDhlLDB4MDAsMHgwMiwweDQ5LDB4YWIsMHgwMCwweDAyLDB4NGEsMHg1OCwweDAwLDB4MDIsMHg0YSwweDZmLDB4MDB9IH0sCi17ICAxNiwweDQ3MzAsMCx7MHgwMiwweDRhLDB4ODYsMHgwMCwweDAyLDB4NGEsMHg5ZCwweDAwLDB4MDIsMHg0YSwweGI0LDB4MDAsMHgwMiwweDRhLDB4Y2IsMHgwMH0gfSwKLXsgIDE2LDB4NDc0MCwwLHsweDAyLDB4NGEsMHhlMiwweDAwLDB4MDIsMHg0YSwweGY5LDB4MDAsMHgwMiwweDRiLDB4MTAsMHgwMCwweDAyLDB4NGIsMHgyNywweDAwfSB9LAoteyAgIDgsMHg0NzUwLDAsezB4MDIsMHg0YiwweDNlLDB4MDAsMHgwMiwweDRiLDB4NTUsMHgwMH0gfSwKLXsgIDE2LDB4NDc1OCwwLHsweGU1LDB4MTgsMHg3MCwweDE0LDB4OTAsMHg3OSwweDhjLDB4ZTAsMHgwNCwweGYwLDB4OTAsMHg3OSwweDhiLDB4ZTAsMHhjMywweDk0fSB9LAoteyAgMTYsMHg0NzY4LDAsezB4MDAsMHg0MCwweDE1LDB4ZTAsMHgxNCwweGYwLDB4ODAsMHgxMCwweDkwLDB4NzksMHg4YiwweGUwLDB4MDQsMHhmMCwweGEzLDB4ZTB9IH0sCi17ICAxNiwweDQ3NzgsMCx7MHhjMywweDk0LDB4MDAsMHg0MCwweDAzLDB4ZTAsMHgxNCwweGYwLDB4OTAsMHg3OSwweDhiLDB4ZTAsMHhkMywweDk0LDB4MTQsMHg0MH0gfSwKLXsgIDE2LDB4NDc4OCwwLHsweDA0LDB4ZTQsMHhmNSwweDE4LDB4ZjAsMHg5MCwweDc5LDB4OGMsMHhlMCwweGQzLDB4OTQsMHgxNCwweDQwLDB4MDUsMHg3NSwweDE4fSB9LAoteyAgIDQsMHg0Nzk4LDAsezB4MDEsMHhlNCwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ3OWMsMCx7MHg5MCwweDdmLDB4ZDcsMHhlMCwweGY1LDB4MzMsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGY1LDB4MDksMHgxNCwweDYwLDB4MTEsMHgxNH0gfSwKLXsgIDE2LDB4NDdhYywwLHsweDYwLDB4MWIsMHgyNCwweDAyLDB4NzAsMHgyNCwweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3OSwweDYyLDB4ZjAsMHg4MCwweDIxfSB9LAoteyAgMTYsMHg0N2JjLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc5LDB4NjMsMHhmMCwweDEyLDB4MTAsMHgwMCwweDgwLDB4MTQsMHg5MCwweDdmLDB4ZWF9IH0sCi17ICAxNiwweDQ3Y2MsMCx7MHhlMCwweDkwLDB4NzksMHg2NCwweGYwLDB4MTIsMHgyOCwweDAxLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0gfSwKLXsgICAyLDB4NDdkYywwLHsweGYwLDB4ZDN9IH0sCi17ICAgMSwweDQ3ZGUsMCx7MHgyMn0gfSwKLXsgIDE2LDB4NDdkZiwwLHsweDkwLDB4NzksMHg3OCwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzksMHgzMywweGUwLDB4OTAsMHg3OSwweDc5LDB4ZjAsMHhhMiwweGFmfSB9LAoteyAgMTYsMHg0N2VmLDAsezB4ZTQsMHgzMywweGY1LDB4MTIsMHhjMiwweGFmLDB4MTIsMHgwYiwweGEyLDB4ZTUsMHgxMiwweDYwLDB4MDIsMHhkMiwweGFmLDB4MjJ9IH0sCi17ICAgMSwweDQ3ZmYsMCx7MHgzMn0gfSwKLXsgICAyLDB4NDgwMCwwLHsweDhmLDB4MzZ9IH0sCi17ICAxNiwweDQ4MDIsMCx7MHhlNCwweGY1LDB4MzcsMHg3NSwweDM4LDB4ZmYsMHg3NSwweDM5LDB4MDcsMHg3NSwweDNhLDB4MDEsMHhhYiwweDM4LDB4YWEsMHgzOX0gfSwKLXsgIDE2LDB4NDgxMiwwLHsweGE5LDB4M2EsMHg5MCwweDAwLDB4MDEsMHgxMiwweDBjLDB4NWQsMHhiNCwweDAzLDB4MWYsMHhhZiwweDM3LDB4MDUsMHgzNywweGVmfSB9LAoteyAgMTYsMHg0ODIyLDAsezB4NjUsMHgzNiwweDcwLDB4MDEsMHgyMiwweDEyLDB4MGMsMHg0NCwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYSwweGM5LDB4ZWZ9IH0sCi17ICAxNiwweDQ4MzIsMCx7MHhjOSwweDc1LDB4MzgsMHhmZiwweGY1LDB4MzksMHg4OSwweDNhLDB4ODAsMHhkMiwweDdiLDB4MDAsMHg3YSwweDAwLDB4NzksMHgwMH0gfSwKLXsgICAxLDB4NDg0MiwwLHsweDIyfSB9LAoteyAgMTYsMHg0ODQzLDAsezB4MzAsMHgyNiwweDJmLDB4YzIsMHgyNiwweDkwLDB4NzksMHgyZCwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MDksMHhlNCwweGY1LDB4MGN9IH0sCi17ICAxNiwweDQ4NTMsMCx7MHg3NSwweDBkLDB4ZjgsMHg3NSwweDBlLDB4MGEsMHhlZiwweGI0LDB4MDIsMHgwOSwweGU0LDB4ZjUsMHgwYywweDc1LDB4MGQsMHhmMH0gfSwKLXsgIDE2LDB4NDg2MywwLHsweDc1LDB4MGUsMHgwYiwweGVmLDB4YjQsMHgwMywweDA5LDB4ZTQsMHhmNSwweDBjLDB4NzUsMHgwZCwweGY4LDB4NzUsMHgwZSwweDE3fSB9LAoteyAgIDMsMHg0ODczLDAsezB4ZDIsMHgyMiwweDIyfSB9LAoteyAgMTYsMHg0ODc2LDAsezB4MzAsMHgyNSwweDJmLDB4YzIsMHgyNSwweDkwLDB4NzksMHgyZCwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MDksMHg3NSwweDBjLDB4YzB9IH0sCi17ICAxNiwweDQ4ODYsMCx7MHg3NSwweDBkLDB4MTQsMHg3NSwweDBlLDB4MGIsMHhlZiwweGI0LDB4MDIsMHgwOSwweGU0LDB4ZjUsMHgwYywweDc1LDB4MGQsMHgxMH0gfSwKLXsgIDE2LDB4NDg5NiwwLHsweDc1LDB4MGUsMHgwYywweGVmLDB4YjQsMHgwMywweDA5LDB4ZTQsMHhmNSwweDBjLDB4NzUsMHgwZCwweDE4LDB4NzUsMHgwZSwweDE4fSB9LAoteyAgIDMsMHg0OGE2LDAsezB4ZDIsMHgyMiwweDIyfSB9LAoteyAgMTYsMHg0OGE5LDAsezB4ZTQsMHhmNSwweDMyLDB4MTIsMHgwZiwweDUwLDB4MjAsMHgyZSwweDEwLDB4ZTUsMHgzMiwweGMzLDB4OTQsMHgwMiwweDUwLDB4MDl9IH0sCi17ICAxNiwweDQ4YjksMCx7MHgwNSwweDMyLDB4ZDIsMHgzMCwweDEyLDB4NDksMHgwNSwweDgwLDB4ZWQsMHgzMCwweDJlLDB4MDUsMHgxMiwweDE0LDB4NTcsMHhjMn0gfSwKLXsgIDE1LDB4NDhjOSwwLHsweDJlLDB4MzAsMHgyZCwweDA2LDB4MTIsMHgwNywweDlhLDB4MTIsMHg0OCwweGQ5LDB4MTIsMHg0MCwweDAwLDB4ODAsMHhlYX0gfSwKLXsgICAxLDB4NDhkOCwwLHsweDIyfSB9LAoteyAgMTYsMHg0OGQ5LDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHhmNSwweDFkLDB4NTQsMHg4MCwweGY1LDB4MWQsMHg2NCwweDgwLDB4NzAsMHgxZCwweGMyLDB4YWZ9IH0sCi17ICAxNiwweDQ4ZTksMCx7MHhlMCwweDQ0LDB4ODAsMHhmMCwweGUwLDB4NDQsMHgwMSwweGYwLDB4N2YsMHgwYywweDdlLDB4MDAsMHgxMiwweDRiLDB4NmMsMHg5MH0gfSwKLXsgIDEyLDB4NDhmOSwwLHsweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDUzLDB4ODcsMHhmZSwweGQyLDB4YWYsMHgyMn0gfSwKLXsgIDE2LDB4NDkwNSwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgzMCwweDMwLDB4MDQsMHhlMCwweDQ0fSB9LAoteyAgMTYsMHg0OTE1LDAsezB4MDIsMHhmMCwweDdmLDB4ZGMsMHg3ZSwweDA1LDB4MTIsMHg0YiwweDZjLDB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGY3LDB4ZjB9IH0sCi17ICAgNSwweDQ5MjUsMCx7MHhlMCwweDQ0LDB4MDQsMHhmMCwweDIyfSB9LAoteyAgMTYsMHg0OTJhLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTQsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDA0LDB4MTJ9IH0sCi17ICAxNiwweDQ5M2EsMCx7MHg0NiwweDAwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0gfSwKLXsgICAzLDB4NDk0YSwwLHsweDAxLDB4ZjAsMHgyMn0gfSwKLXsgIDE2LDB4NDk0ZCwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg3MCwweDEzLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4MDQsMHgxMiwweDQ1fSB9LAoteyAgMTYsMHg0OTVkLDAsezB4M2IsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9IH0sCi17ICAgMiwweDQ5NmQsMCx7MHhmMCwweDIyfSB9LAoteyAgMTYsMHg0OTZmLDAsezB4ZTQsMHhmZiwweDc0LDB4ZTgsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4OTZ9IH0sCi17ICAxNCwweDQ5N2YsMCx7MHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzksMHhmNSwweDgzLDB4ZWUsMHhmMCwweDBmLDB4YmYsMHgwOCwweGU0fSB9LAoteyAgIDEsMHg0OThkLDAsezB4MjJ9IH0sCi17ICAxNiwweDQ5OGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDIsMHhmMH0gfSwKLXsgIDEzLDB4NDk5ZSwwLHsweDkwLDB4N2YsMHhiNywweDc0LDB4MDMsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0OWFiLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDAyLDB4ZjB9IH0sCi17ICAxMywweDQ5YmIsMCx7MHg5MCwweDdmLDB4YzcsMHg3NCwweDAzLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NDljOCwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4MzAsMHhlNywweDEyLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3ZiwweDE0LDB4N2UsMHgwMCwweDEyfSB9LAoteyAgMTAsMHg0OWQ4LDAsezB4NGIsMHg2YywweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ5ZTIsMCx7MHhlNCwweGY1LDB4MWEsMHg3NSwweDFiLDB4MDEsMHg5MCwweDc5LDB4OTEsMHgwNCwweGYwLDB4YTMsMHhmMCwweGU0LDB4YTMsMHhmMH0gfSwKLXsgICA4LDB4NDlmMiwwLHsweGEzLDB4NzQsMHgwYSwweGYwLDB4ZTQsMHhhMywweGYwLDB4MjJ9IH0sCi17ICAxNiwweDQ5ZmEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDJlLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0gfSwKLXsgICA4LDB4NGEwYSwwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhMTIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDJkLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOH0gfSwKLXsgICA4LDB4NGEyMiwwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhMmEsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGY1LDB4MDgsMHhlNCwweDkwLDB4NzksMHg2MiwweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHg5MH0gfSwKLXsgICA3LDB4NGEzYSwwLHsweDc5LDB4NjYsMHhmMCwweGEzLDB4ZjAsMHhkMywweDIyfSB9LAoteyAgMTYsMHg0YTQxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDAxLDB4ZjB9IH0sCi17ICAgNywweDRhNTEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGE1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwNCwweGYwfSB9LAoteyAgIDcsMHg0YTY4LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhNmYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDQsMHhmMH0gfSwKLXsgICA3LDB4NGE3ZiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YTg2LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDA4LDB4ZjB9IH0sCi17ICAgNywweDRhOTYsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGE5ZCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwOCwweGYwfSB9LAoteyAgIDcsMHg0YWFkLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhYjQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MTAsMHhmMH0gfSwKLXsgICA3LDB4NGFjNCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YWNiLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDEwLDB4ZjB9IH0sCi17ICAgNywweDRhZGIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGFlMiwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgyMCwweGYwfSB9LAoteyAgIDcsMHg0YWYyLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRhZjksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MjAsMHhmMH0gfSwKLXsgICA3LDB4NGIwOSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YjEwLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDQwLDB4ZjB9IH0sCi17ICAgNywweDRiMjAsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGIyNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg0MCwweGYwfSB9LAoteyAgIDcsMHg0YjM3LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDRiM2UsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4ODAsMHhmMH0gfSwKLXsgICA3LDB4NGI0ZSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTYsMHg0YjU1LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDgwLDB4ZjB9IH0sCi17ICAgNywweDRiNjUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4NGI2YywwLHsweDhlLDB4MzMsMHg4ZiwweDM0LDB4ZTUsMHgzNCwweDE1LDB4MzQsMHhhZSwweDMzLDB4NzAsMHgwMiwweDE1LDB4MzMsMHg0ZSwweDYwfSB9LAoteyAgIDcsMHg0YjdjLDAsezB4MDUsMHgxMiwweDA3LDB4ODksMHg4MCwweGVlLDB4MjJ9IH0sCi17ICAxNSwweDRiODMsMCx7MHg5MCwweDdmLDB4ZWEsMHhlMCwweGI0LDB4ZmYsMHgwNCwweDEyLDB4MzAsMHgwMCwweDIyLDB4MTIsMHgzNiwweDBlLDB4MjJ9IH0sCi17ICAxNCwweDRiOTIsMCx7MHhjMCwweGUwLDB4YzIsMHg4YiwweGQyLDB4MjQsMHgzMCwweDIzLDB4MDIsMHhjMiwweDIzLDB4ZDAsMHhlMCwweDMyfSB9LAoteyAgMTQsMHg0YmEwLDAsezB4OTAsMHg3ZiwweDAwLDB4ZTUsMHgwOCwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ZDMsMHgyMn0gfSwKLXsgICA5LDB4NGJhZSwwLHsweDMwLDB4MjQsMHgwNSwweGMyLDB4MjQsMHg3NSwweDE4LDB4MDEsMHgyMn0gfSwKLXsgICA5LDB4NGJiNywwLHsweDMwLDB4MjMsMHgwNSwweGMyLDB4MjMsMHhlNCwweGY1LDB4MTgsMHgyMn0gfSwKLXsgICA3LDB4NGJjMCwwLHsweDUzLDB4YzAsMHhmZSwweDUzLDB4YzAsMHhmZCwweDMyfSB9LAoteyAgIDYsMHg0YmM3LDAsezB4NTMsMHg5MSwweDdmLDB4ZDIsMHgyNSwweDMyfSB9LAoteyAgIDUsMHg0YmNkLDAsezB4YzIsMHg4OSwweGQyLDB4MjMsMHgzMn0gfSwKLXsgICAzLDB4NGJkMiwwLHsweGMyLDB4OGQsMHgzMn0gfSwKLXsgICAzLDB4NGJkNSwwLHsweGMyLDB4OGYsMHgzMn0gfSwKLXsgICAyLDB4NGJkOCwwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZGEsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmRjLDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJkZSwwLHsweGQzLDB4MjJ9IH0sCi17ICAgMiwweDRiZTAsMCx7MHhkMywweDIyfSB9LAoteyAgIDIsMHg0YmUyLDAsezB4ZDMsMHgyMn0gfSwKLXsgICAyLDB4NGJlNCwwLHsweGMzLDB4MjJ9IH0sCi17ICAgMSwweDRiZTYsMCx7MHgyMn0gfSwKLXsgICAwLDB4MDAwMCwxLHswIH19Ci19OwotLyoKLVZFUlNJT049MS4wLjIuOTE2Ci1EQVRFPTEyLjAyLjIwMDIKLSovCi0vKgotICogVGhpcyBmaXJtd2FyZSBpcyBmb3IgdGhlIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZQotICoKLSAqIFRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzIENvcHlyaWdodCAoYykgMTk5OS0yMDAyIEVtYWdpYwotICogYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkCi0gKiBvciBwdWJsaWMgYWNjZXNzIHRvIHRoaXMgZmlybXdhcmUgd2hpY2ggaXMgYSB0cmFkZSBzZWNyZXQgb2YgRW1hZ2ljLAotICogYW5kIHdoaWNoIG1heSBub3QgYmUgcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0bwotICogYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgRW1hZ2ljJ3Mgd3JpdHRlbiBjb25zZW50LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoIHRoZQotICogRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlLiBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZgotICogYW55IGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiBwYXJ0LAotICogcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4KLSAqLwotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19Mb2FkZXJbXSA9IHsKLXsgICAzLDB4MDAwMCwwLHsweDAyLDB4MDMsMHgxY30gfSwKLXsgICAzLDB4MDA0MywwLHsweDAyLDB4MDQsMHgwMH0gfSwKLXsgIDE2LDB4MDEwMCwwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg1YiwweDYwLDB4NjAsMHgyNCwweDAyLDB4NjAsMHgwMywweDAyLDB4MDEsMHhiZSwweDkwfSB9LAoteyAgMTYsMHgwMTEwLDAsezB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjUsMHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTB9IH0sCi17ICAxNiwweDAxMjAsMCx7MHg3ZiwweGVlLDB4ZTAsMHg3NSwweDE1LDB4MDAsMHhmNSwweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNX0gfSwKLXsgIDE2LDB4MDEzMCwwLHsweDE2LDB4NDUsMHgxNSwweDcwLDB4MDMsMHgwMiwweDAxLDB4YmUsMHhlNCwweDkwLDB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0fSB9LAoteyAgMTYsMHgwMTQwLDAsezB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGMsMHgxMiwweDAyLDB4NzcsMHhhZiwweDBjLDB4N2V9IH0sCi17ICAxNiwweDAxNTAsMCx7MHgwMCwweGVmLDB4MjUsMHgwYiwweGY1LDB4MGIsMHhlZSwweDM1LDB4MGEsMHhmNSwweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNX0gfSwKLXsgIDE2LDB4MDE2MCwwLHsweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4YzcsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1fSB9LAoteyAgMTYsMHgwMTcwLDAsezB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwLDB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjV9IH0sCi17ICAxNiwweDAxODAsMCx7MHgxNiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDE1LDB4ZTUsMHgxNiwweDQ1LDB4MTUsMHg2MCwweDMwLDB4ZTQsMHg5MH0gfSwKLXsgIDE2LDB4MDE5MCwwLHsweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjfSB9LAoteyAgMTYsMHgwMWEwLDAsezB4MTIsMHgwMiwweDhmLDB4YWYsMHgwYywweDdlLDB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjV9IH0sCi17ICAxNSwweDAxYjAsMCx7MHgwYSwweGMzLDB4ZTUsMHgxNiwweDlmLDB4ZjUsMHgxNiwweGU1LDB4MTUsMHg5ZSwweGY1LDB4MTUsMHg4MCwweGNhLDB4YzN9IH0sCi17ICAgMSwweDAxYmYsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MDFjMCwwLHsweGMyLDB4MjAsMHhkMiwweGU4LDB4NDMsMHhkOCwweDIwLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHhmZiwweGYwLDB4OTAsMHg3ZiwweGE5fSB9LAoteyAgMTYsMHgwMWQwLDAsezB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHg5NSwweGUwLDB4NDQsMHhjMCwweGYwLDB4OTB9IH0sCi17ICAxNiwweDAxZTAsMCx7MHg3ZiwweDk4LDB4ZTAsMHg0NCwweGMwLDB4ZjAsMHg5MCwweDdmLDB4OWUsMHhlMCwweDQ0LDB4YzAsMHhmMCwweGU0LDB4OTAsMHg3Zn0gfSwKLXsgIDE2LDB4MDFmMCwwLHsweDk0LDB4ZjAsMHg5MCwweDdmLDB4OWQsMHhlMCwweDQ0LDB4MGYsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhmMCwweGYwfSB9LAoteyAgMTYsMHgwMjAwLDAsezB4OTAsMHg3ZiwweGFmLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YWUsMHhlMCwweDQ0LDB4MGQsMHhmMCwweGQyLDB4YWZ9IH0sCi17ICAxNiwweDAyMTAsMCx7MHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4ZjAsMHhmMCwweDIwLDB4MjAsMHg0MiwweDc1LDB4MTQsMHgwMCwweDc1LDB4MTMsMHgwMH0gfSwKLXsgIDE2LDB4MDIyMCwwLHsweDc1LDB4MTIsMHgwMCwweDc1LDB4MTEsMHgwMCwweDdmLDB4NDgsMHg3ZSwweDkyLDB4N2QsMHgwMCwweDdjLDB4MDAsMHhhYiwweDE0fSB9LAoteyAgMTYsMHgwMjMwLDAsezB4YWEsMHgxMywweGE5LDB4MTIsMHhhOCwweDExLDB4YzMsMHgxMiwweDA0LDB4OWEsMHg1MCwweGRiLDB4MjAsMHgyMCwweGQ4LDB4N2F9IH0sCi17ICAxNiwweDAyNDAsMCx7MHgwMCwweDc5LDB4MDAsMHg3OCwweDAwLDB4ZTUsMHgxNCwweDI0LDB4MDEsMHhmNSwweDE0LDB4ZWEsMHgzNSwweDEzLDB4ZjUsMHgxM30gfSwKLXsgIDE2LDB4MDI1MCwwLHsweGU5LDB4MzUsMHgxMiwweGY1LDB4MTIsMHhlOCwweDM1LDB4MTEsMHhmNSwweDExLDB4ODAsMHhjYSwweDMwLDB4MjAsMHhmZCwweDEyfSB9LAoteyAgMTYsMHgwMjYwLDAsezB4MDEsMHgwMCwweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9IH0sCi17ICAgNiwweDAyNzAsMCx7MHgwMiwweGYwLDB4YzIsMHgyMCwweDgwLDB4ZTZ9IH0sCi17ICAgMSwweDAyNzYsMCx7MHgyMn0gfSwKLXsgIDE2LDB4MDI3NywwLHsweGU1LDB4MGMsMHhmZiwweGU1LDB4MGIsMHhmNSwweDgyLDB4ZTUsMHgwYSwweGY1LDB4ODMsMHg3NSwweDkyLDB4N2UsMHg3NCwweGMwfSB9LAoteyAgIDgsMHgwMjg3LDAsezB4ZjgsMHhlMiwweDA4LDB4ZjAsMHhhMywweGRmLDB4ZmEsMHgyMn0gfSwKLXsgIDE2LDB4MDI4ZiwwLHsweDkwLDB4N2YsMHg5NiwweDg1LDB4ODMsMHg5MiwweGE4LDB4ODIsMHg3OSwweDAyLDB4OTAsMHgwMCwweDAwLDB4ZTAsMHhiNCwweDAwfSB9LAoteyAgMTYsMHgwMjlmLDAsezB4MzcsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4OTMsMHhlMCwweDU0LDB4ZmMsMHhmMCwweDkwLDB4N2YsMHg5NiwweGUwLDB4NTR9IH0sCi17ICAxNiwweDAyYWYsMCx7MHhmYywweGYwLDB4OTAsMHg3ZiwweDljLDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4OTQsMHhlMCwweDU0LDB4N2YsMHhmMH0gfSwKLXsgIDE2LDB4MDJiZiwwLHsweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDlkLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmfSB9LAoteyAgMTYsMHgwMmNmLDAsezB4OTcsMHhlMCwweDU0LDB4N2YsMHhmMCwweDQ0LDB4ODAsMHhmMCwweGU1LDB4MGMsMHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZjV9IH0sCi17ICAxNiwweDAyZGYsMCx7MHgyOCwweGU0LDB4YTIsMHg0NywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ2LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNH0gfSwKLXsgIDE2LDB4MDJlZiwwLHsweGEyLDB4NDUsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0NCwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQzfSB9LAoteyAgMTYsMHgwMmZmLDAsezB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDIsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MSwweDMzLDB4ZjJ9IH0sCi17ICAxMywweDAzMGYsMCx7MHg2OSwweGYyLDB4ZTQsMHhhMiwweDQwLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhhMywweGRmLDB4YzIsMHgyMn0gfSwKLXsgIDEyLDB4MDMxYywwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgyOSwweDAyLDB4MDMsMHg2M30gfSwKLXsgIDE2LDB4MDMyOCwwLHsweDAyLDB4MDEsMHhjMCwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSB9LAoteyAgMTYsMHgwMzM4LDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9IH0sCi17ICAxNiwweDAzNDgsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0gfSwKLXsgIDE2LDB4MDM1OCwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDA0LDB4ODQsMHhlNCwweDdlfSB9LAoteyAgMTYsMHgwMzY4LDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9IH0sCi17ICAxNiwweDAzNzgsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30gfSwKLXsgIDE2LDB4MDM4OCwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSB9LAoteyAgMTYsMHgwMzk4LDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9IH0sCi17ICAxNiwweDAzYTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDdmLDB4YzQsMHhlNCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3Zn0gfSwKLXsgIDExLDB4MDNiOCwwLHsweGFiLDB4NzQsMHgwNCwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDAzYzMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDIwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0gfSwKLXsgICA4LDB4MDNkMywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDAzZGIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhkMH0gfSwKLXsgICA2LDB4MDNlYiwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgICAxLDB4MDNmMSwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2YyLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjMsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmNCwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y1LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjYsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmNywwLHsweDMyfSB9LAoteyAgIDEsMHgwM2Y4LDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZjksMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmYSwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZiLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmMsMCx7MHgzMn0gfSwKLXsgICAxLDB4MDNmZCwwLHsweDMyfSB9LAoteyAgIDEsMHgwM2ZlLDAsezB4MzJ9IH0sCi17ICAgMSwweDAzZmYsMCx7MHgzMn0gfSwKLXsgIDE2LDB4MDQwMCwwLHsweDAyLDB4MDMsMHhjMywweDAwLDB4MDIsMHgwMywweGRiLDB4MDAsMHgwMiwweDAzLDB4YTgsMHgwMCwweDAyLDB4MDQsMHg2ZSwweDAwfSB9LAoteyAgMTYsMHgwNDEwLDAsezB4MDIsMHgwNCwweDU4LDB4MDAsMHgwMiwweDAzLDB4ZjEsMHgwMCwweDAyLDB4MDMsMHhmMiwweDAwLDB4MDIsMHgwMywweGYzLDB4MDB9IH0sCi17ICAxNiwweDA0MjAsMCx7MHgwMiwweDAzLDB4ZjQsMHgwMCwweDAyLDB4MDMsMHhmNSwweDAwLDB4MDIsMHgwMywweGY2LDB4MDAsMHgwMiwweDAzLDB4ZjcsMHgwMH0gfSwKLXsgIDE2LDB4MDQzMCwwLHsweDAyLDB4MDMsMHhmOCwweDAwLDB4MDIsMHgwMywweGY5LDB4MDAsMHgwMiwweDAzLDB4ZmEsMHgwMCwweDAyLDB4MDMsMHhmYiwweDAwfSB9LAoteyAgMTYsMHgwNDQwLDAsezB4MDIsMHgwMywweGZjLDB4MDAsMHgwMiwweDAzLDB4ZmQsMHgwMCwweDAyLDB4MDMsMHhmZSwweDAwLDB4MDIsMHgwMywweGZmLDB4MDB9IH0sCi17ICAgOCwweDA0NTAsMCx7MHgwMiwweDA0LDB4YWIsMHgwMCwweDAyLDB4MDQsMHhhYywweDAwfSB9LAoteyAgMTYsMHgwNDU4LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgxMCwweGYwLDB4ZDB9IH0sCi17ICAgNiwweDA0NjgsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9IH0sCi17ICAxNiwweDA0NmUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA4LDB4ZjAsMHhkMH0gfSwKLXsgICA2LDB4MDQ3ZSwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0gfSwKLXsgIDE2LDB4MDQ4NCwwLHsweDAyLDB4MGEsMHgwMCwweDBmLDB4MDEsMHgwYywweDExLDB4MDQsMHgwZCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDEsMHgwMCwweDAwfSB9LAoteyAgIDEsMHgwNDk0LDAsezB4MDB9IH0sCi17ICAgNCwweDA0OTUsMCx7MHgwMiwweDE3LDB4MDAsMHgwMH0gfSwKLXsgICAxLDB4MDQ5OSwwLHsweDAwfSB9LAoteyAgMTYsMHgwNDlhLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9IH0sCi17ICAgMSwweDA0YWEsMCx7MHgyMn0gfSwKLXsgICAxLDB4MDRhYiwwLHsweDMyfSB9LAoteyAgIDEsMHgwNGFjLDAsezB4MzJ9IH0sCi17ICAxNiwweDExMDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0gfSwKLXsgIDE2LDB4MTExMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4MjAsMHgwMCwweDAxLDB4MDEsMHgwMywweGEwLDB4MDAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAyfSB9LAoteyAgMTYsMHgxMTIwLDAsezB4ZmYsMHgwMCwweDAwLDB4MDQsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDB9IH0sCi17ICAxNiwweDExMzAsMCx7MHgwMCwweDAwLDB4MDQsMHgwMywweDA5LDB4MDQsMHgyNiwweDAzLDB4NDEsMHgwMCwweDZlLDB4MDAsMHg2MywweDAwLDB4NjgsMHgwMH0gfSwKLXsgIDE2LDB4MTE0MCwwLHsweDZmLDB4MDAsMHg3MiwweDAwLDB4MjAsMHgwMCwweDQzLDB4MDAsMHg2OCwweDAwLDB4NjksMHgwMCwweDcwLDB4MDAsMHg3MywweDAwfSB9LAoteyAgMTYsMHgxMTUwLDAsezB4MmMsMHgwMCwweDIwLDB4MDAsMHg0OSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHgyZSwweDAwLDB4MjgsMHgwMywweDQ2LDB4MDB9IH0sCi17ICAxNiwweDExNjAsMCx7MHg2OSwweDAwLDB4NzIsMHgwMCwweDZkLDB4MDAsMHg3NywweDAwLDB4NjEsMHgwMCwweDcyLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMH0gfSwKLXsgIDE2LDB4MTE3MCwwLHsweDQ2LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDZkLDB4MDAsMHg2NSwweDAwLDB4NTcsMHgwMCwweDZmLDB4MDAsMHg3MiwweDAwfSB9LAoteyAgMTYsMHgxMTgwLDAsezB4NmIsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDB9IH0sCi17ICAxNiwweDExOTAsMCx7MHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMH0gfSwKLXsgIDE2LDB4MTFhMCwwLHsweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgyMiwweDAzfSB9LAoteyAgMTYsMHgxMWIwLDAsezB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDB9IH0sCi17ICAxNiwweDExYzAsMCx7MHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMH0gfSwKLXsgICAyLDB4MTFkMCwwLHsweDAwLDB4MDB9IH0sCi17ICAgMCwweDAwMDAsMSx7MCB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjIuYyBiL2RyaXZlcnMvdXNiL21pc2MvZW1pNjIuYwppbmRleCAxYTJiNzlhLi4yMDg4NmMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyLmMKKysrIGIvZHJpdmVycy91c2IvbWlzYy9lbWk2Mi5jCkBAIC0xNiwxNSArMTYsOCBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Ci0KLSNkZWZpbmUgTUFYX0lOVEVMX0hFWF9SRUNPUkRfTEVOR1RIIDE2Ci10eXBlZGVmIHN0cnVjdCBfSU5URUxfSEVYX1JFQ09SRAotewotCV9fdTMyCWxlbmd0aDsKLQlfX3UzMglhZGRyZXNzOwotCV9fdTMyCXR5cGU7Ci0JX191OAlkYXRhW01BWF9JTlRFTF9IRVhfUkVDT1JEX0xFTkdUSF07Ci19IElOVEVMX0hFWF9SRUNPUkQsICpQSU5URUxfSEVYX1JFQ09SRDsKKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KIAogLyogaW5jbHVkZSBmaXJtd2FyZSAodmFyaWFibGVzKSovCiAKQEAgLTMzLDkgKzI2LDkgQEAKIC8vI3VuZGVmIFNQRElGCS8qIGlmIHlvdSB3YW50IE1JREkgdW5jb21tZW50IHRoaXMgbGluZSAqLyAKIAogI2lmZGVmIFNQRElGCi0jICBpbmNsdWRlICJlbWk2Ml9md19zLmgiIC8qIHNwZGlmIGZ3ICovCisjZGVmaW5lIEZJUk1XQVJFX0ZXICJlbWk2Mi9zcGRpZi5mdyIKICNlbHNlCi0jICBpbmNsdWRlICJlbWk2Ml9md19tLmgiIC8qIG1pZGkgZncgKi8KKyNkZWZpbmUgRklSTVdBUkVfRlcgImVtaTYyL21pZGkuZnciCiAjZW5kaWYKIAogI2RlZmluZSBFTUk2Ml9WRU5ET1JfSUQgCQkweDA4NmEgIC8qIEVtYWdpYyBTb2Z0LXVuZCBIYXJkd2FyZSBHbUJIICovCkBAIC00OCw3ICs0MSw5IEBACiAjZGVmaW5lIENQVUNTX1JFRwkJMHg3RjkyICAvKiBFWi1VU0IgQ29udHJvbCBhbmQgU3RhdHVzIFJlZ2lzdGVyLiAgQml0IDAgY29udHJvbHMgODA1MSByZXNldCAqLyAKICNkZWZpbmUgSU5URVJOQUxfUkFNKGFkZHJlc3MpICAgKGFkZHJlc3MgPD0gTUFYX0lOVEVSTkFMX0FERFJFU1MpCiAKLXN0YXRpYyBpbnQgZW1pNjJfd3JpdGVtZW1vcnkoIHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLCBfX3U4IGJSZXF1ZXN0KTsKK3N0YXRpYyBpbnQgZW1pNjJfd3JpdGVtZW1vcnkoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgaW50IGFkZHJlc3MsCisJCQkgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgsCisJCQkgICAgIF9fdTggYlJlcXVlc3QpOwogc3RhdGljIGludCBlbWk2Ml9zZXRfcmVzZXQoc3RydWN0IHVzYl9kZXZpY2UgKmRldiwgdW5zaWduZWQgY2hhciByZXNldF9iaXQpOwogc3RhdGljIGludCBlbWk2Ml9sb2FkX2Zpcm13YXJlIChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KTsKIHN0YXRpYyBpbnQgZW1pNjJfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCk7CkBAIC01OCw3ICs1Myw5IEBACiAKIAogLyogdGhhbmtzIHRvIGRyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jIGNvZGUgKi8KLXN0YXRpYyBpbnQgZW1pNjJfd3JpdGVtZW1vcnkgKHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLCBfX3U4IHJlcXVlc3QpCitzdGF0aWMgaW50IGVtaTYyX3dyaXRlbWVtb3J5KHN0cnVjdCB1c2JfZGV2aWNlICpkZXYsIGludCBhZGRyZXNzLAorCQkJICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuZ3RoLAorCQkJICAgICBfX3U4IHJlcXVlc3QpCiB7CiAJaW50IHJlc3VsdDsKIAl1bnNpZ25lZCBjaGFyICpidWZmZXIgPSAga21lbWR1cChkYXRhLCBsZW5ndGgsIEdGUF9LRVJORUwpOwpAQCAtOTEsOSArODgsMTIgQEAKIAogc3RhdGljIGludCBlbWk2Ml9sb2FkX2Zpcm13YXJlIChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KQogeworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqbG9hZGVyX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmJpdHN0cmVhbV9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZV9mdyA9IE5VTEw7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CiAJaW50IGVycjsKIAlpbnQgaTsKLQlpbnQgcG9zID0gMDsJLyogUG9zaXRpb24gaW4gaGV4IHJlY29yZCAqLwogCV9fdTMyIGFkZHI7CS8qIEFkZHJlc3MgdG8gd3JpdGUgKi8KIAlfX3U4ICpidWY7CiAKQEAgLTEwNSw2ICsxMDUsMjIgQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAorCWVyciA9IHJlcXVlc3RfaWhleF9maXJtd2FyZSgmbG9hZGVyX2Z3LCAiZW1pNjIvbG9hZGVyLmZ3IiwgJmRldi0+ZGV2KTsKKwlpZiAoZXJyKQorCQlnb3RvIG5vZnc7CisKKwllcnIgPSByZXF1ZXN0X2loZXhfZmlybXdhcmUoJmJpdHN0cmVhbV9mdywgImVtaTYyL2JpdHN0cmVhbS5mdyIsCisJCQkJICAgICZkZXYtPmRldik7CisJaWYgKGVycikKKwkJZ290byBub2Z3OworCisJZXJyID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmaXJtd2FyZV9mdywgRklSTVdBUkVfRlcsICZkZXYtPmRldik7CisJaWYgKGVycikgeworCW5vZnc6CisJCWVyciggIiVzIC0gcmVxdWVzdF9maXJtd2FyZSgpIGZhaWxlZCIsIF9fZnVuY19fKTsKKwkJZ290byB3cmFwZXJyOworCX0KKwogCS8qIEFzc2VydCByZXNldCAoc3RvcCB0aGUgQ1BVIGluIHRoZSBFTUkpICovCiAJZXJyID0gZW1pNjJfc2V0X3Jlc2V0KGRldiwxKTsKIAlpZiAoZXJyIDwgMCkgewpAQCAtMTEyLDEzICsxMjgsMTggQEAKIAkJZ290byB3cmFwZXJyOwogCX0KIAorCXJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilsb2FkZXJfZnctPmRhdGE7CisKIAkvKiAxLiBXZSBuZWVkIHRvIHB1dCB0aGUgbG9hZGVyIGZvciB0aGUgRlBHQSBpbnRvIHRoZSBFWi1VU0IgKi8KLQlmb3IgKGk9MDsgZ19lbWk2Ml9sb2FkZXJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX2VtaTYyX2xvYWRlcltpXS5hZGRyZXNzLCBnX2VtaTYyX2xvYWRlcltpXS5kYXRhLCBnX2VtaTYyX2xvYWRlcltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKKwl3aGlsZSAocmVjKSB7CisJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCUFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQlnb3RvIHdyYXBlcnI7CiAJCX0KKwkJcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpOwogCX0KIAogCS8qIERlLWFzc2VydCByZXNldCAobGV0IHRoZSBDUFUgcnVuKSAqLwpAQCAtMTMyLDE1ICsxNTMsMTYgQEAKIAkvKiAyLiBXZSB1cGxvYWQgdGhlIEZQR0EgZmlybXdhcmUgaW50byB0aGUgRU1JCiAJICogTm90ZTogY29sbGVjdCB1cCB0byAxMDIzICh5ZXMhKSBieXRlcyBhbmQgc2VuZCB0aGVtIHdpdGgKIAkgKiBhIHNpbmdsZSByZXF1ZXN0LiBUaGlzIGlzIF9tdWNoXyBmYXN0ZXIhICovCisJcmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWJpdHN0cmVhbV9mdy0+ZGF0YTsKIAlkbyB7CiAJCWkgPSAwOwotCQlhZGRyID0gZ19lbWk2MmJzW3Bvc10uYWRkcmVzczsKKwkJYWRkciA9IGJlMzJfdG9fY3B1KHJlYy0+YWRkcik7CiAKIAkJLyogaW50ZWwgaGV4IHJlY29yZHMgYXJlIHRlcm1pbmF0ZWQgd2l0aCB0eXBlIDAgZWxlbWVudCAqLwotCQl3aGlsZSAoKGdfZW1pNjJic1twb3NdLnR5cGUgPT0gMCkgJiYgKGkgKyBnX2VtaTYyYnNbcG9zXS5sZW5ndGggPCBGV19MT0FEX1NJWkUpKSB7Ci0JCQltZW1jcHkoYnVmICsgaSwgZ19lbWk2MmJzW3Bvc10uZGF0YSwgZ19lbWk2MmJzW3Bvc10ubGVuZ3RoKTsKLQkJCWkgKz0gZ19lbWk2MmJzW3Bvc10ubGVuZ3RoOwotCQkJcG9zKys7CisJCXdoaWxlIChyZWMgJiYgKGkgKyBiZTE2X3RvX2NwdShyZWMtPmxlbikgPCBGV19MT0FEX1NJWkUpKSB7CisJCQltZW1jcHkoYnVmICsgaSwgcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbikpOworCQkJaSArPSBiZTE2X3RvX2NwdShyZWMtPmxlbik7CisJCQlyZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYyk7CiAJCX0KIAkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBhZGRyLCBidWYsIGksIEFOQ0hPUl9MT0FEX0ZQR0EpOwogCQlpZiAoZXJyIDwgMCkgewpAQCAtMTU3LDggKzE3OSwxMSBAQAogCX0KIAogCS8qIDMuIFdlIG5lZWQgdG8gcHV0IHRoZSBsb2FkZXIgZm9yIHRoZSBmaXJtd2FyZSBpbnRvIHRoZSBFWi1VU0IgKGFnYWluLi4uKSAqLwotCWZvciAoaT0wOyBnX2VtaTYyX2xvYWRlcltpXS50eXBlID09IDA7IGkrKykgewotCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfZW1pNjJfbG9hZGVyW2ldLmFkZHJlc3MsIGdfZW1pNjJfbG9hZGVyW2ldLmRhdGEsIGdfZW1pNjJfbG9hZGVyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOworCWZvciAocmVjID0gKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqKWxvYWRlcl9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgYmUzMl90b19jcHUocmVjLT5hZGRyKSwKKwkJCQkJcmVjLT5kYXRhLCBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCUFOQ0hPUl9MT0FEX0lOVEVSTkFMKTsKIAkJaWYgKGVyciA8IDApIHsKIAkJCWVycigiJXMgLSBlcnJvciBsb2FkaW5nIGZpcm13YXJlOiBlcnJvciA9ICVkIiwgX19mdW5jX18sIGVycik7CiAJCQlnb3RvIHdyYXBlcnI7CkBAIC0xNzUsMjkgKzIwMCwxOSBAQAogCiAJLyogNC4gV2UgcHV0IHRoZSBwYXJ0IG9mIHRoZSBmaXJtd2FyZSB0aGF0IGxpZXMgaW4gdGhlIGV4dGVybmFsIFJBTSBpbnRvIHRoZSBFWi1VU0IgKi8KIAotLyogRklYTUU6IHF1aWNrIGFuZCBkaXJ0eSBpZmRlZnMgKi8KLSNpZmRlZiBTUERJRgotCWZvciAoaT0wOyBnX0hleFNwZGlmRnc2MltpXS50eXBlID09IDA7IGkrKykgewotCQlpZiAoIUlOVEVSTkFMX1JBTShnX0hleFNwZGlmRnc2MltpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX0hleFNwZGlmRnc2MltpXS5hZGRyZXNzLCBnX0hleFNwZGlmRnc2MltpXS5kYXRhLCBnX0hleFNwZGlmRnc2MltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKKwlmb3IgKHJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwkgICAgIHJlYzsgcmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpKSB7CisJCWlmICghSU5URVJOQUxfUkFNKGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpKSB7CisJCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJCUFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCQlnb3RvIHdyYXBlcnI7CiAJCQl9CiAJCX0KIAl9Ci0jZWxzZSAvKiBNSURJICovCi0JZm9yIChpPTA7IGdfSGV4TWlkaUZ3NjJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKCFJTlRFUk5BTF9SQU0oZ19IZXhNaWRpRnc2MltpXS5hZGRyZXNzKSkgewotCQkJZXJyID0gZW1pNjJfd3JpdGVtZW1vcnkoZGV2LCBnX0hleE1pZGlGdzYyW2ldLmFkZHJlc3MsIGdfSGV4TWlkaUZ3NjJbaV0uZGF0YSwgZ19IZXhNaWRpRnc2MltpXS5sZW5ndGgsIEFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKLQkJCWlmIChlcnIgPCAwKSB7Ci0JCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWRcbiIsIF9fZnVuY19fLCBlcnIpOwotCQkJCWdvdG8gd3JhcGVycjsKLQkJCQlyZXR1cm4gZXJyOwotCQkJfQotCQl9Ci0JfQotI2VuZGlmCQorCiAJLyogQXNzZXJ0IHJlc2V0IChzdG9wIHRoZSBDUFUgaW4gdGhlIEVNSSkgKi8KIAllcnIgPSBlbWk2Ml9zZXRfcmVzZXQoZGV2LDEpOwogCWlmIChlcnIgPCAwKSB7CkBAIC0yMDUsMjkgKzIyMCwxOSBAQAogCQlnb3RvIHdyYXBlcnI7CiAJfQogCi0vKiBGSVhNRTogcXVpY2sgYW5kIGRpcnR5IGlmZGVmcyAqLwotI2lmZGVmIFNQRElGCi0JZm9yIChpPTA7IGdfSGV4U3BkaWZGdzYyW2ldLnR5cGUgPT0gMDsgaSsrKSB7Ci0JCWlmIChJTlRFUk5BTF9SQU0oZ19IZXhTcGRpZkZ3NjJbaV0uYWRkcmVzcykpIHsKLQkJCWVyciA9IGVtaTYyX3dyaXRlbWVtb3J5KGRldiwgZ19IZXhTcGRpZkZ3NjJbaV0uYWRkcmVzcywgZ19IZXhTcGRpZkZ3NjJbaV0uZGF0YSwgZ19IZXhTcGRpZkZ3NjJbaV0ubGVuZ3RoLCBBTkNIT1JfTE9BRF9JTlRFUk5BTCk7CisJZm9yIChyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJICAgICByZWM7IHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQlpZiAoSU5URVJOQUxfUkFNKGJlMzJfdG9fY3B1KHJlYy0+YWRkcikpKSB7CisJCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGJlMzJfdG9fY3B1KHJlYy0+YWRkciksCisJCQkJCQlyZWMtPmRhdGEsIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSwKKwkJCQkJCUFOQ0hPUl9MT0FEX0VYVEVSTkFMKTsKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJZXJyKCIlcyAtIGVycm9yIGxvYWRpbmcgZmlybXdhcmU6IGVycm9yID0gJWQiLCBfX2Z1bmNfXywgZXJyKTsKIAkJCQlnb3RvIHdyYXBlcnI7CiAJCQl9CiAJCX0KIAl9Ci0jZWxzZSAvKiBNSURJICovCi0JZm9yIChpPTA7IGdfSGV4TWlkaUZ3NjJbaV0udHlwZSA9PSAwOyBpKyspIHsKLQkJaWYgKElOVEVSTkFMX1JBTShnX0hleE1pZGlGdzYyW2ldLmFkZHJlc3MpKSB7Ci0JCQllcnIgPSBlbWk2Ml93cml0ZW1lbW9yeShkZXYsIGdfSGV4TWlkaUZ3NjJbaV0uYWRkcmVzcywgZ19IZXhNaWRpRnc2MltpXS5kYXRhLCBnX0hleE1pZGlGdzYyW2ldLmxlbmd0aCwgQU5DSE9SX0xPQURfSU5URVJOQUwpOwotCQkJaWYgKGVyciA8IDApIHsKLQkJCQllcnIoIiVzIC0gZXJyb3IgbG9hZGluZyBmaXJtd2FyZTogZXJyb3IgPSAlZFxuIiwgX19mdW5jX18sIGVycik7Ci0JCQkJZ290byB3cmFwZXJyOwotCQkJfQotCQl9Ci0JfQotI2VuZGlmCi0JCisKIAkvKiBEZS1hc3NlcnQgcmVzZXQgKGxldCB0aGUgQ1BVIHJ1bikgKi8KIAllcnIgPSBlbWk2Ml9zZXRfcmVzZXQoZGV2LDApOwogCWlmIChlcnIgPCAwKSB7CkBAIC0yMzYsNiArMjQxLDEwIEBACiAJfQogCW1zbGVlcCgyNTApOwkvKiBsZXQgZGV2aWNlIHNldHRsZSAqLwogCisJcmVsZWFzZV9maXJtd2FyZShsb2FkZXJfZncpOworCXJlbGVhc2VfZmlybXdhcmUoYml0c3RyZWFtX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlX2Z3KTsKKwogCWtmcmVlKGJ1Zik7CiAKIAkvKiByZXR1cm4gMSB0byBmYWlsIHRoZSBkcml2ZXIgaW5pYWxpemF0aW9uCkBAIC0yNDMsNiArMjUyLDEwIEBACiAJcmV0dXJuIDE7CiAKIHdyYXBlcnI6CisJcmVsZWFzZV9maXJtd2FyZShsb2FkZXJfZncpOworCXJlbGVhc2VfZmlybXdhcmUoYml0c3RyZWFtX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlX2Z3KTsKKwogCWtmcmVlKGJ1Zik7CiAJZGV2X2VycigmZGV2LT5kZXYsICJFcnJvclxuIik7CiAJcmV0dXJuIGVycjsKQEAgLTMwMCw1ICszMTMsOCBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCJFbWFnaWMgRU1JIDZ8Mm0gZmlybXdhcmUgbG9hZGVyLiIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCitNT0RVTEVfRklSTVdBUkUoImVtaTYyL2xvYWRlci5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlbWk2Mi9iaXRzdHJlYW0uZnciKTsKK01PRFVMRV9GSVJNV0FSRShGSVJNV0FSRV9GVyk7CiAvKiB2aTphaTpzeW50YXg9Yzpzdz04OnRzPTg6dHc9ODAKICAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19tLmggYi9kcml2ZXJzL3VzYi9taXNjL2VtaTYyX2Z3X20uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzU2N2M5MDAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9lbWk2Ml9md19tLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ODUzICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gdGhyZWUgZGlmZmVyZW50IGZpbGVzLCBwcm92aWRlZCBieSBFbWFnaWMuCi0gKi8KLS8qIGdlbmVyYXRlZCBUdWUgSnVuIDMgMjE6MzY6MTEgRUVTVCAyMDAzICovCi0KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfZW1pNjJic1tdPXsKLSAgMTYsIDB4ODAxMCwgMCwgezB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhhYSwweDk5LDB4NTUsMHg2NiwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDcgfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4MzAsMHgwMSwweDYwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwZCwweDMwLDB4MDEsMHgyMCwweDAxLDB4MDAsMHg4MCwweDNmLDB4MmQgfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MzAsMHgwMCwweGMwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDEgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MDAsMHg1MCwweDAwLDB4NTgsMHgxYSwweDgwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0MCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4MDAsMHgxMiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NDggfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4ODAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4MDAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4N2YsMHgxMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4MDAsMHgwMywweDQwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDA1LDB4MDAgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4MDcsMHg0MCwweDAxLDB4ZDAsMHgwMCwweDc0LDB4MDAsMHgxZCwweDAwLDB4MDcsMHg0MCwweDAxLDB4ZDAsMHgwMCwweDc0LDB4MDAgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MWQsMHg4MCwweDA3LDB4ZTAsMHgwMSwweGI4LDB4MDAsMHg2ZSwweDAwLDB4MWIsMHg4MCwweDA2LDB4ZTAsMHgwMSwweDM4LDB4MzcgfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4YzQsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDgwLDB4ZmIsMHgzMCwweDM2LDB4YzggfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4NGUsMHgwOSwweDAzLDB4ZmMsMHg4NCwweGZmLDB4MTAsMHgzYiwweGMwLDB4MGUsMHhjOCwweDA3LDB4MjIsMHg4MCwweGZmLDB4MjIgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4YzgsMHgzMywweDZlLDB4MDAsMHhmYiwweDgwLDB4M2YsMHgyMCwweDBkLDB4YzIsMHg1MywweGQ0LDB4ODAgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4Y2MsMHgzYSwweDNmLDB4MDAsMHgwYywweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4ODAsMHgwMCwweGVkLDB4NjAsMHhiZiwweDYwLDB4MjMsMHhmMCwweDBkLDB4ODIsMHgxMiwweDNjLDB4NjAsMHg4ZiwweDcwLDB4MjMgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4ZjAsMHgwOCwweDg4LDB4MDIsMHhhNSwweDQwLDB4YmYsMHhkMCwweDYzLDB4ZDYsMHgwYiwweDg4LDB4MDIsMHgyZSwweDBjLDB4YmIgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4ODAsMHgyZSwweDIwLDB4ODgsMHg4ZCwweDAyLDB4ZTYsMHg0MCwweDgwLDB4NjAsMHgyZSwweDMwLDB4MGEsMHhiMSwweDEyLDB4MjAgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDgwLDB4YTMsMHg0MCwweDJjLDB4YzQgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4NGEsMHgwMCwweDEyLDB4OGMsMHg4OCwweGEzLDB4MjIsMHgyMCwweGM0LDB4MGEsMHg5MCwweDQyLDB4MDQsMHhhOSwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4MjQsMHhjOCwweDhiLDB4ODAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4MmUsMHgwMSwweDA5LDB4MDgsMHgwMiwweDg0LDB4MDAgfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4ODAsMHgyMCwweDJjLDB4MTAsMHgwYSwweDMyLDB4NDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDQsMHhiMywweDAwLDB4MmEsMHhjMCwweDA4LDB4MDgsMHhhMiwweDhjLDB4MDAsMHg4YiwweDAwLDB4YTIgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4YzEsMHgxMCwweDk4LDB4NDIsMHhhNywweDAwLDB4YmIsMHgwMSwweDY2LDB4YzEsMHgwYiwweDgwLDB4MDIsMHhhYywweDA0LDB4YmIgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4MDAsMHgyZSwweDAwLDB4MGIsMHhiOCwweDEyLDB4ZTQsMHgwMiwweDg5LDB4MDgsMHgwZSwweDQwLDB4MGEsMHhiMCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4NGEsMHhiOCwweDIzLDB4ZWMsMHgxOCwweGViLDB4MDAsMHgzMiwweGMwLDB4MGUsMHgyYywweDEyLDB4MjIsMHgxMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4MjYsMHhjMCwweDRmLDB4MDAsMHg0MywweGVkLDB4MDAsMHhmYiwweDAwLDB4MmUsMHgyNCwweDBkLDB4ODAsMHgxMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4YzgsMHhkMCwweDdjLDB4MTIsMHgwZSwweGIwLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4MzUsMHhjMCwweDRmLDB4ZTAsMHgwMywweDdjLDB4MDgsMHhmZiwweDAxLDB4MTcgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4YzIsMHg0ZCwweGMwLDB4MDMsMHhmNCwweDA4LDB4ZjcsMHgwMCwweDNiLDB4YzAsMHgwNywweGMwLDB4MDMsMHg3YywweDgwLDB4ZmYgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4MjQsMHgzZiwweDQwLDB4MGMsMHhmMCwweDAxLDB4ZjQsMHgwNCwweGJjLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhmMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDA4LDB4ZmIsMHgwNCwweDNhLDB4YzggfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MGYsMHg5NCwweDAzLDB4ZWMsMHgxMCwweGYzLDB4MDAsMHgzNCwweGMwLDB4MGUsMHhiMCwweDAzLDB4NjEsMHgwNCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTMsMHgwMywweDJjLDB4ODAsMHhmYiwweDcyLDB4M2UsMHgwMiwweDBmLDB4OGEsMHgwMywweGU0LDB4MDIgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4YzksMHg4MCwweDJhLDB4NTAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4Y2EsMHg0NCwweDNjLDB4MDAsMHhiZiwweDAwLDB4MDMsMHhjMCwweDA4LDB4ODAsMHgwMywweDdjLDB4MDAsMHhiZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4ZTIsMHgwOCwweDkwLDB4NDMsMHg2MCwweDAwLDB4YmYsMHgwMCwweDM3LDB4YzAsMHgwOCwweDkwLDB4MDEsMHg2ZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4NDAsMHgyYywweDEwLDB4MGIsMHhiMCwweDQyLDB4ZDcsMHhjMCwweDg5LDB4MDAsMHgyYSwweDdjLDB4MGIsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUyLDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4ZDUgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4NGEsMHgwMCwweDAwLDB4MGMsMHgwNCwweDkzLDB4MDAsMHgwYywweGYwLDB4MGIsMHgwOSwweDAyLDB4MDgsMHgwMSwweGIzLDB4MjAgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MGMsMHgwYSwweDBlLDB4MDAsMHhiMywweDAwLDB4MjQsMHgzMCwweDA5LDB4MDAsMHgwMiwweGM2LDB4MTAgfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4ODAsMHg0MiwweDIwLDB4MDAsMHg4YiwweGIwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4MjIsMHgwMSwweDFlLDB4MDAsMHhiNywweDk0LDB4MjEsMHhlNCwweDQ4LDB4ZDksMHgxMiwweDVlLDB4NDAsMHhiNywweDkwLDB4MjkgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4ZTAsMHg4YiwweDY5LDB4MTIsMHhkNiwweDgwLDB4MzcsMHg4MiwweDJjLDB4ZTgsMHgwOCwweDRhLDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4YTQsMHgyZCwweDIwLDB4MGIsMHg3OSwweDAyLDB4ZDYsMHgwOCwweDg2LDB4OTAsMHgyOSwweGEwLDB4MGIsMHg3OSwweDAyLDB4ZDggfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDAwLDB4ZmIsMHhhMCwweDI4LDB4ZTggfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4MGUsMHgyYSwweDAyLDB4OGMsMHgwMCwweGQzLDB4MDAsMHg2NCwweGMwLDB4MGYsMHgwMCwweDQzLDB4MGUsMHhjNCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4NzgsMHhlYywweDBlLDB4MGEsMHg0MywweDBlLDB4MjAsMHg3MywweGUwLDB4M2MsMHgwMiwweDRmLDB4MDAsMHgwMywweGM0LDB4NDAgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4YmMsMHhjYywweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4YzIsMHgwYywweDIwLDB4MDMsMHg2YywweDUwLDB4ZjMsMHgwMCwweDM2LDB4YzQsMHgwZiwweDQwLDB4MDMsMHhmYywweDA4LDB4ZmYgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4MWEsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAxLDB4ZTQsMHgzMCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDYzLDB4ZDAgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDQwLDB4ZmIsMHgwMCwweGIyLDB4ZDggfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MGMsMHhiMCwweDAxLDB4MmQsMHgyMCwweGRiLDB4MDEsMHgzYSwweGM4LDB4OGMsMHgzOCwweDAzLDB4YTgsMHgwMCwweGZiLDB4NDggfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4M2UsMHhjOSwweDBmLDB4ODAsMHgwMywweGVjLDB4NDAsMHhmYiwweDAxLDB4M2UsMHgwMCwweDBmLDB4MDgsMHgwMywweGE0LDB4MDggfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4ZmEsMHg4MCwweGIyLDB4ODAsMHgwZiwweGIxLDB4MDIsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4NDgsMHgxOSwweDFjLDB4ODAsMHhiZiwweDMwLDB4MjEsMHhjYSwweDA4LDB4ZjAsMHgwYSwweDBjLDB4ODAsMHg4ZiwweDUwLDB4MjEgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4YzIsMHgwOCwweDcwLDB4NTAsMHg5YywweDAwLDB4YjcsMHgwMCwweDM5LDB4YzQsMHgwYiwweDQwLDB4MDIsMHg5YywweDA0LDB4YjcgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4MjAsMHgyNSwweDQwLDB4MGIsMHg3MCwweDAyLDB4MTQsMHg4MCwweGI2LDB4MDAsMHgyMSwweDgwLDB4MGIsMHhmOCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjcsMHhiMCwweDIxLDB4ZWMgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4NCwweDk3LDB4ODAsMHgwZCwweGUwLDB4MjgsMHhmOCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4OTAgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4MmQsMHhlNCwweDBiLDB4NjgsMHg4MiwweDVlLDB4ODAsMHhiNywweGEwLDB4MjksMHgyMCwweDBiLDB4NDgsMHgwMiwweDk2LDB4MDAgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4YjcsMHg4MCwweDIxLDB4ZTEsMHgwYiwweDdhLDB4MDIsMHg3MCwweDQwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4NDgsMHgwNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzgsMHgwMiwweDhjLDB4MDQsMHg4MywweDAwLDB4MjggfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4YzAsMHg4OCwweDM5LDB4MDIsMHg0YywweDQwLDB4YjMsMHgwNCwweDI4LDB4YzAsMHgxYiwweDEwLDB4MDIsMHg4YywweDAxLDB4YjMgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4MDQsMHgyNCwweDg4LDB4NGIsMHgzMSwweDAyLDB4MDQsMHgwMCwweGIzLDB4ODAsMHgyMCwweGYyLDB4MGIsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4MjQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4MGYsMHhlOCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDEsMHgzYSwweDgwLDB4OGMsMHhlZCwweDAzLDB4ZmIsMHgwNCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4NmMsMHgwMywweGZiLDB4YzgsMHhiZSwweGMyLDB4MWYsMHg4MCwweDBmLDB4ZTUsMHgwMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4ZmUsMHg0OCwweDMzLDB4ODAsMHg0ZiwweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2MsMHgwMCwweDBjLDB4ODEsMHg5MywweDYwLDB4MDAsMHhmOCwweDAxLDB4MzYgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MTAsMHgwZiwweDgwLDB4MDMsMHhhMCwweDIwLDB4ZjgsMHgwMCwweDJhLDB4MDEsMHg4ZiwweDg0LDB4MTMsMHhlMSwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4MTgsMHgzNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDE0LDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4ODAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjEsMHgwMCwweGFhLDB4NDAgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGUxLDB4MDAsMHgzOCwweDQwLDB4MWMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4M2EsMHg0MCwweDQ3LDB4OWEsMHg5MywweGEyLDB4ODAsMHhmOCwweDEwLDB4M2UsMHg0MCwweDBiLDB4OTQsMHgwMywweGU2LDB4NDAgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4ZjksMHhjMCwweDNlLDB4NjgsMHgwYiwweDEwLDB4MDMsMHgwMiwweDg0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4ODAsMHgwNCwweGU0LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDQsMHg4OSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjksMHg4MCwweDJlLDB4NDAsMHg0ZiwweDk0LDB4MDMsMHg2MSwweDEwLDB4ZTggfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4NDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4ZTYsMHgwNCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDQsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4MGEsMHgxMCwweDUyLDB4MDQsMHgwNCwweGE5LDB4MDQsMHgyYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE4LDB4MGQsMHhiOCwweDQwLDB4MmUsMHg0MCwweDA5LDB4OTQsMHgwMiwweGU1LDB4MDAgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4YjksMHgwNCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4MjAsMHhjOCwweDBhLDB4MTAsMHg0MiwweDA0LDB4OTAsMHg4MSwweDIwLDB4MDQgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4YzgsMHgwOCwweDMwLDB4MjYsMHhjNCwweDAwLDB4YjEsMHgyMCwweDJjLDB4NDgsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAxLDB4YjEgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4NDAsMHgyYywweDQwLDB4MGIsMHgxMiwweDgyLDB4YzQsMHgwMCwweGIxLDB4MmIsMHgyYywweDRhLDB4MGIsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHgyMSwweDQ4LDB4ZjgsMHg1MCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4NGUsMHg4NSwweDBiLDB4MjEsMHg0MCwweGE4LDB4NTIsMHgyYSwweDAwLDB4MDgsMHg4MCwweDIzLDB4ZTEsMHg0MCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4M2EsMHgxNCwweDBmLDB4YTAsMHg0MywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODIsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4ZjAsMHgyMCwweDNlLDB4ODgsMHg0ZiwweDgyLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4OTgsMHgxOSwweGU0LDB4NDAsMHhmOSwweDExLDB4MzQsMHg0NCwweDJkLDB4ZDAsMHgwMywweGU0LDB4NTAsMHg3OSwweDEwLDB4MzggfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4NDQsMHgyZiwweGQwLDB4MDMsMHhmNSwweDEwLDB4ZjksMHgxMCwweDNlLDB4NDUsMHgwNiwweDUwLDB4MDMsMHhlNSwweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMCwweGZkLDB4MjgsMHgzZiwweDQwLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDEsMHhlNiwweDAwLDB4ZDksMHg5MCwweDM3LDB4NjkgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4NGQsMHg5MCwweDIzLDB4NjcsMHg4MCwweGQ5LDB4ZTAsMHgzNywweDY4LDB4MGUsMHhkMCwweDA3LDB4YTQsMHgwMCwweDA1LDB4ODYgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4M2UsMHg2NiwweDBkLDB4NTAsMHgyMywweDI2LDB4MDAsMHhjOSwweDgyLDB4M2QsMHg0MCwweDBkLDB4ZDgsMHgwNywweDM2LDB4MDIgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NjAsMHgwYywweDljLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHg4OCwweGEyLDB4MjIsMHgxMCwweDI4LDB4OGEsMHg4MiwweDIzLDB4ODQsMHg4OCwweGEwLDB4MjIgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4MTQsMHg0OCwweDgwLDB4NDIsMHg4MiwweDAwLDB4ODgsMHg0MCwweDJlLDB4MzAsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4ZDggfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4OTAsMHgyNiwweDAwLDB4MDgsMHg4NCwweDBhLDB4MjEsMHgwMCwweGM4LDB4YTAsMHhhMiwweDE0LDB4MjgsMHg4YywweDAyLDB4MGUgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDIwLDB4OTEsMHg0MCwweDJjLDB4NDQgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4MTgsMHgxMCwweDAyLDB4ODUsMHgwNCwweGIxLDB4NDAsMHgwYywweDQwLDB4MGEsMHgxMCwweDA2LDB4ODQsMHgzMCwweDgxLDB4NDAgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4MmMsMHg0OCwweDU5LDB4MTAsMHgxYSwweDA0LDB4NjAsMHg4MSwweDA5LDB4MmUsMHg0MCwweDFiLDB4MTQsMHgwMiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4OTEsMHhlMCwweDIwLDB4NjAsMHgwOCwweDE2LDB4MDIsMHgwMCwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4MSwweDAwLDB4MmEsMHg0MSwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhhMSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4NDEsMHgwOCwweGIwLDB4ODIsMHgyNCwweDExLDB4OGIsMHgwMCwweDJlLDB4NDAsMHgxOCwweDkxLDB4MDIsMHhhMCwweDA0LDB4OTggfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4MjAsMHgyZSwweDU0LDB4MWIsMHg5MCwweDgyLDB4MmMsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQ0LDB4ODgsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4NGMsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGUsMHgxMCwweDAyLDB4YTQsMHhjMiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4M2UsMHg0MCwweDBkLDB4MTYsMHgxMywweDAxLDB4ODQsMHhjOCwweDIwLDB4M2MsMHg2MCwweDBmLDB4OTAsMHgxMiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4ZDksMHg0MCwweDMyLDB4NTAsMHgwYywweDkwLDB4MDMsMHgyOCwweDg0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDRmLDB4OTksMHg0YSwweDQ0LDB4MDAsMHg5OSwweDAwLDB4YjQgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MTMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlMywweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MDEsMHgzNiwweDQwLDB4MGMsMHg5OSwweDAzLDB4ZTQsMHgwMiwweGY5LDB4ODAsMHgzZSwweDYwLDB4NGYsMHg5MCwweDBiLDB4Y2EgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwMCwweDNjLDB4MDAgfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4MWQsMHg4MCwweDAzLDB4MjAsMHgwMCwweGU4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4NCwweDgzLDB4ZTAsMHgxMCwweGU4LDB4MjAgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4MzIsMHgwMCwweDhlLDB4ODQsMHgwMywweDIxLDB4ODAsMHhjOCwweDAwLDB4M2EsMHgxOSwweDBmLDB4MDQsMHgwMywweGUwLDB4MjQgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4ZjAsMHgwMiwweDNjLDB4MDAsMHgwZiwweDgwLDB4MTMsMHg4YSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDIsMHg4YSwweDAxLDB4MGYsMHhhMiwweDY4LDB4YTAsMHgwMCwweDI4LDB4MDAsMHg4YSwweDAwLDB4NzcgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4ODAsMHg2OCwweGUwLDB4MTIsMHhlOCwweDAwLDB4ZGUsMHgwMCwweDM2LDB4ODEsMHgwOCwweGUwLDB4MDMsMHg3YSwweDA4LDB4YWUgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4YzQsMHgyZiwweDgwLDB4MDgsMHhlZCwweDAyLDB4ZmEsMHgwMCwweGJlLDB4YTAsMHgzYiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MGEgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4ODUsMHg0YywweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4ODgsMHhiMCwweDAyLDB4MGMsMHgxNCwweGEzLDB4MDQsMHgyMCwweGM0LDB4MTgsMHgzOCwweDAyLDB4ZWMsMHgxMCwweDkzLDB4NTQgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDRlLDB4MDAsMHg4MywweDQ5LDB4NjgsMHhjMCwweDAyLDB4MzksMHg0MiwweGNlLDB4NDAgfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4YjMsMHgwMCwweDJjLDB4ZTYsMHgwYiwweGIwLDB4MDIsMHg4YiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MDgsMHg4NywweDIwLDB4MmMsMHg4MCwweDE4LDB4ZjIsMHgyMiwweDFjLDB4MDAsMHg4NywweDEwLDB4MjEgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4YzAsMHgwOCwweDcwLDB4ODIsMHhkYywweDgwLDB4OTYsMHg4MCwweDJkLDB4YzAsMHgwYSwweDQwLDB4MDIsMHg3ZCwweDQwLDB4MjcgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4NjQsMHg2ZCwweGQwLDB4NDgsMHg2MCwweDQyLDB4ZDgsMHgwNSwweGI2LDB4MDQsMHgyOSwweGMwLDB4NGIsMHg3MiwweDAyLDB4MjggfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDg4LDB4ZDcsMHhlMCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4MDgsMHg3YywweDQyLDB4M2UsMHgwMCwweGUzLDB4ODIsMHgyMCwweGUwLDB4MGMsMHg2OCwweDAzLDB4ZGYsMHgwNCwweGQ3LDB4ODAgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4M2IsMHhlMCwweDRlLDB4NDgsMHgwYSwweDVlLDB4ODAsMHhjNywweGMyLDB4MTksMHhlMCwweDBlLDB4NzgsMHgwMywweGQ2LDB4MDggfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDAsMHhmYiwweDQwLDB4N2UsMHg4MCwweDBlLDB4MzYsMHg4MywweGVkLDB4NDAsMHhkYiwweDYwLDB4M2UgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4ODAsMHgwZiwweGEwLDB4MDMsMHhlZCwweDI4LDB4ZGEsMHgwMCwweDMyLDB4YzQsMHgwYywweGIwLDB4MGIsMHhjYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGUsMHg4MCwweDEzLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMSwweDUzLDB4YzIgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmYsMHhjMCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MGMsMHhmOSwweDAzLDB4N2YsMHgwNCwweGNmLDB4ZDAsMHgzZiwweGU0LDB4MGYsMHhiOCwweDAzLDB4ZmUsMHgwMCwweGZmLDB4OTQgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhmMywweDgwLDB4M2IsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4NDggfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4ZWQsMHg4MCwweDMzLDB4MjQsMHgwNCwweGY4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4ODAsMHhiZiwweDA0LDB4MjEsMHgyOCwweDA4LDB4ZjgsMHgwMiwweDFlLDB4YzAsMHhjZiwweDkwLDB4MjEgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4NGMsMHgwYiwweDVhLDB4NDIsMHhkZSwweDAwLDB4YjcsMHg4MCwweDJjLDB4ZTgsMHgwYiwweDA0LDB4MDIsMHgxYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4YTAsMHgzNSwweDEwLDB4OGYsMHg3MSwweDEzLDB4ZGUsMHhjMCwweDg0LDB4MTAsMHgyMSwweDgwLDB4MGQsMHg3MSwweDAyLDB4MmEgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4NDAsMHg5YywweDA4LDB4YjcsMHgwMCwweDI1LDB4YzggfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4MDgsMHg3MSwweDAyLDB4Y2MsMHg4MCwweDk3LDB4MDAsMHgyOSwweGMwLDB4OGIsMHg3MiwweDA2LDB4ZGMsMHgwOCwweGI1LDB4MDAgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4MmQsMHhjOCwweDBiLDB4NDAsMHgwMiwweDFjLDB4NDAsMHhiZiwweDEwLDB4MjEsMHhjMCwweDBiLDB4NzQsMHgwMiwweGQ0LDB4ODAgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4YTcsMHg0MCwweDIxLDB4NDEsMHgwOCwweDcwLDB4MDIsMHgwNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDA4LDB4MzQsMHg4MiwweGFjLDB4MTEsMHg4MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MDAsMHg0YiwweDE4LDB4MjYsMHhjZiwweDIwLDB4YjEsMHgwNiwweDJjLDB4YzEsMHgwYiwweDMyLDB4MDIsMHgwZSwweDA4LDB4YjMgfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4ODgsMHgyNCwweDMyLDB4MGEsMHgzMCwweDEyLDB4ODQsMHgwOCwweDgwLDB4MDAsMHhhMCwweDM0LDB4MjgsMHgzMCwweDAyLDB4MTggfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHgwMCwweGI2LDB4NDAgfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4MmMsMHhmNCwweDQzLDB4ZmMsMHgwMSwweGRmLDB4MDAsMHgzYSwweDAwLDB4MDMsMHg5MiwweDAzLDB4ZmYsMHg4OCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4MmYsMHhjMCwweDFiLDB4MGUsMHg0YiwweDJlLDB4OTAsMHhmYiwweGUwLDB4MzAsMHgzMiwweDBiLDB4OTgsMHgwMiwweGVjLDB4MDggfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4NmIsMHhjMCwweDMyLDB4YzAsMHgwOCwweGYwLDB4MDksMHgzZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMywweDAwLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4MTAsMHgwZiwweGI0LDB4MDMsMHhlYywweDAwLDB4ZjAsMHgwMCwweDNjLDB4YzAsMHgwZiwweDgwLDB4MGIsMHhhZCwweDIwLDB4ZmIgfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4NDAsMHgzZSwweDEwLDB4MDcsMHhhOCwweDYzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDcyLDB4MDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4MGYsMHhmMCwweDIzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZGMsMHgwMCwweDhmLDB4MDAgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4MzMsMHhjMSwweDBjLDB4YzAsMHgwMywweGJlLDB4MDAsMHhmZiwweDkwLDB4M2IsMHgyOCwweDBlLDB4NTksMHgwMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4N2IsMHgwMCwweDMyLDB4YzQsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4YzEsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4NjIsMHhhMCwweDBmLDB4YjAsMHgwMiwweGVjLDB4MDksMHg4YiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4MzAsMHgwYiwweGE4LDB4MDMsMHhhYywweDAwLDB4ZmEsMHhjMSwweDIyLDB4YzEsMHgwOCwweDhjLDB4MDIsMHgyYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4ODEsMHgyYSwweDAwLDB4MGQsMHg4OCwweGIyLDB4MjIsMHgwMCwweGIzLDB4YzAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDQyLDB4NjEgfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHg2YywweDAwLDB4YmIsMHgwMSwweDIyLDB4NjIgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwNCwweDhiLDB4MDAsMHgyZSwweGEyLDB4NDksMHg4OCwweDI2LDB4ZWMsMHgwMCwweGE4LDB4ODAgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4MjIsMHhjMCwweDI4LDB4ODIsMHgwYSwweGFjLDB4YTAsMHhiYiwweDA4LDB4MjIsMHhjMCwweDA4LDB4ODAsMHgwYSwweDI4LDB4ODQgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4YjksMHhjMCwweGEyLDB4MDAsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDEwLDB4MjAsMHg0OCwweDBhLDB4MzIsMHgwMiwweGNjLDB4ODAsMHg4MywweDAxLDB4MjQgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4MDAsMHgwYiwweDAyLDB4MDYsMHg4YywweDYwLDB4YTAsMHgyMCwweDIwLDB4YzgsMHgwOCwweDAxLDB4MDIsMHgwYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4MDAsMHgyOCwweDAwLDB4MDksMHgyMCwweDAyLDB4MDgsMHg4MCwweGIxLDB4MDAsMHhhMCwweDgwLDB4MGIsMHgzMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHg2YywweDAwLDB4ZmYsMHgwMCwweGEyLDB4MGUgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4MGIsMHhmMSwweDAzLDB4ZmMsMHgwOCwweGNmLDB4MjAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZmMsMHg4NCwweGE4LDB4MjAgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4YjIsMHhjOCwweDhjLDB4ODAsMHgwMywweGFjLDB4NDQsMHhmYiwweDcwLDB4M2EsMHhjMCwweDBlLDB4OTAsMHgwMywweDJjLDB4YTQgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4ZmIsMHgwMCwweGIyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDI2LDB4M2UsMHgwMCwweDBmLDB4YjYsMHgxMywweGVkLDB4MDAsMHhmYiwweDEwLDB4M2YgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4MDAsMHgwZiwweGMxLDB4MTMsMHhhYywweDgwLDB4ZjgsMHgxMiwweDNlLDB4YzYsMHg0ZiwweDQyLDB4NDMsMHhmYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MzEsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHhiZiwweGMwLDB4OGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDQwLDB4ZmMsMHg4MCwweDM2LDB4YzggfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MGYsMHgwOSwweDAzLDB4YzIsMHgwMCwweGY4LDB4YzAsMHgzMywweGNjLDB4MmMsMHg0YywweDAzLDB4NjMsMHg5MCwweGUwLDB4OTAgfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4M2EsMHhjMCwweDBkLDB4NTAsMHgwYiwweDNjLDB4MDQsMHhkZiwweDY0LDB4M2YsMHhjOCwweDhkLDB4ZjEsMHg0MywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4ZDUsMHgwMCwweDMzLDB4YzAsMHg0NSwweGYyLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4ODAsMHgxMCwweGVkLDB4ODAsMHhiYSwweDAyLDB4MjEsMHhkZSwweDhiLDB4ODIsMHgyMiwweGUwLDB4MjAsMHhiMCwweDAwLDB4MmIgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4ZWMsMHgwOSwweDgwLDB4MDIsMHhlMywweDQwLDB4YmEsMHgyMCwweDJmLDB4ZGMsMHgwOCwweDk4LDB4MTIsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4NTEsMHgyYSwweGQwLDB4MDgsMHg3MiwweDIyLDB4MmUsMHgwMCwweDhkLDB4ODAsMHgyMSwweGQwLDB4MDgsMHhiNiwweDgyLDB4MjAgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YjksMHgyOCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4NGEsMHgxMiwweDEyLDB4ODgsMHg4NSwweGE4LDB4MjAsMHgyMCwweGMwLDB4MGIsMHgyMiwweDAyLDB4YzAsMHg5MSwweGExLDB4MDAgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4MjgsMHhjMiwweDBiLDB4MDAsMHgxMiwweDhjLDB4NDAsMHhhMywweDIwLDB4MjAsMHhjNCwweDBiLDB4MzAsMHgwYSwweDBjLDB4MTEgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4OTksMHgwMCwweDIwLDB4YzUsMHgwOSwweDAxLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhjMCwweDBiLDB4ODgsMHgwMiwweGVlLDB4MDEsMHhiOCwweGMxLDB4MmEgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4YzAsMHgxYiwweGE4LDB4MDYsMHhlMiwweDAwLDB4YmIsMHg4MCwweDJlLDB4YzAsMHg4YSwweDgwLDB4MDIsMHhhYywweDAwLDB4YWIgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4MmMsMHgwMCwweDk5LDB4MDAsMHgyNCwweGMwLDB4MDgsMHg4MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YjAsMHg4MCwweDM2LDB4YzAgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4MGUsMHhhOCwweDEzLDB4ZTIsMHg4NSwweGYzLDB4YzAsMHgzMiwweGMwLDB4MGUsMHg5YywweDIzLDB4ZTcsMHgyNCwweGU4LDB4ODIgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4M2EsMHhjMSwweDBmLDB4OTQsMHgwMywweGFjLDB4MDIsMHhlYiwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDJlLDB4MTAgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4NTEsMHgwMCwweGIyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZDAsMHgwMywweGYwLDB4MDQsMHhmZCwweDA0LDB4M2YgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4YzAsMHg0YywweGMwLDB4MDMsMHhmMCwweDEwLDB4ZmMsMHgwMCwweDFmLDB4YzAsMHgwZCwweGQxLDB4MjMsMHgxYywweDAwLDB4YzcgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGQsMHhmMCwweDgzLDB4ZmUsMHg0NCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHg3NCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwMSwweGJhLDB4YzEgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4YTEsMHgwOCwweGZhLDB4MDAsMHgzMCwweGM4LDB4OGYsMHg5NCwweDAzLDB4MjUsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4MDQsMHg4MywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBmLDB4NzEsMHgwYiwweDJjLDB4NDAgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4ZmQsMHgwOCwweDM3LDB4YzAsMHg0ZSwweDkxLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHhiOSwweDAwLDB4MjMsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhjOCwweDAwLDB4MzcgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4ZjAsMHgwYiwweDgwLDB4MDEsMHg2NCwweDAwLDB4NDksMHgwMiwweDMzLDB4YzAsMHg4NCwweDljLDB4MDMsMHgzYywweDAwLDB4YmYgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4MDIsMHgwZiwweGQwLDB4MDgsMHhmNCwweDAyLDB4MGUsMHgxMCwweGJkLDB4ODAsMHgzMywweGUwLDB4MDgsMHg5MCwweDBhLDB4MzIgfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjAsMHgwNiwweDIwLDB4YzAgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweGEwLDB4MDAsMHgyMCwweGYwLDB4MGIsMHgwMCwweDIyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MjgsMHhjMCwweDAyLDB4M2QsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiwweDlhLDB4MzgsMHgwMiwweDA2LDB4MDQgfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4YjEsMHgxMiwweDIwLDB4ZTAsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNiwweDgwLDB4MjEsMHhlMCwweDI4LDB4ZWEsMHgwMiwweDM2LDB4ODAsMHg4NiwweDkwLDB4NjUgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4ZTAsMHgxYiwweGRhLDB4MDYsMHg1ZSwweDAxLDB4OWUsMHg4NCwweDI1LDB4ZWMsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OSwweDRhLDB4MTYsMHg0MCwweGJkLDB4ODAsMHgyNSwweGUwLDB4MDgsMHgzOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZmIsMHgwMCwweDI4LDB4ZTAgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4MDgsMHgxOCwweDAyLDB4OGEsMHg4OCwweGExLDB4YTAsMHgyMCwweGMyLDB4MWYsMHgyYSwweDIzLDB4ZTYsMHhjOCwweGYwLDB4YzAgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4M2EsMHhlZCwweDRlLDB4MzQsMHgwMiwweDhjLDB4MDgsMHhmMywweDgxLDB4MWUsMHhjMCwweDBlLDB4MzAsMHgwMywweDBlLDB4YzAgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4ZjEsMHgwMCwweGIwLDB4Y2EsMHgwZSwweDIxLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDgsMHhmZSwweDEwLDB4M2YsMHhkMiwweDBmLDB4ZTAsMHgwMywweGVjLDB4MDQsMHhmZiwweDE0LDB4N2UgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4YzAsMHgwZiwweGIxLDB4MjMsMHhmYywweDAxLDB4ZWUsMHgwMCwweDNhLDB4YzQsMHgwZCwweGIwLDB4MTMsMHhiYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDgzLDB4ZmMsMHgwYywweGZkLDB4MTAsMHgzYiwweGMwLDB4MmYsMHhlMSwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZjAsMHg4MCwweDMyLDB4ZDAgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MGMsMHhhMCwweDAzLDB4NmMsMHgwMCwweGYzLDB4ODAsMHgzMiwweGRhLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4M2UsMHhjYywweDRjLDB4OTgsMHgxMywweDJjLDB4MTAsMHhmYiwweDA0LDB4M2UsMHhjNCwweDBjLDB4ZjIsMHg4MywweGE2LDB4MTAgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4ZGQsMHgyMCwweDNmLDB4ZDEsMHgwYywweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4ODAsMHhiNywweDAwLDB4MjEsMHhjOCwweDBjLDB4NzAsMHgwMiwweGRjLDB4MDgsMHhiNywweDAwLDB4MjEgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4YzgsMHgwZSwweDcwLDB4MjIsMHhkOCwweDAwLDB4YjcsMHgwMCwweDJjLDB4YzIsMHgwYSwweDcwLDB4MGEsMHgxZiwweDA4LDB4YjcgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4MDAsMHgzOSwweGM4LDB4MGEsMHg3MCwweDAyLDB4MTQsMHgwMCwweGM1LDB4NjksMHgyYywweGNhLDB4MmEsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YmYsMHg4MSwweDY0LDB4ZTEgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4NWEsMHgwMSwweGJmLDB4ODAsMHgyMSwweGVjLDB4NGIsMHg3OCwweDQ2LDB4OWYsMHgwOCwweDM3LDB4ODAgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4MmQsMHhlOCwweDg4LDB4MTgsMHgwMiwweDFlLDB4ODEsMHhiNywweGIwLDB4MmQsMHhlMCwweDA5LDB4N2EsMHgwMiwweDhlLDB4MDAgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4OTUsMHhhMCwweDJkLDB4ZTQsMHgwOCwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDA4LDB4YjYsMHgwMiwweGNjLDB4MDAsMHhiMywweDAxLDB4MjAgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4YzAsMHg4YSwweGIwLDB4ODYsMHhjZiwweDAwLDB4YmIsMHgxMCwweDZjLDB4YzEsMHgwYSwweDM4LDB4MDIsMHgwYywweDAxLDB4YjMgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4MDIsMHgyOCwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDgxLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiNCwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg0MCwweGI2LDB4ODAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MGMsMHhlNCwweDAzLDB4NzgsMHg4MCwweGZlLDB4NzQsMHgzMiwweDgwLDB4MGIsMHhlNiwweDAzLDB4ZjksMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4M2UsMHg4MCwweDBjLDB4ZTAsMHgwMywweDI4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCwweDRkLDB4YTAsMHgwMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4ZGEsMHgwNCwweDNlLDB4ODAsMHgwYywweGU0LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDJlLDB4ODAsMHgyMywweGUwLDB4MDAsMHhmOCwweDAxLDB4M2MgfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDIwLDB4ZjgsMHgyMCwweDNlLDB4MDEsMHg4ZiwweDg5LDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4MGUsMHg4MCwweDAxLDB4ZTAsMHgwMCwweGU4LDB4NDAsMHg3ZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMSwweDdlLDB4NDAgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MmMsMHg5MCwweDBiLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDY4LDB4MDUsMHg5MCwweDEzLDB4YTQsMHgwNCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4MzIsMHg0MSwweDBlLDB4OTEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHg2OCwweDkwLDB4NDMsMHg4MiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHg0MiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4NzAsMHg4OCwweDkwLDB4MDMsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk4LDB4MTIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjYsMHgwMCwweGI5LDB4ODAsMHhhMiwweDQwLDB4MDgsMHg5MCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHgwNCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMSwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4ZTAsMHg0MCwweDBhLDB4OTAsMHg4MiwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmMsMHg0OCwweDBhLDB4OTgsMHgwMiwweDI0LDB4ODAgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MzksMHgyMCwweDIyLDB4NDAsMHgyYSwweDkwLDB4MDIsMHg4NiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgxMiwweDA0LDB4MTAsMHhiMSwweDA0LDB4MmMgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4ZDgsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwMCwweDIwLDB4NDgsMHgwOCwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4MjIsMHgyYywweDUwLDB4OGEsMHgzMiwweDgyLDB4MDUsMHhhMCwweGIxLDB4MmEsMHgyMCwweDRhLDB4MGEsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDUwLDB4YzgsMHg1MiwweDJlLDB4MTQgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4MjEsMHg0MCwweGY4LDB4NTAsMHgzYSwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4MzIsMHgxNCwweDBlLDB4ODAsMHgwMywweGExLDB4NDAsMHhmOCwweDUwLDB4M2MsMHg4MCwweDBlLDB4MDIsMHgwMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4ZmEsMHgyMCwweDMyLDB4MDgsMHgwZSwweDgyLDB4MTMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NTAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4NDQsMHg4ZCwweGQwLDB4MDEsMHhiZCwweDAwLDB4ZmQsMHgwMiwweDNlLDB4NDQsMHgwZiwweGQ0LDB4MDAsMHhlNCwweDQ4LDB4NzkgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4MTQsMHgzZSwweDUwLDB4MGYsMHg5MiwweGEyLDB4ZjQsMHgwOCwweGZkLDB4MDAsMHgzZSwweDRhLDB4MGQsMHhkMiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZjksMHgxMCwweDNhLDB4NmUgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MGMsMHhiMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4NDQsMHgzYiwweDYxLDB4OGUsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGU5LDB4NDAgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4MzIsMHg2NiwweDBmLDB4ZGEsMHgwYiwweGE3LDB4MjgsMHhjOSwweGUwLDB4M2YsMHg2OCwweDBjLDB4ZGEsMHg4MywweGIzLDB4MjAgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4ZWQsMHhhMCwweDMzLDB4NzksMHgwOCwweGQ4LDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDAsMHhiOCwweGEwLDB4MmUsMHgzOCwweDA4LDB4OGEsMHgwMiwweGUyLDB4ODgsMHhlOCwweDgxLDB4MmUgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4MTQsMHgwOSwweDBhLDB4MDMsMHhlMiwweDgwLDB4YjgsMHg4MCwweDMyLDB4MzAsMHgwYiwweDg1LDB4MDIsMHgyMSwweDAxLDB4YTggfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4ZjQsMHgzOCwweDJhLDB4MDgsMHgwZSwweGNhLDB4MjMsMHg5MCwweGM4LDB4NTQsMHgzNCwweDM4LDB4MDgsMHg4YSwweDkyLDB4MGUgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHgwMCwweDI4LDB4NDAgfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4MTksMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgyMCwweGExLDB4YTIgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4NmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweDg0LDB4MDgsMHg4MSwweDIwLDB4MmMsMHg1MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDQgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4YjEsMHgwMCwweDI0LDB4NTgsMHgwOCwweDNjLDB4MDIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHhiOSwweDIwLDB4MmMsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhhOSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHgwMSwweDJhLDB4NDAsMHgwYiwweDk0LDB4MDIsMHgyNCwweDAwLDB4YTkgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDEsMHgxMCwweDUyLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyNiwweDQwLDB4MDAsMHg5OCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg2MSwweDNhLDB4NDAgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4MGQsMHg5MCwweDgzLDB4ZTUsMHgyMCwweGY5LDB4MDEsMHgzYSwweDQwLDB4MmUsMHg5MCwweDAyLDB4ZTQsMHg0MCwweGU5LDB4MDEgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4OWUsMHg0MCwweDBmLDB4OTQsMHgwMywweGE0LDB4MDAsMHg4OSwweDAwLDB4M2UsMHg0MCwweDJkLDB4OTAsMHgwMiwweGU2LDB4MDggfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4YjksMHgwMSwweDM2LDB4NDAsMHgyYywweDkwLDB4MDEsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDJlLDB4OTAsMHgwMywweGU0LDB4ODAsMHhmOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4NDAsMHgwYywweDljLDB4MjMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHgwZiwweDEwLDB4NDMsMHg4NCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ODAsMHg4MCwweGY5LDB4MDAsMHgzYywweDQwLDB4MmYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDEgfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4MGQsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGU4LDB4NDAsMHgzZSwweDA4LDB4MGMsMHg4MCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MzIsMHgwMCwweDhmLDB4ODAsMHgwMywweGEwLDB4MTAsMHhmOCwweDAwLDB4MzIsMHgwNCwweDBlLDB4ODAsMHg4MywweDYwLDB4MDAgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDAxLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgyNCwweGU4LDB4MDAsMHgwYSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxYSwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDE2LDB4ODAsMHgwYiwweGUwLDB4MDMsMHgyOCwweDA4LDB4ZWEgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MDAsMHgzMywweDkwLDB4MDgsMHhlYywweDFiLDB4MjIsMHg4MCwweGM2LDB4MTQsMHgyZiwweDkxLDB4MDgsMHhhMCwweDQzLDB4NGEgfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4MDksMHgzMCwweDEyLDB4Y2MsMHgwNCwweGEzLDB4MDQsMHg2YywweGMwLDB4MDksMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4MmMsMHhjMCwweDEzLDB4MzAsMHgwMiwweDhjLDB4MDAsMHhiMywweDAwLDB4ZTYsMHhiOCwweDBhLDB4MzgsMHgwMiwweDQ0LDB4MDggfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4ODIsMHg1MCwweDJjLDB4ZDIsMHgzYSwweDMwLDB4MDIsMHg4YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4ODAsMHg5NywweGI0LDB4MjEsMHhjNCwweDQ5LDB4NzEsMHgwMiwweGRlLDB4ODEsMHg4NywweDIxLDB4MmQgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4ZDAsMHgwYiwweDdiLDB4MDIsMHgxYywweDAxLDB4YmYsMHgyMCwweDI5LDB4YzQsMHgwYiwweDMwLDB4MDIsMHg1YywweDAwLDB4YTcgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4YTEsMHgyMSwweGMwLDB4NGEsMHg3MCwweDhhLDB4MGMsMHg4MSwweDg0LDB4MDAsMHgyZCwweGQwLDB4MGEsMHg1MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgyLDB4ZGYsMHhhMCwweDM0LDB4ZWMgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4MGQsMHg3OSwweDAyLDB4ZmUsMHg4MCwweGU3LDB4ZTgsMHgyZiwweGEwLDB4MDksMHg3YSwweDAyLDB4OWUsMHgwMCwweGY3LDB4YTIgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4MjUsMHhlYSwweDBiLDB4NDgsMHgwMywweDllLDB4MDQsMHhmZiwweGMwLDB4NjUsMHhlNCwweDBlLDB4NjgsMHgwMywweDVmLDB4MDAgfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4ZTQsMHg4MCwweDNkLDB4ZTAsMHgwZSwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4NDgsMHhlYiwweDA1LDB4M2UsMHhkOSwweDBlLDB4YjIsMHgwMywweGVjLDB4MDAsMHhmYiwweDYwLDB4M2UgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4YzAsMHgwZSwweGIyLDB4ODMsMHhhYywweDAwLDB4ZjMsMHg1MCwweGE2LDB4YzAsMHg0ZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4ODAsMHgzZiwweGQ4LDB4MGQsMHhhMCwweDAzLDB4ZWMsMHgwYSwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGQsMHg5MCwweDAzLDB4NDIgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4YmIsMHg5MCwweDNlLDB4ZTAgfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgzOSwweDAzLDB4OWUsMHgyMCwweGNmLDB4ODIsMHg3NywweGUwLDB4MWYsMHhmOCwweDAzLDB4ZWUsMHgwMCwweGZmLDB4YzAgfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4M2YsMHhlNSwweDBkLDB4ZjksMHgwMywweGVlLDB4MDAsMHhmYiwweDkwLDB4MzcsMHhhMCwweDA4LDB4ZjgsMHgwZiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4Y2MsMHg5NCwweDMzLDB4NjAsMHgwZCwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNywweDkwLDB4MmYsMHhlNCwweDA4LDB4N2EsMHgwMiwweDFlLDB4MDAsMHg4ZiwweDEyLDB4MjUgfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4ZDgsMHgwYiwweGJiLDB4MDIsMHgxZSwweDAwLDB4YjcsMHgwMCwweDJkLDB4ZTgsMHgwOCwweDdkLDB4ODIsMHhkZSwweDQwLDB4YmIgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4YTAsMHgyNywweDkwLDB4MGEsMHg3NiwweDAyLDB4NWMsMHg4MCwweDg1LDB4MDAsMHgzNywweGM0LDB4NGQsMHg3MSwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YjcsMHgyMCwweDJkLDB4YzAgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4MjksMHhmMiwweDIyLDB4YmMsMHg4MCwweDk3LDB4MDAsMHgyNSwweDQxLDB4MGIsMHg3MCwweDEyLDB4OWMsMHgwMCwweGI3LDB4MDggfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MjksMHhjMCwweDA4LDB4NDIsMHgxMiwweGRjLDB4NDAsMHhiNywweDAwLDB4MjksMHhjMCwweDA5LDB4NjAsMHgyMiwweGRjLDB4MTAgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4ODAsMHgwMCwweDIxLDB4NDAsMHgwOSwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweGMwLDB4MmUsMHhjMCwweDA4LDB4MzQsMHg4MiwweDJkLDB4MDAsMHg5MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHgwZiwweDgwLDB4MTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDM0LDB4YTIsMHhlYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MGIsMHgwMCwweDAyLDB4Y2MsMHgwMCwweDgxLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzMCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHhlMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4MGMsMHhmNCwweDgzLDB4YmQsMHgwMCwweGRmLDB4MDgsMHgzNiwweDQwLDB4MGIsMHg3NSwweDQyLDB4ZmMsMHgyMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4M2IsMHhjMCwweDJjLDB4M2MsMHgwMywweGZjLDB4MDAsMHhiZiwweDAwLDB4YmUsMHhjMCwweDhkLDB4OTAsMHgwYiwweGFjLDB4MDIgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4Y2EsMHgwMCwweDIyLDB4ODAsMHgwZCwweGIwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhlYiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4MTAsMHgwZiwweGIwLDB4MjMsMHhhYywweDAxLDB4ZmIsMHgwMCwweDNlLDB4YzAsMHgzYywweDg0LDB4MDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGUsMHg5NCwweDBiLDB4MmMsMHgwMCwweGY5LDB4NDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAyLDB4Y2YsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4MGQsMHhmMCwweDBiLDB4M2MsMHgyMCwweGNmLDB4MDAsMHgzZCwweDAwLDB4MGUsMHhmMCwweDA3LDB4OWMsMHgwMSwweGNmLDB4MDIgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YzQsMHgwMywweDNjLDB4MDAsMHhjZiwweDAwLDB4MGYsMHhjMCwweDBlLDB4NDQsMHgwMywweDFmLDB4MDIgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4Y2MsMHgwMCwweDNmLDB4ODAsMHgyYywweDcwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDAyLDB4MmUsMHhjMCwweDBkLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAwLDB4MDYgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4MjAsMHgwOCwweGIwLDB4MDMsMHhmYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwZiwweDgwLDB4MDYsMHhiYywweDAwLDB4YWIgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4MDQsMHgzYSwweGYwLDB4MGMsMHg4OCwweDAyLDB4MmMsMHgwMCwweGM5LDB4ODAsMHgzYSwweDkyLDB4MDgsMHg5MCwweDBhLDB4YTAgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweDYwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4NmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDJjLDB4MDAsMHg5YiwweDAwLDB4NGMsMHhlMCwweDBhLDB4OTAsMHgyMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4OGEsMHhjMiwweDJjLDB4NDAsMHgwOCwweGIwLDB4NDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDBkLDB4MmMsMHhjNiwweDA5LDB4MzEsMHgwMiwweDBkLDB4ODEsMHhhMywweDExLDB4MjQgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4MDAsMHg4YSwweGIxLDB4ZTIsMHg0YywweDgwLDB4YTMsMHgwMCwweDJjLDB4Y2MsMHgwYiwweDAyLDB4MDIsMHg4YywweDgwLDB4YTMgfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4NDgsMHgwOCwweGMwLDB4MDgsMHgwMCwweDBhLDB4MGQsMHgwMCwweDgxLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2IsMHgyMCwweDJmLDB4YzggfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4OGQsMHhmNiwweDEzLDB4MmQsMHhiMCwweDhmLDB4MDAsMHgzNiwweDQwLDB4MGYsMHhmMCwweDAyLDB4YWQsMHhhOCwweDhmLDB4MTAgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4M2YsMHhjYSwweDBiLDB4ODAsMHg5MiwweDJjLDB4MTAsMHhkYiwweDQwLDB4M2YsMHhjMCwweDBlLDB4MDAsMHgwMywweDJkLDB4MDQgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4YzgsMHgwMiwweDNlLDB4NDAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjOCwweDBlLDB4ZjEsMHgwMywweGVjLDB4ODQsMHhmZiwweDIwLDB4MzcgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4MDAsMHgwZCwweGIyLDB4MDMsMHhiYywweGEwLDB4ZmYsMHgwMCwweDNlLDB4YzksMHgwZSwweDgwLDB4MDMsMHhmZCwweDExLDB4ZmYgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGUsMHhjMCwweDAzLDB4ZmMsMHg4MCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDkwLDB4Y2MsMHg5MiwweDNiLDB4YzggfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4MGQsMHhmMCwweDgzLDB4NzMsMHgxMCwweGZmLDB4MjgsMHgzNywweGNhLDB4NGYsMHhiMiwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MjAgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4YjMsMHhjNCwweDBkLDB4NjgsMHg0MywweGZlLDB4MTQsMHhjYiwweDg0LDB4MzMsMHhlMCwweDBkLDB4NzgsMHgwMywweGJlLDB4MDAgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4ZmYsMHg4MCwweDM3LDB4YTAsMHgwYywweGYzLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4ODAsMHgwMCwweGZjLDB4NDgsMHg4MiwweDIxLDB4MDMsMHhmNCwweDBmLDB4ZjYsMHg0MiwweDIwLDB4MDQsMHg4YSwweDYwLDB4MmIgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4ZGEsMHgwYiwweGY5LDB4MDIsMHgzZiwweDA0LDB4OGYsMHg1MiwweDIzLDB4ZDUsMHg0ZCwweDg4LDB4MDIsMHhhZSwweDAwLDB4ZGIgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwNCwweGI4LDB4MDAsMHgyMiwweDYwLDB4MGQsMHg3NCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweGEwLDB4ODAsMHgwMSwweDA4LDB4YzAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4NGIsMHgzMCwweDgyLDB4NDIsMHg5MCwweGEzLDB4MDgsMHgyYywweGM4LDB4MWEsMHgzMCwweDIyLDB4OGQsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4MjQsMHhjOCwweDA5LDB4YTAsMHgxMiwweDBjLDB4MDQsMHhhYiwweDAwLDB4NjIsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4YjMsMHgwMCwweDI4LDB4ODAsMHgwOCwweDM2LDB4MDYsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDBhLDB4MzAsMHgxYSwweDAwLDB4MTEsMHg4MiwweDAwLDB4MGEgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHgwOSwweDkxLDB4MDIsMHhlYywweDIwLDB4YmIgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4MjgsMHg2NiwweGMwLDB4MDgsMHg4MCwweDAyLDB4NjAsMHgwMCwweGI4LDB4MDAsMHgyYSwweDQwLDB4ODEsMHhiMCwweDA2LDB4ZjggfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4YzgsMHgwNCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4ODksMHhiMCwweDAzLDB4NjgsMHgwMCwweGU5LDB4YzEsMHgxZSwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4MDAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4MzYsMHhjMSwweDBkLDB4MDAsMHgyMywweDBlLDB4MDAsMHhlYiwweDgwLDB4MzIsMHhjOCwweGNkLDB4MzAsMHgzMiwweGVjLDB4MDggfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4ODAsMHgwYywweGIwLDB4MDYsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHg3YywweDAwLDB4M2YsMHhjMCwweDBiLDB4YjAsMHg0MywweGZkLDB4MDAsMHhiZSwweGM0LDB4MzcgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4YzAsMHgxZiwweGYwLDB4MDMsMHg1YywweDAwLDB4ZmYsMHgwMSwweDNiLDB4YzAsMHgwZSwweGM4LDB4MDMsMHhiZiwweDIwLDB4ZGYgfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4MDAsMHgzZiwweGQwLDB4MGYsMHhjMCwweDEzLDB4YjAsMHgwMCwweDdjLDB4MDAsMHhiNywweDQwLDB4MGYsMHhmMCwweDFiLDB4YjAgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDBjLDB4ZDgsMHg0MSwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MGUsMHhiMCwweDA3LDB4YTgsMHgwMSwweDY5LDB4NDAsMHhiMiwweGMwLDB4OGQsMHhiMCwweGEzLDB4ZWMsMHgwOCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4MzIsMHhjMCwweDBmLDB4ODAsMHgwMywweGVkLDB4MDAsMHhmYiwweDQ4LDB4M2EsMHhjMCwweDBkLDB4YjAsMHg4MywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4ODAsMHgwZiwweDcwLDB4MjMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhjMCwweDA4LDB4ZjAsMHgwNiwweDJjLDB4MTAsMHg4OCwweDUxLDB4MzcgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MDcsMHg3ZCwweDYwLDB4OGYsMHgwMiwweDM3LDB4YzAsMHgwYiwweDhjLDB4MDAsMHgyZCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4MDAsMHgzOCwweGMwLDB4MDgsMHg4MCwweDgyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDUwLDB4MGIsMHhmMCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4OTgsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4ODQsMHgwNCwweGEzLDB4MDAsMHgwMCwweGMwLDB4NjgsMHgzOSwweDA2LDB4MGMsMHgxMCwweDkzLDB4MjAgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MjIsMHhjMCwweDliLDB4MDEsMHhhMCwweDhmLDB4MTQsMHgzMywweDE0LDB4MjgsMHhjMCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDEgfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4OTMsMHg0MCwweDJjLDB4ODgsMHgwYiwweDMwLDB4MDIsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4NjAsMHgwMSwweDFlLDB4MTAsMHg4NywweDgwLDB4MjksMHhlMCwweDA4LDB4NzgsMHgwMiwweDNlLDB4MDAsMHg4MywweDkwLDB4MjQgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4MTAsMHhjZSwweDA0LDB4MDcsMHg5MSwweDI1LDB4ZTAsMHg4MywweGM5LDB4MDIsMHgxZSwweDA0LDB4YjcgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4ODQsMHgyYiwweGE0LDB4MDgsMHg0OCwweDQyLDB4MTIsMHhjYywweGI0LDB4ODAsMHgyZCwweDY0LDB4MGIsMHg3OCwweDAyLDB4MTkgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgyYywweDAwLDB4ZDAsMHgxMCwweDI4LDB4YzggfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4MGUsMHgzYiwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgzMCwweGM4LDB4MGMsMHgzOCwweDYyLDB4OGMsMHgwMCwweDUzLDB4MDAgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4MzAsMHhjNCwweDFmLDB4MDAsMHgyMywweDhjLDB4M2MsMHhmMywweDgwLDB4MTgsMHhjMCwweDBkLDB4MzAsMHgwMywweDBlLDB4ODAgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4ZDMsMHgxMCwweDNjLDB4ODAsMHgwZiwweDMwLDB4MDMsMHg5MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhmOSwweDEyLDB4YjQsMHhjMCwweDA3LDB4YjAsMHgwMywweGNjLDB4MDAsMHg0YSwweDAwLDB4NzcgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4YzAsMHgwZSwweDcxLDB4NDMsMHg2YywweDAwLDB4ZjMsMHgwMCwweDNmLDB4ZDAsMHgxZiwweGQwLDB4NTMsMHhhYywweDY4LDB4ZmIgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4MTgsMHgzZCwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHg1MCwweGZjLDB4MDQsMHgzZiwweDQwLDB4MGYsMHhmNCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDQwLDB4ZjgsMHgwNCwweDNlLDB4ZDIgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MGYsMHhiMywweDEzLDB4ZTAsMHgxMCwweGY5LDB4MDAsMHhiMiwweGNjLDB4MGUsMHhiYSwweDAzLDB4NmQsMHg4MCwweGRiLDB4MDIgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4MzIsMHhkYywweDRmLDB4MDAsMHgwMywweDZjLDB4MDQsMHhmMywweDAyLDB4MzYsMHg0MCwweDBlLDB4YjAsMHgwMywweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4NGIsMHgwMCwweDNjLDB4ODAsMHgwYywweGYxLDB4MDMsMHg2MiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhjOSwweDBiLDB4NzAsMHg4MiwweGRjLDB4MDAsMHhiYywweDA0LDB4MjEgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4YzQsMHg0YiwweDM3LDB4MDIsMHgwYywweGEwLDB4OGYsMHg3NCwweDIxLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgxYywweDgxLDB4YjcgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4MjAsMHgyYiwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZDAsMHgwMiwweDg0LDB4MDAsMHgyZCwweDQwLDB4MGEsMHhmMiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDgwLDB4YjQsMHhjMCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZDIsMHgwMCwweGI1LDB4ODgsMHgyMSwweGU4LDB4MGEsMHg3OCwweDAyLDB4ZGUsMHg0MCwweDk3LDB4MDAgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4MjEsMHhlOCwweDBiLDB4Y2MsMHg0NiwweDVlLDB4MjgsMHhiNywweGM0LDB4MjEsMHhmMCwweDBhLDB4NzgsMHgwMiwweGZlLDB4MDggfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4OTcsMHg4NCwweDJkLDB4YTAsMHgwOCwweDc4LDB4MDIsMHg3MCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHhiMCwweGMwLDB4MmMsMHhjMCwweDliLDB4YjAsMHgwMiwweGNjLDB4MjAsMHhiMywweDYwLDB4MjIgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMsMHgwMSwweDIwLDB4YzAsMHgxYiwweDA2LDB4MTYsMHg0ZiwweDAwLDB4YjMgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4YTAsMHgyYSwweGYwLDB4MDgsMHgwMCwweDAyLDB4ZTAsMHgwMCwweDkwLDB4MDAsMHgyYywweDQwLDB4MGEsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDEwLDB4ZmUsMHhjMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4ZjksMHgwOCwweGZlLDB4NDAsMHgyMiwweDgwLDB4MGUsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGQyLDB4MDAgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4MzIsMHg4MCwweDhmLDB4ZTAsMHgwMywweDU4LDB4MDAsMHhmNiwweDAwLDB4MzMsMHhiMCwweDBlLDB4MjAsMHgwMiwweGU4LDB4MGMgfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4ZDIsMHgwMiwweDNjLDB4ODAsMHgwYywweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmMCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDAsMHg1NywweDgwLDB4MjMsMHgwMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDMwLDB4MzggfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4MDAsMHgzYSwweDA4LDB4MGYsMHhjNCwweDAzLDB4ZjAsMHgwMCwweGVjLDB4MDAsMHgzZiwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMSwweDNjLDB4NDggfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4NGMsMHg5MCwweDBiLDB4MjQsMHgwMSwweGM5LDB4YzAsMHgzMiwweDQwLDB4YWMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4MzAsMHg0MCwweDBkLDB4OWEsMHgwMywweDIyLDB4ODQsMHhjOCwweDE0LDB4MzIsMHg0MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4YzksMHgwMCwweDgyLDB4NjgsMHgyYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgyMiwweDI0LDB4MDAsMHg4OSwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNywweDQwLDB4ODksMHg4MCwweDM2LDB4NDEsMHg4ZCwweDE4LDB4MDIsMHhhMCwweDI0LDB4YTggfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4MDQsMHg2MiwweDQwLDB4MDgsMHg5NCwweDgzLDB4MjQsMHgwMCwweDg5LDB4MDEsMHgyMiwweDcyLDB4MDgsMHg5MCwweDBiLDB4MjAgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4MjgsMHg5MCwweDEyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgyMCwweDk5LDB4MDAgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4MjIsMHg0MCwweDE4LDB4OTAsMHgwNiwweDIwLDB4MDEsMHg4OCwweDA4LDB4NjIsMHg0MCwweDBhLDB4OTAsMHgwMiwweDM0LDB4MTAgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4OGQsMHg4MSwweDIzLDB4NDEsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDA0LDB4MmMsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDIsMHg4MywweDIwLDB4MjAgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgwLDB4ODMsMHg2MCwweDI0LDB4NDgsMHgxOSwweDM0LDB4NjIsMHhhNSwweDA0LDB4YTEgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4MDIsMHg2MCwweDQwLDB4MDgsMHhkMCwweDAyLDB4NTQsMHgwMCwweDhkLDB4MDAsMHgyOSwweDQwLDB4MDgsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MGMsMHg4NSwweDAyLDB4MjEsMHg0NCwweDg4LDB4NTAsMHgzMiwweDE0LDB4NGMsMHg4MCwweDQzLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4MjIsMHgxNCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjOCwweDAwLDB4YTIsMHgwMCwweDBlLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4YzgsMHgwMCwweDMzLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDQsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MTAsMHhmZiwweDEwLDB4M2UgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwYiwweGYwLDB4MTMsMHhlNSwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4NDAsMHgzZiwweDRhLDB4MmYsMHg5MiwweDhhLDB4YTQsMHhhMiwweGY5LDB4MjgsMHgzNiwweDQwLDB4MGYsMHg5MiwweDgzLDB4YTYgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhlNiwweGMwLDB4YzEsMHgwMCwweDNmLDB4NjkgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4MGMsMHg5YSwweDQzLDB4NmMsMHgwMCwweGZkLDB4YTAsMHgzZSwweDc4LDB4MmMsMHhkOCwweDA3LDB4ZDYsMHgwMiwweGQ1LDB4OTYgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4MzIsMHg3OCwweDBkLDB4OTAsMHgwMywweDI3LDB4MDAsMHhmZCwweGEwLDB4MzUsMHg1MCwweDA2LDB4ZDQsMHgwMywweGU1LDB4MDAgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4ZmQsMHg0MCwweGIzLDB4NDAsMHgwZiwweDk4LDB4YTMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4MzgsMHgxMCwweGUzLDB4YzIsMHg4OCwweDg4LDB4MmUsMHgxNCwweGE4LDB4OGEsMHhjMiwweDIyLDB4YTAsMHhiOCwweGMwLDB4MmMgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4MjQsMHg0OCwweDg0LDB4MDIsMHhlMSwweDAwLDB4OTgsMHhjNCwweDIwLDB4M2MsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4YjggfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4MDQsMHgyMiwweDIwLDB4MDgsMHg4OCwweDAzLDB4YTIsMHgwMCwweGI4LDB4YTAsMHgyMiwweDAwLDB4MGIsMHg4OCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4YTEsMHgyMCwweDZjLDB4NDAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDQsMHgwNCwweGExLDB4NjgsMHgyYywweDQ4LDB4MDgsMHgxNCwweDAyLDB4YzUsMHgwMCwweDgxLDB4NjAgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4MjAsMHg0OCwweDE5LDB4OTAsMHgwMiwweDg1LDB4ODEsMHhiMSwweDQwLDB4MjQsMHg2OCwweDBhLDB4MTIsMHg0MiwweGM0LDB4ODAgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4YjksMHgyMCwweDIwLDB4NDAsMHg4YiwweDEwLDB4ODIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MTAsMHhhOSwweDAwLDB4NmUsMHhjMCwweDBhLDB4MTAsMHgwMiwweDI0LDB4MTQsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MTIsMHhlNCwweDAwLDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MDYsMHhhMCwweDYwLDB4YjkgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4MDksMHgyMiwweDYwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgwMiwweDQwLDB4MGIsMHgxMCwweDA2LDB4MDYgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZTksMHg4MCwweDNlLDB4NDEgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NjQsMHgwMCwweGU5LDB4YzAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4MjIsMHg0MSwweDBkLDB4ODAsMHgwMiwweGEzLDB4MDQsMHhmMSwweDQwLDB4MzYsMHg0MCwweDBlLDB4OTAsMHgwMiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4ZjEsMHgwMCwweDEyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhkOSwweDIyLDB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhiOSwweGM0LDB4M2MgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMiwweGFlLDB4NDAsMHgwZiwweDgwLDB4NGIsMHg2MiwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4MjAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDIsMHg3ZSwweDQxLDB4MGYsMHg5MCwweDEzLDB4Y2EgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDM4LDB4MDAgfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4MGYsMHg4MCwweDIwLDB4ZTAsMHgwMCwweGE4LDB4MjAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDA3LDB4ZTAsMHg4MCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4MzgsMHgwMCwweDBkLDB4ODAsMHg4MywweDIxLDB4MTAsMHhmOCwweDYwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHhiMywweDIwLDB4MDggfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHg4YSwweDAwLDB4MzMsMHg5MCwweDQzLDB4YTAsMHgyMiwweDI4LDB4MDAsMHg4ZSwweDgwLDB4NzYgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4ODAsMHgwOCwweGUxLDB4MDMsMHgxOSwweDAwLDB4ODYsMHg4MCwweDIyLDB4ODAsMHgwZCwweDYwLDB4MDEsMHg3OCwweDAwLDB4YmUgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4MDAsMHgzNiwweDgwLDB4MGMsMHhlNCwweDAyLDB4YTgsMHgxMCwweGJlLDB4YTAsMHgyZiwweDgwLDB4MGQsMHhhMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTEsMHg0YywweDA0LDB4MDMsMHgwNCwweDJjLDB4ZDQgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4NGMsMHgwMSwweGEzLDB4YzQsMHgyMCwweGMwLDB4MjgsMHgzNSwweDAyLDB4ODYsMHgwMCwweDgzLDB4ODAgfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4MjgsMHhjMCwweDA4LDB4MzgsMHgwNiwweDBlLDB4OTQsMHgzMCwweGMwLDB4YTIsMHhjMCwweDBiLDB4M2MsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4YjMsMHg4MCwweDJjLDB4NDgsMHgwOCwweDMwLDB4MDIsMHg4YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MDQsMHg4ZiwweDgwLDB4MjEsMHhjMSwweDFiLDB4NzIsMHg0MiwweDFlLDB4YzAsMHg4MywweDg4LDB4MjEgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxOCwweDI4LDB4MDYsMHgxMCwweDIxLDB4ODYsMHgzOCwweDIxLDB4YzAsMHgxOSwweGY3LDB4MDIsMHg1ZCwweGMwLDB4YjQgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4NDEsMHgyNywweGQwLDB4MDgsMHg3OCwweGM2LDB4OWMsMHgwMCwweGI3LDB4MDAsMHgyZiwweDYwLDB4MDksMHg3MiwweDAyLDB4MjggfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAyLDB4YzcsMHg4MCwweDJkLDB4YTAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4MGYsMHgzZSwweDAzLDB4ZmUsMHg4MCwweGE3LDB4ODAsMHhhMSwweGUwLDB4MGMsMHg3OCwweDAyLDB4OTQsMHgwMCwweDg1LDB4YTAgfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4MzksMHhlNCwweDBjLDB4NzgsMHgxMywweDFlLDB4OTAsMHhiNSwweDg0LDB4MzEsMHhlMCwweDBmLDB4ZjgsMHg4NywweDFlLDB4MDQgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4NjAsMHgwYywweDNiLDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ZTQsMHhmYiwweDU0LDB4M2UsMHg4MCwweDBmLDB4YjQsMHgyMywweGVjLDB4MzIsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4ZDgsMHg0ZiwweGEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4YzAsMHgwZiwweDMwLDB4MzMsMHhlYywweDA0LDB4ZjIgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MDEsMHgzZSwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZmUsMHgxMCwweGZiLDB4NjgsMHgzYywweDQxLDB4MGYsMHhmMCwweDQzLDB4ODIgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHhlNCwweDNmLDB4ZTQgfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MGMsMHhmYywweDAzLDB4N2UsMHg4MCwweGNmLDB4ODEsMHgzMywweGZhLDB4MGYsMHhmOCwweDAzLDB4ZjYsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4M2YsMHhlMiwweDBmLDB4NzksMHgwMywweDNlLDB4NDAsMHhmNCwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZTgsMHgwMywweDNlLDB4MDAgfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4ODMsMHg1MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhkNywweGEwLDB4MmQsMHhjNCwweDA4LDB4YmEsMHgwMiwweDNjLDB4YTAsMHg4NywweDIwLDB4MjEgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4YzAsMHgwZiwweDUyLDB4MDMsMHhkNCwweDAwLDB4YjYsMHgxMCwweDJkLDB4YzAsMHg4YiwweDczLDB4MDMsMHg1YywweDQwLDB4YjQgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4YjAsMHgyYiwweDQ4LDB4MjgsMHg0MSwweDAyLDB4MGMsMHgwMCwweGJmLDB4MTgsMHgzNSwweDQ2LDB4MjgsMHg3MiwweDQyLDB4MmEgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDAsMHg5YywweDAwLDB4ODcsMHg0MSwweDJkLDB4NDQgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4MGEsMHg3MywweDAyLDB4OWMsMHhjNCwweDgxLDB4MDAsMHg2ZCwweGM4LDB4OGIsMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAgfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4MmQsMHhjMCwweDBiLDB4ZjAsMHg0NiwweDljLDB4NTUsMHhiNCwweDIwLDB4MjUsMHg0MCwweDE4LDB4NjAsMHg4MiwweDFjLDB4MDAgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4YjcsMHgwMCwweDIzLDB4NDAsMHgwOCwweDcwLDB4NDYsMHg0NCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg5MywweDAwLDB4MmMsMHg0MCwweDBiLDB4YjAsMHgwMiwweDBjLDB4ODIsMHg4MCwweGMwLDB4MjAgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4YzAsMHgwYSwweDEwLDB4MDIsMHgwNCwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgxYiwweDMwLDB4MDAsMHhjZCwweDAxLDB4YjAgfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4NDAsMHhhYywweDc4LDB4ODgsMHg4YywweDA2LDB4MGQsMHg2MCwweGIzLDB4NGMsMHgyNCwweDEyLDB4MDgsMHgzMCwweDBhLDB4MTggfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhiYywweDAwLDB4YzcsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4MGUsMHhmMCwweDJhLDB4YmYsMHgwMCwweGM4LDB4YzgsMHhiZiwweGMwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwNCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4M2YsMHhjMCwweDBmLDB4YjIsMHgwYSwweGFjLDB4MDAsMHhmOCwweDgwLDB4MzQsMHg0OSwweDBjLDB4YjksMHgwYiwweDNmLDB4MDAgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4ZmIsMHhjMCwweDMwLDB4ZjAsMHgwYywweGYwLDB4MDMsMHg2ZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhmYiwweDgwLDB4M2UsMHg0MSwweDJjLDB4YjAsMHgxMywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4YzEsMHgwZiwweGEwLDB4MDMsMHhlOCwweDAwLDB4ZmEsMHg0MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg2ZCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4MTAsMHgzYSwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZlLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTEgfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhlYywweDBjLDB4ZGYsMHgwMCwweDNiLDB4ODAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4MGYsMHhmMCwweDBiLDB4M2MsMHgwOCwweGU3LDB4MDgsMHgzMywweGMwLDB4MGIsMHhkMCwweDIzLDB4NzQsMHgwMCwweDU0LDB4MDAgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4MzMsMHhjMCwweDBmLDB4ZjAsMHg4MywweGJlLDB4MjAsMHhmZCwweDBjLDB4M2IsMHg2MCwweDJjLDB4ZTAsMHgwMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4Y2YsMHgxMiwweDMzLDB4NTAsMHgwYywweDMwLDB4MDMsMHg4MCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDQsMHhhYiwweDAwLDB4MjIsMHhhMCwweDBiLDB4YjAsMHgwNiwweDBjLDB4MDAsMHhhYiwweDQwLDB4MzYgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4YzAsMHgwYiwweGE4LDB4MDIsMHg2NiwweDAwLDB4YjgsMHgwMCwweDM2LDB4YzEsMHgwYiwweDM0LDB4NDMsMHhlZSwweDAwLDB4YjIgfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4MDAsMHgyMiwweDYwLDB4MDgsMHhiNCwweDgyLDB4OGMsMHgwNCwweDhhLDB4MjEsMHgyMiwweDQwLDB4MDgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OWIsMHgwMCwweDJhLDB4MjAgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweDg4LDB4YzUsMHgyMiwweGMwLDB4MGIsMHg4OCwweDgyLDB4ZTYsMHgwMSwweGJiLDB4MDggfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4MjIsMHhjMCwweDBhLDB4YjIsMHg4MiwweGFjLDB4NjAsMHhiOCwweDAyLDB4NGEsMHhjNCwweDA4LDB4YjEsMHgwMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4ODMsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjAsMHgwMSwweDBiLDB4MzIsMHgwNiwweDJjLDB4MDAsMHhhMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4YzAsMHgwOSwweDA0LDB4MjIsMHhjNCwweDAwLDB4YjIsMHgwMCwweDI0LDB4YzEsMHg4YiwweGIwLDB4MDIsMHg0YywweDAwLDB4YjAgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4MDAsMHg2MiwweGMwLDB4NDgsMHgzMCwweDAyLDB4YWMsMHgxMCwweDgyLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDA4LDB4ZGYsMHgyYSwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4MGYsMHhmNSwweDEyLDB4M2MsMHgxMCwweGM5LDB4MDAsMHhhMywweGMwLDB4MGYsMHg4MCwweDUzLDB4ZWMsMHgwMSwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4MzMsMHhjMCwweDBlLDB4YjAsMHgwMywweGFjLDB4MDQsMHhmOCwweDcwLDB4M2EsMHhjMCwweDBjLDB4NjAsMHg0MywweDJjLDB4NDIgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4Y2QsMHgwMCwweGIyLDB4NDAsMHgyYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYiwweDAxLDB4M2QsMHgwMCwweDBmLDB4YjQsMHgxNywweGZjLDB4MDAsMHgzYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4YzAsMHg0ZiwweGMwLDB4MDMsMHg3NCwweDA4LDB4ZmUsMHgwMCwweDNmLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDA4LDB4ZjggfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MzAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweDkwLDB4ZWYsMHgwMCwweDNmLDB4ZDggfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4MGUsMHhmMywweDAzLDB4MmMsMHgwMSwweGQ0LDB4ODAsMHgzNywweGNjLDB4MGQsMHg4OSwweDQzLDB4MTIsMHg1MCwweGVjLDB4MmMgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MzIsMHgwNSwweDBkLDB4YjAsMHg1MywweDNjLDB4ZDQsMHhjNSwweDk0LDB4N2YsMHhhMCwweDhmLDB4ZjAsMHg0MywweDMwLDB4MDAgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4ZGMsMHgwMCwweDMzLDB4MDAsMHgwYywweDQ4LDB4MDcsMHhmMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4ODAsMHgxMCwweGU2LDB4NDAsMHg4YiwweDcwLDB4MmYsMHhkYywweDA4LDB4ZjcsMHgwMiwweDBjLDB4ODAsMHg4YSwweDIwLDB4MDAgfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4YzgsMHg0YSwweDIyLDB4MDIsMHhhMCwweDAwLDB4OGEsMHg0OCwweDIyLDB4NTgsMHg4OCwweGZkLDB4MDIsMHhhZCwweDAyLDB4YTkgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4MjAsMHgxZSwweGEwLDB4MDMsMHg4MCwweDAyLDB4MmMsMHgwNCwweDhiLDB4MDAsMHgyMiwweGMwLDB4NGMsMHg4OCwweDA3LDB4NjAgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDAwLDB4MjMsMHgyYywweDJjLDB4YzkgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4MDIsMHgzMCwweDAyLDB4MGMsMHg2OCwweGEwLDB4MjgsMHgyYywweGQwLDB4MDksMHgxMiwweDAyLDB4ODQsMHgwMCwweGEwLDB4MjEgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MjAsMHgxOCwweDE5LDB4MzAsMHgyMiwweDgwLDB4ZDAsMHg4MywweDA2LDB4MGMsMHhhMCwweDBiLDB4YjAsMHgwNiwweDAwLDB4MTIgfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4YTAsMHgwMCwweDIwLDB4MDAsMHgyOSwweDAwLDB4MGUsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4YzAsMHgxMSwweGE4LDB4MzAsMHg4YiwweDAwLDB4MmUsMHhjMCwweDRhLDB4MzAsMHgwYSwweDJjLDB4MTQsMHhhMCwweDgwLDB4MGEgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4YzEsMHgwOCwweDg4LDB4ODYsMHg4NywweDAwLDB4ODMsMHgwMCwweDIyLDB4NDksMHgwOCwweGIwLDB4MDYsMHhhMCwweDQwLDB4YWIgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4MjAsMHgyMiwweDIwLDB4MGIsMHg4MCwweDBhLDB4MGMsMHgwNCwweGFiLDB4MDIsMHgyMiwweGMwLDB4ODgsMHg4MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZiwweDQwLDB4ZWIsMHgwNiwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiwweGY5LDB4YTAsMHgzZSwweGMwLDB4MGQsMHg4YywweDAzLDB4YWEsMHgxMCwweGU5LDB4NDAgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4YjIsMHg0OCwweDBkLDB4YjAsMHg0MywweGFkLDB4MDAsMHhjYiwweDg2LDB4MmUsMHgyMCwweDBmLDB4MzAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4ZjksMHg4MCwweDMyLDB4YzAsMHgwZCwweDBjLDB4YzIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhkZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4YzAsMHgwZiwweGUwLDB4MDMsMHhmMCwweDAwLDB4ZmUsMHgyMCwweDNmLDB4NDAsMHgwZiwweDcwLDB4MDMsMHhmZSwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4ODIsMHg3ZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjksMHgwNCwweGRlLDB4MjAsMHhiZCwweDAwLDB4MGYsMHhkOSwweDBiLDB4N2MgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2IsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MmMsMHhiMCwweDBiLDB4MmMsMHgwMCwweGU4LDB4NDAsMHgzZSwweGMwLDB4MGYsMHg5NCwweDA3LDB4MjksMHgwMCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjAsMHgwMywweDAxLDB4MDIsMHhjYiwweDAwLDB4MzIsMHgwNCwweDRmLDB4ZjAsMHg0MywweDM0LDB4YzAgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4YjUsMHgxYSwweDNmLDB4YzEsMHgwZiwweDgwLDB4OTMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDAsMHg4ZiwweDAwLDB4MmYsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDNjLDB4MDQsMHhkOCwweDAwLDB4MmIgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4YzAsMHgwYywweDgwLDB4NDUsMHg2MCwweDAwLDB4N2IsMHg1OCwweDIyLDB4YzgsMHgwYiwweGZhLDB4MDEsMHg2MSwweDQwLDB4OGIgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MDAsMHgzMiwweDA0LDB4NGIsMHhjZSwweDAyLDB4MjgsMHgwMCwweDNhLDB4NDAsMHgyZSwweDA3LDB4MGIsMHg5MCwweDAyLDB4MjYgfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMSwweDRjLDB4YzAgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ZWMsMHgxMCwweDkwLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4MCwweDA2LDB4YzAsMHgwNCwweDgzLDB4MDQgfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4YTIsMHg4OSwweDE5LDB4MzAsMHgwNiwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg5MCwweDBiLDB4MzAsMHhjMiwweDQ4LDB4MDAgfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4YjIsMHg0MCwweDI0LDB4MjAsMHgwYiwweDA5LDB4MDAsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4MjAsMHgwMSwweDA2LDB4MDQsMHg4NywweGE0LDB4MmQsMHhlMCwweDA5LDB4MzgsMHgwMiwweGRlLDB4MDAsMHg5ZSwweDgxLDB4MjkgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4ZTAsMHgwOCwweDc4LDB4NTIsMHhmYSwweGMwLDB4OTYsMHg4MCwweDAxLDB4YTAsMHg4YiwweDNhLDB4MjIsMHhjZSwweDQwLDB4OGYgfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4YjAsMHgyNSwweGEwLDB4MGIsMHgwOCwweDAyLDB4NTYsMHgwOCwweGI1LDB4OTAsMHgyZCwweGU0LDB4NGIsMHhkOCwweDIyLDB4MGMgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAyLDB4ODMsMHg4MCwweDJlLDB4ZTggfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4MGIsMHgzOCwweDEzLDB4Y2UsMHg0MSwweGQzLDB4MTAsMHgyOCwweGMwLDB4MGUsMHgzYSwweDAyLDB4YzYsMHgwOCwweDRiLDB4NDAgfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4MzAsMHg2MCwweDBkLDB4M2IsMHgyNywweGNmLDB4YzQsMHhjMywweGEwLDB4MzAsMHgwMCwweDBmLDB4MzAsMHg0MywweDQ4LDB4NDAgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4ZjIsMHgwMCwweDNjLDB4MDQsMHgwZiwweDAyLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjNCwweDBlLDB4ZjEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAxLDB4MzMgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4YzAsMHg0ZCwweGIxLDB4MDcsMHg3YywweDkwLDB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwMywweGYxLDB4MDMsMHg3MCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4MTAsMHgzYiwweDAwLDB4MGYsMHhjMCwweDBiLDB4YjQsMHgwMCwweGZkLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhkMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDA0LDB4ZmIsMHg4NCwweDNhLDB4YzIgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4NGMsMHhiNCwweDkzLDB4MmMsMHgwNCwweGU5LDB4MDAsMHgzYSwweGM0LDB4OGQsMHgwOCwweDAzLDB4MmUsMHgwMCwweGNiLDB4MDEgfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4MzIsMHg4MCwweDhmLDB4YjIsMHg4MywweGVjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHgwMCwweDBmLDB4ZjksMHgwMywweDNjLDB4MTAgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4ZGYsMHg4MSwweGIzLDB4ZTAsMHg4YywweGEwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4NDgsMHgxMSwweDk0LDB4MDgsMHhiNywweDA0LDB4MjQsMHhjOCwweDFhLDB4MzAsMHg0YSwweDFkLDB4MDAsMHhiNywweDAxLDB4MmQgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4YzAsMHg4OCwweDcwLDB4MDYsMHgxYywweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHg0YiwweDc2LDB4MTIsMHhkYywweDAwLDB4ODcgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4MDAsMHgyOSwweDQwLDB4OGIsMHg0MCwweDAyLDB4MTAsMHgwMCwweGJjLDB4MDAsMHgyMCwweDAxLDB4MjgsMHg3MCwweDAzLDB4YjIgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDAwLDB4YjMsMHg5MCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4MDksMHg3OSwweDAyLDB4MWUsMHg4MCwweGE3LDB4ODAsMHgyYywweGU4LDB4MTksMHhmOCwweDEyLDB4NWUsMHgwMSwweDg3LDB4ODAgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4MjUsMHhlMCwweDRiLDB4NzgsMHgwNiwweGQyLDB4MDAsMHg5NywweDgwLDB4MjEsMHg2MiwweDBiLDB4M2EsMHgwMiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4YjcsMHg4NiwweDI5LDB4ZjAsMHgwOCwweDY4LDB4MDYsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4NDgsMHgxNCwweGNmLDB4YzAsMHhiMywweDAwLDB4MjQsMHhjMCwweDhhLDB4MzAsMHgzMiwweDBjLDB4MDAsMHhiMywweDA4LDB4MmMgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MTIsMHgwZSwweDIwLDB4ODMsMHgwMCwweDI0LDB4ZjEsMHgwYiwweDMwLDB4MDYsMHhjZSwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4OTAsMHgyOCwweDYwLDB4MGIsMHgwMCwweDJhLDB4MjEsMHg4MCwweGIwLDB4MDgsMHgyOCwweDAwLDB4MDgsMHgzNywweDAyLDB4OTIgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4NGQsMHhhMCwweDAzLDB4MjgsMHgwMCwweGVlLDB4NDEsMHgzZSwweDgwLDB4MGQsMHhlMCwweDAzLDB4NzgsMHgwMCwweDhlLDB4NDAgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MjcsMHhhOCwweDBiLDB4YTAsMHgwMywweGZiLDB4MDIsMHhjYSwweDgyLDB4MzMsMHhhMCwweDBmLDB4YTAsMHgxMywweDI5LDB4MDAgfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4ZmEsMHg0MCwweDNhLDB4ODAsMHgwYywweDZjLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAwLDB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDgsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MDAsMHg4ZiwweDgwLDB4MjMsMHhhMCwweDQyLDB4ZjgsMHgwOSwweGJhLDB4MTAsMHg0ZiwweDgwLDB4MDMsMHhlMCwweDYwLDB4ZjggfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4MDAsMHgzZSwweDIwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgyNywweDAwLDB4OGYsMHg4MCwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNSwweDAwLDB4ODksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4NmUsMHg5MCwweDAzLDB4YTQsMHgwOCwweGM5LDB4MDAsMHgzYywweDQwLDB4MGQsMHg5MCwweDAzLDB4MjQsMHgxMCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4MzIsMHg0MiwweDBjLDB4OTAsMHgxMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4YzksMHgyMCwweDNlLDB4NTIsMHhjZiwweDkwLDB4MDksMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4ODAsMHgwNCwweDY2LDB4MDAsMHg4OSwweDA0LDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4NDEsMHgwOCwweDkwLDB4MDUsMHhhNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NDAsMHgwZCwweDkwLDB4MDIsMHhlNSwweDQ2LDB4ODkgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDEyLDB4ZTUsMHgwMCwweGE5LDB4YzgsMHgyZSwweDYxLDB4OGIsMHg5NCwweDQyLDB4MjAgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YTksMHgwMCwweDZjLDB4NDAgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4NDgsMHgxMCwweDIyLDB4ODQsMHgwMywweGE5LDB4MDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwNCwweGIxLDB4MDggfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4MjgsMHg0MCwweDE4LDB4OTgsMHgwMiwweGU1LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGY0LDB4MjAgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4OGQsMHgwMCwweDJmLDB4NDAsMHgwYiwweDk0LDB4NDIsMHg4NiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMSwweDI0LDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHhhMSwweDAwLDB4MjggfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4NDgsMHgwOCwweDEwLDB4MDIsMHg4NCwweDAwLDB4OTEsMHgyMCwweDIwLDB4NDgsMHgwOSwweDEyLDB4MDIsMHhjNCwweDk0LDB4ODEgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4MDAsMHgyYywweDYxLDB4MGIsMHg1YSwweDgyLDB4ZDQsMHhhMCwweGE1LDB4MjgsMHgyZCwweDRhLDB4MGIsMHg5MCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAyLDB4ZTgsMHg1MCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTEsMHg0MCwweGE4LDB4NTAsMHgzZSwweDE0LDB4MGQsMHg4NSwweDAxLDB4ODEsMHg0MCwweGY4LDB4NTIgfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4MzIsMHg5NCwweDBjLDB4ODAsMHgxMywweGMxLDB4NDIsMHhjMCwweDUxLDB4M2UsMHgwMCwweDhmLDB4ODIsMHgwMywweGUwLDB4ODAgfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4YzgsMHgyMCwweDNmLDB4MDgsMHgwZiwweDgwLDB4MDMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NTAsMHhkOSwweDExLDB4M2UsMHg0NCwweDhmLDB4OTEsMHg0MywweGU0LDB4NDAsMHhkZCwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4NDQsMHg0ZiwweGQwLDB4MjcsMHhiNCwweDAwLDB4ZmQsMHgxMiwweDNmLDB4NDQsMHg0ZiwweDkxLDB4NDMsMHhmNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4MDAsMHgzZiwweDQxLDB4MGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHhkMCwweDAzLDB4NjYgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTEsMHhmNiwweDgwLDB4ZTksMHhjMCwweDNlLDB4NzggfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4OGYsMHg5YiwweDAzLDB4YTcsMHg4MCwweGM5LDB4NDAsMHgzNiwweDc4LDB4MGYsMHgxMCwweDIzLDB4ZTUsMHgwNCwweGRkLDB4YTQgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4MzMsMHg2MiwweDBmLDB4ZGEsMHgwMywweGY2LDB4NjAsMHhjOSwweDEwLDB4MzMsMHg0MCwweDBlLDB4OTgsMHg5MywweGU2LDB4MzAgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4YzksMHhjOSwweDMyLDB4NzgsMHg4YywweGQwLDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHg4OCwweGUyLDB4MmUsMHgzMCwweDBiLDB4ODgsMHg0MiwweDIzLDB4NDAsMHhhMCwweGExLDB4MjIgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4MzgsMHgwYiwweDhhLDB4MDIsMHhlMiwweDgwLDB4YWEsMHhlMCwweDIyLDB4MzAsMHgwYiwweDgwLDB4MjMsMHhhYiwweDAyLDB4ODggfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4YTAsMHgyYSwweDAwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweDg4LDB4ZTAsMHgyMywweDM4LDB4MDgsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YTEsMHg0NCwweDI4LDB4NTggfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDMsMHgxNiwweDIyLDB4ODQsMHg4MSwweDgxLDB4MjAsMHgyYywweDU4LDB4NDksMHgxMCwweDgwLDB4YzQsMHg4MSwweDkxLDB4NDggfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4NmMsMHg0YSwweDBiLDB4MTQsMHgwMiwweDQ0LDB4ODQsMHg4MSwweDAxLDB4NjAsMHg0MCwweDBhLDB4NTIsMHg4NiwweGQ0LDB4YTAgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4ODUsMHgwMCwweGExLDB4NTAsMHg2OCwweDkwLDB4MDYsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4MTgsMHgwNSwweGE2LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhhOSwweDYwLDB4MjIgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4NDAsMHgwYiwweDk1LDB4MDIsMHhlNCwweDEwLDB4YjEsMHgwMCwweDRlLDB4NDAsMHgwYiwweDkwLDB4NjYsMHhhYywweDgwLDB4ODkgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4MDAsMHgyYSwweDYwLDB4MGIsMHg5MCwweDUyLDB4ZjQsMHgwMCwweDg1LDB4MDAsMHgyMSwweDQwLDB4MDgsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDIwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YTQsMHgxMCwweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5NCwweDAxLDB4ZTUsMHgyMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4YmEsMHg2OCwweDhmLDB4OTAsMHgwNywweGU2LDB4MDAsMHhjOSwweDEwLDB4MzIsMHg2MiwweDBlLDB4OTAsMHgwMiwweGU0LDB4MTggfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4NDAsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMiwweDcyLDB4NjgsMHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4MDEsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMiwweGY5LDB4MDQsMHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4MWEgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHg4MCwweDAyLDB4YzgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGM4LDB4NDAsMHgzNiwweDAwLDB4MGYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGQ4LDB4NTAgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4YjIsMHgxMCwweDhjLDB4ODEsMHgwMywweGMxLDB4MjAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgxMywweGYwLDB4MDQgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4NGMsMHgwMCwweDNmLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4MjgsMHgxNSwweDJhLDB4MDAsMHg4YSwweDA0LDB4MjIsMHg4MSwweDI4LDB4YTAsMHgxMiwweDI4LDB4MDAsMHg4YSwweDAxLDB4MzYgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4ODAsMHgwYiwweGEwLDB4MTAsMHgyOCwweDEwLDB4Y2UsMHgwMSwweDIzLDB4ODEsMHgwYywweGE4LDB4MTIsMHhmYiwweDAwLDB4OGEgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4MDEsMHgzYiwweDgwLDB4ODMsMHhhMCwweDQyLDB4ZTgsMHgxMCwweDhhLDB4MDAsMHgyZiwweDgwLDB4MGIsMHg2MCwweDQyLDB4MGEgfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMCwweGEwLDB4YzAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4MTgsMHhiMCwweDAwLDB4Y2MsMHgwMCwweDliLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMCwweDA2LDB4NmMsMHgwMCwweGEzLDB4MDggfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4MjgsMHhjOCwweDA5LDB4MzAsMHgwMiwweGNjLDB4NDMsMHg4YiwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDIgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4ODMsMHgwMSwweDJjLDB4YzAsMHg0YiwweDMwLDB4MDAsMHg0YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MjQsMHg4NywweDk0LDB4MjEsMHhlNCwweDE4LDB4MzEsMHgwMiwweGRjLDB4ODAsMHg5NywweDEwLDB4MjUgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4Y2QsMHgwYiwweGYyLDB4MDIsMHg3YywweDAwLDB4YTAsMHgwMCwweDI4LDB4ZTAsMHgxOCwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcgfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MzQsMHgyOSwweDQwLDB4MDksMHg0MCwweDAyLDB4ZDAsMHgwNCwweDg0LDB4MDQsMHgyZCwweDAwLDB4NGIsMHhkMCwweDIyLDB4NjggfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4Y2YsMHhhMCwweDcwLDB4ZTkgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4MTgsMHg3YiwweDAzLDB4ZmYsMHg0MCwweDk3LDB4YTAsMHgzNSwweGU4LDB4MGYsMHg3NCwweDAyLDB4NWUsMHgyMCwweGU0LDB4ODAgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4MzksMHhhMCwweDJkLDB4NzgsMHgwMywweGZlLDB4MDAsMHhjNywweDgwLDB4M2QsMHhlMCwweDVmLDB4NjgsMHg0MywweGMyLDB4MDAgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4YzQsMHg4NCwweDFkLDB4NjAsMHgwZiwweDc4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4MDgsMHgwZCwweGE0LDB4MDAsMHgzYiwweDAwLDB4MmUsMHhkOCwweDBmLDB4YjQsMHgwMywweDJkLDB4OGEsMHhlYiwweDYyLDB4M2EgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4ZDAsMHgwZiwweGIyLDB4ODcsMHgwYywweGQwLDB4ZDgsMHgwMCwweDMyLDB4YzAsMHg0ZiwweDkwLDB4NDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4MDgsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZiwweDgwLDB4MGYsMHgwMCwweDJiLDB4ODIgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZmYsMHhhMCwweDNlLDB4ZjQgfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MGUsMHhiOCwweDAzLDB4ZWUsMHgwOCwweDRiLDB4ZjAsMHg3ZiwweGY0LDB4MGMsMHhmOSwweDIzLDB4ZWUsMHg0OCwweDc4LDB4OTAgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4MzIsMHhlNCwweDBjLDB4ZjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlNCwweDFjLDB4NzksMHgwMywweDJlLDB4NDAgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4ZTAsMHgyYywweDc4LDB4MDcsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4MDAsMHhiMywweDAwLDB4MGMsMHhlNSwweDBiLDB4MzgsMHgwMiwweGZlLDB4ODAsMHg4ZiwweDgwLDB4NjEgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4YzQsMHgyOCwweDc4LDB4MDAsMHg0ZSwweDAwLDB4ZjQsMHg4NCwweDI1LDB4YTgsMHgwYywweDcwLDB4MDIsMHhjYywweDA0LDB4YjMgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4OTAsMHgyNSwweDQwLDB4MGMsMHg0MSwweDgzLDB4NTIsMHg0MCwweGI0LDB4MTAsMHhhMywweDAwLDB4MGMsMHg1MiwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NCwweDAwLDB4YjcsMHgyMSwweDZkLDB4YzggfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4NGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweGE3LDB4MzEsMHgyOSwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MjggfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4MjQsMHg4MCwweDA4LDB4NzAsMHgwNiwweGQ0LDB4MjAsMHhiNywweDAxLDB4MmQsMHhjMSwweDA4LDB4NjAsMHgwMiwweDUwLDB4ODAgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4YjQsMHgwOCwweDIxLDB4NjIsMHgwOSwweDc0LDB4MDYsMHg4MCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4MjAsMHgxNCwweGM3LDB4MDQsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAyLDB4NjAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4YzAsMHgwOCwweDM4LDB4MDIsMHg0ZSwweDQ0LDB4YTAsMHhjMCwweDI0LDB4OTEsMHgwOCwweDMwLDB4MDIsMHhjMCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4MDAsMHgyNCwweDYwLDB4MDgsMHgxYywweDAyLDB4NGMsMHg4OCwweGIzLDB4YzAsMHgyMCwweGEwLDB4MDgsMHgwMCwweDBhLDB4ODggfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4NGYsMHhmMCwweDEzLDB4ZmMsMHgwOCwweGU3LDB4OGEsMHgzZiwweGMwLDB4MGMsMHhmNSwweGMyLDB4ZmUsMHgxMCwweGJiLDB4YzAgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MzIsMHhkNCwweDBjLDB4MzAsMHgxMywweGUzLDB4MDQsMHhiZiwweDAwLDB4MmUsMHg2MiwweDA4LDB4YjksMHgwMiwweDZlLDB4MDAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4ZmIsMHgwMSwweDMyLDB4YTQsMHg0ZCwweDk0LDB4MDIsMHhhYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NjAsMHhmYiwweDAwLDB4MWUsMHhjMCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHg1YiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4YzAsMHgwZiwweGIwLDB4NDEsMHhlYywweDAwLDB4N2IsMHg0NSwweGJhLDB4NDAsMHgyZSwweGIwLDB4MTUsMHhlMCwweDAxLDB4ZmIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGUsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZjLDB4MjAsMHgzZiwweDUwLDB4OGYsMHg5MCwweDAxLDB4NjAgfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4OGYsMHhmMCwweDAzLDB4MWMsMHgwMiwweGNmLDB4MDAsMHgzNiwweGMwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHgwMCwweDdmLDB4MmEgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4M2YsMHg4MCwweDBmLDB4ZjgsMHgxMywweDkwLDB4MjEsMHhjZiwweDAwLDB4M2YsMHg2MiwweDBjLDB4ZTAsMHgwMywweDMwLDB4MDAgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4ZjgsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4ODEsMHgwNCwweDY0LDB4MTEsMHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweDJjLDB4MDAsMHhkYiwweDA0LDB4MzIgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHg4NCwweDJlLDB4NDAsMHgwYiwweGI5LDB4NDIsMHgyMiwweDQyLDB4OGIgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4MDEsMHgyYywweDcyLDB4MGEsMHg5MCwweDQyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMyLDB4OGYsMHg4OCwweDA2LDB4ZTAgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyNCwweDAwLDB4YmIsMHgwMCwweDZlLDB4YzAgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4NDgsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MGEsMHhiMCwweDEyLDB4ZWMsMHgwMCwweGJiLDB4NDAgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MmUsMHhjOCwweDBiLDB4YjAsMHgxMiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0OCwweDBhLDB4MzAsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4YmIsMHgwMCwweDJlLDB4ODAsMHg0YiwweDk4LDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMywweDAwLDB4NmMsMHhjMiwweDRiLDB4MzEsMHgwMiwweDBjLDB4NTAsMHg5YiwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4YzAsMHgwYSwweDMyLDB4MTIsMHhjYywweDgwLDB4YjMsMHgwMCwweDZjLDB4MGMsMHgwYiwweDMxLDB4MDIsMHgwYywweDQyLDB4ODMgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4MDgsMHgyZSwweDQwLDB4MGEsMHgwMCwweDAyLDB4MDAsMHg4MCwweGIwLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4YmIsMHg0MCwweDNmLDB4Y2MgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4MGUsMHhmMCwweDgzLDB4M2QsMHhhMCwweGNmLDB4MjAsMHgzNywweGMwLDB4MGMsMHhmNywweGMzLDB4ZmQsMHg0OCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4M2UsMHg4OCwweDBmLDB4YjQsMHgxMywweGE1LDB4MDAsMHg4ZiwweDMwLDB4M2UsMHg0MCwweDBjLDB4YTAsMHgwMywweDYwLDB4ODAgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4YTAsMHgxOSwweGY0LDB4MDAsMHhmZiwweDI5LDB4M2YsMHhjOSwweDBmLDB4ZjAsMHgxMywweGZjLDB4OTQsMHhlZiwweDEyLDB4M2IgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4YzAsMHg4ZSwweGIyLDB4MDcsMHhmZCwweDA0LDB4ZmYsMHgxMCwweDNmLDB4MGMsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MjAsMHgzZCwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZmMsMHg0MCwweGZmLDB4MDQsMHgzZiwweGMwLDB4MGUsMHhjMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGEyLDB4YzcsMHgyMCwweDNmLDB4MjQgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4M2MsMHg4MCwweGNjLDB4MDksMHgzMywweGQxLDB4MGMsMHhmMSwweDIzLDB4ZmMsMHgyMCwweGRmLDB4MzYgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4M2YsMHhjMCwweDBlLDB4NDgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4MzcsMHhlNCwweDBkLDB4NzgsMHgwMywweDExLDB4YTAgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzgsMHgwYywweGYwLDB4MDMsMHgzMCwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4ODAsMHgxMCwweGZmLDB4MDAsMHg4ZiwweGQxLDB4MmUsMHgwOCwweDBkLDB4YjYsMHgxMiwweDNkLDB4NDUsMHhmOSwweDY0LDB4MjcgfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4ZDAsMHg4OCwweGJhLDB4MTQsMHhjYywweDA0LDB4OGYsMHg0MCwweDIzLDB4ZjAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4YmIgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4ODAsMHhhZSwweGMwLDB4MDgsMHhiOCwweDBhLDB4MjEsMHgwMCwweDg4LDB4ZDAsMHgyMiwweDIwLDB4MjgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4OTMsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4MGEsMHgzNCwweDgyLDB4OGMsMHhhMCwweGEwLDB4MDgsMHgyNCwweGQ4LDB4MDksMHgzMSwweDAyLDB4Y2MsMHgyMCwweGIzLDB4MzIgfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4MjgsMHhkMCwweDRhLDB4ODAsMHgwMiwweGNjLDB4MGMsMHhiYiwweDAwLDB4MjIsMHg0MCwweDg5LDB4YjAsMHgwMiwweDYwLDB4ODAgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4OTMsMHgwMCwweDI0LDB4ZDAsMHgwYiwweDMwLDB4MDIsMHhhMiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHg5YiwweDAwLDB4MmUsMHgyMCwweDA5LDB4YjAsMHg0YSwweDJjLDB4MDIsMHhhMCwweDAwLDB4MDYgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDAsMHhlYywweDAwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweDg4LDB4MDIsMHg2YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4MjAsMHgyYSwweGUyLDB4NDEsMHhiOCwweDJhLDB4NjAsMHgwYSwweDk4LDB4MDAsMHgyNiwweDAwLDB4MGIsMHhiMCwweDAyLDB4YjggfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDA4LDB4ZGIsMHgwMiwweDNlLDB4MjAgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4NGMsMHhiMCwweDAzLDB4MmMsMHgwMiwweDhiLDB4MjAsMHgxMiwweGMwLDB4MjksMHhiMCwweDEyLDB4ZWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4M2EsMHhjMCwweDBlLDB4ODgsMHgwMywweGVkLDB4MjAsMHhmYiwweGM4LDB4MzQsMHhmMCwweDBkLDB4YmEsMHgwMywweDQ3LDB4NjAgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhlZiwweDAwLDB4MGYsMHgwMCwweDBmLDB4MzAsMHgwMCwweGZjLDB4MDAsMHhkZiwweDkwLDB4YmIgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4YzAsMHhjZSwweGYwLDB4MDMsMHhmYywweDA0LDB4Y2IsMHgwMCwweDE3LDB4YzAsMHgwZiwweGMwLDB4MDMsMHhiYywweDg0LDB4ZmYgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGUsMHhkMCwweDYzLDB4YjgsMHgwMCwweGVhLDB4MDAsMHgzYSwweDgwLDB4MGMsMHgzMCwweDAzLDB4NzAgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZmIsMHgwMiwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4MGYsMHhiMCwweDUzLDB4MmMsMHgwMCwweGZhLDB4MDAsMHgzMiwweGMwLDB4OGYsMHhiMCwweDA3LDB4MmMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4ODAsMHgwNywweGFjLDB4ODAsMHhkYiwweDI0LDB4N2UsMHhkMCwweDBlLDB4YjAsMHgyMywweDc0LDB4MDQgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4ZGQsMHgwOCwweGI1LDB4NDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHhiZiwweGMwLDB4YTAsMHgwMCwweDFiLDB4ZjAsMHgwMiwweDNmLDB4NjAsMHhlYSwweDUwLDB4MjMgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4YzAsMHgwOCwweGZhLDB4MDcsMHhmYywweDAwLDB4ZGYsMHgwMCwweDYzLDB4YzAsMHg0OCwweDE4LDB4MDIsMHgyZCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4MDAsMHg2ZSwweGMwLDB4MGQsMHgzYSwweDAzLDB4MjQsMHgwMCwweDgyLDB4ODAsMHgzMiwweDgwLDB4MGQsMHhmMCwweDAzLDB4MzIgfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDE0LDB4YjMsMHg1OSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmUsMHgwNSwweGIwLDB4NDQsMHgyZSwweGMwLDB4MDksMHgzNCwweDgyLDB4ZWMsMHgwMCwweGFiLDB4MDQgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MjAsMHhjMCwweDA5LDB4MjEsMHhiMiwweDhlLDB4MDQsMHg5MywweGMwLDB4MjQsMHhjMCwweDBhLDB4MTgsMHgwNiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4OTIsMHg1MCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg3MCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4NjEsMHhlMCwweDBiLDB4NzgsMHgwYSwweDVlLDB4MDEsMHhiMSwweGEwLDB4MmQgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4ZTAsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4MDcsMHg5MCwweDIxLDB4ZTAsMHgxOCwweGM4LDB4MDIsMHgxZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4ODAsMHgyZCwweGUwLDB4OGEsMHhkOCwweDAyLDB4M2UsMHhjMCwweDg1LDB4ODAsMHgyMSwweDIwLDB4MTksMHg3OCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHg5NCwweDIwLDB4MTAgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4NGIsMHgzMCwweDA3LDB4MGMsMHgwMCwweGYzLDB4MDAsMHgzZSwweGM4LDB4MGYsMHgzMCwweDAzLDB4Y2MsMHgwMCwweDIzLDB4MTAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4MDAsMHhjYiwweDA1LDB4MjAsMHgwMiwweDhjLDB4NjAsMHg5MywweDBhLDB4MmUsMHhjNCwweDBhLDB4MDEsMHgwNywweDRjLDB4ODAgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4ZDIsMHgwMSwweDMwLDB4YzAsMHgyYywweDMwLDB4MGIsMHg1YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAxLDB4MGYsMHg0MCwweDBmLDB4ZjAsMHgxMywweGJjLDB4MDAsMHhlZiwweDI2LDB4NzMgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4YzIsMHgwYywweGIwLDB4ODMsMHhiYywweDQwLDB4ZmYsMHgxOCwweDNkLDB4YzAsMHg0YSwweGMxLDB4MDMsMHhmYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4MTIsMHgzZiwweGM0LDB4NGQsMHhjMSwweDBiLDB4ZmMsMHg4MSwweGZkLDB4MDAsMHgzZiwweDIwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDIwLDB4Y2IsMHg0OCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MmQsMHgyMCwweGU5LDB4ODAsMHhmYSwweGM4LDB4MGQsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGRiLDB4MjQgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4NzYsMHhmMywweDhlLDB4ODAsMHgzMywweGVjLDB4NDQsMHhlYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4ZGMsMHgwMCwweGIzLDB4NjEsMHgwYywweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4NDgsMHgxMSwweDhkLDB4MDAsMHg4NywweDIwLDB4MmYsMHgwMSwweDI4LDB4NzAsMHgwMiwweDBjLDB4ODQsMHg4ZCwweDA0LDB4MzEgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4Y2MsMHhjOSwweDcyLDB4MDIsMHhkZCwweDAwLDB4MzcsMHgzMywweDIxLDB4ZDgsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4MjAsMHgzZCwweGMwLDB4MDksMHg1MCwweDIyLDB4ZjAsMHgwMCwweDk3LDB4MDAsMHgyMSwweDgwLDB4MGEsMHhmYywweDAyLDB4OTIgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgxZSwweDgyLDB4ODcsMHhiMCwweDJkLDB4MjAgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4MDgsMHgzOSwweDAyLDB4MWUsMHg0MSwweGE3LDB4ODAsMHgyNCwweGUwLDB4MDksMHg3YSwweDMyLDB4OGUsMHg4MiwweDA3LDB4YTAgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4MjUsMHhlMCwweDhiLDB4NDgsMHgwMiwweDFlLDB4MDAsMHhhNywweGUxLDB4MmQsMHhlMCwweDRiLDB4NTgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4YTAsMHg4MCwweDI0LDB4NjAsMHgwOCwweDdhLDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDAwLDB4MmMsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwLDB4MjIgfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4YzEsMHgwOSwweDMwLDB4NDIsMHhjYywweDAwLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDFhLDB4MDIsMHhjZSwweDA0LDB4YjMgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4ZTAsMHgyOCwweGEwLDB4MDksMHgxYywweDgyLDB4NGIsMHgwOCwweGEzLDB4ODAsMHgyNCwweGEwLDB4MmEsMHgzMCwweDAyLDB4OWEgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDJmLDB4ODggfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MGMsMHhhMCwweDEzLDB4MjgsMHgwMCwweGVlLDB4MDAsMHgyZSwweDgwLDB4MmQsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4NzYsMHg4MCwweDBlLDB4ZTgsMHgwMywweGJiLDB4ODAsMHhlZSwweDQwLDB4MmYsMHhhMiwweDhmLDB4ZTYsMHgwMywweGViLDB4ODYgfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4ZmEsMHg4MCwweDM3LDB4ODIsMHgwYywweDIwLDB4MDcsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4MWUsMHgwMCwweDBmLDB4ODAsMHgwYiwweDYxLDB4MDAsMHhlOCwweGMwLDB4M2EgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAxLDB4ZjgsMHgwMCwweDdlLDB4MTAsMHgxZSwweDgxLDB4MDMsMHhlMCwweDA4LDB4ZjggfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4YzAsMHgyOCwweGRjLDB4NTAsMHgzYiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MGYsMHgxMCwweDAzLDB4YTYsMHgwMCwweGM5LDB4MDEsMHgzYSwweDQwLDB4MGUsMHg5NCwweDAxLDB4ZTQsMHgxMCwweGYxLDB4MDQgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OWEsMHgyMywweDIwLDB4NjAsMHhmOCwweDA0LDB4MGEsMHg0MiwweDBlLDB4OTAsMHgxMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4ODAsMHgwNCwweDY3LDB4MDgsMHhhOSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI3LDB4ODIsMHg4OSwweDAwLDB4MjYgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4NDAsMHgwOCwweDljLDB4MDMsMHhhNCwweDEwLDB4YjksMHgwMCwweDM2LDB4NDAsMHg5YiwweDFjLDB4MWEsMHgyMywweDA0LDB4YjggfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHgxMCwweDAyLDB4MjQsMHgwMiwweGM5LDB4YTAsMHhhMiwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNSwweDgwLDB4ODksMHgwNCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODQsMHg4MSwweDk5LDB4NDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDA2LDB4ZTQsMHgwMSwweGI5LDB4MDAgfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4YTYsMHg0MSwweDFiLDB4OTAsMHg4MiwweDIxLDB4MDAsMHhiOCwweDEwLDB4MmUsMHg0MCwweDBhLDB4OTIsMHgwYSwweGE0LDB4MDEgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4OGYsMHgyMiwweDIzLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMywweDIwLDB4MmMsMHg0MSwweDA5LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjQgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4NDgsMHgwYSwweDM2LDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDA0LDB4YzgsMHg0YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4MDUsMHgyOCwweDUwLDB4MGEsMHg5MCwweDAyLDB4MDUsMHgwMiwweDg1LDB4MDAsMHgyMSwweDQwLDB4MGIsMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDZlLDB4MTQgfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4YTEsMHg0MCwweGM4LDB4NTAsMHgzYSwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGIwLDB4NTAgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4MzIsMHgwMCwweDBiLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmYSwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGEwLDB4MDIgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4YzgsMHgwMCwweDEzLDB4MDAsMHgwZiwweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDgsMHhmOSwweDE0LDB4M2YsMHg0MCwweDBjLDB4OTEsMHgwMywweGU0LDB4NDIsMHhmZCwweDEwLDB4MzYgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4NDQsMHgwZCwweDkxLDB4MjMsMHhhNCwweDQ4LDB4ZjksMHgxMSwweDM4LDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNSwweDE0LDB4MzkgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4NDIsMHg3YiwweDQwLDB4OGUsMHhkMCwweDAxLDB4ZjUsMHgwMCwweGE5LDB4NDAsMHgzZSwweDUwLDB4MDcsMHg5NiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZGQsMHhhZSwweDNhLDB4NTAgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4MGQsMHg5YSwweDBiLDB4NzYsMHg4MCwweGNmLDB4ODgsMHgzMiwweDcwLDB4MmQsMHhkYSwweDAzLDB4YTcsMHgwMSwweGU5LDB4OTIgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4MzcsMHg2OCwweDBkLDB4OTQsMHgwMywweGU3LDB4MDAsMHhlZCwweGEwLDB4M2EsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU3LDB4MDIgfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4NjgsMHgwYywweGQ4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHg4OCwweDQwLDB4MjAsMHgyMCwweDBjLDB4OGMsMHgwMiwweDIzLDB4MDAsMHg4OCwweGUwLDB4MjIgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4MzAsMHgwOCwweDg0LDB4MDIsMHhlMywweDAwLDB4YjgsMHhlMCwweDIyLDB4MTQsMHg4ZCwweDg4LDB4MDIsMHhlMywweDAwLDB4YjggfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4NTAsMHgyZSwweGE4LDB4OGIsMHg4MCwweDIyLDB4ZTMsMHg0OCwweDg4LDB4NTAsMHgyMiwweDAwLDB4MDgsMHg4YywweDAyLDB4MGUgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4OTEsMHgwMCwweDJhLDB4NDggfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDksMHgxNCwweDgyLDB4MDUsMHgyMCwweDgxLDB4MDgsMHgyMCwweDU4LDB4MDksMHgxMSwweDAyLDB4ODUsMHg4OCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4YTAsMHg0MCwweDA4LDB4MTIsMHgwMiwweGM1LDB4ODAsMHhhMSwweDAwLDB4MjgsMHg0MCwweDBiLDB4MTgsMHgwMiwweGM0LDB4ODQgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4YTEsMHgwMCwweDI0LDB4NTAsMHgwOCwweDEwLDB4OTIsMHgwMywweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4MTgsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDYsMHg4OSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4YjksMHgwMiwweDIyLDB4NDEsMHg4OSwweGEwLDB4ODIsMHhlMCwweGEwLDB4YjkgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4MjgsMHgyZSwweDQ0LDB4MGIsMHhiMCwweDAyLDB4ZTQsMHgwMiwweGI5LDB4MDAsMHgyNiwweDQwLDB4MjgsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM4LDB4NDAgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4YTAsMHhhMiwweDQwLDB4OGQsMHg5MCwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4ODQsMHgxMywweGUyLDB4MDAsMHhlOSwweDAwLDB4M2EsMHg1MCwweDBmLDB4OWMsMHgwMiwweGU2LDB4ODQgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4ZTksMHgwMCwweGI2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2UsMHg2OCwweDBlLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmMSwweDI4LDB4M2EgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDIsMHgwZiwweDgwLDB4MjMsMHhlMiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MSwweDIzLDB4ZTQsMHg0MCwweGMxLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDBiLDB4Y2EgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4YTAsMHgyMCwweGM4LDB4NDAsMHgzZSwweDAwLDB4MGUsMHg4MSwweDYzLDB4NjAsMHgwMCwweGYwLDB4MDQgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4M2MsMHgwMSwweDBjLDB4ODQsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGMxLDB4MDAgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4ZDgsMHgxMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MjMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4NjAsMHg4ZSwweDAwLDB4MjIsMHg4MCwweDBhLDB4YTAsMHgwMiwweDM4LDB4ODAsMHhiZSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4OTgsMHgxOCwweGVjLDB4MDIsMHhmOCwweDIwLDB4YWUgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MGIsMHhlNCwweDgyLDB4ZTgsMHgwMiwweGNlLDB4NDQsMHgyOCwweDgwLDB4MGQsMHhhMCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MCwweDAwLDB4ODIsMHgwNCwweGEwLDB4YzAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4MDksMHgzMCwweDAyLDB4OGUsMHgwNCwweDgzLDB4NTAsMHg2YywweGMwLDB4MGEsMHgzMCwweDg2LDB4MGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4MjgsMHgzMCwweDBhLDB4MzYsMHgxMiwweGNjLDB4ODAsMHg4MSwweDAwLDB4MjQsMHhjMCwweDBiLDB4MzIsMHgwNiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4ODAsMHg4OCwweDY0LDB4NjAsMHgyOCwweDEwLDB4MDIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MTIsMHg4NCwweDQwLDB4MjEsMHhjOCwweDBhLDB4NzIsMHgwMiwweDEwLDB4MDAsMHhiNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4Y2MsMHgwOCwweDM4LDB4MTIsMHgxYywweDAwLDB4YjMsMHgzMCwweDIwLDB4MDAsMHgwOCwweDcxLDB4ODIsMHhmZSwweDAwLDB4YTQgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4ODAsMHgyMSwweGM4LDB4MGIsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweDQyLDB4MDksMHg1MSwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4YzIsMHg4MCwweDMxLDB4ZjggfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4NGMsMHhmYywweDEzLDB4OTIsMHgwOSwweGM3LDB4ODAsMHgzYywweGVkLDB4MWUsMHg3OCwweDI3LDB4MWUsMHgwMCwweGY3LDB4OGMgfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4NzksMHgyMCwweDA4LDB4N2EsMHgwMywweGRlLDB4ODEsMHg4NCwweDgwLDB4M2QsMHhlMCwweDBlLDB4NzgsMHgwMywweGZlLDB4MjAgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4YzUsMHg4MSwweDM1LDB4NjAsMHgyYywweDU4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4MDgsMHgxZCwweDgwLDB4MDAsMHhmOCwweDA0LDB4M2UsMHhkMCwweDBmLDB4YjAsMHgxMywweGUwLDB4MDAsMHhmYiwweDAyLDB4M2EgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4ZDAsMHgwZiwweGEwLDB4MGIsMHhhYywweDQwLDB4ZmIsMHgwMCwweDNhLDB4MDAsMHgyZiwweGIwLDB4MDMsMHhjYywweDAwLDB4ZjAgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4MDAsMHgzYSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZmMsMHg0MSwweGYzLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg1MCwweDkzLDB4YzIgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MSwweDNmLDB4ZmMgfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MWMsMHhmOCwweDAzLDB4NzYsMHg0MCwweGVmLDB4OTIsMHgzZiwweGU0LDB4OGMsMHhmOCwweDAzLDB4YmYsMHgxMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4YjMsMHgyMCwweDBlLDB4ZjksMHgxMywweGZlLDB4MjQsMHhmZCwweDk0LDB4MzcsMHhlMCwweDFjLDB4ZjksMHgwMywweGVlLDB4MDAgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4ZTAsMHgwYywweDU4LDB4MDIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4NDAsMHg4MCwweDAwLDB4MmYsMHhjNCwweDA4LDB4NzIsMHgwMiwweGRkLDB4MDgsMHhkNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4Y2MsMHgwOCwweGRlLDB4MDMsMHg1YywweDAwLDB4YjcsMHgwNCwweDIxLDB4ODAsMHhjOCwweDcwLDB4ODMsMHhkYywweDAwLDB4YjQgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MGMsMHg3MCwweDAyLDB4ZGUsMHg4MCwweDg3LDB4MDAsMHgyMSwweGMyLDB4MGEsMHg1MSwweDQyLDB4MmEgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ODQsMHgwMCwweDJkLDB4YzggfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4NDgsMHg3MCwweDAyLDB4NTQsMHgwYywweGE3LDB4MDAsMHgyYywweGMwLDB4ODksMHg3MiwweDAyLDB4NWMsMHgwMCwweGIzLDB4MTAgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MjAsMHgwMCwweDBhLDB4NzAsMHgwNiwweGRjLDB4MDAsMHhiNCwweDIwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4ODAgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDUwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4MjAsMHgxNCwweGMwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHhjMCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDgsMHhhMiwweDQyLDB4MmMgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4YzEsMHgwOSwweDIwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4ODAsMHgwOCwweDNjLDB4MjIsMHg4YywweDIwLDB4YjAgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4MDgsMHgyZSwweGUwLDB4MDgsMHgzOCwweDEwLDB4Y2YsMHgwYSwweDkzLDB4NDAsMHhhMCwweGYwLDB4MGEsMHgxMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhOCwweDAwLDB4YzEsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgzZiwweGMwLDB4MmQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4MzIsMHgwMCwweDBlLDB4YjAsMHgxMiwweGVkLDB4MjQsMHhmYSwweDA4LDB4MjcsMHhjOCwweDEwLDB4YjgsMHhhMiwweGZmLDB4NjAgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4OTgsMHhhMCwweGEyLDB4ZTAsMHgwYywweDUwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4ODAsMHgwMCwweGM5LDB4MDYsMHhmOCwweDQxLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MTAsMHg1YSwweDIwLDB4M2UgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4YzAsMHgwZSwweDgwLDB4MDMsMHhlYywweDAwLDB4ZjMsMHgwMCwweDdlLDB4MDEsMHgwZiwweGIwLDB4OTMsMHhlZCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGUzLDB4MDgsMHgzYywweGMyLDB4MGYsMHhkMCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMywweDAyLDB4Y2MsMHgwMCwweDNiLDB4YzIgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4MGMsMHhmMCwweDIzLDB4YWUsMHg0MCwweGRmLDB4ODEsMHgzOSwweGMwLDB4MDYsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4MzEsMHg0MSwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjYywweGEwLDB4MzcsMHhjMiwweDBjLDB4ZjAsMHgwMywweDdjLDB4MDQgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4ZjAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4ODEsMHgwNCwweDYwLDB4MDAsMHg4OCwweDgwLDB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGU5LDB4MDAsMHhhYiwweDQ0LDB4MmUgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4YzAsMHgwOCwweDg4LDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NzAsMHgwYSwweGI0LDB4MDIsMHhjYywweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4MjAsMHgyMiwweGMwLDB4MGYsMHhiYywweDAyLDB4Y2MsMHgwYSwweDhiLDB4ODAsMHhhMiwweGMwLDB4MGQsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMCwweDAwLDB4ODksMHg4MCwweDJhLDB4YzAgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwNiwweDg4LDB4NjAsMHgyZSwweGMwLDB4MGEsMHg5OCwweDA2LDB4ZWMsMHgwMSwweGJiLDB4MDAgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4MjIsMHgzMSwweDAyLDB4YjIsMHgwMiwweGVjLDB4YTAsMHg4YSwweDAwLDB4MjYsMHhjMCwweDQ4LDB4YTgsMHgwMiwweGVjLDB4MDQgfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4YTksMHg4MCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MCwweDAxLDB4MmMgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4YzAsMHgxYSwweDEyLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg0YSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4MDAsMHgwOCwweGMwLDB4MGIsMHgyMCwweDA2LDB4ZWMsMHhhMCwweGEzLDB4MDAsMHhhMCwweDQwLDB4MjksMHgxMCwweDAwLDB4MDIgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4YzgsMHg1MCwweDNiLDB4YzAgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4YWMsMHgwMCwweGM5LDB4MDAsMHgzYiwweGMwLDB4MGUsMHg5MiwweDgzLDB4ZmMsMHgwMCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4MTIsMHgwMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHg4OCwweDI2LDB4MTYsMHhjMCwweDBjLDB4ODAsMHgxNywweDVjLDB4ODAgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4ZTksMHgwMSwweDMyLDB4NDAsMHgyYywweGQwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4YTAsMHgxZCwweGQwLDB4MDAsMHhmYywweDIwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4YzAsMHgwZCwweDgwLDB4MDMsMHhmYywweDA4LDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmYywweDEwLDB4ZjggfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4NDAsMHgzNywweGMwLDB4MGUsMHhlMCwweDIxLDB4ZmMsMHgwOCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGMwLDB4ZmYsMHgyMSwweDcxLDB4MjQgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MGYsMHhmMSwweDgzLDB4ZjIsMHg0MCwweGZmLDB4MDAsMHgzNywweGM0LDB4OWYsMHhmMiwweDQ3LDB4M2QsMHgwNCwweGM3LDB4MjAgfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4NzgsMHgyMywweGZlLDB4NDAsMHhlOCwweDEwLDB4MjcsMHhjNCwweDBmLDB4ZjIsMHgxMywweDNjLDB4ODQgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4YzQsMHg4MSwweDMzLDB4MjAsMHg0YywweGYwLDB4MjMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4ODAsMHgxMCwweGVkLDB4NDAsMHhiZiwweDU0LDB4NjIsMHhjOCwweDBiLDB4ZjYsMHgwMiwweGUwLDB4MDAsMHhiYiwweGQwLDB4MjIgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4ZjAsMHgxZiwweGY5LDB4MTIsMHgzZCwweDgwLDB4OWYsMHg4MSwweDJiLDB4ZTAsMHgwYSwweGI4LDB4MTIsMHhlOCwweDAwLDB4OGYgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4MDQsMHgyMiwweGQwLDB4MDgsMHhiMywweDhhLDB4YmYsMHg0MiwweDhiLDB4ODIsMHgyMiwweGUwLDB4MjgsMHg4YywweDAyLDB4MjAgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgyOCwweDI4LDB4MDggfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4MGIsMHgzMCwweDA2LDB4ODAsMHg4MCwweGIzLDB4MDIsMHgyNCwweGQxLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweDkzLDB4MTAgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4MjAsMHhjZSwweDhiLDB4MzAsMHgwMiwweGNjLDB4ODQsMHhhMSwweDIxLDB4MmMsMHhjYywweDBhLDB4MzAsMHgwYSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4OTMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDNjLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHhiYiwweDAyLDB4NmEsMHhlMCwweDBiLDB4YjAsMHgwMiwweGUxLDB4MDgsMHhiYiwweDA0LDB4MmEgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4YzAsMHgwYSwweGIwLDB4MTIsMHg4YywweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwYiwweGIxLDB4MDYsMHhjOCwweDgwLDB4OGIgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4ODIsMHg2YSwweGMxLDB4MGEsMHgzMCwweDAyLDB4YWMsMHgxOCwweDg4LDB4MTAsMHgyYSwweDQ4LDB4MDgsMHg4MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwMCwweGFhLDB4MzAgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4YTgsMHgwMCwweGYzLDB4MDEsMHhiNiwweGMxLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwOCwweDRiLDB4MDAgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjgsMHgwMiwweGVjLDB4MTAsMHhhOSwweDgxLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4Y2IsMHhhMCwweDE4LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDgsMHhmNywweDAwLDB4MzcsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZkLDB4MDAsMHhmZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4YzAsMHgwZiwweGIwLDB4MDcsMHg3YywweDAwLDB4ZTcsMHgwMCwweDNlLDB4YzAsMHgwYSwweGYwLDB4MDMsMHhmZSwweDAwLDB4ZjcgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4ODAsMHgzNywweGUwLDB4MGYsMHhhMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4MGUsMHhiMCwweDAzLDB4NjksMHgwMCwweGRiLDB4MDksMHgzYSwweGMwLDB4MWYsMHgzMCwweDIzLDB4ZWMsMHgwOCwweGNiLDB4MjAgfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4MzQsMHhjMCwweDJmLDB4YjAsMHgwMywweGVjLDB4NDAsMHhlYiwweDQ4LDB4M2UsMHhjNCwweDRkLDB4YjAsMHg4YiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4OTAsMHgwZiwweDMwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MjIsMHgwMCwweDQ4LDB4ZjAsMHgyMiwweDJjLDB4MDAsMHg4ZiwweDAwLDB4MjMgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4ZTAsMHg4YiwweGY1LDB4MTAsMHgzYywweDAwLDB4OGYsMHg4MCwweDIzLDB4ZjAsMHg4MCwweDk4LDB4MDMsMHgyZCwweDQ0LDB4ZGIgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgyMywweGQ0LDB4MDgsMHhmOCwweDAyLDB4M2MsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMwLDB4MGIsMHhhNCwweDgyLDB4MzIgfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4OTMsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ODQsMHgwMCwweGIzLDB4MDEsMHgyOCwweGY2LDB4MDksMHgzNCwweDMyLDB4OGMsMHgwMSwweGIzLDB4ZDAgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4MjQsMHhlOCwweDBhLDB4MzEsMHgwYSwweDg2LDB4MDAsMHg4MywweDAwLDB4MmEsMHhlMCwweDAwLDB4MzAsMHgwMiwweDhjLDB4MDAgfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4ODMsMHgwMCwweDI4LDB4YzAsMHg4OSwweDM4LDB4YTIsMHg3OCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg5NywweDk0LDB4MjMsMHhlMCwweDA5LDB4MzgsMHgwMiwweDMyLDB4MDAsMHg5NywweGExLDB4MjEgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4ZTQsMHgwYiwweDc4LDB4MDIsMHgxZSwweDQwLDB4YjcsMHhhMCwweDI1LDB4ZWMsMHgwOCwweGZjLDB4MDIsMHgzYSwweDAwLDB4OTMgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4YjgsMHgyMSwweGUwLDB4MDgsMHg3OCwweDgyLDB4OWUsMHg0MCwweDg3LDB4YzAsMHgyOSwweGEwLDB4MGIsMHg1OCwweDAyLDB4NDggfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDAwLDB4ZGIsMHgwMCwweDM0LDB4MjAgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4MGYsMHgzYSwweDAzLDB4OGUsMHgwMCwweGYzLDB4YjAsMHgyOCwweGM0LDB4MGIsMHgzYSwweDAzLDB4YWUsMHg0MCwweGYzLDB4YTAgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4MzQsMHhlZSwweDBmLDB4MzAsMHgyMywweDg0LDB4MDAsMHhlMywweGYwLDB4MzgsMHhjMCwweDBjLDB4YjAsMHgwYiwweDhlLDB4NDIgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4NjMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDQyLDB4M2EsMHhjNCwweDFlLDB4YjEsMHgwNywweDg4LDB4ZDEsMHhlMywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4YzUsMHg4ZiwweGYxLDB4NjMsMHhhYywweDEwLDB4Y2IsMHg1MCwweDNiLDB4YzMsMHgwZiwweGQxLDB4MDMsMHhjOCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4MjAsMHgzYiwweGMwLDB4MmUsMHhmMSwweDAzLDB4MWMsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4NGYsMHhkMSwweDAzLDB4OTAgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4ZmIsMHg0NCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4NGYsMHhiMywweDQzLDB4MjQsMHgwMCwweGRiLDB4MTAsMHgzNiwweGMwLDB4NGMsMHhiZSwweDIyLDB4NmQsMHgyMCwweGNiLDB4NTAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4M2UsMHhjOSwweDRjLDB4YjAsMHgxMywweDI0LDB4MDAsMHhjZiwweDIwLDB4MzMsMHhjMCwweDNkLDB4ZjAsMHgyMywweDJjLDB4YzAgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4NDAsMHg4ZiwweDMwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDQsMHhiNywweDYwLDB4MjEsMHhjMSwweDhiLDB4ZjAsMHhhMiwweDE0LDB4MTAsMHg4NywweDAwLDB4MGYgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4YzgsMHgwZCwweDcxLDB4MGEsMHgxZCwweDAwLDB4ODcsMHgwMCwweDJjLDB4Y2MsMHg0OCwweDcwLDB4MmEsMHg5YywweDAwLDB4ODcgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4MGMsMHgyMSwweGMwLDB4MGMsMHg3MiwweDAyLDB4MGMsMHhhMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YjMsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODEsMHgwNSwweGU0LDB4MDgsMHg3OSwweDAyLDB4NWMsMHg4MCwweDg3LDB4YTAgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4MmQsMHhlMCwweDA4LDB4ZjgsMHgwNiwweGI2LDB4MDAsMHg4NywweDgwLDB4MjAsMHhlNCwweDBhLDB4N2IsMHgxMiwweDFlLDB4OTAgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4OTcsMHg4OCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MGUsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkMCwweDBiLDB4YjAsMHgwMiwweDZlLDB4MzQsMHhhMywweDAwLDB4MmMgfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4YzEsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg4ZCwweDgwLDB4ODMgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4YzAsMHgwMCwweGMwLDB4OGEsMHgzMCwweDEyLDB4MGMsMHgwMCwweDgwLDB4MDAsMHgyYywweDE2LDB4MGIsMHgzOCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMzLDB4ODggfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MGYsMHhhMCwweDAzLDB4NzksMHg5MCwweGZhLDB4MDEsMHgzNiwweDgwLDB4MWMsMHhhMCwweDAzLDB4NjgsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4M2UsMHg4MSwweDJjLDB4YTAsMHgwYiwweGI5LDB4MGMsMHhjZSwweGUyLDB4YjIsMHg4MCwweDhlLDB4YTAsMHgwYiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4ZGEsMHg4MCwweDNjLDB4YjAsMHgwZiwweGUwLDB4ODMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MDAsMHhjOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MjMsMHhhMCwweDAwLDB4ZjAsMHg0MCwweDNlLDB4MTAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4NDgsMHgzZSwweDEwLDB4MGMsMHg4MCwweDAzLDB4YzAsMHgxMCwweGY4LDB4ODAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDIgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjQsMHgxOCwweGY5LDB4MTAsMHgzYywweDQ4LDB4NjgsMHg5MiwweDEzLDB4ZTQsMHgwMCwweGE5LDB4MTEgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4YjIsMHg2MCwweDBlLDB4OTEsMHgwMywweDI2LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg2MCwweDBjLDB4MTAsMHgwMywweDI0LDB4MDggfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MjMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDgsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4NDIsMHg0OCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ODksMHg4MCwweDIyLDB4NzAsMHgwOCwweDE0LDB4MjIsMHhhNCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4NDIsMHgyYSwweDcwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4YTAgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4OTksMHgwMCwweDI2LDB4YzAgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMSwweGE5LDB4MDAsMHgwZSwweDQwLDB4MGEsMHg5MCwweDQ2LDB4YzQsMHgwYSwweDg5LDB4MDAgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4MjAsMHg0OCwweDBhLDB4OTAsMHgwMiwweDA1LDB4ODAsMHg4MSwweDQxLDB4YTAsMHg1OCwweDg4LDB4OTAsMHgwMiwweDI0LDB4MDggfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4OGQsMHg4MCwweDJmLDB4YzAsMHgwOCwweDk4LDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0MCwweDBiLDB4MTIsMHgwMiwweDg0LDB4MDAsMHg4MSwweDI0LDB4MmMgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NTgsMHgwYSwweDMyLDB4MjIsMHhjNSwweDg0LDB4YTEsMHgwMCwweDIwLDB4NTAsMHgwOCwweGIwLDB4MDIsMHg4NSwweDA4LDB4ODEgfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4NDAsMHgyMCwweDVhLDB4MDgsMHgxNiwweDgyLDB4MDQsMHgwMCwweGE1LDB4MDAsMHgyZCwweDQwLDB4MDgsMHgxMiwweDgyLDB4ODIgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDM2LDB4MTQgfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MGYsMHg4NSwweDIzLDB4MDEsMHg0MCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDQzLDB4YzAsMHgwOCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4MzIsMHg4MCwweDBlLDB4ODAsMHgwMywweDIwLDB4MDAsMHhjMCwweDAwLDB4MzIsMHgwOCwweDJjLDB4MDIsMHgwMywweDIwLDB4MDggfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4YzgsMHgwMCwweDNmLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4OTEsMHg0MywweGY0LDB4MDQsMHhmOSwweDEwLDB4M2UgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4NDQsMHgwZCwweDExLDB4MDMsMHhlNCwweDQ0LDB4NTksMHg0MCwweDNlLDB4NTAsMHg0ZiwweDUwLDB4NDMsMHhkNCwweDAyLDB4ZmQgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4NDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHg2NiwweDYwLDB4YzksMHhlMCwweDMyLDB4NDQgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGRkLDB4ODQsMHgzZiwweDY4LDB4OGYsMHhkOCwweDQyLDB4ZTYsMHhhMCwweGRkLDB4YTQgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4MzMsMHg2OCwweDBkLDB4NzAsMHgwMywweDI1LDB4MDAsMHhjOSwweGUwLDB4YjIsMHg2OCwweDBjLDB4OWEsMHhjMywweDI2LDB4MDAgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4OTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4MDAsMHg4OCwweDgwLDB4YWEsMHgyMCwweDhiLDB4ODgsMHgwMiwweGUyLDB4ODgsMHhiOCwweDAxLDB4MmUgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4MDAsMHgwYiwweDg0LDB4MDIsMHhlMiwweGIwLDB4ODgsMHg1MCwweDIyLDB4MTQsMHgwOCwweDgwLDB4MDIsMHg4MiwweDgwLDB4ODggfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4ZTAsMHhiNiwweDNhLDB4MDgsMHhjZSwweGEyLDB4MjEsMHgwOCwweDg4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHhjNCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHg2MCwweDY4LDB4NDggfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4NWIsMHgxNiwweDAyLDB4YzQsMHgyMCwweGExLDB4NDAsMHg2YywweDUwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHgwMCwweGExLDB4MDAgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4OTAsMHgyMiwweDE0LDB4OTAsMHg4NSwweDQyLDB4MjEsMHg1MCwweDViLDB4NTAsMHgxYSwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4OTUsMHgwMCwweDJkLDB4NDAsMHgwYiwweDUxLDB4MGEsMHg4MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4OSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHg0NiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MmUgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MjAsMHhlNCwweDAwLDB4YjksMHgwMCwweDI2LDB4NDAsMHgxOCwweGI4LDB4MDIsMHhhNCwweDAyLDB4OGQgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MDgsMHgyZiwweDQwLDB4OGIsMHhkMCwweDAyLDB4MjQsMHgwMCwweDhkLDB4MjAsMHgyZiwweDQ4LDB4MGIsMHhkMCwweDAyLDB4ODYgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4ZTQsMHgxMCwweDQ5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGU5LDB4MDEgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4MzYsMHg0MCwweDBmLDB4MTgsMHgxMywweDI0LDB4MTAsMHhjOSwweDgyLDB4MzIsMHg0MCwweDdmLDB4OTAsMHgyMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4ZDksMHgyMCwweDNlLDB4NzIsMHgwZiwweDkwLDB4MDMsMHhhOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDIsMHhmMSwweDAxLDB4MTYsMHg0MCwweDRmLDB4OTAsMHgwMywweGU1LDB4MTAsMHhmOSwweDA4LDB4MmUgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDAwLDB4YzksMHgwMSwweDNhLDB4NDAsMHgxZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MjAsMHgzNCwweDQwLDB4OGMsMHg5MCwweDAzLDB4YzQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHgxMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAyLDB4NGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGQwLDB4MDAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4M2UsMHgwMCwweDBlLDB4ODEsMHgwMywweDMwLDB4MDAsMHhjYywweDQwLDB4MzMsMHgwMCwweDBjLDB4YzAsMHgwYiwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4ZTgsMHgwMCwweDNlLDB4MTAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHhiYSwweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiZSwweGM4LDB4NmYgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4ODAsMHgwYiwweGUxLDB4MjIsMHhhOCwweDAwLDB4OGUsMHgyMCwweDJmLDB4ODAsMHgwYiwweGUwLDB4MjMsMHg2OCwweDAwLDB4OGEgfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhlMCwweDAyLDB4MjksMHgwMCwweDhhLDB4MDAsMHgyZSwweGE4LDB4MGIsMHhhMCwweDAwLDB4Y2EgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4YzEsMHgyYywweGUwLDB4MGIsMHgzOCwweDU2LDB4MmMsMHgxMCwweDEzLDB4MDAgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4MmUsMHhjMCwweDBhLDB4MzgsMHg2YSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjAsMHgwMCwweDA5LDB4ODAsMHgyMiwweDRjLDB4NDIgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4YTMsMHgwMCwweDJjLDB4ZTAsMHgwYiwweDI0LDB4ODAsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDgsMHhiNywweDI0LDB4MmYsMHhlMCwweDA5LDB4MzksMHgwMiwweDFjLDB4MDEsMHhiNiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4OTAsMHgwYiwweDYwLDB4OTIsMHg4ZSwweDAwLDB4ODYsMHg4MiwweDJkLDB4YzIsMHgwYiwweGYwLDB4MDIsMHg1YywweDA2LDB4ODcgfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4MDAsMHg2MCwweGMwLDB4MjksMHg3MCwweDAyLDB4NWMsMHgwMCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDQwLDB4ZjMsMHhlNCwweDNkLDB4ZTggfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4MGQsMHg3OSwweDBiLDB4MWUsMHhjMCwweDY3LDB4ODAsMHgyZCwweGUwLDB4MGYsMHg3MCwweDQzLDB4MWQsMHg4MCwweGQ1LDB4MDAgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4M2QsMHg2MCwweDBlLDB4NzgsMHgwMywweDFlLDB4MDAsMHhjZCwweDgwLDB4MzEsMHhlMCwweDBkLDB4YzgsMHgwMywweDRlLDB4MDAgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4ZTUsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDQ4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4ODAsMHhmYiwweDAwLDB4NzAsMHhjMCwweDZlLDB4YjYsMHgxMywweGFkLDB4NDAsMHhmYSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4YzAsMHgwZiwweDIwLDB4NDMsMHgyZCwweDE4LDB4NTksMHgwMCwweDNlLDB4MDAsMHgwMywweGIwLDB4MGIsMHhlMCwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGUsMHhiMCwweDEzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQwLDB4ZmYsMHg4MCwweDNmLDB4ZTYgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MGYsMHhmOCwweDIzLDB4MmUsMHgwNCwweGZmLDB4OTAsMHgzZiwweGU0LDB4MGQsMHhiYSwweDAzLDB4ZmYsMHg0MCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4MjIsMHhlMSwweDBjLDB4MzksMHg0MywweDMyLDB4MTAsMHhlYywweDkwLDB4MzMsMHgyMCwweDhlLDB4YzgsMHgwMywweGYyLDB4MDAgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4ZGYsMHg4MCwweDNmLDB4NjAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4YTgsMHgxMSwweDljLDB4NDAsMHhiNywweDkwLDB4M2MsMHhlMCwweDBiLDB4M2EsMHgwMywweDRlLDB4ODAsMHhmMywweGIxLDB4MmQgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MDQsMHg0YywweDM4LDB4MjMsMHhhZSwweDAwLDB4ODAsMHg4MCwweDM0LDB4ZTgsMHg0ZCwweDc4LDB4MDIsMHgzZSwweDgwLDB4ODcgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4YTAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4YzAsMHg4MCwweDg2LDB4MDIsMHgyZCwweDQxLDB4MGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDQ4LDB4MzcsMHgwMSwweDJkLDB4YzkgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4MGIsMHg3MiwweDIyLDB4MWMsMHg4NCwweGI1LDB4MTYsMHgwZCwweGM0LDB4MTksMHg0MCwweDQyLDB4ZGMsMHg4MCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4MjAsMHhjOCwweDg4LDB4NzMsMHgwYSwweDljLDB4ODAsMHhiNSwweDAwLDB4MjksMHhjMCwweDBhLDB4NDgsMHgwMiwweGMwLDB4MDIgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4OTUsMHgwMCwweDJkLDB4NDIsMHgwYiwweDU4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmEsMHhlMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MjAsMHhhMSwweDAxLDB4MjQgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4YzEsMHgwOCwweDAwLDB4MDIsMHg4YywweDAwLDB4ODEsMHgwMCwweDI0LDB4ODAsMHgwOSwweDM4LDB4MGEsMHg2MCwweDgwLDB4OTIgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4NDAsMHgyYSwweDAwLDB4MGEsMHgzMCwweDAyLDB4YzAsMHgwMCwweDgwLDB4YzgsMHgyYywweDcyLDB4MGIsMHgxNCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4ZjQgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4OGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMiwweGMzLDB4MDEgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4MzIsMHhjMCwweDQ4LDB4YjgsMHgxMywweGExLDB4MDAsMHhiYSwweDAwLDB4MmEsMHgwMCwweDBhLDB4YTAsMHgwNywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ZGIsMHhjOCwweDNlLDB4OTAsMHgwZiwweGEyLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2UsMHhjNCwweDBmLDB4YjAsMHg2MywweGVjLDB4MDEsMHhmOCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4NDAsMHgwYiwweDgwLDB4MDMsMHhjYywweDAwLDB4ZmEsMHg0MiwweDNlLDB4YzAsMHgwZiwweGI1LDB4MDAsMHhhYywweDU4LDB4ZTkgfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4ODIsMHgzZSwweGMwLDB4MWQsMHg5MCwweDAzLDB4ZWMsMHgwNCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDBjLDB4ZGYsMHgwMCwweDdmLDB4YzAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4MmMsMHhmMCwweDAzLDB4N2MsMHgwMSwweGM3LDB4MDAsMHgzMywweDQwLDB4OGYsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4MTUsMHg0NCwweDBjLDB4ZTAsMHgxYiwweDNjLDB4MDAsMHhjYiwweDBlLDB4MzMsMHhjMCwweDVjLDB4NjIsMHgwMiwweDFjLDB4MDIgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4YzUsMHgwMCwweDJiLDB4ODAsMHgwZiwweGMwLDB4ODcsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4ODEsMHg0NCwweDZjLDB4MTAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHg1MiwweDBjLDB4MDEsMHhmYSwweGM0LDB4MjIgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4NjEsMHgwYiwweDg4LDB4MDMsMHg2YywweDAwLDB4ODgsMHg0NywweDJhLDB4MDAsMHgwZSwweDFjLDB4MDIsMHgyMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MDAsMHhhYSwweDAwLDB4MjgsMHg5MCwweDBhLDB4MmMsMHgwNCwweGE4LDB4MDAsMHgyMiwweDkwLDB4MGIsMHg4MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4YzEgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4MDgsMHgzMCwweDEyLDB4NmMsMHgwMCwweDg4LDB4ODgsMHgyYSwweDMwLDB4MGIsMHhiOCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MDggfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4MmEsMHg0MCwweDA4LDB4YjgsMHgwMiwweDIwLDB4MDAsMHg4MiwweDEwLDB4MjIsMHgwMCwweDA4LDB4YTAsMHgyMiwweGEwLDB4MDAgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4OGIsMHgwMCwweDJhLDB4MDIsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MDgsMHgwMCwweDBjLDB4MDAsMHhiMywweDIwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDJjLDB4YzAsMHhhMCwweDA4LDB4MjAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MDAsMHgwYiwweDMzLDB4NDYsMHhjZCwweDI4LDB4ODAsMHgyMCwweDI4LDB4YzAsMHgwYiwweDMyLDB4MDIsMHgwYywweDIwLDB4ODEgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4MzAsMHgyOCwweGMwLDB4MDgsMHgxMCwweDAyLDB4ODEsMHgwMCwweGFhLDB4MDAsMHgyOCwweDAwLDB4MDMsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDAwLDB4ZmIsMHgyOCwweDJlLDB4Y2MgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4MGMsMHg3MCwweDUzLDB4N2QsMHgwOSwweDg4LDB4MDAsMHhiYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZmQsMHg4MCwweGRhLDB4NjAgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4M2EsMHg1MCwweDhjLDB4YTIsMHg4MywweDJjLDB4ODAsMHg0YiwweDIwLDB4MzAsMHhjMCwweDI4LDB4YTAsMHgwMywweGExLDB4MDAgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4YzksMHgwMCwweDNhLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYiwweDAwLDB4N2UsMHhjOSwweDBiLDB4YjYsMHgwMywweGZjLDB4YzAsMHhmOCwweDBjLDB4M2YgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MDAsMHg0ZiwweGMzLDB4NDMsMHgyYywweDAwLDB4YjgsMHgzOCwweDNmLDB4OGUsMHg1ZSwweGYwLDB4NDMsMHhlMCwweDEwLDB4ZjggfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MzAsMHgzZiwweDAxLDB4MGYsMHhkMCwweDAzLDB4NzAsMHgwMCwweGZjLDB4MDAsMHgzNywweDAwLDB4MGQsMHhkMCwweDA3LDB4ZTkgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4MDMsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweGUwLDB4Y2MsMHg4MCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MGQsMHhmMCwweDgzLDB4ZmMsMHg4MCwweGRjLDB4OTQsMHgzMywweGMwLDB4MWMsMHhmMSwweDAzLDB4N2QsMHg4YywweGZmLDB4MzAgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4M2YsMHgzMCwweDhmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhjZiwweDkwLDB4MzksMHhhMCwweDhkLDB4ZjgsMHgwMywweGFlLDB4MDAgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4ZDUsMHg4MCwweDEzLDB4ZTAsMHgwYywweDU4LDB4MDMsMHhmMCwweDAxLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4ODAsMHgxMCwweGRkLDB4MDgsMHg4OCwweDAwLDB4MjMsMHhjNCwweDA4LDB4ZmMsMHgwMiwweGVjLDB4YTgsMHhjYiwweDIwLDB4MjEgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4YzIsMHgwZCwweGY3LDB4MTIsMHgxYywweDQwLDB4ZGYsMHgzMCwweDIyLDB4YTAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4ZGIgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4MjEsMHgyMiwweGMwLDB4MDgsMHhiOCwweDIyLDB4MmUsMHgwMCwweGI5LDB4ODAsMHgyYSwweDYwLDB4MGEsMHg4OCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4NDUsMHhjYywweDEwLDB4ODAsMHgyYywweDI4LDB4Y2EgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4NjgsMHgzMCwweDAyLDB4OGQsMHgwMCwweDliLDB4MjAsMHgyOCwweGM0LDB4MDgsMHgzMiwweDAyLDB4Y2MsMHgxMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4MjQsMHgwOCwweDBiLDB4ODAsMHg0MiwweDZjLDB4MDAsMHg4MywweDAwLDB4MmEsMHhjYSwweDNhLDB4YjAsMHgwMiwweDhjLDB4MDQgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4YjAsMHgwNCwweDI4LDB4YzAsMHgwOCwweDEwLDB4MDIsMHhlMywweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4YzAsMHgxNSwweDhjLDB4MDIsMHg4MCwweDQwLDB4YWEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg5YiwweDIwLDB4MmEgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4YzAsMHg4OCwweGIwLDB4MDIsMHhhYywweDAwLDB4OWIsMHgwMCwweDI2LDB4ZTAsMHgwMywweDgwLDB4ODIsMHgyYywweDI4LDB4OWIgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MjAsMHgyMiwweGUxLDB4MGIsMHhiMiwweDAyLDB4YWMsMHg4MCwweGI4LDB4ODAsMHgyYSwweGMxLDB4MGEsMHg5OCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzgsMHg1MCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGRiLDB4ODgsMHhiYSwweGMwLDB4MDgsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4MzYsMHg2MCwweDBmLDB4OGMsMHg2MywweDZjLDB4MDAsMHhjYiwweGMwLDB4M2EsMHg4MCwweDBlLDB4YmUsMHgwMywweGFmLDB4ODQgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4NzksMHg4MCwweDNhLDB4ODgsMHgwNCwweDk4LDB4MDEsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDgwLDB4MzUsMHhjMCwweDRmLDB4ZjAsMHgwMywweGRjLDB4MDAsMHhlZiwweDAwLDB4MzcgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4YzAsMHhhZiwweGYwLDB4MDMsMHgxYywweDAxLDB4NmYsMHgwMCwweDEzLDB4MDAsMHgwZiwweGMxLDB4MjMsMHhmYywweGI4LDB4ZmYgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4MDQsMHgzNywweGMwLDB4MGMsMHhmOCwweDQzLDB4N2UsMHgwNCwweGZkLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhkMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4NDAsMHgzOCwweGMxLDB4MGUsMHhiMCwweDQzLDB4MmMsMHgwOCwweGMzLDB4MDAgfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4M2UsMHg0MCwweDBlLDB4ODIsMHgwMywweDZkLDB4MDAsMHhkYiwweDQwLDB4MzIsMHhjMSwweDVmLDB4YjQsMHhhMywweGVkLDB4MjAgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4YzksMHg0MCwweDMyLDB4ZTAsMHg4ZiwweDk4LDB4NDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhjMCwweDI4LDB4ZjUsMHhjMiwweGZjLDB4MDAsMHhiMywweDA0LDB4MjMgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4YzEsMHg0OCwweGYwLDB4MjIsMHhiYywweDA2LDB4YWYsMHgwMCwweDBlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHhjZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWUsMHgwMCwweDgxLDB4ZTAsMHgzNCwweGEwLDB4MGIsMHg5MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAyLDB4ODAsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4MDksMHgzYywweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDEgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MmMsMHgwMCwweDBhLDB4MDUsMHgwMiwweGNkLDB4NTgsMHhiYiwweDAwLDB4MjAsMHgwMCwweDBhLDB4M2QsMHgwMiwweGNmLDB4NDAgfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4MjEsMHgyMCwweDYwLDB4YzAsMHgwOSwweDEwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg4NCwweDgwLDB4MjgsMHhlNCwweDg4LDB4NzgsMHg0MiwweGRlLDB4MDAsMHhiNywweDkwLDB4NjUgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4ZTQsMHg4OCwweDdhLDB4NDIsMHg5ZSwweDQwLDB4YTcsMHg5MCwweDJkLDB4YTAsMHgwYSwweDQ4LDB4MjIsMHhkZSwweDA0LDB4YjcgfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4ODAsMHgyMywweDYwLDB4NDgsMHg3OCwweDQyLDB4ZmUsMHg4MCwweGFmLDB4OTAsMHg2NSwweGUwLDB4MGIsMHhlOCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YzgsMHgwMCwweDM4LDB4YzAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGUsMHhiYSwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4M2UsMHgwMCwweDRlLDB4MjIsMHgwMiwweGNjLDB4YzAsMHhmYiwweDQwLDB4MzAsMHhjMCwweDBhLDB4MzAsMHgwMywweGNlLDB4ODAgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4ZTEsMHg0MSwweDMwLDB4YzksMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MjAsMHhmYywweDAwLDB4MzcsMHhjMiwweDBlLDB4ZjEsMHgyMywweGVjLDB4NDAsMHhmZiwweDA0LDB4M2EgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4YzAsMHgwZiwweGIwLDB4MjMsMHhmYywweDAwLDB4ZmYsMHgwNCwweDNlLDB4YzAsMHgwZCwweGEwLDB4MDMsMHhmYywweDU4LDB4ZmYgfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MDAsMHhiZiwweGMwLDB4MDYsMHhmMCwweDgzLDB4ZGMsMHg2MiwweGRmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MTAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDgwLDB4YzksMHgwMSwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4OGMsMHhiMiwweDA3LDB4YWUsMHgwNCwweGNiLDB4ODAsMHgzYSwweGM4LDB4NGMsMHhiMiwweDAzLDB4MmMsMHg4NCwweGNiLDB4MzAgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4YjAsMHhlMCwweDBkLDB4ODgsMHgwYiwweDJjLDB4MDAsMHhlYiwweDAwLDB4MzAsMHgwMCwweDBjLDB4YmMsMHg4MywweDJkLDB4ODAgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4ZmIsMHgwMCwweDMyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4NDAsMHg4NywweDAwLDB4MmMsMHhjYywweDA4LDB4NzYsMHg4MiwweDNjLDB4ODIsMHg4NywweDAwLDB4MjEgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4YzIsMHg4ZCwweDMyLDB4ODIsMHgwZCwweDRjLDB4YTcsMHgyOCwweDIxLDB4ODAsMHgwOCwweDQwLDB4MDIsMHgxZCwweDgwLDB4YmYgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4MjAsMHgzNSwweDQwLDB4MDksMHg3MiwweDQzLDB4NWMsMHhhMCwweGI3LDB4MDAsMHgyOSwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4ZGUsMHhjMCwweDhmLDB4ODAsMHgyOCwweGVjLDB4MjgsMHg3YiwweDBhLDB4OWUsMHg5NCwweDgzLDB4ODQgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4MjMsMHhlMCwweDA5LDB4NTgsMHg1MCwweDllLDB4MTAsMHhhNywweGIwLDB4MjMsMHhlMCwweDBiLDB4NzgsMHgwMiwweDFlLDB4MjAgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4YjcsMHg4MCwweDIxLDB4ZTAsMHgwOSwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDIsMHg4MiwweDFjLDB4MmMsMHhjMCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweGMwLDB4MjAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MDIsMHgwYywweDAwLDB4YTMsMHgwMCwweDYwLDB4ZDIsMHgwOCwweDFkLDB4MDIsMHgwZiwweDIwLDB4YmIgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4MjQsMHgyNCwweGMwLDB4MGIsMHgzYywweDAyLDB4NGYsMHgwMCwweGIzLDB4ODAsMHgyOCwweGQ4LDB4MDksMHgzMiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhhOCwweDAwLDB4Y2UsMHg4NCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGNlLDB4YzAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAzLDB4YTgsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4MzMsMHg4MCwweDBkLDB4ZWMsMHgwMywweDNiLDB4ODAsMHhlZSwweDgyLDB4MzMsMHg4MCwweDBhLDB4YzAsMHg4NywweDEwLDB4NDAgfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4ZjYsMHhjMCwweDMzLDB4OTAsMHhhZCwweDY0LDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDIsMHhmOCwweDAwLDB4M2MsMHgwMCwweDFmLDB4MDQsMHgwMywweGEwLDB4MDQsMHhmOCwweDMwLDB4M2UgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDQsMHgwZiwweDgwLDB4OTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MmMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MTgsMHgzZSwweDEwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4YTQsMHgxMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MDQsMHg5MCwweDAzLDB4MjQsMHgwMCwweDQxLDB4MDAgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTEsMHgxMywweGUxLDB4MDgsMHhmOCwweDAwLDB4MzIsMHg0MCwweDA4LDB4ODksMHg4MywweGEyLDB4MDAgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweDkwLDB4MGIsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBkLDB4OTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHg4YiwweDk0LDB4NDIsMHhlMiwweDIwLDB4YjggfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4ZTUsMHgwNCwweGE5LDB4OTAsMHgzNCwweDYwLDB4MDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDEwLDB4OTksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGE5LDB4MDAgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4MmEsMHg0MCwweDBiLDB4OTAsMHg4MiwweGUwLDB4MDEsMHhiOCwweDAwLDB4MjAsMHg0MCwweDNhLDB4OTAsMHgwMiwweGE0LDB4NDQgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4ODksMHgwNCwweDIyLDB4NjIsMHgwOCwweDk4LDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4OGEsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA5LDB4MzIsMHgwNiwweDQ0LDB4ODAsMHhiMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg4NCwweDgwLDB4YTEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4NDAsMHgyMCwweDUwLDB4MGEsMHgyNCwweDAyLDB4YzksMHgwMCwweGEzLDB4MDAsMHgyNCwweDQwLDB4MDgsMHgxMSwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNlLDB4MTQgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGY4LDB4NTEsMHgzNiwweDE0LDB4MmUsMHg4NSwweDQzLDB4MjEsMHg0MiwweGU4LDB4NTAgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4M2EsMHgwMCwweDBmLDB4ODAsMHgxMiwweGUwLDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwMCwweDFlLDB4ODAsMHg0MywweGEwLDB4MDAgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4YzgsMHgwMSwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDRlLDB4MTEsMHgwMywweGE0LDB4NDAsMHhiNSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4NDQsMHgwZCwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZDksMHgxMCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhlNSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGQsMHg0NCwweDAzLDB4ZjEsMHgwMCwweGY1LDB4MDIsMHgzZCwweGMwLDB4MmYsMHhkMiwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNywweDAwLDB4ZTksMHgwMCwweDM2LDB4NjAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4MGQsMHhkYSwweDAzLDB4ZTYsMHg0MCwweGY5LDB4NDAsMHgzZSwweDY4LDB4MGMsMHg5YSwweDAzLDB4NjYsMHgyMCwweDg5LDB4YTAgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4MzMsMHg0MCwweDBlLDB4OTAsMHgwNywweGE2LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg1MCwweDBjLDB4Y2EsMHgwMywweGYzLDB4ODAgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4YzUsMHgwMiwweDMzLDB4NDAsMHgwYywweGMwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4MzgsMHgxMCwweGUzLDB4MDQsMHg4OCwweGEyLDB4MjAsMHgzOCwweDA4LDB4ODAsMHgwMiwweGUzLDB4NDAsMHhiMCwweDgwLDB4MmUgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MjgsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4ODgsMHg4MCwweDIyLDB4MDAsMHhkYiwweDg4LDB4MDIsMHg2MiwweDA0LDB4YjggfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4YjAsMHgyZSwweGE4LDB4ODgsMHg4ZSwweGEyLDB4ZWEsMHg4MCwweDg4LDB4MDAsMHgyYSwweDAwLDB4MjgsMHg4OCwweDAzLDB4OGUgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDgyLDB4YTksMHgwOCwweDJjLDB4NTIgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjEsMHgwYywweDUyLDB4ODgsMHgxNCwweDAyLDB4NDQsMHgyMCwweDkxLDB4NjkgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MTAsMHg4MiwweGM2LDB4ZTAsMHhiMSwweDBjLDB4MmMsMHg0OCwweDA4LDB4MDEsMHgwMiwweGUxLDB4OTMgfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4YTEsMHgwMSwweDI0LDB4NDEsMHgwYSwweDEwLDB4MDIsMHhjMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMCwweGU0LDB4MDAsMHgzOSwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NjIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDYyLDB4NDAsMHg4YiwweDgwLDB4MDIsMHhlMCwweDU0LDB4YjkgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4MGMsMHgyZSwweDQwLDB4MDksMHhiNiwweDUyLDB4ZWMsMHgwMCwweGE5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MiwweDgwLDB4ODYgfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZTEsMHg2MCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4MGQsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MzAsMHgzZSwweDQwLDB4MmMsMHg5MCwweDQzLDB4NjQsMHgwNiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4MzIsMHg0OSwweDBlLDB4OGQsMHg5MywweGUwLDB4MDAsMHhmOSwweDAwLDB4MmUsMHg0MCwweDJjLDB4OTQsMHgwMywweGM3LDB4NDAgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4ZTksMHgyMCwweDMwLDB4NTUsMHgwZSwweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4MWUsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgwLDB4M2MgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwNCwweGJlLDB4NDAsMHgwZiwweDg4LDB4MzMsMHg2MiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4YzIsMHgzZSwweDQ4LDB4MmUsMHg4OCwweDMzLDB4ZTIsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDYwLDB4MGQsMHg4MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MGQsMHg4MCwweDAzLDB4YTAsMHgwNCwweGU4LDB4NDAsMHhiYSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwNCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4M2EsMHgwMCwweDBlLDB4OGMsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyLDB4MzIsMHgwMCwweDBlLDB4ODAsMHgwMywweDYxLDB4MjAgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MTYsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDAwLDB4MmUsMHg4MCwweDA4LDB4ZTIsMHgwMywweDI4LDB4MDAsMHg4YSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDA0LDB4OGEsMHgwMCwweDJlLDB4YTIsMHgwOSwweGU4LDB4MDIsMHhmYSwweDA0LDB4YmUgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4MDAsMHhhMiwweDgwLDB4MDgsMHhjZCwweDgyLDB4MzMsMHgyMCwweGI2LDB4YzAsMHgzNywweGEwLDB4NGIsMHhjOCwweDgyLDB4Y2EgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2YywweDAwLDB4ODMsMHgwMCwweDI2LDB4YzAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4MDksMHgzOCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4MjgsMHhlMCwweDBiLDB4MzAsMHgwMiwweGNlLDB4ODEsMHhiMywweDAwLDB4NjIsMHhjMCwweDA4LDB4M2MsMHgwMiwweDRmLDB4MDAgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4YjMsMHhhMCwweDIwLDB4YjAsMHgwMywweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4NDEsMHg4NywweDM0LDB4MmQsMHhjMCwweDA4LDB4NjAsMHgwMiwweDllLDB4NDAsMHhiNywweGEwLDB4MmQgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHhkYywweDAwLDB4ODcsMHgyMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4ODIsMHhkZCwweDg1LDB4YmYgfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4ODEsMHg2MywweGM4LDB4ODgsMHg3YiwweDAyLDB4MWMsMHgwMCwweGI3LDB4NDAsMHg2NSwweDAwLDB4MWIsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4ZGQsMHg3MCwweDAzLDB4ZmUsMHg4MCwweGY3LDB4OTAsMHgzZiwweGUwLDB4MmMsMHg3OSwweDAzLDB4ZmUsMHg4MCwweGM3LDB4YTAgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4MzksMHhlMCwweDBmLDB4N2EsMHgwMiwweGRlLDB4ODQsMHhmNywweGMyLDB4MzEsMHhmMiwweDBjLDB4NzksMHgwMywweDVlLDB4MDQgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4ZjcsMHg4NCwweDMxLDB4NjAsMHgwZiwweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MGEsMHhmYiwweDYwLDB4N2UsMHhkNCwweDBmLDB4MzAsMHgwMywweDZjLDB4MDAsMHhjYiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4ZGUsMHgyZiwweGIyLDB4MDMsMHhlZCwweDQyLDB4MWIsMHg2MCwweDNlLDB4YzEsMHgwZCwweGIxLDB4MDMsMHhlYywweDUwLDB4ZjcgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4ODAsMHgzZCwweGQ4LDB4MmUsMHgzMiwweDAzLDB4ZWMsMHgzMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2IsMHhkMCwweDNmLDB4ZjAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4NGMsMHhmOCwweDEzLDB4ZmUsMHgwMCwweGNmLDB4ODgsMHgzZiwweGUwLDB4MGMsMHhmOCwweDQzLDB4M2YsMHgwMCwweGNmLDB4YzggfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlMCwweDJjLDB4ZjgsMHgwMywweGJlLDB4MjAgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4YzcsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDEsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4YTgsMHgwMSwweGJjLDB4NDAsMHg4NywweDkwLDB4M2QsMHhjMCwweDA4LDB4NDAsMHgwMiwweGRjLDB4ODAsMHhkNywweDAwLDB4MmQgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4YzAsMHgwYywweDMwLDB4MDMsMHg3YywweDAwLDB4ODcsMHgxMCwweDIxLDB4YzQsMHgxZSwweDcwLDB4MjAsMHhkYywweDQ0LDB4YjcgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGMsMHg3MSwweDAyLDB4MWMsMHg0MCwweGQ3LDB4MDIsMHgyOSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHgzMiwweDJkLDB4YzAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweGMwLDB4MmIsMHg3MCwweDBhLDB4NWMsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4MjMsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRkLDB4MDAsMHhiNywweDAwLDB4MmQsMHhjNCwweDBiLDB4ZjAsMHgwMiwweDljLDB4MjAgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4ODcsMHgxOCwweDI5LDB4NDAsMHgwOCwweDcwLDB4ODIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MywweDAyLDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGNjLDB4MDgsMHg4MywweDQwLDB4MmUgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4YzAsMHgyYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIsMHgwMCwweDIwLDB4ZjIsMHgwYSwweDMwLDB4MDIsMHhjZSwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4ODgsMHgyYSwweGQwLDB4MGEsMHgzMCwweDA2LDB4MGMsMHgwMCwweDkyLDB4MDAsMHgyOCwweDc4LDB4MDgsMHgzYywweDQyLDB4MDggfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAyLDB4YzcsMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4MmMsMHg5MCwweDAyLDB4ZmMsMHgwMiwweDhmLDB4ZDgsMHgzZiwweGMwLDB4NGIsMHhmMCwweDAyLDB4N2MsMHgwMiwweGNmLDB4MDAgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4MjAsMHhmMiwweDA4LDB4YjAsMHgxMywweGVlLDB4ODAsMHhmZiwweDAwLDB4M2YsMHhkNCwweDJlLDB4YmQsMHg4MywweGFjLDB4MDAgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4Y2IsMHg4MCwweDNhLDB4YTAsMHhhYywweGI4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4ODQsMHgwMywweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4YzAsMHgwMSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCwweGJlLDB4YzAsMHgwZSwweGIwLDB4MjMsMHhlYywweDA4LDB4ZmIgfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGQsMHhiNCwweDAzLDB4ZWQsMHgwNCwweGY5LDB4MDAsMHgxZSwweDE0LDB4Y2YsMHhiMCwweDgzLDB4ZTAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4MGMsMHg0MCwweDAzLDB4YWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MmMsMHhiMCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4YjMsMHhlMCwweDBkLDB4ZmEsMHgwMywweDdlLDB4ODAsMHhjZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZmMsMHg0MywweGZmLDB4MjAgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwOCwweGY4LDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MTAsMHhhYiwweDAwLDB4MmEsMHhjMCwweDBhLDB4OGUsMHg0MiwweDJjLDB4MDQsMHhiYiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweDNhLDB4YzAsMHgwZSwweDMwLDB4MDIsMHgwZCwweDA4LDB4ODMgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4MDIsMHgyMiwweGMwLDB4MGEsMHhiYywweDAyLDB4ZWYsMHgwMCwweGJiLDB4YzAsMHgyYywweDY4LDB4MGEsMHhiOSwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwYywweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4MDgsMHhiOCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MjYsMHg0OCwweDE5LDB4YjAsMHgwMiwweDZkLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDBhLDB4YjAsMHgwMiwweGVjLDB4MDQgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4YmIsMHgxYywweDJlLDB4MjAsMHgwYSwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4MDgsMHgxNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDBjLDB4MDAsMHg5MywweDA0LDB4MmMgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4YzEsMHgwOCwweDMwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDI0LDB4NDEsMHgwOSwweGI4LDB4MDIsMHgwYywweDAyLDB4ODMgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MDEsMHhhMCwweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgxMCwweDkzLDB4MDAsMHgyYywweDAwLDB4MGEsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg3YywweDAwLDB4Y2YsMHgyOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4MGMsMHhhMCwweDQ2LDB4YWMsMHgxMSwweGJmLDB4MDAsMHgzZiwweGMwLDB4NWMsMHhmMCwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDQgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4YjAsMHgwMywweDZjLDB4MDgsMHhjYiwweDA0LDB4MzEsMHhjMCwweDBjLDB4YjAsMHgzMywweGVkLDB4NDAgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4ZmIsMHgwNCwweDNlLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4YTAsMHgxNSwweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgyMywweGZjLDB4MDEsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4YzAsMHg0ZiwweGYwLDB4ODcsMHg3YywweDAwLDB4ZmYsMHgwMCwweDM5LDB4NDAsMHgwZSwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZGMsMHg4MCwweGZmLDB4MDAsMHgzZCwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZWIsMHg0OCwweDNlLDB4YzIgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MGUsMHgwOSwweDAzLDB4YmMsMHg2MCwweGMwLDB4MjAsMHgzNSwweDI0LDB4MGUsMHhkMiwweDEzLDB4MmMsMHg2MCwweGZiLDB4NmEgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4Y2EsMHgwMywweDIyLDB4MjAsMHhjMCwweDgwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4ZWYsMHgwMCwweDMzLDB4MjQsMHgwZiwweGM4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4ODAsMHgxMCwweGRkLDB4MDAsMHg4ZiwweDYwLDB4MmYsMHhkOCwweDA4LDB4YTIsMHgwMiwweGZkLDB4ODAsMHhjOCwweDcwLDB4MjIgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4MDAsMHgyYywweGZkLDB4MDcsMHhkYywweDg0LDB4YmYsMHg2MCwweDIzLDB4ZDIsMHgwYiwweGJkLDB4MDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4ODAsMHhhMiwweDIwLDB4ODgsMHhiMCwweDIyLDB4MzQsMHgwMCwweGJiLDB4NTAsMHgyMiwweGM4LDB4MGIsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YTMsMHgwMywweDJjLDB4YzIgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4MGEsMHgwMCwweDQyLDB4OGMsMHg4MiwweGEzLDB4MGEsMHgyNCwweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHg5MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4MjgsMHhkOCwweDBiLDB4MTAsMHgwMiwweDhjLDB4MDIsMHg5MCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MTAsMHg0MiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4YjMsMHgwNCwweDI0LDB4YzAsMHgwYiwweDMwLDB4MGUsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDA0LDB4MmMsMHhjMCwweGY4LDB4OTgsMHgwNiwweGVjLDB4MDAsMHhhYiwweDgwLDB4MjYgfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4MjAsMHgwOCwweDkwLDB4MmEsMHhhYywweDEwLDB4YmIsMHgwMCwweDBhLDB4YzAsMHgxYiwweGIwLDB4MjIsMHhhZCwweDAwLDB4OTggfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4NDAsMHgyYSwweDcwLDB4NGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4MDAsMHhhNiwweDg2LDB4MWIsMHhiMCwweDgyLDB4YjAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4OGUsMHg5OCwweDAzLDB4YWMsMHgwOCwweGU4LDB4YzAsMHgzNiwweDMwLDB4NGYsMHhiMCwweDQyLDB4ZWMsMHgwMCwweGY5LDB4ODAgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4M2EsMHhjMCwweDhmLDB4ODgsMHg0MiwweDIwLDB4MTAsMHhjOCwweDEwLDB4MzAsMHhmMCwweDBmLDB4MzAsMHgxMywweDZjLDB4MTAgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4ZWIsMHgwMCwweDM2LDB4ZjAsMHgwZiwweGJkLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhlZiwweDA0LDB4N2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweGRjLDB4MDAsMHhjNCwweDAwLDB4M2IgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4NDAsMHg4YiwweGRjLDB4MDMsMHg3YywweDEwLDB4ZjksMHg5MCwweDM2LDB4YzIsMHg0ZiwweGY5LDB4MjMsMHg2MiwweDQxLDB4YWMgfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MDEsMHgxMywweDQwLDB4MDQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDEyLDB4Y2IsMHgwMCwweGYyLDB4YzAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YWMsMHgwOCwweGQ5LDB4MDAsMHgzYSwweDgwLDB4MGYsMHgxMiwweDAzLDB4YWMsMHgwMCwweGUxLDB4MDAgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweGVkLDB4MDIsMHhjOCwweDQwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgxMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4ZGIsMHgwMCwweDNlLDB4NTAsMHgwYywweGI0LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MTcsMHhjMCwweDA4LDB4OTAsMHgwMiwweDNjLDB4MDgsMHg4ZCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4NTQsMHgwOCwweGI0LDB4MDMsMHgzYywweDAwLDB4ODksMHgwMCwweDIzLDB4YzAsMHg0MCwweDM1LDB4MDIsMHhjYywweDI0LDB4ODAgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHgyMiwweDc0LDB4NGMsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweGQ0LDB4MGEsMHhiMCwweDBhLDB4MzIgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg0YywweDAyLDB4ODMsMHgwMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4MDksMHgwMCwweDAyLDB4OGMsMHgwMSwweDkwLDB4MDAsMHg2YSwweDQxLDB4MGEsMHgzMCwweDIwLDB4NGUsMHgxMCwweDMxLDB4MDIgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MjAsMHgwNiwweGNlLDB4MDAsMHg4MCwweDAwLDB4NjAsMHhlMCwweDBhLDB4MzAsMHg4MiwweDBjLDB4MDggfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4ODMsMHgwOCwweDJjLDB4ZDAsMHgwOSwweGIwLDB4MDIsMHg3OCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHg4NywweGIwLDB4MjAsMHhlYywweDA5LDB4ZTksMHgwMiwweDhlLDB4NTgsMHg5ZCwweGIwLDB4MmIgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4YTUsMHg0MCwweDViLDB4MDYsMHhkZSwweDQwLDB4OTUsMHg5NCwweDJkLDB4ZTQsMHgxOSwweDdiLDB4MDYsMHhkZSwweDAwLDB4ODQgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4ODAsMHg2MCwweGUwLDB4MGEsMHg3OCwweDBhLDB4MTYsMHgxMCwweDg3LDB4ODAsMHgyZCwweDY4LDB4MGIsMHg3OSwweDAyLDB4NDggfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4Y2IsMHhhMCwweDI0LDB4ZTAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4MGYsMHgyYSwweDAzLDB4OGUsMHgwMCwweGQyLDB4ZDAsMHgzOCwweGZhLDB4MGYsMHgxOCwweGMzLDB4Y2UsMHgyNCwweDMxLDB4YjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4M2MsMHhlNSwweDBjLDB4M2IsMHgxNywweGNlLDB4MDQsMHhjMCwweDgyLDB4MzgsMHhjMiwweDllLDB4MTAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4YzMsMHgwMSwweDNlLDB4YzAsMHgwZCwweDgxLDB4MDMsMHg1MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlZiwweDEwLDB4M2UsMHhjMiwweDBlLDB4YjEsMHgyMywweDJjLDB4YzEsMHhhYiwweDAxLDB4MzYgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4ODAsMHgwZiwweGIwLDB4MjMsMHgyZCwweDkwLDB4ZTksMHg4NCwweDcyLDB4YzgsMHg2MiwweGYxLDB4MTcsMHhmYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4MDAsMHgzYiwweGM0LDB4MWQsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDgsMHgzZiwweGM4LDB4MGUsMHhmMSwweDAzLDB4OTAgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDgwLDB4ZmIsMHhhNCwweDNhLDB4YzggfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MmMsMHgwNCwweGNhLDB4MDAsMHgzMCwweDYwLDB4MmQsMHgxYSwweDI3LDB4NmMsMHg4NCwweGNiLDB4NjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4MzIsMHhkMiwweDBjLDB4YTAsMHgxMywweDJkLDB4ODQsMHhjYiwweDAyLDB4M2UsMHhjMCwweDBkLDB4YjgsMHgwMywweGFjLDB4ODAgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4Y2IsMHg4MSwweDMyLDB4ODAsMHgwYywweGIwLDB4MDMsMHhhYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4YTQsMHhiNywweDI4LDB4NzMsMHhjMiwweDA4LDB4ZjAsMHgwMiwweDNjLDB4YzAsMHg4ZiwweDAwLDB4MzEgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4YzAsMHgwOSwweDcwLDB4ODIsMHg5YywweDgwLDB4ODcsMHgwYywweDIwLDB4ZDgsMHgwOSwweDcwLDB4MjIsMHgxYywweDMwLDB4ODQgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4MDAsMHgzZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTQsMHgyNCwweDg3LDB4YTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDEyLDB4MTIgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDQwLDB4YjMsMHg5NSwweDI5LDB4ZTkgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4MGEsMHg2OCwweDAyLDB4OWUsMHhkMCwweDg2LDB4ZjAsMHhhMywweGUwLDB4MDgsMHg3OCwweDEyLDB4OWUsMHg0NCwweGEzLDB4ODIgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4MjEsMHhlOCwweDBiLDB4MzgsMHgwMiwweDBlLDB4MTAsMHg4NywweDgwLDB4MmYsMHhlMCwweDBiLDB4MTgsMHgwMiwweDhlLDB4MDIgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4ODcsMHgwMCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDQ4LDB4MzAsMHgwMiwweDBjLDB4MDQsMHg4MywweDgwLDB4MjAgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4ZDAsMHgwOSwweDEwLDB4MDIsMHg4YywweDA2LDB4YTMsMHg4MCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDAyLDB4ODAgfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4NDAsMHgyOCwweGQyLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMSwweDgzLDB4MDAsMHgyMiwweDNjLDB4MDgsMHg4NywweDAyLDB4MTIgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDE4LDB4ZmEsMHgwMCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4OGUsMHhlNCwweDQyLDB4MjgsMHgwMiwweGNlLDB4ODAsMHgzMywweDgwLDB4NGQsMHhhMCwweDgzLDB4ZTgsMHgwMCwweGVhLDB4YTAgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4YjIsMHg4MCwweDBhLDB4YTAsMHgwYSwweDI4LDB4MDAsMHhjZSwweDE4LDB4MmYsMHg4MCwweDBmLDB4YTAsMHgxMywweGE4LDB4MDAgfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4OTAsMHgyYywweGFjLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA0LDB4M2EsMHgwMCwweDBmLDB4ODAsMHg4MywweGMwLDB4MDgsMHhlOCwweDAzLDB4M2EgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MjIsMHhjMCwweDAwLDB4ZDAsMHgwMCwweDdlLDB4MTAsMHhhNCwweDgwLDB4MDMsMHhjMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4MGQsMHg4NCwweDAzLDB4YzAsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwLDB4MGYsMHg4MCwweDAxLDB4NTIgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAyLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMiwweDg5LDB4MDQsMHgzMiwweDQyLDB4MGQsMHg5MiwweDAzLDB4ZTYsMHg0MiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4MzIsMHg3MCwweDBlLDB4MTIsMHgwYiwweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0NSwweDBlLDB4OTksMHgwMywweGU0LDB4MDIgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4YzEsMHgwMCwweDMyLDB4NTAsMHgwNCwweDk0LDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4NTQsMHgwYiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4MDAsMHgzOCwweDQ4LDB4MDgsMHg5MCwweDgyLDB4ZTQsMHgwNCwweGQ5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHgwMSwweDJjLDB4NDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgxMCwweDQyLDB4NjQsMHgwMCwweGExLDB4MDQsMHgyMiwweDUwLDB4MDEsMHg5MCwweDQyLDB4ZTQsMHgwMCwweDg5LDB4MDQgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4MjAsMHg0MiwweDBhLDB4OTAsMHg0MiwweDM0LDB4MDAsMHg4OSwweDAwLDB4NmUsMHg0MCwweDBhLDB4OTAsMHgwMCwweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4ODksMHgwMCwweDIzLDB4NDAsMHgwYSwweGQwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDI0LDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhhMSwweDIwLDB4MjggfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHg4NSwweDgwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwOCwweDUwLDB4NjIsMHgxNCwweDAyLDB4ODEgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4MDMsMHgyZSwweDQwLDB4ODgsMHgxNiwweDgyLDB4YzQsMHhhMCwweDkxLDB4MjgsMHgyMSwweDQwLDB4MmEsMHg1MCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHg1MCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MGMsMHg4NSwweDAzLDB4NjEsMHg0MCwweGU4LDB4NTAsMHhiMiwweDE1LDB4NGQsMHg4MCwweDAyLDB4YzAsMHgwMCwweDQ4LDB4NTAgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4YjIsMHgxNSwweDFhLDB4ODAsMHgxMywweDMwLDB4MDgsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODIsMHgwMywweGUwLDB4ODAgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4YzAsMHgyMCwweDMwLDB4MDAsMHgwZSwweDQwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhkZCwweDEwLDB4MzcgfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4NDAsMHgwZiwweGQ0LDB4MDcsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNlLDB4NDUsMHgwZiwweDk0LDB4MDMsMHhlNSwweDA4LDB4ZmQgfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MDIsMHgzOSwweGQwLDB4MGYsMHhkMCwweDQzLDB4ZjQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRiLDB4MGQsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4YzksMHhhNiwweDMyLDB4NjggfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTYsMHg4MSwweGU5LDB4ZTksMHgzYiwweDQwLDB4MGUsMHg1OCwweDAzLDB4MzYsMHgyMCwweGM5LDB4YTAgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4MzcsMHg3OCwweDBkLDB4ZGEsMHgwMywweDM2LDB4MjYsMHhjNSwweDAwLDB4MzcsMHg2OSwweDBlLDB4ZGUsMHgwMywweGE2LDB4ODIgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4Y2QsMHhjMCwweDMzLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4YTQsMHg4OCwweGE5LDB4MjIsMHgzYSwweDA4LDB4MDgsMHgwMCwweDIyLDB4YTAsMHhiOCwweGU1LDB4MzAgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4MjAsMHgyOCwweDgwLDB4MjIsMHg0MywweGEwLDB4MDgsMHhlOCwweDJhLDB4M2QsMHgwOCwweGE0LDB4NjIsMHgyMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MDAsMHgyZSwweDEwLDB4MDgsMHg4ZSwweDAzLDB4MjMsMHhhMCwweDg4LDB4YTAsMHgyMCwweDI4LDB4MGIsMHg4YSwweDgyLDB4MGUgfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4OTEsMHg0MCwweDIwLDB4NDQgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MDgsMHg5MCwweGEyLDB4ODUsMHgxMCwweGExLDB4MjAsMHgyYywweDQyLDB4MGIsMHgxNCwweDEyLDB4OGMsMHgwMSwweDkxLDB4MTAgfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4MmMsMHg0OCwweDA5LDB4MTEsMHgwYSwweGM0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4MTEsMHgxMiwweGM1LDB4MDEgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4YjEsMHg0MCwweDI0LDB4NDgsMHgwYiwweDE4LDB4MGUsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0MSwweDA4LDB4OTQsMHg0MiwweDI0LDB4MDAsMHhiMSwweDQwLDB4MjAgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NDAsMHg0OSwweGIyLDB4NjIsMHgyNCwweDAwLDB4OTksMHgwMCwweDBhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNSwweDgwLDB4ODkgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MDksMHhiMCwweDAyLDB4MjQsMHg4MCwweGI5LDB4MDAsMHgyNiwweDUwLDB4NGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAyLDB4ZDksMHgwMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4MmMsMHg5NSwweDEzLDB4YTQsMHgxMCwweGU5LDB4MDAsMHhiZSwweDYwLDB4OGYsMHg5MCwweDBiLDB4YTQsMHgxMCwweDU5LDB4MDAgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4MWUsMHg0MCwweDlkLDB4OTQsMHgyMywweGU0LDB4MDIsMHg4OSwweDAwLDB4MzQsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDggfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4NzksMHgwMCwweGI2LDB4NDAsMHgwNywweDk4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MDAsMHhlOSwweDAyLDB4M2MsMHg0MCwweDJmLDB4OTgsMHgwMiwweGU0LDB4MDAsMHhmOSwweDQyLDB4M2EgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4NjgsMHgwYSwweDEwLDB4MDMsMHhlNCwweDEwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZSwweDkwLDB4MGYsMHgyNiwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MDQsMHgzZSwweDQwLDB4MGUsMHgxYywweDAzLDB4ZTYsMHgwMCwweGMxLDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5OSwweDgzLDB4Y2EgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MGMsMHg4NCwweDAzLDB4MjAsMHgwMCwweGQ4LDB4NDIsMHgzMiwweDA0LDB4MGMsMHg4OCwweDEzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDQsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBlLDB4ODAsMHgyMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4YzgsMHg4MCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MTAsMHg4YSwweDAwLDB4MmUsMHg4MCwweDI4LDB4MjAsMHgyMiwweDI4LDB4MDAsMHg4YSwweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4YjAsMHg4OCwweGUwLDB4MDIsMHgyOCwweDEwLDB4ZGEsMHgwMCwweGEzLDB4YjQsMHgwOCwweGU4LDB4MTAsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MjAsMHgyMywweGEwLDB4NDgsMHhlZCwweDFhLDB4MjgsMHgwMCwweGRlLDB4MDAsMHgyMywweDkwLDB4MGEsMHhlMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YTMsMHgwMCwweDI4LDB4YzAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4MDgsMHgzMCwweDBhLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGMyLDB4MmEsMHgzMCwweDIyLDB4YTQsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4MDgsMHhlMCwweDE4LDB4MDksMHgwYSwweDRjLDB4MDAsMHg5MywweDAyLDB4MjQsMHhlOCwweDAyLDB4MDgsMHgwNiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4OTMsMHgwMCwweDIwLDB4ZDgsMHgwYSwweDkwLDB4MDIsMHg0YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4ODAsMHg4NywweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBlLDB4MDAsMHg4NywweDEwLDB4MjUgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwYSwweDYwLDB4MDIsMHg1ZSwweDAwLDB4OTcsMHgwMCwweDI5LDB4ODIsMHgwOCwweDUwLDB4MTIsMHg1NCwweDAwLDB4OGYgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4ODAsMHg2MSwweGQwLDB4MDgsMHgwNCwweDAyLDB4NWMsMHgwMSwweGI3LDB4MDgsMHhhOSwweGEwLDB4MGEsMHg1MCwweDgyLDB4NjggfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDgwLDB4ZTcsMHg4MCwweDM4LDB4ZTQgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4MDgsMHg3ZSwweDAzLDB4MWYsMHgwMCwweGRmLDB4ODAsMHhiMSwweDIxLDB4MWUsMHg3OCwweDAzLDB4ZGMsMHgwNCwweGYzLDB4ODAgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4NWIsMHhlMSwweDA4LDB4MjgsMHgwMywweDVlLDB4MDAsMHhkNywweDgwLDB4MzUsMHg2MCwweDBlLDB4NjgsMHgwMywweDRlLDB4MDAgfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4ZGYsMHg4MCwweDMxLDB4ZTAsMHgwZSwweGY4LDB4MGIsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDIsMHhmYiwweDc0LDB4M2UsMHhkMCwweDRmLDB4YjIsMHg4MywweGVkLDB4MDAsMHg3YiwweDY4LDB4M2EgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4MDAsMHg4ZCwweDgwLDB4MDMsMHhhNCwweDIwLDB4ZGIsMHgwMSwweDM2LDB4ODAsMHg2ZiwweGIwLDB4NDEsMHg4NCwweDAwLDB4ZWIgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4MDAsMHgzYywweGMwLDB4MGYsMHhlNiwweDgzLDB4YmMsMHg0MCwweGRiLDB4MDAsMHhiNiwweDgwLDB4MGYsMHhiMCwweDAzLDB4ODIgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDIwLDB4ZGYsMHhjMCwweDNiLDB4ZTYgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MGUsMHhmOCwweDEzLDB4ZmYsMHg0NCwweGM3LDB4ODIsMHgzYiwweGUwLDB4MGYsMHhmOSwweDAzLDB4YmUsMHgxMCwweGNmLDB4YzggfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4MzMsMHg2MCwweDhkLDB4ZWIsMHgwMywweDNlLDB4MDAsMHhkYiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZDgsMHgwMywweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4Y2UsMHg4MCwweDMzLDB4ZTQsMHgwZiwweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4YTgsMHgxMSwweGJjLDB4NDAsMHg4NywweDAwLDB4MjEsMHhlNCwweDBiLDB4NzgsMHhhMiwweGNlLDB4OTAsMHhjNywweGIwLDB4MjAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4ZTgsMHgwYiwweDI4LDB4OTIsMHhiNiwweDg4LDB4ODcsMHhhMCwweDIwLDB4NjQsMHgwYiwweDM1LDB4MDMsMHgxNCwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4YjIsMHgzOSwweGMwLDB4MmMsMHhjMCwweDAzLDB4NWUsMHgwMiwweGNmLDB4MDAsMHgzMSwweGNlLDB4MGIsMHg3NiwweDEyLDB4MmEgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTMsMHgxMCwweDI5LDB4YzggfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4MGIsMHg3NCwweDAyLDB4ZGMsMHg4MCwweDhmLDB4MDAsMHgyOSwweGNjLDB4MGEsMHgzMCwweDA2LDB4MTQsMHg4MCwweDg3LDB4MTAgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4NjYsMHgwMiwweDVjLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NTEsMHgwMiwweDFjLDB4ODAgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4OTYsMHgwMCwweDIxLDB4YzAsMHg1YiwweDc0LDB4ODIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhhMywweDAwLDB4MjAsMHhjMCwweDBiLDB4YjgsMHgwMiwweGNjLDB4MDAsMHg4YiwweDQwLDB4YTggfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4YzAsMHg4YiwweDA4LDB4MjIsMHg4YywweDAyLDB4ODMsMHgwMCwweDYwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4NDAsMHgyOCwweGZjLDB4OGEsMHgwMCwweDAyLDB4NmUsMHgwMCwweDgzLDB4MDAsMHhhMCwweGQwLDB4OGIsMHgzOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4NGYsMHhmOCwweDAyLDB4ZmMsMHgwMiwweGNmLDB4MDAsMHgzOCwweDEyLDB4MGUsMHg5OCwweDAyLDB4MmMsMHgwMCwweGNmLDB4MDAgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4MzIsMHhjMCwweDA5LDB4OTAsMHgwMywweDY0LDB4MDIsMHg4MSwweGMwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgwNywweDNjLDB4MDMgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4ZDksMHgwMCwweDMyLDB4NjAsMHgwZiwweDg4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4ODAsMHgwMCwweGNjLDB4MDAsMHhkYiwweDAwLDB4M2UsMHhjMCwweDhmLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAyLDB4MzYgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4YzAsMHg0ZiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZmIsMHgwMCwweGJlLDB4OTAsMHgwZiwweDljLDB4MTMsMHhlYywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4MTgsMHgzYSwweGQwLDB4MDQsMHhkNSwweDAzLDB4ZWMsMHg0MCwweGU5LDB4MDAsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4Y2YsMHgwMCwweDNkLDB4YzEgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4OGMsMHhmMCwweDAzLDB4MmMsMHgwMCwweGVmLDB4MGEsMHhiMywweDEyLDB4MmMsMHg3MCwweDIzLDB4MTQsMHgwYSwweDRmLDB4MDAgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MzUsMHg2MCwweDBkLDB4YjAsMHgwMywweDA0LDB4MDAsMHhjZCwweDgwLDB4MDcsMHhlOCwweDBjLDB4YzQsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4Y2QsMHgwMCwweDMxLDB4ZTIsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDIsMHhhYiwweDAyLDB4MmUsMHhjMCwweDBlLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4YiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MzAsMHgwMCwweDljLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwNCwweDIyLDB4MzYsMHgwOCwweDM0LDB4NGEsMHgyYywweDA4LDB4ODkgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4OTAsMHgyMCwweGI4LDB4MGYsMHg4NCwweDAwLDB4YWMsMHgwMiwweDg5LDB4MDAsMHgzNiwweGEwLDB4MDgsMHhhNCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQxLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4MjYsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI2LDB4MDAsMHg4YiwweDAwLDB4MjYsMHhjMCwweDU4LDB4MTAsMHgxMiwweDJjLDB4MDQgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4ODIsMHg4MCwweDJhLDB4NDksMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhMywweDE0LDB4MmMsMHhjOCwweDFhLDB4MzQsMHg4YSwweDBjLDB4ODQsMHg4MywweDQwLDB4MjIgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4YzgsMHgwOCwweDAzLDB4NjIsMHg0YywweGMwLDB4YTMsMHg2MCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4NDUsMHgwOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4OGMsMHhhMCwweDgzLDB4MDAsMHgyNiwweDQwLDB4MDgsMHgzMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4Y2YsMHg0MCwweDJmLDB4ZDIgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4OGMsMHhmNiwweDAzLDB4M2MsMHgyMiwweGNmLDB4NDAsMHgzMiwweGQ2LDB4NGMsMHhhNiwweGMxLDB4M2QsMHhhMCwweDg3LDB4NDggfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4MzYsMHgwZCwweDBmLDB4YjEsMHgwMiwweDI0LDB4NDIsMHhjYiwweDYwLDB4MTYsMHhjMCwweDBjLDB4ZDAsMHgwMywweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDIwLDB4M2UsMHhjYSwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhkYiwweDM0LDB4M2EgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4YzgsMHgwZiwweDgwLDB4MDMsMHhlNCwweDEwLDB4ZGIsMHgyMSwweDNlLDB4MTgsMHgwZCwweGYyLDB4MDMsMHhmYywweDgwLDB4ZmYgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MzAsMHgzNSwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTEsMHhmYywweDAwLDB4ZmIsMHgwYiwweDJmLDB4Y2EgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4OGQsMHhmMiwweDAzLDB4ZmEsMHgwMCwweDk2LDB4ODAsMHgzYiwweGM0LDB4MGQsMHhmMSwweDAzLDB4N2MsMHg4MCwweGVjLDB4ODAgfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4M2IsMHgwOCwweDBjLDB4YzIsMHgwMywweDc0LDB4MDIsMHhjYywweDgwLDB4M2YsMHg0OCwweDBlLDB4ZjAsMHgwMywweDMwLDB4YTAgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4ZDUsMHg4MCwweDNmLDB4NDAsMHgwYywweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4ODAsMHgwOCwweGVlLDB4NDAsMHhiZiwweDgwLDB4MmYsMHhmMCwweDBiLDB4ZjcsMHgyMiwweGVlLDB4MjAsMHg4YSwweDgwLDB4MjMgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4ZmMsMHg4OCwweDc1LDB4MTIsMHgzZCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MDAsMHgyOCwweDgwLDB4MDIsMHgyNCwweDA4LDB4ODggfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4MDAsMHg2ZiwweDUwLDB4MDAsMHhmNSwweDAyLDB4MjksMHgwMCwweDg5LDB4MDAsMHgyZSwweDU0LDB4MGQsMHg5MCwweDExLDB4YTAgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzEgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4MDksMHgzMCwweDgyLDB4Y2MsMHg4MiwweGJiLDB4MDAsMHgyOCwweGMwLDB4NDksMHgzMiwweDAyLDB4Y2QsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4MmMsMHg1MCwweDA5LDB4MDEsMHgwMiwweDBjLDB4NDAsMHg4MCwweDAwLDB4NmMsMHg0NCwweDA5LDB4MzAsMHgwMiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4YjAsMHgwMCwweDJjLDB4NDAsMHgxOCwweDMwLDB4MDYsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4YzAsMHgwMSwweGFjLDB4MDAsMHhiYiwweDAxLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGVlLDB4MDAsMHhhYSwweDAwLDB4NGEgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NTIsMHhlYywweDAwLDB4OTgsMHgwMiwweDI2LDB4NDAsMHgwOSwweDgwLDB4MDIsMHg2YywweDAxLDB4YWEgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MDksMHhiMCwweDAyLDB4MjIsMHgwMCwweGE5LDB4ODAsMHgyZSwweDQxLDB4MDksMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4Y2UsMHg4NCwweGZhLDB4MDAsMHgxYSwweGMwLDB4OGQsMHhiMCwweDQzLDB4ZWMsMHgwMCwweGYwLDB4MDIgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4M2YsMHgwMCwweDBkLDB4ZDEsMHgwMywweDM1LDB4MDAsMHhjYiwweDQ4LDB4MmUsMHg0MCwweDJmLDB4YjAsMHgwOSwweDIyLDB4ODAgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4ZjksMHhjOCwweDFlLDB4ZTAsMHgwOCwweGIxLDB4ZTIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHg3YiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDAsMHhkZSwweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4YzAsMHg0ZiwweGYwLDB4MDMsMHgyYywweDAwLDB4ZWMsMHgyMCwweDNiLDB4MDAsMHgwZSwweDk4LDB4MDMsMHg5NCwweDAyLDB4ZGQgfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4NGUsMHhmMCwweDAxLDB4ZjgsMHgwMCwweGRkLDB4MDAsMHgzYywweGU0LDB4MGYsMHhkOCwweDAzLDB4YjggfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweGMwLDB4ZmIsMHgyMCwweDMyLDB4YzggfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4OGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGY5LDB4MDAsMHgzYSwweGMyLDB4MmMsMHgzMCwweDAzLDB4NmMsMHgwNCwweGQ4LDB4MDIgfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4M2MsMHg0NCwweDhkLDB4MTAsMHgwMywweGFkLDB4MDMsMHhlYSwweDAwLDB4M2MsMHg0MCwweDBjLDB4NzAsMHgyMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4YzgsMHg0MCwweDNhLDB4YzAsMHgwZCwweGJjLDB4MDMsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4YzgsMHgwMSwweDNkLDB4MDAsMHhiZiwweDQyLDB4MjMsMHhmMCwweDBkLDB4ZjAsMHgwMiwweGU1LDB4MDAsMHhlMiwweDAxLDB4MzcgfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4ZjEsMHgwOCwweGYwLDB4MGUsMHgzZCwweGMwLDB4YTgsMHgwMCwweDJlLDB4NTQsMHgyOCwweDkwLDB4MDIsMHgyYywweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4MDUsMHgzYiwweDQxLDB4NDgsMHhmNSwweDAzLDB4OGMsMHgwMCwweDg5LDB4MDAsMHgyMiwweGQ0LDB4MGUsMHg5NSwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHgwNCwweDIwLDB4YzAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4ODksMHgzMCwweDAyLDB4Y2MsMHg0MCwweGIyLDB4MDAsMHgyYywweGM0LDB4NDgsMHgzMCwweDAyLDB4MmMsMHgwMiwweGEyLDB4MDAgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MmMsMHgyMCwweDE5LDB4MjAsMHgxYSwweDgwLDB4MDgsMHhiMCwweDAwLDB4NmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NDAsMHgwOCwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweGEwLDB4ZTEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRmLDB4MDQsMHhhZSwweDgwLDB4MmQgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4ZTAsMHgwOCwweDc5LDB4MDIsMHgxZSwweDEwLDB4ODcsMHg5MCwweDJjLDB4MjgsMHgyOSwweDY4LDB4MDIsMHg4MiwweDgxLDB4YjQgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4ODAsMHgyZCwweDYwLDB4MDgsMHg3OCwweDEwLDB4YmMsMHgwMCwweDhmLDB4ODAsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDA1LDB4ZjMsMHg5MiwweDMwLDB4Y2EgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4MGQsMHgzMCwweDAzLDB4Y2MsMHgwMCwweGYzLDB4MDAsMHgzYywweGMwLDB4MGMsMHgzMCwweDAyLDB4MGMsMHg4MCwweDcwLDB4MDAgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4MmMsMHg0MCwweDBkLDB4MjAsMHgwMywweDg5LDB4MDAsMHhiMSwweDAwLDB4M2UsMHg0MCwweDJjLDB4MzAsMHgwMywweGVjLDB4NTAgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4YzMsMHgyMCwweDNjLDB4NDAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2MsMHhjMCwweDBlLDB4YjAsMHg4MywweGVjLDB4NDAsMHhlYSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4YzIsMHgwZiwweGIwLDB4ODMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4NDgsMHgwZSwweGUwLDB4MGIsMHg3YSwweDgwLDB4Y2YgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgzYiwweDQ0LDB4MGYsMHhmMCwweDAzLDB4ZWMsMHhjMCwweGZmLDB4MDAsMHgwMywweDQ0LDB4MGUsMHhlMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMywweDNlLDB4YzggfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MWQsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGNhLDB4MDAsMHgzZSwweGM4LDB4MGMsMHhiMiwweDAzLDB4MmQsMHg5MCwweGM4LDB4ODQgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4MzYsMHgwMCwweDJkLDB4YjAsMHgwMywweDYwLDB4MTgsMHg5YiwweDgwLDB4MzMsMHg1MCwweDBjLDB4ZjIsMHgwMywweGUyLDB4MDAgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4YzksMHg4MCwweDMyLDB4NDAsMHgwYywweGI4LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDI4LDB4MGMsMHhkMiwweDI4LDB4NzMsMHgwMiwweGZjLDB4MDAsMHg4NiwweDA0LDB4MmMgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4Y2MsMHgyOCwweDcwLDB4ODMsMHgwYywweDIwLDB4OTUsMHgwMSwweDIwLDB4MDAsMHgwOSwweDMwLDB4MTIsMHgxMCwweDA0LDB4ODUgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4MDAsMHgyMSwweDUyLDB4MDgsMHg3NSwweDAyLDB4ZDgsMHgwMCwweDg3LDB4MDAsMHgyMSwweDQwLDB4MDgsMHg2MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweGQ0LDB4YjcsMHhiMSwweDA5LDB4ZTEgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4MDgsMHg3OCwweDIyLDB4ZGUsMHgwMCwweDk1LDB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OCwweDBhLDB4NWUsMHg0MiwweDk0LDB4YzAgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4MjEsMHg2MCwweDA4LDB4NzgsMHgwMiwweDVhLDB4MDAsMHg4NywweDgwLDB4MmQsMHg2OCwweDA4LDB4N2EsMHgwMiwweGQ3LDB4MDAgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4OTcsMHg4MCwweDIwLDB4NjAsMHgwOSwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4NDgsMHgxMCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGNkLDB4ODAsMHg5MiwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHhjYywweDAwLDB4OTAsMHg4MCwweGEwLDB4NDAsMHgwOSwweDM2LDB4MDIsMHg0OCwweDAyLDB4ODMgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4YTAsMHhhYywweDQwLDB4MmEsMHgzMCwweDA2LDB4Y2UsMHgwMiwweDkzLDB4MDQsMHhhMCwweDQwLDB4MDksMHgyMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNhLDB4ODAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGRlLDB4ODAsMHgzZSwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCwweGNlLDB4ODAgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MzIsMHg4MCwweDBjLDB4YTQsMHgwMywweDc4LDB4MDAsMHhjZSwweGE0LDB4M2YsMHg4MCwweDBjLDB4YTAsMHgwNywweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyZCwweGUwLDB4MDIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmOCwweDAwLDB4N2MsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2MgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4MDEsMHhjZiwweDgwLDB4MGYsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZSwweDA0LDB4MDMsMHg5MCwweDAwLDB4ZTggfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MGQsMHg4MCwweDA3LDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDA0LDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDdlLDB4NDEgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4MDAsMHgzNiwweDY4LDB4MGUsMHg5MCwweDBmLDB4YTQsMHgwOCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI0LDB4MTIsMHhlOSwweDAwLDB4M2UsMHg0NCwweDJjLDB4OTAsMHgwMywweDY0LDB4MjQgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4ZjksMHgwMiwweDJlLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MTAsMHhiOSwweDgwLDB4M2UsMHg0MCwweDA4LDB4OTAsMHgwYSwweDI2LDB4MDAsMHhiMSwweDEwLDB4MmEgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4NzIsMHgwOCwweDkwLDB4MDcsMHg2NCwweDAyLDB4ODksMHg0MCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MTIsMHgyNSwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4NDUsMHgzZSwweDUwLDB4MGQsMHg5MCwweDBhLDB4MjUsMHgwMCwweGI5LDB4NDAsMHgyZSwweDQwLDB4MjgsMHg5NCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4NDgsMHg5MCwweDQyLDB4MjYsMHgwMSwweGI5LDB4NDAsMHgyNiwweDQwLDB4MGEsMHg5MCwweDQyLDB4ODQsMHgwMSwweDhiLDB4MDggfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4MmMsMHg0MCwweDA5LDB4ZDAsMHg4MiwweDM0LDB4MzIsMHhhOSwweDA4LDB4NmUsMHg0MiwweDA4LDB4MTAsMHgwMiwweDI0LDB4MjAgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4YjksMHgwOCwweDJjLDB4NDAsMHgxOCwweDkwLDB4ODIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMywweDIwLDB4MjgsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDEsMHhiMSwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4NTgsMHgwOCwweDEyLDB4MDIsMHgwNSwweDg5LDB4ODEsMHg0MCwweDJjLDB4NTgsMHgwOCwweDU2LDB4MDYsMHgxNSwweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4NDAsMHgyOCwweDUwLDB4MDksMHgxNCwweDAyLDB4MDUsMHg4MCwweGIxLDB4NDAsMHgyYywweDVhLDB4MDgsMHgxNCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MmUsMHg4NSwweDAzLDB4MjEsMHg0OCwweGY4LDB4MDAsMHgzNiwweDAwLDB4OGUsMHgwNSwweDAyLDB4YTAsMHgwOCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHgwYiwweDEwLDB4MDQsMHhlMCwweDAwLDB4MmMsMHgwMCwweDRjLDB4ODAsMHgwMywweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4ZjAsMHgwMCwweDNlLDB4MDgsMHgwYywweDAwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgwMywweDNmLDB4NDQsMHgxZiwweDkxLDB4MWIsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MDEsMHgzZiwweDUwLDB4MGUsMHg5NCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4YTYgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4Y2QsMHhhMCwweDcxLDB4NjggfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4OGQsMHg5OCwweDAzLDB4ZDQsMHgwMCwweGNkLDB4MDAsMHgzMywweDYwLDB4MGMsMHg5OCwweDhmLDB4MjcsMHgyMCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4M2UsMHg3OCwweDBjLDB4OWUsMHg4YiwweDI3LDB4MjAsMHhkMSwweDExLDB4MzAsMHg2MCwweDhjLDB4OWMsMHgwMywweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4ZjksMHg0MCwweDNlLDB4NzgsMHgwZiwweDkwLDB4MDMsMHg0NiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MTAsMHg4OCwweDAxLDB4MjIsMHgwMSwweDA4LDB4OGMsMHgyMiwweGU4LDB4MDAsMHg4OCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MTQsMHgwOCwweDhjLDB4MGIsMHgyMywweDkwLDB4ODgsMHhhMCwweDJlLDB4YjAsMHgwOCwweDhjLDB4NDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4YTAsMHgzNiwweDJhLDB4MTgsMHg4YSwweDAyLDB4MjIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM0LDB4MGIsMHhjYSwweDgyLDB4MGUgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4ODEsMHg0MCwweDI0LDB4NTAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDksMHgxNiwweDgyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMiwweDkyLDB4NTQsMHgwOCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4MmYsMHg0YywweDA5LDB4NTIsMHgxMiwweDE0LDB4ODAsMHg5ZCwweDAwLDB4MjEsMHg1MCwweDA4LDB4NTQsMHgyMiwweDE0LDB4ODAgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4YjUsMHgwMCwweDJkLDB4NDgsMHgwYiwweGQwLDB4MDIsMHg0MiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MDIsMHg4OSwweDAxLDB4YTIsMHg0MCwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDIsMHhhOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4NDAsMHg2OCwweDkwLDB4MDIsMHg2NCwweDEwLDB4YWQsMHgwMCwweDJmLDB4NDEsMHgyOCwweDUwLDB4MDIsMHgzNCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4NDQsMHgyNywweDQwLDB4MzksMHhkMCwweDAyLDB4MzUsMHgwMCwweGJkLDB4MTQsMHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhjNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4MmQsMHg5MCwweDAzLDB4ZTcsMHgwMCwweGUxLDB4ZTAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDBiLDB4NjQsMHgwMiwweGM5LDB4MDggfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4M2MsMHg1MCwweDBjLDB4OTAsMHgwMiwweDI2LDB4MDIsMHhkOSwweGMwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweDI3LDB4MDAgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4ZjksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDIsMHhmOSwweDAwLDB4MzgsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhkOSwweGEwLDB4M2MgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4NDAsMHgwZiwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZDksMHgxMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNCwweDkyLDB4ZjkgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4MjEsMHgzYywweDQwLDB4MmUsMHg5MCwweDBmLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDQwLDB4ZTgsMHgxMCwweDNlLDB4MDQgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4NGUsMHg4MCwweDAzLDB4MjAsMHg4MCwweGQ4LDB4NjAsMHgzYSwweDAyLDB4MGMsMHg4MCwweDEzLDB4MjAsMHgwMCwweGY4LDB4NDAgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4MzYsMHgxMCwweDJkLDB4ODAsMHgwMywweGEwLDB4MDgsMHhlOCwweDQwLDB4MzIsMHgwMCwweDBkLDB4MDAsMHgwMywweDIxLDB4MDIgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4YzgsMHg0MCwweGIyLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MjgsMHgxMSwweDNiLDB4MTAsMHg4NiwweDAxLDB4MmYsMHhhMCwweDBkLDB4YTAsMHgwMiwweDM4LDB4MDAsMHg4ZSwweGUwLDB4MjMgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4YTIsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHg4MCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODIgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MjgsMHhhMCwweDAyLDB4MmEsMHgwNCwweDhhLDB4ODAsMHgyMiwweGEwLDB4MGIsMHg2MCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MywweDgwLDB4YTIsMHgwMCwweDJjLDB4YTAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHgwMCwweDkyLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4MjQsMHhjMCwweDA5LDB4MzAsMHgwYSwweDhjLDB4MDAsMHhhMywweDAwLDB4NjAsMHhjMCwweDA4LDB4MzAsMHgwYSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwYiwweDIwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDA5LDB4M2EsMHgwMiwweDM1LDB4MDAsMHg4NiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4YzAsMHgwOCwweDczLDB4MDIsMHgxMCwweDAwLDB4YmYsMHg4OCwweDIxLDB4MDAsMHgwOCwweDcwLDB4MDIsMHgxYywweDA4LDB4OGYgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4MDAsMHgyYiwweGMwLDB4MDgsMHgyMCwweDEyLDB4NWUsMHgyMCwweDg3LDB4ODgsMHgyMSwweDgzLDB4MGIsMHg2MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZTUsMHg4MSwweDNkLDB4YTAgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4MmMsMHg3YSwweDBiLDB4MWUsMHgwMCwweGQ0LDB4ODAsMHgzOCwweGUwLDB4MGMsMHhmYSwweDBiLDB4MWUsMHgwMCwweGY2LDB4ODAgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4MzQsMHhlMCwweDBkLDB4MjgsMHgwMywweDhhLDB4MDAsMHhlNiwweDgwLDB4MzEsMHgyMCwweDBjLDB4NzgsMHgwMywweDdhLDB4MDQgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4Y2UsMHg4NCwweDMxLDB4ZTAsMHg0ZiwweDc4LDB4NDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4MDgsMHgwZCwweDgwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgyMywweGU0LDB4MDAsMHhmMCwweDA0LDB4MzYgfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4NDAsMHgwZiwweGI2LDB4ODcsMHhlMCwweDAwLDB4ZjIsMHgwMCwweDNlLDB4MDAsMHgxZiwweGEwLDB4MGIsMHhlOCwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHhhMCwweDAzLDB4YTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2MsMHg4MCwweDMzLDB4YTAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MGMsMHhmYywweDAzLDB4M2UsMHgwMCwweGZjLDB4ODAsMHgzNywweGUwLDB4MGYsMHhiOSwweDIxLDB4M2UsMHgwMCwweGZkLDB4ODIgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHgwMywweDdlLDB4MTAsMHhkZiwweDg0LDB4M2QsMHhlMCwweDBjLDB4ZjgsMHgwMywweGY2LDB4MDAgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4NjAsMHgwYywweGU4LDB4MjMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4YTgsMHgxMSwweDk4LDB4NDAsMHg4NCwweDEwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDEwLDB4ODAsMHhiNCwweDAwLDB4MjEgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4YzgsMHgwYiwweDdhLDB4MDIsMHgxMCwweDAwLDB4ZmQsMHgwMCwweDIxLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDQyLDB4ODcgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgyZCwweGM0LDB4NDgsMHg2MSwweDAyLDB4ZDYsMHg4MCwweGI1LDB4MDAsMHgyZiwweDA0LDB4MDgsMHg2MSwweDgyLDB4MmEgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAwLDB4ODEsMHgwMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MWMsMHgxMCwweGJjLDB4MDgsMHgyNSwweDgwLDB4NGIsMHgzMCwweDBlLDB4MWMsMHgwMCwweGI0LDB4MDAgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4MjAsMHhjMCwweDA4LDB4MjAsMHgwMiwweDU4LDB4MDAsMHg5NiwweDAwLDB4MmYsMHgwMCwweDBhLDB4NzAsMHgwMiwweGQwLDB4ODAgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4YjQsMHgxOCwweDJkLDB4NDAsMHgwOSwweGY4LDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDIsMHg4MCwweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgyMiwweDBiLDB4YzAsMHhiMCwweGMwLDB4MjIgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4ODAsMHgwYiwweDMwLDB4MDIsMHgwMCwweDAwLDB4YTAsMHgwNCwweDIyLDB4MDAsMHgyOCwweGEwLDB4MDIsMHgyYiwweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4MDAsMHgyYywweDAwLDB4MDgsMHhhMCwweDA2LDB4YzAsMHgwMCwweGIwLDB4YzIsMHgyYywweDAwLDB4MDksMHhiYywweDFhLDB4MDggfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4MGMsMHhmMCwweDBiLDB4MjYsMHgwMCwweGY5LDB4YzAsMHgzNiwweDAwLDB4MGYsMHhmMCwweDEzLDB4MmMsMHgxMCwweGJiLDB4NDAgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4ZjIsMHhjMCwweDA4LDB4OTAsMHgwMywweDY3LDB4MDAsMHhkOSwweDgwLDB4M2UsMHhjMCwweDA4LDB4OTAsMHgwMiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4ZmIsMHhkMCwweDNlLDB4YzAsMHgyOSwweDhjLDB4MDAsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQ0LDB4M2MsMHhkMCwweDJmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDIwLDB4M2UgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4NDAsMHgwZiwweDMwLDB4MDMsMHhlMCwweDAwLDB4ZmIsMHgwOCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDQyLDB4ZjkgfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWUsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwLDB4MGUsMHg4MiwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlMCwweDA4LDB4ZmMsMHg4MCwweDMyLDB4ZTQgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4MGUsMHhmMCwweDAzLDB4NzQsMHgwMCwweGZjLDB4MDAsMHgzZiwweDQwLDB4MGMsMHhmMCwweDBiLDB4M2MsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4M2YsMHhjMCwweDBkLDB4YzEsMHgwMywweDIwLDB4MjAsMHhjYywweDEwLDB4MzMsMHgwMCwweDBjLDB4ZDEsMHgwMywweDU4LDB4MDAgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4Y2UsMHgwMCwweDJmLDB4YzAsMHgwZiwweGQxLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4ODEsMHg0NCwweDYyLDB4MDAsMHhiMCwweDQwLDB4MmEsMHhmMSwweDA4LDB4YjAsMHgxMiwweDI2LDB4MDgsMHhiOCwweGM4LDB4MmUgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4NzAsMHgwYSwweGIwLDB4MDIsMHgyMCwweDAwLDB4YmEsMHgwMCwweDJlLDB4MDAsMHgyOCwweDgwLDB4MDMsMHgyMiwweDQwLDB4ODggfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MGEsMHg4MCwweDAyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyZSwweDgwLDB4OGIsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNiwweDAwLDB4YjgsMHgyOCwweDIyLDB4NDIgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDMwLDB4ODgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDEgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4MmUsMHhjMCwweDg4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MGMgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4ODksMHgwMSwweDJlLDB4NDAsMHgxYiwweDgwLDB4MDIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjgsMHhjMCwweDI4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMCwweDAwLDB4YjEsMHgwMCwweDJjLDB4MDAsMHgwOCwweDEwLDB4MGEsMHgwNCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4MDEsMHhhMiwweGMwLDB4MDgsMHgwMCwweDBhLDB4MDQsMHg4MCwweDgxLDB4MDAsMHgyYywweDAwLDB4MWIsMHgwMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4MGUsMHhmMCwweDIzLDB4NjQsMHgwOCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHhmMCwweDAzLDB4MmMsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDIsMHhjOCwweDA0LDB4MzIsMHgwMCwweDFjLDB4OTAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4NDEsMHg5ZiwweDkwLDB4NDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDBjLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MTAsMHhmNCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4MDAsMHgwZiwweGY0LDB4MjMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwZSwweGMwLDB4MDMsMHhiMCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZTEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAxLDB4MWYsMHg1MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmMCwweGQwLDB4ZmYsMHgyMCwweDNlLDB4ZDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4OGUsMHhiMCwweDAzLDB4ZWMsMHhhMCwweGRiLDB4MjgsMHgzZSwweGNjLDB4MGMsMHhiMywweDAzLDB4YWQsMHgwOCwweGY4LDB4M2MgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4MzIsMHgyMywweDBlLDB4NDgsMHgyMywweDdhLDB4MDAsMHhmZCwweDk0LDB4M2YsMHhlMCwweDBmLDB4NzgsMHgzMywweGVlLDB4MDggfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4YmYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGY5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4YTAsMHgwMCwweGVjLDB4YzgsMHhiZiwweGQxLDB4MGYsMHhjOCwweDBjLDB4MjYsMHg4MiwweGZkLDB4MjQsMHg4ZiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4OTksMHgwYSwweGYyLDB4NjIsMHgxZCwweGQwLDB4OTksMHg2MSwweDIyLDB4NzEsMHg4OCwweDg4LDB4MDIsMHhhYywweDAwLDB4YjggfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MjIsMHgyZSwweDIwLDB4NGIsMHg4OCwweDAzLDB4YTAsMHgwMCwweDgwLDB4MDAsMHgyZSwweDA4LDB4MGIsMHg4MCwweDIzLDB4NjAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDA0LDB4YjMsMHgwMywweDBjLDB4Y2MgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4MGEsMHgxMywweDEyLDB4Y2MsMHgxNCwweGEzLDB4MGUsMHgwYywweDU4LDB4MGEsMHgzMywweDAyLDB4OGMsMHgxMCwweGEzLDB4MjAgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4YTAsMHgwYSwweDE4LDB4OTAsMHgwMiwweDQ4LDB4YTAsMHhiMCwweDIwLDB4MjQsMHg4MCwweDBhLDB4MjAsMHgwMiwweGNjLDB4MDkgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4YTEsMHgwMCwweDJjLDB4ODAsMHgwYiwweDMyLDB4NDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4ZTAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4ODAsMHhhMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4NGUgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4NDYsMHgyYSwweGIwLDB4MDIsMHgyYywweDA0LDB4OWIsMHg4MCwweDJhLDB4NjAsMHg4YSwweDljLDB4MDIsMHhhYywweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4ODEsMHgyZSwweDQwLDB4MGIsMHg5OCwweDAyLDB4YTMsMHgwMCwweDhhLDB4MDAsMHgyZSwweDQwLDB4MGIsMHg4MCwweDA0LDB4ZjAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMSwweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4MGUsMHhiNCwweDAzLDB4ZWMsMHgwYSwweGRiLDB4MDIsMHgyZSwweGQxLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4ODIgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4MzIsMHgyOCwweDFlLDB4MGMsMHgwMywweDY4LDB4MDAsMHhiOSwweDAwLDB4M2UsMHg0MCwweDRmLDB4YjAsMHg0MywweGVkLDB4MDAgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4ZWEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4YzAsMHgwMSwweGI4LDB4MTgsMHhmZiwweDAyLDB4MWYsMHhjMCwweDBjLDB4ZTIsMHgwMywweGZjLDB4MDAsMHhkZiwweDAzLDB4MmYgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4YTEsMHgwZiwweDcwLDB4MDMsMHhmYywweDA0LDB4YWIsMHgwNCwweDM3LDB4NDIsMHgyZCwweGQwLDB4MDIsMHg3YywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4YjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOSwweDAwLDB4ZGIsMHgwMCwweDNjLDB4YzAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4MmUsMHg5NCwweDAxLDB4NmMsMHgxMSwweGNiLDB4MDAsMHhiOCwweGMwLDB4MGMsMHhiMCwweDAzLDB4NmMsMHgwMCwweGViLDB4MDEgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4MzIsMHgxMCwweDA3LDB4OTIsMHgwMywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwYywweDA3LDB4YTIsMHgwMywweGFkLDB4MDAgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4ZDgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDgsMHhiZiwweDAwLDB4MmYsMHhjMCwweDg4LDB4ODAsMHgwMiwweDNjLDB4MDgsMHhlZiwweDAzLDB4MjIgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwZCwweGY1LDB4MDAsMHgzYywweDAwLDB4OGIsMHg4MiwweDIyLDB4NjAsMHgwMywweDljLDB4MDIsMHgyYywweDEwLDB4YjkgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4YjAsMHgyMiwweGYwLDB4MGIsMHg5MCwweDAyLDB4MjAsMHgwMCwweGJiLDB4MDAsMHgyMiwweGUyLDB4MGQsMHhiMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0MCwweDAwLDB4YjMsMHgwMiwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzNCwweDA0LDB4ZWMsMHgwMCwweGE4LDB4MDAgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MjIsMHhmMCwweDBiLDB4MDAsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjgsMHhlMCwweDBiLDB4MTQsMHgwMiwweGEwLDB4MDAgfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MmQsMHhlOCwweDA4LDB4NzgsMHgwMiwweDBlLDB4YzgsMHhhNywweDkwLDB4MjEgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4YTgsMHgxOSwweDM4LDB4NTIsMHg5ZSwweGMxLDB4ODcsMHg4MCwweDIxLDB4ZTIsMHgwYiwweGQ5LDB4ODIsMHg5ZSwweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4YTAsMHgyZCwweDIwLDB4MGIsMHg2OCwweDAyLDB4MWUsMHgwMCwweGI0LDB4YzEsMHgyMSwweDIwLDB4MDksMHg0OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDgwLDB4YjMsMHgxMCwweDNlLDB4ZTAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4MGUsMHgzYSwweDA3LDB4NGUsMHgwMCwweGNiLDB4OTAsMHgzYSwweDYxLDB4MGQsMHgzOCwweDAzLDB4Y2UsMHhkMSwweGUxLDB4OTggfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4MzAsMHhhNCwweDhmLDB4MTAsMHgwMywweDg4LDB4MDAsMHhiYSwweGExLDB4M2MsMHg4NCwweDA3LDB4MDAsMHgwMywweDgyLDB4ZDQgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4ZDEsMHgwMCwweDcyLDB4ODAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDQsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzIsMHgyMywweGVjLDB4YjAsMHhmZiwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDQsMHgwNiwweGI0LDB4MjMsMHg3YywweDEwLDB4YmYsMHgwMCwweDNlLDB4ODQsMHgwZiwweGIwLDB4MDMsMHg3YywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgzMywweDQwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDAsMHhiZiwweDQwLDB4MGYsMHhjOCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlNCwweDAwLDB4Y2IsMHgzMywweDNlLDB4YzggfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4NGMsMHhiMCwweDAzLDB4YWMsMHg5MCwweGRiLDB4YTAsMHgzNiwweGMwLDB4MGUsMHhiYSwweDQzLDB4NmMsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MDAsMHgwZiwweDI4LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTgsMHg0MywweDYwLDB4MDAgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4NDAsMHg0ZiwweDA4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MTAsMHgwNywweDA4LDB4MmMsMHhjYSwweDA4LDB4MjAsMHgwMiwweDFjLDB4MjAsMHg4NywweDI4LDB4M2YgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4ODAsMHg4YSwweGYwLDB4MDIsMHgxZCwweDQwLDB4ODcsMHgwNCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgyZCwweDgwLDB4MGIsMHg2MCwweDAzLDB4MWMsMHgwMCwweGI1LDB4MDAsMHgyZCwweDgwLDB4MGIsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODcsMHhhMCwweDJkLDB4ZTQgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4MGEsMHg1OCwweDAyLDB4MWUsMHgwMSwweDgzLDB4OTAsMHgyMSwweDcwLDB4MGIsMHg3OSwweDAyLDB4OWUsMHgwMSwweDg1LDB4YzAgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4MmQsMHhlMCwweDRiLDB4NTgsMHgxMiwweDFhLDB4MDAsMHhiNiwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDUyLDB4MDAgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4YjQsMHg4MCwweDJkLDB4MjAsMHgwYiwweDQ4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDg4LDB4MzYsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwLDB4NmMgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MGEsMHhhYywweDAwLDB4OWIsMHhlMCwweDZjLDB4YzgsMHgwYiwweDMyLDB4MDIsMHgwYywweDAxLDB4YjMgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgxMCwweGIzLDB4NDAsMHgyYywweGMwLDB4MGIsMHgzYywweDgyLDB4MTIgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAyLDB4Y2EsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MGUsMHhlNCwweDhiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHgzMywweDk1LDB4MGYsMHhhMCwweDA3LDB4YTgsMHgwMiwweGNlLDB4NDAgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4M2YsMHhiMCwweDBmLDB4ZTQsMHg4MiwweDI4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgyMywweDY4LDB4MDAgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4ZmEsMHg0MCwweDNlLDB4ODEsMHg0ZiwweGE0LDB4ZTMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmMCwweDAwLDB4M2MsMHgwMCwweDJmLDB4MDAsMHgwMiwweDYwLDB4MDAsMHhlOCwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwZSwweDgwLDB4MDEsMHgyMCwweDAwLDB4ZTgsMHgwNCwweDVlLDB4MDQsMHgwZiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MDEsMHgzZiwweDEwLDB4MGYsMHhjNCwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDksMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YTksMHgyMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4NDQsMHgwNCwweGQ5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwYiwweGU0LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBlLDB4OTgsMHgwMywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDE4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ZDksMHgwNCwweDIyLDB4NDAsMHgwYiwweDFjLDB4MGIsMHg2NCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4OTQsMHgyYywweDUwLDB4MDgsMHg5YywweDAyLDB4ZTQsMHgxNCwweGI5LDB4OTAsMHgwZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAyLDB4ODksMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4NGEsMHg5MCwweDAyLDB4NjQsMHgwMCwweDk5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5OCwweDgyLDB4ZTQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4NmEsMHg0MCwweDBhLDB4OTIsMHg4MiwweGU0LDB4MDAsMHhiZCwweDAxLDB4MmYsMHg1MCwweDEyLDB4ZDYsMHgwMiwweGY0LDB4NDAgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4YmQsMHgwMCwweDBmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIyLDB4MmMgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4NDgsMHhhOCwweDEyLDB4MDYsMHhjNCwweDkwLDB4OTEsMHgyMCwweDI4LDB4NTAsMHgwYiwweDkwLDB4MDIsMHg0NSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4NDAsMHg2ZCwweDQwLDB4MDgsMHg1MCwweDEyLDB4ZDQsMHgwNCwweGI1LDB4MDIsMHgyZCwweDQwLDB4MGIsMHg1MCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHgwMCwweDM2LDB4MTQgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MGEsMHg4NSwweDAzLDB4NDEsMHg0MCwweGQ4LDB4NTAsMHgyZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4YzEsMHg0MCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4YmEsMHgwMCwweDBlLDB4ODAsMHgyMywweGUwLDB4MDAsMHg3OCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDQgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhkOSwweDEwLDB4M2UsMHg0NCwweDA3LDB4ZjEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4NDQsMHhhZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDM3LDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweGQ0LDB4ZmQsMHhhMiwweDNhLDB4NzAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4OGMsMHg5ZSwweDAzLDB4MjYsMHg4MCwweGM5LDB4YTAsMHgzMiwweDY4LDB4MGMsMHhkYiwweDQzLDB4MjcsMHg4MCwweDlkLDB4YTIgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4YjcsMHg0MCwweDBmLDB4NTAsMHgwMywweDY1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMSwweDA3LDB4ZDAsMHgwMywweGY1LDB4MDQgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4ZmQsMHg0MCwweDJmLDB4YzAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4ODgsMHhiOCwweDUwLDB4MjIsMHgzOCwweDA4LDB4OGUsMHgwMCwweGEyLDB4YTAsMHg4OCwweGU4LDB4MjIgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MzgsMHg0OCwweDg4LDB4MDMsMHg2MiwweDEwLDB4YTgsMHhlOCwweDNjLDB4MDAsMHgwYiwweDgwLDB4MDMsMHg2MiwweDgwLDB4YjggfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4MDEsMHgyZSwweDgwLDB4MGIsMHg4MCwweDIxLDB4YTIsMHgwMCwweGIwLDB4ODQsMHgyZSwweDJhLDB4MjgsMHg4YSwweDgyLDB4Y2UgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDQwLDB4YjEsMHgwMCwweDI4LDB4NTggfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4ODAsMHgxMywweDQwLDB4MDUsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUyLDB4MjgsMHgxNiwweDAyLDB4ODUsMHg4MCwweDliLDB4YzIgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4NjQsMHg0MSwweDhiLDB4OTgsMHgwMiwweDA0LDB4MDAsMHhiMSwweDA5LDB4MmMsMHg0MCwweDFiLDB4MTAsMHgyMCwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4YjEsMHgwMCwweDJjLDB4NDAsMHg0OCwweDEwLDB4MDIsMHhjMiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MTgsMHgxNSwweGE1LDB4ODQsMHhiOSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHgwMSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4NTAsMHgwOCwweDkwLDB4NDIsMHg2NCwweDAwLDB4YTksMHgxMCwweGFlLDB4NTgsMHgwMywweDk4LDB4MDIsMHg2NCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQ2LDB4YTQsMHgxMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MDgsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNywweDAwLDB4ZjksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4MmMsMHg5NCwweDBiLDB4MjQsMHgwMiwweGM5LDB4MDAsMHhiMiwweDQ0LDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCwweGQ5LDB4ODAgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4YjYsMHg0MSwweDhmLDB4MTgsMHgwMywweDI0LDB4MDAsMHhmOSwweDYwLDB4M2UsMHg0MCwweDBmLDB4OTYsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4ZjksMHg4MCwweDNlLDB4NDIsMHg4YywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4MDAsMHhmMSwweDAwLDB4M2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4NDAsMHg4ZiwweDkwLDB4MjMsMHhjNCwweDEwLDB4ZjksMHgwMCwweGJlLDB4NDAsMHgwZiwweDkwLDB4MGIsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MDcsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4ZjgsMHgwMCwweGJlLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MGUsMHg4NCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHgwMCwweDgzLDB4MjAsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGEwLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDggfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjIsMHg4MCwweDQ4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhhYSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDMsMHg2OCwweDAwLDB4ODIsMHgwMCwweDJmLDB4ODAsMHgwOCwweGU2LDB4MDIsMHgyOCwweDA0LDB4YmUgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4NDAsMHgyMywweDgwLDB4MGIsMHhlOCwweDAyLDB4ZWEsMHgwMCwweGJlLDB4MDEsMHgyMiwweDgwLDB4MGIsMHhlMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAxLDB4OTMsMHgwMSwweDIwLDB4YzEgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4ODgsMHgzOCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4MjQsMHhjMCwweDBhLDB4M2UsMHg0MiwweDhjLDB4MDAsMHhiMiwweDRjLDB4MjQsMHhlMCwweDRiLDB4MzgsMHgwMiwweGM0LDB4NDEgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4YjMsMHgwMCwweDIyLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDAwLDB4MjAsMHhjOSwweDQ4LDB4NzAsMHgwMiwweGRjLDB4NDAsMHhhNywweDE0LDB4MmMgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4YzgsMHgyOCwweDMwLDB4ODIsMHg1YywweGMxLDB4ODUsMHgwMCwweDJkLDB4ZTAsMHgyYSwweGYwLDB4MTIsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4YTAsMHgyMSwweDgyLDB4MGIsMHg3MCwweDgyLDB4ZDQsMHgxMSwweGI2LDB4ODAsMHgyMSwweDQwLDB4NGIsMHg1MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgwLDB4ZDUsMHg4MCwweDI5LDB4ZWEgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4NGUsMHgzYSwweDA3LDB4MGUsMHg4MCwweGUzLDB4YjAsMHgzMSwweGZjLDB4MGMsMHg0OCwweDAzLDB4MGUsMHg0MSwweGU3LDB4ODAgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4M2QsMHhlMCwweDBlLDB4NzgsMHgwMywweDllLDB4ODAsMHhmNCwweGM0LDB4MzUsMHhlMCwweDBmLDB4NzgsMHgyNywweGRlLDB4MDAgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4ZjUsMHg4MCwweGIxLDB4ZTAsMHgwZiwweDU4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHgzMSwweDA0LDB4M2EsMHhjNCwweDBmLDB4YjUsMHg5MywweDZkLDB4MDgsMHhmYiwweDQwLDB4M2EgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4YzgsMHg2MywweDgwLDB4MjMsMHhlYywweDk4LDB4ZTksMHgwMCwweDNlLDB4YzAsMHgwZCwweGIwLDB4NDMsMHhlYywweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4ODAsMHgzZSwweDQwLDB4NGYsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NjgsMHgzZSwweDQwLDB4OGYsMHg5OCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDYwLDB4ZWIsMHg5MCwweDNlLDB4ZTQgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MGYsMHhiOCwweDAwLDB4M2YsMHg0MCwweGNiLDB4ODAsMHg3ZiwweGUwLDB4MGUsMHhmYiwweDAzLDB4MmUsMHg0MCwweGNiLDB4ODAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4M2YsMHhlMCwweDBmLDB4NzksMHg0MywweDJlLDB4NjAsMHhjYSwweDgxLDB4MzMsMHg2NCwweDhmLDB4ZDksMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4ZmYsMHg4MSwweDMzLDB4ZTAsMHgwZiwweGQ5LDB4OGIsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4YTgsMHgwMSwweDljLDB4MDAsMHg4NywweDgxLDB4MTksMHhlNCwweDBiLDB4ZmEsMHgxMywweDVlLDB4ODAsMHg4NywweGIyLDB4MmQgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4ZWMsMHgwZCwweDc5LDB4MDEsMHg5ZSwweDAwLDB4ZDUsMHg5MCwweDJkLDB4ZjgsMHgwYiwweDc4LDB4MDMsMHg3ZSwweDA4LDB4YWIgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4OTEsMHgyOSwweDg1LDB4MGIsMHg1MSwweDAyLDB4ZGMsMHg0OCwweGI2LDB4NDAsMHgyMSwweDQwLDB4MGIsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4YywweDE0LDB4YjUsMHgyMCwweDZkLDB4YzggfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4MGIsMHg3MiwweDAyLDB4NWMsMHg4MCwweDg3LDB4MjAsMHg2OSwweGMwLDB4ODgsMHg1MywweDAyLDB4Y2MsMHg4MSwweDk3LDB4NTAgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MmQsMHhjOCwweDBiLDB4ZjcsMHgwYSwweGRjLDB4YzAsMHg4NCwweDAxLDB4MjEsMHg0NCwweDFiLDB4NzAsMHgyMiwweGRjLDB4MDAgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4YjUsMHgwMCwweDIxLDB4YzQsMHgwYiwweDUwLDB4ODYsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MjAsMHgxNCwweGNmLDB4MzAsMHg5MSwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzQsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4ZjIsMHgwYiwweDEwLDB4MjIsMHgwYywweDAwLDB4OTEsMHgwMCwweDJjLDB4YzgsMHgwYiwweDE4LDB4MGEsMHhjZCwweDAxLDB4YTMgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgyOCwweDYwLDB4MGIsMHgyMSwweDAyLDB4Y2UsMHgyMCwweGI4LDB4NDAsMHhhMCwweDU0LDB4MGIsMHgxOCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiZCwweDAwLDB4ZjksMHgwMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4MGYsMHhmNCwweDAyLDB4N2MsMHgxMiwweGNmLDB4MDMsMHgzZiwweGMyLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweDliLDB4MDIgfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4MmUsMHhmMiwweDBmLDB4YTQsMHgwYiwweGRjLDB4MDAsMHhjZSwweDAwLDB4YjAsMHhjOCwweDhmLDB4YTQsMHgwMywweGVmLDB4MDAgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4ZjgsMHg4MCwweDMyLDB4ZjUsMHgxZiwweGRkLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4NDAsMHhlOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4YjEsMHgwMywweGNjLDB4MDAsMHhmMywweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4YzAsMHgwZCwweGI0LDB4MDksMHhlYywweDE4LDB4ZjksMHgxMCwweDNlLDB4MTAsMHg0ZiwweGIxLDB4MGEsMHg2YywweDgwLDB4ZjkgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4ODksMHgzNiwweDgyLDB4MGIsMHhhNiwweDAzLDB4ZWMsMHg1MCwweGY5LDB4NTAsMHgzZSwweGMwLDB4MWYsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmQsMHhhMCwweDNkLDB4YzAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4MGMsMHg3MCwweDgzLDB4MmMsMHgwMCwweGVmLDB4MDIsMHgzNSwweGMwLDB4MGQsMHhlMiwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4MmQsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MTAsMHhkYywweDAwLDB4M2YsMHg4MCwweDBjLDB4ZDgsMHgwMywweGZjLDB4MDAgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4ZGUsMHgxOCwweDMzLDB4ZjAsMHg0ZiwweGQwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4ODEsMHgwMCwweDZjLDB4MDAsMHhiOSwweDAwLDB4MmUsMHhjMCwweDRjLDB4YjAsMHgwMywweDZjLDB4MDAsMHg4YiwweDAyLDB4MzYgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4YzAsMHgwZCwweGFjLDB4MTIsMHhlYywweDAwLDB4NzksMHgwMCwweDJlLDB4MzAsMHgwZCwweDNkLDB4NDIsMHhhYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4ODgsMHgxYSwweDEwLDB4MGQsMHg4NiwweDAyLDB4ZWUsMHgwNCwweGJiLDB4NDAsMHgyMiwweGUwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAxLDB4YjksMHgwMCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4MDgsMHhiMCwweDQyLDB4YWMsMHgwMCwweDBiLDB4MDUsMHgyNiwweGMwLDB4MDksMHg5NCwweDIwLDB4ZWMsMHgwMCwweGI5LDB4ODAgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4NmUsMHhjNCwweDg4LDB4YjAsMHg4MiwweDJjLDB4MDAsMHg5YiwweDgyLDB4MmUsMHg0MiwweDA4LDB4ODEsMHgwMiwweGU0LDB4ODAgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4YjgsMHgwMCwweDIyLDB4YzEsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHhiMSwweDI1LDB4MmMsMHhjYSwweDA4LDB4MzQsMHg0NiwweGNjLDB4MDgsMHg4MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4YzIsMHgwYiwweDAyLDB4NTIsMHhjYywweDgxLDB4ODMsMHgwMCwweDJjLDB4MDAsMHgxOSwweGIyLDB4NDIsMHhhYywweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MDgsMHgyOCwweDgwLDB4MDksMHgwMCwweDAyLDB4YzQsMHg0MCwweGIxLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2YywweDAwLDB4YjksMHgwMCwweDNmLDB4ZDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4MDgsMHhmNiwweDA3LDB4YmMsMHhjMiwweGFmLDB4MzAsMHg3NSwweGRjLDB4MGQsMHgxNiwweDAyLDB4ZmMsMHhlMCwweGI5LDB4NTAgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4M2UsMHhjYywweDBjLDB4YjAsMHgyMywweDJjLDB4MTAsMHhkOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4ZGUsMHgwMSwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZCwweDEwLDB4M2YsMHhjYSwweDJlLDB4ZjYsMHgwMywweDZkLDB4OTQsMHg5ZiwweDMwLDB4M2EgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4YzksMHgwYywweDgzLDB4OTMsMHhmYywweDgwLDB4ZmYsMHgxMSwweDdlLDB4MTksMHgwYiwweGIxLDB4MDMsMHhmYywweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MDgsMHgzYiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHg4MCwweDc3LDB4MDAsMHhiZiwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmYywweDAwLDB4ZjQsMHg5NCwweDM3LDB4YzggfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MGQsMHg2OSwweDYzLDB4N2MsMHgxMCwweGZmLDB4NjIsMHgzNywweGMwLDB4MGQsMHhiNCwweDAzLDB4N2MsMHg2MCwweGQ0LDB4ODAgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4M2YsMHg0MCwweDBmLDB4NDgsMHgyMywweDMyLDB4MDAsMHhjZSwweDAwLDB4YmYsMHg0MCwweDhmLDB4ZDEsMHgwMywweDMwLDB4ZTAgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4ZmYsMHgzMCwweDNiLDB4NjAsMHgwZiwweGQ4LDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4ODAsMHgxMCwweGVkLDB4MjAsMHhiOCwweDI0LDB4MjMsMHhmNCwweDQ5LDB4YTIsMHgwMiwweDNmLDB4NDAsMHg4ZiwweDUxLDB4MjMgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4ZGEsMHgwOCwweGY2LDB4MTIsMHgzZCwweDgwLDB4OWIsMHg4MCwweDJlLDB4NDksMHg0YiwweDgwLDB4MDMsMHg0MCwweDAwLDB4ZDkgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MDEsMHgyMiwweDc0LDB4MGIsMHhkNSwweDAyLDB4MjEsMHgwMCwweGJmLDB4NDIsMHgyZSwweDQ5LDB4MGIsMHg5YywweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZCwweDgwLDB4YjgsMHgyMCwweDI4LDB4YzEgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4MWIsMHhhMCwweDAyLDB4NGMsMHgwMCwweDkzLDB4MjAsMHgyYywweGQ4LDB4MGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4MDEgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4MmMsMHhjNiwweDFhLDB4YTAsMHgwMiwweDY4LDB4MDgsMHg4MywweDAwLDB4YTQsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4YjMsMHgxMCwweDI4LDB4NDIsMHgwYiwweDE0LDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDYwLDB4MmEsMHhjMCwweDFiLDB4YTAsMHg4ZSwweGFjLDB4MDEsMHg5YiwweDA1LDB4MjYgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4YzAsMHgwMywweGIwLDB4NDIsMHg2YywweDAwLDB4OWIsMHg4MCwweDJlLDB4YzAsMHgwMywweGEwLDB4MDYsMHg2OSwweDAwLDB4OTkgfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4ODAsMHhhYSwweGMwLDB4MGIsMHg5MCwweDAyLDB4NjMsMHgwMCwweDNiLDB4MDAsMHgyZSwweDU4LDB4NGIsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDA0LDB4ZjgsMHg4MCwweGJhLDB4YzAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4NmMsMHgxMCwweGRiLDB4MDMsMHgzNiwweGMwLDB4OGYsMHhiMCwweDAzLDB4ZWMsMHgwOCwweGQ4LDB4ODAgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4N2UsMHhlMCwweDA2LDB4ODgsMHgwMywweDQxLDB4MDgsMHhjYiwweGEwLDB4M2UsMHg2NCwweDBmLDB4OTAsMHgwYiwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4N2IsMHgwMCwweDNhLDB4MDEsMHgwZiwweDkwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYywweDg0LDB4MzIsMHhjMCwweDBjLDB4ZjksMHgwMywweDVjLDB4MTAsMHhlZiwweDAwLDB4M2IgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHg5YywweDAwLDB4ZWMsMHgwMSwweDNmLDB4ZTQsMHg0ZiwweGQxLDB4MDMsMHhmMSwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MDUsMHgzMywweDYwLDB4MGYsMHhkMCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZiwweDIxLDB4MGYsMHhkMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4YzgsMHg0MCwweDNhLDB4YzYgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4MGQsMHhiNCwweDAzLDB4NmMsMHgwMCwweGYzLDB4MDAsMHgzNCwweGMwLDB4MGUsMHhiMCwweDAzLDB4NmMsMHgwMCwweGU5LDB4MTAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4M2EsMHhjMCwweDBmLDB4ODQsMHgwMywweDJjLDB4NjAsMHhjYiwweDAwLDB4MzIsMHg2MCwweDBjLDB4NTAsMHgwMywweDYxLDB4MDAgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4OTAsMHgwZSwweDkwLDB4YTMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDIsMHg4OCwweDAxLDB4MDEsMHhmMCwweDIwLDB4YjAsMHgwMSwweDNlLDB4MDAsMHgzZiwweDAwLDB4MzMgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MzIsMHgzYywweDA4LDB4ODksMHg4MCwweDIyLDB4YzAsMHgwMSwweDE1LDB4MTIsMHhhYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4NDgsMHhkYiwweDAyLDB4MmYsMHg0MCwweDhmLDB4MDAsMHgyZSwweDAxLDB4MDgsMHhkNCwweDgwLDB4MzIgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4MDgsMHgwMCwweDA4LDB4ZjAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4MDgsMHgwMCwweDEyLDB4NGMsMHgwMCwweDMzLDB4MDEsMHgyNCwweGMwLDB4NGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweGEwLDB4MjAgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDQ2LDB4MDQsMHg4MywweDA0LDB4MjAsMHhjMCwweDI5LDB4MTgsMHgwMiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4YjMsMHgwMCwweDJjLDB4NDAsMHgwYSwweDFjLDB4NDIsMHhiMSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4ZCwweDgwLDB4MjEsMHhlMCwweDE4LDB4YzgsMHgwMiwweDFlLDB4MDAsMHhiMywweGEwLDB4MjEgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4ZTAsMHgxYiwweDM4LDB4MDIsMHgwZSwweDAxLDB4YTcsMHg4MCwweDIxLDB4ZTAsMHgwOSwweGQ4LDB4NDAsMHhkNiwweDQwLDB4ODcgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4ODAsMHgwMSwweGUwLDB4MDksMHg1OSwweDAyLDB4MTYsMHgwMCwweDk3LDB4ODQsMHgyZCwweDYwLDB4MDgsMHg1OCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDQwLDB4YzAsMHgwMCwweDM4LDB4YzQgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4MGMsMHgzMCwweDI3LDB4NGMsMHgyMCwweGYzLDB4MDEsMHgzNCwweGMxLDB4MGUsMHgzYSwweDAzLDB4NGMsMHhjNCwweGUwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4MTgsMHhjOCwweDBmLDB4MzQsMHgwMywweDQ0LDB4NDAsMHhjMywweDAwLDB4MzAsMHhjMCwweDBkLDB4OTAsMHgwMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4ZjMsMHgwMCwweDNlLDB4NDAsMHgwZSwweDEwLDB4MDEsMHg5YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmOSwweDAwLDB4MGUsMHhkNCwweDBlLDB4YjAsMHgwMywweGVjLDB4MjAsMHhmYiwweDIwLDB4M2YgfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4YzQsMHgwZiwweGYxLDB4MDMsMHhlYywweDYwLDB4ZGIsMHgxMCwweDNmLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhhNCwweDQ2LDB4ZmIgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MDAsMHhiZCwweGMwLDB4MGUsMHhkMCwweDBiLDB4YjQsMHgwMCwweGVmLDB4NDgsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZjgsMHgwMCwweDMyLDB4ZDQgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YWQsMHgwMCwweGViLDB4MDgsMHgyMiwweGQyLDB4MGMsMHhiNiwweDAzLDB4NmMsMHgwMCwweGYyLDB4ODAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTAsMHgwMywweDI4LDB4MTAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBmLDB4ZDYsMHgwMywweDI4LDB4MTAgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4NDAsMHg0ZiwweDk5LDB4MTMsMHgyYiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4NDgsMHgxMSwweDlkLDB4MTAsMHhiNCwweDAxLDB4MjEsMHhjMSwweDhiLDB4YzAsMHgwMiwweDFjLDB4YTAsMHhiZiwweDA0LDB4MjcgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4YzgsMHgwOCwweDc1LDB4MDIsMHgxYywweGMwLDB4YjYsMHgwMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4NDIsMHgxOCwweDEwLDB4OGYgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGIsMHg1NCwweGEyLDB4MWMsMHgwMCwweGI3LDB4MDQsMHgyZCwweDQxLDB4MGIsMHg1MiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDgwLDB4YjYsMHg4OCwweGE1LDB4ZTAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4OWUsMHg4MSwweGE3LDB4OTAsMHgyNSwweGU0LDB4ODgsMHg3OCwweDAyLDB4MWUsMHg4MCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4MjQsMHg2MCwweDBiLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NywweDg0LDB4NjEsMHhlMCwweDBhLDB4MWEsMHgwYSwweDFhLDB4MDAgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4YjcsMHhhMCwweDJkLDB4ZTAsMHgwYiwweGRhLDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiYSwweGMwLDB4YTQsMHhjMCwweDBiLDB4MzQsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MGUsMHgyYywweDAwLDB4YjMsMHg5OCwweDIwLDB4NjAsMHgwOSwweDMzLDB4MDIsMHgyYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4YzgsMHgyMCwweGMwLDB4MGIsMHgxMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGYwLDB4MGIsMHgxMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDM2LDB4ODEgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MGIsMHhlMCwweDAzLDB4YTgsMHgwMCwweGVhLDB4MDAsMHhiMiwweDgwLDB4MDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MzYsMHhhMCwweDFmLDB4ZTgsMHgxMywweDNiLDB4ODIsMHhjZSwweGUwLDB4MjIsMHg4MCwweDhlLDB4YTAsMHgwMywweDM4LDB4MDAgfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4YmEsMHgwMCwweDNmLDB4YTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDIwLDB4M2EsMHgxMCwweDA3LDB4ODAsMHgwMywweGMxLDB4MDAsMHhmOCwweDAwLDB4MzggfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgyZiwweDgwLDB4MDMsMHhhMCwweDAxLDB4ZjgsMHg0MiwweDNlLDB4MDUsMHgwZSwweDgwLDB4MGIsMHhlMCwweDgwLDB4ZDggfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDBiLDB4ZDIgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDNhLDB4NTAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4OGYsMHg5MCwweDgzLDB4YTQsMHgwMiwweGQxLDB4MDAsMHhiMiwweDQwLDB4NGMsMHg5MCwweDIzLDB4MjQsMHgwOCwweGM5LDB4MDEgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTQsMHgwYSwweDI1LDB4MjAgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4ZTksMHgwMCwweDNlLDB4NDIsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MGEsMHg4OSwweDAwLDB4MjIsMHg3MCwweDBiLDB4OTAsMHgxMiwweDI1LDB4ODAsMHhjOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4NDAsMHgwYSwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHgyMCwweDJjLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4YzEsMHgzMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4MDYsMHgwMCwweDg5LDB4OTAsMHgyZSwweDQwLDB4MGIsMHg5NCwweDEyLDB4ZTAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgwNCwweDAwLDB4ODksMHgwMCwweDZhLDB4NDIgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MGEsMHgxMCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHhhMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweDA5LDB4MDAgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4MmUsMHg0MCwweDU4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDgwLDB4YWEsMHg2MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4YTksMHgwMCwweDJlLDB4NDAsMHgwYiwweDk0LDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4NjAsMHg0OCwweDBiLDB4MTAsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4NjAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4NDgsMHgwYSwweDEyLDB4MDIsMHg0NCwweDg4LDB4ODEsMHgwMCwweDBlLDB4NTksMHgwYSwweDE0LDB4MDIsMHgwNSwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4YzAsMHgyOCwweDUwLDB4NDksMHgzMCwweDAyLDB4OGMsMHg4NCwweDAxLDB4NjAsMHgyYywweDUwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzAsMHg1NCwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MGUsMHg4NSwweDAzLDB4YTAsMHgwMCwweGM4LDB4NTAsMHgzMiwweDE1LDB4MWUsMHgwNSwweDIyLDB4MjEsMHg0MiwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweDAwLDB4MDQsMHhjOCwweDAwLDB4M2EsMHgwMCwweDRmLDB4ODUsMHgwMywweGExLDB4NDAgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4NjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4NDAsMHhmZCwweDAzLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDgsMHhlOSwweDEwLDB4M2UgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4NDUsMHgwZiwweDkxLDB4MTMsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNmLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAyLDB4ZmQgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4NDAsMHgzMywweDUwLDB4MGYsMHhkNCwweDIzLDB4NzQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMzLDB4NmEgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4MDksMHg5MCwweDAzLDB4YjYsMHgzNCwweGY5LDB4YzgsMHgzMiwweDY0LDB4MGMsMHg5YSwweDAzLDB4ZTYsMHhhMCwweGRkLDB4MDAgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4M2MsMHg3MCwweDBmLDB4OTAsMHgwMywweGE1LDB4MDAsMHg4OSwweDgwLDB4MzMsMHgzMiwweDBmLDB4ZDgsMHgxMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4ZmQsMHgwMCwweDcwLDB4NTAsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHhiOCwweGE4LDB4MjIsMHgxMCwweDA4LDB4ODgsMHgwMiwweDIxLDB4MDAsMHhiOCwweGMwLDB4MjAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MzAsMHgwZCwweDhlLDB4ODcsMHg4MywweDg4LDB4ODgsMHgwMCwweDJlLDB4MzQsMHgwYiwweDhhLDB4ODIsMHgyMiwweDgwLDB4ZGMgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4ZTAsMHgyMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwMCwweGY4LDB4YTgsMHgyYSwweDI4LDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDIwLDB4YjEsMHgwMCwweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MGEsMHg5MiwweDkyLDB4ODQsMHgxMSwweGIxLDB4MjQsMHg2OCwweDU4LDB4MDksMHgxMSwweDAyLDB4YzQsMHgyMCwweDkxLDB4MDEgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4MmMsMHg0OCwweDFiLDB4NTAsMHgwMiwweDc0LDB4ODQsMHg5NSwweDQ4LDB4YWMsMHg0OCwweDBiLDB4OTQsMHgwMiwweDA0LDB4MDQgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4YjEsMHgwMiwweDI0LDB4NDgsMHgwYiwweDEwLDB4MDIsMHgwMiwweDA1LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhiMSwweDIwLDB4MjIsMHg0MCwweDBhLDB4OTAsMHgwNiwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4NDAsMHgwOSwweDkwLDB4MDIsMHhhNCwweDAwLDB4OWIsMHgwOCwweDJlLDB4NDgsMHgwYiwweDEyLDB4MWEsMHg3NCwweDAwLDB4OTUgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4NDUsMHgyZSwweDYwLDB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4MGUsMHgxNiwweDAzLDB4YTQsMHgwMCwweGI5LDB4MDQsMHgzMiwweDQwLDB4MGQsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4MmUsMHg0MCwweDFmLDB4OTgsMHgwMywweGU1LDB4ODAsMHhkOSwweDAwLDB4YWUsMHg2MCwweDA3LDB4MTAsMHgwYiwweDI2LDB4MDEgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4YjksMHgwMCwweGE2LDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4YmUsMHg0MCwweGFjLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YjQgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjkgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgzMiwweDAwLDB4MGYsMHg5MCwweDgzLDB4ZTYsMHg4NSwweGUxLDB4MDAsMHgzMiwweDQ0LDB4MGYsMHgxMCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MGYsMHg4MCwweDEzLDB4ZTAsMHg5NCwweGUwLDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHg0MywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHg0YywweDgwLDB4MjMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MjMsMHg4MCwweDBiLDB4YTAsMHgwMiwweGZiLDB4MDQsMHg2YSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHg2OCwweDBhLDB4OGUsMHg4OCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgwOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MDAsMHhiNywweDIyLDB4MDMsMHhlNCwweDAyLDB4ZmEsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDYwLDB4NDEgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4MDMsMHgzMCwweDAyLDB4Y2MsMHg0MSwweGEzLDB4MDAsMHgwNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweGEzLDB4ODAgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4MmMsMHhjMCwweDA5LDB4MzgsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4YTAsMHhjMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4ODAgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4YTEsMHgwMCwweDIwLDB4YzAsMHgwOCwweDM4LDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4NjEsMHgwMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhMywweDAwLDB4MjUgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4YzgsMHgxOSwweDM4LDB4MDIsMHg1YywweDgwLDB4YTcsMHgwMCwweDBmLDB4ZTgsMHgwOSwweDY0LDB4MjIsMHgxMCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgyNSwweGM4LDB4MGIsMHg2MCwweDAyLDB4ZjIsMHgwMCwweDg1LDB4MDEsMHgyMywweGU4LDB4MDgsMHg3MCwweDgyLDB4ZTggfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDIwLDB4ZmYsMHg4MCwweGExLDB4YTAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4MGYsMHg3YSwweDQyLDB4ZGEsMHgwMCwweGU3LDB4ZTgsMHgzNSwweGYwLDB4MmYsMHg3YiwweDYyLDB4MWUsMHg4MiwweGU2LDB4ODAgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4MWQsMHhlMCwweDBkLDB4ZjgsMHgwYiwweDFlLDB4MDAsMHhmNywweDgwLDB4MzEsMHhmMCwweDBmLDB4NzgsMHgwMywweGRlLDB4MGMgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4ZWYsMHg4MCwweDMxLDB4ZjgsMHgyYywweDc4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4MDgsMHgxZCwweGFkLDB4ODQsMHhmYiwweDY4LDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYiwweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4ZDgsMHgwZSwweGI1LDB4MDMsMHhlZCwweDAwLDB4ZGIsMHgwMCwweDNhLDB4YzAsMHg4ZSwweGEwLDB4MDMsMHhlMCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHhiMCwweDQzLDB4YzQsMHgwNCwweGVmLDB4MDIsMHhiZiwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDQyLDB4YzcsMHgzOCwweDMzLDB4NjQgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MGUsMHg3YywweDAzLDB4NWUsMHgwMCwweGRmLDB4YTAsMHgzNywweGYwLDB4MGQsMHhmOCwweDAzLDB4ZmYsMHgyMCwweGNmLDB4ODEgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4MzMsMHhlMiwweDBjLDB4ZDgsMHgwMywweGJlLDB4MDAsMHg3ZiwweGMwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgwMywweDdlLDB4MDAgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4NywweGEwLDB4MjEsMHgxNCwweDA4LDB4NzEsMHgwMiwweDE0LDB4MTAsMHhkNywweDIwLDB4MzUgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHhiYywweDAwLDB4ODUsMHgwOCwweDJiLDB4YzAsMHg0ZCwweDQ2LDB4MDIsMHhkMSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHg4MCwweGY1LDB4MjAsMHgzZCwweGNhLDB4MGYsMHg1NCwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDExLDB4OGYsMHgwMSwweDIwLDB4ODQgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4MWEsMHhmMCwweDAyLDB4MTgsMHgwMCwweGE3LDB4MzQsMHg2NSwweGMwLDB4MDksMHg3MSwweDAyLDB4ZGMsMHgwMCwweDhlLDB4MDAgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4MjksMHhjMCwweDA4LDB4NTAsMHgwNiwweDljLDB4MDAsMHhiZiwweDg4LDB4MmQsMHhjNCwweDBhLDB4NjAsMHgyNiwweDU4LDB4MjQgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4OTcsMHgwMCwweDZkLDB4YzAsMHg5YiwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4YiwweDQwLDB4MjAsMHgwMCwweDE4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiYiwweDAyLDB4MjQgfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4MjAsMHhjYywweDAwLDB4ODEsMHhjMCwweDI4LDB4YzAsMHgwYiwweDA0LDB4ODIsMHhlMCwweDEwLDB4YmIgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4YTAsMHgyYywweGUwLDB4MGEsMHgyMCwweDA2LDB4MDAsMHgwMCwweGIzLDB4MDAsMHgyOCwweGMwLDB4MGEsMHgxMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2YsMHgxMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4MGUsMHhmMCwweDBiLDB4MjQsMHgwMCwweGVmLDB4MDAsMHgzNywweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwNiwweGMxLDB4NTAgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4M2IsMHhjMCwweDBjLDB4YjQsMHgwMywweGFjLDB4MDAsMHhmOCwweGMwLDB4YmUsMHhjOCwweDJlLDB4YjAsMHgwMywweDZlLDB4MDEgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4ZmIsMHgwMCwweDJkLDB4YzAsMHg0YiwweDkwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDQsMHhmYiwweDAwLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGFkLDB4MDAsMHg5YiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4YzAsMHgwZiwweDMwLDB4MDMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDJlLDB4YzAsMHgwNSwweGI0LDB4MDMsMHhlZCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4NDAsMHgzMiwweGMwLDB4MDksMHgwMCwweDAzLDB4ZTAsMHg5MSwweGUzLDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDExLDB4ZTAgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAwLDB4ZWYsMHgwMCwweDMzLDB4MjAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4NGYsMHhmMCwweDAzLDB4YjQsMHgwMCwweGVmLDB4MDMsMHgzYSwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCwweGRjLDB4MDAgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4MzEsMHhjMCwweDhkLDB4ZjgsMHgwMywweGZlLDB4MDQsMHhjZiwweDAwLDB4MzIsMHhjOCwweDBjLDB4ZjAsMHgwYiwweDFjLDB4MDAgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4Y2YsMHg5MywweDMzLDB4YzAsMHg4YywweDQwLDB4MDIsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHgwNCwweDBiLDB4MzAsMHgwMiwweDBlLDB4MDAsMHhhYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDMsMHg2YywweDA4LDB4YTgsMHhjMCwweDM2LDB4YzAsMHgwOCwweGJjLDB4MDIsMHhlZiwweDAyLDB4YWIgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4ZDAsMHgyMCwweGUwLDB4MDgsMHhiOCwweDIyLDB4MjYsMHgxMCwweDhiLDB4MDAsMHgyMiwweGMwLDB4MjAsMHg5YywweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmIsMHgwMCwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4MGEsMHhiMCwweDAyLDB4YTIsMHgwOCwweGFiLDB4MDAsMHg2YSwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDhiLDB4ODAgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4YjEsMHgwMiwweGVjLDB4NDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDA4LDB4YjgsMHgwMiwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDk4LDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDBiLDB4YjAsMHgwMiwweDAwLDB4MDEsMHg4MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHg0YywweDAwLDB4MDAsMHgwNCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDYsMHg0YywweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHg0MSwweDgzLDB4MDAsMHhhMiwweGMwLDB4MDgsMHgxMCwweDBhLDB4ODIgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4ZWYsMHgwOCwweDI2LDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4MGUsMHhmMCwweDAyLDB4YTAsMHgwMCwweGU3LDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmNSwweDQzLDB4M2MsMHgwMiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4MzIsMHhjMCwweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBjLDB4YTAsMHgwMywweDI4LDB4MTAgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwYywweDgwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4YTAsMHgwZCwweGZjLDB4MDAsMHhmYiwweDAwLDB4M2IsMHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmZiwweDAyLDB4M2YgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4YzAsMHgwZCwweGYyLDB4MDMsMHhiYywweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgzMywweGMwLDB4MGYsMHg2MCwweDAzLDB4ZjAsMHg4OCwweGZmLDB4MDAsMHgzZiwweGMwLDB4NGYsMHhkMCwweDAzLDB4NjggfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDQwLDB4ZmMsMHgzMSwweDNiLDB4MDggfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4NGYsMHhmOSwweDQzLDB4ZWYsMHgwMCwweGRmLDB4MzAsMHgzMiwweDIxLDB4MGYsMHg5NCwweDA3LDB4N2QsMHg4MCwweGVmLDB4MzggfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MzIsMHgwOSwweDFjLDB4MzgsMHgwMywweGYyLDB4MjEsMHhmZCwweDAwLDB4MzMsMHhjNCwweDBjLDB4ZjAsMHgwMiwweGZjLDB4MDAgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4ZGYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4ODAsMHgxMCwweGVjLDB4ODgsMHg4YiwweDYwLDB4MjIsMHhlNSwweDBlLDB4YjIsMHgyMiwweGVjLDB4ODAsMHhhZiwweDExLDB4MmEgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MjAsMHgwYiwweGIxLDB4MTMsMHhhYywweDQ4LDB4OGIsMHg0NSwweDM0LDB4Y2MsMHg0OCwweGIwLDB4MDIsMHg2YiwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4ODIsMHgzNiwweDAwLDB4MDgsMHg4OCwweDIyLDB4YzAsMHgwNCwweDg4LDB4MDAsMHhhMiwweDA4LDB4OGIsMHg4OCwweDYyLDB4MjAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YTEsMHgzMCwweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4MGIsMHgzMiwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MjIsMHgyYywweDAwLDB4OGIsMHgxMiwweDA2LDB4YzgsMHg4MCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4MjAsMHgwMiwweGNhLDB4MzAsMHgwNiwweGM0LDB4MDEsMHhiMSwweDAwLDB4NjgsMHg4MCwweDA5LDB4MjAsMHgwMiwweDg4LDB4MDAgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzIsMHgwYiwweDAwLDB4MGEsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4YiwweDYxLDB4NjIsMHhjMCwweDBiLDB4YjIsMHgwMiwweGU4LDB4MDAsMHhhYiwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4NjEsMHgxYiwweDkwLDB4MDIsMHhhOCwweDAwLDB4YWIsMHgwMCwweDIwLDB4YzAsMHgwYSwweGIwLDB4MDIsMHg2YywweDA0LDB4YmEgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4ODksMHg5MCwweDAyLDB4ZTYsMHgwOCwweDk4LDB4MDAsMHgyMiwweDAwLDB4MGIsMHhiMCwweDAyLDB4YjAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZSwweDAwLDB4ZjgsMHgwMSwweDNhLDB4MDQgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4MGYsMHhhYywweDAzLDB4ZWMsMHg5MCwweGZiLDB4MDIsMHgzZSwweGUwLDB4MGIsMHg5MCwweDQyLDB4NjcsMHg4MCwweGE4LDB4YzQgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4MjIsMHg0OCwweDIyLDB4ODYsMHgwMywweGUxLDB4NDAsMHhiOCwweDAyLDB4MmEsMHg0MCwweDI5LDB4OTAsMHgwMywweGVjLDB4MDIgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4YzksMHg0OCwweDMyLDB4NDAsMHgwZiwweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4ZTAsMHgwMSwweGFjLDB4NDAsMHhmYiwweDAwLDB4MWYsMHhhMiwweDBlLDB4ZjgsMHg4MiwweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4YzAsMHgwZiwweGZhLDB4NDMsMHg5NiwweDQ0LDB4ZDQsMHg5MSwweDNmLDB4NDAsMHgwZCwweGMwLDB4MDMsMHhmYSwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MDgsMHgyNSwweDgwLDB4MGUsMHhlMCwweDAzLDB4ZDAsMHgwMCwweGVhLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZTEsMHgyMCwweDNhLDB4NTAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MmMsMHgwMCwweGViLDB4MDgsMHg3NiwweDA1LDB4MGUsMHhiMCwweDI3LDB4ZTAsMHgxMCwweGVhLDB4NDAgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4YjIsMHhjMCwweDBjLDB4YTQsMHg0MywweDI1LDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwOCwweDBmLDB4ODAsMHg0MywweGU4LDB4MDAgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4ZDEsMHgwOCwweGVlLDB4NDAsMHgwZiwweDAwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhkMCwweDBiLDB4OTAsMHg4MiwweDJjLDB4MDAsMHg4NywweDQwLDB4MjIgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4NjAsMHg4YiwweGIwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHg1MCwweDIyLDB4ZDAsMHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4YjMgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4YzgsMHgzZSwweGQwLDB4MGIsMHhiOCwweDAyLDB4MjUsMHgwOCwweDhhLDB4MjAsMHgyYSwweDgwLDB4OGIsMHhiOCwweDgyLDB4ZjIgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2NCwweDAwLDB4YTAsMHhjMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4MDksMHgzOCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDMsMHgyMCwweDAwLDB4MTAsMHgzMCwweDIyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4NjAsMHgwOCwweDBhLDB4MzAsMHg4MiwweDRjLDB4MDAsMHhiMSwweGMwLDB4MDAsMHhkMSwweDBiLDB4MzgsMHgwMiwweDg0LDB4ODAgfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4ODIsMHgwMSwweDIwLDB4ODAsMHgwMywweDM4LDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MjAsMHgwMSwweDE2LDB4NDAsMHg4NCwweDk4LDB4MjUsMHhlMCwweDBiLDB4N2EsMHgwMiwweGZhLDB4NDgsMHhhMywweDIwLDB4NjEgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MjQsMHgwYiwweDc5LDB4MDAsMHhjZSwweGMwLDB4OTMsMHhhNCwweDIxLDB4YTYsMHgwYiwweDc4LDB4MTIsMHhkZSwweDgwLDB4YjYgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4ODAsMHgyZCwweDI0LDB4MGIsMHg0YiwweDAyLDB4MWEsMHg0MCwweDg1LDB4ODEsMHgyMSwweDYwLDB4MGIsMHg0OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTIsMHhhMCwweGI0LDB4ZmUgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4NGIsMHhiOCwweDBiLDB4MGUsMHgwMCwweGEzLDB4YjAsMHgyNCwweGE4LDB4MGUsMHgxYiwweDAyLDB4Y2UsMHhjMSwweGMzLDB4YzAgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4MzAsMHg2OCwweDJlLDB4M2EsMHg0NywweDRlLDB4ODAsMHhmMSwweDgwLDB4MzAsMHg4MCwweDBmLDB4MjIsMHg4MywweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4YzIsMHgxMCwweDM4LDB4ODAsMHg0ZiwweDAwLDB4MDcsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4NDAsMHgwZCwweGJjLDB4MTAsMHhmZSwweDA0LDB4M2IsMHhjMSwweDA3LDB4ZjAsMHgwMywweDFjLDB4YzgsMHhkZiwweDJhLDB4MGIgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4YzQsMHg4ZiwweGQxLDB4NDMsMHhmOCwweDAyLDB4N2YsMHgwMCwweDNmLDB4YzAsMHgwYywweGYxLDB4MGYsMHgzYywweDAwLDB4ZjIgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MTEsMHgzZiwweDQxLDB4MWYsMHg1MiwweDAzLDB4YmMsMHgwZSwweGVkLDB4MTQsMHgzZiwweDQwLDB4MGYsMHhmOCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MGUsMHhiZSwweDRiLDB4NmYsMHgwMCwweGNiLDB4ODIsMHg3YSwweGMwLDB4MmMsMHhiMCwweDAzLDB4MmMsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4MzIsMHgwMCwweDJjLDB4MTAsMHgwMywweDJjLDB4MDgsMHhjMCwweDAwLDB4MjYsMHg0MCwweDZjLDB4OTAsMHgxMywweDI0LDB4MTIgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4MDAsMHgwZiwweGI4LDB4MGIsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4NDgsMHgxMSwweDk0LDB4MDAsMHg4ZCwweDAwLDB4MjEsMHg4MCwweDBiLDB4NzAsMHg4MiwweDNjLDB4MjAsMHg4MywweDMyLDB4MjkgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MjAsMHgxNCwweDAwLDB4ODAsMHgwMCwweDIzLDB4MDAsMHgwOCwweDUwLDB4MDYsMHg5YywweDA0LDB4ZDcgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4MDIsMHgyOCwweDgwLDB4MDgsMHg2MCwweDAyLDB4MDgsMHgxMCwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg0MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YTcsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4MGIsMHg1YywweDEyLDB4MWUsMHgwNCwweDg3LDB4ODIsMHgwZCwweGEwLDB4MDksMHg3OCwweDE2LDB4MDIsMHgwMCwweGI0LDB4ODAgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NzgsMHgwMiwweDllLDB4MDAsMHg4NCwweDgwLDB4MjEsMHgyMiwweDA4LDB4MDgsMHgwMiwweDEyLDB4MDEgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4ODQsMHhjMCwweDJkLDB4MjAsMHgwYiwweDA4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDQyLDB4YTAsMHhkOCwweDBiLDB4MzQsMHg4MiwweDBjLDB4MDAsMHhhMywweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHgwYywweDg4LDB4YjMsMHgyMSwweDI0LDB4ZDgsMHgwYiwweDNlLDB4MDIsMHg4YywweDAwLDB4OTMgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4MDgsMHgyOCwweGMwLDB4MDgsMHgzOCwweDAyLDB4MmMsMHgwNSwweDhiLDB4MDEsMHgyYywweGUwLDB4MGIsMHgzMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZWUsMHgwMCwweDMzLDB4OTAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MGYsMHhhMCwweDBiLDB4NjgsMHgwMCwweGNhLDB4MDEsMHg3ZiwweGE4LDB4MGMsMHhhYSwweDAzLDB4M2EsMHgxMiwweGZlLDB4ZTIgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MzcsMHhiMCwweDBmLDB4ZWUsMHgwMiwweDE4LDB4MDAsMHhjYSwweDQwLDB4MzYsMHhhMCwweDA4LDB4YTAsMHg4YiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4Y2EsMHg4MSwweDJlLDB4YTAsMHgwZiwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDA4LDB4M2UsMHgwMCwweDBmLDB4ODAsMHgwMywweGEyLDB4MDIsMHhkOCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MDgsMHgwZiwweDgwLDB4MTMsMHhlMCwweDQwLDB4NDgsMHg0MCwweGI4LDB4MDQsMHgwOCwweDg0LDB4MDMsMHg2MSwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4NGYsMHhjMCwweDAzLDB4ZjEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhjMCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZjksMHgwMCwweDMwLDB4NTAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4NGMsMHhiOSwweDAzLDB4NmMsMHgxOCwweGY5LDB4MDAsMHgzNiwweDQwLDB4MGUsMHg5YywweDIzLDB4YTQsMHgwMiwweDQxLDB4MDAgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4YjIsMHg0NCwweDBlLDB4OWEsMHgwMywweGE2LDB4ODAsMHhjOSwweDAwLDB4M2EsMHg2MCwweDBhLDB4OTAsMHgwMywweGE0LDB4ODAgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4YzksMHgwMCwweDM0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDQwLDB4MjIsMHg3OCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MTAsMHhiOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4NjIsMHgxOCwweDk0LDB4ODIsMHhhNCwweDAwLDB4ODksMHhjOCwweDIyLDB4NzAsMHg0OCwweDFlLDB4MDEsMHg2NywweDgwLDB4ZDEgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MDAsMHhiYywweDQyLDB4MDgsMHgxMCwweDAyLDB4MjUsMHgyMCwweDg5LDB4MDIsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjEsMHgyOCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MDgsMHhiMCwweDgyLDB4NjQsMHgwNCwweDM5LDB4NDEsMHgyZSwweDQ4LDB4MGEsMHg5MCwweDAyLDB4MDQsMHgxOCwweGE5LDB4MjAgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4MjIsMHg0MiwweDRhLDB4OTAsMHgwMiwweDJjLDB4MDQsMHg4OSwweDA0LDB4MmIsMHg0OCwweDAyLDB4ZDAsMHgwMiwweGI0LDB4MGEgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4OGQsMHg4MCwweDIzLDB4YzAsMHg0OCwweGQwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4YTAsMHg0OCwweDI4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDI0LDB4MmEgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4NDAsMHgwOCwweDEyLDB4NDIsMHg4NSwweDgwLDB4YTEsMHgyMCwweGEwLDB4NDgsMHgwOCwweDkwLDB4MDIsMHg0NCwweDAwLDB4OTUgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4MmMsMHgyZCwweDVhLDB4MGEsMHg3MiwweDgyLDB4MTQsMHhhMCwweDg1LDB4YTgsMHgyMSwweDRhLDB4MDgsMHg1MiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4OGMsMHgwNSwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTEsMHgyZSwweDAwLDB4MGEsMHg4NSwweDAyLDB4MjAsMHgwMCwweGU4LDB4NTAgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4MzIsMHgxNCwweDA2LDB4ODUsMHgxNywweGEwLDB4MDAsMHhjOCwweDIwLDB4M2EsMHgwOCwweDBlLDB4ODIsMHgwMywweGEwLDB4ODAgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4YzgsMHgyMCwweDMyLDB4MDgsMHgyYywweGMyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4OTgsMHgxOSwweGY0LDB4NDAsMHhmZiwweDEwLDB4M2YsMHg0NCwweDBiLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmOSwweDEwLDB4M2QgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4NDAsMHgwZiwweGQxLDB4MDMsMHhmNCwweDU4LDB4OWQsMHgxMCwweDNmLDB4NDQsMHg0ZiwweGQwLDB4MDMsMHhkNSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGQsMHg5MCwweDAzLDB4ZTQsMHhiOCwweGY5LDB4MjgsMHhiYSwweDZhLDB4MGYsMHg5MCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhlNywweDAwLDB4ZmQsMHg4OCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4OGYsMHhkMCwweDAzLDB4MjQsMHgwMSwweGRkLDB4ODAsMHg3MywweDQwLDB4MGYsMHhkOCwweDAzLDB4YTYsMHgwNCwweGNkLDB4YTIgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4MzMsMHg3OCwweDFjLDB4ZDAsMHgwMywweDM0LDB4MDEsMHhmNSwweDg4LDB4M2IsMHg2OCwweDBjLDB4ZGEsMHg0NywweDM3LDB4ODAgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4Y2QsMHg4OCwweDMyLDB4NjIsMHgwYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4ODAsMHhiOCwweDgwLDB4MmUsMHgxNCwweDBiLDB4MGEsMHg4MiwweDIyLDB4ODAsMHhiOCwweGY4LDB4YTIgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwYiwweDhmLDB4YTMsMHg4MywweGUwLDB4ODgsMHhlYiwweDIyLDB4YTksMHgwOCwweDg4LDB4MTIsMHhhMCwweDA1LDB4YjggfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgyYSwweGFhLDB4ODgsMHg4MCwweDEzLDB4NjIsMHg4MiwweDg4LDB4ODAsMHgyMiwweDI4LDB4ODgsMHhhNCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHgwYSwweDJjLDB4NDEgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MGIsMHgxMCwweDA2LDB4MDQsMHgyMCwweGExLDB4MDAsMHgwMCwweDQwLDB4OGIsMHgxMCwweDQ2LDB4YzQsMHgwMSwweDkxLDB4MTEgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4MjQsMHg1OCwweDY4LDB4OTAsMHhjMiwweDA0LDB4MDAsMHhiMSwweDAwLDB4YTgsMHg1MCwweDA5LDB4MTQsMHgwYSwweDA1LDB4OTUgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4YTEsMHgwOCwweGEwLDB4NDIsMHgyOCwweDExLDB4MGEsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTgsMHhiOSwweDIwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDksMHhiOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4NDAsMHg4YiwweDkxLDB4MDIsMHg4NCwweDAwLDB4OTksMHg2NCwweDI0LDB4NDAsMHg1OCwweDkwLDB4MDIsMHhhNCwweDIwLDB4YmIgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDksMHhiMCwweDAyLDB4MDUsMHgwMSwweGE5LDB4MDAsMHgyMiwweDQwLDB4ODgsMHg5MiwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4ZjksMHg0MCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4NGYsMHg5OCwweDBiLDB4MjQsMHg4MCwweGQ5LDB4MDAsMHgyMiwweDcyLDB4MGIsMHg5OCwweDAzLDB4ZTQsMHg4NCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4YjYsMHg3MCwweDA4LDB4OTksMHgwMiwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmEsMHg0MCwweDBkLDB4OTQsMHhjMiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4YTksMHgwMCwweDIyLDB4NDAsMHgwYywweDk0LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MjgsMHgwMSwweGE2LDB4ODAsMHhmOSwweDA4LDB4M2UsMHhjMCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4NTAsMHgwZiwweDk4LDB4MDMsMHhhNSwweDAwLDB4ZTksMHgwMCwweDNhLDB4NjQsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgzYywweDQwLDB4NmUsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGQ5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDgyLDB4Y2EgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4NGYsMHg4NCwweDBiLDB4MjAsMHgwMCwweGY4LDB4MDAsMHgzNiwweDAxLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4NDAgfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4MzIsMHgxMCwweDJkLDB4ODAsMHgwMywweGUwLDB4NTQsMHhjOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4MDQsMHg4MywweGUwLDB4NTAgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4ZDgsMHgwNCwweDEyLDB4MDAsMHgwYywweDAwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDQyLDB4MmUsMHhhMiwweDhiLDB4ZWEsMHgwMiwweDI4LDB4MDgsMHhiZSwweDg5LDB4MzcgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4ODQsMHg0OCwweGUwLDB4MTIsMHgyOCwweDAyLDB4OGUsMHhjMCwweDIzLDB4YjAsMHg0ZCwweDYwLDB4NjIsMHhmOCwweDAwLDB4ODYgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgyMywweDgwLDB4MGIsMHhlMCwweDAyLDB4ZjgsMHgwMCwweDBlLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhlNCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YTMsMHgwMCwweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4MWIsMHhiMCwweDlhLDB4NGMsMHgxMCwweDliLDB4ODAsMHgyNCwweGMwLDB4MGEsMHgzMCwweDAwLDB4MGMsMHgwNCwweDliLDB4MjAgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4MjAsMHhkNiwweDA4LDB4MzAsMHgwMiwweDhlLDB4MDgsMHhhMywweDA0LDB4MjQsMHhjMCwweDE5LDB4MzQsMHgwMiwweGM3LDB4MDcgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4YWEsMHhhNCwweGEwLDB4YzAsMHg0OCwweDM0LDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDVjLDB4NDAsMHhiMywweDE0LDB4MjUgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4ZTAsMHgwOCwweDdhLDB4MDIsMHg5ZSwweGMwLDB4OTIsMHg0MCwweGEwLDB4MDAsMHg0OSwweDYwLDB4MDIsMHhjZSwweDAyLDB4OGUgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4MDEsMHgyMSwweGMwLDB4OGIsMHg1NCwweDAyLDB4YzQsMHgwOCwweDg2LDB4NDAsMHgyMSwweGM4LDB4ODgsMHgxMCwweDAyLDB4MjggfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweGMwLDB4ZTQsMHg4MCwweDNkLDB4ZTIgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4NWUsMHg5MCwweGI2LDB4YTIsMHgzNSwweGUwLDB4MGUsMHg3YywweDIzLDB4MWMsMHgwMCwweGQ2LDB4ODAgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MzEsMHhlMCwweDg0LDB4NzgsMHgwMywweGRlLDB4MDAsMHhjNywweDgwLDB4MzUsMHhlMCwweDBmLDB4NjgsMHgwMywweGRlLDB4MDAgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4ZTMsMHg4MCwweDMzLDB4ZTgsMHgyYywweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4OTAsMHhmYSwweDAwLDB4N2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2MgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4NDEsMHgwZiwweDMwLDB4MGIsMHgyZCwweDA0LDB4ZWIsMHgwMSwweDNlLDB4YzAsMHgwZSwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4NjAsMHgzZSwweGU0LDB4MGYsMHg5MCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDIwLDB4ZmYsMHg5MCwweDNlLDB4MjAgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MGMsMHhhOSwweDA3LDB4MmUsMHg0NCwweGM5LDB4OTEsMHgzMCwweGEwLDB4MGMsMHhiOCwweDYzLDB4MmYsMHg0NCwweGNiLDB4YTEgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4MzYsMHgyMCwweDhjLDB4ZjgsMHgwMywweDM2LDB4MDAsMHhjZiwweDgyLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgyMywweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZmRhMCwgMCwgezB4Y2UsMHhjMCwweDNiLDB4ZTAsMHgwYywweDY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmRiMCwgMCwgezB4YTgsMHgxMSwweDljLDB4ODQsMHhiMywweDU0LDB4MmMsMHhmNCwweDI4LDB4YmEsMHg4YSwweDNlLDB4NDAsMHg4MSwweGEwLDB4MjkgfSwKLSAgMTYsIDB4ZmRjMCwgMCwgezB4YjAsMHgwZiwweDc4LDB4NDIsMHhhZSwweDAwLDB4ODMsMHg5MCwweDMzLDB4ZTgsMHgwZCwweGUxLDB4MDAsMHg4NSwweDQwLDB4ODIgfSwKLSAgMTYsIDB4ZmRkMCwgMCwgezB4MjQsMHgyMywweGM2LDB4MGQsMHg3MSwweDAzLDB4NWUsMHhlMCwweDg3LDB4MDAsMHgyYiwweGMxLDB4MGQsMHg0NCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZmRlMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDA4LDB4MzUsMHgxNCwweDZkLDB4YzAgfSwKLSAgMTYsIDB4ZmRmMCwgMCwgezB4ODgsMHg3MiwweDMyLDB4NWMsMHg4MCwweDg0LDB4MzAsMHgyYiwweDg4LDB4MGEsMHg3MCwweDQyLDB4NWMsMHhhOCwweDkxLDB4MDggfSwKLSAgMTYsIDB4ZmUwMCwgMCwgezB4MjUsMHhjOCwweDA5LDB4NzAsMHgwMiwweDRjLDB4MjIsMHg4MywweDBhLDB4NjEsMHhjMCwweDA5LDB4MjAsMHgwMiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ZmUxMCwgMCwgezB4ODcsMHgwMCwweDIxLDB4YzAsMHgwOCwweDYwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MTAsMHhiMywweDg1LDB4NmMsMHhkYywweDA4LDB4MzQsMHgwMiwweDRkLDB4MjEsMHg4MSwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZmUzMCwgMCwgezB4MDIsMHg0YSwweDMxLDB4MTIsMHhlZiwweDBjLDB4OTEsMHhjMiwweDIwLDB4ZjAsMHgwOCwweDMwLDB4NDIsMHg4ZSwweDAwLDB4ODIgfSwKLSAgMTYsIDB4ZmU0MCwgMCwgezB4NDAsMHgyMCwweGM4LDB4MTksMHgyOCwweDAyLDB4MjIsMHg4MSwweDgzLDB4YzAsMHgyOCwweGQ0LDB4MDksMHgwMCwweDBhLDB4MDggfSwKLSAgMTYsIDB4ZmU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmIsMHhhMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZmU2MCwgMCwgezB4OGMsMHgwNCwweDEyLDB4N2QsMHgxMCwweGNmLDB4MDIsMHgzYSwweDUwLDB4MDgsMHhjMCwweDQyLDB4N2QsMHg1MiwweDU4LDB4MDEgfSwKLSAgMTYsIDB4ZmU3MCwgMCwgezB4MzYsMHgyMiwweDY5LDB4ZDAsMHgxMywweDJhLDB4MDAsMHg4OCwweDgyLDB4MzIsMHhmMCwweDA5LDB4YjgsMHg4MiwweDJmLDB4MDAgfSwKLSAgMTYsIDB4ZmU4MCwgMCwgezB4YzksMHhjOCwweDIzLDB4YzAsMHgwYywweDhhLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmU5MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhiOSwweDQwLDB4M2MsMHg1MCwweDRmLDB4ODAsMHgyMywweGFjLDB4MTIsMHhmYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ZmVhMCwgMCwgezB4YzAsMHg2ZCwweDgwLDB4MTMsMHhhYywweDAwLDB4ZTgsMHgwNCwweGJhLDB4MTAsMHgwZiwweDgwLDB4MDMsMHhlOCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZmViMCwgMCwgezB4MDgsMHgzYywweDgwLDB4MGYsMHg5MCwweDgzLDB4ZWMsMHgwNCwweGY5LDB4NjAsMHgyYywweGMyLDB4MGYsMHg4MCwweDgzLDB4ZTAgfSwKLSAgMTYsIDB4ZmVjMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4ZWMsMHgyYywweDNmLDB4ZjAgfSwKLSAgMTYsIDB4ZmVkMCwgMCwgezB4OGMsMHhmYSwweDhiLDB4YmMsMHgwMCwweGZlLDB4MDAsMHgzZiwweDAwLDB4MGYsMHg3OSwweDAzLDB4M2MsMHgwMCwweGNlLDB4MDggfSwKLSAgMTYsIDB4ZmVlMCwgMCwgezB4MGIsMHhjMiwweDBjLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4MzMsMHg0MCwweDhjLDB4N2EsMHgwMywweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZmVmMCwgMCwgezB4YzUsMHgwMCwweDMzLDB4YzAsMHg0YywweGM4LDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmYwMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4OCwweGMwLDB4MmUsMHhlMCwweDA4LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhiYiwweDgwLDB4NjYgfSwKLSAgMTYsIDB4ZmYxMCwgMCwgezB4MzAsMHgxNiwweGIwLDB4MDIsMHgyYywweDAwLDB4ZGEsMHg0YywweDIyLDB4ZjAsMHgwOCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWIgfSwKLSAgMTYsIDB4ZmYyMCwgMCwgezB4YzAsMHgyMiwweDY4LDB4MDAsMHg5NCwweDAyLDB4MmMsMHgwMiwweGE5LDB4ODAsMHgyMiwweGMwLDB4MDgsMHgwYywweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZmYzMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YWIsMHgwNCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ZmY0MCwgMCwgezB4MDgsMHhhNCwweDA2LDB4MmMsMHgwNCwweGFiLDB4MTAsMHgyZSwweDYwLDB4NDMsMHg4MCwweDgyLDB4NmMsMHgwMSwweDgxLDB4ODAgfSwKLSAgMTYsIDB4ZmY1MCwgMCwgezB4MjgsMHgwYSwweDA4LDB4OTEsMHgwMCwweGUwLDB4MDAsMHhiOCwweDgwLDB4MDIsMHhlMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4ODAgfSwKLSAgMTYsIDB4ZmY2MCwgMCwgezB4ODgsMHhjMCwweDIyLDB4YzAsMHgwOCwweDgyLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MCwweDQ0LDB4MmMsMHhjOCwweDI4LDB4YTAsMHgyMiwweDBjLDB4MDQsMHhiMywweDI2LDB4MmMgfSwKLSAgMTYsIDB4ZmY4MCwgMCwgezB4YzgsMHg4OCwweDAxLDB4MDYsMHgwYywweGUwLDB4OTEsMHgyMCwweDIwLDB4MGMsMHgzOCwweDA0LDB4MjIsMHhjMCwweDQ4LDB4YTMgfSwKLSAgMTYsIDB4ZmY5MCwgMCwgezB4NDIsMHhhMCwweDgxLDB4MDgsMHgwMCwweDAyLDB4MGMsMHg4MCwweDgxLDB4MDAsMHgyMCwweGMwLDB4MjgsMHgwMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4ZmZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4YTksMHg0MCwweDNlLDB4NDQgfSwKLSAgMTYsIDB4ZmZiMCwgMCwgezB4MDgsMHhiMSwweDAzLDB4MmMsMHg0MCwweGVhLDB4NDksMHgyZSwweDBkLDB4MGIsMHhiNiwweDEzLDB4N2QsMHg4MCwweGM5LDB4NDAgfSwKLSAgMTYsIDB4ZmZjMCwgMCwgezB4YmEsMHhkMCwweDBjLDB4YjQsMHgwMywweGFjLDB4MDAsMHhmOCwweDAwLDB4MzIsMHg0MCwweDBjLDB4ODAsMHgwYiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZmZkMCwgMCwgezB4YzUsMHgwMCwweGIyLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmZlMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmYywweDAwLDB4M2QsMHhjNSwweDBiLDB4ZjEsMHgwMCwweGZjLDB4ZDAsMHg3NywweDI5LDB4MzcgfSwKLSAgMTYsIDB4ZmZmMCwgMCwgezB4MGMsMHg4ZSwweDc0LDB4MDMsMHhmYywweDA4LDB4ZmQsMHg2OSwweDNmLDB4ZDgsMHgwZiwweGYwLDB4MDMsMHhiYywweDAwLDB4ZWYgfSwKLSAgMTYsIDB4ODAxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MDcsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhmYywweGMwLDB4ZGMsMHg4MCwweDNmLDB4YzggfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MGYsMHg0OCwweDAzLDB4N2MsMHgyMCwweGZmLDB4NjgsMHgzNywweGUwLDB4MGUsMHhmMSwweDAzLDB4OWMsMHgwMCwweGJmLDB4MjAgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4MzcsMHhlMCwweDBjLDB4YzgsMHgxMywweDNjLDB4NDAsMHhlZCwweDYwLDB4YmIsMHhlNCwweDJjLDB4NDMsMHg0YiwweDcwLDB4YTAgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4Y2MsMHgyYywweDNmLDB4MDksMHgwZiwweGQ4LDB4NDMsMHg3MCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4ODAsMHgwMCwweGVkLDB4YzAsMHhiOCwweDgwLDB4MmYsMHhmNCwweDBmLDB4OTgsMHgwMiwweDNmLDB4MDAsMHhiZiwweDQyLDB4MjIgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4Y2EsMHgwOCwweGY0LDB4MDIsMHgzZSwweDAwLDB4YmYsMHhkMCwweDIyLDB4NjAsMHgyOCwweDg4LDB4MGEsMHgzZCwweDgwLDB4OGQgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4NDAsMHgyMiwweGM4LDB4MDgsMHg4MSwweDAyLDB4MjEsMHg4MCwweGRiLDB4YzAsMHgyZSwweGE1LDB4MGIsMHg5OCwweDQyLDB4MjAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDEwLDB4YjAsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MjAsMHgyNiwweGMwLDB4OGEsMHgzNiwweDEyLDB4OGMsMHg0MSwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4MDAsMHgwMiwweDBkLDB4ODEsMHhhMSwweDMwLDB4MjIsMHhjOCwweDg5LDB4YTIsMHg0MiwweDA4LDB4MjAgfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4YjAsMHgwMCwweDJjLDB4NDAsMHgwYiwweDkwLDB4MjYsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4NjIsMHgyYywweDEwLDB4YmIsMHgwNCwweDJhLDB4ZjAsMHg0YSwweDg4LDB4MDIsMHgwYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDksMHhiOCwweDgwLDB4MjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDIxLDB4MGIsMHg5MCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTUsMHhlYywweDAwLDB4ZDgsMHhjMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4MGIsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDAsMHgzNiwweDgwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4M2MsMHhlMCwweDBjLDB4MGMsMHgwMywweDJjLDB4MDAsMHhlOSwweDAwLDB4MTAsMHhjMCwweDBjLDB4OGMsMHgwMywweDA2LDB4MDAgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4ZjgsMHhjZCwweDNlLDB4MjIsMHgwZiwweDE4LDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmNywweDAyLDB4M2YgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4ZTQsMHgwZiwweDcwLDB4MDMsMHg3YywweDA0LDB4YjcsMHgwMCwweDM3LDB4NDAsMHgwZCwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MDAsMHgzNywweGQwLDB4MGUsMHhjMCwweDQzLDB4ZjQsMHgwMCwweGRmLDB4MDAsMHgzZiwweDgwLDB4OGYsMHhkYSwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjgsMHgxMCwweDNhLDB4YzAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4NmQsMHhhNiwweDEzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzYSwweGQwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHgxMCwweGRiLDB4MTAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MzYsMHhkOCwweDBkLDB4ODQsMHgwMywweGVjLDB4MDYsMHhjOSwweDA4LDB4M2EsMHhjMCwweDBlLDB4ODYsMHgwMywweGE4LDB4NjAgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4ZjgsMHgyMCwweDNhLDB4NDAsMHgwYywweDkwLDB4MDMsMHg1NCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4OTgsMHgwNSwweDNjLDB4MDAsMHhiYiwweDQwLDB4MjMsMHhkMCwweDA4LDB4MzAsMHgwMiwweDNlLDB4MTAsMHhhZiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MDIsMHgzYywweDAwLDB4OGYsMHg1MCwweDJlLDB4YzgsMHgwNiwweDhhLDB4MDIsMHhmYywweDAwLDB4OGQgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4MjQsMHg4MiwweGQ2LDB4MDgsMHgzMiwweDAyLDB4MmQsMHgwOCwweDNhLDB4NDAsMHgyMiwweDgwLDB4MGQsMHg5MCwweDAzLDB4NjIgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg0YywweDAwLDB4YjAsMHgyMCwweDI4LDB4YzIgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4MDgsMHgwNCwweDAyLDB4OGMsMHgwMCwweDEzLDB4MDIsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgzMCwweDkzLDB4ODAgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MjQsMHhkMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAsMHg5MSwweDQwLDB4MDgsMHhjMCwweDJhLDB4MTQsMHgwMiwweDgxLDB4MDAgfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4OTAsMHgwMCwweDY4LDB4MDAsMHgwOCwweDE4LDB4MDIsMHgzYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4NzAsMHgwMSwweDFlLDB4MDAsMHhiNCwweGEwLDB4MjEsMHhlMCwweDA4LDB4YzgsMHgxMiwweDllLDB4MDAsMHhiMywweDgyLDB4MjEgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4ZTAsMHgwYiwweDdhLDB4MGEsMHgxZSwweDAwLDB4OTcsMHg4MCwweDJkLDB4ZTEsMHgwYSwweDQ4LDB4MDIsMHhjZSwweDQwLDB4OTUgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4OTAsMHgyOSwweGU0LDB4MDgsMHg1OCwweDAyLDB4OWEsMHgwMCwweGI3LDB4ODgsMHgyMSwweGUwLDB4MDksMHg1OCwweDAyLDB4NWMgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDRhLDB4MDAsMHgwYywweDAwLDB4ZjAsMHg4MCwweDM4LDB4YzQgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4MGMsMHgyNSwweDAzLDB4OGMsMHgyMCwweDkzLDB4MDAsMHgzOCwweGM0LDB4MGYsMHhiMCwweDAzLDB4MGMsMHg4MCwweGQzLDB4MDAgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4MzQsMHhjMCwweDBkLDB4MDQsMHgxMywweGNjLDB4MDgsMHg5OSwweDAwLDB4MmEsMHhjMCwweDBlLDB4MjEsMHgwMywweDg4LDB4MDQgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4ZjMsMHgwMCwweDM4LDB4YzAsMHgwYywweDExLDB4ODMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4NDIsMHgxNSwweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMywweDBlLDB4YzAsMHgwMywweDFjLDB4MDAsMHhhZiwweDRhLDB4N2YgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4YzQsMHgwZiwweGIyLDB4MDMsMHhmZCwweDAxLDB4ZWYsMHgxMCwweDNmLDB4ODQsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4MDAsMHgzNywweGMyLDB4MGUsMHhmMSwweDQ3LDB4N2MsMHgwMCwweGY3LDB4MDAsMHgzZCwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhlYywweDA4LDB4ZjgsMHgwMCwweDNlLDB4Y2EgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWYsMHgyMSwweGZiLDB4ODAsMHg3YSwweDQwLDB4OGYsMHhiMiwweGExLDB4MmYsMHgwMCwweGNiLDB4NjAgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4YTAsMHhlOSwweDMwLDB4MzIsMHhjMCwweDJkLDB4YjAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4YzgsMHg5MSwweDlkLDB4MDAsMHhiNCwweDAxLDB4MmQsMHhjOCwweDBiLDB4NzAsMHgwMiwweGNjLDB4ODAsMHg4ZiwweDIwLDB4MjEgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4YzAsMHg4YiwweDc2LDB4MDMsMHg1ZCwweDAwLDB4ODcsMHgwYSwweDJkLDB4YzAsMHgwYiwweDQwLDB4MjIsMHhmZCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4MTAsMHgyMywweGM4LDB4MDgsMHg1MCwweDEyLDB4ZDQsMHgwMCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg5ZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4MGIsMHg3YywweDAyLDB4ZGUsMHg0MCwweGE3LDB4ODIsMHgyZCwweGUwLDB4MGIsMHgzYSwweDAyLDB4OGUsMHgwMCwweDg3LDB4OTAgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4MmQsMHhlMCwweDBiLDB4NTgsMHgwMiwweDVlLDB4MDAsMHhhNSwweGEyLDB4NjUsMHhlMCwweDA4LDB4NjgsMHg4MiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4OTUsMHg4MCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MDgsMHg4NCwweGNjLDB4MDAsMHhiMCwweDA5LDB4MmMsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4YzAsMHgwYiwweDMwLDB4NDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YTAsMHgwYiwweDA0LDB4MDIsMHhjYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4MDAsMHhhMCwweGMwLDB4MDgsMHhiMCwweDA2LDB4Y2YsMHg4MCwweGIzLDB4MTAsMHgyYywweGM0LDB4MGIsMHgzMSwweDAyLDB4YzMgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4MGYsMHhlOCwweDEzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzZiwweGIwLDB4MGYsMHhhMCwweDAzLDB4YTgsMHgwMiwweGMyLDB4MDAgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4MmYsMHg4OCwweDBmLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhlYSwweDAwLDB4MzYsMHgwMCwweDBjLDB4ZTAsMHgwMywweGY5LDB4MjAgfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4ZGUsMHg4MCwweDNmLDB4YTAsMHg0ZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDEwLDB4M2MsMHgxMCwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MDYsMHgwZiwweDAwLDB4MTMsMHhlMCwweDAxLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDIzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNlLDB4NDQgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDEyLDB4MjQsMHgwMCwweGY5LDB4MTAgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBjLDB4OWMsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4ZjksMHgxMCwweDNlLDB4NzAsMHgwZiwweDkwLDB4MDIsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4ODAsMHgxNCwweDY0LDB4MDAsMHhiOSwweGMwLDB4MmUsMHg0OCwweDA4LDB4OTEsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NywweDAwLDB4YjksMHg4MCwweDJhLDB4NjAsMHgwYiwweDk5LDB4MDIsMHhlNCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MmMsMHg5MCwweDEyLDB4MjUsMHgyMCwweGI5LDB4NDgsMHgyZSwweDUyLDB4MGIsMHg5NCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4NjgsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHg2MCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4MjIsMHg0OCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDIsMHg4OSwweDAwLDB4YTAsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE2LDB4MTAgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4YjksMHgwMCwweDBlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4ODQsMHhiMSwweDIwLDB4MmMgfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4NDAsMHgwOSwweDEyLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4ODkgfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4MjAsMHgyMCwweDQwLDB4NGIsMHgxMiwweDBhLDB4ODQsMHg4NCwweGIxLDB4MjAsMHgyYywweDQ4LDB4OGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YmEsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTgsMHgwOCwweGY4LDB4NTAsMHgzZSwweDE0LDB4MGMsMHg4NSwweDAzLDB4MjAsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4YTAsMHgwMywweGUxLDB4NDAsMHhjOCwweDUwLDB4MzIsMHgxNCwweDBjLDB4YTUsMHgwMywweGExLDB4NDAgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4ODgsMHgwZCwweGU0LDB4NDAsMHhmZCwweDAwLDB4M2UsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhiOSwweDExLDB4M2YgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4NDAsMHgwZiwweDkxLDB4MDMsMHg2NCwweDQ0LDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4MTAsMHgzZiwweDEwLDB4OGMsMHhkMSwweDAzLDB4NzQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHg2NiwweDIwLDB4ZWQsMHgwMCwweDMzLDB4NjkgfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4NGQsMHg1MCwweDQzLDB4NTYsMHgwMCwweGY5LDB4YTAsMHgzNCwweDQwLDB4MGYsMHg5YSwweDBiLDB4MzQsMHgwMCwweGRkLDB4ODAgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4M2IsMHg0MCwweDBiLDB4NTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHhlMCwweDBlLDB4ZDAsMHgwMywweGY0LDB4MDAgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwYywweGQwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4NzgsMHgxMCwweGUyLDB4ODAsMHg4OCwweDA0LDB4MjIsMHgxMCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDksMHhiOCwweGYwLDB4MjIgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4MDAsMHgwYiwweDhlLDB4MTIsMHhhMCwweDAwLDB4YjgsMHg1MiwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMCwweDA1LDB4YjggfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4YWEsMHgyMywweDNlLDB4MGQsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgzYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDIwLDB4YTksMHgwMCwweGE0LDB4NDQgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MDksMHg5MCwweDAyLDB4YzUsMHgwMCwweGExLDB4MDgsMHgyYywweDQwLDB4MGIsMHgxMSwweDgyLDB4MDQsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4MjgsMHg0MCwweDBhLDB4MTAsMHg0MiwweGM0LDB4MDAsMHhiNSwweDAwLDB4YTEsMHg0MCwweDA4LDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4YjEsMHgwMSwweDJjLDB4NDAsMHgwOCwweDEwLDB4MjAsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMCwweGFjLDB4MDAsMHgzOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4NDAsMHgwYiwweDEwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDgsMHgwYiwweDkwLDB4MTIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4MDAsMHgyMSwweDYwLDB4MDksMHg5MiwweDIyLDB4ZTQsMHgyOCwweGI5LDB4MDAsMHgwYSwweDUwLDB4MDgsMHg5MCwweDA2LDB4YzYgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQ4LDB4MGYsMHg5MCwweDAzLDB4MjQsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4M2EsMHg3OCwweDBlLDB4OTgsMHgwMywweGU0LDB4MDAsMHhiOSwweDAwLDB4YjIsMHg0MCwweDBlLDB4OTIsMHgyMywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4YjksMHg1MCwweDNlLDB4NzAsMHgyYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4NjgsMHgwMSwweDg0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDRmLDB4OWMsMHgyMywweDY0LDB4MDAsMHhmOSwweDA0LDB4MzYgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjAsMHgwZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDgzLDB4ZTQsMHg0NCwweGY5LDB4MDAsMHg3OCwweDY0LDB4MGYsMHg5MCwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4MGYsMHg4MiwweDAzLDB4YTAsMHg0MCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4MjAsMHhjMCwweGM4LDB4ODAgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4M2UsMHgxMiwweDBmLDB4ODAsMHgwMywweDYwLDB4MDAsMHg3YywweDAwLDB4MzMsMHgwMCwweDBkLDB4ODAsMHgxMywweGUwLDB4MTAgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4YzgsMHg2NCwweDNlLDB4MDgsMHgwYywweDgyLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiNiwweGUwLDB4MGYsMHhhMCwweDBiLDB4NjAsMHg4MiwweDM4LDB4MDAsMHhhYSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4NDIsMHhiYSwweDAwLDB4YWUsMHgyMCwweDJmLDB4ODgsMHgwYiwweGU1LDB4MDIsMHgyOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4ZDgsMHgzNywweDgwLDB4MDgsMHhlYywweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyZiwweDkwLDB4MGQsMHhlMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjAsMHgyNCwweDJjLDB4NjAgfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4OGUsMHg4MCwweGFiLDB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4MGQsMHgwOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4NmMsMHhkMCwweDBiLDB4MzQsMHgwMiwweGNjLDB4MDAsMHhiOCwweGMwLDB4MjAsMHgwMCwweDQ4LDB4MzQsMHgxMiwweGNjLDB4NDAgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4ZTAsMHgwYSwweDM1LDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4MmQsMHgwMiwweDhiLDB4NjAsMHgwMiwweDllLDB4MDAsMHg4NywweDIwLDB4MmYgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4ZTAsMHgwOCwweDcyLDB4MDIsMHg5ZSwweDAwLDB4YTQsMHgwMCwweDJkLDB4YzAsMHgwYiwweGY4LDB4MDIsMHg5YywweGMwLDB4YjMgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4MDIsMHhhNSwweGMwLDB4MDgsMHg1MCwweDg2LDB4ZmUsMHgwMCwweDg3LDB4MDAsMHgyZiwweGQwLDB4MDksMHg3MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjQsMHg4MCwweDNkLDB4MjAgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4MGYsMHg1OCwweDAzLDB4OWUsMHgwMCwweDY3LDB4ODAsMHgzZCwweGY4LDB4MGQsMHgzOCwweDAyLDB4MWEsMHgxMCwweDQ0LDB4ODAgfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4M2QsMHhlMCwweDBmLDB4NTgsMHgwMywweGRlLDB4MjAsMHhiNCwweDgwLDB4MzMsMHhhMCwweDJjLDB4NjgsMHgwMywweGQ2LDB4MDAgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4YzcsMHg4MSwweDNkLDB4ZTAsMHgwYywweDc4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2UsMHgwMCwweDhmLDB4ODAsMHgwMywweDZjLDB4MDAsMHgzYiwweDEyLDB4M2UgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4Y2EsMHgwZiwweGI1LDB4MDMsMHhjOCwweDAwLDB4ZjgsMHgwNCwweDdlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHg2YywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4YzgsMHgwMCwweGY5LDB4MDEsMHgzYywweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4YWMsMHg5MCwweDMxLDB4NDggfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4MDgsMHhmOCwweDAzLDB4ZmEsMHgwMCwweGNmLDB4ODAsMHgzZiwweGUwLDB4MGMsMHhmYywweDEzLDB4M2UsMHgwNCwweGZjLDB4ODAgfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4NzgsMHgwMywweGJlLDB4MDAsMHhkZiwweDgwLDB4M2IsMHgyMCwweDI0LDB4ZjgsMHgwMywweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4ZTAsMHgwMywweGY5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4YTgsMHgxMSwweGJjLDB4MDAsMHg4MCwweDAwLDB4MDEsMHgwMCwweDA4LDB4NzIsMHgwMiwweGQwLDB4MDAsMHg4NywweDAwLDB4MmQgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4YzgsMHgwYSwweGYwLDB4MDIsMHg5OCwweDQwLDB4ZjUsMHgwMCwweDYxLDB4NDEsMHgwMCwweDc0LDB4MDIsMHgxYywweDAwLDB4YjQgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4MDAsMHgyMSwweGM4LDB4MDgsMHg2MCwweDAyLDB4M2UsMHgyMCwweDg2LDB4MDgsMHgyMSwweGQ4LDB4MGYsMHg1MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDAsMHg5YywweDAwLDB4YTQsMHgwMCwweDIxLDB4MDAgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4MDgsMHg1MCwweDAyLDB4ZDgsMHgwMCwweDk3LDB4MDAsMHgyZCwweGMwLDB4ODgsMHg3MSwweDAyLDB4MTQsMHgwMCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MjUsMHg5MCwweDA4LDB4YzAsMHg4MiwweDljLDB4NDAsMHg5MywweDAwLDB4MjksMHhhMSwweDg4LDB4NjAsMHgwMiwweDE0LDB4MTIgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4ODcsMHg0MCwweDI5LDB4NDAsMHgwYiwweDYwLDB4MDIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg4MCwweGQwLDB4YTAsMHgwMCwweDA4LDB4MWMsMHgwMiwweGMwLDB4MDAsMHg5MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4ZDAsMHgwYSwweGIwLDB4MjYsMHg4MCwweDAwLDB4YjMsMHgwMCwweDI0LDB4ZTQsMHgwOCwweDA4LDB4MDIsMHg4YywweDAwLDB4YjAgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4MDIsMHgwMiwweDQxLDB4MDgsMHgwOCwweDAyLDB4MDMsMHgwMSwweDgxLDB4MDAsMHgyOCwweDQyLDB4MWEsMHgwMCwweDQyLDB4ZDggfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhiYywweDAwLDB4ZTgsMHhjMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4MGMsMHhiNSwweDAzLDB4ZTQsMHgwMCwweDlmLDB4MDAsMHgzZCwweGUwLDB4MGMsMHhmMCwweDBiLDB4MjQsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4MzYsMHhlMCwweDBjLDB4MjUsMHgwMywweGJjLDB4MDUsMHhkOCwweDAyLDB4MmEsMHgwMCwweDA4LDB4YmEsMHgwMiwweDJhLDB4MDAgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4YzEsMHgwMiwweDNhLDB4NTAsMHg4YiwweDkwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA4LDB4M2UsMHg4MCwweDBmLDB4YTEsMHgwMywweGVjLDB4MDQsMHhlYiwweDAyLDB4MmUgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4YzYsMHgwZiwweGIwLDB4MTcsMHg0NCwweDAwLDB4ZTgsMHgwMCwweDNhLDB4NDAsMHgwZiwweDgwLDB4MDIsMHg2YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4MDAsMHgzZSwweGUwLDB4MGYsMHg5MCwweDkzLDB4ZTEsMHgwMCwweGQ5LDB4MDAsMHgyNiwweDcwLDB4OGYsMHg5MCwweDAxLDB4ZTEgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMywweDM3LDB4MjQgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4MGQsMHhmOCwweDAzLDB4ZTAsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMxLDB4OGQsMHhmMCwweDBiLDB4MzgsMHgwMCwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZmEsMHgwMywweDNjLDB4MGMsMHhmYywweDA0LDB4M2IsMHg4MCwweDBjLDB4YTAsMHgwMywweDk0LDB4MjAgfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4ODksMHgwNSwweDNiLDB4MDAsMHg0ZiwweGQwLDB4MjMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4ODAsMHgwNCwweDZjLDB4MDAsMHhiMCwweDA2LDB4MjAsMHgxMywweDg4LDB4YTgsMHgwMiwweGViLDB4MDAsMHhiYiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYSwweDAwLDB4YTgsMHg4MCwweDJlLDB4ZTAsMHgwYiwweDk0LDB4MWEsMHgyYywweDAwLDB4YmIgfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MjksMHg5OCwweDAyLDB4ZTIsMHgwMCwweGE5LDB4ODQsMHgyMiwweDIwLDB4MGIsMHg5OCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YjgsMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4MDksMHg4MiwweDAyLDB4ZTYsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMCwweDg4LDB4ODAgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MmUsMHhhMCwweDBiLDB4YTAsMHgwMiwweDJjLDB4MDAsMHhiMywweDAwLDB4MmEsMHgwMCwweDA5LDB4OTgsMHgwMiwweGVhLDB4MjAgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4YTksMHg4MCwweDJhLDB4NjAsMHg5YiwweDk4LDB4ODIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiOCwweDAwLDB4MjAsMHgwMCwweDA5LDB4MDgsMHgwMiwweGM0LDB4MDAsMHhiMywweDAwLDB4MjYgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4YzAsMHgwMCwweDMwLDB4MDIsMHgwMCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NDEsMHgwYiwweDAwLDB4MDIsMHgwYywweDAwLDB4YjAgfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGIsMHgwMCwweDAyLDB4YzgsMHg4MCwweGE4LDB4MDAsMHgyMCwweDQxLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDEwLDB4ZjgsMHg1MCwweGIyLDB4MDAgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGZiLDB4MDAsMHgzZCwweGMwLDB4MGQsMHhmMCwweDEzLDB4MjQsMHgwMiwweGM4LDB4MDYgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDNjLDB4MDQsMHhmYiwweDAwLDB4NzgsMHg4MCwweDBjLDB4YTAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4ZTksMHgwMCwweDFhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmNCwweDIwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMiwweGYwLDB4MDEsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MjMsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4OWMsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmMCwweDAwLDB4ZWQsMHgyMywweGI3LDB4NDggfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MGMsMHhlMSwweGMzLDB4N2MsMHhjMCwweGRkLDB4ODAsMHgzNywweGUwLDB4MGYsMHhjYiwweDAzLDB4ZmUsMHgwOCwweGZjLDB4MjggfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4M2YsMHhmMCwweDFjLDB4ZmIsMHgyMywweDdjLDB4MDEsMHhmZiwweDE0LDB4NzcsMHhlMiwweDRmLDB4ZTgsMHgyMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4YzQsMHg4MCwweDMzLDB4NDgsMHgyYywweGY4LDB4MjIsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4ODAsMHgxMCwweGUwLDB4ZTAsMHhjOSwweGMwLDB4MjIsMHg1YiwweDg4LDB4OTYsMHgyMiwweDJkLDB4MDAsMHg4OSwweDIyLDB4MjIgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4Y2EsMHgwYiwweDllLDB4MjIsMHhlMiwweGEwLDB4YjksMHg2MSwweDJjLDB4ZTAsMHg4OCwweDlmLDB4MDIsMHgzZCwweDg1LDB4YmYgfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4NjAsMHgyNiwweDUwLDB4NDgsMHhhMCwweDAyLDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMiwweDUwLDB4MDgsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjMCwweDgwLDB4YjEsMHgxMCwweDIwLDB4NDQgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4MGIsMHhiMiwweDAyLDB4Y2UsMHhkMCwweDgxLDB4MDgsMHgyYywweGMwLDB4MGIsMHgwMSwweDAyLDB4OGMsMHgwOCwweGIzLDB4MDggfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4MmMsMHhjOSwweDA4LDB4MTAsMHg2MiwweDhjLDB4NjAsMHhiMywweDMyLDB4MjQsMHg4MCwweDBhLDB4YTAsMHgwMiwweDZjLDB4MDMgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4OWEsMHgwMSwweDI2LDB4NDQsMHg0OCwweGIwLDB4NDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4YTAsMHg4YiwweDAyLDB4MjIsMHhlMCwweDBiLDB4YjAsMHg2MiwweGFjLDB4OTgsMHg5OSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4YzIsMHgwYiwweDk4LDB4MDYsMHhlNCwweDAwLDB4YmIsMHgwMiwweDJlLDB4YzAsMHgwOCwweDkxLDB4NDIsMHgyYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4MDAsMHg2ZSwweDgwLDB4MGEsMHg4MCwweDAyLDB4NmMsMHgwMCwweDFiLDB4MDAsMHgwNiwweDQwLDB4NDgsMHhiOCwweDBhLDB4NzAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YTEsMHgwMCwweDc2LDB4NzggfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTgsMHgxMCwweGQ5LDB4MDAsMHgzZSwweGQwLDB4NGIsMHg5ZSwweDEzLDB4YWMsMHgwOCwweGI4LDB4YTAgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4N2UsMHhjNiwweDA4LDB4YTgsMHgwMiwweDJjLDB4MDEsMHhiYiwweDAwLDB4MjYsMHgzMCwweDRlLDB4MjAsMHgwMywweDRjLDB4MTggfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4OTksMHg4MCwweGI0LDB4NDAsMHg0YywweDNhLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4ZTAsMHgwMSwweGIyLDB4MDAsMHhmZCwweGM1LDB4M2IsMHhjMCwweDRjLDB4ZDAsMHgwMywweDZhLDB4MDIsMHhlZCwweDA2LDB4MzMgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4YzQsMHgwZiwweGQwLDB4NTMsMHhmOCwweDAwLDB4ZmMsMHg5MCwweDdmLDB4YzEsMHgwZiwweDc4LDB4MDMsMHhiYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4MDAsMHgzNywweDY0LDB4MGMsMHhmMSwweDAzLDB4YTQsMHgwMCwweGVkLDB4YTEsMHgzYiwweDQwLDB4MGIsMHhmMCwweDgzLDB4YjggfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4Y2IsMHgyMCwweDNlLDB4NzEgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4MGYsMHhiMywweDAzLDB4OTgsMHgwMiwweGZiLDB4MDIsMHgzNiwweDQ4LDB4MGYsMHg5MCwweDAzLDB4ZWMsMHgyMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4M2UsMHhjYywweDA0LDB4ODQsMHgwMywweDJjLDB4MDAsMHhkYiwweDA0LDB4M2MsMHgxMCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4OWIsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4ODgsMHgwNSwweDJjLDB4MDIsMHg4YiwweDQ4LDB4MmUsMHhlMCwweDBiLDB4MzQsMHgwMywweDZiLDB4MDAsMHg4YiwweGY1LDB4MjIgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4ZjIsMHgwYiwweDljLDB4MDMsMHhhZiwweDAwLDB4YjgsMHg1MCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg3YywweDAwLDB4OGYgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4MDAsMHgwZSwweDVkLDB4MGIsMHg4MCwweDAyLDB4ZjUsMHg0MCwweDgzLDB4NTAsMHgyMywweDU0LDB4MDgsMHg5YywweDAyLDB4ZTYgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDQsMHg0YywweDAwLDB4ODEsMHg4MSwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4MDMsMHgyYywweDAyLDB4MDQsMHgzMywweDk5LDB4MDAsMHgyMCwweGYwLDB4NGEsMHgyOCwweDgwLDB4Y2MsMHg0MCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MjYsMHgxMCwweDA4LDB4MjAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDA5LDB4MjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4YTAsMHgwMiwweDI4LDB4NDAsMHgwOCwweDA4LDB4MDIsMHg3YSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MjAsMHgwMSwweDBhLDB4MDAsMHg4NSwweDgwLDB4MmQsMHhmOCwweDBiLDB4ZGEsMHgwMiwweGQ2LDB4NDAsMHg4NSwweGEwLDB4MjEgfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4ZTAsMHgwYiwweDQ4LDB4MDYsMHg5MiwweDA0LDB4YjUsMHg4MCwweDJkLDB4MjEsMHgwOCwweDAwLDB4MDIsMHg0ZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4YTQsMHgyZCwweDYwLDB4MGIsMHg2OCwweDAyLDB4ZGUsMHhjMiwweGFkLDB4OTAsMHgyYiwweDYwLDB4MjgsMHg1OCwweDgyLDB4ZGMgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0YywweDQwLDB4YzMsMHgxMCwweDJjLDB4NmMgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4MGYsMHgzMCwweDAzLDB4ODYsMHhhMiwweGY5LDB4YjAsMHhiMCwweGUwLDB4MGYsMHgyOSwweDgzLDB4Y2UsMHg0NCwweGYzLDB4ODAgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4M2MsMHhhYywweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhjMywweDAwLDB4M2MsMHhkNSwweDBmLDB4MjAsMHgwMywweGNlLDB4YzEgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4ZTAsMHgxMCwweGI4LDB4NDAsMHgwYywweDAwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhlYiwweDAwLDB4M2UsMHhjYywweDBmLDB4MzIsMHgwMywweDY0LDB4MDgsMHhmOSwweDAwLDB4M2IgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4OTAsMHgwZiwweGYwLDB4NDMsMHhlNCwweDQwLDB4ZmIsMHgzNCwweDNmLDB4ODEsMHgwNywweGQxLDB4MDMsMHhhZCwweDIwLDB4ZWIgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4MjAsMHg3ZiwweGM0LDB4MGYsMHhlMSwweDAzLDB4ZmMsMHg1MCwweGNkLDB4MTAsMHgzNSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDA0LDB4ZmQsMHgwNCwweDNkLDB4NDAgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4MmQsMHgzMCwweDAyLDB4M2MsMHgwMCwweGM5LDB4MDEsMHgzZSwweGMwLDB4NGYsMHhiOCwweDQzLDB4ZWMsMHgxMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YTAsMHgyMywweGVjLDB4ODAsMHhjYiwweDM2LDB4MzIsMHg4MCwweDRkLDB4YTgsMHgwMywweDJjLDB4MTAgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2YSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4YzgsMHgxMSwweDkwLDB4MDgsMHhiNSwweDAwLDB4MmQsMHhjMCwweDA4LDB4NTAsMHgwMiwweGJjLDB4MDIsMHg4NSwweDA0LDB4MmQgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4YzAsMHg4ZSwweDYwLDB4MDYsMHhkOCwweDA0LDB4YjcsMHgwNCwweDIxLDB4NDAsMHgwYiwweDcwLDB4MDIsMHhmYywweDgwLDB4YWYgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4MDYsMHg0MCwweDg3LDB4MDAsMHgyMSwweDUwLDB4MDgsMHg1MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDIwLDB4YjcsMHg4MCwweDJiLDB4NzAgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4MDgsMHhmOCwweDA2LDB4MWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3MCwweDMyLDB4ZGUsMHgwNCwweDM3LDB4ODQgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4MjUsMHhlMCwweDBiLDB4NjgsMHgwNiwweGRlLDB4ODAsMHg4NywweDgwLDB4MjEsMHhhMSwweDFiLDB4NjgsMHgwMiwweDFlLDB4NDAgfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4OWYsMHg4MCwweDIwLDB4NjAsMHgwOCwweDU4LDB4MDIsMHgyMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MjAsMHhiMywweDAwLDB4MmMsMHg4MCwweDg4LDB4YjQsMHgyMiwweDhkLDB4MDAsMHg4MywweDkwLDB4MmMgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4YzAsMHgwYSwweDM4LDB4MDIsMHhjZSwweDA4LDB4YmIsMHgyMCwweDI0LDB4ZDAsMHgwYiwweGIzLDB4MDIsMHhjYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4MDAsMHg2MCwweGQyLDB4MGIsMHgyMCwweDJhLDB4MDQsMHgwOCwweDkzLDB4NTAsMHgyMCwweDQwLDB4MDgsMHgxNywweDBhLDB4MDIgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDAwLDB4YmEsMHhhMCwweDNmLDB4ODQgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4MWMsMHhlMCwweDBiLDB4MzgsMHg0MCwweDhlLDB4MDYsMHgyZSwweDgwLDB4MGIsMHhlMywweDAzLDB4ZjgsMHg4MCwweGZlLDB4ZTQgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4YjcsMHg5MCwweDBmLDB4ZWMsMHgwMiwweGU4LDB4MDAsMHg4YSwweDAwLDB4YTMsMHhhMCwweDA5LDB4ZTQsMHgwMywweDJhLDB4MDIgfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4ZGUsMHhjMCwweGYzLDB4ODAsMHgwYywweDZjLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4NDgsMHgwMSwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgxMywweGUwLDB4MDAsMHhmOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MzAsMHgwYSwweDg0LDB4MDMsMHhlMCwweDA0LDB4ZjgsMHgwMCwweDNhLDB4MDIsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4MDAsMHgzZSwweDA0LDB4MGQsMHg4MCwweDgzLDB4ZTAsMHg0MCwweGU4LDB4MjAsMHgzZSwweDAwLDB4MmYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4MTAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NjQgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4NGUsMHg5MCwweDgzLDB4MjQsMHg4MCwweGM5LDB4MDAsMHgzMiwweGUwLDB4MGYsMHgxMCwweDAzLDB4MjUsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4MzIsMHg0NCwweDBmLDB4OTIsMHgyMywweDY0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4YzksMHgwMCwweDIyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDIwLDB4MmUsMHg0MCwweDQ4LDB4OTYsMHgyMiwweDI1LDB4MDAsMHhkOSwweGMwLDB4YTIgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4NzAsMHgwYiwweDk4LDB4MDIsMHgyNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NzAsMHg0YiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZDkgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4MDAsMHhhMiwweDQwLDB4MmMsMHg5NCwweDIyLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHhhMiwweDQwLDB4MjgsMHg5NCwweDEzLDB4MjAgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDgxLDB4ODAsMHhhMiwweDQ0LDB4MGIsMHg5MSwweDAyLDB4MjUsMHgwMCwweDE5LDB4NDAgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4NjIsMHg0MCwweDBiLDB4YjQsMHgwMiwweDQ0LDB4MDAsMHg4OSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHg4MiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4ODMsMHgwMiwweDI4LDB4NDAsMHg0OCwweDkwLDB4ODIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MDAsMHgwNCwweDA1LDB4ODAsMHhiMSwweDAwLDB4NmMsMHg1MSwweDA4LDB4MTQsMHgxYSwweDA1LDB4MDAsMHg5MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4NDAsMHg4YiwweDE0LDB4MDIsMHgwNSwweDAwLDB4YjEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDYsMHgwNCwweDgwLDB4OTEgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4MjAsMHgyMCwweDQwLDB4MDksMHgxMCwweDAyLDB4YzQsMHhhOCwweDgxLDB4MDAsMHgyOCwweDRhLDB4MDgsMHg5MCwweDRhLDB4NDIgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4MGUsMHg4MCwweDAzLDB4MjgsMHgwMSwweGM4LDB4NTAsMHgzMiwweDk0LDB4OGIsMHhhMCwweDAzLDB4MjAsMHgwMCwweGIwLDB4NTAgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4ODAsMHgwNywweDYxLDB4NTEsMHhjOCwweDUwLDB4MjIsMHgwMCwweDBjLDB4MDAsMHgwMywweGUwLDB4ODQgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4YzgsMHgwNCwweDNhLDB4MDgsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4OTgsMHg5ZCwweGY0LDB4NDAsMHhiZCwweDQxLDB4M2YsMHg1MCwweDBmLDB4ZjQsMHgwMywweGY1LDB4MTAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4NDAsMHgwZiwweGQ0LDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgxMCwweDJmLDB4NDAsMHg0ZiwweGQ0LDB4NDAsMHhhNCwweDQ4LDB4ZjkgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4MTIsMHgzZiwweDVhLDB4OGUsMHhkMiwweDgzLDB4ZjQsMHhhOCwweGY1LDB4MmMsMHgzNywweDRhLDB4MGYsMHhkMiwweDgzLDB4YTYgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDgwLDB4ZmQsMHgyOCwweDNmLDB4NGMgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4MGYsMHg1MCwweDAzLDB4M2MsMHg0NCwweGNkLDB4NDAsMHgzZiwweGQwLDB4MGQsMHhkMCwweDAyLDB4MTQsMHgwMSwweGZkLDB4YTAgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4MzEsMHg0MCwweDAzLDB4ZDAsMHgwMywweGU3LDB4ODksMHhmOSwweDkwLDB4N2UsMHg1MCwweDBjLDB4OTQsMHgwMywweGU2LDB4YzAgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4YzksMHgxMCwweDMyLDB4NmQsMHgwZiwweDkxLDB4MDIsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4ODAsMHhiOCwweDAxLDB4MmUsMHgwYywweDhiLDB4ODQsMHg4MiwweDIwLDB4NDIsMHg4OCwweGEwLDB4NmUgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4MjAsMHgwOCwweDgwLDB4MDMsMHg2MCwweDAwLDB4OTgsMHhlOCwweDIyLDB4MDAsMHgwOSwweDgwLDB4MDIsMHhlMywweGMwLDB4ZTggfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4ZDAsMHgyZSwweDI4LDB4MDgsMHg4YSwweDIzLDB4ZTIsMHg4NCwweGQ4LDB4YTAsMHgyMiwweDNkLDB4MGIsMHhjOCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNSwweGIwLDB4YjEsMHgwMCwweDJjLDB4NDggfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MGIsMHgxMywweDAyLDB4MDQsMHgwMiwweGIxLDB4MjAsMHgyZSwweDQwLDB4ODgsMHgxMCwweDIyLDB4YzQsMHgwMCwweGIxLDB4MTQgfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4MjQsMHg0MCwweDBiLDB4MTAsMHg1MiwweGM0LDB4MDAsMHhiMSwweDIxLDB4MmQsMHg0OCwweDBhLDB4NTIsMHgwMiwweGQ1LDB4MDAgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4YmQsMHgwMCwweGFkLDB4NDAsMHgwYiwweDUyLDB4MDIsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MTgsMHg1NSwweGE1LDB4MDAsMHhiOSwweDgyLDB4MmUsMHg0OSwweDhiLDB4YjAsMHgxMiwweDI0LDB4MTAsMHg5OSwweDAyLDB4MmUgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4NDAsMHgwOCwweGIyLDB4MDAsMHg2NSwweDAwLDB4OTksMHg4MCwweDI2LDB4NDQsMHgwOSwweDkxLDB4MDIsMHhlNCwweDA5LDB4YTkgfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4MDQsMHgyZSwweDQ2LDB4MGEsMHhkNCwweDAyLDB4YjQsMHgwMCwweGJkLDB4NDAsMHgyZiwweDQwLDB4MGIsMHhkMCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDQwLDB4ZjksMHg4MCwweDJlLDB4NjIgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4MGYsMHg5YywweDQyLDB4MjQsMHgwMCwweDk5LDB4MDEsMHgyZSwweDY4LDB4MmMsMHg5MiwweDAyLDB4NjQsMHgwMCwweGI5LDB4NDAgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4YjYsMHg2MCwweDBmLDB4OWEsMHgwMywweGU0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg3MCwweDNlLDB4OTksMHgwNiwweGU0LDB4MDIgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4NjgsMHgwMSwweGE2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDFmLDB4MTIsMHhhYiwweGU0LDB4MDAsMHhlOSwweDkwLDB4M2UgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4NDksMHgwZSwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNhLDB4NDAsMHgwZCwweDk4LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MDEsMHgzZSwweDYwLDB4MDUsMHg5MCwweDEzLDB4ZTQsMHgwMCwweDU5LDB4MjAsMHgzMiwweDQwLDB4OGYsMHg5MSwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwOCwweDNlLDB4MDEgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4MGYsMHg4NCwweDYzLDB4MDAsMHgyMiwweGU4LDB4MjAsMHgzZSwweDEzLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHhjMCwweGQ4LDB4NGMgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODQsMHg0MywweGUwLDB4MDAsMHhmOCwweDAwLDB4MjIsMHgxMCwweDBmLDB4ODQsMHgwMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweGMwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4ZSwweDAwLDB4MmYsMHg4NiwweDRiLDB4ZTAsMHgwMiwweDM5LDB4MDgsMHg4ZSwweDIwLDB4MmQgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4OTAsMHgwYiwweGVkLDB4OTIsMHhmOCwweDAyLDB4OGUsMHhlMCwweGEzLDB4OTgsMHgwOCwweGUwLDB4MDIsMHhlOCwweDA4LDB4YmEgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4MDAsMHg2MiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDAyLDB4ODAsMHgwMiwweDgwLDB4NDgsMHhlMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgxMCwweDJjLDB4ZjAgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4MGEsMHgxNCwweDJhLDB4MGQsMHgxYSwweGIzLDB4MDEsMHgyNCwweGQwLDB4MGIsMHhiYywweDMyLDB4Y2MsMHgwOCwweDAzLDB4MDAgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4MjAsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAyLDB4MjIsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MTEgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgyOCwweDIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4NSwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgwMiwweDE4LDB4MzIsMHg4NiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MTYsMHhmZSwweDA0LDB4ODYsMHgwMCwweDI3LDB4YTAsMHg4YiwweDcwLDB4NDIsMHhkYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4ODAsMHgyMSwweDAxLDB4MDgsMHhmOCwweDBhLDB4MTgsMHgwMCwweDg2LDB4MDgsMHgyMCwweGEwLDB4MDgsMHhlOCwweDBhLDB4NjggfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDAyLDB4YzYsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4MGYsMHg0OCwweDAzLDB4MDYsMHgwNCwweGY1LDB4ODIsMHgzNSwweGUwLDB4MGYsMHg3OCwweDAzLDB4ZGEsMHgwMCwweGQzLDB4ODAgfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4MzEsMHg2MCwweDA3LDB4NzgsMHgwMywweGRlLDB4MjAsMHhmMywweGIwLDB4ODEsMHhlMCwweDRmLDB4NjgsMHgwNywweDBlLDB4MDIgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwYywweDc4LDB4MTMsMHgyYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4YTAsMHhmOSwweDAwLDB4M2YsMHgwMCwweDBmLDB4YjAsMHg1MywweGY4LDB4MTAsMHhhOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MDEsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNhLDB4YzAsMHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4NzQsMHgzYywweDAwLDB4MGYsMHgyMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHgzMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAyLDB4OGYsMHg4MCwweDM1LDB4ZTAgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4OGQsMHhkOSwweDAzLDB4MmUsMHhjNCwweGY2LDB4ODAsMHgzMiwweGE0LDB4MGMsMHhiOCwweDAzLDB4ZGUsMHgwMCwweGNmLDB4OTAgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4M2MsMHhlNCwweDBjLDB4YjgsMHgwMywweGZlLDB4NjUsMHhmZiwweDgwLDB4MGYsMHhlYywweDhmLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4YWEsMHgxMSwweDljLDB4ODAsMHg4NCwweGIwLDB4MjAsMHgyMCwweDI5LDB4NzMsMHgwYSwweDBlLDB4ODIsMHhhMiwweGEwLDB4YTIgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4YTAsMHg0ZiwweDNiLDB4MDMsMHg4NywweDg0LDB4YjIsMHg4MCwweDJjLDB4YTAsMHgwYSwweDdkLDB4MDIsMHhkZSwweDgwLDB4ZjcgfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4MjAsMHgyNSwweDA2LDB4MDgsMHg3MCwweDAyLDB4YzgsMHg0MCwweDg0LDB4MDAsMHgzNSwweDgwLDB4MGIsMHg2MCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDEwLDB4ODYsMHgzOCwweDI3LDB4YzAgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4NDksMHg1NCwweDA2LDB4NTQsMHg0MCwweDFkLDB4MjAsMHgyMSwweGNhLDB4MDksMHg2MSwweDQwLDB4ZjgsMHg4MCwweGI3LDB4MjAgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4MmYsMHgwMCwweDg5LDB4NzAsMHgxMiwweGRjLDB4ODEsMHhiNywweDA0LDB4MmQsMHhjOSwweDBhLDB4NjAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4OGQsMHgwMCwweDJkLDB4YzAsMHgwYiwweGY4LDB4MDIsMHgwNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4NjAsMHgxNCwweGNkLDB4MjgsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA5LDB4YjAsMHgyMiwweDRjLDB4MDIsMHhhMSwweDAxLDB4MjAgfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MzAsMHgxYiwweDIzLDB4MDIsMHhhZiwweDIwLDB4YjMsMHgwOCwweDJjLDB4ODAsMHgxYiwweDMwLDB4MDAsMHhjYywweDA0LDB4YTMgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4MDEsMHgyNiwweDMwLDB4MDgsMHhhYywweDIyLDB4ZTgsMHgwMiwweDgwLDB4MDgsMHgyZSwweDgwLDB4NGIsMHhiNCwweDAyLDB4NTggfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDEwLDB4OGIsMHg4MCwweDM2LDB4ZjAgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4MmQsMHhiYywweDBiLDB4NmMsMHgwMSwweGRhLDB4MDQsMHgyMiwweDQwLDB4N2QsMHg5NCwweDIyLDB4ZTQsMHgwMCwweGFiLDB4NDQgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MmUsMHhjMCwweDA5LDB4YjgsMHgwMiwweGZjLDB4MDAsMHhiZiwweDAwLDB4M2UsMHhmMCwweGNhLDB4OTIsMHgwMiwweGU0LDB4MDIgfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4Y2IsMHgwMCwweDZlLDB4NDAsMHgwZiwweDg0LDB4MDEsMHgyZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2EsMHhlMCwweDJlLDB4YmMsMHgwMywweDk4LDB4MDgsMHhlYSwweDQwLDB4MzYgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4NDMsMHg4YywweDkwLDB4MDMsMHhhNCwweDQ0LDB4MmEsMHg0MCwweDNlLDB4MTAsMHgwZSwweGI1LDB4ODMsMHhlYywweDE0LDB4ZmIgfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4MDAsMHgyNiwweDAwLDB4MGUsMHg5MiwweDAzLDB4ZTAsMHg0MCwweGZhLDB4MDAsMHgxNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhlYywweDAyLDB4ZmEsMHg4MCwweDNmLDB4ZTIgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4MGYsMHhiMCwweDBiLDB4MjQsMHgwMCwweGVmLDB4OTIsMHhiYiwweGUwLDB4MWMsMHhkMCwweDAzLDB4NzQsMHgwMCwweGNmLDB4MDUgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4M2IsMHg0MCwweDBmLDB4YzgsMHgwMywweDVjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMiwweDRkLDB4YzEsMHgyMywweDM0LDB4NDAgfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4Y2YsMHgwMCwweDE3LDB4NDQsMHgwYywweGQxLDB4ODMsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDg0LDB4MmUsMHg1NCwweDBiLDB4YmMsMHgwYSwweDI5LDB4ODAsMHg4YiwweDgwLDB4MzIgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4MDAsMHgwOCwweDljLDB4MDMsMHhhNywweDAwLDB4YWIsMHg4NCwweDJlLDB4N2MsMHgwYiwweDgwLDB4MDIsMHgyYywweDEwLDB4ZGIgfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4MDEsMHgzNiwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgwMCwweDgyLDB4MDAsMHgyMiwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjQgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwYywweDAwLDB4ODksMHgxMCwweDY2LDB4OTAgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4MGIsMHhiOCwweDAyLDB4NmUsMHgxMiwweGEzLDB4NDEsMHgyMCwweDA0LDB4MGEsMHg5OCwweDIyLDB4ZTIsMHgwMCwweDg5LDB4MTkgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4MmUsMHhjMCwweDRiLDB4MzEsMHgyMiwweDZjLDB4MDgsMHg4MywweDAwLDB4MjIsMHhjMCwweDA5LDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4ODksMHgwMCwweDJhLDB4NDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgxMCwweDBjLDB4MDAsMHg4MCwweDIwLDB4MmMsMHgwZSwweDFiLDB4MzAsMHgwMiwweDA0LDB4NDEsMHg4MCwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4MTIsMHgxOCwweDE2LDB4NDIsMHgwMCwweDUwLDB4YTAsMHg0MCwweDJjLDB4ODgsMHgxYiwweDMwLDB4MDIsMHgwYywweDgxLDB4OTMgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4MDAsMHgyNCwweDAwLDB4MDgsMHgxMCwweDJhLDB4MDAsMHgwYSwweDg4LDB4MDAsMHgyOCwweDAwLDB4MjgsMHgwMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDExLDB4ZTgsMHgwMCwweDI2LDB4OTggfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4MGYsMHhiMCwweDEzLDB4MjEsMHgwYywweGViLDB4NjAsMHgzYSwweGQ4LDB4MjgsMHg4NCwweGEyLDB4ZTEsMHg4MCwweGM4LDB4MjAgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4M2UsMHg1ZSwweDFmLDB4ODIsMHgwMywweDdjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMCwweDRkLDB4ODAsMHgwNywweDI1LDB4MDAgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4YTEsMHgxMSwweGZjLDB4MDAsMHhmOCwweDEzLDB4MWUsMHgwMCwweDBiLDB4ZjAsMHgwMSwweGYwLDB4ZDAsMHhmOSwweDE5LDB4MWYgfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MDgsMHg0ZiwweGMwLDB4MTMsMHhhMSwweDAwLDB4ZjgsMHg2MiwweDNmLDB4YzAsMHgwYiwweGM0LDB4MDcsMHhlZCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDIzLDB4ZjAsMHhhMCwweGZjLDB4MDAsMHgzMywweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4ZmYsMHgwYywweDNmLDB4MjAgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4MGMsMHhjOSwweDAzLDB4MzIsMHgwMCwweGNmLDB4MzgsMHgzZiwweGQwLDB4MGYsMHg0OCwweDAzLDB4ZmMsMHhhMCwweGNlLDB4MjIgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MzMsMHgwMCwweDBmLDB4YzEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjNCwweDRjLDB4YzAsMHgyMywweDhjLDB4ZTQgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4ZmYsMHgxMCwweDM3LDB4MjAsMHgwOCwweGYxLDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4ODAsMHgxMCwweGZlLDB4MDAsMHhiZiwweDgwLDB4MmUsMHg3NCwweDA1LDB4MjIsMHgwMiwweGEyLDB4MTAsMHhkZiwweDYxLDB4MmYgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4ZDAsMHg4YiwweDkwLDB4MDIsMHgzZCwweGE0LDB4YWEsMHg5MCwweDIyLDB4ZjQsMHgwYiwweDA3LDB4MTIsMHgxZCwweDIwLDB4YmIgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4YzAsMHgyZiwweGQ4LDB4ODgsMHg5NywweDgyLDB4ZmQsMHg4MCwweGVmLDB4NzIsMHgyMiwweDA4LDB4MjgsMHhmNiwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDQwLDB4YjMsMHgwMCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4MDgsMHg4MiwweDAyLDB4MjIsMHgwMCwweDgzLDB4MDEsMHgwOCwweGNjLDB4OGIsMHgyMCwweDgyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MjAsMHgwMCwweDRiLDB4MTIsMHgwMiwweDBkLDB4ODAsMHhiMywweDQwLDB4MmMsMHhkOCwweDA4LDB4MjAsMHg0MiwweDhjLDB4ODAgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4YjMsMHgyMCwweDI2LDB4MDIsMHgxOCwweDMzLDB4MjYsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDksMHhiYiwweDAwLDB4MmUsMHg2MCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHg5YiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4YzAsMHgwYiwweGFjLDB4MDIsMHgyYywweDAwLDB4YmEsMHgwNiwweDIyLDB4YzIsMHgwYiwweDk0LDB4MDIsMHhhYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4MDAsMHgyZSwweGMxLDB4MDgsMHhhOCwweDAyLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHgyMiwweDAwLDB4MDgsMHhiMCwweDA2LDB4ZjAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4MjgsMHg4MiwweDEzLDB4MGUsMHgwOCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHg4YywweDAzLDB4ZWMsMHgxMSwweGRiLDB4MjAgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4YjIsMHg5MCwweDRiLDB4YTgsMHgwYiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmMsMHhjMCwweDBjLDB4ODgsMHgxMywweGFjLDB4MDAgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4ZjMsMHgwMCwweDM2LDB4MDYsMHg0OCwweGIwLDB4MTIsMHhjNCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmYiwweDA4LDB4M2QsMHg0MCwweDhmLDB4ZWEsMHgwMSwweGY0LDB4MDAsMHhmZiwweDAxLDB4MmYgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4YzAsMHgwZiwweGQwLDB4MjIsMHhmYywweDA0LDB4YWYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGU5LDB4MDMsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg5MCwweDQzLDB4ZmMsMHgyMCwweGVmLDB4MDIsMHgzZiwweDAwLDB4OGYsMHhmMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MTAsMHhhYywweDA4LDB4ZWIsMHgwMCwweDEyLDB4NDAgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4MjgsMHgyMCwweGFiLDB4MDAsMHgzYSwweGMwLDB4OGYsMHg4NSwweDgzLDB4YWMsMHgxMCwweGYzLDB4NTAgfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4MzIsMHg5MCwweDRjLDB4MzQsMHgxMywweDZjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBjLDB4OTgsMHgwMywweDJjLDB4NDAgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4ZWIsMHg4MCwweDMyLDB4MTIsMHgwZCwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4ODgsMHgwMSwweDNjLDB4MTAsMHgwZiwweDA1LDB4YTIsMHg1MCwweDBjLDB4MTAsMHgwMiwweDIyLDB4MTAsMHg4ZiwweDAwLDB4MjMgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4YzAsMHgwYiwweDg4LDB4MTIsMHgzYywweDAwLDB4OWIsMHg4MiwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzYywweDAwLDB4OGYgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4YTAsMHgyZiwweGMwLDB4MDgsMHhiMCwweDAyLDB4M2MsMHgwOCwweDhmLDB4MDIsMHgyMCwweDAwLDB4MDgsMHhmMCwweDAzLDB4MjYgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZCwweDIwLDB4OTMsMHgwMCwweDIwLDB4YjIgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MDEsMHgwMCwweGEzLDB4MDAsMHg2OCwweGMwLDB4MGIsMHg4NCwweDAyLDB4YWMsMHgwMCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MjAsMHg0MCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhMywweDA0LDB4MmMsMHhjMCwweDA4LDB4MDAsMHgwMiwweDBkLDB4MDAgfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4YTMsMHgwMCwweDIwLDB4MjQsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MjAsMHg5NywweDgwLDB4MjMsMHg2MCwweDA4LDB4NzgsMHgxMiwweDNhLDB4MDAsMHg4MywweDkxLDB4MjkgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4ZTQsMHgwYiwweDU5LDB4MDIsMHgxZSwweDAwLDB4OTcsMHg5MCwweDIwLDB4ZmMsMHgwYSwweDc4LDB4MDIsMHgxZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MTksMHg1OSwweDAyLDB4MWUsMHg4MCwweDgzLDB4ODAsMHg2MSwweGEwLDB4MDgsMHg3OCwweDAyLDB4MTggfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZDMsMHgzMiwweDMwLDB4MDYgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4MGYsMHgzMCwweDAzLDB4MDQsMHg2NCwweGUzLDB4MDEsMHgzOCwweGM0LDB4MWYsMHgzMCwweDA3LDB4OGMsMHgxOCwweGYxLDB4MDAgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4MzAsMHg0YywweDBlLDB4MzAsMHgwMywweDRjLDB4MDAsMHhlMywweDAwLDB4MmMsMHhjMCwweDBjLDB4MjAsMHgwMywweDBlLDB4MDAgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4ZTMsMHgwMCwweDMyLDB4MDgsMHgwYywweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4NDAsMHgxZCwweDljLDB4ODAsMHhlZiwweDEwLDB4M2QsMHg0NCwweDRmLDB4ZjEsMHgwNywweGNjLDB4MDAsMHhmZiwweDA4LDB4MzYgfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4YzYsMHhjZiwweGIwLDB4MDMsMHhmYywweDAwLDB4OTcsMHgwMCwweGJlLDB4Y2MsMHgwZCwweGIxLDB4MDMsMHhmZCwweDA0LDB4ZmYgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4MGMsMHgzZiwweGQyLDB4OWUsMHhlMCwweDRiLDB4ZmQsMHgyMCwweGZmLDB4MDIsMHgzZiwweDgwLDB4MGUsMHhmMCwweDEzLDB4ZDAgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweGMwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGZiLDB4MDEsMHgzMiwweGU5LDB4MGMsMHgyOCwweDAzLDB4MmMsMHgwMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4YjQsMHg4MywweDJjLDB4MDEsMHhlZiwweDAwLDB4YjIsMHhjOCwweDBjLDB4MjAsMHgwMywweDZkLDB4MDAgfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4Y2IsMHgxMCwweDNlLDB4MDAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4YzgsMHg5MSwweDljLDB4YzQsMHg4NywweDYwLDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDEyLDB4MjAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4Y2MsMHgwYSwweDcwLDB4MDIsMHgxYywweGMwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHhjOCwweDcwLDB4MjIsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4MjQsMHgyMSwweGM4LDB4NDgsMHg1MCwweDAyLDB4MGMsMHg4MCwweDg3LDB4MTAsMHgyZCwweDQwLDB4MGIsMHg3MiwweDgyLDB4ZjIgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgxLDB4MDAsMHg4ZSwweDAyLDB4ODcsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweGI3LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDhlLDB4MWUsMHg0MCwweGI3LDB4ODggfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MzgsMHgwMiwweDFlLDB4NDAsMHhiMywweGExLDB4MjAsMHhlOCwweDQ4LDB4ZjgsMHg4MiwweDVlLDB4MDIgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4ODcsMHg4MCwweDJkLDB4MjIsMHgwYiwweDc5LDB4MDIsMHhlMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MDgsMHgwNCwweGNjLDB4MDQsMHg4MywweDAyLDB4MmMsMHhkNCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4YTAgfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4YzAsMHg4YSwweDM4LDB4MDYsMHgwYywweDAwLDB4YjMsMHg4MCwweDIwLDB4ZTEsMHg0OCwweDM5LDB4MTIsMHgyYywweDAwLDB4YjMgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDgyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyYywweDQ4LDB4MGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDNmLDB4YTAgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4MGYsMHhlNCwweDAzLDB4ZDgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlOCwweDAzLDB4MjgsMHgwMCwweGZhLDB4NDAgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4MzIsMHhhOCwweDJjLDB4YTAsMHgwOSwweDI4LDB4MDgsMHhmMiwweDAwLDB4MzIsMHg4MCwweDBjLDB4ZTQsMHgwMywweDY4LDB4MDAgfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4Y2EsMHgwMCwweDNmLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4NDgsMHgwMCwweGMwLDB4MDAsMHhmOCwweDAxLDB4M2UsMHgxMiwweDBiLDB4ODAsMHgwMywweGUwLDB4NDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MDAsMHg0ZiwweDg0LDB4MDMsMHhlMCwweDA0LDB4ZjAsMHgwOCwweDNlLDB4MDAsMHg0ZiwweDAwLDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4NDEsMHgzZSwweDAwLDB4MmYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNiwweDAwLDB4YzksMHgxMiwweDNlLDB4NTAgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4OGYsMHg5MCwweDgzLDB4ZTQsMHgyMCwweGMxLDB4MDAsMHgzYSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4MzAsMHg2OCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4YzksMHg5MCwweDNlLDB4NjksMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4ODAsMHgwNCwweDY3LDB4NGEsMHg4OSwweDgwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwMiwweGU0LDB4ODAsMHhhOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDEwLDB4ODkgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MywweDAyLDB4MjQsMHgyMiwweDg5LDB4NDIsMHgyYywweDYwLDB4NDgsMHg5MCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHgyNCwweDAwLDB4OTksMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTAsMHgwNiwweDI0LDB4NDAgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4ODksMHg0MSwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4ODAsMHg5MSwweDIwLDB4MmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4NDgsMHgwYiwweDEwLDB4MDIsMHhjNCwweDgwLDB4YjEsMHgyMCwweGExLDB4NDksMHgwOCwweDUyLDB4NGEsMHgwNCwweDgwLDB4ODEgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4MDAsMHgyMCwweDQ4LDB4NDgsMHgxMiwweDBhLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyYywweDQwLDB4MjgsMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4ZDgsMHgwNCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4MGYsMHg4NSwweDAzLDB4ZTAsMHgwMCwweGMwLDB4NTAsMHgzYSwweDE0LDB4MGYsMHhhNSwweDAzLDB4ZTEsMHg0MCwweGY4LDB4MDIgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4MzIsMHg4MCwweDJjLDB4YzUsMHgwMywweDIxLDB4NDAsMHhkYSwweDAwLDB4M2EsMHgxNCwweDBlLDB4ODUsMHg0MywweDIxLDB4NDAgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4YzgsMHg1MiwweDNlLDB4MTQsMHgwYywweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4ODgsMHgxZCwweGU0LDB4NDQsMHhlOSwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMiwweGZjLDB4MDAsMHhmOSwweDEyLDB4M2UgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZmQsMHgxMCwweDNlLDB4NDQsMHg0ZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZTkgfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4NDAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTIsMHgzZiwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNiwweGEwLDB4ZmQsMHg4MCwweGIzLDB4NDAgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4MGMsMHgxMCwweDAzLDB4MTQsMHgwMCwweGZkLDB4YTAsMHgzMiwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZTQsMHgwMCwweGY1LDB4ODYgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4MzMsMHg2MCwweDJjLDB4OWEsMHg4MywweDI0LDB4MDQsMHhmZCwweGE4LDB4MjIsMHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4ZmQsMHgwMCwweDMzLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4NzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweDAwLDB4MjIsMHgwMCwweDI4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHhiOCwweDAwLDB4YTIgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4MDAsMHgwYiwweDhhLDB4MTIsMHhlMCwweDAwLDB4YjgsMHgwNCwweDIyLDB4MTQsMHgwOCwweDg0LDB4MDIsMHgyMCwweDAwLDB4YjggfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4NDAsMHgyMCwweDAwLDB4ODgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHhhMiwweDAwLDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHg0MiwweDIwLDB4NDAgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4NDAsMHgyMCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgwMCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4MjQsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQ0LDB4MDQsMHhiMSwweDAwLDB4NjAsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4YjEsMHgwMCwweDIwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgxMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjIsMHg2MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAwLDB4YjksMHgyMCwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg2NCwweDA4LDB4YjkgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MiwweDAyLDB4ZWMsMHgwOCwweGI5LDB4MDQsMHgyMiwweDQxLDB4MGIsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4MGMsMHg5NCwweDBiLDB4MjUsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4OGYsMHg5NCwweGQzLDB4ZTQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4MzYsMHg0MCwweDRjLDB4OTAsMHgwYiwweDY0LDB4MDAsMHhmMSwweDAwLDB4MzIsMHg0MCwweDBkLDB4OTIsMHgxMiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4ZjksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4NjgsMHg0MSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDhmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4NDAsMHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweGJhLDB4NDAsMHgyZiwweDkwLDB4MjMsMHhhNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4MDgsMHhiZSwweDQwLDB4Y2YsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGYxLDB4MDEsMHgzZSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZGEgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweGM4LDB4ZjgsMHgwMCwweDNlLDB4MDMgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4MGMsMHg4NCwweDAzLDB4YTEsMHgxMCwweGU4LDB4MDAsMHgzMiwweDAwLDB4OGMsMHg4NSwweDgzLDB4ZTAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4MzgsMHgwYywweDJjLDB4MDAsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwLDB4M2MsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIwLDB4MTAgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4YzgsMHgyMCwweGIyLDB4MDIsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MjgsMHgwNSwweDM5LDB4MTAsMHhiZSwweDA0LDB4NmYsMHhhMCwweDA4LDB4YTAsMHgwMiwweDNhLDB4MDAsMHg4MiwweDAwLDB4YTIgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4ODAsMHg4ZCwweGVjLDB4MDMsMHhhOCwweDAwLDB4OGEsMHgwMCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MjIsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4Y2MsMHgyZiwweDgwLDB4MDgsMHhlOCwweGMyLDB4YjgsMHgwMCwweDhlLDB4NjAsMHgyMywweDkwLDB4MGIsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0ZSwweDA4LDB4YjAsMHg3MiwweDJjLDB4ZDAgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4MjgsMHhiMCwweDA2LDB4OGMsMHgwMSwweGExLDB4MDIsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4MjAsMHhjMCwweDI5LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MSwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzIsMHgwMiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4ZjQsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhkMCwweDQ4LDB4ZjIsMHgwMiwweDFlLDB4MjEsMHg4NSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4ZTgsMHgwOSwweDcyLDB4MDIsMHg4ZSwweDgwLDB4OGYsMHgwMSwweDIwLDB4YzAsMHgwOSwweDcyLDB4MDIsMHgwZSwweDgwLDB4ODcgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4MDAsMHgyZCwweGNjLDB4MTgsMHg1OCwweDAyLDB4OGUsMHgwMCwweDg1LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4MGMsMHg3OCwweDgzLDB4OWEsMHgwMCwweGVkLDB4ZDAsMHgzMSwweGY0LDB4MGMsMHg2YSwweDAzLDB4ZGUsMHg4MiwweGM3LDB4ODAgfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4MzksMHhlMCwweDBkLDB4ZjgsMHg4MywweDVlLDB4YzIsMHhjNSwweDgwLDB4M2QsMHhlOCwweDBjLDB4NjgsMHgwMywweDEyLDB4MDAgfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwZiwweDdlLDB4ODMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4MDgsMHgwZCwweGFjLDB4MDgsMHhmOCwweDAwLDB4M2MsMHhjMCwweDBmLDB4YjMsMHgwMywweGVjLDB4MDAsMHhmOSwweDAyLDB4M2UgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MDMsMHhlZCwweDQwLDB4ZmIsMHgwMCwweGJlLDB4ODAsMHgwZSwweGIzLDB4MDMsMHhlZCwweGMwLDB4ZmIgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4MDAsMHgzZSwweGQyLDB4MmUsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZjAsMHg5MSwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4OGYsMHhmOCwweDAzLDB4ZmUsMHgwMCwweGZkLDB4ODAsMHgzZiwweGUwLDB4MGMsMHg3OCwweDgzLDB4M2YsMHgwMCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4M2YsMHhhMCwweDBjLDB4ZjgsMHgwMywweDNlLDB4MDAsMHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgxMywweGZlLDB4MTAgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4MjAsMHgwZiwweGY5LDB4NDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNCwweGMxLDB4MzEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGQ0LDB4MTAsMHhlNSwweDIwLDB4MmYgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4YzgsMHgwZiwweDQwLDB4MDMsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4ODAsMHgwOCwweDcwLDB4MDIsMHgxYywweDQwLDB4ODcgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4MTAsMHgyZCwweGMwLDB4MGIsMHg3NiwweDAyLDB4ZGMsMHg4MCwweGI3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg5YywweDAwLDB4YjYsMHgyMiwweDIxLDB4ZDAgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4MGIsMHg3MCwweDgyLDB4ZDgsMHg0MCwweGI1LDB4MDIsMHgyZCwweGMwLDB4ODgsMHg2NSwweDAyLDB4MGMsMHgwMCwweDg3LDB4MTggfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4MmMsMHgwNCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDIsMHg4NSwweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHg0NiwweDkwLDB4MTAgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4YjYsMHgwMCwweDJkLDB4MDAsMHgwYiwweDcwLDB4MjIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweDAwLDB4YTQsMHhjMCwweDBiLDB4MzAsMHg0MiwweGM2LDB4MTAsMHhhMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4YzAsMHgwYSwweDAwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4MDgsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweGIwLDB4MDAsMHgyYywweDQwLDB4MGIsMHgzMCwweDEyLDB4ZDggfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhhYywweDAwLDB4MzgsMHgwMCwweDMyLDB4NTAgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4MGYsMHhmMCwweDAzLDB4ZTYsMHgyMCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MDgsMHhkMCwweDAyLDB4M2MsMHgwMiwweGNiLDB4ODAgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4M2MsMHg1MCwweDJjLDB4ZjAsMHgwYSwweGJjLDB4MDAsMHhjOSwweDAwLDB4M2YsMHhjMCwweDBmLDB4YmUsMHgwMywweGFjLDB4MDAgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4ZmEsMHgwMiwweDJlLDB4ZjcsMHg0ZiwweGYwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmMSwweDAwLDB4M2EsMHhmMCwweDBmLDB4YjAsMHgwMywweGU5LDB4MDAsMHhmOSwweDAxLDB4M2UgfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4YzAsMHgwZiwweDkwLDB4MTMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNlLDB4NTUsMHgwZiwweGIwLDB4MDEsMHg2YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHg5MCwweDczLDB4ZTAsMHgwMCwweGY4LDB4NDEsMHgzZSwweDAwLDB4MGYsMHgzMCwweDAxLDB4ZTAgfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhmYywweDAwLDB4ZmMsMHgwMCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4MWYsMHhmMCwweDEzLDB4ZjAsMHgwOCwweGZkLDB4MDIsMHgzZiwweGMwLDB4OGQsMHhjMCwweDAzLDB4M2MsMHgwMCwweGNmLDB4YTAgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4M2YsMHg4MCwweDBjLDB4NzAsMHgwMywweDNjLDB4MTAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGIwLDB4MDAgfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwNCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4ODQsMHgwNCwweDZlLDB4MDAsMHhiOSwweGMyLDB4YTIsMHhmMCwweDBiLDB4YjAsMHg0MiwweGViLDB4MDAsMHhiOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4YzAsMHgwZiwweDE4LDB4MDMsMHg2YywweDAwLDB4ZDksMHg4MSwweDJlLDB4YjAsMHgwYSwweGIwLDB4NDIsMHgyYywweDAwLDB4YmEgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4YzYsMHgyZSwweGMwLDB4MGIsMHg4YywweDAyLDB4ZTMsMHgwMCwweGI4LDB4YzAsMHgzYywweGEwLDB4MGQsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZiwweDAwLDB4YjgsMHg4MCwweDIyLDB4ZTIgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZTYsMHgyMCwweGI5LDB4MDAsMHgyYywweGMwLDB4MDgsMHhiOCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MmUsMHgzMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiOSwweGMwLDB4MmUsMHhjMSwweDBiLDB4ODgsMHgwMiwweGVlLDB4MTAgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4YjksMHhjMCwweDJlLDB4MjAsMHgxOSwweGIwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwNiwweGMwLDB4MDAsMHg5MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4YzAsMHg0OSwweDgwLDB4MDIsMHg0YywweDA0LDB4OTEsMHgwMCwweDJjLDB4MDAsMHg4YSwweDMwLDB4MGEsMHgwYywweDA0LDB4YjEgfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MWIsMHgwMCwweDEyLDB4NDksMHgxMCwweGIxLDB4MDAsMHgyZSwweDIwLDB4MDksMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YjgsMHgyMCwweDIyLDB4YzAgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4OGIsMHhmMCwweDAzLDB4ZTAsMHgwOCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhhMCwweDAzLDB4M2MsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4M2UsMHgwMCwweDRjLDB4ZjAsMHgwYSwweDNjLDB4MDAsMHhiOSwweDAwLDB4MzcsMHhjMSwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4MDAsMHgwZCwweGYwLDB4MGIsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDEsMHhmYywweDQwLDB4M2YsMHg4MCwweDRmLDB4ZjAsMHgwMiwweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4YzEsMHgwZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4MDAsMHg0ZiwweGYwLDB4NjMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGZjLDB4MDAsMHg3YiwweDAwLDB4MGYsMHhmMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmOCwweDAwLDB4YzgsMHgxMCwweDMzLDB4MDQgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4MGMsMHg0MCwweDAyLDB4MzQsMHgwMCwweGM4LDB4ODUsMHgxZiwweGMwLDB4MmQsMHhkOSwweDAzLDB4ZmMsMHhjMCwweGRiLDB4MjggfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4MzcsMHg2NCwweDBmLDB4ZGIsMHgwMywweDNlLDB4MDAsMHhmZiwweDI1LDB4M2YsMHhjOCwweDBlLDB4ZjIsMHgwMywweGZlLDB4MjAgfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4ZmYsMHhhNCwweDM3LDB4YzQsMHgwYywweGM4LDB4MDMsMHgzMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4ODAsMHgxMCwweGU4LDB4MDAsMHg4OCwweDIwLDB4MjIsMHgwMCwweDA4LDB4ODgsMHgxMiwweDI2LDB4MDQsMHg4OSwweDgyLDB4MmUgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4ZjQsMHg0OCwweGI4LDB4MDIsMHhmYywweGM0LDB4OTgsMHhjMiwweDIyLDB4N2MsMHg0YiwweDlkLDB4NDIsMHgyNiwweDA4LDB4YmYgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4MTgsMHg3NywweGU0LDB4MDgsMHhmMSwweDgyLDB4ZWYsMHgwMCwweGJiLDB4ZDAsMHgyMiwweGQ4LDB4MDgsMHg5MCwweDgzLDB4NjAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4MDIsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4NDUsMHhjOCwweDA0LDB4YTAsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDgyLDB4MDQsMHgyYywweGUwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4MjQsMHgwMCwweDBiLDB4MTAsMHgwNiwweGM4LDB4MDEsMHhiMywweDIwLDB4MmMsMHhjMCwweDI5LDB4MzIsMHgwMiwweGM4LDB4MDggfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4YjEsMHgwMCwweDI0LDB4ZDAsMHgwOCwweDgyLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4YzAsMHgxNSwweGE4LDB4MDAsMHhhOCwweDBjLDB4MjYsMHgwMCwweDBhLDB4ODAsMHgwMiwweDJjLDB4MTQsMHg4YSwweDAyLDB4NmUgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4ZTAsMHgwOCwweGIwLDB4MDIsMHg0YywweDA4LDB4YTgsMHgwMCwweDI2LDB4MjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4MDQsMHgyMiwweGMwLDB4MTksMHhiMCwweDAyLDB4ZTgsMHgwMSwweGJiLDB4MTEsMHgwMiwweGMwLDB4ODgsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4ZWEsMHg0MCwweGI2LDB4NjAgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4MmUsMHg5OCwweDBiLDB4MjAsMHgwMiwweGM4LDB4MDIsMHgzZSwweGMwLDB4MGQsMHg5OCwweDAzLDB4ZWMsMHgwMiwweGRiLDB4ODggfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4YjYsMHgyMSwweDBmLDB4ODgsMHgwMywweGFjLDB4MDgsMHhmYiwweDAwLDB4MmMsMHhjMCwweDBlLDB4YjAsMHg0MywweGU1LDB4ODAgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4ZjAsMHg2MCwweDM2LDB4YzAsMHgwYywweDAxLDB4NDMsMHg0OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkNiwweDAxLDB4M2IsMHg2NCwweDg1LDB4ZDksMHgwMywweGYwLDB4MGMsMHhmZiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4YzEsMHgwZiwweGZjLDB4MjEsMHhlYywweDAwLDB4ZDcsMHg5MCwweDNiLDB4NDAsMHgwZiwweDUwLDB4MDMsMHgzYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4ODgsMHgzZiwweGMwLDB4MmYsMHhkMCwweDAyLDB4NzggfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4YywweDAwLDB4ZGEsMHg0MCwweDNjLDB4NDAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4MGYsMHgxMCwweDAzLDB4NDgsMHgwMCwweGY5LDB4MjIsMHgzYywweGMyLDB4MGUsMHg5MCwweDgzLDB4ZWMsMHgwMiwweGRiLDB4MDQgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4M2EsMHgwOCwweDBmLDB4ODQsMHg4NywweGU4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjNCwweDBlLDB4YjAsMHgwMywweGVkLDB4MDAgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4ZTgsMHg0MiwweDNhLDB4YzAsMHgwZiwweDgwLDB4MGIsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4ODgsMHgwNSwweDJjLDB4MDgsMHg4YSwweDAwLDB4MmUsMHg0MiwweDhiLDB4OTAsMHgwMiwweDI4LDB4MTgsMHhiYiwweDQ5LDB4MjIgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4ZDAsMHgzOCwweGJjLDB4ODIsMHhmYywweDAwLDB4ZTgsMHgwMiwweDIyLDB4NjIsMHhjYiwweDljLDB4MDAsMHhlZiwweDYwLDB4ZGYgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MGIsMHhmMCwweDAyLDB4ZWMsMHgwMCwweDA5LDB4NDAsMHgzNywweGMwLDB4MGIsMHg5MCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OCwweDEwLDB4MTEsMHgwMCwweDJjLDB4YTAgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4MGIsMHgyMCwweDAyLDB4NDQsMHgwMCwweDkwLDB4YzAsMHg2NCwweDM0LDB4MjgsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4ODQgfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MjgsMHg0MCwweDBiLDB4MDgsMHgwMCwweGNlLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMiwweDBhLDB4MzAsMHgwMiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4YjIsMHg0MCwweDIyLDB4YzAsMHgwYiwweDIwLDB4MDIsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4NzAsMHgwMSwweDFhLDB4NDAsMHg4NSwweDgwLDB4MmQsMHhhMCwweDBiLDB4NjgsMHgwNiwweDE2LDB4ODAsMHhiZCwweDkwLDB4MjUgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MjQsMHgxOCwweDdiLDB4NDIsMHhkZSwweDQwLDB4YTAsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDY4LDB4MDIsMHhkNiwweDAwLDB4OTcgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MGIsMHg3OCwweDAyLDB4Y2UsMHg0MCwweDkyLDB4ODAsMHg2ZCwweGU0LDB4MGIsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyOCwweDAwLDB4ZDEsMHg4MCwweDNjLDB4ODggfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4MGIsMHgyMiwweDAzLDB4NGUsMHg4MCwweGYyLDB4YTEsMHgzYywweDI0LDB4MmEsMHgzOSwweDAzLDB4Y2MsMHg0MCwweGQzLDB4YWMgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4MzgsMHhjNSwweDBmLDB4MzAsMHg4MiwweGM4LDB4MDAsMHhkMywweDAwLDB4M2MsMHhjMCwweDBlLDB4MzAsMHgxMywweGMwLDB4MDAgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4ZjEsMHgwMCwweDM4LDB4YzAsMHgwZiwweGEwLDB4MDMsMHgxYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4NDAsMHgxZCwweGI4LDB4MTAsMHhmZCwweDM0LDB4M2UsMHg4MCwweDBmLDB4ZTAsMHgwMywweGVlLDB4MDAsMHg3MiwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MDAsMHgwZiwweGIwLDB4NjMsMHhlYywweDQwLDB4ZjgsMHgyMiwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhkNCwweDQwLDB4ZmYgfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4MDAsMHgzZiwweGQyLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGNmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZSwweDAwLDB4ZWIsMHgwMCwweDM2LDB4ZTAgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4MjAsMHgwMCwweGYwLDB4ODAsMHgzMywweGMwLDB4MDgsMHhiOCwweDAzLDB4MmMsMHg4MCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweDZlLDB4MDgsMHhjYiwweDI4LDB4MzIsMHhlMCwweDBkLDB4YjQsMHg4MywweGUyLDB4MDAgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4Y2EsMHgwMCwweDNlLDB4ZTAsMHgwYywweGE4LDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4YzgsMHgxMSwweDhjLDB4MDQsMHg4MywweDAwLDB4MjEsMHhjMCwweDQ4LDB4NzAsMHgwMiwweDEwLDB4MDAsMHhiNywweDAyLDB4MjEgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4YzAsMHg0YSwweDcwLDB4MDIsMHgwZCwweDQ4LDB4ZDQsMHgwMCwweDM1LDB4YzAsMHgwZSwweDYwLDB4MDIsMHhkYywweDAwLDB4YTcgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4NDAsMHgyOSwweGMwLDB4MDksMHg3MiwweDAyLDB4ZDQsMHgxMCwweGE2LDB4MDIsMHgyZiwweGM4LDB4MDgsMHg3MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDAwLDB4YTcsMHg4MCwweDIwLDB4ZTAgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4MGEsMHgzOCwweDAyLDB4MWEsMHgwMCwweGI1LDB4ODAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDIyLDB4NWMsMHg4MSwweDgzLDB4ODAgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4MjEsMHhhMSwweDBiLDB4NzgsMHg4MiwweDVhLDB4MTAsMHg4MywweGEwLDB4MjAsMHhlOCwweDBhLDB4N2IsMHgwMiwweGRhLDB4MDAgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4OTcsMHhjMCwweDJkLDB4ZTQsMHgwOCwweGU4LDB4MDIsMHgwOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDEwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHgwMiwweDA4LDB4MDgsMHhiMywweDcwLDB4MjAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4NDIsMHg0YywweDA0LDB4OTMsMHgxNCwweDI2LDB4YzQsMHgwYSwweDM4LDB4MDIsMHhjYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4YWEsMHgzMCwweDAyLDB4Y2UsMHg0MCwweGIzLDB4ODgsMHgyYywweGMwLDB4MjgsMHgzMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDAwLDB4ZWEsMHg4MCwweGI2LDB4OTAgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4MmYsMHgyNCwweDBiLDB4MzksMHgwNCwweGJlLDB4YzAsMHgzMywweDkyLDB4MGMsMHhhMCwweDBiLDB4NjgsMHgxOCwweGNlLDB4YzAgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MzMsMHg4MCwweDBmLDB4ZTksMHg0MywweDc4LDB4MDAsMHhjYSwweDAwLDB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweGY4LDB4NDggfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4ZGUsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDIsMHgzYSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHhmOCwweDAwLDB4M2UsMHgxMiwweDBkLDB4ODAsMHg5MywweGIwLDB4MjgsMHhmOCwweDAwLDB4YmMgfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDIsMHgwZSwweDgwLDB4MDAsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4MDEsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweGIyLDB4NzAgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4MGYsMHg5MCwweDAxLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5OCwweDAzLDB4ZTQsMHgwNCwweGU5LDB4MDggfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4M2EsMHg0OCwweDBjLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBiLDB4MTAsMHgwYiwweDI2LDB4ODAgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4ZjEsMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg2MSwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDgsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4NDAsMHgwZCwweDlhLDB4MDIsMHhlNCwweDA4LDB4YTksMHgwMCwweDIyLDB4NzgsMHgwZCwweDk0LDB4MDYsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4MDAsMHgyMiwweDUwLDB4MGIsMHg5MCwweDAyLDB4MjUsMHg4MCwweGI5LDB4ODAsMHgzNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjUsMHgwMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4MGIsMHhkMCwweDBlLDB4YjQsMHgwMCwweDg5LDB4MDQsMHgyZSwweDYwLDB4MDgsMHg5MSwweDAyLDB4YzQsMHgwNCwweGI5LDB4MDQgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4OTQsMHgwMiwweGU0LDB4MTAsMHhiMSwweDAwLDB4MjYsMHg0MiwweDBhLDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4YjksMHgyMSwweDYyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHhiNSwweDQwLDB4MjEsMHg1MCwweDRiLDB4NTAsMHgwNiwweDk0LDB4MDIsMHg4MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4NjAsMHgyOSwweDE0LDB4MDYsMHhjNSwweDAwLDB4YTEsMHgyMiwweDIwLDB4NTEsMHg4OSwweDE0LDB4MDIsMHhjNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4MjAsMHgyMCwweDQ4LDB4MGIsMHgxNCwweDAyLDB4MDQsMHgwMSwweGIxLDB4MDAsMHgwNCwweDUwLDB4MGIsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4YjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4OGYsMHg4MCwweDAzLDB4YjAsMHgwMCwweDg4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDQgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4M2EsMHgwMCwweDBjLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhmOCwweDUwLDB4MzYsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDQgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4ZjgsMHgwMSwweDEyLDB4MDAsMHg0ZiwweDgwLDB4MDcsMHhlZSwweDA3LDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MTAsMHhmOSwweDQwLDB4M2UsMHg1MCwweDBmLDB4OTQsMHgwMiwweDY1LDB4MDEsMHhmZCwweDAxLDB4M2QgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4NTAsMHg0ZiwweDUwLDB4MTMsMHhlNSwweDAwLDB4ZmQsMHgxMCwweDFmLDB4NTAsMHgwNywweGQ0LDB4NDMsMHhkNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4MTAsMHgxZSwweDQ0LDB4MGYsMHg5NCwweDAzLDB4ZDUsMHgwMCwweGZkLDB4NDAsMHgzZSwweDUwLDB4MGYsMHg1MiwweDgzLDB4ZWUgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhlNCwweDQwLDB4ZjksMHg2MCwweDNmLDB4NDQgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4MGYsMHhkMCwweGMzLDB4ZTQsMHgzMCwweGY5LDB4MDEsMHgzZSwweDQyLDB4MGMsMHhkMCwweDAzLDB4ZTcsMHg4MCwweGRkLDB4YTAgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhjOSwweDkwLDB4M2YsMHg2OCwweDFlLDB4OTEsMHgwMywweDM0LDB4MDAgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4ZmQsMHgwMCwweDNlLDB4NjgsMHgwYywweDk0LDB4MDMsMHgwZSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4MzksMHgxMCwweGUwLDB4MDAsMHhiOCwweDQyLDB4MmUsMHgwOSwweDBiLDB4ODQsMHgwMiwweGUxLDB4MDQsMHhiZSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MTAsMHgwOCwweDgwLDB4MjIsMHhjMiwweDgwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYSwweDgwLDB4MDIsMHhlMCwweDAwLDB4YTggfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4ZDAsMHgyZSwweDEwLDB4NGIsMHg4YSwweDAzLDB4NjAsMHgwMCwweGJhLDB4MDAsMHgyZSwweDMwLDB4MDgsMHg4YSwweDAyLDB4ODYgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhjNSwweDgwLDB4YjEsMHg2MCwweDZjLDB4ZDAgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MGIsMHgxMCwweDAwLDB4ZGMsMHgwYywweGI1LDB4MDAsMHgyYywweDQxLDB4MDgsMHgxMCwweDAyLDB4YzUsMHg4MCwweDkxLDB4MTAgfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4NjgsMHhjMCwweDA4LDB4MzAsMHgwMiwweGU0LDB4MGMsMHg4MSwweDIyLDB4MmMsMHg1MCwweDA4LDB4MTAsMHg0MiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4YTEsMHgwMCwweDJjLDB4NWEsMHgyOCwweDkwLDB4MDIsMHg1MiwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgxMiwweGY0LDB4ODAsMHhiZiwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YTksMHg2MCwweDYwLDB4NDIsMHgwYSwweDk0LDB4MTIsMHhlNSwweDAwLDB4YTkgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4NjQsMHgyMCwweGI5LDB4MDAsMHgwZSwweDQwLDB4MDksMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDEgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwNCwweGQxLDB4YzAgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4YmEsMHg3MCwweDBjLDB4OTgsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwMywweDI1LDB4NDAgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4ZTksMHg0MCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MTQsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgyMywweGU0LDB4MDgsMHhmOSwweGEwLDB4M2MgfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4YzIsMHgyZiwweDkwLDB4MDMsMHhjNCwweDAwLDB4ZDksMHg4MCwweDNlLDB4NzAsMHgwZiwweDkxLDB4NDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MWYsMHg5MCwweDEzLDB4ZTYsMHgyMCwweGY5LDB4YTAsMHgzYywweDQwLDB4NGUsMHg5MCwweDAzLDB4OWEgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDIgfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4MGYsMHg4MCwweDEzLDB4MjAsMHgwYywweGZjLDB4MDEsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwYiwweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHg0MywweGUwLDB4NDAgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4ZjgsMHgwMiwweDNhLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4YTgsMHg4NSwweDI4LDB4MDgsMHgzYSwweDAwLDB4MGYsMHg4MCwweDRiLDB4YTEsMHgwMiwweDI4LDB4MDAsMHhiYSwweDgyLDB4MmUgfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4ODgsMHg0OCwweGU0LDB4MDIsMHhlOCwweDAwLDB4YWUsMHg5MCwweGEzLDB4OTAsMHgwYiwweGUwLDB4MDAsMHgzOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4MDAsMHgzNywweGEwLDB4MDgsMHhhMCwweDAyLDB4ZjgsMHgwMCwweDllLDB4ZTAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDEwLDB4MzMsMHgwMCwweDJjLDB4ZDAgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MGMsMHgwMCwweGIyLDB4OTEsMHgyYywweGQwLDB4MDgsMHgzZSwweDAyLDB4NGMsMHgwMCwweDgzLDB4NDAgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4MjQsMHhjMiwweDBiLDB4MzYsMHgwMCwweDhjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDA5LDB4YjAsMHgwMiwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4YjMsMHhjYywweDY4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4ZTAsMHgwMSwweDFjLDB4ODgsMHhiNywweDI1LDB4MmQsMHhjMCwweDhiLDB4NTgsMHgxYSwweDFjLDB4MDgsMHhiNiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4YzAsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4YTUsMHgwMCwweDI1LDB4YzAsMHgxYiwweDc4LDB4MDIsMHg5NCwweDA4LDB4YjcgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4ODAsMHgyNSwweGUzLDB4MGEsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk3LDB4ODMsMHgyMSwweGM4LDB4OGIsMHhmMSwweDAyLDB4NDggfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDAwLDB4ZjcsMHhlMiwweDdkLDB4ZTAgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4MGYsMHg1OCwweDQzLDB4MWUsMHgxOCwweGY2LDB4ODAsMHg3YywweGUwLDB4MmMsMHg2OCwweDAyLDB4NWUsMHg5MCwweGMzLDB4ODAgfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4MzUsMHhlMCwweDBmLDB4ZjgsMHgwMywweDllLDB4MDQsMHhmZiwweGExLDB4MjAsMHhhMSwweDBkLDB4NzgsMHgwMywweGQ2LDB4MDAgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4ZjcsMHg4MCwweDM5LDB4ZjgsMHgwZiwweDc4LDB4MDMsMHgwYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDQwLDB4N2YsMHg0MSwweDBmLDB4MTAsMHgwMywweGVjLDB4MDQsMHhmYSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4ZDAsMHgwZiwweGEwLDB4MDMsMHhlZCwweDAwLDB4ZTksMHgwMCwweDJhLDB4MDAsMHgwZiwweGIwLDB4MDMsMHg2NCwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGQzLDB4MDAsMHgzNiwweGMwLDB4MGYsMHgzOCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDQ4LDB4Y2YsMHhjMCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4OGMsMHhjOCwweDQzLDB4ZDYsMHgwMCwweGNjLDB4OTQsMHgzZiwweGIwLDB4MGQsMHhmOCwweDAzLDB4N2YsMHgwMCwweGRmLDB4ODAgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4M2YsMHg2MCwweDBmLDB4ZDgsMHgwMywweGRlLDB4MDAsMHhjZiwweGNhLDB4M2QsMHg2MCwweDBjLDB4ZjgsMHgxMywweDNhLDB4NDQgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4ZGQsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4NDMsMHgxOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4ZiwweDExLDB4MzMsMHhjMCwweDQ4LDB4NDEsMHgxMiwweGM0LDB4NDgsMHg4NCwweDExLDB4MmMgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4ZWMsMHgyYSwweGJhLDB4MDMsMHgzYywweDQwLDB4ZDcsMHg0OCwweDJkLDB4NDEsMHgwYiwweDYwLDB4MDIsMHhkNCwweDAwLDB4ZDcgfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4MDEsMHgzZCwweGMwLDB4MGQsMHhmMCwweDAzLDB4NWEsMHgwMCwweDg0LDB4MTgsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg4YywweDA4LDB4ODcsMHgwMCwweDIxLDB4NDAgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4MDksMHg0MCwweDAyLDB4ZDQsMHgwMCwweGE0LDB4OTIsMHgyZCwweGM4LDB4MDksMHg2MiwweDgyLDB4NWMsMHgwMCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweGZjLDB4MDAsMHg4NywweDAwLDB4MmQsMHgwNCwweDA4LDB4NzAsMHgwMiwweDFjLDB4ODAgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4YjUsMHgwMCwweDJkLDB4YzAsMHgwYiwweGYwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4NjAsMHgxMCwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg0MCwweDA5LDB4MDAsMHgyMiwweGM3LDB4MDAsMHhhMCwweDQxLDB4MmMgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4YzEsMHg0YiwweDA4LDB4MDIsMHgyYywweDAwLDB4OTMsMHg0MCwweDJjLDB4N2MsMHgwYiwweDM4LDB4MDIsMHhjNywweDIwLDB4OTMgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4NGYsMHg4NCwweGIwLDB4ODAsMHgyYywweGMwLDB4MGIsMHgzMiwweDEwLDB4NTAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhiYywweDAyLDB4Y2YsMHgwMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4MGQsMHgxMCwweDAzLDB4ZTgsMHgyNCwweGViLDB4YzEsMHgzZSwweGMwLDB4MmQsMHg5OCwweDEzLDB4N2MsMHgwYSwweGMyLDB4NDMgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4M2UsMHhiMCwweDBmLDB4YTksMHgwMywweGU5LDB4MjAsMHhjZiwweDAwLDB4M2UsMHhjMCwweDhjLDB4ZjAsMHgwMywweDBkLDB4MjAgfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4ZmEsMHhjMCwweDNmLDB4YzAsMHgwZiwweDc0LDB4MDEsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHg0MCwweDhlLDB4OTAsMHgwMywweGU4LDB4MTQsMHg1YiwweDUwLDB4M2MgfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4NTAsMHg0ZSwweDg0LDB4MDMsMHhlYywweDAwLDB4ZjgsMHg0MCwweDNlLDB4ODAsMHgwNywweDgxLDB4MDMsMHhlYywweDA4LDB4ZjMgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4MDAsMHgzYSwweGMwLDB4OWYsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTggfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4OTAsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4MGYsMHhkMCwweDAzLDB4MzgsMHgyMCwweGNmLDB4MDgsMHgzMiwweGMxLDB4MGUsMHhkMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDggfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MzEsMHhlNSwweDBlLDB4ZTQsMHgwMywweDNhLDB4MDAsMHhmZiwweDAwLDB4MzMsMHg4MCwweDBmLDB4ZjAsMHgyYiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4Y2MsMHhhMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4ODAsMHgwNCwweDZjLDB4MDAsMHhiYiwweDAwLDB4M2EsMHg2OSwweDBiLDB4OTAsMHg2ZSwweDA4LDB4MDAsMHg4MywweDQxLDB4MzYgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4NDAsMHhjOCwweDg4LDB4YzYsMHhlYywweDAwLDB4ODgsMHg0MCwweDM2LDB4ODAsMHgwZCwweGE4LDB4MDMsMHg2ZSwweDUwLDB4YmIgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDgsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YmIsMHgwMCwweDJlLDB4NjAgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4MDMsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg5LDB4MDEsMHgyMiwweDU4LDB4MDgsMHg5OCwweDIyLDB4ZWMsMHgwMSwweGFiLDB4MDAgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4MjIsMHgwMCwweDBhLDB4MTAsMHgwMiwweDI4LDB4MDAsMHhiYiwweDAwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHgwMiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4OGEsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHgyMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjgsMHg0MCwweDhiLDB4MDAsMHgwMiwweDAyLDB4NDAsMHg4OSwweDAxLDB4MjQgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4ZDIsMHgyOCwweDEwLDB4MDIsMHhjYywweDAwLDB4ODMsMHgxMCwweDI0LDB4MjAsMHgwOCwweDA4LDB4MDIsMHg0ZSwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4MDQsMHhhMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MDgsMHg4OCwweDkyLDB4MDAsMHgyYywweGMwLDB4MGIsMHhiMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4MGYsMHg4MCwweDAyLDB4MjAsMHgxMCwweDg5LDB4NTAsMHgyMiwweGQ4LDB4MmUsMHg5NiwweDIyLDB4ZmMsMHgwMCwweGViLDB4NDAgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4MzIsMHhjMCwweDBhLDB4OTAsMHgwMywweDI4LDB4MDAsMHhmZiwweDAwLDB4MjIsMHgwMCwweDBmLDB4YjAsMHgwMywweDJjLDB4YTAgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDA2LDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmZiwweDBjLDB4M2IsMHgwMCwweDBmLDB4YzAsMHgwMiwweDcwLDB4OTAsMHhmZCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4YzksMHgwZiwweDk2LDB4YzMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDA0LDB4ZmYgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkYywweDgwLDB4ZmIsMHgyOCwweDNmLDB4MDAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4MGMsMHhjMSwweDBiLDB4ZjEsMHgwMiwweGVkLDB4MDAsMHgzNywweDMwLDB4MmMsMHhmMSwweDAzLDB4YjIsMHg0MCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4YmIsMHhjMCwweDBmLDB4NDgsMHgwNiwweGIyLDB4MDAsMHhmYywweDgwLDB4M2IsMHhjYywweDBjLDB4ZjAsMHgwMywweDcwLDB4ODAgfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4ZGYsMHgyOCwweDMzLDB4MDQsMHgwZiwweGY0LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4ODAsMHgxMCwweGZmLDB4NDAsMHhiZiwweDYwLDB4MmUsMHgyMSwweDA4LDB4ODIsMHgwMiwweDIwLDB4MDAsMHhhOSwweDI4LDB4MmEgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MDAsMHgwOSwweGZhLDB4MDIsMHgyMCwweDAwLDB4YmYsMHg1MSwweDIzLDB4ZDgsMHgwOSwweDk4LDB4MDIsMHhlNCwweDMwLDB4YjAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4MDAsMHgyMywweGQwLDB4MDgsMHhmNSwweGEyLDB4MjUsMHhhNCwweDhmLDB4NDIsMHgzYywweDEwLDB4MGIsMHhiMCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4YjMsMHgwOCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4MjgsMHgwMCwweDFhLDB4YzAsMHg4NCwweDIwLDB4MDAsMHgyNCwweGM4LDB4NGIsMHgzMSwweDQyLDB4YzAsMHgwMCwweDkzLDB4MDIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MjAsMHhjNiwweDA4LDB4MDAsMHgwNiwweGMwLDB4ODEsMHhiMywweDAwLDB4MmMsMHhkOCwweDA5LDB4MzIsMHgwMiwweGEwLDB4NDAgfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4OTMsMHgwMSwweDI0LDB4NGMsMHgwYiwweDMyLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiYiwweDAyLDB4MmUsMHgwYSwweDA4LDB4ODAsMHg4MiwweDYwLDB4MDAsMHhhOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4ZTAsMHgxYiwweGIwLDB4MDIsMHg2MiwweDAxLDB4M2IsMHgwMCwweDIyLDB4YzEsMHgwOSwweDkwLDB4MDIsMHhlMiwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4NjAsMHgyNiwweGMxLDB4MDgsMHhiMCwweDJhLDB4MjYsMHgwMCwweDliLDB4MDQsMHgyZSwweDIxLDB4MGIsMHhiMCwweDAyLDB4MzAgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4MDgsMHg4NCwweDEzLDB4ZWMsMHgwMiwweGE5LDB4MDQsMHgzNiwweDIwLDB4MGYsMHhiMCwweDAzLDB4ZWUsMHg4MCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4M2EsMHhjMCwweDBjLDB4YTAsMHgwMywweGEyLDB4ODAsMHg3OSwweDQwLDB4MWUsMHhjMCwweDhjLDB4YjAsMHg2MywweDZhLDB4MTAgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4ZDMsMHgwMCwweDM2LDB4YTIsMHgwNywweGIwLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2UsMHgyMCwweDRkLDB4NDEsMHgwMywweDljLDB4MDAsMHhmZCwweDIwLDB4YWIgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MDAsMHgwYywweGYwLDB4MDMsMHhiOCwweDAwLDB4ZjcsMHgwMCwweDNmLDB4YzAsMHg0ZCwweGM5LDB4MDMsMHhmNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MmUsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGVmLDB4MDAsMHgzZiwweDAwLDB4NGIsMHg3MCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDgwLDB4ZWIsMHgwMCwweDdlLDB4MTAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4MmUsMHg4NCwweDAzLDB4ZWMsMHgwMCwweGUwLDB4MDAsMHgzMiwweDUwLDB4MGYsMHhiMCwweDg2LDB4MjUsMHgwMCwweGRiLDB4MjAgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4M2EsMHhjMCwweDBkLDB4YjAsMHg2MywweGUxLDB4MTAsMHhmYiwweDQ4LDB4MzgsMHhjMSwweDBmLDB4MzAsMHgwMywweDJjLDB4MDQgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4ZmIsMHgwOCwweDMyLDB4YzAsMHgwYywweGIwLDB4MGIsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4YzgsMHgwNSwweDNjLDB4MDAsMHg4ZiwweDAwLDB4NjQsMHgyOSwweDI4LDB4ODAsMHgwMywweGVjLDB4MDIsMHhlOCwweDA0LDB4YTggfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4NTYsMHgwOCwweGZjLDB4MDcsMHhlMCwweDAwLDB4MGYsMHhhMCwweGJmLDB4YzAsMHgwYiwweDk1LDB4MDIsMHhhMCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4MDUsMHgzNywweGMwLDB4ODksMHhmMCwweDBhLDB4MGQsMHhjOCwweGJmLDB4MDgsMHgyYSwweDgwLDB4MDgsMHhmMCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAxLDB4YjMsMHgwMiwweDI0LDB4ZTAgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4MGEsMHgzMCwweDEyLDB4ODAsMHgwMywweGEzLDB4MDAsMHhhOCwweDAwLDB4MDIsMHhiOCwweDIyLDB4YzAsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MjgsMHhjMSwweDBiLDB4MDQsMHgwMiwweDA4LDB4MDAsMHhiOSwweDQwLDB4MjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAzLDB4MDQgfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4YjMsMHg0NCwweDIwLDB4MDAsMHg0YSwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MjAsMHgxNywweGEwLDB4NjUsMHhlYywweDA4LDB4MzgsMHgwMiwweGMyLDB4NDEsMHhiMywweDkyLDB4MmIgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4NjQsMHgwYSwweDM4LDB4MDIsMHgzNiwweDAxLDB4YjcsMHg5MCwweDJkLDB4ZTAsMHgwMywweGY4LDB4MDAsMHg5YSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4ODAsMHgyZCwweGUwLDB4ODksMHg3OCwweDEyLDB4MWUsMHgwMCwweGI3LDB4ODAsMHgyOSwweGUwLDB4MGEsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4NzMsMHhiMCwweDI0LDB4YzggfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4NGUsMHgzMCwweDBhLDB4ODAsMHgwMiwweGUyLDB4MDAsMHgzOCwweDk0LDB4MGUsMHgzMSwweGEyLDB4YzgsMHgwMCwweDczLDB4MDAgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4MTgsMHhjNCwweDA1LDB4MDAsMHgwMywweDAwLDB4MDAsMHhmMywweDAwLDB4MzgsMHhjMCwweDA3LDB4YjEsMHgwMywweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4ZjMsMHgwMSwweDMwLDB4NDEsMHgwZSwweGIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4NDAsMHgxZCwweGJkLDB4MDAsMHhlZiwweDEwLDB4MjYsMHhjOCwweDAzLDB4YjEsMHgwMywweGUwLDB4MDAsMHhlYSwweDgxLDB4NzggfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4YzUsMHgwYywweGI1LDB4ZTMsMHhkYywweDAwLDB4YzMsMHgwMCwweDNlLDB4YzEsMHgwZiwweGYwLDB4ODMsMHhiMCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGQsMHhmNCwweDAzLDB4ZTQsMHgwMCwweGY3LDB4MDAsMHgzZiwweDQwLDB4MGQsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlZCwweDEwLDB4Y2IsMHgyOCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4MGQsMHhiMCwweDEzLDB4YWMsMHgxMCwweGZiLDB4MDAsMHgzYSwweDgwLDB4MDQsMHhiNCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDQgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YTQsMHhiMywweGUwLDB4MDAsMHhmYiwweDgwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAgfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4ZmIsMHg0OCwweGIyLDB4ODAsMHgwZiwweGIwLDB4NDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDIsMHg4NywweDQ0LDB4MzgsMHhjMCwweDhkLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhmZiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjMsMHg1MCwweDIxLDB4ZDQsMHg0ZSwweDYyLDB4MDIsMHhkMCwweDAwLDB4YmYgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4MDAsMHgzNSwweGQ0LDB4MDksMHg3MCwweDIyLDB4ZDgsMHgwMCwweGJmLDB4MjIsMHgyMSwweGMwLDB4MGIsMHg3MiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDQwLDB4ODcsMHg4MCwweDJkLDB4ZTAgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI2LDB4ODAsMHgyOSwweGExLDB4MjgsMHg3YSwweDMyLDB4ZGUsMHgwMCwweDM3LDB4YTAgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4MjUsMHhlMCwweDA5LDB4NzgsMHgwNiwweGQyLDB4MDAsMHhiNywweDgwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGRlLDB4MDAgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4YjcsMHg5MCwweDIxLDB4ZTAsMHgwYiwweDc5LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDQsMHg4MywweDAxLDB4MjgsMHhjMCwweDg5LDB4YjAsMHgwYSwweDRmLDB4MDAsMHhiMiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4YzQsMHg4OCwweDMwLDB4MTYsMHhjZiwweDAwLDB4YmIsMHgwNCwweDIwLDB4YzEsMHgwYSwweDMyLDB4MDYsMHhjMiwweDAwLDB4YjMgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MDksMHgzMCwweDQyLDB4ZWYsMHgxMCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4NGEsMHgwMCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4MmQsMHhhMCwweDBiLDB4YWEsMHg4MCwweGZlLDB4MDAsMHgyYiwweDgwLDB4MGMsMHhhMCwweDQzLDB4ZmIsMHgzMCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4M2UsMHg4MCwweDBmLDB4YTAsMHg4MywweGZhLDB4MDQsMHhmZSwweDE4LDB4MjIsMHg4MCwweDBmLDB4YTAsMHgwMywweGZhLDB4ODQgfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4ZjIsMHgwMCwweDMzLDB4YTIsMHgwZiwweGEwLDB4MDMsMHhmMiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmYywweDAyLDB4M2UgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MDAsMHgxZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDEsMHhlMCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4NDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNiwweDAwLDB4ZDksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4MDQsMHgwMCwweGM5LDB4MDAsMHgzNiwweDY4LDB4NmMsMHg5NCwweDAzLDB4ZTQsMHgyMCwweGI5LDB4OTAgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTQsMHgwMywweGU0LDB4MDAsMHgyOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MjAgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4ODAsMHgwNCwweDY2LDB4NTAsMHg4OSwweDAwLDB4MjAsMHg1MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDksMHhkOSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4NDgsMHg0OCwweDkwLDB4MDYsMHhlNCwweDA0LDB4OTksMHhhMCwweDIyLDB4NDAsMHgwZCwweGI4LDB4MjIsMHg2NCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4NTAsMHgzMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MjcsMHg5MCwweDg5LDB4NDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDAwLDB4OTksMHgwMCwweDY2LDB4NDIgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4MGEsMHhkMCwweDEyLDB4MzQsMHgwMCwweDg1LDB4MDAsMHgyNiwweDQwLDB4NGEsMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDEgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4MjQsMHg0MCwweDU4LDB4OTAsMHgxMiwweGM0LDB4MDAsMHgyOSwweDQwLDB4MmUsMHg0MCwweDBiLDB4MTAsMHgwYSwweDI0LDB4ODAgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4ODksMHgwNSwweDI2LDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4NjEsMHg0OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODEsMHg5NSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4NDAsMHgwYSwweDM2LDB4MDIsMHhjNCwweDAwLDB4YjEsMHgyMCwweDAwLDB4NDgsMHg0MSwweDEwLDB4NDIsMHg0NCwweDAxLDB4YTEgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4MDAsMHgyNCwweDQ4LDB4MGIsMHgxMiwweDEyLDB4MDQsMHg4MCwweDgxLDB4MjAsMHgyOCwweDQ4LDB4MGIsMHgxMiwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZDgsMHg1MCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4MGUsMHg4NSwweDIzLDB4MjEsMHg0MiwweDhjLDB4NTQsMHgzNCwweDE0LDB4MGUsMHg4MCwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4MzYsMHgxNCwweDA0LDB4ODAsMHgwMywweGUxLDB4NDQsMHhlOCwweDUwLDB4N2UsMHgxNSwweDBmLDB4ODUsMHgwMywweDIxLDB4NDIgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4NGEsMHgwMCwweDM2LDB4MTQsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4OTgsMHgxZCwweGM0LDB4NDAsMHhmOSwweDEwLDB4MWUsMHg0NCwweDRlLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2YgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4YzAsMHgwZCwweDkxLDB4MDMsMHhmNCwweDAwLDB4ZDksMHgxNCwweDNlLDB4NDQsMHgwZiwweDkwLDB4MDMsMHg3NCwweDAwLDB4ZGQgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4MDAsMHg3YSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MzgsMHgzZiwweDQ0LDB4MGYsMHg5MywweDgzLDB4ZTcgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmNiwweDgwLDB4ZjksMHhhNCwweDNmLDB4NjggfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4MGUsMHg5ZSwweDQzLDB4NjcsMHg4MCwweGQ5LDB4ZTQsMHgzZiwweDQxLDB4MGYsMHhkOCwweDQzLDB4MDQsMHgwMCwweGVkLDB4YzAgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkNSwweDQwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGY0LDB4MDAgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4ZGQsMHgwMCwweDMyLDB4NDAsMHgyYywweDlhLDB4MDMsMHhjNiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHhlOCwweGMwLDB4MmUsMHgxNCwweDRkLDB4OGYsMHgyMiwweDIzLDB4YzAsMHhmOCwweGYwLDB4YWEgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4MDAsMHgwYywweDgwLDB4MDMsMHhhMiwweGEwLDB4ZDgsMHg4MiwweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlOCwweDAwLDB4ZDggfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4ODAsMHgyYSwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTgsMHgwOCwweDg4LDB4YTgsMHgzNiwweDAwLDB4NDgsMHg4YSwweDgyLDB4Y2UgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjEsMHg0OCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MGEsMHgxMiwweDIyLDB4NDQsMHgwMCwweDkxLDB4MDQsMHhhNCwweDQxLDB4MGEsMHg5NCwweDA2LDB4MjQsMHgwMCwweDkxLDB4NDIgfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4MjQsMHg0MSwweDA5LDB4MTAsMHgwMiwweGU0LDB4MDEsMHg5MSwweDIwLDB4MjQsMHg0MCwweDA5LDB4MTAsMHgwMiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4OTEsMHgwMCwweDJjLDB4NDAsMHgwOSwweDE0LDB4MDIsMHhjMiwweDAxLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDQ4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YWEgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4NDAsMHgxOCwweGIwLDB4MDIsMHhlNCwweDA4LDB4OTksMHgwMCwweDIyLDB4NDAsMHgxOSwweDkwLDB4NDYsMHhlNCwweDgwLDB4OTkgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMSwweDk5LDB4MDQsMHgyNiwweDUwLDB4MDksMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHgwNiwweDNjLDB4NDAgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4MGEsMHg5MCwweDAzLDB4NjQsMHgwMiwweGQ5LDB4MDAsMHhiNiwweDUwLDB4MGUsMHg5MCwweDIzLDB4MjYsMHgwMSwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4MzYsMHg0MCwweDI5LDB4OTQsMHg4MywweGU0LDB4MDAsMHhkOSwweDQ4LDB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMywweGM3LDB4MDAgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4ZDEsMHgwNywweDNhLDB4NTAsMHhjZCwweDkwLDB4MDMsMHhlOCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDgsMHhlOSwweDAwLDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDgsMHhmMSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4NjgsMHg4ZiwweDkwLDB4MDMsMHhhNCwweDQxLDB4ZjksMHgwMCwweGJlLDB4NDAsMHgwZSwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4YzAsMHgzOCwweDQwLDB4MmUsMHg5MCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDY4LDB4MDYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZDgsMHgwNSwweDNlLDB4MDAgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4MDcsMHg4MCwweDBiLDB4MjAsMHgwMCwweGU4LDB4NDAsMHgzZSwweDEwLDB4MGQsMHg4MiwweDAzLDB4NjAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4YjIsMHgwMCwweDhkLDB4ODMsMHgwMywweGUwLDB4MDAsMHhkOCwweDUwLDB4M2EsMHgwMCwweDFlLDB4ODAsMHgwMywweGUxLDB4MjQgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHg4YSwweDA0LDB4MmYsMHg4NCwweDZhLDB4YTAsMHgwYiwweGU4LDB4MDgsMHg4ZSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4ODAsMHg4OCwweGVjLDB4MDMsMHg2OCwweDEwLDB4YTYsMHgwMSwweDM2LDB4ODAsMHgwOCwweGE4LDB4MDAsMHhjOCwweDEwLDB4OGUgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4MTAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZmIsMHgyMCwweGJlLDB4NTEsMHgyYSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MSwweDIxLDB4OTMsMHgwMCwweDJjLDB4ZjAgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4MzksMHgzMCwweDA2LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyOCwweDA4LDB4MjgsMHhiYywweDAyLDB4MmMsMHgwMCwweDgzLDB4ODAgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMCwweGNjLDB4MDAsMHg5YSwweDgwLDB4MjgsMHhjMCwweDBhLDB4MzAsMHgwMiwweGNkLDB4MDAgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4YjMsMHgwNCwweDYyLDB4YzEsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4YTAsMHgwMSwweDFlLDB4MDQsMHgwNywweDExLDB4MmMsMHhkMCwweDBhLDB4MzIsMHgyMiwweGRjLDB4YzEsMHg4NywweDAwLDB4NmQgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4ZDAsMHgwOCwweDM0LDB4MDIsMHg3YywweDAwLDB4YTcsMHgwOCwweDI0LDB4YzgsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwLDB4MGYgfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4MDAsMHgyMSwweGM0LDB4MDgsMHg3MywweDA2LDB4ZGMsMHgwMCwweGIyLDB4MDAsMHg2MSwweGM4LDB4MGIsMHgzYSwweDAyLDB4ODggfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwYSwweDAwLDB4NTcsMHg4MSwweDJkLDB4YTAgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4MmQsMHg3YywweDAyLDB4M2UsMHg4MiwweGUzLDB4ZTAsMHgzYiwweGUwLDB4MGMsMHg3OCwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4YjksMHhlOCwweDJjLDB4NzgsMHgwMywweGZmLDB4ODAsMHhkNiwweDgwLDB4M2IsMHhlYywweDAyLDB4N2EsMHgwMywweGRlLDB4MDAgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4ZWMsMHg4ZiwweDdjLDB4MDMsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDAwLDB4MWUsMHg4MCwweDIzLDB4YjYsMHg4MywweGVkLDB4YTAsMHhkYiwweDY0LDB4M2UgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDMsMHhlZCwweGMwLDB4ZjIsMHgwMCwweDNlLDB4ZDQsMHgwYSwweGIwLDB4MDMsMHhlYywweDMwLDB4ZWUgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4NjQsMHgzZSwweGMwLDB4MDcsMHhiMCwweGMzLDB4ZTgsMHgwMCwweGZiLDB4MDEsMHgzZSwweGM4LDB4MGYsMHhiOCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4ZWYsMHg4MCwweDNiLDB4ZTAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4MGYsMHhmOCwweDYzLDB4N2UsMHgwNCwweGNmLDB4YzAsMHhiNywweDIwLDB4MGUsMHhmOCwweDAzLDB4ZmMsMHgwMCwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4MzMsMHhmMCwweDBjLDB4Y2MsMHgwMywweGZlLDB4MDgsMHhmNywweGMxLDB4MzMsMHhlMCwweDRmLDB4ZjgsMHgwMywweGIyLDB4NDAgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4ZmYsMHhhMCwweDMxLDB4ZTYsMHgwYywweGY4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhlZiwweDAyLDB4MjEsMHg0MCwweDJkLDB4NzAsMHgwMiwweDFjLDB4MDAsMHhmNywweDEwLDB4MjkgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MjIsMHhmYywweGMwLDB4YTcsMHgwMCwweDNkLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4NDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZGEsMHg4MCwweGI3LDB4MjQsMHgyOSwweGM2LDB4NDgsMHhmMCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTcsMHgwMCwweDI4LDB4ODQgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyNSwweDgwLDB4MGEsMHg2MSwweDAyLDB4ZGMsMHgwMSwweGE3LDB4MTAgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MjQsMHhjMCwweDA4LDB4NDAsMHg4MiwweGRjLDB4MDAsMHg5ZiwweDAwLDB4MjUsMHhjNCwweDBiLDB4NzAsMHgwMiwweDk0LDB4MjUgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4YjcsMHgzMiwweDIzLDB4YzQsMHgxYiwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MGMsMHhhMywweDAwLDB4MjAsMHgwMCwweDI5LDB4MzAsMHgwYSwweDBjLDB4MDAsMHhhMywweDAwLDB4NmMgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4MDAsMHgwOCwweDEwLDB4NDIsMHhjZCwweDEwLDB4YWEsMHgwMCwweGFjLDB4YzAsMHgwMCwweDA0LDB4MDIsMHhjZCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4MTAsMHgyNCwweGMwLDB4MDMsMHgzMCwweDQyLDB4YzMsMHgwOSwweGIzLDB4MDAsMHgyYywweGQwLDB4MGEsMHgzMCwweDAyLDB4MTggfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MCwweDAwLDB4ZWYsMHgwMCwweDNhLDB4NDAgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4MDcsMHhmMCwweDQzLDB4M2MsMHgwMCwweDlmLDB4YzAsMHhiNiwweDE0LDB4MGUsMHg4MCwweDA2LDB4ZmMsMHgwMSwweGNiLDB4MDEgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MzcsMHhjMCwweGFjLDB4YjQsMHgwMiwweGZjLDB4MDAsMHhkOSwweDAxLDB4MzcsMHhjMCwweDRiLDB4ZjAsMHgxMywweGFlLDB4MDggfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4ZmIsMHgwMCwweDMzLDB4ZDAsMHgyZSwweGYwLDB4MGIsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDA1LDB4M2UsMHg0MCwweDBmLDB4MzAsMHgwMywweGFjLDB4MTQsMHhmYiwweGEwLDB4M2EgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4YzAsMHgwZiwweDg0LDB4NDMsMHhlYywweDAxLDB4ZjksMHg0MCwweDNlLDB4YzAsMHgwZiwweGEyLDB4MDMsMHhlYywweDIxLDB4ZjkgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgyMCwweGYwLDB4MDAsMHhiYSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmOCwweDAwLDB4ZDcsMHgwMSwweDM1LDB4NjggfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4NmQsMHhmMCwweDAzLDB4M2MsMHgwMSwweGU3LDB4MDAsMHgzMywweGMwLDB4MGQsMHhjMCwweDAzLDB4ZmMsMHgyNCwweGNmLDB4MDIgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4MzcsMHhjMCwweDBkLDB4ZDIsMHgwMiwweGZjLDB4MDAsMHhkZiwweDAxLDB4MzMsMHhjMCwweDVlLDB4NzAsMHgzMywweDFjLDB4MTggfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4Y2YsMHg0MSwweDMxLDB4YzIsMHgwYywweGYwLDB4MDMsMHg0MCwweDQwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4ODEsMHgwMCwweDZjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHg1MiwweDJhLDB4YjAsMHgwMywweDZjLDB4MDAsMHhhYiwweDAwLDB4MjggfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4YzAsMHgwYSwweDhjLDB4MDIsMHhlYywweDEwLDB4OGIsMHhlMCwweDIyLDB4YzAsMHgwZiwweDgwLDB4MDIsMHhjYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4ODAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmEsMHgxMCwweGQ5LDB4ODAsMHgyMiwweGMwLDB4YzgsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyNCwweDAxLDB4OWIsMHgwMCwweDI2LDB4ODAgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4MjksMHhiMCwweDYyLDB4MGMsMHgwMCwweGFiLDB4MDEsMHg2YSwweDAwLDB4MDgsMHg5OCwweDAyLDB4Y2MsMHgwMCwweDliLDB4ODMgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4MmUsMHhjMCwweGNiLDB4YjQsMHgxMiwweGVjLDB4MDMsMHg4YiwweDgwLDB4MjgsMHhjMCwweDBhLDB4YjAsMHgwNiwweGEyLDB4MDAgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4OGIsMHgwMiwweDYyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHg4MywweDE0LDB4MjAsMHgwMCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmEgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4NDAsMHgwYSwweDEwLDB4MDAsMHhjYywweDAyLDB4OTMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDIwLDB4MDIsMHhlYywweDAwLDB4MDMgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDE2LDB4MDAsMHg4MCwweDkxLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4MmQsMHhmMCwweDAzLDB4M2MsMHgwMCwweGFmLDB4MDAsMHgzYSwweDgwLDB4MGQsMHg4MCwweDAzLDB4ZmMsMHgwMCwweDViLDB4MDAgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4MzcsMHhjMCwweDA5LDB4OTAsMHgwMywweGZjLDB4MDAsMHhkZiwweDAwLDB4MzMsMHhjMCwweDBhLDB4ZjAsMHgwMywweGE0LDB4MjAgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4Y2IsMHgwMCwweGIzLDB4YzAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDQsMHhmZiwweDIwLDB4MGYsMHgwMCwweDI3LDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MDAsMHgwYiwweGQwLDB4MjcsMHhmYywweDAwLDB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwZiwweGMwLDB4NDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDBiLDB4ZTAsMHgwMCwweGY1LDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4MDcsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmNCwweGMwLDB4ZmMsMHgyMiwweDdmLDB4YzAgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4MGMsMHhkMCwweDQzLDB4MzYsMHgwMCwweGM0LDB4ODEsMHgzNCwweGMwLDB4MWMsMHg4OSwweDA3LDB4ZjIsMHg4MCwweGNmLDB4ODAgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4MzMsMHg2MCwweDBmLDB4NzksMHgwMywweDNjLDB4ZTAsMHhjZiwweDA4LDB4MzMsMHg0OCwweDBkLDB4YzQsMHgwMywweGYwLDB4NTAgfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4ZGMsMHg5MCwweDM3LDB4Y2MsMHgwZiwweGY4LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4ODAsMHgxMCwweGU5LDB4OTAsMHhiOCwweDgwLDB4N2UsMHhlNCwweDg4LDB4OTksMHgwYSwweDI2LDB4MDgsMHhhOSwweDgwLDB4MjIgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4ZjQsMHgyYywweDk5LDB4MDMsMHhhNywweDAyLDB4ODksMHg4MCwweDIyLDB4MzQsMHgwYiwweDlhLDB4MDMsMHg3ZCwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4NDgsMHgyYiwweDYwLDB4MDgsMHgwNSwweDAyLDB4ZTUsMHgwMCwweDgyLDB4MjAsMHgyMiwweGM0LDB4OGIsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNSwweDAwLDB4YjAsMHgxMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4MmEsMHgwMCwweDAyLDB4YTQsMHgwOCwweGE4LDB4MDQsMHhlMCwweDgwLDB4MGIsMHgwMCwweDAyLDB4YzQsMHg0MSwweGIyLDB4MDQgfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4YTQsMHgwYSwweDBiLDB4YjAsMHgwMiwweDhjLDB4ODEsMHg4MywweDIwLDB4NjAsMHg1MCwweDk4LDB4MTIsMHgxMiwweDhiLDB4ODAgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4ODksMHgwMCwweDJjLDB4YzgsMHgwYiwweDMwLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAyLDB4MmEsMHhjMCwweDBhLDB4ODgsMHgwMiwweGE0LDB4MDgsMHhhOSwweDgwLDB4YTIgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4ZTEsMHgxYiwweDljLDB4MjIsMHhlNiwweDAwLDB4YjgsMHg0MCwweDI2LDB4MzAsMHgwYiwweDkwLDB4MDIsMHhjYywweDAxLDB4OTMgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4MDQsMHgyYSwweDQwLDB4MzksMHg5OCwweDgyLDB4ZWMsMHgxNCwweDhiLDB4NjUsMHgyYSwweGMwLDB4MGIsMHhiMiwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlNywweDAwLDB4YjgsMHg0OCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4MGUsMHg4OCwweDQzLDB4ODQsMHgwMCwweGUzLDB4YzEsMHgzNiwweGU4LDB4MGYsMHg5YywweDEyLDB4ZTIsMHg4MCwweGYzLDB4YzAgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4MzYsMHg3MCwweDVmLDB4YTgsMHgyMywweGFjLDB4MDEsMHhjYiwweDA0LDB4MjIsMHg0MCwweDRkLDB4ODQsMHgwMywweGUyLDB4MDAgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4ZTAsMHgwMSwweGIzLDB4MDksMHhmZSwweDEwLDB4M2UsMHg4MSwweDBkLDB4YzAsMHgwMywweDc0LDB4MGMsMHhmZiwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4YzEsMHg4YywweGQwLDB4ODMsMHgxNCwweDAwLDB4Y2QsMHgyMCwweDNhLDB4NDAsMHgwZCwweGNhLDB4MDEsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4MDAsMHgxZiwweDQwLDB4MGUsMHhjMCwweDIzLDB4ZjIsMHg0NiwweGZlLDB4ODQsMHgzNywweGMwLDB4MGYsMHhkOCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZGQsMHgwMiwweDNkLDB4NDAgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4MGUsMHg5MCwweDAzLDB4YWMsMHgwMCwweGViLDB4NDgsMHgzZSwweGQwLDB4MGMsMHg4MCwweDYzLDB4YTIsMHgwOCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4MzIsMHgwOCwweDBjLDB4YjAsMHgwMywweGFjLDB4MDgsMHhlYiwweDAwLDB4M2UsMHg0MCwweDBjLDB4ZDQsMHg4MywweDU4LDB4MjAgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4ZjksMHg0MiwweDMyLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4YzgsMHgwNSwweDI4LDB4MDIsMHhkYiwweDAwLDB4MmUsMHhlMCwweDI4LDB4M2EsMHgwMiwweDJlLDB4MDAsMHhkYiwweDYwLDB4NzYgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4ZTAsMHgwZCwweDhjLDB4MDIsMHhlMCwweDAwLDB4ODgsMHgwMiwweDM2LDB4NTgsMHg2OCwweDE1LDB4ODMsMHg3YywweDA4LDB4YmYgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4MDAsMHgyZCwweDYwLDB4MDgsMHg5MCwweDAyLDB4YTksMHgwMCwweGIzLDB4MDUsMHgyMywweGMwLDB4MDgsMHhiMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDEwLDB4ODAsMHgwMCwweDBjLDB4YzEgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4MDgsMHgxYywweDgyLDB4MDYsMHgwMCwweDkzLDB4YzAsMHgyMCwweGY2LDB4MGEsMHgyMCwweDAyLDB4MDgsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4MjQsMHg2MCwweDA5LDB4M2MsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MmMsMHg2MCwweDA5LDB4MDEsMHgxMiwweDAwLDB4NDAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4YjAsMHgwMCwweGUwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MjAsMHg0MSwweDBhLDB4NDAsMHg4NiwweDgxLDB4MmQsMHhlMCwweDU4LDB4MTgsMHgwYSwweDE2LDB4YTAsMHg5NywweDgwLDB4MjUgfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4ZTksMHgxOSwweDc4LDB4ODIsMHhkNiwweDAwLDB4OTcsMHg4MCwweDI1LDB4YTAsMHgxOSwweGY4LDB4MDIsMHg1ZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4ODAsMHgyZCwweDYwLDB4MjgsMHg0OCwweDEyLDB4OTYsMHgwMCwweGI0LDB4ODAsMHgyMSwweGUwLDB4MjgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgzMCwweDNjLDB4YzIgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4MGUsMHgwMCwweDAyLDB4ODQsMHgwMCwweGUzLDB4NDAsMHgyOCwweGU4LDB4NGMsMHgyOSwweDAzLDB4MGMsMHgwMCwweGQzLDB4MDAgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4MzQsMHhjNCwweDBkLDB4MzEsMHgwMywweDhjLDB4MDgsMHhlMywweDAwLDB4M2MsMHg0NiwweDBjLDB4MjAsMHgwMywweDAwLDB4ODAgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4ZjIsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4NDAsMHgxOSwweGI4LDB4MDAsMHhmZiwweDEwLDB4MmYsMHhjMCwweDBmLDB4YzAsMHgyMywweGM0LDB4ODAsMHg3ZiwweDEwLDB4M2UgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4YzAsMHgwZiwweGIxLDB4MDMsMHhkYywweDAwLDB4ZTcsMHgwMCwweDNmLDB4ODAsMHgwNiwweGYxLDB4NDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4MDgsMHg3ZCwweDUwLDB4MGUsMHhlMSwweDIzLDB4YjQsMHgwOCwweGZlLDB4MTAsMHgzZiwweGM0LDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAyLDB4Y2MsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4MmMsMHhjMCwweDAzLDB4MDQsMHgwMSwweGNiLDB4MDAsMHgzMywweDYwLDB4MmMsMHg5MCwweDEzLDB4ZTgsMHgwMCwweDczLDB4MDAgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4YjIsMHhjMSwweDBmLDB4YTAsMHgwMywweGVjLDB4ODAsMHhmYiwweDI4LDB4M2UsMHg1NCwweDFmLDB4ZDAsMHgwMywweGZlLDB4MDIgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4YzksMHg4MCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4NDgsMHgxMSwweDgwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHg4MCwweDA4LDB4MjAsMHgwMiwweDE0LDB4MDgsMHg4NywweDAwLDB4MjkgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDIsMHg1YywweGEwLDB4OTcgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4MjAsMHgyZCwweDQ4LDB4MGIsMHg1MCwweDAyLDB4ZGMsMHgxMCwweDhkLDB4MDAsMHgyMSwweGM4LDB4MGIsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZiwweDAwLDB4ODUsMHg4MSwweDJjLDB4NjAgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4MTgsMHg1OCwweDAyLDB4ZGUsMHgyMCwweGI3LDB4ODIsMHgyOCwweDYwLDB4NWEsMHg3OCwweDUyLDB4ZGUsMHgxMCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4MjEsMHhlMCwweDRiLDB4NzgsMHgwNiwweGRlLDB4NDAsMHhiNywweGEwLDB4MmQsMHg2OSwweDliLDB4NzgsMHgxMiwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4ODcsMHg4MCwweGUxLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4NDgsMHgxNCwweGVlLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDhjLDB4MDgsMHg4MywweGYwLDB4NjggfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4NDAsMHgwYSwweDNlLDB4MDIsMHhjZCwweDQwLDB4YjMsMHgwMCwweDIwLDB4ZTAsMHgwYiwweDMyLDB4MDYsMHg0YywweDAwLDB4OWIgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4MDAsMHgwYywweDQwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHg4MCwweDgzLDB4MDgsMHgyMCwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZGEgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4Y2UsMHgwOCwweDNmLDB4YjAgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4MGMsMHhlNCwweDIzLDB4ZGEsMHgwMiwweGRlLDB4NDAsMHhiYiwweGIyLDB4MGUsMHhlMiwweDQzLDB4ZmEsMHgwMCwweGZlLDB4MDAgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MzMsMHg5MCwweDBiLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4M2UsMHg4MSwweDBiLDB4ZTAsMHgxMywweGY5LDB4MDggfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4Y2UsMHg0MCwweDMyLDB4ODAsMHgwZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MjQsMHg5OCwweDA4LDB4M2MsMHgwNCwweDBmLDB4MDAsMHgwYiwweDYwLDB4MDAsMHhmOCwweDQwLDB4MmUgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4MDMsMHgwZCwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDYsMHgwYiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZDggfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4MDAsMHgzYywweDAwLDB4MDMsMHg4YywweDIzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4OGMsMHg5MCwweDAzLDB4MjUsMHgwMCwweGU5LDB4ODAsMHgzMiwweDQ0LDB4MGYsMHg5NCwweDAyLDB4ZTQsMHgyMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4MzIsMHg3MCwweDBmLDB4OWEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4MTAsMHgzMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4ZjksMHgwMSwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDgyLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4ODIsMHg4MSwweGMwLDB4YTIgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4NzAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4MzEsMHg0MiwweGEyLDB4NjAsMHgwYiwweDk0LDB4ODIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4MDAsMHgyYSwweDQwLDB4MDgsMHg5NCwweGEyLDB4MjUsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4ODksMHg2NCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4MDgsMHg5MCwweDQyLDB4YTQsMHgwMCwweDg5LDB4NjAsMHgyMiwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTYsMHgwMCwweGI5LDB4ODAgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGE0LDB4MDQsMHhiOSwweDAwLDB4MjIsMHg0MCwweDI4LDB4OTAsMHgwMiwweDI0LDB4MDQgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDAwLDB4MmMsMHhjMSwweDQ4LDB4MTAsMHgwMiwweGE0LDB4MDIsMHg4MSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4NDAsMHg4MywweDM0LDB4MDIsMHhjNCwweDAwLDB4YmIsMHgwMCwweDIwLDB4ZDAsMHgwYiwweDE0LDB4MDIsMHhjNCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4MjAsMHhhMCwweDY4LDB4MTgsMHgxNCwweDFhLDB4MGQsMHgwMCwweGIxLDB4NDAsMHgyYywweDUwLDB4MGIsMHgxMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4OGMsMHg4MCwweDBiLDB4YTAsMHgwNCwweGU4LDB4MDAsMHgzMiwweDAwLDB4MDcsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4MzIsMHgwMCwweDFmLDB4ODAsMHgwMywweGExLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDYsMHhmZCwweDQwLDB4M2YsMHg1MCwweDIzLDB4ZDQsMHgxMywweDc0LDB4MDQsMHhmNSwweDAyLDB4M2YgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4NTAsMHgwZiwweGQ0LDB4MDMsMHhmZCwweDAwLDB4YmQsMHgwMCwweDJmLDB4NTAsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkNCwweDAzLDB4ZjUsMHgwOCwweGZkLDB4MDYsMHgzZSwweDUwLDB4MGYsMHhkMiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhlNiwweDQwLDB4ZWQsMHgwNCwweDNlLDB4NDggfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4MGMsMHhiMiwweDgzLDB4ZjQsMHgwMCwweGMxLDB4MDAsMHgzMiwweDQwLDB4OGMsMHhkMCwweDAzLDB4MzQsMHgwMCwweGZkLDB4MDAgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4MzcsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU2LDB4MjAsMHhmOSwweDg4LDB4M2QsMHg2MiwweDBjLDB4ZDgsMHgwMywweGZlLDB4MjQgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4YzEsMHgwMCwweDNlLDB4NzgsMHgwZiwweGQwLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHg4OCwweDQwLDB4MmUsMHgxMCwweDA4LDB4YzQsMHgyMywweGEwLDB4MDgsMHg4OCwweDA2LDB4MmEgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4MTQsMHgwOCwweDgwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMiwweDAwLDB4YjggfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4ODAsMHgyZSwweDAwLDB4MDgsMHg4YywweDAyLDB4ZTMsMHg4MCwweDg4LDB4MDIsMHgyZSwweDM4LDB4MGIsMHg4OCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDgwLDB4YTEsMHhjMCwweDJkLDB4NzAgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4MDgsMHg1MCwweDQyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweGUwLDB4MmEsMHgxMCwweDBhLDB4MDQsMHgxMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4MjQsMHg0MCwweDRiLDB4MTAsMHgwNiwweGM0LDB4MjAsMHhiMSwweDA4LDB4NmUsMHg0MCwweDBiLDB4MTYsMHg4MiwweGM0LDB4MjAgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NTAsMHgwYiwweDkyLDB4ODIsMHg1MiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhhOSwweDAxLDB4MmUsMHg0MCwweDI4LDB4ZDAsMHgyMCwweGE0LDB4MDQsMHhhOSwweDAwLDB4MmEgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4NDAsMHgxYSwweGIwLDB4MTIsMHgyNCwweDAwLDB4YjksMHgwYywweDIyLDB4NDIsMHgwYiwweDk0LDB4MDIsMHhlNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4MDAsMHg2ZSwweDQwLDB4MGIsMHg5NiwweDAyLDB4ZTQsMHgxMSwweDg5LDB4MjAsMHg2ZSwweDQwLDB4MGIsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweGMwLDB4YTksMHhjMCwweDNlLDB4NTAgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4MDgsMHg5YywweDgzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHhiMiwweDQwLDB4MmEsMHg5MiwweDEyLDB4MjYsMHg0MCwweGY5LDB4NDAgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4MzYsMHg3MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDQsMHhmOSwweDAxLDB4M2MsMHg0MCwweDBmLDB4OTgsMHgwMywweGU2LDB4MDIgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4YzksMHgyMiwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDIsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDQsMHhkOSwweDQwLDB4MWMsMHg0MCwweDBmLDB4OTIsMHgyMywweGE0LDB4YjAsMHhkYiwweDA0LDB4M2MgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4YzAsMHgwZCwweDlhLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDQsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4MDAsMHgzZSwweDQyLDB4MmMsMHg5MCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MiwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgyMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NGMsMHhjMCwweDhiLDB4MjAsMHgwMiwweGM4LDB4MzEsMHgzMiwweDIwLDB4MmQsMHg4NCwweDAzLDB4ZTEsMHgwNCwweGY4LDB4NDggfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4YmEsMHgwMCwweDBmLDB4ODksMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBkLDB4ODEsMHgxMywweDIwLDB4MTAgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwZiwweDgxLDB4MjMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHgwZSwweDQwLDB4MjIsMHg4MCwweDI4LDB4YTQsMHgwMiwweDE5LDB4MDAsMHg1MiwweDgwLDB4YTIgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4ODAsMHg0ZCwweGVkLDB4ODIsMHhlOCwweDAwLDB4YjYsMHg0MiwweDIzLDB4YmQsMHgwYiwweGU4LDB4MDIsMHhlOCwweDA0LDB4ZGEgfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4MDAsMHgzNywweDgwLDB4MDgsMHhlMCwweDAyLDB4M2EsMHgyMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhOCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHg4MCwweDYwLDB4YzAgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4MDgsMHgyOSwweDAyLDB4MGQsMHgwMCwweDkyLDB4NDAsMHgyNCwweGMwLDB4MDgsMHhiNCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4NjgsMHhlMCwweDFiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHg5MywweDAxLDB4MjQsMHhjMCwweDY5LDB4MzgsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4YjMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHg4MywweGMwLDB4MjAsMHg0MCwweDA4LDB4MjgsMHgwNiwweDljLDB4MTgsMHg5YywweDAyLDB4MjQgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4YzAsMHgwOSwweDcwLDB4MDIsMHhkNCwweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhjZSwweDQwLDB4OTcgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4YjAsMHgyNSwweDQwLDB4MDgsMHg3OCwweDFhLDB4NTgsMHgwMCwweGJmLDB4YTIsMHg2NSwweGM4LDB4MGIsMHg3OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwZSwweDAyLDB4ODcsMHg4MCwweGIxLDB4YTAgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4MGMsMHg2OCwweDAzLDB4MWEsMHgwOCwweGQ2LDB4OTIsMHgzNSwweGU0LDB4MjgsMHg3OCwweDQyLDB4ZDYsMHgxMCwweGY1LDB4ODAgfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4MzksMHhhMCwweDBmLDB4NzgsMHgyMywweGRlLDB4MzAsMHhkMywweGEyLDB4MzUsMHhhMCwweDRkLDB4ZTgsMHgwMywweDVlLDB4MDAgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4ZjcsMHhkMCwweDNkLDB4ZjgsMHgwZiwweGYwLDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmYiwweDA0LDB4M2UsMHgwMCwweDBiLDB4YTAsMHgwMywweDQ4LDB4MDQsMHhmYSwweDQxLDB4M2EgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4NTAsMHgwZiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlZCwweDg4LDB4ZmIgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4NGQsMHgzZSwweDAwLDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwOCwweGZiLDB4MjAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZGMsMHg4MCwweGIzLDB4ZTAgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4MGMsMHhkOCwweDAzLDB4Y2UsMHgwMCwweGM4LDB4YTAsMHgzMSwweGEwLDB4OGQsMHhlOSwweDAzLDB4YmUsMHgwMCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZTgsMHg0MywweDdlLDB4MDQsMHgwZiwweDgxLDB4MzEsMHhlNCwweDBjLDB4ZDgsMHgwMywweGY2LDB4MDAgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHgwMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhiNCwweDQwLDB4MzUsMHg0MCwweDA4LDB4NTAsMHg4MiwweGRlLDB4ODAsMHhkNCwweDkwLDB4MjEgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4ZTAsMHgwZCwweDUxLDB4MDIsMHhkNCwweDQwLDB4YjYsMHhiMCwweDJiLDB4OTAsMHgwZSwweGU1LDB4MDIsMHg5YywweDQwLDB4ZDcgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4MjIsMHgxOSwweDVjLDB4MGQsMHg3MCwweDAyLDB4ZDgsMHgwMCwweGI3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHhmMCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4OTMsMHgxMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZGMsMHhjMCwweDk0LDB4MDAsMHgyMywweGQwLDB4MDgsMHg3MCwweGEwLDB4ZDQsMHgyMCwweGI1LDB4MDIgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MjksMHg4MCwweDA5LDB4NjAsMHg4MiwweDBjLDB4MDAsMHg4NywweDAyLDB4MjUsMHhjMCwweDE5LDB4NDAsMHgwMiwweGQ0LDB4MDAgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4YjcsMHgwMCwweDZkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MjAsMHgxNCwweGVjLDB4MDAsMHhiMywweGMwLDB4MjAsMHgwMSwweDQ4LDB4MTgsMHgwMiwweGNjLDB4MDIsMHg4MSwweDQ0LDB4YTAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4YzAsMHg4OSwweDM4LDB4MDIsMHhjNywweDgwLDB4YjEsMHgwMCwweDJjLDB4MDksMHg0YSwweDAwLDB4NjIsMHhhYywweDA5LDB4OTMgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4MDEsMHgyOCwweDQwLDB4MTksMHgzMCwweDAyLDB4Y2QsMHgxMCwweGIzLDB4OTAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDIwLDB4ZGIsMHg2MiwweDIyLDB4ZTAgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4NmMsMHhhMCwweDAzLDB4ZTQsMHgwMCwweDk4LDB4MDAsMHgzMiwweGMwLDB4ZWMsMHg5OCwweDIzLDB4YWUsMHgwOCwweGZiLDB4MDggfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4M2EsMHg3OCwweDA5LDB4OTAsMHgwMywweDdjLDB4MTAsMHhjZiwweDAwLDB4MjYsMHg0MCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhmYiwweDQ4LDB4M2MsMHg2MSwweDBmLDB4YTAsMHg0MywweGVkLDB4MDAsMHhmOCwweDI0LDB4M2UgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4NTAsMHgwZiwweDkwLDB4ODMsMHhlNCwweDAwLDB4ZmIsMHgwMCwweDNhLDB4NTAsMHgwZiwweDgwLDB4NDMsMHhlYywweDA4LDB4ZmIgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg0MCwweDAzLDB4ZjAsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMxLDB4MGYsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGQsMHhhMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4MGMsMHhlMCwweDAxLDB4ZmMsMHgwMCwweGRjLDB4OTEsMHgzOSwweGMwLDB4M2MsMHg0MCwweDAzLDB4MzQsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZDAsMHgwNywweGZjLDB4MDAsMHhjYiwweDAwLDB4M2QsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM4LDB4MjAgfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4Y2YsMHgwMiwweDNkLDB4YzAsMHgwYywweGQwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHgwMSwweDQwLDB4MjIsMHgwMCwweDI4LDB4YTAsMHgwMiwweGNlLDB4ODYsMHg4MywweDY0LDB4MjIgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4ZjQsMHgwOCwweDhjLDB4MGYsMHg2NCwweDAwLDB4YmIsMHgxMCwweDJlLDB4NjAsMHgwYiwweDljLDB4MDMsMHhhYywweDAxLDB4ZGIgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4MDAsMHgzZSwweDYwLDB4MDgsMHg4ZiwweDAyLDB4MjMsMHg0MCwweDhiLDB4MDAsMHgzYSwweGMwLDB4MGQsMHgxMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OTksMHgwMCwweGEyLDB4YzAgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4YTYsMHgwNywweDk4LDB4MDAsMHgwMiwweGMyLDB4NDgsMHg4OCwweDAyLDB4MmMsMHgwMCwweGJhLDB4MDIgfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4NmUsMHg2MCwweDBhLDB4OTgsMHgwMiwweGVjLDB4MDAsMHg4YiwweDAxLDB4MmUsMHg2MCwweDA4LDB4OTAsMHgwMiwweDA1LDB4MDAgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIxLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MSwweDAwLDB4MjAsMHg0MCwweDI4LDB4MTAsMHgyNiwweGNjLDB4ODAsMHg4MCwweDIwLDB4YTAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4Y2MsMHgxOCwweDE0LDB4NDIsMHgwNCwweDAwLDB4YjIsMHgyMCwweDZjLDB4NDAsMHgwYiwweDAwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4MDAsMHgyOCwweDQwLDB4MjgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDksMHhiMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZDksMHgwMCwweDIyLDB4ODAgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YWMsMHg4MCwweGRhLDB4MjksMHgyYSwweGQyLDB4MjgsMHg4MCwweDAyLDB4MjQsMHgwMCwweGZiLDB4MjAgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4M2UsMHgwMCwweDBmLDB4OTAsMHgwMiwweGZjLDB4MDAsMHg4ZiwweDAwLDB4MmUsMHg0MCwweDBjLDB4ODAsMHgwYiwweDIwLDB4MDIgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4Y2YsMHgwMCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZDAsMHg2MywweGZjLDB4NDksMHhmNSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4YzAsMHgwYiwweGMwLDB4MDEsMHhmNCwweDAwLDB4N2YsMHg0MCwweDNmLDB4NDAsMHgxZiwweGQwLDB4MDMsMHhiYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMiwweDQwLDB4ZWMsMHhhMCwweDNmLDB4ZTAgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4MGQsMHg0OCwweDAzLDB4N2QsMHg4MCwweGY0LDB4ODAsMHgzMywweDZjLDB4MGUsMHhjOCwweDAzLDB4MzIsMHgwMCwweGRkLDB4OTAgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4M2IsMHhhMCwweDJkLDB4ZjAsMHgwMywweGZjLDB4YzAsMHhmZiwweDAwLDB4M2IsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MDQgfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4ZWMsMHg2MCwweDMxLDB4MDAsMHgwYywweGYwLDB4MDMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4ODAsMHgxMCwweGVjLDB4MDAsMHhkOSwweGMxLDB4MmUsMHhlMSwweDBkLDB4ODgsMHgwMiwweDNjLDB4ODAsMHhmOCwweDgwLDB4MzYgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4N2QsMHgxOCwweGEwLDB4MDIsMHgyOCwweGIwLDB4ZWEsMHgyMCwweDIyLDB4MjAsMHgwOCwweDc3LDB4MDIsMHhmZCwweDUwLDB4YmIgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ODAsMHgyMiwweDQwLDB4MGIsMHhmNCwweDQyLDB4M2QsMHg4MCwweDg4LDB4MzEsMHgyMiwweDEyLDB4MDgsMHhmNiwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4ODAsMHgxMSwweDJlLDB4YzEgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NGQsMHg4MCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MGEsMHgwMiwweDgyLDB4MDAsMHgwMCwweDk5LDB4MjAgfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4MjIsMHhjMCwweDA5LDB4MzAsMHg4MiwweGNjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhjYSwweDBiLDB4MzQsMHg4MiwweDBkLDB4MjAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4ODAsMHgwMCwweGEwLDB4OGMsMHgwOCwweDM0LDB4ODIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg5OSwweDgwLDB4MmUsMHhjMiwweDA5LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhhOSwweDgwLDB4MjYgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4NjAsMHgwOCwweDM4LDB4NDIsMHgyMiwweDIwLDB4YmEsMHg0MSwweDYyLDB4NDYsMHgzYiwweGIwLDB4MDIsMHhlYywweDAxLDB4YmIgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4ODAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDQ2LDB4MGMsMHgxOCwweDg4LDB4YzAsMHgyMiwweDIyLDB4MDgsMHhiMCwweDA2LDB4ZjAgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhjYywweDAwLDB4YzksMHg4MSwweDNjLDB4YzEgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4MGMsMHhhOSwweDIzLDB4NmMsMHgwMCwweGIyLDB4ODAsMHgzMiwweDc4LDB4MGEsMHg4YSwweDBiLDB4MjYsMHgwMCwweDk5LDB4MDEgfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MzAsMHhlMCwweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhiOSwweDAwLDB4M2EsMHhjMCwweDFlLDB4YjAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4Y2IsMHg4MCwweDMyLDB4NjEsMHgwYywweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhkZCwweDAwLDB4M2YsMHhjMiwweDBmLDB4ZTgsMHgwMywweGFjLDB4MDAsMHhmZSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4NDAsMHgwZiwweGMwLDB4NDMsMHhmOCwweDEwLDB4ZWYsMHgxNCwweGI3LDB4ZTAsMHgwYywweGYwLDB4MDMsMHhmYywweDAwLDB4ZjUgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4MDIsMHgzZiwweDQ0LDB4NGYsMHhiMCwweDRiLDB4ZmMsMHgwMiwweGQ0LDB4MDQsMHgzZCwweDQwLDB4MmYsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZjksMHgwOCwweDNlLDB4NjAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MGQsMHhhMCwweDAzLDB4YWMsMHgwMCwweGU4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHg4NCwweDAzLDB4YTUsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4M2EsMHhkOCwweDBmLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4Y2IsMHg0NCwweDNlLDB4ZDQsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDgsMHhiOSwweDgwLDB4MmUsMHhjMCwweDBhLDB4MzAsMHg0MiwweDNjLDB4MDAsMHg4OSwweDA0LDB4NzYgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4NjAsMHgwOCwweDkwLDB4NjIsMHgyMCwweDAwLDB4ODIsMHgwNCwweDIyLDB4ZDAsMHgwOCwweGYwLDB4NDMsMHg3YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4ODIsMHgyMiwweDQwLDB4MGIsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhhLDB4YzAsMHgyZSwweGMxLDB4MDgsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDEwLDB4YjIsMHhkMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MjksMHgxOCwweDAyLDB4OGMsMHgwNCwweGExLDB4MDAsMHgyNCwweDljLDB4MDgsMHgxMCwweDAyLDB4ODAsMHgwMCwweGExLDB4MDEgfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MGMsMHhjMSwweDJiLDB4MzAsMHg1MiwweDhjLDB4MDQsMHhiMywweDAxLDB4MjgsMHg0MCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4OTAsMHgyMCwweDJjLDB4MjAsMHgwYSwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MjAsMHg0MSwweDFlLDB4MDAsMHhiNywweGEyLDB4MjUsMHhlOCwweDhhLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NSwweDgwLDB4MjUgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4ODAsMHg4OCwweGU4LDB4MDIsMHgzZSwweDAwLDB4ODUsMHg4MCwweDJmLDB4ZTQsMHgyOCwweDc4LDB4MDIsMHhkZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4ODAsMHg2MSwweGUwLDB4MDMsMHg3OCwweDAyLDB4NWUsMHg4MiwweGI3LDB4ODIsMHgyZCwweGUwLDB4MDgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwZCwweDAwLDB4ZjAsMHgxMCwweDNjLDB4ODAgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4MGQsMHgxMCwweDgzLDB4OGMsMHgwMCwweGUyLDB4NTAsMHgyNiwweDA0LDB4MGMsMHgxMSwweDAzLDB4ODgsMHg0MCwweGViLDB4MDAgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4M2MsMHhjNCwweDBmLDB4MzAsMHgwMywweDhjLDB4MDAsMHhmMywweDA4LDB4MzgsMHg0MCwweDA3LDB4MzAsMHgwMywweDZlLDB4NDAgfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4ZDAsMHgwOCwweDNjLDB4ODgsMHgwZSwweDMwLDB4NDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmYiwweDM0LDB4M2MsMHhjOSwweDRlLDB4YjAsMHgyMywweGVkLDB4MjAsMHhmYiwweDA0LDB4M2YgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4NTMsMHg0YywweDAwLDB4ZWIsMHgxMCwweDMxLDB4YzUsMHgwZSwweGY0LDB4MDMsMHg2ZCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDBiLDB4YmMsMHgwMCwweGNkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDgzLDB4ZDAgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhjZSwweDA0LDB4YzksMHgwNCwweGIwLDB4YzEgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4MGYsMHg5OCwweDEzLDB4NmMsMHg5MCwweGNiLDB4MDIsMHgzZSwweGMwLDB4NGYsMHhiMCwweDYzLDB4ZTQsMHgwMCwweGYxLDB4ODAgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MTIsMHhjMCwweDBjLDB4YjUsMHgwMywweGVjLDB4YzAsMHhjZiwweDgzLDB4MzIsMHg0MCwweDBmLDB4YjMsMHgyMywweDJkLDB4YTQgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4ZmIsMHgwMCwweDNlLDB4MDAsMHgwZiwweGI0LDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjMCwweDJkLDB4NjAsMHgwMiwweDFjLDB4MDAsMHhkNywweDAwLDB4MzkgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkYywweDAwLDB4YjUsMHgwMCwweDIxLDB4YzAsMHgyYSwweDcwLDB4MTIsMHhjYywweDgwLDB4ODcgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MiwweDUyLDB4MWMsMHgwMCwweGI3LDB4MDAsMHgyZCwweDQxLDB4MGIsMHgzMiwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHhiZSwweDAwLDB4ODEsMHhjMCwweDIzLDB4MjAgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4MGIsMHhkOCwweDAyLDB4NWUsMHgwMCwweDA2LDB4YzAsMHgyZCwweGEwLDB4MGIsMHg3YywweDEyLDB4ZGUsMHgwOCwweGJmLDB4ODAgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4YTEsMHhlMiwweDJhLDB4N2EsMHgwMiwweGRlLDB4MDAsMHg5MywweDgwLDB4MjUsMHg2MCwweDBiLDB4NzgsMHgxZSwweDVlLDB4NTAgfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4YjcsMHg4MCwweDJkLDB4YTAsMHgwYiwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4NDgsMHgxNCwweGNlLDB4MDAsMHg4MywweDYwLDB4MjAsMHhjMCwweDA5LDB4MzEsMHgwMiwweDJjLDB4MDAsMHg5MywweDAwLDB4MjggfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4YzAsMHgxYiwweGIwLDB4MDYsMHhjYywweDgwLDB4YjMsMHg0OCwweDIwLDB4ZjAsMHgwYSwweDMwLDB4MDIsMHhlYywweDAwLDB4OTMgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4ODAsMHgyNCwweGMwLDB4MGIsMHhiMCwweDAyLDB4NGMsMHgxMCwweGIzLDB4YzgsMHgyYywweGQyLDB4OGIsMHgzMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDAwLDB4YzYsMHhjNCwweDMxLDB4ODEgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4NjgsMHgwMCwweGNlLDB4ODAsMHgzZiwweGEyLDB4MGIsMHhlOCwweDAzLDB4ZjksMHgwMCwweGZlLDB4NDAgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4MzEsMHg4MCwweDZlLDB4YTAsMHgwNywweGU4LDB4MDAsMHhkYSwweDAwLDB4MjYsMHg4MSwweDBmLDB4YTAsMHgwMiwweDY4LDB4MDEgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4ZjYsMHhlMCwweDNkLDB4OTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4YzIsMHhmOCwweDA0LDB4M2UsMHgxNCwweDBmLDB4ODAsMHgxMywweGUwLDB4MTAsMHhmOCwweDAxLDB4M2UgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MTAsMHgwZiwweDgwLDB4NDMsMHhlMCwweDAwLDB4YjgsMHgwMCwweDNlLDB4MDAsMHg0NywweDgwLDB4MDMsMHhlMCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDA3LDB4YTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGYsMHg4MCwweDBiLDB4ZDIgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMSwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4OGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzNiwweDQyLDB4MGYsMHg5MCwweDAzLDB4YTQsMHgwMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwYiwweDY0LDB4MDAgfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4ZjksMHg5MCwweDMyLDB4NDEsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweGM4LDB4YTIsMHg2MCwweDBhLDB4OTIsMHgwMiwweGU0LDB4MDAsMHg4OSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4NTgsMHgwYiwweDkwLDB4MDIsMHgwNCwweDAwLDB4ZDksMHgwMCwweDJlLDB4NDIsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4ODkgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDA2LDB4MjQsMHgwNCwweGI5LDB4MDgsMHgyYSwweDQwLDB4NDgsMHg5MCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHgxMCwweDIyLDB4NDQgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQ1LDB4OGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MmEsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MDAsMHg5OSwweDgwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgyNiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4YjksMHgwMSwweDIyLDB4NzAsMHgwOSwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDgsMHhiMSwweDIwLDB4MjAsMHg0MCwweDBhLDB4MTAsMHgwMiwweGM0LDB4ODAsMHg4MywweDAwLDB4MmMgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4NTAsMHg0YiwweDEwLDB4MDIsMHgyNCwweDAwLDB4OTEsMHgwMCwweDJlLDB4NDAsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4YTIsMHg2YywweDQwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweGI5LDB4MjAsMHgyYSwweDQ4LDB4MjksMHgxMiwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZTEsMHg0MiwweGM4LDB4MDAsMHgzMiwweDAwLDB4MWYsMHg4NSwweDAzLDB4YTEsMHg0MCwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4M2EsMHgwMCwweDhkLDB4ODUsMHgwMywweDYxLDB4NDAsMHhkOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4MDUsMHgwMywweDIxLDB4NDAgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwZCwweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDQsMHhmZCwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGM0LDB4NDAsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4NTEsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgwMSwweDNkLDB4NDAsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZmQgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4MTAsMHgzZiwweDRhLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZiwweDQ0LDB4MGUsMHg5MSwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4MDIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhjNSwweDAwLDB4Y2QsMHgwMCwweDMxLDB4NDAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4MGQsMHhkMCwweDQzLDB4ZTQsMHgwMCwweGNkLDB4MDAsMHgzMywweDQwLDB4NGYsMHgxMSwweDAyLDB4ZTQsMHgwNCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4M2QsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlZCwweGE0LDB4MzIsMHg1MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDgsMHhkOCwweDAwLDB4MzIsMHgwMSwweDAwLDB4ODAsMHgxMiwweGMwLDB4MDAsMHg0OCwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4ODAsMHgwYiwweDhhLDB4MDIsMHhlMCwweDAwLDB4YTgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MDIsMHhlMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4NTAsMHgzNCwweDI4LDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MGIsMHg4MCwweDAyLDB4Y2UgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDksMHgxOCwweDAyLDB4YzQsMHgwOCwweDIxLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDEgfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MmUsMHg0MCwweDE4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDAxLDB4MjAsMHg0OCwweDFiLDB4MTAsMHgwMiwweGM0LDB4MDAgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4YjEsMHgwMCwweDZjLDB4NDAsMHgwYiwweDEwLDB4MTIsMHhjMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHg5OSwweDgwLDB4YTIsMHg0MiwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDJhLDB4MjYgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4NDQsMHgwYiwweDkwLDB4ODIsMHhjNCwweDgxLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDIsMHhjNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDEsMHgyZSwweDQxLDB4MGIsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNSwweDIwLDB4YzksMHg4NCwweDMwLDB4NzAgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4MGQsMHg5MCwweDEzLDB4ZTQsMHgwMiwweGU5LDB4MDAsMHgzMiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAgfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4M2MsMHg0OCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgwMSwweGU0LDB4MDAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4ZjksMHg5MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MjYsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDAsMHhmMSwweDA0LDB4M2EsMHg0NCwweDhmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhjOSwweDA0LDB4M2UgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4NjAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZTksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDA3LDB4Y2EgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMSwweDAwLDB4YzgsMHgwNCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4MWUsMHg4MCwweDAzLDB4ODAsMHgwMywweGM4LDB4NDAsMHgyYSwweDA0LDB4MWYsMHg4MCwweDAzLDB4MjAsMHgwMCwweDg4LDB4MDAgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4MzIsMHgzMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4YzgsMHg4MCwweDNlLDB4MjAsMHgwZiwweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhhZSwweGQwLDB4MzcsMHg4MCwweDA4LDB4ZWMsMHg0NiwweDM4LDB4MDAsMHhkNiwweDA0LDB4MjMgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4YTAsMHgwYiwweGEwLDB4NDEsMHg3OCwweDA0LDB4ZmEsMHgwMCwweDM3LDB4ODAsMHgwZCwweGEwLDB4MDIsMHhhOCwweDEwLDB4ZWUgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4MjEsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4ZTgsMHgwOCwweDhlLDB4ODAsMHgyZiwweGEwLDB4OGIsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDEsMHg0YywweDAyLDB4ODMsMHhjMCwweGE4LDB4ZTggfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4NGEsMHgzNiwweDAyLDB4OGMsMHgwMCwweDEzLDB4YTAsMHgyOCwweGMyLDB4MGIsMHgzMCwweDA2LDB4MGMsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4MjQsMHg4NCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAsMHhiMywweDIwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4ODMsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYSwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4NDQsMHhhZiwweDQwLDB4MjUsMHhjMiwweDQ4LDB4ZjgsMHg4MiwweDFjLDB4YzgsMHg5ZiwweDA4LDB4MjEgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4YzAsMHg4YiwweGY4LDB4MDIsMHg1YywweDAwLDB4YmYsMHhiMCwweDI3LDB4ODAsMHgwOSwweDNhLDB4MDIsMHg5YywweDAwLDB4YTUgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4MDIsMHgyZCwweGU4LDB4MDksMHg3MCwweDAyLDB4Y2UsMHg4MCwweDg1LDB4MDgsMHgyZCwweGMyLDB4MGIsMHg3MywweDAyLDB4ZTggfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MiwweGE5LDB4ZTAgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MGEsMHg3OCwweDAyLDB4OWUsMHg0MCwweDk3LDB4ODQsMHgzOSwweGEwLDB4MGIsMHg3YSwweDgzLDB4M2YsMHg4MCwweGQ3LDB4OTEgfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4MzUsMHhhMCwweDBkLDB4N2EsMHgwOSwweDFlLDB4NDQsMHhmNywweDgwLDB4M2QsMHhlOCwweDJkLDB4N2EsMHgwMywweGRlLDB4ODIgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4YzYsMHg4MCwweDNkLDB4MjAsMHg0YiwweDdiLDB4MjMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhkMywweDAwLDB4M2UsMHhjMSwweDBmLDB4MzAsMHgwMywweGVkLDB4ODAsMHhlMywweDAwLDB4M2UgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4ODAsMHgwZiwweGI2LDB4MjEsMHhlYywweDA4LDB4ZGIsMHgyMSwweDNlLDB4ODAsMHgwZiwweGI1LDB4MDMsMHg2YywweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4MDAsMHgzZSwweGRjLDB4MGUsMHhiMiwweDAzLDB4ZWQsMHg0MCwweGY5LDB4MDIsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4Y2YsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4MGYsMHhjOCwweDQzLDB4ZmUsMHgwMCwweGZlLDB4ODQsMHgzZiwweGUwLDB4MGQsMHhmOCwweGMzLDB4ZmYsMHgxMCwweGFmLDB4OTAgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4ZmMsMHgwMywweDNlLDB4MTQsMHhlYywweDg0LDB4M2YsMHhmMCwweDBlLDB4ZmMsMHhjMywweGZmLDB4MDggfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4NGYsMHg4MCwweDMzLDB4ZTQsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHhkNywweGEyLDB4MmQsMHhjNCwweDBjLDB4NDEsMHhjMiwweGRjLDB4MDAsMHg3NCwweDAwLDB4MjUgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4ODAsMHgwZiwweDcyLDB4NDIsMHhkYywweDkwLDB4ZDcsMHgzOCwweDJkLDB4OTgsMHgwYSwweDcwLDB4MDIsMHgxYywweDA0LDB4ODYgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHg3MCwweDAyLDB4Y2MsMHgwMCwweDg2LDB4MDgsMHgzNywweGM2LDB4MjgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4ODcsMHg2MCwweDJkLDB4YzIgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4MGEsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGI2LDB4MTAsMHgyNSwweGMyLDB4MDksMHg3MCwweDg2LDB4ZGMsMHgzMCwweDk3LDB4MDAgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4MzAsMHgwMiwweDVjLDB4MDAsMHg4NywweDA4LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGNjLDB4NDAgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4ODYsMHgwMCwweDIxLDB4MDAsMHgwOSwweDcwLDB4MGEsMHgwMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MjAsMHgxNCwweGVkLDB4ODAsMHg5MywweDAwLDB4MGMsMHhlMSwweDI4LDB4MTgsMHgwMiwweGNjLDB4MDgsMHhhMCwweDAwLDB4MjQgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4MTIsMHgxYSwweDM0LDB4MDIsMHhjZiwweDA0LDB4OTMsMHg0MCwweDJjLDB4ODAsMHgwYSwweGIwLDB4MjIsMHg0YywweDAyLDB4ODEgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4ODAsMHgyOCwweGUwLDB4MjgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDg4LDB4ODIsMHgyNCwweDIwLDB4MDgsMHhiMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZiwweDIwLDB4YzksMHhlMCwweDJjLDB4ZjEgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4MGUsMHhiZCwweDAzLDB4ZmMsMHgwMCwweGI5LDB4NDAsMHgzNiwweDQwLDB4MDksMHhmNSwweDAyLDB4ZmQsMHg0MCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4MzYsMHhhMiwweDA4LDB4ZjAsMHgwYiwweDdjLDB4MDAsMHhlYiwweDgwLDB4MmYsMHhlMCwweDBhLDB4ZjAsMHg0MywweGZjLDB4MDIgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4OGIsMHhkMCwweDMyLDB4ZjAsMHgwZCwweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MTAsMHhmYiwweDAwLDB4M2UsMHhjOCwweDBmLDB4OTQsMHgxMywweGVjLDB4MDAsMHhmOSwweDQwLDB4MzYgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4NDAsMHgxZiwweGIwLDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMSwweDNlLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgzZSwweGM0LDB4MGYsMHhiMCwweDAxLDB4ZWMsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4MGMsMHhlMCwweDA3LDB4ZmMsMHgwMCwweGZjLDB4MGEsMHgyNywweDAwLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDggfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4MzMsMHg4MCwweDBjLDB4ZjAsMHgwMCwweDJjLDB4MDAsMHg1ZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMSwweGZjLDB4MDAgfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4ZmUsMHgwMCwweDIzLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDg2LDB4MmUsMHhlMCwweDQ4LDB4OGYsMHgwMiwweGVjLDB4MDgsMHhiOCwweGEwLDB4MzYgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4MzAsMHg0YiwweGIwLDB4MDMsMHhhYywweDBjLDB4OWIsMHgwMiwweDNjLDB4YTAsMHgwYywweGIwLDB4NDMsMHg2YywweDAwLDB4YjEgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MGQsMHhiMCwweDEyLDB4ZWMsMHgxMCwweGI5LDB4ODAsMHhhMiwweDYxLDB4MGIsMHhiMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OWIsMHg4OCwweDJlLDB4ZTAgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4ZWMsMHgwMSwweGJiLDB4ODAsMHgyNiwweDYyLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGIzLDB4MDEgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4MmEsMHgyMSwweDA4LDB4YjAsMHgxMiwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MTQgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4YjksMHg4NCwweDIyLDB4YTIsMHgwYiwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg5MywweDAwLDB4MmMsMHhlMCwweDA4LDB4MDAsMHgwMiwweGNjLDB4MDksMHg5MSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4NDAsMHgwYiwweDMwLDB4MDYsMHg0YywweDA0LDB4MTMsMHgwMCwweDI2LDB4MDAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA0LDB4YjIgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4MDAsMHgyYSwweGMwLDB4MDEsMHgzMCwweDAwLDB4Y2QsMHgwMCwweGIwLDB4MDAsMHgyMCwweDgwLDB4MGIsMHgzMCwweDBhLDB4MDIgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgyNCwweDZlLDB4YzAgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4MmMsMHhhMCwweDAyLDB4ZmMsMHgwMCwweGJhLDB4MDQsMHgyNiwweDQwLDB4NGYsMHhmMCwweDU3LDB4ZmMsMHgwMCwweDNmLDB4MDEgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4M2EsMHgwMCwweDJjLDB4ZjAsMHgwMSwweDNjLDB4MDAsMHhkYiwweDAwLDB4MzMsMHhjMCwweDg0LDB4ZjAsMHgwMywweGZkLDB4MDggfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4MDAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4YTAsMHgxOSwweGRjLDB4MDAsMHhlYSwweDQwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGZjLDB4MDQsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4NDAsMHgwZiwweGYwLDB4MDMsMHg5YywweDAwLDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZSwweGYwLDB4MDMsMHg3YywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4NCwweGY0LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDEsMHhmMCwweDgwLDB4ZmYsMHgwMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4MGYsMHhjMiwweDAzLDB4M2UsMHgwMCwweGRmLDB4YzAsMHgzZSwweGMwLDB4NGQsMHhkYiwweDAyLDB4YjAsMHhjMCwweGRjLDB4MzAgfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZGIsMHgyMywweGY2LDB4MjAsMHhmZiwweDI2LDB4MzMsMHhlMCwweDBmLDB4NTIsMHgwMywweDVlLDB4MDAgfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4ZmYsMHg4MCwweDMzLDB4YzAsMHg0YywweDQ5LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4ODAsMHgxMCwweGUxLDB4ZTAsMHhiNywweDA4LDB4MjMsMHhmMCwweDBiLDB4YWQsMHgwYSwweDJlLDB4MDAsMHg5YSwweDA0LDB4MmUgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4YjAsMHgwOSwweDhmLDB4MDMsMHhhMCwweDQwLDB4YjksMHgzMCwweDJlLDB4YTAsMHgwYiwweDlmLDB4MDMsMHhhNywweDAwLDB4YmIgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4ODAsMHgyNiwweGUwLDB4MGIsMHhkZCwweDAyLDB4MmUsMHgwMCwweGJiLDB4ODAsMHgyMiwweGY0LDB4MGEsMHg5MiwweDAyLDB4YTAgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDgwLDB4YjMsMHgxMCwweDI0LDB4YzAgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4MGIsMHg4MCwweDAyLDB4YWMsMHgwMCwweGEzLDB4MjQsMHgyYywweGQwLDB4MDgsMHgxMCwweDA2LDB4YzAsMHg4MCwweGIyLDB4MDEgfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MmMsMHhlYSwweDRiLDB4MDAsMHgxMiwweGMyLDB4MDQsMHhiMywweDEwLDB4MDgsMHhjMCwweDBhLDB4OTAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4OTMsMHgwNCwweDI0LDB4YzAsMHgwOSwweDgyLDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4YzAsMHgxNSwweGE1LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4ODAsMHgwMiwweGFjLDB4MDgsMHhiYiwweDE4LDB4MmUgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4ZTAsMHgxOCwweDg4LDB4MDIsMHhlYywweDAxLDB4YmEsMHgwMCwweDJlLDB4ODAsMHgwYiwweDk4LDB4ODYsMHhlMiwweDAwLDB4YmIgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4MDAsMHgyMiwweGM0LDB4MGIsMHg5MCwweDAyLDB4NmMsMHgwMCwweGJiLDB4MDAsMHhhNiwweGMwLDB4MGIsMHg5MCwweDAwLDB4YjAgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNywweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4MGYsMHhhOCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweDYwLDB4MGQsMHg5ZSwweDAzLDB4ZWMsMHgwMCwweGQ4LDB4NDAgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4ODgsMHg0MywweGUyLDB4MDAsMHhmYiwweDIwLDB4MzIsMHhjMCwweDBmLDB4MTAsMHgwYiwweDZmLDB4OTAgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4NWIsMHg4MiwweDM2LDB4YzAsMHgyZCwweDA4LDB4MDEsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4ZTAsMHgwMSwweGI3LDB4MDgsMHhmNywweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjksMHgwMywweDdjLDB4MDgsMHhjZiwweDgyLDB4M2MgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MDAsMHhhZiwweGQwLDB4MjEsMHhiYywweDA4LDB4ZmQsMHgxMCwweDNmLDB4ODAsMHg4ZiwweGMwLDB4MDMsMHhhNCwweDAwLDB4ZjcgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4MDEsMHhiZiwweGMwLDB4MDcsMHhkMCwweDAzLDB4YmQsMHgzMCwweGZmLDB4YTQsMHgzOCwweGMwLDB4MGUsMHhkYSwweDAzLDB4ZjggfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhOCwweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzEgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4MGUsMHg4MSwweDAzLDB4ZWMsMHg0MCwweGZiLDB4NDQsMHgzYSwweGMxLDB4MGUsMHg5NSwweDAzLDB4ZTAsMHgwMCwweGNiLDB4NDEgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MzIsMHg0ZCwweDBmLDB4ODEsMHgwMywweGUwLDB4MjAsMHhjOSwweDAwLDB4NzIsMHhlOCwweDQ0LDB4OTEsMHgwMywweDZkLDB4MDAgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4Y2IsMHgwMiwweDNlLDB4YzAsMHgwYywweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4YzgsMHgwNSwweDI0LDB4MDAsMHhiZiwweDAwLDB4MzMsMHhjNCwweDA4LDB4MWQsMHgwMywweDhjLDB4MDAsMHhiYiwweDk4LDB4MzYgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4NDgsMHg0ZCwweDk4LDB4MjIsMHhlZCwweDQwLDB4ZGIsMHgwMCwweDM2LDB4YjAsMHgwYiwweDk4LDB4MDIsMHhlMywweDAwLDB4ZGIgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4MDAsMHgzMiwweGUwLDB4ODgsMHhkOCwweDAyLDB4MmMsMHgwMiwweGMzLDB4ODAsMHgyZiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NzIgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDEsMHg0NCwweDAwLDB4YjMsMHgwMCwweDIwLDB4ZjAgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4MTgsMHgwOCwweDAyLDB4NGYsMHg4NCwweGIxLDB4YzAsMHgyNCwweGMwLDB4ODksMHgwNiwweDAyLDB4YzQsMHgwMCwweDkxLDB4MDAgfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MjAsMHhmMCwweDFiLDB4MTgsMHg4MiwweGM2LDB4MDAsMHg5MywweDAwLDB4MmMsMHhkMSwweDA4LDB4MWUsMHgwMiwweDBlLDB4NDQgfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4OTMsMHg5NCwweDJjLDB4YzAsMHgwOCwweDIwLDB4MDIsMHhiOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MjAsMHhlMiwweDA4LDB4NjgsMHgwNiwweDllLDB4ODAsMHhiZiwweDg0LDB4MjUgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4YTgsMHgwOSwweDY4LDB4MDIsMHhjNiwweDAwLDB4OTMsMHhhMCwweDY1LDB4ZTQsMHgwYiwweDc4LDB4MTIsMHhkZSwweDAwLDB4OTMgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4MDAsMHhhMSwweGUwLDB4MDgsMHhkOCwweDAyLDB4MWUsMHhkMCwweGE3LDB4ODAsMHgyZCwweGUwLDB4MDgsMHhmOCwweDAyLDB4NDggfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YjMsMHgyMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4MGEsMHgyMiwweDAyLDB4Y2UsMHg0MCwweGYzLDB4YTAsMHgzYywweGU4LDB4MGIsMHgzMCwweDAyLDB4YzEsMHgwMCwweGQwLDB4YzEgfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4MzAsMHhjMCwweDBiLDB4MjEsMHgxMywweGNjLDB4MjEsMHhkMywweDAwLDB4MmMsMHhjMCwweDJjLDB4MTAsMHgwYiwweDBjLDB4ODAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4ZDMsMHg2MSwweDNjLDB4YzgsMHgyYywweDIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDQwLDB4M2IsMHhjMCwweDBmLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmNywweDUwLDB4N2YgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4YzQsMHgyZSwweGYwLDB4MDMsMHhmYywweDQwLDB4ZmUsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4NDcsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4MDAsMHg3ZCwweGMyLDB4MGYsMHhkMCwweDAxLDB4YmMsMHg4MCwweDVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4MDIsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlNCwweDAwLDB4ZmIsMHhjMCwweDMyLDB4YzggfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4MGUsMHhlMCwweDAzLDB4YWMsMHhhMCwweGViLDB4MjAsMHgzMiwweDQwLDB4OGMsMHhhMCwweDEzLDB4MmMsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4M2UsMHg2MCwweDBjLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYSwweDgwLDB4MzAsMHhjMCwweDNjLDB4OTIsMHgwMywweGVmLDB4NjAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4YzMsMHgyMCwweDMxLDB4YzQsMHgwYywweGEwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHgzMywweDIwLDB4MjEsMHhkYSwweDBiLDB4NzAsMHg0MywweDljLDB4MDEsMHhiNSwweDAwLDB4MjEgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4MDAsMHgwYSwweGUwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJmLDB4YzAsMHgwZCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjYgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4MDAsMHgzMSwweGM4LDB4MDgsMHg1NywweDAyLDB4ZGMsMHgwMCwweDg3LDB4NTAsMHgyMSwweGMwLDB4MGEsMHg3MCwweDQyLDB4OTIgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5YSwweDExLDB4YjcsMHg5MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4MGIsMHg2OCwweDgyLDB4ZGUsMHgwOCwweGE3LDB4ODAsMHgyNCwweDYwLDB4MDgsMHg3MCwweDEyLDB4MTIsMHgwOCwweDk1LDB4ODAgfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MmQsMHg2MCwweDA5LDB4NmMsMHgwMiwweGRlLDB4MDAsMHhiMSwweDgwLDB4MjMsMHhlMCwweDBhLDB4NTgsMHg2MiwweGZlLDB4MDAgfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4OTcsMHhhMCwweDIxLDB4ZTgsMHgwOSwweGU4LDB4MDIsMHgzMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4NDgsMHgxNCwweGNkLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDhiLDB4M2MsMHgwMiwweDhjLDB4MDAsMHhiYiwweDAwLDB4MjQgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4YzQsMHgxYSwweDNkLDB4MDIsMHgyZiwweDg4LDB4YjMsMHg0OCwweDJjLDB4ZTAsMHg4OSwweDNlLDB4MDIsMHg4ZCwweDgwLDB4OTMgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4ZDksMHhhNCwweDQwLDB4ODgsMHgxMCwweDAyLDB4Y2MsMHgwNCwweDkzLDB4YzgsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZmEsMHgwMCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4ODAsMHgzNywweGEwLDB4MGMsMHhlOCwweDEzLDB4M2IsMHgwOCwweGRlLDB4MDEgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4M2YsMHg4MiwweDBjLDB4ZTAsMHg0MywweGZhLDB4ODAsMHhmZSwweDgwLDB4MzEsMHgyOCwweDBjLDB4YTAsMHgwMywweGYwLDB4MDIgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4YzQsMHhjMCwweGIyLDB4ODAsMHgwZCwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgxMCwweDBiLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCwweDMwLDB4M2EgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MDAsMHg2ZCwweDgwLDB4ODMsMHhlMSwweDQ0LDB4YjgsMHgwNCwweDNlLDB4MTAsMHgwZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4NGYsMHgwNCwweDAzLDB4ZTMsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4YzksMHgwMCwweDM4LDB4NDAgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4MGYsMHgxYSwweDAzLDB4MmUsMHgwMCwweGZiLDB4YTAsMHgzNiwweDYwLDB4MGMsMHg5OCwweDAzLDB4ZTYsMHgwNCwweGQxLDB4MDAgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4MzYsMHg0OCwweDBlLDB4OTEsMHgwMiwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTksMHgwMywweDYyLDB4NDAgfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4ZjgsMHgwMCwweGEwLDB4NjgsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDIsMHg4OSwweDA0LDB4MmUsMHg2NCwweDg4LDB4OTQsMHgwMiwweGE1LDB4MDAsMHhiOSwweDgwLDB4MjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4NjQsMHgwZCwweDljLDB4MDIsMHhlNiwweDQyLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4NDAsMHgzYSwweDUwLDB4MDgsMHg5YywweDAyLDB4MjcsMHgyMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4MGEsMHg5MCwweDgyLDB4MjUsMHg0YywweGI5LDB4MDAsMHgwMiwweDQwLDB4MDgsMHg5NiwweDAyLDB4ZTQsMHgxMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4MjYsMHg1MCwweDEzLDB4OTQsMHgwMiwweGU0LDB4NDAsMHhiOSwweDA4LDB4MmUsMHg0MCwweDA4LDB4OTAsMHg4YSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4YjksMHgwMSwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDQwLDB4MmMsMHhjOCwweDA4LDB4MTAsMHgwNiwweDg0LDB4MDAsMHhiMSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4NDksMHgwOSwweDE0LDB4NDIsMHhjYywweDg5LDB4ODEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4NDYsMHhjNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4MDAsMHgyYSwweGMwLDB4MjgsMHgxNCwweDAyLDB4MDEsMHgwMSwweGIwLDB4MDQsMHgyOCwweDQwLDB4MzgsMHg5NCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ODgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4MGUsMHg4MCwweDIzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDEyLDB4ZTEsMHg0MCwweGQ4LDB4NTAgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4MzYsMHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4ODAsMHg1MywweDYwLDB4MDQgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4NDAsMHhmOSwweDQ0LDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2YgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4NDQsMHgwZiwweGQ0LDB4NTMsMHhmNCwweDQ0LDB4ZmQsMHgxMCwweDJmLDB4NDAsMHgwZiwweGY0LDB4MDMsMHhmZCwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4NDAsMHgzYiwweDEwLDB4MGYsMHhkNCwweDIzLDB4ZDEsMHgwNCwweDdjLDB4NDMsMHgzNiwweDUwLDB4MGYsMHg1MCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhhNiwweDAwLDB4ZjksMHgxMCwweDJlLDB4NjIgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4MGYsMHhkMiwweDgzLDB4ZTQsMHgwMCwweGJkLDB4NDIsMHgzZSwweDYxLDB4MGYsMHhkMCwweDAzLDB4ZjYsMHhjMCwweGM5LDB4YTIgfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4MmIsMHg0MCwweDBjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhmOSwweDgxLDB4M2UsMHg2OCwweDA4LDB4YzEsMHg0MywweGZhLDB4MDAgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4ZjUsMHg4MCwweDNmLDB4NjIsMHgwYywweDE0LDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MjAsMHg4OCwweDExLDB4MmUsMHgxMCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDgyLDB4MmUgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4MTAsMHgwYiwweDgwLDB4MDAsMHhlMywweGM0LDB4ODgsMHhmMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHgyMCwweDAwLDB4ZTggfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4NDAsMHgyZiwweDE0LDB4MDgsMHg4OCwweDAyLDB4ZTIsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4OCwweDAyLDB4OGUgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDQsMHhjNSwweDAwLDB4YTEsMHgwMCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxOCwweGIxLDB4MjIsMHg2YywweGQxLDB4MGIsMHgxMCwweDI2LDB4YzQsMHgwMCwweDgxLDB4MDggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MmEsMHg0MCwweDg4LDB4MTAsMHgwMiwweDA0LDB4MDQsMHhiNSwweGMwLDB4MGYsMHg0MCwweDBiLDB4MDIsMHgwMiwweDQxLDB4YTAgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4YjEsMHg0MCwweDJjLDB4NDAsMHgwOCwweDEyLDB4MDIsMHgwMiwweDExLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA2LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU0LDB4MDAsMHhiOSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4NDAsMHgwYiwweGIwLDB4ODIsMHhjNCwweDAyLDB4ODksMHg0NCwweDIyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTkgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4MDAsMHgyNywweDQ4LDB4MDksMHhiMCwweDEyLDB4ZWMsMHgxOCwweGI5LDB4MDEsMHgyZSwweDQwLDB4NDAsMHg5MCwweDAyLDB4ODYgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDg0LDB4ZTksMHgwMSwweDNlLDB4NDAgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDcyLDB4MGYsMHg5MCwweDAzLDB4ZTcsMHg2MCwweDg5LDB4MTAgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmOSwweDQ0LDB4M2MsMHg0MCwweDJkLDB4OTAsMHgwMywweGU3LDB4NjAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4ZjksMHg3MSwweDNlLDB4NDAsMHgyOCwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4NDgsMHhhOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4OWEsMHg0MywweGVjLDB4MDAsMHhmOSwweDIwLDB4N2UgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4YzgsMHgwZiwweDlhLDB4MDcsMHg2NiwweDAwLDB4NzksMHg4MCwweDdlLDB4NDAsMHgwZiwweDFjLDB4MDMsMHhlNywweDAwLDB4ZTkgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4YTAsMHgzZSwweDQwLDB4NDYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHg4MCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4YTAsMHgwOCwweGU4LDB4NDAsMHgzYSwweDEwLDB4MGMsMHg4MywweDAzLDB4YTEsMHhjMCwweGYwLDB4NDAgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4M2UsMHgwNiwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhmOCwweDAwLDB4M2IsMHgwMCwweDBmLDB4ODEsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4ZjgsMHgxMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHhiYSwweDAwLDB4MmUsMHhiMCwweDBiLDB4ZTgsMHgwMiwweGU5LDB4MDAsMHgzZSwweDkwLDB4MDIgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4ODEsMHgwOCwweGU0LDB4MTIsMHg3OCwweDAwLDB4YmEsMHgwMCwweDJkLDB4YjAsMHg4OSwweGU4LDB4MjIsMHhmOCwweDBjLDB4YmEgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4MDAsMHg2ZSwweDgwLDB4MDMsMHhjNSwweDAzLDB4MzAsMHgwMCwweGJhLDB4MDAsMHgyMiwweGE4LDB4MDgsMHhhMCwweDIyLDB4OGEgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4YjMsMHgwMCwweDI4LDB4ZTggfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4MWIsMHgzMSwweDEyLDB4OGMsMHhjNCwweGEzLDB4OTIsMHgyYywweDQwLDB4ODgsMHgzNCwweDA2LDB4OGUsMHgwMCwweDkzLDB4MDAgfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MmMsMHhmMCwweDE5LDB4MzEsMHhhMiwweGNjLDB4MDQsMHhiMywweDAwLDB4MjgsMHg4MCwweDAxLDB4MzgsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4YjMsMHg4MCwweDIwLDB4ZTAsMHgwYSwweGIwLDB4MTIsMHgwMiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDE0LDB4MmQsMHg0MiwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDgxLDB4MjcgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4ZTAsMHgxOCwweDYwLDB4MDIsMHg1OCwweDE4LDB4YjcsMHgyMiwweDJkLDB4ODAsMHgwOSwweDcwLDB4MjIsMHhkYywweDAwLDB4YjcgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4MDAsMHgyZCwweDgwLDB4MGIsMHgzYiwweDAyLDB4MWQsMHhkMCwweGJmLDB4ODAsMHgyOCwweGMwLDB4OGEsMHhmMiwweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDgwLDB4ZjcsMHhhMCwweDM5LDB4ZTIgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4MGYsMHg2OCwweDAzLDB4OWUsMHgwMCwweGVkLDB4ODQsMHgzZCwweGUyLDB4NDQsMHg3OCwweDAzLDB4OWUsMHgwMCwweGY3LDB4YjQgfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MmQsMHhlMCwweDBkLDB4NjgsMHgwMywweGQ2LDB4MDAsMHhmNiwweDgwLDB4MzksMHhlMCwweDBmLDB4NzksMHgwMywweDVlLDB4OTAgfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4NjAsMHgyZSwweDdjLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MDgsMHgxZCwweGFkLDB4MDAsMHhmYiwweDQyLDB4M2UsMHhjOCwweDBmLDB4YTAsMHgwMywweGVkLDB4YTAsMHhiYiwweDAwLDB4MzggfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MDMsMHg2OCwweDAwLDB4ZmIsMHgxMSwweDNlLDB4NDAsMHgwOSwweGIwLDB4NDEsMHhlYywweDAwLDB4ZmEgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHhiMiwweDBiLDB4ZWQsMHg4MCwweDNiLDB4MDAsMHgzNiwweDQwLDB4MGQsMHhiMCwweDIzLDB4NDIgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZiwweDAwLDB4Y2YsMHhkMCwweDMzLDB4ZTQgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NGYsMHhmOSwweDAzLDB4ZGUsMHg0MCwweGRjLDB4ODAsMHgzNiwweGU0LDB4MGMsMHhiOSwweDEzLDB4ZmUsMHgwMCwweGNmLDB4OTAgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4MzcsMHhlNSwweDBmLDB4ZjgsMHg0MywweGZlLDB4MDAsMHhjZiwweDkyLDB4M2YsMHhhNCwweDBmLDB4NzgsMHgwMywweDFmLDB4MDAgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4YzUsMHg4MCwweDMzLDB4NjAsMHgwYywweGY4LDB4MjAsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4YTgsMHgxMSwweGJjLDB4MDAsMHgwZiwweDEwLDB4MjEsMHg4MSwweDBiLDB4NjAsMHgwMywweDg0LDB4MDAsMHg4YiwweDA4LDB4MjEgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4NjAsMHgwYSwweDdiLDB4MDMsMHg5OCwweDAwLDB4OGIsMHgxMCwweDI5LDB4ODQsMHgwZSwweDY0LDB4MjIsMHhkYywweDQwLDB4ZDcgfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4MDIsMHgyZCwweDg0LDB4MGIsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MTgsMHgyMSwweDQwLDB4MGEsMHhmMCwweDIyLDB4YWEgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDAwLDB4YTcsMHgxNCwweDY5LDB4YzAgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4MWEsMHg2MCwweDEyLDB4ZmMsMHgwMSwweGE0LDB4MTAsMHgyZCwweGMwLDB4MGEsMHg1MiwweDAyLDB4NDUsMHg0MCwweDg3LDB4MGMgfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MjEsMHg4MCwweDFiLDB4NjAsMHg4MiwweGQ0LDB4MDAsMHg4NiwweDAzLDB4MjUsMHhlMCwweDFiLDB4NzAsMHgwMiwweDVjLDB4NDAgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4OWQsMHgwMCwweDI5LDB4NDAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MjAsMHgxNCwweGNkLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCwweDFiLDB4MjAsMHgyMiwweDhjLDB4MTEsMHhhMywweDAwLDB4NjggfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4ZjYsMHgwYSwweDNjLDB4MDYsMHg4MiwweDAwLDB4ODMsMHg4MCwweDI4LDB4ODQsMHgwYSwweDhjLDB4ODIsMHhjYywweDQ0LDB4OTIgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4NGUsMHgwMCwweDkxLDB4MDAsMHgyOCwweDQwLDB4MGEsMHgzMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZSwweDIyLDB4ZWYsMHgwNCwweGJhLDB4YzAgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4MGYsMHgxNCwweDkzLDB4ZWMsMHgwMiwweGYxLDB4YzMsMHgzZSwweGYwLDB4MGUsMHg5MCwweDgzLDB4NjYsMHgwMCwweGNmLDB4ZDIgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MzIsMHg1MCwweDBmLDB4OWMsMHgwMywweGNiLDB4MDAsMHhjOSwweDgwLDB4M2UsMHgyOCwweDBmLDB4YjAsMHgwMywweDRmLDB4MDAgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4ZDEsMHhjMCwweGFhLDB4YzAsMHgwYywweDcxLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MjAsMHhkYiwweDAwLDB4MjYsMHg4MCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDgsMHgxYiwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4YzAsMHgwZiwweDg2LDB4MDEsMHhlNSwweDQwLDB4ZmIsMHgwMiwweDNhLDB4NDgsMHgwZSwweDk0LDB4MDMsMHhlYywweDgwLDB4ZjEgfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4ODQsMHgzZSwweDAwLDB4NGYsMHhiMCwweDAzLDB4YWQsMHhjMCwweGViLDB4MjAsMHgzNiwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhkYywweDAwLDB4Y2YsMHgwMCwweDNmLDB4NjAgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MGMsMHhlMCwweDgzLDB4M2UsMHg4MCwweGVkLDB4MDgsMHgzMywweGQwLDB4OGYsMHg1MCwweDAzLDB4OWUsMHgwMCwweGRmLDB4MDAgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4YzAsMHgwMywweDMwLDB4MDAsMHhjYywweDEwLDB4MzMsMHg2OCwweDBjLDB4ZjAsMHgwMywweDNjLDB4ODQgfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4OGQsMHg5MCwweDMwLDB4NDAsMHgwYywweGYwLDB4MDMsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4ODEsMHgwNCwweDZjLDB4MDAsMHg4YiwweDAyLDB4MmMsMHhmNCwweDA4LDB4YTgsMHg2MiwweDBjLDB4ODAsMHg4YiwweDgwLDB4MmEgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4NjAsMHgwZiwweDljLDB4MDIsMHgyZSwweDAwLDB4OGIsMHgwMCwweDIwLDB4NjAsMHgwZCwweDk4LDB4MDIsMHgyYywweDgwLDB4ZDggfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4MDAsMHgxNCwweDQwLDB4MDgsMHgzNCwweDEyLDB4MmUsMHgwMCwweDhiLDB4ODIsMHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4ZDAgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MmMsMHgwMCwweDhhLDB4ODQsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZTQsMHhhMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4MjIsMHg2MiwweDBhLDB4OTgsMHgwMiwweDI4LDB4MDAsMHg4OSwweDAwLDB4MjIsMHgwMCwweDBhLDB4YjEsMHgwNiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4YWIsMHgwMCwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDIsMHhhMywweDAwLDB4MmMsMHhjMSwweDA4LDB4MjAsMHgwMiwweDBjLDB4MDIsMHg4YiwweDAwLDB4MjggfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4YzIsMHgwYSwweDAwLDB4MDIsMHg0NCwweDEwLDB4ODMsMHgxMCwweDIyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwYywweDAwLDB4OTEgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4MDQsMHhhYSwweDAwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGExLDB4MDEsMHgyMCwweDQwLDB4MDksMHhiMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4OGYsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4MmMsMHhhMCwweDAzLDB4MjksMHg0MCwweGE4LDB4NDAsMHgzMiwweGNjLDB4OGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGNmLDB4NDAgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4MzIsMHgwMCwweDBlLDB4ODAsMHgwYSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjIsMHg0MCwweDBjLDB4YjAsMHgwMywweDJjLDB4MDQgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4ZWIsMHgwMCwweGIyLDB4NDAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhkZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZTAsMHgwMywweGZjLDB4ODAsMHhmZiwweDI4LDB4M2QgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4YzAsMHgwYiwweGMxLDB4MDMsMHhiMCwweDE0LDB4ZmYsMHgwMCwweDNmLDB4MDAsMHgwZCwweGQwLDB4MDMsMHhkYywweDAwLDB4ZmMgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgzNywweDQwLDB4MGYsMHhmMCwweDIxLDB4ZmMsMHgwMCwweDFkLDB4MDAsMHg3YiwweDQwLDB4OGYsMHhmMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZGYsMHgwMCwweDMxLDB4YTAgfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4NGQsMHhmMCwweDQzLDB4MzIsMHgwMCwweGNlLDB4MTQsMHgxYiwweDY4LDB4MGUsMHhkYSwweDIzLDB4YjIsMHhjMCwweDJmLDB4MDAgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4M2YsMHhjMiwweDJjLDB4ZTgsMHgwMywweDNjLDB4NDAsMHhmZCwweDA4LDB4M2IsMHhjOCwweDRjLDB4ZjAsMHg4MywweDNjLDB4YTAgfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4Y2YsMHgwMCwweDMzLDB4YzQsMHgwYywweGYzLDB4MDcsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4ODAsMHgxMCwweGUyLDB4MDAsMHg4ZiwweGMwLDB4MjIsMHhhMCwweDA4LDB4ZmQsMHg0MiwweDJmLDB4MDAsMHg4YiwweDcwLDB4MjIgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4MWUsMHg0OCwweDg5LDB4MDIsMHgyNywweGMwLDB4OGYsMHg1YSwweDJlLDB4NTAsMHg0OCwweDMwLDB4MDIsMHhiZCwweGMwLDB4YmQgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4NDAsMHgyMywweGM1LDB4NDgsMHhmNCwweDgyLDB4M2QsMHgyYywweDg3LDB4NzAsMHgyMiwweGMwLDB4MDgsMHhmMSwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlMCwweDAwLDB4OTMsMHgxMCwweDI2LDB4ODEgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4NDksMHgzMCwweDAyLDB4ODAsMHg0MCwweDgzLDB4MjAsMHgyOCwweDQwLDB4MGEsMHgxMCwweDAyLDB4ODAsMHgwMCwweGEzLDB4MjQgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4MmMsMHhjYSwweDA4LDB4MzIsMHg4MiwweDBjLDB4MDAsMHg5MSwweDI4LDB4MjAsMHhjYSwweDFiLDB4MzIsMHgwMiwweDBjLDB4ODggfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4ODMsMHgwOSwweDIwLDB4YzgsMHgwOSwweDMyLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4YzAsMHgxNSwweGEzLDB4MTQsMHg4YiwweDA0LDB4MjYsMHg4OSwweDA4LDB4YjAsMHgwMiwweGFjLDB4MjIsMHg4YiwweDg4LDB4MmEgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MjAsMHgwOCwweDk4LDB4ODIsMHhhNiwweDEwLDB4YWIsMHgwMCwweDJlLDB4Y2EsMHgwOCwweGIwLDB4ODIsMHhhYywweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MjksMHhiMCwweDBhLDB4MmMsMHgwMSwweDhiLDB4MDAsMHgyMiwweGMwLDB4MDksMHhiMCwweDIyLDB4ZjAgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMywweDAwLDB4ZGIsMHgwMCwweDM0LDB4ZTIgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MGQsMHhiMCwweDAzLDB4YTMsMHgwMCwweGNhLDB4ODAsMHhiYSwweDcwLDB4MGUsMHg4OCwweDAzLDB4YTYsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4M2UsMHg5MCwweDBjLDB4YjUsMHgwMywweDJjLDB4MDAsMHhmYiwweDEwLDB4YmEsMHhjMCwweDBlLDB4YjAsMHgwMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4Y2IsMHgwMiwweDMyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDgsMHhmZiwweDAwLDB4YmIsMHhlMCwweDBmLDB4NzAsMHgwMywweDY1LDB4MDAsMHhmNCwweDAwLDB4MzUgfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4NDAsMHgwZiwweDQwLDB4MDMsMHg1NCwweDAwLDB4ZGYsMHgwMCwweDNlLDB4NDAsMHgwZiwweGY4LDB4MDMsMHhlYywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4MDEsMHgzZCwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDQwLDB4ZWIsMHgwOCwweDNlLDB4ODAgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzYSwweDUxLDB4MGYsMHg4MiwweDAzLDB4NjQsMHgyMCwweGRiLDB4MDAgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4M2QsMHg4MiwweDBjLDB4YmMsMHgwMywweDJjLDB4MTAsMHhkYiwweDAwLDB4NzIsMHhjMCwweDBkLDB4YjEsMHgwMywweDBjLDB4MjAgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4ZDMsMHgwMCwweDMyLDB4YzAsMHgwZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4YzgsMHgwNSwweDAxLDB4MDAsMHg4NywweGMwLDB4MmUsMHhhOCwweDA4LDB4ZjEsMHgxMiwweGM1LDB4NDAsMHg4OCwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4NDAsMHgwYiwweDg0LDB4MDIsMHgyNywweDAwLDB4YWYsMHgwMCwweDJlLDB4YzAsMHgwOCwweGJjLDB4MTIsMHgzYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHhmNSwweDRhLDB4M2QsMHgyOCwweGRmLDB4MDAsMHgzMywweGMwLDB4NGIsMHhmMCwweDAzLDB4MzIgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0OCwweDgwLDB4YTMsMHg5MCwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4YzEsMHgwMCwweDkyLDB4MDQsMHgyOCwweDAwLDB4MGIsMHgxNCwweDEyLDB4NDMsMHgwMCwweGIzLDB4MDQgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MmMsMHgzMCwweDBhLDB4YjAsMHgwYSwweDhjLDB4MDAsMHg5MywweDAwLDB4NjAsMHhjMCwweDA4LDB4M2MsMHgwNiwweDBlLDB4MDEgfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4YjMsMHgwMCwweDJlLDB4YzAsMHg4YiwweDMwLDB4MDYsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4MjAsMHgwMSwweDEyLDB4MDAsMHg4NywweDgwLDB4MmQsMHgyNCwweDA4LDB4NzgsMHgwMiwweGQyLDB4MDAsMHg5NSwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4YTAsMHgwYiwweDY4LDB4MDIsMHg1YSwweDIwLDB4ODcsMHg4MCwweDJkLDB4NjYsMHgxYSwweDdjLDB4MDIsMHg5ZSwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4ODAsMHgyMSwweGUxLDB4MTgsMHg3OSwweDAyLDB4OWUsMHg0MCwweGI3LDB4ODAsMHhhMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4NDggfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwMCwweDAwLDB4ZTMsMHhhMCwweDNjLDB4NDAgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4MGMsMHgzMCwweDAzLDB4YzQsMHgyMiwweGQ5LDB4MDAsMHgzOCwweGQ0LDB4MGYsMHgzMCwweDgzLDB4NjgsMHg0MCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4M2MsMHg4MCwweDBhLDB4MzIsMHgwMiwweDhjLDB4MDAsMHhkYiwweDAwLDB4YTIsMHhjNCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4NDAsMHgwZCwweGIwLDB4MDAsMHhmZiwweDEwLDB4M2YsMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhlZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4YzAsMHgwZiwweDMwLDB4MTMsMHhiYywweDQwLDB4N2YsMHgxMCwweDNmLDB4YzEsMHgyZCwweGYwLDB4MDMsMHg3YywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4NDAsMHgzZiwweGMyLDB4MGUsMHhmNCwweDgzLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMyLDB4MGYsMHhmMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZGIsMHhhMCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4MGQsMHhiNywweDAzLDB4ZTAsMHgwMCwweGNhLDB4MDQsMHgzZSwweDgwLDB4MGYsMHhiOCwweDAzLDB4MmMsMHgxMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4MzMsMHgwMCwweDhkLDB4YjAsMHgwMywweDJjLDB4ODAsMHhlOSwweDQwLDB4M2UsMHhkMiwweDBmLDB4YjQsMHgwMywweDJkLDB4ODAgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4ZWIsMHgyMCwweGIyLDB4YzAsMHgwZiwweGIyLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4NDgsMHgxMSwweDkwLDB4MDAsMHhiNywweDEwLDB4MTEsMHhjMCwweDA4LDB4NzAsMHg4MiwweGQ4LDB4MGEsMHg4NywweDAxLDB4MmQgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4ODAsMHg4OSwweDcwLDB4MDMsMHhkOCwweDA4LDB4YjcsMHgwYSwweDIxLDB4NDAsMHgyYywweDcwLDB4MDIsMHgwZCwweGMwLDB4ODUgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4MDEsMHg3OSwweGM4LDB4MGIsMHgzMiwweDAyLDB4MGQsMHgyMCwweDhmLDB4MjgsMHgyMSwweGMwLDB4MGIsMHg3MiwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4NDAsMHg5NiwweDEwLDB4OTcsMHg5MCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4MDksMHg3YSwweDAyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDgyLDB4MWUsMHgwMCwweGIzLDB4YjAgfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFlLDB4MDAsMHhhNSwweDgwLDB4MmQsMHhlMCwweDBiLDB4N2EsMHgwMiwweDFlLDB4ODAgfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4YTcsMHhiMCwweDIxLDB4ZTgsMHgwYiwweDc5LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4NDgsMHgxNCwweGMwLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlMiwweDA4LDB4MzAsMHgwMiwweGM2LDB4NDAsMHg5MywweDcwLDB4MmMgfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4YzAsMHgwOSwweDNjLDB4MDIsMHg4ZSwweDAwLDB4YjMsMHgwMCwweDIwLDB4ZDgsMHgwOCwweDE4LDB4MDIsMHgwYywweDAwLDB4ODEgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4OTAsMHgyZSwweGMwLDB4MGIsMHgzMCwweDJhLDB4MmMsMHgxMCwweDgzLDB4MDAsMHhhMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhiOSwweDAwLDB4ZGEsMHgwMiwweDMzLDB4YjggfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4MGQsMHhhMCwweDAzLDB4ZjgsMHgwMCwweGRlLDB4YzAsMHgzZiwweGIwLDB4NGYsMHhlYywweDA2LDB4MzgsMHg0MCwweGZhLDB4MDAgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4YjMsMHg5MCwweDBjLDB4NmMsMHgwYiwweDI4LDB4MDgsMHhlYSwweDAxLDB4N2UsMHg4MCwweDBmLDB4YTAsMHgwMywweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4ZWEsMHgwMCwweDMyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDQwLDB4M2EsMHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhlOCwweDAyLDB4M2UgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDQwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDIwLDB4ZjksMHhjMCwweDNlLDB4NzAgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4MGUsMHg5MCwweDAyLDB4ZTQsMHg4MCwweGM5LDB4MDAsMHgzMiwweDQyLDB4MGMsMHg5OCwweDgzLDB4YTQsMHg4NCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4YjIsMHg2MCwweDBjLDB4OTAsMHg4MywweDI0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4MWEsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4YzEsMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MDEsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MDAsMHhiOSwweDgxLDB4MmMsMHg2MCwweDBkLDB4OTQsMHhjMiwweGM3LDB4MDgsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4NDAsMHgwOCwweDk1LDB4YzcsMHhhNCwweDAwLDB4YjksMHgwMCwweDI4LDB4NzAsMHhhOCwweDk0LDB4MGEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4MDQsMHgyZSwweDQwLDB4MjgsMHg5MCwweDJhLDB4MjYsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YjksMHg0MCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTUsMHgwMCwweDgxLDB4MDAsMHhhMCwweDQwLDB4MDksMHg5MCwweDQyLDB4ZWMsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MjIsMHg1OCwweDA4LDB4OTAsMHhhMiwweDA0LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGE0LDB4YTAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4ODksMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmUsMHhjMCwweDg5LDB4MTIsMHgwMiwweGM0LDB4ODAsMHg4MSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4NDAsMHg2MSwweDEwLDB4NDIsMHhjNSwweDAwLDB4YjEsMHgyMCwweDI4LDB4NDgsMHgxOCwweDkwLDB4NDIsMHgwNCwweDgwLDB4ODEgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4MjgsMHgyYywweDQ4LDB4MDgsMHgxMiwweDgyLDB4ODQsMHhhMCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MGIsMHgxMiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwOCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGQsMHg4MCwweDE3LDB4ZTgsMHgwNCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4MzIsMHgxNCwweDRjLDB4MDUsMHgwYiwweDIxLDB4NDAsMHhjOCwweDIwLDB4M2UsMHgwMCwweDBjLDB4ODcsMHgwMywweGExLDB4YzIgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MTQsMHg4ZiwweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4OTgsMHgxZCwweGY0LDB4MDAsMHhmMSwweDEwLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMiwweGQ0LDB4NDIsMHhmZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4NTEsMHgwZSwweDU0LDB4MTMsMHhiNSwweDAwLDB4ZjksMHgxMCwweDM1LDB4NDQsMHgyZiwweGQwLDB4MDMsMHhlNCwweDUwLDB4ZmQgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4MjgsMHgzZSwweDRlLDB4MGYsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MzgsMHgzZSwweDQ0LDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MTUsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNkLDB4NDAgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4MmMsMHhkMCwweDAzLDB4YjYsMHgwMCwweGY5LDB4ODIsMHgzZSwweDQwLDB4MGMsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4ODAgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4MzMsMHg3MCwweDBjLDB4NTAsMHgwMywweDM0LDB4MDAsMHhjOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4ZGEsMHgwMywweDE2LDB4ODAgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4YzksMHg0MCwweDNlLDB4NjIsMHgyYywweDk4LDB4ODMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDA4LDB4ODAsMHgwMiwweDI4LDB4MDAsMHhiOCwweDUwLDB4MjYgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YjgsMHgwMCwweDJhLDB4MzQsMHgyYSwweGFhLDB4MGEsMHgyMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4YzAsMHgyZSwweDJhLDB4MDgsMHg4MCwweDIyLDB4MjEsMHgwMCwweGE4LDB4ODAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAwLDB4YjEsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4NDgsMHgxMCwweDA2LDB4OGQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4NDAgfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MmMsMHg0OCwweDA4LDB4MTAsMHg4MiwweDQ0LDB4MDAsMHg4MSwweDYwLDB4MmMsMHg0MCwweDI4LDB4MTQsMHgwYSwweDA0LDB4NDAgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4ODEsMHgyMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4NDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4YjAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDI4LDB4MmUgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4NTAsMHgwOCwweDkwLDB4MjIsMHhlNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NjAsMHgwYiwweDEyLDB4NDIsMHg2NCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4MDAsMHgyYywweDQwLDB4MDksMHg5MCwweDAyLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgyYywweDQwLDB4MDgsMHgxMCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDIgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4YTcsMHg0MCwweGY5LDB4NDAsMHgzZSwweDcwLDB4MGMsMHg5OCwweDAyLDB4ZTUsMHg0MCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTgsMHgwMywweDY0LDB4MDYsMHhjOSwweDAxLDB4MmUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDQgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHg4MywweGU2LDB4MTAsMHhmOSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4NjgsMHgwZiwweDljLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNhLDB4NDAsMHgwZSwweDk4LDB4OTMsMHhhNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDgzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDAsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDQgfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjEsMHgwMiwweGM4LDB4NDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTEsMHgwMCwweGYwLDB4MDAgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4M2UsMHgwMiwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MjgsMHgxNSwweDNhLDB4MDAsMHhiZSwweDAyLDB4MmYsMHhiMCwweDA4LDB4NjgsMHgxMiwweDM4LDB4MDAsMHg4YSwweDA0LDB4MmEgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4ODAsMHgwYiwweGUwLDB4NDIsMHhmYiwweDIwLDB4YmEsMHgwMCwweDJmLDB4OTEsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4MDAsMHgyNiwweDgwLDB4MDgsMHhlZSwweDBhLDB4MzgsMHgwMCwweDhhLDB4MDAsMHgyMiwweDgwLDB4MGIsMHhhMCwweDAyLDB4OGEgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0MiwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzIgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4MjgsMHgzOCwweDBhLDB4NDgsMHgwMCwweDgzLDB4MDQsMHgyMiwweGMwLDB4MGIsMHgxMCwweDAyLDB4Y2QsMHg4MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MmUsMHhjMCwweDA4LDB4MWMsMHgwMiwweDI0LDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgxMiwweDBlLDB4NDAgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MTIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4YTAsMHgwMSwweDExLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDA4LDB4NzAsMHhhMiwweDRlLDB4MDAsMHg4ZiwweGIwLDB4MjEgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4Y2MsMHgwYiwweDYwLDB4MTIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzAsMHgwOCwweGQwLDB4ODIsMHgxNCwweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4MTIsMHgyNSwweGM4LDB4MjgsMHg2MCwweDAyLDB4MTQsMHgwMCwweDg3LDB4YjIsMHgyMSwweGNjLDB4MGIsMHgzMSwweDAyLDB4YTggfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjcsMHg4MCwweDNkLDB4ZTAgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MGMsMHgzOCwweDAzLDB4NTYsMHgwMCwweGM3LDB4OTAsMHhiMSwweGU0LDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGY3LDB4OTAgfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4MWYsMHg2MCwweDJjLDB4NDgsMHgwYiwweDE2LDB4YTAsMHhmNywweDgwLDB4M2MsMHhmNCwweDBjLDB4MzgsMHgwMywweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4Y2YsMHhhMCwweGIxLDB4ZTgsMHgwZiwweDdiLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDgsMHgwZCwweGEwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhjMCwweDBiLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmMywweDIxLDB4M2UgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4YzgsMHgwNywweGIwLDB4MDIsMHhlNCwweDAwLDB4ZmIsMHgyMCwweDNmLDB4NDAsMHgwZiwweDgwLDB4MDMsMHhlNCwweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4MDAsMHgzNiwweGQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwOCwweGZiLDB4NDIsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMCwweDgwLDB4Y2YsMHg4MCwweDMxLDB4ZTEgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4MGMsMHhmOCwweDAzLDB4ZGEsMHgxMCwweGVmLDB4ODAsMHgzZiwweGU0LDB4MGYsMHhkOCwweDAzLDB4ZmUsMHgxMCwweGZmLDB4ODIgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4M2YsMHhlMCwweDRjLDB4ZDgsMHgxYiwweDE2LDB4MjAsMHhjZiwweDgwLDB4M2YsMHhlMCwweDRjLDB4ZDgsMHgzMCwweGVlLDB4NDAgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4ZmYsMHhjMCwweGIzLDB4ZjQsMHgwZiwweGY4LDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4YTgsMHgwMSwweDk4LDB4MjAsMHg4MywweDQwLDB4MjEsMHhjMCwweDA4LDB4NzEsMHgwMiwweGRjLDB4ODQsMHg4NywweDIwLDB4MmQgfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkOSwweDYwLDB4ZjcsMHgwMCwweDJkLDB4YzAsMHgwOCwweGYwLDB4ODIsMHgxNCwweDA0LDB4ODcgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHhmMCwweDAzLDB4MWUsMHgwMCwweGI3LDB4MjAsMHgyMSwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZWEgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhiMCwweDAwLDB4ODcsMHgwMCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZjUsMHgwNCwweDI3LDB4MDAsMHgyZCwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MDAgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4MmMsMHg1MCwweDA4LDB4NDAsMHgwMiwweDE0LDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDQgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4YjcsMHgwMCwweGExLDB4YzAsMHg4YiwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHg4MCwweDAwLDB4MDAsMHg4MCwweDA4LDB4MzAsMHgwMiwweGNlLDB4MDAsMHg4MywweGMwLDB4MmMgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4ZDAsMHg0YiwweDMwLDB4MDIsMHhjZSwweDAwLDB4YWIsMHgwMiwweDJjLDB4NDAsMHg0OCwweGJjLDB4MDIsMHgwNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4MDAsMHgyYywweGMwLDB4MDgsMHgxMCwweDAyLDB4MDAsMHgwOCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzMCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MywweDQwLDB4YzgsMHgwMCwweDMwLDB4YzAgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4MmMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4ODgsMHgzZiwweGU2LDB4MDcsMHhiMSwweDgzLDB4ZTEsMHgwMCwweGJmLDB4MDAgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4M2UsMHhlMCwweDBjLDB4YjgsMHgwMywweDM0LDB4MDAsMHhjZiwweDAwLDB4M2YsMHhjMCwweDJjLDB4YjAsMHgwMywweDY4LDB4MTAgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4ZmYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDAsMHhmMSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjQsMHgwMywweGVkLDB4NDAsMHhmYiwweDA4LDB4M2UgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4YzAsMHgwZiwweGEwLDB4MDMsMHhlNSwweDIwLDB4ZmIsMHgwMCwweDNlLDB4ZTAsMHgwZCwweGIwLDB4ODMsMHhlNCwweDAwLDB4ZjMgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzQsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2EsMHgwMCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4NGUsMHhmMCwweDAzLDB4MzQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhlOCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4YjEsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM0LDB4MDAsMHhlZiwweDAwLDB4YjMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDM4LDB4MDAgfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4Y2YsMHgwMCwweDNkLDB4YzAsMHgwYSwweGYwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4ODEsMHgwNCwweDYyLDB4MjIsMHg4OCwweDkwLDB4MjIsMHhlMCwweDA4LDB4M2MsMHgwMiwweDJlLDB4MDgsMHhiYiwweDAxLDB4MmUgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4YzAsMHgwYiwweGEwLDB4MDIsMHg2NiwweDAwLDB4YmIsMHgwMCwweDIyLDB4YTAsMHgwOCwweGE5LDB4MDIsMHgyNCwweDAwLDB4YmIgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MjgsMHgyYywweDAyLDB4YTIsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGEsMHhiMCwweDAyLDB4YTAgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMiwweDAwLDB4OTgsMHgwMCwweDIyLDB4YzggfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4MGEsMHg5OCwweDAyLDB4MjcsMHgwNCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZTIsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MjIsMHhlMiwweDA4LDB4YjAsMHgwMiwweGE0LDB4MDAsMHhhYiwweDAwLDB4MjAsMHhjMCwweDBhLDB4ODgsMHg4MiwweDIzLDB4MDAgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MDgsMHgxNCwweDA0LDB4MDAsMHg5MSwweDQwLDB4MjIsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4YzAsMHg0YiwweDI4LDB4MjIsMHg0MCwweDA0LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgwNCwweDA0LDB4YjMgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4MDAsMHg2MCwweGMwLDB4MDgsMHgwMCwweDAyLDB4ODQsMHgyMCwweDkzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2MCwweDAwLDB4ZGEsMHg0MCwweGIyLDB4ODAgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4MGUsMHg5MCwweDAzLDB4MjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGYsMHhhMCwweDAzLDB4ZTAsMHgwOSwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MzIsMHg0MCwweDA4LDB4YTAsMHgwYiwweDM0LDB4MDAsMHhlYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ODAsMHgwMywweDI4LDB4ODAgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4YzcsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4YTAsMHgxNSwweGQwLDB4MDAsMHhlYywweDIwLDB4M2YsMHgwMCwweDBmLDB4YzAsMHgwYiwweGZjLDB4MTAsMHhmZiwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4YzAsMHgwZiwweGUwLDB4MDMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NGYsMHhjMCwweDAxLDB4ZjAsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4Y2MsMHg5MCwweDM3LDB4MjAgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4MGUsMHhmMCwweDEzLDB4YmQsMHgwNCwweGQ0LDB4YzEsMHgzMywweDJjLDB4NGMsMHhkOSwweDIzLDB4MzIsMHg2MCwweGZmLDB4MjAgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4M2QsMHhlMCwweDRmLDB4YzEsMHgwMywweGI2LDB4NDAsMHhjZCwweDAwLDB4MzcsMHhlMCwweDBjLDB4ZTIsMHg4YiwweDEwLDB4YzAgfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4Y2QsMHgwMCwweDMzLDB4YzYsMHgwZiwweGQ4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4ODAsMHgxMCwweGVlLDB4MDgsMHg4YSwweDIwLDB4MjIsMHgwMCwweDA4LDB4YjcsMHgwMiwweDJkLDB4MDAsMHg4YSwweDAwLDB4YjYgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4M2MsMHgwOCwweDk5LDB4MDIsMHgyNywweDg0LDB4YmYsMHg2OCwweDJlLDB4ODIsMHgwYiwweDAxLDB4MDIsMHgyNCwweDQwLDB4ZDkgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4NDIsMHgyMCwweGMwLDB4OGEsMHhhYywweDAyLDB4MmQsMHhjMiwweDgyLDB4NDgsMHhhMiwweGQwLDB4MGIsMHg4MiwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4ODgsMHgwNCwweDI2LDB4ODAgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4MmEsMHgzMCwweGMyLDB4YTUsMHg4MCwweGE5LDB4MjEsMHgyOCwweDAwLDB4OGEsMHgwMCwweDAyLDB4MDAsMHgwMCwweGEzLDB4MTAgfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4MmMsMHhjOCwweDBiLDB4MDAsMHgwMiwweGM0LDB4OTAsMHg4MywweDQyLDB4MjQsMHhjMSwweDA4LDB4MDAsMHgwMiwweDQwLDB4ODggfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4YTMsMHg2MCwweGE4LDB4YzAsMHgwYiwweDAwLDB4YzIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDYsMHg4YSwweDAwLDB4MjIsMHhlMCwweDQ4LDB4YjAsMHgwMiwweDJlLDB4MDIsMHhhYiwweDgwLDB4MmUgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4MjAsMHg0YSwweDhjLDB4MDIsMHgyNiwweDIwLDB4YmIsMHgwMCwweDZlLDB4ODAsMHgwYiwweDMwLDB4YzIsMHg0NiwweDA0LDB4OWIgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4MGEsMHhhMiwweGMwLDB4MGEsMHg4MCwweDEyLDB4NmMsMHg0MCwweGE4LDB4MDAsMHgyYSwweGMwLDB4MGIsMHg4YywweDAyLDB4MzAgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzEsMHgwOSwweDM2LDB4NjEgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4MGUsMHgzMiwweDAzLDB4YWIsMHgyMCwweGY4LDB4ODQsMHgzYSwweDc4LDB4MmUsMHg5OCwweDAzLDB4MjYsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4M2UsMHg0MCwweDRmLDB4OTAsMHgwMywweGUyLDB4MDAsMHhjOSwweDQwLDB4MzYsMHhlMCwweDBjLDB4YjQsMHgwMywweDZlLDB4MDAgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZiwweDg4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZmEsMHgxMywweGY4LDB4MTAsMHhkYywweDA0LDB4MjcgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4NDAsMHgwZCwweDUwLDB4NDMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQ5LDB4MDMsMHhiMCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4MDEsMHgzZiwweGYwLDB4MGYsMHhmMCwweDIzLDB4YjIsMHgwMCwweGQ0LDB4YTAsMHgzNywweGMwLDB4MGYsMHhjMCwweDBiLDB4ZjggfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDIwLDB4ZWIsMHgxMCwweGYyLDB4MDAgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4MGUsMHhiNCwweDAzLDB4MjEsMHg4MCwweGM5LDB4NDAsMHgzYSwweDQ4LDB4MGYsMHg5MCwweDEzLDB4ZTEsMHgyMCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODQsMHgwMywweDI0LDB4MDAsMHhmYiwweDAxLDB4MzYsMHhlMCwweDBjLDB4NzQsMHgwYiwweDljLDB4MDAgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4Y2YsMHgwMCwweDMyLDB4ZTAsMHgwZiwweDg0LDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4YzgsMHgwNSwweDFlLDB4MDAsMHg4YiwweDgwLDB4MjAsMHg0MCwweDA4LDB4YjgsMHgwMiwweDgzLDB4ODAsMHg4MSwweGEwLDB4MjIgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4NzgsMHgwYiwweDkxLDB4ODMsMHhlMywweDAwLDB4YmYsMHgwMCwweDBlLDB4YzEsMHgwYSwweGI0LDB4MDMsMHg2NCwweDA0LDB4YjkgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4NTAsMHgzMiwweGMwLDB4MGEsMHhiMiwweDAyLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMywweGQ0LDB4MGIsMHg4OCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDQyLDB4YTAsMHg4MCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MGQsMHgwNiwweDgwLDB4ODAsMHgyYSwweGQwLDB4MDMsMHgwMCwweDAyLDB4YzgsMHgwMCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MzYsMHgwMiwweDQwLDB4MDAsMHhiOSwweDAyLDB4MjIsMHhjMiwweDhiLDB4MjYsMHgwMiwweDBjLDB4MTAgfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4MDEsMHgwMiwweDI0LDB4YzAsMHg0YiwweGExLDB4MDIsMHhmOCwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDgsMHg4ZSwweDgwLDB4MjEsMHgyMSwweDA4LDB4MjgsMHhjMiwweDllLDB4MDAsMHg4ZSwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4NjAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDIwLDB4YjcsMHg4MiwweDJmLDB4YTEsMHgwYSwweDc4LDB4MDIsMHg1ZSwweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4OTEsMHhhMSwweGUwLDB4MGIsMHgyOSwweDAyLDB4MzIsMHg0NCwweDg2LDB4ODAsMHhhNSwweGUwLDB4MGIsMHg0YywweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTEsMHgwMCwweDIyLDB4ODAgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4MGUsMHgwMCwweDBiLDB4MjQsMHgwMCwweGMwLDB4NDQsMHgyOCwweGFkLDB4MGYsMHgyMCwweDAyLDB4YzgsMHgwMCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MWMsMHhjMCwweDBjLDB4MDEsMHgwMywweDQ4LDB4NGMsMHhmMiwweDA0LDB4MzAsMHhjMCwweDBmLDB4MTUsMHgwMywweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4YzEsMHgwMCwweDE0LDB4YzgsMHgwZiwweDAwLDB4MDMsMHhkYSwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4NDAsMHgxZCwweDljLDB4NDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDhmLDB4YzAsMHgwMywweGU0LDB4MDAsMHhmYSwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDA4LDB4ZmIsMHgwMCwweDNmLDB4ODAsMHgwZiwweGYwLDB4MDEsMHhmYywweDEwLDB4ZmYgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhkMSwweDAzLDB4ZmMsMHg0MiwweGZlLDB4ODAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDQwLDB4YzgsMHgwMCwweDNlLDB4YzAgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZWUsMHgwOCwweGNiLDB4MDAsMHgzMiwweGMwLDB4MGYsMHhhMCwweDIzLDB4ZTYsMHgwMywweGNiLDB4NGMgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YjAsMHgwNywweGU4LDB4MDAsMHhmOSwweDAwLDB4MTYsMHg0MCwweDBjLDB4YTAsMHgwYiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4Y2YsMHgwMiwweDMyLDB4YzUsMHgwYywweDgwLDB4MDMsMHgwMiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4ODAsMHg4NCwweDA0LDB4MmQsMHhjMSwweDBiLDB4NDAsMHg0MCwweGRjLDB4MDAsMHg4NywweDA0LDB4MjEgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4YzAsMHg0YiwweDcwLDB4MTIsMHhmYywweDAxLDB4OGYsMHg2MCwweDI5LDB4NDAsMHgwYiwweDcwLDB4MTMsMHg5YywweDAwLDB4YjUgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4MDAsMHhhMywweDQwLDB4MGEsMHg2MCwweDAyLDB4MDAsMHgwMCwweDg0LDB4MDAsMHgyMSwweGMwLDB4MDgsMHg0MCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4ODcsMHg4MCwweDJkLDB4YTIgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4MGIsMHg0YywweDE2LDB4ZDYsMHgwOCwweDk3LDB4ODgsMHgyMSwweGEwLDB4NGIsMHg2OCwweDAyLDB4ZGUsMHgwNCwweGE3LDB4ODAgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NDgsMHgwMiwweGRhLDB4MDQsMHhiNiwweDgyLDB4MjUsMHg2MCwweDBhLDB4ZTgsMHg2MiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4ODcsMHg4MCwweDIwLDB4ZTgsMHgwOCwweDQ4LDB4MDIsMHgwOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4YiwweDgwLDB4NmMsMHhmMCwweDBiLDB4M2MsMHgwMiwweGNlLDB4NDYsMHg5YiwweGMwLDB4MjAgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4ZTQsMHgwYiwweDNjLDB4MDIsMHhjYywweDIwLDB4YTMsMHgwMCwweDI4LDB4ZTAsMHgwYiwweDMwLDB4MDIsMHg4ZCwweDgwLDB4YjEgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4ODAsMHgyMiwweDQ0LDB4MGEsMHgyMSwweDBhLDB4MDMsMHg4MiwweDgwLDB4ODAsMHhhMCwweGMwLDB4MDgsMHgwNiwweDBhLDB4MTIgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAyLDB4Y2UsMHg4MCwweDNmLDB4YTAgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MGYsMHhlMCwweDAzLDB4ZmEsMHg0MCwweGRlLDB4YzAsMHhiMywweDkwLDB4MGYsMHhlYSwweDEzLDB4ZjksMHgwOCwweGVhLDB4MDQgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4MzMsMHg4MiwweDhmLDB4ZTQsMHgwMywweGZiLDB4MDgsMHhmZSwweGEwLDB4MzYsMHhhMCwweDBjLDB4YWMsMHgwYiwweDZiLDB4ODIgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4YzYsMHhhMCwweDMyLDB4ODAsMHgyYywweGU0LDB4MDMsMHgzYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDkwLDB4M2UsMHgwMiwweDBmLDB4ODAsMHg4MywweGUxLDB4MDAsMHhlOCwweDIwLDB4M2UgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MDMsMHgwZiwweDgyLDB4MDMsMHhlMSwweDQwLDB4ZDgsMHgwMCwweDNlLDB4MjAsMHgwZiwweDAwLDB4OTMsMHhhMCwweDQwLDB4ZjggfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4OGYsMHgwOCwweDBiLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4MGYsMHg5NCwweDA3LDB4ZTYsMHgwMCwweGY5LDB4ODAsMHhiMCwweDQwLDB4MGMsMHg5NCwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTQsMHgwYiwweGE0LDB4MDAsMHg3MSwweGMwLDB4MzIsMHg0MCwweDJjLDB4OTQsMHgyMywweDI0LDB4MDIgfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4ODAsMHgwNCwweDQ0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTgsMHgwMiwweGU2LDB4NjAsMHhiOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4NjAsMHgwYSwweDljLDB4MDIsMHhlNiwweDI0LDB4YjksMHgwNCwweDM2LDB4NDAsMHgwYiwweDk4LDB4MDAsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4ODAsMHhhMiwweDUyLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDQwLDB4NjgsMHg5NCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAwLDB4YTksMHgwMCwweDI2LDB4NDAgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDMsMHg5NCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MTAsMHgyMiwweDU1LDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGIxLDB4MDAgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MjYsMHg0MCwweDBiLDB4OTAsMHgwMCwweDJjLDB4MDksMHhiOSwweDAwLDB4MjIsMHg2MCwweDA4LDB4OTAsMHgwYSwweDFjLDB4MDQgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4OGQsMHgwOCwweGEwLDB4NDAsMHgwOCwweDEwLDB4ODIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4MDgsMHgwNCwweDA2LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MCwweDBiLDB4MTIsMHg0MiwweGM0LDB4ODAsMHhiMSwweDA0LDB4MjAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4NTAsMHgwYSwweDE0LDB4MDIsMHhjNSwweDAwLDB4YjEsMHgyMiwweDI0LDB4NDAsMHgwYiwweDEyLDB4MjIsMHgwNCwweDAxLDB4YjEgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4NDAsMHgyMCwweDUwLDB4MDgsMHgxMCwweDBhLDB4MTUsMHgwMCwweDg1LDB4NDAsMHgyOCwweDUwLDB4MDgsMHgxNCwweDBhLDB4MGEgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTgsMHg1MCwweDM2LDB4MDAgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4MGYsMHg4NSwweDAyLDB4ZTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHhhMCwweDIzLDB4ZTAsMHgxMCwweGY4LDB4NTAgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4YjIsMHgxNCwweDBmLDB4YTUsMHgwMywweGExLDB4NDgsMHhmYSwweDAwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDQgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4YzQsMHgwMiwweDMyLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4OTgsMHgxZCwweGU1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDEsMHgwMywweGQ0LDB4NDQsMHhmNSwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4NTEsMHgwZiwweGQ0LDB4MDMsMHhmNSwweDAwLDB4ZjksMHgxMCwweDNiLDB4NDAsMHgwZiwweGQxLDB4MDAsMHhmNSwweDEwLDB4ZjUgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4NDAsMHg3ZiwweDQwLDB4MGYsMHg1NCwweDJiLDB4ZTUsMHgwMCwweGY5LDB4NDAsMHgzNiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDEwLDB4YmQsMHg0MCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4MGYsMHhkYSwweDAzLDB4MzcsMHg4MCwweGNkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZjQsMHgwMCwweGU5LDB4YTAgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4ZGUsMHgxNywweGE0LDB4MDgsMHhmZCwweGMwLDB4MzMsMHg0MSwweDhkLDB4ZGEsMHgxMywweDI2LDB4YTAgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4ZjksMHhhOCwweDMyLDB4NzgsMHgwYywweGI0LDB4MGIsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MzgsMHgxMCwweGUxLDB4MDAsMHhiOCwweGEwLDB4MzYsMHgyMCwweDBiLDB4OGEsMHg4MiwweGEyLDB4ODAsMHgyYSwweGE4LDB4MmUgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MTIsMHhlMCwweDA0LDB4YjgsMHhhMSwweDJlLDB4MjgsMHg0YSwweDhlLDB4MDIsMHgyYSwweGEwLDB4YmEgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4YzAsMHgyMiwweDI4LDB4MDgsMHg4NSwweDAyLDB4MjEsMHgwOCwweGI4LDB4ZTgsMHhhMiwweDNjLDB4MDgsMHhjOCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNSwweDAwLDB4YjksMHgwMCwweDIwLDB4NGEgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MDUsMHg4MCwweDAxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwNCwweGExLDB4NGEgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MmUsMHg0MiwweDA4LDB4MTQsMHgwMiwweDg0LDB4MTAsMHhiMSwweDYwLDB4YTAsMHg0YSwweDA5LDB4MTAsMHgwMiwweDQ0LDB4MDAgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4YjUsMHgwMSwweDI5LDB4NDAsMHgxOCwweGQyLDB4MDIsMHgxMiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDIxLDB4MjYsMHg0MCwweDBiLDB4OTYsMHgwMiwweGE0LDB4MTAsMHhhOSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4NDAsMHgwYiwweDk2LDB4MTIsMHhlNCwweDIwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwYSwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgyMiwweDQxLDB4MDgsMHg5OCwweDIyLDB4NjQsMHgwMCwweGI5LDB4MjAsMHgyYiwweDQxLDB4MjgsMHhkNCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHhlMCwweDMyLDB4NTggfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4MjYsMHg0MCwweGM5LDB4NDAsMHgzZSwweDU4LDB4MGYsMHg5YywweDAzLDB4ZTQsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4NmUsMHg0MCwweDBjLDB4OWEsMHgwMiwweGE2LDB4MDAsMHhmOSwweDQ0LDB4MzIsMHg0MCwweDBkLDB4OWEsMHgwYiwweDY0LDB4ODQgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4ZjksMHgwMCwweGJhLDB4NDAsMHgwYywweDE4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSwweDA0LDB4M2UgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgwMCwweDNlLDB4NjUsMHgwZiwweDk5LDB4ODEsMHhlNCwweDUwLDB4ZjkgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MiwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4MGUsMHg4NCwweDAzLDB4NjAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDA4LDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgyOCwweGU4LDB4MDQgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODQsMHgwMywweDIxLDB4MWMsMHhmMCwweDQ4LDB4MzIsMHgwMCwweDBiLDB4MDAsMHgwMywweGUwLDB4MDIgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4YzAsMHgwMCwweDMyLDB4MDAsMHgwYywweGMwLDB4MGIsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhiMiwweDg4LDB4MmUsMHg4MCwweDA4LDB4ZTAsMHgwMywweDdhLDB4ODAsMHg4ZSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4YTAsMHgwYiwweGU4LDB4MDIsMHhmOSwweDEwLDB4YmEsMHgwMCwweDJjLDB4ODAsMHgyOCwweGU0LDB4MDIsMHgyOCwweDAwLDB4YmUgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4NDAsMHgyMywweGI4LDB4MDgsMHhlOCwweDAyLDB4ZTgsMHgwNCwweGNhLDB4MjAsMHhhMiwweDgwLDB4MDgsMHhlOCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAxLDB4YjMsMHgwMCwweDJjLDB4NDAgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4MDgsMHhiOCwweDQyLDB4NmMsMHgwMiwweDgzLDB4MDAsMHgyYywweGUwLDB4MGIsMHgzOCwweDAwLDB4Y2YsMHg0MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4YjQsMHgwYSwweDBjLDB4MDAsMHhiMywweDQwLDB4YTIsMHg4MiwweDBhLDB4MzksMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4OTMsMHg4MCwweGEwLDB4YzAsMHgyOSwweDIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4YTAsMHgwMSwweDFkLDB4MDAsMHhiNywweDAwLDB4MmQsMHg2NCwweDI4LDB4NzQsMHgwMiwweDQwLDB4MDAsMHg4NywweDA1LDB4MmQgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4OTAsMHgwYiwweDc0LDB4MDIsMHhkYywweDEwLDB4YjcsMHgzMCwweDJkLDB4YzgsMHgwOCwweDM0LDB4MDYsMHgxYywweDgwLDB4YjcgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4MDAsMHhhMSwweGMwLDB4MGEsMHg3MCwweDAyLDB4ZGUsMHg4MCwweDgzLDB4MDAsMHgwMSwweDAwLDB4MDksMHg2MCwweDgyLDB4MjAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxYSwweDAwLDB4ZjcsMHg4MCwweDNkLDB4NjAgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MGUsMHhkOCwweDBiLDB4NWUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgxMCwweGY3LDB4YTkgfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4N2YsMHhlOCwweDQ4LDB4NzgsMHgwMywweDFmLDB4MzAsMHhmZiwweDk0LDB4MzMsMHhhMCwweDBlLDB4NzgsMHgwMywweGNmLDB4MjQgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4ZDYsMHg4MCwweGIxLDB4ZTAsMHgwZCwweGY4LDB4NDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhiYiwweDAwLDB4MGMsMHg0MCwweDBmLDB4YjAsMHgwMywweGVjLDB4MDgsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwZiwweDkwLDB4NDEsMHhlYywweDAwLDB4ZmIsMHg2MSwweDdlLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4NDAsMHgzZiwweDliLDB4MGMsMHhiMCwweDAzLDB4ZWQsMHg5MCwweGZhLDB4MDAsMHgzYywweDAwLDB4MGUsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkZSwweDAwLDB4ZWYsMHg4MCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4MGQsMHhkOCwweDAzLDB4MzYsMHg0MCwweGVmLDB4OTAsMHgzZSwweGUwLDB4MGYsMHhmOSwweDAzLDB4ZmUsMHgwMCwweGZmLDB4ODAgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MzMsMHhmZSwweDBjLDB4ZmEsMHgwMywweGZlLDB4MDAsMHhjZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4Y2QsMHg4MCwweDMzLDB4ZTAsMHgwZiwweGM4LDB4NDMsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDAsMHg4NSwweDA4LDB4MzUsMHg0MCwweDA4LDB4NzAsMHgwMywweDUyLDB4MjAsMHg4NywweDExLDB4MmMgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4ZWMsMHgwYiwweDcxLDB4MDIsMHhkMCwweDAwLDB4ZTcsMHgwMCwweDM1LDB4YzQsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4ODcgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4MTAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg4MCwweDg1LDB4MDgsMHgyMSwweDAwLDB4MGIsMHg0MSwweDgyLDB4ZWEgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5OCwweDAwLDB4YWYsMHgwMCwweDIzLDB4NTAgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4MDksMHg1MCwweDAyLDB4MWMsMHg4MCwweGE3LDB4MDEsMHgyOSwweGMwLDB4MWIsMHg2MCwweDA2LDB4ZGMsMHg0MCwweGI3LDB4MTAgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MjEsMHhjOCwweDRhLDB4NTIsMHgwMiwweGRjLDB4MDAsMHg4MywweDAwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRjLDB4MTMgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4ODQsMHgwMCwweDI1LDB4YzAsMHgwYiwweDU4LDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MSwweDgwLDB4MjQsMHg0MCwweDA4LDB4M2UsMHgwMiwweDZlLDB4MDAsMHg4OSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4YzAsMHgwYiwweGI0LDB4MDIsMHhjYSwweDgwLDB4YTMsMHgwMCwweDI0LDB4YzAsMHgwYSwweDA0LDB4MDIsMHhlYywweDQwLDB4ODIgfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4MGEsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2QsMHgxMCwweDgwLDB4YzAsMHhhNCwweDAwLDB4MGIsMHgxYywweDAyLDB4YzggfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4NCwweDAwLDB4ZWIsMHg4MCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4MGQsMHg4YywweDgzLDB4MjYsMHgwMCwweGU5LDB4YTAsMHgzZSwweDc4LDB4OGYsMHg5MCwweDgzLDB4ZTEsMHgwMCwweGZmLDB4MDAgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4MzEsMHhkMSwweDBlLDB4ODQsMHgyMywweGZjLDB4MDAsMHhjYiwweDgyLDB4MzIsMHhjMCwweDhmLDB4YjAsMHgwMiwweGZkLDB4NDAgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4Y2IsMHg4MCwweGI2LDB4YzAsMHgwZiwweGE0LDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmOSwweDAxLDB4M2UgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4NDIsMHgwZiwweDkwLDB4MDMsMHhlNSwweDU0LDB4ZTMsMHgwMCwweDNlLDB4YzgsMHgwNSwweDkzLDB4MDMsMHhlYywweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4YzEsMHgzZSwweGMwLDB4MGYsMHgyMCwweDAzLDB4Y2MsMHg0OCwweGYzLDB4MDgsMHgzYSwweDAwLDB4MGYsMHhhMCwweDQzLDB4ZTAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4Y2YsMHgwMCwweDNmLDB4NDAgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4MGYsMHgzMCwweDAxLDB4MmMsMHgwYSwweGNkLDB4MTAsMHgzMywweDAwLDB4MGYsMHhkMCwweDgzLDB4MTQsMHgwMCwweGNiLDB4MDIgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4ZTEsMHgwMywweGVjLDB4MTAsMHhjZCwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgzMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4ZWEsMHgwMCwweDMzLDB4YzAsMHgwYywweGYwLDB4ODMsMHhjOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4ODEsMHgwNCwweDZlLDB4MDAsMHg4YiwweDAwLDB4MmUsMHg0MCwweDBiLDB4YmMsMHgwMiwweDJlLDB4MDAsMHgwYiwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4MzAsMHgwYiwweDljLDB4MDIsMHgyNywweDgwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGI4LDB4MDIsMHhlYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4YzAsMHgyMCwweGUwLDB4MDgsMHhhZSwweDAyLDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyMiwweDAwLDB4MDgsMHhiMCwweDQyLDB4ZTggfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZSwweDAwLDB4OGIsMHgwNCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4OGIsMHg4YywweDAyLDB4YWUsMHgxMCwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg4YywweDAyLDB4YTIsMHgwMCwweDhiLDB4MDEgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4ODAsMHgwMiwweGVjLDB4MTAsMHg4MiwweDg4LDB4YTIsMHg3MCwweDA5LDB4YjgsMHgwMiwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4ODksMHgwMCwweDIwLDB4YzAsMHgyOCwweDgwLDB4MjIsMHhlMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg4MSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MjAsMHgwMiwweDgwLDB4MDAsMHg4MSwweDA0LDB4YTAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4NTAsMHg0YiwweDAwLDB4MGEsMHg4MCwweDAwLDB4YTMsMHgwMSwweDJhLDB4YzEsMHgyMCwweDEwLDB4MDIsMHhjYywweDE0LDB4ODMgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHgyMCwweDAyLDB4MGMsMHgwMCwweDgxLDB4MDAsMHhlMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4MGYsMHg5MCwweDBiLDB4YWMsMHg4MCwweGM5LDB4MDAsMHgzMiwweDEwLDB4MGYsMHg4MCwweDAzLDB4YTQsMHgwMCwweGNmLDB4MDIgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4MzEsMHhjMCwweDBjLDB4ODAsMHgxMywweGZjLDB4MDIsMHhjZCwweDAwLDB4MzMsMHhjMCwweDJjLDB4OTAsMHgwMywweDNjLDB4MDIgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4ZTgsMHgwMCwweGIyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDIsMHhmNSwweDAwLDB4M2QsMHg0MCwweDhmLDB4ZjAsMHgyMywweDZkLDB4MDAsMHhmZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MDQsMHgwZiwweGMwLDB4MDMsMHg3MCwweDFjLDB4ZmYsMHgwMSwweDNmLDB4YzAsMHg0ZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmQgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhlMCwweDBmLDB4ZmMsMHgxOCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmZSwweDAwLDB4ZDcsMHgwMiwweDBmLDB4MzAgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4MGMsMHhmMiwweDAxLDB4N2UsMHgwNiwweDQ0LDB4MzAsMHgzZiwweDIwLDB4MGUsMHhmMCwweDAyLDB4N2MsMHg4NCwweGZkLDB4MjAgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MjcsMHgwOCwweDBjLDB4ZDAsMHgwMSwweDM2LDB4MDAsMHhmZiwweDYwLDB4MzMsMHhjYywweDBiLDB4ZjEsMHgxMywweDJjLDB4YzQgfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4ZmYsMHgzMCwweDBmLDB4Y2QsMHgwYywweGY0LDB4MDMsMHhmMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4ODAsMHgxMCwweGVlLDB4MDAsMHg4ZiwweGMwLDB4MmUsMHgwMCwweDA4LDB4ZmMsMHgwMiwweDJlLDB4MDAsMHg4YSwweDMwLDB4MjggfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4NTIsMHgwOCwweGY2LDB4ODIsMHgzYywweDY4LDB4YmQsMHg5MCwweDMyLDB4MzQsMHg0OCwweDljLDB4MTIsMHgyNiwweDAwLDB4Y2YgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4NDAsMHgyMywweGNjLDB4MGIsMHhmNiwweDAyLDB4M2QsMHgwMCwweGJmLDB4MTAsMHgyZiwweGNjLDB4ODgsMHhmNiwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDAwLDB4OTMsMHgxMCwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4MDksMHgzMSwweDAyLDB4NGMsMHgwMCwweDliLDB4MjAsMHg2NCwweDU4LDB4MDMsMHgzMSwweDYyLDB4NGMsMHg4MSwweGExLDB4MDAgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4MjAsMHgwMCwweDQ4LDB4MTQsMHgwMiwweDQ0LDB4MDAsMHg5MywweDMwLDB4MjQsMHhjMCwweDBiLDB4MzMsMHgwMiwweDhkLDB4ODQgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4YjMsMHgyMCwweDZjLDB4YzAsMHgyYSwweDM2LDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAyLDB4MmUsMHg0MSwweDBiLDB4YjAsMHgwMiwweGE0LDB4MDAsMHg5YSwweDAwLDB4NGEgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4NjAsMHg4OCwweGIwLDB4NTIsMHg2YywweDAxLDB4YjksMHgwMCwweDI2LDB4MDAsMHgwOCwweDkxLDB4MjIsMHhlYywweDA4LDB4YmIgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDUsMHg2ZSwweGMxLDB4MGEsMHhiMCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZGIsMHgwMSwweDNlLDB4MzAgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4MmQsMHgzMCwweDAzLDB4NDcsMHg2MCwweGQ4LDB4YTAsMHgxNiwweDM4LDB4OGYsMHhiMCwweDAzLDB4NmMsMHgwMCwweDc5LDB4MDIgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4MzEsMHg2MCwweDBjLDB4YzgsMHgwYSwweDY2LDB4MDAsMHhiYiwweDAwLDB4YjYsMHhjMCwweDBmLDB4YjAsMHgwYiwweGFjLDB4MDAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4ZmIsMHgwMSwweDNlLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MTAsMHhlZiwweDA4LDB4M2YsMHgyNCwweDBjLDB4ZjAsMHgwMywweDc2LDB4MjAsMHhlZSwweDkwLDB4MzUgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4NDAsMHgwZSwweDcwLDB4MDMsMHhhYywweDAwLDB4ZmQsMHgwMCwweGJiLDB4NjQsMHgwZiwweDg4LDB4MTMsMHgzNCwweDgwLDB4Y2IgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZmLDB4MDAsMHgzZSwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4ZmIsMHg4MCwweDMyLDB4MTAgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4MGUsMHhiMCwweDAzLDB4ZWQsMHgwMCwweGNiLDB4NTAsMHgzZSwweDQwLDB4OGMsMHhiMCwweDQzLDB4MmMsMHgxMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MzIsMHg2MCwweDBjLDB4NDAsMHgwYiwweDI2LDB4MDAsMHhjMywweDA0LDB4MzYsMHhjMCwweDBjLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4OWIsMHgwMCwweGIwLDB4YzAsMHgwYywweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4YzgsMHgwNSwweDBlLDB4ODAsMHhiZiwweDA0LDB4MmEsMHg0MCwweDAwLDB4ZjUsMHgwMCwweGU2LDB4MDAsMHg4MiwweGQyLDB4MjIgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4NDAsMHgwZCwweGYwLDB4MjIsMHgzYywweDAwLDB4OTUsMHgwMiwweDM2LDB4NDAsMHgwYSwweDgwLDB4MDIsMHgyZSwweDAwLDB4OGYgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGEsMHhmMCwweDQyLDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMywweGMwLDB4MjgsMHhmMCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZSwweDAwLDB4YjMsMHgwMCwweDIyLDB4MjAgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4NGEsMHgzMCwweDAwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweDAwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgxMCwweGExLDB4MDAgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MjgsMHg4MCwweDE4LDB4MzAsMHgyMiwweDA0LDB4MDQsMHg4MywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNjLDB4MDggfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDYsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MjksMHhhMCwweDA4LDB4NzgsMHgwMiwweGZlLDB4MjAsMHg4ZCwweDgwLDB4MjkgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4ZTUsMHg1YiwweDM4LDB4NDIsMHgxZSwweDQwLDB4YTEsMHg4MSwweDI1LDB4YTgsMHgwOCwweDc5LDB4MDIsMHgzNywweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4ODAsMHgyNSwweGUwLDB4MGEsMHg3OCwweDBhLDB4ZGUsMHg4MSwweDg3LDB4ODAsMHgyNSwweGU1LDB4NDgsMHg3OCwweDAyLDB4YzggfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YjMsMHgxMCwweDMwLDB4MTIgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4MGUsMHgzMCwweDEyLDB4Y2MsMHhjMCwweGMzLDB4MDAsMHgzOCwweDgwLDB4MGMsMHgzMSwweDA2LDB4MGMsMHg0MCwweGYxLDB4MDAgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MzgsMHg4MCwweDBjLDB4MzAsMHg0MywweDA0LDB4NDIsMHhjMywweDAwLDB4MzYsMHhjMCwweDBjLDB4MzIsMHgwMywweGNlLDB4YzAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4ZGIsMHgwMCwweDMwLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZiwweDEwLDB4M2QsMHg4NCwweDRmLDB4ZjEsMHgwMywweGQwLDB4NDAsMHhmYywweDEwLDB4MzMgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4ODAsMHg1ZCwweGIxLDB4ODMsMHhmYywweDUwLDB4ZGQsMHgwYSwweDI1LDB4ODksMHgwZiwweGI4LDB4MDMsMHhkNCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDAzLDB4M2MsMHg0MCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4ZmIsMHgyMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4MGYsMHhiNSwweDAzLDB4MjksMHgyMCwweGY5LDB4MDAsMHgzMiwweGEwLDB4MGMsMHhiMCwweDgzLDB4ZWMsMHgwMCwweDQ5LDB4YzggfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YTAsMHgwMywweDY0LDB4MDAsMHhmYiwweDA4LDB4MTIsMHhlYSwweDBjLDB4YjAsMHgwYiwweDJjLDB4ODAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4ZmIsMHgyMCwweDJlLDB4ZDIsMHg2YywweGI2LDB4NDMsMHhlYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNywweDQ5LDB4MmQsMHgwMCwweDBiLDB4MzAsMHg4MiwweDEwLDB4MDEsMHhiNSwweDAyLDB4ODMgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4YzAsMHgxYSwweDcyLDB4MjIsMHhkZCwweDQxLDB4ODUsMHgwMCwweDYxLDB4YzAsMHgxOCwweDIwLDB4MjAsMHgxNCwweDAwLDB4YmYgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4NDAsMHgzNSwweGQwLDB4MGQsMHgzNCwweDAyLDB4MWQsMHgyMCwweGI3LDB4MjgsMHgyNSwweGMxLDB4MDgsMHg3NCwweDgyLDB4ZDIgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDA0LDB4MzcsMHhhMCwweDJkLDB4MjAgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4MGIsMHg3YSwweDEyLDB4MTYsMHgwMSwweGIzLDB4ODAsMHgyMSwweGUyLDB4MDgsMHg3OCwweDQyLDB4OWUsMHgwMCwweDg1LDB4ODAgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MjAsMHhlMSwweDE4LDB4NjgsMHgwMiwweDU2LDB4MDAsMHhiNywweGEwLDB4MjUsMHhlMCwweDA4LDB4N2EsMHgwMiwweDFlLDB4MDAgfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4YjcsMHg5MCwweDJjLDB4ZTUsMHg4OCwweDdhLDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4NmMsMHgyNCwweDFiLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4ZjgsMHgwYSwweDMwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4ZDgsMHgxOCwweDIwLDB4MDIsMHgwNCwweDAwLDB4YjMgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4MDAsMHgyNiwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNkLDB4ODAgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4MGYsMHgyMCwweDBiLDB4MjgsMHg4MCwweGZlLDB4MDAsMHgzMywweGEwLDB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMiwweGNhLDB4MDIgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MzIsMHg5MCwweDJjLDB4ZTQsMHgwMywweDc4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4YTAsMHgwMywweDI4LDB4MDAgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4NDgsMHgwMCwweGUxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMywweGUwLDB4ODAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwZiwweDgwLDB4MjMsMHhjMCwweDAwLDB4ZjgsMHgwMiwweDNjLDB4MDAsMHgwZiwweGMwLDB4ODMsMHg2MCwweDAwLDB4YjggfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDIzLDB4ZTAsMHgxOCwweGY4LDB4MDEsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNiwweDAwLDB4ZjksMHgyMSwweDMyLDB4NjAgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MmMsMHg0NCwweGY5LDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDFiLDB4MjQsMHgwMCwweGU5LDB4MDAgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTAsMHgzMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4ZjEsMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHhiOSwweDQwLDB4YTIsMHg0MSwweDA4LDB4OTAsMHgwMiwweDI0LDB4ODAsMHhlOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDEsMHgxOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4MDQsMHgyYSwweDQxLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHgyNCwweDgwLDB4YjksMHg0MiwweDYyLDB4NDggfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDIgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MmUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweGE0LDB4MDAsMHhiMSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI0LDB4MDQgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMSwweDIwLDB4NjAsMHg0MCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDAsMHhhMSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4OTEsMHgyMCwweDJkLDB4NjgsMHgwOCwweDUyLDB4MTIsMHgwNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4MjgsMHgyOCwweDRhLDB4MDksMHgxMiwweDgyLDB4NDQsMHhhMCwweGIxLDB4MmMsMHgyOCwweDRhLDB4MGEsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MTQgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDE0LDB4MGYsMHg4NSwweDAzLDB4MDEsMHg0MCwweGY4LDB4MDAgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MmUsMHgwMCwweDI4LDB4YzAsMHgwMywweGEwLDB4MDAsMHhmOCwweDI0LDB4MzAsMHgwOCwweDBmLDB4ODIsMHgyMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4ZjgsMHgyMCwweDMyLDB4MDgsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4OTgsMHgxZCwweGU0LDB4MDgsMHhmOSwweDEwLDB4M2YsMHg0MCwweDhmLDB4OTEsMHgxMywweGU0LDB4MDAsMHhlZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4NTAsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4YTUsMHgxMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDA0LDB4ZjkgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4MjgsMHgzZSwweDRiLDB4MGIsMHg5MiwweGEzLDB4ZTQsMHhhMCwweGU5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4ODAsMHhkMCwweDAxLDB4ZjQsMHgwMCwweGE1LDB4MDAsMHgyNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MjYsMHgwMCwweGYxLDB4ODggfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4M2UsMHg2OCwweDBkLDB4OTgsMHg4MywweDQ0LDB4MDAsMHhjOSwweGMwLDB4M2EsMHg0MCwweDBjLDB4OTgsMHgwMywweDI0LDB4MDggfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4ZjksMHhhMCwweDMyLDB4NzgsMHgwZiwweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MzgsMHgxMCwweGUwLDB4MDIsMHg4OCwweDAwLDB4YTIsMHgwMCwweDA4LDB4ODAsMHgwMiwweGUwLDB4MDAsMHgwYSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHg0MCwweDJlLDB4MTQsMHgwOCwweDgwLDB4NDMsMHgzMCwweDAwLDB4ODggfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4YTAsMHgyMiwweDJhLDB4MGEsMHg4YSwweDQyLDB4YTAsMHgwNSwweGI4LDB4NDIsMHgzMiwweDM4LDB4MGIsMHg4MCwweDAyLDB4MGUgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDAzLDB4OTEsMHgwMCwweDI0LDB4NDAgfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxMSwweGIxLDB4MDQsMHgyMCwweDQxLDB4MWIsMHgxMCwweDIyLDB4NDUsMHgwMCwweGI1LDB4MDAgfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MjUsMHg0MCwweDA5LDB4NTAsMHgwMiwweDU0LDB4MDEsMHg4MSwweDQwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHg5MiwweDQ0LDB4MDAgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4YjEsMHg0MCwweDI0LDB4NGMsMHgwYiwweDE0LDB4MGEsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5OSwweDAwLDB4MjQsMHg0MiwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDEsMHg5OSwweDIwLDB4MjYgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4NDAsMHhjYiwweDkwLDB4MDIsMHg2NCwweDAwLDB4YmIsMHgwMCwweDJmLDB4NDEsMHgwYSwweGQwLDB4MDIsMHgzNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGIsMHgxMCwweDAyLDB4ZTQsMHgwMCwweDMxLDB4MDAsMHg2MiwweDQwLDB4MGIsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNCwweDAwLDB4ZDksMHgwMSwweDM2LDB4NTAgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4MmYsMHg5MCwweDAzLDB4ZTYsMHg2MCwweGY5LDB4ODAsMHgzNiwweDUyLDB4MGIsMHg5MCwweDBhLDB4NjQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4MzYsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4MDIsMHgwOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4YjksMHgwMCwweGI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhlMSwweDAwLDB4M2EsMHg0MSwweDBjLDB4OTAsMHgyMywweGU2LDB4MjAsMHhlOSwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4NzAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZCwweDEwLDB4MTMsMHhhNywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHg5MCwweDQzLDB4YTQsMHgwOCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDIwLDB4ZjgsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4MGYsMHg4MCwweDgzLDB4MjEsMHgwMCwweGYwLDB4MDAsMHgzYSwweDExLDB4MDksMHg4MCwweDAzLDB4ZTAsMHgwMCwweGM4LDB4MDEgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4MzAsMHgwMSwweDBjLDB4ODAsMHgwMywweGIwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4ODAsMHgwMywweDIwLDB4MDAgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDAsMHhiZSwweDAwLDB4MjIsMHg4MCwweDAzLDB4ZTgsMHgwMiwweDFhLDB4MDgsMHhiZSwweDQ4LDB4MjIgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHhiOCwweDAwLDB4Y2EsMHgwOCwweDIyLDB4ODAsMHgwZiwweGE0LDB4MDIsMHgwOCwweDAwLDB4OGEgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4OGQsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyYSwweDgxLDB4MDgsMHhhMCwweDAyLDB4OGEgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0NCwweDAwLDB4YjMsMHgwMCwweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MDgsMHgwMCwweGIwLDB4NjQsMHg2OCwweGMxLDB4MDgsMHhiMCwweDIyLDB4Y2MsMHgwYywweDkzLDB4ODAgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4MDAsMHhjMCwweDQ4LDB4MzYsMHgwMiwweDg4LDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDA4LDB4MzAsMHgwNiwweDBjLDB4MDEgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4YTMsMHgwMiwweDJjLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MDgsMHhiNSwweDAwLDB4MjEsMHg0MCwweDBiLDB4MzgsMHg4MiwweDFjLDB4MjEsMHhiNywweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4ZTgsMHg0YSwweDcyLDB4MjYsMHg5ZSwweDQwLDB4OGYsMHg4MSwweGFiLDB4NDAsMHg0MiwweDcwLDB4NTIsMHgzOCwweDAwLDB4YTMgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4MjIsMHgyMCwweGM0LDB4NDksMHgzMSwweDAyLDB4MWUsMHgwYSwweGI3LDB4MjIsMHgyZCwweGU4LDB4MDgsMHg3MiwweDAyLDB4YTggfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjYsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MGIsMHg3OCwweDBiLDB4MWUsMHgwMCwweGI0LDB4ODIsMHgzYiwweGU4LDB4NGMsMHg3YywweDEzLDB4ZmUsMHgwMiwweDk3LDB4ODAgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4MzMsMHhhMCwweDA4LDB4MzgsMHgwMywweDlhLDB4MDAsMHhmNywweDg4LDB4MzUsMHhlMiwweDBjLDB4NzgsMHhlMywweDBlLDB4MDAgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4ZTMsMHhlOCwweDM0LDB4ZjgsMHgwYywweDNjLDB4MjMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MDgsMHgxZCwweGE4LDB4MDQsMHhmMSwweDAwLDB4M2UsMHg0MiwweDBmLDB4YjAsMHgxMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4Y2MsMHgxZSwweGI2LDB4MDcsMHhlZCwweDgwLDB4ZmIsMHgwMCwweDM2LDB4MDAsMHgwZiwweGIwLDB4NDMsMHg2OCwweDAwLDB4Y2IgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4MzAsMHgzZSwweGQ4LDB4MGYsMHhiNiwweDBiLDB4ZWQsMHg0MCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MmYsMHhiNiwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmMiwweDQwLDB4ZmIsMHg5MSwweDNkLDB4NGMgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4ODAsMHhmOCwweDAzLDB4ZGUsMHg0MCwweGM2LDB4ODAsMHgxYiwweGYwLDB4NGYsMHhmZCwweDA3LDB4ZmYsMHgwMCwweGNkLDB4ODAgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4NjgsMHgwMywweGJhLDB4MDAsMHhmZiwweDgwLDB4MzMsMHhlMCwweDA3LDB4ZjgsMHgwMywweDNmLDB4MTAgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4YTgsMHgxMSwweDkwLDB4MDAsMHhiNSwweGMwLDB4MmQsMHg0MCwweDA4LDB4NjIsMHgwMiwweGRjLDB4MjAsMHhkNiwweDAyLDB4MjEgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4MDIsMHhkYywweDgxLDB4YjUsMHgwMCwweDgxLDB4NDQsMHgwZCwweDYxLDB4MjIsMHgxOCwweDA0LDB4YjcgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MGIsMHg3MCwweDAyLDB4YmMsMHgwMCwweGE3LDB4MDEsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAzLDB4ZWEgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5MCwweDAxLDB4YjYsMHgwMSwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwYSwweDk2LDB4MTAsMHgyOSwweGMxLDB4NGIsMHg3MCwweDA2LDB4ZGMsMHgxMCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MjUsMHg4MCwweDA4LDB4NjAsMHg4MiwweDFhLDB4MjAsMHhhMywweDAwLDB4MjUsMHhjMCwweDBiLDB4MzEsMHgwMiwweDVjLDB4NDAgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4ODcsMHgwMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCwweDg4LDB4MjAsMHgwMiwweGVkLDB4MDAsMHg4YSwweDYwLDB4MjAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDA0LDB4YjEsMHgwMCwweDI0LDB4MDAsMHgyOCwweDI0LDB4MDIsMHgwYSwweDAwLDB4MzMgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MGIsMHhiMCwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MDAsMHgyYywweGMwLDB4ODgsMHgzMCwweDAyLDB4ODggfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzYgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4MGMsMHg4MCwweDAzLDB4ZTUsMHgwMCwweDA5LDB4YzgsMHhhYiwweGUyLDB4MGIsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDRhLDB4MDAgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MzYsMHhjMCwweDA4LDB4OTAsMHgwMywweGE2LDB4MDAsMHhmZiwweDAwLDB4MzMsMHhjMCwweDBmLDB4ZjAsMHgwMywweDdjLDB4MDAgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4OGYsMHgwMCwweDJmLDB4YzAsMHgyOCwweGYwLDB4MDIsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4ODAsMHgwMCwweGUxLDB4MDAsMHhmYSwweDAxLDB4M2UsMHhjMCwweDBmLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmOSwweDQwLDB4M2UgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4YzAsMHgwNywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmEsMHgwMCwweDNhLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhlNSwweDAwLDB4ZmIgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4ZmMsMHgyMCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4MGMsMHhjOCwweDAzLDB4ZmMsMHgyMCwweGNkLDB4ODEsMHhiMywweGMyLDB4NGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGNhLDB4MDAgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4M2MsMHg4MCwweDBjLDB4ZDAsMHg4MiwweDM2LDB4MDEsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDggfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4Y2YsMHgwNCwweDNhLDB4YzAsMHg1YywweGIwLDB4MDMsMHhjMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4ODEsMHgwNCwweDYyLDB4MDQsMHhiOCwweDQwLDB4MmMsMHg2MCwweDA4LDB4ODksMHgwMiwweGVlLDB4ODAsMHhhOSwweDYwLDB4MmEgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4MDMsMHg4YywweDAwLDB4YWEsMHg0MCwweDJlLDB4MDAsMHgwOCwweDEwLDB4MDIsMHgyNiwweDgxLDB4ZWIgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgyNiwweGMwLDB4OGIsMHhiMCwweDEzLDB4NmMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4M2QsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyMywweDAwLDB4YmIsMHgwMywweDJlLDB4YzggfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4MDksMHhiMCwweDAyLDB4ZWUsMHgwMCwweDhiLDB4MTAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGE4LDB4MDAgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4MmUsMHhjMCwweDA4LDB4ODgsMHgyMiwweGE0LDB4ODAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4YjAsMHgyMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMiwweDAwLDB4MmUsMHhjMCwweDI5LDB4MjgsMHgwMiwweGVjLDB4MDEsMHhhMCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDAwLDB4YTAsMHgwMCwweDJjLDB4NDAsMHgwOCwweDAwLDB4NDIsMHg4NCwweDAwLDB4OTMgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4MDAsMHg2YywweGMwLDB4MGIsMHgzMCwweDA2LDB4NGQsMHgwMCwweDkzLDB4MDAsMHgyYywweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgyMCwweDJmLDB4YzAgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHgzMywweGMwLDB4MGIsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MmUsMHg4MCwweDA4LDB4ODAsMHgwMywweGE0LDB4MDAsMHhiZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0MywweDNkLDB4MTEgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4Y2YsMHgwMywweDNlLDB4YzEsMHg1ZCwweGYwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDEwLDB4M2YsMHg0MCwweDBlLDB4ZTAsMHgwMywweGZjLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4YzAsMHgwZiwweGYwLDB4MDMsMHhiYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgyZiwweGMwLDB4MDMsMHg3NCwweDAwLDB4ZWYgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgyNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTUsMHhmYywweDg4LDB4OWMsMHgyOSwweDNmLDB4MDggfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4MGYsMHhkMiwweDgzLDB4ZWMsMHgwMCwweGZmLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhjYSwweDAzLDB4M2MsMHg0MSwweGNmLDB4MjAgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4NzMsMHgyYywweDBjLDB4YzAsMHgwMywweDMwLDB4MjAsMHhjZiwweDYwLDB4MzMsMHhkOCwweDBmLDB4NzgsMHgwMywweDNmLDB4ODAgfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4ZGQsMHg5MiwweDMzLDB4YzgsMHgwZiwweDUwLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4ODAsMHgxMCwweGU1LDB4NDAsMHg4OCwweDQwLDB4MmUsMHgwNCwweDhiLDB4OTQsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MGUgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4N2YsMHg4ZiwweDllLDB4ODMsMHg2NSwweDgyLDB4Y2YsMHg2OCwweDNlLDB4NTAsMHg4ZCwweDA0LDB4OTIsMHgyZiwweDA0LDB4ZDMgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4NDAsMHg3NCwweGRjLDB4MGQsMHhhMiwweDAyLDB4MjAsMHg0MCwweDg5LDB4MDAsMHgyMiwweGYwLDB4MGIsMHg5OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjOCwweDA5LDB4YTAsMHg4NSwweDJjLDB4MDEgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4MGIsMHgwMCwweDEwLDB4Y2MsMHg0MCwweGEyLDB4MDgsMHgyYywweDAwLDB4ZGIsMHgxMSwweDAyLDB4ODksMHgwMCwweDkzLDB4MzAgfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4MjAsMHgwNSwweDA4LDB4MTMsMHgwMiwweDgwLDB4MDgsMHhhMywweDYwLDB4NjAsMHhjMCwweDBhLDB4YjAsMHg4MiwweDA4LDB4ODQgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4ODEsMHgyMCwweDIwLDB4ZDAsMHgwYiwweDEwLDB4MDIsMHhhMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4MTIsMHg4OCwweDgwLDB4NmUsMHgyMCwweDBiLDB4ODgsMHg4MiwweGVlLDB4MDAsMHhiYSwweDgxLDB4MmUgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4NjAsMHg1YSwweDk4LDB4MDIsMHhhMiwweDAwLDB4OGIsMHgwMCwweDJhLDB4NjAsMHgwOCwweDExLDB4MWEsMHgyYywweDAwLDB4YmIgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiOCwweDBhLDB4MjgsMHgwMCwweDgxLDB4MjAsMHgwMiwweGMwLDB4MGIsMHg5MCwweDAyLDB4YjAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlZCwweDAwLDB4ZDksMHg4MCwweDNlLDB4MjAgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4NGYsMHg5OCwweDAwLDB4ZWIsMHgyMCwweGZiLDB4ZTAsMHgyZSwweDYwLDB4MGIsMHg4YywweDYyLDB4YWUsMHgyMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4MjIsMHg2MCwweDA4LDB4YmMsMHgwMywweGEwLDB4MjAsMHhlYiwweDAwLDB4MjIsMHhjMSwweDBhLDB4MTgsMHgwYiwweDI1LDB4MDAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4ZDksMHgwMCwweGIyLDB4YzAsMHgwZiwweDkwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4ZTAsMHgwMSwweDk0LDB4ODgsMHhmZiwweDAwLDB4M2YsMHgwMSwweDBmLDB4ZDAsMHgwMSwweGYwLDB4MDgsMHhkZCwweDAxLDB4M2YgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4NDIsMHgwNywweDQwLDB4MDMsMHg1YywweDAwLDB4YWYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGY4LDB4MDAsMHhmMCwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4ZjQsMHg1MCwweGZkLDB4ODAsMHgzZiwweGMwLDB4MGYsMHhkMCwweDAzLDB4NzggfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHhhYywweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4MGYsMHg5NCwweDAzLDB4YTgsMHgyMCwweGNhLDB4NDAsMHgzYSwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZWEsMHgwOCwweGZiLDB4MDAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4M2EsMHgwMCwweDRjLDB4ZjYsMHgyMywweDJjLDB4MzAsMHhjYiwweDAwLDB4MzYsMHhjMCwweDBkLDB4OTAsMHgwMywweGExLDB4MDIgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4ZDksMHgwMCwweGJhLDB4YzAsMHgwZiwweDk4LDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4YzgsMHgwNSwweDI0LDB4MDAsMHg4YSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTUsMHgwMiwweGUwLDB4MDgsMHg4OCwweDgwLDB4MjIgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4NzAsMHg4ZiwweDhjLDB4MDIsMHhlMCwweDAwLDB4YmYsMHgwMiwweDIwLDB4MDAsMHgwOCwweGI4LDB4MDIsMHgwZSwweDAwLDB4ZGYgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4MDAsMHgyMywweGRkLDB4MDgsMHg5OCwweDgyLDB4MmEsMHgwMCwweDg5LDB4ODAsMHgyMywweGMwLDB4MGIsMHg1MCwweDFhLDB4MzIgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0NCwweDAwLDB4ODMsMHgwNSwweDI0LDB4NDEgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4MDksMHgxMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4OTAsMHgyYywweDgwLDB4MWIsMHgyNCwweDgyLDB4Y2MsMHgwMCwweGJiLDB4MDAgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MmMsMHg4MCwweDA4LDB4MDQsMHgwOCwweDA0LDB4MDEsMHg4YiwweDAwLDB4MjIsMHhjMCwweDI4LDB4MTIsMHgwMiwweDZjLDB4ODAgfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4ODEsMHg0OCwweDI0LDB4YzQsMHgwYiwweDEwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4NDIsMHg4NiwweDgwLDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGY2LDB4OTAsMHg4ZCwweDgwLDB4MjEgfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MjIsMHgwYiwweDU4LDB4MDIsMHhkNywweDQwLDB4YjcsMHg5MCwweDIxLDB4ZTAsMHgwOCwweDQ5LDB4OTIsMHgxZSwweDUzLDB4OTcgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4ODEsMHgyMSwweGUwLDB4NDgsMHhjOCwweDBhLDB4NTIsMHgyMiwweDg1LDB4ODgsMHgyNSwweGUwLDB4MGIsMHg1OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODMsMHgwMCwweDM0LDB4YzAgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MGYsMHgwMCwweDAzLDB4Y2UsMHgyMCwweGMzLDB4MzAsMHg3YywweDk0LDB4MGIsMHgzNCwweDgzLDB4Y2MsMHgxNCwweGYzLDB4MDIgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4M2MsMHg4MCwweDBjLDB4MDQsMHgwMywweDA0LDB4NjAsMHhjMywweDAwLDB4YjAsMHhjMCwweDBjLDB4MTAsMHgwMywweGVjLDB4MDAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4YzksMHgwMCwweDNjLDB4YzQsMHgwZiwweDExLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4NDAsMHgxZCwweDljLDB4MDAsMHhlZSwweDAxLDB4M2YsMHhjMCwweDRmLDB4ZTEsMHgwMywweGQ0LDB4NDAsMHhmNSwweDE2LDB4N2EgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4YzAsMHg0ZSwweGYwLDB4MDMsMHhmNCwweDEwLDB4MzcsMHgwNSwweDNkLDB4YzAsMHgwZiwweGMwLDB4MGIsMHhkYywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgzYiwweGMyLDB4MGUsMHhkMCwweDA3LDB4YmMsMHgwMiwweGVmLDB4MDAsMHgzYiwweGM2LDB4MGYsMHhkMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4ZGQsMHg4NCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4MDQsMHhmMCwweDAzLDB4NmMsMHgwMiwweGNiLDB4MDIsMHg3ZSwweGMwLDB4MWYsMHhhMCwweDUzLDB4ZWMsMHgwMCwweGNiLDB4MjAgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MzQsMHg0MCwweDBjLDB4ZDAsMHgwYiwweDIwLDB4MTAsMHhlYiwweDAwLDB4MWUsMHhlMCwweDBmLDB4MzAsMHgwYiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4YzEsMHgwMCwweDMyLDB4YzAsMHgwZiwweDkxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4MCwweDA4LDB4NjAsMHgwMCwweDE0LDB4MDAsMHg4NSwweDAwLDB4MmQgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4NTIsMHhkNCwweDA0LDB4ODMsMHgyOCwweDI5LDB4YzAsMHgyOCwweDUwLDB4MDMsMHg1MCwweDAwLDB4ODcgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4NDAsMHgyNSwweGM4LDB4MGYsMHg2MCwweDAyLDB4MDQsMHgwMCwweGE3LDB4MDAsMHgzZCwweGM4LDB4MGIsMHg1MiwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4ZSwweDAwLDB4OTUsMHg4MCwweDIxLDB4ZTAgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4MDksMHgzOCwweDAyLDB4MWUsMHgxMSwweGE3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDUyLDB4Y2UsMHgwYSwweDk3LDB4OTUgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MjEsMHhlMCwweDE5LDB4NWMsMHgwMiwweDBlLDB4MDAsMHhhNywweDgwLDB4MjksMHhjOCwweDBiLDB4ZjgsMHgwMiwweDFlLDB4MjAgfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4OGQsMHg4MCwweDIxLDB4ZTAsMHgwYiwweDU4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MiwweGUwLDB4YTAsMHhlOCwweDI5LDB4MzAsMHgwNiwweDBlLDB4NTAsMHhhYiwweDgwLDB4MmMgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4ZjAsMHgwYiwweDMxLDB4NDIsMHhjYywweDAwLDB4OTMsMHgwMCwweDI4LDB4YzQsMHgwOSwweDk4LDB4MDIsMHg0YywweDI4LDB4ODMgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgyNCwweGMwLDB4MGEsMHhiMCwweDAyLDB4MGQsMHgwMCwweGEyLDB4NTgsMHgyOCwweGMwLDB4MGIsMHgxMCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZGUsMHg4MCwweDMxLDB4YTAgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4MDksMHhlMiwweDBiLDB4NzgsMHgwNCwweGVlLDB4YTQsMHgyZiwweGE0LDB4OGIsMHhlYywweDAyLDB4ZDgsMHgwMCwweGRhLDB4MDAgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4MjcsMHg4MSwweDBkLDB4ZWMsMHgwNiwweDFiLDB4MDAsMHhlYSwweDA0LDB4M2UsMHg4MCwweDBiLDB4ZTAsMHgwMywweDNiLDB4MDAgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4Y2UsMHhjMCwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4ODAsMHhmOCwweDEwLDB4M2UsMHgwNSwweDBlLDB4ODgsMHgwMywweGUwLDB4MDgsMHg5OCwweDQwLDB4M2UgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwZiwweDg0LDB4ODMsMHhlMSwweDQwLDB4ZTgsMHgwMCwweDNhLDB4MDIsMHgwZSwweDgwLDB4NDMsMHhlMSwweDQwLDB4ZjggfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhjNCwweDAwLDB4ZTksMHgwMCwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MDQsMHgyMCwweGU5LDB4OTAsMHgzMiwweDY4LDB4MGUsMHg5OCwweDAzLDB4YTQsMHgwMCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4MzAsMHg0MCwweDBjLDB4OTQsMHg4MywweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGE0LDB4MDAgfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4YzksMHgwMCwweDMwLDB4NTAsMHgwYywweDFhLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDQwLDB4MmUsMHg1MCwweDI4LDB4OTAsMHgwYSwweDI0LDB4MDgsMHg4OSwweDA2LDB4MTYgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4NjEsMHgwYiwweDljLDB4MDIsMHhlNCwweDIwLDB4YTksMHgwMCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDIsMHgyNywweDYwLDB4YTkgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MjgsMHg5MCwweDFhLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzNiwweDQwLDB4MjgsMHg5OCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyYywweDAwLDB4YTksMHgwOCwweDJlLDB4YzIgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4MDksMHgxMCwweDAwLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgwNiwweDQwLDB4ODksMHg5NiwweDA2LDB4ZTYsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjQsMHg0MCwweDA4LDB4OTAsMHgwMiwweDBjLDB4MDYgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4ODMsMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDQ0LDB4MmMsMHg1MCwweDA4LDB4MTQsMHgwMiwweDA1LDB4ODAsMHg4MSwweDIwLDB4NjQgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4NzAsMHgxYiwweDE0LDB4MDIsMHhlNCwweDgwLDB4YTEsMHgyMCwweDY0LDB4NDAsMHgxOSwweDEyLDB4MGEsMHgwNCwweDgwLDB4YTEgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgyYywweDUwLDB4MTgsMHgxNCwweDAyLDB4ODUsMHgwMCwweDgxLDB4NDAsMHgyNCwweDQwLDB4NDAsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTAsMHgwMCwweDNjLDB4MDAgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4MGQsMHg4MCwweDAyLDB4MDAsMHgwMCwweGFhLDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTIgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4NzIsMHgxNCwweDBjLDB4MDUsMHgxNiwweDIwLDB4MDgsMHhjOCwweDUwLDB4M2UsMHgwMSwweDBjLDB4ODAsMHgwMywweGEwLDB4MDQgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4OTgsMHgxOSwweGY1LDB4MDIsMHhmZCwweDQwLDB4M2YsMHhkMCwweDBmLDB4ZDQsMHgyMywweGY0LDB4NDQsMHhmZCwweDE0LDB4N2YgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4NTAsMHgwZiwweGQ0LDB4MDcsMHhmNCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NTAsMHgwNywweGQxLDB4MjMsMHhmNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4NDAsMHgxZSwweDUwLDB4MDcsMHhkMCwweDBiLDB4NzUsMHgwMCwweGZkLDB4MDIsMHgzZSwweDUwLDB4MGYsMHhkNCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDAwLDB4YzksMHhhOCwweDNlLDB4NzIgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4MGYsMHg5OCwweDAzLDB4ZTYsMHhjMCwweGZkLDB4YTAsMHhiMywweDQwLDB4MGYsMHhkMCwweDAzLDB4NzcsMHg4MCwweGNkLDB4OTAgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4N2YsMHg0MCwweDBmLDB4ZGEsMHhhMywweDE2LDB4OTAsMHhhOSwweGMwLDB4MzIsMHg2MCwweDRjLDB4YjEsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4YzEsMHgwMCwweDMzLDB4NmEsMHgwYiwweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MzgsMHgxMCwweGUzLDB4NDAsMHg4OCwweGUwLDB4MmUsMHgzMCwweDBiLDB4OGQsMHgwMiwweGYzLDB4NDAsMHhiOCwweGU4LDB4NzYgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MDAsMHg0ZiwweDgwLDB4MGEsMHgyMiwweDgwLDB4ODgsMHg5MCwweDZlLDB4MjgsMHg4ZiwweDhhLDB4MDMsMHg2MSwweDQ0LDB4ZjggfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4ZTEsMHgzZSwweDJhLDB4MDgsMHg4OCwweDAzLDB4NDIsMHhhMCwweGRjLDB4YTAsMHgzZSwweDEwLDB4MGIsMHg4NSwweDBhLDB4MGUgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweGEwLDB4ODUsMHgwOCwweDJkLDB4NDggfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MWIsMHg1MiwweDgyLDB4ZDQsMHg4MCwweGIxLDB4MTQsMHgyMCwweDQwLDB4MGIsMHgxOCwweDAyLDB4MDUsMHg4MiwweDgxLDB4MDAgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4NmMsMHg0MiwweDBiLDB4MTIsMHg4MiwweDA0LDB4MDAsMHhhMSwweDYwLDB4MjEsMHg1MCwweDBiLDB4NTAsMHgwMiwweDE0LDB4OTAgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4OTUsMHgyYywweDI4LDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4ZCwweDQ0LDB4MmYsMHg0MCwweDBiLDB4ZDQsMHgwMiwweGY0LDB4MDQsMHhiOSwweDA4LDB4MjIgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4NDAsMHgwYSwweDkyLDB4MDIsMHgyYywweDg0LDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYSwweDE0LDB4MDIsMHg2YywweDgwLDB4YTkgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4MDEsMHgyYSwweDQwLDB4MDksMHg1MCwweDBhLDB4NWMsMHgwMiwweDhkLDB4NjAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDQyLDB4MDYgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDYyLDB4YzksMHgwMiwweDNlLDB4NTQgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4NDAsMHgyMiwweDQ2LDB4MGIsMHg5OCwweDAzLDB4NjcsMHgyMCwweGM5LDB4MDEgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MmUsMHg2OSwweDBiLDB4OTQsMHgwYiwweDI1LDB4MjAsMHhhOSwweDAwLDB4MjIsMHg0MCwweDJkLDB4OTIsMHgwYSwweDI2LDB4MjIgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4OTksMHgwMCwweDJhLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MjgsMHgwMSwweDg2LDB4MDIsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4ODAsMHhmMSwweGEwLDB4M2UgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4NjIsMHgwZiwweDk4LDB4ODMsMHhjNiwweDIwLDB4ZjksMHgwMCwweDNlLDB4NDksMHgwZiwweDkwLDB4ODMsMHhlNCwweDAwLDB4NzEgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDBiLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDEwLDB4YzgsMHgwMCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4NGYsMHg4MCwweDQzLDB4YjAsMHgwMCwweGM4LDB4NDEsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjEsMHgwMiwweGM4LDB4MDIgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4M2UsMHgxMCwweDRjLDB4ODAsMHgwMywweDAxLDB4MjAsMHhjOCwweDAwLDB4M2IsMHgwMCwweDBjLDB4YzAsMHgwMywweGIwLDB4MDAgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4Y2MsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDAsMHg4YSwweDgwLDB4MmUsMHg4MCwweDBiLDB4YTAsMHgwMiwweGY4LDB4MDQsMHg4ZSwweDAwLDB4MjMgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4YjIsMHgwZSwweGUwLDB4ODIsMHhmOSwweDA0LDB4OGEsMHgwMCwweDJlLDB4ODEsMHgwYywweGUwLDB4MGEsMHgzYSwweDgwLDB4ZGEgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgyMiwweGI2LDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyYSwweDgwLDB4MGIsMHg2MCwweDBiLDB4MGEgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0NCwweDAyLDB4OTMsMHg4MSwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4NGIsMHgzMCwweDAyLDB4YzgsMHgwMCwweDgzLDB4Y2EsMHgyMCwweGUwLDB4MTksMHhiMCwweDA2LDB4OGMsMHgwMCwweDgxLDB4MDQgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4NDQsMHg0MCwweDA4LDB4MzQsMHgwMiwweDBkLDB4MDAsMHg4MywweDAwLDB4MmEsMHgwMCwweDA4LDB4MDAsMHgwYSwweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4ODgsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0YiwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4YTAsMHgwMSwweDA0LDB4MDIsMHg5NywweDA4LDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwNiwweGNhLDB4MDAsMHg4MywweDA5LDB4MjEgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4YzAsMHgwYSwweDcwLDB4MDIsMHhkYywweDAwLDB4ODUsMHgzMSwweDJkLDB4NjgsMHgwOSwweDMwLDB4MDIsMHgxYywweDE0LDB4OTMgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4MjAsMHgyMCwweGMwLDB4MDgsMHhmMCwweDQyLDB4OWMsMHgwMiwweDhmLDB4MDAsMHgyOSwweDQwLDB4MDMsMHg3MCwweDEyLDB4MjggfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4OTYsMHg4NCwweDNkLDB4YTAgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MGYsMHg3OCwweDAzLDB4OWEsMHgwMiwweDg3LDB4ODAsMHhiMSwweGUwLDB4MGIsMHg3OCwweDAzLDB4YjYsMHgwMCwweGM1LDB4YTAgfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MzUsMHg2MSwweDBjLDB4NzgsMHgxMywweDFlLDB4MDIsMHhjNywweDgwLDB4MjksMHgwMCwweDBjLDB4NDgsMHgwMywweDkwLDB4MDAgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4YzQsMHg4MCwweDMxLDB4NjAsMHgwZiwweDU4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MDgsMHgxZCwweGE0LDB4MDAsMHhlYSwweDAwLDB4M2UsMHg4MCwweDBmLDB4YTAsMHgwMywweGU4LDB4MDgsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4ODAsMHgwZiwweDkwLDB4MTMsMHhlNCwweDA4LDB4ZjksMHgwMCwweDNjLDB4NTAsMHgyZSwweGYwLDB4MDMsMHhlOCwweDA4LDB4ZmIgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHgzMCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgzMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhkNiwweDAwLDB4Y2QsMHg4MCwweDMzLDB4ZTAgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4MGMsMHhmOCwweDAzLDB4ZmEsMHgwMCwweGZkLDB4ODAsMHgzZiwweGEwLDB4MGQsMHhmOCwweDAzLDB4ZmEsMHg0MCwweGNkLDB4ZDAgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4NzcsMHg3ZSwweDBjLDB4ZTgsMHg0MywweDFlLDB4MDAsMHhjZiwweGQ4LDB4M2YsMHhlMCwweDBjLDB4YzgsMHgwMywweDNhLDB4YzQgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4Y2MsMHg4MCwweDMzLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4YTgsMHgxMSwweDk0LDB4MDIsMHg4ZCwweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMywweGQ4LDB4MTAsMHgzNSwweDIwLDB4OGIgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4ZDQsMHgwZCwweDY0LDB4MDMsMHhkOCwweGMwLDB4ODUsMHgwMCwweDJmLDB4NGUsMHgwNywweDY0LDB4MDIsMHg5YywweDAyLDB4ZDcgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4MzAsMHgyZiwweDA0LDB4MGQsMHhmMSwweDBiLDB4NTQsMHg0MCwweGFmLDB4MDAsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NCwweDQwLDB4ODQsMHgxOCwweDIxLDB4ODAgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGEsMHgyMCwweGI1LDB4MDAsMHgwOSwweDAwLDB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwNCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4NmQsMHg0YywweDg5LDB4NjAsMHgwMiwweDVjLDB4NDAsMHg5NywweDAwLDB4NmQsMHhjMCwweDA5LDB4NDAsMHgwMiwweDU4LDB4ODAgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4ODQsMHg4OCwweDI1LDB4NDAsMHgwOCwweGQwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4MjAsMHgxNCwweGM2LDB4NDgsMHg4MCwweDAwLDB4MjAsMHg4MCwweDA4LDB4YWMsMHgwMiwweGE4LDB4MDAsMHhiMSwweDAwLDB4YTggfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4ODgsMHgwOSwweDIyLDB4MDIsMHg4NiwweDQyLDB4ODEsMHgwMCwweDZjLDB4NTIsMHgwYiwweDIwLDB4MDIsMHhjNywweDUyLDB4ODMgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgyYywweDAwLDB4MDgsMHgzNCwweDgyLDB4NjcsMHgwMCwweGEzLDB4ODAsMHgyMCwweDQwLDB4MDgsMHgzMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMywweDAwLDB4Y2IsMHhjMCwweGIyLDB4NDAgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4MmMsMHg5MCwweDgyLDB4ZTYsMHgwMCwweGJiLDB4ODAsMHhiZSwweDc4LDB4MDgsMHg4ZSwweDAyLDB4ZWUsMHgwMCwweDhkLDB4MDAgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MjcsMHg2MCwweDBkLDB4OTAsMHgwYSwweDZmLDB4MDAsMHg5ZiwweDAyLDB4MmUsMHgwMCwweDA5LDB4YjQsMHgwMywweDY3LDB4ODAgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4Y2EsMHg0MCwweGU0LDB4YzAsMHgwYywweDMwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4ODAsMHhmYiwweDIyLDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGU0LDB4MDAsMHhmYiwweDgwLDB4M2UgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZSwweDcwLDB4MjMsMHhhYywweDIwLDB4ZmIgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4OGYsMHg4MCwweDAzLDB4ZTksMHgyMCwweGY5LDB4MDgsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4ZTAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDAwLDB4YzYsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4MGYsMHhkMSwweDgzLDB4MzQsMHg0MCwweGNmLDB4MDAsMHgzZCwweDQwLDB4MGMsMHhkMCwweDAzLDB4ZGUsMHg1MCwweDBkLDB4MDAgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4NzMsMHg0MCwweDBjLDB4ZDEsMHgwMywweDdjLDB4NDAsMHg4NywweDAyLDB4YjMsMHgwMCwweDBkLDB4ZjQsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4Y2UsMHgyMCwweDMyLDB4NDAsMHgwYywweGQwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4ODEsMHgwNCwweDYxLDB4MjIsMHg4YSwweDAwLDB4MjIsMHgwMCwweDBiLDB4ODAsMHg0MCwweDI1LDB4MDAsMHg4OSwweGMzLDB4MmUgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MjAsMHgwYSwweDk4LDB4MDMsMHhhMSwweDAwLDB4ODksMHgwMCwweDM2LDB4NDAsMHg4OCwweDk0LDB4MDIsMHgwZiwweDAxLDB4YWIgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4MDAsMHgzMiwweGMwLDB4MDgsMHgwNCwweDBhLDB4MjksMHgwMCwweGE5LDB4MDIsMHhhMiwweDQwLDB4MGQsMHhiMCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwMCwweDAwLDB4ODksMHgwMCwweDIyLDB4NjEgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjUsMHgwMSwweDliLDB4ODgsMHgyZSwweDYwLDB4MDgsMHg4OCwweDAyLDB4ZTgsMHgwMCwweGIxLDB4MDIgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MjQsMHg0MCwweDE4LDB4OTAsMHgwMiwweDJjLDB4MDAsMHhhYiwweDAxLDB4MjAsMHhjMSwweDA4LDB4YjQsMHg0MiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4ODIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MDAsMHgwYSwweDA0LDB4NDYsMHg4MywweDAxLDB4MmMgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4NDAsMHgxYSwweDAwLDB4MDYsMHg4MCwweDAwLDB4ODEsMHgwMCwweDI0LDB4NDAsMHgwOCwweDIwLDB4MGEsMHgwYywweDAxLDB4YTMgfSwKLSAgMTYsIDB4ZmRhMCwgMCwgezB4MDAsMHgyNCwweDAwLDB4MDgsMHg4MCwweDAyLDB4MDAsMHgwMCwweGExLDB4MDAsMHgyMCwweDQwLDB4MDksMHgzMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZmRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAyLDB4YzgsMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4ZmRjMCwgMCwgezB4MGYsMHg5MCwweDAyLDB4MjUsMHgwMCwweGRhLDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAyLDB4Y2MsMHgwMCwweGZkLDB4MDAgfSwKLSAgMTYsIDB4ZmRkMCwgMCwgezB4MzcsMHg0MCwweDBjLDB4MTAsMHgxMywweDJjLDB4MDIsMHhhZiwweDAwLDB4MzIsMHhjMCwweDBkLDB4YjAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmRlMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4NDAsMHg0YywweDkwLDB4MGIsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmRmMCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDA3LDB4YzAsMHgwMywweGY0LDB4MWMsMHhmNCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4ZmUwMCwgMCwgezB4MDAsMHgxZiwweGMwLDB4MjMsMHhiMCwweDAyLDB4OWQsMHgwMSwweDNmLDB4NDAsMHg4ZiwweGMwLDB4MDcsMHhmYywweDAyLDB4ZmYgfSwKLSAgMTYsIDB4ZmUxMCwgMCwgezB4MDAsMHg3YiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ZmUyMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYSwweDAwLDB4Y2IsMHg4MCwweDNmLDB4MjQgfSwKLSAgMTYsIDB4ZmUzMCwgMCwgezB4MGEsMHhjMSwweDAzLDB4ZmMsMHgyNCwweGNkLDB4MjAsMHgzNywweDBhLDB4MGMsMHhjMiwweDgzLDB4MzAsMHg4MCwweGRjLDB4MDIgfSwKLSAgMTYsIDB4ZmU0MCwgMCwgezB4M2YsMHhjYywweDBkLDB4ZDksMHgwMywweDNjLDB4NTgsMHhkZiwweDMwLDB4MzMsMHhjOCwweDBkLDB4ZjQsMHgyMywweDNjLDB4NDAgfSwKLSAgMTYsIDB4ZmU1MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzUsMHg0ZiwweGYwLDB4MjMsMHhiMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmU2MCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDIsMHgwYiwweDgyLDB4MmUsMHgwOCwweDBkLDB4YjcsMHgwMiwweGZkLDB4MDAsMHg4MywweDE4LDB4MGEgfSwKLSAgMTYsIDB4ZmU3MCwgMCwgezB4NTgsMHgwYSwweDg0LDB4YTIsMHhhNSwweGEwLDB4ODksMHgzMCwweDIyLDB4NTUsMHgwOCwweDEyLDB4NjIsMHhiZCwweDkwLDB4OGYgfSwKLSAgMTYsIDB4ZmU4MCwgMCwgezB4NjIsMHgyMSwweGQ2LDB4NDgsMHhmMywweDAyLDB4M2MsMHhjNSwweGJmLDB4NDgsMHgyZiwweGQ4LDB4NGIsMHhiNywweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ZmU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhlYywweDAwLDB4ODMsMHgwMCwweDJlLDB4ODkgfSwKLSAgMTYsIDB4ZmVhMCwgMCwgezB4MjgsMHgwMCwweDAyLDB4ZWMsMHhhMCwweDg5LDB4MjIsMHgyOCwweDgyLDB4MDgsMHgxMiwweDAyLDB4MjgsMHg0MCwweDlhLDB4MDggfSwKLSAgMTYsIDB4ZmViMCwgMCwgezB4MjgsMHhjOCwweDg4LDB4YjIsMHgwYSwweDBkLDB4MTAsMHg5MywweDEwLDB4YTAsMHhjOCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAgfSwKLSAgMTYsIDB4ZmVjMCwgMCwgezB4YjMsMHg2MCwweDJjLDB4YzQsMHgwYiwweDMwLDB4YzIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg4YiwweDAwLDB4MmUsMHg4MCwweDA4LDB4YjEsMHgwMiwweGVjLDB4MDIsMHg4YiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZmVlMCwgMCwgezB4ZDAsMHgwYSwweDkwLDB4MDIsMHhhYywweDAwLDB4MGIsMHgwMSwweDI2LDB4NDAsMHgwOCwweDk0LDB4MDIsMHg4YywweDAwLDB4OGIgfSwKLSAgMTYsIDB4ZmVmMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4ZmYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTQsMHg4YywweDIwLDB4Y2IsMHgwMiwweDNlLDB4MmQgfSwKLSAgMTYsIDB4ZmYxMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4ZWMsMHgwOCwweGM5LDB4ODAsMHgxZSwweDA0LDB4MGMsMHhiMCwweDAzLDB4MDEsMHgwOCwweDUwLDB4MTggfSwKLSAgMTYsIDB4ZmYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MDQsMHgwMywweDJjLDB4MDAsMHhkYiwweDAxLDB4MzIsMHhjMCwweDBjLDB4YjAsMHgwYiwweDJjLDB4MDggfSwKLSAgMTYsIDB4ZmYzMCwgMCwgezB4YmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmY0MCwgMCwgezB4ZTEsMHgwMCwweGJjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHg2MCwweDBmLDB4YzAsMHgyMywweGVjLDB4MDAsMHhmZiwweGMwLDB4YmUgfSwKLSAgMTYsIDB4ZmY1MCwgMCwgezB4NjAsMHg4ZiwweGM5LDB4MjMsMHhmNiwweDUwLDB4ZWQsMHg4MCwweGI4LDB4NTAsMHhhZiwweGMwLDB4MDMsMHhmYywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ZmY2MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4ZmY3MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ZmY4MCwgMCwgezB4MGQsMHg5MCwweDAzLDB4MmMsMHgwMCwweDg5LDB4MDAsMHgzZSwweDk4LDB4OGMsMHgzMCwweDAzLDB4NjEsMHg4MCwweGZhLDB4NDAgfSwKLSAgMTYsIDB4ZmY5MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4YTUsMHgwMywweDJjLDB4MDAsMHhmYiwweDAxLDB4M2MsMHhjMCwweDJjLDB4MzAsMHgwMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4ZmZhMCwgMCwgezB4ZGIsMHgwMiwweDMyLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhkMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmZiMCwgMCwgezB4Y2EsMHgwMCwweDJlLDB4ODAsMHg4YiwweDgyLDB4YTAsMHhjMCwweDhjLDB4OTAsMHgwMiwweDNjLDB4MDAsMHg4YiwweGYwLDB4MjIgfSwKLSAgMTYsIDB4ZmZjMCwgMCwgezB4YzIsMHgwZCwweDgwLDB4MDIsMHgyNywweDAwLDB4OGIsMHgxMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MjIsMHgzYywweDAwLDB4YmYgfSwKLSAgMTYsIDB4ZmZkMCwgMCwgezB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwMCwweGJmLDB4MDEsMHhhMywweGMwLDB4MGIsMHhmMCwweDEyLDB4ZjIgfSwKLSAgMTYsIDB4ZmZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0YywweDAwLDB4YjMsMHgxYywweDIwLDB4NDAgfSwKLSAgMTYsIDB4ZmZmMCwgMCwgezB4MDgsMHgwMCwweDA2LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyMCwweGQwLDB4MDgsMHgyMCwweDAyLDB4NGMsMHgwMCwweGEzLDB4MDAgfSwKLSAgMTYsIDB4ODAxMCwgMCwgezB4MmMsMHhjMCwweDA4LDB4MTAsMHgwYSwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHhjMCwweDA5LDB4MzAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4ODAyMCwgMCwgezB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhmOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODAzMCwgMCwgezB4MjIsMHgxMSwweDFlLDB4MDAsMHg5NywweGEwLDB4MjEsMHhhMCwweDA4LDB4NzksMHgwMiwweDFlLDB4MDAsMHg5NywweDkwLDB4MjEgfSwKLSAgMTYsIDB4ODA0MCwgMCwgezB4NjAsMHgwOSwweGU4LDB4MjIsMHgzZSwweDAwLDB4YWYsMHg4NCwweDIxLDB4ZTQsMHg0OCwweDVjLDB4MDIsMHgxZSwweDAwLDB4YjcgfSwKLSAgMTYsIDB4ODA1MCwgMCwgezB4OTAsMHgyZCwweGUwLDB4MDksMHg3OCwweDAwLDB4MWUsMHgwOSwweGIzLDB4OTAsMHgyMSwweGU0LDB4MGIsMHg3OCwweDAyLDB4ZDggfSwKLSAgMTYsIDB4ODA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTgsMHgyYywweDQwLDB4YjMsMHhiMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ODA3MCwgMCwgezB4MmMsMHg4MSwweDEzLDB4MGMsMHg0MiwweGQxLDB4MDAsMHhiMCwweGMwLDB4OGMsMHgzMCwweDAzLDB4NDgsMHgyMCwweGUzLDB4MDEgfSwKLSAgMTYsIDB4ODA4MCwgMCwgezB4M2MsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhmMywweDEwLDB4M2MsMHhjMCwweGNkLDB4MzIsMHgwYiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4ODA5MCwgMCwgezB4ZDMsMHgwMCwweDMwLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODBhMCwgMCwgezB4NDAsMHgxNSwweGJjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDBiLDB4ZjEsMHgwMywweGZkLDB4MDAsMHg2ZCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4ODBiMCwgMCwgezB4NDAsMHgxZiwweDcwLDB4MDcsMHhkOCwweDQxLDB4YzMsMHgxMCwweDNiLDB4YzAsMHgwZiwweGQxLDB4MDMsMHhmZCwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ODBjMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDAzLDB4ZWMsMHgxMCwweGZmLDB4MDgsMHgzZiwweGMzLDB4MGYsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4ODBkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhlYywweDA0LDB4ZmIsMHgwMiwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODBlMCwgMCwgezB4MGIsMHhhMCwweDAzLDB4YWMsMHgwMCwweGRiLDB4MDAsMHgzNiwweDgwLDB4MGQsMHhiMCwweDAzLDB4YWMsMHgwMCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4ODBmMCwgMCwgezB4MzYsMHhjMSwweDJlLDB4OTAsMHgwMywweDJjLDB4MDAsMHhjYiwweGEwLDB4MzYsMHhkYywweDBmLDB4YjAsMHgwMywweDJkLDB4NjggfSwKLSAgMTYsIDB4ODEwMCwgMCwgezB4ZmIsMHhhMCwweDkyLDB4YzIsMHgwYywweGIxLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODExMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDgsMHgzNywweDAwLDB4MmQsMHhjMCwweDBiLDB4ZTAsMHgwMiwweDFkLDB4ODAsMHhiNywweDA0LDB4MjMgfSwKLSAgMTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwYSwweDQwLDB4MDIsMHgxYywweDE4LDB4ODQsMHgwMCwweDI1LDB4YzAsMHgxOCwweDUwLDB4MzIsMHgwZCwweDgwLDB4YTMgfSwKLSAgMTYsIDB4ODEzMCwgMCwgezB4MzAsMHgyMSwweGNjLDB4MGIsMHgzNCwweDgyLDB4MWMsMHgxMCwweGI3LDB4MzAsMHgyMSwweGM4LDB4MDgsMHg3MCwweDAyLDB4ZDIgfSwKLSAgMTYsIDB4ODE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDIwLDB4YjcsMHg4MCwweDJkLDB4NjAgfSwKLSAgMTYsIDB4ODE1MCwgMCwgezB4MGIsMHhmYywweDIyLDB4OWUsMHgwMCwweDhkLDB4ODAsMHgyNSwweGEwLDB4MDgsMHhmOCwweDIyLDB4OTIsMHgwMCwweGI0LDB4ODAgfSwKLSAgMTYsIDB4ODE2MCwgMCwgezB4MjUsMHhlMCwweDA4LDB4ZjgsMHgwMiwweDFlLDB4MDAsMHg4NywweGIwLDB4MjEsMHhlMCwweDA5LDB4N2EsMHgwMiwweDFlLDB4MTggfSwKLSAgMTYsIDB4ODE3MCwgMCwgezB4YjMsMHg4MCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhmMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODE4MCwgMCwgezB4NDgsMHgwNCwweGM1LDB4MjAsMHhiMywweDAxLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMiwweDJjLDB4MDgsMHhiOSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ODE5MCwgMCwgezB4MDMsMHgwYSwweDAwLDB4ODIsMHgyMiwweDA4LDB4OTAsMHgwZCwweDI2LDB4ZTQsMHgwOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YTMgfSwKLSAgMTYsIDB4ODFhMCwgMCwgezB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDAyLDB4NmMsMHgwMCwweGIzLDB4MDAsMHgyMiwweGMwLDB4MjgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODFiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg5OSwweDAwLDB4ZmEsMHgwMiwweDNmLDB4OTAgfSwKLSAgMTYsIDB4ODFjMCwgMCwgezB4MGYsMHhlYywweDIzLDB4YTgsMHgwMCwweGRhLDB4MDAsMHgzNSwweDgwLDB4MGQsMHhlMCwweDAyLDB4YmEsMHgwMiwweGZlLDB4YzIgfSwKLSAgMTYsIDB4ODFkMCwgMCwgezB4YjYsMHhhMCwweDBlLDB4ZTQsMHgwYiwweDI4LDB4MDAsMHhjYSwweDAwLDB4YjIsMHg4MCwweDBmLDB4YTAsMHgwYiwweDI4LDB4MDAgfSwKLSAgMTYsIDB4ODFlMCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODFmMCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODIsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ODIwMCwgMCwgezB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDQwLDB4ZTgsMHgxMCwweDNhLDB4MDAsMHg0ZiwweDg0LDB4ODMsMHhlMCwweDAwLDB4ZjggfSwKLSAgMTYsIDB4ODIxMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4ODIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHhlNSwweDAwLDB4YzksMHgwMiwweDNlLDB4NDAgfSwKLSAgMTYsIDB4ODIzMCwgMCwgezB4MGYsMHg5MCwweDIzLDB4MjQsMHgwMCwweGM5LDB4MDAsMHgzMiwweDY4LDB4MmYsMHgxMCwweDAzLDB4MjQsMHgwMCwweGU5LDB4MTQgfSwKLSAgMTYsIDB4ODI0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwYiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MWUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODI1MCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODI2MCwgMCwgezB4ODAsMHgxNCwweDY0LDB4MDAsMHg4OSwweDAxLDB4MmUsMHg0MCwweDRiLDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweGMyLDB4YTIgfSwKLSAgMTYsIDB4ODI3MCwgMCwgezB4NjAsMHg4OCwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHhjMSwweGEyLDB4NDAsMHg0OCwweDE2LDB4MDMsMHg2NCwweDAyLDB4ODkgfSwKLSAgMTYsIDB4ODI4MCwgMCwgezB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MjgsMHg5MCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4ODI5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDQsMHgyNCwweDAwLDB4ODksMHgwMiwweDJlLDB4NDAgfSwKLSAgMTYsIDB4ODJhMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4ODksMHg5MCwweDAyLDB4YWMsMHgwMCwweGExLDB4MDggfSwKLSAgMTYsIDB4ODJiMCwgMCwgezB4MjIsMHg0MCwweDA5LDB4OTgsMHgwMiwweGE0LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODJjMCwgMCwgezB4ODksMHgwMCwweDI2LDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODJkMCwgMCwgezB4MDgsMHgwMCwweDI0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MSwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4MjIgfSwKLSAgMTYsIDB4ODJlMCwgMCwgezB4NDgsMHgwOCwweDEyLDB4MDIsMHhjNCwweDgxLDB4ODEsMHgyNCwweDAyLDB4NDgsMHgwYSwweDkwLDB4MDIsMHg4NCwweGEwLDB4ODEgfSwKLSAgMTYsIDB4ODJmMCwgMCwgezB4MjgsMHg2YywweDRhLDB4MDgsMHgxMiwweGQyLDB4MDQsMHhhMSwweDgxLDB4MjgsMHgyYywweDRhLDB4MDgsMHgxMiwweDgyLDB4MDIgfSwKLSAgMTYsIDB4ODMwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHg2MSwweDQwLDB4YzgsMHgwMCwweDJlLDB4MTQgfSwKLSAgMTYsIDB4ODMxMCwgMCwgezB4MGYsMHg4NSwweDBiLDB4MjEsMHg0MiwweGNhLDB4NTAsMHgyMiwweDE0LDB4MGQsMHg4NSwweDQzLDB4YTEsMHg0MCwweGU4LDB4NTAgfSwKLSAgMTYsIDB4ODMyMCwgMCwgezB4MzAsMHgwMCwweDBkLDB4ODUsMHgwMiwweGExLDB4YzAsMHhkOCwweDIwLDB4M2EsMHgwOCwweDJjLDB4ODIsMHgwYiwweDIwLDB4ODIgfSwKLSAgMTYsIDB4ODMzMCwgMCwgezB4YzgsMHgyMCwweDM0LDB4MDksMHg4YywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODM0MCwgMCwgezB4OTgsMHgwZCwweGZjLDB4MDIsMHhmOSwweDAwLDB4M2YsMHg0MCwweDRmLDB4ZDEsMHgwMywweGU0LDB4NDAsMHhmNSwweDE0LDB4YmYgfSwKLSAgMTYsIDB4ODM1MCwgMCwgezB4NDQsMHgwZCwweDUxLDB4MjMsMHg1YywweDQwLDB4ZjUsMHgxMCwweDFmLDB4NGUsMHg0ZCwweDUwLDB4MDMsMHg2NCwweDA4LDB4ZjkgfSwKLSAgMTYsIDB4ODM2MCwgMCwgezB4MjgsMHgzZSwweDRhLDB4OGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzYSwweDRiLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4ODM3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhmNCwweDQwLDB4ZmQsMHgwMCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ODM4MCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGRkLDB4MDAsMHgzYiwweDQwLDB4MGUsMHg5MCwweDAzLDB4NzQsMHgwMCwweDVkLDB4MDAgfSwKLSAgMTYsIDB4ODM5MCwgMCwgezB4MzYsMHg2NCwweDBkLDB4ZDAsMHgwMCwweGE2LDB4MDAsMHhmOSwweDQwLDB4MzIsMHg3OCwweDBjLDB4OTksMHgwMywweDI0LDB4NDAgfSwKLSAgMTYsIDB4ODNhMCwgMCwgezB4YzksMHg5MCwweDMyLDB4NTAsMHgwZiwweDliLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODNiMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4ODAsMHhiOCwweDAwLDB4MjIsMHgwMSwweDA4LDB4ODAsMHgwYSwweDIwLDB4MDAsMHg4OCwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODNjMCwgMCwgezB4MDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MjAsMHgwOCwweDhhLDB4OGIsMHhlMSwweDAwLDB4YjggfSwKLSAgMTYsIDB4ODNkMCwgMCwgezB4ODAsMHgyMiwweDMwLDB4MjgsMHgwZCwweDAyLDB4MjIsMHgwMCwweGQ4LDB4ZTQsMHgyMiwweDI4LDB4MGIsMHg4ZiwweDBhLDB4MGUgfSwKLSAgMTYsIDB4ODNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweDgwLDB4YjEsMHgwMCwweGEwLDB4NDAgfSwKLSAgMTYsIDB4ODNmMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgwOCwweDQwLDB4MGEsMHg5MCwweDQyLDB4NDQsMHgwMCwweDkxLDB4MDAgfSwKLSAgMTYsIDB4ODQwMCwgMCwgezB4MjAsMHg1OCwweDI4LDB4OTAsMHgwMiwweDg1LDB4MDAsMHg4MSwweDIwLDB4YTAsMHg0YywweDA5LDB4MTIsMHgwYSwweDA0LDB4ODAgfSwKLSAgMTYsIDB4ODQxMCwgMCwgezB4OTEsMHg0MCwweGEwLDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4OSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4ODQzMCwgMCwgezB4NDAsMHgyOCwweDkwLDB4MjIsMHgwNCwweDAwLDB4ODksMHgxMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjEgfSwKLSAgMTYsIDB4ODQ0MCwgMCwgezB4MDAsMHgyMiwweDQwLDB4ODEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDkxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4ODQ1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfSwKLSAgMTYsIDB4ODQ2MCwgMCwgezB4MmMsMHg5MiwweDEzLDB4MjQsMHgwMiwweGQxLDB4MTAsMHgzYSwweDQwLDB4MGUsMHgxMiwweDAzLDB4NjYsMHgwNCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODQ3MCwgMCwgezB4YjYsMHg0MCwweDBkLDB4MTksMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDA5LDB4OTAsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4ODQ4MCwgMCwgezB4ZDksMHgwMiwweDIyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODQ5MCwgMCwgezB4MmEsMHgwMSwweGE1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2NCwweDBmLDB4MTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDgxLDB4M2UgfSwKLSAgMTYsIDB4ODRhMCwgMCwgezB4NjYsMHg4ZiwweDkwLDB4MjMsMHhlNCwweDgwLDB4ZjksMHgwNCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDA0LDB4ZjkgfSwKLSAgMTYsIDB4ODRiMCwgMCwgezB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4ODRjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJhLDB4MTAsMHhhMCwweDAwLDB4ZjgsMHgyNCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4ODRkMCwgMCwgezB4MmMsMHg4NCwweDAzLDB4MjAsMHgwMCwweGI4LDB4MjAsMHgzZSwweDAwLDB4OGMsMHg4MCwweDAzLDB4YTAsMHgwMCwweDcwLDB4ODIgfSwKLSAgMTYsIDB4ODRlMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDIwLDB4MDggfSwKLSAgMTYsIDB4ODRmMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODUwMCwgMCwgezB4MjgsMHgwNSwweDI4LDB4MDQsMHhiZSwweDgwLDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDQsMHg4ZSwweDAwLDB4NmQgfSwKLSAgMTYsIDB4ODUxMCwgMCwgezB4OTAsMHgwZCwweGEwLDB4MDIsMHgzYSwweDAwLDB4OGUsMHg4MCwweGEyLDB4ODAsMHgwZSwweGUwLDB4MGIsMHg2OCwweDAwLDB4YmEgfSwKLSAgMTYsIDB4ODUyMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGRhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4ODUzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4ODEsMHg0YywweDAwLDB4YjEsMHgwMCwweDJjLDB4YzAgfSwKLSAgMTYsIDB4ODU0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MGMsMHgxOCwweGEzLDB4MDIsMHgyYywweDEwLDB4ODgsMHgzMCwweDA2LDB4ODIsMHg4MSwweGEwLDB4MDAgfSwKLSAgMTYsIDB4ODU1MCwgMCwgezB4MmEsMHhjMCwweDBiLDB4MzAsMHgwYSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDFhLDB4YjAsMHgwMiwweDhjLDB4MDEgfSwKLSAgMTYsIDB4ODU2MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODU3MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MTAsMHhiNCwweDBhLDB4MmIsMHhjOCwweDA4LDB4MzEsMHgyNiwweDFjLDB4MDAsMHg4NiwweDAwLDB4MmQgfSwKLSAgMTYsIDB4ODU4MCwgMCwgezB4YzAsMHgwOSwweDcyLDB4MDIsMHgxZCwweDAwLDB4YTUsMHg0MCwweDI5LDB4YzAsMHgwYSwweDYwLDB4MDIsMHg1YywweDg4LDB4YjMgfSwKLSAgMTYsIDB4ODU5MCwgMCwgezB4MjAsMHgyNSwweGM4LDB4MGEsMHg3MiwweDAyLDB4OWMsMHg4MCwweDk3LDB4MjAsMHgyYywweGU4LDB4ODAsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4ODVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgxNiwweDAwLDB4YjUsMHg4MCwweDNkLDB4ZTIgfSwKLSAgMTYsIDB4ODViMCwgMCwgezB4MGMsMHg3YSwweDhiLDB4MGUsMHhjMCwweGE3LDB4ODEsMHgyYywweDIwLDB4MGMsMHhmYywweDAzLDB4OTIsMHgwMiwweGVmLDB4ODAgfSwKLSAgMTYsIDB4ODVjMCwgMCwgezB4MzksMHhlNCwweDBiLDB4ZDgsMHgwMSwweDFmLDB4MDAsMHhmNywweDgwLDB4YjMsMHhmNCwweDhlLDB4NzksMHgwMywweDhlLDB4MDAgfSwKLSAgMTYsIDB4ODVkMCwgMCwgezB4YzcsMHhjNCwweDNkLDB4ZTgsMHgyYywweDdiLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODVlMCwgMCwgezB4MDgsMHgxZCwweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHhkZCwweDg3LDB4YjYsMHgwMywweGVkLDB4Y2MsMHhlOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4ODVmMCwgMCwgezB4NDAsMHgwZiwweGIwLDB4MDcsMHhjYywweDEwLDB4MGIsMHgwMCwweDM2LDB4ZDgsMHgwZiwweDgwLDB4NDMsMHhhZCwweDgwLDB4ZmIgfSwKLSAgMTYsIDB4ODYwMCwgMCwgezB4MjgsMHgzYSwweGMwLDB4MGQsMHhiNCwweDAzLDB4NmMsMHhlMiwweGViLDB4NjAsMHgzZSwweGQ0LDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4ODYxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhmZSwweDAwLDB4ZmUsMHg5MCwweDNmLDB4ZTUgfSwKLSAgMTYsIDB4ODYyMCwgMCwgezB4MGUsMHhmOCwweDAzLDB4M2UsMHgxMCwweGZmLDB4OTAsMHgxNywweDYwLDB4MGYsMHhmYywweDAzLDB4N2EsMHgwMCwweGVlLDB4ODAgfSwKLSAgMTYsIDB4ODYzMCwgMCwgezB4MzcsMHhlMiwweDBlLDB4NzgsMHgwZiwweGZmLDB4NDAsMHhlZiwweDg4LDB4MWYsMHhlMCwweDBjLDB4ZjgsMHg4MywweGZlLDB4ODAgfSwKLSAgMTYsIDB4ODY0MCwgMCwgezB4Y2YsMHhkMCwweGIzLDB4ZjAsMHgwYywweGY4LDB4YzMsMHgxMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODY1MCwgMCwgezB4YTgsMHgxMSwweDljLDB4NDAsMHhiNCwweDEwLDB4MGYsMHhjYywweDAwLDB4NzIsMHgwMiwweDFjLDB4MDAsMHhiNiwweDAyLDB4MDkgfSwKLSAgMTYsIDB4ODY2MCwgMCwgezB4YzAsMHgyOCwweGYwLDB4MDIsMHg5OCwweDAwLDB4YTYsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDMsMHhmYywweDAyLDB4ODcgfSwKLSAgMTYsIDB4ODY3MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDgsMHg3MCwweDAyLDB4ZGUsMHgwMCwweDhmLDB4MTAsMHgyMSwweGMwLDB4MDgsMHhmMCwweDAzLDB4NmEgfSwKLSAgMTYsIDB4ODY4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5NCwweDAwLDB4YjYsMHgwMiwweDJmLDB4YzIgfSwKLSAgMTYsIDB4ODY5MCwgMCwgezB4MWEsMHgzMCwweDgwLDB4MWMsMHgwMCwweGI2LDB4MDgsMHgwMSwweDQwLDB4MGEsMHhmMCwweDAyLDB4MTgsMHgwMCwweDg3LDB4MDAgfSwKLSAgMTYsIDB4ODZhMCwgMCwgezB4MjEsMHhjMCwweDBiLDB4ZDAsMHgwMiwweDljLDB4MTAsMHg4NywweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4NDQgfSwKLSAgMTYsIDB4ODZiMCwgMCwgezB4ODcsMHgxMCwweDY0LDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwNiwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODZjMCwgMCwgezB4NjAsMHgxNCwweGNlLDB4NjAsMHhiMCwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgwYSwweDBjLDB4MDgsMHhiMCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4ODZkMCwgMCwgezB4NDAsMHgwOCwweDMwLDB4YTIsMHg4OSwweDgwLDB4YTIsMHg2MiwweDIwLDB4ZTAsMHgwYiwweDAwLDB4MGEsMHhjYywweDA4LDB4ODMgfSwKLSAgMTYsIDB4ODZlMCwgMCwgezB4MDAsMHg2YywweGMwLDB4MDgsMHgzMCwweDUyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NTggfSwKLSAgMTYsIDB4ODZmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZSwweDAwLDB4ZjgsMHgwMCwweDNmLDB4ZDAgfSwKLSAgMTYsIDB4ODcwMCwgMCwgezB4MGUsMHhmYywweDAzLDB4M2MsMHgwMCwweGY5LDB4MDAsMHg5MiwweDg0LDB4MGYsMHhmYywweDAzLDB4NjQsMHgwMCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ODcxMCwgMCwgezB4YjcsMHhjMywweDBmLDB4YjgsMHg4MywweGJjLDB4MDQsMHhlZiwweDAwLDB4M2YsMHhjMCwweDNjLDB4ZjAsMHgwMywweGZjLDB4MDIgfSwKLSAgMTYsIDB4ODcyMCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzAsMHgyOCwweGYwLDB4MTMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODczMCwgMCwgezB4ODAsMHgwMCwweGVjLDB4MDAsMHhmOCwweDQxLDB4M2UsMHhjOCwweDBmLDB4MzIsMHgwMywweGVjLDB4MDAsMHhmOCwweDAwLDB4M2EgfSwKLSAgMTYsIDB4ODc0MCwgMCwgezB4YzQsMHgwZiwweGIxLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4YzAsMHgwZiwweGU0LDB4MGIsMHhlYywweDA0LDB4ZmIgfSwKLSAgMTYsIDB4ODc1MCwgMCwgezB4MDAsMHgzZSwweGMxLDB4MGYsMHhiMCwweDQzLDB4ZWMsMHgwNCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQgfSwKLSAgMTYsIDB4ODc2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmNCwweDAwLDB4ZmMsMHg4MCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ODc3MCwgMCwgezB4MWYsMHhmMCwweDAzLDB4M2MsMHgwOCwweGZiLDB4MDAsMHgzMywweDgwLDB4MmUsMHhmMCwweDEzLDB4YTQsMHgwNCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4ODc4MCwgMCwgezB4YjksMHhjMCwweDJjLDB4ZDgsMHgwYiwweDNjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDA5LDB4NzAsMHgwMCwweDJjLDB4MDQgfSwKLSAgMTYsIDB4ODc5MCwgMCwgezB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODdhMCwgMCwgezB4YzEsMHgwMCwweDZjLDB4MDAsMHhiOCwweDgwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMywweDZjLDB4MDAsMHhiOSwweDE2LDB4MjggfSwKLSAgMTYsIDB4ODdiMCwgMCwgezB4NzIsMHgwOCwweGIwLDB4MjIsMHgyNywweDQwLDB4ZGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGJkLDB4ODIsMHgyYywweDA4LDB4YmIgfSwKLSAgMTYsIDB4ODdjMCwgMCwgezB4MDAsMHgyZSwweGMwLDB4NDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMxLDB4MGIsMHhiMCwweDAyLDB4ZTAgfSwKLSAgMTYsIDB4ODdkMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4YjgsMHg2MCwweDJlLDB4YzAgfSwKLSAgMTYsIDB4ODdlMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIxLDB4MDAsMHgyYSwweDg0LDB4NGEsMHgzMCwweDIyLDB4YWMsMHgyMCwweDk4LDB4ODAgfSwKLSAgMTYsIDB4ODdmMCwgMCwgezB4MmEsMHhjMCwweDA4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHgzYiwweDAwLDB4MmMsMHhjMCwweDBhLDB4YjAsMHgwMiwweGFjLDB4MDggfSwKLSAgMTYsIDB4ODgwMCwgMCwgezB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODgxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHhiMCwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDQsMHhiMCwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODgyMCwgMCwgezB4ODAsMHgwOCwweDMwLDB4MDIsMHgwMCwweDAwLDB4MTAsMHgwNCwweDI4LDB4YzAsMHgwOCwweDIwLDB4NDIsMHg4YywweDAwLDB4YjMgfSwKLSAgMTYsIDB4ODgzMCwgMCwgezB4MDAsMHgyYywweGMwLDB4NDIsMHgzMCwweDBhLDB4OGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4OGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4ODg0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4ZjgsMHg1MCwweDNmLDB4YzAgfSwKLSAgMTYsIDB4ODg1MCwgMCwgezB4MGIsMHhmMCwweDAzLDB4M2MsMHgwMCwweGZhLDB4MDQsMHgzMiwweDgwLDB4MGUsMHhmMCwweDIzLDB4YWMsMHgwMCwweGQ5LDB4MDAgfSwKLSAgMTYsIDB4ODg2MCwgMCwgezB4M2IsMHhjMCwweDBjLDB4OTAsMHgwMywweGJjLDB4MDQsMHhmZiwweDAwLDB4M2QsMHhjMCwweDJlLDB4ZjAsMHgwYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4ODg3MCwgMCwgezB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODg4MCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDAsMHhmYywweDAwLDB4M2YsMHhjMCwweDA3LDB4ZjAsMHgwMywweGZjLDB4MDQsMHg3YywweDAyLDB4YjUgfSwKLSAgMTYsIDB4ODg5MCwgMCwgezB4MDAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDM3LDB4YzAsMHgwZiwweGYwLDB4MTMsMHg3YywweDAwLDB4ZmYgfSwKLSAgMTYsIDB4ODhhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4NmQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4ODhiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4ZDUsMHg4MCwweDMzLDB4MGEgfSwKLSAgMTYsIDB4ODhjMCwgMCwgezB4NGMsMHhmOCwweDAzLDB4ZjIsMHgwMCwweGZjLDB4MDAsMHgzNywweDI2LDB4MWYsMHhjYSwweDAzLDB4YmMsMHhjNCwweGNmLDB4MjAgfSwKLSAgMTYsIDB4ODhkMCwgMCwgezB4MzMsMHhlNCwweDBmLDB4NzgsMHgwMywweDNlLDB4NDQsMHhjZiwweDAwLDB4M2IsMHhjZSwweDlmLDB4NjgsMHgxMywweGQwLDB4MDAgfSwKLSAgMTYsIDB4ODhlMCwgMCwgezB4Y2QsMHg4MCwweGIzLDB4NjAsMHgwZiwweGZhLDB4ODMsMHhmMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODhmMCwgMCwgezB4ODAsMHgxMCwweGUwLDB4ODAsMHhjOSwweDI4LDB4MjIsMHgzMCwweDA4LDB4YjIsMHgyMiwweGVhLDB4MDEsMHhiOCwweDgyLDB4MjAgfSwKLSAgMTYsIDB4ODkwMCwgMCwgezB4NTAsMHg0ZiwweDljLDB4MDAsMHhhOCwweGQxLDB4ZGIsMHgxMCwweGE2LDB4ZTAsMHgxNywweGI4LDB4MDMsMHhlYywweDgwLDB4ZGIgfSwKLSAgMTYsIDB4ODkxMCwgMCwgezB4MDgsMHgxZiwweGQwLDB4MGIsMHhiOCwweDAyLDB4ZjYsMHgwMCwweGZiLDB4ODAsMHgyMiwweDQwLDB4MGIsMHhiMCwweDAyLDB4NjAgfSwKLSAgMTYsIDB4ODkyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDIwLDB4ODEsMHg4MCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4ODkzMCwgMCwgezB4OGIsMHgzMCwweDgyLDB4YzAsMHgwMCwweGIwLDB4MTAsMHgyOCwweDA4LDB4OGIsMHgxMSwweDMwLDB4YzQsMHg4NCwweDkwLDB4MjggfSwKLSAgMTYsIDB4ODk0MCwgMCwgezB4MjQsMHhjOCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDEwLDB4MDQsMHhjOCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAgfSwKLSAgMTYsIDB4ODk1MCwgMCwgezB4YjMsMHgwMCwweDI0LDB4NDAsMHgwYiwweDMwLDB4MDIsMHhlMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODk2MCwgMCwgezB4YzAsMHgxNSwweGE2LDB4MDAsMHg4MSwweDAwLDB4MjIsMHgxMCwweDBiLDB4YjAsMHgxMiwweGVhLDB4MjAsMHhiYiwweDAwLDB4MmEgfSwKLSAgMTYsIDB4ODk3MCwgMCwgezB4NzAsMHgwYSwweDljLDB4MDIsMHg2MiwweDAwLDB4OTgsMHg4OCwweDI2LDB4YzgsMHgwMiwweGIyLDB4MDIsMHg4ZSwweDA4LDB4OGIgfSwKLSAgMTYsIDB4ODk4MCwgMCwgezB4MTgsMHgyMiwweGMwLDB4MGIsMHhhMCwweDAyLDB4ZWUsMHgyMCwweDNiLDB4MDAsMHgyNiwweDQwLDB4MGIsMHhiMCwweDAyLDB4NzAgfSwKLSAgMTYsIDB4ODk5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMCwweDAwLDB4Y2IsMHgwMCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4ODlhMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTcsMHgwMCwweGI4LDB4NTIsMHgzZSwweDIwLDB4NGIsMHgwYywweDQzLDB4ZWYsMHg4MiwweDliLDB4YzAgfSwKLSAgMTYsIDB4ODliMCwgMCwgezB4MzIsMHhjMCwweDBiLDB4YjAsMHgwMiwweDZjLDB4MDEsMHg4YiwweDgwLDB4MmUsMHhjMCwweDBiLDB4YTAsMHg4MywweGU2LDB4MDAgfSwKLSAgMTYsIDB4ODljMCwgMCwgezB4ZmIsMHgwMCwweDM2LDB4NDAsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ODlkMCwgMCwgezB4ZTAsMHgwMSwweGIwLDB4MDIsMHhmZiwweDA0LDB4M2YsMHg5MCwweDBjLDB4ZjEsMHgwMSwweGY0LDB4MDgsMHg3ZCwweDgwLDB4MzcgfSwKLSAgMTYsIDB4ODllMCwgMCwgezB4MDAsMHgwZiwweGMwLDB4MjMsMHg5OCwweDAwLDB4ZjcsMHgwMCwweDJiLDB4ZTAsMHgwZiwweGY4LDB4MjMsMHhmYywweDA2LDB4ZmIgfSwKLSAgMTYsIDB4ODlmMCwgMCwgezB4ODMsMHhiZiwweGMwLDB4ODcsMHhkMCwweDAzLDB4ZGMsMHgwMCwweGVmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAxLDB4ZjggfSwKLSAgMTYsIDB4OGEwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhNiwweDAwLDB4Y2IsMHgwMCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4OGExMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4ZTEsMHgxMCwweGYyLDB4NDAsMHhiMiwweDAwLDB4M2QsMHg5NCwweDE3LDB4MmQsMHg0NCwweGZhLDB4NDEgfSwKLSAgMTYsIDB4OGEyMCwgMCwgezB4MzIsMHhjMCwweDlmLDB4YjAsMHgyMywweDJjLDB4MDIsMHhjYiwweDQwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHgwMywweDNkLDB4MDAgfSwKLSAgMTYsIDB4OGEzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGE0MCwgMCwgezB4ODgsMHgwNSwweDI2LDB4MDAsMHg4YiwweDcxLDB4MjAsMHhkNSwweDAzLDB4OTksMHgwMiwweGUwLDB4MDAsMHhiYiwweDgwLDB4MjIgfSwKLSAgMTYsIDB4OGE1MCwgMCwgezB4NjAsMHgxYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YjgsMHgwMiwweDIyLDB4YzIsMHgwYiwweDMyLDB4MDIsMHgyYywweDAxLDB4OGYgfSwKLSAgMTYsIDB4OGE2MCwgMCwgezB4MDIsMHhkNywweGMwLDB4MGIsMHhhMCwweDAzLDB4NmQsMHg0MCwweDUzLDB4ODAsMHgyZSwweGMwLDB4MGUsMHhmMCwweDQzLDB4NzIgfSwKLSAgMTYsIDB4OGE3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2OCwweDAyLDB4ODAsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OGE4MCwgMCwgezB4MGIsMHgzNSwweDI2LDB4YzIsMHgwMCwweGIwLDB4OTAsMHgyMCwweGMwLDB4ODgsMHgwMCwweDAyLDB4NGYsMHgyMCwweGIzLDB4MDIgfSwKLSAgMTYsIDB4OGE5MCwgMCwgezB4NjAsMHhlMiwweDFiLDB4MzgsMHgwMiwweDBjLDB4MDAsMHg4OCwweDAwLDB4NjAsMHhjMCwweDBiLDB4MzQsMHg4MiwweDRjLDB4MDIgfSwKLSAgMTYsIDB4OGFhMCwgMCwgezB4YTEsMHg5MCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHgzMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGFiMCwgMCwgezB4MjAsMHgwMSwweDNhLDB4MDgsMHg4YywweGEwLDB4MmQsMHgyMCwweDRiLDB4NzgsMHgwMiwweGRhLDB4MDAsMHhiMiwweDkwLDB4MjEgfSwKLSAgMTYsIDB4OGFjMCwgMCwgezB4NjYsMHg0OCwweDc5LDB4MDIsMHhkZSwweDQwLDB4YjcsMHg5MSwweGExLDB4ZTAsMHhkYiwweGY4LDB4MDIsMHgxZSwweDQwLDB4ODQgfSwKLSAgMTYsIDB4OGFkMCwgMCwgezB4OTAsMHgwMSwweGUwLDB4OGIsMHhmOSwweDAyLDB4NWUsMHgwMSwweDk3LDB4ODAsMHgyZCwweDYwLDB4MGEsMHg3OCwweDAwLDB4NDggfSwKLSAgMTYsIDB4OGFlMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODAsMHgwMCwweDI0LDB4MDQgfSwKLSAgMTYsIDB4OGFmMCwgMCwgezB4MGYsMHgzMiwweDAzLDB4YzQsMHhhMCwweGYxLDB4NDIsMHgzMCwweGM0LDB4MmMsMHgzMSwweDAyLDB4NDQsMHgwMCwweGYxLDB4MTEgfSwKLSAgMTYsIDB4OGIwMCwgMCwgezB4YTAsMHhjMCwweDBiLDB4MzAsMHgwYiwweDBjLDB4NDIsMHg4MywweDAwLDB4MDAsMHhjMCwweDBmLDB4MzAsMHgwMywweDRjLDB4MDIgfSwKLSAgMTYsIDB4OGIxMCwgMCwgezB4ZTMsMHgwMCwweDNjLDB4NDAsMHgwYiwweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGIyMCwgMCwgezB4YzAsMHgxZCwweGJjLDB4MDAsMHhmYywweGE1LDB4MzMsMHhjMCwweDBmLDB4ZDAsMHgwMywweGZjLDB4MDEsMHhiZiwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OGIzMCwgMCwgezB4YzQsMHgwZSwweDcxLDB4MDMsMHg3NCwweDAwLDB4NzUsMHgxMCwweDNmLDB4YzAsMHgwNSwweGYwLDB4MDMsMHhkYywweDQwLDB4ZmYgfSwKLSAgMTYsIDB4OGI0MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDdmLDB4MDAsMHgzZiwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4OGI1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDQsMHhlOCwweDAwLDB4ZjIsMHgwNCwweGIzLDB4ODAgfSwKLSAgMTYsIDB4OGI2MCwgMCwgezB4MGYsMHhiOCwweDBiLDB4MmMsMHgwMCwweGViLDB4ODAsMHgzMiwweGMwLDB4MGMsMHgyMCwweDEzLDB4MmUsMHgwOCwweGNiLDB4MDEgfSwKLSAgMTYsIDB4OGI3MCwgMCwgezB4MzIsMHhjNSwweDBmLDB4YjEsMHgwMywweGVjLDB4NDgsMHhjOCwweDEwLDB4MzIsMHhmYSwweDhjLDB4MzgsMHgwMywweDNjLDB4OTAgfSwKLSAgMTYsIDB4OGI4MCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4NDAsMHgwZiwweGIwLDB4MTMsMHhjMiwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGI5MCwgMCwgezB4YzgsMHgxMCwweDk4LDB4MDAsMHhmNiwweDAwLDB4NjEsMHg4MSwweDBiLDB4ZjAsMHgwMiwweDFjLDB4MDAsMHhkNywweDAwLDB4YjcgfSwKLSAgMTYsIDB4OGJhMCwgMCwgezB4ODAsMHgwYywweDcwLDB4MDIsMHhiYywweDEwLDB4OGYsMHgwMCwweDIxLDB4YzgsMHg4YiwweDcyLDB4NDMsMHhmYywweDg4LDB4ZGMgfSwKLSAgMTYsIDB4OGJiMCwgMCwgezB4MDAsMHgzNywweGM4LDB4MGQsMHg1MCwweDAyLDB4MWMsMHgyMiwweDg3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDMgfSwKLSAgMTYsIDB4OGJjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg5ZSwweDAwLDB4YjYsMHg4MCwweGE5LDB4YTAgfSwKLSAgMTYsIDB4OGJkMCwgMCwgezB4NGIsMHg3YywweDAyLDB4NWUsMHgzMCwweGEzLDB4ODgsMHgyMSwweGYwLDB4MDgsMHg3OCwweDAyLDB4MTYsMHgwMCwweDg1LDB4ODAgfSwKLSAgMTYsIDB4OGJlMCwgMCwgezB4MjEsMHhlMCwweDBiLDB4NzgsMHgwMiwweGRlLDB4MDAsMHg4NywweDgwLDB4YTEsMHhlNCwweDA4LDB4ZDgsMHgwMiwweDRlLDB4MDAgfSwKLSAgMTYsIDB4OGJmMCwgMCwgezB4OTcsMHg4MCwweDJkLDB4NzAsMHgwYiwweDc4LDB4MDIsMHhjOCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGMwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMiwweDAwLDB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDRlLDB4OTAsMHg5MywweDAyLDB4MjIgfSwKLSAgMTYsIDB4OGMxMCwgMCwgezB4ZjAsMHgwOCwweDM4LDB4NDIsMHg4YywweDQyLDB4ODMsMHgwNCwweDIyLDB4ZTQsMHg0YiwweDM4LDB4MDIsMHg4ZSwweDQwLDB4ODMgfSwKLSAgMTYsIDB4OGMyMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MDksMHgzOCwweDIyLDB4NGUsMHgyMSwweDkzLDB4MDAsMHgyZSwweGUwLDB4MGIsMHgzMCwweDAyLDB4ZGIgfSwKLSAgMTYsIDB4OGMzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAxLDB4ZmEsMHgwMCwweDNiLDB4ODkgfSwKLSAgMTYsIDB4OGM0MCwgMCwgezB4MGYsMHhhMCwweDAyLDB4NzgsMHgwOCwweGFlLDB4NDAsMHgyMywweDgwLDB4MmMsMHg2YywweDBiLDB4M2EsMHgwMCwweDhlLDB4OGMgfSwKLSAgMTYsIDB4OGM1MCwgMCwgezB4YjIsMHgwMCwweDBiLDB4ODAsMHg4MiwweGUwLDB4MDIsMHg4ZSwweDAwLDB4MjIsMHg4MCwweDBjLDB4ZTgsMHgwMiwweDdiLDB4ODAgfSwKLSAgMTYsIDB4OGM2MCwgMCwgezB4OWEsMHg4MCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGM3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDksMHhlYywweDAwLDB4MzYsMHgyMSwweDBiLDB4ODAsMHgxMywweGExLDB4MDAsMHhmOCwweDYwLDB4M2UgfSwKLSAgMTYsIDB4OGM4MCwgMCwgezB4MDAsMHgwZiwweDgxLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4NDMsMHhlMCwweDEwLDB4ZjggfSwKLSAgMTYsIDB4OGM5MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGYsMHg4NSwweDBiLDB4ODAsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGNhMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMiwweDMwLDB4NDggfSwKLSAgMTYsIDB4OGNiMCwgMCwgezB4MGMsMHg5OSwweDEzLDB4YTQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQyLDB4MGMsMHg5MCwweDhmLDB4MjQsMHgwMCwweGY5LDB4MDAgfSwKLSAgMTYsIDB4OGNjMCwgMCwgezB4MzIsMHgyOCwweDBjLDB4ODgsMHgwMywweGUwLDB4MDAsMHhjOSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgwMywweGU3LDB4MDAgfSwKLSAgMTYsIDB4OGNkMCwgMCwgezB4YzksMHgxMCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGNlMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDEsMHg4OSwweDgwLDB4YTIsMHg0OCwweDI4LDB4OTIsMHg0MiwweGM1LDB4MDAsMHg4OSwweDQwLDB4MmUgfSwKLSAgMTYsIDB4OGNmMCwgMCwgezB4NDAsMHgyYywweDkwLDB4MDYsMHgyNSwweDAwLDB4YjksMHgwMCwweDIyLDB4NTAsMHgwOCwweDk4LDB4MDIsMHhjNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4OGQwMCwgMCwgezB4MDEsMHg3NiwweDQwLDB4NGIsMHg5MiwweDAyLDB4ZTUsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OGQxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDBjLDB4ODUsMHgyMCwweGEyLDB4NDAgfSwKLSAgMTYsIDB4OGQyMCwgMCwgezB4MDgsMHg5MCwweDA2LDB4ZTUsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDQyLDB4YTQsMHhhMCwweDMxLDB4MDAgfSwKLSAgMTYsIDB4OGQzMCwgMCwgezB4MjIsMHg1MCwweDE4LDB4OTEsMHgwMiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwNiwweGU0LDB4MDAgfSwKLSAgMTYsIDB4OGQ0MCwgMCwgezB4ODksMHgwMCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgwZSwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGQ1MCwgMCwgezB4MDAsMHgwNCwweDE1LDB4MDAsMHg4NSwweDQwLDB4MjAsMHg0MCwweDA4LDB4MTQsMHgyNiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4OGQ2MCwgMCwgezB4NDAsMHgxOCwweDEwLDB4MDIsMHg4NCwweDgwLDB4YjEsMHgyMCwweGEwLDB4NTAsMHgwOCwweDE0LDB4MDIsMHhlNSwweDAyLDB4ODEgfSwKLSAgMTYsIDB4OGQ3MCwgMCwgezB4NDAsMHgyMCwweDQ4LDB4MGIsMHgxMCwweDA2LDB4Y2MsMHgwMCwweDgxLDB4MDEsMHgyYywweDUwLDB4MDksMHgxNCwweDAyLDB4NGEgfSwKLSAgMTYsIDB4OGQ4MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4OGMsMHgwMCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4OGQ5MCwgMCwgezB4MGMsMHg4MCwweDIzLDB4ZTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDE0LDB4MGQsMHg4MCwweDEyLDB4YTEsMHg0NCwweGY4LDB4NTEgfSwKLSAgMTYsIDB4OGRhMCwgMCwgezB4MzIsMHgwMCwweDJjLDB4ODAsMHgwMywweGUwLDB4MDAsMHg4OCwweDA0LDB4MjIsMHgxNCwweDBmLDB4ODAsMHgwNywweGUwLDB4MDAgfSwKLSAgMTYsIDB4OGRiMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGRjMCwgMCwgezB4OTgsMHg5ZCwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2YsMHg1MCwweDBmLDB4ZDAsMHgwMywweGRjLDB4MDEsMHhiZCwweDQyLDB4M2YgfSwKLSAgMTYsIDB4OGRkMCwgMCwgezB4NTAsMHg0ZiwweGQ0LDB4NDMsMHg3NCwweDQxLDB4ZmQsMHgxMCwweDNmLDB4MTAsMHgxZiwweGM0LDB4MTMsMHhmMSwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4OGRlMCwgMCwgezB4NDAsMHg3ZSwweDQ0LDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMSwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4OGRmMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNCwweDAwLDB4ZGYsMHgwNSwweDMzLDB4NjEgfSwKLSAgMTYsIDB4OGUwMCwgMCwgezB4MGYsMHg1MCwweDUzLDB4MzQsMHgxMCwweGZkLDB4MDQsMHgzMywweDQ0LDB4NGYsMHg1MCwweDAzLDB4NzYsMHhjMSwweGNkLDB4ZTAgfSwKLSAgMTYsIDB4OGUxMCwgMCwgezB4MzMsMHg2MCwweDBjLDB4Y2UsMHgwMywweGY2LDB4YzAsMHhlMSwweGMwLDB4YjYsMHg2NCwweDhmLDB4NTAsMHgwYiwweDM2LDB4ODIgfSwKLSAgMTYsIDB4OGUyMCwgMCwgezB4Y2QsMHgwMCwweDNlLDB4NDQsMHg0YywweDllLDB4YzMsMHhjNiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGUzMCwgMCwgezB4MzgsMHgxMCwweGVhLDB4MjgsMHg4MCwweGEwLDB4YjIsMHgwNCwweDBiLDB4OGEsMHg4MywweDYwLDB4MDAsMHhmYSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4OGU0MCwgMCwgezB4MjgsMHg4YiwweDgwLDB4MDMsMHhlMywweGM4LDB4YzgsMHg4NCwweDIyLDB4MTQsMHgwOCwweDhhLDB4MDIsMHhlMiwweDgwLDB4ZDggfSwKLSAgMTYsIDB4OGU1MCwgMCwgezB4ODIsMHgzNCwweDM0LDB4MWIsMHg4MCwweDAzLDB4NjAsMHgwNCwweDg4LDB4MDAsMHgyZSwweDIwLDB4MGEsMHg4ZSwweDQyLDB4Y2UgfSwKLSAgMTYsIDB4OGU2MCwgMCwgezB4MDYsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDUsMHhjNCwweDgwLDB4ODEsMHgwOCwweDA0LDB4NDEgfSwKLSAgMTYsIDB4OGU3MCwgMCwgezB4MGIsMHg5MiwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxOCwweDAyLDB4MjQsMHgwMCwweGIxLDB4NjAgfSwKLSAgMTYsIDB4OGU4MCwgMCwgezB4MjYsMHg0MCwweDBhLDB4MTYsMHgwMiwweGM1LDB4MDAsMHhhMSwweGMwLDB4MjAsMHg0OCwweDBiLDB4OTAsMHgwMiwweDQ3LDB4MDAgfSwKLSAgMTYsIDB4OGU5MCwgMCwgezB4OTEsMHgwMSwweDJjLDB4NDgsMHgxOCwweDEyLDB4MDIsMHhkMiwweDAxLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGVhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MGMsMHg4YiwweDA0LDB4YTIsMHg1MCwweDBiLDB4OTEsMHgwMiwweDI0LDB4MDQsMHhhOSwweDAxLDB4MmUgfSwKLSAgMTYsIDB4OGViMCwgMCwgezB4NDIsMHgwYiwweDkwLDB4MDIsMHhhNCwweDAwLDB4YTksMHgwMCwweDI2LDB4NjAsMHgwYSwweDkwLDB4MDIsMHhlNiwweDAwLDB4ODEgfSwKLSAgMTYsIDB4OGVjMCwgMCwgezB4MDAsMHgyMiwweDQwLDB4OGIsMHhiMCwweDAyLDB4MjQsMHgwOCwweDk5LDB4MTAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDAyLDB4YzYgfSwKLSAgMTYsIDB4OGVkMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4OGVlMCwgMCwgezB4MGYsMHgxMCwweDAyLDB4MjUsMHgwMCwweGIxLDB4MDAsMHgyZSwweDYwLDB4MGYsMHgxMCwweDEyLDB4MjQsMHgwMiwweGI5LDB4YTAgfSwKLSAgMTYsIDB4OGVmMCwgMCwgezB4YTQsMHg0MCwweDJlLDB4OTEsMHgwMywweGU2LDB4MDAsMHhhOSwweDAwLDB4MjIsMHg0MCwweDBiLDB4MTksMHg4MCwweDY0LDB4MDQgfSwKLSAgMTYsIDB4OGYwMCwgMCwgezB4ZDksMHg4MSwweDJlLDB4NDAsMHg0YywweDkwLDB4MDMsMHhlOCwweDE0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGYxMCwgMCwgezB4NjgsMHgwMSwweGE0LDB4MGEsMHhlOSwweDAwLDB4YmUsMHg0OCwweDBmLDB4OTgsMHgwYiwweGU0LDB4MDAsMHhmOSwweGM0LDB4MzYgfSwKLSAgMTYsIDB4OGYyMCwgMCwgezB4NzAsMHgxZiwweDkyLDB4MDMsMHhlNiwweDkwLDB4YzEsMHg5MCwweDNhLDB4NDAsMHg4ZCwweDg4LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OGYzMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGIsMHg5OCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OGY0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MTAsMHhhMSwweDAyLDB4ZDgsMHgyMCwweGIyLDB4MTAgfSwKLSAgMTYsIDB4OGY1MCwgMCwgezB4MGMsMHg4MCwweDgzLDB4MjEsMHg0MCwweGM4LDB4NTgsMHhiMiwweDEwLDB4NGMsMHg4MCwweDBiLDB4MjAsMHgwMCwweGY4LDB4NDIgfSwKLSAgMTYsIDB4OGY2MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhkOCwweDAwLDB4NzIsMHgwMCwweDFjLDB4ODAsMHgwMCwweDIwLDB4MDAgfSwKLSAgMTYsIDB4OGY3MCwgMCwgezB4ZjgsMHgwNCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwMiwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGY4MCwgMCwgezB4MjgsMHgwNSwweDM4LDB4MDQsMHhjZSwweDQxLDB4MjMsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDM5LDB4MTAsMHhhZSwweDQwLDB4MjIgfSwKLSAgMTYsIDB4OGY5MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgxYSwweDAwLDB4YmEsMHgwMCwweDJiLDB4YWQsMHgwMywweDgwLDB4MDIsMHhlOCwweDAwLDB4Y2EgfSwKLSAgMTYsIDB4OGZhMCwgMCwgezB4MDAsMHgyYSwweDgwLDB4MGEsMHhlMCwweDAyLDB4MTgsMHgwMCwweGJhLDB4MDAsMHgxYSwweDgwLDB4MGIsMHhhMCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OGZiMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDY4LDB4MDUsMHg2YywweDEyLDB4ODksMHgwMCwweGEwLDB4ZTAgfSwKLSAgMTYsIDB4OGZjMCwgMCwgezB4MDgsMHgzOCwweDAyLDB4MGQsMHg4OCwweDgzLDB4MDAsMHgwNCwweGUwLDB4MDgsMHgzOCwweDMyLDB4MGUsMHgyNSwweDMxLDB4MDEgfSwKLSAgMTYsIDB4OGZkMCwgMCwgezB4MjQsMHhlMCwweDhiLDB4MzgsMHgwMiwweGU0LDB4MDEsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAgfSwKLSAgMTYsIDB4OGZlMCwgMCwgezB4YjMsMHgwMCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OGZmMCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MjAsMHg4NiwweDIwLDB4MjksMHhiMCwweDA4LDB4ZjAsMHg4MiwweDNlLDB4MDQsMHhhNywweDAwLDB4MjEgfSwKLSAgMTYsIDB4OTAwMCwgMCwgezB4NzAsMHg4OCwweDcwLDB4OTIsMHgxYywweDIwLDB4YmQsMHgwMCwweDY5LDB4YzAsMHgwYiwweDc2LDB4MDIsMHhkNCwweDgwLDB4OGYgfSwKLSAgMTYsIDB4OTAxMCwgMCwgezB4MjEsMHgyOSwweGUwLDB4MGEsMHg2MCwweDg2LDB4OTgsMHgwMSwweGI3LDB4MDAsMHgyZCwweGM4LDB4MGIsMHgzYiwweDAyLDB4NjAgfSwKLSAgMTYsIDB4OTAyMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAwLDB4YzcsMHhhMCwweGIwLDB4ZTAgfSwKLSAgMTYsIDB4OTAzMCwgMCwgezB4MmMsMHg3OCwweDBiLDB4MWEsMHgwMCwweGMzLDB4ODAsMHgzNywweGUwLDB4MjgsMHg3OCwweDAzLDB4MWEsMHgwOCwweGY1LDB4OTAgfSwKLSAgMTYsIDB4OTA0MCwgMCwgezB4MzUsMHhlMCwweDBmLDB4N2MsMHgxMiwweGQ2LDB4ODIsMHhjNywweDkwLDB4MjEsMHhlNCwweDA4LDB4NzgsMHgwMywweDllLDB4MDAgfSwKLSAgMTYsIDB4OTA1MCwgMCwgezB4ZjUsMHg4MCwweDNkLDB4ZjEsMHgwZiwweDc4LDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTA2MCwgMCwgezB4MDgsMHgxOSwweGE0LDB4MDAsMHhlZSwweDgwLDB4MzYsMHhjMSwweDRmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYiwweDAwLDB4M2UgfSwKLSAgMTYsIDB4OTA3MCwgMCwgezB4NTEsMHgwZiwweGIwLDB4MDMsMHhlNCwweDA4LDB4ZjEsMHg2MCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhjNSwweDAwLDB4ZWIgfSwKLSAgMTYsIDB4OTA4MCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDA5LDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OTA5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHhmZSwweDAwLDB4ZmQsMHg4OCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4OTBhMCwgMCwgezB4MGYsMHhmOSwweDAzLDB4Y2UsMHg0MCwweGQ3LDB4ODQsMHgzNywweDcwLDB4MGMsMHhkOCwweDIzLDB4MzYsMHgwMCwweGM1LDB4ODggfSwKLSAgMTYsIDB4OTBiMCwgMCwgezB4MzMsMHhlMCwweDRmLDB4ZjgsMHgxMywweGY3LDB4MjgsMHhkZiwweDgwLDB4MzcsMHhlMiwweDBjLDB4NTgsMHgwMywweDNlLDB4MDAgfSwKLSAgMTYsIDB4OTBjMCwgMCwgezB4ZmYsMHg5MCwweDNmLDB4ZTAsMHgwYywweGY4LDB4MDMsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTBkMCwgMCwgezB4YTksMHgxMSwweDljLDB4MDgsMHhmNiwweDAwLDB4YTEsMHgwMCwweDBiLDB4NjMsMHgwMiwweGQ2LDB4MzAsMHg4NSwweDQxLDB4MzEgfSwKLSAgMTYsIDB4OTBlMCwgMCwgezB4YzgsMHgwOCwweDUwLDB4MjMsMHgxYywweDAwLDB4ZDUsMHgyMCwweGIxLDB4ODAsMHgwZiwweDcwLDB4MDMsMHhiNCwweDAwLDB4YzcgfSwKLSAgMTYsIDB4OTBmMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MGYsMHg0MCwweGEzLDB4NTgsMHg0MCwweGI3LDB4MDAsMHgzZiwweGM0LDB4MGEsMHhmMCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4OTEwMCwgMCwgezB4MDYsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5YywweDQwLDB4YjcsMHgxMCwweDIxLDB4ZDIgfSwKLSAgMTYsIDB4OTExMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweDg2LDB4MDAsMHgyNSwweDYxLDB4MDgsMHg1MSwweDAyLDB4NTAsMHgwMCwweDk1LDB4MDAgfSwKLSAgMTYsIDB4OTEyMCwgMCwgezB4MjUsMHhjMCwweDA5LDB4NzAsMHg4MiwweGQ0LDB4MDAsMHg4NywweDAwLDB4MjQsMHhjMCwweDA4LDB4NTAsMHgwMiwweDVjLDB4MDAgfSwKLSAgMTYsIDB4OTEzMCwgMCwgezB4OTUsMHgwNCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTE0MCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweGQwLDB4MjAsMHhlMCwweDRiLDB4MDgsMHgwMiwweGM0LDB4MDAsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4OTE1MCwgMCwgezB4ZjAsMHgwOCwweDFhLDB4MDIsMHg4NSwweDQ4LDB4ODEsMHgxMCwweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHhjNiwweDEwLDB4OTMgfSwKLSAgMTYsIDB4OTE2MCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGEsMHgxYywweDAyLDB4MGQsMHg0MCwweGIzLDB4MDAsMHg2OCwweGM0LDB4MGEsMHhiMCwweDAyLDB4MDkgfSwKLSAgMTYsIDB4OTE3MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAxLDB4ZmUsMHgwMCwweDMyLDB4ZjAgfSwKLSAgMTYsIDB4OTE4MCwgMCwgezB4MGYsMHg4OCwweDAzLDB4ZTYsMHgwMCwweGM4LDB4YzgsMHgzNiwweGY2LDB4MjgsMHhhNiwweDBhLDB4NmQsMHgwMCwweDlkLDB4MDAgfSwKLSAgMTYsIDB4OTE5MCwgMCwgezB4MzIsMHgwMCwweDBiLDB4YjAsMHgwMywweGY2LDB4MDMsMHhjNywweDAwLDB4MzcsMHhjMCwweDA4LDB4OWMsMHgwYSwweDZlLDB4MDAgfSwKLSAgMTYsIDB4OTFhMCwgMCwgezB4YmIsMHgwMCwweDJmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTFiMCwgMCwgezB4ODAsMHgwMCwweGU0LDB4MDEsMHhlYiwweDQwLDB4M2UsMHg4MCwweDRmLDB4YzEsMHgwMywweGU0LDB4MDAsMHhiOCwweDA4LDB4M2EgfSwKLSAgMTYsIDB4OTFjMCwgMCwgezB4NDAsMHg4ZiwweGE0LDB4MTMsMHg2YywweDIwLDB4ZjksMHgwMCwweDNlLDB4NzAsMHgwZiwweGIwLDB4MDMsMHhhNCwweDQwLDB4ZWIgfSwKLSAgMTYsIDB4OTFkMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MiwweDIzLDB4ZTgsMHgwMCwweGY5LDB4ODAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDYzLDB4ZTAgfSwKLSAgMTYsIDB4OTFlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDA4LDB4Y2UsMHgwOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OTFmMCwgMCwgezB4MGYsMHhkYSwweDAzLDB4MzAsMHgwMCwweGU0LDB4MDQsMHgzNSwweGMwLDB4MGQsMHhhMCwweDAzLDB4MjgsMHgwMCwweGM1LDB4MDAgfSwKLSAgMTYsIDB4OTIwMCwgMCwgezB4MzMsMHgwMCwweDBiLDB4ZmEsMHgwMywweGY0LDB4MDMsMHhjYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZDQsMHgwMywweDE0LDB4MjAgfSwKLSAgMTYsIDB4OTIxMCwgMCwgezB4Y2QsMHg4MCwweDIzLDB4YzEsMHgwYywweGYwLDB4MDIsMHgwOCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTIyMCwgMCwgezB4ODEsMHgwNCwweDQ0LDB4MTAsMHhjYiwweGQwLDB4MjIsMHhjMCwweDBiLDB4OTQsMHgwMiwweDIyLDB4ODQsMHhiOCwweGM2LDB4MDIgfSwKLSAgMTYsIDB4OTIzMCwgMCwgezB4NDAsMHgwOCwweDI4LDB4MDIsMHhhNSwweDgwLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweGI4LDB4MDIsMHg2NCwweDAwLDB4OGIgfSwKLSAgMTYsIDB4OTI0MCwgMCwgezB4MDAsMHgyYSwweGMwLDB4YzgsMHgwMCwweDAzLDB4NjYsMHgwMCwweDgxLDB4MDAsMHgwMCwweGMwLDB4MGQsMHhiMCwweDBhLDB4YTggfSwKLSAgMTYsIDB4OTI1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyYywweDAwLDB4MTMsMHgwMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4OTI2MCwgMCwgezB4OGIsMHgyNCwweDAyLDB4MmEsMHgwMCwweGJiLDB4ODIsMHgyMiwweDQwLDB4MDAsMHhhYywweDAyLDB4ODQsMHgwMCwweDg5LDB4MDAgfSwKLSAgMTYsIDB4OTI3MCwgMCwgezB4MjIsMHgyMiwweDBiLDB4YjAsMHgwMiwweGM0LDB4MDAsMHg5YiwweDAwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJlLDB4MDAgfSwKLSAgMTYsIDB4OTI4MCwgMCwgezB4OGIsMHgxMCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhhMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTI5MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MywweDAwLDB4MjAsMHgwMSwweDBiLDB4MjAsMHgwMiwweDAwLDB4ODAsMHhiMSwweDAwLDB4MjAgfSwKLSAgMTYsIDB4OTJhMCwgMCwgezB4YzEsMHgwOCwweDIwLDB4MDIsMHg4OCwweDAxLDB4ODEsMHgwMCwweGEwLDB4MDAsMHgwYiwweDMwLDB4MDIsMHg0NCwweDAxLDB4OWIgfSwKLSAgMTYsIDB4OTJiMCwgMCwgezB4MDAsMHgyOCwweGMwLDB4MDgsMHhiMCwweDAyLDB4NDgsMHgwNiwweDg5LDB4MDAsMHgyYSwweGMwLDB4MDksMHgzMCwweDAyLDB4ODIgfSwKLSAgMTYsIDB4OTJjMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGQsMHg2YywweDAwLDB4YzMsMHgwMCwweGIyLDB4YzAgfSwKLSAgMTYsIDB4OTJkMCwgMCwgezB4MGYsMHhiMCwweDAzLDB4MjgsMHgyMCwweGZhLDB4MDAsMHhiMSwweDQwLDB4MGQsMHhhMCwweDA3LDB4YTAsMHgwMCwweGNkLDB4MDAgfSwKLSAgMTYsIDB4OTJlMCwgMCwgezB4MjIsMHgwMCwweDBmLDB4YjAsMHgwMywweGY0LDB4MDAsMHg5ZiwweDAwLDB4M2IsMHhjMCwweDJjLDB4YjAsMHgwYiwweDI0LDB4MDAgfSwKLSAgMTYsIDB4OTJmMCwgMCwgezB4YzksMHgwMCwweGJhLDB4YzAsMHgwYywweGIwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTMwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MDYsMHhmZiwweDAyLDB4YWYsMHhjMCwweDBmLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4OTMxMCwgMCwgezB4YzAsMHg5ZiwweGUwLDB4MTMsMHhmMCwweDAwLDB4ZmQsMHgwNCwweDNmLDB4NDAsMHg0ZiwweGYwLDB4MDMsMHg3NCwweDAwLDB4ZWYgfSwKLSAgMTYsIDB4OTMyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGYsMHhlMCwweDAyLDB4YjQsMHgwMSwweGZkLDB4MDQsMHgzNywweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfSwKLSAgMTYsIDB4OTMzMCwgMCwgezB4MDQsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDAwLDB4YzcsMHgyMCwweGIzLDB4YzggfSwKLSAgMTYsIDB4OTM0MCwgMCwgezB4MWMsMHhmMSwweDAzLDB4N2MsMHgyMCwweGNmLDB4MGEsMHgzZiwweGQwLDB4MGQsMHhmMCwweDAzLDB4N2MsMHg4MCwweDhmLDB4MzIgfSwKLSAgMTYsIDB4OTM1MCwgMCwgezB4MzMsMHhjNCwweDBmLDB4ZjEsMHg4MywweDNjLDB4ZTAsMHhjZiwweDEwLDB4MzMsMHhjNCwweDBkLDB4ZjIsMHg4MywweDNjLDB4ZTIgfSwKLSAgMTYsIDB4OTM2MCwgMCwgezB4YzcsMHg4MCwweDE3LDB4Y2MsMHg0YywweGYzLDB4ODMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxMCwweGUzLDB4NDAsMHg4OCwweDY4LDB4MjIsMHgzMCwweDA4LDB4MDYsMHgwMiwweDAxLDB4YTEsMHg4OCwweGM0LDB4MGUgfSwKLSAgMTYsIDB4OTM4MCwgMCwgezB4MTQsMHgwOCwweDg3LDB4ODAsMHgwMSwweGMwLDB4MjgsMHg1MCwweDAyLDB4MDQsMHg4YiwweDg2LDB4MDIsMHhhMSwweDk4LDB4ODggfSwKLSAgMTYsIDB4OTM5MCwgMCwgezB4NDEsMHgyYSwweDA0LDB4MGEsMHg4NCwweDgyLDB4YmQsMHg4MCwweDhiLDB4MDgsMHgyYiwweGM0LDB4ODgsMHhmNCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OTNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjYywweDA4LDB4ODIsMHg0MCwweDIwLDB4MTAgfSwKLSAgMTYsIDB4OTNiMCwgMCwgezB4MDgsMHgyMSwweDEyLDB4NDQsMHgwNCwweDgyLDB4MDQsMHgyYywweDA4LDB4ODksMHg5MCwweDAyLDB4NDQsMHgyMSwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OTNjMCwgMCwgezB4MjQsMHg4OCwweDhiLDB4YTAsMHgwMCwweDQwLDB4ODQsMHg4OSwweDMwLDB4MjIsMHg0OCwweDg4LDB4YjAsMHgwMiwweGNjLDB4MDggfSwKLSAgMTYsIDB4OTNkMCwgMCwgezB4ODgsMHgyMCwweGE0LDB4YzgsMHgwMCwweDMyLDB4MGEsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTNlMCwgMCwgezB4YzAsMHgxNSwweGEwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMSwweDg4LDB4OTAsMHg2MiwweDI4LDB4MDgsMHg4OSwweDA4LDB4MmUgfSwKLSAgMTYsIDB4OTNmMCwgMCwgezB4YzAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDA4LDB4YTgsMHgwMCwweDI2LDB4NDIsMHgwYiwweDkwLDB4MDIsMHhjYywweDUwLDB4OGEgfSwKLSAgMTYsIDB4OTQwMCwgMCwgezB4MjIsMHgyYSwweDg2LDB4MGEsMHg4MCwweDAyLDB4ZWMsMHgwMCwweDg4LDB4ODQsMHgyYSwweGMxLDB4MDgsMHhiMCwweDI2LDB4MzAgfSwKLSAgMTYsIDB4OTQxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhmMCwweDAyLDB4Y2YsMHgwMCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OTQyMCwgMCwgezB4NDgsMHhmOCwweDQzLDB4NzksMHgwMCwweDhkLDB4YzAsMHgzZiwweDMwLDB4OGQsMHg2MCwweDgzLDB4NzgsMHg2MCwweGM0LDB4NTggfSwKLSAgMTYsIDB4OTQzMCwgMCwgezB4MzcsMHgyMCwweDBmLDB4NTgsMHgxMywweDdiLDB4MDIsMHhjYywweGM0LDB4MzEsMHgyMCwweDBjLDB4NDQsMHgwMywweGVjLDB4MDIgfSwKLSAgMTYsIDB4OTQ0MCwgMCwgezB4OGIsMHg4MCwweDM2LDB4YzAsMHgyNCwweGIwLDB4MTIsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTQ1MCwgMCwgezB4ZTAsMHgwMSwweDljLDB4MDAsMHhmNCwweDEwLDB4M2QsMHgwMCwweDZmLDB4YzksMHgxMywweGQ0LDB4MTIsMHhmZSwweDkwLDB4M2YgfSwKLSAgMTYsIDB4OTQ2MCwgMCwgezB4ZjAsMHgwZiwweGRhLDB4MjMsMHhmNCwweDE0LDB4ZmYsMHgwMiwweDNiLDB4ZjAsMHgwZiwweGVhLDB4MjMsMHhiNiwweDAwLDB4ZmYgfSwKLSAgMTYsIDB4OTQ3MCwgMCwgezB4ODIsMHgzZiwweGUxLDB4OGYsMHhmNCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4YWYsMHg3MCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4OTQ4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMCwweDAwLDB4Y2EsMHgwMCwweDMyLDB4MDggfSwKLSAgMTYsIDB4OTQ5MCwgMCwgezB4MWMsMHhhMCwweDAzLDB4YTUsMHgyMCwweGNiLDB4NDAsMHhiYSwweDEwLDB4MWYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGViLDB4MDAgfSwKLSAgMTYsIDB4OTRhMCwgMCwgezB4NzIsMHg5MCwweDBjLDB4YjQsMHgwMywweDI5LDB4MDQsMHhjOSwweDUyLDB4MzIsMHg1MCwweDBjLDB4YjQsMHgwMywweDBjLDB4MDAgfSwKLSAgMTYsIDB4OTRiMCwgMCwgezB4ZjgsMHg0MCwweDMyLDB4YzEsMHgwZSwweGIwLDB4MGIsMHg1MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTRjMCwgMCwgezB4YzgsMHgwNSwweDJkLDB4ODAsMHg4OSwweDgwLDB4MjIsMHhkOSwweDA4LDB4OTAsMHgyMiwweDJhLDB4MDAsMHg4OCwweDU0LDB4MjIgfSwKLSAgMTYsIDB4OTRkMCwgMCwgezB4YzAsMHg4YiwweDgwLDB4MjIsMHgyMCwweDE5LDB4YzgsMHgwMCwweDIyLDB4NDAsMHg4ZCwweDgwLDB4MWEsMHgyNCwweDEwLDB4ZDIgfSwKLSAgMTYsIDB4OTRlMCwgMCwgezB4NDQsMHgyMiwweDgxLDB4MGQsMHg4MCwweDAzLDB4N2MsMHgwMCwweGIwLDB4MDAsMHgzNywweGMwLDB4ODgsMHhmMCwweDAyLDB4MzIgfSwKLSAgMTYsIDB4OTRmMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0ZSwweDAwLDB4ODEsMHgwMCwweGEwLDB4ZjAgfSwKLSAgMTYsIDB4OTUwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODksMHgwMiwweDgwLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgwMCwweDIyLDB4YTAsMHgwMCwweGIwLDB4MDAgfSwKLSAgMTYsIDB4OTUxMCwgMCwgezB4MjAsMHg0MCwweDA4LDB4MDAsMHgwMiwweDA0LDB4MDAsMHg4MiwweDYwLDB4MjAsMHg4MCwweDA4LDB4MDAsMHgwMiwweDBjLDB4MDggfSwKLSAgMTYsIDB4OTUyMCwgMCwgezB4YjIsMHgwMCwweDIyLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTUzMCwgMCwgezB4MjAsMHgwMSwweDAzLDB4MTAsMHg4ZSwweDkwLDB4MjMsMHgyNCwweDA4LDB4NmIsMHgwMiwweDE2LDB4NjAsMHg4ZiwweDgwLDB4MjEgfSwKLSAgMTYsIDB4OTU0MCwgMCwgezB4MjgsMHgwYiwweGY5LDB4MDYsMHgxZSwweDQwLDB4OGYsMHg4MCwweDIzLDB4YTQsMHg0OSwweDc5LDB4MDIsMHgzYSwweDQwLDB4OWQgfSwKLSAgMTYsIDB4OTU1MCwgMCwgezB4OTAsMHgyMywweDY0LDB4MDksMHhmOCwweDAyLDB4NWUsMHg0MCwweGJlLDB4OTAsMHgyNCwweGU0LDB4MjgsMHg3OSwweDAyLDB4MDggfSwKLSAgMTYsIDB4OTU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQyLDB4YzAsMHgwOSwweDMwLDB4MDAgfSwKLSAgMTYsIDB4OTU3MCwgMCwgezB4MjgsMHgwMiwweDAzLDB4ODQsMHgwMCwweDhhLDB4MjAsMHgzMCwweGM0LDB4OGIsMHgxMSwweDAzLDB4ODQsMHg1MCwweGIzLDB4MDAgfSwKLSAgMTYsIDB4OTU4MCwgMCwgezB4MjAsMHhjMCwweDBjLDB4YTQsMHgyMiwweDA0LDB4MDAsMHhjYiwweDQwLDB4MzAsMHhjNSwweDBjLDB4MzAsMHgwMywweDBlLDB4NDAgfSwKLSAgMTYsIDB4OTU5MCwgMCwgezB4ZjMsMHgxMCwweDMwLDB4YzQsMHgwYywweGIwLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTVhMCwgMCwgezB4NDAsMHgxZCwweGIwLDB4MDQsMHhmYiwweDA0LDB4M2QsMHhjMCwweDBmLDB4ZjIsMHg0MywweGY4LDB4MDQsMHhmZCwweDAxLDB4M2YgfSwKLSAgMTYsIDB4OTViMCwgMCwgezB4MGMsMHgwZiwweDYxLDB4MDMsMHhmOCwweDQ4LDB4ZjQsMHgwMCwweDNkLDB4MDEsMHgwZiwweGQwLDB4MDMsMHhjOCwweDAwLDB4ZmMgfSwKLSAgMTYsIDB4OTVjMCwgMCwgezB4MDQsMHhiZCwweDA0LDB4MGIsMHg0OCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MTQsMHgzZiwweGQ1LDB4MGQsMHhmMCwweDAzLDB4OTAgfSwKLSAgMTYsIDB4OTVkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlMCwweDAwLDB4ZjksMHgwMSwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OTVlMCwgMCwgezB4OGUsMHg5MCwweDAzLDB4MjgsMHgwMiwweGQxLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhhOCwweDBiLDB4MDgsMHgwMCwweGU4LDB4MDAgfSwKLSAgMTYsIDB4OTVmMCwgMCwgezB4MmUsMHg0MCwweDBjLDB4OTgsMHgwYiwweDJlLDB4MDIsMHhjYSwweDAwLDB4YjIsMHhhMCwweDZjLDB4ODAsMHgyMywweDJkLDB4ODAgfSwKLSAgMTYsIDB4OTYwMCwgMCwgezB4Y2EsMHg4MCwweDMyLDB4ZDAsMHgwYywweGJhLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTYxMCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHhiNiwweDAwLDB4YTMsMHgwMCwweDA4LDB4NjAsMHgwMiwweDA0LDB4MDAsMHg4NiwweDA0LDB4MjkgfSwKLSAgMTYsIDB4OTYyMCwgMCwgezB4MDAsMHgwOCwweDUwLDB4NDIsMHgxNCwweDA0LDB4YTcsMHgwMCwweDBkLDB4ODAsMHg0YSwweDYwLDB4MDIsMHgwMCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4OTYzMCwgMCwgezB4MDAsMHgyMSwweDQwLDB4MDgsMHg3MCwweDAyLDB4OWQsMHg0MiwweDg2LDB4MDEsMHgyMCwweGMwLDB4MDgsMHgzMiwweDgyLDB4MTIgfSwKLSAgMTYsIDB4OTY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5MiwweDAwLDB4YmMsMHg4MCwweDYzLDB4MjAgfSwKLSAgMTYsIDB4OTY1MCwgMCwgezB4ODIsMHgwOCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzIsMHgyMywweDIwLDB4ODgsMHgwYywweDAyLDB4MzMsMHgwMCwweDg0LDB4ODAgfSwKLSAgMTYsIDB4OTY2MCwgMCwgezB4MmYsMHgyMSwweDg5LDB4NGMsMHgwMiwweDEyLDB4MTQsMHg5NCwweGM1LDB4NjQsMHgyMSwweDA4LDB4NGMsMHgwMiwweDBlLDB4ODAgfSwKLSAgMTYsIDB4OTY3MCwgMCwgezB4OTcsMHg4MiwweGExLDB4ZWMsMHgwOCwweDc5LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTY4MCwgMCwgezB4NDgsMHgxNCwweGNkLDB4NDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDRkLDB4ODAsMHgwMywweDg4LDB4MjggfSwKLSAgMTYsIDB4OTY5MCwgMCwgezB4YzAsMHgwOCwweDNjLDB4MDYsMHgwZiwweDAwLDB4YTMsMHg0MywweDJjLDB4YzIsMHgxYiwweDM4LDB4MDIsMHgwZiwweDAwLDB4OWIgfSwKLSAgMTYsIDB4OTZhMCwgMCwgezB4ODgsMHg2NCwweGQwLDB4MDgsMHhiOCwweDAyLDB4OGMsMHgxMCwweDkzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDBhLDB4MTIgfSwKLSAgMTYsIDB4OTZiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhYSwweDAwLDB4ZmEsMHgwNSwweDMyLDB4ODAgfSwKLSAgMTYsIDB4OTZjMCwgMCwgezB4OGUsMHhhMCwweDBiLDB4NjksMHgwMCwweGNhLDB4NDAsMHgzMiwweGEwLDB4M2MsMHhhOCwweDAzLDB4MmEsMHgwMCwweGVhLDB4MjYgfSwKLSAgMTYsIDB4OTZkMCwgMCwgezB4M2UsMHhiMCwweDBkLDB4YTEsMHg2MywweDI4LDB4MjAsMHhjYSwweDQwLDB4MzYsMHhhMCwweDBjLDB4ZTAsMHgxMywweDI4LDB4MDkgfSwKLSAgMTYsIDB4OTZlMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyYywweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTZmMCwgMCwgezB4NDgsMHgwMCwweGYwLDB4MjAsMHhmNCwweDAwLDB4M2YsMHgwMCwweDBmLDB4NDAsMHgyMywweGIwLDB4MDAsMHhlYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4OTcwMCwgMCwgezB4MDYsMHgxZSwweGMyLDB4MTMsMHhmMCwweDg4LDB4ZmMsMHgyMCwweDNmLDB4MDQsMHg4ZSwweGMwLDB4MDMsMHhmMCwweDgwLDB4ZWMgfSwKLSAgMTYsIDB4OTcxMCwgMCwgezB4NDAsMHgzYiwweDBjLDB4MGYsMHhjMCwweGEzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfSwKLSAgMTYsIDB4OTcyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAwLDB4ZjksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4OTczMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGM5LDB4ODAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDUzLDB4ZTQsMHgxMCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4OTc0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDhmLDB4OTAsMHgwMywweDI0LDB4MTAgfSwKLSAgMTYsIDB4OTc1MCwgMCwgezB4YzksMHgwMSwweDNjLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTc2MCwgMCwgezB4ODAsMHgwNCwweDQ3LDB4NDQsMHg4OSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI1LDB4MGEsMHg4MSwweDEwLDB4MjIgfSwKLSAgMTYsIDB4OTc3MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDMsMHhjNCwweDAwLDB4ODksMHgwMCwweDc2LDB4NDAsMHgyOCwweDkwLDB4MDIsMHhlNCwweDEwLDB4YjkgfSwKLSAgMTYsIDB4OTc4MCwgMCwgezB4NDAsMHhiMiwweDQwLDB4MGIsMHg5MCwweDAzLDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQxLDB4MDgsMHg5MCwweDQyLDB4ZTAgfSwKLSAgMTYsIDB4OTc5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNCwweDAyLDB4YmQsMHgwMCwweDIzLDB4NDggfSwKLSAgMTYsIDB4OTdhMCwgMCwgezB4MDgsMHhkMCwweDA2LDB4MWQsMHgwNCwweDhkLDB4MDAsMHgyOSwweGMwLDB4NGEsMHhkMCwweDIyLDB4ZjQsMHgwMCwweDg1LDB4MDAgfSwKLSAgMTYsIDB4OTdiMCwgMCwgezB4NjEsMHg0MCwweDE4LDB4ZDAsMHgxMiwweGZjLDB4MDAsMHhiZCwweDQwLDB4YTMsMHg0MCwweDRiLDB4ZjAsMHgwMiwweDA0LDB4MDEgfSwKLSAgMTYsIDB4OTdjMCwgMCwgezB4OGIsMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTdkMCwgMCwgezB4MDgsMHgwNCwweDM2LDB4ODAsMHg4NSwweDIwLDB4YTMsMHg0OCwweDA4LDB4NTIsMHgwYSwweDE0LDB4ODEsMHg4NSwweDIwLDB4MjkgfSwKLSAgMTYsIDB4OTdlMCwgMCwgezB4NDgsMHgwOCwweDUyLDB4MDIsMHhiNCwweDgwLDB4ODUsMHgyMCwweDI1LDB4NDgsMHg4OCwweDUyLDB4MDIsMHhkNCwweDgwLDB4YjUgfSwKLSAgMTYsIDB4OTdmMCwgMCwgezB4MjAsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NDQsMHhhMiwweDgxLDB4MDAsMHgyYywweDRhLDB4MDgsMHgxMiwweDgyLDB4YzIgfSwKLSAgMTYsIDB4OTgwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHg1MSwweDIyLDB4MDAgfSwKLSAgMTYsIDB4OTgxMCwgMCwgezB4MmMsMHg4NSwweDAyLDB4MjEsMHg0OCwweGM4LDB4MDAsMHhiYSwweDE0LDB4MGYsMHg4NSwweDEyLDB4ZTEsMHg0MiwweGM4LDB4NTAgfSwKLSAgMTYsIDB4OTgyMCwgMCwgezB4MjIsMHgwMCwweDBjLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDA3LDB4NDUsMHgwMywweDIwLDB4ODAgfSwKLSAgMTYsIDB4OTgzMCwgMCwgezB4YzAsMHgwMSwweDNlLDB4MDgsMHgyYywweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTg0MCwgMCwgezB4OTgsMHgwZCwweGU0LDB4NDAsMHhmMSwweDEwLDB4M2UsMHg0NCwweDA3LDB4OTEsMHg0MywweGU0LDB4NTgsMHhmOSwweDExLDB4MzQgfSwKLSAgMTYsIDB4OTg1MCwgMCwgezB4NDQsMHg0ZiwweDkxLDB4MDIsMHhlNCwweDUwLDB4ZjksMHgxMCwweDNjLDB4NGYsMHgwZiwweDkzLDB4ODMsMHhlNCwweGYwLDB4ZjkgfSwKLSAgMTYsIDB4OTg2MCwgMCwgezB4MTEsMHgzYSwweDRmLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHhhMCwweGZkLDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfSwKLSAgMTYsIDB4OTg3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweGEwLDB4Y2QsMHhhMCwweGIzLDB4NjggfSwKLSAgMTYsIDB4OTg4MCwgMCwgezB4OGMsMHg5YSwweDAzLDB4MzYsMHg4MCwweGM1LDB4YTAsMHgyMiwweDYwLDB4MGMsMHg5YSwweDIzLDB4MjYsMHgwNCwweGY5LDB4YTAgfSwKLSAgMTYsIDB4OTg5MCwgMCwgezB4MzIsMHg2NiwweDBjLDB4OWEsMHg4MywweDA2LDB4MjAsMHhjNSwweGEwLDB4MjIsMHg2MCwweDBjLDB4OWIsMHgwMywweDI2LDB4NDggfSwKLSAgMTYsIDB4OThhMCwgMCwgezB4YzksMHgwMCwweDNlLDB4NzgsMHgwYywweDlhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OThiMCwgMCwgezB4MzgsMHgwMCwweGUxLDB4MDAsMHg4OCwweDQ0LDB4MjIsMHg5NSwweDA4LDB4ODUsMHgxMiwweGExLDB4NDIsMHg4OCwweDQwLDB4MDIgfSwKLSAgMTYsIDB4OThjMCwgMCwgezB4OTAsMHgwOCwweDg0LDB4MDIsMHgyMywweGEwLDB4YmEsMHg0MCwweDIyLDB4YTAsMHgwOCwweDhlLDB4OTIsMHhhMywweGEwLDB4YTggfSwKLSAgMTYsIDB4OThkMCwgMCwgezB4NDAsMHgyYSwweDEwLDB4MDgsMHhhZSwweDAyLDB4MjMsMHg0MCwweDg4LDB4MDAsMHgyZSwweDM4LDB4MDgsMHg4NCwweDEyLDB4MGUgfSwKLSAgMTYsIDB4OThlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTUsMHhjNCwweDAwLDB4OGIsMHgxMiwweDIyLDB4NDAgfSwKLSAgMTYsIDB4OThmMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDgxLDB4NDAsMHhhMCwweDUwLDB4MDgsMHgxMSwweDBhLDB4MDUsMHgwMCwweGIxLDB4MTAgfSwKLSAgMTYsIDB4OTkwMCwgMCwgezB4YTAsMHg0OCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4MSwweDQwLDB4MjAsMHg1MCwweDI4LDB4MTEsMHgwMiwweDQ0LDB4ODIgfSwKLSAgMTYsIDB4OTkxMCwgMCwgezB4ODEsMHgwMCwweDJjLDB4NTAsMHgwOCwweDExLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTkyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDIsMHg4OSwweDQwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgxMiwweGE1LDB4MDAsMHg4OSwweDI4LDB4MjIgfSwKLSAgMTYsIDB4OTkzMCwgMCwgezB4NDksMHgwOCwweDk0LDB4MDIsMHgyNCwweDQ4LDB4YjksMHgxNCwweDIyLDB4NDAsMHgwOCwweDk0LDB4MDIsMHhhNCwweDQwLDB4YTEgfSwKLSAgMTYsIDB4OTk0MCwgMCwgezB4NTAsMHgyYSwweDUwLDB4MDgsMHg5MSwweDQyLDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDYgfSwKLSAgMTYsIDB4OTk1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NzAgfSwKLSAgMTYsIDB4OTk2MCwgMCwgezB4MmMsMHgxMCwweDBiLDB4NjYsMHgwMCwweGM5LDB4NDAsMHgzMiwweDUwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGY5LDB4YzAgfSwKLSAgMTYsIDB4OTk3MCwgMCwgezB4MzIsMHg3MCwweDBjLDB4OTAsMHgwMywweDI2LDB4MjAsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OWMsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4OTk4MCwgMCwgezB4YzksMHg0MSwweDNlLDB4NDAsMHgyYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OTk5MCwgMCwgezB4MjgsMHgwMSwweGE0LDB4MDAsMHhmOSwweDA0LDB4M2UsMHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4ODgsMHhmOSwweDAwLDB4MzQgfSwKLSAgMTYsIDB4OTlhMCwgMCwgezB4NDEsMHgyZiwweDljLDB4MDMsMHhlNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDQsMHgyZiwweDk5LDB4MDMsMHhlNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4OTliMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGYsMHgxMCwweDRiLDB4YTQsMHgxMCwweGY5LDB4MjAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4NGEgfSwKLSAgMTYsIDB4OTljMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4OTlkMCwgMCwgezB4MmMsMHg4MCwweDAzLDB4MjAsMHgwMiwweGMwLDB4NDAsMHgzMiwweDAwLDB4MWMsMHgwNCwweDBmLDB4MjEsMHgwMCwweGMwLDB4MDQgfSwKLSAgMTYsIDB4OTllMCwgMCwgezB4MzgsMHgwMCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDgsMHhjOCwweDYwLDB4MzAsMHgxMCwweDBmLDB4ODAsMHgwMiwweDIwLDB4MDAgfSwKLSAgMTYsIDB4OTlmMCwgMCwgezB4ZjgsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHhjYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWEwMCwgMCwgezB4MjgsMHgwNSwweDFhLDB4MjAsMHg4MiwweDA0LDB4MmYsMHg4MCwweDA4LDB4YTAsMHgwMiwweDM4LDB4MDAsMHg4ZSwweDgwLDB4MjIgfSwKLSAgMTYsIDB4OWExMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODEsMHgwYiwweDIwLDB4MDIsMHgyOCwweDAwLDB4ZGUgfSwKLSAgMTYsIDB4OWEyMCwgMCwgezB4ZTQsMHgzNiwweDgwLDB4MGIsMHhhMCwweDQyLDB4MjgsMHgwMCwweGJhLDB4MDQsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4Y2EgfSwKLSAgMTYsIDB4OWEzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHgwMSwweDJjLDB4ODAgfSwKLSAgMTYsIDB4OWE0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHg2MCwweDgyLDB4OTAsMHhhMCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAgfSwKLSAgMTYsIDB4OWE1MCwgMCwgezB4MjgsMHhjMCwweDBiLDB4MzAsMHgwYSwweDJjLDB4MDAsMHg4MywweGMyLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgyYSwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWE2MCwgMCwgezB4YjMsMHgwMCwweGEwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWE3MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4MDAsMHg4NywweDAxLDB4MmQsMHhjMiwweDA4LDB4ZjMsMHgxMiwweDNjLDB4MDAsMHg4ZiwweDAxLDB4MjEgfSwKLSAgMTYsIDB4OWE4MCwgMCwgezB4YzgsMHg2OCwweDcyLDB4MjIsMHgxZSwweDA0LDB4ODcsMHgyMCwweDIxLDB4YzQsMHgwYiwweDcwLDB4MDIsMHgzYywweDg0LDB4OWYgfSwKLSAgMTYsIDB4OWE5MCwgMCwgezB4MDAsMHgyNSwweGM0LDB4NGIsMHg3MCwweDAyLDB4MWMsMHgwNCwweGI3LDB4ODEsMHgyMSwweGM4LDB4MDgsMHg3MiwweDAyLDB4ZTggfSwKLSAgMTYsIDB4OWFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDAsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNjLDB4YTAgfSwKLSAgMTYsIDB4OWFiMCwgMCwgezB4NGMsMHg3YSwweDBiLDB4MWEsMHgwMCwweGM2LDB4ODAsMHgzMCwweGUwLDB4MDgsMHhmOCwweDgyLDB4MGUsMHg0MCwweGNmLDB4ZjAgfSwKLSAgMTYsIDB4OWFjMCwgMCwgezB4MzksMHhlOCwweDBmLDB4M2EsMHgwMywweDFlLDB4MjAsMHhjNywweDgwLDB4MzEsMHhlMywweDBmLDB4MzgsMHgyMywweDFmLDB4MDggfSwKLSAgMTYsIDB4OWFkMCwgMCwgezB4ZmYsMHhjMCwweDMzLDB4ZjIsMHgwYywweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxNSwweDg4LDB4MGEsMHg3YiwweDAwLDB4M2UsMHhjMSwweDBiLDB4MzQsMHgyMywweGM4LDB4MTAsMHhmYiwweDAyLDB4M2UgfSwKLSAgMTYsIDB4OWFmMCwgMCwgezB4Y2EsMHgwZiwweGI3LDB4NDMsMHhlYywweDgwLDB4ZmIsMHgwMCwweDJlLDB4YzIsMHgwYiwweGI0LDB4ODMsMHhlZCwweGQwLDB4ZmEgfSwKLSAgMTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzZSwweGQ5LDB4MGYsMHhiMywweDgzLDB4ZWMsMHg4MCwweGJiLDB4MjAsMHgzZSwweGQ4LDB4MmYsMHhiNCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4OWIxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmZSwweDAwLDB4ZjUsMHg5MSwweDMxLDB4YTAgfSwKLSAgMTYsIDB4OWIyMCwgMCwgezB4MGMsMHhmYywweDAzLDB4ZmUsMHgwMCwweGM0LDB4ODEsMHgzMSwweGVlLDB4OGQsMHhmOCwweDBhLDB4M2UsMHgzMCwweGNmLDB4ODQgfSwKLSAgMTYsIDB4OWIzMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHg4MywweGZlLDB4MTAsMHhmZSwweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgxOSwweDNmLDB4NDggfSwKLSAgMTYsIDB4OWI0MCwgMCwgezB4Y2YsMHhjMCwweDMzLDB4ZTAsMHgwNCwweGZjLDB4MDMsMHhjMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWI1MCwgMCwgezB4YTgsMHgxMSwweDljLDB4MDgsMHhiNywweGExLDB4MjEsMHhjOCwweDA4LDB4NzEsMHgwMiwweGYwLDB4YTAsMHg4NSwweDIwLDB4MjEgfSwKLSAgMTYsIDB4OWI2MCwgMCwgezB4Y2UsMHgwOCwweDcwLDB4MDIsMHgzYywweDgwLDB4OGYsMHgwMCwweDJiLDB4YzUsMHgwOCwweDcxLDB4MDIsMHhkYywweDEwLDB4YjQgfSwKLSAgMTYsIDB4OWI3MCwgMCwgezB4MDAsMHgyMSwweGMxLDB4MGEsMHhmMywweDgyLDB4MGMsMHgwMCwweDg3LDB4MDEsMHgyOSwweGMwLDB4MDgsMHg3MSwweDAyLDB4NmEgfSwKLSAgMTYsIDB4OWI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5ZCwweDAwLDB4YmQsMHgyMSwweDI3LDB4ODIgfSwKLSAgMTYsIDB4OWI5MCwgMCwgezB4MDAsMHg3MCwweDAyLDB4ZmMsMHgwNCwweDhjLDB4MDAsMHhhNywweGNjLDB4YTgsMHg3MCwweDAyLDB4M2MsMHgwOCwweGFmLDB4MDAgfSwKLSAgMTYsIDB4OWJhMCwgMCwgezB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRjLDB4MDAsMHhiNywweDAwLDB4MjEsMHhjNCwweDA4LDB4NzAsMHgxNiwweDFjLDB4MGEgfSwKLSAgMTYsIDB4OWJiMCwgMCwgezB4OGYsMHgwMCwweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhjMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWJjMCwgMCwgezB4MjAsMHgxMCwweGM4LDB4MDAsMHhiYiwweDQ0LDB4MjQsMHhlMiwweDA4LDB4YjEsMHgwMiwweGMyLDB4ODAsMHgwMSwweDgwLDB4MjQgfSwKLSAgMTYsIDB4OWJkMCwgMCwgezB4ZDAsMHg4OCwweDMwLDB4MDIsMHgwZiwweDUyLDB4ODMsMHg5MSwweDI4LDB4ZTQsMHg4OCwweDNkLDB4MDIsMHhjZSwweGQwLDB4YjAgfSwKLSAgMTYsIDB4OWJlMCwgMCwgezB4YjIsMHhhMiwweGMwLDB4MGEsMHgzNCwweDEyLDB4MGMsMHgwMiwweDgzLDB4MDAsMHgyOCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NDggfSwKLSAgMTYsIDB4OWJmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmIsMHgwMSwweGU0LDB4NDAgfSwKLSAgMTYsIDB4OWMwMCwgMCwgezB4MmMsMHhmMCwweDQzLDB4ZTUsMHgwMCwweDhhLDB4ODgsMHgzNywweGUwLDB4MDAsMHhmYSwweDAyLDB4M2QsMHgwMCwweGVmLDB4MDAgfSwKLSAgMTYsIDB4OWMxMCwgMCwgezB4MzMsMHhkMSwweDBjLDB4ZjQsMHgwMywweGZkLDB4MDAsMHhmOSwweDQwLDB4MzMsMHhlOCwweDBjLDB4ZmMsMHgwMSwweDNjLDB4MDQgfSwKLSAgMTYsIDB4OWMyMCwgMCwgezB4Y2YsMHgwMiwweDMzLDB4YzAsMHgyYywweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWMzMCwgMCwgezB4ODAsMHgwMCwweGVlLDB4MDgsMHhmOSwweDEwLDB4M2EsMHhkMCwweDBmLDB4YjAsMHg5MywweGVjLDB4MDAsMHhmYiwweDBiLDB4M2EgfSwKLSAgMTYsIDB4OWM0MCwgMCwgezB4YzAsMHg4ZSwweGIwLDB4ODMsMHhlYywweDgwLDB4ZmIsMHgwOSwweDdlLDB4YzgsMHgwZiwweGIyLDB4MTMsMHhlYywweDAwLDB4ZjkgfSwKLSAgMTYsIDB4OWM1MCwgMCwgezB4MDAsMHgzZSwweGMyLDB4OGYsMHhiMiwweDRiLDB4Y2MsMHgwNCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4OWM2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4ZmYsMHgwOCwweDMzLDB4YzAgfSwKLSAgMTYsIDB4OWM3MCwgMCwgezB4MWMsMHhmMCwweDAzLDB4NzAsMHg0MCwweGM0LDB4YzAsMHgzMywweGMyLDB4MGYsMHhmMCwweDAzLDB4MWMsMHgxMCwweGM3LDB4MDAgfSwKLSAgMTYsIDB4OWM4MCwgMCwgezB4MzEsMHhjMCwweDBjLDB4NzAsMHgwMywweDFjLDB4MDAsMHhjNSwweDQxLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgyMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWM5MCwgMCwgezB4Y2YsMHgwMCwweGIzLDB4YzAsMHg2YywweGYwLDB4MDMsMHg4MCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWNhMCwgMCwgezB4ODEsMHgwNCwweDZhLDB4MDAsMHhiOSwweDkwLDB4MzIsMHhmMSwweDA4LDB4YjAsMHgwMiwweDBhLDB4MTAsMHhkOSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OWNiMCwgMCwgezB4YzEsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4Y2IsMHgwNiwweDIyLDB4YzAsMHg4OCwweGIwLDB4MTIsMHgyYywweDAwLDB4ODggfSwKLSAgMTYsIDB4OWNjMCwgMCwgezB4ODAsMHgyMiwweGMxLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDAsMHgyMiwweGMxLDB4MDgsMHhiMCwweDQ2LDB4ZTAgfSwKLSAgMTYsIDB4OWNkMCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDEsMHgyZSwweDAwLDB4YjksMHgwMCwweDIyLDB4ZjAgfSwKLSAgMTYsIDB4OWNlMCwgMCwgezB4MDgsMHhiMCwweDEyLDB4NjQsMHgwMCwweDhhLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAgfSwKLSAgMTYsIDB4OWNmMCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4YSwweDAwLDB4MjIsMHhjMCwweDg4LDB4MzAsMHgwYSwweDJjLDB4MDAgfSwKLSAgMTYsIDB4OWQwMCwgMCwgezB4OGIsMHgwMCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHhiMSwweDAyLDB4ZTQsMHhjMSwweDA4LDB4YjAsMHgyMiwweDIwLDB4MDIsMHg5MywweDAwLDB4MjAgfSwKLSAgMTYsIDB4OWQyMCwgMCwgezB4YzAsMHgwYiwweDMwLDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMiwweGEwLDB4YzAsMHgyOCwweDMwLDB4MGUsMHgwYywweDAyLDB4ODAgfSwKLSAgMTYsIDB4OWQzMCwgMCwgezB4MDAsMHhhMCwweGMwLDB4NDksMHgzMCwweDBhLDB4MGMsMHgwMiwweDhiLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4OWQ0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZjksMHgyNCwweDMyLDB4YzAgfSwKLSAgMTYsIDB4OWQ1MCwgMCwgezB4MDgsMHhmMCwweDAzLDB4NjQsMHgwMCwweGM4LDB4MDAsMHhiMywweGMwLDB4MWYsMHhmMCwweDBiLDB4M2MsMHgwMCwweDhmLDB4MDAgfSwKLSAgMTYsIDB4OWQ2MCwgMCwgezB4MzMsMHhjMCwweDRjLDB4ZjAsMHg0MywweDNjLDB4MDgsMHhjMywweDAwLDB4MzEsMHhjMCwweDBjLDB4ZjAsMHgwMywweDNkLDB4NDggfSwKLSAgMTYsIDB4OWQ3MCwgMCwgezB4Y2YsMHgwMCwweDMxLDB4YzAsMHgwYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWQ4MCwgMCwgezB4YTAsMHgxZCwweGYwLDB4MDQsMHhmOSwweDQxLDB4M2IsMHhjMCwweDRmLDB4ZjAsMHgwMywweGYwLDB4MTEsMHhmZCwweDAwLDB4M2YgfSwKLSAgMTYsIDB4OWQ5MCwgMCwgezB4YzAsMHg4NywweDcwLDB4MjcsMHhmYywweDAwLDB4ZWYsMHgwNiwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDIsMHhmYywweDA4LDB4ZmMgfSwKLSAgMTYsIDB4OWRhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NDcsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDc3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4OWRiMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhkMiwweDAwLDB4YzcsMHgwMSwweDM3LDB4MGMgfSwKLSAgMTYsIDB4OWRjMCwgMCwgezB4MGYsMHhlOCwweDIzLDB4MTAsMHg0YSwweGM0LDB4YzAsMHgzMSwweDMwLDB4MGMsMHhjOSwweDAzLDB4MzQsMHg0NiwweGNmLDB4MTAgfSwKLSAgMTYsIDB4OWRkMCwgMCwgezB4MzMsMHhkMCwweDBjLDB4ZjQsMHgwMywweDNjLDB4NTgsMHhjZiwweDAwLDB4MzMsMHhjMCwweDJkLDB4ZjEsMHgwMywweDNlLDB4MDIgfSwKLSAgMTYsIDB4OWRlMCwgMCwgezB4Y2YsMHgyMSwweDNmLDB4ZTQsMHgwZiwweGYyLDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWRmMCwgMCwgezB4ODAsMHgxMCwweGU0LDB4ODQsMHgwYiwweDQwLDB4MjIsMHg0YywweDBiLDB4YTgsMHgwMiwweDJjLDB4YzAsMHg4YiwweDIwLDB4MjIgfSwKLSAgMTYsIDB4OWUwMCwgMCwgezB4YzgsMHg0YSwweDMyLDB4MDIsMHgyNCwweDgwLDB4ODMsMHgyMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4OGIgfSwKLSAgMTYsIDB4OWUxMCwgMCwgezB4MjEsMHgzMiwweGNhLDB4NDgsMHgzMiwweDAyLDB4MmMsMHgzMCwweDhmLDB4OTAsMHgyZSwweDg4LDB4MGIsMHhiZCwweDEyLDB4MjAgfSwKLSAgMTYsIDB4OWUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZSwweDIwLDB4YTMsMHg0MCwweGUwLDB4NDggfSwKLSAgMTYsIDB4OWUzMCwgMCwgezB4NGIsMHgyMCwweDIyLDB4MGMsMHgwMiwweDgyLDB4MDAsMHgyYSwweDAwLDB4MDgsMHgyMCwweDAyLDB4MDQsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4OWU0MCwgMCwgezB4MjAsMHhjOCwweDA4LDB4MDIsMHgwMiwweDBjLDB4MDAsMHg4MCwweDBjLDB4NjAsMHgwMCwweDA4LDB4MjAsMHgxMiwweDJjLDB4ODggfSwKLSAgMTYsIDB4OWU1MCwgMCwgezB4ODMsMHgwMCwweDJjLDB4ZTgsMHgwYiwweDMwLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxNSwweGFlLDB4MDAsMHhhYiwweDAxLDB4YTIsMHg2MCwweDBiLDB4YTAsMHgwMiwweDIwLDB4MDEsMHg4MSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4OWU3MCwgMCwgezB4YzAsMHgwYSwweDkwLDB4MTIsMHgwNCwweDIwLDB4OGEsMHgwOCwweDIyLDB4YzEsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODggfSwKLSAgMTYsIDB4OWU4MCwgMCwgezB4MDAsMHgyNCwweDQ0LDB4MDgsMHhhMiwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDQsMHgyZSwweDg4LDB4MDMsMHhiMCwweDAyLDB4NzAgfSwKLSAgMTYsIDB4OWU5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWEsMHg5MCwweDMyLDB4MjggfSwKLSAgMTYsIDB4OWVhMCwgMCwgezB4MGYsMHhiNiwweDAzLDB4MjAsMHgwOCwweGM5LDB4MDQsMHgzYSwweGMwLDB4NGMsMHg5MCwweDIyLDB4MjQsMHgwMCwweGNiLDB4NDAgfSwKLSAgMTYsIDB4OWViMCwgMCwgezB4MzIsMHhhOCwweDBjLDB4YjIsMHgwMywweDJjLDB4MDAsMHhjYiwweDgwLDB4YjIsMHhlMCwweDBjLDB4YjAsMHgwYiwweDA0LDB4MDAgfSwKLSAgMTYsIDB4OWVjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWVkMCwgMCwgezB4ZTAsMHgwMSwweGJjLDB4MDAsMHhkZiwweDgwLDB4M2IsMHg4MSwweDBmLDB4ZjAsMHhjMywweGZjLDB4MDAsMHhiZSwweDAxLDB4MWYgfSwKLSAgMTYsIDB4OWVlMCwgMCwgezB4MDAsMHgwZiwweGUwLDB4MjMsMHhmNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YjAsMHg0ZiwweGYwLDB4NDMsMHhkNCwweDAyLDB4ZmYgfSwKLSAgMTYsIDB4OWVmMCwgMCwgezB4OTEsMHgzYSwweGUwLDB4NGUsMHhmMCwweDAzLDB4N2MsMHgwYywweGZmLDB4MDAsMHgyZiwweDgwLDB4MGYsMHgzMCwweDAzLDB4YjggfSwKLSAgMTYsIDB4OWYwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhYywweDAxLDB4Y2EsMHgwMCwweDcyLDB4NTAgfSwKLSAgMTYsIDB4OWYxMCwgMCwgezB4MDQsMHhiNCwweDAzLDB4MmMsMHg4MiwweGNiLDB4MDAsMHgzMiwweGUwLDB4MGMsMHhiOCwweDAzLDB4MjcsMHgwNCwweGM4LDB4YzggfSwKLSAgMTYsIDB4OWYyMCwgMCwgezB4YjIsMHhhMiwweDBjLDB4ODgsMHgwMywweDJjLDB4MDAsMHhjMSwweDAwLDB4M2UsMHgwMCwweDJjLDB4MzAsMHgxYiwweDJjLDB4MDQgfSwKLSAgMTYsIDB4OWYzMCwgMCwgezB4ZmIsMHgxMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWY0MCwgMCwgezB4YzgsMHgwNSwweDJjLDB4MDQsMHgwMywweDUwLDB4YTIsMHhlMCwweDA4LDB4MzQsMHg0MiwweDMzLDB4MDAsMHg4OCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4OWY1MCwgMCwgezB4MTAsMHgwZCwweDg0LDB4MDMsMHgyNSwweDAwLDB4OGEsMHg0MCwweDIyLDB4OTAsMHgwOCwweGE1LDB4MDIsMHgyYywweDAwLDB4ODkgfSwKLSAgMTYsIDB4OWY2MCwgMCwgezB4YTQsMHgzYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGJmLDB4ODQsMHgyZSwweDgwLDB4MGIsMHhmMCwweDUyLDB4MzIgfSwKLSAgMTYsIDB4OWY3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg2YywweDgwLDB4ODEsMHg4MCwweDI0LDB4ODggfSwKLSAgMTYsIDB4OWY4MCwgMCwgezB4ODksMHgzYywweDI2LDB4MjEsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAyLDB4MDgsMHg4MCwweDgyLDB4MDAsMHgyMCwweDliLDB4MDAgfSwKLSAgMTYsIDB4OWY5MCwgMCwgezB4MjIsMHg0MCwweDg4LDB4YjAsMHgxMiwweDBjLDB4MDgsMHg4MywweDgwLDB4MmMsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAgfSwKLSAgMTYsIDB4OWZhMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4OWZiMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4MGEsMHg4NSwweGEwLDB4YTUsMHg2MCwweDA4LDB4ZmIsMHg4MiwweDNlLDB4ODQsMHg5ZiwweDgxLDB4NjMgfSwKLSAgMTYsIDB4OWZjMCwgMCwgezB4ZTAsMHg4OSwweDc5LDB4MTIsMHg1MiwweDgwLDB4OTcsMHg4MiwweDIxLDB4NmMsMHgxOCwweDc4LDB4MDIsMHgxMiwweDAwLDB4ODcgfSwKLSAgMTYsIDB4OWZkMCwgMCwgezB4YTEsMHgyOSwweGUwLDB4MDgsMHg1YiwweDAyLDB4MWUsMHgwMCwweGI3LDB4YzAsMHgyZCwweDYwLDB4MGIsMHg3OCwweDAyLDB4MDggfSwKLSAgMTYsIDB4OWZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgwOCwweDI2LDB4YzIgfSwKLSAgMTYsIDB4OWZmMCwgMCwgezB4MmMsMHgzMiwweDEzLDB4MGUsMHhhNCwweGQyLDB4MDAsMHhiMCwweDAwLDB4MWMsMHgyMSwweDEyLDB4MjQsMHgwMiwweGQxLDB4MjAgfSwKLSAgMTYsIDB4YTAwMCwgMCwgezB4MzAsMHhjOCwweDBjLDB4MTAsMHgwMywweDBjLDB4MDAsMHhjMiwweDEwLDB4M2MsMHg4MCwweDBjLDB4MjMsMHgwMywweDBjLDB4NDAgfSwKLSAgMTYsIDB4YTAxMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4NDgsMHgwZiwweDMwLDB4MGIsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTAyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhmZCwweDIwLDB4YmIsMHg0MCwweDA3LDB4NzIsMHgwMiwweGYwLDB4MTAsMHhlZCwweDEwLDB4M2YgfSwKLSAgMTYsIDB4YTAzMCwgMCwgezB4YzQsMHgwZiwweGQxLDB4NjMsMHhiNCwweDgwLDB4ZWYsMHgwMCwweDNmLDB4YzgsMHgwZiwweGYwLDB4MDMsMHhkOCwweDAwLDB4ZmUgfSwKLSAgMTYsIDB4YTA0MCwgMCwgezB4MzQsMHgzZiwweGM0LDB4MGYsMHhlYiwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHg3ZiwweDQwLDB4MGYsMHhmMSwweDgzLDB4ZDAgfSwKLSAgMTYsIDB4YTA1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhlYywweDAwLDB4YzgsMHgwMCwweDMzLDB4ODAgfSwKLSAgMTYsIDB4YTA2MCwgMCwgezB4OGYsMHgyOCwweDAzLDB4MjAsMHgwMCwweDQ5LDB4MDIsMHgzMiwweGMwLDB4MGYsMHg5MCwweDAzLDB4MjAsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YTA3MCwgMCwgezB4MzIsMHg0MCwweDRjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHhjMCwweDBlLDB4OWUsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTA4MCwgMCwgezB4ZmIsMHgyMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTA5MCwgMCwgezB4NDgsMHgxMSwweDljLDB4MDAsMHg4ZCwweDAxLDB4MjEsMHhjMCwweDBiLDB4NjAsMHgwMiwweDFkLDB4MDAsMHhkNiwweDAwLDB4MjEgfSwKLSAgMTYsIDB4YTBhMCwgMCwgezB4MDAsMHgwYiwweGUwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwNCwweDIwLDB4NDAsMHgwOCwweDcwLDB4NDIsMHgzNCwweDAyLDB4ODcgfSwKLSAgMTYsIDB4YTBiMCwgMCwgezB4MDEsMHgyMywweGMwLDB4MjgsMHg1MSwweDBhLDB4MWMsMHgwNCwweGI3LDB4MzAsMHgyZCwweGMwLDB4MGIsMHg3MiwweDAzLDB4OTIgfSwKLSAgMTYsIDB4YTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5ZSwweDAwLDB4YTYsMHg0MCwweDIxLDB4YTAgfSwKLSAgMTYsIDB4YTBkMCwgMCwgezB4MGIsMHg2OCwweDAyLDB4MGUsMHgwMCwweDhmLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4MTYsMHgxMCwweGE1LDB4ODAgfSwKLSAgMTYsIDB4YTBlMCwgMCwgezB4MjEsMHhlMCwweDA4LDB4MTgsMHgwMiwweDFlLDB4MDAsMHg4MywweDgwLDB4MjEsMHhhMCwweDA4LDB4NzgsMHgwMiwweDFmLDB4MDAgfSwKLSAgMTYsIDB4YTBmMCwgMCwgezB4YjcsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDM4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTEwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MTIsMHhhMSwweDY0LDB4MjAsMHhlNiwweDBiLDB4MjAsMHgwMiwweDAwLDB4MTAsMHg5MCwweDRhLDB4MjAgfSwKLSAgMTYsIDB4YTExMCwgMCwgezB4MjAsMHg0YiwweDAwLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzIsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTEyMCwgMCwgezB4MDQsMHgyMCwweGMwLDB4MDgsMHgzMCwweDAyLDB4MGUsMHgwMCwweGIzLDB4MDAsMHgyYywweGUwLDB4NGIsMHgzMCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YTEzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4ZWUsMHhjMCwweDMzLDB4OTAgfSwKLSAgMTYsIDB4YTE0MCwgMCwgezB4MGYsMHhhMCwweDFiLDB4MDgsMHgwMCwweGNhLDB4NDAsMHhiMiwweDgyLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMiwweGNhLDB4MDAgfSwKLSAgMTYsIDB4YTE1MCwgMCwgezB4YjIsMHg5MCwweGFjLDB4YTAsMHgwMywweDI5LDB4MDAsMHhjYSwweDQwLDB4YjIsMHg4MCwweDhlLDB4YTQsMHgwMywweDJhLDB4MDAgfSwKLSAgMTYsIDB4YTE2MCwgMCwgezB4ZmEsMHgwMCwweDNmLDB4YTgsMHgwZiwweGEwLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTE3MCwgMCwgezB4NDgsMHgwMCwweGUyLDB4MDIsMHg5MCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODgsMHgwMywweGYxLDB4MDAsMHhmYywweDAyLDB4M2YgfSwKLSAgMTYsIDB4YTE4MCwgMCwgezB4MjAsMHgwZiwweGM4LDB4MDMsMHhjMSwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHg4ZiwweDAwLDB4MDEsMHg2MCwweDAyLDB4ZjggfSwKLSAgMTYsIDB4YTE5MCwgMCwgezB4MDgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4OGYsMHg4MCwweDEzLDB4OTIgfSwKLSAgMTYsIDB4YTFhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDAyLDB4YzksMHgwMCwweGIyLDB4NjQgfSwKLSAgMTYsIDB4YTFiMCwgMCwgezB4MGYsMHg5MSwweDAzLDB4ZTQsMHgwNCwweGM5LDB4MDAsMHgzMiwweDQwLDB4NmMsMHg5MCwweDAzLDB4MjUsMHgwMiwweGM5LDB4OTAgfSwKLSAgMTYsIDB4YTFjMCwgMCwgezB4YjAsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MjAsMHhjOSwweGEwLDB4M2UsMHg0MCwweDRjLDB4OTAsMHgyMywweGU0LDB4MDAgfSwKLSAgMTYsIDB4YTFkMCwgMCwgezB4ZjEsMHgwMCwweDkyLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTFlMCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDgwLDB4YTIsMHg0MCwweDBiLDB4OTYsMHg0MiwweGU1LDB4MDQsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YTFmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4MDksMHg0MSwweDIyLDB4NDAsMHg0OCwweDkwLDB4NDIsMHgyNCwweDA0LDB4ODkgfSwKLSAgMTYsIDB4YTIwMCwgMCwgezB4ODAsMHgyNiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YTIxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgyNSwweDAwLDB4ODksMHgyMCwweDIyLDB4NDAgfSwKLSAgMTYsIDB4YTIyMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZjQsMHg4NCwweDg1LDB4MDAsMHgyMSwweDQwLDB4NDgsMHg1MCwweDAyLDB4MjQsMHgyMCwweDhkLDB4MDggfSwKLSAgMTYsIDB4YTIzMCwgMCwgezB4MjMsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDk0LDB4MDAsMHg4ZCwweDAwLDB4MjksMHg0MCwweDBhLDB4ZDAsMHgwMiwweGE0LDB4MDggfSwKLSAgMTYsIDB4YTI0MCwgMCwgezB4YjksMHgwMCwweDI4LDB4NDAsMHgxOCwweDkwLDB4YzIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTI1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MSwweDBiLDB4MTAsMHgwMiwweGY1LDB4ODAsMHg4NSwweGMxLDB4YTEgfSwKLSAgMTYsIDB4YTI2MCwgMCwgezB4NTAsMHgwOCwweDU0LDB4MGEsMHgwNSwweDA2LDB4ODUsMHg0MCwweDIxLDB4NTAsMHg4OCwweDU0LDB4MDIsMHg5NSwweDAwLDB4ODUgfSwKLSAgMTYsIDB4YTI3MCwgMCwgezB4NDQsMHgyZCwweDUwLDB4MmEsMHg1NCwweDEyLDB4YzUsMHgwMSwweGIxLDB4MDAsMHgwOCwweDUwLDB4MDgsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YTI4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4Y2EsMHg1MCwweDMyLDB4ODAgfSwKLSAgMTYsIDB4YTI5MCwgMCwgezB4MGYsMHg4MCwweDAzLDB4ZTgsMHgwMiwweGM4LDB4MDEsMHgzMiwweDAwLDB4MmMsMHhjMCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDIgfSwKLSAgMTYsIDB4YTJhMCwgMCwgezB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweGEwLDB4MDAsMHhjOCwweDAwLDB4M2EsMHgwMCwweDRlLDB4NDAsMHgyMywweGEwLDB4MDggfSwKLSAgMTYsIDB4YTJiMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgyYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTJjMCwgMCwgezB4OTgsMHgxZCwweGRjLDB4MDQsMHhmZCwweDQwLDB4M2YsMHg1MCwweDRmLDB4OTAsMHg2MywweGU0LDB4NDAsMHhmMSwweDAyLDB4M2UgfSwKLSAgMTYsIDB4YTJkMCwgMCwgezB4NDEsMHgwZiwweDkwLDB4MTMsMHhmNSwweDA0LDB4ZjksMHg0MSwweDNlLDB4NTAsMHgwZiwweDk0LDB4NDMsMHg2NSwweDAyLDB4ZjkgfSwKLSAgMTYsIDB4YTJlMCwgMCwgezB4NDEsMHgzNiwweDUwLDB4NGQsMHg5NCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4NDEsMHgzNywweDQwLDB4NGYsMHg5NCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YTJmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDEsMHhmYywweDAwLDB4Y2QsMHhhOCwweDMzLDB4NzAgfSwKLSAgMTYsIDB4YTMwMCwgMCwgezB4MGYsMHhkMCwweDEzLDB4ZjYsMHg4OCwweGNkLDB4MDAsMHgzMiwweDUwLDB4NGYsMHgxNCwweDIzLDB4MDcsMHhhMCwweGM5LDB4YzAgfSwKLSAgMTYsIDB4YTMxMCwgMCwgezB4MzIsMHg3OCwweDBjLDB4OWUsMHgwMywweDM3LDB4MDIsMHhjZCwweGMwLDB4MzIsMHg2NCwweDBmLDB4OTgsMHgwMywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTMyMCwgMCwgezB4Y2QsMHgwMCwweDMyLDB4NDAsMHgyYywweGRhLDB4MDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTMzMCwgMCwgezB4MzgsMHgxMCwweGUyLDB4MDgsMHg4OCwweGViLDB4MjIsMHgzMCwweDBiLDB4ODAsMHgxMiwweGU4LDB4MDQsMHhhMCwweGEwLDB4MmEgfSwKLSAgMTYsIDB4YTM0MCwgMCwgezB4MjAsMHgwYiwweDhhLDB4MGEsMHgyMywweDAwLDB4ODgsMHg4MCwweDIyLDB4MjgsMHgwMCwweGM4LDB4NDIsMHgyMywweDgwLDB4ODAgfSwKLSAgMTYsIDB4YTM1MCwgMCwgezB4ZDQsMHgyMCwweDI4LDB4MDksMHg4MCwweDAyLDB4MjIsMHg5NCwweGE4LDB4MDAsMHgyYSwweDAwLDB4ODgsMHg4NSwweDAyLDB4MGUgfSwKLSAgMTYsIDB4YTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhjNCwweGEwLDB4ODMsMHgwMCwweDI0LDB4ZDggfSwKLSAgMTYsIDB4YTM3MCwgMCwgezB4OGIsMHgxMCwweDAyLDB4ZTUsMHgxNCwweDg5LDB4MGEsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NTQsMHg4MCwweDg1LDB4NDAgfSwKLSAgMTYsIDB4YTM4MCwgMCwgezB4MjUsMHg1OCwweDA5LDB4NTYsMHgwMiwweDQ1LDB4MDIsMHg4MSwweDIwLDB4MjAsMHg1MCwweDBiLDB4MTQsMHgwMiwweDA0LDB4MzAgfSwKLSAgMTYsIDB4YTM5MCwgMCwgezB4ODEsMHgwMCwweDIwLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTNhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTIsMHg4OSwweDAwLDB4YTYsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU0LDB4OTgsMHhhOSwweDgwLDB4MmIgfSwKLSAgMTYsIDB4YTNiMCwgMCwgezB4NDAsMHgwYiwweDUxLDB4MDIsMHg1NSwweDAwLDB4OWQsMHgwOCwweDI3LDB4NDgsMHgwOSwweGY2LDB4MDIsMHg0NCwweDAwLDB4ODEgfSwKLSAgMTYsIDB4YTNjMCwgMCwgezB4MDQsMHgyMiwweDQwLDB4MTksMHg5MSwweDhhLDB4MjQsMHg4MCwweGE5LDB4MDAsMHgyYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YTNkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDAyLDB4YzksMHgwNCwweDM2LDB4NTggfSwKLSAgMTYsIDB4YTNlMCwgMCwgezB4MGYsMHg5MCwweDAzLDB4YzUsMHgwMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDEzLDB4NjQsMHgwMiwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YTNmMCwgMCwgezB4MzYsMHg0MCwweDJkLDB4OTAsMHgwYiwweDY2LDB4MDQsMHhjOSwweGUwLDB4YjIsMHg0OCwweDhmLDB4OTgsMHg0NywweDI0LDB4MDAgfSwKLSAgMTYsIDB4YTQwMCwgMCwgezB4YzksMHgwMCwweDcyLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQxMCwgMCwgezB4MjgsMHgwMSwweGE1LDB4MDgsMHhmOSwweDIxLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTQyMCwgMCwgezB4NDAsMHg0ZiwweDk4LDB4ODMsMHhhNCwweDAwLDB4ZTksMHg0MCwweGJhLDB4NjAsMHgwZSwweDkwLDB4MDMsMHhhNCwweDgwLDB4ZjkgfSwKLSAgMTYsIDB4YTQzMCwgMCwgezB4YTMsMHgzZSwweDQ4LDB4MGYsMHg5OCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4YTQ0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMiwweDQ4LDB4YzgsMHgyMCwweDMyLDB4MDggfSwKLSAgMTYsIDB4YTQ1MCwgMCwgezB4MWYsMHg4MCwweDgzLDB4ZTEsMHgyMiwweGM4LDB4MDEsMHgzMywweDAwLDB4MmMsMHhjMCwweDAzLDB4MzAsMHgwNCwweGNjLDB4NDAgfSwKLSAgMTYsIDB4YTQ2MCwgMCwgezB4YjEsMHgwMCwweDBjLDB4NDQsMHgwMywweDIwLDB4MTIsMHhjOCwweDQxLDB4MzIsMHgwMCwweDJkLDB4ODQsMHgwYiwweDYwLDB4MDAgfSwKLSAgMTYsIDB4YTQ3MCwgMCwgezB4ZjgsMHgwMCwweGIyLDB4MDAsMHg0YywweDgwLDB4MGIsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTQ4MCwgMCwgezB4MjgsMHgwNSwweDNhLDB4MDAsMHhhNiwweDAwLDB4MjMsMHg5MCwweDAzLDB4ZTQsMHg5MiwweGY4LDB4MDAsMHg4MiwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YTQ5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4Y2EsMHgwMCwweDIyLDB4ODMsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAzLDB4OGEgfSwKLSAgMTYsIDB4YTRhMCwgMCwgezB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGI2LDB4ODAsMHgyMiwweDgwLDB4MGQsMHhlOCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4YTRiMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2ZSwweDAwLDB4ODIsMHg0MiwweDIwLDB4YzAgfSwKLSAgMTYsIDB4YTRjMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4Y2QsMHgwOSwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMiwweDk4LDB4MDAgfSwKLSAgMTYsIDB4YTRkMCwgMCwgezB4MjAsMHgyMCwweDI4LDB4MDAsMHgwYSwweDA0LDB4MTAsMHg4MSwweDgwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAgfSwKLSAgMTYsIDB4YTRlMCwgMCwgezB4YjMsMHgwMCwweDIyLDB4YzAsMHgxOCwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTRmMCwgMCwgezB4YTAsMHgwMSwweDM4LDB4MDIsMHhhMywweDAwLDB4MjEsMHg0MCwweDFiLDB4NzAsMHgwMiwweGRjLDB4MjAsMHg4NCwweDA1LDB4NjUgfSwKLSAgMTYsIDB4YTUwMCwgMCwgezB4ZTAsMHgwOCwweGYwLDB4MDIsMHg3YywweDEwLDB4OTcsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1NCwweDg4LDB4ODcgfSwKLSAgMTYsIDB4YTUxMCwgMCwgezB4MDksMHgyMSwweGU4LDB4MDksMHgzMywweDAyLDB4MWMsMHg4MCwweGI2LDB4MDgsMHg2MywweGM4LDB4MDksMHgzOCwweDEyLDB4MjggfSwKLSAgMTYsIDB4YTUyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHhhMCwweGExLDB4ZTAgfSwKLSAgMTYsIDB4YTUzMCwgMCwgezB4MGIsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM1LDB4ODIsMHgzMywweDIwLDB4MGMsMHg0OCwweDAzLDB4MWUsMHgwMSwweGRmLDB4ODAgfSwKLSAgMTYsIDB4YTU0MCwgMCwgezB4MzEsMHgyMCwweDBjLDB4NDgsMHgwMywweDA2LDB4NDAsMHg4NywweDgyLDB4MzEsMHhmOCwweDBkLDB4N2IsMHgwMywweDVmLDB4MDAgfSwKLSAgMTYsIDB4YTU1MCwgMCwgezB4ZjMsMHg4MCwweDMxLDB4ZjIsMHgwYywweDYwLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTU2MCwgMCwgezB4MDgsMHgxZCwweDljLDB4MDAsMHhmYiwweDAxLDB4MmYsMHg0MCwweDA3LDB4YjAsMHgwMywweGU4LDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YTU3MCwgMCwgezB4YzEsMHgwZiwweGIwLDB4MDMsMHhlMCwweDA2LDB4ZTgsMHgwMiwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDEsMHhhNCwweDEwLDB4ZjkgfSwKLSAgMTYsIDB4YTU4MCwgMCwgezB4NDAsMHhiZSwweGQwLDB4MDYsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGZhLDB4MDAsMHgzYywweGQ4LDB4MGYsMHhhMCwweDAzLDB4YzIgfSwKLSAgMTYsIDB4YTU5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhmNiwweDAwLDB4Y2YsMHg4OCwweDMzLDB4NjQgfSwKLSAgMTYsIDB4YTVhMCwgMCwgezB4MmMsMHhmOCwweDAzLDB4ZmUsMHgwMiwweGM0LDB4YjAsMHgzMywweDIwLDB4OGMsMHhkOCwweDAzLDB4MzIsMHgwMCwweGNjLDB4YjQgfSwKLSAgMTYsIDB4YTViMCwgMCwgezB4MzMsMHhhMCwweDBjLDB4YzgsMHgwMywweDE2LDB4MjAsMHhjZiwweGMwLDB4MzMsMHhmMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAgfSwKLSAgMTYsIDB4YTVjMCwgMCwgezB4Y2QsMHg4MCwweDNmLDB4ZTAsMHgwZiwweGQ4LDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTVkMCwgMCwgezB4YTgsMHgxMSwweGI1LDB4MDQsMHg4NywweDEyLDB4YTEsMHg1MCwweDBhLDB4NzQsMHgxMiwweGM0LDB4NDAsMHg4NCwweDExLDB4MjMgfSwKLSAgMTYsIDB4YTVlMCwgMCwgezB4YzAsMHgyOCwweGUwLDB4MDIsMHgxYywweDAyLDB4YTcsMHgxMSwweDIxLDB4NTgsMHg0OCwweDcwLDB4MGEsMHgxNCwweDAwLDB4OGQgfSwKLSAgMTYsIDB4YTVmMCwgMCwgezB4MDAsMHgyMywweGMwLDB4MGIsMHg3MCwweDAyLDB4ZmMsMHg0MCwweDg2LDB4MDAsMHgyZCwweGMwLDB4MGIsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg5NSwweDAwLDB4ODcsMHg0MCwweDIxLDB4MDAgfSwKLSAgMTYsIDB4YTYxMCwgMCwgezB4MTgsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk1LDB4MjgsMHhlMSwweDAyLDB4MDgsMHg1MCwweDAyLDB4M2MsMHg0MiwweGE3LDB4MjIgfSwKLSAgMTYsIDB4YTYyMCwgMCwgezB4MjEsMHg4MCwweDg4LDB4NDEsMHgwMiwweDE0LDB4MDAsMHg4NSwweDAwLDB4YTEsMHhjMCwweDA5LDB4NzEsMHgwMiwweGRjLDB4MDAgfSwKLSAgMTYsIDB4YTYzMCwgMCwgezB4YjUsMHgxMCwweDJkLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTY0MCwgMCwgezB4MjAsMHgxNCwweGM0LDB4MTAsMHg4MywweDg0LDB4MjAsMHgxMSwweDA4LDB4MzAsMHgwMiwweGMzLDB4MTAsMHg5MSwweDIwLDB4MjAgfSwKLSAgMTYsIDB4YTY1MCwgMCwgezB4YzAsMHgwOCwweDI4LDB4MTIsMHgwMCwweDAwLDB4YTAsMHg4NCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwNCwweDI2LDB4ODMgfSwKLSAgMTYsIDB4YTY2MCwgMCwgezB4MDAsMHgyMCwweGQwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIyLDB4MDAsMHgyYywweGMwLDB4MGIsMHgwMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YTY3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4Y2YsMHg4OCwweGIyLDB4ZTggfSwKLSAgMTYsIDB4YTY4MCwgMCwgezB4MGMsMHgzMCwweDEzLDB4Y2UsMHhjMiwweGQwLDB4ODIsMHgzMiwweDAwLDB4MGMsMHgwZSwweDBiLDB4MjAsMHgwMCwweGM4LDB4ODggfSwKLSAgMTYsIDB4YTY5MCwgMCwgezB4YjIsMHg0MCwweDJjLDB4YmEsMHg0MywweDM3LDB4MDIsMHhjYiwweDAwLDB4YjMsMHhjMCwweDJjLDB4ZjAsMHgwMywweGZjLDB4MTIgfSwKLSAgMTYsIDB4YTZhMCwgMCwgezB4ZmIsMHgwMCwweDdmLDB4ZDEsMHgwZiwweDMwLDB4MGIsMHgyYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTZiMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDIsMHhmMSwweDQwLDB4M2UsMHg0MSwweDBmLDB4YjAsMHgyMywweGVkLDB4MDAsMHhlOCwweDAxLDB4M2UgfSwKLSAgMTYsIDB4YTZjMCwgMCwgezB4YzgsMHgwZiwweGIwLDB4MTMsMHhlYywweDA0LDB4ZGIsMHgwMCwweDNjLDB4ODAsMHgwZiwweDA0LDB4MDMsMHhlNCwweDQwLDB4ZjkgfSwKLSAgMTYsIDB4YTZkMCwgMCwgezB4MDAsMHgzYywweGMyLDB4MGUsMHhiMCwweDAzLDB4ZWUsMHgwMCwweDRiLDB4NDEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTZlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmYywweDAwLDB4NGIsMHgwMCwweDMyLDB4NDIgfSwKLSAgMTYsIDB4YTZmMCwgMCwgezB4MGMsMHhmMCwweDAzLDB4MzYsMHg4MCwweGNkLDB4MDAsMHgzMywweDAwLDB4NGMsMHhjMCwweDgzLDB4M2MsMHgwNCwweGY3LDB4MDAgfSwKLSAgMTYsIDB4YTcwMCwgMCwgezB4MzIsMHg0MCwweDBjLDB4YjEsMHg0MywweDE0LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAgfSwKLSAgMTYsIDB4YTcxMCwgMCwgezB4ZmYsMHgwMCwweGIzLDB4YzIsMHgwYywweGEwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTcyMCwgMCwgezB4ODEsMHgwNCwweDRmLDB4MDIsMHg4YiwweDgwLDB4MjAsMHgzMCwweDA4LDB4YmMsMHgwMiwweDIwLDB4MTAsMHg4OSwweDAwLDB4MjIgfSwKLSAgMTYsIDB4YTczMCwgMCwgezB4YzAsMHgwMCwweGIwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweGEyLDB4OTAsMHgyOCwweDhjLDB4MWEsMHgyNCwweDAyLDB4OGIgfSwKLSAgMTYsIDB4YTc0MCwgMCwgezB4ODMsMHgyMiwweGMxLDB4MDgsMHhiMCwweDAyLDB4ZmMsMHgwMCwweGIzLDB4NjAsMHgyMCwweGMwLDB4MGQsMHhhMCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YTc1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgyZSwweDAwLDB4YWIsMHhjMCwweDIyLDB4NjAgfSwKLSAgMTYsIDB4YTc2MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MjksMHgwMCwweDg4LDB4MDEsMHgyMCwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAgfSwKLSAgMTYsIDB4YTc3MCwgMCwgezB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGU0LDB4MDAsMHg4MSwweDI0LDB4YTIsMHhjMCwweDA5LDB4YjAsMHg0NiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4YTc4MCwgMCwgezB4YjksMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTc5MCwgMCwgezB4MDgsMHgwNCwweDJjLDB4MDAsMHhhMSwweDAwLDB4YTAsMHg0MSwweDA4LDB4YjAsMHgwYSwweDIwLDB4NTMsMHg4OCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YTdhMCwgMCwgezB4YzAsMHgyOCwweGEwLDB4MDIsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDIsMHg4NCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YTdiMCwgMCwgezB4MDQsMHgyMCwweGMwLDB4MjgsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDIsMHg2MiwweGMwLDB4MDksMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YTdjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZTksMHgwMCwweDIyLDB4MDAgfSwKLSAgMTYsIDB4YTdkMCwgMCwgezB4MGMsMHhiMCwweDAzLDB4MDAsMHgwNCwweGM5LDB4MDAsMHhiMiwweDAwLDB4MGMsMHg5MCwweDAzLDB4MmMsMHgwMCwweGYzLDB4MDAgfSwKLSAgMTYsIDB4YTdlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YjAsMHgwMywweGI0LDB4MDIsMHg4ZiwweDAwLDB4MjMsMHhjMCwweDA0LDB4ZjAsMHgwMywweGVjLDB4MDggfSwKLSAgMTYsIDB4YTdmMCwgMCwgezB4ZjksMHgwMCwweDMzLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTgwMCwgMCwgezB4YTAsMHgxZCwweGZjLDB4MTAsMHhkZCwweDA0LDB4M2YsMHgwMCwweDBmLDB4YzAsMHgyMywweGYwLDB4OTAsMHhmZCwweDAwLDB4MmYgfSwKLSAgMTYsIDB4YTgxMCwgMCwgezB4YzAsMHgwZiwweGUwLDB4NDMsMHhkMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHg4ZiwweGMwLDB4MjIsMHg3NCwweDAwLDB4ZmQgfSwKLSAgMTYsIDB4YTgyMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDYsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTggfSwKLSAgMTYsIDB4YTgzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmYywweDgwLDB4ZWYsMHgyMCwweDExLDB4YzAgfSwKLSAgMTYsIDB4YTg0MCwgMCwgezB4MGUsMHg3MiwweDAzLDB4YmQsMHhiMCwweGNmLDB4MzEsMHhiZiwweGNjLDB4MDIsMHhmMCwweDAzLDB4ZmMsMHhjNiwweGNmLDB4MDEgfSwKLSAgMTYsIDB4YTg1MCwgMCwgezB4MGIsMHhjNSwweDBmLDB4ZjEsMHgwMywweDNjLDB4MDQsMHhlZiwweDYxLDB4MzMsMHhkOCwweDA3LDB4ZjAsMHgwMywweDM0LDB4ODAgfSwKLSAgMTYsIDB4YTg2MCwgMCwgezB4Y2QsMHgzMCwweDczLDB4Y2MsMHgwZiwweGU4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTg3MCwgMCwgezB4ODAsMHgxOCwweGU5LDB4MDAsMHg4OCwweDY5LDB4MjIsMHgxMCwweDA4LDB4OGMsMHgwMCwweDIxLDB4ODQsMHg4OCwweDQxLDB4MjIgfSwKLSAgMTYsIDB4YTg4MCwgMCwgezB4MTAsMHg4OCwweDg2LDB4OTIsMHgwMSwweDAwLDB4ODgsMHg2MiwweDIyLDB4MTAsMHg0YiwweDg3LDB4MDIsMHgyMSwweGEwLDB4ODggfSwKLSAgMTYsIDB4YTg5MCwgMCwgezB4NjAsMHgyMCwweDEwLDB4MGIsMHg4NiwweGEyLDB4MzUsMHhhMCwweGFiLDB4NjAsMHhhMSwweGM0LDB4MGIsMHhiOCwweDAyLDB4MjAgfSwKLSAgMTYsIDB4YThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjZCwweGE4LDB4MzMsMHg0MSwweDIwLDB4YzYgfSwKLSAgMTYsIDB4YThiMCwgMCwgezB4NGEsMHgzMSwweDAwLDB4OGMsMHgxMCwweDkzLDB4MzMsMHgyOCwweGNjLDB4MjksMHgzNCwweDEyLDB4OGMsMHg1MCwweDkzLDB4MWMgfSwKLSAgMTYsIDB4YThjMCwgMCwgezB4MjgsMHg4NCwweDAxLDB4MjAsMHg0YSwweDRjLDB4NDEsMHg4MywweDEwLDB4MjQsMHhjYywweDRiLDB4MzEsMHg0MiwweDRjLDB4NDAgfSwKLSAgMTYsIDB4YThkMCwgMCwgezB4OTEsMHgxMCwweDI0LDB4YzAsMHgwYiwweDgwLDB4MDIsMHgyMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YThlMCwgMCwgezB4YzAsMHgwNSwweGE4LDB4MjAsMHg5MCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMCwweDIwLDB4MzAsMHhiOCwweDA4LDB4MjYgfSwKLSAgMTYsIDB4YThmMCwgMCwgezB4MDAsMHgwMSwweDgwLDB4ODIsMHgyMCwweDIwLDB4MTgsMHgwOCwweDQyLDB4NDAsMHgwMywweDkxLDB4MDIsMHg2MCwweDAwLDB4MDggfSwKLSAgMTYsIDB4YTkwMCwgMCwgezB4MDEsMHhhNiwweDAwLDB4MGIsMHg4MCwweDAwLDB4NmMsMHgxMCwweGJiLDB4MDEsMHgyNiwweGMwLDB4NGIsMHg5MCwweDBhLDB4MzAgfSwKLSAgMTYsIDB4YTkxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhmZCwweDAwLDB4ZmQsMHg0MSwweDMzLDB4YTEgfSwKLSAgMTYsIDB4YTkyMCwgMCwgezB4MGUsMHhkMiwweDAzLDB4YjUsMHgwMiwweGRmLDB4NDIsMHgzYiwweDAxLDB4MGYsMHhkNCwweDQzLDB4YjUsMHgwMCwweGNkLDB4NDAgfSwKLSAgMTYsIDB4YTkzMCwgMCwgezB4MWIsMHhjNCwweDBkLDB4NzgsMHgwMywweDcwLDB4MDIsMHhlYywweDAwLDB4MTcsMHhhMSwweDBmLDB4ZTgsMHgwYiwweDJjLDB4MDIgfSwKLSAgMTYsIDB4YTk0MCwgMCwgezB4ZDksMHg5MCwweDI2LDB4YzAsMHgwZiwweGFjLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTk1MCwgMCwgezB4ZTAsMHgwMSwweGI4LDB4MDAsMHhlZSwweDAwLDB4MWYsMHg2NCwweDRmLDB4ZTAsMHgwMywweGQ4LDB4MTAsMHhjNCwweDE4LDB4MzMgfSwKLSAgMTYsIDB4YTk2MCwgMCwgezB4YzAsMHgwYywweGEwLDB4YTEsMHhiOCwweDA5LDB4ZTYsMHgwOSwweDM2LDB4MjIsMHgwZiwweDg4LDB4MjMsMHhiYywweDAwLDB4ZmIgfSwKLSAgMTYsIDB4YTk3MCwgMCwgezB4MDAsMHgzYiwweDY0LDB4MGYsMHhkOSwweDAzLDB4OWMsMHgwMCwweGUzLDB4MDQsMHgzYiwweGMwLDB4MGYsMHhmNCwweDAzLDB4ZjggfSwKLSAgMTYsIDB4YTk4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHg4ZCwweDAwLDB4YzksMHg0MCwweGI2LDB4ODAgfSwKLSAgMTYsIDB4YTk5MCwgMCwgezB4MGYsMHgxMCwweDAzLDB4YTcsMHgyMCwweGZiLDB4NTAsMHhiNiwweDA4LDB4NGMsMHgxNCwweDAzLDB4NjUsMHgyMiwweGQ5LDB4NDAgfSwKLSAgMTYsIDB4YTlhMCwgMCwgezB4YjYsMHg4MCwweDBlLDB4YTAsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4NzYsMHg4MiwweDI4LDB4YTAsMHgyMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4YTliMCwgMCwgezB4YzksMHgwNCwweDEyLDB4YzAsMHg4ZSwweDgwLDB4MDMsMHg5MCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YTljMCwgMCwgezB4YzgsMHgwNSwweDJiLDB4NjAsMHg4YSwweDA5LDB4MjAsMHg1MCwweDA4LDB4YTAsMHgyMywweGU5LDB4MDAsMHhiOCwweGMwLDB4MjIgfSwKLSAgMTYsIDB4YTlkMCwgMCwgezB4ZjAsMHgwOCwweGFjLDB4MDIsMHgyOCwweDA0LDB4OGEsMHhjMiwweDIyLDB4NTAsMHgwOCwweDkwLDB4MDYsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YTllMCwgMCwgezB4MDQsMHgyMiwweDUxLDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgwNCwweDhiLDB4MDQsMHgzNywweGMwLDB4MDgsMHgxOCwweDQyLDB4MjYgfSwKLSAgMTYsIDB4YTlmMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDQsMHg0YiwweDAwLDB4ODIsMHhjOCwweDI0LDB4NDMgfSwKLSAgMTYsIDB4YWEwMCwgMCwgezB4MGIsMHgyNiwweDBhLDB4ODgsMHgwMCwweGIwLDB4ODAsMHgyMiwweGU0LDB4MGIsMHgyMCwweDQyLDB4NjksMHgwMCwweGEyLDB4OTAgfSwKLSAgMTYsIDB4YWExMCwgMCwgezB4MjgsMHg0MCwweGU4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiYiwweDAwLDB4MjgsMHg1MCwweDg4LDB4OTAsMHg4MiwweGM0LDB4MDEgfSwKLSAgMTYsIDB4YWEyMCwgMCwgezB4ODMsMHgwMCwweDIwLDB4YzAsMHgwYSwweDEwLDB4MDIsMHhiYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWEzMCwgMCwgezB4MjAsMHgxMCwweDRlLDB4ODAsMHg4MSwweDAwLDB4MjEsMHhhOCwweDA4LDB4NTgsMHgwMiwweGQ2LDB4MDEsMHhiNywweDkwLDB4NjggfSwKLSAgMTYsIDB4YWE0MCwgMCwgezB4MjAsMHgwMywweDU5LDB4ODIsMHg1NiwweDAwLDB4YTUsMHg4NCwweDJkLDB4YTIsMHgxOCwweDY5LDB4MjIsMHgwMiwweDAwLDB4MzQgfSwKLSAgMTYsIDB4YWE1MCwgMCwgezB4ODAsMHgyOSwweGE4LDB4MDgsMHg2OCwweDA2LDB4YzYsMHgxNCwweDg1LDB4ODIsMHgyNSwweGUwLDB4MDgsMHg1OCwweDgyLDB4MWMgfSwKLSAgMTYsIDB4YWE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0OCwweDAwLDB4YzIsMHhmMCwweDM0LDB4NDAgfSwKLSAgMTYsIDB4YWE3MCwgMCwgezB4MGYsMHgyMCwweDAzLDB4ODgsMHg4MCwweGY4LDB4MTAsMHgzMCwweGMwLDB4MjcsMHgyMSwweDBiLDB4NDgsMHg4MCwweGVhLDB4MjAgfSwKLSAgMTYsIDB4YWE4MCwgMCwgezB4MzgsMHgwMCwweDBjLDB4MDAsMHgxMiwweDBjLDB4MDgsMHg3MywweDAwLDB4YjgsMHg0MCwweDBjLDB4MTIsMHgyMywweDRjLDB4MDIgfSwKLSAgMTYsIDB4YWE5MCwgMCwgezB4NDMsMHgzNCwweDMwLDB4YzAsMHgwZSwweDExLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWFhMCwgMCwgezB4NDAsMHgxNSwweGFjLDB4OTAsMHhmOSwweDAxLDB4MmUsMHg4OCwweDRiLDB4OTAsMHgxMSwweDY0LDB4MDAsMHhmYiwweDEwLDB4MzIgfSwKLSAgMTYsIDB4YWFiMCwgMCwgezB4MDAsMHgwMCwweDkxLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCwweDMyLDB4YzQsMHg0ZCwweGIwLDB4NDMsMHhlMCwweDA0LDB4YzggfSwKLSAgMTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzNiwweDg5LDB4MGYsMHhhOCwweDAzLDB4ZWQsMHgwMCwweGY5LDB4MTQsMHgzZSwweGMwLDB4MGYsMHgxMCwweDQzLDB4ZDAgfSwKLSAgMTYsIDB4YWFkMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDUsMHhlOCwweDAwLDB4YzgsMHgwMCwweDNhLDB4MDAgfSwKLSAgMTYsIDB4YWFlMCwgMCwgezB4MGMsMHgwMCwweDUzLDB4YTAsMHgwMCwweGU4LDB4MDEsMHgzMiwweDAxLDB4MGUsMHg4MCwweDUzLDB4MjAsMHgxMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YWFmMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDIwLDB4MTAsMHhlOCwweDA0LDB4YjYsMHgwMCwweDg0LDB4ODAsMHgwMywweDJkLDB4MTIgfSwKLSAgMTYsIDB4YWIwMCwgMCwgezB4Y2IsMHgwMCwweDJlLDB4Y2EsMHgwNCwweDkwLDB4MDMsMHhlYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWIxMCwgMCwgezB4NGMsMHgxOSwweDhjLDB4MDAsMHg4NywweDAyLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBjLDB4MDAsMHg4MywweDAwLDB4MjEgfSwKLSAgMTYsIDB4YWIyMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4NjIsMHg0YywweDA0LDB4ODMsMHgwMCwweDIxLDB4ODAsMHg0OCwweGUwLDB4MTIsMHgzYywweDAwLDB4ODcgfSwKLSAgMTYsIDB4YWIzMCwgMCwgezB4MDAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWMsMHgwMCwweDg1LDB4MDEsMHgyNCwweGQwLDB4MGEsMHg1MCwweDAyLDB4ZjIgfSwKLSAgMTYsIDB4YWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHg5YSwweDAwLDB4ODAsMHg4MCwweDI4LDB4MjAgfSwKLSAgMTYsIDB4YWI1MCwgMCwgezB4MDgsMHg0YywweDIyLDB4ZDIsMHgwMCwweGE0LDB4ODAsMHgyNCwweDMwLDB4MGIsMHg0OCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzAgfSwKLSAgMTYsIDB4YWI2MCwgMCwgezB4MjEsMHgyMCwweDA5LDB4NDgsMHg2OCwweDEzLDB4MDAsMHhhNCwweDgwLDB4NjAsMHgyMCwweDA5LDB4MDgsMHgwMiwweDU2LDB4MDAgfSwKLSAgMTYsIDB4YWI3MCwgMCwgezB4OTcsMHg4MCwweDJkLDB4ZTAsMHg4OCwweDU4LDB4MDIsMHhlMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWI4MCwgMCwgezB4NmMsMHgwNCwweGNjLDB4MDAsMHg4MywweDgwLDB4MjAsMHhkOCwweDA4LDB4MzAsMHgwMiwweDRjLDB4NDAsMHg4MywweDAwLDB4MjQgfSwKLSAgMTYsIDB4YWI5MCwgMCwgezB4ZDEsMHgwOSwweGI5LDB4NDIsMHg0ZSwweDAwLDB4ODMsMHgwMCwweDIwLDB4YzEsMHg4OSwweDMwLDB4NDIsMHgwYywweDAwLDB4ODMgfSwKLSAgMTYsIDB4YWJhMCwgMCwgezB4ZjAsMHhhMCwweGQ5LDB4MTksMHgzNiwweDIyLDB4NjYsMHgwNiwweDkxLDB4MDAsMHgwYywweGMxLDB4MGEsMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YWJiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhlOCwweDAyLDB4Y2EsMHhhNSwweDJhLDB4OTEgfSwKLSAgMTYsIDB4YWJjMCwgMCwgezB4MjgsMHhhOCwweDAzLDB4ZWEsMHgwMiwweGFhLDB4MDAsMHhiNiwweGEwLDB4MGYsMHhhMCwweDBhLDB4MmEsMHg5MiwweGNhLDB4ODMgfSwKLSAgMTYsIDB4YWJkMCwgMCwgezB4YmEsMHg4MCwweDI5LDB4YTAsMHgwMywweDJiLDB4MDAsMHhlYSwweDQwLDB4NjYsMHg5MCwweDJkLDB4ZTQsMHgwYiwweDZhLDB4ODAgfSwKLSAgMTYsIDB4YWJlMCwgMCwgezB4ZGEsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWJmMCwgMCwgezB4NDgsMHgwMSwweDgwLDB4MDAsMHhmYywweDAwLDB4M2QsMHgwMCwweDBmLDB4YzAsMHgwMywweGIwLDB4MTQsMHhmYywweDAwLDB4M2IgfSwKLSAgMTYsIDB4YWMwMCwgMCwgezB4MTIsMHgwZSwweGMwLDB4NDMsMHhiMSwweDE0LDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZSwweGMwLDB4MDMsMHhmMCwweDIwLDB4ZjQgfSwKLSAgMTYsIDB4YWMxMCwgMCwgezB4MDAsMHgzMSwweDAwLDB4MGUsMHg0NCwweDEzLDB4YTAsMHgwMCwweGU4LDB4MDYsMHgzNiwweDAwLDB4NGYsMHg4MCwweDEzLDB4ZDIgfSwKLSAgMTYsIDB4YWMyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhNCwweDAwLDB4ZDEsMHgwMCwweDM2LDB4NjAgfSwKLSAgMTYsIDB4YWMzMCwgMCwgezB4MWMsMHgxOCwweDBiLDB4NDYsMHgwMCwweGQ5LDB4ODAsMHgzMCwweDQwLDB4MmMsMHg5OCwweDA1LDB4ODYsMHgwMCwweGMxLDB4ODAgfSwKLSAgMTYsIDB4YWM0MCwgMCwgezB4OTIsMHg0MCwweDBkLDB4MTAsMHgwMywweDQ0LDB4MDIsMHg4OSwweDAwLDB4MzIsMHg3MCwweDBjLDB4OTgsMHgwMSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YWM1MCwgMCwgezB4YzksMHgwNCwweDMwLDB4NDAsMHgwYywweDkwLDB4MDMsMHhjMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWM2MCwgMCwgezB4ODAsMHgwNCwweDY0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4ODAsMHg4OSwweDAxLDB4MjIgfSwKLSAgMTYsIDB4YWM3MCwgMCwgezB4NDAsMHg0OCwweDkxLDB4MDIsMHgyNCwweDAwLDB4ZDksMHg5MCwweDIyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDEwLDB4ODkgfSwKLSAgMTYsIDB4YWM4MCwgMCwgezB4MDAsMHgzMiwweDQwLDB4MDgsMHg5NSwweDEyLDB4MjQsMHgwMiwweDgxLDB4MDAsMHhhMiwweDQxLDB4MGQsMHg5MCwweDQyLDB4ZTAgfSwKLSAgMTYsIDB4YWM5MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MDUsMHgyNCwweDAyLDB4OWQsMHgwMCwweDIzLDB4NDQgfSwKLSAgMTYsIDB4YWNhMCwgMCwgezB4MDgsMHhkMiwweDA2LDB4NzQsMHg4MCwweGI1LDB4MjAsMHgyMywweDQwLDB4MWEsMHhkMCwweDA2LDB4MzUsMHg5MCwweDhkLDB4MDIgfSwKLSAgMTYsIDB4YWNiMCwgMCwgezB4MmYsMHg0NCwweDE5LDB4ZDAsMHgwMiwweDc0LDB4MDAsMHg4ZCwweDAwLDB4NjMsMHg0MCwweDE4LDB4ZDQsMHgwMiwweGE0LDB4MTEgfSwKLSAgMTYsIDB4YWNjMCwgMCwgezB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweGIwLDB4MDIsMHhjNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWNkMCwgMCwgezB4MjgsMHgxNCwweDA0LDB4ODAsMHg4NSwweDIwLDB4MjEsMHg2OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODAsMHhhNSwweDIwLDB4YTEgfSwKLSAgMTYsIDB4YWNlMCwgMCwgezB4NDgsMHgwYSwweDcyLDB4MzgsMHgxNCwweDgwLDB4OTUsMHgyNCwweDJkLDB4NDgsMHgyOCwweDUyLDB4MDIsMHgxNCwweDgwLDB4ODUgfSwKLSAgMTYsIDB4YWNmMCwgMCwgezB4MjAsMHgyMSwweDQ4LDB4MDgsMHg1MiwweDA2LDB4ODQsMHg4MCwweDgxLDB4MjAsMHgyMCwweDRhLDB4MDksMHgxMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YWQwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweGIyLDB4MTQgfSwKLSAgMTYsIDB4YWQxMCwgMCwgezB4MjgsMHhhMCwweDAzLDB4NjEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDk0LDB4NGUsMHg4NSwweDA0LDB4MjEsMHg0MiwweGM4LDB4NTAgfSwKLSAgMTYsIDB4YWQyMCwgMCwgezB4M2MsMHgxNCwweDBkLDB4ODAsMHgwMywweDYxLDB4NDAsMHg4OCwweDUwLDB4YjIsMHgxNCwweDJjLDB4YzUsMHgwOSwweGExLDB4NDAgfSwKLSAgMTYsIDB4YWQzMCwgMCwgezB4YzgsMHg1MCwweDMyLDB4MWMsMHgwYywweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWQ0MCwgMCwgezB4OTgsMHgxNSwweGU0LDB4NDAsMHhmOSwweDEwLDB4M2EsMHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDE0LDB4M2UgfSwKLSAgMTYsIDB4YWQ1MCwgMCwgezB4NDQsMHgwZCwweDkxLDB4NDMsMHg2NCwweDQwLDB4ZTksMHgxMCwweDMyLDB4NDQsMHgwNywweDkzLDB4YzMsMHhlNCwweDUwLDB4ZDEgfSwKLSAgMTYsIDB4YWQ2MCwgMCwgezB4MTAsMHg3ZSwweDQ0LDB4MDMsMHg5MSwweDAxLDB4NTQsMHg0NCwweGZkLDB4MTQsMHgzZSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YWQ3MCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDgwLDB4ZGQsMHhhMCwweDMzLDB4NjggfSwKLSAgMTYsIDB4YWQ4MCwgMCwgezB4MWUsMHhkYSwweDAzLDB4MzYsMHg5MCwweGNkLDB4YTAsMHgzYiwweDY4LDB4MGEsMHhkOCwweDIzLDB4NzYsMHgwYywweGVkLDB4ODAgfSwKLSAgMTYsIDB4YWQ5MCwgMCwgezB4MmIsMHg2MiwweDBiLDB4OTksMHgwMiwweGE3LDB4ODAsMHhmOSwweGUxLDB4MzcsMHg2OCwweDBjLDB4ZGEsMHgwMywweDI3LDB4ODAgfSwKLSAgMTYsIDB4YWRhMCwgMCwgezB4YzksMHhhMiwweDIyLDB4NjgsMHg0YywweDUwLDB4MDMsMHhjNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWRiMCwgMCwgezB4MzgsMHgxOCwweGUxLDB4NDAsMHg4OCwweDUwLDB4MjIsMHgxNCwweDA4LDB4ODAsMHgyMiwweDYwLDB4MDAsMHg4OCwweDA0LDB4MjIgfSwKLSAgMTYsIDB4YWRjMCwgMCwgezB4MDAsMHgwOCwweDA0LDB4MjYsMHgwMSwweDAwLDB4ODgsMHg1MCwweDIyLDB4MTAsMHgwOCwweGFmLDB4MDIsMHgyMywweDAwLDB4ODggfSwKLSAgMTYsIDB4YWRkMCwgMCwgezB4YzAsMHhhMCwweDEwLDB4ODgsMHg4NCwweDAyLDB4MjMsMHg4MCwweGEwLDB4NDAsMHgyYSwweDEwLDB4MDgsMHg4MCwweDEyLDB4NGUgfSwKLSAgMTYsIDB4YWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHg4NCwweDAwLDB4ODEsMHgwMSwweDIwLDB4NDAgfSwKLSAgMTYsIDB4YWRmMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDUsMHgwMCwweDgxLDB4NDEsMHgyYywweDUwLDB4MGIsMHgxNCwweDAyLDB4MDUsMHgwNCwweGExLDB4MDAgfSwKLSAgMTYsIDB4YWUwMCwgMCwgezB4MjgsMHg0MCwweDgyLDB4MTAsMHgwMiwweDg0LDB4NDAsMHhhMSwweDMyLDB4ODAsMHg1MCwweDA5LDB4MTQsMHgwMiwweDA0LDB4YzQgfSwKLSAgMTYsIDB4YWUxMCwgMCwgezB4OTEsMHgxMCwweDY0LDB4NDQsMHgyOCwweDEwLDB4MDIsMHhkMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWUyMCwgMCwgezB4MTgsMHgwNCwweGFjLDB4MDIsMHg4MSwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgwMiwweDQ0LDB4MDIsMHg4OSwweDAyLDB4MjYgfSwKLSAgMTYsIDB4YWUzMCwgMCwgezB4NDEsMHgwOSwweDkwLDB4MGEsMHgyNCwweDBjLDB4ODksMHgwNCwweDIyLDB4NTAsMHgwOCwweDkwLDB4MjYsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YWU0MCwgMCwgezB4MDAsMHgyMiwweDQxLDB4MDksMHgxMCwweDIyLDB4MjQsMHg0MCwweGI5LDB4MDEsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YWU1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ODksMHgwMCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4YWU2MCwgMCwgezB4MGEsMHg5MCwweDBiLDB4MjQsMHgxMCwweDg5LDB4MDAsMHgxZSwweDQwLDB4OWIsMHg5MCwweDAyLDB4MjQsMHgxMCwweDI5LDB4MDAgfSwKLSAgMTYsIDB4YWU3MCwgMCwgezB4MWEsMHg0MCwweDBlLDB4OTQsMHg0MSwweGE0LDB4MDAsMHgyOSwweDAwLDB4MTIsMHg0MCwweDA1LDB4OTAsMHg0MSwweDI2LDB4MDAgfSwKLSAgMTYsIDB4YWU4MCwgMCwgezB4ZDksMHgwMCwweDI0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWU5MCwgMCwgezB4NDgsMHgwMSwweGE0LDB4MDIsMHhhOSwweDAwLDB4YmMsMHg0MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDQsMHhmOSwweDAwLDB4M2EgfSwKLSAgMTYsIDB4YWVhMCwgMCwgezB4NDEsMHgwZSwweDkwLDB4ODMsMHg4NCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHgwZSwweDkwLDB4MDIsMHhjNCwweDA4LDB4ZTkgfSwKLSAgMTYsIDB4YWViMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MmUsMHg5MCwweDBiLDB4ZTYsMHgwMCwweGUxLDB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MiwweDAzLDB4NWEgfSwKLSAgMTYsIDB4YWVjMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhhMCwweDIwLDB4ZDgsMHgwMCwweDM2LDB4MDIgfSwKLSAgMTYsIDB4YWVkMCwgMCwgezB4MGUsMHgwMCwweGEzLDB4ZTAsMHgxOCwweGMwLDB4MDAsMHgzMCwweDAzLDB4MGYsMHg4MCwweDMzLDB4MjAsMHgwMCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4YWVlMCwgMCwgezB4MzIsMHgwZCwweDBmLDB4MDQsMHgwYiwweGEwLDB4MDIsMHhjOCwweDAyLDB4MzIsMHgwMiwweDhjLDB4ODIsMHgwMywweDIwLDB4MDIgfSwKLSAgMTYsIDB4YWVmMCwgMCwgezB4YzgsMHgwNCwweDE2LDB4MDAsMHg0ZSwweDgwLDB4MDEsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWYwMCwgMCwgezB4MjgsMHgwNSwweDNiLDB4MDAsMHg4ZSwweGQ4LDB4MjMsMHg4MCwweDA4LDB4ZTAsMHgwMiwweGY4LDB4ODAsMHg4ZSwweDEwLDB4MjMgfSwKLSAgMTYsIDB4YWYxMCwgMCwgezB4YTIsMHgwYiwweGUwLDB4ODIsMHg3YSwweDIwLDB4OGUsMHgzMCwweDIzLDB4YTEsMHgwYiwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGUgfSwKLSAgMTYsIDB4YWYyMCwgMCwgezB4MDAsMHgyYiwweDg4LDB4MDgsMHhlNCwweDQyLDB4MzgsMHgwMCwweDhlLDB4MDQsMHgyMywweDgwLDB4MDgsMHhhMCwweDAyLDB4MGEgfSwKLSAgMTYsIDB4YWYzMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg2ZiwweDQwLDB4OTMsMHhjNiwweDI0LDB4NDAgfSwKLSAgMTYsIDB4YWY0MCwgMCwgezB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDEsMHhhYywweGYwLDB4MGIsMHhiNCwweDAyLDB4NGMsMHgwNCwweGEzLDB4ODAgfSwKLSAgMTYsIDB4YWY1MCwgMCwgezB4MjgsMHhkMCwweDRiLDB4MzAsMHgwMiwweDRjLDB4MDAsMHhhYiwweDA0LDB4MmEsMHhjMCwweDJhLDB4MzAsMHgwYSwweGFjLDB4MTAgfSwKLSAgMTYsIDB4YWY2MCwgMCwgezB4OTMsMHgwMCwweDIwLDB4YzEsMHgwYSwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWY3MCwgMCwgezB4ODAsMHgxMSwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg0MiwweDg4LDB4NzQsMHgwNiwweGRjLDB4MGIsMHg4NiwweDAyLDB4MmQgfSwKLSAgMTYsIDB4YWY4MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4MmEsMHg1OCwweDAwLDB4YTYsMHgwMCwweGE5LDB4YzAsMHgwYiwweDcwLDB4MDIsMHg1YywweDg4LDB4YTcgfSwKLSAgMTYsIDB4YWY5MCwgMCwgezB4MjAsMHgyOSwweGMwLDB4MGEsMHg3MCwweDAyLDB4OWMsMHgxMCwweDk3LDB4MjAsMHhhMSwweGM4LDB4MDgsMHhkOCwweDAyLDB4MjggfSwKLSAgMTYsIDB4YWZhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDgsMHgwZSwweDAwLDB4ZDcsMHg4MCwweDM3LDB4NjAgfSwKLSAgMTYsIDB4YWZiMCwgMCwgezB4MGUsMHg2OCwweDEzLDB4ZmUsMHgwMCwweGNmLDB4ODAsMHgzZCwweGUwLDB4MGYsMHg3OCwweDIzLDB4MWUsMHgwMCwweGVmLDB4ODIgfSwKLSAgMTYsIDB4YWZjMCwgMCwgezB4MzEsMHhlMCwweDBmLDB4M2MsMHhjMywweDdlLDB4MDQsMHhlZiwweDgwLDB4YjEsMHhlMCwweDBlLDB4ZTgsMHgwMywweGJlLDB4ODAgfSwKLSAgMTYsIDB4YWZkMCwgMCwgezB4ZDcsMHhlMCwweDMzLDB4ZWEsMHgwZSwweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YWZlMCwgMCwgezB4MDgsMHgxNSwweGFjLDB4MDAsMHhmYSwweDAxLDB4M2UsMHgwMCwweDBmLDB4YjAsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4MzIgfSwKLSAgMTYsIDB4YWZmMCwgMCwgezB4ODAsMHgwZiwweDgwLDB4NDMsMHhhYywweDBhLDB4ZDgsMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MDMsMHgyYywweDBjLDB4ZGIgfSwKLSAgMTYsIDB4YjAwMCwgMCwgezB4MDAsMHgyNiwweGMxLDB4MDksMHhhMCwweDEzLDB4NmMsMHg0MCwweGViLDB4NDAsMHgzYSwweGRjLDB4MGYsMHg5MCwweDBiLDB4YzIgfSwKLSAgMTYsIDB4YjAxMCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHhiZSwweDAwLDB4Y2YsMHg4MSwweDMzLDB4ZTkgfSwKLSAgMTYsIDB4YjAyMCwgMCwgezB4MWYsMHhmOSwweDEzLDB4YjYsMHg1MCwweGVmLDB4ODAsMHgxZiwweGU0LDB4MDQsMHhjOCwweDAzLDB4N2UsMHgwMCwweDZkLDB4ODEgfSwKLSAgMTYsIDB4YjAzMCwgMCwgezB4MzMsMHg2NCwweDBjLDB4ZjgsMHgxYiwweDNlLDB4MjAsMHgyZiwweDg4LDB4OTMsMHhlOCwweDBmLDB4ZmIsMHgwMywweDJlLDB4ODAgfSwKLSAgMTYsIDB4YjA0MCwgMCwgezB4Y2YsMHhjMCwweDczLDB4ZTAsMHgyYywweGQ5LDB4MDMsMHhkMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjA1MCwgMCwgezB4YTgsMHgxOCwweDkwLDB4NDIsMHg4OSwweDE4LDB4MjEsMHhjMCwweDFmLDB4NzEsMHgwMiwweDE0LDB4YzAsMHhmNywweDIwLDB4MjcgfSwKLSAgMTYsIDB4YjA2MCwgMCwgezB4NDAsMHg0MCwweDcxLDB4MTIsMHgxOCwweDAwLDB4ODcsMHgyMCwweDIxLDB4ODAsMHg0OCwweDcxLDB4MDIsMHgzYywweDA4LDB4ODcgfSwKLSAgMTYsIDB4YjA3MCwgMCwgezB4MjAsMHgyMSwweDgyLDB4MGIsMHg2MSwweGEyLDB4MWUsMHg0NCwweGRmLDB4MDEsMHgzMSwweGM4LDB4MDgsMHg3MywweDAyLDB4ZWEgfSwKLSAgMTYsIDB4YjA4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDAsMHg4YywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzggfSwKLSAgMTYsIDB4YjA5MCwgMCwgezB4MGIsMHg3MCwweDAyLDB4OWMsMHgwOSwweDg3LDB4MDIsMHgyZCwweDgyLDB4OTksMHg0MCwweDAyLDB4MDQsMHgwMCwweGE1LDB4MDkgfSwKLSAgMTYsIDB4YjBhMCwgMCwgezB4MjEsMHg0MCwweDE5LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NywweDA1LDB4MjUsMHg0OCwweDRiLDB4NzIsMHgwMiwweDBjLDB4NDAgfSwKLSAgMTYsIDB4YjBiMCwgMCwgezB4ODcsMHgwMCwweGExLDB4YzAsMHg0OCwweDUwLDB4MDIsMHhjNCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjBjMCwgMCwgezB4NjgsMHgwNCwweGMxLDB4MjAsMHg4OSwweDRjLDB4YTAsMHhiNCwweDBhLDB4MzgsMHgwMiwweDIyLDB4MDAsMHhhMSwweGQwLDB4MjQgfSwKLSAgMTYsIDB4YjBkMCwgMCwgezB4MzAsMHgwOSwweDgwLDB4MDIsMHgyNywweDQ0LDB4ODEsMHhjNiwweDIyLDB4MTQsMHgwOSwweDNkLDB4MmEsMHgwZiwweDAyLDB4OGIgfSwKLSAgMTYsIDB4YjBlMCwgMCwgezB4YzAsMHhhNiwweDIwLDB4MGIsMHgyNCwweDAwLDB4MGMsMHgxMCwweDkzLDB4ODEsMHgyMCwweGMwLDB4NDgsMHgzMCwweDA2LDB4ZDggfSwKLSAgMTYsIDB4YjBmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhhMSwweDAwLDB4ODksMHhjMSwweDMyLDB4ZDEgfSwKLSAgMTYsIDB4YjEwMCwgMCwgezB4MDMsMHhiYywweDAzLDB4YTksMHgyMCwweDg5LDB4NDEsMHgzZSwweDYwLDB4ODUsMHhiYywweDhiLDB4MjUsMHg0MCwweGViLDB4NDEgfSwKLSAgMTYsIDB4YjExMCwgMCwgezB4YTIsMHhhMCwweDBkLDB4ZjAsMHgxMywweDNlLDB4MjAsMHhjZiwweDkwLDB4MzYsMHgzMCwweDRmLDB4YmMsMHgwYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4YjEyMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4YzEsMHgwYywweGIxLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjEzMCwgMCwgezB4ODAsMHgwMCwweGVkLDB4MDAsMHhmOCwweDAxLDB4M2MsMHhkMCwweDBmLDB4YjMsMHgwMywweGU4LDB4ODIsMHhkOCwweDIwLDB4MzYgfSwKLSAgMTYsIDB4YjE0MCwgMCwgezB4ODAsMHgyZSwweGIyLDB4MTMsMHhlMSwweDAwLDB4ZmEsMHgwMCwweDdlLDB4YzgsMHgyZSwweGIwLDB4MDMsMHhlYywweDgwLDB4ZGIgfSwKLSAgMTYsIDB4YjE1MCwgMCwgezB4MTAsMHgzYSwweDA4LDB4NGYsMHhiMiwweDIzLDB4Y2MsMHgwMiwweGZiLDB4MTAsMHgzYSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTQgfSwKLSAgMTYsIDB4YjE2MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTAsMHhmMCwweDAwLDB4Y2QsMHgxMCwweDMzLDB4NDIgfSwKLSAgMTYsIDB4YjE3MCwgMCwgezB4MGMsMHhjYSwweDIzLDB4N2MsMHgwMCwweGNmLDB4MDAsMHgzMywweDYyLDB4MDYsMHhmMCwweDAxLDB4M2EsMHgwMCwweGNmLDB4MDggfSwKLSAgMTYsIDB4YjE4MCwgMCwgezB4MzMsMHg4MCwweDFjLDB4ZjAsMHg4MSwweDNjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHhhMCwweDBjLDB4Y2EsMHgwMSwweGZjLDB4MDQgfSwKLSAgMTYsIDB4YjE5MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjFhMCwgMCwgezB4YTEsMHgwNCwweDZkLDB4NDAsMHg4OCwweDQ4LDB4YTIsMHgzMSwweDA4LDB4MTAsMHgwMiwweDIwLDB4MTAsMHg4OCwweGI0LDB4MjIgfSwKLSAgMTYsIDB4YjFiMCwgMCwgezB4YTAsMHgwOCwweDgwLDB4MDAsMHg2YSwweDg0LDB4ODgsMHgyMCwweDIyLDB4NTIsMHgwOCwweGIwLDB4MGEsMHgyYywweDEwLDB4YmIgfSwKLSAgMTYsIDB4YjFjMCwgMCwgezB4MDAsMHgzMiwweGIzLDB4ODgsMHg4MCwweDAyLDB4ZWMsMHgwMCwweGRiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHg5MCwweDEyLDB4ZTEgfSwKLSAgMTYsIDB4YjFkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgwMCwweDEwLDB4OGEsMHgwMSwweDIyLDB4YTAgfSwKLSAgMTYsIDB4YjFlMCwgMCwgezB4MDgsMHhiMCwweDQyLDB4NjAsMHgyMCwweDgwLDB4MDAsMHgyMCwweDQ0LDB4MWEsMHg4MCwweDFhLDB4ZTQsMHg0MiwweGEwLDB4MDYgfSwKLSAgMTYsIDB4YjFmMCwgMCwgezB4MjIsMHgwMCwweDc4LDB4MzAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4YTIsMHg0NCwweDA4LDB4YjAsMHgxMiwweGVjLDB4MDAgfSwKLSAgMTYsIDB4YjIwMCwgMCwgezB4OGIsMHgwMCwweDBlLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhlMCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjIxMCwgMCwgezB4MDgsMHgxNCwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHg4MSwweDA4LDB4MzAsMHgwMiwweDQwLDB4MTIsMHg4MCwweDAwLDB4YTAgfSwKLSAgMTYsIDB4YjIyMCwgMCwgezB4NDAsMHgwOCwweGIwLDB4MDIsMHhjMCwweDAwLDB4ODIsMHgwMCwweDAwLDB4ODAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwLDB4YmIgfSwKLSAgMTYsIDB4YjIzMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDgsMHgyMCwweDAyLDB4Y2MsMHg4MCwweDkzLDB4MDAsMHgyYywweGMwLDB4MGIsMHgzMCwweDAyLDB4YzIgfSwKLSAgMTYsIDB4YjI0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4Y2EsMHgxNCwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjI1MCwgMCwgezB4MGMsMHhiMCwweDAzLDB4NGMsMHgwMCwweGNhLDB4MDAsMHgzMiwweDAwLDB4MGUsMHgwMCwweDEyLDB4YTAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YjI2MCwgMCwgezB4NzAsMHgwMCwweDI4LDB4ZjAsMHgxMywweGFjLDB4MDAsMHhmYiwweDAwLDB4MzIsMHg0MCwweDJjLDB4MTAsMHg0MywweGVjLDB4MDAgfSwKLSAgMTYsIDB4YjI3MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjI4MCwgMCwgezB4MjAsMHgxNSwweGYwLDB4MDIsMHhmYywweDAwLDB4MWYsMHgwMCwweDY3LDB4NzAsMHgwMywweGIwLDB4MDAsMHhmYywweDAwLDB4M2YgfSwKLSAgMTYsIDB4YjI5MCwgMCwgezB4MDAsMHgyZCwweGMwLDB4MDMsMHgzMCwweDEwLDB4ZmMsMHgwMSwweGJmLDB4MDAsMHgwZiwweDcwLDB4MDMsMHg3YywweDAwLDB4ZjcgfSwKLSAgMTYsIDB4YjJhMCwgMCwgezB4MDQsMHgzYiwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZmQsMHgxMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfSwKLSAgMTYsIDB4YjJiMCwgMCwgezB4MTIsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDUsMHhmNCwweGMwLDB4Y2YsMHg4MCwweDMzLDB4NjAgfSwKLSAgMTYsIDB4YjJjMCwgMCwgezB4MGUsMHhjOSwweDEzLDB4MzYsMHg1MCwweGNlLDB4ODYsMHgzZiwweDA4LDB4MGMsMHhjMCwweDAzLDB4M2UsMHgwMiwweGQ3LDB4ODAgfSwKLSAgMTYsIDB4YjJkMCwgMCwgezB4MzksMHhlMCwweDBmLDB4ZjgsMHgxMywweDNlLDB4NDAsMHhjNywweDMwLDB4M2IsMHhjZSwweDBkLDB4ZjYsMHgwMywweDNkLDB4ODggfSwKLSAgMTYsIDB4YjJlMCwgMCwgezB4Y2YsMHgzMSwweDMzLDB4ZTQsMHgwZiwweDc4LDB4MDMsMHgzMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjJmMCwgMCwgezB4ODAsMHgxMCwweGU1LDB4ZDAsMHhkYiwweDgwLDB4NzIsMHg2MCwweDg4LDB4OTIsMHgwMiwweGU0LDB4MTAsMHg4YSwweDgwLDB4MmUgfSwKLSAgMTYsIDB4YjMwMCwgMCwgezB4MzQsMHg0YSwweDhjLDB4MDMsMHgyZSwweDAwLDB4YWIsMHg4MCwweDAyLDB4ZTAsMHgwYiwweGI4LDB4MDIsMHgyYywweDgwLDB4OGYgfSwKLSAgMTYsIDB4YjMxMCwgMCwgezB4NjAsMHgxMywweGQ4LDB4NGEsMHg3NiwweDAyLDB4OWQsMHg4NCwweGFmLDB4MzAsMHgyMiwweDQ4LDB4MGIsMHg4OCwweDEyLDB4YTAgfSwKLSAgMTYsIDB4YjMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDUsMHhjNCwweDAwLDB4OGIsMHgwMCwweDI0LDB4MDAgfSwKLSAgMTYsIDB4YjMzMCwgMCwgezB4NGEsMHgwMCwweDAyLDB4YWMsMHg4MCwweDgzLDB4MDAsMHgyYywweDAxLDB4MjgsMHgwNCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDEgfSwKLSAgMTYsIDB4YjM0MCwgMCwgezB4MjAsMHhjMCwweDAzLDB4YjAsMHgwMiwweDBjLDB4ODAsMHg4MywweDQwLDB4MjAsMHhjMSwweGE4LDB4MzQsMHgyMiwweDhkLDB4MTMgfSwKLSAgMTYsIDB4YjM1MCwgMCwgezB4ODMsMHgyMCwweGFjLDB4YzgsMHgwYiwweGIwLDB4MDIsMHg2MiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjM2MCwgMCwgezB4YzAsMHgxNSwweDg2LDB4MDAsMHg5YiwweDA0LDB4YWUsMHgwMCwweDBhLDB4OTAsMHgwMiwweGVjLDB4MDAsMHgwYiwweDE0LDB4MmUgfSwKLSAgMTYsIDB4YjM3MCwgMCwgezB4YzYsMHgwMiwweGIxLDB4MTIsMHg2YywweDAwLDB4YWIsMHgyMCwweDJhLDB4YzEsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OGIgfSwKLSAgMTYsIDB4YjM4MCwgMCwgezB4MDIsMHgyNiwweGMxLDB4MGEsMHhiMCwweDAyLDB4YWMsMHgwMCwweGFiLDB4MDQsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZjAgfSwKLSAgMTYsIDB4YjM5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YzMsMHgwMSwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YjNhMCwgMCwgezB4MGUsMHg4OCwweDEzLDB4MjQsMHgwMiwweGNhLDB4MDAsMHgxZSwweDIwLDB4MmMsMHg4ZSwweDBiLDB4MmMsMHgwMCwweGNiLDB4MDAgfSwKLSAgMTYsIDB4YjNiMCwgMCwgezB4MmEsMHhjMCwweDBmLDB4YjgsMHgwMywweDJlLDB4MDYsMHhjYiwweDAwLDB4M2EsMHhjMCwweDRjLDB4YjAsMHgxMywweGFjLDB4MGMgfSwKLSAgMTYsIDB4YjNjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzgsMHgwZiwweGIwLDB4NDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjNkMCwgMCwgezB4ZTAsMHgwMSwweGI0LDB4MDgsMHhmZiwweDkxLDB4MzMsMHg0MCwweDA5LDB4ZGMsMHgwMSwweGY0LDB4MjAsMHg3ZSwweDAyLDB4MmUgfSwKLSAgMTYsIDB4YjNlMCwgMCwgezB4NDAsMHgwZCwweDk4LDB4MDEsMHhiYywweDgwLDB4ZWYsMHg4MCwweGI3LDB4ZTQsMHg4ZiwweGY0LDB4MGIsMHhmZSwweDQwLDB4N2YgfSwKLSAgMTYsIDB4YjNmMCwgMCwgezB4MDAsMHhiOSwweGMwLDB4NGUsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGY3LDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAyLDB4YjggfSwKLSAgMTYsIDB4YjQwMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTAsMHhhMSwweDQ0LDB4Y2IsMHgwMiwweDMyLDB4MDAgfSwKLSAgMTYsIDB4YjQxMCwgMCwgezB4MGQsMHg4MCwweDBhLDB4NmQsMHgwMCwweGViLDB4MDQsMHgxMCwweDkwLDB4MjgsMHgyMiwweDBiLDB4MmMsMHhjMiwweGNiLDB4MjAgfSwKLSAgMTYsIDB4YjQyMCwgMCwgezB4NzYsMHhjMCwweDBlLDB4YjEsMHgwMywweGVjLDB4MDEsMHhjYiwweDA2LDB4MzIsMHhjMSwweDBjLDB4MzAsMHgwMywweDJjLDB4MDIgfSwKLSAgMTYsIDB4YjQzMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjQ0MCwgMCwgezB4YzgsMHgwNSwweDIxLDB4NDgsMHhhYiwweDAwLDB4MjAsMHgwMCwweDAwLDB4OTUsMHgyMywweDRjLDB4MDgsMHhiYiwweDAxLDB4MjIgfSwKLSAgMTYsIDB4YjQ1MCwgMCwgezB4YzAsMHgwOCwweGIyLDB4MDIsMHgwYywweDA4LDB4ODMsMHg4OCwweDkyLDB4ZDUsMHgyOCwweDM0LDB4MDIsMHhlYywweDAyLDB4OGYgfSwKLSAgMTYsIDB4YjQ2MCwgMCwgezB4MjAsMHgyMywweGMwLDB4NGQsMHhmMCwweDAxLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgyZSwweGMwLDB4MGQsMHgzMCwweDAzLDB4NzIgfSwKLSAgMTYsIDB4YjQ3MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGUwLDB4MDUsMHg0NCwweDAwLDB4ODMsMHgxMCwweDIwLDB4NjAgfSwKLSAgMTYsIDB4YjQ4MCwgMCwgezB4MDksMHgyNSwweDAyLDB4MDAsMHgwOCwweGEwLDB4MDAsMHg0YywweDAwLDB4MGIsMHgwYywweDIyLDB4NGYsMHgxMiwweDkzLDB4NDAgfSwKLSAgMTYsIDB4YjQ5MCwgMCwgezB4MDAsMHhjMCwweDA5LDB4M2UsMHgwMiwweGVjLDB4MDAsMHhhYiwweDgwLDB4YTQsMHhjMCwweDA5LDB4MzAsMHgyMiwweDJjLDB4MDggfSwKLSAgMTYsIDB4YjRhMCwgMCwgezB4YjMsMHgwMSwweDBjLDB4ODEsMHgwOCwweDMwLDB4MDIsMHgzOCwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjRiMCwgMCwgezB4NjAsMHgwMSwweDE2LDB4MDksMHhiNywweDgwLDB4MjEsMHg2NCwweDA4LDB4NzgsMHgwNiwweDEyLDB4MDAsMHhiNCwweDgyLDB4MmQgfSwKLSAgMTYsIDB4YjRjMCwgMCwgezB4YTQsMHgxYiwweDY5LDB4MDYsMHg3ZSwweDA0LDB4MTcsMHg5MiwweDI1LDB4ZTYsMHgwOSwweDc4LDB4MDYsMHhkZSwweDgwLDB4YTcgfSwKLSAgMTYsIDB4YjRkMCwgMCwgezB4OTAsMHgyNSwweGUwLDB4MDksMHg3OSwweDUwLDB4NWUsMHgwNCwweGI3LDB4OTIsMHgyZiwweDYxLDB4MDksMHhjOCwweDAyLDB4NDggfSwKLSAgMTYsIDB4YjRlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyNSwweDAwLDB4YzMsMHgwMCwweGIwLDB4MDMgfSwKLSAgMTYsIDB4YjRmMCwgMCwgezB4MGQsMHhhMywweDQyLDB4MDksMHg0MCwweGUxLDB4MDAsMHhiYywweDQwLDB4MGYsMHgxMSwweDAzLDB4NGMsMHgwMCwweDEzLDB4MDAgfSwKLSAgMTYsIDB4YjUwMCwgMCwgezB4MjAsMHhjMCwweDA5LDB4MzIsMHgwMywweGNjLDB4MTAsMHhhMywweDAwLDB4MjYsMHhjNCwweDhkLDB4MzAsMHgyYiwweDBjLDB4ODAgfSwKLSAgMTYsIDB4YjUxMCwgMCwgezB4ZjMsMHgwMCwweDdjLDB4ODAsMHgwYywweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjUyMCwgMCwgezB4NDAsMHgxZCwweGJjLDB4MDAsMHhlNywweDEwLDB4M2QsMHgwMSwweDJmLDB4ZjEsMHg0MiwweGU4LDB4MDAsMHhmNSwweDkwLDB4MDMgfSwKLSAgMTYsIDB4YjUzMCwgMCwgezB4YzEsMHgwYywweGYxLDB4NDMsMHg5YywweDA0LDB4ZWYsMHgwOCwweDNiLDB4YzIsMHgwYywweGYwLDB4ODEsMHhkYywweGEwLDB4ZGYgfSwKLSAgMTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzYiwweGMzLDB4M2YsMHhmMCwweDgzLDB4ZmMsMHgwNSwweGRmLDB4MGMsMHgzZCwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZDAgfSwKLSAgMTYsIDB4YjU1MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDUsMHhmNCwweDAwLDB4Y2IsMHg4MCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4YjU2MCwgMCwgezB4MmMsMHhhMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4ODAsMHgzMiwweGMwLDB4MmUsMHhiOCwweDBiLDB4MmMsMHg0NiwweGQzLDB4MDAgfSwKLSAgMTYsIDB4YjU3MCwgMCwgezB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhkYiwweDQ4LDB4MzIsMHhjMCwweDFmLDB4YjQsMHgwMywweDJjLDB4ODggfSwKLSAgMTYsIDB4YjU4MCwgMCwgezB4Y2IsMHg0OCwweDMyLDB4ODAsMHgwYywweDMwLDB4MTMsMHgyYSwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjU5MCwgMCwgezB4NDgsMHgxMSwweGI0LDB4MDAsMHg4NywweDAxLDB4MjEsMHg0MCwweDA4LDB4NzAsMHg0MiwweGQwLDB4MDgsMHhiNCwweDAwLDB4MjkgfSwKLSAgMTYsIDB4YjVhMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzgsMHgwYywweDcyLDB4MGEsMHgxYywweDg0LDB4OGYgfSwKLSAgMTYsIDB4YjViMCwgMCwgezB4NDAsMHgwOSwweGM0LDB4OGYsMHg3MywweDEyLDB4OWMsMHg0MCwweDgzLDB4MjAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YjVjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg5NiwweDAxLDB4YWYsMHg4MCwweDIxLDB4MjAgfSwKLSAgMTYsIDB4YjVkMCwgMCwgezB4MDgsMHg2OCwweDAyLDB4ZGEsMHgwMCwweGJkLDB4ODAsMHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4MWUsMHgwMCwweDhmLDB4ODggfSwKLSAgMTYsIDB4YjVlMCwgMCwgezB4ODMsMHhlMiwweDI5LDB4ZjgsMHg4MiwweDVmLDB4ODAsMHg4NywweGEwLDB4MjUsMHhlMCwweDBiLDB4M2EsMHgxMiwweDBlLDB4NTAgfSwKLSAgMTYsIDB4YjVmMCwgMCwgezB4OTcsMHhhNCwweDIxLDB4YTAsMHgyOSwweDc4LDB4MDIsMHgzMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjYwMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDIsMHhhMSwweDgxLDB4MDAsMHgwMCwweDQ4LDB4NzAsMHgwMiwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMgfSwKLSAgMTYsIDB4YjYxMCwgMCwgezB4ZjgsMHgwOSwweDMxLDB4NDIsMHgwYywweDEwLDB4ODMsMHgwMCwweDIwLDB4ZTAsMHgwOCwweDM4LDB4MTIsMHg0ZSwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YjYyMCwgMCwgezB4MDAsMHg2YSwweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwNCwweDkzLDB4MDAsMHgyMCwweGUwLDB4MDksMHgzOCwweDAyLDB4OTIgfSwKLSAgMTYsIDB4YjYzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZWUsMHgyMCwweDMwLDB4ODAgfSwKLSAgMTYsIDB4YjY0MCwgMCwgezB4MGMsMHhhMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzMywweGIwLDB4MGQsMHhlNCwweDAzLDB4MzIsMHg4OCwweGNjLDB4ODAgfSwKLSAgMTYsIDB4YjY1MCwgMCwgezB4MjMsMHgwMCwweDBkLDB4YzAsMHgwMywweDYyLDB4MDIsMHhjYSwweDAwLDB4MzYsMHg4MCwweDBmLDB4YTAsMHg0MywweDI4LDB4MDYgfSwKLSAgMTYsIDB4YjY2MCwgMCwgezB4ZGEsMHgwMCwweDMzLDB4YTAsMHgwZCwweDZhLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjY3MCwgMCwgezB4NDgsMHgwMCwweGUwLDB4MDAsMHg5OCwweDAxLDB4YmUsMHgwMCwweDBmLDB4ODAsMHgwMywweGYwLDB4MDAsMHhiYywweDAwLDB4MzggfSwKLSAgMTYsIDB4YjY4MCwgMCwgezB4MDQsMHgwOCwweDgwLDB4YTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MTMsMHhhMCwweDAwLDB4ZTAgfSwKLSAgMTYsIDB4YjY5MCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHgwMCwweDAzLDB4YzAsMHgwMCwweGU4LDB4MDAsMHhiZSwweDA0LDB4NGUsMHg4MCwweDA3LDB4ZDIgfSwKLSAgMTYsIDB4YjZhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHhlNCwweDgwLDB4YzksMHgwMCwweDNlLDB4NjggfSwKLSAgMTYsIDB4YjZiMCwgMCwgezB4MGMsMHg5MCwweDAzLDB4NjQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDQzLDB4ZTAsMHgwMCwweGM4LDB4MDAgfSwKLSAgMTYsIDB4YjZjMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgxMywweDIwLDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweDY0LDB4MDAgfSwKLSAgMTYsIDB4YjZkMCwgMCwgezB4ODEsMHgwMCwweDMyLDB4NDAsMHgwNCwweDkwLDB4MTMsMHgwMiwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjZlMCwgMCwgezB4ODAsMHgwNCwweDY1LDB4MDYsMHg4OSwweDQwLDB4MmUsMHg2MCwweDFhLDB4MTQsMHgyYSwweDA1LDB4MjAsMHg4OSwweDAwLDB4MmUgfSwKLSAgMTYsIDB4YjZmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNCwweDA4LDB4YzEsMHgwMiwweDIwLDB4NDAsMHgwOCwweDEwLDB4MWEsMHgyNCwweDAwLDB4ODkgfSwKLSAgMTYsIDB4YjcwMCwgMCwgezB4MTAsMHgzMiwweDQxLDB4MDgsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4MDQsMHgzNiwweDQwLDB4ODgsMHg5NCwweDBhLDB4MjAgfSwKLSAgMTYsIDB4YjcxMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHgwNCwweDIwLDB4ODksMHg1NSwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YjcyMCwgMCwgezB4MDgsMHhkNSwweDAyLDB4MzQsMHgwMCwweDhkLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfSwKLSAgMTYsIDB4YjczMCwgMCwgezB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MGEsMHg4OSwweDAwLDB4MjYsMHg0MCwweDM4LDB4OTAsMHgwYSwweDI0LDB4MDAgfSwKLSAgMTYsIDB4Yjc0MCwgMCwgezB4YTksMHgwMCwweDIwLDB4NDAsMHgwYSwweDkwLDB4ODIsMHgwNiwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjc1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MmYsMHg0MCwweDBhLDB4ZDQsMHgwMiwweDM0LDB4MDAsMHg4NSwweDAxLDB4MmMgfSwKLSAgMTYsIDB4Yjc2MCwgMCwgezB4NDAsMHgwOCwweDEwLDB4NDIsMHhlNCwweDA2LDB4OTksMHgwMCwweDIyLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNSwweDAwLDB4ODEgfSwKLSAgMTYsIDB4Yjc3MCwgMCwgezB4NDAsMHgyOCwweDUwLDB4MDgsMHgxNCwweDEyLDB4MDUsMHgwMCwweGExLDB4NDAsMHgyNCwweDUwLDB4NWEsMHgxMCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4Yjc4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwNCwweDNlLDB4MDAgfSwKLSAgMTYsIDB4Yjc5MCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MjEsMHg0MiwweGNjLDB4MDAsMHgzZSwweDAwLDB4MmMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YjdhMCwgMCwgezB4YjYsMHgwMCwweDJjLDB4ODAsMHgwMiwweDIwLDB4MDIsMHhjOCwweDAwLDB4MzYsMHgwMCwweDBjLDB4ODAsMHgwMywweDYwLDB4MDIgfSwKLSAgMTYsIDB4YjdiMCwgMCwgezB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4ZSwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjdjMCwgMCwgezB4OTgsMHgxZCwweGY1LDB4MDAsMHhmNSwweDAwLDB4M2UsMHg0MCwweDg3LDB4OTAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2QgfSwKLSAgMTYsIDB4YjdkMCwgMCwgezB4NTAsMHgwZiwweDU0LDB4MDMsMHhkMSwweDAwLDB4ZWMsMHg0MCwweDNmLDB4MTAsMHgwYiwweGM0LDB4NDMsMHhmMSwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjdlMCwgMCwgezB4NDAsMHgzNiwweDUwLDB4MGYsMHg5NCwweDEzLDB4ZTUsMHgxMCwweGQ5LDB4NDQsMHgzZCwweDQwLDB4MmQsMHhkMCwweDAzLDB4ZTYgfSwKLSAgMTYsIDB4YjdmMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE4LDB4MDUsMHhmNiwweDYwLDB4Y2QsMHgwMiwweDNiLDB4NDAgfSwKLSAgMTYsIDB4YjgwMCwgMCwgezB4MGMsMHhkMCwweDAzLDB4YjQsMHg0MCwweGZkLDB4MDYsMHgzZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4NjYsMHgwNCwweGM5LDB4ODIgfSwKLSAgMTYsIDB4YjgxMCwgMCwgezB4YjYsMHg2MiwweDBmLDB4MTgsMHgwYiwweDM2LDB4MDAsMHhjZCwweDQwLDB4MzIsMHg2MSwweDBjLDB4OTAsMHgyMywweDI0LDB4MGEgfSwKLSAgMTYsIDB4YjgyMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHg0YywweGQwLDB4NDMsMHgwNiwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjgzMCwgMCwgezB4MzksMHgxMCwweGUzLDB4ODAsMHhkOCwweDAwLDB4MjIsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIyLDB4OTQsMHhiOCwweDAwLDB4MmUgfSwKLSAgMTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMSwweDAwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYiwweGM0LDB4MjIsMHgyMSwweDUwLDB4ODggfSwKLSAgMTYsIDB4Yjg1MCwgMCwgezB4ODAsMHgyMiwweDIyLDB4MDgsMHg4MCwweDAyLDB4MjAsMHgxMCwweDgwLDB4MDEsMHgyYSwweDAwLDB4MGEsMHg4MCwweDAzLDB4NGUgfSwKLSAgMTYsIDB4Yjg2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHhjNiwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAgfSwKLSAgMTYsIDB4Yjg3MCwgMCwgezB4ODgsMHgxMCwweDBhLDB4ODQsMHgwOCwweGIxLDB4MDAsMHgyOSwweDQwLDB4MGEsMHg3MCwweDBhLDB4YjUsMHgwMCwweDhmLDB4NDAgfSwKLSAgMTYsIDB4Yjg4MCwgMCwgezB4MjksMHhjMCwweDBiLDB4ZjQsMHgwMiwweDI0LDB4MDAsMHg4MSwweDIwLDB4MjgsMHg0NCwweDg5LDB4MTAsMHgwMiwweDA0LDB4MDQgfSwKLSAgMTYsIDB4Yjg5MCwgMCwgezB4ODEsMHgwMiwweDJhLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwMiwweDAxLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjhhMCwgMCwgezB4MTgsMHgxNSwweGE2LDB4MDAsMHg5OSwweDIwLDB4MjIsMHg0MCwweDA5LDB4OTAsMHgxMiwweDI0LDB4ODAsMHhiOSwweDAwLDB4MmYgfSwKLSAgMTYsIDB4YjhiMCwgMCwgezB4NDQsMHgwMywweGQwLDB4MDIsMHhmNCwweDAwLDB4OGQsMHgwMCwweDJiLDB4NDEsMHgwYiwweGQwLDB4MDIsMHgyNiwweDEwLDB4ODkgfSwKLSAgMTYsIDB4YjhjMCwgMCwgezB4MDQsMHgyYSwweDQwLDB4MDksMHg5MCwweDZlLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGEsMHg5NCwweDAyLDB4NDYgfSwKLSAgMTYsIDB4YjhkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEyLDB4MTUsMHhlNiwweDAwLDB4YzksMHgwMCwweDM4LDB4NDIgfSwKLSAgMTYsIDB4YjhlMCwgMCwgezB4MGMsMHgxMCwweDEzLDB4YTYsMHgwNCwweDc5LDB4MDgsMHgzYSwweDc4LDB4MDYsMHg5MiwweDAzLDB4YTQsMHgwOCwweGM5LDB4MDAgfSwKLSAgMTYsIDB4YjhmMCwgMCwgezB4M2EsMHg2MCwweDhmLDB4OTgsMHgyMywweDA2LDB4MDIsMHhjOSwweDAyLDB4M2EsMHg0MCwweDBkLDB4OTAsMHgwMywweDA0LDB4MDAgfSwKLSAgMTYsIDB4YjkwMCwgMCwgezB4YzksMHgwMCwweDM4LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjkxMCwgMCwgezB4MjgsMHgwMSwweDg0LDB4MTAsMHhmOSwweDgwLDB4YmUsMHg0MCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmOSwweDAwLDB4M2MgfSwKLSAgMTYsIDB4YjkyMCwgMCwgezB4NjAsMHg4ZCwweDkyLDB4MDMsMHgyNCwweDQyLDB4ZTksMHgxMCwweDMyLDB4NTAsMHgwZiwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZjkgfSwKLSAgMTYsIDB4YjkzMCwgMCwgezB4MDAsMHhiNiwweDQxLDB4MmUsMHgxMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4Yjk0MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MTAsMHhhMCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MTAgfSwKLSAgMTYsIDB4Yjk1MCwgMCwgezB4MGYsMHg4OCwweDAzLDB4MjAsMHgwOCwweGY4LDB4YzAsMHgxZSwweDEwLDB4MmMsMHg0MCwweDAzLDB4ZjIsMHgwMCwweGNjLDB4MDAgfSwKLSAgMTYsIDB4Yjk2MCwgMCwgezB4M2YsMHgwMCwweDBjLDB4YzAsMHgxMywweDIwLDB4MDIsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgyYiwweDIwLDB4MTAgfSwKLSAgMTYsIDB4Yjk3MCwgMCwgezB4YzAsMHgwNCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgwYSwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yjk4MCwgMCwgezB4YTgsMHgwNSwweDNhLDB4ODAsMHg4NiwweGUwLDB4MmYsMHhhMCwweDFiLDB4ZTAsMHgwMiwweDNhLDB4ODAsMHhiYSwweDA0LDB4MmUgfSwKLSAgMTYsIDB4Yjk5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg4OCwweDA4LDB4YzIsMHgwMCwweDJlLDB4ODEsMHgwOCwweDYwLDB4MDIsMHgyOCwweDEwLDB4OGUgfSwKLSAgMTYsIDB4YjlhMCwgMCwgezB4ODEsMHgwMywweDgwLDB4MDgsMHhlMCwweDAxLDB4NzgsMHgwMCwweDhlLDB4MDQsMHgwMywweDgwLDB4MDksMHg2OCwweDAzLDB4Y2EgfSwKLSAgMTYsIDB4YjliMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDUsMHg0YywweDAwLDB4ODMsMHg2MCwweDJjLDB4NDQgfSwKLSAgMTYsIDB4YjljMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4MGYsMHg4MCwweGIxLDB4MDAsMHgyYywweGU1LDB4MDMsMHgzMCwweDEwLDB4Y2MsMHgxMCwweDgzLDB4MDAgfSwKLSAgMTYsIDB4YjlkMCwgMCwgezB4MGMsMHhjMCwweDI5LDB4MzAsMHgyMiwweDA0LDB4MDksMHg5MSwweDEwLDB4MjQsMHhjMCwweGM4LDB4MzAsMHgwMCwweDRjLDB4MDQgfSwKLSAgMTYsIDB4YjllMCwgMCwgezB4OTMsMHgwMiwweDI0LDB4YzAsMHgwYiwweDMxLDB4MDIsMHgwYSwweDAwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YjlmMCwgMCwgezB4ZTAsMHgwMSwweDE4LDB4ODAsMHg4NywweDAwLDB4MmQsMHg0MCwweDBiLDB4NzQsMHg0MiwweDFjLDB4MDEsMHhiNSwweDAxLDB4MmMgfSwKLSAgMTYsIDB4YmEwMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhiMCwweDAwLDB4OTQsMHgwNCwweDJmLDB4MjAsMHgwOSwweGMwLDB4MDIsMHgxNCwweDkwLDB4OTcgfSwKLSAgMTYsIDB4YmExMCwgMCwgezB4MDAsMHgyNSwweGM4LDB4MDgsMHg3MCwweDAyLDB4NGMsMHg4MCwweDk3LDB4MjAsMHgyNSwweGMwLDB4MDksMHg3MCwweDAyLDB4ZTggfSwKLSAgMTYsIDB4YmEyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzYSwweDgyLDB4YzYsMHg4MCwweDJkLDB4NjAgfSwKLSAgMTYsIDB4YmEzMCwgMCwgezB4MGIsMHhmOCwweDBiLDB4MWEsMHgwMCwweGY1LDB4ODAsMHgzZCwweGUwLDB4OGYsMHg3OCwweDAzLDB4ZGUsMHgwMiwweGM3LDB4ODAgfSwKLSAgMTYsIDB4YmE0MCwgMCwgezB4MmQsMHhlMCwweDBkLDB4NzgsMHgwYiwweDE3LDB4MDIsMHhkZiwweDgwLDB4MjQsMHhmOCwweDJjLDB4ZmQsMHgwMywweDVlLDB4MGMgfSwKLSAgMTYsIDB4YmE1MCwgMCwgezB4ZDcsMHhlMCwweDM1LDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmE2MCwgMCwgezB4NDgsMHgxZCwweGFlLDB4NDAsMHhmYSwweDA0LDB4M2UsMHg0MCwweDBmLDB4ODAsMHgxMywweGVjLDB4MDQsMHhmOSwweDAwLDB4M2UgfSwKLSAgMTYsIDB4YmE3MCwgMCwgezB4YzEsMHgwYywweGEwLDB4MTMsMHhjMCwweDEwLDB4ZTgsMHgwMCwweDNjLDB4MDAsMHg0ZSwweDgwLDB4NDMsMHhjNCwweDIwLDB4ODkgfSwKLSAgMTYsIDB4YmE4MCwgMCwgezB4MDAsMHhiYSwweGMwLDB4MDcsMHhiNiwweDIxLDB4ZWQsMHgwNiwweGViLDB4NjgsMHhiYSwweGNjLDB4MGYsMHgyMCwweDEzLDB4YzIgfSwKLSAgMTYsIDB4YmE5MCwgMCwgezB4MDYsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhiZSwweDAwLDB4YzYsMHg4MCwweDMxLDB4NjAgfSwKLSAgMTYsIDB4YmFhMCwgMCwgezB4MmQsMHg3OCwweDBiLDB4M2UsMHg0OCwweGVjLDB4OTIsMHgzZCwweDYwLDB4MGMsMHg1OCwweDAzLDB4NWEsMHg0MCwweGQ1LDB4ODAgfSwKLSAgMTYsIDB4YmFiMCwgMCwgezB4MzEsMHg2MSwweDBjLDB4NTgsMHgyMywweDM2LDB4MDAsMHhjZiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZmLDB4NjAgfSwKLSAgMTYsIDB4YmFjMCwgMCwgezB4Y2YsMHg5MCwweDMzLDB4ZjAsMHgwYywweDUyLDB4MDMsMHgwMCwweDAwLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmFkMCwgMCwgezB4YTgsMHgxMSwweGI4LDB4ODQsMHg4NiwweDE0LDB4YjUsMHhjMCwweDA4LDB4NzAsMHgwMiwweDFlLDB4YzAsMHhjNCwweDAwLDB4MmQgfSwKLSAgMTYsIDB4YmFlMCwgMCwgezB4NDAsMHgwOCwweDQwLDB4MDIsMHgxNCwweGQwLDB4ODYsMHgxMCwweDIxLDB4ODAsMHg0YywweDYyLDB4NDIsMHgzNCwweDQwLDB4YTUgfSwKLSAgMTYsIDB4YmFmMCwgMCwgezB4MDAsMHgzNSwweGMwLDB4MjgsMHg3MCwweDQyLDB4ZGMsMHhjMiwweDhmLDB4MzAsMHgyMywweGMwLDB4MDgsMHg1MCwweDAyLDB4MmEgfSwKLSAgMTYsIDB4YmIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHg5OCwweDI4LDB4OGUsMHgwMCwweGE1LDB4NDAgfSwKLSAgMTYsIDB4YmIxMCwgMCwgezB4MDgsMHhmMSwweDAyLDB4MTgsMHg2NCwweGI0LDB4MDAsMHg2ZCwweDQyLDB4MDgsMHg1MCwweDAyLDB4MTgsMHgwMSwweDg1LDB4MDggfSwKLSAgMTYsIDB4YmIyMCwgMCwgezB4MjEsMHg0MCwweDA5LDB4NTgsMHgyMiwweDU0LDB4MDAsMHg4NSwweDEwLDB4MmQsMHhjNCwweDA5LDB4NzAsMHgwMiwweGRjLDB4MDQgfSwKLSAgMTYsIDB4YmIzMCwgMCwgezB4OTcsMHgwMCwweDI1LDB4YzAsMHgwOCwweDQ0LDB4MDIsMHgwMCwweDEwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmI0MCwgMCwgezB4NjAsMHgxNCwweDhjLDB4MDAsMHg4MiwweDgwLDB4MjQsMHhjMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4MDAsMHg4MCwweDRhLDB4MmMgfSwKLSAgMTYsIDB4YmI1MCwgMCwgezB4NDIsMHgwOCwweDBhLDB4NDIsMHgwNiwweDAwLDB4OTIsMHg4NCwweDIwLDB4YTAsMHg4OCwweDI4LDB4NDIsMHg0NCwweDAwLDB4YTMgfSwKLSAgMTYsIDB4YmI2MCwgMCwgezB4MDYsMHgyNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHgxMCwweDkzLDB4MDQsMHgyNCwweGMxLDB4MDksMHgwMCwweDAyLDB4MDggfSwKLSAgMTYsIDB4YmI3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2IsMHgwMCwweDM2LDB4NDAgfSwKLSAgMTYsIDB4YmI4MCwgMCwgezB4MGMsMHhiNCwweDEzLDB4MmMsMHgwMCwweGY5LDB4MDAsMHgzZSwweGEwLDB4MGMsMHhhMiwweDAzLDB4MDQsMHgwOCwweGMyLDB4ODAgfSwKLSAgMTYsIDB4YmI5MCwgMCwgezB4MzAsMHhhOCwweDBkLDB4MmEsMHgwMywweDU0LDB4MDAsMHhjYiwweDAwLDB4M2YsMHhjMCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDggfSwKLSAgMTYsIDB4YmJhMCwgMCwgezB4ZGYsMHgwMCwweDM3LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmJiMCwgMCwgezB4ODAsMHgwMCwweGUwLDB4MDAsMHhmYiwweDEwLDB4M2EsMHg0MCwweDBlLDB4YjAsMHgwMywweGVkLDB4OTAsMHhmOSwweDExLDB4N2UgfSwKLSAgMTYsIDB4YmJjMCwgMCwgezB4ODAsMHg0ZiwweGIwLDB4NTMsMHhlOCwweDQwLDB4ZTksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNiwweDA4LDB4ZjkgfSwKLSAgMTYsIDB4YmJkMCwgMCwgezB4MDEsMHgzYSwweGMwLDB4MGMsMHhiMCwweDEzLDB4Y2MsMHgwMCwweGViLDB4MDIsMHgzYSwweGM2LDB4OGUsMHhiOCwweDAzLDB4ZTAgfSwKLSAgMTYsIDB4YmJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MTAsMHhmMCwweDBjLDB4Y2UsMHgwMCwweDNmLDB4ZTAgfSwKLSAgMTYsIDB4YmJmMCwgMCwgezB4MmMsMHhmMCwweDgzLDB4M2EsMHg0OCwweGNkLDB4MDEsMHgzNSwweDgwLDB4MGMsMHg2MCwweDEyLDB4MzQsMHgwYSwweGNlLDB4MDAgfSwKLSAgMTYsIDB4YmMwMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4ZTAsMHgwYiwweDc0LDB4MDAsMHhjOSwweDEwLDB4YjMsMHhjMSwweDBmLDB4ZjAsMHgxYiwweDNjLDB4MDAgfSwKLSAgMTYsIDB4YmMxMCwgMCwgezB4Y2YsMHgwMCwweGI3LDB4YzAsMHgyYywweGUwLDB4MDMsMHgwMCwweDQ0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmMyMCwgMCwgezB4ODEsMHgwNCwweDZlLDB4MTAsMHg4OCwweDgwLDB4MmMsMHhjMCwweDE4LDB4OTgsMHgwMiwweDJkLDB4ODAsMHg4MSwweDAwLDB4MzYgfSwKLSAgMTYsIDB4YmMzMCwgMCwgezB4OTEsMHgwOCwweGIwLDB4MDMsMHg2OCwweDAwLDB4YzksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODMgfSwKLSAgMTYsIDB4YmM0MCwgMCwgezB4ODAsMHgzNiwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMiwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDgsMHgyMCwweDAzLDB4NjAgfSwKLSAgMTYsIDB4YmM1MCwgMCwgezB4NDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MDUsMHgwNiwweDAwLDB4OGEsMHg4MCwweDJlLDB4NDUgfSwKLSAgMTYsIDB4YmM2MCwgMCwgezB4MjgsMHg4OCwweDAyLDB4MjQsMHgwMiwweDg4LDB4MDIsMHgwMiwweDAyLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4YmM3MCwgMCwgezB4MjIsMHgwMCwweDA4LDB4ODAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDAxLDB4MjIsMHhjMSwweDBhLDB4YjAsMHgwMiwweDZjLDB4MDAgfSwKLSAgMTYsIDB4YmM4MCwgMCwgezB4YWIsMHgwMCwweDIyLDB4YzEsMHgwOCwweDkwLDB4MTIsMHg2MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmM5MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MmMsMHhjMCwweDQ4LDB4MDgsMHgxMiwweDAwLDB4ODAsMHg4MCwweDAyLDB4MjQgfSwKLSAgMTYsIDB4YmNhMCwgMCwgezB4MDAsMHgwOCwweDE4LDB4NDIsMHhhYywweDAyLDB4OGIsMHg4MCwweDIyLDB4ZTAsMHgwOCwweGI4LDB4MTIsMHgwNCwweDAyLDB4ODMgfSwKLSAgMTYsIDB4YmNiMCwgMCwgezB4MDAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDEsMHg2MCwweGMwLDB4NDgsMHgxMCwweDAyLDB4NDIgfSwKLSAgMTYsIDB4YmNjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDA4LDB4Y2EsMHgwMCwweDJlLDB4NDAgfSwKLSAgMTYsIDB4YmNkMCwgMCwgezB4MDgsMHg4MCwweDAzLDB4MDAsMHgwMCwweGM4LDB4MDYsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAyLDB4YTAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmNlMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMywweDc0LDB4MDAsMHhjYiwweDAwLDB4MjIsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDAgfSwKLSAgMTYsIDB4YmNmMCwgMCwgezB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwYywweDgwLDB4MDEsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQwMCwgMCwgezB4YTAsMHgxOSwweGZjLDB4MDAsMHhmYywweDA0LDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGUxLDB4MDAsMHhmYywweDAwLDB4M2IgfSwKLSAgMTYsIDB4YmQxMCwgMCwgezB4MDAsMHgwZiwweGQwLDB4MDMsMHg3YywweDAwLDB4ZWYsMHgwMCwweDJmLDB4YzAsMHgwZiwweGYwLDB4MTEsMHhmNCwweDEwLDB4ZmQgfSwKLSAgMTYsIDB4YmQyMCwgMCwgezB4MDIsMHgzZCwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGRmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTkgfSwKLSAgMTYsIDB4YmQzMCwgMCwgezB4MDYsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MSwweDAyLDB4NzAsMHgyMCwweGRjLDB4MTAgfSwKLSAgMTYsIDB4YmQ0MCwgMCwgezB4NjcsMHgwNCwweDBkLDB4YzEsMHgwMiwweDcwLDB4MjAsMHg5YywweDEwLDB4MzcsMHgwNCwweDBkLDB4YzEsMHgwNiwweDcwLDB4NDAgfSwKLSAgMTYsIDB4YmQ1MCwgMCwgezB4NGMsMHgxMCwweDM3LDB4MTQsMHgxNSwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDEzLDB4MDQsMHgwZCwweGMxLDB4MDcgfSwKLSAgMTYsIDB4YmQ2MCwgMCwgezB4NzAsMHg0MCwweGRjLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmQ3MCwgMCwgezB4MDAsMHhjNSwweDQ0LDB4MDUsMHg3MSwweDIxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHg3MSwweDA1LDB4NWMgfSwKLSAgMTYsIDB4YmQ4MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA2LDB4NzEsMHgwMSwweDRjLDB4NDAsMHg1NywweDEwLDB4MGQsMHhjNCwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YmQ5MCwgMCwgezB4MDUsMHg1YywweDQwLDB4NTMsMHgxMCwweDE1LDB4YzQsMHgwNywweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YmRhMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4YmRiMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YmRjMCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YmRkMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmRlMCwgMCwgezB4MDAsMHg4NCwweDAwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDA0LDB4NTggfSwKLSAgMTYsIDB4YmRmMCwgMCwgezB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4MjAsMHgwMSwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAgfSwKLSAgMTYsIDB4YmUwMCwgMCwgezB4MDAsMHg1OCwweDAwLDB4NTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwLDB4MDAsMHg1OCwweDAwLDB4MTYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YmUxMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA1LDB4NzIsMHgxMSwweDVjLDB4ODAgfSwKLSAgMTYsIDB4YmUyMCwgMCwgezB4MTcsMHgyMCwweDE1LDB4ZDgsMHgwNSwweDMyLDB4MTEsMHgxYywweDgwLDB4NDcsMHgyMCwweDE0LDB4ODgsMHgwMCwweDcyLDB4MDEgfSwKLSAgMTYsIDB4YmUzMCwgMCwgezB4MWMsMHg4MCwweDU3LDB4MjAsMHgwNSwweGM4LDB4MDQsMHg3MiwweDAxLDB4NWMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDEgfSwKLSAgMTYsIDB4YmU0MCwgMCwgezB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDI0LDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmU1MCwgMCwgezB4MDAsMHhjMSwweDQwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4NDAsMHgyMCwweDAwLDB4MTggfSwKLSAgMTYsIDB4YmU2MCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg5MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4NDEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4YmU3MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDEwLDB4MDYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YmU4MCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSwKLSAgMTYsIDB4YmU5MCwgMCwgezB4MDIsMHgyMCwweDEwLDB4ODgsMHgwNCwweDYyLDB4MDEsMHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4ODgsMHgwMCwweDIwLDB4MDEgfSwKLSAgMTYsIDB4YmVhMCwgMCwgezB4MDgsMHg4MCwweDQyLDB4MjAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHgwMCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDAgfSwKLSAgMTYsIDB4YmViMCwgMCwgezB4MjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDMwLDB4MTAsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmVjMCwgMCwgezB4MDAsMHhjNSwweDRhLDB4MDUsMHg0MiwweDgxLDB4NTAsMHhhMCwweDA0LDB4MjgsMHgxNSwweDBhLDB4MDUsMHg1MiwweDgxLDB4MTAgfSwKLSAgMTYsIDB4YmVkMCwgMCwgezB4YTAsMHg0NCwweDI4LDB4MTEsMHgxYSwweDAwLDB4NDAsMHg4MCwweDEwLDB4YTAsMHg1NCwweDI4LDB4MDUsMHgwYSwweDA1LDB4NDIgfSwKLSAgMTYsIDB4YmVlMCwgMCwgezB4ODEsMHg1MSwweDIwLDB4MTQsMHgyOCwweDE1LDB4MGEsMHgwMSwweDQyLDB4ODEsMHg1MCwweGEwLDB4NTQsMHgyOCwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YmVmMCwgMCwgezB4MzEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwYywweDAxLDB4NTMsMHg0MCwweDU0LDB4YzAgfSwKLSAgMTYsIDB4YmYwMCwgMCwgezB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDU3LDB4NDAsMHg1NCwweGMwLDB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDUzLDB4MDAgfSwKLSAgMTYsIDB4YmYxMCwgMCwgezB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEsMHg1MywweDAwLDB4NTUsMHhjMCwweDE1LDB4NzQsMHgwNSwweDRjLDB4MDEgfSwKLSAgMTYsIDB4YmYyMCwgMCwgezB4NTMsMHgwMCwweDU0LDB4YzAsMHgxMSwweDMwLDB4MDEsMHg0MCwweDIxLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmYzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAgfSwKLSAgMTYsIDB4YmY0MCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MTEsMHgwMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4YmY1MCwgMCwgezB4MDAsMHgxMCwweGMxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgxMCwweDAwLDB4MDEsMHgxMCwweDAxLDB4MDEgfSwKLSAgMTYsIDB4YmY2MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg2MCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAgfSwKLSAgMTYsIDB4YmY3MCwgMCwgezB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAgfSwKLSAgMTYsIDB4YmY4MCwgMCwgezB4ODIsMHgwMCwweDIwLDB4ODQsMHgwMCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODQsMHgwOCwweDIwLDB4MDIgfSwKLSAgMTYsIDB4YmY5MCwgMCwgezB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMSwweDgwLDB4MDgsMHgwMSwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YmZhMCwgMCwgezB4MDAsMHhjNSwweDQwLDB4MDUsMHg2MCwweDAxLDB4NTgsMHgwMCwweDk2LDB4MDAsMHgxNSwweDkwLDB4MDUsMHg2NCwweDAyLDB4NTggfSwKLSAgMTYsIDB4YmZiMCwgMCwgezB4MDAsMHg1NiwweDAwLDB4NTUsMHg5MCwweDA1LDB4NjAsMHgwMSwweGQ5LDB4MDAsMHgxNiwweDQwLDB4MTUsMHg4MCwweDA1LDB4NjAgfSwKLSAgMTYsIDB4YmZjMCwgMCwgezB4MDEsMHg1OSwweDAwLDB4NzYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfSwKLSAgMTYsIDB4YmZkMCwgMCwgezB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzQsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YmZlMCwgMCwgezB4MzYsMHgwMCwweDRkLDB4ODAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYyLDB4MDAgfSwKLSAgMTYsIDB4YmZmMCwgMCwgezB4NTgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MCwweDAwLDB4ZDgsMHg4MCwweDE2LDB4MDAsMHgwZCwweDgwLDB4MDMgfSwKLSAgMTYsIDB4YzAwMCwgMCwgezB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MWQsMHg4MCwweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzAxMCwgMCwgezB4MDAsMHhjNSwweDQyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMgfSwKLSAgMTYsIDB4YzAyMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA2LDB4MzAgfSwKLSAgMTYsIDB4YzAzMCwgMCwgezB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDE4LDB4YzAgfSwKLSAgMTYsIDB4YzA0MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4YzA1MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHg0MCwweDMwLDB4MDAgfSwKLSAgMTYsIDB4YzA2MCwgMCwgezB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YzA3MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzA4MCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMgfSwKLSAgMTYsIDB4YzA5MCwgMCwgezB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDI1LDB4MzAsMHg4MSwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAgfSwKLSAgMTYsIDB4YzBhMCwgMCwgezB4ODAsMHg0YywweDMyLDB4NTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwLDB4ODAsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzAgfSwKLSAgMTYsIDB4YzBiMCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA1LDB4NjIsMHg4MSwweDU4LDB4MjAgfSwKLSAgMTYsIDB4YzBjMCwgMCwgezB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNCwweDYwLDB4ODEsMHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4YzEgfSwKLSAgMTYsIDB4YzBkMCwgMCwgezB4NTgsMHgyMCwweDQ2LDB4MDgsMHgxNSwweDgyLDB4MDEsMHg2MCwweDgxLDB4NTgsMHgzMCwweDU2LDB4MDgsMHgxNSwweDgyLDB4MDUgfSwKLSAgMTYsIDB4YzBlMCwgMCwgezB4NjAsMHg4MSwweDU4LDB4MjAsMHg1NiwweDA4LDB4MDUsMHg4MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzBmMCwgMCwgezB4MDAsMHhjNSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfSwKLSAgMTYsIDB4YzEwMCwgMCwgezB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDBjLDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzExMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzEyMCwgMCwgezB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA0LDB4NjYsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4YzEzMCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDY0LDB4ODEsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEgfSwKLSAgMTYsIDB4YzE0MCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxLDB4MTksMHgyMCwweDQzLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4YzE1MCwgMCwgezB4NjAsMHg4MSwweDE5LDB4MjAsMHg0NiwweDQ4LDB4MDEsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzE2MCwgMCwgezB4MDAsMHhjNSwweDYwLDB4MDUsMHg1OCwweDAxLDB4NTYsMHgwMCwweDU1LDB4ODAsMHgxNSwweDYwLDB4MDQsMHg1OCwweDAxLDB4NTYgfSwKLSAgMTYsIDB4YzE3MCwgMCwgezB4MDAsMHg0NSwweDgwLDB4MTEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDA2LDB4MDAsMHg0NSwweDgwLDB4MTUsMHg2MCwweDAxLDB4NTggfSwKLSAgMTYsIDB4YzE4MCwgMCwgezB4MDEsMHgxNiwweDAwLDB4MDEsMHg4MCwweDE1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDA1LDB4NDAgfSwKLSAgMTYsIDB4YzE5MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNiwweDAxLDB4NDksMHg4MCwweDEwLDB4NjAgfSwKLSAgMTYsIDB4YzFhMCwgMCwgezB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDc5LDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDAxLDB4MDYsMHgwMSwweDQxLDB4ODAgfSwKLSAgMTYsIDB4YzFiMCwgMCwgezB4NTAsMHg2MCwweDA0LDB4MTgsMHgwNSwweDA2LDB4MDEsMHg0MSwweDgwLDB4MTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDA2LDB4MDEgfSwKLSAgMTYsIDB4YzFjMCwgMCwgezB4NDEsMHg4MCwweDUwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzFkMCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgwNCwweDgwLDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDAsMHgwNCwweDA0LDB4NDAgfSwKLSAgMTYsIDB4YzFlMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfSwKLSAgMTYsIDB4YzFmMCwgMCwgezB4ODAsMHg0MSwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgxMSwweDAwLDB4ODAsMHg0MSwweDIwLDB4MTAsMHg0OCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4YzIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSwKLSAgMTYsIDB4YzIxMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMiwweDExLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDExLDB4ODAgfSwKLSAgMTYsIDB4YzIyMCwgMCwgezB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMgfSwKLSAgMTYsIDB4YzIzMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDMxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzI0MCwgMCwgezB4MDAsMHhjNSwweDQ2LDB4MDUsMHg3MCwweDgxLDB4NWMsMHg2MCwweDA3LDB4MTgsMHgxNSwweGM2LDB4MDQsMHg3MSwweDgxLDB4MWMgfSwKLSAgMTYsIDB4YzI1MCwgMCwgezB4NjAsMHgxNywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweGRjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YzI2MCwgMCwgezB4ODAsMHgxYywweDYwLDB4NzcsMHgxOCwweDE1LDB4Y2UsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzI3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjEgfSwKLSAgMTYsIDB4YzI4MCwgMCwgezB4NzcsMHgxOCwweDBkLDB4YzYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwLDB4MzcsMHgxOCwweDBkLDB4YzIsMHgwMywweDMxLDB4ODAgfSwKLSAgMTYsIDB4YzI5MCwgMCwgezB4NWMsMHg2MCwweDI3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDgwLDB4OWMsMHg2MCwweDE3LDB4MTgsMHgwZCwweGNlLDB4MDMgfSwKLSAgMTYsIDB4YzJhMCwgMCwgezB4NzEsMHg4MCwweGRjLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzJiMCwgMCwgezB4MDAsMHg0NSwweDQ2LDB4MDUsMHg3NSwweDgxLDB4NWMsMHg2MCwweDc3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3NSwweDgxLDB4NWMgfSwKLSAgMTYsIDB4YzJjMCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweDBjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4YzJkMCwgMCwgezB4ODEsMHg1YywweDYwLDB4NDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzJlMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4YzJmMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4YzMwMCwgMCwgezB4NWMsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgwMCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YzMxMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzMyMCwgMCwgezB4MDAsMHgwMCwweDA2LDB4MDEsMHg2MywweDgwLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgwLDB4NTggfSwKLSAgMTYsIDB4YzMzMCwgMCwgezB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MSwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEgfSwKLSAgMTYsIDB4YzM0MCwgMCwgezB4ODAsMHg1OCwweDYwLDB4NTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODAsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODAgfSwKLSAgMTYsIDB4YzM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAgfSwKLSAgMTYsIDB4YzM2MCwgMCwgezB4MTcsMHgwMCwweDE1LDB4YzAsMHg4NSwweDc0LDB4MDEsMHgxYywweDAwLDB4NDcsMHgwMCwweDExLDB4YzAsMHgwNSwweDcwLDB4MDEgfSwKLSAgMTYsIDB4YzM3MCwgMCwgezB4NWMsMHgwMCwweDUzLDB4MDAsMHgxMCwweGMwLDB4MDUsMHg3MCwweDAxLDB4NWMsMHgwMCwweDU3LDB4MDAsMHgxNCwweGM5LDB4MDQgfSwKLSAgMTYsIDB4YzM4MCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MDAsMHg1NywweDAwLDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzM5MCwgMCwgezB4MDAsMHg0NSwweDQyLDB4MDAsMHg2MCwweGMwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTggfSwKLSAgMTYsIDB4YzNhMCwgMCwgezB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4MjAsMHg4MCwweDE4LDB4MzAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDEwLDB4NjAgfSwKLSAgMTYsIDB4YzNiMCwgMCwgezB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YzNjMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDQsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4YzNkMCwgMCwgezB4MDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEgfSwKLSAgMTYsIDB4YzNlMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4YzNmMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQwMCwgMCwgezB4MDAsMHg0NSwweDQyLDB4MDUsMHg0MCwweGM1LDB4NTAsMHgyMCwweDE0LDB4MDgsMHgxNSwweDAwLDB4MDQsMHg0MCwweDgxLDB4NTAgfSwKLSAgMTYsIDB4YzQxMCwgMCwgezB4MjAsMHg1NCwweDA4LDB4MTEsMHgwMiwweDA1LDB4MDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDBjLDB4MTEsMHg0MiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4YzQyMCwgMCwgezB4ODEsMHg1MCwweDIwLDB4MTQsMHgwYywweDE1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NTQsMHgwOCwweDE1LDB4MDAgfSwKLSAgMTYsIDB4YzQzMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMywweDAxLDB4NTAsMHhjMCwweDQ0LDB4MzAgfSwKLSAgMTYsIDB4YzQ0MCwgMCwgezB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAsMHg0YywweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgyMSwweDUwLDB4YzAgfSwKLSAgMTYsIDB4YzQ1MCwgMCwgezB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEsMHg1MCwweGMwLDB4NTQsMHgzMCwweDE1LDB4MGMsMHgwNSwweDQzLDB4MDEgfSwKLSAgMTYsIDB4YzQ2MCwgMCwgezB4NTAsMHhjMCwweDU0LDB4MjAsMHgxNSwweDBjLDB4MDUsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzQ3MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQgfSwKLSAgMTYsIDB4YzQ4MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4MDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4YzQ5MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDAxLDB4MDAgfSwKLSAgMTYsIDB4YzRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDg0LDB4MjAgfSwKLSAgMTYsIDB4YzRiMCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4NCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzRjMCwgMCwgezB4ODAsMHhhMCwweDIwLDB4MjgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgyMCwweDIwLDB4MjgsMHgwOCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4YzRkMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzRlMCwgMCwgezB4MDAsMHg0NSwweDQwLDB4MDUsMHg2MCwweDQxLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCwweDAxLDB4NTggfSwKLSAgMTYsIDB4YzRmMCwgMCwgezB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4MjAsMHgwMSwweGQ4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAgfSwKLSAgMTYsIDB4YzUwMCwgMCwgezB4MDEsMHg1OCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfSwKLSAgMTYsIDB4YzUxMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAgfSwKLSAgMTYsIDB4YzUyMCwgMCwgezB4MjYsMHgwMCwweDBkLDB4ODAsMHgwMiwweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwNywweDYwLDB4MDEgfSwKLSAgMTYsIDB4YzUzMCwgMCwgezB4NWMsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDU3LDB4MDAsMHgwZCwweDgwLDB4MDIgfSwKLSAgMTYsIDB4YzU0MCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDQsMHgzMCwweDIxLDB4MGMsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MGMgfSwKLSAgMTYsIDB4YzU2MCwgMCwgezB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDE4LDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAgfSwKLSAgMTYsIDB4YzU3MCwgMCwgezB4MDEsMHgwYywweDAwLDB4NDYsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAgfSwKLSAgMTYsIDB4YzU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4YzU5MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDM1LDB4MDgsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzYsMHgwMCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4YzVhMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4NDAsMHgwMCwweGMwLDB4MDAsMHgzMCwweDAwLDB4MGQsMHg0MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4YzViMCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzVjMCwgMCwgezB4MDAsMHgwMCwweDA1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweGMwLDB4NGMgfSwKLSAgMTYsIDB4YzVkMCwgMCwgezB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDA1LDB4MzEsMHg0MSwweDRjLDB4NTAsMHgxMywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEgfSwKLSAgMTYsIDB4YzVlMCwgMCwgezB4NDAsMHg0YywweDcwLDB4NTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxLDB4NDAsMHg0YywweDQwLDB4MTMsMHgxNCwweDA0LDB4YzAgfSwKLSAgMTYsIDB4YzVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA1LDB4NjgsMHhjMSwweDVhLDB4MzAgfSwKLSAgMTYsIDB4YzYwMCwgMCwgezB4NTYsMHg4YywweDE1LDB4YTMsMHgwNSwweDY5LDB4YzEsMHg1YSwweDMwLDB4NDYsMHg4YywweDExLDB4YTcsMHgwMSwweDY4LDB4YzAgfSwKLSAgMTYsIDB4YzYxMCwgMCwgezB4MWEsMHgzMCwweDU2LDB4OGMsMHgxMSwweGEzLDB4MDQsMHg2OCwweGMxLDB4MWEsMHgzMCwweDE2LDB4OGMsMHgxNSwweGEzLDB4MDQgfSwKLSAgMTYsIDB4YzYyMCwgMCwgezB4NjgsMHhjMSwweDVhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDggfSwKLSAgMTYsIDB4YzY0MCwgMCwgezB4MDEsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA4LDB4ODAsMHgwMiwweDYwLDB4MDAsMHg4MCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4YzY1MCwgMCwgezB4MDAsMHgwOSwweDQwLDB4MDIsMHgyMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4YzY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfSwKLSAgMTYsIDB4YzY3MCwgMCwgezB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYyLDB4MDksMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODgsMHg2MCwweDYyLDB4MTAgfSwKLSAgMTYsIDB4YzY4MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MDEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4MCwweDA2LDB4MDEsMHgxMSwweDg4LDB4NDQgfSwKLSAgMTYsIDB4YzY5MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4NDUsMHg1MCwweDExLDB4NTQsMHgwNCwweDU1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCwweDExLDB4NTQgfSwKLSAgMTYsIDB4YzZiMCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQwLDB4NTAsMHgxMCwweDU0LDB4MDQsMHg0NSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAgfSwKLSAgMTYsIDB4YzZjMCwgMCwgezB4MTEsMHgxNCwweDAwLDB4MTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMCwweDExLDB4NDAgfSwKLSAgMTYsIDB4YzZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIgfSwKLSAgMTYsIDB4YzZlMCwgMCwgezB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDAsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMCwweDQyLDB4MDggfSwKLSAgMTYsIDB4YzZmMCwgMCwgezB4NTAsMHg4MiwweDE1LDB4MjAsMHgwNSwweDQ4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4MSwweDQwLDB4MjEgfSwKLSAgMTYsIDB4YzcwMCwgMCwgezB4NDIsMHgwOCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzcxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDg0LDB4NDAgfSwKLSAgMTYsIDB4YzcyMCwgMCwgezB4YTEsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIgfSwKLSAgMTYsIDB4YzczMCwgMCwgezB4ODAsMHg0MCwweGIwLDB4MTAsMHgyOCwweDAwLDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MTAsMHgyOCwweDA0LDB4MDAgfSwKLSAgMTYsIDB4Yzc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAgfSwKLSAgMTYsIDB4Yzc1MCwgMCwgezB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDBkLDB4NGMsMHgwMywweDUzLDB4MDAgfSwKLSAgMTYsIDB4Yzc2MCwgMCwgezB4ZDQsMHhjMCwweDIxLDB4MzAsMHgwOCwweDRjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwOCwweDRjLDB4MDMgfSwKLSAgMTYsIDB4Yzc3MCwgMCwgezB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzc4MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDQsMHg3MCwweDAxLDB4NWMsMHg4MCwweDA3LDB4MjAsMHgyNSwweGM5LDB4MDQsMHg3MiwweDAxLDB4NWMgfSwKLSAgMTYsIDB4Yzc5MCwgMCwgezB4ODAsMHg0NywweDIwLDB4MTUsMHhjOCwweDAwLDB4NzIsMHgwNSwweGRjLDB4ODAsMHg1NywweDIwLDB4MTUsMHhjOCwweDA1LDB4NzIgfSwKLSAgMTYsIDB4YzdhMCwgMCwgezB4MDEsMHgxYywweDkwLDB4NjcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyLDB4MDEsMHgxYywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4YzdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDE4LDB4NDgsMHhjMiwweDEyLDB4MzEgfSwKLSAgMTYsIDB4YzdjMCwgMCwgezB4ODQsMHg4YywweDYxLDB4MDMsMHgxOCwweDQwLDB4YzgsMHgxMiwweDMxLDB4ODQsMHg4YywweDYxLDB4MDMsMHgxOCwweDQ4LDB4YzQgfSwKLSAgMTYsIDB4YzdkMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4MGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg2MSwweDIzLDB4MTggfSwKLSAgMTYsIDB4YzdlMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MjEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzdmMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMgfSwKLSAgMTYsIDB4YzgwMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfSwKLSAgMTYsIDB4YzgxMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGJkLDB4MDAgfSwKLSAgMTYsIDB4YzgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzg2MCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwOSwweDM2LDB4YzIgfSwKLSAgMTYsIDB4Yzg3MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfSwKLSAgMTYsIDB4Yzg4MCwgMCwgezB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDJjLDB4MDAgfSwKLSAgMTYsIDB4Yzg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4MzMgfSwKLSAgMTYsIDB4YzhhMCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYywweDRkLDB4NGUsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYywweDRjLDB4Y2YgfSwKLSAgMTYsIDB4YzhiMCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2MsMHhlOSwweDMzLDB4M2MsMHg0YywweGNmLDB4MTIsMHhiNSwweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MgfSwKLSAgMTYsIDB4YzhjMCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzMsMHhjNCwweGNkLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzhkMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGM3LDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDIzLDB4N2UsMHg0ZSwweDQ3LDB4OTMgfSwKLSAgMTYsIDB4YzhlMCwgMCwgezB4YjcsMHhlNCwweGVkLDB4ZjksMHgzZiwweDdlLDB4NGUsMHhkZSwweDEyLDB4MzcsMHhlNCwweDhkLDB4ZjksMHgzYiwweDdlLDB4NGUgfSwKLSAgMTYsIDB4YzhmMCwgMCwgezB4ZGYsMHg5MywweGY3LDB4ODQsMHg4ZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlZCwweGI5LDB4MDAgfSwKLSAgMTYsIDB4YzkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAyLDB4NzAsMHg0MCwweDljLDB4MTEgfSwKLSAgMTYsIDB4YzkxMCwgMCwgezB4NjcsMHgwNCwweDE5LDB4YzMsMHgwMiwweDcwLDB4NDAsMHg5YywweDEwLDB4MjcsMHgwNCwweDA5LDB4YzEsMHgwMiwweDcwLDB4NDAgfSwKLSAgMTYsIDB4YzkyMCwgMCwgezB4MWMsMHgxMCwweDI3LDB4MTQsMHgwMSwweGMxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHg1MCwweDA3LDB4MDQsMHgwOSwweGMxLDB4MDIgfSwKLSAgMTYsIDB4YzkzMCwgMCwgezB4NzAsMHg0MCwweDljLDB4MTAsMHg2NywweDE0LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Yzk0MCwgMCwgezB4MDAsMHgwMCwweDA0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGM0LDB4MDUsMHg3MSwweDAxLDB4NWMgfSwKLSAgMTYsIDB4Yzk1MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNiwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTAsMHhjNCwweDA1LDB4NzEgfSwKLSAgMTYsIDB4Yzk2MCwgMCwgezB4MDEsMHg1YywweDY0LDB4MDMsMHgxMCwweDU1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzAgfSwKLSAgMTYsIDB4Yzk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4Yzk4MCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIxLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4Yzk5MCwgMCwgezB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNSwweGMyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyNCwweDE3LDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4YzlhMCwgMCwgezB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4YzliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDg0LDB4MDAsMHg2MCwweDAwLDB4MTggfSwKLSAgMTYsIDB4YzljMCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMSwweDE4LDB4MDAsMHgwNiwweDEwLDB4OTEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4YzlkMCwgMCwgezB4MDAsMHgxOCwweDQ2LDB4NDYsMHgxOCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgxMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4YzllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4NzMsMHgwMSwweDFjLDB4ODAgfSwKLSAgMTYsIDB4YzlmMCwgMCwgezB4MDcsMHgyMCwweDAxLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4NDcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEgfSwKLSAgMTYsIDB4Y2EwMCwgMCwgezB4MWMsMHg4MCwweDQ3LDB4MjIsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDA3LDB4MjAsMHgxMSwweGM4LDB4MDQgfSwKLSAgMTYsIDB4Y2ExMCwgMCwgezB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDI4LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2EyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTggfSwKLSAgMTYsIDB4Y2EzMCwgMCwgezB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NDYsMHgwNCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2E1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwZCwweDA0LDB4MjIsMHgwMSwweDA4LDB4ODAgfSwKLSAgMTYsIDB4Y2E2MCwgMCwgezB4MDIsMHgyMCwweDAwLDB4OTAsMHgwNCwweDI3LDB4ODEsMHgwOCwweDgwLDB4NDIsMHgyMCwweDEwLDB4OTgsMHgwNCwweDI0LDB4MDEgfSwKLSAgMTYsIDB4Y2E3MCwgMCwgezB4MDgsMHg4MCwweDQyLDB4NDgsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDksMHg0MCwweDQyLDB4NjAsMHgxMCwweDg4LDB4MDQgfSwKLSAgMTYsIDB4Y2E4MCwgMCwgezB4MjIsMHgwMSwweDA4LDB4YzAsMHgwMiwweDQwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2E5MCwgMCwgezB4MDAsMHgwMCwweDJhLDB4MDQsMHg0YiwweDgxLDB4MTIsMHhhMCwweDA0LDB4YTgsMHgwMSwweDJhLDB4MDQsMHg0YSwweDgxLDB4MTIgfSwKLSAgMTYsIDB4Y2FhMCwgMCwgezB4YTAsMHg0NCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NDgsMHg4MCwweDEyLDB4YTAsMHg0NCwweDg4LDB4MDEsMHgyYSwweDA0LDB4NGEgfSwKLSAgMTYsIDB4Y2FiMCwgMCwgezB4ODEsMHgxMiwweDIwLDB4MDQsMHhhYywweDExLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiwweGIwLDB4NDQsMHg5YywweDExLDB4MDAgfSwKLSAgMTYsIDB4Y2FjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHgwYywweDAwLDB4NTMsMHgwMCwweDE0LDB4YzAgfSwKLSAgMTYsIDB4Y2FkMCwgMCwgezB4MDUsMHgzMCwweDAxLDB4NDQsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwLDB4MDUsMHgzMCwweDA0LDB4MGMsMHgwMCwweDUzLDB4MDAgfSwKLSAgMTYsIDB4Y2FlMCwgMCwgezB4MTQsMHhjMCwweDA1LDB4YjAsMHgwMSwweDRjLDB4MDAsMHg1MywweDAwLDB4MTYsMHhjMCwweDAxLDB4MzAsMHgwMSwweDRjLDB4MDAgfSwKLSAgMTYsIDB4Y2FmMCwgMCwgezB4NTMsMHgwMCwweDE0LDB4YzAsMHgwMSwweDM4LDB4MDAsMHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2IwMCwgMCwgezB4MDgsMHhjMCwweDAwLDB4MTAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDEwLDB4MDAsMHg0NCwweDgwLDB4MTAgfSwKLSAgMTYsIDB4Y2IxMCwgMCwgezB4MDAsMHgwNCwweDAwLDB4MDEsMHgxMCwweDAwLDB4NDYsMHgwMCwweDAwLDB4MDAsMHgwNCwweDYwLDB4MDEsMHgwMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4Y2IyMCwgMCwgezB4MDAsMHgxMSwweDYwLDB4MDIsMHg0MCwweDAxLDB4MDAsMHgxMCwweDQwLDB4MDAsMHgxMCwweDYwLDB4MDEsMHg1MCwweDEwLDB4NDAgfSwKLSAgMTYsIDB4Y2IzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4Y2I0MCwgMCwgezB4MjAsMHgwMCwweDA4LDB4MDgsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I1MCwgMCwgezB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDIgfSwKLSAgMTYsIDB4Y2I2MCwgMCwgezB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMSwweDAwLDB4MDgsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2I3MCwgMCwgezB4MDgsMHhjMCwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4MTggfSwKLSAgMTYsIDB4Y2I4MCwgMCwgezB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweGM4LDB4MDAsMHg0NiwweDAwLDB4MTksMHg4MCwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2I5MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgwMCwweDExLDB4ODAgfSwKLSAgMTYsIDB4Y2JhMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4Y2JiMCwgMCwgezB4MjYsMHgwMCwweDA5LDB4ODEsMHgwMiwweDYwLDB4MDEsMHg5OCwweDAwLDB4MjYsMHgwMCwweDA5LDB4ODAsMHgwNiwweDYyLDB4MDAgfSwKLSAgMTYsIDB4Y2JjMCwgMCwgezB4NDgsMHgwMCwweDI2LDB4MjAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDA3LDB4MDAsMHgwOSwweDgwLDB4MDIgfSwKLSAgMTYsIDB4Y2JkMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTEsMHg4MiwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2JlMCwgMCwgezB4NDAsMHg0NSwweDQyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDg1LDB4OGMgfSwKLSAgMTYsIDB4Y2JmMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDQ4LDB4MTEsMHg4MiwweDA0LDB4MzAgfSwKLSAgMTYsIDB4Y2MwMCwgMCwgezB4ODEsMHg4ZCwweDIwLDB4NDYsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwYywweDEwLDB4YzAgfSwKLSAgMTYsIDB4Y2MxMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDQsMHgwMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAgfSwKLSAgMTYsIDB4Y2MyMCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDEwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAgfSwKLSAgMTYsIDB4Y2MzMCwgMCwgezB4MDgsMHgwMCwweDAzLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAgfSwKLSAgMTYsIDB4Y2M0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAsMHhjMCwweDEwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2M1MCwgMCwgezB4NDAsMHgwMCwweDAyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMSwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMgfSwKLSAgMTYsIDB4Y2M2MCwgMCwgezB4MjAsMHgwMywweDA4LDB4MDAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHgwMywweDBjLDB4MTAsMHhjMiwweDAwLDB4MzAgfSwKLSAgMTYsIDB4Y2M3MCwgMCwgezB4ODAsMHgwYywweGIwLDB4NDMsMHgwOCwweDAwLDB4YzIsMHgwMCwweDMwLDB4ODAsMHgwYywweDIwLDB4MDMsMHgyOCwweDEwLDB4YzAgfSwKLSAgMTYsIDB4Y2M4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4Y2M5MCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4ODEgfSwKLSAgMTYsIDB4Y2NhMCwgMCwgezB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2NiMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDBjLDB4MTEsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2NjMCwgMCwgezB4NDAsMHgwMSwweDQyLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MDggfSwKLSAgMTYsIDB4Y2NkMCwgMCwgezB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDBjLDB4MjAsMHgwMiwweDA4LDB4MDAsMHhjMiwweDAwLDB4MjAgfSwKLSAgMTYsIDB4Y2NlMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2NmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDEsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfSwKLSAgMTYsIDB4Y2QwMCwgMCwgezB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwMCwweDYwLDB4YzEgfSwKLSAgMTYsIDB4Y2QxMCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MGMsMHgxMCwweGMyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgzMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2QyMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTAsMHg4MCwweDAwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2QzMCwgMCwgezB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwMCwweDQ1LDB4MDAsMHgxMSwweDQwLDB4MDQsMHg1MCwweDAwLDB4MTQgfSwKLSAgMTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDAwLDB4NTAsMHgwMCwweDA0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTAgfSwKLSAgMTYsIDB4Y2Q1MCwgMCwgezB4MDAsMHgxNCwweDAwLDB4MDEsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4Y2Q2MCwgMCwgezB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAgfSwKLSAgMTYsIDB4Y2Q3MCwgMCwgezB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAgfSwKLSAgMTYsIDB4Y2Q4MCwgMCwgezB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDA2LDB4MDAgfSwKLSAgMTYsIDB4Y2Q5MCwgMCwgezB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2RhMCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMSwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAgfSwKLSAgMTYsIDB4Y2RiMCwgMCwgezB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAsMHg4MCwweDQwLDB4MjEsMHgxMCwweDA4LDB4MDQsMHgwMiwweDAxLDB4MDAgfSwKLSAgMTYsIDB4Y2RjMCwgMCwgezB4ODAsMHg0MCwweDMwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgxMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4Y2RkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfSwKLSAgMTYsIDB4Y2RlMCwgMCwgezB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAgfSwKLSAgMTYsIDB4Y2RmMCwgMCwgezB4ZDQsMHg2MCwweDM1LDB4MTAsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg0MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMgfSwKLSAgMTYsIDB4Y2UwMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2UxMCwgMCwgezB4MDAsMHgwMSwweDQ2LDB4MDQsMHg3MSwweDgxLDB4MWMsMHg2MCwweDA3LDB4MTgsMHgxMSwweGNlLDB4MDQsMHg3MSwweDgxLDB4MWMgfSwKLSAgMTYsIDB4Y2UyMCwgMCwgezB4NjAsMHg0NywweDE4LDB4MDEsMHhjNiwweDA0LDB4NzEsMHg4MSwweDljLDB4NjAsMHg0NywweDE4LDB4MTksMHhjNiwweDA0LDB4NzEgfSwKLSAgMTYsIDB4Y2UzMCwgMCwgezB4ODAsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NDcsMHgxOCwweDExLDB4YzAgfSwKLSAgMTYsIDB4Y2U0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHg0NiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAgfSwKLSAgMTYsIDB4Y2U1MCwgMCwgezB4MjcsMHgxOCwweDA5LDB4YzYsMHgwNiwweDcxLDB4ODAsMHgxYywweDYwLDB4MjcsMHgxOCwweDA5LDB4YzYsMHgwMSwweDMxLDB4ODAgfSwKLSAgMTYsIDB4Y2U2MCwgMCwgezB4MWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MTIgfSwKLSAgMTYsIDB4Y2U3MCwgMCwgezB4NzEsMHg4MCwweDljLDB4NjAsMHgzMywweDE4LDB4MDEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2U4MCwgMCwgezB4NTAsMHg0NSwweDQ2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgwLDB4NWMgfSwKLSAgMTYsIDB4Y2U5MCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDAxLDB4MzEsMHg4MSwweDBjLDB4NjAsMHgxNywweDE4LDB4MTAsMHhjNiwweDA1LDB4NzEgfSwKLSAgMTYsIDB4Y2VhMCwgMCwgezB4ODEsMHg1YywweDYwLDB4MDMsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTMsMHgxOCwweDE4LDB4ODIgfSwKLSAgMTYsIDB4Y2ViMCwgMCwgezB4MTAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDAsMHgxMiwweDAxLDB4MjQsMHg4MCwweDQ4LDB4MjAgfSwKLSAgMTYsIDB4Y2VjMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDI0LDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfSwKLSAgMTYsIDB4Y2VkMCwgMCwgezB4NTgsMHgyMCwweDUyLDB4MGMsMHgwNSwweDgyLDB4MDEsMHgyMCwweDgwLDB4NDksMHgyMCwweDAyLDB4MDgsMHgwNCwweDgyLDB4MDEgfSwKLSAgMTYsIDB4Y2VlMCwgMCwgezB4MjAsMHg4MCwweDQ5LDB4MjAsMHgxMiwweDQ4LDB4MDQsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2VmMCwgMCwgezB4NDAsMHgwNCwweDA2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDQsMHg2MSwweDgwLDB4MTggfSwKLSAgMTYsIDB4Y2YwMCwgMCwgezB4NjAsMHgwNiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MSwweDQ4LDB4NjAsMHgwNiwweDE4LDB4MTQsMHg4NiwweDAwLDB4NjEgfSwKLSAgMTYsIDB4Y2YxMCwgMCwgezB4ODAsMHgxOCwweDYwLDB4NDIsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODAsMHgxOCwweDYwLDB4MDYsMHgxOCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4Y2YyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg2MCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAgfSwKLSAgMTYsIDB4Y2YzMCwgMCwgezB4NDcsMHg4MCwweDExLDB4ZTgsMHgwMCwweDc4LDB4MDEsMHgxZSwweDAwLDB4NDcsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEgfSwKLSAgMTYsIDB4Y2Y0MCwgMCwgezB4MWUsMHgwMCwweDQzLDB4ODAsMHgxMSwweGUwLDB4MDQsMHg3OCwweDAxLDB4MWUsMHgwMCwweDAzLDB4ODAsMHgxNSwweGUwLDB4MDQgfSwKLSAgMTYsIDB4Y2Y1MCwgMCwgezB4NzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhjMCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2Y2MCwgMCwgezB4NDAsMHgwMSwweDEyLDB4MDAsMHg2NCwweDgwLDB4MTgsMHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2NCwweDgwLDB4MTggfSwKLSAgMTYsIDB4Y2Y3MCwgMCwgezB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4LDB4MzAsMHgwMiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAgfSwKLSAgMTYsIDB4Y2Y4MCwgMCwgezB4ODAsMHgxOSwweDMwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOSwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAgfSwKLSAgMTYsIDB4Y2Y5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4Y2ZhMCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwMCwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIwLDB4ODEgfSwKLSAgMTYsIDB4Y2ZiMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfSwKLSAgMTYsIDB4Y2ZjMCwgMCwgezB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Y2ZkMCwgMCwgezB4NDAsMHg0NSwweDQyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDQ0LDB4MDgsMHgxMSwweDAyLDB4MDAsMHg0MCwweDgxLDB4MTAgfSwKLSAgMTYsIDB4Y2ZlMCwgMCwgezB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDA4LDB4MDEsMHgwMiwweDA0LDB4NDAgfSwKLSAgMTYsIDB4Y2ZmMCwgMCwgezB4ODEsMHgxMCwweDIxLDB4MDAsMHgwYywweDExLDB4MDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDAxLDB4MDAgfSwKLSAgMTYsIDB4ZDAwMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwMywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAgfSwKLSAgMTYsIDB4ZDAxMCwgMCwgezB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAgfSwKLSAgMTYsIDB4ZDAyMCwgMCwgezB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQzLDB4MDAgfSwKLSAgMTYsIDB4ZDAzMCwgMCwgezB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDA0LDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA5LDB4MDAsMHg0MiwweDAxLDB4MTAgfSwKLSAgMTYsIDB4ZDA1MCwgMCwgezB4ODAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4MDAsMHgwNCwweDIwLDB4MDEsMHgwOCwweDAwLDB4NDIgfSwKLSAgMTYsIDB4ZDA2MCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgwLDB4MDQsMHgyMCwweDExLDB4MDAgfSwKLSAgMTYsIDB4ZDA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfSwKLSAgMTYsIDB4ZDA4MCwgMCwgezB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHgwMCwweDIwLDB4MjAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZDA5MCwgMCwgezB4ODAsMHhhMCwweDAwLDB4MGEsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODAsMHgzNCwweDYyLDB4MjgsMHgwOCwweDAyLDB4MDIgfSwKLSAgMTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MzAsMHgyMCwweDBjLDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDBiMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDQsMHg2MCwweDAxLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAzLDB4MTggfSwKLSAgMTYsIDB4ZDBjMCwgMCwgezB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA2LDB4NjAsMHgwMSwweDk4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAgfSwKLSAgMTYsIDB4ZDBkMCwgMCwgezB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAgfSwKLSAgMTYsIDB4ZDBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHgwMCwweDAyLDB4NjAsMHgwMCwweDk4LDB4MDAgfSwKLSAgMTYsIDB4ZDBmMCwgMCwgezB4MjYsMHgwMCwweDA5LDB4ODAsMHgwMiwweDY0LDB4MDAsMHg5OCwweDAwLDB4MjYsMHgwMCwweDE5LDB4OTAsMHgwMiwweDYwLDB4MDAgfSwKLSAgMTYsIDB4ZDEwMCwgMCwgezB4MWQsMHgwMCwweDI2LDB4MDAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAwLDB4OTksMHgwMCwweDA2LDB4NDAsMHgxOSwweDgwLDB4MDIgfSwKLSAgMTYsIDB4ZDExMCwgMCwgezB4NjAsMHgwMCwweDk4LDB4MDAsMHg2NiwweDAwLDB4MDEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDEyMCwgMCwgezB4NDAsMHg0NSwweDYwLDB4MDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQzLDB4ODAsMHgxMCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MGUgfSwKLSAgMTYsIDB4ZDEzMCwgMCwgezB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDFhLDB4MDAsMHg0MywweDgwLDB4MTEsMHhhMCwweDA0LDB4MzggfSwKLSAgMTYsIDB4ZDE0MCwgMCwgezB4MDEsMHgwZSwweDAwLDB4MDIsMHg4MCwweDQwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDE4LDB4ODAgfSwKLSAgMTYsIDB4ZDE1MCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDUwLDB4MDQsMHgwMSwweDAwLDB4MzAsMHg0MCwweDBjLDB4MTAgfSwKLSAgMTYsIDB4ZDE2MCwgMCwgezB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4YzEsMHgwMCwweDMwLDB4NDAgfSwKLSAgMTYsIDB4ZDE3MCwgMCwgezB4MDgsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHg3OCwweDAyLDB4MTQsMHgwMCwweGMxLDB4MDAgfSwKLSAgMTYsIDB4ZDE4MCwgMCwgezB4MzAsMHg0MCwweDBjLDB4MTAsMHgwMywweDA0LDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDE5MCwgMCwgezB4NDAsMHgwMCwweDA1LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg1MCwweDAzLDB4MTQsMHgwMCwweGM1LDB4MDAsMHgzNSwweDQwLDB4MGMgfSwKLSAgMTYsIDB4ZDFhMCwgMCwgezB4NTAsMHgwMywweDE0LDB4MTAsMHhkNSwweDAwLDB4MzEsMHg0MSwweDBkLDB4NTAsMHgwMywweDE0LDB4MTAsMHhjNSwweDAwLDB4MzEgfSwKLSAgMTYsIDB4ZDFiMCwgMCwgezB4NDAsMHgwZCwweDQ4LDB4NDMsMHg1NCwweDEwLDB4YzUsMHgwMCwweDMxLDB4NDAsMHgwYywweDQwLDB4NDMsMHgxMCwweDAwLDB4YzIgfSwKLSAgMTYsIDB4ZDFjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MywweDA0LDB4NjAsMHhjMSwweDE4LDB4MzAgfSwKLSAgMTYsIDB4ZDFkMCwgMCwgezB4NDYsMHgwYywweDExLDB4ODMsMHgwNCwweDYxLDB4YzEsMHgxOCwweDMwLDB4NDYsMHgwYywweDAxLDB4ODcsMHgwNCwweDYwLDB4YzEgfSwKLSAgMTYsIDB4ZDFlMCwgMCwgezB4MTgsMHgzMCwweDQ2LDB4MDgsMHgxMSwweDgzLDB4MDQsMHg2MCwweGMxLDB4MTgsMHgyMCwweDA2LDB4MGMsMHgwMSwweDgzLDB4MDQgfSwKLSAgMTYsIDB4ZDFmMCwgMCwgezB4NjAsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHg4MCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDIwMCwgMCwgezB4NDAsMHgwMSwweDQwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZDIxMCwgMCwgezB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MSwweDAwLDB4MjAsMHgwMCwweDA4LDB4ODAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwLDB4MjAgfSwKLSAgMTYsIDB4ZDIyMCwgMCwgezB4MDAsMHgwOCwweDQwLDB4NDMsMHgzMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfSwKLSAgMTYsIDB4ZDIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDEsMHg0OCwweDQ0LDB4NjIsMHgxMSwweDE4LDB4ODQgfSwKLSAgMTYsIDB4ZDI0MCwgMCwgezB4NDYsMHgyMSwweDExLDB4ODgsMHg0NCwweDYzLDB4MDEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDAxLDB4ODgsMHgwNCwweDYyLDB4MTEgfSwKLSAgMTYsIDB4ZDI1MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MjEsMHgxMCwweGM4LDB4NDQsMHg2MiwweDExLDB4MTgsMHgwNSwweDQzLDB4MDEsMHg4MSwweDg4LDB4NDQgfSwKLSAgMTYsIDB4ZDI2MCwgMCwgezB4NjIsMHgxMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDI3MCwgMCwgezB4NDAsMHg0NSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwNCwweDQ1LDB4MDEsMHgxMSwweDQwLDB4NDQsMHg1MCwweDAxLDB4MTQgfSwKLSAgMTYsIDB4ZDI4MCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MDEsMHg0MCwweDQ1LDB4MDAsMHgxMCwweDE0LDB4MDQsMHg0NSwweDAzLDB4MDAsMHg0MCwweDQ0LDB4NTAgfSwKLSAgMTYsIDB4ZDI5MCwgMCwgezB4MTEsMHgxNCwweDA0LDB4MDEsMHgwNSwweDQxLDB4NDAsMHg0NCwweDUwLDB4MTEsMHgxNCwweDA0LDB4MDUsMHgwMSwweDAxLDB4NDAgfSwKLSAgMTYsIDB4ZDJhMCwgMCwgezB4MTEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODIgfSwKLSAgMTYsIDB4ZDJiMCwgMCwgezB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDggfSwKLSAgMTYsIDB4ZDJjMCwgMCwgezB4MTAsMHg4MiwweDA1LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4YSwweDA1LDB4MjAsMHgwNSwweDA4LDB4MjAgfSwKLSAgMTYsIDB4ZDJkMCwgMCwgezB4NDIsMHgwOCwweDEwLDB4ODIsMHgwNCwweDIyLDB4ODEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAyLDB4MDEsMHgwMiwweDgwLDB4NDAgfSwKLSAgMTYsIDB4ZDJmMCwgMCwgezB4YTAsMHgxMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgwMCwweDI5LDB4MDQsMHgwYSwweDAxLDB4MDIgfSwKLSAgMTYsIDB4ZDMwMCwgMCwgezB4ODAsMHg0MCwweGE0LDB4MDAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGE4LDB4MTAsMHgyYiwweDE0LDB4MDAgfSwKLSAgMTYsIDB4ZDMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAgfSwKLSAgMTYsIDB4ZDMyMCwgMCwgezB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQwLDB4MzUsMHgzNCwweDBkLDB4NGQsMHgwMywweDUzLDB4NDAgfSwKLSAgMTYsIDB4ZDMzMCwgMCwgezB4ZDQsMHhkMCwweDIxLDB4MzQsMHg0ZCwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkOSwweDYxLDB4MzQsMHgwNCwweDBkLDB4MDMgfSwKLSAgMTYsIDB4ZDM0MCwgMCwgezB4NTMsMHg0MCwweGMwLDB4ZDgsMHgzNSwweDM3LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDM1MCwgMCwgezB4NDAsMHgwMSwweDQ4LDB4MDQsMHg3MiwweDAwLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMgfSwKLSAgMTYsIDB4ZDM2MCwgMCwgezB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMCwweDljLDB4ODAsMHg0NywweDIwLDB4MTksMHhjOCwweDAwLDB4NzIgfSwKLSAgMTYsIDB4ZDM3MCwgMCwgezB4MDEsMHgxYywweDg4LDB4NjcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgyLDB4NDcsMHgyMiwweDExLDB4YzAgfSwKLSAgMTYsIDB4ZDM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA4LDB4NDgsMHhjMiwweDEyLDB4MzEgfSwKLSAgMTYsIDB4ZDM5MCwgMCwgezB4ODQsMHg4YywweDYxLDB4MjMsMHgxMCwweDQwLDB4YzAsMHgxMiwweDMxLDB4ODQsMHg4YywweDYxLDB4MDMsMHgxMCwweDQ4LDB4YzQgfSwKLSAgMTYsIDB4ZDNhMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4OGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg0MSwweDIzLDB4MTggfSwKLSAgMTYsIDB4ZDNiMCwgMCwgezB4NDgsMHhjNiwweDEyLDB4MzAsMHg4NCwweDhjLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDNjMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMgfSwKLSAgMTYsIDB4ZDNkMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfSwKLSAgMTYsIDB4ZDNlMCwgMCwgezB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGRkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4MDAgfSwKLSAgMTYsIDB4ZDNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDQzMCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIgfSwKLSAgMTYsIDB4ZDQ0MCwgMCwgezB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIgfSwKLSAgMTYsIDB4ZDQ1MCwgMCwgezB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDRjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MDAgfSwKLSAgMTYsIDB4ZDQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDVjLDB4NGMsMHhkNywweDEzLDB4MzMgfSwKLSAgMTYsIDB4ZDQ3MCwgMCwgezB4YzQsMHhjYywweGYxLDB4MzMsMHgzYSwweDRhLDB4ZDYsMHg5MywweDMzLDB4YzQsMHhjYywweGYxLDB4MmIsMHgzYSwweDRjLDB4Y2YgfSwKLSAgMTYsIDB4ZDQ4MCwgMCwgezB4MTMsMHgzMywweGM0LDB4Y2MsMHhlOSwweDMzLDB4M2MsMHg0YywweGNmLDB4MTIsMHhiNSwweGE0LDB4YWMsMHhjOSwweDMzLDB4M2MgfSwKLSAgMTYsIDB4ZDQ5MCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzUsMHhjNCwweGNkLDB4NjksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDRhMCwgMCwgezB4MDAsMHgwMCwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMsMHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRmLDB4OTMgfSwKLSAgMTYsIDB4ZDRiMCwgMCwgezB4YjcsMHhlNCwweGVkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZSwweDEyLDB4MzcsMHhlNCwweGVkLDB4ZTEsMHgzYiwweDdlLDB4NGUgfSwKLSAgMTYsIDB4ZDRjMCwgMCwgezB4ZGYsMHg5MiwweDMxLDB4ODQsMHg4ZCwweGQ5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlYywweDYxLDB4MDAgfSwKLSAgMTYsIDB4ZDRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg0LDB4MDQsMHhhMSwweDgzLDB4MmMgfSwKLSAgMTYsIDB4ZDRlMCwgMCwgezB4MDMsMHgwYSwweDEwLDB4ODIsMHhjMSwweDM0LDB4MTAsMHg4ZiwweDAwLDB4NDAsMHgwOSwweDE0LDB4MDIsMHgwMywweDE0LDB4OTEgfSwKLSAgMTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgwOCwweDQyLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweDMxLDB4Y2EsMHgwYywweDUyLDB4MDIsMHgxMCwweDgwLDB4ODUgfSwKLSAgMTYsIDB4ZDUwMCwgMCwgezB4MDAsMHgyMSwweDgyLDB4MjgsMHg0MCwweDBhLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDUxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDQsMHgwMiwweDAxLDB4NDAsMHg4MCwweDczLDB4MjgsMHgxMCwweDQ4LDB4MDcsMHgwNiwweDAxLDB4MDQgfSwKLSAgMTYsIDB4ZDUyMCwgMCwgezB4YTQsMHg0MSwweDIxLDB4MTQsMHgwOCwweDQ0LDB4MDYsMHgxMSwweDQwLDB4ODAsMHg3MCwweDIwLDB4MTQsMHgwYSwweDA0LDB4MDIgfSwKLSAgMTYsIDB4ZDUzMCwgMCwgezB4MDAsMHhjOCwweDg0LDB4NDEsMHgyMSwweDFjLDB4MDgsMHgwNiwweDEyLDB4MDEsMHhjMCwweDgwLDB4NjAsMHgyMCwweDE0LDB4MDAgfSwKLSAgMTYsIDB4ZDU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDg0LDB4MDQsMHgyMSwweDgyLDB4MDggfSwKLSAgMTYsIDB4ZDU1MCwgMCwgezB4NTMsMHgwMiwweDEwLDB4ODAsMHhjNSwweDAwLDB4ODEsMHg0YSwweDA0LDB4NDIsMHgwMiwweDE0LDB4MDAsMHgwNCwweDIwLDB4MjEgfSwKLSAgMTYsIDB4ZDU2MCwgMCwgezB4ODAsMHhhOCwweDcyLDB4MjIsMHgxYywweDg4LDB4YzQsMHgwNiwweGExLDB4NDIsMHg4YywweDUyLDB4MjIsMHgxYywweDg4LDB4ODUgfSwKLSAgMTYsIDB4ZDU3MCwgMCwgezB4MjYsMHgyMSwweGMwLDB4ODgsMHg1MCwweDIyLDB4MTgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDU4MCwgMCwgezB4MDAsMHgwMCwweDAyLDB4NDQsMHgwMCwweDAxLDB4MDEsMHgwMCwweDYyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDEgfSwKLSAgMTYsIDB4ZDU5MCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MWMsMHgwMCwweDQ0LDB4MDQsMHgwMSwweDAyLDB4MjAsMHg2MiwweDAwLDB4MWMsMHg4MCwweDA0LDB4MDQgfSwKLSAgMTYsIDB4ZDVhMCwgMCwgezB4ODAsMHg4OSwweDIwLDB4NTAsMHgwOCwweDE0LDB4ODAsMHgwNCwweDI0LDB4MDEsMHhjMSwweDAwLDB4NTAsMHgwMCwweDE4LDB4MDAgfSwKLSAgMTYsIDB4ZDViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDgwLDB4MzgsMHgyMCwweDA0LDB4MGMgfSwKLSAgMTYsIDB4ZDVjMCwgMCwgezB4MzEsMHgwYSwweDAwLDB4MDAsMHgwMiwweDE4LDB4MjAsMHg4YywweGE4LDB4MTAsMHgyOCwweDA4LDB4ODgsMHhjMSwweDE0LDB4MTAgfSwKLSAgMTYsIDB4ZDVkMCwgMCwgezB4YzYsMHgwMCwweDIyLDB4MDMsMHgwOCwweDAyLDB4MDEsMHgwOCwweGIwLDB4MDAsMHgwYywweDIxLDB4MDIsMHgwMCwweDgyLDB4ODAgfSwKLSAgMTYsIDB4ZDVlMCwgMCwgezB4MDgsMHgwMCwweDQ5LDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDgwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgwNCwweDAyLDB4NDMsMHgyMCwweDAwLDB4NDAgfSwKLSAgMTYsIDB4ZDYwMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDQsMHg0MiwweDAxLDB4MTAsMHg4MCwweDg0LDB4MjAsMHgxMSwweDA4LDB4MDQsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDYxMCwgMCwgezB4MDAsMHg0NCwweDI0LDB4MjAsMHgwOSwweDA4LDB4NDAsMHgwMywweDAwLDB4OTAsMHhjNCwweDIwLDB4MjAsMHgwOCwweDBjLDB4MDIgfSwKLSAgMTYsIDB4ZDYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDgxLDB4MDgsMHgyMCwweDA0LDB4ODggfSwKLSAgMTYsIDB4ZDYzMCwgMCwgezB4MDIsMHgyMiwweDA4LDB4MDgsMHhjMywweDJhLDB4OTAsMHg0MCwweDg0LDB4MTAsMHgyMCwweDA0LDB4ODAsMHhjMiwweDI2LDB4MjAgfSwKLSAgMTYsIDB4ZDY0MCwgMCwgezB4NDksMHg4OCwweDIyLDB4MjIsMHgwYywweDA4LDB4YzEsMHgyNiwweGEwLDB4YzksMHg4YywweDEyLDB4MmEsMHgwNCwweDg4LDB4NDMgfSwKLSAgMTYsIDB4ZDY1MCwgMCwgezB4MGUsMHhhMCwweGNiLDB4ODgsMHgxMCwweDIyLDB4MGMsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDY2MCwgMCwgezB4MDgsMHgwMCwweDBhLDB4NDAsMHgzMiwweDAwLDB4MDEsMHg4MCwweDMxLDB4MjgsMHgwMCwweDAwLDB4MDEsMHgxMiwweDgwLDB4OGQgfSwKLSAgMTYsIDB4ZDY3MCwgMCwgezB4ODQsMHgwMCwweDI4LDB4MGMsMHgwOCwweDAxLDB4MzIsMHgwMCwweDhjLDB4ODAsMHgwMiwweDIwLDB4MGMsMHgwOCwweDAxLDB4MmUgfSwKLSAgMTYsIDB4ZDY4MCwgMCwgezB4MDAsMHhjMywweDgwLDB4MDIsMHgyMCwweDA0LDB4MDgsMHg0MywweDAyLDB4MDAsMHg0MCwweDgwLDB4MTAsMHgyMCwweDA0LDB4MDIgfSwKLSAgMTYsIDB4ZDY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDg3LDB4MGEsMHgyMSwweDA0LDB4ODggfSwKLSAgMTYsIDB4ZDZhMCwgMCwgezB4MTEsMHgyYSwweDFjLDB4MGEsMHgwNiwweDIyLDB4MjEsMHg0MCwweGEwLDB4NDIsMHgyYSwweDEwLDB4ODgsMHg4NSwweDBhLDB4YTEgfSwKLSAgMTYsIDB4ZDZiMCwgMCwgezB4MDYsMHhhNCwweDYyLDB4MjIsMHgxYywweDBhLDB4YzQsMHgwMiwweDIxLDB4ODAsMHg4YywweDUyLDB4MjIsMHgxNCwweDQ4LDB4ODYgfSwKLSAgMTYsIDB4ZDZjMCwgMCwgezB4MjIsMHgyMCwweDA4LDB4YTgsMHg2MCwweDJhLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDZkMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4NDUsMHgwNiwweDAxLDB4ODksMHg4MCwweDYzLDB4MjAsMHgxYywweDg4LDB4NDAsMHgzNCwweDExLDB4MDEgfSwKLSAgMTYsIDB4ZDZlMCwgMCwgezB4YTQsMHg1MCwweDI4LDB4MTgsMHg0OCwweDA0LDB4MGUsMHgwMSwweDRiLDB4ODAsMHg3MywweDI4LDB4MWMsMHg4YSwweDA0LDB4MDYgfSwKLSAgMTYsIDB4ZDZmMCwgMCwgezB4OTEsMHg0OSwweDA0LDB4NjMsMHgyMCwweDFjLDB4OGEsMHgwNiwweDI2LDB4MDEsMHg4NSwweDgwLDB4NzAsMHgyMCwweDE4LDB4MDIgfSwKLSAgMTYsIDB4ZDcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDg1LDB4MDAsMHhiMSwweDQ1LDB4MmMgfSwKLSAgMTYsIDB4ZDcxMCwgMCwgezB4NzAsMHgwMiwweDE0LDB4YzAsMHgwNywweDA4LDB4MjEsMHg0OSwweDAwLDB4NDIsMHgwMSwweDE0LDB4ODIsMHgwNSwweDAwLDB4MTEgfSwKLSAgMTYsIDB4ZDcyMCwgMCwgezB4ODQsMHgwMCwweDUyLDB4MDIsMHgxYywweDAwLDB4YzQsMHgwMCwweDIxLDB4YzQsMHgyYywweDUzLDB4MDIsMHgxYywweDAyLDB4ODEgfSwKLSAgMTYsIDB4ZDczMCwgMCwgezB4MDQsMHhhMSwweGNkLDB4MDgsMHg1MCwweDAyLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDc0MCwgMCwgezB4MDgsMHgxMCwweDEyLDB4MDQsMHgzNCwweDAxLDB4Y2MsMHgwMCwweDczLDB4NDAsMHgxYywweDkwLDB4NDUsMHgwNCwweDAxLDB4NDggfSwKLSAgMTYsIDB4ZDc1MCwgMCwgezB4MDQsMHg2MCwweDQxLDB4MTgsMHhjMCwweDQ0LDB4MDQsMHgwMSwweDA1LDB4MDQsMHg3MywweDQ4LDB4MTQsMHg1MCwweDQ3LDB4MzQgfSwKLSAgMTYsIDB4ZDc2MCwgMCwgezB4MDEsMHg0NSwweDIwLDB4NjIsMHgwOCwweDFjLDB4YzIsMHgwNCwweDBjLDB4ODEsMHhjNywweDAwLDB4NzMsMHg4MCwweDE4LDB4YzIgfSwKLSAgMTYsIDB4ZDc3MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgxMCwweDg0LDB4MTAsMHgyMSwweGNjLDB4MjggfSwKLSAgMTYsIDB4ZDc4MCwgMCwgezB4NDIsMHgwMiwweDE0LDB4MTIsMHhjNSwweDEwLDB4MjEsMHg4NCwweDA0LDB4NDAsMHgwMCwweDFjLDB4ODAsMHg4NCwweDAwLDB4OTEgfSwKLSAgMTYsIDB4ZDc5MCwgMCwgezB4MDAsMHgwOCwweDczLDB4ODIsMHgxYywweDkwLDB4MDUsMHgwYywweDAxLDB4Y2YsMHgwYywweDQwLDB4MDIsMHgxNCwweDMwLDB4NDUgfSwKLSAgMTYsIDB4ZDdhMCwgMCwgezB4MjAsMHhhMSwweGMwLDB4MDgsMHg1MCwweDAyLDB4MTAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4NDUsMHgwYywweDgxLDB4MDAsMHgwMCwweDAxLDB4MDgsMHgwOCwweDAwLDB4MDUsMHgxOCwweDkxLDB4MDUgfSwKLSAgMTYsIDB4ZDdjMCwgMCwgezB4MDQsMHgwMCwweDAxLDB4MDQsMHg0MCwweDA2LDB4MTgsMHgwMCwweDAyLDB4MjQsMHg3MCwweDQwLDB4MDQsMHgwMCwweDQwLDB4MDAgfSwKLSAgMTYsIDB4ZDdkMCwgMCwgezB4MDEsMHhjNCwweDI0LDB4MDAsMHg4OCwweDA0LDB4MDAsMHg0MywweDEwLDB4MDAsMHg0MCwweDIwLDB4MDAsMHg4OCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDg1LDB4MjQsMHgzMSwweDAyLDB4MGMgfSwKLSAgMTYsIDB4ZDdmMCwgMCwgezB4MDIsMHhjMiwweDA0LDB4MTAsMHhjNCwweDI4LDB4MjEsMHg0OSwweDBjLDB4MDIsMHhjMCwweDA0LDB4YjIsMHgwNiwweDFjLDB4MjAgfSwKLSAgMTYsIDB4ZDgwMCwgMCwgezB4MDMsMHgwOCwweDUwLDB4NDIsMHgwYywweDgwLDB4MDEsMHgwNCwweGExLDB4NDksMHgwYywweDAwLDB4YzIsMHgwYywweDEwLDB4NDMgfSwKLSAgMTYsIDB4ZDgxMCwgMCwgezB4MjQsMHhhMCwweGMxLDB4MDgsMHgxMCwweDQyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDgyMCwgMCwgezB4MDAsMHgxMCwweGEyLDB4MDAsMHgyMCwweDAwLDB4Y2QsMHgwMCwweDAwLDB4NDAsMHgwNCwweDIwLDB4MDEsMHgxMCwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ZDgzMCwgMCwgezB4MDQsMHgwMiwweDQ5LDB4MGMsMHg5MiwweDA3LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgzMywweDA4LDB4MGMsMHg5MiwweDQxLDB4MDAgfSwKLSAgMTYsIDB4ZDg0MCwgMCwgezB4ODAsMHhjYywweDAwLDB4MDAsMHgwMCwweDBjLDB4MDAsMHg0MywweDI4LDB4ODAsMHhjMiwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg1MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDEwLDB4NTAsMHg4MCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg2MCwgMCwgezB4MTAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAwLDB4ZDAsMHg4MCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZDg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgxMCwweDkwLDB4ODAgfSwKLSAgMTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDg5MCwgMCwgezB4M2MsMHgzYywweDEwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4YTAsMHg4MCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgwMCwweDQwLDB4MTAsMHg5MCwweDgwLDB4YTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg5MCwweDgwLDB4YTAgfSwKLSAgMTYsIDB4ZDhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDEwLDB4OTAsMHhhMCwweGEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OGYgfSwKLSAgMTYsIDB4ZDhjMCwgMCwgezB4MGYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYywweGMyLDB4ZTQsMHg4MSwweDgwLDB4M2YgfSwKLSAgMTYsIDB4ZDhkMCwgMCwgezB4ZDksMHhiZiwweGQ5LDB4OTgsMHg3MSwweDlkLDB4NDIsMHg4MCwweDAwLDB4MjYsMHg3ZiwweGU2LDB4NzIsMHhhYiwweDdjLDB4M2EgfSwKLSAgMTYsIDB4ZDhlMCwgMCwgezB4NDAsMHgwMCwweDE5LDB4ODAsMHgyNiwweDQ4LDB4ZGQsMHgzYywweDkxLDB4YzAsMHgyNiwweDQwLDB4MjYsMHg0MCwweDM4LDB4MzEgfSwKLSAgMTYsIDB4ZDhmMCwgMCwgezB4ZGIsMHg2MSwweGMwLDB4MTksMHg5OSwweGJmLDB4YzksMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDkwMCwgMCwgezB4MDAsMHgwMCwweDEwLDB4ODAsMHgxMCwweDE0LDB4ODAsMHgwNiwweDg0LDB4OTcsMHg5NiwweDg2LDB4OTYsMHgwNiwweDkwLDB4MDAgfSwKLSAgMTYsIDB4ZDkxMCwgMCwgezB4M2YsMHhhMSwweDI4LDB4MDEsMHgwMiwweDkwLDB4MTIsMHgwMCwweDgwLDB4MTcsMHg4OCwweDE2LDB4OWUsMHg5MCwweDkwLDB4MDQgfSwKLSAgMTYsIDB4ZDkyMCwgMCwgezB4MTAsMHgwMCwweDM2LDB4YmUsMHhiZSwweDllLDB4ODYsMHgxNiwweDEyLDB4ODQsMHg4MCwweDEzLDB4YmUsMHg5NywweGFlLDB4ODAgfSwKLSAgMTYsIDB4ZDkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODIgfSwKLSAgMTYsIDB4ZDk0MCwgMCwgezB4ODEsMHg4NCwweDIxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGExLDB4MzgsMHgwMSwweDc4LDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk1MCwgMCwgezB4MDgsMHhiOCwweDIxLDB4NzIsMHg2OCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg5OCwweDQ0LDB4ODgsMHg2OCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZDk2MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4YjgsMHgwMSwweDc4LDB4MDEsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDk3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcsMHhhZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZDk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZDk5MCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGJmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZDljMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZDlkMCwgMCwgezB4MmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZDllMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4YzAgfSwKLSAgMTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGEwMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGJmLDB4YmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhkZiwweGJmLDB4ZGYgfSwKLSAgMTYsIDB4ZGEzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGZmLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYgfSwKLSAgMTYsIDB4ZGE0MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE1MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4M2UsMHhhZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZGE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGU3LDB4ZmUgfSwKLSAgMTYsIDB4ZGE3MCwgMCwgezB4ZWYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZGYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmNywweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGFhMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDJmLDB4ZmYsMHhmZiwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcgfSwKLSAgMTYsIDB4ZGFiMCwgMCwgezB4ZGYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGFjMCwgMCwgezB4MDAsMHgwMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4YzMsMHgyYywweDUwLDB4MDksMHgxNCwweDgyLDB4YzQsMHgzMCwweDkxLDB4YzcgfSwKLSAgMTYsIDB4ZGFkMCwgMCwgezB4MjQsMHg2MCwweDA4LDB4MWMsMHg4MiwweDA3LDB4MzQsMHg5MSwweDRjLDB4MDQsMHg0MywweDBhLDB4MTAsMHhjMiwweDg0LDB4MDQgfSwKLSAgMTYsIDB4ZGFlMCwgMCwgezB4OTEsMHg4NCwweDI0LDB4NTIsMHgwYiwweDE4LDB4MDIsMHhjNCwweDI0LDB4YjEsMHhjMywweDJjLDB4NDAsMHgwYSwweDEwLDB4ODAgfSwKLSAgMTYsIDB4ZGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4MDIsMHgwMSwweGM0LDB4ODAgfSwKLSAgMTYsIDB4ZGIwMCwgMCwgezB4NjAsMHgyMCwweDFjLDB4MDgsMHg0NCwweDIyLDB4MDEsMHhjMCwweDg0LDB4NTAsMHgwMSwweDljLDB4MDgsMHgwNywweDBhLDB4MDEgfSwKLSAgMTYsIDB4ZGIxMCwgMCwgezB4YzAsMHg4NCwweDcyLDB4MjAsMHgxYywweGM4LDB4MDQsMHgxMiwweDExLDB4NDQsMHg4MCwweDQxLDB4MDEsMHgxYywweDgwLDB4MDcgfSwKLSAgMTYsIDB4ZGIyMCwgMCwgezB4MDgsMHgxMSwweGM0LDB4MDAsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4ODYsMHgyYywweDIxLDB4NGEsMHgwYywweDUyLDB4MDIsMHgxYywweDgwLDB4MDQsMHgyMCwweDIxLDB4Y2EgfSwKLSAgMTYsIDB4ZGI0MCwgMCwgezB4MTAsMHg2MiwweDAyLDB4MWMsMHg4MSwweDQ3LDB4MDQsMHgyMSwweGMzLDB4MjAsMHg1MSwweDAxLDB4MWMsMHg4MCwweDA0LDB4MmMgfSwKLSAgMTYsIDB4ZGI1MCwgMCwgezB4MDEsMHhjYiwweDA0LDB4NTIsMHgwMywweDE0LDB4NDAsMHhjNywweDIwLDB4MzEsMHhjOCwweDBjLDB4NTAsMHgyMiwweDEwLDB4ODAgfSwKLSAgMTYsIDB4ZGI2MCwgMCwgezB4MDEsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA2LDB4MjAsMHgwMSwweDg5LDB4MDAgfSwKLSAgMTYsIDB4ZGI3MCwgMCwgezB4NTIsMHgwMCwweDE0LDB4ODAsMHgwNCwweDI4LDB4MDEsMHg0NSwweDA0LDB4NjIsMHgwMCwweDEwLDB4ODAsMHg0NiwweDMwLDB4MTEgfSwKLSAgMTYsIDB4ZGI4MCwgMCwgezB4MGQsMHgwMCwweDQyLDB4MDEsMHgxNCwweGMwLDB4NDQsMHgwMCwweDExLDB4MDUsMHgwMCwweDUwLDB4MDAsMHgxYywweDAwLDB4NDQgfSwKLSAgMTYsIDB4ZGI5MCwgMCwgezB4MjgsMHgwMSwweDQ5LDB4MDAsMHg3MCwweDAwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJhMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4YzAsMHgwMiwweDMwLDB4MGMsMHg4YywweDMwLDB4MjIsMHgwOCwweDg4LDB4YzIsMHgyNiwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZGJiMCwgMCwgezB4ODAsMHgyMCwweDIyLDB4MGMsMHg4OCwweDgxLDB4MDIsMHgxMCwweGM0LDB4ODAsMHgxMCwweDIyLDB4MGMsMHgwOCwweDQwLDB4MDIgfSwKLSAgMTYsIDB4ZGJjMCwgMCwgezB4MTAsMHg0OCwweDg4LDB4MDEsMHgyMywweDA0LDB4YzgsMHg0MiwweDAyLDB4MTAsMHg0NiwweDhjLDB4MTIsMHgyMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGJkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweGM4LDB4MjAgfSwKLSAgMTYsIDB4ZGJlMCwgMCwgezB4MTEsMHgwOSwweDAwLDB4ODAsMHg0MSwweDEwLDB4OTAsMHgwOCwweDI0LDB4MzAsMHgwOCwweDA0LDB4NDIsMHg0MSwweDAwLDB4OTAgfSwKLSAgMTYsIDB4ZGJmMCwgMCwgezB4YzQsMHgyMCwweDAwLDB4MDgsMHgwNCwweDQyLDB4MDAsMHgxMCwweDgwLDB4NGMsMHgyMCwweDIzLDB4MDksMHgwNCwweGMyLDB4NDMgfSwKLSAgMTYsIDB4ZGMwMCwgMCwgezB4MzAsMHg4MCwweDQwLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGMxMCwgMCwgezB4MDgsMHgwMCwweDA4LDB4ODEsMHgwMiwweDIwLDB4YzksMHg4YywweDEyLDB4MjAsMHgwNCwweDQ4LDB4NDEsMHgyMiwweDAwLDB4MDkgfSwKLSAgMTYsIDB4ZGMyMCwgMCwgezB4ODgsMHgzMCwweDIwLDB4MGMsMHg4OCwweDAzLDB4MGUsMHgwMCwweDQ5LDB4OGMsMHgxMCwweDIyLDB4MGMsMHg4OCwweDQwLDB4MmUgfSwKLSAgMTYsIDB4ZGMzMCwgMCwgezB4MDAsMHhjOSwweDg0LDB4MTMsMHgyMSwweDA0LDB4YzgsMHhjMywweDIyLDB4MDAsMHhjYiwweDhjLDB4MzIsMHgyMiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM0MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAxLDB4MDIsMHgwMCwweDRiLDB4ODAgfSwKLSAgMTYsIDB4ZGM1MCwgMCwgezB4MzIsMHgyMSwweDA4LDB4ODgsMHg0MSwweDAyLDB4MTAsMHgwZiwweDgwLDB4MTAsMHgyMSwweDhjLDB4MDgsMHg0MSwweDAyLDB4MDAgfSwKLSAgMTYsIDB4ZGM2MCwgMCwgezB4ODcsMHg4NCwweDEwLDB4MjAsMHgwNCwweDg4LDB4MDAsMHgwMiwweDAwLDB4NDcsMHg4MCwweDEwLDB4MjEsMHgwYywweDg4LDB4NDEgfSwKLSAgMTYsIDB4ZGM3MCwgMCwgezB4MTYsMHgxMCwweDQ2LDB4ODAsMHgzMCwweDIwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGM4MCwgMCwgezB4MDAsMHgwMCwweDBhLDB4YzQsMHgyMiwweGExLDB4MDgsMHhhNCwweDcyLDB4MmEsMHgxNCwweDBhLDB4ODUsMHgwMiwweDgxLDB4ODQgfSwKLSAgMTYsIDB4ZGM5MCwgMCwgezB4YTAsMHg0MiwweDI4LDB4MWMsMHgwYSwweGM1LDB4MDIsMHg5MSwweDQwLDB4YjgsMHg3MywweDI5LDB4MTAsMHhjYSwweGM0LDB4MDIgfSwKLSAgMTYsIDB4ZGNhMCwgMCwgezB4YTEsMHg4MCwweGE0LDB4NDIsMHgyYSwweDE0LDB4Y2EsMHg4NSwweDIyLDB4OTEsMHg4MCwweGE4LDB4NzAsMHgyYSwweDE4LDB4MDIgfSwKLSAgMTYsIDB4ZGNiMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDA0LDB4MWUsMHgwMSwweGM4LDB4ODAgfSwKLSAgMTYsIDB4ZGNjMCwgMCwgezB4NDMsMHgyMCwweDE4LDB4MDgsMHg0NSwweDNlLDB4MDEsMHgwYywweDgwLDB4NjEsMHgyMCwweDljLDB4NDgsMHgwNiwweDEyLDB4ODEgfSwKLSAgMTYsIDB4ZGNkMCwgMCwgezB4YzAsMHg4MCwweDczLDB4MDAsMHgxMCwweDg4LDB4MDYsMHgwMiwweDAxLDB4YzgsMHgwMCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MDcgfSwKLSAgMTYsIDB4ZGNlMCwgMCwgezB4MDIsMHgxMSwweGNkLDB4ODAsMHg1MSwweDIwLDB4MTQsMHg4MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGNmMCwgMCwgezB4MDgsMHgwMCwweDAwLDB4YzQsMHgyNCwweDIxLDB4YzgsMHgwYywweDQyLDB4MDEsMHgxNCwweDAwLDB4MDAsMHgyOCwweDEwLDB4NGMgfSwKLSAgMTYsIDB4ZGQwMCwgMCwgezB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDQ1LDB4MjQsMHgyOSwweDQwLDB4MDQsMHg3MiwweDAwLDB4MTAsMHhjMCwweDA1LDB4MjQgfSwKLSAgMTYsIDB4ZGQxMCwgMCwgezB4MTEsMHg0NCwweDA4LDB4NDMsMHgwMSwweDE0LDB4YzAsMHg0NywweDI0LDB4MjAsMHg0OCwweDA4LDB4NzIsMHgwMiwweDEwLDB4MDAgfSwKLSAgMTYsIDB4ZGQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MTAsMHgwMCwweDA3LDB4MTAsMHgxMSwweDA2LDB4MDAgfSwKLSAgMTYsIDB4ZGQzMCwgMCwgezB4NzIsMHgwMCwweDE4LDB4ZDAsMHg0NiwweDIwLDB4MDEsMHg0ZCwweDAwLDB4NzEsMHg0MCwweDEwLDB4NTAsMHgwNywweDMwLDB4MTEgfSwKLSAgMTYsIDB4ZGQ0MCwgMCwgezB4YzMsMHgwMCwweDcxLDB4NDEsMHgxMCwweGIwLDB4MDUsMHgyYywweDAxLDB4NDksMHgwMCwweDQzLDB4MDAsMHgxYywweDUwLDB4NDUgfSwKLSAgMTYsIDB4ZGQ1MCwgMCwgezB4MzAsMHgwMSwweDhjLDB4MDAsMHg2MSwweDQwLDB4MTgsMHg0MiwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGQ2MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4YzUsMHgwMCwweDIxLDB4YzAsMHgwYywweDQwLDB4MDEsMHgxNCwweDEyLDB4NDQsMHgwNCwweDMxLDB4ODQgfSwKLSAgMTYsIDB4ZGQ3MCwgMCwgezB4MjQsMHg0MCwweDgwLDB4MTQsMHhhMSwweGM3LDB4MDAsMHgwMSwweDQwLDB4MDgsMHg0MCwweDAxLDB4MTQsMHgyMCwweDA1LDB4MjAgfSwKLSAgMTYsIDB4ZGQ4MCwgMCwgezB4MTEsMHhjMCwweDAyLDB4NjAsMHg4MiwweDE4LDB4MDAsMHg4NywweDI0LDB4MTEsMHg0MCwweDA4LDB4NDAsMHg0MiwweDEwLDB4MDIgfSwKLSAgMTYsIDB4ZGQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MGMsMHg4MCwweGM0LDB4MjQgfSwKLSAgMTYsIDB4ZGRhMCwgMCwgezB4MzEsMHg0OCwweDBjLDB4MDAsMHgwMSwweDA4LDB4YzEsMHg0MSwweDAwLDB4MDAsMHg0OSwweDAwLDB4NDIsMHgwMywweDA4LDB4MTAgfSwKLSAgMTYsIDB4ZGRiMCwgMCwgezB4ODAsMHgyMCwweDIxLDB4MDksMHgwYywweDAyLDB4MDIsMHgxOCwweDgwLDB4YzEsMHgyNCwweDMwLDB4MDgsMHgwYywweDQyLDB4MDEgfSwKLSAgMTYsIDB4ZGRjMCwgMCwgezB4MTAsMHg4MCwweDgzLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGRkMCwgMCwgezB4MDAsMHgwMCwweDEwLDB4YzEsMHgwNCwweDIwLDB4NDgsMHgwYywweDEyLDB4NDIsMHgwNCwweDAwLDB4ODMsMHgwMCwweDMxLDB4NDggfSwKLSAgMTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgwMiwweDQxLDB4MDQsMHhhMCwweDA3LDB4MGMsMHgyMCwweDQwLDB4MDAsMHgxMiwweGMyLDB4MGMsMHg4MCwweGMxLDB4MjAgfSwKLSAgMTYsIDB4ZGRmMCwgMCwgezB4MjAsMHhjOCwweDAwLDB4MTIsMHhjMSwweDBjLDB4YjAsMHg0MSwweDIwLDB4MDAsMHg0OSwweDA4LDB4MDIsMHg0MiwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4MCwweDAxLDB4MDAsMHgxMCwweDgxLDB4MDAgfSwKLSAgMTYsIDB4ZGUxMCwgMCwgezB4MzAsMHg0MCwweDA4LDB4MjAsMHgwMywweDAwLDB4MTAsMHhjMSwweDIwLDB4MDIsMHgwMCwweDA0LDB4ODAsMHg0MCwweDMwLDB4OTAgfSwKLSAgMTYsIDB4ZGUyMCwgMCwgezB4MDEsMHgxNCwweDAyLDB4NDAsMHgwNCwweDgwLDB4NDAsMHgyMCwweDAwLDB4MDksMHgwNCwweDMyLDB4MDEsMHgwOCwweGEwLDB4MDMgfSwKLSAgMTYsIDB4ZGUzMCwgMCwgezB4MDQsMHgxMCwweDA4LDB4MDAsMHgyMiwweDQwLDB4MDAsMHgwMCwweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU0MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweGYwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDAsMHhmMCwweDAwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4YTAgfSwKLSAgMTYsIDB4ZGU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDAwLDB4ZjAsMHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDAwLDB4Y2MgfSwKLSAgMTYsIDB4ZGU3MCwgMCwgezB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNjLDB4M2MsMHgxMCwweGEwLDB4ODAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGU4MCwgMCwgezB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweGMwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAgfSwKLSAgMTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDkwLDB4ODAgfSwKLSAgMTYsIDB4ZGVhMCwgMCwgezB4ZTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg4YywweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGViMCwgMCwgezB4MDAsMHgwMCwweDA5LDB4NGQsMHhiMSwweGU5LDB4MDAsMHgyNiwweDQwLDB4MmEsMHg3ZiwweGUzLDB4ZjIsMHg1NCwweDk4LDB4YzAgfSwKLSAgMTYsIDB4ZGVjMCwgMCwgezB4M2YsMHhlNiwweDQwLDB4MDAsMHgwMSwweDQyLDB4OTEsMHhkMCwweGMwLDB4MTMsMHhlNSwweDg3LDB4NjMsMHg4MywweGI4LDB4Y2QgfSwKLSAgMTYsIDB4ZGVkMCwgMCwgezB4ZjksMHgwMCwweDI2LDB4N2YsMHgwMCwweDAwLDB4MzUsMHgyZSwweGQ1LDB4MDMsMHg0MCwweDNmLDB4ZDksMHhiZiwweGIxLDB4ODAgfSwKLSAgMTYsIDB4ZGVlMCwgMCwgezB4MDEsMHhmMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAyLDB4MTYsMHgxNCwweDAwLDB4MWMgfSwKLSAgMTYsIDB4ZGVmMCwgMCwgezB4YTgsMHgzZiwweDg4LDB4MTYsMHgwMCwweDgwLDB4ODQsMHg4MCwweDM3LDB4OWUsMHhiYSwweGEwLDB4NTAsMHgxMCwweDAyLDB4MTIgfSwKLSAgMTYsIDB4ZGYwMCwgMCwgezB4MDAsMHgxNywweDk2LDB4OTcsMHgyNiwweDUwLDB4MTAsMHgxMCwweDgyLDB4ODAsMHgxZSwweDgwLDB4ZGUsMHhiZSwweDk0LDB4MTQgfSwKLSAgMTYsIDB4ZGYxMCwgMCwgezB4MDIsMHgxMCwweDgwLDB4MTcsMHhiZSwweDgxLDB4OTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhhOCwweDQ0LDB4OTQsMHgyOCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDggfSwKLSAgMTYsIDB4ZGYzMCwgMCwgezB4OTQsMHgyMSwweDQ0LDB4NTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4ODQsMHg0MiwweDQxLDB4MDEsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgwOCwweGExLDB4NzIsMHgyMywweDQxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGI4LDB4MDEsMHg3OCwweDMyLDB4NDAgfSwKLSAgMTYsIDB4ZGY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmNywweGZlLDB4ZDcsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGQ3LDB4ZGYgfSwKLSAgMTYsIDB4ZGY3MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM3LDB4N2YgfSwKLSAgMTYsIDB4ZGY4MCwgMCwgezB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGY5MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDFlLDB4ZmYsMHhkZSwweDc3LDB4YzAgfSwKLSAgMTYsIDB4ZGZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGVmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZGZiMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZGZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZGZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhjZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4YmYgfSwKLSAgMTYsIDB4ZGZlMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZGZmMCwgMCwgezB4ZmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAwMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZTAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4MWYgfSwKLSAgMTYsIDB4ZTAyMCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhkZiwweGZmLDB4Y2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfSwKLSAgMTYsIDB4ZTA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhiZiwweGFmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYgfSwKLSAgMTYsIDB4ZTA1MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNlLDB4ZGUsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYgfSwKLSAgMTYsIDB4ZTA2MCwgMCwgezB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTA3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4N2YsMHhmZiwweGZmLDB4YzAgfSwKLSAgMTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZlLDB4YmUgfSwKLSAgMTYsIDB4ZTA5MCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhmZiwweGQ3LDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBlMCwgMCwgezB4MzAsMHgwMCwweDIwLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHg0MywweDhlLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZThmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDIsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4ODAgfSwKLSAgMTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZWZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjA5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjRmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjczMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjc5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjdmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4Zjk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZjlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmEzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NWYsMHhhNywweDMwLDB4MDAsMHg4MCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDMgfSwKLSAgMTYsIDB4ZmQ0MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgMTYsIDB4ZmQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEgfSwKLSAgMTYsIDB4ZmQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDUsMHgzMCwweDAwLDB4YTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDAwLDB4MDEgfSwKLSAgMTYsIDB4ZmQ5MCwgMCwgezB4MDAsMHgwMCwweDZiLDB4OTcsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfSwKLSAgNCwgMHhmZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCB9LAotICAwICwgMHgwMDAwLCAxLCB7MH0KLX07Ci0vLyBWRVJTSU9OPSAxLjAuMC4xOTEKLS8vIERBVEU9IDIwMDJvY3QyOAotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19IZXhNaWRpRnc2MltdID0gewotICAgMywweDAwMDAsMCx7MHgwMiwweDQ2LDB4Yjl9LAotICAgMywweDAwMDMsMCx7MHgwMiwweDBmLDB4ZmR9LAotICAgMywweDAwMGIsMCx7MHgwMiwweDRlLDB4MGZ9LAotICAgMywweDAwMTMsMCx7MHgwMiwweDE3LDB4ZmR9LAotICAgMywweDAwMWIsMCx7MHgwMiwweDRlLDB4MTJ9LAotICAgMywweDAwMjMsMCx7MHgwMiwweDRkLDB4ZWZ9LAotICAgMywweDAwMmIsMCx7MHgwMiwweDQ4LDB4MDB9LAotICAgMywweDAwMzMsMCx7MHgwMiwweDRkLDB4ZTZ9LAotICAgMywweDAwM2IsMCx7MHgwMiwweDRkLDB4ZjZ9LAotICAgMywweDAwNDMsMCx7MHgwMiwweDQ5LDB4MDB9LAotICAgMywweDAwNGIsMCx7MHgwMiwweDRlLDB4MDN9LAotICAgMywweDAwNTMsMCx7MHgwMiwweDQ4LDB4ZmF9LAotICAgMywweDAwNWIsMCx7MHgwMiwweDRkLDB4ZmR9LAotICAgMywweDAwNjMsMCx7MHgwMiwweDRlLDB4MDd9LAotICAxNiwweDA1MDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDExLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0sCi0gIDE2LDB4MDUxMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4MDgsMHgwMiwweDA1LDB4MDEsMHgwMCwweDgwLDB4MzIsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwNTIwLDAsezB4MDEsMHgwMSwweDAwLDB4MDAsMHgwYSwweDI0LDB4MDEsMHgwMCwweDAxLDB4NTYsMHgwMCwweDAyLDB4MDEsMHgwMiwweDBjLDB4MjR9LAotICAxNiwweDA1MzAsMCx7MHgwMiwweDAxLDB4MDEsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDBkLDB4MjQsMHgwNiwweDA1LDB4MDEsMHgwMn0sCi0gIDE2LDB4MDU0MCwwLHsweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgyNCwweDAzLDB4MDIsMHgwNCwweDAzLDB4MDAsMHgwNSwweDAwfSwKLSAgMTYsMHgwNTUwLDAsezB4MGMsMHgyNCwweDAyLDB4MDMsMHgwNSwweDAyLDB4MDAsMHgwNiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHgyNCwweDA2LDB4MDZ9LAotICAxNiwweDA1NjAsMCx7MHgwMywweDAyLDB4MDAsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMH0sCi0gIDE2LDB4MDU3MCwwLHsweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMCwweDAxfSwKLSAgMTYsMHgwNTgwLDAsezB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAxLDB4MDEsMHgwMiwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDF9LAotICAxNiwweDA1OTAsMCx7MHgwMCwweDAxLDB4MDAsMHgxMSwweDI0LDB4MDIsMHgwMSwweDAyLDB4MDIsMHgxMCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYn0sCi0gIDE2LDB4MDVhMCwwLHsweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxfSwKLSAgMTYsMHgwNWIwLDAsezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1LDB4OGYsMHgwMSwweDAzLDB4MDAsMHgwMSwweDA1LDB4MDAsMHgwOSwweDA0LDB4MDF9LAotICAxNiwweDA1YzAsMCx7MHgwMiwweDAyLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwMSwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMn0sCi0gIDE2LDB4MDVkMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fSwKLSAgMTYsMHgwNWUwLDAsezB4MGEsMHgwNSwweDQ2LDB4MDIsMHgwMSwweDAwLDB4OGYsMHgwNywweDI1LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5LDB4MDV9LAotICAxNiwweDA1ZjAsMCx7MHg4ZiwweDAxLDB4MDMsMHgwMCwweDAxLDB4MDUsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAwLDB4MDAsMHgwMSwweDAyLDB4MDAsMHgwMH0sCi0gIDE2LDB4MDYwMCwwLHsweDA5LDB4MDQsMHgwMiwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwfSwKLSAgMTYsMHgwNjEwLDAsezB4MGUsMHgyNCwweDAyLDB4MDEsMHgwNiwweDAyLDB4MTAsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDV9LAotICAxNiwweDA2MjAsMCx7MHg4YywweDA1LDB4NGMsMHgwMiwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNH0sCi0gIDE2LDB4MDYzMCwwLHsweDAyLDB4MDIsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0fSwKLSAgMTYsMHgwNjQwLDAsezB4MDIsMHgwMSwweDA2LDB4MDMsMHgxOCwweDAyLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDksMHgwNSwweDhjLDB4MDV9LAotICAxNiwweDA2NTAsMCx7MHg3MiwweDAzLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0LDB4MDIsMHgwM30sCi0gIDE2LDB4MDY2MCwwLHsweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxfSwKLSAgMTYsMHgwNjcwLDAsezB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1LDB4OGN9LAotICAxNiwweDA2ODAsMCx7MHgwNSwweDg0LDB4MDEsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMn0sCi0gIDE2LDB4MDY5MCwwLHsweDA0LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfSwKLSAgMTYsMHgwNmEwLDAsezB4MDEsMHgwMiwweDAzLDB4MTgsMHgwMywweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDAwLDB4NzcsMHgwMSwweDA5LDB4MDV9LAotICAxNiwweDA2YjAsMCx7MHg4YywweDA1LDB4NDYsMHgwMiwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNH0sCi0gIDE2LDB4MDZjMCwwLHsweDAzLDB4MDAsMHgwMCwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDksMHgyNCwweDAxLDB4MDAsMHgwMSwweDA5LDB4MDAsMHgwMSwweDA0fSwKLSAgMTYsMHgwNmQwLDAsezB4MDksMHgwNCwweDA0LDB4MDAsMHgwMiwweDAxLDB4MDMsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDAsMHgwMSwweDI0LDB4MDB9LAotICAxNiwweDA2ZTAsMCx7MHgwNiwweDI0LDB4MDIsMHgwMSwweDA3LDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMiwweDA4LDB4MDEsMHgwNywweDAxLDB4MDAsMHgwNn0sCi0gIDE2LDB4MDZmMCwwLHsweDI0LDB4MDIsMHgwMiwweDA5LDB4MDAsMHgwOSwweDI0LDB4MDMsMHgwMSwweDBhLDB4MDEsMHgwOSwweDAxLDB4MDAsMHgwOSwweDA1fSwKLSAgMTYsMHgwNzAwLDAsezB4MDEsMHgwMiwweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDI1LDB4MDEsMHgwMSwweDA3LDB4MDksMHgwNSwweDgxLDB4MDJ9LAotICAxNiwweDA3MTAsMCx7MHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHgyNSwweDAxLDB4MDEsMHgwYSwweDA0LDB4MDMsMHgwOSwweDA0LDB4MTgsMHgwM30sCi0gIDE2LDB4MDcyMCwwLHsweDQ1LDB4MDAsMHg2ZCwweDAwLDB4NjEsMHgwMCwweDY3LDB4MDAsMHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NywweDAwfSwKLSAgMTYsMHgwNzMwLDAsezB4NmQsMHgwMCwweDYyLDB4MDAsMHg0OCwweDAwLDB4MjIsMHgwMywweDQ1LDB4MDAsMHg2ZCwweDAwLDB4NjEsMHgwMCwweDY3LDB4MDB9LAotICAxNiwweDA3NDAsMCx7MHg2OSwweDAwLDB4NjMsMHgwMCwweDIwLDB4MDAsMHg0NSwweDAwLDB4NGQsMHgwMCwweDQ5LDB4MDAsMHgyMCwweDAwLDB4MzYsMHgwMH0sCi0gIDE2LDB4MDc1MCwwLHsweDdjLDB4MDAsMHgzMiwweDAwLDB4MjAsMHgwMCwweDZkLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwfSwKLSAgMTYsMHgwNzYwLDAsezB4NjYsMHgwMCwweDY5LDB4MDAsMHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDB9LAotICAxNiwweDA3NzAsMCx7MHg2ZiwweDAwLDB4NmUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMH0sCi0gIDE2LDB4MDc4MCwwLHsweDY3LDB4MDAsMHgyMiwweDAzLDB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwfSwKLSAgMTYsMHgwNzkwLDAsezB4NjEsMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDB9LAotICAgNiwweDA3YTAsMCx7MHg2ZSwweDAwLDB4NjcsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDA3YTYsMCx7MHhlNCwweDkwLDB4NzYsMHg2NiwweGYwLDB4MTIsMHg0NCwweGFkLDB4MjAsMHgyNiwweDEzLDB4OTAsMHg3NiwweDY2LDB4ZTAsMHhjM30sCi0gIDE2LDB4MDdiNiwwLHsweDk0LDB4MDIsMHg1MCwweDBhLDB4ZTAsMHgwNCwweGYwLDB4ZDIsMHg0MiwweDEyLDB4NGIsMHg3ZiwweDgwLDB4ZWEsMHgzMCwweDI2fSwKLSAgMTYsMHgwN2M2LDAsezB4MDUsMHgxMiwweDI4LDB4MDEsMHhjMiwweDI2LDB4MzAsMHgyNSwweDJiLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg1NCwweGZjLDB4ZjB9LAotICAxNiwweDA3ZDYsMCx7MHg5MCwweDgwLDB4MDMsMHhmMCwweDEyLDB4MTQsMHg5NiwweDkwLDB4NzYsMHg5NiwweGUwLDB4NDQsMHgwMywweGYwLDB4OTAsMHg4MH0sCi0gIDE2LDB4MDdlNiwwLHsweDAzLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg2NywweGYwLDB4OTAsMHg3NiwweDY3LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhiNCwweDRifSwKLSAgMTAsMHgwN2Y2LDAsezB4ZjYsMHgxMiwweDQ3LDB4ZmEsMHgxMiwweDQxLDB4MWIsMHg4MCwweGM1LDB4MjJ9LAotICAxNiwweDA4MDAsMCx7MHhlNCwweDkwLDB4NzYsMHgzMSwweGYwLDB4OTAsMHg3NiwweDMxLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn0sCi0gIDE2LDB4MDgxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHgwODIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgzMSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDA4MzAsMCx7MHhlZiwweGI0LDB4MGIsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MDg0MCwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MzMsMHhmMCwweDI0fSwKLSAgMTYsMHgwODUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZSwweDYwLDB4MDIsMHg4MSwweDg3LDB4MTIsMHg0YiwweGM3LDB4MjIsMHg5MCwweDdmLDB4ZWR9LAotICAxNiwweDA4NjAsMCx7MHhlMCwweDY0LDB4MDUsMHg3MCwweDUxLDB4OTAsMHg3NiwweDE4LDB4NzQsMHgwNSwweGYwLDB4OTAsMHg3NiwweDM3LDB4NzQsMHgwMX0sCi0gIDE2LDB4MDg3MCwwLHsweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDIxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgyMCwweGYwfSwKLSAgMTYsMHgwODgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDA4OTAsMCx7MHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZH0sCi0gIDE2LDB4MDhhMCwwLHsweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3NiwweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2fSwKLSAgMTYsMHgwOGIwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9LAotICAxNiwweDA4YzAsMCx7MHgxOCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHgzNywweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzOSwweDc0LDB4MGEsMHhmMH0sCi0gIDE2LDB4MDhkMCwwLHsweDkwLDB4NzYsMHgyMSwweGYwLDB4OTAsMHg3NiwweDIwLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwfSwKLSAgMTYsMHgwOGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDA4ZjAsMCx7MHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZCwweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MDkwMCwwLHsweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxfSwKLSAgMTYsMHgwOTEwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDA5MjAsMCx7MHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MjksMHhmMCwweGU0LDB4OTAsMHg3NiwweDNiLDB4ZjAsMHg5MCwweDc2LDB4MjEsMHhlMH0sCi0gIDE2LDB4MDkzMCwwLHsweGZlLDB4ZWYsMHg2ZSwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVifSwKLSAgMTYsMHgwOTQwLDAsezB4ZTAsMHgxNCwweDYwLDB4MTMsMHgxNCwweDcwLDB4MDIsMHgyMSwweGUyLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDdmLDB4OTB9LAotICAxNiwweDA5NTAsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MTQsMHg3MCwweDdjLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MDk2MCwwLHsweGVhLDB4ZTAsMHhmNCwweDcwLDB4NDgsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5fSwKLSAgMTYsMHgwOTcwLDAsezB4ZTAsMHhmZSwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmQsMHhjMywweDllLDB4NTAsMHgyYiwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmV9LAotICAxNiwweDA5ODAsMCx7MHgwNCwweGYwLDB4NzQsMHhjMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZlLDB4ZWQsMHg3NX0sCi0gIDE2LDB4MDk5MCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgwOWEwLDAsezB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGM3LDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzB9LAotICAxNiwweDA5YjAsMCx7MHhlMCwweGZlLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MDljMCwwLHsweGVlLDB4ZjAsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHgzZSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwfSwKLSAgMTYsMHgwOWQwLDAsezB4NzYsMHgzZSwweGYwLDB4OTAsMHg3NiwweDNmLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9LAotICAxNiwweDA5ZTAsMCx7MHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZlLDB4NzAsMHgwMiwweDQxLDB4YTMsMHgxNCwweDcwLDB4MDIsMHg2MX0sCi0gIDE2LDB4MDlmMCwwLHsweDNmLDB4MTQsMHg3MCwweDAyLDB4NjEsMHhkYiwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg3NywweDkwLDB4N2YsMHhlYSwweGUwfSwKLSAgMTYsMHgwYTAwLDAsezB4ZjQsMHg3MCwweDZiLDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2LDB4MjAsMHhmMCwweDkwLDB4NzYsMHgzOSwweGUwLDB4ZmZ9LAotICAxNiwweDBhMTAsMCx7MHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDUwLDB4NGUsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMH0sCi0gIDE2LDB4MGEyMCwwLHsweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfSwKLSAgMTYsMHgwYTMwLDAsezB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDNiLDB4ZTB9LAotICAxNiwweDBhNDAsMCx7MHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZX0sCi0gIDE2LDB4MGE1MCwwLHsweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwfSwKLSAgMTYsMHgwYTYwLDAsezB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4NDAsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2V9LAotICAxNiwweDBhNzAsMCx7MHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4MGE4MCwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfSwKLSAgMTYsMHgwYTkwLDAsezB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDQxLDB4NzR9LAotICAxNiwweDBhYTAsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4MGFiMCwwLHsweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyfSwKLSAgMTYsMHgwYWMwLDAsezB4ODEsMHg4ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDBhZDAsMCx7MHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNH0sCi0gIDE2LDB4MGFlMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1fSwKLSAgMTYsMHgwYWYwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjV9LAotICAxNiwweDBiMDAsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMn0sCi0gIDE2LDB4MGIxMCwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlfSwKLSAgMTYsMHgwYjIwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzV9LAotICAxNiwweDBiMzAsMCx7MHhmMCwweDBhLDB4YTQsMHgyNCwweGFmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MH0sCi0gIDE2LDB4MGI0MCwwLHsweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgwYjUwLDAsezB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4ODEsMHg4ZSwweDkwLDB4NzZ9LAotICAxNiwweDBiNjAsMCx7MHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4MGI3MCwwLHsweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfSwKLSAgMTYsMHgwYjgwLDAsezB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2V9LAotICAxNiwweDBiOTAsMCx7MHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4MGJhMCwwLHsweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwfSwKLSAgMTYsMHgwYmIwLDAsezB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDBiYzAsMCx7MHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNH0sCi0gIDE2LDB4MGJkMCwwLHsweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0fSwKLSAgMTYsMHgwYmUwLDAsezB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTB9LAotICAxNiwweDBiZjAsMCx7MHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyLDB4ODEsMHg4ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNH0sCi0gIDE2LDB4MGMwMCwwLHsweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwfSwKLSAgMTYsMHgwYzEwLDAsezB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2J9LAotICAxNiwweDBjMjAsMCx7MHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MGMzMCwwLHsweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwfSwKLSAgMTYsMHgwYzQwLDAsezB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjB9LAotICAxNiwweDBjNTAsMCx7MHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4MGM2MCwwLHsweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgwYzcwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9LAotICAxNSwweDBjODAsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjJ9LAotICAxNiwweDBjOGYsMCx7MHg0MSwweDc2LDB4NjgsMHgwMSwweDQxLDB4NzYsMHg2YSwweDAyLDB4NDEsMHg3NiwweDZiLDB4MGEsMHhjMSwweDIwLDB4YzEsMHgyMX0sCi0gICAyLDB4MGM5ZiwwLHsweGMxLDB4MmZ9LAotICAgNCwweDBjYTEsMCx7MHg0MSwweDc2LDB4MjMsMHgwMH0sCi0gIDE2LDB4MGNhNSwwLHsweDQxLDB4NzIsMHgwMSwweDAxLDB4NDUsMHg3MiwweDA1LDB4MDAsMHgwMiwweGM5LDB4MDAsMHgwMCwweDQ1LDB4NzIsMHgwYSwweDAwfSwKLSAgMTYsMHgwY2I1LDAsezB4MDEsMHgwMiwweDAzLDB4MDQsMHg0ZCwweDcyLDB4MGYsMHhkMSwweDAwLDB4ZDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBjYzUsMCx7MHgyOCwweDI4LDB4MDksMHgwMCwweDRkLDB4NzIsMHgxYywweDAxLDB4MDAsMHgwMSwweDAyLDB4MDMsMHgwNCwweDA1LDB4MDYsMHgwN30sCi0gIDE2LDB4MGNkNSwwLHsweDA4LDB4MDksMHgwYSwweDBiLDB4NDEsMHg3MiwweDJlLDB4MjIsMHg0MSwweDcyLDB4MmYsMHgyMywweDQxLDB4NzIsMHgzMCwweDIwfSwKLSAgMTYsMHgwY2U1LDAsezB4NDEsMHg3MiwweDMxLDB4MjEsMHg2MiwweGQyLDB4NzIsMHgzYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBjZjUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQwNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDE1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkMjUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQzNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDQ1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDBkNTUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MGQ2NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgwZDc1LDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9LAotICAxNiwweDBkODUsMCx7MHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMX0sCi0gIDE2LDB4MGQ5NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfSwKLSAgMTYsMHgwZGE1LDAsezB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDF9LAotICAxNiwweDBkYjUsMCx7MHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMn0sCi0gIDE2LDB4MGRjNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfSwKLSAgMTYsMHgwZGQ1LDAsezB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDJ9LAotICAxNiwweDBkZTUsMCx7MHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMn0sCi0gIDE2LDB4MGRmNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfSwKLSAgMTYsMHgwZTA1LDAsezB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDN9LAotICAxNiwweDBlMTUsMCx7MHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwM30sCi0gIDE2LDB4MGUyNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfSwKLSAgMTYsMHgwZTM1LDAsezB4MDMsMHgwMywweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9LAotICAxNiwweDBlNDUsMCx7MHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNH0sCi0gIDE2LDB4MGU1NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fSwKLSAgMTYsMHgwZTY1LDAsezB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDR9LAotICAxNiwweDBlNzUsMCx7MHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNX0sCi0gIDE2LDB4MGU4NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fSwKLSAgMTYsMHgwZTk1LDAsezB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDV9LAotICAxNiwweDBlYTUsMCx7MHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDYsMHgwNn0sCi0gIDE2LDB4MGViNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fSwKLSAgMTYsMHgwZWM1LDAsezB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDZ9LAotICAxNiwweDBlZDUsMCx7MHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNn0sCi0gIDE2LDB4MGVlNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNywweDA3LDB4MDcsMHgwOCwweDA4fSwKLSAgMTYsMHgwZWY1LDAsezB4MDgsMHgwOSwweDA5LDB4MDksMHgwYSwweDBhLDB4MGEsMHgwYiwweDBiLDB4MGIsMHgwYywweDBjLDB4MGMsMHgwZCwweDBkLDB4MGR9LAotICAxNiwweDBmMDUsMCx7MHgwZSwweDBlLDB4MGUsMHgwZiwweDBmLDB4MGYsMHgxMCwweDEwLDB4MTAsMHgxMSwweDExLDB4MTEsMHgxMiwweDEyLDB4MTIsMHgxM30sCi0gIDE2LDB4MGYxNSwwLHsweDEzLDB4MTMsMHgxNCwweDE0LDB4MTQsMHgxNSwweDE1LDB4MTUsMHgxNiwweDE2LDB4MTYsMHgxNywweDE3LDB4MTcsMHgxOCwweDE4fSwKLSAgMTYsMHgwZjI1LDAsezB4MTgsMHgxOSwweDE5LDB4MTksMHgxOSwweDFhLDB4MWEsMHgxYSwweDFhLDB4MWIsMHgxYiwweDFiLDB4MWIsMHgxYywweDFjLDB4MWN9LAotICAxNiwweDBmMzUsMCx7MHgxYywweDFkLDB4MWQsMHgxZCwweDFkLDB4MWUsMHgxZSwweDFlLDB4MWUsMHgxZiwweDFmLDB4MWYsMHgxZiwweDIwLDB4MjAsMHgyMH0sCi0gIDE2LDB4MGY0NSwwLHsweDIxLDB4MjEsMHgyMSwweDIyLDB4MjIsMHgyMiwweDIzLDB4MjMsMHgyNCwweDI0LDB4MjUsMHgyNSwweDI2LDB4MjYsMHgyNywweDI3fSwKLSAgMTYsMHgwZjU1LDAsezB4MjgsMHgyOCwweDI5LDB4MjksMHgyYSwweDJhLDB4MmIsMHgyYiwweDJjLDB4MmMsMHgyZCwweDJkLDB4MmUsMHgyZSwweDJmLDB4MmZ9LAotICAxNiwweDBmNjUsMCx7MHgzMCwweDMwLDB4MzEsMHgzMSwweDMyLDB4MzIsMHgzMywweDMzLDB4MzQsMHgzNCwweDM1LDB4MzUsMHgzNiwweDM2LDB4MzcsMHgzN30sCi0gIDE2LDB4MGY3NSwwLHsweDM4LDB4MzgsMHgzOSwweDM5LDB4M2EsMHgzYSwweDNiLDB4M2MsMHgzZCwweDNlLDB4M2YsMHg0MCwweDQxLDB4NDIsMHg0MywweDQ0fSwKLSAgMTYsMHgwZjg1LDAsezB4NDUsMHg0NiwweDQ3LDB4NDgsMHg0OSwweDQ5LDB4NGEsMHg0YiwweDRiLDB4NGMsMHg0ZCwweDRlLDB4NGYsMHg1MCwweDUxLDB4NTJ9LAotICAxNiwweDBmOTUsMCx7MHg1MywweDU0LDB4NTUsMHg1NSwweDU2LDB4NTYsMHg1NywweDU3LDB4NTgsMHg1YSwweDViLDB4NWQsMHg1ZSwweDVmLDB4NjEsMHg2Mn0sCi0gIDE2LDB4MGZhNSwwLHsweDYzLDB4NjQsMHg2NSwweDY2LDB4NjcsMHg2OCwweDY5LDB4NmEsMHg2YiwweDZjLDB4NmQsMHg2ZiwweDcxLDB4NzIsMHg3MywweDc0fSwKLSAgMTYsMHgwZmI1LDAsezB4NzUsMHg3NiwweDc3LDB4NzgsMHg3OSwweDdhLDB4N2IsMHg3YywweDdlLDB4ODAsMHgwMSwweDM3LDB4MDEsMHgwMSwweDM4LDB4MDB9LAotICAgMSwweDBmYzUsMCx7MHgwMH0sCi0gIDE2LDB4MGZjNiwwLHsweGU0LDB4ZmYsMHg3NCwweDQ2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDIwfSwKLSAgMTYsMHgwZmQ2LDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDRlLDB4MmYsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDBmZTYsMCx7MHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4M30sCi0gICA2LDB4MGZmNiwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY30sCi0gICAxLDB4MGZmYywwLHsweDIyfSwKLSAgIDMsMHgwZmZkLDAsezB4YzIsMHg4OSwweDMyfSwKLSAgMTYsMHgxMDAwLDAsezB4ZTQsMHg5MCwweDc2LDB4MmMsMHhmMCwweDkwLDB4NzYsMHgyYywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9LAotICAxNiwweDEwMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWQsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4MTAyMCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MmMsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgxMDMwLDAsezB4ZWYsMHhiNCwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9LAotICAxNiwweDEwNDAsMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJlLDB4ZjAsMHgyNH0sCi0gIDE2LDB4MTA1MCwwLHsweGYwLDB4NjAsMHgwYSwweDI0LDB4MGYsMHg2MCwweDAyLDB4ODEsMHg3ZCwweDEyLDB4NGIsMHhhNCwweDIyLDB4OTAsMHg3ZiwweGVkfSwKLSAgMTYsMHgxMDYwLDAsezB4ZTAsMHg2NCwweDA1LDB4NzAsMHg1MSwweDkwLDB4NzYsMHgxOCwweDc0LDB4MDUsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDF9LAotICAxNiwweDEwNzAsMCx7MHhmMCwweDkwLDB4NzYsMHgzYSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgxYywweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWIsMHhmMH0sCi0gIDE2LDB4MTA4MCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MCwweDJmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fSwKLSAgMTYsMHgxMDkwLDAsezB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmR9LAotICAxNiwweDEwYTAsMCx7MHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3Nn0sCi0gIDE2LDB4MTBiMCwwLHsweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMSwweDkwLDB4N2YsMHhlZCwweGUwLDB4NjQsMHgwNiwweDcwLDB4NTIsMHg5MCwweDc2fSwKLSAgMTYsMHgxMGMwLDAsezB4MTgsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4MzgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDBhLDB4ZjB9LAotICAxNiwweDEwZDAsMCx7MHg5MCwweDc2LDB4MWMsMHhmMCwweDkwLDB4NzYsMHgxYiwweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MH0sCi0gIDE2LDB4MTBlMCwwLHsweDJmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgxMGYwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmQsMHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzZ9LAotICAxNiwweDExMDAsMCx7MHgxYywweGUwLDB4ZmUsMHhlZiwweGMzLDB4OWUsMHg1MCwweDA4LDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMX0sCi0gIDE2LDB4MTExMCwwLHsweGU0LDB4OTAsMHg3NiwweDFlLDB4ZjAsMHg5MCwweDc2LDB4MWMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZSwweDZmfSwKLSAgMTYsMHgxMTIwLDAsezB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjB9LAotICAxNiwweDExMzAsMCx7MHgxMywweDE0LDB4NzAsMHgwMiwweDIxLDB4YmYsMHgyNCwweDAyLDB4NjAsMHgwMiwweDgxLDB4NzUsMHg5MCwweDdmLDB4YjQsMHhlMH0sCi0gIDE2LDB4MTE0MCwwLHsweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHg2YiwweDkwLDB4N2YsMHhlYSwweGUwfSwKLSAgMTYsMHgxMTUwLDAsezB4ZjQsMHg3MCwweDRhLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmZ9LAotICAxNiwweDExNjAsMCx7MHg5MCwweDc2LDB4MWIsMHhlMCwweGZkLDB4YzMsMHg5ZiwweDUwLDB4MmIsMHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYn0sCi0gIDE2LDB4MTE3MCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwfSwKLSAgMTYsMHgxMTgwLDAsezB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9LAotICAxNiwweDExOTAsMCx7MHgwNCwweGYwLDB4ODAsMHhjNywweDkwLDB4NzYsMHgxZSwweGUwLDB4OTAsMHg3ZiwweGI1LDB4ZjAsMHgyMiwweGVlLDB4NzUsMHhmMH0sCi0gIDE2LDB4MTFhMCwwLHsweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwfSwKLSAgMTYsMHgxMWIwLDAsezB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9LAotICAxNiwweDExYzAsMCx7MHg3ZiwweGU5LDB4ZTAsMHgyNCwweDdlLDB4NzAsMHgwMiwweDQxLDB4N2UsMHgxNCwweDcwLDB4MDIsMHg2MSwweDIzLDB4MTQsMHg3MH0sCi0gIDE2LDB4MTFkMCwwLHsweDAyLDB4NjEsMHhjOCwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg2ZCwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkfSwKLSAgMTYsMHgxMWUwLDAsezB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWJ9LAotICAxNiwweDExZjAsMCx7MHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MTIwMCwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkfSwKLSAgMTYsMHgxMjEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWR9LAotICAxNiwweDEyMjAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMH0sCi0gIDE2LDB4MTIzMCwwLHsweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwfSwKLSAgMTYsMHgxMjQwLDAsezB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWJ9LAotICAxNiwweDEyNTAsMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4MTI2MCwwLHsweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgxMjcwLDAsezB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAxNiwweDEyODAsMCx7MHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYX0sCi0gIDE2LDB4MTI5MCwwLHsweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fSwKLSAgMTYsMHgxMmEwLDAsezB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmR9LAotICAxNiwweDEyYjAsMCx7MHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4MTJjMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2fSwKLSAgMTYsMHgxMmQwLDAsezB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWZ9LAotICAxNiwweDEyZTAsMCx7MHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNX0sCi0gIDE2LDB4MTJmMCwwLHsweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgxMzAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWZ9LAotICAxNiwweDEzMTAsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0sCi0gIDE2LDB4MTMyMCwwLHsweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2fSwKLSAgMTYsMHgxMzMwLDAsezB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTB9LAotICAxNiwweDEzNDAsMCx7MHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MTM1MCwwLHsweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1fSwKLSAgMTYsMHgxMzYwLDAsezB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDEzNzAsMCx7MHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MTM4MCwwLHsweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2fSwKLSAgMTYsMHgxMzkwLDAsezB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9LAotICAxNiwweDEzYTAsMCx7MHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4MTNiMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxfSwKLSAgMTYsMHgxM2MwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTB9LAotICAxNiwweDEzZDAsMCx7MHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMH0sCi0gIDE2LDB4MTNlMCwwLHsweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgxM2YwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjV9LAotICAxNiwweDE0MDAsMCx7MHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNX0sCi0gIDE2LDB4MTQxMCwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0fSwKLSAgMTYsMHgxNDIwLDAsezB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDR9LAotICAxNiwweDE0MzAsMCx7MHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMH0sCi0gIDE2LDB4MTQ0MCwwLHsweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwfSwKLSAgMTYsMHgxNDUwLDAsezB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDE0NjAsMCx7MHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNH0sCi0gIDE2LDB4MTQ3MCwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0fSwKLSAgIDUsMHgxNDgwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MTQ4NSwwLHsweDc0LDB4MDAsMHhmNSwweDg2LDB4OTAsMHhmZCwweGE1LDB4N2MsMHgwNSwweGEzLDB4ZTUsMHg4MiwweDQ1LDB4ODMsMHg3MCwweGY5fSwKLSAgIDEsMHgxNDk1LDAsezB4MjJ9LAotICAxNiwweDE0OTYsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4ODcsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn0sCi0gIDE2LDB4MTRhNiwwLHsweGMwLDB4ZDAsMHhjMCwweGUwLDB4OGYsMHhlMCwweGMwLDB4ZTAsMHg4ZSwweGUwLDB4YzAsMHhlMCwweDhkLDB4ZTAsMHhjMCwweGUwfSwKLSAgMTYsMHgxNGI2LDAsezB4OGMsMHhlMCwweGMwLDB4ZTAsMHhjMCwweDgyLDB4YzAsMHg4MywweDA1LDB4ODYsMHhjMCwweDg0LDB4YzAsMHg4NSwweDdkLDB4MDB9LAotICAxNiwweDE0YzYsMCx7MHg5MCwweDdmLDB4ZTMsMHg3NCwweDdiLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweDdjLDB4MTEsMHg5MCwweDdmLDB4OTksMHhlMH0sCi0gIDE2LDB4MTRkNiwwLHsweDU0LDB4NDAsMHhkYywweDAzLDB4MDIsMHgxNCwweGYzLDB4YjQsMHgwMCwweDEzLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg0MCwweGYwfSwKLSAgMTYsMHgxNGU2LDAsezB4OTAsMHg3ZiwweGU1LDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHgwMiwweDE0LDB4ZDIsMHg5MCwweDc2LDB4OTB9LAotICAxNiwweDE0ZjYsMCx7MHhlMCwweGI0LDB4MDEsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMH0sCi0gIDE2LDB4MTUwNiwwLHsweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHg1NywweGI0LDB4MDIsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwfSwKLSAgMTYsMHgxNTE2LDAsezB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHg5NiwweGI0LDB4MDMsMHgxMiwweDkwLDB4NzZ9LAotICAxNiwweDE1MjYsMCx7MHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHhlMX0sCi0gIDE2LDB4MTUzNiwwLHsweGI0LDB4MDQsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwfSwKLSAgMTYsMHgxNTQ2LDAsezB4N2YsMHg2YywweDAyLDB4MTYsMHgxMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTZ9LAotICAxNiwweDE1NTYsMCx7MHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjIsMHg3ZH0sCi0gIDE2LDB4MTU2NiwwLHsweDAyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0fSwKLSAgMTYsMHgxNTc2LDAsezB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjB9LAotICAxNiwweDE1ODYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhkNCwweDAyLDB4MTYsMHg0MH0sCi0gIDE2LDB4MTU5NiwwLHsweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNWE2LDAsezB4ZjAsMHhmMCwweGRkLDB4ZWMsMHg3ZCwweDAyLDB4MDUsMHg4NiwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDE1YjYsMCx7MHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NH0sCi0gIDE2LDB4MTVjNiwwLHsweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgIDYsMHgxNWQ2LDAsezB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNWRjLDAsezB4ZGQsMHhjZSwweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmYSwweDdkLDB4MDIsMHgwNSwweDg2LDB4OTB9LAotICAxNiwweDE1ZWMsMCx7MHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTVmYywwLHsweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkfSwKLSAgMTYsMHgxNjBjLDAsezB4ZGMsMHgwMiwweDE2LDB4NDAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGY4LDB4N2QsMHgwMiwweDA1LDB4ODZ9LAotICAxNiwweDE2MWMsMCx7MHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNCwweDAwLDB4MDUsMHgwNX0sCi0gIDE2LDB4MTYyYywwLHsweDg2LDB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwfSwKLSAgMTYsMHgxNjNjLDAsezB4ZjAsMHhmMCwweGRkLDB4ZGEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODZ9LAotICAxNiwweDE2NGMsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZn0sCi0gICA1LDB4MTY1YywwLHsweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9LAotICAxNiwweDE2NjEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3NiwweDdjLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH0sCi0gIDE2LDB4MTY3MSwwLHsweDkwLDB4NzYsMHg3ZCwweGUwLDB4OTAsMHg3ZiwweDZmLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwfSwKLSAgIDksMHgxNjgxLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfSwKLSAgMTYsMHgxNjhhLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODN9LAotICAxNiwweDE2OWEsMCx7MHgwNSwweDg2LDB4YzAsMHg4NCwweGMwLDB4ODUsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YmYsMHgwMCwweDAzLDB4MDIsMHgxN30sCi0gIDE2LDB4MTZhYSwwLHsweDAxLDB4OTAsMHg3ZiwweDk2LDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHgxNmJhLDAsezB4NjIsMHhlMCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4N2Z9LAotICAxNiwweDE2Y2EsMCx7MHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4NzYsMHg4ZSwweGUwLDB4YjQsMHgwMSwweDA1LDB4MDUsMHg4Nn0sCi0gIDE2LDB4MTZkYSwwLHsweDAyLDB4MTYsMHhmNiwweGI0LDB4MDIsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4ZWIsMHgwNSwweDg2LDB4MDIsMHgxNiwweGZifSwKLSAgMTYsMHgxNmVhLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGYsMHhmOCwweDAyLDB4MTYsMHhmYiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGZ9LAotICAxNiwweDE2ZmEsMCx7MHhmYSwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweGQwLDB4ODUsMHhkMCwweDg0LDB4MDUsMHg4NiwweGQwLDB4ODMsMHhkMH0sCi0gIDEyLDB4MTcwYSwwLHsweDgyLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn0sCi0gIDE2LDB4MTcxNiwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4ZDEsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifSwKLSAgMTAsMHgxNzI2LDAsezB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhlMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MjJ9LAotICAxNiwweDE3MzAsMCx7MHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZTAsMHhlOCwweGMwLDB4ZTAsMHg3OCwweDc4LDB4ZTgsMHgxNCwweGY4LDB4NzAsMHhmYn0sCi0gIDEwLDB4MTc0MCwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfSwKLSAgIDcsMHgxNzRhLDAsezB4OTAsMHg3ZiwweGM1LDB4NzQsMHgwMiwweGYwLDB4MjJ9LAotICAxNiwweDE3NTEsMCx7MHg5MCwweDdlLDB4YzAsMHhlMCwweDkwLDB4NzYsMHg0NSwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHg5MCwweDc2LDB4NDQsMHhmMH0sCi0gIDE2LDB4MTc2MSwwLHsweDkwLDB4N2UsMHhjMiwweGUwLDB4OTAsMHg3NiwweDQzLDB4ZjAsMHhiNCwweDAwLDB4MDMsMHgwMiwweDE3LDB4NzgsMHg5MCwweDc2fSwKLSAgMTYsMHgxNzcxLDAsezB4MTksMHg3NCwweDAzLDB4ZjAsMHgwMiwweDE3LDB4OGUsMHg5MCwweDc2LDB4NDQsMHhlMCwweGI0LDB4YmIsMHgwOSwweDkwLDB4NzZ9LAotICAxNiwweDE3ODEsMCx7MHgxOSwweDc0LDB4MDIsMHhmMCwweDAyLDB4MTcsMHg4ZSwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg0Mn0sCi0gICAzLDB4MTc5MSwwLHsweGU0LDB4ZjAsMHgyMn0sCi0gICA0LDB4MTc5NCwwLHsweDhkLDB4MjksMHg4YiwweDJhfSwKLSAgMTYsMHgxNzk4LDAsezB4MTIsMHg0YSwweDU1LDB4ZWEsMHg0OSwweDYwLDB4NTcsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2F9LAotICAxNiwweDE3YTgsMCx7MHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweGFiLDB4MmIsMHhhYSwweDJjLDB4YTksMHgyZH0sCi0gIDE2LDB4MTdiOCwwLHsweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweGZmLDB4NjQsMHgwNCwweDYwLDB4MDUsMHhlZiwweDY0LDB4MDUsMHg3MCwweDJlfSwKLSAgMTYsMHgxN2M4LDAsezB4ZWYsMHhiNCwweDA0LDB4MTUsMHg5MCwweDAwLDB4MDIsMHgxMiwweDM2LDB4YWIsMHg2NSwweDI5LDB4NzAsMHgwYiwweDkwLDB4MDB9LAotICAxNiwweDE3ZDgsMCx7MHgwMywweDEyLDB4MzYsMHhhYiwweDY1LDB4MmEsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZn0sCi0gIDE2LDB4MTdlOCwwLHsweGVlLDB4M2EsMHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweDgwLDB4YmMsMHg3YiwweDAwfSwKLSAgIDQsMHgxN2Y4LDAsezB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDE3ZmMsMCx7MHgyMn0sCi0gICAzLDB4MTdmZCwwLHsweGMyLDB4OGIsMHgzMn0sCi0gIDE2LDB4MTgwMCwwLHsweDkwLDB4NzYsMHg5MCwweGUwLDB4MTQsMHg2MCwweDM3LDB4MTQsMHg3MCwweDAyLDB4MDEsMHhkOCwweDE0LDB4NzAsMHgwMiwweDIxfSwKLSAgMTYsMHgxODEwLDAsezB4NzIsMHgxNCwweDcwLDB4MDIsMHg0MSwweDNiLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg2MSwweDAzLDB4OTAsMHg3ZiwweGZjLDB4NzR9LAotICAxNiwweDE4MjAsMCx7MHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg1NH0sCi0gIDE2LDB4MTgzMCwwLHsweDA1LDB4ZjAsMHg5MCwweDgwLDB4MDEsMHhmMCwweGU0LDB4OTAsMHg3NiwweDFhLDB4ZjAsMHhjMiwweDJlLDB4MjIsMHg5MCwweDc2fSwKLSAgMTYsMHgxODQwLDAsezB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9LAotICAxNiwweDE4NTAsMCx7MHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDFhLDB4ZTAsMHhiNCwweDAxLDB4MDgsMHg5MH0sCi0gIDE2LDB4MTg2MCwwLHsweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgyMiwweDkwfSwKLSAgMTYsMHgxODcwLDAsezB4N2YsMHhmYywweDc0LDB4NzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9LAotICAxNiwweDE4ODAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH0sCi0gIDE2LDB4MTg5MCwwLHsweGYwLDB4ZWYsMHhiNCwweDAyLDB4MjIsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDY4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjfSwKLSAgMTYsMHgxOGEwLDAsezB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTB9LAotICAxNiwweDE4YjAsMCx7MHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweDMwLDB4M2YsMHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZX0sCi0gIDE2LDB4MThjMCwwLHsweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZifSwKLSAgMTYsMHgxOGQwLDAsezB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmZSwweGYwLDB4NDR9LAotICAxNiwweDE4ZTAsMCx7MHgwMiwweGYwLDB4MzAsMHgzZSwweDA2LDB4ZTAsMHg0NCwweDA0LDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MThmMCwwLHsweGZiLDB4ZjAsMHg5MCwweDc2LDB4MWEsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxfSwKLSAgMTYsMHgxOTAwLDAsezB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHgzMCwweGYwLDB4OTB9LAotICAxNiwweDE5MTAsMCx7MHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyYiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MTkyMCwwLHsweGZkLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyMiwweDkwfSwKLSAgMTYsMHgxOTMwLDAsezB4N2YsMHhmYywweDc0LDB4MWMsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9LAotICAxNiwweDE5NDAsMCx7MHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMiwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MH0sCi0gIDE2LDB4MTk1MCwwLHsweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3fSwKLSAgMTYsMHgxOTYwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDJ9LAotICAxNiwweDE5NzAsMCx7MHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg0NCwweDA4LDB4ZjAsMHgzMH0sCi0gIDE2LDB4MTk4MCwwLHsweDNlLDB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwfSwKLSAgMTYsMHgxOTkwLDAsezB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzZ9LAotICAxNiwweDE5YTAsMCx7MHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGNjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NH0sCi0gIDE2LDB4MTliMCwwLHsweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJiLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0fSwKLSAgMTYsMHgxOWMwLDAsezB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTB9LAotICAxNiwweDE5ZDAsMCx7MHg3ZiwweGZjLDB4NzQsMHhjOCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZn0sCi0gIDE2LDB4MTllMCwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwfSwKLSAgMTYsMHgxOWYwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4OTgsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDFhMDAsMCx7MHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4NWYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZH0sCi0gIDE2LDB4MWExMCwwLHsweGYwLDB4NDQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5fSwKLSAgMTYsMHgxYTIwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjB9LAotICAxNiwweDFhMzAsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDIsMHgyZSwweDIyLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg1NH0sCi0gIDE2LDB4MWE0MCwwLHsweGZlLDB4ZjAsMHg0NCwweDAyLDB4ZjAsMHg0NCwweDA4LDB4ZjAsMHgzMCwweDNlLDB4MDYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwfSwKLSAgMTYsMHgxYTUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9LAotICAxNiwweDFhNjAsMCx7MHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MjUsMHg5MH0sCi0gIDE2LDB4MWE3MCwwLHsweDdmLDB4ZmMsMHg3NCwweGI0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJifSwKLSAgMTYsMHgxYTgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9LAotICAxNiwweDFhOTAsMCx7MHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhiMCwweGYwLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MWFhMCwwLHsweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDhmLDB4NzQsMHgyZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAyfSwKLSAgMTYsMHgxYWIwLDAsezB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDN9LAotICAxNiwweDFhYzAsMCx7MHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4Zn0sCi0gIDE2LDB4MWFkMCwwLHsweDc0LDB4NWYsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NDQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDc2fSwKLSAgMTYsMHgxYWUwLDAsezB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjB9LAotICAxNiwweDFhZjAsMCx7MHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMn0sCi0gICA0LDB4MWIwMCwwLHsweGYwLDB4ZDIsMHgyZSwweDIyfSwKLSAgMTYsMHgxYjA0LDAsezB4MzAsMHgyYywweDM4LDB4YzIsMHgyYywweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2N9LAotICAxNiwweDFiMTQsMCx7MHg3NCwweGMwLDB4ZjAsMHhhMywweDc0LDB4MTQsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGQsMHhlNH0sCi0gIDE2LDB4MWIyNCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweDEwLDB4ZjAsMHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwMywweDBifSwKLSAgMTIsMHgxYjM0LDAsezB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHgxOCwweGYwLDB4YTMsMHhmMCwweDIyfSwKLSAgMTYsMHgxYjQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYjcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYmQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFiZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWM4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxYzkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2MwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFjZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWNlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxY2YwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWQ3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWRkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFkZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWUwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWUzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWU5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNCwweDFlYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlY2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFlZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmMmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gICAyLDB4MWYzZSwwLHsweDAwLDB4MDB9LAotICAxNiwweDFmNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWY1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWY4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDFmZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MWZlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgxZmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjAxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjA3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMDgwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjBkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMGUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIwZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjEwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjEzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMTcwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjE5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWEwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMWQwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIxZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjFmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjAwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjIyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMjkwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmMwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIyZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMmYwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzIwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzUwLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE0LDB4MjM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzN2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjM4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyMzllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzYWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2NlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDIzZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjNlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyM2ZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0MGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0M2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0NmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjQ3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNDhlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0OWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0Y2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjRkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNGVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI0ZmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjUwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1MmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjUzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1NWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNTdlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1OGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjU5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1YmUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI1ZWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2MWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2NGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2N2UsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjY4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNjllLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2YWUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjZiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNmNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2ZGUsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE0LDB4MjZlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI2ZmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjcwYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzFjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3MmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjczYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzRjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3NWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc2YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyNzdjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3OGMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4Mjc5YywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyN2FjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3YmMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gIDE2LDB4MjdjYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfSwKLSAgMTYsMHgyN2RjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9LAotICAxNiwweDI3ZWMsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH0sCi0gICA1LDB4MjdmYywwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MjJ9LAotICAxNiwweDI4MDEsMCx7MHhjMiwweDIwLDB4YzIsMHgyMSwweGMyLDB4MmEsMHg5MCwweDdmLDB4ZTgsMHhlMCwweDEyLDB4MzcsMHhmOSwweDI4LDB4MzAsMHgwMH0sCi0gIDE2LDB4MjgxMSwwLHsweDI4LDB4OGMsMHgwMSwweDI4LDB4YTIsMHgwMiwweDJhLDB4MWYsMHgyMSwweDJhLDB4NmEsMHgyMiwweDI5LDB4M2QsMHg4MCwweDI5fSwKLSAgMTYsMHgyODIxLDAsezB4N2QsMHg4MSwweDI5LDB4ZDEsMHg4MiwweDJhLDB4ODQsMHhhMSwweDJhLDB4YmEsMHhhMiwweDAwLDB4MDAsMHgyYSwweGJmLDB4OTB9LAotICAxNiwweDI4MzEsMCx7MHg3ZiwweGU5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgyNCwweGZlLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDNiLDB4MjQsMHhmY30sCi0gIDE2LDB4Mjg0MSwwLHsweDcwLDB4NDAsMHgxMiwweDNmLDB4ZTUsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFkLDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmfSwKLSAgMTYsMHgyODUxLDAsezB4ZWEsMHhlMCwweGI0LDB4MDEsMHgwNCwweGMyLDB4MjIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjB9LAotICAxNiwweDI4NjEsMCx7MHg0MSwweGNiLDB4MTIsMHg0ZSwweDFmLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhkMiwweDIyLDB4NDEsMHhjYn0sCi0gIDE2LDB4Mjg3MSwwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfSwKLSAgMTYsMHgyODgxLDAsezB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjR9LAotICAxNiwweDI4OTEsMCx7MHhmNSwweDcwLDB4MDUsMHgxMiwweDQ4LDB4NjMsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MX0sCi0gIDE2LDB4MjhhMSwwLHsweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGZkLDB4NjAsMHg1NCwweDI0LDB4MDIsMHg2MCwweDAyLDB4MjEsMHgzNCwweDEyfSwKLSAgMTYsMHgyOGIxLDAsezB4NGUsMHgxZCwweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVjLDB4ZTB9LAotICAxNiwweDI4YzEsMCx7MHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNH0sCi0gIDE2LDB4MjhkMSwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4N2YsMHhlYywweGUwLDB4NTQsMHg4MCwweGZmfSwKLSAgMTYsMHgyOGUxLDAsezB4MTMsMHgxMywweDEzLDB4NTQsMHgxZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHg5MCwweDdmLDB4ZDcsMHhmMCwweGUwLDB4NDR9LAotICAxNiwweDI4ZjEsMCx7MHgyMCwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDEyLDB4NGUsMHgxZn0sCi0gIDE2LDB4MjkwMSwwLHsweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg3MCwweDIwLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0fSwKLSAgMTYsMHgyOTExLDAsezB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNCwweGY1LDB4ODJ9LAotICAxNiwweDI5MjEsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4MjkzMSwwLHsweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlOSwweGUwfSwKLSAgMTYsMHgyOTQxLDAsezB4NjAsMHgxMiwweDI0LDB4ZjgsMHg2MCwweDA5LDB4MjQsMHgwMiwweDcwLDB4MjksMHgxMiwweDQzLDB4ZTcsMHg0MSwweGNiLDB4MTJ9LAotICAxNiwweDI5NTEsMCx7MHg0ZCwweGNhLDB4NDEsMHhjYiwweDEyLDB4NGUsMHgxYiwweGEyLDB4MjIsMHhlNCwweDMzLDB4ZmYsMHgyNSwweGUwLDB4ZmYsMHhhMn0sCi0gIDE2LDB4Mjk2MSwwLHsweDIzLDB4ZTQsMHgzMywweDRmLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyfSwKLSAgMTYsMHgyOTcxLDAsezB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTB9LAotICAxNiwweDI5ODEsMCx7MHg2MCwweDMzLDB4MjQsMHhmNiwweDYwLDB4MmEsMHgyNCwweDA0LDB4NzAsMHgzZCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhkZX0sCi0gIDE2LDB4Mjk5MSwwLHsweDYwLDB4MGMsMHgwNCwweDcwLDB4MTIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmfSwKLSAgMTYsMHgyOWExLDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2J9LAotICAxNiwweDI5YjEsMCx7MHgxMiwweDQ3LDB4NDUsMHg0MSwweGNiLDB4MTIsMHg0ZSwweDFiLDB4ZTQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MjljMSwwLHsweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNifSwKLSAgMTYsMHgyOWQxLDAsezB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNCwweGY0LDB4NjAsMHgzNCwweDI0LDB4MGMsMHg3MCwweDM5LDB4MTIsMHg0ZSwweDFiLDB4OTB9LAotICAxNiwweDI5ZTEsMCx7MHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNX0sCi0gIDE2LDB4MjlmMSwwLHsweGUwLDB4MjQsMHhiNCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGZkLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHgyYTAxLDAsezB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTB9LAotICAxNiwweDJhMTEsMCx7MHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn0sCi0gIDE2LDB4MmEyMSwwLHsweGU5LDB4ZTAsMHgyNCwweGY2LDB4NjAsMHgxMiwweDE0LDB4NjAsMHgxYSwweDI0LDB4MDIsMHg3MCwweDFkLDB4ZDIsMHgyMCwweDkwfSwKLSAgMTYsMHgyYTMxLDAsezB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyLDB4MjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDF9LAotICAxNiwweDJhNDEsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MjAsMHgxOCwweDkwLDB4N2YsMHhlZX0sCi0gIDE2LDB4MmE1MSwwLHsweGUwLDB4NzAsMHgwNCwweGEzLDB4ZTAsMHg2MCwweDBiLDB4ZDIsMHgyOSwweGQyLDB4MjcsMHgxMiwweDE3LDB4NGEsMHhkMiwweDJhfSwKLSAgMTYsMHgyYTYxLDAsezB4ODAsMHgwMywweDEyLDB4MDgsMHgwMCwweGMyLDB4MjAsMHg4MCwweDYxLDB4OTAsMHg3ZiwweGVlLDB4ZTAsMHg3MCwweDA0LDB4YTN9LAotICAxNiwweDJhNzEsMCx7MHhlMCwweDYwLDB4MGIsMHhkMiwweDI5LDB4ZDIsMHgyOCwweDEyLDB4MTcsMHg0YSwweGQyLDB4MmEsMHg4MCwweDRjLDB4MTIsMHgzOH0sCi0gIDE2LDB4MmE4MSwwLHsweDc0LDB4ODAsMHg0NywweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZSwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWEsMHgyNCwweDAyfSwKLSAgMTYsMHgyYTkxLDAsezB4NzAsMHgxZCwweGQyLDB4MjEsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDgwLDB4MTIsMHhkMiwweDIxLDB4OTB9LAotICAxNiwweDJhYTEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMH0sCi0gIDE2LDB4MmFiMSwwLHsweDIxLDB4MDMsMHgxMiwweDEwLDB4MDAsMHhjMiwweDIxLDB4ODAsMHgxMSwweDEyLDB4MmEsMHhkNiwweDgwLDB4MGMsMHgxMiwweDRlfSwKLSAgMTYsMHgyYWMxLDAsezB4MjEsMHg1MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMCwweDJhLDB4MDcsMHg5MCwweDdmLDB4YjR9LAotICAgNSwweDJhZDEsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDIyfSwKLSAgMTYsMHgyYWQ2LDAsezB4ZTQsMHg5MCwweDc2LDB4MjcsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDJhZTYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4MmFmNiwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjcsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgyYjA2LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDJiMTYsMCx7MHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDI4LDB4ZjAsMHgyNH0sCi0gIDE2LDB4MmIyNiwwLHsweDlmLDB4NzAsMHgwMiwweGExLDB4NzQsMHgyNCwweDIxLDB4NjAsMHgwMiwweGExLDB4YTEsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fSwKLSAgMTYsMHgyYjM2LDAsezB4N2UsMHg3MCwweDAyLDB4NjEsMHhmYywweDE0LDB4NzAsMHgwMiwweDgxLDB4YjUsMHgyNCwweDAyLDB4NjAsMHgwMiwweGExLDB4NmN9LAotICAxNiwweDJiNDYsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmY30sCi0gIDE2LDB4MmI1NiwwLHsweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4fSwKLSAgMTYsMHgyYjY2LDAsezB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDAsMHg3NCwweDQ0LDB4ZjAsMHhhMywweDc0LDB4YWN9LAotICAxNiwweDJiNzYsMCx7MHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMH0sCi0gIDE2LDB4MmI4NiwwLHsweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkfSwKLSAgMTYsMHgyYjk2LDAsezB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg4MCwweDdhLDB4YmIsMHg3OSwweDAwLDB4NzgsMHgwMCwweGMzLDB4MTJ9LAotICAxNiwweDJiYTYsMCx7MHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhM30sCi0gIDE2LDB4MmJiNiwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fSwKLSAgMTYsMHgyYmM2LDAsezB4NDMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmV9LAotICAxNiwweDJiZDYsMCx7MHhhMywweGUwLDB4ZmYsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg2MH0sCi0gIDE2LDB4MmJlNiwwLHsweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfSwKLSAgMTYsMHgyYmY2LDAsezB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDIyLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDd9LAotICAxNiwweDJjMDYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhM30sCi0gIDE2LDB4MmMxNiwwLHsweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzfSwKLSAgMTYsMHgyYzI2LDAsezB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjV9LAotICAxNiwweDJjMzYsMCx7MHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MmM0NiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdifSwKLSAgMTYsMHgyYzU2LDAsezB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDcwLDB4MTMsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDJjNjYsMCx7MHg3NCwweDgwLDB4ZjAsMHhhMywweDc0LDB4YmIsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMH0sCi0gIDE2LDB4MmM3NiwwLHsweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgyYzg2LDAsezB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHgwMCwweDdhLDB4Nzd9LAotICAxNiwweDJjOTYsMCx7MHg3OSwweDAxLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NjAsMHgwMiwweGExLDB4YTgsMHg5MCwweDdmLDB4MDAsMHhmMH0sCi0gIDE2LDB4MmNhNiwwLHsweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwfSwKLSAgMTYsMHgyY2I2LDAsezB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAxNiwweDJjYzYsMCx7MHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZmLDB4N2IsMHg0NCwweDdhLDB4YWMsMHg3OX0sCi0gIDE2LDB4MmNkNiwwLHsweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzfSwKLSAgMTYsMHgyY2U2LDAsezB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTB9LAotICAxNiwweDJjZjYsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhhM30sCi0gIDE2LDB4MmQwNiwwLHsweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwfSwKLSAgMTYsMHgyZDE2LDAsezB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjB9LAotICAxNiwweDJkMjYsMCx7MHhlNCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZn0sCi0gIDE2LDB4MmQzNiwwLHsweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzfSwKLSAgMTYsMHgyZDQ2LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4Mzd9LAotICAxNiwweDJkNTYsMCx7MHhhYiwweDcwLDB4NGYsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MmQ2NiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgMTYsMHgyZDc2LDAsezB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDFlLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGZ9LAotICAxNiwweDJkODYsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NH0sCi0gIDE2LDB4MmQ5NiwwLHsweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSwKLSAgIDMsMHgyZGE2LDAsezB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgyZGE5LDAsezB4ZTQsMHg5MCwweDc2LDB4MzYsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDJkYjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4MmRjOSwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1fSwKLSAgMTYsMHgyZGQ5LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmZ9LAotICAxNiwweDJkZTksMCx7MHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMH0sCi0gIDE2LDB4MmRmOSwwLHsweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA1fSwKLSAgMTYsMHgyZTA5LDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTR9LAotICAxNiwweDJlMTksMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNX0sCi0gIDE2LDB4MmUyOSwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfSwKLSAgMTYsMHgyZTM5LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjR9LAotICAxNiwweDJlNDksMCx7MHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH0sCi0gIDE2LDB4MmU1OSwwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fSwKLSAgMTYsMHgyZTY5LDAsezB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAxNiwweDJlNzksMCx7MHg3NCwweDAzLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MmU4OSwwLHsweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fSwKLSAgMTYsMHgyZTk5LDAsezB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTR9LAotICAxNiwweDJlYTksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA2LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4MmViOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwfSwKLSAgMTYsMHgyZWM5LDAsezB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDJlZDksMCx7MHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4MmVlOSwwLHsweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0fSwKLSAgMTYsMHgyZWY5LDAsezB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDN9LAotICAxNiwweDJmMDksMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMH0sCi0gIDE2LDB4MmYxOSwwLHsweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA4LDB4ZjAsMHhlZiwweDc1fSwKLSAgMTYsMHgyZjI5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4OTB9LAotICAxNiwweDJmMzksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4MmY0OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyfSwKLSAgMTYsMHgyZjU5LDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MGEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjV9LAotICAxNiwweDJmNjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMH0sCi0gIDE2LDB4MmY3OSwwLHsweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyfSwKLSAgMTYsMHgyZjg5LDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDJmOTksMCx7MHgwOSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MmZhOSwwLHsweDc0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0fSwKLSAgMTYsMHgyZmI5LDAsezB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTR9LAotICAxNiwweDJmYzksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA3LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE0LDB4MmZkOSwwLHsweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4MjJ9LAotICAxNiwweDJmZTcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDI2LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0sCi0gICA4LDB4MmZmNywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAgMSwweDJmZmYsMCx7MHgzMn0sCi0gIDE2LDB4MzAwMCwwLHsweDkwLDB4N2YsMHhiNiwweGUwLDB4MjAsMHhlMSwweDAyLDB4YzIsMHgzZCwweGQyLDB4MzYsMHgyMCwweDM2LDB4MDIsMHg0MSwweDZlfSwKLSAgMTYsMHgzMDEwLDAsezB4MzAsMHgzZCwweDAyLDB4NDEsMHg2ZSwweDkwLDB4ODAsMHgwNywweGUwLDB4NjAsMHgwNCwweGQyLDB4MzYsMHg4MCwweDAyLDB4YzJ9LAotICAxNiwweDMwMjAsMCx7MHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4MmUsMHhkMiwweDM1LDB4ZTQsMHhmNSwweDFhLDB4OTAsMHg4MCwweDA0LDB4ZTAsMHhmNX0sCi0gIDE2LDB4MzAzMCwwLHsweDE5LDB4NzQsMHgwOCwweDI1LDB4MGUsMHhmOCwweGE2LDB4MTksMHg4NSwweDE5LDB4MTgsMHhlNSwweDE4LDB4MjAsMHhlNywweDA0fSwKLSAgMTYsMHgzMDQwLDAsezB4ZDIsMHgzOCwweDgwLDB4MDIsMHhjMiwweDM4LDB4MzAsMHgzOCwweDAyLDB4MjEsMHhkNCwweGU0LDB4ZjUsMHgxNiwweGU1LDB4MTl9LAotICAxNiwweDMwNTAsMCx7MHhiNCwweGYwLDB4MGMsMHhkMiwweDM5LDB4NzUsMHgwOCwweDA0LDB4NzUsMHgwOSwweGYwLDB4MDUsMHgwZSwweDgwLDB4MDIsMHgwNX0sCi0gIDE2LDB4MzA2MCwwLHsweDE2LDB4ZTUsMHgxOSwweDY0LDB4ZjcsMHg3MCwweDNkLDB4YzIsMHgzOSwweGU1LDB4MGUsMHgyNCwweGZlLDB4NjAsMHgxNywweDE0fSwKLSAgMTYsMHgzMDcwLDAsezB4NjAsMHgyMiwweDI0LDB4MDMsMHg3MCwweDI5LDB4NzUsMHgwOCwweDA1LDB4NzUsMHgwOSwweGY3LDB4ZTQsMHhmNSwweDBhLDB4ZjV9LAotICAxNiwweDMwODAsMCx7MHgwYiwweDc1LDB4MGUsMHgwNCwweDgwLDB4MjAsMHg3NSwweDA4LDB4MDYsMHg3NSwweDBhLDB4ZjcsMHhlNCwweGY1LDB4MGIsMHg3NX0sCi0gIDE2LDB4MzA5MCwwLHsweDBlLDB4MDQsMHg4MCwweDEyLDB4NzUsMHgwOCwweDA3LDB4NzUsMHgwYiwweGY3LDB4NzUsMHgwZSwweDA0LDB4ODAsMHgwNywweDEyfSwKLSAgMTYsMHgzMGEwLDAsezB4NGQsMHhkYSwweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxOSwweDU0LDB4ZjgsMHg2NCwweGY4LDB4NzAsMHgzYiwweGMyLDB4MzV9LAotICAxNiwweDMwYjAsMCx7MHhlNSwweDE5LDB4MjQsMHgwNywweDYwLDB4MGMsMHgyNCwweGZjLDB4NjAsMHgwOCwweDI0LDB4MDUsMHgyNCwweGY4LDB4NTAsMHgwNn0sCi0gIDE2LDB4MzBjMCwwLHsweDgwLDB4MDgsMHhkMiwweDNhLDB4ODAsMHgwNiwweGMyLDB4M2EsMHg4MCwweDAyLDB4ZDIsMHgzYSwweDc1LDB4MWEsMHgwMSwweDIwfSwKLSAgMTYsMHgzMGQwLDAsezB4M2EsMHgxOSwweDkwLDB4N2UsMHg4MCwweDc0LDB4MGYsMHhmMCwweGEzLDB4ZTUsMHgxOSwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDMwZTAsMCx7MHhmMCwweDkwLDB4N2YsMHhiNywweDc0LDB4MDQsMHhmMCwweDgwLDB4MDIsMHgwNSwweDE2LDB4MjAsMHgzOSwweDZkLDB4ZTUsMHgxOX0sCi0gIDE2LDB4MzBmMCwwLHsweDY0LDB4ZjcsMHg2MCwweDY3LDB4ZTUsMHgxYSwweDcwLDB4NjMsMHhlNSwweDE4LDB4NTQsMHhmMCwweDY0LDB4ZjAsMHg3MCwweDU5fSwKLSAgMTYsMHgzMTAwLDAsezB4ODUsMHgxOCwweDE5LDB4ZjUsMHgwZSwweGU1LDB4MTksMHgyNCwweDBmLDB4NjAsMHgxYiwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MjR9LAotICAxNiwweDMxMTAsMCx7MHhmZCwweDYwLDB4MjIsMHgxNCwweDYwLDB4MWYsMHgyNCwweDA1LDB4NzAsMHgyZiwweDc1LDB4MDgsMHgwMywweDA1LDB4MGUsMHg4NX0sCi0gIDE2LDB4MzEyMCwwLHsweDE4LDB4MDksMHhkMiwweDM3LDB4ODAsMHgyOCwweDc1LDB4MDgsMHgwMiwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHg3NSwweDE0fSwKLSAgMTYsMHgzMTMwLDAsezB4MDEsMHhkMiwweDM3LDB4ODAsMHgxOSwweDc1LDB4MDgsMHgwNSwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhlNCwweGY1LDB4MGF9LAotICAxNiwweDMxNDAsMCx7MHhmNSwweDBiLDB4NzUsMHgwZSwweDAzLDB4ZDIsMHgzNywweDgwLDB4MDUsMHgxMiwweDRkLDB4ZGEsMHhjMiwweDM1LDB4MzAsMHgzNX0sCi0gIDE2LDB4MzE1MCwwLHsweDBhLDB4ODUsMHgwOCwweDEzLDB4ODUsMHgxOCwweDEyLDB4ODAsMHgwMiwweDA1LDB4MTYsMHg4NSwweDE4LDB4MTksMHhlNSwweDE2fSwKLSAgMTYsMHgzMTYwLDAsezB4NjQsMHgwNCwweDcwLDB4NjIsMHhmNSwweDBlLDB4ZTUsMHgxOSwweDU0LDB4ZjAsMHhmNSwweDE5LDB4ZjUsMHgxNSwweDg1LDB4MTh9LAotICAxNiwweDMxNzAsMCx7MHgxOSwweGU1LDB4MTUsMHgyNCwweDcwLDB4NjAsMHgxOCwweDI0LDB4ZjAsMHg2MCwweDE0LDB4MjQsMHhmMCwweDYwLDB4MTAsMHgyNH0sCi0gIDE2LDB4MzE4MCwwLHsweGYwLDB4NjAsMHgxZSwweDI0LDB4ZjAsMHg2MCwweDFhLDB4MjQsMHhmMCwweDYwLDB4MDQsMHgyNCwweDYwLDB4NzAsMHgyNywweGU1fSwKLSAgMTYsMHgzMTkwLDAsezB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhkMiwweDM3LDB4ODB9LAotICAxNiwweDMxYTAsMCx7MHgxYSwweGU1LDB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHg3NX0sCi0gIDE2LDB4MzFiMCwwLHsweDE0LDB4MDEsMHhkMiwweDM3LDB4ODAsMHgwNSwweDEyLDB4NGQsMHhkYSwweGMyLDB4MzUsMHgzMCwweDM1LDB4MGEsMHg4NSwweDE5fSwKLSAgMTYsMHgzMWMwLDAsezB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweGU1LDB4MTYsMHhkMywweDk0LDB4MDUsMHg0MCwweDU3LDB4MTJ9LAotICAxNiwweDMxZDAsMCx7MHg0ZCwweGRhLDB4ODAsMHg1MiwweDMwLDB4MzksMHgxNywweGU1LDB4MGUsMHg3MCwweDBhLDB4ODUsMHgwOCwweDA5LDB4NzUsMHgwOH0sCi0gIDE2LDB4MzFlMCwwLHsweDA0LDB4MDUsMHgwZSwweDgwLDB4NDEsMHg3NCwweDA4LDB4MjUsMHgwZSwweGY4LDB4YTYsMHgxOSwweDgwLDB4MzgsMHgyMCwweDM3fSwKLSAgMTYsMHgzMWYwLDAsezB4MmEsMHhlNSwweDBlLDB4YjQsMHgwMSwweDBmLDB4ODUsMHgwOCwweDBhLDB4ODUsMHgwOSwweDBiLDB4ODUsMHgxMywweDA4LDB4ODV9LAotICAxNiwweDMyMDAsMCx7MHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ZTUsMHgxNCwweGI0LDB4MDEsMHgxYywweDg1LDB4MDgsMHgwYSwweGU0LDB4ZjUsMHgwYn0sCi0gIDE2LDB4MzIxMCwwLHsweDg1LDB4MTMsMHgwOCwweDg1LDB4MTIsMHgwOSwweDc1LDB4MGUsMHgwNCwweDgwLDB4MGIsMHhlNSwweDE0LDB4YjQsMHgwMSwweDA2fSwKLSAgMTYsMHgzMjIwLDAsezB4ZTQsMHhmNSwweDBiLDB4NzUsMHgwZSwweDA0LDB4ZTQsMHhmNSwweDFhLDB4MzAsMHgzNSwweDAyLDB4MDUsMHgwZSwweGU1LDB4MGV9LAotICAxNiwweDMyMzAsMCx7MHhkMywweDk0LDB4MDMsMHg1MCwweDAyLDB4MDEsMHgwYiwweGMyLDB4MzcsMHhlNCwweGY1LDB4MGUsMHhmNSwweDEwLDB4YzIsMHgzNn0sCi0gIDE2LDB4MzI0MCwwLHsweGQyLDB4M2QsMHhmNSwweDE0LDB4NzQsMHgwOCwweDI1LDB4MTAsMHhmOCwweGU2LDB4ZmYsMHg3NCwweDgwLDB4MjUsMHgxMCwweGY1fSwKLSAgMTYsMHgzMjUwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MDgsMHgyNSwweDEwLDB4ZjgsMHhlNCwweGY2LDB4MDV9LAotICAxNSwweDMyNjAsMCx7MHgxMCwweGU1LDB4MTAsMHhiNCwweDA0LDB4ZGUsMHg5MCwweDdmLDB4YjcsMHg3NCwweDA0LDB4ZjAsMHgwMSwweDBiLDB4MjJ9LAotICAxNiwweDMyNmYsMCx7MHg5MCwweDc2LDB4MTgsMHhlMCwweGZmLDB4NjQsMHgwNSwweDcwLDB4NDIsMHg5MCwweDc1LDB4YWIsMHhlMCwweGI0LDB4MDEsMHgxOX0sCi0gIDE2LDB4MzI3ZiwwLHsweDkwLDB4NzIsMHgzNywweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MCwweDgwLDB4MzEsMHhmMCwweDkwfSwKLSAgMTYsMHgzMjhmLDAsezB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHg4MCwweDIyLDB4ZTQsMHg5MCwweDcyLDB4MzcsMHhmMCwweDkwLDB4NzV9LAotICAxNiwweDMyOWYsMCx7MHhhZCwweGUwLDB4OTAsMHg3MiwweDJiLDB4ZjAsMHhlMCwweDI0LDB4ODAsMHhmMCwweGUwLDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MH0sCi0gIDE2LDB4MzJhZiwwLHsweDgwLDB4MzEsMHhmMCwweDkwLDB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHhlZiwweDY0LDB4MDYsMHg2MCwweDAyfSwKLSAgMTYsMHgzMmJmLDAsezB4ODEsMHg5OSwweDkwLDB4NzIsMHgzOSwweDc0LDB4MDQsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmYsMHgyNCwweGZlLDB4OTB9LAotICAxNiwweDMyY2YsMCx7MHg3MiwweDA0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4MzJkZiwwLHsweDgzLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg1NCwweDkwLDB4NzIsMHgzNiwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZmfSwKLSAgMTYsMHgzMmVmLDAsezB4MjQsMHhmZCwweDYwLDB4MjgsMHgyNCwweGZlLDB4NjAsMHgyNCwweDI0LDB4MDMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MWN9LAotICAxNiwweDMyZmYsMCx7MHg4MSwweDhjLDB4NzQsMHgyMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzQsMHgyOH0sCi0gIDE2LDB4MzMwZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweDkwLDB4NzIsMHgwNCwweGUwfSwKLSAgMTYsMHgzMzFmLDAsezB4ZmYsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzQsMHgzOCwweDJmLDB4ZjV9LAotICAxNiwweDMzMmYsMCx7MHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweGU0LDB4OTAsMHg3MiwweDM2LDB4ZjAsMHg5MH0sCi0gIDE2LDB4MzMzZiwwLHsweDcyLDB4MzksMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfSwKLSAgMTYsMHgzMzRmLDAsezB4ZTAsMHhmZiwweDdlLDB4MDAsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4NzAsMHgwNiwweDkwLDB4NzJ9LAotICAxNiwweDMzNWYsMCx7MHgwMiwweDc0LDB4M2IsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MH0sCi0gIDE2LDB4MzM2ZiwwLHsweDA0LDB4OTAsMHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweDgxLDB4MzUsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwfSwKLSAgMTYsMHgzMzdmLDAsezB4MDIsMHg4MSwweDM1LDB4ZWYsMHhmOCwweGU0LDB4OTAsMHg3NSwweDBkLDB4ZjAsMHhlOCwweDkwLDB4NzUsMHgwYywweGYwLDB4OTB9LAotICAxNiwweDMzOGYsMCx7MHg3MiwweDM0LDB4ZTAsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4MzM5ZiwwLHsweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwfSwKLSAgMTYsMHgzM2FmLDAsezB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweDdiLDB4ZDYsMHg3YSwweGE1LDB4Zjl9LAotICAxNiwweDMzYmYsMCx7MHhmOCwweGQzLDB4MTIsMHgzNywweDk1LDB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNn0sCi0gIDE2LDB4MzNjZiwwLHsweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwfSwKLSAgMTYsMHgzM2RmLDAsezB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNSwweGNlLDB4YTIsMHhlNywweDEzLDB4Y2UsMHgxMywweGQ4LDB4ZjgsMHhmZiwweDkwLDB4NzV9LAotICAxNiwweDMzZWYsMCx7MHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NH0sCi0gIDE2LDB4MzNmZiwwLHsweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTQsMHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0fSwKLSAgMTYsMHgzNDBmLDAsezB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDQsMHhlNCwweGYwLDB4YTN9LAotICAxNiwweDM0MWYsMCx7MHhmMCwweDkwLDB4NzIsMHgyYywweGUwLDB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNX0sCi0gIDE2LDB4MzQyZiwwLHsweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0fSwKLSAgMTYsMHgzNDNmLDAsezB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwMywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgyMSwweDgwLDB4NDAsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM0NGYsMCx7MHhlMCwweGZlLDB4NzQsMHgyMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOH0sCi0gIDE2LDB4MzQ1ZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwfSwKLSAgMTYsMHgzNDZmLDAsezB4ZmYsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZlLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWZ9LAotICAxNiwweDM0N2YsMCx7MHhmMCwweDc0LDB4MzgsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzIsMHgzOX0sCi0gIDExLDB4MzQ4ZiwwLHsweGUwLDB4MDQsMHhmMCwweGUwLDB4NjQsMHgwYSwweDYwLDB4MDIsMHg0MSwweGM3LDB4MjJ9LAotICAxNiwweDM0OWEsMCx7MHg5MCwweDc2LDB4MTgsMHhlMCwweGZmLDB4YjQsMHgwNSwweDIzLDB4OTAsMHg3MiwweDM3LDB4ZTAsMHg3MCwweDFkLDB4OTAsMHg3NX0sCi0gIDE2LDB4MzRhYSwwLHsweGFkLDB4ZTAsMHg5MCwweDcyLDB4MmIsMHhmMCwweGUwLDB4MjQsMHg4MCwweGYwLDB4ZTAsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwfSwKLSAgMTYsMHgzNGJhLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9LAotICAxNiwweDM0Y2EsMCx7MHhjMSwweDkxLDB4OTAsMHg3MiwweDM2LDB4ZTAsMHg2MCwweDAyLDB4YzEsMHg5MSwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgzMX0sCi0gIDE2LDB4MzRkYSwwLHsweDkwLDB4NzIsMHgwMywweDc0LDB4MDMsMHhmMCwweDkwLDB4NzIsMHgwMywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0fSwKLSAgMTYsMHgzNGVhLDAsezB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDcyLDB4MjksMHhlMCwweGZkLDB4ZWV9LAotICAxNiwweDM0ZmEsMCx7MHg2ZCwweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYSwweDUwLDB4MDgsMHg5MCwweDcyLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg4MH0sCi0gIDE2LDB4MzUwYSwwLHsweGQ1LDB4OTAsMHg3MiwweDM5LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHg3MCwweDA4LDB4OTAsMHg3MiwweDAzfSwKLSAgMTYsMHgzNTFhLDAsezB4ZTAsMHg5MCwweDcyLDB4MzksMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmQsMHgyNCwweGZlLDB4OTAsMHg3MiwweDJhLDB4ZjB9LAotICAxNiwweDM1MmEsMCx7MHhlZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZn0sCi0gIDE2LDB4MzUzYSwwLHsweDdlLDB4MDAsMHg5MCwweDc1LDB4MGMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4NzAsMHgwNiwweDkwLDB4NzIsMHgwMiwweDc0fSwKLSAgMTYsMHgzNTRhLDAsezB4ODAsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDA0LDB4OTB9LAotICAxNiwweDM1NWEsMCx7MHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweGMxLDB4MWIsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwLDB4MDIsMHhjMX0sCi0gIDE2LDB4MzU2YSwwLHsweDFiLDB4ZWYsMHhmOCwweGU0LDB4OTAsMHg3NSwweDBkLDB4ZjAsMHhlOCwweDkwLDB4NzUsMHgwYywweGYwLDB4ZWQsMHg3NSwweGYwfSwKLSAgMTYsMHgzNTdhLDAsezB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM1OGEsMCx7MHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4MzQsMHgwMCwweGYwLDB4ZTAsMHhmZX0sCi0gIDE2LDB4MzU5YSwwLHsweGEzLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweDdiLDB4ZDYsMHg3YSwweGE1LDB4ZjksMHhmOCwweGQzLDB4MTIsMHgzNywweDk1fSwKLSAgMTYsMHgzNWFhLDAsezB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTB9LAotICAxNiwweDM1YmEsMCx7MHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwLDB4ZmUsMHhhMywweGUwLDB4NzgsMHgwNX0sCi0gIDE2LDB4MzVjYSwwLHsweGNlLDB4YTIsMHhlNywweDEzLDB4Y2UsMHgxMywweGQ4LDB4ZjgsMHhmZiwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmfSwKLSAgMTYsMHgzNWRhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NCwweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTR9LAotICAxNiwweDM1ZWEsMCx7MHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0LDB4ZDIsMHhmMCwweGMzLDB4OTAsMHg3Mn0sCi0gIDE2LDB4MzVmYSwwLHsweDJjLDB4ZTAsMHg2NCwweDgwLDB4OTQsMHg4MCwweDUwLDB4MDQsMHhlNCwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzIsMHgyYywweGUwfSwKLSAgMTYsMHgzNjBhLDAsezB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDJ9LAotICAxNiwweDM2MWEsMCx7MHhmMCwweDkwLDB4NzIsMHgyYSwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0LDB4ZmUsMHg2MCwweDI5LDB4MjQsMHgwM30sCi0gIDE2LDB4MzYyYSwwLHsweDI0LDB4ZmIsMHg1MCwweDA0LDB4NjAsMHgyMSwweDgwLDB4NDAsMHg5MCwweDcyLDB4MDIsMHhlMCwweGZlLDB4NzQsMHgyMCwweDJmfSwKLSAgMTYsMHgzNjNhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDM2NGEsMCx7MHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmYsMHg5MCwweDcyLDB4MmEsMHhlMH0sCi0gIDE2LDB4MzY1YSwwLHsweGZlLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MzgsMHgyZSwweGY1fSwKLSAgMTYsMHgzNjZhLDAsezB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgwNiwweDkwLDB4NzJ9LAotICAxNiwweDM2N2EsMCx7MHgzOSwweDc0LDB4MGEsMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4MDQsMHhmMCwweGUwLDB4YzMsMHg5NCwweDBhLDB4NTAsMHgwMn0sCi0gICA4LDB4MzY4YSwwLHsweGExLDB4MTEsMHhlNCwweDkwLDB4NzYsMHg0MCwweGYwLDB4MjJ9LAotICAxNiwweDM2OTIsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4MjIsMHg1MCwweDAyLDB4ZTcsMHgyMiwweGJiLDB4ZmUsMHgwMn0sCi0gICA5LDB4MzZhMiwwLHsweGUzLDB4MjIsMHg4OSwweDgyLDB4OGEsMHg4MywweGU0LDB4OTMsMHgyMn0sCi0gIDE2LDB4MzZhYiwwLHsweGJiLDB4MDEsMHgwYywweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHgyMiwweDUwfSwKLSAgMTYsMHgzNmJiLDAsezB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGU2LDB4MjIsMHhiYiwweGZlLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4MjJ9LAotICAxMywweDM2Y2IsMCx7MHhlNSwweDgyLDB4MjksMHhmNSwweDgyLDB4ZTUsMHg4MywweDNhLDB4ZjUsMHg4MywweGU0LDB4OTMsMHgyMn0sCi0gIDE2LDB4MzZkOCwwLHsweGMyLDB4ZDUsMHhlYywweDMwLDB4ZTcsMHgwOSwweGIyLDB4ZDUsMHhlNCwweGMzLDB4OWQsMHhmZCwweGU0LDB4OWMsMHhmYywweGVlfSwKLSAgMTYsMHgzNmU4LDAsezB4MzAsMHhlNywweDE1LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MTIsMHgzOCwweDFmLDB4YzN9LAotICAxNiwweDM2ZjgsMCx7MHhlNCwweDlkLDB4ZmQsMHhlNCwweDljLDB4ZmMsMHg4MCwweDAzLDB4MTIsMHgzOCwweDFmLDB4MzAsMHhkNSwweDA3LDB4YzMsMHhlNH0sCi0gICA2LDB4MzcwOCwwLHsweDlmLDB4ZmYsMHhlNCwweDllLDB4ZmUsMHgyMn0sCi0gIDE2LDB4MzcwZSwwLHsweGJiLDB4MDEsMHgxMCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHhmNSwweGYwfSwKLSAgMTYsMHgzNzFlLDAsezB4YTMsMHhlMCwweDIyLDB4NTAsMHgwOSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ODYsMHhmMCwweDA4LDB4ZTYsMHgyMiwweGJiLDB4ZmV9LAotICAxNiwweDM3MmUsMCx7MHgwYSwweGU5LDB4MjUsMHg4MiwweGY4LDB4ZTIsMHhmNSwweGYwLDB4MDgsMHhlMiwweDIyLDB4ZTUsMHg4MywweDJhLDB4ZjUsMHg4M30sCi0gICA4LDB4MzczZSwwLHsweGU5LDB4OTMsMHhmNSwweGYwLDB4YTMsMHhlOSwweDkzLDB4MjJ9LAotICAxNiwweDM3NDYsMCx7MHhlOCwweDhmLDB4ZjAsMHhhNCwweGNjLDB4OGIsMHhmMCwweGE0LDB4MmMsMHhmYywweGU5LDB4OGUsMHhmMCwweGE0LDB4MmMsMHhmY30sCi0gIDE2LDB4Mzc1NiwwLHsweDhhLDB4ZjAsMHhlZCwweGE0LDB4MmMsMHhmYywweGVhLDB4OGUsMHhmMCwweGE0LDB4Y2QsMHhhOCwweGYwLDB4OGIsMHhmMCwweGE0fSwKLSAgMTYsMHgzNzY2LDAsezB4MmQsMHhjYywweDM4LDB4MjUsMHhmMCwweGZkLDB4ZTksMHg4ZiwweGYwLDB4YTQsMHgyYywweGNkLDB4MzUsMHhmMCwweGZjLDB4ZWJ9LAotICAxNiwweDM3NzYsMCx7MHg4ZSwweGYwLDB4YTQsMHhmZSwweGE5LDB4ZjAsMHhlYiwweDhmLDB4ZjAsMHhhNCwweGNmLDB4YzUsMHhmMCwweDJlLDB4Y2QsMHgzOX0sCi0gIDE1LDB4Mzc4NiwwLHsweGZlLDB4ZTQsMHgzYywweGZjLDB4ZWEsMHhhNCwweDJkLDB4Y2UsMHgzNSwweGYwLDB4ZmQsMHhlNCwweDNjLDB4ZmMsMHgyMn0sCi0gIDE2LDB4Mzc5NSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGVjLDB4NjQsMHg4MCwweGM4fSwKLSAgIDYsMHgzN2E1LDAsezB4NjQsMHg4MCwweDk4LDB4NDUsMHhmMCwweDIyfSwKLSAgMTYsMHgzN2FiLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9LAotICAgMSwweDM3YmIsMCx7MHgyMn0sCi0gIDEyLDB4MzdiYywwLHsweGVjLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHhhMywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHgyMn0sCi0gIDE2LDB4MzdjOCwwLHsweGE4LDB4ODIsMHg4NSwweDgzLDB4ZjAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDEyLDB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweDEyfSwKLSAgMTYsMHgzN2Q4LDAsezB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweGU0LDB4NzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODN9LAotICAxNiwweDM3ZTgsMCx7MHhjOCwweGM1LDB4ODIsMHhjOCwweGYwLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODMsMHhjOCwweGM1LDB4ODIsMHhjOH0sCi0gICAxLDB4MzdmOCwwLHsweDIyfSwKLSAgMTYsMHgzN2Y5LDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhmOCwweGU0LDB4OTMsMHg3MCwweDEyLDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwZCwweGEzLDB4YTN9LAotICAxNiwweDM4MDksMCx7MHg5MywweGY4LDB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDg4LDB4ODMsMHhlNCwweDczLDB4NzQsMHgwMiwweDkzLDB4NjgsMHg2MH0sCi0gICA2LDB4MzgxOSwwLHsweGVmLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkZn0sCi0gIDE2LDB4MzgxZiwwLHsweGJjLDB4MDAsMHgwYiwweGJlLDB4MDAsMHgyOSwweGVmLDB4OGQsMHhmMCwweDg0LDB4ZmYsMHhhZCwweGYwLDB4MjIsMHhlNCwweGNjfSwKLSAgMTYsMHgzODJmLDAsezB4ZjgsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmLDB4ZmYsMHhlZSwweDMzLDB4ZmUsMHhlYywweDMzLDB4ZmMsMHhlZSwweDlkLDB4ZWN9LAotICAxNiwweDM4M2YsMCx7MHg5OCwweDQwLDB4MDUsMHhmYywweGVlLDB4OWQsMHhmZSwweDBmLDB4ZDUsMHhmMCwweGU5LDB4ZTQsMHhjZSwweGZkLDB4MjIsMHhlZH0sCi0gIDE2LDB4Mzg0ZiwwLHsweGY4LDB4ZjUsMHhmMCwweGVlLDB4ODQsMHgyMCwweGQyLDB4MWMsMHhmZSwweGFkLDB4ZjAsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmfSwKLSAgMTYsMHgzODVmLDAsezB4ZmYsMHhlZCwweDMzLDB4ZmQsMHg0MCwweDA3LDB4OTgsMHg1MCwweDA2LDB4ZDUsMHhmMCwweGYyLDB4MjIsMHhjMywweDk4LDB4ZmR9LAotICAgNSwweDM4NmYsMCx7MHgwZiwweGQ1LDB4ZjAsMHhlYSwweDIyfSwKLSAgMTYsMHgzODc0LDAsezB4ZTQsMHg5MCwweDc2LDB4MjksMHhmMCwweDkwLDB4NzYsMHgyOSwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDM4ODQsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH0sCi0gIDE2LDB4Mzg5NCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjksMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fSwKLSAgMTYsMHgzOGE0LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDM4YjQsMCx7MHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3NiwweDJhLDB4ZjAsMHgyNH0sCi0gIDE2LDB4MzhjNCwwLHsweGJmLDB4NzAsMHgwMiwweDQxLDB4NDEsMHgyNCwweGUwLDB4NzAsMHgwMiwweDQxLDB4MTIsMHgyNCwweDIxLDB4NjAsMHgwMiwweDQxfSwKLSAgMTYsMHgzOGQ0LDAsezB4M2EsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDdkLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhiMiwweDI0LDB4MDJ9LAotICAxNiwweDM4ZTQsMCx7MHg2MCwweDAyLDB4NDEsMHgwYSwweDEyLDB4MTcsMHg1MSwweDkwLDB4NzYsMHg0MiwweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhM30sCi0gIDE2LDB4MzhmNCwwLHsweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1fSwKLSAgMTYsMHgzOTA0LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDF9LAotICAxNiwweDM5MTQsMCx7MHgxMiwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweDkwLDB4NzYsMHg3ZCwweDc0LDB4MDYsMHhmMCwweDkwLDB4NzYsMHg3ZX0sCi0gIDE2LDB4MzkyNCwwLHsweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBmLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweDkwLDB4NzYsMHg3ZCwweGYwfSwKLSAgMTYsMHgzOTM0LDAsezB4OTAsMHg3NiwweDdlLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTB9LAotICAxNiwweDM5NDQsMCx7MHg3NiwweDdkLDB4ZjAsMHg5MCwweDc2LDB4N2UsMHg3NCwweDE4LDB4ZjAsMHg5MCwweDc2LDB4MWEsMHg3NCwweDAxLDB4ZjAsMHgxMn0sCi0gIDE2LDB4Mzk1NCwwLHsweDNlLDB4OWYsMHgxMiwweDE4LDB4MDAsMHgyMiwweDkwLDB4N2UsMHhjMiwweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHhmZSwweGZifSwKLSAgMTYsMHgzOTY0LDAsezB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDM3LDB4NDYsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2F9LAotICAxNiwweDM5NzQsMCx7MHhjYiwweGVmLDB4Y2IsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZlLDB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYX0sCi0gIDE2LDB4Mzk4NCwwLHsweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHhlNCwweGZlLDB4ZWIsMHgyZiwweGZmfSwKLSAgMTYsMHgzOTk0LDAsezB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwLDB4MGZ9LAotICAxNiwweDM5YTQsMCx7MHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhiYywweDIyLDB4OTAsMHg3ZX0sCi0gIDE2LDB4MzliNCwwLHsweGMyLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmIsMHhmYSwweDc5LDB4MDEsMHhmOCwweDEyLDB4MzcsMHg0NiwweGM4fSwKLSAgMTYsMHgzOWM0LDAsezB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmV9LAotICAxNiwweDM5ZDQsMCx7MHhlNCwweGZjLDB4ZmQsMHgyYiwweGZiLDB4ZWEsMHgzZSwweGZhLDB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZX0sCi0gIDE2LDB4MzllNCwwLHsweGMwLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmYsMHhlZSwweDNhLDB4ZmUsMHhlZCwweDM5LDB4ZmQsMHhlYywweDM4fSwKLSAgMTYsMHgzOWY0LDAsezB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNhMDQsMCx7MHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE2LDB4M2ExNCwwLHsweGU5LDB4ZTAsMHgxNCwweDcwLDB4MTksMHg5MCwweDdlLDB4YzAsMHhlMCwweGZmLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwfSwKLSAgMTYsMHgzYTI0LDAsezB4MGYsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2Z9LAotICAxNCwweDNhMzQsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHgzYTQyLDAsezB4ZTQsMHg5MCwweDc2LDB4MzUsMHhmMCwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmYsMHhjMywweDk0LDB4MDMsMHg0MCwweDAyLDB4NDF9LAotICAxNiwweDNhNTIsMCx7MHhmZiwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn0sCi0gIDE2LDB4M2E2MiwwLHsweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0fSwKLSAgMTYsMHgzYTcyLDAsezB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzR9LAotICAxNiwweDNhODIsMCx7MHhmMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4M2E5MiwwLHsweDc0LDB4ZmYsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzYWEyLDAsezB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNhYjIsMCx7MHg4MywweDc0LDB4ODAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2FjMiwwLHsweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYWQyLDAsezB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9LAotICAxNiwweDNhZTIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX0sCi0gIDE2LDB4M2FmMiwwLHsweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHhlMCwweDA0LDB4ZjAsMHg0MSwweDQ3LDB4OTAsMHg3NiwweDNjfSwKLSAgMTYsMHgzYjAyLDAsezB4NzQsMHgwYSwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3NiwweDM1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDNjLDB4ZTB9LAotICAxNiwweDNiMTIsMCx7MHhmZiwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDYxLDB4ZDIsMHg5MCwweDc2LDB4M2QsMHhlMH0sCi0gIDE2LDB4M2IyMiwwLHsweGZmLDB4MDQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fSwKLSAgMTYsMHgzYjMyLDAsezB4ODMsMHhlZiwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9LAotICAxNiwweDNiNDIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX0sCi0gIDE2LDB4M2I1MiwwLHsweDgzLDB4NzQsMHg1ZSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fSwKLSAgMTYsMHgzYjYyLDAsezB4ZjUsMHg4MywweDc0LDB4YmEsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlLDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDNiNzIsMCx7MHg3NSwweGY1LDB4ODMsMHg3NCwweDA1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4M2I4MiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyfSwKLSAgMTYsMHgzYjkyLDAsezB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODJ9LAotICAxNiwweDNiYTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2JiMiwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDE1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMywweGY1fSwKLSAgMTYsMHgzYmMyLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNSwweGUwLDB4MDQsMHhmMCwweDYxLDB4MGV9LAotICAgMSwweDNiZDIsMCx7MHgyMn0sCi0gIDE2LDB4M2JkMywwLHsweGU0LDB4OTAsMHg3NiwweDM2LDB4ZjAsMHhlMCwweGZiLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHgzYmUzLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQwLDB4ZjAsMHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODJ9LAotICAxNiwweDNiZjMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNX0sCi0gIDE2LDB4M2MwMywwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwfSwKLSAgMTYsMHgzYzEzLDAsezB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDEyLDB4MzcsMHhjOCwweDAwLDB4MDB9LAotICAxNiwweDNjMjMsMCx7MHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M30sCi0gIDE2LDB4M2MzMywwLHsweDEyLDB4MzcsMHhjOCwweDAwLDB4MDEsMHg3NywweDAwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmYiwweDc1fSwKLSAgMTYsMHgzYzQzLDAsezB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg0MCwweGYwLDB4ZWJ9LAotICAxNiwweDNjNTMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4OGMsMHhmMH0sCi0gIDE2LDB4M2M2MywwLHsweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3fSwKLSAgMTYsMHgzYzczLDAsezB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzR9LAotICAxNiwweDNjODMsMCx7MHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNH0sCi0gIDE2LDB4M2M5MywwLHsweDRiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwfSwKLSAgMTYsMHgzY2EzLDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDNjYjMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn0sCi0gIDE2LDB4M2NjMywwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDhmLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmfSwKLSAgMTYsMHgzY2QzLDAsezB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQxLDB4ZjB9LAotICAxNiwweDNjZTMsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4NH0sCi0gIDE2LDB4M2NmMywwLHsweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1fSwKLSAgMTYsMHgzZDAzLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg2MSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9LAotICAxNiwweDNkMTMsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH0sCi0gIDE2LDB4M2QyMywwLHsweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0fSwKLSAgMTYsMHgzZDMzLDAsezB4NjEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODN9LAotICAgNCwweDNkNDMsMCx7MHg3NCwweDAxLDB4ZjAsMHgyMn0sCi0gIDE2LDB4M2Q0NywwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSwKLSAgMTYsMHgzZDU3LDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9LAotICAxNiwweDNkNjcsMCx7MHhjMCwweGUwLDB4OTAsMHg3ZiwweGEyLDB4ZTAsMHg5MCwweDc2LDB4N2YsMHhmMCwweDkwLDB4N2YsMHg3NCwweGUwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4M2Q3NywwLHsweDg3LDB4ZjAsMHg5MCwweDdmLDB4NzUsMHhlMCwweDkwLDB4NzYsMHg4OCwweGYwLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDAyfSwKLSAgMTYsMHgzZDg3LDAsezB4ZjAsMHg5MCwweDc2LDB4OTYsMHhlMCwweGZmLDB4MjAsMHhlMSwweDBjLDB4NDQsMHgwMiwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjB9LAotICAxNiwweDNkOTcsMCx7MHhkMiwweDMyLDB4MTIsMHg0YiwweDI4LDB4OTAsMHg3NiwweDdmLDB4ZTAsMHgyMCwweGUyLDB4NTAsMHg5MCwweDc2LDB4ODcsMHhlMH0sCi0gIDE2LDB4M2RhNywwLHsweGZlLDB4YTMsMHhlMCwweDdjLDB4MDAsMHgyNCwweDAwLDB4ZjUsMHgzNCwweGVjLDB4M2UsMHhmNSwweDMzLDB4OTAsMHg3NiwweDk4fSwKLSAgMTYsMHgzZGI3LDAsezB4ZTAsMHhmZCwweGFlLDB4MzMsMHhhZiwweDM0LDB4MTIsMHgzNiwweGQ4LDB4OTAsMHg3NiwweDg3LDB4ZWYsMHhmMCwweGQyLDB4MmZ9LAotICAxNiwweDNkYzcsMCx7MHgzMCwweDMxLDB4MjksMHgyMCwweDNmLDB4MjYsMHhjMiwweDMxLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHg5MH0sCi0gIDE2LDB4M2RkNywwLHsweDdmLDB4OWEsMHhlMCwweDMwLDB4ZTQsMHgwNCwweGQyLDB4MmQsMHhjMiwweDJjLDB4OTAsMHg3ZiwweDlhLDB4ZTAsMHgyMCwweGU1fSwKLSAgMTYsMHgzZGU3LDAsezB4MDQsMHhjMiwweDJkLDB4ZDIsMHgyYywweDkwLDB4N2YsMHg5NCwweGUwLDB4NDQsMHgzMCwweGYwLDB4MTIsMHg0OCwweGJkLDB4MTJ9LAotICAxNiwweDNkZjcsMCx7MHgxYiwweDA0LDB4MzAsMHgyZiwweDEyLDB4MTIsMHg0MiwweDFmLDB4YzIsMHgyZiwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MTYsMHg4YX0sCi0gIDE2LDB4M2UwNywwLHsweDc1LDB4ZTgsMHgwZCwweGQyLDB4MmIsMHg4MCwweDA1LDB4NzUsMHhlOCwweDAxLDB4YzIsMHgyYiwweDIwLDB4MmIsMHgzNCwweDkwfSwKLSAgMTYsMHgzZTE3LDAsezB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHhhMywweDc0LDB4MDZ9LAotICAxNiwweDNlMjcsMCx7MHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMH0sCi0gIDE2LDB4M2UzNywwLHsweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMCwweGEzfSwKLSAgMTYsMHgzZTQ3LDAsezB4NzQsMHgxOCwweGYwLDB4NzUsMHhjYSwweGQzLDB4NzUsMHhjYiwweGZlLDB4ZDIsMHhjYSwweDMwLDB4MzQsMHgwNCwweGMyLDB4MzR9LAotICAxNiwweDNlNTcsMCx7MHg4MCwweDAyLDB4ZDIsMHgzNCwweDMwLDB4MzQsMHgwZCwweDkwLDB4NzYsMHg4OSwweGUwLDB4YzMsMHg5NCwweDAzLDB4NDAsMHgwNH0sCi0gIDE2LDB4M2U2NywwLHsweGUwLDB4MjQsMHhmZCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMiwweGYwLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHgzZTc3LDAsezB4OTgsMHhlMCwweDU0LDB4ZmQsMHhmMCwweGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTB9LAotICAxNiwweDNlODcsMCx7MHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMH0sCi0gICA4LDB4M2U5NywwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjAsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDNlOWYsMCx7MHg5MCwweDc2LDB4OTIsMHhlMCwweDE0LDB4NjAsMHgxZCwweDE0LDB4NzAsMHgwMiwweGUxLDB4NTQsMHgyNCwweDAyLDB4NjAsMHgwMn0sCi0gIDE2LDB4M2VhZiwwLHsweGUxLDB4ZTQsMHg5MCwweDc2LDB4OTQsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweGU0LDB4OTAsMHg3NiwweDhlfSwKLSAgMTYsMHgzZWJmLDAsezB4ZjAsMHhkMiwweDMxLDB4MjIsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDFiLDB4ZTQsMHg5MCwweDdmLDB4ZjJ9LAotICAxNiwweDNlY2YsMCx7MHhmMCwweDkwLDB4N2YsMHhmMywweDc0LDB4MzAsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4M2VkZiwwLHsweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MWIsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfSwKLSAgMTYsMHgzZWVmLDAsezB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzNCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTB9LAotICAxNiwweDNlZmYsMCx7MHg0NCwweDAyLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgxOCwweGU0LDB4OTAsMHg3ZiwweGYyLDB4ZjAsMHg5MH0sCi0gIDE2LDB4M2YwZiwwLHsweDdmLDB4ZjMsMHg3NCwweDY0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0fSwKLSAgMTYsMHgzZjFmLDAsezB4MDQsMHhmMCwweDkwLDB4NzYsMHg5NCwweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg4MCwweDAwLDB4ZjAsMHgzMCwweDNmLDB4MDl9LAotICAxNiwweDNmMmYsMCx7MHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE2LDB4M2YzZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2fSwKLSAgMTYsMHgzZjRmLDAsezB4OGUsMHg3NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MWIsMHhlNCwweDkwLDB4N2Z9LAotICAxNiwweDNmNWYsMCx7MHhmMiwweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg0NCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4M2Y2ZiwwLHsweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfSwKLSAgMTYsMHgzZjdmLDAsezB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDRjLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTd9LAotICAxNiwweDNmOGYsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMywweDE4LDB4ZTQsMHg5MCwweDdmLDB4ZjIsMHhmMH0sCi0gIDE2LDB4M2Y5ZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfSwKLSAgMTYsMHgzZmFmLDAsezB4NDQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDk0LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweDMwLDB4M2Z9LAotICAxNiwweDNmYmYsMCx7MHgwOSwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4M2ZjZiwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDYsMHhmMCwweDkwfSwKLSAgIDYsMHgzZmRmLDAsezB4NzYsMHg4ZSwweDc0LDB4MDIsMHhmMCwweDIyfSwKLSAgMTYsMHgzZmU1LDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4ODIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHg5MCwweDc2LDB4OTJ9LAotICAxMSwweDNmZjUsMCx7MHhmMCwweDkwLDB4NzYsMHg5MCwweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHhkMywweDIyfSwKLSAgMTYsMHg0MDAwLDAsezB4ZTUsMHgxMSwweGQzLDB4OTQsMHgwMCwweDUwLDB4MDIsMHgyMSwweDA2LDB4OTAsMHg3NiwweDg5LDB4ZTAsMHhjMywweDk0LDB4MDh9LAotICAxNiwweDQwMTAsMCx7MHg0MCwweDAyLDB4MjEsMHgwNiwweDc0LDB4NDAsMHgyNSwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH0sCi0gIDE2LDB4NDAyMCwwLHsweGY1LDB4MTcsMHhlNSwweDBkLDB4NjAsMHgwZSwweDkwLDB4ODAsMHgwNSwweGU1LDB4MTcsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwfSwKLSAgMTYsMHg0MDMwLDAsezB4MDQsMHhmMCwweDAxLDB4ZGEsMHhlNSwweDE3LDB4MTIsMHgzNywweGY5LDB4NDAsMHhjMSwweDAyLDB4NDAsMHg2NywweDA1LDB4NDB9LAotICAxNiwweDQwNDAsMCx7MHg3YSwweDA2LDB4NDAsMHg5OCwweDA3LDB4NDAsMHhjMSwweDBjLDB4NDAsMHhjMSwweDBkLDB4NDAsMHhjNywweDBmLDB4NDAsMHhjYn0sCi0gIDE2LDB4NDA1MCwwLHsweGY2LDB4NDAsMHhjYiwweGY4LDB4NDAsMHhjYiwweGZhLDB4NDAsMHhjYiwweGZiLDB4NDAsMHhjYiwweGZjLDB4NDAsMHhjYiwweGZlfSwKLSAgMTYsMHg0MDYwLDAsezB4NDAsMHhjYiwweGZmLDB4MDAsMHgwMCwweDQwLDB4ZGEsMHg5MCwweDdlLDB4NDEsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTB9LAotICAxNiwweDQwNzAsMCx7MHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg2MCwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MH0sCi0gIDE2LDB4NDA4MCwwLHsweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHg0MDkwLDAsezB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg0MiwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjB9LAotICAxNiwweDQwYTAsMCx7MHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3ZSwweDQzLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH0sCi0gIDE2LDB4NDBiMCwwLHsweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDgwfSwKLSAgMTYsMHg0MGMwLDAsezB4MTksMHhkMiwweDNiLDB4ZDIsMHgzYywweDgwLDB4MTMsMHhkMiwweDNiLDB4ODAsMHgwZiwweDkwLDB4ODAsMHgwNSwweGU1LDB4MTd9LAotICAxNiwweDQwZDAsMCx7MHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDIwLDB4M2IsMHgwNCwweDA1LDB4MGQsMHg4MH0sCi0gIDE2LDB4NDBlMCwwLHsweDFmLDB4MzAsMHgzYywweDFjLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4N2UsMHg0MiwweGUwfSwKLSAgMTYsMHg0MGYwLDAsezB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDF9LAotICAxNiwweDQxMDAsMCx7MHgwNSwweDBmLDB4MTUsMHgxMSwweDAxLDB4MDAsMHhlNSwweDExLDB4NzAsMHgxMCwweGMyLDB4MzMsMHhmNSwweDBkLDB4ZjUsMHgwZn0sCi0gIDExLDB4NDExMCwwLHsweDkwLDB4N2YsMHhjNywweDc0LDB4MDQsMHhmMCwweGMyLDB4M2IsMHhjMiwweDNjLDB4MjJ9LAotICAxNiwweDQxMWIsMCx7MHg5MCwweDc2LDB4OGQsMHhlMCwweDY0LDB4MDEsMHg3MCwweDI3LDB4MzAsMHgyNywweDA4LDB4YzIsMHgyNywweDEyLDB4MDgsMHgwMH0sCi0gIDE2LDB4NDEyYiwwLHsweDEyLDB4MTcsMHg0YSwweDMwLDB4MjgsMHgwOCwweGMyLDB4MjgsMHgxMiwweDM4LDB4NzQsMHgxMiwweDE3LDB4NGEsMHgzMCwweDJhfSwKLSAgMTYsMHg0MTNiLDAsezB4MGUsMHhlNCwweDkwLDB4NzYsMHg4ZCwweGYwLDB4YzIsMHgyYSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMiwweGYwLDB4OTB9LAotICAxNiwweDQxNGIsMCx7MHg3NiwweDNmLDB4ZTAsMHhiNCwweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzMiwweDZmLDB4OTAsMHg3NiwweDQxLDB4ZTAsMHhiNH0sCi0gIDE2LDB4NDE1YiwwLHsweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzNCwweDlhLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDM0fSwKLSAgMTYsMHg0MTZiLDAsezB4OWEsMHgxMiwweDMwLDB4MDAsMHgzMCwweDMzLDB4MDMsMHgxMiwweDQwLDB4MDAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDIwLDB4ZTR9LAotICAxNiwweDQxN2IsMCx7MHgwMiwweGMyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMCwweDMwLDB4ZTQsMHgwMiwweGQyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMH0sCi0gIDE2LDB4NDE4YiwwLHsweDIwLDB4ZTUsMHgwMiwweGMyLDB4M2UsMHg5MCwweDdmLDB4OWIsMHhlMCwweDMwLDB4ZTUsMHgwMiwweGQyLDB4M2UsMHhhMiwweDQxfSwKLSAgMTYsMHg0MTliLDAsezB4MzAsMHgzZiwweDAxLDB4YjMsMHg1MCwweDFmLDB4YTIsMHgzZiwweDkyLDB4NDEsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTd9LAotICAxNiwweDQxYWIsMCx7MHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5N30sCi0gIDE2LDB4NDFiYiwwLHsweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHgzMCwweDNmLDB4MzQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBlfSwKLSAgMTYsMHg0MWNiLDAsezB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4YTMsMHg3NCwweDA2LDB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjR9LAotICAxNiwweDQxZGIsMCx7MHgwMiwweDBiLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwM30sCi0gIDE2LDB4NDFlYiwwLHsweDBiLDB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4MTgsMHhmMCwweGEyLDB4NDAsMHgzMCwweDNlfSwKLSAgMTYsMHg0MWZiLDAsezB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNlLDB4OTIsMHg0MCwweDMwLDB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDR9LAotICAxNiwweDQyMGIsMCx7MHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MH0sCi0gICA0LDB4NDIxYiwwLHsweDgwLDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0MjFmLDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzNSwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhkMywweDk0LDB4MmR9LAotICAxNiwweDQyMmYsMCx7MHg0MCwweDJiLDB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkM30sCi0gIDE2LDB4NDIzZiwwLHsweDk0LDB4MGYsMHg0MCwweDE5LDB4ZTQsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgwOCwweDkwLDB4NzYsMHgxOSwweDc0fSwKLSAgMTYsMHg0MjRmLDAsezB4MDMsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc2LDB4MTksMHg3NCwweDAyLDB4ZjAsMHgxMiwweDNlLDB4OWYsMHg5MCwweDc2LDB4MTl9LAotICAxNiwweDQyNWYsMCx7MHhlMCwweGI0LDB4MDIsMHgyYywweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhjMywweDk0LDB4MmYsMHg1MCwweDIyLDB4ZWYsMHhkM30sCi0gIDE2LDB4NDI2ZiwwLHsweDk0LDB4MmEsMHg0MCwweDFjLDB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwfSwKLSAgMTYsMHg0MjdmLDAsezB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MCwweDBhLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDA0LDB4ZjAsMHgxMiwweDNlLDB4OWZ9LAotICAxNiwweDQyOGYsMCx7MHg5MCwweDc2LDB4MTksMHhlMCwweGI0LDB4MDIsMHgyNiwweDkwLDB4NzYsMHg4NywweGUwLDB4ZDMsMHg5NCwweDMxLDB4NDAsMHgxZH0sCi0gIDE2LDB4NDI5ZiwwLHsweDkwLDB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmfSwKLSAgMTYsMHg0MmFmLDAsezB4NDAsMHgwYiwweGU0LDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAzLDB4ZjAsMHgxMiwweDNlLDB4OWYsMHg5MCwweDc2LDB4MTl9LAotICAxNiwweDQyYmYsMCx7MHhlMCwweDY0LDB4MDMsMHg3MCwweDNmLDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHg1ZiwweDUwLDB4MzUsMHg5MH0sCi0gIDE2LDB4NDJjZiwwLHsweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGQzLDB4OTQsMHgwZiwweDQwfSwKLSAgMTYsMHg0MmRmLDAsezB4MjMsMHhlNCwweGYwLDB4ZWYsMHhjMywweDk0LDB4MmYsMHg1MCwweDBjLDB4ZWYsMHhkMywweDk0LDB4MmEsMHg0MCwweDA2LDB4OTB9LAotICAxNiwweDQyZWYsMCx7MHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4ZWYsMHhkMywweDk0LDB4MmYsMHg0MCwweDA2LDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMn0sCi0gIDE2LDB4NDJmZiwwLHsweGYwLDB4MTIsMHgzZSwweDlmLDB4OTAsMHg3NiwweDg2LDB4ZTAsMHg3MCwweDA1LDB4OTAsMHg3NiwweDg1LDB4ZjAsMHgyMiwweGU0fSwKLSAgIDUsMHg0MzBmLDAsezB4OTAsMHg3NiwweDg2LDB4ZjAsMHgyMn0sCi0gIDE2LDB4NDMxNCwwLHsweGU0LDB4OTAsMHg3NiwweDk2LDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweDkwLDB4N2YsMHhlMCwweDc0LDB4OTAsMHhmMCwweDkwfSwKLSAgMTYsMHg0MzI0LDAsezB4N2YsMHhlMSwweDc0LDB4MDQsMHhmMCwweGU0LDB4OTAsMHg3ZiwweGRkLDB4ZjAsMHg5MCwweDdmLDB4YTEsMHhmMCwweDUzLDB4OGV9LAotICAxNiwweDQzMzQsMCx7MHhmOCwweDc1LDB4ODgsMHgwNSwweDc1LDB4YjgsMHgyMCwweDc1LDB4ZjgsMHgwMSwweDQzLDB4OGUsMHgzMCwweGY1LDB4YzgsMHg3NX0sCi0gIDE2LDB4NDM0NCwwLHsweGNhLDB4N2YsMHg3NSwweGNiLDB4ZjgsMHg0MywweGE4LDB4MjAsMHgxMiwweDQ1LDB4NjUsMHhjMiwweDJjLDB4YzIsMHgyZCwweGMyfSwKLSAgMTYsMHg0MzU0LDAsezB4MmIsMHhjMiwweDJmLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhkZCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmZiwweGYwLDB4OTB9LAotICAxNiwweDQzNjQsMCx7MHg3ZiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4NX0sCi0gIDE2LDB4NDM3NCwwLHsweGYwLDB4YTMsMHhmMCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgxMiwweDQ5LDB4YWUsMHgxMiwweDBmfSwKLSAgMTYsMHg0Mzg0LDAsezB4YzYsMHgxMiwweDRhLDB4ZjEsMHg5MCwweDdmLDB4OTcsMHhlMCwweDQ0LDB4MDgsMHhmMCwweGUwLDB4NTQsMHhiOSwweGYwLDB4ZDJ9LAotICAxNiwweDQzOTQsMCx7MHgzMCwweDIwLDB4MzAsMHgxOCwweDEyLDB4NGEsMHhhNiwweDEyLDB4MzAsMHgwMCwweDEyLDB4NDAsMHgwMCwweDEyLDB4NDIsMHgxZn0sCi0gIDE2LDB4NDNhNCwwLHsweDEyLDB4NDgsMHhiZCwweDEyLDB4MWIsMHgwNCwweDEyLDB4MTYsMHg2MSwweDEyLDB4NDIsMHgxZiwweDEyLDB4NGEsMHhhNiwweGMyfSwKLSAgMTYsMHg0M2I0LDAsezB4MmYsMHhjMiwweDMxLDB4YzIsMHgzMiwweGMyLDB4MzQsMHhjMiwweDMzLDB4YzIsMHgyOSwweGMyLDB4MjcsMHhjMiwweDI4LDB4ZTR9LAotICAxNiwweDQzYzQsMCx7MHhmNSwweDExLDB4OTAsMHg3NiwweDg5LDB4ZjAsMHg5MCwweDc2LDB4M2YsMHhmMCwweDkwLDB4NzYsMHg0MSwweGYwLDB4OTAsMHg3Nn0sCi0gIDE2LDB4NDNkNCwwLHsweDQwLDB4ZjAsMHg5MCwweDc2LDB4OGEsMHhmMCwweGEzLDB4ZjAsMHhhMywweDA0LDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2fSwKLSAgIDMsMHg0M2U0LDAsezB4OTksMHhmMCwweDIyfSwKLSAgMTYsMHg0M2U3LDAsezB4MTIsMHg0ZSwweDE5LDB4NDAsMHgwMiwweDgxLDB4YWMsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDI0LDB4ZmUsMHg2MCwweDFlLDB4MTR9LAotICAxNiwweDQzZjcsMCx7MHg2MCwweDQ2LDB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4ODEsMHg5ZCwweDI0LDB4MDQsMHg2MCwweDAyLDB4ODEsMHhhNX0sCi0gIDE2LDB4NDQwNywwLHsweDc0LDB4MDUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweDc0LDB4MDAsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhfSwKLSAgMTYsMHg0NDE3LDAsezB4ZTAsMHhmZiwweDEyLDB4NGEsMHg1NSwweDhiLDB4MjAsMHg4YSwweDIxLDB4ODksMHgyMiwweGVhLDB4NDksMHg2MCwweDExLDB4Y2V9LAotICAxNiwweDQ0MjcsMCx7MHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMn0sCi0gIDE2LDB4NDQzNywwLHsweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4MTIsMHg0NywweGI3fSwKLSAgMTYsMHg0NDQ3LDAsezB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2UsMHhlZSwweDkwLDB4N2Z9LAotICAxNiwweDQ0NTcsMCx7MHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH0sCi0gIDE2LDB4NDQ2NywwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZifSwKLSAgMTYsMHg0NDc3LDAsezB4MTIsMHgxNywweDk0LDB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZSwweGVhLDB4Y2V9LAotICAxNiwweDQ0ODcsMCx7MHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3Zn0sCi0gIDE2LDB4NDQ5NywwLHsweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfSwKLSAgIDUsMHg0NGE3LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICAxLDB4NDRhYywwLHsweDIyfSwKLSAgMTYsMHg0NGFkLDAsezB4YzIsMHhhZiwweGQyLDB4MjQsMHg5MCwweDdmLDB4OTMsMHg3NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweGJiLDB4ZjB9LAotICAxNiwweDQ0YmQsMCx7MHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4MzAsMHhmMCwweGUwLDB4NTQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDk0LDB4NzQsMHgzMH0sCi0gIDE2LDB4NDRjZCwwLHsweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHhjZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDk1fSwKLSAgMTYsMHg0NGRkLDAsezB4NzQsMHhjMCwweGYwLDB4OTAsMHg3ZiwweDllLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweDk5LDB4ZTAsMHgzMCwweGUyLDB4MDl9LAotICAxNiwweDQ0ZWQsMCx7MHg5MCwweDA1LDB4MTksMHg3NCwweGEwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhjMiwweDI1LDB4YzIsMHgyMiwweGMyLDB4MjMsMHhjMn0sCi0gIDE2LDB4NDRmZCwwLHsweDI2LDB4MTIsMHg0YiwweDI4LDB4MTIsMHgyZCwweGE5LDB4MTIsMHgzYiwweGQzLDB4MTIsMHg0NiwweDE5LDB4MTIsMHgzYSwweDQyfSwKLSAgMTYsMHg0NTBkLDAsezB4OTAsMHg3NiwweDY4LDB4NzQsMHgwMSwweGYwLDB4NzAsMHgwZiwweDEyLDB4NGMsMHgyOSwweDEyLDB4NGUsMHgxNSwweDEyLDB4NGV9LAotICAxNiwweDQ1MWQsMCx7MHgxNywweDEyLDB4MWIsMHg0MCwweDEyLDB4MTQsMHg5NiwweDEyLDB4NDMsMHgxNCwweDkwLDB4N2YsMHhhZiwweGUwLDB4NDQsMHgwMX0sCi0gIDE2LDB4NDUyZCwwLHsweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDFmLDB4ZjAsMHg5MCwweDdmLDB4YWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmfSwKLSAgMTYsMHg0NTNkLDAsezB4YWQsMHhmMCwweDkwLDB4N2YsMHhkZSwweGYwLDB4OTAsMHg3ZiwweGRmLDB4ZjAsMHg5MCwweDdmLDB4YWIsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDQ1NGQsMCx7MHhhOSwweGYwLDB4OTAsMHg3ZiwweGFhLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg0MywweGQ4LDB4MjAsMHhkMiwweGU4LDB4NDMsMHhkOH0sCi0gICA4LDB4NDU1ZCwwLHsweDIwLDB4NTMsMHhhOCwweGEwLDB4NDMsMHhhOCwweDgwLDB4MjJ9LAotICAxNiwweDQ1NjUsMCx7MHg5MCwweDc2LDB4OWEsMHg3NCwweDAyLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg5MSwweGYwLDB4YTMsMHhmMCwweDkwLDB4NzYsMHg5MH0sCi0gIDE2LDB4NDU3NSwwLHsweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg5MCwweDc2LDB4OTYsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGU0fSwKLSAgMTYsMHg0NTg1LDAsezB4OTAsMHg3NiwweDk3LDB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5NCwweDA0LDB4ZjAsMHg5MCwweDgwLDB4MDB9LAotICAxNiwweDQ1OTUsMCx7MHhmMCwweGU0LDB4OTAsMHg3NiwweDhlLDB4ZjAsMHg5MCwweDc2LDB4MWEsMHhmMCwweDkwLDB4NzYsMHg5NSwweDA0LDB4ZjAsMHhjMn0sCi0gIDE2LDB4NDVhNSwwLHsweDJlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDlifSwKLSAgMTYsMHg0NWI1LDAsezB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZSwweGZmLDB4YmUsMHgxMCwweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZmZ9LAotICAxNiwweDQ1YzUsMCx7MHg1NCwweDIwLDB4ZmYsMHg3MCwweDAyLDB4YzIsMHgzZSwweDkwLDB4N2YsMHg5YiwweGUwLDB4ZmYsMHg1NCwweDIwLDB4ZmUsMHhmZn0sCi0gIDE2LDB4NDVkNSwwLHsweGJlLDB4MjAsMHgwMiwweGQyLDB4M2UsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwfSwKLSAgMTYsMHg0NWU1LDAsezB4MDcsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjB9LAotICAxNiwweDQ1ZjUsMCx7MHgzMCwweDNlLDB4MDksMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMH0sCi0gIDE2LDB4NDYwNSwwLHsweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHhhMiwweDNlLDB4OTIsMHg0MCwweGEyfSwKLSAgIDMsMHg0NjE1LDAsezB4M2YsMHg5MiwweDQxfSwKLSAgIDEsMHg0NjE4LDAsezB4MjJ9LAotICAxNiwweDQ2MTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NDYyOSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0fSwKLSAgMTYsMHg0NjM5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9LAotICAxNiwweDQ2NDksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NX0sCi0gIDE2LDB4NDY1OSwwLHsweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweDkwfSwKLSAgMTYsMHg0NjY5LDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDQ2NzksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNH0sCi0gIDE2LDB4NDY4OSwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1fSwKLSAgMTYsMHg0Njk5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9LAotICAxNiwweDQ2YTksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDMzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHgyMn0sCi0gIDEyLDB4NDZiOSwwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgzOCwweDAyLDB4NDcsMHgwMH0sCi0gIDE2LDB4NDZjNSwwLHsweDAyLDB4MDcsMHhhNiwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSwKLSAgMTYsMHg0NmQ1LDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9LAotICAxNiwweDQ2ZTUsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0sCi0gIDE2LDB4NDZmNSwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDBjLDB4OGYsMHhlNCwweDdlfSwKLSAgMTYsMHg0NzA1LDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9LAotICAxNiwweDQ3MTUsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30sCi0gIDE2LDB4NDcyNSwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSwKLSAgMTYsMHg0NzM1LDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9LAotICAxNiwweDQ3NDUsMCx7MHg5MCwweDdmLDB4ZWMsMHhlMCwweDkwLDB4NzYsMHg4MywweGYwLDB4ZTAsMHgxNCwweDYwLDB4MWQsMHgxNCwweDYwLDB4MmEsMHgxNH0sCi0gIDE2LDB4NDc1NSwwLHsweDYwLDB4MzcsMHgxNCwweDYwLDB4NDQsMHgyNCwweDA0LDB4NzAsMHg1MCwweDkwLDB4NzYsMHg5MSwweGUwLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHg0NzY1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDQ3LDB4OTAsMHg3NiwweDkyLDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3NzUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MzcsMHg5MCwweDc2LDB4OTAsMHhlMCwweDkwLDB4N2YsMHgwMH0sCi0gIDE2LDB4NDc4NSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgyNywweDkwLDB4NzYsMHg4NCwweGUwLDB4OTAsMHg3ZiwweDAwfSwKLSAgMTYsMHg0Nzk1LDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHg4MCwweDE3LDB4OTAsMHg3NiwweDkzLDB4ZTAsMHg5MCwweDdmLDB4MDB9LAotICAxNiwweDQ3YTUsMCx7MHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICAyLDB4NDdiNSwwLHsweGQzLDB4MjJ9LAotICAgMiwweDQ3YjcsMCx7MHg4ZiwweDJlfSwKLSAgMTYsMHg0N2I5LDAsezB4ZTQsMHhmNSwweDJmLDB4NzUsMHgzMCwweGZmLDB4NzUsMHgzMSwweDA3LDB4NzUsMHgzMiwweDFhLDB4YWIsMHgzMCwweGFhLDB4MzF9LAotICAxNiwweDQ3YzksMCx7MHhhOSwweDMyLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4YjQsMHgwMywweDFmLDB4YWYsMHgyZiwweDA1LDB4MmYsMHhlZn0sCi0gIDE2LDB4NDdkOSwwLHsweDY1LDB4MmUsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZiwweGVlLDB4M2EsMHhjOSwweGVmfSwKLSAgMTYsMHg0N2U5LDAsezB4YzksMHg3NSwweDMwLDB4ZmYsMHhmNSwweDMxLDB4ODksMHgzMiwweDgwLDB4ZDIsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDQ3ZjksMCx7MHgyMn0sCi0gICA2LDB4NDdmYSwwLHsweDEyLDB4NGIsMHgyOCwweGMyLDB4MzEsMHgyMn0sCi0gIDE2LDB4NDgwMCwwLHsweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhjMCwweGQwLDB4ZTgsMHhjMCwweGUwLDB4ZTksMHhjMCwweGUwfSwKLSAgMTYsMHg0ODEwLDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9LAotICAxNiwweDQ4MjAsMCx7MHhjMCwweGUwLDB4YzIsMHhjYSwweGMyLDB4Y2YsMHg5MCwweDdmLDB4OTgsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDMwLDB4MmUsMHgwM30sCi0gIDE2LDB4NDgzMCwwLHsweDEyLDB4MTQsMHhhNiwweDkwLDB4N2YsMHg5OCwweGUwLDB4NTQsMHhmZSwweGYwLDB4NTMsMHhhOCwweGZhLDB4MTIsMHgxNiwweDYxfSwKLSAgMTYsMHg0ODQwLDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDB9LAotICAxNiwweDQ4NTAsMCx7MHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhmMH0sCi0gICAzLDB4NDg2MCwwLHsweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NDg2MywwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4OTAsMHg3NiwweDgzLDB4ZjAsMHhlMCwweDE0LDB4NjAsMHgxNywweDE0LDB4NjAsMHgyMSwweDE0fSwKLSAgMTYsMHg0ODczLDAsezB4NjAsMHgyYiwweDE0LDB4NjAsMHgzMiwweDI0LDB4MDQsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTF9LAotICAxNiwweDQ4ODMsMCx7MHhmMCwweDgwLDB4MzUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MiwweGYwLDB4MTIsMHgzZSwweDlmLDB4ODAsMHgyOH0sCi0gIDE2LDB4NDg5MywwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDkwLDB4ZjAsMHgxMiwweDE4LDB4MDAsMHg4MCwweDFiLDB4OTAsMHg3ZiwweGVhfSwKLSAgMTYsMHg0OGEzLDAsezB4ZTAsMHg5MCwweDc2LDB4ODQsMHhmMCwweDgwLDB4MTEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MywweGYwLDB4ODB9LAotICAxMCwweDQ4YjMsMCx7MHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ZDMsMHgyMn0sCi0gIDE2LDB4NDhiZCwwLHsweDMwLDB4MmQsMHgzOSwweGMyLDB4MmQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBkLDB4ZTQsMHg5MCwweDc2fSwKLSAgMTYsMHg0OGNkLDAsezB4N2MsMHhmMCwweGEzLDB4NzQsMHhmOCwweGYwLDB4YTMsMHg3NCwweDBhLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwZCwweGU0LDB4OTB9LAotICAxNiwweDQ4ZGQsMCx7MHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjAsMHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGQsMHhlNH0sCi0gIDEzLDB4NDhlZCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweGY4LDB4ZjAsMHhhMywweDc0LDB4MTcsMHhmMCwweDIyfSwKLSAgIDYsMHg0OGZhLDAsezB4NTMsMHg5MSwweGJmLDB4ZDIsMHgyZCwweDMyfSwKLSAgMTYsMHg0OTAwLDAsezB4MDIsMHgyZiwweGU3LDB4MDAsMHgwMiwweDNkLDB4NDcsMHgwMCwweDAyLDB4NGQsMHhiNCwweDAwLDB4MDIsMHg0YywweDQzLDB4MDB9LAotICAxNiwweDQ5MTAsMCx7MHgwMiwweDRiLDB4ZTksMHgwMCwweDAyLDB4MmYsMHhmZiwweDAwLDB4MDIsMHg0YywweDViLDB4MDAsMHgwMiwweDRjLDB4MGEsMHgwMH0sCi0gIDE2LDB4NDkyMCwwLHsweDAyLDB4NGMsMHg3MiwweDAwLDB4MDIsMHg0YiwweDVhLDB4MDAsMHgwMiwweDRjLDB4ODksMHgwMCwweDAyLDB4NGMsMHhhMCwweDAwfSwKLSAgMTYsMHg0OTMwLDAsezB4MDIsMHg0YywweGI3LDB4MDAsMHgwMiwweDRjLDB4Y2UsMHgwMCwweDAyLDB4NGMsMHhlNSwweDAwLDB4MDIsMHg0YywweGZjLDB4MDB9LAotICAxNiwweDQ5NDAsMCx7MHgwMiwweDRkLDB4MTMsMHgwMCwweDAyLDB4NGQsMHgyYSwweDAwLDB4MDIsMHg0ZCwweDQxLDB4MDAsMHgwMiwweDRkLDB4NTgsMHgwMH0sCi0gICA4LDB4NDk1MCwwLHsweDAyLDB4NGQsMHg2ZiwweDAwLDB4MDIsMHg0ZCwweDg2LDB4MDB9LAotICAxNiwweDQ5NTgsMCx7MHhlNCwweDkwLDB4NzYsMHgyNiwweGYwLDB4OTAsMHg3NiwweDI2LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH0sCi0gIDE2LDB4NDk2OCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHg0OTc4LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDQ5ODgsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHhlZiwweDc1LDB4ZjAsMHgwM30sCi0gIDE2LDB4NDk5OCwwLHsweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwfSwKLSAgIDYsMHg0OWE4LDAsezB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0OWFlLDAsezB4OTAsMHg3NiwweDQ2LDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTN9LAotICAxNiwweDQ5YmUsMCx7MHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH0sCi0gIDE2LDB4NDljZSwwLHsweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzfSwKLSAgMTYsMHg0OWRlLDAsezB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjB9LAotICAxNiwweDQ5ZWUsMCx7MHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMH0sCi0gICA1LDB4NDlmZSwwLHsweGEzLDB4ZjAsMHhhMywweGYwLDB4MjJ9LAotICAxNiwweDRhMDMsMCx7MHhlNCwweDkwLDB4NzYsMHgyNSwweGYwLDB4OTAsMHg3NiwweDI1LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH0sCi0gIDE2LDB4NGExMywwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfSwKLSAgMTYsMHg0YTIzLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9LAotICAxNiwweDRhMzMsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzAsMHhlMH0sCi0gIDE2LDB4NGE0MywwLHsweGZlLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlfSwKLSAgIDIsMHg0YTUzLDAsezB4ZjAsMHgyMn0sCi0gIDE2LDB4NGE1NSwwLHsweGU0LDB4ZmUsMHg3NSwweDFkLDB4ZmYsMHg3NSwweDFlLDB4MDUsMHg3NSwweDFmLDB4MTIsMHhhYiwweDFkLDB4YWEsMHgxZSwweGE5fSwKLSAgMTYsMHg0YTY1LDAsezB4MWYsMHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHg2NCwweDAyLDB4NzAsMHgyZiwweGNkLDB4ZWUsMHhjZCwweDBlLDB4ZWR9LAotICAxNiwweDRhNzUsMCx7MHg2ZiwweDcwLDB4MDEsMHgyMiwweDkwLDB4MDAsMHgwMiwweDEyLDB4MzcsMHgwZSwweDg1LDB4ZjAsMHgxYiwweGY1LDB4MWMsMHg2Mn0sCi0gIDE2LDB4NGE4NSwwLHsweDFiLDB4ZTUsMHgxYiwweDYyLDB4MWMsMHhlNSwweDFjLDB4NjIsMHgxYiwweDI5LDB4ZmQsMHhlNSwweDFiLDB4M2EsMHhjOSwweGVkfSwKLSAgMTYsMHg0YTk1LDAsezB4YzksMHg3NSwweDFkLDB4ZmYsMHhmNSwweDFlLDB4ODksMHgxZiwweDgwLDB4YzEsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9LAotICAgMSwweDRhYTUsMCx7MHgyMn0sCi0gIDE2LDB4NGFhNiwwLHsweGU0LDB4OTAsMHg3NiwweDliLDB4ZjAsMHg5MCwweDc2LDB4OWIsMHhlMCwweGZmLDB4MDQsMHhmMCwweGVmLDB4NjAsMHgwOCwweGUwfSwKLSAgMTYsMHg0YWI2LDAsezB4MjQsMHgwOCwweGY4LDB4ZTQsMHhmNiwweDgwLDB4ZWUsMHg5MCwweDc2LDB4OTYsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDQ0LDB4MDh9LAotICAxNiwweDRhYzYsMCx7MHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZTQsMHhmNSwweDE4LDB4ZDIsMHgzNSwweGY1LDB4MGUsMHhmNSwweDEwLDB4ZDIsMHgzNn0sCi0gIDE2LDB4NGFkNiwwLHsweDc1LDB4MTIsMHgxMSwweDc1LDB4MTMsMHgyMiwweGMyLDB4MzcsMHhjMiwweDM5LDB4YzIsMHgzOCwweGY1LDB4MTYsMHhmNSwweDE0fSwKLSAgMTEsMHg0YWU2LDAsezB4ZjUsMHgxYSwweGY1LDB4MGQsMHhjMiwweDNiLDB4YzIsMHgzYywweGMyLDB4M2QsMHgyMn0sCi0gIDE2LDB4NGFmMSwwLHsweGU0LDB4ZmYsMHg3NCwweDU2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDI4fSwKLSAgMTYsMHg0YjAxLDAsezB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDVlLDB4MmYsMHhmNSwweDgyLDB4ZTR9LAotICAxNiwweDRiMTEsMCx7MHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDM4LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4M30sCi0gICA2LDB4NGIyMSwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY30sCi0gICAxLDB4NGIyNywwLHsweDIyfSwKLSAgMTYsMHg0YjI4LDAsezB4ZTQsMHg5MCwweDcyLDB4MzYsMHhmMCwweGEzLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTB9LAotICAxNiwweDRiMzgsMCx7MHg3MiwweDMzLDB4ZjAsMHg5MCwweDcyLDB4MzIsMHhmMCwweDkwLDB4NzIsMHgwMSwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzIsMHgzM30sCi0gIDE2LDB4NGI0OCwwLHsweGYwLDB4OTAsMHg3MiwweDMyLDB4ZjAsMHg5MCwweDcyLDB4MDEsMHgwNCwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg0NCwweDA0fSwKLSAgIDIsMHg0YjU4LDAsezB4ZjAsMHgyMn0sCi0gIDE2LDB4NGI1YSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwMiwweGYwfSwKLSAgMTYsMHg0YjZhLDAsezB4OTAsMHg3ZiwweGM3LDB4ZTAsMHhmNSwweDExLDB4NzUsMHgwZiwweDAwLDB4NzUsMHgwZCwweDAwLDB4ZDIsMHgzMywweGQwLDB4ODJ9LAotICAgNSwweDRiN2EsMCx7MHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0YjdmLDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4NDIsMHgwNCwweGUwLDB4NDR9LAotICAxNiwweDRiOGYsMCx7MHgwMiwweGYwLDB4N2YsMHhkYywweDdlLDB4MDUsMHgxMiwweDRkLDB4OWQsMHg5MCwweDdmLDB4ZDYsMHhlMCwweDU0LDB4ZjcsMHhmMH0sCi0gICA1LDB4NGI5ZiwwLHsweGUwLDB4NDQsMHgwNCwweGYwLDB4MjJ9LAotICAxNiwweDRiYTQsMCx7MHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NzAsMHgxNCwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZiwweDcwLDB4MDQsMHgxMn0sCi0gIDE2LDB4NGJiNCwwLHsweDQ5LDB4NTgsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fSwKLSAgIDMsMHg0YmM0LDAsezB4MDEsMHhmMCwweDIyfSwKLSAgMTYsMHg0YmM3LDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTMsMHg5MCwweDdmLDB4ZTksMHhlMCwweDE0LDB4NzAsMHgwNCwweDEyLDB4NGF9LAotICAxNiwweDRiZDcsMCx7MHgwMywweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX0sCi0gICAyLDB4NGJlNywwLHsweGYwLDB4MjJ9LAotICAxNiwweDRiZTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHg5MH0sCi0gIDE2LDB4NGJmOSwwLHsweDc2LDB4OTYsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDkwLDB4ODAsMHgwMywweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwfSwKLSAgIDEsMHg0YzA5LDAsezB4MzJ9LAotICAxNiwweDRjMGEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gIDE1LDB4NGMxYSwwLHsweGMyLDB4MjksMHg5MCwweDc2LDB4OGQsMHg3NCwweDAxLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGMyOSwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4MzAsMHhlNywweDEyLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3ZiwweDE0LDB4N2UsMHgwMCwweDEyfSwKLSAgMTAsMHg0YzM5LDAsezB4NGQsMHg5ZCwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4MjJ9LAotICAxNiwweDRjNDMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDI1LDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwOH0sCi0gICA4LDB4NGM1MywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjNWIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDEsMHhmMH0sCi0gICA3LDB4NGM2YiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0YzcyLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDAyLDB4ZjB9LAotICAgNywweDRjODIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGM4OSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgwNCwweGYwfSwKLSAgIDcsMHg0Yzk5LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjYTAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDQsMHhmMH0sCi0gICA3LDB4NGNiMCwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Y2I3LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDA4LDB4ZjB9LAotICAgNywweDRjYzcsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGNjZSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHgwOCwweGYwfSwKLSAgIDcsMHg0Y2RlLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRjZTUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MTAsMHhmMH0sCi0gICA3LDB4NGNmNSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0Y2ZjLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDEwLDB4ZjB9LAotICAgNywweDRkMGMsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQxMywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhOSwweGUwLDB4NDQsMHgyMCwweGYwfSwKLSAgIDcsMHg0ZDIzLDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkMmEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MjAsMHhmMH0sCi0gICA3LDB4NGQzYSwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDQxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGE5LDB4ZTAsMHg0NCwweDQwLDB4ZjB9LAotICAgNywweDRkNTEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYSwweGUwLDB4NDQsMHg0MCwweGYwfSwKLSAgIDcsMHg0ZDY4LDAsezB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDRkNmYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4ODAsMHhmMH0sCi0gICA3LDB4NGQ3ZiwwLHsweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHg0ZDg2LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDgwLDB4ZjB9LAotICAgNywweDRkOTYsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGQ5ZCwwLHsweDhlLDB4MzUsMHg4ZiwweDM2LDB4ZTUsMHgzNiwweDE1LDB4MzYsMHhhZSwweDM1LDB4NzAsMHgwMiwweDE1LDB4MzUsMHg0ZSwweDYwfSwKLSAgIDcsMHg0ZGFkLDAsezB4MDUsMHgxMiwweDE0LDB4ODUsMHg4MCwweGVlLDB4MjJ9LAotICAxNiwweDRkYjQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMH0sCi0gICA2LDB4NGRjNCwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4NGRjYSwwLHsweDkwLDB4NzYsMHg4MiwweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAxLDB4ZjAsMHhkMywweDIyfSwKLSAgMTIsMHg0ZGRhLDAsezB4YzIsMHgzNywweGU0LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhjMiwweDM2LDB4ZjUsMHgxNCwweDIyfSwKLSAgIDksMHg0ZGU2LDAsezB4YzIsMHgyNSwweDUzLDB4ZDgsMHhlZiwweDQzLDB4ZDgsMHgyMCwweDMyfSwKLSAgIDcsMHg0ZGVmLDAsezB4NTMsMHg5OCwweGZlLDB4NTMsMHg5OCwweGZkLDB4MzJ9LAotICAgNywweDRkZjYsMCx7MHg1MywweGMwLDB4ZmUsMHg1MywweGMwLDB4ZmQsMHgzMn0sCi0gICA2LDB4NGRmZCwwLHsweDUzLDB4OTEsMHg3ZiwweGQyLDB4MmMsMHgzMn0sCi0gICA0LDB4NGUwMywwLHsweDUzLDB4OTEsMHhkZiwweDMyfSwKLSAgIDQsMHg0ZTA3LDAsezB4NTMsMHhkOCwweGY3LDB4MzJ9LAotICAgNCwweDRlMGIsMCx7MHgxMiwweDE3LDB4MzAsMHgyMn0sCi0gICAzLDB4NGUwZiwwLHsweGMyLDB4OGQsMHgzMn0sCi0gICAzLDB4NGUxMiwwLHsweGMyLDB4OGYsMHgzMn0sCi0gICAyLDB4NGUxNSwwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMTcsMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTE5LDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUxYiwwLHsweGQzLDB4MjJ9LAotICAgMiwweDRlMWQsMCx7MHhkMywweDIyfSwKLSAgIDIsMHg0ZTFmLDAsezB4ZDMsMHgyMn0sCi0gICAyLDB4NGUyMSwwLHsweGMzLDB4MjJ9LAotICAgMCwweDAwMDAsMSx7MH0KLX07Ci0vKiBTb3VyY2U6IEVNSTYyTUZXLkhFWCAKLToxMDBDOEYwMDQxNzY2ODAxNDE3NjZBMDI0MTc2NkIwQUMxMjBDMTIxMjMKLToxMDQ0QUQwMEMyQUZEMjI0OTA3RjkzNzQzMEYwOTA3RjlDNzRCQkYwOTgKLToxMDQ0QkQwMDkwN0Y5NkUwNDQzMEYwRTA1NDMwRjA5MDdGOTQ3NDMwNkIKLToxMDQ0Q0QwMEYwOTA3RjlENzRDRkYwOTA3Rjk3NzRBMEYwOTA3Rjk1QzIKLToxMDQ0REQwMDc0QzBGMDkwN0Y5RTc0MDNGMDkwN0Y5OUUwMzBFMjA5RjQKLToxMDQ0RUQwMDkwMDUxOTc0QTBGMEU0QTNGMEMyMjVDMjIyQzIyM0MyMjQKLToxMDQ0RkQwMDI2MTI0QjI4MTIyREE5MTIzQkQzMTI0NjE5MTIzQTQyRkQKLToxMDQ1MEQwMDkwNzY2ODc0MDFGMDcwMEYxMjRDMjkxMjRFMTUxMjRFRjAKLToxMDQ1MUQwMDE3MTIxQjQwMTIxNDk2MTI0MzE0OTA3RkFGRTA0NDAxMDIKLToxMDQ1MkQwMEYwOTA3RkFFRTA0NDFGRjA5MDdGQUM3NEZGRjA5MDdGNzEKLToxMDQ1M0QwMEFERjA5MDdGREVGMDkwN0ZERkYwOTA3RkFCRjA5MDdGNUQKLToxMDQ1NEQwMEE5RjA5MDdGQUFGMDUzOTFFRjQzRDgyMEQyRTg0M0Q4MzkKLTowODQ1NUQwMDIwNTNBOEEwNDNBODgwMjIwRQotOjEwMDdBNjAwRTQ5MDc2NjZGMDEyNDRBRDIwMjYxMzkwNzY2NkUwQzM5OAotOjEwMDdCNjAwOTQwMjUwMEFFMDA0RjBEMjQyMTI0QjdGODBFQTMwMjZCRgotOjEwMDdDNjAwMDUxMjI4MDFDMjI2MzAyNTJCOTA3Njk2RTA1NEZDRjBCRgotOjEwMDdENjAwOTA4MDAzRjAxMjE0OTY5MDc2OTZFMDQ0MDNGMDkwODA5MQotOjEwMDdFNjAwMDNGMEU0OTA3NjY3RjA5MDc2NjdFMDA0RjBFMEI0NEJBRgotOjBBMDdGNjAwRjYxMjQ3RkExMjQxMUI4MEM1MjJEQgotOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQotOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNwotOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgotOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MwotOjEwMjg0MTAwNzA0MDEyM0ZFNTQxQ0IxMjRFMUQ0MDAyNDFDQjkwN0ZCQgotOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQwotOjEwMjg2MTAwNDFDQjEyNEUxRjkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0I0QQotOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgotOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgotOjEwMjg5MTAwRjU3MDA1MTI0ODYzNDFDQjkwN0ZCNEUwNDQwMUYwNDFFQgotOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAotOjEwMjhCMTAwNEUxRDQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTAwMgotOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMwotOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgotOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAotOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjRFMUY1OAotOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQwotOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MwotOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQotOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQotOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzRTc0MUNCMTI3NgotOjEwMjk1MTAwNERDQTQxQ0IxMjRFMUJBMjIyRTQzM0ZGMjVFMEZGQTI1OAotOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAotOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQotOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQotOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQotOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAotOjEwMjlCMTAwMTI0NzQ1NDFDQjEyNEUxQkU0OTA3RjAwRjBBM0YwOTBFQgotOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QwotOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0RTFCOTA4RQotOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgotOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAotOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQotOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQotOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAotOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQotOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQotOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAotOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQotOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAotOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQotOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAotOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQotOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEU1RAotOjEwMkFDMTAwMjE1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjRBMQotOjA1MkFEMTAwRTA0NDAyRjAyMkM4Ci06MTA0M0U3MDAxMjRFMTk0MDAyODFBQzkwN0ZFQkUwMjRGRTYwMUUxNDUwCi06MTA0M0Y3MDA2MDQ2MTQ2MDZFMTQ3MDAyODE5RDI0MDQ2MDAyODFBNURBCi06MTA0NDA3MDA3NDA1OTA3RkQ0RjA3NDAwOTA3RkQ1RjAyMjkwN0ZFQUY2Ci06MTA0NDE3MDBFMEZGMTI0QTU1OEIyMDhBMjE4OTIyRUE0OTYwMTFDRTkyCi06MTA0NDI3MDBFQUNFRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMkEwCi06MTA0NDM3MDA5MDdGQjRFMDQ0MDFGMDIyOTA3RkVBRTBGRjEyNDdCNzkzCi06MTA0NDQ3MDA4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRUVFOTA3RjNECi06MTA0NDU3MDBENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkI0RTA0NDNFCi06MTA0NDY3MDAwMUYwMjI5MDdGRUFFMEZGOTA3RUMwRTBGREEzRTBGQjMxCi06MTA0NDc3MDAxMjE3OTQ4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRUFDRTRECi06MTA0NDg3MDBFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTA3RkU5Ci06MTA0NDk3MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjIxCi06MDU0NEE3MDBCNEUwNDQwMUYwNDcKLTowMTQ0QUMwMDIyRUQKLTowMzAwMzMwMDAyNERFNjk1Ci06MDk0REU2MDBDMjI1NTNEOEVGNDNEODIwMzI1NgotOjAyMEM5RjAwQzEyRjYzCi06MDY0N0ZBMDAxMjRCMjhDMjMxMjIxRgotOjEwNDMxNDAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCMwotOjEwNDMyNDAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4MAotOjEwNDMzNDAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5MQotOjEwNDM0NDAwQ0E3Rjc1Q0JGODQzQTgyMDEyNDU2NUMyMkNDMjJEQzI4MgotOjEwNDM1NDAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGMAotOjEwNDM2NDAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUyQgotOjEwNDM3NDAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDlBRTEyMEY5RgotOjEwNDM4NDAwQzYxMjRBRjE5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDJBNQotOjEwNDM5NDAwMzAyMDMwMTgxMjRBQTYxMjMwMDAxMjQwMDAxMjQyMUY3OAotOjEwNDNBNDAwMTI0OEJEMTIxQjA0MTIxNjYxMTI0MjFGMTI0QUE2QzIwMQotOjEwNDNCNDAwMkZDMjMxQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTQ1NgotOjEwNDNDNDAwRjUxMTkwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzZGMgotOjEwNDNENDAwNDBGMDkwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY4MgotOjAzNDNFNDAwOTlGMDIyMkIKLToxMDQ4QkQwMDMwMkQzOUMyMkQ5MDc2MTlFMEZGQjQwMTBERTQ5MDc2QkMKLToxMDQ4Q0QwMDdDRjBBMzc0RjhGMEEzNzQwQUYwRUZCNDAyMERFNDkwMzkKLToxMDQ4REQwMDc2N0NGMEEzNzRGMEYwQTM3NDBCRjBFRkI0MDMwREU0NDkKLTowRDQ4RUQwMDkwNzY3Q0YwQTM3NEY4RjBBMzc0MTdGMDIyMEQKLToxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKLToxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKLToxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKLTowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCi06MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCi06MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCi06MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCi06MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCi06MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Ci06MTA0MTZCMDA5QTEyMzAwMDMwMzMwMzEyNDAwMDkwN0Y5QkUwMjBFNDIyCi06MTA0MTdCMDAwMkMyM0Y5MDdGOUJFMDMwRTQwMkQyM0Y5MDdGOUJFMEY2Ci06MTA0MThCMDAyMEU1MDJDMjNFOTA3RjlCRTAzMEU1MDJEMjNFQTI0MTg5Ci06MTA0MTlCMDAzMDNGMDFCMzUwMUZBMjNGOTI0MTMwM0YwOTkwNzY5N0I5Ci06MTA0MUFCMDBFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5NzBDCi06MTA0MUJCMDBFMDkwODAwMkYwMzAzRjM0OTA3NjE5RTBGRkI0MDEwRUFFCi06MTA0MUNCMDA5MDc2N0M3NDY3RjBBMzc0MDZGMEEzNzQwQkYwRUZCNEQ1Ci06MTA0MURCMDAwMjBCRTQ5MDc2N0NGMEEzRjBBMzc0MENGMEVGQjQwMzI1Ci06MTA0MUVCMDAwQkU0OTA3NjdDRjBBM0YwQTM3NDE4RjBBMjQwMzAzRTYxCi06MTA0MUZCMDAwMUIzNTAxRkEyM0U5MjQwMzAzRTA5OTA3Njk1RTA0NEE5Ci06MTA0MjBCMDAwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTA3Njk1RTA5MDYzCi06MDQ0MjFCMDA4MDAxRjAyMjBDCi06MDI0RTE1MDBEMzIyQTYKLTowMjRFMTcwMEQzMjJBNAotOjAyNEUxOTAwRDMyMkEyCi06MTAzRkU1MDA5MDdGRUFFMDkwNzY4MkYwRTQ5MDc2OTFGMDkwNzY5Mjc4Ci06MEIzRkY1MDBGMDkwNzY5MEYwOTA3NjkzRjBEMzIyQ0QKLToxMDREQ0EwMDkwNzY4MkUwOTA3RjAwRjA5MDdGQjU3NDAxRjBEMzIyNTQKLToxMDQ4NjMwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxNzE0NjAyMTE0REQKLToxMDQ4NzMwMDYwMkIxNDYwMzIyNDA0NzAzODkwN0ZFQUUwOTA3NjkxQzQKLToxMDQ4ODMwMEYwODAzNTkwN0ZFQUUwOTA3NjkyRjAxMjNFOUY4MDI4ODgKLToxMDQ4OTMwMDkwN0ZFQUUwOTA3NjkwRjAxMjE4MDA4MDFCOTA3RkVBRjgKLToxMDQ4QTMwMEUwOTA3Njg0RjA4MDExOTA3RkVBRTA5MDc2OTNGMDgwMzgKLTowQTQ4QjMwMDA3OTA3RkI0RTA0NDAxRjBEMzIyMjcKLToxMDQ3NDUwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxRDE0NjAyQTE0RUQKLToxMDQ3NTUwMDYwMzcxNDYwNDQyNDA0NzA1MDkwNzY5MUUwOTA3RjAwOTcKLToxMDQ3NjUwMEYwOTA3RkI1NzQwMUYwODA0NzkwNzY5MkUwOTA3RjAwREQKLToxMDQ3NzUwMEYwOTA3RkI1NzQwMUYwODAzNzkwNzY5MEUwOTA3RjAwREYKLToxMDQ3ODUwMEYwOTA3RkI1NzQwMUYwODAyNzkwNzY4NEUwOTA3RjAwRUIKLToxMDQ3OTUwMEYwOTA3RkI1NzQwMUYwODAxNzkwNzY5M0UwOTA3RjAwREMKLToxMDQ3QTUwMEYwOTA3RkI1NzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOEMKLTowMjQ3QjUwMEQzMjIwRAotOjAyNEUxQjAwRDMyMkEwCi06MDI0RTFEMDBEMzIyOUUKLTowMjRFMUYwMEQzMjI5QwotOjAyNEUyMTAwQzMyMkFBCi06MTAyRkU3MDBDMEUwQzA4M0MwODJEMjI2NTM5MUVGOTA3RkFCNzQwMUJCCi06MDgyRkY3MDBGMEQwODJEMDgzRDBFMDMyNUIKLToxMDREQjQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDRGMEQwMDUKLTowNjREQzQwMDgyRDA4M0QwRTAzMjMyCi06MTAzRDQ3MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEY2Ci06MTAzRDU3MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkIxCi06MTAzRDY3MDBDMEUwOTA3RkEyRTA5MDc2N0ZGMDkwN0Y3NEUwOTA3NjNECi06MTAzRDc3MDA4N0YwOTA3Rjc1RTA5MDc2ODhGMDkwN0Y5OEUwNDQwMjE2Ci06MTAzRDg3MDBGMDkwNzY5NkUwRkYyMEUxMEM0NDAyRjA5MDgwMDNGMDdCCi06MTAzRDk3MDBEMjMyMTI0QjI4OTA3NjdGRTAyMEUyNTA5MDc2ODdFMDZGCi06MTAzREE3MDBGRUEzRTA3QzAwMjQwMEY1MzRFQzNFRjUzMzkwNzY5OEQyCi06MTAzREI3MDBFMEZEQUUzM0FGMzQxMjM2RDg5MDc2ODdFRkYwRDIyRkNFCi06MTAzREM3MDAzMDMxMjkyMDNGMjZDMjMxOTA3Rjk0RTA1NENGRjA5MEM0Ci06MTAzREQ3MDA3RjlBRTAzMEU0MDREMjJEQzIyQzkwN0Y5QUUwMjBFNTUwCi06MTAzREU3MDAwNEMyMkREMjJDOTA3Rjk0RTA0NDMwRjAxMjQ4QkQxMkNCCi06MTAzREY3MDAxQjA0MzAyRjEyMTI0MjFGQzIyRjc1RTgwMTEyMTY4QUI4Ci06MTAzRTA3MDA3NUU4MEREMjJCODAwNTc1RTgwMUMyMkIyMDJCMzQ5MDY1Ci06MTAzRTE3MDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjAwCi06MTAzRTI3MDBGMEEzNzQwQkYwRUZCNDAyMEI5MDc2N0NFNEYwQTNGMEYwCi06MTAzRTM3MDBBMzc0MENGMEVGQjQwMzBCOTA3NjdDRTRGMEEzRjBBMzJCCi06MTAzRTQ3MDA3NDE4RjA3NUNBRDM3NUNCRkVEMkNBMzAzNDA0QzIzNEE1Ci06MTAzRTU3MDA4MDAyRDIzNDMwMzQwRDkwNzY4OUUwQzM5NDAzNDAwNDU1Ci06MTAzRTY3MDBFMDI0RkRGMDUzOTFFRjkwN0ZBQjc0MDJGMEYwOTA3RjY4Ci06MTAzRTc3MDA5OEUwNTRGREYwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEM4Ci06MTAzRTg3MDBGQ0QwRTBGQkQwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDE5Ci06MDgzRTk3MDA4MkQwODNEMEYwRDBFMDMyQUMKLToxMDRCRTkwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMDkwMDYKLToxMDRCRjkwMDc2OTZFMDU0RkRGMDkwODAwM0YwRDA4MkQwODNEMEUwMjcKLTowMTRDMDkwMDMyNzgKLTowMTJGRkYwMDMyOUYKLToxMDRDNDMwMEMwRTBDMDgzQzA4MkQyMjU1MzkxRUY5MDdGQUI3NDA4M0MKLTowODRDNTMwMEYwRDA4MkQwODNEMEUwMzJFMgotOjEwNEM1QjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjA4NAotOjA3NEM2QjAwRDA4MkQwODNEMEUwMzJCQgotOjEwNEMwQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAxRjBENAotOjBGNEMxQTAwQzIyOTkwNzY4RDc0MDFGMEQwODJEMDgzRDBFMDMyMjEKLToxMDRDNzIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMkYwNkMKLTowNzRDODIwMEQwODJEMDgzRDBFMDMyQTQKLToxMDRCNUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwODQKLToxMDRCNkEwMDkwN0ZDN0UwRjUxMTc1MEYwMDc1MEQwMEQyMzNEMDgyMjIKLTowNTRCN0EwMEQwODNEMEUwMzIwMQotOjEwNEM4OTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjA1MwotOjA3NEM5OTAwRDA4MkQwODNEMEUwMzI4RAotOjEwNENBMDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjAzQgotOjA3NENCMDAwRDA4MkQwODNEMEUwMzI3NgotOjEwNENCNzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjAyMQotOjA3NENDNzAwRDA4MkQwODNEMEUwMzI1RgotOjEwNENDRTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjAwOQotOjA3NENERTAwRDA4MkQwODNEMEUwMzI0OAotOjEwNENFNTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjBFQgotOjA3NENGNTAwRDA4MkQwODNEMEUwMzIzMQotOjEwNENGQzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjBEMwotOjA3NEQwQzAwRDA4MkQwODNEMEUwMzIxOQotOjEwNEQxMzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjBBQwotOjA3NEQyMzAwRDA4MkQwODNEMEUwMzIwMgotOjEwNEQyQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjA5NAotOjA3NEQzQTAwRDA4MkQwODNEMEUwMzJFQgotOjEwNEQ0MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjA1RQotOjA3NEQ1MTAwRDA4MkQwODNEMEUwMzJENAotOjEwNEQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjA0NgotOjA3NEQ2ODAwRDA4MkQwODNEMEUwMzJCRAotOjEwNEQ2RjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjBGMAotOjA3NEQ3RjAwRDA4MkQwODNEMEUwMzJBNgotOjEwNEQ4NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjBEOAotOjA3NEQ5NjAwRDA4MkQwODNEMEUwMzI4RgotOjEwNDIxRjAwOTA3NjE5RTA2NDAxNzAzNTkwNzY4N0UwRkZEMzk0MkQ4NgotOjEwNDIyRjAwNDAyQjkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDMxMQotOjEwNDIzRjAwOTQwRjQwMTlFNEYwRUZEMzk0MzE0MDA4OTA3NjE5NzQzRAotOjEwNDI0RjAwMDNGMDgwMDY5MDc2MTk3NDAyRjAxMjNFOUY5MDc2MTk1MwotOjEwNDI1RjAwRTBCNDAyMkM5MDc2ODdFMEZGQzM5NDJGNTAyMkVGRDM2NwotOjEwNDI2RjAwOTQyQTQwMUM5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBENQotOjEwNDI3RjAwRTBEMzk0MEY0MDBBRTRGMDkwNzYxOTA0RjAxMjNFOUZCOQotOjEwNDI4RjAwOTA3NjE5RTBCNDAyMjY5MDc2ODdFMEQzOTQzMTQwMURFMgotOjEwNDI5RjAwOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY2OQotOjEwNDJBRjAwNDAwQkU0RjA5MDc2MTk3NDAzRjAxMjNFOUY5MDc2MTk0QwotOjEwNDJCRjAwRTA2NDAzNzAzRjkwNzY4N0UwRkZDMzk0NUY1MDM1OTBDMgotOjEwNDJDRjAwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNDA4OQotOjEwNDJERjAwMjNFNEYwRUZDMzk0MkY1MDBDRUZEMzk0MkE0MDA2OTBCMQotOjEwNDJFRjAwNzYxOTc0MDFGMEVGRDM5NDJGNDAwNjkwNzYxOTc0MDI2QgotOjEwNDJGRjAwRjAxMjNFOUY5MDc2ODZFMDcwMDU5MDc2ODVGMDIyRTQ2RQotOjA1NDMwRjAwOTA3Njg2RjAyMjBCCi06MTA0NTY1MDA5MDc2OUE3NDAyRjBFNDkwNzY5MUYwQTNGMDkwNzY5MEFDCi06MTA0NTc1MDBGMDkwNzY5M0YwOTA3Njk2NzQwM0YwOTA4MDAzRjBFNEQzCi06MTA0NTg1MDA5MDc2OTdGMDkwODAwMkYwOTA3Njk0MDRGMDkwODAwMEY5Ci06MTA0NTk1MDBGMEU0OTA3NjhFRjA5MDc2MUFGMDkwNzY5NTA0RjBDMjVECi06MTA0NUE1MDAyRTkwN0Y5QkUwRkY1NDEwRkY3MDAyQzIzRjkwN0Y5QkNGCi06MTA0NUI1MDBFMEZGNTQxMEZFRkZCRTEwMDJEMjNGOTA3RjlCRTBGRjRDCi06MTA0NUM1MDA1NDIwRkY3MDAyQzIzRTkwN0Y5QkUwRkY1NDIwRkVGRjA3Ci06MTA0NUQ1MDBCRTIwMDJEMjNFMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDJGCi06MTA0NUU1MDAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMDhFCi06MTA0NUY1MDAzMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMDhBCi06MTA0NjA1MDA1NEZCRjA5MDc2OTVFMDkwODAwMUYwQTIzRTkyNDBBMjk2Ci06MDM0NjE1MDAzRjkyNDE5MAotOjAxNDYxODAwMjI3RgotOjEwM0U5RjAwOTA3NjkyRTAxNDYwMUQxNDcwMDJFMTU0MjQwMjYwMDJDNwotOjEwM0VBRjAwRTFFNDkwNzY5NDc0MDFGMDkwODAwMEYwRTQ5MDc2OEVDNwotOjEwM0VCRjAwRjBEMjMxMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGRjIyQgotOjEwM0VDRjAwRjA5MDdGRjM3NDMwRjA5MDdGRkY3NEZDRjA5MDc2OTc1MgotOjEwM0VERjAwRTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyRjBERQotOjEwM0VFRjAwOTA3RkYzNzQzNEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTAzRQotOjEwM0VGRjAwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwOTAxQgotOjEwM0YwRjAwN0ZGMzc0NjRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwNDQzOQotOjEwM0YxRjAwMDRGMDkwNzY5NEUwNDQwMUYwOTA4MDAwRjAzMDNGMDk3NwotOjEwM0YyRjAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjA4QQotOjEwM0YzRjAwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDRGMDkwNzZFNwotOjEwM0Y0RjAwOEU3NDAxRjAyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0Y4QwotOjEwM0Y1RjAwRjJGMDkwN0ZGMzc0NDRGMDkwN0ZGRjc0RkNGMDkwNzY1MgotOjEwM0Y2RjAwOTdFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJBNgotOjEwM0Y3RjAwRjA5MDdGRjM3NDRDRjA5MDdGRkY3NEZDRjA5MDc2OTc4NQotOjEwM0Y4RjAwRTA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjAzQQotOjEwM0Y5RjAwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTAyRAotOjEwM0ZBRjAwNDQwNEYwOTA3Njk0RTA1NEZFRjA5MDgwMDBGMDMwM0Y5RgotOjEwM0ZCRjAwMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFFMQotOjEwM0ZDRjAwRjA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNkYwOTBEQgotOjA2M0ZERjAwNzY4RTc0MDJGMDIyNTAKLToxMDE4MDAwMDkwNzY5MEUwMTQ2MDM3MTQ3MDAyMDFEODE0NzAwMjIxQjEKLToxMDE4MTAwMDcyMTQ3MDAyNDEzQjI0MDQ2MDAyNjEwMzkwN0ZGQzc0RTcKLToxMDE4MjAwMENDRjA5MDdGRkY3NEZDRjA5MDc2OTVFMDQ0MDFGMDU0OEEKLToxMDE4MzAwMDA1RjA5MDgwMDFGMEU0OTA3NjFBRjBDMjJFMjI5MDc2QTYKLToxMDE4NDAwMDk1RTA0NDAxRjA0NDAyRjAzMDNFMDZFMDQ0MDRGMDgwQUMKLToxMDE4NTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwN0EKLToxMDE4NjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyMjkwMjcKLToxMDE4NzAwMDdGRkM3NDc0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCNzMKLToxMDE4ODAwMEYwOTA3Njk3RTA1NEZERjBFNDkwNzY4MUYwOTA3NjgwQzkKLToxMDE4OTAwMEYwRUZCNDAyMjI5MDdGRkM3NDY4RjA5MDdGRkY3NEZDM0MKLToxMDE4QTAwMEYwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRjBFNDkwRjkKLToxMDE4QjAwMDc2ODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFODQKLToxMDE4QzAwMEYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA1NEZCMjMKLToxMDE4RDAwMEYwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0RkVGMDQ0RjMKLToxMDE4RTAwMDAyRjAzMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0MjQKLToxMDE4RjAwMEZCRjA5MDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxQjQKLToxMDE5MDAwMEYwOTA3NjE5RTBGRkI0MDEyMjkwN0ZGQzc0MzBGMDkwRTMKLToxMDE5MTAwMDdGRkY3NEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RjQKLToxMDE5MjAwMEZERjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyMjkwQTIKLToxMDE5MzAwMDdGRkM3NDFDRjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGMDYKLToxMDE5NDAwMEYwOTA3Njk3RTA0NDAyRjBFNDkwNzY4MUYwOTA3NjgwMTMKLToxMDE5NTAwMEYwMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3M0MKLToxMDE5NjAwMEUwNDQwMUYwOTA3Njk3RTA1NEZCRjA5MDgwMDJGMEQyRDIKLToxMDE5NzAwMDJFMjI5MDc2OTVFMDQ0MDFGMDQ0MDJGMDQ0MDhGMDMwQzUKLToxMDE5ODAwMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwMkEKLToxMDE5OTAwMDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxRjA5MDc2OTgKLToxMDE5QTAwMDE5RTBGRkI0MDEyNTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0QTgKLToxMDE5QjAwMEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RkRGMDU0MDUKLToxMDE5QzAwMEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyNTkwMDEKLToxMDE5RDAwMDdGRkM3NEM4RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGQkEKLToxMDE5RTAwMEYwOTA3Njk3RTA0NDAyRjA1NEZCRjBFNDkwNzY4MUYwQkEKLToxMDE5RjAwMDkwNzY4MEYwRUZCNDAzMjU5MDdGRkM3NDk4RjA5MDdGOTAKLToxMDFBMDAwMEZGNzRGQ0YwOTA3NjhGNzQ1RkYwOTA3Njk3RTA1NEZENTEKLToxMDFBMTAwMEYwNDQwNEYwRTQ5MDc2ODFGMDkwNzY4MEYwMzAzRjA5NTUKLToxMDFBMjAwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwQkUKLToxMDFBMzAwMDkwNzY5N0UwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0MzYKLToxMDFBNDAwMEZFRjA0NDAyRjA0NDA4RjAzMDNFMDZFMDQ0MDRGMDgwMkEKLToxMDFBNTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwNzgKLToxMDFBNjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyNTkwMjIKLToxMDFBNzAwMDdGRkM3NEI0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCMzEKLToxMDFBODAwMEYwOTA3Njk3RTA1NEZERjA1NEZCRjBFNDkwNzY4MUYwMEUKLToxMDFBOTAwMDkwNzY4MEYwRUZCNDAyMjU5MDdGRkM3NEIwRjA5MDdGRDgKLToxMDFBQTAwMEZGNzRGQ0YwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRUMKLToxMDFBQjAwMEYwNTRGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAzODAKLToxMDFBQzAwMDI1OTA3RkZDNzQ2OEYwOTA3RkZGNzRGQ0YwOTA3NjhGMTcKLToxMDFBRDAwMDc0NUZGMDkwNzY5N0UwNTRGREYwNDQwNEYwRTQ5MDc2NjMKLToxMDFBRTAwMDgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwRDgKLToxMDFBRjAwMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyMUUKLTowNDFCMDAwMEYwRDIyRTIyQ0YKLTowNDBDQTEwMDQxNzYyMzAwNzUKLToxMDJEQTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTIKLToxMDJEQjkwMDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MEZGNTgyREYKLToxMDJEQzkwMEU0MzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQxMEY1NkMKLToxMDJERDkwMDgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGQTAKLToxMDJERTkwMDc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQxMEYwQUMKLToxMDJERjkwMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA1QTcKLToxMDJFMDkwMEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4M0U0M0EKLToxMDJFMTkwMEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1OTcKLToxMDJFMjkwMDgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGN0UKLToxMDJFMzkwMEY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0ODgKLToxMDJFNDkwMDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwMDkKLToxMDJFNTkwMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0NUMKLToxMDJFNjkwMDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzQkUKLToxMDJFNzkwMDc0MDNGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1QkEKLToxMDJFODkwMDgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0QzMKLToxMDJFOTkwMDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBFRjc1RjAwM0E0MzAKLToxMDJFQTkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDZGMEVGNzVGMDAzQTkKLToxMDJFQjkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwQzUKLToxMDJFQzkwMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1RUYKLToxMDJFRDkwMDgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1Q0UKLToxMDJFRTkwMEY1ODM3NDA0RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0M0IKLToxMDJFRjkwMDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQjEKLToxMDJGMDkwMEE0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwQUMKLToxMDJGMTkwMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA4RjBFRjc1ODIKLToxMDJGMjkwMEYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDkwNTkKLToxMDJGMzkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTAKLToxMDJGNDkwMDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyNEMKLToxMDJGNTkwMEU0MzQ3NUY1ODM3NDBBRjBFRjc1RjAwM0E0MjQxMEY1RDEKLToxMDJGNjkwMDgyRTQzNDc1RjU4Mzc0MDRGMDkwNzYzNkUwMDRGMEUwNzkKLToxMDJGNzkwMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyMTkKLToxMDJGODkwMEYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MkEKLToxMDJGOTkwMDA5RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzODQKLToxMDJGQTkwMDc0MDRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0OTEKLToxMDJGQjkwMDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MUQKLToxMDJGQzkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDdGMEVGNzVGMDAzODcKLTowRTJGRDkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwMjIwQwotOjEwM0JEMzAwRTQ5MDc2MzZGMEUwRkI3NUYwMEZBNDI0NDFGNTgyRTQxRgotOjEwM0JFMzAwMzQ3NUY1ODM3NDQwRjBFQjc1RjAwRkE0MjQ0MkY1ODIyRAotOjEwM0JGMzAwRTQzNDc1RjU4Mzc0MEFGMEVCNzVGMDBGQTQyNDQzRjVGMAotOjEwM0MwMzAwODJFNDM0NzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjBEOQotOjEwM0MxMzAwMEZBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDBGNgotOjEwM0MyMzAwQUM0NEVCNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNCMwotOjEwM0MzMzAwMTIzN0M4MDAwMTc3MDA5MDc2MzZFMDA0RjBFMEZCNzU5OAotOjEwM0M0MzAwRjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MEYwRUI1RQotOjEwM0M1MzAwNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDhDRjA3NwotOjEwM0M2MzAwRUI3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4MzEyMzcyMgotOjEwM0M3MzAwQzgwMDAwQUM0NEVCNzVGMDBGQTQyNDQ3RjU4MkU0MzQ4QwotOjEwM0M4MzAwNzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjAwRkE0MjQxQwotOjEwM0M5MzAwNEJGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDE3NzAwOTA0MQotOjEwM0NBMzAwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTREQQotOjEwM0NCMzAwMzQ3NUY1ODM3NDQwRjBFRjc1RjAwRkE0MjQ0MkY1ODI1OAotOjEwM0NDMzAwRTQzNDc1RjU4Mzc0OEZGMDkwNzYzNkUwMDRGMEUwRkYwQQotOjEwM0NEMzAwNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQxRjA0MwotOjEwM0NFMzAwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0ODRGMAotOjEwM0NGMzAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU3MAotOjEwM0QwMzAwODJFNDM0NzVGNTgzNzQ2MUYwRUY3NUYwMEZBNDI0NDJGNwotOjEwM0QxMzAwRjU4MkU0MzQ3NUY1ODM3NDgxRjA5MDc2MzZFMDA0RjAyRgotOjEwM0QyMzAwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0NAotOjEwM0QzMzAwNjFGMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM0NgotOjA0M0Q0MzAwNzQwMUYwMjJGNQotOjEwNDYxOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTRFNQotOjEwNDYyOTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTRERgotOjEwNDYzOTAwMzQ3NUY1ODM3NDAxRjA5MDc2MzZFMDA0RjBFMEZGNzU4NwotOjEwNDY0OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzVDMAotOjEwNDY1OTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwMkYwOTBGMQotOjEwNDY2OTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTQyNQotOjEwNDY3OTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTQ4RgotOjEwNDY4OTAwMzQ3NUY1ODM3NDAzRjA5MDc2MzZFMDA0RjBFMEZGNzUzNQotOjEwNDY5OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzU3MAotOjEwNDZBOTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwNEYwMjIwRAotOjEwM0E0MjAwRTQ5MDc2MzVGMDkwNzYzNUUwRkZDMzk0MDM0MDAyNDE2RQotOjEwM0E1MjAwRkZFRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNTgzRUYyQQotOjEwM0E2MjAwRjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTQzMwotOjEwM0E3MjAwRjBFRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNzQ5MgotOjEwM0E4MjAwRjBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODMwNQotOjEwM0E5MjAwNzRGRkYwRUY3NUYwMEFBNDI0QUVGNTgyRTQzNDc1RjVGNAotOjEwM0FBMjAwODNFNEYwRUY3NUYwMEFBNDI0QUZGNTgyRTQzNDc1RjVFRgotOjEwM0FCMjAwODM3NDgwRjBFRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVDMwotOjEwM0FDMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVDRAotOjEwM0FEMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVCQwotOjEwM0FFMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVBQgotOjEwM0FGMjAwRjU4Mzc0MDFGMDkwNzYzNUUwMDRGMDQxNDc5MDc2M0MwRQotOjEwM0IwMjAwNzQwQUYwRTRBM0YwOTA3NjM1NzQwM0YwOTA3NjNDRTAwQQotOjEwM0IxMjAwRkY5MDc2MzVFMEZFQzM5RjQwMDI2MUQyOTA3NjNERTA5MQotOjEwM0IyMjAwRkYwNEYwRUU3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjVEOAotOjEwM0IzMjAwODNFRkYwRUU3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU1OAotOjEwM0I0MjAwODNFNEYwRUU3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU1MgotOjEwM0I1MjAwODM3NDVFRjBFRTc1RjAwQUE0MjRBREY1ODJFNDM0NzU0OAotOjEwM0I2MjAwRjU4Mzc0QkFGMEVFNzVGMDBBQTQyNEFFRjU4MkU0MzQ1QgotOjEwM0I3MjAwNzVGNTgzNzQwNUYwRUU3NUYwMEFBNDI0QUZGNTgyRTRCRQotOjEwM0I4MjAwMzQ3NUY1ODM3NDgwRjBFRTc1RjAwQUE0MjRCMEY1ODJFMgotOjEwM0I5MjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMUY1ODJGRAotOjEwM0JBMjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMkY1ODJFQwotOjEwM0JCMjAwRTQzNDc1RjU4Mzc0MTVGMEVFNzVGMDBBQTQyNEIzRjVCOAotOjEwM0JDMjAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNUUwMDRGMDYxMEUxQQotOjAxM0JEMjAwMjJEMAotOjEwMDgwMDAwRTQ5MDc2MzFGMDkwNzYzMUUwRkY3NUYwMDNBNDI0MEY4OAotOjEwMDgxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0QQotOjEwMDgyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYzMUUwMDRGMDgwRDU1MQotOjEwMDgzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNCMQotOjEwMDg0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYzM0YwMjQyOQotOjEwMDg1MDAwRjA2MDBBMjQwRTYwMDI4MTg3MTI0QkM3MjI5MDdGRUQ2MAotOjEwMDg2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzNzc0MDE0NQotOjEwMDg3MDAwRjA5MDc2Mzk3NDAzRjA5MDc2MjFGMEU0OTA3NjIwRjBEMQotOjEwMDg4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MjBFMEZGNzVGMDBBQTRGNAotOjEwMDg5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1QQotOjEwMDhBMDAwRUU2RDYwMTI5MDc2MjFFMEZFRUZDMzlFNTAwODkwNzZDOAotOjEwMDhCMDAwMjBFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFNQotOjEwMDhDMDAwMTg3NDA2RjA5MDc2Mzc3NDA0RjA5MDc2Mzk3NDBBRjA1NAotOjEwMDhEMDAwOTA3NjIxRjA5MDc2MjA3NDAzRjA5MDdGRUFFMEY0NjA0NwotOjEwMDhFMDAwMkY5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2NAotOjEwMDhGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY4NAotOjEwMDkwMDAwMjFFMEZFRUZDMzlFNTAwODkwNzYyMEUwMDRGMDgwRDFGNQotOjEwMDkxMDAwOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVFRAotOjEwMDkyMDAwRjU4M0UwOTA3MjI5RjBFNDkwNzYzQkYwOTA3NjIxRTAzOAotOjEwMDkzMDAwRkVFRjZFNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJGMAotOjEwMDk0MDAwRTAxNDYwMTMxNDcwMDIyMUUyMjQwMjYwMDI4MTdGOTA5RgotOjEwMDk1MDAwN0ZCNEUwNDQwMUYwMjI5MDdGRTlFMDE0NzA3QzkwN0Y0NgotOjEwMDk2MDAwRUFFMEY0NzA0ODkwNzYzN0UwOTA3NjIwRjA5MDc2Mzk5RgotOjEwMDk3MDAwRTBGRTkwNzYyMEUwRkRDMzlFNTAyQjkwNzYzQkUwRkU5QgotOjEwMDk4MDAwMDRGMDc0QzAyRUY1ODJFNDM0N0VGNTgzRTBGRUVENzU0QwotOjEwMDk5MDAwRjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRUVGMDkwNzY4QQotOjEwMDlBMDAwMjBFMDA0RjA4MEM3OTA3NjNGNzQwMUYwMjI5MDdFQzA3MgotOjEwMDlCMDAwRTBGRUVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODMwQwotOjEwMDlDMDAwRUVGMEUwQjQwMTA4OTA3NjNFNzQwMUYwODAwNUU0OTAwQQotOjEwMDlEMDAwNzYzRUYwOTA3NjNGNzQwMUYwMjI5MDdGQjRFMDQ0MDFCRgotOjEwMDlFMDAwRjAyMjkwN0ZFOUUwMjRGRTcwMDI0MUEzMTQ3MDAyNjFCRQotOjEwMDlGMDAwM0YxNDcwMDI2MURCMjQwMzYwMDI4MTc3OTA3RkVBRTA5QwotOjEwMEEwMDAwRjQ3MDZCOTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkZDNgotOjEwMEExMDAwOTA3NjIwRTBGRUMzOUY1MDRFOTA3NjNCRTBGRjA0RjBCRQotOjEwMEEyMDAwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBMgotOjEwMEEzMDAwQTQyNEFDRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCRTBDNgotOjEwMEE0MDAwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUVGRQotOjEwMEE1MDAwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTBDNwotOjEwMEE2MDAwNzYyMEUwMDRGMDgwQTQ5MDc2NDA3NDAxRjAyMjkwN0UxRAotOjEwMEE3MDAwQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBQ0Y1ODI3OQotOjEwMEE4MDAwRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEE3NwotOjEwMEE5MDAwQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjQxNzRDQgotOjEwMEFBMDAwMDFGMDIyOTA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzY2RAotOjEwMEFCMDAwMjBGMDkwNzYzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI2MAotOjEwMEFDMDAwODE4RTkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQxMQotOjEwMEFEMDAwN0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFFRjU4MkU0MzRERgotOjEwMEFFMDAwNzVGNTgzRUZGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjVDRQotOjEwMEFGMDAwODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFGRjVCRQotOjEwMEIwMDAwODJFNDM0NzVGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI2MwotOjEwMEIxMDAwOTA3RUMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUUzRgotOjEwMEIyMDAwRjU4MkU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzU1OQotOjEwMEIzMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRUZGMDIyOTAzNwotOjEwMEI0MDAwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzY1OQotOjEwMEI1MDAwMzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzZDMAotOjEwMEI2MDAwM0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBBRgotOjEwMEI3MDAwRkZFRTc1RjAwQUE0MjRCMEY1ODJFNDM0NzVGNTgzRUYzNgotOjEwMEI4MDAwRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGMQotOjEwMEI5MDAwRjU4M0UwRkZFRTc1RjAwQUE0MjRCMUY1ODJFNDM0NzUyNAotOjEwMEJBMDAwRjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTAyNAotOjEwMEJCMDAwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEIwRjU4MkU0MzRCQwotOjEwMEJDMDAwNzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjQ4NgotOjEwMEJEMDAwQjFGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFQUUwRjQxQQotOjEwMEJFMDAwNzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGOTA0RQotOjEwMEJGMDAwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2M0JFMEZGMDRBQQotOjEwMEMwMDAwRjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjBEQQotOjEwMEMxMDAwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JCNAotOjEwMEMyMDAwRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkYyQQotOjEwMEMzMDAwRUU3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU4M0VGRjA4MQotOjEwMEM0MDAwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwRkY5MDc2MjBCNQotOjEwMEM1MDAwRTBGRTc1RjAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUY2MgotOjEwMEM2MDAwRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0QjNGNTgyRTRCMwotOjEwMEM3MDAwMzQ3NUY1ODNFRkYwMjI5MDdGQjRFMDQ0MDFGMDIyOTBDOAotOjBGMEM4MDAwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyMDEKLToxMDEwMDAwMEU0OTA3NjJDRjA5MDc2MkNFMEZGNzVGMDAzQTQyNDBGOEEKLToxMDEwMTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENDIKLToxMDEwMjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MkNFMDA0RjA4MEQ1NEUKLToxMDEwMzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQTkKLToxMDEwNDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MkVGMDI0MjYKLToxMDEwNTAwMEYwNjAwQTI0MEY2MDAyODE3RDEyNEJBNDIyOTA3RkVEODQKLToxMDEwNjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzg3NDAxM0MKLToxMDEwNzAwMEYwOTA3NjNBNzQwM0YwOTA3NjFDRjBFNDkwNzYxQkYwRDIKLToxMDEwODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjFCRTBGRjc1RjAwQUE0RjEKLToxMDEwOTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENTIKLToxMDEwQTAwMEVFNkQ2MDEyOTA3NjFDRTBGRUVGQzM5RTUwMDg5MDc2QzUKLToxMDEwQjAwMDFCRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTIKLToxMDEwQzAwMDE4NzQwNkYwOTA3NjM4NzQwNEYwOTA3NjNBNzQwQUYwNEEKLToxMDEwRDAwMDkwNzYxQ0YwOTA3NjFCNzQwM0YwOTA3RkVBRTBGNDYwNDkKLToxMDEwRTAwMDJGOTA3NjFCRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjEKLToxMDEwRjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2N0MKLToxMDExMDAwMDFDRTBGRUVGQzM5RTUwMDg5MDc2MUJFMDA0RjA4MEQxRjcKLToxMDExMTAwMEU0OTA3NjFFRjA5MDc2MUNFMEZGOTA3NjFCRTBGRTZGNjgKLToxMDExMjAwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRTAxNDYwRkYKLToxMDExMzAwMDEzMTQ3MDAyMjFCRjI0MDI2MDAyODE3NTkwN0ZCNEUwMTUKLToxMDExNDAwMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzA2QjkwN0ZFQUUwMTkKLToxMDExNTAwMEY0NzA0QTkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTMKLToxMDExNjAwMDkwNzYxQkUwRkRDMzlGNTAyQkVENzVGMDBBQTQyNEFCRDUKLToxMDExNzAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkQwNEYwMUYKLToxMDExODAwMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwNTgKLToxMDExOTAwMDA0RjA4MEM3OTA3NjFFRTA5MDdGQjVGMDIyRUU3NUYwRTcKLToxMDExQTAwMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwNjcKLToxMDExQjAwMDkwN0ZCNTc0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwNUEKLToxMDExQzAwMDdGRTlFMDI0N0U3MDAyNDE3RTE0NzAwMjYxMjMxNDcwNzYKLToxMDExRDAwMDAyNjFDODI0MDM2MDAyODE2RDkwN0ZFQUUwRjQ3MDZEQzMKLToxMDExRTAwMDkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCOTAKLToxMDExRjAwMEUwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEFDRjU4MkU0RjEKLToxMDEyMDAwMDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJENDkKLToxMDEyMTAwMEY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEFEOTcKLToxMDEyMjAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNkQKLToxMDEyMzAwMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwQTYKLToxMDEyNDAwMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCOEIKLToxMDEyNTAwMEUwRkY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwNzAKLToxMDEyNjAwMDkwN0YwMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1QTgKLToxMDEyNzAwMEY1ODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQkIKLToxMDEyODAwMEVBRTBGNDcwNkQ5MDc2MzhFMDkwNzYxQkYwOTA3NjNBNTQKLToxMDEyOTAwMEUwRkY5MDc2MUJFMEMzOUY1MDRGRTBGRjc1RjAwQUE0N0IKLToxMDEyQTAwMDI0QUVGNTgyRTQzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMTEKLToxMDEyQjAwMDA0RjA3NDAwMkRGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RDEKLToxMDEyQzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0UwRkY5MDc2NEMKLToxMDEyRDAwMDFFRTBGRTA0RjA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGMDcKLToxMDEyRTAwMEYwOTA3NjFCRTAwNEYwODBBNDkwNzYxRUUwOTA3RkI1MkQKLToxMDEyRjAwMEYwMjI5MDc2MUJFMEZGNzVGMDBBQTQyNEFFRjU4MkU0OUMKLToxMDEzMDAwMDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVGMDBBQTQyNEFGMDgKLToxMDEzMTAwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MzkKLToxMDEzMjAwMDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2REIKLToxMDEzMzAwMDFCRjA5MDc2M0FFMEZGOTA3NjFCRTBDMzlGNTA0RkUwQTEKLToxMDEzNDAwMEZGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFMEZFNUQKLToxMDEzNTAwMDkwNzYxRUUwRkQwNEYwNzQwMDJERjU4MkU0MzQ3RkY1RjQKLToxMDEzNjAwMDgzRUVGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1NEMKLToxMDEzNzAwMDgzRTBGRjkwNzYxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MTgKLToxMDEzODAwMDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MzQKLToxMDEzOTAwMDFFRTA5MDdGQjVGMDIyOTA3NjFCRTBGRjc1RjAwQUE0NjYKLToxMDEzQTAwMDI0QjBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjBFRjc1QUEKLToxMDEzQjAwMEYwMEFBNDI0QjFGNTgyRTQzNDc1RjU4M0UwOTA3RjAxNEUKLToxMDEzQzAwMEYwOTA3RkI1NzQwMkYwMjI5MDdGRUFFMEY0NzA2RDkwQTcKLToxMDEzRDAwMDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQkUwNEUKLToxMDEzRTAwMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0QTUKLToxMDEzRjAwMDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyREY1OTcKLToxMDE0MDAwMDgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRCM0Y1OUYKLToxMDE0MTAwMDgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDc0RkMKLToxMDE0MjAwMDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDA0MjQKLToxMDE0MzAwMEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQkUwQkQKLToxMDE0NDAwMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFMDkwQzgKLToxMDE0NTAwMDdGMDBGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1NEIKLToxMDE0NjAwMDgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkI0MEEKLToxMDE0NzAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0NzgKLTowNTE0ODAwMEUwNDQwMUYwMjIzMAotOjEwMzg3NDAwRTQ5MDc2MjlGMDkwNzYyOUUwRkY3NUYwMEZBNDI0NDJCNQotOjEwMzg4NDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRBNwotOjEwMzg5NDAwNjAwRUVGQzM5NDA2NTAwODkwNzYyOUUwMDRGMDgwRDVCQQotOjEwMzhBNDAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEYwNgotOjEwMzhCNDAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyQUYwMjQ1QgotOjEwMzhDNDAwQkY3MDAyNDE0MTI0RTA3MDAyNDExMjI0MjE2MDAyNDE5MAotOjEwMzhENDAwM0E5MDdGRTlFMDI0RkU2MDdEMTQ3MDAyMjFCMjI0MDI1NAotOjEwMzhFNDAwNjAwMjQxMEExMjE3NTE5MDc2NDJFMEZDQTNFMEZEQTM2NgotOjEwMzhGNDAwRTBGRUEzRTBGRjkwNzYyOUUwNzVGMDBGQTQyNDQzRjVFMQotOjEwMzkwNDAwODJFNDM0NzVGNTgzMTIzN0JDOTA3NjE5RTBGRkI0MDE3NAotOjEwMzkxNDAwMTI5MDc2N0M3NDY3RjA5MDc2N0Q3NDA2RjA5MDc2N0VEMwotOjEwMzkyNDAwNzQwQkYwRUZCNDAyMEZFNDkwNzY3Q0YwOTA3NjdERjBBNwotOjEwMzkzNDAwOTA3NjdFNzQwQ0YwRUZCNDAzMEZFNDkwNzY3Q0YwOTBGNAotOjEwMzk0NDAwNzY3REYwOTA3NjdFNzQxOEYwOTA3NjFBNzQwMUYwMTJGOQotOjEwMzk1NDAwM0U5RjEyMTgwMDIyOTA3RUMyRTBGRkU0RkNGREZFRkJCNQotOjEwMzk2NDAwRkE3OTAxRjgxMjM3NDZDOEVDQzhDOUVEQzlDQUVFQ0FEQgotOjEwMzk3NDAwQ0JFRkNCOTA3RUMxRTBGRUU0RkNGRDJCRkJFQTNFRkFFQwotOjEwMzk4NDAwRUQzOUY5RUMzOEY4OTA3RUMwRTBGRkU0RkVFQjJGRkY1MAotOjEwMzk5NDAwRUUzQUZFRUQzOUZERUMzOEZDOTA3NjI5RTA3NUYwMEYzNwotOjEwMzlBNDAwQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QkMyMjkwN0U1MwotOjEwMzlCNDAwQzJFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIzNzQ2QzhDOQotOjEwMzlDNDAwRUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwN0VDMUUwRkUwQwotOjEwMzlENDAwRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGODkwN0U3NQotOjEwMzlFNDAwQzBFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGREVDMzhDQwotOjEwMzlGNDAwRkM5MDc2MjlFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzUyRAotOjEwM0EwNDAwRjU4MzEyMzdCQzIyOTA3RkI0RTA0NDAxRjAyMjkwN0YwQQotOjEwM0ExNDAwRTlFMDE0NzAxOTkwN0VDMEUwRkY5MDc2MjlFMDc1RjAxQgotOjEwM0EyNDAwMEZBNDI0NEZGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFMAotOjBFM0EzNDAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjlGCi06MTAyQUQ2MDBFNDkwNzYyN0YwOTA3NjI3RTBGRjc1RjAwRkE0MjQ0MjY1Ci06MTAyQUU2MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDUzCi06MTAyQUY2MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI3RTAwNEYwODBENTY4Ci06MTAyQjA2MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRkIxCi06MTAyQjE2MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjI4RjAyNDA4Ci06MTAyQjI2MDA5RjcwMDJBMTc0MjQyMTYwMDJBMUExOTA3RkU5RTAyNDk0Ci06MTAyQjM2MDA3RTcwMDI2MUZDMTQ3MDAyODFCNTI0MDI2MDAyQTE2Q0YxCi06MTAyQjQ2MDBFRjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0I5Ci06MTAyQjU2MDBBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5MDA3ODE2Ci06MTAyQjY2MDAwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0FCCi06MTAyQjc2MDBGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDRCCi06MTAyQjg2MDAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGRDRECi06MTAyQjk2MDBBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQzMxMjM2Ci06MTAyQkE2MDAzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwRTRBMzdFCi06MTAyQkI2MDBGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNEFCCi06MTAyQkM2MDA0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRTYzCi06MTAyQkQ2MDBBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QUI2MEY4Ci06MTAyQkU2MDAwMkExQTg5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGCi06MTAyQkY2MDA3RkI1NzQwM0YwMjI5MDc2MjdFMDc1RjAwRkE0MjQ0NzgyCi06MTAyQzA2MDBGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0MyCi06MTAyQzE2MDBFMEZGN0I0NDdBQUM3OTAwNzgwMEMzMTIzN0FCNzAxM0JGCi06MTAyQzI2MDA5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTNGMDkwN0ZCNUY5Ci06MTAyQzM2MDA3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDNDCi06MTAyQzQ2MDAzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjgzCi06MTAyQzU2MDA4MDdBQkI3OTAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDdGCi06MTAyQzY2MDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDNGMDE2Ci06MTAyQzc2MDA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDM0NzVGNUM1Ci06MTAyQzg2MDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjAwN0E3N0YwCi06MTAyQzk2MDA3OTAxNzgwMEMzMTIzN0FCNjAwMkExQTg5MDdGMDBGMERCCi06MTAyQ0E2MDBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MEJCCi06MTAyQ0I2MDA3NjI3RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4MzhFCi06MTAyQ0M2MDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTQxCi06MTAyQ0Q2MDAwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBM0UyCi06MTAyQ0U2MDA3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDFGCi06MTAyQ0Y2MDA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBMzRDCi06MTAyRDA2MDBFMEZEQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEJDCi06MTAyRDE2MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEJFCi06MTAyRDI2MDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRjdBCi06MTAyRDM2MDBBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0ZGCi06MTAyRDQ2MDBFMEZFQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0IzCi06MTAyRDU2MDBBQjcwNEY5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MEVFCi06MTAyRDY2MDA3RkI1NzQwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3Rjk3Ci06MTAyRDc2MDBFOUUwMjQ3RjcwMUU5MDc2MjdFMDc1RjAwRkE0MjQ0RkJCCi06MTAyRDg2MDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDdGQjU3NEFBCi06MTAyRDk2MDAwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NEY2Ci06MDMyREE2MDAwMUYwMjIxNwotOjEwNEJBNDAwOTA3RkVCRTAxNDcwMTQ5MDdGRTlFMDI0N0Y3MDA0MTI4RQotOjEwNEJCNDAwNDk1ODIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQ0RAotOjAzNEJDNDAwMDFGMDIyREIKLToxMDRCQzcwMDkwN0ZFQkUwMTQ3MDEzOTA3RkU5RTAxNDcwMDQxMjRBQjEKLToxMDRCRDcwMDAzMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxQzcKLTowMjRCRTcwMEYwMjJCQQotOjEwNDk1ODAwRTQ5MDc2MjZGMDkwNzYyNkUwRkY3NUYwMDNBNDI0MzRFMAotOjEwNDk2ODAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkRCMgotOjEwNDk3ODAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNkUwMDRGMDgwRDVDQQotOjEwNDk4ODAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDMxRgotOjEwNDk5ODAwQTQyNDMyRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTAyQQotOjA2NDlBODAwN0ZCNTc0MDFGMDIyNEUKLToxMDRBMDMwMEU0OTA3NjI1RjA5MDc2MjVFMEZGNzVGMDAzQTQyNDM0MzYKLToxMDRBMTMwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEMDYKLToxMDRBMjMwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjVFMDA0RjA4MEQ1MUYKLToxMDRBMzMwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMjkwN0VDMEUwMUMKLToxMDRBNDMwMEZFRUY3NUYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0VFQUEKLTowMjRBNTMwMEYwMjI0RgotOjAzMDAwMzAwMDIwRkZERUMKLTowMzBGRkQwMEMyODkzMjc0Ci06MDMwMDEzMDAwMjE3RkRENAotOjAzMTdGRDAwQzI4QjMyNkEKLTowMzAwNEIwMDAyNEUwMzVGCi06MDQ0RTAzMDA1MzkxREYzMkI2Ci06MDMwMDUzMDAwMjQ4RkE2NgotOjA2NDhGQTAwNTM5MUJGRDIyRDMyRTQKLTowMzAwNUIwMDAyNERGRDU2Ci06MDY0REZEMDA1MzkxN0ZEMjJDMzIxRAotOjAzMDA2MzAwMDI0RTA3NDMKLTowNDRFMDcwMDUzRDhGNzMyNTMKLTowMzAwMEIwMDAyNEUwRjkzCi06MDM0RTBGMDBDMjhEMzIxRgotOjAzMDAxQjAwMDI0RTEyODAKLTowMzRFMTIwMEMyOEYzMjFBCi06MDMwMDIzMDAwMjRERUY5QwotOjA3NERFRjAwNTM5OEZFNTM5OEZEMzJCQQotOjAzMDAzQjAwMDI0REY2N0QKLTowNzRERjYwMDUzQzBGRTUzQzBGRDMyNjMKLTowMzAwMkIwMDAyNDgwMDg4Ci06MTA0ODAwMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDMyCi06MTA0ODEwMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkVECi06MTA0ODIwMDBDMEUwQzJDQUMyQ0Y5MDdGOThFMDQ0MDFGMDMwMkUwM0FFCi06MTA0ODMwMDAxMjE0QTY5MDdGOThFMDU0RkVGMDUzQThGQTEyMTY2MTY1Ci06MTA0ODQwMDBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMDM3Ci06MTA0ODUwMDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODJEMDgzRDBGMDI4Ci06MDM0ODYwMDBEMEUwMzI3MwotOjEwNEFBNjAwRTQ5MDc2OUJGMDkwNzY5QkUwRkYwNEYwRUY2MDA4RTBFMAotOjEwNEFCNjAwMjQwOEY4RTRGNjgwRUU5MDc2OTZFMDQ0MDRGMDQ0MDg4NAotOjEwNEFDNjAwRjA5MDgwMDNGMEU0RjUxOEQyMzVGNTBFRjUxMEQyMzZFNQotOjEwNEFENjAwNzUxMjExNzUxMzIyQzIzN0MyMzlDMjM4RjUxNkY1MTQ4QwotOjBCNEFFNjAwRjUxQUY1MERDMjNCQzIzQ0MyM0QyMjk4Ci06MTAzMDAwMDA5MDdGQjZFMDIwRTEwMkMyM0REMjM2MjAzNjAyNDE2RTBBCi06MTAzMDEwMDAzMDNEMDI0MTZFOTA4MDA3RTA2MDA0RDIzNjgwMDJDMkVCCi06MTAzMDIwMDAzNjIwMzYwMjQxMkVEMjM1RTRGNTFBOTA4MDA0RTBGNUMwCi06MTAzMDMwMDAxOTc0MDgyNTBFRjhBNjE5ODUxOTE4RTUxODIwRTcwNDUzCi06MTAzMDQwMDBEMjM4ODAwMkMyMzgzMDM4MDIyMUQ0RTRGNTE2RTUxOUFFCi06MTAzMDUwMDBCNEYwMENEMjM5NzUwODA0NzUwOUYwMDUwRTgwMDIwNTJDCi06MTAzMDYwMDAxNkU1MTk2NEY3NzAzREMyMzlFNTBFMjRGRTYwMTcxNEE5Ci06MTAzMDcwMDA2MDIyMjQwMzcwMjk3NTA4MDU3NTA5RjdFNEY1MEFGNTNGCi06MTAzMDgwMDAwQjc1MEUwNDgwMjA3NTA4MDY3NTBBRjdFNEY1MEI3NUJDCi06MTAzMDkwMDAwRTA0ODAxMjc1MDgwNzc1MEJGNzc1MEUwNDgwMDcxMjcxCi06MTAzMEEwMDA0RERBODAwMjA1MTZFNTE5NTRGODY0Rjg3MDNCQzIzNTE0Ci06MTAzMEIwMDBFNTE5MjQwNzYwMEMyNEZDNjAwODI0MDUyNEY4NTAwNjU4Ci06MTAzMEMwMDA4MDA4RDIzQTgwMDZDMjNBODAwMkQyM0E3NTFBMDEyMEFDCi06MTAzMEQwMDAzQTE5OTA3RTgwNzQwRkYwQTNFNTE5RjBFNEEzRjBBM0YxCi06MTAzMEUwMDBGMDkwN0ZCNzc0MDRGMDgwMDIwNTE2MjAzOTZERTUxOTYxCi06MTAzMEYwMDA2NEY3NjA2N0U1MUE3MDYzRTUxODU0RjA2NEYwNzA1OTdFCi06MTAzMTAwMDA4NTE4MTlGNTBFRTUxOTI0MEY2MDFCMjRGRTYwMTcyNDlECi06MTAzMTEwMDBGRDYwMjIxNDYwMUYyNDA1NzAyRjc1MDgwMzA1MEU4NUJECi06MTAzMTIwMDAxODA5RDIzNzgwMjg3NTA4MDIwNTBFODUxODA5NzUxNDBDCi06MTAzMTMwMDAwMUQyMzc4MDE5NzUwODA1MDUwRTg1MTgwOUU0RjUwQUNFCi06MTAzMTQwMDBGNTBCNzUwRTAzRDIzNzgwMDUxMjREREFDMjM1MzAzNUQ2Ci06MTAzMTUwMDAwQTg1MDgxMzg1MTgxMjgwMDIwNTE2ODUxODE5RTUxNkM4Ci06MTAzMTYwMDA2NDA0NzA2MkY1MEVFNTE5NTRGMEY1MTlGNTE1ODUxODJCCi06MTAzMTcwMDAxOUU1MTUyNDcwNjAxODI0RjA2MDE0MjRGMDYwMTAyNDAwCi06MTAzMTgwMDBGMDYwMUUyNEYwNjAxQTI0RjA2MDA0MjQ2MDcwMjdFNUNCCi06MTAzMTkwMDAxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOUQyMzc4MEE2Ci06MTAzMUEwMDAxQUU1MTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDk3NUFCCi06MTAzMUIwMDAxNDAxRDIzNzgwMDUxMjREREFDMjM1MzAzNTBBODUxOTJGCi06MTAzMUMwMDAxMzg1MTgxMjgwMDIwNTE2RTUxNkQzOTQwNTQwNTcxMjkwCi06MTAzMUQwMDA0RERBODA1MjMwMzkxN0U1MEU3MDBBODUwODA5NzUwOEY2Ci06MTAzMUUwMDAwNDA1MEU4MDQxNzQwODI1MEVGOEE2MTk4MDM4MjAzNzkyCi06MTAzMUYwMDAyQUU1MEVCNDAxMEY4NTA4MEE4NTA5MEI4NTEzMDg4NTk5Ci06MTAzMjAwMDAxMjA5NzUwRTA0RTUxNEI0MDExQzg1MDgwQUU0RjUwQkQ3Ci06MTAzMjEwMDA4NTEzMDg4NTEyMDk3NTBFMDQ4MDBCRTUxNEI0MDEwNkE4Ci06MTAzMjIwMDBFNEY1MEI3NTBFMDRFNEY1MUEzMDM1MDIwNTBFRTUwRUQzCi06MTAzMjMwMDBEMzk0MDM1MDAyMDEwQkMyMzdFNEY1MEVGNTEwQzIzNkU5Ci06MTAzMjQwMDBEMjNERjUxNDc0MDgyNTEwRjhFNkZGNzQ4MDI1MTBGNUJBCi06MTAzMjUwMDA4MkU0MzQ3RUY1ODNFRkYwNzQwODI1MTBGOEU0RjYwNTc3Ci06MEYzMjYwMDAxMEU1MTBCNDA0REU5MDdGQjc3NDA0RjAwMTBCMjI2OAotOjBDNEREQTAwQzIzN0U0RjUwRUY1MTBDMjM2RjUxNDIyQzUKLToxMDQwMDAwMEU1MTFEMzk0MDA1MDAyMjEwNjkwNzY4OUUwQzM5NDA4MEMKLToxMDQwMTAwMDQwMDIyMTA2NzQ0MDI1MEZGNTgyRTQzNDdFRjU4M0UwRUEKLToxMDQwMjAwMEY1MTdFNTBENjAwRTkwODAwNUU1MTdGMDkwNzY4OUUwQjQKLToxMDQwMzAwMDA0RjAwMURBRTUxNzEyMzdGOTQwQzEwMjQwNjcwNTQwODQKLToxMDQwNDAwMDdBMDY0MDk4MDc0MEMxMEM0MEMxMEQ0MEM3MEY0MENCRDUKLToxMDQwNTAwMEY2NDBDQkY4NDBDQkZBNDBDQkZCNDBDQkZDNDBDQkZFNEMKLToxMDQwNjAwMDQwQ0JGRjAwMDA0MERBOTA3RTQxRTA5MDgwMDVGMDkwNjgKLToxMDQwNzAwMDc2ODlFMDA0RjA3NTExMDE4MDYwOTA3RTQxRTA5MDgwQzcKLToxMDQwODAwMDA1RjA5MDdFNDJFMDkwODAwNUYwOTA3Njg5RTAwNEYwQTMKLToxMDQwOTAwMEUwMDRGMDc1MTEwMTgwNDI5MDdFNDFFMDkwODAwNUYwQ0YKLToxMDQwQTAwMDkwN0U0MkUwOTA4MDA1RjA5MDdFNDNFMDkwODAwNUYwQTUKLToxMDQwQjAwMDkwNzY4OUUwMDRGMEUwMDRGMEUwMDRGMDc1MTEwMTgwRUUKLToxMDQwQzAwMDE5RDIzQkQyM0M4MDEzRDIzQjgwMEY5MDgwMDVFNTE3N0MKLToxMDQwRDAwMEYwOTA3Njg5RTAwNEYwNzUxMTAxMjAzQjA0MDUwRDgwMTUKLToxMDQwRTAwMDFGMzAzQzFDOTA3RTQxRTA5MDgwMDVGMDkwN0U0MkUwQzUKLToxMDQwRjAwMDkwODAwNUYwOTA3Njg5RTAwNEYwRTAwNEYwNzUxMTAxRkQKLToxMDQxMDAwMDA1MEYxNTExMDEwMEU1MTE3MDEwQzIzM0Y1MERGNTBGMDMKLTowQjQxMTAwMDkwN0ZDNzc0MDRGMEMyM0JDMjNDMjI0OQotOjEwNEMyOTAwOTA3RkQ2RTAzMEU3MTJFMDQ0MDFGMDdGMTQ3RTAwMTI1NQotOjBBNEMzOTAwNEQ5RDkwN0ZENkUwNTRGRUYwMjI1RQotOjEwNEI3RjAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwNDIwNEUwNDQ2QwotOjEwNEI4RjAwMDJGMDdGREM3RTA1MTI0RDlEOTA3RkQ2RTA1NEY3RjA0QQotOjA1NEI5RjAwRTA0NDA0RjAyMkQ3Ci06MTA0RDlEMDA4RTM1OEYzNkU1MzYxNTM2QUUzNTcwMDIxNTM1NEU2MENCCi06MDc0REFEMDAwNTEyMTQ4NTgwRUUyMkJGCi06MTA0QTU1MDBFNEZFNzUxREZGNzUxRTA1NzUxRjEyQUIxREFBMUVBOTY3Ci06MTA0QTY1MDAxRjkwMDAwMTEyMzZBQjY0MDI3MDJGQ0RFRUNEMEVFRDE2Ci06MTA0QTc1MDA2RjcwMDEyMjkwMDAwMjEyMzcwRTg1RjAxQkY1MUM2MjQzCi06MTA0QTg1MDAxQkU1MUI2MjFDRTUxQzYyMUIyOUZERTUxQjNBQzlFREY0Ci06MTA0QTk1MDBDOTc1MURGRkY1MUU4OTFGODBDMTdCMDA3QTAwNzkwMDRECi06MDE0QUE1MDAyMkVFCi06MDQxNzk0MDA4RDI5OEIyQUU2Ci06MTAxNzk4MDAxMjRBNTVFQTQ5NjA1NzEyMzY5MjdFMDAyOUZGRUUzQUZFCi06MTAxN0E4MDBDOUVGQzk3NTJCRkZGNTJDODkyREFCMkJBQTJDQTkyREI4Ci06MTAxN0I4MDA5MDAwMDExMjM2QUJGRjY0MDQ2MDA1RUY2NDA1NzAyRURCCi06MTAxN0M4MDBFRkI0MDQxNTkwMDAwMjEyMzZBQjY1Mjk3MDBCOTAwMDM3Ci06MTAxN0Q4MDAwMzEyMzZBQjY1MkE3MDAxMjIxMjM2OTI3RTAwMjlGRjY5Ci06MTAxN0U4MDBFRTNBQzlFRkM5NzUyQkZGRjUyQzg5MkQ4MEJDN0IwMDFCCi06MDQxN0Y4MDA3QTAwNzkwMEZBCi06MDExN0ZDMDAyMkNBCi06MDI0N0I3MDA4RjJFNDMKLToxMDQ3QjkwMEU0RjUyRjc1MzBGRjc1MzEwNzc1MzIxQUFCMzBBQTMxMjAKLToxMDQ3QzkwMEE5MzI5MDAwMDExMjM2QUJCNDAzMUZBRjJGMDUyRkVGQUEKLToxMDQ3RDkwMDY1MkU3MDAxMjIxMjM2OTI3RTAwMjlGRkVFM0FDOUVGNEEKLToxMDQ3RTkwMEM5NzUzMEZGRjUzMTg5MzI4MEQyN0IwMDdBMDA3OTAwQjIKLTowMTQ3RjkwMDIyOUQKLToxMDA1MDAwMDEyMDExMDAxMDAwMDAwNDA2QTA4MTEwMTAwMDEwMTAyRkYKLToxMDA1MTAwMDAwMDEwOTAyMDgwMjA1MDEwMDgwMzIwOTA0MDAwMDAwMDAKLToxMDA1MjAwMDAxMDEwMDAwMEEyNDAxMDAwMTU2MDAwMjAxMDIwQzI0MEUKLToxMDA1MzAwMDAyMDEwMTAxMDAwMjAwMDAwMDAwMEQyNDA2MDUwMTAyNzUKLToxMDA1NDAwMDAzMDAwMDAwMDAwMDAwMDkyNDAzMDIwNDAzMDAwNTAwNkEKLToxMDA1NTAwMDBDMjQwMjAzMDUwMjAwMDYwMDAwMDAwMDE1MjQwNjA2MTQKLToxMDA1NjAwMDAzMDIwMDAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMzAwNzQKLToxMDA1NzAwMDAwMDkyNDAzMDQwMTAxMDAwNjAwMDkwNDAxMDAwMDAxMzAKLToxMDA1ODAwMDAyMDAwMDA5MDQwMTAxMDIwMTAyMDAwMDA3MjQwMTAxMjgKLToxMDA1OTAwMDAwMDEwMDExMjQwMjAxMDIwMjEwMDM0NEFDMDA4MEJCRTAKLToxMDA1QTAwMDAwMDA3NzAxMDkwNTBBMDU4NDAxMDEwMDhGMDcyNTAxNzQKLToxMDA1QjAwMDAxMDAwMDAwMDkwNThGMDEwMzAwMDEwNTAwMDkwNDAxODUKLToxMDA1QzAwMDAyMDIwMTAyMDAwMDA3MjQwMTAxMDAwMTAwMTEyNDAyQkYKLToxMDA1RDAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NDkKLToxMDA1RTAwMDBBMDU0NjAyMDEwMDhGMDcyNTAxMDEwMDAwMDAwOTA1RTgKLToxMDA1RjAwMDhGMDEwMzAwMDEwNTAwMDkwNDAyMDAwMDAxMDIwMDAwNTAKLToxMDA2MDAwMDA5MDQwMjAxMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwQTUKLToxMDA2MTAwMDBFMjQwMjAxMDYwMjEwMDI0NEFDMDA4MEJCMDAwOTA1NTIKLToxMDA2MjAwMDhDMDU0QzAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0QUUKLToxMDA2MzAwMDAyMDIwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAwRTI0NEYKLToxMDA2NDAwMDAyMDEwNjAzMTgwMjQ0QUMwMDgwQkIwMDA5MDU4QzA1QkEKLToxMDA2NTAwMDcyMDMwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMjAzRTMKLToxMDA2NjAwMDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMjAxMUQKLToxMDA2NzAwMDAyMDIxMDAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNThDMjYKLToxMDA2ODAwMDA1ODQwMTAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyQTEKLToxMDA2OTAwMDA0MDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyRUEKLToxMDA2QTAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NzgKLToxMDA2QjAwMDhDMDU0NjAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MjQKLToxMDA2QzAwMDAzMDAwMDAxMDEwMDAwMDkyNDAxMDAwMTA5MDAwMTA0RTgKLToxMDA2RDAwMDA5MDQwNDAwMDIwMTAzMDAwMDA3MjQwMTAwMDEyNDAwQjIKLToxMDA2RTAwMDA2MjQwMjAxMDcwMDA5MjQwMzAyMDgwMTA3MDEwMDA2OEQKLToxMDA2RjAwMDI0MDIwMjA5MDAwOTI0MDMwMTBBMDEwOTAxMDAwOTA1NzUKLToxMDA3MDAwMDAxMDIwNDAwMDAwMDAwMDUyNTAxMDEwNzA5MDU4MTAyMUUKLToxMDA3MTAwMDA0MDAwMDAwMDAwNTI1MDEwMTBBMDQwMzA5MDQxODAzNzAKLToxMDA3MjAwMDQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NzAwMUMKLToxMDA3MzAwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMDYxMDA2NzAwMDMKLToxMDA3NDAwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDIwMDAzNjAwOEMKLToxMDA3NTAwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMDZGMDA2RTAwMTEKLToxMDA3NjAwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwMkUKLToxMDA3NzAwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNkMKLToxMDA3ODAwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNzUKLToxMDA3OTAwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUKLTowNjA3QTAwMDZFMDA2NzAwMDAwMDdFCi06MTAxNDg1MDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTdBCi06MDExNDk1MDAyMjM0Ci06MTAxNDk2MDA5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkUwCi06MTAxNEE2MDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTA4REUwQzBFMERDCi06MTAxNEI2MDA4Q0UwQzBFMEMwODJDMDgzMDU4NkMwODRDMDg1N0QwMDA0Ci06MTAxNEM2MDA5MDdGRTM3NDdCRjBBMzc0ODBGMDdDMTE5MDdGOTlFMEE5Ci06MTAxNEQ2MDA1NDQwREMwMzAyMTRGM0I0MDAxMzkwN0ZFMjc0NDBGMDJFCi06MTAxNEU2MDA5MDdGRTVGMDkwN0ZFMjc0MDBGMDAyMTREMjkwNzY5MDNGCi06MTAxNEY2MDBFMEI0MDExMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMENCCi06MTAxNTA2MDA5MDdGNkMwMjE1NTdCNDAyMTI5MDc2OEZFMDJERkQ5MEY1Ci06MTAxNTE2MDA3RkUyNzQ4MEYwOTA3RjZDMDIxNTk2QjQwMzEyOTA3Njg5Ci06MTAxNTI2MDA4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTVFMUQ0Ci06MTAxNTM2MDBCNDA0MTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjA5MEQ3Ci06MTAxNTQ2MDA3RjZDMDIxNjEwOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNjFBCi06MTAxNTU2MDA0MEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERjI3REI5Ci06MTAxNTY2MDAwMjA1ODY5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNEZECi06MTAxNTc2MDAwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMDJECi06MTAxNTg2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERENDAyMTY0MEZDCi06MTAxNTk2MDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMDQ1Ci06MTAxNUE2MDBGMEYwRERFQzdEMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjFFCi06MTAxNUI2MDA5QkUwNTQwNEI0MDAwNTA1ODYwMjE2NDA5MDdGRTI3NDUxCi06MTAxNUM2MDA4MEYwMDU4NkYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERBCi06MDYxNUQ2MDBGMEYwRjBGMEYwRjA2RgotOjEwMTVEQzAwRERDRTAyMTY0MEYwRjBGMEYwRERGQTdEMDIwNTg2OTBDQgotOjEwMTVFQzAwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1ODYwNAotOjEwMTVGQzAwMDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwREQ4QQotOjEwMTYwQzAwREMwMjE2NDBGMEYwRjBGMEYwRjBEREY4N0QwMjA1ODYxQgotOjEwMTYxQzAwOTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDVDOQotOjEwMTYyQzAwODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBCMAotOjEwMTYzQzAwRjBGMEREREE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODY3RQotOjEwMTY0QzAwRDA4M0QwODJEMEUwRkNEMEUwRkREMEUwRkVEMEUwRkYzMwotOjA1MTY1QzAwRDBFMEQwRDAyMjE3Ci06MTAxNjYxMDBDMEQwQzBFMEMwODJDMDgzOTA3NjdDRTA5MDdGNkZGMEY0Ci06MTAxNjcxMDA5MDc2N0RFMDkwN0Y2RkYwOTA3NjdFRTA5MDdGNkZGMEM2Ci06MDkxNjgxMDBEMDgzRDA4MkQwRTBEMEQwMjI0OQotOjEwMTY4QTAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwQzA4MkMwODM3RQotOjEwMTY5QTAwMDU4NkMwODRDMDg1OTA3Njg3RTBGRkJGMDAwMzAyMTdFNQotOjEwMTZBQTAwMDE5MDdGOTZFMDQ0ODBGMDkwN0ZFMjc0ODBGMDkwN0YxMgotOjEwMTZCQTAwNjJFMDA1ODY5MDdGRTI3NDAwRjA5MDdGOTZFMDU0N0ZBNgotOjEwMTZDQTAwRjA5MDdGRTI3NDgwRjA5MDc2OEVFMEI0MDEwNTA1ODY5MgotOjEwMTZEQTAwMDIxNkY2QjQwMjA1MDU4NjAyMTZFQjA1ODYwMjE2RkIwQgotOjEwMTZFQTAwRTBFMEUwRTBFMEUwREZGODAyMTZGQkUwRTBFMEUwREY2NwotOjEwMTZGQTAwRkE5MDdGRTI3NDAwRjBEMDg1RDA4NDA1ODZEMDgzRDAzQQotOjBDMTcwQTAwODJEMEUwRkVEMEUwRkZEMEUwRDBEMDIyODIKLToxMDE3MTYwMEMwODJDMDgzQzBFMEU4QzBFMDc4RDFFODE0Rjg3MEZCNkUKLTowQTE3MjYwMEQwRTBGOEQwRTBEMDgzRDA4MjIyOUEKLToxMDBDQTUwMDQxNzIwMTAxNDU3MjA1MDAwMkM5MDAwMDQ1NzIwQTAwNDIKLToxMDBDQjUwMDAxMDIwMzA0NEQ3MjBGRDEwMEQxMDAwMDAwMDAwMDAwQjUKLToxMDBDQzUwMDI4MjgwOTAwNEQ3MjFDMDEwMDAxMDIwMzA0MDUwNjA3Q0UKLToxMDBDRDUwMDA4MDkwQTBCNDE3MjJFMjI0MTcyMkYyMzQxNzIzMDIwREUKLToxMDBDRTUwMDQxNzIzMTIxNjJEMjcyM0EwMDAwMDAwMDAwMDAwMDAwMUEKLToxMDBDRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDBEMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDBEMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDBEMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDBEMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDBENDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDBENTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDBENjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDBENzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMTAxMDEwMTAxNjgKLToxMDBEODUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNEUKLToxMDBEOTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxM0UKLToxMDBEQTUwMDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMkUKLToxMDBEQjUwMDAxMDEwMTAxMDEwMTAxMDEwMjAyMDIwMjAyMDIwMjAyMTYKLToxMDBEQzUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRkUKLToxMDBERDUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRUUKLToxMDBERTUwMDAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyREUKLToxMDBERjUwMDAyMDIwMjAyMDIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQzMKLToxMDBFMDUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzQUQKLToxMDBFMTUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOUQKLToxMDBFMjUwMDAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzOEQKLToxMDBFMzUwMDAzMDMwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NkYKLToxMDBFNDUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NUQKLToxMDBFNTUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0NEQKLToxMDBFNjUwMDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0M0QKLToxMDBFNzUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MUQKLToxMDBFODUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MEQKLToxMDBFOTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1RkQKLToxMDBFQTUwMDA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNjA2RUIKLToxMDBFQjUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2Q0QKLToxMDBFQzUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QkQKLToxMDBFRDUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2QUQKLToxMDBFRTUwMDA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNzA3MDcwODA4OTYKLToxMDBFRjUwMDA4MDkwOTA5MEEwQTBBMEIwQjBCMEMwQzBDMEQwRDBENDAKLToxMDBGMDUwMDBFMEUwRTBGMEYwRjEwMTAxMDExMTExMTEyMTIxMjEzRDkKLToxMDBGMTUwMDEzMTMxNDE0MTQxNTE1MTUxNjE2MTYxNzE3MTcxODE4NzQKLToxMDBGMjUwMDE4MTkxOTE5MTkxQTFBMUExQTFCMUIxQjFCMUMxQzFDMTgKLToxMDBGMzUwMDFDMUQxRDFEMUQxRTFFMUUxRTFGMUYxRjFGMjAyMDIwQzgKLToxMDBGNDUwMDIxMjEyMTIyMjIyMjIzMjMyNDI0MjUyNTI2MjYyNzI3NjEKLToxMDBGNTUwMDI4MjgyOTI5MkEyQTJCMkIyQzJDMkQyRDJFMkUyRjJGRDQKLToxMDBGNjUwMDMwMzAzMTMxMzIzMjMzMzMzNDM0MzUzNTM2MzYzNzM3NDQKLToxMDBGNzUwMDM4MzgzOTM5M0EzQTNCM0MzRDNFM0Y0MDQxNDI0MzQ0OUIKLToxMDBGODUwMDQ1NDY0NzQ4NDk0OTRBNEI0QjRDNEQ0RTRGNTA1MTUyQTcKLToxMDBGOTUwMDUzNTQ1NTU1NTY1NjU3NTc1ODVBNUI1RDVFNUY2MTYyQjcKLToxMDBGQTUwMDYzNjQ2NTY2Njc2ODY5NkE2QjZDNkQ2RjcxNzI3Mzc0OEIKLToxMDBGQjUwMDc1NzY3Nzc4Nzk3QTdCN0M3RTgwMDEzNzAxMDEzODAwRjgKLToxMDRCMjgwMEU0OTA3MjM2RjBBM0YwOTA3Rjk3RTA1NEZCRjBFNDkwQTUKLToxMDRCMzgwMDcyMzNGMDkwNzIzMkYwOTA3MjAxMDRGMEU0OTA3MjMzQTQKLToxMDRCNDgwMEYwOTA3MjMyRjA5MDcyMDEwNEYwOTA3Rjk3RTA0NDA0ODQKLTowMjRCNTgwMEYwMjI0OQotOjEwMzI2RjAwOTA3NjE4RTBGRjY0MDU3MDQyOTA3NUFCRTBCNDAxMTlEOQotOjEwMzI3RjAwOTA3MjM3NzQwMUYwRTQ5MDgwMjBGMDkwODAzMUYwOTBEQwotOjEwMzI4RjAwODAyOEYwOTA4MDM5RjA4MDIyRTQ5MDcyMzdGMDkwNzVBQQotOjEwMzI5RjAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA3MQotOjEwMzJBRjAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI1MgotOjEwMzJCRjAwODE5OTkwNzIzOTc0MDRGMDkwNzIzOUUwRkYyNEZFOTA3NgotOjEwMzJDRjAwNzIwNEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjVCRgotOjEwMzJERjAwODNFMDY0MDE3MDU0OTA3MjM2MDRGMDkwNzIwNEUwRkY0MgotOjEwMzJFRjAwMjRGRDYwMjgyNEZFNjAyNDI0MDMyNEZCNTAwNDYwMUM2QQotOjEwMzJGRjAwODE4Qzc0MjAyRkY1ODJFNDM0ODBGNTgzRTRGMDc0MjhGOAotOjEwMzMwRjAwMkZGNTgyRTQzNDgwRjU4M0U0RjA4MThDOTA3MjA0RTAzMQotOjEwMzMxRjAwRkYyNDMwRjU4MkU0MzQ4MEY1ODNFNEYwNzQzODJGRjUyMAotOjEwMzMyRjAwODJFNDM0ODBGNTgzRTRGMDgxOENFNDkwNzIzNkYwOTA3RgotOjEwMzMzRjAwNzIzOUUwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODM5MwotOjEwMzM0RjAwRTBGRjdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIyOAotOjEwMzM1RjAwMDI3NDNCRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzBBQQotOjEwMzM2RjAwMDQ5MDcyMDJGMEVGNEU3MDAyODEzNUVGNjQ4MDRFNzA2MAotOjEwMzM3RjAwMDI4MTM1RUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwOTA0MAotOjEwMzM4RjAwNzIzNEUwNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM0OQotOjEwMzM5RjAwRTBGRjkwNzIwMkYwOTA3NTBERTAyRkYwOTA3NTBDRTA0OQotOjEwMzNBRjAwMzQwMEYwRTBGRUEzRTBGRkU0RkNGRDdCRDY3QUE1Rjk0NAotOjEwMzNCRjAwRjhEMzEyMzc5NTQwMEE5MDc1MEM3NEE1RjBBMzc0RDYwNAotOjEwMzNDRjAwRjA5MDc1MERFMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTA3RgotOjEwMzNERjAwRkVBM0UwNzgwNUNFQTJFNzEzQ0UxM0Q4RjhGRjkwNzVDMQotOjEwMzNFRjAwMENFRUYwQTNFRkYwOTA3MjJDRUVGMEEzRUZGMEQzOTQ2RAotOjEwMzNGRjAwRDJFRTY0ODA5NDgyNDAwQTkwNzIyQzc0MDJGMEEzNzQwRgotOjEwMzQwRjAwRDJGMEMzOTA3MjJDRTA2NDgwOTQ4MDUwMDRFNEYwQTM1NwotOjEwMzQxRjAwRjA5MDcyMkNFMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjVDMAotOjEwMzQyRjAwODNFMDkwNzIwMkYwOTA3MjA0RTBGRjI0RkQ2MDJEMjQ3RgotOjEwMzQzRjAwRkU2MDI5MjQwMzI0RkI1MDA0NjAyMTgwNDA5MDcyMDIxNwotOjEwMzQ0RjAwRTBGRTc0MjAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0MjhDQgotOjEwMzQ1RjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA4MDIxOTA3MjAyRTA0NAotOjEwMzQ2RjAwRkY5MDcyMDRFMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZBMAotOjEwMzQ3RjAwRjA3NDM4MkVGNTgyRTQzNDgwRjU4M0VGRjA5MDcyMzlEMgotOjBCMzQ4RjAwRTAwNEYwRTA2NDBBNjAwMjQxQzcyMjg0Ci06MTAzNDlBMDA5MDc2MThFMEZGQjQwNTIzOTA3MjM3RTA3MDFEOTA3NTlFCi06MTAzNEFBMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDY0Ci06MTAzNEJBMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjQ1Ci06MTAzNENBMDBDMTkxOTA3MjM2RTA2MDAyQzE5MTkwNzY0MEUwNzAzMTBECi06MTAzNERBMDA5MDcyMDM3NDAzRjA5MDcyMDNFMEZGNzVGMDBBQTQyNDVCCi06MTAzNEVBMDBBQUY1ODJFNDM0NzVGNTgzRTBGRTkwNzIyOUUwRkRFRUQ4Ci06MTAzNEZBMDA2RDYwMEVFRkMzOTQwQTUwMDg5MDcyMDNFMDA0RjA4MEU2Ci06MTAzNTBBMDBENTkwNzIzOTc0MDRGMDkwNzY0MEUwNzAwODkwNzIwMzk2Ci06MTAzNTFBMDBFMDkwNzIzOUYwOTA3MjM5RTBGRDI0RkU5MDcyMkFGMDQwCi06MTAzNTJBMDBFRDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRTBGRjY1Ci06MTAzNTNBMDA3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMDI3NEE0Ci06MTAzNTRBMDA4MEYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwMDQ5MDVBCi06MTAzNTVBMDA3MjAyRjBFRjRFNzAwMkMxMUJFRjY0ODA0RTcwMDJDMTFFCi06MTAzNTZBMDAxQkVGRjhFNDkwNzUwREYwRTg5MDc1MENGMEVENzVGMDJFCi06MTAzNTdBMDAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTBGRjkwNzIwMjY0Ci06MTAzNThBMDBGMDkwNzUwREUwMkZGMDkwNzUwQ0UwMzQwMEYwRTBGRTNECi06MTAzNTlBMDBBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5RjhEMzEyMzc5NUIwCi06MTAzNUFBMDA0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2RjA5MDc1MERFMERFCi06MTAzNUJBMDAyNDJBRjA5MDc1MENFMDM0NUFGMEUwRkVBM0UwNzgwNTc2Ci06MTAzNUNBMDBDRUEyRTcxM0NFMTNEOEY4RkY5MDc1MENFRUYwQTNFRjU2Ci06MTAzNURBMDBGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0RDJFRTY0ODA5NEM0Ci06MTAzNUVBMDA4MjQwMEE5MDcyMkM3NDAyRjBBMzc0RDJGMEMzOTA3MkQzCi06MTAzNUZBMDAyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzRjA5MDcyMkNFMEY0Ci06MTAzNjBBMDBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1ODNFMDkwNzIwMjZBCi06MTAzNjFBMDBGMDkwNzIyQUUwRkYyNEZENjAyRDI0RkU2MDI5MjQwMzI1Ci06MTAzNjJBMDAyNEZCNTAwNDYwMjE4MDQwOTA3MjAyRTBGRTc0MjAyRjM3Ci06MTAzNjNBMDBGNTgyRTQzNDgwRjU4M0VFRjA3NDI4MkZGNTgyRTQzNEMxCi06MTAzNjRBMDA4MEY1ODNFRUYwODAyMTkwNzIwMkUwRkY5MDcyMkFFMDBBCi06MTAzNjVBMDBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGRjA3NDM4MkVGNUQ5Ci06MTAzNjZBMDA4MkU0MzQ4MEY1ODNFRkYwOTA3NjQwRTA3MDA2OTA3MjQxCi06MTAzNjdBMDAzOTc0MEFGMDkwNzIzOUUwMDRGMEUwQzM5NDBBNTAwMkY3Ci06MDgzNjhBMDBBMTExRTQ5MDc2NDBGMDIyNEEKLTowNDRFMEIwMDEyMTczMDIyMjgKLToxMDQ5QUUwMDkwNzY0Njc0ODBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjYKLToxMDQ5QkUwMEYwQTNGMEEzRjBBM0YwQTM3NDgwRjBFNEEzRjBBM0YwQUYKLToxMDQ5Q0UwMEEzRjBBM0YwQTNGMEEzRjBBMzc0NDBGMEU0QTNGMEEzMkMKLToxMDQ5REUwMDc0NDBGMEU0QTNGMEEzRjBBM0YwQTNGMEEzRjBBM0YwQ0YKLToxMDQ5RUUwMEEzNzQ0MEYwRTRBM0YwQTM3NDQwRjBFNEEzRjBBM0YwQUEKLTowNTQ5RkUwMEEzRjBBM0YwMjI2QwotOjEwMEZDNjAwRTRGRjc0NDYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0MjA2MAotOjEwMEZENjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDRFMkZGNTgyRTQyQgotOjEwMEZFNjAwMzQ3NkY1ODNFMEZFNzQzMDJGRjU4MkU0MzQ4MEY1ODNBMQotOjA2MEZGNjAwRUVGMDBGQkYwOENDNzUKLTowMTBGRkMwMDIyRDIKLToxMDRBRjEwMEU0RkY3NDU2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDI4RTIKLToxMDRCMDEwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ1RTJGRjU4MkU0QjQKLToxMDRCMTEwMDM0NzZGNTgzRTBGRTc0MzgyRkY1ODJFNDM0ODBGNTgzMzIKLTowNjRCMjEwMEVFRjAwRkJGMDhDQzBFCi06MDE0QjI3MDAyMjZCCi06MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECi06MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCi06MDMwMDQzMDAwMjQ5MDA2RgotOjEwNDkwMDAwMDIyRkU3MDAwMjNENDcwMDAyNERCNDAwMDI0QzQzMDA3NQotOjEwNDkxMDAwMDI0QkU5MDAwMjJGRkYwMDAyNEM1QjAwMDI0QzBBMDAzMAotOjEwNDkyMDAwMDI0QzcyMDAwMjRCNUEwMDAyNEM4OTAwMDI0Q0EwMDA1QgotOjEwNDkzMDAwMDI0Q0I3MDAwMjRDQ0UwMDAyNENFNTAwMDI0Q0ZDMDBEOQotOjEwNDk0MDAwMDI0RDEzMDAwMjREMkEwMDAyNEQ0MTAwMDI0RDU4MDA1NQotOjA4NDk1MDAwMDI0RDZGMDAwMjREODYwMENDCi06MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Ci06MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Ci06MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Ci06MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Ci06MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Ci06MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Ci06MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Ci06MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Ci06MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Ci06MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Ci06MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Ci06MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Ci06MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Ci06MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Ci06MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Ci06MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Ci06MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Ci06MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Ci06MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Ci06MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Ci06MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Ci06MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Ci06MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Ci06MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Ci06MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Ci06MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Ci06MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Ci06MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Ci06MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCi06MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCi06MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCi06MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCi06MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCi06MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCi06MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCi06MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCi06MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCi06MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCi06MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCi06MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCi06MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCi06MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCi06MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCi06MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCi06MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCi06MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCi06MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCi06MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCi06MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCi06MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCi06MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCi06MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCi06MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCi06MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCi06MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCi06MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKLToxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKLToxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKLToxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKLToxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKLToxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKLToxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKLToxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKLToxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKLTowMjFGM0UwMDAwMDBBMQotOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQotOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQotOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQotOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQotOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQotOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQotOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQotOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQotOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQotOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQotOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQotOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQotOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAotOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAotOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAotOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAotOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAotOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAotOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAotOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAotOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAotOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAotOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAotOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAotOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAotOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAotOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAotOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgotOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgotOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgotOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgotOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgotOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgotOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgotOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgotOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgotOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgotOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgotOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgotOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgotOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgotOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgotOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQotOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQotOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQotOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQotOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQotOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQotOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQotOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQotOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQotOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAotOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCi06MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCi06MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCi06MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCi06MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCi06MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCi06MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCi06MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCi06MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCi06MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCi06MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCi06MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCi06MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCi06MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCi06MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCi06MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCi06MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCi06MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCi06MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECi06MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECi06MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECi06MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECi06MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECi06MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECi06MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECi06MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECi06MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECi06MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECi06MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCi06MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCi06MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCi06MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCi06MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCi06MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCi06MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCi06MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCi06MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCi06MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCi06MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCi06MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCi06MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCi06MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCi06MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLToxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKLToxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKLToxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKLToxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKLToxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKLToxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKLToxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKLToxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKLToxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKLTowNTI3RkMwMDAwMDAwMDAwMjJCNgotOjA3MTc0QTAwOTA3RkM1NzQwMkYwMjIzQwotOjEwMTc1MTAwOTA3RUMwRTA5MDc2NDVGMDkwN0VDMUUwOTA3NjQ0RjBCNgotOjEwMTc2MTAwOTA3RUMyRTA5MDc2NDNGMEI0MDAwMzAyMTc3ODkwNzY0MQotOjEwMTc3MTAwMTk3NDAzRjAwMjE3OEU5MDc2NDRFMEI0QkIwOTkwNzY5OQotOjEwMTc4MTAwMTk3NDAyRjAwMjE3OEU5MDc2MTk3NDAxRjA5MDc2NDI2NgotOjAzMTc5MTAwRTRGMDIyNUYKLTowMzAwMDAwMDAyNDZCOUZDCi06MEM0NkI5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ3MDBEOAotOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgotOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKLToxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKLToxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKLTowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKLToxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKLToxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKLToxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKLTowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCi06MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Ci06MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Ci06MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCi06MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKLToxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKLToxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKLToxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKLToxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKLTowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCi06MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCi06MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgotOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAotOjAxMzdCQjAwMjJFQgotOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKLToxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKLToxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKLToxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKLTowMTM3RjgwMDIyQUUKLToxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKLToxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKLTowNjM4MTkwMEVGQTNBM0EzODBERjcyCi06MTA0NkM1MDAwMjA3QTZFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjVFCi06MTA0NkQ1MDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0Y2Ci06MTA0NkU1MDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkM1Ci06MTA0NkY1MDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQzhGRTQ3RUJBCi06MTA0NzA1MDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0I5Ci06MTA0NzE1MDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzgwCi06MTA0NzI1MDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUFCCi06MTA0NzM1MDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTYzCi06MDEwRkM1MDAwMDJCCi06MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECi06MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Ci06MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCi06MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Ci06MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Ci06MDUzODZGMDAwRkQ1RjBFQTIyNzQKLTowMDAwMDAwMUZGCi0vKgotVkVSU0lPTj0xLjA0LjA2MgotREFURT0xNi4xMC4yMDAyICAKLSovCi1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX2VtaTYyX2xvYWRlcltdID0gewotICAgMywweDAwMDAsMCx7MHgwMiwweDAyLDB4ODd9LAotICAgMywweDAwNDMsMCx7MHgwMiwweDA0LDB4MDB9LAotICAxNiwweDAxMDAsMCx7MHhlNCwweGZmLDB4ZmUsMHhjMiwweDIwLDB4ZDIsMHhlOCwweDQzLDB4ZDgsMHgyMCwweDkwLDB4N2YsMHhhYiwweDc0LDB4ZmYsMHhmMH0sCi0gIDE2LDB4MDExMCwwLHsweDkwLDB4N2YsMHhhOSwweGYwLDB4OTAsMHg3ZiwweGFhLDB4ZjAsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4OTUsMHg3NCwweGMwfSwKLSAgMTYsMHgwMTIwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWUsMHhmMCwweDkwLDB4N2YsMHg5OCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTQsMHhmMCwweDkwLDB4N2Z9LAotICAxNiwweDAxMzAsMCx7MHg5ZCwweDc0LDB4ZmYsMHhmMCwweDkwLDB4N2YsMHg5NywweDc0LDB4YTAsMHhmMCwweDkwLDB4N2YsMHg5MywweGUwLDB4NTQsMHhmY30sCi0gIDE2LDB4MDE0MCwwLHsweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHgwMywweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTYsMHhmMCwweDkwLDB4N2YsMHhhZiwweGUwfSwKLSAgMTYsMHgwMTUwLDAsezB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDBkLDB4ZjAsMHhkMiwweGFmLDB4MGYsMHhiZiwweDAwLDB4MDF9LAotICAxNiwweDAxNjAsMCx7MHgwZSwweGJlLDB4MDcsMHhmOCwweGJmLDB4MDgsMHhmNSwweDIwLDB4MjAsMHg0MiwweDc1LDB4MTQsMHgwMCwweDc1LDB4MTMsMHgwMH0sCi0gIDE2LDB4MDE3MCwwLHsweDc1LDB4MTIsMHgwMCwweDc1LDB4MTEsMHgwMCwweDdmLDB4NDgsMHg3ZSwweDkyLDB4N2QsMHgwMCwweDdjLDB4MDAsMHhhYiwweDE0fSwKLSAgMTYsMHgwMTgwLDAsezB4YWEsMHgxMywweGE5LDB4MTIsMHhhOCwweDExLDB4YzMsMHgxMiwweDAzLDB4ZWQsMHg1MCwweGRiLDB4MjAsMHgyMCwweGQ4LDB4N2F9LAotICAxNiwweDAxOTAsMCx7MHgwMCwweDc5LDB4MDAsMHg3OCwweDAwLDB4ZTUsMHgxNCwweDI0LDB4MDEsMHhmNSwweDE0LDB4ZWEsMHgzNSwweDEzLDB4ZjUsMHgxM30sCi0gIDE2LDB4MDFhMCwwLHsweGU5LDB4MzUsMHgxMiwweGY1LDB4MTIsMHhlOCwweDM1LDB4MTEsMHhmNSwweDExLDB4ODAsMHhjYSwweDMwLDB4MjAsMHhmZCwweDEyfSwKLSAgMTYsMHgwMWIwLDAsezB4MDEsMHhjNywweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9LAotICAgNiwweDAxYzAsMCx7MHgwMiwweGYwLDB4YzIsMHgyMCwweDgwLDB4ZTZ9LAotICAgMSwweDAxYzYsMCx7MHgyMn0sCi0gIDE2LDB4MDFjNywwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg1YiwweDYwLDB4NjAsMHgyNCwweDAyLDB4NjAsMHgwMywweDAyLDB4MDIsMHg4NSwweDkwfSwKLSAgMTYsMHgwMWQ3LDAsezB4N2YsMHhlYSwweGUwLDB4NzUsMHgwYSwweDAwLDB4ZjUsMHgwYiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDBhLDB4OTB9LAotICAxNiwweDAxZTcsMCx7MHg3ZiwweGVlLDB4ZTAsMHg3NSwweDE1LDB4MDAsMHhmNSwweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNX0sCi0gIDE2LDB4MDFmNywwLHsweDE2LDB4NDUsMHgxNSwweDcwLDB4MDMsMHgwMiwweDAyLDB4ODUsMHhlNCwweDkwLDB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0fSwKLSAgMTYsMHgwMjA3LDAsezB4ZTAsMHgyMCwweGUzLDB4ZjksMHg5MCwweDdmLDB4YzUsMHhlMCwweGY1LDB4MGMsMHgxMiwweDAzLDB4MTMsMHhhZiwweDBjLDB4N2V9LAotICAxNiwweDAyMTcsMCx7MHgwMCwweGVmLDB4MjUsMHgwYiwweGY1LDB4MGIsMHhlZSwweDM1LDB4MGEsMHhmNSwweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNX0sCi0gIDE2LDB4MDIyNywwLHsweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4YzcsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1fSwKLSAgMTYsMHgwMjM3LDAsezB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwLDB4N2YsMHhlZSwweGUwLDB4NzUsMHgxNSwweDAwLDB4ZjV9LAotICAxNiwweDAyNDcsMCx7MHgxNiwweGEzLDB4ZTAsMHhmZSwweGU0LDB4ZWUsMHg0MiwweDE1LDB4ZTUsMHgxNiwweDQ1LDB4MTUsMHg2MCwweDMwLDB4ZTQsMHg5MH0sCi0gIDE2LDB4MDI1NywwLHsweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjfSwKLSAgMTYsMHgwMjY3LDAsezB4MTIsMHgwMywweDJiLDB4YWYsMHgwYywweDdlLDB4MDAsMHhlZiwweDI1LDB4MGIsMHhmNSwweDBiLDB4ZWUsMHgzNSwweDBhLDB4ZjV9LAotICAxNSwweDAyNzcsMCx7MHgwYSwweGMzLDB4ZTUsMHgxNiwweDlmLDB4ZjUsMHgxNiwweGU1LDB4MTUsMHg5ZSwweGY1LDB4MTUsMHg4MCwweGNhLDB4YzN9LAotICAgMSwweDAyODYsMCx7MHgyMn0sCi0gIDEyLDB4MDI4NywwLHsweDc4LDB4N2YsMHhlNCwweGY2LDB4ZDgsMHhmZCwweDc1LDB4ODEsMHgyOSwweDAyLDB4MDIsMHhjZX0sCi0gIDE2LDB4MDI5MywwLHsweDAyLDB4MDEsMHgwMCwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfSwKLSAgMTYsMHgwMmEzLDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9LAotICAxNiwweDAyYjMsMCx7MHhjNCwweDU0LDB4MGYsMHg0NCwweDIwLDB4YzgsMHg4MywweDQwLDB4MDQsMHhmNCwweDU2LDB4ODAsMHgwMSwweDQ2LDB4ZjYsMHhkZn0sCi0gIDE2LDB4MDJjMywwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDA0LDB4NmUsMHhlNCwweDdlfSwKLSAgMTYsMHgwMmQzLDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9LAotICAxNiwweDAyZTMsMCx7MHhhMywweDYwLDB4MDEsMHgwZSwweGNmLDB4NTQsMHhjMCwweDI1LDB4ZTAsMHg2MCwweGE4LDB4NDAsMHhiOCwweGU0LDB4OTMsMHhhM30sCi0gIDE2LDB4MDJmMywwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfSwKLSAgMTYsMHgwMzAzLDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9LAotICAxNiwweDAzMTMsMCx7MHhlNSwweDBjLDB4ZmYsMHhlNSwweDBiLDB4ZjUsMHg4MiwweGU1LDB4MGEsMHhmNSwweDgzLDB4NzUsMHg5MiwweDdlLDB4NzQsMHhjMH0sCi0gICA4LDB4MDMyMywwLHsweGY4LDB4ZTIsMHgwOCwweGYwLDB4YTMsMHhkZiwweGZhLDB4MjJ9LAotICAxNiwweDAzMmIsMCx7MHg5MCwweDdmLDB4OTYsMHg4NSwweDgzLDB4OTIsMHhhOCwweDgyLDB4NzksMHgwMiwweDkwLDB4MDAsMHgwMCwweGUwLDB4YjQsMHgwMH0sCi0gIDE2LDB4MDMzYiwwLHsweDBkLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweDk3LDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHg0NCwweDgwLDB4ZjAsMHhlNSwweDBjfSwKLSAgMTYsMHgwMzRiLDAsezB4ZmYsMHg5MCwweDdlLDB4YzAsMHhlMCwweGY1LDB4MjgsMHhlNCwweGEyLDB4NDcsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTJ9LAotICAxNiwweDAzNWIsMCx7MHg0NiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ1LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDQsMHgzM30sCi0gIDE2LDB4MDM2YiwwLHsweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQyLDB4MzMsMHhmMiwweDY5fSwKLSAgMTYsMHgwMzdiLDAsezB4ZjIsMHhlNCwweGEyLDB4NDEsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MCwweDMzLDB4ZjIsMHg2OSwweGYyLDB4YTN9LAotICAgMywweDAzOGIsMCx7MHhkZiwweGMyLDB4MjJ9LAotICAxNiwweDAzOGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg5MCwweDdmLDB4YzQsMHhlNCwweGYwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3Zn0sCi0gIDExLDB4MDM5ZSwwLHsweGFiLDB4NzQsMHgwNCwweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDAzYTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDIwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX0sCi0gICA4LDB4MDNiOSwwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9LAotICAxNiwweDAzYzEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAyLDB4ZjAsMHhkMH0sCi0gICA2LDB4MDNkMSwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn0sCi0gIDE2LDB4MDNkNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MTAsMHhmMCwweGQwfSwKLSAgIDYsMHgwM2U3LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHgwM2VkLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9LAotICAgMSwweDAzZmQsMCx7MHgyMn0sCi0gICAxLDB4MDNmZSwwLHsweDMyfSwKLSAgIDEsMHgwM2ZmLDAsezB4MzJ9LAotICAxNiwweDA0MDAsMCx7MHgwMiwweDAzLDB4YTksMHgwMCwweDAyLDB4MDMsMHhjMSwweDAwLDB4MDIsMHgwMywweDhlLDB4MDAsMHgwMiwweDA0LDB4NTgsMHgwMH0sCi0gIDE2LDB4MDQxMCwwLHsweDAyLDB4MDMsMHhkNywweDAwLDB4MDIsMHgwMywweGZlLDB4MDAsMHgwMiwweDAzLDB4ZmYsMHgwMCwweDAyLDB4MDQsMHg4NCwweDAwfSwKLSAgMTYsMHgwNDIwLDAsezB4MDIsMHgwNCwweDg1LDB4MDAsMHgwMiwweDA0LDB4ODYsMHgwMCwweDAyLDB4MDQsMHg4NywweDAwLDB4MDIsMHgwNCwweDg4LDB4MDB9LAotICAxNiwweDA0MzAsMCx7MHgwMiwweDA0LDB4ODksMHgwMCwweDAyLDB4MDQsMHg4YSwweDAwLDB4MDIsMHgwNCwweDhiLDB4MDAsMHgwMiwweDA0LDB4OGMsMHgwMH0sCi0gIDE2LDB4MDQ0MCwwLHsweDAyLDB4MDQsMHg4ZCwweDAwLDB4MDIsMHgwNCwweDhlLDB4MDAsMHgwMiwweDA0LDB4OGYsMHgwMCwweDAyLDB4MDQsMHg5MCwweDAwfSwKLSAgIDgsMHgwNDUwLDAsezB4MDIsMHgwNCwweDkxLDB4MDAsMHgwMiwweDA0LDB4OTIsMHgwMH0sCi0gIDE2LDB4MDQ1OCwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDgsMHhmMCwweGQwfSwKLSAgIDYsMHgwNDY4LDAsezB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfSwKLSAgMTYsMHgwNDZlLDAsezB4MDIsMHgwYSwweDAwLDB4MGYsMHgwMSwweDBjLDB4MTEsMHgwNCwweDBkLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDAwLDB4MDB9LAotICAgMSwweDA0N2UsMCx7MHgwMH0sCi0gICA0LDB4MDQ3ZiwwLHsweDAyLDB4MTcsMHgwMCwweDAwfSwKLSAgIDEsMHgwNDgzLDAsezB4MDB9LAotICAgMSwweDA0ODQsMCx7MHgzMn0sCi0gICAxLDB4MDQ4NSwwLHsweDMyfSwKLSAgIDEsMHgwNDg2LDAsezB4MzJ9LAotICAgMSwweDA0ODcsMCx7MHgzMn0sCi0gICAxLDB4MDQ4OCwwLHsweDMyfSwKLSAgIDEsMHgwNDg5LDAsezB4MzJ9LAotICAgMSwweDA0OGEsMCx7MHgzMn0sCi0gICAxLDB4MDQ4YiwwLHsweDMyfSwKLSAgIDEsMHgwNDhjLDAsezB4MzJ9LAotICAgMSwweDA0OGQsMCx7MHgzMn0sCi0gICAxLDB4MDQ4ZSwwLHsweDMyfSwKLSAgIDEsMHgwNDhmLDAsezB4MzJ9LAotICAgMSwweDA0OTAsMCx7MHgzMn0sCi0gICAxLDB4MDQ5MSwwLHsweDMyfSwKLSAgIDEsMHgwNDkyLDAsezB4MzJ9LAotICAxNiwweDExMDAsMCx7MHgxMiwweDAxLDB4MTAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDQwLDB4NmEsMHgwOCwweDAxLDB4MDEsMHgwMCwweDAxLDB4MDEsMHgwMn0sCi0gIDE2LDB4MTExMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4MjAsMHgwMCwweDAxLDB4MDEsMHgwMywweGEwLDB4MDAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAyfSwKLSAgMTYsMHgxMTIwLDAsezB4ZmYsMHgwMCwweDAwLDB4MDQsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDB9LAotICAxNiwweDExMzAsMCx7MHgwMCwweDAwLDB4MDQsMHgwMywweDA5LDB4MDQsMHgyNiwweDAzLDB4NDEsMHgwMCwweDZlLDB4MDAsMHg2MywweDAwLDB4NjgsMHgwMH0sCi0gIDE2LDB4MTE0MCwwLHsweDZmLDB4MDAsMHg3MiwweDAwLDB4MjAsMHgwMCwweDQzLDB4MDAsMHg2OCwweDAwLDB4NjksMHgwMCwweDcwLDB4MDAsMHg3MywweDAwfSwKLSAgMTYsMHgxMTUwLDAsezB4MmMsMHgwMCwweDIwLDB4MDAsMHg0OSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHgyZSwweDAwLDB4MjgsMHgwMywweDQ2LDB4MDB9LAotICAxNiwweDExNjAsMCx7MHg2OSwweDAwLDB4NzIsMHgwMCwweDZkLDB4MDAsMHg3NywweDAwLDB4NjEsMHgwMCwweDcyLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMH0sCi0gIDE2LDB4MTE3MCwwLHsweDQ2LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDZkLDB4MDAsMHg2NSwweDAwLDB4NTcsMHgwMCwweDZmLDB4MDAsMHg3MiwweDAwfSwKLSAgMTYsMHgxMTgwLDAsezB4NmIsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDB9LAotICAxNiwweDExOTAsMCx7MHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NzQsMHgwMCwweDY5LDB4MDAsMHg2ZiwweDAwLDB4NmUsMHgwMH0sCi0gIDE2LDB4MTFhMCwwLHsweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgyMiwweDAzfSwKLSAgMTYsMHgxMWIwLDAsezB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDB9LAotICAxNiwweDExYzAsMCx7MHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMH0sCi0gICAyLDB4MTFkMCwwLHsweDAwLDB4MDB9LAotICAgMCwweDAwMDAsMSx7MH0KLX07Ci0vKiBTb3VyY2U6IEVNSUxPQUQuSEVYIAotOjEwMDQ2RTAwMDIwQTAwMEYwMTBDMTEwNDBEMDAwMDAwMDA0MTAwMDBGMwotOjAxMDQ3RTAwMDA3RAotOjEwMDFDNzAwOTA3RkU5RTAyNDVCNjA2MDI0MDI2MDAzMDIwMjg1OTA2RgotOjEwMDFENzAwN0ZFQUUwNzUwQTAwRjUwQkEzRTBGRUU0RUU0MjBBOTAyMQotOjEwMDFFNzAwN0ZFRUUwNzUxNTAwRjUxNkEzRTBGRUU0RUU0MjE1RTU5NwotOjEwMDFGNzAwMTY0NTE1NzAwMzAyMDI4NUU0OTA3RkM1RjA5MDdGQjQyMQotOjEwMDIwNzAwRTAyMEUzRjk5MDdGQzVFMEY1MEMxMjAzMTNBRjBDN0VGNQotOjEwMDIxNzAwMDBFRjI1MEJGNTBCRUUzNTBBRjUwQUMzRTUxNjlGRjUzQQotOjEwMDIyNzAwMTZFNTE1OUVGNTE1ODBDNzkwN0ZFQUUwNzUwQTAwRjU3QgotOjEwMDIzNzAwMEJBM0UwRkVFNEVFNDIwQTkwN0ZFRUUwNzUxNTAwRjVCMQotOjEwMDI0NzAwMTZBM0UwRkVFNEVFNDIxNUU1MTY0NTE1NjAzMEU0OTA4RQotOjEwMDI1NzAwN0ZDNUYwOTA3RkI0RTAyMEUzRjk5MDdGQzVFMEY1MEMwRgotOjEwMDI2NzAwMTIwMzJCQUYwQzdFMDBFRjI1MEJGNTBCRUUzNTBBRjVDRAotOjBGMDI3NzAwMEFDM0U1MTY5RkY1MTZFNTE1OUVGNTE1ODBDQUMzNTcKLTowMTAyODYwMDIyNTUKLToxMDAzQTkwMEMwRTBDMDgzQzA4MkQyMjA1MzkxRUY5MDdGQUI3NDAxMkIKLTowODAzQjkwMEYwRDA4MkQwODNEMEUwMzJDNQotOjEwMDM4RTAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0ZCMQotOjBCMDM5RTAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkJBCi06MTAwM0MxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDAyRjBEMDQ0Ci06MDYwM0QxMDA4MkQwODNEMEUwMzI2RgotOjEwMDNENzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwRDAyMAotOjA2MDNFNzAwODJEMDgzRDBFMDMyNTkKLTowMTAzRkUwMDMyQ0MKLToxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDhGMEQwQTYKLTowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Ci06MDEwM0ZGMDAzMkNCCi06MDEwNDg0MDAzMjQ1Ci06MDEwNDg1MDAzMjQ0Ci06MDEwNDg2MDAzMjQzCi06MDEwNDg3MDAzMjQyCi06MDEwNDg4MDAzMjQxCi06MDEwNDg5MDAzMjQwCi06MDEwNDhBMDAzMjNGCi06MDEwNDhCMDAzMjNFCi06MDEwNDhDMDAzMjNECi06MDEwNDhEMDAzMjNDCi06MDEwNDhFMDAzMjNCCi06MDEwNDhGMDAzMjNBCi06MDEwNDkwMDAzMjM5Ci06MDEwNDkxMDAzMjM4Ci06MDEwNDkyMDAzMjM3Ci06MDQwNDdGMDAwMjE3MDAwMDYwCi06MTAwMTAwMDBFNEZGRkVDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDFBCi06MTAwMTEwMDA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1NzRDMEUzCi06MTAwMTIwMDBGMDkwN0Y5RUYwOTA3Rjk4RjBFNDkwN0Y5NEYwOTA3RjI1Ci06MTAwMTMwMDA5RDc0RkZGMDkwN0Y5Nzc0QTBGMDkwN0Y5M0UwNTRGQzQzCi06MTAwMTQwMDBGMDkwN0Y5Qzc0MDNGMEU0OTA3Rjk2RjA5MDdGQUZFMDk2Ci06MTAwMTUwMDA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUYwRkJGMDAwMTNDCi06MTAwMTYwMDAwRUJFMDdGOEJGMDhGNTIwMjA0Mjc1MTQwMDc1MTMwMDc1Ci06MTAwMTcwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNEUzCi06MTAwMTgwMDBBQTEzQTkxMkE4MTFDMzEyMDNFRDUwREIyMDIwRDg3QUJDCi06MTAwMTkwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzBECi06MTAwMUEwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjNCCi06MTAwMUIwMDAwMUM3NTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDYxCi06MDYwMUMwMDAwMkYwQzIyMDgwRTZGRgotOjAxMDFDNjAwMjIxNgotOjEwMTEwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwMwotOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgotOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QwotOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAotOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNwotOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQotOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAotOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QwotOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQotOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgotOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MwotOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMwotOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMwotOjAyMTFEMDAwMDAwMDFECi06MTAwMzEzMDBFNTBDRkZFNTBCRjU4MkU1MEFGNTgzNzU5MjdFNzRDMDYzCi06MDgwMzIzMDBGOEUyMDhGMEEzREZGQTIyNjIKLToxMDAzMkIwMDkwN0Y5Njg1ODM5MkE4ODI3OTAyOTAwMDAwRTBCNDAwQkEKLToxMDAzM0IwMDBENzQwMUYwOTA3Rjk3RTA1NDdGRjA0NDgwRjBFNTBDNTIKLToxMDAzNEIwMEZGOTA3RUMwRTBGNTI4RTRBMjQ3MzNGMjY5RjJFNEEyMDUKLToxMDAzNUIwMDQ2MzNGMjY5RjJFNEEyNDUzM0YyNjlGMkU0QTI0NDMzODQKLToxMDAzNkIwMEYyNjlGMkU0QTI0MzMzRjI2OUYyRTRBMjQyMzNGMjY5OTYKLToxMDAzN0IwMEYyRTRBMjQxMzNGMjY5RjJFNEEyNDAzM0YyNjlGMkEzNTAKLTowMzAzOEIwMERGQzIyMkFDCi06MDMwMDQzMDAwMjA0MDBCNAotOjEwMDQwMDAwMDIwM0E5MDAwMjAzQzEwMDAyMDM4RTAwMDIwNDU4MDA4NwotOjEwMDQxMDAwMDIwM0Q3MDAwMjAzRkUwMDAyMDNGRjAwMDIwNDg0MDA2RgotOjEwMDQyMDAwMDIwNDg1MDAwMjA0ODYwMDAyMDQ4NzAwMDIwNDg4MDA5QQotOjEwMDQzMDAwMDIwNDg5MDAwMjA0OEEwMDAyMDQ4QjAwMDIwNDhDMDA3QQotOjEwMDQ0MDAwMDIwNDhEMDAwMjA0OEUwMDAyMDQ4RjAwMDIwNDkwMDA1QQotOjA4MDQ1MDAwMDIwNDkxMDAwMjA0OTIwMDc1Ci06MDMwMDAwMDAwMjAyODc3MgotOjBDMDI4NzAwNzg3RkU0RjZEOEZENzU4MTI5MDIwMkNFRDQKLToxMDAzRUQwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNjYKLTowMTAzRkQwMDIyREQKLToxMDAyOTMwMDAyMDEwMEU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyODAKLToxMDAyQTMwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzNkMKLToxMDAyQjMwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGM0IKLToxMDAyQzMwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDA0NkVFNDdFNTkKLToxMDAyRDMwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzMzAKLToxMDAyRTMwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRjcKLToxMDAyRjMwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBMjIKLToxMDAzMDMwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFRDkKLTowMTA0ODMwMDAwNzgKLTowMDAwMDAwMUZGCi0vKgotVkVSU0lPTj0xLjAuMi4wMDIKLURBVEU9MTAuMDEuMjAwMgotRU1JMjZfNjIKLSovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9taXNjL2VtaTYyX2Z3X3MuaCBiL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWYwNWU4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL21pc2MvZW1pNjJfZndfcy5oCisrKyAvZGV2L251bGwKQEAgLTEsODgzNyArMCwwIEBACi0vKgotICogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHRocmVlIGRpZmZlcmVudCBmaWxlcywgcHJvdmlkZWQgYnkgRW1hZ2ljLgotICovCi0vKiBnZW5lcmF0ZWQgVHVlIEFwciAxNSAyMTo1OTo0MiBFRVNUIDIwMDMgKi8KLQotc3RhdGljIElOVEVMX0hFWF9SRUNPUkQgZ19lbWk2MmJzW109ewotIHsxNiwgMHg4MDEwLCAwLCB7MHhmZiwweGZmLDB4ZmYsMHhmZiwweGFhLDB4OTksMHg1NSwweDY2LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwNyB9fSwKLSB7MTYsIDB4ODAyMCwgMCwgezB4MzAsMHgwMSwweDYwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwZCwweDMwLDB4MDEsMHgyMCwweDAxLDB4MDAsMHg4MCwweDNmLDB4MmQgfX0sCi0gezE2LCAweDgwMzAsIDAsIHsweDMwLDB4MDAsMHhjMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4ODAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDA5IH19LAotIHsxNiwgMHg4MDQwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMSB9fSwKLSB7MTYsIDB4ODA1MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MDAsMHg1MCwweDAwLDB4NTgsMHgxYSwweDgwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHg0MCwweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwOTAsIDAsIHsweDAwLDB4MTIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4NDggfX0sCi0gezE2LCAweDgwYzAsIDAsIHsweDA0LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTAwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTMwLCAwLCB7MHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE3MCwgMCwgezB4ODAsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFhMCwgMCwgezB4MDAsMHg5MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxZTAsIDAsIHsweDdmLDB4MTAsMHgwMCwweDM0LDB4MDAsMHgwZCwweDAwLDB4MDMsMHg0MCwweDAwLDB4ZDAsMHgwMCwweDM0LDB4MDAsMHgwNSwweDAwIH19LAotIHsxNiwgMHg4MWYwLCAwLCB7MHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCwweDFkLDB4MDAsMHgwNywweDQwLDB4MDEsMHhkMCwweDAwLDB4NzQsMHgwMCB9fSwKLSB7MTYsIDB4ODIwMCwgMCwgezB4MWQsMHg4MCwweDA3LDB4ZTAsMHgwMSwweGI4LDB4MDAsMHg2ZSwweDAwLDB4MWIsMHg4MCwweDA2LDB4ZTAsMHgwMSwweDM4LDB4MzcgfX0sCi0gezE2LCAweDgyMTAsIDAsIHsweGM0LDB4OTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg4MCwweGZiLDB4MzAsMHgzNiwweGM4IH19LAotIHsxNiwgMHg4MjIwLCAwLCB7MHg0ZSwweDA5LDB4MDMsMHhmYywweDg0LDB4ZmYsMHgxMCwweDNiLDB4YzAsMHgwZSwweGM4LDB4MDcsMHgyMiwweDgwLDB4ZmYsMHgyMiB9fSwKLSB7MTYsIDB4ODIzMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4YzgsMHgzMywweDZlLDB4MDAsMHhmYiwweDgwLDB4M2YsMHgyMCwweDBkLDB4YzIsMHg1MywweGQ0LDB4ODAgfX0sCi0gezE2LCAweDgyNDAsIDAsIHsweGNjLDB4M2EsMHgzZiwweDAwLDB4MGMsMHhmMSwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MjUwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHg2MCwweGJmLDB4NjAsMHgyMywweGYwLDB4MGQsMHg4MiwweDEyLDB4M2MsMHg2MCwweDhmLDB4NzAsMHgyMyB9fSwKLSB7MTYsIDB4ODI2MCwgMCwgezB4ZjAsMHgwOCwweDg4LDB4MDIsMHhhNSwweDQwLDB4YmYsMHhkMCwweDYzLDB4ZDYsMHgwYiwweDg4LDB4MDIsMHgyZSwweDBjLDB4YmIgfX0sCi0gezE2LCAweDgyNzAsIDAsIHsweDgwLDB4MmUsMHgyMCwweDg4LDB4OGQsMHgwMiwweGU2LDB4NDAsMHg4MCwweDYwLDB4MmUsMHgzMCwweDBhLDB4YjEsMHgxMiwweDIwIH19LAotIHsxNiwgMHg4MjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4ODAsMHhhMywweDQwLDB4MmMsMHhjNCB9fSwKLSB7MTYsIDB4ODI5MCwgMCwgezB4NGEsMHgwMCwweDEyLDB4OGMsMHg4OCwweGEzLDB4MjIsMHgyMCwweGM0LDB4MGEsMHg5MCwweDQyLDB4MDQsMHhhOSwweGEzLDB4MDAgfX0sCi0gezE2LCAweDgyYTAsIDAsIHsweDI0LDB4YzgsMHg4YiwweDgwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMCwweDJlLDB4MDEsMHgwOSwweDA4LDB4MDIsMHg4NCwweDAwIH19LAotIHsxNiwgMHg4MmIwLCAwLCB7MHg4MCwweDIwLDB4MmMsMHgxMCwweDBhLDB4MzIsMHg0MiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDQsMHhiMywweDAwLDB4MmEsMHhjMCwweDA4LDB4MDgsMHhhMiwweDhjLDB4MDAsMHg4YiwweDAwLDB4YTIgfX0sCi0gezE2LCAweDgyZDAsIDAsIHsweGMxLDB4MTAsMHg5OCwweDQyLDB4YTcsMHgwMCwweGJiLDB4MDEsMHg2NiwweGMxLDB4MGIsMHg4MCwweDAyLDB4YWMsMHgwNCwweGJiIH19LAotIHsxNiwgMHg4MmUwLCAwLCB7MHgwMCwweDJlLDB4MDAsMHgwYiwweGI4LDB4MTIsMHhlNCwweDAyLDB4ODksMHgwOCwweDBlLDB4NDAsMHgwYSwweGIwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ODJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHhhYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweDgzMDAsIDAsIHsweDRhLDB4YjgsMHgyMywweGVjLDB4MTgsMHhlYiwweDAwLDB4MzIsMHhjMCwweDBlLDB4MmMsMHgxMiwweDIyLDB4MTAsMHhlYiwweDAwIH19LAotIHsxNiwgMHg4MzEwLCAwLCB7MHgyNiwweGMwLDB4NGYsMHgwMCwweDQzLDB4ZWQsMHgwMCwweGZiLDB4MDAsMHgyZSwweDI0LDB4MGQsMHg4MCwweDEzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ODMyMCwgMCwgezB4YzgsMHhkMCwweDdjLDB4MTIsMHgwZSwweGIwLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzMzAsIDAsIHsweGUxLDB4MDAsMHhiYywweDAwLDB4ZmYsMHgwMCwweDM1LDB4YzAsMHg0ZiwweGUwLDB4MDMsMHg3YywweDA4LDB4ZmYsMHgwMSwweDE3IH19LAotIHsxNiwgMHg4MzQwLCAwLCB7MHhjMiwweDRkLDB4YzAsMHgwMywweGY0LDB4MDgsMHhmNywweDAwLDB4M2IsMHhjMCwweDA3LDB4YzAsMHgwMywweDdjLDB4ODAsMHhmZiB9fSwKLSB7MTYsIDB4ODM1MCwgMCwgezB4MjQsMHgzZiwweDQwLDB4MGMsMHhmMCwweDAxLDB4ZjQsMHgwNCwweGJjLDB4MDgsMHgzZiwweDI4LDB4MGYsMHhmMCwweDAzLDB4NzggfX0sCi0gezE2LCAweDgzNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwOCwweGZiLDB4MDQsMHgzYSwweGM4IH19LAotIHsxNiwgMHg4MzcwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhlYywweDEwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2MSwweDA0LDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ODM4MCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTMsMHgwMywweDJjLDB4ODAsMHhmYiwweDcyLDB4M2UsMHgwMiwweDBmLDB4OGEsMHgwMywweGU0LDB4MDIgfX0sCi0gezE2LCAweDgzOTAsIDAsIHsweGM5LDB4ODAsMHgyYSwweDUwLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4M2EwLCAwLCB7MHhjYSwweDQ0LDB4M2MsMHgwMCwweGJmLDB4MDAsMHgwMywweGMwLDB4MDgsMHg4MCwweDAzLDB4N2MsMHgwMCwweGJmLDB4MDAsMHgzZiB9fSwKLSB7MTYsIDB4ODNiMCwgMCwgezB4ZTIsMHgwOCwweDkwLDB4NDMsMHg2MCwweDAwLDB4YmYsMHgwMCwweDM3LDB4YzAsMHgwOCwweDkwLDB4MDEsMHg2ZCwweDAwLDB4YmIgfX0sCi0gezE2LCAweDgzYzAsIDAsIHsweDQwLDB4MmMsMHgxMCwweDBiLDB4YjAsMHg0MiwweGQ3LDB4YzAsMHg4OSwweDAwLDB4MmEsMHg3YywweDBiLDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHg4M2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTIsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkNSB9fSwKLSB7MTYsIDB4ODNlMCwgMCwgezB4NGEsMHgwMCwweDAwLDB4MGMsMHgwNCwweDkzLDB4MDAsMHgwYywweGYwLDB4MGIsMHgwOSwweDAyLDB4MDgsMHgwMSwweGIzLDB4MjAgfX0sCi0gezE2LCAweDgzZjAsIDAsIHsweDI4LDB4YzAsMHgwYSwweDBjLDB4MGEsMHgwZSwweDAwLDB4YjMsMHgwMCwweDI0LDB4MzAsMHgwOSwweDAwLDB4MDIsMHhjNiwweDEwIH19LAotIHsxNiwgMHg4NDAwLCAwLCB7MHg4MCwweDQyLDB4MjAsMHgwMCwweDhiLDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQxMCwgMCwgezB4MjIsMHgwMSwweDFlLDB4MDAsMHhiNywweDk0LDB4MjEsMHhlNCwweDQ4LDB4ZDksMHgxMiwweDVlLDB4NDAsMHhiNywweDkwLDB4MjkgfX0sCi0gezE2LCAweDg0MjAsIDAsIHsweGUwLDB4OGIsMHg2OSwweDEyLDB4ZDYsMHg4MCwweDM3LDB4ODIsMHgyYywweGU4LDB4MDgsMHg0YSwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4NDMwLCAwLCB7MHhhNCwweDJkLDB4MjAsMHgwYiwweDc5LDB4MDIsMHhkNiwweDA4LDB4ODYsMHg5MCwweDI5LDB4YTAsMHgwYiwweDc5LDB4MDIsMHhkOCB9fSwKLSB7MTYsIDB4ODQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDAwLDB4ZmIsMHhhMCwweDI4LDB4ZTggfX0sCi0gezE2LCAweDg0NTAsIDAsIHsweDBlLDB4MmEsMHgwMiwweDhjLDB4MDAsMHhkMywweDAwLDB4NjQsMHhjMCwweDBmLDB4MDAsMHg0MywweDBlLDB4YzQsMHhmMywweDAwIH19LAotIHsxNiwgMHg4NDYwLCAwLCB7MHg3OCwweGVjLDB4MGUsMHgwYSwweDQzLDB4MGUsMHgyMCwweDczLDB4ZTAsMHgzYywweDAyLDB4NGYsMHgwMCwweDAzLDB4YzQsMHg0MCB9fSwKLSB7MTYsIDB4ODQ3MCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0ODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweGJjLDB4Y2MsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZmIsMHgwMCwweDNjIH19LAotIHsxNiwgMHg4NDkwLCAwLCB7MHhjMiwweDBjLDB4MjAsMHgwMywweDZjLDB4NTAsMHhmMywweDAwLDB4MzYsMHhjNCwweDBmLDB4NDAsMHgwMywweGZjLDB4MDgsMHhmZiB9fSwKLSB7MTYsIDB4ODRhMCwgMCwgezB4MWEsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAxLDB4ZTQsMHgzMCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDYzLDB4ZDAgfX0sCi0gezE2LCAweDg0YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHg0MCwweGZiLDB4MDAsMHhiMiwweGQ4IH19LAotIHsxNiwgMHg4NGMwLCAwLCB7MHgwYywweGIwLDB4MDEsMHgyZCwweDIwLDB4ZGIsMHgwMSwweDNhLDB4YzgsMHg4YywweDM4LDB4MDMsMHhhOCwweDAwLDB4ZmIsMHg0OCB9fSwKLSB7MTYsIDB4ODRkMCwgMCwgezB4M2UsMHhjOSwweDBmLDB4ODAsMHgwMywweGVjLDB4NDAsMHhmYiwweDAxLDB4M2UsMHgwMCwweDBmLDB4MDgsMHgwMywweGE0LDB4MDggfX0sCi0gezE2LCAweDg0ZTAsIDAsIHsweGZhLDB4ODAsMHhiMiwweDgwLDB4MGYsMHhiMSwweDAyLDB4NmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NGYwLCAwLCB7MHg0OCwweDE5LDB4MWMsMHg4MCwweGJmLDB4MzAsMHgyMSwweGNhLDB4MDgsMHhmMCwweDBhLDB4MGMsMHg4MCwweDhmLDB4NTAsMHgyMSB9fSwKLSB7MTYsIDB4ODUwMCwgMCwgezB4YzIsMHgwOCwweDcwLDB4NTAsMHg5YywweDAwLDB4YjcsMHgwMCwweDM5LDB4YzQsMHgwYiwweDQwLDB4MDIsMHg5YywweDA0LDB4YjcgfX0sCi0gezE2LCAweDg1MTAsIDAsIHsweDIwLDB4MjUsMHg0MCwweDBiLDB4NzAsMHgwMiwweDE0LDB4ODAsMHhiNiwweDAwLDB4MjEsMHg4MCwweDBiLDB4ZjgsMHgwMiwweDEyIH19LAotIHsxNiwgMHg4NTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiNywweGIwLDB4MjEsMHhlYyB9fSwKLSB7MTYsIDB4ODUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4NCwweDk3LDB4ODAsMHgwZCwweGUwLDB4MjgsMHhmOCwweDAyLDB4ZGUsMHgwMCwweGI3LDB4OTAgfX0sCi0gezE2LCAweDg1NDAsIDAsIHsweDJkLDB4ZTQsMHgwYiwweDY4LDB4ODIsMHg1ZSwweDgwLDB4YjcsMHhhMCwweDI5LDB4MjAsMHgwYiwweDQ4LDB4MDIsMHg5NiwweDAwIH19LAotIHsxNiwgMHg4NTUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMSwweDBiLDB4N2EsMHgwMiwweDcwLDB4NDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODU2MCwgMCwgezB4NDgsMHgwNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzgsMHgwMiwweDhjLDB4MDQsMHg4MywweDAwLDB4MjggfX0sCi0gezE2LCAweDg1NzAsIDAsIHsweGMwLDB4ODgsMHgzOSwweDAyLDB4NGMsMHg0MCwweGIzLDB4MDQsMHgyOCwweGMwLDB4MWIsMHgxMCwweDAyLDB4OGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHg4NTgwLCAwLCB7MHgwNCwweDI0LDB4ODgsMHg0YiwweDMxLDB4MDIsMHgwNCwweDAwLDB4YjMsMHg4MCwweDIwLDB4ZjIsMHgwYiwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ODU5MCwgMCwgezB4MjQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg1YTAsIDAsIHsweDBmLDB4ZTgsMHgwMywweGU4LDB4MDAsMHhkYSwweDAxLDB4M2EsMHg4MCwweDhjLDB4ZWQsMHgwMywweGZiLDB4MDQsMHhmYSwweDAwIH19LAotIHsxNiwgMHg4NWIwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHg2YywweDAzLDB4ZmIsMHhjOCwweGJlLDB4YzIsMHgxZiwweDgwLDB4MGYsMHhlNSwweDAzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4ODVjMCwgMCwgezB4ZmUsMHg0OCwweDMzLDB4ODAsMHg0ZiwweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1ZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNjLDB4MDAsMHgwYywweDgxLDB4OTMsMHg2MCwweDAwLDB4ZjgsMHgwMSwweDM2IH19LAotIHsxNiwgMHg4NWUwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHgwMywweGEwLDB4MjAsMHhmOCwweDAwLDB4MmEsMHgwMSwweDhmLDB4ODQsMHgxMywweGUxLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODVmMCwgMCwgezB4MTgsMHgzNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MjAsMHgzZSwweDE0LDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDg2MDAsIDAsIHsweDgwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTQsMHgwMCwweGYxLDB4MDAsMHhhYSwweDQwIH19LAotIHsxNiwgMHg4NjEwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZTEsMHgwMCwweDM4LDB4NDAsMHgxYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4ODYyMCwgMCwgezB4M2EsMHg0MCwweDQ3LDB4OWEsMHg5MywweGEyLDB4ODAsMHhmOCwweDEwLDB4M2UsMHg0MCwweDBiLDB4OTQsMHgwMywweGU2LDB4NDAgfX0sCi0gezE2LCAweDg2MzAsIDAsIHsweGY5LDB4YzAsMHgzZSwweDY4LDB4MGIsMHgxMCwweDAzLDB4MDIsMHg4NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NjQwLCAwLCB7MHg4MCwweDA0LDB4ZTQsMHgwNCwweGI5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwNCwweDg5LDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4ODY1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4YjksMHg4MCwweDJlLDB4NDAsMHg0ZiwweDk0LDB4MDMsMHg2MSwweDEwLDB4ZTggfX0sCi0gezE2LCAweDg2NjAsIDAsIHsweDQwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU2LDB4MDQsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg4NjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4ODY4MCwgMCwgezB4MGEsMHgxMCwweDUyLDB4MDQsMHgwNCwweGE5LDB4MDQsMHgyYSwweDQwLDB4MDgsMHhiMCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweDg2OTAsIDAsIHsweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhOCwweDBkLDB4YjgsMHg0MCwweDJlLDB4NDAsMHgwOSwweDk0LDB4MDIsMHhlNSwweDAwIH19LAotIHsxNiwgMHg4NmEwLCAwLCB7MHhiOSwweDA0LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDIwLDB4MjAsMHhjOCwweDBhLDB4MTAsMHg0MiwweDA0LDB4OTAsMHg4MSwweDIwLDB4MDQgfX0sCi0gezE2LCAweDg2YzAsIDAsIHsweGM4LDB4MDgsMHgzMCwweDI2LDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyYywweDQ4LDB4MGIsMHg5MCwweDAyLDB4NDUsMHgwMSwweGIxIH19LAotIHsxNiwgMHg4NmQwLCAwLCB7MHg0MCwweDJjLDB4NDAsMHgwYiwweDEyLDB4ODIsMHhjNCwweDAwLDB4YjEsMHgyYiwweDJjLDB4NGEsMHgwYiwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ODZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHgyMSwweDQ4LDB4ZjgsMHg1MCwweDMyLDB4MDAgfX0sCi0gezE2LCAweDg2ZjAsIDAsIHsweDRlLDB4ODUsMHgwYiwweDIxLDB4NDAsMHhhOCwweDUyLDB4MmEsMHgwMCwweDA4LDB4ODAsMHgyMywweGUxLDB4NDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg4NzAwLCAwLCB7MHgzYSwweDE0LDB4MGYsMHhhMCwweDQzLDB4YTgsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MiwweDAzLDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4ODcxMCwgMCwgezB4ZjAsMHgyMCwweDNlLDB4ODgsMHg0ZiwweDgyLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3MjAsIDAsIHsweDk4LDB4MTksMHhlNCwweDQwLDB4ZjksMHgxMSwweDM0LDB4NDQsMHgyZCwweGQwLDB4MDMsMHhlNCwweDUwLDB4NzksMHgxMCwweDM4IH19LAotIHsxNiwgMHg4NzMwLCAwLCB7MHg0NCwweDJmLDB4ZDAsMHgwMywweGY1LDB4MTAsMHhmOSwweDEwLDB4M2UsMHg0NSwweDA2LDB4NTAsMHgwMywweGU1LDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ODc0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMCwweGZkLDB4MjgsMHgzZiwweDQwLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDg3NTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAxLDB4ZTYsMHgwMCwweGQ5LDB4OTAsMHgzNywweDY5IH19LAotIHsxNiwgMHg4NzYwLCAwLCB7MHg0ZCwweDkwLDB4MjMsMHg2NywweDgwLDB4ZDksMHhlMCwweDM3LDB4NjgsMHgwZSwweGQwLDB4MDcsMHhhNCwweDAwLDB4MDUsMHg4NiB9fSwKLSB7MTYsIDB4ODc3MCwgMCwgezB4M2UsMHg2NiwweDBkLDB4NTAsMHgyMywweDI2LDB4MDAsMHhjOSwweDgyLDB4M2QsMHg0MCwweDBkLDB4ZDgsMHgwNywweDM2LDB4MDIgfX0sCi0gezE2LCAweDg3ODAsIDAsIHsweGNkLDB4YzAsMHgzMywweDYwLDB4MGMsMHg5YywweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NzkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4YTIsMHgyMiwweDEwLDB4MjgsMHg4YSwweDgyLDB4MjMsMHg4NCwweDg4LDB4YTAsMHgyMiB9fSwKLSB7MTYsIDB4ODdhMCwgMCwgezB4MTQsMHg0OCwweDgwLDB4NDIsMHg4MiwweDAwLDB4ODgsMHg0MCwweDJlLDB4MzAsMHgwOCwweDgwLDB4MDIsMHhhMiwweDAwLDB4ZDggfX0sCi0gezE2LCAweDg3YjAsIDAsIHsweDkwLDB4MjYsMHgwMCwweDA4LDB4ODQsMHgwYSwweDIxLDB4MDAsMHhjOCwweGEwLDB4YTIsMHgxNCwweDI4LDB4OGMsMHgwMiwweDBlIH19LAotIHsxNiwgMHg4N2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MjAsMHg5MSwweDQwLDB4MmMsMHg0NCB9fSwKLSB7MTYsIDB4ODdkMCwgMCwgezB4MTgsMHgxMCwweDAyLDB4ODUsMHgwNCwweGIxLDB4NDAsMHgwYywweDQwLDB4MGEsMHgxMCwweDA2LDB4ODQsMHgzMCwweDgxLDB4NDAgfX0sCi0gezE2LCAweDg3ZTAsIDAsIHsweDJjLDB4NDgsMHg1OSwweDEwLDB4MWEsMHgwNCwweDYwLDB4ODEsMHgwOSwweDJlLDB4NDAsMHgxYiwweDE0LDB4MDIsMHgyNSwweDAwIH19LAotIHsxNiwgMHg4N2YwLCAwLCB7MHg5MSwweGUwLDB4MjAsMHg2MCwweDA4LDB4MTYsMHgwMiwweDAwLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODgwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4MSwweDAwLDB4MmEsMHg0MSwweDA4LDB4OTAsMHgwMiwweGE0LDB4MDAsMHhhMSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg4MTAsIDAsIHsweDQxLDB4MDgsMHhiMCwweDgyLDB4MjQsMHgxMSwweDhiLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MSwweDAyLDB4YTAsMHgwNCwweDk4IH19LAotIHsxNiwgMHg4ODIwLCAwLCB7MHgyMCwweDJlLDB4NTQsMHgxYiwweDkwLDB4ODIsMHgyYywweDAwLDB4ODksMHgxMCwweDIyLDB4NDQsMHg4OCwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ODgzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweDg4NDAsIDAsIHsweDRjLDB4OTAsMHgwMywweGE0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDhlLDB4MTAsMHgwMiwweGE0LDB4YzIsMHhjOSwweDAwIH19LAotIHsxNiwgMHg4ODUwLCAwLCB7MHgzZSwweDQwLDB4MGQsMHgxNiwweDEzLDB4MDEsMHg4NCwweGM4LDB4MjAsMHgzYywweDYwLDB4MGYsMHg5MCwweDEyLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4ODg2MCwgMCwgezB4ZDksMHg0MCwweDMyLDB4NTAsMHgwYywweDkwLDB4MDMsMHgyOCwweDg0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4NzAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NDAsMHg0ZiwweDk5LDB4NGEsMHg0NCwweDAwLDB4OTksMHgwMCwweGI0IH19LAotIHsxNiwgMHg4ODgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBmLDB4OTAsMHgwMywweGUzLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODg5MCwgMCwgezB4MDEsMHgzNiwweDQwLDB4MGMsMHg5OSwweDAzLDB4ZTQsMHgwMiwweGY5LDB4ODAsMHgzZSwweDYwLDB4NGYsMHg5MCwweDBiLDB4Y2EgfX0sCi0gezE2LCAweDg4YTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDAsMHgzYywweDAwIH19LAotIHsxNiwgMHg4OGIwLCAwLCB7MHgxZCwweDgwLDB4MDMsMHgyMCwweDAwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHgwYywweDg0LDB4ODMsMHhlMCwweDEwLDB4ZTgsMHgyMCB9fSwKLSB7MTYsIDB4ODhjMCwgMCwgezB4MzIsMHgwMCwweDhlLDB4ODQsMHgwMywweDIxLDB4ODAsMHhjOCwweDAwLDB4M2EsMHgxOSwweDBmLDB4MDQsMHgwMywweGUwLDB4MjQgfX0sCi0gezE2LCAweDg4ZDAsIDAsIHsweGYwLDB4MDIsMHgzYywweDAwLDB4MGYsMHg4MCwweDEzLDB4OGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMiwweDhhLDB4MDEsMHgwZiwweGEyLDB4NjgsMHhhMCwweDAwLDB4MjgsMHgwMCwweDhhLDB4MDAsMHg3NyB9fSwKLSB7MTYsIDB4ODhmMCwgMCwgezB4ODAsMHg2OCwweGUwLDB4MTIsMHhlOCwweDAwLDB4ZGUsMHgwMCwweDM2LDB4ODEsMHgwOCwweGUwLDB4MDMsMHg3YSwweDA4LDB4YWUgfX0sCi0gezE2LCAweDg5MDAsIDAsIHsweGM0LDB4MmYsMHg4MCwweDA4LDB4ZWQsMHgwMiwweGZhLDB4MDAsMHhiZSwweGEwLDB4M2IsMHg4MCwweDBiLDB4YTAsMHg0MiwweDBhIH19LAotIHsxNiwgMHg4OTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4NSwweDRjLDB4MDAsMHg5MywweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODkyMCwgMCwgezB4ODgsMHhiMCwweDAyLDB4MGMsMHgxNCwweGEzLDB4MDQsMHgyMCwweGM0LDB4MTgsMHgzOCwweDAyLDB4ZWMsMHgxMCwweDkzLDB4NTQgfX0sCi0gezE2LCAweDg5MzAsIDAsIHsweDI4LDB4YzAsMHgwYSwweDAwLDB4MDIsMHg0ZSwweDAwLDB4ODMsMHg0OSwweDY4LDB4YzAsMHgwMiwweDM5LDB4NDIsMHhjZSwweDQwIH19LAotIHsxNiwgMHg4OTQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhlNiwweDBiLDB4YjAsMHgwMiwweDhiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODk1MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MDgsMHg4NywweDIwLDB4MmMsMHg4MCwweDE4LDB4ZjIsMHgyMiwweDFjLDB4MDAsMHg4NywweDEwLDB4MjEgfX0sCi0gezE2LCAweDg5NjAsIDAsIHsweGMwLDB4MDgsMHg3MCwweDgyLDB4ZGMsMHg4MCwweDk2LDB4ODAsMHgyZCwweGMwLDB4MGEsMHg0MCwweDAyLDB4N2QsMHg0MCwweDI3IH19LAotIHsxNiwgMHg4OTcwLCAwLCB7MHg2NCwweDZkLDB4ZDAsMHg0OCwweDYwLDB4NDIsMHhkOCwweDA1LDB4YjYsMHgwNCwweDI5LDB4YzAsMHg0YiwweDcyLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4ODk4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDg4LDB4ZDcsMHhlMCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweDg5OTAsIDAsIHsweDA4LDB4N2MsMHg0MiwweDNlLDB4MDAsMHhlMywweDgyLDB4MjAsMHhlMCwweDBjLDB4NjgsMHgwMywweGRmLDB4MDQsMHhkNywweDgwIH19LAotIHsxNiwgMHg4OWEwLCAwLCB7MHgzYiwweGUwLDB4NGUsMHg0OCwweDBhLDB4NWUsMHg4MCwweGM3LDB4YzIsMHgxOSwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZDYsMHgwOCB9fSwKLSB7MTYsIDB4ODliMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4ZTAsMHgwZiwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5YzAsIDAsIHsweDA4LDB4MWQsMHhhYywweDQwLDB4ZmIsMHg0MCwweDdlLDB4ODAsMHgwZSwweDM2LDB4ODMsMHhlZCwweDQwLDB4ZGIsMHg2MCwweDNlIH19LAotIHsxNiwgMHg4OWQwLCAwLCB7MHg4MCwweDBmLDB4YTAsMHgwMywweGVkLDB4MjgsMHhkYSwweDAwLDB4MzIsMHhjNCwweDBjLDB4YjAsMHgwYiwweGNjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ODllMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGUsMHg4MCwweDEzLDB4ZTAsMHgxMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMSwweDUzLDB4YzIgfX0sCi0gezE2LCAweDg5ZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGZmLDB4YzAsMHgzMywweGUwIH19LAotIHsxNiwgMHg4YTAwLCAwLCB7MHgwYywweGY5LDB4MDMsMHg3ZiwweDA0LDB4Y2YsMHhkMCwweDNmLDB4ZTQsMHgwZiwweGI4LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg5NCB9fSwKLSB7MTYsIDB4OGExMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhmMywweDgwLDB4M2IsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4NDggfX0sCi0gezE2LCAweDhhMjAsIDAsIHsweGVkLDB4ODAsMHgzMywweDI0LDB4MDQsMHhmOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YTMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4MCwweGJmLDB4MDQsMHgyMSwweDI4LDB4MDgsMHhmOCwweDAyLDB4MWUsMHhjMCwweGNmLDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4OGE0MCwgMCwgezB4NGMsMHgwYiwweDVhLDB4NDIsMHhkZSwweDAwLDB4YjcsMHg4MCwweDJjLDB4ZTgsMHgwYiwweDA0LDB4MDIsMHgxYywweDAwLDB4YjcgfX0sCi0gezE2LCAweDhhNTAsIDAsIHsweGEwLDB4MzUsMHgxMCwweDhmLDB4NzEsMHgxMywweGRlLDB4YzAsMHg4NCwweDEwLDB4MjEsMHg4MCwweDBkLDB4NzEsMHgwMiwweDJhIH19LAotIHsxNiwgMHg4YTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHg0MCwweDljLDB4MDgsMHhiNywweDAwLDB4MjUsMHhjOCB9fSwKLSB7MTYsIDB4OGE3MCwgMCwgezB4MDgsMHg3MSwweDAyLDB4Y2MsMHg4MCwweDk3LDB4MDAsMHgyOSwweGMwLDB4OGIsMHg3MiwweDA2LDB4ZGMsMHgwOCwweGI1LDB4MDAgfX0sCi0gezE2LCAweDhhODAsIDAsIHsweDJkLDB4YzgsMHgwYiwweDQwLDB4MDIsMHgxYywweDQwLDB4YmYsMHgxMCwweDIxLDB4YzAsMHgwYiwweDc0LDB4MDIsMHhkNCwweDgwIH19LAotIHsxNiwgMHg4YTkwLCAwLCB7MHhhNywweDQwLDB4MjEsMHg0MSwweDA4LDB4NzAsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGFhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDA4LDB4MzQsMHg4MiwweGFjLDB4MTEsMHg4MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDhhYjAsIDAsIHsweDAwLDB4NGIsMHgxOCwweDI2LDB4Y2YsMHgyMCwweGIxLDB4MDYsMHgyYywweGMxLDB4MGIsMHgzMiwweDAyLDB4MGUsMHgwOCwweGIzIH19LAotIHsxNiwgMHg4YWMwLCAwLCB7MHg4OCwweDI0LDB4MzIsMHgwYSwweDMwLDB4MTIsMHg4NCwweDA4LDB4ODAsMHgwMCwweGEwLDB4MzQsMHgyOCwweDMwLDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4OGFkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHgwMCwweGI2LDB4NDAgfX0sCi0gezE2LCAweDhhZTAsIDAsIHsweDJjLDB4ZjQsMHg0MywweGZjLDB4MDEsMHhkZiwweDAwLDB4M2EsMHgwMCwweDAzLDB4OTIsMHgwMywweGZmLDB4ODgsMHhmOSwweDAwIH19LAotIHsxNiwgMHg4YWYwLCAwLCB7MHgyZiwweGMwLDB4MWIsMHgwZSwweDRiLDB4MmUsMHg5MCwweGZiLDB4ZTAsMHgzMCwweDMyLDB4MGIsMHg5OCwweDAyLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4OGIwMCwgMCwgezB4NmIsMHhjMCwweDMyLDB4YzAsMHgwOCwweGYwLDB4MDksMHgzZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiMTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjMsMHgwMCwweDNhLDB4YzAsMHgwZiwweGIwLDB4MDEsMHg2YywweDAwLDB4ZmIsMHgwMCwweDNhIH19LAotIHsxNiwgMHg4YjIwLCAwLCB7MHgxMCwweDBmLDB4YjQsMHgwMywweGVjLDB4MDAsMHhmMCwweDAwLDB4M2MsMHhjMCwweDBmLDB4ODAsMHgwYiwweGFkLDB4MjAsMHhmYiB9fSwKLSB7MTYsIDB4OGIzMCwgMCwgezB4NDAsMHgzZSwweDEwLDB4MDcsMHhhOCwweDYzLDB4ZTAsMHgwMCwweGZiLDB4ODAsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweDhiNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHg3MiwweDAwIH19LAotIHsxNiwgMHg4YjUwLCAwLCB7MHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGMwLDB4MDMsMHhkYywweDAwLDB4OGYsMHgwMCB9fSwKLSB7MTYsIDB4OGI2MCwgMCwgezB4MzMsMHhjMSwweDBjLDB4YzAsMHgwMywweGJlLDB4MDAsMHhmZiwweDkwLDB4M2IsMHgyOCwweDBlLDB4NTksMHgwMywweDJlLDB4MDAgfX0sCi0gezE2LCAweDhiNzAsIDAsIHsweDdiLDB4MDAsMHgzMiwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YjgwLCAwLCB7MHhjMSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHg2MiwweGEwLDB4MGYsMHhiMCwweDAyLDB4ZWMsMHgwOSwweDhiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OGI5MCwgMCwgezB4MzAsMHgwYiwweGE4LDB4MDMsMHhhYywweDAwLDB4ZmEsMHhjMSwweDIyLDB4YzEsMHgwOCwweDhjLDB4MDIsMHgyYywweDAwLDB4YjMgfX0sCi0gezE2LCAweDhiYTAsIDAsIHsweDgxLDB4MmEsMHgwMCwweDBkLDB4ODgsMHhiMiwweDIyLDB4MDAsMHhiMywweGMwLDB4MjIsMHhjOCwweDBiLDB4YjAsMHg0MiwweDYxIH19LAotIHsxNiwgMHg4YmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDZjLDB4MDAsMHhiYiwweDAxLDB4MjIsMHg2MiB9fSwKLSB7MTYsIDB4OGJjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwNCwweDhiLDB4MDAsMHgyZSwweGEyLDB4NDksMHg4OCwweDI2LDB4ZWMsMHgwMCwweGE4LDB4ODAgfX0sCi0gezE2LCAweDhiZDAsIDAsIHsweDIyLDB4YzAsMHgyOCwweDgyLDB4MGEsMHhhYywweGEwLDB4YmIsMHgwOCwweDIyLDB4YzAsMHgwOCwweDgwLDB4MGEsMHgyOCwweDg0IH19LAotIHsxNiwgMHg4YmUwLCAwLCB7MHhiOSwweGMwLDB4YTIsMHgwMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGJmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDEwLDB4MjAsMHg0OCwweDBhLDB4MzIsMHgwMiwweGNjLDB4ODAsMHg4MywweDAxLDB4MjQgfX0sCi0gezE2LCAweDhjMDAsIDAsIHsweDAwLDB4MGIsMHgwMiwweDA2LDB4OGMsMHg2MCwweGEwLDB4MjAsMHgyMCwweGM4LDB4MDgsMHgwMSwweDAyLDB4MGMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg4YzEwLCAwLCB7MHgwMCwweDI4LDB4MDAsMHgwOSwweDIwLDB4MDIsMHgwOCwweDgwLDB4YjEsMHgwMCwweGEwLDB4ODAsMHgwYiwweDMwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4OGMyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHg2YywweDAwLDB4ZmYsMHgwMCwweGEyLDB4MGUgfX0sCi0gezE2LCAweDhjMzAsIDAsIHsweDBiLDB4ZjEsMHgwMywweGZjLDB4MDgsMHhjZiwweDIwLDB4M2UsMHhjMCwweDBmLDB4ODAsMHgwMywweGZjLDB4ODQsMHhhOCwweDIwIH19LAotIHsxNiwgMHg4YzQwLCAwLCB7MHhiMiwweGM4LDB4OGMsMHg4MCwweDAzLDB4YWMsMHg0NCwweGZiLDB4NzAsMHgzYSwweGMwLDB4MGUsMHg5MCwweDAzLDB4MmMsMHhhNCB9fSwKLSB7MTYsIDB4OGM1MCwgMCwgezB4ZmIsMHgwMCwweGIyLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjNjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgyNiwweDNlLDB4MDAsMHgwZiwweGI2LDB4MTMsMHhlZCwweDAwLDB4ZmIsMHgxMCwweDNmIH19LAotIHsxNiwgMHg4YzcwLCAwLCB7MHgwMCwweDBmLDB4YzEsMHgxMywweGFjLDB4ODAsMHhmOCwweDEyLDB4M2UsMHhjNiwweDRmLDB4NDIsMHg0MywweGZjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OGM4MCwgMCwgezB4MzEsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHhiZiwweGMwLDB4OGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDhjOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg0MCwweGZjLDB4ODAsMHgzNiwweGM4IH19LAotIHsxNiwgMHg4Y2EwLCAwLCB7MHgwZiwweDA5LDB4MDMsMHhjMiwweDAwLDB4ZjgsMHhjMCwweDMzLDB4Y2MsMHgyYywweDRjLDB4MDMsMHg2MywweDkwLDB4ZTAsMHg5MCB9fSwKLSB7MTYsIDB4OGNiMCwgMCwgezB4M2EsMHhjMCwweDBkLDB4NTAsMHgwYiwweDNjLDB4MDQsMHhkZiwweDY0LDB4M2YsMHhjOCwweDhkLDB4ZjEsMHg0MywweDJjLDB4MDAgfX0sCi0gezE2LCAweDhjYzAsIDAsIHsweGQ1LDB4MDAsMHgzMywweGMwLDB4NDUsMHhmMiwweDIzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4Y2QwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg4MCwweGJhLDB4MDIsMHgyMSwweGRlLDB4OGIsMHg4MiwweDIyLDB4ZTAsMHgyMCwweGIwLDB4MDAsMHgyYiB9fSwKLSB7MTYsIDB4OGNlMCwgMCwgezB4ZWMsMHgwOSwweDgwLDB4MDIsMHhlMywweDQwLDB4YmEsMHgyMCwweDJmLDB4ZGMsMHgwOCwweDk4LDB4MTIsMHgyYywweDAwLDB4OGIgfX0sCi0gezE2LCAweDhjZjAsIDAsIHsweDUxLDB4MmEsMHhkMCwweDA4LDB4NzIsMHgyMiwweDJlLDB4MDAsMHg4ZCwweDgwLDB4MjEsMHhkMCwweDA4LDB4YjYsMHg4MiwweDIwIH19LAotIHsxNiwgMHg4ZDAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiOSwweDI4LDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4OGQxMCwgMCwgezB4NGEsMHgxMiwweDEyLDB4ODgsMHg4NSwweGE4LDB4MjAsMHgyMCwweGMwLDB4MGIsMHgyMiwweDAyLDB4YzAsMHg5MSwweGExLDB4MDAgfX0sCi0gezE2LCAweDhkMjAsIDAsIHsweDI4LDB4YzIsMHgwYiwweDAwLDB4MTIsMHg4YywweDQwLDB4YTMsMHgyMCwweDIwLDB4YzQsMHgwYiwweDMwLDB4MGEsMHgwYywweDExIH19LAotIHsxNiwgMHg4ZDMwLCAwLCB7MHg5OSwweDAwLDB4MjAsMHhjNSwweDA5LDB4MDEsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGQ0MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhjMCwweDBiLDB4ODgsMHgwMiwweGVlLDB4MDEsMHhiOCwweGMxLDB4MmEgfX0sCi0gezE2LCAweDhkNTAsIDAsIHsweGMwLDB4MWIsMHhhOCwweDA2LDB4ZTIsMHgwMCwweGJiLDB4ODAsMHgyZSwweGMwLDB4OGEsMHg4MCwweDAyLDB4YWMsMHgwMCwweGFiIH19LAotIHsxNiwgMHg4ZDYwLCAwLCB7MHgwMCwweDJlLDB4YzAsMHgwYSwweGIwLDB4MDIsMHgyYywweDAwLDB4OTksMHgwMCwweDI0LDB4YzAsMHgwOCwweDgwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4OGQ3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YjAsMHg4MCwweDM2LDB4YzAgfX0sCi0gezE2LCAweDhkODAsIDAsIHsweDBlLDB4YTgsMHgxMywweGUyLDB4ODUsMHhmMywweGMwLDB4MzIsMHhjMCwweDBlLDB4OWMsMHgyMywweGU3LDB4MjQsMHhlOCwweDgyIH19LAotIHsxNiwgMHg4ZDkwLCAwLCB7MHgzYSwweGMxLDB4MGYsMHg5NCwweDAzLDB4YWMsMHgwMiwweGViLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmUsMHgxMCB9fSwKLSB7MTYsIDB4OGRhMCwgMCwgezB4NTEsMHgwMCwweGIyLDB4YzAsMHgwZCwweGIwLDB4MDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkYjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGQwLDB4MDMsMHhmMCwweDA0LDB4ZmQsMHgwNCwweDNmIH19LAotIHsxNiwgMHg4ZGMwLCAwLCB7MHhjMCwweDRjLDB4YzAsMHgwMywweGYwLDB4MTAsMHhmYywweDAwLDB4MWYsMHhjMCwweDBkLDB4ZDEsMHgyMywweDFjLDB4MDAsMHhjNyB9fSwKLSB7MTYsIDB4OGRkMCwgMCwgezB4MDAsMHgzOSwweGMwLDB4MGQsMHhmMCwweDgzLDB4ZmUsMHg0NCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHg3NCwweDAzLDB4ZjggfX0sCi0gezE2LCAweDhkZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY5LDB4MDEsMHhiYSwweGMxIH19LAotIHsxNiwgMHg4ZGYwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhhMSwweDA4LDB4ZmEsMHgwMCwweDMwLDB4YzgsMHg4ZiwweDk0LDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGUwMCwgMCwgezB4M2MsMHhjMCwweDBmLDB4MDQsMHg4MywweGVjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBmLDB4NzEsMHgwYiwweDJjLDB4NDAgfX0sCi0gezE2LCAweDhlMTAsIDAsIHsweGZkLDB4MDgsMHgzNywweGMwLDB4NGUsMHg5MSwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZTIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGI5LDB4MDAsMHgyMywweGMwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGM4LDB4MDAsMHgzNyB9fSwKLSB7MTYsIDB4OGUzMCwgMCwgezB4ZjAsMHgwYiwweDgwLDB4MDEsMHg2NCwweDAwLDB4NDksMHgwMiwweDMzLDB4YzAsMHg4NCwweDljLDB4MDMsMHgzYywweDAwLDB4YmYgfX0sCi0gezE2LCAweDhlNDAsIDAsIHsweDAyLDB4MGYsMHhkMCwweDA4LDB4ZjQsMHgwMiwweDBlLDB4MTAsMHhiZCwweDgwLDB4MzMsMHhlMCwweDA4LDB4OTAsMHgwYSwweDMyIH19LAotIHsxNiwgMHg4ZTUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMCwweDA2LDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4OGU2MCwgMCwgezB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweGEwLDB4MDAsMHgyMCwweGYwLDB4MGIsMHgwMCwweDIyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfX0sCi0gezE2LCAweDhlNzAsIDAsIHsweDI4LDB4YzAsMHgwMiwweDNkLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzIsMHg5YSwweDM4LDB4MDIsMHgwNiwweDA0IH19LAotIHsxNiwgMHg4ZTgwLCAwLCB7MHhiMSwweDEyLDB4MjAsMHhlMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGU5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNiwweDgwLDB4MjEsMHhlMCwweDI4LDB4ZWEsMHgwMiwweDM2LDB4ODAsMHg4NiwweDkwLDB4NjUgfX0sCi0gezE2LCAweDhlYTAsIDAsIHsweGUwLDB4MWIsMHhkYSwweDA2LDB4NWUsMHgwMSwweDllLDB4ODQsMHgyNSwweGVjLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4ZWIwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHgwOCwweDc5LDB4NGEsMHgxNiwweDQwLDB4YmQsMHg4MCwweDI1LDB4ZTAsMHgwOCwweDM4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OGVjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZmIsMHgwMCwweDI4LDB4ZTAgfX0sCi0gezE2LCAweDhlZDAsIDAsIHsweDA4LDB4MTgsMHgwMiwweDhhLDB4ODgsMHhhMSwweGEwLDB4MjAsMHhjMiwweDFmLDB4MmEsMHgyMywweGU2LDB4YzgsMHhmMCwweGMwIH19LAotIHsxNiwgMHg4ZWUwLCAwLCB7MHgzYSwweGVkLDB4NGUsMHgzNCwweDAyLDB4OGMsMHgwOCwweGYzLDB4ODEsMHgxZSwweGMwLDB4MGUsMHgzMCwweDAzLDB4MGUsMHhjMCB9fSwKLSB7MTYsIDB4OGVmMCwgMCwgezB4ZjEsMHgwMCwweGIwLDB4Y2EsMHgwZSwweDIxLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmMDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDA4LDB4ZmUsMHgxMCwweDNmLDB4ZDIsMHgwZiwweGUwLDB4MDMsMHhlYywweDA0LDB4ZmYsMHgxNCwweDdlIH19LAotIHsxNiwgMHg4ZjEwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgyMywweGZjLDB4MDEsMHhlZSwweDAwLDB4M2EsMHhjNCwweDBkLDB4YjAsMHgxMywweGJjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OGYyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDgzLDB4ZmMsMHgwYywweGZkLDB4MTAsMHgzYiwweGMwLDB4MmYsMHhlMSwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhmMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGYwLDB4ODAsMHgzMiwweGQwIH19LAotIHsxNiwgMHg4ZjQwLCAwLCB7MHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4ZjMsMHg4MCwweDMyLDB4ZGEsMHgwZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OGY1MCwgMCwgezB4M2UsMHhjYywweDRjLDB4OTgsMHgxMywweDJjLDB4MTAsMHhmYiwweDA0LDB4M2UsMHhjNCwweDBjLDB4ZjIsMHg4MywweGE2LDB4MTAgfX0sCi0gezE2LCAweDhmNjAsIDAsIHsweGRkLDB4MjAsMHgzZiwweGQxLDB4MGMsMHhiMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZjcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweGI3LDB4MDAsMHgyMSwweGM4LDB4MGMsMHg3MCwweDAyLDB4ZGMsMHgwOCwweGI3LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4OGY4MCwgMCwgezB4YzgsMHgwZSwweDcwLDB4MjIsMHhkOCwweDAwLDB4YjcsMHgwMCwweDJjLDB4YzIsMHgwYSwweDcwLDB4MGEsMHgxZiwweDA4LDB4YjcgfX0sCi0gezE2LCAweDhmOTAsIDAsIHsweDAwLDB4MzksMHhjOCwweDBhLDB4NzAsMHgwMiwweDE0LDB4MDAsMHhjNSwweDY5LDB4MmMsMHhjYSwweDJhLDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHg4ZmEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiZiwweDgxLDB4NjQsMHhlMSB9fSwKLSB7MTYsIDB4OGZiMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4NWEsMHgwMSwweGJmLDB4ODAsMHgyMSwweGVjLDB4NGIsMHg3OCwweDQ2LDB4OWYsMHgwOCwweDM3LDB4ODAgfX0sCi0gezE2LCAweDhmYzAsIDAsIHsweDJkLDB4ZTgsMHg4OCwweDE4LDB4MDIsMHgxZSwweDgxLDB4YjcsMHhiMCwweDJkLDB4ZTAsMHgwOSwweDdhLDB4MDIsMHg4ZSwweDAwIH19LAotIHsxNiwgMHg4ZmQwLCAwLCB7MHg5NSwweGEwLDB4MmQsMHhlNCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGZlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDA4LDB4YjYsMHgwMiwweGNjLDB4MDAsMHhiMywweDAxLDB4MjAgfX0sCi0gezE2LCAweDhmZjAsIDAsIHsweGMwLDB4OGEsMHhiMCwweDg2LDB4Y2YsMHgwMCwweGJiLDB4MTAsMHg2YywweGMxLDB4MGEsMHgzOCwweDAyLDB4MGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHg5MDAwLCAwLCB7MHgwMiwweDI4LDB4YzAsMHgwYiwweGIwLDB4MGEsMHgwYywweDAwLDB4ODEsMHgwMCwweDJlLDB4YzAsMHgwYSwweGI0LDB4ODIsMHhkMiB9fSwKLSB7MTYsIDB4OTAxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg0MCwweGI2LDB4ODAgfX0sCi0gezE2LCAweDkwMjAsIDAsIHsweDBjLDB4ZTQsMHgwMywweDc4LDB4ODAsMHhmZSwweDc0LDB4MzIsMHg4MCwweDBiLDB4ZTYsMHgwMywweGY5LDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHg5MDMwLCAwLCB7MHgzZSwweDgwLDB4MGMsMHhlMCwweDAzLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4NGQsMHhhMCwweDAzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4OTA0MCwgMCwgezB4ZGEsMHgwNCwweDNlLDB4ODAsMHgwYywweGU0LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgyZSwweDgwLDB4MjMsMHhlMCwweDAwLDB4ZjgsMHgwMSwweDNjIH19LAotIHsxNiwgMHg5MDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MjAsMHhmOCwweDIwLDB4M2UsMHgwMSwweDhmLDB4ODksMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OTA3MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4MGUsMHg4MCwweDAxLDB4ZTAsMHgwMCwweGU4LDB4NDAsMHg3ZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDkwODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDEsMHg3ZSwweDQwIH19LAotIHsxNiwgMHg5MDkwLCAwLCB7MHgyYywweDkwLDB4MGIsMHgyNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjgsMHgwNSwweDkwLDB4MTMsMHhhNCwweDA0LDB4ZDksMHgwMCB9fSwKLSB7MTYsIDB4OTBhMCwgMCwgezB4MzIsMHg0MSwweDBlLDB4OTEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDkwYjAsIDAsIHsweGYxLDB4MDAsMHgzMiwweDQwLDB4NjgsMHg5MCwweDQzLDB4ODIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OTBkMCwgMCwgezB4NzAsMHg4OCwweDkwLDB4MDMsMHgyNCwweDAwLDB4YjksMHgwMCwweDIyLDB4NDAsMHgwOCwweDk4LDB4MTIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweDkwZTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBhLDB4OTAsMHgwYSwweDI2LDB4MDAsMHhiOSwweDgwLDB4YTIsMHg0MCwweDA4LDB4OTAsMHgxMiwweDIwIH19LAotIHsxNiwgMHg5MGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDA0LDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4OTEwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMSwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHhiMCwweDAyLDB4YTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweDkxMTAsIDAsIHsweGUwLDB4NDAsMHgwYSwweDkwLDB4ODIsMHhhNCwweDAwLDB4YjksMHgwMCwweDJjLDB4NDgsMHgwYSwweDk4LDB4MDIsMHgyNCwweDgwIH19LAotIHsxNiwgMHg5MTIwLCAwLCB7MHgzOSwweDIwLDB4MjIsMHg0MCwweDJhLDB4OTAsMHgwMiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgxMiwweDA0LDB4MTAsMHhiMSwweDA0LDB4MmMgfX0sCi0gezE2LCAweDkxNDAsIDAsIHsweGQ4LDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyMCwweDQ4LDB4MDgsMHgxMCwweDAyLDB4YzQsMHg4MCwweGIxIH19LAotIHsxNiwgMHg5MTUwLCAwLCB7MHgyMiwweDJjLDB4NTAsMHg4YSwweDMyLDB4ODIsMHgwNSwweGEwLDB4YjEsMHgyYSwweDIwLDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4OTE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDUwLDB4YzgsMHg1MiwweDJlLDB4MTQgfX0sCi0gezE2LCAweDkxNzAsIDAsIHsweDBjLDB4ODUsMHgwMywweDIxLDB4NDAsMHhmOCwweDUwLDB4M2EsMHgwMCwweDFmLDB4ODUsMHgwMywweGExLDB4NDAsMHhmOCwweDUwIH19LAotIHsxNiwgMHg5MTgwLCAwLCB7MHgzMiwweDE0LDB4MGUsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzYywweDgwLDB4MGUsMHgwMiwweDAzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4OTE5MCwgMCwgezB4ZmEsMHgyMCwweDMyLDB4MDgsMHgwZSwweDgyLDB4MTMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDUwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MWIwLCAwLCB7MHg0NCwweDhkLDB4ZDAsMHgwMSwweGJkLDB4MDAsMHhmZCwweDAyLDB4M2UsMHg0NCwweDBmLDB4ZDQsMHgwMCwweGU0LDB4NDgsMHg3OSB9fSwKLSB7MTYsIDB4OTFjMCwgMCwgezB4MTQsMHgzZSwweDUwLDB4MGYsMHg5MiwweGEyLDB4ZjQsMHgwOCwweGZkLDB4MDAsMHgzZSwweDRhLDB4MGQsMHhkMiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDkxZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTcsMHgwMCwweGY5LDB4MTAsMHgzYSwweDZlIH19LAotIHsxNiwgMHg5MWUwLCAwLCB7MHgwYywweGIxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHg0NCwweDNiLDB4NjEsMHg4ZSwweDk0LDB4MDMsMHhlNCwweDAwLDB4ZTksMHg0MCB9fSwKLSB7MTYsIDB4OTFmMCwgMCwgezB4MzIsMHg2NiwweDBmLDB4ZGEsMHgwYiwweGE3LDB4MjgsMHhjOSwweGUwLDB4M2YsMHg2OCwweDBjLDB4ZGEsMHg4MywweGIzLDB4MjAgfX0sCi0gezE2LCAweDkyMDAsIDAsIHsweGVkLDB4YTAsMHgzMywweDc5LDB4MDgsMHhkOCwweDAzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwMCwweGI4LDB4YTAsMHgyZSwweDM4LDB4MDgsMHg4YSwweDAyLDB4ZTIsMHg4OCwweGU4LDB4ODEsMHgyZSB9fSwKLSB7MTYsIDB4OTIyMCwgMCwgezB4MTQsMHgwOSwweDBhLDB4MDMsMHhlMiwweDgwLDB4YjgsMHg4MCwweDMyLDB4MzAsMHgwYiwweDg1LDB4MDIsMHgyMSwweDAxLDB4YTggfX0sCi0gezE2LCAweDkyMzAsIDAsIHsweGY0LDB4MzgsMHgyYSwweDA4LDB4MGUsMHhjYSwweDIzLDB4OTAsMHhjOCwweDU0LDB4MzQsMHgzOCwweDA4LDB4OGEsMHg5MiwweDBlIH19LAotIHsxNiwgMHg5MjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDAwLDB4MjgsMHg0MCB9fSwKLSB7MTYsIDB4OTI1MCwgMCwgezB4MTksMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgyMCwweGExLDB4YTIgfX0sCi0gezE2LCAweDkyNjAsIDAsIHsweDZjLDB4NDgsMHgwYiwweDEwLDB4MDIsMHg4NCwweDA4LDB4ODEsMHgyMCwweDJjLDB4NTAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDA0IH19LAotIHsxNiwgMHg5MjcwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHg1OCwweDA4LDB4M2MsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHhiOSwweDIwLDB4MmMsMHg0MCwweDA5LDB4OTAsMHgwMiwweGU0LDB4MTAsMHhhOSwweDQwLDB4MmUgfX0sCi0gezE2LCAweDkyOTAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweGIxLDB4MDEsMHgyYSwweDQwLDB4MGIsMHg5NCwweDAyLDB4MjQsMHgwMCwweGE5IH19LAotIHsxNiwgMHg5MmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwMSwweDEwLDB4NTIsMHg2NCwweDAwLDB4ODksMHgwMCwweDI2LDB4NDAsMHgwMCwweDk4LDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4OTJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg2MSwweDNhLDB4NDAgfX0sCi0gezE2LCAweDkyYzAsIDAsIHsweDBkLDB4OTAsMHg4MywweGU1LDB4MjAsMHhmOSwweDAxLDB4M2EsMHg0MCwweDJlLDB4OTAsMHgwMiwweGU0LDB4NDAsMHhlOSwweDAxIH19LAotIHsxNiwgMHg5MmQwLCAwLCB7MHg5ZSwweDQwLDB4MGYsMHg5NCwweDAzLDB4YTQsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwLDB4MmQsMHg5MCwweDAyLDB4ZTYsMHgwOCB9fSwKLSB7MTYsIDB4OTJlMCwgMCwgezB4YjksMHgwMSwweDM2LDB4NDAsMHgyYywweDkwLDB4MDEsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyZjAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgyZSwweDkwLDB4MDMsMHhlNCwweDgwLDB4ZjksMHgwMCwweDNjIH19LAotIHsxNiwgMHg5MzAwLCAwLCB7MHg0MCwweDBjLDB4OWMsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4MTAsMHg0MywweDg0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OTMxMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4ODAsMHg4MCwweGY5LDB4MDAsMHgzYywweDQwLDB4MmYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweDkzMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4NDAsMHgzNiwweDAxIH19LAotIHsxNiwgMHg5MzMwLCAwLCB7MHgwZCwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MDgsMHgwYywweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4OTM0MCwgMCwgezB4MzIsMHgwMCwweDhmLDB4ODAsMHgwMywweGEwLDB4MTAsMHhmOCwweDAwLDB4MzIsMHgwNCwweDBlLDB4ODAsMHg4MywweDYwLDB4MDAgfX0sCi0gezE2LCAweDkzNTAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHgwMCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDEsMHgyMiwweDgwLDB4MDgsMHhhMCwweDI0LDB4ZTgsMHgwMCwweDBhLDB4MDAsMHgyZiB9fSwKLSB7MTYsIDB4OTM3MCwgMCwgezB4ODAsMHgxYSwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDE2LDB4ODAsMHgwYiwweGUwLDB4MDMsMHgyOCwweDA4LDB4ZWEgfX0sCi0gezE2LCAweDkzODAsIDAsIHsweDAwLDB4MzMsMHg5MCwweDA4LDB4ZWMsMHgxYiwweDIyLDB4ODAsMHhjNiwweDE0LDB4MmYsMHg5MSwweDA4LDB4YTAsMHg0MywweDRhIH19LAotIHsxNiwgMHg5MzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4OTNhMCwgMCwgezB4MDksMHgzMCwweDEyLDB4Y2MsMHgwNCwweGEzLDB4MDQsMHg2YywweGMwLDB4MDksMHgzMCwweDAyLDB4OGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweDkzYjAsIDAsIHsweDJjLDB4YzAsMHgxMywweDMwLDB4MDIsMHg4YywweDAwLDB4YjMsMHgwMCwweGU2LDB4YjgsMHgwYSwweDM4LDB4MDIsMHg0NCwweDA4IH19LAotIHsxNiwgMHg5M2MwLCAwLCB7MHg4MiwweDUwLDB4MmMsMHhkMiwweDNhLDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4ODAsMHg5NywweGI0LDB4MjEsMHhjNCwweDQ5LDB4NzEsMHgwMiwweGRlLDB4ODEsMHg4NywweDIxLDB4MmQgfX0sCi0gezE2LCAweDkzZTAsIDAsIHsweGQwLDB4MGIsMHg3YiwweDAyLDB4MWMsMHgwMSwweGJmLDB4MjAsMHgyOSwweGM0LDB4MGIsMHgzMCwweDAyLDB4NWMsMHgwMCwweGE3IH19LAotIHsxNiwgMHg5M2YwLCAwLCB7MHhhMSwweDIxLDB4YzAsMHg0YSwweDcwLDB4OGEsMHgwYywweDgxLDB4ODQsMHgwMCwweDJkLDB4ZDAsMHgwYSwweDUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OTQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgyLDB4ZGYsMHhhMCwweDM0LDB4ZWMgfX0sCi0gezE2LCAweDk0MTAsIDAsIHsweDBkLDB4NzksMHgwMiwweGZlLDB4ODAsMHhlNywweGU4LDB4MmYsMHhhMCwweDA5LDB4N2EsMHgwMiwweDllLDB4MDAsMHhmNywweGEyIH19LAotIHsxNiwgMHg5NDIwLCAwLCB7MHgyNSwweGVhLDB4MGIsMHg0OCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YzAsMHg2NSwweGU0LDB4MGUsMHg2OCwweDAzLDB4NWYsMHgwMCB9fSwKLSB7MTYsIDB4OTQzMCwgMCwgezB4ZTQsMHg4MCwweDNkLDB4ZTAsMHgwZSwweGY4LDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0NDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDQ4LDB4ZWIsMHgwNSwweDNlLDB4ZDksMHgwZSwweGIyLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg2MCwweDNlIH19LAotIHsxNiwgMHg5NDUwLCAwLCB7MHhjMCwweDBlLDB4YjIsMHg4MywweGFjLDB4MDAsMHhmMywweDUwLDB4YTYsMHhjMCwweDRmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTQ2MCwgMCwgezB4ODAsMHgzZiwweGQ4LDB4MGQsMHhhMCwweDAzLDB4ZWMsMHgwYSwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGQsMHg5MCwweDAzLDB4NDIgfX0sCi0gezE2LCAweDk0NzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGJiLDB4OTAsMHgzZSwweGUwIH19LAotIHsxNiwgMHg5NDgwLCAwLCB7MHgwOCwweDM5LDB4MDMsMHg5ZSwweDIwLDB4Y2YsMHg4MiwweDc3LDB4ZTAsMHgxZiwweGY4LDB4MDMsMHhlZSwweDAwLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4OTQ5MCwgMCwgezB4M2YsMHhlNSwweDBkLDB4ZjksMHgwMywweGVlLDB4MDAsMHhmYiwweDkwLDB4MzcsMHhhMCwweDA4LDB4ZjgsMHgwZiwweDFlLDB4MDAgfX0sCi0gezE2LCAweDk0YTAsIDAsIHsweGNjLDB4OTQsMHgzMywweDYwLDB4MGQsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI3LDB4OTAsMHgyZiwweGU0LDB4MDgsMHg3YSwweDAyLDB4MWUsMHgwMCwweDhmLDB4MTIsMHgyNSB9fSwKLSB7MTYsIDB4OTRjMCwgMCwgezB4ZDgsMHgwYiwweGJiLDB4MDIsMHgxZSwweDAwLDB4YjcsMHgwMCwweDJkLDB4ZTgsMHgwOCwweDdkLDB4ODIsMHhkZSwweDQwLDB4YmIgfX0sCi0gezE2LCAweDk0ZDAsIDAsIHsweGEwLDB4MjcsMHg5MCwweDBhLDB4NzYsMHgwMiwweDVjLDB4ODAsMHg4NSwweDAwLDB4MzcsMHhjNCwweDRkLDB4NzEsMHgwMywweGVhIH19LAotIHsxNiwgMHg5NGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhiNywweDIwLDB4MmQsMHhjMCB9fSwKLSB7MTYsIDB4OTRmMCwgMCwgezB4MjksMHhmMiwweDIyLDB4YmMsMHg4MCwweDk3LDB4MDAsMHgyNSwweDQxLDB4MGIsMHg3MCwweDEyLDB4OWMsMHgwMCwweGI3LDB4MDggfX0sCi0gezE2LCAweDk1MDAsIDAsIHsweDI5LDB4YzAsMHgwOCwweDQyLDB4MTIsMHhkYywweDQwLDB4YjcsMHgwMCwweDI5LDB4YzAsMHgwOSwweDYwLDB4MjIsMHhkYywweDEwIH19LAotIHsxNiwgMHg5NTEwLCAwLCB7MHg4MCwweDAwLDB4MjEsMHg0MCwweDA5LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweGMwLDB4MmUsMHhjMCwweDA4LDB4MzQsMHg4MiwweDJkLDB4MDAsMHg5MywweDAwLDB4MjQgfX0sCi0gezE2LCAweDk1MzAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDAyLDB4MGYsMHg4MCwweDEzLDB4MDAsMHgyYywweGMwLDB4MGEsMHgzNCwweGEyLDB4ZWMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5NTQwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjYywweDAwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4OSB9fSwKLSB7MTYsIDB4OTU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAwLDB4ZmYsMHhlMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDk1NjAsIDAsIHsweDBjLDB4ZjQsMHg4MywweGJkLDB4MDAsMHhkZiwweDA4LDB4MzYsMHg0MCwweDBiLDB4NzUsMHg0MiwweGZjLDB4MjAsMHhmZiwweDgwIH19LAotIHsxNiwgMHg5NTcwLCAwLCB7MHgzYiwweGMwLDB4MmMsMHgzYywweDAzLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHhiZSwweGMwLDB4OGQsMHg5MCwweDBiLDB4YWMsMHgwMiB9fSwKLSB7MTYsIDB4OTU4MCwgMCwgezB4Y2EsMHgwMCwweDIyLDB4ODAsMHgwZCwweGIwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk1OTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwOCwweDFlLDB4YzAsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNhIH19LAotIHsxNiwgMHg5NWEwLCAwLCB7MHgxMCwweDBmLDB4YjAsMHgyMywweGFjLDB4MDEsMHhmYiwweDAwLDB4M2UsMHhjMCwweDNjLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTViMCwgMCwgezB4MDAsMHgyNiwweDQwLDB4MGUsMHg5NCwweDBiLDB4MmMsMHgwMCwweGY5LDB4NDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweDk1YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMiwweGNmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHg5NWQwLCAwLCB7MHgwZCwweGYwLDB4MGIsMHgzYywweDIwLDB4Y2YsMHgwMCwweDNkLDB4MDAsMHgwZSwweGYwLDB4MDcsMHg5YywweDAxLDB4Y2YsMHgwMiB9fSwKLSB7MTYsIDB4OTVlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YzQsMHgwMywweDNjLDB4MDAsMHhjZiwweDAwLDB4MGYsMHhjMCwweDBlLDB4NDQsMHgwMywweDFmLDB4MDIgfX0sCi0gezE2LCAweDk1ZjAsIDAsIHsweGNjLDB4MDAsMHgzZiwweDgwLDB4MmMsMHg3MCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyZSwweGMwLDB4MGQsMHhiMCwweDAyLDB4MmMsMHgwMCwweGFiLDB4MDAsMHgwNiB9fSwKLSB7MTYsIDB4OTYxMCwgMCwgezB4MjAsMHgwOCwweGIwLDB4MDMsMHhmYywweDAwLDB4YWIsMHgwMCwweDJlLDB4YzAsMHgwZiwweDgwLDB4MDYsMHhiYywweDAwLDB4YWIgfX0sCi0gezE2LCAweDk2MjAsIDAsIHsweDA0LDB4M2EsMHhmMCwweDBjLDB4ODgsMHgwMiwweDJjLDB4MDAsMHhjOSwweDgwLDB4M2EsMHg5MiwweDA4LDB4OTAsMHgwYSwweGEwIH19LAotIHsxNiwgMHg5NjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4OTY0MCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweDYwLDB4MGIsMHhiMCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDk2NTAsIDAsIHsweDZlLDB4YzAsMHgwYiwweGIwLDB4NDIsMHgyYywweDAwLDB4OWIsMHgwMCwweDRjLDB4ZTAsMHgwYSwweDkwLDB4MjIsMHgyYywweDAwIH19LAotIHsxNiwgMHg5NjYwLCAwLCB7MHg4YSwweGMyLDB4MmMsMHg0MCwweDA4LDB4YjAsMHg0MiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MywweDBkLDB4MmMsMHhjNiwweDA5LDB4MzEsMHgwMiwweDBkLDB4ODEsMHhhMywweDExLDB4MjQgfX0sCi0gezE2LCAweDk2ODAsIDAsIHsweDAwLDB4OGEsMHhiMSwweGUyLDB4NGMsMHg4MCwweGEzLDB4MDAsMHgyYywweGNjLDB4MGIsMHgwMiwweDAyLDB4OGMsMHg4MCwweGEzIH19LAotIHsxNiwgMHg5NjkwLCAwLCB7MHg0OCwweDA4LDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwZCwweDAwLDB4ODEsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OTZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4Y2IsMHgyMCwweDJmLDB4YzggfX0sCi0gezE2LCAweDk2YjAsIDAsIHsweDhkLDB4ZjYsMHgxMywweDJkLDB4YjAsMHg4ZiwweDAwLDB4MzYsMHg0MCwweDBmLDB4ZjAsMHgwMiwweGFkLDB4YTgsMHg4ZiwweDEwIH19LAotIHsxNiwgMHg5NmMwLCAwLCB7MHgzZiwweGNhLDB4MGIsMHg4MCwweDkyLDB4MmMsMHgxMCwweGRiLDB4NDAsMHgzZiwweGMwLDB4MGUsMHgwMCwweDAzLDB4MmQsMHgwNCB9fSwKLSB7MTYsIDB4OTZkMCwgMCwgezB4YzgsMHgwMiwweDNlLDB4NDAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2ZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzgsMHgwZSwweGYxLDB4MDMsMHhlYywweDg0LDB4ZmYsMHgyMCwweDM3IH19LAotIHsxNiwgMHg5NmYwLCAwLCB7MHgwMCwweDBkLDB4YjIsMHgwMywweGJjLDB4YTAsMHhmZiwweDAwLDB4M2UsMHhjOSwweDBlLDB4ODAsMHgwMywweGZkLDB4MTEsMHhmZiB9fSwKLSB7MTYsIDB4OTcwMCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGUsMHhjMCwweDAzLDB4ZmMsMHg4MCwweGVkLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfX0sCi0gezE2LCAweDk3MTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHg5MCwweGNjLDB4OTIsMHgzYiwweGM4IH19LAotIHsxNiwgMHg5NzIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHg3MywweDEwLDB4ZmYsMHgyOCwweDM3LDB4Y2EsMHg0ZiwweGIyLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgyMCB9fSwKLSB7MTYsIDB4OTczMCwgMCwgezB4YjMsMHhjNCwweDBkLDB4NjgsMHg0MywweGZlLDB4MTQsMHhjYiwweDg0LDB4MzMsMHhlMCwweDBkLDB4NzgsMHgwMywweGJlLDB4MDAgfX0sCi0gezE2LCAweDk3NDAsIDAsIHsweGZmLDB4ODAsMHgzNywweGEwLDB4MGMsMHhmMywweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NzUwLCAwLCB7MHg4MCwweDAwLDB4ZmMsMHg0OCwweDgyLDB4MjEsMHgwMywweGY0LDB4MGYsMHhmNiwweDQyLDB4MjAsMHgwNCwweDhhLDB4NjAsMHgyYiB9fSwKLSB7MTYsIDB4OTc2MCwgMCwgezB4ZGEsMHgwYiwweGY5LDB4MDIsMHgzZiwweDA0LDB4OGYsMHg1MiwweDIzLDB4ZDUsMHg0ZCwweDg4LDB4MDIsMHhhZSwweDAwLDB4ZGIgfX0sCi0gezE2LCAweDk3NzAsIDAsIHsweDgwLDB4MzYsMHhjMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDQsMHhiOCwweDAwLDB4MjIsMHg2MCwweDBkLDB4NzQsMHgwMywweGUwIH19LAotIHsxNiwgMHg5NzgwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4YTAsMHg4MCwweDAxLDB4MDgsMHhjMCB9fSwKLSB7MTYsIDB4OTc5MCwgMCwgezB4NGIsMHgzMCwweDgyLDB4NDIsMHg5MCwweGEzLDB4MDgsMHgyYywweGM4LDB4MWEsMHgzMCwweDIyLDB4OGQsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweDk3YTAsIDAsIHsweDI0LDB4YzgsMHgwOSwweGEwLDB4MTIsMHgwYywweDA0LDB4YWIsMHgwMCwweDYyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg5N2IwLCAwLCB7MHhiMywweDAwLDB4MjgsMHg4MCwweDA4LDB4MzYsMHgwNiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTdjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4OCwweDA4LDB4MjIsMHhjMCwweDBhLDB4MzAsMHgxYSwweDAwLDB4MTEsMHg4MiwweDAwLDB4MGEgfX0sCi0gezE2LCAweDk3ZDAsIDAsIHsweGMwLDB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MDksMHg5MSwweDAyLDB4ZWMsMHgyMCwweGJiIH19LAotIHsxNiwgMHg5N2UwLCAwLCB7MHgyOCwweDY2LDB4YzAsMHgwOCwweDgwLDB4MDIsMHg2MCwweDAwLDB4YjgsMHgwMCwweDJhLDB4NDAsMHg4MSwweGIwLDB4MDYsMHhmOCB9fSwKLSB7MTYsIDB4OTdmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4YzgsMHgwNCwweDNhLDB4YzAgfX0sCi0gezE2LCAweDk4MDAsIDAsIHsweDg5LDB4YjAsMHgwMywweDY4LDB4MDAsMHhlOSwweGMxLDB4MWUsMHhjMSwweDBlLDB4MzAsMHgwMywweGVjLDB4MDAsMHhkYiwweDAwIH19LAotIHsxNiwgMHg5ODEwLCAwLCB7MHgzNiwweGMxLDB4MGQsMHgwMCwweDIzLDB4MGUsMHgwMCwweGViLDB4ODAsMHgzMiwweGM4LDB4Y2QsMHgzMCwweDMyLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4OTgyMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4ODAsMHgwYywweGIwLDB4MDYsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4MzAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4N2MsMHgwMCwweDNmLDB4YzAsMHgwYiwweGIwLDB4NDMsMHhmZCwweDAwLDB4YmUsMHhjNCwweDM3IH19LAotIHsxNiwgMHg5ODQwLCAwLCB7MHhjMCwweDFmLDB4ZjAsMHgwMywweDVjLDB4MDAsMHhmZiwweDAxLDB4M2IsMHhjMCwweDBlLDB4YzgsMHgwMywweGJmLDB4MjAsMHhkZiB9fSwKLSB7MTYsIDB4OTg1MCwgMCwgezB4MDAsMHgzZiwweGQwLDB4MGYsMHhjMCwweDEzLDB4YjAsMHgwMCwweDdjLDB4MDAsMHhiNywweDQwLDB4MGYsMHhmMCwweDFiLDB4YjAgfX0sCi0gezE2LCAweDk4NjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwYywweGQ4LDB4NDEsMHgzMiwweGMwIH19LAotIHsxNiwgMHg5ODcwLCAwLCB7MHgwZSwweGIwLDB4MDcsMHhhOCwweDAxLDB4NjksMHg0MCwweGIyLDB4YzAsMHg4ZCwweGIwLDB4YTMsMHhlYywweDA4LDB4ZjMsMHgwMCB9fSwKLSB7MTYsIDB4OTg4MCwgMCwgezB4MzIsMHhjMCwweDBmLDB4ODAsMHgwMywweGVkLDB4MDAsMHhmYiwweDQ4LDB4M2EsMHhjMCwweDBkLDB4YjAsMHg4MywweDJjLDB4MDAgfX0sCi0gezE2LCAweDk4OTAsIDAsIHsweGZiLDB4MjAsMHgzZSwweDgwLDB4MGYsMHg3MCwweDIzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MDgsMHhmMCwweDA2LDB4MmMsMHgxMCwweDg4LDB4NTEsMHgzNyB9fSwKLSB7MTYsIDB4OThiMCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MDcsMHg3ZCwweDYwLDB4OGYsMHgwMiwweDM3LDB4YzAsMHgwYiwweDhjLDB4MDAsMHgyZCwweDAwLDB4YjMgfX0sCi0gezE2LCAweDk4YzAsIDAsIHsweDAwLDB4MzgsMHhjMCwweDA4LDB4ODAsMHg4MiwweDIwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHg1MCwweDBiLDB4ZjAsMHgwMCwweDMyIH19LAotIHsxNiwgMHg5OGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5OCwweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4OThlMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4ODQsMHgwNCwweGEzLDB4MDAsMHgwMCwweGMwLDB4NjgsMHgzOSwweDA2LDB4MGMsMHgxMCwweDkzLDB4MjAgfX0sCi0gezE2LCAweDk4ZjAsIDAsIHsweDIyLDB4YzAsMHg5YiwweDAxLDB4YTAsMHg4ZiwweDE0LDB4MzMsMHgxNCwweDI4LDB4YzAsMHgwOSwweDNjLDB4MDIsMHgwYywweDAxIH19LAotIHsxNiwgMHg5OTAwLCAwLCB7MHg5MywweDQwLDB4MmMsMHg4OCwweDBiLDB4MzAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTkxMCwgMCwgezB4NjAsMHgwMSwweDFlLDB4MTAsMHg4NywweDgwLDB4MjksMHhlMCwweDA4LDB4NzgsMHgwMiwweDNlLDB4MDAsMHg4MywweDkwLDB4MjQgfX0sCi0gezE2LCAweDk5MjAsIDAsIHsweGUwLDB4MDgsMHg3OCwweDEwLDB4Y2UsMHgwNCwweDA3LDB4OTEsMHgyNSwweGUwLDB4ODMsMHhjOSwweDAyLDB4MWUsMHgwNCwweGI3IH19LAotIHsxNiwgMHg5OTMwLCAwLCB7MHg4NCwweDJiLDB4YTQsMHgwOCwweDQ4LDB4NDIsMHgxMiwweGNjLDB4YjQsMHg4MCwweDJkLDB4NjQsMHgwYiwweDc4LDB4MDIsMHgxOSB9fSwKLSB7MTYsIDB4OTk0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgyYywweDAwLDB4ZDAsMHgxMCwweDI4LDB4YzggfX0sCi0gezE2LCAweDk5NTAsIDAsIHsweDBlLDB4M2IsMHgwMiwweDg0LDB4MDAsMHhlMywweDQwLDB4MzAsMHhjOCwweDBjLDB4MzgsMHg2MiwweDhjLDB4MDAsMHg1MywweDAwIH19LAotIHsxNiwgMHg5OTYwLCAwLCB7MHgzMCwweGM0LDB4MWYsMHgwMCwweDIzLDB4OGMsMHgzYywweGYzLDB4ODAsMHgxOCwweGMwLDB4MGQsMHgzMCwweDAzLDB4MGUsMHg4MCB9fSwKLSB7MTYsIDB4OTk3MCwgMCwgezB4ZDMsMHgxMCwweDNjLDB4ODAsMHgwZiwweDMwLDB4MDMsMHg5MiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5ODAsIDAsIHsweDQwLDB4MWQsMHhiZCwweDAwLDB4ZjksMHgxMiwweGI0LDB4YzAsMHgwNywweGIwLDB4MDMsMHhjYywweDAwLDB4NGEsMHgwMCwweDc3IH19LAotIHsxNiwgMHg5OTkwLCAwLCB7MHhjMCwweDBlLDB4NzEsMHg0MywweDZjLDB4MDAsMHhmMywweDAwLDB4M2YsMHhkMCwweDFmLDB4ZDAsMHg1MywweGFjLDB4NjgsMHhmYiB9fSwKLSB7MTYsIDB4OTlhMCwgMCwgezB4MTgsMHgzZCwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZjAsMHg1MCwweGZjLDB4MDQsMHgzZiwweDQwLDB4MGYsMHhmNCwweDAzLDB4OTAgfX0sCi0gezE2LCAweDk5YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHg0MCwweGY4LDB4MDQsMHgzZSwweGQyIH19LAotIHsxNiwgMHg5OWMwLCAwLCB7MHgwZiwweGIzLDB4MTMsMHhlMCwweDEwLDB4ZjksMHgwMCwweGIyLDB4Y2MsMHgwZSwweGJhLDB4MDMsMHg2ZCwweDgwLDB4ZGIsMHgwMiB9fSwKLSB7MTYsIDB4OTlkMCwgMCwgezB4MzIsMHhkYywweDRmLDB4MDAsMHgwMywweDZjLDB4MDQsMHhmMywweDAyLDB4MzYsMHg0MCwweDBlLDB4YjAsMHgwMywweGNjLDB4MDAgfX0sCi0gezE2LCAweDk5ZTAsIDAsIHsweDRiLDB4MDAsMHgzYywweDgwLDB4MGMsMHhmMSwweDAzLDB4NjIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OWYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI0LDB4MDAsMHgyZCwweGM5LDB4MGIsMHg3MCwweDgyLDB4ZGMsMHgwMCwweGJjLDB4MDQsMHgyMSB9fSwKLSB7MTYsIDB4OWEwMCwgMCwgezB4YzQsMHg0YiwweDM3LDB4MDIsMHgwYywweGEwLDB4OGYsMHg3NCwweDIxLDB4YzAsMHgwYiwweDQwLDB4MDIsMHgxYywweDgxLDB4YjcgfX0sCi0gezE2LCAweDlhMTAsIDAsIHsweDIwLDB4MmIsMHhjMCwweDA4LDB4NDAsMHgwMiwweGQwLDB4MDIsMHg4NCwweDAwLDB4MmQsMHg0MCwweDBhLDB4ZjIsMHgwMiwweDEyIH19LAotIHsxNiwgMHg5YTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNCwweGMwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4OWEzMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZDIsMHgwMCwweGI1LDB4ODgsMHgyMSwweGU4LDB4MGEsMHg3OCwweDAyLDB4ZGUsMHg0MCwweDk3LDB4MDAgfX0sCi0gezE2LCAweDlhNDAsIDAsIHsweDIxLDB4ZTgsMHgwYiwweGNjLDB4NDYsMHg1ZSwweDI4LDB4YjcsMHhjNCwweDIxLDB4ZjAsMHgwYSwweDc4LDB4MDIsMHhmZSwweDA4IH19LAotIHsxNiwgMHg5YTUwLCAwLCB7MHg5NywweDg0LDB4MmQsMHhhMCwweDA4LDB4NzgsMHgwMiwweDcwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWE2MCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHhiMCwweGMwLDB4MmMsMHhjMCwweDliLDB4YjAsMHgwMiwweGNjLDB4MjAsMHhiMywweDYwLDB4MjIgfX0sCi0gezE2LCAweDlhNzAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzLDB4MDEsMHgyMCwweGMwLDB4MWIsMHgwNiwweDE2LDB4NGYsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5YTgwLCAwLCB7MHhhMCwweDJhLDB4ZjAsMHgwOCwweDAwLDB4MDIsMHhlMCwweDAwLDB4OTAsMHgwMCwweDJjLDB4NDAsMHgwYSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OWE5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDEwLDB4ZmUsMHhjMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDlhYTAsIDAsIHsweDBmLDB4YTAsMHgwMywweGY5LDB4MDgsMHhmZSwweDQwLDB4MjIsMHg4MCwweDBlLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkMiwweDAwIH19LAotIHsxNiwgMHg5YWIwLCAwLCB7MHgzMiwweDgwLDB4OGYsMHhlMCwweDAzLDB4NTgsMHgwMCwweGY2LDB4MDAsMHgzMywweGIwLDB4MGUsMHgyMCwweDAyLDB4ZTgsMHgwYyB9fSwKLSB7MTYsIDB4OWFjMCwgMCwgezB4ZDIsMHgwMiwweDNjLDB4ODAsMHgwYywweGEwLDB4MDMsMHg3YSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNlLDB4MDEsMHgwYiwweDgwLDB4MDMsMHhlMCwweDAwLDB4ZjAsMHg0MCwweDNlIH19LAotIHsxNiwgMHg5YWUwLCAwLCB7MHgwMCwweDU3LDB4ODAsMHgyMywweDAwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MzAsMHgzOCB9fSwKLSB7MTYsIDB4OWFmMCwgMCwgezB4MDAsMHgzYSwweDA4LDB4MGYsMHhjNCwweDAzLDB4ZjAsMHgwMCwweGVjLDB4MDAsMHgzZiwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDliMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDEsMHgzYywweDQ4IH19LAotIHsxNiwgMHg5YjEwLCAwLCB7MHg0YywweDkwLDB4MGIsMHgyNCwweDAxLDB4YzksMHhjMCwweDMyLDB4NDAsMHhhYywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZDksMHg0MCB9fSwKLSB7MTYsIDB4OWIyMCwgMCwgezB4MzAsMHg0MCwweDBkLDB4OWEsMHgwMywweDIyLDB4ODQsMHhjOCwweDE0LDB4MzIsMHg0MCwweDBlLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDliMzAsIDAsIHsweGM5LDB4MDAsMHg4MiwweDY4LDB4MmMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MDgsMHg5MCwweDIyLDB4MjQsMHgwMCwweDg5LDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OWI1MCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhlNywweDQwLDB4ODksMHg4MCwweDM2LDB4NDEsMHg4ZCwweDE4LDB4MDIsMHhhMCwweDI0LDB4YTggfX0sCi0gezE2LCAweDliNjAsIDAsIHsweDA0LDB4NjIsMHg0MCwweDA4LDB4OTQsMHg4MywweDI0LDB4MDAsMHg4OSwweDAxLDB4MjIsMHg3MiwweDA4LDB4OTAsMHgwYiwweDIwIH19LAotIHsxNiwgMHg5YjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MmEsMHg0MCB9fSwKLSB7MTYsIDB4OWI4MCwgMCwgezB4MjgsMHg5MCwweDEyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHgyMCwweDk5LDB4MDAgfX0sCi0gezE2LCAweDliOTAsIDAsIHsweDIyLDB4NDAsMHgxOCwweDkwLDB4MDYsMHgyMCwweDAxLDB4ODgsMHgwOCwweDYyLDB4NDAsMHgwYSwweDkwLDB4MDIsMHgzNCwweDEwIH19LAotIHsxNiwgMHg5YmEwLCAwLCB7MHg4ZCwweDgxLDB4MjMsMHg0MSwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWJiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDA0LDB4MmMsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDIsMHg4MywweDIwLDB4MjAgfX0sCi0gezE2LCAweDliYzAsIDAsIHsweDQ4LDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MCwweDgzLDB4NjAsMHgyNCwweDQ4LDB4MTksMHgzNCwweDYyLDB4YTUsMHgwNCwweGExIH19LAotIHsxNiwgMHg5YmQwLCAwLCB7MHgwMiwweDYwLDB4NDAsMHgwOCwweGQwLDB4MDIsMHg1NCwweDAwLDB4OGQsMHgwMCwweDI5LDB4NDAsMHgwOCwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4OWJlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNhLDB4ODAgfX0sCi0gezE2LCAweDliZjAsIDAsIHsweDBjLDB4ODUsMHgwMiwweDIxLDB4NDQsMHg4OCwweDUwLDB4MzIsMHgxNCwweDRjLDB4ODAsMHg0MywweGUwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHg5YzAwLCAwLCB7MHgyMiwweDE0LDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCwweGM4LDB4MDAsMHhhMiwweDAwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4OWMxMCwgMCwgezB4YzgsMHgwMCwweDMzLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQ0LDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDEwLDB4ZmYsMHgxMCwweDNlIH19LAotIHsxNiwgMHg5YzMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmOSwweDEwLDB4M2UsMHg0NCwweDBiLDB4ZjAsMHgxMywweGU1LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OWM0MCwgMCwgezB4NDAsMHgzZiwweDRhLDB4MmYsMHg5MiwweDhhLDB4YTQsMHhhMiwweGY5LDB4MjgsMHgzNiwweDQwLDB4MGYsMHg5MiwweDgzLDB4YTYgfX0sCi0gezE2LCAweDljNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4ZTYsMHhjMCwweGMxLDB4MDAsMHgzZiwweDY5IH19LAotIHsxNiwgMHg5YzYwLCAwLCB7MHgwYywweDlhLDB4NDMsMHg2YywweDAwLDB4ZmQsMHhhMCwweDNlLDB4NzgsMHgyYywweGQ4LDB4MDcsMHhkNiwweDAyLDB4ZDUsMHg5NiB9fSwKLSB7MTYsIDB4OWM3MCwgMCwgezB4MzIsMHg3OCwweDBkLDB4OTAsMHgwMywweDI3LDB4MDAsMHhmZCwweGEwLDB4MzUsMHg1MCwweDA2LDB4ZDQsMHgwMywweGU1LDB4MDAgfX0sCi0gezE2LCAweDljODAsIDAsIHsweGZkLDB4NDAsMHhiMywweDQwLDB4MGYsMHg5OCwweGEzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YzkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhjMiwweDg4LDB4ODgsMHgyZSwweDE0LDB4YTgsMHg4YSwweGMyLDB4MjIsMHhhMCwweGI4LDB4YzAsMHgyYyB9fSwKLSB7MTYsIDB4OWNhMCwgMCwgezB4MjQsMHg0OCwweDg0LDB4MDIsMHhlMSwweDAwLDB4OTgsMHhjNCwweDIwLDB4M2MsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4YjggfX0sCi0gezE2LCAweDljYjAsIDAsIHsweDA0LDB4MjIsMHgyMCwweDA4LDB4ODgsMHgwMywweGEyLDB4MDAsMHhiOCwweGEwLDB4MjIsMHgwMCwweDBiLDB4ODgsMHgwMiwweDBlIH19LAotIHsxNiwgMHg5Y2MwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhhMSwweDIwLDB4NmMsMHg0MCB9fSwKLSB7MTYsIDB4OWNkMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDQsMHgwNCwweGExLDB4NjgsMHgyYywweDQ4LDB4MDgsMHgxNCwweDAyLDB4YzUsMHgwMCwweDgxLDB4NjAgfX0sCi0gezE2LCAweDljZTAsIDAsIHsweDIwLDB4NDgsMHgxOSwweDkwLDB4MDIsMHg4NSwweDgxLDB4YjEsMHg0MCwweDI0LDB4NjgsMHgwYSwweDEyLDB4NDIsMHhjNCwweDgwIH19LAotIHsxNiwgMHg5Y2YwLCAwLCB7MHhiOSwweDIwLDB4MjAsMHg0MCwweDhiLDB4MTAsMHg4MiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MTAsMHhhOSwweDAwLDB4NmUsMHhjMCwweDBhLDB4MTAsMHgwMiwweDI0LDB4MTQsMHhiOSwweDAwLDB4MmUgfX0sCi0gezE2LCAweDlkMTAsIDAsIHsweDQwLDB4MDgsMHg5MCwweDEyLDB4ZTQsMHgwMCwweDk5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg4MCwweDA2LDB4YTAsMHg2MCwweGI5IH19LAotIHsxNiwgMHg5ZDIwLCAwLCB7MHgwOSwweDIyLDB4NjAsMHgwOCwweDkwLDB4MDIsMHhhNCwweDAwLDB4YjksMHgwMCwweDAyLDB4NDAsMHgwYiwweDEwLDB4MDYsMHgwNiB9fSwKLSB7MTYsIDB4OWQzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZTksMHg4MCwweDNlLDB4NDEgfX0sCi0gezE2LCAweDlkNDAsIDAsIHsweDBlLDB4OTAsMHgwMywweDY0LDB4MDAsMHhlOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhjOSwweDAwIH19LAotIHsxNiwgMHg5ZDUwLCAwLCB7MHgyMiwweDQxLDB4MGQsMHg4MCwweDAyLDB4YTMsMHgwNCwweGYxLDB4NDAsMHgzNiwweDQwLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OWQ2MCwgMCwgezB4ZjEsMHgwMCwweDEyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZDksMHgyMiwweDNlLDB4NDIsMHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4YjksMHhjNCwweDNjIH19LAotIHsxNiwgMHg5ZDgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4YWUsMHg0MCwweDBmLDB4ODAsMHg0YiwweDYyLDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OWQ5MCwgMCwgezB4MjAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDIsMHg3ZSwweDQxLDB4MGYsMHg5MCwweDEzLDB4Y2EgfX0sCi0gezE2LCAweDlkYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4ODAsMHgwMCwweGM4LDB4MDAsMHgzOCwweDAwIH19LAotIHsxNiwgMHg5ZGIwLCAwLCB7MHgwZiwweDgwLDB4MjAsMHhlMCwweDAwLDB4YTgsMHgyMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDcsMHhlMCwweDgwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4OWRjMCwgMCwgezB4MzgsMHgwMCwweDBkLDB4ODAsMHg4MywweDIxLDB4MTAsMHhmOCwweDYwLDB4MzIsMHgwMCwweDhlLDB4ODAsMHhiMywweDIwLDB4MDggfX0sCi0gezE2LCAweDlkZDAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZGUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweDhhLDB4MDAsMHgzMywweDkwLDB4NDMsMHhhMCwweDIyLDB4MjgsMHgwMCwweDhlLDB4ODAsMHg3NiB9fSwKLSB7MTYsIDB4OWRmMCwgMCwgezB4ODAsMHgwOCwweGUxLDB4MDMsMHgxOSwweDAwLDB4ODYsMHg4MCwweDIyLDB4ODAsMHgwZCwweDYwLDB4MDEsMHg3OCwweDAwLDB4YmUgfX0sCi0gezE2LCAweDllMDAsIDAsIHsweDAwLDB4MzYsMHg4MCwweDBjLDB4ZTQsMHgwMiwweGE4LDB4MTAsMHhiZSwweGEwLDB4MmYsMHg4MCwweDBkLDB4YTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHg5ZTEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgxMSwweDRjLDB4MDQsMHgwMywweDA0LDB4MmMsMHhkNCB9fSwKLSB7MTYsIDB4OWUyMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4NGMsMHgwMSwweGEzLDB4YzQsMHgyMCwweGMwLDB4MjgsMHgzNSwweDAyLDB4ODYsMHgwMCwweDgzLDB4ODAgfX0sCi0gezE2LCAweDllMzAsIDAsIHsweDI4LDB4YzAsMHgwOCwweDM4LDB4MDYsMHgwZSwweDk0LDB4MzAsMHhjMCwweGEyLDB4YzAsMHgwYiwweDNjLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg5ZTQwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0OCwweDA4LDB4MzAsMHgwMiwweDhhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWU1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MDQsMHg4ZiwweDgwLDB4MjEsMHhjMSwweDFiLDB4NzIsMHg0MiwweDFlLDB4YzAsMHg4MywweDg4LDB4MjEgfX0sCi0gezE2LCAweDllNjAsIDAsIHsweGMwLDB4MTgsMHgyOCwweDA2LDB4MTAsMHgyMSwweDg2LDB4MzgsMHgyMSwweGMwLDB4MTksMHhmNywweDAyLDB4NWQsMHhjMCwweGI0IH19LAotIHsxNiwgMHg5ZTcwLCAwLCB7MHg0MSwweDI3LDB4ZDAsMHgwOCwweDc4LDB4YzYsMHg5YywweDAwLDB4YjcsMHgwMCwweDJmLDB4NjAsMHgwOSwweDcyLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4OWU4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAyLDB4YzcsMHg4MCwweDJkLDB4YTAgfX0sCi0gezE2LCAweDllOTAsIDAsIHsweDBmLDB4M2UsMHgwMywweGZlLDB4ODAsMHhhNywweDgwLDB4YTEsMHhlMCwweDBjLDB4NzgsMHgwMiwweDk0LDB4MDAsMHg4NSwweGEwIH19LAotIHsxNiwgMHg5ZWEwLCAwLCB7MHgzOSwweGU0LDB4MGMsMHg3OCwweDEzLDB4MWUsMHg5MCwweGI1LDB4ODQsMHgzMSwweGUwLDB4MGYsMHhmOCwweDg3LDB4MWUsMHgwNCB9fSwKLSB7MTYsIDB4OWViMCwgMCwgezB4ZjcsMHg4MCwweDNkLDB4NjAsMHgwYywweDNiLDB4MDMsMHhhYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllYzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweGU0LDB4ZmIsMHg1NCwweDNlLDB4ODAsMHgwZiwweGI0LDB4MjMsMHhlYywweDMyLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5ZWQwLCAwLCB7MHhkOCwweDRmLDB4YTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHhjMCwweDBmLDB4MzAsMHgzMywweGVjLDB4MDQsMHhmMiB9fSwKLSB7MTYsIDB4OWVlMCwgMCwgezB4MDEsMHgzZSwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZmUsMHgxMCwweGZiLDB4NjgsMHgzYywweDQxLDB4MGYsMHhmMCwweDQzLDB4ODIgfX0sCi0gezE2LCAweDllZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGNmLDB4ZTQsMHgzZiwweGU0IH19LAotIHsxNiwgMHg5ZjAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHg3ZSwweDgwLDB4Y2YsMHg4MSwweDMzLDB4ZmEsMHgwZiwweGY4LDB4MDMsMHhmNiwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4OWYxMCwgMCwgezB4M2YsMHhlMiwweDBmLDB4NzksMHgwMywweDNlLDB4NDAsMHhmNCwweDgwLDB4MzMsMHg2MCwweDBjLDB4ZTgsMHgwMywweDNlLDB4MDAgfX0sCi0gezE2LCAweDlmMjAsIDAsIHsweGZmLDB4ODAsMHgzMywweDYwLDB4MGMsMHhmOCwweDgzLDB4NTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZjMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTAsMHgyZCwweGM0LDB4MDgsMHhiYSwweDAyLDB4M2MsMHhhMCwweDg3LDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4OWY0MCwgMCwgezB4YzAsMHgwZiwweDUyLDB4MDMsMHhkNCwweDAwLDB4YjYsMHgxMCwweDJkLDB4YzAsMHg4YiwweDczLDB4MDMsMHg1YywweDQwLDB4YjQgfX0sCi0gezE2LCAweDlmNTAsIDAsIHsweGIwLDB4MmIsMHg0OCwweDI4LDB4NDEsMHgwMiwweDBjLDB4MDAsMHhiZiwweDE4LDB4MzUsMHg0NiwweDI4LDB4NzIsMHg0MiwweDJhIH19LAotIHsxNiwgMHg5ZjYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHg4NywweDQxLDB4MmQsMHg0NCB9fSwKLSB7MTYsIDB4OWY3MCwgMCwgezB4MGEsMHg3MywweDAyLDB4OWMsMHhjNCwweDgxLDB4MDAsMHg2ZCwweGM4LDB4OGIsMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAgfX0sCi0gezE2LCAweDlmODAsIDAsIHsweDJkLDB4YzAsMHgwYiwweGYwLDB4NDYsMHg5YywweDU1LDB4YjQsMHgyMCwweDI1LDB4NDAsMHgxOCwweDYwLDB4ODIsMHgxYywweDAwIH19LAotIHsxNiwgMHg5ZjkwLCAwLCB7MHhiNywweDAwLDB4MjMsMHg0MCwweDA4LDB4NzAsMHg0NiwweDQ0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWZhMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg5MywweDAwLDB4MmMsMHg0MCwweDBiLDB4YjAsMHgwMiwweDBjLDB4ODIsMHg4MCwweGMwLDB4MjAgfX0sCi0gezE2LCAweDlmYjAsIDAsIHsweGMwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MWIsMHgzMCwweDAwLDB4Y2QsMHgwMSwweGIwIH19LAotIHsxNiwgMHg5ZmMwLCAwLCB7MHg0MCwweGFjLDB4NzgsMHg4OCwweDhjLDB4MDYsMHgwZCwweDYwLDB4YjMsMHg0YywweDI0LDB4MTIsMHgwOCwweDMwLDB4MGEsMHgxOCB9fSwKLSB7MTYsIDB4OWZkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhiYywweDAwLDB4YzcsMHgwMCwweDJlLDB4NDAgfX0sCi0gezE2LCAweDlmZTAsIDAsIHsweDBlLDB4ZjAsMHgyYSwweGJmLDB4MDAsMHhjOCwweGM4LDB4YmYsMHhjMCwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDQsMHhiZiwweDAwIH19LAotIHsxNiwgMHg5ZmYwLCAwLCB7MHgzZiwweGMwLDB4MGYsMHhiMiwweDBhLDB4YWMsMHgwMCwweGY4LDB4ODAsMHgzNCwweDQ5LDB4MGMsMHhiOSwweDBiLDB4M2YsMHgwMCB9fSwKLSB7MTYsIDB4YTAwMCwgMCwgezB4ZmIsMHhjMCwweDMwLDB4ZjAsMHgwYywweGYwLDB4MDMsMHg2ZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwMTAsIDAsIHsweDgwLDB4MDAsMHhjYywweDAwLDB4ZmIsMHg4MCwweDNlLDB4NDEsMHgyYywweGIwLDB4MTMsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhMDIwLCAwLCB7MHhjMSwweDBmLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwYiwweDZkLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4YTAzMCwgMCwgezB4MTAsMHgzYSwweDQwLDB4MGYsMHhiMCwweDAzLDB4ZWMsMHgxMCwweGZlLDB4NDAsMHgzZSwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTEgfX0sCi0gezE2LCAweGEwNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZWMsMHgwYywweGRmLDB4MDAsMHgzYiwweDgwIH19LAotIHsxNiwgMHhhMDUwLCAwLCB7MHgwZiwweGYwLDB4MGIsMHgzYywweDA4LDB4ZTcsMHgwOCwweDMzLDB4YzAsMHgwYiwweGQwLDB4MjMsMHg3NCwweDAwLDB4NTQsMHgwMCB9fSwKLSB7MTYsIDB4YTA2MCwgMCwgezB4MzMsMHhjMCwweDBmLDB4ZjAsMHg4MywweGJlLDB4MjAsMHhmZCwweDBjLDB4M2IsMHg2MCwweDJjLDB4ZTAsMHgwMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGEwNzAsIDAsIHsweGNmLDB4MTIsMHgzMywweDUwLDB4MGMsMHgzMCwweDAzLDB4ODAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwNCwweGFiLDB4MDAsMHgyMiwweGEwLDB4MGIsMHhiMCwweDA2LDB4MGMsMHgwMCwweGFiLDB4NDAsMHgzNiB9fSwKLSB7MTYsIDB4YTA5MCwgMCwgezB4YzAsMHgwYiwweGE4LDB4MDIsMHg2NiwweDAwLDB4YjgsMHgwMCwweDM2LDB4YzEsMHgwYiwweDM0LDB4NDMsMHhlZSwweDAwLDB4YjIgfX0sCi0gezE2LCAweGEwYTAsIDAsIHsweDAwLDB4MjIsMHg2MCwweDA4LDB4YjQsMHg4MiwweDhjLDB4MDQsMHg4YSwweDIxLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhMGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDAwLDB4MmEsMHgyMCB9fSwKLSB7MTYsIDB4YTBjMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweDg4LDB4YzUsMHgyMiwweGMwLDB4MGIsMHg4OCwweDgyLDB4ZTYsMHgwMSwweGJiLDB4MDggfX0sCi0gezE2LCAweGEwZDAsIDAsIHsweDIyLDB4YzAsMHgwYSwweGIyLDB4ODIsMHhhYywweDYwLDB4YjgsMHgwMiwweDRhLDB4YzQsMHgwOCwweGIxLDB4MDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhhMGUwLCAwLCB7MHg4MywweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTBmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjAsMHgwMSwweDBiLDB4MzIsMHgwNiwweDJjLDB4MDAsMHhhMCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGExMDAsIDAsIHsweGMwLDB4MDksMHgwNCwweDIyLDB4YzQsMHgwMCwweGIyLDB4MDAsMHgyNCwweGMxLDB4OGIsMHhiMCwweDAyLDB4NGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHhhMTEwLCAwLCB7MHgwMCwweDYyLDB4YzAsMHg0OCwweDMwLDB4MDIsMHhhYywweDEwLDB4ODIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YTEyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDA4LDB4ZGYsMHgyYSwweDNhLDB4MDAgfX0sCi0gezE2LCAweGExMzAsIDAsIHsweDBmLDB4ZjUsMHgxMiwweDNjLDB4MTAsMHhjOSwweDAwLDB4YTMsMHhjMCwweDBmLDB4ODAsMHg1MywweGVjLDB4MDEsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhMTQwLCAwLCB7MHgzMywweGMwLDB4MGUsMHhiMCwweDAzLDB4YWMsMHgwNCwweGY4LDB4NzAsMHgzYSwweGMwLDB4MGMsMHg2MCwweDQzLDB4MmMsMHg0MiB9fSwKLSB7MTYsIDB4YTE1MCwgMCwgezB4Y2QsMHgwMCwweGIyLDB4NDAsMHgyYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExNjAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmIsMHgwMSwweDNkLDB4MDAsMHgwZiwweGI0LDB4MTcsMHhmYywweDAwLDB4M2MsMHgwMCwweDNmIH19LAotIHsxNiwgMHhhMTcwLCAwLCB7MHhjMCwweDRmLDB4YzAsMHgwMywweDc0LDB4MDgsMHhmZSwweDAwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGZjLDB4MDgsMHhmOCB9fSwKLSB7MTYsIDB4YTE4MCwgMCwgezB4MzAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwNCwweGZjLDB4MDAsMHgzZCwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGExOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjQsMHg5MCwweGVmLDB4MDAsMHgzZiwweGQ4IH19LAotIHsxNiwgMHhhMWEwLCAwLCB7MHgwZSwweGYzLDB4MDMsMHgyYywweDAxLDB4ZDQsMHg4MCwweDM3LDB4Y2MsMHgwZCwweDg5LDB4NDMsMHgxMiwweDUwLDB4ZWMsMHgyYyB9fSwKLSB7MTYsIDB4YTFiMCwgMCwgezB4MzIsMHgwNSwweDBkLDB4YjAsMHg1MywweDNjLDB4ZDQsMHhjNSwweDk0LDB4N2YsMHhhMCwweDhmLDB4ZjAsMHg0MywweDMwLDB4MDAgfX0sCi0gezE2LCAweGExYzAsIDAsIHsweGRjLDB4MDAsMHgzMywweDAwLDB4MGMsMHg0OCwweDA3LDB4ZjAsMHgwMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMWQwLCAwLCB7MHg4MCwweDEwLDB4ZTYsMHg0MCwweDhiLDB4NzAsMHgyZiwweGRjLDB4MDgsMHhmNywweDAyLDB4MGMsMHg4MCwweDhhLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4YTFlMCwgMCwgezB4YzgsMHg0YSwweDIyLDB4MDIsMHhhMCwweDAwLDB4OGEsMHg0OCwweDIyLDB4NTgsMHg4OCwweGZkLDB4MDIsMHhhZCwweDAyLDB4YTkgfX0sCi0gezE2LCAweGExZjAsIDAsIHsweDIwLDB4MWUsMHhhMCwweDAzLDB4ODAsMHgwMiwweDJjLDB4MDQsMHg4YiwweDAwLDB4MjIsMHhjMCwweDRjLDB4ODgsMHgwNywweDYwIH19LAotIHsxNiwgMHhhMjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4MDAsMHgyMywweDJjLDB4MmMsMHhjOSB9fSwKLSB7MTYsIDB4YTIxMCwgMCwgezB4MDIsMHgzMCwweDAyLDB4MGMsMHg2OCwweGEwLDB4MjgsMHgyYywweGQwLDB4MDksMHgxMiwweDAyLDB4ODQsMHgwMCwweGEwLDB4MjEgfX0sCi0gezE2LCAweGEyMjAsIDAsIHsweDIwLDB4MTgsMHgxOSwweDMwLDB4MjIsMHg4MCwweGQwLDB4ODMsMHgwNiwweDBjLDB4YTAsMHgwYiwweGIwLDB4MDYsMHgwMCwweDEyIH19LAotIHsxNiwgMHhhMjMwLCAwLCB7MHhhMCwweDAwLDB4MjAsMHgwMCwweDI5LDB4MDAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTI0MCwgMCwgezB4YzAsMHgxMSwweGE4LDB4MzAsMHg4YiwweDAwLDB4MmUsMHhjMCwweDRhLDB4MzAsMHgwYSwweDJjLDB4MTQsMHhhMCwweDgwLDB4MGEgfX0sCi0gezE2LCAweGEyNTAsIDAsIHsweGMxLDB4MDgsMHg4OCwweDg2LDB4ODcsMHgwMCwweDgzLDB4MDAsMHgyMiwweDQ5LDB4MDgsMHhiMCwweDA2LDB4YTAsMHg0MCwweGFiIH19LAotIHsxNiwgMHhhMjYwLCAwLCB7MHgyMCwweDIyLDB4MjAsMHgwYiwweDgwLDB4MGEsMHgwYywweDA0LDB4YWIsMHgwMiwweDIyLDB4YzAsMHg4OCwweDgwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YTI3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZiwweDQwLDB4ZWIsMHgwNiwweDNlLDB4YzAgfX0sCi0gezE2LCAweGEyODAsIDAsIHsweDBlLDB4YjAsMHgwMywweDJjLDB4MDIsMHhmOSwweGEwLDB4M2UsMHhjMCwweDBkLDB4OGMsMHgwMywweGFhLDB4MTAsMHhlOSwweDQwIH19LAotIHsxNiwgMHhhMjkwLCAwLCB7MHhiMiwweDQ4LDB4MGQsMHhiMCwweDQzLDB4YWQsMHgwMCwweGNiLDB4ODYsMHgyZSwweDIwLDB4MGYsMHgzMCwweDAzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTJhMCwgMCwgezB4ZjksMHg4MCwweDMyLDB4YzAsMHgwZCwweDBjLDB4YzIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyYjAsIDAsIHsweGUwLDB4MDEsMHg5NCwweDAwLDB4ZmYsMHgwMCwweDNkLDB4YzAsMHgwZCwweGYwLDB4MDMsMHg3YywweDAwLDB4ZGYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhhMmMwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGYwLDB4MDAsMHhmZSwweDIwLDB4M2YsMHg0MCwweDBmLDB4NzAsMHgwMywweGZlLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YTJkMCwgMCwgezB4ODIsMHg3ZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjksMHgwNCwweGRlLDB4MjAsMHhiZCwweDAwLDB4MGYsMHhkOSwweDBiLDB4N2MgfX0sCi0gezE2LCAweGEyZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGNiLDB4MDAsMHgzZSwweGMwIH19LAotIHsxNiwgMHhhMmYwLCAwLCB7MHgyYywweGIwLDB4MGIsMHgyYywweDAwLDB4ZTgsMHg0MCwweDNlLDB4YzAsMHgwZiwweDk0LDB4MDcsMHgyOSwweDAwLDB4YzksMHg0MCB9fSwKLSB7MTYsIDB4YTMwMCwgMCwgezB4YjIsMHhjMCwweDBmLDB4YjAsMHgwMywweDAxLDB4MDIsMHhjYiwweDAwLDB4MzIsMHgwNCwweDRmLDB4ZjAsMHg0MywweDM0LDB4YzAgfX0sCi0gezE2LCAweGEzMTAsIDAsIHsweGI1LDB4MWEsMHgzZiwweGMxLDB4MGYsMHg4MCwweDkzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMzIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMCwweDhmLDB4MDAsMHgyZiwweGMwLDB4MDgsMHhmMCwweDAyLDB4M2MsMHgwNCwweGQ4LDB4MDAsMHgyYiB9fSwKLSB7MTYsIDB4YTMzMCwgMCwgezB4YzAsMHgwYywweDgwLDB4NDUsMHg2MCwweDAwLDB4N2IsMHg1OCwweDIyLDB4YzgsMHgwYiwweGZhLDB4MDEsMHg2MSwweDQwLDB4OGIgfX0sCi0gezE2LCAweGEzNDAsIDAsIHsweDAwLDB4MzIsMHgwNCwweDRiLDB4Y2UsMHgwMiwweDI4LDB4MDAsMHgzYSwweDQwLDB4MmUsMHgwNywweDBiLDB4OTAsMHgwMiwweDI2IH19LAotIHsxNiwgMHhhMzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4NGMsMHhjMCB9fSwKLSB7MTYsIDB4YTM2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ZWMsMHgxMCwweDkwLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4MCwweDA2LDB4YzAsMHgwNCwweDgzLDB4MDQgfX0sCi0gezE2LCAweGEzNzAsIDAsIHsweGEyLDB4ODksMHgxOSwweDMwLDB4MDYsMHhjYywweDAwLDB4ODMsMHgwMCwweDIwLDB4OTAsMHgwYiwweDMwLDB4YzIsMHg0OCwweDAwIH19LAotIHsxNiwgMHhhMzgwLCAwLCB7MHhiMiwweDQwLDB4MjQsMHgyMCwweDBiLDB4MDksMHgwMCwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTM5MCwgMCwgezB4MjAsMHgwMSwweDA2LDB4MDQsMHg4NywweGE0LDB4MmQsMHhlMCwweDA5LDB4MzgsMHgwMiwweGRlLDB4MDAsMHg5ZSwweDgxLDB4MjkgfX0sCi0gezE2LCAweGEzYTAsIDAsIHsweGUwLDB4MDgsMHg3OCwweDUyLDB4ZmEsMHhjMCwweDk2LDB4ODAsMHgwMSwweGEwLDB4OGIsMHgzYSwweDIyLDB4Y2UsMHg0MCwweDhmIH19LAotIHsxNiwgMHhhM2IwLCAwLCB7MHhiMCwweDI1LDB4YTAsMHgwYiwweDA4LDB4MDIsMHg1NiwweDA4LDB4YjUsMHg5MCwweDJkLDB4ZTQsMHg0YiwweGQ4LDB4MjIsMHgwYyB9fSwKLSB7MTYsIDB4YTNjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAyLDB4ODMsMHg4MCwweDJlLDB4ZTggfX0sCi0gezE2LCAweGEzZDAsIDAsIHsweDBiLDB4MzgsMHgxMywweGNlLDB4NDEsMHhkMywweDEwLDB4MjgsMHhjMCwweDBlLDB4M2EsMHgwMiwweGM2LDB4MDgsMHg0YiwweDQwIH19LAotIHsxNiwgMHhhM2UwLCAwLCB7MHgzMCwweDYwLDB4MGQsMHgzYiwweDI3LDB4Y2YsMHhjNCwweGMzLDB4YTAsMHgzMCwweDAwLDB4MGYsMHgzMCwweDQzLDB4NDgsMHg0MCB9fSwKLSB7MTYsIDB4YTNmMCwgMCwgezB4ZjIsMHgwMCwweDNjLDB4MDQsMHgwZiwweDAyLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0MDAsIDAsIHsweDQwLDB4MWQsMHhiOCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzQsMHgwZSwweGYxLDB4MDMsMHgzYywweDAwLDB4ZmYsMHgwMSwweDMzIH19LAotIHsxNiwgMHhhNDEwLCAwLCB7MHhjMCwweDRkLDB4YjEsMHgwNywweDdjLDB4OTAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDAzLDB4ZjEsMHgwMywweDcwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTQyMCwgMCwgezB4MTAsMHgzYiwweDAwLDB4MGYsMHhjMCwweDBiLDB4YjQsMHgwMCwweGZkLDB4MDAsMHgzZiwweGM0LDB4MGYsMHhkMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweGE0MzAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwNCwweGZiLDB4ODQsMHgzYSwweGMyIH19LAotIHsxNiwgMHhhNDQwLCAwLCB7MHg0YywweGI0LDB4OTMsMHgyYywweDA0LDB4ZTksMHgwMCwweDNhLDB4YzQsMHg4ZCwweDA4LDB4MDMsMHgyZSwweDAwLDB4Y2IsMHgwMSB9fSwKLSB7MTYsIDB4YTQ1MCwgMCwgezB4MzIsMHg4MCwweDhmLDB4YjIsMHg4MywweGVjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHgwMCwweDBmLDB4ZjksMHgwMywweDNjLDB4MTAgfX0sCi0gezE2LCAweGE0NjAsIDAsIHsweGRmLDB4ODEsMHhiMywweGUwLDB4OGMsMHhhMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNDcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwOCwweGI3LDB4MDQsMHgyNCwweGM4LDB4MWEsMHgzMCwweDRhLDB4MWQsMHgwMCwweGI3LDB4MDEsMHgyZCB9fSwKLSB7MTYsIDB4YTQ4MCwgMCwgezB4YzAsMHg4OCwweDcwLDB4MDYsMHgxYywweDAwLDB4ODIsMHgwMCwweDIxLDB4ODAsMHg0YiwweDc2LDB4MTIsMHhkYywweDAwLDB4ODcgfX0sCi0gezE2LCAweGE0OTAsIDAsIHsweDAwLDB4MjksMHg0MCwweDhiLDB4NDAsMHgwMiwweDEwLDB4MDAsMHhiYywweDAwLDB4MjAsMHgwMSwweDI4LDB4NzAsMHgwMywweGIyIH19LAotIHsxNiwgMHhhNGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MDAsMHhiMywweDkwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4YTRiMCwgMCwgezB4MDksMHg3OSwweDAyLDB4MWUsMHg4MCwweGE3LDB4ODAsMHgyYywweGU4LDB4MTksMHhmOCwweDEyLDB4NWUsMHgwMSwweDg3LDB4ODAgfX0sCi0gezE2LCAweGE0YzAsIDAsIHsweDI1LDB4ZTAsMHg0YiwweDc4LDB4MDYsMHhkMiwweDAwLDB4OTcsMHg4MCwweDIxLDB4NjIsMHgwYiwweDNhLDB4MDIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhhNGQwLCAwLCB7MHhiNywweDg2LDB4MjksMHhmMCwweDA4LDB4NjgsMHgwNiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTRlMCwgMCwgezB4NDgsMHgxNCwweGNmLDB4YzAsMHhiMywweDAwLDB4MjQsMHhjMCwweDhhLDB4MzAsMHgzMiwweDBjLDB4MDAsMHhiMywweDA4LDB4MmMgfX0sCi0gezE2LCAweGE0ZjAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDEyLDB4MGUsMHgyMCwweDgzLDB4MDAsMHgyNCwweGYxLDB4MGIsMHgzMCwweDA2LDB4Y2UsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhNTAwLCAwLCB7MHg5MCwweDI4LDB4NjAsMHgwYiwweDAwLDB4MmEsMHgyMSwweDgwLDB4YjAsMHgwOCwweDI4LDB4MDAsMHgwOCwweDM3LDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YTUxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZmEsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGE1MjAsIDAsIHsweDRkLDB4YTAsMHgwMywweDI4LDB4MDAsMHhlZSwweDQxLDB4M2UsMHg4MCwweDBkLDB4ZTAsMHgwMywweDc4LDB4MDAsMHg4ZSwweDQwIH19LAotIHsxNiwgMHhhNTMwLCAwLCB7MHgyNywweGE4LDB4MGIsMHhhMCwweDAzLDB4ZmIsMHgwMiwweGNhLDB4ODIsMHgzMywweGEwLDB4MGYsMHhhMCwweDEzLDB4MjksMHgwMCB9fSwKLSB7MTYsIDB4YTU0MCwgMCwgezB4ZmEsMHg0MCwweDNhLDB4ODAsMHgwYywweDZjLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1NTAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAwLDB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDA4LDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNTYwLCAwLCB7MHgwMCwweDhmLDB4ODAsMHgyMywweGEwLDB4NDIsMHhmOCwweDA5LDB4YmEsMHgxMCwweDRmLDB4ODAsMHgwMywweGUwLDB4NjAsMHhmOCB9fSwKLSB7MTYsIDB4YTU3MCwgMCwgezB4MDAsMHgzZSwweDIwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgyNywweDAwLDB4OGYsMHg4MCwweDAzLDB4OTIgfX0sCi0gezE2LCAweGE1ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTUsMHgwMCwweDg5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhhNTkwLCAwLCB7MHg2ZSwweDkwLDB4MDMsMHhhNCwweDA4LDB4YzksMHgwMCwweDNjLDB4NDAsMHgwZCwweDkwLDB4MDMsMHgyNCwweDEwLDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4YTVhMCwgMCwgezB4MzIsMHg0MiwweDBjLDB4OTAsMHgxMywweGM0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAgfX0sCi0gezE2LCAweGE1YjAsIDAsIHsweGM5LDB4MjAsMHgzZSwweDUyLDB4Y2YsMHg5MCwweDA5LDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNWMwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHgwMCwweDg5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweGQ5LDB4MDAsMHgzYSB9fSwKLSB7MTYsIDB4YTVkMCwgMCwgezB4NDEsMHgwOCwweDkwLDB4MDUsMHhhNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NDAsMHgwZCwweDkwLDB4MDIsMHhlNSwweDQ2LDB4ODkgfX0sCi0gezE2LCAweGE1ZTAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU1LDB4MDAsMHhhOSwweGM4LDB4MmUsMHg2MSwweDhiLDB4OTQsMHg0MiwweDIwIH19LAotIHsxNiwgMHhhNWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhhOSwweDAwLDB4NmMsMHg0MCB9fSwKLSB7MTYsIDB4YTYwMCwgMCwgezB4NDgsMHgxMCwweDIyLDB4ODQsMHgwMywweGE5LDB4MDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwNCwweGIxLDB4MDggfX0sCi0gezE2LCAweGE2MTAsIDAsIHsweDI4LDB4NDAsMHgxOCwweDk4LDB4MDIsMHhlNSwweDAwLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhmNCwweDIwIH19LAotIHsxNiwgMHhhNjIwLCAwLCB7MHg4ZCwweDAwLDB4MmYsMHg0MCwweDBiLDB4OTQsMHg0MiwweDg2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTYzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMSwweDI0LDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHhhMSwweDAwLDB4MjggfX0sCi0gezE2LCAweGE2NDAsIDAsIHsweDQ4LDB4MDgsMHgxMCwweDAyLDB4ODQsMHgwMCwweDkxLDB4MjAsMHgyMCwweDQ4LDB4MDksMHgxMiwweDAyLDB4YzQsMHg5NCwweDgxIH19LAotIHsxNiwgMHhhNjUwLCAwLCB7MHgwMCwweDJjLDB4NjEsMHgwYiwweDVhLDB4ODIsMHhkNCwweGEwLDB4YTUsMHgyOCwweDJkLDB4NGEsMHgwYiwweDkwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4YTY2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAyLDB4ZTgsMHg1MCwweDJlLDB4MTQgfX0sCi0gezE2LCAweGE2NzAsIDAsIHsweDBlLDB4ODUsMHgwMywweGExLDB4NDAsMHhhOCwweDUwLDB4M2UsMHgxNCwweDBkLDB4ODUsMHgwMSwweDgxLDB4NDAsMHhmOCwweDUyIH19LAotIHsxNiwgMHhhNjgwLCAwLCB7MHgzMiwweDk0LDB4MGMsMHg4MCwweDEzLDB4YzEsMHg0MiwweGMwLDB4NTEsMHgzZSwweDAwLDB4OGYsMHg4MiwweDAzLDB4ZTAsMHg4MCB9fSwKLSB7MTYsIDB4YTY5MCwgMCwgezB4YzgsMHgyMCwweDNmLDB4MDgsMHgwZiwweDgwLDB4MDMsMHhhZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2YTAsIDAsIHsweDk4LDB4MTksMHhmNCwweDUwLDB4ZDksMHgxMSwweDNlLDB4NDQsMHg4ZiwweDkxLDB4NDMsMHhlNCwweDQwLDB4ZGQsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhNmIwLCAwLCB7MHg0NCwweDRmLDB4ZDAsMHgyNywweGI0LDB4MDAsMHhmZCwweDEyLDB4M2YsMHg0NCwweDRmLDB4OTEsMHg0MywweGY0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4YTZjMCwgMCwgezB4MDAsMHgzZiwweDQxLDB4MGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHhkMCwweDAzLDB4NjYgfX0sCi0gezE2LCAweGE2ZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDExLDB4ZjYsMHg4MCwweGU5LDB4YzAsMHgzZSwweDc4IH19LAotIHsxNiwgMHhhNmUwLCAwLCB7MHg4ZiwweDliLDB4MDMsMHhhNywweDgwLDB4YzksMHg0MCwweDM2LDB4NzgsMHgwZiwweDEwLDB4MjMsMHhlNSwweDA0LDB4ZGQsMHhhNCB9fSwKLSB7MTYsIDB4YTZmMCwgMCwgezB4MzMsMHg2MiwweDBmLDB4ZGEsMHgwMywweGY2LDB4NjAsMHhjOSwweDEwLDB4MzMsMHg0MCwweDBlLDB4OTgsMHg5MywweGU2LDB4MzAgfX0sCi0gezE2LCAweGE3MDAsIDAsIHsweGM5LDB4YzksMHgzMiwweDc4LDB4OGMsMHhkMCwweDBiLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweDg4LDB4ZTIsMHgyZSwweDMwLDB4MGIsMHg4OCwweDQyLDB4MjMsMHg0MCwweGEwLDB4YTEsMHgyMiB9fSwKLSB7MTYsIDB4YTcyMCwgMCwgezB4MzgsMHgwYiwweDhhLDB4MDIsMHhlMiwweDgwLDB4YWEsMHhlMCwweDIyLDB4MzAsMHgwYiwweDgwLDB4MjMsMHhhYiwweDAyLDB4ODggfX0sCi0gezE2LCAweGE3MzAsIDAsIHsweGEwLDB4MmEsMHgwMCwweDBiLDB4OGMsMHgwMiwweGUzLDB4MDAsMHg4OCwweGUwLDB4MjMsMHgzOCwweDA4LDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhhNzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhhMSwweDQ0LDB4MjgsMHg1OCB9fSwKLSB7MTYsIDB4YTc1MCwgMCwgezB4NDMsMHgxNiwweDIyLDB4ODQsMHg4MSwweDgxLDB4MjAsMHgyYywweDU4LDB4NDksMHgxMCwweDgwLDB4YzQsMHg4MSwweDkxLDB4NDggfX0sCi0gezE2LCAweGE3NjAsIDAsIHsweDZjLDB4NGEsMHgwYiwweDE0LDB4MDIsMHg0NCwweDg0LDB4ODEsMHgwMSwweDYwLDB4NDAsMHgwYSwweDUyLDB4ODYsMHhkNCwweGEwIH19LAotIHsxNiwgMHhhNzcwLCAwLCB7MHg4NSwweDAwLDB4YTEsMHg1MCwweDY4LDB4OTAsMHgwNiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTc4MCwgMCwgezB4MTgsMHgwNSwweGE2LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA0LDB4MDAsMHhhOSwweDYwLDB4MjIgfX0sCi0gezE2LCAweGE3OTAsIDAsIHsweDQwLDB4MGIsMHg5NSwweDAyLDB4ZTQsMHgxMCwweGIxLDB4MDAsMHg0ZSwweDQwLDB4MGIsMHg5MCwweDY2LDB4YWMsMHg4MCwweDg5IH19LAotIHsxNiwgMHhhN2EwLCAwLCB7MHgwMCwweDJhLDB4NjAsMHgwYiwweDkwLDB4NTIsMHhmNCwweDAwLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YTdiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDIwLDB4ZTksMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGE3YzAsIDAsIHsweDBmLDB4OTAsMHgwMywweGE0LDB4MTAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBmLDB4OTQsMHgwMSwweGU1LDB4MjAsMHhkOSwweDQwIH19LAotIHsxNiwgMHhhN2QwLCAwLCB7MHhiYSwweDY4LDB4OGYsMHg5MCwweDA3LDB4ZTYsMHgwMCwweGM5LDB4MTAsMHgzMiwweDYyLDB4MGUsMHg5MCwweDAyLDB4ZTQsMHgxOCB9fSwKLSB7MTYsIDB4YTdlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3ZjAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwNCwweDNlLDB4NDAsMHgwYiwweDkwLDB4MDMsMHg2NCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhODAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAyLDB4NzIsMHg2OCwweDBmLDB4OTAsMHgwMywweGU2LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTgxMCwgMCwgezB4MDEsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzQsMHgwMiwweGY5LDB4MDQsMHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4MWEgfX0sCi0gezE2LCAweGE4MjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4ODAsMHgwMiwweGM4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhhODMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHg0MCwweDM2LDB4MDAsMHgwZiwweDg0LDB4MDMsMHhhMCwweDAwLDB4ZDgsMHg1MCB9fSwKLSB7MTYsIDB4YTg0MCwgMCwgezB4YjIsMHgxMCwweDhjLDB4ODEsMHgwMywweGMxLDB4MjAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4YzAsMHgxMywweGYwLDB4MDQgfX0sCi0gezE2LCAweGE4NTAsIDAsIHsweDRjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhODYwLCAwLCB7MHgyOCwweDE1LDB4MmEsMHgwMCwweDhhLDB4MDQsMHgyMiwweDgxLDB4MjgsMHhhMCwweDEyLDB4MjgsMHgwMCwweDhhLDB4MDEsMHgzNiB9fSwKLSB7MTYsIDB4YTg3MCwgMCwgezB4ODAsMHgwYiwweGEwLDB4MTAsMHgyOCwweDEwLDB4Y2UsMHgwMSwweDIzLDB4ODEsMHgwYywweGE4LDB4MTIsMHhmYiwweDAwLDB4OGEgfX0sCi0gezE2LCAweGE4ODAsIDAsIHsweDAxLDB4M2IsMHg4MCwweDgzLDB4YTAsMHg0MiwweGU4LDB4MTAsMHg4YSwweDAwLDB4MmYsMHg4MCwweDBiLDB4NjAsMHg0MiwweDBhIH19LAotIHsxNiwgMHhhODkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAwLDB4YTAsMHhjMCB9fSwKLSB7MTYsIDB4YThhMCwgMCwgezB4MTgsMHhiMCwweDAwLDB4Y2MsMHgwMCwweDliLDB4MDAsMHgyNCwweGMwLDB4MGIsMHgzMCwweDA2LDB4NmMsMHgwMCwweGEzLDB4MDggfX0sCi0gezE2LCAweGE4YjAsIDAsIHsweDI4LDB4YzgsMHgwOSwweDMwLDB4MDIsMHhjYywweDQzLDB4OGIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAyIH19LAotIHsxNiwgMHhhOGMwLCAwLCB7MHg4MywweDAxLDB4MmMsMHhjMCwweDRiLDB4MzAsMHgwMCwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YThkMCwgMCwgezB4YTAsMHgwMSwweDBjLDB4MjQsMHg4NywweDk0LDB4MjEsMHhlNCwweDE4LDB4MzEsMHgwMiwweGRjLDB4ODAsMHg5NywweDEwLDB4MjUgfX0sCi0gezE2LCAweGE4ZTAsIDAsIHsweGNkLDB4MGIsMHhmMiwweDAyLDB4N2MsMHgwMCwweGEwLDB4MDAsMHgyOCwweGUwLDB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3IH19LAotIHsxNiwgMHhhOGYwLCAwLCB7MHgzNCwweDI5LDB4NDAsMHgwOSwweDQwLDB4MDIsMHhkMCwweDA0LDB4ODQsMHgwNCwweDJkLDB4MDAsMHg0YiwweGQwLDB4MjIsMHg2OCB9fSwKLSB7MTYsIDB4YTkwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4Y2YsMHhhMCwweDcwLDB4ZTkgfX0sCi0gezE2LCAweGE5MTAsIDAsIHsweDE4LDB4N2IsMHgwMywweGZmLDB4NDAsMHg5NywweGEwLDB4MzUsMHhlOCwweDBmLDB4NzQsMHgwMiwweDVlLDB4MjAsMHhlNCwweDgwIH19LAotIHsxNiwgMHhhOTIwLCAwLCB7MHgzOSwweGEwLDB4MmQsMHg3OCwweDAzLDB4ZmUsMHgwMCwweGM3LDB4ODAsMHgzZCwweGUwLDB4NWYsMHg2OCwweDQzLDB4YzIsMHgwMCB9fSwKLSB7MTYsIDB4YTkzMCwgMCwgezB4YzQsMHg4NCwweDFkLDB4NjAsMHgwZiwweDc4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5NDAsIDAsIHsweDA4LDB4MGQsMHhhNCwweDAwLDB4M2IsMHgwMCwweDJlLDB4ZDgsMHgwZiwweGI0LDB4MDMsMHgyZCwweDhhLDB4ZWIsMHg2MiwweDNhIH19LAotIHsxNiwgMHhhOTUwLCAwLCB7MHhkMCwweDBmLDB4YjIsMHg4NywweDBjLDB4ZDAsMHhkOCwweDAwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHg0MywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTk2MCwgMCwgezB4MDgsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDQsMHgzZiwweDgwLDB4MGYsMHgwMCwweDJiLDB4ODIgfX0sCi0gezE2LCAweGE5NzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGZmLDB4YTAsMHgzZSwweGY0IH19LAotIHsxNiwgMHhhOTgwLCAwLCB7MHgwZSwweGI4LDB4MDMsMHhlZSwweDA4LDB4NGIsMHhmMCwweDdmLDB4ZjQsMHgwYywweGY5LDB4MjMsMHhlZSwweDQ4LDB4NzgsMHg5MCB9fSwKLSB7MTYsIDB4YTk5MCwgMCwgezB4MzIsMHhlNCwweDBjLDB4ZjksMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlNCwweDFjLDB4NzksMHgwMywweDJlLDB4NDAgfX0sCi0gezE2LCAweGE5YTAsIDAsIHsweGZmLDB4ODAsMHgzMywweGUwLDB4MmMsMHg3OCwweDA3LDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOWIwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMCwweGIzLDB4MDAsMHgwYywweGU1LDB4MGIsMHgzOCwweDAyLDB4ZmUsMHg4MCwweDhmLDB4ODAsMHg2MSB9fSwKLSB7MTYsIDB4YTljMCwgMCwgezB4YzQsMHgyOCwweDc4LDB4MDAsMHg0ZSwweDAwLDB4ZjQsMHg4NCwweDI1LDB4YTgsMHgwYywweDcwLDB4MDIsMHhjYywweDA0LDB4YjMgfX0sCi0gezE2LCAweGE5ZDAsIDAsIHsweDkwLDB4MjUsMHg0MCwweDBjLDB4NDEsMHg4MywweDUyLDB4NDAsMHhiNCwweDEwLDB4YTMsMHgwMCwweDBjLDB4NTIsMHgwMywweDZhIH19LAotIHsxNiwgMHhhOWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4MDAsMHhiNywweDIxLDB4NmQsMHhjOCB9fSwKLSB7MTYsIDB4YTlmMCwgMCwgezB4NGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweGE3LDB4MzEsMHgyOSwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MjggfX0sCi0gezE2LCAweGFhMDAsIDAsIHsweDI0LDB4ODAsMHgwOCwweDcwLDB4MDYsMHhkNCwweDIwLDB4YjcsMHgwMSwweDJkLDB4YzEsMHgwOCwweDYwLDB4MDIsMHg1MCwweDgwIH19LAotIHsxNiwgMHhhYTEwLCAwLCB7MHhiNCwweDA4LDB4MjEsMHg2MiwweDA5LDB4NzQsMHgwNiwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWEyMCwgMCwgezB4MjAsMHgxNCwweGM3LDB4MDQsMHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4YjAsMHgwMiwweGNjLDB4MDAsMHhhMywweDAyLDB4NjAgfX0sCi0gezE2LCAweGFhMzAsIDAsIHsweGMwLDB4MDgsMHgzOCwweDAyLDB4NGUsMHg0NCwweGEwLDB4YzAsMHgyNCwweDkxLDB4MDgsMHgzMCwweDAyLDB4YzAsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhYTQwLCAwLCB7MHgwMCwweDI0LDB4NjAsMHgwOCwweDFjLDB4MDIsMHg0YywweDg4LDB4YjMsMHhjMCwweDIwLDB4YTAsMHgwOCwweDAwLDB4MGEsMHg4OCB9fSwKLSB7MTYsIDB4YWE1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGFhNjAsIDAsIHsweDRmLDB4ZjAsMHgxMywweGZjLDB4MDgsMHhlNywweDhhLDB4M2YsMHhjMCwweDBjLDB4ZjUsMHhjMiwweGZlLDB4MTAsMHhiYiwweGMwIH19LAotIHsxNiwgMHhhYTcwLCAwLCB7MHgzMiwweGQ0LDB4MGMsMHgzMCwweDEzLDB4ZTMsMHgwNCwweGJmLDB4MDAsMHgyZSwweDYyLDB4MDgsMHhiOSwweDAyLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4YWE4MCwgMCwgezB4ZmIsMHgwMSwweDMyLDB4YTQsMHg0ZCwweDk0LDB4MDIsMHhhYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFhOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDYwLDB4ZmIsMHgwMCwweDFlLDB4YzAsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4NWIsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhYWEwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHg0MSwweGVjLDB4MDAsMHg3YiwweDQ1LDB4YmEsMHg0MCwweDJlLDB4YjAsMHgxNSwweGUwLDB4MDEsMHhmYiB9fSwKLSB7MTYsIDB4YWFiMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGUsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZjLDB4MjAsMHgzZiwweDUwLDB4OGYsMHg5MCwweDAxLDB4NjAgfX0sCi0gezE2LCAweGFhYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhhYWQwLCAwLCB7MHg4ZiwweGYwLDB4MDMsMHgxYywweDAyLDB4Y2YsMHgwMCwweDM2LDB4YzAsMHgwZCwweGYwLDB4MDMsMHg3YywweDAwLDB4N2YsMHgyYSB9fSwKLSB7MTYsIDB4YWFlMCwgMCwgezB4M2YsMHg4MCwweDBmLDB4ZjgsMHgxMywweDkwLDB4MjEsMHhjZiwweDAwLDB4M2YsMHg2MiwweDBjLDB4ZTAsMHgwMywweDMwLDB4MDAgfX0sCi0gezE2LCAweGFhZjAsIDAsIHsweGY4LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjAwLCAwLCB7MHg4MSwweDA0LDB4NjQsMHgxMSwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGRiLDB4MDQsMHgzMiB9fSwKLSB7MTYsIDB4YWIxMCwgMCwgezB4YzAsMHgwZSwweGIwLDB4MDIsMHhlYywweDAwLDB4YmIsMHg4NCwweDJlLDB4NDAsMHgwYiwweGI5LDB4NDIsMHgyMiwweDQyLDB4OGIgfX0sCi0gezE2LCAweGFiMjAsIDAsIHsweDAxLDB4MmMsMHg3MiwweDBhLDB4OTAsMHg0MiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMiwweDhmLDB4ODgsMHgwNiwweGUwIH19LAotIHsxNiwgMHhhYjMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDI0LDB4MDAsMHhiYiwweDAwLDB4NmUsMHhjMCB9fSwKLSB7MTYsIDB4YWI0MCwgMCwgezB4NDgsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyNiwweGMwLDB4MGEsMHhiMCwweDEyLDB4ZWMsMHgwMCwweGJiLDB4NDAgfX0sCi0gezE2LCAweGFiNTAsIDAsIHsweDJlLDB4YzgsMHgwYiwweGIwLDB4MTIsMHgyYywweDAwLDB4OGIsMHgwMCwweDJlLDB4NDgsMHgwYSwweDMwLDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhhYjYwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHg4MCwweDRiLDB4OTgsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWI3MCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMywweDAwLDB4NmMsMHhjMiwweDRiLDB4MzEsMHgwMiwweDBjLDB4NTAsMHg5YiwweDIwLDB4MjAgfX0sCi0gezE2LCAweGFiODAsIDAsIHsweGMwLDB4MGEsMHgzMiwweDEyLDB4Y2MsMHg4MCwweGIzLDB4MDAsMHg2YywweDBjLDB4MGIsMHgzMSwweDAyLDB4MGMsMHg0MiwweDgzIH19LAotIHsxNiwgMHhhYjkwLCAwLCB7MHgwOCwweDJlLDB4NDAsMHgwYSwweDAwLDB4MDIsMHgwMCwweDgwLDB4YjAsMHgwMCwweDJjLDB4NDEsMHgwYiwweDEwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YWJhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4YmIsMHg0MCwweDNmLDB4Y2MgfX0sCi0gezE2LCAweGFiYjAsIDAsIHsweDBlLDB4ZjAsMHg4MywweDNkLDB4YTAsMHhjZiwweDIwLDB4MzcsMHhjMCwweDBjLDB4ZjcsMHhjMywweGZkLDB4NDgsMHhmMywweDAwIH19LAotIHsxNiwgMHhhYmMwLCAwLCB7MHgzZSwweDg4LDB4MGYsMHhiNCwweDEzLDB4YTUsMHgwMCwweDhmLDB4MzAsMHgzZSwweDQwLDB4MGMsMHhhMCwweDAzLDB4NjAsMHg4MCB9fSwKLSB7MTYsIDB4YWJkMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDkwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiZTAsIDAsIHsweGEwLDB4MTksMHhmNCwweDAwLDB4ZmYsMHgyOSwweDNmLDB4YzksMHgwZiwweGYwLDB4MTMsMHhmYywweDk0LDB4ZWYsMHgxMiwweDNiIH19LAotIHsxNiwgMHhhYmYwLCAwLCB7MHhjMCwweDhlLDB4YjIsMHgwNywweGZkLDB4MDQsMHhmZiwweDEwLDB4M2YsMHgwYywweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YWMwMCwgMCwgezB4MjAsMHgzZCwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZmMsMHg0MCwweGZmLDB4MDQsMHgzZiwweGMwLDB4MGUsMHhjMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweGFjMTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhhMiwweGM3LDB4MjAsMHgzZiwweDI0IH19LAotIHsxNiwgMHhhYzIwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzYywweDgwLDB4Y2MsMHgwOSwweDMzLDB4ZDEsMHgwYywweGYxLDB4MjMsMHhmYywweDIwLDB4ZGYsMHgzNiB9fSwKLSB7MTYsIDB4YWMzMCwgMCwgezB4M2YsMHhjMCwweDBlLDB4NDgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4MzcsMHhlNCwweDBkLDB4NzgsMHgwMywweDExLDB4YTAgfX0sCi0gezE2LCAweGFjNDAsIDAsIHsweGNmLDB4MDAsMHgzNywweGM4LDB4MGMsMHhmMCwweDAzLDB4MzAsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzUwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHgwMCwweDhmLDB4ZDEsMHgyZSwweDA4LDB4MGQsMHhiNiwweDEyLDB4M2QsMHg0NSwweGY5LDB4NjQsMHgyNyB9fSwKLSB7MTYsIDB4YWM2MCwgMCwgezB4ZDAsMHg4OCwweGJhLDB4MTQsMHhjYywweDA0LDB4OGYsMHg0MCwweDIzLDB4ZjAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4YmIgfX0sCi0gezE2LCAweGFjNzAsIDAsIHsweDgwLDB4YWUsMHhjMCwweDA4LDB4YjgsMHgwYSwweDIxLDB4MDAsMHg4OCwweGQwLDB4MjIsMHgyMCwweDI4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhYzgwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDAwLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4YWM5MCwgMCwgezB4MGEsMHgzNCwweDgyLDB4OGMsMHhhMCwweGEwLDB4MDgsMHgyNCwweGQ4LDB4MDksMHgzMSwweDAyLDB4Y2MsMHgyMCwweGIzLDB4MzIgfX0sCi0gezE2LCAweGFjYTAsIDAsIHsweDI4LDB4ZDAsMHg0YSwweDgwLDB4MDIsMHhjYywweDBjLDB4YmIsMHgwMCwweDIyLDB4NDAsMHg4OSwweGIwLDB4MDIsMHg2MCwweDgwIH19LAotIHsxNiwgMHhhY2IwLCAwLCB7MHg5MywweDAwLDB4MjQsMHhkMCwweDBiLDB4MzAsMHgwMiwweGEyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWNjMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHg5YiwweDAwLDB4MmUsMHgyMCwweDA5LDB4YjAsMHg0YSwweDJjLDB4MDIsMHhhMCwweDAwLDB4MDYgfX0sCi0gezE2LCAweGFjZDAsIDAsIHsweGMwLDB4MDksMHhiMCwweDAwLDB4ZWMsMHgwMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGIsMHg4OCwweDAyLDB4NmMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhY2UwLCAwLCB7MHgyMCwweDJhLDB4ZTIsMHg0MSwweGI4LDB4MmEsMHg2MCwweDBhLDB4OTgsMHgwMCwweDI2LDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiOCB9fSwKLSB7MTYsIDB4YWNmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDA4LDB4ZGIsMHgwMiwweDNlLDB4MjAgfX0sCi0gezE2LCAweGFkMDAsIDAsIHsweDRjLDB4YjAsMHgwMywweDJjLDB4MDIsMHg4YiwweDIwLDB4MTIsMHhjMCwweDI5LDB4YjAsMHgxMiwweGVjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhhZDEwLCAwLCB7MHgzYSwweGMwLDB4MGUsMHg4OCwweDAzLDB4ZWQsMHgyMCwweGZiLDB4YzgsMHgzNCwweGYwLDB4MGQsMHhiYSwweDAzLDB4NDcsMHg2MCB9fSwKLSB7MTYsIDB4YWQyMCwgMCwgezB4YzksMHgwMCwweDM2LDB4NDAsMHgwZiwweGIwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkMzAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4ZWYsMHgwMCwweDBmLDB4MDAsMHgwZiwweDMwLDB4MDAsMHhmYywweDAwLDB4ZGYsMHg5MCwweGJiIH19LAotIHsxNiwgMHhhZDQwLCAwLCB7MHhjMCwweGNlLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhjYiwweDAwLDB4MTcsMHhjMCwweDBmLDB4YzAsMHgwMywweGJjLDB4ODQsMHhmZiB9fSwKLSB7MTYsIDB4YWQ1MCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGUsMHhkMCwweDYzLDB4YjgsMHgwMCwweGVhLDB4MDAsMHgzYSwweDgwLDB4MGMsMHgzMCwweDAzLDB4NzAgfX0sCi0gezE2LCAweGFkNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGZiLDB4MDIsMHgzMiwweDAwIH19LAotIHsxNiwgMHhhZDcwLCAwLCB7MHgwZiwweGIwLDB4NTMsMHgyYywweDAwLDB4ZmEsMHgwMCwweDMyLDB4YzAsMHg4ZiwweGIwLDB4MDcsMHgyYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4YWQ4MCwgMCwgezB4YjIsMHhjMCwweDBmLDB4ODAsMHgwNywweGFjLDB4ODAsMHhkYiwweDI0LDB4N2UsMHhkMCwweDBlLDB4YjAsMHgyMywweDc0LDB4MDQgfX0sCi0gezE2LCAweGFkOTAsIDAsIHsweGRkLDB4MDgsMHhiNSwweDQwLDB4MGMsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZGEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweGJmLDB4YzAsMHhhMCwweDAwLDB4MWIsMHhmMCwweDAyLDB4M2YsMHg2MCwweGVhLDB4NTAsMHgyMyB9fSwKLSB7MTYsIDB4YWRiMCwgMCwgezB4YzAsMHgwOCwweGZhLDB4MDcsMHhmYywweDAwLDB4ZGYsMHgwMCwweDYzLDB4YzAsMHg0OCwweDE4LDB4MDIsMHgyZCwweDAwLDB4YjMgfX0sCi0gezE2LCAweGFkYzAsIDAsIHsweDAwLDB4NmUsMHhjMCwweDBkLDB4M2EsMHgwMywweDI0LDB4MDAsMHg4MiwweDgwLDB4MzIsMHg4MCwweDBkLDB4ZjAsMHgwMywweDMyIH19LAotIHsxNiwgMHhhZGQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTQsMHhiMywweDU5LDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4YWRlMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MmUsMHgwNSwweGIwLDB4NDQsMHgyZSwweGMwLDB4MDksMHgzNCwweDgyLDB4ZWMsMHgwMCwweGFiLDB4MDQgfX0sCi0gezE2LCAweGFkZjAsIDAsIHsweDIwLDB4YzAsMHgwOSwweDIxLDB4YjIsMHg4ZSwweDA0LDB4OTMsMHhjMCwweDI0LDB4YzAsMHgwYSwweDE4LDB4MDYsMHg0YywweDAwIH19LAotIHsxNiwgMHhhZTAwLCAwLCB7MHg5MiwweDUwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWUxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4NjEsMHhlMCwweDBiLDB4NzgsMHgwYSwweDVlLDB4MDEsMHhiMSwweGEwLDB4MmQgfX0sCi0gezE2LCAweGFlMjAsIDAsIHsweGUwLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweDA3LDB4OTAsMHgyMSwweGUwLDB4MTgsMHhjOCwweDAyLDB4MWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhhZTMwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4YSwweGQ4LDB4MDIsMHgzZSwweGMwLDB4ODUsMHg4MCwweDIxLDB4MjAsMHgxOSwweDc4LDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4YWU0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZjMsMHg5NCwweDIwLDB4MTAgfX0sCi0gezE2LCAweGFlNTAsIDAsIHsweDRiLDB4MzAsMHgwNywweDBjLDB4MDAsMHhmMywweDAwLDB4M2UsMHhjOCwweDBmLDB4MzAsMHgwMywweGNjLDB4MDAsMHgyMywweDEwIH19LAotIHsxNiwgMHhhZTYwLCAwLCB7MHgwMCwweGNiLDB4MDUsMHgyMCwweDAyLDB4OGMsMHg2MCwweDkzLDB4MGEsMHgyZSwweGM0LDB4MGEsMHgwMSwweDA3LDB4NGMsMHg4MCB9fSwKLSB7MTYsIDB4YWU3MCwgMCwgezB4ZDIsMHgwMSwweDMwLDB4YzAsMHgyYywweDMwLDB4MGIsMHg1YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMSwweDBmLDB4NDAsMHgwZiwweGYwLDB4MTMsMHhiYywweDAwLDB4ZWYsMHgyNiwweDczIH19LAotIHsxNiwgMHhhZTkwLCAwLCB7MHhjMiwweDBjLDB4YjAsMHg4MywweGJjLDB4NDAsMHhmZiwweDE4LDB4M2QsMHhjMCwweDRhLDB4YzEsMHgwMywweGZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YWVhMCwgMCwgezB4MTIsMHgzZiwweGM0LDB4NGQsMHhjMSwweDBiLDB4ZmMsMHg4MSwweGZkLDB4MDAsMHgzZiwweDIwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGFlYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgyMCwweGNiLDB4NDgsMHgzZSwweDAwIH19LAotIHsxNiwgMHhhZWMwLCAwLCB7MHgwYywweGIwLDB4MDMsMHgyZCwweDIwLDB4ZTksMHg4MCwweGZhLDB4YzgsMHgwZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4ZGIsMHgyNCB9fSwKLSB7MTYsIDB4YWVkMCwgMCwgezB4NzYsMHhmMywweDhlLDB4ODAsMHgzMywweGVjLDB4NDQsMHhlYiwweDEwLDB4M2UsMHhjMCwweDBmLDB4OTAsMHgwMywweGU4LDB4MDQgfX0sCi0gezE2LCAweGFlZTAsIDAsIHsweGRjLDB4MDAsMHhiMywweDYxLDB4MGMsMHhiMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZWYwLCAwLCB7MHg0OCwweDExLDB4OGQsMHgwMCwweDg3LDB4MjAsMHgyZiwweDAxLDB4MjgsMHg3MCwweDAyLDB4MGMsMHg4NCwweDhkLDB4MDQsMHgzMSB9fSwKLSB7MTYsIDB4YWYwMCwgMCwgezB4Y2MsMHhjOSwweDcyLDB4MDIsMHhkZCwweDAwLDB4MzcsMHgzMywweDIxLDB4ZDgsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfX0sCi0gezE2LCAweGFmMTAsIDAsIHsweDIwLDB4M2QsMHhjMCwweDA5LDB4NTAsMHgyMiwweGYwLDB4MDAsMHg5NywweDAwLDB4MjEsMHg4MCwweDBhLDB4ZmMsMHgwMiwweDkyIH19LAotIHsxNiwgMHhhZjIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDFlLDB4ODIsMHg4NywweGIwLDB4MmQsMHgyMCB9fSwKLSB7MTYsIDB4YWYzMCwgMCwgezB4MDgsMHgzOSwweDAyLDB4MWUsMHg0MSwweGE3LDB4ODAsMHgyNCwweGUwLDB4MDksMHg3YSwweDMyLDB4OGUsMHg4MiwweDA3LDB4YTAgfX0sCi0gezE2LCAweGFmNDAsIDAsIHsweDI1LDB4ZTAsMHg4YiwweDQ4LDB4MDIsMHgxZSwweDAwLDB4YTcsMHhlMSwweDJkLDB4ZTAsMHg0YiwweDU4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhZjUwLCAwLCB7MHhhMCwweDgwLDB4MjQsMHg2MCwweDA4LDB4N2EsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWY2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDAwLDB4MmMsMHgwMCwweDA4LDB4MzAsMHgwMiwweDhjLDB4MDAsMHg5MywweDAwLDB4MjIgfX0sCi0gezE2LCAweGFmNzAsIDAsIHsweGMxLDB4MDksMHgzMCwweDQyLDB4Y2MsMHgwMCwweDgzLDB4MDAsMHg2MCwweGMwLDB4MDgsMHgxYSwweDAyLDB4Y2UsMHgwNCwweGIzIH19LAotIHsxNiwgMHhhZjgwLCAwLCB7MHhlMCwweDI4LDB4YTAsMHgwOSwweDFjLDB4ODIsMHg0YiwweDA4LDB4YTMsMHg4MCwweDI0LDB4YTAsMHgyYSwweDMwLDB4MDIsMHg5YSB9fSwKLSB7MTYsIDB4YWY5MCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDJmLDB4ODggfX0sCi0gezE2LCAweGFmYTAsIDAsIHsweDBjLDB4YTAsMHgxMywweDI4LDB4MDAsMHhlZSwweDAwLDB4MmUsMHg4MCwweDJkLDB4YTAsMHgwMywweGU4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhZmIwLCAwLCB7MHg3NiwweDgwLDB4MGUsMHhlOCwweDAzLDB4YmIsMHg4MCwweGVlLDB4NDAsMHgyZiwweGEyLDB4OGYsMHhlNiwweDAzLDB4ZWIsMHg4NiB9fSwKLSB7MTYsIDB4YWZjMCwgMCwgezB4ZmEsMHg4MCwweDM3LDB4ODIsMHgwYywweDIwLDB4MDcsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDFlLDB4MDAsMHgwZiwweDgwLDB4MGIsMHg2MSwweDAwLDB4ZTgsMHhjMCwweDNhIH19LAotIHsxNiwgMHhhZmUwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMywweGUwLDB4MDEsMHhmOCwweDAwLDB4N2UsMHgxMCwweDFlLDB4ODEsMHgwMywweGUwLDB4MDgsMHhmOCB9fSwKLSB7MTYsIDB4YWZmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4YzAsMHgyOCwweGRjLDB4NTAsMHgzYiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGIwMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQyIH19LAotIHsxNiwgMHhiMDEwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNiwweDAwLDB4YzksMHgwMSwweDNhLDB4NDAsMHgwZSwweDk0LDB4MDEsMHhlNCwweDEwLDB4ZjEsMHgwNCB9fSwKLSB7MTYsIDB4YjAyMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OWEsMHgyMywweDIwLDB4NjAsMHhmOCwweDA0LDB4MGEsMHg0MiwweDBlLDB4OTAsMHgxMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGIwMzAsIDAsIHsweGMxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMDQwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHgwOCwweGE5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjcsMHg4MiwweDg5LDB4MDAsMHgyNiB9fSwKLSB7MTYsIDB4YjA1MCwgMCwgezB4NDAsMHgwOCwweDljLDB4MDMsMHhhNCwweDEwLDB4YjksMHgwMCwweDM2LDB4NDAsMHg5YiwweDFjLDB4MWEsMHgyMywweDA0LDB4YjggfX0sCi0gezE2LCAweGIwNjAsIDAsIHsweDAwLDB4M2EsMHg0MCwweDBlLDB4MTAsMHgwMiwweDI0LDB4MDIsMHhjOSwweGEwLDB4YTIsMHg0MCwweDBiLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiMDcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4ODAsMHg4OSwweDA0LDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4YjA4MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODQsMHg4MSwweDk5LDB4NDAsMHgyZSwweDQwLDB4MWEsMHg5MCwweDA2LDB4ZTQsMHgwMSwweGI5LDB4MDAgfX0sCi0gezE2LCAweGIwOTAsIDAsIHsweGE2LDB4NDEsMHgxYiwweDkwLDB4ODIsMHgyMSwweDAwLDB4YjgsMHgxMCwweDJlLDB4NDAsMHgwYSwweDkyLDB4MGEsMHhhNCwweDAxIH19LAotIHsxNiwgMHhiMGEwLCAwLCB7MHg4ZiwweDIyLDB4MjMsMHg0MCwweDBiLDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjBiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhhMywweDIwLDB4MmMsMHg0MSwweDA5LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjQgfX0sCi0gezE2LCAweGIwYzAsIDAsIHsweDQ4LDB4MGEsMHgzNiwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHgwNCwweGM4LDB4NGIsMHgxNCwweDAyLDB4MDUsMHgwMCwweGIxIH19LAotIHsxNiwgMHhiMGQwLCAwLCB7MHgwNSwweDI4LDB4NTAsMHgwYSwweDkwLDB4MDIsMHgwNSwweDAyLDB4ODUsMHgwMCwweDIxLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YjBlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDZlLDB4MTQgfX0sCi0gezE2LCAweGIwZjAsIDAsIHsweDJjLDB4ODUsMHgwMiwweGExLDB4NDAsMHhjOCwweDUwLDB4M2EsMHgxNCwweDBlLDB4ODAsMHgwMiwweGUxLDB4NDAsMHhiMCwweDUwIH19LAotIHsxNiwgMHhiMTAwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHg4MCwweDAzLDB4MjAsMHgwMCwweGZhLDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4YTAsMHgwMiB9fSwKLSB7MTYsIDB4YjExMCwgMCwgezB4YzgsMHgwMCwweDEzLDB4MDAsMHgwZiwweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQ4LDB4ZjksMHgxNCwweDNmLDB4NDAsMHgwYywweDkxLDB4MDMsMHhlNCwweDQyLDB4ZmQsMHgxMCwweDM2IH19LAotIHsxNiwgMHhiMTMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgyMywweGE0LDB4NDgsMHhmOSwweDExLDB4MzgsMHg0NCwweDBmLDB4ZDAsMHgwMywweGU1LDB4MTQsMHgzOSB9fSwKLSB7MTYsIDB4YjE0MCwgMCwgezB4NDIsMHg3YiwweDQwLDB4OGUsMHhkMCwweDAxLDB4ZjUsMHgwMCwweGE5LDB4NDAsMHgzZSwweDUwLDB4MDcsMHg5NiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGIxNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZjYsMHg4MCwweGRkLDB4YWUsMHgzYSwweDUwIH19LAotIHsxNiwgMHhiMTYwLCAwLCB7MHgwZCwweDlhLDB4MGIsMHg3NiwweDgwLDB4Y2YsMHg4OCwweDMyLDB4NzAsMHgyZCwweGRhLDB4MDMsMHhhNywweDAxLDB4ZTksMHg5MiB9fSwKLSB7MTYsIDB4YjE3MCwgMCwgezB4MzcsMHg2OCwweDBkLDB4OTQsMHgwMywweGU3LDB4MDAsMHhlZCwweGEwLDB4M2EsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU3LDB4MDIgfX0sCi0gezE2LCAweGIxODAsIDAsIHsweGNkLDB4ODAsMHgzMywweDY4LDB4MGMsMHhkOCwweDgzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMTkwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyMCwweDIwLDB4MGMsMHg4YywweDAyLDB4MjMsMHgwMCwweDg4LDB4ZTAsMHgyMiB9fSwKLSB7MTYsIDB4YjFhMCwgMCwgezB4MzAsMHgwOCwweDg0LDB4MDIsMHhlMywweDAwLDB4YjgsMHhlMCwweDIyLDB4MTQsMHg4ZCwweDg4LDB4MDIsMHhlMywweDAwLDB4YjggfX0sCi0gezE2LCAweGIxYjAsIDAsIHsweDUwLDB4MmUsMHhhOCwweDhiLDB4ODAsMHgyMiwweGUzLDB4NDgsMHg4OCwweDUwLDB4MjIsMHgwMCwweDA4LDB4OGMsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiMWMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDAwLDB4MmEsMHg0OCB9fSwKLSB7MTYsIDB4YjFkMCwgMCwgezB4MDksMHgxNCwweDgyLDB4MDUsMHgyMCwweDgxLDB4MDgsMHgyMCwweDU4LDB4MDksMHgxMSwweDAyLDB4ODUsMHg4OCwweGIxLDB4NDAgfX0sCi0gezE2LCAweGIxZTAsIDAsIHsweGEwLDB4NDAsMHgwOCwweDEyLDB4MDIsMHhjNSwweDgwLDB4YTEsMHgwMCwweDI4LDB4NDAsMHgwYiwweDE4LDB4MDIsMHhjNCwweDg0IH19LAotIHsxNiwgMHhiMWYwLCAwLCB7MHhhMSwweDAwLDB4MjQsMHg1MCwweDA4LDB4MTAsMHg5MiwweDAzLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjIwMCwgMCwgezB4MTgsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDYsMHg4OSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGIyMTAsIDAsIHsweDQwLDB4MDksMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDIsMHgyMiwweDQxLDB4ODksMHhhMCwweDgyLDB4ZTAsMHhhMCwweGI5IH19LAotIHsxNiwgMHhiMjIwLCAwLCB7MHgyOCwweDJlLDB4NDQsMHgwYiwweGIwLDB4MDIsMHhlNCwweDAyLDB4YjksMHgwMCwweDI2LDB4NDAsMHgyOCwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4YjIzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZDksMHgwMCwweDM4LDB4NDAgfX0sCi0gezE2LCAweGIyNDAsIDAsIHsweDBkLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjOSwweGEwLDB4YTIsMHg0MCwweDhkLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhiMjUwLCAwLCB7MHgzNiwweDQwLDB4MGMsMHg4NCwweDEzLDB4ZTIsMHgwMCwweGU5LDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5YywweDAyLDB4ZTYsMHg4NCB9fSwKLSB7MTYsIDB4YjI2MCwgMCwgezB4ZTksMHgwMCwweGI2LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZTEsMHgwMCwweDNlLDB4NjgsMHgwZSwweDEwLDB4MDMsMHhhNCwweDAwLDB4ZjEsMHgyOCwweDNhIH19LAotIHsxNiwgMHhiMjgwLCAwLCB7MHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MiwweDBmLDB4ODAsMHgyMywweGUyLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjI5MCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MSwweDIzLDB4ZTQsMHg0MCwweGMxLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDBiLDB4Y2EgfX0sCi0gezE2LCAweGIyYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODAsMHgwMCwweGM4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiMmIwLCAwLCB7MHgwYywweDgwLDB4MDMsMHhhMCwweDIwLDB4YzgsMHg0MCwweDNlLDB4MDAsMHgwZSwweDgxLDB4NjMsMHg2MCwweDAwLDB4ZjAsMHgwNCB9fSwKLSB7MTYsIDB4YjJjMCwgMCwgezB4M2MsMHgwMSwweDBjLDB4ODQsMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHgwMywweGMxLDB4MDAgfX0sCi0gezE2LCAweGIyZDAsIDAsIHsweGQ4LDB4MTAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDIzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMmUwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHg2MCwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGEsMHhhMCwweDAyLDB4MzgsMHg4MCwweGJlLDB4MDAsMHgzYSB9fSwKLSB7MTYsIDB4YjJmMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHgwMCwweDIzLDB4OTgsMHgxOCwweGVjLDB4MDIsMHhmOCwweDIwLDB4YWUgfX0sCi0gezE2LCAweGIzMDAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDBiLDB4ZTQsMHg4MiwweGU4LDB4MDIsMHhjZSwweDQ0LDB4MjgsMHg4MCwweDBkLDB4YTAsMHgwYSwweDBhIH19LAotIHsxNiwgMHhiMzEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQwLDB4MDAsMHg4MiwweDA0LDB4YTAsMHhjMCB9fSwKLSB7MTYsIDB4YjMyMCwgMCwgezB4MDksMHgzMCwweDAyLDB4OGUsMHgwNCwweDgzLDB4NTAsMHg2YywweGMwLDB4MGEsMHgzMCwweDg2LDB4MGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGIzMzAsIDAsIHsweDI4LDB4MzAsMHgwYSwweDM2LDB4MTIsMHhjYywweDgwLDB4ODEsMHgwMCwweDI0LDB4YzAsMHgwYiwweDMyLDB4MDYsMHhjYywweDAwIH19LAotIHsxNiwgMHhiMzQwLCAwLCB7MHg4MCwweDg4LDB4NjQsMHg2MCwweDI4LDB4MTAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjM1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MTIsMHg4NCwweDQwLDB4MjEsMHhjOCwweDBhLDB4NzIsMHgwMiwweDEwLDB4MDAsMHhiNywweDAwLDB4MmQgfX0sCi0gezE2LCAweGIzNjAsIDAsIHsweGNjLDB4MDgsMHgzOCwweDEyLDB4MWMsMHgwMCwweGIzLDB4MzAsMHgyMCwweDAwLDB4MDgsMHg3MSwweDgyLDB4ZmUsMHgwMCwweGE0IH19LAotIHsxNiwgMHhiMzcwLCAwLCB7MHg4MCwweDIxLDB4YzgsMHgwYiwweDcwLDB4MDIsMHhkYywweDAxLDB4ODcsMHgwMCwweDJjLDB4NDIsMHgwOSwweDUxLDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4YjM4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4YzIsMHg4MCwweDMxLDB4ZjggfX0sCi0gezE2LCAweGIzOTAsIDAsIHsweDRjLDB4ZmMsMHgxMywweDkyLDB4MDksMHhjNywweDgwLDB4M2MsMHhlZCwweDFlLDB4NzgsMHgyNywweDFlLDB4MDAsMHhmNywweDhjIH19LAotIHsxNiwgMHhiM2EwLCAwLCB7MHg3OSwweDIwLDB4MDgsMHg3YSwweDAzLDB4ZGUsMHg4MSwweDg0LDB4ODAsMHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4ZmUsMHgyMCB9fSwKLSB7MTYsIDB4YjNiMCwgMCwgezB4YzUsMHg4MSwweDM1LDB4NjAsMHgyYywweDU4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzYzAsIDAsIHsweDA4LDB4MWQsMHg4MCwweDAwLDB4ZjgsMHgwNCwweDNlLDB4ZDAsMHgwZiwweGIwLDB4MTMsMHhlMCwweDAwLDB4ZmIsMHgwMiwweDNhIH19LAotIHsxNiwgMHhiM2QwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwYiwweGFjLDB4NDAsMHhmYiwweDAwLDB4M2EsMHgwMCwweDJmLDB4YjAsMHgwMywweGNjLDB4MDAsMHhmMCB9fSwKLSB7MTYsIDB4YjNlMCwgMCwgezB4MDAsMHgzYSwweGM0LDB4MGYsMHhiMCwweDAzLDB4ZmMsMHg0MSwweGYzLDB4MDAsMHgzYSwweDQwLDB4MGYsMHg1MCwweDkzLDB4YzIgfX0sCi0gezE2LCAweGIzZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNjLDB4ODEsMHgzZiwweGZjIH19LAotIHsxNiwgMHhiNDAwLCAwLCB7MHgxYywweGY4LDB4MDMsMHg3NiwweDQwLDB4ZWYsMHg5MiwweDNmLDB4ZTQsMHg4YywweGY4LDB4MDMsMHhiZiwweDEwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4YjQxMCwgMCwgezB4YjMsMHgyMCwweDBlLDB4ZjksMHgxMywweGZlLDB4MjQsMHhmZCwweDk0LDB4MzcsMHhlMCwweDFjLDB4ZjksMHgwMywweGVlLDB4MDAgfX0sCi0gezE2LCAweGI0MjAsIDAsIHsweGNkLDB4ODAsMHhiMywweGUwLDB4MGMsMHg1OCwweDAyLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNDMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHg0MCwweDgwLDB4MDAsMHgyZiwweGM0LDB4MDgsMHg3MiwweDAyLDB4ZGQsMHgwOCwweGQ3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YjQ0MCwgMCwgezB4Y2MsMHgwOCwweGRlLDB4MDMsMHg1YywweDAwLDB4YjcsMHgwNCwweDIxLDB4ODAsMHhjOCwweDcwLDB4ODMsMHhkYywweDAwLDB4YjQgfX0sCi0gezE2LCAweGI0NTAsIDAsIHsweGEwLDB4MmYsMHhjMCwweDBjLDB4NzAsMHgwMiwweGRlLDB4ODAsMHg4NywweDAwLDB4MjEsMHhjMiwweDBhLDB4NTEsMHg0MiwweDJhIH19LAotIHsxNiwgMHhiNDYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4NCwweDAwLDB4MmQsMHhjOCB9fSwKLSB7MTYsIDB4YjQ3MCwgMCwgezB4NDgsMHg3MCwweDAyLDB4NTQsMHgwYywweGE3LDB4MDAsMHgyYywweGMwLDB4ODksMHg3MiwweDAyLDB4NWMsMHgwMCwweGIzLDB4MTAgfX0sCi0gezE2LCAweGI0ODAsIDAsIHsweDIwLDB4MDAsMHgwYSwweDcwLDB4MDYsMHhkYywweDAwLDB4YjQsMHgyMCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDgwIH19LAotIHsxNiwgMHhiNDkwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4NTAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjRhMCwgMCwgezB4MjAsMHgxNCwweGMwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHhjMCwweDA4LDB4MzAsMHgwMiwweGM0LDB4MDgsMHhhMiwweDQyLDB4MmMgfX0sCi0gezE2LCAweGI0YjAsIDAsIHsweGMxLDB4MDksMHgyMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweDgwLDB4MDgsMHgzYywweDIyLDB4OGMsMHgyMCwweGIwIH19LAotIHsxNiwgMHhiNGMwLCAwLCB7MHgwOCwweDJlLDB4ZTAsMHgwOCwweDM4LDB4MTAsMHhjZiwweDBhLDB4OTMsMHg0MCwweGEwLDB4ZjAsMHgwYSwweDEwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YjRkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhOCwweDAwLDB4YzEsMHgwMCwweDNmLDB4YzAgfX0sCi0gezE2LCAweGI0ZTAsIDAsIHsweDJjLDB4ZjAsMHgwMywweDY4LDB4MDAsMHhhYSwweDAwLDB4M2YsMHhjMCwweDJkLDB4ODAsMHgwMywweDdjLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhiNGYwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHhiMCwweDEyLDB4ZWQsMHgyNCwweGZhLDB4MDgsMHgyNywweGM4LDB4MTAsMHhiOCwweGEyLDB4ZmYsMHg2MCB9fSwKLSB7MTYsIDB4YjUwMCwgMCwgezB4OTgsMHhhMCwweGEyLDB4ZTAsMHgwYywweDUwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1MTAsIDAsIHsweDgwLDB4MDAsMHhjOSwweDA2LDB4ZjgsMHg0MSwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHhlOSwweDEwLDB4NWEsMHgyMCwweDNlIH19LAotIHsxNiwgMHhiNTIwLCAwLCB7MHhjMCwweDBlLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmMywweDAwLDB4N2UsMHgwMSwweDBmLDB4YjAsMHg5MywweGVkLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YjUzMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwMCwweGUzLDB4MDgsMHgzYywweGMyLDB4MGYsMHhkMCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweGI1NDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjMsMHgwMiwweGNjLDB4MDAsMHgzYiwweGMyIH19LAotIHsxNiwgMHhiNTUwLCAwLCB7MHgwYywweGYwLDB4MjMsMHhhZSwweDQwLDB4ZGYsMHg4MSwweDM5LDB4YzAsMHgwNiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwNCB9fSwKLSB7MTYsIDB4YjU2MCwgMCwgezB4MzEsMHg0MSwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhjYywweGEwLDB4MzcsMHhjMiwweDBjLDB4ZjAsMHgwMywweDdjLDB4MDQgfX0sCi0gezE2LCAweGI1NzAsIDAsIHsweGNkLDB4MDAsMHgzMywweGYwLDB4MGMsMHhkMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNTgwLCAwLCB7MHg4MSwweDA0LDB4NjAsMHgwMCwweDg4LDB4ODAsMHgyMiwweGMwLDB4MGEsMHhiMCwweDAyLDB4ZTksMHgwMCwweGFiLDB4NDQsMHgyZSB9fSwKLSB7MTYsIDB4YjU5MCwgMCwgezB4YzAsMHgwOCwweDg4LDB4MDIsMHhlYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NzAsMHgwYSwweGI0LDB4MDIsMHhjYywweDAwLDB4YTAgfX0sCi0gezE2LCAweGI1YTAsIDAsIHsweDIwLDB4MjIsMHhjMCwweDBmLDB4YmMsMHgwMiwweGNjLDB4MGEsMHg4YiwweDgwLDB4YTIsMHhjMCwweDBkLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiNWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIwLDB4MDAsMHg4OSwweDgwLDB4MmEsMHhjMCB9fSwKLSB7MTYsIDB4YjVjMCwgMCwgezB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwNiwweDg4LDB4NjAsMHgyZSwweGMwLDB4MGEsMHg5OCwweDA2LDB4ZWMsMHgwMSwweGJiLDB4MDAgfX0sCi0gezE2LCAweGI1ZDAsIDAsIHsweDIyLDB4MzEsMHgwMiwweGIyLDB4MDIsMHhlYywweGEwLDB4OGEsMHgwMCwweDI2LDB4YzAsMHg0OCwweGE4LDB4MDIsMHhlYywweDA0IH19LAotIHsxNiwgMHhiNWUwLCAwLCB7MHhhOSwweDgwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjVmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHg0MiwweGNjLDB4MDAsMHg4MCwweDAxLDB4MmMgfX0sCi0gezE2LCAweGI2MDAsIDAsIHsweGMwLDB4MWEsMHgxMiwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAsMHgyMCwweDAwLDB4NGEsMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEwIH19LAotIHsxNiwgMHhiNjEwLCAwLCB7MHgwMCwweDA4LDB4YzAsMHgwYiwweDIwLDB4MDYsMHhlYywweGEwLDB4YTMsMHgwMCwweGEwLDB4NDAsMHgyOSwweDEwLDB4MDAsMHgwMiB9fSwKLSB7MTYsIDB4YjYyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4YzgsMHg1MCwweDNiLDB4YzAgfX0sCi0gezE2LCAweGI2MzAsIDAsIHsweDBjLDB4YjAsMHgwMywweGFjLDB4MDAsMHhjOSwweDAwLDB4M2IsMHhjMCwweDBlLDB4OTIsMHg4MywweGZjLDB4MDAsMHhiZiwweDAwIH19LAotIHsxNiwgMHhiNjQwLCAwLCB7MHgxMiwweDAwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCwweDg4LDB4MjYsMHgxNiwweGMwLDB4MGMsMHg4MCwweDE3LDB4NWMsMHg4MCB9fSwKLSB7MTYsIDB4YjY1MCwgMCwgezB4ZTksMHgwMSwweDMyLDB4NDAsMHgyYywweGQwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2NjAsIDAsIHsweGEwLDB4MWQsMHhkMCwweDAwLDB4ZmMsMHgyMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiNjcwLCAwLCB7MHhjMCwweDBkLDB4ODAsMHgwMywweGZjLDB4MDgsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4YjY4MCwgMCwgezB4NDAsMHgzNywweGMwLDB4MGUsMHhlMCwweDIxLDB4ZmMsMHgwOCwweGRmLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGI2OTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhjMCwweGZmLDB4MjEsMHg3MSwweDI0IH19LAotIHsxNiwgMHhiNmEwLCAwLCB7MHgwZiwweGYxLDB4ODMsMHhmMiwweDQwLDB4ZmYsMHgwMCwweDM3LDB4YzQsMHg5ZiwweGYyLDB4NDcsMHgzZCwweDA0LDB4YzcsMHgyMCB9fSwKLSB7MTYsIDB4YjZiMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4NzgsMHgyMywweGZlLDB4NDAsMHhlOCwweDEwLDB4MjcsMHhjNCwweDBmLDB4ZjIsMHgxMywweDNjLDB4ODQgfX0sCi0gezE2LCAweGI2YzAsIDAsIHsweGM0LDB4ODEsMHgzMywweDIwLDB4NGMsMHhmMCwweDIzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNmQwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHg0MCwweGJmLDB4NTQsMHg2MiwweGM4LDB4MGIsMHhmNiwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ZDAsMHgyMiB9fSwKLSB7MTYsIDB4YjZlMCwgMCwgezB4ZjAsMHgxZiwweGY5LDB4MTIsMHgzZCwweDgwLDB4OWYsMHg4MSwweDJiLDB4ZTAsMHgwYSwweGI4LDB4MTIsMHhlOCwweDAwLDB4OGYgfX0sCi0gezE2LCAweGI2ZjAsIDAsIHsweDA0LDB4MjIsMHhkMCwweDA4LDB4YjMsMHg4YSwweGJmLDB4NDIsMHg4YiwweDgyLDB4MjIsMHhlMCwweDI4LDB4OGMsMHgwMiwweDIwIH19LAotIHsxNiwgMHhiNzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDI4LDB4MjgsMHgwOCB9fSwKLSB7MTYsIDB4YjcxMCwgMCwgezB4MGIsMHgzMCwweDA2LDB4ODAsMHg4MCwweGIzLDB4MDIsMHgyNCwweGQxLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweDkzLDB4MTAgfX0sCi0gezE2LCAweGI3MjAsIDAsIHsweDIwLDB4Y2UsMHg4YiwweDMwLDB4MDIsMHhjYywweDg0LDB4YTEsMHgyMSwweDJjLDB4Y2MsMHgwYSwweDMwLDB4MGEsMHg0YywweDAwIH19LAotIHsxNiwgMHhiNzMwLCAwLCB7MHg5MywweDAwLDB4MjgsMHhjMCwweDA4LDB4M2MsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjc0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHhiYiwweDAyLDB4NmEsMHhlMCwweDBiLDB4YjAsMHgwMiwweGUxLDB4MDgsMHhiYiwweDA0LDB4MmEgfX0sCi0gezE2LCAweGI3NTAsIDAsIHsweGMwLDB4MGEsMHhiMCwweDEyLDB4OGMsMHgwMCwweDliLDB4MDAsMHgyYSwweGMwLDB4MGIsMHhiMSwweDA2LDB4YzgsMHg4MCwweDhiIH19LAotIHsxNiwgMHhiNzYwLCAwLCB7MHg4MiwweDZhLDB4YzEsMHgwYSwweDMwLDB4MDIsMHhhYywweDE4LDB4ODgsMHgxMCwweDJhLDB4NDgsMHgwOCwweDgwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4Yjc3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwMCwweGFhLDB4MzAgfX0sCi0gezE2LCAweGI3ODAsIDAsIHsweDBmLDB4YjAsMHgwMywweGE4LDB4MDAsMHhmMywweDAxLDB4YjYsMHhjMSwweDBiLDB4YjAsMHgwMiwweGFjLDB4MDgsMHg0YiwweDAwIH19LAotIHsxNiwgMHhiNzkwLCAwLCB7MHhiMiwweGMwLDB4MGYsMHhiOCwweDAyLDB4ZWMsMHgxMCwweGE5LDB4ODEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YjdhMCwgMCwgezB4Y2IsMHhhMCwweDE4LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3YjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDA4LDB4ZjcsMHgwMCwweDM3LDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmZCwweDAwLDB4ZmYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhiN2MwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgwNywweDdjLDB4MDAsMHhlNywweDAwLDB4M2UsMHhjMCwweDBhLDB4ZjAsMHgwMywweGZlLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4YjdkMCwgMCwgezB4MDAsMHgzNiwweGMwLDB4MGMsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4ODAsMHgzNywweGUwLDB4MGYsMHhhMCwweDAzLDB4YjggfX0sCi0gezE2LCAweGI3ZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGRiLDB4MDAsMHgzNiwweDAwIH19LAotIHsxNiwgMHhiN2YwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHg2OSwweDAwLDB4ZGIsMHgwOSwweDNhLDB4YzAsMHgxZiwweDMwLDB4MjMsMHhlYywweDA4LDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4YjgwMCwgMCwgezB4MzQsMHhjMCwweDJmLDB4YjAsMHgwMywweGVjLDB4NDAsMHhlYiwweDQ4LDB4M2UsMHhjNCwweDRkLDB4YjAsMHg4YiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGI4MTAsIDAsIHsweGNiLDB4MDAsMHgzMiwweDkwLDB4MGYsMHgzMCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiODIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgyMiwweDAwLDB4NDgsMHhmMCwweDIyLDB4MmMsMHgwMCwweDhmLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4YjgzMCwgMCwgezB4ZTAsMHg4YiwweGY1LDB4MTAsMHgzYywweDAwLDB4OGYsMHg4MCwweDIzLDB4ZjAsMHg4MCwweDk4LDB4MDMsMHgyZCwweDQ0LDB4ZGIgfX0sCi0gezE2LCAweGI4NDAsIDAsIHsweDAwLDB4MjMsMHhkNCwweDA4LDB4ZjgsMHgwMiwweDNjLDB4MDAsMHg4MywweDAwLDB4MjIsMHhjMCwweDBiLDB4YTQsMHg4MiwweDMyIH19LAotIHsxNiwgMHhiODUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHg5MywweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4Yjg2MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4ODQsMHgwMCwweGIzLDB4MDEsMHgyOCwweGY2LDB4MDksMHgzNCwweDMyLDB4OGMsMHgwMSwweGIzLDB4ZDAgfX0sCi0gezE2LCAweGI4NzAsIDAsIHsweDI0LDB4ZTgsMHgwYSwweDMxLDB4MGEsMHg4NiwweDAwLDB4ODMsMHgwMCwweDJhLDB4ZTAsMHgwMCwweDMwLDB4MDIsMHg4YywweDAwIH19LAotIHsxNiwgMHhiODgwLCAwLCB7MHg4MywweDAwLDB4MjgsMHhjMCwweDg5LDB4MzgsMHhhMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjg5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg5NywweDk0LDB4MjMsMHhlMCwweDA5LDB4MzgsMHgwMiwweDMyLDB4MDAsMHg5NywweGExLDB4MjEgfX0sCi0gezE2LCAweGI4YTAsIDAsIHsweGU0LDB4MGIsMHg3OCwweDAyLDB4MWUsMHg0MCwweGI3LDB4YTAsMHgyNSwweGVjLDB4MDgsMHhmYywweDAyLDB4M2EsMHgwMCwweDkzIH19LAotIHsxNiwgMHhiOGIwLCAwLCB7MHhiOCwweDIxLDB4ZTAsMHgwOCwweDc4LDB4ODIsMHg5ZSwweDQwLDB4ODcsMHhjMCwweDI5LDB4YTAsMHgwYiwweDU4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YjhjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDAwLDB4ZGIsMHgwMCwweDM0LDB4MjAgfX0sCi0gezE2LCAweGI4ZDAsIDAsIHsweDBmLDB4M2EsMHgwMywweDhlLDB4MDAsMHhmMywweGIwLDB4MjgsMHhjNCwweDBiLDB4M2EsMHgwMywweGFlLDB4NDAsMHhmMywweGEwIH19LAotIHsxNiwgMHhiOGUwLCAwLCB7MHgzNCwweGVlLDB4MGYsMHgzMCwweDIzLDB4ODQsMHgwMCwweGUzLDB4ZjAsMHgzOCwweGMwLDB4MGMsMHhiMCwweDBiLDB4OGUsMHg0MiB9fSwKLSB7MTYsIDB4YjhmMCwgMCwgezB4YzMsMHgwMCwweDM4LDB4YzAsMHgwZiwweDMwLDB4NjMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5MDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZWIsMHg0MiwweDNhLDB4YzQsMHgxZSwweGIxLDB4MDcsMHg4OCwweGQxLDB4ZTMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiOTEwLCAwLCB7MHhjNSwweDhmLDB4ZjEsMHg2MywweGFjLDB4MTAsMHhjYiwweDUwLDB4M2IsMHhjMywweDBmLDB4ZDEsMHgwMywweGM4LDB4MDAsMHhiYiB9fSwKLSB7MTYsIDB4YjkyMCwgMCwgezB4MjAsMHgzYiwweGMwLDB4MmUsMHhmMSwweDAzLDB4MWMsMHgwMCwweGZmLDB4MDAsMHgzNywweGMwLDB4NGYsMHhkMSwweDAzLDB4OTAgfX0sCi0gezE2LCAweGI5MzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGZiLDB4NDQsMHhiMiwweGMwIH19LAotIHsxNiwgMHhiOTQwLCAwLCB7MHg0ZiwweGIzLDB4NDMsMHgyNCwweDAwLDB4ZGIsMHgxMCwweDM2LDB4YzAsMHg0YywweGJlLDB4MjIsMHg2ZCwweDIwLDB4Y2IsMHg1MCB9fSwKLSB7MTYsIDB4Yjk1MCwgMCwgezB4M2UsMHhjOSwweDRjLDB4YjAsMHgxMywweDI0LDB4MDAsMHhjZiwweDIwLDB4MzMsMHhjMCwweDNkLDB4ZjAsMHgyMywweDJjLDB4YzAgfX0sCi0gezE2LCAweGI5NjAsIDAsIHsweGQ4LDB4MDAsMHgzZSwweDQwLDB4OGYsMHgzMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwNCwweGI3LDB4NjAsMHgyMSwweGMxLDB4OGIsMHhmMCwweGEyLDB4MTQsMHgxMCwweDg3LDB4MDAsMHgwZiB9fSwKLSB7MTYsIDB4Yjk4MCwgMCwgezB4YzgsMHgwZCwweDcxLDB4MGEsMHgxZCwweDAwLDB4ODcsMHgwMCwweDJjLDB4Y2MsMHg0OCwweDcwLDB4MmEsMHg5YywweDAwLDB4ODcgfX0sCi0gezE2LCAweGI5OTAsIDAsIHsweDBjLDB4MjEsMHhjMCwweDBjLDB4NzIsMHgwMiwweDBjLDB4YTIsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhiOWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhiMywweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4YjliMCwgMCwgezB4MGIsMHg3YSwweDAyLDB4ZGUsMHgwMCwweGI3LDB4ODEsMHgwNSwweGU0LDB4MDgsMHg3OSwweDAyLDB4NWMsMHg4MCwweDg3LDB4YTAgfX0sCi0gezE2LCAweGI5YzAsIDAsIHsweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDYsMHhiNiwweDAwLDB4ODcsMHg4MCwweDIwLDB4ZTQsMHgwYSwweDdiLDB4MTIsMHgxZSwweDkwIH19LAotIHsxNiwgMHhiOWQwLCAwLCB7MHg5NywweDg4LDB4MmQsMHhlMCwweDBiLDB4NzgsMHgwZSwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjllMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjAsMHhkMCwweDBiLDB4YjAsMHgwMiwweDZlLDB4MzQsMHhhMywweDAwLDB4MmMgfX0sCi0gezE2LCAweGI5ZjAsIDAsIHsweGMxLDB4MDksMHgzMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweGMwLDB4NDgsMHgxMCwweDAyLDB4OGQsMHg4MCwweDgzIH19LAotIHsxNiwgMHhiYTAwLCAwLCB7MHhjMCwweDAwLDB4YzAsMHg4YSwweDMwLDB4MTIsMHgwYywweDAwLDB4ODAsMHgwMCwweDJjLDB4MTYsMHgwYiwweDM4LDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4YmExMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDMzLDB4ODggfX0sCi0gezE2LCAweGJhMjAsIDAsIHsweDBmLDB4YTAsMHgwMywweDc5LDB4OTAsMHhmYSwweDAxLDB4MzYsMHg4MCwweDFjLDB4YTAsMHgwMywweDY4LDB4MDAsMHhjYSwweDAwIH19LAotIHsxNiwgMHhiYTMwLCAwLCB7MHgzZSwweDgxLDB4MmMsMHhhMCwweDBiLDB4YjksMHgwYywweGNlLDB4ZTIsMHhiMiwweDgwLDB4OGUsMHhhMCwweDBiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4YmE0MCwgMCwgezB4ZGEsMHg4MCwweDNjLDB4YjAsMHgwZiwweGUwLDB4ODMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhhMCwweDAwLDB4YzgsMHgwMCwweDJlIH19LAotIHsxNiwgMHhiYTYwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgyMywweGEwLDB4MDAsMHhmMCwweDQwLDB4M2UsMHgxMCwweDBmLDB4ODQsMHgwMywweGUxLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YmE3MCwgMCwgezB4NDgsMHgzZSwweDEwLDB4MGMsMHg4MCwweDAzLDB4YzAsMHgxMCwweGY4LDB4ODAsMHgzZSwweDAwLDB4MGYsMHgwMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGJhODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzNiwweDQyIH19LAotIHsxNiwgMHhiYTkwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyNCwweDE4LDB4ZjksMHgxMCwweDNjLDB4NDgsMHg2OCwweDkyLDB4MTMsMHhlNCwweDAwLDB4YTksMHgxMSB9fSwKLSB7MTYsIDB4YmFhMCwgMCwgezB4YjIsMHg2MCwweDBlLDB4OTEsMHgwMywweDI2LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg2MCwweDBjLDB4MTAsMHgwMywweDI0LDB4MDggfX0sCi0gezE2LCAweGJhYjAsIDAsIHsweGM5LDB4MDAsMHgzZSwweDQwLDB4MGMsMHg5MCwweDIzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwOCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YmFkMCwgMCwgezB4NDIsMHg0OCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ODksMHg4MCwweDIyLDB4NzAsMHgwOCwweDE0LDB4MjIsMHhhNCwweDAyLDB4ODkgfX0sCi0gezE2LCAweGJhZTAsIDAsIHsweDQyLDB4MmEsMHg3MCwweDI4LDB4OTAsMHgwYSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgwMiwweGEwIH19LAotIHsxNiwgMHhiYWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg5OSwweDAwLDB4MjYsMHhjMCB9fSwKLSB7MTYsIDB4YmIwMCwgMCwgezB4MDMsMHg5MCwweDAyLDB4MjQsMHgwMSwweGE5LDB4MDAsMHgwZSwweDQwLDB4MGEsMHg5MCwweDQ2LDB4YzQsMHgwYSwweDg5LDB4MDAgfX0sCi0gezE2LCAweGJiMTAsIDAsIHsweDIwLDB4NDgsMHgwYSwweDkwLDB4MDIsMHgwNSwweDgwLDB4ODEsMHg0MSwweGEwLDB4NTgsMHg4OCwweDkwLDB4MDIsMHgyNCwweDA4IH19LAotIHsxNiwgMHhiYjIwLCAwLCB7MHg4ZCwweDgwLDB4MmYsMHhjMCwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmIzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0MCwweDBiLDB4MTIsMHgwMiwweDg0LDB4MDAsMHg4MSwweDI0LDB4MmMgfX0sCi0gezE2LCAweGJiNDAsIDAsIHsweDU4LDB4MGEsMHgzMiwweDIyLDB4YzUsMHg4NCwweGExLDB4MDAsMHgyMCwweDUwLDB4MDgsMHhiMCwweDAyLDB4ODUsMHgwOCwweDgxIH19LAotIHsxNiwgMHhiYjUwLCAwLCB7MHg0MCwweDIwLDB4NWEsMHgwOCwweDE2LDB4ODIsMHgwNCwweDAwLDB4YTUsMHgwMCwweDJkLDB4NDAsMHgwOCwweDEyLDB4ODIsMHg4MiB9fSwKLSB7MTYsIDB4YmI2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDM2LDB4MTQgfX0sCi0gezE2LCAweGJiNzAsIDAsIHsweDBmLDB4ODUsMHgyMywweDAxLDB4NDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4ODAsMHg0MywweGMwLDB4MDgsMHhjYSwweDAwIH19LAotIHsxNiwgMHhiYjgwLCAwLCB7MHgzMiwweDgwLDB4MGUsMHg4MCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MDAsMHgzMiwweDA4LDB4MmMsMHgwMiwweDAzLDB4MjAsMHgwOCB9fSwKLSB7MTYsIDB4YmI5MCwgMCwgezB4YzgsMHgwMCwweDNmLDB4MDAsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmLDB4NDAsMHgwZiwweDkxLDB4NDMsMHhmNCwweDA0LDB4ZjksMHgxMCwweDNlIH19LAotIHsxNiwgMHhiYmIwLCAwLCB7MHg0NCwweDBkLDB4MTEsMHgwMywweGU0LDB4NDQsMHg1OSwweDQwLDB4M2UsMHg1MCwweDRmLDB4NTAsMHg0MywweGQ0LDB4MDIsMHhmZCB9fSwKLSB7MTYsIDB4YmJjMCwgMCwgezB4NDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDBiLDB4ZTUsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGJiZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4NjYsMHg2MCwweGM5LDB4ZTAsMHgzMiwweDQ0IH19LAotIHsxNiwgMHhiYmUwLCAwLCB7MHgwZiwweDljLDB4MDMsMHhlNCwweDAwLDB4ZGQsMHg4NCwweDNmLDB4NjgsMHg4ZiwweGQ4LDB4NDIsMHhlNiwweGEwLDB4ZGQsMHhhNCB9fSwKLSB7MTYsIDB4YmJmMCwgMCwgezB4MzMsMHg2OCwweDBkLDB4NzAsMHgwMywweDI1LDB4MDAsMHhjOSwweGUwLDB4YjIsMHg2OCwweDBjLDB4OWEsMHhjMywweDI2LDB4MDAgfX0sCi0gezE2LCAweGJjMDAsIDAsIHsweDk5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwMCwweDg4LDB4ODAsMHhhYSwweDIwLDB4OGIsMHg4OCwweDAyLDB4ZTIsMHg4OCwweGI4LDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4YmMyMCwgMCwgezB4MDAsMHgwYiwweDg0LDB4MDIsMHhlMiwweGIwLDB4ODgsMHg1MCwweDIyLDB4MTQsMHgwOCwweDgwLDB4MDIsMHg4MiwweDgwLDB4ODggfX0sCi0gezE2LCAweGJjMzAsIDAsIHsweGUwLDB4YjYsMHgzYSwweDA4LDB4Y2UsMHhhMiwweDIxLDB4MDgsMHg4OCwweDAwLDB4MmUsMHgwMCwweDBiLDB4YzQsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiYzQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDYwLDB4NjgsMHg0OCB9fSwKLSB7MTYsIDB4YmM1MCwgMCwgezB4NWIsMHgxNiwweDAyLDB4YzQsMHgyMCwweGExLDB4NDAsMHg2YywweDUwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHgwMCwweGExLDB4MDAgfX0sCi0gezE2LCAweGJjNjAsIDAsIHsweDI0LDB4NDAsMHgwYiwweDkwLDB4MjIsMHgxNCwweDkwLDB4ODUsMHg0MiwweDIxLDB4NTAsMHg1YiwweDUwLDB4MWEsMHgxNSwweDAwIH19LAotIHsxNiwgMHhiYzcwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MCwweDBiLDB4NTEsMHgwYSwweDgyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmM4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4OSwweDAwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHg0NiwweGU0LDB4MDAsMHhiOSwweDAxLDB4MmUgfX0sCi0gezE2LCAweGJjOTAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDIwLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNiwweDQwLDB4MTgsMHhiOCwweDAyLDB4YTQsMHgwMiwweDhkIH19LAotIHsxNiwgMHhiY2EwLCAwLCB7MHgwOCwweDJmLDB4NDAsMHg4YiwweGQwLDB4MDIsMHgyNCwweDAwLDB4OGQsMHgyMCwweDJmLDB4NDgsMHgwYiwweGQwLDB4MDIsMHg4NiB9fSwKLSB7MTYsIDB4YmNiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGJjYzAsIDAsIHsweDBmLDB4OTAsMHgwMiwweGU0LDB4MTAsMHg0OSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhlOSwweDAxIH19LAotIHsxNiwgMHhiY2QwLCAwLCB7MHgzNiwweDQwLDB4MGYsMHgxOCwweDEzLDB4MjQsMHgxMCwweGM5LDB4ODIsMHgzMiwweDQwLDB4N2YsMHg5MCwweDIzLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YmNlMCwgMCwgezB4ZDksMHgyMCwweDNlLDB4NzIsMHgwZiwweDkwLDB4MDMsMHhhOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjZjAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAyLDB4ZjEsMHgwMSwweDE2LDB4NDAsMHg0ZiwweDkwLDB4MDMsMHhlNSwweDEwLDB4ZjksMHgwOCwweDJlIH19LAotIHsxNiwgMHhiZDAwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDAsMHhjOSwweDAxLDB4M2EsMHg0MCwweDFmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YmQxMCwgMCwgezB4MjAsMHgzNCwweDQwLDB4OGMsMHg5MCwweDAzLDB4YzQsMHgwOCwweGY5LDB4MDAsMHgzZSwweDYwLDB4MGYsMHgxMCwweDAzLDB4NGEgfX0sCi0gezE2LCAweGJkMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOCwweGY4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiZDMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4ZTgsMHgwMCwweDNlLDB4MDIsMHg0ZiwweDgwLDB4MTMsMHhlMCwweDAwLDB4ZDAsMHgwMCB9fSwKLSB7MTYsIDB4YmQ0MCwgMCwgezB4M2UsMHgwMCwweDBlLDB4ODEsMHgwMywweDMwLDB4MDAsMHhjYywweDQwLDB4MzMsMHgwMCwweDBjLDB4YzAsMHgwYiwweDIwLDB4MjAgfX0sCi0gezE2LCAweGJkNTAsIDAsIHsweGU4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHhjMCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZDYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJhLDB4MDAsMHgyMiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweGJlLDB4YzgsMHg2ZiB9fSwKLSB7MTYsIDB4YmQ3MCwgMCwgezB4ODAsMHgwYiwweGUxLDB4MjIsMHhhOCwweDAwLDB4OGUsMHgyMCwweDJmLDB4ODAsMHgwYiwweGUwLDB4MjMsMHg2OCwweDAwLDB4OGEgfX0sCi0gezE2LCAweGJkODAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDI5LDB4MDAsMHg4YSwweDAwLDB4MmUsMHhhOCwweDBiLDB4YTAsMHgwMCwweGNhIH19LAotIHsxNiwgMHhiZDkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4YmRhMCwgMCwgezB4MDksMHgzMCwweDAyLDB4MGMsMHgwMCwweGIzLDB4YzEsMHgyYywweGUwLDB4MGIsMHgzOCwweDU2LDB4MmMsMHgxMCwweDEzLDB4MDAgfX0sCi0gezE2LCAweGJkYjAsIDAsIHsweDJlLDB4YzAsMHgwYSwweDM4LDB4NmEsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIwLDB4MDAsMHgwOSwweDgwLDB4MjIsMHg0YywweDQyIH19LAotIHsxNiwgMHhiZGMwLCAwLCB7MHhhMywweDAwLDB4MmMsMHhlMCwweDBiLDB4MjQsMHg4MCwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmRkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDgsMHhiNywweDI0LDB4MmYsMHhlMCwweDA5LDB4MzksMHgwMiwweDFjLDB4MDEsMHhiNiwweDAwLDB4MmQgfX0sCi0gezE2LCAweGJkZTAsIDAsIHsweDkwLDB4MGIsMHg2MCwweDkyLDB4OGUsMHgwMCwweDg2LDB4ODIsMHgyZCwweGMyLDB4MGIsMHhmMCwweDAyLDB4NWMsMHgwNiwweDg3IH19LAotIHsxNiwgMHhiZGYwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgyOSwweDcwLDB4MDIsMHg1YywweDAwLDB4ODYsMHgwMCwweDJkLDB4YzAsMHgwYiwweDYwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YmUwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDQwLDB4ZjMsMHhlNCwweDNkLDB4ZTggfX0sCi0gezE2LCAweGJlMTAsIDAsIHsweDBkLDB4NzksMHgwYiwweDFlLDB4YzAsMHg2NywweDgwLDB4MmQsMHhlMCwweDBmLDB4NzAsMHg0MywweDFkLDB4ODAsMHhkNSwweDAwIH19LAotIHsxNiwgMHhiZTIwLCAwLCB7MHgzZCwweDYwLDB4MGUsMHg3OCwweDAzLDB4MWUsMHgwMCwweGNkLDB4ODAsMHgzMSwweGUwLDB4MGQsMHhjOCwweDAzLDB4NGUsMHgwMCB9fSwKLSB7MTYsIDB4YmUzMCwgMCwgezB4ZTUsMHg4MCwweDNkLDB4ZTAsMHgwZiwweDQ4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlNDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDgwLDB4ZmIsMHgwMCwweDcwLDB4YzAsMHg2ZSwweGI2LDB4MTMsMHhhZCwweDQwLDB4ZmEsMHgwMCwweDNlIH19LAotIHsxNiwgMHhiZTUwLCAwLCB7MHhjMCwweDBmLDB4MjAsMHg0MywweDJkLDB4MTgsMHg1OSwweDAwLDB4M2UsMHgwMCwweDAzLDB4YjAsMHgwYiwweGUwLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4YmU2MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGUsMHhiMCwweDEzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGJlNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg0MCwweGZmLDB4ODAsMHgzZiwweGU2IH19LAotIHsxNiwgMHhiZTgwLCAwLCB7MHgwZiwweGY4LDB4MjMsMHgyZSwweDA0LDB4ZmYsMHg5MCwweDNmLDB4ZTQsMHgwZCwweGJhLDB4MDMsMHhmZiwweDQwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4YmU5MCwgMCwgezB4MjIsMHhlMSwweDBjLDB4MzksMHg0MywweDMyLDB4MTAsMHhlYywweDkwLDB4MzMsMHgyMCwweDhlLDB4YzgsMHgwMywweGYyLDB4MDAgfX0sCi0gezE2LCAweGJlYTAsIDAsIHsweGRmLDB4ODAsMHgzZiwweDYwLDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZWIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI3LDB4OTAsMHgzYywweGUwLDB4MGIsMHgzYSwweDAzLDB4NGUsMHg4MCwweGYzLDB4YjEsMHgyZCB9fSwKLSB7MTYsIDB4YmVjMCwgMCwgezB4MDQsMHg0YywweDM4LDB4MjMsMHhhZSwweDAwLDB4ODAsMHg4MCwweDM0LDB4ZTgsMHg0ZCwweDc4LDB4MDIsMHgzZSwweDgwLDB4ODcgfX0sCi0gezE2LCAweGJlZDAsIDAsIHsweGEwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGMwLDB4ODAsMHg4NiwweDAyLDB4MmQsMHg0MSwweDBiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHhiZWUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDgsMHgzNywweDAxLDB4MmQsMHhjOSB9fSwKLSB7MTYsIDB4YmVmMCwgMCwgezB4MGIsMHg3MiwweDIyLDB4MWMsMHg4NCwweGI1LDB4MTYsMHgwZCwweGM0LDB4MTksMHg0MCwweDQyLDB4ZGMsMHg4MCwweDg3LDB4MDAgfX0sCi0gezE2LCAweGJmMDAsIDAsIHsweDIwLDB4YzgsMHg4OCwweDczLDB4MGEsMHg5YywweDgwLDB4YjUsMHgwMCwweDI5LDB4YzAsMHgwYSwweDQ4LDB4MDIsMHhjMCwweDAyIH19LAotIHsxNiwgMHhiZjEwLCAwLCB7MHg5NSwweDAwLDB4MmQsMHg0MiwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmYyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmEsMHhlMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MjAsMHhhMSwweDAxLDB4MjQgfX0sCi0gezE2LCAweGJmMzAsIDAsIHsweGMxLDB4MDgsMHgwMCwweDAyLDB4OGMsMHgwMCwweDgxLDB4MDAsMHgyNCwweDgwLDB4MDksMHgzOCwweDBhLDB4NjAsMHg4MCwweDkyIH19LAotIHsxNiwgMHhiZjQwLCAwLCB7MHg0MCwweDJhLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMCwweDAwLDB4ODAsMHhjOCwweDJjLDB4NzIsMHgwYiwweDE0LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YmY1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmYsMHgwMCwweDJmLDB4ZjQgfX0sCi0gezE2LCAweGJmNjAsIDAsIHsweDhmLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhiOSwweDAwLDB4M2UsMHg0MCwweDA5LDB4OTAsMHgwMywweGZjLDB4MDIsMHhjMywweDAxIH19LAotIHsxNiwgMHhiZjcwLCAwLCB7MHgzMiwweGMwLDB4NDgsMHhiOCwweDEzLDB4YTEsMHgwMCwweGJhLDB4MDAsMHgyYSwweDAwLDB4MGEsMHhhMCwweDA3LDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YmY4MCwgMCwgezB4ZGIsMHhjOCwweDNlLDB4OTAsMHgwZiwweGEyLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJmOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNlLDB4YzQsMHgwZiwweGIwLDB4NjMsMHhlYywweDAxLDB4ZjgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhiZmEwLCAwLCB7MHg0MCwweDBiLDB4ODAsMHgwMywweGNjLDB4MDAsMHhmYSwweDQyLDB4M2UsMHhjMCwweDBmLDB4YjUsMHgwMCwweGFjLDB4NTgsMHhlOSB9fSwKLSB7MTYsIDB4YmZiMCwgMCwgezB4ODIsMHgzZSwweGMwLDB4MWQsMHg5MCwweDAzLDB4ZWMsMHgwNCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGJmYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwYywweGRmLDB4MDAsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhiZmQwLCAwLCB7MHgyYywweGYwLDB4MDMsMHg3YywweDAxLDB4YzcsMHgwMCwweDMzLDB4NDAsMHg4ZiwweGQwLDB4MDMsMHhmYywweDAwLDB4ZDgsMHgwMCB9fSwKLSB7MTYsIDB4YmZlMCwgMCwgezB4MTUsMHg0NCwweDBjLDB4ZTAsMHgxYiwweDNjLDB4MDAsMHhjYiwweDBlLDB4MzMsMHhjMCwweDVjLDB4NjIsMHgwMiwweDFjLDB4MDIgfX0sCi0gezE2LCAweGJmZjAsIDAsIHsweGM1LDB4MDAsMHgyYiwweDgwLDB4MGYsMHhjMCwweDg3LDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDAwLCAwLCB7MHg4MSwweDQ0LDB4NmMsMHgxMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MDgsMHhiMCwweDUyLDB4MGMsMHgwMSwweGZhLDB4YzQsMHgyMiB9fSwKLSB7MTYsIDB4YzAxMCwgMCwgezB4NjEsMHgwYiwweDg4LDB4MDMsMHg2YywweDAwLDB4ODgsMHg0NywweDJhLDB4MDAsMHgwZSwweDFjLDB4MDIsMHgyMCwweDAyLDB4ODggfX0sCi0gezE2LCAweGMwMjAsIDAsIHsweDAwLDB4YWEsMHgwMCwweDI4LDB4OTAsMHgwYSwweDJjLDB4MDQsMHhhOCwweDAwLDB4MjIsMHg5MCwweDBiLDB4ODAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhjMDMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSB9fSwKLSB7MTYsIDB4YzA0MCwgMCwgezB4MDgsMHgzMCwweDEyLDB4NmMsMHgwMCwweDg4LDB4ODgsMHgyYSwweDMwLDB4MGIsMHhiOCwweDAyLDB4ZWMsMHgwMCwweDliLDB4MDggfX0sCi0gezE2LCAweGMwNTAsIDAsIHsweDJhLDB4NDAsMHgwOCwweGI4LDB4MDIsMHgyMCwweDAwLDB4ODIsMHgxMCwweDIyLDB4MDAsMHgwOCwweGEwLDB4MjIsMHhhMCwweDAwIH19LAotIHsxNiwgMHhjMDYwLCAwLCB7MHg4YiwweDAwLDB4MmEsMHgwMiwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzA3MCwgMCwgezB4MDgsMHgwMCwweDBjLDB4MDAsMHhiMywweDIwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDJjLDB4YzAsMHhhMCwweDA4LDB4MjAgfX0sCi0gezE2LCAweGMwODAsIDAsIHsweDAwLDB4MGIsMHgzMywweDQ2LDB4Y2QsMHgyOCwweDgwLDB4MjAsMHgyOCwweGMwLDB4MGIsMHgzMiwweDAyLDB4MGMsMHgyMCwweDgxIH19LAotIHsxNiwgMHhjMDkwLCAwLCB7MHgzMCwweDI4LDB4YzAsMHgwOCwweDEwLDB4MDIsMHg4MSwweDAwLDB4YWEsMHgwMCwweDI4LDB4MDAsMHgwMywweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YzBhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDAwLDB4ZmIsMHgyOCwweDJlLDB4Y2MgfX0sCi0gezE2LCAweGMwYjAsIDAsIHsweDBjLDB4NzAsMHg1MywweDdkLDB4MDksMHg4OCwweDAwLDB4YmEsMHgwMCwweDBmLDB4ODAsMHgwMywweGZkLDB4ODAsMHhkYSwweDYwIH19LAotIHsxNiwgMHhjMGMwLCAwLCB7MHgzYSwweDUwLDB4OGMsMHhhMiwweDgzLDB4MmMsMHg4MCwweDRiLDB4MjAsMHgzMCwweGMwLDB4MjgsMHhhMCwweDAzLDB4YTEsMHgwMCB9fSwKLSB7MTYsIDB4YzBkMCwgMCwgezB4YzksMHgwMCwweDNhLDB4MDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmIsMHgwMCwweDdlLDB4YzksMHgwYiwweGI2LDB4MDMsMHhmYywweGMwLDB4ZjgsMHgwYywweDNmIH19LAotIHsxNiwgMHhjMGYwLCAwLCB7MHgwMCwweDRmLDB4YzMsMHg0MywweDJjLDB4MDAsMHhiOCwweDM4LDB4M2YsMHg4ZSwweDVlLDB4ZjAsMHg0MywweGUwLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4YzEwMCwgMCwgezB4MzAsMHgzZiwweDAxLDB4MGYsMHhkMCwweDAzLDB4NzAsMHgwMCwweGZjLDB4MDAsMHgzNywweDAwLDB4MGQsMHhkMCwweDA3LDB4ZTkgfX0sCi0gezE2LCAweGMxMTAsIDAsIHsweDAzLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHhlMCwweGNjLDB4ODAsMHgzMywweGMwIH19LAotIHsxNiwgMHhjMTIwLCAwLCB7MHgwZCwweGYwLDB4ODMsMHhmYywweDgwLDB4ZGMsMHg5NCwweDMzLDB4YzAsMHgxYywweGYxLDB4MDMsMHg3ZCwweDhjLDB4ZmYsMHgzMCB9fSwKLSB7MTYsIDB4YzEzMCwgMCwgezB4M2YsMHgzMCwweDhmLDB4YzgsMHgwMywweDdlLDB4MTAsMHhjZiwweDkwLDB4MzksMHhhMCwweDhkLDB4ZjgsMHgwMywweGFlLDB4MDAgfX0sCi0gezE2LCAweGMxNDAsIDAsIHsweGQ1LDB4ODAsMHgxMywweGUwLDB4MGMsMHg1OCwweDAzLDB4ZjAsMHgwMSwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMTUwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwOCwweDg4LDB4MDAsMHgyMywweGM0LDB4MDgsMHhmYywweDAyLDB4ZWMsMHhhOCwweGNiLDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4YzE2MCwgMCwgezB4YzIsMHgwZCwweGY3LDB4MTIsMHgxYywweDQwLDB4ZGYsMHgzMCwweDIyLDB4YTAsMHgwYiwweDg4LDB4MDIsMHgyZSwweDA0LDB4ZGIgfX0sCi0gezE2LCAweGMxNzAsIDAsIHsweDIxLDB4MjIsMHhjMCwweDA4LDB4YjgsMHgyMiwweDJlLDB4MDAsMHhiOSwweDgwLDB4MmEsMHg2MCwweDBhLDB4ODgsMHgwMiwweGUwIH19LAotIHsxNiwgMHhjMTgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGNjLDB4MTAsMHg4MCwweDJjLDB4MjgsMHhjYSB9fSwKLSB7MTYsIDB4YzE5MCwgMCwgezB4NjgsMHgzMCwweDAyLDB4OGQsMHgwMCwweDliLDB4MjAsMHgyOCwweGM0LDB4MDgsMHgzMiwweDAyLDB4Y2MsMHgxMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGMxYTAsIDAsIHsweDI0LDB4MDgsMHgwYiwweDgwLDB4NDIsMHg2YywweDAwLDB4ODMsMHgwMCwweDJhLDB4Y2EsMHgzYSwweGIwLDB4MDIsMHg4YywweDA0IH19LAotIHsxNiwgMHhjMWIwLCAwLCB7MHhiMCwweDA0LDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGUzLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzFjMCwgMCwgezB4YzAsMHgxNSwweDhjLDB4MDIsMHg4MCwweDQwLDB4YWEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGVjLDB4MDAsMHg5YiwweDIwLDB4MmEgfX0sCi0gezE2LCAweGMxZDAsIDAsIHsweGMwLDB4ODgsMHhiMCwweDAyLDB4YWMsMHgwMCwweDliLDB4MDAsMHgyNiwweGUwLDB4MDMsMHg4MCwweDgyLDB4MmMsMHgyOCwweDliIH19LAotIHsxNiwgMHhjMWUwLCAwLCB7MHgyMCwweDIyLDB4ZTEsMHgwYiwweGIyLDB4MDIsMHhhYywweDgwLDB4YjgsMHg4MCwweDJhLDB4YzEsMHgwYSwweDk4LDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YzFmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzgsMHg1MCwweDNhLDB4YzAgfX0sCi0gezE2LCAweGMyMDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhkYiwweDg4LDB4YmEsMHhjMCwweDA4LDB4YjAsMHgwMywweDZjLDB4MDgsMHhmYiwweDAwIH19LAotIHsxNiwgMHhjMjEwLCAwLCB7MHgzNiwweDYwLDB4MGYsMHg4YywweDYzLDB4NmMsMHgwMCwweGNiLDB4YzAsMHgzYSwweDgwLDB4MGUsMHhiZSwweDAzLDB4YWYsMHg4NCB9fSwKLSB7MTYsIDB4YzIyMCwgMCwgezB4NzksMHg4MCwweDNhLDB4ODgsMHgwNCwweDk4LDB4MDEsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyMzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmMsMHg4MCwweDM1LDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhkYywweDAwLDB4ZWYsMHgwMCwweDM3IH19LAotIHsxNiwgMHhjMjQwLCAwLCB7MHhjMCwweGFmLDB4ZjAsMHgwMywweDFjLDB4MDEsMHg2ZiwweDAwLDB4MTMsMHgwMCwweDBmLDB4YzEsMHgyMywweGZjLDB4YjgsMHhmZiB9fSwKLSB7MTYsIDB4YzI1MCwgMCwgezB4MDQsMHgzNywweGMwLDB4MGMsMHhmOCwweDQzLDB4N2UsMHgwNCwweGZkLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhkMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGMyNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGM4LDB4NDAsMHgzYSwweGMwIH19LAotIHsxNiwgMHhjMjcwLCAwLCB7MHgwYywweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHg0MCwweDM4LDB4YzEsMHgwZSwweGIwLDB4NDMsMHgyYywweDA4LDB4YzMsMHgwMCB9fSwKLSB7MTYsIDB4YzI4MCwgMCwgezB4M2UsMHg0MCwweDBlLDB4ODIsMHgwMywweDZkLDB4MDAsMHhkYiwweDQwLDB4MzIsMHhjMSwweDVmLDB4YjQsMHhhMywweGVkLDB4MjAgfX0sCi0gezE2LCAweGMyOTAsIDAsIHsweGM5LDB4NDAsMHgzMiwweGUwLDB4OGYsMHg5OCwweDQzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMmEwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDg4LDB4MDAsMHgyMywweGMwLDB4MjgsMHhmNSwweGMyLDB4ZmMsMHgwMCwweGIzLDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4YzJiMCwgMCwgezB4YzEsMHg0OCwweGYwLDB4MjIsMHhiYywweDA2LDB4YWYsMHgwMCwweDBlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHhjZCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGMyYzAsIDAsIHsweDAxLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGVlLDB4MDAsMHg4MSwweGUwLDB4MzQsMHhhMCwweDBiLDB4OTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhjMmQwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDIsMHg4MCwweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4YzJlMCwgMCwgezB4MDksMHgzYywweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyYywweGMwLDB4MGEsMHhiMCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDEgfX0sCi0gezE2LCAweGMyZjAsIDAsIHsweDJjLDB4MDAsMHgwYSwweDA1LDB4MDIsMHhjZCwweDU4LDB4YmIsMHgwMCwweDIwLDB4MDAsMHgwYSwweDNkLDB4MDIsMHhjZiwweDQwIH19LAotIHsxNiwgMHhjMzAwLCAwLCB7MHgyMSwweDIwLDB4NjAsMHhjMCwweDA5LDB4MTAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzMxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHg4NCwweDgwLDB4MjgsMHhlNCwweDg4LDB4NzgsMHg0MiwweGRlLDB4MDAsMHhiNywweDkwLDB4NjUgfX0sCi0gezE2LCAweGMzMjAsIDAsIHsweGU0LDB4ODgsMHg3YSwweDQyLDB4OWUsMHg0MCwweGE3LDB4OTAsMHgyZCwweGEwLDB4MGEsMHg0OCwweDIyLDB4ZGUsMHgwNCwweGI3IH19LAotIHsxNiwgMHhjMzMwLCAwLCB7MHg4MCwweDIzLDB4NjAsMHg0OCwweDc4LDB4NDIsMHhmZSwweDgwLDB4YWYsMHg5MCwweDY1LDB4ZTAsMHgwYiwweGU4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YzM0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YzgsMHgwMCwweDM4LDB4YzAgfX0sCi0gezE2LCAweGMzNTAsIDAsIHsweDBjLDB4MzAsMHgwMywweGNjLDB4MDAsMHhmYiwweDAwLDB4M2MsMHhjMCwweDBlLDB4YmEsMHgwMywweDBjLDB4MDAsMHhjMywweDAwIH19LAotIHsxNiwgMHhjMzYwLCAwLCB7MHgzZSwweDAwLDB4NGUsMHgyMiwweDAyLDB4Y2MsMHhjMCwweGZiLDB4NDAsMHgzMCwweGMwLDB4MGEsMHgzMCwweDAzLDB4Y2UsMHg4MCB9fSwKLSB7MTYsIDB4YzM3MCwgMCwgezB4ZTEsMHg0MSwweDMwLDB4YzksMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDIwLDB4ZmMsMHgwMCwweDM3LDB4YzIsMHgwZSwweGYxLDB4MjMsMHhlYywweDQwLDB4ZmYsMHgwNCwweDNhIH19LAotIHsxNiwgMHhjMzkwLCAwLCB7MHhjMCwweDBmLDB4YjAsMHgyMywweGZjLDB4MDAsMHhmZiwweDA0LDB4M2UsMHhjMCwweDBkLDB4YTAsMHgwMywweGZjLDB4NTgsMHhmZiB9fSwKLSB7MTYsIDB4YzNhMCwgMCwgezB4MDAsMHhiZiwweGMwLDB4MDYsMHhmMCwweDgzLDB4ZGMsMHg2MiwweGRmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MTAgfX0sCi0gezE2LCAweGMzYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHg4MCwweGM5LDB4MDEsMHgzZSwweGMwIH19LAotIHsxNiwgMHhjM2MwLCAwLCB7MHg4YywweGIyLDB4MDcsMHhhZSwweDA0LDB4Y2IsMHg4MCwweDNhLDB4YzgsMHg0YywweGIyLDB4MDMsMHgyYywweDg0LDB4Y2IsMHgzMCB9fSwKLSB7MTYsIDB4YzNkMCwgMCwgezB4YjAsMHhlMCwweDBkLDB4ODgsMHgwYiwweDJjLDB4MDAsMHhlYiwweDAwLDB4MzAsMHgwMCwweDBjLDB4YmMsMHg4MywweDJkLDB4ODAgfX0sCi0gezE2LCAweGMzZTAsIDAsIHsweGZiLDB4MDAsMHgzMiwweGMwLDB4MGMsMHg5MCwweDAzLDB4ZWEsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjM2YwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg0MCwweDg3LDB4MDAsMHgyYywweGNjLDB4MDgsMHg3NiwweDgyLDB4M2MsMHg4MiwweDg3LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YzQwMCwgMCwgezB4YzIsMHg4ZCwweDMyLDB4ODIsMHgwZCwweDRjLDB4YTcsMHgyOCwweDIxLDB4ODAsMHgwOCwweDQwLDB4MDIsMHgxZCwweDgwLDB4YmYgfX0sCi0gezE2LCAweGM0MTAsIDAsIHsweDIwLDB4MzUsMHg0MCwweDA5LDB4NzIsMHg0MywweDVjLDB4YTAsMHhiNywweDAwLDB4MjksMHhjMCwweDA4LDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhjNDIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NCwweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4YzQzMCwgMCwgezB4MDgsMHg3OCwweDAyLDB4ZGUsMHhjMCwweDhmLDB4ODAsMHgyOCwweGVjLDB4MjgsMHg3YiwweDBhLDB4OWUsMHg5NCwweDgzLDB4ODQgfX0sCi0gezE2LCAweGM0NDAsIDAsIHsweDIzLDB4ZTAsMHgwOSwweDU4LDB4NTAsMHg5ZSwweDEwLDB4YTcsMHhiMCwweDIzLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHgxZSwweDIwIH19LAotIHsxNiwgMHhjNDUwLCAwLCB7MHhiNywweDgwLDB4MjEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzQ2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDIsMHg4MiwweDFjLDB4MmMsMHhjMCwweDI4LDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweGMwLDB4MjAgfX0sCi0gezE2LCAweGM0NzAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHg2MCwweGQyLDB4MDgsMHgxZCwweDAyLDB4MGYsMHgyMCwweGJiIH19LAotIHsxNiwgMHhjNDgwLCAwLCB7MHgyNCwweDI0LDB4YzAsMHgwYiwweDNjLDB4MDIsMHg0ZiwweDAwLDB4YjMsMHg4MCwweDI4LDB4ZDgsMHgwOSwweDMyLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4YzQ5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhhOCwweDAwLDB4Y2UsMHg4NCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGM0YTAsIDAsIHsweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhjZSwweGMwLDB4M2EsMHg4MCwweDA4LDB4YTAsMHgwMywweGE4LDB4MDAsMHhjYSwweDAwIH19LAotIHsxNiwgMHhjNGIwLCAwLCB7MHgzMywweDgwLDB4MGQsMHhlYywweDAzLDB4M2IsMHg4MCwweGVlLDB4ODIsMHgzMywweDgwLDB4MGEsMHhjMCwweDg3LDB4MTAsMHg0MCB9fSwKLSB7MTYsIDB4YzRjMCwgMCwgezB4ZjYsMHhjMCwweDMzLDB4OTAsMHhhZCwweDY0LDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0ZDAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAyLDB4ZjgsMHgwMCwweDNjLDB4MDAsMHgxZiwweDA0LDB4MDMsMHhhMCwweDA0LDB4ZjgsMHgzMCwweDNlIH19LAotIHsxNiwgMHhjNGUwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNCwweDBmLDB4ODAsMHg5MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YzRmMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MmMsMHg4NCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MTgsMHgzZSwweDEwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGM1MDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhjNTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhNCwweDEwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwNCwweDkwLDB4MDMsMHgyNCwweDAwLDB4NDEsMHgwMCB9fSwKLSB7MTYsIDB4YzUyMCwgMCwgezB4M2UsMHg0MCwweDBmLDB4OTEsMHgxMywweGUxLDB4MDgsMHhmOCwweDAwLDB4MzIsMHg0MCwweDA4LDB4ODksMHg4MywweGEyLDB4MDAgfX0sCi0gezE2LCAweGM1MzAsIDAsIHsweGM5LDB4ODAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDBiLDB4MDIsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNTQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGQsMHg5MCwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YzU1MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHg4YiwweDk0LDB4NDIsMHhlMiwweDIwLDB4YjggfX0sCi0gezE2LCAweGM1NjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDA4LDB4OTQsMHgwMiwweGU1LDB4MDQsMHhhOSwweDkwLDB4MzQsMHg2MCwweDA4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjNTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MTAsMHg5OSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YzU4MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyNCwweDQwLDB4MGEsMHgxMCwweDAyLDB4MDQsMHgwMCwweGE5LDB4MDAgfX0sCi0gezE2LCAweGM1OTAsIDAsIHsweDJhLDB4NDAsMHgwYiwweDkwLDB4ODIsMHhlMCwweDAxLDB4YjgsMHgwMCwweDIwLDB4NDAsMHgzYSwweDkwLDB4MDIsMHhhNCwweDQ0IH19LAotIHsxNiwgMHhjNWEwLCAwLCB7MHg4OSwweDA0LDB4MjIsMHg2MiwweDA4LDB4OTgsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzViMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4OGEsMHg4MSwweDAwLDB4MmMsMHg0OCwweDA5LDB4MzIsMHgwNiwweDQ0LDB4ODAsMHhiMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGM1YzAsIDAsIHsweDQ4LDB4MGEsMHgxMiwweDAyLDB4ODQsMHg4MCwweGExLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDAyLDB4YzUsMHgwMCwweGIxIH19LAotIHsxNiwgMHhjNWQwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwYSwweDI0LDB4MDIsMHhjOSwweDAwLDB4YTMsMHgwMCwweDI0LDB4NDAsMHgwOCwweDExLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzVlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweDNlLDB4MTQgfX0sCi0gezE2LCAweGM1ZjAsIDAsIHsweDBlLDB4ODAsMHgwMywweGUxLDB4NDAsMHhmOCwweDUxLDB4MzYsMHgxNCwweDJlLDB4ODUsMHg0MywweDIxLDB4NDIsMHhlOCwweDUwIH19LAotIHsxNiwgMHhjNjAwLCAwLCB7MHgzYSwweDAwLDB4MGYsMHg4MCwweDEyLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwLDB4MWUsMHg4MCwweDQzLDB4YTAsMHgwMCB9fSwKLSB7MTYsIDB4YzYxMCwgMCwgezB4YzgsMHgwMSwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2MjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHg0ZSwweDExLDB4MDMsMHhhNCwweDQwLDB4YjUsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjNjMwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHgwMywweGU0LDB4NDAsMHhkOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4NTAsMHgwMywweGU1LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YzY0MCwgMCwgezB4NDAsMHgzZiwweDQwLDB4MGQsMHg0NCwweDAzLDB4ZjEsMHgwMCwweGY1LDB4MDIsMHgzZCwweGMwLDB4MmYsMHhkMiwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGM2NTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTcsMHgwMCwweGU5LDB4MDAsMHgzNiwweDYwIH19LAotIHsxNiwgMHhjNjYwLCAwLCB7MHgwZCwweGRhLDB4MDMsMHhlNiwweDQwLDB4ZjksMHg0MCwweDNlLDB4NjgsMHgwYywweDlhLDB4MDMsMHg2NiwweDIwLDB4ODksMHhhMCB9fSwKLSB7MTYsIDB4YzY3MCwgMCwgezB4MzMsMHg0MCwweDBlLDB4OTAsMHgwNywweGE2LDB4MDAsMHhmOSwweDgwLDB4M2UsMHg1MCwweDBjLDB4Y2EsMHgwMywweGYzLDB4ODAgfX0sCi0gezE2LCAweGM2ODAsIDAsIHsweGM1LDB4MDIsMHgzMywweDQwLDB4MGMsMHhjMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNjkwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHgwNCwweDg4LDB4YTIsMHgyMCwweDM4LDB4MDgsMHg4MCwweDAyLDB4ZTMsMHg0MCwweGIwLDB4ODAsMHgyZSB9fSwKLSB7MTYsIDB4YzZhMCwgMCwgezB4MjgsMHgwOCwweDhhLDB4ODIsMHgyMywweDgwLDB4ODgsMHg4MCwweDIyLDB4MDAsMHhkYiwweDg4LDB4MDIsMHg2MiwweDA0LDB4YjggfX0sCi0gezE2LCAweGM2YjAsIDAsIHsweGIwLDB4MmUsMHhhOCwweDg4LDB4OGUsMHhhMiwweGVhLDB4ODAsMHg4OCwweDAwLDB4MmEsMHgwMCwweDI4LDB4ODgsMHgwMywweDhlIH19LAotIHsxNiwgMHhjNmMwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODIsMHhhOSwweDA4LDB4MmMsMHg1MiB9fSwKLSB7MTYsIDB4YzZkMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjEsMHgwYywweDUyLDB4ODgsMHgxNCwweDAyLDB4NDQsMHgyMCwweDkxLDB4NjkgfX0sCi0gezE2LCAweGM2ZTAsIDAsIHsweDIwLDB4NDAsMHgwYSwweDEwLDB4ODIsMHhjNiwweGUwLDB4YjEsMHgwYywweDJjLDB4NDgsMHgwOCwweDAxLDB4MDIsMHhlMSwweDkzIH19LAotIHsxNiwgMHhjNmYwLCAwLCB7MHhhMSwweDAxLDB4MjQsMHg0MSwweDBhLDB4MTAsMHgwMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzcwMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMCwweGU0LDB4MDAsMHgzOSwweDAyLDB4MGUgfX0sCi0gezE2LCAweGM3MTAsIDAsIHsweDQwLDB4MDgsMHgxMCwweDYyLDB4MjQsMHgwMCwweDkxLDB4MDAsMHg2MiwweDQwLDB4OGIsMHg4MCwweDAyLDB4ZTAsMHg1NCwweGI5IH19LAotIHsxNiwgMHhjNzIwLCAwLCB7MHgwYywweDJlLDB4NDAsMHgwOSwweGI2LDB4NTIsMHhlYywweDAwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkyLDB4ODAsMHg4NiB9fSwKLSB7MTYsIDB4YzczMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZTEsMHg2MCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGM3NDAsIDAsIHsweDBkLDB4OTAsMHgyMywweGU0LDB4MDAsMHhmOSwweDMwLDB4M2UsMHg0MCwweDJjLDB4OTAsMHg0MywweDY0LDB4MDYsMHhjOSwweDAwIH19LAotIHsxNiwgMHhjNzUwLCAwLCB7MHgzMiwweDQ5LDB4MGUsMHg4ZCwweDkzLDB4ZTAsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MmMsMHg5NCwweDAzLDB4YzcsMHg0MCB9fSwKLSB7MTYsIDB4Yzc2MCwgMCwgezB4ZTksMHgyMCwweDMwLDB4NTUsMHgwZSwweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3NzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDFlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MCwweDNjIH19LAotIHsxNiwgMHhjNzgwLCAwLCB7MHg0MCwweDRmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDA0LDB4YmUsMHg0MCwweDBmLDB4ODgsMHgzMywweDYyLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4Yzc5MCwgMCwgezB4YzIsMHgzZSwweDQ4LDB4MmUsMHg4OCwweDMzLDB4ZTIsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDYwLDB4MGQsMHg4MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGM3YTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhjN2IwLCAwLCB7MHgwZCwweDgwLDB4MDMsMHhhMCwweDA0LDB4ZTgsMHg0MCwweGJhLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDA0LDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YzdjMCwgMCwgezB4M2EsMHgwMCwweDBlLDB4OGMsMHgwMywweGUwLDB4MDAsMHhmOCwweDAyLDB4MzIsMHgwMCwweDBlLDB4ODAsMHgwMywweDYxLDB4MjAgfX0sCi0gezE2LCAweGM3ZDAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDE2LDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjN2UwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MDgsMHhlMiwweDAzLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YzdmMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDA0LDB4OGEsMHgwMCwweDJlLDB4YTIsMHgwOSwweGU4LDB4MDIsMHhmYSwweDA0LDB4YmUgfX0sCi0gezE2LCAweGM4MDAsIDAsIHsweDAwLDB4YTIsMHg4MCwweDA4LDB4Y2QsMHg4MiwweDMzLDB4MjAsMHhiNiwweGMwLDB4MzcsMHhhMCwweDRiLDB4YzgsMHg4MiwweGNhIH19LAotIHsxNiwgMHhjODEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZjLDB4MDAsMHg4MywweDAwLDB4MjYsMHhjMCB9fSwKLSB7MTYsIDB4YzgyMCwgMCwgezB4MDksMHgzOCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGM4MzAsIDAsIHsweDI4LDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhjZSwweDgxLDB4YjMsMHgwMCwweDYyLDB4YzAsMHgwOCwweDNjLDB4MDIsMHg0ZiwweDAwIH19LAotIHsxNiwgMHhjODQwLCAwLCB7MHhiMywweGEwLDB4MjAsMHhiMCwweDAzLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzg1MCwgMCwgezB4YTAsMHgwMSwweDBjLDB4NDEsMHg4NywweDM0LDB4MmQsMHhjMCwweDA4LDB4NjAsMHgwMiwweDllLDB4NDAsMHhiNywweGEwLDB4MmQgfX0sCi0gezE2LCAweGM4NjAsIDAsIHsweGMwLDB4MDgsMHg3MywweDAyLDB4ZGMsMHgwMCwweDg3LDB4MjAsMHgyZCwweGMwLDB4MGIsMHg3MCwweDgyLDB4ZGQsMHg4NSwweGJmIH19LAotIHsxNiwgMHhjODcwLCAwLCB7MHg4MSwweDYzLDB4YzgsMHg4OCwweDdiLDB4MDIsMHgxYywweDAwLDB4YjcsMHg0MCwweDY1LDB4MDAsMHgxYiwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4Yzg4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNkLDB4ZTAgfX0sCi0gezE2LCAweGM4OTAsIDAsIHsweGRkLDB4NzAsMHgwMywweGZlLDB4ODAsMHhmNywweDkwLDB4M2YsMHhlMCwweDJjLDB4NzksMHgwMywweGZlLDB4ODAsMHhjNywweGEwIH19LAotIHsxNiwgMHhjOGEwLCAwLCB7MHgzOSwweGUwLDB4MGYsMHg3YSwweDAyLDB4ZGUsMHg4NCwweGY3LDB4YzIsMHgzMSwweGYyLDB4MGMsMHg3OSwweDAzLDB4NWUsMHgwNCB9fSwKLSB7MTYsIDB4YzhiMCwgMCwgezB4ZjcsMHg4NCwweDMxLDB4NjAsMHgwZiwweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4YzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDBhLDB4ZmIsMHg2MCwweDdlLDB4ZDQsMHgwZiwweDMwLDB4MDMsMHg2YywweDAwLDB4Y2IsMHgwMCwweDMyIH19LAotIHsxNiwgMHhjOGQwLCAwLCB7MHhkZSwweDJmLDB4YjIsMHgwMywweGVkLDB4NDIsMHgxYiwweDYwLDB4M2UsMHhjMSwweDBkLDB4YjEsMHgwMywweGVjLDB4NTAsMHhmNyB9fSwKLSB7MTYsIDB4YzhlMCwgMCwgezB4ODAsMHgzZCwweGQ4LDB4MmUsMHgzMiwweDAzLDB4ZWMsMHgzMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGM4ZjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgwMCwweGNiLDB4ZDAsMHgzZiwweGYwIH19LAotIHsxNiwgMHhjOTAwLCAwLCB7MHg0YywweGY4LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg4OCwweDNmLDB4ZTAsMHgwYywweGY4LDB4NDMsMHgzZiwweDAwLDB4Y2YsMHhjOCB9fSwKLSB7MTYsIDB4YzkxMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAsMHhmZiwweDgwLDB4M2YsMHhlMCwweDJjLDB4ZjgsMHgwMywweGJlLDB4MjAgfX0sCi0gezE2LCAweGM5MjAsIDAsIHsweGM3LDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOCwweDAxLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOTMwLCAwLCB7MHhhOCwweDAxLDB4YmMsMHg0MCwweDg3LDB4OTAsMHgzZCwweGMwLDB4MDgsMHg0MCwweDAyLDB4ZGMsMHg4MCwweGQ3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4Yzk0MCwgMCwgezB4YzAsMHgwYywweDMwLDB4MDMsMHg3YywweDAwLDB4ODcsMHgxMCwweDIxLDB4YzQsMHgxZSwweDcwLDB4MjAsMHhkYywweDQ0LDB4YjcgfX0sCi0gezE2LCAweGM5NTAsIDAsIHsweDAwLDB4MzksMHhjMCwweDBjLDB4NzEsMHgwMiwweDFjLDB4NDAsMHhkNywweDAyLDB4MjksMHg0MCwweDA4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhjOTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDMyLDB4MmQsMHhjMCB9fSwKLSB7MTYsIDB4Yzk3MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGMsMHgwMSwweDg3LDB4MDAsMHgyYywweGMwLDB4MmIsMHg3MCwweDBhLDB4NWMsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGM5ODAsIDAsIHsweDIzLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkZCwweDAwLDB4YjcsMHgwMCwweDJkLDB4YzQsMHgwYiwweGYwLDB4MDIsMHg5YywweDIwIH19LAotIHsxNiwgMHhjOTkwLCAwLCB7MHg4NywweDE4LDB4MjksMHg0MCwweDA4LDB4NzAsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzlhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MywweDAyLDB4MjgsMHhjMCwweDA4LDB4MTAsMHgwMiwweGNjLDB4MDgsMHg4MywweDQwLDB4MmUgfX0sCi0gezE2LCAweGM5YjAsIDAsIHsweGMwLDB4MmEsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMCwweGYyLDB4MGEsMHgzMCwweDAyLDB4Y2UsMHgwMCwweGIzIH19LAotIHsxNiwgMHhjOWMwLCAwLCB7MHg4OCwweDJhLDB4ZDAsMHgwYSwweDMwLDB4MDYsMHgwYywweDAwLDB4OTIsMHgwMCwweDI4LDB4NzgsMHgwOCwweDNjLDB4NDIsMHgwOCB9fSwKLSB7MTYsIDB4YzlkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAyLDB4YzcsMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGM5ZTAsIDAsIHsweDJjLDB4OTAsMHgwMiwweGZjLDB4MDIsMHg4ZiwweGQ4LDB4M2YsMHhjMCwweDRiLDB4ZjAsMHgwMiwweDdjLDB4MDIsMHhjZiwweDAwIH19LAotIHsxNiwgMHhjOWYwLCAwLCB7MHgyMCwweGYyLDB4MDgsMHhiMCwweDEzLDB4ZWUsMHg4MCwweGZmLDB4MDAsMHgzZiwweGQ0LDB4MmUsMHhiZCwweDgzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4Y2EwMCwgMCwgezB4Y2IsMHg4MCwweDNhLDB4YTAsMHhhYywweGI4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhMTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgxMCwweDNlLDB4YzAsMHgwZiwweDg0LDB4MDMsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjYTIwLCAwLCB7MHhjMCwweDAxLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4YmUsMHhjMCwweDBlLDB4YjAsMHgyMywweGVjLDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4Y2EzMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGQsMHhiNCwweDAzLDB4ZWQsMHgwNCwweGY5LDB4MDAsMHgxZSwweDE0LDB4Y2YsMHhiMCwweDgzLDB4ZTAgfX0sCi0gezE2LCAweGNhNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGNmLDB4MDAsMHgzMCwweGMwIH19LAotIHsxNiwgMHhjYTUwLCAwLCB7MHgwYywweDQwLDB4MDMsMHhhYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgyYywweGIwLDB4MDMsMHhiYywweDAwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4Y2E2MCwgMCwgezB4YjMsMHhlMCwweDBkLDB4ZmEsMHgwMywweDdlLDB4ODAsMHhjZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZmMsMHg0MywweGZmLDB4MjAgfX0sCi0gezE2LCAweGNhNzAsIDAsIHsweGZmLDB4MDAsMHgzZiwweDQwLDB4MDgsMHhmOCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYTgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgxMCwweGFiLDB4MDAsMHgyYSwweGMwLDB4MGEsMHg4ZSwweDQyLDB4MmMsMHgwNCwweGJiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4Y2E5MCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweDNhLDB4YzAsMHgwZSwweDMwLDB4MDIsMHgwZCwweDA4LDB4ODMgfX0sCi0gezE2LCAweGNhYTAsIDAsIHsweDAyLDB4MjIsMHhjMCwweDBhLDB4YmMsMHgwMiwweGVmLDB4MDAsMHhiYiwweGMwLDB4MmMsMHg2OCwweDBhLDB4YjksMHgwMiwweGUwIH19LAotIHsxNiwgMHhjYWIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4YiwweDAwLDB4MjIsMHhjMCB9fSwKLSB7MTYsIDB4Y2FjMCwgMCwgezB4MDgsMHhiOCwweDAyLDB4YWMsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGNhZDAsIDAsIHsweDI2LDB4NDgsMHgxOSwweGIwLDB4MDIsMHg2ZCwweDAwLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhlYywweDA0IH19LAotIHsxNiwgMHhjYWUwLCAwLCB7MHhiYiwweDFjLDB4MmUsMHgyMCwweDBhLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2FmMCwgMCwgezB4MDgsMHgxNCwweDBjLDB4MDAsMHhhYiwweDIwLDB4MjgsMHhjMCwweDBhLDB4MDAsMHgwMiwweDBjLDB4MDAsMHg5MywweDA0LDB4MmMgfX0sCi0gezE2LCAweGNiMDAsIDAsIHsweGMxLDB4MDgsMHgzMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyNCwweDQxLDB4MDksMHhiOCwweDAyLDB4MGMsMHgwMiwweDgzIH19LAotIHsxNiwgMHhjYjEwLCAwLCB7MHgwMSwweGEwLDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwMCwweDJjLDB4MDAsMHgwYSwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4Y2IyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg3YywweDAwLDB4Y2YsMHgyOCwweDMzLDB4YzAgfX0sCi0gezE2LCAweGNiMzAsIDAsIHsweDBjLDB4YTAsMHg0NiwweGFjLDB4MTEsMHhiZiwweDAwLDB4M2YsMHhjMCwweDVjLDB4ZjAsMHg0MywweGZjLDB4MDAsMHhmZiwweDA0IH19LAotIHsxNiwgMHhjYjQwLCAwLCB7MHgzMiwweDQwLDB4MGQsMHhiMCwweDAzLDB4NmMsMHgwOCwweGNiLDB4MDQsMHgzMSwweGMwLDB4MGMsMHhiMCwweDMzLDB4ZWQsMHg0MCB9fSwKLSB7MTYsIDB4Y2I1MCwgMCwgezB4ZmIsMHgwNCwweDNlLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiNjAsIDAsIHsweGEwLDB4MTUsMHhmYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhmYywweDAxLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjYjcwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHg4NywweDdjLDB4MDAsMHhmZiwweDAwLDB4MzksMHg0MCwweDBlLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4Y2I4MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZGMsMHg4MCwweGZmLDB4MDAsMHgzZCwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGNiOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg0MCwweGViLDB4NDgsMHgzZSwweGMyIH19LAotIHsxNiwgMHhjYmEwLCAwLCB7MHgwZSwweDA5LDB4MDMsMHhiYywweDYwLDB4YzAsMHgyMCwweDM1LDB4MjQsMHgwZSwweGQyLDB4MTMsMHgyYywweDYwLDB4ZmIsMHg2YSB9fSwKLSB7MTYsIDB4Y2JiMCwgMCwgezB4MzMsMHhjMCwweDBmLDB4Y2EsMHgwMywweDIyLDB4MjAsMHhjMCwweDgwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweDdjLDB4MDAgfX0sCi0gezE2LCAweGNiYzAsIDAsIHsweGVmLDB4MDAsMHgzMywweDI0LDB4MGYsMHhjOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYmQwLCAwLCB7MHg4MCwweDEwLDB4ZGQsMHgwMCwweDhmLDB4NjAsMHgyZiwweGQ4LDB4MDgsMHhhMiwweDAyLDB4ZmQsMHg4MCwweGM4LDB4NzAsMHgyMiB9fSwKLSB7MTYsIDB4Y2JlMCwgMCwgezB4MDAsMHgyYywweGZkLDB4MDcsMHhkYywweDg0LDB4YmYsMHg2MCwweDIzLDB4ZDIsMHgwYiwweGJkLDB4MDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGNiZjAsIDAsIHsweDgwLDB4YTIsMHgyMCwweDg4LDB4YjAsMHgyMiwweDM0LDB4MDAsMHhiYiwweDUwLDB4MjIsMHhjOCwweDBiLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjYzAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhhMywweDAzLDB4MmMsMHhjMiB9fSwKLSB7MTYsIDB4Y2MxMCwgMCwgezB4MGEsMHgwMCwweDQyLDB4OGMsMHg4MiwweGEzLDB4MGEsMHgyNCwweDgwLDB4MGIsMHgzMCwweDAyLDB4Y2MsMHg5MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGNjMjAsIDAsIHsweDI4LDB4ZDgsMHgwYiwweDEwLDB4MDIsMHg4YywweDAyLDB4OTAsMHgwMCwweDIwLDB4YzAsMHgwYiwweDEwLDB4NDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhjYzMwLCAwLCB7MHhiMywweDA0LDB4MjQsMHhjMCwweDBiLDB4MzAsMHgwZSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2M0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDA0LDB4MmMsMHhjMCwweGY4LDB4OTgsMHgwNiwweGVjLDB4MDAsMHhhYiwweDgwLDB4MjYgfX0sCi0gezE2LCAweGNjNTAsIDAsIHsweDIwLDB4MDgsMHg5MCwweDJhLDB4YWMsMHgxMCwweGJiLDB4MDAsMHgwYSwweGMwLDB4MWIsMHhiMCwweDIyLDB4YWQsMHgwMCwweDk4IH19LAotIHsxNiwgMHhjYzYwLCAwLCB7MHg0MCwweDJhLDB4NzAsMHg0YiwweGIwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweGE2LDB4ODYsMHgxYiwweGIwLDB4ODIsMHhiMCB9fSwKLSB7MTYsIDB4Y2M3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGNjODAsIDAsIHsweDhlLDB4OTgsMHgwMywweGFjLDB4MDgsMHhlOCwweGMwLDB4MzYsMHgzMCwweDRmLDB4YjAsMHg0MiwweGVjLDB4MDAsMHhmOSwweDgwIH19LAotIHsxNiwgMHhjYzkwLCAwLCB7MHgzYSwweGMwLDB4OGYsMHg4OCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MTAsMHgzMCwweGYwLDB4MGYsMHgzMCwweDEzLDB4NmMsMHgxMCB9fSwKLSB7MTYsIDB4Y2NhMCwgMCwgezB4ZWIsMHgwMCwweDM2LDB4ZjAsMHgwZiwweGJkLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjYjAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZWYsMHgwNCwweDdmLDB4YzAsMHgwZiwweGYwLDB4NDMsMHhkYywweDAwLDB4YzQsMHgwMCwweDNiIH19LAotIHsxNiwgMHhjY2MwLCAwLCB7MHg0MCwweDhiLDB4ZGMsMHgwMywweDdjLDB4MTAsMHhmOSwweDkwLDB4MzYsMHhjMiwweDRmLDB4ZjksMHgyMywweDYyLDB4NDEsMHhhYyB9fSwKLSB7MTYsIDB4Y2NkMCwgMCwgezB4MDEsMHgxMywweDQwLDB4MDQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGNjZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgxMiwweGNiLDB4MDAsMHhmMiwweGMwIH19LAotIHsxNiwgMHhjY2YwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhYywweDA4LDB4ZDksMHgwMCwweDNhLDB4ODAsMHgwZiwweDEyLDB4MDMsMHhhYywweDAwLDB4ZTEsMHgwMCB9fSwKLSB7MTYsIDB4Y2QwMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4OTAsMHgwMywweGVkLDB4MDIsMHhjOCwweDQwLDB4M2UsMHhkMCwweDBmLDB4OTAsMHgxMywweDJjLDB4MDIgfX0sCi0gezE2LCAweGNkMTAsIDAsIHsweGRiLDB4MDAsMHgzZSwweDUwLDB4MGMsMHhiNCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZDIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHgxNywweGMwLDB4MDgsMHg5MCwweDAyLDB4M2MsMHgwOCwweDhkLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4Y2QzMCwgMCwgezB4NTQsMHgwOCwweGI0LDB4MDMsMHgzYywweDAwLDB4ODksMHgwMCwweDIzLDB4YzAsMHg0MCwweDM1LDB4MDIsMHhjYywweDI0LDB4ODAgfX0sCi0gezE2LCAweGNkNDAsIDAsIHsweDAwLDB4MjIsMHg3NCwweDRjLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4ZiwweDAwLDB4MmUsMHhkNCwweDBhLDB4YjAsMHgwYSwweDMyIH19LAotIHsxNiwgMHhjZDUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDRjLDB4MDIsMHg4MywweDAwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Y2Q2MCwgMCwgezB4MDksMHgwMCwweDAyLDB4OGMsMHgwMSwweDkwLDB4MDAsMHg2YSwweDQxLDB4MGEsMHgzMCwweDIwLDB4NGUsMHgxMCwweDMxLDB4MDIgfX0sCi0gezE2LCAweGNkNzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDIwLDB4MDYsMHhjZSwweDAwLDB4ODAsMHgwMCwweDYwLDB4ZTAsMHgwYSwweDMwLDB4ODIsMHgwYywweDA4IH19LAotIHsxNiwgMHhjZDgwLCAwLCB7MHg4MywweDA4LDB4MmMsMHhkMCwweDA5LDB4YjAsMHgwMiwweDc4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Q5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHg4NywweGIwLDB4MjAsMHhlYywweDA5LDB4ZTksMHgwMiwweDhlLDB4NTgsMHg5ZCwweGIwLDB4MmIgfX0sCi0gezE2LCAweGNkYTAsIDAsIHsweGE1LDB4NDAsMHg1YiwweDA2LDB4ZGUsMHg0MCwweDk1LDB4OTQsMHgyZCwweGU0LDB4MTksMHg3YiwweDA2LDB4ZGUsMHgwMCwweDg0IH19LAotIHsxNiwgMHhjZGIwLCAwLCB7MHg4MCwweDYwLDB4ZTAsMHgwYSwweDc4LDB4MGEsMHgxNiwweDEwLDB4ODcsMHg4MCwweDJkLDB4NjgsMHgwYiwweDc5LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4Y2RjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4Y2IsMHhhMCwweDI0LDB4ZTAgfX0sCi0gezE2LCAweGNkZDAsIDAsIHsweDBmLDB4MmEsMHgwMywweDhlLDB4MDAsMHhkMiwweGQwLDB4MzgsMHhmYSwweDBmLDB4MTgsMHhjMywweGNlLDB4MjQsMHgzMSwweGIwIH19LAotIHsxNiwgMHhjZGUwLCAwLCB7MHgzYywweGU1LDB4MGMsMHgzYiwweDE3LDB4Y2UsMHgwNCwweGMwLDB4ODIsMHgzOCwweGMyLDB4OWUsMHgxMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4Y2RmMCwgMCwgezB4YzMsMHgwMSwweDNlLDB4YzAsMHgwZCwweDgxLDB4MDMsMHg1MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlMDAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZWYsMHgxMCwweDNlLDB4YzIsMHgwZSwweGIxLDB4MjMsMHgyYywweGMxLDB4YWIsMHgwMSwweDM2IH19LAotIHsxNiwgMHhjZTEwLCAwLCB7MHg4MCwweDBmLDB4YjAsMHgyMywweDJkLDB4OTAsMHhlOSwweDg0LDB4NzIsMHhjOCwweDYyLDB4ZjEsMHgxNywweGZjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4Y2UyMCwgMCwgezB4MDAsMHgzYiwweGM0LDB4MWQsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGVmLDB4MDgsMHgzZiwweGM4LDB4MGUsMHhmMSwweDAzLDB4OTAgfX0sCi0gezE2LCAweGNlMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg4MCwweGZiLDB4YTQsMHgzYSwweGM4IH19LAotIHsxNiwgMHhjZTQwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyYywweDA0LDB4Y2EsMHgwMCwweDMwLDB4NjAsMHgyZCwweDFhLDB4MjcsMHg2YywweDg0LDB4Y2IsMHg2MCB9fSwKLSB7MTYsIDB4Y2U1MCwgMCwgezB4MzIsMHhkMiwweDBjLDB4YTAsMHgxMywweDJkLDB4ODQsMHhjYiwweDAyLDB4M2UsMHhjMCwweDBkLDB4YjgsMHgwMywweGFjLDB4ODAgfX0sCi0gezE2LCAweGNlNjAsIDAsIHsweGNiLDB4ODEsMHgzMiwweDgwLDB4MGMsMHhiMCwweDAzLDB4YWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZTcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHhhNCwweGI3LDB4MjgsMHg3MywweGMyLDB4MDgsMHhmMCwweDAyLDB4M2MsMHhjMCwweDhmLDB4MDAsMHgzMSB9fSwKLSB7MTYsIDB4Y2U4MCwgMCwgezB4YzAsMHgwOSwweDcwLDB4ODIsMHg5YywweDgwLDB4ODcsMHgwYywweDIwLDB4ZDgsMHgwOSwweDcwLDB4MjIsMHgxYywweDMwLDB4ODQgfX0sCi0gezE2LCAweGNlOTAsIDAsIHsweDAwLDB4M2QsMHhjMCwweDA4LDB4NzAsMHgwMiwweDE0LDB4MjQsMHg4NywweGEwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgxMiwweDEyIH19LAotIHsxNiwgMHhjZWEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHhiMywweDk1LDB4MjksMHhlOSB9fSwKLSB7MTYsIDB4Y2ViMCwgMCwgezB4MGEsMHg2OCwweDAyLDB4OWUsMHhkMCwweDg2LDB4ZjAsMHhhMywweGUwLDB4MDgsMHg3OCwweDEyLDB4OWUsMHg0NCwweGEzLDB4ODIgfX0sCi0gezE2LCAweGNlYzAsIDAsIHsweDIxLDB4ZTgsMHgwYiwweDM4LDB4MDIsMHgwZSwweDEwLDB4ODcsMHg4MCwweDJmLDB4ZTAsMHgwYiwweDE4LDB4MDIsMHg4ZSwweDAyIH19LAotIHsxNiwgMHhjZWQwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2VlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4MjQsMHhjMCwweDQ4LDB4MzAsMHgwMiwweDBjLDB4MDQsMHg4MywweDgwLDB4MjAgfX0sCi0gezE2LCAweGNlZjAsIDAsIHsweGQwLDB4MDksMHgxMCwweDAyLDB4OGMsMHgwNiwweGEzLDB4ODAsMHgyMCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgwIH19LAotIHsxNiwgMHhjZjAwLCAwLCB7MHg0MCwweDI4LDB4ZDIsMHgwYSwweDMwLDB4MDIsMHgwYywweDAxLDB4ODMsMHgwMCwweDIyLDB4M2MsMHgwOCwweDg3LDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4Y2YxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDE4LDB4ZmEsMHgwMCwweDNhLDB4ODAgfX0sCi0gezE2LCAweGNmMjAsIDAsIHsweDhlLDB4ZTQsMHg0MiwweDI4LDB4MDIsMHhjZSwweDgwLDB4MzMsMHg4MCwweDRkLDB4YTAsMHg4MywweGU4LDB4MDAsMHhlYSwweGEwIH19LAotIHsxNiwgMHhjZjMwLCAwLCB7MHhiMiwweDgwLDB4MGEsMHhhMCwweDBhLDB4MjgsMHgwMCwweGNlLDB4MTgsMHgyZiwweDgwLDB4MGYsMHhhMCwweDEzLDB4YTgsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y0MCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4OTAsMHgyYywweGFjLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmNTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwNCwweDNhLDB4MDAsMHgwZiwweDgwLDB4ODMsMHhjMCwweDA4LDB4ZTgsMHgwMywweDNhIH19LAotIHsxNiwgMHhjZjYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgyMiwweGMwLDB4MDAsMHhkMCwweDAwLDB4N2UsMHgxMCwweGE0LDB4ODAsMHgwMywweGMwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4Y2Y3MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4MGQsMHg4NCwweDAzLDB4YzAsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwLDB4MGYsMHg4MCwweDAxLDB4NTIgfX0sCi0gezE2LCAweGNmODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMiwweGM5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhjZjkwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAyLDB4ODksMHgwNCwweDMyLDB4NDIsMHgwZCwweDkyLDB4MDMsMHhlNiwweDQyLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4Y2ZhMCwgMCwgezB4MzIsMHg3MCwweDBlLDB4MTIsMHgwYiwweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0NSwweDBlLDB4OTksMHgwMywweGU0LDB4MDIgfX0sCi0gezE2LCAweGNmYjAsIDAsIHsweGMxLDB4MDAsMHgzMiwweDUwLDB4MDQsMHg5NCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZmMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHg2ZSwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4Y2ZkMCwgMCwgezB4NTQsMHgwYiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ODksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGNmZTAsIDAsIHsweDAwLDB4MzgsMHg0OCwweDA4LDB4OTAsMHg4MiwweGU0LDB4MDQsMHhkOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjZmYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDAxLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4ZDAwMCwgMCwgezB4MjgsMHgxMCwweDQyLDB4NjQsMHgwMCwweGExLDB4MDQsMHgyMiwweDUwLDB4MDEsMHg5MCwweDQyLDB4ZTQsMHgwMCwweDg5LDB4MDQgfX0sCi0gezE2LCAweGQwMTAsIDAsIHsweDIwLDB4NDIsMHgwYSwweDkwLDB4NDIsMHgzNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDAsMHgwYSwweDkwLDB4MDAsMHhlNCwweDAwIH19LAotIHsxNiwgMHhkMDIwLCAwLCB7MHg4OSwweDAwLDB4MjMsMHg0MCwweDBhLDB4ZDAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDAzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDI0LDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweDA0LDB4ODAsMHhhMSwweDIwLDB4MjggfX0sCi0gezE2LCAweGQwNDAsIDAsIHsweDQwLDB4MGIsMHgxMCwweDAyLDB4ODUsMHg4MCwweDgxLDB4MjAsMHgyMCwweDQ4LDB4MDgsMHg1MCwweDYyLDB4MTQsMHgwMiwweDgxIH19LAotIHsxNiwgMHhkMDUwLCAwLCB7MHgwMywweDJlLDB4NDAsMHg4OCwweDE2LDB4ODIsMHhjNCwweGEwLDB4OTEsMHgyOCwweDIxLDB4NDAsMHgyYSwweDUwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZDA2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHg1MCwweDJlLDB4MTQgfX0sCi0gezE2LCAweGQwNzAsIDAsIHsweDBjLDB4ODUsMHgwMywweDYxLDB4NDAsMHhlOCwweDUwLDB4YjIsMHgxNSwweDRkLDB4ODAsMHgwMiwweGMwLDB4MDAsMHg0OCwweDUwIH19LAotIHsxNiwgMHhkMDgwLCAwLCB7MHhiMiwweDE1LDB4MWEsMHg4MCwweDEzLDB4MzAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MiwweDAzLDB4ZTAsMHg4MCB9fSwKLSB7MTYsIDB4ZDA5MCwgMCwgezB4YzAsMHgyMCwweDMwLDB4MDAsMHgwZSwweDQwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwYTAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQ4LDB4ZGQsMHgxMCwweDM3IH19LAotIHsxNiwgMHhkMGIwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwNywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NSwweDBmLDB4OTQsMHgwMywweGU1LDB4MDgsMHhmZCB9fSwKLSB7MTYsIDB4ZDBjMCwgMCwgezB4MDIsMHgzOSwweGQwLDB4MGYsMHhkMCwweDQzLDB4ZjQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRiLDB4MGQsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGQwZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg4MCwweGM5LDB4YTYsMHgzMiwweDY4IH19LAotIHsxNiwgMHhkMGUwLCAwLCB7MHgwYywweDkwLDB4MDMsMHhhNiwweDgxLDB4ZTksMHhlOSwweDNiLDB4NDAsMHgwZSwweDU4LDB4MDMsMHgzNiwweDIwLDB4YzksMHhhMCB9fSwKLSB7MTYsIDB4ZDBmMCwgMCwgezB4MzcsMHg3OCwweDBkLDB4ZGEsMHgwMywweDM2LDB4MjYsMHhjNSwweDAwLDB4MzcsMHg2OSwweDBlLDB4ZGUsMHgwMywweGE2LDB4ODIgfX0sCi0gezE2LCAweGQxMDAsIDAsIHsweGNkLDB4YzAsMHgzMywweDUwLDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHhhNCwweDg4LDB4YTksMHgyMiwweDNhLDB4MDgsMHgwOCwweDAwLDB4MjIsMHhhMCwweGI4LDB4ZTUsMHgzMCB9fSwKLSB7MTYsIDB4ZDEyMCwgMCwgezB4MjAsMHgyOCwweDgwLDB4MjIsMHg0MywweGEwLDB4MDgsMHhlOCwweDJhLDB4M2QsMHgwOCwweGE0LDB4NjIsMHgyMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGQxMzAsIDAsIHsweDAwLDB4MmUsMHgxMCwweDA4LDB4OGUsMHgwMywweDIzLDB4YTAsMHg4OCwweGEwLDB4MjAsMHgyOCwweDBiLDB4OGEsMHg4MiwweDBlIH19LAotIHsxNiwgMHhkMTQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHg5MSwweDQwLDB4MjAsMHg0NCB9fSwKLSB7MTYsIDB4ZDE1MCwgMCwgezB4MDgsMHg5MCwweGEyLDB4ODUsMHgxMCwweGExLDB4MjAsMHgyYywweDQyLDB4MGIsMHgxNCwweDEyLDB4OGMsMHgwMSwweDkxLDB4MTAgfX0sCi0gezE2LCAweGQxNjAsIDAsIHsweDJjLDB4NDgsMHgwOSwweDExLDB4MGEsMHhjNCwweDAwLDB4ODEsMHgwMCwweDJjLDB4NTAsMHgwYiwweDExLDB4MTIsMHhjNSwweDAxIH19LAotIHsxNiwgMHhkMTcwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0OCwweDBiLDB4MTgsMHgwZSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDE4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5MSwweDAwLDB4MjIsMHg0MSwweDA4LDB4OTQsMHg0MiwweDI0LDB4MDAsMHhiMSwweDQwLDB4MjAgfX0sCi0gezE2LCAweGQxOTAsIDAsIHsweDQwLDB4NDksMHhiMiwweDYyLDB4MjQsMHgwMCwweDk5LDB4MDAsMHgwYSwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTUsMHg4MCwweDg5IH19LAotIHsxNiwgMHhkMWEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyNCwweDgwLDB4YjksMHgwMCwweDI2LDB4NTAsMHg0YiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZDFiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAyLDB4ZDksMHgwMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGQxYzAsIDAsIHsweDJjLDB4OTUsMHgxMywweGE0LDB4MTAsMHhlOSwweDAwLDB4YmUsMHg2MCwweDhmLDB4OTAsMHgwYiwweGE0LDB4MTAsMHg1OSwweDAwIH19LAotIHsxNiwgMHhkMWQwLCAwLCB7MHgxZSwweDQwLDB4OWQsMHg5NCwweDIzLDB4ZTQsMHgwMiwweDg5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTYsMHgwOCB9fSwKLSB7MTYsIDB4ZDFlMCwgMCwgezB4NzksMHgwMCwweGI2LDB4NDAsMHgwNywweDk4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxZjAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDAwLDB4ZTksMHgwMiwweDNjLDB4NDAsMHgyZiwweDk4LDB4MDIsMHhlNCwweDAwLDB4ZjksMHg0MiwweDNhIH19LAotIHsxNiwgMHhkMjAwLCAwLCB7MHg2OCwweDBhLDB4MTAsMHgwMywweGU0LDB4MTAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4OTAsMHgwZiwweDI2LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZDIxMCwgMCwgezB4MDQsMHgzZSwweDQwLDB4MGUsMHgxYywweDAzLDB4ZTYsMHgwMCwweGMxLDB4MDAsMHgzYSwweDUwLDB4MGYsMHg5OSwweDgzLDB4Y2EgfX0sCi0gezE2LCAweGQyMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGU4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhkMjMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHgyMCwweDAwLDB4ZDgsMHg0MiwweDMyLDB4MDQsMHgwYywweDg4LDB4MTMsMHhlMCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4ZDI0MCwgMCwgezB4MzAsMHgwMCwweDBjLDB4MDQsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDBlLDB4ODAsMHgyMywweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyNTAsIDAsIHsweGM4LDB4ODAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAxLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMjYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgxMCwweDhhLDB4MDAsMHgyZSwweDgwLDB4MjgsMHgyMCwweDIyLDB4MjgsMHgwMCwweDhhLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4ZDI3MCwgMCwgezB4YjAsMHg4OCwweGUwLDB4MDIsMHgyOCwweDEwLDB4ZGEsMHgwMCwweGEzLDB4YjQsMHgwOCwweGU4LDB4MTAsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweGQyODAsIDAsIHsweDIwLDB4MjMsMHhhMCwweDQ4LDB4ZWQsMHgxYSwweDI4LDB4MDAsMHhkZSwweDAwLDB4MjMsMHg5MCwweDBhLDB4ZTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHhkMjkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCB9fSwKLSB7MTYsIDB4ZDJhMCwgMCwgezB4MDgsMHgzMCwweDBhLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyMCwweGMyLDB4MmEsMHgzMCwweDIyLDB4YTQsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGQyYjAsIDAsIHsweDA4LDB4ZTAsMHgxOCwweDA5LDB4MGEsMHg0YywweDAwLDB4OTMsMHgwMiwweDI0LDB4ZTgsMHgwMiwweDA4LDB4MDYsMHg0YywweDAwIH19LAotIHsxNiwgMHhkMmMwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhkOCwweDBhLDB4OTAsMHgwMiwweDRhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDJkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4ODAsMHg4NywweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDBlLDB4MDAsMHg4NywweDEwLDB4MjUgfX0sCi0gezE2LCAweGQyZTAsIDAsIHsweDAwLDB4MGEsMHg2MCwweDAyLDB4NWUsMHgwMCwweDk3LDB4MDAsMHgyOSwweDgyLDB4MDgsMHg1MCwweDEyLDB4NTQsMHgwMCwweDhmIH19LAotIHsxNiwgMHhkMmYwLCAwLCB7MHg4MCwweDYxLDB4ZDAsMHgwOCwweDA0LDB4MDIsMHg1YywweDAxLDB4YjcsMHgwOCwweGE5LDB4YTAsMHgwYSwweDUwLDB4ODIsMHg2OCB9fSwKLSB7MTYsIDB4ZDMwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDgwLDB4ZTcsMHg4MCwweDM4LDB4ZTQgfX0sCi0gezE2LCAweGQzMTAsIDAsIHsweDA4LDB4N2UsMHgwMywweDFmLDB4MDAsMHhkZiwweDgwLDB4YjEsMHgyMSwweDFlLDB4NzgsMHgwMywweGRjLDB4MDQsMHhmMywweDgwIH19LAotIHsxNiwgMHhkMzIwLCAwLCB7MHg1YiwweGUxLDB4MDgsMHgyOCwweDAzLDB4NWUsMHgwMCwweGQ3LDB4ODAsMHgzNSwweDYwLDB4MGUsMHg2OCwweDAzLDB4NGUsMHgwMCB9fSwKLSB7MTYsIDB4ZDMzMCwgMCwgezB4ZGYsMHg4MCwweDMxLDB4ZTAsMHgwZSwweGY4LDB4MGIsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzNDAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDAyLDB4ZmIsMHg3NCwweDNlLDB4ZDAsMHg0ZiwweGIyLDB4ODMsMHhlZCwweDAwLDB4N2IsMHg2OCwweDNhIH19LAotIHsxNiwgMHhkMzUwLCAwLCB7MHgwMCwweDhkLDB4ODAsMHgwMywweGE0LDB4MjAsMHhkYiwweDAxLDB4MzYsMHg4MCwweDZmLDB4YjAsMHg0MSwweDg0LDB4MDAsMHhlYiB9fSwKLSB7MTYsIDB4ZDM2MCwgMCwgezB4MDAsMHgzYywweGMwLDB4MGYsMHhlNiwweDgzLDB4YmMsMHg0MCwweGRiLDB4MDAsMHhiNiwweDgwLDB4MGYsMHhiMCwweDAzLDB4ODIgfX0sCi0gezE2LCAweGQzNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgyMCwweGRmLDB4YzAsMHgzYiwweGU2IH19LAotIHsxNiwgMHhkMzgwLCAwLCB7MHgwZSwweGY4LDB4MTMsMHhmZiwweDQ0LDB4YzcsMHg4MiwweDNiLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhiZSwweDEwLDB4Y2YsMHhjOCB9fSwKLSB7MTYsIDB4ZDM5MCwgMCwgezB4MzMsMHg2MCwweDhkLDB4ZWIsMHgwMywweDNlLDB4MDAsMHhkYiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZDgsMHgwMywweDNlLDB4NDAgfX0sCi0gezE2LCAweGQzYTAsIDAsIHsweGNlLDB4ODAsMHgzMywweGU0LDB4MGYsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkM2IwLCAwLCB7MHhhOCwweDExLDB4YmMsMHg0MCwweDg3LDB4MDAsMHgyMSwweGU0LDB4MGIsMHg3OCwweGEyLDB4Y2UsMHg5MCwweGM3LDB4YjAsMHgyMCB9fSwKLSB7MTYsIDB4ZDNjMCwgMCwgezB4ZTgsMHgwYiwweDI4LDB4OTIsMHhiNiwweDg4LDB4ODcsMHhhMCwweDIwLDB4NjQsMHgwYiwweDM1LDB4MDMsMHgxNCwweDAwLDB4ODcgfX0sCi0gezE2LCAweGQzZDAsIDAsIHsweGIyLDB4MzksMHhjMCwweDJjLDB4YzAsMHgwMywweDVlLDB4MDIsMHhjZiwweDAwLDB4MzEsMHhjZSwweDBiLDB4NzYsMHgxMiwweDJhIH19LAotIHsxNiwgMHhkM2UwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhMywweDEwLDB4MjksMHhjOCB9fSwKLSB7MTYsIDB4ZDNmMCwgMCwgezB4MGIsMHg3NCwweDAyLDB4ZGMsMHg4MCwweDhmLDB4MDAsMHgyOSwweGNjLDB4MGEsMHgzMCwweDA2LDB4MTQsMHg4MCwweDg3LDB4MTAgfX0sCi0gezE2LCAweGQ0MDAsIDAsIHsweDIxLDB4YzAsMHgwYiwweDY2LDB4MDIsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwYiwweDUxLDB4MDIsMHgxYywweDgwIH19LAotIHsxNiwgMHhkNDEwLCAwLCB7MHg5NiwweDAwLDB4MjEsMHhjMCwweDViLDB4NzQsMHg4MiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhhMywweDAwLDB4MjAsMHhjMCwweDBiLDB4YjgsMHgwMiwweGNjLDB4MDAsMHg4YiwweDQwLDB4YTggfX0sCi0gezE2LCAweGQ0MzAsIDAsIHsweGMwLDB4OGIsMHgwOCwweDIyLDB4OGMsMHgwMiwweDgzLDB4MDAsMHg2MCwweGMwLDB4MGIsMHgzMCwweDQyLDB4MDQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhkNDQwLCAwLCB7MHg0MCwweDI4LDB4ZmMsMHg4YSwweDAwLDB4MDIsMHg2ZSwweDAwLDB4ODMsMHgwMCwweGEwLDB4ZDAsMHg4YiwweDM4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZDQ1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiYywweDAyLDB4ZWYsMHgwMCwweDNiLDB4YzAgfX0sCi0gezE2LCAweGQ0NjAsIDAsIHsweDRmLDB4ZjgsMHgwMiwweGZjLDB4MDIsMHhjZiwweDAwLDB4MzgsMHgxMiwweDBlLDB4OTgsMHgwMiwweDJjLDB4MDAsMHhjZiwweDAwIH19LAotIHsxNiwgMHhkNDcwLCAwLCB7MHgzMiwweGMwLDB4MDksMHg5MCwweDAzLDB4NjQsMHgwMiwweDgxLDB4YzAsMHgzZSwweGQwLDB4MGYsMHg5MCwweDA3LDB4M2MsMHgwMyB9fSwKLSB7MTYsIDB4ZDQ4MCwgMCwgezB4ZDksMHgwMCwweDMyLDB4NjAsMHgwZiwweDg4LDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0OTAsIDAsIHsweDgwLDB4MDAsMHhjYywweDAwLDB4ZGIsMHgwMCwweDNlLDB4YzAsMHg4ZiwweGIwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMiwweDM2IH19LAotIHsxNiwgMHhkNGEwLCAwLCB7MHhjMCwweDRmLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDAwLDB4YmUsMHg5MCwweDBmLDB4OWMsMHgxMywweGVjLDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ZDRiMCwgMCwgezB4MTgsMHgzYSwweGQwLDB4MDQsMHhkNSwweDAzLDB4ZWMsMHg0MCwweGU5LDB4MDAsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGQ0YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGNmLDB4MDAsMHgzZCwweGMxIH19LAotIHsxNiwgMHhkNGQwLCAwLCB7MHg4YywweGYwLDB4MDMsMHgyYywweDAwLDB4ZWYsMHgwYSwweGIzLDB4MTIsMHgyYywweDcwLDB4MjMsMHgxNCwweDBhLDB4NGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDRlMCwgMCwgezB4MzUsMHg2MCwweDBkLDB4YjAsMHgwMywweDA0LDB4MDAsMHhjZCwweDgwLDB4MDcsMHhlOCwweDBjLDB4YzQsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGQ0ZjAsIDAsIHsweGNkLDB4MDAsMHgzMSwweGUyLDB4MmMsMHhlMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMiwweGFiLDB4MDIsMHgyZSwweGMwLDB4MGUsMHhiMCwweDAyLDB4MmMsMHgwMCwweDhiLDB4MDAsMHgzMiB9fSwKLSB7MTYsIDB4ZDUxMCwgMCwgezB4MzAsMHgwMCwweDljLDB4MDMsMHg2YywweDAwLDB4OGIsMHgwNCwweDIyLDB4MzYsMHgwOCwweDM0LDB4NGEsMHgyYywweDA4LDB4ODkgfX0sCi0gezE2LCAweGQ1MjAsIDAsIHsweDkwLDB4MjAsMHhiOCwweDBmLDB4ODQsMHgwMCwweGFjLDB4MDIsMHg4OSwweDAwLDB4MzYsMHhhMCwweDA4LDB4YTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkNTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZDU0MCwgMCwgezB4MDgsMHhiMCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQxLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGQ1NTAsIDAsIHsweDI2LDB4NDAsMHgwYiwweGIwLDB4MDIsMHgyNiwweDAwLDB4OGIsMHgwMCwweDI2LDB4YzAsMHg1OCwweDEwLDB4MTIsMHgyYywweDA0IH19LAotIHsxNiwgMHhkNTYwLCAwLCB7MHg4MiwweDgwLDB4MmEsMHg0OSwweDA4LDB4MzAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDU3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhhMywweDE0LDB4MmMsMHhjOCwweDFhLDB4MzQsMHg4YSwweDBjLDB4ODQsMHg4MywweDQwLDB4MjIgfX0sCi0gezE2LCAweGQ1ODAsIDAsIHsweGM4LDB4MDgsMHgwMywweDYyLDB4NGMsMHhjMCwweGEzLDB4NjAsMHgyMCwweDQwLDB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhkNTkwLCAwLCB7MHg0NSwweDA4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHg4YywweGEwLDB4ODMsMHgwMCwweDI2LDB4NDAsMHgwOCwweDMwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4ZDVhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4Y2YsMHg0MCwweDJmLDB4ZDIgfX0sCi0gezE2LCAweGQ1YjAsIDAsIHsweDhjLDB4ZjYsMHgwMywweDNjLDB4MjIsMHhjZiwweDQwLDB4MzIsMHhkNiwweDRjLDB4YTYsMHhjMSwweDNkLDB4YTAsMHg4NywweDQ4IH19LAotIHsxNiwgMHhkNWMwLCAwLCB7MHgzNiwweDBkLDB4MGYsMHhiMSwweDAyLDB4MjQsMHg0MiwweGNiLDB4NjAsMHgxNiwweGMwLDB4MGMsMHhkMCwweDAzLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4ZDVkMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1ZTAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmYsMHgyMCwweDNlLDB4Y2EsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZGIsMHgzNCwweDNhIH19LAotIHsxNiwgMHhkNWYwLCAwLCB7MHhjOCwweDBmLDB4ODAsMHgwMywweGU0LDB4MTAsMHhkYiwweDIxLDB4M2UsMHgxOCwweDBkLDB4ZjIsMHgwMywweGZjLDB4ODAsMHhmZiB9fSwKLSB7MTYsIDB4ZDYwMCwgMCwgezB4MzAsMHgzNSwweGMwLDB4MGYsMHhjMCwweDEzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGQ2MTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDExLDB4ZmMsMHgwMCwweGZiLDB4MGIsMHgyZiwweGNhIH19LAotIHsxNiwgMHhkNjIwLCAwLCB7MHg4ZCwweGYyLDB4MDMsMHhmYSwweDAwLDB4OTYsMHg4MCwweDNiLDB4YzQsMHgwZCwweGYxLDB4MDMsMHg3YywweDgwLDB4ZWMsMHg4MCB9fSwKLSB7MTYsIDB4ZDYzMCwgMCwgezB4M2IsMHgwOCwweDBjLDB4YzIsMHgwMywweDc0LDB4MDIsMHhjYywweDgwLDB4M2YsMHg0OCwweDBlLDB4ZjAsMHgwMywweDMwLDB4YTAgfX0sCi0gezE2LCAweGQ2NDAsIDAsIHsweGQ1LDB4ODAsMHgzZiwweDQwLDB4MGMsMHhmOCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjUwLCAwLCB7MHg4MCwweDA4LDB4ZWUsMHg0MCwweGJmLDB4ODAsMHgyZiwweGYwLDB4MGIsMHhmNywweDIyLDB4ZWUsMHgyMCwweDhhLDB4ODAsMHgyMyB9fSwKLSB7MTYsIDB4ZDY2MCwgMCwgezB4ZmMsMHg4OCwweDc1LDB4MTIsMHgzZCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MDAsMHgyOCwweDgwLDB4MDIsMHgyNCwweDA4LDB4ODggfX0sCi0gezE2LCAweGQ2NzAsIDAsIHsweDAwLDB4NmYsMHg1MCwweDAwLDB4ZjUsMHgwMiwweDI5LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg1NCwweDBkLDB4OTAsMHgxMSwweGEwIH19LAotIHsxNiwgMHhkNjgwLCAwLCB7MHgwNCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMSB9fSwKLSB7MTYsIDB4ZDY5MCwgMCwgezB4MDksMHgzMCwweDgyLDB4Y2MsMHg4MiwweGJiLDB4MDAsMHgyOCwweGMwLDB4NDksMHgzMiwweDAyLDB4Y2QsMHgwMCwweGI4LDB4MDAgfX0sCi0gezE2LCAweGQ2YTAsIDAsIHsweDJjLDB4NTAsMHgwOSwweDAxLDB4MDIsMHgwYywweDQwLDB4ODAsMHgwMCwweDZjLDB4NDQsMHgwOSwweDMwLDB4MDIsMHgyMCwweDAwIH19LAotIHsxNiwgMHhkNmIwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDE4LDB4MzAsMHgwNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDZjMCwgMCwgezB4YzAsMHgwMSwweGFjLDB4MDAsMHhiYiwweDAxLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGVlLDB4MDAsMHhhYSwweDAwLDB4NGEgfX0sCi0gezE2LCAweGQ2ZDAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDUyLDB4ZWMsMHgwMCwweDk4LDB4MDIsMHgyNiwweDQwLDB4MDksMHg4MCwweDAyLDB4NmMsMHgwMSwweGFhIH19LAotIHsxNiwgMHhkNmUwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgyMiwweDAwLDB4YTksMHg4MCwweDJlLDB4NDEsMHgwOSwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZDZmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGQ3MDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGNlLDB4ODQsMHhmYSwweDAwLDB4MWEsMHhjMCwweDhkLDB4YjAsMHg0MywweGVjLDB4MDAsMHhmMCwweDAyIH19LAotIHsxNiwgMHhkNzEwLCAwLCB7MHgzZiwweDAwLDB4MGQsMHhkMSwweDAzLDB4MzUsMHgwMCwweGNiLDB4NDgsMHgyZSwweDQwLDB4MmYsMHhiMCwweDA5LDB4MjIsMHg4MCB9fSwKLSB7MTYsIDB4ZDcyMCwgMCwgezB4ZjksMHhjOCwweDFlLDB4ZTAsMHgwOCwweGIxLDB4ZTIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3MzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4N2IsMHgwMCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MjMsMHhmYywweDAwLDB4ZGUsMHgwMCwweDI0IH19LAotIHsxNiwgMHhkNzQwLCAwLCB7MHhjMCwweDRmLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhlYywweDIwLDB4M2IsMHgwMCwweDBlLDB4OTgsMHgwMywweDk0LDB4MDIsMHhkZCB9fSwKLSB7MTYsIDB4ZDc1MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4NGUsMHhmMCwweDAxLDB4ZjgsMHgwMCwweGRkLDB4MDAsMHgzYywweGU0LDB4MGYsMHhkOCwweDAzLDB4YjggfX0sCi0gezE2LCAweGQ3NjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4YWMsMHhjMCwweGZiLDB4MjAsMHgzMiwweGM4IH19LAotIHsxNiwgMHhkNzcwLCAwLCB7MHg4ZCwweGIwLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMCwweDNhLDB4YzIsMHgyYywweDMwLDB4MDMsMHg2YywweDA0LDB4ZDgsMHgwMiB9fSwKLSB7MTYsIDB4ZDc4MCwgMCwgezB4M2MsMHg0NCwweDhkLDB4MTAsMHgwMywweGFkLDB4MDMsMHhlYSwweDAwLDB4M2MsMHg0MCwweDBjLDB4NzAsMHgyMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGQ3OTAsIDAsIHsweGM4LDB4NDAsMHgzYSwweGMwLDB4MGQsMHhiYywweDAzLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2EwLCAwLCB7MHhjOCwweDAxLDB4M2QsMHgwMCwweGJmLDB4NDIsMHgyMywweGYwLDB4MGQsMHhmMCwweDAyLDB4ZTUsMHgwMCwweGUyLDB4MDEsMHgzNyB9fSwKLSB7MTYsIDB4ZDdiMCwgMCwgezB4ZjEsMHgwOCwweGYwLDB4MGUsMHgzZCwweGMwLDB4YTgsMHgwMCwweDJlLDB4NTQsMHgyOCwweDkwLDB4MDIsMHgyYywweDAwLDB4OGEgfX0sCi0gezE2LCAweGQ3YzAsIDAsIHsweDA1LDB4M2IsMHg0MSwweDQ4LDB4ZjUsMHgwMywweDhjLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhkNCwweDBlLDB4OTUsMHgwMiwweGYyIH19LAotIHsxNiwgMHhkN2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDA0LDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4ZDdlMCwgMCwgezB4ODksMHgzMCwweDAyLDB4Y2MsMHg0MCwweGIyLDB4MDAsMHgyYywweGM0LDB4NDgsMHgzMCwweDAyLDB4MmMsMHgwMiwweGEyLDB4MDAgfX0sCi0gezE2LCAweGQ3ZjAsIDAsIHsweDJjLDB4MjAsMHgxOSwweDIwLDB4MWEsMHg4MCwweDA4LDB4YjAsMHgwMCwweDZjLDB4NDAsMHgwOCwweDMwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHhkODAwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg0MCwweDA4LDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDgxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweGEwLDB4ZTEsMHhlMCwweDA5LDB4NzgsMHgwMiwweGRmLDB4MDQsMHhhZSwweDgwLDB4MmQgfX0sCi0gezE2LCAweGQ4MjAsIDAsIHsweGUwLDB4MDgsMHg3OSwweDAyLDB4MWUsMHgxMCwweDg3LDB4OTAsMHgyYywweDI4LDB4MjksMHg2OCwweDAyLDB4ODIsMHg4MSwweGI0IH19LAotIHsxNiwgMHhkODMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgwOCwweDc4LDB4MTAsMHhiYywweDAwLDB4OGYsMHg4MCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZDg0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDA1LDB4ZjMsMHg5MiwweDMwLDB4Y2EgfX0sCi0gezE2LCAweGQ4NTAsIDAsIHsweDBkLDB4MzAsMHgwMywweGNjLDB4MDAsMHhmMywweDAwLDB4M2MsMHhjMCwweDBjLDB4MzAsMHgwMiwweDBjLDB4ODAsMHg3MCwweDAwIH19LAotIHsxNiwgMHhkODYwLCAwLCB7MHgyYywweDQwLDB4MGQsMHgyMCwweDAzLDB4ODksMHgwMCwweGIxLDB4MDAsMHgzZSwweDQwLDB4MmMsMHgzMCwweDAzLDB4ZWMsMHg1MCB9fSwKLSB7MTYsIDB4ZDg3MCwgMCwgezB4YzMsMHgyMCwweDNjLDB4NDAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4ODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNjLDB4YzAsMHgwZSwweGIwLDB4ODMsMHhlYywweDQwLDB4ZWEsMHgwMCwweDM2IH19LAotIHsxNiwgMHhkODkwLCAwLCB7MHhjMiwweDBmLDB4YjAsMHg4MywweGFjLDB4MDAsMHhmOCwweDAwLDB4M2UsMHg0OCwweDBlLDB4ZTAsMHgwYiwweDdhLDB4ODAsMHhjZiB9fSwKLSB7MTYsIDB4ZDhhMCwgMCwgezB4MDAsMHgzYiwweDQ0LDB4MGYsMHhmMCwweDAzLDB4ZWMsMHhjMCwweGZmLDB4MDAsMHgwMywweDQ0LDB4MGUsMHhlMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGQ4YjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MjMsMHgzZSwweGM4IH19LAotIHsxNiwgMHhkOGMwLCAwLCB7MHgxZCwweGIwLDB4MDMsMHhlZSwweDAwLDB4Y2EsMHgwMCwweDNlLDB4YzgsMHgwYywweGIyLDB4MDMsMHgyZCwweDkwLDB4YzgsMHg4NCB9fSwKLSB7MTYsIDB4ZDhkMCwgMCwgezB4MzYsMHgwMCwweDJkLDB4YjAsMHgwMywweDYwLDB4MTgsMHg5YiwweDgwLDB4MzMsMHg1MCwweDBjLDB4ZjIsMHgwMywweGUyLDB4MDAgfX0sCi0gezE2LCAweGQ4ZTAsIDAsIHsweGM5LDB4ODAsMHgzMiwweDQwLDB4MGMsMHhiOCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOGYwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4MjgsMHgwYywweGQyLDB4MjgsMHg3MywweDAyLDB4ZmMsMHgwMCwweDg2LDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4ZDkwMCwgMCwgezB4Y2MsMHgyOCwweDcwLDB4ODMsMHgwYywweDIwLDB4OTUsMHgwMSwweDIwLDB4MDAsMHgwOSwweDMwLDB4MTIsMHgxMCwweDA0LDB4ODUgfX0sCi0gezE2LCAweGQ5MTAsIDAsIHsweDAwLDB4MjEsMHg1MiwweDA4LDB4NzUsMHgwMiwweGQ4LDB4MDAsMHg4NywweDAwLDB4MjEsMHg0MCwweDA4LDB4NjAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhkOTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ZDQsMHhiNywweGIxLDB4MDksMHhlMSB9fSwKLSB7MTYsIDB4ZDkzMCwgMCwgezB4MDgsMHg3OCwweDIyLDB4ZGUsMHgwMCwweDk1LDB4ODAsMHgyZCwweGUwLDB4MDgsMHg3OCwweDBhLDB4NWUsMHg0MiwweDk0LDB4YzAgfX0sCi0gezE2LCAweGQ5NDAsIDAsIHsweDIxLDB4NjAsMHgwOCwweDc4LDB4MDIsMHg1YSwweDAwLDB4ODcsMHg4MCwweDJkLDB4NjgsMHgwOCwweDdhLDB4MDIsMHhkNywweDAwIH19LAotIHsxNiwgMHhkOTUwLCAwLCB7MHg5NywweDgwLDB4MjAsMHg2MCwweDA5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDk2MCwgMCwgezB4NDgsMHgxMCwweGNjLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGNkLDB4ODAsMHg5MiwweDAwLDB4MmMgfX0sCi0gezE2LCAweGQ5NzAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4ODAsMHhhMCwweDQwLDB4MDksMHgzNiwweDAyLDB4NDgsMHgwMiwweDgzIH19LAotIHsxNiwgMHhkOTgwLCAwLCB7MHhhMCwweGFjLDB4NDAsMHgyYSwweDMwLDB4MDYsMHhjZSwweDAyLDB4OTMsMHgwNCwweGEwLDB4NDAsMHgwOSwweDIwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4ZDk5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNhLDB4ODAgfX0sCi0gezE2LCAweGQ5YTAsIDAsIHsweDBkLDB4YTAsMHgwMywweGZiLDB4MDIsMHhkZSwweDgwLDB4M2UsMHg4MCwweDBjLDB4YTAsMHgwMywweDI4LDB4MDAsMHhjZSwweDgwIH19LAotIHsxNiwgMHhkOWIwLCAwLCB7MHgzMiwweDgwLDB4MGMsMHhhNCwweDAzLDB4NzgsMHgwMCwweGNlLDB4YTQsMHgzZiwweDgwLDB4MGMsMHhhMCwweDA3LDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZDljMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyZCwweGUwLDB4MDIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5ZDAsIDAsIHsweDQ4LDB4MDAsMHhlMSwweDAwLDB4ZjgsMHgwMCwweDdjLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMCwweDQwLDB4ZTgsMHgxMCwweDNjIH19LAotIHsxNiwgMHhkOWUwLCAwLCB7MHgwMSwweGNmLDB4ODAsMHgwZiwweDIwLDB4MDAsMHhlOCwweDAwLDB4M2UsMHgwMCwweDBlLDB4MDQsMHgwMywweDkwLDB4MDAsMHhlOCB9fSwKLSB7MTYsIDB4ZDlmMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MGQsMHg4MCwweDA3LDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDA0LDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGRhMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHg3ZSwweDQxIH19LAotIHsxNiwgMHhkYTEwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHgyNCwweDAwLDB4ZjksMHgwMCwweDM2LDB4NjgsMHgwZSwweDkwLDB4MGYsMHhhNCwweDA4LDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZGEyMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwYiwweDI0LDB4MTIsMHhlOSwweDAwLDB4M2UsMHg0NCwweDJjLDB4OTAsMHgwMywweDY0LDB4MjQgfX0sCi0gezE2LCAweGRhMzAsIDAsIHsweGY5LDB4MDIsMHgyZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTQwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgxMCwweGI5LDB4ODAsMHgzZSwweDQwLDB4MDgsMHg5MCwweDBhLDB4MjYsMHgwMCwweGIxLDB4MTAsMHgyYSB9fSwKLSB7MTYsIDB4ZGE1MCwgMCwgezB4NzIsMHgwOCwweDkwLDB4MDcsMHg2NCwweDAyLDB4ODksMHg0MCwweDJlLDB4NDAsMHgyOCwweDkwLDB4MTIsMHgyNSwweDAwLDB4ODkgfX0sCi0gezE2LCAweGRhNjAsIDAsIHsweDQ1LDB4M2UsMHg1MCwweDBkLDB4OTAsMHgwYSwweDI1LDB4MDAsMHhiOSwweDQwLDB4MmUsMHg0MCwweDI4LDB4OTQsMHgwMywweGUwIH19LAotIHsxNiwgMHhkYTcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZGE4MCwgMCwgezB4NDgsMHg5MCwweDQyLDB4MjYsMHgwMSwweGI5LDB4NDAsMHgyNiwweDQwLDB4MGEsMHg5MCwweDQyLDB4ODQsMHgwMSwweDhiLDB4MDggfX0sCi0gezE2LCAweGRhOTAsIDAsIHsweDJjLDB4NDAsMHgwOSwweGQwLDB4ODIsMHgzNCwweDMyLDB4YTksMHgwOCwweDZlLDB4NDIsMHgwOCwweDEwLDB4MDIsMHgyNCwweDIwIH19LAotIHsxNiwgMHhkYWEwLCAwLCB7MHhiOSwweDA4LDB4MmMsMHg0MCwweDE4LDB4OTAsMHg4MiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMywweDIwLDB4MjgsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDEsMHhiMSwweDAwLDB4MjggfX0sCi0gezE2LCAweGRhYzAsIDAsIHsweDU4LDB4MDgsMHgxMiwweDAyLDB4MDUsMHg4OSwweDgxLDB4NDAsMHgyYywweDU4LDB4MDgsMHg1NiwweDA2LDB4MTUsMHg4MCwweDgxIH19LAotIHsxNiwgMHhkYWQwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNSwweDgwLDB4YjEsMHg0MCwweDJjLDB4NWEsMHgwOCwweDE0LDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZGFlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGRhZjAsIDAsIHsweDJlLDB4ODUsMHgwMywweDIxLDB4NDgsMHhmOCwweDAwLDB4MzYsMHgwMCwweDhlLDB4MDUsMHgwMiwweGEwLDB4MDgsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkYjAwLCAwLCB7MHgzZSwweDAwLDB4MGQsMHg4MCwweDBiLDB4MTAsMHgwNCwweGUwLDB4MDAsMHgyYywweDAwLDB4NGMsMHg4MCwweDAzLDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGIxMCwgMCwgezB4ZjAsMHgwMCwweDNlLDB4MDgsMHgwYywweDAwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNlLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhmNCwweDAwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHhkYjMwLCAwLCB7MHg0NCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDAzLDB4M2YsMHg0NCwweDFmLDB4OTEsMHgxYiwweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ZGI0MCwgMCwgezB4MDEsMHgzZiwweDUwLDB4MGUsMHg5NCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDAzLDB4YTYgfX0sCi0gezE2LCAweGRiNTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjQsMHgwMCwweGNkLDB4YTAsMHg3MSwweDY4IH19LAotIHsxNiwgMHhkYjYwLCAwLCB7MHg4ZCwweDk4LDB4MDMsMHhkNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NjAsMHgwYywweDk4LDB4OGYsMHgyNywweDIwLDB4YzksMHg0MCB9fSwKLSB7MTYsIDB4ZGI3MCwgMCwgezB4M2UsMHg3OCwweDBjLDB4OWUsMHg4YiwweDI3LDB4MjAsMHhkMSwweDExLDB4MzAsMHg2MCwweDhjLDB4OWMsMHgwMywweDI1LDB4MDAgfX0sCi0gezE2LCAweGRiODAsIDAsIHsweGY5LDB4NDAsMHgzZSwweDc4LDB4MGYsMHg5MCwweDAzLDB4NDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYjkwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgxMCwweDg4LDB4MDEsMHgyMiwweDAxLDB4MDgsMHg4YywweDIyLDB4ZTgsMHgwMCwweDg4LDB4MDIsMHgyYSB9fSwKLSB7MTYsIDB4ZGJhMCwgMCwgezB4MTQsMHgwOCwweDhjLDB4MGIsMHgyMywweDkwLDB4ODgsMHhhMCwweDJlLDB4YjAsMHgwOCwweDhjLDB4NDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGRiYjAsIDAsIHsweGEwLDB4MzYsMHgyYSwweDE4LDB4OGEsMHgwMiwweDIyLDB4MDAsMHhiOCwweGEwLDB4MmUsMHgzNCwweDBiLDB4Y2EsMHg4MiwweDBlIH19LAotIHsxNiwgMHhkYmMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHg4MSwweDQwLDB4MjQsMHg1MCB9fSwKLSB7MTYsIDB4ZGJkMCwgMCwgezB4MDksMHgxNiwweDgyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHgxMiwweDkyLDB4NTQsMHgwOCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGRiZTAsIDAsIHsweDJmLDB4NGMsMHgwOSwweDUyLDB4MTIsMHgxNCwweDgwLDB4OWQsMHgwMCwweDIxLDB4NTAsMHgwOCwweDU0LDB4MjIsMHgxNCwweDgwIH19LAotIHsxNiwgMHhkYmYwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHg0OCwweDBiLDB4ZDAsMHgwMiwweDQyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGMwMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4MDIsMHg4OSwweDAxLDB4YTIsMHg0MCwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDIsMHhhOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGRjMTAsIDAsIHsweDQwLDB4NjgsMHg5MCwweDAyLDB4NjQsMHgxMCwweGFkLDB4MDAsMHgyZiwweDQxLDB4MjgsMHg1MCwweDAyLDB4MzQsMHgwMCwweDhkIH19LAotIHsxNiwgMHhkYzIwLCAwLCB7MHg0NCwweDI3LDB4NDAsMHgzOSwweGQwLDB4MDIsMHgzNSwweDAwLDB4YmQsMHgxNCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZGMzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhjNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGRjNDAsIDAsIHsweDJkLDB4OTAsMHgwMywweGU3LDB4MDAsMHhlMSwweGUwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwYiwweDY0LDB4MDIsMHhjOSwweDA4IH19LAotIHsxNiwgMHhkYzUwLCAwLCB7MHgzYywweDUwLDB4MGMsMHg5MCwweDAyLDB4MjYsMHgwMiwweGQ5LDB4YzAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDEzLDB4MjcsMHgwMCB9fSwKLSB7MTYsIDB4ZGM2MCwgMCwgezB4ZjksMHgyMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAyLDB4ZjksMHgwMCwweDM4LDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDgwLDB4ZDksMHhhMCwweDNjIH19LAotIHsxNiwgMHhkYzgwLCAwLCB7MHg0MCwweDBmLDB4MTAsMHgwMywweGE0LDB4MDAsMHhkOSwweDEwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGM0LDB4OTIsMHhmOSB9fSwKLSB7MTYsIDB4ZGM5MCwgMCwgezB4MjEsMHgzYywweDQwLDB4MmUsMHg5MCwweDBmLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGRjYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHg0MCwweGU4LDB4MTAsMHgzZSwweDA0IH19LAotIHsxNiwgMHhkY2IwLCAwLCB7MHg0ZSwweDgwLDB4MDMsMHgyMCwweDgwLDB4ZDgsMHg2MCwweDNhLDB4MDIsMHgwYywweDgwLDB4MTMsMHgyMCwweDAwLDB4ZjgsMHg0MCB9fSwKLSB7MTYsIDB4ZGNjMCwgMCwgezB4MzYsMHgxMCwweDJkLDB4ODAsMHgwMywweGEwLDB4MDgsMHhlOCwweDQwLDB4MzIsMHgwMCwweDBkLDB4MDAsMHgwMywweDIxLDB4MDIgfX0sCi0gezE2LCAweGRjZDAsIDAsIHsweGM4LDB4NDAsMHhiMiwweDAwLDB4MGYsMHhjMCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkY2UwLCAwLCB7MHgyOCwweDExLDB4M2IsMHgxMCwweDg2LDB4MDEsMHgyZiwweGEwLDB4MGQsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ZTAsMHgyMyB9fSwKLSB7MTYsIDB4ZGNmMCwgMCwgezB4YTIsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4YmEsMHg4MCwweDIyLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAwLDB4ODIgfX0sCi0gezE2LCAweGRkMDAsIDAsIHsweDAwLDB4MmEsMHg4MCwweDI4LDB4YTAsMHgwMiwweDJhLDB4MDQsMHg4YSwweDgwLDB4MjIsMHhhMCwweDBiLDB4NjAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhkZDEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQzLDB4ODAsMHhhMiwweDAwLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4ZGQyMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHgwMCwweDkyLDB4MDAsMHgyOCwweGMwLDB4MjgsMHgzMCwweDAyLDB4MmMsMHgwMCwweGIzLDB4ODAgfX0sCi0gezE2LCAweGRkMzAsIDAsIHsweDI0LDB4YzAsMHgwOSwweDMwLDB4MGEsMHg4YywweDAwLDB4YTMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHg0YywweDAwIH19LAotIHsxNiwgMHhkZDQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhlMCwweDBiLDB4MjAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ1MCwgMCwgezB4YTAsMHgwMSwweDEwLDB4MDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDA5LDB4M2EsMHgwMiwweDM1LDB4MDAsMHg4NiwweDAwLDB4MjEgfX0sCi0gezE2LCAweGRkNjAsIDAsIHsweGMwLDB4MDgsMHg3MywweDAyLDB4MTAsMHgwMCwweGJmLDB4ODgsMHgyMSwweDAwLDB4MDgsMHg3MCwweDAyLDB4MWMsMHgwOCwweDhmIH19LAotIHsxNiwgMHhkZDcwLCAwLCB7MHgwMCwweDJiLDB4YzAsMHgwOCwweDIwLDB4MTIsMHg1ZSwweDIwLDB4ODcsMHg4OCwweDIxLDB4ODMsMHgwYiwweDYwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ZGQ4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZTUsMHg4MSwweDNkLDB4YTAgfX0sCi0gezE2LCAweGRkOTAsIDAsIHsweDJjLDB4N2EsMHgwYiwweDFlLDB4MDAsMHhkNCwweDgwLDB4MzgsMHhlMCwweDBjLDB4ZmEsMHgwYiwweDFlLDB4MDAsMHhmNiwweDgwIH19LAotIHsxNiwgMHhkZGEwLCAwLCB7MHgzNCwweGUwLDB4MGQsMHgyOCwweDAzLDB4OGEsMHgwMCwweGU2LDB4ODAsMHgzMSwweDIwLDB4MGMsMHg3OCwweDAzLDB4N2EsMHgwNCB9fSwKLSB7MTYsIDB4ZGRiMCwgMCwgezB4Y2UsMHg4NCwweDMxLDB4ZTAsMHg0ZiwweDc4LDB4NDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkYzAsIDAsIHsweDA4LDB4MGQsMHg4MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGI1LDB4MjMsMHhlNCwweDAwLDB4ZjAsMHgwNCwweDM2IH19LAotIHsxNiwgMHhkZGQwLCAwLCB7MHg0MCwweDBmLDB4YjYsMHg4NywweGUwLDB4MDAsMHhmMiwweDAwLDB4M2UsMHgwMCwweDFmLDB4YTAsMHgwYiwweGU4LDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZGRlMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHhhMCwweDAzLDB4YTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGRkZjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNjLDB4ODAsMHgzMywweGEwIH19LAotIHsxNiwgMHhkZTAwLCAwLCB7MHgwYywweGZjLDB4MDMsMHgzZSwweDAwLDB4ZmMsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGI5LDB4MjEsMHgzZSwweDAwLDB4ZmQsMHg4MiB9fSwKLSB7MTYsIDB4ZGUxMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHgwMywweDdlLDB4MTAsMHhkZiwweDg0LDB4M2QsMHhlMCwweDBjLDB4ZjgsMHgwMywweGY2LDB4MDAgfX0sCi0gezE2LCAweGRlMjAsIDAsIHsweGZkLDB4ODAsMHgzZiwweDYwLDB4MGMsMHhlOCwweDIzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTMwLCAwLCB7MHhhOCwweDExLDB4OTgsMHg0MCwweDg0LDB4MTAsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MTAsMHg4MCwweGI0LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4ZGU0MCwgMCwgezB4YzgsMHgwYiwweDdhLDB4MDIsMHgxMCwweDAwLDB4ZmQsMHgwMCwweDIxLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDQyLDB4ODcgfX0sCi0gezE2LCAweGRlNTAsIDAsIHsweDAwLDB4MmQsMHhjNCwweDQ4LDB4NjEsMHgwMiwweGQ2LDB4ODAsMHhiNSwweDAwLDB4MmYsMHgwNCwweDA4LDB4NjEsMHg4MiwweDJhIH19LAotIHsxNiwgMHhkZTYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDAsMHg4MSwweDAwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGU3MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MWMsMHgxMCwweGJjLDB4MDgsMHgyNSwweDgwLDB4NGIsMHgzMCwweDBlLDB4MWMsMHgwMCwweGI0LDB4MDAgfX0sCi0gezE2LCAweGRlODAsIDAsIHsweDIwLDB4YzAsMHgwOCwweDIwLDB4MDIsMHg1OCwweDAwLDB4OTYsMHgwMCwweDJmLDB4MDAsMHgwYSwweDcwLDB4MDIsMHhkMCwweDgwIH19LAotIHsxNiwgMHhkZTkwLCAwLCB7MHhiNCwweDE4LDB4MmQsMHg0MCwweDA5LDB4ZjgsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGVhMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDIsMHg4MCwweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgyMiwweDBiLDB4YzAsMHhiMCwweGMwLDB4MjIgfX0sCi0gezE2LCAweGRlYjAsIDAsIHsweDgwLDB4MGIsMHgzMCwweDAyLDB4MDAsMHgwMCwweGEwLDB4MDQsMHgyMiwweDAwLDB4MjgsMHhhMCwweDAyLDB4MmIsMHgwMCwweDhhIH19LAotIHsxNiwgMHhkZWMwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweGEwLDB4MDYsMHhjMCwweDAwLDB4YjAsMHhjMiwweDJjLDB4MDAsMHgwOSwweGJjLDB4MWEsMHgwOCB9fSwKLSB7MTYsIDB4ZGVkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4YzAgfX0sCi0gezE2LCAweGRlZTAsIDAsIHsweDBjLDB4ZjAsMHgwYiwweDI2LDB4MDAsMHhmOSwweGMwLDB4MzYsMHgwMCwweDBmLDB4ZjAsMHgxMywweDJjLDB4MTAsMHhiYiwweDQwIH19LAotIHsxNiwgMHhkZWYwLCAwLCB7MHhmMiwweGMwLDB4MDgsMHg5MCwweDAzLDB4NjcsMHgwMCwweGQ5LDB4ODAsMHgzZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZGYwMCwgMCwgezB4ZmIsMHhkMCwweDNlLDB4YzAsMHgyOSwweDhjLDB4MDAsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmMTAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0NCwweDNjLDB4ZDAsMHgyZiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgyMCwweDNlIH19LAotIHsxNiwgMHhkZjIwLCAwLCB7MHg0MCwweDBmLDB4MzAsMHgwMywweGUwLDB4MDAsMHhmYiwweDA4LDB4M2UsMHgwMCwweDBmLDB4OTAsMHgxMywweGU0LDB4NDIsMHhmOSB9fSwKLSB7MTYsIDB4ZGYzMCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWUsMHgwMCwweGZiLDB4MDAsMHgzZSwweDgwLDB4MGUsMHg4MiwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGRmNDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZTAsMHgwOCwweGZjLDB4ODAsMHgzMiwweGU0IH19LAotIHsxNiwgMHhkZjUwLCAwLCB7MHgwZSwweGYwLDB4MDMsMHg3NCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4NDAsMHgwYywweGYwLDB4MGIsMHgzYywweDAwLDB4ZmUsMHgwMCB9fSwKLSB7MTYsIDB4ZGY2MCwgMCwgezB4M2YsMHhjMCwweDBkLDB4YzEsMHgwMywweDIwLDB4MjAsMHhjYywweDEwLDB4MzMsMHgwMCwweDBjLDB4ZDEsMHgwMywweDU4LDB4MDAgfX0sCi0gezE2LCAweGRmNzAsIDAsIHsweGNlLDB4MDAsMHgyZiwweGMwLDB4MGYsMHhkMSwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjgwLCAwLCB7MHg4MSwweDQ0LDB4NjIsMHgwMCwweGIwLDB4NDAsMHgyYSwweGYxLDB4MDgsMHhiMCwweDEyLDB4MjYsMHgwOCwweGI4LDB4YzgsMHgyZSB9fSwKLSB7MTYsIDB4ZGY5MCwgMCwgezB4NzAsMHgwYSwweGIwLDB4MDIsMHgyMCwweDAwLDB4YmEsMHgwMCwweDJlLDB4MDAsMHgyOCwweDgwLDB4MDMsMHgyMiwweDQwLDB4ODggfX0sCi0gezE2LCAweGRmYTAsIDAsIHsweDAxLDB4MjAsMHgwMCwweDBhLDB4ODAsMHgwMiwweDI4LDB4MDAsMHg4YSwweDAxLDB4MmUsMHg4MCwweDhiLDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkZmIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI2LDB4MDAsMHhiOCwweDI4LDB4MjIsMHg0MiB9fSwKLSB7MTYsIDB4ZGZjMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NjYsMHgwMCwweGI4LDB4ODAsMHgyZSwweDMwLDB4ODgsMHhiMCwweDAyLDB4MmMsMHgwMCwweGI5LDB4MDEgfX0sCi0gezE2LCAweGRmZDAsIDAsIHsweDJlLDB4YzAsMHg4OCwweDkwLDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDBjIH19LAotIHsxNiwgMHhkZmUwLCAwLCB7MHg4OSwweDAxLDB4MmUsMHg0MCwweDFiLDB4ODAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGZmMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjgsMHhjMCwweDI4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MmMgfX0sCi0gezE2LCAweGUwMDAsIDAsIHsweDQwLDB4MGEsMHgzMCwweDAyLDB4MDAsMHgwMCwweGIxLDB4MDAsMHgyYywweDAwLDB4MDgsMHgxMCwweDBhLDB4MDQsMHgwMCwweDgxIH19LAotIHsxNiwgMHhlMDEwLCAwLCB7MHgwMSwweGEyLDB4YzAsMHgwOCwweDAwLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgwMCwweDJjLDB4MDAsMHgxYiwweDAwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4ZTAyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGUwMzAsIDAsIHsweDBlLDB4ZjAsMHgyMywweDY0LDB4MDgsMHhmOCwweDAwLDB4MmUsMHgwMCwweDBjLDB4ZjAsMHgwMywweDJjLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhlMDQwLCAwLCB7MHgzZSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMiwweGM4LDB4MDQsMHgzMiwweDAwLDB4MWMsMHg5MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA1MCwgMCwgezB4YzgsMHgwMSwweDNlLDB4NDEsMHg5ZiwweDkwLDB4NDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwNjAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgwYywweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDEwLDB4ZjQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlMDcwLCAwLCB7MHgwMCwweDBmLDB4ZjQsMHgyMywweGYwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDBlLDB4YzAsMHgwMywweGIwLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTA4MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZTEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDAxLDB4MWYsMHg1MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGUwOTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDBkLDB4ZjAsMHhkMCwweGZmLDB4MjAsMHgzZSwweGQwIH19LAotIHsxNiwgMHhlMGEwLCAwLCB7MHg4ZSwweGIwLDB4MDMsMHhlYywweGEwLDB4ZGIsMHgyOCwweDNlLDB4Y2MsMHgwYywweGIzLDB4MDMsMHhhZCwweDA4LDB4ZjgsMHgzYyB9fSwKLSB7MTYsIDB4ZTBiMCwgMCwgezB4MzIsMHgyMywweDBlLDB4NDgsMHgyMywweDdhLDB4MDAsMHhmZCwweDk0LDB4M2YsMHhlMCwweDBmLDB4NzgsMHgzMywweGVlLDB4MDggfX0sCi0gezE2LCAweGUwYzAsIDAsIHsweGJmLDB4ODAsMHgzZiwweGU0LDB4MGYsMHhmOSwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGQwLCAwLCB7MHhhMCwweDAwLDB4ZWMsMHhjOCwweGJmLDB4ZDEsMHgwZiwweGM4LDB4MGMsMHgyNiwweDgyLDB4ZmQsMHgyNCwweDhmLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ZTBlMCwgMCwgezB4OTksMHgwYSwweGYyLDB4NjIsMHgxZCwweGQwLDB4OTksMHg2MSwweDIyLDB4NzEsMHg4OCwweDg4LDB4MDIsMHhhYywweDAwLDB4YjggfX0sCi0gezE2LCAweGUwZjAsIDAsIHsweDIyLDB4MmUsMHgyMCwweDRiLDB4ODgsMHgwMywweGEwLDB4MDAsMHg4MCwweDAwLDB4MmUsMHgwOCwweDBiLDB4ODAsMHgyMywweDYwIH19LAotIHsxNiwgMHhlMTAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDQsMHhiMywweDAzLDB4MGMsMHhjYyB9fSwKLSB7MTYsIDB4ZTExMCwgMCwgezB4MGEsMHgxMywweDEyLDB4Y2MsMHgxNCwweGEzLDB4MGUsMHgwYywweDU4LDB4MGEsMHgzMywweDAyLDB4OGMsMHgxMCwweGEzLDB4MjAgfX0sCi0gezE2LCAweGUxMjAsIDAsIHsweGEwLDB4MGEsMHgxOCwweDkwLDB4MDIsMHg0OCwweGEwLDB4YjAsMHgyMCwweDI0LDB4ODAsMHgwYSwweDIwLDB4MDIsMHhjYywweDA5IH19LAotIHsxNiwgMHhlMTMwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg4MCwweDBiLDB4MzIsMHg0MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE0MCwgMCwgezB4ZTAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAwLDB4MmUsMHhjMCwweDRiLDB4ODAsMHhhMiwweGVjLDB4MDAsMHhhYiwweDAwLDB4NGUgfX0sCi0gezE2LCAweGUxNTAsIDAsIHsweDQ2LDB4MmEsMHhiMCwweDAyLDB4MmMsMHgwNCwweDliLDB4ODAsMHgyYSwweDYwLDB4OGEsMHg5YywweDAyLDB4YWMsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlMTYwLCAwLCB7MHg4MSwweDJlLDB4NDAsMHgwYiwweDk4LDB4MDIsMHhhMywweDAwLDB4OGEsMHgwMCwweDJlLDB4NDAsMHgwYiwweDgwLDB4MDQsMHhmMCB9fSwKLSB7MTYsIDB4ZTE3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMSwweDAwLDB4ZmIsMHgwNCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGUxODAsIDAsIHsweDBlLDB4YjQsMHgwMywweGVjLDB4MGEsMHhkYiwweDAyLDB4MmUsMHhkMSwweDBlLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDgyIH19LAotIHsxNiwgMHhlMTkwLCAwLCB7MHgzMiwweDI4LDB4MWUsMHgwYywweDAzLDB4NjgsMHgwMCwweGI5LDB4MDAsMHgzZSwweDQwLDB4NGYsMHhiMCwweDQzLDB4ZWQsMHgwMCB9fSwKLSB7MTYsIDB4ZTFhMCwgMCwgezB4ZWEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxYjAsIDAsIHsweGMwLDB4MDEsMHhiOCwweDE4LDB4ZmYsMHgwMiwweDFmLDB4YzAsMHgwYywweGUyLDB4MDMsMHhmYywweDAwLDB4ZGYsMHgwMywweDJmIH19LAotIHsxNiwgMHhlMWMwLCAwLCB7MHhhMSwweDBmLDB4NzAsMHgwMywweGZjLDB4MDQsMHhhYiwweDA0LDB4MzcsMHg0MiwweDJkLDB4ZDAsMHgwMiwweDdjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTFkMCwgMCwgezB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4YjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhmMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGUxZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTksMHgwMCwweGRiLDB4MDAsMHgzYywweGMwIH19LAotIHsxNiwgMHhlMWYwLCAwLCB7MHgyZSwweDk0LDB4MDEsMHg2YywweDExLDB4Y2IsMHgwMCwweGI4LDB4YzAsMHgwYywweGIwLDB4MDMsMHg2YywweDAwLDB4ZWIsMHgwMSB9fSwKLSB7MTYsIDB4ZTIwMCwgMCwgezB4MzIsMHgxMCwweDA3LDB4OTIsMHgwMywweGE4LDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwYywweDA3LDB4YTIsMHgwMywweGFkLDB4MDAgfX0sCi0gezE2LCAweGUyMTAsIDAsIHsweGQ4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjIwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwOCwweGJmLDB4MDAsMHgyZiwweGMwLDB4ODgsMHg4MCwweDAyLDB4M2MsMHgwOCwweGVmLDB4MDMsMHgyMiB9fSwKLSB7MTYsIDB4ZTIzMCwgMCwgezB4MDAsMHgwZCwweGY1LDB4MDAsMHgzYywweDAwLDB4OGIsMHg4MiwweDIyLDB4NjAsMHgwMywweDljLDB4MDIsMHgyYywweDEwLDB4YjkgfX0sCi0gezE2LCAweGUyNDAsIDAsIHsweGIwLDB4MjIsMHhmMCwweDBiLDB4OTAsMHgwMiwweDIwLDB4MDAsMHhiYiwweDAwLDB4MjIsMHhlMiwweDBkLDB4YjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlMjUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQwLDB4MDAsMHhiMywweDAyLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ZTI2MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4NmMsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMwLDB4MDksMHgzNCwweDA0LDB4ZWMsMHgwMCwweGE4LDB4MDAgfX0sCi0gezE2LCAweGUyNzAsIDAsIHsweDIyLDB4ZjAsMHgwYiwweDAwLDB4MDIsMHg4OCwweDAwLDB4YjMsMHgwMCwweDI4LDB4ZTAsMHgwYiwweDE0LDB4MDIsMHhhMCwweDAwIH19LAotIHsxNiwgMHhlMjgwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI5MCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MmQsMHhlOCwweDA4LDB4NzgsMHgwMiwweDBlLDB4YzgsMHhhNywweDkwLDB4MjEgfX0sCi0gezE2LCAweGUyYTAsIDAsIHsweGE4LDB4MTksMHgzOCwweDUyLDB4OWUsMHhjMSwweDg3LDB4ODAsMHgyMSwweGUyLDB4MGIsMHhkOSwweDgyLDB4OWUsMHgwMCwweGI2IH19LAotIHsxNiwgMHhlMmIwLCAwLCB7MHhhMCwweDJkLDB4MjAsMHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4YjQsMHhjMSwweDIxLDB4MjAsMHgwOSwweDQ4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTJjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDAsMHgwYywweDgwLDB4YjMsMHgxMCwweDNlLDB4ZTAgfX0sCi0gezE2LCAweGUyZDAsIDAsIHsweDBlLDB4M2EsMHgwNywweDRlLDB4MDAsMHhjYiwweDkwLDB4M2EsMHg2MSwweDBkLDB4MzgsMHgwMywweGNlLDB4ZDEsMHhlMSwweDk4IH19LAotIHsxNiwgMHhlMmUwLCAwLCB7MHgzMCwweGE0LDB4OGYsMHgxMCwweDAzLDB4ODgsMHgwMCwweGJhLDB4YTEsMHgzYywweDg0LDB4MDcsMHgwMCwweDAzLDB4ODIsMHhkNCB9fSwKLSB7MTYsIDB4ZTJmMCwgMCwgezB4ZDEsMHgwMCwweDcyLDB4ODAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzMDAsIDAsIHsweDQwLDB4MTUsMHhiYywweDA0LDB4ZmYsMHgwMCwweDNmLDB4YzAsMHgwZiwweGMyLDB4MjMsMHhlYywweGIwLDB4ZmYsMHgwMCwweDMyIH19LAotIHsxNiwgMHhlMzEwLCAwLCB7MHgwNCwweDA2LDB4YjQsMHgyMywweDdjLDB4MTAsMHhiZiwweDAwLDB4M2UsMHg4NCwweDBmLDB4YjAsMHgwMywweDdjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4ZTMyMCwgMCwgezB4MDAsMHgzMywweDQwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZlLDB4MDAsMHhiZiwweDQwLDB4MGYsMHhjOCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGUzMzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4OCwweDA1LDB4ZTQsMHgwMCwweGNiLDB4MzMsMHgzZSwweGM4IH19LAotIHsxNiwgMHhlMzQwLCAwLCB7MHg0YywweGIwLDB4MDMsMHhhYywweDkwLDB4ZGIsMHhhMCwweDM2LDB4YzAsMHgwZSwweGJhLDB4NDMsMHg2YywweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZTM1MCwgMCwgezB4M2UsMHg0MCwweDBmLDB4MDAsMHgwZiwweDI4LDB4MDAsMHhmYiwweDAwLDB4M2UsMHg0MCwweDBmLDB4MTgsMHg0MywweDYwLDB4MDAgfX0sCi0gezE2LCAweGUzNjAsIDAsIHsweGZhLDB4MDAsMHgzZSwweDQwLDB4NGYsMHgwOCwweDBiLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzcwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgxMCwweDA3LDB4MDgsMHgyYywweGNhLDB4MDgsMHgyMCwweDAyLDB4MWMsMHgyMCwweDg3LDB4MjgsMHgzZiB9fSwKLSB7MTYsIDB4ZTM4MCwgMCwgezB4ODAsMHg4YSwweGYwLDB4MDIsMHgxZCwweDQwLDB4ODcsMHgwNCwweDJkLDB4YzAsMHgwYiwweDcwLDB4MDIsMHgxYywweDAwLDB4YjYgfX0sCi0gezE2LCAweGUzOTAsIDAsIHsweDAwLDB4MmQsMHg4MCwweDBiLDB4NjAsMHgwMywweDFjLDB4MDAsMHhiNSwweDAwLDB4MmQsMHg4MCwweDBiLDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlM2EwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweGEwLDB4MmQsMHhlNCB9fSwKLSB7MTYsIDB4ZTNiMCwgMCwgezB4MGEsMHg1OCwweDAyLDB4MWUsMHgwMSwweDgzLDB4OTAsMHgyMSwweDcwLDB4MGIsMHg3OSwweDAyLDB4OWUsMHgwMSwweDg1LDB4YzAgfX0sCi0gezE2LCAweGUzYzAsIDAsIHsweDJkLDB4ZTAsMHg0YiwweDU4LDB4MTIsMHgxYSwweDAwLDB4YjYsMHg4MCwweDJkLDB4MjAsMHgwYiwweDQ4LDB4MDIsMHg1MiwweDAwIH19LAotIHsxNiwgMHhlM2QwLCAwLCB7MHhiNCwweDgwLDB4MmQsMHgyMCwweDBiLDB4NDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNlMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMCwweDg4LDB4MzYsMHgwMiwweDBjLDB4MDIsMHg4MywweDAwLDB4NmMgfX0sCi0gezE2LCAweGUzZjAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDBhLDB4YWMsMHgwMCwweDliLDB4ZTAsMHg2YywweGM4LDB4MGIsMHgzMiwweDAyLDB4MGMsMHgwMSwweGIzIH19LAotIHsxNiwgMHhlNDAwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwYywweDEwLDB4YjMsMHg0MCwweDJjLDB4YzAsMHgwYiwweDNjLDB4ODIsMHgxMiB9fSwKLSB7MTYsIDB4ZTQxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAyLDB4Y2EsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGU0MjAsIDAsIHsweDBlLDB4ZTQsMHg4YiwweDI4LDB4MDAsMHhjYSwweDAwLDB4MzMsMHg5NSwweDBmLDB4YTAsMHgwNywweGE4LDB4MDIsMHhjZSwweDQwIH19LAotIHsxNiwgMHhlNDMwLCAwLCB7MHgzZiwweGIwLDB4MGYsMHhlNCwweDgyLDB4MjgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHhhMCwweDIzLDB4NjgsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ0MCwgMCwgezB4ZmEsMHg0MCwweDNlLDB4ODEsMHg0ZiwweGE0LDB4ZTMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDgwLDB4ZjAsMHgwMCwweDNjLDB4MDAsMHgyZiwweDAwLDB4MDIsMHg2MCwweDAwLDB4ZTgsMHgwMCwweDNjIH19LAotIHsxNiwgMHhlNDYwLCAwLCB7MHgwMCwweDBlLDB4ODAsMHgwMSwweDIwLDB4MDAsMHhlOCwweDA0LDB4NWUsMHgwNCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZTQ3MCwgMCwgezB4MDEsMHgzZiwweDEwLDB4MGYsMHhjNCwweDAzLDB4YjAsMHgwMCwweGZjLDB4MDksMHgzZiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGU0ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGE5LDB4MjAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhlNDkwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHg0NCwweDA0LDB4ZDksMHgwMCwweDNlLDB4NDAsMHgwZCwweDkwLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4ZTRhMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwYiwweGU0LDB4MDgsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBlLDB4OTgsMHgwMywweGU2LDB4MDAgfX0sCi0gezE2LCAweGU0YjAsIDAsIHsweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MTgsMHg5MCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ZTRkMCwgMCwgezB4NDAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDAwLDB4ZDksMHgwNCwweDIyLDB4NDAsMHgwYiwweDFjLDB4MGIsMHg2NCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGU0ZTAsIDAsIHsweDk0LDB4MmMsMHg1MCwweDA4LDB4OWMsMHgwMiwweGU0LDB4MTQsMHhiOSwweDkwLDB4MGUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlNGYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHg4OSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4ZTUwMCwgMCwgezB4NGEsMHg5MCwweDAyLDB4NjQsMHgwMCwweDk5LDB4MDQsMHgyZSwweDQwLDB4MDgsMHg5OCwweDgyLDB4ZTQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGU1MTAsIDAsIHsweDZhLDB4NDAsMHgwYSwweDkyLDB4ODIsMHhlNCwweDAwLDB4YmQsMHgwMSwweDJmLDB4NTAsMHgxMiwweGQ2LDB4MDIsMHhmNCwweDQwIH19LAotIHsxNiwgMHhlNTIwLCAwLCB7MHhiZCwweDAwLDB4MGYsMHg0MCwweDBiLDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4MjAsMHg0OCwweDA4LDB4MTIsMHgwMiwweDA0LDB4ODAsMHg4MSwweDIyLDB4MmMgfX0sCi0gezE2LCAweGU1NDAsIDAsIHsweDQ4LDB4YTgsMHgxMiwweDA2LDB4YzQsMHg5MCwweDkxLDB4MjAsMHgyOCwweDUwLDB4MGIsMHg5MCwweDAyLDB4NDUsMHgwMCwweGI1IH19LAotIHsxNiwgMHhlNTUwLCAwLCB7MHg0MCwweDZkLDB4NDAsMHgwOCwweDUwLDB4MTIsMHhkNCwweDA0LDB4YjUsMHgwMiwweDJkLDB4NDAsMHgwYiwweDUwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZTU2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzgsMHgwMCwweDM2LDB4MTQgfX0sCi0gezE2LCAweGU1NzAsIDAsIHsweDBhLDB4ODUsMHgwMywweDQxLDB4NDAsMHhkOCwweDUwLDB4MmUsMHgxNCwweDBjLDB4ODUsMHgwMywweGMxLDB4NDAsMHhjOCwweDUwIH19LAotIHsxNiwgMHhlNTgwLCAwLCB7MHhiYSwweDAwLDB4MGUsMHg4MCwweDIzLDB4ZTAsMHgwMCwweDc4LDB4MDAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwNCB9fSwKLSB7MTYsIDB4ZTU5MCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1YTAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQwLDB4ZDksMHgxMCwweDNlLDB4NDQsMHgwNywweGYxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmIH19LAotIHsxNiwgMHhlNWIwLCAwLCB7MHg0NCwweGFmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4MzcsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZTVjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGU1ZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHhkNCwweGZkLDB4YTIsMHgzYSwweDcwIH19LAotIHsxNiwgMHhlNWUwLCAwLCB7MHg4YywweDllLDB4MDMsMHgyNiwweDgwLDB4YzksMHhhMCwweDMyLDB4NjgsMHgwYywweGRiLDB4NDMsMHgyNywweDgwLDB4OWQsMHhhMiB9fSwKLSB7MTYsIDB4ZTVmMCwgMCwgezB4YjcsMHg0MCwweDBmLDB4NTAsMHgwMywweDY1LDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMSwweDA3LDB4ZDAsMHgwMywweGY1LDB4MDQgfX0sCi0gezE2LCAweGU2MDAsIDAsIHsweGZkLDB4NDAsMHgyZiwweGMwLDB4MGMsMHhkMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4OCwweGI4LDB4NTAsMHgyMiwweDM4LDB4MDgsMHg4ZSwweDAwLDB4YTIsMHhhMCwweDg4LDB4ZTgsMHgyMiB9fSwKLSB7MTYsIDB4ZTYyMCwgMCwgezB4MzgsMHg0OCwweDg4LDB4MDMsMHg2MiwweDEwLDB4YTgsMHhlOCwweDNjLDB4MDAsMHgwYiwweDgwLDB4MDMsMHg2MiwweDgwLDB4YjggfX0sCi0gezE2LCAweGU2MzAsIDAsIHsweDAxLDB4MmUsMHg4MCwweDBiLDB4ODAsMHgyMSwweGEyLDB4MDAsMHhiMCwweDg0LDB4MmUsMHgyYSwweDI4LDB4OGEsMHg4MiwweGNlIH19LAotIHsxNiwgMHhlNjQwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4NDAsMHhiMSwweDAwLDB4MjgsMHg1OCB9fSwKLSB7MTYsIDB4ZTY1MCwgMCwgezB4ODAsMHgxMywweDQwLDB4MDUsMHgwMCwweDgxLDB4NDAsMHgyMCwweDUyLDB4MjgsMHgxNiwweDAyLDB4ODUsMHg4MCwweDliLDB4YzIgfX0sCi0gezE2LCAweGU2NjAsIDAsIHsweDY0LDB4NDEsMHg4YiwweDk4LDB4MDIsMHgwNCwweDAwLDB4YjEsMHgwOSwweDJjLDB4NDAsMHgxYiwweDEwLDB4MjAsMHhjNCwweDAwIH19LAotIHsxNiwgMHhlNjcwLCAwLCB7MHhiMSwweDAwLDB4MmMsMHg0MCwweDQ4LDB4MTAsMHgwMiwweGMyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY4MCwgMCwgezB4MTgsMHgxNSwweGE1LDB4ODQsMHhiOSwweDAwLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHgwMSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGU2OTAsIDAsIHsweDUwLDB4MDgsMHg5MCwweDQyLDB4NjQsMHgwMCwweGE5LDB4MTAsMHhhZSwweDU4LDB4MDMsMHg5OCwweDAyLDB4NjQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlNmEwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4NDYsMHhhNCwweDEwLDB4YjksMHgwMCwweDJlLDB4NDEsMHgwOCwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4ZTZiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNywweDAwLDB4ZjksMHgwMCwweDJhLDB4NDAgfX0sCi0gezE2LCAweGU2YzAsIDAsIHsweDJjLDB4OTQsMHgwYiwweDI0LDB4MDIsMHhjOSwweDAwLDB4YjIsMHg0NCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDQsMHhkOSwweDgwIH19LAotIHsxNiwgMHhlNmQwLCAwLCB7MHhiNiwweDQxLDB4OGYsMHgxOCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NjAsMHgzZSwweDQwLDB4MGYsMHg5NiwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4ZTZlMCwgMCwgezB4ZjksMHg4MCwweDNlLDB4NDIsMHg4YywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ZjAsIDAsIHsweDI4LDB4MDEsMHhhNiwweDAwLDB4ZjEsMHgwMCwweDNlLDB4NDAsMHgwZiwweDFjLDB4MDMsMHhjNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhlNzAwLCAwLCB7MHg0MCwweDhmLDB4OTAsMHgyMywweGM0LDB4MTAsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBmLDB4OTAsMHgwYiwweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZTcxMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MDcsMHg5MCwweDIzLDB4ZTQsMHgwMCwweGY5LDB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGU3MjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGY4LDB4MDAsMHhiZSwweDAwIH19LAotIHsxNiwgMHhlNzMwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHgyMCwweDAwLDB4YzgsMHgwMCwweDMyLDB4MDAsMHgwYywweDAwLDB4ODMsMHgyMCwweDAwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4ZTc0MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGEwLDB4MDAsMHhmOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDggfX0sCi0gezE2LCAweGU3NTAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMiwweDgwLDB4NDgsMHhhMCwweDAzLDB4NjgsMHgwMCwweGFhLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZTc3MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDMsMHg2OCwweDAwLDB4ODIsMHgwMCwweDJmLDB4ODAsMHgwOCwweGU2LDB4MDIsMHgyOCwweDA0LDB4YmUgfX0sCi0gezE2LCAweGU3ODAsIDAsIHsweDQwLDB4MjMsMHg4MCwweDBiLDB4ZTgsMHgwMiwweGVhLDB4MDAsMHhiZSwweDAxLDB4MjIsMHg4MCwweDBiLDB4ZTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhlNzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHg5MywweDAxLDB4MjAsMHhjMSB9fSwKLSB7MTYsIDB4ZTdhMCwgMCwgezB4MGEsMHgzMCwweDAyLDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyMCwweGMwLDB4ODgsMHgzOCwweDQyLDB4MGMsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGU3YjAsIDAsIHsweDI0LDB4YzAsMHgwYSwweDNlLDB4NDIsMHg4YywweDAwLDB4YjIsMHg0YywweDI0LDB4ZTAsMHg0YiwweDM4LDB4MDIsMHhjNCwweDQxIH19LAotIHsxNiwgMHhlN2MwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDBiLDB4MTAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdkMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDAwLDB4MjAsMHhjOSwweDQ4LDB4NzAsMHgwMiwweGRjLDB4NDAsMHhhNywweDE0LDB4MmMgfX0sCi0gezE2LCAweGU3ZTAsIDAsIHsweGM4LDB4MjgsMHgzMCwweDgyLDB4NWMsMHhjMSwweDg1LDB4MDAsMHgyZCwweGUwLDB4MmEsMHhmMCwweDEyLDB4MWMsMHg4MCwweGI3IH19LAotIHsxNiwgMHhlN2YwLCAwLCB7MHhhMCwweDIxLDB4ODIsMHgwYiwweDcwLDB4ODIsMHhkNCwweDExLDB4YjYsMHg4MCwweDIxLDB4NDAsMHg0YiwweDUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ZTgwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDgwLDB4ZDUsMHg4MCwweDI5LDB4ZWEgfX0sCi0gezE2LCAweGU4MTAsIDAsIHsweDRlLDB4M2EsMHgwNywweDBlLDB4ODAsMHhlMywweGIwLDB4MzEsMHhmYywweDBjLDB4NDgsMHgwMywweDBlLDB4NDEsMHhlNywweDgwIH19LAotIHsxNiwgMHhlODIwLCAwLCB7MHgzZCwweGUwLDB4MGUsMHg3OCwweDAzLDB4OWUsMHg4MCwweGY0LDB4YzQsMHgzNSwweGUwLDB4MGYsMHg3OCwweDI3LDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4ZTgzMCwgMCwgezB4ZjUsMHg4MCwweGIxLDB4ZTAsMHgwZiwweDU4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4NDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4MzEsMHgwNCwweDNhLDB4YzQsMHgwZiwweGI1LDB4OTMsMHg2ZCwweDA4LDB4ZmIsMHg0MCwweDNhIH19LAotIHsxNiwgMHhlODUwLCAwLCB7MHhjOCwweDYzLDB4ODAsMHgyMywweGVjLDB4OTgsMHhlOSwweDAwLDB4M2UsMHhjMCwweDBkLDB4YjAsMHg0MywweGVjLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZTg2MCwgMCwgezB4ODAsMHgzZSwweDQwLDB4NGYsMHhhMCwweDAzLDB4ZWMsMHgwMCwweGY4LDB4NjgsMHgzZSwweDQwLDB4OGYsMHg5OCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGU4NzAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg2MCwweGViLDB4OTAsMHgzZSwweGU0IH19LAotIHsxNiwgMHhlODgwLCAwLCB7MHgwZiwweGI4LDB4MDAsMHgzZiwweDQwLDB4Y2IsMHg4MCwweDdmLDB4ZTAsMHgwZSwweGZiLDB4MDMsMHgyZSwweDQwLDB4Y2IsMHg4MCB9fSwKLSB7MTYsIDB4ZTg5MCwgMCwgezB4M2YsMHhlMCwweDBmLDB4NzksMHg0MywweDJlLDB4NjAsMHhjYSwweDgxLDB4MzMsMHg2NCwweDhmLDB4ZDksMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGU4YTAsIDAsIHsweGZmLDB4ODEsMHgzMywweGUwLDB4MGYsMHhkOSwweDhiLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGIwLCAwLCB7MHhhOCwweDAxLDB4OWMsMHgwMCwweDg3LDB4ODEsMHgxOSwweGU0LDB4MGIsMHhmYSwweDEzLDB4NWUsMHg4MCwweDg3LDB4YjIsMHgyZCB9fSwKLSB7MTYsIDB4ZThjMCwgMCwgezB4ZWMsMHgwZCwweDc5LDB4MDEsMHg5ZSwweDAwLDB4ZDUsMHg5MCwweDJkLDB4ZjgsMHgwYiwweDc4LDB4MDMsMHg3ZSwweDA4LDB4YWIgfX0sCi0gezE2LCAweGU4ZDAsIDAsIHsweDkxLDB4MjksMHg4NSwweDBiLDB4NTEsMHgwMiwweGRjLDB4NDgsMHhiNiwweDQwLDB4MjEsMHg0MCwweDBiLDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhlOGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDhjLDB4MTQsMHhiNSwweDIwLDB4NmQsMHhjOCB9fSwKLSB7MTYsIDB4ZThmMCwgMCwgezB4MGIsMHg3MiwweDAyLDB4NWMsMHg4MCwweDg3LDB4MjAsMHg2OSwweGMwLDB4ODgsMHg1MywweDAyLDB4Y2MsMHg4MSwweDk3LDB4NTAgfX0sCi0gezE2LCAweGU5MDAsIDAsIHsweDJkLDB4YzgsMHgwYiwweGY3LDB4MGEsMHhkYywweGMwLDB4ODQsMHgwMSwweDIxLDB4NDQsMHgxYiwweDcwLDB4MjIsMHhkYywweDAwIH19LAotIHsxNiwgMHhlOTEwLCAwLCB7MHhiNSwweDAwLDB4MjEsMHhjNCwweDBiLDB4NTAsMHg4NiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkyMCwgMCwgezB4MjAsMHgxNCwweGNmLDB4MzAsMHg5MSwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzQsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmMgfX0sCi0gezE2LCAweGU5MzAsIDAsIHsweGYyLDB4MGIsMHgxMCwweDIyLDB4MGMsMHgwMCwweDkxLDB4MDAsMHgyYywweGM4LDB4MGIsMHgxOCwweDBhLDB4Y2QsMHgwMSwweGEzIH19LAotIHsxNiwgMHhlOTQwLCAwLCB7MHgwMCwweDI4LDB4NjAsMHgwYiwweDIxLDB4MDIsMHhjZSwweDIwLDB4YjgsMHg0MCwweGEwLDB4NTQsMHgwYiwweDE4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZTk1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTEsMHhiZCwweDAwLDB4ZjksMHgwMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGU5NjAsIDAsIHsweDBmLDB4ZjQsMHgwMiwweDdjLDB4MTIsMHhjZiwweDAzLDB4M2YsMHhjMiwweDBlLDB4YjAsMHgwMywweGZjLDB4MDQsMHg5YiwweDAyIH19LAotIHsxNiwgMHhlOTcwLCAwLCB7MHgyZSwweGYyLDB4MGYsMHhhNCwweDBiLDB4ZGMsMHgwMCwweGNlLDB4MDAsMHhiMCwweGM4LDB4OGYsMHhhNCwweDAzLDB4ZWYsMHgwMCB9fSwKLSB7MTYsIDB4ZTk4MCwgMCwgezB4ZjgsMHg4MCwweDMyLDB4ZjUsMHgxZiwweGRkLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5OTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDQwLDB4ZTksMHgwMCwweDNhLDB4YzAsMHgwZiwweGIxLDB4MDMsMHhjYywweDAwLDB4ZjMsMHgwMCwweDNlIH19LAotIHsxNiwgMHhlOWEwLCAwLCB7MHhjMCwweDBkLDB4YjQsMHgwOSwweGVjLDB4MTgsMHhmOSwweDEwLDB4M2UsMHgxMCwweDRmLDB4YjEsMHgwYSwweDZjLDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4ZTliMCwgMCwgezB4ODksMHgzNiwweDgyLDB4MGIsMHhhNiwweDAzLDB4ZWMsMHg1MCwweGY5LDB4NTAsMHgzZSwweGMwLDB4MWYsMHg5MCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGU5YzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZkLDB4YTAsMHgzZCwweGMwIH19LAotIHsxNiwgMHhlOWQwLCAwLCB7MHgwYywweDcwLDB4ODMsMHgyYywweDAwLDB4ZWYsMHgwMiwweDM1LDB4YzAsMHgwZCwweGUyLDB4MDMsMHhmYywweDA0LDB4ZmYsMHgwMiB9fSwKLSB7MTYsIDB4ZTllMCwgMCwgezB4MmQsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MTAsMHhkYywweDAwLDB4M2YsMHg4MCwweDBjLDB4ZDgsMHgwMywweGZjLDB4MDAgfX0sCi0gezE2LCAweGU5ZjAsIDAsIHsweGRlLDB4MTgsMHgzMywweGYwLDB4NGYsMHhkMCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTAwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4NGMsMHhiMCwweDAzLDB4NmMsMHgwMCwweDhiLDB4MDIsMHgzNiB9fSwKLSB7MTYsIDB4ZWExMCwgMCwgezB4YzAsMHgwZCwweGFjLDB4MTIsMHhlYywweDAwLDB4NzksMHgwMCwweDJlLDB4MzAsMHgwZCwweDNkLDB4NDIsMHhhYywweDAwLDB4ODkgfX0sCi0gezE2LCAweGVhMjAsIDAsIHsweDg4LDB4MWEsMHgxMCwweDBkLDB4ODYsMHgwMiwweGVlLDB4MDQsMHhiYiwweDQwLDB4MjIsMHhlMCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlYTMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZWE0MCwgMCwgezB4MDgsMHhiMCwweDQyLDB4YWMsMHgwMCwweDBiLDB4MDUsMHgyNiwweGMwLDB4MDksMHg5NCwweDIwLDB4ZWMsMHgwMCwweGI5LDB4ODAgfX0sCi0gezE2LCAweGVhNTAsIDAsIHsweDZlLDB4YzQsMHg4OCwweGIwLDB4ODIsMHgyYywweDAwLDB4OWIsMHg4MiwweDJlLDB4NDIsMHgwOCwweDgxLDB4MDIsMHhlNCwweDgwIH19LAotIHsxNiwgMHhlYTYwLCAwLCB7MHhiOCwweDAwLDB4MjIsMHhjMSwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHhiMSwweDI1LDB4MmMsMHhjYSwweDA4LDB4MzQsMHg0NiwweGNjLDB4MDgsMHg4MywweDAwLDB4MjQgfX0sCi0gezE2LCAweGVhODAsIDAsIHsweGMyLDB4MGIsMHgwMiwweDUyLDB4Y2MsMHg4MSwweDgzLDB4MDAsMHgyYywweDAwLDB4MTksMHhiMiwweDQyLDB4YWMsMHg4MCwweDgxIH19LAotIHsxNiwgMHhlYTkwLCAwLCB7MHgwOCwweDI4LDB4ODAsMHgwOSwweDAwLDB4MDIsMHhjNCwweDQwLDB4YjEsMHgwMCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZWFhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2YywweDAwLDB4YjksMHgwMCwweDNmLDB4ZDAgfX0sCi0gezE2LCAweGVhYjAsIDAsIHsweDA4LDB4ZjYsMHgwNywweGJjLDB4YzIsMHhhZiwweDMwLDB4NzUsMHhkYywweDBkLDB4MTYsMHgwMiwweGZjLDB4ZTAsMHhiOSwweDUwIH19LAotIHsxNiwgMHhlYWMwLCAwLCB7MHgzZSwweGNjLDB4MGMsMHhiMCwweDIzLDB4MmMsMHgxMCwweGQ5LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg5MCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZWFkMCwgMCwgezB4ZGUsMHgwMSwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhZTAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmQsMHgxMCwweDNmLDB4Y2EsMHgyZSwweGY2LDB4MDMsMHg2ZCwweDk0LDB4OWYsMHgzMCwweDNhIH19LAotIHsxNiwgMHhlYWYwLCAwLCB7MHhjOSwweDBjLDB4ODMsMHg5MywweGZjLDB4ODAsMHhmZiwweDExLDB4N2UsMHgxOSwweDBiLDB4YjEsMHgwMywweGZjLDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ZWIwMCwgMCwgezB4MDgsMHgzYiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZmMsMHg4MCwweDc3LDB4MDAsMHhiZiwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGViMTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZmMsMHgwMCwweGY0LDB4OTQsMHgzNywweGM4IH19LAotIHsxNiwgMHhlYjIwLCAwLCB7MHgwZCwweDY5LDB4NjMsMHg3YywweDEwLDB4ZmYsMHg2MiwweDM3LDB4YzAsMHgwZCwweGI0LDB4MDMsMHg3YywweDYwLDB4ZDQsMHg4MCB9fSwKLSB7MTYsIDB4ZWIzMCwgMCwgezB4M2YsMHg0MCwweDBmLDB4NDgsMHgyMywweDMyLDB4MDAsMHhjZSwweDAwLDB4YmYsMHg0MCwweDhmLDB4ZDEsMHgwMywweDMwLDB4ZTAgfX0sCi0gezE2LCAweGViNDAsIDAsIHsweGZmLDB4MzAsMHgzYiwweDYwLDB4MGYsMHhkOCwweDAzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjUwLCAwLCB7MHg4MCwweDEwLDB4ZWQsMHgyMCwweGI4LDB4MjQsMHgyMywweGY0LDB4NDksMHhhMiwweDAyLDB4M2YsMHg0MCwweDhmLDB4NTEsMHgyMyB9fSwKLSB7MTYsIDB4ZWI2MCwgMCwgezB4ZGEsMHgwOCwweGY2LDB4MTIsMHgzZCwweDgwLDB4OWIsMHg4MCwweDJlLDB4NDksMHg0YiwweDgwLDB4MDMsMHg0MCwweDAwLDB4ZDkgfX0sCi0gezE2LCAweGViNzAsIDAsIHsweDAxLDB4MjIsMHg3NCwweDBiLDB4ZDUsMHgwMiwweDIxLDB4MDAsMHhiZiwweDQyLDB4MmUsMHg0OSwweDBiLDB4OWMsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlYjgwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4ODAsMHhiOCwweDIwLDB4MjgsMHhjMSB9fSwKLSB7MTYsIDB4ZWI5MCwgMCwgezB4MWIsMHhhMCwweDAyLDB4NGMsMHgwMCwweDkzLDB4MjAsMHgyYywweGQ4LDB4MGIsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkwLDB4MDEgfX0sCi0gezE2LCAweGViYTAsIDAsIHsweDJjLDB4YzYsMHgxYSwweGEwLDB4MDIsMHg2OCwweDA4LDB4ODMsMHgwMCwweGE0LDB4NDAsMHgwYiwweDEwLDB4MDIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmIwLCAwLCB7MHhiMywweDEwLDB4MjgsMHg0MiwweDBiLDB4MTQsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJjMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDYwLDB4MmEsMHhjMCwweDFiLDB4YTAsMHg4ZSwweGFjLDB4MDEsMHg5YiwweDA1LDB4MjYgfX0sCi0gezE2LCAweGViZDAsIDAsIHsweGMwLDB4MDMsMHhiMCwweDQyLDB4NmMsMHgwMCwweDliLDB4ODAsMHgyZSwweGMwLDB4MDMsMHhhMCwweDA2LDB4NjksMHgwMCwweDk5IH19LAotIHsxNiwgMHhlYmUwLCAwLCB7MHg4MCwweGFhLDB4YzAsMHgwYiwweDkwLDB4MDIsMHg2MywweDAwLDB4M2IsMHgwMCwweDJlLDB4NTgsMHg0YiwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZWJmMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDA0LDB4ZjgsMHg4MCwweGJhLDB4YzAgfX0sCi0gezE2LCAweGVjMDAsIDAsIHsweDBmLDB4MzAsMHgwMywweDZjLDB4MTAsMHhkYiwweDAzLDB4MzYsMHhjMCwweDhmLDB4YjAsMHgwMywweGVjLDB4MDgsMHhkOCwweDgwIH19LAotIHsxNiwgMHhlYzEwLCAwLCB7MHg3ZSwweGUwLDB4MDYsMHg4OCwweDAzLDB4NDEsMHgwOCwweGNiLDB4YTAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDBiLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4ZWMyMCwgMCwgezB4N2IsMHgwMCwweDNhLDB4MDEsMHgwZiwweDkwLDB4MDMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmMsMHg4NCwweDMyLDB4YzAsMHgwYywweGY5LDB4MDMsMHg1YywweDEwLDB4ZWYsMHgwMCwweDNiIH19LAotIHsxNiwgMHhlYzQwLCAwLCB7MHhjMCwweDBjLDB4NzAsMHgwMywweDljLDB4MDAsMHhlYywweDAxLDB4M2YsMHhlNCwweDRmLDB4ZDEsMHgwMywweGYxLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZWM1MCwgMCwgezB4MDUsMHgzMywweDYwLDB4MGYsMHhkMCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZiwweDIxLDB4MGYsMHhkMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGVjNjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGM4LDB4NDAsMHgzYSwweGM2IH19LAotIHsxNiwgMHhlYzcwLCAwLCB7MHgwZCwweGI0LDB4MDMsMHg2YywweDAwLDB4ZjMsMHgwMCwweDM0LDB4YzAsMHgwZSwweGIwLDB4MDMsMHg2YywweDAwLDB4ZTksMHgxMCB9fSwKLSB7MTYsIDB4ZWM4MCwgMCwgezB4M2EsMHhjMCwweDBmLDB4ODQsMHgwMywweDJjLDB4NjAsMHhjYiwweDAwLDB4MzIsMHg2MCwweDBjLDB4NTAsMHgwMywweDYxLDB4MDAgfX0sCi0gezE2LCAweGVjOTAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDkwLDB4MGUsMHg5MCwweGEzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2EwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMiwweDg4LDB4MDEsMHgwMSwweGYwLDB4MjAsMHhiMCwweDAxLDB4M2UsMHgwMCwweDNmLDB4MDAsMHgzMyB9fSwKLSB7MTYsIDB4ZWNiMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MzIsMHgzYywweDA4LDB4ODksMHg4MCwweDIyLDB4YzAsMHgwMSwweDE1LDB4MTIsMHhhYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGVjYzAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDQ4LDB4ZGIsMHgwMiwweDJmLDB4NDAsMHg4ZiwweDAwLDB4MmUsMHgwMSwweDA4LDB4ZDQsMHg4MCwweDMyIH19LAotIHsxNiwgMHhlY2QwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHgwOCwweDAwLDB4MDgsMHhmMCB9fSwKLSB7MTYsIDB4ZWNlMCwgMCwgezB4MDgsMHgwMCwweDEyLDB4NGMsMHgwMCwweDMzLDB4MDEsMHgyNCwweGMwLDB4NGEsMHgzMCwweDAyLDB4NGMsMHgwMCwweGEwLDB4MjAgfX0sCi0gezE2LCAweGVjZjAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHg0NiwweDA0LDB4ODMsMHgwNCwweDIwLDB4YzAsMHgyOSwweDE4LDB4MDIsMHgwNCwweDQwIH19LAotIHsxNiwgMHhlZDAwLCAwLCB7MHhiMywweDAwLDB4MmMsMHg0MCwweDBhLDB4MWMsMHg0MiwweGIxLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQxMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4ZCwweDgwLDB4MjEsMHhlMCwweDE4LDB4YzgsMHgwMiwweDFlLDB4MDAsMHhiMywweGEwLDB4MjEgfX0sCi0gezE2LCAweGVkMjAsIDAsIHsweGUwLDB4MWIsMHgzOCwweDAyLDB4MGUsMHgwMSwweGE3LDB4ODAsMHgyMSwweGUwLDB4MDksMHhkOCwweDQwLDB4ZDYsMHg0MCwweDg3IH19LAotIHsxNiwgMHhlZDMwLCAwLCB7MHg4MCwweDAxLDB4ZTAsMHgwOSwweDU5LDB4MDIsMHgxNiwweDAwLDB4OTcsMHg4NCwweDJkLDB4NjAsMHgwOCwweDU4LDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ0MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyYywweDQwLDB4YzAsMHgwMCwweDM4LDB4YzQgfX0sCi0gezE2LCAweGVkNTAsIDAsIHsweDBjLDB4MzAsMHgyNywweDRjLDB4MjAsMHhmMywweDAxLDB4MzQsMHhjMSwweDBlLDB4M2EsMHgwMywweDRjLDB4YzQsMHhlMCwweDAwIH19LAotIHsxNiwgMHhlZDYwLCAwLCB7MHgxOCwweGM4LDB4MGYsMHgzNCwweDAzLDB4NDQsMHg0MCwweGMzLDB4MDAsMHgzMCwweGMwLDB4MGQsMHg5MCwweDAzLDB4MmUsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ3MCwgMCwgezB4ZjMsMHgwMCwweDNlLDB4NDAsMHgwZSwweDEwLDB4MDEsMHg5YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkODAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZjksMHgwMCwweDBlLDB4ZDQsMHgwZSwweGIwLDB4MDMsMHhlYywweDIwLDB4ZmIsMHgyMCwweDNmIH19LAotIHsxNiwgMHhlZDkwLCAwLCB7MHhjNCwweDBmLDB4ZjEsMHgwMywweGVjLDB4NjAsMHhkYiwweDEwLDB4M2YsMHhjMCwweDRmLDB4ZjAsMHgwMywweGE0LDB4NDYsMHhmYiB9fSwKLSB7MTYsIDB4ZWRhMCwgMCwgezB4MDAsMHhiZCwweGMwLDB4MGUsMHhkMCwweDBiLDB4YjQsMHgwMCwweGVmLDB4NDgsMHgzZiwweDQwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGVkYjAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGY4LDB4MDAsMHgzMiwweGQ0IH19LAotIHsxNiwgMHhlZGMwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhZCwweDAwLDB4ZWIsMHgwOCwweDIyLDB4ZDIsMHgwYywweGI2LDB4MDMsMHg2YywweDAwLDB4ZjIsMHg4MCB9fSwKLSB7MTYsIDB4ZWRkMCwgMCwgezB4MzYsMHhjMCwweDBlLDB4YTAsMHgwMywweDI4LDB4MTAsMHhjYiwweDAwLDB4YjIsMHhjMCwweDBmLDB4ZDYsMHgwMywweDI4LDB4MTAgfX0sCi0gezE2LCAweGVkZTAsIDAsIHsweGZiLDB4MjAsMHgzZSwweDQwLDB4NGYsMHg5OSwweDEzLDB4MmIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGYwLCAwLCB7MHg0OCwweDExLDB4OWQsMHgxMCwweGI0LDB4MDEsMHgyMSwweGMxLDB4OGIsMHhjMCwweDAyLDB4MWMsMHhhMCwweGJmLDB4MDQsMHgyNyB9fSwKLSB7MTYsIDB4ZWUwMCwgMCwgezB4YzgsMHgwOCwweDc1LDB4MDIsMHgxYywweGMwLDB4YjYsMHgwMCwweDIxLDB4YzAsMHgwOCwweGYwLDB4NDIsMHgxOCwweDEwLDB4OGYgfX0sCi0gezE2LCAweGVlMTAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDBiLDB4NTQsMHhhMiwweDFjLDB4MDAsMHhiNywweDA0LDB4MmQsMHg0MSwweDBiLDB4NTIsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlZTIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4ODAsMHhiNiwweDg4LDB4YTUsMHhlMCB9fSwKLSB7MTYsIDB4ZWUzMCwgMCwgezB4MGIsMHg3OCwweDEyLDB4OWUsMHg4MSwweGE3LDB4OTAsMHgyNSwweGU0LDB4ODgsMHg3OCwweDAyLDB4MWUsMHg4MCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGVlNDAsIDAsIHsweDI0LDB4NjAsMHgwYiwweDY4LDB4MDIsMHgxZSwweDAwLDB4ODcsMHg4NCwweDYxLDB4ZTAsMHgwYSwweDFhLDB4MGEsMHgxYSwweDAwIH19LAotIHsxNiwgMHhlZTUwLCAwLCB7MHhiNywweGEwLDB4MmQsMHhlMCwweDBiLDB4ZGEsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU2MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiYSwweGMwLDB4YTQsMHhjMCwweDBiLDB4MzQsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQgfX0sCi0gezE2LCAweGVlNzAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDBlLDB4MmMsMHgwMCwweGIzLDB4OTgsMHgyMCwweDYwLDB4MDksMHgzMywweDAyLDB4MmMsMHgwMCwweGEzIH19LAotIHsxNiwgMHhlZTgwLCAwLCB7MHhjOCwweDIwLDB4YzAsMHgwYiwweDEwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDJjLDB4ZjAsMHgwYiwweDEwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4ZWU5MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDM2LDB4ODEgfX0sCi0gezE2LCAweGVlYTAsIDAsIHsweDBiLDB4ZTAsMHgwMywweGE4LDB4MDAsMHhlYSwweDAwLDB4YjIsMHg4MCwweDA4LDB4YTAsMHgwMywweDY4LDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHhlZWIwLCAwLCB7MHgzNiwweGEwLDB4MWYsMHhlOCwweDEzLDB4M2IsMHg4MiwweGNlLDB4ZTAsMHgyMiwweDgwLDB4OGUsMHhhMCwweDAzLDB4MzgsMHgwMCB9fSwKLSB7MTYsIDB4ZWVjMCwgMCwgezB4YmEsMHgwMCwweDNmLDB4YTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlZDAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgyMCwweDNhLDB4MTAsMHgwNywweDgwLDB4MDMsMHhjMSwweDAwLDB4ZjgsMHgwMCwweDM4IH19LAotIHsxNiwgMHhlZWUwLCAwLCB7MHgwMCwweDJmLDB4ODAsMHgwMywweGEwLDB4MDEsMHhmOCwweDQyLDB4M2UsMHgwNSwweDBlLDB4ODAsMHgwYiwweGUwLDB4ODAsMHhkOCB9fSwKLSB7MTYsIDB4ZWVmMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDAzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDBiLDB4ZDIgfX0sCi0gezE2LCAweGVmMDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzYSwweDUwIH19LAotIHsxNiwgMHhlZjEwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhhNCwweDAyLDB4ZDEsMHgwMCwweGIyLDB4NDAsMHg0YywweDkwLDB4MjMsMHgyNCwweDA4LDB4YzksMHgwMSB9fSwKLSB7MTYsIDB4ZWYyMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTQsMHgwYSwweDI1LDB4MjAgfX0sCi0gezE2LCAweGVmMzAsIDAsIHsweGU5LDB4MDAsMHgzZSwweDQyLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwYSwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg5MCwweDEyLDB4MjUsMHg4MCwweGM5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWY1MCwgMCwgezB4NDAsMHgwYSwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHgyMCwweDJjLDB4NDAsMHgwYSwweDkwLDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGVmNjAsIDAsIHsweGMxLDB4MzIsMHg0MCwweDBiLDB4OTgsMHgwMiwweDA2LDB4MDAsMHg4OSwweDkwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgxMiwweGUwIH19LAotIHsxNiwgMHhlZjcwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDA0LDB4MDAsMHg4OSwweDAwLDB4NmEsMHg0MiB9fSwKLSB7MTYsIDB4ZWY4MCwgMCwgezB4MGEsMHgxMCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAsMHhhMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweDA5LDB4MDAgfX0sCi0gezE2LCAweGVmOTAsIDAsIHsweDJlLDB4NDAsMHg1OCwweDEwLDB4MDIsMHgyNCwweDAwLDB4ODksMHg4MCwweGFhLDB4NjAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDA0IH19LAotIHsxNiwgMHhlZmEwLCAwLCB7MHhhOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTQsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZiMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDAwLDB4NjAsMHg0OCwweDBiLDB4MTAsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4NjAgfX0sCi0gezE2LCAweGVmYzAsIDAsIHsweDQ4LDB4MGEsMHgxMiwweDAyLDB4NDQsMHg4OCwweDgxLDB4MDAsMHgwZSwweDU5LDB4MGEsMHgxNCwweDAyLDB4MDUsMHgwMCwweDgxIH19LAotIHsxNiwgMHhlZmQwLCAwLCB7MHhjMCwweDI4LDB4NTAsMHg0OSwweDMwLDB4MDIsMHg4YywweDg0LDB4MDEsMHg2MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZWZlMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YzAsMHg1NCwweDJhLDB4MDAgfX0sCi0gezE2LCAweGVmZjAsIDAsIHsweDBlLDB4ODUsMHgwMywweGEwLDB4MDAsMHhjOCwweDUwLDB4MzIsMHgxNSwweDFlLDB4MDUsMHgyMiwweDIxLDB4NDIsMHhjOCwweDAwIH19LAotIHsxNiwgMHhmMDAwLCAwLCB7MHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4MDAsMHgwNCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGYsMHg4NSwweDAzLDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4ZjAxMCwgMCwgezB4NjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMjAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDQwLDB4ZmQsMHgwMywweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQ4LDB4ZTksMHgxMCwweDNlIH19LAotIHsxNiwgMHhmMDMwLCAwLCB7MHg0NSwweDBmLDB4OTEsMHgxMywweGU0LDB4NDAsMHhmZCwweDAwLDB4M2YsMHg0NCwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDIsMHhmZCB9fSwKLSB7MTYsIDB4ZjA0MCwgMCwgezB4NDAsMHgzMywweDUwLDB4MGYsMHhkNCwweDIzLDB4NzQsMHg0MCwweGY5LDB4MTAsMHgzZiwweDQwLDB4MGYsMHg1NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGYwNTAsIDAsIHsweDAyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTQsMHgwMCwweGY5LDB4MDEsMHgzMywweDZhIH19LAotIHsxNiwgMHhmMDYwLCAwLCB7MHgwOSwweDkwLDB4MDMsMHhiNiwweDM0LDB4ZjksMHhjOCwweDMyLDB4NjQsMHgwYywweDlhLDB4MDMsMHhlNiwweGEwLDB4ZGQsMHgwMCB9fSwKLSB7MTYsIDB4ZjA3MCwgMCwgezB4M2MsMHg3MCwweDBmLDB4OTAsMHgwMywweGE1LDB4MDAsMHg4OSwweDgwLDB4MzMsMHgzMiwweDBmLDB4ZDgsMHgxMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGYwODAsIDAsIHsweGZkLDB4MDAsMHg3MCwweDUwLDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDkwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4YTgsMHgyMiwweDEwLDB4MDgsMHg4OCwweDAyLDB4MjEsMHgwMCwweGI4LDB4YzAsMHgyMCB9fSwKLSB7MTYsIDB4ZjBhMCwgMCwgezB4MzAsMHgwZCwweDhlLDB4ODcsMHg4MywweDg4LDB4ODgsMHgwMCwweDJlLDB4MzQsMHgwYiwweDhhLDB4ODIsMHgyMiwweDgwLDB4ZGMgfX0sCi0gezE2LCAweGYwYjAsIDAsIHsweGUwLDB4MjIsMHgzOCwweDBiLDB4ODAsMHgwMiwweDIwLDB4MDAsMHhmOCwweGE4LDB4MmEsMHgyOCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhmMGMwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MjAsMHhiMSwweDAwLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZjBkMCwgMCwgezB4MGEsMHg5MiwweDkyLDB4ODQsMHgxMSwweGIxLDB4MjQsMHg2OCwweDU4LDB4MDksMHgxMSwweDAyLDB4YzQsMHgyMCwweDkxLDB4MDEgfX0sCi0gezE2LCAweGYwZTAsIDAsIHsweDJjLDB4NDgsMHgxYiwweDUwLDB4MDIsMHg3NCwweDg0LDB4OTUsMHg0OCwweGFjLDB4NDgsMHgwYiwweDk0LDB4MDIsMHgwNCwweDA0IH19LAotIHsxNiwgMHhmMGYwLCAwLCB7MHhiMSwweDAyLDB4MjQsMHg0OCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDUsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjEwMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhiMSwweDIwLDB4MjIsMHg0MCwweDBhLDB4OTAsMHgwNiwweDJjLDB4MDEsMHhiOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGYxMTAsIDAsIHsweDQwLDB4MDksMHg5MCwweDAyLDB4YTQsMHgwMCwweDliLDB4MDgsMHgyZSwweDQ4LDB4MGIsMHgxMiwweDFhLDB4NzQsMHgwMCwweDk1IH19LAotIHsxNiwgMHhmMTIwLCAwLCB7MHg0NSwweDJlLDB4NjAsMHgwMywweDkwLDB4MDIsMHgyNCwweDAwLDB4YjksMHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZjEzMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZjksMHg4MCwweDMwLDB4NDAgfX0sCi0gezE2LCAweGYxNDAsIDAsIHsweDBlLDB4MTYsMHgwMywweGE0LDB4MDAsMHhiOSwweDA0LDB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMiwweGU0LDB4MDAsMHhkOSwweDQwIH19LAotIHsxNiwgMHhmMTUwLCAwLCB7MHgyZSwweDQwLDB4MWYsMHg5OCwweDAzLDB4ZTUsMHg4MCwweGQ5LDB4MDAsMHhhZSwweDYwLDB4MDcsMHgxMCwweDBiLDB4MjYsMHgwMSB9fSwKLSB7MTYsIDB4ZjE2MCwgMCwgezB4YjksMHgwMCwweGE2LDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNzAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweGJlLDB4NDAsMHhhYywweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweGI0IH19LAotIHsxNiwgMHhmMTgwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4ZjE5MCwgMCwgezB4MDAsMHgzMiwweDAwLDB4MGYsMHg5MCwweDgzLDB4ZTYsMHg4NSwweGUxLDB4MDAsMHgzMiwweDQ0LDB4MGYsMHgxMCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGYxYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhmMWIwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHhlMCwweDk0LDB4ZTAsMHgwMCwweDMyLDB4MDAsMHgwYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4ZjFjMCwgMCwgezB4M2UsMHgwMCwweDBkLDB4ODAsMHg0MywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4NDAgfX0sCi0gezE2LCAweGYxZDAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4NGMsMHg4MCwweDIzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWUwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyMywweDgwLDB4MGIsMHhhMCwweDAyLDB4ZmIsMHgwNCwweDZhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZjFmMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHg2OCwweDBhLDB4OGUsMHg4OCwweDNhLDB4ODAsMHgwOCwweGEwLDB4MDIsMHgwOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGYyMDAsIDAsIHsweDAwLDB4YjcsMHgyMiwweDAzLDB4ZTQsMHgwMiwweGZhLDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTgsMHgwMiwweGNhIH19LAotIHsxNiwgMHhmMjEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4NjAsMHg0MSB9fSwKLSB7MTYsIDB4ZjIyMCwgMCwgezB4MDMsMHgzMCwweDAyLDB4Y2MsMHg0MSwweGEzLDB4MDAsMHgwNCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MmMsMHgwMCwweGEzLDB4ODAgfX0sCi0gezE2LCAweGYyMzAsIDAsIHsweDJjLDB4YzAsMHgwOSwweDM4LDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDM0LDB4MDIsMHhjYywweDgwIH19LAotIHsxNiwgMHhmMjQwLCAwLCB7MHhhMSwweDAwLDB4MjAsMHhjMCwweDA4LDB4MzgsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI1MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4NjEsMHgwMCwweDBiLDB4NzEsMHgwMiwweGRjLDB4MDAsMHhhMywweDAwLDB4MjUgfX0sCi0gezE2LCAweGYyNjAsIDAsIHsweGM4LDB4MTksMHgzOCwweDAyLDB4NWMsMHg4MCwweGE3LDB4MDAsMHgwZiwweGU4LDB4MDksMHg2NCwweDIyLDB4MTAsMHgwMCwweGIzIH19LAotIHsxNiwgMHhmMjcwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwYiwweDYwLDB4MDIsMHhmMiwweDAwLDB4ODUsMHgwMSwweDIzLDB4ZTgsMHgwOCwweDcwLDB4ODIsMHhlOCB9fSwKLSB7MTYsIDB4ZjI4MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDIwLDB4ZmYsMHg4MCwweGExLDB4YTAgfX0sCi0gezE2LCAweGYyOTAsIDAsIHsweDBmLDB4N2EsMHg0MiwweGRhLDB4MDAsMHhlNywweGU4LDB4MzUsMHhmMCwweDJmLDB4N2IsMHg2MiwweDFlLDB4ODIsMHhlNiwweDgwIH19LAotIHsxNiwgMHhmMmEwLCAwLCB7MHgxZCwweGUwLDB4MGQsMHhmOCwweDBiLDB4MWUsMHgwMCwweGY3LDB4ODAsMHgzMSwweGYwLDB4MGYsMHg3OCwweDAzLDB4ZGUsMHgwYyB9fSwKLSB7MTYsIDB4ZjJiMCwgMCwgezB4ZWYsMHg4MCwweDMxLDB4ZjgsMHgyYywweDc4LDB4MDMsMHhlYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyYzAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDg0LDB4ZmIsMHg2OCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlOCwweDAwLDB4ZmIsMHgwMCwweGZhIH19LAotIHsxNiwgMHhmMmQwLCAwLCB7MHhkOCwweDBlLDB4YjUsMHgwMywweGVkLDB4MDAsMHhkYiwweDAwLDB4M2EsMHhjMCwweDhlLDB4YTAsMHgwMywweGUwLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZjJlMCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHhiMCwweDQzLDB4YzQsMHgwNCwweGVmLDB4MDIsMHhiZiwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGYyZjAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHg0MiwweGM3LDB4MzgsMHgzMywweDY0IH19LAotIHsxNiwgMHhmMzAwLCAwLCB7MHgwZSwweDdjLDB4MDMsMHg1ZSwweDAwLDB4ZGYsMHhhMCwweDM3LDB4ZjAsMHgwZCwweGY4LDB4MDMsMHhmZiwweDIwLDB4Y2YsMHg4MSB9fSwKLSB7MTYsIDB4ZjMxMCwgMCwgezB4MzMsMHhlMiwweDBjLDB4ZDgsMHgwMywweGJlLDB4MDAsMHg3ZiwweGMwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgwMywweDdlLDB4MDAgfX0sCi0gezE2LCAweGYzMjAsIDAsIHsweGZkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg3LDB4YTAsMHgyMSwweDE0LDB4MDgsMHg3MSwweDAyLDB4MTQsMHgxMCwweGQ3LDB4MjAsMHgzNSB9fSwKLSB7MTYsIDB4ZjM0MCwgMCwgezB4YzAsMHgwYywweDcwLDB4MDMsMHhiYywweDAwLDB4ODUsMHgwOCwweDJiLDB4YzAsMHg0ZCwweDQ2LDB4MDIsMHhkMSwweDAwLDB4YjcgfX0sCi0gezE2LCAweGYzNTAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDA4LDB4ODAsMHhmNSwweDIwLDB4M2QsMHhjYSwweDBmLDB4NTQsMHgwMywweGVhIH19LAotIHsxNiwgMHhmMzYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTEsMHg4ZiwweDAxLDB4MjAsMHg4NCB9fSwKLSB7MTYsIDB4ZjM3MCwgMCwgezB4MWEsMHhmMCwweDAyLDB4MTgsMHgwMCwweGE3LDB4MzQsMHg2NSwweGMwLDB4MDksMHg3MSwweDAyLDB4ZGMsMHgwMCwweDhlLDB4MDAgfX0sCi0gezE2LCAweGYzODAsIDAsIHsweDI5LDB4YzAsMHgwOCwweDUwLDB4MDYsMHg5YywweDAwLDB4YmYsMHg4OCwweDJkLDB4YzQsMHgwYSwweDYwLDB4MjYsMHg1OCwweDI0IH19LAotIHsxNiwgMHhmMzkwLCAwLCB7MHg5NywweDAwLDB4NmQsMHhjMCwweDliLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNhMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4YiwweDQwLDB4MjAsMHgwMCwweDE4LDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiYiwweDAyLDB4MjQgfX0sCi0gezE2LCAweGYzYjAsIDAsIHsweGMwLDB4MDgsMHgzMCwweDIwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweGMwLDB4MGIsMHgwNCwweDgyLDB4ZTAsMHgxMCwweGJiIH19LAotIHsxNiwgMHhmM2MwLCAwLCB7MHhhMCwweDJjLDB4ZTAsMHgwYSwweDIwLDB4MDYsMHgwMCwweDAwLDB4YjMsMHgwMCwweDI4LDB4YzAsMHgwYSwweDEwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZjNkMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2YsMHgxMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGYzZTAsIDAsIHsweDBlLDB4ZjAsMHgwYiwweDI0LDB4MDAsMHhlZiwweDAwLDB4MzcsMHhjMCwweDBkLDB4ZjAsMHgwMywweGZjLDB4MDYsMHhjMSwweDUwIH19LAotIHsxNiwgMHhmM2YwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4YzAsMHhiZSwweGM4LDB4MmUsMHhiMCwweDAzLDB4NmUsMHgwMSB9fSwKLSB7MTYsIDB4ZjQwMCwgMCwgezB4ZmIsMHgwMCwweDJkLDB4YzAsMHg0YiwweDkwLDB4MDIsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDA0LDB4ZmIsMHgwMCwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhhZCwweDAwLDB4OWIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhmNDIwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgwMywweGFjLDB4MDAsMHhmOCwweDAwLDB4MmUsMHhjMCwweDA1LDB4YjQsMHgwMywweGVkLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ZjQzMCwgMCwgezB4NDAsMHgzMiwweGMwLDB4MDksMHgwMCwweDAzLDB4ZTAsMHg5MSwweGUzLDB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MCwweDExLDB4ZTAgfX0sCi0gezE2LCAweGY0NDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZWMsMHgwMCwweGVmLDB4MDAsMHgzMywweDIwIH19LAotIHsxNiwgMHhmNDUwLCAwLCB7MHg0ZiwweGYwLDB4MDMsMHhiNCwweDAwLDB4ZWYsMHgwMywweDNhLDB4YzAsMHgwZiwweGYwLDB4MDMsMHgzYywweDAwLDB4ZGMsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ2MCwgMCwgezB4MzEsMHhjMCwweDhkLDB4ZjgsMHgwMywweGZlLDB4MDQsMHhjZiwweDAwLDB4MzIsMHhjOCwweDBjLDB4ZjAsMHgwYiwweDFjLDB4MDAgfX0sCi0gezE2LCAweGY0NzAsIDAsIHsweGNmLDB4OTMsMHgzMywweGMwLDB4OGMsMHg0MCwweDAyLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDgwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHhhMiwweDA0LDB4MGIsMHgzMCwweDAyLDB4MGUsMHgwMCwweGFiLDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ZjQ5MCwgMCwgezB4YzAsMHgwOSwweGIwLDB4MDMsMHg2YywweDA4LDB4YTgsMHhjMCwweDM2LDB4YzAsMHgwOCwweGJjLDB4MDIsMHhlZiwweDAyLDB4YWIgfX0sCi0gezE2LCAweGY0YTAsIDAsIHsweGQwLDB4MjAsMHhlMCwweDA4LDB4YjgsMHgyMiwweDI2LDB4MTAsMHg4YiwweDAwLDB4MjIsMHhjMCwweDIwLDB4OWMsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmNGIwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4ZjRjMCwgMCwgezB4MGEsMHhiMCwweDAyLDB4YTIsMHgwOCwweGFiLDB4MDAsMHg2YSwweGMwLDB4MGIsMHhiMCwweDBhLDB4MGMsMHgwMCwweDhiLDB4ODAgfX0sCi0gezE2LCAweGY0ZDAsIDAsIHsweDIyLDB4YzAsMHgwOSwweGIxLDB4MDIsMHhlYywweDQwLDB4ODgsMHgwOCwweDIyLDB4YzAsMHgwOCwweGI4LDB4MDIsMHgyNiwweDAwIH19LAotIHsxNiwgMHhmNGUwLCAwLCB7MHg4YiwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTgsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRmMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjQsMHgwMCwweDBiLDB4YjAsMHgwMiwweDAwLDB4MDEsMHg4MywweDAwLDB4MjAgfX0sCi0gezE2LCAweGY1MDAsIDAsIHsweGMwLDB4MDksMHgzMCwweDAyLDB4NGMsMHgwMCwweDAwLDB4MDQsMHgyNCwweGMwLDB4MDgsMHgzMCwweDA2LDB4NGMsMHgwMCwweDgwIH19LAotIHsxNiwgMHhmNTEwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDQxLDB4ODMsMHgwMCwweGEyLDB4YzAsMHgwOCwweDEwLDB4MGEsMHg4MiB9fSwKLSB7MTYsIDB4ZjUyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4ZWYsMHgwOCwweDI2LDB4MDAgfX0sCi0gezE2LCAweGY1MzAsIDAsIHsweDBlLDB4ZjAsMHgwMiwweGEwLDB4MDAsMHhlNywweDAwLDB4M2IsMHhjMCwweDBmLDB4ZjUsMHg0MywweDNjLDB4MDIsMHhkYSwweDAwIH19LAotIHsxNiwgMHhmNTQwLCAwLCB7MHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MDAsMHhiMiwweGMwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgxMCB9fSwKLSB7MTYsIDB4ZjU1MCwgMCwgezB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwYywweDgwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NjAsIDAsIHsweGEwLDB4MGQsMHhmYywweDAwLDB4ZmIsMHgwMCwweDNiLDB4MDAsMHgwZiwweGYwLDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMiwweDNmIH19LAotIHsxNiwgMHhmNTcwLCAwLCB7MHhjMCwweDBkLDB4ZjIsMHgwMywweGJjLDB4MDAsMHhmNCwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4ZjU4MCwgMCwgezB4MDAsMHgzMywweGMwLDB4MGYsMHg2MCwweDAzLDB4ZjAsMHg4OCwweGZmLDB4MDAsMHgzZiwweGMwLDB4NGYsMHhkMCwweDAzLDB4NjggfX0sCi0gezE2LCAweGY1OTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg0MCwweGZjLDB4MzEsMHgzYiwweDA4IH19LAotIHsxNiwgMHhmNWEwLCAwLCB7MHg0ZiwweGY5LDB4NDMsMHhlZiwweDAwLDB4ZGYsMHgzMCwweDMyLDB4MjEsMHgwZiwweDk0LDB4MDcsMHg3ZCwweDgwLDB4ZWYsMHgzOCB9fSwKLSB7MTYsIDB4ZjViMCwgMCwgezB4MzIsMHgwOSwweDFjLDB4MzgsMHgwMywweGYyLDB4MjEsMHhmZCwweDAwLDB4MzMsMHhjNCwweDBjLDB4ZjAsMHgwMiwweGZjLDB4MDAgfX0sCi0gezE2LCAweGY1YzAsIDAsIHsweGRmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWQwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHg4OCwweDhiLDB4NjAsMHgyMiwweGU1LDB4MGUsMHhiMiwweDIyLDB4ZWMsMHg4MCwweGFmLDB4MTEsMHgyYSB9fSwKLSB7MTYsIDB4ZjVlMCwgMCwgezB4MjAsMHgwYiwweGIxLDB4MTMsMHhhYywweDQ4LDB4OGIsMHg0NSwweDM0LDB4Y2MsMHg0OCwweGIwLDB4MDIsMHg2YiwweDAwLDB4YmEgfX0sCi0gezE2LCAweGY1ZjAsIDAsIHsweDgyLDB4MzYsMHgwMCwweDA4LDB4ODgsMHgyMiwweGMwLDB4MDQsMHg4OCwweDAwLDB4YTIsMHgwOCwweDhiLDB4ODgsMHg2MiwweDIwIH19LAotIHsxNiwgMHhmNjAwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhhMSwweDMwLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZjYxMCwgMCwgezB4MGIsMHgzMiwweDAyLDB4Y2MsMHgwMCwweGEzLDB4MjIsMHgyYywweDAwLDB4OGIsMHgxMiwweDA2LDB4YzgsMHg4MCwweGEzLDB4MDAgfX0sCi0gezE2LCAweGY2MjAsIDAsIHsweDIwLDB4MDIsMHhjYSwweDMwLDB4MDYsMHhjNCwweDAxLDB4YjEsMHgwMCwweDY4LDB4ODAsMHgwOSwweDIwLDB4MDIsMHg4OCwweDAwIH19LAotIHsxNiwgMHhmNjMwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMiwweDBiLDB4MDAsMHgwYSwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY0MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHg4YiwweDYxLDB4NjIsMHhjMCwweDBiLDB4YjIsMHgwMiwweGU4LDB4MDAsMHhhYiwweDAyLDB4MmEgfX0sCi0gezE2LCAweGY2NTAsIDAsIHsweDYxLDB4MWIsMHg5MCwweDAyLDB4YTgsMHgwMCwweGFiLDB4MDAsMHgyMCwweGMwLDB4MGEsMHhiMCwweDAyLDB4NmMsMHgwNCwweGJhIH19LAotIHsxNiwgMHhmNjYwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHg4OSwweDkwLDB4MDIsMHhlNiwweDA4LDB4OTgsMHgwMCwweDIyLDB4MDAsMHgwYiwweGIwLDB4MDIsMHhiMCB9fSwKLSB7MTYsIDB4ZjY3MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlZSwweDAwLDB4ZjgsMHgwMSwweDNhLDB4MDQgfX0sCi0gezE2LCAweGY2ODAsIDAsIHsweDBmLDB4YWMsMHgwMywweGVjLDB4OTAsMHhmYiwweDAyLDB4M2UsMHhlMCwweDBiLDB4OTAsMHg0MiwweDY3LDB4ODAsMHhhOCwweGM0IH19LAotIHsxNiwgMHhmNjkwLCAwLCB7MHgyMiwweDQ4LDB4MjIsMHg4NiwweDAzLDB4ZTEsMHg0MCwweGI4LDB4MDIsMHgyYSwweDQwLDB4MjksMHg5MCwweDAzLDB4ZWMsMHgwMiB9fSwKLSB7MTYsIDB4ZjZhMCwgMCwgezB4YzksMHg0OCwweDMyLDB4NDAsMHgwZiwweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2YjAsIDAsIHsweGUwLDB4MDEsMHhhYywweDQwLDB4ZmIsMHgwMCwweDFmLDB4YTIsMHgwZSwweGY4LDB4ODIsMHhmYywweDA4LDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmNmMwLCAwLCB7MHhjMCwweDBmLDB4ZmEsMHg0MywweDk2LDB4NDQsMHhkNCwweDkxLDB4M2YsMHg0MCwweDBkLDB4YzAsMHgwMywweGZhLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZjZkMCwgMCwgezB4MDgsMHgyNSwweDgwLDB4MGUsMHhlMCwweDAzLDB4ZDAsMHgwMCwweGVhLDB4MDAsMHgzZiwweDgwLDB4MGYsMHhjMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGY2ZTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGUxLDB4MjAsMHgzYSwweDUwIH19LAotIHsxNiwgMHhmNmYwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyYywweDAwLDB4ZWIsMHgwOCwweDc2LDB4MDUsMHgwZSwweGIwLDB4MjcsMHhlMCwweDEwLDB4ZWEsMHg0MCB9fSwKLSB7MTYsIDB4ZjcwMCwgMCwgezB4YjIsMHhjMCwweDBjLDB4YTQsMHg0MywweDI1LDB4MDAsMHhmOCwweDAwLDB4MzIsMHgwOCwweDBmLDB4ODAsMHg0MywweGU4LDB4MDAgfX0sCi0gezE2LCAweGY3MTAsIDAsIHsweGQxLDB4MDgsMHhlZSwweDQwLDB4MGYsMHgwMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweGQwLDB4MGIsMHg5MCwweDgyLDB4MmMsMHgwMCwweDg3LDB4NDAsMHgyMiB9fSwKLSB7MTYsIDB4ZjczMCwgMCwgezB4NjAsMHg4YiwweGIwLDB4MDIsMHhlMCwweDAwLDB4ZDgsMHg1MCwweDIyLDB4ZDAsMHgwYywweGEwLDB4MDMsMHg2YywweDAwLDB4YjMgfX0sCi0gezE2LCAweGY3NDAsIDAsIHsweGM4LDB4M2UsMHhkMCwweDBiLDB4YjgsMHgwMiwweDI1LDB4MDgsMHg4YSwweDIwLDB4MmEsMHg4MCwweDhiLDB4YjgsMHg4MiwweGYyIH19LAotIHsxNiwgMHhmNzUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY0LDB4MDAsMHhhMCwweGMwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Zjc2MCwgMCwgezB4MDksMHgzOCwweDAyLDB4MmMsMHgwMCwweDgzLDB4MDMsMHgyMCwweDAwLDB4MTAsMHgzMCwweDIyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGY3NzAsIDAsIHsweDYwLDB4MDgsMHgwYSwweDMwLDB4ODIsMHg0YywweDAwLDB4YjEsMHhjMCwweDAwLDB4ZDEsMHgwYiwweDM4LDB4MDIsMHg4NCwweDgwIH19LAotIHsxNiwgMHhmNzgwLCAwLCB7MHg4MiwweDAxLDB4MjAsMHg4MCwweDAzLDB4MzgsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc5MCwgMCwgezB4MjAsMHgwMSwweDE2LDB4NDAsMHg4NCwweDk4LDB4MjUsMHhlMCwweDBiLDB4N2EsMHgwMiwweGZhLDB4NDgsMHhhMywweDIwLDB4NjEgfX0sCi0gezE2LCAweGY3YTAsIDAsIHsweDI0LDB4MGIsMHg3OSwweDAwLDB4Y2UsMHhjMCwweDkzLDB4YTQsMHgyMSwweGE2LDB4MGIsMHg3OCwweDEyLDB4ZGUsMHg4MCwweGI2IH19LAotIHsxNiwgMHhmN2IwLCAwLCB7MHg4MCwweDJkLDB4MjQsMHgwYiwweDRiLDB4MDIsMHgxYSwweDQwLDB4ODUsMHg4MSwweDIxLDB4NjAsMHgwYiwweDQ4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZjdjMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTIsMHhhMCwweGI0LDB4ZmUgfX0sCi0gezE2LCAweGY3ZDAsIDAsIHsweDRiLDB4YjgsMHgwYiwweDBlLDB4MDAsMHhhMywweGIwLDB4MjQsMHhhOCwweDBlLDB4MWIsMHgwMiwweGNlLDB4YzEsMHhjMywweGMwIH19LAotIHsxNiwgMHhmN2UwLCAwLCB7MHgzMCwweDY4LDB4MmUsMHgzYSwweDQ3LDB4NGUsMHg4MCwweGYxLDB4ODAsMHgzMCwweDgwLDB4MGYsMHgyMiwweDgzLDB4ODAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdmMCwgMCwgezB4YzIsMHgxMCwweDM4LDB4ODAsMHg0ZiwweDAwLDB4MDcsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4MDAsIDAsIHsweDQwLDB4MGQsMHhiYywweDEwLDB4ZmUsMHgwNCwweDNiLDB4YzEsMHgwNywweGYwLDB4MDMsMHgxYywweGM4LDB4ZGYsMHgyYSwweDBiIH19LAotIHsxNiwgMHhmODEwLCAwLCB7MHhjNCwweDhmLDB4ZDEsMHg0MywweGY4LDB4MDIsMHg3ZiwweDAwLDB4M2YsMHhjMCwweDBjLDB4ZjEsMHgwZiwweDNjLDB4MDAsMHhmMiB9fSwKLSB7MTYsIDB4ZjgyMCwgMCwgezB4MTEsMHgzZiwweDQxLDB4MWYsMHg1MiwweDAzLDB4YmMsMHgwZSwweGVkLDB4MTQsMHgzZiwweDQwLDB4MGYsMHhmOCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGY4MzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhmODQwLCAwLCB7MHgwZSwweGJlLDB4NGIsMHg2ZiwweDAwLDB4Y2IsMHg4MiwweDdhLDB4YzAsMHgyYywweGIwLDB4MDMsMHgyYywweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4Zjg1MCwgMCwgezB4MzIsMHgwMCwweDJjLDB4MTAsMHgwMywweDJjLDB4MDgsMHhjMCwweDAwLDB4MjYsMHg0MCwweDZjLDB4OTAsMHgxMywweDI0LDB4MTIgfX0sCi0gezE2LCAweGY4NjAsIDAsIHsweGM4LDB4MDEsMHgzZSwweDAwLDB4MGYsMHhiOCwweDBiLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODcwLCAwLCB7MHg0OCwweDExLDB4OTQsMHgwMCwweDhkLDB4MDAsMHgyMSwweDgwLDB4MGIsMHg3MCwweDgyLDB4M2MsMHgyMCwweDgzLDB4MzIsMHgyOSB9fSwKLSB7MTYsIDB4Zjg4MCwgMCwgezB4YzAsMHgwOCwweGYwLDB4MjAsMHgxNCwweDAwLDB4ODAsMHgwMCwweDIzLDB4MDAsMHgwOCwweDUwLDB4MDYsMHg5YywweDA0LDB4ZDcgfX0sCi0gezE2LCAweGY4OTAsIDAsIHsweDAyLDB4MjgsMHg4MCwweDA4LDB4NjAsMHgwMiwweDA4LDB4MTAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhmOGEwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4ZjhiMCwgMCwgezB4MGIsMHg1YywweDEyLDB4MWUsMHgwNCwweDg3LDB4ODIsMHgwZCwweGEwLDB4MDksMHg3OCwweDE2LDB4MDIsMHgwMCwweGI0LDB4ODAgfX0sCi0gezE2LCAweGY4YzAsIDAsIHsweDI1LDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg5ZSwweDAwLDB4ODQsMHg4MCwweDIxLDB4MjIsMHgwOCwweDA4LDB4MDIsMHgxMiwweDAxIH19LAotIHsxNiwgMHhmOGQwLCAwLCB7MHg4NCwweGMwLDB4MmQsMHgyMCwweDBiLDB4MDgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhlMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDQyLDB4YTAsMHhkOCwweDBiLDB4MzQsMHg4MiwweDBjLDB4MDAsMHhhMywweDAyLDB4MjAgfX0sCi0gezE2LCAweGY4ZjAsIDAsIHsweGUwLDB4MDgsMHhiMCwweDAyLDB4MGMsMHg4OCwweGIzLDB4MjEsMHgyNCwweGQ4LDB4MGIsMHgzZSwweDAyLDB4OGMsMHgwMCwweDkzIH19LAotIHsxNiwgMHhmOTAwLCAwLCB7MHgwOCwweDI4LDB4YzAsMHgwOCwweDM4LDB4MDIsMHgyYywweDA1LDB4OGIsMHgwMSwweDJjLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4ZjkxMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZWUsMHgwMCwweDMzLDB4OTAgfX0sCi0gezE2LCAweGY5MjAsIDAsIHsweDBmLDB4YTAsMHgwYiwweDY4LDB4MDAsMHhjYSwweDAxLDB4N2YsMHhhOCwweDBjLDB4YWEsMHgwMywweDNhLDB4MTIsMHhmZSwweGUyIH19LAotIHsxNiwgMHhmOTMwLCAwLCB7MHgzNywweGIwLDB4MGYsMHhlZSwweDAyLDB4MTgsMHgwMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MDgsMHhhMCwweDhiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4Zjk0MCwgMCwgezB4Y2EsMHg4MSwweDJlLDB4YTAsMHgwZiwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwOCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhhMiwweDAyLDB4ZDgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhmOTYwLCAwLCB7MHgwOCwweDBmLDB4ODAsMHgxMywweGUwLDB4NDAsMHg0OCwweDQwLDB4YjgsMHgwNCwweDA4LDB4ODQsMHgwMywweDYxLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4Zjk3MCwgMCwgezB4MDAsMHgzZiwweDAwLDB4NGYsMHhjMCwweDAzLDB4ZjEsMHgwMCwweGZjLDB4MDAsMHgzZiwweDA0LDB4MGYsMHhjMCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGY5ODAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzMCwweDUwIH19LAotIHsxNiwgMHhmOTkwLCAwLCB7MHg0YywweGI5LDB4MDMsMHg2YywweDE4LDB4ZjksMHgwMCwweDM2LDB4NDAsMHgwZSwweDljLDB4MjMsMHhhNCwweDAyLDB4NDEsMHgwMCB9fSwKLSB7MTYsIDB4ZjlhMCwgMCwgezB4YjIsMHg0NCwweDBlLDB4OWEsMHgwMywweGE2LDB4ODAsMHhjOSwweDAwLDB4M2EsMHg2MCwweDBhLDB4OTAsMHgwMywweGE0LDB4ODAgfX0sCi0gezE2LCAweGY5YjAsIDAsIHsweGM5LDB4MDAsMHgzNCwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWMwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyMiwweDc4LDB4MDgsMHg5NCwweDAyLDB4ZTQsMHgxMCwweGI5LDB4MDAsMHgzYyB9fSwKLSB7MTYsIDB4ZjlkMCwgMCwgezB4NjIsMHgxOCwweDk0LDB4ODIsMHhhNCwweDAwLDB4ODksMHhjOCwweDIyLDB4NzAsMHg0OCwweDFlLDB4MDEsMHg2NywweDgwLDB4ZDEgfX0sCi0gezE2LCAweGY5ZTAsIDAsIHsweDAwLDB4YmMsMHg0MiwweDA4LDB4MTAsMHgwMiwweDI1LDB4MjAsMHg4OSwweDAyLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmOWYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiMSwweDI4LDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4ZmEwMCwgMCwgezB4MDgsMHhiMCwweDgyLDB4NjQsMHgwNCwweDM5LDB4NDEsMHgyZSwweDQ4LDB4MGEsMHg5MCwweDAyLDB4MDQsMHgxOCwweGE5LDB4MjAgfX0sCi0gezE2LCAweGZhMTAsIDAsIHsweDIyLDB4NDIsMHg0YSwweDkwLDB4MDIsMHgyYywweDA0LDB4ODksMHgwNCwweDJiLDB4NDgsMHgwMiwweGQwLDB4MDIsMHhiNCwweDBhIH19LAotIHsxNiwgMHhmYTIwLCAwLCB7MHg4ZCwweDgwLDB4MjMsMHhjMCwweDQ4LDB4ZDAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmEzMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4YTAsMHg0OCwweDI4LDB4MTAsMHgwMiwweGM0LDB4MDAsMHhiMSwweDI0LDB4MmEgfX0sCi0gezE2LCAweGZhNDAsIDAsIHsweDQwLDB4MDgsMHgxMiwweDQyLDB4ODUsMHg4MCwweGExLDB4MjAsMHhhMCwweDQ4LDB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDk1IH19LAotIHsxNiwgMHhmYTUwLCAwLCB7MHgyYywweDJkLDB4NWEsMHgwYSwweDcyLDB4ODIsMHgxNCwweGEwLDB4ODUsMHhhOCwweDIxLDB4NGEsMHgwOCwweDUyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4ZmE2MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg0MSwweDQwLDB4ZjgsMHg1MCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGZhNzAsIDAsIHsweDhjLDB4MDUsMHgwMywweDYxLDB4NDAsMHhmOCwweDUxLDB4MmUsMHgwMCwweDBhLDB4ODUsMHgwMiwweDIwLDB4MDAsMHhlOCwweDUwIH19LAotIHsxNiwgMHhmYTgwLCAwLCB7MHgzMiwweDE0LDB4MDYsMHg4NSwweDE3LDB4YTAsMHgwMCwweGM4LDB4MjAsMHgzYSwweDA4LDB4MGUsMHg4MiwweDAzLDB4YTAsMHg4MCB9fSwKLSB7MTYsIDB4ZmE5MCwgMCwgezB4YzgsMHgyMCwweDMyLDB4MDgsMHgyYywweGMyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhYTAsIDAsIHsweDk4LDB4MTksMHhmNCwweDQwLDB4ZmYsMHgxMCwweDNmLDB4NDQsMHgwYiwweGIwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgxMCwweDNkIH19LAotIHsxNiwgMHhmYWIwLCAwLCB7MHg0MCwweDBmLDB4ZDEsMHgwMywweGY0LDB4NTgsMHg5ZCwweDEwLDB4M2YsMHg0NCwweDRmLDB4ZDAsMHgwMywweGQ1LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZmFjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGQsMHg5MCwweDAzLDB4ZTQsMHhiOCwweGY5LDB4MjgsMHhiYSwweDZhLDB4MGYsMHg5MCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGZhZDAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZTcsMHgwMCwweGZkLDB4ODgsMHgzZSwweDYwIH19LAotIHsxNiwgMHhmYWUwLCAwLCB7MHg4ZiwweGQwLDB4MDMsMHgyNCwweDAxLDB4ZGQsMHg4MCwweDczLDB4NDAsMHgwZiwweGQ4LDB4MDMsMHhhNiwweDA0LDB4Y2QsMHhhMiB9fSwKLSB7MTYsIDB4ZmFmMCwgMCwgezB4MzMsMHg3OCwweDFjLDB4ZDAsMHgwMywweDM0LDB4MDEsMHhmNSwweDg4LDB4M2IsMHg2OCwweDBjLDB4ZGEsMHg0NywweDM3LDB4ODAgfX0sCi0gezE2LCAweGZiMDAsIDAsIHsweGNkLDB4ODgsMHgzMiwweDYyLDB4MGMsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjEwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg4MCwweGI4LDB4ODAsMHgyZSwweDE0LDB4MGIsMHgwYSwweDgyLDB4MjIsMHg4MCwweGI4LDB4ZjgsMHhhMiB9fSwKLSB7MTYsIDB4ZmIyMCwgMCwgezB4MDAsMHgwYiwweDhmLDB4YTMsMHg4MywweGUwLDB4ODgsMHhlYiwweDIyLDB4YTksMHgwOCwweDg4LDB4MTIsMHhhMCwweDA1LDB4YjggfX0sCi0gezE2LCAweGZiMzAsIDAsIHsweDAwLDB4MmEsMHhhYSwweDg4LDB4ODAsMHgxMywweDYyLDB4ODIsMHg4OCwweDgwLDB4MjIsMHgyOCwweDg4LDB4YTQsMHgwMiwweDBlIH19LAotIHsxNiwgMHhmYjQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDBhLDB4MmMsMHg0MSB9fSwKLSB7MTYsIDB4ZmI1MCwgMCwgezB4MGIsMHgxMCwweDA2LDB4MDQsMHgyMCwweGExLDB4MDAsMHgwMCwweDQwLDB4OGIsMHgxMCwweDQ2LDB4YzQsMHgwMSwweDkxLDB4MTEgfX0sCi0gezE2LCAweGZiNjAsIDAsIHsweDI0LDB4NTgsMHg2OCwweDkwLDB4YzIsMHgwNCwweDAwLDB4YjEsMHgwMCwweGE4LDB4NTAsMHgwOSwweDE0LDB4MGEsMHgwNSwweDk1IH19LAotIHsxNiwgMHhmYjcwLCAwLCB7MHhhMSwweDA4LDB4YTAsMHg0MiwweDI4LDB4MTEsMHgwYSwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI4MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTgsMHhiOSwweDIwLDB4MmUsMHg1MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDksMHhiOSwweDAwLDB4MjIgfX0sCi0gezE2LCAweGZiOTAsIDAsIHsweDQwLDB4OGIsMHg5MSwweDAyLDB4ODQsMHgwMCwweDk5LDB4NjQsMHgyNCwweDQwLDB4NTgsMHg5MCwweDAyLDB4YTQsMHgyMCwweGJiIH19LAotIHsxNiwgMHhmYmEwLCAwLCB7MHgwMCwweDJhLDB4NDAsMHgwOSwweGIwLDB4MDIsMHgwNSwweDAxLDB4YTksMHgwMCwweDIyLDB4NDAsMHg4OCwweDkyLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZmJiMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDAwLDB4ZjksMHg0MCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGZiYzAsIDAsIHsweDRmLDB4OTgsMHgwYiwweDI0LDB4ODAsMHhkOSwweDAwLDB4MjIsMHg3MiwweDBiLDB4OTgsMHgwMywweGU0LDB4ODQsMHhkOSwweDAwIH19LAotIHsxNiwgMHhmYmQwLCAwLCB7MHhiNiwweDcwLDB4MDgsMHg5OSwweDAyLDB4MjQsMHgwMCwweGI5LDB4MDAsMHgyYSwweDQwLDB4MGQsMHg5NCwweGMyLDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4ZmJlMCwgMCwgezB4YTksMHgwMCwweDIyLDB4NDAsMHgwYywweDk0LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiZjAsIDAsIHsweDI4LDB4MDEsMHhhNiwweDgwLDB4ZjksMHgwOCwweDNlLDB4YzAsMHgwZiwweDkxLDB4NDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhmYzAwLCAwLCB7MHg1MCwweDBmLDB4OTgsMHgwMywweGE1LDB4MDAsMHhlOSwweDAwLDB4M2EsMHg2NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZmMxMCwgMCwgezB4MDAsMHgzYywweDQwLDB4NmUsMHg5MCwweDAzLDB4ZTQsMHgyMCwweGQ5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDgyLDB4Y2EgfX0sCi0gezE2LCAweGZjMjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhmYzMwLCAwLCB7MHg0ZiwweDg0LDB4MGIsMHgyMCwweDAwLDB4ZjgsMHgwMCwweDM2LDB4MDEsMHgwZSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg0MCB9fSwKLSB7MTYsIDB4ZmM0MCwgMCwgezB4MzIsMHgxMCwweDJkLDB4ODAsMHgwMywweGUwLDB4NTQsMHhjOCwweDAwLDB4MzYsMHgxMCwweDBmLDB4MDQsMHg4MywweGUwLDB4NTAgfX0sCi0gezE2LCAweGZjNTAsIDAsIHsweGQ4LDB4MDQsMHgxMiwweDAwLDB4MGMsMHgwMCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4NDIsMHgyZSwweGEyLDB4OGIsMHhlYSwweDAyLDB4MjgsMHgwOCwweGJlLDB4ODksMHgzNyB9fSwKLSB7MTYsIDB4ZmM3MCwgMCwgezB4ODQsMHg0OCwweGUwLDB4MTIsMHgyOCwweDAyLDB4OGUsMHhjMCwweDIzLDB4YjAsMHg0ZCwweDYwLDB4NjIsMHhmOCwweDAwLDB4ODYgfX0sCi0gezE2LCAweGZjODAsIDAsIHsweDAwLDB4MjMsMHg4MCwweDBiLDB4ZTAsMHgwMiwweGY4LDB4MDAsMHgwZSwweDAwLDB4MjIsMHg4MCwweDA4LDB4ZTQsMHgwMiwweDBhIH19LAotIHsxNiwgMHhmYzkwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhhMywweDAwLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4ZmNhMCwgMCwgezB4MWIsMHhiMCwweDlhLDB4NGMsMHgxMCwweDliLDB4ODAsMHgyNCwweGMwLDB4MGEsMHgzMCwweDAwLDB4MGMsMHgwNCwweDliLDB4MjAgfX0sCi0gezE2LCAweGZjYjAsIDAsIHsweDIwLDB4ZDYsMHgwOCwweDMwLDB4MDIsMHg4ZSwweDA4LDB4YTMsMHgwNCwweDI0LDB4YzAsMHgxOSwweDM0LDB4MDIsMHhjNywweDA3IH19LAotIHsxNiwgMHhmY2MwLCAwLCB7MHhhYSwweGE0LDB4YTAsMHhjMCwweDQ4LDB4MzQsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNkMCwgMCwgezB4YTAsMHgwMSwweDBlLDB4MDAsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDVjLDB4NDAsMHhiMywweDE0LDB4MjUgfX0sCi0gezE2LCAweGZjZTAsIDAsIHsweGUwLDB4MDgsMHg3YSwweDAyLDB4OWUsMHhjMCwweDkyLDB4NDAsMHhhMCwweDAwLDB4NDksMHg2MCwweDAyLDB4Y2UsMHgwMiwweDhlIH19LAotIHsxNiwgMHhmY2YwLCAwLCB7MHgwMSwweDIxLDB4YzAsMHg4YiwweDU0LDB4MDIsMHhjNCwweDA4LDB4ODYsMHg0MCwweDIxLDB4YzgsMHg4OCwweDEwLDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4ZmQwMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweGMwLDB4ZTQsMHg4MCwweDNkLDB4ZTIgfX0sCi0gezE2LCAweGZkMTAsIDAsIHsweDBmLDB4NTgsMHgwMywweDVlLDB4OTAsMHhiNiwweGEyLDB4MzUsMHhlMCwweDBlLDB4N2MsMHgyMywweDFjLDB4MDAsMHhkNiwweDgwIH19LAotIHsxNiwgMHhmZDIwLCAwLCB7MHgzMSwweGUwLDB4ODQsMHg3OCwweDAzLDB4ZGUsMHgwMCwweGM3LDB4ODAsMHgzNSwweGUwLDB4MGYsMHg2OCwweDAzLDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4ZmQzMCwgMCwgezB4ZTMsMHg4MCwweDMzLDB4ZTgsMHgyYywweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkNDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDkwLDB4ZmEsMHgwMCwweDdlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhYywweDAxLDB4ZmIsMHgwMCwweDNjIH19LAotIHsxNiwgMHhmZDUwLCAwLCB7MHg0MSwweDBmLDB4MzAsMHgwYiwweDJkLDB4MDQsMHhlYiwweDAxLDB4M2UsMHhjMCwweDBlLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZmQ2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg4MCwweDAzLDB4ZWMsMHgwMCwweGU5LDB4NjAsMHgzZSwweGU0LDB4MGYsMHg5MCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGZkNzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgyMCwweGZmLDB4OTAsMHgzZSwweDIwIH19LAotIHsxNiwgMHhmZDgwLCAwLCB7MHgwYywweGE5LDB4MDcsMHgyZSwweDQ0LDB4YzksMHg5MSwweDMwLDB4YTAsMHgwYywweGI4LDB4NjMsMHgyZiwweDQ0LDB4Y2IsMHhhMSB9fSwKLSB7MTYsIDB4ZmQ5MCwgMCwgezB4MzYsMHgyMCwweDhjLDB4ZjgsMHgwMywweDM2LDB4MDAsMHhjZiwweDgyLDB4MzMsMHhlMCwweDBjLDB4ZjgsMHgyMywweDJlLDB4MDAgfX0sCi0gezE2LCAweGZkYTAsIDAsIHsweGNlLDB4YzAsMHgzYiwweGUwLDB4MGMsMHg2OCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZGIwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg4NCwweGIzLDB4NTQsMHgyYywweGY0LDB4MjgsMHhiYSwweDhhLDB4M2UsMHg0MCwweDgxLDB4YTAsMHgyOSB9fSwKLSB7MTYsIDB4ZmRjMCwgMCwgezB4YjAsMHgwZiwweDc4LDB4NDIsMHhhZSwweDAwLDB4ODMsMHg5MCwweDMzLDB4ZTgsMHgwZCwweGUxLDB4MDAsMHg4NSwweDQwLDB4ODIgfX0sCi0gezE2LCAweGZkZDAsIDAsIHsweDI0LDB4MjMsMHhjNiwweDBkLDB4NzEsMHgwMywweDVlLDB4ZTAsMHg4NywweDAwLDB4MmIsMHhjMSwweDBkLDB4NDQsMHgwMiwweDJhIH19LAotIHsxNiwgMHhmZGUwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDgsMHgzNSwweDE0LDB4NmQsMHhjMCB9fSwKLSB7MTYsIDB4ZmRmMCwgMCwgezB4ODgsMHg3MiwweDMyLDB4NWMsMHg4MCwweDg0LDB4MzAsMHgyYiwweDg4LDB4MGEsMHg3MCwweDQyLDB4NWMsMHhhOCwweDkxLDB4MDggfX0sCi0gezE2LCAweGZlMDAsIDAsIHsweDI1LDB4YzgsMHgwOSwweDcwLDB4MDIsMHg0YywweDIyLDB4ODMsMHgwYSwweDYxLDB4YzAsMHgwOSwweDIwLDB4MDIsMHgwNCwweDAwIH19LAotIHsxNiwgMHhmZTEwLCAwLCB7MHg4NywweDAwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmUyMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MTAsMHhiMywweDg1LDB4NmMsMHhkYywweDA4LDB4MzQsMHgwMiwweDRkLDB4MjEsMHg4MSwweDAwLDB4MjggfX0sCi0gezE2LCAweGZlMzAsIDAsIHsweDAyLDB4NGEsMHgzMSwweDEyLDB4ZWYsMHgwYywweDkxLDB4YzIsMHgyMCwweGYwLDB4MDgsMHgzMCwweDQyLDB4OGUsMHgwMCwweDgyIH19LAotIHsxNiwgMHhmZTQwLCAwLCB7MHg0MCwweDIwLDB4YzgsMHgxOSwweDI4LDB4MDIsMHgyMiwweDgxLDB4ODMsMHhjMCwweDI4LDB4ZDQsMHgwOSwweDAwLDB4MGEsMHgwOCB9fSwKLSB7MTYsIDB4ZmU1MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4ZmIsMHhhMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGZlNjAsIDAsIHsweDhjLDB4MDQsMHgxMiwweDdkLDB4MTAsMHhjZiwweDAyLDB4M2EsMHg1MCwweDA4LDB4YzAsMHg0MiwweDdkLDB4NTIsMHg1OCwweDAxIH19LAotIHsxNiwgMHhmZTcwLCAwLCB7MHgzNiwweDIyLDB4NjksMHhkMCwweDEzLDB4MmEsMHgwMCwweDg4LDB4ODIsMHgzMiwweGYwLDB4MDksMHhiOCwweDgyLDB4MmYsMHgwMCB9fSwKLSB7MTYsIDB4ZmU4MCwgMCwgezB4YzksMHhjOCwweDIzLDB4YzAsMHgwYywweDhhLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZlOTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4YjksMHg0MCwweDNjLDB4NTAsMHg0ZiwweDgwLDB4MjMsMHhhYywweDEyLDB4ZmIsMHgwMCwweDJhIH19LAotIHsxNiwgMHhmZWEwLCAwLCB7MHhjMCwweDZkLDB4ODAsMHgxMywweGFjLDB4MDAsMHhlOCwweDA0LDB4YmEsMHgxMCwweDBmLDB4ODAsMHgwMywweGU4LDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZmViMCwgMCwgezB4MDgsMHgzYywweDgwLDB4MGYsMHg5MCwweDgzLDB4ZWMsMHgwNCwweGY5LDB4NjAsMHgyYywweGMyLDB4MGYsMHg4MCwweDgzLDB4ZTAgfX0sCi0gezE2LCAweGZlYzAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGVjLDB4MmMsMHgzZiwweGYwIH19LAotIHsxNiwgMHhmZWQwLCAwLCB7MHg4YywweGZhLDB4OGIsMHhiYywweDAwLDB4ZmUsMHgwMCwweDNmLDB4MDAsMHgwZiwweDc5LDB4MDMsMHgzYywweDAwLDB4Y2UsMHgwOCB9fSwKLSB7MTYsIDB4ZmVlMCwgMCwgezB4MGIsMHhjMiwweDBjLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4MzMsMHg0MCwweDhjLDB4N2EsMHgwMywweDNhLDB4MDAgfX0sCi0gezE2LCAweGZlZjAsIDAsIHsweGM1LDB4MDAsMHgzMywweGMwLDB4NGMsMHhjOCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZjAwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDg4LDB4YzAsMHgyZSwweGUwLDB4MDgsMHg5NCwweDAyLDB4MmMsMHgwMCwweGJiLDB4ODAsMHg2NiB9fSwKLSB7MTYsIDB4ZmYxMCwgMCwgezB4MzAsMHgxNiwweGIwLDB4MDIsMHgyYywweDAwLDB4ZGEsMHg0YywweDIyLDB4ZjAsMHgwOCwweGYwLDB4MDMsMHhlYywweDAwLDB4ZWIgfX0sCi0gezE2LCAweGZmMjAsIDAsIHsweGMwLDB4MjIsMHg2OCwweDAwLDB4OTQsMHgwMiwweDJjLDB4MDIsMHhhOSwweDgwLDB4MjIsMHhjMCwweDA4LDB4MGMsMHgwMiwweGEwIH19LAotIHsxNiwgMHhmZjMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhhYiwweDA0LDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ZmY0MCwgMCwgezB4MDgsMHhhNCwweDA2LDB4MmMsMHgwNCwweGFiLDB4MTAsMHgyZSwweDYwLDB4NDMsMHg4MCwweDgyLDB4NmMsMHgwMSwweDgxLDB4ODAgfX0sCi0gezE2LCAweGZmNTAsIDAsIHsweDI4LDB4MGEsMHgwOCwweDkxLDB4MDAsMHhlMCwweDAwLDB4YjgsMHg4MCwweDAyLDB4ZTAsMHgwOCwweDgwLDB4MDIsMHgyZCwweDgwIH19LAotIHsxNiwgMHhmZjYwLCAwLCB7MHg4OCwweGMwLDB4MjIsMHhjMCwweDA4LDB4ODIsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmY3MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHg4MCwweDQ0LDB4MmMsMHhjOCwweDI4LDB4YTAsMHgyMiwweDBjLDB4MDQsMHhiMywweDI2LDB4MmMgfX0sCi0gezE2LCAweGZmODAsIDAsIHsweGM4LDB4ODgsMHgwMSwweDA2LDB4MGMsMHhlMCwweDkxLDB4MjAsMHgyMCwweDBjLDB4MzgsMHgwNCwweDIyLDB4YzAsMHg0OCwweGEzIH19LAotIHsxNiwgMHhmZjkwLCAwLCB7MHg0MiwweGEwLDB4ODEsMHgwOCwweDAwLDB4MDIsMHgwYywweDgwLDB4ODEsMHgwMCwweDIwLDB4YzAsMHgyOCwweDAwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4ZmZhMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4YTksMHg0MCwweDNlLDB4NDQgfX0sCi0gezE2LCAweGZmYjAsIDAsIHsweDA4LDB4YjEsMHgwMywweDJjLDB4NDAsMHhlYSwweDQ5LDB4MmUsMHgwZCwweDBiLDB4YjYsMHgxMywweDdkLDB4ODAsMHhjOSwweDQwIH19LAotIHsxNiwgMHhmZmMwLCAwLCB7MHhiYSwweGQwLDB4MGMsMHhiNCwweDAzLDB4YWMsMHgwMCwweGY4LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZmZkMCwgMCwgezB4YzUsMHgwMCwweGIyLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmZTAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNkLDB4YzUsMHgwYiwweGYxLDB4MDAsMHhmYywweGQwLDB4NzcsMHgyOSwweDM3IH19LAotIHsxNiwgMHhmZmYwLCAwLCB7MHgwYywweDhlLDB4NzQsMHgwMywweGZjLDB4MDgsMHhmZCwweDY5LDB4M2YsMHhkOCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4ODAxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MDcsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDgwMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDBkLDB4ZmMsMHhjMCwweGRjLDB4ODAsMHgzZiwweGM4IH19LAotIHsxNiwgMHg4MDMwLCAwLCB7MHgwZiwweDQ4LDB4MDMsMHg3YywweDIwLDB4ZmYsMHg2OCwweDM3LDB4ZTAsMHgwZSwweGYxLDB4MDMsMHg5YywweDAwLDB4YmYsMHgyMCB9fSwKLSB7MTYsIDB4ODA0MCwgMCwgezB4MzcsMHhlMCwweDBjLDB4YzgsMHgxMywweDNjLDB4NDAsMHhlZCwweDYwLDB4YmIsMHhlNCwweDJjLDB4NDMsMHg0YiwweDcwLDB4YTAgfX0sCi0gezE2LCAweDgwNTAsIDAsIHsweGNjLDB4MmMsMHgzZiwweDA5LDB4MGYsMHhkOCwweDQzLDB4NzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MDYwLCAwLCB7MHg4MCwweDAwLDB4ZWQsMHhjMCwweGI4LDB4ODAsMHgyZiwweGY0LDB4MGYsMHg5OCwweDAyLDB4M2YsMHgwMCwweGJmLDB4NDIsMHgyMiB9fSwKLSB7MTYsIDB4ODA3MCwgMCwgezB4Y2EsMHgwOCwweGY0LDB4MDIsMHgzZSwweDAwLDB4YmYsMHhkMCwweDIyLDB4NjAsMHgyOCwweDg4LDB4MGEsMHgzZCwweDgwLDB4OGQgfX0sCi0gezE2LCAweDgwODAsIDAsIHsweDQwLDB4MjIsMHhjOCwweDA4LDB4ODEsMHgwMiwweDIxLDB4ODAsMHhkYiwweGMwLDB4MmUsMHhhNSwweDBiLDB4OTgsMHg0MiwweDIwIH19LAotIHsxNiwgMHg4MDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MTAsMHhiMCwweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODBhMCwgMCwgezB4MGIsMHgyMCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MjAsMHgyNiwweGMwLDB4OGEsMHgzNiwweDEyLDB4OGMsMHg0MSwweGIzLDB4MDAgfX0sCi0gezE2LCAweDgwYjAsIDAsIHsweDJlLDB4NDAsMHgwOCwweDAwLDB4MDIsMHgwZCwweDgxLDB4YTEsMHgzMCwweDIyLDB4YzgsMHg4OSwweGEyLDB4NDIsMHgwOCwweDIwIH19LAotIHsxNiwgMHg4MGMwLCAwLCB7MHhiMCwweDAwLDB4MmMsMHg0MCwweDBiLDB4OTAsMHgyNiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODBkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDAsMHhiOCwweDUwLDB4MmUsMHhjMCwweDBhLDB4OTAsMHgwMiwweGFjLDB4MDAsMHhiYiwweDAwLDB4MjIgfX0sCi0gezE2LCAweDgwZTAsIDAsIHsweGMwLDB4MDgsMHhiMCwweDYyLDB4MmMsMHgxMCwweGJiLDB4MDQsMHgyYSwweGYwLDB4NGEsMHg4OCwweDAyLDB4MGMsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4MGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOSwweGI4LDB4ODAsMHgyNiwweDAwLDB4YjgsMHg4MCwweDJlLDB4MjEsMHgwYiwweDkwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ODEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDgwLDB4MTUsMHhlYywweDAwLDB4ZDgsMHhjMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweDgxMTAsIDAsIHsweDBiLDB4ODAsMHgwMywweGVjLDB4MDAsMHhmYiwweDAwLDB4MzYsMHg4MCwweDBlLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmYiwweDAwIH19LAotIHsxNiwgMHg4MTIwLCAwLCB7MHgzYywweGUwLDB4MGMsMHgwYywweDAzLDB4MmMsMHgwMCwweGU5LDB4MDAsMHgxMCwweGMwLDB4MGMsMHg4YywweDAzLDB4MDYsMHgwMCB9fSwKLSB7MTYsIDB4ODEzMCwgMCwgezB4ZjgsMHhjZCwweDNlLDB4MjIsMHgwZiwweDE4LDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNlLDB4YzAsMHgwZiwweGYwLDB4MDMsMHg3YywweDAwLDB4ZjcsMHgwMiwweDNmIH19LAotIHsxNiwgMHg4MTUwLCAwLCB7MHhlNCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDQsMHhiNywweDAwLDB4MzcsMHg0MCwweDBkLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4ODE2MCwgMCwgezB4MDAsMHgzNywweGQwLDB4MGUsMHhjMCwweDQzLDB4ZjQsMHgwMCwweGRmLDB4MDAsMHgzZiwweDgwLDB4OGYsMHhkYSwweDAzLDB4ZjggfX0sCi0gezE2LCAweDgxNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY4LDB4MTAsMHgzYSwweGMwIH19LAotIHsxNiwgMHg4MTgwLCAwLCB7MHg2ZCwweGE2LDB4MTMsMHhlYywweDAwLDB4Y2IsMHgwMCwweDNhLDB4ZDAsMHgwZiwweGIwLDB4MDMsMHgyYywweDEwLDB4ZGIsMHgxMCB9fSwKLSB7MTYsIDB4ODE5MCwgMCwgezB4MzYsMHhkOCwweDBkLDB4ODQsMHgwMywweGVjLDB4MDYsMHhjOSwweDA4LDB4M2EsMHhjMCwweDBlLDB4ODYsMHgwMywweGE4LDB4NjAgfX0sCi0gezE2LCAweDgxYTAsIDAsIHsweGY4LDB4MjAsMHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4NTQsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MWIwLCAwLCB7MHg5OCwweDA1LDB4M2MsMHgwMCwweGJiLDB4NDAsMHgyMywweGQwLDB4MDgsMHgzMCwweDAyLDB4M2UsMHgxMCwweGFmLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ODFjMCwgMCwgezB4YzAsMHgwYiwweGYwLDB4MDIsMHgzYywweDAwLDB4OGYsMHg1MCwweDJlLDB4YzgsMHgwNiwweDhhLDB4MDIsMHhmYywweDAwLDB4OGQgfX0sCi0gezE2LCAweDgxZDAsIDAsIHsweDI0LDB4ODIsMHhkNiwweDA4LDB4MzIsMHgwMiwweDJkLDB4MDgsMHgzYSwweDQwLDB4MjIsMHg4MCwweDBkLDB4OTAsMHgwMywweDYyIH19LAotIHsxNiwgMHg4MWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDIwLDB4MjgsMHhjMiB9fSwKLSB7MTYsIDB4ODFmMCwgMCwgezB4MDgsMHgwNCwweDAyLDB4OGMsMHgwMCwweDEzLDB4MDIsMHgyOCwweGMwLDB4MGIsMHgzMCwweDAyLDB4MGMsMHgzMCwweDkzLDB4ODAgfX0sCi0gezE2LCAweDgyMDAsIDAsIHsweDI0LDB4ZDAsMHgwOSwweDIwLDB4MDIsMHhjYywweDAwLDB4OTEsMHg0MCwweDA4LDB4YzAsMHgyYSwweDE0LDB4MDIsMHg4MSwweDAwIH19LAotIHsxNiwgMHg4MjEwLCAwLCB7MHg5MCwweDAwLDB4NjgsMHgwMCwweDA4LDB4MTgsMHgwMiwweDNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODIyMCwgMCwgezB4NzAsMHgwMSwweDFlLDB4MDAsMHhiNCwweGEwLDB4MjEsMHhlMCwweDA4LDB4YzgsMHgxMiwweDllLDB4MDAsMHhiMywweDgyLDB4MjEgfX0sCi0gezE2LCAweDgyMzAsIDAsIHsweGUwLDB4MGIsMHg3YSwweDBhLDB4MWUsMHgwMCwweDk3LDB4ODAsMHgyZCwweGUxLDB4MGEsMHg0OCwweDAyLDB4Y2UsMHg0MCwweDk1IH19LAotIHsxNiwgMHg4MjQwLCAwLCB7MHg5MCwweDI5LDB4ZTQsMHgwOCwweDU4LDB4MDIsMHg5YSwweDAwLDB4YjcsMHg4OCwweDIxLDB4ZTAsMHgwOSwweDU4LDB4MDIsMHg1YyB9fSwKLSB7MTYsIDB4ODI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDRhLDB4MDAsMHgwYywweDAwLDB4ZjAsMHg4MCwweDM4LDB4YzQgfX0sCi0gezE2LCAweDgyNjAsIDAsIHsweDBjLDB4MjUsMHgwMywweDhjLDB4MjAsMHg5MywweDAwLDB4MzgsMHhjNCwweDBmLDB4YjAsMHgwMywweDBjLDB4ODAsMHhkMywweDAwIH19LAotIHsxNiwgMHg4MjcwLCAwLCB7MHgzNCwweGMwLDB4MGQsMHgwNCwweDEzLDB4Y2MsMHgwOCwweDk5LDB4MDAsMHgyYSwweGMwLDB4MGUsMHgyMSwweDAzLDB4ODgsMHgwNCB9fSwKLSB7MTYsIDB4ODI4MCwgMCwgezB4ZjMsMHgwMCwweDM4LDB4YzAsMHgwYywweDExLDB4ODMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgyOTAsIDAsIHsweDQyLDB4MTUsMHhiYywweDAwLDB4ZjQsMHgwMCwweDNmLDB4YzMsMHgwZSwweGMwLDB4MDMsMHgxYywweDAwLDB4YWYsMHg0YSwweDdmIH19LAotIHsxNiwgMHg4MmEwLCAwLCB7MHhjNCwweDBmLDB4YjIsMHgwMywweGZkLDB4MDEsMHhlZiwweDEwLDB4M2YsMHg4NCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ODJiMCwgMCwgezB4MDAsMHgzNywweGMyLDB4MGUsMHhmMSwweDQ3LDB4N2MsMHgwMCwweGY3LDB4MDAsMHgzZCwweGMwLDB4MGYsMHg1MCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDgyYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhYSwweDE1LDB4ZWMsMHgwOCwweGY4LDB4MDAsMHgzZSwweGNhIH19LAotIHsxNiwgMHg4MmQwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZiwweDIxLDB4ZmIsMHg4MCwweDdhLDB4NDAsMHg4ZiwweGIyLDB4YTEsMHgyZiwweDAwLDB4Y2IsMHg2MCB9fSwKLSB7MTYsIDB4ODJlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4YTAsMHhlOSwweDMwLDB4MzIsMHhjMCwweDJkLDB4YjAsMHgwMywweGU0LDB4MDAgfX0sCi0gezE2LCAweDgyZjAsIDAsIHsweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MzAwLCAwLCB7MHhjOCwweDkxLDB4OWQsMHgwMCwweGI0LDB4MDEsMHgyZCwweGM4LDB4MGIsMHg3MCwweDAyLDB4Y2MsMHg4MCwweDhmLDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4ODMxMCwgMCwgezB4YzAsMHg4YiwweDc2LDB4MDMsMHg1ZCwweDAwLDB4ODcsMHgwYSwweDJkLDB4YzAsMHgwYiwweDQwLDB4MjIsMHhmZCwweDAwLDB4OGQgfX0sCi0gezE2LCAweDgzMjAsIDAsIHsweDEwLDB4MjMsMHhjOCwweDA4LDB4NTAsMHgxMiwweGQ0LDB4MDAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGYyIH19LAotIHsxNiwgMHg4MzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDllLDB4MDAsMHhiNCwweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4ODM0MCwgMCwgezB4MGIsMHg3YywweDAyLDB4ZGUsMHg0MCwweGE3LDB4ODIsMHgyZCwweGUwLDB4MGIsMHgzYSwweDAyLDB4OGUsMHgwMCwweDg3LDB4OTAgfX0sCi0gezE2LCAweDgzNTAsIDAsIHsweDJkLDB4ZTAsMHgwYiwweDU4LDB4MDIsMHg1ZSwweDAwLDB4YTUsMHhhMiwweDY1LDB4ZTAsMHgwOCwweDY4LDB4ODIsMHhkYSwweDAwIH19LAotIHsxNiwgMHg4MzYwLCAwLCB7MHg5NSwweDgwLDB4MmQsMHg2MCwweDBiLDB4NzgsMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODM3MCwgMCwgezB4MDgsMHg4NCwweGNjLDB4MDAsMHhiMCwweDA5LDB4MmMsMHhjMCwweDBiLDB4MzgsMHgwMiwweGNjLDB4MDAsMHg4MywweDAwLDB4MmUgfX0sCi0gezE2LCAweDgzODAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDQyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweGEwLDB4MGIsMHgwNCwweDAyLDB4Y2MsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4MzkwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHgwOCwweGIwLDB4MDYsMHhjZiwweDgwLDB4YjMsMHgxMCwweDJjLDB4YzQsMHgwYiwweDMxLDB4MDIsMHhjMyB9fSwKLSB7MTYsIDB4ODNhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4ZmUsMHg4MCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDgzYjAsIDAsIHsweDBmLDB4ZTgsMHgxMywweGU4LDB4MDAsMHhlYSwweDAwLDB4M2YsMHhiMCwweDBmLDB4YTAsMHgwMywweGE4LDB4MDIsMHhjMiwweDAwIH19LAotIHsxNiwgMHg4M2MwLCAwLCB7MHgyZiwweDg4LDB4MGYsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGVhLDB4MDAsMHgzNiwweDAwLDB4MGMsMHhlMCwweDAzLDB4ZjksMHgyMCB9fSwKLSB7MTYsIDB4ODNkMCwgMCwgezB4ZGUsMHg4MCwweDNmLDB4YTAsMHg0ZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgxMCwweDNjLDB4MTAsMHgwZiwweDgwLDB4ODMsMHhlMSwweDAwLDB4ZTgsMHgwMCwweDIyIH19LAotIHsxNiwgMHg4M2YwLCAwLCB7MHgwNiwweDBmLDB4MDAsMHgxMywweGUwLDB4MDEsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg4MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4NCwweDIzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDEwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDg0MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTQsMHgwMCwweGY5LDB4MTAsMHgzZSwweDQ0IH19LAotIHsxNiwgMHg4NDIwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MTIsMHgyNCwweDAwLDB4ZjksMHgxMCB9fSwKLSB7MTYsIDB4ODQzMCwgMCwgezB4MzIsMHg0MCwweDhmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBjLDB4OWMsMHgwMSwweDI0LDB4MDAgfX0sCi0gezE2LCAweDg0NDAsIDAsIHsweGY5LDB4MTAsMHgzZSwweDcwLDB4MGYsMHg5MCwweDAyLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NDUwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweGI5LDB4YzAsMHgyZSwweDQ4LDB4MDgsMHg5MSwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODQ2MCwgMCwgezB4NDAsMHgwZCwweDkwLDB4MDMsMHg2NywweDAwLDB4YjksMHg4MCwweDJhLDB4NjAsMHgwYiwweDk5LDB4MDIsMHhlNCwweDAwLDB4ODEgfX0sCi0gezE2LCAweDg0NzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDJjLDB4OTAsMHgxMiwweDI1LDB4MjAsMHhiOSwweDQ4LDB4MmUsMHg1MiwweDBiLDB4OTQsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4NDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ODQ5MCwgMCwgezB4NjgsMHg5MCwweDQ2LDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweGMwLDB4MDgsMHg5MCwweDAyLDB4YTQsMHg2MCwweGI5LDB4MDAgfX0sCi0gezE2LCAweDg0YTAsIDAsIHsweDIyLDB4NDgsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAyLDB4ODksMHgwMCwweGEwLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNiwweDEwIH19LAotIHsxNiwgMHg4NGIwLCAwLCB7MHhiOSwweDAwLDB4MGUsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODRjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHhiMSwweDAwLDB4MmMsMHg0OCwweDA4LDB4MTAsMHgwMiwweGM0LDB4ODQsMHhiMSwweDIwLDB4MmMgfX0sCi0gezE2LCAweDg0ZDAsIDAsIHsweDQwLDB4MDksMHgxMiwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHgyOCwweDQwLDB4MGIsMHgxMCwweDAyLDB4YzQsMHg4MCwweDg5IH19LAotIHsxNiwgMHg4NGUwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHg0YiwweDEyLDB4MGEsMHg4NCwweDg0LDB4YjEsMHgyMCwweDJjLDB4NDgsMHg4YiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODRmMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4YmEsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweDg1MDAsIDAsIHsweDBjLDB4ODAsMHgwMywweGU4LDB4MDgsMHhmOCwweDUwLDB4M2UsMHgxNCwweDBjLDB4ODUsMHgwMywweDIwLDB4MDAsMHhiOCwweDAwIH19LAotIHsxNiwgMHg4NTEwLCAwLCB7MHgzMiwweDAwLDB4MGYsMHhhMCwweDAzLDB4ZTEsMHg0MCwweGM4LDB4NTAsMHgzMiwweDE0LDB4MGMsMHhhNSwweDAzLDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4ODUyMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweGEwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1MzAsIDAsIHsweDg4LDB4MGQsMHhlNCwweDQwLDB4ZmQsMHgwMCwweDNlLDB4NDQsMHgwZiwweGQwLDB4MDMsMHhlNCwweDQwLDB4YjksMHgxMSwweDNmIH19LAotIHsxNiwgMHg4NTQwLCAwLCB7MHg0MCwweDBmLDB4OTEsMHgwMywweDY0LDB4NDQsMHhmOSwweDEwLDB4M2YsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4ODU1MCwgMCwgezB4MTAsMHgzZiwweDEwLDB4OGMsMHhkMSwweDAzLDB4NzQsMHg0MCwweGZmLDB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDg1NjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4NjYsMHgyMCwweGVkLDB4MDAsMHgzMywweDY5IH19LAotIHsxNiwgMHg4NTcwLCAwLCB7MHg0ZCwweDUwLDB4NDMsMHg1NiwweDAwLDB4ZjksMHhhMCwweDM0LDB4NDAsMHgwZiwweDlhLDB4MGIsMHgzNCwweDAwLDB4ZGQsMHg4MCB9fSwKLSB7MTYsIDB4ODU4MCwgMCwgezB4M2IsMHg0MCwweDBiLDB4NTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHhlMCwweDBlLDB4ZDAsMHgwMywweGY0LDB4MDAgfX0sCi0gezE2LCAweDg1OTAsIDAsIHsweGZkLDB4MDAsMHgzZiwweDQwLDB4MGMsMHhkMCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NWEwLCAwLCB7MHg3OCwweDEwLDB4ZTIsMHg4MCwweDg4LDB4MDQsMHgyMiwweDEwLDB4MGIsMHg4MCwweDAyLDB4MjAsMHgwOSwweGI4LDB4ZjAsMHgyMiB9fSwKLSB7MTYsIDB4ODViMCwgMCwgezB4MDAsMHgwYiwweDhlLDB4MTIsMHhhMCwweDAwLDB4YjgsMHg1MiwweDJlLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMCwweDA1LDB4YjggfX0sCi0gezE2LCAweDg1YzAsIDAsIHsweGFhLDB4MjMsMHgzZSwweDBkLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4M2EsMHgwMCwweDA4LDB4ODAsMHgwMiwweGNlIH19LAotIHsxNiwgMHg4NWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MjAsMHhhOSwweDAwLDB4YTQsMHg0NCB9fSwKLSB7MTYsIDB4ODVlMCwgMCwgezB4MDksMHg5MCwweDAyLDB4YzUsMHgwMCwweGExLDB4MDgsMHgyYywweDQwLDB4MGIsMHgxMSwweDgyLDB4MDQsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweDg1ZjAsIDAsIHsweDI4LDB4NDAsMHgwYSwweDEwLDB4NDIsMHhjNCwweDAwLDB4YjUsMHgwMCwweGExLDB4NDAsMHgwOCwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHg4NjAwLCAwLCB7MHhiMSwweDAxLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgyMCwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA0LDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMCwweGFjLDB4MDAsMHgzOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg2MjAsIDAsIHsweDQwLDB4MGIsMHgxMCwweDAyLDB4YTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDQ4LDB4MGIsMHg5MCwweDEyLDB4ZTQsMHgwMCwweGI5IH19LAotIHsxNiwgMHg4NjMwLCAwLCB7MHgwMCwweDIxLDB4NjAsMHgwOSwweDkyLDB4MjIsMHhlNCwweDI4LDB4YjksMHgwMCwweDBhLDB4NTAsMHgwOCwweDkwLDB4MDYsMHhjNiB9fSwKLSB7MTYsIDB4ODY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4ZTksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweDg2NTAsIDAsIHsweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0OCwweDBmLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4NjYwLCAwLCB7MHgzYSwweDc4LDB4MGUsMHg5OCwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHhiMiwweDQwLDB4MGUsMHg5MiwweDIzLDB4ZTYsMHgwMCB9fSwKLSB7MTYsIDB4ODY3MCwgMCwgezB4YjksMHg1MCwweDNlLDB4NzAsMHgyYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg2ODAsIDAsIHsweDY4LDB4MDEsMHg4NCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHg0ZiwweDljLDB4MjMsMHg2NCwweDAwLDB4ZjksMHgwNCwweDM2IH19LAotIHsxNiwgMHg4NjkwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg2MCwweDBmLDB4OTIsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ODZhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDgzLDB4ZTQsMHg0NCwweGY5LDB4MDAsMHg3OCwweDY0LDB4MGYsMHg5MCwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDg2YjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHg4NmMwLCAwLCB7MHgwZiwweDgyLDB4MDMsMHhhMCwweDQwLDB4ZTgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMCwweGMwLDB4YzgsMHg4MCB9fSwKLSB7MTYsIDB4ODZkMCwgMCwgezB4M2UsMHgxMiwweDBmLDB4ODAsMHgwMywweDYwLDB4MDAsMHg3YywweDAwLDB4MzMsMHgwMCwweDBkLDB4ODAsMHgxMywweGUwLDB4MTAgfX0sCi0gezE2LCAweDg2ZTAsIDAsIHsweGM4LDB4NjQsMHgzZSwweDA4LDB4MGMsMHg4MiwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NmYwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGI2LDB4ZTAsMHgwZiwweGEwLDB4MGIsMHg2MCwweDgyLDB4MzgsMHgwMCwweGFhLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODcwMCwgMCwgezB4ODAsMHgwOCwweGEwLDB4NDIsMHhiYSwweDAwLDB4YWUsMHgyMCwweDJmLDB4ODgsMHgwYiwweGU1LDB4MDIsMHgyOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweDg3MTAsIDAsIHsweGQ4LDB4MzcsMHg4MCwweDA4LDB4ZWMsMHgwMiwweGY4LDB4MDQsMHg4ZSwweDAwLDB4MmYsMHg5MCwweDBkLDB4ZTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg4NzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMCwweDI0LDB4MmMsMHg2MCB9fSwKLSB7MTYsIDB4ODczMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4OGUsMHg4MCwweGFiLDB4MDAsMHgyYywweGMwLDB4MDksMHgzMCwweDAyLDB4MGQsMHgwOCwweDAwLDB4ODAgfX0sCi0gezE2LCAweDg3NDAsIDAsIHsweDZjLDB4ZDAsMHgwYiwweDM0LDB4MDIsMHhjYywweDAwLDB4YjgsMHhjMCwweDIwLDB4MDAsMHg0OCwweDM0LDB4MTIsMHhjYywweDQwIH19LAotIHsxNiwgMHg4NzUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlMCwweDBhLDB4MzUsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODc2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHhiNywweDAwLDB4MmQsMHgwMiwweDhiLDB4NjAsMHgwMiwweDllLDB4MDAsMHg4NywweDIwLDB4MmYgfX0sCi0gezE2LCAweDg3NzAsIDAsIHsweGUwLDB4MDgsMHg3MiwweDAyLDB4OWUsMHgwMCwweGE0LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhmOCwweDAyLDB4OWMsMHhjMCwweGIzIH19LAotIHsxNiwgMHg4NzgwLCAwLCB7MHgwMiwweGE1LDB4YzAsMHgwOCwweDUwLDB4ODYsMHhmZSwweDAwLDB4ODcsMHgwMCwweDJmLDB4ZDAsMHgwOSwweDcwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ODc5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4ZjQsMHg4MCwweDNkLDB4MjAgfX0sCi0gezE2LCAweDg3YTAsIDAsIHsweDBmLDB4NTgsMHgwMywweDllLDB4MDAsMHg2NywweDgwLDB4M2QsMHhmOCwweDBkLDB4MzgsMHgwMiwweDFhLDB4MTAsMHg0NCwweDgwIH19LAotIHsxNiwgMHg4N2IwLCAwLCB7MHgzZCwweGUwLDB4MGYsMHg1OCwweDAzLDB4ZGUsMHgyMCwweGI0LDB4ODAsMHgzMywweGEwLDB4MmMsMHg2OCwweDAzLDB4ZDYsMHgwMCB9fSwKLSB7MTYsIDB4ODdjMCwgMCwgezB4YzcsMHg4MSwweDNkLDB4ZTAsMHgwYywweDc4LDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3ZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDA4LDB4ZjgsMHgwMCwweDNlLDB4MDAsMHg4ZiwweDgwLDB4MDMsMHg2YywweDAwLDB4M2IsMHgxMiwweDNlIH19LAotIHsxNiwgMHg4N2UwLCAwLCB7MHhjYSwweDBmLDB4YjUsMHgwMywweGM4LDB4MDAsMHhmOCwweDA0LDB4N2UsMHhjMCwweDBmLDB4OTAsMHgwMywweDZjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ODdmMCwgMCwgezB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MCwweDIzLDB4YzgsMHgwMCwweGY5LDB4MDEsMHgzYywweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDg4MDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGFjLDB4OTAsMHgzMSwweDQ4IH19LAotIHsxNiwgMHg4ODEwLCAwLCB7MHgwOCwweGY4LDB4MDMsMHhmYSwweDAwLDB4Y2YsMHg4MCwweDNmLDB4ZTAsMHgwYywweGZjLDB4MTMsMHgzZSwweDA0LDB4ZmMsMHg4MCB9fSwKLSB7MTYsIDB4ODgyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4NzgsMHgwMywweGJlLDB4MDAsMHhkZiwweDgwLDB4M2IsMHgyMCwweDI0LDB4ZjgsMHgwMywweDJlLDB4NDAgfX0sCi0gezE2LCAweDg4MzAsIDAsIHsweGNmLDB4ODAsMHgzMywweGUwLDB4MDMsMHhmOSwweDAzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ODQwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDgwLDB4MDAsMHgwMSwweDAwLDB4MDgsMHg3MiwweDAyLDB4ZDAsMHgwMCwweDg3LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4ODg1MCwgMCwgezB4YzgsMHgwYSwweGYwLDB4MDIsMHg5OCwweDQwLDB4ZjUsMHgwMCwweDYxLDB4NDEsMHgwMCwweDc0LDB4MDIsMHgxYywweDAwLDB4YjQgfX0sCi0gezE2LCAweDg4NjAsIDAsIHsweDAwLDB4MjEsMHhjOCwweDA4LDB4NjAsMHgwMiwweDNlLDB4MjAsMHg4NiwweDA4LDB4MjEsMHhkOCwweDBmLDB4NTAsMHgwMiwweGVhIH19LAotIHsxNiwgMHg4ODcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMCwweDljLDB4MDAsMHhhNCwweDAwLDB4MjEsMHgwMCB9fSwKLSB7MTYsIDB4ODg4MCwgMCwgezB4MDgsMHg1MCwweDAyLDB4ZDgsMHgwMCwweDk3LDB4MDAsMHgyZCwweGMwLDB4ODgsMHg3MSwweDAyLDB4MTQsMHgwMCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDg4OTAsIDAsIHsweDI1LDB4OTAsMHgwOCwweGMwLDB4ODIsMHg5YywweDQwLDB4OTMsMHgwMCwweDI5LDB4YTEsMHg4OCwweDYwLDB4MDIsMHgxNCwweDEyIH19LAotIHsxNiwgMHg4OGEwLCAwLCB7MHg4NywweDQwLDB4MjksMHg0MCwweDBiLDB4NjAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODhiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDAsMHg4MCwweGQwLDB4YTAsMHgwMCwweDA4LDB4MWMsMHgwMiwweGMwLDB4MDAsMHg5MywweDAwLDB4MmMgfX0sCi0gezE2LCAweDg4YzAsIDAsIHsweGQwLDB4MGEsMHhiMCwweDI2LDB4ODAsMHgwMCwweGIzLDB4MDAsMHgyNCwweGU0LDB4MDgsMHgwOCwweDAyLDB4OGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHg4OGQwLCAwLCB7MHgwMiwweDAyLDB4NDEsMHgwOCwweDA4LDB4MDIsMHgwMywweDAxLDB4ODEsMHgwMCwweDI4LDB4NDIsMHgxYSwweDAwLDB4NDIsMHhkOCB9fSwKLSB7MTYsIDB4ODhlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhiYywweDAwLDB4ZTgsMHhjMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg4ZjAsIDAsIHsweDBjLDB4YjUsMHgwMywweGU0LDB4MDAsMHg5ZiwweDAwLDB4M2QsMHhlMCwweDBjLDB4ZjAsMHgwYiwweDI0LDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHg4OTAwLCAwLCB7MHgzNiwweGUwLDB4MGMsMHgyNSwweDAzLDB4YmMsMHgwNSwweGQ4LDB4MDIsMHgyYSwweDAwLDB4MDgsMHhiYSwweDAyLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4ODkxMCwgMCwgezB4YzEsMHgwMiwweDNhLDB4NTAsMHg4YiwweDkwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5MjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwOCwweDNlLDB4ODAsMHgwZiwweGExLDB4MDMsMHhlYywweDA0LDB4ZWIsMHgwMiwweDJlIH19LAotIHsxNiwgMHg4OTMwLCAwLCB7MHhjNiwweDBmLDB4YjAsMHgxNywweDQ0LDB4MDAsMHhlOCwweDAwLDB4M2EsMHg0MCwweDBmLDB4ODAsMHgwMiwweDZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ODk0MCwgMCwgezB4MDAsMHgzZSwweGUwLDB4MGYsMHg5MCwweDkzLDB4ZTEsMHgwMCwweGQ5LDB4MDAsMHgyNiwweDcwLDB4OGYsMHg5MCwweDAxLDB4ZTEgfX0sCi0gezE2LCAweDg5NTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZmMsMHgwMCwweGZjLDB4MDMsMHgzNywweDI0IH19LAotIHsxNiwgMHg4OTYwLCAwLCB7MHgwZCwweGY4LDB4MDMsMHhlMCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzEsMHg4ZCwweGYwLDB4MGIsMHgzOCwweDAwLDB4Y2MsMHgwMCB9fSwKLSB7MTYsIDB4ODk3MCwgMCwgezB4M2YsMHhjMCwweDBmLDB4ZmEsMHgwMywweDNjLDB4MGMsMHhmYywweDA0LDB4M2IsMHg4MCwweDBjLDB4YTAsMHgwMywweDk0LDB4MjAgfX0sCi0gezE2LCAweDg5ODAsIDAsIHsweDg5LDB4MDUsMHgzYiwweDAwLDB4NGYsMHhkMCwweDIzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OTkwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGIwLDB4MDYsMHgyMCwweDEzLDB4ODgsMHhhOCwweDAyLDB4ZWIsMHgwMCwweGJiLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4ODlhMCwgMCwgezB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYSwweDAwLDB4YTgsMHg4MCwweDJlLDB4ZTAsMHgwYiwweDk0LDB4MWEsMHgyYywweDAwLDB4YmIgfX0sCi0gezE2LCAweDg5YjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDI5LDB4OTgsMHgwMiwweGUyLDB4MDAsMHhhOSwweDg0LDB4MjIsMHgyMCwweDBiLDB4OTgsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4OWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDAwLDB4MjIsMHgwMCB9fSwKLSB7MTYsIDB4ODlkMCwgMCwgezB4MDksMHg4MiwweDAyLDB4ZTYsMHgwMCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAyLDB4MjYsMHgwMCwweDg4LDB4ODAgfX0sCi0gezE2LCAweDg5ZTAsIDAsIHsweDJlLDB4YTAsMHgwYiwweGEwLDB4MDIsMHgyYywweDAwLDB4YjMsMHgwMCwweDJhLDB4MDAsMHgwOSwweDk4LDB4MDIsMHhlYSwweDIwIH19LAotIHsxNiwgMHg4OWYwLCAwLCB7MHhhOSwweDgwLDB4MmEsMHg2MCwweDliLDB4OTgsMHg4MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGEwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiOCwweDAwLDB4MjAsMHgwMCwweDA5LDB4MDgsMHgwMiwweGM0LDB4MDAsMHhiMywweDAwLDB4MjYgfX0sCi0gezE2LCAweDhhMTAsIDAsIHsweGMwLDB4MDAsMHgzMCwweDAyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgwMCwweDAyLDB4MGMsMHgwMCwweGIwIH19LAotIHsxNiwgMHg4YTIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDAwLDB4MDIsMHhjOCwweDgwLDB4YTgsMHgwMCwweDIwLDB4NDEsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OGEzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDEwLDB4ZjgsMHg1MCwweGIyLDB4MDAgfX0sCi0gezE2LCAweDhhNDAsIDAsIHsweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmYiwweDAwLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgxMywweDI0LDB4MDIsMHhjOCwweDA2IH19LAotIHsxNiwgMHg4YTUwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4M2MsMHgwNCwweGZiLDB4MDAsMHg3OCwweDgwLDB4MGMsMHhhMCwweDAzLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OGE2MCwgMCwgezB4ZTksMHgwMCwweDFhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhhNzAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZjQsMHgyMCwweDNmLDB4MDAsMHgwZSwweGMwLDB4MDIsMHhmMCwweDAxLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHg4YTgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGYwLDB4MDAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4OGE5MCwgMCwgezB4MDAsMHgzZiwweDQwLDB4OWMsMHhjMCwweDAzLDB4ZjAsMHg0MCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHhkMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweDhhYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjAsMHgwMCwweGVkLDB4MjMsMHhiNywweDQ4IH19LAotIHsxNiwgMHg4YWIwLCAwLCB7MHgwYywweGUxLDB4YzMsMHg3YywweGMwLDB4ZGQsMHg4MCwweDM3LDB4ZTAsMHgwZiwweGNiLDB4MDMsMHhmZSwweDA4LDB4ZmMsMHgyOCB9fSwKLSB7MTYsIDB4OGFjMCwgMCwgezB4M2YsMHhmMCwweDFjLDB4ZmIsMHgyMywweDdjLDB4MDEsMHhmZiwweDE0LDB4NzcsMHhlMiwweDRmLDB4ZTgsMHgyMywweDdjLDB4MDAgfX0sCi0gezE2LCAweDhhZDAsIDAsIHsweGM0LDB4ODAsMHgzMywweDQ4LDB4MmMsMHhmOCwweDIyLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YWUwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHhlMCwweGM5LDB4YzAsMHgyMiwweDViLDB4ODgsMHg5NiwweDIyLDB4MmQsMHgwMCwweDg5LDB4MjIsMHgyMiB9fSwKLSB7MTYsIDB4OGFmMCwgMCwgezB4Y2EsMHgwYiwweDllLDB4MjIsMHhlMiwweGEwLDB4YjksMHg2MSwweDJjLDB4ZTAsMHg4OCwweDlmLDB4MDIsMHgzZCwweDg1LDB4YmYgfX0sCi0gezE2LCAweDhiMDAsIDAsIHsweDYwLDB4MjYsMHg1MCwweDQ4LDB4YTAsMHgwMiwweDNjLDB4MDAsMHg4OCwweDAwLDB4MjIsMHg1MCwweDA4LDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg4YjEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGMwLDB4ODAsMHhiMSwweDEwLDB4MjAsMHg0NCB9fSwKLSB7MTYsIDB4OGIyMCwgMCwgezB4MGIsMHhiMiwweDAyLDB4Y2UsMHhkMCwweDgxLDB4MDgsMHgyYywweGMwLDB4MGIsMHgwMSwweDAyLDB4OGMsMHgwOCwweGIzLDB4MDggfX0sCi0gezE2LCAweDhiMzAsIDAsIHsweDJjLDB4YzksMHgwOCwweDEwLDB4NjIsMHg4YywweDYwLDB4YjMsMHgzMiwweDI0LDB4ODAsMHgwYSwweGEwLDB4MDIsMHg2YywweDAzIH19LAotIHsxNiwgMHg4YjQwLCAwLCB7MHg5YSwweDAxLDB4MjYsMHg0NCwweDQ4LDB4YjAsMHg0MiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGI1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4YTAsMHg4YiwweDAyLDB4MjIsMHhlMCwweDBiLDB4YjAsMHg2MiwweGFjLDB4OTgsMHg5OSwweDAwLDB4MmEgfX0sCi0gezE2LCAweDhiNjAsIDAsIHsweGMyLDB4MGIsMHg5OCwweDA2LDB4ZTQsMHgwMCwweGJiLDB4MDIsMHgyZSwweGMwLDB4MDgsMHg5MSwweDQyLDB4MmMsMHgxMCwweGJiIH19LAotIHsxNiwgMHg4YjcwLCAwLCB7MHgwMCwweDZlLDB4ODAsMHgwYSwweDgwLDB4MDIsMHg2YywweDAwLDB4MWIsMHgwMCwweDA2LDB4NDAsMHg0OCwweGI4LDB4MGEsMHg3MCB9fSwKLSB7MTYsIDB4OGI4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YTEsMHgwMCwweDc2LDB4NzggfX0sCi0gezE2LCAweDhiOTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGU4LDB4MTAsMHhkOSwweDAwLDB4M2UsMHhkMCwweDRiLDB4OWUsMHgxMywweGFjLDB4MDgsMHhiOCwweGEwIH19LAotIHsxNiwgMHg4YmEwLCAwLCB7MHg3ZSwweGM2LDB4MDgsMHhhOCwweDAyLDB4MmMsMHgwMSwweGJiLDB4MDAsMHgyNiwweDMwLDB4NGUsMHgyMCwweDAzLDB4NGMsMHgxOCB9fSwKLSB7MTYsIDB4OGJiMCwgMCwgezB4OTksMHg4MCwweGI0LDB4NDAsMHg0YywweDNhLDB4MDMsMHg0MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiYzAsIDAsIHsweGUwLDB4MDEsMHhiMiwweDAwLDB4ZmQsMHhjNSwweDNiLDB4YzAsMHg0YywweGQwLDB4MDMsMHg2YSwweDAyLDB4ZWQsMHgwNiwweDMzIH19LAotIHsxNiwgMHg4YmQwLCAwLCB7MHhjNCwweDBmLDB4ZDAsMHg1MywweGY4LDB4MDAsMHhmYywweDkwLDB4N2YsMHhjMSwweDBmLDB4NzgsMHgwMywweGJjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OGJlMCwgMCwgezB4MDAsMHgzNywweDY0LDB4MGMsMHhmMSwweDAzLDB4YTQsMHgwMCwweGVkLDB4YTEsMHgzYiwweDQwLDB4MGIsMHhmMCwweDgzLDB4YjggfX0sCi0gezE2LCAweDhiZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgwMCwweGNiLDB4MjAsMHgzZSwweDcxIH19LAotIHsxNiwgMHg4YzAwLCAwLCB7MHgwZiwweGIzLDB4MDMsMHg5OCwweDAyLDB4ZmIsMHgwMiwweDM2LDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlYywweDIwLDB4ZjgsMHgwMCB9fSwKLSB7MTYsIDB4OGMxMCwgMCwgezB4M2UsMHhjYywweDA0LDB4ODQsMHgwMywweDJjLDB4MDAsMHhkYiwweDA0LDB4M2MsMHgxMCwweDBmLDB4YTAsMHgwMywweGVjLDB4MDAgfX0sCi0gezE2LCAweDhjMjAsIDAsIHsweDliLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YzMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwMiwweDhiLDB4NDgsMHgyZSwweGUwLDB4MGIsMHgzNCwweDAzLDB4NmIsMHgwMCwweDhiLDB4ZjUsMHgyMiB9fSwKLSB7MTYsIDB4OGM0MCwgMCwgezB4ZjIsMHgwYiwweDljLDB4MDMsMHhhZiwweDAwLDB4YjgsMHg1MCwweDJlLDB4YzAsMHgwOCwweGIwLDB4MDIsMHg3YywweDAwLDB4OGYgfX0sCi0gezE2LCAweDhjNTAsIDAsIHsweDAwLDB4MGUsMHg1ZCwweDBiLDB4ODAsMHgwMiwweGY1LDB4NDAsMHg4MywweDUwLDB4MjMsMHg1NCwweDA4LDB4OWMsMHgwMiwweGU2IH19LAotIHsxNiwgMHg4YzYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNCwweDRjLDB4MDAsMHg4MSwweDgxLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OGM3MCwgMCwgezB4MDMsMHgyYywweDAyLDB4MDQsMHgzMywweDk5LDB4MDAsMHgyMCwweGYwLDB4NGEsMHgyOCwweDgwLDB4Y2MsMHg0MCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDhjODAsIDAsIHsweDI2LDB4MTAsMHgwOCwweDIwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgwMCwweDJjLDB4YzAsMHgwOSwweDIwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg4YzkwLCAwLCB7MHhhMCwweDAyLDB4MjgsMHg0MCwweDA4LDB4MDgsMHgwMiwweDdhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGNhMCwgMCwgezB4MjAsMHgwMSwweDBhLDB4MDAsMHg4NSwweDgwLDB4MmQsMHhmOCwweDBiLDB4ZGEsMHgwMiwweGQ2LDB4NDAsMHg4NSwweGEwLDB4MjEgfX0sCi0gezE2LCAweDhjYjAsIDAsIHsweGUwLDB4MGIsMHg0OCwweDA2LDB4OTIsMHgwNCwweGI1LDB4ODAsMHgyZCwweDIxLDB4MDgsMHgwMCwweDAyLDB4NGUsMHgwMCwweDg3IH19LAotIHsxNiwgMHg4Y2MwLCAwLCB7MHhhNCwweDJkLDB4NjAsMHgwYiwweDY4LDB4MDIsMHhkZSwweGMyLDB4YWQsMHg5MCwweDJiLDB4NjAsMHgyOCwweDU4LDB4ODIsMHhkYyB9fSwKLSB7MTYsIDB4OGNkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0YywweDQwLDB4YzMsMHgxMCwweDJjLDB4NmMgfX0sCi0gezE2LCAweDhjZTAsIDAsIHsweDBmLDB4MzAsMHgwMywweDg2LDB4YTIsMHhmOSwweGIwLDB4YjAsMHhlMCwweDBmLDB4MjksMHg4MywweGNlLDB4NDQsMHhmMywweDgwIH19LAotIHsxNiwgMHg4Y2YwLCAwLCB7MHgzYywweGFjLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGMzLDB4MDAsMHgzYywweGQ1LDB4MGYsMHgyMCwweDAzLDB4Y2UsMHhjMSB9fSwKLSB7MTYsIDB4OGQwMCwgMCwgezB4ZTAsMHgxMCwweGI4LDB4NDAsMHgwYywweDAwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkMTAsIDAsIHsweGMwLDB4MWQsMHhiYywweDAwLDB4ZWIsMHgwMCwweDNlLDB4Y2MsMHgwZiwweDMyLDB4MDMsMHg2NCwweDA4LDB4ZjksMHgwMCwweDNiIH19LAotIHsxNiwgMHg4ZDIwLCAwLCB7MHg5MCwweDBmLDB4ZjAsMHg0MywweGU0LDB4NDAsMHhmYiwweDM0LDB4M2YsMHg4MSwweDA3LDB4ZDEsMHgwMywweGFkLDB4MjAsMHhlYiB9fSwKLSB7MTYsIDB4OGQzMCwgMCwgezB4MjAsMHg3ZiwweGM0LDB4MGYsMHhlMSwweDAzLDB4ZmMsMHg1MCwweGNkLDB4MTAsMHgzNSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhkNDAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwNCwweGZkLDB4MDQsMHgzZCwweDQwIH19LAotIHsxNiwgMHg4ZDUwLCAwLCB7MHgyZCwweDMwLDB4MDIsMHgzYywweDAwLDB4YzksMHgwMSwweDNlLDB4YzAsMHg0ZiwweGI4LDB4NDMsMHhlYywweDEwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OGQ2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YTAsMHgyMywweGVjLDB4ODAsMHhjYiwweDM2LDB4MzIsMHg4MCwweDRkLDB4YTgsMHgwMywweDJjLDB4MTAgfX0sCi0gezE2LCAweDhkNzAsIDAsIHsweGNiLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4NmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZDgwLCAwLCB7MHhjOCwweDExLDB4OTAsMHgwOCwweGI1LDB4MDAsMHgyZCwweGMwLDB4MDgsMHg1MCwweDAyLDB4YmMsMHgwMiwweDg1LDB4MDQsMHgyZCB9fSwKLSB7MTYsIDB4OGQ5MCwgMCwgezB4YzAsMHg4ZSwweDYwLDB4MDYsMHhkOCwweDA0LDB4YjcsMHgwNCwweDIxLDB4NDAsMHgwYiwweDcwLDB4MDIsMHhmYywweDgwLDB4YWYgfX0sCi0gezE2LCAweDhkYTAsIDAsIHsweDI4LDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweDA2LDB4NDAsMHg4NywweDAwLDB4MjEsMHg1MCwweDA4LDB4NTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHg4ZGIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmIsMHg3MCB9fSwKLSB7MTYsIDB4OGRjMCwgMCwgezB4MDgsMHhmOCwweDA2LDB4MWUsMHgwMCwweDg3LDB4ODAsMHgyZCwweGUwLDB4MGIsMHg3MCwweDMyLDB4ZGUsMHgwNCwweDM3LDB4ODQgfX0sCi0gezE2LCAweDhkZDAsIDAsIHsweDI1LDB4ZTAsMHgwYiwweDY4LDB4MDYsMHhkZSwweDgwLDB4ODcsMHg4MCwweDIxLDB4YTEsMHgxYiwweDY4LDB4MDIsMHgxZSwweDQwIH19LAotIHsxNiwgMHg4ZGUwLCAwLCB7MHg5ZiwweDgwLDB4MjAsMHg2MCwweDA4LDB4NTgsMHgwMiwweDIwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGRmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MjAsMHhiMywweDAwLDB4MmMsMHg4MCwweDg4LDB4YjQsMHgyMiwweDhkLDB4MDAsMHg4MywweDkwLDB4MmMgfX0sCi0gezE2LCAweDhlMDAsIDAsIHsweGMwLDB4MGEsMHgzOCwweDAyLDB4Y2UsMHgwOCwweGJiLDB4MjAsMHgyNCwweGQwLDB4MGIsMHhiMywweDAyLDB4Y2MsMHgwMCwweGEzIH19LAotIHsxNiwgMHg4ZTEwLCAwLCB7MHgwMCwweDYwLDB4ZDIsMHgwYiwweDIwLDB4MmEsMHgwNCwweDA4LDB4OTMsMHg1MCwweDIwLDB4NDAsMHgwOCwweDE3LDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4OGUyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYSwweDAwLDB4YmEsMHhhMCwweDNmLDB4ODQgfX0sCi0gezE2LCAweDhlMzAsIDAsIHsweDFjLDB4ZTAsMHgwYiwweDM4LDB4NDAsMHg4ZSwweDA2LDB4MmUsMHg4MCwweDBiLDB4ZTMsMHgwMywweGY4LDB4ODAsMHhmZSwweGU0IH19LAotIHsxNiwgMHg4ZTQwLCAwLCB7MHhiNywweDkwLDB4MGYsMHhlYywweDAyLDB4ZTgsMHgwMCwweDhhLDB4MDAsMHhhMywweGEwLDB4MDksMHhlNCwweDAzLDB4MmEsMHgwMiB9fSwKLSB7MTYsIDB4OGU1MCwgMCwgezB4ZGUsMHhjMCwweGYzLDB4ODAsMHgwYywweDZjLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhlNjAsIDAsIHsweDQ4LDB4MDEsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDNlLDB4MDAsMHgwZiwweDg0LDB4MTMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDJlIH19LAotIHsxNiwgMHg4ZTcwLCAwLCB7MHgzMCwweDBhLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmOCwweDAwLDB4M2EsMHgwMiwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OGU4MCwgMCwgezB4MDAsMHgzZSwweDA0LDB4MGQsMHg4MCwweDgzLDB4ZTAsMHg0MCwweGU4LDB4MjAsMHgzZSwweDAwLDB4MmYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhlOTAsIDAsIHsweDEwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzYywweDY0IH19LAotIHsxNiwgMHg4ZWEwLCAwLCB7MHg0ZSwweDkwLDB4ODMsMHgyNCwweDgwLDB4YzksMHgwMCwweDMyLDB4ZTAsMHgwZiwweDEwLDB4MDMsMHgyNSwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGViMCwgMCwgezB4MzIsMHg0NCwweDBmLDB4OTIsMHgyMywweDY0LDB4MDAsMHhjMSwweDAwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgxMywweGU0LDB4MDAgfX0sCi0gezE2LCAweDhlYzAsIDAsIHsweGM5LDB4MDAsMHgyMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZWQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MjAsMHgyZSwweDQwLDB4NDgsMHg5NiwweDIyLDB4MjUsMHgwMCwweGQ5LDB4YzAsMHhhMiB9fSwKLSB7MTYsIDB4OGVlMCwgMCwgezB4NzAsMHgwYiwweDk4LDB4MDIsMHgyNCwweDAwLDB4YjksMHg0MCwweGEyLDB4NzAsMHg0YiwweDkwLDB4MDIsMHgyNCwweDAwLDB4ZDkgfX0sCi0gezE2LCAweDhlZjAsIDAsIHsweDAwLDB4YTIsMHg0MCwweDJjLDB4OTQsMHgyMiwweGU0LDB4MDIsMHg4OSwweDAwLDB4YTIsMHg0MCwweDI4LDB4OTQsMHgxMywweDIwIH19LAotIHsxNiwgMHg4ZjAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OGYxMCwgMCwgezB4MGEsMHg5MCwweDAyLDB4MDQsMHgwMCwweDgxLDB4ODAsMHhhMiwweDQ0LDB4MGIsMHg5MSwweDAyLDB4MjUsMHgwMCwweDE5LDB4NDAgfX0sCi0gezE2LCAweDhmMjAsIDAsIHsweDYyLDB4NDAsMHgwYiwweGI0LDB4MDIsMHg0NCwweDAwLDB4ODksMHgwMCwweDIwLDB4NDAsMHgwOCwweDkwLDB4ODIsMHhjNCwweDAxIH19LAotIHsxNiwgMHg4ZjMwLCAwLCB7MHg4MywweDAyLDB4MjgsMHg0MCwweDQ4LDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGY0MCwgMCwgezB4MDAsMHgwNCwweDA1LDB4ODAsMHhiMSwweDAwLDB4NmMsMHg1MSwweDA4LDB4MTQsMHgxYSwweDA1LDB4MDAsMHg5MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDhmNTAsIDAsIHsweDQwLDB4OGIsMHgxNCwweDAyLDB4MDUsMHgwMCwweGIxLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDA2LDB4MDQsMHg4MCwweDkxIH19LAotIHsxNiwgMHg4ZjYwLCAwLCB7MHgyMCwweDIwLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweGE4LDB4ODEsMHgwMCwweDI4LDB4NGEsMHgwOCwweDkwLDB4NGEsMHg0MiB9fSwKLSB7MTYsIDB4OGY3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweDhmODAsIDAsIHsweDBlLDB4ODAsMHgwMywweDI4LDB4MDEsMHhjOCwweDUwLDB4MzIsMHg5NCwweDhiLDB4YTAsMHgwMywweDIwLDB4MDAsMHhiMCwweDUwIH19LAotIHsxNiwgMHg4ZjkwLCAwLCB7MHgzMiwweDgwLDB4MGYsMHg4MCwweDA3LDB4NjEsMHg1MSwweGM4LDB4NTAsMHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHg4NCB9fSwKLSB7MTYsIDB4OGZhMCwgMCwgezB4YzgsMHgwNCwweDNhLDB4MDgsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmYjAsIDAsIHsweDk4LDB4OWQsMHhmNCwweDQwLDB4YmQsMHg0MSwweDNmLDB4NTAsMHgwZiwweGY0LDB4MDMsMHhmNSwweDEwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHg4ZmMwLCAwLCB7MHg0MCwweDBmLDB4ZDQsMHgwMywweGY0LDB4MDAsMHhmZiwweDEwLDB4MmYsMHg0MCwweDRmLDB4ZDQsMHg0MCwweGE0LDB4NDgsMHhmOSB9fSwKLSB7MTYsIDB4OGZkMCwgMCwgezB4MTIsMHgzZiwweDVhLDB4OGUsMHhkMiwweDgzLDB4ZjQsMHhhOCwweGY1LDB4MmMsMHgzNywweDRhLDB4MGYsMHhkMiwweDgzLDB4YTYgfX0sCi0gezE2LCAweDhmZTAsIDAsIHsweDEyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg4MCwweGZkLDB4MjgsMHgzZiwweDRjIH19LAotIHsxNiwgMHg4ZmYwLCAwLCB7MHgwZiwweDUwLDB4MDMsMHgzYywweDQ0LDB4Y2QsMHg0MCwweDNmLDB4ZDAsMHgwZCwweGQwLDB4MDIsMHgxNCwweDAxLDB4ZmQsMHhhMCB9fSwKLSB7MTYsIDB4OTAwMCwgMCwgezB4MzEsMHg0MCwweDAzLDB4ZDAsMHgwMywweGU3LDB4ODksMHhmOSwweDkwLDB4N2UsMHg1MCwweDBjLDB4OTQsMHgwMywweGU2LDB4YzAgfX0sCi0gezE2LCAweDkwMTAsIDAsIHsweGM5LDB4MTAsMHgzMiwweDZkLDB4MGYsMHg5MSwweDAyLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MDIwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHg4MCwweGI4LDB4MDEsMHgyZSwweDBjLDB4OGIsMHg4NCwweDgyLDB4MjAsMHg0MiwweDg4LDB4YTAsMHg2ZSB9fSwKLSB7MTYsIDB4OTAzMCwgMCwgezB4MjAsMHgwOCwweDgwLDB4MDMsMHg2MCwweDAwLDB4OTgsMHhlOCwweDIyLDB4MDAsMHgwOSwweDgwLDB4MDIsMHhlMywweGMwLDB4ZTggfX0sCi0gezE2LCAweDkwNDAsIDAsIHsweGQwLDB4MmUsMHgyOCwweDA4LDB4OGEsMHgyMywweGUyLDB4ODQsMHhkOCwweGEwLDB4MjIsMHgzZCwweDBiLDB4YzgsMHgwMiwweGNlIH19LAotIHsxNiwgMHg5MDUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM1LDB4YjAsMHhiMSwweDAwLDB4MmMsMHg0OCB9fSwKLSB7MTYsIDB4OTA2MCwgMCwgezB4MGIsMHgxMywweDAyLDB4MDQsMHgwMiwweGIxLDB4MjAsMHgyZSwweDQwLDB4ODgsMHgxMCwweDIyLDB4YzQsMHgwMCwweGIxLDB4MTQgfX0sCi0gezE2LCAweDkwNzAsIDAsIHsweDI0LDB4NDAsMHgwYiwweDEwLDB4NTIsMHhjNCwweDAwLDB4YjEsMHgyMSwweDJkLDB4NDgsMHgwYSwweDUyLDB4MDIsMHhkNSwweDAwIH19LAotIHsxNiwgMHg5MDgwLCAwLCB7MHhiZCwweDAwLDB4YWQsMHg0MCwweDBiLDB4NTIsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTA5MCwgMCwgezB4MTgsMHg1NSwweGE1LDB4MDAsMHhiOSwweDgyLDB4MmUsMHg0OSwweDhiLDB4YjAsMHgxMiwweDI0LDB4MTAsMHg5OSwweDAyLDB4MmUgfX0sCi0gezE2LCAweDkwYTAsIDAsIHsweDQwLDB4MDgsMHhiMiwweDAwLDB4NjUsMHgwMCwweDk5LDB4ODAsMHgyNiwweDQ0LDB4MDksMHg5MSwweDAyLDB4ZTQsMHgwOSwweGE5IH19LAotIHsxNiwgMHg5MGIwLCAwLCB7MHgwNCwweDJlLDB4NDYsMHgwYSwweGQ0LDB4MDIsMHhiNCwweDAwLDB4YmQsMHg0MCwweDJmLDB4NDAsMHgwYiwweGQwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4OTBjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDQwLDB4ZjksMHg4MCwweDJlLDB4NjIgfX0sCi0gezE2LCAweDkwZDAsIDAsIHsweDBmLDB4OWMsMHg0MiwweDI0LDB4MDAsMHg5OSwweDAxLDB4MmUsMHg2OCwweDJjLDB4OTIsMHgwMiwweDY0LDB4MDAsMHhiOSwweDQwIH19LAotIHsxNiwgMHg5MGUwLCAwLCB7MHhiNiwweDYwLDB4MGYsMHg5YSwweDAzLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDcwLDB4M2UsMHg5OSwweDA2LDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4OTBmMCwgMCwgezB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDk4LDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxMDAsIDAsIHsweDY4LDB4MDEsMHhhNiwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgxZiwweDEyLDB4YWIsMHhlNCwweDAwLDB4ZTksMHg5MCwweDNlIH19LAotIHsxNiwgMHg5MTEwLCAwLCB7MHg0OSwweDBlLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2EsMHg0MCwweDBkLDB4OTgsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OTEyMCwgMCwgezB4MDEsMHgzZSwweDYwLDB4MDUsMHg5MCwweDEzLDB4ZTQsMHgwMCwweDU5LDB4MjAsMHgzMiwweDQwLDB4OGYsMHg5MSwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDkxMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDgsMHgzZSwweDAxIH19LAotIHsxNiwgMHg5MTQwLCAwLCB7MHgwZiwweDg0LDB4NjMsMHgwMCwweDIyLDB4ZTgsMHgyMCwweDNlLDB4MTMsMHgwZiwweDg0LDB4MDMsMHhlMSwweGMwLDB4ZDgsMHg0YyB9fSwKLSB7MTYsIDB4OTE1MCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODQsMHg0MywweGUwLDB4MDAsMHhmOCwweDAwLDB4MjIsMHgxMCwweDBmLDB4ODQsMHgwMywweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxNjAsIDAsIHsweGM4LDB4MDAsMHhiMiwweDAwLDB4MGMsMHhjMCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhlLDB4MDAsMHgyZiwweDg2LDB4NGIsMHhlMCwweDAyLDB4MzksMHgwOCwweDhlLDB4MjAsMHgyZCB9fSwKLSB7MTYsIDB4OTE4MCwgMCwgezB4OTAsMHgwYiwweGVkLDB4OTIsMHhmOCwweDAyLDB4OGUsMHhlMCwweGEzLDB4OTgsMHgwOCwweGUwLDB4MDIsMHhlOCwweDA4LDB4YmEgfX0sCi0gezE2LCAweDkxOTAsIDAsIHsweDAwLDB4NjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHgwMiwweDgwLDB4MDIsMHg4MCwweDQ4LDB4ZTAsMHgwMywweDRhIH19LAotIHsxNiwgMHg5MWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDEwLDB4MmMsMHhmMCB9fSwKLSB7MTYsIDB4OTFiMCwgMCwgezB4MGEsMHgxNCwweDJhLDB4MGQsMHgxYSwweGIzLDB4MDEsMHgyNCwweGQwLDB4MGIsMHhiYywweDMyLDB4Y2MsMHgwOCwweDAzLDB4MDAgfX0sCi0gezE2LCAweDkxYzAsIDAsIHsweDIwLDB4YzgsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDIyLDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDExIH19LAotIHsxNiwgMHg5MWQwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDI4LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTFlMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDEsMHg4NSwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgwMiwweDE4LDB4MzIsMHg4NiwweDAwLDB4MmQgfX0sCi0gezE2LCAweDkxZjAsIDAsIHsweGMwLDB4MGIsMHg2MCwweDE2LDB4ZmUsMHgwNCwweDg2LDB4MDAsMHgyNywweGEwLDB4OGIsMHg3MCwweDQyLDB4ZGMsMHg4MCwweGI3IH19LAotIHsxNiwgMHg5MjAwLCAwLCB7MHg4MCwweDIxLDB4MDEsMHgwOCwweGY4LDB4MGEsMHgxOCwweDAwLDB4ODYsMHgwOCwweDIwLDB4YTAsMHgwOCwweGU4LDB4MGEsMHg2OCB9fSwKLSB7MTYsIDB4OTIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgzZSwweDAyLDB4YzYsMHg4MCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweDkyMjAsIDAsIHsweDBmLDB4NDgsMHgwMywweDA2LDB4MDQsMHhmNSwweDgyLDB4MzUsMHhlMCwweDBmLDB4NzgsMHgwMywweGRhLDB4MDAsMHhkMywweDgwIH19LAotIHsxNiwgMHg5MjMwLCAwLCB7MHgzMSwweDYwLDB4MDcsMHg3OCwweDAzLDB4ZGUsMHgyMCwweGYzLDB4YjAsMHg4MSwweGUwLDB4NGYsMHg2OCwweDA3LDB4MGUsMHgwMiB9fSwKLSB7MTYsIDB4OTI0MCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwYywweDc4LDB4MTMsMHgyYSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkyNTAsIDAsIHsweDA4LDB4MWQsMHhhZCwweGEwLDB4ZjksMHgwMCwweDNmLDB4MDAsMHgwZiwweGIwLDB4NTMsMHhmOCwweDEwLDB4YTksMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MjYwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgwMSwweGVjLDB4MDAsMHhmYiwweDAyLDB4M2EsMHhjMCwweDBjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OTI3MCwgMCwgezB4NzQsMHgzYywweDAwLDB4MGYsMHgyMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgwLDB4MGYsMHgzMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDkyODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMiwweDhmLDB4ODAsMHgzNSwweGUwIH19LAotIHsxNiwgMHg5MjkwLCAwLCB7MHg4ZCwweGQ5LDB4MDMsMHgyZSwweGM0LDB4ZjYsMHg4MCwweDMyLDB4YTQsMHgwYywweGI4LDB4MDMsMHhkZSwweDAwLDB4Y2YsMHg5MCB9fSwKLSB7MTYsIDB4OTJhMCwgMCwgezB4M2MsMHhlNCwweDBjLDB4YjgsMHgwMywweGZlLDB4NjUsMHhmZiwweDgwLDB4MGYsMHhlYywweDhmLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweDkyYjAsIDAsIHsweGM1LDB4ODAsMHgzMywweGUwLDB4MGYsMHg2OCwweDAzLDB4MTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MmMwLCAwLCB7MHhhYSwweDExLDB4OWMsMHg4MCwweDg0LDB4YjAsMHgyMCwweDIwLDB4MjksMHg3MywweDBhLDB4MGUsMHg4MiwweGEyLDB4YTAsMHhhMiB9fSwKLSB7MTYsIDB4OTJkMCwgMCwgezB4YTAsMHg0ZiwweDNiLDB4MDMsMHg4NywweDg0LDB4YjIsMHg4MCwweDJjLDB4YTAsMHgwYSwweDdkLDB4MDIsMHhkZSwweDgwLDB4ZjcgfX0sCi0gezE2LCAweDkyZTAsIDAsIHsweDIwLDB4MjUsMHgwNiwweDA4LDB4NzAsMHgwMiwweGM4LDB4NDAsMHg4NCwweDAwLDB4MzUsMHg4MCwweDBiLDB4NjAsMHgwMywweDZhIH19LAotIHsxNiwgMHg5MmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MTAsMHg4NiwweDM4LDB4MjcsMHhjMCB9fSwKLSB7MTYsIDB4OTMwMCwgMCwgezB4NDksMHg1NCwweDA2LDB4NTQsMHg0MCwweDFkLDB4MjAsMHgyMSwweGNhLDB4MDksMHg2MSwweDQwLDB4ZjgsMHg4MCwweGI3LDB4MjAgfX0sCi0gezE2LCAweDkzMTAsIDAsIHsweDJmLDB4MDAsMHg4OSwweDcwLDB4MTIsMHhkYywweDgxLDB4YjcsMHgwNCwweDJkLDB4YzksMHgwYSwweDYwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg5MzIwLCAwLCB7MHg4ZCwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjgsMHgwMiwweDA0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTMzMCwgMCwgezB4NjAsMHgxNCwweGNkLDB4MjgsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA5LDB4YjAsMHgyMiwweDRjLDB4MDIsMHhhMSwweDAxLDB4MjAgfX0sCi0gezE2LCAweDkzNDAsIDAsIHsweDMwLDB4MWIsMHgyMywweDAyLDB4YWYsMHgyMCwweGIzLDB4MDgsMHgyYywweDgwLDB4MWIsMHgzMCwweDAwLDB4Y2MsMHgwNCwweGEzIH19LAotIHsxNiwgMHg5MzUwLCAwLCB7MHgwMSwweDI2LDB4MzAsMHgwOCwweGFjLDB4MjIsMHhlOCwweDAyLDB4ODAsMHgwOCwweDJlLDB4ODAsMHg0YiwweGI0LDB4MDIsMHg1OCB9fSwKLSB7MTYsIDB4OTM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDEwLDB4OGIsMHg4MCwweDM2LDB4ZjAgfX0sCi0gezE2LCAweDkzNzAsIDAsIHsweDJkLDB4YmMsMHgwYiwweDZjLDB4MDEsMHhkYSwweDA0LDB4MjIsMHg0MCwweDdkLDB4OTQsMHgyMiwweGU0LDB4MDAsMHhhYiwweDQ0IH19LAotIHsxNiwgMHg5MzgwLCAwLCB7MHgyZSwweGMwLDB4MDksMHhiOCwweDAyLDB4ZmMsMHgwMCwweGJmLDB4MDAsMHgzZSwweGYwLDB4Y2EsMHg5MiwweDAyLDB4ZTQsMHgwMiB9fSwKLSB7MTYsIDB4OTM5MCwgMCwgezB4Y2IsMHgwMCwweDZlLDB4NDAsMHgwZiwweDg0LDB4MDEsMHgyZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNhLDB4ZTAsMHgyZSwweGJjLDB4MDMsMHg5OCwweDA4LDB4ZWEsMHg0MCwweDM2IH19LAotIHsxNiwgMHg5M2IwLCAwLCB7MHg0MywweDhjLDB4OTAsMHgwMywweGE0LDB4NDQsMHgyYSwweDQwLDB4M2UsMHgxMCwweDBlLDB4YjUsMHg4MywweGVjLDB4MTQsMHhmYiB9fSwKLSB7MTYsIDB4OTNjMCwgMCwgezB4MDAsMHgyNiwweDAwLDB4MGUsMHg5MiwweDAzLDB4ZTAsMHg0MCwweGZhLDB4MDAsMHgxNiwweDAwLDB4MGYsMHg4MCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweDkzZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZWMsMHgwMiwweGZhLDB4ODAsMHgzZiwweGUyIH19LAotIHsxNiwgMHg5M2UwLCAwLCB7MHgwZiwweGIwLDB4MGIsMHgyNCwweDAwLDB4ZWYsMHg5MiwweGJiLDB4ZTAsMHgxYywweGQwLDB4MDMsMHg3NCwweDAwLDB4Y2YsMHgwNSB9fSwKLSB7MTYsIDB4OTNmMCwgMCwgezB4M2IsMHg0MCwweDBmLDB4YzgsMHgwMywweDVjLDB4MDAsMHhjZiwweDAwLDB4MzIsMHhjMiwweDRkLDB4YzEsMHgyMywweDM0LDB4NDAgfX0sCi0gezE2LCAweDk0MDAsIDAsIHsweGNmLDB4MDAsMHgxNywweDQ0LDB4MGMsMHhkMSwweDgzLDB4MDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NDEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODQsMHgyZSwweDU0LDB4MGIsMHhiYywweDBhLDB4MjksMHg4MCwweDhiLDB4ODAsMHgzMiB9fSwKLSB7MTYsIDB4OTQyMCwgMCwgezB4MDAsMHgwOCwweDljLDB4MDMsMHhhNywweDAwLDB4YWIsMHg4NCwweDJlLDB4N2MsMHgwYiwweDgwLDB4MDIsMHgyYywweDEwLDB4ZGIgfX0sCi0gezE2LCAweDk0MzAsIDAsIHsweDAxLDB4MzYsMHgwMCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg4MiwweDAwLDB4MjIsMHgwMCwweDA4LDB4OTAsMHgwMiwweDI0IH19LAotIHsxNiwgMHg5NDQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDBjLDB4MDAsMHg4OSwweDEwLDB4NjYsMHg5MCB9fSwKLSB7MTYsIDB4OTQ1MCwgMCwgezB4MGIsMHhiOCwweDAyLDB4NmUsMHgxMiwweGEzLDB4NDEsMHgyMCwweDA0LDB4MGEsMHg5OCwweDIyLDB4ZTIsMHgwMCwweDg5LDB4MTkgfX0sCi0gezE2LCAweDk0NjAsIDAsIHsweDJlLDB4YzAsMHg0YiwweDMxLDB4MjIsMHg2YywweDA4LDB4ODMsMHgwMCwweDIyLDB4YzAsMHgwOSwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHg5NDcwLCAwLCB7MHg4OSwweDAwLDB4MmEsMHg0MCwweDA4LDB4ODAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTQ4MCwgMCwgezB4MDgsMHgxMCwweDBjLDB4MDAsMHg4MCwweDIwLDB4MmMsMHgwZSwweDFiLDB4MzAsMHgwMiwweDA0LDB4NDEsMHg4MCwweDIwLDB4MjAgfX0sCi0gezE2LCAweDk0OTAsIDAsIHsweDEyLDB4MTgsMHgxNiwweDQyLDB4MDAsMHg1MCwweGEwLDB4NDAsMHgyYywweDg4LDB4MWIsMHgzMCwweDAyLDB4MGMsMHg4MSwweDkzIH19LAotIHsxNiwgMHg5NGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDEwLDB4MmEsMHgwMCwweDBhLDB4ODgsMHgwMCwweDI4LDB4MDAsMHgyOCwweDAwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4OTRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGMsMHg3YywweDExLDB4ZTgsMHgwMCwweDI2LDB4OTggfX0sCi0gezE2LCAweDk0YzAsIDAsIHsweDBmLDB4YjAsMHgxMywweDIxLDB4MGMsMHhlYiwweDYwLDB4M2EsMHhkOCwweDI4LDB4ODQsMHhhMiwweGUxLDB4ODAsMHhjOCwweDIwIH19LAotIHsxNiwgMHg5NGQwLCAwLCB7MHgzZSwweDVlLDB4MWYsMHg4MiwweDAzLDB4N2MsMHgwMCwweGNmLDB4MDAsMHgzMiwweGMwLDB4NGQsMHg4MCwweDA3LDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4OTRlMCwgMCwgezB4YzksMHgwMCwweDMyLDB4NDAsMHgwYywweDkwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0ZjAsIDAsIHsweGExLDB4MTEsMHhmYywweDAwLDB4ZjgsMHgxMywweDFlLDB4MDAsMHgwYiwweGYwLDB4MDEsMHhmMCwweGQwLDB4ZjksMHgxOSwweDFmIH19LAotIHsxNiwgMHg5NTAwLCAwLCB7MHgwOCwweDRmLDB4YzAsMHgxMywweGExLDB4MDAsMHhmOCwweDYyLDB4M2YsMHhjMCwweDBiLDB4YzQsMHgwNywweGVkLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTUxMCwgMCwgezB4MDAsMHgzZiwweDAwLDB4MGYsMHhjMCwweDIzLDB4ZjAsMHhhMCwweGZjLDB4MDAsMHgzMywweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDk1MjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGZmLDB4MGMsMHgzZiwweDIwIH19LAotIHsxNiwgMHg5NTMwLCAwLCB7MHgwYywweGM5LDB4MDMsMHgzMiwweDAwLDB4Y2YsMHgzOCwweDNmLDB4ZDAsMHgwZiwweDQ4LDB4MDMsMHhmYywweGEwLDB4Y2UsMHgyMiB9fSwKLSB7MTYsIDB4OTU0MCwgMCwgezB4MzMsMHgwMCwweDBmLDB4YzEsMHgwMywweDNjLDB4MDAsMHhmZiwweDAwLDB4M2QsMHhjNCwweDRjLDB4YzAsMHgyMywweDhjLDB4ZTQgfX0sCi0gezE2LCAweDk1NTAsIDAsIHsweGZmLDB4MTAsMHgzNywweDIwLDB4MDgsMHhmMSwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NTYwLCAwLCB7MHg4MCwweDEwLDB4ZmUsMHgwMCwweGJmLDB4ODAsMHgyZSwweDc0LDB4MDUsMHgyMiwweDAyLDB4YTIsMHgxMCwweGRmLDB4NjEsMHgyZiB9fSwKLSB7MTYsIDB4OTU3MCwgMCwgezB4ZDAsMHg4YiwweDkwLDB4MDIsMHgzZCwweGE0LDB4YWEsMHg5MCwweDIyLDB4ZjQsMHgwYiwweDA3LDB4MTIsMHgxZCwweDIwLDB4YmIgfX0sCi0gezE2LCAweDk1ODAsIDAsIHsweGMwLDB4MmYsMHhkOCwweDg4LDB4OTcsMHg4MiwweGZkLDB4ODAsMHhlZiwweDcyLDB4MjIsMHgwOCwweDI4LDB4ZjYsMHgyMywweGUwIH19LAotIHsxNiwgMHg5NTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4NDAsMHhiMywweDAwLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4OTVhMCwgMCwgezB4MDgsMHg4MiwweDAyLDB4MjIsMHgwMCwweDgzLDB4MDEsMHgwOCwweGNjLDB4OGIsMHgyMCwweDgyLDB4Y2MsMHgwMCwweDkwLDB4MDAgfX0sCi0gezE2LCAweDk1YjAsIDAsIHsweDIwLDB4MDAsMHg0YiwweDEyLDB4MDIsMHgwZCwweDgwLDB4YjMsMHg0MCwweDJjLDB4ZDgsMHgwOCwweDIwLDB4NDIsMHg4YywweDgwIH19LAotIHsxNiwgMHg5NWMwLCAwLCB7MHhiMywweDIwLDB4MjYsMHgwMiwweDE4LDB4MzMsMHgyNiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDksMHhiYiwweDAwLDB4MmUsMHg2MCwweDA4LDB4ODAsMHgwMiwweGEyLDB4MDAsMHg5YiwweDAwLDB4MmUgfX0sCi0gezE2LCAweDk1ZTAsIDAsIHsweGMwLDB4MGIsMHhhYywweDAyLDB4MmMsMHgwMCwweGJhLDB4MDYsMHgyMiwweGMyLDB4MGIsMHg5NCwweDAyLDB4YWMsMHgxMCwweGJiIH19LAotIHsxNiwgMHg5NWYwLCAwLCB7MHgwMCwweDJlLDB4YzEsMHgwOCwweGE4LDB4MDIsMHhlYywweDAwLDB4YWIsMHgwMCwweDIyLDB4MDAsMHgwOCwweGIwLDB4MDYsMHhmMCB9fSwKLSB7MTYsIDB4OTYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MTUsMHhlYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4NjAgfX0sCi0gezE2LCAweDk2MTAsIDAsIHsweDI4LDB4ODIsMHgxMywweDBlLDB4MDgsMHhjYiwweDAwLDB4M2EsMHhjMCwweDBmLDB4OGMsMHgwMywweGVjLDB4MTEsMHhkYiwweDIwIH19LAotIHsxNiwgMHg5NjIwLCAwLCB7MHhiMiwweDkwLDB4NGIsMHhhOCwweDBiLDB4MmMsMHgwMCwweGJiLDB4MDAsMHgyYywweGMwLDB4MGMsMHg4OCwweDEzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4OTYzMCwgMCwgezB4ZjMsMHgwMCwweDM2LDB4MDYsMHg0OCwweGIwLDB4MTIsMHhjNCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2NDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmIsMHgwOCwweDNkLDB4NDAsMHg4ZiwweGVhLDB4MDEsMHhmNCwweDAwLDB4ZmYsMHgwMSwweDJmIH19LAotIHsxNiwgMHg5NjUwLCAwLCB7MHhjMCwweDBmLDB4ZDAsMHgyMiwweGZjLDB4MDQsMHhhZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4ZTksMHgwMywweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTY2MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHg5MCwweDQzLDB4ZmMsMHgyMCwweGVmLDB4MDIsMHgzZiwweDAwLDB4OGYsMHhmMCwweDAzLDB4YjggfX0sCi0gezE2LCAweDk2NzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDEwLDB4YWMsMHgwOCwweGViLDB4MDAsMHgxMiwweDQwIH19LAotIHsxNiwgMHg5NjgwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHgyOCwweDIwLDB4YWIsMHgwMCwweDNhLDB4YzAsMHg4ZiwweDg1LDB4ODMsMHhhYywweDEwLDB4ZjMsMHg1MCB9fSwKLSB7MTYsIDB4OTY5MCwgMCwgezB4MzIsMHg5MCwweDRjLDB4MzQsMHgxMywweDZjLDB4MDAsMHhmYiwweDAwLDB4M2UsMHhjMCwweDBjLDB4OTgsMHgwMywweDJjLDB4NDAgfX0sCi0gezE2LCAweDk2YTAsIDAsIHsweGViLDB4ODAsMHgzMiwweDEyLDB4MGQsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NmIwLCAwLCB7MHg4OCwweDAxLDB4M2MsMHgxMCwweDBmLDB4MDUsMHhhMiwweDUwLDB4MGMsMHgxMCwweDAyLDB4MjIsMHgxMCwweDhmLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4OTZjMCwgMCwgezB4YzAsMHgwYiwweDg4LDB4MTIsMHgzYywweDAwLDB4OWIsMHg4MiwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgzYywweDAwLDB4OGYgfX0sCi0gezE2LCAweDk2ZDAsIDAsIHsweGEwLDB4MmYsMHhjMCwweDA4LDB4YjAsMHgwMiwweDNjLDB4MDgsMHg4ZiwweDAyLDB4MjAsMHgwMCwweDA4LDB4ZjAsMHgwMywweDI2IH19LAotIHsxNiwgMHg5NmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRkLDB4MjAsMHg5MywweDAwLDB4MjAsMHhiMiB9fSwKLSB7MTYsIDB4OTZmMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MDEsMHgwMCwweGEzLDB4MDAsMHg2OCwweGMwLDB4MGIsMHg4NCwweDAyLDB4YWMsMHgwMCwweGIzLDB4ODAgfX0sCi0gezE2LCAweDk3MDAsIDAsIHsweDIwLDB4NDAsMHgwYSwweDMwLDB4MDIsMHg0YywweDAwLDB4YTMsMHgwNCwweDJjLDB4YzAsMHgwOCwweDAwLDB4MDIsMHgwZCwweDAwIH19LAotIHsxNiwgMHg5NzEwLCAwLCB7MHhhMywweDAwLDB4MjAsMHgyNCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTcyMCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MjAsMHg5NywweDgwLDB4MjMsMHg2MCwweDA4LDB4NzgsMHgxMiwweDNhLDB4MDAsMHg4MywweDkxLDB4MjkgfX0sCi0gezE2LCAweDk3MzAsIDAsIHsweGU0LDB4MGIsMHg1OSwweDAyLDB4MWUsMHgwMCwweDk3LDB4OTAsMHgyMCwweGZjLDB4MGEsMHg3OCwweDAyLDB4MWUsMHgwMCwweDg3IH19LAotIHsxNiwgMHg5NzQwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgxOSwweDU5LDB4MDIsMHgxZSwweDgwLDB4ODMsMHg4MCwweDYxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4OTc1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQwLDB4ZDMsMHgzMiwweDMwLDB4MDYgfX0sCi0gezE2LCAweDk3NjAsIDAsIHsweDBmLDB4MzAsMHgwMywweDA0LDB4NjQsMHhlMywweDAxLDB4MzgsMHhjNCwweDFmLDB4MzAsMHgwNywweDhjLDB4MTgsMHhmMSwweDAwIH19LAotIHsxNiwgMHg5NzcwLCAwLCB7MHgzMCwweDRjLDB4MGUsMHgzMCwweDAzLDB4NGMsMHgwMCwweGUzLDB4MDAsMHgyYywweGMwLDB4MGMsMHgyMCwweDAzLDB4MGUsMHgwMCB9fSwKLSB7MTYsIDB4OTc4MCwgMCwgezB4ZTMsMHgwMCwweDMyLDB4MDgsMHgwYywweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk3OTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDgwLDB4ZWYsMHgxMCwweDNkLDB4NDQsMHg0ZiwweGYxLDB4MDcsMHhjYywweDAwLDB4ZmYsMHgwOCwweDM2IH19LAotIHsxNiwgMHg5N2EwLCAwLCB7MHhjNiwweGNmLDB4YjAsMHgwMywweGZjLDB4MDAsMHg5NywweDAwLDB4YmUsMHhjYywweDBkLDB4YjEsMHgwMywweGZkLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4OTdiMCwgMCwgezB4MGMsMHgzZiwweGQyLDB4OWUsMHhlMCwweDRiLDB4ZmQsMHgyMCwweGZmLDB4MDIsMHgzZiwweDgwLDB4MGUsMHhmMCwweDEzLDB4ZDAgfX0sCi0gezE2LCAweDk3YzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHhjMCwweGNiLDB4MjgsMHgzZSwweGMwIH19LAotIHsxNiwgMHg5N2QwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZmIsMHgwMSwweDMyLDB4ZTksMHgwYywweDI4LDB4MDMsMHgyYywweDAwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4OTdlMCwgMCwgezB4MzIsMHhjMCwweDBjLDB4YjQsMHg4MywweDJjLDB4MDEsMHhlZiwweDAwLDB4YjIsMHhjOCwweDBjLDB4MjAsMHgwMywweDZkLDB4MDAgfX0sCi0gezE2LCAweDk3ZjAsIDAsIHsweGNiLDB4MTAsMHgzZSwweDAwLDB4MGYsMHhiMiwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ODAwLCAwLCB7MHhjOCwweDkxLDB4OWMsMHhjNCwweDg3LDB4NjAsMHgyZCwweGMwLDB4MGIsMHg2MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MTIsMHgyMCB9fSwKLSB7MTYsIDB4OTgxMCwgMCwgezB4Y2MsMHgwYSwweDcwLDB4MDIsMHgxYywweGMwLDB4YjMsMHgwMCwweGEwLDB4YzAsMHhjOCwweDcwLDB4MjIsMHgxYywweDgwLDB4YjcgfX0sCi0gezE2LCAweDk4MjAsIDAsIHsweDI0LDB4MjEsMHhjOCwweDQ4LDB4NTAsMHgwMiwweDBjLDB4ODAsMHg4NywweDEwLDB4MmQsMHg0MCwweDBiLDB4NzIsMHg4MiwweGYyIH19LAotIHsxNiwgMHg5ODMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODEsMHgwMCwweDhlLDB4MDIsMHg4NywweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4OTg0MCwgMCwgezB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweGI3LDB4YTAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDhlLDB4MWUsMHg0MCwweGI3LDB4ODggfX0sCi0gezE2LCAweDk4NTAsIDAsIHsweDIxLDB4ZTAsMHgwOCwweDM4LDB4MDIsMHgxZSwweDQwLDB4YjMsMHhhMSwweDIwLDB4ZTgsMHg0OCwweGY4LDB4ODIsMHg1ZSwweDAyIH19LAotIHsxNiwgMHg5ODYwLCAwLCB7MHg4NywweDgwLDB4MmQsMHgyMiwweDBiLDB4NzksMHgwMiwweGUwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTg3MCwgMCwgezB4MDgsMHgwNCwweGNjLDB4MDQsMHg4MywweDAyLDB4MmMsMHhkNCwweDBiLDB4MzAsMHgwMiwweGNjLDB4MDAsMHhiMywweDAwLDB4YTAgfX0sCi0gezE2LCAweDk4ODAsIDAsIHsweGMwLDB4OGEsMHgzOCwweDA2LDB4MGMsMHgwMCwweGIzLDB4ODAsMHgyMCwweGUxLDB4NDgsMHgzOSwweDEyLDB4MmMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg5ODkwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4ODIsMHg2YywweDAwLDB4ODMsMHgwMCwweDJjLDB4NDgsMHgwYiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OThhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHhhOCwweDAwLDB4Y2EsMHgwMCwweDNmLDB4YTAgfX0sCi0gezE2LCAweDk4YjAsIDAsIHsweDBmLDB4ZTQsMHgwMywweGQ4LDB4MDAsMHhmYSwweDAwLDB4MzIsMHg4MCwweDBjLDB4ZTgsMHgwMywweDI4LDB4MDAsMHhmYSwweDQwIH19LAotIHsxNiwgMHg5OGMwLCAwLCB7MHgzMiwweGE4LDB4MmMsMHhhMCwweDA5LDB4MjgsMHgwOCwweGYyLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhlNCwweDAzLDB4NjgsMHgwMCB9fSwKLSB7MTYsIDB4OThkMCwgMCwgezB4Y2EsMHgwMCwweDNmLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4ZTAsIDAsIHsweDQ4LDB4MDAsMHhjMCwweDAwLDB4ZjgsMHgwMSwweDNlLDB4MTIsMHgwYiwweDgwLDB4MDMsMHhlMCwweDQwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5OGYwLCAwLCB7MHgwMCwweDRmLDB4ODQsMHgwMywweGUwLDB4MDQsMHhmMCwweDA4LDB4M2UsMHgwMCwweDRmLDB4MDAsMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4OTkwMCwgMCwgezB4NDEsMHgzZSwweDAwLDB4MmYsMHg4NCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDk5MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTYsMHgwMCwweGM5LDB4MTIsMHgzZSwweDUwIH19LAotIHsxNiwgMHg5OTIwLCAwLCB7MHg4ZiwweDkwLDB4ODMsMHhlNCwweDIwLDB4YzEsMHgwMCwweDNhLDB4NDEsMHgwZiwweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OTkzMCwgMCwgezB4MzAsMHg2OCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAsMHhkOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDk5NDAsIDAsIHsweGM5LDB4OTAsMHgzZSwweDY5LDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OTUwLCAwLCB7MHg4MCwweDA0LDB4NjcsMHg0YSwweDg5LDB4ODAsMHgyZSwweDUwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHg4MCwweGE5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4OTk2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDEwLDB4ODkgfX0sCi0gezE2LCAweDk5NzAsIDAsIHsweDAwLDB4MjIsMHg0MCwweDA4LDB4OTMsMHgwMiwweDI0LDB4MjIsMHg4OSwweDQyLDB4MmMsMHg2MCwweDQ4LDB4OTAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg5OTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgxNSwweDI0LDB4MDAsMHg5OSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4OTk5MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyYSwweDQwLDB4MGIsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAgfX0sCi0gezE2LCAweDk5YTAsIDAsIHsweDIzLDB4NDAsMHgwOCwweGQwLDB4MDIsMHgyNCwweDAwLDB4OTksMHgwMCwweDJhLDB4NDAsMHgwYSwweDkwLDB4MDYsMHgyNCwweDQwIH19LAotIHsxNiwgMHg5OWIwLCAwLCB7MHg4OSwweDQxLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTljMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4ODAsMHg5MSwweDIwLDB4MmMsMHg0OCwweDBiLDB4MTAsMHgwMiwweGM0LDB4MDAsMHhhMSwweDIwLDB4MjAgfX0sCi0gezE2LCAweDk5ZDAsIDAsIHsweDQ4LDB4MGIsMHgxMCwweDAyLDB4YzQsMHg4MCwweGIxLDB4MjAsMHhhMSwweDQ5LDB4MDgsMHg1MiwweDRhLDB4MDQsMHg4MCwweDgxIH19LAotIHsxNiwgMHg5OWUwLCAwLCB7MHgwMCwweDIwLDB4NDgsMHg0OCwweDEyLDB4MGEsMHgwNCwweDgwLDB4ODEsMHgyMCwweDJjLDB4NDAsMHgyOCwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OTlmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4ZDgsMHgwNCwweDNlLDB4ODAgfX0sCi0gezE2LCAweDlhMDAsIDAsIHsweDBmLDB4ODUsMHgwMywweGUwLDB4MDAsMHhjMCwweDUwLDB4M2EsMHgxNCwweDBmLDB4YTUsMHgwMywweGUxLDB4NDAsMHhmOCwweDAyIH19LAotIHsxNiwgMHg5YTEwLCAwLCB7MHgzMiwweDgwLDB4MmMsMHhjNSwweDAzLDB4MjEsMHg0MCwweGRhLDB4MDAsMHgzYSwweDE0LDB4MGUsMHg4NSwweDQzLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4OWEyMCwgMCwgezB4YzgsMHg1MiwweDNlLDB4MTQsMHgwYywweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhMzAsIDAsIHsweDg4LDB4MWQsMHhlNCwweDQ0LDB4ZTksMHgxMCwweDNmLDB4NDQsMHg0ZiwweGQwLDB4MDIsMHhmYywweDAwLDB4ZjksMHgxMiwweDNlIH19LAotIHsxNiwgMHg5YTQwLCAwLCB7MHg0NCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmZCwweDEwLDB4M2UsMHg0NCwweDRmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhlOSB9fSwKLSB7MTYsIDB4OWE1MCwgMCwgezB4NDAsMHgzZSwweDQ0LDB4MGYsMHhkMSwweDAzLDB4ZTQsMHg0MCwweGY5LDB4MTIsMHgzZiwweDQwLDB4MGYsMHg5MSwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDlhNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZjYsMHhhMCwweGZkLDB4ODAsMHhiMywweDQwIH19LAotIHsxNiwgMHg5YTcwLCAwLCB7MHgwYywweDEwLDB4MDMsMHgxNCwweDAwLDB4ZmQsMHhhMCwweDMyLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhlNCwweDAwLDB4ZjUsMHg4NiB9fSwKLSB7MTYsIDB4OWE4MCwgMCwgezB4MzMsMHg2MCwweDJjLDB4OWEsMHg4MywweDI0LDB4MDQsMHhmZCwweGE4LDB4MjIsMHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAgfX0sCi0gezE2LCAweDlhOTAsIDAsIHsweGZkLDB4MDAsMHgzMywweDQwLDB4MGYsMHg5MCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YWEwLCAwLCB7MHg3OCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4MDAsMHgyMiwweDAwLDB4MjgsMHg4MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAsMHhhMiB9fSwKLSB7MTYsIDB4OWFiMCwgMCwgezB4MDAsMHgwYiwweDhhLDB4MTIsMHhlMCwweDAwLDB4YjgsMHgwNCwweDIyLDB4MTQsMHgwOCwweDg0LDB4MDIsMHgyMCwweDAwLDB4YjggfX0sCi0gezE2LCAweDlhYzAsIDAsIHsweDQwLDB4MjAsMHgwMCwweDg4LDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4YTIsMHgwMCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHg5YWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDQyLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4OWFlMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweGIxLDB4NDAsMHgyMCwweDQwLDB4MGIsMHgxMCwweDA2LDB4YzQsMHgwMCwweGIxLDB4NDAgfX0sCi0gezE2LCAweDlhZjAsIDAsIHsweDI0LDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0NCwweDA0LDB4YjEsMHgwMCwweDYwLDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHg5YjAwLCAwLCB7MHhiMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWIxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjIsMHg2MCwweDA4LDB4OTQsMHgwMiwweDI0LDB4MDAsMHhiOSwweDAxLDB4MjIgfX0sCi0gezE2LCAweDliMjAsIDAsIHsweDQwLDB4MGIsMHg5MCwweDA2LDB4ZTQsMHgwMCwweGI5LDB4MjAsMHgyNiwweDQwLDB4MDgsMHg5NCwweDAyLDB4NjQsMHgwOCwweGI5IH19LAotIHsxNiwgMHg5YjMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHgwOCwweDkyLDB4MDIsMHhlYywweDA4LDB4YjksMHgwNCwweDIyLDB4NDEsMHgwYiwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4OWI0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfX0sCi0gezE2LCAweDliNTAsIDAsIHsweDBjLDB4OTQsMHgwYiwweDI1LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDhmLDB4OTQsMHhkMywweGU0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHg5YjYwLCAwLCB7MHgzNiwweDQwLDB4NGMsMHg5MCwweDBiLDB4NjQsMHgwMCwweGYxLDB4MDAsMHgzMiwweDQwLDB4MGQsMHg5MiwweDEyLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4OWI3MCwgMCwgezB4ZjksMHgwMCwweDMyLDB4NDAsMHgwZiwweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDliODAsIDAsIHsweDY4LDB4NDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDAsMHg4ZiwweDkyLDB4MDMsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHg5YjkwLCAwLCB7MHg0MCwweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4YmEsMHg0MCwweDJmLDB4OTAsMHgyMywweGE0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OWJhMCwgMCwgezB4MDgsMHhiZSwweDQwLDB4Y2YsMHg5MCwweDAzLDB4ZTQsMHgxMCwweGYxLDB4MDEsMHgzZSwweDQxLDB4MGYsMHg5MCwweDAzLDB4ZGEgfX0sCi0gezE2LCAweDliYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHhjOCwweGY4LDB4MDAsMHgzZSwweDAzIH19LAotIHsxNiwgMHg5YmMwLCAwLCB7MHgwYywweDg0LDB4MDMsMHhhMSwweDEwLDB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4YywweDg1LDB4ODMsMHhlMCwweDAwLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4OWJkMCwgMCwgezB4MzgsMHgwYywweDJjLDB4MDAsMHgwMywweDYwLDB4MDAsMHhjOCwweDAwLDB4M2MsMHgwMCwweDBkLDB4ODAsMHgwMiwweDIwLDB4MTAgfX0sCi0gezE2LCAweDliZTAsIDAsIHsweGM4LDB4MjAsMHhiMiwweDAyLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YmYwLCAwLCB7MHgyOCwweDA1LDB4MzksMHgxMCwweGJlLDB4MDQsMHg2ZiwweGEwLDB4MDgsMHhhMCwweDAyLDB4M2EsMHgwMCwweDgyLDB4MDAsMHhhMiB9fSwKLSB7MTYsIDB4OWMwMCwgMCwgezB4ODAsMHg4ZCwweGVjLDB4MDMsMHhhOCwweDAwLDB4OGEsMHgwMCwweDIzLDB4ODAsMHgwOCwweGEwLDB4MjIsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweDljMTAsIDAsIHsweGNjLDB4MmYsMHg4MCwweDA4LDB4ZTgsMHhjMiwweGI4LDB4MDAsMHg4ZSwweDYwLDB4MjMsMHg5MCwweDBiLDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg5YzIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRlLDB4MDgsMHhiMCwweDcyLDB4MmMsMHhkMCB9fSwKLSB7MTYsIDB4OWMzMCwgMCwgezB4MjgsMHhiMCwweDA2LDB4OGMsMHgwMSwweGExLDB4MDIsMHgyMCwweGMwLDB4MDgsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweDljNDAsIDAsIHsweDIwLDB4YzAsMHgyOSwweDMwLDB4MDIsMHg0YywweDAwLDB4ODEsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMyLDB4MDIsMHgwYywweDQwIH19LAotIHsxNiwgMHg5YzUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhmNCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWM2MCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNCwweDAwLDB4MmQsMHhkMCwweDQ4LDB4ZjIsMHgwMiwweDFlLDB4MjEsMHg4NSwweDIwLDB4MjAgfX0sCi0gezE2LCAweDljNzAsIDAsIHsweGU4LDB4MDksMHg3MiwweDAyLDB4OGUsMHg4MCwweDhmLDB4MDEsMHgyMCwweGMwLDB4MDksMHg3MiwweDAyLDB4MGUsMHg4MCwweDg3IH19LAotIHsxNiwgMHg5YzgwLCAwLCB7MHgwMCwweDJkLDB4Y2MsMHgxOCwweDU4LDB4MDIsMHg4ZSwweDAwLDB4ODUsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OWM5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YjQsMHg4MCwweDJkLDB4ZTAgfX0sCi0gezE2LCAweDljYTAsIDAsIHsweDBjLDB4NzgsMHg4MywweDlhLDB4MDAsMHhlZCwweGQwLDB4MzEsMHhmNCwweDBjLDB4NmEsMHgwMywweGRlLDB4ODIsMHhjNywweDgwIH19LAotIHsxNiwgMHg5Y2IwLCAwLCB7MHgzOSwweGUwLDB4MGQsMHhmOCwweDgzLDB4NWUsMHhjMiwweGM1LDB4ODAsMHgzZCwweGU4LDB4MGMsMHg2OCwweDAzLDB4MTIsMHgwMCB9fSwKLSB7MTYsIDB4OWNjMCwgMCwgezB4Y2YsMHg4MCwweDMxLDB4ZTAsMHgwZiwweDdlLDB4ODMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljZDAsIDAsIHsweDA4LDB4MGQsMHhhYywweDA4LDB4ZjgsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIzLDB4MDMsMHhlYywweDAwLDB4ZjksMHgwMiwweDNlIH19LAotIHsxNiwgMHg5Y2UwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweGVkLDB4NDAsMHhmYiwweDAwLDB4YmUsMHg4MCwweDBlLDB4YjMsMHgwMywweGVkLDB4YzAsMHhmYiB9fSwKLSB7MTYsIDB4OWNmMCwgMCwgezB4MDAsMHgzZSwweGQyLDB4MmUsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGY5LDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDlkMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGYwLDB4OTEsMHgzMywweGUwIH19LAotIHsxNiwgMHg5ZDEwLCAwLCB7MHg4ZiwweGY4LDB4MDMsMHhmZSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4ZTAsMHgwYywweDc4LDB4ODMsMHgzZiwweDAwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4OWQyMCwgMCwgezB4M2YsMHhhMCwweDBjLDB4ZjgsMHgwMywweDNlLDB4MDAsMHhjZCwweDgwLDB4M2YsMHhlMCwweDBmLDB4ZjgsMHgxMywweGZlLDB4MTAgfX0sCi0gezE2LCAweDlkMzAsIDAsIHsweGZmLDB4ODAsMHgzZiwweDIwLDB4MGYsMHhmOSwweDQzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZDQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4YzEsMHgzMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4ZDQsMHgxMCwweGU1LDB4MjAsMHgyZiB9fSwKLSB7MTYsIDB4OWQ1MCwgMCwgezB4YzgsMHgwZiwweDQwLDB4MDMsMHg1YywweDAwLDB4ODcsMHgwMCwweDJkLDB4ODAsMHgwOCwweDcwLDB4MDIsMHgxYywweDQwLDB4ODcgfX0sCi0gezE2LCAweDlkNjAsIDAsIHsweDEwLDB4MmQsMHhjMCwweDBiLDB4NzYsMHgwMiwweGRjLDB4ODAsMHhiNywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHg5ZDcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDljLDB4MDAsMHhiNiwweDIyLDB4MjEsMHhkMCB9fSwKLSB7MTYsIDB4OWQ4MCwgMCwgezB4MGIsMHg3MCwweDgyLDB4ZDgsMHg0MCwweGI1LDB4MDIsMHgyZCwweGMwLDB4ODgsMHg2NSwweDAyLDB4MGMsMHgwMCwweDg3LDB4MTggfX0sCi0gezE2LCAweDlkOTAsIDAsIHsweDJjLDB4MDQsMHgwOCwweDMwLDB4MDIsMHg4YywweDAyLDB4ODUsMHgwMCwweDJkLDB4YzAsMHgwYiwweDcwLDB4NDYsMHg5MCwweDEwIH19LAotIHsxNiwgMHg5ZGEwLCAwLCB7MHhiNiwweDAwLDB4MmQsMHgwMCwweDBiLDB4NzAsMHgyMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWRiMCwgMCwgezB4NjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweDAwLDB4YTQsMHhjMCwweDBiLDB4MzAsMHg0MiwweGM2LDB4MTAsMHhhMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDlkYzAsIDAsIHsweGMwLDB4MGEsMHgwMCwweDAyLDB4NGMsMHgwMCwweDgzLDB4MDAsMHgyYywweDA4LDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHg5ZGQwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDE4LDB4ODIsMHhjNCwweDAwLDB4YjAsMHgwMCwweDJjLDB4NDAsMHgwYiwweDMwLDB4MTIsMHhkOCB9fSwKLSB7MTYsIDB4OWRlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGY4LDB4MTUsMHhhYywweDAwLDB4MzgsMHgwMCwweDMyLDB4NTAgfX0sCi0gezE2LCAweDlkZjAsIDAsIHsweDBmLDB4ZjAsMHgwMywweGU2LDB4MjAsMHhmZCwweDAwLDB4M2YsMHhjMCwweDA4LDB4ZDAsMHgwMiwweDNjLDB4MDIsMHhjYiwweDgwIH19LAotIHsxNiwgMHg5ZTAwLCAwLCB7MHgzYywweDUwLDB4MmMsMHhmMCwweDBhLDB4YmMsMHgwMCwweGM5LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhiZSwweDAzLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4OWUxMCwgMCwgezB4ZmEsMHgwMiwweDJlLDB4ZjcsMHg0ZiwweGYwLDB4MDMsMHhlZSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllMjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjEsMHgwMCwweDNhLDB4ZjAsMHgwZiwweGIwLDB4MDMsMHhlOSwweDAwLDB4ZjksMHgwMSwweDNlIH19LAotIHsxNiwgMHg5ZTMwLCAwLCB7MHhjMCwweDBmLDB4OTAsMHgxMywweGVjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHg1NSwweDBmLDB4YjAsMHgwMSwweDZjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4OWU0MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHg5MCwweDczLDB4ZTAsMHgwMCwweGY4LDB4NDEsMHgzZSwweDAwLDB4MGYsMHgzMCwweDAxLDB4ZTAgfX0sCi0gezE2LCAweDllNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ZmMsMHgwMCwweGZjLDB4MDAsMHgzMywweGMwIH19LAotIHsxNiwgMHg5ZTYwLCAwLCB7MHgxZiwweGYwLDB4MTMsMHhmMCwweDA4LDB4ZmQsMHgwMiwweDNmLDB4YzAsMHg4ZCwweGMwLDB4MDMsMHgzYywweDAwLDB4Y2YsMHhhMCB9fSwKLSB7MTYsIDB4OWU3MCwgMCwgezB4M2YsMHg4MCwweDBjLDB4NzAsMHgwMywweDNjLDB4MTAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZTAsMHgwMywweGIwLDB4MDAgfX0sCi0gezE2LCAweDllODAsIDAsIHsweGZlLDB4MDAsMHgzZiwweGMwLDB4MGMsMHhmMCwweDAzLDB4MDQsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZTkwLCAwLCB7MHg4NCwweDA0LDB4NmUsMHgwMCwweGI5LDB4YzIsMHhhMiwweGYwLDB4MGIsMHhiMCwweDQyLDB4ZWIsMHgwMCwweGI5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4OWVhMCwgMCwgezB4YzAsMHgwZiwweDE4LDB4MDMsMHg2YywweDAwLDB4ZDksMHg4MSwweDJlLDB4YjAsMHgwYSwweGIwLDB4NDIsMHgyYywweDAwLDB4YmEgfX0sCi0gezE2LCAweDllYjAsIDAsIHsweGM2LDB4MmUsMHhjMCwweDBiLDB4OGMsMHgwMiwweGUzLDB4MDAsMHhiOCwweGMwLDB4M2MsMHhhMCwweDBkLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHg5ZWMwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJmLDB4MDAsMHhiOCwweDgwLDB4MjIsMHhlMiB9fSwKLSB7MTYsIDB4OWVkMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4ZTYsMHgyMCwweGI5LDB4MDAsMHgyYywweGMwLDB4MDgsMHhiOCwweDAyLDB4MGMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDllZTAsIDAsIHsweDJlLDB4MzAsMHg0OCwweGIwLDB4MDIsMHgyYywweDAwLDB4YjksMHhjMCwweDJlLDB4YzEsMHgwYiwweDg4LDB4MDIsMHhlZSwweDEwIH19LAotIHsxNiwgMHg5ZWYwLCAwLCB7MHhiOSwweGMwLDB4MmUsMHgyMCwweDE5LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWYwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwNiwweGMwLDB4MDAsMHg5MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDlmMTAsIDAsIHsweGMwLDB4NDksMHg4MCwweDAyLDB4NGMsMHgwNCwweDkxLDB4MDAsMHgyYywweDAwLDB4OGEsMHgzMCwweDBhLDB4MGMsMHgwNCwweGIxIH19LAotIHsxNiwgMHg5ZjIwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgxYiwweDAwLDB4MTIsMHg0OSwweDEwLDB4YjEsMHgwMCwweDJlLDB4MjAsMHgwOSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4OWYzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4YjgsMHgyMCwweDIyLDB4YzAgfX0sCi0gezE2LCAweDlmNDAsIDAsIHsweDhiLDB4ZjAsMHgwMywweGUwLDB4MDgsMHhmZCwweDAwLDB4M2YsMHhjMCwweDBjLDB4YTAsMHgwMywweDNjLDB4MDAsMHhjYiwweDAwIH19LAotIHsxNiwgMHg5ZjUwLCAwLCB7MHgzZSwweDAwLDB4NGMsMHhmMCwweDBhLDB4M2MsMHgwMCwweGI5LDB4MDAsMHgzNywweGMxLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4OWY2MCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4MDAsMHgwZCwweGYwLDB4MGIsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlmNzAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAxLDB4ZmMsMHg0MCwweDNmLDB4ODAsMHg0ZiwweGYwLDB4MDIsMHhmMCwweDAwLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5ZjgwLCAwLCB7MHhjMSwweDBmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCwweDAwLDB4M2YsMHgwMCwweDRmLDB4ZjAsMHg2MywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4OWY5MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHg4MCwweGZjLDB4MDAsMHg3YiwweDAwLDB4MGYsMHhmMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweDlmYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjgsMHgwMCwweGM4LDB4MTAsMHgzMywweDA0IH19LAotIHsxNiwgMHg5ZmIwLCAwLCB7MHgwYywweDQwLDB4MDIsMHgzNCwweDAwLDB4YzgsMHg4NSwweDFmLDB4YzAsMHgyZCwweGQ5LDB4MDMsMHhmYywweGMwLDB4ZGIsMHgyOCB9fSwKLSB7MTYsIDB4OWZjMCwgMCwgezB4MzcsMHg2NCwweDBmLDB4ZGIsMHgwMywweDNlLDB4MDAsMHhmZiwweDI1LDB4M2YsMHhjOCwweDBlLDB4ZjIsMHgwMywweGZlLDB4MjAgfX0sCi0gezE2LCAweDlmZDAsIDAsIHsweGZmLDB4YTQsMHgzNywweGM0LDB4MGMsMHhjOCwweDAzLDB4MzAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZmUwLCAwLCB7MHg4MCwweDEwLDB4ZTgsMHgwMCwweDg4LDB4MjAsMHgyMiwweDAwLDB4MDgsMHg4OCwweDEyLDB4MjYsMHgwNCwweDg5LDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4OWZmMCwgMCwgezB4ZjQsMHg0OCwweGI4LDB4MDIsMHhmYywweGM0LDB4OTgsMHhjMiwweDIyLDB4N2MsMHg0YiwweDlkLDB4NDIsMHgyNiwweDA4LDB4YmYgfX0sCi0gezE2LCAweGEwMDAsIDAsIHsweDE4LDB4NzcsMHhlNCwweDA4LDB4ZjEsMHg4MiwweGVmLDB4MDAsMHhiYiwweGQwLDB4MjIsMHhkOCwweDA4LDB4OTAsMHg4MywweDYwIH19LAotIHsxNiwgMHhhMDEwLCAwLCB7MHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHg0NSwweGM4LDB4MDQsMHhhMCwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTAyMCwgMCwgezB4MGEsMHgwMCwweDAyLDB4MGMsMHgwMCwweDgyLDB4MDQsMHgyYywweGUwLDB4MDgsMHgxMCwweDAyLDB4Y2MsMHg4MCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGEwMzAsIDAsIHsweDI0LDB4MDAsMHgwYiwweDEwLDB4MDYsMHhjOCwweDAxLDB4YjMsMHgyMCwweDJjLDB4YzAsMHgyOSwweDMyLDB4MDIsMHhjOCwweDA4IH19LAotIHsxNiwgMHhhMDQwLCAwLCB7MHhiMSwweDAwLDB4MjQsMHhkMCwweDA4LDB4ODIsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTA1MCwgMCwgezB4YzAsMHgxNSwweGE4LDB4MDAsMHhhOCwweDBjLDB4MjYsMHgwMCwweDBhLDB4ODAsMHgwMiwweDJjLDB4MTQsMHg4YSwweDAyLDB4NmUgfX0sCi0gezE2LCAweGEwNjAsIDAsIHsweGUwLDB4MDgsMHhiMCwweDAyLDB4NGMsMHgwOCwweGE4LDB4MDAsMHgyNiwweDIwLDB4MGIsMHg5YywweDAyLDB4ZTQsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhMDcwLCAwLCB7MHgwNCwweDIyLDB4YzAsMHgxOSwweGIwLDB4MDIsMHhlOCwweDAxLDB4YmIsMHgxMSwweDAyLDB4YzAsMHg4OCwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YTA4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTUsMHhlYywweDAyLDB4ZWEsMHg0MCwweGI2LDB4NjAgfX0sCi0gezE2LCAweGEwOTAsIDAsIHsweDJlLDB4OTgsMHgwYiwweDIwLDB4MDIsMHhjOCwweDAyLDB4M2UsMHhjMCwweDBkLDB4OTgsMHgwMywweGVjLDB4MDIsMHhkYiwweDg4IH19LAotIHsxNiwgMHhhMGEwLCAwLCB7MHhiNiwweDIxLDB4MGYsMHg4OCwweDAzLDB4YWMsMHgwOCwweGZiLDB4MDAsMHgyYywweGMwLDB4MGUsMHhiMCwweDQzLDB4ZTUsMHg4MCB9fSwKLSB7MTYsIDB4YTBiMCwgMCwgezB4ZjAsMHg2MCwweDM2LDB4YzAsMHgwYywweDAxLDB4NDMsMHg0OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwYzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZDYsMHgwMSwweDNiLDB4NjQsMHg4NSwweGQ5LDB4MDMsMHhmMCwweDBjLDB4ZmYsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhMGQwLCAwLCB7MHhjMSwweDBmLDB4ZmMsMHgyMSwweGVjLDB4MDAsMHhkNywweDkwLDB4M2IsMHg0MCwweDBmLDB4NTAsMHgwMywweDNjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YTBlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4ZjQsMHg0MCwweGZkLDB4ODgsMHgzZiwweGMwLDB4MmYsMHhkMCwweDAyLDB4NzggfX0sCi0gezE2LCAweGEwZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGMsMHgwMCwweGRhLDB4NDAsMHgzYywweDQwIH19LAotIHsxNiwgMHhhMTAwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHg0OCwweDAwLDB4ZjksMHgyMiwweDNjLDB4YzIsMHgwZSwweDkwLDB4ODMsMHhlYywweDAyLDB4ZGIsMHgwNCB9fSwKLSB7MTYsIDB4YTExMCwgMCwgezB4M2EsMHgwOCwweDBmLDB4ODQsMHg4NywweGU4LDB4MDAsMHhjYiwweDAwLDB4M2UsMHhjNCwweDBlLDB4YjAsMHgwMywweGVkLDB4MDAgfX0sCi0gezE2LCAweGExMjAsIDAsIHsweGU4LDB4NDIsMHgzYSwweGMwLDB4MGYsMHg4MCwweDBiLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMTMwLCAwLCB7MHg4OCwweDA1LDB4MmMsMHgwOCwweDhhLDB4MDAsMHgyZSwweDQyLDB4OGIsMHg5MCwweDAyLDB4MjgsMHgxOCwweGJiLDB4NDksMHgyMiB9fSwKLSB7MTYsIDB4YTE0MCwgMCwgezB4ZDAsMHgzOCwweGJjLDB4ODIsMHhmYywweDAwLDB4ZTgsMHgwMiwweDIyLDB4NjIsMHhjYiwweDljLDB4MDAsMHhlZiwweDYwLDB4ZGYgfX0sCi0gezE2LCAweGExNTAsIDAsIHsweDAwLDB4MmYsMHhjMCwweDBiLDB4ZjAsMHgwMiwweGVjLDB4MDAsMHgwOSwweDQwLDB4MzcsMHhjMCwweDBiLDB4OTAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhhMTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4MTAsMHgxMSwweDAwLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4YTE3MCwgMCwgezB4MGIsMHgyMCwweDAyLDB4NDQsMHgwMCwweDkwLDB4YzAsMHg2NCwweDM0LDB4MjgsMHgzNCwweDAyLDB4Y2MsMHgwMCwweDkzLDB4ODQgfX0sCi0gezE2LCAweGExODAsIDAsIHsweDI4LDB4NDAsMHgwYiwweDA4LDB4MDAsMHhjZSwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzIsMHgwYSwweDMwLDB4MDIsMHhjMCwweDAwIH19LAotIHsxNiwgMHhhMTkwLCAwLCB7MHhiMiwweDQwLDB4MjIsMHhjMCwweDBiLDB4MjAsMHgwMiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTFhMCwgMCwgezB4NzAsMHgwMSwweDFhLDB4NDAsMHg4NSwweDgwLDB4MmQsMHhhMCwweDBiLDB4NjgsMHgwNiwweDE2LDB4ODAsMHhiZCwweDkwLDB4MjUgfX0sCi0gezE2LCAweGExYjAsIDAsIHsweDI0LDB4MTgsMHg3YiwweDQyLDB4ZGUsMHg0MCwweGEwLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg2OCwweDAyLDB4ZDYsMHgwMCwweDk3IH19LAotIHsxNiwgMHhhMWMwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhjZSwweDQwLDB4OTIsMHg4MCwweDZkLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YTFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyOCwweDAwLDB4ZDEsMHg4MCwweDNjLDB4ODggfX0sCi0gezE2LCAweGExZTAsIDAsIHsweDBiLDB4MjIsMHgwMywweDRlLDB4ODAsMHhmMiwweGExLDB4M2MsMHgyNCwweDJhLDB4MzksMHgwMywweGNjLDB4NDAsMHhkMywweGFjIH19LAotIHsxNiwgMHhhMWYwLCAwLCB7MHgzOCwweGM1LDB4MGYsMHgzMCwweDgyLDB4YzgsMHgwMCwweGQzLDB4MDAsMHgzYywweGMwLDB4MGUsMHgzMCwweDEzLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4YTIwMCwgMCwgezB4ZjEsMHgwMCwweDM4LDB4YzAsMHgwZiwweGEwLDB4MDMsMHgxYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyMTAsIDAsIHsweDQwLDB4MWQsMHhiOCwweDEwLDB4ZmQsMHgzNCwweDNlLDB4ODAsMHgwZiwweGUwLDB4MDMsMHhlZSwweDAwLDB4NzIsMHgwMCwweDNhIH19LAotIHsxNiwgMHhhMjIwLCAwLCB7MHgwMCwweDBmLDB4YjAsMHg2MywweGVjLDB4NDAsMHhmOCwweDIyLDB4M2UsMHhjMCwweDBmLDB4ZjAsMHgwMywweGQ0LDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4YTIzMCwgMCwgezB4MDAsMHgzZiwweGQyLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGNmLDB4MDAsMHgzNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGEyNDAsIDAsIHsweDA2LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWUsMHgwMCwweGViLDB4MDAsMHgzNiwweGUwIH19LAotIHsxNiwgMHhhMjUwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHgyMCwweDAwLDB4ZjAsMHg4MCwweDMzLDB4YzAsMHgwOCwweGI4LDB4MDMsMHgyYywweDgwLDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4YTI2MCwgMCwgezB4MzIsMHg4MCwweDBmLDB4YTAsMHgxMywweDZlLDB4MDgsMHhjYiwweDI4LDB4MzIsMHhlMCwweDBkLDB4YjQsMHg4MywweGUyLDB4MDAgfX0sCi0gezE2LCAweGEyNzAsIDAsIHsweGNhLDB4MDAsMHgzZSwweGUwLDB4MGMsMHhhOCwweDAzLDB4MDIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMjgwLCAwLCB7MHhjOCwweDExLDB4OGMsMHgwNCwweDgzLDB4MDAsMHgyMSwweGMwLDB4NDgsMHg3MCwweDAyLDB4MTAsMHgwMCwweGI3LDB4MDIsMHgyMSB9fSwKLSB7MTYsIDB4YTI5MCwgMCwgezB4YzAsMHg0YSwweDcwLDB4MDIsMHgwZCwweDQ4LDB4ZDQsMHgwMCwweDM1LDB4YzAsMHgwZSwweDYwLDB4MDIsMHhkYywweDAwLDB4YTcgfX0sCi0gezE2LCAweGEyYTAsIDAsIHsweDQwLDB4MjksMHhjMCwweDA5LDB4NzIsMHgwMiwweGQ0LDB4MTAsMHhhNiwweDAyLDB4MmYsMHhjOCwweDA4LDB4NzAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhhMmIwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhhNywweDgwLDB4MjAsMHhlMCB9fSwKLSB7MTYsIDB4YTJjMCwgMCwgezB4MGEsMHgzOCwweDAyLDB4MWEsMHgwMCwweGI1LDB4ODAsMHgyMSwweGUwLDB4MDgsMHhmOCwweDIyLDB4NWMsMHg4MSwweDgzLDB4ODAgfX0sCi0gezE2LCAweGEyZDAsIDAsIHsweDIxLDB4YTEsMHgwYiwweDc4LDB4ODIsMHg1YSwweDEwLDB4ODMsMHhhMCwweDIwLDB4ZTgsMHgwYSwweDdiLDB4MDIsMHhkYSwweDAwIH19LAotIHsxNiwgMHhhMmUwLCAwLCB7MHg5NywweGMwLDB4MmQsMHhlNCwweDA4LDB4ZTgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTJmMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDAsMHg4MywweDEwLDB4MjAsMHhjMCwweDBhLDB4MzAsMHgwMiwweDA4LDB4MDgsMHhiMywweDcwLDB4MjAgfX0sCi0gezE2LCAweGEzMDAsIDAsIHsweGY4LDB4MGEsMHgzMCwweDQyLDB4NGMsMHgwNCwweDkzLDB4MTQsMHgyNiwweGM0LDB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweGEzIH19LAotIHsxNiwgMHhhMzEwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHhhYSwweDMwLDB4MDIsMHhjZSwweDQwLDB4YjMsMHg4OCwweDJjLDB4YzAsMHgyOCwweDMwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4YTMyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOSwweDAwLDB4ZWEsMHg4MCwweGI2LDB4OTAgfX0sCi0gezE2LCAweGEzMzAsIDAsIHsweDJmLDB4MjQsMHgwYiwweDM5LDB4MDQsMHhiZSwweGMwLDB4MzMsMHg5MiwweDBjLDB4YTAsMHgwYiwweDY4LDB4MTgsMHhjZSwweGMwIH19LAotIHsxNiwgMHhhMzQwLCAwLCB7MHgzMywweDgwLDB4MGYsMHhlOSwweDQzLDB4NzgsMHgwMCwweGNhLDB4MDAsMHgzMiwweDgwLDB4MGYsMHhhMCwweDEzLDB4ZjgsMHg0OCB9fSwKLSB7MTYsIDB4YTM1MCwgMCwgezB4ZGUsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDIsMHgzYSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEzNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDI0LDB4ZjgsMHgwMCwweDNlLDB4MTIsMHgwZCwweDgwLDB4OTMsMHhiMCwweDI4LDB4ZjgsMHgwMCwweGJjIH19LAotIHsxNiwgMHhhMzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMiwweDBlLDB4ODAsMHgwMCwweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4YTM4MCwgMCwgezB4MDEsMHgzZSwweDAwLDB4MGQsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGEzOTAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHhiMiwweDcwIH19LAotIHsxNiwgMHhhM2EwLCAwLCB7MHgwZiwweDkwLDB4MDEsMHgwNCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDk4LDB4MDMsMHhlNCwweDA0LDB4ZTksMHgwOCB9fSwKLSB7MTYsIDB4YTNiMCwgMCwgezB4M2EsMHg0OCwweDBjLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDBiLDB4MTAsMHgwYiwweDI2LDB4ODAgfX0sCi0gezE2LCAweGEzYzAsIDAsIHsweGYxLDB4ODAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhM2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4MDAsMHgyMiwweDYxLDB4MGIsMHg5MCwweDAyLDB4MjQsMHgwOCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YTNlMCwgMCwgezB4NDAsMHgwZCwweDlhLDB4MDIsMHhlNCwweDA4LDB4YTksMHgwMCwweDIyLDB4NzgsMHgwZCwweDk0LDB4MDYsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweGEzZjAsIDAsIHsweDAwLDB4MjIsMHg1MCwweDBiLDB4OTAsMHgwMiwweDI1LDB4ODAsMHhiOSwweDgwLDB4MzYsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhhNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiNSwweDAwLDB4MjMsMHg0MiB9fSwKLSB7MTYsIDB4YTQxMCwgMCwgezB4MGIsMHhkMCwweDBlLDB4YjQsMHgwMCwweDg5LDB4MDQsMHgyZSwweDYwLDB4MDgsMHg5MSwweDAyLDB4YzQsMHgwNCwweGI5LDB4MDQgfX0sCi0gezE2LCAweGE0MjAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDk0LDB4MDIsMHhlNCwweDEwLDB4YjEsMHgwMCwweDI2LDB4NDIsMHgwYSwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHhhNDMwLCAwLCB7MHhiOSwweDIxLDB4NjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTQ0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHhiNSwweDQwLDB4MjEsMHg1MCwweDRiLDB4NTAsMHgwNiwweDk0LDB4MDIsMHg4MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGE0NTAsIDAsIHsweDYwLDB4MjksMHgxNCwweDA2LDB4YzUsMHgwMCwweGExLDB4MjIsMHgyMCwweDUxLDB4ODksMHgxNCwweDAyLDB4YzQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhhNDYwLCAwLCB7MHgyMCwweDIwLDB4NDgsMHgwYiwweDE0LDB4MDIsMHgwNCwweDAxLDB4YjEsMHgwMCwweDA0LDB4NTAsMHgwYiwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTQ3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDA4LDB4YjgsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGE0ODAsIDAsIHsweDhmLDB4ODAsMHgwMywweGIwLDB4MDAsMHg4OCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAsMHhlOCwweDA0IH19LAotIHsxNiwgMHhhNDkwLCAwLCB7MHgzYSwweDAwLDB4MGMsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MjAsMHgwNCB9fSwKLSB7MTYsIDB4YTRhMCwgMCwgezB4ZjgsMHgwMSwweDEyLDB4MDAsMHg0ZiwweDgwLDB4MDcsMHhlZSwweDA3LDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0YjAsIDAsIHsweDk4LDB4MWQsMHhlNSwweDEwLDB4ZjksMHg0MCwweDNlLDB4NTAsMHgwZiwweDk0LDB4MDIsMHg2NSwweDAxLDB4ZmQsMHgwMSwweDNkIH19LAotIHsxNiwgMHhhNGMwLCAwLCB7MHg1MCwweDRmLDB4NTAsMHgxMywweGU1LDB4MDAsMHhmZCwweDEwLDB4MWYsMHg1MCwweDA3LDB4ZDQsMHg0MywweGQ0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTRkMCwgMCwgezB4MTAsMHgxZSwweDQ0LDB4MGYsMHg5NCwweDAzLDB4ZDUsMHgwMCwweGZkLDB4NDAsMHgzZSwweDUwLDB4MGYsMHg1MiwweDgzLDB4ZWUgfX0sCi0gezE2LCAweGE0ZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZTQsMHg0MCwweGY5LDB4NjAsMHgzZiwweDQ0IH19LAotIHsxNiwgMHhhNGYwLCAwLCB7MHgwZiwweGQwLDB4YzMsMHhlNCwweDMwLDB4ZjksMHgwMSwweDNlLDB4NDIsMHgwYywweGQwLDB4MDMsMHhlNywweDgwLDB4ZGQsMHhhMCB9fSwKLSB7MTYsIDB4YTUwMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4ZDAsMHgwMywweGZjLDB4MDAsMHhjOSwweDkwLDB4M2YsMHg2OCwweDFlLDB4OTEsMHgwMywweDM0LDB4MDAgfX0sCi0gezE2LCAweGE1MTAsIDAsIHsweGZkLDB4MDAsMHgzZSwweDY4LDB4MGMsMHg5NCwweDAzLDB4MGUsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNTIwLCAwLCB7MHgzOSwweDEwLDB4ZTAsMHgwMCwweGI4LDB4NDIsMHgyZSwweDA5LDB4MGIsMHg4NCwweDAyLDB4ZTEsMHgwNCwweGJlLDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YTUzMCwgMCwgezB4MTAsMHgwOCwweDgwLDB4MjIsMHhjMiwweDgwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYSwweDgwLDB4MDIsMHhlMCwweDAwLDB4YTggfX0sCi0gezE2LCAweGE1NDAsIDAsIHsweGQwLDB4MmUsMHgxMCwweDRiLDB4OGEsMHgwMywweDYwLDB4MDAsMHhiYSwweDAwLDB4MmUsMHgzMCwweDA4LDB4OGEsMHgwMiwweDg2IH19LAotIHsxNiwgMHhhNTUwLCAwLCB7MHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNSwweGM1LDB4ODAsMHhiMSwweDYwLDB4NmMsMHhkMCB9fSwKLSB7MTYsIDB4YTU2MCwgMCwgezB4MGIsMHgxMCwweDAwLDB4ZGMsMHgwYywweGI1LDB4MDAsMHgyYywweDQxLDB4MDgsMHgxMCwweDAyLDB4YzUsMHg4MCwweDkxLDB4MTAgfX0sCi0gezE2LCAweGE1NzAsIDAsIHsweDY4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhlNCwweDBjLDB4ODEsMHgyMiwweDJjLDB4NTAsMHgwOCwweDEwLDB4NDIsMHgwNCwweDAwIH19LAotIHsxNiwgMHhhNTgwLCAwLCB7MHhhMSwweDAwLDB4MmMsMHg1YSwweDI4LDB4OTAsMHgwMiwweDUyLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTU5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MSwweDBiLDB4OTAsMHgxMiwweGY0LDB4ODAsMHhiZiwweDAwLDB4MmUgfX0sCi0gezE2LCAweGE1YTAsIDAsIHsweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGE5LDB4NjAsMHg2MCwweDQyLDB4MGEsMHg5NCwweDEyLDB4ZTUsMHgwMCwweGE5IH19LAotIHsxNiwgMHhhNWIwLCAwLCB7MHgwMCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg2NCwweDIwLDB4YjksMHgwMCwweDBlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YTVjMCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDEgfX0sCi0gezE2LCAweGE1ZDAsIDAsIHsweDBmLDB4OTAsMHgyMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDQsMHhkMSwweGMwIH19LAotIHsxNiwgMHhhNWUwLCAwLCB7MHhiYSwweDcwLDB4MGMsMHg5OCwweDAzLDB4YzQsMHgwMCwweGM5LDB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDAzLDB4MjUsMHg0MCB9fSwKLSB7MTYsIDB4YTVmMCwgMCwgezB4ZTksMHg0MCwweDNlLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2MDAsIDAsIHsweDY4LDB4MDEsMHhhNCwweDE0LDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MjMsMHhlNCwweDA4LDB4ZjksMHhhMCwweDNjIH19LAotIHsxNiwgMHhhNjEwLCAwLCB7MHhjMiwweDJmLDB4OTAsMHgwMywweGM0LDB4MDAsMHhkOSwweDgwLDB4M2UsMHg3MCwweDBmLDB4OTEsMHg0MywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YTYyMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MWYsMHg5MCwweDEzLDB4ZTYsMHgyMCwweGY5LDB4YTAsMHgzYywweDQwLDB4NGUsMHg5MCwweDAzLDB4OWEgfX0sCi0gezE2LCAweGE2MzAsIDAsIHsweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAyIH19LAotIHsxNiwgMHhhNjQwLCAwLCB7MHgwZiwweDgwLDB4MTMsMHgyMCwweDBjLDB4ZmMsMHgwMSwweDNlLDB4MDAsMHgwYywweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHg1MCB9fSwKLSB7MTYsIDB4YTY1MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwYiwweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHg0MywweGUwLDB4NDAgfX0sCi0gezE2LCAweGE2NjAsIDAsIHsweGY4LDB4MDIsMHgzYSwweDAwLDB4OGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNjcwLCAwLCB7MHhhOCwweDg1LDB4MjgsMHgwOCwweDNhLDB4MDAsMHgwZiwweDgwLDB4NGIsMHhhMSwweDAyLDB4MjgsMHgwMCwweGJhLDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4YTY4MCwgMCwgezB4ODgsMHg0OCwweGU0LDB4MDIsMHhlOCwweDAwLDB4YWUsMHg5MCwweGEzLDB4OTAsMHgwYiwweGUwLDB4MDAsMHgzOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGE2OTAsIDAsIHsweDAwLDB4MzcsMHhhMCwweDA4LDB4YTAsMHgwMiwweGY4LDB4MDAsMHg5ZSwweGUwLDB4MjIsMHg4MCwweDBiLDB4YTAsMHgyMywweDQyIH19LAotIHsxNiwgMHhhNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MTAsMHgzMywweDAwLDB4MmMsMHhkMCB9fSwKLSB7MTYsIDB4YTZiMCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MGMsMHgwMCwweGIyLDB4OTEsMHgyYywweGQwLDB4MDgsMHgzZSwweDAyLDB4NGMsMHgwMCwweDgzLDB4NDAgfX0sCi0gezE2LCAweGE2YzAsIDAsIHsweDI0LDB4YzIsMHgwYiwweDM2LDB4MDAsMHg4YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhjZSwweDAwIH19LAotIHsxNiwgMHhhNmQwLCAwLCB7MHhiMywweGNjLDB4NjgsMHhjMCwweDBiLDB4MzAsMHgwMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTZlMCwgMCwgezB4ZTAsMHgwMSwweDFjLDB4ODgsMHhiNywweDI1LDB4MmQsMHhjMCwweDhiLDB4NTgsMHgxYSwweDFjLDB4MDgsMHhiNiwweDAwLDB4MmQgfX0sCi0gezE2LCAweGE2ZjAsIDAsIHsweGMwLDB4MDgsMHg3NCwweDAyLDB4ZGMsMHg0MCwweGE1LDB4MDAsMHgyNSwweGMwLDB4MWIsMHg3OCwweDAyLDB4OTQsMHgwOCwweGI3IH19LAotIHsxNiwgMHhhNzAwLCAwLCB7MHg4MCwweDI1LDB4ZTMsMHgwYSwweDcxLDB4MDIsMHhkYywweDAwLDB4OTcsMHg4MywweDIxLDB4YzgsMHg4YiwweGYxLDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YTcxMCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDAwLDB4ZjcsMHhlMiwweDdkLDB4ZTAgfX0sCi0gezE2LCAweGE3MjAsIDAsIHsweDBmLDB4NTgsMHg0MywweDFlLDB4MTgsMHhmNiwweDgwLDB4N2MsMHhlMCwweDJjLDB4NjgsMHgwMiwweDVlLDB4OTAsMHhjMywweDgwIH19LAotIHsxNiwgMHhhNzMwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHhmOCwweDAzLDB4OWUsMHgwNCwweGZmLDB4YTEsMHgyMCwweGExLDB4MGQsMHg3OCwweDAzLDB4ZDYsMHgwMCB9fSwKLSB7MTYsIDB4YTc0MCwgMCwgezB4ZjcsMHg4MCwweDM5LDB4ZjgsMHgwZiwweDc4LDB4MDMsMHgwYSwweDA2LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE3NTAsIDAsIHsweDQ4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHg0MCwweDdmLDB4NDEsMHgwZiwweDEwLDB4MDMsMHhlYywweDA0LDB4ZmEsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNzYwLCAwLCB7MHhkMCwweDBmLDB4YTAsMHgwMywweGVkLDB4MDAsMHhlOSwweDAwLDB4MmEsMHgwMCwweDBmLDB4YjAsMHgwMywweDY0LDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTc3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTQsMHgwMCwweGQzLDB4MDAsMHgzNiwweGMwLDB4MGYsMHgzOCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGE3ODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHg0OCwweGNmLDB4YzAsMHgzMywweDYwIH19LAotIHsxNiwgMHhhNzkwLCAwLCB7MHg4YywweGM4LDB4NDMsMHhkNiwweDAwLDB4Y2MsMHg5NCwweDNmLDB4YjAsMHgwZCwweGY4LDB4MDMsMHg3ZiwweDAwLDB4ZGYsMHg4MCB9fSwKLSB7MTYsIDB4YTdhMCwgMCwgezB4M2YsMHg2MCwweDBmLDB4ZDgsMHgwMywweGRlLDB4MDAsMHhjZiwweGNhLDB4M2QsMHg2MCwweDBjLDB4ZjgsMHgxMywweDNhLDB4NDQgfX0sCi0gezE2LCAweGE3YjAsIDAsIHsweGRkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDQzLDB4MTgsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhN2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDhmLDB4MTEsMHgzMywweGMwLDB4NDgsMHg0MSwweDEyLDB4YzQsMHg0OCwweDg0LDB4MTEsMHgyYyB9fSwKLSB7MTYsIDB4YTdkMCwgMCwgezB4ZWMsMHgyYSwweGJhLDB4MDMsMHgzYywweDQwLDB4ZDcsMHg0OCwweDJkLDB4NDEsMHgwYiwweDYwLDB4MDIsMHhkNCwweDAwLDB4ZDcgfX0sCi0gezE2LCAweGE3ZTAsIDAsIHsweDAxLDB4M2QsMHhjMCwweDBkLDB4ZjAsMHgwMywweDVhLDB4MDAsMHg4NCwweDE4LDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMywweDZhIH19LAotIHsxNiwgMHhhN2YwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDhjLDB4MDgsMHg4NywweDAwLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4YTgwMCwgMCwgezB4MDksMHg0MCwweDAyLDB4ZDQsMHgwMCwweGE0LDB4OTIsMHgyZCwweGM4LDB4MDksMHg2MiwweDgyLDB4NWMsMHgwMCwweDg3LDB4MDAgfX0sCi0gezE2LCAweGE4MTAsIDAsIHsweDJkLDB4YzAsMHgwYiwweDUwLDB4MDIsMHhmYywweDAwLDB4ODcsMHgwMCwweDJkLDB4MDQsMHgwOCwweDcwLDB4MDIsMHgxYywweDgwIH19LAotIHsxNiwgMHhhODIwLCAwLCB7MHhiNSwweDAwLDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTgzMCwgMCwgezB4NjAsMHgxMCwweGNjLDB4MDAsMHg4MywweDAwLDB4MjAsMHg0MCwweDA5LDB4MDAsMHgyMiwweGM3LDB4MDAsMHhhMCwweDQxLDB4MmMgfX0sCi0gezE2LCAweGE4NDAsIDAsIHsweGMxLDB4NGIsMHgwOCwweDAyLDB4MmMsMHgwMCwweDkzLDB4NDAsMHgyYywweDdjLDB4MGIsMHgzOCwweDAyLDB4YzcsMHgyMCwweDkzIH19LAotIHsxNiwgMHhhODUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg0ZiwweDg0LDB4YjAsMHg4MCwweDJjLDB4YzAsMHgwYiwweDMyLDB4MTAsMHg1MCB9fSwKLSB7MTYsIDB4YTg2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGFhLDB4MTUsMHhiYywweDAyLDB4Y2YsMHgwMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGE4NzAsIDAsIHsweDBkLDB4MTAsMHgwMywweGU4LDB4MjQsMHhlYiwweGMxLDB4M2UsMHhjMCwweDJkLDB4OTgsMHgxMywweDdjLDB4MGEsMHhjMiwweDQzIH19LAotIHsxNiwgMHhhODgwLCAwLCB7MHgzZSwweGIwLDB4MGYsMHhhOSwweDAzLDB4ZTksMHgyMCwweGNmLDB4MDAsMHgzZSwweGMwLDB4OGMsMHhmMCwweDAzLDB4MGQsMHgyMCB9fSwKLSB7MTYsIDB4YTg5MCwgMCwgezB4ZmEsMHhjMCwweDNmLDB4YzAsMHgwZiwweDc0LDB4MDEsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4YTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMiwweDNhLDB4NDAsMHg4ZSwweDkwLDB4MDMsMHhlOCwweDE0LDB4NWIsMHg1MCwweDNjIH19LAotIHsxNiwgMHhhOGIwLCAwLCB7MHg1MCwweDRlLDB4ODQsMHgwMywweGVjLDB4MDAsMHhmOCwweDQwLDB4M2UsMHg4MCwweDA3LDB4ODEsMHgwMywweGVjLDB4MDgsMHhmMyB9fSwKLSB7MTYsIDB4YThjMCwgMCwgezB4MDAsMHgzYSwweGMwLDB4OWYsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGNiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTggfX0sCi0gezE2LCAweGE4ZDAsIDAsIHsweDA0LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDkwLDB4ZmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweDQwIH19LAotIHsxNiwgMHhhOGUwLCAwLCB7MHgwZiwweGQwLDB4MDMsMHgzOCwweDIwLDB4Y2YsMHgwOCwweDMyLDB4YzEsMHgwZSwweGQwLDB4MDMsMHhmYywweDAwLDB4ZmUsMHgwOCB9fSwKLSB7MTYsIDB4YThmMCwgMCwgezB4MzEsMHhlNSwweDBlLDB4ZTQsMHgwMywweDNhLDB4MDAsMHhmZiwweDAwLDB4MzMsMHg4MCwweDBmLDB4ZjAsMHgyYiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGE5MDAsIDAsIHsweGNjLDB4YTAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOTEwLCAwLCB7MHg4MCwweDA0LDB4NmMsMHgwMCwweGJiLDB4MDAsMHgzYSwweDY5LDB4MGIsMHg5MCwweDZlLDB4MDgsMHgwMCwweDgzLDB4NDEsMHgzNiB9fSwKLSB7MTYsIDB4YTkyMCwgMCwgezB4NDAsMHhjOCwweDg4LDB4YzYsMHhlYywweDAwLDB4ODgsMHg0MCwweDM2LDB4ODAsMHgwZCwweGE4LDB4MDMsMHg2ZSwweDUwLDB4YmIgfX0sCi0gezE2LCAweGE5MzAsIDAsIHsweDAwLDB4MzYsMHhjMCwweDBiLDB4YjAsMHgwMiwweDI0LDB4MDAsMHhkOSwweDA4LDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMywweGUwIH19LAotIHsxNiwgMHhhOTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHg2MCB9fSwKLSB7MTYsIDB4YTk1MCwgMCwgezB4MDMsMHg4MCwweDAyLDB4MjAsMHgwMCwweDg5LDB4MDEsMHgyMiwweDU4LDB4MDgsMHg5OCwweDIyLDB4ZWMsMHgwMSwweGFiLDB4MDAgfX0sCi0gezE2LCAweGE5NjAsIDAsIHsweDIyLDB4MDAsMHgwYSwweDEwLDB4MDIsMHgyOCwweDAwLDB4YmIsMHgwMCwweDIyLDB4NDAsMHgwYiwweGIwLDB4MDIsMHgyOCwweDAwIH19LAotIHsxNiwgMHhhOTcwLCAwLCB7MHg4YSwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweDIwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTk4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMywweDAwLDB4MjgsMHg0MCwweDhiLDB4MDAsMHgwMiwweDAyLDB4NDAsMHg4OSwweDAxLDB4MjQgfX0sCi0gezE2LCAweGE5OTAsIDAsIHsweGQyLDB4MjgsMHgxMCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MTAsMHgyNCwweDIwLDB4MDgsMHgwOCwweDAyLDB4NGUsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhOWEwLCAwLCB7MHgwNCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwOCwweDg4LDB4OTIsMHgwMCwweDJjLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGE5YzAsIDAsIHsweDBmLDB4ODAsMHgwMiwweDIwLDB4MTAsMHg4OSwweDUwLDB4MjIsMHhkOCwweDJlLDB4OTYsMHgyMiwweGZjLDB4MDAsMHhlYiwweDQwIH19LAotIHsxNiwgMHhhOWQwLCAwLCB7MHgzMiwweGMwLDB4MGEsMHg5MCwweDAzLDB4MjgsMHgwMCwweGZmLDB4MDAsMHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4MmMsMHhhMCB9fSwKLSB7MTYsIDB4YTllMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHgwMCwweDA2LDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5ZjAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmYsMHgwYywweDNiLDB4MDAsMHgwZiwweGMwLDB4MDIsMHg3MCwweDkwLDB4ZmQsMHgwMCwweDNlIH19LAotIHsxNiwgMHhhYTAwLCAwLCB7MHhjOSwweDBmLDB4OTYsMHhjMywweGZjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGZjLDB4MDQsMHhmZiB9fSwKLSB7MTYsIDB4YWExMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZWMsMHgwMCwweGZjLDB4MDAsMHgzZiwweGMwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGFhMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZGMsMHg4MCwweGZiLDB4MjgsMHgzZiwweDAwIH19LAotIHsxNiwgMHhhYTMwLCAwLCB7MHgwYywweGMxLDB4MGIsMHhmMSwweDAyLDB4ZWQsMHgwMCwweDM3LDB4MzAsMHgyYywweGYxLDB4MDMsMHhiMiwweDQwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4YWE0MCwgMCwgezB4YmIsMHhjMCwweDBmLDB4NDgsMHgwNiwweGIyLDB4MDAsMHhmYywweDgwLDB4M2IsMHhjYywweDBjLDB4ZjAsMHgwMywweDcwLDB4ODAgfX0sCi0gezE2LCAweGFhNTAsIDAsIHsweGRmLDB4MjgsMHgzMywweDA0LDB4MGYsMHhmNCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYTYwLCAwLCB7MHg4MCwweDEwLDB4ZmYsMHg0MCwweGJmLDB4NjAsMHgyZSwweDIxLDB4MDgsMHg4MiwweDAyLDB4MjAsMHgwMCwweGE5LDB4MjgsMHgyYSB9fSwKLSB7MTYsIDB4YWE3MCwgMCwgezB4MDAsMHgwOSwweGZhLDB4MDIsMHgyMCwweDAwLDB4YmYsMHg1MSwweDIzLDB4ZDgsMHgwOSwweDk4LDB4MDIsMHhlNCwweDMwLDB4YjAgfX0sCi0gezE2LCAweGFhODAsIDAsIHsweDAwLDB4MjMsMHhkMCwweDA4LDB4ZjUsMHhhMiwweDI1LDB4YTQsMHg4ZiwweDQyLDB4M2MsMHgxMCwweDBiLDB4YjAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhhYTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHhiMywweDA4LDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4YWFhMCwgMCwgezB4MjgsMHgwMCwweDFhLDB4YzAsMHg4NCwweDIwLDB4MDAsMHgyNCwweGM4LDB4NGIsMHgzMSwweDQyLDB4YzAsMHgwMCwweDkzLDB4MDIgfX0sCi0gezE2LCAweGFhYjAsIDAsIHsweDIwLDB4YzYsMHgwOCwweDAwLDB4MDYsMHhjMCwweDgxLDB4YjMsMHgwMCwweDJjLDB4ZDgsMHgwOSwweDMyLDB4MDIsMHhhMCwweDQwIH19LAotIHsxNiwgMHhhYWMwLCAwLCB7MHg5MywweDAxLDB4MjQsMHg0YywweDBiLDB4MzIsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWFkMCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MDAsMHhiYiwweDAyLDB4MmUsMHgwYSwweDA4LDB4ODAsMHg4MiwweDYwLDB4MDAsMHhhOCwweDAwLDB4MmUgfX0sCi0gezE2LCAweGFhZTAsIDAsIHsweGUwLDB4MWIsMHhiMCwweDAyLDB4NjIsMHgwMSwweDNiLDB4MDAsMHgyMiwweGMxLDB4MDksMHg5MCwweDAyLDB4ZTIsMHgwMCwweGJiIH19LAotIHsxNiwgMHhhYWYwLCAwLCB7MHg2MCwweDI2LDB4YzEsMHgwOCwweGIwLDB4MmEsMHgyNiwweDAwLDB4OWIsMHgwNCwweDJlLDB4MjEsMHgwYiwweGIwLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4YWIwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4MTAgfX0sCi0gezE2LCAweGFiMTAsIDAsIHsweDA4LDB4ODQsMHgxMywweGVjLDB4MDIsMHhhOSwweDA0LDB4MzYsMHgyMCwweDBmLDB4YjAsMHgwMywweGVlLDB4ODAsMHhmYiwweDAwIH19LAotIHsxNiwgMHhhYjIwLCAwLCB7MHgzYSwweGMwLDB4MGMsMHhhMCwweDAzLDB4YTIsMHg4MCwweDc5LDB4NDAsMHgxZSwweGMwLDB4OGMsMHhiMCwweDYzLDB4NmEsMHgxMCB9fSwKLSB7MTYsIDB4YWIzMCwgMCwgezB4ZDMsMHgwMCwweDM2LDB4YTIsMHgwNywweGIwLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNlLDB4MjAsMHg0ZCwweDQxLDB4MDMsMHg5YywweDAwLDB4ZmQsMHgyMCwweGFiIH19LAotIHsxNiwgMHhhYjUwLCAwLCB7MHgwMCwweDBjLDB4ZjAsMHgwMywweGI4LDB4MDAsMHhmNywweDAwLDB4M2YsMHhjMCwweDRkLDB4YzksMHgwMywweGY0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YWI2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MmUsMHhmMCwweDAwLDB4ZjAsMHgwMCwweGVmLDB4MDAsMHgzZiwweDAwLDB4NGIsMHg3MCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGFiNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHg4MCwweGViLDB4MDAsMHg3ZSwweDEwIH19LAotIHsxNiwgMHhhYjgwLCAwLCB7MHgyZSwweDg0LDB4MDMsMHhlYywweDAwLDB4ZTAsMHgwMCwweDMyLDB4NTAsMHgwZiwweGIwLDB4ODYsMHgyNSwweDAwLDB4ZGIsMHgyMCB9fSwKLSB7MTYsIDB4YWI5MCwgMCwgezB4M2EsMHhjMCwweDBkLDB4YjAsMHg2MywweGUxLDB4MTAsMHhmYiwweDQ4LDB4MzgsMHhjMSwweDBmLDB4MzAsMHgwMywweDJjLDB4MDQgfX0sCi0gezE2LCAweGFiYTAsIDAsIHsweGZiLDB4MDgsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYmIwLCAwLCB7MHhjOCwweDA1LDB4M2MsMHgwMCwweDhmLDB4MDAsMHg2NCwweDI5LDB4MjgsMHg4MCwweDAzLDB4ZWMsMHgwMiwweGU4LDB4MDQsMHhhOCB9fSwKLSB7MTYsIDB4YWJjMCwgMCwgezB4NTYsMHgwOCwweGZjLDB4MDcsMHhlMCwweDAwLDB4MGYsMHhhMCwweGJmLDB4YzAsMHgwYiwweDk1LDB4MDIsMHhhMCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGFiZDAsIDAsIHsweDA1LDB4MzcsMHhjMCwweDg5LDB4ZjAsMHgwYSwweDBkLDB4YzgsMHhiZiwweDA4LDB4MmEsMHg4MCwweDA4LDB4ZjAsMHgwMiwweDMyIH19LAotIHsxNiwgMHhhYmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDEsMHhiMywweDAyLDB4MjQsMHhlMCB9fSwKLSB7MTYsIDB4YWJmMCwgMCwgezB4MGEsMHgzMCwweDEyLDB4ODAsMHgwMywweGEzLDB4MDAsMHhhOCwweDAwLDB4MDIsMHhiOCwweDIyLDB4YzAsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGFjMDAsIDAsIHsweDI4LDB4YzEsMHgwYiwweDA0LDB4MDIsMHgwOCwweDAwLDB4YjksMHg0MCwweDI4LDB4YzAsMHgwYiwweDMwLDB4MDIsMHgwMywweDA0IH19LAotIHsxNiwgMHhhYzEwLCAwLCB7MHhiMywweDQ0LDB4MjAsMHgwMCwweDRhLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWMyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MjAsMHgxNywweGEwLDB4NjUsMHhlYywweDA4LDB4MzgsMHgwMiwweGMyLDB4NDEsMHhiMywweDkyLDB4MmIgfX0sCi0gezE2LCAweGFjMzAsIDAsIHsweDY0LDB4MGEsMHgzOCwweDAyLDB4MzYsMHgwMSwweGI3LDB4OTAsMHgyZCwweGUwLDB4MDMsMHhmOCwweDAwLDB4OWEsMHgwMCwweGI1IH19LAotIHsxNiwgMHhhYzQwLCAwLCB7MHg4MCwweDJkLDB4ZTAsMHg4OSwweDc4LDB4MTIsMHgxZSwweDAwLDB4YjcsMHg4MCwweDI5LDB4ZTAsMHgwYSwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YWM1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4NzMsMHhiMCwweDI0LDB4YzggfX0sCi0gezE2LCAweGFjNjAsIDAsIHsweDRlLDB4MzAsMHgwYSwweDgwLDB4MDIsMHhlMiwweDAwLDB4MzgsMHg5NCwweDBlLDB4MzEsMHhhMiwweGM4LDB4MDAsMHg3MywweDAwIH19LAotIHsxNiwgMHhhYzcwLCAwLCB7MHgxOCwweGM0LDB4MDUsMHgwMCwweDAzLDB4MDAsMHgwMCwweGYzLDB4MDAsMHgzOCwweGMwLDB4MDcsMHhiMSwweDAzLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWM4MCwgMCwgezB4ZjMsMHgwMSwweDMwLDB4NDEsMHgwZSwweGIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFjOTAsIDAsIHsweDQwLDB4MWQsMHhiZCwweDAwLDB4ZWYsMHgxMCwweDI2LDB4YzgsMHgwMywweGIxLDB4MDMsMHhlMCwweDAwLDB4ZWEsMHg4MSwweDc4IH19LAotIHsxNiwgMHhhY2EwLCAwLCB7MHhjNSwweDBjLDB4YjUsMHhlMywweGRjLDB4MDAsMHhjMywweDAwLDB4M2UsMHhjMSwweDBmLDB4ZjAsMHg4MywweGIwLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YWNiMCwgMCwgezB4MDAsMHgzNywweGMwLDB4MGQsMHhmNCwweDAzLDB4ZTQsMHgwMCwweGY3LDB4MDAsMHgzZiwweDQwLDB4MGQsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGFjYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWQsMHgxMCwweGNiLDB4MjgsMHgzZSwweGMwIH19LAotIHsxNiwgMHhhY2QwLCAwLCB7MHgwZCwweGIwLDB4MTMsMHhhYywweDEwLDB4ZmIsMHgwMCwweDNhLDB4ODAsMHgwNCwweGI0LDB4MDMsMHhhYywweDAwLDB4ZmIsMHgwNCB9fSwKLSB7MTYsIDB4YWNlMCwgMCwgezB4M2UsMHhjMCwweDBmLDB4YTQsMHhiMywweGUwLDB4MDAsMHhmYiwweDgwLDB4MzIsMHhjMCwweDBmLDB4YjAsMHgwMywweGU4LDB4MDAgfX0sCi0gezE2LCAweGFjZjAsIDAsIHsweGZiLDB4NDgsMHhiMiwweDgwLDB4MGYsMHhiMCwweDQzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZDAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMiwweDg3LDB4NDQsMHgzOCwweGMwLDB4OGQsMHgzMCwweDAyLDB4NGMsMHgwMCwweGZmLDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YWQxMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjMsMHg1MCwweDIxLDB4ZDQsMHg0ZSwweDYyLDB4MDIsMHhkMCwweDAwLDB4YmYgfX0sCi0gezE2LCAweGFkMjAsIDAsIHsweDAwLDB4MzUsMHhkNCwweDA5LDB4NzAsMHgyMiwweGQ4LDB4MDAsMHhiZiwweDIyLDB4MjEsMHhjMCwweDBiLDB4NzIsMHgwMiwweGQyIH19LAotIHsxNiwgMHhhZDMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4NDAsMHg4NywweDgwLDB4MmQsMHhlMCB9fSwKLSB7MTYsIDB4YWQ0MCwgMCwgezB4MDksMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI2LDB4ODAsMHgyOSwweGExLDB4MjgsMHg3YSwweDMyLDB4ZGUsMHgwMCwweDM3LDB4YTAgfX0sCi0gezE2LCAweGFkNTAsIDAsIHsweDI1LDB4ZTAsMHgwOSwweDc4LDB4MDYsMHhkMiwweDAwLDB4YjcsMHg4MCwweDIxLDB4ZTgsMHgwYiwweDc5LDB4MDIsMHhkZSwweDAwIH19LAotIHsxNiwgMHhhZDYwLCAwLCB7MHhiNywweDkwLDB4MjEsMHhlMCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWQ3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDQsMHg4MywweDAxLDB4MjgsMHhjMCwweDg5LDB4YjAsMHgwYSwweDRmLDB4MDAsMHhiMiwweDAwLDB4MjAgfX0sCi0gezE2LCAweGFkODAsIDAsIHsweGM0LDB4ODgsMHgzMCwweDE2LDB4Y2YsMHgwMCwweGJiLDB4MDQsMHgyMCwweGMxLDB4MGEsMHgzMiwweDA2LDB4YzIsMHgwMCwweGIzIH19LAotIHsxNiwgMHhhZDkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4NDIsMHhlZiwweDEwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4YWRhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4NGEsMHgwMCwweDNlLDB4ODAgfX0sCi0gezE2LCAweGFkYjAsIDAsIHsweDJkLDB4YTAsMHgwYiwweGFhLDB4ODAsMHhmZSwweDAwLDB4MmIsMHg4MCwweDBjLDB4YTAsMHg0MywweGZiLDB4MzAsMHhmYSwweDAwIH19LAotIHsxNiwgMHhhZGMwLCAwLCB7MHgzZSwweDgwLDB4MGYsMHhhMCwweDgzLDB4ZmEsMHgwNCwweGZlLDB4MTgsMHgyMiwweDgwLDB4MGYsMHhhMCwweDAzLDB4ZmEsMHg4NCB9fSwKLSB7MTYsIDB4YWRkMCwgMCwgezB4ZjIsMHgwMCwweDMzLDB4YTIsMHgwZiwweGEwLDB4MDMsMHhmMiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHgyZiwweDgwLDB4MDMsMHhhMCwweDIwLDB4ZmMsMHgwMiwweDNlIH19LAotIHsxNiwgMHhhZGYwLCAwLCB7MHgwMCwweDFmLDB4ODQsMHgwMywweGEwLDB4MDAsMHhmOCwweDQwLDB4M2UsMHgwMCwweDRmLDB4ODAsMHgwMSwweGUwLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4YWUwMCwgMCwgezB4NDAsMHgzZSwweDAwLDB4MGQsMHg4MCwweDEzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGFlMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzYsMHgwMCwweGQ5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhhZTIwLCAwLCB7MHgwZiwweDkwLDB4MGIsMHgwNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NjgsMHg2YywweDk0LDB4MDMsMHhlNCwweDIwLDB4YjksMHg5MCB9fSwKLSB7MTYsIDB4YWUzMCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTQsMHgwMywweGU0LDB4MDAsMHgyOSwweDgwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweDI0LDB4MjAgfX0sCi0gezE2LCAweGFlNDAsIDAsIHsweGM5LDB4MDAsMHgzNiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZTUwLCAwLCB7MHg4MCwweDA0LDB4NjYsMHg1MCwweDg5LDB4MDAsMHgyMCwweDUwLDB4MDgsMHg5MCwweDAyLDB4MjQsMHgwOSwweGQ5LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YWU2MCwgMCwgezB4NDgsMHg0OCwweDkwLDB4MDYsMHhlNCwweDA0LDB4OTksMHhhMCwweDIyLDB4NDAsMHgwZCwweGI4LDB4MjIsMHg2NCwweDAwLDB4MDkgfX0sCi0gezE2LCAweGFlNzAsIDAsIHsweDUwLDB4MzIsMHg0MCwweDBiLDB4OTAsMHgwMiwweDI3LDB4OTAsMHg4OSwweDQwLDB4MmEsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhhZTgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4MDAsMHg5OSwweDAwLDB4NjYsMHg0MiB9fSwKLSB7MTYsIDB4YWU5MCwgMCwgezB4MGEsMHhkMCwweDEyLDB4MzQsMHgwMCwweDg1LDB4MDAsMHgyNiwweDQwLDB4NGEsMHg5MCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MDEgfX0sCi0gezE2LCAweGFlYTAsIDAsIHsweDI0LDB4NDAsMHg1OCwweDkwLDB4MTIsMHhjNCwweDAwLDB4MjksMHg0MCwweDJlLDB4NDAsMHgwYiwweDEwLDB4MGEsMHgyNCwweDgwIH19LAotIHsxNiwgMHhhZWIwLCAwLCB7MHg4OSwweDA1LDB4MjYsMHg0MSwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWVjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4ODAsMHg4MSwweDIwLDB4NjEsMHg0OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODEsMHg5NSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGFlZDAsIDAsIHsweDQwLDB4MGEsMHgzNiwweDAyLDB4YzQsMHgwMCwweGIxLDB4MjAsMHgwMCwweDQ4LDB4NDEsMHgxMCwweDQyLDB4NDQsMHgwMSwweGExIH19LAotIHsxNiwgMHhhZWUwLCAwLCB7MHgwMCwweDI0LDB4NDgsMHgwYiwweDEyLDB4MTIsMHgwNCwweDgwLDB4ODEsMHgyMCwweDI4LDB4NDgsMHgwYiwweDEyLDB4MDIsMHhjYSB9fSwKLSB7MTYsIDB4YWVmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZDgsMHg1MCwweDM2LDB4MDAgfX0sCi0gezE2LCAweGFmMDAsIDAsIHsweDBlLDB4ODUsMHgyMywweDIxLDB4NDIsMHg4YywweDU0LDB4MzQsMHgxNCwweDBlLDB4ODAsMHgwMiwweGUxLDB4NDAsMHhmOCwweDUwIH19LAotIHsxNiwgMHhhZjEwLCAwLCB7MHgzNiwweDE0LDB4MDQsMHg4MCwweDAzLDB4ZTEsMHg0NCwweGU4LDB4NTAsMHg3ZSwweDE1LDB4MGYsMHg4NSwweDAzLDB4MjEsMHg0MiB9fSwKLSB7MTYsIDB4YWYyMCwgMCwgezB4NGEsMHgwMCwweDM2LDB4MTQsMHgwZiwweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmMzAsIDAsIHsweDk4LDB4MWQsMHhjNCwweDQwLDB4ZjksMHgxMCwweDFlLDB4NDQsMHg0ZSwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNmIH19LAotIHsxNiwgMHhhZjQwLCAwLCB7MHhjMCwweDBkLDB4OTEsMHgwMywweGY0LDB4MDAsMHhkOSwweDE0LDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweDc0LDB4MDAsMHhkZCB9fSwKLSB7MTYsIDB4YWY1MCwgMCwgezB4MDAsMHg3YSwweDQ0LDB4MGYsMHg5MSwweDAzLDB4ZjQsMHg0MCwweGY5LDB4MzgsMHgzZiwweDQ0LDB4MGYsMHg5MywweDgzLDB4ZTcgfX0sCi0gezE2LCAweGFmNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZjYsMHg4MCwweGY5LDB4YTQsMHgzZiwweDY4IH19LAotIHsxNiwgMHhhZjcwLCAwLCB7MHgwZSwweDllLDB4NDMsMHg2NywweDgwLDB4ZDksMHhlNCwweDNmLDB4NDEsMHgwZiwweGQ4LDB4NDMsMHgwNCwweDAwLDB4ZWQsMHhjMCB9fSwKLSB7MTYsIDB4YWY4MCwgMCwgezB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhkNSwweDQwLDB4MzIsMHg0MCwweDBjLDB4OTAsMHgwMywweGY0LDB4MDAgfX0sCi0gezE2LCAweGFmOTAsIDAsIHsweGRkLDB4MDAsMHgzMiwweDQwLDB4MmMsMHg5YSwweDAzLDB4YzYsMHgwMSwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZmEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGU4LDB4YzAsMHgyZSwweDE0LDB4NGQsMHg4ZiwweDIyLDB4MjMsMHhjMCwweGY4LDB4ZjAsMHhhYSB9fSwKLSB7MTYsIDB4YWZiMCwgMCwgezB4MDAsMHgwYywweDgwLDB4MDMsMHhhMiwweGEwLDB4ZDgsMHg4MiwweDIyLDB4MDAsMHgwOCwweDgwLDB4MDIsMHhlOCwweDAwLDB4ZDggfX0sCi0gezE2LCAweGFmYzAsIDAsIHsweDgwLDB4MmEsMHgwMCwweDA4LDB4ODAsMHgwMiwweGU4LDB4MDgsMHg4OCwweGE4LDB4MzYsMHgwMCwweDQ4LDB4OGEsMHg4MiwweGNlIH19LAotIHsxNiwgMHhhZmQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiMSwweDQ4LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YWZlMCwgMCwgezB4MGEsMHgxMiwweDIyLDB4NDQsMHgwMCwweDkxLDB4MDQsMHhhNCwweDQxLDB4MGEsMHg5NCwweDA2LDB4MjQsMHgwMCwweDkxLDB4NDIgfX0sCi0gezE2LCAweGFmZjAsIDAsIHsweDI0LDB4NDEsMHgwOSwweDEwLDB4MDIsMHhlNCwweDAxLDB4OTEsMHgyMCwweDI0LDB4NDAsMHgwOSwweDEwLDB4MDIsMHhjNCwweDAxIH19LAotIHsxNiwgMHhiMDAwLCAwLCB7MHg5MSwweDAwLDB4MmMsMHg0MCwweDA5LDB4MTQsMHgwMiwweGMyLDB4MDEsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjAxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhhOSwweDAwLDB4MmUsMHg0MCwweDQ4LDB4MTAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDQwLDB4YWEgfX0sCi0gezE2LCAweGIwMjAsIDAsIHsweDQwLDB4MTgsMHhiMCwweDAyLDB4ZTQsMHgwOCwweDk5LDB4MDAsMHgyMiwweDQwLDB4MTksMHg5MCwweDQ2LDB4ZTQsMHg4MCwweDk5IH19LAotIHsxNiwgMHhiMDMwLCAwLCB7MHgwNCwweDJlLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAxLDB4OTksMHgwNCwweDI2LDB4NTAsMHgwOSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YjA0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHgwNiwweDNjLDB4NDAgfX0sCi0gezE2LCAweGIwNTAsIDAsIHsweDBhLDB4OTAsMHgwMywweDY0LDB4MDIsMHhkOSwweDAwLDB4YjYsMHg1MCwweDBlLDB4OTAsMHgyMywweDI2LDB4MDEsMHhmOSwweDAwIH19LAotIHsxNiwgMHhiMDYwLCAwLCB7MHgzNiwweDQwLDB4MjksMHg5NCwweDgzLDB4ZTQsMHgwMCwweGQ5LDB4NDgsMHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4YzcsMHgwMCB9fSwKLSB7MTYsIDB4YjA3MCwgMCwgezB4ZDEsMHgwNywweDNhLDB4NTAsMHhjZCwweDkwLDB4MDMsMHhlOCwweDA0LDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIwODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDA4LDB4ZTksMHgwMCwweDNlLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHhjNCwweDA4LDB4ZjEsMHgwMCwweDNhIH19LAotIHsxNiwgMHhiMDkwLCAwLCB7MHg2OCwweDhmLDB4OTAsMHgwMywweGE0LDB4NDEsMHhmOSwweDAwLDB4YmUsMHg0MCwweDBlLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjBhMCwgMCwgezB4YzAsMHgzOCwweDQwLDB4MmUsMHg5MCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDY4LDB4MDYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGIwYjAsIDAsIHsweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGQ4LDB4MDUsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiMGMwLCAwLCB7MHgwNywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZTgsMHg0MCwweDNlLDB4MTAsMHgwZCwweDgyLDB4MDMsMHg2MCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YjBkMCwgMCwgezB4YjIsMHgwMCwweDhkLDB4ODMsMHgwMywweGUwLDB4MDAsMHhkOCwweDUwLDB4M2EsMHgwMCwweDFlLDB4ODAsMHgwMywweGUxLDB4MjQgfX0sCi0gezE2LCAweGIwZTAsIDAsIHsweGY4LDB4MDAsMHhiMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMGYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyZiwweDg0LDB4NmEsMHhhMCwweDBiLDB4ZTgsMHgwOCwweDhlLDB4MDAsMHgzZCB9fSwKLSB7MTYsIDB4YjEwMCwgMCwgezB4ODAsMHg4OCwweGVjLDB4MDMsMHg2OCwweDEwLDB4YTYsMHgwMSwweDM2LDB4ODAsMHgwOCwweGE4LDB4MDAsMHhjOCwweDEwLDB4OGUgfX0sCi0gezE2LCAweGIxMTAsIDAsIHsweDEwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweGZiLDB4MjAsMHhiZSwweDUxLDB4MmEsMHg4MCwweDBiLDB4YTAsMHgwMiwweDgyIH19LAotIHsxNiwgMHhiMTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQxLDB4MjEsMHg5MywweDAwLDB4MmMsMHhmMCB9fSwKLSB7MTYsIDB4YjEzMCwgMCwgezB4MzksMHgzMCwweDA2LDB4MGMsMHgwMCwweGEzLDB4MDAsMHgyOCwweDA4LDB4MjgsMHhiYywweDAyLDB4MmMsMHgwMCwweDgzLDB4ODAgfX0sCi0gezE2LCAweGIxNDAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDMwLDB4MDAsMHhjYywweDAwLDB4OWEsMHg4MCwweDI4LDB4YzAsMHgwYSwweDMwLDB4MDIsMHhjZCwweDAwIH19LAotIHsxNiwgMHhiMTUwLCAwLCB7MHhiMywweDA0LDB4NjIsMHhjMSwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjE2MCwgMCwgezB4YTAsMHgwMSwweDFlLDB4MDQsMHgwNywweDExLDB4MmMsMHhkMCwweDBhLDB4MzIsMHgyMiwweGRjLDB4YzEsMHg4NywweDAwLDB4NmQgfX0sCi0gezE2LCAweGIxNzAsIDAsIHsweGQwLDB4MDgsMHgzNCwweDAyLDB4N2MsMHgwMCwweGE3LDB4MDgsMHgyNCwweGM4LDB4MDgsMHg3MCwweDAyLDB4ZGMsMHg4MCwweDBmIH19LAotIHsxNiwgMHhiMTgwLCAwLCB7MHgwMCwweDIxLDB4YzQsMHgwOCwweDczLDB4MDYsMHhkYywweDAwLDB4YjIsMHgwMCwweDYxLDB4YzgsMHgwYiwweDNhLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4YjE5MCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwYSwweDAwLDB4NTcsMHg4MSwweDJkLDB4YTAgfX0sCi0gezE2LCAweGIxYTAsIDAsIHsweDJkLDB4N2MsMHgwMiwweDNlLDB4ODIsMHhlMywweGUwLDB4M2IsMHhlMCwweDBjLDB4NzgsMHgwMywweDFlLDB4MjAsMHhjNywweDgwIH19LAotIHsxNiwgMHhiMWIwLCAwLCB7MHhiOSwweGU4LDB4MmMsMHg3OCwweDAzLDB4ZmYsMHg4MCwweGQ2LDB4ODAsMHgzYiwweGVjLDB4MDIsMHg3YSwweDAzLDB4ZGUsMHgwMCB9fSwKLSB7MTYsIDB4YjFjMCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4ZWMsMHg4ZiwweDdjLDB4MDMsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwMCwweDFlLDB4ODAsMHgyMywweGI2LDB4ODMsMHhlZCwweGEwLDB4ZGIsMHg2NCwweDNlIH19LAotIHsxNiwgMHhiMWUwLCAwLCB7MHhjMCwweDBlLDB4YjAsMHgwMywweGVkLDB4YzAsMHhmMiwweDAwLDB4M2UsMHhkNCwweDBhLDB4YjAsMHgwMywweGVjLDB4MzAsMHhlZSB9fSwKLSB7MTYsIDB4YjFmMCwgMCwgezB4NjQsMHgzZSwweGMwLDB4MDcsMHhiMCwweGMzLDB4ZTgsMHgwMCwweGZiLDB4MDEsMHgzZSwweGM4LDB4MGYsMHhiOCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGIyMDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGVmLDB4ODAsMHgzYiwweGUwIH19LAotIHsxNiwgMHhiMjEwLCAwLCB7MHgwZiwweGY4LDB4NjMsMHg3ZSwweDA0LDB4Y2YsMHhjMCwweGI3LDB4MjAsMHgwZSwweGY4LDB4MDMsMHhmYywweDAwLDB4YzcsMHg4MCB9fSwKLSB7MTYsIDB4YjIyMCwgMCwgezB4MzMsMHhmMCwweDBjLDB4Y2MsMHgwMywweGZlLDB4MDgsMHhmNywweGMxLDB4MzMsMHhlMCwweDRmLDB4ZjgsMHgwMywweGIyLDB4NDAgfX0sCi0gezE2LCAweGIyMzAsIDAsIHsweGZmLDB4YTAsMHgzMSwweGU2LDB4MGMsMHhmOCwweDAzLDB4MTAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMjQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGVmLDB4MDIsMHgyMSwweDQwLDB4MmQsMHg3MCwweDAyLDB4MWMsMHgwMCwweGY3LDB4MTAsMHgyOSB9fSwKLSB7MTYsIDB4YjI1MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MjIsMHhmYywweGMwLDB4YTcsMHgwMCwweDNkLDB4YzAsMHgwOCwweDQwLDB4MDIsMHhkYywweDAwLDB4YjcgfX0sCi0gezE2LCAweGIyNjAsIDAsIHsweDQwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGRhLDB4ODAsMHhiNywweDI0LDB4MjksMHhjNiwweDQ4LDB4ZjAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhiMjcwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDAwLDB4MjgsMHg4NCB9fSwKLSB7MTYsIDB4YjI4MCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MGMsMHgwMCwweDkzLDB4MDAsMHgyNSwweDgwLDB4MGEsMHg2MSwweDAyLDB4ZGMsMHgwMSwweGE3LDB4MTAgfX0sCi0gezE2LCAweGIyOTAsIDAsIHsweDI0LDB4YzAsMHgwOCwweDQwLDB4ODIsMHhkYywweDAwLDB4OWYsMHgwMCwweDI1LDB4YzQsMHgwYiwweDcwLDB4MDIsMHg5NCwweDI1IH19LAotIHsxNiwgMHhiMmEwLCAwLCB7MHhiNywweDMyLDB4MjMsMHhjNCwweDFiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjJiMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MGMsMHhhMywweDAwLDB4MjAsMHgwMCwweDI5LDB4MzAsMHgwYSwweDBjLDB4MDAsMHhhMywweDAwLDB4NmMgfX0sCi0gezE2LCAweGIyYzAsIDAsIHsweDAwLDB4MDgsMHgxMCwweDQyLDB4Y2QsMHgxMCwweGFhLDB4MDAsMHhhYywweGMwLDB4MDAsMHgwNCwweDAyLDB4Y2QsMHgwMCwweGJiIH19LAotIHsxNiwgMHhiMmQwLCAwLCB7MHgxMCwweDI0LDB4YzAsMHgwMywweDMwLDB4NDIsMHhjMywweDA5LDB4YjMsMHgwMCwweDJjLDB4ZDAsMHgwYSwweDMwLDB4MDIsMHgxOCB9fSwKLSB7MTYsIDB4YjJlMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MCwweDAwLDB4ZWYsMHgwMCwweDNhLDB4NDAgfX0sCi0gezE2LCAweGIyZjAsIDAsIHsweDA3LDB4ZjAsMHg0MywweDNjLDB4MDAsMHg5ZiwweGMwLDB4YjYsMHgxNCwweDBlLDB4ODAsMHgwNiwweGZjLDB4MDEsMHhjYiwweDAxIH19LAotIHsxNiwgMHhiMzAwLCAwLCB7MHgzNywweGMwLDB4YWMsMHhiNCwweDAyLDB4ZmMsMHgwMCwweGQ5LDB4MDEsMHgzNywweGMwLDB4NGIsMHhmMCwweDEzLDB4YWUsMHgwOCB9fSwKLSB7MTYsIDB4YjMxMCwgMCwgezB4ZmIsMHgwMCwweDMzLDB4ZDAsMHgyZSwweGYwLDB4MGIsMHgyYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzMjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwNSwweDNlLDB4NDAsMHgwZiwweDMwLDB4MDMsMHhhYywweDE0LDB4ZmIsMHhhMCwweDNhIH19LAotIHsxNiwgMHhiMzMwLCAwLCB7MHhjMCwweDBmLDB4ODQsMHg0MywweGVjLDB4MDEsMHhmOSwweDQwLDB4M2UsMHhjMCwweDBmLDB4YTIsMHgwMywweGVjLDB4MjEsMHhmOSB9fSwKLSB7MTYsIDB4YjM0MCwgMCwgezB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQsMHgyMCwweGYwLDB4MDAsMHhiYSwweGMwLDB4MGQsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGIzNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjgsMHgwMCwweGQ3LDB4MDEsMHgzNSwweDY4IH19LAotIHsxNiwgMHhiMzYwLCAwLCB7MHg2ZCwweGYwLDB4MDMsMHgzYywweDAxLDB4ZTcsMHgwMCwweDMzLDB4YzAsMHgwZCwweGMwLDB4MDMsMHhmYywweDI0LDB4Y2YsMHgwMiB9fSwKLSB7MTYsIDB4YjM3MCwgMCwgezB4MzcsMHhjMCwweDBkLDB4ZDIsMHgwMiwweGZjLDB4MDAsMHhkZiwweDAxLDB4MzMsMHhjMCwweDVlLDB4NzAsMHgzMywweDFjLDB4MTggfX0sCi0gezE2LCAweGIzODAsIDAsIHsweGNmLDB4NDEsMHgzMSwweGMyLDB4MGMsMHhmMCwweDAzLDB4NDAsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMzkwLCAwLCB7MHg4MSwweDAwLDB4NmMsMHgwMCwweDhiLDB4MDAsMHgyMiwweDUyLDB4MmEsMHhiMCwweDAzLDB4NmMsMHgwMCwweGFiLDB4MDAsMHgyOCB9fSwKLSB7MTYsIDB4YjNhMCwgMCwgezB4YzAsMHgwYSwweDhjLDB4MDIsMHhlYywweDEwLDB4OGIsMHhlMCwweDIyLDB4YzAsMHgwZiwweDgwLDB4MDIsMHhjYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGIzYjAsIDAsIHsweDgwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDJhLDB4MTAsMHhkOSwweDgwLDB4MjIsMHhjMCwweGM4LDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiM2MwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDI0LDB4MDEsMHg5YiwweDAwLDB4MjYsMHg4MCB9fSwKLSB7MTYsIDB4YjNkMCwgMCwgezB4MjksMHhiMCwweDYyLDB4MGMsMHgwMCwweGFiLDB4MDEsMHg2YSwweDAwLDB4MDgsMHg5OCwweDAyLDB4Y2MsMHgwMCwweDliLDB4ODMgfX0sCi0gezE2LCAweGIzZTAsIDAsIHsweDJlLDB4YzAsMHhjYiwweGI0LDB4MTIsMHhlYywweDAzLDB4OGIsMHg4MCwweDI4LDB4YzAsMHgwYSwweGIwLDB4MDYsMHhhMiwweDAwIH19LAotIHsxNiwgMHhiM2YwLCAwLCB7MHg4YiwweDAyLDB4NjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjQwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHg4MywweDE0LDB4MjAsMHgwMCwweDBhLDB4MzAsMHgwMiwweDRjLDB4MDAsMHg4MywweDAwLDB4MmEgfX0sCi0gezE2LCAweGI0MTAsIDAsIHsweDQwLDB4MGEsMHgxMCwweDAwLDB4Y2MsMHgwMiwweDkzLDB4MDAsMHgyOCwweGMwLDB4MGEsMHgyMCwweDAyLDB4ZWMsMHgwMCwweDAzIH19LAotIHsxNiwgMHhiNDIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MTYsMHgwMCwweDgwLDB4OTEsMHgwMCwweDYwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YjQzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAgfX0sCi0gezE2LCAweGI0NDAsIDAsIHsweDJkLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhhZiwweDAwLDB4M2EsMHg4MCwweDBkLDB4ODAsMHgwMywweGZjLDB4MDAsMHg1YiwweDAwIH19LAotIHsxNiwgMHhiNDUwLCAwLCB7MHgzNywweGMwLDB4MDksMHg5MCwweDAzLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzMywweGMwLDB4MGEsMHhmMCwweDAzLDB4YTQsMHgyMCB9fSwKLSB7MTYsIDB4YjQ2MCwgMCwgezB4Y2IsMHgwMCwweGIzLDB4YzAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI0NzAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA0LDB4ZmYsMHgyMCwweDBmLDB4MDAsMHgyNywweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwMCwweDJkIH19LAotIHsxNiwgMHhiNDgwLCAwLCB7MHgwMCwweDBiLDB4ZDAsMHgyNywweGZjLDB4MDAsMHhlZiwweDAwLDB4MzcsMHhjMCwweDBmLDB4YzAsMHg0MywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjQ5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDBiLDB4ZTAsMHgwMCwweGY1LDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGI0YTAsIDAsIHsweDA3LDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjQsMHhjMCwweGZjLDB4MjIsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhiNGIwLCAwLCB7MHgwYywweGQwLDB4NDMsMHgzNiwweDAwLDB4YzQsMHg4MSwweDM0LDB4YzAsMHgxYywweDg5LDB4MDcsMHhmMiwweDgwLDB4Y2YsMHg4MCB9fSwKLSB7MTYsIDB4YjRjMCwgMCwgezB4MzMsMHg2MCwweDBmLDB4NzksMHgwMywweDNjLDB4ZTAsMHhjZiwweDA4LDB4MzMsMHg0OCwweDBkLDB4YzQsMHgwMywweGYwLDB4NTAgfX0sCi0gezE2LCAweGI0ZDAsIDAsIHsweGRjLDB4OTAsMHgzNywweGNjLDB4MGYsMHhmOCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNGUwLCAwLCB7MHg4MCwweDEwLDB4ZTksMHg5MCwweGI4LDB4ODAsMHg3ZSwweGU0LDB4ODgsMHg5OSwweDBhLDB4MjYsMHgwOCwweGE5LDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4YjRmMCwgMCwgezB4ZjQsMHgyYywweDk5LDB4MDMsMHhhNywweDAyLDB4ODksMHg4MCwweDIyLDB4MzQsMHgwYiwweDlhLDB4MDMsMHg3ZCwweDAwLDB4ZGYgfX0sCi0gezE2LCAweGI1MDAsIDAsIHsweDQ4LDB4MmIsMHg2MCwweDA4LDB4MDUsMHgwMiwweGU1LDB4MDAsMHg4MiwweDIwLDB4MjIsMHhjNCwweDhiLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiNTEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM1LDB4MDAsMHhiMCwweDEwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4YjUyMCwgMCwgezB4MmEsMHgwMCwweDAyLDB4YTQsMHgwOCwweGE4LDB4MDQsMHhlMCwweDgwLDB4MGIsMHgwMCwweDAyLDB4YzQsMHg0MSwweGIyLDB4MDQgfX0sCi0gezE2LCAweGI1MzAsIDAsIHsweGE0LDB4MGEsMHgwYiwweGIwLDB4MDIsMHg4YywweDgxLDB4ODMsMHgyMCwweDYwLDB4NTAsMHg5OCwweDEyLDB4MTIsMHg4YiwweDgwIH19LAotIHsxNiwgMHhiNTQwLCAwLCB7MHg4OSwweDAwLDB4MmMsMHhjOCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjU1MCwgMCwgezB4YzAsMHgxMSwweGFjLDB4MjAsMHhiYiwweDAyLDB4MmEsMHhjMCwweDBhLDB4ODgsMHgwMiwweGE0LDB4MDgsMHhhOSwweDgwLDB4YTIgfX0sCi0gezE2LCAweGI1NjAsIDAsIHsweGUxLDB4MWIsMHg5YywweDIyLDB4ZTYsMHgwMCwweGI4LDB4NDAsMHgyNiwweDMwLDB4MGIsMHg5MCwweDAyLDB4Y2MsMHgwMSwweDkzIH19LAotIHsxNiwgMHhiNTcwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgzOSwweDk4LDB4ODIsMHhlYywweDE0LDB4OGIsMHg2NSwweDJhLDB4YzAsMHgwYiwweGIyLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YjU4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlNywweDAwLDB4YjgsMHg0OCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGI1OTAsIDAsIHsweDBlLDB4ODgsMHg0MywweDg0LDB4MDAsMHhlMywweGMxLDB4MzYsMHhlOCwweDBmLDB4OWMsMHgxMiwweGUyLDB4ODAsMHhmMywweGMwIH19LAotIHsxNiwgMHhiNWEwLCAwLCB7MHgzNiwweDcwLDB4NWYsMHhhOCwweDIzLDB4YWMsMHgwMSwweGNiLDB4MDQsMHgyMiwweDQwLDB4NGQsMHg4NCwweDAzLDB4ZTIsMHgwMCB9fSwKLSB7MTYsIDB4YjViMCwgMCwgezB4ZDgsMHgwMCwweDNlLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1YzAsIDAsIHsweGUwLDB4MDEsMHhiMywweDA5LDB4ZmUsMHgxMCwweDNlLDB4ODEsMHgwZCwweGMwLDB4MDMsMHg3NCwweDBjLDB4ZmYsMHgwMCwweDNkIH19LAotIHsxNiwgMHhiNWQwLCAwLCB7MHhjMSwweDhjLDB4ZDAsMHg4MywweDE0LDB4MDAsMHhjZCwweDIwLDB4M2EsMHg0MCwweDBkLDB4Y2EsMHgwMSwweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjVlMCwgMCwgezB4MDAsMHgxZiwweDQwLDB4MGUsMHhjMCwweDIzLDB4ZjIsMHg0NiwweGZlLDB4ODQsMHgzNywweGMwLDB4MGYsMHhkOCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGI1ZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGRkLDB4MDIsMHgzZCwweDQwIH19LAotIHsxNiwgMHhiNjAwLCAwLCB7MHgwZSwweDkwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHg0OCwweDNlLDB4ZDAsMHgwYywweDgwLDB4NjMsMHhhMiwweDA4LDB4Y2EsMHgwMCB9fSwKLSB7MTYsIDB4YjYxMCwgMCwgezB4MzIsMHgwOCwweDBjLDB4YjAsMHgwMywweGFjLDB4MDgsMHhlYiwweDAwLDB4M2UsMHg0MCwweDBjLDB4ZDQsMHg4MywweDU4LDB4MjAgfX0sCi0gezE2LCAweGI2MjAsIDAsIHsweGY5LDB4NDIsMHgzMiwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNjMwLCAwLCB7MHhjOCwweDA1LDB4MjgsMHgwMiwweGRiLDB4MDAsMHgyZSwweGUwLDB4MjgsMHgzYSwweDAyLDB4MmUsMHgwMCwweGRiLDB4NjAsMHg3NiB9fSwKLSB7MTYsIDB4YjY0MCwgMCwgezB4ZTAsMHgwZCwweDhjLDB4MDIsMHhlMCwweDAwLDB4ODgsMHgwMiwweDM2LDB4NTgsMHg2OCwweDE1LDB4ODMsMHg3YywweDA4LDB4YmYgfX0sCi0gezE2LCAweGI2NTAsIDAsIHsweDAwLDB4MmQsMHg2MCwweDA4LDB4OTAsMHgwMiwweGE5LDB4MDAsMHhiMywweDA1LDB4MjMsMHhjMCwweDA4LDB4YjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhiNjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHg4MCwweDAwLDB4MGMsMHhjMSB9fSwKLSB7MTYsIDB4YjY3MCwgMCwgezB4MDgsMHgxYywweDgyLDB4MDYsMHgwMCwweDkzLDB4YzAsMHgyMCwweGY2LDB4MGEsMHgyMCwweDAyLDB4MDgsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweGI2ODAsIDAsIHsweDI0LDB4NjAsMHgwOSwweDNjLDB4MDIsMHgwYywweDAwLDB4ODMsMHgwMCwweDJjLDB4NjAsMHgwOSwweDAxLDB4MTIsMHgwMCwweDQwIH19LAotIHsxNiwgMHhiNjkwLCAwLCB7MHhiMCwweDAwLDB4ZTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDcwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjZhMCwgMCwgezB4MjAsMHg0MSwweDBhLDB4NDAsMHg4NiwweDgxLDB4MmQsMHhlMCwweDU4LDB4MTgsMHgwYSwweDE2LDB4YTAsMHg5NywweDgwLDB4MjUgfX0sCi0gezE2LCAweGI2YjAsIDAsIHsweGU5LDB4MTksMHg3OCwweDgyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyNSwweGEwLDB4MTksMHhmOCwweDAyLDB4NWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhiNmMwLCAwLCB7MHg4MCwweDJkLDB4NjAsMHgyOCwweDQ4LDB4MTIsMHg5NiwweDAwLDB4YjQsMHg4MCwweDIxLDB4ZTAsMHgyOCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YjZkMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgzMCwweDNjLDB4YzIgfX0sCi0gezE2LCAweGI2ZTAsIDAsIHsweDBlLDB4MDAsMHgwMiwweDg0LDB4MDAsMHhlMywweDQwLDB4MjgsMHhlOCwweDRjLDB4MjksMHgwMywweDBjLDB4MDAsMHhkMywweDAwIH19LAotIHsxNiwgMHhiNmYwLCAwLCB7MHgzNCwweGM0LDB4MGQsMHgzMSwweDAzLDB4OGMsMHgwOCwweGUzLDB4MDAsMHgzYywweDQ2LDB4MGMsMHgyMCwweDAzLDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4YjcwMCwgMCwgezB4ZjIsMHgwMCwweDMyLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3MTAsIDAsIHsweDQwLDB4MTksMHhiOCwweDAwLDB4ZmYsMHgxMCwweDJmLDB4YzAsMHgwZiwweGMwLDB4MjMsMHhjNCwweDgwLDB4N2YsMHgxMCwweDNlIH19LAotIHsxNiwgMHhiNzIwLCAwLCB7MHhjMCwweDBmLDB4YjEsMHgwMywweGRjLDB4MDAsMHhlNywweDAwLDB4M2YsMHg4MCwweDA2LDB4ZjEsMHg0MywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YjczMCwgMCwgezB4MDgsMHg3ZCwweDUwLDB4MGUsMHhlMSwweDIzLDB4YjQsMHgwOCwweGZlLDB4MTAsMHgzZiwweGM0LDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGI3NDAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMiwweGNjLDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhiNzUwLCAwLCB7MHgyYywweGMwLDB4MDMsMHgwNCwweDAxLDB4Y2IsMHgwMCwweDMzLDB4NjAsMHgyYywweDkwLDB4MTMsMHhlOCwweDAwLDB4NzMsMHgwMCB9fSwKLSB7MTYsIDB4Yjc2MCwgMCwgezB4YjIsMHhjMSwweDBmLDB4YTAsMHgwMywweGVjLDB4ODAsMHhmYiwweDI4LDB4M2UsMHg1NCwweDFmLDB4ZDAsMHgwMywweGZlLDB4MDIgfX0sCi0gezE2LCAweGI3NzAsIDAsIHsweGM5LDB4ODAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4Y2EsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNzgwLCAwLCB7MHg0OCwweDExLDB4ODAsMHgwMCwweDg2LDB4MDAsMHgyZCwweDgwLDB4MDgsMHgyMCwweDAyLDB4MTQsMHgwOCwweDg3LDB4MDAsMHgyOSB9fSwKLSB7MTYsIDB4Yjc5MCwgMCwgezB4NDAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDIsMHg1YywweGEwLDB4OTcgfX0sCi0gezE2LCAweGI3YTAsIDAsIHsweDIwLDB4MmQsMHg0OCwweDBiLDB4NTAsMHgwMiwweGRjLDB4MTAsMHg4ZCwweDAwLDB4MjEsMHhjOCwweDBiLDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHhiN2IwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlmLDB4MDAsMHg4NSwweDgxLDB4MmMsMHg2MCB9fSwKLSB7MTYsIDB4YjdjMCwgMCwgezB4MTgsMHg1OCwweDAyLDB4ZGUsMHgyMCwweGI3LDB4ODIsMHgyOCwweDYwLDB4NWEsMHg3OCwweDUyLDB4ZGUsMHgxMCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGI3ZDAsIDAsIHsweDIxLDB4ZTAsMHg0YiwweDc4LDB4MDYsMHhkZSwweDQwLDB4YjcsMHhhMCwweDJkLDB4NjksMHg5YiwweDc4LDB4MTIsMHhjZSwweDAwIH19LAotIHsxNiwgMHhiN2UwLCAwLCB7MHg4NywweDgwLDB4ZTEsMHhlNCwweDBiLDB4NzgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjdmMCwgMCwgezB4NDgsMHgxNCwweGVlLDB4MDAsMHg4MywweDAwLDB4MmMsMHhjMiwweDA4LDB4MzYsMHgwMiwweDhjLDB4MDgsMHg4MywweGYwLDB4NjggfX0sCi0gezE2LCAweGI4MDAsIDAsIHsweDQwLDB4MGEsMHgzZSwweDAyLDB4Y2QsMHg0MCwweGIzLDB4MDAsMHgyMCwweGUwLDB4MGIsMHgzMiwweDA2LDB4NGMsMHgwMCwweDliIH19LAotIHsxNiwgMHhiODEwLCAwLCB7MHgwMCwweDBjLDB4NDAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDgwLDB4ODMsMHgwOCwweDIwLDB4YzAsMHgwYiwweGIxLDB4MDIsMHhkYSB9fSwKLSB7MTYsIDB4YjgyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4Y2UsMHgwOCwweDNmLDB4YjAgfX0sCi0gezE2LCAweGI4MzAsIDAsIHsweDBjLDB4ZTQsMHgyMywweGRhLDB4MDIsMHhkZSwweDQwLDB4YmIsMHhiMiwweDBlLDB4ZTIsMHg0MywweGZhLDB4MDAsMHhmZSwweDAwIH19LAotIHsxNiwgMHhiODQwLCAwLCB7MHgzMywweDkwLDB4MGIsMHhlMCwweDAzLDB4ZTgsMHgwMCwweGZhLDB4MDAsMHgzZSwweDgxLDB4MGIsMHhlMCwweDEzLDB4ZjksMHgwOCB9fSwKLSB7MTYsIDB4Yjg1MCwgMCwgezB4Y2UsMHg0MCwweDMyLDB4ODAsMHgwZiwweGE4LDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI4NjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDI0LDB4OTgsMHgwOCwweDNjLDB4MDQsMHgwZiwweDAwLDB4MGIsMHg2MCwweDAwLDB4ZjgsMHg0MCwweDJlIH19LAotIHsxNiwgMHhiODcwLCAwLCB7MHgwMywweDBkLDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwNiwweDBiLDB4ODAsMHgwMywweGUwLDB4MDAsMHhkOCB9fSwKLSB7MTYsIDB4Yjg4MCwgMCwgezB4MDAsMHgzYywweDAwLDB4MDMsMHg4YywweDIzLDB4ZTEsMHgwMCwweGY4LDB4MDAsMHg3ZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGI4OTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhiOGEwLCAwLCB7MHg4YywweDkwLDB4MDMsMHgyNSwweDAwLDB4ZTksMHg4MCwweDMyLDB4NDQsMHgwZiwweDk0LDB4MDIsMHhlNCwweDIwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4YjhiMCwgMCwgezB4MzIsMHg3MCwweDBmLDB4OWEsMHg0MywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBjLDB4MTAsMHgzMywweDI0LDB4MTAgfX0sCi0gezE2LCAweGI4YzAsIDAsIHsweGY5LDB4MDEsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODIsMHgyZSwweDQwLDB4MjgsMHg5MCwweDAyLDB4MjQsMHg4MiwweDgxLDB4YzAsMHhhMiB9fSwKLSB7MTYsIDB4YjhlMCwgMCwgezB4NzAsMHgwYiwweDljLDB4MDIsMHhlNCwweDAwLDB4MzEsMHg0MiwweGEyLDB4NjAsMHgwYiwweDk0LDB4ODIsMHhlNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGI4ZjAsIDAsIHsweDAwLDB4MmEsMHg0MCwweDA4LDB4OTQsMHhhMiwweDI1LDB4MDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiOTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHg4OSwweDY0LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YjkxMCwgMCwgezB4MDgsMHg5MCwweDQyLDB4YTQsMHgwMCwweDg5LDB4NjAsMHgyMiwweDQyLDB4MGIsMHg5MCwweDAyLDB4ZTYsMHgwMCwweGI5LDB4ODAgfX0sCi0gezE2LCAweGI5MjAsIDAsIHsweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhhNCwweDA0LDB4YjksMHgwMCwweDIyLDB4NDAsMHgyOCwweDkwLDB4MDIsMHgyNCwweDA0IH19LAotIHsxNiwgMHhiOTMwLCAwLCB7MHhiOSwweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjk0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDAwLDB4MmMsMHhjMSwweDQ4LDB4MTAsMHgwMiwweGE0LDB4MDIsMHg4MSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGI5NTAsIDAsIHsweDQwLDB4ODMsMHgzNCwweDAyLDB4YzQsMHgwMCwweGJiLDB4MDAsMHgyMCwweGQwLDB4MGIsMHgxNCwweDAyLDB4YzQsMHg4MCwweGIxIH19LAotIHsxNiwgMHhiOTYwLCAwLCB7MHgyMCwweGEwLDB4NjgsMHgxOCwweDE0LDB4MWEsMHgwZCwweDAwLDB4YjEsMHg0MCwweDJjLDB4NTAsMHgwYiwweDEwLDB4MDIsMHgwYSB9fSwKLSB7MTYsIDB4Yjk3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwMCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGI5ODAsIDAsIHsweDhjLDB4ODAsMHgwYiwweGEwLDB4MDQsMHhlOCwweDAwLDB4MzIsMHgwMCwweDA3LDB4ODAsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhiOTkwLCAwLCB7MHgzMiwweDAwLDB4MWYsMHg4MCwweDAzLDB4YTEsMHg0MCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4YjlhMCwgMCwgezB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5YjAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQ2LDB4ZmQsMHg0MCwweDNmLDB4NTAsMHgyMywweGQ0LDB4MTMsMHg3NCwweDA0LDB4ZjUsMHgwMiwweDNmIH19LAotIHsxNiwgMHhiOWMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwMywweGZkLDB4MDAsMHhiZCwweDAwLDB4MmYsMHg1MCwweDBmLDB4ZDAsMHgwMywweGU0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YjlkMCwgMCwgezB4MTAsMHgzZiwweDQ0LDB4MGYsMHhkNCwweDAzLDB4ZjUsMHgwOCwweGZkLDB4MDYsMHgzZSwweDUwLDB4MGYsMHhkMiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGI5ZTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZTYsMHg0MCwweGVkLDB4MDQsMHgzZSwweDQ4IH19LAotIHsxNiwgMHhiOWYwLCAwLCB7MHgwYywweGIyLDB4ODMsMHhmNCwweDAwLDB4YzEsMHgwMCwweDMyLDB4NDAsMHg4YywweGQwLDB4MDMsMHgzNCwweDAwLDB4ZmQsMHgwMCB9fSwKLSB7MTYsIDB4YmEwMCwgMCwgezB4MzcsMHg0MCwweDBmLDB4ZDAsMHgwMywweGU2LDB4MjAsMHhmOSwweDg4LDB4M2QsMHg2MiwweDBjLDB4ZDgsMHgwMywweGZlLDB4MjQgfX0sCi0gezE2LCAweGJhMTAsIDAsIHsweGMxLDB4MDAsMHgzZSwweDc4LDB4MGYsMHhkMCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYTIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweDg4LDB4NDAsMHgyZSwweDEwLDB4MDgsMHhjNCwweDIzLDB4YTAsMHgwOCwweDg4LDB4MDYsMHgyYSB9fSwKLSB7MTYsIDB4YmEzMCwgMCwgezB4MTQsMHgwOCwweDgwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MDIsMHhlMiwweDAwLDB4YjggfX0sCi0gezE2LCAweGJhNDAsIDAsIHsweDgwLDB4MmUsMHgwMCwweDA4LDB4OGMsMHgwMiwweGUzLDB4ODAsMHg4OCwweDAyLDB4MmUsMHgzOCwweDBiLDB4ODgsMHgwMiwweDBlIH19LAotIHsxNiwgMHhiYTUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4ODAsMHhhMSwweGMwLDB4MmQsMHg3MCB9fSwKLSB7MTYsIDB4YmE2MCwgMCwgezB4MDgsMHg1MCwweDQyLDB4YzQsMHgwMCwweGE5LDB4MDAsMHgyMCwweGUwLDB4MmEsMHgxMCwweDBhLDB4MDQsMHgxMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGJhNzAsIDAsIHsweDI0LDB4NDAsMHg0YiwweDEwLDB4MDYsMHhjNCwweDIwLDB4YjEsMHgwOCwweDZlLDB4NDAsMHgwYiwweDE2LDB4ODIsMHhjNCwweDIwIH19LAotIHsxNiwgMHhiYTgwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDBiLDB4OTIsMHg4MiwweDUyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmE5MCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHhhOSwweDAxLDB4MmUsMHg0MCwweDI4LDB4ZDAsMHgyMCwweGE0LDB4MDQsMHhhOSwweDAwLDB4MmEgfX0sCi0gezE2LCAweGJhYTAsIDAsIHsweDQwLDB4MWEsMHhiMCwweDEyLDB4MjQsMHgwMCwweGI5LDB4MGMsMHgyMiwweDQyLDB4MGIsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhiYWIwLCAwLCB7MHgwMCwweDZlLDB4NDAsMHgwYiwweDk2LDB4MDIsMHhlNCwweDExLDB4ODksMHgyMCwweDZlLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YmFjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweGMwLDB4YTksMHhjMCwweDNlLDB4NTAgfX0sCi0gezE2LCAweGJhZDAsIDAsIHsweDA4LDB4OWMsMHg4MywweGU0LDB4MDIsMHhlOSwweDAwLDB4YjIsMHg0MCwweDJhLDB4OTIsMHgxMiwweDI2LDB4NDAsMHhmOSwweDQwIH19LAotIHsxNiwgMHhiYWUwLCAwLCB7MHgzNiwweDcwLDB4MGYsMHg5NCwweDAzLDB4ZTQsMHgwNCwweGY5LDB4MDEsMHgzYywweDQwLDB4MGYsMHg5OCwweDAzLDB4ZTYsMHgwMiB9fSwKLSB7MTYsIDB4YmFmMCwgMCwgezB4YzksMHgyMiwweDNlLDB4NDAsMHgwZiwweDEwLDB4MDIsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiMDAsIDAsIHsweDI4LDB4MDEsMHg4NiwweDA0LDB4ZDksMHg0MCwweDFjLDB4NDAsMHgwZiwweDkyLDB4MjMsMHhhNCwweGIwLDB4ZGIsMHgwNCwweDNjIH19LAotIHsxNiwgMHhiYjEwLCAwLCB7MHhjMCwweDBkLDB4OWEsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YmIyMCwgMCwgezB4MDAsMHgzZSwweDQyLDB4MmMsMHg5MCwweDIzLDB4ZTQsMHg4MCwweGY5LDB4MDAsMHgzZSwweDQwLDB4OGYsMHg5MiwweDAzLDB4OTIgfX0sCi0gezE2LCAweGJiMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGM4LDB4MjAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiYjQwLCAwLCB7MHg0YywweGMwLDB4OGIsMHgyMCwweDAyLDB4YzgsMHgzMSwweDMyLDB4MjAsMHgyZCwweDg0LDB4MDMsMHhlMSwweDA0LDB4ZjgsMHg0OCB9fSwKLSB7MTYsIDB4YmI1MCwgMCwgezB4YmEsMHgwMCwweDBmLDB4ODksMHgwMywweGUwLDB4MDAsMHhjOCwweDAwLDB4MzIsMHgwMCwweDBkLDB4ODEsMHgxMywweDIwLDB4MTAgfX0sCi0gezE2LCAweGJiNjAsIDAsIHsweGY4LDB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MSwweDIzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYjcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDBlLDB4NDAsMHgyMiwweDgwLDB4MjgsMHhhNCwweDAyLDB4MTksMHgwMCwweDUyLDB4ODAsMHhhMiB9fSwKLSB7MTYsIDB4YmI4MCwgMCwgezB4ODAsMHg0ZCwweGVkLDB4ODIsMHhlOCwweDAwLDB4YjYsMHg0MiwweDIzLDB4YmQsMHgwYiwweGU4LDB4MDIsMHhlOCwweDA0LDB4ZGEgfX0sCi0gezE2LCAweGJiOTAsIDAsIHsweDAwLDB4MzcsMHg4MCwweDA4LDB4ZTAsMHgwMiwweDNhLDB4MjAsMHhiYSwweDAwLDB4MjIsMHg4MCwweDBiLDB4YTgsMHgwYSwweDBhIH19LAotIHsxNiwgMHhiYmEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDgwLDB4NjAsMHhjMCB9fSwKLSB7MTYsIDB4YmJiMCwgMCwgezB4MDgsMHgyOSwweDAyLDB4MGQsMHgwMCwweDkyLDB4NDAsMHgyNCwweGMwLDB4MDgsMHhiNCwweDAyLDB4Y2MsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGJiYzAsIDAsIHsweDY4LDB4ZTAsMHgxYiwweDMwLDB4MDIsMHhjYywweDAwLDB4OTMsMHgwMSwweDI0LDB4YzAsMHg2OSwweDM4LDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhiYmQwLCAwLCB7MHhiMywweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmJlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4NDAsMHg4MywweGMwLDB4MjAsMHg0MCwweDA4LDB4MjgsMHgwNiwweDljLDB4MTgsMHg5YywweDAyLDB4MjQgfX0sCi0gezE2LCAweGJiZjAsIDAsIHsweGMwLDB4MDksMHg3MCwweDAyLDB4ZDQsMHgwMCwweGI3LDB4MDAsMHgyMSwweGMwLDB4MGIsMHg3MCwweDAyLDB4Y2UsMHg0MCwweDk3IH19LAotIHsxNiwgMHhiYzAwLCAwLCB7MHhiMCwweDI1LDB4NDAsMHgwOCwweDc4LDB4MWEsMHg1OCwweDAwLDB4YmYsMHhhMiwweDY1LDB4YzgsMHgwYiwweDc4LDB4MDIsMHgyMCB9fSwKLSB7MTYsIDB4YmMxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgwZSwweDAyLDB4ODcsMHg4MCwweGIxLDB4YTAgfX0sCi0gezE2LCAweGJjMjAsIDAsIHsweDBjLDB4NjgsMHgwMywweDFhLDB4MDgsMHhkNiwweDkyLDB4MzUsMHhlNCwweDI4LDB4NzgsMHg0MiwweGQ2LDB4MTAsMHhmNSwweDgwIH19LAotIHsxNiwgMHhiYzMwLCAwLCB7MHgzOSwweGEwLDB4MGYsMHg3OCwweDIzLDB4ZGUsMHgzMCwweGQzLDB4YTIsMHgzNSwweGEwLDB4NGQsMHhlOCwweDAzLDB4NWUsMHgwMCB9fSwKLSB7MTYsIDB4YmM0MCwgMCwgezB4ZjcsMHhkMCwweDNkLDB4ZjgsMHgwZiwweGYwLDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJjNTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZmIsMHgwNCwweDNlLDB4MDAsMHgwYiwweGEwLDB4MDMsMHg0OCwweDA0LDB4ZmEsMHg0MSwweDNhIH19LAotIHsxNiwgMHhiYzYwLCAwLCB7MHg1MCwweDBmLDB4YjAsMHgwMywweGU0LDB4MDAsMHhmMSwweDAwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGVkLDB4ODgsMHhmYiB9fSwKLSB7MTYsIDB4YmM3MCwgMCwgezB4NGQsMHgzZSwweDAwLDB4MGYsMHhmMCwweDAzLDB4YmMsMHgwOCwweGZiLDB4MjAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGJjODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGRjLDB4ODAsMHhiMywweGUwIH19LAotIHsxNiwgMHhiYzkwLCAwLCB7MHgwYywweGQ4LDB4MDMsMHhjZSwweDAwLDB4YzgsMHhhMCwweDMxLDB4YTAsMHg4ZCwweGU5LDB4MDMsMHhiZSwweDAwLDB4YjIsMHg4MCB9fSwKLSB7MTYsIDB4YmNhMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4ZTgsMHg0MywweDdlLDB4MDQsMHgwZiwweDgxLDB4MzEsMHhlNCwweDBjLDB4ZDgsMHgwMywweGY2LDB4MDAgfX0sCi0gezE2LCAweGJjYjAsIDAsIHsweGZmLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhmOCwweDAzLDB4MDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiY2MwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGI0LDB4NDAsMHgzNSwweDQwLDB4MDgsMHg1MCwweDgyLDB4ZGUsMHg4MCwweGQ0LDB4OTAsMHgyMSB9fSwKLSB7MTYsIDB4YmNkMCwgMCwgezB4ZTAsMHgwZCwweDUxLDB4MDIsMHhkNCwweDQwLDB4YjYsMHhiMCwweDJiLDB4OTAsMHgwZSwweGU1LDB4MDIsMHg5YywweDQwLDB4ZDcgfX0sCi0gezE2LCAweGJjZTAsIDAsIHsweDIyLDB4MTksMHg1YywweDBkLDB4NzAsMHgwMiwweGQ4LDB4MDAsMHhiNywweDIwLDB4MmQsMHhjMCwweDBiLDB4ZjAsMHgwMywweDZhIH19LAotIHsxNiwgMHhiY2YwLCAwLCB7MHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg5MywweDEwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4YmQwMCwgMCwgezB4MDgsMHg1OCwweDAyLDB4ZGMsMHhjMCwweDk0LDB4MDAsMHgyMywweGQwLDB4MDgsMHg3MCwweGEwLDB4ZDQsMHgyMCwweGI1LDB4MDIgfX0sCi0gezE2LCAweGJkMTAsIDAsIHsweDI5LDB4ODAsMHgwOSwweDYwLDB4ODIsMHgwYywweDAwLDB4ODcsMHgwMiwweDI1LDB4YzAsMHgxOSwweDQwLDB4MDIsMHhkNCwweDAwIH19LAotIHsxNiwgMHhiZDIwLCAwLCB7MHhiNywweDAwLDB4NmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmQzMCwgMCwgezB4MjAsMHgxNCwweGVjLDB4MDAsMHhiMywweGMwLDB4MjAsMHgwMSwweDQ4LDB4MTgsMHgwMiwweGNjLDB4MDIsMHg4MSwweDQ0LDB4YTAgfX0sCi0gezE2LCAweGJkNDAsIDAsIHsweGMwLDB4ODksMHgzOCwweDAyLDB4YzcsMHg4MCwweGIxLDB4MDAsMHgyYywweDA5LDB4NGEsMHgwMCwweDYyLDB4YWMsMHgwOSwweDkzIH19LAotIHsxNiwgMHhiZDUwLCAwLCB7MHgwMSwweDI4LDB4NDAsMHgxOSwweDMwLDB4MDIsMHhjZCwweDEwLDB4YjMsMHg5MCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YmQ2MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDIwLDB4ZGIsMHg2MiwweDIyLDB4ZTAgfX0sCi0gezE2LCAweGJkNzAsIDAsIHsweDZjLDB4YTAsMHgwMywweGU0LDB4MDAsMHg5OCwweDAwLDB4MzIsMHhjMCwweGVjLDB4OTgsMHgyMywweGFlLDB4MDgsMHhmYiwweDA4IH19LAotIHsxNiwgMHhiZDgwLCAwLCB7MHgzYSwweDc4LDB4MDksMHg5MCwweDAzLDB4N2MsMHgxMCwweGNmLDB4MDAsMHgyNiwweDQwLDB4MGMsMHhiMCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YmQ5MCwgMCwgezB4ZmYsMHg4MCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDIwLDB4ZmIsMHg0OCwweDNjLDB4NjEsMHgwZiwweGEwLDB4NDMsMHhlZCwweDAwLDB4ZjgsMHgyNCwweDNlIH19LAotIHsxNiwgMHhiZGIwLCAwLCB7MHg1MCwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHhmYiwweDAwLDB4M2EsMHg1MCwweDBmLDB4ODAsMHg0MywweGVjLDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4YmRjMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGYsMHg0MCwweDAzLDB4ZjAsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMxLDB4MGYsMHg5MCwweDAzLDB4NjAgfX0sCi0gezE2LCAweGJkZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGRkLDB4YTAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhiZGUwLCAwLCB7MHgwYywweGUwLDB4MDEsMHhmYywweDAwLDB4ZGMsMHg5MSwweDM5LDB4YzAsMHgzYywweDQwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4YmRmMCwgMCwgezB4M2YsMHgwMCwweDBmLDB4ZDAsMHgwNywweGZjLDB4MDAsMHhjYiwweDAwLDB4M2QsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM4LDB4MjAgfX0sCi0gezE2LCAweGJlMDAsIDAsIHsweGNmLDB4MDIsMHgzZCwweGMwLDB4MGMsMHhkMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZTEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDAxLDB4NDAsMHgyMiwweDAwLDB4MjgsMHhhMCwweDAyLDB4Y2UsMHg4NiwweDgzLDB4NjQsMHgyMiB9fSwKLSB7MTYsIDB4YmUyMCwgMCwgezB4ZjQsMHgwOCwweDhjLDB4MGYsMHg2NCwweDAwLDB4YmIsMHgxMCwweDJlLDB4NjAsMHgwYiwweDljLDB4MDMsMHhhYywweDAxLDB4ZGIgfX0sCi0gezE2LCAweGJlMzAsIDAsIHsweDAwLDB4M2UsMHg2MCwweDA4LDB4OGYsMHgwMiwweDIzLDB4NDAsMHg4YiwweDAwLDB4M2EsMHhjMCwweDBkLDB4MTAsMHg0MywweDY4IH19LAotIHsxNiwgMHhiZTQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5OSwweDAwLDB4YTIsMHhjMCB9fSwKLSB7MTYsIDB4YmU1MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4YTYsMHgwNywweDk4LDB4MDAsMHgwMiwweGMyLDB4NDgsMHg4OCwweDAyLDB4MmMsMHgwMCwweGJhLDB4MDIgfX0sCi0gezE2LCAweGJlNjAsIDAsIHsweDZlLDB4NjAsMHgwYSwweDk4LDB4MDIsMHhlYywweDAwLDB4OGIsMHgwMSwweDJlLDB4NjAsMHgwOCwweDkwLDB4MDIsMHgwNSwweDAwIH19LAotIHsxNiwgMHhiZTcwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjEsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmU4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MSwweDAwLDB4MjAsMHg0MCwweDI4LDB4MTAsMHgyNiwweGNjLDB4ODAsMHg4MCwweDIwLDB4YTAgfX0sCi0gezE2LCAweGJlOTAsIDAsIHsweGNjLDB4MTgsMHgxNCwweDQyLDB4MDQsMHgwMCwweGIyLDB4MjAsMHg2YywweDQwLDB4MGIsMHgwMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhiZWEwLCAwLCB7MHgwMCwweDI4LDB4NDAsMHgyOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOSwweGIwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YmViMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZDksMHgwMCwweDIyLDB4ODAgfX0sCi0gezE2LCAweGJlYzAsIDAsIHsweDBjLDB4OTAsMHgwMywweGFjLDB4ODAsMHhkYSwweDI5LDB4MmEsMHhkMiwweDI4LDB4ODAsMHgwMiwweDI0LDB4MDAsMHhmYiwweDIwIH19LAotIHsxNiwgMHhiZWQwLCAwLCB7MHgzZSwweDAwLDB4MGYsMHg5MCwweDAyLDB4ZmMsMHgwMCwweDhmLDB4MDAsMHgyZSwweDQwLDB4MGMsMHg4MCwweDBiLDB4MjAsMHgwMiB9fSwKLSB7MTYsIDB4YmVlMCwgMCwgezB4Y2YsMHgwMCwweDNlLDB4YzAsMHgwYywweGIwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4MDAsMHgwZiwweGQwLDB4NjMsMHhmYywweDQ5LDB4ZjUsMHgwMCwweDNlIH19LAotIHsxNiwgMHhiZjAwLCAwLCB7MHhjMCwweDBiLDB4YzAsMHgwMSwweGY0LDB4MDAsMHg3ZiwweDQwLDB4M2YsMHg0MCwweDFmLDB4ZDAsMHgwMywweGJjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4YmYxMCwgMCwgezB4MDAsMHgzZiwweDQwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGJmMjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjIsMHg0MCwweGVjLDB4YTAsMHgzZiwweGUwIH19LAotIHsxNiwgMHhiZjMwLCAwLCB7MHgwZCwweDQ4LDB4MDMsMHg3ZCwweDgwLDB4ZjQsMHg4MCwweDMzLDB4NmMsMHgwZSwweGM4LDB4MDMsMHgzMiwweDAwLDB4ZGQsMHg5MCB9fSwKLSB7MTYsIDB4YmY0MCwgMCwgezB4M2IsMHhhMCwweDJkLDB4ZjAsMHgwMywweGZjLDB4YzAsMHhmZiwweDAwLDB4M2IsMHhlMCwweDhlLDB4ZjAsMHgwMywweDNjLDB4MDQgfX0sCi0gezE2LCAweGJmNTAsIDAsIHsweGVjLDB4NjAsMHgzMSwweDAwLDB4MGMsMHhmMCwweDAzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZjYwLCAwLCB7MHg4MCwweDEwLDB4ZWMsMHgwMCwweGQ5LDB4YzEsMHgyZSwweGUxLDB4MGQsMHg4OCwweDAyLDB4M2MsMHg4MCwweGY4LDB4ODAsMHgzNiB9fSwKLSB7MTYsIDB4YmY3MCwgMCwgezB4N2QsMHgxOCwweGEwLDB4MDIsMHgyOCwweGIwLDB4ZWEsMHgyMCwweDIyLDB4MjAsMHgwOCwweDc3LDB4MDIsMHhmZCwweDUwLDB4YmIgfX0sCi0gezE2LCAweGJmODAsIDAsIHsweDgwLDB4MjIsMHg0MCwweDBiLDB4ZjQsMHg0MiwweDNkLDB4ODAsMHg4OCwweDMxLDB4MjIsMHgxMiwweDA4LDB4ZjYsMHgwMiwweGUwIH19LAotIHsxNiwgMHhiZjkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4MCwweDExLDB4MmUsMHhjMSB9fSwKLSB7MTYsIDB4YmZhMCwgMCwgezB4MDgsMHgwMCwweDAyLDB4NGQsMHg4MCwweGI4LDB4MDAsMHgyMCwweDAwLDB4MGEsMHgwMiwweDgyLDB4MDAsMHgwMCwweDk5LDB4MjAgfX0sCi0gezE2LCAweGJmYjAsIDAsIHsweDIyLDB4YzAsMHgwOSwweDMwLDB4ODIsMHhjYywweDAwLDB4YjMsMHgwMCwweDI4LDB4Y2EsMHgwYiwweDM0LDB4ODIsMHgwZCwweDIwIH19LAotIHsxNiwgMHhiZmMwLCAwLCB7MHg4MCwweDAwLDB4YTAsMHg4YywweDA4LDB4MzQsMHg4MiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmZkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg5OSwweDgwLDB4MmUsMHhjMiwweDA5LDB4OTQsMHgwMiwweDJjLDB4MDAsMHhhOSwweDgwLDB4MjYgfX0sCi0gezE2LCAweGJmZTAsIDAsIHsweDYwLDB4MDgsMHgzOCwweDQyLDB4MjIsMHgyMCwweGJhLDB4NDEsMHg2MiwweDQ2LDB4M2IsMHhiMCwweDAyLDB4ZWMsMHgwMSwweGJiIH19LAotIHsxNiwgMHhiZmYwLCAwLCB7MHg4MCwweDIyLDB4NDAsMHgwYiwweGIwLDB4NDYsMHgwYywweDE4LDB4ODgsMHhjMCwweDIyLDB4MjIsMHgwOCwweGIwLDB4MDYsMHhmMCB9fSwKLSB7MTYsIDB4YzAwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhjYywweDAwLDB4YzksMHg4MSwweDNjLDB4YzEgfX0sCi0gezE2LCAweGMwMTAsIDAsIHsweDBjLDB4YTksMHgyMywweDZjLDB4MDAsMHhiMiwweDgwLDB4MzIsMHg3OCwweDBhLDB4OGEsMHgwYiwweDI2LDB4MDAsMHg5OSwweDAxIH19LAotIHsxNiwgMHhjMDIwLCAwLCB7MHgzMCwweGUwLDB4MGQsMHhiMCwweDAzLDB4ZWMsMHgwMCwweGI5LDB4MDAsMHgzYSwweGMwLDB4MWUsMHhiMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4YzAzMCwgMCwgezB4Y2IsMHg4MCwweDMyLDB4NjEsMHgwYywweGIwLDB4MTMsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDEwLDB4ZGQsMHgwMCwweDNmLDB4YzIsMHgwZiwweGU4LDB4MDMsMHhhYywweDAwLDB4ZmUsMHgwMCwweDNkIH19LAotIHsxNiwgMHhjMDUwLCAwLCB7MHg0MCwweDBmLDB4YzAsMHg0MywweGY4LDB4MTAsMHhlZiwweDE0LDB4YjcsMHhlMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAsMHhmNSB9fSwKLSB7MTYsIDB4YzA2MCwgMCwgezB4MDIsMHgzZiwweDQ0LDB4NGYsMHhiMCwweDRiLDB4ZmMsMHgwMiwweGQ0LDB4MDQsMHgzZCwweDQwLDB4MmYsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGMwNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGY5LDB4MDgsMHgzZSwweDYwIH19LAotIHsxNiwgMHhjMDgwLCAwLCB7MHgwZCwweGEwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHg1MCwweDMyLDB4MDAsMHgwYywweDg0LDB4MDMsMHhhNSwweDAwLDB4ZTksMHgwMCB9fSwKLSB7MTYsIDB4YzA5MCwgMCwgezB4M2EsMHhkOCwweDBmLDB4YjAsMHgwMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2EsMHhjMCwweDBmLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGMwYTAsIDAsIHsweGNiLDB4NDQsMHgzZSwweGQ0LDB4MGUsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMGIwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwOCwweGI5LDB4ODAsMHgyZSwweGMwLDB4MGEsMHgzMCwweDQyLDB4M2MsMHgwMCwweDg5LDB4MDQsMHg3NiB9fSwKLSB7MTYsIDB4YzBjMCwgMCwgezB4NjAsMHgwOCwweDkwLDB4NjIsMHgyMCwweDAwLDB4ODIsMHgwNCwweDIyLDB4ZDAsMHgwOCwweGYwLDB4NDMsMHg3YywweDAwLDB4YmIgfX0sCi0gezE2LCAweGMwZDAsIDAsIHsweDgyLDB4MjIsMHg0MCwweDBiLDB4ZjAsMHg0MiwweDNjLDB4MDAsMHg4YSwweGMwLDB4MmUsMHhjMSwweDA4LDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhjMGUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MTAsMHhiMiwweGQwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4YzBmMCwgMCwgezB4MjksMHgxOCwweDAyLDB4OGMsMHgwNCwweGExLDB4MDAsMHgyNCwweDljLDB4MDgsMHgxMCwweDAyLDB4ODAsMHgwMCwweGExLDB4MDEgfX0sCi0gezE2LCAweGMxMDAsIDAsIHsweDBjLDB4YzEsMHgyYiwweDMwLDB4NTIsMHg4YywweDA0LDB4YjMsMHgwMSwweDI4LDB4NDAsMHg0YiwweDMwLDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhjMTEwLCAwLCB7MHg5MCwweDIwLDB4MmMsMHgyMCwweDBhLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzEyMCwgMCwgezB4MjAsMHg0MSwweDFlLDB4MDAsMHhiNywweGEyLDB4MjUsMHhlOCwweDhhLDB4NjgsMHgwMiwweDFlLDB4MDAsMHg4NSwweDgwLDB4MjUgfX0sCi0gezE2LCAweGMxMzAsIDAsIHsweDgwLDB4ODgsMHhlOCwweDAyLDB4M2UsMHgwMCwweDg1LDB4ODAsMHgyZiwweGU0LDB4MjgsMHg3OCwweDAyLDB4ZGUsMHgwMCwweGI3IH19LAotIHsxNiwgMHhjMTQwLCAwLCB7MHg4MCwweDYxLDB4ZTAsMHgwMywweDc4LDB4MDIsMHg1ZSwweDgyLDB4YjcsMHg4MiwweDJkLDB4ZTAsMHgwOCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4YzE1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwZCwweDAwLDB4ZjAsMHgxMCwweDNjLDB4ODAgfX0sCi0gezE2LCAweGMxNjAsIDAsIHsweDBkLDB4MTAsMHg4MywweDhjLDB4MDAsMHhlMiwweDUwLDB4MjYsMHgwNCwweDBjLDB4MTEsMHgwMywweDg4LDB4NDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhjMTcwLCAwLCB7MHgzYywweGM0LDB4MGYsMHgzMCwweDAzLDB4OGMsMHgwMCwweGYzLDB4MDgsMHgzOCwweDQwLDB4MDcsMHgzMCwweDAzLDB4NmUsMHg0MCB9fSwKLSB7MTYsIDB4YzE4MCwgMCwgezB4ZDAsMHgwOCwweDNjLDB4ODgsMHgwZSwweDMwLDB4NDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMxOTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmIsMHgzNCwweDNjLDB4YzksMHg0ZSwweGIwLDB4MjMsMHhlZCwweDIwLDB4ZmIsMHgwNCwweDNmIH19LAotIHsxNiwgMHhjMWEwLCAwLCB7MHhjOCwweDhmLDB4NzAsMHg1MywweDRjLDB4MDAsMHhlYiwweDEwLDB4MzEsMHhjNSwweDBlLDB4ZjQsMHgwMywweDZkLDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4YzFiMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDBiLDB4YmMsMHgwMCwweGNkLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDgzLDB4ZDAgfX0sCi0gezE2LCAweGMxYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4Y2UsMHgwNCwweGM5LDB4MDQsMHhiMCwweGMxIH19LAotIHsxNiwgMHhjMWQwLCAwLCB7MHgwZiwweDk4LDB4MTMsMHg2YywweDkwLDB4Y2IsMHgwMiwweDNlLDB4YzAsMHg0ZiwweGIwLDB4NjMsMHhlNCwweDAwLDB4ZjEsMHg4MCB9fSwKLSB7MTYsIDB4YzFlMCwgMCwgezB4MTIsMHhjMCwweDBjLDB4YjUsMHgwMywweGVjLDB4YzAsMHhjZiwweDgzLDB4MzIsMHg0MCwweDBmLDB4YjMsMHgyMywweDJkLDB4YTQgfX0sCi0gezE2LCAweGMxZjAsIDAsIHsweGZiLDB4MDAsMHgzZSwweDAwLDB4MGYsMHhiNCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMjAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweGMwLDB4MmQsMHg2MCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHgzOSB9fSwKLSB7MTYsIDB4YzIxMCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkYywweDAwLDB4YjUsMHgwMCwweDIxLDB4YzAsMHgyYSwweDcwLDB4MTIsMHhjYywweDgwLDB4ODcgfX0sCi0gezE2LCAweGMyMjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDBiLDB4NzIsMHg1MiwweDFjLDB4MDAsMHhiNywweDAwLDB4MmQsMHg0MSwweDBiLDB4MzIsMHgwMiwweDEyIH19LAotIHsxNiwgMHhjMjMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweGJlLDB4MDAsMHg4MSwweGMwLDB4MjMsMHgyMCB9fSwKLSB7MTYsIDB4YzI0MCwgMCwgezB4MGIsMHhkOCwweDAyLDB4NWUsMHgwMCwweDA2LDB4YzAsMHgyZCwweGEwLDB4MGIsMHg3YywweDEyLDB4ZGUsMHgwOCwweGJmLDB4ODAgfX0sCi0gezE2LCAweGMyNTAsIDAsIHsweGExLDB4ZTIsMHgyYSwweDdhLDB4MDIsMHhkZSwweDAwLDB4OTMsMHg4MCwweDI1LDB4NjAsMHgwYiwweDc4LDB4MWUsMHg1ZSwweDUwIH19LAotIHsxNiwgMHhjMjYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhhMCwweDBiLDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzI3MCwgMCwgezB4NDgsMHgxNCwweGNlLDB4MDAsMHg4MywweDYwLDB4MjAsMHhjMCwweDA5LDB4MzEsMHgwMiwweDJjLDB4MDAsMHg5MywweDAwLDB4MjggfX0sCi0gezE2LCAweGMyODAsIDAsIHsweGMwLDB4MWIsMHhiMCwweDA2LDB4Y2MsMHg4MCwweGIzLDB4NDgsMHgyMCwweGYwLDB4MGEsMHgzMCwweDAyLDB4ZWMsMHgwMCwweDkzIH19LAotIHsxNiwgMHhjMjkwLCAwLCB7MHg4MCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHg0YywweDEwLDB4YjMsMHhjOCwweDJjLDB4ZDIsMHg4YiwweDMwLDB4MDIsMHgxMiB9fSwKLSB7MTYsIDB4YzJhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiYiwweDAwLDB4YzYsMHhjNCwweDMxLDB4ODEgfX0sCi0gezE2LCAweGMyYjAsIDAsIHsweDBmLDB4ZTAsMHgwMywweDY4LDB4MDAsMHhjZSwweDgwLDB4M2YsMHhhMiwweDBiLDB4ZTgsMHgwMywweGY5LDB4MDAsMHhmZSwweDQwIH19LAotIHsxNiwgMHhjMmMwLCAwLCB7MHgzMSwweDgwLDB4NmUsMHhhMCwweDA3LDB4ZTgsMHgwMCwweGRhLDB4MDAsMHgyNiwweDgxLDB4MGYsMHhhMCwweDAyLDB4NjgsMHgwMSB9fSwKLSB7MTYsIDB4YzJkMCwgMCwgezB4ZjYsMHhlMCwweDNkLDB4OTIsMHgwZiwweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweGMyLDB4ZjgsMHgwNCwweDNlLDB4MTQsMHgwZiwweDgwLDB4MTMsMHhlMCwweDEwLDB4ZjgsMHgwMSwweDNlIH19LAotIHsxNiwgMHhjMmYwLCAwLCB7MHgxMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MDAsMHhiOCwweDAwLDB4M2UsMHgwMCwweDQ3LDB4ODAsMHgwMywweGUwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YzMwMCwgMCwgezB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDA3LDB4YTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGYsMHg4MCwweDBiLDB4ZDIgfX0sCi0gezE2LCAweGMzMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDEsMHgzMiwweDQwIH19LAotIHsxNiwgMHhjMzIwLCAwLCB7MHg4YywweDkwLDB4MDMsMHhlNCwweDAwLDB4YzksMHgwMCwweDM2LDB4NDIsMHgwZiwweDkwLDB4MDMsMHhhNCwweDAwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4YzMzMCwgMCwgezB4M2UsMHg0MiwweDBkLDB4OTAsMHgwMywweDY0LDB4MDAsMHhkOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwYiwweDY0LDB4MDAgfX0sCi0gezE2LCAweGMzNDAsIDAsIHsweGY5LDB4OTAsMHgzMiwweDQxLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMzUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4YzgsMHhhMiwweDYwLDB4MGEsMHg5MiwweDAyLDB4ZTQsMHgwMCwweDg5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4YzM2MCwgMCwgezB4NTgsMHgwYiwweDkwLDB4MDIsMHgwNCwweDAwLDB4ZDksMHgwMCwweDJlLDB4NDIsMHgwOCwweDkwLDB4MDIsMHhlNCwweDA0LDB4ODkgfX0sCi0gezE2LCAweGMzNzAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDBiLDB4OTAsMHgwNiwweDI0LDB4MDQsMHhiOSwweDA4LDB4MmEsMHg0MCwweDQ4LDB4OTAsMHgxMiwweDIwIH19LAotIHsxNiwgMHhjMzgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDEwLDB4MjIsMHg0NCB9fSwKLSB7MTYsIDB4YzM5MCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQ1LDB4OGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGMzYTAsIDAsIHsweDJhLDB4NDAsMHgwOSwweDkwLDB4MDIsMHhlNCwweDAwLDB4OTksMHg4MCwweDJlLDB4NDAsMHgwYiwweDkwLDB4MjYsMHgyNCwweDAwIH19LAotIHsxNiwgMHhjM2IwLCAwLCB7MHhiOSwweDAxLDB4MjIsMHg3MCwweDA5LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzNjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDgsMHhiMSwweDIwLDB4MjAsMHg0MCwweDBhLDB4MTAsMHgwMiwweGM0LDB4ODAsMHg4MywweDAwLDB4MmMgfX0sCi0gezE2LCAweGMzZDAsIDAsIHsweDUwLDB4NGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDkxLDB4MDAsMHgyZSwweDQwLDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MSwweDgxIH19LAotIHsxNiwgMHhjM2UwLCAwLCB7MHhhMiwweDZjLDB4NDAsMHgwYiwweDEyLDB4MDIsMHgwNCwweDgwLDB4YjksMHgyMCwweDJhLDB4NDgsMHgyOSwweDEyLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzNmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MSwweDQwLDB4ZjgsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGM0MDAsIDAsIHsweDA4LDB4ODAsMHgwMywweGUxLDB4NDIsMHhjOCwweDAwLDB4MzIsMHgwMCwweDFmLDB4ODUsMHgwMywweGExLDB4NDAsMHhjOCwweDUwIH19LAotIHsxNiwgMHhjNDEwLCAwLCB7MHgzYSwweDAwLDB4OGQsMHg4NSwweDAzLDB4NjEsMHg0MCwweGQ4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHgwNSwweDAzLDB4MjEsMHg0MCB9fSwKLSB7MTYsIDB4YzQyMCwgMCwgezB4ZjgsMHg1MCwweDMyLDB4MTQsMHgwZCwweDg1LDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0MzAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDA0LDB4ZmQsMHgxMCwweDNmLDB4NDAsMHgwZiwweDUwLDB4MDMsMHhjNCwweDQwLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjNDQwLCAwLCB7MHg1MSwweDBmLDB4ZDAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAxLDB4M2QsMHg0MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhmZCB9fSwKLSB7MTYsIDB4YzQ1MCwgMCwgezB4MTAsMHgzZiwweDRhLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHg0MCwweGZkLDB4MTAsMHgzZiwweDQ0LDB4MGUsMHg5MSwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGM0NjAsIDAsIHsweDAyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YzUsMHgwMCwweGNkLDB4MDAsMHgzMSwweDQwIH19LAotIHsxNiwgMHhjNDcwLCAwLCB7MHgwZCwweGQwLDB4NDMsMHhlNCwweDAwLDB4Y2QsMHgwMCwweDMzLDB4NDAsMHg0ZiwweDExLDB4MDIsMHhlNCwweDA0LDB4YzEsMHgwMCB9fSwKLSB7MTYsIDB4YzQ4MCwgMCwgezB4M2QsMHg0MCwweDBjLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlZCwweGE0LDB4MzIsMHg1MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGM0OTAsIDAsIHsweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5MCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNGEwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweGQ4LDB4MDAsMHgzMiwweDAxLDB4MDAsMHg4MCwweDEyLDB4YzAsMHgwMCwweDQ4LDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YzRiMCwgMCwgezB4ODAsMHgwYiwweDhhLDB4MDIsMHhlMCwweDAwLDB4YTgsMHgwMCwweDJlLDB4MDAsMHgwZiwweDgwLDB4MDIsMHhlMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGM0YzAsIDAsIHsweDUwLDB4MzQsMHgyOCwweDBiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDBiLDB4ODAsMHgwMiwweGNlIH19LAotIHsxNiwgMHhjNGQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4YzRlMCwgMCwgezB4MDksMHgxOCwweDAyLDB4YzQsMHgwOCwweDIxLDB4MDAsMHgyOCwweDQwLDB4OGIsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4MDEgfX0sCi0gezE2LCAweGM0ZjAsIDAsIHsweDJlLDB4NDAsMHgxOCwweDEwLDB4MDIsMHhjNCwweDAwLDB4YTEsMHgwMSwweDIwLDB4NDgsMHgxYiwweDEwLDB4MDIsMHhjNCwweDAwIH19LAotIHsxNiwgMHhjNTAwLCAwLCB7MHhiMSwweDAwLDB4NmMsMHg0MCwweDBiLDB4MTAsMHgxMiwweGMyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzUxMCwgMCwgezB4MTgsMHgxMSwweGE0LDB4MDAsMHg5OSwweDgwLDB4YTIsMHg0MiwweDQ4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhhOSwweDJhLDB4MjYgfX0sCi0gezE2LCAweGM1MjAsIDAsIHsweDQ0LDB4MGIsMHg5MCwweDgyLDB4YzQsMHg4MSwweGI5LDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5MCwweDQyLDB4YzQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhjNTMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDkwLDB4MDIsMHhlNCwweDAwLDB4YjksMHgwMSwweDJlLDB4NDEsMHgwYiwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4YzU0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNSwweDIwLDB4YzksMHg4NCwweDMwLDB4NzAgfX0sCi0gezE2LCAweGM1NTAsIDAsIHsweDBkLDB4OTAsMHgxMywweGU0LDB4MDIsMHhlOSwweDAwLDB4MzIsMHg3MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSwweDQwIH19LAotIHsxNiwgMHhjNTYwLCAwLCB7MHgzYywweDQ4LDB4MGMsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGUxLDB4MDAsMHgzMiwweDQwLDB4MGYsMHg5MCwweDAxLDB4ZTQsMHgwMCB9fSwKLSB7MTYsIDB4YzU3MCwgMCwgezB4ZjksMHg5MCwweDNlLDB4NjAsMHgwZiwweDkwLDB4MjYsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM1ODAsIDAsIHsweDI4LDB4MDEsMHhhNSwweDAwLDB4ZjEsMHgwNCwweDNhLDB4NDQsMHg4ZiwweDkwLDB4MDMsMHhlNCwweDEwLDB4YzksMHgwNCwweDNlIH19LAotIHsxNiwgMHhjNTkwLCAwLCB7MHg2MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhlOSwweDIwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGU0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4YzVhMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4ODAsMHgzZSwweDY0LDB4MGYsMHg5MCwweDA3LDB4Y2EgfX0sCi0gezE2LCAweGM1YjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTEsMHgwMCwweGM4LDB4MDQsMHgzYSwweDAwIH19LAotIHsxNiwgMHhjNWMwLCAwLCB7MHgxZSwweDgwLDB4MDMsMHg4MCwweDAzLDB4YzgsMHg0MCwweDJhLDB4MDQsMHgxZiwweDgwLDB4MDMsMHgyMCwweDAwLDB4ODgsMHgwMCB9fSwKLSB7MTYsIDB4YzVkMCwgMCwgezB4MzIsMHgzMCwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4ODAsMHgwMywweGUwLDB4MDAgfX0sCi0gezE2LCAweGM1ZTAsIDAsIHsweGM4LDB4ODAsMHgzZSwweDIwLDB4MGYsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNWYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGFlLDB4ZDAsMHgzNywweDgwLDB4MDgsMHhlYywweDQ2LDB4MzgsMHgwMCwweGQ2LDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4YzYwMCwgMCwgezB4YTAsMHgwYiwweGEwLDB4NDEsMHg3OCwweDA0LDB4ZmEsMHgwMCwweDM3LDB4ODAsMHgwZCwweGEwLDB4MDIsMHhhOCwweDEwLDB4ZWUgfX0sCi0gezE2LCAweGM2MTAsIDAsIHsweDIxLDB4MmUsMHg4MCwweDA4LDB4YTAsMHgwMiwweGU4LDB4MDgsMHg4ZSwweDgwLDB4MmYsMHhhMCwweDhiLDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHhjNjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwMSwweDRjLDB4MDIsMHg4MywweGMwLDB4YTgsMHhlOCB9fSwKLSB7MTYsIDB4YzYzMCwgMCwgezB4NGEsMHgzNiwweDAyLDB4OGMsMHgwMCwweDEzLDB4YTAsMHgyOCwweGMyLDB4MGIsMHgzMCwweDA2LDB4MGMsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGM2NDAsIDAsIHsweDI0LDB4ODQsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgyMCwweDI4LDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHhjNjUwLCAwLCB7MHg4MywweDgwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweGNhLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzY2MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4NDQsMHhhZiwweDQwLDB4MjUsMHhjMiwweDQ4LDB4ZjgsMHg4MiwweDFjLDB4YzgsMHg5ZiwweDA4LDB4MjEgfX0sCi0gezE2LCAweGM2NzAsIDAsIHsweGMwLDB4OGIsMHhmOCwweDAyLDB4NWMsMHgwMCwweGJmLDB4YjAsMHgyNywweDgwLDB4MDksMHgzYSwweDAyLDB4OWMsMHgwMCwweGE1IH19LAotIHsxNiwgMHhjNjgwLCAwLCB7MHgwMiwweDJkLDB4ZTgsMHgwOSwweDcwLDB4MDIsMHhjZSwweDgwLDB4ODUsMHgwOCwweDJkLDB4YzIsMHgwYiwweDczLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YzY5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHg4MiwweGE5LDB4ZTAgfX0sCi0gezE2LCAweGM2YTAsIDAsIHsweDBhLDB4NzgsMHgwMiwweDllLDB4NDAsMHg5NywweDg0LDB4MzksMHhhMCwweDBiLDB4N2EsMHg4MywweDNmLDB4ODAsMHhkNywweDkxIH19LAotIHsxNiwgMHhjNmIwLCAwLCB7MHgzNSwweGEwLDB4MGQsMHg3YSwweDA5LDB4MWUsMHg0NCwweGY3LDB4ODAsMHgzZCwweGU4LDB4MmQsMHg3YSwweDAzLDB4ZGUsMHg4MiB9fSwKLSB7MTYsIDB4YzZjMCwgMCwgezB4YzYsMHg4MCwweDNkLDB4MjAsMHg0YiwweDdiLDB4MjMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2ZDAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZDMsMHgwMCwweDNlLDB4YzEsMHgwZiwweDMwLDB4MDMsMHhlZCwweDgwLDB4ZTMsMHgwMCwweDNlIH19LAotIHsxNiwgMHhjNmUwLCAwLCB7MHg4MCwweDBmLDB4YjYsMHgyMSwweGVjLDB4MDgsMHhkYiwweDIxLDB4M2UsMHg4MCwweDBmLDB4YjUsMHgwMywweDZjLDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YzZmMCwgMCwgezB4MDAsMHgzZSwweGRjLDB4MGUsMHhiMiwweDAzLDB4ZWQsMHg0MCwweGY5LDB4MDIsMHgzZSwweDgwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGM3MDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGNmLDB4ODAsMHgzZCwweGUwIH19LAotIHsxNiwgMHhjNzEwLCAwLCB7MHgwZiwweGM4LDB4NDMsMHhmZSwweDAwLDB4ZmUsMHg4NCwweDNmLDB4ZTAsMHgwZCwweGY4LDB4YzMsMHhmZiwweDEwLDB4YWYsMHg5MCB9fSwKLSB7MTYsIDB4YzcyMCwgMCwgezB4MzUsMHhhMCwweDBjLDB4ZmMsMHgwMywweDNlLDB4MTQsMHhlYywweDg0LDB4M2YsMHhmMCwweDBlLDB4ZmMsMHhjMywweGZmLDB4MDggfX0sCi0gezE2LCAweGM3MzAsIDAsIHsweDRmLDB4ODAsMHgzMywweGU0LDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNzQwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweGQ3LDB4YTIsMHgyZCwweGM0LDB4MGMsMHg0MSwweGMyLDB4ZGMsMHgwMCwweDc0LDB4MDAsMHgyNSB9fSwKLSB7MTYsIDB4Yzc1MCwgMCwgezB4ODAsMHgwZiwweDcyLDB4NDIsMHhkYywweDkwLDB4ZDcsMHgzOCwweDJkLDB4OTgsMHgwYSwweDcwLDB4MDIsMHgxYywweDA0LDB4ODYgfX0sCi0gezE2LCAweGM3NjAsIDAsIHsweDAwLDB4M2YsMHhjMCwweDBkLDB4NzAsMHgwMiwweGNjLDB4MDAsMHg4NiwweDA4LDB4MzcsMHhjNiwweDI4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhjNzcwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHg4NywweDYwLDB4MmQsMHhjMiB9fSwKLSB7MTYsIDB4Yzc4MCwgMCwgezB4MGEsMHg1MCwweDAyLDB4ZGMsMHgwMCwweGI2LDB4MTAsMHgyNSwweGMyLDB4MDksMHg3MCwweDg2LDB4ZGMsMHgzMCwweDk3LDB4MDAgfX0sCi0gezE2LCAweGM3OTAsIDAsIHsweDI1LDB4ODAsMHgwOCwweDMwLDB4MDIsMHg1YywweDAwLDB4ODcsMHgwOCwweDJkLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhjYywweDQwIH19LAotIHsxNiwgMHhjN2EwLCAwLCB7MHg4NiwweDAwLDB4MjEsMHgwMCwweDA5LDB4NzAsMHgwYSwweDAwLDB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzdiMCwgMCwgezB4MjAsMHgxNCwweGVkLDB4ODAsMHg5MywweDAwLDB4MGMsMHhlMSwweDI4LDB4MTgsMHgwMiwweGNjLDB4MDgsMHhhMCwweDAwLDB4MjQgfX0sCi0gezE2LCAweGM3YzAsIDAsIHsweDEyLDB4MWEsMHgzNCwweDAyLDB4Y2YsMHgwNCwweDkzLDB4NDAsMHgyYywweDgwLDB4MGEsMHhiMCwweDIyLDB4NGMsMHgwMiwweDgxIH19LAotIHsxNiwgMHhjN2QwLCAwLCB7MHg4MCwweDI4LDB4ZTAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4ODgsMHg4MiwweDI0LDB4MjAsMHgwOCwweGIwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YzdlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZiwweDIwLDB4YzksMHhlMCwweDJjLDB4ZjEgfX0sCi0gezE2LCAweGM3ZjAsIDAsIHsweDBlLDB4YmQsMHgwMywweGZjLDB4MDAsMHhiOSwweDQwLDB4MzYsMHg0MCwweDA5LDB4ZjUsMHgwMiwweGZkLDB4NDAsMHhmZiwweDgwIH19LAotIHsxNiwgMHhjODAwLCAwLCB7MHgzNiwweGEyLDB4MDgsMHhmMCwweDBiLDB4N2MsMHgwMCwweGViLDB4ODAsMHgyZiwweGUwLDB4MGEsMHhmMCwweDQzLDB4ZmMsMHgwMiB9fSwKLSB7MTYsIDB4YzgxMCwgMCwgezB4OGIsMHhkMCwweDMyLDB4ZjAsMHgwZCwweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4MjAsIDAsIHsweDgwLDB4MDAsMHhlYywweDEwLDB4ZmIsMHgwMCwweDNlLDB4YzgsMHgwZiwweDk0LDB4MTMsMHhlYywweDAwLDB4ZjksMHg0MCwweDM2IH19LAotIHsxNiwgMHhjODMwLCAwLCB7MHg0MCwweDFmLDB4YjAsMHgwMywweGVjLDB4MTAsMHhmYiwweDAxLDB4M2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGFjLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4Yzg0MCwgMCwgezB4MDAsMHgzZSwweGM0LDB4MGYsMHhiMCwweDAxLDB4ZWMsMHgwMCwweGY5LDB4MDQsMHgzZSwweDQ4LDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGM4NTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhjODYwLCAwLCB7MHgwYywweGUwLDB4MDcsMHhmYywweDAwLDB4ZmMsMHgwYSwweDI3LDB4MDAsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4ZmYsMHgwOCB9fSwKLSB7MTYsIDB4Yzg3MCwgMCwgezB4MzMsMHg4MCwweDBjLDB4ZjAsMHgwMCwweDJjLDB4MDAsMHg1ZiwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMSwweGZjLDB4MDAgfX0sCi0gezE2LCAweGM4ODAsIDAsIHsweGZlLDB4MDAsMHgyMywweDQwLDB4MGYsMHhiMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODkwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4ODYsMHgyZSwweGUwLDB4NDgsMHg4ZiwweDAyLDB4ZWMsMHgwOCwweGI4LDB4YTAsMHgzNiB9fSwKLSB7MTYsIDB4YzhhMCwgMCwgezB4MzAsMHg0YiwweGIwLDB4MDMsMHhhYywweDBjLDB4OWIsMHgwMiwweDNjLDB4YTAsMHgwYywweGIwLDB4NDMsMHg2YywweDAwLDB4YjEgfX0sCi0gezE2LCAweGM4YjAsIDAsIHsweDAwLDB4MjgsMHhjMCwweDBkLDB4YjAsMHgxMiwweGVjLDB4MTAsMHhiOSwweDgwLDB4YTIsMHg2MSwweDBiLDB4YjAsMHgwMiwweDIwIH19LAotIHsxNiwgMHhjOGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg5YiwweDg4LDB4MmUsMHhlMCB9fSwKLSB7MTYsIDB4YzhkMCwgMCwgezB4MDgsMHhhMCwweDAyLDB4ZWMsMHgwMSwweGJiLDB4ODAsMHgyNiwweDYyLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGIzLDB4MDEgfX0sCi0gezE2LCAweGM4ZTAsIDAsIHsweDJhLDB4MjEsMHgwOCwweGIwLDB4MTIsMHgyYywweDAwLDB4YjgsMHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MTIsMHhlYywweDE0IH19LAotIHsxNiwgMHhjOGYwLCAwLCB7MHhiOSwweDg0LDB4MjIsMHhhMiwweDBiLDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzkwMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg5MywweDAwLDB4MmMsMHhlMCwweDA4LDB4MDAsMHgwMiwweGNjLDB4MDksMHg5MSwweDAwLDB4MjAgfX0sCi0gezE2LCAweGM5MTAsIDAsIHsweDQwLDB4MGIsMHgzMCwweDA2LDB4NGMsMHgwNCwweDEzLDB4MDAsMHgyNiwweDAwLDB4MDgsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIyIH19LAotIHsxNiwgMHhjOTIwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgwMSwweDMwLDB4MDAsMHhjZCwweDAwLDB4YjAsMHgwMCwweDIwLDB4ODAsMHgwYiwweDMwLDB4MGEsMHgwMiB9fSwKLSB7MTYsIDB4YzkzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZGIsMHgyNCwweDZlLDB4YzAgfX0sCi0gezE2LCAweGM5NDAsIDAsIHsweDJjLDB4YTAsMHgwMiwweGZjLDB4MDAsMHhiYSwweDA0LDB4MjYsMHg0MCwweDRmLDB4ZjAsMHg1NywweGZjLDB4MDAsMHgzZiwweDAxIH19LAotIHsxNiwgMHhjOTUwLCAwLCB7MHgzYSwweDAwLDB4MmMsMHhmMCwweDAxLDB4M2MsMHgwMCwweGRiLDB4MDAsMHgzMywweGMwLDB4ODQsMHhmMCwweDAzLDB4ZmQsMHgwOCB9fSwKLSB7MTYsIDB4Yzk2MCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4MDAsMHgwZiwweGYwLDB4MDMsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM5NzAsIDAsIHsweGEwLDB4MTksMHhkYywweDAwLDB4ZWEsMHg0MCwweDNmLDB4MDAsMHgwNywweGMwLDB4MDMsMHhmYywweDA0LDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjOTgwLCAwLCB7MHg0MCwweDBmLDB4ZjAsMHgwMywweDljLDB4MDAsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBlLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4Yzk5MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHg4NCwweGY0LDB4MDAsMHgzZiwweDAwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGM5YTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAxLDB4ZjAsMHg4MCwweGZmLDB4MDAsMHgwMywweGMyIH19LAotIHsxNiwgMHhjOWIwLCAwLCB7MHgwZiwweGMyLDB4MDMsMHgzZSwweDAwLDB4ZGYsMHhjMCwweDNlLDB4YzAsMHg0ZCwweGRiLDB4MDIsMHhiMCwweGMwLDB4ZGMsMHgzMCB9fSwKLSB7MTYsIDB4YzljMCwgMCwgezB4M2YsMHhlMCwweDBmLDB4ZGIsMHgyMywweGY2LDB4MjAsMHhmZiwweDI2LDB4MzMsMHhlMCwweDBmLDB4NTIsMHgwMywweDVlLDB4MDAgfX0sCi0gezE2LCAweGM5ZDAsIDAsIHsweGZmLDB4ODAsMHgzMywweGMwLDB4NGMsMHg0OSwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOWUwLCAwLCB7MHg4MCwweDEwLDB4ZTEsMHhlMCwweGI3LDB4MDgsMHgyMywweGYwLDB4MGIsMHhhZCwweDBhLDB4MmUsMHgwMCwweDlhLDB4MDQsMHgyZSB9fSwKLSB7MTYsIDB4YzlmMCwgMCwgezB4YjAsMHgwOSwweDhmLDB4MDMsMHhhMCwweDQwLDB4YjksMHgzMCwweDJlLDB4YTAsMHgwYiwweDlmLDB4MDMsMHhhNywweDAwLDB4YmIgfX0sCi0gezE2LCAweGNhMDAsIDAsIHsweDgwLDB4MjYsMHhlMCwweDBiLDB4ZGQsMHgwMiwweDJlLDB4MDAsMHhiYiwweDgwLDB4MjIsMHhmNCwweDBhLDB4OTIsMHgwMiwweGEwIH19LAotIHsxNiwgMHhjYTEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4ODAsMHhiMywweDEwLDB4MjQsMHhjMCB9fSwKLSB7MTYsIDB4Y2EyMCwgMCwgezB4MGIsMHg4MCwweDAyLDB4YWMsMHgwMCwweGEzLDB4MjQsMHgyYywweGQwLDB4MDgsMHgxMCwweDA2LDB4YzAsMHg4MCwweGIyLDB4MDEgfX0sCi0gezE2LCAweGNhMzAsIDAsIHsweDJjLDB4ZWEsMHg0YiwweDAwLDB4MTIsMHhjMiwweDA0LDB4YjMsMHgxMCwweDA4LDB4YzAsMHgwYSwweDkwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHhjYTQwLCAwLCB7MHg5MywweDA0LDB4MjQsMHhjMCwweDA5LDB4ODIsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2E1MCwgMCwgezB4YzAsMHgxNSwweGE1LDB4MDAsMHhiYiwweDAwLDB4MjIsMHhjMCwweDBiLDB4ODAsMHgwMiwweGFjLDB4MDgsMHhiYiwweDE4LDB4MmUgfX0sCi0gezE2LCAweGNhNjAsIDAsIHsweGUwLDB4MTgsMHg4OCwweDAyLDB4ZWMsMHgwMSwweGJhLDB4MDAsMHgyZSwweDgwLDB4MGIsMHg5OCwweDg2LDB4ZTIsMHgwMCwweGJiIH19LAotIHsxNiwgMHhjYTcwLCAwLCB7MHgwMCwweDIyLDB4YzQsMHgwYiwweDkwLDB4MDIsMHg2YywweDAwLDB4YmIsMHgwMCwweGE2LDB4YzAsMHgwYiwweDkwLDB4MDAsMHhiMCB9fSwKLSB7MTYsIDB4Y2E4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTEsMHhlNywweDAwLDB4ZmIsMHgwMCwweGIyLDB4YzAgfX0sCi0gezE2LCAweGNhOTAsIDAsIHsweDBmLDB4YTgsMHgwMywweGFjLDB4MDIsMHhlYiwweDAwLDB4M2UsMHg2MCwweDBkLDB4OWUsMHgwMywweGVjLDB4MDAsMHhkOCwweDQwIH19LAotIHsxNiwgMHhjYWEwLCAwLCB7MHgzZSwweDQwLDB4MGYsMHg4OCwweDQzLDB4ZTIsMHgwMCwweGZiLDB4MjAsMHgzMiwweGMwLDB4MGYsMHgxMCwweDBiLDB4NmYsMHg5MCB9fSwKLSB7MTYsIDB4Y2FiMCwgMCwgezB4NWIsMHg4MiwweDM2LDB4YzAsMHgyZCwweDA4LDB4MDEsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhYzAsIDAsIHsweGUwLDB4MDEsMHhiNywweDA4LDB4ZjcsMHgwMCwweDNmLDB4YzAsMHgwZiwweGY5LDB4MDMsMHg3YywweDA4LDB4Y2YsMHg4MiwweDNjIH19LAotIHsxNiwgMHhjYWQwLCAwLCB7MHgwMCwweGFmLDB4ZDAsMHgyMSwweGJjLDB4MDgsMHhmZCwweDEwLDB4M2YsMHg4MCwweDhmLDB4YzAsMHgwMywweGE0LDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4Y2FlMCwgMCwgezB4MDEsMHhiZiwweGMwLDB4MDcsMHhkMCwweDAzLDB4YmQsMHgzMCwweGZmLDB4YTQsMHgzOCwweGMwLDB4MGUsMHhkYSwweDAzLDB4ZjggfX0sCi0gezE2LCAweGNhZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTgsMHgwMCwweGZiLDB4MDAsMHhiMiwweGMxIH19LAotIHsxNiwgMHhjYjAwLCAwLCB7MHgwZSwweDgxLDB4MDMsMHhlYywweDQwLDB4ZmIsMHg0NCwweDNhLDB4YzEsMHgwZSwweDk1LDB4MDMsMHhlMCwweDAwLDB4Y2IsMHg0MSB9fSwKLSB7MTYsIDB4Y2IxMCwgMCwgezB4MzIsMHg0ZCwweDBmLDB4ODEsMHgwMywweGUwLDB4MjAsMHhjOSwweDAwLDB4NzIsMHhlOCwweDQ0LDB4OTEsMHgwMywweDZkLDB4MDAgfX0sCi0gezE2LCAweGNiMjAsIDAsIHsweGNiLDB4MDIsMHgzZSwweGMwLDB4MGMsMHg4MCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYjMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweGJmLDB4MDAsMHgzMywweGM0LDB4MDgsMHgxZCwweDAzLDB4OGMsMHgwMCwweGJiLDB4OTgsMHgzNiB9fSwKLSB7MTYsIDB4Y2I0MCwgMCwgezB4NDgsMHg0ZCwweDk4LDB4MjIsMHhlZCwweDQwLDB4ZGIsMHgwMCwweDM2LDB4YjAsMHgwYiwweDk4LDB4MDIsMHhlMywweDAwLDB4ZGIgfX0sCi0gezE2LCAweGNiNTAsIDAsIHsweDAwLDB4MzIsMHhlMCwweDg4LDB4ZDgsMHgwMiwweDJjLDB4MDIsMHhjMywweDgwLDB4MmYsMHhjMCwweDA4LDB4OTAsMHgwMywweDcyIH19LAotIHsxNiwgMHhjYjYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwMSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHhmMCB9fSwKLSB7MTYsIDB4Y2I3MCwgMCwgezB4MTgsMHgwOCwweDAyLDB4NGYsMHg4NCwweGIxLDB4YzAsMHgyNCwweGMwLDB4ODksMHgwNiwweDAyLDB4YzQsMHgwMCwweDkxLDB4MDAgfX0sCi0gezE2LCAweGNiODAsIDAsIHsweDIwLDB4ZjAsMHgxYiwweDE4LDB4ODIsMHhjNiwweDAwLDB4OTMsMHgwMCwweDJjLDB4ZDEsMHgwOCwweDFlLDB4MDIsMHgwZSwweDQ0IH19LAotIHsxNiwgMHhjYjkwLCAwLCB7MHg5MywweDk0LDB4MmMsMHhjMCwweDA4LDB4MjAsMHgwMiwweGI4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2JhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDQsMHhiNywweDgwLDB4MjAsMHhlMiwweDA4LDB4NjgsMHgwNiwweDllLDB4ODAsMHhiZiwweDg0LDB4MjUgfX0sCi0gezE2LCAweGNiYjAsIDAsIHsweGE4LDB4MDksMHg2OCwweDAyLDB4YzYsMHgwMCwweDkzLDB4YTAsMHg2NSwweGU0LDB4MGIsMHg3OCwweDEyLDB4ZGUsMHgwMCwweDkzIH19LAotIHsxNiwgMHhjYmMwLCAwLCB7MHgwMCwweGExLDB4ZTAsMHgwOCwweGQ4LDB4MDIsMHgxZSwweGQwLDB4YTcsMHg4MCwweDJkLDB4ZTAsMHgwOCwweGY4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4Y2JkMCwgMCwgezB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwOCwweDAwLDB4YjMsMHgyMCwweDMwLDB4YzAgfX0sCi0gezE2LCAweGNiZTAsIDAsIHsweDBhLDB4MjIsMHgwMiwweGNlLDB4NDAsMHhmMywweGEwLDB4M2MsMHhlOCwweDBiLDB4MzAsMHgwMiwweGMxLDB4MDAsMHhkMCwweGMxIH19LAotIHsxNiwgMHhjYmYwLCAwLCB7MHgzMCwweGMwLDB4MGIsMHgyMSwweDEzLDB4Y2MsMHgyMSwweGQzLDB4MDAsMHgyYywweGMwLDB4MmMsMHgxMCwweDBiLDB4MGMsMHg4MCB9fSwKLSB7MTYsIDB4Y2MwMCwgMCwgezB4ZDMsMHg2MSwweDNjLDB4YzgsMHgyYywweDIwLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjMTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHg0MCwweDNiLDB4YzAsMHgwZiwweGUwLDB4MDMsMHhmYywweDAwLDB4ZjcsMHg1MCwweDdmIH19LAotIHsxNiwgMHhjYzIwLCAwLCB7MHhjNCwweDJlLDB4ZjAsMHgwMywweGZjLDB4NDAsMHhmZSwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHg0NywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4Y2MzMCwgMCwgezB4MDAsMHg3ZCwweGMyLDB4MGYsMHhkMCwweDAxLDB4YmMsMHg4MCwweDVmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGNjNDAsIDAsIHsweDAyLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTQsMHgwMCwweGZiLDB4YzAsMHgzMiwweGM4IH19LAotIHsxNiwgMHhjYzUwLCAwLCB7MHgwZSwweGUwLDB4MDMsMHhhYywweGEwLDB4ZWIsMHgyMCwweDMyLDB4NDAsMHg4YywweGEwLDB4MTMsMHgyYywweDAwLDB4ZDksMHgwMCB9fSwKLSB7MTYsIDB4Y2M2MCwgMCwgezB4M2UsMHg2MCwweDBjLDB4YjAsMHgwMywweGU4LDB4MDAsMHhmYSwweDgwLDB4MzAsMHhjMCwweDNjLDB4OTIsMHgwMywweGVmLDB4NjAgfX0sCi0gezE2LCAweGNjNzAsIDAsIHsweGMzLDB4MjAsMHgzMSwweGM0LDB4MGMsMHhhMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYzgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDMzLDB4MjAsMHgyMSwweGRhLDB4MGIsMHg3MCwweDQzLDB4OWMsMHgwMSwweGI1LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4Y2M5MCwgMCwgezB4MDAsMHgwYSwweGUwLDB4MDIsMHgxYywweDAwLDB4YjcsMHgwMCwweDJmLDB4YzAsMHgwZCwweDcwLDB4MDMsMHg5YywweDAwLDB4YjYgfX0sCi0gezE2LCAweGNjYTAsIDAsIHsweDAwLDB4MzEsMHhjOCwweDA4LDB4NTcsMHgwMiwweGRjLDB4MDAsMHg4NywweDUwLDB4MjEsMHhjMCwweDBhLDB4NzAsMHg0MiwweDkyIH19LAotIHsxNiwgMHhjY2IwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDlhLDB4MTEsMHhiNywweDkwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4Y2NjMCwgMCwgezB4MGIsMHg2OCwweDgyLDB4ZGUsMHgwOCwweGE3LDB4ODAsMHgyNCwweDYwLDB4MDgsMHg3MCwweDEyLDB4MTIsMHgwOCwweDk1LDB4ODAgfX0sCi0gezE2LCAweGNjZDAsIDAsIHsweDJkLDB4NjAsMHgwOSwweDZjLDB4MDIsMHhkZSwweDAwLDB4YjEsMHg4MCwweDIzLDB4ZTAsMHgwYSwweDU4LDB4NjIsMHhmZSwweDAwIH19LAotIHsxNiwgMHhjY2UwLCAwLCB7MHg5NywweGEwLDB4MjEsMHhlOCwweDA5LDB4ZTgsMHgwMiwweDMwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2NmMCwgMCwgezB4NDgsMHgxNCwweGNkLDB4MDAsMHhiMywweDAwLDB4MjAsMHhjMCwweDhiLDB4M2MsMHgwMiwweDhjLDB4MDAsMHhiYiwweDAwLDB4MjQgfX0sCi0gezE2LCAweGNkMDAsIDAsIHsweGM0LDB4MWEsMHgzZCwweDAyLDB4MmYsMHg4OCwweGIzLDB4NDgsMHgyYywweGUwLDB4ODksMHgzZSwweDAyLDB4OGQsMHg4MCwweDkzIH19LAotIHsxNiwgMHhjZDEwLCAwLCB7MHhkOSwweGE0LDB4NDAsMHg4OCwweDEwLDB4MDIsMHhjYywweDA0LDB4OTMsMHhjOCwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4Y2QyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZmEsMHgwMCwweGIyLDB4ODAgfX0sCi0gezE2LCAweGNkMzAsIDAsIHsweDBmLDB4ZTAsMHgwMywweGU4LDB4MDAsMHhlYSwweDgwLDB4MzcsMHhhMCwweDBjLDB4ZTgsMHgxMywweDNiLDB4MDgsMHhkZSwweDAxIH19LAotIHsxNiwgMHhjZDQwLCAwLCB7MHgzZiwweDgyLDB4MGMsMHhlMCwweDQzLDB4ZmEsMHg4MCwweGZlLDB4ODAsMHgzMSwweDI4LDB4MGMsMHhhMCwweDAzLDB4ZjAsMHgwMiB9fSwKLSB7MTYsIDB4Y2Q1MCwgMCwgezB4YzQsMHhjMCwweGIyLDB4ODAsMHgwZCwweGUwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNkNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MTAsMHgwYiwweDgwLDB4ODMsMHhlMCwweDAwLDB4ZjgsMHgzMCwweDNhIH19LAotIHsxNiwgMHhjZDcwLCAwLCB7MHgwMCwweDZkLDB4ODAsMHg4MywweGUxLDB4NDQsMHhiOCwweDA0LDB4M2UsMHgxMCwweDBmLDB4ODAsMHgxMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4Y2Q4MCwgMCwgezB4MDAsMHgzYSwweDEwLDB4NGYsMHgwNCwweDAzLDB4ZTMsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGNkOTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGM5LDB4MDAsMHgzOCwweDQwIH19LAotIHsxNiwgMHhjZGEwLCAwLCB7MHgwZiwweDFhLDB4MDMsMHgyZSwweDAwLDB4ZmIsMHhhMCwweDM2LDB4NjAsMHgwYywweDk4LDB4MDMsMHhlNiwweDA0LDB4ZDEsMHgwMCB9fSwKLSB7MTYsIDB4Y2RiMCwgMCwgezB4MzYsMHg0OCwweDBlLDB4OTEsMHgwMiwweGU2LDB4MDAsMHhmOSwweDAwLDB4M2UsMHgwMCwweDBjLDB4OTksMHgwMywweDYyLDB4NDAgfX0sCi0gezE2LCAweGNkYzAsIDAsIHsweGY4LDB4MDAsMHhhMCwweDY4LDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZGQwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMiwweDg5LDB4MDQsMHgyZSwweDY0LDB4ODgsMHg5NCwweDAyLDB4YTUsMHgwMCwweGI5LDB4ODAsMHgyMCB9fSwKLSB7MTYsIDB4Y2RlMCwgMCwgezB4NjQsMHgwZCwweDljLDB4MDIsMHhlNiwweDQyLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweDljLDB4MDIsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweGNkZjAsIDAsIHsweDQwLDB4M2EsMHg1MCwweDA4LDB4OWMsMHgwMiwweDI3LDB4MjAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMywweDYwIH19LAotIHsxNiwgMHhjZTAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4Y2UxMCwgMCwgezB4MGEsMHg5MCwweDgyLDB4MjUsMHg0YywweGI5LDB4MDAsMHgwMiwweDQwLDB4MDgsMHg5NiwweDAyLDB4ZTQsMHgxMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGNlMjAsIDAsIHsweDI2LDB4NTAsMHgxMywweDk0LDB4MDIsMHhlNCwweDQwLDB4YjksMHgwOCwweDJlLDB4NDAsMHgwOCwweDkwLDB4OGEsMHgyNCwweDAwIH19LAotIHsxNiwgMHhjZTMwLCAwLCB7MHhiOSwweDAxLDB4MmEsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2U0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4ODAsMHg4MSwweDQwLDB4MmMsMHhjOCwweDA4LDB4MTAsMHgwNiwweDg0LDB4MDAsMHhiMSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGNlNTAsIDAsIHsweDQ5LDB4MDksMHgxNCwweDQyLDB4Y2MsMHg4OSwweDgxLDB4MjAsMHgyMCwweDUwLDB4MGIsMHgxNCwweDQ2LDB4YzQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhjZTYwLCAwLCB7MHgwMCwweDJhLDB4YzAsMHgyOCwweDE0LDB4MDIsMHgwMSwweDAxLDB4YjAsMHgwNCwweDI4LDB4NDAsMHgzOCwweDk0LDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4Y2U3MCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ODgsMHgwMCwweDNhLDB4MDAgfX0sCi0gezE2LCAweGNlODAsIDAsIHsweDBlLDB4ODAsMHgyMywweDIwLDB4MDAsMHhmOCwweDUwLDB4YjIsMHgwMCwweDBjLDB4ODAsMHgxMiwweGUxLDB4NDAsMHhkOCwweDUwIH19LAotIHsxNiwgMHhjZTkwLCAwLCB7MHgzNiwweDAwLDB4MGUsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4MGMsMHg4MCwweDUzLDB4NjAsMHgwNCB9fSwKLSB7MTYsIDB4Y2VhMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgwYywweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlYjAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDQwLDB4ZjksMHg0NCwweDNlLDB4NDQsMHgwZiwweGQ0LDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNmIH19LAotIHsxNiwgMHhjZWMwLCAwLCB7MHg0NCwweDBmLDB4ZDQsMHg1MywweGY0LDB4NDQsMHhmZCwweDEwLDB4MmYsMHg0MCwweDBmLDB4ZjQsMHgwMywweGZkLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4Y2VkMCwgMCwgezB4NDAsMHgzYiwweDEwLDB4MGYsMHhkNCwweDIzLDB4ZDEsMHgwNCwweDdjLDB4NDMsMHgzNiwweDUwLDB4MGYsMHg1MCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGNlZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4YTYsMHgwMCwweGY5LDB4MTAsMHgyZSwweDYyIH19LAotIHsxNiwgMHhjZWYwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlNCwweDAwLDB4YmQsMHg0MiwweDNlLDB4NjEsMHgwZiwweGQwLDB4MDMsMHhmNiwweGMwLDB4YzksMHhhMiB9fSwKLSB7MTYsIDB4Y2YwMCwgMCwgezB4MmIsMHg0MCwweDBjLDB4ZDAsMHgwMywweDM0LDB4MDAsMHhmOSwweDgxLDB4M2UsMHg2OCwweDA4LDB4YzEsMHg0MywweGZhLDB4MDAgfX0sCi0gezE2LCAweGNmMTAsIDAsIHsweGY1LDB4ODAsMHgzZiwweDYyLDB4MGMsMHgxNCwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZjIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgyMCwweDg4LDB4MTEsMHgyZSwweDEwLDB4MGIsMHg4MCwweDAyLDB4ZTAsMHgwMCwweGI4LDB4ODIsMHgyZSB9fSwKLSB7MTYsIDB4Y2YzMCwgMCwgezB4MTAsMHgwYiwweDgwLDB4MDAsMHhlMywweGM0LDB4ODgsMHhmMCwweDIyLDB4MDAsMHgwYiwweDgwLDB4MGEsMHgyMCwweDAwLDB4ZTggfX0sCi0gezE2LCAweGNmNDAsIDAsIHsweDQwLDB4MmYsMHgxNCwweDA4LDB4ODgsMHgwMiwweGUyLDB4MDAsMHhiOCwweDAwLDB4MmUsMHgwMCwweDA4LDB4ODgsMHgwMiwweDhlIH19LAotIHsxNiwgMHhjZjUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNCwweGM1LDB4MDAsMHhhMSwweDAwLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4Y2Y2MCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxOCwweGIxLDB4MjIsMHg2YywweGQxLDB4MGIsMHgxMCwweDI2LDB4YzQsMHgwMCwweDgxLDB4MDggfX0sCi0gezE2LCAweGNmNzAsIDAsIHsweDJhLDB4NDAsMHg4OCwweDEwLDB4MDIsMHgwNCwweDA0LDB4YjUsMHhjMCwweDBmLDB4NDAsMHgwYiwweDAyLDB4MDIsMHg0MSwweGEwIH19LAotIHsxNiwgMHhjZjgwLCAwLCB7MHhiMSwweDQwLDB4MmMsMHg0MCwweDA4LDB4MTIsMHgwMiwweDAyLDB4MTEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2Y5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg4OSwweDA2LDB4MmUsMHg0MCwweDBiLDB4OTAsMHgxMiwweGU0LDB4MDAsMHhiOSwweDQwLDB4MmUgfX0sCi0gezE2LCAweGNmYTAsIDAsIHsweDQwLDB4MGIsMHhiMCwweDgyLDB4YzQsMHgwMiwweDg5LDB4NDQsMHgyMiwweDQwLDB4MGEsMHg5MCwweDAyLDB4MjQsMHgwMCwweGE5IH19LAotIHsxNiwgMHhjZmIwLCAwLCB7MHgwMCwweDI3LDB4NDgsMHgwOSwweGIwLDB4MTIsMHhlYywweDE4LDB4YjksMHgwMSwweDJlLDB4NDAsMHg0MCwweDkwLDB4MDIsMHg4NiB9fSwKLSB7MTYsIDB4Y2ZjMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDg0LDB4ZTksMHgwMSwweDNlLDB4NDAgfX0sCi0gezE2LCAweGNmZDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg3MiwweDBmLDB4OTAsMHgwMywweGU3LDB4NjAsMHg4OSwweDEwIH19LAotIHsxNiwgMHhjZmUwLCAwLCB7MHgzYSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwMCwweGY5LDB4NDQsMHgzYywweDQwLDB4MmQsMHg5MCwweDAzLDB4ZTcsMHg2MCB9fSwKLSB7MTYsIDB4Y2ZmMCwgMCwgezB4ZjksMHg3MSwweDNlLDB4NDAsMHgyOCwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwMDAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDQ4LDB4YTksMHgwMCwweDNlLDB4YzAsMHgwZiwweDlhLDB4NDMsMHhlYywweDAwLDB4ZjksMHgyMCwweDdlIH19LAotIHsxNiwgMHhkMDEwLCAwLCB7MHhjOCwweDBmLDB4OWEsMHgwNywweDY2LDB4MDAsMHg3OSwweDgwLDB4N2UsMHg0MCwweDBmLDB4MWMsMHgwMywweGU3LDB4MDAsMHhlOSB9fSwKLSB7MTYsIDB4ZDAyMCwgMCwgezB4YTAsMHgzZSwweDQwLDB4NDYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY5LDB4MDAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGQwMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4ODAsMHgwMCwweGY4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhkMDQwLCAwLCB7MHgwZiwweDgwLDB4MDMsMHhhMCwweDA4LDB4ZTgsMHg0MCwweDNhLDB4MTAsMHgwYywweDgzLDB4MDMsMHhhMSwweGMwLDB4ZjAsMHg0MCB9fSwKLSB7MTYsIDB4ZDA1MCwgMCwgezB4M2UsMHgwNiwweDBmLDB4ODQsMHgwMywweGUxLDB4MDAsMHhmOCwweDAwLDB4M2IsMHgwMCwweDBmLDB4ODEsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGQwNjAsIDAsIHsweGY4LDB4MTAsMHhiMiwweDAwLDB4NGMsMHg4MCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMDcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweGJhLDB4MDAsMHgyZSwweGIwLDB4MGIsMHhlOCwweDAyLDB4ZTksMHgwMCwweDNlLDB4OTAsMHgwMiB9fSwKLSB7MTYsIDB4ZDA4MCwgMCwgezB4ODEsMHgwOCwweGU0LDB4MTIsMHg3OCwweDAwLDB4YmEsMHgwMCwweDJkLDB4YjAsMHg4OSwweGU4LDB4MjIsMHhmOCwweDBjLDB4YmEgfX0sCi0gezE2LCAweGQwOTAsIDAsIHsweDAwLDB4NmUsMHg4MCwweDAzLDB4YzUsMHgwMywweDMwLDB4MDAsMHhiYSwweDAwLDB4MjIsMHhhOCwweDA4LDB4YTAsMHgyMiwweDhhIH19LAotIHsxNiwgMHhkMGEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHhiMywweDAwLDB4MjgsMHhlOCB9fSwKLSB7MTYsIDB4ZDBiMCwgMCwgezB4MWIsMHgzMSwweDEyLDB4OGMsMHhjNCwweGEzLDB4OTIsMHgyYywweDQwLDB4ODgsMHgzNCwweDA2LDB4OGUsMHgwMCwweDkzLDB4MDAgfX0sCi0gezE2LCAweGQwYzAsIDAsIHsweDJjLDB4ZjAsMHgxOSwweDMxLDB4YTIsMHhjYywweDA0LDB4YjMsMHgwMCwweDI4LDB4ODAsMHgwMSwweDM4LDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhkMGQwLCAwLCB7MHhiMywweDgwLDB4MjAsMHhlMCwweDBhLDB4YjAsMHgxMiwweDAyLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDBlMCwgMCwgezB4YTAsMHgwMSwweDFjLDB4MDAsMHhiNywweDE0LDB4MmQsMHg0MiwweDBiLDB4NjAsMHgwMiwweGRjLDB4MDAsMHhiNywweDgxLDB4MjcgfX0sCi0gezE2LCAweGQwZjAsIDAsIHsweGUwLDB4MTgsMHg2MCwweDAyLDB4NTgsMHgxOCwweGI3LDB4MjIsMHgyZCwweDgwLDB4MDksMHg3MCwweDIyLDB4ZGMsMHgwMCwweGI3IH19LAotIHsxNiwgMHhkMTAwLCAwLCB7MHgwMCwweDJkLDB4ODAsMHgwYiwweDNiLDB4MDIsMHgxZCwweGQwLDB4YmYsMHg4MCwweDI4LDB4YzAsMHg4YSwweGYyLDB4MDIsMHhhMCB9fSwKLSB7MTYsIDB4ZDExMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZiwweDgwLDB4ZjcsMHhhMCwweDM5LDB4ZTIgfX0sCi0gezE2LCAweGQxMjAsIDAsIHsweDBmLDB4NjgsMHgwMywweDllLDB4MDAsMHhlZCwweDg0LDB4M2QsMHhlMiwweDQ0LDB4NzgsMHgwMywweDllLDB4MDAsMHhmNywweGI0IH19LAotIHsxNiwgMHhkMTMwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg2OCwweDAzLDB4ZDYsMHgwMCwweGY2LDB4ODAsMHgzOSwweGUwLDB4MGYsMHg3OSwweDAzLDB4NWUsMHg5MCB9fSwKLSB7MTYsIDB4ZDE0MCwgMCwgezB4ZjcsMHg4MSwweDMxLDB4NjAsMHgyZSwweDdjLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQxNTAsIDAsIHsweDA4LDB4MWQsMHhhZCwweDAwLDB4ZmIsMHg0MiwweDNlLDB4YzgsMHgwZiwweGEwLDB4MDMsMHhlZCwweGEwLDB4YmIsMHgwMCwweDM4IH19LAotIHsxNiwgMHhkMTYwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgwMywweDY4LDB4MDAsMHhmYiwweDExLDB4M2UsMHg0MCwweDA5LDB4YjAsMHg0MSwweGVjLDB4MDAsMHhmYSB9fSwKLSB7MTYsIDB4ZDE3MCwgMCwgezB4MDIsMHgzZSwweGMwLDB4MGYsMHhiMiwweDBiLDB4ZWQsMHg4MCwweDNiLDB4MDAsMHgzNiwweDQwLDB4MGQsMHhiMCwweDIzLDB4NDIgfX0sCi0gezE2LCAweGQxODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgwMCwweGNmLDB4ZDAsMHgzMywweGU0IH19LAotIHsxNiwgMHhkMTkwLCAwLCB7MHg0ZiwweGY5LDB4MDMsMHhkZSwweDQwLDB4ZGMsMHg4MCwweDM2LDB4ZTQsMHgwYywweGI5LDB4MTMsMHhmZSwweDAwLDB4Y2YsMHg5MCB9fSwKLSB7MTYsIDB4ZDFhMCwgMCwgezB4MzcsMHhlNSwweDBmLDB4ZjgsMHg0MywweGZlLDB4MDAsMHhjZiwweDkyLDB4M2YsMHhhNCwweDBmLDB4NzgsMHgwMywweDFmLDB4MDAgfX0sCi0gezE2LCAweGQxYjAsIDAsIHsweGM1LDB4ODAsMHgzMywweDYwLDB4MGMsMHhmOCwweDIwLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMWMwLCAwLCB7MHhhOCwweDExLDB4YmMsMHgwMCwweDBmLDB4MTAsMHgyMSwweDgxLDB4MGIsMHg2MCwweDAzLDB4ODQsMHgwMCwweDhiLDB4MDgsMHgyMSB9fSwKLSB7MTYsIDB4ZDFkMCwgMCwgezB4NjAsMHgwYSwweDdiLDB4MDMsMHg5OCwweDAwLDB4OGIsMHgxMCwweDI5LDB4ODQsMHgwZSwweDY0LDB4MjIsMHhkYywweDQwLDB4ZDcgfX0sCi0gezE2LCAweGQxZTAsIDAsIHsweDAyLDB4MmQsMHg4NCwweDBiLDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NSwweDE4LDB4MjEsMHg0MCwweDBhLDB4ZjAsMHgyMiwweGFhIH19LAotIHsxNiwgMHhkMWYwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4MDAsMHhhNywweDE0LDB4NjksMHhjMCB9fSwKLSB7MTYsIDB4ZDIwMCwgMCwgezB4MWEsMHg2MCwweDEyLDB4ZmMsMHgwMSwweGE0LDB4MTAsMHgyZCwweGMwLDB4MGEsMHg1MiwweDAyLDB4NDUsMHg0MCwweDg3LDB4MGMgfX0sCi0gezE2LCAweGQyMTAsIDAsIHsweDIxLDB4ODAsMHgxYiwweDYwLDB4ODIsMHhkNCwweDAwLDB4ODYsMHgwMywweDI1LDB4ZTAsMHgxYiwweDcwLDB4MDIsMHg1YywweDQwIH19LAotIHsxNiwgMHhkMjIwLCAwLCB7MHg5ZCwweDAwLDB4MjksMHg0MCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDIzMCwgMCwgezB4MjAsMHgxNCwweGNkLDB4MDAsMHhhMywweDAwLDB4MjgsMHhjMCwweDFiLDB4MjAsMHgyMiwweDhjLDB4MTEsMHhhMywweDAwLDB4NjggfX0sCi0gezE2LCAweGQyNDAsIDAsIHsweGY2LDB4MGEsMHgzYywweDA2LDB4ODIsMHgwMCwweDgzLDB4ODAsMHgyOCwweDg0LDB4MGEsMHg4YywweDgyLDB4Y2MsMHg0NCwweDkyIH19LAotIHsxNiwgMHhkMjUwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg0ZSwweDAwLDB4OTEsMHgwMCwweDI4LDB4NDAsMHgwYSwweDMwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZDI2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiZSwweDIyLDB4ZWYsMHgwNCwweGJhLDB4YzAgfX0sCi0gezE2LCAweGQyNzAsIDAsIHsweDBmLDB4MTQsMHg5MywweGVjLDB4MDIsMHhmMSwweGMzLDB4M2UsMHhmMCwweDBlLDB4OTAsMHg4MywweDY2LDB4MDAsMHhjZiwweGQyIH19LAotIHsxNiwgMHhkMjgwLCAwLCB7MHgzMiwweDUwLDB4MGYsMHg5YywweDAzLDB4Y2IsMHgwMCwweGM5LDB4ODAsMHgzZSwweDI4LDB4MGYsMHhiMCwweDAzLDB4NGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDI5MCwgMCwgezB4ZDEsMHhjMCwweGFhLDB4YzAsMHgwYywweDcxLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyYTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDIwLDB4ZGIsMHgwMCwweDI2LDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlYywweDA4LDB4MWIsMHgwMCwweDM2IH19LAotIHsxNiwgMHhkMmIwLCAwLCB7MHhjMCwweDBmLDB4ODYsMHgwMSwweGU1LDB4NDAsMHhmYiwweDAyLDB4M2EsMHg0OCwweDBlLDB4OTQsMHgwMywweGVjLDB4ODAsMHhmMSB9fSwKLSB7MTYsIDB4ZDJjMCwgMCwgezB4ODQsMHgzZSwweDAwLDB4NGYsMHhiMCwweDAzLDB4YWQsMHhjMCwweGViLDB4MjAsMHgzNiwweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfX0sCi0gezE2LCAweGQyZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZGMsMHgwMCwweGNmLDB4MDAsMHgzZiwweDYwIH19LAotIHsxNiwgMHhkMmUwLCAwLCB7MHgwYywweGUwLDB4ODMsMHgzZSwweDgwLDB4ZWQsMHgwOCwweDMzLDB4ZDAsMHg4ZiwweDUwLDB4MDMsMHg5ZSwweDAwLDB4ZGYsMHgwMCB9fSwKLSB7MTYsIDB4ZDJmMCwgMCwgezB4MzMsMHg0MCwweDBjLDB4YzAsMHgwMywweDMwLDB4MDAsMHhjYywweDEwLDB4MzMsMHg2OCwweDBjLDB4ZjAsMHgwMywweDNjLDB4ODQgfX0sCi0gezE2LCAweGQzMDAsIDAsIHsweDhkLDB4OTAsMHgzMCwweDQwLDB4MGMsMHhmMCwweDAzLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMzEwLCAwLCB7MHg4MSwweDA0LDB4NmMsMHgwMCwweDhiLDB4MDIsMHgyYywweGY0LDB4MDgsMHhhOCwweDYyLDB4MGMsMHg4MCwweDhiLDB4ODAsMHgyYSB9fSwKLSB7MTYsIDB4ZDMyMCwgMCwgezB4NjAsMHgwZiwweDljLDB4MDIsMHgyZSwweDAwLDB4OGIsMHgwMCwweDIwLDB4NjAsMHgwZCwweDk4LDB4MDIsMHgyYywweDgwLDB4ZDggfX0sCi0gezE2LCAweGQzMzAsIDAsIHsweDAwLDB4MTQsMHg0MCwweDA4LDB4MzQsMHgxMiwweDJlLDB4MDAsMHg4YiwweDgyLDB4MzIsMHg0MCwweDBkLDB4YjAsMHgwMywweDYwIH19LAotIHsxNiwgMHhkMzQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHg4YiwweDAwLDB4MmUsMHhkMCB9fSwKLSB7MTYsIDB4ZDM1MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MmMsMHgwMCwweDhhLDB4ODQsMHgyMiwweGMwLDB4MGIsMHg4OCwweDAyLDB4ZTQsMHhhMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGQzNjAsIDAsIHsweDIyLDB4NjIsMHgwYSwweDk4LDB4MDIsMHgyOCwweDAwLDB4ODksMHgwMCwweDIyLDB4MDAsMHgwYSwweGIxLDB4MDYsMHgyYywweDAwIH19LAotIHsxNiwgMHhkMzcwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDM4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDIsMHhhMywweDAwLDB4MmMsMHhjMSwweDA4LDB4MjAsMHgwMiwweDBjLDB4MDIsMHg4YiwweDAwLDB4MjggfX0sCi0gezE2LCAweGQzOTAsIDAsIHsweGMyLDB4MGEsMHgwMCwweDAyLDB4NDQsMHgxMCwweDgzLDB4MTAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDA2LDB4MGMsMHgwMCwweDkxIH19LAotIHsxNiwgMHhkM2EwLCAwLCB7MHgwNCwweGFhLDB4MDAsMHgyOCwweDMwLDB4MDIsMHgyYywweDAwLDB4YTEsMHgwMSwweDIwLDB4NDAsMHgwOSwweGIwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4ZDNiMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg3YywweDAwLDB4OGYsMHgwMCwweDNlLDB4YzAgfX0sCi0gezE2LCAweGQzYzAsIDAsIHsweDJjLDB4YTAsMHgwMywweDI5LDB4NDAsMHhhOCwweDQwLDB4MzIsMHhjYywweDhiLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhjZiwweDQwIH19LAotIHsxNiwgMHhkM2QwLCAwLCB7MHgzMiwweDAwLDB4MGUsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyMiwweDQwLDB4MGMsMHhiMCwweDAzLDB4MmMsMHgwNCB9fSwKLSB7MTYsIDB4ZDNlMCwgMCwgezB4ZWIsMHgwMCwweGIyLDB4NDAsMHg4YywweGIwLDB4MDMsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZGYsMHgwMCwweDNmLDB4NDAsMHgwZiwweGUwLDB4MDMsMHhmYywweDgwLDB4ZmYsMHgyOCwweDNkIH19LAotIHsxNiwgMHhkNDAwLCAwLCB7MHhjMCwweDBiLDB4YzEsMHgwMywweGIwLDB4MTQsMHhmZiwweDAwLDB4M2YsMHgwMCwweDBkLDB4ZDAsMHgwMywweGRjLDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4ZDQxMCwgMCwgezB4MDAsMHgzNywweDQwLDB4MGYsMHhmMCwweDIxLDB4ZmMsMHgwMCwweDFkLDB4MDAsMHg3YiwweDQwLDB4OGYsMHhmMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGQ0MjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGRmLDB4MDAsMHgzMSwweGEwIH19LAotIHsxNiwgMHhkNDMwLCAwLCB7MHg0ZCwweGYwLDB4NDMsMHgzMiwweDAwLDB4Y2UsMHgxNCwweDFiLDB4NjgsMHgwZSwweGRhLDB4MjMsMHhiMiwweGMwLDB4MmYsMHgwMCB9fSwKLSB7MTYsIDB4ZDQ0MCwgMCwgezB4M2YsMHhjMiwweDJjLDB4ZTgsMHgwMywweDNjLDB4NDAsMHhmZCwweDA4LDB4M2IsMHhjOCwweDRjLDB4ZjAsMHg4MywweDNjLDB4YTAgfX0sCi0gezE2LCAweGQ0NTAsIDAsIHsweGNmLDB4MDAsMHgzMywweGM0LDB4MGMsMHhmMywweDA3LDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDYwLCAwLCB7MHg4MCwweDEwLDB4ZTIsMHgwMCwweDhmLDB4YzAsMHgyMiwweGEwLDB4MDgsMHhmZCwweDQyLDB4MmYsMHgwMCwweDhiLDB4NzAsMHgyMiB9fSwKLSB7MTYsIDB4ZDQ3MCwgMCwgezB4MWUsMHg0OCwweDg5LDB4MDIsMHgyNywweGMwLDB4OGYsMHg1YSwweDJlLDB4NTAsMHg0OCwweDMwLDB4MDIsMHhiZCwweGMwLDB4YmQgfX0sCi0gezE2LCAweGQ0ODAsIDAsIHsweDQwLDB4MjMsMHhjNSwweDQ4LDB4ZjQsMHg4MiwweDNkLDB4MmMsMHg4NywweDcwLDB4MjIsMHhjMCwweDA4LDB4ZjEsMHgwMywweGUwIH19LAotIHsxNiwgMHhkNDkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGUwLDB4MDAsMHg5MywweDEwLDB4MjYsMHg4MSB9fSwKLSB7MTYsIDB4ZDRhMCwgMCwgezB4NDksMHgzMCwweDAyLDB4ODAsMHg0MCwweDgzLDB4MjAsMHgyOCwweDQwLDB4MGEsMHgxMCwweDAyLDB4ODAsMHgwMCwweGEzLDB4MjQgfX0sCi0gezE2LCAweGQ0YjAsIDAsIHsweDJjLDB4Y2EsMHgwOCwweDMyLDB4ODIsMHgwYywweDAwLDB4OTEsMHgyOCwweDIwLDB4Y2EsMHgxYiwweDMyLDB4MDIsMHgwYywweDg4IH19LAotIHsxNiwgMHhkNGMwLCAwLCB7MHg4MywweDA5LDB4MjAsMHhjOCwweDA5LDB4MzIsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDRkMCwgMCwgezB4YzAsMHgxNSwweGEzLDB4MTQsMHg4YiwweDA0LDB4MjYsMHg4OSwweDA4LDB4YjAsMHgwMiwweGFjLDB4MjIsMHg4YiwweDg4LDB4MmEgfX0sCi0gezE2LCAweGQ0ZTAsIDAsIHsweDIwLDB4MDgsMHg5OCwweDgyLDB4YTYsMHgxMCwweGFiLDB4MDAsMHgyZSwweGNhLDB4MDgsMHhiMCwweDgyLDB4YWMsMHgwMCwweGI5IH19LAotIHsxNiwgMHhkNGYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgyOSwweGIwLDB4MGEsMHgyYywweDAxLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgwOSwweGIwLDB4MjIsMHhmMCB9fSwKLSB7MTYsIDB4ZDUwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMywweDAwLDB4ZGIsMHgwMCwweDM0LDB4ZTIgfX0sCi0gezE2LCAweGQ1MTAsIDAsIHsweDBkLDB4YjAsMHgwMywweGEzLDB4MDAsMHhjYSwweDgwLDB4YmEsMHg3MCwweDBlLDB4ODgsMHgwMywweGE2LDB4MDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhkNTIwLCAwLCB7MHgzZSwweDkwLDB4MGMsMHhiNSwweDAzLDB4MmMsMHgwMCwweGZiLDB4MTAsMHhiYSwweGMwLDB4MGUsMHhiMCwweDAzLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4ZDUzMCwgMCwgezB4Y2IsMHgwMiwweDMyLDB4YzAsMHgwOSwweGIwLDB4MDIsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1NDAsIDAsIHsweGUwLDB4MDEsMHhiMCwweDA4LDB4ZmYsMHgwMCwweGJiLDB4ZTAsMHgwZiwweDcwLDB4MDMsMHg2NSwweDAwLDB4ZjQsMHgwMCwweDM1IH19LAotIHsxNiwgMHhkNTUwLCAwLCB7MHg0MCwweDBmLDB4NDAsMHgwMywweDU0LDB4MDAsMHhkZiwweDAwLDB4M2UsMHg0MCwweDBmLDB4ZjgsMHgwMywweGVjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4ZDU2MCwgMCwgezB4MDEsMHgzZCwweGMxLDB4MGUsMHgzMCwweDAzLDB4ZWMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4OGUsMHhmMCwweDAzLDB4YjggfX0sCi0gezE2LCAweGQ1NzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTAsMHg0MCwweGViLDB4MDgsMHgzZSwweDgwIH19LAotIHsxNiwgMHhkNTgwLCAwLCB7MHgwZCwweGIwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMCwweDNhLDB4NTEsMHgwZiwweDgyLDB4MDMsMHg2NCwweDIwLDB4ZGIsMHgwMCB9fSwKLSB7MTYsIDB4ZDU5MCwgMCwgezB4M2QsMHg4MiwweDBjLDB4YmMsMHgwMywweDJjLDB4MTAsMHhkYiwweDAwLDB4NzIsMHhjMCwweDBkLDB4YjEsMHgwMywweDBjLDB4MjAgfX0sCi0gezE2LCAweGQ1YTAsIDAsIHsweGQzLDB4MDAsMHgzMiwweGMwLDB4MGYsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNWIwLCAwLCB7MHhjOCwweDA1LDB4MDEsMHgwMCwweDg3LDB4YzAsMHgyZSwweGE4LDB4MDgsMHhmMSwweDEyLDB4YzUsMHg0MCwweDg4LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZDVjMCwgMCwgezB4NDAsMHgwYiwweDg0LDB4MDIsMHgyNywweDAwLDB4YWYsMHgwMCwweDJlLDB4YzAsMHgwOCwweGJjLDB4MTIsMHgzYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGQ1ZDAsIDAsIHsweDAxLDB4MjMsMHhjMCwweDI4LDB4ZjUsMHg0YSwweDNkLDB4MjgsMHhkZiwweDAwLDB4MzMsMHhjMCwweDRiLDB4ZjAsMHgwMywweDMyIH19LAotIHsxNiwgMHhkNWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ4LDB4ODAsMHhhMywweDkwLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZDVmMCwgMCwgezB4MDgsMHgzMCwweDAyLDB4YzEsMHgwMCwweDkyLDB4MDQsMHgyOCwweDAwLDB4MGIsMHgxNCwweDEyLDB4NDMsMHgwMCwweGIzLDB4MDQgfX0sCi0gezE2LCAweGQ2MDAsIDAsIHsweDJjLDB4MzAsMHgwYSwweGIwLDB4MGEsMHg4YywweDAwLDB4OTMsMHgwMCwweDYwLDB4YzAsMHgwOCwweDNjLDB4MDYsMHgwZSwweDAxIH19LAotIHsxNiwgMHhkNjEwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDhiLDB4MzAsMHgwNiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDYyMCwgMCwgezB4MjAsMHgwMSwweDEyLDB4MDAsMHg4NywweDgwLDB4MmQsMHgyNCwweDA4LDB4NzgsMHgwMiwweGQyLDB4MDAsMHg5NSwweDgwLDB4MjEgfX0sCi0gezE2LCAweGQ2MzAsIDAsIHsweGEwLDB4MGIsMHg2OCwweDAyLDB4NWEsMHgyMCwweDg3LDB4ODAsMHgyZCwweDY2LDB4MWEsMHg3YywweDAyLDB4OWUsMHgwMCwweDg3IH19LAotIHsxNiwgMHhkNjQwLCAwLCB7MHg4MCwweDIxLDB4ZTEsMHgxOCwweDc5LDB4MDIsMHg5ZSwweDQwLDB4YjcsMHg4MCwweGExLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4ZDY1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwMCwweDAwLDB4ZTMsMHhhMCwweDNjLDB4NDAgfX0sCi0gezE2LCAweGQ2NjAsIDAsIHsweDBjLDB4MzAsMHgwMywweGM0LDB4MjIsMHhkOSwweDAwLDB4MzgsMHhkNCwweDBmLDB4MzAsMHg4MywweDY4LDB4NDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhkNjcwLCAwLCB7MHgzYywweDgwLDB4MGEsMHgzMiwweDAyLDB4OGMsMHgwMCwweGRiLDB4MDAsMHhhMiwweGM0LDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4ZDY4MCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4YzAsMHgwZiwweGIxLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ2OTAsIDAsIHsweDQwLDB4MGQsMHhiMCwweDAwLDB4ZmYsMHgxMCwweDNmLDB4NDAsMHgwZSwweGYwLDB4MDMsMHhmYywweDAwLDB4ZWQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhkNmEwLCAwLCB7MHhjMCwweDBmLDB4MzAsMHgxMywweGJjLDB4NDAsMHg3ZiwweDEwLDB4M2YsMHhjMSwweDJkLDB4ZjAsMHgwMywweDdjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZDZiMCwgMCwgezB4NDAsMHgzZiwweGMyLDB4MGUsMHhmNCwweDgzLDB4N2MsMHgwMCwweGRmLDB4MDAsMHgzZiwweGMyLDB4MGYsMHhmMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweGQ2YzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGRiLDB4YTAsMHgzMiwweGMwIH19LAotIHsxNiwgMHhkNmQwLCAwLCB7MHgwZCwweGI3LDB4MDMsMHhlMCwweDAwLDB4Y2EsMHgwNCwweDNlLDB4ODAsMHgwZiwweGI4LDB4MDMsMHgyYywweDEwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZDZlMCwgMCwgezB4MzMsMHgwMCwweDhkLDB4YjAsMHgwMywweDJjLDB4ODAsMHhlOSwweDQwLDB4M2UsMHhkMiwweDBmLDB4YjQsMHgwMywweDJkLDB4ODAgfX0sCi0gezE2LCAweGQ2ZjAsIDAsIHsweGViLDB4MjAsMHhiMiwweGMwLDB4MGYsMHhiMiwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNzAwLCAwLCB7MHg0OCwweDExLDB4OTAsMHgwMCwweGI3LDB4MTAsMHgxMSwweGMwLDB4MDgsMHg3MCwweDgyLDB4ZDgsMHgwYSwweDg3LDB4MDEsMHgyZCB9fSwKLSB7MTYsIDB4ZDcxMCwgMCwgezB4ODAsMHg4OSwweDcwLDB4MDMsMHhkOCwweDA4LDB4YjcsMHgwYSwweDIxLDB4NDAsMHgyYywweDcwLDB4MDIsMHgwZCwweGMwLDB4ODUgfX0sCi0gezE2LCAweGQ3MjAsIDAsIHsweDAxLDB4NzksMHhjOCwweDBiLDB4MzIsMHgwMiwweDBkLDB4MjAsMHg4ZiwweDI4LDB4MjEsMHhjMCwweDBiLDB4NzIsMHg4MiwweGQyIH19LAotIHsxNiwgMHhkNzMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHg0MCwweDk2LDB4MTAsMHg5NywweDkwLDB4MjMsMHhlMCB9fSwKLSB7MTYsIDB4ZDc0MCwgMCwgezB4MDksMHg3YSwweDAyLDB4ZDYsMHgwMCwweDk3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDgyLDB4MWUsMHgwMCwweGIzLDB4YjAgfX0sCi0gezE2LCAweGQ3NTAsIDAsIHsweDIxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxZSwweDAwLDB4YTUsMHg4MCwweDJkLDB4ZTAsMHgwYiwweDdhLDB4MDIsMHgxZSwweDgwIH19LAotIHsxNiwgMHhkNzYwLCAwLCB7MHhhNywweGIwLDB4MjEsMHhlOCwweDBiLDB4NzksMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDc3MCwgMCwgezB4NDgsMHgxNCwweGMwLDB4MDAsMHhiMywweDAwLDB4MjAsMHhlMiwweDA4LDB4MzAsMHgwMiwweGM2LDB4NDAsMHg5MywweDcwLDB4MmMgfX0sCi0gezE2LCAweGQ3ODAsIDAsIHsweGMwLDB4MDksMHgzYywweDAyLDB4OGUsMHgwMCwweGIzLDB4MDAsMHgyMCwweGQ4LDB4MDgsMHgxOCwweDAyLDB4MGMsMHgwMCwweDgxIH19LAotIHsxNiwgMHhkNzkwLCAwLCB7MHg5MCwweDJlLDB4YzAsMHgwYiwweDMwLDB4MmEsMHgyYywweDEwLDB4ODMsMHgwMCwweGEwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZDdhMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTEsMHhiOSwweDAwLDB4ZGEsMHgwMiwweDMzLDB4YjggfX0sCi0gezE2LCAweGQ3YjAsIDAsIHsweDBkLDB4YTAsMHgwMywweGY4LDB4MDAsMHhkZSwweGMwLDB4M2YsMHhiMCwweDRmLDB4ZWMsMHgwNiwweDM4LDB4NDAsMHhmYSwweDAwIH19LAotIHsxNiwgMHhkN2MwLCAwLCB7MHhiMywweDkwLDB4MGMsMHg2YywweDBiLDB4MjgsMHgwOCwweGVhLDB4MDEsMHg3ZSwweDgwLDB4MGYsMHhhMCwweDAzLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZDdkMCwgMCwgezB4ZWEsMHgwMCwweDMyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3ZTAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg0MCwweDNhLDB4MDAsMHgwZiwweDg0LDB4MDMsMHhlMSwweDAwLDB4ZTgsMHgwMiwweDNlIH19LAotIHsxNiwgMHhkN2YwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHgwMywweGUxLDB4NDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ZDgwMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGQ4MTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgyMCwweGY5LDB4YzAsMHgzZSwweDcwIH19LAotIHsxNiwgMHhkODIwLCAwLCB7MHgwZSwweDkwLDB4MDIsMHhlNCwweDgwLDB4YzksMHgwMCwweDMyLDB4NDIsMHgwYywweDk4LDB4ODMsMHhhNCwweDg0LDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZDgzMCwgMCwgezB4YjIsMHg2MCwweDBjLDB4OTAsMHg4MywweDI0LDB4MDAsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4MWEsMHgwMiwweDI0LDB4MDAgfX0sCi0gezE2LCAweGQ4NDAsIDAsIHsweGMxLDB4MDAsMHhiMiwweDQwLDB4MGYsMHg5MCwweDAxLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkODUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwMCwweGI5LDB4ODEsMHgyYywweDYwLDB4MGQsMHg5NCwweGMyLDB4YzcsMHgwOCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZDg2MCwgMCwgezB4NDAsMHgwOCwweDk1LDB4YzcsMHhhNCwweDAwLDB4YjksMHgwMCwweDI4LDB4NzAsMHhhOCwweDk0LDB4MGEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGQ4NzAsIDAsIHsweDA0LDB4MmUsMHg0MCwweDI4LDB4OTAsMHgyYSwweDI2LDB4MDAsMHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhkODgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhiOSwweDQwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZDg5MCwgMCwgezB4MGEsMHg5MCwweDAyLDB4ZTUsMHgwMCwweDgxLDB4MDAsMHhhMCwweDQwLDB4MDksMHg5MCwweDQyLDB4ZWMsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGQ4YTAsIDAsIHsweDIyLDB4NTgsMHgwOCwweDkwLDB4YTIsMHgwNCwweDAyLDB4ODksMHgwMCwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHhhNCwweGEwIH19LAotIHsxNiwgMHhkOGIwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDBiLDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDhjMCwgMCwgezB4MDgsMHgwNCwweDA0LDB4MDAsMHhiMSwweDIwLDB4MmUsMHhjMCwweDg5LDB4MTIsMHgwMiwweGM0LDB4ODAsMHg4MSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGQ4ZDAsIDAsIHsweDQwLDB4NjEsMHgxMCwweDQyLDB4YzUsMHgwMCwweGIxLDB4MjAsMHgyOCwweDQ4LDB4MTgsMHg5MCwweDQyLDB4MDQsMHg4MCwweDgxIH19LAotIHsxNiwgMHhkOGUwLCAwLCB7MHgyOCwweDJjLDB4NDgsMHgwOCwweDEyLDB4ODIsMHg4NCwweGEwLDB4ODEsMHgyMCwweDIwLDB4NDgsMHgwYiwweDEyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4ZDhmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2OCwweDAwLDB4ZjgsMHgwMCwweDJlLDB4MDAgfX0sCi0gezE2LCAweGQ5MDAsIDAsIHsweDBlLDB4ODAsMHgwMywweGUwLDB4MDgsMHhjOCwweDUwLDB4MzIsMHgxNCwweDBkLDB4ODAsMHgxNywweGU4LDB4MDQsMHhmOCwweDUwIH19LAotIHsxNiwgMHhkOTEwLCAwLCB7MHgzMiwweDE0LDB4NGMsMHgwNSwweDBiLDB4MjEsMHg0MCwweGM4LDB4MjAsMHgzZSwweDAwLDB4MGMsMHg4NywweDAzLDB4YTEsMHhjMiB9fSwKLSB7MTYsIDB4ZDkyMCwgMCwgezB4YzgsMHgwMCwweDMyLDB4MTQsMHg4ZiwweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5MzAsIDAsIHsweDk4LDB4MWQsMHhmNCwweDAwLDB4ZjEsMHgxMCwweDNkLDB4NDAsMHgwZiwweDkxLDB4MDIsMHhkNCwweDQyLDB4ZmQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhkOTQwLCAwLCB7MHg1MSwweDBlLDB4NTQsMHgxMywweGI1LDB4MDAsMHhmOSwweDEwLDB4MzUsMHg0NCwweDJmLDB4ZDAsMHgwMywweGU0LDB4NTAsMHhmZCB9fSwKLSB7MTYsIDB4ZDk1MCwgMCwgezB4MjgsMHgzZSwweDRlLDB4MGYsMHg5MCwweDAzLDB4NjQsMHgwMCwweGY5LDB4MzgsMHgzZSwweDQ0LDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGQ5NjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDE1LDB4ZjQsMHgwMCwweGZkLDB4MDAsMHgzZCwweDQwIH19LAotIHsxNiwgMHhkOTcwLCAwLCB7MHgyYywweGQwLDB4MDMsMHhiNiwweDAwLDB4ZjksMHg4MiwweDNlLDB4NDAsMHgwYywweGQwLDB4MDMsMHhmNCwweDAwLDB4ZjksMHg4MCB9fSwKLSB7MTYsIDB4ZDk4MCwgMCwgezB4MzMsMHg3MCwweDBjLDB4NTAsMHgwMywweDM0LDB4MDAsMHhjOSwweGMwLDB4M2UsMHg0MCwweDBjLDB4ZGEsMHgwMywweDE2LDB4ODAgfX0sCi0gezE2LCAweGQ5OTAsIDAsIHsweGM5LDB4NDAsMHgzZSwweDYyLDB4MmMsMHg5OCwweDgzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMCwweGI4LDB4MDAsMHgyZSwweDAwLDB4MDgsMHg4MCwweDAyLDB4MjgsMHgwMCwweGI4LDB4NTAsMHgyNiB9fSwKLSB7MTYsIDB4ZDliMCwgMCwgezB4MDAsMHgwOCwweGEwLDB4MDIsMHhlOCwweDAwLDB4YjgsMHgwMCwweDJhLDB4MzQsMHgyYSwweGFhLDB4MGEsMHgyMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGQ5YzAsIDAsIHsweGMwLDB4MmUsMHgyYSwweDA4LDB4ODAsMHgyMiwweDIxLDB4MDAsMHhhOCwweDgwLDB4MmUsMHgwMCwweDA4LDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhkOWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZDllMCwgMCwgezB4NDgsMHgxMCwweDA2LDB4OGQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MjgsMHgxMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4NDAgfX0sCi0gezE2LCAweGQ5ZjAsIDAsIHsweDJjLDB4NDgsMHgwOCwweDEwLDB4ODIsMHg0NCwweDAwLDB4ODEsMHg2MCwweDJjLDB4NDAsMHgyOCwweDE0LDB4MGEsMHgwNCwweDQwIH19LAotIHsxNiwgMHhkYTAwLCAwLCB7MHg4MSwweDIwLDB4MmMsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGExMCwgMCwgezB4MTgsMHgwNSwweGE0LDB4NDAsMHhiOSwweDAwLDB4MmUsMHg0MCwweDA4LDB4YjAsMHgwMiwweDI0LDB4MDAsMHhiOSwweDI4LDB4MmUgfX0sCi0gezE2LCAweGRhMjAsIDAsIHsweDUwLDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgyZSwweDYwLDB4MGIsMHgxMiwweDQyLDB4NjQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhkYTMwLCAwLCB7MHgwMCwweDJjLDB4NDAsMHgwOSwweDkwLDB4MDIsMHgyNCwweDAwLDB4YTksMHgwMCwweDJjLDB4NDAsMHgwOCwweDEwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZGE0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MDUsMHhlNiwweDAwLDB4ZjksMHgwMCwweDNjLDB4NDIgfX0sCi0gezE2LCAweGRhNTAsIDAsIHsweDBjLDB4OTAsMHgwMywweGE3LDB4NDAsMHhmOSwweDQwLDB4M2UsMHg3MCwweDBjLDB4OTgsMHgwMiwweGU1LDB4NDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhkYTYwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHg5OCwweDAzLDB4NjQsMHgwNiwweGM5LDB4MDEsMHgyZSwweDQwLDB4MGMsMHg5MCwweDAzLDB4MjQsMHgwNCB9fSwKLSB7MTYsIDB4ZGE3MCwgMCwgezB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4ODMsMHhlNiwweDEwLDB4ZjksMHgwMCwweDM2IH19LAotIHsxNiwgMHhkYTkwLCAwLCB7MHg2OCwweDBmLDB4OWMsMHgwMywweGU2LDB4MDAsMHhmOSwweDAwLDB4M2EsMHg0MCwweDBlLDB4OTgsMHg5MywweGE0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZGFhMCwgMCwgezB4MDAsMHgzZSwweDQwLDB4MGUsMHg5MCwweDgzLDB4YzQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGRhYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDAwLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDA0IH19LAotIHsxNiwgMHhkYWMwLCAwLCB7MHgwYywweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHg0MCwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhlMSwweDAwLDB4ZjAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFkMCwgMCwgezB4M2UsMHgwMiwweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBjLDB4MDAsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGRhZTAsIDAsIHsweGM4LDB4MDAsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYWYwLCAwLCB7MHgyOCwweDE1LDB4M2EsMHgwMCwweGJlLDB4MDIsMHgyZiwweGIwLDB4MDgsMHg2OCwweDEyLDB4MzgsMHgwMCwweDhhLDB4MDQsMHgyYSB9fSwKLSB7MTYsIDB4ZGIwMCwgMCwgezB4ODAsMHgwYiwweGUwLDB4NDIsMHhmYiwweDIwLDB4YmEsMHgwMCwweDJmLDB4OTEsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4YmEgfX0sCi0gezE2LCAweGRiMTAsIDAsIHsweDAwLDB4MjYsMHg4MCwweDA4LDB4ZWUsMHgwYSwweDM4LDB4MDAsMHg4YSwweDAwLDB4MjIsMHg4MCwweDBiLDB4YTAsMHgwMiwweDhhIH19LAotIHsxNiwgMHhkYjIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQyLDB4MDAsMHhiMywweDAwLDB4MmMsMHhjMiB9fSwKLSB7MTYsIDB4ZGIzMCwgMCwgezB4MjgsMHgzOCwweDBhLDB4NDgsMHgwMCwweDgzLDB4MDQsMHgyMiwweGMwLDB4MGIsMHgxMCwweDAyLDB4Y2QsMHg4MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGRiNDAsIDAsIHsweDJlLDB4YzAsMHgwOCwweDFjLDB4MDIsMHgyNCwweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDM0LDB4MTIsMHgwZSwweDQwIH19LAotIHsxNiwgMHhkYjUwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgxMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGI2MCwgMCwgezB4YTAsMHgwMSwweDExLDB4MDAsMHhiNywweDAwLDB4MmYsMHhjMCwweDA4LDB4NzAsMHhhMiwweDRlLDB4MDAsMHg4ZiwweGIwLDB4MjEgfX0sCi0gezE2LCAweGRiNzAsIDAsIHsweGNjLDB4MGIsMHg2MCwweDEyLDB4ZGMsMHgxMCwweGI3LDB4MzAsMHgyZCwweGMwLDB4MDgsMHhkMCwweDgyLDB4MTQsMHg4MCwweGI3IH19LAotIHsxNiwgMHhkYjgwLCAwLCB7MHgxMiwweDI1LDB4YzgsMHgyOCwweDYwLDB4MDIsMHgxNCwweDAwLDB4ODcsMHhiMiwweDIxLDB4Y2MsMHgwYiwweDMxLDB4MDIsMHhhOCB9fSwKLSB7MTYsIDB4ZGI5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjcsMHg4MCwweDNkLDB4ZTAgfX0sCi0gezE2LCAweGRiYTAsIDAsIHsweDBjLDB4MzgsMHgwMywweDU2LDB4MDAsMHhjNywweDkwLDB4YjEsMHhlNCwweDBmLDB4NzgsMHgwMywweGRlLDB4MDAsMHhmNywweDkwIH19LAotIHsxNiwgMHhkYmIwLCAwLCB7MHgxZiwweDYwLDB4MmMsMHg0OCwweDBiLDB4MTYsMHhhMCwweGY3LDB4ODAsMHgzYywweGY0LDB4MGMsMHgzOCwweDAzLDB4MWUsMHgwMCB9fSwKLSB7MTYsIDB4ZGJjMCwgMCwgezB4Y2YsMHhhMCwweGIxLDB4ZTgsMHgwZiwweDdiLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiZDAsIDAsIHsweDA4LDB4MGQsMHhhMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4YzAsMHgwYiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZjMsMHgyMSwweDNlIH19LAotIHsxNiwgMHhkYmUwLCAwLCB7MHhjOCwweDA3LDB4YjAsMHgwMiwweGU0LDB4MDAsMHhmYiwweDIwLDB4M2YsMHg0MCwweDBmLDB4ODAsMHgwMywweGU0LDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZGJmMCwgMCwgezB4MDAsMHgzNiwweGQwLDB4MGYsMHhhMCwweDAzLDB4ZTAsMHgwOCwweGZiLDB4NDIsMHgzZSwweGQ4LDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGRjMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjAsMHg4MCwweGNmLDB4ODAsMHgzMSwweGUxIH19LAotIHsxNiwgMHhkYzEwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhkYSwweDEwLDB4ZWYsMHg4MCwweDNmLDB4ZTQsMHgwZiwweGQ4LDB4MDMsMHhmZSwweDEwLDB4ZmYsMHg4MiB9fSwKLSB7MTYsIDB4ZGMyMCwgMCwgezB4M2YsMHhlMCwweDRjLDB4ZDgsMHgxYiwweDE2LDB4MjAsMHhjZiwweDgwLDB4M2YsMHhlMCwweDRjLDB4ZDgsMHgzMCwweGVlLDB4NDAgfX0sCi0gezE2LCAweGRjMzAsIDAsIHsweGZmLDB4YzAsMHhiMywweGY0LDB4MGYsMHhmOCwweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYzQwLCAwLCB7MHhhOCwweDAxLDB4OTgsMHgyMCwweDgzLDB4NDAsMHgyMSwweGMwLDB4MDgsMHg3MSwweDAyLDB4ZGMsMHg4NCwweDg3LDB4MjAsMHgyZCB9fSwKLSB7MTYsIDB4ZGM1MCwgMCwgezB4YzAsMHgwYiwweDYwLDB4MDIsMHhkOSwweDYwLDB4ZjcsMHgwMCwweDJkLDB4YzAsMHgwOCwweGYwLDB4ODIsMHgxNCwweDA0LDB4ODcgfX0sCi0gezE2LCAweGRjNjAsIDAsIHsweDAwLDB4MmQsMHhjMCwweDA4LDB4ZjAsMHgwMywweDFlLDB4MDAsMHhiNywweDIwLDB4MjEsMHhjMCwweDhiLDB4NzAsMHgwMiwweGVhIH19LAotIHsxNiwgMHhkYzcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGIwLDB4MDAsMHg4NywweDAwLDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGM4MCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZjUsMHgwNCwweDI3LDB4MDAsMHgyZCwweGMwLDB4OGIsMHg3MCwweDAyLDB4ZGMsMHgwMCwweGI3LDB4MDAgfX0sCi0gezE2LCAweGRjOTAsIDAsIHsweDJjLDB4NTAsMHgwOCwweDQwLDB4MDIsMHgxNCwweDAwLDB4ODcsMHgwMCwweDJkLDB4YzAsMHgwOCwweDUwLDB4MDIsMHg1YywweDA0IH19LAotIHsxNiwgMHhkY2EwLCAwLCB7MHhiNywweDAwLDB4YTEsMHhjMCwweDhiLDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGNiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHg4MCwweDAwLDB4MDAsMHg4MCwweDA4LDB4MzAsMHgwMiwweGNlLDB4MDAsMHg4MywweGMwLDB4MmMgfX0sCi0gezE2LCAweGRjYzAsIDAsIHsweGQwLDB4NGIsMHgzMCwweDAyLDB4Y2UsMHgwMCwweGFiLDB4MDIsMHgyYywweDQwLDB4NDgsMHhiYywweDAyLDB4MDQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhkY2QwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwMCwweDA4LDB4YjMsMHgwMCwweDIwLDB4YzAsMHgwOSwweDMwLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZGNlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4MywweDQwLDB4YzgsMHgwMCwweDMwLDB4YzAgfX0sCi0gezE2LCAweGRjZjAsIDAsIHsweDJjLDB4YjAsMHgwMywweGVjLDB4MDAsMHhlZiwweDg4LDB4M2YsMHhlNiwweDA3LDB4YjEsMHg4MywweGUxLDB4MDAsMHhiZiwweDAwIH19LAotIHsxNiwgMHhkZDAwLCAwLCB7MHgzZSwweGUwLDB4MGMsMHhiOCwweDAzLDB4MzQsMHgwMCwweGNmLDB4MDAsMHgzZiwweGMwLDB4MmMsMHhiMCwweDAzLDB4NjgsMHgxMCB9fSwKLSB7MTYsIDB4ZGQxMCwgMCwgezB4ZmYsMHgwMCwweDMzLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkMjAsIDAsIHsweDgwLDB4MDAsMHhlNCwweDAwLDB4ZjEsMHg0MCwweDNlLDB4YzAsMHgwZiwweGI0LDB4MDMsMHhlZCwweDQwLDB4ZmIsMHgwOCwweDNlIH19LAotIHsxNiwgMHhkZDMwLCAwLCB7MHhjMCwweDBmLDB4YTAsMHgwMywweGU1LDB4MjAsMHhmYiwweDAwLDB4M2UsMHhlMCwweDBkLDB4YjAsMHg4MywweGU0LDB4MDAsMHhmMyB9fSwKLSB7MTYsIDB4ZGQ0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg4MCwweDAzLDB4YzQsMHgwMCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHgzMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGRkNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGNhLDB4MDAsMHgzMywweGUwIH19LAotIHsxNiwgMHhkZDYwLCAwLCB7MHg0ZSwweGYwLDB4MDMsMHgzNCwweDAwLDB4ZmYsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGU4LDB4MDMsMHhmMCwweDAwLDB4ZmYsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ3MCwgMCwgezB4YjEsMHg0MCwweDBjLDB4ZTAsMHgwMywweDM0LDB4MDAsMHhlZiwweDAwLDB4YjMsMHhjMCwweDBjLDB4ZjAsMHgwMywweDM4LDB4MDAgfX0sCi0gezE2LCAweGRkODAsIDAsIHsweGNmLDB4MDAsMHgzZCwweGMwLDB4MGEsMHhmMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZDkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgyMiwweDg4LDB4OTAsMHgyMiwweGUwLDB4MDgsMHgzYywweDAyLDB4MmUsMHgwOCwweGJiLDB4MDEsMHgyZSB9fSwKLSB7MTYsIDB4ZGRhMCwgMCwgezB4YzAsMHgwYiwweGEwLDB4MDIsMHg2NiwweDAwLDB4YmIsMHgwMCwweDIyLDB4YTAsMHgwOCwweGE5LDB4MDIsMHgyNCwweDAwLDB4YmIgfX0sCi0gezE2LCAweGRkYjAsIDAsIHsweDAwLDB4MjIsMHhjMCwweDI4LDB4MmMsMHgwMiwweGEyLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDBhLDB4YjAsMHgwMiwweGEwIH19LAotIHsxNiwgMHhkZGMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIyLDB4MDAsMHg5OCwweDAwLDB4MjIsMHhjOCB9fSwKLSB7MTYsIDB4ZGRkMCwgMCwgezB4MGEsMHg5OCwweDAyLDB4MjcsMHgwNCwweGJiLDB4MDAsMHgyZSwweGMwLDB4MGIsMHhiMSwweDAyLDB4ZTIsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGRkZTAsIDAsIHsweDIyLDB4ZTIsMHgwOCwweGIwLDB4MDIsMHhhNCwweDAwLDB4YWIsMHgwMCwweDIwLDB4YzAsMHgwYSwweDg4LDB4ODIsMHgyMywweDAwIH19LAotIHsxNiwgMHhkZGYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGUwMCwgMCwgezB4MDgsMHgxNCwweDA0LDB4MDAsMHg5MSwweDQwLDB4MjIsMHhjMCwweDA4LDB4MTAsMHgwMiwweDBjLDB4MDAsMHhiMywweDAwLDB4MmMgfX0sCi0gezE2LCAweGRlMTAsIDAsIHsweGMwLDB4NGIsMHgyOCwweDIyLDB4NDAsMHgwNCwweGIzLDB4MDAsMHgyMCwweGMwLDB4MjgsMHgzMCwweDBhLDB4MDQsMHgwNCwweGIzIH19LAotIHsxNiwgMHhkZTIwLCAwLCB7MHgwMCwweDYwLDB4YzAsMHgwOCwweDAwLDB4MDIsMHg4NCwweDIwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYSwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4ZGUzMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDUsMHg2MCwweDAwLDB4ZGEsMHg0MCwweGIyLDB4ODAgfX0sCi0gezE2LCAweGRlNDAsIDAsIHsweDBlLDB4OTAsMHgwMywweDI0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDhmLDB4YTAsMHgwMywweGUwLDB4MDksMHhmZiwweDAwIH19LAotIHsxNiwgMHhkZTUwLCAwLCB7MHgzMiwweDQwLDB4MDgsMHhhMCwweDBiLDB4MzQsMHgwMCwweGViLDB4MDAsMHgzMSwweGMwLDB4MGMsMHg4MCwweDAzLDB4MjgsMHg4MCB9fSwKLSB7MTYsIDB4ZGU2MCwgMCwgezB4YzcsMHgwMCwweDNmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlNzAsIDAsIHsweGEwLDB4MTUsMHhkMCwweDAwLDB4ZWMsMHgyMCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MGIsMHhmYywweDEwLDB4ZmYsMHgwMSwweDNmIH19LAotIHsxNiwgMHhkZTgwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHgwMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweGY0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZGU5MCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NGYsMHhjMCwweDAxLDB4ZjAsMHgwOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGRlYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGNjLDB4OTAsMHgzNywweDIwIH19LAotIHsxNiwgMHhkZWIwLCAwLCB7MHgwZSwweGYwLDB4MTMsMHhiZCwweDA0LDB4ZDQsMHhjMSwweDMzLDB4MmMsMHg0YywweGQ5LDB4MjMsMHgzMiwweDYwLDB4ZmYsMHgyMCB9fSwKLSB7MTYsIDB4ZGVjMCwgMCwgezB4M2QsMHhlMCwweDRmLDB4YzEsMHgwMywweGI2LDB4NDAsMHhjZCwweDAwLDB4MzcsMHhlMCwweDBjLDB4ZTIsMHg4YiwweDEwLDB4YzAgfX0sCi0gezE2LCAweGRlZDAsIDAsIHsweGNkLDB4MDAsMHgzMywweGM2LDB4MGYsMHhkOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZWUwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwOCwweDhhLDB4MjAsMHgyMiwweDAwLDB4MDgsMHhiNywweDAyLDB4MmQsMHgwMCwweDhhLDB4MDAsMHhiNiB9fSwKLSB7MTYsIDB4ZGVmMCwgMCwgezB4M2MsMHgwOCwweDk5LDB4MDIsMHgyNywweDg0LDB4YmYsMHg2OCwweDJlLDB4ODIsMHgwYiwweDAxLDB4MDIsMHgyNCwweDQwLDB4ZDkgfX0sCi0gezE2LCAweGRmMDAsIDAsIHsweDQyLDB4MjAsMHhjMCwweDhhLDB4YWMsMHgwMiwweDJkLDB4YzIsMHg4MiwweDQ4LDB4YTIsMHhkMCwweDBiLDB4ODIsMHgwMiwweDIwIH19LAotIHsxNiwgMHhkZjEwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg4OCwweDA0LDB4MjYsMHg4MCB9fSwKLSB7MTYsIDB4ZGYyMCwgMCwgezB4MmEsMHgzMCwweGMyLDB4YTUsMHg4MCwweGE5LDB4MjEsMHgyOCwweDAwLDB4OGEsMHgwMCwweDAyLDB4MDAsMHgwMCwweGEzLDB4MTAgfX0sCi0gezE2LCAweGRmMzAsIDAsIHsweDJjLDB4YzgsMHgwYiwweDAwLDB4MDIsMHhjNCwweDkwLDB4ODMsMHg0MiwweDI0LDB4YzEsMHgwOCwweDAwLDB4MDIsMHg0MCwweDg4IH19LAotIHsxNiwgMHhkZjQwLCAwLCB7MHhhMywweDYwLDB4YTgsMHhjMCwweDBiLDB4MDAsMHhjMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGY1MCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MDYsMHg4YSwweDAwLDB4MjIsMHhlMCwweDQ4LDB4YjAsMHgwMiwweDJlLDB4MDIsMHhhYiwweDgwLDB4MmUgfX0sCi0gezE2LCAweGRmNjAsIDAsIHsweDIwLDB4NGEsMHg4YywweDAyLDB4MjYsMHgyMCwweGJiLDB4MDAsMHg2ZSwweDgwLDB4MGIsMHgzMCwweGMyLDB4NDYsMHgwNCwweDliIH19LAotIHsxNiwgMHhkZjcwLCAwLCB7MHgwYSwweGEyLDB4YzAsMHgwYSwweDgwLDB4MTIsMHg2YywweDQwLDB4YTgsMHgwMCwweDJhLDB4YzAsMHgwYiwweDhjLDB4MDIsMHgzMCB9fSwKLSB7MTYsIDB4ZGY4MCwgMCwgezB4MDAsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4YzEsMHgwOSwweDM2LDB4NjEgfX0sCi0gezE2LCAweGRmOTAsIDAsIHsweDBlLDB4MzIsMHgwMywweGFiLDB4MjAsMHhmOCwweDg0LDB4M2EsMHg3OCwweDJlLDB4OTgsMHgwMywweDI2LDB4MDAsMHhlYiwweDAwIH19LAotIHsxNiwgMHhkZmEwLCAwLCB7MHgzZSwweDQwLDB4NGYsMHg5MCwweDAzLDB4ZTIsMHgwMCwweGM5LDB4NDAsMHgzNiwweGUwLDB4MGMsMHhiNCwweDAzLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4ZGZiMCwgMCwgezB4ZWIsMHgwMCwweDNhLDB4YzAsMHgwZiwweDg4LDB4MDMsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmYzAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGZhLDB4MTMsMHhmOCwweDEwLDB4ZGMsMHgwNCwweDI3IH19LAotIHsxNiwgMHhkZmQwLCAwLCB7MHg0MCwweDBkLDB4NTAsMHg0MywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZDksMHgwMywweGIwLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZGZlMCwgMCwgezB4MDEsMHgzZiwweGYwLDB4MGYsMHhmMCwweDIzLDB4YjIsMHgwMCwweGQ0LDB4YTAsMHgzNywweGMwLDB4MGYsMHhjMCwweDBiLDB4ZjggfX0sCi0gezE2LCAweGRmZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgyMCwweGViLDB4MTAsMHhmMiwweDAwIH19LAotIHsxNiwgMHhlMDAwLCAwLCB7MHgwZSwweGI0LDB4MDMsMHgyMSwweDgwLDB4YzksMHg0MCwweDNhLDB4NDgsMHgwZiwweDkwLDB4MTMsMHhlMSwweDIwLDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZTAxMCwgMCwgezB4M2UsMHhjMCwweDBjLDB4ODQsMHgwMywweDI0LDB4MDAsMHhmYiwweDAxLDB4MzYsMHhlMCwweDBjLDB4NzQsMHgwYiwweDljLDB4MDAgfX0sCi0gezE2LCAweGUwMjAsIDAsIHsweGNmLDB4MDAsMHgzMiwweGUwLDB4MGYsMHg4NCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMDMwLCAwLCB7MHhjOCwweDA1LDB4MWUsMHgwMCwweDhiLDB4ODAsMHgyMCwweDQwLDB4MDgsMHhiOCwweDAyLDB4ODMsMHg4MCwweDgxLDB4YTAsMHgyMiB9fSwKLSB7MTYsIDB4ZTA0MCwgMCwgezB4NzgsMHgwYiwweDkxLDB4ODMsMHhlMywweDAwLDB4YmYsMHgwMCwweDBlLDB4YzEsMHgwYSwweGI0LDB4MDMsMHg2NCwweDA0LDB4YjkgfX0sCi0gezE2LCAweGUwNTAsIDAsIHsweDUwLDB4MzIsMHhjMCwweDBhLDB4YjIsMHgwMiwweDIwLDB4MDAsMHg4OCwweDAwLDB4MjMsMHhkNCwweDBiLDB4ODgsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlMDYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4NDIsMHhhMCwweDgwLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ZTA3MCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MGQsMHgwNiwweDgwLDB4ODAsMHgyYSwweGQwLDB4MDMsMHgwMCwweDAyLDB4YzgsMHgwMCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGUwODAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDM2LDB4MDIsMHg0MCwweDAwLDB4YjksMHgwMiwweDIyLDB4YzIsMHg4YiwweDI2LDB4MDIsMHgwYywweDEwIH19LAotIHsxNiwgMHhlMDkwLCAwLCB7MHgwMSwweDAyLDB4MjQsMHhjMCwweDRiLDB4YTEsMHgwMiwweGY4LDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBhMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDgsMHg4ZSwweDgwLDB4MjEsMHgyMSwweDA4LDB4MjgsMHhjMiwweDllLDB4MDAsMHg4ZSwweDgwLDB4MjEgfX0sCi0gezE2LCAweGUwYjAsIDAsIHsweDYwLDB4MGIsMHg3OCwweDAyLDB4OWUsMHgyMCwweGI3LDB4ODIsMHgyZiwweGExLDB4MGEsMHg3OCwweDAyLDB4NWUsMHgwMCwweGI1IH19LAotIHsxNiwgMHhlMGMwLCAwLCB7MHg5MSwweGExLDB4ZTAsMHgwYiwweDI5LDB4MDIsMHgzMiwweDQ0LDB4ODYsMHg4MCwweGE1LDB4ZTAsMHgwYiwweDRjLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTBkMCwgMCwgezB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ZTEsMHgwMCwweDIyLDB4ODAgfX0sCi0gezE2LCAweGUwZTAsIDAsIHsweDBlLDB4MDAsMHgwYiwweDI0LDB4MDAsMHhjMCwweDQ0LDB4MjgsMHhhZCwweDBmLDB4MjAsMHgwMiwweGM4LDB4MDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhlMGYwLCAwLCB7MHgxYywweGMwLDB4MGMsMHgwMSwweDAzLDB4NDgsMHg0YywweGYyLDB4MDQsMHgzMCwweGMwLDB4MGYsMHgxNSwweDAzLDB4ODAsMHg0MCB9fSwKLSB7MTYsIDB4ZTEwMCwgMCwgezB4YzEsMHgwMCwweDE0LDB4YzgsMHgwZiwweDAwLDB4MDMsMHhkYSwweDAyLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDQwLDB4ZjcsMHgwMCwweDNmLDB4YzAsMHg4ZiwweGMwLDB4MDMsMHhlNCwweDAwLDB4ZmEsMHgwMSwweDNmIH19LAotIHsxNiwgMHhlMTIwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgyMywweGZjLDB4MDgsMHhmYiwweDAwLDB4M2YsMHg4MCwweDBmLDB4ZjAsMHgwMSwweGZjLDB4MTAsMHhmZiB9fSwKLSB7MTYsIDB4ZTEzMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGUsMHhkMSwweDAzLDB4ZmMsMHg0MiwweGZlLDB4ODAsMHgzYiwweGMwLDB4MGYsMHhjMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGUxNDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHg0MCwweGM4LDB4MDAsMHgzZSwweGMwIH19LAotIHsxNiwgMHhlMTUwLCAwLCB7MHgwZiwweDkwLDB4MDMsMHhlZSwweDA4LDB4Y2IsMHgwMCwweDMyLDB4YzAsMHgwZiwweGEwLDB4MjMsMHhlNiwweDAzLDB4Y2IsMHg0YyB9fSwKLSB7MTYsIDB4ZTE2MCwgMCwgezB4MzIsMHg0MCwweDBmLDB4YjAsMHgwNywweGU4LDB4MDAsMHhmOSwweDAwLDB4MTYsMHg0MCwweDBjLDB4YTAsMHgwYiwweDZjLDB4MDAgfX0sCi0gezE2LCAweGUxNzAsIDAsIHsweGNmLDB4MDIsMHgzMiwweGM1LDB4MGMsMHg4MCwweDAzLDB4MDIsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHg4MCwweDg0LDB4MDQsMHgyZCwweGMxLDB4MGIsMHg0MCwweDQwLDB4ZGMsMHgwMCwweDg3LDB4MDQsMHgyMSB9fSwKLSB7MTYsIDB4ZTE5MCwgMCwgezB4YzAsMHg0YiwweDcwLDB4MTIsMHhmYywweDAxLDB4OGYsMHg2MCwweDI5LDB4NDAsMHgwYiwweDcwLDB4MTMsMHg5YywweDAwLDB4YjUgfX0sCi0gezE2LCAweGUxYTAsIDAsIHsweDAwLDB4YTMsMHg0MCwweDBhLDB4NjAsMHgwMiwweDAwLDB4MDAsMHg4NCwweDAwLDB4MjEsMHhjMCwweDA4LDB4NDAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhlMWIwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg4NywweDgwLDB4MmQsMHhhMiB9fSwKLSB7MTYsIDB4ZTFjMCwgMCwgezB4MGIsMHg0YywweDE2LDB4ZDYsMHgwOCwweDk3LDB4ODgsMHgyMSwweGEwLDB4NGIsMHg2OCwweDAyLDB4ZGUsMHgwNCwweGE3LDB4ODAgfX0sCi0gezE2LCAweGUxZDAsIDAsIHsweDIxLDB4ZTAsMHgwYiwweDQ4LDB4MDIsMHhkYSwweDA0LDB4YjYsMHg4MiwweDI1LDB4NjAsMHgwYSwweGU4LDB4NjIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhlMWUwLCAwLCB7MHg4NywweDgwLDB4MjAsMHhlOCwweDA4LDB4NDgsMHgwMiwweDA4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4YiwweDgwLDB4NmMsMHhmMCwweDBiLDB4M2MsMHgwMiwweGNlLDB4NDYsMHg5YiwweGMwLDB4MjAgfX0sCi0gezE2LCAweGUyMDAsIDAsIHsweGU0LDB4MGIsMHgzYywweDAyLDB4Y2MsMHgyMCwweGEzLDB4MDAsMHgyOCwweGUwLDB4MGIsMHgzMCwweDAyLDB4OGQsMHg4MCwweGIxIH19LAotIHsxNiwgMHhlMjEwLCAwLCB7MHg4MCwweDIyLDB4NDQsMHgwYSwweDIxLDB4MGEsMHgwMywweDgyLDB4ODAsMHg4MCwweGEwLDB4YzAsMHgwOCwweDA2LDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4ZTIyMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAyLDB4Y2UsMHg4MCwweDNmLDB4YTAgfX0sCi0gezE2LCAweGUyMzAsIDAsIHsweDBmLDB4ZTAsMHgwMywweGZhLDB4NDAsMHhkZSwweGMwLDB4YjMsMHg5MCwweDBmLDB4ZWEsMHgxMywweGY5LDB4MDgsMHhlYSwweDA0IH19LAotIHsxNiwgMHhlMjQwLCAwLCB7MHgzMywweDgyLDB4OGYsMHhlNCwweDAzLDB4ZmIsMHgwOCwweGZlLDB4YTAsMHgzNiwweGEwLDB4MGMsMHhhYywweDBiLDB4NmIsMHg4MiB9fSwKLSB7MTYsIDB4ZTI1MCwgMCwgezB4YzYsMHhhMCwweDMyLDB4ODAsMHgyYywweGU0LDB4MDMsMHgzYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyNjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHg5MCwweDNlLDB4MDIsMHgwZiwweDgwLDB4ODMsMHhlMSwweDAwLDB4ZTgsMHgyMCwweDNlIH19LAotIHsxNiwgMHhlMjcwLCAwLCB7MHgwMywweDBmLDB4ODIsMHgwMywweGUxLDB4NDAsMHhkOCwweDAwLDB4M2UsMHgyMCwweDBmLDB4MDAsMHg5MywweGEwLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4ZTI4MCwgMCwgezB4MDAsMHgzZSwweDEwLDB4OGYsMHgwOCwweDBiLDB4ZjAsMHgwMCwweGZjLDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGUyOTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGU5LDB4MDAsMHgzNiwweDQwIH19LAotIHsxNiwgMHhlMmEwLCAwLCB7MHgwZiwweDk0LDB4MDcsMHhlNiwweDAwLDB4ZjksMHg4MCwweGIwLDB4NDAsMHgwYywweDk0LDB4MDMsMHhlNCwweDQwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZTJiMCwgMCwgezB4MzIsMHg0MCwweDBmLDB4OTQsMHgwYiwweGE0LDB4MDAsMHg3MSwweGMwLDB4MzIsMHg0MCwweDJjLDB4OTQsMHgyMywweDI0LDB4MDIgfX0sCi0gezE2LCAweGUyYzAsIDAsIHsweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmQwLCAwLCB7MHg4MCwweDA0LDB4NDQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHg5OCwweDAyLDB4ZTYsMHg2MCwweGI5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZTJlMCwgMCwgezB4NjAsMHgwYSwweDljLDB4MDIsMHhlNiwweDI0LDB4YjksMHgwNCwweDM2LDB4NDAsMHgwYiwweDk4LDB4MDAsMHgyNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGUyZjAsIDAsIHsweDgwLDB4YTIsMHg1MiwweDA4LDB4OTAsMHgwMiwweDI0LDB4MDAsMHg4OSwweDQwLDB4MjIsMHg0MCwweDY4LDB4OTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhlMzAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDAsMHhhOSwweDAwLDB4MjYsMHg0MCB9fSwKLSB7MTYsIDB4ZTMxMCwgMCwgezB4MDMsMHg5NCwweDAyLDB4ZTQsMHgwMSwweGI5LDB4MTAsMHgyMiwweDU1LDB4MDgsMHg5MCwweDIyLDB4ZTQsMHgwMCwweGIxLDB4MDAgfX0sCi0gezE2LCAweGUzMjAsIDAsIHsweDI2LDB4NDAsMHgwYiwweDkwLDB4MDAsMHgyYywweDA5LDB4YjksMHgwMCwweDIyLDB4NjAsMHgwOCwweDkwLDB4MGEsMHgxYywweDA0IH19LAotIHsxNiwgMHhlMzMwLCAwLCB7MHg4ZCwweDA4LDB4YTAsMHg0MCwweDA4LDB4MTAsMHg4MiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM0MCwgMCwgezB4MDgsMHgwNCwweDA2LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MCwweDBiLDB4MTIsMHg0MiwweGM0LDB4ODAsMHhiMSwweDA0LDB4MjAgfX0sCi0gezE2LCAweGUzNTAsIDAsIHsweDUwLDB4MGEsMHgxNCwweDAyLDB4YzUsMHgwMCwweGIxLDB4MjIsMHgyNCwweDQwLDB4MGIsMHgxMiwweDIyLDB4MDQsMHgwMSwweGIxIH19LAotIHsxNiwgMHhlMzYwLCAwLCB7MHg0MCwweDIwLDB4NTAsMHgwOCwweDEwLDB4MGEsMHgxNSwweDAwLDB4ODUsMHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MGEsMHgwYSB9fSwKLSB7MTYsIDB4ZTM3MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTgsMHg1MCwweDM2LDB4MDAgfX0sCi0gezE2LCAweGUzODAsIDAsIHsweDBmLDB4ODUsMHgwMiwweGUxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHgwMCwweDBjLDB4YTAsMHgyMywweGUwLDB4MTAsMHhmOCwweDUwIH19LAotIHsxNiwgMHhlMzkwLCAwLCB7MHhiMiwweDE0LDB4MGYsMHhhNSwweDAzLDB4YTEsMHg0OCwweGZhLDB4MDAsMHhiMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MjAsMHgwNCB9fSwKLSB7MTYsIDB4ZTNhMCwgMCwgezB4YzQsMHgwMiwweDMyLDB4MDAsMHgwYywweDAwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzYjAsIDAsIHsweDk4LDB4MWQsMHhlNSwweDAwLDB4ZmQsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQxLDB4MDMsMHhkNCwweDQ0LDB4ZjUsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlM2MwLCAwLCB7MHg1MSwweDBmLDB4ZDQsMHgwMywweGY1LDB4MDAsMHhmOSwweDEwLDB4M2IsMHg0MCwweDBmLDB4ZDEsMHgwMCwweGY1LDB4MTAsMHhmNSB9fSwKLSB7MTYsIDB4ZTNkMCwgMCwgezB4NDAsMHg3ZiwweDQwLDB4MGYsMHg1NCwweDJiLDB4ZTUsMHgwMCwweGY5LDB4NDAsMHgzNiwweDUwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGUzZTAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgxMCwweGJkLDB4NDAsMHgzMywweDQwIH19LAotIHsxNiwgMHhlM2YwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzNywweDgwLDB4Y2QsMHgwMCwweDNmLDB4NDAsMHgwZiwweGQwLDB4MDMsMHhmNCwweDAwLDB4ZTksMHhhMCB9fSwKLSB7MTYsIDB4ZTQwMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4ZGUsMHgxNywweGE0LDB4MDgsMHhmZCwweGMwLDB4MzMsMHg0MSwweDhkLDB4ZGEsMHgxMywweDI2LDB4YTAgfX0sCi0gezE2LCAweGU0MTAsIDAsIHsweGY5LDB4YTgsMHgzMiwweDc4LDB4MGMsMHhiNCwweDBiLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDIwLCAwLCB7MHgzOCwweDEwLDB4ZTEsMHgwMCwweGI4LDB4YTAsMHgzNiwweDIwLDB4MGIsMHg4YSwweDgyLDB4YTIsMHg4MCwweDJhLDB4YTgsMHgyZSB9fSwKLSB7MTYsIDB4ZTQzMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MTIsMHhlMCwweDA0LDB4YjgsMHhhMSwweDJlLDB4MjgsMHg0YSwweDhlLDB4MDIsMHgyYSwweGEwLDB4YmEgfX0sCi0gezE2LCAweGU0NDAsIDAsIHsweGMwLDB4MjIsMHgyOCwweDA4LDB4ODUsMHgwMiwweDIxLDB4MDgsMHhiOCwweGU4LDB4YTIsMHgzYywweDA4LDB4YzgsMHgwMiwweDBlIH19LAotIHsxNiwgMHhlNDUwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM1LDB4MDAsMHhiOSwweDAwLDB4MjAsMHg0YSB9fSwKLSB7MTYsIDB4ZTQ2MCwgMCwgezB4MGIsMHgxNCwweDAyLDB4MDUsMHg4MCwweDAxLDB4MDAsMHgyYywweDQxLDB4MGIsMHgxMCwweDAyLDB4YzQsMHgwNCwweGExLDB4NGEgfX0sCi0gezE2LCAweGU0NzAsIDAsIHsweDJlLDB4NDIsMHgwOCwweDE0LDB4MDIsMHg4NCwweDEwLDB4YjEsMHg2MCwweGEwLDB4NGEsMHgwOSwweDEwLDB4MDIsMHg0NCwweDAwIH19LAotIHsxNiwgMHhlNDgwLCAwLCB7MHhiNSwweDAxLDB4MjksMHg0MCwweDE4LDB4ZDIsMHgwMiwweDEyLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDIxLDB4MjYsMHg0MCwweDBiLDB4OTYsMHgwMiwweGE0LDB4MTAsMHhhOSwweDAwLDB4MmUgfX0sCi0gezE2LCAweGU0YTAsIDAsIHsweDQwLDB4MGIsMHg5NiwweDEyLDB4ZTQsMHgyMCwweGI5LDB4MDAsMHgyZSwweDQxLDB4MGEsMHg5MCwweDQyLDB4MjQsMHgwMCwweGI5IH19LAotIHsxNiwgMHhlNGIwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOCwweDk4LDB4MjIsMHg2NCwweDAwLDB4YjksMHgyMCwweDJiLDB4NDEsMHgyOCwweGQ0LDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ZTRjMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTEsMHhlNCwweDAwLDB4ZjksMHhlMCwweDMyLDB4NTggfX0sCi0gezE2LCAweGU0ZDAsIDAsIHsweDBmLDB4OTgsMHgwMywweDI2LDB4NDAsMHhjOSwweDQwLDB4M2UsMHg1OCwweDBmLDB4OWMsMHgwMywweGU0LDB4MDAsMHhlOSwweDAwIH19LAotIHsxNiwgMHhlNGUwLCAwLCB7MHg2ZSwweDQwLDB4MGMsMHg5YSwweDAyLDB4YTYsMHgwMCwweGY5LDB4NDQsMHgzMiwweDQwLDB4MGQsMHg5YSwweDBiLDB4NjQsMHg4NCB9fSwKLSB7MTYsIDB4ZTRmMCwgMCwgezB4ZjksMHgwMCwweGJhLDB4NDAsMHgwYywweDE4LDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MDAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwMCwweDNlLDB4NTAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDAwLDB4ZjksMHgwNCwweDNlIH19LAotIHsxNiwgMHhlNTEwLCAwLCB7MHg0OCwweDBmLDB4OTAsMHgwMywweGU0LDB4NDAsMHhmOSwweDAwLDB4M2UsMHg2NSwweDBmLDB4OTksMHg4MSwweGU0LDB4NTAsMHhmOSB9fSwKLSB7MTYsIDB4ZTUyMCwgMCwgezB4MjAsMHgzZSwweDQwLDB4OGYsMHg5MCwweDAzLDB4YTQsMHg4MCwweGY5LDB4MDAsMHgzNCwweDQwLDB4MGYsMHg5MiwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGU1MzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGY4LDB4NDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHhlNTQwLCAwLCB7MHgwZSwweDg0LDB4MDMsMHg2MCwweDA4LDB4YzgsMHgwMCwweDNlLDB4MDgsMHgwZiwweDgwLDB4ODMsMHhlMCwweDI4LDB4ZTgsMHgwNCB9fSwKLSB7MTYsIDB4ZTU1MCwgMCwgezB4M2UsMHgwMCwweDBjLDB4ODQsMHgwMywweDIxLDB4MWMsMHhmMCwweDQ4LDB4MzIsMHgwMCwweDBiLDB4MDAsMHgwMywweGUwLDB4MDIgfX0sCi0gezE2LCAweGU1NjAsIDAsIHsweGMwLDB4MDAsMHgzMiwweDAwLDB4MGMsMHhjMCwweDBiLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTcwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGIyLDB4ODgsMHgyZSwweDgwLDB4MDgsMHhlMCwweDAzLDB4N2EsMHg4MCwweDhlLDB4MDAsMHgyZiB9fSwKLSB7MTYsIDB4ZTU4MCwgMCwgezB4YTAsMHgwYiwweGU4LDB4MDIsMHhmOSwweDEwLDB4YmEsMHgwMCwweDJjLDB4ODAsMHgyOCwweGU0LDB4MDIsMHgyOCwweDAwLDB4YmUgfX0sCi0gezE2LCAweGU1OTAsIDAsIHsweDQwLDB4MjMsMHhiOCwweDA4LDB4ZTgsMHgwMiwweGU4LDB4MDQsMHhjYSwweDIwLDB4YTIsMHg4MCwweDA4LDB4ZTgsMHgwMiwweDBhIH19LAotIHsxNiwgMHhlNWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDEsMHhiMywweDAwLDB4MmMsMHg0MCB9fSwKLSB7MTYsIDB4ZTViMCwgMCwgezB4MDgsMHhiOCwweDQyLDB4NmMsMHgwMiwweDgzLDB4MDAsMHgyYywweGUwLDB4MGIsMHgzOCwweDAwLDB4Y2YsMHg0MCwweGIzLDB4MDAgfX0sCi0gezE2LCAweGU1YzAsIDAsIHsweDJjLDB4YzAsMHgwOCwweGI0LDB4MGEsMHgwYywweDAwLDB4YjMsMHg0MCwweGEyLDB4ODIsMHgwYSwweDM5LDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHhlNWQwLCAwLCB7MHg5MywweDgwLDB4YTAsMHhjMCwweDI5LDB4MjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVlMCwgMCwgezB4YTAsMHgwMSwweDFkLDB4MDAsMHhiNywweDAwLDB4MmQsMHg2NCwweDI4LDB4NzQsMHgwMiwweDQwLDB4MDAsMHg4NywweDA1LDB4MmQgfX0sCi0gezE2LCAweGU1ZjAsIDAsIHsweDkwLDB4MGIsMHg3NCwweDAyLDB4ZGMsMHgxMCwweGI3LDB4MzAsMHgyZCwweGM4LDB4MDgsMHgzNCwweDA2LDB4MWMsMHg4MCwweGI3IH19LAotIHsxNiwgMHhlNjAwLCAwLCB7MHgwMCwweGExLDB4YzAsMHgwYSwweDcwLDB4MDIsMHhkZSwweDgwLDB4ODMsMHgwMCwweDAxLDB4MDAsMHgwOSwweDYwLDB4ODIsMHgyMCB9fSwKLSB7MTYsIDB4ZTYxMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxYSwweDAwLDB4ZjcsMHg4MCwweDNkLDB4NjAgfX0sCi0gezE2LCAweGU2MjAsIDAsIHsweDBlLDB4ZDgsMHgwYiwweDVlLDB4MDAsMHhjNywweDgwLDB4M2QsMHhlMCwweDBmLDB4NjgsMHgwMywweGRlLDB4MTAsMHhmNywweGE5IH19LAotIHsxNiwgMHhlNjMwLCAwLCB7MHg3ZiwweGU4LDB4NDgsMHg3OCwweDAzLDB4MWYsMHgzMCwweGZmLDB4OTQsMHgzMywweGEwLDB4MGUsMHg3OCwweDAzLDB4Y2YsMHgyNCB9fSwKLSB7MTYsIDB4ZTY0MCwgMCwgezB4ZDYsMHg4MCwweGIxLDB4ZTAsMHgwZCwweGY4LDB4NDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4YmIsMHgwMCwweDBjLDB4NDAsMHgwZiwweGIwLDB4MDMsMHhlYywweDA4LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhlNjYwLCAwLCB7MHgwMCwweDBmLDB4OTAsMHg0MSwweGVjLDB4MDAsMHhmYiwweDYxLDB4N2UsMHhkMCwweDBmLDB4YjAsMHgwMywweGVjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZTY3MCwgMCwgezB4NDAsMHgzZiwweDliLDB4MGMsMHhiMCwweDAzLDB4ZWQsMHg5MCwweGZhLDB4MDAsMHgzYywweDAwLDB4MGUsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGU2ODAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZGUsMHgwMCwweGVmLDB4ODAsMHgzMywweDYwIH19LAotIHsxNiwgMHhlNjkwLCAwLCB7MHgwZCwweGQ4LDB4MDMsMHgzNiwweDQwLDB4ZWYsMHg5MCwweDNlLDB4ZTAsMHgwZiwweGY5LDB4MDMsMHhmZSwweDAwLDB4ZmYsMHg4MCB9fSwKLSB7MTYsIDB4ZTZhMCwgMCwgezB4MzMsMHhmZSwweDBjLDB4ZmEsMHgwMywweGZlLDB4MDAsMHhjZiwweDgwLDB4YjMsMHhlMCwweDBmLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGU2YjAsIDAsIHsweGNkLDB4ODAsMHgzMywweGUwLDB4MGYsMHhjOCwweDQzLDB4YzAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmMwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwMCwweDg1LDB4MDgsMHgzNSwweDQwLDB4MDgsMHg3MCwweDAzLDB4NTIsMHgyMCwweDg3LDB4MTEsMHgyYyB9fSwKLSB7MTYsIDB4ZTZkMCwgMCwgezB4ZWMsMHgwYiwweDcxLDB4MDIsMHhkMCwweDAwLDB4ZTcsMHgwMCwweDM1LDB4YzQsMHgwOCwweDc0LDB4MDIsMHhkYywweDQwLDB4ODcgfX0sCi0gezE2LCAweGU2ZTAsIDAsIHsweDEwLDB4MjEsMHhjMCwweDBiLDB4NzAsMHgwMiwweGZjLDB4ODAsMHg4NSwweDA4LDB4MjEsMHgwMCwweDBiLDB4NDEsMHg4MiwweGVhIH19LAotIHsxNiwgMHhlNmYwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk4LDB4MDAsMHhhZiwweDAwLDB4MjMsMHg1MCB9fSwKLSB7MTYsIDB4ZTcwMCwgMCwgezB4MDksMHg1MCwweDAyLDB4MWMsMHg4MCwweGE3LDB4MDEsMHgyOSwweGMwLDB4MWIsMHg2MCwweDA2LDB4ZGMsMHg0MCwweGI3LDB4MTAgfX0sCi0gezE2LCAweGU3MTAsIDAsIHsweDIxLDB4YzgsMHg0YSwweDUyLDB4MDIsMHhkYywweDAwLDB4ODMsMHgwMCwweDIxLDB4YzAsMHgwYiwweDcwLDB4MDIsMHhkYywweDEzIH19LAotIHsxNiwgMHhlNzIwLCAwLCB7MHg4NCwweDAwLDB4MjUsMHhjMCwweDBiLDB4NTgsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTczMCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDAsMHg4MSwweDgwLDB4MjQsMHg0MCwweDA4LDB4M2UsMHgwMiwweDZlLDB4MDAsMHg4OSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGU3NDAsIDAsIHsweGMwLDB4MGIsMHhiNCwweDAyLDB4Y2EsMHg4MCwweGEzLDB4MDAsMHgyNCwweGMwLDB4MGEsMHgwNCwweDAyLDB4ZWMsMHg0MCwweDgyIH19LAotIHsxNiwgMHhlNzUwLCAwLCB7MHgwYSwweDIwLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjZCwweDEwLDB4ODAsMHhjMCwweGE0LDB4MDAsMHgwYiwweDFjLDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZTc2MCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHg4NCwweDAwLDB4ZWIsMHg4MCwweDMzLDB4NDAgfX0sCi0gezE2LCAweGU3NzAsIDAsIHsweDBkLDB4OGMsMHg4MywweDI2LDB4MDAsMHhlOSwweGEwLDB4M2UsMHg3OCwweDhmLDB4OTAsMHg4MywweGUxLDB4MDAsMHhmZiwweDAwIH19LAotIHsxNiwgMHhlNzgwLCAwLCB7MHgzMSwweGQxLDB4MGUsMHg4NCwweDIzLDB4ZmMsMHgwMCwweGNiLDB4ODIsMHgzMiwweGMwLDB4OGYsMHhiMCwweDAyLDB4ZmQsMHg0MCB9fSwKLSB7MTYsIDB4ZTc5MCwgMCwgezB4Y2IsMHg4MCwweGI2LDB4YzAsMHgwZiwweGE0LDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3YTAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZmIsMHgwMCwweDNlLDB4NDAsMHgwZiwweGEwLDB4MDMsMHhlMCwweDAwLDB4ZjksMHgwMSwweDNlIH19LAotIHsxNiwgMHhlN2IwLCAwLCB7MHg0MiwweDBmLDB4OTAsMHgwMywweGU1LDB4NTQsMHhlMywweDAwLDB4M2UsMHhjOCwweDA1LDB4OTMsMHgwMywweGVjLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ZTdjMCwgMCwgezB4YzEsMHgzZSwweGMwLDB4MGYsMHgyMCwweDAzLDB4Y2MsMHg0OCwweGYzLDB4MDgsMHgzYSwweDAwLDB4MGYsMHhhMCwweDQzLDB4ZTAgfX0sCi0gezE2LCAweGU3ZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGNmLDB4MDAsMHgzZiwweDQwIH19LAotIHsxNiwgMHhlN2UwLCAwLCB7MHgwZiwweDMwLDB4MDEsMHgyYywweDBhLDB4Y2QsMHgxMCwweDMzLDB4MDAsMHgwZiwweGQwLDB4ODMsMHgxNCwweDAwLDB4Y2IsMHgwMiB9fSwKLSB7MTYsIDB4ZTdmMCwgMCwgezB4MzMsMHhjMCwweDBjLDB4ZTEsMHgwMywweGVjLDB4MTAsMHhjZCwweDAwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgzMywweDNjLDB4MDAgfX0sCi0gezE2LCAweGU4MDAsIDAsIHsweGVhLDB4MDAsMHgzMywweGMwLDB4MGMsMHhmMCwweDgzLDB4YzgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODEwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgwMCwweDhiLDB4MDAsMHgyZSwweDQwLDB4MGIsMHhiYywweDAyLDB4MmUsMHgwMCwweDBiLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZTgyMCwgMCwgezB4MzAsMHgwYiwweDljLDB4MDIsMHgyNywweDgwLDB4YWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGI4LDB4MDIsMHhlYywweDAwLDB4ODkgfX0sCi0gezE2LCAweGU4MzAsIDAsIHsweGMwLDB4MjAsMHhlMCwweDA4LDB4YWUsMHgwMiwweDJjLDB4MDgsMHg4YSwweDAwLDB4MjIsMHgwMCwweDA4LDB4YjAsMHg0MiwweGU4IH19LAotIHsxNiwgMHhlODQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHg4YiwweDA0LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ZTg1MCwgMCwgezB4OGIsMHg4YywweDAyLDB4YWUsMHgxMCwweDg5LDB4MDAsMHgyMiwweDcwLDB4MGIsMHg4YywweDAyLDB4YTIsMHgwMCwweDhiLDB4MDEgfX0sCi0gezE2LCAweGU4NjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweDgwLDB4MDIsMHhlYywweDEwLDB4ODIsMHg4OCwweGEyLDB4NzAsMHgwOSwweGI4LDB4MDIsMHgyYywweDA4IH19LAotIHsxNiwgMHhlODcwLCAwLCB7MHg4OSwweDAwLDB4MjAsMHhjMCwweDI4LDB4ODAsMHgyMiwweGUwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg4MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHg4MSwweDAwLDB4MmMsMHg0MCwweDBiLDB4MjAsMHgwMiwweDgwLDB4MDAsMHg4MSwweDA0LDB4YTAgfX0sCi0gezE2LCAweGU4OTAsIDAsIHsweDUwLDB4NGIsMHgwMCwweDBhLDB4ODAsMHgwMCwweGEzLDB4MDEsMHgyYSwweGMxLDB4MjAsMHgxMCwweDAyLDB4Y2MsMHgxNCwweDgzIH19LAotIHsxNiwgMHhlOGEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweDIwLDB4MDIsMHgwYywweDAwLDB4ODEsMHgwMCwweGUwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZThiMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDAwLDB4Y2IsMHgwMCwweDNlLDB4NDAgfX0sCi0gezE2LCAweGU4YzAsIDAsIHsweDBmLDB4OTAsMHgwYiwweGFjLDB4ODAsMHhjOSwweDAwLDB4MzIsMHgxMCwweDBmLDB4ODAsMHgwMywweGE0LDB4MDAsMHhjZiwweDAyIH19LAotIHsxNiwgMHhlOGQwLCAwLCB7MHgzMSwweGMwLDB4MGMsMHg4MCwweDEzLDB4ZmMsMHgwMiwweGNkLDB4MDAsMHgzMywweGMwLDB4MmMsMHg5MCwweDAzLDB4M2MsMHgwMiB9fSwKLSB7MTYsIDB4ZThlMCwgMCwgezB4ZTgsMHgwMCwweGIyLDB4YzAsMHgwYywweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ZjAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAyLDB4ZjUsMHgwMCwweDNkLDB4NDAsMHg4ZiwweGYwLDB4MjMsMHg2ZCwweDAwLDB4ZmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHhlOTAwLCAwLCB7MHgwNCwweDBmLDB4YzAsMHgwMywweDcwLDB4MWMsMHhmZiwweDAxLDB4M2YsMHhjMCwweDRmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4ZTkxMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhlMCwweDBmLDB4ZmMsMHgxOCwweGZjLDB4MDAsMHgzZiwweDAwLDB4MGYsMHhkMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGU5MjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmUsMHgwMCwweGQ3LDB4MDIsMHgwZiwweDMwIH19LAotIHsxNiwgMHhlOTMwLCAwLCB7MHgwYywweGYyLDB4MDEsMHg3ZSwweDA2LDB4NDQsMHgzMCwweDNmLDB4MjAsMHgwZSwweGYwLDB4MDIsMHg3YywweDg0LDB4ZmQsMHgyMCB9fSwKLSB7MTYsIDB4ZTk0MCwgMCwgezB4MjcsMHgwOCwweDBjLDB4ZDAsMHgwMSwweDM2LDB4MDAsMHhmZiwweDYwLDB4MzMsMHhjYywweDBiLDB4ZjEsMHgxMywweDJjLDB4YzQgfX0sCi0gezE2LCAweGU5NTAsIDAsIHsweGZmLDB4MzAsMHgwZiwweGNkLDB4MGMsMHhmNCwweDAzLDB4ZjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTYwLCAwLCB7MHg4MCwweDEwLDB4ZWUsMHgwMCwweDhmLDB4YzAsMHgyZSwweDAwLDB4MDgsMHhmYywweDAyLDB4MmUsMHgwMCwweDhhLDB4MzAsMHgyOCB9fSwKLSB7MTYsIDB4ZTk3MCwgMCwgezB4NTIsMHgwOCwweGY2LDB4ODIsMHgzYywweDY4LDB4YmQsMHg5MCwweDMyLDB4MzQsMHg0OCwweDljLDB4MTIsMHgyNiwweDAwLDB4Y2YgfX0sCi0gezE2LCAweGU5ODAsIDAsIHsweDQwLDB4MjMsMHhjYywweDBiLDB4ZjYsMHgwMiwweDNkLDB4MDAsMHhiZiwweDEwLDB4MmYsMHhjYywweDg4LDB4ZjYsMHgwMiwweGUwIH19LAotIHsxNiwgMHhlOTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDAsMHg5MywweDEwLDB4MmMsMHgwOCB9fSwKLSB7MTYsIDB4ZTlhMCwgMCwgezB4MDksMHgzMSwweDAyLDB4NGMsMHgwMCwweDliLDB4MjAsMHg2NCwweDU4LDB4MDMsMHgzMSwweDYyLDB4NGMsMHg4MSwweGExLDB4MDAgfX0sCi0gezE2LCAweGU5YjAsIDAsIHsweDIwLDB4MDAsMHg0OCwweDE0LDB4MDIsMHg0NCwweDAwLDB4OTMsMHgzMCwweDI0LDB4YzAsMHgwYiwweDMzLDB4MDIsMHg4ZCwweDg0IH19LAotIHsxNiwgMHhlOWMwLCAwLCB7MHhiMywweDIwLDB4NmMsMHhjMCwweDJhLDB4MzYsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4MTAsMHg5YiwweDAyLDB4MmUsMHg0MSwweDBiLDB4YjAsMHgwMiwweGE0LDB4MDAsMHg5YSwweDAwLDB4NGEgfX0sCi0gezE2LCAweGU5ZTAsIDAsIHsweDYwLDB4ODgsMHhiMCwweDUyLDB4NmMsMHgwMSwweGI5LDB4MDAsMHgyNiwweDAwLDB4MDgsMHg5MSwweDIyLDB4ZWMsMHgwOCwweGJiIH19LAotIHsxNiwgMHhlOWYwLCAwLCB7MHgwMCwweDI2LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhhYywweDAwLDB4YmIsMHgwNSwweDZlLDB4YzEsMHgwYSwweGIwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZWEwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZGIsMHgwMSwweDNlLDB4MzAgfX0sCi0gezE2LCAweGVhMTAsIDAsIHsweDJkLDB4MzAsMHgwMywweDQ3LDB4NjAsMHhkOCwweGEwLDB4MTYsMHgzOCwweDhmLDB4YjAsMHgwMywweDZjLDB4MDAsMHg3OSwweDAyIH19LAotIHsxNiwgMHhlYTIwLCAwLCB7MHgzMSwweDYwLDB4MGMsMHhjOCwweDBhLDB4NjYsMHgwMCwweGJiLDB4MDAsMHhiNiwweGMwLDB4MGYsMHhiMCwweDBiLDB4YWMsMHgwMCB9fSwKLSB7MTYsIDB4ZWEzMCwgMCwgezB4ZmIsMHgwMSwweDNlLDB4YzEsMHgwZSwweGIwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDEwLDB4ZWYsMHgwOCwweDNmLDB4MjQsMHgwYywweGYwLDB4MDMsMHg3NiwweDIwLDB4ZWUsMHg5MCwweDM1IH19LAotIHsxNiwgMHhlYTUwLCAwLCB7MHg0MCwweDBlLDB4NzAsMHgwMywweGFjLDB4MDAsMHhmZCwweDAwLDB4YmIsMHg2NCwweDBmLDB4ODgsMHgxMywweDM0LDB4ODAsMHhjYiB9fSwKLSB7MTYsIDB4ZWE2MCwgMCwgezB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAzLDB4NmMsMHgwOCwweGZmLDB4MDAsMHgzZSwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGVhNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGZiLDB4ODAsMHgzMiwweDEwIH19LAotIHsxNiwgMHhlYTgwLCAwLCB7MHgwZSwweGIwLDB4MDMsMHhlZCwweDAwLDB4Y2IsMHg1MCwweDNlLDB4NDAsMHg4YywweGIwLDB4NDMsMHgyYywweDEwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4ZWE5MCwgMCwgezB4MzIsMHg2MCwweDBjLDB4NDAsMHgwYiwweDI2LDB4MDAsMHhjMywweDA0LDB4MzYsMHhjMCwweDBjLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGVhYTAsIDAsIHsweDliLDB4MDAsMHhiMCwweGMwLDB4MGMsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWIwLCAwLCB7MHhjOCwweDA1LDB4MGUsMHg4MCwweGJmLDB4MDQsMHgyYSwweDQwLDB4MDAsMHhmNSwweDAwLDB4ZTYsMHgwMCwweDgyLDB4ZDIsMHgyMiB9fSwKLSB7MTYsIDB4ZWFjMCwgMCwgezB4NDAsMHgwZCwweGYwLDB4MjIsMHgzYywweDAwLDB4OTUsMHgwMiwweDM2LDB4NDAsMHgwYSwweDgwLDB4MDIsMHgyZSwweDAwLDB4OGYgfX0sCi0gezE2LCAweGVhZDAsIDAsIHsweDAwLDB4MzcsMHhjMCwweDBhLDB4ZjAsMHg0MiwweDNjLDB4MDAsMHg4ZiwweDAwLDB4MjMsMHhjMCwweDI4LDB4ZjAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhlYWUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHhiMywweDAwLDB4MjIsMHgyMCB9fSwKLSB7MTYsIDB4ZWFmMCwgMCwgezB4NGEsMHgzMCwweDAwLDB4Y2MsMHgwMCwweDgxLDB4YzAsMHgyOCwweDAwLDB4MDgsMHgzMCwweDAyLDB4MGMsMHgxMCwweGExLDB4MDAgfX0sCi0gezE2LCAweGViMDAsIDAsIHsweDI4LDB4ODAsMHgxOCwweDMwLDB4MjIsMHgwNCwweDA0LDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjYywweDA4IH19LAotIHsxNiwgMHhlYjEwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwNiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWIyMCwgMCwgezB4MjAsMHgwMSwweDFlLDB4MDAsMHhiNywweDgwLDB4MjksMHhhMCwweDA4LDB4NzgsMHgwMiwweGZlLDB4MjAsMHg4ZCwweDgwLDB4MjkgfX0sCi0gezE2LCAweGViMzAsIDAsIHsweGU1LDB4NWIsMHgzOCwweDQyLDB4MWUsMHg0MCwweGExLDB4ODEsMHgyNSwweGE4LDB4MDgsMHg3OSwweDAyLDB4MzcsMHgwMCwweDg3IH19LAotIHsxNiwgMHhlYjQwLCAwLCB7MHg4MCwweDI1LDB4ZTAsMHgwYSwweDc4LDB4MGEsMHhkZSwweDgxLDB4ODcsMHg4MCwweDI1LDB4ZTUsMHg0OCwweDc4LDB4MDIsMHhjOCB9fSwKLSB7MTYsIDB4ZWI1MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4YjMsMHgxMCwweDMwLDB4MTIgfX0sCi0gezE2LCAweGViNjAsIDAsIHsweDBlLDB4MzAsMHgxMiwweGNjLDB4YzAsMHhjMywweDAwLDB4MzgsMHg4MCwweDBjLDB4MzEsMHgwNiwweDBjLDB4NDAsMHhmMSwweDAwIH19LAotIHsxNiwgMHhlYjcwLCAwLCB7MHgzOCwweDgwLDB4MGMsMHgzMCwweDQzLDB4MDQsMHg0MiwweGMzLDB4MDAsMHgzNiwweGMwLDB4MGMsMHgzMiwweDAzLDB4Y2UsMHhjMCB9fSwKLSB7MTYsIDB4ZWI4MCwgMCwgezB4ZGIsMHgwMCwweDMwLDB4YzAsMHgwYywweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViOTAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmYsMHgxMCwweDNkLDB4ODQsMHg0ZiwweGYxLDB4MDMsMHhkMCwweDQwLDB4ZmMsMHgxMCwweDMzIH19LAotIHsxNiwgMHhlYmEwLCAwLCB7MHg4MCwweDVkLDB4YjEsMHg4MywweGZjLDB4NTAsMHhkZCwweDBhLDB4MjUsMHg4OSwweDBmLDB4YjgsMHgwMywweGQ0LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZWJiMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGYsMHhmNCwweDAzLDB4M2MsMHg0MCwweGZmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGViYzAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGZiLDB4MjAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhlYmQwLCAwLCB7MHgwZiwweGI1LDB4MDMsMHgyOSwweDIwLDB4ZjksMHgwMCwweDMyLDB4YTAsMHgwYywweGIwLDB4ODMsMHhlYywweDAwLDB4NDksMHhjOCB9fSwKLSB7MTYsIDB4ZWJlMCwgMCwgezB4YjIsMHhjMCwweDhjLDB4YTAsMHgwMywweDY0LDB4MDAsMHhmYiwweDA4LDB4MTIsMHhlYSwweDBjLDB4YjAsMHgwYiwweDJjLDB4ODAgfX0sCi0gezE2LCAweGViZjAsIDAsIHsweGZiLDB4MjAsMHgyZSwweGQyLDB4NmMsMHhiNiwweDQzLDB4ZWEsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzAwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI3LDB4NDksMHgyZCwweDAwLDB4MGIsMHgzMCwweDgyLDB4MTAsMHgwMSwweGI1LDB4MDIsMHg4MyB9fSwKLSB7MTYsIDB4ZWMxMCwgMCwgezB4YzAsMHgxYSwweDcyLDB4MjIsMHhkZCwweDQxLDB4ODUsMHgwMCwweDYxLDB4YzAsMHgxOCwweDIwLDB4MjAsMHgxNCwweDAwLDB4YmYgfX0sCi0gezE2LCAweGVjMjAsIDAsIHsweDQwLDB4MzUsMHhkMCwweDBkLDB4MzQsMHgwMiwweDFkLDB4MjAsMHhiNywweDI4LDB4MjUsMHhjMSwweDA4LDB4NzQsMHg4MiwweGQyIH19LAotIHsxNiwgMHhlYzMwLCAwLCB7MHgwNiwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDQsMHgzNywweGEwLDB4MmQsMHgyMCB9fSwKLSB7MTYsIDB4ZWM0MCwgMCwgezB4MGIsMHg3YSwweDEyLDB4MTYsMHgwMSwweGIzLDB4ODAsMHgyMSwweGUyLDB4MDgsMHg3OCwweDQyLDB4OWUsMHgwMCwweDg1LDB4ODAgfX0sCi0gezE2LCAweGVjNTAsIDAsIHsweDIwLDB4ZTEsMHgxOCwweDY4LDB4MDIsMHg1NiwweDAwLDB4YjcsMHhhMCwweDI1LDB4ZTAsMHgwOCwweDdhLDB4MDIsMHgxZSwweDAwIH19LAotIHsxNiwgMHhlYzYwLCAwLCB7MHhiNywweDkwLDB4MmMsMHhlNSwweDg4LDB4N2EsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM3MCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHhiMywweDAwLDB4NmMsMHgyNCwweDFiLDB4MzAsMHgwMiwweDAwLDB4MDAsMHhiMCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGVjODAsIDAsIHsweGY4LDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgwMCwweDgxLDB4MDAsMHgyMCwweGQ4LDB4MTgsMHgyMCwweDAyLDB4MDQsMHgwMCwweGIzIH19LAotIHsxNiwgMHhlYzkwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwLDB4YjMsMHgwMCwweDI2LDB4YzAsMHgwOCwweDMwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZWNhMCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAwLDB4ZmEsMHgwMCwweDNkLDB4ODAgfX0sCi0gezE2LCAweGVjYjAsIDAsIHsweDBmLDB4MjAsMHgwYiwweDI4LDB4ODAsMHhmZSwweDAwLDB4MzMsMHhhMCwweDBjLDB4YTAsMHgwMywweGU4LDB4MDIsMHhjYSwweDAyIH19LAotIHsxNiwgMHhlY2MwLCAwLCB7MHgzMiwweDkwLDB4MmMsMHhlNCwweDAzLDB4NzgsMHgwMCwweGZhLDB4MDAsMHgzMiwweDgwLDB4MGMsMHhhMCwweDAzLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ZWNkMCwgMCwgezB4ZmEsMHgwMCwweDNlLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjZTAsIDAsIHsweDQ4LDB4MDAsMHhlMSwweDAwLDB4ZjAsMHgwMCwweDNlLDB4MDAsMHg0ZiwweDgwLDB4MDMsMHhlMCwweDgwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHhlY2YwLCAwLCB7MHgwMCwweDBmLDB4ODAsMHgyMywweGMwLDB4MDAsMHhmOCwweDAyLDB4M2MsMHgwMCwweDBmLDB4YzAsMHg4MywweDYwLDB4MDAsMHhiOCB9fSwKLSB7MTYsIDB4ZWQwMCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDIzLDB4ZTAsMHgxOCwweGY4LDB4MDEsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGVkMTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTYsMHgwMCwweGY5LDB4MjEsMHgzMiwweDYwIH19LAotIHsxNiwgMHhlZDIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyYywweDQ0LDB4ZjksMHgwMCwweGIyLDB4NDAsMHgwZiwweDkwLDB4MWIsMHgyNCwweDAwLDB4ZTksMHgwMCB9fSwKLSB7MTYsIDB4ZWQzMCwgMCwgezB4M2UsMHg0MCwweDBjLDB4MTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4MTAsMHgzMywweDI0LDB4MTAgfX0sCi0gezE2LCAweGVkNDAsIDAsIHsweGYxLDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweGI5LDB4NDAsMHhhMiwweDQxLDB4MDgsMHg5MCwweDAyLDB4MjQsMHg4MCwweGU5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWQ2MCwgMCwgezB4NDAsMHgwYiwweDkwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMCwweDZlLDB4NDEsMHgxOCwweDkwLDB4NDIsMHgyNCwweDAwLDB4YjkgfX0sCi0gezE2LCAweGVkNzAsIDAsIHsweDA0LDB4MmEsMHg0MSwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHhmOSwweDAwLDB4MmEsMHg0MCwweDBhLDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhlZDgwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwMSwweDI0LDB4ODAsMHhiOSwweDQyLDB4NjIsMHg0OCB9fSwKLSB7MTYsIDB4ZWQ5MCwgMCwgezB4MjgsMHg5MCwweDBhLDB4MjQsMHgwMCwweGIxLDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxMCwweDAyLDB4MjQsMHgxMCwweGI5LDB4MDIgfX0sCi0gezE2LCAweGVkYTAsIDAsIHsweDJlLDB4NDAsMHgwOCwweGQwLDB4MDIsMHhhNCwweDAwLDB4YjEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgyNCwweDA0IH19LAotIHsxNiwgMHhlZGIwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRjMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDAsMHhiMSwweDIwLDB4NjAsMHg0MCwweDA4LDB4MTIsMHgwMiwweDA0LDB4MDAsMHhhMSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGVkZDAsIDAsIHsweDQwLDB4MGIsMHgxMiwweDAyLDB4MDQsMHg4MCwweDkxLDB4MjAsMHgyZCwweDY4LDB4MDgsMHg1MiwweDEyLDB4MDQsMHgwMCwweGIxIH19LAotIHsxNiwgMHhlZGUwLCAwLCB7MHgyOCwweDI4LDB4NGEsMHgwOSwweDEyLDB4ODIsMHg0NCwweGEwLDB4YjEsMHgyYywweDI4LDB4NGEsMHgwYSwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ZWRmMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgwMCwweDMyLDB4MTQgfX0sCi0gezE2LCAweGVlMDAsIDAsIHsweDBjLDB4ODAsMHgwMywweDIwLDB4MDAsMHhmOCwweDUwLDB4MzIsMHgxNCwweDBmLDB4ODUsMHgwMywweDAxLDB4NDAsMHhmOCwweDAwIH19LAotIHsxNiwgMHhlZTEwLCAwLCB7MHgyZSwweDAwLDB4MjgsMHhjMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MjQsMHgzMCwweDA4LDB4MGYsMHg4MiwweDIzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4ZWUyMCwgMCwgezB4ZjgsMHgyMCwweDMyLDB4MDgsMHgwYywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMzAsIDAsIHsweDk4LDB4MWQsMHhlNCwweDA4LDB4ZjksMHgxMCwweDNmLDB4NDAsMHg4ZiwweDkxLDB4MTMsMHhlNCwweDAwLDB4ZWQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhlZTQwLCAwLCB7MHg1MCwweDBmLDB4OTEsMHgwMywweGU0LDB4NDAsMHhhNSwweDEwLDB4M2UsMHg0NCwweDBmLDB4OTEsMHgwMywweGY0LDB4MDQsMHhmOSB9fSwKLSB7MTYsIDB4ZWU1MCwgMCwgezB4MjgsMHgzZSwweDRiLDB4MGIsMHg5MiwweGEzLDB4ZTQsMHhhMCwweGU5LDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweGVlNjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjQsMHgwMCwweGNkLDB4MDAsMHgzMywweDQwIH19LAotIHsxNiwgMHhlZTcwLCAwLCB7MHg4MCwweGQwLDB4MDEsMHhmNCwweDAwLDB4YTUsMHgwMCwweDI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyNiwweDAwLDB4ZjEsMHg4OCB9fSwKLSB7MTYsIDB4ZWU4MCwgMCwgezB4M2UsMHg2OCwweDBkLDB4OTgsMHg4MywweDQ0LDB4MDAsMHhjOSwweGMwLDB4M2EsMHg0MCwweDBjLDB4OTgsMHgwMywweDI0LDB4MDggfX0sCi0gezE2LCAweGVlOTAsIDAsIHsweGY5LDB4YTAsMHgzMiwweDc4LDB4MGYsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWEwLCAwLCB7MHgzOCwweDEwLDB4ZTAsMHgwMiwweDg4LDB4MDAsMHhhMiwweDAwLDB4MDgsMHg4MCwweDAyLDB4ZTAsMHgwMCwweDBhLDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4ZWViMCwgMCwgezB4MDAsMHgwYiwweDgwLDB4MDIsMHgyMCwweDAwLDB4YjgsMHg0MCwweDJlLDB4MTQsMHgwOCwweDgwLDB4NDMsMHgzMCwweDAwLDB4ODggfX0sCi0gezE2LCAweGVlYzAsIDAsIHsweGEwLDB4MjIsMHgyYSwweDBhLDB4OGEsMHg0MiwweGEwLDB4MDUsMHhiOCwweDQyLDB4MzIsMHgzOCwweDBiLDB4ODAsMHgwMiwweDBlIH19LAotIHsxNiwgMHhlZWQwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4MDMsMHg5MSwweDAwLDB4MjQsMHg0MCB9fSwKLSB7MTYsIDB4ZWVlMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4YzQsMHgxMSwweGIxLDB4MDQsMHgyMCwweDQxLDB4MWIsMHgxMCwweDIyLDB4NDUsMHgwMCwweGI1LDB4MDAgfX0sCi0gezE2LCAweGVlZjAsIDAsIHsweDI1LDB4NDAsMHgwOSwweDUwLDB4MDIsMHg1NCwweDAxLDB4ODEsMHg0MCwweDJjLDB4NDAsMHgwOSwweDE0LDB4OTIsMHg0NCwweDAwIH19LAotIHsxNiwgMHhlZjAwLCAwLCB7MHhiMSwweDQwLDB4MjQsMHg0YywweDBiLDB4MTQsMHgwYSwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWYxMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHg5OSwweDAwLDB4MjQsMHg0MiwweDBiLDB4OTAsMHgwMiwweGU0LDB4MDEsMHg5OSwweDIwLDB4MjYgfX0sCi0gezE2LCAweGVmMjAsIDAsIHsweDQwLDB4Y2IsMHg5MCwweDAyLDB4NjQsMHgwMCwweGJiLDB4MDAsMHgyZiwweDQxLDB4MGEsMHhkMCwweDAyLDB4MzQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhlZjMwLCAwLCB7MHgwMCwweDI2LDB4NDAsMHgwYiwweDEwLDB4MDIsMHhlNCwweDAwLDB4MzEsMHgwMCwweDYyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4ZWY0MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhjNCwweDAwLDB4ZDksMHgwMSwweDM2LDB4NTAgfX0sCi0gezE2LCAweGVmNTAsIDAsIHsweDJmLDB4OTAsMHgwMywweGU2LDB4NjAsMHhmOSwweDgwLDB4MzYsMHg1MiwweDBiLDB4OTAsMHgwYSwweDY0LDB4MDAsMHhmOSwweDAwIH19LAotIHsxNiwgMHhlZjYwLCAwLCB7MHgzNiwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMiwweDA5LDB4MDAsMHgzZSwweDQwLDB4MGQsMHg5MCwweDAzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4ZWY3MCwgMCwgezB4YjksMHgwMCwweGI2LDB4NDAsMHgwZiwweDkwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmODAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZTEsMHgwMCwweDNhLDB4NDEsMHgwYywweDkwLDB4MjMsMHhlNiwweDIwLDB4ZTksMHgwMCwweGJhIH19LAotIHsxNiwgMHhlZjkwLCAwLCB7MHg3MCwweDBmLDB4OTAsMHgwMywweGE0LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBkLDB4MTAsMHgxMywweGE3LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4ZWZhMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MGUsMHg5MCwweDQzLDB4YTQsMHgwOCwweGY5LDB4MDAsMHgzYSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGVmYjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgyMCwweGY4LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhlZmMwLCAwLCB7MHgwZiwweDgwLDB4ODMsMHgyMSwweDAwLDB4ZjAsMHgwMCwweDNhLDB4MTEsMHgwOSwweDgwLDB4MDMsMHhlMCwweDAwLDB4YzgsMHgwMSB9fSwKLSB7MTYsIDB4ZWZkMCwgMCwgezB4MzAsMHgwMSwweDBjLDB4ODAsMHgwMywweGIwLDB4MDAsMHhkMCwweDAwLDB4MzQsMHgwMCwweDBkLDB4ODAsMHgwMywweDIwLDB4MDAgfX0sCi0gezE2LCAweGVmZTAsIDAsIHsweGM4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmYwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwMCwweGJlLDB4MDAsMHgyMiwweDgwLDB4MDMsMHhlOCwweDAyLDB4MWEsMHgwOCwweGJlLDB4NDgsMHgyMiB9fSwKLSB7MTYsIDB4ZjAwMCwgMCwgezB4ODAsMHgwYSwweGEwLDB4MDMsMHhiOCwweDAwLDB4Y2EsMHgwOCwweDIyLDB4ODAsMHgwZiwweGE0LDB4MDIsMHgwOCwweDAwLDB4OGEgfX0sCi0gezE2LCAweGYwMTAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDhkLDB4YTAsMHgwMiwweDI4LDB4MDAsMHhkYSwweDAwLDB4MmEsMHg4MSwweDA4LDB4YTAsMHgwMiwweDhhIH19LAotIHsxNiwgMHhmMDIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDAsMHhiMywweDAwLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZjAzMCwgMCwgezB4MGIsMHgzMCwweDAyLDB4MDgsMHgwMCwweGIwLDB4NjQsMHg2OCwweGMxLDB4MDgsMHhiMCwweDIyLDB4Y2MsMHgwYywweDkzLDB4ODAgfX0sCi0gezE2LCAweGYwNDAsIDAsIHsweDAwLDB4YzAsMHg0OCwweDM2LDB4MDIsMHg4OCwweDAwLDB4YjMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDYsMHgwYywweDAxIH19LAotIHsxNiwgMHhmMDUwLCAwLCB7MHhhMywweDAyLDB4MmMsMHhjMCwweDA4LDB4YjAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA2MCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MDgsMHhiNSwweDAwLDB4MjEsMHg0MCwweDBiLDB4MzgsMHg4MiwweDFjLDB4MjEsMHhiNywweDAwLDB4MjMgfX0sCi0gezE2LCAweGYwNzAsIDAsIHsweGU4LDB4NGEsMHg3MiwweDI2LDB4OWUsMHg0MCwweDhmLDB4ODEsMHhhYiwweDQwLDB4NDIsMHg3MCwweDUyLDB4MzgsMHgwMCwweGEzIH19LAotIHsxNiwgMHhmMDgwLCAwLCB7MHgyMiwweDIwLDB4YzQsMHg0OSwweDMxLDB4MDIsMHgxZSwweDBhLDB4YjcsMHgyMiwweDJkLDB4ZTgsMHgwOCwweDcyLDB4MDIsMHhhOCB9fSwKLSB7MTYsIDB4ZjA5MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxMiwweDAwLDB4ZjYsMHg4MCwweDIxLDB4ZTAgfX0sCi0gezE2LCAweGYwYTAsIDAsIHsweDBiLDB4NzgsMHgwYiwweDFlLDB4MDAsMHhiNCwweDgyLDB4M2IsMHhlOCwweDRjLDB4N2MsMHgxMywweGZlLDB4MDIsMHg5NywweDgwIH19LAotIHsxNiwgMHhmMGIwLCAwLCB7MHgzMywweGEwLDB4MDgsMHgzOCwweDAzLDB4OWEsMHgwMCwweGY3LDB4ODgsMHgzNSwweGUyLDB4MGMsMHg3OCwweGUzLDB4MGUsMHgwMCB9fSwKLSB7MTYsIDB4ZjBjMCwgMCwgezB4ZTMsMHhlOCwweDM0LDB4ZjgsMHgwYywweDNjLDB4MjMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwZDAsIDAsIHsweDA4LDB4MWQsMHhhOCwweDA0LDB4ZjEsMHgwMCwweDNlLDB4NDIsMHgwZiwweGIwLDB4MTMsMHhlYywweDAwLDB4ZmIsMHgwMCwweGJlIH19LAotIHsxNiwgMHhmMGUwLCAwLCB7MHhjYywweDFlLDB4YjYsMHgwNywweGVkLDB4ODAsMHhmYiwweDAwLDB4MzYsMHgwMCwweDBmLDB4YjAsMHg0MywweDY4LDB4MDAsMHhjYiB9fSwKLSB7MTYsIDB4ZjBmMCwgMCwgezB4MzAsMHgzZSwweGQ4LDB4MGYsMHhiNiwweDBiLDB4ZWQsMHg0MCwweGNiLDB4MDAsMHgzYSwweGMwLDB4MmYsMHhiNiwweDAzLDB4YzIgfX0sCi0gezE2LCAweGYxMDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjIsMHg0MCwweGZiLDB4OTEsMHgzZCwweDRjIH19LAotIHsxNiwgMHhmMTEwLCAwLCB7MHg4MCwweGY4LDB4MDMsMHhkZSwweDQwLDB4YzYsMHg4MCwweDFiLDB4ZjAsMHg0ZiwweGZkLDB4MDcsMHhmZiwweDAwLDB4Y2QsMHg4MCB9fSwKLSB7MTYsIDB4ZjEyMCwgMCwgezB4MzMsMHhlMCwweDBjLDB4NjgsMHgwMywweGJhLDB4MDAsMHhmZiwweDgwLDB4MzMsMHhlMCwweDA3LDB4ZjgsMHgwMywweDNmLDB4MTAgfX0sCi0gezE2LCAweGYxMzAsIDAsIHsweGNmLDB4ODAsMHgzZiwweGUwLDB4MGMsMHhmYywweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTQwLCAwLCB7MHhhOCwweDExLDB4OTAsMHgwMCwweGI1LDB4YzAsMHgyZCwweDQwLDB4MDgsMHg2MiwweDAyLDB4ZGMsMHgyMCwweGQ2LDB4MDIsMHgyMSB9fSwKLSB7MTYsIDB4ZjE1MCwgMCwgezB4YzgsMHg4ZiwweDcwLDB4MDIsMHhkYywweDgxLDB4YjUsMHgwMCwweDgxLDB4NDQsMHgwZCwweDYxLDB4MjIsMHgxOCwweDA0LDB4YjcgfX0sCi0gezE2LCAweGYxNjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDBiLDB4NzAsMHgwMiwweGJjLDB4MDAsMHhhNywweDAxLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMywweGVhIH19LAotIHsxNiwgMHhmMTcwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDkwLDB4MDEsMHhiNiwweDAxLDB4MmYsMHhjMCB9fSwKLSB7MTYsIDB4ZjE4MCwgMCwgezB4MTgsMHg3MCwweDAyLDB4ZGMsMHgwYSwweDk2LDB4MTAsMHgyOSwweGMxLDB4NGIsMHg3MCwweDA2LDB4ZGMsMHgxMCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGYxOTAsIDAsIHsweDI1LDB4ODAsMHgwOCwweDYwLDB4ODIsMHgxYSwweDIwLDB4YTMsMHgwMCwweDI1LDB4YzAsMHgwYiwweDMxLDB4MDIsMHg1YywweDQwIH19LAotIHsxNiwgMHhmMWEwLCAwLCB7MHg4NywweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFiMCwgMCwgezB4MjAsMHgxNCwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMsMHg0MCwweDg4LDB4MjAsMHgwMiwweGVkLDB4MDAsMHg4YSwweDYwLDB4MjAgfX0sCi0gezE2LCAweGYxYzAsIDAsIHsweGMwLDB4MGEsMHgzMCwweDAyLDB4Y2MsMHgwNCwweGIxLDB4MDAsMHgyNCwweDAwLDB4MjgsMHgyNCwweDAyLDB4MGEsMHgwMCwweDMzIH19LAotIHsxNiwgMHhmMWQwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYiwweGIwLDB4MDIsMHhjYywweDAwLDB4YTMsMHgwMCwweDJjLDB4YzAsMHg4OCwweDMwLDB4MDIsMHg4OCB9fSwKLSB7MTYsIDB4ZjFlMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMCwweDAwLDB4ZmIsMHgwMCwweDNlLDB4YzYgfX0sCi0gezE2LCAweGYxZjAsIDAsIHsweDBjLDB4ODAsMHgwMywweGU1LDB4MDAsMHgwOSwweGM4LDB4YWIsMHhlMiwweDBiLDB4ZjAsMHgwMiwweGZjLDB4MDAsMHg0YSwweDAwIH19LAotIHsxNiwgMHhmMjAwLCAwLCB7MHgzNiwweGMwLDB4MDgsMHg5MCwweDAzLDB4YTYsMHgwMCwweGZmLDB4MDAsMHgzMywweGMwLDB4MGYsMHhmMCwweDAzLDB4N2MsMHgwMCB9fSwKLSB7MTYsIDB4ZjIxMCwgMCwgezB4OGYsMHgwMCwweDJmLDB4YzAsMHgyOCwweGYwLDB4MDIsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyMjAsIDAsIHsweDgwLDB4MDAsMHhlMSwweDAwLDB4ZmEsMHgwMSwweDNlLDB4YzAsMHgwZiwweDgwLDB4MDMsMHhlYywweDAwLDB4ZjksMHg0MCwweDNlIH19LAotIHsxNiwgMHhmMjMwLCAwLCB7MHhjMCwweDA3LDB4YjAsMHgwMywweGVjLDB4MDAsMHhmYSwweDAwLDB4M2EsMHg0MCwweDBmLDB4OTAsMHgyMywweGU1LDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4ZjI0MCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzYywweGMwLDB4MGYsMHhiMCwweDIzLDB4ZTAgfX0sCi0gezE2LCAweGYyNTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGZjLDB4MjAsMHgzZiwweGMwIH19LAotIHsxNiwgMHhmMjYwLCAwLCB7MHgwYywweGM4LDB4MDMsMHhmYywweDIwLDB4Y2QsMHg4MSwweGIzLDB4YzIsMHg0ZiwweGYwLDB4MDMsMHhmYywweDAwLDB4Y2EsMHgwMCB9fSwKLSB7MTYsIDB4ZjI3MCwgMCwgezB4M2MsMHg4MCwweDBjLDB4ZDAsMHg4MiwweDM2LDB4MDEsMHhmZiwweDAwLDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMywweDNjLDB4MDggfX0sCi0gezE2LCAweGYyODAsIDAsIHsweGNmLDB4MDQsMHgzYSwweGMwLDB4NWMsMHhiMCwweDAzLDB4YzAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjkwLCAwLCB7MHg4MSwweDA0LDB4NjIsMHgwNCwweGI4LDB4NDAsMHgyYywweDYwLDB4MDgsMHg4OSwweDAyLDB4ZWUsMHg4MCwweGE5LDB4NjAsMHgyYSB9fSwKLSB7MTYsIDB4ZjJhMCwgMCwgezB4YzAsMHgwYiwweGIwLDB4MDMsMHg4YywweDAwLDB4YWEsMHg0MCwweDJlLDB4MDAsMHgwOCwweDEwLDB4MDIsMHgyNiwweDgxLDB4ZWIgfX0sCi0gezE2LCAweGYyYjAsIDAsIHsweDAwLDB4MjYsMHhjMCwweDhiLDB4YjAsMHgxMywweDZjLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDNkLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmMmMwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDIzLDB4MDAsMHhiYiwweDAzLDB4MmUsMHhjOCB9fSwKLSB7MTYsIDB4ZjJkMCwgMCwgezB4MDksMHhiMCwweDAyLDB4ZWUsMHgwMCwweDhiLDB4MTAsMHgyNiwweGMwLDB4MGIsMHhiMCwweDAyLDB4ZWMsMHgwMCwweGE4LDB4MDAgfX0sCi0gezE2LCAweGYyZTAsIDAsIHsweDJlLDB4YzAsMHgwOCwweDg4LDB4MjIsMHhhNCwweDgwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHg0YiwweGIwLDB4MjIsMHgwYywweDAwIH19LAotIHsxNiwgMHhmMmYwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMwMCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHhiMiwweDAwLDB4MmUsMHhjMCwweDI5LDB4MjgsMHgwMiwweGVjLDB4MDEsMHhhMCwweDAyLDB4MjAgfX0sCi0gezE2LCAweGYzMTAsIDAsIHsweGMwLDB4MDksMHgzMCwweDAyLDB4Y2MsMHgwMCwweGEwLDB4MDAsMHgyYywweDQwLDB4MDgsMHgwMCwweDQyLDB4ODQsMHgwMCwweDkzIH19LAotIHsxNiwgMHhmMzIwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwYiwweDMwLDB4MDYsMHg0ZCwweDAwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ZjMzMCwgMCwgezB4MTEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4ZjgsMHgyMCwweDJmLDB4YzAgfX0sCi0gezE2LCAweGYzNDAsIDAsIHsweDBkLDB4YjAsMHgwMywweGVjLDB4MDAsMHhjYiwweDAwLDB4MzMsMHhjMCwweDBiLDB4ZjAsMHgwMywweGZjLDB4MTgsMHhlOCwweDAwIH19LAotIHsxNiwgMHhmMzUwLCAwLCB7MHgyZSwweDgwLDB4MDgsMHg4MCwweDAzLDB4YTQsMHgwMCwweGJmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4M2QsMHgxMSB9fSwKLSB7MTYsIDB4ZjM2MCwgMCwgezB4Y2YsMHgwMywweDNlLDB4YzEsMHg1ZCwweGYwLDB4MjMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNzAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgxMCwweDNmLDB4NDAsMHgwZSwweGUwLDB4MDMsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmMzgwLCAwLCB7MHhjMCwweDBmLDB4ZjAsMHgwMywweGJjLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDJmLDB4YzAsMHgwMywweDc0LDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4ZjM5MCwgMCwgezB4MDAsMHgyNywweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGYzYTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDE1LDB4ZmMsMHg4OCwweDljLDB4MjksMHgzZiwweDA4IH19LAotIHsxNiwgMHhmM2IwLCAwLCB7MHgwZiwweGQyLDB4ODMsMHhlYywweDAwLDB4ZmYsMHgwOCwweDNmLDB4MjgsMHgwZiwweGNhLDB4MDMsMHgzYywweDQxLDB4Y2YsMHgyMCB9fSwKLSB7MTYsIDB4ZjNjMCwgMCwgezB4NzMsMHgyYywweDBjLDB4YzAsMHgwMywweDMwLDB4MjAsMHhjZiwweDYwLDB4MzMsMHhkOCwweDBmLDB4NzgsMHgwMywweDNmLDB4ODAgfX0sCi0gezE2LCAweGYzZDAsIDAsIHsweGRkLDB4OTIsMHgzMywweGM4LDB4MGYsMHg1MCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2UwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHg0MCwweDg4LDB4NDAsMHgyZSwweDA0LDB4OGIsMHg5NCwweDAyLDB4ZTQsMHgwMCwweGI5LDB4MDAsMHgwZSB9fSwKLSB7MTYsIDB4ZjNmMCwgMCwgezB4N2YsMHg4ZiwweDllLDB4ODMsMHg2NSwweDgyLDB4Y2YsMHg2OCwweDNlLDB4NTAsMHg4ZCwweDA0LDB4OTIsMHgyZiwweDA0LDB4ZDMgfX0sCi0gezE2LCAweGY0MDAsIDAsIHsweDQwLDB4NzQsMHhkYywweDBkLDB4YTIsMHgwMiwweDIwLDB4NDAsMHg4OSwweDAwLDB4MjIsMHhmMCwweDBiLDB4OTgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmNDEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM4LDB4MDksMHhhMCwweDg1LDB4MmMsMHgwMSB9fSwKLSB7MTYsIDB4ZjQyMCwgMCwgezB4MGIsMHgwMCwweDEwLDB4Y2MsMHg0MCwweGEyLDB4MDgsMHgyYywweDAwLDB4ZGIsMHgxMSwweDAyLDB4ODksMHgwMCwweDkzLDB4MzAgfX0sCi0gezE2LCAweGY0MzAsIDAsIHsweDIwLDB4MDUsMHgwOCwweDEzLDB4MDIsMHg4MCwweDA4LDB4YTMsMHg2MCwweDYwLDB4YzAsMHgwYSwweGIwLDB4ODIsMHgwOCwweDg0IH19LAotIHsxNiwgMHhmNDQwLCAwLCB7MHg4MSwweDIwLDB4MjAsMHhkMCwweDBiLDB4MTAsMHgwMiwweGEyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ1MCwgMCwgezB4YzAsMHgxNSwweGE0LDB4MTIsMHg4OCwweDgwLDB4NmUsMHgyMCwweDBiLDB4ODgsMHg4MiwweGVlLDB4MDAsMHhiYSwweDgxLDB4MmUgfX0sCi0gezE2LCAweGY0NjAsIDAsIHsweDYwLDB4NWEsMHg5OCwweDAyLDB4YTIsMHgwMCwweDhiLDB4MDAsMHgyYSwweDYwLDB4MDgsMHgxMSwweDFhLDB4MmMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhmNDcwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGI4LDB4MGEsMHgyOCwweDAwLDB4ODEsMHgyMCwweDAyLDB4YzAsMHgwYiwweDkwLDB4MDIsMHhiMCB9fSwKLSB7MTYsIDB4ZjQ4MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MDUsMHhlZCwweDAwLDB4ZDksMHg4MCwweDNlLDB4MjAgfX0sCi0gezE2LCAweGY0OTAsIDAsIHsweDRmLDB4OTgsMHgwMCwweGViLDB4MjAsMHhmYiwweGUwLDB4MmUsMHg2MCwweDBiLDB4OGMsMHg2MiwweGFlLDB4MjAsMHg4YiwweDAwIH19LAotIHsxNiwgMHhmNGEwLCAwLCB7MHgyMiwweDYwLDB4MDgsMHhiYywweDAzLDB4YTAsMHgyMCwweGViLDB4MDAsMHgyMiwweGMxLDB4MGEsMHgxOCwweDBiLDB4MjUsMHgwMCB9fSwKLSB7MTYsIDB4ZjRiMCwgMCwgezB4ZDksMHgwMCwweGIyLDB4YzAsMHgwZiwweDkwLDB4MGIsMHg5MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0YzAsIDAsIHsweGUwLDB4MDEsMHg5NCwweDg4LDB4ZmYsMHgwMCwweDNmLDB4MDEsMHgwZiwweGQwLDB4MDEsMHhmMCwweDA4LDB4ZGQsMHgwMSwweDNmIH19LAotIHsxNiwgMHhmNGQwLCAwLCB7MHg0MiwweDA3LDB4NDAsMHgwMywweDVjLDB4MDAsMHhhZiwweDAwLDB4M2YsMHg0MCwweDBmLDB4ZjgsMHgwMCwweGYwLDB4MDAsMHhkZiB9fSwKLSB7MTYsIDB4ZjRlMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGYsMHhjMCwweDIzLDB4ZjQsMHg1MCwweGZkLDB4ODAsMHgzZiwweGMwLDB4MGYsMHhkMCwweDAzLDB4NzggfX0sCi0gezE2LCAweGY0ZjAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4YWMsMHgwMCwweGQ5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhmNTAwLCAwLCB7MHgwZiwweDk0LDB4MDMsMHhhOCwweDIwLDB4Y2EsMHg0MCwweDNhLDB4NDAsMHgwZiwweDk0LDB4MDMsMHhlYSwweDA4LDB4ZmIsMHgwMCB9fSwKLSB7MTYsIDB4ZjUxMCwgMCwgezB4M2EsMHgwMCwweDRjLDB4ZjYsMHgyMywweDJjLDB4MzAsMHhjYiwweDAwLDB4MzYsMHhjMCwweDBkLDB4OTAsMHgwMywweGExLDB4MDIgfX0sCi0gezE2LCAweGY1MjAsIDAsIHsweGQ5LDB4MDAsMHhiYSwweGMwLDB4MGYsMHg5OCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTMwLCAwLCB7MHhjOCwweDA1LDB4MjQsMHgwMCwweDhhLDB4MDAsMHgyZSwweDQwLDB4MGIsMHg5NSwweDAyLDB4ZTAsMHgwOCwweDg4LDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4ZjU0MCwgMCwgezB4NzAsMHg4ZiwweDhjLDB4MDIsMHhlMCwweDAwLDB4YmYsMHgwMiwweDIwLDB4MDAsMHgwOCwweGI4LDB4MDIsMHgwZSwweDAwLDB4ZGYgfX0sCi0gezE2LCAweGY1NTAsIDAsIHsweDAwLDB4MjMsMHhkZCwweDA4LDB4OTgsMHg4MiwweDJhLDB4MDAsMHg4OSwweDgwLDB4MjMsMHhjMCwweDBiLDB4NTAsMHgxYSwweDMyIH19LAotIHsxNiwgMHhmNTYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDA1LDB4MjQsMHg0MSB9fSwKLSB7MTYsIDB4ZjU3MCwgMCwgezB4MDksMHgxMCwweDAyLDB4Y2UsMHgwMCwweDgzLDB4OTAsMHgyYywweDgwLDB4MWIsMHgyNCwweDgyLDB4Y2MsMHgwMCwweGJiLDB4MDAgfX0sCi0gezE2LCAweGY1ODAsIDAsIHsweDJjLDB4ODAsMHgwOCwweDA0LDB4MDgsMHgwNCwweDAxLDB4OGIsMHgwMCwweDIyLDB4YzAsMHgyOCwweDEyLDB4MDIsMHg2YywweDgwIH19LAotIHsxNiwgMHhmNTkwLCAwLCB7MHg4MSwweDQ4LDB4MjQsMHhjNCwweDBiLDB4MTAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVhMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4NDIsMHg4NiwweDgwLDB4MmQsMHg2MCwweDBiLDB4NjgsMHgwMiwweGY2LDB4OTAsMHg4ZCwweDgwLDB4MjEgfX0sCi0gezE2LCAweGY1YjAsIDAsIHsweDIyLDB4MGIsMHg1OCwweDAyLDB4ZDcsMHg0MCwweGI3LDB4OTAsMHgyMSwweGUwLDB4MDgsMHg0OSwweDkyLDB4MWUsMHg1MywweDk3IH19LAotIHsxNiwgMHhmNWMwLCAwLCB7MHg4MSwweDIxLDB4ZTAsMHg0OCwweGM4LDB4MGEsMHg1MiwweDIyLDB4ODUsMHg4OCwweDI1LDB4ZTAsMHgwYiwweDU4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZjVkMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODMsMHgwMCwweDM0LDB4YzAgfX0sCi0gezE2LCAweGY1ZTAsIDAsIHsweDBmLDB4MDAsMHgwMywweGNlLDB4MjAsMHhjMywweDMwLDB4N2MsMHg5NCwweDBiLDB4MzQsMHg4MywweGNjLDB4MTQsMHhmMywweDAyIH19LAotIHsxNiwgMHhmNWYwLCAwLCB7MHgzYywweDgwLDB4MGMsMHgwNCwweDAzLDB4MDQsMHg2MCwweGMzLDB4MDAsMHhiMCwweGMwLDB4MGMsMHgxMCwweDAzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4ZjYwMCwgMCwgezB4YzksMHgwMCwweDNjLDB4YzQsMHgwZiwweDExLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MTAsIDAsIHsweDQwLDB4MWQsMHg5YywweDAwLDB4ZWUsMHgwMSwweDNmLDB4YzAsMHg0ZiwweGUxLDB4MDMsMHhkNCwweDQwLDB4ZjUsMHgxNiwweDdhIH19LAotIHsxNiwgMHhmNjIwLCAwLCB7MHhjMCwweDRlLDB4ZjAsMHgwMywweGY0LDB4MTAsMHgzNywweDA1LDB4M2QsMHhjMCwweDBmLDB4YzAsMHgwYiwweGRjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4ZjYzMCwgMCwgezB4MDAsMHgzYiwweGMyLDB4MGUsMHhkMCwweDA3LDB4YmMsMHgwMiwweGVmLDB4MDAsMHgzYiwweGM2LDB4MGYsMHhkMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGY2NDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZjQsMHgwMCwweGRkLDB4ODQsMHgzMywweDgwIH19LAotIHsxNiwgMHhmNjUwLCAwLCB7MHgwNCwweGYwLDB4MDMsMHg2YywweDAyLDB4Y2IsMHgwMiwweDdlLDB4YzAsMHgxZiwweGEwLDB4NTMsMHhlYywweDAwLDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4ZjY2MCwgMCwgezB4MzQsMHg0MCwweDBjLDB4ZDAsMHgwYiwweDIwLDB4MTAsMHhlYiwweDAwLDB4MWUsMHhlMCwweDBmLDB4MzAsMHgwYiwweDJjLDB4MDAgfX0sCi0gezE2LCAweGY2NzAsIDAsIHsweGMxLDB4MDAsMHgzMiwweGMwLDB4MGYsMHg5MSwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjgwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDg3LDB4MDAsMHgyMSwweDgwLDB4MDgsMHg2MCwweDAwLDB4MTQsMHgwMCwweDg1LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4ZjY5MCwgMCwgezB4ODAsMHgwYiwweDcwLDB4NTIsMHhkNCwweDA0LDB4ODMsMHgyOCwweDI5LDB4YzAsMHgyOCwweDUwLDB4MDMsMHg1MCwweDAwLDB4ODcgfX0sCi0gezE2LCAweGY2YTAsIDAsIHsweDQwLDB4MjUsMHhjOCwweDBmLDB4NjAsMHgwMiwweDA0LDB4MDAsMHhhNywweDAwLDB4M2QsMHhjOCwweDBiLDB4NTIsMHgwMiwweGQyIH19LAotIHsxNiwgMHhmNmIwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDhlLDB4MDAsMHg5NSwweDgwLDB4MjEsMHhlMCB9fSwKLSB7MTYsIDB4ZjZjMCwgMCwgezB4MDksMHgzOCwweDAyLDB4MWUsMHgxMSwweGE3LDB4ODAsMHgyZCwweGYwLDB4MGIsMHg3OCwweDUyLDB4Y2UsMHgwYSwweDk3LDB4OTUgfX0sCi0gezE2LCAweGY2ZDAsIDAsIHsweDIxLDB4ZTAsMHgxOSwweDVjLDB4MDIsMHgwZSwweDAwLDB4YTcsMHg4MCwweDI5LDB4YzgsMHgwYiwweGY4LDB4MDIsMHgxZSwweDIwIH19LAotIHsxNiwgMHhmNmUwLCAwLCB7MHg4ZCwweDgwLDB4MjEsMHhlMCwweDBiLDB4NTgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZmMCwgMCwgezB4NDgsMHgxNCwweGNjLDB4MDAsMHg4MiwweGUwLDB4YTAsMHhlOCwweDI5LDB4MzAsMHgwNiwweDBlLDB4NTAsMHhhYiwweDgwLDB4MmMgfX0sCi0gezE2LCAweGY3MDAsIDAsIHsweGYwLDB4MGIsMHgzMSwweDQyLDB4Y2MsMHgwMCwweDkzLDB4MDAsMHgyOCwweGM0LDB4MDksMHg5OCwweDAyLDB4NGMsMHgyOCwweDgzIH19LAotIHsxNiwgMHhmNzEwLCAwLCB7MHgwMCwweDI0LDB4YzAsMHgwYSwweGIwLDB4MDIsMHgwZCwweDAwLDB4YTIsMHg1OCwweDI4LDB4YzAsMHgwYiwweDEwLDB4MDIsMHhkMiB9fSwKLSB7MTYsIDB4ZjcyMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDAwLDB4ZGUsMHg4MCwweDMxLDB4YTAgfX0sCi0gezE2LCAweGY3MzAsIDAsIHsweDA5LDB4ZTIsMHgwYiwweDc4LDB4MDQsMHhlZSwweGE0LDB4MmYsMHhhNCwweDhiLDB4ZWMsMHgwMiwweGQ4LDB4MDAsMHhkYSwweDAwIH19LAotIHsxNiwgMHhmNzQwLCAwLCB7MHgyNywweDgxLDB4MGQsMHhlYywweDA2LDB4MWIsMHgwMCwweGVhLDB4MDQsMHgzZSwweDgwLDB4MGIsMHhlMCwweDAzLDB4M2IsMHgwMCB9fSwKLSB7MTYsIDB4Zjc1MCwgMCwgezB4Y2UsMHhjMCwweDIyLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3NjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDgwLDB4ZjgsMHgxMCwweDNlLDB4MDUsMHgwZSwweDg4LDB4MDMsMHhlMCwweDA4LDB4OTgsMHg0MCwweDNlIH19LAotIHsxNiwgMHhmNzcwLCAwLCB7MHgwMCwweDBmLDB4ODQsMHg4MywweGUxLDB4NDAsMHhlOCwweDAwLDB4M2EsMHgwMiwweDBlLDB4ODAsMHg0MywweGUxLDB4NDAsMHhmOCB9fSwKLSB7MTYsIDB4Zjc4MCwgMCwgezB4MDAsMHgzNiwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZTAsMHgyMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweGY3OTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YzQsMHgwMCwweGU5LDB4MDAsMHgzZSwweDQwIH19LAotIHsxNiwgMHhmN2EwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgwNCwweDIwLDB4ZTksMHg5MCwweDMyLDB4NjgsMHgwZSwweDk4LDB4MDMsMHhhNCwweDAwLDB4YzEsMHgwMCB9fSwKLSB7MTYsIDB4ZjdiMCwgMCwgezB4MzAsMHg0MCwweDBjLDB4OTQsMHg4MywweDI0LDB4MDgsMHhjOSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMywweGE0LDB4MDAgfX0sCi0gezE2LCAweGY3YzAsIDAsIHsweGM5LDB4MDAsMHgzMCwweDUwLDB4MGMsMHgxYSwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2QwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4NDAsMHgyZSwweDUwLDB4MjgsMHg5MCwweDBhLDB4MjQsMHgwOCwweDg5LDB4MDYsMHgxNiB9fSwKLSB7MTYsIDB4ZjdlMCwgMCwgezB4NjEsMHgwYiwweDljLDB4MDIsMHhlNCwweDIwLDB4YTksMHgwMCwweDM2LDB4NDAsMHgwZCwweDkwLDB4MDIsMHgyNywweDYwLDB4YTkgfX0sCi0gezE2LCAweGY3ZjAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDI4LDB4OTAsMHgxYSwweDI0LDB4MDAsMHg4OSwweDAwLDB4MzYsMHg0MCwweDI4LDB4OTgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhmODAwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDJjLDB4MDAsMHhhOSwweDA4LDB4MmUsMHhjMiB9fSwKLSB7MTYsIDB4ZjgxMCwgMCwgezB4MDksMHgxMCwweDAwLDB4MjQsMHgwMCwweGE5LDB4MDAsMHgwNiwweDQwLDB4ODksMHg5NiwweDA2LDB4ZTYsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweGY4MjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAyLDB4ODksMHgwMCwweDI0LDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwYywweDA2IH19LAotIHsxNiwgMHhmODMwLCAwLCB7MHg4MywweDAwLDB4MjIsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg0MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDQ0LDB4MmMsMHg1MCwweDA4LDB4MTQsMHgwMiwweDA1LDB4ODAsMHg4MSwweDIwLDB4NjQgfX0sCi0gezE2LCAweGY4NTAsIDAsIHsweDcwLDB4MWIsMHgxNCwweDAyLDB4ZTQsMHg4MCwweGExLDB4MjAsMHg2NCwweDQwLDB4MTksMHgxMiwweDBhLDB4MDQsMHg4MCwweGExIH19LAotIHsxNiwgMHhmODYwLCAwLCB7MHgwMCwweDJjLDB4NTAsMHgxOCwweDE0LDB4MDIsMHg4NSwweDAwLDB4ODEsMHg0MCwweDI0LDB4NDAsMHg0MCwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4Zjg3MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZTAsMHgwMCwweDNjLDB4MDAgfX0sCi0gezE2LCAweGY4ODAsIDAsIHsweDBkLDB4ODAsMHgwMiwweDAwLDB4MDAsMHhhYSwweDUwLDB4MzYsMHgwMCwweDBmLDB4ODAsMHgwMywweGUxLDB4NDAsMHhjOCwweDUyIH19LAotIHsxNiwgMHhmODkwLCAwLCB7MHg3MiwweDE0LDB4MGMsMHgwNSwweDE2LDB4MjAsMHgwOCwweGM4LDB4NTAsMHgzZSwweDAxLDB4MGMsMHg4MCwweDAzLDB4YTAsMHgwNCB9fSwKLSB7MTYsIDB4ZjhhMCwgMCwgezB4YzgsMHgwMCwweGIyLDB4MDAsMHgwYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4YjAsIDAsIHsweDk4LDB4MTksMHhmNSwweDAyLDB4ZmQsMHg0MCwweDNmLDB4ZDAsMHgwZiwweGQ0LDB4MjMsMHhmNCwweDQ0LDB4ZmQsMHgxNCwweDdmIH19LAotIHsxNiwgMHhmOGMwLCAwLCB7MHg1MCwweDBmLDB4ZDQsMHgwNywweGY0LDB4NDAsMHhmOSwweDEwLDB4M2YsMHg1MCwweDA3LDB4ZDEsMHgyMywweGY0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4ZjhkMCwgMCwgezB4NDAsMHgxZSwweDUwLDB4MDcsMHhkMCwweDBiLDB4NzUsMHgwMCwweGZkLDB4MDIsMHgzZSwweDUwLDB4MGYsMHhkNCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGY4ZTAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHgwMCwweGM5LDB4YTgsMHgzZSwweDcyIH19LAotIHsxNiwgMHhmOGYwLCAwLCB7MHgwZiwweDk4LDB4MDMsMHhlNiwweGMwLDB4ZmQsMHhhMCwweGIzLDB4NDAsMHgwZiwweGQwLDB4MDMsMHg3NywweDgwLDB4Y2QsMHg5MCB9fSwKLSB7MTYsIDB4ZjkwMCwgMCwgezB4N2YsMHg0MCwweDBmLDB4ZGEsMHhhMywweDE2LDB4OTAsMHhhOSwweGMwLDB4MzIsMHg2MCwweDRjLDB4YjEsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGY5MTAsIDAsIHsweGMxLDB4MDAsMHgzMywweDZhLDB4MGIsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTIwLCAwLCB7MHgzOCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4ZTAsMHgyZSwweDMwLDB4MGIsMHg4ZCwweDAyLDB4ZjMsMHg0MCwweGI4LDB4ZTgsMHg3NiB9fSwKLSB7MTYsIDB4ZjkzMCwgMCwgezB4MDAsMHg0ZiwweDgwLDB4MGEsMHgyMiwweDgwLDB4ODgsMHg5MCwweDZlLDB4MjgsMHg4ZiwweDhhLDB4MDMsMHg2MSwweDQ0LDB4ZjggfX0sCi0gezE2LCAweGY5NDAsIDAsIHsweGUxLDB4M2UsMHgyYSwweDA4LDB4ODgsMHgwMywweDQyLDB4YTAsMHhkYywweGEwLDB4M2UsMHgxMCwweDBiLDB4ODUsMHgwYSwweDBlIH19LAotIHsxNiwgMHhmOTUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4NSwweDA4LDB4MmQsMHg0OCB9fSwKLSB7MTYsIDB4Zjk2MCwgMCwgezB4MWIsMHg1MiwweDgyLDB4ZDQsMHg4MCwweGIxLDB4MTQsMHgyMCwweDQwLDB4MGIsMHgxOCwweDAyLDB4MDUsMHg4MiwweDgxLDB4MDAgfX0sCi0gezE2LCAweGY5NzAsIDAsIHsweDZjLDB4NDIsMHgwYiwweDEyLDB4ODIsMHgwNCwweDAwLDB4YTEsMHg2MCwweDIxLDB4NTAsMHgwYiwweDUwLDB4MDIsMHgxNCwweDkwIH19LAotIHsxNiwgMHhmOTgwLCAwLCB7MHg5NSwweDJjLDB4MjgsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk5MCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDEsMHg4ZCwweDQ0LDB4MmYsMHg0MCwweDBiLDB4ZDQsMHgwMiwweGY0LDB4MDQsMHhiOSwweDA4LDB4MjIgfX0sCi0gezE2LCAweGY5YTAsIDAsIHsweDQwLDB4MGEsMHg5MiwweDAyLDB4MmMsMHg4NCwweDg5LDB4MDAsMHgyZSwweDQwLDB4MGEsMHgxNCwweDAyLDB4NmMsMHg4MCwweGE5IH19LAotIHsxNiwgMHhmOWIwLCAwLCB7MHgwMSwweDJhLDB4NDAsMHgwOSwweDUwLDB4MGEsMHg1YywweDAyLDB4OGQsMHg2MCwweDJhLDB4NDAsMHgwYiwweDkwLDB4NDIsMHgwNiB9fSwKLSB7MTYsIDB4ZjljMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNiwweDYyLDB4YzksMHgwMiwweDNlLDB4NTQgfX0sCi0gezE2LCAweGY5ZDAsIDAsIHsweDBmLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDQwLDB4MjIsMHg0NiwweDBiLDB4OTgsMHgwMywweDY3LDB4MjAsMHhjOSwweDAxIH19LAotIHsxNiwgMHhmOWUwLCAwLCB7MHgyZSwweDY5LDB4MGIsMHg5NCwweDBiLDB4MjUsMHgyMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MmQsMHg5MiwweDBhLDB4MjYsMHgyMiB9fSwKLSB7MTYsIDB4ZjlmMCwgMCwgezB4OTksMHgwMCwweDJhLDB4NDAsMHg4ZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMDAsIDAsIHsweDI4LDB4MDEsMHg4NiwweDAyLDB4ZjksMHgwMCwweDNlLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDgwLDB4ZjEsMHhhMCwweDNlIH19LAotIHsxNiwgMHhmYTEwLCAwLCB7MHg2MiwweDBmLDB4OTgsMHg4MywweGM2LDB4MjAsMHhmOSwweDAwLDB4M2UsMHg0OSwweDBmLDB4OTAsMHg4MywweGU0LDB4MDAsMHg3MSB9fSwKLSB7MTYsIDB4ZmEyMCwgMCwgezB4MDIsMHgzZSwweDQwLDB4MGUsMHg5MCwweDBiLDB4ZTYsMHg4MCwweGY5LDB4ODAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGZhMzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgxMCwweGM4LDB4MDAsMHgzZSwweDAwIH19LAotIHsxNiwgMHhmYTQwLCAwLCB7MHg0ZiwweDgwLDB4NDMsMHhiMCwweDAwLDB4YzgsMHg0MSwweDMyLDB4MDAsMHgwZiwweDgwLDB4MDMsMHgyMSwweDAyLDB4YzgsMHgwMiB9fSwKLSB7MTYsIDB4ZmE1MCwgMCwgezB4M2UsMHgxMCwweDRjLDB4ODAsMHgwMywweDAxLDB4MjAsMHhjOCwweDAwLDB4M2IsMHgwMCwweDBjLDB4YzAsMHgwMywweGIwLDB4MDAgfX0sCi0gezE2LCAweGZhNjAsIDAsIHsweGNjLDB4MDQsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTcwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwMCwweDhhLDB4ODAsMHgyZSwweDgwLDB4MGIsMHhhMCwweDAyLDB4ZjgsMHgwNCwweDhlLDB4MDAsMHgyMyB9fSwKLSB7MTYsIDB4ZmE4MCwgMCwgezB4YjIsMHgwZSwweGUwLDB4ODIsMHhmOSwweDA0LDB4OGEsMHgwMCwweDJlLDB4ODEsMHgwYywweGUwLDB4MGEsMHgzYSwweDgwLDB4ZGEgfX0sCi0gezE2LCAweGZhOTAsIDAsIHsweDAwLDB4MjIsMHhiNiwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHg4ZSwweDAwLDB4MmEsMHg4MCwweDBiLDB4NjAsMHgwYiwweDBhIH19LAotIHsxNiwgMHhmYWEwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDQ0LDB4MDIsMHg5MywweDgxLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ZmFiMCwgMCwgezB4NGIsMHgzMCwweDAyLDB4YzgsMHgwMCwweDgzLDB4Y2EsMHgyMCwweGUwLDB4MTksMHhiMCwweDA2LDB4OGMsMHgwMCwweDgxLDB4MDQgfX0sCi0gezE2LCAweGZhYzAsIDAsIHsweDQ0LDB4NDAsMHgwOCwweDM0LDB4MDIsMHgwZCwweDAwLDB4ODMsMHgwMCwweDJhLDB4MDAsMHgwOCwweDAwLDB4MGEsMHg4MCwweDQwIH19LAotIHsxNiwgMHhmYWQwLCAwLCB7MHg4OCwweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRiLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFlMCwgMCwgezB4YTAsMHgwMSwweDA0LDB4MDIsMHg5NywweDA4LDB4MmQsMHhjMCwweDBiLDB4NjAsMHgwNiwweGNhLDB4MDAsMHg4MywweDA5LDB4MjEgfX0sCi0gezE2LCAweGZhZjAsIDAsIHsweGMwLDB4MGEsMHg3MCwweDAyLDB4ZGMsMHgwMCwweDg1LDB4MzEsMHgyZCwweDY4LDB4MDksMHgzMCwweDAyLDB4MWMsMHgxNCwweDkzIH19LAotIHsxNiwgMHhmYjAwLCAwLCB7MHgyMCwweDIwLDB4YzAsMHgwOCwweGYwLDB4NDIsMHg5YywweDAyLDB4OGYsMHgwMCwweDI5LDB4NDAsMHgwMywweDcwLDB4MTIsMHgyOCB9fSwKLSB7MTYsIDB4ZmIxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxNiwweDAwLDB4OTYsMHg4NCwweDNkLDB4YTAgfX0sCi0gezE2LCAweGZiMjAsIDAsIHsweDBmLDB4NzgsMHgwMywweDlhLDB4MDIsMHg4NywweDgwLDB4YjEsMHhlMCwweDBiLDB4NzgsMHgwMywweGI2LDB4MDAsMHhjNSwweGEwIH19LAotIHsxNiwgMHhmYjMwLCAwLCB7MHgzNSwweDYxLDB4MGMsMHg3OCwweDEzLDB4MWUsMHgwMiwweGM3LDB4ODAsMHgyOSwweDAwLDB4MGMsMHg0OCwweDAzLDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI0MCwgMCwgezB4YzQsMHg4MCwweDMxLDB4NjAsMHgwZiwweDU4LDB4MDMsMHg2YSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNTAsIDAsIHsweDA4LDB4MWQsMHhhNCwweDAwLDB4ZWEsMHgwMCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhlOCwweDA4LDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHhmYjYwLCAwLCB7MHg4MCwweDBmLDB4OTAsMHgxMywweGU0LDB4MDgsMHhmOSwweDAwLDB4M2MsMHg1MCwweDJlLDB4ZjAsMHgwMywweGU4LDB4MDgsMHhmYiB9fSwKLSB7MTYsIDB4ZmI3MCwgMCwgezB4NDAsMHgzZSwweGMwLDB4MGIsMHgzMCwweDEzLDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHgzMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGZiODAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZDYsMHgwMCwweGNkLDB4ODAsMHgzMywweGUwIH19LAotIHsxNiwgMHhmYjkwLCAwLCB7MHgwYywweGY4LDB4MDMsMHhmYSwweDAwLDB4ZmQsMHg4MCwweDNmLDB4YTAsMHgwZCwweGY4LDB4MDMsMHhmYSwweDQwLDB4Y2QsMHhkMCB9fSwKLSB7MTYsIDB4ZmJhMCwgMCwgezB4NzcsMHg3ZSwweDBjLDB4ZTgsMHg0MywweDFlLDB4MDAsMHhjZiwweGQ4LDB4M2YsMHhlMCwweDBjLDB4YzgsMHgwMywweDNhLDB4YzQgfX0sCi0gezE2LCAweGZiYjAsIDAsIHsweGNjLDB4ODAsMHgzMywweGUwLDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmMwLCAwLCB7MHhhOCwweDExLDB4OTQsMHgwMiwweDhkLDB4MDAsMHgyMSwweGMwLDB4MDgsMHg2MCwweDAzLDB4ZDgsMHgxMCwweDM1LDB4MjAsMHg4YiB9fSwKLSB7MTYsIDB4ZmJkMCwgMCwgezB4ZDQsMHgwZCwweDY0LDB4MDMsMHhkOCwweGMwLDB4ODUsMHgwMCwweDJmLDB4NGUsMHgwNywweDY0LDB4MDIsMHg5YywweDAyLDB4ZDcgfX0sCi0gezE2LCAweGZiZTAsIDAsIHsweDMwLDB4MmYsMHgwNCwweDBkLDB4ZjEsMHgwYiwweDU0LDB4NDAsMHhhZiwweDAwLDB4MzUsMHg0MCwweDA4LDB4NzAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhmYmYwLCAwLCB7MHgwMCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk0LDB4NDAsMHg4NCwweDE4LDB4MjEsMHg4MCB9fSwKLSB7MTYsIDB4ZmMwMCwgMCwgezB4MDgsMHg3MCwweDAyLDB4ZGEsMHgyMCwweGI1LDB4MDAsMHgwOSwweDAwLDB4MDgsMHg3MCwweDAyLDB4ZDQsMHgwNCwweDg1LDB4MDAgfX0sCi0gezE2LCAweGZjMTAsIDAsIHsweDZkLDB4NGMsMHg4OSwweDYwLDB4MDIsMHg1YywweDQwLDB4OTcsMHgwMCwweDZkLDB4YzAsMHgwOSwweDQwLDB4MDIsMHg1OCwweDgwIH19LAotIHsxNiwgMHhmYzIwLCAwLCB7MHg4NCwweDg4LDB4MjUsMHg0MCwweDA4LDB4ZDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMzMCwgMCwgezB4MjAsMHgxNCwweGM2LDB4NDgsMHg4MCwweDAwLDB4MjAsMHg4MCwweDA4LDB4YWMsMHgwMiwweGE4LDB4MDAsMHhiMSwweDAwLDB4YTggfX0sCi0gezE2LCAweGZjNDAsIDAsIHsweDg4LDB4MDksMHgyMiwweDAyLDB4ODYsMHg0MiwweDgxLDB4MDAsMHg2YywweDUyLDB4MGIsMHgyMCwweDAyLDB4YzcsMHg1MiwweDgzIH19LAotIHsxNiwgMHhmYzUwLCAwLCB7MHgwMCwweDJjLDB4MDAsMHgwOCwweDM0LDB4ODIsMHg2NywweDAwLDB4YTMsMHg4MCwweDIwLDB4NDAsMHgwOCwweDMwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4ZmM2MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhMywweDAwLDB4Y2IsMHhjMCwweGIyLDB4NDAgfX0sCi0gezE2LCAweGZjNzAsIDAsIHsweDJjLDB4OTAsMHg4MiwweGU2LDB4MDAsMHhiYiwweDgwLDB4YmUsMHg3OCwweDA4LDB4OGUsMHgwMiwweGVlLDB4MDAsMHg4ZCwweDAwIH19LAotIHsxNiwgMHhmYzgwLCAwLCB7MHgyNywweDYwLDB4MGQsMHg5MCwweDBhLDB4NmYsMHgwMCwweDlmLDB4MDIsMHgyZSwweDAwLDB4MDksMHhiNCwweDAzLDB4NjcsMHg4MCB9fSwKLSB7MTYsIDB4ZmM5MCwgMCwgezB4Y2EsMHg0MCwweGU0LDB4YzAsMHgwYywweDMwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjYTAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDgwLDB4ZmIsMHgyMiwweDNlLDB4NDAsMHgwZiwweDgwLDB4MTMsMHhlNCwweDAwLDB4ZmIsMHg4MCwweDNlIH19LAotIHsxNiwgMHhmY2IwLCAwLCB7MHg0MCwweDBmLDB4OTAsMHgwMywweGU1LDB4MDAsMHhmOSwweDAwLDB4M2UsMHg0MCwweDBlLDB4NzAsMHgyMywweGFjLDB4MjAsMHhmYiB9fSwKLSB7MTYsIDB4ZmNjMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4OGYsMHg4MCwweDAzLDB4ZTksMHgyMCwweGY5LDB4MDgsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4ZTAgfX0sCi0gezE2LCAweGZjZDAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwMCwweGM2LDB4MDAsMHgzMiwweDAwIH19LAotIHsxNiwgMHhmY2UwLCAwLCB7MHgwZiwweGQxLDB4ODMsMHgzNCwweDQwLDB4Y2YsMHgwMCwweDNkLDB4NDAsMHgwYywweGQwLDB4MDMsMHhkZSwweDUwLDB4MGQsMHgwMCB9fSwKLSB7MTYsIDB4ZmNmMCwgMCwgezB4NzMsMHg0MCwweDBjLDB4ZDEsMHgwMywweDdjLDB4NDAsMHg4NywweDAyLDB4YjMsMHgwMCwweDBkLDB4ZjQsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGZkMDAsIDAsIHsweGNlLDB4MjAsMHgzMiwweDQwLDB4MGMsMHhkMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDEwLCAwLCB7MHg4MSwweDA0LDB4NjEsMHgyMiwweDhhLDB4MDAsMHgyMiwweDAwLDB4MGIsMHg4MCwweDQwLDB4MjUsMHgwMCwweDg5LDB4YzMsMHgyZSB9fSwKLSB7MTYsIDB4ZmQyMCwgMCwgezB4MjAsMHgwYSwweDk4LDB4MDMsMHhhMSwweDAwLDB4ODksMHgwMCwweDM2LDB4NDAsMHg4OCwweDk0LDB4MDIsMHgwZiwweDAxLDB4YWIgfX0sCi0gezE2LCAweGZkMzAsIDAsIHsweDAwLDB4MzIsMHhjMCwweDA4LDB4MDQsMHgwYSwweDI5LDB4MDAsMHhhOSwweDAyLDB4YTIsMHg0MCwweDBkLDB4YjAsMHgwYSwweDIwIH19LAotIHsxNiwgMHhmZDQwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDAwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHg2MSB9fSwKLSB7MTYsIDB4ZmQ1MCwgMCwgezB4MGIsMHg5MCwweDAyLDB4MjUsMHgwMSwweDliLDB4ODgsMHgyZSwweDYwLDB4MDgsMHg4OCwweDAyLDB4ZTgsMHgwMCwweGIxLDB4MDIgfX0sCi0gezE2LCAweGZkNjAsIDAsIHsweDI0LDB4NDAsMHgxOCwweDkwLDB4MDIsMHgyYywweDAwLDB4YWIsMHgwMSwweDIwLDB4YzEsMHgwOCwweGI0LDB4NDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhmZDcwLCAwLCB7MHg4MiwweDAwLDB4MjIsMHhjMCwweDA4LDB4YjAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ4MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MjAsMHg0MCwweDBiLDB4MDAsMHgwYSwweDA0LDB4NDYsMHg4MywweDAxLDB4MmMgfX0sCi0gezE2LCAweGZkOTAsIDAsIHsweDQwLDB4MWEsMHgwMCwweDA2LDB4ODAsMHgwMCwweDgxLDB4MDAsMHgyNCwweDQwLDB4MDgsMHgyMCwweDBhLDB4MGMsMHgwMSwweGEzIH19LAotIHsxNiwgMHhmZGEwLCAwLCB7MHgwMCwweDI0LDB4MDAsMHgwOCwweDgwLDB4MDIsMHgwMCwweDAwLDB4YTEsMHgwMCwweDIwLDB4NDAsMHgwOSwweDMwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZmRiMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAyLDB4YzgsMHgwMCwweDIyLDB4MDAgfX0sCi0gezE2LCAweGZkYzAsIDAsIHsweDBmLDB4OTAsMHgwMiwweDI1LDB4MDAsMHhkYSwweDAwLDB4M2UsMHg0MCwweDBjLDB4OTAsMHgwMiwweGNjLDB4MDAsMHhmZCwweDAwIH19LAotIHsxNiwgMHhmZGQwLCAwLCB7MHgzNywweDQwLDB4MGMsMHgxMCwweDEzLDB4MmMsMHgwMiwweGFmLDB4MDAsMHgzMiwweGMwLDB4MGQsMHhiMCwweDAzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4ZmRlMCwgMCwgezB4Y2EsMHgwMCwweDMyLDB4NDAsMHg0YywweDkwLDB4MGIsMHgwMCwweDAxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkZjAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDAwLDB4ZmMsMHgwMCwweDNmLDB4MDAsMHgwNywweGMwLDB4MDMsMHhmNCwweDFjLDB4ZjQsMHgwMCwweDNmIH19LAotIHsxNiwgMHhmZTAwLCAwLCB7MHgwMCwweDFmLDB4YzAsMHgyMywweGIwLDB4MDIsMHg5ZCwweDAxLDB4M2YsMHg0MCwweDhmLDB4YzAsMHgwNywweGZjLDB4MDIsMHhmZiB9fSwKLSB7MTYsIDB4ZmUxMCwgMCwgezB4MDAsMHg3YiwweDAwLDB4MGYsMHhjMCwweDAzLDB4ZjAsMHgwMCwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg3MCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGZlMjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmEsMHgwMCwweGNiLDB4ODAsMHgzZiwweDI0IH19LAotIHsxNiwgMHhmZTMwLCAwLCB7MHgwYSwweGMxLDB4MDMsMHhmYywweDI0LDB4Y2QsMHgyMCwweDM3LDB4MGEsMHgwYywweGMyLDB4ODMsMHgzMCwweDgwLDB4ZGMsMHgwMiB9fSwKLSB7MTYsIDB4ZmU0MCwgMCwgezB4M2YsMHhjYywweDBkLDB4ZDksMHgwMywweDNjLDB4NTgsMHhkZiwweDMwLDB4MzMsMHhjOCwweDBkLDB4ZjQsMHgyMywweDNjLDB4NDAgfX0sCi0gezE2LCAweGZlNTAsIDAsIHsweGZmLDB4MDAsMHgzZiwweGM1LDB4NGYsMHhmMCwweDIzLDB4YjAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZTYwLCAwLCB7MHg4MCwweDAwLDB4ZWMsMHgwMiwweDBiLDB4ODIsMHgyZSwweDA4LDB4MGQsMHhiNywweDAyLDB4ZmQsMHgwMCwweDgzLDB4MTgsMHgwYSB9fSwKLSB7MTYsIDB4ZmU3MCwgMCwgezB4NTgsMHgwYSwweDg0LDB4YTIsMHhhNSwweGEwLDB4ODksMHgzMCwweDIyLDB4NTUsMHgwOCwweDEyLDB4NjIsMHhiZCwweDkwLDB4OGYgfX0sCi0gezE2LCAweGZlODAsIDAsIHsweDYyLDB4MjEsMHhkNiwweDQ4LDB4ZjMsMHgwMiwweDNjLDB4YzUsMHhiZiwweDQ4LDB4MmYsMHhkOCwweDRiLDB4YjcsMHgwMiwweGUwIH19LAotIHsxNiwgMHhmZTkwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGVjLDB4MDAsMHg4MywweDAwLDB4MmUsMHg4OSB9fSwKLSB7MTYsIDB4ZmVhMCwgMCwgezB4MjgsMHgwMCwweDAyLDB4ZWMsMHhhMCwweDg5LDB4MjIsMHgyOCwweDgyLDB4MDgsMHgxMiwweDAyLDB4MjgsMHg0MCwweDlhLDB4MDggfX0sCi0gezE2LCAweGZlYjAsIDAsIHsweDI4LDB4YzgsMHg4OCwweGIyLDB4MGEsMHgwZCwweDEwLDB4OTMsMHgxMCwweGEwLDB4YzgsMHgyOCwweDMwLDB4MDIsMHg0YywweDAwIH19LAotIHsxNiwgMHhmZWMwLCAwLCB7MHhiMywweDYwLDB4MmMsMHhjNCwweDBiLDB4MzAsMHhjMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmVkMCwgMCwgezB4YzAsMHgxNSwweGFjLDB4NDAsMHg4YiwweDAwLDB4MmUsMHg4MCwweDA4LDB4YjEsMHgwMiwweGVjLDB4MDIsMHg4YiwweDAwLDB4MjAgfX0sCi0gezE2LCAweGZlZTAsIDAsIHsweGQwLDB4MGEsMHg5MCwweDAyLDB4YWMsMHgwMCwweDBiLDB4MDEsMHgyNiwweDQwLDB4MDgsMHg5NCwweDAyLDB4OGMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhmZWYwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDEwLDB4YmIsMHgwMCwweDJlLDB4YzAsMHgwYiwweGIwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4ZmYwMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTQsMHg4YywweDIwLDB4Y2IsMHgwMiwweDNlLDB4MmQgfX0sCi0gezE2LCAweGZmMTAsIDAsIHsweDA4LDB4ODAsMHgwMywweGVjLDB4MDgsMHhjOSwweDgwLDB4MWUsMHgwNCwweDBjLDB4YjAsMHgwMywweDAxLDB4MDgsMHg1MCwweDE4IH19LAotIHsxNiwgMHhmZjIwLCAwLCB7MHgzZSwweDQwLDB4MGMsMHgwNCwweDAzLDB4MmMsMHgwMCwweGRiLDB4MDEsMHgzMiwweGMwLDB4MGMsMHhiMCwweDBiLDB4MmMsMHgwOCB9fSwKLSB7MTYsIDB4ZmYzMCwgMCwgezB4YmIsMHgwMCwweDNlLDB4YzAsMHgwZiwweGIwLDB4MDMsMHg4MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZmNDAsIDAsIHsweGUxLDB4MDAsMHhiYywweDAwLDB4ZmYsMHgwMCwweDNmLDB4NjAsMHgwZiwweGMwLDB4MjMsMHhlYywweDAwLDB4ZmYsMHhjMCwweGJlIH19LAotIHsxNiwgMHhmZjUwLCAwLCB7MHg2MCwweDhmLDB4YzksMHgyMywweGY2LDB4NTAsMHhlZCwweDgwLDB4YjgsMHg1MCwweGFmLDB4YzAsMHgwMywweGZjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ZmY2MCwgMCwgezB4MDAsMHgzZiwweGMxLDB4MGUsMHhiMCwweDAzLDB4ZmMsMHgwNCwweGZmLDB4MDIsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGZmNzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMCwweGViLDB4MDAsMHgzMiwweDgwIH19LAotIHsxNiwgMHhmZjgwLCAwLCB7MHgwZCwweDkwLDB4MDMsMHgyYywweDAwLDB4ODksMHgwMCwweDNlLDB4OTgsMHg4YywweDMwLDB4MDMsMHg2MSwweDgwLDB4ZmEsMHg0MCB9fSwKLSB7MTYsIDB4ZmY5MCwgMCwgezB4M2UsMHg0MCwweDJjLDB4YTUsMHgwMywweDJjLDB4MDAsMHhmYiwweDAxLDB4M2MsMHhjMCwweDJjLDB4MzAsMHgwMywweDJjLDB4MDAgfX0sCi0gezE2LCAweGZmYTAsIDAsIHsweGRiLDB4MDIsMHgzMiwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZDAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZmIwLCAwLCB7MHhjYSwweDAwLDB4MmUsMHg4MCwweDhiLDB4ODIsMHhhMCwweGMwLDB4OGMsMHg5MCwweDAyLDB4M2MsMHgwMCwweDhiLDB4ZjAsMHgyMiB9fSwKLSB7MTYsIDB4ZmZjMCwgMCwgezB4YzIsMHgwZCwweDgwLDB4MDIsMHgyNywweDAwLDB4OGIsMHgxMCwweDIyLDB4NDAsMHgwOCwweDgwLDB4MjIsMHgzYywweDAwLDB4YmYgfX0sCi0gezE2LCAweGZmZDAsIDAsIHsweDAwLDB4MmYsMHhjMCwweDA4LDB4ZjAsMHgwMiwweDNjLDB4MDAsMHhiZiwweDAxLDB4YTMsMHhjMCwweDBiLDB4ZjAsMHgxMiwweGYyIH19LAotIHsxNiwgMHhmZmUwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRjLDB4MDAsMHhiMywweDFjLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4ZmZmMCwgMCwgezB4MDgsMHgwMCwweDA2LDB4MmMsMHgwMCwweDliLDB4MDAsMHgyMCwweGQwLDB4MDgsMHgyMCwweDAyLDB4NGMsMHgwMCwweGEzLDB4MDAgfX0sCi0gezE2LCAweDgwMTAsIDAsIHsweDJjLDB4YzAsMHgwOCwweDEwLDB4MGEsMHgwYywweDAwLDB4YmIsMHgwMCwweDI4LDB4YzAsMHgwOSwweDMwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg4MDIwLCAwLCB7MHhiMywweDAwLDB4MjAsMHhjMCwweDBiLDB4MzAsMHgwMiwweGY4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODAzMCwgMCwgezB4MjIsMHgxMSwweDFlLDB4MDAsMHg5NywweGEwLDB4MjEsMHhhMCwweDA4LDB4NzksMHgwMiwweDFlLDB4MDAsMHg5NywweDkwLDB4MjEgfX0sCi0gezE2LCAweDgwNDAsIDAsIHsweDYwLDB4MDksMHhlOCwweDIyLDB4M2UsMHgwMCwweGFmLDB4ODQsMHgyMSwweGU0LDB4NDgsMHg1YywweDAyLDB4MWUsMHgwMCwweGI3IH19LAotIHsxNiwgMHg4MDUwLCAwLCB7MHg5MCwweDJkLDB4ZTAsMHgwOSwweDc4LDB4MDAsMHgxZSwweDA5LDB4YjMsMHg5MCwweDIxLDB4ZTQsMHgwYiwweDc4LDB4MDIsMHhkOCB9fSwKLSB7MTYsIDB4ODA2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MTgsMHgyYywweDQwLDB4YjMsMHhiMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweDgwNzAsIDAsIHsweDJjLDB4ODEsMHgxMywweDBjLDB4NDIsMHhkMSwweDAwLDB4YjAsMHhjMCwweDhjLDB4MzAsMHgwMywweDQ4LDB4MjAsMHhlMywweDAxIH19LAotIHsxNiwgMHg4MDgwLCAwLCB7MHgzYywweGMwLDB4MGMsMHgzMCwweDAzLDB4MGMsMHgwMCwweGYzLDB4MTAsMHgzYywweGMwLDB4Y2QsMHgzMiwweDBiLDB4MGMsMHg0MCB9fSwKLSB7MTYsIDB4ODA5MCwgMCwgezB4ZDMsMHgwMCwweDMwLDB4YzAsMHgwZiwweDMwLDB4MDMsMHhkMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgwYTAsIDAsIHsweDQwLDB4MTUsMHhiYywweDAwLDB4ZTcsMHgwMCwweDNmLDB4ODAsMHgwYiwweGYxLDB4MDMsMHhmZCwweDAwLDB4NmQsMHgwMCwweDMyIH19LAotIHsxNiwgMHg4MGIwLCAwLCB7MHg0MCwweDFmLDB4NzAsMHgwNywweGQ4LDB4NDEsMHhjMywweDEwLDB4M2IsMHhjMCwweDBmLDB4ZDEsMHgwMywweGZkLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ODBjMCwgMCwgezB4MTAsMHgzZiwweGMwLDB4MGUsMHhmMCwweDAzLDB4ZWMsMHgxMCwweGZmLDB4MDgsMHgzZiwweGMzLDB4MGYsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDgwZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDE1LDB4ZWMsMHgwNCwweGZiLDB4MDIsMHgzZSwweDQwIH19LAotIHsxNiwgMHg4MGUwLCAwLCB7MHgwYiwweGEwLDB4MDMsMHhhYywweDAwLDB4ZGIsMHgwMCwweDM2LDB4ODAsMHgwZCwweGIwLDB4MDMsMHhhYywweDAwLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4ODBmMCwgMCwgezB4MzYsMHhjMSwweDJlLDB4OTAsMHgwMywweDJjLDB4MDAsMHhjYiwweGEwLDB4MzYsMHhkYywweDBmLDB4YjAsMHgwMywweDJkLDB4NjggfX0sCi0gezE2LCAweDgxMDAsIDAsIHsweGZiLDB4YTAsMHg5MiwweGMyLDB4MGMsMHhiMSwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MTEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwOCwweDM3LDB4MDAsMHgyZCwweGMwLDB4MGIsMHhlMCwweDAyLDB4MWQsMHg4MCwweGI3LDB4MDQsMHgyMyB9fSwKLSB7MTYsIDB4ODEyMCwgMCwgezB4MDAsMHgwYSwweDQwLDB4MDIsMHgxYywweDE4LDB4ODQsMHgwMCwweDI1LDB4YzAsMHgxOCwweDUwLDB4MzIsMHgwZCwweDgwLDB4YTMgfX0sCi0gezE2LCAweDgxMzAsIDAsIHsweDMwLDB4MjEsMHhjYywweDBiLDB4MzQsMHg4MiwweDFjLDB4MTAsMHhiNywweDMwLDB4MjEsMHhjOCwweDA4LDB4NzAsMHgwMiwweGQyIH19LAotIHsxNiwgMHg4MTQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MjAsMHhiNywweDgwLDB4MmQsMHg2MCB9fSwKLSB7MTYsIDB4ODE1MCwgMCwgezB4MGIsMHhmYywweDIyLDB4OWUsMHgwMCwweDhkLDB4ODAsMHgyNSwweGEwLDB4MDgsMHhmOCwweDIyLDB4OTIsMHgwMCwweGI0LDB4ODAgfX0sCi0gezE2LCAweDgxNjAsIDAsIHsweDI1LDB4ZTAsMHgwOCwweGY4LDB4MDIsMHgxZSwweDAwLDB4ODcsMHhiMCwweDIxLDB4ZTAsMHgwOSwweDdhLDB4MDIsMHgxZSwweDE4IH19LAotIHsxNiwgMHg4MTcwLCAwLCB7MHhiMywweDgwLDB4MjEsMHhlMCwweDA4LDB4NzgsMHgwMiwweGYwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODE4MCwgMCwgezB4NDgsMHgwNCwweGM1LDB4MjAsMHhiMywweDAxLDB4MmMsMHhkOCwweDBiLDB4M2MsMHgwMiwweDJjLDB4MDgsMHhiOSwweDAwLDB4MjAgfX0sCi0gezE2LCAweDgxOTAsIDAsIHsweDAzLDB4MGEsMHgwMCwweDgyLDB4MjIsMHgwOCwweDkwLDB4MGQsMHgyNiwweGU0LDB4MDgsMHgxMCwweDAyLDB4MGMsMHgwMCwweGEzIH19LAotIHsxNiwgMHg4MWEwLCAwLCB7MHgwMCwweDIyLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg2YywweDAwLDB4YjMsMHgwMCwweDIyLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODFiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MDUsMHg5OSwweDAwLDB4ZmEsMHgwMiwweDNmLDB4OTAgfX0sCi0gezE2LCAweDgxYzAsIDAsIHsweDBmLDB4ZWMsMHgyMywweGE4LDB4MDAsMHhkYSwweDAwLDB4MzUsMHg4MCwweDBkLDB4ZTAsMHgwMiwweGJhLDB4MDIsMHhmZSwweGMyIH19LAotIHsxNiwgMHg4MWQwLCAwLCB7MHhiNiwweGEwLDB4MGUsMHhlNCwweDBiLDB4MjgsMHgwMCwweGNhLDB4MDAsMHhiMiwweDgwLDB4MGYsMHhhMCwweDBiLDB4MjgsMHgwMCB9fSwKLSB7MTYsIDB4ODFlMCwgMCwgezB4ZmEsMHgwMCwweDMyLDB4ODAsMHgwYywweGEwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgxZjAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlLDB4MDAsMHgwZiwweDgyLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHgwMCwweDNlIH19LAotIHsxNiwgMHg4MjAwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4NDAsMHhlOCwweDEwLDB4M2EsMHgwMCwweDRmLDB4ODQsMHg4MywweGUwLDB4MDAsMHhmOCB9fSwKLSB7MTYsIDB4ODIxMCwgMCwgezB4MDAsMHgzYSwweDAwLDB4MGYsMHgwMCwweDAzLDB4YTAsMHgwMCwweGY4LDB4MDAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDgyMjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4ZTUsMHgwMCwweGM5LDB4MDIsMHgzZSwweDQwIH19LAotIHsxNiwgMHg4MjMwLCAwLCB7MHgwZiwweDkwLDB4MjMsMHgyNCwweDAwLDB4YzksMHgwMCwweDMyLDB4NjgsMHgyZiwweDEwLDB4MDMsMHgyNCwweDAwLDB4ZTksMHgxNCB9fSwKLSB7MTYsIDB4ODI0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwYiwweDA0LDB4MDAsMHhkOSwweDAwLDB4MWUsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweDgyNTAsIDAsIHsweGM5LDB4MDAsMHgzNiwweDQwLDB4MGMsMHg5MCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4MjYwLCAwLCB7MHg4MCwweDE0LDB4NjQsMHgwMCwweDg5LDB4MDEsMHgyZSwweDQwLDB4NGIsMHg5MCwweDEyLDB4MjQsMHgwMCwweDg5LDB4YzIsMHhhMiB9fSwKLSB7MTYsIDB4ODI3MCwgMCwgezB4NjAsMHg4OCwweDkwLDB4MDMsMHg2NCwweDAwLDB4ODksMHhjMSwweGEyLDB4NDAsMHg0OCwweDE2LDB4MDMsMHg2NCwweDAyLDB4ODkgfX0sCi0gezE2LCAweDgyODAsIDAsIHsweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgyMiwweDI0LDB4MDAsMHg4OSwweDAwLDB4M2UsMHg0MCwweDI4LDB4OTAsMHgwYSwweDIwIH19LAotIHsxNiwgMHg4MjkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNCwweDI0LDB4MDAsMHg4OSwweDAyLDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4ODJhMCwgMCwgezB4MGIsMHgxMCwweDAyLDB4MjQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4ODksMHg5MCwweDAyLDB4YWMsMHgwMCwweGExLDB4MDggfX0sCi0gezE2LCAweDgyYjAsIDAsIHsweDIyLDB4NDAsMHgwOSwweDk4LDB4MDIsMHhhNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwIH19LAotIHsxNiwgMHg4MmMwLCAwLCB7MHg4OSwweDAwLDB4MjYsMHg0MCwweDA4LDB4MTAsMHgwMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODJkMCwgMCwgezB4MDgsMHgwMCwweDI0LDB4MDAsMHg4MSwweDAwLDB4MmMsMHg0MSwweDBiLDB4MTIsMHgwMiwweDA0LDB4ODEsMHg4MSwweDIwLDB4MjIgfX0sCi0gezE2LCAweDgyZTAsIDAsIHsweDQ4LDB4MDgsMHgxMiwweDAyLDB4YzQsMHg4MSwweDgxLDB4MjQsMHgwMiwweDQ4LDB4MGEsMHg5MCwweDAyLDB4ODQsMHhhMCwweDgxIH19LAotIHsxNiwgMHg4MmYwLCAwLCB7MHgyOCwweDZjLDB4NGEsMHgwOCwweDEyLDB4ZDIsMHgwNCwweGExLDB4ODEsMHgyOCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHgwMiB9fSwKLSB7MTYsIDB4ODMwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MDgsMHg2MSwweDQwLDB4YzgsMHgwMCwweDJlLDB4MTQgfX0sCi0gezE2LCAweDgzMTAsIDAsIHsweDBmLDB4ODUsMHgwYiwweDIxLDB4NDIsMHhjYSwweDUwLDB4MjIsMHgxNCwweDBkLDB4ODUsMHg0MywweGExLDB4NDAsMHhlOCwweDUwIH19LAotIHsxNiwgMHg4MzIwLCAwLCB7MHgzMCwweDAwLDB4MGQsMHg4NSwweDAyLDB4YTEsMHhjMCwweGQ4LDB4MjAsMHgzYSwweDA4LDB4MmMsMHg4MiwweDBiLDB4MjAsMHg4MiB9fSwKLSB7MTYsIDB4ODMzMCwgMCwgezB4YzgsMHgyMCwweDM0LDB4MDksMHg4YywweDgyLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDgzNDAsIDAsIHsweDk4LDB4MGQsMHhmYywweDAyLDB4ZjksMHgwMCwweDNmLDB4NDAsMHg0ZiwweGQxLDB4MDMsMHhlNCwweDQwLDB4ZjUsMHgxNCwweGJmIH19LAotIHsxNiwgMHg4MzUwLCAwLCB7MHg0NCwweDBkLDB4NTEsMHgyMywweDVjLDB4NDAsMHhmNSwweDEwLDB4MWYsMHg0ZSwweDRkLDB4NTAsMHgwMywweDY0LDB4MDgsMHhmOSB9fSwKLSB7MTYsIDB4ODM2MCwgMCwgezB4MjgsMHgzZSwweDRhLDB4OGYsMHg5MiwweDgzLDB4ZTQsMHhhMCwweGY5LDB4MjgsMHgzYSwweDRiLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDgzNzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZjQsMHg0MCwweGZkLDB4MDAsMHgzMCwweDQwIH19LAotIHsxNiwgMHg4MzgwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4ZGQsMHgwMCwweDNiLDB4NDAsMHgwZSwweDkwLDB4MDMsMHg3NCwweDAwLDB4NWQsMHgwMCB9fSwKLSB7MTYsIDB4ODM5MCwgMCwgezB4MzYsMHg2NCwweDBkLDB4ZDAsMHgwMCwweGE2LDB4MDAsMHhmOSwweDQwLDB4MzIsMHg3OCwweDBjLDB4OTksMHgwMywweDI0LDB4NDAgfX0sCi0gezE2LCAweDgzYTAsIDAsIHsweGM5LDB4OTAsMHgzMiwweDUwLDB4MGYsMHg5YiwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4M2IwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHg4MCwweGI4LDB4MDAsMHgyMiwweDAxLDB4MDgsMHg4MCwweDBhLDB4MjAsMHgwMCwweDg4LDB4MDAsMHgyYSB9fSwKLSB7MTYsIDB4ODNjMCwgMCwgezB4MDAsMHgwOCwweDgwLDB4MDIsMHgyMCwweDAwLDB4ODgsMHgwMCwweDIyLDB4MjAsMHgwOCwweDhhLDB4OGIsMHhlMSwweDAwLDB4YjggfX0sCi0gezE2LCAweDgzZDAsIDAsIHsweDgwLDB4MjIsMHgzMCwweDI4LDB4MGQsMHgwMiwweDIyLDB4MDAsMHhkOCwweGU0LDB4MjIsMHgyOCwweDBiLDB4OGYsMHgwYSwweDBlIH19LAotIHsxNiwgMHg4M2UwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4ODAsMHhiMSwweDAwLDB4YTAsMHg0MCB9fSwKLSB7MTYsIDB4ODNmMCwgMCwgezB4MDgsMHgxMCwweDAyLDB4MDQsMHgwMCwweDg5LDB4MDAsMHgwOCwweDQwLDB4MGEsMHg5MCwweDQyLDB4NDQsMHgwMCwweDkxLDB4MDAgfX0sCi0gezE2LCAweDg0MDAsIDAsIHsweDIwLDB4NTgsMHgyOCwweDkwLDB4MDIsMHg4NSwweDAwLDB4ODEsMHgyMCwweGEwLDB4NGMsMHgwOSwweDEyLDB4MGEsMHgwNCwweDgwIH19LAotIHsxNiwgMHg4NDEwLCAwLCB7MHg5MSwweDQwLDB4YTAsMHg0MCwweDBiLDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODQyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDAsMHhiOSwweDAyLDB4MjAsMHg0MCwweDA4LDB4OTAsMHgwMiwweDA0LDB4MDAsMHg4OSwweDAxLDB4MjIgfX0sCi0gezE2LCAweDg0MzAsIDAsIHsweDQwLDB4MjgsMHg5MCwweDIyLDB4MDQsMHgwMCwweDg5LDB4MTAsMHgyMiwweDQwLDB4MDgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweGIxIH19LAotIHsxNiwgMHg4NDQwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4MSwweDkwLDB4MDIsMHgwNCwweDAwLDB4OTEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4ODQ1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4ZjEsMHgwMCwweDMyLDB4NjAgfX0sCi0gezE2LCAweDg0NjAsIDAsIHsweDJjLDB4OTIsMHgxMywweDI0LDB4MDIsMHhkMSwweDEwLDB4M2EsMHg0MCwweDBlLDB4MTIsMHgwMywweDY2LDB4MDQsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4NDcwLCAwLCB7MHhiNiwweDQwLDB4MGQsMHgxOSwweDAzLDB4YTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwLDB4MDksMHg5MCwweDAxLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4ODQ4MCwgMCwgezB4ZDksMHgwMiwweDIyLDB4NDAsMHgwZiwweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg0OTAsIDAsIHsweDJhLDB4MDEsMHhhNSwweDAwLDB4ZjksMHgwMCwweDNlLDB4NjQsMHgwZiwweDEwLDB4MDMsMHhlNCwweDAwLDB4ZjksMHg4MSwweDNlIH19LAotIHsxNiwgMHg4NGEwLCAwLCB7MHg2NiwweDhmLDB4OTAsMHgyMywweGU0LDB4ODAsMHhmOSwweDA0LDB4M2UsMHg0MCwweDhmLDB4OTAsMHgwMywweGU0LDB4MDQsMHhmOSB9fSwKLSB7MTYsIDB4ODRiMCwgMCwgezB4MDAsMHgzYywweDQwLDB4MGUsMHg5MCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHgxMCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweDg0YzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyYSwweDEwLDB4YTAsMHgwMCwweGY4LDB4MjQsMHgzZSwweDAwIH19LAotIHsxNiwgMHg4NGQwLCAwLCB7MHgyYywweDg0LDB4MDMsMHgyMCwweDAwLDB4YjgsMHgyMCwweDNlLDB4MDAsMHg4YywweDgwLDB4MDMsMHhhMCwweDAwLDB4NzAsMHg4MiB9fSwKLSB7MTYsIDB4ODRlMCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweDIwLDB4MDgsMHhmOCwweDAwLDB4MzIsMHgwMCwweDJjLDB4ODAsMHgwYiwweDIwLDB4MDggfX0sCi0gezE2LCAweDg0ZjAsIDAsIHsweGM4LDB4MDAsMHgzZSwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NTAwLCAwLCB7MHgyOCwweDA1LDB4MjgsMHgwNCwweGJlLDB4ODAsMHgzYSwweDgwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwNCwweDhlLDB4MDAsMHg2ZCB9fSwKLSB7MTYsIDB4ODUxMCwgMCwgezB4OTAsMHgwZCwweGEwLDB4MDIsMHgzYSwweDAwLDB4OGUsMHg4MCwweGEyLDB4ODAsMHgwZSwweGUwLDB4MGIsMHg2OCwweDAwLDB4YmEgfX0sCi0gezE2LCAweDg1MjAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhkYSwweDAwLDB4MmUsMHg4MCwweDA4LDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg4NTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHg4MSwweDRjLDB4MDAsMHhiMSwweDAwLDB4MmMsMHhjMCB9fSwKLSB7MTYsIDB4ODU0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MGMsMHgxOCwweGEzLDB4MDIsMHgyYywweDEwLDB4ODgsMHgzMCwweDA2LDB4ODIsMHg4MSwweGEwLDB4MDAgfX0sCi0gezE2LCAweDg1NTAsIDAsIHsweDJhLDB4YzAsMHgwYiwweDMwLDB4MGEsMHg0YywweDAwLDB4YjMsMHgwMCwweDIwLDB4YzAsMHgxYSwweGIwLDB4MDIsMHg4YywweDAxIH19LAotIHsxNiwgMHg4NTYwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODU3MCwgMCwgezB4MjAsMHgwMSwweDFjLDB4MTAsMHhiNCwweDBhLDB4MmIsMHhjOCwweDA4LDB4MzEsMHgyNiwweDFjLDB4MDAsMHg4NiwweDAwLDB4MmQgfX0sCi0gezE2LCAweDg1ODAsIDAsIHsweGMwLDB4MDksMHg3MiwweDAyLDB4MWQsMHgwMCwweGE1LDB4NDAsMHgyOSwweGMwLDB4MGEsMHg2MCwweDAyLDB4NWMsMHg4OCwweGIzIH19LAotIHsxNiwgMHg4NTkwLCAwLCB7MHgyMCwweDI1LDB4YzgsMHgwYSwweDcyLDB4MDIsMHg5YywweDgwLDB4OTcsMHgyMCwweDJjLDB4ZTgsMHg4MCwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4ODVhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDI4LDB4MDgsMHgxNiwweDAwLDB4YjUsMHg4MCwweDNkLDB4ZTIgfX0sCi0gezE2LCAweDg1YjAsIDAsIHsweDBjLDB4N2EsMHg4YiwweDBlLDB4YzAsMHhhNywweDgxLDB4MmMsMHgyMCwweDBjLDB4ZmMsMHgwMywweDkyLDB4MDIsMHhlZiwweDgwIH19LAotIHsxNiwgMHg4NWMwLCAwLCB7MHgzOSwweGU0LDB4MGIsMHhkOCwweDAxLDB4MWYsMHgwMCwweGY3LDB4ODAsMHhiMywweGY0LDB4OGUsMHg3OSwweDAzLDB4OGUsMHgwMCB9fSwKLSB7MTYsIDB4ODVkMCwgMCwgezB4YzcsMHhjNCwweDNkLDB4ZTgsMHgyYywweDdiLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg1ZTAsIDAsIHsweDA4LDB4MWQsMHhhYywweDAwLDB4ZjgsMHgwMCwweDNlLDB4ZGQsMHg4NywweGI2LDB4MDMsMHhlZCwweGNjLDB4ZTksMHgwMCwweDNlIH19LAotIHsxNiwgMHg4NWYwLCAwLCB7MHg0MCwweDBmLDB4YjAsMHgwNywweGNjLDB4MTAsMHgwYiwweDAwLDB4MzYsMHhkOCwweDBmLDB4ODAsMHg0MywweGFkLDB4ODAsMHhmYiB9fSwKLSB7MTYsIDB4ODYwMCwgMCwgezB4MjgsMHgzYSwweGMwLDB4MGQsMHhiNCwweDAzLDB4NmMsMHhlMiwweGViLDB4NjAsMHgzZSwweGQ0LDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDg2MTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4ZmUsMHgwMCwweGZlLDB4OTAsMHgzZiwweGU1IH19LAotIHsxNiwgMHg4NjIwLCAwLCB7MHgwZSwweGY4LDB4MDMsMHgzZSwweDEwLDB4ZmYsMHg5MCwweDE3LDB4NjAsMHgwZiwweGZjLDB4MDMsMHg3YSwweDAwLDB4ZWUsMHg4MCB9fSwKLSB7MTYsIDB4ODYzMCwgMCwgezB4MzcsMHhlMiwweDBlLDB4NzgsMHgwZiwweGZmLDB4NDAsMHhlZiwweDg4LDB4MWYsMHhlMCwweDBjLDB4ZjgsMHg4MywweGZlLDB4ODAgfX0sCi0gezE2LCAweDg2NDAsIDAsIHsweGNmLDB4ZDAsMHhiMywweGYwLDB4MGMsMHhmOCwweGMzLDB4MTAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4NjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHg0MCwweGI0LDB4MTAsMHgwZiwweGNjLDB4MDAsMHg3MiwweDAyLDB4MWMsMHgwMCwweGI2LDB4MDIsMHgwOSB9fSwKLSB7MTYsIDB4ODY2MCwgMCwgezB4YzAsMHgyOCwweGYwLDB4MDIsMHg5OCwweDAwLDB4YTYsMHgwMCwweDIxLDB4YzAsMHgwYiwweDYwLDB4MDMsMHhmYywweDAyLDB4ODcgfX0sCi0gezE2LCAweDg2NzAsIDAsIHsweDAwLDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweGRlLDB4MDAsMHg4ZiwweDEwLDB4MjEsMHhjMCwweDA4LDB4ZjAsMHgwMywweDZhIH19LAotIHsxNiwgMHg4NjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDk0LDB4MDAsMHhiNiwweDAyLDB4MmYsMHhjMiB9fSwKLSB7MTYsIDB4ODY5MCwgMCwgezB4MWEsMHgzMCwweDgwLDB4MWMsMHgwMCwweGI2LDB4MDgsMHgwMSwweDQwLDB4MGEsMHhmMCwweDAyLDB4MTgsMHgwMCwweDg3LDB4MDAgfX0sCi0gezE2LCAweDg2YTAsIDAsIHsweDIxLDB4YzAsMHgwYiwweGQwLDB4MDIsMHg5YywweDEwLDB4ODcsMHgwMCwweDI5LDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDQ0IH19LAotIHsxNiwgMHg4NmIwLCAwLCB7MHg4NywweDEwLDB4NjQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDA2LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODZjMCwgMCwgezB4NjAsMHgxNCwweGNlLDB4NjAsMHhiMCwweDAwLDB4MmMsMHhjMCwweDA4LDB4MzQsMHgwYSwweDBjLDB4MDgsMHhiMCwweDA0LDB4MDAgfX0sCi0gezE2LCAweDg2ZDAsIDAsIHsweDQwLDB4MDgsMHgzMCwweGEyLDB4ODksMHg4MCwweGEyLDB4NjIsMHgyMCwweGUwLDB4MGIsMHgwMCwweDBhLDB4Y2MsMHgwOCwweDgzIH19LAotIHsxNiwgMHg4NmUwLCAwLCB7MHgwMCwweDZjLDB4YzAsMHgwOCwweDMwLDB4NTIsMHhjYywweDAwLDB4ODMsMHgwMCwweDI0LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg1OCB9fSwKLSB7MTYsIDB4ODZmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZSwweDAwLDB4ZjgsMHgwMCwweDNmLDB4ZDAgfX0sCi0gezE2LCAweDg3MDAsIDAsIHsweDBlLDB4ZmMsMHgwMywweDNjLDB4MDAsMHhmOSwweDAwLDB4OTIsMHg4NCwweDBmLDB4ZmMsMHgwMywweDY0LDB4MDAsMHg4MCwweDAwIH19LAotIHsxNiwgMHg4NzEwLCAwLCB7MHhiNywweGMzLDB4MGYsMHhiOCwweDgzLDB4YmMsMHgwNCwweGVmLDB4MDAsMHgzZiwweGMwLDB4M2MsMHhmMCwweDAzLDB4ZmMsMHgwMiB9fSwKLSB7MTYsIDB4ODcyMCwgMCwgezB4Y2YsMHgwMCwweDM3LDB4YzAsMHgyOCwweGYwLDB4MTMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg3MzAsIDAsIHsweDgwLDB4MDAsMHhlYywweDAwLDB4ZjgsMHg0MSwweDNlLDB4YzgsMHgwZiwweDMyLDB4MDMsMHhlYywweDAwLDB4ZjgsMHgwMCwweDNhIH19LAotIHsxNiwgMHg4NzQwLCAwLCB7MHhjNCwweDBmLDB4YjEsMHgwMywweGM0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHhjMCwweDBmLDB4ZTQsMHgwYiwweGVjLDB4MDQsMHhmYiB9fSwKLSB7MTYsIDB4ODc1MCwgMCwgezB4MDAsMHgzZSwweGMxLDB4MGYsMHhiMCwweDQzLDB4ZWMsMHgwNCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTQgfX0sCi0gezE2LCAweDg3NjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjQsMHgwMCwweGZjLDB4ODAsMHgzZiwweGMwIH19LAotIHsxNiwgMHg4NzcwLCAwLCB7MHgxZiwweGYwLDB4MDMsMHgzYywweDA4LDB4ZmIsMHgwMCwweDMzLDB4ODAsMHgyZSwweGYwLDB4MTMsMHhhNCwweDA0LDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4ODc4MCwgMCwgezB4YjksMHhjMCwweDJjLDB4ZDgsMHgwYiwweDNjLDB4MDAsMHhmZiwweDAwLDB4M2YsMHhjMCwweDA5LDB4NzAsMHgwMCwweDJjLDB4MDQgfX0sCi0gezE2LCAweDg3OTAsIDAsIHsweGZmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4N2EwLCAwLCB7MHhjMSwweDAwLDB4NmMsMHgwMCwweGI4LDB4ODAsMHgyZSwweGMwLDB4MGIsMHhiMCwweDAzLDB4NmMsMHgwMCwweGI5LDB4MTYsMHgyOCB9fSwKLSB7MTYsIDB4ODdiMCwgMCwgezB4NzIsMHgwOCwweGIwLDB4MjIsMHgyNywweDQwLDB4ZGIsMHgwMCwweDIyLDB4YzAsMHgwOCwweGJkLDB4ODIsMHgyYywweDA4LDB4YmIgfX0sCi0gezE2LCAweDg3YzAsIDAsIHsweDAwLDB4MmUsMHhjMCwweDQ4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiYiwweDAwLDB4MmUsMHhjMSwweDBiLDB4YjAsMHgwMiwweGUwIH19LAotIHsxNiwgMHg4N2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHhiOCwweDYwLDB4MmUsMHhjMCB9fSwKLSB7MTYsIDB4ODdlMCwgMCwgezB4MGIsMHhiMCwweDAyLDB4MmMsMHgwMCwweGIxLDB4MDAsMHgyYSwweDg0LDB4NGEsMHgzMCwweDIyLDB4YWMsMHgyMCwweDk4LDB4ODAgfX0sCi0gezE2LCAweDg3ZjAsIDAsIHsweDJhLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhhYywweDAwLDB4M2IsMHgwMCwweDJjLDB4YzAsMHgwYSwweGIwLDB4MDIsMHhhYywweDA4IH19LAotIHsxNiwgMHg4ODAwLCAwLCB7MHhiYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4YjAsMHg0MiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODgxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDEsMHhiMCwweDAwLDB4MmMsMHhjMCwweDBiLDB4MzAsMHgwMiwweDRjLDB4MDQsMHhiMCwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg4MjAsIDAsIHsweDgwLDB4MDgsMHgzMCwweDAyLDB4MDAsMHgwMCwweDEwLDB4MDQsMHgyOCwweGMwLDB4MDgsMHgyMCwweDQyLDB4OGMsMHgwMCwweGIzIH19LAotIHsxNiwgMHg4ODMwLCAwLCB7MHgwMCwweDJjLDB4YzAsMHg0MiwweDMwLDB4MGEsMHg4YywweDAwLDB4YjMsMHgwMCwweDJjLDB4YzAsMHg4YiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4ODg0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2NCwweDAwLDB4ZjgsMHg1MCwweDNmLDB4YzAgfX0sCi0gezE2LCAweDg4NTAsIDAsIHsweDBiLDB4ZjAsMHgwMywweDNjLDB4MDAsMHhmYSwweDA0LDB4MzIsMHg4MCwweDBlLDB4ZjAsMHgyMywweGFjLDB4MDAsMHhkOSwweDAwIH19LAotIHsxNiwgMHg4ODYwLCAwLCB7MHgzYiwweGMwLDB4MGMsMHg5MCwweDAzLDB4YmMsMHgwNCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MmUsMHhmMCwweDBiLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4ODg3MCwgMCwgezB4ZmYsMHgwNCwweDNmLDB4YzAsMHgwZiwweGYwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg4ODAsIDAsIHsweGEwLDB4MWQsMHhmYywweDAwLDB4ZmMsMHgwMCwweDNmLDB4YzAsMHgwNywweGYwLDB4MDMsMHhmYywweDA0LDB4N2MsMHgwMiwweGI1IH19LAotIHsxNiwgMHg4ODkwLCAwLCB7MHgwMCwweDBmLDB4ZjAsMHgwMywweGYwLDB4MDAsMHhmYywweDAwLDB4MzcsMHhjMCwweDBmLDB4ZjAsMHgxMywweDdjLDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4ODhhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4NmQsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4MWYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDg4YjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGQ1LDB4ODAsMHgzMywweDBhIH19LAotIHsxNiwgMHg4OGMwLCAwLCB7MHg0YywweGY4LDB4MDMsMHhmMiwweDAwLDB4ZmMsMHgwMCwweDM3LDB4MjYsMHgxZiwweGNhLDB4MDMsMHhiYywweGM0LDB4Y2YsMHgyMCB9fSwKLSB7MTYsIDB4ODhkMCwgMCwgezB4MzMsMHhlNCwweDBmLDB4NzgsMHgwMywweDNlLDB4NDQsMHhjZiwweDAwLDB4M2IsMHhjZSwweDlmLDB4NjgsMHgxMywweGQwLDB4MDAgfX0sCi0gezE2LCAweDg4ZTAsIDAsIHsweGNkLDB4ODAsMHhiMywweDYwLDB4MGYsMHhmYSwweDgzLDB4ZjAsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4OGYwLCAwLCB7MHg4MCwweDEwLDB4ZTAsMHg4MCwweGM5LDB4MjgsMHgyMiwweDMwLDB4MDgsMHhiMiwweDIyLDB4ZWEsMHgwMSwweGI4LDB4ODIsMHgyMCB9fSwKLSB7MTYsIDB4ODkwMCwgMCwgezB4NTAsMHg0ZiwweDljLDB4MDAsMHhhOCwweGQxLDB4ZGIsMHgxMCwweGE2LDB4ZTAsMHgxNywweGI4LDB4MDMsMHhlYywweDgwLDB4ZGIgfX0sCi0gezE2LCAweDg5MTAsIDAsIHsweDA4LDB4MWYsMHhkMCwweDBiLDB4YjgsMHgwMiwweGY2LDB4MDAsMHhmYiwweDgwLDB4MjIsMHg0MCwweDBiLDB4YjAsMHgwMiwweDYwIH19LAotIHsxNiwgMHg4OTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MjAsMHg4MSwweDgwLDB4MjAsMHgwMCB9fSwKLSB7MTYsIDB4ODkzMCwgMCwgezB4OGIsMHgzMCwweDgyLDB4YzAsMHgwMCwweGIwLDB4MTAsMHgyOCwweDA4LDB4OGIsMHgxMSwweDMwLDB4YzQsMHg4NCwweDkwLDB4MjggfX0sCi0gezE2LCAweDg5NDAsIDAsIHsweDI0LDB4YzgsMHgwYiwweDMwLDB4MDIsMHg0YywweDAwLDB4ODMsMHgxMCwweDA0LDB4YzgsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwIH19LAotIHsxNiwgMHg4OTUwLCAwLCB7MHhiMywweDAwLDB4MjQsMHg0MCwweDBiLDB4MzAsMHgwMiwweGUyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ODk2MCwgMCwgezB4YzAsMHgxNSwweGE2LDB4MDAsMHg4MSwweDAwLDB4MjIsMHgxMCwweDBiLDB4YjAsMHgxMiwweGVhLDB4MjAsMHhiYiwweDAwLDB4MmEgfX0sCi0gezE2LCAweDg5NzAsIDAsIHsweDcwLDB4MGEsMHg5YywweDAyLDB4NjIsMHgwMCwweDk4LDB4ODgsMHgyNiwweGM4LDB4MDIsMHhiMiwweDAyLDB4OGUsMHgwOCwweDhiIH19LAotIHsxNiwgMHg4OTgwLCAwLCB7MHgxOCwweDIyLDB4YzAsMHgwYiwweGEwLDB4MDIsMHhlZSwweDIwLDB4M2IsMHgwMCwweDI2LDB4NDAsMHgwYiwweGIwLDB4MDIsMHg3MCB9fSwKLSB7MTYsIDB4ODk5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlMCwweDAwLDB4Y2IsMHgwMCwweDMyLDB4ODAgfX0sCi0gezE2LCAweDg5YTAsIDAsIHsweDBmLDB4YjAsMHgwMywweGU3LDB4MDAsMHhiOCwweDUyLDB4M2UsMHgyMCwweDRiLDB4MGMsMHg0MywweGVmLDB4ODIsMHg5YiwweGMwIH19LAotIHsxNiwgMHg4OWIwLCAwLCB7MHgzMiwweGMwLDB4MGIsMHhiMCwweDAyLDB4NmMsMHgwMSwweDhiLDB4ODAsMHgyZSwweGMwLDB4MGIsMHhhMCwweDgzLDB4ZTYsMHgwMCB9fSwKLSB7MTYsIDB4ODljMCwgMCwgezB4ZmIsMHgwMCwweDM2LDB4NDAsMHgwZiwweGYwLDB4MDMsMHhkMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDg5ZDAsIDAsIHsweGUwLDB4MDEsMHhiMCwweDAyLDB4ZmYsMHgwNCwweDNmLDB4OTAsMHgwYywweGYxLDB4MDEsMHhmNCwweDA4LDB4N2QsMHg4MCwweDM3IH19LAotIHsxNiwgMHg4OWUwLCAwLCB7MHgwMCwweDBmLDB4YzAsMHgyMywweDk4LDB4MDAsMHhmNywweDAwLDB4MmIsMHhlMCwweDBmLDB4ZjgsMHgyMywweGZjLDB4MDYsMHhmYiB9fSwKLSB7MTYsIDB4ODlmMCwgMCwgezB4ODMsMHhiZiwweGMwLDB4ODcsMHhkMCwweDAzLDB4ZGMsMHgwMCwweGVmLDB4MDAsMHgzYiwweGMwLDB4MGYsMHhiMCwweDAxLDB4ZjggfX0sCi0gezE2LCAweDhhMDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTYsMHgwMCwweGNiLDB4MDAsMHgzMywweDgwIH19LAotIHsxNiwgMHg4YTEwLCAwLCB7MHgwZiwweGIwLDB4MDMsMHhlMSwweDEwLDB4ZjIsMHg0MCwweGIyLDB4MDAsMHgzZCwweDk0LDB4MTcsMHgyZCwweDQ0LDB4ZmEsMHg0MSB9fSwKLSB7MTYsIDB4OGEyMCwgMCwgezB4MzIsMHhjMCwweDlmLDB4YjAsMHgyMywweDJjLDB4MDIsMHhjYiwweDQwLDB4MzIsMHhjMCwweDRmLDB4OTAsMHgwMywweDNkLDB4MDAgfX0sCi0gezE2LCAweDhhMzAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YTQwLCAwLCB7MHg4OCwweDA1LDB4MjYsMHgwMCwweDhiLDB4NzEsMHgyMCwweGQ1LDB4MDMsMHg5OSwweDAyLDB4ZTAsMHgwMCwweGJiLDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4OGE1MCwgMCwgezB4NjAsMHgxYywweDgwLDB4MDMsMHg2MCwweDAwLDB4YjgsMHgwMiwweDIyLDB4YzIsMHgwYiwweDMyLDB4MDIsMHgyYywweDAxLDB4OGYgfX0sCi0gezE2LCAweDhhNjAsIDAsIHsweDAyLDB4ZDcsMHhjMCwweDBiLDB4YTAsMHgwMywweDZkLDB4NDAsMHg1MywweDgwLDB4MmUsMHhjMCwweDBlLDB4ZjAsMHg0MywweDcyIH19LAotIHsxNiwgMHg4YTcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDY4LDB4MDIsMHg4MCwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OGE4MCwgMCwgezB4MGIsMHgzNSwweDI2LDB4YzIsMHgwMCwweGIwLDB4OTAsMHgyMCwweGMwLDB4ODgsMHgwMCwweDAyLDB4NGYsMHgyMCwweGIzLDB4MDIgfX0sCi0gezE2LCAweDhhOTAsIDAsIHsweDYwLDB4ZTIsMHgxYiwweDM4LDB4MDIsMHgwYywweDAwLDB4ODgsMHgwMCwweDYwLDB4YzAsMHgwYiwweDM0LDB4ODIsMHg0YywweDAyIH19LAotIHsxNiwgMHg4YWEwLCAwLCB7MHhhMSwweDkwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDMwLDB4MDEsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGFiMCwgMCwgezB4MjAsMHgwMSwweDNhLDB4MDgsMHg4YywweGEwLDB4MmQsMHgyMCwweDRiLDB4NzgsMHgwMiwweGRhLDB4MDAsMHhiMiwweDkwLDB4MjEgfX0sCi0gezE2LCAweDhhYzAsIDAsIHsweDY2LDB4NDgsMHg3OSwweDAyLDB4ZGUsMHg0MCwweGI3LDB4OTEsMHhhMSwweGUwLDB4ZGIsMHhmOCwweDAyLDB4MWUsMHg0MCwweDg0IH19LAotIHsxNiwgMHg4YWQwLCAwLCB7MHg5MCwweDAxLDB4ZTAsMHg4YiwweGY5LDB4MDIsMHg1ZSwweDAxLDB4OTcsMHg4MCwweDJkLDB4NjAsMHgwYSwweDc4LDB4MDAsMHg0OCB9fSwKLSB7MTYsIDB4OGFlMCwgMCwgezB4MDQsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODAsMHgwMCwweDI0LDB4MDQgfX0sCi0gezE2LCAweDhhZjAsIDAsIHsweDBmLDB4MzIsMHgwMywweGM0LDB4YTAsMHhmMSwweDQyLDB4MzAsMHhjNCwweDJjLDB4MzEsMHgwMiwweDQ0LDB4MDAsMHhmMSwweDExIH19LAotIHsxNiwgMHg4YjAwLCAwLCB7MHhhMCwweGMwLDB4MGIsMHgzMCwweDBiLDB4MGMsMHg0MiwweDgzLDB4MDAsMHgwMCwweGMwLDB4MGYsMHgzMCwweDAzLDB4NGMsMHgwMiB9fSwKLSB7MTYsIDB4OGIxMCwgMCwgezB4ZTMsMHgwMCwweDNjLDB4NDAsMHgwYiwweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhiMjAsIDAsIHsweGMwLDB4MWQsMHhiYywweDAwLDB4ZmMsMHhhNSwweDMzLDB4YzAsMHgwZiwweGQwLDB4MDMsMHhmYywweDAxLDB4YmYsMHgwMCwweDNmIH19LAotIHsxNiwgMHg4YjMwLCAwLCB7MHhjNCwweDBlLDB4NzEsMHgwMywweDc0LDB4MDAsMHg3NSwweDEwLDB4M2YsMHhjMCwweDA1LDB4ZjAsMHgwMywweGRjLDB4NDAsMHhmZiB9fSwKLSB7MTYsIDB4OGI0MCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDdmLDB4MDAsMHgzZiwweDQwLDB4MGUsMHhmMCwweDAzLDB4ZDAgfX0sCi0gezE2LCAweDhiNTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA0LDB4ZTgsMHgwMCwweGYyLDB4MDQsMHhiMywweDgwIH19LAotIHsxNiwgMHg4YjYwLCAwLCB7MHgwZiwweGI4LDB4MGIsMHgyYywweDAwLDB4ZWIsMHg4MCwweDMyLDB4YzAsMHgwYywweDIwLDB4MTMsMHgyZSwweDA4LDB4Y2IsMHgwMSB9fSwKLSB7MTYsIDB4OGI3MCwgMCwgezB4MzIsMHhjNSwweDBmLDB4YjEsMHgwMywweGVjLDB4NDgsMHhjOCwweDEwLDB4MzIsMHhmYSwweDhjLDB4MzgsMHgwMywweDNjLDB4OTAgfX0sCi0gezE2LCAweDhiODAsIDAsIHsweGNiLDB4MDAsMHgzZSwweDQwLDB4MGYsMHhiMCwweDEzLDB4YzIsMHgwNCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4YjkwLCAwLCB7MHhjOCwweDEwLDB4OTgsMHgwMCwweGY2LDB4MDAsMHg2MSwweDgxLDB4MGIsMHhmMCwweDAyLDB4MWMsMHgwMCwweGQ3LDB4MDAsMHhiNyB9fSwKLSB7MTYsIDB4OGJhMCwgMCwgezB4ODAsMHgwYywweDcwLDB4MDIsMHhiYywweDEwLDB4OGYsMHgwMCwweDIxLDB4YzgsMHg4YiwweDcyLDB4NDMsMHhmYywweDg4LDB4ZGMgfX0sCi0gezE2LCAweDhiYjAsIDAsIHsweDAwLDB4MzcsMHhjOCwweDBkLDB4NTAsMHgwMiwweDFjLDB4MjIsMHg4NywweDAwLDB4MmQsMHhjMCwweDBiLDB4NzAsMHgwMiwweGQzIH19LAotIHsxNiwgMHg4YmMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweDllLDB4MDAsMHhiNiwweDgwLDB4YTksMHhhMCB9fSwKLSB7MTYsIDB4OGJkMCwgMCwgezB4NGIsMHg3YywweDAyLDB4NWUsMHgzMCwweGEzLDB4ODgsMHgyMSwweGYwLDB4MDgsMHg3OCwweDAyLDB4MTYsMHgwMCwweDg1LDB4ODAgfX0sCi0gezE2LCAweDhiZTAsIDAsIHsweDIxLDB4ZTAsMHgwYiwweDc4LDB4MDIsMHhkZSwweDAwLDB4ODcsMHg4MCwweGExLDB4ZTQsMHgwOCwweGQ4LDB4MDIsMHg0ZSwweDAwIH19LAotIHsxNiwgMHg4YmYwLCAwLCB7MHg5NywweDgwLDB4MmQsMHg3MCwweDBiLDB4NzgsMHgwMiwweGM4LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGMwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MDAsMHhiMiwweDAwLDB4MjgsMHhjMCwweDBiLDB4MTAsMHgwMiwweDRlLDB4OTAsMHg5MywweDAyLDB4MjIgfX0sCi0gezE2LCAweDhjMTAsIDAsIHsweGYwLDB4MDgsMHgzOCwweDQyLDB4OGMsMHg0MiwweDgzLDB4MDQsMHgyMiwweGU0LDB4NGIsMHgzOCwweDAyLDB4OGUsMHg0MCwweDgzIH19LAotIHsxNiwgMHg4YzIwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwOSwweDM4LDB4MjIsMHg0ZSwweDIxLDB4OTMsMHgwMCwweDJlLDB4ZTAsMHgwYiwweDMwLDB4MDIsMHhkYiB9fSwKLSB7MTYsIDB4OGMzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhOCwweDAxLDB4ZmEsMHgwMCwweDNiLDB4ODkgfX0sCi0gezE2LCAweDhjNDAsIDAsIHsweDBmLDB4YTAsMHgwMiwweDc4LDB4MDgsMHhhZSwweDQwLDB4MjMsMHg4MCwweDJjLDB4NmMsMHgwYiwweDNhLDB4MDAsMHg4ZSwweDhjIH19LAotIHsxNiwgMHg4YzUwLCAwLCB7MHhiMiwweDAwLDB4MGIsMHg4MCwweDgyLDB4ZTAsMHgwMiwweDhlLDB4MDAsMHgyMiwweDgwLDB4MGMsMHhlOCwweDAyLDB4N2IsMHg4MCB9fSwKLSB7MTYsIDB4OGM2MCwgMCwgezB4OWEsMHg4MCwweDNlLDB4ODAsMHgwZiwweGEwLDB4MDMsMHhmYSwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhjNzAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDA5LDB4ZWMsMHgwMCwweDM2LDB4MjEsMHgwYiwweDgwLDB4MTMsMHhhMSwweDAwLDB4ZjgsMHg2MCwweDNlIH19LAotIHsxNiwgMHg4YzgwLCAwLCB7MHgwMCwweDBmLDB4ODEsMHgwMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHg0MywweGUwLDB4MTAsMHhmOCB9fSwKLSB7MTYsIDB4OGM5MCwgMCwgezB4MDAsMHhiZSwweDAwLDB4MGYsMHg4NSwweDBiLDB4ODAsMHgwMCwweGU4LDB4MTAsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhjYTAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDIsMHgzMCwweDQ4IH19LAotIHsxNiwgMHg4Y2IwLCAwLCB7MHgwYywweDk5LDB4MTMsMHhhNCwweDAyLDB4YzksMHgwMCwweDNlLDB4NDIsMHgwYywweDkwLDB4OGYsMHgyNCwweDAwLDB4ZjksMHgwMCB9fSwKLSB7MTYsIDB4OGNjMCwgMCwgezB4MzIsMHgyOCwweDBjLDB4ODgsMHgwMywweGUwLDB4MDAsMHhjOSwweDAwLDB4YjIsMHg0MCwweDBmLDB4OTAsMHgwMywweGU3LDB4MDAgfX0sCi0gezE2LCAweDhjZDAsIDAsIHsweGM5LDB4MTAsMHgzZSwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4Y2UwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMSwweDg5LDB4ODAsMHhhMiwweDQ4LDB4MjgsMHg5MiwweDQyLDB4YzUsMHgwMCwweDg5LDB4NDAsMHgyZSB9fSwKLSB7MTYsIDB4OGNmMCwgMCwgezB4NDAsMHgyYywweDkwLDB4MDYsMHgyNSwweDAwLDB4YjksMHgwMCwweDIyLDB4NTAsMHgwOCwweDk4LDB4MDIsMHhjNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweDhkMDAsIDAsIHsweDAxLDB4NzYsMHg0MCwweDRiLDB4OTIsMHgwMiwweGU1LDB4MDIsMHg4OSwweDAwLDB4MmUsMHg0MCwweDBkLDB4OTAsMHgwMywweDYwIH19LAotIHsxNiwgMHg4ZDEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MGMsMHg4NSwweDIwLDB4YTIsMHg0MCB9fSwKLSB7MTYsIDB4OGQyMCwgMCwgezB4MDgsMHg5MCwweDA2LDB4ZTUsMHgwMCwweDg5LDB4NDAsMHgyZSwweDQwLDB4MDksMHg5MCwweDQyLDB4YTQsMHhhMCwweDMxLDB4MDAgfX0sCi0gezE2LCAweDhkMzAsIDAsIHsweDIyLDB4NTAsMHgxOCwweDkxLDB4MDIsMHhlNCwweDAwLDB4ODEsMHgwMCwweDIyLDB4NDAsMHgwYiwweDkwLDB4MDYsMHhlNCwweDAwIH19LAotIHsxNiwgMHg4ZDQwLCAwLCB7MHg4OSwweDAwLDB4MmUsMHg0MCwweDA5LDB4OTAsMHgwMiwweDBlLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGQ1MCwgMCwgezB4MDAsMHgwNCwweDE1LDB4MDAsMHg4NSwweDQwLDB4MjAsMHg0MCwweDA4LDB4MTQsMHgyNiwweGU0LDB4MDAsMHg4MSwweDAwLDB4MmMgfX0sCi0gezE2LCAweDhkNjAsIDAsIHsweDQwLDB4MTgsMHgxMCwweDAyLDB4ODQsMHg4MCwweGIxLDB4MjAsMHhhMCwweDUwLDB4MDgsMHgxNCwweDAyLDB4ZTUsMHgwMiwweDgxIH19LAotIHsxNiwgMHg4ZDcwLCAwLCB7MHg0MCwweDIwLDB4NDgsMHgwYiwweDEwLDB4MDYsMHhjYywweDAwLDB4ODEsMHgwMSwweDJjLDB4NTAsMHgwOSwweDE0LDB4MDIsMHg0YSB9fSwKLSB7MTYsIDB4OGQ4MCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4OGMsMHgwMCwweDMyLDB4MDAgfX0sCi0gezE2LCAweDhkOTAsIDAsIHsweDBjLDB4ODAsMHgyMywweGUwLDB4MDAsMHhjOCwweDAwLDB4M2UsMHgxNCwweDBkLDB4ODAsMHgxMiwweGExLDB4NDQsMHhmOCwweDUxIH19LAotIHsxNiwgMHg4ZGEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDAzLDB4ZTAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDE0LDB4MGYsMHg4MCwweDA3LDB4ZTAsMHgwMCB9fSwKLSB7MTYsIDB4OGRiMCwgMCwgezB4YzgsMHgwMCwweDNlLDB4MDAsMHgwZCwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhkYzAsIDAsIHsweDk4LDB4OWQsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNmLDB4NTAsMHgwZiwweGQwLDB4MDMsMHhkYywweDAxLDB4YmQsMHg0MiwweDNmIH19LAotIHsxNiwgMHg4ZGQwLCAwLCB7MHg1MCwweDRmLDB4ZDQsMHg0MywweDc0LDB4NDEsMHhmZCwweDEwLDB4M2YsMHgxMCwweDFmLDB4YzQsMHgxMywweGYxLDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4OGRlMCwgMCwgezB4NDAsMHg3ZSwweDQ0LDB4MGYsMHhkMCwweDQzLDB4ZjUsMHgwMSwweGZkLDB4MDAsMHgzZiwweDQwLDB4MGYsMHg5NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweDhkZjAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjQsMHgwMCwweGRmLDB4MDUsMHgzMywweDYxIH19LAotIHsxNiwgMHg4ZTAwLCAwLCB7MHgwZiwweDUwLDB4NTMsMHgzNCwweDEwLDB4ZmQsMHgwNCwweDMzLDB4NDQsMHg0ZiwweDUwLDB4MDMsMHg3NiwweGMxLDB4Y2QsMHhlMCB9fSwKLSB7MTYsIDB4OGUxMCwgMCwgezB4MzMsMHg2MCwweDBjLDB4Y2UsMHgwMywweGY2LDB4YzAsMHhlMSwweGMwLDB4YjYsMHg2NCwweDhmLDB4NTAsMHgwYiwweDM2LDB4ODIgfX0sCi0gezE2LCAweDhlMjAsIDAsIHsweGNkLDB4MDAsMHgzZSwweDQ0LDB4NGMsMHg5ZSwweGMzLDB4YzYsMHgwMSwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZTMwLCAwLCB7MHgzOCwweDEwLDB4ZWEsMHgyOCwweDgwLDB4YTAsMHhiMiwweDA0LDB4MGIsMHg4YSwweDgzLDB4NjAsMHgwMCwweGZhLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4OGU0MCwgMCwgezB4MjgsMHg4YiwweDgwLDB4MDMsMHhlMywweGM4LDB4YzgsMHg4NCwweDIyLDB4MTQsMHgwOCwweDhhLDB4MDIsMHhlMiwweDgwLDB4ZDggfX0sCi0gezE2LCAweDhlNTAsIDAsIHsweDgyLDB4MzQsMHgzNCwweDFiLDB4ODAsMHgwMywweDYwLDB4MDQsMHg4OCwweDAwLDB4MmUsMHgyMCwweDBhLDB4OGUsMHg0MiwweGNlIH19LAotIHsxNiwgMHg4ZTYwLCAwLCB7MHgwNiwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwNSwweGM0LDB4ODAsMHg4MSwweDA4LDB4MDQsMHg0MSB9fSwKLSB7MTYsIDB4OGU3MCwgMCwgezB4MGIsMHg5MiwweDAyLDB4MDQsMHgwMCwweGIxLDB4MDAsMHgyYywweDQwLDB4MGIsMHgxOCwweDAyLDB4MjQsMHgwMCwweGIxLDB4NjAgfX0sCi0gezE2LCAweDhlODAsIDAsIHsweDI2LDB4NDAsMHgwYSwweDE2LDB4MDIsMHhjNSwweDAwLDB4YTEsMHhjMCwweDIwLDB4NDgsMHgwYiwweDkwLDB4MDIsMHg0NywweDAwIH19LAotIHsxNiwgMHg4ZTkwLCAwLCB7MHg5MSwweDAxLDB4MmMsMHg0OCwweDE4LDB4MTIsMHgwMiwweGQyLDB4MDEsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGVhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MGMsMHg4YiwweDA0LDB4YTIsMHg1MCwweDBiLDB4OTEsMHgwMiwweDI0LDB4MDQsMHhhOSwweDAxLDB4MmUgfX0sCi0gezE2LCAweDhlYjAsIDAsIHsweDQyLDB4MGIsMHg5MCwweDAyLDB4YTQsMHgwMCwweGE5LDB4MDAsMHgyNiwweDYwLDB4MGEsMHg5MCwweDAyLDB4ZTYsMHgwMCwweDgxIH19LAotIHsxNiwgMHg4ZWMwLCAwLCB7MHgwMCwweDIyLDB4NDAsMHg4YiwweGIwLDB4MDIsMHgyNCwweDA4LDB4OTksMHgxMCwweDJlLDB4NDAsMHgxYSwweDkwLDB4MDIsMHhjNiB9fSwKLSB7MTYsIDB4OGVkMCwgMCwgezB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNSwweDAwLDB4YzksMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweDhlZTAsIDAsIHsweDBmLDB4MTAsMHgwMiwweDI1LDB4MDAsMHhiMSwweDAwLDB4MmUsMHg2MCwweDBmLDB4MTAsMHgxMiwweDI0LDB4MDIsMHhiOSwweGEwIH19LAotIHsxNiwgMHg4ZWYwLCAwLCB7MHhhNCwweDQwLDB4MmUsMHg5MSwweDAzLDB4ZTYsMHgwMCwweGE5LDB4MDAsMHgyMiwweDQwLDB4MGIsMHgxOSwweDgwLDB4NjQsMHgwNCB9fSwKLSB7MTYsIDB4OGYwMCwgMCwgezB4ZDksMHg4MSwweDJlLDB4NDAsMHg0YywweDkwLDB4MDMsMHhlOCwweDE0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDhmMTAsIDAsIHsweDY4LDB4MDEsMHhhNCwweDBhLDB4ZTksMHgwMCwweGJlLDB4NDgsMHgwZiwweDk4LDB4MGIsMHhlNCwweDAwLDB4ZjksMHhjNCwweDM2IH19LAotIHsxNiwgMHg4ZjIwLCAwLCB7MHg3MCwweDFmLDB4OTIsMHgwMywweGU2LDB4OTAsMHhjMSwweDkwLDB4M2EsMHg0MCwweDhkLDB4ODgsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OGYzMCwgMCwgezB4OTAsMHgzZSwweDQwLDB4MGIsMHg5OCwweDAzLDB4ZTYsMHg0MCwweGU5LDB4MDAsMHgzZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDhmNDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg2OCwweDEwLDB4YTEsMHgwMiwweGQ4LDB4MjAsMHhiMiwweDEwIH19LAotIHsxNiwgMHg4ZjUwLCAwLCB7MHgwYywweDgwLDB4ODMsMHgyMSwweDQwLDB4YzgsMHg1OCwweGIyLDB4MTAsMHg0YywweDgwLDB4MGIsMHgyMCwweDAwLDB4ZjgsMHg0MiB9fSwKLSB7MTYsIDB4OGY2MCwgMCwgezB4MzIsMHgwMCwweDBmLDB4ODAsMHgwMywweGUwLDB4MDIsMHhkOCwweDAwLDB4NzIsMHgwMCwweDFjLDB4ODAsMHgwMCwweDIwLDB4MDAgfX0sCi0gezE2LCAweDhmNzAsIDAsIHsweGY4LDB4MDQsMHgzZSwweDAwLDB4MGYsMHg4MCwweDAzLDB4MDIsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg4ZjgwLCAwLCB7MHgyOCwweDA1LDB4MzgsMHgwNCwweGNlLDB4NDEsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4MzksMHgxMCwweGFlLDB4NDAsMHgyMiB9fSwKLSB7MTYsIDB4OGY5MCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgxYSwweDAwLDB4YmEsMHgwMCwweDJiLDB4YWQsMHgwMywweDgwLDB4MDIsMHhlOCwweDAwLDB4Y2EgfX0sCi0gezE2LCAweDhmYTAsIDAsIHsweDAwLDB4MmEsMHg4MCwweDBhLDB4ZTAsMHgwMiwweDE4LDB4MDAsMHhiYSwweDAwLDB4MWEsMHg4MCwweDBiLDB4YTAsMHgwMywweDRhIH19LAotIHsxNiwgMHg4ZmIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NjgsMHgwNSwweDZjLDB4MTIsMHg4OSwweDAwLDB4YTAsMHhlMCB9fSwKLSB7MTYsIDB4OGZjMCwgMCwgezB4MDgsMHgzOCwweDAyLDB4MGQsMHg4OCwweDgzLDB4MDAsMHgwNCwweGUwLDB4MDgsMHgzOCwweDMyLDB4MGUsMHgyNSwweDMxLDB4MDEgfX0sCi0gezE2LCAweDhmZDAsIDAsIHsweDI0LDB4ZTAsMHg4YiwweDM4LDB4MDIsMHhlNCwweDAxLDB4ODMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHg4YywweDAwIH19LAotIHsxNiwgMHg4ZmUwLCAwLCB7MHhiMywweDAwLDB4MmUsMHhjMCwweDBiLDB4MzAsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OGZmMCwgMCwgezB4YTAsMHgwMSwweDE0LDB4MjAsMHg4NiwweDIwLDB4MjksMHhiMCwweDA4LDB4ZjAsMHg4MiwweDNlLDB4MDQsMHhhNywweDAwLDB4MjEgfX0sCi0gezE2LCAweDkwMDAsIDAsIHsweDcwLDB4ODgsMHg3MCwweDkyLDB4MWMsMHgyMCwweGJkLDB4MDAsMHg2OSwweGMwLDB4MGIsMHg3NiwweDAyLDB4ZDQsMHg4MCwweDhmIH19LAotIHsxNiwgMHg5MDEwLCAwLCB7MHgyMSwweDI5LDB4ZTAsMHgwYSwweDYwLDB4ODYsMHg5OCwweDAxLDB4YjcsMHgwMCwweDJkLDB4YzgsMHgwYiwweDNiLDB4MDIsMHg2MCB9fSwKLSB7MTYsIDB4OTAyMCwgMCwgezB4MDQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzZSwweDAwLDB4YzcsMHhhMCwweGIwLDB4ZTAgfX0sCi0gezE2LCAweDkwMzAsIDAsIHsweDJjLDB4NzgsMHgwYiwweDFhLDB4MDAsMHhjMywweDgwLDB4MzcsMHhlMCwweDI4LDB4NzgsMHgwMywweDFhLDB4MDgsMHhmNSwweDkwIH19LAotIHsxNiwgMHg5MDQwLCAwLCB7MHgzNSwweGUwLDB4MGYsMHg3YywweDEyLDB4ZDYsMHg4MiwweGM3LDB4OTAsMHgyMSwweGU0LDB4MDgsMHg3OCwweDAzLDB4OWUsMHgwMCB9fSwKLSB7MTYsIDB4OTA1MCwgMCwgezB4ZjUsMHg4MCwweDNkLDB4ZjEsMHgwZiwweDc4LDB4MDMsMHgyMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkwNjAsIDAsIHsweDA4LDB4MTksMHhhNCwweDAwLDB4ZWUsMHg4MCwweDM2LDB4YzEsMHg0ZiwweGQwLDB4MDMsMHhjOCwweDAwLDB4ZmIsMHgwMCwweDNlIH19LAotIHsxNiwgMHg5MDcwLCAwLCB7MHg1MSwweDBmLDB4YjAsMHgwMywweGU0LDB4MDgsMHhmMSwweDYwLDB4M2UsMHhjMCwweDBmLDB4YjAsMHgwMywweGM1LDB4MDAsMHhlYiB9fSwKLSB7MTYsIDB4OTA4MCwgMCwgezB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDA5LDB4NmMsMHgwMCwweGZiLDB4MDAsMHgzYSwweGMwLDB4MGYsMHhiMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDkwOTAsIDAsIHsweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4ZmUsMHgwMCwweGZkLDB4ODgsMHgzMywweDYwIH19LAotIHsxNiwgMHg5MGEwLCAwLCB7MHgwZiwweGY5LDB4MDMsMHhjZSwweDQwLDB4ZDcsMHg4NCwweDM3LDB4NzAsMHgwYywweGQ4LDB4MjMsMHgzNiwweDAwLDB4YzUsMHg4OCB9fSwKLSB7MTYsIDB4OTBiMCwgMCwgezB4MzMsMHhlMCwweDRmLDB4ZjgsMHgxMywweGY3LDB4MjgsMHhkZiwweDgwLDB4MzcsMHhlMiwweDBjLDB4NTgsMHgwMywweDNlLDB4MDAgfX0sCi0gezE2LCAweDkwYzAsIDAsIHsweGZmLDB4OTAsMHgzZiwweGUwLDB4MGMsMHhmOCwweDAzLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MGQwLCAwLCB7MHhhOSwweDExLDB4OWMsMHgwOCwweGY2LDB4MDAsMHhhMSwweDAwLDB4MGIsMHg2MywweDAyLDB4ZDYsMHgzMCwweDg1LDB4NDEsMHgzMSB9fSwKLSB7MTYsIDB4OTBlMCwgMCwgezB4YzgsMHgwOCwweDUwLDB4MjMsMHgxYywweDAwLDB4ZDUsMHgyMCwweGIxLDB4ODAsMHgwZiwweDcwLDB4MDMsMHhiNCwweDAwLDB4YzcgfX0sCi0gezE2LCAweDkwZjAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDBmLDB4NDAsMHhhMywweDU4LDB4NDAsMHhiNywweDAwLDB4M2YsMHhjNCwweDBhLDB4ZjAsMHgwMiwweDJhIH19LAotIHsxNiwgMHg5MTAwLCAwLCB7MHgwNiwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDljLDB4NDAsMHhiNywweDEwLDB4MjEsMHhkMiB9fSwKLSB7MTYsIDB4OTExMCwgMCwgezB4MGIsMHg3MCwweDAyLDB4ZGMsMHg0MiwweDg2LDB4MDAsMHgyNSwweDYxLDB4MDgsMHg1MSwweDAyLDB4NTAsMHgwMCwweDk1LDB4MDAgfX0sCi0gezE2LCAweDkxMjAsIDAsIHsweDI1LDB4YzAsMHgwOSwweDcwLDB4ODIsMHhkNCwweDAwLDB4ODcsMHgwMCwweDI0LDB4YzAsMHgwOCwweDUwLDB4MDIsMHg1YywweDAwIH19LAotIHsxNiwgMHg5MTMwLCAwLCB7MHg5NSwweDA0LDB4MmQsMHhjMCwweDA4LDB4NzAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTE0MCwgMCwgezB4MjAsMHgxNCwweGNjLDB4MDgsMHhiMiwweGQwLDB4MjAsMHhlMCwweDRiLDB4MDgsMHgwMiwweGM0LDB4MDAsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweDkxNTAsIDAsIHsweGYwLDB4MDgsMHgxYSwweDAyLDB4ODUsMHg0OCwweDgxLDB4MTAsMHgyMCwweDQwLDB4MGEsMHgzMCwweDAyLDB4YzYsMHgxMCwweDkzIH19LAotIHsxNiwgMHg5MTYwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYSwweDFjLDB4MDIsMHgwZCwweDQwLDB4YjMsMHgwMCwweDY4LDB4YzQsMHgwYSwweGIwLDB4MDIsMHgwOSB9fSwKLSB7MTYsIDB4OTE3MCwgMCwgezB4MDAsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAxLDB4ZmUsMHgwMCwweDMyLDB4ZjAgfX0sCi0gezE2LCAweDkxODAsIDAsIHsweDBmLDB4ODgsMHgwMywweGU2LDB4MDAsMHhjOCwweGM4LDB4MzYsMHhmNiwweDI4LDB4YTYsMHgwYSwweDZkLDB4MDAsMHg5ZCwweDAwIH19LAotIHsxNiwgMHg5MTkwLCAwLCB7MHgzMiwweDAwLDB4MGIsMHhiMCwweDAzLDB4ZjYsMHgwMywweGM3LDB4MDAsMHgzNywweGMwLDB4MDgsMHg5YywweDBhLDB4NmUsMHgwMCB9fSwKLSB7MTYsIDB4OTFhMCwgMCwgezB4YmIsMHgwMCwweDJmLDB4YzAsMHgwYywweGYwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkxYjAsIDAsIHsweDgwLDB4MDAsMHhlNCwweDAxLDB4ZWIsMHg0MCwweDNlLDB4ODAsMHg0ZiwweGMxLDB4MDMsMHhlNCwweDAwLDB4YjgsMHgwOCwweDNhIH19LAotIHsxNiwgMHg5MWMwLCAwLCB7MHg0MCwweDhmLDB4YTQsMHgxMywweDZjLDB4MjAsMHhmOSwweDAwLDB4M2UsMHg3MCwweDBmLDB4YjAsMHgwMywweGE0LDB4NDAsMHhlYiB9fSwKLSB7MTYsIDB4OTFkMCwgMCwgezB4MDAsMHgzZSwweGMwLDB4MGYsMHg5MiwweDIzLDB4ZTgsMHgwMCwweGY5LDB4ODAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDYzLDB4ZTAgfX0sCi0gezE2LCAweDkxZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwOCwweGNlLDB4MDgsMHgzMywweGMwIH19LAotIHsxNiwgMHg5MWYwLCAwLCB7MHgwZiwweGRhLDB4MDMsMHgzMCwweDAwLDB4ZTQsMHgwNCwweDM1LDB4YzAsMHgwZCwweGEwLDB4MDMsMHgyOCwweDAwLDB4YzUsMHgwMCB9fSwKLSB7MTYsIDB4OTIwMCwgMCwgezB4MzMsMHgwMCwweDBiLDB4ZmEsMHgwMywweGY0LDB4MDMsMHhjYiwweDAwLDB4MzEsMHhjMCwweDBjLDB4ZDQsMHgwMywweDE0LDB4MjAgfX0sCi0gezE2LCAweDkyMTAsIDAsIHsweGNkLDB4ODAsMHgyMywweGMxLDB4MGMsMHhmMCwweDAyLDB4MDgsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MjIwLCAwLCB7MHg4MSwweDA0LDB4NDQsMHgxMCwweGNiLDB4ZDAsMHgyMiwweGMwLDB4MGIsMHg5NCwweDAyLDB4MjIsMHg4NCwweGI4LDB4YzYsMHgwMiB9fSwKLSB7MTYsIDB4OTIzMCwgMCwgezB4NDAsMHgwOCwweDI4LDB4MDIsMHhhNSwweDgwLDB4ODksMHgwMCwweDIyLDB4NjAsMHgwYiwweGI4LDB4MDIsMHg2NCwweDAwLDB4OGIgfX0sCi0gezE2LCAweDkyNDAsIDAsIHsweDAwLDB4MmEsMHhjMCwweGM4LDB4MDAsMHgwMywweDY2LDB4MDAsMHg4MSwweDAwLDB4MDAsMHhjMCwweDBkLDB4YjAsMHgwYSwweGE4IH19LAotIHsxNiwgMHg5MjUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJjLDB4MDAsMHgxMywweDAwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4OTI2MCwgMCwgezB4OGIsMHgyNCwweDAyLDB4MmEsMHgwMCwweGJiLDB4ODIsMHgyMiwweDQwLDB4MDAsMHhhYywweDAyLDB4ODQsMHgwMCwweDg5LDB4MDAgfX0sCi0gezE2LCAweDkyNzAsIDAsIHsweDIyLDB4MjIsMHgwYiwweGIwLDB4MDIsMHhjNCwweDAwLDB4OWIsMHgwMCwweDJhLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyZSwweDAwIH19LAotIHsxNiwgMHg5MjgwLCAwLCB7MHg4YiwweDEwLDB4MmEsMHhjMCwweDA4LDB4YjAsMHgwMiwweGEwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTI5MCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MTAsMHg4MywweDAwLDB4MjAsMHgwMSwweDBiLDB4MjAsMHgwMiwweDAwLDB4ODAsMHhiMSwweDAwLDB4MjAgfX0sCi0gezE2LCAweDkyYTAsIDAsIHsweGMxLDB4MDgsMHgyMCwweDAyLDB4ODgsMHgwMSwweDgxLDB4MDAsMHhhMCwweDAwLDB4MGIsMHgzMCwweDAyLDB4NDQsMHgwMSwweDliIH19LAotIHsxNiwgMHg5MmIwLCAwLCB7MHgwMCwweDI4LDB4YzAsMHgwOCwweGIwLDB4MDIsMHg0OCwweDA2LDB4ODksMHgwMCwweDJhLDB4YzAsMHgwOSwweDMwLDB4MDIsMHg4MiB9fSwKLSB7MTYsIDB4OTJjMCwgMCwgezB4MDUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4OGQsMHg2YywweDAwLDB4YzMsMHgwMCwweGIyLDB4YzAgfX0sCi0gezE2LCAweDkyZDAsIDAsIHsweDBmLDB4YjAsMHgwMywweDI4LDB4MjAsMHhmYSwweDAwLDB4YjEsMHg0MCwweDBkLDB4YTAsMHgwNywweGEwLDB4MDAsMHhjZCwweDAwIH19LAotIHsxNiwgMHg5MmUwLCAwLCB7MHgyMiwweDAwLDB4MGYsMHhiMCwweDAzLDB4ZjQsMHgwMCwweDlmLDB4MDAsMHgzYiwweGMwLDB4MmMsMHhiMCwweDBiLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4OTJmMCwgMCwgezB4YzksMHgwMCwweGJhLDB4YzAsMHgwYywweGIwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDkzMDAsIDAsIHsweGEwLDB4MWQsMHhmYywweDA2LDB4ZmYsMHgwMiwweGFmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhmMCwweDEwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5MzEwLCAwLCB7MHhjMCwweDlmLDB4ZTAsMHgxMywweGYwLDB4MDAsMHhmZCwweDA0LDB4M2YsMHg0MCwweDRmLDB4ZjAsMHgwMywweDc0LDB4MDAsMHhlZiB9fSwKLSB7MTYsIDB4OTMyMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4OGYsMHhlMCwweDAyLDB4YjQsMHgwMSwweGZkLDB4MDQsMHgzNywweGMwLDB4MGYsMHhmMCwweDQzLDB4NjggfX0sCi0gezE2LCAweDkzMzAsIDAsIHsweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHgwMCwweGM3LDB4MjAsMHhiMywweGM4IH19LAotIHsxNiwgMHg5MzQwLCAwLCB7MHgxYywweGYxLDB4MDMsMHg3YywweDIwLDB4Y2YsMHgwYSwweDNmLDB4ZDAsMHgwZCwweGYwLDB4MDMsMHg3YywweDgwLDB4OGYsMHgzMiB9fSwKLSB7MTYsIDB4OTM1MCwgMCwgezB4MzMsMHhjNCwweDBmLDB4ZjEsMHg4MywweDNjLDB4ZTAsMHhjZiwweDEwLDB4MzMsMHhjNCwweDBkLDB4ZjIsMHg4MywweDNjLDB4ZTIgfX0sCi0gezE2LCAweDkzNjAsIDAsIHsweGM3LDB4ODAsMHgxNywweGNjLDB4NGMsMHhmMywweDgzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5MzcwLCAwLCB7MHg4MCwweDEwLDB4ZTMsMHg0MCwweDg4LDB4NjgsMHgyMiwweDMwLDB4MDgsMHgwNiwweDAyLDB4MDEsMHhhMSwweDg4LDB4YzQsMHgwZSB9fSwKLSB7MTYsIDB4OTM4MCwgMCwgezB4MTQsMHgwOCwweDg3LDB4ODAsMHgwMSwweGMwLDB4MjgsMHg1MCwweDAyLDB4MDQsMHg4YiwweDg2LDB4MDIsMHhhMSwweDk4LDB4ODggfX0sCi0gezE2LCAweDkzOTAsIDAsIHsweDQxLDB4MmEsMHgwNCwweDBhLDB4ODQsMHg4MiwweGJkLDB4ODAsMHg4YiwweDA4LDB4MmIsMHhjNCwweDg4LDB4ZjQsMHgwMywweDYwIH19LAotIHsxNiwgMHg5M2EwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNjLDB4MDgsMHg4MiwweDQwLDB4MjAsMHgxMCB9fSwKLSB7MTYsIDB4OTNiMCwgMCwgezB4MDgsMHgyMSwweDEyLDB4NDQsMHgwNCwweDgyLDB4MDQsMHgyYywweDA4LDB4ODksMHg5MCwweDAyLDB4NDQsMHgyMSwweDhiLDB4MDAgfX0sCi0gezE2LCAweDkzYzAsIDAsIHsweDI0LDB4ODgsMHg4YiwweGEwLDB4MDAsMHg0MCwweDg0LDB4ODksMHgzMCwweDIyLDB4NDgsMHg4OCwweGIwLDB4MDIsMHhjYywweDA4IH19LAotIHsxNiwgMHg5M2QwLCAwLCB7MHg4OCwweDIwLDB4YTQsMHhjOCwweDAwLDB4MzIsMHgwYSwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTNlMCwgMCwgezB4YzAsMHgxNSwweGEwLDB4MDAsMHg4OSwweDAwLDB4MjIsMHhjMSwweDg4LDB4OTAsMHg2MiwweDI4LDB4MDgsMHg4OSwweDA4LDB4MmUgfX0sCi0gezE2LCAweDkzZjAsIDAsIHsweGMwLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwOCwweGE4LDB4MDAsMHgyNiwweDQyLDB4MGIsMHg5MCwweDAyLDB4Y2MsMHg1MCwweDhhIH19LAotIHsxNiwgMHg5NDAwLCAwLCB7MHgyMiwweDJhLDB4ODYsMHgwYSwweDgwLDB4MDIsMHhlYywweDAwLDB4ODgsMHg4NCwweDJhLDB4YzEsMHgwOCwweGIwLDB4MjYsMHgzMCB9fSwKLSB7MTYsIDB4OTQxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhmMCwweDAyLDB4Y2YsMHgwMCwweDMzLDB4YzAgfX0sCi0gezE2LCAweDk0MjAsIDAsIHsweDQ4LDB4ZjgsMHg0MywweDc5LDB4MDAsMHg4ZCwweGMwLDB4M2YsMHgzMCwweDhkLDB4NjAsMHg4MywweDc4LDB4NjAsMHhjNCwweDU4IH19LAotIHsxNiwgMHg5NDMwLCAwLCB7MHgzNywweDIwLDB4MGYsMHg1OCwweDEzLDB4N2IsMHgwMiwweGNjLDB4YzQsMHgzMSwweDIwLDB4MGMsMHg0NCwweDAzLDB4ZWMsMHgwMiB9fSwKLSB7MTYsIDB4OTQ0MCwgMCwgezB4OGIsMHg4MCwweDM2LDB4YzAsMHgyNCwweGIwLDB4MTIsMHgxMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk0NTAsIDAsIHsweGUwLDB4MDEsMHg5YywweDAwLDB4ZjQsMHgxMCwweDNkLDB4MDAsMHg2ZiwweGM5LDB4MTMsMHhkNCwweDEyLDB4ZmUsMHg5MCwweDNmIH19LAotIHsxNiwgMHg5NDYwLCAwLCB7MHhmMCwweDBmLDB4ZGEsMHgyMywweGY0LDB4MTQsMHhmZiwweDAyLDB4M2IsMHhmMCwweDBmLDB4ZWEsMHgyMywweGI2LDB4MDAsMHhmZiB9fSwKLSB7MTYsIDB4OTQ3MCwgMCwgezB4ODIsMHgzZiwweGUxLDB4OGYsMHhmNCwweDAzLDB4YmMsMHgwMCwweGZmLDB4MDAsMHgzZiwweGMwLDB4YWYsMHg3MCwweDAzLDB4ZjggfX0sCi0gezE2LCAweDk0ODAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTAsMHgwMCwweGNhLDB4MDAsMHgzMiwweDA4IH19LAotIHsxNiwgMHg5NDkwLCAwLCB7MHgxYywweGEwLDB4MDMsMHhhNSwweDIwLDB4Y2IsMHg0MCwweGJhLDB4MTAsMHgxZiwweGIwLDB4MDMsMHhhYywweDAwLDB4ZWIsMHgwMCB9fSwKLSB7MTYsIDB4OTRhMCwgMCwgezB4NzIsMHg5MCwweDBjLDB4YjQsMHgwMywweDI5LDB4MDQsMHhjOSwweDUyLDB4MzIsMHg1MCwweDBjLDB4YjQsMHgwMywweDBjLDB4MDAgfX0sCi0gezE2LCAweDk0YjAsIDAsIHsweGY4LDB4NDAsMHgzMiwweGMxLDB4MGUsMHhiMCwweDBiLDB4NTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NGMwLCAwLCB7MHhjOCwweDA1LDB4MmQsMHg4MCwweDg5LDB4ODAsMHgyMiwweGQ5LDB4MDgsMHg5MCwweDIyLDB4MmEsMHgwMCwweDg4LDB4NTQsMHgyMiB9fSwKLSB7MTYsIDB4OTRkMCwgMCwgezB4YzAsMHg4YiwweDgwLDB4MjIsMHgyMCwweDE5LDB4YzgsMHgwMCwweDIyLDB4NDAsMHg4ZCwweDgwLDB4MWEsMHgyNCwweDEwLDB4ZDIgfX0sCi0gezE2LCAweDk0ZTAsIDAsIHsweDQ0LDB4MjIsMHg4MSwweDBkLDB4ODAsMHgwMywweDdjLDB4MDAsMHhiMCwweDAwLDB4MzcsMHhjMCwweDg4LDB4ZjAsMHgwMiwweDMyIH19LAotIHsxNiwgMHg5NGYwLCAwLCB7MHgxMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDRlLDB4MDAsMHg4MSwweDAwLDB4YTAsMHhmMCB9fSwKLSB7MTYsIDB4OTUwMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4ODksMHgwMiwweDgwLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgwMCwweDIyLDB4YTAsMHgwMCwweGIwLDB4MDAgfX0sCi0gezE2LCAweDk1MTAsIDAsIHsweDIwLDB4NDAsMHgwOCwweDAwLDB4MDIsMHgwNCwweDAwLDB4ODIsMHg2MCwweDIwLDB4ODAsMHgwOCwweDAwLDB4MDIsMHgwYywweDA4IH19LAotIHsxNiwgMHg5NTIwLCAwLCB7MHhiMiwweDAwLDB4MjIsMHhjMCwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTUzMCwgMCwgezB4MjAsMHgwMSwweDAzLDB4MTAsMHg4ZSwweDkwLDB4MjMsMHgyNCwweDA4LDB4NmIsMHgwMiwweDE2LDB4NjAsMHg4ZiwweDgwLDB4MjEgfX0sCi0gezE2LCAweDk1NDAsIDAsIHsweDI4LDB4MGIsMHhmOSwweDA2LDB4MWUsMHg0MCwweDhmLDB4ODAsMHgyMywweGE0LDB4NDksMHg3OSwweDAyLDB4M2EsMHg0MCwweDlkIH19LAotIHsxNiwgMHg5NTUwLCAwLCB7MHg5MCwweDIzLDB4NjQsMHgwOSwweGY4LDB4MDIsMHg1ZSwweDQwLDB4YmUsMHg5MCwweDI0LDB4ZTQsMHgyOCwweDc5LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OTU2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDQyLDB4YzAsMHgwOSwweDMwLDB4MDAgfX0sCi0gezE2LCAweDk1NzAsIDAsIHsweDI4LDB4MDIsMHgwMywweDg0LDB4MDAsMHg4YSwweDIwLDB4MzAsMHhjNCwweDhiLDB4MTEsMHgwMywweDg0LDB4NTAsMHhiMywweDAwIH19LAotIHsxNiwgMHg5NTgwLCAwLCB7MHgyMCwweGMwLDB4MGMsMHhhNCwweDIyLDB4MDQsMHgwMCwweGNiLDB4NDAsMHgzMCwweGM1LDB4MGMsMHgzMCwweDAzLDB4MGUsMHg0MCB9fSwKLSB7MTYsIDB4OTU5MCwgMCwgezB4ZjMsMHgxMCwweDMwLDB4YzQsMHgwYywweGIwLDB4MDMsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk1YTAsIDAsIHsweDQwLDB4MWQsMHhiMCwweDA0LDB4ZmIsMHgwNCwweDNkLDB4YzAsMHgwZiwweGYyLDB4NDMsMHhmOCwweDA0LDB4ZmQsMHgwMSwweDNmIH19LAotIHsxNiwgMHg5NWIwLCAwLCB7MHgwYywweDBmLDB4NjEsMHgwMywweGY4LDB4NDgsMHhmNCwweDAwLDB4M2QsMHgwMSwweDBmLDB4ZDAsMHgwMywweGM4LDB4MDAsMHhmYyB9fSwKLSB7MTYsIDB4OTVjMCwgMCwgezB4MDQsMHhiZCwweDA0LDB4MGIsMHg0OCwweDAzLDB4ZmMsMHgxOCwweGZmLDB4MTQsMHgzZiwweGQ1LDB4MGQsMHhmMCwweDAzLDB4OTAgfX0sCi0gezE2LCAweDk1ZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZTAsMHgwMCwweGY5LDB4MDEsMHgzMiwweGMwIH19LAotIHsxNiwgMHg5NWUwLCAwLCB7MHg4ZSwweDkwLDB4MDMsMHgyOCwweDAyLDB4ZDEsMHgwMCwweDMyLDB4YzAsMHgwZCwweGE4LDB4MGIsMHgwOCwweDAwLDB4ZTgsMHgwMCB9fSwKLSB7MTYsIDB4OTVmMCwgMCwgezB4MmUsMHg0MCwweDBjLDB4OTgsMHgwYiwweDJlLDB4MDIsMHhjYSwweDAwLDB4YjIsMHhhMCwweDZjLDB4ODAsMHgyMywweDJkLDB4ODAgfX0sCi0gezE2LCAweDk2MDAsIDAsIHsweGNhLDB4ODAsMHgzMiwweGQwLDB4MGMsMHhiYSwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NjEwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweGI2LDB4MDAsMHhhMywweDAwLDB4MDgsMHg2MCwweDAyLDB4MDQsMHgwMCwweDg2LDB4MDQsMHgyOSB9fSwKLSB7MTYsIDB4OTYyMCwgMCwgezB4MDAsMHgwOCwweDUwLDB4NDIsMHgxNCwweDA0LDB4YTcsMHgwMCwweDBkLDB4ODAsMHg0YSwweDYwLDB4MDIsMHgwMCwweDAwLDB4ODEgfX0sCi0gezE2LCAweDk2MzAsIDAsIHsweDAwLDB4MjEsMHg0MCwweDA4LDB4NzAsMHgwMiwweDlkLDB4NDIsMHg4NiwweDAxLDB4MjAsMHhjMCwweDA4LDB4MzIsMHg4MiwweDEyIH19LAotIHsxNiwgMHg5NjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDkyLDB4MDAsMHhiYywweDgwLDB4NjMsMHgyMCB9fSwKLSB7MTYsIDB4OTY1MCwgMCwgezB4ODIsMHgwOCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzIsMHgyMywweDIwLDB4ODgsMHgwYywweDAyLDB4MzMsMHgwMCwweDg0LDB4ODAgfX0sCi0gezE2LCAweDk2NjAsIDAsIHsweDJmLDB4MjEsMHg4OSwweDRjLDB4MDIsMHgxMiwweDE0LDB4OTQsMHhjNSwweDY0LDB4MjEsMHgwOCwweDRjLDB4MDIsMHgwZSwweDgwIH19LAotIHsxNiwgMHg5NjcwLCAwLCB7MHg5NywweDgyLDB4YTEsMHhlYywweDA4LDB4NzksMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTY4MCwgMCwgezB4NDgsMHgxNCwweGNkLDB4NDQsMHhiMywweDAwLDB4MjAsMHhjMCwweDA4LDB4MzAsMHgwMiwweDRkLDB4ODAsMHgwMywweDg4LDB4MjggfX0sCi0gezE2LCAweDk2OTAsIDAsIHsweGMwLDB4MDgsMHgzYywweDA2LDB4MGYsMHgwMCwweGEzLDB4NDMsMHgyYywweGMyLDB4MWIsMHgzOCwweDAyLDB4MGYsMHgwMCwweDliIH19LAotIHsxNiwgMHg5NmEwLCAwLCB7MHg4OCwweDY0LDB4ZDAsMHgwOCwweGI4LDB4MDIsMHg4YywweDEwLDB4OTMsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MGEsMHgxMiB9fSwKLSB7MTYsIDB4OTZiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhhYSwweDAwLDB4ZmEsMHgwNSwweDMyLDB4ODAgfX0sCi0gezE2LCAweDk2YzAsIDAsIHsweDhlLDB4YTAsMHgwYiwweDY5LDB4MDAsMHhjYSwweDQwLDB4MzIsMHhhMCwweDNjLDB4YTgsMHgwMywweDJhLDB4MDAsMHhlYSwweDI2IH19LAotIHsxNiwgMHg5NmQwLCAwLCB7MHgzZSwweGIwLDB4MGQsMHhhMSwweDYzLDB4MjgsMHgyMCwweGNhLDB4NDAsMHgzNiwweGEwLDB4MGMsMHhlMCwweDEzLDB4MjgsMHgwOSB9fSwKLSB7MTYsIDB4OTZlMCwgMCwgezB4ZGUsMHgwMCwweDMyLDB4ODAsMHgyYywweGEwLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk2ZjAsIDAsIHsweDQ4LDB4MDAsMHhmMCwweDIwLDB4ZjQsMHgwMCwweDNmLDB4MDAsMHgwZiwweDQwLDB4MjMsMHhiMCwweDAwLDB4ZWMsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5NzAwLCAwLCB7MHgwNiwweDFlLDB4YzIsMHgxMywweGYwLDB4ODgsMHhmYywweDIwLDB4M2YsMHgwNCwweDhlLDB4YzAsMHgwMywweGYwLDB4ODAsMHhlYyB9fSwKLSB7MTYsIDB4OTcxMCwgMCwgezB4NDAsMHgzYiwweDBjLDB4MGYsMHhjMCwweGEzLDB4ZTAsMHgwMCwweGU4LDB4MDAsMHgzZSwweDAwLDB4NGYsMHg4MCwweDAzLDB4ZDIgfX0sCi0gezE2LCAweDk3MjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgzMiwweDQwIH19LAotIHsxNiwgMHg5NzMwLCAwLCB7MHgwYywweDkwLDB4MDMsMHgyNCwweDAwLDB4YzksMHg4MCwweDMyLDB4NDAsMHgwZiwweDkwLDB4NTMsMHhlNCwweDEwLDB4YzksMHgwMCB9fSwKLSB7MTYsIDB4OTc0MCwgMCwgezB4MzIsMHg0MCwweDBkLDB4OTAsMHgwMywweGU0LDB4MDAsMHhmOSwweDAwLDB4MzYsMHg0MCwweDhmLDB4OTAsMHgwMywweDI0LDB4MTAgfX0sCi0gezE2LCAweDk3NTAsIDAsIHsweGM5LDB4MDEsMHgzYywweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5NzYwLCAwLCB7MHg4MCwweDA0LDB4NDcsMHg0NCwweDg5LDB4MDAsMHgyMCwweDQwLDB4MDgsMHg5MCwweDAyLDB4MjUsMHgwYSwweDgxLDB4MTAsMHgyMiB9fSwKLSB7MTYsIDB4OTc3MCwgMCwgezB4NDAsMHg0OCwweDkwLDB4MDMsMHhjNCwweDAwLDB4ODksMHgwMCwweDc2LDB4NDAsMHgyOCwweDkwLDB4MDIsMHhlNCwweDEwLDB4YjkgfX0sCi0gezE2LCAweDk3ODAsIDAsIHsweDQwLDB4YjIsMHg0MCwweDBiLDB4OTAsMHgwMywweDY0LDB4MDAsMHg4OSwweDAwLDB4MmUsMHg0MSwweDA4LDB4OTAsMHg0MiwweGUwIH19LAotIHsxNiwgMHg5NzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI0LDB4MDIsMHhiZCwweDAwLDB4MjMsMHg0OCB9fSwKLSB7MTYsIDB4OTdhMCwgMCwgezB4MDgsMHhkMCwweDA2LDB4MWQsMHgwNCwweDhkLDB4MDAsMHgyOSwweGMwLDB4NGEsMHhkMCwweDIyLDB4ZjQsMHgwMCwweDg1LDB4MDAgfX0sCi0gezE2LCAweDk3YjAsIDAsIHsweDYxLDB4NDAsMHgxOCwweGQwLDB4MTIsMHhmYywweDAwLDB4YmQsMHg0MCwweGEzLDB4NDAsMHg0YiwweGYwLDB4MDIsMHgwNCwweDAxIH19LAotIHsxNiwgMHg5N2MwLCAwLCB7MHg4YiwweDAwLDB4MmUsMHg0MCwweDA4LDB4OTAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTdkMCwgMCwgezB4MDgsMHgwNCwweDM2LDB4ODAsMHg4NSwweDIwLDB4YTMsMHg0OCwweDA4LDB4NTIsMHgwYSwweDE0LDB4ODEsMHg4NSwweDIwLDB4MjkgfX0sCi0gezE2LCAweDk3ZTAsIDAsIHsweDQ4LDB4MDgsMHg1MiwweDAyLDB4YjQsMHg4MCwweDg1LDB4MjAsMHgyNSwweDQ4LDB4ODgsMHg1MiwweDAyLDB4ZDQsMHg4MCwweGI1IH19LAotIHsxNiwgMHg5N2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwYiwweDUyLDB4MDIsMHg0NCwweGEyLDB4ODEsMHgwMCwweDJjLDB4NGEsMHgwOCwweDEyLDB4ODIsMHhjMiB9fSwKLSB7MTYsIDB4OTgwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4ZjgsMHg1MSwweDIyLDB4MDAgfX0sCi0gezE2LCAweDk4MTAsIDAsIHsweDJjLDB4ODUsMHgwMiwweDIxLDB4NDgsMHhjOCwweDAwLDB4YmEsMHgxNCwweDBmLDB4ODUsMHgxMiwweGUxLDB4NDIsMHhjOCwweDUwIH19LAotIHsxNiwgMHg5ODIwLCAwLCB7MHgyMiwweDAwLDB4MGMsMHgwMCwweDAzLDB4ZTAsMHgwMCwweGY4LDB4NTAsMHgzMiwweDAwLDB4MDcsMHg0NSwweDAzLDB4MjAsMHg4MCB9fSwKLSB7MTYsIDB4OTgzMCwgMCwgezB4YzAsMHgwMSwweDNlLDB4MDgsMHgyYywweDgyLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk4NDAsIDAsIHsweDk4LDB4MGQsMHhlNCwweDQwLDB4ZjEsMHgxMCwweDNlLDB4NDQsMHgwNywweDkxLDB4NDMsMHhlNCwweDU4LDB4ZjksMHgxMSwweDM0IH19LAotIHsxNiwgMHg5ODUwLCAwLCB7MHg0NCwweDRmLDB4OTEsMHgwMiwweGU0LDB4NTAsMHhmOSwweDEwLDB4M2MsMHg0ZiwweDBmLDB4OTMsMHg4MywweGU0LDB4ZjAsMHhmOSB9fSwKLSB7MTYsIDB4OTg2MCwgMCwgezB4MTEsMHgzYSwweDRmLDB4MGYsMHg5MSwweDAzLDB4ZTQsMHhhMCwweGZkLDB4MjgsMHgzZSwweDRhLDB4MGYsMHg5MiwweDgzLDB4ZTYgfX0sCi0gezE2LCAweDk4NzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHhhMCwweGNkLDB4YTAsMHhiMywweDY4IH19LAotIHsxNiwgMHg5ODgwLCAwLCB7MHg4YywweDlhLDB4MDMsMHgzNiwweDgwLDB4YzUsMHhhMCwweDIyLDB4NjAsMHgwYywweDlhLDB4MjMsMHgyNiwweDA0LDB4ZjksMHhhMCB9fSwKLSB7MTYsIDB4OTg5MCwgMCwgezB4MzIsMHg2NiwweDBjLDB4OWEsMHg4MywweDA2LDB4MjAsMHhjNSwweGEwLDB4MjIsMHg2MCwweDBjLDB4OWIsMHgwMywweDI2LDB4NDggfX0sCi0gezE2LCAweDk4YTAsIDAsIHsweGM5LDB4MDAsMHgzZSwweDc4LDB4MGMsMHg5YSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5OGIwLCAwLCB7MHgzOCwweDAwLDB4ZTEsMHgwMCwweDg4LDB4NDQsMHgyMiwweDk1LDB4MDgsMHg4NSwweDEyLDB4YTEsMHg0MiwweDg4LDB4NDAsMHgwMiB9fSwKLSB7MTYsIDB4OThjMCwgMCwgezB4OTAsMHgwOCwweDg0LDB4MDIsMHgyMywweGEwLDB4YmEsMHg0MCwweDIyLDB4YTAsMHgwOCwweDhlLDB4OTIsMHhhMywweGEwLDB4YTggfX0sCi0gezE2LCAweDk4ZDAsIDAsIHsweDQwLDB4MmEsMHgxMCwweDA4LDB4YWUsMHgwMiwweDIzLDB4NDAsMHg4OCwweDAwLDB4MmUsMHgzOCwweDA4LDB4ODQsMHgxMiwweDBlIH19LAotIHsxNiwgMHg5OGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxNSwweGM0LDB4MDAsMHg4YiwweDEyLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4OThmMCwgMCwgezB4MDgsMHg5MCwweDAyLDB4NDQsMHgwMCwweDgxLDB4NDAsMHhhMCwweDUwLDB4MDgsMHgxMSwweDBhLDB4MDUsMHgwMCwweGIxLDB4MTAgfX0sCi0gezE2LCAweDk5MDAsIDAsIHsweGEwLDB4NDgsMHgwOCwweDkwLDB4MDIsMHgwNCwweDAwLDB4ODEsMHg0MCwweDIwLDB4NTAsMHgyOCwweDExLDB4MDIsMHg0NCwweDgyIH19LAotIHsxNiwgMHg5OTEwLCAwLCB7MHg4MSwweDAwLDB4MmMsMHg1MCwweDA4LDB4MTEsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OTkyMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MDIsMHg4OSwweDQwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgxMiwweGE1LDB4MDAsMHg4OSwweDI4LDB4MjIgfX0sCi0gezE2LCAweDk5MzAsIDAsIHsweDQ5LDB4MDgsMHg5NCwweDAyLDB4MjQsMHg0OCwweGI5LDB4MTQsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4YTQsMHg0MCwweGExIH19LAotIHsxNiwgMHg5OTQwLCAwLCB7MHg1MCwweDJhLDB4NTAsMHgwOCwweDkxLDB4NDIsMHg2NCwweDAwLDB4ODksMHg0MCwweDJlLDB4NDAsMHgwOCwweDEwLDB4MDIsMHgwNiB9fSwKLSB7MTYsIDB4OTk1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NzAgfX0sCi0gezE2LCAweDk5NjAsIDAsIHsweDJjLDB4MTAsMHgwYiwweDY2LDB4MDAsMHhjOSwweDQwLDB4MzIsMHg1MCwweDBjLDB4OTAsMHgwMywweDI2LDB4MjAsMHhmOSwweGMwIH19LAotIHsxNiwgMHg5OTcwLCAwLCB7MHgzMiwweDcwLDB4MGMsMHg5MCwweDAzLDB4MjYsMHgyMCwweGM5LDB4MDAsMHgzMiwweDQwLDB4MGMsMHg5YywweDAzLDB4NjQsMHgwMCB9fSwKLSB7MTYsIDB4OTk4MCwgMCwgezB4YzksMHg0MSwweDNlLDB4NDAsMHgyYywweDkwLDB4MGIsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDk5OTAsIDAsIHsweDI4LDB4MDEsMHhhNCwweDAwLDB4ZjksMHgwNCwweDNlLDB4NDgsMHgwZiwweDkwLDB4MDMsMHhlNCwweDg4LDB4ZjksMHgwMCwweDM0IH19LAotIHsxNiwgMHg5OWEwLCAwLCB7MHg0MSwweDJmLDB4OWMsMHgwMywweGU0LDB4MTAsMHhmOSwweDAwLDB4M2UsMHg0NCwweDJmLDB4OTksMHgwMywweGU0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4OTliMCwgMCwgezB4MDAsMHgzZSwweDUwLDB4MGYsMHgxMCwweDRiLDB4YTQsMHgxMCwweGY5LDB4MjAsMHgzYywweDQwLDB4MGYsMHg5MCwweDAzLDB4NGEgfX0sCi0gezE2LCAweDk5YzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHg5OWQwLCAwLCB7MHgyYywweDgwLDB4MDMsMHgyMCwweDAyLDB4YzAsMHg0MCwweDMyLDB4MDAsMHgxYywweDA0LDB4MGYsMHgyMSwweDAwLDB4YzAsMHgwNCB9fSwKLSB7MTYsIDB4OTllMCwgMCwgezB4MzgsMHgwMCwweDBmLDB4ODAsMHgwMywweDIxLDB4MDgsMHhjOCwweDYwLDB4MzAsMHgxMCwweDBmLDB4ODAsMHgwMiwweDIwLDB4MDAgfX0sCi0gezE2LCAweDk5ZjAsIDAsIHsweGY4LDB4MDAsMHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4Y2EsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YTAwLCAwLCB7MHgyOCwweDA1LDB4MWEsMHgyMCwweDgyLDB4MDQsMHgyZiwweDgwLDB4MDgsMHhhMCwweDAyLDB4MzgsMHgwMCwweDhlLDB4ODAsMHgyMiB9fSwKLSB7MTYsIDB4OWExMCwgMCwgezB4ODAsMHgwOCwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGEsMHgwMCwweDIyLDB4ODEsMHgwYiwweDIwLDB4MDIsMHgyOCwweDAwLDB4ZGUgfX0sCi0gezE2LCAweDlhMjAsIDAsIHsweGU0LDB4MzYsMHg4MCwweDBiLDB4YTAsMHg0MiwweDI4LDB4MDAsMHhiYSwweDA0LDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweGNhIH19LAotIHsxNiwgMHg5YTMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDAxLDB4MmMsMHg4MCB9fSwKLSB7MTYsIDB4OWE0MCwgMCwgezB4MDgsMHgzMCwweDAyLDB4MmUsMHg2MCwweDgyLDB4OTAsMHhhMCwweGMwLDB4NDgsMHgzMCwweDAyLDB4MGMsMHgwMiwweDgzLDB4MDAgfX0sCi0gezE2LCAweDlhNTAsIDAsIHsweDI4LDB4YzAsMHgwYiwweDMwLDB4MGEsMHgyYywweDAwLDB4ODMsMHhjMiwweDIwLDB4YzAsMHgwYiwweDMwLDB4MmEsMHgyYywweDAwIH19LAotIHsxNiwgMHg5YTYwLCAwLCB7MHhiMywweDAwLDB4YTAsMHhjMCwweDA4LDB4MzAsMHgwMiwweGNhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWE3MCwgMCwgezB4YTAsMHgwMSwweDNjLDB4MDAsMHg4NywweDAxLDB4MmQsMHhjMiwweDA4LDB4ZjMsMHgxMiwweDNjLDB4MDAsMHg4ZiwweDAxLDB4MjEgfX0sCi0gezE2LCAweDlhODAsIDAsIHsweGM4LDB4NjgsMHg3MiwweDIyLDB4MWUsMHgwNCwweDg3LDB4MjAsMHgyMSwweGM0LDB4MGIsMHg3MCwweDAyLDB4M2MsMHg4NCwweDlmIH19LAotIHsxNiwgMHg5YTkwLCAwLCB7MHgwMCwweDI1LDB4YzQsMHg0YiwweDcwLDB4MDIsMHgxYywweDA0LDB4YjcsMHg4MSwweDIxLDB4YzgsMHgwOCwweDcyLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4OWFhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDAsMHgxZSwweDAwLDB4YzcsMHg4MSwweDNjLDB4YTAgfX0sCi0gezE2LCAweDlhYjAsIDAsIHsweDRjLDB4N2EsMHgwYiwweDFhLDB4MDAsMHhjNiwweDgwLDB4MzAsMHhlMCwweDA4LDB4ZjgsMHg4MiwweDBlLDB4NDAsMHhjZiwweGYwIH19LAotIHsxNiwgMHg5YWMwLCAwLCB7MHgzOSwweGU4LDB4MGYsMHgzYSwweDAzLDB4MWUsMHgyMCwweGM3LDB4ODAsMHgzMSwweGUzLDB4MGYsMHgzOCwweDIzLDB4MWYsMHgwOCB9fSwKLSB7MTYsIDB4OWFkMCwgMCwgezB4ZmYsMHhjMCwweDMzLDB4ZjIsMHgwYywweDdlLDB4MDMsMHhlYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlhZTAsIDAsIHsweDA4LDB4MTUsMHg4OCwweDBhLDB4N2IsMHgwMCwweDNlLDB4YzEsMHgwYiwweDM0LDB4MjMsMHhjOCwweDEwLDB4ZmIsMHgwMiwweDNlIH19LAotIHsxNiwgMHg5YWYwLCAwLCB7MHhjYSwweDBmLDB4YjcsMHg0MywweGVjLDB4ODAsMHhmYiwweDAwLDB4MmUsMHhjMiwweDBiLDB4YjQsMHg4MywweGVkLDB4ZDAsMHhmYSB9fSwKLSB7MTYsIDB4OWIwMCwgMCwgezB4MDAsMHgzZSwweGQ5LDB4MGYsMHhiMywweDgzLDB4ZWMsMHg4MCwweGJiLDB4MjAsMHgzZSwweGQ4LDB4MmYsMHhiNCwweDAzLDB4YzIgfX0sCi0gezE2LCAweDliMTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZmUsMHgwMCwweGY1LDB4OTEsMHgzMSwweGEwIH19LAotIHsxNiwgMHg5YjIwLCAwLCB7MHgwYywweGZjLDB4MDMsMHhmZSwweDAwLDB4YzQsMHg4MSwweDMxLDB4ZWUsMHg4ZCwweGY4LDB4MGEsMHgzZSwweDMwLDB4Y2YsMHg4NCB9fSwKLSB7MTYsIDB4OWIzMCwgMCwgezB4MzMsMHhlMCwweDJjLDB4ZjgsMHg4MywweGZlLDB4MTAsMHhmZSwweDgwLDB4MzMsMHhlMCwweDBjLDB4ZjksMHgxOSwweDNmLDB4NDggfX0sCi0gezE2LCAweDliNDAsIDAsIHsweGNmLDB4YzAsMHgzMywweGUwLDB4MDQsMHhmYywweDAzLDB4YzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5YjUwLCAwLCB7MHhhOCwweDExLDB4OWMsMHgwOCwweGI3LDB4YTEsMHgyMSwweGM4LDB4MDgsMHg3MSwweDAyLDB4ZjAsMHhhMCwweDg1LDB4MjAsMHgyMSB9fSwKLSB7MTYsIDB4OWI2MCwgMCwgezB4Y2UsMHgwOCwweDcwLDB4MDIsMHgzYywweDgwLDB4OGYsMHgwMCwweDJiLDB4YzUsMHgwOCwweDcxLDB4MDIsMHhkYywweDEwLDB4YjQgfX0sCi0gezE2LCAweDliNzAsIDAsIHsweDAwLDB4MjEsMHhjMSwweDBhLDB4ZjMsMHg4MiwweDBjLDB4MDAsMHg4NywweDAxLDB4MjksMHhjMCwweDA4LDB4NzEsMHgwMiwweDZhIH19LAotIHsxNiwgMHg5YjgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDlkLDB4MDAsMHhiZCwweDIxLDB4MjcsMHg4MiB9fSwKLSB7MTYsIDB4OWI5MCwgMCwgezB4MDAsMHg3MCwweDAyLDB4ZmMsMHgwNCwweDhjLDB4MDAsMHhhNywweGNjLDB4YTgsMHg3MCwweDAyLDB4M2MsMHgwOCwweGFmLDB4MDAgfX0sCi0gezE2LCAweDliYTAsIDAsIHsweDIxLDB4YzAsMHgwOCwweDcwLDB4MDIsMHhkYywweDAwLDB4YjcsMHgwMCwweDIxLDB4YzQsMHgwOCwweDcwLDB4MTYsMHgxYywweDBhIH19LAotIHsxNiwgMHg5YmIwLCAwLCB7MHg4ZiwweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweGMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWJjMCwgMCwgezB4MjAsMHgxMCwweGM4LDB4MDAsMHhiYiwweDQ0LDB4MjQsMHhlMiwweDA4LDB4YjEsMHgwMiwweGMyLDB4ODAsMHgwMSwweDgwLDB4MjQgfX0sCi0gezE2LCAweDliZDAsIDAsIHsweGQwLDB4ODgsMHgzMCwweDAyLDB4MGYsMHg1MiwweDgzLDB4OTEsMHgyOCwweGU0LDB4ODgsMHgzZCwweDAyLDB4Y2UsMHhkMCwweGIwIH19LAotIHsxNiwgMHg5YmUwLCAwLCB7MHhiMiwweGEyLDB4YzAsMHgwYSwweDM0LDB4MTIsMHgwYywweDAyLDB4ODMsMHgwMCwweDI4LDB4YzAsMHgwOCwweDMwLDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4OWJmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhYywweDAwLDB4ZmIsMHgwMSwweGU0LDB4NDAgfX0sCi0gezE2LCAweDljMDAsIDAsIHsweDJjLDB4ZjAsMHg0MywweGU1LDB4MDAsMHg4YSwweDg4LDB4MzcsMHhlMCwweDAwLDB4ZmEsMHgwMiwweDNkLDB4MDAsMHhlZiwweDAwIH19LAotIHsxNiwgMHg5YzEwLCAwLCB7MHgzMywweGQxLDB4MGMsMHhmNCwweDAzLDB4ZmQsMHgwMCwweGY5LDB4NDAsMHgzMywweGU4LDB4MGMsMHhmYywweDAxLDB4M2MsMHgwNCB9fSwKLSB7MTYsIDB4OWMyMCwgMCwgezB4Y2YsMHgwMiwweDMzLDB4YzAsMHgyYywweGYwLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDljMzAsIDAsIHsweDgwLDB4MDAsMHhlZSwweDA4LDB4ZjksMHgxMCwweDNhLDB4ZDAsMHgwZiwweGIwLDB4OTMsMHhlYywweDAwLDB4ZmIsMHgwYiwweDNhIH19LAotIHsxNiwgMHg5YzQwLCAwLCB7MHhjMCwweDhlLDB4YjAsMHg4MywweGVjLDB4ODAsMHhmYiwweDA5LDB4N2UsMHhjOCwweDBmLDB4YjIsMHgxMywweGVjLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4OWM1MCwgMCwgezB4MDAsMHgzZSwweGMyLDB4OGYsMHhiMiwweDRiLDB4Y2MsMHgwNCwweGZiLDB4MDAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4NjAgfX0sCi0gezE2LCAweDljNjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHgzMywweGMwIH19LAotIHsxNiwgMHg5YzcwLCAwLCB7MHgxYywweGYwLDB4MDMsMHg3MCwweDQwLDB4YzQsMHhjMCwweDMzLDB4YzIsMHgwZiwweGYwLDB4MDMsMHgxYywweDEwLDB4YzcsMHgwMCB9fSwKLSB7MTYsIDB4OWM4MCwgMCwgezB4MzEsMHhjMCwweDBjLDB4NzAsMHgwMywweDFjLDB4MDAsMHhjNSwweDQxLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgyMywweDJjLDB4MDAgfX0sCi0gezE2LCAweDljOTAsIDAsIHsweGNmLDB4MDAsMHhiMywweGMwLDB4NmMsMHhmMCwweDAzLDB4ODAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5Y2EwLCAwLCB7MHg4MSwweDA0LDB4NmEsMHgwMCwweGI5LDB4OTAsMHgzMiwweGYxLDB4MDgsMHhiMCwweDAyLDB4MGEsMHgxMCwweGQ5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4OWNiMCwgMCwgezB4YzEsMHgwYiwweGIwLDB4MDIsMHgyYywweDAwLDB4Y2IsMHgwNiwweDIyLDB4YzAsMHg4OCwweGIwLDB4MTIsMHgyYywweDAwLDB4ODggfX0sCi0gezE2LCAweDljYzAsIDAsIHsweDgwLDB4MjIsMHhjMSwweDBkLDB4YjAsMHgwMiwweDJjLDB4MDAsMHg4MywweDAwLDB4MjIsMHhjMSwweDA4LDB4YjAsMHg0NiwweGUwIH19LAotIHsxNiwgMHg5Y2QwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMSwweDJlLDB4MDAsMHhiOSwweDAwLDB4MjIsMHhmMCB9fSwKLSB7MTYsIDB4OWNlMCwgMCwgezB4MDgsMHhiMCwweDEyLDB4NjQsMHgwMCwweDhhLDB4MDAsMHgyMiwweGMwLDB4MGIsMHgzMCwweDQyLDB4MmMsMHgwMCwweDhiLDB4MDAgfX0sCi0gezE2LCAweDljZjAsIDAsIHsweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDAwLDB4OGEsMHgwMCwweDIyLDB4YzAsMHg4OCwweDMwLDB4MGEsMHgyYywweDAwIH19LAotIHsxNiwgMHg5ZDAwLCAwLCB7MHg4YiwweDAwLDB4MjAsMHhjMCwweDA4LDB4YjAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWQxMCwgMCwgezB4MDgsMHgwNCwweDBjLDB4MDQsMHhiMSwweDAyLDB4ZTQsMHhjMSwweDA4LDB4YjAsMHgyMiwweDIwLDB4MDIsMHg5MywweDAwLDB4MjAgfX0sCi0gezE2LCAweDlkMjAsIDAsIHsweGMwLDB4MGIsMHgzMCwweDEyLDB4MGMsMHgwMiwweDgzLDB4MDIsMHhhMCwweGMwLDB4MjgsMHgzMCwweDBlLDB4MGMsMHgwMiwweDgwIH19LAotIHsxNiwgMHg5ZDMwLCAwLCB7MHgwMCwweGEwLDB4YzAsMHg0OSwweDMwLDB4MGEsMHgwYywweDAyLDB4OGIsMHgwMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4OWQ0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZjksMHgyNCwweDMyLDB4YzAgfX0sCi0gezE2LCAweDlkNTAsIDAsIHsweDA4LDB4ZjAsMHgwMywweDY0LDB4MDAsMHhjOCwweDAwLDB4YjMsMHhjMCwweDFmLDB4ZjAsMHgwYiwweDNjLDB4MDAsMHg4ZiwweDAwIH19LAotIHsxNiwgMHg5ZDYwLCAwLCB7MHgzMywweGMwLDB4NGMsMHhmMCwweDQzLDB4M2MsMHgwOCwweGMzLDB4MDAsMHgzMSwweGMwLDB4MGMsMHhmMCwweDAzLDB4M2QsMHg0OCB9fSwKLSB7MTYsIDB4OWQ3MCwgMCwgezB4Y2YsMHgwMCwweDMxLDB4YzAsMHgwYywweGYwLDB4MDMsMHg4MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDlkODAsIDAsIHsweGEwLDB4MWQsMHhmMCwweDA0LDB4ZjksMHg0MSwweDNiLDB4YzAsMHg0ZiwweGYwLDB4MDMsMHhmMCwweDExLDB4ZmQsMHgwMCwweDNmIH19LAotIHsxNiwgMHg5ZDkwLCAwLCB7MHhjMCwweDg3LDB4NzAsMHgyNywweGZjLDB4MDAsMHhlZiwweDA2LDB4M2YsMHhjMCwweDBmLDB4ZjAsMHgwMiwweGZjLDB4MDgsMHhmYyB9fSwKLSB7MTYsIDB4OWRhMCwgMCwgezB4MDAsMHgzZiwweGMwLDB4NDcsMHhmMCwweDQzLDB4ZmMsMHgwMCwweDc3LDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweDlkYjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZDIsMHgwMCwweGM3LDB4MDEsMHgzNywweDBjIH19LAotIHsxNiwgMHg5ZGMwLCAwLCB7MHgwZiwweGU4LDB4MjMsMHgxMCwweDRhLDB4YzQsMHhjMCwweDMxLDB4MzAsMHgwYywweGM5LDB4MDMsMHgzNCwweDQ2LDB4Y2YsMHgxMCB9fSwKLSB7MTYsIDB4OWRkMCwgMCwgezB4MzMsMHhkMCwweDBjLDB4ZjQsMHgwMywweDNjLDB4NTgsMHhjZiwweDAwLDB4MzMsMHhjMCwweDJkLDB4ZjEsMHgwMywweDNlLDB4MDIgfX0sCi0gezE2LCAweDlkZTAsIDAsIHsweGNmLDB4MjEsMHgzZiwweGU0LDB4MGYsMHhmMiwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZGYwLCAwLCB7MHg4MCwweDEwLDB4ZTQsMHg4NCwweDBiLDB4NDAsMHgyMiwweDRjLDB4MGIsMHhhOCwweDAyLDB4MmMsMHhjMCwweDhiLDB4MjAsMHgyMiB9fSwKLSB7MTYsIDB4OWUwMCwgMCwgezB4YzgsMHg0YSwweDMyLDB4MDIsMHgyNCwweDgwLDB4ODMsMHgyMCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgyMCwweDAwLDB4OGIgfX0sCi0gezE2LCAweDllMTAsIDAsIHsweDIxLDB4MzIsMHhjYSwweDQ4LDB4MzIsMHgwMiwweDJjLDB4MzAsMHg4ZiwweDkwLDB4MmUsMHg4OCwweDBiLDB4YmQsMHgxMiwweDIwIH19LAotIHsxNiwgMHg5ZTIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNlLDB4MjAsMHhhMywweDQwLDB4ZTAsMHg0OCB9fSwKLSB7MTYsIDB4OWUzMCwgMCwgezB4NGIsMHgyMCwweDIyLDB4MGMsMHgwMiwweDgyLDB4MDAsMHgyYSwweDAwLDB4MDgsMHgyMCwweDAyLDB4MDQsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweDllNDAsIDAsIHsweDIwLDB4YzgsMHgwOCwweDAyLDB4MDIsMHgwYywweDAwLDB4ODAsMHgwYywweDYwLDB4MDAsMHgwOCwweDIwLDB4MTIsMHgyYywweDg4IH19LAotIHsxNiwgMHg5ZTUwLCAwLCB7MHg4MywweDAwLDB4MmMsMHhlOCwweDBiLDB4MzAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWU2MCwgMCwgezB4YzAsMHgxNSwweGFlLDB4MDAsMHhhYiwweDAxLDB4YTIsMHg2MCwweDBiLDB4YTAsMHgwMiwweDIwLDB4MDEsMHg4MSwweDAwLDB4MjIgfX0sCi0gezE2LCAweDllNzAsIDAsIHsweGMwLDB4MGEsMHg5MCwweDEyLDB4MDQsMHgyMCwweDhhLDB4MDgsMHgyMiwweGMxLDB4MDgsMHhhMCwweDAyLDB4MjgsMHgwMCwweDg4IH19LAotIHsxNiwgMHg5ZTgwLCAwLCB7MHgwMCwweDI0LDB4NDQsMHgwOCwweGEyLDB4MDIsMHhhYywweDAwLDB4OGIsMHgwNCwweDJlLDB4ODgsMHgwMywweGIwLDB4MDIsMHg3MCB9fSwKLSB7MTYsIDB4OWU5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4MTUsMHhlYywweDAwLDB4ZWEsMHg5MCwweDMyLDB4MjggfX0sCi0gezE2LCAweDllYTAsIDAsIHsweDBmLDB4YjYsMHgwMywweDIwLDB4MDgsMHhjOSwweDA0LDB4M2EsMHhjMCwweDRjLDB4OTAsMHgyMiwweDI0LDB4MDAsMHhjYiwweDQwIH19LAotIHsxNiwgMHg5ZWIwLCAwLCB7MHgzMiwweGE4LDB4MGMsMHhiMiwweDAzLDB4MmMsMHgwMCwweGNiLDB4ODAsMHhiMiwweGUwLDB4MGMsMHhiMCwweDBiLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4OWVjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzAsMHg0ZiwweGIwLDB4MGIsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweDllZDAsIDAsIHsweGUwLDB4MDEsMHhiYywweDAwLDB4ZGYsMHg4MCwweDNiLDB4ODEsMHgwZiwweGYwLDB4YzMsMHhmYywweDAwLDB4YmUsMHgwMSwweDFmIH19LAotIHsxNiwgMHg5ZWUwLCAwLCB7MHgwMCwweDBmLDB4ZTAsMHgyMywweGY0LDB4MDAsMHhmZiwweDAwLDB4M2YsMHhiMCwweDRmLDB4ZjAsMHg0MywweGQ0LDB4MDIsMHhmZiB9fSwKLSB7MTYsIDB4OWVmMCwgMCwgezB4OTEsMHgzYSwweGUwLDB4NGUsMHhmMCwweDAzLDB4N2MsMHgwYywweGZmLDB4MDAsMHgyZiwweDgwLDB4MGYsMHgzMCwweDAzLDB4YjggfX0sCi0gezE2LCAweDlmMDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YWMsMHgwMSwweGNhLDB4MDAsMHg3MiwweDUwIH19LAotIHsxNiwgMHg5ZjEwLCAwLCB7MHgwNCwweGI0LDB4MDMsMHgyYywweDgyLDB4Y2IsMHgwMCwweDMyLDB4ZTAsMHgwYywweGI4LDB4MDMsMHgyNywweDA0LDB4YzgsMHhjOCB9fSwKLSB7MTYsIDB4OWYyMCwgMCwgezB4YjIsMHhhMiwweDBjLDB4ODgsMHgwMywweDJjLDB4MDAsMHhjMSwweDAwLDB4M2UsMHgwMCwweDJjLDB4MzAsMHgxYiwweDJjLDB4MDQgfX0sCi0gezE2LCAweDlmMzAsIDAsIHsweGZiLDB4MTAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHg5ZjQwLCAwLCB7MHhjOCwweDA1LDB4MmMsMHgwNCwweDAzLDB4NTAsMHhhMiwweGUwLDB4MDgsMHgzNCwweDQyLDB4MzMsMHgwMCwweDg4LDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4OWY1MCwgMCwgezB4MTAsMHgwZCwweDg0LDB4MDMsMHgyNSwweDAwLDB4OGEsMHg0MCwweDIyLDB4OTAsMHgwOCwweGE1LDB4MDIsMHgyYywweDAwLDB4ODkgfX0sCi0gezE2LCAweDlmNjAsIDAsIHsweGE0LDB4M2EsMHg0MCwweDA4LDB4YjAsMHgwMiwweDJjLDB4MDAsMHhiZiwweDg0LDB4MmUsMHg4MCwweDBiLDB4ZjAsMHg1MiwweDMyIH19LAotIHsxNiwgMHg5ZjcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDZjLDB4ODAsMHg4MSwweDgwLDB4MjQsMHg4OCB9fSwKLSB7MTYsIDB4OWY4MCwgMCwgezB4ODksMHgzYywweDI2LDB4MjEsMHgwMCwweDkwLDB4MDAsMHgyMCwweDAyLDB4MDgsMHg4MCwweDgyLDB4MDAsMHgyMCwweDliLDB4MDAgfX0sCi0gezE2LCAweDlmOTAsIDAsIHsweDIyLDB4NDAsMHg4OCwweGIwLDB4MTIsMHgwYywweDA4LDB4ODMsMHg4MCwweDJjLDB4YzAsMHgwOCwweDEwLDB4MDIsMHgwYywweDAwIH19LAotIHsxNiwgMHg5ZmEwLCAwLCB7MHhiMywweDgwLDB4MmMsMHg0MCwweDBiLDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4OWZiMCwgMCwgezB4MjAsMHgwMSwweDNlLDB4MGEsMHg4NSwweGEwLDB4YTUsMHg2MCwweDA4LDB4ZmIsMHg4MiwweDNlLDB4ODQsMHg5ZiwweDgxLDB4NjMgfX0sCi0gezE2LCAweDlmYzAsIDAsIHsweGUwLDB4ODksMHg3OSwweDEyLDB4NTIsMHg4MCwweDk3LDB4ODIsMHgyMSwweDZjLDB4MTgsMHg3OCwweDAyLDB4MTIsMHgwMCwweDg3IH19LAotIHsxNiwgMHg5ZmQwLCAwLCB7MHhhMSwweDI5LDB4ZTAsMHgwOCwweDViLDB4MDIsMHgxZSwweDAwLDB4YjcsMHhjMCwweDJkLDB4NjAsMHgwYiwweDc4LDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4OWZlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgwYywweDAwLDB4ODEsMHgwOCwweDI2LDB4YzIgfX0sCi0gezE2LCAweDlmZjAsIDAsIHsweDJjLDB4MzIsMHgxMywweDBlLDB4YTQsMHhkMiwweDAwLDB4YjAsMHgwMCwweDFjLDB4MjEsMHgxMiwweDI0LDB4MDIsMHhkMSwweDIwIH19LAotIHsxNiwgMHhhMDAwLCAwLCB7MHgzMCwweGM4LDB4MGMsMHgxMCwweDAzLDB4MGMsMHgwMCwweGMyLDB4MTAsMHgzYywweDgwLDB4MGMsMHgyMywweDAzLDB4MGMsMHg0MCB9fSwKLSB7MTYsIDB4YTAxMCwgMCwgezB4ZjMsMHgwMCwweDNjLDB4NDgsMHgwZiwweDMwLDB4MGIsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEwMjAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZmQsMHgyMCwweGJiLDB4NDAsMHgwNywweDcyLDB4MDIsMHhmMCwweDEwLDB4ZWQsMHgxMCwweDNmIH19LAotIHsxNiwgMHhhMDMwLCAwLCB7MHhjNCwweDBmLDB4ZDEsMHg2MywweGI0LDB4ODAsMHhlZiwweDAwLDB4M2YsMHhjOCwweDBmLDB4ZjAsMHgwMywweGQ4LDB4MDAsMHhmZSB9fSwKLSB7MTYsIDB4YTA0MCwgMCwgezB4MzQsMHgzZiwweGM0LDB4MGYsMHhlYiwweDQzLDB4ZmMsMHgwMCwweGZmLDB4MDgsMHg3ZiwweDQwLDB4MGYsMHhmMSwweDgzLDB4ZDAgfX0sCi0gezE2LCAweGEwNTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZWMsMHgwMCwweGM4LDB4MDAsMHgzMywweDgwIH19LAotIHsxNiwgMHhhMDYwLCAwLCB7MHg4ZiwweDI4LDB4MDMsMHgyMCwweDAwLDB4NDksMHgwMiwweDMyLDB4YzAsMHgwZiwweDkwLDB4MDMsMHgyMCwweDAwLDB4Y2IsMHgwMCB9fSwKLSB7MTYsIDB4YTA3MCwgMCwgezB4MzIsMHg0MCwweDRjLDB4YjAsMHgwYiwweDJjLDB4MDAsMHhjYiwweDgwLDB4MzIsMHhjMCwweDBlLDB4OWUsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGEwODAsIDAsIHsweGZiLDB4MjAsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMDkwLCAwLCB7MHg0OCwweDExLDB4OWMsMHgwMCwweDhkLDB4MDEsMHgyMSwweGMwLDB4MGIsMHg2MCwweDAyLDB4MWQsMHgwMCwweGQ2LDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YTBhMCwgMCwgezB4MDAsMHgwYiwweGUwLDB4MDIsMHgwMCwweDAwLDB4ODMsMHgwNCwweDIwLDB4NDAsMHgwOCwweDcwLDB4NDIsMHgzNCwweDAyLDB4ODcgfX0sCi0gezE2LCAweGEwYjAsIDAsIHsweDAxLDB4MjMsMHhjMCwweDI4LDB4NTEsMHgwYSwweDFjLDB4MDQsMHhiNywweDMwLDB4MmQsMHhjMCwweDBiLDB4NzIsMHgwMywweDkyIH19LAotIHsxNiwgMHhhMGMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDllLDB4MDAsMHhhNiwweDQwLDB4MjEsMHhhMCB9fSwKLSB7MTYsIDB4YTBkMCwgMCwgezB4MGIsMHg2OCwweDAyLDB4MGUsMHgwMCwweDhmLDB4ODAsMHgyMSwweGUwLDB4MGIsMHg3OCwweDAyLDB4MTYsMHgxMCwweGE1LDB4ODAgfX0sCi0gezE2LCAweGEwZTAsIDAsIHsweDIxLDB4ZTAsMHgwOCwweDE4LDB4MDIsMHgxZSwweDAwLDB4ODMsMHg4MCwweDIxLDB4YTAsMHgwOCwweDc4LDB4MDIsMHgxZiwweDAwIH19LAotIHsxNiwgMHhhMGYwLCAwLCB7MHhiNywweDgwLDB4MmQsMHhlMCwweDBiLDB4MzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTEwMCwgMCwgezB4NDgsMHgxNCwweGVjLDB4MTIsMHhhMSwweDY0LDB4MjAsMHhlNiwweDBiLDB4MjAsMHgwMiwweDAwLDB4MTAsMHg5MCwweDRhLDB4MjAgfX0sCi0gezE2LCAweGExMTAsIDAsIHsweDIwLDB4NGIsMHgwMCwweDQyLDB4MDQsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMyLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhMTIwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgwOCwweDMwLDB4MDIsMHgwZSwweDAwLDB4YjMsMHgwMCwweDJjLDB4ZTAsMHg0YiwweDMwLDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YTEzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOCwweDAwLDB4ZWUsMHhjMCwweDMzLDB4OTAgfX0sCi0gezE2LCAweGExNDAsIDAsIHsweDBmLDB4YTAsMHgxYiwweDA4LDB4MDAsMHhjYSwweDQwLDB4YjIsMHg4MiwweDBmLDB4YTAsMHgwYiwweDI4LDB4MDIsMHhjYSwweDAwIH19LAotIHsxNiwgMHhhMTUwLCAwLCB7MHhiMiwweDkwLDB4YWMsMHhhMCwweDAzLDB4MjksMHgwMCwweGNhLDB4NDAsMHhiMiwweDgwLDB4OGUsMHhhNCwweDAzLDB4MmEsMHgwMCB9fSwKLSB7MTYsIDB4YTE2MCwgMCwgezB4ZmEsMHgwMCwweDNmLDB4YTgsMHgwZiwweGEwLDB4MGIsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGExNzAsIDAsIHsweDQ4LDB4MDAsMHhlMiwweDAyLDB4OTAsMHgwMCwweDNlLDB4MDAsMHgwZiwweDg4LDB4MDMsMHhmMSwweDAwLDB4ZmMsMHgwMiwweDNmIH19LAotIHsxNiwgMHhhMTgwLCAwLCB7MHgyMCwweDBmLDB4YzgsMHgwMywweGMxLDB4MDAsMHhmMCwweDAwLDB4M2UsMHgwMCwweDhmLDB4MDAsMHgwMSwweDYwLDB4MDIsMHhmOCB9fSwKLSB7MTYsIDB4YTE5MCwgMCwgezB4MDgsMHgzZSwweDAwLDB4MGYsMHg4MCwweDgzLDB4ZTAsMHgwMCwweGY4LDB4MDAsMHgyZSwweDAwLDB4OGYsMHg4MCwweDEzLDB4OTIgfX0sCi0gezE2LCAweGExYTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHgwMiwweGM5LDB4MDAsMHhiMiwweDY0IH19LAotIHsxNiwgMHhhMWIwLCAwLCB7MHgwZiwweDkxLDB4MDMsMHhlNCwweDA0LDB4YzksMHgwMCwweDMyLDB4NDAsMHg2YywweDkwLDB4MDMsMHgyNSwweDAyLDB4YzksMHg5MCB9fSwKLSB7MTYsIDB4YTFjMCwgMCwgezB4YjAsMHg0MCwweDBjLDB4OTAsMHgwMywweDI0LDB4MjAsMHhjOSwweGEwLDB4M2UsMHg0MCwweDRjLDB4OTAsMHgyMywweGU0LDB4MDAgfX0sCi0gezE2LCAweGExZDAsIDAsIHsweGYxLDB4MDAsMHg5MiwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMWUwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4ODAsMHhhMiwweDQwLDB4MGIsMHg5NiwweDQyLDB4ZTUsMHgwNCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YTFmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDA4LDB4MDksMHg0MSwweDIyLDB4NDAsMHg0OCwweDkwLDB4NDIsMHgyNCwweDA0LDB4ODkgfX0sCi0gezE2LCAweGEyMDAsIDAsIHsweDgwLDB4MjYsMHg0MCwweDA4LDB4OTAsMHgwMiwweGU0LDB4MDAsMHhiOSwweDAwLDB4MjIsMHg0MCwweDA4LDB4OTQsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhMjEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDI1LDB4MDAsMHg4OSwweDIwLDB4MjIsMHg0MCB9fSwKLSB7MTYsIDB4YTIyMCwgMCwgezB4MGIsMHg5MCwweDAyLDB4ZjQsMHg4NCwweDg1LDB4MDAsMHgyMSwweDQwLDB4NDgsMHg1MCwweDAyLDB4MjQsMHgyMCwweDhkLDB4MDggfX0sCi0gezE2LCAweGEyMzAsIDAsIHsweDIzLDB4NDAsMHgwOCwweGQwLDB4MDIsMHg5NCwweDAwLDB4OGQsMHgwMCwweDI5LDB4NDAsMHgwYSwweGQwLDB4MDIsMHhhNCwweDA4IH19LAotIHsxNiwgMHhhMjQwLCAwLCB7MHhiOSwweDAwLDB4MjgsMHg0MCwweDE4LDB4OTAsMHhjMiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTI1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MjAsMHg1MSwweDBiLDB4MTAsMHgwMiwweGY1LDB4ODAsMHg4NSwweGMxLDB4YTEgfX0sCi0gezE2LCAweGEyNjAsIDAsIHsweDUwLDB4MDgsMHg1NCwweDBhLDB4MDUsMHgwNiwweDg1LDB4NDAsMHgyMSwweDUwLDB4ODgsMHg1NCwweDAyLDB4OTUsMHgwMCwweDg1IH19LAotIHsxNiwgMHhhMjcwLCAwLCB7MHg0NCwweDJkLDB4NTAsMHgyYSwweDU0LDB4MTIsMHhjNSwweDAxLDB4YjEsMHgwMCwweDA4LDB4NTAsMHgwOCwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YTI4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4Y2EsMHg1MCwweDMyLDB4ODAgfX0sCi0gezE2LCAweGEyOTAsIDAsIHsweDBmLDB4ODAsMHgwMywweGU4LDB4MDIsMHhjOCwweDAxLDB4MzIsMHgwMCwweDJjLDB4YzAsMHgwMywweDIwLDB4MDAsMHhjOCwweDAyIH19LAotIHsxNiwgMHhhMmEwLCAwLCB7MHgzMiwweDAwLDB4MmMsMHg4MCwweDBiLDB4YTAsMHgwMCwweGM4LDB4MDAsMHgzYSwweDAwLDB4NGUsMHg0MCwweDIzLDB4YTAsMHgwOCB9fSwKLSB7MTYsIDB4YTJiMCwgMCwgezB4ZjgsMHgwMCwweDNhLDB4MDAsMHgyYywweDgwLDB4MGIsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGEyYzAsIDAsIHsweDk4LDB4MWQsMHhkYywweDA0LDB4ZmQsMHg0MCwweDNmLDB4NTAsMHg0ZiwweDkwLDB4NjMsMHhlNCwweDQwLDB4ZjEsMHgwMiwweDNlIH19LAotIHsxNiwgMHhhMmQwLCAwLCB7MHg0MSwweDBmLDB4OTAsMHgxMywweGY1LDB4MDQsMHhmOSwweDQxLDB4M2UsMHg1MCwweDBmLDB4OTQsMHg0MywweDY1LDB4MDIsMHhmOSB9fSwKLSB7MTYsIDB4YTJlMCwgMCwgezB4NDEsMHgzNiwweDUwLDB4NGQsMHg5NCwweDAzLDB4ZjQsMHgwMCwweGY5LDB4NDEsMHgzNywweDQwLDB4NGYsMHg5NCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGEyZjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDAxLDB4ZmMsMHgwMCwweGNkLDB4YTgsMHgzMywweDcwIH19LAotIHsxNiwgMHhhMzAwLCAwLCB7MHgwZiwweGQwLDB4MTMsMHhmNiwweDg4LDB4Y2QsMHgwMCwweDMyLDB4NTAsMHg0ZiwweDE0LDB4MjMsMHgwNywweGEwLDB4YzksMHhjMCB9fSwKLSB7MTYsIDB4YTMxMCwgMCwgezB4MzIsMHg3OCwweDBjLDB4OWUsMHgwMywweDM3LDB4MDIsMHhjZCwweGMwLDB4MzIsMHg2NCwweDBmLDB4OTgsMHgwMywweDI0LDB4MDAgfX0sCi0gezE2LCAweGEzMjAsIDAsIHsweGNkLDB4MDAsMHgzMiwweDQwLDB4MmMsMHhkYSwweDAzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhMzMwLCAwLCB7MHgzOCwweDEwLDB4ZTIsMHgwOCwweDg4LDB4ZWIsMHgyMiwweDMwLDB4MGIsMHg4MCwweDEyLDB4ZTgsMHgwNCwweGEwLDB4YTAsMHgyYSB9fSwKLSB7MTYsIDB4YTM0MCwgMCwgezB4MjAsMHgwYiwweDhhLDB4MGEsMHgyMywweDAwLDB4ODgsMHg4MCwweDIyLDB4MjgsMHgwMCwweGM4LDB4NDIsMHgyMywweDgwLDB4ODAgfX0sCi0gezE2LCAweGEzNTAsIDAsIHsweGQ0LDB4MjAsMHgyOCwweDA5LDB4ODAsMHgwMiwweDIyLDB4OTQsMHhhOCwweDAwLDB4MmEsMHgwMCwweDg4LDB4ODUsMHgwMiwweDBlIH19LAotIHsxNiwgMHhhMzYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwNSwweGM0LDB4YTAsMHg4MywweDAwLDB4MjQsMHhkOCB9fSwKLSB7MTYsIDB4YTM3MCwgMCwgezB4OGIsMHgxMCwweDAyLDB4ZTUsMHgxNCwweDg5LDB4MGEsMHgyMSwweDQ4LDB4MGIsMHg1MiwweDAyLDB4NTQsMHg4MCwweDg1LDB4NDAgfX0sCi0gezE2LCAweGEzODAsIDAsIHsweDI1LDB4NTgsMHgwOSwweDU2LDB4MDIsMHg0NSwweDAyLDB4ODEsMHgyMCwweDIwLDB4NTAsMHgwYiwweDE0LDB4MDIsMHgwNCwweDMwIH19LAotIHsxNiwgMHhhMzkwLCAwLCB7MHg4MSwweDAwLDB4MjAsMHg0MCwweDA4LDB4MTAsMHgwMiwweDQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTNhMCwgMCwgezB4MTgsMHgxNSwweGE0LDB4MTIsMHg4OSwweDAwLDB4YTYsMHg0MCwweDBiLDB4OTAsMHg0MiwweGU0LDB4OTgsMHhhOSwweDgwLDB4MmIgfX0sCi0gezE2LCAweGEzYjAsIDAsIHsweDQwLDB4MGIsMHg1MSwweDAyLDB4NTUsMHgwMCwweDlkLDB4MDgsMHgyNywweDQ4LDB4MDksMHhmNiwweDAyLDB4NDQsMHgwMCwweDgxIH19LAotIHsxNiwgMHhhM2MwLCAwLCB7MHgwNCwweDIyLDB4NDAsMHgxOSwweDkxLDB4OGEsMHgyNCwweDgwLDB4YTksMHgwMCwweDJhLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YTNkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNywweDAyLDB4YzksMHgwNCwweDM2LDB4NTggfX0sCi0gezE2LCAweGEzZTAsIDAsIHsweDBmLDB4OTAsMHgwMywweGM1LDB4MDAsMHhjOSwweDAwLDB4MzIsMHg0MCwweDBmLDB4OTAsMHgxMywweDY0LDB4MDIsMHhjOSwweDAwIH19LAotIHsxNiwgMHhhM2YwLCAwLCB7MHgzNiwweDQwLDB4MmQsMHg5MCwweDBiLDB4NjYsMHgwNCwweGM5LDB4ZTAsMHhiMiwweDQ4LDB4OGYsMHg5OCwweDQ3LDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YTQwMCwgMCwgezB4YzksMHgwMCwweDcyLDB4NDAsMHgwYywweDEwLDB4MDMsMHg2OCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE0MTAsIDAsIHsweDI4LDB4MDEsMHhhNSwweDA4LDB4ZjksMHgyMSwweDNhLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhlNiwweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNDIwLCAwLCB7MHg0MCwweDRmLDB4OTgsMHg4MywweGE0LDB4MDAsMHhlOSwweDQwLDB4YmEsMHg2MCwweDBlLDB4OTAsMHgwMywweGE0LDB4ODAsMHhmOSB9fSwKLSB7MTYsIDB4YTQzMCwgMCwgezB4YTMsMHgzZSwweDQ4LDB4MGYsMHg5OCwweDBiLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgxZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGE0NDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTIsMHg0OCwweGM4LDB4MjAsMHgzMiwweDA4IH19LAotIHsxNiwgMHhhNDUwLCAwLCB7MHgxZiwweDgwLDB4ODMsMHhlMSwweDIyLDB4YzgsMHgwMSwweDMzLDB4MDAsMHgyYywweGMwLDB4MDMsMHgzMCwweDA0LDB4Y2MsMHg0MCB9fSwKLSB7MTYsIDB4YTQ2MCwgMCwgezB4YjEsMHgwMCwweDBjLDB4NDQsMHgwMywweDIwLDB4MTIsMHhjOCwweDQxLDB4MzIsMHgwMCwweDJkLDB4ODQsMHgwYiwweDYwLDB4MDAgfX0sCi0gezE2LCAweGE0NzAsIDAsIHsweGY4LDB4MDAsMHhiMiwweDAwLDB4NGMsMHg4MCwweDBiLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNDgwLCAwLCB7MHgyOCwweDA1LDB4M2EsMHgwMCwweGE2LDB4MDAsMHgyMywweDkwLDB4MDMsMHhlNCwweDkyLDB4ZjgsMHgwMCwweDgyLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YTQ5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg2OCwweDAwLDB4Y2EsMHgwMCwweDIyLDB4ODMsMHgwOCwweGEwLDB4MDIsMHgyOCwweDAzLDB4OGEgfX0sCi0gezE2LCAweGE0YTAsIDAsIHsweDAwLDB4MjIsMHg4MCwweDA4LDB4YTAsMHgwMiwweDI4LDB4MDAsMHhiNiwweDgwLDB4MjIsMHg4MCwweDBkLDB4ZTgsMHgwMiwweDBhIH19LAotIHsxNiwgMHhhNGIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZlLDB4MDAsMHg4MiwweDQyLDB4MjAsMHhjMCB9fSwKLSB7MTYsIDB4YTRjMCwgMCwgezB4MGIsMHgzNCwweDAyLDB4Y2QsMHgwOSwweDgwLDB4MDAsMHgyMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMiwweDk4LDB4MDAgfX0sCi0gezE2LCAweGE0ZDAsIDAsIHsweDIwLDB4MjAsMHgyOCwweDAwLDB4MGEsMHgwNCwweDEwLDB4ODEsMHg4MCwweDIwLDB4YzAsMHgwOCwweGIwLDB4MDIsMHgyYywweDAwIH19LAotIHsxNiwgMHhhNGUwLCAwLCB7MHhiMywweDAwLDB4MjIsMHhjMCwweDE4LDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTRmMCwgMCwgezB4YTAsMHgwMSwweDM4LDB4MDIsMHhhMywweDAwLDB4MjEsMHg0MCwweDFiLDB4NzAsMHgwMiwweGRjLDB4MjAsMHg4NCwweDA1LDB4NjUgfX0sCi0gezE2LCAweGE1MDAsIDAsIHsweGUwLDB4MDgsMHhmMCwweDAyLDB4N2MsMHgxMCwweDk3LDB4MDAsMHgyNCwweGMwLDB4MDgsMHgzMCwweDAyLDB4NTQsMHg4OCwweDg3IH19LAotIHsxNiwgMHhhNTEwLCAwLCB7MHgwOSwweDIxLDB4ZTgsMHgwOSwweDMzLDB4MDIsMHgxYywweDgwLDB4YjYsMHgwOCwweDYzLDB4YzgsMHgwOSwweDM4LDB4MTIsMHgyOCB9fSwKLSB7MTYsIDB4YTUyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgxZSwweDAwLDB4YzcsMHhhMCwweGExLDB4ZTAgfX0sCi0gezE2LCAweGE1MzAsIDAsIHsweDBiLDB4NzgsMHgwMywweGZlLDB4MDAsMHhjNSwweDgyLDB4MzMsMHgyMCwweDBjLDB4NDgsMHgwMywweDFlLDB4MDEsMHhkZiwweDgwIH19LAotIHsxNiwgMHhhNTQwLCAwLCB7MHgzMSwweDIwLDB4MGMsMHg0OCwweDAzLDB4MDYsMHg0MCwweDg3LDB4ODIsMHgzMSwweGY4LDB4MGQsMHg3YiwweDAzLDB4NWYsMHgwMCB9fSwKLSB7MTYsIDB4YTU1MCwgMCwgezB4ZjMsMHg4MCwweDMxLDB4ZjIsMHgwYywweDYwLDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE1NjAsIDAsIHsweDA4LDB4MWQsMHg5YywweDAwLDB4ZmIsMHgwMSwweDJmLDB4NDAsMHgwNywweGIwLDB4MDMsMHhlOCwweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhhNTcwLCAwLCB7MHhjMSwweDBmLDB4YjAsMHgwMywweGUwLDB4MDYsMHhlOCwweDAyLDB4M2EsMHhjMCwweDBmLDB4YjAsMHgwMSwweGE0LDB4MTAsMHhmOSB9fSwKLSB7MTYsIDB4YTU4MCwgMCwgezB4NDAsMHhiZSwweGQwLDB4MDYsMHhiMCwweDAzLDB4ZWUsMHgwMCwweGZhLDB4MDAsMHgzYywweGQ4LDB4MGYsMHhhMCwweDAzLDB4YzIgfX0sCi0gezE2LCAweGE1OTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4ZjYsMHgwMCwweGNmLDB4ODgsMHgzMywweDY0IH19LAotIHsxNiwgMHhhNWEwLCAwLCB7MHgyYywweGY4LDB4MDMsMHhmZSwweDAyLDB4YzQsMHhiMCwweDMzLDB4MjAsMHg4YywweGQ4LDB4MDMsMHgzMiwweDAwLDB4Y2MsMHhiNCB9fSwKLSB7MTYsIDB4YTViMCwgMCwgezB4MzMsMHhhMCwweDBjLDB4YzgsMHgwMywweDE2LDB4MjAsMHhjZiwweGMwLDB4MzMsMHhmMCwweDBjLDB4ZjgsMHgwMywweGZlLDB4MDAgfX0sCi0gezE2LCAweGE1YzAsIDAsIHsweGNkLDB4ODAsMHgzZiwweGUwLDB4MGYsMHhkOCwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNWQwLCAwLCB7MHhhOCwweDExLDB4YjUsMHgwNCwweDg3LDB4MTIsMHhhMSwweDUwLDB4MGEsMHg3NCwweDEyLDB4YzQsMHg0MCwweDg0LDB4MTEsMHgyMyB9fSwKLSB7MTYsIDB4YTVlMCwgMCwgezB4YzAsMHgyOCwweGUwLDB4MDIsMHgxYywweDAyLDB4YTcsMHgxMSwweDIxLDB4NTgsMHg0OCwweDcwLDB4MGEsMHgxNCwweDAwLDB4OGQgfX0sCi0gezE2LCAweGE1ZjAsIDAsIHsweDAwLDB4MjMsMHhjMCwweDBiLDB4NzAsMHgwMiwweGZjLDB4NDAsMHg4NiwweDAwLDB4MmQsMHhjMCwweDBiLDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhhNjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDk1LDB4MDAsMHg4NywweDQwLDB4MjEsMHgwMCB9fSwKLSB7MTYsIDB4YTYxMCwgMCwgezB4MTgsMHg3MSwweDAyLDB4ZGMsMHgwMCwweDk1LDB4MjgsMHhlMSwweDAyLDB4MDgsMHg1MCwweDAyLDB4M2MsMHg0MiwweGE3LDB4MjIgfX0sCi0gezE2LCAweGE2MjAsIDAsIHsweDIxLDB4ODAsMHg4OCwweDQxLDB4MDIsMHgxNCwweDAwLDB4ODUsMHgwMCwweGExLDB4YzAsMHgwOSwweDcxLDB4MDIsMHhkYywweDAwIH19LAotIHsxNiwgMHhhNjMwLCAwLCB7MHhiNSwweDEwLDB4MmQsMHhjMCwweDBiLDB4NDAsMHgwMiwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTY0MCwgMCwgezB4MjAsMHgxNCwweGM0LDB4MTAsMHg4MywweDg0LDB4MjAsMHgxMSwweDA4LDB4MzAsMHgwMiwweGMzLDB4MTAsMHg5MSwweDIwLDB4MjAgfX0sCi0gezE2LCAweGE2NTAsIDAsIHsweGMwLDB4MDgsMHgyOCwweDEyLDB4MDAsMHgwMCwweGEwLDB4ODQsMHgyMCwweDQwLDB4MDgsMHgzMCwweDAyLDB4MDQsMHgyNiwweDgzIH19LAotIHsxNiwgMHhhNjYwLCAwLCB7MHgwMCwweDIwLDB4ZDAsMHgwYiwweDMwLDB4MDIsMHhjYywweDAwLDB4YjIsMHgwMCwweDJjLDB4YzAsMHgwYiwweDAwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YTY3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhhZCwweDAwLDB4Y2YsMHg4OCwweGIyLDB4ZTggfX0sCi0gezE2LCAweGE2ODAsIDAsIHsweDBjLDB4MzAsMHgxMywweGNlLDB4YzIsMHhkMCwweDgyLDB4MzIsMHgwMCwweDBjLDB4MGUsMHgwYiwweDIwLDB4MDAsMHhjOCwweDg4IH19LAotIHsxNiwgMHhhNjkwLCAwLCB7MHhiMiwweDQwLDB4MmMsMHhiYSwweDQzLDB4MzcsMHgwMiwweGNiLDB4MDAsMHhiMywweGMwLDB4MmMsMHhmMCwweDAzLDB4ZmMsMHgxMiB9fSwKLSB7MTYsIDB4YTZhMCwgMCwgezB4ZmIsMHgwMCwweDdmLDB4ZDEsMHgwZiwweDMwLDB4MGIsMHgyYiwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE2YjAsIDAsIHsweDgwLDB4MDAsMHhlZCwweDAyLDB4ZjEsMHg0MCwweDNlLDB4NDEsMHgwZiwweGIwLDB4MjMsMHhlZCwweDAwLDB4ZTgsMHgwMSwweDNlIH19LAotIHsxNiwgMHhhNmMwLCAwLCB7MHhjOCwweDBmLDB4YjAsMHgxMywweGVjLDB4MDQsMHhkYiwweDAwLDB4M2MsMHg4MCwweDBmLDB4MDQsMHgwMywweGU0LDB4NDAsMHhmOSB9fSwKLSB7MTYsIDB4YTZkMCwgMCwgezB4MDAsMHgzYywweGMyLDB4MGUsMHhiMCwweDAzLDB4ZWUsMHgwMCwweDRiLDB4NDEsMHgzZSwweGMwLDB4MGYsMHhiMCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGE2ZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZmMsMHgwMCwweDRiLDB4MDAsMHgzMiwweDQyIH19LAotIHsxNiwgMHhhNmYwLCAwLCB7MHgwYywweGYwLDB4MDMsMHgzNiwweDgwLDB4Y2QsMHgwMCwweDMzLDB4MDAsMHg0YywweGMwLDB4ODMsMHgzYywweDA0LDB4ZjcsMHgwMCB9fSwKLSB7MTYsIDB4YTcwMCwgMCwgezB4MzIsMHg0MCwweDBjLDB4YjEsMHg0MywweDE0LDB4MDAsMHhjZCwweDgwLDB4MzMsMHhjMCwweDBjLDB4ZjAsMHgwMywweGZjLDB4MDAgfX0sCi0gezE2LCAweGE3MTAsIDAsIHsweGZmLDB4MDAsMHhiMywweGMyLDB4MGMsMHhhMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhNzIwLCAwLCB7MHg4MSwweDA0LDB4NGYsMHgwMiwweDhiLDB4ODAsMHgyMCwweDMwLDB4MDgsMHhiYywweDAyLDB4MjAsMHgxMCwweDg5LDB4MDAsMHgyMiB9fSwKLSB7MTYsIDB4YTczMCwgMCwgezB4YzAsMHgwMCwweGIwLDB4MDMsMHg2MCwweDA0LDB4YjgsMHgwMCwweGEyLDB4OTAsMHgyOCwweDhjLDB4MWEsMHgyNCwweDAyLDB4OGIgfX0sCi0gezE2LCAweGE3NDAsIDAsIHsweDgzLDB4MjIsMHhjMSwweDA4LDB4YjAsMHgwMiwweGZjLDB4MDAsMHhiMywweDYwLDB4MjAsMHhjMCwweDBkLDB4YTAsMHgwMywweGUwIH19LAotIHsxNiwgMHhhNzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDJlLDB4MDAsMHhhYiwweGMwLDB4MjIsMHg2MCB9fSwKLSB7MTYsIDB4YTc2MCwgMCwgezB4MDgsMHhiOCwweDAyLDB4MjksMHgwMCwweDg4LDB4MDEsMHgyMCwweDAwLDB4MDgsMHg5MCwweDAyLDB4MjAsMHgwMCwweGI4LDB4MDAgfX0sCi0gezE2LCAweGE3NzAsIDAsIHsweDIyLDB4YzAsMHgwOCwweGIwLDB4MDIsMHhlNCwweDAwLDB4ODEsMHgyNCwweGEyLDB4YzAsMHgwOSwweGIwLDB4NDYsMHhlYywweDAwIH19LAotIHsxNiwgMHhhNzgwLCAwLCB7MHhiOSwweDAwLDB4MjIsMHhjMCwweDA4LDB4OTAsMHgwMiwweDIwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YTc5MCwgMCwgezB4MDgsMHgwNCwweDJjLDB4MDAsMHhhMSwweDAwLDB4YTAsMHg0MSwweDA4LDB4YjAsMHgwYSwweDIwLDB4NTMsMHg4OCwweDAwLDB4MjAgfX0sCi0gezE2LCAweGE3YTAsIDAsIHsweGMwLDB4MjgsMHhhMCwweDAyLDB4NGMsMHgwMCwweGIzLDB4MDAsMHgyMCwweDAwLDB4ODgsMHgwMCwweDAyLDB4ODQsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhN2IwLCAwLCB7MHgwNCwweDIwLDB4YzAsMHgyOCwweDMwLDB4MDIsMHhjYywweDAwLDB4YjMsMHgwMiwweDYyLDB4YzAsMHgwOSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YTdjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2YywweDAwLDB4ZTksMHgwMCwweDIyLDB4MDAgfX0sCi0gezE2LCAweGE3ZDAsIDAsIHsweDBjLDB4YjAsMHgwMywweDAwLDB4MDQsMHhjOSwweDAwLDB4YjIsMHgwMCwweDBjLDB4OTAsMHgwMywweDJjLDB4MDAsMHhmMywweDAwIH19LAotIHsxNiwgMHhhN2UwLCAwLCB7MHhiMiwweGMwLDB4OGMsMHhiMCwweDAzLDB4YjQsMHgwMiwweDhmLDB4MDAsMHgyMywweGMwLDB4MDQsMHhmMCwweDAzLDB4ZWMsMHgwOCB9fSwKLSB7MTYsIDB4YTdmMCwgMCwgezB4ZjksMHgwMCwweDMzLDB4YzAsMHgwYywweDgwLDB4MDMsMHgwMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE4MDAsIDAsIHsweGEwLDB4MWQsMHhmYywweDEwLDB4ZGQsMHgwNCwweDNmLDB4MDAsMHgwZiwweGMwLDB4MjMsMHhmMCwweDkwLDB4ZmQsMHgwMCwweDJmIH19LAotIHsxNiwgMHhhODEwLCAwLCB7MHhjMCwweDBmLDB4ZTAsMHg0MywweGQwLDB4MDAsMHhmYywweDAwLDB4M2YsMHgwMCwweDhmLDB4YzAsMHgyMiwweDc0LDB4MDAsMHhmZCB9fSwKLSB7MTYsIDB4YTgyMCwgMCwgezB4MDQsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZmMsMHgwMCwweGZmLDB4MDYsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTggfX0sCi0gezE2LCAweGE4MzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZmMsMHg4MCwweGVmLDB4MjAsMHgxMSwweGMwIH19LAotIHsxNiwgMHhhODQwLCAwLCB7MHgwZSwweDcyLDB4MDMsMHhiZCwweGIwLDB4Y2YsMHgzMSwweGJmLDB4Y2MsMHgwMiwweGYwLDB4MDMsMHhmYywweGM2LDB4Y2YsMHgwMSB9fSwKLSB7MTYsIDB4YTg1MCwgMCwgezB4MGIsMHhjNSwweDBmLDB4ZjEsMHgwMywweDNjLDB4MDQsMHhlZiwweDYxLDB4MzMsMHhkOCwweDA3LDB4ZjAsMHgwMywweDM0LDB4ODAgfX0sCi0gezE2LCAweGE4NjAsIDAsIHsweGNkLDB4MzAsMHg3MywweGNjLDB4MGYsMHhlOCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhODcwLCAwLCB7MHg4MCwweDE4LDB4ZTksMHgwMCwweDg4LDB4NjksMHgyMiwweDEwLDB4MDgsMHg4YywweDAwLDB4MjEsMHg4NCwweDg4LDB4NDEsMHgyMiB9fSwKLSB7MTYsIDB4YTg4MCwgMCwgezB4MTAsMHg4OCwweDg2LDB4OTIsMHgwMSwweDAwLDB4ODgsMHg2MiwweDIyLDB4MTAsMHg0YiwweDg3LDB4MDIsMHgyMSwweGEwLDB4ODggfX0sCi0gezE2LCAweGE4OTAsIDAsIHsweDYwLDB4MjAsMHgxMCwweDBiLDB4ODYsMHhhMiwweDM1LDB4YTAsMHhhYiwweDYwLDB4YTEsMHhjNCwweDBiLDB4YjgsMHgwMiwweDIwIH19LAotIHsxNiwgMHhhOGEwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGNkLDB4YTgsMHgzMywweDQxLDB4MjAsMHhjNiB9fSwKLSB7MTYsIDB4YThiMCwgMCwgezB4NGEsMHgzMSwweDAwLDB4OGMsMHgxMCwweDkzLDB4MzMsMHgyOCwweGNjLDB4MjksMHgzNCwweDEyLDB4OGMsMHg1MCwweDkzLDB4MWMgfX0sCi0gezE2LCAweGE4YzAsIDAsIHsweDI4LDB4ODQsMHgwMSwweDIwLDB4NGEsMHg0YywweDQxLDB4ODMsMHgxMCwweDI0LDB4Y2MsMHg0YiwweDMxLDB4NDIsMHg0YywweDQwIH19LAotIHsxNiwgMHhhOGQwLCAwLCB7MHg5MSwweDEwLDB4MjQsMHhjMCwweDBiLDB4ODAsMHgwMiwweDIyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YThlMCwgMCwgezB4YzAsMHgwNSwweGE4LDB4MjAsMHg5MCwweDAyLDB4MjIsMHgwMCwweDA4LDB4ODAsMHgwMCwweDIwLDB4MzAsMHhiOCwweDA4LDB4MjYgfX0sCi0gezE2LCAweGE4ZjAsIDAsIHsweDAwLDB4MDEsMHg4MCwweDgyLDB4MjAsMHgyMCwweDE4LDB4MDgsMHg0MiwweDQwLDB4MDMsMHg5MSwweDAyLDB4NjAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhhOTAwLCAwLCB7MHgwMSwweGE2LDB4MDAsMHgwYiwweDgwLDB4MDAsMHg2YywweDEwLDB4YmIsMHgwMSwweDI2LDB4YzAsMHg0YiwweDkwLDB4MGEsMHgzMCB9fSwKLSB7MTYsIDB4YTkxMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhmZCwweDAwLDB4ZmQsMHg0MSwweDMzLDB4YTEgfX0sCi0gezE2LCAweGE5MjAsIDAsIHsweDBlLDB4ZDIsMHgwMywweGI1LDB4MDIsMHhkZiwweDQyLDB4M2IsMHgwMSwweDBmLDB4ZDQsMHg0MywweGI1LDB4MDAsMHhjZCwweDQwIH19LAotIHsxNiwgMHhhOTMwLCAwLCB7MHgxYiwweGM0LDB4MGQsMHg3OCwweDAzLDB4NzAsMHgwMiwweGVjLDB4MDAsMHgxNywweGExLDB4MGYsMHhlOCwweDBiLDB4MmMsMHgwMiB9fSwKLSB7MTYsIDB4YTk0MCwgMCwgezB4ZDksMHg5MCwweDI2LDB4YzAsMHgwZiwweGFjLDB4MDMsMHgwMCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGE5NTAsIDAsIHsweGUwLDB4MDEsMHhiOCwweDAwLDB4ZWUsMHgwMCwweDFmLDB4NjQsMHg0ZiwweGUwLDB4MDMsMHhkOCwweDEwLDB4YzQsMHgxOCwweDMzIH19LAotIHsxNiwgMHhhOTYwLCAwLCB7MHhjMCwweDBjLDB4YTAsMHhhMSwweGI4LDB4MDksMHhlNiwweDA5LDB4MzYsMHgyMiwweDBmLDB4ODgsMHgyMywweGJjLDB4MDAsMHhmYiB9fSwKLSB7MTYsIDB4YTk3MCwgMCwgezB4MDAsMHgzYiwweDY0LDB4MGYsMHhkOSwweDAzLDB4OWMsMHgwMCwweGUzLDB4MDQsMHgzYiwweGMwLDB4MGYsMHhmNCwweDAzLDB4ZjggfX0sCi0gezE2LCAweGE5ODAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4OGQsMHgwMCwweGM5LDB4NDAsMHhiNiwweDgwIH19LAotIHsxNiwgMHhhOTkwLCAwLCB7MHgwZiwweDEwLDB4MDMsMHhhNywweDIwLDB4ZmIsMHg1MCwweGI2LDB4MDgsMHg0YywweDE0LDB4MDMsMHg2NSwweDIyLDB4ZDksMHg0MCB9fSwKLSB7MTYsIDB4YTlhMCwgMCwgezB4YjYsMHg4MCwweDBlLDB4YTAsMHgwYiwweDAwLDB4MDAsMHhkOCwweDAwLDB4NzYsMHg4MiwweDI4LDB4YTAsMHgyMywweDY0LDB4MDAgfX0sCi0gezE2LCAweGE5YjAsIDAsIHsweGM5LDB4MDQsMHgxMiwweGMwLDB4OGUsMHg4MCwweDAzLDB4OTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhOWMwLCAwLCB7MHhjOCwweDA1LDB4MmIsMHg2MCwweDhhLDB4MDksMHgyMCwweDUwLDB4MDgsMHhhMCwweDIzLDB4ZTksMHgwMCwweGI4LDB4YzAsMHgyMiB9fSwKLSB7MTYsIDB4YTlkMCwgMCwgezB4ZjAsMHgwOCwweGFjLDB4MDIsMHgyOCwweDA0LDB4OGEsMHhjMiwweDIyLDB4NTAsMHgwOCwweDkwLDB4MDYsMHgyYywweDAwLDB4OGIgfX0sCi0gezE2LCAweGE5ZTAsIDAsIHsweDA0LDB4MjIsMHg1MSwweDA4LDB4OTQsMHgwMiwweGU0LDB4MDQsMHg4YiwweDA0LDB4MzcsMHhjMCwweDA4LDB4MTgsMHg0MiwweDI2IH19LAotIHsxNiwgMHhhOWYwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwNCwweDRiLDB4MDAsMHg4MiwweGM4LDB4MjQsMHg0MyB9fSwKLSB7MTYsIDB4YWEwMCwgMCwgezB4MGIsMHgyNiwweDBhLDB4ODgsMHgwMCwweGIwLDB4ODAsMHgyMiwweGU0LDB4MGIsMHgyMCwweDQyLDB4NjksMHgwMCwweGEyLDB4OTAgfX0sCi0gezE2LCAweGFhMTAsIDAsIHsweDI4LDB4NDAsMHhlOCwweDEwLDB4MDIsMHgwYywweDAwLDB4YmIsMHgwMCwweDI4LDB4NTAsMHg4OCwweDkwLDB4ODIsMHhjNCwweDAxIH19LAotIHsxNiwgMHhhYTIwLCAwLCB7MHg4MywweDAwLDB4MjAsMHhjMCwweDBhLDB4MTAsMHgwMiwweGJhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWEzMCwgMCwgezB4MjAsMHgxMCwweDRlLDB4ODAsMHg4MSwweDAwLDB4MjEsMHhhOCwweDA4LDB4NTgsMHgwMiwweGQ2LDB4MDEsMHhiNywweDkwLDB4NjggfX0sCi0gezE2LCAweGFhNDAsIDAsIHsweDIwLDB4MDMsMHg1OSwweDgyLDB4NTYsMHgwMCwweGE1LDB4ODQsMHgyZCwweGEyLDB4MTgsMHg2OSwweDIyLDB4MDIsMHgwMCwweDM0IH19LAotIHsxNiwgMHhhYTUwLCAwLCB7MHg4MCwweDI5LDB4YTgsMHgwOCwweDY4LDB4MDYsMHhjNiwweDE0LDB4ODUsMHg4MiwweDI1LDB4ZTAsMHgwOCwweDU4LDB4ODIsMHgxYyB9fSwKLSB7MTYsIDB4YWE2MCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHg0OCwweDAwLDB4YzIsMHhmMCwweDM0LDB4NDAgfX0sCi0gezE2LCAweGFhNzAsIDAsIHsweDBmLDB4MjAsMHgwMywweDg4LDB4ODAsMHhmOCwweDEwLDB4MzAsMHhjMCwweDI3LDB4MjEsMHgwYiwweDQ4LDB4ODAsMHhlYSwweDIwIH19LAotIHsxNiwgMHhhYTgwLCAwLCB7MHgzOCwweDAwLDB4MGMsMHgwMCwweDEyLDB4MGMsMHgwOCwweDczLDB4MDAsMHhiOCwweDQwLDB4MGMsMHgxMiwweDIzLDB4NGMsMHgwMiB9fSwKLSB7MTYsIDB4YWE5MCwgMCwgezB4NDMsMHgzNCwweDMwLDB4YzAsMHgwZSwweDExLDB4MDMsMHg5MiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFhYTAsIDAsIHsweDQwLDB4MTUsMHhhYywweDkwLDB4ZjksMHgwMSwweDJlLDB4ODgsMHg0YiwweDkwLDB4MTEsMHg2NCwweDAwLDB4ZmIsMHgxMCwweDMyIH19LAotIHsxNiwgMHhhYWIwLCAwLCB7MHgwMCwweDAwLDB4OTEsMHgwMywweGE0LDB4MDAsMHhjOSwweDAwLDB4MzIsMHhjNCwweDRkLDB4YjAsMHg0MywweGUwLDB4MDQsMHhjOCB9fSwKLSB7MTYsIDB4YWFjMCwgMCwgezB4MDAsMHgzNiwweDg5LDB4MGYsMHhhOCwweDAzLDB4ZWQsMHgwMCwweGY5LDB4MTQsMHgzZSwweGMwLDB4MGYsMHgxMCwweDQzLDB4ZDAgfX0sCi0gezE2LCAweGFhZDAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4ZTgsMHgwMCwweGM4LDB4MDAsMHgzYSwweDAwIH19LAotIHsxNiwgMHhhYWUwLCAwLCB7MHgwYywweDAwLDB4NTMsMHhhMCwweDAwLDB4ZTgsMHgwMSwweDMyLDB4MDEsMHgwZSwweDgwLDB4NTMsMHgyMCwweDEwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YWFmMCwgMCwgezB4M2EsMHg0MCwweDBjLDB4OTAsMHgwMywweDIwLDB4MTAsMHhlOCwweDA0LDB4YjYsMHgwMCwweDg0LDB4ODAsMHgwMywweDJkLDB4MTIgfX0sCi0gezE2LCAweGFiMDAsIDAsIHsweGNiLDB4MDAsMHgyZSwweGNhLDB4MDQsMHg5MCwweDAzLDB4ZWEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYjEwLCAwLCB7MHg0YywweDE5LDB4OGMsMHgwMCwweDg3LDB4MDIsMHgyMSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MGMsMHgwMCwweDgzLDB4MDAsMHgyMSB9fSwKLSB7MTYsIDB4YWIyMCwgMCwgezB4YzAsMHgwOCwweDMwLDB4NjIsMHg0YywweDA0LDB4ODMsMHgwMCwweDIxLDB4ODAsMHg0OCwweGUwLDB4MTIsMHgzYywweDAwLDB4ODcgfX0sCi0gezE2LCAweGFiMzAsIDAsIHsweDAwLDB4MjEsMHhjMCwweDA4LDB4NzAsMHgwMiwweDFjLDB4MDAsMHg4NSwweDAxLDB4MjQsMHhkMCwweDBhLDB4NTAsMHgwMiwweGYyIH19LAotIHsxNiwgMHhhYjQwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDlhLDB4MDAsMHg4MCwweDgwLDB4MjgsMHgyMCB9fSwKLSB7MTYsIDB4YWI1MCwgMCwgezB4MDgsMHg0YywweDIyLDB4ZDIsMHgwMCwweGE0LDB4ODAsMHgyNCwweDMwLDB4MGIsMHg0OCwweDAyLDB4NTIsMHgwMCwweDg0LDB4YzAgfX0sCi0gezE2LCAweGFiNjAsIDAsIHsweDIxLDB4MjAsMHgwOSwweDQ4LDB4NjgsMHgxMywweDAwLDB4YTQsMHg4MCwweDYwLDB4MjAsMHgwOSwweDA4LDB4MDIsMHg1NiwweDAwIH19LAotIHsxNiwgMHhhYjcwLCAwLCB7MHg5NywweDgwLDB4MmQsMHhlMCwweDg4LDB4NTgsMHgwMiwweGUwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWI4MCwgMCwgezB4NmMsMHgwNCwweGNjLDB4MDAsMHg4MywweDgwLDB4MjAsMHhkOCwweDA4LDB4MzAsMHgwMiwweDRjLDB4NDAsMHg4MywweDAwLDB4MjQgfX0sCi0gezE2LCAweGFiOTAsIDAsIHsweGQxLDB4MDksMHhiOSwweDQyLDB4NGUsMHgwMCwweDgzLDB4MDAsMHgyMCwweGMxLDB4ODksMHgzMCwweDQyLDB4MGMsMHgwMCwweDgzIH19LAotIHsxNiwgMHhhYmEwLCAwLCB7MHhmMCwweGEwLDB4ZDksMHgxOSwweDM2LDB4MjIsMHg2NiwweDA2LDB4OTEsMHgwMCwweDBjLDB4YzEsMHgwYSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YWJiMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhlOCwweDAyLDB4Y2EsMHhhNSwweDJhLDB4OTEgfX0sCi0gezE2LCAweGFiYzAsIDAsIHsweDI4LDB4YTgsMHgwMywweGVhLDB4MDIsMHhhYSwweDAwLDB4YjYsMHhhMCwweDBmLDB4YTAsMHgwYSwweDJhLDB4OTIsMHhjYSwweDgzIH19LAotIHsxNiwgMHhhYmQwLCAwLCB7MHhiYSwweDgwLDB4MjksMHhhMCwweDAzLDB4MmIsMHgwMCwweGVhLDB4NDAsMHg2NiwweDkwLDB4MmQsMHhlNCwweDBiLDB4NmEsMHg4MCB9fSwKLSB7MTYsIDB4YWJlMCwgMCwgezB4ZGEsMHgwMCwweDNlLDB4ODAsMHgwYywweGUwLDB4MDMsMHhmYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFiZjAsIDAsIHsweDQ4LDB4MDEsMHg4MCwweDAwLDB4ZmMsMHgwMCwweDNkLDB4MDAsMHgwZiwweGMwLDB4MDMsMHhiMCwweDE0LDB4ZmMsMHgwMCwweDNiIH19LAotIHsxNiwgMHhhYzAwLCAwLCB7MHgxMiwweDBlLDB4YzAsMHg0MywweGIxLDB4MTQsMHhmYywweDAwLDB4M2QsMHgwMCwweDBlLDB4YzAsMHgwMywweGYwLDB4MjAsMHhmNCB9fSwKLSB7MTYsIDB4YWMxMCwgMCwgezB4MDAsMHgzMSwweDAwLDB4MGUsMHg0NCwweDEzLDB4YTAsMHgwMCwweGU4LDB4MDYsMHgzNiwweDAwLDB4NGYsMHg4MCwweDEzLDB4ZDIgfX0sCi0gezE2LCAweGFjMjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTQsMHgwMCwweGQxLDB4MDAsMHgzNiwweDYwIH19LAotIHsxNiwgMHhhYzMwLCAwLCB7MHgxYywweDE4LDB4MGIsMHg0NiwweDAwLDB4ZDksMHg4MCwweDMwLDB4NDAsMHgyYywweDk4LDB4MDUsMHg4NiwweDAwLDB4YzEsMHg4MCB9fSwKLSB7MTYsIDB4YWM0MCwgMCwgezB4OTIsMHg0MCwweDBkLDB4MTAsMHgwMywweDQ0LDB4MDIsMHg4OSwweDAwLDB4MzIsMHg3MCwweDBjLDB4OTgsMHgwMSwweDI0LDB4MDAgfX0sCi0gezE2LCAweGFjNTAsIDAsIHsweGM5LDB4MDQsMHgzMCwweDQwLDB4MGMsMHg5MCwweDAzLDB4YzIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhYzYwLCAwLCB7MHg4MCwweDA0LDB4NjQsMHgwMCwweDg5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHg5NCwweDAyLDB4MjQsMHg4MCwweDg5LDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4YWM3MCwgMCwgezB4NDAsMHg0OCwweDkxLDB4MDIsMHgyNCwweDAwLDB4ZDksMHg5MCwweDIyLDB4NDEsMHgwOCwweDkwLDB4MTIsMHgyNCwweDEwLDB4ODkgfX0sCi0gezE2LCAweGFjODAsIDAsIHsweDAwLDB4MzIsMHg0MCwweDA4LDB4OTUsMHgxMiwweDI0LDB4MDIsMHg4MSwweDAwLDB4YTIsMHg0MSwweDBkLDB4OTAsMHg0MiwweGUwIH19LAotIHsxNiwgMHhhYzkwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzgsMHgwNSwweDI0LDB4MDIsMHg5ZCwweDAwLDB4MjMsMHg0NCB9fSwKLSB7MTYsIDB4YWNhMCwgMCwgezB4MDgsMHhkMiwweDA2LDB4NzQsMHg4MCwweGI1LDB4MjAsMHgyMywweDQwLDB4MWEsMHhkMCwweDA2LDB4MzUsMHg5MCwweDhkLDB4MDIgfX0sCi0gezE2LCAweGFjYjAsIDAsIHsweDJmLDB4NDQsMHgxOSwweGQwLDB4MDIsMHg3NCwweDAwLDB4OGQsMHgwMCwweDYzLDB4NDAsMHgxOCwweGQ0LDB4MDIsMHhhNCwweDExIH19LAotIHsxNiwgMHhhY2MwLCAwLCB7MHg4OSwweDAwLDB4MjIsMHg0MCwweDA4LDB4YjAsMHgwMiwweGM2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWNkMCwgMCwgezB4MjgsMHgxNCwweDA0LDB4ODAsMHg4NSwweDIwLDB4MjEsMHg2OCwweDA4LDB4NTIsMHgwMiwweDE0LDB4ODAsMHhhNSwweDIwLDB4YTEgfX0sCi0gezE2LCAweGFjZTAsIDAsIHsweDQ4LDB4MGEsMHg3MiwweDM4LDB4MTQsMHg4MCwweDk1LDB4MjQsMHgyZCwweDQ4LDB4MjgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDg1IH19LAotIHsxNiwgMHhhY2YwLCAwLCB7MHgyMCwweDIxLDB4NDgsMHgwOCwweDUyLDB4MDYsMHg4NCwweDgwLDB4ODEsMHgyMCwweDIwLDB4NGEsMHgwOSwweDEwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YWQwMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM4LDB4MGQsMHg2MSwweDQwLDB4ZDgsMHg1MCwweGIyLDB4MTQgfX0sCi0gezE2LCAweGFkMTAsIDAsIHsweDI4LDB4YTAsMHgwMywweDYxLDB4NDAsMHhmOCwweDUwLDB4MzIsMHg5NCwweDRlLDB4ODUsMHgwNCwweDIxLDB4NDIsMHhjOCwweDUwIH19LAotIHsxNiwgMHhhZDIwLCAwLCB7MHgzYywweDE0LDB4MGQsMHg4MCwweDAzLDB4NjEsMHg0MCwweDg4LDB4NTAsMHhiMiwweDE0LDB4MmMsMHhjNSwweDA5LDB4YTEsMHg0MCB9fSwKLSB7MTYsIDB4YWQzMCwgMCwgezB4YzgsMHg1MCwweDMyLDB4MWMsMHgwYywweDgwLDB4MDMsMHhlZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFkNDAsIDAsIHsweDk4LDB4MTUsMHhlNCwweDQwLDB4ZjksMHgxMCwweDNhLDB4NDQsMHgwZiwweDkxLDB4MDMsMHhlNCwweDQwLDB4ZDksMHgxNCwweDNlIH19LAotIHsxNiwgMHhhZDUwLCAwLCB7MHg0NCwweDBkLDB4OTEsMHg0MywweDY0LDB4NDAsMHhlOSwweDEwLDB4MzIsMHg0NCwweDA3LDB4OTMsMHhjMywweGU0LDB4NTAsMHhkMSB9fSwKLSB7MTYsIDB4YWQ2MCwgMCwgezB4MTAsMHg3ZSwweDQ0LDB4MDMsMHg5MSwweDAxLDB4NTQsMHg0NCwweGZkLDB4MTQsMHgzZSwweDQwLDB4MGYsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGFkNzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHg4MCwweGRkLDB4YTAsMHgzMywweDY4IH19LAotIHsxNiwgMHhhZDgwLCAwLCB7MHgxZSwweGRhLDB4MDMsMHgzNiwweDkwLDB4Y2QsMHhhMCwweDNiLDB4NjgsMHgwYSwweGQ4LDB4MjMsMHg3NiwweDBjLDB4ZWQsMHg4MCB9fSwKLSB7MTYsIDB4YWQ5MCwgMCwgezB4MmIsMHg2MiwweDBiLDB4OTksMHgwMiwweGE3LDB4ODAsMHhmOSwweGUxLDB4MzcsMHg2OCwweDBjLDB4ZGEsMHgwMywweDI3LDB4ODAgfX0sCi0gezE2LCAweGFkYTAsIDAsIHsweGM5LDB4YTIsMHgyMiwweDY4LDB4NGMsMHg1MCwweDAzLDB4YzYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZGIwLCAwLCB7MHgzOCwweDE4LDB4ZTEsMHg0MCwweDg4LDB4NTAsMHgyMiwweDE0LDB4MDgsMHg4MCwweDIyLDB4NjAsMHgwMCwweDg4LDB4MDQsMHgyMiB9fSwKLSB7MTYsIDB4YWRjMCwgMCwgezB4MDAsMHgwOCwweDA0LDB4MjYsMHgwMSwweDAwLDB4ODgsMHg1MCwweDIyLDB4MTAsMHgwOCwweGFmLDB4MDIsMHgyMywweDAwLDB4ODggfX0sCi0gezE2LCAweGFkZDAsIDAsIHsweGMwLDB4YTAsMHgxMCwweDg4LDB4ODQsMHgwMiwweDIzLDB4ODAsMHhhMCwweDQwLDB4MmEsMHgxMCwweDA4LDB4ODAsMHgxMiwweDRlIH19LAotIHsxNiwgMHhhZGUwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDg0LDB4MDAsMHg4MSwweDAxLDB4MjAsMHg0MCB9fSwKLSB7MTYsIDB4YWRmMCwgMCwgezB4MGEsMHgxNCwweDAyLDB4NDUsMHgwMCwweDgxLDB4NDEsMHgyYywweDUwLDB4MGIsMHgxNCwweDAyLDB4MDUsMHgwNCwweGExLDB4MDAgfX0sCi0gezE2LCAweGFlMDAsIDAsIHsweDI4LDB4NDAsMHg4MiwweDEwLDB4MDIsMHg4NCwweDQwLDB4YTEsMHgzMiwweDgwLDB4NTAsMHgwOSwweDE0LDB4MDIsMHgwNCwweGM0IH19LAotIHsxNiwgMHhhZTEwLCAwLCB7MHg5MSwweDEwLDB4NjQsMHg0NCwweDI4LDB4MTAsMHgwMiwweGQyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWUyMCwgMCwgezB4MTgsMHgwNCwweGFjLDB4MDIsMHg4MSwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgwMiwweDQ0LDB4MDIsMHg4OSwweDAyLDB4MjYgfX0sCi0gezE2LCAweGFlMzAsIDAsIHsweDQxLDB4MDksMHg5MCwweDBhLDB4MjQsMHgwYywweDg5LDB4MDQsMHgyMiwweDUwLDB4MDgsMHg5MCwweDI2LDB4MjQsMHgwMCwweDg5IH19LAotIHsxNiwgMHhhZTQwLCAwLCB7MHgwMCwweDIyLDB4NDEsMHgwOSwweDEwLDB4MjIsMHgyNCwweDQwLDB4YjksMHgwMSwweDJlLDB4NDAsMHgwOCwweDkwLDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YWU1MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEwLDB4MTUsMHhlNCwweDEwLDB4ODksMHgwMCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGFlNjAsIDAsIHsweDBhLDB4OTAsMHgwYiwweDI0LDB4MTAsMHg4OSwweDAwLDB4MWUsMHg0MCwweDliLDB4OTAsMHgwMiwweDI0LDB4MTAsMHgyOSwweDAwIH19LAotIHsxNiwgMHhhZTcwLCAwLCB7MHgxYSwweDQwLDB4MGUsMHg5NCwweDQxLDB4YTQsMHgwMCwweDI5LDB4MDAsMHgxMiwweDQwLDB4MDUsMHg5MCwweDQxLDB4MjYsMHgwMCB9fSwKLSB7MTYsIDB4YWU4MCwgMCwgezB4ZDksMHgwMCwweDI0LDB4NDAsMHgwYywweDkwLDB4MDMsMHhlOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFlOTAsIDAsIHsweDQ4LDB4MDEsMHhhNCwweDAyLDB4YTksMHgwMCwweGJjLDB4NDAsMHgwZiwweDkwLDB4MDMsMHhhNCwweDA0LDB4ZjksMHgwMCwweDNhIH19LAotIHsxNiwgMHhhZWEwLCAwLCB7MHg0MSwweDBlLDB4OTAsMHg4MywweDg0LDB4MDAsMHhmOSwweDAwLDB4M2MsMHg0MCwweDBlLDB4OTAsMHgwMiwweGM0LDB4MDgsMHhlOSB9fSwKLSB7MTYsIDB4YWViMCwgMCwgezB4MDAsMHgzYSwweDQwLDB4MmUsMHg5MCwweDBiLDB4ZTYsMHgwMCwweGUxLDB4MDQsMHgzYSwweDQwLDB4MGYsMHg5MiwweDAzLDB4NWEgfX0sCi0gezE2LCAweGFlYzAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4YTAsMHgyMCwweGQ4LDB4MDAsMHgzNiwweDAyIH19LAotIHsxNiwgMHhhZWQwLCAwLCB7MHgwZSwweDAwLDB4YTMsMHhlMCwweDE4LDB4YzAsMHgwMCwweDMwLDB4MDMsMHgwZiwweDgwLDB4MzMsMHgyMCwweDAwLDB4NDAsMHgwMCB9fSwKLSB7MTYsIDB4YWVlMCwgMCwgezB4MzIsMHgwZCwweDBmLDB4MDQsMHgwYiwweGEwLDB4MDIsMHhjOCwweDAyLDB4MzIsMHgwMiwweDhjLDB4ODIsMHgwMywweDIwLDB4MDIgfX0sCi0gezE2LCAweGFlZjAsIDAsIHsweGM4LDB4MDQsMHgxNiwweDAwLDB4NGUsMHg4MCwweDAxLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhhZjAwLCAwLCB7MHgyOCwweDA1LDB4M2IsMHgwMCwweDhlLDB4ZDgsMHgyMywweDgwLDB4MDgsMHhlMCwweDAyLDB4ZjgsMHg4MCwweDhlLDB4MTAsMHgyMyB9fSwKLSB7MTYsIDB4YWYxMCwgMCwgezB4YTIsMHgwYiwweGUwLDB4ODIsMHg3YSwweDIwLDB4OGUsMHgzMCwweDIzLDB4YTEsMHgwYiwweGUwLDB4MDIsMHgyOCwweDAwLDB4OGUgfX0sCi0gezE2LCAweGFmMjAsIDAsIHsweDAwLDB4MmIsMHg4OCwweDA4LDB4ZTQsMHg0MiwweDM4LDB4MDAsMHg4ZSwweDA0LDB4MjMsMHg4MCwweDA4LDB4YTAsMHgwMiwweDBhIH19LAotIHsxNiwgMHhhZjMwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDZmLDB4NDAsMHg5MywweGM2LDB4MjQsMHg0MCB9fSwKLSB7MTYsIDB4YWY0MCwgMCwgezB4MGEsMHgzOCwweDAyLDB4Y2MsMHgwMCwweDgzLDB4MDEsMHhhYywweGYwLDB4MGIsMHhiNCwweDAyLDB4NGMsMHgwNCwweGEzLDB4ODAgfX0sCi0gezE2LCAweGFmNTAsIDAsIHsweDI4LDB4ZDAsMHg0YiwweDMwLDB4MDIsMHg0YywweDAwLDB4YWIsMHgwNCwweDJhLDB4YzAsMHgyYSwweDMwLDB4MGEsMHhhYywweDEwIH19LAotIHsxNiwgMHhhZjYwLCAwLCB7MHg5MywweDAwLDB4MjAsMHhjMSwweDBhLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YWY3MCwgMCwgezB4ODAsMHgxMSwweDFjLDB4MDAsMHg4MiwweDAwLDB4MjEsMHg0MiwweDg4LDB4NzQsMHgwNiwweGRjLDB4MGIsMHg4NiwweDAyLDB4MmQgfX0sCi0gezE2LCAweGFmODAsIDAsIHsweDgwLDB4MGIsMHg3MCwweDJhLDB4NTgsMHgwMCwweGE2LDB4MDAsMHhhOSwweGMwLDB4MGIsMHg3MCwweDAyLDB4NWMsMHg4OCwweGE3IH19LAotIHsxNiwgMHhhZjkwLCAwLCB7MHgyMCwweDI5LDB4YzAsMHgwYSwweDcwLDB4MDIsMHg5YywweDEwLDB4OTcsMHgyMCwweGExLDB4YzgsMHgwOCwweGQ4LDB4MDIsMHgyOCB9fSwKLSB7MTYsIDB4YWZhMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDg4LDB4MDgsMHgwZSwweDAwLDB4ZDcsMHg4MCwweDM3LDB4NjAgfX0sCi0gezE2LCAweGFmYjAsIDAsIHsweDBlLDB4NjgsMHgxMywweGZlLDB4MDAsMHhjZiwweDgwLDB4M2QsMHhlMCwweDBmLDB4NzgsMHgyMywweDFlLDB4MDAsMHhlZiwweDgyIH19LAotIHsxNiwgMHhhZmMwLCAwLCB7MHgzMSwweGUwLDB4MGYsMHgzYywweGMzLDB4N2UsMHgwNCwweGVmLDB4ODAsMHhiMSwweGUwLDB4MGUsMHhlOCwweDAzLDB4YmUsMHg4MCB9fSwKLSB7MTYsIDB4YWZkMCwgMCwgezB4ZDcsMHhlMCwweDMzLDB4ZWEsMHgwZSwweDc4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGFmZTAsIDAsIHsweDA4LDB4MTUsMHhhYywweDAwLDB4ZmEsMHgwMSwweDNlLDB4MDAsMHgwZiwweGIwLDB4MDMsMHhlMCwweDA0LDB4ZjgsMHgwMCwweDMyIH19LAotIHsxNiwgMHhhZmYwLCAwLCB7MHg4MCwweDBmLDB4ODAsMHg0MywweGFjLDB4MGEsMHhkOCwweDAwLDB4MzYsMHg0MCwweDBmLDB4YjAsMHgwMywweDJjLDB4MGMsMHhkYiB9fSwKLSB7MTYsIDB4YjAwMCwgMCwgezB4MDAsMHgyNiwweGMxLDB4MDksMHhhMCwweDEzLDB4NmMsMHg0MCwweGViLDB4NDAsMHgzYSwweGRjLDB4MGYsMHg5MCwweDBiLDB4YzIgfX0sCi0gezE2LCAweGIwMTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA0LDB4YmUsMHgwMCwweGNmLDB4ODEsMHgzMywweGU5IH19LAotIHsxNiwgMHhiMDIwLCAwLCB7MHgxZiwweGY5LDB4MTMsMHhiNiwweDUwLDB4ZWYsMHg4MCwweDFmLDB4ZTQsMHgwNCwweGM4LDB4MDMsMHg3ZSwweDAwLDB4NmQsMHg4MSB9fSwKLSB7MTYsIDB4YjAzMCwgMCwgezB4MzMsMHg2NCwweDBjLDB4ZjgsMHgxYiwweDNlLDB4MjAsMHgyZiwweDg4LDB4OTMsMHhlOCwweDBmLDB4ZmIsMHgwMywweDJlLDB4ODAgfX0sCi0gezE2LCAweGIwNDAsIDAsIHsweGNmLDB4YzAsMHg3MywweGUwLDB4MmMsMHhkOSwweDAzLDB4ZDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMDUwLCAwLCB7MHhhOCwweDE4LDB4OTAsMHg0MiwweDg5LDB4MTgsMHgyMSwweGMwLDB4MWYsMHg3MSwweDAyLDB4MTQsMHhjMCwweGY3LDB4MjAsMHgyNyB9fSwKLSB7MTYsIDB4YjA2MCwgMCwgezB4NDAsMHg0MCwweDcxLDB4MTIsMHgxOCwweDAwLDB4ODcsMHgyMCwweDIxLDB4ODAsMHg0OCwweDcxLDB4MDIsMHgzYywweDA4LDB4ODcgfX0sCi0gezE2LCAweGIwNzAsIDAsIHsweDIwLDB4MjEsMHg4MiwweDBiLDB4NjEsMHhhMiwweDFlLDB4NDQsMHhkZiwweDAxLDB4MzEsMHhjOCwweDA4LDB4NzMsMHgwMiwweGVhIH19LAotIHsxNiwgMHhiMDgwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDhjLDB4MDAsMHg4NywweDAwLDB4MjEsMHhjOCB9fSwKLSB7MTYsIDB4YjA5MCwgMCwgezB4MGIsMHg3MCwweDAyLDB4OWMsMHgwOSwweDg3LDB4MDIsMHgyZCwweDgyLDB4OTksMHg0MCwweDAyLDB4MDQsMHgwMCwweGE1LDB4MDkgfX0sCi0gezE2LCAweGIwYTAsIDAsIHsweDIxLDB4NDAsMHgxOSwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwNSwweDI1LDB4NDgsMHg0YiwweDcyLDB4MDIsMHgwYywweDQwIH19LAotIHsxNiwgMHhiMGIwLCAwLCB7MHg4NywweDAwLDB4YTEsMHhjMCwweDQ4LDB4NTAsMHgwMiwweGM0LDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjBjMCwgMCwgezB4NjgsMHgwNCwweGMxLDB4MjAsMHg4OSwweDRjLDB4YTAsMHhiNCwweDBhLDB4MzgsMHgwMiwweDIyLDB4MDAsMHhhMSwweGQwLDB4MjQgfX0sCi0gezE2LCAweGIwZDAsIDAsIHsweDMwLDB4MDksMHg4MCwweDAyLDB4MjcsMHg0NCwweDgxLDB4YzYsMHgyMiwweDE0LDB4MDksMHgzZCwweDJhLDB4MGYsMHgwMiwweDhiIH19LAotIHsxNiwgMHhiMGUwLCAwLCB7MHhjMCwweGE2LDB4MjAsMHgwYiwweDI0LDB4MDAsMHgwYywweDEwLDB4OTMsMHg4MSwweDIwLDB4YzAsMHg0OCwweDMwLDB4MDYsMHhkOCB9fSwKLSB7MTYsIDB4YjBmMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MTUsMHhhMSwweDAwLDB4ODksMHhjMSwweDMyLDB4ZDEgfX0sCi0gezE2LCAweGIxMDAsIDAsIHsweDAzLDB4YmMsMHgwMywweGE5LDB4MjAsMHg4OSwweDQxLDB4M2UsMHg2MCwweDg1LDB4YmMsMHg4YiwweDI1LDB4NDAsMHhlYiwweDQxIH19LAotIHsxNiwgMHhiMTEwLCAwLCB7MHhhMiwweGEwLDB4MGQsMHhmMCwweDEzLDB4M2UsMHgyMCwweGNmLDB4OTAsMHgzNiwweDMwLDB4NGYsMHhiYywweDBiLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YjEyMCwgMCwgezB4Y2YsMHg4MCwweDMzLDB4YzEsMHgwYywweGIxLDB4MDMsMHhlYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIxMzAsIDAsIHsweDgwLDB4MDAsMHhlZCwweDAwLDB4ZjgsMHgwMSwweDNjLDB4ZDAsMHgwZiwweGIzLDB4MDMsMHhlOCwweDgyLDB4ZDgsMHgyMCwweDM2IH19LAotIHsxNiwgMHhiMTQwLCAwLCB7MHg4MCwweDJlLDB4YjIsMHgxMywweGUxLDB4MDAsMHhmYSwweDAwLDB4N2UsMHhjOCwweDJlLDB4YjAsMHgwMywweGVjLDB4ODAsMHhkYiB9fSwKLSB7MTYsIDB4YjE1MCwgMCwgezB4MTAsMHgzYSwweDA4LDB4NGYsMHhiMiwweDIzLDB4Y2MsMHgwMiwweGZiLDB4MTAsMHgzYSwweGMwLDB4MGYsMHg5MCwweDAzLDB4ZTQgfX0sCi0gezE2LCAweGIxNjAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhMCwweDEwLDB4ZjAsMHgwMCwweGNkLDB4MTAsMHgzMywweDQyIH19LAotIHsxNiwgMHhiMTcwLCAwLCB7MHgwYywweGNhLDB4MjMsMHg3YywweDAwLDB4Y2YsMHgwMCwweDMzLDB4NjIsMHgwNiwweGYwLDB4MDEsMHgzYSwweDAwLDB4Y2YsMHgwOCB9fSwKLSB7MTYsIDB4YjE4MCwgMCwgezB4MzMsMHg4MCwweDFjLDB4ZjAsMHg4MSwweDNjLDB4MDAsMHhmZiwweDAwLDB4MzMsMHhhMCwweDBjLDB4Y2EsMHgwMSwweGZjLDB4MDQgfX0sCi0gezE2LCAweGIxOTAsIDAsIHsweGNmLDB4MDAsMHgzZiwweGMwLDB4MGYsMHhmMCwweDAzLDB4YzAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMWEwLCAwLCB7MHhhMSwweDA0LDB4NmQsMHg0MCwweDg4LDB4NDgsMHhhMiwweDMxLDB4MDgsMHgxMCwweDAyLDB4MjAsMHgxMCwweDg4LDB4YjQsMHgyMiB9fSwKLSB7MTYsIDB4YjFiMCwgMCwgezB4YTAsMHgwOCwweDgwLDB4MDAsMHg2YSwweDg0LDB4ODgsMHgyMCwweDIyLDB4NTIsMHgwOCwweGIwLDB4MGEsMHgyYywweDEwLDB4YmIgfX0sCi0gezE2LCAweGIxYzAsIDAsIHsweDAwLDB4MzIsMHhiMywweDg4LDB4ODAsMHgwMiwweGVjLDB4MDAsMHhkYiwweDAwLDB4MmUsMHhjMCwweDBiLDB4OTAsMHgxMiwweGUxIH19LAotIHsxNiwgMHhiMWQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweDAwLDB4MTAsMHg4YSwweDAxLDB4MjIsMHhhMCB9fSwKLSB7MTYsIDB4YjFlMCwgMCwgezB4MDgsMHhiMCwweDQyLDB4NjAsMHgyMCwweDgwLDB4MDAsMHgyMCwweDQ0LDB4MWEsMHg4MCwweDFhLDB4ZTQsMHg0MiwweGEwLDB4MDYgfX0sCi0gezE2LCAweGIxZjAsIDAsIHsweDIyLDB4MDAsMHg3OCwweDMwLDB4MDIsMHhhYywweDAwLDB4YmIsMHgwMCwweGEyLDB4NDQsMHgwOCwweGIwLDB4MTIsMHhlYywweDAwIH19LAotIHsxNiwgMHhiMjAwLCAwLCB7MHg4YiwweDAwLDB4MGUsMHhjMCwweDBiLDB4OTAsMHgwMiwweGUwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjIxMCwgMCwgezB4MDgsMHgxNCwweDAwLDB4MDgsMHg4MCwweDAwLDB4MjAsMHg4MSwweDA4LDB4MzAsMHgwMiwweDQwLDB4MTIsMHg4MCwweDAwLDB4YTAgfX0sCi0gezE2LCAweGIyMjAsIDAsIHsweDQwLDB4MDgsMHhiMCwweDAyLDB4YzAsMHgwMCwweDgyLDB4MDAsMHgwMCwweDgwLDB4MDgsMHgzMCwweDAyLDB4OGMsMHgwMCwweGJiIH19LAotIHsxNiwgMHhiMjMwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwOCwweDIwLDB4MDIsMHhjYywweDgwLDB4OTMsMHgwMCwweDJjLDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjMiB9fSwKLSB7MTYsIDB4YjI0MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2MCwweDAwLDB4Y2EsMHgxNCwweDMyLDB4MDAgfX0sCi0gezE2LCAweGIyNTAsIDAsIHsweDBjLDB4YjAsMHgwMywweDRjLDB4MDAsMHhjYSwweDAwLDB4MzIsMHgwMCwweDBlLDB4MDAsMHgxMiwweGEwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhiMjYwLCAwLCB7MHg3MCwweDAwLDB4MjgsMHhmMCwweDEzLDB4YWMsMHgwMCwweGZiLDB4MDAsMHgzMiwweDQwLDB4MmMsMHgxMCwweDQzLDB4ZWMsMHgwMCB9fSwKLSB7MTYsIDB4YjI3MCwgMCwgezB4Y2YsMHgwMCwweDNmLDB4YzAsMHgwZiwweDkwLDB4MDMsMHhjMCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIyODAsIDAsIHsweDIwLDB4MTUsMHhmMCwweDAyLDB4ZmMsMHgwMCwweDFmLDB4MDAsMHg2NywweDcwLDB4MDMsMHhiMCwweDAwLDB4ZmMsMHgwMCwweDNmIH19LAotIHsxNiwgMHhiMjkwLCAwLCB7MHgwMCwweDJkLDB4YzAsMHgwMywweDMwLDB4MTAsMHhmYywweDAxLDB4YmYsMHgwMCwweDBmLDB4NzAsMHgwMywweDdjLDB4MDAsMHhmNyB9fSwKLSB7MTYsIDB4YjJhMCwgMCwgezB4MDQsMHgzYiwweDAwLDB4MGYsMHhjMCwweDEzLDB4ZmQsMHgxMCwweGZmLDB4MDAsMHgzZCwweGMwLDB4MGYsMHhmMCwweDAzLDB4ZTggfX0sCi0gezE2LCAweGIyYjAsIDAsIHsweDEyLDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDA1LDB4ZjQsMHhjMCwweGNmLDB4ODAsMHgzMywweDYwIH19LAotIHsxNiwgMHhiMmMwLCAwLCB7MHgwZSwweGM5LDB4MTMsMHgzNiwweDUwLDB4Y2UsMHg4NiwweDNmLDB4MDgsMHgwYywweGMwLDB4MDMsMHgzZSwweDAyLDB4ZDcsMHg4MCB9fSwKLSB7MTYsIDB4YjJkMCwgMCwgezB4MzksMHhlMCwweDBmLDB4ZjgsMHgxMywweDNlLDB4NDAsMHhjNywweDMwLDB4M2IsMHhjZSwweDBkLDB4ZjYsMHgwMywweDNkLDB4ODggfX0sCi0gezE2LCAweGIyZTAsIDAsIHsweGNmLDB4MzEsMHgzMywweGU0LDB4MGYsMHg3OCwweDAzLDB4MzAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiMmYwLCAwLCB7MHg4MCwweDEwLDB4ZTUsMHhkMCwweGRiLDB4ODAsMHg3MiwweDYwLDB4ODgsMHg5MiwweDAyLDB4ZTQsMHgxMCwweDhhLDB4ODAsMHgyZSB9fSwKLSB7MTYsIDB4YjMwMCwgMCwgezB4MzQsMHg0YSwweDhjLDB4MDMsMHgyZSwweDAwLDB4YWIsMHg4MCwweDAyLDB4ZTAsMHgwYiwweGI4LDB4MDIsMHgyYywweDgwLDB4OGYgfX0sCi0gezE2LCAweGIzMTAsIDAsIHsweDYwLDB4MTMsMHhkOCwweDRhLDB4NzYsMHgwMiwweDlkLDB4ODQsMHhhZiwweDMwLDB4MjIsMHg0OCwweDBiLDB4ODgsMHgxMiwweGEwIH19LAotIHsxNiwgMHhiMzIwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODgsMHgwNSwweGM0LDB4MDAsMHg4YiwweDAwLDB4MjQsMHgwMCB9fSwKLSB7MTYsIDB4YjMzMCwgMCwgezB4NGEsMHgwMCwweDAyLDB4YWMsMHg4MCwweDgzLDB4MDAsMHgyYywweDAxLDB4MjgsMHgwNCwweDAyLDB4YWMsMHgwMCwweDhiLDB4MDEgfX0sCi0gezE2LCAweGIzNDAsIDAsIHsweDIwLDB4YzAsMHgwMywweGIwLDB4MDIsMHgwYywweDgwLDB4ODMsMHg0MCwweDIwLDB4YzEsMHhhOCwweDM0LDB4MjIsMHg4ZCwweDEzIH19LAotIHsxNiwgMHhiMzUwLCAwLCB7MHg4MywweDIwLDB4YWMsMHhjOCwweDBiLDB4YjAsMHgwMiwweDYyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjM2MCwgMCwgezB4YzAsMHgxNSwweDg2LDB4MDAsMHg5YiwweDA0LDB4YWUsMHgwMCwweDBhLDB4OTAsMHgwMiwweGVjLDB4MDAsMHgwYiwweDE0LDB4MmUgfX0sCi0gezE2LCAweGIzNzAsIDAsIHsweGM2LDB4MDIsMHhiMSwweDEyLDB4NmMsMHgwMCwweGFiLDB4MjAsMHgyYSwweGMxLDB4MGIsMHhiMCwweDQyLDB4MmMsMHgwMCwweDhiIH19LAotIHsxNiwgMHhiMzgwLCAwLCB7MHgwMiwweDI2LDB4YzEsMHgwYSwweGIwLDB4MDIsMHhhYywweDAwLDB4YWIsMHgwNCwweDJhLDB4NDAsMHgwYiwweDkwLDB4MDIsMHhmMCB9fSwKLSB7MTYsIDB4YjM5MCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTEsMHhlNywweDAwLDB4YzMsMHgwMSwweDM2LDB4NDAgfX0sCi0gezE2LCAweGIzYTAsIDAsIHsweDBlLDB4ODgsMHgxMywweDI0LDB4MDIsMHhjYSwweDAwLDB4MWUsMHgyMCwweDJjLDB4OGUsMHgwYiwweDJjLDB4MDAsMHhjYiwweDAwIH19LAotIHsxNiwgMHhiM2IwLCAwLCB7MHgyYSwweGMwLDB4MGYsMHhiOCwweDAzLDB4MmUsMHgwNiwweGNiLDB4MDAsMHgzYSwweGMwLDB4NGMsMHhiMCwweDEzLDB4YWMsMHgwYyB9fSwKLSB7MTYsIDB4YjNjMCwgMCwgezB4Y2IsMHgwMCwweDNlLDB4YzgsMHgwZiwweGIwLDB4NDMsMHg1MCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGIzZDAsIDAsIHsweGUwLDB4MDEsMHhiNCwweDA4LDB4ZmYsMHg5MSwweDMzLDB4NDAsMHgwOSwweGRjLDB4MDEsMHhmNCwweDIwLDB4N2UsMHgwMiwweDJlIH19LAotIHsxNiwgMHhiM2UwLCAwLCB7MHg0MCwweDBkLDB4OTgsMHgwMSwweGJjLDB4ODAsMHhlZiwweDgwLDB4YjcsMHhlNCwweDhmLDB4ZjQsMHgwYiwweGZlLDB4NDAsMHg3ZiB9fSwKLSB7MTYsIDB4YjNmMCwgMCwgezB4MDAsMHhiOSwweGMwLDB4NGUsMHhmMCwweDAzLDB4ZmMsMHgwOCwweGY3LDB4MDAsMHgzNywweGMwLDB4MGYsMHhlMCwweDAyLDB4YjggfX0sCi0gezE2LCAweGI0MDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDEwLDB4YTEsMHg0NCwweGNiLDB4MDIsMHgzMiwweDAwIH19LAotIHsxNiwgMHhiNDEwLCAwLCB7MHgwZCwweDgwLDB4MGEsMHg2ZCwweDAwLDB4ZWIsMHgwNCwweDEwLDB4OTAsMHgyOCwweDIyLDB4MGIsMHgyYywweGMyLDB4Y2IsMHgyMCB9fSwKLSB7MTYsIDB4YjQyMCwgMCwgezB4NzYsMHhjMCwweDBlLDB4YjEsMHgwMywweGVjLDB4MDEsMHhjYiwweDA2LDB4MzIsMHhjMSwweDBjLDB4MzAsMHgwMywweDJjLDB4MDIgfX0sCi0gezE2LCAweGI0MzAsIDAsIHsweGNiLDB4MDAsMHgzZSwweGQwLDB4MGMsMHhiMCwweDAzLDB4MTAsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNDQwLCAwLCB7MHhjOCwweDA1LDB4MjEsMHg0OCwweGFiLDB4MDAsMHgyMCwweDAwLDB4MDAsMHg5NSwweDIzLDB4NGMsMHgwOCwweGJiLDB4MDEsMHgyMiB9fSwKLSB7MTYsIDB4YjQ1MCwgMCwgezB4YzAsMHgwOCwweGIyLDB4MDIsMHgwYywweDA4LDB4ODMsMHg4OCwweDkyLDB4ZDUsMHgyOCwweDM0LDB4MDIsMHhlYywweDAyLDB4OGYgfX0sCi0gezE2LCAweGI0NjAsIDAsIHsweDIwLDB4MjMsMHhjMCwweDRkLDB4ZjAsMHgwMSwweDdjLDB4MDAsMHhkZiwweDAwLDB4MmUsMHhjMCwweDBkLDB4MzAsMHgwMywweDcyIH19LAotIHsxNiwgMHhiNDcwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ZTAsMHgwNSwweDQ0LDB4MDAsMHg4MywweDEwLDB4MjAsMHg2MCB9fSwKLSB7MTYsIDB4YjQ4MCwgMCwgezB4MDksMHgyNSwweDAyLDB4MDAsMHgwOCwweGEwLDB4MDAsMHg0YywweDAwLDB4MGIsMHgwYywweDIyLDB4NGYsMHgxMiwweDkzLDB4NDAgfX0sCi0gezE2LCAweGI0OTAsIDAsIHsweDAwLDB4YzAsMHgwOSwweDNlLDB4MDIsMHhlYywweDAwLDB4YWIsMHg4MCwweGE0LDB4YzAsMHgwOSwweDMwLDB4MjIsMHgyYywweDA4IH19LAotIHsxNiwgMHhiNGEwLCAwLCB7MHhiMywweDAxLDB4MGMsMHg4MSwweDA4LDB4MzAsMHgwMiwweDM4LDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjRiMCwgMCwgezB4NjAsMHgwMSwweDE2LDB4MDksMHhiNywweDgwLDB4MjEsMHg2NCwweDA4LDB4NzgsMHgwNiwweDEyLDB4MDAsMHhiNCwweDgyLDB4MmQgfX0sCi0gezE2LCAweGI0YzAsIDAsIHsweGE0LDB4MWIsMHg2OSwweDA2LDB4N2UsMHgwNCwweDE3LDB4OTIsMHgyNSwweGU2LDB4MDksMHg3OCwweDA2LDB4ZGUsMHg4MCwweGE3IH19LAotIHsxNiwgMHhiNGQwLCAwLCB7MHg5MCwweDI1LDB4ZTAsMHgwOSwweDc5LDB4NTAsMHg1ZSwweDA0LDB4YjcsMHg5MiwweDJmLDB4NjEsMHgwOSwweGM4LDB4MDIsMHg0OCB9fSwKLSB7MTYsIDB4YjRlMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ4LDB4MDgsMHgyNSwweDAwLDB4YzMsMHgwMCwweGIwLDB4MDMgfX0sCi0gezE2LCAweGI0ZjAsIDAsIHsweDBkLDB4YTMsMHg0MiwweDA5LDB4NDAsMHhlMSwweDAwLDB4YmMsMHg0MCwweDBmLDB4MTEsMHgwMywweDRjLDB4MDAsMHgxMywweDAwIH19LAotIHsxNiwgMHhiNTAwLCAwLCB7MHgyMCwweGMwLDB4MDksMHgzMiwweDAzLDB4Y2MsMHgxMCwweGEzLDB4MDAsMHgyNiwweGM0LDB4OGQsMHgzMCwweDJiLDB4MGMsMHg4MCB9fSwKLSB7MTYsIDB4YjUxMCwgMCwgezB4ZjMsMHgwMCwweDdjLDB4ODAsMHgwYywweDMwLDB4MDEsMHgxMiwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI1MjAsIDAsIHsweDQwLDB4MWQsMHhiYywweDAwLDB4ZTcsMHgxMCwweDNkLDB4MDEsMHgyZiwweGYxLDB4NDIsMHhlOCwweDAwLDB4ZjUsMHg5MCwweDAzIH19LAotIHsxNiwgMHhiNTMwLCAwLCB7MHhjMSwweDBjLDB4ZjEsMHg0MywweDljLDB4MDQsMHhlZiwweDA4LDB4M2IsMHhjMiwweDBjLDB4ZjAsMHg4MSwweGRjLDB4YTAsMHhkZiB9fSwKLSB7MTYsIDB4YjU0MCwgMCwgezB4MDAsMHgzYiwweGMzLDB4M2YsMHhmMCwweDgzLDB4ZmMsMHgwNSwweGRmLDB4MGMsMHgzZCwweDQwLDB4MGYsMHhkMSwweDAzLDB4ZDAgfX0sCi0gezE2LCAweGI1NTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhhOCwweDA1LDB4ZjQsMHgwMCwweGNiLDB4ODAsMHgzMCwweDQwIH19LAotIHsxNiwgMHhiNTYwLCAwLCB7MHgyYywweGEwLDB4MDMsMHhlMCwweDAwLDB4ZjgsMHg4MCwweDMyLDB4YzAsMHgyZSwweGI4LDB4MGIsMHgyYywweDQ2LDB4ZDMsMHgwMCB9fSwKLSB7MTYsIDB4YjU3MCwgMCwgezB4MzAsMHhjMCwweDBjLDB4MzAsMHgwMywweDBjLDB4MDAsMHhkYiwweDQ4LDB4MzIsMHhjMCwweDFmLDB4YjQsMHgwMywweDJjLDB4ODggfX0sCi0gezE2LCAweGI1ODAsIDAsIHsweGNiLDB4NDgsMHgzMiwweDgwLDB4MGMsMHgzMCwweDEzLDB4MmEsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNTkwLCAwLCB7MHg0OCwweDExLDB4YjQsMHgwMCwweDg3LDB4MDEsMHgyMSwweDQwLDB4MDgsMHg3MCwweDQyLDB4ZDAsMHgwOCwweGI0LDB4MDAsMHgyOSB9fSwKLSB7MTYsIDB4YjVhMCwgMCwgezB4YzAsMHgwOCwweDcwLDB4MDIsMHgxYywweDAwLDB4ODcsMHgwMCwweDIxLDB4YzgsMHgwYywweDcyLDB4MGEsMHgxYywweDg0LDB4OGYgfX0sCi0gezE2LCAweGI1YjAsIDAsIHsweDQwLDB4MDksMHhjNCwweDhmLDB4NzMsMHgxMiwweDljLDB4NDAsMHg4MywweDIwLDB4MjEsMHhjMCwweDA4LDB4NjAsMHgwMiwweDkyIH19LAotIHsxNiwgMHhiNWMwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDk2LDB4MDEsMHhhZiwweDgwLDB4MjEsMHgyMCB9fSwKLSB7MTYsIDB4YjVkMCwgMCwgezB4MDgsMHg2OCwweDAyLDB4ZGEsMHgwMCwweGJkLDB4ODAsMHgyMSwweGUwLDB4MDksMHg3OCwweDAyLDB4MWUsMHgwMCwweDhmLDB4ODggfX0sCi0gezE2LCAweGI1ZTAsIDAsIHsweDgzLDB4ZTIsMHgyOSwweGY4LDB4ODIsMHg1ZiwweDgwLDB4ODcsMHhhMCwweDI1LDB4ZTAsMHgwYiwweDNhLDB4MTIsMHgwZSwweDUwIH19LAotIHsxNiwgMHhiNWYwLCAwLCB7MHg5NywweGE0LDB4MjEsMHhhMCwweDI5LDB4NzgsMHgwMiwweDMwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjYwMCwgMCwgezB4MDgsMHgxNCwweGNjLDB4MDIsMHhhMSwweDgxLDB4MDAsMHgwMCwweDQ4LDB4NzAsMHgwMiwweGM4LDB4MDAsMHhiMSwweDAwLDB4MmMgfX0sCi0gezE2LCAweGI2MTAsIDAsIHsweGY4LDB4MDksMHgzMSwweDQyLDB4MGMsMHgxMCwweDgzLDB4MDAsMHgyMCwweGUwLDB4MDgsMHgzOCwweDEyLDB4NGUsMHgwMCwweDgzIH19LAotIHsxNiwgMHhiNjIwLCAwLCB7MHgwMCwweDZhLDB4YzAsMHgwYiwweDMwLDB4MDIsMHg4YywweDA0LDB4OTMsMHgwMCwweDIwLDB4ZTAsMHgwOSwweDM4LDB4MDIsMHg5MiB9fSwKLSB7MTYsIDB4YjYzMCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGU4LDB4MTUsMHhiOSwweDQwLDB4ZWUsMHgyMCwweDMwLDB4ODAgfX0sCi0gezE2LCAweGI2NDAsIDAsIHsweDBjLDB4YTAsMHgwMywweGU4LDB4MDAsMHhmYSwweDAwLDB4MzMsMHhiMCwweDBkLDB4ZTQsMHgwMywweDMyLDB4ODgsMHhjYywweDgwIH19LAotIHsxNiwgMHhiNjUwLCAwLCB7MHgyMywweDAwLDB4MGQsMHhjMCwweDAzLDB4NjIsMHgwMiwweGNhLDB4MDAsMHgzNiwweDgwLDB4MGYsMHhhMCwweDQzLDB4MjgsMHgwNiB9fSwKLSB7MTYsIDB4YjY2MCwgMCwgezB4ZGEsMHgwMCwweDMzLDB4YTAsMHgwZCwweDZhLDB4MDMsMHgzYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI2NzAsIDAsIHsweDQ4LDB4MDAsMHhlMCwweDAwLDB4OTgsMHgwMSwweGJlLDB4MDAsMHgwZiwweDgwLDB4MDMsMHhmMCwweDAwLDB4YmMsMHgwMCwweDM4IH19LAotIHsxNiwgMHhiNjgwLCAwLCB7MHgwNCwweDA4LDB4ODAsMHhhMywweGUwLDB4MDAsMHhmOCwweDAwLDB4M2UsMHgwMCwweDBmLDB4ODAsMHgxMywweGEwLDB4MDAsMHhlMCB9fSwKLSB7MTYsIDB4YjY5MCwgMCwgezB4MDAsMHgzZSwweDAwLDB4MGUsMHgwMCwweDAzLDB4YzAsMHgwMCwweGU4LDB4MDAsMHhiZSwweDA0LDB4NGUsMHg4MCwweDA3LDB4ZDIgfX0sCi0gezE2LCAweGI2YTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDEwLDB4ZTQsMHg4MCwweGM5LDB4MDAsMHgzZSwweDY4IH19LAotIHsxNiwgMHhiNmIwLCAwLCB7MHgwYywweDkwLDB4MDMsMHg2NCwweDAwLDB4YzksMHgwMCwweDNlLDB4NDAsMHgwYywweDkwLDB4NDMsMHhlMCwweDAwLDB4YzgsMHgwMCB9fSwKLSB7MTYsIDB4YjZjMCwgMCwgezB4MzIsMHgwMCwweDBjLDB4ODAsMHgxMywweDIwLDB4MDAsMHhjOSwweDAwLDB4MzYsMHg0MCwweDBjLDB4OTAsMHgwMywweDY0LDB4MDAgfX0sCi0gezE2LCAweGI2ZDAsIDAsIHsweDgxLDB4MDAsMHgzMiwweDQwLDB4MDQsMHg5MCwweDEzLDB4MDIsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiNmUwLCAwLCB7MHg4MCwweDA0LDB4NjUsMHgwNiwweDg5LDB4NDAsMHgyZSwweDYwLDB4MWEsMHgxNCwweDJhLDB4MDUsMHgyMCwweDg5LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4YjZmMCwgMCwgezB4NDAsMHgwOCwweDkwLDB4MDIsMHhjNCwweDA4LDB4YzEsMHgwMiwweDIwLDB4NDAsMHgwOCwweDEwLDB4MWEsMHgyNCwweDAwLDB4ODkgfX0sCi0gezE2LCAweGI3MDAsIDAsIHsweDEwLDB4MzIsMHg0MSwweDA4LDB4OTAsMHgxMiwweDI0LDB4MDAsMHg4OSwweDA0LDB4MzYsMHg0MCwweDg4LDB4OTQsMHgwYSwweDIwIH19LAotIHsxNiwgMHhiNzEwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTgsMHgwNSwweDA0LDB4MjAsMHg4OSwweDU1LDB4MmUsMHg0MCB9fSwKLSB7MTYsIDB4YjcyMCwgMCwgezB4MDgsMHhkNSwweDAyLDB4MzQsMHgwMCwweDhkLDB4MDAsMHgyZSwweDQwLDB4MTgsMHg5MCwweDAyLDB4ZTQsMHgwMCwweDk5LDB4MDAgfX0sCi0gezE2LCAweGI3MzAsIDAsIHsweDI2LDB4NDAsMHgwOCwweDkwLDB4MDIsMHgwNCwweDBhLDB4ODksMHgwMCwweDI2LDB4NDAsMHgzOCwweDkwLDB4MGEsMHgyNCwweDAwIH19LAotIHsxNiwgMHhiNzQwLCAwLCB7MHhhOSwweDAwLDB4MjAsMHg0MCwweDBhLDB4OTAsMHg4MiwweDA2LDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yjc1MCwgMCwgezB4MDgsMHgwNCwweDA1LDB4MDAsMHg4MSwweDAwLDB4MmYsMHg0MCwweDBhLDB4ZDQsMHgwMiwweDM0LDB4MDAsMHg4NSwweDAxLDB4MmMgfX0sCi0gezE2LCAweGI3NjAsIDAsIHsweDQwLDB4MDgsMHgxMCwweDQyLDB4ZTQsMHgwNiwweDk5LDB4MDAsMHgyMiwweDQwLDB4MDgsMHgxMCwweDAyLDB4MDUsMHgwMCwweDgxIH19LAotIHsxNiwgMHhiNzcwLCAwLCB7MHg0MCwweDI4LDB4NTAsMHgwOCwweDE0LDB4MTIsMHgwNSwweDAwLDB4YTEsMHg0MCwweDI0LDB4NTAsMHg1YSwweDEwLDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4Yjc4MCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGI4LDB4MGQsMHg2MCwweDAwLDB4YzgsMHgwNCwweDNlLDB4MDAgfX0sCi0gezE2LCAweGI3OTAsIDAsIHsweDA4LDB4ODAsMHgwMywweDIxLDB4NDIsMHhjYywweDAwLDB4M2UsMHgwMCwweDJjLDB4ODAsMHgwMiwweGUwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiN2EwLCAwLCB7MHhiNiwweDAwLDB4MmMsMHg4MCwweDAyLDB4MjAsMHgwMiwweGM4LDB4MDAsMHgzNiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NjAsMHgwMiB9fSwKLSB7MTYsIDB4YjdiMCwgMCwgezB4ZTgsMHgwMCwweDMyLDB4MDAsMHg4ZSwweDgwLDB4MDMsMHgyZSwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI3YzAsIDAsIHsweDk4LDB4MWQsMHhmNSwweDAwLDB4ZjUsMHgwMCwweDNlLDB4NDAsMHg4NywweDkwLDB4MDMsMHhlNCwweDAwLDB4ZjEsMHgwMCwweDNkIH19LAotIHsxNiwgMHhiN2QwLCAwLCB7MHg1MCwweDBmLDB4NTQsMHgwMywweGQxLDB4MDAsMHhlYywweDQwLDB4M2YsMHgxMCwweDBiLDB4YzQsMHg0MywweGYxLDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjdlMCwgMCwgezB4NDAsMHgzNiwweDUwLDB4MGYsMHg5NCwweDEzLDB4ZTUsMHgxMCwweGQ5LDB4NDQsMHgzZCwweDQwLDB4MmQsMHhkMCwweDAzLDB4ZTYgfX0sCi0gezE2LCAweGI3ZjAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxOCwweDA1LDB4ZjYsMHg2MCwweGNkLDB4MDIsMHgzYiwweDQwIH19LAotIHsxNiwgMHhiODAwLCAwLCB7MHgwYywweGQwLDB4MDMsMHhiNCwweDQwLDB4ZmQsMHgwNiwweDNlLDB4NDAsMHgwYywweDkwLDB4MDMsMHg2NiwweDA0LDB4YzksMHg4MiB9fSwKLSB7MTYsIDB4YjgxMCwgMCwgezB4YjYsMHg2MiwweDBmLDB4MTgsMHgwYiwweDM2LDB4MDAsMHhjZCwweDQwLDB4MzIsMHg2MSwweDBjLDB4OTAsMHgyMywweDI0LDB4MGEgfX0sCi0gezE2LCAweGI4MjAsIDAsIHsweGM5LDB4MDAsMHgzMiwweDQwLDB4NGMsMHhkMCwweDQzLDB4MDYsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiODMwLCAwLCB7MHgzOSwweDEwLDB4ZTMsMHg4MCwweGQ4LDB4MDAsMHgyMiwweDAwLDB4MGQsMHg4MCwweDAyLDB4MjIsMHg5NCwweGI4LDB4MDAsMHgyZSB9fSwKLSB7MTYsIDB4Yjg0MCwgMCwgezB4MDAsMHgwZCwweDgwLDB4MDMsMHgyMSwweDAwLDB4ODgsMHg0MCwweDIyLDB4MDAsMHgwYiwweGM0LDB4MjIsMHgyMSwweDUwLDB4ODggfX0sCi0gezE2LCAweGI4NTAsIDAsIHsweDgwLDB4MjIsMHgyMiwweDA4LDB4ODAsMHgwMiwweDIwLDB4MTAsMHg4MCwweDAxLDB4MmEsMHgwMCwweDBhLDB4ODAsMHgwMywweDRlIH19LAotIHsxNiwgMHhiODYwLCAwLCB7MHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNSwweGM2LDB4MDAsMHg4OSwweDAwLDB4MmEsMHg0MCB9fSwKLSB7MTYsIDB4Yjg3MCwgMCwgezB4ODgsMHgxMCwweDBhLDB4ODQsMHgwOCwweGIxLDB4MDAsMHgyOSwweDQwLDB4MGEsMHg3MCwweDBhLDB4YjUsMHgwMCwweDhmLDB4NDAgfX0sCi0gezE2LCAweGI4ODAsIDAsIHsweDI5LDB4YzAsMHgwYiwweGY0LDB4MDIsMHgyNCwweDAwLDB4ODEsMHgyMCwweDI4LDB4NDQsMHg4OSwweDEwLDB4MDIsMHgwNCwweDA0IH19LAotIHsxNiwgMHhiODkwLCAwLCB7MHg4MSwweDAyLDB4MmEsMHg0MCwweDA4LDB4MTAsMHgwMiwweDAyLDB4MDEsMHg3MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjhhMCwgMCwgezB4MTgsMHgxNSwweGE2LDB4MDAsMHg5OSwweDIwLDB4MjIsMHg0MCwweDA5LDB4OTAsMHgxMiwweDI0LDB4ODAsMHhiOSwweDAwLDB4MmYgfX0sCi0gezE2LCAweGI4YjAsIDAsIHsweDQ0LDB4MDMsMHhkMCwweDAyLDB4ZjQsMHgwMCwweDhkLDB4MDAsMHgyYiwweDQxLDB4MGIsMHhkMCwweDAyLDB4MjYsMHgxMCwweDg5IH19LAotIHsxNiwgMHhiOGMwLCAwLCB7MHgwNCwweDJhLDB4NDAsMHgwOSwweDkwLDB4NmUsMHgyNCwweDAwLDB4ODksMHgwMCwweDJhLDB4NDAsMHgwYSwweDk0LDB4MDIsMHg0NiB9fSwKLSB7MTYsIDB4YjhkMCwgMCwgezB4MDQsMHg2MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGEyLDB4MTUsMHhlNiwweDAwLDB4YzksMHgwMCwweDM4LDB4NDIgfX0sCi0gezE2LCAweGI4ZTAsIDAsIHsweDBjLDB4MTAsMHgxMywweGE2LDB4MDQsMHg3OSwweDA4LDB4M2EsMHg3OCwweDA2LDB4OTIsMHgwMywweGE0LDB4MDgsMHhjOSwweDAwIH19LAotIHsxNiwgMHhiOGYwLCAwLCB7MHgzYSwweDYwLDB4OGYsMHg5OCwweDIzLDB4MDYsMHgwMiwweGM5LDB4MDIsMHgzYSwweDQwLDB4MGQsMHg5MCwweDAzLDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4YjkwMCwgMCwgezB4YzksMHgwMCwweDM4LDB4NDAsMHgwYywweDkwLDB4MDMsMHgyOCwweDA0LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGI5MTAsIDAsIHsweDI4LDB4MDEsMHg4NCwweDEwLDB4ZjksMHg4MCwweGJlLDB4NDAsMHg0ZiwweDkwLDB4MDIsMHhlNCwweDAwLDB4ZjksMHgwMCwweDNjIH19LAotIHsxNiwgMHhiOTIwLCAwLCB7MHg2MCwweDhkLDB4OTIsMHgwMywweDI0LDB4NDIsMHhlOSwweDEwLDB4MzIsMHg1MCwweDBmLDB4OTQsMHgwMywweGU0LDB4MDAsMHhmOSB9fSwKLSB7MTYsIDB4YjkzMCwgMCwgezB4MDAsMHhiNiwweDQxLDB4MmUsMHgxMCwweDAzLDB4ZTQsMHgwMCwweGY5LDB4MDAsMHgyZSwweDQwLDB4MGYsMHg5MCwweDAzLDB4Y2EgfX0sCi0gezE2LCAweGI5NDAsIDAsIHsweDAwLDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyOCwweDEwLDB4YTAsMHgwOCwweGM4LDB4MDAsMHgzZSwweDEwIH19LAotIHsxNiwgMHhiOTUwLCAwLCB7MHgwZiwweDg4LDB4MDMsMHgyMCwweDA4LDB4ZjgsMHhjMCwweDFlLDB4MTAsMHgyYywweDQwLDB4MDMsMHhmMiwweDAwLDB4Y2MsMHgwMCB9fSwKLSB7MTYsIDB4Yjk2MCwgMCwgezB4M2YsMHgwMCwweDBjLDB4YzAsMHgxMywweDIwLDB4MDIsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgyYiwweDIwLDB4MTAgfX0sCi0gezE2LCAweGI5NzAsIDAsIHsweGMwLDB4MDQsMHgzMiwweDAwLDB4MGYsMHg4MCwweDAzLDB4MGEsMHgwNCwweDIwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiOTgwLCAwLCB7MHhhOCwweDA1LDB4M2EsMHg4MCwweDg2LDB4ZTAsMHgyZiwweGEwLDB4MWIsMHhlMCwweDAyLDB4M2EsMHg4MCwweGJhLDB4MDQsMHgyZSB9fSwKLSB7MTYsIDB4Yjk5MCwgMCwgezB4ODAsMHgwOCwweGEwLDB4MDMsMHg4OCwweDA4LDB4YzIsMHgwMCwweDJlLDB4ODEsMHgwOCwweDYwLDB4MDIsMHgyOCwweDEwLDB4OGUgfX0sCi0gezE2LCAweGI5YTAsIDAsIHsweDgxLDB4MDMsMHg4MCwweDA4LDB4ZTAsMHgwMSwweDc4LDB4MDAsMHg4ZSwweDA0LDB4MDMsMHg4MCwweDA5LDB4NjgsMHgwMywweGNhIH19LAotIHsxNiwgMHhiOWIwLCAwLCB7MHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjgsMHgwNSwweDRjLDB4MDAsMHg4MywweDYwLDB4MmMsMHg0NCB9fSwKLSB7MTYsIDB4YjljMCwgMCwgezB4MGIsMHgzOCwweDAyLDB4MGYsMHg4MCwweGIxLDB4MDAsMHgyYywweGU1LDB4MDMsMHgzMCwweDEwLDB4Y2MsMHgxMCwweDgzLDB4MDAgfX0sCi0gezE2LCAweGI5ZDAsIDAsIHsweDBjLDB4YzAsMHgyOSwweDMwLDB4MjIsMHgwNCwweDA5LDB4OTEsMHgxMCwweDI0LDB4YzAsMHhjOCwweDMwLDB4MDAsMHg0YywweDA0IH19LAotIHsxNiwgMHhiOWUwLCAwLCB7MHg5MywweDAyLDB4MjQsMHhjMCwweDBiLDB4MzEsMHgwMiwweDBhLDB4MDAsMHg1MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YjlmMCwgMCwgezB4ZTAsMHgwMSwweDE4LDB4ODAsMHg4NywweDAwLDB4MmQsMHg0MCwweDBiLDB4NzQsMHg0MiwweDFjLDB4MDEsMHhiNSwweDAxLDB4MmMgfX0sCi0gezE2LCAweGJhMDAsIDAsIHsweGMwLDB4MGIsMHg2MCwweDAyLDB4YjAsMHgwMCwweDk0LDB4MDQsMHgyZiwweDIwLDB4MDksMHhjMCwweDAyLDB4MTQsMHg5MCwweDk3IH19LAotIHsxNiwgMHhiYTEwLCAwLCB7MHgwMCwweDI1LDB4YzgsMHgwOCwweDcwLDB4MDIsMHg0YywweDgwLDB4OTcsMHgyMCwweDI1LDB4YzAsMHgwOSwweDcwLDB4MDIsMHhlOCB9fSwKLSB7MTYsIDB4YmEyMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MDgsMHgzYSwweDgyLDB4YzYsMHg4MCwweDJkLDB4NjAgfX0sCi0gezE2LCAweGJhMzAsIDAsIHsweDBiLDB4ZjgsMHgwYiwweDFhLDB4MDAsMHhmNSwweDgwLDB4M2QsMHhlMCwweDhmLDB4NzgsMHgwMywweGRlLDB4MDIsMHhjNywweDgwIH19LAotIHsxNiwgMHhiYTQwLCAwLCB7MHgyZCwweGUwLDB4MGQsMHg3OCwweDBiLDB4MTcsMHgwMiwweGRmLDB4ODAsMHgyNCwweGY4LDB4MmMsMHhmZCwweDAzLDB4NWUsMHgwYyB9fSwKLSB7MTYsIDB4YmE1MCwgMCwgezB4ZDcsMHhlMCwweDM1LDB4ZTAsMHgwZiwweDY4LDB4MDMsMHgyYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJhNjAsIDAsIHsweDQ4LDB4MWQsMHhhZSwweDQwLDB4ZmEsMHgwNCwweDNlLDB4NDAsMHgwZiwweDgwLDB4MTMsMHhlYywweDA0LDB4ZjksMHgwMCwweDNlIH19LAotIHsxNiwgMHhiYTcwLCAwLCB7MHhjMSwweDBjLDB4YTAsMHgxMywweGMwLDB4MTAsMHhlOCwweDAwLDB4M2MsMHgwMCwweDRlLDB4ODAsMHg0MywweGM0LDB4MjAsMHg4OSB9fSwKLSB7MTYsIDB4YmE4MCwgMCwgezB4MDAsMHhiYSwweGMwLDB4MDcsMHhiNiwweDIxLDB4ZWQsMHgwNiwweGViLDB4NjgsMHhiYSwweGNjLDB4MGYsMHgyMCwweDEzLDB4YzIgfX0sCi0gezE2LCAweGJhOTAsIDAsIHsweDA2LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDA1LDB4YmUsMHgwMCwweGM2LDB4ODAsMHgzMSwweDYwIH19LAotIHsxNiwgMHhiYWEwLCAwLCB7MHgyZCwweDc4LDB4MGIsMHgzZSwweDQ4LDB4ZWMsMHg5MiwweDNkLDB4NjAsMHgwYywweDU4LDB4MDMsMHg1YSwweDQwLDB4ZDUsMHg4MCB9fSwKLSB7MTYsIDB4YmFiMCwgMCwgezB4MzEsMHg2MSwweDBjLDB4NTgsMHgyMywweDM2LDB4MDAsMHhjZiwweDgyLDB4M2YsMHhlMCwweDBjLDB4ZjgsMHgwMywweGZmLDB4NjAgfX0sCi0gezE2LCAweGJhYzAsIDAsIHsweGNmLDB4OTAsMHgzMywweGYwLDB4MGMsMHg1MiwweDAzLDB4MDAsMHgwMCwweDcwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYWQwLCAwLCB7MHhhOCwweDExLDB4YjgsMHg4NCwweDg2LDB4MTQsMHhiNSwweGMwLDB4MDgsMHg3MCwweDAyLDB4MWUsMHhjMCwweGM0LDB4MDAsMHgyZCB9fSwKLSB7MTYsIDB4YmFlMCwgMCwgezB4NDAsMHgwOCwweDQwLDB4MDIsMHgxNCwweGQwLDB4ODYsMHgxMCwweDIxLDB4ODAsMHg0YywweDYyLDB4NDIsMHgzNCwweDQwLDB4YTUgfX0sCi0gezE2LCAweGJhZjAsIDAsIHsweDAwLDB4MzUsMHhjMCwweDI4LDB4NzAsMHg0MiwweGRjLDB4YzIsMHg4ZiwweDMwLDB4MjMsMHhjMCwweDA4LDB4NTAsMHgwMiwweDJhIH19LAotIHsxNiwgMHhiYjAwLCAwLCB7MHgwNCwweDYwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDIsMHgwMCwweDk4LDB4MjgsMHg4ZSwweDAwLDB4YTUsMHg0MCB9fSwKLSB7MTYsIDB4YmIxMCwgMCwgezB4MDgsMHhmMSwweDAyLDB4MTgsMHg2NCwweGI0LDB4MDAsMHg2ZCwweDQyLDB4MDgsMHg1MCwweDAyLDB4MTgsMHgwMSwweDg1LDB4MDggfX0sCi0gezE2LCAweGJiMjAsIDAsIHsweDIxLDB4NDAsMHgwOSwweDU4LDB4MjIsMHg1NCwweDAwLDB4ODUsMHgxMCwweDJkLDB4YzQsMHgwOSwweDcwLDB4MDIsMHhkYywweDA0IH19LAotIHsxNiwgMHhiYjMwLCAwLCB7MHg5NywweDAwLDB4MjUsMHhjMCwweDA4LDB4NDQsMHgwMiwweDAwLDB4MTAsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmI0MCwgMCwgezB4NjAsMHgxNCwweDhjLDB4MDAsMHg4MiwweDgwLDB4MjQsMHhjMCwweDA4LDB4ODAsMHgwMiwweDJkLDB4MDAsMHg4MCwweDRhLDB4MmMgfX0sCi0gezE2LCAweGJiNTAsIDAsIHsweDQyLDB4MDgsMHgwYSwweDQyLDB4MDYsMHgwMCwweDkyLDB4ODQsMHgyMCwweGEwLDB4ODgsMHgyOCwweDQyLDB4NDQsMHgwMCwweGEzIH19LAotIHsxNiwgMHhiYjYwLCAwLCB7MHgwNiwweDI0LDB4YzAsMHgwYiwweDMwLDB4MDIsMHhjYywweDEwLDB4OTMsMHgwNCwweDI0LDB4YzEsMHgwOSwweDAwLDB4MDIsMHgwOCB9fSwKLSB7MTYsIDB4YmI3MCwgMCwgezB4MDQsMHgzMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGE4LDB4MTUsMHhiYywweDAwLDB4Y2IsMHgwMCwweDM2LDB4NDAgfX0sCi0gezE2LCAweGJiODAsIDAsIHsweDBjLDB4YjQsMHgxMywweDJjLDB4MDAsMHhmOSwweDAwLDB4M2UsMHhhMCwweDBjLDB4YTIsMHgwMywweDA0LDB4MDgsMHhjMiwweDgwIH19LAotIHsxNiwgMHhiYjkwLCAwLCB7MHgzMCwweGE4LDB4MGQsMHgyYSwweDAzLDB4NTQsMHgwMCwweGNiLDB4MDAsMHgzZiwweGMwLDB4MGQsMHhmMCwweDAzLDB4ZmMsMHgwOCB9fSwKLSB7MTYsIDB4YmJhMCwgMCwgezB4ZGYsMHgwMCwweDM3LDB4ZDAsMHgwYywweGIwLDB4MDMsMHgyYSwweDA0LDB4NjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJiYjAsIDAsIHsweDgwLDB4MDAsMHhlMCwweDAwLDB4ZmIsMHgxMCwweDNhLDB4NDAsMHgwZSwweGIwLDB4MDMsMHhlZCwweDkwLDB4ZjksMHgxMSwweDdlIH19LAotIHsxNiwgMHhiYmMwLCAwLCB7MHg4MCwweDRmLDB4YjAsMHg1MywweGU4LDB4NDAsMHhlOSwweDAwLDB4M2UsMHg0MCwweDBmLDB4OTAsMHgwMywweGE2LDB4MDgsMHhmOSB9fSwKLSB7MTYsIDB4YmJkMCwgMCwgezB4MDEsMHgzYSwweGMwLDB4MGMsMHhiMCwweDEzLDB4Y2MsMHgwMCwweGViLDB4MDIsMHgzYSwweGM2LDB4OGUsMHhiOCwweDAzLDB4ZTAgfX0sCi0gezE2LCAweGJiZTAsIDAsIHsweDAwLDB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDEwLDB4ZjAsMHgwYywweGNlLDB4MDAsMHgzZiwweGUwIH19LAotIHsxNiwgMHhiYmYwLCAwLCB7MHgyYywweGYwLDB4ODMsMHgzYSwweDQ4LDB4Y2QsMHgwMSwweDM1LDB4ODAsMHgwYywweDYwLDB4MTIsMHgzNCwweDBhLDB4Y2UsMHgwMCB9fSwKLSB7MTYsIDB4YmMwMCwgMCwgezB4YjMsMHg4MCwweDJjLDB4ZTAsMHgwYiwweDc0LDB4MDAsMHhjOSwweDEwLDB4YjMsMHhjMSwweDBmLDB4ZjAsMHgxYiwweDNjLDB4MDAgfX0sCi0gezE2LCAweGJjMTAsIDAsIHsweGNmLDB4MDAsMHhiNywweGMwLDB4MmMsMHhlMCwweDAzLDB4MDAsMHg0NCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiYzIwLCAwLCB7MHg4MSwweDA0LDB4NmUsMHgxMCwweDg4LDB4ODAsMHgyYywweGMwLDB4MTgsMHg5OCwweDAyLDB4MmQsMHg4MCwweDgxLDB4MDAsMHgzNiB9fSwKLSB7MTYsIDB4YmMzMCwgMCwgezB4OTEsMHgwOCwweGIwLDB4MDMsMHg2OCwweDAwLDB4YzksMHgwMCwweDIyLDB4NDAsMHgwOCwweDkwLDB4MDIsMHgyNCwweDAwLDB4ODMgfX0sCi0gezE2LCAweGJjNDAsIDAsIHsweDgwLDB4MzYsMHhjMCwweDBiLDB4MzAsMHgwMiwweDJjLDB4MDIsMHg4MywweDAwLDB4MjAsMHhjMCwweDA4LDB4MjAsMHgwMywweDYwIH19LAotIHsxNiwgMHhiYzUwLCAwLCB7MHg0MCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwNSwweDA2LDB4MDAsMHg4YSwweDgwLDB4MmUsMHg0NSB9fSwKLSB7MTYsIDB4YmM2MCwgMCwgezB4MjgsMHg4OCwweDAyLDB4MjQsMHgwMiwweDg4LDB4MDIsMHgwMiwweDAyLDB4MDgsMHg4MCwweDAyLDB4YTIsMHgwMCwweDk4LDB4MDAgfX0sCi0gezE2LCAweGJjNzAsIDAsIHsweDIyLDB4MDAsMHgwOCwweDgwLDB4MTIsMHgyNCwweDAwLDB4ODksMHgwMSwweDIyLDB4YzEsMHgwYSwweGIwLDB4MDIsMHg2YywweDAwIH19LAotIHsxNiwgMHhiYzgwLCAwLCB7MHhhYiwweDAwLDB4MjIsMHhjMSwweDA4LDB4OTAsMHgxMiwweDYwLDB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmM5MCwgMCwgezB4MDgsMHgwNCwweDAwLDB4MDAsMHg4MCwweDAwLDB4MmMsMHhjMCwweDQ4LDB4MDgsMHgxMiwweDAwLDB4ODAsMHg4MCwweDAyLDB4MjQgfX0sCi0gezE2LCAweGJjYTAsIDAsIHsweDAwLDB4MDgsMHgxOCwweDQyLDB4YWMsMHgwMiwweDhiLDB4ODAsMHgyMiwweGUwLDB4MDgsMHhiOCwweDEyLDB4MDQsMHgwMiwweDgzIH19LAotIHsxNiwgMHhiY2IwLCAwLCB7MHgwMCwweDIwLDB4YzAsMHgwYiwweDMwLDB4NDIsMHgwYywweDAwLDB4YTMsMHgwMSwweDYwLDB4YzAsMHg0OCwweDEwLDB4MDIsMHg0MiB9fSwKLSB7MTYsIDB4YmNjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHg2OCwweDA4LDB4Y2EsMHgwMCwweDJlLDB4NDAgfX0sCi0gezE2LCAweGJjZDAsIDAsIHsweDA4LDB4ODAsMHgwMywweDAwLDB4MDAsMHhjOCwweDA2LDB4MzIsMHgwMCwweDBjLDB4ODAsMHgwMiwweGEwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiY2UwLCAwLCB7MHgzMiwweDAwLDB4MGMsMHg4MCwweDAzLDB4NzQsMHgwMCwweGNiLDB4MDAsMHgyMiwweGMwLDB4MGYsMHhmMCwweDAzLDB4M2MsMHgwMCB9fSwKLSB7MTYsIDB4YmNmMCwgMCwgezB4ZWYsMHgwMCwweDM3LDB4YzAsMHgwYywweDgwLDB4MDEsMHg0MCwweDAzLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJkMDAsIDAsIHsweGEwLDB4MTksMHhmYywweDAwLDB4ZmMsMHgwNCwweDNmLDB4YzAsMHgwZiwweGMwLDB4MDMsMHhlMSwweDAwLDB4ZmMsMHgwMCwweDNiIH19LAotIHsxNiwgMHhiZDEwLCAwLCB7MHgwMCwweDBmLDB4ZDAsMHgwMywweDdjLDB4MDAsMHhlZiwweDAwLDB4MmYsMHhjMCwweDBmLDB4ZjAsMHgxMSwweGY0LDB4MTAsMHhmZCB9fSwKLSB7MTYsIDB4YmQyMCwgMCwgezB4MDIsMHgzZCwweGMwLDB4NGYsMHhmMCwweDAzLDB4ZGMsMHgwMCwweGRmLDB4MDQsMHgzZiwweGMwLDB4MGYsMHhjMCwweDQzLDB4ZTkgfX0sCi0gezE2LCAweGJkMzAsIDAsIHsweDA2LDB4NzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDEsMHgwMiwweDcwLDB4MjAsMHhkYywweDEwIH19LAotIHsxNiwgMHhiZDQwLCAwLCB7MHg2NywweDA0LDB4MGQsMHhjMSwweDAyLDB4NzAsMHgyMCwweDljLDB4MTAsMHgzNywweDA0LDB4MGQsMHhjMSwweDA2LDB4NzAsMHg0MCB9fSwKLSB7MTYsIDB4YmQ1MCwgMCwgezB4NGMsMHgxMCwweDM3LDB4MTQsMHgxNSwweGMxLDB4MDMsMHg3MCwweDQwLDB4ZGMsMHgxMCwweDEzLDB4MDQsMHgwZCwweGMxLDB4MDcgfX0sCi0gezE2LCAweGJkNjAsIDAsIHsweDcwLDB4NDAsMHhkYywweDEwLDB4MzcsMHgwNCwweDBkLDB4YzAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZDcwLCAwLCB7MHgwMCwweGM1LDB4NDQsMHgwNSwweDcxLDB4MjEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDUsMHg1YyB9fSwKLSB7MTYsIDB4YmQ4MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNCwweDA2LDB4NzEsMHgwMSwweDRjLDB4NDAsMHg1NywweDEwLDB4MGQsMHhjNCwweDA1LDB4NzEgfX0sCi0gezE2LCAweGJkOTAsIDAsIHsweDA1LDB4NWMsMHg0MCwweDUzLDB4MTAsMHgxNSwweGM0LDB4MDcsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGMwIH19LAotIHsxNiwgMHhiZGEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4YmRiMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGJkYzAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhiZGQwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmRlMCwgMCwgezB4MDAsMHg4NCwweDAwLDB4MDEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDU2LDB4MDAsMHgwNSwweDgwLDB4MDEsMHg2MCwweDA0LDB4NTggfX0sCi0gezE2LCAweGJkZjAsIDAsIHsweDAwLDB4MTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDIwLDB4MDEsMHg1OCwweDAwLDB4MTYsMHgwMCwweDA1LDB4ODAsMHgwMSwweDYwIH19LAotIHsxNiwgMHhiZTAwLCAwLCB7MHgwMCwweDU4LDB4MDAsMHg1NiwweDAwLDB4MDUsMHg4MCwweDAxLDB4NjAsMHgwMCwweDU4LDB4MDAsMHgxNiwweDAwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YmUxMCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0OCwweDA1LDB4NzIsMHgxMSwweDVjLDB4ODAgfX0sCi0gezE2LCAweGJlMjAsIDAsIHsweDE3LDB4MjAsMHgxNSwweGQ4LDB4MDUsMHgzMiwweDExLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxNCwweDg4LDB4MDAsMHg3MiwweDAxIH19LAotIHsxNiwgMHhiZTMwLCAwLCB7MHgxYywweDgwLDB4NTcsMHgyMCwweDA1LDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzgsMHgwMSB9fSwKLSB7MTYsIDB4YmU0MCwgMCwgezB4NzIsMHgwMSwweDVjLDB4ODAsMHg1NywweDI0LDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJlNTAsIDAsIHsweDAwLDB4YzEsMHg0MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDQwLDB4MjAsMHgwMCwweDE4IH19LAotIHsxNiwgMHhiZTYwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDkwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4YmU3MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDEwLDB4MDYsMHgwMCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGJlODAsIDAsIHsweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDgsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH19LAotIHsxNiwgMHhiZTkwLCAwLCB7MHgwMiwweDIwLDB4MTAsMHg4OCwweDA0LDB4NjIsMHgwMSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg4OCwweDAwLDB4MjAsMHgwMSB9fSwKLSB7MTYsIDB4YmVhMCwgMCwgezB4MDgsMHg4MCwweDQyLDB4MjAsMHgwMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDgsMHgwMCwweDQyLDB4MjAsMHgxMCwweDg4LDB4MDAgfX0sCi0gezE2LCAweGJlYjAsIDAsIHsweDIyLDB4MDEsMHgwOCwweDgwLDB4NDIsMHgzMCwweDEwLDB4ODAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhiZWMwLCAwLCB7MHgwMCwweGM1LDB4NGEsMHgwNSwweDQyLDB4ODEsMHg1MCwweGEwLDB4MDQsMHgyOCwweDE1LDB4MGEsMHgwNSwweDUyLDB4ODEsMHgxMCB9fSwKLSB7MTYsIDB4YmVkMCwgMCwgezB4YTAsMHg0NCwweDI4LDB4MTEsMHgxYSwweDAwLDB4NDAsMHg4MCwweDEwLDB4YTAsMHg1NCwweDI4LDB4MDUsMHgwYSwweDA1LDB4NDIgfX0sCi0gezE2LCAweGJlZTAsIDAsIHsweDgxLDB4NTEsMHgyMCwweDE0LDB4MjgsMHgxNSwweDBhLDB4MDEsMHg0MiwweDgxLDB4NTAsMHhhMCwweDU0LDB4MjgsMHgxNSwweDAwIH19LAotIHsxNiwgMHhiZWYwLCAwLCB7MHgzMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDBjLDB4MDEsMHg1MywweDQwLDB4NTQsMHhjMCB9fSwKLSB7MTYsIDB4YmYwMCwgMCwgezB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDU3LDB4NDAsMHg1NCwweGMwLDB4MTUsMHgzMCwweDA1LDB4NWMsMHgwMSwweDUzLDB4MDAgfX0sCi0gezE2LCAweGJmMTAsIDAsIHsweDU1LDB4YzAsMHgxNSwweDc0LDB4MDUsMHg0YywweDAxLDB4NTMsMHgwMCwweDU1LDB4YzAsMHgxNSwweDc0LDB4MDUsMHg0YywweDAxIH19LAotIHsxNiwgMHhiZjIwLCAwLCB7MHg1MywweDAwLDB4NTQsMHhjMCwweDExLDB4MzAsMHgwMSwweDQwLDB4MjEsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YmYzMCwgMCwgezB4MDAsMHg4MCwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDAwLDB4MDAsMHg0MCwweDAwLDB4MTAgfX0sCi0gezE2LCAweGJmNDAsIDAsIHsweDAwLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwMCwweDQyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDExLDB4MDAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhiZjUwLCAwLCB7MHgwMCwweDEwLDB4YzEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDAwLDB4NDAsMHgwMCwweDEwLDB4MDAsMHgwMSwweDEwLDB4MDEsMHgwMSB9fSwKLSB7MTYsIDB4YmY2MCwgMCwgezB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg2MCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAgfX0sCi0gezE2LCAweGJmNzAsIDAsIHsweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwIH19LAotIHsxNiwgMHhiZjgwLCAwLCB7MHg4MiwweDAwLDB4MjAsMHg4NCwweDAwLDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4NCwweDA4LDB4MjAsMHgwMiB9fSwKLSB7MTYsIDB4YmY5MCwgMCwgezB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMSwweDgwLDB4MDgsMHgwMSwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGJmYTAsIDAsIHsweDAwLDB4YzUsMHg0MCwweDA1LDB4NjAsMHgwMSwweDU4LDB4MDAsMHg5NiwweDAwLDB4MTUsMHg5MCwweDA1LDB4NjQsMHgwMiwweDU4IH19LAotIHsxNiwgMHhiZmIwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHg1NSwweDkwLDB4MDUsMHg2MCwweDAxLDB4ZDksMHgwMCwweDE2LDB4NDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9fSwKLSB7MTYsIDB4YmZjMCwgMCwgezB4MDEsMHg1OSwweDAwLDB4NzYsMHg0MCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfX0sCi0gezE2LCAweGJmZDAsIDAsIHsweDMxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM0LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhiZmUwLCAwLCB7MHgzNiwweDAwLDB4NGQsMHg4MCwweDAzLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjIsMHgwMCB9fSwKLSB7MTYsIDB4YmZmMCwgMCwgezB4NTgsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDcsMHg2MCwweDAwLDB4ZDgsMHg4MCwweDE2LDB4MDAsMHgwZCwweDgwLDB4MDMgfX0sCi0gezE2LCAweGMwMDAsIDAsIHsweDYwLDB4MDAsMHhkOCwweDAwLDB4MzYsMHgwMCwweDFkLDB4ODAsMHgzMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMDEwLCAwLCB7MHgwMCwweGM1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODEsMHgwYyB9fSwKLSB7MTYsIDB4YzAyMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHhjMSwweDBjLDB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA2LDB4MzAgfX0sCi0gezE2LCAweGMwMzAsIDAsIHsweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MDgsMHgxOCwweGMwIH19LAotIHsxNiwgMHhjMDQwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHhjMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YzA1MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHg0MCwweDMwLDB4MDAgfX0sCi0gezE2LCAweGMwNjAsIDAsIHsweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBjLDB4MDAsMHgwMywweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjMDcwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzA4MCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgzMCwweDgwLDB4NGMsMHgyMCwweDEzLDB4MDgsMHgwNCwweGMyLDB4MDEsMHgzMCwweDgwLDB4NGMgfX0sCi0gezE2LCAweGMwOTAsIDAsIHsweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgyNSwweDMwLDB4ODEsMHg0YywweDIwLDB4MTMsMHgwOCwweDA0LDB4YzIsMHgwMSwweDMwIH19LAotIHsxNiwgMHhjMGEwLCAwLCB7MHg4MCwweDRjLDB4MzIsMHg1MywweDA4LDB4MDQsMHhjMiwweDAxLDB4MzAsMHg4MCwweDRjLDB4MjAsMHgxMywweDA4LDB4MDQsMHhjMCB9fSwKLSB7MTYsIDB4YzBiMCwgMCwgezB4MjAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0MiwweDA1LDB4NjIsMHg4MSwweDU4LDB4MjAgfX0sCi0gezE2LCAweGMwYzAsIDAsIHsweDU2LDB4MDgsMHgxNSwweDgyLDB4MDQsMHg2MCwweDgxLDB4NTgsMHgyMCwweDQ2LDB4MDgsMHgxNSwweDgyLDB4MDEsMHg2MCwweGMxIH19LAotIHsxNiwgMHhjMGQwLCAwLCB7MHg1OCwweDIwLDB4NDYsMHgwOCwweDE1LDB4ODIsMHgwMSwweDYwLDB4ODEsMHg1OCwweDMwLDB4NTYsMHgwOCwweDE1LDB4ODIsMHgwNSB9fSwKLSB7MTYsIDB4YzBlMCwgMCwgezB4NjAsMHg4MSwweDU4LDB4MjAsMHg1NiwweDA4LDB4MDUsMHg4MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMwZjAsIDAsIHsweDAwLDB4YzUsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4IH19LAotIHsxNiwgMHhjMTAwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YzExMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4MDMsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGMxMjAsIDAsIHsweDIxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDIsMHgwNCwweDY2LDB4ODEsMHgxOCwweDIwIH19LAotIHsxNiwgMHhjMTMwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjQsMHg4MSwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHg4MSB9fSwKLSB7MTYsIDB4YzE0MCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxLDB4MTksMHgyMCwweDQzLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGMxNTAsIDAsIHsweDYwLDB4ODEsMHgxOSwweDIwLDB4NDYsMHg0OCwweDAxLDB4ODAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMTYwLCAwLCB7MHgwMCwweGM1LDB4NjAsMHgwNSwweDU4LDB4MDEsMHg1NiwweDAwLDB4NTUsMHg4MCwweDE1LDB4NjAsMHgwNCwweDU4LDB4MDEsMHg1NiB9fSwKLSB7MTYsIDB4YzE3MCwgMCwgezB4MDAsMHg0NSwweDgwLDB4MTEsMHg2MCwweDAwLDB4NTgsMHgwMCwweDA2LDB4MDAsMHg0NSwweDgwLDB4MTUsMHg2MCwweDAxLDB4NTggfX0sCi0gezE2LCAweGMxODAsIDAsIHsweDAxLDB4MTYsMHgwMCwweDAxLDB4ODAsMHgxNSwweDYwLDB4MDUsMHg1OCwweDAxLDB4NTYsMHgwMCwweDU1LDB4ODAsMHgwNSwweDQwIH19LAotIHsxNiwgMHhjMTkwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDA2LDB4MDEsMHg0OSwweDgwLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4YzFhMCwgMCwgezB4MTQsMHgxOCwweDA1LDB4MDYsMHgwMSwweDc5LDB4ODAsMHg1MCwweDYwLDB4MTQsMHgxOCwweDAxLDB4MDYsMHgwMSwweDQxLDB4ODAgfX0sCi0gezE2LCAweGMxYjAsIDAsIHsweDUwLDB4NjAsMHgwNCwweDE4LDB4MDUsMHgwNiwweDAxLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgxNCwweDE4LDB4MDUsMHgwNiwweDAxIH19LAotIHsxNiwgMHhjMWMwLCAwLCB7MHg0MSwweDgwLDB4NTAsMHg2MCwweDE0LDB4MTgsMHgwNSwweDAwLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzFkMCwgMCwgezB4MDAsMHg4MCwweDAyLDB4MDEsMHgwNCwweDgwLDB4NDAsMHgyMCwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDAsMHgwNCwweDA0LDB4NDAgfX0sCi0gezE2LCAweGMxZTAsIDAsIHsweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODQsMHg0MCwweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwIH19LAotIHsxNiwgMHhjMWYwLCAwLCB7MHg4MCwweDQxLDB4MjAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4MCwweDQxLDB4MjAsMHgxMCwweDQ4LDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4YzIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfX0sCi0gezE2LCAweGMyMTAsIDAsIHsweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDIsMHgxMSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHgxMSwweDgwIH19LAotIHsxNiwgMHhjMjIwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDYwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9fSwKLSB7MTYsIDB4YzIzMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDMxLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMyNDAsIDAsIHsweDAwLDB4YzUsMHg0NiwweDA1LDB4NzAsMHg4MSwweDVjLDB4NjAsMHgwNywweDE4LDB4MTUsMHhjNiwweDA0LDB4NzEsMHg4MSwweDFjIH19LAotIHsxNiwgMHhjMjUwLCAwLCB7MHg2MCwweDE3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHgzMSwweDgxLDB4ZGMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSB9fSwKLSB7MTYsIDB4YzI2MCwgMCwgezB4ODAsMHgxYywweDYwLDB4NzcsMHgxOCwweDE1LDB4Y2UsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGMyNzAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA1LDB4NDYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYxIH19LAotIHsxNiwgMHhjMjgwLCAwLCB7MHg3NywweDE4LDB4MGQsMHhjNiwweDAyLDB4NzEsMHg4MCwweDljLDB4NjAsMHgzNywweDE4LDB4MGQsMHhjMiwweDAzLDB4MzEsMHg4MCB9fSwKLSB7MTYsIDB4YzI5MCwgMCwgezB4NWMsMHg2MCwweDI3LDB4MTgsMHgwZCwweGM2LDB4MDMsMHg3MSwweDgwLDB4OWMsMHg2MCwweDE3LDB4MTgsMHgwZCwweGNlLDB4MDMgfX0sCi0gezE2LCAweGMyYTAsIDAsIHsweDcxLDB4ODAsMHhkYywweDYwLDB4MzcsMHgxOCwweDBkLDB4YzAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjMmIwLCAwLCB7MHgwMCwweDQ1LDB4NDYsMHgwNSwweDc1LDB4ODEsMHg1YywweDYwLDB4NzcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDc1LDB4ODEsMHg1YyB9fSwKLSB7MTYsIDB4YzJjMCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4MzEsMHg4MSwweDBjLDB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDA1LDB4NzEgfX0sCi0gezE2LCAweGMyZDAsIDAsIHsweDgxLDB4NWMsMHg2MCwweDQzLDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDU3LDB4MTgsMHgxNSwweGMwIH19LAotIHsxNiwgMHhjMmUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4YzJmMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGMzMDAsIDAsIHsweDVjLDB4MjAsMHgxMiwweDA4LDB4MDQsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MDAsMHgxNywweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjMzEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzMyMCwgMCwgezB4MDAsMHgwMCwweDA2LDB4MDEsMHg2MywweDgwLDB4NTgsMHg2MCwweDE2LDB4MTgsMHgwNSwweDg2LDB4MDEsMHg2MSwweDgwLDB4NTggfX0sCi0gezE2LCAweGMzMzAsIDAsIHsweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxLDB4ODEsMHg1OCwweDYwLDB4MTYsMHgxOCwweDA1LDB4ODYsMHgwMSwweDYxIH19LAotIHsxNiwgMHhjMzQwLCAwLCB7MHg4MCwweDU4LDB4NjAsMHg1NiwweDE4LDB4MDUsMHg4NiwweDAxLDB4NjEsMHg4MCwweDU4LDB4NjAsMHgxNiwweDE4LDB4MDUsMHg4MCB9fSwKLSB7MTYsIDB4YzM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MCwweDA1LDB4NzAsMHgwMSwweDVjLDB4MDAgfX0sCi0gezE2LCAweGMzNjAsIDAsIHsweDE3LDB4MDAsMHgxNSwweGMwLDB4ODUsMHg3NCwweDAxLDB4MWMsMHgwMCwweDQ3LDB4MDAsMHgxMSwweGMwLDB4MDUsMHg3MCwweDAxIH19LAotIHsxNiwgMHhjMzcwLCAwLCB7MHg1YywweDAwLDB4NTMsMHgwMCwweDEwLDB4YzAsMHgwNSwweDcwLDB4MDEsMHg1YywweDAwLDB4NTcsMHgwMCwweDE0LDB4YzksMHgwNCB9fSwKLSB7MTYsIDB4YzM4MCwgMCwgezB4NzAsMHgwMSwweDFjLDB4MDAsMHg1NywweDAwLDB4MTUsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGMzOTAsIDAsIHsweDAwLDB4NDUsMHg0MiwweDAwLDB4NjAsMHhjMCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjAsMHg4MCwweDE4IH19LAotIHsxNiwgMHhjM2EwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHgyMCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4YzNiMCwgMCwgezB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGMzYzAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQ0LDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH19LAotIHsxNiwgMHhjM2QwLCAwLCB7MHgwMiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9fSwKLSB7MTYsIDB4YzNlMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGMzZjAsIDAsIHsweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODAsMHgxMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNDAwLCAwLCB7MHgwMCwweDQ1LDB4NDIsMHgwNSwweDQwLDB4YzUsMHg1MCwweDIwLDB4MTQsMHgwOCwweDE1LDB4MDAsMHgwNCwweDQwLDB4ODEsMHg1MCB9fSwKLSB7MTYsIDB4YzQxMCwgMCwgezB4MjAsMHg1NCwweDA4LDB4MTEsMHgwMiwweDA1LDB4MDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDBjLDB4MTEsMHg0MiwweDA0LDB4NDAgfX0sCi0gezE2LCAweGM0MjAsIDAsIHsweDgxLDB4NTAsMHgyMCwweDE0LDB4MGMsMHgxNSwweDQyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDU0LDB4MDgsMHgxNSwweDAwIH19LAotIHsxNiwgMHhjNDMwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAzLDB4MDEsMHg1MCwweGMwLDB4NDQsMHgzMCB9fSwKLSB7MTYsIDB4YzQ0MCwgMCwgezB4MTUsMHgwYywweDA1LDB4NDMsMHgwMSwweDUwLDB4YzAsMHg0YywweDMwLDB4MTUsMHgwYywweDA1LDB4NDMsMHgyMSwweDUwLDB4YzAgfX0sCi0gezE2LCAweGM0NTAsIDAsIHsweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDAxLDB4NTAsMHhjMCwweDU0LDB4MzAsMHgxNSwweDBjLDB4MDUsMHg0MywweDAxIH19LAotIHsxNiwgMHhjNDYwLCAwLCB7MHg1MCwweGMwLDB4NTQsMHgyMCwweDE1LDB4MGMsMHgwNSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzQ3MCwgMCwgezB4MDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA4LDB4MDAsMHg0MiwweDAwLDB4MDQgfX0sCi0gezE2LCAweGM0ODAsIDAsIHsweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDgsMHgwMCwweDQyIH19LAotIHsxNiwgMHhjNDkwLCAwLCB7MHgwMCwweDEwLDB4ODAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MDEsMHgwMCB9fSwKLSB7MTYsIDB4YzRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDg0LDB4MjAgfX0sCi0gezE2LCAweGM0YjAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4ODQsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwIH19LAotIHsxNiwgMHhjNGMwLCAwLCB7MHg4MCwweGEwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDIwLDB4MjAsMHgyOCwweDA4LDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4YzRkMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MjAsMHgyMCwweDA4LDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM0ZTAsIDAsIHsweDAwLDB4NDUsMHg0MCwweDA1LDB4NjAsMHg0MSwweDU4LDB4MDAsMHg1NiwweDAwLDB4MTUsMHg4MCwweDA1LDB4NjAsMHgwMSwweDU4IH19LAotIHsxNiwgMHhjNGYwLCAwLCB7MHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHgyMCwweDAxLDB4ZDgsMHgwMCwweDU2LDB4MDAsMHgxNSwweDgwLDB4MDUsMHg2MCB9fSwKLSB7MTYsIDB4YzUwMCwgMCwgezB4MDEsMHg1OCwweDAwLDB4NzYsMHgwMCwweDE1LDB4ODAsMHgwNSwweDYwLDB4MDEsMHg1OCwweDAwLDB4NTYsMHgwMCwweDE1LDB4ODAgfX0sCi0gezE2LCAweGM1MTAsIDAsIHsweDExLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGM1LDB4NDAsMHgwMywweDYwLDB4MDAsMHhkOCwweDAwIH19LAotIHsxNiwgMHhjNTIwLCAwLCB7MHgyNiwweDAwLDB4MGQsMHg4MCwweDAyLDB4NjAsMHgwMCwweGQ4LDB4MDAsMHgzNiwweDAwLDB4MGQsMHg4MCwweDA3LDB4NjAsMHgwMSB9fSwKLSB7MTYsIDB4YzUzMCwgMCwgezB4NWMsMHgwMCwweDM2LDB4MDAsMHgwZCwweDgwLDB4MDMsMHg2MCwweDAwLDB4ZDgsMHgwMCwweDU3LDB4MDAsMHgwZCwweDgwLDB4MDIgfX0sCi0gezE2LCAweGM1NDAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4MzYsMHgwMCwweDBkLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MjEsMHgwYywweDAwLDB4NDMsMHgwMCwweDEwLDB4YzAsMHgwNCwweDMwLDB4MDEsMHgwYyB9fSwKLSB7MTYsIDB4YzU2MCwgMCwgezB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAsMHgwMSwweDE4LDB4MDAsMHg0MywweDAwLDB4MTAsMHhjMCwweDA0LDB4MzAgfX0sCi0gezE2LCAweGM1NzAsIDAsIHsweDAxLDB4MGMsMHgwMCwweDQ2LDB4MDAsMHgxMCwweGMwLDB4MDQsMHgzMCwweDAxLDB4MGMsMHgwMCwweDQzLDB4MDAsMHgxMCwweGMwIH19LAotIHsxNiwgMHhjNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4YzU5MCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDM1LDB4MDgsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzYsMHgwMCwweDE0LDB4MDAgfX0sCi0gezE2LCAweGM1YTAsIDAsIHsweDA4LDB4MDAsMHgwMywweDQwLDB4MDAsMHhjMCwweDAwLDB4MzAsMHgwMCwweDBkLDB4NDAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjNWIwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzVjMCwgMCwgezB4MDAsMHgwMCwweDA1LDB4MDEsMHgzMSwweDQwLDB4NGMsMHg1MCwweDEzLDB4MTQsMHgwNCwweGM1LDB4MDEsMHgzMSwweGMwLDB4NGMgfX0sCi0gezE2LCAweGM1ZDAsIDAsIHsweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwNSwweDMxLDB4NDEsMHg0YywweDUwLDB4MTMsMHgxNCwweDA0LDB4YzUsMHgwMSwweDMxIH19LAotIHsxNiwgMHhjNWUwLCAwLCB7MHg0MCwweDRjLDB4NzAsMHg1MywweDE0LDB4MDQsMHhjNSwweDAxLDB4MzEsMHg0MCwweDRjLDB4NDAsMHgxMywweDE0LDB4MDQsMHhjMCB9fSwKLSB7MTYsIDB4YzVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMywweDA1LDB4NjgsMHhjMSwweDVhLDB4MzAgfX0sCi0gezE2LCAweGM2MDAsIDAsIHsweDU2LDB4OGMsMHgxNSwweGEzLDB4MDUsMHg2OSwweGMxLDB4NWEsMHgzMCwweDQ2LDB4OGMsMHgxMSwweGE3LDB4MDEsMHg2OCwweGMwIH19LAotIHsxNiwgMHhjNjEwLCAwLCB7MHgxYSwweDMwLDB4NTYsMHg4YywweDExLDB4YTMsMHgwNCwweDY4LDB4YzEsMHgxYSwweDMwLDB4MTYsMHg4YywweDE1LDB4YTMsMHgwNCB9fSwKLSB7MTYsIDB4YzYyMCwgMCwgezB4NjgsMHhjMSwweDVhLDB4MzAsMHg1NiwweDhjLDB4MTEsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM2MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjQsMHgwMCwweDA4IH19LAotIHsxNiwgMHhjNjQwLCAwLCB7MHgwMSwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAsMHgyNCwweDAwLDB4MDgsMHg4MCwweDAyLDB4NjAsMHgwMCwweDgwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4YzY1MCwgMCwgezB4MDAsMHgwOSwweDQwLDB4MDIsMHgyMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGM2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0IH19LAotIHsxNiwgMHhjNjcwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjIsMHgwOSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MTEsMHg4OCwweDYwLDB4NjIsMHgxMCB9fSwKLSB7MTYsIDB4YzY4MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MDEsMHgxMSwweDg4LDB4NDQsMHg2MiwweDExLDB4MTgsMHg4MCwweDA2LDB4MDEsMHgxMSwweDg4LDB4NDQgfX0sCi0gezE2LCAweGM2OTAsIDAsIHsweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDUwLDB4MTEsMHg1NCwweDA0LDB4NTUsMHgwMSwweDE1LDB4NDAsMHg0NCwweDUwLDB4MTEsMHg1NCB9fSwKLSB7MTYsIDB4YzZiMCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MTEsMHg0MCwweDQwLDB4NTAsMHgxMCwweDU0LDB4MDQsMHg0NSwweDAxLDB4MTUsMHg0MCwweDQ0LDB4NTAgfX0sCi0gezE2LCAweGM2YzAsIDAsIHsweDExLDB4MTQsMHgwMCwweDE1LDB4MDEsMHgxNSwweDQwLDB4NDQsMHg1MCwweDExLDB4NTQsMHgwNCwweDU1LDB4MDAsMHgxMSwweDQwIH19LAotIHsxNiwgMHhjNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MjEsMHg0MiwweDA4LDB4NTAsMHg4MiB9fSwKLSB7MTYsIDB4YzZlMCwgMCwgezB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMSwweDQyLDB4MDAsMHg1MCwweDgyLDB4MTQsMHgyMCwweDg1LDB4MDgsMHgyMCwweDQyLDB4MDggfX0sCi0gezE2LCAweGM2ZjAsIDAsIHsweDUwLDB4ODIsMHgxNSwweDIwLDB4MDUsMHg0OCwweDIxLDB4NDIsMHgwOCwweDUwLDB4ODIsMHgxNCwweDIwLDB4ODEsMHg0MCwweDIxIH19LAotIHsxNiwgMHhjNzAwLCAwLCB7MHg0MiwweDA4LDB4NTAsMHg4MiwweDE0LDB4MjAsMHg4NSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzcxMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDBhLDB4MDEsMHgwMiwweDg0LDB4NDAgfX0sCi0gezE2LCAweGM3MjAsIDAsIHsweGExLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MDAsMHgyOCwweDAwLDB4MGEsMHgwMSwweDAyIH19LAotIHsxNiwgMHhjNzMwLCAwLCB7MHg4MCwweDQwLDB4YjAsMHgxMCwweDI4LDB4MDAsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTAsMHgxMCwweDI4LDB4MDQsMHgwMCB9fSwKLSB7MTYsIDB4Yzc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwYywweDAzLDB4NTMsMHgwMCwweGQ0LDB4YzAgfX0sCi0gezE2LCAweGM3NTAsIDAsIHsweDM1LDB4MzAsMHgwZCwweDRjLDB4MDMsMHg1MywweDAwLDB4ZDQsMHhjMCwweDM1LDB4MzAsMHgwZCwweDRjLDB4MDMsMHg1MywweDAwIH19LAotIHsxNiwgMHhjNzYwLCAwLCB7MHhkNCwweGMwLDB4MjEsMHgzMCwweDA4LDB4NGMsMHgwMywweDUzLDB4MDAsMHhkNCwweGMwLDB4MzUsMHgzMCwweDA4LDB4NGMsMHgwMyB9fSwKLSB7MTYsIDB4Yzc3MCwgMCwgezB4NTMsMHgwMCwweGQ0LDB4YzAsMHgzNSwweDMwLDB4MGQsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM3ODAsIDAsIHsweDAwLDB4MDAsMHgwOCwweDA0LDB4NzAsMHgwMSwweDVjLDB4ODAsMHgwNywweDIwLDB4MjUsMHhjOSwweDA0LDB4NzIsMHgwMSwweDVjIH19LAotIHsxNiwgMHhjNzkwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxNSwweGM4LDB4MDAsMHg3MiwweDA1LDB4ZGMsMHg4MCwweDU3LDB4MjAsMHgxNSwweGM4LDB4MDUsMHg3MiB9fSwKLSB7MTYsIDB4YzdhMCwgMCwgezB4MDEsMHgxYywweDkwLDB4NjcsMHgyMCwweDE1LDB4YzgsMHgwNSwweDcyLDB4MDEsMHgxYywweDgwLDB4NTcsMHgyMCwweDE1LDB4YzAgfX0sCi0gezE2LCAweGM3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgxOCwweDQ4LDB4YzIsMHgxMiwweDMxIH19LAotIHsxNiwgMHhjN2MwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDAsMHhjOCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDE4LDB4NDgsMHhjNCB9fSwKLSB7MTYsIDB4YzdkMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4MGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg2MSwweDIzLDB4MTggfX0sCi0gezE2LCAweGM3ZTAsIDAsIHsweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHg4YywweDIxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjN2YwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9fSwKLSB7MTYsIDB4YzgwMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfX0sCi0gezE2LCAweGM4MTAsIDAsIHsweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhiZCwweDAwIH19LAotIHsxNiwgMHhjODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Yzg2MCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwOSwweDM2LDB4YzIgfX0sCi0gezE2LCAweGM4NzAsIDAsIHsweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiIH19LAotIHsxNiwgMHhjODgwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4MmMsMHgwMCB9fSwKLSB7MTYsIDB4Yzg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDNjLDB4NGMsMHhjZiwweDEzLDB4MzMgfX0sCi0gezE2LCAweGM4YTAsIDAsIHsweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2MsMHg0ZCwweDRlLDB4OTMsMHgzMywweGM0LDB4Y2MsMHhmMSwweDJiLDB4M2MsMHg0YywweGNmIH19LAotIHsxNiwgMHhjOGIwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YzQsMHhjYywweGYxLDB4MzMsMHgzYyB9fSwKLSB7MTYsIDB4YzhjMCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzMsMHhjNCwweGNkLDB4MzEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGM4ZDAsIDAsIHsweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhjNywweDkzLDB4YjcsMHhlNCwweGVkLDB4ZjksMHgyMywweDdlLDB4NGUsMHg0NywweDkzIH19LAotIHsxNiwgMHhjOGUwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNmLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4OGQsMHhmOSwweDNiLDB4N2UsMHg0ZSB9fSwKLSB7MTYsIDB4YzhmMCwgMCwgezB4ZGYsMHg5MywweGY3LDB4ODQsMHg4ZCwweGY5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlZCwweGI5LDB4MDAgfX0sCi0gezE2LCAweGM5MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMiwweDcwLDB4NDAsMHg5YywweDExIH19LAotIHsxNiwgMHhjOTEwLCAwLCB7MHg2NywweDA0LDB4MTksMHhjMywweDAyLDB4NzAsMHg0MCwweDljLDB4MTAsMHgyNywweDA0LDB4MDksMHhjMSwweDAyLDB4NzAsMHg0MCB9fSwKLSB7MTYsIDB4YzkyMCwgMCwgezB4MWMsMHgxMCwweDI3LDB4MTQsMHgwMSwweGMxLDB4MDIsMHg3MCwweDQwLDB4OWMsMHg1MCwweDA3LDB4MDQsMHgwOSwweGMxLDB4MDIgfX0sCi0gezE2LCAweGM5MzAsIDAsIHsweDcwLDB4NDAsMHg5YywweDEwLDB4NjcsMHgxNCwweDExLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjOTQwLCAwLCB7MHgwMCwweDAwLDB4MDQsMHgwNSwweDcxLDB4MDEsMHg1YywweDQwLDB4NTcsMHgxMCwweDE1LDB4YzQsMHgwNSwweDcxLDB4MDEsMHg1YyB9fSwKLSB7MTYsIDB4Yzk1MCwgMCwgezB4NDAsMHg1NywweDEwLDB4MTUsMHhjNiwweDA1LDB4NzEsMHgwMSwweDVjLDB4NDAsMHg1NywweDEwLDB4MTAsMHhjNCwweDA1LDB4NzEgfX0sCi0gezE2LCAweGM5NjAsIDAsIHsweDAxLDB4NWMsMHg2NCwweDAzLDB4MTAsMHg1NSwweGM0LDB4MDUsMHg3MSwweDAxLDB4NWMsMHg0MCwweDU3LDB4MTAsMHgxNSwweGMwIH19LAotIHsxNiwgMHhjOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4MDEsMHgyMCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4Yzk4MCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIxLDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODAsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGM5OTAsIDAsIHsweDQ4LDB4MjAsMHgxMiwweDA4LDB4MDUsMHhjMiwweDAxLDB4MjAsMHg4MCwweDQ4LDB4MjQsMHgxNywweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjOWEwLCAwLCB7MHgyMCwweDgwLDB4NDgsMHgyMCwweDEyLDB4MDgsMHgwNCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4YzliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDg0LDB4MDAsMHg2MCwweDAwLDB4MTggfX0sCi0gezE2LCAweGM5YzAsIDAsIHsweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgxMCwweDkxLDB4ODAsMHgwMCwweDYwIH19LAotIHsxNiwgMHhjOWQwLCAwLCB7MHgwMCwweDE4LDB4NDYsMHg0NiwweDE4LDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDEwLDB4MDEsMHg4MCB9fSwKLSB7MTYsIDB4YzllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA0LDB4NzMsMHgwMSwweDFjLDB4ODAgfX0sCi0gezE2LCAweGM5ZjAsIDAsIHsweDA3LDB4MjAsMHgwMSwweGM4LDB4MDQsMHg3MiwweDAxLDB4MWMsMHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAxIH19LAotIHsxNiwgMHhjYTAwLCAwLCB7MHgxYywweDgwLDB4NDcsMHgyMiwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHgxYywweDgwLDB4MDcsMHgyMCwweDExLDB4YzgsMHgwNCB9fSwKLSB7MTYsIDB4Y2ExMCwgMCwgezB4NzIsMHgwMSwweDFjLDB4ODAsMHgwNywweDI4LDB4MTEsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4NjAsMHgwMCwweDE4LDB4MDAsMHgwNiwweDAwLDB4MDEsMHg4MCwweDAwLDB4NjAsMHgwMCwweDE4IH19LAotIHsxNiwgMHhjYTMwLCAwLCB7MHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCwweDAwLDB4MTgsMHgwMCwweDA2LDB4MDAsMHgwMSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2E0MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NDYsMHgwNCwweDAxLDB4ODAsMHgwMCwweDYwLDB4MDAsMHgxOCwweDAwLDB4MDYsMHgwMCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgwNCwweDIyLDB4MDEsMHgwOCwweDgwIH19LAotIHsxNiwgMHhjYTYwLCAwLCB7MHgwMiwweDIwLDB4MDAsMHg5MCwweDA0LDB4MjcsMHg4MSwweDA4LDB4ODAsMHg0MiwweDIwLDB4MTAsMHg5OCwweDA0LDB4MjQsMHgwMSB9fSwKLSB7MTYsIDB4Y2E3MCwgMCwgezB4MDgsMHg4MCwweDQyLDB4NDgsMHgxMCwweDg4LDB4MDQsMHgyMiwweDAxLDB4MDksMHg0MCwweDQyLDB4NjAsMHgxMCwweDg4LDB4MDQgfX0sCi0gezE2LCAweGNhODAsIDAsIHsweDIyLDB4MDEsMHgwOCwweGMwLDB4MDIsMHg0MCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYTkwLCAwLCB7MHgwMCwweDAwLDB4MmEsMHgwNCwweDRiLDB4ODEsMHgxMiwweGEwLDB4MDQsMHhhOCwweDAxLDB4MmEsMHgwNCwweDRhLDB4ODEsMHgxMiB9fSwKLSB7MTYsIDB4Y2FhMCwgMCwgezB4YTAsMHg0NCwweGE4LDB4MTEsMHgyYSwweDA0LDB4NDgsMHg4MCwweDEyLDB4YTAsMHg0NCwweDg4LDB4MDEsMHgyYSwweDA0LDB4NGEgfX0sCi0gezE2LCAweGNhYjAsIDAsIHsweDgxLDB4MTIsMHgyMCwweDA0LDB4YWMsMHgxMSwweDJhLDB4MDQsMHg0YSwweDgxLDB4MTIsMHhiMCwweDQ0LDB4OWMsMHgxMSwweDAwIH19LAotIHsxNiwgMHhjYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHhjMCwweDBjLDB4MDAsMHg1MywweDAwLDB4MTQsMHhjMCB9fSwKLSB7MTYsIDB4Y2FkMCwgMCwgezB4MDUsMHgzMCwweDAxLDB4NDQsMHgwMCwweDUzLDB4MDAsMHgxNCwweGMwLDB4MDUsMHgzMCwweDA0LDB4MGMsMHgwMCwweDUzLDB4MDAgfX0sCi0gezE2LCAweGNhZTAsIDAsIHsweDE0LDB4YzAsMHgwNSwweGIwLDB4MDEsMHg0YywweDAwLDB4NTMsMHgwMCwweDE2LDB4YzAsMHgwMSwweDMwLDB4MDEsMHg0YywweDAwIH19LAotIHsxNiwgMHhjYWYwLCAwLCB7MHg1MywweDAwLDB4MTQsMHhjMCwweDAxLDB4MzgsMHgwMCwweDQwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2IwMCwgMCwgezB4MDgsMHhjMCwweDAwLDB4MTAsMHg0MCwweDAwLDB4MTAsMHgwMCwweDA0LDB4MDAsMHgwMSwweDEwLDB4MDAsMHg0NCwweDgwLDB4MTAgfX0sCi0gezE2LCAweGNiMTAsIDAsIHsweDAwLDB4MDQsMHgwMCwweDAxLDB4MTAsMHgwMCwweDQ2LDB4MDAsMHgwMCwweDAwLDB4MDQsMHg2MCwweDAxLDB4MDAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhjYjIwLCAwLCB7MHgwMCwweDExLDB4NjAsMHgwMiwweDQwLDB4MDEsMHgwMCwweDEwLDB4NDAsMHgwMCwweDEwLDB4NjAsMHgwMSwweDUwLDB4MTAsMHg0MCB9fSwKLSB7MTYsIDB4Y2IzMCwgMCwgezB4MzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YzAsMHg0MCwweDAyLDB4MDAsMHgwMCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGNiNDAsIDAsIHsweDIwLDB4MDAsMHgwOCwweDA4LDB4MDIsMHgwMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYjUwLCAwLCB7MHg4MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMiB9fSwKLSB7MTYsIDB4Y2I2MCwgMCwgezB4MDAsMHgwMCwweDgwLDB4MDAsMHgyMSwweDAwLDB4MDgsMHg0MCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNiNzAsIDAsIHsweDA4LDB4YzAsMHg0MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMSwweDE4IH19LAotIHsxNiwgMHhjYjgwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCwweDAxLDB4YzgsMHgwMCwweDQ2LDB4MDAsMHgxOSwweDgwLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2I5MCwgMCwgezB4MDAsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4MDYsMHgwMCwweDExLDB4ODAgfX0sCi0gezE2LCAweGNiYTAsIDAsIHsweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDAxLDB4MDAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDAwIH19LAotIHsxNiwgMHhjYmIwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MSwweDAyLDB4NjAsMHgwMSwweDk4LDB4MDAsMHgyNiwweDAwLDB4MDksMHg4MCwweDA2LDB4NjIsMHgwMCB9fSwKLSB7MTYsIDB4Y2JjMCwgMCwgezB4NDgsMHgwMCwweDI2LDB4MjAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAxLDB4OTgsMHgwMCwweDA3LDB4MDAsMHgwOSwweDgwLDB4MDIgfX0sCi0gezE2LCAweGNiZDAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4MjYsMHgwMCwweDExLDB4ODIsMHgxMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjYmUwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDMwLDB4ODEsMHgwYywweDIwLDB4NDMsMHgwOCwweDEwLDB4YzIsMHgwNCwweDMwLDB4ODUsMHg4YyB9fSwKLSB7MTYsIDB4Y2JmMCwgMCwgezB4MjAsMHg0MywweDA4LDB4MTAsMHhjMiwweDA0LDB4MzAsMHg4MSwweDBjLDB4MjAsMHg0MywweDQ4LDB4MTEsMHg4MiwweDA0LDB4MzAgfX0sCi0gezE2LCAweGNjMDAsIDAsIHsweDgxLDB4OGQsMHgyMCwweDQ2LDB4MDgsMHgxMCwweGMyLDB4MDQsMHgzMCwweDgxLDB4MGMsMHgyMCwweDQzLDB4MGMsMHgxMCwweGMwIH19LAotIHsxNiwgMHhjYzEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwNCwweDAwLDB4MDAsMHgzMCwweDAwLDB4MGMsMHgwMCB9fSwKLSB7MTYsIDB4Y2MyMCwgMCwgezB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDEwLDB4MDAsMHgwYywweDAwLDB4MDMsMHgwMCwweDAwLDB4YzAsMHgwMCwweDMwLDB4MDAgfX0sCi0gezE2LCAweGNjMzAsIDAsIHsweDA4LDB4MDAsMHgwMywweDAwLDB4MDAsMHg4MCwweDAwLDB4MzAsMHgwMCwweDBjLDB4ODAsMHgwMiwweDAwLDB4MDAsMHhjMCwweDAwIH19LAotIHsxNiwgMHhjYzQwLCAwLCB7MHgzMCwweDAwLDB4MGMsMHgwMCwweDAzLDB4MjAsMHgwMCwweGMwLDB4MTAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2M1MCwgMCwgezB4NDAsMHgwMCwweDAyLDB4MDAsMHgzMCwweDgwLDB4MGMsMHgyMSwweDAzLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgzMCwweDgwLDB4MGMgfX0sCi0gezE2LCAweGNjNjAsIDAsIHsweDIwLDB4MDMsMHgwOCwweDAwLDB4YzIsMHgwNCwweDMwLDB4YzEsMHgwYywweDIwLDB4MDMsMHgwYywweDEwLDB4YzIsMHgwMCwweDMwIH19LAotIHsxNiwgMHhjYzcwLCAwLCB7MHg4MCwweDBjLDB4YjAsMHg0MywweDA4LDB4MDAsMHhjMiwweDAwLDB4MzAsMHg4MCwweDBjLDB4MjAsMHgwMywweDI4LDB4MTAsMHhjMCB9fSwKLSB7MTYsIDB4Y2M4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDA0LDB4NjAsMHg4MSwweDE4LDB4MjAgfX0sCi0gezE2LCAweGNjOTAsIDAsIHsweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgyMCwweDQ2LDB4MDgsMHgxMSwweDgyLDB4MDAsMHg2MCwweDgxIH19LAotIHsxNiwgMHhjY2EwLCAwLCB7MHgxOCwweDIwLDB4NDYsMHgwOCwweDExLDB4ODIsMHgwNCwweDYwLDB4ODAsMHgxOCwweDIwLDB4MDYsMHgwOCwweDExLDB4ODIsMHgwNCB9fSwKLSB7MTYsIDB4Y2NiMCwgMCwgezB4NjAsMHg4MSwweDE4LDB4MjAsMHg0NiwweDBjLDB4MTEsMHhjMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNjYzAsIDAsIHsweDQwLDB4MDEsMHg0MiwweDAwLDB4MjAsMHg4MCwweDA4LDB4MjAsMHgwMiwweDA4LDB4MDAsMHg4MiwweDAwLDB4MjAsMHg4MCwweDA4IH19LAotIHsxNiwgMHhjY2QwLCAwLCB7MHgyMCwweDAyLDB4MDgsMHgwMCwweDgyLDB4MDAsMHgyMCwweDgwLDB4MGMsMHgyMCwweDAyLDB4MDgsMHgwMCwweGMyLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4Y2NlMCwgMCwgezB4ODAsMHgwOCwweDIwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDIwLDB4ODAsMHgwOCwweDIwLDB4MDIsMHgwOCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg1MCwweDAxLDB4NDIsMHgwNCwweDYwLDB4ODEsMHgxOCwweDIwIH19LAotIHsxNiwgMHhjZDAwLCAwLCB7MHg0NiwweDA4LDB4MTEsMHg4MiwweDA0LDB4NjAsMHg4MCwweDE4LDB4MjAsMHg0NiwweDA4LDB4MTEsMHg4MiwweDAwLDB4NjAsMHhjMSB9fSwKLSB7MTYsIDB4Y2QxMCwgMCwgezB4MGMsMHgyMCwweDQ2LDB4MGMsMHgxMCwweGMyLDB4MDQsMHg2MCwweDgwLDB4MTgsMHgzMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGNkMjAsIDAsIHsweDYwLDB4ODEsMHgxOCwweDIwLDB4NDYsMHgwOCwweDEwLDB4ODAsMHgwMCwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZDMwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDAwLDB4NDUsMHgwMCwweDExLDB4NDAsMHgwNCwweDUwLDB4MDAsMHgxNCB9fSwKLSB7MTYsIDB4Y2Q0MCwgMCwgezB4MDAsMHg0NSwweDAwLDB4MTEsMHg0MCwweDAwLDB4NTAsMHgwMCwweDA0LDB4MDAsMHg0NSwweDAwLDB4MDAsMHg0MCwweDA0LDB4NTAgfX0sCi0gezE2LCAweGNkNTAsIDAsIHsweDAwLDB4MTQsMHgwMCwweDAxLDB4MDAsMHgxMSwweDQwLDB4MDQsMHg1MCwweDAxLDB4MTQsMHgwMCwweDQ1LDB4MDAsMHgwMCwweDQyIH19LAotIHsxNiwgMHhjZDYwLCAwLCB7MHgwMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDgsMHgwMCwweDA2LDB4MDAsMHg0MSwweDgwLDB4MTAsMHg2MCB9fSwKLSB7MTYsIDB4Y2Q3MCwgMCwgezB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAsMHgxMCwweDYwLDB4MDQsMHgxOCwweDAxLDB4MDYsMHgwMCwweDQxLDB4ODAgfX0sCi0gezE2LCAweGNkODAsIDAsIHsweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwLDB4NDEsMHg4MCwweDEwLDB4NjAsMHgwNCwweDE4LDB4MDEsMHgwNiwweDAwIH19LAotIHsxNiwgMHhjZDkwLCAwLCB7MHg0MSwweDgwLDB4MTAsMHg2MCwweDA0LDB4MTgsMHgwMSwweDAwLDB4MTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2RhMCwgMCwgezB4NDgsMHgwMCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAsMHgyMSwweDEwLDB4MDgsMHgwNCwweDAyLDB4MDEsMHgwMCwweDgwLDB4NDAgfX0sCi0gezE2LCAweGNkYjAsIDAsIHsweDIwLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwLDB4ODAsMHg0MCwweDIxLDB4MTAsMHgwOCwweDA0LDB4MDIsMHgwMSwweDAwIH19LAotIHsxNiwgMHhjZGMwLCAwLCB7MHg4MCwweDQwLDB4MzAsMHgxMCwweDA4LDB4MDQsMHgwMiwweDExLDB4MDAsMHg4NCwweDQwLDB4MjAsMHgxMCwweDA4LDB4MTQsMHgwMCB9fSwKLSB7MTYsIDB4Y2RkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0NiwweDAzLDB4NTEsMHg4MCwweGQ0LDB4NjAgfX0sCi0gezE2LCAweGNkZTAsIDAsIHsweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwLDB4ZDQsMHg2MCwweDM1LDB4MTgsMHgwZCwweDQ2LDB4MDMsMHg1MSwweDgwIH19LAotIHsxNiwgMHhjZGYwLCAwLCB7MHhkNCwweDYwLDB4MzUsMHgxMCwweDBkLDB4NDYsMHgwMywweDUxLDB4ODAsMHhkNCwweDQwLDB4MzUsMHgxOCwweDBkLDB4NDYsMHgwMyB9fSwKLSB7MTYsIDB4Y2UwMCwgMCwgezB4NTEsMHg4MCwweGQ0LDB4NjAsMHgzNSwweDE4LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNlMTAsIDAsIHsweDAwLDB4MDEsMHg0NiwweDA0LDB4NzEsMHg4MSwweDFjLDB4NjAsMHgwNywweDE4LDB4MTEsMHhjZSwweDA0LDB4NzEsMHg4MSwweDFjIH19LAotIHsxNiwgMHhjZTIwLCAwLCB7MHg2MCwweDQ3LDB4MTgsMHgwMSwweGM2LDB4MDQsMHg3MSwweDgxLDB4OWMsMHg2MCwweDQ3LDB4MTgsMHgxOSwweGM2LDB4MDQsMHg3MSB9fSwKLSB7MTYsIDB4Y2UzMCwgMCwgezB4ODAsMHgxYywweDYwLDB4NjcsMHgxOCwweDExLDB4YzYsMHgwNCwweDcxLDB4ODEsMHgxYywweDYwLDB4NDcsMHgxOCwweDExLDB4YzAgfX0sCi0gezE2LCAweGNlNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4NDYsMHgwMiwweDcxLDB4ODAsMHg5YywweDYwIH19LAotIHsxNiwgMHhjZTUwLCAwLCB7MHgyNywweDE4LDB4MDksMHhjNiwweDA2LDB4NzEsMHg4MCwweDFjLDB4NjAsMHgyNywweDE4LDB4MDksMHhjNiwweDAxLDB4MzEsMHg4MCB9fSwKLSB7MTYsIDB4Y2U2MCwgMCwgezB4MWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MDIsMHg3MSwweDgwLDB4OWMsMHg2MCwweDA3LDB4MTgsMHgwOSwweGM2LDB4MTIgfX0sCi0gezE2LCAweGNlNzAsIDAsIHsweDcxLDB4ODAsMHg5YywweDYwLDB4MzMsMHgxOCwweDAxLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZTgwLCAwLCB7MHg1MCwweDQ1LDB4NDYsMHgwNSwweDcxLDB4ODEsMHg1YywweDYwLDB4NTcsMHgxOCwweDE1LDB4YzYsMHgwNSwweDcxLDB4ODAsMHg1YyB9fSwKLSB7MTYsIDB4Y2U5MCwgMCwgezB4NjAsMHg1NywweDE4LDB4MTUsMHhjNiwweDAxLDB4MzEsMHg4MSwweDBjLDB4NjAsMHgxNywweDE4LDB4MTAsMHhjNiwweDA1LDB4NzEgfX0sCi0gezE2LCAweGNlYTAsIDAsIHsweDgxLDB4NWMsMHg2MCwweDAzLDB4MTgsMHgxNSwweGM2LDB4MDUsMHg3MSwweDgxLDB4NWMsMHg2MCwweDUzLDB4MTgsMHgxOCwweDgyIH19LAotIHsxNiwgMHhjZWIwLCAwLCB7MHgxMCwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg0MCwweDEyLDB4MDEsMHgyNCwweDgwLDB4NDgsMHgyMCB9fSwKLSB7MTYsIDB4Y2VjMCwgMCwgezB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDI0LDB4ODAsMHg0OCwweDIwLDB4MTIsMHgwOCwweDA0LDB4ODIsMHgwMSwweDIwLDB4ODAgfX0sCi0gezE2LCAweGNlZDAsIDAsIHsweDU4LDB4MjAsMHg1MiwweDBjLDB4MDUsMHg4MiwweDAxLDB4MjAsMHg4MCwweDQ5LDB4MjAsMHgwMiwweDA4LDB4MDQsMHg4MiwweDAxIH19LAotIHsxNiwgMHhjZWUwLCAwLCB7MHgyMCwweDgwLDB4NDksMHgyMCwweDEyLDB4NDgsMHgwNCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Y2VmMCwgMCwgezB4NDAsMHgwNCwweDA2LDB4MDAsMHg2MSwweDgwLDB4MTgsMHg2MCwweDA2LDB4MTgsMHgwMSwweDg2LDB4MDQsMHg2MSwweDgwLDB4MTggfX0sCi0gezE2LCAweGNmMDAsIDAsIHsweDYwLDB4MDYsMHgxOCwweDAxLDB4ODYsMHgwMCwweDYxLDB4ODEsMHg0OCwweDYwLDB4MDYsMHgxOCwweDE0LDB4ODYsMHgwMCwweDYxIH19LAotIHsxNiwgMHhjZjEwLCAwLCB7MHg4MCwweDE4LDB4NjAsMHg0MiwweDE4LDB4MDEsMHg4NiwweDAwLDB4NjEsMHg4MCwweDE4LDB4NjAsMHgwNiwweDE4LDB4MDAsMHg4MCB9fSwKLSB7MTYsIDB4Y2YyMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDUsMHg2MCwweDA0LDB4NzgsMHgwMSwweDFlLDB4MDAgfX0sCi0gezE2LCAweGNmMzAsIDAsIHsweDQ3LDB4ODAsMHgxMSwweGU4LDB4MDAsMHg3OCwweDAxLDB4MWUsMHgwMCwweDQ3LDB4ODAsMHgxMSwweGUwLDB4MDQsMHg3OCwweDAxIH19LAotIHsxNiwgMHhjZjQwLCAwLCB7MHgxZSwweDAwLDB4NDMsMHg4MCwweDExLDB4ZTAsMHgwNCwweDc4LDB4MDEsMHgxZSwweDAwLDB4MDMsMHg4MCwweDE1LDB4ZTAsMHgwNCB9fSwKLSB7MTYsIDB4Y2Y1MCwgMCwgezB4NzgsMHgwMSwweDFlLDB4MDAsMHg0NywweDgwLDB4MTEsMHhjMCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGNmNjAsIDAsIHsweDQwLDB4MDEsMHgxMiwweDAwLDB4NjQsMHg4MCwweDE4LDB4MjAsMHgwNiwweDA4LDB4MDEsMHg4MiwweDAwLDB4NjQsMHg4MCwweDE4IH19LAotIHsxNiwgMHhjZjcwLCAwLCB7MHgyMCwweDA2LDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCwweDgwLDB4MTgsMHgzMCwweDAyLDB4MDgsMHgwMSwweDgyLDB4MDAsMHg2MCB9fSwKLSB7MTYsIDB4Y2Y4MCwgMCwgezB4ODAsMHgxOSwweDMwLDB4NDIsMHgwOCwweDAwLDB4ODIsMHgwMCwweDYwLDB4ODAsMHgxOSwweDIwLDB4MDYsMHg0OCwweDAxLDB4ODAgfX0sCi0gezE2LCAweGNmOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDIsMHgwNCwweDIwLDB4ODEsMHgwOCwweDIwIH19LAotIHsxNiwgMHhjZmEwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDAwLDB4MjAsMHg4MSwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjAsMHg4MSB9fSwKLSB7MTYsIDB4Y2ZiMCwgMCwgezB4MDgsMHgyMCwweDQ2LDB4MDgsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgyMCwweDQyLDB4MDgsMHgxMSwweDgyLDB4MDQgfX0sCi0gezE2LCAweGNmYzAsIDAsIHsweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhjZmQwLCAwLCB7MHg0MCwweDQ1LDB4NDIsMHgwNCwweDQwLDB4ODEsMHgxMCwweDIwLDB4NDQsMHgwOCwweDExLDB4MDIsMHgwMCwweDQwLDB4ODEsMHgxMCB9fSwKLSB7MTYsIDB4Y2ZlMCwgMCwgezB4MjAsMHg0NCwweDA4LDB4MTEsMHgwMiwweDA0LDB4NDAsMHg4MCwweDEwLDB4MjAsMHg0NSwweDA4LDB4MDEsMHgwMiwweDA0LDB4NDAgfX0sCi0gezE2LCAweGNmZjAsIDAsIHsweDgxLDB4MTAsMHgyMSwweDAwLDB4MGMsMHgxMSwweDAyLDB4MDQsMHg0MCwweDgxLDB4MTAsMHgyMCwweDQ0LDB4MDgsMHgwMSwweDAwIH19LAotIHsxNiwgMHhkMDAwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDAzLDB4MDAsMHg1MCwweGMwLDB4MTQsMHgzMCB9fSwKLSB7MTYsIDB4ZDAxMCwgMCwgezB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAsMHgxNCwweDMwLDB4MDUsMHgwYywweDAxLDB4NDMsMHgwMCwweDUwLDB4YzAgfX0sCi0gezE2LCAweGQwMjAsIDAsIHsweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwLDB4NTAsMHhjMCwweDE0LDB4MzAsMHgwNSwweDBjLDB4MDEsMHg0MywweDAwIH19LAotIHsxNiwgMHhkMDMwLCAwLCB7MHg1MCwweGMwLDB4MTQsMHgzMCwweDA1LDB4MGMsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDA0MCwgMCwgezB4NDAsMHgwMCwweDA4LDB4MDAsMHg0MiwweDA0LDB4MTAsMHg4MCwweDA0LDB4MjAsMHgwMSwweDA5LDB4MDAsMHg0MiwweDAxLDB4MTAgfX0sCi0gezE2LCAweGQwNTAsIDAsIHsweDgwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgyMCwweDAxLDB4MDgsMHgwMCwweDQyIH19LAotIHsxNiwgMHhkMDYwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwNCwweDAwLDB4MDEsMHgwOCwweDAwLDB4NDIsMHgwMCwweDEwLDB4ODAsMHgwNCwweDIwLDB4MTEsMHgwMCB9fSwKLSB7MTYsIDB4ZDA3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MiwweDAyLDB4MDAsMHg4MCwweDgwLDB4MjAgfX0sCi0gezE2LCAweGQwODAsIDAsIHsweDIwLDB4MDgsMHgwOCwweDAyLDB4MDIsMHgwMCwweDgwLDB4MDAsMHgyMCwweDIwLDB4MDgsMHgwOCwweDAyLDB4MDAsMHgwMCwweDgwIH19LAotIHsxNiwgMHhkMDkwLCAwLCB7MHg4MCwweGEwLDB4MDAsMHgwYSwweDA4LDB4MDIsMHgwMiwweDAwLDB4ODAsMHg4MCwweDM0LDB4NjIsMHgyOCwweDA4LDB4MDIsMHgwMiB9fSwKLSB7MTYsIDB4ZDBhMCwgMCwgezB4MDAsMHg4MCwweDgwLDB4MzAsMHgyMCwweDBjLDB4MDgsMHgwMCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQwYjAsIDAsIHsweDQwLDB4MDEsMHg0MCwweDA0LDB4NjAsMHgwMSwweDE4LDB4MDAsMHg0NiwweDAwLDB4MTEsMHg4MCwweDA0LDB4NjAsMHgwMywweDE4IH19LAotIHsxNiwgMHhkMGMwLCAwLCB7MHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDYsMHg2MCwweDAxLDB4OTgsMHgwMCwweDQ2LDB4MDAsMHgxMSwweDgwLDB4MDQsMHg2MCB9fSwKLSB7MTYsIDB4ZDBkMCwgMCwgezB4MDEsMHgxOCwweDAwLDB4NjYsMHgwMCwweDExLDB4ODAsMHgwNCwweDYwLDB4MDEsMHgxOCwweDAwLDB4NDYsMHgwMCwweDExLDB4ODAgfX0sCi0gezE2LCAweGQwZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4MDAsMHgwMiwweDYwLDB4MDAsMHg5OCwweDAwIH19LAotIHsxNiwgMHhkMGYwLCAwLCB7MHgyNiwweDAwLDB4MDksMHg4MCwweDAyLDB4NjQsMHgwMCwweDk4LDB4MDAsMHgyNiwweDAwLDB4MTksMHg5MCwweDAyLDB4NjAsMHgwMCB9fSwKLSB7MTYsIDB4ZDEwMCwgMCwgezB4MWQsMHgwMCwweDI2LDB4MDAsMHgwMSwweGMwLDB4MDIsMHg2MCwweDAwLDB4OTksMHgwMCwweDA2LDB4NDAsMHgxOSwweDgwLDB4MDIgfX0sCi0gezE2LCAweGQxMTAsIDAsIHsweDYwLDB4MDAsMHg5OCwweDAwLDB4NjYsMHgwMCwweDAxLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMTIwLCAwLCB7MHg0MCwweDQ1LDB4NjAsMHgwNCwweDM4LDB4MDEsMHgwZSwweDAwLDB4NDMsMHg4MCwweDEwLDB4ZTAsMHgwNCwweDM4LDB4MDEsMHgwZSB9fSwKLSB7MTYsIDB4ZDEzMCwgMCwgezB4MDAsMHg0MywweDgwLDB4MTAsMHhlMCwweDA0LDB4MzgsMHgwMSwweDFhLDB4MDAsMHg0MywweDgwLDB4MTEsMHhhMCwweDA0LDB4MzggfX0sCi0gezE2LCAweGQxNDAsIDAsIHsweDAxLDB4MGUsMHgwMCwweDAyLDB4ODAsMHg0MCwweGUwLDB4MDQsMHgzOCwweDAxLDB4MGUsMHgwMCwweDQzLDB4ODAsMHgxOCwweDgwIH19LAotIHsxNiwgMHhkMTUwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NTAsMHgwNCwweDAxLDB4MDAsMHgzMCwweDQwLDB4MGMsMHgxMCB9fSwKLSB7MTYsIDB4ZDE2MCwgMCwgezB4MDMsMHgwNCwweDAwLDB4YzksMHgwMCwweDMwLDB4NDAsMHgwYywweDEwLDB4MDMsMHgwNCwweDAwLDB4YzEsMHgwMCwweDMwLDB4NDAgfX0sCi0gezE2LCAweGQxNzAsIDAsIHsweDA4LDB4MTAsMHgwMywweDA0LDB4MDAsMHg4MSwweDAwLDB4MzAsMHg0MCwweDBjLDB4NzgsMHgwMiwweDE0LDB4MDAsMHhjMSwweDAwIH19LAotIHsxNiwgMHhkMTgwLCAwLCB7MHgzMCwweDQwLDB4MGMsMHgxMCwweDAzLDB4MDQsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDE5MCwgMCwgezB4NDAsMHgwMCwweDA1LDB4MDAsMHgzMSwweDQwLDB4MGMsMHg1MCwweDAzLDB4MTQsMHgwMCwweGM1LDB4MDAsMHgzNSwweDQwLDB4MGMgfX0sCi0gezE2LCAweGQxYTAsIDAsIHsweDUwLDB4MDMsMHgxNCwweDEwLDB4ZDUsMHgwMCwweDMxLDB4NDEsMHgwZCwweDUwLDB4MDMsMHgxNCwweDEwLDB4YzUsMHgwMCwweDMxIH19LAotIHsxNiwgMHhkMWIwLCAwLCB7MHg0MCwweDBkLDB4NDgsMHg0MywweDU0LDB4MTAsMHhjNSwweDAwLDB4MzEsMHg0MCwweDBjLDB4NDAsMHg0MywweDEwLDB4MDAsMHhjMiB9fSwKLSB7MTYsIDB4ZDFjMCwgMCwgezB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0MywweDA0LDB4NjAsMHhjMSwweDE4LDB4MzAgfX0sCi0gezE2LCAweGQxZDAsIDAsIHsweDQ2LDB4MGMsMHgxMSwweDgzLDB4MDQsMHg2MSwweGMxLDB4MTgsMHgzMCwweDQ2LDB4MGMsMHgwMSwweDg3LDB4MDQsMHg2MCwweGMxIH19LAotIHsxNiwgMHhkMWUwLCAwLCB7MHgxOCwweDMwLDB4NDYsMHgwOCwweDExLDB4ODMsMHgwNCwweDYwLDB4YzEsMHgxOCwweDIwLDB4MDYsMHgwYywweDAxLDB4ODMsMHgwNCB9fSwKLSB7MTYsIDB4ZDFmMCwgMCwgezB4NjAsMHhjMSwweDE4LDB4MzAsMHg0NiwweDBjLDB4MTEsMHg4MCwweDEwLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQyMDAsIDAsIHsweDQwLDB4MDEsMHg0MCwweDAwLDB4MjAsMHgwMCwweDA4LDB4MDAsMHgwMiwweDAwLDB4MDAsMHg4MCwweDAwLDB4MjAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhkMjEwLCAwLCB7MHgwMCwweDAyLDB4MDAsMHgwMCwweDgxLDB4MDAsMHgyMCwweDAwLDB4MDgsMHg4MCwweDAyLDB4MDAsMHgwMCwweGMwLDB4MDAsMHgyMCB9fSwKLSB7MTYsIDB4ZDIyMCwgMCwgezB4MDAsMHgwOCwweDQwLDB4NDMsMHgzMCwweDAwLDB4ODAsMHgwMCwweDIwLDB4MDAsMHgwOCwweDAwLDB4MDIsMHgwMCwweDAwLDB4ODAgfX0sCi0gezE2LCAweGQyMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAxLDB4NDgsMHg0NCwweDYyLDB4MTEsMHgxOCwweDg0IH19LAotIHsxNiwgMHhkMjQwLCAwLCB7MHg0NiwweDIxLDB4MTEsMHg4OCwweDQ0LDB4NjMsMHgwMSwweDE4LDB4ODQsMHg0NiwweDIxLDB4MDEsMHg4OCwweDA0LDB4NjIsMHgxMSB9fSwKLSB7MTYsIDB4ZDI1MCwgMCwgezB4MTgsMHgwNCwweDQ2LDB4MjEsMHgxMCwweGM4LDB4NDQsMHg2MiwweDExLDB4MTgsMHgwNSwweDQzLDB4MDEsMHg4MSwweDg4LDB4NDQgfX0sCi0gezE2LCAweGQyNjAsIDAsIHsweDYyLDB4MTEsMHgxOCwweDg0LDB4NDYsMHgyMSwweDExLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkMjcwLCAwLCB7MHg0MCwweDQ1LDB4NDAsMHgwNCwweDUwLDB4MDEsMHgxNCwweDA0LDB4NDUsMHgwMSwweDExLDB4NDAsMHg0NCwweDUwLDB4MDEsMHgxNCB9fSwKLSB7MTYsIDB4ZDI4MCwgMCwgezB4MDQsMHg0NSwweDAxLDB4MDEsMHg0MCwweDQ1LDB4MDAsMHgxMCwweDE0LDB4MDQsMHg0NSwweDAzLDB4MDAsMHg0MCwweDQ0LDB4NTAgfX0sCi0gezE2LCAweGQyOTAsIDAsIHsweDExLDB4MTQsMHgwNCwweDAxLDB4MDUsMHg0MSwweDQwLDB4NDQsMHg1MCwweDExLDB4MTQsMHgwNCwweDA1LDB4MDEsMHgwMSwweDQwIH19LAotIHsxNiwgMHhkMmEwLCAwLCB7MHgxMSwweDUwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4NDAsMHgwMCwweDA4LDB4MjAsMHg0MiwweDA4LDB4MTAsMHg4MiB9fSwKLSB7MTYsIDB4ZDJiMCwgMCwgezB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDAsMHgxMCwweDgyLDB4MDQsMHgyMCwweDgxLDB4MDgsMHgwMCwweDQyLDB4MDggfX0sCi0gezE2LCAweGQyYzAsIDAsIHsweDEwLDB4ODIsMHgwNSwweDIwLDB4ODEsMHgwOCwweDIwLDB4NDIsMHgwOCwweDEwLDB4OGEsMHgwNSwweDIwLDB4MDUsMHgwOCwweDIwIH19LAotIHsxNiwgMHhkMmQwLCAwLCB7MHg0MiwweDA4LDB4MTAsMHg4MiwweDA0LDB4MjIsMHg4MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDJlMCwgMCwgezB4MDAsMHgwMCwweDBhLDB4MDEsMHgwMiwweDgwLDB4NDAsMHhhMCwweDEwLDB4MjgsMHgwNCwweDAyLDB4MDEsMHgwMiwweDgwLDB4NDAgfX0sCi0gezE2LCAweGQyZjAsIDAsIHsweGEwLDB4MTAsMHgyOCwweDA0LDB4MGEsMHgwMSwweDAyLDB4ODAsMHg0MCwweGEwLDB4MDAsMHgyOSwweDA0LDB4MGEsMHgwMSwweDAyIH19LAotIHsxNiwgMHhkMzAwLCAwLCB7MHg4MCwweDQwLDB4YTQsMHgwMCwweDI4LDB4MDQsMHgwYSwweDAxLDB4MDIsMHg4MCwweDQwLDB4YTgsMHgxMCwweDJiLDB4MTQsMHgwMCB9fSwKLSB7MTYsIDB4ZDMxMCwgMCwgezB4MDAsMHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDQwLDB4NDUsMHg0ZCwweDAzLDB4NTMsMHg0MCwweGQ0LDB4ZDAgfX0sCi0gezE2LCAweGQzMjAsIDAsIHsweDM1LDB4MzQsMHgwZCwweDRkLDB4MDMsMHg1MywweDQwLDB4ZDQsMHhkMCwweDM1LDB4MzQsMHgwZCwweDRkLDB4MDMsMHg1MywweDQwIH19LAotIHsxNiwgMHhkMzMwLCAwLCB7MHhkNCwweGQwLDB4MjEsMHgzNCwweDRkLDB4NGQsMHgwMywweDUzLDB4NDAsMHhkNCwweGQ5LDB4NjEsMHgzNCwweDA0LDB4MGQsMHgwMyB9fSwKLSB7MTYsIDB4ZDM0MCwgMCwgezB4NTMsMHg0MCwweGMwLDB4ZDgsMHgzNSwweDM3LDB4MGQsMHg0MCwweDExLDB4NTAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQzNTAsIDAsIHsweDQwLDB4MDEsMHg0OCwweDA0LDB4NzIsMHgwMCwweDFjLDB4ODAsMHg0NywweDIwLDB4MTEsMHhjOCwweDA0LDB4NzIsMHgwMSwweDFjIH19LAotIHsxNiwgMHhkMzYwLCAwLCB7MHg4MCwweDQ3LDB4MjAsMHgxMSwweGM4LDB4MDQsMHg3MiwweDAwLDB4OWMsMHg4MCwweDQ3LDB4MjAsMHgxOSwweGM4LDB4MDAsMHg3MiB9fSwKLSB7MTYsIDB4ZDM3MCwgMCwgezB4MDEsMHgxYywweDg4LDB4NjcsMHgyMCwweDExLDB4YzgsMHgwNCwweDcyLDB4MDEsMHg1YywweDgyLDB4NDcsMHgyMiwweDExLDB4YzAgfX0sCi0gezE2LCAweGQzODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MjMsMHgwOCwweDQ4LDB4YzIsMHgxMiwweDMxIH19LAotIHsxNiwgMHhkMzkwLCAwLCB7MHg4NCwweDhjLDB4NjEsMHgyMywweDEwLDB4NDAsMHhjMCwweDEyLDB4MzEsMHg4NCwweDhjLDB4NjEsMHgwMywweDEwLDB4NDgsMHhjNCB9fSwKLSB7MTYsIDB4ZDNhMCwgMCwgezB4MTAsMHgzMSwweDg0LDB4OGMsMHg0MSwweDIzLDB4MTgsMHg0OCwweGM2LDB4MTAsMHgzMCwweDA0LDB4MGMsMHg0MSwweDIzLDB4MTggfX0sCi0gezE2LCAweGQzYjAsIDAsIHsweDQ4LDB4YzYsMHgxMiwweDMwLDB4ODQsMHg4YywweDAxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkM2MwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMywweGZmLDB4ZjQsMHhmZiwweGZkLDB4M2YsMHhmZiwweDRmLDB4ZmYsMHhkMyB9fSwKLSB7MTYsIDB4ZDNkMCwgMCwgezB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYsMHhmZiwweGQzLDB4ZmYsMHhmNCwweGZmLDB4ZmQsMHgzZiwweGZmLDB4NGYgfX0sCi0gezE2LCAweGQzZTAsIDAsIHsweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhkZCwweDNmLDB4ZmYsMHg0ZiwweGZmLDB4ZDMsMHhmZiwweGY0LDB4ZmYsMHhmZCwweDAwIH19LAotIHsxNiwgMHhkM2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDQzMCwgMCwgezB4MDAsMHgwMCwweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIsMHhjZCwweGIwLDB4YjMsMHg2YywweDJjLDB4ZGIsMHgwYiwweDM2LDB4YzIgfX0sCi0gezE2LCAweGQ0NDAsIDAsIHsweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiLDB4MzYsMHhjMiwweGNkLDB4YjAsMHhiMywweDZjLDB4MmMsMHhkYiwweDBiIH19LAotIHsxNiwgMHhkNDUwLCAwLCB7MHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NGMsMHgyYywweGRiLDB4MGIsMHgzNiwweGMyLDB4Y2QsMHhiMCwweGIzLDB4NmMsMHgwMCB9fSwKLSB7MTYsIDB4ZDQ2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMywweDVjLDB4NGMsMHhkNywweDEzLDB4MzMgfX0sCi0gezE2LCAweGQ0NzAsIDAsIHsweGM0LDB4Y2MsMHhmMSwweDMzLDB4M2EsMHg0YSwweGQ2LDB4OTMsMHgzMywweGM0LDB4Y2MsMHhmMSwweDJiLDB4M2EsMHg0YywweGNmIH19LAotIHsxNiwgMHhkNDgwLCAwLCB7MHgxMywweDMzLDB4YzQsMHhjYywweGU5LDB4MzMsMHgzYywweDRjLDB4Y2YsMHgxMiwweGI1LDB4YTQsMHhhYywweGM5LDB4MzMsMHgzYyB9fSwKLSB7MTYsIDB4ZDQ5MCwgMCwgezB4NGMsMHhjZiwweDEzLDB4MzUsMHhjNCwweGNkLDB4NjksMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ0YTAsIDAsIHsweDAwLDB4MDAsMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzLDB4YjcsMHhlNCwweGVkLDB4ZjksMHgzYiwweDdlLDB4NGUsMHhkZiwweDkzIH19LAotIHsxNiwgMHhkNGIwLCAwLCB7MHhiNywweGU0LDB4ZWQsMHhmOSwweDNiLDB4N2UsMHg0ZSwweGRlLDB4MTIsMHgzNywweGU0LDB4ZWQsMHhlMSwweDNiLDB4N2UsMHg0ZSB9fSwKLSB7MTYsIDB4ZDRjMCwgMCwgezB4ZGYsMHg5MiwweDMxLDB4ODQsMHg4ZCwweGQ5LDB4M2IsMHg3ZSwweDRlLDB4ZGYsMHg5MywweGIxLDB4ZTQsMHhlYywweDYxLDB4MDAgfX0sCi0gezE2LCAweGQ0ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4NCwweDA0LDB4YTEsMHg4MywweDJjIH19LAotIHsxNiwgMHhkNGUwLCAwLCB7MHgwMywweDBhLDB4MTAsMHg4MiwweGMxLDB4MzQsMHgxMCwweDhmLDB4MDAsMHg0MCwweDA5LDB4MTQsMHgwMiwweDAzLDB4MTQsMHg5MSB9fSwKLSB7MTYsIDB4ZDRmMCwgMCwgezB4MDAsMHgwOCwweDQyLDB4MGIsMHgxOCwweDgyLDB4YzQsMHgwMCwweDMxLDB4Y2EsMHgwYywweDUyLDB4MDIsMHgxMCwweDgwLDB4ODUgfX0sCi0gezE2LCAweGQ1MDAsIDAsIHsweDAwLDB4MjEsMHg4MiwweDI4LDB4NDAsMHgwYSwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNTEwLCAwLCB7MHgwMCwweDAwLDB4MGEsMHgwNCwweDAyLDB4MDEsMHg0MCwweDgwLDB4NzMsMHgyOCwweDEwLDB4NDgsMHgwNywweDA2LDB4MDEsMHgwNCB9fSwKLSB7MTYsIDB4ZDUyMCwgMCwgezB4YTQsMHg0MSwweDIxLDB4MTQsMHgwOCwweDQ0LDB4MDYsMHgxMSwweDQwLDB4ODAsMHg3MCwweDIwLDB4MTQsMHgwYSwweDA0LDB4MDIgfX0sCi0gezE2LCAweGQ1MzAsIDAsIHsweDAwLDB4YzgsMHg4NCwweDQxLDB4MjEsMHgxYywweDA4LDB4MDYsMHgxMiwweDAxLDB4YzAsMHg4MCwweDYwLDB4MjAsMHgxNCwweDAwIH19LAotIHsxNiwgMHhkNTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAyLDB4ODQsMHgwNCwweDIxLDB4ODIsMHgwOCB9fSwKLSB7MTYsIDB4ZDU1MCwgMCwgezB4NTMsMHgwMiwweDEwLDB4ODAsMHhjNSwweDAwLDB4ODEsMHg0YSwweDA0LDB4NDIsMHgwMiwweDE0LDB4MDAsMHgwNCwweDIwLDB4MjEgfX0sCi0gezE2LCAweGQ1NjAsIDAsIHsweDgwLDB4YTgsMHg3MiwweDIyLDB4MWMsMHg4OCwweGM0LDB4MDYsMHhhMSwweDQyLDB4OGMsMHg1MiwweDIyLDB4MWMsMHg4OCwweDg1IH19LAotIHsxNiwgMHhkNTcwLCAwLCB7MHgyNiwweDIxLDB4YzAsMHg4OCwweDUwLDB4MjIsMHgxOCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDU4MCwgMCwgezB4MDAsMHgwMCwweDAyLDB4NDQsMHgwMCwweDAxLDB4MDEsMHgwMCwweDYyLDB4MDAsMHgxMCwweDAwLDB4MDQsMHgwMCwweDAxLDB4MDEgfX0sCi0gezE2LCAweGQ1OTAsIDAsIHsweDIwLDB4NDAsMHgwMCwweDFjLDB4MDAsMHg0NCwweDA0LDB4MDEsMHgwMiwweDIwLDB4NjIsMHgwMCwweDFjLDB4ODAsMHgwNCwweDA0IH19LAotIHsxNiwgMHhkNWEwLCAwLCB7MHg4MCwweDg5LDB4MjAsMHg1MCwweDA4LDB4MTQsMHg4MCwweDA0LDB4MjQsMHgwMSwweGMxLDB4MDAsMHg1MCwweDAwLDB4MTgsMHgwMCB9fSwKLSB7MTYsIDB4ZDViMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDgwLDB4MzgsMHgyMCwweDA0LDB4MGMgfX0sCi0gezE2LCAweGQ1YzAsIDAsIHsweDMxLDB4MGEsMHgwMCwweDAwLDB4MDIsMHgxOCwweDIwLDB4OGMsMHhhOCwweDEwLDB4MjgsMHgwOCwweDg4LDB4YzEsMHgxNCwweDEwIH19LAotIHsxNiwgMHhkNWQwLCAwLCB7MHhjNiwweDAwLDB4MjIsMHgwMywweDA4LDB4MDIsMHgwMSwweDA4LDB4YjAsMHgwMCwweDBjLDB4MjEsMHgwMiwweDAwLDB4ODIsMHg4MCB9fSwKLSB7MTYsIDB4ZDVlMCwgMCwgezB4MDgsMHgwMCwweDQ5LDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ1ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHg4MCwweDA4LDB4MjAsMHgwMywweDAwLDB4MDQsMHgwMiwweDQzLDB4MjAsMHgwMCwweDQwIH19LAotIHsxNiwgMHhkNjAwLCAwLCB7MHgwMCwweDIwLDB4MDAsMHgwNCwweDQyLDB4MDEsMHgxMCwweDgwLDB4ODQsMHgyMCwweDExLDB4MDgsMHgwNCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDYxMCwgMCwgezB4MDAsMHg0NCwweDI0LDB4MjAsMHgwOSwweDA4LDB4NDAsMHgwMywweDAwLDB4OTAsMHhjNCwweDIwLDB4MjAsMHgwOCwweDBjLDB4MDIgfX0sCi0gezE2LCAweGQ2MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHg4MSwweDA4LDB4MjAsMHgwNCwweDg4IH19LAotIHsxNiwgMHhkNjMwLCAwLCB7MHgwMiwweDIyLDB4MDgsMHgwOCwweGMzLDB4MmEsMHg5MCwweDQwLDB4ODQsMHgxMCwweDIwLDB4MDQsMHg4MCwweGMyLDB4MjYsMHgyMCB9fSwKLSB7MTYsIDB4ZDY0MCwgMCwgezB4NDksMHg4OCwweDIyLDB4MjIsMHgwYywweDA4LDB4YzEsMHgyNiwweGEwLDB4YzksMHg4YywweDEyLDB4MmEsMHgwNCwweDg4LDB4NDMgfX0sCi0gezE2LCAweGQ2NTAsIDAsIHsweDBlLDB4YTAsMHhjYiwweDg4LDB4MTAsMHgyMiwweDBjLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkNjYwLCAwLCB7MHgwOCwweDAwLDB4MGEsMHg0MCwweDMyLDB4MDAsMHgwMSwweDgwLDB4MzEsMHgyOCwweDAwLDB4MDAsMHgwMSwweDEyLDB4ODAsMHg4ZCB9fSwKLSB7MTYsIDB4ZDY3MCwgMCwgezB4ODQsMHgwMCwweDI4LDB4MGMsMHgwOCwweDAxLDB4MzIsMHgwMCwweDhjLDB4ODAsMHgwMiwweDIwLDB4MGMsMHgwOCwweDAxLDB4MmUgfX0sCi0gezE2LCAweGQ2ODAsIDAsIHsweDAwLDB4YzMsMHg4MCwweDAyLDB4MjAsMHgwNCwweDA4LDB4NDMsMHgwMiwweDAwLDB4NDAsMHg4MCwweDEwLDB4MjAsMHgwNCwweDAyIH19LAotIHsxNiwgMHhkNjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDA4LDB4ODcsMHgwYSwweDIxLDB4MDQsMHg4OCB9fSwKLSB7MTYsIDB4ZDZhMCwgMCwgezB4MTEsMHgyYSwweDFjLDB4MGEsMHgwNiwweDIyLDB4MjEsMHg0MCwweGEwLDB4NDIsMHgyYSwweDEwLDB4ODgsMHg4NSwweDBhLDB4YTEgfX0sCi0gezE2LCAweGQ2YjAsIDAsIHsweDA2LDB4YTQsMHg2MiwweDIyLDB4MWMsMHgwYSwweGM0LDB4MDIsMHgyMSwweDgwLDB4OGMsMHg1MiwweDIyLDB4MTQsMHg0OCwweDg2IH19LAotIHsxNiwgMHhkNmMwLCAwLCB7MHgyMiwweDIwLDB4MDgsMHhhOCwweDYwLDB4MmEsMHgxNCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDZkMCwgMCwgezB4MDAsMHgwMCwweDA4LDB4NDUsMHgwNiwweDAxLDB4ODksMHg4MCwweDYzLDB4MjAsMHgxYywweDg4LDB4NDAsMHgzNCwweDExLDB4MDEgfX0sCi0gezE2LCAweGQ2ZTAsIDAsIHsweGE0LDB4NTAsMHgyOCwweDE4LDB4NDgsMHgwNCwweDBlLDB4MDEsMHg0YiwweDgwLDB4NzMsMHgyOCwweDFjLDB4OGEsMHgwNCwweDA2IH19LAotIHsxNiwgMHhkNmYwLCAwLCB7MHg5MSwweDQ5LDB4MDQsMHg2MywweDIwLDB4MWMsMHg4YSwweDA2LDB4MjYsMHgwMSwweDg1LDB4ODAsMHg3MCwweDIwLDB4MTgsMHgwMiB9fSwKLSB7MTYsIDB4ZDcwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwMCwweDg1LDB4MDAsMHhiMSwweDQ1LDB4MmMgfX0sCi0gezE2LCAweGQ3MTAsIDAsIHsweDcwLDB4MDIsMHgxNCwweGMwLDB4MDcsMHgwOCwweDIxLDB4NDksMHgwMCwweDQyLDB4MDEsMHgxNCwweDgyLDB4MDUsMHgwMCwweDExIH19LAotIHsxNiwgMHhkNzIwLCAwLCB7MHg4NCwweDAwLDB4NTIsMHgwMiwweDFjLDB4MDAsMHhjNCwweDAwLDB4MjEsMHhjNCwweDJjLDB4NTMsMHgwMiwweDFjLDB4MDIsMHg4MSB9fSwKLSB7MTYsIDB4ZDczMCwgMCwgezB4MDQsMHhhMSwweGNkLDB4MDgsMHg1MCwweDAyLDB4MTQsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ3NDAsIDAsIHsweDA4LDB4MTAsMHgxMiwweDA0LDB4MzQsMHgwMSwweGNjLDB4MDAsMHg3MywweDQwLDB4MWMsMHg5MCwweDQ1LDB4MDQsMHgwMSwweDQ4IH19LAotIHsxNiwgMHhkNzUwLCAwLCB7MHgwNCwweDYwLDB4NDEsMHgxOCwweGMwLDB4NDQsMHgwNCwweDAxLDB4MDUsMHgwNCwweDczLDB4NDgsMHgxNCwweDUwLDB4NDcsMHgzNCB9fSwKLSB7MTYsIDB4ZDc2MCwgMCwgezB4MDEsMHg0NSwweDIwLDB4NjIsMHgwOCwweDFjLDB4YzIsMHgwNCwweDBjLDB4ODEsMHhjNywweDAwLDB4NzMsMHg4MCwweDE4LDB4YzIgfX0sCi0gezE2LCAweGQ3NzAsIDAsIHsweDA0LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MTAsMHg4NCwweDEwLDB4MjEsMHhjYywweDI4IH19LAotIHsxNiwgMHhkNzgwLCAwLCB7MHg0MiwweDAyLDB4MTQsMHgxMiwweGM1LDB4MTAsMHgyMSwweDg0LDB4MDQsMHg0MCwweDAwLDB4MWMsMHg4MCwweDg0LDB4MDAsMHg5MSB9fSwKLSB7MTYsIDB4ZDc5MCwgMCwgezB4MDAsMHgwOCwweDczLDB4ODIsMHgxYywweDkwLDB4MDUsMHgwYywweDAxLDB4Y2YsMHgwYywweDQwLDB4MDIsMHgxNCwweDMwLDB4NDUgfX0sCi0gezE2LCAweGQ3YTAsIDAsIHsweDIwLDB4YTEsMHhjMCwweDA4LDB4NTAsMHgwMiwweDEwLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg0NSwweDBjLDB4ODEsMHgwMCwweDAwLDB4MDEsMHgwOCwweDA4LDB4MDAsMHgwNSwweDE4LDB4OTEsMHgwNSB9fSwKLSB7MTYsIDB4ZDdjMCwgMCwgezB4MDQsMHgwMCwweDAxLDB4MDQsMHg0MCwweDA2LDB4MTgsMHgwMCwweDAyLDB4MjQsMHg3MCwweDQwLDB4MDQsMHgwMCwweDQwLDB4MDAgfX0sCi0gezE2LCAweGQ3ZDAsIDAsIHsweDAxLDB4YzQsMHgyNCwweDAwLDB4ODgsMHgwNCwweDAwLDB4NDMsMHgxMCwweDAwLDB4NDAsMHgyMCwweDAwLDB4ODgsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkN2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEyLDB4ODUsMHgyNCwweDMxLDB4MDIsMHgwYyB9fSwKLSB7MTYsIDB4ZDdmMCwgMCwgezB4MDIsMHhjMiwweDA0LDB4MTAsMHhjNCwweDI4LDB4MjEsMHg0OSwweDBjLDB4MDIsMHhjMCwweDA0LDB4YjIsMHgwNiwweDFjLDB4MjAgfX0sCi0gezE2LCAweGQ4MDAsIDAsIHsweDAzLDB4MDgsMHg1MCwweDQyLDB4MGMsMHg4MCwweDAxLDB4MDQsMHhhMSwweDQ5LDB4MGMsMHgwMCwweGMyLDB4MGMsMHgxMCwweDQzIH19LAotIHsxNiwgMHhkODEwLCAwLCB7MHgyNCwweGEwLDB4YzEsMHgwOCwweDEwLDB4NDIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDgyMCwgMCwgezB4MDAsMHgxMCwweGEyLDB4MDAsMHgyMCwweDAwLDB4Y2QsMHgwMCwweDAwLDB4NDAsMHgwNCwweDIwLDB4MDEsMHgxMCwweDAwLDB4MDkgfX0sCi0gezE2LCAweGQ4MzAsIDAsIHsweDA0LDB4MDIsMHg0OSwweDBjLDB4OTIsMHgwNywweDMwLDB4MDAsMHgwMCwweDAwLDB4MzMsMHgwOCwweDBjLDB4OTIsMHg0MSwweDAwIH19LAotIHsxNiwgMHhkODQwLCAwLCB7MHg4MCwweGNjLDB4MDAsMHgwMCwweDAwLDB4MGMsMHgwMCwweDQzLDB4MjgsMHg4MCwweGMyLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDg1MCwgMCwgezB4MDQsMHgyMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzMCwweDEwLDB4NTAsMHg4MCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4NjAsIDAsIHsweDEwLDB4MDAsMHgwMCwweGYwLDB4MDAsMHgxMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4ODAsMHgwMCwweGQwLDB4ODAsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkODcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OTAsMHg4MCB9fSwKLSB7MTYsIDB4ZDg4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweGMwLDB4MTAsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ4OTAsIDAsIHsweDNjLDB4M2MsMHgxMCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweGEwLDB4ODAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOGEwLCAwLCB7MHgwMCwweDAwLDB4NDAsMHgxMCwweDkwLDB4ODAsMHhhMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4YzAsMHgxMCwweDkwLDB4ODAsMHhhMCB9fSwKLSB7MTYsIDB4ZDhiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MjAsMHg4MCwweDEwLDB4OTAsMHhhMCwweGEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg4MCwweDEwLDB4OGYgfX0sCi0gezE2LCAweGQ4YzAsIDAsIHsweDBmLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmMsMHhjMiwweGU0LDB4ODEsMHg4MCwweDNmIH19LAotIHsxNiwgMHhkOGQwLCAwLCB7MHhkOSwweGJmLDB4ZDksMHg5OCwweDcxLDB4OWQsMHg0MiwweDgwLDB4MDAsMHgyNiwweDdmLDB4ZTYsMHg3MiwweGFiLDB4N2MsMHgzYSB9fSwKLSB7MTYsIDB4ZDhlMCwgMCwgezB4NDAsMHgwMCwweDE5LDB4ODAsMHgyNiwweDQ4LDB4ZGQsMHgzYywweDkxLDB4YzAsMHgyNiwweDQwLDB4MjYsMHg0MCwweDM4LDB4MzEgfX0sCi0gezE2LCAweGQ4ZjAsIDAsIHsweGRiLDB4NjEsMHhjMCwweDE5LDB4OTksMHhiZiwweGM5LDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkOTAwLCAwLCB7MHgwMCwweDAwLDB4MTAsMHg4MCwweDEwLDB4MTQsMHg4MCwweDA2LDB4ODQsMHg5NywweDk2LDB4ODYsMHg5NiwweDA2LDB4OTAsMHgwMCB9fSwKLSB7MTYsIDB4ZDkxMCwgMCwgezB4M2YsMHhhMSwweDI4LDB4MDEsMHgwMiwweDkwLDB4MTIsMHgwMCwweDgwLDB4MTcsMHg4OCwweDE2LDB4OWUsMHg5MCwweDkwLDB4MDQgfX0sCi0gezE2LCAweGQ5MjAsIDAsIHsweDEwLDB4MDAsMHgzNiwweGJlLDB4YmUsMHg5ZSwweDg2LDB4MTYsMHgxMiwweDg0LDB4ODAsMHgxMywweGJlLDB4OTcsMHhhZSwweDgwIH19LAotIHsxNiwgMHhkOTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4MiB9fSwKLSB7MTYsIDB4ZDk0MCwgMCwgezB4ODEsMHg4NCwweDIxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGExLDB4MzgsMHgwMSwweDc4LDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5NTAsIDAsIHsweDA4LDB4YjgsMHgyMSwweDcyLDB4NjgsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4LDB4OTgsMHg0NCwweDg4LDB4NjgsMHg4MCwweDAwIH19LAotIHsxNiwgMHhkOTYwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhiOCwweDAxLDB4NzgsMHgwMSwweDQwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDk3MCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZjcsMHhhZiwweGZmLDB4YzAgfX0sCi0gezE2LCAweGQ5ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmIH19LAotIHsxNiwgMHhkOTkwLCAwLCB7MHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZDlhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGQ5YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH19LAotIHsxNiwgMHhkOWMwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9fSwKLSB7MTYsIDB4ZDlkMCwgMCwgezB4MmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGQ5ZTAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHg3ZiwweGMwIH19LAotIHsxNiwgMHhkOWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiB9fSwKLSB7MTYsIDB4ZGEwMCwgMCwgezB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4N2YsMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRhMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkYTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4YmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGRmLDB4YmYsMHhkZiB9fSwKLSB7MTYsIDB4ZGEzMCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZWYsMHhmZiwweGZmLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZGYgfX0sCi0gezE2LCAweGRhNDAsIDAsIHsweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTUwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHgzZSwweGFmLDB4ZmYsMHhjMCB9fSwKLSB7MTYsIDB4ZGE2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGZmLDB4ZGYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGU3LDB4ZmUgfX0sCi0gezE2LCAweGRhNzAsIDAsIHsweGVmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGRmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZGE5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MmYsMHhmNywweGZmLDB4ZmYgfX0sCi0gezE2LCAweGRhYTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGZmLDB4ZmYsMHhkZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGY3IH19LAotIHsxNiwgMHhkYWIwLCAwLCB7MHhkZiwweGY3LDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGFjMCwgMCwgezB4MDAsMHgwMCwweDAyLDB4YzQsMHgwMCwweGIxLDB4YzMsMHgyYywweDUwLDB4MDksMHgxNCwweDgyLDB4YzQsMHgzMCwweDkxLDB4YzcgfX0sCi0gezE2LCAweGRhZDAsIDAsIHsweDI0LDB4NjAsMHgwOCwweDFjLDB4ODIsMHgwNywweDM0LDB4OTEsMHg0YywweDA0LDB4NDMsMHgwYSwweDEwLDB4YzIsMHg4NCwweDA0IH19LAotIHsxNiwgMHhkYWUwLCAwLCB7MHg5MSwweDg0LDB4MjQsMHg1MiwweDBiLDB4MTgsMHgwMiwweGM0LDB4MjQsMHhiMSwweGMzLDB4MmMsMHg0MCwweDBhLDB4MTAsMHg4MCB9fSwKLSB7MTYsIDB4ZGFmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDA1LDB4MDIsMHgwMSwweGM0LDB4ODAgfX0sCi0gezE2LCAweGRiMDAsIDAsIHsweDYwLDB4MjAsMHgxYywweDA4LDB4NDQsMHgyMiwweDAxLDB4YzAsMHg4NCwweDUwLDB4MDEsMHg5YywweDA4LDB4MDcsMHgwYSwweDAxIH19LAotIHsxNiwgMHhkYjEwLCAwLCB7MHhjMCwweDg0LDB4NzIsMHgyMCwweDFjLDB4YzgsMHgwNCwweDEyLDB4MTEsMHg0NCwweDgwLDB4NDEsMHgwMSwweDFjLDB4ODAsMHgwNyB9fSwKLSB7MTYsIDB4ZGIyMCwgMCwgezB4MDgsMHgxMSwweGM0LDB4MDAsMHg3MCwweDAwLDB4MTAsMHgwMCwweDAwLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRiMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDg2LDB4MmMsMHgyMSwweDRhLDB4MGMsMHg1MiwweDAyLDB4MWMsMHg4MCwweDA0LDB4MjAsMHgyMSwweGNhIH19LAotIHsxNiwgMHhkYjQwLCAwLCB7MHgxMCwweDYyLDB4MDIsMHgxYywweDgxLDB4NDcsMHgwNCwweDIxLDB4YzMsMHgyMCwweDUxLDB4MDEsMHgxYywweDgwLDB4MDQsMHgyYyB9fSwKLSB7MTYsIDB4ZGI1MCwgMCwgezB4MDEsMHhjYiwweDA0LDB4NTIsMHgwMywweDE0LDB4NDAsMHhjNywweDIwLDB4MzEsMHhjOCwweDBjLDB4NTAsMHgyMiwweDEwLDB4ODAgfX0sCi0gezE2LCAweGRiNjAsIDAsIHsweDAxLDB4MjAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNiwweDIwLDB4MDEsMHg4OSwweDAwIH19LAotIHsxNiwgMHhkYjcwLCAwLCB7MHg1MiwweDAwLDB4MTQsMHg4MCwweDA0LDB4MjgsMHgwMSwweDQ1LDB4MDQsMHg2MiwweDAwLDB4MTAsMHg4MCwweDQ2LDB4MzAsMHgxMSB9fSwKLSB7MTYsIDB4ZGI4MCwgMCwgezB4MGQsMHgwMCwweDQyLDB4MDEsMHgxNCwweGMwLDB4NDQsMHgwMCwweDExLDB4MDUsMHgwMCwweDUwLDB4MDAsMHgxYywweDAwLDB4NDQgfX0sCi0gezE2LCAweGRiOTAsIDAsIHsweDI4LDB4MDEsMHg0OSwweDAwLDB4NzAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYmEwLCAwLCB7MHgwMCwweDAwLDB4MDgsMHhjMCwweDAyLDB4MzAsMHgwYywweDhjLDB4MzAsMHgyMiwweDA4LDB4ODgsMHhjMiwweDI2LDB4MDAsMHgwOCB9fSwKLSB7MTYsIDB4ZGJiMCwgMCwgezB4ODAsMHgyMCwweDIyLDB4MGMsMHg4OCwweDgxLDB4MDIsMHgxMCwweGM0LDB4ODAsMHgxMCwweDIyLDB4MGMsMHgwOCwweDQwLDB4MDIgfX0sCi0gezE2LCAweGRiYzAsIDAsIHsweDEwLDB4NDgsMHg4OCwweDAxLDB4MjMsMHgwNCwweGM4LDB4NDIsMHgwMiwweDEwLDB4NDYsMHg4YywweDEyLDB4MjIsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkYmQwLCAwLCB7MHgwMCwweDEwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDgwLDB4YzgsMHgyMCB9fSwKLSB7MTYsIDB4ZGJlMCwgMCwgezB4MTEsMHgwOSwweDAwLDB4ODAsMHg0MSwweDEwLDB4OTAsMHgwOCwweDI0LDB4MzAsMHgwOCwweDA0LDB4NDIsMHg0MSwweDAwLDB4OTAgfX0sCi0gezE2LCAweGRiZjAsIDAsIHsweGM0LDB4MjAsMHgwMCwweDA4LDB4MDQsMHg0MiwweDAwLDB4MTAsMHg4MCwweDRjLDB4MjAsMHgyMywweDA5LDB4MDQsMHhjMiwweDQzIH19LAotIHsxNiwgMHhkYzAwLCAwLCB7MHgzMCwweDgwLDB4NDAsMHgyMCwweDExLDB4MDgsMHgwMCwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGMxMCwgMCwgezB4MDgsMHgwMCwweDA4LDB4ODEsMHgwMiwweDIwLDB4YzksMHg4YywweDEyLDB4MjAsMHgwNCwweDQ4LDB4NDEsMHgyMiwweDAwLDB4MDkgfX0sCi0gezE2LCAweGRjMjAsIDAsIHsweDg4LDB4MzAsMHgyMCwweDBjLDB4ODgsMHgwMywweDBlLDB4MDAsMHg0OSwweDhjLDB4MTAsMHgyMiwweDBjLDB4ODgsMHg0MCwweDJlIH19LAotIHsxNiwgMHhkYzMwLCAwLCB7MHgwMCwweGM5LDB4ODQsMHgxMywweDIxLDB4MDQsMHhjOCwweGMzLDB4MjIsMHgwMCwweGNiLDB4OGMsMHgzMiwweDIyLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGM0MCwgMCwgezB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4MDAsMHgwOCwweDAxLDB4MDIsMHgwMCwweDRiLDB4ODAgfX0sCi0gezE2LCAweGRjNTAsIDAsIHsweDMyLDB4MjEsMHgwOCwweDg4LDB4NDEsMHgwMiwweDEwLDB4MGYsMHg4MCwweDEwLDB4MjEsMHg4YywweDA4LDB4NDEsMHgwMiwweDAwIH19LAotIHsxNiwgMHhkYzYwLCAwLCB7MHg4NywweDg0LDB4MTAsMHgyMCwweDA0LDB4ODgsMHgwMCwweDAyLDB4MDAsMHg0NywweDgwLDB4MTAsMHgyMSwweDBjLDB4ODgsMHg0MSB9fSwKLSB7MTYsIDB4ZGM3MCwgMCwgezB4MTYsMHgxMCwweDQ2LDB4ODAsMHgzMCwweDIwLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRjODAsIDAsIHsweDAwLDB4MDAsMHgwYSwweGM0LDB4MjIsMHhhMSwweDA4LDB4YTQsMHg3MiwweDJhLDB4MTQsMHgwYSwweDg1LDB4MDIsMHg4MSwweDg0IH19LAotIHsxNiwgMHhkYzkwLCAwLCB7MHhhMCwweDQyLDB4MjgsMHgxYywweDBhLDB4YzUsMHgwMiwweDkxLDB4NDAsMHhiOCwweDczLDB4MjksMHgxMCwweGNhLDB4YzQsMHgwMiB9fSwKLSB7MTYsIDB4ZGNhMCwgMCwgezB4YTEsMHg4MCwweGE0LDB4NDIsMHgyYSwweDE0LDB4Y2EsMHg4NSwweDIyLDB4OTEsMHg4MCwweGE4LDB4NzAsMHgyYSwweDE4LDB4MDIgfX0sCi0gezE2LCAweGRjYjAsIDAsIHsweDAwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweDAwLDB4MDgsMHgwNCwweDFlLDB4MDEsMHhjOCwweDgwIH19LAotIHsxNiwgMHhkY2MwLCAwLCB7MHg0MywweDIwLDB4MTgsMHgwOCwweDQ1LDB4M2UsMHgwMSwweDBjLDB4ODAsMHg2MSwweDIwLDB4OWMsMHg0OCwweDA2LDB4MTIsMHg4MSB9fSwKLSB7MTYsIDB4ZGNkMCwgMCwgezB4YzAsMHg4MCwweDczLDB4MDAsMHgxMCwweDg4LDB4MDYsMHgwMiwweDAxLDB4YzgsMHgwMCwweDQyLDB4MjAsMHgxMCwweGM4LDB4MDcgfX0sCi0gezE2LCAweGRjZTAsIDAsIHsweDAyLDB4MTEsMHhjZCwweDgwLDB4NTEsMHgyMCwweDE0LDB4ODIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkY2YwLCAwLCB7MHgwOCwweDAwLDB4MDAsMHhjNCwweDI0LDB4MjEsMHhjOCwweDBjLDB4NDIsMHgwMSwweDE0LDB4MDAsMHgwMCwweDI4LDB4MTAsMHg0YyB9fSwKLSB7MTYsIDB4ZGQwMCwgMCwgezB4MDgsMHg1MiwweDAyLDB4MTQsMHg4MCwweDQ1LDB4MjQsMHgyOSwweDQwLDB4MDQsMHg3MiwweDAwLDB4MTAsMHhjMCwweDA1LDB4MjQgfX0sCi0gezE2LCAweGRkMTAsIDAsIHsweDExLDB4NDQsMHgwOCwweDQzLDB4MDEsMHgxNCwweGMwLDB4NDcsMHgyNCwweDIwLDB4NDgsMHgwOCwweDcyLDB4MDIsMHgxMCwweDAwIH19LAotIHsxNiwgMHhkZDIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHgxMCwweDAwLDB4MDcsMHgxMCwweDExLDB4MDYsMHgwMCB9fSwKLSB7MTYsIDB4ZGQzMCwgMCwgezB4NzIsMHgwMCwweDE4LDB4ZDAsMHg0NiwweDIwLDB4MDEsMHg0ZCwweDAwLDB4NzEsMHg0MCwweDEwLDB4NTAsMHgwNywweDMwLDB4MTEgfX0sCi0gezE2LCAweGRkNDAsIDAsIHsweGMzLDB4MDAsMHg3MSwweDQxLDB4MTAsMHhiMCwweDA1LDB4MmMsMHgwMSwweDQ5LDB4MDAsMHg0MywweDAwLDB4MWMsMHg1MCwweDQ1IH19LAotIHsxNiwgMHhkZDUwLCAwLCB7MHgzMCwweDAxLDB4OGMsMHgwMCwweDYxLDB4NDAsMHgxOCwweDQyLDB4MDQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGQ2MCwgMCwgezB4MDAsMHgwMCwweDMwLDB4YzUsMHgwMCwweDIxLDB4YzAsMHgwYywweDQwLDB4MDEsMHgxNCwweDEyLDB4NDQsMHgwNCwweDMxLDB4ODQgfX0sCi0gezE2LCAweGRkNzAsIDAsIHsweDI0LDB4NDAsMHg4MCwweDE0LDB4YTEsMHhjNywweDAwLDB4MDEsMHg0MCwweDA4LDB4NDAsMHgwMSwweDE0LDB4MjAsMHgwNSwweDIwIH19LAotIHsxNiwgMHhkZDgwLCAwLCB7MHgxMSwweGMwLDB4MDIsMHg2MCwweDgyLDB4MTgsMHgwMCwweDg3LDB4MjQsMHgxMSwweDQwLDB4MDgsMHg0MCwweDQyLDB4MTAsMHgwMiB9fSwKLSB7MTYsIDB4ZGQ5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMiwweDAwLDB4MGMsMHg4MCwweGM0LDB4MjQgfX0sCi0gezE2LCAweGRkYTAsIDAsIHsweDMxLDB4NDgsMHgwYywweDAwLDB4MDEsMHgwOCwweGMxLDB4NDEsMHgwMCwweDAwLDB4NDksMHgwMCwweDQyLDB4MDMsMHgwOCwweDEwIH19LAotIHsxNiwgMHhkZGIwLCAwLCB7MHg4MCwweDIwLDB4MjEsMHgwOSwweDBjLDB4MDIsMHgwMiwweDE4LDB4ODAsMHhjMSwweDI0LDB4MzAsMHgwOCwweDBjLDB4NDIsMHgwMSB9fSwKLSB7MTYsIDB4ZGRjMCwgMCwgezB4MTAsMHg4MCwweDgzLDB4MjAsMHgxMSwweDA4LDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRkZDAsIDAsIHsweDAwLDB4MDAsMHgxMCwweGMxLDB4MDQsMHgyMCwweDQ4LDB4MGMsMHgxMiwweDQyLDB4MDQsMHgwMCwweDgzLDB4MDAsMHgzMSwweDQ4IH19LAotIHsxNiwgMHhkZGUwLCAwLCB7MHgwMCwweDAyLDB4NDEsMHgwNCwweGEwLDB4MDcsMHgwYywweDIwLDB4NDAsMHgwMCwweDEyLDB4YzIsMHgwYywweDgwLDB4YzEsMHgyMCB9fSwKLSB7MTYsIDB4ZGRmMCwgMCwgezB4MjAsMHhjOCwweDAwLDB4MTIsMHhjMSwweDBjLDB4YjAsMHg0MSwweDIwLDB4MDAsMHg0OSwweDA4LDB4MDIsMHg0MiwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRlMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4ODAsMHgwMSwweDAwLDB4MTAsMHg4MSwweDAwIH19LAotIHsxNiwgMHhkZTEwLCAwLCB7MHgzMCwweDQwLDB4MDgsMHgyMCwweDAzLDB4MDAsMHgxMCwweGMxLDB4MjAsMHgwMiwweDAwLDB4MDQsMHg4MCwweDQwLDB4MzAsMHg5MCB9fSwKLSB7MTYsIDB4ZGUyMCwgMCwgezB4MDEsMHgxNCwweDAyLDB4NDAsMHgwNCwweDgwLDB4NDAsMHgyMCwweDAwLDB4MDksMHgwNCwweDMyLDB4MDEsMHgwOCwweGEwLDB4MDMgfX0sCi0gezE2LCAweGRlMzAsIDAsIHsweDA0LDB4MTAsMHgwOCwweDAwLDB4MjIsMHg0MCwweDAwLDB4MDAsMHgwNCwweDMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZTQwLCAwLCB7MHgwMCwweDAwLDB4MzAsMHgwMCwweDEwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHg0MCwweDAwLDB4ZjAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU1MCwgMCwgezB4MDAsMHgxMCwweDgwLDB4MDAsMHhmMCwweDAwLDB4ODAsMHg4MCwweDAwLDB4MDAsMHgyMCwweDAwLDB4MDAsMHhmMCwweDEwLDB4YTAgfX0sCi0gezE2LCAweGRlNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDIwLDB4MDAsMHgwMCwweGYwLDB4MDAsMHgxMCwweDAwLDB4MDAsMHgwMCwweDIwLDB4ODAsMHgwMCwweGNjIH19LAotIHsxNiwgMHhkZTcwLCAwLCB7MHg0MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2MsMHgzYywweDEwLDB4YTAsMHg4MCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGU4MCwgMCwgezB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweGMwLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDEwLDB4OTAsMHg4MCwweDgwLDB4MDAgfX0sCi0gezE2LCAweGRlOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwLDB4ODAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHg5MCwweDgwIH19LAotIHsxNiwgMHhkZWEwLCAwLCB7MHhlMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgxMCwweDhjLDB4MDgsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGViMCwgMCwgezB4MDAsMHgwMCwweDA5LDB4NGQsMHhiMSwweGU5LDB4MDAsMHgyNiwweDQwLDB4MmEsMHg3ZiwweGUzLDB4ZjIsMHg1NCwweDk4LDB4YzAgfX0sCi0gezE2LCAweGRlYzAsIDAsIHsweDNmLDB4ZTYsMHg0MCwweDAwLDB4MDEsMHg0MiwweDkxLDB4ZDAsMHhjMCwweDEzLDB4ZTUsMHg4NywweDYzLDB4ODMsMHhiOCwweGNkIH19LAotIHsxNiwgMHhkZWQwLCAwLCB7MHhmOSwweDAwLDB4MjYsMHg3ZiwweDAwLDB4MDAsMHgzNSwweDJlLDB4ZDUsMHgwMywweDQwLDB4M2YsMHhkOSwweGJmLDB4YjEsMHg4MCB9fSwKLSB7MTYsIDB4ZGVlMCwgMCwgezB4MDEsMHhmMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwNCwweDAyLDB4MTYsMHgxNCwweDAwLDB4MWMgfX0sCi0gezE2LCAweGRlZjAsIDAsIHsweGE4LDB4M2YsMHg4OCwweDE2LDB4MDAsMHg4MCwweDg0LDB4ODAsMHgzNywweDllLDB4YmEsMHhhMCwweDUwLDB4MTAsMHgwMiwweDEyIH19LAotIHsxNiwgMHhkZjAwLCAwLCB7MHgwMCwweDE3LDB4OTYsMHg5NywweDI2LDB4NTAsMHgxMCwweDEwLDB4ODIsMHg4MCwweDFlLDB4ODAsMHhkZSwweGJlLDB4OTQsMHgxNCB9fSwKLSB7MTYsIDB4ZGYxMCwgMCwgezB4MDIsMHgxMCwweDgwLDB4MTcsMHhiZSwweDgxLDB4OTQsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGRmMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA4LDB4YTgsMHg0NCwweDk0LDB4MjgsMHg4MCwweDAwLDB4MDAsMHgwMCwweDA4IH19LAotIHsxNiwgMHhkZjMwLCAwLCB7MHg5NCwweDIxLDB4NDQsMHg1MSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDgsMHg4NCwweDQyLDB4NDEsMHgwMSwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZGY0MCwgMCwgezB4MDAsMHgwOCwweGExLDB4NzIsMHgyMywweDQxLDB4NDAsMHgwMCwweDAwLDB4MDAsMHgwOCwweGI4LDB4MDEsMHg3OCwweDMyLDB4NDAgfX0sCi0gezE2LCAweGRmNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwIH19LAotIHsxNiwgMHhkZjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgzZiwweGY3LDB4ZmUsMHhkNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZDcsMHhkZiB9fSwKLSB7MTYsIDB4ZGY3MCwgMCwgezB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHg3ZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDM3LDB4N2YgfX0sCi0gezE2LCAweGRmODAsIDAsIHsweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZjkwLCAwLCB7MHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWUsMHhmZiwweGRlLDB4NzcsMHhjMCB9fSwKLSB7MTYsIDB4ZGZhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgxZiwweGVmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYgfX0sCi0gezE2LCAweGRmYjAsIDAsIHsweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweDdmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhkZmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCB9fSwKLSB7MTYsIDB4ZGZkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MWYsMHhjZiwweGRmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4YmYgfX0sCi0gezE2LCAweGRmZTAsIDAsIHsweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhiZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmIH19LAotIHsxNiwgMHhkZmYwLCAwLCB7MHhmZiwweGJmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTAwMCwgMCwgezB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAgfX0sCi0gezE2LCAweGUwMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MWYsMHhmZiwweDFmIH19LAotIHsxNiwgMHhlMDIwLCAwLCB7MHg3ZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyZiwweGRmLDB4ZmYsMHhjZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTAzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAgfX0sCi0gezE2LCAweGUwNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDNmLDB4YmYsMHhhZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmIH19LAotIHsxNiwgMHhlMDUwLCAwLCB7MHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhkZSwweDdmLDB4ZmYsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2YsMHhmZiB9fSwKLSB7MTYsIDB4ZTA2MCwgMCwgezB4ZmYsMHhmNywweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwNzAsIDAsIHsweDAwLDB4MDAsMHgzZiwweGZmLDB4ZmYsMHhmZiwweGMwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgzZiwweDdmLDB4ZmYsMHhmZiwweGMwIH19LAotIHsxNiwgMHhlMDgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDNmLDB4ZmUsMHhiZSB9fSwKLSB7MTYsIDB4ZTA5MCwgMCwgezB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4M2UsMHhmZiwweGQ3LDB4N2YsMHhjMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUwZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMGUwLCAwLCB7MHgzMCwweDAwLDB4MjAsMHgwMSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDQzLDB4OGUsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTBmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUxZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUyZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlMzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGUzZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlM2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU0ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU1ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU2ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTcyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlNzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTc4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlN2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTdlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU3ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTgxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTg3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlODkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZThkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU4ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTkzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTk5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTljMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGU5ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlOWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZTlmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWEyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWE4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWFlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVhZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWIxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWI3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYjkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWJkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGViZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYmYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWMzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlYzgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWM5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2IwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVjZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlY2UwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWNmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWQ4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWRlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVkZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWUxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWU3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWVkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVlZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWYwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgyMCwweDAxLDB4MDIsMHgwMiwweDAwLDB4MDAsMHgzMCwweDAwLDB4NDMsMHg4MCB9fSwKLSB7MTYsIDB4ZWYzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWY5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGVmZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhlZmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZWZmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjAyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMDcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjA4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMGQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjBlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYwZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYxZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYyZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmMzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmM2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGYzZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNDkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjRkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY0ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNGYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjUwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjUzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNTgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjU5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY1ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNWUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjVmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjYyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNjcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjY4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNmQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjZlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY2ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjcxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3MjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3NTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjc3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmNzkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3YjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2MwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjdkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY3ZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmN2YwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4MTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjgzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4NzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmODgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjg5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4YTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY4ZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOGUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjhmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjkyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5MzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5NjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOTcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4Zjk4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5OTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjliMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5YzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmOWQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZjllMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGY5ZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmExMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE0MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmE3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYTkwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFhMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhYjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWMwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmFkMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZhZTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYWYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmIwMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiMTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmIzMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI2MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiNzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYjgwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmI5MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiYTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmIwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJjMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZiZDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYmUwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmJmMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjMDAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmMyMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjMzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzQwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM1MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjNjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmYzcwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmM4MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjOTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2EwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNiMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjYzAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmY2QwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmNlMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZjZjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDAwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQxMCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkMjAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDMwLCAwLCB7MHgzMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsMHg1ZiwweGE3LDB4MzAsMHgwMCwweDgwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMyB9fSwKLSB7MTYsIDB4ZmQ0MCwgMCwgezB4MzAsMHgwMCwweDQwLDB4MGUsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAgfX0sCi0gezE2LCAweGZkNTAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwIH19LAotIHsxNiwgMHhmZDYwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MTYsIDB4ZmQ3MCwgMCwgezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MzAsMHgwMCwweDgwLDB4MDEgfX0sCi0gezE2LCAweGZkODAsIDAsIHsweDAwLDB4MDAsMHgwMCwweDA1LDB4MzAsMHgwMCwweGEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDMwLDB4MDAsMHgwMCwweDAxIH19LAotIHsxNiwgMHhmZDkwLCAwLCB7MHgwMCwweDAwLDB4NmIsMHg5NywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7NCwgMHhmZGEwLCAwLCB7MHgwMCwweDAwLDB4MDAsMHgwMCB9fSwKLSB7MCAsIDB4MDAwMCwgMSwgezB9fQotfTsKLS8vIFZFUlNJT049IDEuMC4wLjE5MQotLy8gREFURT0gMjAwMm9jdDI4Ci1zdGF0aWMgSU5URUxfSEVYX1JFQ09SRCBnX0hleFNwZGlmRnc2MltdID0gewotICB7MywweDAwMDAsMCx7MHgwMiwweDQ1LDB4Zjl9fSwKLSB7IDMsMHgwMDAzLDAsezB4MDIsMHgwZiwweGZkfX0sCi0geyAzLDB4MDAwYiwwLHsweDAyLDB4NGQsMHg5Yn19LAotIHsgMywweDAwMTMsMCx7MHgwMiwweDE3LDB4ZmR9fSwKLSB7IDMsMHgwMDFiLDAsezB4MDIsMHg0ZCwweDllfX0sCi0geyAzLDB4MDAyMywwLHsweDAyLDB4NGQsMHg3NX19LAotIHsgMywweDAwMmIsMCx7MHgwMiwweDQ2LDB4Zjd9fSwKLSB7IDMsMHgwMDMzLDAsezB4MDIsMHg0ZCwweDZjfX0sCi0geyAzLDB4MDAzYiwwLHsweDAyLDB4NGQsMHg3Y319LAotIHsgMywweDAwNDMsMCx7MHgwMiwweDQ5LDB4MDB9fSwKLSB7IDMsMHgwMDRiLDAsezB4MDIsMHg0ZCwweDhmfX0sCi0geyAzLDB4MDA1MywwLHsweDAyLDB4NGQsMHg4M319LAotIHsgMywweDAwNWIsMCx7MHgwMiwweDRkLDB4ODl9fSwKLSB7IDMsMHgwMDYzLDAsezB4MDIsMHg0ZCwweDkzfX0sCi0gezE2LDB4MDUwMCwwLHsweDEyLDB4MDEsMHgxMCwweDAxLDB4MDAsMHgwMCwweDAwLDB4NDAsMHg2YSwweDA4LDB4MTEsMHgwMSwweDAwLDB4MDEsMHgwMSwweDAyfX0sCi0gezE2LDB4MDUxMCwwLHsweDAwLDB4MDEsMHgwOSwweDAyLDB4YWMsMHgwMSwweDAzLDB4MDEsMHgwMCwweDgwLDB4MzIsMHgwOSwweDA0LDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MDUyMCwwLHsweDAxLDB4MDEsMHgwMCwweDAwLDB4MGEsMHgyNCwweDAxLDB4MDAsMHgwMSwweDU2LDB4MDAsMHgwMiwweDAxLDB4MDIsMHgwYywweDI0fX0sCi0gezE2LDB4MDUzMCwwLHsweDAyLDB4MDEsMHgwMSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MGQsMHgyNCwweDA2LDB4MDUsMHgwMSwweDAyfX0sCi0gezE2LDB4MDU0MCwwLHsweDAzLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDksMHgyNCwweDAzLDB4MDIsMHgwNCwweDAzLDB4MDAsMHgwNSwweDAwfX0sCi0gezE2LDB4MDU1MCwwLHsweDBjLDB4MjQsMHgwMiwweDAzLDB4MDUsMHgwMiwweDAwLDB4MDYsMHgwMCwweDAwLDB4MDAsMHgwMCwweDE1LDB4MjQsMHgwNiwweDA2fX0sCi0gezE2LDB4MDU2MCwwLHsweDAzLDB4MDIsMHgwMCwweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwLDB4MDMsMHgwMCwweDAzLDB4MDAsMHgwMywweDAwfX0sCi0gezE2LDB4MDU3MCwwLHsweDAwLDB4MDksMHgyNCwweDAzLDB4MDQsMHgwMSwweDAxLDB4MDAsMHgwNiwweDAwLDB4MDksMHgwNCwweDAxLDB4MDAsMHgwMCwweDAxfX0sCi0gezE2LDB4MDU4MCwwLHsweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMSwweDAxLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxfX0sCi0gezE2LDB4MDU5MCwwLHsweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxLDB4MDIsMHgwMiwweDEwLDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJifX0sCi0gezE2LDB4MDVhMCwwLHsweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDBhLDB4MDUsMHg4NCwweDAxLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxfX0sCi0gezE2LDB4MDViMCwwLHsweDAxLDB4MDAsMHgwMCwweDAwLDB4MDksMHgwNSwweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNSwweDAwLDB4MDksMHgwNCwweDAxfX0sCi0gezE2LDB4MDVjMCwwLHsweDAyLDB4MDIsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfX0sCi0gezE2LDB4MDVkMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fX0sCi0gezE2LDB4MDVlMCwwLHsweDBhLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDhmLDB4MDcsMHgyNSwweDAxLDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwOSwweDA1fX0sCi0gezE2LDB4MDVmMCwwLHsweDhmLDB4MDEsMHgwMywweDAwLDB4MDEsMHgwNSwweDAwLDB4MDksMHgwNCwweDAyLDB4MDAsMHgwMCwweDAxLDB4MDIsMHgwMCwweDAwfX0sCi0gezE2LDB4MDYwMCwwLHsweDA5LDB4MDQsMHgwMiwweDAxLDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwfX0sCi0gezE2LDB4MDYxMCwwLHsweDBlLDB4MjQsMHgwMiwweDAxLDB4MDYsMHgwMiwweDEwLDB4MDIsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwOSwweDA1fX0sCi0gezE2LDB4MDYyMCwwLHsweDhjLDB4MDUsMHg0YywweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwOSwweDA0fX0sCi0gezE2LDB4MDYzMCwwLHsweDAyLDB4MDIsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAwLDB4MDcsMHgyNCwweDAxLDB4MDQsMHgwMCwweDAxLDB4MDAsMHgwZSwweDI0fX0sCi0gezE2LDB4MDY0MCwwLHsweDAyLDB4MDEsMHgwNiwweDAzLDB4MTgsMHgwMiwweDQ0LDB4YWMsMHgwMCwweDgwLDB4YmIsMHgwMCwweDA5LDB4MDUsMHg4YywweDA1fX0sCi0gezE2LDB4MDY1MCwwLHsweDcyLDB4MDMsMHgwMSwweDAwLDB4MDAsMHgwNywweDI1LDB4MDEsMHgwMCwweDAyLDB4MDAsMHgwMCwweDA5LDB4MDQsMHgwMiwweDAzfX0sCi0gezE2LDB4MDY2MCwwLHsweDAxLDB4MDEsMHgwMiwweDAwLDB4MDAsMHgwNywweDI0LDB4MDEsMHgwNCwweDAwLDB4MDEsMHgwMCwweDExLDB4MjQsMHgwMiwweDAxfX0sCi0gezE2LDB4MDY3MCwwLHsweDAyLDB4MDIsMHgxMCwweDAzLDB4NDQsMHhhYywweDAwLDB4ODAsMHhiYiwweDAwLDB4MDAsMHg3NywweDAxLDB4MDksMHgwNSwweDhjfX0sCi0gezE2LDB4MDY4MCwwLHsweDA1LDB4ODQsMHgwMSwweDAxLDB4MDAsMHgwMCwweDA3LDB4MjUsMHgwMSwweDAwLDB4MDIsMHgwMCwweDAwLDB4MDksMHgwNCwweDAyfX0sCi0gezE2LDB4MDY5MCwwLHsweDA0LDB4MDEsMHgwMSwweDAyLDB4MDAsMHgwMCwweDA3LDB4MjQsMHgwMSwweDA0LDB4MDAsMHgwMSwweDAwLDB4MTEsMHgyNCwweDAyfX0sCi0gezE2LDB4MDZhMCwwLHsweDAxLDB4MDIsMHgwMywweDE4LDB4MDMsMHg0NCwweGFjLDB4MDAsMHg4MCwweGJiLDB4MDAsMHgwMCwweDc3LDB4MDEsMHgwOSwweDA1fX0sCi0gezE2LDB4MDZiMCwwLHsweDhjLDB4MDUsMHg0NiwweDAyLDB4MDEsMHgwMCwweDAwLDB4MDcsMHgyNSwweDAxLDB4MDAsMHgwMiwweDAwLDB4MDAsMHgwNCwweDAzfX0sCi0gezE2LDB4MDZjMCwwLHsweDA5LDB4MDQsMHgxOCwweDAzLDB4NDUsMHgwMCwweDZkLDB4MDAsMHg2MSwweDAwLDB4NjcsMHgwMCwweDY5LDB4MDAsMHg2MywweDAwfX0sCi0gezE2LDB4MDZkMCwwLHsweDIwLDB4MDAsMHg0NywweDAwLDB4NmQsMHgwMCwweDYyLDB4MDAsMHg0OCwweDAwLDB4MjIsMHgwMywweDQ1LDB4MDAsMHg2ZCwweDAwfX0sCi0gezE2LDB4MDZlMCwwLHsweDYxLDB4MDAsMHg2NywweDAwLDB4NjksMHgwMCwweDYzLDB4MDAsMHgyMCwweDAwLDB4NDUsMHgwMCwweDRkLDB4MDAsMHg0OSwweDAwfX0sCi0gezE2LDB4MDZmMCwwLHsweDIwLDB4MDAsMHgzNiwweDAwLDB4N2MsMHgwMCwweDMyLDB4MDAsMHgyMCwweDAwLDB4NmQsMHgwMCwweDJhLDB4MDMsMHg0MywweDAwfX0sCi0gezE2LDB4MDcwMCwwLHsweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDAsMHg2NywweDAwLDB4NzUsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwfX0sCi0gezE2LDB4MDcxMCwwLHsweDc0LDB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDc0LDB4MDAsMHg3MiwweDAwfX0sCi0gezE2LDB4MDcyMCwwLHsweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDMsMHg0OSwweDAwLDB4NmUsMHgwMCwweDc0LDB4MDAsMHg2NSwweDAwfX0sCi0gezE2LDB4MDczMCwwLHsweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDAsMHg2NSwweDAwLDB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwfX0sCi0gezEwLDB4MDc0MCwwLHsweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MDc0YSwwLHsweDkwLDB4NzYsMHg5YSwweDc0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDkxLDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3NiwweDkwfX0sCi0gezE2LDB4MDc1YSwwLHsweGYwLDB4OTAsMHg3NiwweDkzLDB4ZjAsMHg5MCwweDc2LDB4OTYsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMCwweGU0fX0sCi0gezE2LDB4MDc2YSwwLHsweDkwLDB4NzYsMHg5NywweGYwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTQsMHgwNCwweGYwLDB4OTAsMHg4MCwweDAwfX0sCi0gezE2LDB4MDc3YSwwLHsweGYwLDB4ZTQsMHg5MCwweDc2LDB4OGUsMHhmMCwweDkwLDB4NzYsMHgxYSwweGYwLDB4OTAsMHg3NiwweDk1LDB4MDQsMHhmMCwweGMyfX0sCi0gezE2LDB4MDc4YSwwLHsweDJlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MTAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDlifX0sCi0gezE2LDB4MDc5YSwwLHsweGUwLDB4ZmYsMHg1NCwweDEwLDB4ZmUsMHhmZiwweGJlLDB4MTAsMHgwMiwweGQyLDB4M2YsMHg5MCwweDdmLDB4OWIsMHhlMCwweGZmfX0sCi0gezE2LDB4MDdhYSwwLHsweDU0LDB4MjAsMHhmZiwweDcwLDB4MDIsMHhjMiwweDNlLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHhmZiwweDU0LDB4MjAsMHhmZSwweGZmfX0sCi0gezE2LDB4MDdiYSwwLHsweGJlLDB4MjAsMHgwMiwweGQyLDB4M2UsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwfX0sCi0gezE2LDB4MDdjYSwwLHsweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDkwLDB4ODAsMHgwMiwweGYwfX0sCi0gezE2LDB4MDdkYSwwLHsweDMwLDB4M2UsMHgwOSwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwfX0sCi0gezE2LDB4MDdlYSwwLHsweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHhhMiwweDNlLDB4OTIsMHg0MCwweGEyfX0sCi0geyAzLDB4MDdmYSwwLHsweDNmLDB4OTIsMHg0MX19LAotIHsgMSwweDA3ZmQsMCx7MHgyMn19LAotIHsgMiwweDA3ZmUsMCx7MHhkMywweDIyfX0sCi0gezE2LDB4MDgwMCwwLHsweGU0LDB4OTAsMHg3NiwweDMxLDB4ZjAsMHg5MCwweDc2LDB4MzEsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmfX0sCi0gezE2LDB4MDgxMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlZCwweGUwLDB4ZmQsMHhlZSwweDZkfX0sCi0gezE2LDB4MDgyMCwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwYiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fX0sCi0gezE2LDB4MDgzMCwwLHsweGVmLDB4YjQsMHgwYiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDAzfX0sCi0gezE2LDB4MDg0MCwwLHsweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MzMsMHhmMCwweDI0fX0sCi0gezE2LDB4MDg1MCwwLHsweGYwLDB4NjAsMHgwYSwweDI0LDB4MGUsMHg2MCwweDAyLDB4ODEsMHg4NywweDEyLDB4NGIsMHgzZSwweDIyLDB4OTAsMHg3ZiwweGVkfX0sCi0gezE2LDB4MDg2MCwwLHsweGUwLDB4NjQsMHgwNSwweDcwLDB4NTEsMHg5MCwweDc2LDB4MTgsMHg3NCwweDA1LDB4ZjAsMHg5MCwweDc2LDB4MzcsMHg3NCwweDAxfX0sCi0gezE2LDB4MDg3MCwwLHsweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDIxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHgyMCwweGYwfX0sCi0gezE2LDB4MDg4MCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg2MCwweDJmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0fX0sCi0gezE2LDB4MDg5MCwwLHsweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkfX0sCi0gezE2LDB4MDhhMCwwLHsweGVlLDB4NmQsMHg2MCwweDEyLDB4OTAsMHg3NiwweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2fX0sCi0gezE2LDB4MDhiMCwwLHsweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkMSwweDkwLDB4N2YsMHhlZCwweGUwLDB4NjQsMHgwNiwweDcwLDB4NTIsMHg5MCwweDc2fX0sCi0gezE2LDB4MDhjMCwwLHsweDE4LDB4NzQsMHgwNiwweGYwLDB4OTAsMHg3NiwweDM3LDB4NzQsMHgwNCwweGYwLDB4OTAsMHg3NiwweDM5LDB4NzQsMHgwYSwweGYwfX0sCi0gezE2LDB4MDhkMCwwLHsweDkwLDB4NzYsMHgyMSwweGYwLDB4OTAsMHg3NiwweDIwLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwfX0sCi0gezE2LDB4MDhlMCwwLHsweDJmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MDhmMCwwLHsweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZkLDB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2fX0sCi0gezE2LDB4MDkwMCwwLHsweDIxLDB4ZTAsMHhmZSwweGVmLDB4YzMsMHg5ZSwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxfX0sCi0gezE2LDB4MDkxMCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4MDkyMCwwLHsweGY1LDB4ODMsMHhlMCwweDkwLDB4NzIsMHgyOSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4M2IsMHhmMCwweDkwLDB4NzYsMHgyMSwweGUwfX0sCi0gezE2LDB4MDkzMCwwLHsweGZlLDB4ZWYsMHg2ZSwweDcwLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVifX0sCi0gezE2LDB4MDk0MCwwLHsweGUwLDB4MTQsMHg2MCwweDEzLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhlMiwweDI0LDB4MDIsMHg2MCwweDAyLDB4ODEsMHg3ZiwweDkwfX0sCi0gezE2LDB4MDk1MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4N2MsMHg5MCwweDdmfX0sCi0gezE2LDB4MDk2MCwwLHsweGVhLDB4ZTAsMHhmNCwweDcwLDB4NDgsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5fX0sCi0gezE2LDB4MDk3MCwwLHsweGUwLDB4ZmUsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZkLDB4YzMsMHg5ZSwweDUwLDB4MmIsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZlfX0sCi0gezE2LDB4MDk4MCwwLHsweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmUsMHhlZCwweDc1fX0sCi0gezE2LDB4MDk5MCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4MDlhMCwwLHsweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhjNywweDkwLDB4NzYsMHgzZiwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZSwweGMwfX0sCi0gezE2LDB4MDliMCwwLHsweGUwLDB4ZmUsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MDljMCwwLHsweGVlLDB4ZjAsMHhlMCwweGI0LDB4MDEsMHgwOCwweDkwLDB4NzYsMHgzZSwweDc0LDB4MDEsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwfX0sCi0gezE2LDB4MDlkMCwwLHsweDc2LDB4M2UsMHhmMCwweDkwLDB4NzYsMHgzZiwweDc0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4MDllMCwwLHsweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg3MCwweDAyLDB4NDEsMHhhMywweDE0LDB4NzAsMHgwMiwweDYxfX0sCi0gezE2LDB4MDlmMCwwLHsweDNmLDB4MTQsMHg3MCwweDAyLDB4NjEsMHhkYiwweDI0LDB4MDMsMHg2MCwweDAyLDB4ODEsMHg3NywweDkwLDB4N2YsMHhlYSwweGUwfX0sCi0gezE2LDB4MGEwMCwwLHsweGY0LDB4NzAsMHg2YiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmfX0sCi0gezE2LDB4MGExMCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NTAsMHg0ZSwweDkwLDB4NzYsMHgzYiwweGUwLDB4ZmYsMHgwNCwweGYwfX0sCi0gezE2LDB4MGEyMCwwLHsweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfX0sCi0gezE2LDB4MGEzMCwwLHsweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgzYiwweGUwfX0sCi0gezE2LDB4MGE0MCwwLHsweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZTAsMHhmZiwweGVlfX0sCi0gezE2LDB4MGE1MCwwLHsweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwfX0sCi0gezE2LDB4MGE2MCwwLHsweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDQwLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlfX0sCi0gezE2LDB4MGE3MCwwLHsweGMwLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyfX0sCi0gezE2LDB4MGE4MCwwLHsweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhfX0sCi0gezE2LDB4MGE5MCwwLHsweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MSwweDc0fX0sCi0gezE2LDB4MGFhMCwwLHsweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDY2LDB4OTAsMHg3NiwweDM3LDB4ZTAsMHg5MCwweDc2fX0sCi0gezE2LDB4MGFiMCwwLHsweDIwLDB4ZjAsMHg5MCwweDc2LDB4MzksMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweGMzLDB4OWYsMHg0MCwweDAyfX0sCi0gezE2LDB4MGFjMCwwLHsweDgxLDB4OGUsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGFkMCwwLHsweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGFlMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4M2IsMHhlMCwweGZmLDB4MDQsMHhmMCwweDc0LDB4YzAsMHgyZiwweGY1fX0sCi0gezE2LDB4MGFmMCwwLHsweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwLDB4ZmYsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1fX0sCi0gezE2LDB4MGIwMCwwLHsweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDc2LDB4MjAsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGEyfX0sCi0gezE2LDB4MGIxMCwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjAsMHhlMCwweGZlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFlfX0sCi0gezE2LDB4MGIyMCwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmYsMHhlZSwweDc1fX0sCi0gezE2LDB4MGIzMCwwLHsweGYwLDB4MGEsMHhhNCwweDI0LDB4YWYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE2LDB4MGI0MCwwLHsweDdmLDB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2NiwweDkwLDB4NzYsMHgzNywweGUwLDB4OTAsMHg3NiwweDIwLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4MGI1MCwwLHsweDM5LDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyMCwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDgxLDB4OGUsMHg5MCwweDc2fX0sCi0gezE2LDB4MGI2MCwwLHsweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlLDB4ZjUsMHg4MywweGUwfX0sCi0gezE2LDB4MGI3MCwwLHsweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MGI4MCwwLHsweGYwLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0LDB4ZjAsMHg3NCwweGMwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdlfX0sCi0gezE2LDB4MGI5MCwwLHsweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1fX0sCi0gezE2LDB4MGJhMCwwLHsweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhMiwweDkwLDB4N2UsMHhjMCwweGUwfX0sCi0gezE2LDB4MGJiMCwwLHsweGZmLDB4OTAsMHg3NiwweDIwLDB4ZTAsMHhmZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0fX0sCi0gezE2LDB4MGJjMCwwLHsweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0fX0sCi0gezE2LDB4MGJkMCwwLHsweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0fX0sCi0gezE2LDB4MGJlMCwwLHsweDcwLDB4NjYsMHg5MCwweDc2LDB4MzcsMHhlMCwweDkwLDB4NzYsMHgyMCwweGYwLDB4OTAsMHg3NiwweDM5LDB4ZTAsMHhmZiwweDkwfX0sCi0gezE2LDB4MGJmMCwwLHsweDc2LDB4MjAsMHhlMCwweGZlLDB4YzMsMHg5ZiwweDQwLDB4MDIsMHg4MSwweDhlLDB4OTAsMHg3NiwweDNiLDB4ZTAsMHhmZiwweDA0fX0sCi0gezE2LDB4MGMwMCwwLHsweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZWUsMHg3NSwweGYwfX0sCi0gezE2LDB4MGMxMCwwLHsweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDNifX0sCi0gezE2LDB4MGMyMCwwLHsweGUwLDB4ZmYsMHgwNCwweGYwLDB4NzQsMHhjMCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMCwweGZmfX0sCi0gezE2LDB4MGMzMCwwLHsweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZiwweGYwfX0sCi0gezE2LDB4MGM0MCwwLHsweDkwLDB4NzYsMHgyMCwweGUwLDB4MDQsMHhmMCwweDgwLDB4YTIsMHg5MCwweDdlLDB4YzAsMHhlMCwweGZmLDB4OTAsMHg3NiwweDIwfX0sCi0gezE2LDB4MGM1MCwwLHsweGUwLDB4ZmUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MGM2MCwwLHsweGYwLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZiwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MGM3MCwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE1LDB4MGM4MCwwLHsweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDBjOGYsMCx7MHg0MSwweDc2LDB4NjgsMHgwMSwweDQxLDB4NzYsMHg2YSwweDAyLDB4NDEsMHg3NiwweDZiLDB4MGEsMHhjMSwweDIwLDB4YzEsMHgyMX19LAotIHsgMiwweDBjOWYsMCx7MHhjMSwweDJmfX0sCi0geyA0LDB4MGNhMSwwLHsweDQxLDB4NzYsMHgyMywweDAwfX0sCi0gezE2LDB4MGNhNSwwLHsweDQxLDB4NzIsMHgwMSwweDAxLDB4NDUsMHg3MiwweDA1LDB4MDAsMHgwMiwweGM5LDB4MDAsMHgwMCwweDQ1LDB4NzIsMHgwYSwweDAwfX0sCi0gezE2LDB4MGNiNSwwLHsweDAxLDB4MDIsMHgwMywweDA0LDB4NGQsMHg3MiwweDBmLDB4ZDEsMHgwMCwweGQxLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGNjNSwwLHsweDI4LDB4MjgsMHgwOSwweDAwLDB4NGQsMHg3MiwweDFjLDB4MDEsMHgwMCwweDAxLDB4MDIsMHgwMywweDA0LDB4MDUsMHgwNiwweDA3fX0sCi0gezE2LDB4MGNkNSwwLHsweDA4LDB4MDksMHgwYSwweDBiLDB4NDEsMHg3MiwweDJlLDB4MjIsMHg0MSwweDcyLDB4MmYsMHgyMywweDQxLDB4NzIsMHgzMCwweDIwfX0sCi0gezE2LDB4MGNlNSwwLHsweDQxLDB4NzIsMHgzMSwweDIxLDB4NjIsMHhkMiwweDcyLDB4M2EsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGNmNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQwNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQxNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQyNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQzNSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ0NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ1NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ2NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MGQ3NSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGQ4NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGQ5NSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGRhNSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxfX0sCi0gezE2LDB4MGRiNSwwLHsweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMSwweDAxLDB4MDEsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRjNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRkNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRlNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMiwweDAyfX0sCi0gezE2LDB4MGRmNSwwLHsweDAyLDB4MDIsMHgwMiwweDAyLDB4MDIsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUwNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUxNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUyNSwwLHsweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzLDB4MDMsMHgwMywweDAzfX0sCi0gezE2LDB4MGUzNSwwLHsweDAzLDB4MDMsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU0NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU1NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU2NSwwLHsweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0LDB4MDQsMHgwNCwweDA0fX0sCi0gezE2LDB4MGU3NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGU4NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGU5NSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1fX0sCi0gezE2LDB4MGVhNSwwLHsweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNSwweDA1LDB4MDUsMHgwNiwweDA2fX0sCi0gezE2LDB4MGViNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVjNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVkNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2fX0sCi0gezE2LDB4MGVlNSwwLHsweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNiwweDA2LDB4MDYsMHgwNywweDA3LDB4MDcsMHgwOCwweDA4fX0sCi0gezE2LDB4MGVmNSwwLHsweDA4LDB4MDksMHgwOSwweDA5LDB4MGEsMHgwYSwweDBhLDB4MGIsMHgwYiwweDBiLDB4MGMsMHgwYywweDBjLDB4MGQsMHgwZCwweDBkfX0sCi0gezE2LDB4MGYwNSwwLHsweDBlLDB4MGUsMHgwZSwweDBmLDB4MGYsMHgwZiwweDEwLDB4MTAsMHgxMCwweDExLDB4MTEsMHgxMSwweDEyLDB4MTIsMHgxMiwweDEzfX0sCi0gezE2LDB4MGYxNSwwLHsweDEzLDB4MTMsMHgxNCwweDE0LDB4MTQsMHgxNSwweDE1LDB4MTUsMHgxNiwweDE2LDB4MTYsMHgxNywweDE3LDB4MTcsMHgxOCwweDE4fX0sCi0gezE2LDB4MGYyNSwwLHsweDE4LDB4MTksMHgxOSwweDE5LDB4MTksMHgxYSwweDFhLDB4MWEsMHgxYSwweDFiLDB4MWIsMHgxYiwweDFiLDB4MWMsMHgxYywweDFjfX0sCi0gezE2LDB4MGYzNSwwLHsweDFjLDB4MWQsMHgxZCwweDFkLDB4MWQsMHgxZSwweDFlLDB4MWUsMHgxZSwweDFmLDB4MWYsMHgxZiwweDFmLDB4MjAsMHgyMCwweDIwfX0sCi0gezE2LDB4MGY0NSwwLHsweDIxLDB4MjEsMHgyMSwweDIyLDB4MjIsMHgyMiwweDIzLDB4MjMsMHgyNCwweDI0LDB4MjUsMHgyNSwweDI2LDB4MjYsMHgyNywweDI3fX0sCi0gezE2LDB4MGY1NSwwLHsweDI4LDB4MjgsMHgyOSwweDI5LDB4MmEsMHgyYSwweDJiLDB4MmIsMHgyYywweDJjLDB4MmQsMHgyZCwweDJlLDB4MmUsMHgyZiwweDJmfX0sCi0gezE2LDB4MGY2NSwwLHsweDMwLDB4MzAsMHgzMSwweDMxLDB4MzIsMHgzMiwweDMzLDB4MzMsMHgzNCwweDM0LDB4MzUsMHgzNSwweDM2LDB4MzYsMHgzNywweDM3fX0sCi0gezE2LDB4MGY3NSwwLHsweDM4LDB4MzgsMHgzOSwweDM5LDB4M2EsMHgzYSwweDNiLDB4M2MsMHgzZCwweDNlLDB4M2YsMHg0MCwweDQxLDB4NDIsMHg0MywweDQ0fX0sCi0gezE2LDB4MGY4NSwwLHsweDQ1LDB4NDYsMHg0NywweDQ4LDB4NDksMHg0OSwweDRhLDB4NGIsMHg0YiwweDRjLDB4NGQsMHg0ZSwweDRmLDB4NTAsMHg1MSwweDUyfX0sCi0gezE2LDB4MGY5NSwwLHsweDUzLDB4NTQsMHg1NSwweDU1LDB4NTYsMHg1NiwweDU3LDB4NTcsMHg1OCwweDVhLDB4NWIsMHg1ZCwweDVlLDB4NWYsMHg2MSwweDYyfX0sCi0gezE2LDB4MGZhNSwwLHsweDYzLDB4NjQsMHg2NSwweDY2LDB4NjcsMHg2OCwweDY5LDB4NmEsMHg2YiwweDZjLDB4NmQsMHg2ZiwweDcxLDB4NzIsMHg3MywweDc0fX0sCi0gezE2LDB4MGZiNSwwLHsweDc1LDB4NzYsMHg3NywweDc4LDB4NzksMHg3YSwweDdiLDB4N2MsMHg3ZSwweDgwLDB4MDEsMHgzNywweDAxLDB4MDEsMHgzOCwweDAwfX0sCi0geyAxLDB4MGZjNSwwLHsweDAwfX0sCi0gezE2LDB4MGZjNiwwLHsweGU0LDB4ZmYsMHg3NCwweDQ2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDIwfX0sCi0gezE2LDB4MGZkNiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHg0ZSwweDJmLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MGZlNiwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzAsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfX0sCi0geyA2LDB4MGZmNiwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY319LAotIHsgMSwweDBmZmMsMCx7MHgyMn19LAotIHsgMywweDBmZmQsMCx7MHhjMiwweDg5LDB4MzJ9fSwKLSB7MTYsMHgxMDAwLDAsezB4ZTQsMHg5MCwweDc2LDB4MmMsMHhmMCwweDkwLDB4NzYsMHgyYywweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGZ9fSwKLSB7MTYsMHgxMDEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgxMDIwLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDBiLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyYywweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgxMDMwLDAsezB4ZWYsMHhiNCwweDBiLDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9fSwKLSB7MTYsMHgxMDQwLDAsezB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgyZSwweGYwLDB4MjR9fSwKLSB7MTYsMHgxMDUwLDAsezB4ZjAsMHg2MCwweDBhLDB4MjQsMHgwZiwweDYwLDB4MDIsMHg4MSwweDdkLDB4MTIsMHg0YiwweDFiLDB4MjIsMHg5MCwweDdmLDB4ZWR9fSwKLSB7MTYsMHgxMDYwLDAsezB4ZTAsMHg2NCwweDA1LDB4NzAsMHg1MSwweDkwLDB4NzYsMHgxOCwweDc0LDB4MDUsMHhmMCwweDkwLDB4NzYsMHgzOCwweDc0LDB4MDF9fSwKLSB7MTYsMHgxMDcwLDAsezB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MWMsMHhmMCwweGU0LDB4OTAsMHg3NiwweDFiLDB4ZjB9fSwKLSB7MTYsMHgxMDgwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDYwLDB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxMDkwLDAsezB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmR9fSwKLSB7MTYsMHgxMGEwLDAsezB4ZWUsMHg2ZCwweDYwLDB4MTIsMHg5MCwweDc2LDB4MWMsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMGIwLDAsezB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQxLDB4OTAsMHg3ZiwweGVkLDB4ZTAsMHg2NCwweDA2LDB4NzAsMHg1MiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMGMwLDAsezB4MTgsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4MzgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4M2EsMHg3NCwweDBhLDB4ZjB9fSwKLSB7MTYsMHgxMGQwLDAsezB4OTAsMHg3NiwweDFjLDB4ZjAsMHg5MCwweDc2LDB4MWIsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGY0LDB4NjB9fSwKLSB7MTYsMHgxMGUwLDAsezB4MmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgxMGYwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZmQsMHhlZSwweDZkLDB4NjAsMHgxMiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMTAwLDAsezB4MWMsMHhlMCwweGZlLDB4ZWYsMHhjMywweDllLDB4NTAsMHgwOCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDF9fSwKLSB7MTYsMHgxMTEwLDAsezB4ZTQsMHg5MCwweDc2LDB4MWUsMHhmMCwweDkwLDB4NzYsMHgxYywweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZlLDB4NmZ9fSwKLSB7MTYsMHgxMTIwLDAsezB4NzAsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWIsMHhlMCwweDE0LDB4NjB9fSwKLSB7MTYsMHgxMTMwLDAsezB4MTMsMHgxNCwweDcwLDB4MDIsMHgyMSwweGJmLDB4MjQsMHgwMiwweDYwLDB4MDIsMHg4MSwweDc1LDB4OTAsMHg3ZiwweGI0LDB4ZTB9fSwKLSB7MTYsMHgxMTQwLDAsezB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDZiLDB4OTAsMHg3ZiwweGVhLDB4ZTB9fSwKLSB7MTYsMHgxMTUwLDAsezB4ZjQsMHg3MCwweDRhLDB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmZ9fSwKLSB7MTYsMHgxMTYwLDAsezB4OTAsMHg3NiwweDFiLDB4ZTAsMHhmZCwweGMzLDB4OWYsMHg1MCwweDJiLDB4ZWQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWJ9fSwKLSB7MTYsMHgxMTcwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjB9fSwKLSB7MTYsMHgxMTgwLDAsezB4NzQsMHgwMCwweDJkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxMTkwLDAsezB4MDQsMHhmMCwweDgwLDB4YzcsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHhlZSwweDc1LDB4ZjB9fSwKLSB7MTYsMHgxMWEwLDAsezB4MGEsMHhhNCwweDI0LDB4YWIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAwLDB4ZjB9fSwKLSB7MTYsMHgxMWIwLDAsezB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTB9fSwKLSB7MTYsMHgxMWMwLDAsezB4N2YsMHhlOSwweGUwLDB4MjQsMHg3ZSwweDcwLDB4MDIsMHg0MSwweDdlLDB4MTQsMHg3MCwweDAyLDB4NjEsMHgyMywweDE0LDB4NzB9fSwKLSB7MTYsMHgxMWQwLDAsezB4MDIsMHg2MSwweGM4LDB4MjQsMHgwMywweDYwLDB4MDIsMHg4MSwweDZkLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmR9fSwKLSB7MTYsMHgxMWUwLDAsezB4OTAsMHg3NiwweDM4LDB4ZTAsMHg5MCwweDc2LDB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWJ9fSwKLSB7MTYsMHgxMWYwLDAsezB4ZTAsMHhjMywweDlmLDB4NTAsMHg0ZiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMjAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmR9fSwKLSB7MTYsMHgxMjEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWR9fSwKLSB7MTYsMHgxMjIwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZSwweDA0LDB4ZjB9fSwKLSB7MTYsMHgxMjMwLDAsezB4NzQsMHgwMCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxMjQwLDAsezB4MDQsMHhmMCwweDgwLDB4YTQsMHg5MCwweDc2LDB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWJ9fSwKLSB7MTYsMHgxMjUwLDAsezB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTB9fSwKLSB7MTYsMHgxMjYwLDAsezB4OTAsMHg3ZiwweDAwLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgxMjcwLDAsezB4ZjUsMHg4MywweGUwLDB4OTAsMHg3ZiwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxMjgwLDAsezB4ZWEsMHhlMCwweGY0LDB4NzAsMHg2ZCwweDkwLDB4NzYsMHgzOCwweGUwLDB4OTAsMHg3NiwweDFiLDB4ZjAsMHg5MCwweDc2LDB4M2F9fSwKLSB7MTYsMHgxMjkwLDAsezB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxYiwweGUwLDB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxMmEwLDAsezB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmR9fSwKLSB7MTYsMHgxMmIwLDAsezB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWUsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHgxMmMwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMmQwLDAsezB4MWUsMHhlMCwweGZlLDB4MDQsMHhmMCwweDc0LDB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWZ9fSwKLSB7MTYsMHgxMmUwLDAsezB4ZjAsMHg5MCwweDc2LDB4MWIsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDFlLDB4ZTAsMHg5MCwweDdmLDB4YjV9fSwKLSB7MTYsMHgxMmYwLDAsezB4ZjAsMHgyMiwweDkwLDB4NzYsMHgxYiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMzAwLDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWZ9fSwKLSB7MTYsMHgxMzEwLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzR9fSwKLSB7MTYsMHgxMzIwLDAsezB4MDIsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmNCwweDcwLDB4NmQsMHg5MCwweDc2LDB4MzgsMHhlMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMzMwLDAsezB4MWIsMHhmMCwweDkwLDB4NzYsMHgzYSwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MWIsMHhlMCwweGMzLDB4OWYsMHg1MCwweDRmLDB4ZTB9fSwKLSB7MTYsMHgxMzQwLDAsezB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmV9fSwKLSB7MTYsMHgxMzUwLDAsezB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZCwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjV9fSwKLSB7MTYsMHgxMzYwLDAsezB4ODMsMHhlZSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgxMzcwLDAsezB4ODMsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFlLDB4ZTAsMHhmZSwweDA0LDB4ZjAsMHg3NCwweDAwLDB4MmUsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHgxMzgwLDAsezB4MzQsMHg3ZiwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3NiwweDFiLDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhhNCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxMzkwLDAsezB4MWUsMHhlMCwweDkwLDB4N2YsMHhiNSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MWIsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTR9fSwKLSB7MTYsMHgxM2EwLDAsezB4MjQsMHhiMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHgxM2IwLDAsezB4ZjAsMHgwYSwweGE0LDB4MjQsMHhiMSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDF9fSwKLSB7MTYsMHgxM2MwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAyLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYSwweGUwLDB4ZjQsMHg3MCwweDZkLDB4OTB9fSwKLSB7MTYsMHgxM2QwLDAsezB4NzYsMHgzOCwweGUwLDB4OTAsMHg3NiwweDFiLDB4ZjAsMHg5MCwweDc2LDB4M2EsMHhlMCwweGZmLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxM2UwLDAsezB4YzMsMHg5ZiwweDUwLDB4NGYsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgxM2YwLDAsezB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmQsMHgwNCwweGYwLDB4NzQsMHgwMCwweDJkLDB4ZjV9fSwKLSB7MTYsMHgxNDAwLDAsezB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWUsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjV9fSwKLSB7MTYsMHgxNDEwLDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgxZSwweGUwLDB4ZmUsMHgwNCwweGYwLDB4NzR9fSwKLSB7MTYsMHgxNDIwLDAsezB4MDAsMHgyZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHgxYiwweGUwLDB4MDR9fSwKLSB7MTYsMHgxNDMwLDAsezB4ZjAsMHg4MCwweGE0LDB4OTAsMHg3NiwweDFlLDB4ZTAsMHg5MCwweDdmLDB4YjUsMHhmMCwweDIyLDB4OTAsMHg3NiwweDFiLDB4ZTB9fSwKLSB7MTYsMHgxNDQwLDAsezB4ZmYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4OTB9fSwKLSB7MTYsMHgxNDUwLDAsezB4N2YsMHgwMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjV9fSwKLSB7MTYsMHgxNDYwLDAsezB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9fSwKLSB7MTYsMHgxNDcwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjR9fSwKLSB7IDUsMHgxNDgwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDE0ODUsMCx7MHg3NCwweDAwLDB4ZjUsMHg4NiwweDkwLDB4ZmQsMHhhNSwweDdjLDB4MDUsMHhhMywweGU1LDB4ODIsMHg0NSwweDgzLDB4NzAsMHhmOX19LAotIHsgMSwweDE0OTUsMCx7MHgyMn19LAotIHsxNiwweDE0OTYsMCx7MHg5MCwweDdmLDB4ZDYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4ODcsMHgwMSwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn19LAotIHsxNiwweDE0YTYsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweDhmLDB4ZTAsMHhjMCwweGUwLDB4OGUsMHhlMCwweGMwLDB4ZTAsMHg4ZCwweGUwLDB4YzAsMHhlMH19LAotIHsxNiwweDE0YjYsMCx7MHg4YywweGUwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4N2QsMHgwMH19LAotIHsxNiwweDE0YzYsMCx7MHg5MCwweDdmLDB4ZTMsMHg3NCwweDdiLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweDdjLDB4MTEsMHg5MCwweDdmLDB4OTksMHhlMH19LAotIHsxNiwweDE0ZDYsMCx7MHg1NCwweDQwLDB4ZGMsMHgwMywweDAyLDB4MTQsMHhmMywweGI0LDB4MDAsMHgxMywweDkwLDB4N2YsMHhlMiwweDc0LDB4NDAsMHhmMH19LAotIHsxNiwweDE0ZTYsMCx7MHg5MCwweDdmLDB4ZTUsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDAyLDB4MTQsMHhkMiwweDkwLDB4NzYsMHg5MH19LAotIHsxNiwweDE0ZjYsMCx7MHhlMCwweGI0LDB4MDEsMHgxMiwweDkwLDB4NzYsMHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMH19LAotIHsxNiwweDE1MDYsMCx7MHg5MCwweDdmLDB4NmMsMHgwMiwweDE1LDB4NTcsMHhiNCwweDAyLDB4MTIsMHg5MCwweDc2LDB4OGYsMHhlMCwweDJkLDB4ZmQsMHg5MH19LAotIHsxNiwweDE1MTYsMCx7MHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNSwweDk2LDB4YjQsMHgwMywweDEyLDB4OTAsMHg3Nn19LAotIHsxNiwweDE1MjYsMCx7MHg4ZiwweGUwLDB4MmQsMHhmZCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHg2YywweDAyLDB4MTUsMHhlMX19LAotIHsxNiwweDE1MzYsMCx7MHhiNCwweDA0LDB4MTIsMHg5MCwweDc2LDB4OGYsMHhlMCwweDJkLDB4ZmQsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MH19LAotIHsxNiwweDE1NDYsMCx7MHg3ZiwweDZjLDB4MDIsMHgxNiwweDEwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4OTAsMHg3ZiwweDZjLDB4MDIsMHgxNn19LAotIHsxNiwweDE1NTYsMCx7MHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGRkLDB4ZjIsMHg3ZH19LAotIHsxNiwweDE1NjYsMCx7MHgwMiwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OWIsMHhlMCwweDU0LDB4MDQsMHhiNH19LAotIHsxNiwweDE1NzYsMCx7MHgwMCwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHg0MCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDA1LDB4ODYsMHhmMH19LAotIHsxNiwweDE1ODYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhkNCwweDAyLDB4MTYsMHg0MH19LAotIHsxNiwweDE1OTYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsxNiwweDE1YTYsMCx7MHhmMCwweGYwLDB4ZGQsMHhlYywweDdkLDB4MDIsMHgwNSwweDg2LDB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDE1YjYsMCx7MHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NH19LAotIHsxNiwweDE1YzYsMCx7MHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhmMH19LAotIHsgNiwweDE1ZDYsMCx7MHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjB9fSwKLSB7MTYsMHgxNWRjLDAsezB4ZGQsMHhjZSwweDAyLDB4MTYsMHg0MCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGQsMHhmYSwweDdkLDB4MDIsMHgwNSwweDg2LDB4OTB9fSwKLSB7MTYsMHgxNWVjLDAsezB4N2YsMHhlMiwweDc0LDB4MDAsMHhmMCwweDkwLDB4N2YsMHg5YiwweGUwLDB4NTQsMHgwNCwweGI0LDB4MDAsMHgwNSwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNWZjLDAsezB4MDIsMHgxNiwweDQwLDB4OTAsMHg3ZiwweGUyLDB4NzQsMHg4MCwweGYwLDB4MDUsMHg4NiwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZGR9fSwKLSB7MTYsMHgxNjBjLDAsezB4ZGMsMHgwMiwweDE2LDB4NDAsMHhmMCwweGYwLDB4ZjAsMHhmMCwweGYwLDB4ZjAsMHhkZCwweGY4LDB4N2QsMHgwMiwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNjFjLDAsezB4OTAsMHg3ZiwweGUyLDB4NzQsMHgwMCwweGYwLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHg1NCwweDA0LDB4YjQsMHgwMCwweDA1LDB4MDV9fSwKLSB7MTYsMHgxNjJjLDAsezB4ODYsMHgwMiwweDE2LDB4NDAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHgwNSwweDg2LDB4ZjAsMHhmMCwweGYwLDB4ZjB9fSwKLSB7MTYsMHgxNjNjLDAsezB4ZjAsMHhmMCwweGRkLDB4ZGEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNjRjLDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGUwLDB4ZmMsMHhkMCwweGUwLDB4ZmQsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmZ9fSwKLSB7IDUsMHgxNjVjLDAsezB4ZDAsMHhlMCwweGQwLDB4ZDAsMHgyMn19LAotIHsxNiwweDE2NjEsMCx7MHhjMCwweGQwLDB4YzAsMHhlMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4OTAsMHg3NiwweDdjLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH19LAotIHsxNiwweDE2NzEsMCx7MHg5MCwweDc2LDB4N2QsMHhlMCwweDkwLDB4N2YsMHg2ZiwweGYwLDB4OTAsMHg3NiwweDdlLDB4ZTAsMHg5MCwweDdmLDB4NmYsMHhmMH19LAotIHsgOSwweDE2ODEsMCx7MHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZTAsMHhkMCwweGQwLDB4MjJ9fSwKLSB7MTYsMHgxNjhhLDAsezB4YzAsMHhkMCwweGMwLDB4ZTAsMHg4ZiwweGUwLDB4YzAsMHhlMCwweDhlLDB4ZTAsMHhjMCwweGUwLDB4YzAsMHg4MiwweGMwLDB4ODN9fSwKLSB7MTYsMHgxNjlhLDAsezB4MDUsMHg4NiwweGMwLDB4ODQsMHhjMCwweDg1LDB4OTAsMHg3NiwweDg3LDB4ZTAsMHhmZiwweGJmLDB4MDAsMHgwMywweDAyLDB4MTd9fSwKLSB7MTYsMHgxNmFhLDAsezB4MDEsMHg5MCwweDdmLDB4OTYsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDkwLDB4N2YsMHhlMiwweDc0LDB4ODAsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxNmJhLDAsezB4NjIsMHhlMCwweDA1LDB4ODYsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHg5MCwweDdmLDB4OTYsMHhlMCwweDU0LDB4N2Z9fSwKLSB7MTYsMHgxNmNhLDAsezB4ZjAsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDgwLDB4ZjAsMHg5MCwweDc2LDB4OGUsMHhlMCwweGI0LDB4MDEsMHgwNSwweDA1LDB4ODZ9fSwKLSB7MTYsMHgxNmRhLDAsezB4MDIsMHgxNiwweGY2LDB4YjQsMHgwMiwweDA1LDB4MDUsMHg4NiwweDAyLDB4MTYsMHhlYiwweDA1LDB4ODYsMHgwMiwweDE2LDB4ZmJ9fSwKLSB7MTYsMHgxNmVhLDAsezB4ZTAsMHhlMCwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGYsMHhmOCwweDAyLDB4MTYsMHhmYiwweGUwLDB4ZTAsMHhlMCwweGUwLDB4ZGZ9fSwKLSB7MTYsMHgxNmZhLDAsezB4ZmEsMHg5MCwweDdmLDB4ZTIsMHg3NCwweDAwLDB4ZjAsMHhkMCwweDg1LDB4ZDAsMHg4NCwweDA1LDB4ODYsMHhkMCwweDgzLDB4ZDB9fSwKLSB7MTIsMHgxNzBhLDAsezB4ODIsMHhkMCwweGUwLDB4ZmUsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZDAsMHhkMCwweDIyfX0sCi0gezE2LDB4MTcxNiwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4ZDEsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifX0sCi0gezEwLDB4MTcyNiwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfX0sCi0gezE2LDB4MTczMCwwLHsweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHhlMCwweGU4LDB4YzAsMHhlMCwweDc4LDB4NzgsMHhlOCwweDE0LDB4ZjgsMHg3MCwweGZifX0sCi0gezEwLDB4MTc0MCwwLHsweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZTAsMHhkMCwweDgzLDB4ZDAsMHg4MiwweDIyfX0sCi0geyA3LDB4MTc0YSwwLHsweDkwLDB4N2YsMHhjNSwweDc0LDB4MDIsMHhmMCwweDIyfX0sCi0gezE2LDB4MTc1MSwwLHsweDkwLDB4N2UsMHhjMCwweGUwLDB4OTAsMHg3NiwweDQ1LDB4ZjAsMHg5MCwweDdlLDB4YzEsMHhlMCwweDkwLDB4NzYsMHg0NCwweGYwfX0sCi0gezE2LDB4MTc2MSwwLHsweDkwLDB4N2UsMHhjMiwweGUwLDB4OTAsMHg3NiwweDQzLDB4ZjAsMHhiNCwweDAwLDB4MDMsMHgwMiwweDE3LDB4NzgsMHg5MCwweDc2fX0sCi0gezE2LDB4MTc3MSwwLHsweDE5LDB4NzQsMHgwMywweGYwLDB4MDIsMHgxNywweDhlLDB4OTAsMHg3NiwweDQ0LDB4ZTAsMHhiNCwweGJiLDB4MDksMHg5MCwweDc2fX0sCi0gezE2LDB4MTc4MSwwLHsweDE5LDB4NzQsMHgwMiwweGYwLDB4MDIsMHgxNywweDhlLDB4OTAsMHg3NiwweDE5LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDQyfX0sCi0geyAzLDB4MTc5MSwwLHsweGU0LDB4ZjAsMHgyMn19LAotIHsgNCwweDE3OTQsMCx7MHg4ZCwweDI5LDB4OGIsMHgyYX19LAotIHsxNiwweDE3OTgsMCx7MHgxMiwweDQ5LDB4ZmYsMHhlYSwweDQ5LDB4NjAsMHg1NywweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYX19LAotIHsxNiwweDE3YTgsMCx7MHhjOSwweGVmLDB4YzksMHg3NSwweDJiLDB4ZmYsMHhmNSwweDJjLDB4ODksMHgyZCwweGFiLDB4MmIsMHhhYSwweDJjLDB4YTksMHgyZH19LAotIHsxNiwweDE3YjgsMCx7MHg5MCwweDAwLDB4MDEsMHgxMiwweDM2LDB4YWIsMHhmZiwweDY0LDB4MDQsMHg2MCwweDA1LDB4ZWYsMHg2NCwweDA1LDB4NzAsMHgyZX19LAotIHsxNiwweDE3YzgsMCx7MHhlZiwweGI0LDB4MDQsMHgxNSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MzYsMHhhYiwweDY1LDB4MjksMHg3MCwweDBiLDB4OTAsMHgwMH19LAotIHsxNiwweDE3ZDgsMCx7MHgwMywweDEyLDB4MzYsMHhhYiwweDY1LDB4MmEsMHg3MCwweDAxLDB4MjIsMHgxMiwweDM2LDB4OTIsMHg3ZSwweDAwLDB4MjksMHhmZn19LAotIHsxNiwweDE3ZTgsMCx7MHhlZSwweDNhLDB4YzksMHhlZiwweGM5LDB4NzUsMHgyYiwweGZmLDB4ZjUsMHgyYywweDg5LDB4MmQsMHg4MCwweGJjLDB4N2IsMHgwMH19LAotIHsgNCwweDE3ZjgsMCx7MHg3YSwweDAwLDB4NzksMHgwMH19LAotIHsgMSwweDE3ZmMsMCx7MHgyMn19LAotIHsgMywweDE3ZmQsMCx7MHhjMiwweDhiLDB4MzJ9fSwKLSB7MTYsMHgxODAwLDAsezB4OTAsMHg3NiwweDkwLDB4ZTAsMHgxNCwweDYwLDB4MzcsMHgxNCwweDcwLDB4MDIsMHgwMSwweGQ4LDB4MTQsMHg3MCwweDAyLDB4MjF9fSwKLSB7MTYsMHgxODEwLDAsezB4NzIsMHgxNCwweDcwLDB4MDIsMHg0MSwweDNiLDB4MjQsMHgwNCwweDYwLDB4MDIsMHg2MSwweDAzLDB4OTAsMHg3ZiwweGZjLDB4NzR9fSwKLSB7MTYsMHgxODIwLDAsezB4Y2MsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NTR9fSwKLSB7MTYsMHgxODMwLDAsezB4MDUsMHhmMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4ZTQsMHg5MCwweDc2LDB4MWEsMHhmMCwweGMyLDB4MmUsMHgyMiwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxODQwLDAsezB4OTUsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgxODUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9fSwKLSB7MTYsMHgxODYwLDAsezB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTB9fSwKLSB7MTYsMHgxODcwLDAsezB4N2YsMHhmYywweDc0LDB4NzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9fSwKLSB7MTYsMHgxODgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODB9fSwKLSB7MTYsMHgxODkwLDAsezB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyMiwweDkwLDB4N2YsMHhmYywweDc0LDB4NjgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmN9fSwKLSB7MTYsMHgxOGEwLDAsezB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTB9fSwKLSB7MTYsMHgxOGIwLDAsezB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmV9fSwKLSB7MTYsMHgxOGMwLDAsezB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmJ9fSwKLSB7MTYsMHgxOGQwLDAsezB4ZjAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmZSwweGYwLDB4NDR9fSwKLSB7MTYsMHgxOGUwLDAsezB4MDIsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTR9fSwKLSB7MTYsMHgxOGYwLDAsezB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDF9fSwKLSB7MTYsMHgxOTAwLDAsezB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDIyLDB4OTAsMHg3ZiwweGZjLDB4NzQsMHgzMCwweGYwLDB4OTB9fSwKLSB7MTYsMHgxOTEwLDAsezB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmIsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTR9fSwKLSB7MTYsMHgxOTIwLDAsezB4ZmQsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDIyLDB4OTB9fSwKLSB7MTYsMHgxOTMwLDAsezB4N2YsMHhmYywweDc0LDB4MWMsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9fSwKLSB7MTYsMHgxOTQwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODB9fSwKLSB7MTYsMHgxOTUwLDAsezB4ZjAsMHgzMCwweDNmLDB4MDksMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTd9fSwKLSB7MTYsMHgxOTYwLDAsezB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4ODAsMHgwMiwweGYwLDB4ZDJ9fSwKLSB7MTYsMHgxOTcwLDAsezB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDQsMHgwMiwweGYwLDB4NDQsMHgwOCwweGYwLDB4MzB9fSwKLSB7MTYsMHgxOTgwLDAsezB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NSwweGUwLDB4NTQsMHhmYiwweGYwLDB4OTB9fSwKLSB7MTYsMHgxOTkwLDAsezB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTAsMHg3NiwweDk1LDB4ZTAsMHg5MCwweDgwLDB4MDEsMHhmMCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxOWEwLDAsezB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDI1LDB4OTAsMHg3ZiwweGZjLDB4NzQsMHhjYywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzR9fSwKLSB7MTYsMHgxOWIwLDAsezB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmIsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZCwweGYwLDB4NTR9fSwKLSB7MTYsMHgxOWMwLDAsezB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjAsMHg5MCwweDc2LDB4ODAsMHhmMCwweGVmLDB4YjQsMHgwMiwweDI1LDB4OTB9fSwKLSB7MTYsMHgxOWQwLDAsezB4N2YsMHhmYywweDc0LDB4YzgsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmZ9fSwKLSB7MTYsMHgxOWUwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9fSwKLSB7MTYsMHgxOWYwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4OTgsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxYTAwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDVmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmR9fSwKLSB7MTYsMHgxYTEwLDAsezB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHgzMCwweDNmLDB4MDl9fSwKLSB7MTYsMHgxYTIwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7MTYsMHgxYTMwLDAsezB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweGQyLDB4MmUsMHgyMiwweDkwLDB4NzYsMHg5NSwweGUwLDB4NTR9fSwKLSB7MTYsMHgxYTQwLDAsezB4ZmUsMHhmMCwweDQ0LDB4MDIsMHhmMCwweDQ0LDB4MDgsMHhmMCwweDMwLDB4M2UsMHgwNiwweGUwLDB4NDQsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgxYTUwLDAsezB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0LDB4ZmIsMHhmMCwweDkwLDB4NzYsMHgxYSwweGUwLDB4YjQsMHgwMSwweDA4LDB4OTB9fSwKLSB7MTYsMHgxYTYwLDAsezB4NzYsMHg5NSwweGUwLDB4OTAsMHg4MCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDI1LDB4OTB9fSwKLSB7MTYsMHgxYTcwLDAsezB4N2YsMHhmYywweDc0LDB4YjQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg4ZiwweDc0LDB4MmJ9fSwKLSB7MTYsMHgxYTgwLDAsezB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGU0LDB4OTAsMHg3NiwweDgxLDB4ZjB9fSwKLSB7MTYsMHgxYTkwLDAsezB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgyNSwweDkwLDB4N2YsMHhmYywweDc0LDB4YjAsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgxYWEwLDAsezB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGYsMHg3NCwweDJmLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0LDB4MDJ9fSwKLSB7MTYsMHgxYWIwLDAsezB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4MSwweGYwLDB4OTAsMHg3NiwweDgwLDB4ZjAsMHhlZiwweGI0LDB4MDN9fSwKLSB7MTYsMHgxYWMwLDAsezB4MjUsMHg5MCwweDdmLDB4ZmMsMHg3NCwweDY4LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OGZ9fSwKLSB7MTYsMHgxYWQwLDAsezB4NzQsMHg1ZiwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg0NCwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzZ9fSwKLSB7MTYsMHgxYWUwLDAsezB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjB9fSwKLSB7MTYsMHgxYWYwLDAsezB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDJ9fSwKLSB7IDQsMHgxYjAwLDAsezB4ZjAsMHhkMiwweDJlLDB4MjJ9fSwKLSB7MTYsMHgxYjA0LDAsezB4MzAsMHgyYywweDM4LDB4YzIsMHgyYywweDkwLDB4NzYsMHgxOSwweGUwLDB4ZmYsMHhiNCwweDAxLDB4MGUsMHg5MCwweDc2LDB4N2N9fSwKLSB7MTYsMHgxYjE0LDAsezB4NzQsMHhjMCwweGYwLDB4YTMsMHg3NCwweDE0LDB4ZjAsMHhhMywweDc0LDB4MGIsMHhmMCwweGVmLDB4YjQsMHgwMiwweDBkLDB4ZTR9fSwKLSB7MTYsMHgxYjI0LDAsezB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweDc0LDB4MTAsMHhmMCwweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGJ9fSwKLSB7MTIsMHgxYjM0LDAsezB4ZTQsMHg5MCwweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHgxOCwweGYwLDB4YTMsMHhmMCwweDIyfX0sCi0gezE2LDB4MWI0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWI5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWJmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWMzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWM5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWNmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWQ5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRiMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRjMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRkMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRlMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWRmMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUwMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUxMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUyMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWUzMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU0MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU1MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU2MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU3MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU4MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWU5MCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MWVhMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE0LDB4MWViMCwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWNlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWRlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWVlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZWZlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjBlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjFlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgxZjJlLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7IDIsMHgxZjNlLDAsezB4MDAsMHgwMH19LAotIHsxNiwweDFmNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDFmZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIwZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIxZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyODAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyOTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyYzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIyZjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzMzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNDAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNTAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNiwweDIzNjAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH19LAotIHsxNCwweDIzNzAsMCx7MHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjM5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjNmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjQ5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjRmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjUzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjU5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjViZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjVmZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYwZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYxZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYyZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjYzZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY0ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY1ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY2ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY3ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY4ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjY5ZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZhZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZiZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZjZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE2LDB4MjZkZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfX0sCi0gezE0LDB4MjZlZSwwLHsweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNmZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzBjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzFjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzJjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzNjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzRjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzVjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzdjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzhjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyNzljLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2FjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2JjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2NjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2RjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7MTYsMHgyN2VjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDB9fSwKLSB7IDUsMHgyN2ZjLDAsezB4MDAsMHgwMCwweDAwLDB4MDAsMHgyMn19LAotIHsxNiwweDI4MDEsMCx7MHhjMiwweDIwLDB4YzIsMHgyMSwweGMyLDB4MmEsMHg5MCwweDdmLDB4ZTgsMHhlMCwweDEyLDB4MzcsMHhmOSwweDI4LDB4MzAsMHgwMH19LAotIHsxNiwweDI4MTEsMCx7MHgyOCwweDhjLDB4MDEsMHgyOCwweGEyLDB4MDIsMHgyYSwweDFmLDB4MjEsMHgyYSwweDZhLDB4MjIsMHgyOSwweDNkLDB4ODAsMHgyOX19LAotIHsxNiwweDI4MjEsMCx7MHg3ZCwweDgxLDB4MjksMHhkMSwweDgyLDB4MmEsMHg4NCwweGExLDB4MmEsMHhiYSwweGEyLDB4MDAsMHgwMCwweDJhLDB4YmYsMHg5MH19LAotIHsxNiwweDI4MzEsMCx7MHg3ZiwweGU5LDB4ZTAsMHgxNCwweDYwLDB4MTEsMHgyNCwweGZlLDB4NjAsMHgyOCwweDI0LDB4ZmUsMHg2MCwweDNiLDB4MjQsMHhmY319LAotIHsxNiwweDI4NDEsMCx7MHg3MCwweDQwLDB4MTIsMHg0YiwweGEwLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhNywweDQwLDB4MDIsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDI4NTEsMCx7MHhlYSwweGUwLDB4YjQsMHgwMSwweDA0LDB4YzIsMHgyMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNiwweDI4NjEsMCx7MHg0MSwweGNiLDB4MTIsMHg0ZCwweGE5LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhiNCwweDAxLDB4MDQsMHhkMiwweDIyLDB4NDEsMHhjYn19LAotIHsxNiwweDI4NzEsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsxNiwweDI4ODEsMCx7MHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgyNH19LAotIHsxNiwweDI4OTEsMCx7MHhmNSwweDcwLDB4MDUsMHgxMiwweDQ4LDB4MDAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MX19LAotIHsxNiwweDI4YTEsMCx7MHhjYiwweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHhmZCwweDYwLDB4NTQsMHgyNCwweDAyLDB4NjAsMHgwMiwweDIxLDB4MzQsMHgxMn19LAotIHsxNiwweDI4YjEsMCx7MHg0ZCwweGE3LDB4NDAsMHgwMiwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDcwLDB4MzgsMHg5MCwweDdmLDB4ZWMsMHhlMH19LAotIHsxNiwweDI4YzEsMCx7MHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNSwweGUwLDB4MjQsMHhiNH19LAotIHsxNiwweDI4ZDEsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDdmLDB4ZWMsMHhlMCwweDU0LDB4ODAsMHhmZn19LAotIHsxNiwweDI4ZTEsMCx7MHgxMywweDEzLDB4MTMsMHg1NCwweDFmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDkwLDB4N2YsMHhkNywweGYwLDB4ZTAsMHg0NH19LAotIHsxNiwweDI4ZjEsMCx7MHgyMCwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhOX19LAotIHsxNiwweDI5MDEsMCx7MHg0MCwweDAyLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhlYSwweGUwLDB4NzAsMHgyMCwweDkwLDB4N2YsMHhlYywweGUwLDB4ZjQsMHg1NH19LAotIHsxNiwweDI5MTEsMCx7MHg4MCwweGZmLDB4YzQsMHg1NCwweDBmLDB4ZmYsMHhlMCwweDU0LDB4MDcsMHgyZiwweDI1LDB4ZTAsMHgyNCwweGI0LDB4ZjUsMHg4Mn19LAotIHsxNiwweDI5MjEsMCx7MHhlNCwweDM0LDB4N2YsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX19LAotIHsxNiwweDI5MzEsMCx7MHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMH19LAotIHsxNiwweDI5NDEsMCx7MHg2MCwweDEyLDB4MjQsMHhmOCwweDYwLDB4MDksMHgyNCwweDAyLDB4NzAsMHgyOSwweDEyLDB4NDMsMHhkYiwweDQxLDB4Y2IsMHgxMn19LAotIHsxNiwweDI5NTEsMCx7MHg0ZCwweDVjLDB4NDEsMHhjYiwweDEyLDB4NGQsMHhhNSwweGEyLDB4MjIsMHhlNCwweDMzLDB4ZmYsMHgyNSwweGUwLDB4ZmYsMHhhMn19LAotIHsxNiwweDI5NjEsMCx7MHgyMywweGU0LDB4MzMsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMn19LAotIHsxNiwweDI5NzEsMCx7MHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4ZTksMHhlMH19LAotIHsxNiwweDI5ODEsMCx7MHg2MCwweDMzLDB4MjQsMHhmNiwweDYwLDB4MmEsMHgyNCwweDA0LDB4NzAsMHgzZCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhkZX19LAotIHsxNiwweDI5OTEsMCx7MHg2MCwweDBjLDB4MDQsMHg3MCwweDEyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDI5YTEsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYn19LAotIHsxNiwweDI5YjEsMCx7MHgxMiwweDQ2LDB4ODUsMHg0MSwweGNiLDB4MTIsMHg0ZCwweGE1LDB4ZTQsMHg5MCwweDdmLDB4MDAsMHhmMCwweGEzLDB4ZjAsMHg5MH19LAotIHsxNiwweDI5YzEsMCx7MHg3ZiwweGI1LDB4NzQsMHgwMiwweGYwLDB4NDEsMHhjYiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NDEsMHhjYn19LAotIHsxNiwweDI5ZDEsMCx7MHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZjQsMHg2MCwweDM0LDB4MjQsMHgwYywweDcwLDB4MzksMHgxMiwweDRkLDB4YTUsMHg5MH19LAotIHsxNiwweDI5ZTEsMCx7MHg3ZiwweGVjLDB4ZTAsMHhmNCwweDU0LDB4ODAsMHhmZiwweGM0LDB4NTQsMHgwZiwweGZmLDB4ZTAsMHg1NCwweDA3LDB4MmYsMHgyNX19LAotIHsxNiwweDI5ZjEsMCx7MHhlMCwweDI0LDB4YjQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDdmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmZCwweDkwLDB4N2YsMHgwMH19LAotIHsxNiwweDJhMDEsMCx7MHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDIsMHhmMCwweDQxLDB4Y2IsMHg5MCwweDdmLDB4YjQsMHhlMH19LAotIHsxNiwweDJhMTEsMCx7MHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg0MSwweGNiLDB4OTAsMHg3Zn19LAotIHsxNiwweDJhMjEsMCx7MHhlOSwweGUwLDB4MjQsMHhmNiwweDYwLDB4MTIsMHgxNCwweDYwLDB4MWEsMHgyNCwweDAyLDB4NzAsMHgxZCwweGQyLDB4MjAsMHg5MH19LAotIHsxNiwweDJhMzEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDEyLDB4ZDIsMHgyMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMX19LAotIHsxNiwweDJhNDEsMCx7MHhmMCwweDgwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MjAsMHgxOCwweDkwLDB4N2YsMHhlZX19LAotIHsxNiwweDJhNTEsMCx7MHhlMCwweDcwLDB4MDQsMHhhMywweGUwLDB4NjAsMHgwYiwweGQyLDB4MjksMHhkMiwweDI3LDB4MTIsMHgxNywweDRhLDB4ZDIsMHgyYX19LAotIHsxNiwweDJhNjEsMCx7MHg4MCwweDAzLDB4MTIsMHgwOCwweDAwLDB4YzIsMHgyMCwweDgwLDB4NjEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDcwLDB4MDQsMHhhM319LAotIHsxNiwweDJhNzEsMCx7MHhlMCwweDYwLDB4MGIsMHhkMiwweDI5LDB4ZDIsMHgyOCwweDEyLDB4MTcsMHg0YSwweGQyLDB4MmEsMHg4MCwweDRjLDB4MTIsMHgzOH19LAotIHsxNiwweDJhODEsMCx7MHg3NCwweDgwLDB4NDcsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDEyLDB4MTQsMHg2MCwweDFhLDB4MjQsMHgwMn19LAotIHsxNiwweDJhOTEsMCx7MHg3MCwweDFkLDB4ZDIsMHgyMSwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsMHgxMiwweGQyLDB4MjEsMHg5MH19LAotIHsxNiwweDJhYTEsMCx7MHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMH19LAotIHsxNiwweDJhYjEsMCx7MHgyMSwweDAzLDB4MTIsMHgxMCwweDAwLDB4YzIsMHgyMSwweDgwLDB4MTEsMHgxMiwweDJhLDB4ZDYsMHg4MCwweDBjLDB4MTIsMHg0ZH19LAotIHsxNiwweDJhYzEsMCx7MHhhYiwweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIwLDB4MmEsMHgwNywweDkwLDB4N2YsMHhiNH19LAotIHsgNSwweDJhZDEsMCx7MHhlMCwweDQ0LDB4MDIsMHhmMCwweDIyfX0sCi0gezE2LDB4MmFkNiwwLHsweGU0LDB4OTAsMHg3NiwweDI3LDB4ZjAsMHg5MCwweDc2LDB4MjcsMHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyfX0sCi0gezE2LDB4MmFlNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDkwLDB4N2YsMHhlYywweGUwLDB4ZmQsMHhlZSwweDZkfX0sCi0gezE2LDB4MmFmNiwwLHsweDYwLDB4MGUsMHhlZiwweGMzLDB4OTQsMHgwNiwweDUwLDB4MDgsMHg5MCwweDc2LDB4MjcsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGQ1fX0sCi0gezE2LDB4MmIwNiwwLHsweGVmLDB4YjQsMHgwNiwweDA4LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweGVmLDB4NzUsMHhmMCwweDBmfX0sCi0gezE2LDB4MmIxNiwwLHsweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDc2LDB4MjgsMHhmMCwweDI0fX0sCi0gezE2LDB4MmIyNiwwLHsweDlmLDB4NzAsMHgwMiwweGExLDB4NzQsMHgyNCwweDIxLDB4NjAsMHgwMiwweGExLDB4YTEsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0fX0sCi0gezE2LDB4MmIzNiwwLHsweDdlLDB4NzAsMHgwMiwweDYxLDB4ZmMsMHgxNCwweDcwLDB4MDIsMHg4MSwweGI1LDB4MjQsMHgwMiwweDYwLDB4MDIsMHhhMSwweDZjfX0sCi0gezE2LDB4MmI0NiwwLHsweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjfX0sCi0gezE2LDB4MmI1NiwwLHsweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4NDQsMHg3YSwweGFjLDB4NzksMHgwMCwweDc4fX0sCi0gezE2LDB4MmI2NiwwLHsweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg0NCwweGYwLDB4YTMsMHg3NCwweGFjfX0sCi0gezE2LDB4MmI3NiwwLHsweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwfX0sCi0gezE2LDB4MmI4NiwwLHsweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkfX0sCi0gezE2LDB4MmI5NiwwLHsweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4ODAsMHg3YSwweGJiLDB4NzksMHgwMCwweDc4LDB4MDAsMHhjMywweDEyfX0sCi0gezE2LDB4MmJhNiwwLHsweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwLDB4NzQsMHg4MCwweGYwLDB4YTMsMHg3NCwweGJiLDB4ZjAsMHhlNCwweGEzfX0sCi0gezE2LDB4MmJiNiwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwLDB4OTAsMHg3NiwweDI3LDB4ZTAsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0fX0sCi0gezE2LDB4MmJjNiwwLHsweDQzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZlfX0sCi0gezE2LDB4MmJkNiwwLHsweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3LDB4NzksMHgwMSwweDc4LDB4MDAsMHhjMywweDEyLDB4MzcsMHhhYiwweDYwfX0sCi0gezE2LDB4MmJlNiwwLHsweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfX0sCi0gezE2LDB4MmJmNiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3fX0sCi0gezE2LDB4MmMwNiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzfX0sCi0gezE2LDB4MmMxNiwwLHsweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzfX0sCi0gezE2LDB4MmMyNiwwLHsweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzLDB4NzQsMHhhYywweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1fX0sCi0gezE2LDB4MmMzNiwwLHsweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4MmM0NiwwLHsweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdifX0sCi0gezE2LDB4MmM1NiwwLHsweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg3MCwweDEzLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4MmM2NiwwLHsweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMywweGYwfX0sCi0gezE2LDB4MmM3NiwwLHsweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MmM4NiwwLHsweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDdiLDB4MDAsMHg3YSwweDc3fX0sCi0gezE2LDB4MmM5NiwwLHsweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3LDB4YWIsMHg2MCwweDAyLDB4YTEsMHhhOCwweDkwLDB4N2YsMHgwMCwweGYwfX0sCi0gezE2LDB4MmNhNiwwLHsweGEzLDB4NzQsMHg3NywweGYwLDB4YTMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwfX0sCi0gezE2LDB4MmNiNiwwLHsweDc2LDB4MjcsMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MmNjNiwwLHsweGUwLDB4ZmMsMHhhMywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDQ0LDB4N2EsMHhhYywweDc5fX0sCi0gezE2LDB4MmNkNiwwLHsweDAwLDB4NzgsMHgwMCwweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4NDQsMHhmMCwweGEzfX0sCi0gezE2LDB4MmNlNiwwLHsweDc0LDB4YWMsMHhmMCwweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwfX0sCi0gezE2LDB4MmNmNiwwLHsweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzfX0sCi0gezE2LDB4MmQwNiwwLHsweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDgwLDB4N2EsMHhiYiwweDc5LDB4MDAsMHg3OCwweDAwfX0sCi0gezE2LDB4MmQxNiwwLHsweGMzLDB4MTIsMHgzNywweGFiLDB4NzAsMHgxMywweDkwLDB4N2YsMHgwMCwweDc0LDB4ODAsMHhmMCwweGEzLDB4NzQsMHhiYiwweGYwfX0sCi0gezE2LDB4MmQyNiwwLHsweGU0LDB4YTMsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDMsMHhmMCwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmfX0sCi0gezE2LDB4MmQzNiwwLHsweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHhmYywweGEzLDB4ZTAsMHhmZCwweGEzfX0sCi0gezE2LDB4MmQ0NiwwLHsweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg3YiwweDAwLDB4N2EsMHg3NywweDc5LDB4MDEsMHg3OCwweDAwLDB4YzMsMHgxMiwweDM3fX0sCi0gezE2LDB4MmQ1NiwwLHsweGFiLDB4NzAsMHg0ZiwweDkwLDB4N2YsMHgwMCwweGYwLDB4YTMsMHg3NCwweDc3LDB4ZjAsMHhhMywweDc0LDB4MDEsMHhmMCwweDkwfX0sCi0gezE2LDB4MmQ2NiwwLHsweDdmLDB4YjUsMHg3NCwweDAzLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmfX0sCi0gezE2LDB4MmQ3NiwwLHsweGU5LDB4ZTAsMHgyNCwweDdmLDB4NzAsMHgxZSwweDkwLDB4NzYsMHgyNywweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDRmfX0sCi0gezE2LDB4MmQ4NiwwLHsweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0fX0sCi0gezE2LDB4MmQ5NiwwLHsweDAxLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0fX0sCi0geyAzLDB4MmRhNiwwLHsweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDJkYTksMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDJkYjksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDEsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn19LAotIHsxNiwweDJkYzksMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNX19LAotIHsxNiwweDJkZDksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZn19LAotIHsxNiwweDJkZTksMCx7MHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MTAsMHhmMH19LAotIHsxNiwweDJkZjksMCx7MHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNX19LAotIHsxNiwweDJlMDksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNH19LAotIHsxNiwweDJlMTksMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGUsMHhmNX19LAotIHsxNiwweDJlMjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAyLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZn19LAotIHsxNiwweDJlMzksMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJlNDksMCx7MHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDJlNTksMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDJlNjksMCx7MHgwMSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDJlNzksMCx7MHg3NCwweDAzLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgxMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDJlODksMCx7MHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJlOTksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH19LAotIHsxNiwweDJlYTksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA2LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDJlYjksMCx7MHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMH19LAotIHsxNiwweDJlYzksMCx7MHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDJlZDksMCx7MHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDJlZTksMCx7MHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDJlZjksMCx7MHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNiwweDJmMDksMCx7MHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMH19LAotIHsxNiwweDJmMTksMCx7MHgwMywweGE0LDB4MjQsMHgwZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwOCwweGYwLDB4ZWYsMHg3NX19LAotIHsxNiwweDJmMjksMCx7MHhmMCwweDAzLDB4YTQsMHgyNCwweDEwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MH19LAotIHsxNiwweDJmMzksMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDJmNDksMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDIsMHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4Mn19LAotIHsxNiwweDJmNTksMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNX19LAotIHsxNiwweDJmNjksMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMH19LAotIHsxNiwweDJmNzksMCx7MHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMn19LAotIHsxNiwweDJmODksMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDJmOTksMCx7MHgwOSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDJmYTksMCx7MHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNH19LAotIHsxNiwweDJmYjksMCx7MHgwZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNH19LAotIHsxNiwweDJmYzksMCx7MHgyNCwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDA3LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwM319LAotIHsxNCwweDJmZDksMCx7MHhhNCwweDI0LDB4MTAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4MDQsMHhmMCwweDIyfX0sCi0gezE2LDB4MmZlNywwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGQyLDB4MjYsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDAxfX0sCi0geyA4LDB4MmZmNywwLHsweGYwLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7IDEsMHgyZmZmLDAsezB4MzJ9fSwKLSB7MTYsMHgzMDAwLDAsezB4OTAsMHg3ZiwweGI2LDB4ZTAsMHgyMCwweGUxLDB4MDIsMHhjMiwweDNkLDB4ZDIsMHgzNiwweDIwLDB4MzYsMHgwMiwweDQxLDB4NmV9fSwKLSB7MTYsMHgzMDEwLDAsezB4MzAsMHgzZCwweDAyLDB4NDEsMHg2ZSwweDkwLDB4ODAsMHgwNywweGUwLDB4NjAsMHgwNCwweGQyLDB4MzYsMHg4MCwweDAyLDB4YzJ9fSwKLSB7MTYsMHgzMDIwLDAsezB4MzYsMHgyMCwweDM2LDB4MDIsMHg0MSwweDJlLDB4ZDIsMHgzNSwweGU0LDB4ZjUsMHgxYSwweDkwLDB4ODAsMHgwNCwweGUwLDB4ZjV9fSwKLSB7MTYsMHgzMDMwLDAsezB4MTksMHg3NCwweDA4LDB4MjUsMHgwZSwweGY4LDB4YTYsMHgxOSwweDg1LDB4MTksMHgxOCwweGU1LDB4MTgsMHgyMCwweGU3LDB4MDR9fSwKLSB7MTYsMHgzMDQwLDAsezB4ZDIsMHgzOCwweDgwLDB4MDIsMHhjMiwweDM4LDB4MzAsMHgzOCwweDAyLDB4MjEsMHhkNCwweGU0LDB4ZjUsMHgxNiwweGU1LDB4MTl9fSwKLSB7MTYsMHgzMDUwLDAsezB4YjQsMHhmMCwweDBjLDB4ZDIsMHgzOSwweDc1LDB4MDgsMHgwNCwweDc1LDB4MDksMHhmMCwweDA1LDB4MGUsMHg4MCwweDAyLDB4MDV9fSwKLSB7MTYsMHgzMDYwLDAsezB4MTYsMHhlNSwweDE5LDB4NjQsMHhmNywweDcwLDB4M2QsMHhjMiwweDM5LDB4ZTUsMHgwZSwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MTR9fSwKLSB7MTYsMHgzMDcwLDAsezB4NjAsMHgyMiwweDI0LDB4MDMsMHg3MCwweDI5LDB4NzUsMHgwOCwweDA1LDB4NzUsMHgwOSwweGY3LDB4ZTQsMHhmNSwweDBhLDB4ZjV9fSwKLSB7MTYsMHgzMDgwLDAsezB4MGIsMHg3NSwweDBlLDB4MDQsMHg4MCwweDIwLDB4NzUsMHgwOCwweDA2LDB4NzUsMHgwYSwweGY3LDB4ZTQsMHhmNSwweDBiLDB4NzV9fSwKLSB7MTYsMHgzMDkwLDAsezB4MGUsMHgwNCwweDgwLDB4MTIsMHg3NSwweDA4LDB4MDcsMHg3NSwweDBiLDB4ZjcsMHg3NSwweDBlLDB4MDQsMHg4MCwweDA3LDB4MTJ9fSwKLSB7MTYsMHgzMGEwLDAsezB4NDgsMHhmMywweDgwLDB4MDIsMHgwNSwweDE2LDB4ZTUsMHgxOSwweDU0LDB4ZjgsMHg2NCwweGY4LDB4NzAsMHgzYiwweGMyLDB4MzV9fSwKLSB7MTYsMHgzMGIwLDAsezB4ZTUsMHgxOSwweDI0LDB4MDcsMHg2MCwweDBjLDB4MjQsMHhmYywweDYwLDB4MDgsMHgyNCwweDA1LDB4MjQsMHhmOCwweDUwLDB4MDZ9fSwKLSB7MTYsMHgzMGMwLDAsezB4ODAsMHgwOCwweGQyLDB4M2EsMHg4MCwweDA2LDB4YzIsMHgzYSwweDgwLDB4MDIsMHhkMiwweDNhLDB4NzUsMHgxYSwweDAxLDB4MjB9fSwKLSB7MTYsMHgzMGQwLDAsezB4M2EsMHgxOSwweDkwLDB4N2UsMHg4MCwweDc0LDB4MGYsMHhmMCwweGEzLDB4ZTUsMHgxOSwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHgzMGUwLDAsezB4ZjAsMHg5MCwweDdmLDB4YjcsMHg3NCwweDA0LDB4ZjAsMHg4MCwweDAyLDB4MDUsMHgxNiwweDIwLDB4MzksMHg2ZCwweGU1LDB4MTl9fSwKLSB7MTYsMHgzMGYwLDAsezB4NjQsMHhmNywweDYwLDB4NjcsMHhlNSwweDFhLDB4NzAsMHg2MywweGU1LDB4MTgsMHg1NCwweGYwLDB4NjQsMHhmMCwweDcwLDB4NTl9fSwKLSB7MTYsMHgzMTAwLDAsezB4ODUsMHgxOCwweDE5LDB4ZjUsMHgwZSwweGU1LDB4MTksMHgyNCwweDBmLDB4NjAsMHgxYiwweDI0LDB4ZmUsMHg2MCwweDE3LDB4MjR9fSwKLSB7MTYsMHgzMTEwLDAsezB4ZmQsMHg2MCwweDIyLDB4MTQsMHg2MCwweDFmLDB4MjQsMHgwNSwweDcwLDB4MmYsMHg3NSwweDA4LDB4MDMsMHgwNSwweDBlLDB4ODV9fSwKLSB7MTYsMHgzMTIwLDAsezB4MTgsMHgwOSwweGQyLDB4MzcsMHg4MCwweDI4LDB4NzUsMHgwOCwweDAyLDB4MDUsMHgwZSwweDg1LDB4MTgsMHgwOSwweDc1LDB4MTR9fSwKLSB7MTYsMHgzMTMwLDAsezB4MDEsMHhkMiwweDM3LDB4ODAsMHgxOSwweDc1LDB4MDgsMHgwNSwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhlNCwweGY1LDB4MGF9fSwKLSB7MTYsMHgzMTQwLDAsezB4ZjUsMHgwYiwweDc1LDB4MGUsMHgwMywweGQyLDB4MzcsMHg4MCwweDA1LDB4MTIsMHg0OCwweGYzLDB4YzIsMHgzNSwweDMwLDB4MzV9fSwKLSB7MTYsMHgzMTUwLDAsezB4MGEsMHg4NSwweDA4LDB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweDg1LDB4MTgsMHgxOSwweGU1LDB4MTZ9fSwKLSB7MTYsMHgzMTYwLDAsezB4NjQsMHgwNCwweDcwLDB4NjIsMHhmNSwweDBlLDB4ZTUsMHgxOSwweDU0LDB4ZjAsMHhmNSwweDE5LDB4ZjUsMHgxNSwweDg1LDB4MTh9fSwKLSB7MTYsMHgzMTcwLDAsezB4MTksMHhlNSwweDE1LDB4MjQsMHg3MCwweDYwLDB4MTgsMHgyNCwweGYwLDB4NjAsMHgxNCwweDI0LDB4ZjAsMHg2MCwweDEwLDB4MjR9fSwKLSB7MTYsMHgzMTgwLDAsezB4ZjAsMHg2MCwweDFlLDB4MjQsMHhmMCwweDYwLDB4MWEsMHgyNCwweGYwLDB4NjAsMHgwNCwweDI0LDB4NjAsMHg3MCwweDI3LDB4ZTV9fSwKLSB7MTYsMHgzMTkwLDAsezB4MTUsMHhjNCwweDU0LDB4MGYsMHhmNSwweDE5LDB4ZjUsMHgwOCwweDA1LDB4MGUsMHg4NSwweDE4LDB4MDksMHhkMiwweDM3LDB4ODB9fSwKLSB7MTYsMHgzMWEwLDAsezB4MWEsMHhlNSwweDE1LDB4YzQsMHg1NCwweDBmLDB4ZjUsMHgxOSwweGY1LDB4MDgsMHgwNSwweDBlLDB4ODUsMHgxOCwweDA5LDB4NzV9fSwKLSB7MTYsMHgzMWIwLDAsezB4MTQsMHgwMSwweGQyLDB4MzcsMHg4MCwweDA1LDB4MTIsMHg0OCwweGYzLDB4YzIsMHgzNSwweDMwLDB4MzUsMHgwYSwweDg1LDB4MTl9fSwKLSB7MTYsMHgzMWMwLDAsezB4MTMsMHg4NSwweDE4LDB4MTIsMHg4MCwweDAyLDB4MDUsMHgxNiwweGU1LDB4MTYsMHhkMywweDk0LDB4MDUsMHg0MCwweDU3LDB4MTJ9fSwKLSB7MTYsMHgzMWQwLDAsezB4NDgsMHhmMywweDgwLDB4NTIsMHgzMCwweDM5LDB4MTcsMHhlNSwweDBlLDB4NzAsMHgwYSwweDg1LDB4MDgsMHgwOSwweDc1LDB4MDh9fSwKLSB7MTYsMHgzMWUwLDAsezB4MDQsMHgwNSwweDBlLDB4ODAsMHg0MSwweDc0LDB4MDgsMHgyNSwweDBlLDB4ZjgsMHhhNiwweDE5LDB4ODAsMHgzOCwweDIwLDB4Mzd9fSwKLSB7MTYsMHgzMWYwLDAsezB4MmEsMHhlNSwweDBlLDB4YjQsMHgwMSwweDBmLDB4ODUsMHgwOCwweDBhLDB4ODUsMHgwOSwweDBiLDB4ODUsMHgxMywweDA4LDB4ODV9fSwKLSB7MTYsMHgzMjAwLDAsezB4MTIsMHgwOSwweDc1LDB4MGUsMHgwNCwweGU1LDB4MTQsMHhiNCwweDAxLDB4MWMsMHg4NSwweDA4LDB4MGEsMHhlNCwweGY1LDB4MGJ9fSwKLSB7MTYsMHgzMjEwLDAsezB4ODUsMHgxMywweDA4LDB4ODUsMHgxMiwweDA5LDB4NzUsMHgwZSwweDA0LDB4ODAsMHgwYiwweGU1LDB4MTQsMHhiNCwweDAxLDB4MDZ9fSwKLSB7MTYsMHgzMjIwLDAsezB4ZTQsMHhmNSwweDBiLDB4NzUsMHgwZSwweDA0LDB4ZTQsMHhmNSwweDFhLDB4MzAsMHgzNSwweDAyLDB4MDUsMHgwZSwweGU1LDB4MGV9fSwKLSB7MTYsMHgzMjMwLDAsezB4ZDMsMHg5NCwweDAzLDB4NTAsMHgwMiwweDAxLDB4MGIsMHhjMiwweDM3LDB4ZTQsMHhmNSwweDBlLDB4ZjUsMHgxMCwweGMyLDB4MzZ9fSwKLSB7MTYsMHgzMjQwLDAsezB4ZDIsMHgzZCwweGY1LDB4MTQsMHg3NCwweDA4LDB4MjUsMHgxMCwweGY4LDB4ZTYsMHhmZiwweDc0LDB4ODAsMHgyNSwweDEwLDB4ZjV9fSwKLSB7MTYsMHgzMjUwLDAsezB4ODIsMHhlNCwweDM0LDB4N2UsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDc0LDB4MDgsMHgyNSwweDEwLDB4ZjgsMHhlNCwweGY2LDB4MDV9fSwKLSB7MTUsMHgzMjYwLDAsezB4MTAsMHhlNSwweDEwLDB4YjQsMHgwNCwweGRlLDB4OTAsMHg3ZiwweGI3LDB4NzQsMHgwNCwweGYwLDB4MDEsMHgwYiwweDIyfX0sCi0gezE2LDB4MzI2ZiwwLHsweDkwLDB4NzYsMHgxOCwweGUwLDB4ZmYsMHg2NCwweDA1LDB4NzAsMHg0MiwweDkwLDB4NzUsMHhhYiwweGUwLDB4YjQsMHgwMSwweDE5fX0sCi0gezE2LDB4MzI3ZiwwLHsweDkwLDB4NzIsMHgzNywweDc0LDB4MDEsMHhmMCwweGU0LDB4OTAsMHg4MCwweDIwLDB4ZjAsMHg5MCwweDgwLDB4MzEsMHhmMCwweDkwfX0sCi0gezE2LDB4MzI4ZiwwLHsweDgwLDB4MjgsMHhmMCwweDkwLDB4ODAsMHgzOSwweGYwLDB4ODAsMHgyMiwweGU0LDB4OTAsMHg3MiwweDM3LDB4ZjAsMHg5MCwweDc1fX0sCi0gezE2LDB4MzI5ZiwwLHsweGFkLDB4ZTAsMHg5MCwweDcyLDB4MmIsMHhmMCwweGUwLDB4MjQsMHg4MCwweGYwLDB4ZTAsMHg5MCwweDgwLDB4MjAsMHhmMCwweDkwfX0sCi0gezE2LDB4MzJhZiwwLHsweDgwLDB4MzEsMHhmMCwweDkwLDB4ODAsMHgyOCwweGYwLDB4OTAsMHg4MCwweDM5LDB4ZjAsMHhlZiwweDY0LDB4MDYsMHg2MCwweDAyfX0sCi0gezE2LDB4MzJiZiwwLHsweDgxLDB4OTksMHg5MCwweDcyLDB4MzksMHg3NCwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MzksMHhlMCwweGZmLDB4MjQsMHhmZSwweDkwfX0sCi0gezE2LDB4MzJjZiwwLHsweDcyLDB4MDQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1fX0sCi0gezE2LDB4MzJkZiwwLHsweDgzLDB4ZTAsMHg2NCwweDAxLDB4NzAsMHg1NCwweDkwLDB4NzIsMHgzNiwweDA0LDB4ZjAsMHg5MCwweDcyLDB4MDQsMHhlMCwweGZmfX0sCi0gezE2LDB4MzJlZiwwLHsweDI0LDB4ZmQsMHg2MCwweDI4LDB4MjQsMHhmZSwweDYwLDB4MjQsMHgyNCwweDAzLDB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDFjfX0sCi0gezE2LDB4MzJmZiwwLHsweDgxLDB4OGMsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg3NCwweDI4fX0sCi0gezE2LDB4MzMwZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlNCwweGYwLDB4ODEsMHg4YywweDkwLDB4NzIsMHgwNCwweGUwfX0sCi0gezE2LDB4MzMxZiwwLHsweGZmLDB4MjQsMHgzMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc0LDB4MzgsMHgyZiwweGY1fX0sCi0gezE2LDB4MzMyZiwwLHsweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHg4MSwweDhjLDB4ZTQsMHg5MCwweDcyLDB4MzYsMHhmMCwweDkwfX0sCi0gezE2LDB4MzMzZiwwLHsweDcyLDB4MzksMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MzM0ZiwwLHsweGUwLDB4ZmYsMHg3ZSwweDAwLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDcwLDB4MDYsMHg5MCwweDcyfX0sCi0gezE2LDB4MzM1ZiwwLHsweDAyLDB4NzQsMHgzYiwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDY0LDB4ODAsMHg0ZSwweDcwfX0sCi0gezE2LDB4MzM2ZiwwLHsweDA0LDB4OTAsMHg3MiwweDAyLDB4ZjAsMHhlZiwweDRlLDB4NzAsMHgwMiwweDgxLDB4MzUsMHhlZiwweDY0LDB4ODAsMHg0ZSwweDcwfX0sCi0gezE2LDB4MzM3ZiwwLHsweDAyLDB4ODEsMHgzNSwweGVmLDB4ZjgsMHhlNCwweDkwLDB4NzUsMHgwZCwweGYwLDB4ZTgsMHg5MCwweDc1LDB4MGMsMHhmMCwweDkwfX0sCi0gezE2LDB4MzM4ZiwwLHsweDcyLDB4MzQsMHhlMCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzfX0sCi0gezE2LDB4MzM5ZiwwLHsweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzUsMHgwZCwweGUwLDB4MmYsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwfX0sCi0gezE2LDB4MzNhZiwwLHsweDM0LDB4MDAsMHhmMCwweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHhlNCwweGZjLDB4ZmQsMHg3YiwweGQ2LDB4N2EsMHhhNSwweGY5fX0sCi0gezE2LDB4MzNiZiwwLHsweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTUsMHg0MCwweDBhLDB4OTAsMHg3NSwweDBjLDB4NzQsMHhhNSwweGYwLDB4YTMsMHg3NCwweGQ2fX0sCi0gezE2LDB4MzNjZiwwLHsweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTAsMHgyNCwweDJhLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4NWEsMHhmMCwweGUwfX0sCi0gezE2LDB4MzNkZiwwLHsweGZlLDB4YTMsMHhlMCwweDc4LDB4MDUsMHhjZSwweGEyLDB4ZTcsMHgxMywweGNlLDB4MTMsMHhkOCwweGY4LDB4ZmYsMHg5MCwweDc1fX0sCi0gezE2LDB4MzNlZiwwLHsweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWYsMHhmMCwweDkwLDB4NzIsMHgyYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHhkMywweDk0fX0sCi0gezE2LDB4MzNmZiwwLHsweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTQsMHg4MiwweDQwLDB4MGEsMHg5MCwweDcyLDB4MmMsMHg3NCwweDAyLDB4ZjAsMHhhMywweDc0fX0sCi0gezE2LDB4MzQwZiwwLHsweGQyLDB4ZjAsMHhjMywweDkwLDB4NzIsMHgyYywweGUwLDB4NjQsMHg4MCwweDk0LDB4ODAsMHg1MCwweDA0LDB4ZTQsMHhmMCwweGEzfX0sCi0gezE2LDB4MzQxZiwwLHsweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHgyNCwweDNhLDB4ZjUsMHg4MiwweGVlLDB4MzQsMHg3MiwweGY1fX0sCi0gezE2LDB4MzQyZiwwLHsweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDIsMHhmMCwweDkwLDB4NzIsMHgwNCwweGUwLDB4ZmYsMHgyNCwweGZkLDB4NjAsMHgyZCwweDI0fX0sCi0gezE2LDB4MzQzZiwwLHsweGZlLDB4NjAsMHgyOSwweDI0LDB4MDMsMHgyNCwweGZiLDB4NTAsMHgwNCwweDYwLDB4MjEsMHg4MCwweDQwLDB4OTAsMHg3MiwweDAyfX0sCi0gezE2LDB4MzQ0ZiwwLHsweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVlLDB4ZjAsMHg3NCwweDI4fX0sCi0gezE2LDB4MzQ1ZiwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ODAsMHgyMSwweDkwLDB4NzIsMHgwMiwweGUwfX0sCi0gezE2LDB4MzQ2ZiwwLHsweGZmLDB4OTAsMHg3MiwweDA0LDB4ZTAsMHhmZSwweDI0LDB4MzAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDgwLDB4ZjUsMHg4MywweGVmfX0sCi0gezE2LDB4MzQ3ZiwwLHsweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4OTAsMHg3MiwweDM5fX0sCi0gezExLDB4MzQ4ZiwwLHsweGUwLDB4MDQsMHhmMCwweGUwLDB4NjQsMHgwYSwweDYwLDB4MDIsMHg0MSwweGM3LDB4MjJ9fSwKLSB7MTYsMHgzNDlhLDAsezB4OTAsMHg3NiwweDE4LDB4ZTAsMHhmZiwweGI0LDB4MDUsMHgyMywweDkwLDB4NzIsMHgzNywweGUwLDB4NzAsMHgxZCwweDkwLDB4NzV9fSwKLSB7MTYsMHgzNGFhLDAsezB4YWQsMHhlMCwweDkwLDB4NzIsMHgyYiwweGYwLDB4ZTAsMHgyNCwweDgwLDB4ZjAsMHhlMCwweDkwLDB4ODAsMHgyMCwweGYwLDB4OTB9fSwKLSB7MTYsMHgzNGJhLDAsezB4ODAsMHgzMSwweGYwLDB4OTAsMHg4MCwweDI4LDB4ZjAsMHg5MCwweDgwLDB4MzksMHhmMCwweGVmLDB4NjQsMHgwNiwweDYwLDB4MDJ9fSwKLSB7MTYsMHgzNGNhLDAsezB4YzEsMHg5MSwweDkwLDB4NzIsMHgzNiwweGUwLDB4NjAsMHgwMiwweGMxLDB4OTEsMHg5MCwweDc2LDB4NDAsMHhlMCwweDcwLDB4MzF9fSwKLSB7MTYsMHgzNGRhLDAsezB4OTAsMHg3MiwweDAzLDB4NzQsMHgwMywweGYwLDB4OTAsMHg3MiwweDAzLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjR9fSwKLSB7MTYsMHgzNGVhLDAsezB4YWEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDcyLDB4MjksMHhlMCwweGZkLDB4ZWV9fSwKLSB7MTYsMHgzNGZhLDAsezB4NmQsMHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MGEsMHg1MCwweDA4LDB4OTAsMHg3MiwweDAzLDB4ZTAsMHgwNCwweGYwLDB4ODB9fSwKLSB7MTYsMHgzNTBhLDAsezB4ZDUsMHg5MCwweDcyLDB4MzksMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2LDB4NDAsMHhlMCwweDcwLDB4MDgsMHg5MCwweDcyLDB4MDN9fSwKLSB7MTYsMHgzNTFhLDAsezB4ZTAsMHg5MCwweDcyLDB4MzksMHhmMCwweDkwLDB4NzIsMHgzOSwweGUwLDB4ZmQsMHgyNCwweGZlLDB4OTAsMHg3MiwweDJhLDB4ZjB9fSwKLSB7MTYsMHgzNTJhLDAsezB4ZWQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmZ9fSwKLSB7MTYsMHgzNTNhLDAsezB4N2UsMHgwMCwweDkwLDB4NzUsMHgwYywweGVlLDB4ZjAsMHhhMywweGVmLDB4ZjAsMHg3MCwweDA2LDB4OTAsMHg3MiwweDAyLDB4NzR9fSwKLSB7MTYsMHgzNTRhLDAsezB4ODAsMHhmMCwweDkwLDB4NzUsMHgwYywweGUwLDB4ZmUsMHhhMywweGUwLDB4ZmYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDA0LDB4OTB9fSwKLSB7MTYsMHgzNTVhLDAsezB4NzIsMHgwMiwweGYwLDB4ZWYsMHg0ZSwweDcwLDB4MDIsMHhjMSwweDFiLDB4ZWYsMHg2NCwweDgwLDB4NGUsMHg3MCwweDAyLDB4YzF9fSwKLSB7MTYsMHgzNTZhLDAsezB4MWIsMHhlZiwweGY4LDB4ZTQsMHg5MCwweDc1LDB4MGQsMHhmMCwweGU4LDB4OTAsMHg3NSwweDBjLDB4ZjAsMHhlZCwweDc1LDB4ZjB9fSwKLSB7MTYsMHgzNTdhLDAsezB4MGEsMHhhNCwweDI0LDB4YWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmYsMHg5MCwweDcyLDB4MDJ9fSwKLSB7MTYsMHgzNThhLDAsezB4ZjAsMHg5MCwweDc1LDB4MGQsMHhlMCwweDJmLDB4ZjAsMHg5MCwweDc1LDB4MGMsMHhlMCwweDM0LDB4MDAsMHhmMCwweGUwLDB4ZmV9fSwKLSB7MTYsMHgzNTlhLDAsezB4YTMsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4N2IsMHhkNiwweDdhLDB4YTUsMHhmOSwweGY4LDB4ZDMsMHgxMiwweDM3LDB4OTV9fSwKLSB7MTYsMHgzNWFhLDAsezB4NDAsMHgwYSwweDkwLDB4NzUsMHgwYywweDc0LDB4YTUsMHhmMCwweGEzLDB4NzQsMHhkNiwweGYwLDB4OTAsMHg3NSwweDBkLDB4ZTB9fSwKLSB7MTYsMHgzNWJhLDAsezB4MjQsMHgyYSwweGYwLDB4OTAsMHg3NSwweDBjLDB4ZTAsMHgzNCwweDVhLDB4ZjAsMHhlMCwweGZlLDB4YTMsMHhlMCwweDc4LDB4MDV9fSwKLSB7MTYsMHgzNWNhLDAsezB4Y2UsMHhhMiwweGU3LDB4MTMsMHhjZSwweDEzLDB4ZDgsMHhmOCwweGZmLDB4OTAsMHg3NSwweDBjLDB4ZWUsMHhmMCwweGEzLDB4ZWZ9fSwKLSB7MTYsMHgzNWRhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4ZDMsMHg5NCwweGQyLDB4ZWUsMHg2NCwweDgwLDB4OTR9fSwKLSB7MTYsMHgzNWVhLDAsezB4ODIsMHg0MCwweDBhLDB4OTAsMHg3MiwweDJjLDB4NzQsMHgwMiwweGYwLDB4YTMsMHg3NCwweGQyLDB4ZjAsMHhjMywweDkwLDB4NzJ9fSwKLSB7MTYsMHgzNWZhLDAsezB4MmMsMHhlMCwweDY0LDB4ODAsMHg5NCwweDgwLDB4NTAsMHgwNCwweGU0LDB4ZjAsMHhhMywweGYwLDB4OTAsMHg3MiwweDJjLDB4ZTB9fSwKLSB7MTYsMHgzNjBhLDAsezB4ZmUsMHhhMywweGUwLDB4MjQsMHgzYSwweGY1LDB4ODIsMHhlZSwweDM0LDB4NzIsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDcyLDB4MDJ9fSwKLSB7MTYsMHgzNjFhLDAsezB4ZjAsMHg5MCwweDcyLDB4MmEsMHhlMCwweGZmLDB4MjQsMHhmZCwweDYwLDB4MmQsMHgyNCwweGZlLDB4NjAsMHgyOSwweDI0LDB4MDN9fSwKLSB7MTYsMHgzNjJhLDAsezB4MjQsMHhmYiwweDUwLDB4MDQsMHg2MCwweDIxLDB4ODAsMHg0MCwweDkwLDB4NzIsMHgwMiwweGUwLDB4ZmUsMHg3NCwweDIwLDB4MmZ9fSwKLSB7MTYsMHgzNjNhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHgyOCwweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzR9fSwKLSB7MTYsMHgzNjRhLDAsezB4ODAsMHhmNSwweDgzLDB4ZWUsMHhmMCwweDgwLDB4MjEsMHg5MCwweDcyLDB4MDIsMHhlMCwweGZmLDB4OTAsMHg3MiwweDJhLDB4ZTB9fSwKLSB7MTYsMHgzNjVhLDAsezB4ZmUsMHgyNCwweDMwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZiwweGYwLDB4NzQsMHgzOCwweDJlLDB4ZjV9fSwKLSB7MTYsMHgzNjZhLDAsezB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzLDB4ZWYsMHhmMCwweDkwLDB4NzYsMHg0MCwweGUwLDB4NzAsMHgwNiwweDkwLDB4NzJ9fSwKLSB7MTYsMHgzNjdhLDAsezB4MzksMHg3NCwweDBhLDB4ZjAsMHg5MCwweDcyLDB4MzksMHhlMCwweDA0LDB4ZjAsMHhlMCwweGMzLDB4OTQsMHgwYSwweDUwLDB4MDJ9fSwKLSB7IDgsMHgzNjhhLDAsezB4YTEsMHgxMSwweGU0LDB4OTAsMHg3NiwweDQwLDB4ZjAsMHgyMn19LAotIHsxNiwweDM2OTIsMCx7MHhiYiwweDAxLDB4MDYsMHg4OSwweDgyLDB4OGEsMHg4MywweGUwLDB4MjIsMHg1MCwweDAyLDB4ZTcsMHgyMiwweGJiLDB4ZmUsMHgwMn19LAotIHsgOSwweDM2YTIsMCx7MHhlMywweDIyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhlNCwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNmFiLDAsezB4YmIsMHgwMSwweDBjLDB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlMCwweDIyLDB4NTB9fSwKLSB7MTYsMHgzNmJiLDAsezB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGU2LDB4MjIsMHhiYiwweGZlLDB4MDYsMHhlOSwweDI1LDB4ODIsMHhmOCwweGUyLDB4MjJ9fSwKLSB7MTMsMHgzNmNiLDAsezB4ZTUsMHg4MiwweDI5LDB4ZjUsMHg4MiwweGU1LDB4ODMsMHgzYSwweGY1LDB4ODMsMHhlNCwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNmQ4LDAsezB4YzIsMHhkNSwweGVjLDB4MzAsMHhlNywweDA5LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ZWV9fSwKLSB7MTYsMHgzNmU4LDAsezB4MzAsMHhlNywweDE1LDB4YjIsMHhkNSwweGU0LDB4YzMsMHg5ZiwweGZmLDB4ZTQsMHg5ZSwweGZlLDB4MTIsMHgzOCwweDFmLDB4YzN9fSwKLSB7MTYsMHgzNmY4LDAsezB4ZTQsMHg5ZCwweGZkLDB4ZTQsMHg5YywweGZjLDB4ODAsMHgwMywweDEyLDB4MzgsMHgxZiwweDMwLDB4ZDUsMHgwNywweGMzLDB4ZTR9fSwKLSB7IDYsMHgzNzA4LDAsezB4OWYsMHhmZiwweGU0LDB4OWUsMHhmZSwweDIyfX0sCi0gezE2LDB4MzcwZSwwLHsweGJiLDB4MDEsMHgxMCwweGU1LDB4ODIsMHgyOSwweGY1LDB4ODIsMHhlNSwweDgzLDB4M2EsMHhmNSwweDgzLDB4ZTAsMHhmNSwweGYwfX0sCi0gezE2LDB4MzcxZSwwLHsweGEzLDB4ZTAsMHgyMiwweDUwLDB4MDksMHhlOSwweDI1LDB4ODIsMHhmOCwweDg2LDB4ZjAsMHgwOCwweGU2LDB4MjIsMHhiYiwweGZlfX0sCi0gezE2LDB4MzcyZSwwLHsweDBhLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHhlMiwweGY1LDB4ZjAsMHgwOCwweGUyLDB4MjIsMHhlNSwweDgzLDB4MmEsMHhmNSwweDgzfX0sCi0geyA4LDB4MzczZSwwLHsweGU5LDB4OTMsMHhmNSwweGYwLDB4YTMsMHhlOSwweDkzLDB4MjJ9fSwKLSB7MTYsMHgzNzQ2LDAsezB4ZTgsMHg4ZiwweGYwLDB4YTQsMHhjYywweDhiLDB4ZjAsMHhhNCwweDJjLDB4ZmMsMHhlOSwweDhlLDB4ZjAsMHhhNCwweDJjLDB4ZmN9fSwKLSB7MTYsMHgzNzU2LDAsezB4OGEsMHhmMCwweGVkLDB4YTQsMHgyYywweGZjLDB4ZWEsMHg4ZSwweGYwLDB4YTQsMHhjZCwweGE4LDB4ZjAsMHg4YiwweGYwLDB4YTR9fSwKLSB7MTYsMHgzNzY2LDAsezB4MmQsMHhjYywweDM4LDB4MjUsMHhmMCwweGZkLDB4ZTksMHg4ZiwweGYwLDB4YTQsMHgyYywweGNkLDB4MzUsMHhmMCwweGZjLDB4ZWJ9fSwKLSB7MTYsMHgzNzc2LDAsezB4OGUsMHhmMCwweGE0LDB4ZmUsMHhhOSwweGYwLDB4ZWIsMHg4ZiwweGYwLDB4YTQsMHhjZiwweGM1LDB4ZjAsMHgyZSwweGNkLDB4Mzl9fSwKLSB7MTUsMHgzNzg2LDAsezB4ZmUsMHhlNCwweDNjLDB4ZmMsMHhlYSwweGE0LDB4MmQsMHhjZSwweDM1LDB4ZjAsMHhmZCwweGU0LDB4M2MsMHhmYywweDIyfX0sCi0gezE2LDB4Mzc5NSwwLHsweGViLDB4OWYsMHhmNSwweGYwLDB4ZWEsMHg5ZSwweDQyLDB4ZjAsMHhlOSwweDlkLDB4NDIsMHhmMCwweGVjLDB4NjQsMHg4MCwweGM4fX0sCi0geyA2LDB4MzdhNSwwLHsweDY0LDB4ODAsMHg5OCwweDQ1LDB4ZjAsMHgyMn19LAotIHsxNiwweDM3YWIsMCx7MHhlYiwweDlmLDB4ZjUsMHhmMCwweGVhLDB4OWUsMHg0MiwweGYwLDB4ZTksMHg5ZCwweDQyLDB4ZjAsMHhlOCwweDljLDB4NDUsMHhmMH19LAotIHsgMSwweDM3YmIsMCx7MHgyMn19LAotIHsxMiwweDM3YmMsMCx7MHhlYywweGYwLDB4YTMsMHhlZCwweGYwLDB4YTMsMHhlZSwweGYwLDB4YTMsMHhlZiwweGYwLDB4MjJ9fSwKLSB7MTYsMHgzN2M4LDAsezB4YTgsMHg4MiwweDg1LDB4ODMsMHhmMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4MTIsMHgzNywweGRmLDB4MTIsMHgzNywweGRmLDB4MTJ9fSwKLSB7MTYsMHgzN2Q4LDAsezB4MzcsMHhkZiwweDEyLDB4MzcsMHhkZiwweGU0LDB4NzMsMHhlNCwweDkzLDB4YTMsMHhjNSwweDgzLDB4YzUsMHhmMCwweGM1LDB4ODN9fSwKLSB7MTYsMHgzN2U4LDAsezB4YzgsMHhjNSwweDgyLDB4YzgsMHhmMCwweGEzLDB4YzUsMHg4MywweGM1LDB4ZjAsMHhjNSwweDgzLDB4YzgsMHhjNSwweDgyLDB4Yzh9fSwKLSB7IDEsMHgzN2Y4LDAsezB4MjJ9fSwKLSB7MTYsMHgzN2Y5LDAsezB4ZDAsMHg4MywweGQwLDB4ODIsMHhmOCwweGU0LDB4OTMsMHg3MCwweDEyLDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwZCwweGEzLDB4YTN9fSwKLSB7MTYsMHgzODA5LDAsezB4OTMsMHhmOCwweDc0LDB4MDEsMHg5MywweGY1LDB4ODIsMHg4OCwweDgzLDB4ZTQsMHg3MywweDc0LDB4MDIsMHg5MywweDY4LDB4NjB9fSwKLSB7IDYsMHgzODE5LDAsezB4ZWYsMHhhMywweGEzLDB4YTMsMHg4MCwweGRmfX0sCi0gezE2LDB4MzgxZiwwLHsweGJjLDB4MDAsMHgwYiwweGJlLDB4MDAsMHgyOSwweGVmLDB4OGQsMHhmMCwweDg0LDB4ZmYsMHhhZCwweGYwLDB4MjIsMHhlNCwweGNjfX0sCi0gezE2LDB4MzgyZiwwLHsweGY4LDB4NzUsMHhmMCwweDA4LDB4ZWYsMHgyZiwweGZmLDB4ZWUsMHgzMywweGZlLDB4ZWMsMHgzMywweGZjLDB4ZWUsMHg5ZCwweGVjfX0sCi0gezE2LDB4MzgzZiwwLHsweDk4LDB4NDAsMHgwNSwweGZjLDB4ZWUsMHg5ZCwweGZlLDB4MGYsMHhkNSwweGYwLDB4ZTksMHhlNCwweGNlLDB4ZmQsMHgyMiwweGVkfX0sCi0gezE2LDB4Mzg0ZiwwLHsweGY4LDB4ZjUsMHhmMCwweGVlLDB4ODQsMHgyMCwweGQyLDB4MWMsMHhmZSwweGFkLDB4ZjAsMHg3NSwweGYwLDB4MDgsMHhlZiwweDJmfX0sCi0gezE2LDB4Mzg1ZiwwLHsweGZmLDB4ZWQsMHgzMywweGZkLDB4NDAsMHgwNywweDk4LDB4NTAsMHgwNiwweGQ1LDB4ZjAsMHhmMiwweDIyLDB4YzMsMHg5OCwweGZkfX0sCi0geyA1LDB4Mzg2ZiwwLHsweDBmLDB4ZDUsMHhmMCwweGVhLDB4MjJ9fSwKLSB7MTYsMHgzODc0LDAsezB4ZTQsMHg5MCwweDc2LDB4MjksMHhmMCwweDkwLDB4NzYsMHgyOSwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDJ9fSwKLSB7MTYsMHgzODg0LDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHgzODk0LDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA2LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyOSwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHgzOGE0LDAsezB4ZWYsMHhiNCwweDA2LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgzOGI0LDAsezB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4NzYsMHgyYSwweGYwLDB4MjR9fSwKLSB7MTYsMHgzOGM0LDAsezB4YmYsMHg3MCwweDAyLDB4NDEsMHg0MSwweDI0LDB4ZTAsMHg3MCwweDAyLDB4NDEsMHgxMiwweDI0LDB4MjEsMHg2MCwweDAyLDB4NDF9fSwKLSB7MTYsMHgzOGQ0LDAsezB4M2EsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4ZmUsMHg2MCwweDdkLDB4MTQsMHg3MCwweDAyLDB4MjEsMHhiMiwweDI0LDB4MDJ9fSwKLSB7MTYsMHgzOGU0LDAsezB4NjAsMHgwMiwweDQxLDB4MGEsMHgxMiwweDE3LDB4NTEsMHg5MCwweDc2LDB4NDIsMHhlMCwweGZjLDB4YTMsMHhlMCwweGZkLDB4YTN9fSwKLSB7MTYsMHgzOGY0LDAsezB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZiwweDkwLDB4NzYsMHgyOSwweGUwLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQzLDB4ZjV9fSwKLSB7MTYsMHgzOTA0LDAsezB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGJjLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDF9fSwKLSB7MTYsMHgzOTE0LDAsezB4MTIsMHg5MCwweDc2LDB4N2MsMHg3NCwweDY3LDB4ZjAsMHg5MCwweDc2LDB4N2QsMHg3NCwweDA2LDB4ZjAsMHg5MCwweDc2LDB4N2V9fSwKLSB7MTYsMHgzOTI0LDAsezB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTAsMHg3NiwweDdkLDB4ZjB9fSwKLSB7MTYsMHgzOTM0LDAsezB4OTAsMHg3NiwweDdlLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGYsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4OTB9fSwKLSB7MTYsMHgzOTQ0LDAsezB4NzYsMHg3ZCwweGYwLDB4OTAsMHg3NiwweDdlLDB4NzQsMHgxOCwweGYwLDB4OTAsMHg3NiwweDFhLDB4NzQsMHgwMSwweGYwLDB4MTJ9fSwKLSB7MTYsMHgzOTU0LDAsezB4M2UsMHg4ZiwweDEyLDB4MTgsMHgwMCwweDIyLDB4OTAsMHg3ZSwweGMyLDB4ZTAsMHhmZiwweGU0LDB4ZmMsMHhmZCwweGZlLDB4ZmJ9fSwKLSB7MTYsMHgzOTY0LDAsezB4ZmEsMHg3OSwweDAxLDB4ZjgsMHgxMiwweDM3LDB4NDYsMHhjOCwweGVjLDB4YzgsMHhjOSwweGVkLDB4YzksMHhjYSwweGVlLDB4Y2F9fSwKLSB7MTYsMHgzOTc0LDAsezB4Y2IsMHhlZiwweGNiLDB4OTAsMHg3ZSwweGMxLDB4ZTAsMHhmZSwweGU0LDB4ZmMsMHhmZCwweDJiLDB4ZmIsMHhlYSwweDNlLDB4ZmF9fSwKLSB7MTYsMHgzOTg0LDAsezB4ZWQsMHgzOSwweGY5LDB4ZWMsMHgzOCwweGY4LDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZiwweGU0LDB4ZmUsMHhlYiwweDJmLDB4ZmZ9fSwKLSB7MTYsMHgzOTk0LDAsezB4ZWUsMHgzYSwweGZlLDB4ZWQsMHgzOSwweGZkLDB4ZWMsMHgzOCwweGZjLDB4OTAsMHg3NiwweDI5LDB4ZTAsMHg3NSwweGYwLDB4MGZ9fSwKLSB7MTYsMHgzOWE0LDAsezB4YTQsMHgyNCwweDQ3LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YmMsMHgyMiwweDkwLDB4N2V9fSwKLSB7MTYsMHgzOWI0LDAsezB4YzIsMHhlMCwweGZmLDB4ZTQsMHhmYywweGZkLDB4ZmUsMHhmYiwweGZhLDB4NzksMHgwMSwweGY4LDB4MTIsMHgzNywweDQ2LDB4Yzh9fSwKLSB7MTYsMHgzOWM0LDAsezB4ZWMsMHhjOCwweGM5LDB4ZWQsMHhjOSwweGNhLDB4ZWUsMHhjYSwweGNiLDB4ZWYsMHhjYiwweDkwLDB4N2UsMHhjMSwweGUwLDB4ZmV9fSwKLSB7MTYsMHgzOWQ0LDAsezB4ZTQsMHhmYywweGZkLDB4MmIsMHhmYiwweGVhLDB4M2UsMHhmYSwweGVkLDB4MzksMHhmOSwweGVjLDB4MzgsMHhmOCwweDkwLDB4N2V9fSwKLSB7MTYsMHgzOWU0LDAsezB4YzAsMHhlMCwweGZmLDB4ZTQsMHhmZSwweGViLDB4MmYsMHhmZiwweGVlLDB4M2EsMHhmZSwweGVkLDB4MzksMHhmZCwweGVjLDB4Mzh9fSwKLSB7MTYsMHgzOWY0LDAsezB4ZmMsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzV9fSwKLSB7MTYsMHgzYTA0LDAsezB4ZjUsMHg4MywweDEyLDB4MzcsMHhiYywweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTYsMHgzYTE0LDAsezB4ZTksMHhlMCwweDE0LDB4NzAsMHgxOSwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZmYsMHg5MCwweDc2LDB4MjksMHhlMCwweDc1LDB4ZjB9fSwKLSB7MTYsMHgzYTI0LDAsezB4MGYsMHhhNCwweDI0LDB4NGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGVmLDB4ZjAsMHgyMiwweDkwLDB4N2Z9fSwKLSB7MTQsMHgzYTM0LDAsezB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDNhNDIsMCx7MHhlNCwweDkwLDB4NzYsMHgzNSwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHhmZiwweGMzLDB4OTQsMHgwMywweDQwLDB4MDIsMHg0MX19LAotIHsxNiwweDNhNTIsMCx7MHhmZiwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZn19LAotIHsxNiwweDNhNjIsMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFiLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNH19LAotIHsxNiwweDNhNzIsMCx7MHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDNhODIsMCx7MHhmMCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDNhOTIsMCx7MHg3NCwweGZmLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNhYTIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNhYjIsMCx7MHg4MywweDc0LDB4ODAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhYzIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZDIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZTIsMCx7MHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIzLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNhZjIsMCx7MHhmNSwweDgzLDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHgwNCwweGYwLDB4NDEsMHg0NywweDkwLDB4NzYsMHgzY319LAotIHsxNiwweDNiMDIsMCx7MHg3NCwweDBhLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4MzUsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4M2MsMHhlMH19LAotIHsxNiwweDNiMTIsMCx7MHhmZiwweDkwLDB4NzYsMHgzNSwweGUwLDB4ZmUsMHhjMywweDlmLDB4NDAsMHgwMiwweDYxLDB4ZDIsMHg5MCwweDc2LDB4M2QsMHhlMH19LAotIHsxNiwweDNiMjIsMCx7MHhmZiwweDA0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYSwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiMzIsMCx7MHg4MywweGVmLDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiNDIsMCx7MHg4MywweGU0LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhYywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNX19LAotIHsxNiwweDNiNTIsMCx7MHg4MywweDc0LDB4NWUsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGFkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NX19LAotIHsxNiwweDNiNjIsMCx7MHhmNSwweDgzLDB4NzQsMHhiYSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YWUsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDNiNzIsMCx7MHg3NSwweGY1LDB4ODMsMHg3NCwweDA1LDB4ZjAsMHhlZSwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHhhZiwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNiODIsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIwLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiOTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIxLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiYTIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVlLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweGIyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiYjIsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgxNSwweGYwLDB4ZWUsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4YjMsMHhmNX19LAotIHsxNiwweDNiYzIsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4OTAsMHg3NiwweDM1LDB4ZTAsMHgwNCwweGYwLDB4NjEsMHgwZX19LAotIHsgMSwweDNiZDIsMCx7MHgyMn19LAotIHsxNiwweDNiZDMsMCx7MHhlNCwweDkwLDB4NzYsMHgzNiwweGYwLDB4ZTAsMHhmYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNiZTMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNiZjMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwYSwweGYwLDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDMsMHhmNX19LAotIHsxNiwweDNjMDMsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMH19LAotIHsxNiwweDNjMTMsMCx7MHgwZiwweGE0LDB4MjQsMHg0NywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMH19LAotIHsxNiwweDNjMjMsMCx7MHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NGIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsxNiwweDNjMzMsMCx7MHgxMiwweDM3LDB4YzgsMHgwMCwweDAxLDB4NzcsMHgwMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmIsMHg3NX19LAotIHsxNiwweDNjNDMsMCx7MHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDQwLDB4ZjAsMHhlYn19LAotIHsxNiwweDNjNTMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4OGMsMHhmMH19LAotIHsxNiwweDNjNjMsMCx7MHhlYiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzN319LAotIHsxNiwweDNjNzMsMCx7MHhjOCwweDAwLDB4MDAsMHhhYywweDQ0LDB4ZWIsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDcsMHhmNSwweDgyLDB4ZTQsMHgzNH19LAotIHsxNiwweDNjODMsMCx7MHg3NSwweGY1LDB4ODMsMHgxMiwweDM3LDB4YzgsMHgwMCwweDAwLDB4YWMsMHg0NCwweGViLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNH19LAotIHsxNiwweDNjOTMsMCx7MHg0YiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4MTIsMHgzNywweGM4LDB4MDAsMHgwMSwweDc3LDB4MDAsMHg5MH19LAotIHsxNiwweDNjYTMsMCx7MHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNH19LAotIHsxNiwweDNjYjMsMCx7MHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDAsMHhmMCwweGVmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQyLDB4ZjUsMHg4Mn19LAotIHsxNiwweDNjYzMsMCx7MHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4ZiwweGYwLDB4OTAsMHg3NiwweDM2LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhmZn19LAotIHsxNiwweDNjZDMsMCx7MHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4NDEsMHhmMH19LAotIHsxNiwweDNjZTMsMCx7MHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0MiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHg4NH19LAotIHsxNiwweDNjZjMsMCx7MHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDEsMHhmNX19LAotIHsxNiwweDNkMDMsMCx7MHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDYxLDB4ZjAsMHhlZiwweDc1LDB4ZjAsMHgwZiwweGE0LDB4MjQsMHg0Mn19LAotIHsxNiwweDNkMTMsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweDc0LDB4ODEsMHhmMCwweDkwLDB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDNkMjMsMCx7MHhlMCwweGZmLDB4NzUsMHhmMCwweDBmLDB4YTQsMHgyNCwweDQxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NH19LAotIHsxNiwweDNkMzMsMCx7MHg2MSwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MGYsMHhhNCwweDI0LDB4NDIsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4M319LAotIHsgNCwweDNkNDMsMCx7MHg3NCwweDAxLDB4ZjAsMHgyMn19LAotIHsxNiwweDNkNDcsMCx7MHhjMCwweGUwLDB4YzAsMHhmMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4YzAsMHhkMCwweGU4LDB4YzAsMHhlMCwweGU5LDB4YzAsMHhlMH19LAotIHsxNiwweDNkNTcsMCx7MHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLDB4ZTAsMHhlYywweGMwLDB4ZTAsMHhlZCwweGMwLDB4ZTAsMHhlZSwweGMwLDB4ZTAsMHhlZn19LAotIHsxNiwweDNkNjcsMCx7MHhjMCwweGUwLDB4OTAsMHg3ZiwweGEyLDB4ZTAsMHg5MCwweDc2LDB4N2YsMHhmMCwweDkwLDB4N2YsMHg3NCwweGUwLDB4OTAsMHg3Nn19LAotIHsxNiwweDNkNzcsMCx7MHg4NywweGYwLDB4OTAsMHg3ZiwweDc1LDB4ZTAsMHg5MCwweDc2LDB4ODgsMHhmMCwweDkwLDB4N2YsMHg5OCwweGUwLDB4NDQsMHgwMn19LAotIHsxNiwweDNkODcsMCx7MHhmMCwweDkwLDB4NzYsMHg5NiwweGUwLDB4ZmYsMHgyMCwweGUxLDB4MGMsMHg0NCwweDAyLDB4ZjAsMHg5MCwweDgwLDB4MDMsMHhmMH19LAotIHsxNiwweDNkOTcsMCx7MHhkMiwweDMyLDB4MTIsMHg0YSwweGM0LDB4OTAsMHg3NiwweDdmLDB4ZTAsMHgyMCwweGUyLDB4NTAsMHg5MCwweDc2LDB4ODcsMHhlMH19LAotIHsxNiwweDNkYTcsMCx7MHhmZSwweGEzLDB4ZTAsMHg3YywweDAwLDB4MjQsMHgwMCwweGY1LDB4MzQsMHhlYywweDNlLDB4ZjUsMHgzMywweDkwLDB4NzYsMHg5OH19LAotIHsxNiwweDNkYjcsMCx7MHhlMCwweGZkLDB4YWUsMHgzMywweGFmLDB4MzQsMHgxMiwweDM2LDB4ZDgsMHg5MCwweDc2LDB4ODcsMHhlZiwweGYwLDB4ZDIsMHgyZn19LAotIHsxNiwweDNkYzcsMCx7MHgzMCwweDMxLDB4MjksMHgyMCwweDNmLDB4MjYsMHhjMiwweDMxLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHg5MH19LAotIHsxNiwweDNkZDcsMCx7MHg3ZiwweDlhLDB4ZTAsMHgzMCwweGU0LDB4MDQsMHhkMiwweDJkLDB4YzIsMHgyYywweDkwLDB4N2YsMHg5YSwweGUwLDB4MjAsMHhlNX19LAotIHsxNiwweDNkZTcsMCx7MHgwNCwweGMyLDB4MmQsMHhkMiwweDJjLDB4OTAsMHg3ZiwweDk0LDB4ZTAsMHg0NCwweDMwLDB4ZjAsMHgxMiwweDRhLDB4NTAsMHgxMn19LAotIHsxNiwweDNkZjcsMCx7MHgxYiwweDA0LDB4MzAsMHgyZiwweDEyLDB4MTIsMHg0MiwweDE2LDB4YzIsMHgyZiwweDc1LDB4ZTgsMHgwMSwweDEyLDB4MTYsMHg4YX19LAotIHsxNiwweDNlMDcsMCx7MHg3NSwweGU4LDB4MGQsMHhkMiwweDJiLDB4ODAsMHgwNSwweDc1LDB4ZTgsMHgwMSwweGMyLDB4MmIsMHgyMCwweDJiLDB4MzQsMHg5MH19LAotIHsxNiwweDNlMTcsMCx7MHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgwZSwweDkwLDB4NzYsMHg3YywweDc0LDB4NjcsMHhmMCwweGEzLDB4NzQsMHgwNn19LAotIHsxNiwweDNlMjcsMCx7MHhmMCwweGEzLDB4NzQsMHgwYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGIsMHg5MCwweDc2LDB4N2MsMHhlNCwweGYwLDB4YTMsMHhmMH19LAotIHsxNiwweDNlMzcsMCx7MHhhMywweDc0LDB4MGMsMHhmMCwweGVmLDB4YjQsMHgwMywweDBiLDB4OTAsMHg3NiwweDdjLDB4ZTQsMHhmMCwweGEzLDB4ZjAsMHhhM319LAotIHsxNiwweDNlNDcsMCx7MHg3NCwweDE4LDB4ZjAsMHg3NSwweGNhLDB4ZDMsMHg3NSwweGNiLDB4ZmUsMHhkMiwweGNhLDB4MzAsMHgzNCwweDA0LDB4YzIsMHgzNH19LAotIHsxNiwweDNlNTcsMCx7MHg4MCwweDAyLDB4ZDIsMHgzNCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGYwLDB4OTAsMHg3Zn19LAotIHsxNiwweDNlNjcsMCx7MHg5OCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMH19LAotIHsxNiwweDNlNzcsMCx7MHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMH19LAotIHsgOCwweDNlODcsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGYwLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4M2U4ZiwwLHsweDkwLDB4NzYsMHg5MiwweGUwLDB4MTQsMHg2MCwweDFkLDB4MTQsMHg3MCwweDAyLDB4ZTEsMHg0NCwweDI0LDB4MDIsMHg2MCwweDAyfX0sCi0gezE2LDB4M2U5ZiwwLHsweGUxLDB4ZDQsMHg5MCwweDc2LDB4OTQsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDgwLDB4MDAsMHhmMCwweGU0LDB4OTAsMHg3NiwweDhlfX0sCi0gezE2LDB4M2VhZiwwLHsweGYwLDB4ZDIsMHgzMSwweDIyLDB4OTAsMHg3NiwweDE5LDB4ZTAsMHhmZiwweGI0LDB4MDEsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfX0sCi0gezE2LDB4M2ViZiwwLHsweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4M2VjZiwwLHsweGUwLDB4NTQsMHhmZCwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MWIsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfX0sCi0gezE2LDB4M2VkZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4MzQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfX0sCi0gezE2LDB4M2VlZiwwLHsweDQ0LDB4MDIsMHhmMCwweDU0LDB4ZmIsMHhmMCwweGVmLDB4YjQsMHgwMywweDE4LDB4ZTQsMHg5MCwweDdmLDB4ZjIsMHhmMCwweDkwfX0sCi0gezE2LDB4M2VmZiwwLHsweDdmLDB4ZjMsMHg3NCwweDY0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2LDB4OTcsMHhlMCwweDQ0fX0sCi0gezE2LDB4M2YwZiwwLHsweDA0LDB4ZjAsMHg5MCwweDc2LDB4OTQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4ODAsMHgwMCwweGYwLDB4MzAsMHgzZiwweDA5fX0sCi0gezE2LDB4M2YxZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4NTQsMHhmZSwweGYwLDB4ODAsMHgwNywweDkwLDB4NzYsMHg5NywweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0gezE2LDB4M2YyZiwwLHsweDkwLDB4NzYsMHg5NywweGUwLDB4OTAsMHg4MCwweDAyLDB4ZjAsMHg5MCwweDc2LDB4OTgsMHg3NCwweDA0LDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4M2YzZiwwLHsweDhlLDB4NzQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDFiLDB4ZTQsMHg5MCwweDdmfX0sCi0gezE2LDB4M2Y0ZiwwLHsweGYyLDB4ZjAsMHg5MCwweDdmLDB4ZjMsMHg3NCwweDQ0LDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZjLDB4ZjAsMHg5MCwweDc2fX0sCi0gezE2LDB4M2Y1ZiwwLHsweDk3LDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg1NCwweGZiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgxYiwweGU0LDB4OTAsMHg3ZiwweGYyfX0sCi0gezE2LDB4M2Y2ZiwwLHsweGYwLDB4OTAsMHg3ZiwweGYzLDB4NzQsMHg0YywweGYwLDB4OTAsMHg3ZiwweGZmLDB4NzQsMHhmYywweGYwLDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4M2Y3ZiwwLHsweGUwLDB4NDQsMHgwMiwweGYwLDB4NTQsMHhmYiwweGYwLDB4ZWYsMHhiNCwweDAzLDB4MTgsMHhlNCwweDkwLDB4N2YsMHhmMiwweGYwfX0sCi0gezE2LDB4M2Y4ZiwwLHsweDkwLDB4N2YsMHhmMywweDc0LDB4OTQsMHhmMCwweDkwLDB4N2YsMHhmZiwweDc0LDB4ZmMsMHhmMCwweDkwLDB4NzYsMHg5NywweGUwfX0sCi0gezE2LDB4M2Y5ZiwwLHsweDQ0LDB4MDQsMHhmMCwweDkwLDB4NzYsMHg5NCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHg4MCwweDAwLDB4ZjAsMHgzMCwweDNmfX0sCi0gezE2LDB4M2ZhZiwwLHsweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4M2ZiZiwwLHsweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDkwLDB4NzYsMHg5OCwweDc0LDB4MDYsMHhmMCwweDkwfX0sCi0geyA2LDB4M2ZjZiwwLHsweDc2LDB4OGUsMHg3NCwweDAyLDB4ZjAsMHgyMn19LAotIHsxNiwweDNmZDUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDIsMHhmMH19LAotIHsxNiwweDNmZTUsMCx7MHg5MCwweDdmLDB4YzcsMHhlMCwweGY1LDB4MTEsMHg3NSwweDBmLDB4MDAsMHg3NSwweDBkLDB4MDAsMHhkMiwweDMzLDB4ZDAsMHg4Mn19LAotIHsgNSwweDNmZjUsMCx7MHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0geyA2LDB4M2ZmYSwwLHsweDEyLDB4NGEsMHhjNCwweGMyLDB4MzEsMHgyMn19LAotIHsxNiwweDQwMDAsMCx7MHhlNSwweDExLDB4ZDMsMHg5NCwweDAwLDB4NTAsMHgwMiwweDIxLDB4MDYsMHg5MCwweDc2LDB4ODksMHhlMCwweGMzLDB4OTQsMHgwOH19LAotIHsxNiwweDQwMTAsMCx7MHg0MCwweDAyLDB4MjEsMHgwNiwweDc0LDB4NDAsMHgyNSwweDBmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3ZSwweGY1LDB4ODMsMHhlMH19LAotIHsxNiwweDQwMjAsMCx7MHhmNSwweDE3LDB4ZTUsMHgwZCwweDYwLDB4MGUsMHg5MCwweDgwLDB4MDUsMHhlNSwweDE3LDB4ZjAsMHg5MCwweDc2LDB4ODksMHhlMH19LAotIHsxNiwweDQwMzAsMCx7MHgwNCwweGYwLDB4MDEsMHhkYSwweGU1LDB4MTcsMHgxMiwweDM3LDB4ZjksMHg0MCwweGMxLDB4MDIsMHg0MCwweDY3LDB4MDUsMHg0MH19LAotIHsxNiwweDQwNDAsMCx7MHg3YSwweDA2LDB4NDAsMHg5OCwweDA3LDB4NDAsMHhjMSwweDBjLDB4NDAsMHhjMSwweDBkLDB4NDAsMHhjNywweDBmLDB4NDAsMHhjYn19LAotIHsxNiwweDQwNTAsMCx7MHhmNiwweDQwLDB4Y2IsMHhmOCwweDQwLDB4Y2IsMHhmYSwweDQwLDB4Y2IsMHhmYiwweDQwLDB4Y2IsMHhmYywweDQwLDB4Y2IsMHhmZX19LAotIHsxNiwweDQwNjAsMCx7MHg0MCwweGNiLDB4ZmYsMHgwMCwweDAwLDB4NDAsMHhkYSwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MH19LAotIHsxNiwweDQwNzAsMCx7MHg3NiwweDg5LDB4ZTAsMHgwNCwweGYwLDB4NzUsMHgxMSwweDAxLDB4ODAsMHg2MCwweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MH19LAotIHsxNiwweDQwODAsMCx7MHgwNSwweGYwLDB4OTAsMHg3ZSwweDQyLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMH19LAotIHsxNiwweDQwOTAsMCx7MHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MCwweDQyLDB4OTAsMHg3ZSwweDQxLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH19LAotIHsxNiwweDQwYTAsMCx7MHg5MCwweDdlLDB4NDIsMHhlMCwweDkwLDB4ODAsMHgwNSwweGYwLDB4OTAsMHg3ZSwweDQzLDB4ZTAsMHg5MCwweDgwLDB4MDUsMHhmMH19LAotIHsxNiwweDQwYjAsMCx7MHg5MCwweDc2LDB4ODksMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHhlMCwweDA0LDB4ZjAsMHg3NSwweDExLDB4MDEsMHg4MH19LAotIHsxNiwweDQwYzAsMCx7MHgxOSwweGQyLDB4M2IsMHhkMiwweDNjLDB4ODAsMHgxMywweGQyLDB4M2IsMHg4MCwweDBmLDB4OTAsMHg4MCwweDA1LDB4ZTUsMHgxN319LAotIHsxNiwweDQwZDAsMCx7MHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMSwweDIwLDB4M2IsMHgwNCwweDA1LDB4MGQsMHg4MH19LAotIHsxNiwweDQwZTAsMCx7MHgxZiwweDMwLDB4M2MsMHgxYywweDkwLDB4N2UsMHg0MSwweGUwLDB4OTAsMHg4MCwweDA1LDB4ZjAsMHg5MCwweDdlLDB4NDIsMHhlMH19LAotIHsxNiwweDQwZjAsMCx7MHg5MCwweDgwLDB4MDUsMHhmMCwweDkwLDB4NzYsMHg4OSwweGUwLDB4MDQsMHhmMCwweGUwLDB4MDQsMHhmMCwweDc1LDB4MTEsMHgwMX19LAotIHsxNiwweDQxMDAsMCx7MHgwNSwweDBmLDB4MTUsMHgxMSwweDAxLDB4MDAsMHhlNSwweDExLDB4NzAsMHgxMCwweGMyLDB4MzMsMHhmNSwweDBkLDB4ZjUsMHgwZn19LAotIHsxMSwweDQxMTAsMCx7MHg5MCwweDdmLDB4YzcsMHg3NCwweDA0LDB4ZjAsMHhjMiwweDNiLDB4YzIsMHgzYywweDIyfX0sCi0gezE2LDB4NDExYiwwLHsweDkwLDB4NzYsMHg4ZCwweGUwLDB4NjQsMHgwMSwweDcwLDB4MjcsMHgzMCwweDI3LDB4MDgsMHhjMiwweDI3LDB4MTIsMHgwOCwweDAwfX0sCi0gezE2LDB4NDEyYiwwLHsweDEyLDB4MTcsMHg0YSwweDMwLDB4MjgsMHgwOCwweGMyLDB4MjgsMHgxMiwweDM4LDB4NzQsMHgxMiwweDE3LDB4NGEsMHgzMCwweDJhfX0sCi0gezE2LDB4NDEzYiwwLHsweDBlLDB4ZTQsMHg5MCwweDc2LDB4OGQsMHhmMCwweGMyLDB4MmEsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDkwfX0sCi0gezE2LDB4NDE0YiwwLHsweDc2LDB4M2YsMHhlMCwweGI0LDB4MDEsMHgwNSwweGU0LDB4ZjAsMHgxMiwweDMyLDB4NmYsMHg5MCwweDc2LDB4NDEsMHhlMCwweGI0fX0sCi0gezE2LDB4NDE1YiwwLHsweDAxLDB4MDUsMHhlNCwweGYwLDB4MTIsMHgzNCwweDlhLDB4OTAsMHg3NiwweDQwLDB4ZTAsMHhiNCwweDAxLDB4MDMsMHgxMiwweDM0fX0sCi0gezE2LDB4NDE2YiwwLHsweDlhLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHgyMCwweGU0LDB4MDIsMHhjMiwweDNmLDB4OTAsMHg3ZiwweDliLDB4ZTAsMHgzMCwweGU0fX0sCi0gezE2LDB4NDE3YiwwLHsweDAyLDB4ZDIsMHgzZiwweDkwLDB4N2YsMHg5YiwweGUwLDB4MjAsMHhlNSwweDAyLDB4YzIsMHgzZSwweDkwLDB4N2YsMHg5YiwweGUwfX0sCi0gezE2LDB4NDE4YiwwLHsweDMwLDB4ZTUsMHgwMiwweGQyLDB4M2UsMHhhMiwweDQxLDB4MzAsMHgzZiwweDAxLDB4YjMsMHg1MCwweDFmLDB4YTIsMHgzZiwweDkyfX0sCi0gezE2LDB4NDE5YiwwLHsweDQxLDB4MzAsMHgzZiwweDA5LDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHg3NiwweDk3fX0sCi0gezE2LDB4NDFhYiwwLHsweGUwLDB4NDQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDk3LDB4ZTAsMHg5MCwweDgwLDB4MDIsMHhmMCwweDMwLDB4M2YsMHgzNCwweDkwfX0sCi0gezE2LDB4NDFiYiwwLHsweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBlLDB4OTAsMHg3NiwweDdjLDB4NzQsMHg2NywweGYwLDB4YTMsMHg3NCwweDA2fX0sCi0gezE2LDB4NDFjYiwwLHsweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDIsMHgwYiwweGU0LDB4OTAsMHg3NiwweDdjLDB4ZjAsMHhhMywweGYwfX0sCi0gezE2LDB4NDFkYiwwLHsweGEzLDB4NzQsMHgwYywweGYwLDB4ZWYsMHhiNCwweDAzLDB4MGIsMHhlNCwweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHhmMCwweGEzfX0sCi0gezE2LDB4NDFlYiwwLHsweDc0LDB4MTgsMHhmMCwweGEyLDB4NDAsMHgzMCwweDNlLDB4MDEsMHhiMywweDUwLDB4MWYsMHhhMiwweDNlLDB4OTIsMHg0MCwweDMwfX0sCi0gezE2LDB4NDFmYiwwLHsweDNlLDB4MDksMHg5MCwweDc2LDB4OTUsMHhlMCwweDQ0LDB4MDQsMHhmMCwweDgwLDB4MDcsMHg5MCwweDc2LDB4OTUsMHhlMCwweDU0fX0sCi0gezExLDB4NDIwYiwwLHsweGZiLDB4ZjAsMHg5MCwweDc2LDB4OTUsMHhlMCwweDkwLDB4ODAsMHgwMSwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0MjE2LDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHg2NCwweDAxLDB4NzAsMHgzNSwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhkMywweDk0LDB4MmR9fSwKLSB7MTYsMHg0MjI2LDAsezB4NDAsMHgyYiwweDkwLDB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDN9fSwKLSB7MTYsMHg0MjM2LDAsezB4OTQsMHgwZiwweDQwLDB4MTksMHhlNCwweGYwLDB4ZWYsMHhkMywweDk0LDB4MzEsMHg0MCwweDA4LDB4OTAsMHg3NiwweDE5LDB4NzR9fSwKLSB7MTYsMHg0MjQ2LDAsezB4MDMsMHhmMCwweDgwLDB4MDYsMHg5MCwweDc2LDB4MTksMHg3NCwweDAyLDB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4MTl9fSwKLSB7MTYsMHg0MjU2LDAsezB4ZTAsMHhiNCwweDAyLDB4MmMsMHg5MCwweDc2LDB4ODcsMHhlMCwweGZmLDB4YzMsMHg5NCwweDJmLDB4NTAsMHgyMiwweGVmLDB4ZDN9fSwKLSB7MTYsMHg0MjY2LDAsezB4OTQsMHgyYSwweDQwLDB4MWMsMHg5MCwweDc2LDB4ODYsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4ODUsMHhlMCwweDA0LDB4ZjB9fSwKLSB7MTYsMHg0Mjc2LDAsezB4ZTAsMHhkMywweDk0LDB4MGYsMHg0MCwweDBhLDB4ZTQsMHhmMCwweDkwLDB4NzYsMHgxOSwweDA0LDB4ZjAsMHgxMiwweDNlLDB4OGZ9fSwKLSB7MTYsMHg0Mjg2LDAsezB4OTAsMHg3NiwweDE5LDB4ZTAsMHhiNCwweDAyLDB4MjYsMHg5MCwweDc2LDB4ODcsMHhlMCwweGQzLDB4OTQsMHgzMSwweDQwLDB4MWR9fSwKLSB7MTYsMHg0Mjk2LDAsezB4OTAsMHg3NiwweDg2LDB4NzQsMHgwMSwweGYwLDB4OTAsMHg3NiwweDg1LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhkMywweDk0LDB4MGZ9fSwKLSB7MTYsMHg0MmE2LDAsezB4NDAsMHgwYiwweGU0LDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAzLDB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4MTl9fSwKLSB7MTYsMHg0MmI2LDAsezB4ZTAsMHg2NCwweDAzLDB4NzAsMHgzZiwweDkwLDB4NzYsMHg4NywweGUwLDB4ZmYsMHhjMywweDk0LDB4NWYsMHg1MCwweDM1LDB4OTB9fSwKLSB7MTYsMHg0MmM2LDAsezB4NzYsMHg4NiwweDc0LDB4MDEsMHhmMCwweDkwLDB4NzYsMHg4NSwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZDMsMHg5NCwweDBmLDB4NDB9fSwKLSB7MTYsMHg0MmQ2LDAsezB4MjMsMHhlNCwweGYwLDB4ZWYsMHhjMywweDk0LDB4MmYsMHg1MCwweDBjLDB4ZWYsMHhkMywweDk0LDB4MmEsMHg0MCwweDA2LDB4OTB9fSwKLSB7MTYsMHg0MmU2LDAsezB4NzYsMHgxOSwweDc0LDB4MDEsMHhmMCwweGVmLDB4ZDMsMHg5NCwweDJmLDB4NDAsMHgwNiwweDkwLDB4NzYsMHgxOSwweDc0LDB4MDJ9fSwKLSB7MTYsMHg0MmY2LDAsezB4ZjAsMHgxMiwweDNlLDB4OGYsMHg5MCwweDc2LDB4ODYsMHhlMCwweDcwLDB4MDUsMHg5MCwweDc2LDB4ODUsMHhmMCwweDIyLDB4ZTR9fSwKLSB7IDUsMHg0MzA2LDAsezB4OTAsMHg3NiwweDg2LDB4ZjAsMHgyMn19LAotIHsxNiwweDQzMGIsMCx7MHhlNCwweDkwLDB4NzYsMHg5NiwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHg5MCwweDdmLDB4ZTAsMHg3NCwweDkwLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzMWIsMCx7MHg3ZiwweGUxLDB4NzQsMHgwNCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4ZGQsMHhmMCwweDkwLDB4N2YsMHhhMSwweGYwLDB4NTMsMHg4ZX19LAotIHsxNiwweDQzMmIsMCx7MHhmOCwweDc1LDB4ODgsMHgwNSwweDc1LDB4YjgsMHgyMCwweDc1LDB4ZjgsMHgwMSwweDQzLDB4OGUsMHgzMCwweGY1LDB4YzgsMHg3NX19LAotIHsxNiwweDQzM2IsMCx7MHhjYSwweDdmLDB4NzUsMHhjYiwweGY4LDB4NDMsMHhhOCwweDIwLDB4MTIsMHgwNywweDRhLDB4YzIsMHgyYywweGMyLDB4MmQsMHhjMn19LAotIHsxNiwweDQzNGIsMCx7MHgyYiwweGMyLDB4MmYsMHg5MCwweDdmLDB4ZmMsMHg3NCwweGRkLDB4ZjAsMHg5MCwweDdmLDB4ZmYsMHg3NCwweGZmLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzNWIsMCx7MHg3ZiwweDk3LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MTksMHg3NCwweDAxLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg4NX19LAotIHsxNiwweDQzNmIsMCx7MHhmMCwweGEzLDB4ZjAsMHg5MCwweDc2LDB4ODEsMHhmMCwweDkwLDB4NzYsMHg4MCwweGYwLDB4MTIsMHg0OSwweDU4LDB4MTIsMHgwZn19LAotIHsxNiwweDQzN2IsMCx7MHhjNiwweDEyLDB4NGEsMHg4ZCwweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHgwOCwweGYwLDB4ZTAsMHg1NCwweGI5LDB4ZjAsMHhkMn19LAotIHsxNiwweDQzOGIsMCx7MHgzMCwweDIwLDB4MzAsMHgxOCwweDEyLDB4NDcsMHhiNCwweDEyLDB4MzAsMHgwMCwweDEyLDB4NDAsMHgwMCwweDEyLDB4NDIsMHgxNn19LAotIHsxNiwweDQzOWIsMCx7MHgxMiwweDRhLDB4NTAsMHgxMiwweDFiLDB4MDQsMHgxMiwweDE2LDB4NjEsMHgxMiwweDQyLDB4MTYsMHhjMiwweDJmLDB4YzIsMHgzMX19LAotIHsxNiwweDQzYWIsMCx7MHhjMiwweDMyLDB4YzIsMHgzNCwweGMyLDB4MzMsMHhjMiwweDI5LDB4YzIsMHgyNywweGMyLDB4MjgsMHhlNCwweGY1LDB4MTEsMHg5MH19LAotIHsxNiwweDQzYmIsMCx7MHg3NiwweDg5LDB4ZjAsMHg5MCwweDc2LDB4M2YsMHhmMCwweDkwLDB4NzYsMHg0MSwweGYwLDB4OTAsMHg3NiwweDQwLDB4ZjAsMHg5MH19LAotIHsxNiwweDQzY2IsMCx7MHg3NiwweDhhLDB4ZjAsMHhhMywweGYwLDB4YTMsMHgwNCwweGYwLDB4ZTQsMHhhMywweGYwLDB4OTAsMHg3NiwweDk5LDB4ZjAsMHgyMn19LAotIHsxNiwweDQzZGIsMCx7MHgxMiwweDRkLDB4YTMsMHg0MCwweDAyLDB4ODEsMHhhMCwweDkwLDB4N2YsMHhlYiwweGUwLDB4MjQsMHhmZSwweDYwLDB4MWUsMHgxNH19LAotIHsxNiwweDQzZWIsMCx7MHg2MCwweDQ2LDB4MTQsMHg2MCwweDZlLDB4MTQsMHg3MCwweDAyLDB4ODEsMHg5MSwweDI0LDB4MDQsMHg2MCwweDAyLDB4ODEsMHg5OX19LAotIHsxNiwweDQzZmIsMCx7MHg3NCwweDA1LDB4OTAsMHg3ZiwweGQ0LDB4ZjAsMHg3NCwweDAwLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhlYX19LAotIHsxNiwweDQ0MGIsMCx7MHhlMCwweGZmLDB4MTIsMHg0OSwweGZmLDB4OGIsMHgyMCwweDhhLDB4MjEsMHg4OSwweDIyLDB4ZWEsMHg0OSwweDYwLDB4MTEsMHhjZX19LAotIHsxNiwweDQ0MWIsMCx7MHhlYSwweGNlLDB4ZWUsMHg5MCwweDdmLDB4ZDQsMHhmMCwweGNmLDB4ZTksMHhjZiwweGVmLDB4OTAsMHg3ZiwweGQ1LDB4ZjAsMHgyMn19LAotIHsxNiwweDQ0MmIsMCx7MHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHhmZiwweDEyLDB4NDgsMHhiMH19LAotIHsxNiwweDQ0M2IsMCx7MHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZSwweGVlLDB4OTAsMHg3Zn19LAotIHsxNiwweDQ0NGIsMCx7MHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NH19LAotIHsxNiwweDQ0NWIsMCx7MHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4ZWEsMHhlMCwweGZmLDB4OTAsMHg3ZSwweGMwLDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhmYn19LAotIHsxNiwweDQ0NmIsMCx7MHgxMiwweDE3LDB4OTQsMHg4YiwweDIwLDB4OGEsMHgyMSwweDg5LDB4MjIsMHhlYSwweDQ5LDB4NjAsMHgxMSwweGNlLDB4ZWEsMHhjZX19LAotIHsxNiwweDQ0N2IsMCx7MHhlZSwweDkwLDB4N2YsMHhkNCwweGYwLDB4Y2YsMHhlOSwweGNmLDB4ZWYsMHg5MCwweDdmLDB4ZDUsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsxNiwweDQ0OGIsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3Zn19LAotIHsgNSwweDQ0OWIsMCx7MHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0geyAxLDB4NDRhMCwwLHsweDIyfX0sCi0gezE2LDB4NDRhMSwwLHsweGMyLDB4YWYsMHhkMiwweDI0LDB4OTAsMHg3ZiwweDkzLDB4NzQsMHgzMCwweGYwLDB4OTAsMHg3ZiwweDljLDB4NzQsMHhiYiwweGYwfX0sCi0gezE2LDB4NDRiMSwwLHsweDkwLDB4N2YsMHg5NiwweGUwLDB4NDQsMHgzMCwweGYwLDB4ZTAsMHg1NCwweDMwLDB4ZjAsMHg5MCwweDdmLDB4OTQsMHg3NCwweDMwfX0sCi0gezE2LDB4NDRjMSwwLHsweGYwLDB4OTAsMHg3ZiwweDlkLDB4NzQsMHhjZiwweGYwLDB4OTAsMHg3ZiwweDk3LDB4NzQsMHhhMCwweGYwLDB4OTAsMHg3ZiwweDk1fX0sCi0gezE2LDB4NDRkMSwwLHsweDc0LDB4YzAsMHhmMCwweDkwLDB4N2YsMHg5ZSwweDc0LDB4MDMsMHhmMCwweDkwLDB4N2YsMHg5OSwweGUwLDB4MzAsMHhlMiwweDA5fX0sCi0gezE2LDB4NDRlMSwwLHsweDkwLDB4MDUsMHgxOSwweDc0LDB4YTAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGMyLDB4MjUsMHhjMiwweDIyLDB4YzIsMHgyMywweGMyfX0sCi0gezE2LDB4NDRmMSwwLHsweDI2LDB4MTIsMHg0YSwweGM0LDB4MTIsMHgyZCwweGE5LDB4MTIsMHgzYiwweGQzLDB4MTIsMHg0NSwweDU5LDB4MTIsMHgzYSwweDQyfX0sCi0gezE2LDB4NDUwMSwwLHsweDkwLDB4NzYsMHg2OCwweDc0LDB4MDEsMHhmMCwweDcwLDB4MGYsMHgxMiwweDRiLDB4YmIsMHgxMiwweDA3LDB4ZmUsMHgxMiwweDRkfX0sCi0gezE2LDB4NDUxMSwwLHsweGExLDB4MTIsMHgxYiwweDQwLDB4MTIsMHgxNCwweDk2LDB4MTIsMHg0MywweDBiLDB4OTAsMHg3ZiwweGFmLDB4ZTAsMHg0NCwweDAxfX0sCi0gezE2LDB4NDUyMSwwLHsweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDFmLDB4ZjAsMHg5MCwweDdmLDB4YWMsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4NDUzMSwwLHsweGFkLDB4ZjAsMHg5MCwweDdmLDB4ZGUsMHhmMCwweDkwLDB4N2YsMHhkZiwweGYwLDB4OTAsMHg3ZiwweGFiLDB4ZjAsMHg5MCwweDdmfX0sCi0gezE2LDB4NDU0MSwwLHsweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDQzLDB4ZDgsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4fX0sCi0geyA4LDB4NDU1MSwwLHsweDIwLDB4NTMsMHhhOCwweGEwLDB4NDMsMHhhOCwweDgwLDB4MjJ9fSwKLSB7MTYsMHg0NTU5LDAsezB4ZTQsMHg5MCwweDc2LDB4MzYsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NTY5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NTc5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAxLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9fSwKLSB7MTYsMHg0NTg5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHg0NTk5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwMiwweGYwLDB4OTB9fSwKLSB7MTYsMHg0NWE5LDAsezB4NzYsMHgzNiwweGUwLDB4MDQsMHhmMCwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzIsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NWI5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZWYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzMsMHhmNSwweDgyLDB4ZTR9fSwKLSB7MTYsMHg0NWM5LDAsezB4MzQsMHg3NSwweGY1LDB4ODMsMHg3NCwweDAzLDB4ZjAsMHg5MCwweDc2LDB4MzYsMHhlMCwweDA0LDB4ZjAsMHhlMCwweGZmLDB4NzV9fSwKLSB7MTYsMHg0NWQ5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGVmLDB4NzV9fSwKLSB7MTYsMHg0NWU5LDAsezB4ZjAsMHgwMywweGE0LDB4MjQsMHgzMywweGY1LDB4ODIsMHhlNCwweDM0LDB4NzUsMHhmNSwweDgzLDB4NzQsMHgwNCwweGYwLDB4MjJ9fSwKLSB7MTIsMHg0NWY5LDAsezB4NzgsMHg3ZiwweGU0LDB4ZjYsMHhkOCwweGZkLDB4NzUsMHg4MSwweDM4LDB4MDIsMHg0NiwweDQwfX0sCi0gezE2LDB4NDYwNSwwLHsweDAyLDB4NDcsMHg1YSwweGU0LDB4OTMsMHhhMywweGY4LDB4ZTQsMHg5MywweGEzLDB4NDAsMHgwMywweGY2LDB4ODAsMHgwMSwweGYyfX0sCi0gezE2LDB4NDYxNSwwLHsweDA4LDB4ZGYsMHhmNCwweDgwLDB4MjksMHhlNCwweDkzLDB4YTMsMHhmOCwweDU0LDB4MDcsMHgyNCwweDBjLDB4YzgsMHhjMywweDMzfX0sCi0gezE2LDB4NDYyNSwwLHsweGM0LDB4NTQsMHgwZiwweDQ0LDB4MjAsMHhjOCwweDgzLDB4NDAsMHgwNCwweGY0LDB4NTYsMHg4MCwweDAxLDB4NDYsMHhmNiwweGRmfX0sCi0gezE2LDB4NDYzNSwwLHsweGU0LDB4ODAsMHgwYiwweDAxLDB4MDIsMHgwNCwweDA4LDB4MTAsMHgyMCwweDQwLDB4ODAsMHg5MCwweDBjLDB4OGYsMHhlNCwweDdlfX0sCi0gezE2LDB4NDY0NSwwLHsweDAxLDB4OTMsMHg2MCwweGJjLDB4YTMsMHhmZiwweDU0LDB4M2YsMHgzMCwweGU1LDB4MDksMHg1NCwweDFmLDB4ZmUsMHhlNCwweDkzfX0sCi0gezE2LDB4NDY1NSwwLHsweGEzLDB4NjAsMHgwMSwweDBlLDB4Y2YsMHg1NCwweGMwLDB4MjUsMHhlMCwweDYwLDB4YTgsMHg0MCwweGI4LDB4ZTQsMHg5MywweGEzfX0sCi0gezE2LDB4NDY2NSwwLHsweGZhLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhfX0sCi0gezE2LDB4NDY3NSwwLHsweGYwLDB4YTMsMHhjOCwweGM1LDB4ODIsMHhjOCwweGNhLDB4YzUsMHg4MywweGNhLDB4ZGYsMHhlOSwweGRlLDB4ZTcsMHg4MCwweGJlfX0sCi0gezE2LDB4NDY4NSwwLHsweDkwLDB4N2YsMHhlYywweGUwLDB4OTAsMHg3NiwweDgzLDB4ZjAsMHhlMCwweDE0LDB4NjAsMHgxZCwweDE0LDB4NjAsMHgyYSwweDE0fX0sCi0gezE2LDB4NDY5NSwwLHsweDYwLDB4MzcsMHgxNCwweDYwLDB4NDQsMHgyNCwweDA0LDB4NzAsMHg1MCwweDkwLDB4NzYsMHg5MSwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZhNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHg0NywweDkwLDB4NzYsMHg5MiwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZiNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgzNywweDkwLDB4NzYsMHg5MCwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZjNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgyNywweDkwLDB4NzYsMHg4NCwweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZkNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgxNywweDkwLDB4NzYsMHg5MywweGUwLDB4OTAsMHg3ZiwweDAwfX0sCi0gezE2LDB4NDZlNSwwLHsweGYwLDB4OTAsMHg3ZiwweGI1LDB4NzQsMHgwMSwweGYwLDB4ODAsMHgwNywweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwfX0sCi0geyAyLDB4NDZmNSwwLHsweGQzLDB4MjJ9fSwKLSB7MTYsMHg0NmY3LDAsezB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgzLDB4YzAsMHg4MiwweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTB9fSwKLSB7MTYsMHg0NzA3LDAsezB4ZWEsMHhjMCwweGUwLDB4ZWIsMHhjMCwweGUwLDB4ZWMsMHhjMCwweGUwLDB4ZWQsMHhjMCwweGUwLDB4ZWUsMHhjMCwweGUwLDB4ZWZ9fSwKLSB7MTYsMHg0NzE3LDAsezB4YzAsMHhlMCwweGMyLDB4Y2EsMHhjMiwweGNmLDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgzMCwweDJlLDB4MDN9fSwKLSB7MTYsMHg0NzI3LDAsezB4MTIsMHgxNCwweGE2LDB4OTAsMHg3ZiwweDk4LDB4ZTAsMHg1NCwweGZlLDB4ZjAsMHg1MywweGE4LDB4ZmEsMHgxMiwweDE2LDB4NjF9fSwKLSB7MTYsMHg0NzM3LDAsezB4ZDAsMHhlMCwweGZmLDB4ZDAsMHhlMCwweGZlLDB4ZDAsMHhlMCwweGZkLDB4ZDAsMHhlMCwweGZjLDB4ZDAsMHhlMCwweGZiLDB4ZDB9fSwKLSB7MTYsMHg0NzQ3LDAsezB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsMHhmOCwweGQwLDB4ZDAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZjB9fSwKLSB7IDMsMHg0NzU3LDAsezB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NDc1YSwwLHsweGU0LDB4OTAsMHg3NiwweDY2LDB4ZjAsMHgxMiwweDQ0LDB4YTEsMHgyMCwweDI2LDB4MTMsMHg5MCwweDc2LDB4NjYsMHhlMCwweGMzfX0sCi0gezE2LDB4NDc2YSwwLHsweDk0LDB4MDIsMHg1MCwweDBhLDB4ZTAsMHgwNCwweGYwLDB4ZDIsMHg0MiwweDEyLDB4NGEsMHhmNiwweDgwLDB4ZWEsMHgzMCwweDI2fX0sCi0gezE2LDB4NDc3YSwwLHsweDA1LDB4MTIsMHgyOCwweDAxLDB4YzIsMHgyNiwweDMwLDB4MjUsMHgyYiwweDkwLDB4NzYsMHg5NiwweGUwLDB4NTQsMHhmYywweGYwfX0sCi0gezE2LDB4NDc4YSwwLHsweDkwLDB4ODAsMHgwMywweGYwLDB4MTIsMHgxNCwweDk2LDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg5MCwweDgwfX0sCi0gezE2LDB4NDc5YSwwLHsweDAzLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg2NywweGYwLDB4OTAsMHg3NiwweDY3LDB4ZTAsMHgwNCwweGYwLDB4ZTAsMHhiNCwweDRifX0sCi0gezEwLDB4NDdhYSwwLHsweGY2LDB4MTIsMHgzZiwweGZhLDB4MTIsMHg0MSwweDFiLDB4ODAsMHhjNSwweDIyfX0sCi0gezE2LDB4NDdiNCwwLHsweGU0LDB4OTAsMHg3NiwweDliLDB4ZjAsMHg5MCwweDc2LDB4OWIsMHhlMCwweGZmLDB4MDQsMHhmMCwweGVmLDB4NjAsMHgwOCwweGUwfX0sCi0gezE2LDB4NDdjNCwwLHsweDI0LDB4MDgsMHhmOCwweGU0LDB4ZjYsMHg4MCwweGVlLDB4OTAsMHg3NiwweDk2LDB4ZTAsMHg1NCwweGZiLDB4ZjAsMHg1NCwweGY3fX0sCi0gezE2LDB4NDdkNCwwLHsweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhlNCwweGY1LDB4MTgsMHhkMiwweDM1LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhkMiwweDM2fX0sCi0gezE2LDB4NDdlNCwwLHsweDc1LDB4MTIsMHgxMSwweDc1LDB4MTMsMHgyMiwweGMyLDB4MzcsMHhjMiwweDM5LDB4YzIsMHgzOCwweGY1LDB4MTYsMHhmNSwweDE0fX0sCi0gezExLDB4NDdmNCwwLHsweGY1LDB4MWEsMHhmNSwweDBkLDB4YzIsMHgzYiwweGMyLDB4M2MsMHhjMiwweDNkLDB4MjJ9fSwKLSB7MTYsMHg0ODAwLDAsezB4OTAsMHg3ZiwweGVjLDB4ZTAsMHg5MCwweDc2LDB4ODMsMHhmMCwweGUwLDB4MTQsMHg2MCwweDE3LDB4MTQsMHg2MCwweDIxLDB4MTR9fSwKLSB7MTYsMHg0ODEwLDAsezB4NjAsMHgyYiwweDE0LDB4NjAsMHgzMiwweDI0LDB4MDQsMHg3MCwweDM4LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTF9fSwKLSB7MTYsMHg0ODIwLDAsezB4ZjAsMHg4MCwweDM1LDB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTIsMHhmMCwweDEyLDB4M2UsMHg4ZiwweDgwLDB4Mjh9fSwKLSB7MTYsMHg0ODMwLDAsezB4OTAsMHg3ZiwweGVhLDB4ZTAsMHg5MCwweDc2LDB4OTAsMHhmMCwweDEyLDB4MTgsMHgwMCwweDgwLDB4MWIsMHg5MCwweDdmLDB4ZWF9fSwKLSB7MTYsMHg0ODQwLDAsezB4ZTAsMHg5MCwweDc2LDB4ODQsMHhmMCwweDgwLDB4MTEsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDkwLDB4NzYsMHg5MywweGYwLDB4ODB9fSwKLSB7MTAsMHg0ODUwLDAsezB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGQzLDB4MjJ9fSwKLSB7MTYsMHg0ODVhLDAsezB4ZTQsMHg5MCwweDc2LDB4MjYsMHhmMCwweDkwLDB4NzYsMHgyNiwweGUwLDB4ZmYsMHg3NSwweGYwLDB4MDMsMHhhNCwweDI0LDB4MzR9fSwKLSB7MTYsMHg0ODZhLDAsezB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweGZlLDB4OTAsMHg3ZiwweGVjLDB4ZTAsMHhmZCwweGVlLDB4NmR9fSwKLSB7MTYsMHg0ODdhLDAsezB4NjAsMHgwZSwweGVmLDB4YzMsMHg5NCwweDA0LDB4NTAsMHgwOCwweDkwLDB4NzYsMHgyNiwweGUwLDB4MDQsMHhmMCwweDgwLDB4ZDV9fSwKLSB7MTYsMHg0ODhhLDAsezB4ZWYsMHhiNCwweDA0LDB4MDgsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4ZWYsMHg3NSwweGYwLDB4MDN9fSwKLSB7MTYsMHg0ODlhLDAsezB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlMCwweDkwLDB4N2YsMHgwMCwweGYwLDB4OTB9fSwKLSB7IDYsMHg0OGFhLDAsezB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweDIyfX0sCi0geyAyLDB4NDhiMCwwLHsweDhmLDB4MmV9fSwKLSB7MTYsMHg0OGIyLDAsezB4ZTQsMHhmNSwweDJmLDB4NzUsMHgzMCwweGZmLDB4NzUsMHgzMSwweDA2LDB4NzUsMHgzMiwweGJlLDB4YWIsMHgzMCwweGFhLDB4MzF9fSwKLSB7MTYsMHg0OGMyLDAsezB4YTksMHgzMiwweDkwLDB4MDAsMHgwMSwweDEyLDB4MzYsMHhhYiwweGI0LDB4MDMsMHgxZiwweGFmLDB4MmYsMHgwNSwweDJmLDB4ZWZ9fSwKLSB7MTYsMHg0OGQyLDAsezB4NjUsMHgyZSwweDcwLDB4MDEsMHgyMiwweDEyLDB4MzYsMHg5MiwweDdlLDB4MDAsMHgyOSwweGZmLDB4ZWUsMHgzYSwweGM5LDB4ZWZ9fSwKLSB7MTYsMHg0OGUyLDAsezB4YzksMHg3NSwweDMwLDB4ZmYsMHhmNSwweDMxLDB4ODksMHgzMiwweDgwLDB4ZDIsMHg3YiwweDAwLDB4N2EsMHgwMCwweDc5LDB4MDB9fSwKLSB7IDEsMHg0OGYyLDAsezB4MjJ9fSwKLSB7MTIsMHg0OGYzLDAsezB4YzIsMHgzNywweGU0LDB4ZjUsMHgwZSwweGY1LDB4MTAsMHhjMiwweDM2LDB4ZjUsMHgxNCwweDIyfX0sCi0gezE2LDB4NDkwMCwwLHsweDAyLDB4MmYsMHhlNywweDAwLDB4MDIsMHgzZCwweDQ3LDB4MDAsMHgwMiwweDRkLDB4NDYsMHgwMCwweDAyLDB4NGIsMHhkNSwweDAwfX0sCi0gezE2LDB4NDkxMCwwLHsweDAyLDB4NGIsMHg2MCwweDAwLDB4MDIsMHgyZiwweGZmLDB4MDAsMHgwMiwweDRiLDB4ZWQsMHgwMCwweDAyLDB4NGIsMHg4MSwweDAwfX0sCi0gezE2LDB4NDkyMCwwLHsweDAyLDB4NGMsMHgwNCwweDAwLDB4MDIsMHgzZiwweGQ1LDB4MDAsMHgwMiwweDRjLDB4MWIsMHgwMCwweDAyLDB4NGMsMHgzMiwweDAwfX0sCi0gezE2LDB4NDkzMCwwLHsweDAyLDB4NGMsMHg0OSwweDAwLDB4MDIsMHg0YywweDYwLDB4MDAsMHgwMiwweDRjLDB4NzcsMHgwMCwweDAyLDB4NGMsMHg4ZSwweDAwfX0sCi0gezE2LDB4NDk0MCwwLHsweDAyLDB4NGMsMHhhNSwweDAwLDB4MDIsMHg0YywweGJjLDB4MDAsMHgwMiwweDRjLDB4ZDMsMHgwMCwweDAyLDB4NGMsMHhlYSwweDAwfX0sCi0geyA4LDB4NDk1MCwwLHsweDAyLDB4NGQsMHgwMSwweDAwLDB4MDIsMHg0ZCwweDE4LDB4MDB9fSwKLSB7MTYsMHg0OTU4LDAsezB4OTAsMHg3NiwweDQ2LDB4NzQsMHg4MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHg0OTY4LDAsezB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweDc0LDB4ODAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7MTYsMHg0OTc4LDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTN9fSwKLSB7MTYsMHg0OTg4LDAsezB4NzQsMHg0MCwweGYwLDB4ZTQsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjAsMHhhMywweGYwLDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7MTYsMHg0OTk4LDAsezB4YTMsMHg3NCwweDQwLDB4ZjAsMHhlNCwweGEzLDB4ZjAsMHhhMywweDc0LDB4NDAsMHhmMCwweGU0LDB4YTMsMHhmMCwweGEzLDB4ZjB9fSwKLSB7IDUsMHg0OWE4LDAsezB4YTMsMHhmMCwweGEzLDB4ZjAsMHgyMn19LAotIHsxNiwweDQ5YWQsMCx7MHhlNCwweDkwLDB4NzYsMHgyNSwweGYwLDB4OTAsMHg3NiwweDI1LDB4ZTAsMHhmZiwweDc1LDB4ZjAsMHgwMywweGE0LDB4MjQsMHgzNH19LAotIHsxNiwweDQ5YmQsMCx7MHhmNSwweDgyLDB4ZTQsMHgzNCwweDc1LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg5MCwweDdmLDB4ZWMsMHhlMCwweGZkLDB4ZWUsMHg2ZH19LAotIHsxNiwweDQ5Y2QsMCx7MHg2MCwweDBlLDB4ZWYsMHhjMywweDk0LDB4MDQsMHg1MCwweDA4LDB4OTAsMHg3NiwweDI1LDB4ZTAsMHgwNCwweGYwLDB4ODAsMHhkNX19LAotIHsxNiwweDQ5ZGQsMCx7MHhlZiwweGI0LDB4MDQsMHgwOCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDQsMHgwMSwweGYwLDB4MjIsMHg5MCwweDdlLDB4YzAsMHhlMH19LAotIHsxNiwweDQ5ZWQsMCx7MHhmZSwweGVmLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDMyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg3NSwweGY1LDB4ODMsMHhlZX19LAotIHsgMiwweDQ5ZmQsMCx7MHhmMCwweDIyfX0sCi0gezE2LDB4NDlmZiwwLHsweGU0LDB4ZmUsMHg3NSwweDFkLDB4ZmYsMHg3NSwweDFlLDB4MDUsMHg3NSwweDFmLDB4MTIsMHhhYiwweDFkLDB4YWEsMHgxZSwweGE5fX0sCi0gezE2LDB4NGEwZiwwLHsweDFmLDB4OTAsMHgwMCwweDAxLDB4MTIsMHgzNiwweGFiLDB4NjQsMHgwMiwweDcwLDB4MmYsMHhjZCwweGVlLDB4Y2QsMHgwZSwweGVkfX0sCi0gezE2LDB4NGExZiwwLHsweDZmLDB4NzAsMHgwMSwweDIyLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgzNywweDBlLDB4ODUsMHhmMCwweDFiLDB4ZjUsMHgxYywweDYyfX0sCi0gezE2LDB4NGEyZiwwLHsweDFiLDB4ZTUsMHgxYiwweDYyLDB4MWMsMHhlNSwweDFjLDB4NjIsMHgxYiwweDI5LDB4ZmQsMHhlNSwweDFiLDB4M2EsMHhjOSwweGVkfX0sCi0gezE2LDB4NGEzZiwwLHsweGM5LDB4NzUsMHgxZCwweGZmLDB4ZjUsMHgxZSwweDg5LDB4MWYsMHg4MCwweGMxLDB4N2IsMHgwMCwweDdhLDB4MDAsMHg3OSwweDAwfX0sCi0geyAxLDB4NGE0ZiwwLHsweDIyfX0sCi0gezE2LDB4NGE1MCwwLHsweDMwLDB4MmQsMHgzOSwweGMyLDB4MmQsMHg5MCwweDc2LDB4MTksMHhlMCwweGZmLDB4YjQsMHgwMSwweDBkLDB4ZTQsMHg5MCwweDc2fX0sCi0gezE2LDB4NGE2MCwwLHsweDdjLDB4ZjAsMHhhMywweDc0LDB4ZjgsMHhmMCwweGEzLDB4NzQsMHgwYSwweGYwLDB4ZWYsMHhiNCwweDAyLDB4MGQsMHhlNCwweDkwfX0sCi0gezE2LDB4NGE3MCwwLHsweDc2LDB4N2MsMHhmMCwweGEzLDB4NzQsMHhmMCwweGYwLDB4YTMsMHg3NCwweDBiLDB4ZjAsMHhlZiwweGI0LDB4MDMsMHgwZCwweGU0fX0sCi0gezEzLDB4NGE4MCwwLHsweDkwLDB4NzYsMHg3YywweGYwLDB4YTMsMHg3NCwweGY4LDB4ZjAsMHhhMywweDc0LDB4MTcsMHhmMCwweDIyfX0sCi0gezE2LDB4NGE4ZCwwLHsweGU0LDB4ZmYsMHg3NCwweDU2LDB4MmYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweDc2LDB4ZjUsMHg4MywweGUwLDB4ZmUsMHg3NCwweDI4fX0sCi0gezE2LDB4NGE5ZCwwLHsweDJmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHg4MCwweGY1LDB4ODMsMHhlZSwweGYwLDB4NzQsMHg1ZSwweDJmLDB4ZjUsMHg4MiwweGU0fX0sCi0gezE2LDB4NGFhZCwwLHsweDM0LDB4NzYsMHhmNSwweDgzLDB4ZTAsMHhmZSwweDc0LDB4MzgsMHgyZiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ODAsMHhmNSwweDgzfX0sCi0geyA2LDB4NGFiZCwwLHsweGVlLDB4ZjAsMHgwZiwweGJmLDB4MDgsMHhjY319LAotIHsgMSwweDRhYzMsMCx7MHgyMn19LAotIHsxNiwweDRhYzQsMCx7MHhlNCwweDkwLDB4NzIsMHgzNiwweGYwLDB4YTMsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTQsMHg5MH19LAotIHsxNiwweDRhZDQsMCx7MHg3MiwweDMzLDB4ZjAsMHg5MCwweDcyLDB4MzIsMHhmMCwweDkwLDB4NzIsMHgwMSwweDA0LDB4ZjAsMHhlNCwweDkwLDB4NzIsMHgzM319LAotIHsxNiwweDRhZTQsMCx7MHhmMCwweDkwLDB4NzIsMHgzMiwweGYwLDB4OTAsMHg3MiwweDAxLDB4MDQsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NDQsMHgwNH19LAotIHsgMiwweDRhZjQsMCx7MHhmMCwweDIyfX0sCi0gezE2LDB4NGFmNiwwLHsweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmYiwweGYwLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHgzMCwweDQyLDB4MDQsMHhlMCwweDQ0fX0sCi0gezE2LDB4NGIwNiwwLHsweDAyLDB4ZjAsMHg3ZiwweGRjLDB4N2UsMHgwNSwweDEyLDB4NGQsMHgyZiwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmNywweGYwfX0sCi0geyA1LDB4NGIxNiwwLHsweGUwLDB4NDQsMHgwNCwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YjFiLDAsezB4OTAsMHg3ZiwweGViLDB4ZTAsMHgxNCwweDcwLDB4MTQsMHg5MCwweDdmLDB4ZTksMHhlMCwweDI0LDB4N2YsMHg3MCwweDA0LDB4MTJ9fSwKLSB7MTYsMHg0YjJiLDAsezB4NDgsMHg1YSwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHgyMiwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9fSwKLSB7IDMsMHg0YjNiLDAsezB4MDEsMHhmMCwweDIyfX0sCi0gezE2LDB4NGIzZSwwLHsweDkwLDB4N2YsMHhlYiwweGUwLDB4MTQsMHg3MCwweDEzLDB4OTAsMHg3ZiwweGU5LDB4ZTAsMHgxNCwweDcwLDB4MDQsMHgxMiwweDQ5fX0sCi0gezE2LDB4NGI0ZSwwLHsweGFkLDB4MjIsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDIyLDB4OTAsMHg3ZiwweGI0LDB4ZTAsMHg0NCwweDAxfX0sCi0geyAyLDB4NGI1ZSwwLHsweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YjYwLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgxMCwweGYwLDB4OTB9fSwKLSB7MTYsMHg0YjcwLDAsezB4NzYsMHg5NiwweGUwLDB4NTQsMHhmZCwweGYwLDB4OTAsMHg4MCwweDAzLDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTB9fSwKLSB7IDEsMHg0YjgwLDAsezB4MzJ9fSwKLSB7MTYsMHg0YjgxLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFhLDB4ZTAsMHg0NCwweDAxLDB4ZjB9fSwKLSB7MTUsMHg0YjkxLDAsezB4YzIsMHgyOSwweDkwLDB4NzYsMHg4ZCwweDc0LDB4MDEsMHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4NGJhMCwwLHsweDkwLDB4N2YsMHhlYSwweGUwLDB4OTAsMHg3NiwweDgyLDB4ZjAsMHhlNCwweDkwLDB4NzYsMHg5MSwweGYwLDB4OTAsMHg3NiwweDkyfX0sCi0gezExLDB4NGJiMCwwLHsweGYwLDB4OTAsMHg3NiwweDkwLDB4ZjAsMHg5MCwweDc2LDB4OTMsMHhmMCwweGQzLDB4MjJ9fSwKLSB7MTYsMHg0YmJiLDAsezB4OTAsMHg3ZiwweGQ2LDB4ZTAsMHgzMCwweGU3LDB4MTIsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDdmLDB4MTQsMHg3ZSwweDAwLDB4MTJ9fSwKLSB7MTAsMHg0YmNiLDAsezB4NGQsMHgyZiwweDkwLDB4N2YsMHhkNiwweGUwLDB4NTQsMHhmZSwweGYwLDB4MjJ9fSwKLSB7MTYsMHg0YmQ1LDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4ZDIsMHgyNSwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDh9fSwKLSB7IDgsMHg0YmU1LDAsezB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRiZWQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDEsMHhmMH19LAotIHsgNywweDRiZmQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMDQsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDIsMHhmMH19LAotIHsgNywweDRjMTQsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMWIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDQsMHhmMH19LAotIHsgNywweDRjMmIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjMzIsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDQsMHhmMH19LAotIHsgNywweDRjNDIsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNDksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MDgsMHhmMH19LAotIHsgNywweDRjNTksMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNjAsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MDgsMHhmMH19LAotIHsgNywweDRjNzAsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjNzcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MTAsMHhmMH19LAotIHsgNywweDRjODcsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjOGUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MTAsMHhmMH19LAotIHsgNywweDRjOWUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjYTUsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4MjAsMHhmMH19LAotIHsgNywweDRjYjUsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjYmMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4MjAsMHhmMH19LAotIHsgNywweDRjY2MsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjZDMsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4NDAsMHhmMH19LAotIHsgNywweDRjZTMsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRjZWEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4NDAsMHhmMH19LAotIHsgNywweDRjZmEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMDEsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YTksMHhlMCwweDQ0LDB4ODAsMHhmMH19LAotIHsgNywweDRkMTEsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWEsMHhlMCwweDQ0LDB4ODAsMHhmMH19LAotIHsgNywweDRkMjgsMCx7MHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDRkMmYsMCx7MHg4ZSwweDM1LDB4OGYsMHgzNiwweGU1LDB4MzYsMHgxNSwweDM2LDB4YWUsMHgzNSwweDcwLDB4MDIsMHgxNSwweDM1LDB4NGUsMHg2MH19LAotIHsgNywweDRkM2YsMCx7MHgwNSwweDEyLDB4MTQsMHg4NSwweDgwLDB4ZWUsMHgyMn19LAotIHsxNiwweDRkNDYsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMH19LAotIHsgNiwweDRkNTYsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHg0ZDVjLDAsezB4OTAsMHg3NiwweDgyLDB4ZTAsMHg5MCwweDdmLDB4MDAsMHhmMCwweDkwLDB4N2YsMHhiNSwweDc0LDB4MDEsMHhmMCwweGQzLDB4MjJ9fSwKLSB7IDksMHg0ZDZjLDAsezB4YzIsMHgyNSwweDUzLDB4ZDgsMHhlZiwweDQzLDB4ZDgsMHgyMCwweDMyfX0sCi0geyA3LDB4NGQ3NSwwLHsweDUzLDB4OTgsMHhmZSwweDUzLDB4OTgsMHhmZCwweDMyfX0sCi0geyA3LDB4NGQ3YywwLHsweDUzLDB4YzAsMHhmZSwweDUzLDB4YzAsMHhmZCwweDMyfX0sCi0geyA2LDB4NGQ4MywwLHsweDUzLDB4OTEsMHhiZiwweGQyLDB4MmQsMHgzMn19LAotIHsgNiwweDRkODksMCx7MHg1MywweDkxLDB4N2YsMHhkMiwweDJjLDB4MzJ9fSwKLSB7IDQsMHg0ZDhmLDAsezB4NTMsMHg5MSwweGRmLDB4MzJ9fSwKLSB7IDQsMHg0ZDkzLDAsezB4NTMsMHhkOCwweGY3LDB4MzJ9fSwKLSB7IDQsMHg0ZDk3LDAsezB4MTIsMHgxNywweDMwLDB4MjJ9fSwKLSB7IDMsMHg0ZDliLDAsezB4YzIsMHg4ZCwweDMyfX0sCi0geyAzLDB4NGQ5ZSwwLHsweGMyLDB4OGYsMHgzMn19LAotIHsgMiwweDRkYTEsMCx7MHhkMywweDIyfX0sCi0geyAyLDB4NGRhMywwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGE1LDAsezB4ZDMsMHgyMn19LAotIHsgMiwweDRkYTcsMCx7MHhkMywweDIyfX0sCi0geyAyLDB4NGRhOSwwLHsweGQzLDB4MjJ9fSwKLSB7IDIsMHg0ZGFiLDAsezB4YzMsMHgyMn19LAotIHsgMCwweDAwMDAsMSx7MH19Ci19OwotLyogU291cmNlOiBFTUk2MlNGVy5IRVggCi06MTAwQzhGMDA0MTc2NjgwMTQxNzY2QTAyNDE3NjZCMEFDMTIwQzEyMTIzCi06MTA0NEExMDBDMkFGRDIyNDkwN0Y5Mzc0MzBGMDkwN0Y5Qzc0QkJGMEE0Ci06MTA0NEIxMDA5MDdGOTZFMDQ0MzBGMEUwNTQzMEYwOTA3Rjk0NzQzMDc3Ci06MTA0NEMxMDBGMDkwN0Y5RDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NUNFCi06MTA0NEQxMDA3NEMwRjA5MDdGOUU3NDAzRjA5MDdGOTlFMDMwRTIwOTAwCi06MTA0NEUxMDA5MDA1MTk3NEEwRjBFNEEzRjBDMjI1QzIyMkMyMjNDMjMwCi06MTA0NEYxMDAyNjEyNEFDNDEyMkRBOTEyM0JEMzEyNDU1OTEyM0E0MjJGCi06MTA0NTAxMDA5MDc2Njg3NDAxRjA3MDBGMTI0QkJCMTIwN0ZFMTI0RENBCi06MTA0NTExMDBBMTEyMUI0MDEyMTQ5NjEyNDMwQjkwN0ZBRkUwNDQwMThECi06MTA0NTIxMDBGMDkwN0ZBRUUwNDQxRkYwOTA3RkFDNzRGRkYwOTA3RjdECi06MTA0NTMxMDBBREYwOTA3RkRFRjA5MDdGREZGMDkwN0ZBQkYwOTA3RjY5Ci06MTA0NTQxMDBBOUYwOTA3RkFBRjA1MzkxRUY0M0Q4MjBEMkU4NDNEODQ1Ci06MDg0NTUxMDAyMDUzQThBMDQzQTg4MDIyMUEKLToxMDQ3NUEwMEU0OTA3NjY2RjAxMjQ0QTEyMDI2MTM5MDc2NjZFMEMzQjAKLToxMDQ3NkEwMDk0MDI1MDBBRTAwNEYwRDI0MjEyNEFGNjgwRUEzMDI2NTUKLToxMDQ3N0EwMDA1MTIyODAxQzIyNjMwMjUyQjkwNzY5NkUwNTRGQ0YwQ0IKLToxMDQ3OEEwMDkwODAwM0YwMTIxNDk2OTA3Njk2RTA0NDAzRjA5MDgwOUQKLToxMDQ3OUEwMDAzRjBFNDkwNzY2N0YwOTA3NjY3RTAwNEYwRTBCNDRCQkIKLTowQTQ3QUEwMEY2MTIzRkZBMTI0MTFCODBDNTIyRUYKLToxMDI4MDEwMEMyMjBDMjIxQzIyQTkwN0ZFOEUwMTIzN0Y5MjgzMDAwQTUKLToxMDI4MTEwMDI4OEMwMTI4QTIwMjJBMUYyMTJBNkEyMjI5M0Q4MDI5MDcKLToxMDI4MjEwMDdEODEyOUQxODIyQTg0QTEyQUJBQTIwMDAwMkFCRjkwREYKLToxMDI4MzEwMDdGRTlFMDE0NjAxMTI0RkU2MDI4MjRGRTYwM0IyNEZDNDMKLToxMDI4NDEwMDcwNDAxMjRCQTA0MUNCMTI0REE3NDAwMjQxQ0I5MDdGNkIKLToxMDI4NTEwMEVBRTBCNDAxMDRDMjIyNDFDQjkwN0ZCNEUwNDQwMUYwMkMKLToxMDI4NjEwMDQxQ0IxMjREQTk5MDdGRUFFMEI0MDEwNEQyMjI0MUNCQzEKLToxMDI4NzEwMDkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwOUIKLToxMDI4ODEwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDI0NUIKLToxMDI4OTEwMEY1NzAwNTEyNDgwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxNEUKLToxMDI4QTEwMENCOTA3RkU5RTAyNEZENjA1NDI0MDI2MDAyMjEzNDEyQzAKLToxMDI4QjEwMDREQTc0MDAyNDFDQjkwN0ZFQUUwNzAzODkwN0ZFQ0UwNzkKLToxMDI4QzEwMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RDMKLToxMDI4RDEwMEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGRUYKLToxMDI4RTEwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0RDgKLToxMDI4RjEwMDIwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCMTI0REE5Q0YKLToxMDI5MDEwMDQwMDI0MUNCOTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0RUMKLToxMDI5MTEwMDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyNTMKLToxMDI5MjEwMEU0MzQ3RkY1ODM3NDAxRjA0MUNCOTA3RkI0RTA0NDAxM0UKLToxMDI5MzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwREUKLToxMDI5NDEwMDYwMTIyNEY4NjAwOTI0MDI3MDI5MTI0M0RCNDFDQjEyODIKLToxMDI5NTEwMDRENUM0MUNCMTI0REE1QTIyMkU0MzNGRjI1RTBGRkEyM0QKLToxMDI5NjEwMDIzRTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyMkQKLToxMDI5NzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwOUUKLToxMDI5ODEwMDYwMzMyNEY2NjAyQTI0MDQ3MDNEOTA3RkVCRTAyNERFNUUKLToxMDI5OTEwMDYwMEMwNDcwMTI5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGNTEKLToxMDI5QTEwMEI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCNkQKLToxMDI5QjEwMDEyNDY4NTQxQ0IxMjREQTVFNDkwN0YwMEYwQTNGMDkwMjMKLToxMDI5QzEwMDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCN0MKLToxMDI5RDEwMDkwN0ZFOUUwMjRGNDYwMzQyNDBDNzAzOTEyNERBNTkwMDUKLToxMDI5RTEwMDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1MUYKLToxMDI5RjEwMEUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwNTgKLToxMDJBMDEwMEYwRTRBM0YwOTA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwODUKLToxMDJBMTEwMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGODEKLToxMDJBMjEwMEU5RTAyNEY2NjAxMjE0NjAxQTI0MDI3MDFERDIyMDkwOEQKLToxMDJBMzEwMDdGQjRFMDQ0MDFGMDgwMTJEMjIwOTA3RkI0RTA0NDAxRTEKLToxMDJBNDEwMEYwODAwNzkwN0ZCNEUwNDQwMUYwMjAyMDE4OTA3RkVFRTEKLToxMDJBNTEwMEUwNzAwNEEzRTA2MDBCRDIyOUQyMjcxMjE3NEFEMjJBRDAKLToxMDJBNjEwMDgwMDMxMjA4MDBDMjIwODA2MTkwN0ZFRUUwNzAwNEEzMTEKLToxMDJBNzEwMEUwNjAwQkQyMjlEMjI4MTIxNzRBRDIyQTgwNEMxMjM4OTAKLToxMDJBODEwMDc0ODA0NzkwN0ZFOUUwMjRGRTYwMTIxNDYwMUEyNDAyRUEKLToxMDJBOTEwMDcwMUREMjIxOTA3RkI0RTA0NDAxRjA4MDEyRDIyMTkwQzgKLToxMDJBQTEwMDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwNUUKLToxMDJBQjEwMDIxMDMxMjEwMDBDMjIxODAxMTEyMkFENjgwMEMxMjRENUUKLToxMDJBQzEwMEFCNTAwNzkwN0ZCNEUwNDQwMUYwMjAyQTA3OTA3RkI0MTcKLTowNTJBRDEwMEUwNDQwMkYwMjJDOAotOjEwNDNEQjAwMTI0REEzNDAwMjgxQTA5MDdGRUJFMDI0RkU2MDFFMTRERgotOjEwNDNFQjAwNjA0NjE0NjA2RTE0NzAwMjgxOTEyNDA0NjAwMjgxOTlGRQotOjEwNDNGQjAwNzQwNTkwN0ZENEYwNzQwMDkwN0ZENUYwMjI5MDdGRUEwMwotOjEwNDQwQjAwRTBGRjEyNDlGRjhCMjA4QTIxODkyMkVBNDk2MDExQ0VGNQotOjEwNDQxQjAwRUFDRUVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjJBQwotOjEwNDQyQjAwOTA3RkI0RTA0NDAxRjAyMjkwN0ZFQUUwRkYxMjQ4QjBBNQotOjEwNDQzQjAwOEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0VFRTkwN0Y0OQotOjEwNDQ0QjAwRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZCNEUwNDQ0QQotOjEwNDQ1QjAwMDFGMDIyOTA3RkVBRTBGRjkwN0VDMEUwRkRBM0UwRkIzRAotOjEwNDQ2QjAwMTIxNzk0OEIyMDhBMjE4OTIyRUE0OTYwMTFDRUVBQ0U1OQotOjEwNDQ3QjAwRUU5MDdGRDRGMENGRTlDRkVGOTA3RkQ1RjAyMjkwN0ZGNQotOjEwNDQ4QjAwQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0YyRAotOjA1NDQ5QjAwQjRFMDQ0MDFGMDUzCi06MDE0NEEwMDAyMkY5Ci06MDMwMDMzMDAwMjRENkMwRgotOjA5NEQ2QzAwQzIyNTUzRDhFRjQzRDgyMDMyRDAKLTowMjBDOUYwMEMxMkY2MwotOjA2M0ZGQTAwMTI0QUM0QzIzMTIyOEMKLToxMDQzMEIwMEU0OTA3Njk2RjA5MDgwMDNGMDkwN0ZFMDc0OTBGMDkwQkMKLToxMDQzMUIwMDdGRTE3NDA0RjBFNDkwN0ZEREYwOTA3RkExRjA1MzhFODkKLToxMDQzMkIwMEY4NzU4ODA1NzVCODIwNzVGODAxNDM4RTMwRjVDODc1OUEKLToxMDQzM0IwMENBN0Y3NUNCRjg0M0E4MjAxMjA3NEFDMjJDQzIyREMyRTQKLToxMDQzNEIwMDJCQzIyRjkwN0ZGQzc0RERGMDkwN0ZGRjc0RkZGMDkwRjkKLToxMDQzNUIwMDdGOTdFMDQ0MDFGMDkwNzYxOTc0MDFGMEU0OTA3Njg1MzQKLToxMDQzNkIwMEYwQTNGMDkwNzY4MUYwOTA3NjgwRjAxMjQ5NTgxMjBGRkUKLToxMDQzN0IwMEM2MTI0QThEOTA3Rjk3RTA0NDA4RjBFMDU0QjlGMEQyMTIKLToxMDQzOEIwMDMwMjAzMDE4MTI0N0I0MTIzMDAwMTI0MDAwMTI0MjE2N0YKLToxMDQzOUIwMDEyNEE1MDEyMUIwNDEyMTY2MTEyNDIxNkMyMkZDMjMxNUUKLToxMDQzQUIwMEMyMzJDMjM0QzIzM0MyMjlDMjI3QzIyOEU0RjUxMTkwRUIKLToxMDQzQkIwMDc2ODlGMDkwNzYzRkYwOTA3NjQxRjA5MDc2NDBGMDkwRDEKLToxMDQzQ0IwMDc2OEFGMEEzRjBBMzA0RjBFNEEzRjA5MDc2OTlGMDIyQTAKLToxMDRBNTAwMDMwMkQzOUMyMkQ5MDc2MTlFMEZGQjQwMTBERTQ5MDc2MjcKLToxMDRBNjAwMDdDRjBBMzc0RjhGMEEzNzQwQUYwRUZCNDAyMERFNDkwQTQKLToxMDRBNzAwMDc2N0NGMEEzNzRGMEYwQTM3NDBCRjBFRkI0MDMwREU0QjQKLTowRDRBODAwMDkwNzY3Q0YwQTM3NEY4RjBBMzc0MTdGMDIyNzgKLToxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKLToxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKLToxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKLTowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCi06MTA0MTFCMDA5MDc2OERFMDY0MDE3MDI3MzAyNzA4QzIyNzEyMDgwMEMzCi06MTA0MTJCMDAxMjE3NEEzMDI4MDhDMjI4MTIzODc0MTIxNzRBMzAyQTNDCi06MTA0MTNCMDAwRUU0OTA3NjhERjBDMjJBOTA3RkI0RTA0NDAyRjA5MEFBCi06MTA0MTRCMDA3NjNGRTBCNDAxMDVFNEYwMTIzMjZGOTA3NjQxRTBCNEIzCi06MTA0MTVCMDAwMTA1RTRGMDEyMzQ5QTkwNzY0MEUwQjQwMTAzMTIzNDc2Ci06MTA0MTZCMDA5QTkwN0Y5QkUwMjBFNDAyQzIzRjkwN0Y5QkUwMzBFNDdCCi06MTA0MTdCMDAwMkQyM0Y5MDdGOUJFMDIwRTUwMkMyM0U5MDdGOUJFMDA2Ci06MTA0MThCMDAzMEU1MDJEMjNFQTI0MTMwM0YwMUIzNTAxRkEyM0Y5MjE1Ci06MTA0MTlCMDA0MTMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5Nzc4Ci06MTA0MUFCMDBFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjAzMDNGMzQ5MDNECi06MTA0MUJCMDA3NjE5RTBGRkI0MDEwRTkwNzY3Qzc0NjdGMEEzNzQwNjU5Ci06MTA0MUNCMDBGMEEzNzQwQkYwRUZCNDAyMEJFNDkwNzY3Q0YwQTNGMDQ5Ci06MTA0MURCMDBBMzc0MENGMEVGQjQwMzBCRTQ5MDc2N0NGMEEzRjBBMzg0Ci06MTA0MUVCMDA3NDE4RjBBMjQwMzAzRTAxQjM1MDFGQTIzRTkyNDAzMEYzCi06MTA0MUZCMDAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDY0Ci06MEI0MjBCMDBGQkYwOTA3Njk1RTA5MDgwMDFGMDIyMUYKLTowMjA3RkUwMEQzMjIwNAotOjAyNERBMTAwRDMyMjFCCi06MDI0REEzMDBEMzIyMTkKLToxMDRCQTAwMDkwN0ZFQUUwOTA3NjgyRjBFNDkwNzY5MUYwOTA3NjkyQjEKLTowQjRCQjAwMEYwOTA3NjkwRjA5MDc2OTNGMEQzMjIwNgotOjEwNEQ1QzAwOTA3NjgyRTA5MDdGMDBGMDkwN0ZCNTc0MDFGMEQzMjJDMgotOjEwNDgwMDAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDE3MTQ2MDIxMTQ0MAotOjEwNDgxMDAwNjAyQjE0NjAzMjI0MDQ3MDM4OTA3RkVBRTA5MDc2OTEyNwotOjEwNDgyMDAwRjA4MDM1OTA3RkVBRTA5MDc2OTJGMDEyM0U4RjgwMjhGQgotOjEwNDgzMDAwOTA3RkVBRTA5MDc2OTBGMDEyMTgwMDgwMUI5MDdGRUE1QgotOjEwNDg0MDAwRTA5MDc2ODRGMDgwMTE5MDdGRUFFMDkwNzY5M0YwODA5QgotOjBBNDg1MDAwMDc5MDdGQjRFMDQ0MDFGMEQzMjI4QQotOjEwNDY4NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRBRQotOjEwNDY5NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA1OAotOjEwNDZBNTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDA5RQotOjEwNDZCNTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBBMAotOjEwNDZDNTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBBQwotOjEwNDZENTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDA5RAotOjEwNDZFNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA0RAotOjAyNDZGNTAwRDMyMkNFCi06MDI0REE1MDBEMzIyMTcKLTowMjREQTcwMEQzMjIxNQotOjAyNERBOTAwRDMyMjEzCi06MDI0REFCMDBDMzIyMjEKLToxMDJGRTcwMEMwRTBDMDgzQzA4MkQyMjY1MzkxRUY5MDdGQUI3NDAxQkIKLTowODJGRjcwMEYwRDA4MkQwODNEMEUwMzI1QgotOjEwNEQ0NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDA3MwotOjA2NEQ1NjAwODJEMDgzRDBFMDMyQTAKLToxMDNENDcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRjYKLToxMDNENTcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQjEKLToxMDNENjcwMEMwRTA5MDdGQTJFMDkwNzY3RkYwOTA3Rjc0RTA5MDc2M0QKLToxMDNENzcwMDg3RjA5MDdGNzVFMDkwNzY4OEYwOTA3Rjk4RTA0NDAyMTYKLToxMDNEODcwMEYwOTA3Njk2RTBGRjIwRTEwQzQ0MDJGMDkwODAwM0YwN0IKLToxMDNEOTcwMEQyMzIxMjRBQzQ5MDc2N0ZFMDIwRTI1MDkwNzY4N0UwRDQKLToxMDNEQTcwMEZFQTNFMDdDMDAyNDAwRjUzNEVDM0VGNTMzOTA3Njk4RDIKLToxMDNEQjcwMEUwRkRBRTMzQUYzNDEyMzZEODkwNzY4N0VGRjBEMjJGQ0UKLToxMDNEQzcwMDMwMzEyOTIwM0YyNkMyMzE5MDdGOTRFMDU0Q0ZGMDkwQzQKLToxMDNERDcwMDdGOUFFMDMwRTQwNEQyMkRDMjJDOTA3RjlBRTAyMEU1NTAKLToxMDNERTcwMDA0QzIyREQyMkM5MDdGOTRFMDQ0MzBGMDEyNEE1MDEyMzYKLToxMDNERjcwMDFCMDQzMDJGMTIxMjQyMTZDMjJGNzVFODAxMTIxNjhBQzEKLToxMDNFMDcwMDc1RTgwREQyMkI4MDA1NzVFODAxQzIyQjIwMkIzNDkwNjUKLToxMDNFMTcwMDc2MTlFMEZGQjQwMTBFOTA3NjdDNzQ2N0YwQTM3NDA2MDAKLToxMDNFMjcwMEYwQTM3NDBCRjBFRkI0MDIwQjkwNzY3Q0U0RjBBM0YwRjAKLToxMDNFMzcwMEEzNzQwQ0YwRUZCNDAzMEI5MDc2N0NFNEYwQTNGMEEzMkIKLToxMDNFNDcwMDc0MThGMDc1Q0FEMzc1Q0JGRUQyQ0EzMDM0MDRDMjM0QTUKLToxMDNFNTcwMDgwMDJEMjM0NTM5MUVGOTA3RkFCNzQwMkYwRjA5MDdGRTEKLToxMDNFNjcwMDk4RTA1NEZERjBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRDgKLToxMDNFNzcwMEZDRDBFMEZCRDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwMjkKLTowODNFODcwMDgyRDA4M0QwRjBEMEUwMzJCQwotOjEwNEI2MDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwOTA4RgotOjEwNEI3MDAwNzY5NkUwNTRGREYwOTA4MDAzRjBEMDgyRDA4M0QwRTBCMAotOjAxNEI4MDAwMzIwMgotOjAxMkZGRjAwMzI5RgotOjEwNEJENTAwQzBFMEMwODNDMDgyRDIyNTUzOTFFRjkwN0ZBQjc0MDhBQgotOjA4NEJFNTAwRjBEMDgyRDA4M0QwRTAzMjUxCi06MTA0QkVEMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDFGMEYzCi06MDc0QkZEMDBEMDgyRDA4M0QwRTAzMjJBCi06MTA0QjgxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMDVFCi06MEY0QjkxMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzJBQgotOjEwNEMwNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjBEQQotOjA3NEMxNDAwRDA4MkQwODNEMEUwMzIxMgotOjEwM0ZENTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAyRjAxNQotOjEwM0ZFNTAwOTA3RkM3RTBGNTExNzUwRjAwNzUwRDAwRDIzM0QwODJCMwotOjA1M0ZGNTAwRDA4M0QwRTAzMjkyCi06MTA0QzFCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDRGMEMxCi06MDc0QzJCMDBEMDgyRDA4M0QwRTAzMkZCCi06MTA0QzMyMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDRGMEE5Ci06MDc0QzQyMDBEMDgyRDA4M0QwRTAzMkU0Ci06MTA0QzQ5MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MDhGMDhGCi06MDc0QzU5MDBEMDgyRDA4M0QwRTAzMkNECi06MTA0QzYwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDhGMDc3Ci06MDc0QzcwMDBEMDgyRDA4M0QwRTAzMkI2Ci06MTA0Qzc3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MTBGMDU5Ci06MDc0Qzg3MDBEMDgyRDA4M0QwRTAzMjlGCi06MTA0QzhFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MTBGMDQxCi06MDc0QzlFMDBEMDgyRDA4M0QwRTAzMjg4Ci06MTA0Q0E1MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0MjBGMDFCCi06MDc0Q0I1MDBEMDgyRDA4M0QwRTAzMjcxCi06MTA0Q0JDMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MjBGMDAzCi06MDc0Q0NDMDBEMDgyRDA4M0QwRTAzMjVBCi06MTA0Q0QzMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0NDBGMENECi06MDc0Q0UzMDBEMDgyRDA4M0QwRTAzMjQzCi06MTA0Q0VBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0NDBGMEI1Ci06MDc0Q0ZBMDBEMDgyRDA4M0QwRTAzMjJDCi06MTA0RDAxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTlFMDQ0ODBGMDVFCi06MDc0RDExMDBEMDgyRDA4M0QwRTAzMjE0Ci06MTA0RDE4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0ODBGMDQ2Ci06MDc0RDI4MDBEMDgyRDA4M0QwRTAzMkZECi06MTA0MjE2MDA5MDc2MTlFMDY0MDE3MDM1OTA3Njg3RTBGRkQzOTQyRDhGCi06MTA0MjI2MDA0MDJCOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzFBCi06MTA0MjM2MDA5NDBGNDAxOUU0RjBFRkQzOTQzMTQwMDg5MDc2MTk3NDQ2Ci06MTA0MjQ2MDAwM0YwODAwNjkwNzYxOTc0MDJGMDEyM0U4RjkwNzYxOTZDCi06MTA0MjU2MDBFMEI0MDIyQzkwNzY4N0UwRkZDMzk0MkY1MDIyRUZEMzcwCi06MTA0MjY2MDA5NDJBNDAxQzkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMERFCi06MTA0Mjc2MDBFMEQzOTQwRjQwMEFFNEYwOTA3NjE5MDRGMDEyM0U4RkQyCi06MTA0Mjg2MDA5MDc2MTlFMEI0MDIyNjkwNzY4N0UwRDM5NDMxNDAxREVCCi06MTA0Mjk2MDA5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjcyCi06MTA0MkE2MDA0MDBCRTRGMDkwNzYxOTc0MDNGMDEyM0U4RjkwNzYxOTY1Ci06MTA0MkI2MDBFMDY0MDM3MDNGOTA3Njg3RTBGRkMzOTQ1RjUwMzU5MENCCi06MTA0MkM2MDA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY0MDkyCi06MTA0MkQ2MDAyM0U0RjBFRkMzOTQyRjUwMENFRkQzOTQyQTQwMDY5MEJBCi06MTA0MkU2MDA3NjE5NzQwMUYwRUZEMzk0MkY0MDA2OTA3NjE5NzQwMjc0Ci06MTA0MkY2MDBGMDEyM0U4RjkwNzY4NkUwNzAwNTkwNzY4NUYwMjJFNDg3Ci06MDU0MzA2MDA5MDc2ODZGMDIyMTQKLToxMDA3NEEwMDkwNzY5QTc0MDJGMEU0OTA3NjkxRjBBM0YwOTA3NjkwMDUKLToxMDA3NUEwMEYwOTA3NjkzRjA5MDc2OTY3NDAzRjA5MDgwMDNGMEU0MkMKLToxMDA3NkEwMDkwNzY5N0YwOTA4MDAyRjA5MDc2OTQwNEYwOTA4MDAwNTIKLToxMDA3N0EwMEYwRTQ5MDc2OEVGMDkwNzYxQUYwOTA3Njk1MDRGMEMyQjYKLToxMDA3OEEwMDJFOTA3RjlCRTBGRjU0MTBGRjcwMDJDMjNGOTA3RjlCMjgKLToxMDA3OUEwMEUwRkY1NDEwRkVGRkJFMTAwMkQyM0Y5MDdGOUJFMEZGQTUKLToxMDA3QUEwMDU0MjBGRjcwMDJDMjNFOTA3RjlCRTBGRjU0MjBGRUZGNjAKLToxMDA3QkEwMEJFMjAwMkQyM0UzMDNGMDk5MDc2OTdFMDU0RkVGMDgwODgKLToxMDA3Q0EwMDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwRTcKLToxMDA3REEwMDMwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwRTMKLToxMDA3RUEwMDU0RkJGMDkwNzY5NUUwOTA4MDAxRjBBMjNFOTI0MEEyRjAKLTowMzA3RkEwMDNGOTI0MUVBCi06MDEwN0ZEMDAyMkQ5Ci06MTAzRThGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNDQyNDAyNjAwMkU3Ci06MTAzRTlGMDBFMUQ0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUU3Ci06MTAzRUFGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjNCCi06MTAzRUJGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzYyCi06MTAzRUNGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMEVFCi06MTAzRURGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDRFCi06MTAzRUVGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDJCCi06MTAzRUZGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDRBCi06MTAzRjBGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTg3Ci06MTAzRjFGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDlBCi06MTAzRjJGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkY3Ci06MTAzRjNGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjlDCi06MTAzRjRGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjYyCi06MTAzRjVGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkI2Ci06MTAzRjZGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzk1Ci06MTAzRjdGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDRBCi06MTAzRjhGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNECi06MTAzRjlGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRkFGCi06MTAzRkFGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYxCi06MTAzRkJGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MEVCCi06MDYzRkNGMDA3NjhFNzQwMkYwMjI2MAotOjEwMTgwMDAwOTA3NjkwRTAxNDYwMzcxNDcwMDIwMUQ4MTQ3MDAyMjFCMQotOjEwMTgxMDAwNzIxNDcwMDI0MTNCMjQwNDYwMDI2MTAzOTA3RkZDNzRFNwotOjEwMTgyMDAwQ0NGMDkwN0ZGRjc0RkNGMDkwNzY5NUUwNDQwMUYwNTQ4QQotOjEwMTgzMDAwMDVGMDkwODAwMUYwRTQ5MDc2MUFGMEMyMkUyMjkwNzZBNgotOjEwMTg0MDAwOTVFMDQ0MDFGMDQ0MDJGMDMwM0UwNkUwNDQwNEYwODBBQwotOjEwMTg1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3QQotOjEwMTg2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTIyOTAyNwotOjEwMTg3MDAwN0ZGQzc0NzRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkI3MwotOjEwMTg4MDAwRjA5MDc2OTdFMDU0RkRGMEU0OTA3NjgxRjA5MDc2ODBDOQotOjEwMTg5MDAwRjBFRkI0MDIyMjkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkMzQwotOjEwMThBMDAwRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJGMEU0OTBGOQotOjEwMThCMDAwNzY4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkU4NAotOjEwMThDMDAwRjA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDU0RkIyMwotOjEwMThEMDAwRjA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTRGRUYwNDRGMwotOjEwMThFMDAwMDJGMDMwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTQyNAotOjEwMThGMDAwRkJGMDkwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFCNAotOjEwMTkwMDAwRjA5MDc2MTlFMEZGQjQwMTIyOTA3RkZDNzQzMEYwOTBFMwotOjEwMTkxMDAwN0ZGRjc0RkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGNAotOjEwMTkyMDAwRkRGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjIyOTBBMgotOjEwMTkzMDAwN0ZGQzc0MUNGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkYwNgotOjEwMTk0MDAwRjA5MDc2OTdFMDQ0MDJGMEU0OTA3NjgxRjA5MDc2ODAxMwotOjEwMTk1MDAwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTczQwotOjEwMTk2MDAwRTA0NDAxRjA5MDc2OTdFMDU0RkJGMDkwODAwMkYwRDJEMgotOjEwMTk3MDAwMkUyMjkwNzY5NUUwNDQwMUYwNDQwMkYwNDQwOEYwMzBDNQotOjEwMTk4MDAwM0UwNkUwNDQwNEYwODAwNzkwNzY5NUUwNTRGQkYwOTAyQQotOjEwMTk5MDAwNzYxQUUwQjQwMTA4OTA3Njk1RTA5MDgwMDFGMDkwNzY5OAotOjEwMTlBMDAwMTlFMEZGQjQwMTI1OTA3RkZDNzRDQ0YwOTA3RkZGNzRBOAotOjEwMTlCMDAwRkNGMDkwNzY4Rjc0MkJGMDkwNzY5N0UwNTRGREYwNTQwNQotOjEwMTlDMDAwRkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMjI1OTAwMQotOjEwMTlEMDAwN0ZGQzc0QzhGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkZCQQotOjEwMTlFMDAwRjA5MDc2OTdFMDQ0MDJGMDU0RkJGMEU0OTA3NjgxRjBCQQotOjEwMTlGMDAwOTA3NjgwRjBFRkI0MDMyNTkwN0ZGQzc0OThGMDkwN0Y5MAotOjEwMUEwMDAwRkY3NEZDRjA5MDc2OEY3NDVGRjA5MDc2OTdFMDU0RkQ1MQotOjEwMUExMDAwRjA0NDA0RjBFNDkwNzY4MUYwOTA3NjgwRjAzMDNGMDk1NQotOjEwMUEyMDAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjBCRQotOjEwMUEzMDAwOTA3Njk3RTA5MDgwMDJGMEQyMkUyMjkwNzY5NUUwNTQzNgotOjEwMUE0MDAwRkVGMDQ0MDJGMDQ0MDhGMDMwM0UwNkUwNDQwNEYwODAyQQotOjEwMUE1MDAwMDc5MDc2OTVFMDU0RkJGMDkwNzYxQUUwQjQwMTA4OTA3OAotOjEwMUE2MDAwNzY5NUUwOTA4MDAxRjA5MDc2MTlFMEZGQjQwMTI1OTAyMgotOjEwMUE3MDAwN0ZGQzc0QjRGMDkwN0ZGRjc0RkNGMDkwNzY4Rjc0MkIzMQotOjEwMUE4MDAwRjA5MDc2OTdFMDU0RkRGMDU0RkJGMEU0OTA3NjgxRjAwRQotOjEwMUE5MDAwOTA3NjgwRjBFRkI0MDIyNTkwN0ZGQzc0QjBGMDkwN0ZEOAotOjEwMUFBMDAwRkY3NEZDRjA5MDc2OEY3NDJGRjA5MDc2OTdFMDQ0MDJFQwotOjEwMUFCMDAwRjA1NEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDM4MAotOjEwMUFDMDAwMjU5MDdGRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc2OEYxNwotOjEwMUFEMDAwNzQ1RkYwOTA3Njk3RTA1NEZERjA0NDA0RjBFNDkwNzY2MwotOjEwMUFFMDAwODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFRjBEOAotOjEwMUFGMDAwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDIxRQotOjA0MUIwMDAwRjBEMjJFMjJDRgotOjA0MENBMTAwNDE3NjIzMDA3NQotOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgotOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgotOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QwotOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAotOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQwotOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNwotOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQotOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NwotOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQotOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAotOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQotOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QwotOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQotOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQotOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMwotOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAotOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQotOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQotOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgotOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQotOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgotOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQotOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQwotOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgotOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQotOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAotOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QwotOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQotOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQotOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQotOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQotOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAotOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQotOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAotOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NwotOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCi06MTAzQkQzMDBFNDkwNzYzNkYwRTBGQjc1RjAwRkE0MjQ0MUY1ODJFNDFGCi06MTAzQkUzMDAzNDc1RjU4Mzc0NDBGMEVCNzVGMDBGQTQyNDQyRjU4MjJECi06MTAzQkYzMDBFNDM0NzVGNTgzNzQwQUYwRUI3NUYwMEZBNDI0NDNGNUYwCi06MTAzQzAzMDA4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMEQ5Ci06MTAzQzEzMDAwRkE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMEY2Ci06MTAzQzIzMDBBQzQ0RUI3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0IzCi06MTAzQzMzMDAxMjM3QzgwMDAxNzcwMDkwNzYzNkUwMDRGMEUwRkI3NTk4Ci06MTAzQzQzMDBGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQwRjBFQjVFCi06MTAzQzUzMDA3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0OENGMDc3Ci06MTAzQzYzMDBFQjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzMTIzNzIyCi06MTAzQzczMDBDODAwMDBBQzQ0RUI3NUYwMEZBNDI0NDdGNTgyRTQzNDhDCi06MTAzQzgzMDA3NUY1ODMxMjM3QzgwMDAwQUM0NEVCNzVGMDBGQTQyNDFDCi06MTAzQzkzMDA0QkY1ODJFNDM0NzVGNTgzMTIzN0M4MDAwMTc3MDA5MDQxCi06MTAzQ0EzMDA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNERBCi06MTAzQ0IzMDAzNDc1RjU4Mzc0NDBGMEVGNzVGMDBGQTQyNDQyRjU4MjU4Ci06MTAzQ0MzMDBFNDM0NzVGNTgzNzQ4RkYwOTA3NjM2RTAwNEYwRTBGRjBBCi06MTAzQ0QzMDA3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDFGMDQzCi06MTAzQ0UzMDBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4NEYwCi06MTAzQ0YzMDBGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTcwCi06MTAzRDAzMDA4MkU0MzQ3NUY1ODM3NDYxRjBFRjc1RjAwRkE0MjQ0MkY3Ci06MTAzRDEzMDBGNTgyRTQzNDc1RjU4Mzc0ODFGMDkwNzYzNkUwMDRGMDJGCi06MTAzRDIzMDBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQ0Ci06MTAzRDMzMDA2MUYwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4MzQ2Ci06MDQzRDQzMDA3NDAxRjAyMkY1Ci06MTA0NTU5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEE2Ci06MTA0NTY5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNEEwCi06MTA0NTc5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTQ4Ci06MTA0NTg5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTgxCi06MTA0NTk5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEIyCi06MTA0NUE5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU2Ci06MTA0NUI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDUwCi06MTA0NUM5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NUY2Ci06MTA0NUQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTMxCi06MTA0NUU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMkNFCi06MTAzQTQyMDBFNDkwNzYzNUYwOTA3NjM1RTBGRkMzOTQwMzQwMDI0MTZFCi06MTAzQTUyMDBGRkVGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1ODNFRjJBCi06MTAzQTYyMDBGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFNDMzCi06MTAzQTcyMDBGMEVGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM3NDkyCi06MTAzQTgyMDBGMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzA1Ci06MTAzQTkyMDA3NEZGRjBFRjc1RjAwQUE0MjRBRUY1ODJFNDM0NzVGNUY0Ci06MTAzQUEyMDA4M0U0RjBFRjc1RjAwQUE0MjRBRkY1ODJFNDM0NzVGNUVGCi06MTAzQUIyMDA4Mzc0ODBGMEVGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUMzCi06MTAzQUMyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUNECi06MTAzQUQyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUJDCi06MTAzQUUyMDBGNTgzRTRGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUFCCi06MTAzQUYyMDBGNTgzNzQwMUYwOTA3NjM1RTAwNEYwNDE0NzkwNzYzQzBFCi06MTAzQjAyMDA3NDBBRjBFNEEzRjA5MDc2MzU3NDAzRjA5MDc2M0NFMDBBCi06MTAzQjEyMDBGRjkwNzYzNUUwRkVDMzlGNDAwMjYxRDI5MDc2M0RFMDkxCi06MTAzQjIyMDBGRjA0RjBFRTc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNUQ4Ci06MTAzQjMyMDA4M0VGRjBFRTc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTU4Ci06MTAzQjQyMDA4M0U0RjBFRTc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTUyCi06MTAzQjUyMDA4Mzc0NUVGMEVFNzVGMDBBQTQyNEFERjU4MkU0MzQ3NTQ4Ci06MTAzQjYyMDBGNTgzNzRCQUYwRUU3NUYwMEFBNDI0QUVGNTgyRTQzNDVCCi06MTAzQjcyMDA3NUY1ODM3NDA1RjBFRTc1RjAwQUE0MjRBRkY1ODJFNEJFCi06MTAzQjgyMDAzNDc1RjU4Mzc0ODBGMEVFNzVGMDBBQTQyNEIwRjU4MkUyCi06MTAzQjkyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIxRjU4MkZECi06MTAzQkEyMDBFNDM0NzVGNTgzRTRGMEVFNzVGMDBBQTQyNEIyRjU4MkVDCi06MTAzQkIyMDBFNDM0NzVGNTgzNzQxNUYwRUU3NUYwMEFBNDI0QjNGNUI4Ci06MTAzQkMyMDA4MkU0MzQ3NUY1ODNFNEYwOTA3NjM1RTAwNEYwNjEwRTFBCi06MDEzQkQyMDAyMkQwCi06MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Ci06MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCi06MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCi06MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCi06MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Ci06MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCM0UyMjkwN0ZFREU5Ci06MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Ci06MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCi06MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Ci06MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCi06MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Ci06MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Ci06MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Ci06MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Ci06MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Ci06MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Ci06MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Ci06MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECi06MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Ci06MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCi06MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCi06MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Ci06MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCi06MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCi06MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCi06MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCi06MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCi06MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCi06MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCi06MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCi06MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCi06MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCi06MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Ci06MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCi06MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCi06MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Ci06MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCi06MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Ci06MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECi06MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Ci06MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Ci06MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCi06MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECi06MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCi06MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCi06MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCi06MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCi06MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCi06MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCi06MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCi06MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Ci06MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Ci06MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Ci06MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCi06MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCi06MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Ci06MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCi06MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Ci06MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Ci06MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCi06MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Ci06MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCi06MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCi06MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCi06MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCi06MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Ci06MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCi06MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCi06MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Ci06MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCi06MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCi06MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Ci06MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQotOjEwMTAwMDAwRTQ5MDc2MkNGMDkwNzYyQ0UwRkY3NUYwMDNBNDI0MEY4QQotOjEwMTAxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0MgotOjEwMTAyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYyQ0UwMDRGMDgwRDU0RQotOjEwMTAzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNBOQotOjEwMTA0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYyRUYwMjQyNgotOjEwMTA1MDAwRjA2MDBBMjQwRjYwMDI4MTdEMTI0QjFCMjI5MDdGRUQwRAotOjEwMTA2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzODc0MDEzQwotOjEwMTA3MDAwRjA5MDc2M0E3NDAzRjA5MDc2MUNGMEU0OTA3NjFCRjBEMgotOjEwMTA4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MUJFMEZGNzVGMDBBQTRGMQotOjEwMTA5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1MgotOjEwMTBBMDAwRUU2RDYwMTI5MDc2MUNFMEZFRUZDMzlFNTAwODkwNzZDNQotOjEwMTBCMDAwMUJFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFMgotOjEwMTBDMDAwMTg3NDA2RjA5MDc2Mzg3NDA0RjA5MDc2M0E3NDBBRjA0QQotOjEwMTBEMDAwOTA3NjFDRjA5MDc2MUI3NDAzRjA5MDdGRUFFMEY0NjA0OQotOjEwMTBFMDAwMkY5MDc2MUJFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2MQotOjEwMTBGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY3QwotOjEwMTEwMDAwMUNFMEZFRUZDMzlFNTAwODkwNzYxQkUwMDRGMDgwRDFGNwotOjEwMTExMDAwRTQ5MDc2MUVGMDkwNzYxQ0UwRkY5MDc2MUJFMEZFNkY2OAotOjEwMTEyMDAwNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJFMDE0NjBGRgotOjEwMTEzMDAwMTMxNDcwMDIyMUJGMjQwMjYwMDI4MTc1OTA3RkI0RTAxNQotOjEwMTE0MDAwNDQwMUYwMjI5MDdGRTlFMDI0N0Y3MDZCOTA3RkVBRTAxOQotOjEwMTE1MDAwRjQ3MDRBOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MwotOjEwMTE2MDAwOTA3NjFCRTBGREMzOUY1MDJCRUQ3NUYwMEFBNDI0QUJENQotOjEwMTE3MDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRDA0RjAxRgotOjEwMTE4MDAwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTA1OAotOjEwMTE5MDAwMDRGMDgwQzc5MDc2MUVFMDkwN0ZCNUYwMjJFRTc1RjBFNwotOjEwMTFBMDAwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA2NwotOjEwMTFCMDAwOTA3RkI1NzQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA1QQotOjEwMTFDMDAwN0ZFOUUwMjQ3RTcwMDI0MTdFMTQ3MDAyNjEyMzE0NzA3NgotOjEwMTFEMDAwMDI2MUM4MjQwMzYwMDI4MTZEOTA3RkVBRTBGNDcwNkRDMwotOjEwMTFFMDAwOTA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUI5MAotOjEwMTFGMDAwRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QUNGNTgyRTRGMQotOjEwMTIwMDAwMzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkQ0OQotOjEwMTIxMDAwRjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QUQ5NwotOjEwMTIyMDAwRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA2RAotOjEwMTIzMDAwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTBBNgotOjEwMTI0MDAwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUI4QgotOjEwMTI1MDAwRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTA3MAotOjEwMTI2MDAwOTA3RjAwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVBOAotOjEwMTI3MDAwRjU4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCQgotOjEwMTI4MDAwRUFFMEY0NzA2RDkwNzYzOEUwOTA3NjFCRjA5MDc2M0E1NAotOjEwMTI5MDAwRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEZGNzVGMDBBQTQ3QgotOjEwMTJBMDAwMjRBRUY1ODJFNDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQxMQotOjEwMTJCMDAwMDRGMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVEMQotOjEwMTJDMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRTBGRjkwNzY0QwotOjEwMTJEMDAwMUVFMEZFMDRGMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUYwNwotOjEwMTJFMDAwRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjUyRAotOjEwMTJGMDAwRjAyMjkwNzYxQkUwRkY3NUYwMEFBNDI0QUVGNTgyRTQ5QwotOjEwMTMwMDAwMzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUYwMEFBNDI0QUYwOAotOjEwMTMxMDAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMUYwOTA3RkI1NzQzOQotOjEwMTMyMDAwMDJGMDIyOTA3RkVBRTBGNDcwNkQ5MDc2MzhFMDkwNzZEQgotOjEwMTMzMDAwMUJGMDkwNzYzQUUwRkY5MDc2MUJFMEMzOUY1MDRGRTBBMQotOjEwMTM0MDAwRkY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1RjU4M0UwRkU1RAotOjEwMTM1MDAwOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTgyRTQzNDdGRjVGNAotOjEwMTM2MDAwODNFRUYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1RjU0QwotOjEwMTM3MDAwODNFMEZGOTA3NjFFRTBGRTA0RjA3NDAwMkVGNTgyRTQxOAotOjEwMTM4MDAwMzQ3RkY1ODNFRkYwOTA3NjFCRTAwNEYwODBBNDkwNzYzNAotOjEwMTM5MDAwMUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEZGNzVGMDBBQTQ2NgotOjEwMTNBMDAwMjRCMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVBQQotOjEwMTNCMDAwRjAwQUE0MjRCMUY1ODJFNDM0NzVGNTgzRTA5MDdGMDE0RQotOjEwMTNDMDAwRjA5MDdGQjU3NDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTBBNwotOjEwMTNEMDAwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCRTA0RQotOjEwMTNFMDAwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzRBNQotOjEwMTNGMDAwNzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJERjU5NwotOjEwMTQwMDAwODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEIzRjU5RgotOjEwMTQxMDAwODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNzRGQwotOjEwMTQyMDAwMDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDQyNAotOjEwMTQzMDAwRjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCRTBCRAotOjEwMTQ0MDAwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0UwOTBDOAotOjEwMTQ1MDAwN0YwMEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU0QgotOjEwMTQ2MDAwODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQjQwQQotOjEwMTQ3MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjQ3OAotOjA1MTQ4MDAwRTA0NDAxRjAyMjMwCi06MTAzODc0MDBFNDkwNzYyOUYwOTA3NjI5RTBGRjc1RjAwRkE0MjQ0MkI1Ci06MTAzODg0MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REE3Ci06MTAzODk0MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI5RTAwNEYwODBENUJBCi06MTAzOEE0MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRjA2Ci06MTAzOEI0MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjJBRjAyNDVCCi06MTAzOEM0MDBCRjcwMDI0MTQxMjRFMDcwMDI0MTEyMjQyMTYwMDI0MTkwCi06MTAzOEQ0MDAzQTkwN0ZFOUUwMjRGRTYwN0QxNDcwMDIyMUIyMjQwMjU0Ci06MTAzOEU0MDA2MDAyNDEwQTEyMTc1MTkwNzY0MkUwRkNBM0UwRkRBMzY2Ci06MTAzOEY0MDBFMEZFQTNFMEZGOTA3NjI5RTA3NUYwMEZBNDI0NDNGNUUxCi06MTAzOTA0MDA4MkU0MzQ3NUY1ODMxMjM3QkM5MDc2MTlFMEZGQjQwMTc0Ci06MTAzOTE0MDAxMjkwNzY3Qzc0NjdGMDkwNzY3RDc0MDZGMDkwNzY3RUQzCi06MTAzOTI0MDA3NDBCRjBFRkI0MDIwRkU0OTA3NjdDRjA5MDc2N0RGMEE3Ci06MTAzOTM0MDA5MDc2N0U3NDBDRjBFRkI0MDMwRkU0OTA3NjdDRjA5MEY0Ci06MTAzOTQ0MDA3NjdERjA5MDc2N0U3NDE4RjA5MDc2MUE3NDAxRjAxMkY5Ci06MTAzOTU0MDAzRThGMTIxODAwMjI5MDdFQzJFMEZGRTRGQ0ZERkVGQkM1Ci06MTAzOTY0MDBGQTc5MDFGODEyMzc0NkM4RUNDOEM5RURDOUNBRUVDQURCCi06MTAzOTc0MDBDQkVGQ0I5MDdFQzFFMEZFRTRGQ0ZEMkJGQkVBM0VGQUVDCi06MTAzOTg0MDBFRDM5RjlFQzM4Rjg5MDdFQzBFMEZGRTRGRUVCMkZGRjUwCi06MTAzOTk0MDBFRTNBRkVFRDM5RkRFQzM4RkM5MDc2MjlFMDc1RjAwRjM3Ci06MTAzOUE0MDBBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdCQzIyOTA3RTUzCi06MTAzOUI0MDBDMkUwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjM3NDZDOEM5Ci06MTAzOUM0MDBFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3RUMxRTBGRTBDCi06MTAzOUQ0MDBFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3RTc1Ci06MTAzOUU0MDBDMEUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOENDCi06MTAzOUY0MDBGQzkwNzYyOUUwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NTJECi06MTAzQTA0MDBGNTgzMTIzN0JDMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjBBCi06MTAzQTE0MDBFOUUwMTQ3MDE5OTA3RUMwRTBGRjkwNzYyOUUwNzVGMDFCCi06MTAzQTI0MDAwRkE0MjQ0RkY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkUwCi06MEUzQTM0MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOUYKLToxMDJBRDYwMEU0OTA3NjI3RjA5MDc2MjdFMEZGNzVGMDBGQTQyNDQyNjUKLToxMDJBRTYwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENTMKLToxMDJBRjYwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjdFMDA0RjA4MEQ1NjgKLToxMDJCMDYwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGQjEKLToxMDJCMTYwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MjhGMDI0MDgKLToxMDJCMjYwMDlGNzAwMkExNzQyNDIxNjAwMkExQTE5MDdGRTlFMDI0OTQKLToxMDJCMzYwMDdFNzAwMjYxRkMxNDcwMDI4MUI1MjQwMjYwMDJBMTZDRjEKLToxMDJCNDYwMEVGNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQjkKLToxMDJCNTYwMEEzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzkwMDc4MTYKLToxMDJCNjYwMDAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTM3NEFDQUIKLToxMDJCNzYwMEYwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwNEIKLToxMDJCODYwMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZENEQKLToxMDJCOTYwMEEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBDMzEyMzYKLToxMDJCQTYwMDM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBFNEEzN0UKLToxMDJCQjYwMEYwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0QUIKLToxMDJCQzYwMDQzRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFNjMKLToxMDJCRDYwMEEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdBQjYwRjgKLToxMDJCRTYwMDAyQTFBODkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0YKLToxMDJCRjYwMDdGQjU3NDAzRjAyMjkwNzYyN0UwNzVGMDBGQTQyNDQ3ODIKLToxMDJDMDYwMEY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzQzIKLToxMDJDMTYwMEUwRkY3QjQ0N0FBQzc5MDA3ODAwQzMxMjM3QUI3MDEzQkYKLToxMDJDMjYwMDkwN0YwMDc0NDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1RjkKLToxMDJDMzYwMDc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0M0MKLToxMDJDNDYwMDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCODMKLToxMDJDNTYwMDgwN0FCQjc5MDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwN0YKLToxMDJDNjYwMDc0ODBGMEEzNzRCQkYwRTRBM0YwOTA3RkI1NzQwM0YwMTYKLToxMDJDNzYwMDkwNzYyN0UwNzVGMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1QzUKLToxMDJDODYwMDgzRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCMDA3QTc3RjAKLToxMDJDOTYwMDc5MDE3ODAwQzMxMjM3QUI2MDAyQTFBODkwN0YwMEYwREIKLToxMDJDQTYwMEEzNzQ3N0YwQTM3NDAxRjA5MDdGQjU3NDAzRjAyMjkwQkIKLToxMDJDQjYwMDc2MjdFMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzOEUKLToxMDJDQzYwMEUwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5NDEKLToxMDJDRDYwMDAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzRTIKLToxMDJDRTYwMDc0QUNGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwMUYKLToxMDJDRjYwMDc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzNEMKLToxMDJEMDYwMEUwRkRBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQkMKLToxMDJEMTYwMEMzMTIzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwQkUKLToxMDJEMjYwMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGN0EKLToxMDJEMzYwMEE0MjQ0QkY1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRkYKLToxMDJENDYwMEUwRkVBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QjMKLToxMDJENTYwMEFCNzA0RjkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwRUUKLToxMDJENjYwMDdGQjU3NDAzRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGOTcKLToxMDJENzYwMEU5RTAyNDdGNzAxRTkwNzYyN0UwNzVGMDBGQTQyNDRGQkIKLToxMDJEODYwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwN0ZCNTc0QUEKLToxMDJEOTYwMDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0RjYKLTowMzJEQTYwMDAxRjAyMjE3Ci06MTA0QjFCMDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjE3Ci06MTA0QjJCMDA0ODVBMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NEQ1Ci06MDM0QjNCMDAwMUYwMjI2NAotOjEwNEIzRTAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNDkzQgotOjEwNEI0RTAwQUQyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFBNgotOjAyNEI1RTAwRjAyMjQzCi06MTA0ODVBMDBFNDkwNzYyNkYwOTA3NjI2RTBGRjc1RjAwM0E0MjQzNERGCi06MTA0ODZBMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REIxCi06MTA0ODdBMDA2MDBFRUZDMzk0MDQ1MDA4OTA3NjI2RTAwNEYwODBENUM5Ci06MTA0ODhBMDBFRkI0MDQwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwMzFFCi06MTA0ODlBMDBBNDI0MzJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDI5Ci06MDY0OEFBMDA3RkI1NzQwMUYwMjI0RAotOjEwNDlBRDAwRTQ5MDc2MjVGMDkwNzYyNUUwRkY3NUYwMDNBNDI0MzQ4RAotOjEwNDlCRDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1RAotOjEwNDlDRDAwNjAwRUVGQzM5NDA0NTAwODkwNzYyNUUwMDRGMDgwRDU3NgotOjEwNDlERDAwRUZCNDA0MDg5MDdGQjRFMDQ0MDFGMDIyOTA3RUMwRTA3MwotOjEwNDlFRDAwRkVFRjc1RjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRUUwMQotOjAyNDlGRDAwRjAyMkE2Ci06MDMwMDAzMDAwMjBGRkRFQwotOjAzMEZGRDAwQzI4OTMyNzQKLTowMzAwMTMwMDAyMTdGREQ0Ci06MDMxN0ZEMDBDMjhCMzI2QQotOjAzMDA0QjAwMDI0RDhGRDQKLTowNDREOEYwMDUzOTFERjMyMkIKLTowMzAwNTMwMDAyNEQ4M0Q4Ci06MDY0RDgzMDA1MzkxQkZEMjJEMzI1NgotOjAzMDA1QjAwMDI0RDg5Q0EKLTowNjREODkwMDUzOTE3RkQyMkMzMjkxCi06MDMwMDYzMDAwMjREOTNCOAotOjA0NEQ5MzAwNTNEOEY3MzJDOAotOjAzMDAwQjAwMDI0RDlCMDgKLTowMzREOUIwMEMyOEQzMjk0Ci06MDMwMDFCMDAwMjREOUVGNQotOjAzNEQ5RTAwQzI4RjMyOEYKLTowMzAwMjMwMDAyNEQ3NTE2Ci06MDc0RDc1MDA1Mzk4RkU1Mzk4RkQzMjM0Ci06MDMwMDNCMDAwMjREN0NGNwotOjA3NEQ3QzAwNTNDMEZFNTNDMEZEMzJERAotOjAzMDAyQjAwMDI0NkY3OTMKLToxMDQ2RjcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwM0QKLToxMDQ3MDcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGRjcKLToxMDQ3MTcwMEMwRTBDMkNBQzJDRjkwN0Y5OEUwNDQwMUYwMzAyRTAzQjgKLToxMDQ3MjcwMDEyMTRBNjkwN0Y5OEUwNTRGRUYwNTNBOEZBMTIxNjYxNkYKLToxMDQ3MzcwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwNDEKLToxMDQ3NDcwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMzIKLTowMzQ3NTcwMEQwRTAzMjdECi06MTA0N0I0MDBFNDkwNzY5QkYwOTA3NjlCRTBGRjA0RjBFRjYwMDhFMEQ1Ci06MTA0N0M0MDAyNDA4RjhFNEY2ODBFRTkwNzY5NkUwNTRGQkYwNTRGNzczCi06MTA0N0Q0MDBGMDkwODAwM0YwRTRGNTE4RDIzNUY1MEVGNTEwRDIzNkRBCi06MTA0N0U0MDA3NTEyMTE3NTEzMjJDMjM3QzIzOUMyMzhGNTE2RjUxNDgxCi06MEI0N0Y0MDBGNTFBRjUwREMyM0JDMjNDQzIzRDIyOEQKLToxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKLToxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKLToxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKLToxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKLToxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKLToxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKLToxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKLToxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKLToxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKLToxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKLToxMDMwQTAwMDQ4RjM4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MDAKLToxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKLToxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKLToxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKLToxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKLToxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKLToxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKLToxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKLToxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKLToxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKLToxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNDhGM0MyMzUzMDM1QzIKLToxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKLToxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKLToxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKLToxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKLToxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKLToxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKLToxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNDhGM0MyMzUzMDM1MEE4NTE5MUIKLToxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKLToxMDMxRDAwMDQ4RjM4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RTIKLToxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKLToxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKLToxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKLToxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKLToxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKLToxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKLToxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKLToxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKLTowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Ci06MEM0OEYzMDBDMjM3RTRGNTBFRjUxMEMyMzZGNTE0MjJCMQotOjEwNDAwMDAwRTUxMUQzOTQwMDUwMDIyMTA2OTA3Njg5RTBDMzk0MDgwQwotOjEwNDAxMDAwNDAwMjIxMDY3NDQwMjUwRkY1ODJFNDM0N0VGNTgzRTBFQQotOjEwNDAyMDAwRjUxN0U1MEQ2MDBFOTA4MDA1RTUxN0YwOTA3Njg5RTBCNAotOjEwNDAzMDAwMDRGMDAxREFFNTE3MTIzN0Y5NDBDMTAyNDA2NzA1NDA4NAotOjEwNDA0MDAwN0EwNjQwOTgwNzQwQzEwQzQwQzEwRDQwQzcwRjQwQ0JENQotOjEwNDA1MDAwRjY0MENCRjg0MENCRkE0MENCRkI0MENCRkM0MENCRkU0QwotOjEwNDA2MDAwNDBDQkZGMDAwMDQwREE5MDdFNDFFMDkwODAwNUYwOTA2OAotOjEwNDA3MDAwNzY4OUUwMDRGMDc1MTEwMTgwNjA5MDdFNDFFMDkwODBDNwotOjEwNDA4MDAwMDVGMDkwN0U0MkUwOTA4MDA1RjA5MDc2ODlFMDA0RjBBMwotOjEwNDA5MDAwRTAwNEYwNzUxMTAxODA0MjkwN0U0MUUwOTA4MDA1RjBDRgotOjEwNDBBMDAwOTA3RTQyRTA5MDgwMDVGMDkwN0U0M0UwOTA4MDA1RjBBNQotOjEwNDBCMDAwOTA3Njg5RTAwNEYwRTAwNEYwRTAwNEYwNzUxMTAxODBFRQotOjEwNDBDMDAwMTlEMjNCRDIzQzgwMTNEMjNCODAwRjkwODAwNUU1MTc3QwotOjEwNDBEMDAwRjA5MDc2ODlFMDA0RjA3NTExMDEyMDNCMDQwNTBEODAxNQotOjEwNDBFMDAwMUYzMDNDMUM5MDdFNDFFMDkwODAwNUYwOTA3RTQyRTBDNQotOjEwNDBGMDAwOTA4MDA1RjA5MDc2ODlFMDA0RjBFMDA0RjA3NTExMDFGRAotOjEwNDEwMDAwMDUwRjE1MTEwMTAwRTUxMTcwMTBDMjMzRjUwREY1MEYwMwotOjBCNDExMDAwOTA3RkM3NzQwNEYwQzIzQkMyM0MyMjQ5Ci06MTA0QkJCMDA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDAxMkM0Ci06MEE0QkNCMDA0RDJGOTA3RkQ2RTA1NEZFRjAyMjNCCi06MTA0QUY2MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzA0MjA0RTA0NEY2Ci06MTA0QjA2MDAwMkYwN0ZEQzdFMDUxMjREMkY5MDdGRDZFMDU0RjdGMDQxCi06MDU0QjE2MDBFMDQ0MDRGMDIyNjAKLToxMDREMkYwMDhFMzU4RjM2RTUzNjE1MzZBRTM1NzAwMjE1MzU0RTYwMzkKLTowNzREM0YwMDA1MTIxNDg1ODBFRTIyMkQKLToxMDQ5RkYwMEU0RkU3NTFERkY3NTFFMDU3NTFGMTJBQjFEQUExRUE5QkUKLToxMDRBMEYwMDFGOTAwMDAxMTIzNkFCNjQwMjcwMkZDREVFQ0QwRUVENkMKLToxMDRBMUYwMDZGNzAwMTIyOTAwMDAyMTIzNzBFODVGMDFCRjUxQzYyOTkKLToxMDRBMkYwMDFCRTUxQjYyMUNFNTFDNjIxQjI5RkRFNTFCM0FDOUVENEEKLToxMDRBM0YwMEM5NzUxREZGRjUxRTg5MUY4MEMxN0IwMDdBMDA3OTAwQTMKLTowMTRBNEYwMDIyNDQKLTowNDE3OTQwMDhEMjk4QjJBRTYKLToxMDE3OTgwMDEyNDlGRkVBNDk2MDU3MTIzNjkyN0UwMDI5RkZFRTNBNTUKLToxMDE3QTgwMEM5RUZDOTc1MkJGRkY1MkM4OTJEQUIyQkFBMkNBOTJEQjgKLToxMDE3QjgwMDkwMDAwMTEyMzZBQkZGNjQwNDYwMDVFRjY0MDU3MDJFREIKLToxMDE3QzgwMEVGQjQwNDE1OTAwMDAyMTIzNkFCNjUyOTcwMEI5MDAwMzcKLToxMDE3RDgwMDAzMTIzNkFCNjUyQTcwMDEyMjEyMzY5MjdFMDAyOUZGNjkKLToxMDE3RTgwMEVFM0FDOUVGQzk3NTJCRkZGNTJDODkyRDgwQkM3QjAwMUIKLTowNDE3RjgwMDdBMDA3OTAwRkEKLTowMTE3RkMwMDIyQ0EKLTowMjQ4QjAwMDhGMkU0OQotOjEwNDhCMjAwRTRGNTJGNzUzMEZGNzUzMTA2NzUzMkJFQUIzMEFBMzE4MwotOjEwNDhDMjAwQTkzMjkwMDAwMTEyMzZBQkI0MDMxRkFGMkYwNTJGRUZCMAotOjEwNDhEMjAwNjUyRTcwMDEyMjEyMzY5MjdFMDAyOUZGRUUzQUM5RUY1MAotOjEwNDhFMjAwQzk3NTMwRkZGNTMxODkzMjgwRDI3QjAwN0EwMDc5MDBCOAotOjAxNDhGMjAwMjJBMwotOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgotOjEwMDUxMDAwMDAwMTA5MDJBQzAxMDMwMTAwODAzMjA5MDQwMDAwMDA1RgotOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQotOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQotOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQotOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAotOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAotOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAotOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAotOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAotOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAotOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQotOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgotOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQotOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAotOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAotOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQotOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgotOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQotOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgotOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQotOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMwotOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAotOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgotOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQotOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQotOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAotOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA0MDMyQQotOjEwMDZDMDAwMDkwNDE4MDM0NTAwNkQwMDYxMDA2NzAwNjkwMDYzMDBCQwotOjEwMDZEMDAwMjAwMDQ3MDA2RDAwNjIwMDQ4MDAyMjAzNDUwMDZEMDBDNQotOjEwMDZFMDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NTAwNEQwMDQ5MDA3QgotOjEwMDZGMDAwMjAwMDM2MDA3QzAwMzIwMDIwMDA2RDAwMkEwMzQzMDBGOQotOjEwMDcwMDAwNkYwMDZFMDA2NjAwNjkwMDY3MDA3NTAwNzIwMDYxMDA4RQotOjEwMDcxMDAwNzQwMDY5MDA2RjAwNkUwMDIwMDA1MzAwNzQwMDcyMDBDNgotOjEwMDcyMDAwNjkwMDZFMDA2NzAwMjIwMzQ5MDA2RTAwNzQwMDY1MDBENgotOjEwMDczMDAwNzIwMDY2MDA2MTAwNjMwMDY1MDAyMDAwNTMwMDc0MDBEMQotOjBBMDc0MDAwNzIwMDY5MDA2RTAwNjcwMDAwMDBGRgotOjEwMTQ4NTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk3QQotOjAxMTQ5NTAwMjIzNAotOjEwMTQ5NjAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFMAotOjEwMTRBNjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBEQwotOjEwMTRCNjAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NTdEMDAwNAotOjEwMTRDNjAwOTA3RkUzNzQ3QkYwQTM3NDgwRjA3QzExOTA3Rjk5RTBBOQotOjEwMTRENjAwNTQ0MERDMDMwMjE0RjNCNDAwMTM5MDdGRTI3NDQwRjAyRQotOjEwMTRFNjAwOTA3RkU1RjA5MDdGRTI3NDAwRjAwMjE0RDI5MDc2OTAzRgotOjEwMTRGNjAwRTBCNDAxMTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjBDQgotOjEwMTUwNjAwOTA3RjZDMDIxNTU3QjQwMjEyOTA3NjhGRTAyREZEOTBGNQotOjEwMTUxNjAwN0ZFMjc0ODBGMDkwN0Y2QzAyMTU5NkI0MDMxMjkwNzY4OQotOjEwMTUyNjAwOEZFMDJERkQ5MDdGRTI3NDgwRjA5MDdGNkMwMjE1RTFENAotOjEwMTUzNjAwQjQwNDEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwOTBENwotOjEwMTU0NjAwN0Y2QzAyMTYxMDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTYxQQotOjEwMTU1NjAwNDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREYyN0RCOQotOjEwMTU2NjAwMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjRGRAotOjEwMTU3NjAwMDAwNTA1ODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjAyRAotOjEwMTU4NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERDQwMjE2NDBGQwotOjEwMTU5NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0NQotOjEwMTVBNjAwRjBGMERERUM3RDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0YxRQotOjEwMTVCNjAwOUJFMDU0MDRCNDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ1MQotOjEwMTVDNjAwODBGMDA1ODZGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEQQotOjA2MTVENjAwRjBGMEYwRjBGMEYwNkYKLToxMDE1REMwMEREQ0UwMjE2NDBGMEYwRjBGMERERkE3RDAyMDU4NjkwQ0IKLToxMDE1RUMwMDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNTg2MDQKLToxMDE1RkMwMDAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEREOEEKLToxMDE2MEMwMERDMDIxNjQwRjBGMEYwRjBGMEYwRERGODdEMDIwNTg2MUIKLToxMDE2MUMwMDkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1QzkKLToxMDE2MkMwMDg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwQjAKLToxMDE2M0MwMEYwRjBERERBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2N0UKLToxMDE2NEMwMEQwODNEMDgyRDBFMEZDRDBFMEZERDBFMEZFRDBFMEZGMzMKLTowNTE2NUMwMEQwRTBEMEQwMjIxNwotOjEwMTY2MTAwQzBEMEMwRTBDMDgyQzA4MzkwNzY3Q0UwOTA3RjZGRjBGNAotOjEwMTY3MTAwOTA3NjdERTA5MDdGNkZGMDkwNzY3RUUwOTA3RjZGRjBDNgotOjA5MTY4MTAwRDA4M0QwODJEMEUwRDBEMDIyNDkKLToxMDE2OEEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzN0UKLToxMDE2OUEwMDA1ODZDMDg0QzA4NTkwNzY4N0UwRkZCRjAwMDMwMjE3RTUKLToxMDE2QUEwMDAxOTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGMTIKLToxMDE2QkEwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGQTYKLToxMDE2Q0EwMEYwOTA3RkUyNzQ4MEYwOTA3NjhFRTBCNDAxMDUwNTg2OTIKLToxMDE2REEwMDAyMTZGNkI0MDIwNTA1ODYwMjE2RUIwNTg2MDIxNkZCMEIKLToxMDE2RUEwMEUwRTBFMEUwRTBFMERGRjgwMjE2RkJFMEUwRTBFMERGNjcKLToxMDE2RkEwMEZBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDA4M0QwM0EKLTowQzE3MEEwMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjgyCi06MTAxNzE2MDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQjZFCi06MEExNzI2MDBEMEUwRjhEMEUwRDA4M0QwODIyMjlBCi06MTAwQ0E1MDA0MTcyMDEwMTQ1NzIwNTAwMDJDOTAwMDA0NTcyMEEwMDQyCi06MTAwQ0I1MDAwMTAyMDMwNDRENzIwRkQxMDBEMTAwMDAwMDAwMDAwMEI1Ci06MTAwQ0M1MDAyODI4MDkwMDRENzIxQzAxMDAwMTAyMDMwNDA1MDYwN0NFCi06MTAwQ0Q1MDAwODA5MEEwQjQxNzIyRTIyNDE3MjJGMjM0MTcyMzAyMERFCi06MTAwQ0U1MDA0MTcyMzEyMTYyRDI3MjNBMDAwMDAwMDAwMDAwMDAwMDFBCi06MTAwQ0Y1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCi06MTAwRDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAwRDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAwRDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCi06MTAwRDM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCi06MTAwRDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCi06MTAwRDU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCi06MTAwRDY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCi06MTAwRDc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMTAxMDEwMTY4Ci06MTAwRDg1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTRFCi06MTAwRDk1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTNFCi06MTAwREE1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTJFCi06MTAwREI1MDAwMTAxMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjE2Ci06MTAwREM1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkZFCi06MTAwREQ1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkVFCi06MTAwREU1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkRFCi06MTAwREY1MDAwMjAyMDIwMjAyMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0MzCi06MTAwRTA1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0FECi06MTAwRTE1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzlECi06MTAwRTI1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzhECi06MTAwRTM1MDAwMzAzMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDZGCi06MTAwRTQ1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDVECi06MTAwRTU1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDRECi06MTAwRTY1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDNECi06MTAwRTc1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTFECi06MTAwRTg1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTBECi06MTAwRTk1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNUZECi06MTAwRUE1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDYwNkVCCi06MTAwRUI1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkNECi06MTAwRUM1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkJECi06MTAwRUQ1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkFECi06MTAwRUU1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDcwNzA3MDgwODk2Ci06MTAwRUY1MDAwODA5MDkwOTBBMEEwQTBCMEIwQjBDMEMwQzBEMEQwRDQwCi06MTAwRjA1MDAwRTBFMEUwRjBGMEYxMDEwMTAxMTExMTExMjEyMTIxM0Q5Ci06MTAwRjE1MDAxMzEzMTQxNDE0MTUxNTE1MTYxNjE2MTcxNzE3MTgxODc0Ci06MTAwRjI1MDAxODE5MTkxOTE5MUExQTFBMUExQjFCMUIxQjFDMUMxQzE4Ci06MTAwRjM1MDAxQzFEMUQxRDFEMUUxRTFFMUUxRjFGMUYxRjIwMjAyMEM4Ci06MTAwRjQ1MDAyMTIxMjEyMjIyMjIyMzIzMjQyNDI1MjUyNjI2MjcyNzYxCi06MTAwRjU1MDAyODI4MjkyOTJBMkEyQjJCMkMyQzJEMkQyRTJFMkYyRkQ0Ci06MTAwRjY1MDAzMDMwMzEzMTMyMzIzMzMzMzQzNDM1MzUzNjM2MzczNzQ0Ci06MTAwRjc1MDAzODM4MzkzOTNBM0EzQjNDM0QzRTNGNDA0MTQyNDM0NDlCCi06MTAwRjg1MDA0NTQ2NDc0ODQ5NDk0QTRCNEI0QzRENEU0RjUwNTE1MkE3Ci06MTAwRjk1MDA1MzU0NTU1NTU2NTY1NzU3NTg1QTVCNUQ1RTVGNjE2MkI3Ci06MTAwRkE1MDA2MzY0NjU2NjY3Njg2OTZBNkI2QzZENkY3MTcyNzM3NDhCCi06MTAwRkI1MDA3NTc2Nzc3ODc5N0E3QjdDN0U4MDAxMzcwMTAxMzgwMEY4Ci06MTA0QUM0MDBFNDkwNzIzNkYwQTNGMDkwN0Y5N0UwNTRGQkYwRTQ5MDBBCi06MTA0QUQ0MDA3MjMzRjA5MDcyMzJGMDkwNzIwMTA0RjBFNDkwNzIzMzA5Ci06MTA0QUU0MDBGMDkwNzIzMkYwOTA3MjAxMDRGMDkwN0Y5N0UwNDQwNEU5Ci06MDI0QUY0MDBGMDIyQUUKLToxMDMyNkYwMDkwNzYxOEUwRkY2NDA1NzA0MjkwNzVBQkUwQjQwMTE5RDkKLToxMDMyN0YwMDkwNzIzNzc0MDFGMEU0OTA4MDIwRjA5MDgwMzFGMDkwREMKLToxMDMyOEYwMDgwMjhGMDkwODAzOUYwODAyMkU0OTA3MjM3RjA5MDc1QUEKLToxMDMyOUYwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNzEKLToxMDMyQUYwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNTIKLToxMDMyQkYwMDgxOTk5MDcyMzk3NDA0RjA5MDcyMzlFMEZGMjRGRTkwNzYKLToxMDMyQ0YwMDcyMDRGMEVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1QkYKLToxMDMyREYwMDgzRTA2NDAxNzA1NDkwNzIzNjA0RjA5MDcyMDRFMEZGNDIKLToxMDMyRUYwMDI0RkQ2MDI4MjRGRTYwMjQyNDAzMjRGQjUwMDQ2MDFDNkEKLToxMDMyRkYwMDgxOEM3NDIwMkZGNTgyRTQzNDgwRjU4M0U0RjA3NDI4RjgKLToxMDMzMEYwMDJGRjU4MkU0MzQ4MEY1ODNFNEYwODE4QzkwNzIwNEUwMzEKLToxMDMzMUYwMEZGMjQzMEY1ODJFNDM0ODBGNTgzRTRGMDc0MzgyRkY1MjAKLToxMDMzMkYwMDgyRTQzNDgwRjU4M0U0RjA4MThDRTQ5MDcyMzZGMDkwN0YKLToxMDMzM0YwMDcyMzlFMDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzOTMKLToxMDMzNEYwMEUwRkY3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMjgKLToxMDMzNUYwMDAyNzQzQkYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwQUEKLToxMDMzNkYwMDA0OTA3MjAyRjBFRjRFNzAwMjgxMzVFRjY0ODA0RTcwNjAKLToxMDMzN0YwMDAyODEzNUVGRjhFNDkwNzUwREYwRTg5MDc1MENGMDkwNDAKLToxMDMzOEYwMDcyMzRFMDc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNDkKLToxMDMzOUYwMEUwRkY5MDcyMDJGMDkwNzUwREUwMkZGMDkwNzUwQ0UwNDkKLToxMDMzQUYwMDM0MDBGMEUwRkVBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5NDQKLToxMDMzQkYwMEY4RDMxMjM3OTU0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2MDQKLToxMDMzQ0YwMEYwOTA3NTBERTAyNDJBRjA5MDc1MENFMDM0NUFGMEUwN0YKLToxMDMzREYwMEZFQTNFMDc4MDVDRUEyRTcxM0NFMTNEOEY4RkY5MDc1QzEKLToxMDMzRUYwMDBDRUVGMEEzRUZGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0NkQKLToxMDMzRkYwMEQyRUU2NDgwOTQ4MjQwMEE5MDcyMkM3NDAyRjBBMzc0MEYKLToxMDM0MEYwMEQyRjBDMzkwNzIyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzNTcKLToxMDM0MUYwMEYwOTA3MjJDRTBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1QzAKLToxMDM0MkYwMDgzRTA5MDcyMDJGMDkwNzIwNEUwRkYyNEZENjAyRDI0N0YKLToxMDM0M0YwMEZFNjAyOTI0MDMyNEZCNTAwNDYwMjE4MDQwOTA3MjAyMTcKLToxMDM0NEYwMEUwRkU3NDIwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDI4Q0IKLToxMDM0NUYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwODAyMTkwNzIwMkUwNDQKLToxMDM0NkYwMEZGOTA3MjA0RTBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGQTAKLToxMDM0N0YwMEYwNzQzODJFRjU4MkU0MzQ4MEY1ODNFRkYwOTA3MjM5RDIKLTowQjM0OEYwMEUwMDRGMEUwNjQwQTYwMDI0MUM3MjI4NAotOjEwMzQ5QTAwOTA3NjE4RTBGRkI0MDUyMzkwNzIzN0UwNzAxRDkwNzU5RQotOjEwMzRBQTAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA2NAotOjEwMzRCQTAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI0NQotOjEwMzRDQTAwQzE5MTkwNzIzNkUwNjAwMkMxOTE5MDc2NDBFMDcwMzEwRAotOjEwMzREQTAwOTA3MjAzNzQwM0YwOTA3MjAzRTBGRjc1RjAwQUE0MjQ1QgotOjEwMzRFQTAwQUFGNTgyRTQzNDc1RjU4M0UwRkU5MDcyMjlFMEZERUVEOAotOjEwMzRGQTAwNkQ2MDBFRUZDMzk0MEE1MDA4OTA3MjAzRTAwNEYwODBFNgotOjEwMzUwQTAwRDU5MDcyMzk3NDA0RjA5MDc2NDBFMDcwMDg5MDcyMDM5NgotOjEwMzUxQTAwRTA5MDcyMzlGMDkwNzIzOUUwRkQyNEZFOTA3MjJBRjA0MAotOjEwMzUyQTAwRUQ3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0UwRkY2NQotOjEwMzUzQTAwN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjAyNzRBNAotOjEwMzU0QTAwODBGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MDA0OTA1QQotOjEwMzU1QTAwNzIwMkYwRUY0RTcwMDJDMTFCRUY2NDgwNEU3MDAyQzExRQotOjEwMzU2QTAwMUJFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjBFRDc1RjAyRQotOjEwMzU3QTAwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwRkY5MDcyMDI2NAotOjEwMzU4QTAwRjA5MDc1MERFMDJGRjA5MDc1MENFMDM0MDBGMEUwRkUzRAotOjEwMzU5QTAwQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOUY4RDMxMjM3OTVCMAotOjEwMzVBQTAwNDAwQTkwNzUwQzc0QTVGMEEzNzRENkYwOTA3NTBERTBERQotOjEwMzVCQTAwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMEZFQTNFMDc4MDU3NgotOjEwMzVDQTAwQ0VBMkU3MTNDRTEzRDhGOEZGOTA3NTBDRUVGMEEzRUY1NgotOjEwMzVEQTAwRjA5MDcyMkNFRUYwQTNFRkYwRDM5NEQyRUU2NDgwOTRDNAotOjEwMzVFQTAwODI0MDBBOTA3MjJDNzQwMkYwQTM3NEQyRjBDMzkwNzJEMwotOjEwMzVGQTAwMkNFMDY0ODA5NDgwNTAwNEU0RjBBM0YwOTA3MjJDRTBGNAotOjEwMzYwQTAwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNTgzRTA5MDcyMDI2QQotOjEwMzYxQTAwRjA5MDcyMkFFMEZGMjRGRDYwMkQyNEZFNjAyOTI0MDMyNQotOjEwMzYyQTAwMjRGQjUwMDQ2MDIxODA0MDkwNzIwMkUwRkU3NDIwMkYzNwotOjEwMzYzQTAwRjU4MkU0MzQ4MEY1ODNFRUYwNzQyODJGRjU4MkU0MzRDMQotOjEwMzY0QTAwODBGNTgzRUVGMDgwMjE5MDcyMDJFMEZGOTA3MjJBRTAwQQotOjEwMzY1QTAwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkYwNzQzODJFRjVEOQotOjEwMzY2QTAwODJFNDM0ODBGNTgzRUZGMDkwNzY0MEUwNzAwNjkwNzI0MQotOjEwMzY3QTAwMzk3NDBBRjA5MDcyMzlFMDA0RjBFMEMzOTQwQTUwMDJGNwotOjA4MzY4QTAwQTExMUU0OTA3NjQwRjAyMjRBCi06MDQ0RDk3MDAxMjE3MzAyMjlECi06MTA0OTU4MDA5MDc2NDY3NDgwRjBFNEEzRjBBM0YwQTNGMEEzRjBBMzRDCi06MTA0OTY4MDBGMEEzRjBBM0YwQTNGMEEzNzQ4MEYwRTRBM0YwQTNGMDA1Ci06MTA0OTc4MDBBM0YwQTNGMEEzRjBBM0YwQTM3NDQwRjBFNEEzRjBBMzgyCi06MTA0OTg4MDA3NDQwRjBFNEEzRjBBM0YwQTNGMEEzRjBBM0YwQTNGMDI1Ci06MTA0OTk4MDBBMzc0NDBGMEU0QTNGMEEzNzQ0MEYwRTRBM0YwQTNGMDAwCi06MDU0OUE4MDBBM0YwQTNGMDIyQzIKLToxMDBGQzYwMEU0RkY3NDQ2MkZGNTgyRTQzNDc2RjU4M0UwRkU3NDIwNjAKLToxMDBGRDYwMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQ0RTJGRjU4MkU0MkIKLToxMDBGRTYwMDM0NzZGNTgzRTBGRTc0MzAyRkY1ODJFNDM0ODBGNTgzQTEKLTowNjBGRjYwMEVFRjAwRkJGMDhDQzc1Ci06MDEwRkZDMDAyMkQyCi06MTA0QThEMDBFNEZGNzQ1NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyODQ2Ci06MTA0QTlEMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NUUyRkY1ODJFNDE5Ci06MTA0QUFEMDAzNDc2RjU4M0UwRkU3NDM4MkZGNTgyRTQzNDgwRjU4Mzk3Ci06MDY0QUJEMDBFRUYwMEZCRjA4Q0M3MwotOjAxNEFDMzAwMjJEMAotOjEwMTczMDAwQzA4MkMwODNDMEUwRThDMEUwNzg3OEU4MTRGODcwRkJBRAotOjBBMTc0MDAwRDBFMEY4RDBFMEQwODNEMDgyMjI4MAotOjAzMDA0MzAwMDI0OTAwNkYKLToxMDQ5MDAwMDAyMkZFNzAwMDIzRDQ3MDAwMjRENDYwMDAyNEJENTAwNTIKLToxMDQ5MTAwMDAyNEI2MDAwMDIyRkZGMDAwMjRCRUQwMDAyNEI4MTAwQjIKLToxMDQ5MjAwMDAyNEMwNDAwMDIzRkQ1MDAwMjRDMUIwMDAyNEMzMjAwMzYKLToxMDQ5MzAwMDAyNEM0OTAwMDI0QzYwMDAwMjRDNzcwMDAyNEM4RTAwOTEKLToxMDQ5NDAwMDAyNENBNTAwMDI0Q0JDMDAwMjRDRDMwMDAyNENFQTAwMTEKLTowODQ5NTAwMDAyNEQwMTAwMDI0RDE4MDBBOAotOjEwMUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQotOjEwMUI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQotOjEwMUI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQotOjEwMUI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQotOjEwMUI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQotOjEwMUI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQotOjEwMUJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQotOjEwMUJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQotOjEwMUJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQotOjEwMUJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQotOjEwMUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQotOjEwMUJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQotOjEwMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAotOjEwMUMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAotOjEwMUMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAotOjEwMUMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAotOjEwMUM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAotOjEwMUM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAotOjEwMUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAotOjEwMUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAotOjEwMUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAotOjEwMUM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAotOjEwMUNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAotOjEwMUNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAotOjEwMUNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAotOjEwMUNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAotOjEwMUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAotOjEwMUNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAotOjEwMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMwotOjEwMUQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMwotOjEwMUQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMwotOjEwMUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMwotOjEwMUQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MwotOjEwMUQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MwotOjEwMUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MwotOjEwMUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MwotOjEwMUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MwotOjEwMUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MwotOjEwMURBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMwotOjEwMURCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMwotOjEwMURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMwotOjEwMUREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMwotOjEwMURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMwotOjEwMURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMwotOjEwMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgotOjEwMUUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgotOjEwMUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgotOjEwMUUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgotOjEwMUU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgotOjEwMUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgotOjEwMUU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgotOjEwMUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgotOjEwMUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgotOjEwMUU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgotOjEwMUVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgotOjBFMUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Ci06MTAxRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Ci06MTAxRUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Ci06MTAxRURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Ci06MTAxRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Ci06MTAxRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Ci06MTAxRjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCi06MTAxRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCi06MTAxRjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCi06MDIxRjNFMDAwMDAwQTEKLToxMDFGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKLToxMDFGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKLToxMDFGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKLToxMDFGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKLToxMDFGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKLToxMDFGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKLToxMDFGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKLToxMDFGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKLToxMDFGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKLToxMDFGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKLToxMDFGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKLToxMDFGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKLToxMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKLToxMDIwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKLToxMDIwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKLToxMDIwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKLToxMDIwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKLToxMDIwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKLToxMDIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKLToxMDIwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKLToxMDIwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKLToxMDIwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKLToxMDIwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKLToxMDIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKLToxMDIwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKLToxMDIwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLToxMDIwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKLToxMDIwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKLToxMDIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKLToxMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKLToxMDIxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKLToxMDIxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKLToxMDIxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKLToxMDIxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKLToxMDIxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKLToxMDIxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKLToxMDIxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKLToxMDIxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKLToxMDIxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKLToxMDIxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKLToxMDIxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKLToxMDIxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKLToxMDIxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKLToxMDIxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKLToxMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKLToxMDIyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKLToxMDIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKLToxMDIyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKLToxMDIyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKLToxMDIyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKLToxMDIyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKLToxMDIyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKLToxMDIyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKLToxMDIyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKLToxMDIyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKLToxMDIyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKLToxMDIyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKLToxMDIyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKLToxMDIyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKLToxMDIyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKLToxMDIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKLToxMDIzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKLToxMDIzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKLToxMDIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKLToxMDIzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKLToxMDIzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKLToxMDIzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKLTowRTIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgotOjEwMjM3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgotOjEwMjM4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgotOjEwMjM5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgotOjEwMjNBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgotOjEwMjNCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgotOjEwMjNDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgotOjEwMjNERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgotOjEwMjNFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgotOjEwMjNGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgotOjEwMjQwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQotOjEwMjQxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQotOjEwMjQyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQotOjEwMjQzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQotOjEwMjQ0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQotOjEwMjQ1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQotOjEwMjQ2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQotOjEwMjQ3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQotOjEwMjQ4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQotOjEwMjQ5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQotOjEwMjRBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQotOjEwMjRCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQotOjEwMjRDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQotOjEwMjRERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQotOjEwMjRFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQotOjEwMjRGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQotOjEwMjUwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAotOjEwMjUxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAotOjEwMjUyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAotOjEwMjUzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAotOjEwMjU0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAotOjEwMjU1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAotOjEwMjU2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAotOjEwMjU3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAotOjEwMjU4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAotOjEwMjU5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAotOjEwMjVBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAotOjEwMjVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAotOjEwMjVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAotOjEwMjVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAotOjEwMjVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAotOjEwMjVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAotOjEwMjYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQwotOjEwMjYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQwotOjEwMjYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QwotOjEwMjYzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QwotOjEwMjY0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QwotOjEwMjY1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QwotOjEwMjY2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QwotOjEwMjY3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QwotOjEwMjY4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQwotOjEwMjY5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQwotOjEwMjZBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQwotOjEwMjZCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQwotOjEwMjZDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQwotOjEwMjZERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQwotOjBFMjZFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCi06MTAyNkZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCi06MTAyNzBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECi06MTAyNzFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECi06MTAyNzJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECi06MTAyNzNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECi06MTAyNzRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECi06MTAyNzVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECi06MTAyNzZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECi06MTAyNzdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECi06MTAyNzhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECi06MTAyNzlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECi06MTAyN0FDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECi06MTAyN0JDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECi06MTAyN0NDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECi06MTAyN0RDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECi06MTAyN0VDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECi06MDUyN0ZDMDAwMDAwMDAwMDIyQjYKLTowNzE3NEEwMDkwN0ZDNTc0MDJGMDIyM0MKLToxMDE3NTEwMDkwN0VDMEUwOTA3NjQ1RjA5MDdFQzFFMDkwNzY0NEYwQjYKLToxMDE3NjEwMDkwN0VDMkUwOTA3NjQzRjBCNDAwMDMwMjE3Nzg5MDc2NDEKLToxMDE3NzEwMDE5NzQwM0YwMDIxNzhFOTA3NjQ0RTBCNEJCMDk5MDc2OTkKLToxMDE3ODEwMDE5NzQwMkYwMDIxNzhFOTA3NjE5NzQwMUYwOTA3NjQyNjYKLTowMzE3OTEwMEU0RjAyMjVGCi06MDMwMDAwMDAwMjQ1RjlCRAotOjBDNDVGOTAwNzg3RkU0RjZEOEZENzU4MTM4MDI0NjQwNUEKLToxMDM2OTIwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyMzYKLTowOTM2QTIwMEUzMjI4OTgyOEE4M0U0OTMyMjY5Ci06MTAzNkFCMDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MEQ0Ci06MTAzNkJCMDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMjFFCi06MEQzNkNCMDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMjM4Ci06MTAzNkQ4MDBDMkQ1RUMzMEU3MDlCMkQ1RTRDMzlERkRFNDlDRkNFRTBECi06MTAzNkU4MDAzMEU3MTVCMkQ1RTRDMzlGRkZFNDlFRkUxMjM4MUZDMzJFCi06MTAzNkY4MDBFNDlERkRFNDlDRkM4MDAzMTIzODFGMzBENTA3QzNFNDI5Ci06MDYzNzA4MDA5RkZGRTQ5RUZFMjI3QgotOjEwMzcwRTAwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBGOQotOjEwMzcxRTAwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkVENgotOjEwMzcyRTAwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODMxQwotOjA4MzczRTAwRTk5M0Y1RjBBM0U5OTMyMkUxCi06MTAzNzQ2MDBFODhGRjBBNENDOEJGMEE0MkNGQ0U5OEVGMEE0MkNGQzIyCi06MTAzNzU2MDA4QUYwRURBNDJDRkNFQThFRjBBNENEQThGMDhCRjBBNEEwCi06MTAzNzY2MDAyRENDMzgyNUYwRkRFOThGRjBBNDJDQ0QzNUYwRkNFQkZGCi06MTAzNzc2MDA4RUYwQTRGRUE5RjBFQjhGRjBBNENGQzVGMDJFQ0QzOUM0Ci06MEYzNzg2MDBGRUU0M0NGQ0VBQTQyRENFMzVGMEZERTQzQ0ZDMjIzMQotOjEwMzc5NTAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRUM2NDgwQzhBQgotOjA2MzdBNTAwNjQ4MDk4NDVGMDIyNEIKLToxMDM3QUIwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNzQKLTowMTM3QkIwMDIyRUIKLTowQzM3QkMwMEVDRjBBM0VERjBBM0VFRjBBM0VGRjAyMjgwCi06MTAzN0M4MDBBODgyODU4M0YwRDA4M0QwODIxMjM3REYxMjM3REYxMkM4Ci06MTAzN0Q4MDAzN0RGMTIzN0RGRTQ3M0U0OTNBM0M1ODNDNUYwQzU4M0VECi06MTAzN0U4MDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDODRCCi06MDEzN0Y4MDAyMkFFCi06MTAzN0Y5MDBEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzVGCi06MTAzODA5MDA5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MDcyCi06MDYzODE5MDBFRkEzQTNBMzgwREY3MgotOjEwNDYwNTAwMDI0NzVBRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIyQQotOjEwNDYxNTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNCNgotOjEwNDYyNTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REY4NQotOjEwNDYzNTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEM4RkU0N0U3QQotOjEwNDY0NTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTM3QQotOjEwNDY1NTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM0MQotOjEwNDY2NTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0E2QwotOjEwNDY3NTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkUyNAotOjAxMEZDNTAwMDAyQgotOjEwMzgxRjAwQkMwMDBCQkUwMDI5RUY4REYwODRGRkFERjAyMkU0Q0M4RAotOjEwMzgyRjAwRjg3NUYwMDhFRjJGRkZFRTMzRkVFQzMzRkNFRTlERUM1NgotOjEwMzgzRjAwOTg0MDA1RkNFRTlERkUwRkQ1RjBFOUU0Q0VGRDIyRUQ5QwotOjEwMzg0RjAwRjhGNUYwRUU4NDIwRDIxQ0ZFQURGMDc1RjAwOEVGMkZFNgotOjEwMzg1RjAwRkZFRDMzRkQ0MDA3OTg1MDA2RDVGMEYyMjJDMzk4RkRENwotOjA1Mzg2RjAwMEZENUYwRUEyMjc0Ci06MDAwMDAwMDFGRgotKi8KLS8qCi1WRVJTSU9OPTEuMDQuMDYyCi1EQVRFPTE2LjEwLjIwMDIgIAotKi8KLXN0YXRpYyBJTlRFTF9IRVhfUkVDT1JEIGdfZW1pNjJfbG9hZGVyW10gPSB7Ci0geyAzLDB4MDAwMCwwLHsweDAyLDB4MDIsMHg4N319LAotIHsgMywweDAwNDMsMCx7MHgwMiwweDA0LDB4MDB9fSwKLSB7MTYsMHgwMTAwLDAsezB4ZTQsMHhmZiwweGZlLDB4YzIsMHgyMCwweGQyLDB4ZTgsMHg0MywweGQ4LDB4MjAsMHg5MCwweDdmLDB4YWIsMHg3NCwweGZmLDB4ZjB9fSwKLSB7MTYsMHgwMTEwLDAsezB4OTAsMHg3ZiwweGE5LDB4ZjAsMHg5MCwweDdmLDB4YWEsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHg5NSwweDc0LDB4YzB9fSwKLSB7MTYsMHgwMTIwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWUsMHhmMCwweDkwLDB4N2YsMHg5OCwweGYwLDB4ZTQsMHg5MCwweDdmLDB4OTQsMHhmMCwweDkwLDB4N2Z9fSwKLSB7MTYsMHgwMTMwLDAsezB4OWQsMHg3NCwweGZmLDB4ZjAsMHg5MCwweDdmLDB4OTcsMHg3NCwweGEwLDB4ZjAsMHg5MCwweDdmLDB4OTMsMHhlMCwweDU0LDB4ZmN9fSwKLSB7MTYsMHgwMTQwLDAsezB4ZjAsMHg5MCwweDdmLDB4OWMsMHg3NCwweDAzLDB4ZjAsMHhlNCwweDkwLDB4N2YsMHg5NiwweGYwLDB4OTAsMHg3ZiwweGFmLDB4ZTB9fSwKLSB7MTYsMHgwMTUwLDAsezB4NDQsMHgwMSwweGYwLDB4OTAsMHg3ZiwweGFlLDB4ZTAsMHg0NCwweDBkLDB4ZjAsMHhkMiwweGFmLDB4MGYsMHhiZiwweDAwLDB4MDF9fSwKLSB7MTYsMHgwMTYwLDAsezB4MGUsMHhiZSwweDA3LDB4ZjgsMHhiZiwweDA4LDB4ZjUsMHgyMCwweDIwLDB4NDIsMHg3NSwweDE0LDB4MDAsMHg3NSwweDEzLDB4MDB9fSwKLSB7MTYsMHgwMTcwLDAsezB4NzUsMHgxMiwweDAwLDB4NzUsMHgxMSwweDAwLDB4N2YsMHg0OCwweDdlLDB4OTIsMHg3ZCwweDAwLDB4N2MsMHgwMCwweGFiLDB4MTR9fSwKLSB7MTYsMHgwMTgwLDAsezB4YWEsMHgxMywweGE5LDB4MTIsMHhhOCwweDExLDB4YzMsMHgxMiwweDAzLDB4ZWQsMHg1MCwweGRiLDB4MjAsMHgyMCwweGQ4LDB4N2F9fSwKLSB7MTYsMHgwMTkwLDAsezB4MDAsMHg3OSwweDAwLDB4NzgsMHgwMCwweGU1LDB4MTQsMHgyNCwweDAxLDB4ZjUsMHgxNCwweGVhLDB4MzUsMHgxMywweGY1LDB4MTN9fSwKLSB7MTYsMHgwMWEwLDAsezB4ZTksMHgzNSwweDEyLDB4ZjUsMHgxMiwweGU4LDB4MzUsMHgxMSwweGY1LDB4MTEsMHg4MCwweGNhLDB4MzAsMHgyMCwweGZkLDB4MTJ9fSwKLSB7MTYsMHgwMWIwLDAsezB4MDEsMHhjNywweDUwLDB4MDcsMHg5MCwweDdmLDB4YjQsMHhlMCwweDQ0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4NDR9fSwKLSB7IDYsMHgwMWMwLDAsezB4MDIsMHhmMCwweGMyLDB4MjAsMHg4MCwweGU2fX0sCi0geyAxLDB4MDFjNiwwLHsweDIyfX0sCi0gezE2LDB4MDFjNywwLHsweDkwLDB4N2YsMHhlOSwweGUwLDB4MjQsMHg1YiwweDYwLDB4NjAsMHgyNCwweDAyLDB4NjAsMHgwMywweDAyLDB4MDIsMHg4NSwweDkwfX0sCi0gezE2LDB4MDFkNywwLHsweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1LDB4MGIsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgwYSwweDkwfX0sCi0gezE2LDB4MDFlNywwLHsweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1LDB4MTYsMHhhMywweGUwLDB4ZmUsMHhlNCwweGVlLDB4NDIsMHgxNSwweGU1fX0sCi0gezE2LDB4MDFmNywwLHsweDE2LDB4NDUsMHgxNSwweDcwLDB4MDMsMHgwMiwweDAyLDB4ODUsMHhlNCwweDkwLDB4N2YsMHhjNSwweGYwLDB4OTAsMHg3ZiwweGI0fX0sCi0gezE2LDB4MDIwNywwLHsweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjLDB4MTIsMHgwMywweDEzLDB4YWYsMHgwYywweDdlfX0sCi0gezE2LDB4MDIxNywwLHsweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1LDB4MGEsMHhjMywweGU1LDB4MTYsMHg5ZiwweGY1fX0sCi0gezE2LDB4MDIyNywwLHsweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4YzcsMHg5MCwweDdmLDB4ZWEsMHhlMCwweDc1LDB4MGEsMHgwMCwweGY1fX0sCi0gezE2LDB4MDIzNywwLHsweDBiLDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MGEsMHg5MCwweDdmLDB4ZWUsMHhlMCwweDc1LDB4MTUsMHgwMCwweGY1fX0sCi0gezE2LDB4MDI0NywwLHsweDE2LDB4YTMsMHhlMCwweGZlLDB4ZTQsMHhlZSwweDQyLDB4MTUsMHhlNSwweDE2LDB4NDUsMHgxNSwweDYwLDB4MzAsMHhlNCwweDkwfX0sCi0gezE2LDB4MDI1NywwLHsweDdmLDB4YzUsMHhmMCwweDkwLDB4N2YsMHhiNCwweGUwLDB4MjAsMHhlMywweGY5LDB4OTAsMHg3ZiwweGM1LDB4ZTAsMHhmNSwweDBjfX0sCi0gezE2LDB4MDI2NywwLHsweDEyLDB4MDMsMHgyYiwweGFmLDB4MGMsMHg3ZSwweDAwLDB4ZWYsMHgyNSwweDBiLDB4ZjUsMHgwYiwweGVlLDB4MzUsMHgwYSwweGY1fX0sCi0gezE1LDB4MDI3NywwLHsweDBhLDB4YzMsMHhlNSwweDE2LDB4OWYsMHhmNSwweDE2LDB4ZTUsMHgxNSwweDllLDB4ZjUsMHgxNSwweDgwLDB4Y2EsMHhjM319LAotIHsgMSwweDAyODYsMCx7MHgyMn19LAotIHsxMiwweDAyODcsMCx7MHg3OCwweDdmLDB4ZTQsMHhmNiwweGQ4LDB4ZmQsMHg3NSwweDgxLDB4MjksMHgwMiwweDAyLDB4Y2V9fSwKLSB7MTYsMHgwMjkzLDAsezB4MDIsMHgwMSwweDAwLDB4ZTQsMHg5MywweGEzLDB4ZjgsMHhlNCwweDkzLDB4YTMsMHg0MCwweDAzLDB4ZjYsMHg4MCwweDAxLDB4ZjJ9fSwKLSB7MTYsMHgwMmEzLDAsezB4MDgsMHhkZiwweGY0LDB4ODAsMHgyOSwweGU0LDB4OTMsMHhhMywweGY4LDB4NTQsMHgwNywweDI0LDB4MGMsMHhjOCwweGMzLDB4MzN9fSwKLSB7MTYsMHgwMmIzLDAsezB4YzQsMHg1NCwweDBmLDB4NDQsMHgyMCwweGM4LDB4ODMsMHg0MCwweDA0LDB4ZjQsMHg1NiwweDgwLDB4MDEsMHg0NiwweGY2LDB4ZGZ9fSwKLSB7MTYsMHgwMmMzLDAsezB4ZTQsMHg4MCwweDBiLDB4MDEsMHgwMiwweDA0LDB4MDgsMHgxMCwweDIwLDB4NDAsMHg4MCwweDkwLDB4MDQsMHg2ZSwweGU0LDB4N2V9fSwKLSB7MTYsMHgwMmQzLDAsezB4MDEsMHg5MywweDYwLDB4YmMsMHhhMywweGZmLDB4NTQsMHgzZiwweDMwLDB4ZTUsMHgwOSwweDU0LDB4MWYsMHhmZSwweGU0LDB4OTN9fSwKLSB7MTYsMHgwMmUzLDAsezB4YTMsMHg2MCwweDAxLDB4MGUsMHhjZiwweDU0LDB4YzAsMHgyNSwweGUwLDB4NjAsMHhhOCwweDQwLDB4YjgsMHhlNCwweDkzLDB4YTN9fSwKLSB7MTYsMHgwMmYzLDAsezB4ZmEsMHhlNCwweDkzLDB4YTMsMHhmOCwweGU0LDB4OTMsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2F9fSwKLSB7MTYsMHgwMzAzLDAsezB4ZjAsMHhhMywweGM4LDB4YzUsMHg4MiwweGM4LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhkZiwweGU5LDB4ZGUsMHhlNywweDgwLDB4YmV9fSwKLSB7MTYsMHgwMzEzLDAsezB4ZTUsMHgwYywweGZmLDB4ZTUsMHgwYiwweGY1LDB4ODIsMHhlNSwweDBhLDB4ZjUsMHg4MywweDc1LDB4OTIsMHg3ZSwweDc0LDB4YzB9fSwKLSB7IDgsMHgwMzIzLDAsezB4ZjgsMHhlMiwweDA4LDB4ZjAsMHhhMywweGRmLDB4ZmEsMHgyMn19LAotIHsxNiwweDAzMmIsMCx7MHg5MCwweDdmLDB4OTYsMHg4NSwweDgzLDB4OTIsMHhhOCwweDgyLDB4NzksMHgwMiwweDkwLDB4MDAsMHgwMCwweGUwLDB4YjQsMHgwMH19LAotIHsxNiwweDAzM2IsMCx7MHgwZCwweDc0LDB4MDEsMHhmMCwweDkwLDB4N2YsMHg5NywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NDQsMHg4MCwweGYwLDB4ZTUsMHgwY319LAotIHsxNiwweDAzNGIsMCx7MHhmZiwweDkwLDB4N2UsMHhjMCwweGUwLDB4ZjUsMHgyOCwweGU0LDB4YTIsMHg0NywweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMn19LAotIHsxNiwweDAzNWIsMCx7MHg0NiwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQ1LDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDQsMHgzM319LAotIHsxNiwweDAzNmIsMCx7MHhmMiwweDY5LDB4ZjIsMHhlNCwweGEyLDB4NDMsMHgzMywweGYyLDB4NjksMHhmMiwweGU0LDB4YTIsMHg0MiwweDMzLDB4ZjIsMHg2OX19LAotIHsxNiwweDAzN2IsMCx7MHhmMiwweGU0LDB4YTIsMHg0MSwweDMzLDB4ZjIsMHg2OSwweGYyLDB4ZTQsMHhhMiwweDQwLDB4MzMsMHhmMiwweDY5LDB4ZjIsMHhhM319LAotIHsgMywweDAzOGIsMCx7MHhkZiwweGMyLDB4MjJ9fSwKLSB7MTYsMHgwMzhlLDAsezB4YzAsMHhlMCwweGMwLDB4ODMsMHhjMCwweDgyLDB4OTAsMHg3ZiwweGM0LDB4ZTQsMHhmMCwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2Z9fSwKLSB7MTEsMHgwMzllLDAsezB4YWIsMHg3NCwweDA0LDB4ZjAsMHhkMCwweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDAzYTksMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHhkMiwweDIwLDB4NTMsMHg5MSwweGVmLDB4OTAsMHg3ZiwweGFiLDB4NzQsMHgwMX19LAotIHsgOCwweDAzYjksMCx7MHhmMCwweGQwLDB4ODIsMHhkMCwweDgzLDB4ZDAsMHhlMCwweDMyfX0sCi0gezE2LDB4MDNjMSwwLHsweGMwLDB4ZTAsMHhjMCwweDgzLDB4YzAsMHg4MiwweDUzLDB4OTEsMHhlZiwweDkwLDB4N2YsMHhhYiwweDc0LDB4MDIsMHhmMCwweGQwfX0sCi0geyA2LDB4MDNkMSwwLHsweDgyLDB4ZDAsMHg4MywweGQwLDB4ZTAsMHgzMn19LAotIHsxNiwweDAzZDcsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDEwLDB4ZjAsMHhkMH19LAotIHsgNiwweDAzZTcsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgwM2VkLDAsezB4ZWIsMHg5ZiwweGY1LDB4ZjAsMHhlYSwweDllLDB4NDIsMHhmMCwweGU5LDB4OWQsMHg0MiwweGYwLDB4ZTgsMHg5YywweDQ1LDB4ZjB9fSwKLSB7IDEsMHgwM2ZkLDAsezB4MjJ9fSwKLSB7IDEsMHgwM2ZlLDAsezB4MzJ9fSwKLSB7IDEsMHgwM2ZmLDAsezB4MzJ9fSwKLSB7MTYsMHgwNDAwLDAsezB4MDIsMHgwMywweGE5LDB4MDAsMHgwMiwweDAzLDB4YzEsMHgwMCwweDAyLDB4MDMsMHg4ZSwweDAwLDB4MDIsMHgwNCwweDU4LDB4MDB9fSwKLSB7MTYsMHgwNDEwLDAsezB4MDIsMHgwMywweGQ3LDB4MDAsMHgwMiwweDAzLDB4ZmUsMHgwMCwweDAyLDB4MDMsMHhmZiwweDAwLDB4MDIsMHgwNCwweDg0LDB4MDB9fSwKLSB7MTYsMHgwNDIwLDAsezB4MDIsMHgwNCwweDg1LDB4MDAsMHgwMiwweDA0LDB4ODYsMHgwMCwweDAyLDB4MDQsMHg4NywweDAwLDB4MDIsMHgwNCwweDg4LDB4MDB9fSwKLSB7MTYsMHgwNDMwLDAsezB4MDIsMHgwNCwweDg5LDB4MDAsMHgwMiwweDA0LDB4OGEsMHgwMCwweDAyLDB4MDQsMHg4YiwweDAwLDB4MDIsMHgwNCwweDhjLDB4MDB9fSwKLSB7MTYsMHgwNDQwLDAsezB4MDIsMHgwNCwweDhkLDB4MDAsMHgwMiwweDA0LDB4OGUsMHgwMCwweDAyLDB4MDQsMHg4ZiwweDAwLDB4MDIsMHgwNCwweDkwLDB4MDB9fSwKLSB7IDgsMHgwNDUwLDAsezB4MDIsMHgwNCwweDkxLDB4MDAsMHgwMiwweDA0LDB4OTIsMHgwMH19LAotIHsxNiwweDA0NTgsMCx7MHhjMCwweGUwLDB4YzAsMHg4MywweGMwLDB4ODIsMHg1MywweDkxLDB4ZWYsMHg5MCwweDdmLDB4YWIsMHg3NCwweDA4LDB4ZjAsMHhkMH19LAotIHsgNiwweDA0NjgsMCx7MHg4MiwweGQwLDB4ODMsMHhkMCwweGUwLDB4MzJ9fSwKLSB7MTYsMHgwNDZlLDAsezB4MDIsMHgwYSwweDAwLDB4MGYsMHgwMSwweDBjLDB4MTEsMHgwNCwweDBkLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg0MSwweDAwLDB4MDB9fSwKLSB7IDEsMHgwNDdlLDAsezB4MDB9fSwKLSB7IDQsMHgwNDdmLDAsezB4MDIsMHgxNywweDAwLDB4MDB9fSwKLSB7IDEsMHgwNDgzLDAsezB4MDB9fSwKLSB7IDEsMHgwNDg0LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg1LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg2LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg3LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg4LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDg5LDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhhLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhiLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhjLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhkLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhlLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDhmLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkwLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkxLDAsezB4MzJ9fSwKLSB7IDEsMHgwNDkyLDAsezB4MzJ9fSwKLSB7MTYsMHgxMTAwLDAsezB4MTIsMHgwMSwweDEwLDB4MDEsMHgwMCwweDAwLDB4MDAsMHg0MCwweDZhLDB4MDgsMHgwMSwweDAxLDB4MDAsMHgwMSwweDAxLDB4MDJ9fSwKLSB7MTYsMHgxMTEwLDAsezB4MDAsMHgwMSwweDA5LDB4MDIsMHgyMCwweDAwLDB4MDEsMHgwMSwweDAzLDB4YTAsMHgwMCwweDA5LDB4MDQsMHgwMCwweDAwLDB4MDJ9fSwKLSB7MTYsMHgxMTIwLDAsezB4ZmYsMHgwMCwweDAwLDB4MDQsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LDB4MDUsMHgwMiwweDAyLDB4NDB9fSwKLSB7MTYsMHgxMTMwLDAsezB4MDAsMHgwMCwweDA0LDB4MDMsMHgwOSwweDA0LDB4MjYsMHgwMywweDQxLDB4MDAsMHg2ZSwweDAwLDB4NjMsMHgwMCwweDY4LDB4MDB9fSwKLSB7MTYsMHgxMTQwLDAsezB4NmYsMHgwMCwweDcyLDB4MDAsMHgyMCwweDAwLDB4NDMsMHgwMCwweDY4LDB4MDAsMHg2OSwweDAwLDB4NzAsMHgwMCwweDczLDB4MDB9fSwKLSB7MTYsMHgxMTUwLDAsezB4MmMsMHgwMCwweDIwLDB4MDAsMHg0OSwweDAwLDB4NmUsMHgwMCwweDYzLDB4MDAsMHgyZSwweDAwLDB4MjgsMHgwMywweDQ2LDB4MDB9fSwKLSB7MTYsMHgxMTYwLDAsezB4NjksMHgwMCwweDcyLDB4MDAsMHg2ZCwweDAwLDB4NzcsMHgwMCwweDYxLDB4MDAsMHg3MiwweDAwLDB4NjUsMHgwMCwweDIwLDB4MDB9fSwKLSB7MTYsMHgxMTcwLDAsezB4NDYsMHgwMCwweDcyLDB4MDAsMHg2MSwweDAwLDB4NmQsMHgwMCwweDY1LDB4MDAsMHg1NywweDAwLDB4NmYsMHgwMCwweDcyLDB4MDB9fSwKLSB7MTYsMHgxMTgwLDAsezB4NmIsMHgwMCwweDczLDB4MDAsMHgyYSwweDAzLDB4NDMsMHgwMCwweDZmLDB4MDAsMHg2ZSwweDAwLDB4NjYsMHgwMCwweDY5LDB4MDB9fSwKLSB7MTYsMHgxMTkwLDAsezB4NjcsMHgwMCwweDc1LDB4MDAsMHg3MiwweDAwLDB4NjEsMHgwMCwweDc0LDB4MDAsMHg2OSwweDAwLDB4NmYsMHgwMCwweDZlLDB4MDB9fSwKLSB7MTYsMHgxMWEwLDAsezB4MjAsMHgwMCwweDUzLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDY5LDB4MDAsMHg2ZSwweDAwLDB4NjcsMHgwMCwweDIyLDB4MDN9fSwKLSB7MTYsMHgxMWIwLDAsezB4NDksMHgwMCwweDZlLDB4MDAsMHg3NCwweDAwLDB4NjUsMHgwMCwweDcyLDB4MDAsMHg2NiwweDAwLDB4NjEsMHgwMCwweDYzLDB4MDB9fSwKLSB7MTYsMHgxMWMwLDAsezB4NjUsMHgwMCwweDIwLDB4MDAsMHg1MywweDAwLDB4NzQsMHgwMCwweDcyLDB4MDAsMHg2OSwweDAwLDB4NmUsMHgwMCwweDY3LDB4MDB9fSwKLSB7IDIsMHgxMWQwLDAsezB4MDAsMHgwMH19LAotIHsgMCwweDAwMDAsMSx7MH19Ci19OwotLyogU291cmNlOiBFTUlMT0FELkhFWCAKLToxMDA0NkUwMDAyMEEwMDBGMDEwQzExMDQwRDAwMDAwMDAwNDEwMDAwRjMKLTowMTA0N0UwMDAwN0QKLToxMDAxQzcwMDkwN0ZFOUUwMjQ1QjYwNjAyNDAyNjAwMzAyMDI4NTkwNkYKLToxMDAxRDcwMDdGRUFFMDc1MEEwMEY1MEJBM0UwRkVFNEVFNDIwQTkwMjEKLToxMDAxRTcwMDdGRUVFMDc1MTUwMEY1MTZBM0UwRkVFNEVFNDIxNUU1OTcKLToxMDAxRjcwMDE2NDUxNTcwMDMwMjAyODVFNDkwN0ZDNUYwOTA3RkI0MjEKLToxMDAyMDcwMEUwMjBFM0Y5OTA3RkM1RTBGNTBDMTIwMzEzQUYwQzdFRjUKLToxMDAyMTcwMDAwRUYyNTBCRjUwQkVFMzUwQUY1MEFDM0U1MTY5RkY1M0EKLToxMDAyMjcwMDE2RTUxNTlFRjUxNTgwQzc5MDdGRUFFMDc1MEEwMEY1N0IKLToxMDAyMzcwMDBCQTNFMEZFRTRFRTQyMEE5MDdGRUVFMDc1MTUwMEY1QjEKLToxMDAyNDcwMDE2QTNFMEZFRTRFRTQyMTVFNTE2NDUxNTYwMzBFNDkwOEUKLToxMDAyNTcwMDdGQzVGMDkwN0ZCNEUwMjBFM0Y5OTA3RkM1RTBGNTBDMEYKLToxMDAyNjcwMDEyMDMyQkFGMEM3RTAwRUYyNTBCRjUwQkVFMzUwQUY1Q0QKLTowRjAyNzcwMDBBQzNFNTE2OUZGNTE2RTUxNTlFRjUxNTgwQ0FDMzU3Ci06MDEwMjg2MDAyMjU1Ci06MTAwM0E5MDBDMEUwQzA4M0MwODJEMjIwNTM5MUVGOTA3RkFCNzQwMTJCCi06MDgwM0I5MDBGMEQwODJEMDgzRDBFMDMyQzUKLToxMDAzOEUwMEMwRTBDMDgzQzA4MjkwN0ZDNEU0RjA1MzkxRUY5MDdGQjEKLTowQjAzOUUwMEFCNzQwNEYwRDA4MkQwODNEMEUwMzJCQQotOjEwMDNDMTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDA0NAotOjA2MDNEMTAwODJEMDgzRDBFMDMyNkYKLToxMDAzRDcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwMjAKLTowNjAzRTcwMDgyRDA4M0QwRTAzMjU5Ci06MDEwM0ZFMDAzMkNDCi06MTAwNDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA4RjBEMEE2Ci06MDYwNDY4MDA4MkQwODNEMEUwMzJENwotOjAxMDNGRjAwMzJDQgotOjAxMDQ4NDAwMzI0NQotOjAxMDQ4NTAwMzI0NAotOjAxMDQ4NjAwMzI0MwotOjAxMDQ4NzAwMzI0MgotOjAxMDQ4ODAwMzI0MQotOjAxMDQ4OTAwMzI0MAotOjAxMDQ4QTAwMzIzRgotOjAxMDQ4QjAwMzIzRQotOjAxMDQ4QzAwMzIzRAotOjAxMDQ4RDAwMzIzQwotOjAxMDQ4RTAwMzIzQgotOjAxMDQ4RjAwMzIzQQotOjAxMDQ5MDAwMzIzOQotOjAxMDQ5MTAwMzIzOAotOjAxMDQ5MjAwMzIzNwotOjA0MDQ3RjAwMDIxNzAwMDA2MAotOjEwMDEwMDAwRTRGRkZFQzIyMEQyRTg0M0Q4MjA5MDdGQUI3NEZGRjAxQQotOjEwMDExMDAwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0Y5NTc0QzBFMwotOjEwMDEyMDAwRjA5MDdGOUVGMDkwN0Y5OEYwRTQ5MDdGOTRGMDkwN0YyNQotOjEwMDEzMDAwOUQ3NEZGRjA5MDdGOTc3NEEwRjA5MDdGOTNFMDU0RkM0MwotOjEwMDE0MDAwRjA5MDdGOUM3NDAzRjBFNDkwN0Y5NkYwOTA3RkFGRTA5NgotOjEwMDE1MDAwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGMEZCRjAwMDEzQwotOjEwMDE2MDAwMEVCRTA3RjhCRjA4RjUyMDIwNDI3NTE0MDA3NTEzMDA3NQotOjEwMDE3MDAwNzUxMjAwNzUxMTAwN0Y0ODdFOTI3RDAwN0MwMEFCMTRFMwotOjEwMDE4MDAwQUExM0E5MTJBODExQzMxMjAzRUQ1MERCMjAyMEQ4N0FCQwotOjEwMDE5MDAwMDA3OTAwNzgwMEU1MTQyNDAxRjUxNEVBMzUxM0Y1MTMwRAotOjEwMDFBMDAwRTkzNTEyRjUxMkU4MzUxMUY1MTE4MENBMzAyMEZEMTIzQgotOjEwMDFCMDAwMDFDNzUwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQ2MQotOjA2MDFDMDAwMDJGMEMyMjA4MEU2RkYKLTowMTAxQzYwMDIyMTYKLToxMDExMDAwMDEyMDExMDAxMDAwMDAwNDA2QTA4MDEwMTAwMDEwMTAyMDMKLToxMDExMTAwMDAwMDEwOTAyMjAwMDAxMDEwM0EwMDAwOTA0MDAwMDAyRUYKLToxMDExMjAwMEZGMDAwMDA0MDcwNTgyMDI0MDAwMDAwNzA1MDIwMjQwOUMKLToxMDExMzAwMDAwMDAwNDAzMDkwNDI2MDM0MTAwNkUwMDYzMDA2ODAwRjgKLToxMDExNDAwMDZGMDA3MjAwMjAwMDQzMDA2ODAwNjkwMDcwMDA3MzAwQTcKLToxMDExNTAwMDJDMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDI4MDM0NjAwOEEKLToxMDExNjAwMDY5MDA3MjAwNkQwMDc3MDA2MTAwNzIwMDY1MDAyMDAwNjgKLToxMDExNzAwMDQ2MDA3MjAwNjEwMDZEMDA2NTAwNTcwMDZGMDA3MjAwNEMKLToxMDExODAwMDZCMDA3MzAwMkEwMzQzMDA2RjAwNkUwMDY2MDA2OTAwNjUKLToxMDExOTAwMDY3MDA3NTAwNzIwMDYxMDA3NDAwNjkwMDZGMDA2RTAwRTYKLToxMDExQTAwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMjAzODMKLToxMDExQjAwMDQ5MDA2RTAwNzQwMDY1MDA3MjAwNjYwMDYxMDA2MzAwMDMKLToxMDExQzAwMDY1MDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjMKLTowMjExRDAwMDAwMDAxRAotOjEwMDMxMzAwRTUwQ0ZGRTUwQkY1ODJFNTBBRjU4Mzc1OTI3RTc0QzA2MwotOjA4MDMyMzAwRjhFMjA4RjBBM0RGRkEyMjYyCi06MTAwMzJCMDA5MDdGOTY4NTgzOTJBODgyNzkwMjkwMDAwMEUwQjQwMEJBCi06MTAwMzNCMDAwRDc0MDFGMDkwN0Y5N0UwNTQ3RkYwNDQ4MEYwRTUwQzUyCi06MTAwMzRCMDBGRjkwN0VDMEUwRjUyOEU0QTI0NzMzRjI2OUYyRTRBMjA1Ci06MTAwMzVCMDA0NjMzRjI2OUYyRTRBMjQ1MzNGMjY5RjJFNEEyNDQzMzg0Ci06MTAwMzZCMDBGMjY5RjJFNEEyNDMzM0YyNjlGMkU0QTI0MjMzRjI2OTk2Ci06MTAwMzdCMDBGMkU0QTI0MTMzRjI2OUYyRTRBMjQwMzNGMjY5RjJBMzUwCi06MDMwMzhCMDBERkMyMjJBQwotOjAzMDA0MzAwMDIwNDAwQjQKLToxMDA0MDAwMDAyMDNBOTAwMDIwM0MxMDAwMjAzOEUwMDAyMDQ1ODAwODcKLToxMDA0MTAwMDAyMDNENzAwMDIwM0ZFMDAwMjAzRkYwMDAyMDQ4NDAwNkYKLToxMDA0MjAwMDAyMDQ4NTAwMDIwNDg2MDAwMjA0ODcwMDAyMDQ4ODAwOUEKLToxMDA0MzAwMDAyMDQ4OTAwMDIwNDhBMDAwMjA0OEIwMDAyMDQ4QzAwN0EKLToxMDA0NDAwMDAyMDQ4RDAwMDIwNDhFMDAwMjA0OEYwMDAyMDQ5MDAwNUEKLTowODA0NTAwMDAyMDQ5MTAwMDIwNDkyMDA3NQotOjAzMDAwMDAwMDIwMjg3NzIKLTowQzAyODcwMDc4N0ZFNEY2RDhGRDc1ODEyOTAyMDJDRUQ0Ci06MTAwM0VEMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDY2Ci06MDEwM0ZEMDAyMkRECi06MTAwMjkzMDAwMjAxMDBFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjgwCi06MTAwMkEzMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzZDCi06MTAwMkIzMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjNCCi06MTAwMkMzMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwNDZFRTQ3RTU5Ci06MTAwMkQzMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzMwCi06MTAwMkUzMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0Y3Ci06MTAwMkYzMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTIyCi06MTAwMzAzMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQ5Ci06MDEwNDgzMDAwMDc4Ci06MDAwMDAwMDFGRgotKi8KLS8qCi1WRVJTSU9OPTEuMC4yLjAwMgotREFURT0xMC4wMS4yMDAyCi1FTUkyNl82MgotKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvaXNpZ2h0X2Zpcm13YXJlLmMgYi9kcml2ZXJzL3VzYi9taXNjL2lzaWdodF9maXJtd2FyZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NGFhNzMKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3VzYi9taXNjL2lzaWdodF9maXJtd2FyZS5jCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogRHJpdmVyIGZvciBsb2FkaW5nIFVTQiBpc2lnaHQgZmlybXdhcmUKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0dGhldyBHYXJyZXR0IDxtamdAcmVkaGF0LmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKKyAqIFNvZnR3YXJlIEZvdW5kYXRpb24sIHZlcnNpb24gMi4KKyAqCisgKiBUaGUgVVNCIGlzaWdodCBjYW1lcmFzIGluIHJlY2VudCBBcHBsZXMgYXJlIHJvdWdobHkgY29tcGF0aWJsZSB3aXRoIHRoZSBVU0IKKyAqIHZpZGVvIGNsYXNzIHNwZWNpZmljYXRpb24sIGFuZCBjYW4gYmUgZHJpdmVuIGJ5IHV2Y3ZpZGVvLiBIb3dldmVyLCB0aGV5CisgKiBuZWVkIGZpcm13YXJlIHRvIGJlIGxvYWRlZCBiZWZvcmVoYW5kLiBBZnRlciBmaXJtd2FyZSBsb2FkaW5nLCB0aGUgZGV2aWNlCisgKiBkZXRhY2hlcyBmcm9tIHRoZSBVU0IgYnVzIGFuZCByZWF0dGFjaGVzIHdpdGggYSBuZXcgZGV2aWNlIElELiBJdCBjYW4gdGhlbgorICogYmUgY2xhaW1lZCBieSB0aGUgdXZjIGRyaXZlci4KKyAqCisgKiBUaGUgZmlybXdhcmUgaXMgbm9uLWZyZWUgYW5kIG11c3QgYmUgZXh0cmFjdGVkIGJ5IHRoZSB1c2VyLiBUb29scyB0byBkbyB0aGlzCisgKiBhcmUgYXZhaWxhYmxlIGF0IGh0dHA6Ly9iZXJzYWNlMDMuZnJlZS5mci9pZnQvCisgKgorICogVGhlIGlzaWdodCBmaXJtd2FyZSBsb2FkaW5nIHdhcyByZXZlcnNlIGVuZ2luZWVyZWQgYnkgSm9oYW5uZXMgQmVyZworICogPGpvaGFubmVzQHNpcHNvbHV0aW9ucy5kZT4sIGFuZCB0aGlzIGRyaXZlciBpcyBiYXNlZCBvbiBjb2RlIGJ5IFJvbmFsZAorICogQnVsdGplIDxyYnVsdGplQHJvbmFsZC5iaXRmcmVhay5uZXQ+CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKworc3RhdGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7CisJe1VTQl9ERVZJQ0UoMHgwNWFjLCAweDgzMDApfSwKKwl7fSwKK307CisKK01PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBpZF90YWJsZSk7CisKK3N0YXRpYyBpbnQgaXNpZ2h0X2Zpcm13YXJlX2xvYWQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCisJCQkJY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKQoreworCXN0cnVjdCB1c2JfZGV2aWNlICpkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGYpOworCWludCBsbGVuLCBsZW4sIHJlcSwgcmV0ID0gMDsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZpcm13YXJlOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IGttYWxsb2MoNTAsIEdGUF9LRVJORUwpOworCXVuc2lnbmVkIGNoYXIgZGF0YVs0XTsKKwljb25zdCB1OCAqcHRyOworCisJaWYgKCFidWYpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKHJlcXVlc3RfZmlybXdhcmUoJmZpcm13YXJlLCAiaXNpZ2h0LmZ3IiwgJmRldi0+ZGV2KSAhPSAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIGxvYWQgaXNpZ2h0IGZpcm13YXJlXG4iKTsKKwkJcmV0dXJuIC1FTk9ERVY7CisJfQorCisJcHRyID0gZmlybXdhcmUtPmRhdGE7CisKKwlpZiAodXNiX2NvbnRyb2xfbXNnCisJICAgIChkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLCAweGEwLCAweDQwLCAweGU2MDAsIDAsICJcMSIsIDEsCisJICAgICAzMDApICE9IDEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCSAgICAgICAiRmFpbGVkIHRvIGluaXRpYWxpc2UgaXNpZ2h0IGZpcm13YXJlIGxvYWRlclxuIik7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KKworCXdoaWxlIChwdHIrNCA8PSBmaXJtd2FyZS0+ZGF0YStmaXJtd2FyZS0+c2l6ZSkgeworCQltZW1jcHkoZGF0YSwgcHRyLCA0KTsKKwkJbGVuID0gKGRhdGFbMF0gPDwgOCB8IGRhdGFbMV0pOworCQlyZXEgPSAoZGF0YVsyXSA8PCA4IHwgZGF0YVszXSk7CisJCXB0ciArPSA0OworCisJCWlmIChsZW4gPT0gMHg4MDAxKQorCQkJYnJlYWs7CS8qIHN1Y2Nlc3MgKi8KKwkJZWxzZSBpZiAobGVuID09IDApCisJCQljb250aW51ZTsKKworCQlmb3IgKDsgbGVuID4gMDsgcmVxICs9IDUwKSB7CisJCQlsbGVuID0gbWluKGxlbiwgNTApOworCQkJbGVuIC09IGxsZW47CisJCQlpZiAocHRyK2xsZW4gPiBmaXJtd2FyZS0+ZGF0YStmaXJtd2FyZS0+c2l6ZSkgeworCQkJCXByaW50ayhLRVJOX0VSUgorCQkJCSAgICAgICAiTWFsZm9ybWVkIGlzaWdodCBmaXJtd2FyZSIpOworCQkJCXJldCA9IC1FTk9ERVY7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCQltZW1jcHkoYnVmLCBwdHIsIGxsZW4pOworCisJCQlwdHIgKz0gbGxlbjsKKworCQkJaWYgKHVzYl9jb250cm9sX21zZworCQkJICAgIChkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLCAweGEwLCAweDQwLCByZXEsIDAsCisJCQkgICAgIGJ1ZiwgbGxlbiwgMzAwKSAhPSBsbGVuKSB7CisJCQkJcHJpbnRrKEtFUk5fRVJSCisJCQkJICAgICAgICJGYWlsZWQgdG8gbG9hZCBpc2lnaHQgZmlybXdhcmVcbiIpOworCQkJCWtmcmVlKGJ1Zik7CisJCQkJcmV0ID0gLUVOT0RFVjsKKwkJCQlnb3RvIG91dDsKKwkJCX0KKworCQl9CisJfQorCisJaWYgKHVzYl9jb250cm9sX21zZworCSAgICAoZGV2LCB1c2Jfc25kY3RybHBpcGUoZGV2LCAwKSwgMHhhMCwgMHg0MCwgMHhlNjAwLCAwLCAiXDAiLCAxLAorCSAgICAgMzAwKSAhPSAxKSB7CisJCXByaW50ayhLRVJOX0VSUiAiaXNpZ2h0IGZpcm13YXJlIGxvYWRpbmcgY29tcGxldGlvbiBmYWlsZWRcbiIpOworCQlyZXQgPSAtRU5PREVWOworCX0KKworb3V0OgorCWtmcmVlKGJ1Zik7CisJcmVsZWFzZV9maXJtd2FyZShmaXJtd2FyZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaXNpZ2h0X2Zpcm13YXJlX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCit7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBpc2lnaHRfZmlybXdhcmVfZHJpdmVyID0geworCS5uYW1lID0gImlzaWdodF9maXJtd2FyZSIsCisJLnByb2JlID0gaXNpZ2h0X2Zpcm13YXJlX2xvYWQsCisJLmRpc2Nvbm5lY3QgPSBpc2lnaHRfZmlybXdhcmVfZGlzY29ubmVjdCwKKwkuaWRfdGFibGUgPSBpZF90YWJsZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IGlzaWdodF9maXJtd2FyZV9pbml0KHZvaWQpCit7CisJcmV0dXJuIHVzYl9yZWdpc3RlcigmaXNpZ2h0X2Zpcm13YXJlX2RyaXZlcik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBpc2lnaHRfZmlybXdhcmVfZXhpdCh2b2lkKQoreworCXVzYl9kZXJlZ2lzdGVyKCZpc2lnaHRfZmlybXdhcmVfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoaXNpZ2h0X2Zpcm13YXJlX2luaXQpOworbW9kdWxlX2V4aXQoaXNpZ2h0X2Zpcm13YXJlX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQVVUSE9SKCJNYXR0aGV3IEdhcnJldHQgPG1qZ0ByZWRoYXQuY29tPiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvbWlzYy9zaXN1c2J2Z2Evc2lzdXNiLmMgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwppbmRleCBjYjdmYTBlLi4zMzE4MmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYworKysgYi9kcml2ZXJzL3VzYi9taXNjL3Npc3VzYnZnYS9zaXN1c2IuYwpAQCAtMzI2NCw4ICszMjY0LDYgQEAKIAogCS8qIGRlY3JlbWVudCBvdXIgdXNhZ2UgY291bnQgKi8KIAlrcmVmX3B1dCgmc2lzdXNiLT5rcmVmLCBzaXN1c2JfZGVsZXRlKTsKLQotCWRldl9pbmZvKCZzaXN1c2ItPnNpc3VzYl9kZXYtPmRldiwgIkRpc2Nvbm5lY3RlZFxuIik7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBzaXN1c2JfdGFibGUgW10gPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jIGIvZHJpdmVycy91c2IvbW9uL21vbl9iaW4uYwppbmRleCA0OTE0NTUzLi4yOTNhNDYyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9tb24vbW9uX2Jpbi5jCisrKyBiL2RyaXZlcnMvdXNiL21vbi9tb25fYmluLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9wb2xsLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW0uaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIApAQCAtNTI3LDE0ICs1MjgsMTcgQEAKIAlzaXplX3Qgc2l6ZTsKIAlpbnQgcmM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCW11dGV4X2xvY2soJm1vbl9sb2NrKTsKIAlpZiAoKG1idXMgPSBtb25fYnVzX2xvb2t1cChpbWlub3IoaW5vZGUpKSkgPT0gTlVMTCkgewogCQltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAJaWYgKG1idXMgIT0gJm1vbl9idXMwICYmIG1idXMtPnVfYnVzID09IE5VTEwpIHsKIAkJcHJpbnRrKEtFUk5fRVJSIFRBRyAiOiBjb25zaXN0ZW5jeSBlcnJvciBvbiBvcGVuXG4iKTsKIAkJbXV0ZXhfdW5sb2NrKCZtb25fbG9jayk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCkBAIC01NjgsNiArNTcyLDcgQEAKIAogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHJwOwogCW11dGV4X3VubG9jaygmbW9uX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAlyZXR1cm4gMDsKIAogZXJyX2FsbG9jYnVmZjoKQEAgLTU3Niw2ICs1ODEsNyBAQAogCWtmcmVlKHJwKTsKIGVycl9hbGxvYzoKIAltdXRleF91bmxvY2soJm1vbl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJjOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvS2NvbmZpZyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCmluZGV4IDliYTY0Y2MuLjlhNzY4MWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9LY29uZmlnCkBAIC0zMDQsMTkgKzMwNCwxOSBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX01QUgogCWJvb2wgIlVTQiBLZXlzcGFuIE1QUiBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIEtleXNwYW4gTVBSIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOAogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0yOCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOCBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFggY29udmVydGVyLgogCSAgQmUgc3VyZSB5b3UgaGF2ZSBhIFVTQS0yOFgsIHRoZXJlIGFyZSBhbHNvIDI4WEEgYW5kIDI4WEIKQEAgLTMyNCw3ICszMjQsNyBAQAogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WEEKIAlib29sICJVU0IgS2V5c3BhbiBVU0EtMjhYQSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0yOFhBIGNvbnZlcnRlci4KIAkgIEJlIHN1cmUgeW91IGhhdmUgYSBVU0EtMjhYQSwgdGhlcmUgYXJlIGFsc28gMjhYIGFuZCAyOFhCCkBAIC0zMzIsNyArMzMyLDcgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhCCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTI4WEIgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMjhYQiBjb252ZXJ0ZXIuCiAJICBCZSBzdXJlIHlvdSBoYXZlIGEgVVNBLTI4WEIsIHRoZXJlIGFyZSBhbHNvIDI4WCBhbmQgMjhYQQpAQCAtMzQwLDQzICszNDAsNDMgQEAKIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOSBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOSBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE4WCBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS0xOFggY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXCiAJYm9vbCAiVVNCIEtleXNwYW4gVVNBLTE5UVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtMTlRVyBjb252ZXJ0ZXIuCiAKIGNvbmZpZyBVU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRSQogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS0xOVFJIEZpcm13YXJlIgotCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOCisJZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4gJiYgRklSTVdBUkVfSU5fS0VSTkVMCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIGZpcm13YXJlIGZvciB0aGUgVVNBLTE5UUkgY29udmVydGVyLgogCiBjb25maWcgVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5VwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVcgRmlybXdhcmUiCi0JZGVwZW5kcyBvbiBVU0JfU0VSSUFMX0tFWVNQQU4KKwlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTiAmJiBGSVJNV0FSRV9JTl9LRVJORUwKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgZmlybXdhcmUgZm9yIHRoZSBVU0EtNDlXIGNvbnZlcnRlci4KIAogY29uZmlnIFVTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVdMQwogCWJvb2wgIlVTQiBLZXlzcGFuIFVTQS00OVdMQyBGaXJtd2FyZSIKLQlkZXBlbmRzIG9uIFVTQl9TRVJJQUxfS0VZU1BBTgorCWRlcGVuZHMgb24gVVNCX1NFUklBTF9LRVlTUEFOICYmIEZJUk1XQVJFX0lOX0tFUk5FTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBmaXJtd2FyZSBmb3IgdGhlIFVTQS00OVdMQyBjb252ZXJ0ZXIuCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKaW5kZXggM2NlZTZmZS4uMGZmNGEzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKQEAgLTE3NCw4ICsxNzQsMjcwIEBACiAJeyBVU0JfREVWSUNFKEZURElfVklELCBGVERJX01UWE9SQl80X1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfTVRYT1JCXzVfUElEKSB9LAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9NVFhPUkJfNl9QSUQpIH0sCi0JeyBVU0JfREVWSUNFKE1UWE9SQl9WS19WSUQsIE1UWE9SQl9WS19QSUQpLAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDBfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDFfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDJfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDNfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDRfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDVfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDZfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDdfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDhfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMDlfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMEFfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMEJfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMENfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMERfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMEVfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMEZfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTBfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTFfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTJfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTNfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTRfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTVfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTZfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTdfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMThfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMTlfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMUFfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMUJfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMUNfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMURfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMUVfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMUZfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjBfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjFfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjJfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjNfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjRfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjVfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjZfUElEKSB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxMjdfUElEKSwKIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX210eG9yYl9oYWNrX3F1aXJrIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDEyOF9QSUQpIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDEyOV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDEyQV9QSUQpIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDEyQl9QSUQpIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDEyQ19QSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfbXR4b3JiX2hhY2tfcXVpcmsgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTJEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTJFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTJGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTMwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTMxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTMyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTMzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTM5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTNGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTQ5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTRBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTRCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTRDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTREX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTRFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTRGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTUwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTUxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTUyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTUzX1BJRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmZnRkaV9tdHhvcmJfaGFja19xdWlyayB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxNTRfUElEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX210eG9yYl9oYWNrX3F1aXJrIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDE1NV9QSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfbXR4b3JiX2hhY2tfcXVpcmsgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTU2X1BJRCksCisJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkmZnRkaV9tdHhvcmJfaGFja19xdWlyayB9LAorCXsgVVNCX0RFVklDRShNVFhPUkJfVklELE1UWE9SQl9GVERJX1JBTkdFXzAxNTdfUElEKSwKKwkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX210eG9yYl9oYWNrX3F1aXJrIH0sCisJeyBVU0JfREVWSUNFKE1UWE9SQl9WSUQsTVRYT1JCX0ZURElfUkFOR0VfMDE1OF9QSUQpLAorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJmZ0ZGlfbXR4b3JiX2hhY2tfcXVpcmsgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTU5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTVGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTYwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTYxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTYyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTYzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTY5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTZGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTcwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTcxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTcyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTczX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTc5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTdGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTgwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTgxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTgyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTgzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTg5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMThGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTkwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTkxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTkyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTkzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTk5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMTlGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUEwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUExX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUEyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUEzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUE5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUFGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUIwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUIxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUIyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUIzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUI5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUJGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUMwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUMxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUMyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUMzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUM5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUNGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUQ5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMURBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMURCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMURDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUREX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMURFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMURGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUUwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUUxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUUyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUUzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUU5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUVGX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUYwX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUYxX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUYyX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUYzX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY0X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY1X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY2X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY3X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY4X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUY5X1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZBX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZCX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZDX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZEX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZFX1BJRCkgfSwKKwl7IFVTQl9ERVZJQ0UoTVRYT1JCX1ZJRCxNVFhPUkJfRlRESV9SQU5HRV8wMUZGX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfUEVSTEVfVUxUUkFQT1JUX1BJRCkgfSwKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfUElFR1JPVVBfUElEKSB9LAogCXsgVVNCX0RFVklDRShGVERJX1ZJRCwgRlRESV9UTkNfWF9QSUQpIH0sCkBAIC0zNzUsNiArNjM3LDcgQEAKIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfT09DRExJTktfUElEKSwKIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZmdGRpX2p0YWdfcXVpcmsgfSwKIAl7IFVTQl9ERVZJQ0UoUkFUT0NfVkVORE9SX0lELCBSQVRPQ19QUk9EVUNUX0lEX1VTQjYwRikgfSwKKwl7IFVTQl9ERVZJQ0UoRlRESV9WSUQsIEZURElfUkVVX1RJTllfUElEKSB9LAogCXsgfSwJCQkJCS8qIE9wdGlvbmFsIHBhcmFtZXRlciBlbnRyeSAqLwogCXsgfQkJCQkJLyogVGVybWluYXRpbmcgZW50cnkgKi8KIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oCmluZGV4IGE3MmYyYzguLjgzMDJlY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oCkBAIC0xMTQsMTEgKzExNCwyNjggQEAKICNkZWZpbmUgRlRESV9PT0NETElOS19QSUQJMHhiYWY4CS8qIEFtb250ZWMgSlRBR2tleSAqLwogCiAvKgotICogVGhlIGZvbGxvd2luZyBhcmUgdGhlIHZhbHVlcyBmb3IgdGhlIE1hdHJpeCBPcmJpdGFsIFZLMjA0LTI1LVVTQgotICogZGlzcGxheSwgd2hpY2ggdXNlIHRoZSBGVDIzMlJMLgorICogVGhlIGZvbGxvd2luZyBhcmUgdGhlIHZhbHVlcyBmb3IgdGhlIE1hdHJpeCBPcmJpdGFsIEZUREkgUmFuZ2UKKyAqIEFueXRoaW5nIGluIHRoaXMgcmFuZ2Ugd2lsbCB1c2UgYW4gRlQyMzJSTC4KICAqLwotI2RlZmluZSBNVFhPUkJfVktfVklECQkweDFiM2QKLSNkZWZpbmUgTVRYT1JCX1ZLX1BJRAkJMHgwMTU4CisjZGVmaW5lIE1UWE9SQl9WSUQJCQkweDFCM0QKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwMF9QSUQJMHgwMTAwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMDFfUElECTB4MDEwMQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTAyX1BJRAkweDAxMDIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwM19QSUQJMHgwMTAzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMDRfUElECTB4MDEwNAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTA1X1BJRAkweDAxMDUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwNl9QSUQJMHgwMTA2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMDdfUElECTB4MDEwNworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTA4X1BJRAkweDAxMDgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwOV9QSUQJMHgwMTA5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMEFfUElECTB4MDEwQQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTBCX1BJRAkweDAxMEIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwQ19QSUQJMHgwMTBDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMERfUElECTB4MDEwRAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTBFX1BJRAkweDAxMEUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEwRl9QSUQJMHgwMTBGCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMTBfUElECTB4MDExMAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTExX1BJRAkweDAxMTEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDExMl9QSUQJMHgwMTEyCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMTNfUElECTB4MDExMworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTE0X1BJRAkweDAxMTQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDExNV9QSUQJMHgwMTE1CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMTZfUElECTB4MDExNgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTE3X1BJRAkweDAxMTcKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDExOF9QSUQJMHgwMTE4CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMTlfUElECTB4MDExOQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTFBX1BJRAkweDAxMUEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDExQl9QSUQJMHgwMTFCCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMUNfUElECTB4MDExQworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTFEX1BJRAkweDAxMUQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDExRV9QSUQJMHgwMTFFCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMUZfUElECTB4MDExRgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTIwX1BJRAkweDAxMjAKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEyMV9QSUQJMHgwMTIxCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMjJfUElECTB4MDEyMgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTIzX1BJRAkweDAxMjMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEyNF9QSUQJMHgwMTI0CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMjVfUElECTB4MDEyNQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTI2X1BJRAkweDAxMjYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEyN19QSUQJMHgwMTI3CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMjhfUElECTB4MDEyOAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTI5X1BJRAkweDAxMjkKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEyQV9QSUQJMHgwMTJBCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMkJfUElECTB4MDEyQgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTJDX1BJRAkweDAxMkMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEyRF9QSUQJMHgwMTJECisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMkVfUElECTB4MDEyRQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTJGX1BJRAkweDAxMkYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzMF9QSUQJMHgwMTMwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMzFfUElECTB4MDEzMQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTMyX1BJRAkweDAxMzIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzM19QSUQJMHgwMTMzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMzRfUElECTB4MDEzNAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTM1X1BJRAkweDAxMzUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzNl9QSUQJMHgwMTM2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxMzdfUElECTB4MDEzNworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTM4X1BJRAkweDAxMzgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzOV9QSUQJMHgwMTM5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxM0FfUElECTB4MDEzQQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTNCX1BJRAkweDAxM0IKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzQ19QSUQJMHgwMTNDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxM0RfUElECTB4MDEzRAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTNFX1BJRAkweDAxM0UKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDEzRl9QSUQJMHgwMTNGCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNDBfUElECTB4MDE0MAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTQxX1BJRAkweDAxNDEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE0Ml9QSUQJMHgwMTQyCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNDNfUElECTB4MDE0MworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTQ0X1BJRAkweDAxNDQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE0NV9QSUQJMHgwMTQ1CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNDZfUElECTB4MDE0NgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTQ3X1BJRAkweDAxNDcKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE0OF9QSUQJMHgwMTQ4CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNDlfUElECTB4MDE0OQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTRBX1BJRAkweDAxNEEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE0Ql9QSUQJMHgwMTRCCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNENfUElECTB4MDE0QworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTREX1BJRAkweDAxNEQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE0RV9QSUQJMHgwMTRFCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNEZfUElECTB4MDE0RgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTUwX1BJRAkweDAxNTAKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE1MV9QSUQJMHgwMTUxCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNTJfUElECTB4MDE1MgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTUzX1BJRAkweDAxNTMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE1NF9QSUQJMHgwMTU0CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNTVfUElECTB4MDE1NQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTU2X1BJRAkweDAxNTYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE1N19QSUQJMHgwMTU3CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNThfUElECTB4MDE1OAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTU5X1BJRAkweDAxNTkKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE1QV9QSUQJMHgwMTVBCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNUJfUElECTB4MDE1QgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTVDX1BJRAkweDAxNUMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE1RF9QSUQJMHgwMTVECisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNUVfUElECTB4MDE1RQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTVGX1BJRAkweDAxNUYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2MF9QSUQJMHgwMTYwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNjFfUElECTB4MDE2MQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTYyX1BJRAkweDAxNjIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2M19QSUQJMHgwMTYzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNjRfUElECTB4MDE2NAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTY1X1BJRAkweDAxNjUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2Nl9QSUQJMHgwMTY2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNjdfUElECTB4MDE2NworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTY4X1BJRAkweDAxNjgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2OV9QSUQJMHgwMTY5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNkFfUElECTB4MDE2QQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTZCX1BJRAkweDAxNkIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2Q19QSUQJMHgwMTZDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNkRfUElECTB4MDE2RAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTZFX1BJRAkweDAxNkUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE2Rl9QSUQJMHgwMTZGCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNzBfUElECTB4MDE3MAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTcxX1BJRAkweDAxNzEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE3Ml9QSUQJMHgwMTcyCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNzNfUElECTB4MDE3MworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTc0X1BJRAkweDAxNzQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE3NV9QSUQJMHgwMTc1CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNzZfUElECTB4MDE3NgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTc3X1BJRAkweDAxNzcKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE3OF9QSUQJMHgwMTc4CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxNzlfUElECTB4MDE3OQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTdBX1BJRAkweDAxN0EKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE3Ql9QSUQJMHgwMTdCCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxN0NfUElECTB4MDE3QworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTdEX1BJRAkweDAxN0QKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE3RV9QSUQJMHgwMTdFCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxN0ZfUElECTB4MDE3RgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTgwX1BJRAkweDAxODAKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE4MV9QSUQJMHgwMTgxCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxODJfUElECTB4MDE4MgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTgzX1BJRAkweDAxODMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE4NF9QSUQJMHgwMTg0CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxODVfUElECTB4MDE4NQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTg2X1BJRAkweDAxODYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE4N19QSUQJMHgwMTg3CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxODhfUElECTB4MDE4OAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTg5X1BJRAkweDAxODkKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE4QV9QSUQJMHgwMThBCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOEJfUElECTB4MDE4QgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMThDX1BJRAkweDAxOEMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE4RF9QSUQJMHgwMThECisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOEVfUElECTB4MDE4RQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMThGX1BJRAkweDAxOEYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5MF9QSUQJMHgwMTkwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOTFfUElECTB4MDE5MQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTkyX1BJRAkweDAxOTIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5M19QSUQJMHgwMTkzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOTRfUElECTB4MDE5NAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTk1X1BJRAkweDAxOTUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5Nl9QSUQJMHgwMTk2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOTdfUElECTB4MDE5NworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTk4X1BJRAkweDAxOTgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5OV9QSUQJMHgwMTk5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOUFfUElECTB4MDE5QQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTlCX1BJRAkweDAxOUIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5Q19QSUQJMHgwMTlDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxOURfUElECTB4MDE5RAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMTlFX1BJRAkweDAxOUUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDE5Rl9QSUQJMHgwMTlGCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQTBfUElECTB4MDFBMAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUExX1BJRAkweDAxQTEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFBMl9QSUQJMHgwMUEyCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQTNfUElECTB4MDFBMworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUE0X1BJRAkweDAxQTQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFBNV9QSUQJMHgwMUE1CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQTZfUElECTB4MDFBNgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUE3X1BJRAkweDAxQTcKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFBOF9QSUQJMHgwMUE4CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQTlfUElECTB4MDFBOQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUFBX1BJRAkweDAxQUEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFBQl9QSUQJMHgwMUFCCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQUNfUElECTB4MDFBQworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUFEX1BJRAkweDAxQUQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFBRV9QSUQJMHgwMUFFCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQUZfUElECTB4MDFBRgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUIwX1BJRAkweDAxQjAKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFCMV9QSUQJMHgwMUIxCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQjJfUElECTB4MDFCMgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUIzX1BJRAkweDAxQjMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFCNF9QSUQJMHgwMUI0CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQjVfUElECTB4MDFCNQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUI2X1BJRAkweDAxQjYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFCN19QSUQJMHgwMUI3CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQjhfUElECTB4MDFCOAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUI5X1BJRAkweDAxQjkKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFCQV9QSUQJMHgwMUJBCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQkJfUElECTB4MDFCQgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUJDX1BJRAkweDAxQkMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFCRF9QSUQJMHgwMUJECisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQkVfUElECTB4MDFCRQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUJGX1BJRAkweDAxQkYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDMF9QSUQJMHgwMUMwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQzFfUElECTB4MDFDMQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUMyX1BJRAkweDAxQzIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDM19QSUQJMHgwMUMzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQzRfUElECTB4MDFDNAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUM1X1BJRAkweDAxQzUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDNl9QSUQJMHgwMUM2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQzdfUElECTB4MDFDNworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUM4X1BJRAkweDAxQzgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDOV9QSUQJMHgwMUM5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQ0FfUElECTB4MDFDQQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUNCX1BJRAkweDAxQ0IKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDQ19QSUQJMHgwMUNDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxQ0RfUElECTB4MDFDRAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUNFX1BJRAkweDAxQ0UKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFDRl9QSUQJMHgwMUNGCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRDBfUElECTB4MDFEMAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUQxX1BJRAkweDAxRDEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFEMl9QSUQJMHgwMUQyCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRDNfUElECTB4MDFEMworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUQ0X1BJRAkweDAxRDQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFENV9QSUQJMHgwMUQ1CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRDZfUElECTB4MDFENgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUQ3X1BJRAkweDAxRDcKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFEOF9QSUQJMHgwMUQ4CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRDlfUElECTB4MDFEOQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMURBX1BJRAkweDAxREEKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFEQl9QSUQJMHgwMURCCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRENfUElECTB4MDFEQworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUREX1BJRAkweDAxREQKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFERV9QSUQJMHgwMURFCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxREZfUElECTB4MDFERgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUUwX1BJRAkweDAxRTAKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFFMV9QSUQJMHgwMUUxCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRTJfUElECTB4MDFFMgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUUzX1BJRAkweDAxRTMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFFNF9QSUQJMHgwMUU0CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRTVfUElECTB4MDFFNQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUU2X1BJRAkweDAxRTYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFFN19QSUQJMHgwMUU3CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRThfUElECTB4MDFFOAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUU5X1BJRAkweDAxRTkKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFFQV9QSUQJMHgwMUVBCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRUJfUElECTB4MDFFQgorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUVDX1BJRAkweDAxRUMKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFFRF9QSUQJMHgwMUVECisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRUVfUElECTB4MDFFRQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUVGX1BJRAkweDAxRUYKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGMF9QSUQJMHgwMUYwCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRjFfUElECTB4MDFGMQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUYyX1BJRAkweDAxRjIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGM19QSUQJMHgwMUYzCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRjRfUElECTB4MDFGNAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUY1X1BJRAkweDAxRjUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGNl9QSUQJMHgwMUY2CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRjdfUElECTB4MDFGNworI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUY4X1BJRAkweDAxRjgKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGOV9QSUQJMHgwMUY5CisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRkFfUElECTB4MDFGQQorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUZCX1BJRAkweDAxRkIKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGQ19QSUQJMHgwMUZDCisjZGVmaW5lIE1UWE9SQl9GVERJX1JBTkdFXzAxRkRfUElECTB4MDFGRAorI2RlZmluZSBNVFhPUkJfRlRESV9SQU5HRV8wMUZFX1BJRAkweDAxRkUKKyNkZWZpbmUgTVRYT1JCX0ZURElfUkFOR0VfMDFGRl9QSUQJMHgwMUZGCisKKwogCiAvKiBJbnRlcmJpb21ldHJpY3MgVVNCIEkvTyBCb2FyZCAqLwogLyogRGV2ZWxvcGVkIGZvciBJbnRlcmJpb21ldHJpY3MgYnkgUnVkb2xmIEd1Z2xlciAqLwpAQCAtNTcxLDYgKzgyOCw5IEBACiAvKiBQcm9wb3ggZGV2aWNlcyAqLwogI2RlZmluZSBGVERJX1BST1BPWF9KVEFHQ0FCTEVJSV9QSUQJMHhENzM4CiAKKy8qIFJpZyBFeHBlcnQgVWtyYWluZSBkZXZpY2VzICovCisjZGVmaW5lIEZURElfUkVVX1RJTllfUElECQkweEVEMjIJLyogUmlnRXhwZXJ0IFRpbnkgKi8KKwogLyogQ29tbWFuZHMgKi8KICNkZWZpbmUgRlRESV9TSU9fUkVTRVQgCQkwIC8qIFJlc2V0IHRoZSBwb3J0ICovCiAjZGVmaW5lIEZURElfU0lPX01PREVNX0NUUkwgCTEgLyogU2V0IHRoZSBtb2RlbSBjb250cm9sIHJlZ2lzdGVyICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZWRnZXBvcnQuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCmluZGV4IDA2YjUyZjQuLjJmZDQ0OWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19lZGdlcG9ydC5jCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CiAjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KICNpbmNsdWRlIDxsaW51eC93YWl0Lmg+CisjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KKyNpbmNsdWRlIDxsaW51eC9paGV4Lmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDxsaW51eC91c2IuaD4KICNpbmNsdWRlIDxsaW51eC91c2Ivc2VyaWFsLmg+CkBAIC01NiwyNiArNTgsNiBAQAogI2RlZmluZSBEUklWRVJfQVVUSE9SICJHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdAa3JvYWguY29tPiBhbmQgRGF2aWQgSWFjb3ZlbGxpIgogI2RlZmluZSBEUklWRVJfREVTQyAiRWRnZXBvcnQgVVNCIFNlcmlhbCBEcml2ZXIiCiAKLS8qIEZpcnN0LCB0aGUgbGF0ZXN0IGJvb3QgY29kZSAtIGZvciBmaXJzdCBnZW5lcmF0aW9uIGVkZ2Vwb3J0cyAqLwotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCUJvb3RDb2RlSW1hZ2VfR0VOMQotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJQm9vdENvZGVJbWFnZVZlcnNpb25fR0VOMQotI2luY2x1ZGUgImlvX2Z3X2Jvb3QuaCIJCS8qIHRoZSBib290bG9hZGVyIGZpcm13YXJlIHRvIGRvd25sb2FkIHRvIGEgZGV2aWNlLCBpZiBpdCBuZWVkcyBpdCAqLwotCi0vKiBmb3Igc2Vjb25kIGdlbmVyYXRpb24gZWRnZXBvcnRzICovCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJQm9vdENvZGVJbWFnZV9HRU4yCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlCb290Q29kZUltYWdlVmVyc2lvbl9HRU4yCi0jaW5jbHVkZSAiaW9fZndfYm9vdDIuaCIJLyogdGhlIGJvb3Rsb2FkZXIgZmlybXdhcmUgdG8gZG93bmxvYWQgdG8gYSBkZXZpY2UsIGlmIGl0IG5lZWRzIGl0ICovCi0KLS8qIFRoZW4gZmluYWxseSB0aGUgbWFpbiBydW4tdGltZSBvcGVyYXRpb25hbCBjb2RlIC0gZm9yIGZpcnN0IGdlbmVyYXRpb24gZWRnZXBvcnRzICovCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMQotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEKLSNpbmNsdWRlICJpb19md19kb3duLmgiCQkvKiBEZWZpbmUgYXJyYXkgT3BlcmF0aW9uYWxDb2RlSW1hZ2VbXSAqLwotCi0vKiBmb3Igc2Vjb25kIGdlbmVyYXRpb24gZWRnZXBvcnRzICovCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMgotI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIKLSNpbmNsdWRlICJpb19md19kb3duMi5oIgkvKiBEZWZpbmUgYXJyYXkgT3BlcmF0aW9uYWxDb2RlSW1hZ2VbXSAqLwotCiAjZGVmaW5lIE1BWF9OQU1FX0xFTgkJNjQKIAogI2RlZmluZSBDSEFTRV9USU1FT1VUCQkoNSpIWikJCS8qIDUgc2Vjb25kcyAqLwpAQCAtMjU2LDkgKzIzOCw5IEBACiBzdGF0aWMgaW50ICB3cml0ZV9jbWRfdXNiCQkoc3RydWN0IGVkZ2Vwb3J0X3BvcnQgKmVkZ2VfcG9ydCwgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBpbnQgd3JpdGVMZW5ndGgpOwogc3RhdGljIHZvaWQgc2VuZF9tb3JlX3BvcnRfZGF0YQkJKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsLCBzdHJ1Y3QgZWRnZXBvcnRfcG9ydCAqZWRnZV9wb3J0KTsKIAotc3RhdGljIGludCAgc3JhbV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIF9fdTggKmRhdGEpOworc3RhdGljIGludCAgc3JhbV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIGNvbnN0IF9fdTggKmRhdGEpOwogc3RhdGljIGludCAgcm9tX3JlYWQJCQkoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKTsKLXN0YXRpYyBpbnQgIHJvbV93cml0ZQkJCShzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIF9fdTggKmRhdGEpOworc3RhdGljIGludCAgcm9tX3dyaXRlCQkJKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIF9fdTE2IGV4dEFkZHIsIF9fdTE2IGFkZHIsIF9fdTE2IGxlbmd0aCwgY29uc3QgX191OCAqZGF0YSk7CiBzdGF0aWMgdm9pZCBnZXRfbWFudWZhY3R1cmluZ19kZXNjCShzdHJ1Y3QgZWRnZXBvcnRfc2VyaWFsICplZGdlX3NlcmlhbCk7CiBzdGF0aWMgdm9pZCBnZXRfYm9vdF9kZXNjCQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOwogc3RhdGljIHZvaWQgbG9hZF9hcHBsaWNhdGlvbl9maXJtd2FyZQkoc3RydWN0IGVkZ2Vwb3J0X3NlcmlhbCAqZWRnZV9zZXJpYWwpOwpAQCAtMjgzLDM3ICsyNjUsNDEgQEAKIHsKIAlfX3UzMiBCb290Q3VyVmVyOwogCV9fdTMyIEJvb3ROZXdWZXI7Ci0JX191OCBCb290TWFqb3JWZXJzaW9uOyAgICAgICAgICAgICAgICAgIAotCV9fdTggQm9vdE1pbm9yVmVyc2lvbjsgICAgICAgICAgICAgICAgICAKLQlfX2xlMTYgQm9vdEJ1aWxkTnVtYmVyOwotCV9fdTggKkJvb3RJbWFnZTsgICAgICAKLQlfX3UzMiBCb290U2l6ZTsKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgKnJlY29yZDsKLQl1bnNpZ25lZCBjaGFyICpmaXJtd2FyZTsKKwlfX3U4IEJvb3RNYWpvclZlcnNpb247CisJX191OCBCb290TWlub3JWZXJzaW9uOworCV9fdTE2IEJvb3RCdWlsZE51bWJlcjsKKwlfX3UzMiBCb290YWRkcjsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgKmZ3X25hbWU7CiAJaW50IHJlc3BvbnNlOwogCi0KIAlzd2l0Y2ggKGVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uaURvd25sb2FkRmlsZSkgewogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV9JOTMwOgotCQkJQm9vdE1ham9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWFqb3JWZXJzaW9uOwotCQkJQm9vdE1pbm9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuTWlub3JWZXJzaW9uOwotCQkJQm9vdEJ1aWxkTnVtYmVyCQk9IGNwdV90b19sZTE2KEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuQnVpbGROdW1iZXIpOwotCQkJQm9vdEltYWdlCQk9ICZCb290Q29kZUltYWdlX0dFTjFbMF07Ci0JCQlCb290U2l6ZQkJPSBzaXplb2YoIEJvb3RDb2RlSW1hZ2VfR0VOMSApOworCQkJZndfbmFtZQk9ICJlZGdlcG9ydC9ib290LmZ3IjsKIAkJCWJyZWFrOwogCiAJCWNhc2UgRURHRV9ET1dOTE9BRF9GSUxFXzgwMjUxOgotCQkJQm9vdE1ham9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWFqb3JWZXJzaW9uOwotCQkJQm9vdE1pbm9yVmVyc2lvbgk9IEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWlub3JWZXJzaW9uOwotCQkJQm9vdEJ1aWxkTnVtYmVyCQk9IGNwdV90b19sZTE2KEJvb3RDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuQnVpbGROdW1iZXIpOwotCQkJQm9vdEltYWdlCQk9ICZCb290Q29kZUltYWdlX0dFTjJbMF07Ci0JCQlCb290U2l6ZQkJPSBzaXplb2YoIEJvb3RDb2RlSW1hZ2VfR0VOMiApOworCQkJZndfbmFtZQk9ICJlZGdlcG9ydC9ib290Mi5mdyI7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJcmV0dXJuOwogCX0KIAorCXJlc3BvbnNlID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgZndfbmFtZSwKKwkJCQkJICZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldik7CisJaWYgKHJlc3BvbnNlKSB7CisJCXByaW50ayhLRVJOX0VSUiAiRmFpbGVkIHRvIGxvYWQgaW1hZ2UgXCIlc1wiIGVyciAlZFxuIiwKKwkJICAgICAgIGZ3X25hbWUsIHJlc3BvbnNlKTsKKwkJcmV0dXJuOworCX0KKworCXJlYyA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmdy0+ZGF0YTsKKwlCb290TWFqb3JWZXJzaW9uID0gcmVjLT5kYXRhWzBdOworCUJvb3RNaW5vclZlcnNpb24gPSByZWMtPmRhdGFbMV07CisJQm9vdEJ1aWxkTnVtYmVyID0gKHJlYy0+ZGF0YVsyXSA8PCA4KSB8IHJlYy0+ZGF0YVszXTsKKwogCS8vIENoZWNrIEJvb3QgSW1hZ2UgVmVyc2lvbgogCUJvb3RDdXJWZXIgPSAoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NYWpvclZlcnNpb24gPDwgMjQpICsKIAkJICAgICAoZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NaW5vclZlcnNpb24gPDwgMTYpICsKQEAgLTMyMSw3ICszMDcsNyBAQAogCiAJQm9vdE5ld1ZlciA9IChCb290TWFqb3JWZXJzaW9uIDw8IDI0KSArCiAJCSAgICAgKEJvb3RNaW5vclZlcnNpb24gPDwgMTYpICsKLQkJICAgICAgbGUxNl90b19jcHUoQm9vdEJ1aWxkTnVtYmVyKTsKKwkJICAgICAgQm9vdEJ1aWxkTnVtYmVyOwogCiAJZGJnKCJDdXJyZW50IEJvb3QgSW1hZ2UgdmVyc2lvbiAlZC4lZC4lZCIsCiAJICAgIGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWFqb3JWZXJzaW9uLApAQCAtMzM0LDMwICszMjAsMzAgQEAKIAkJICAgIGVkZ2Vfc2VyaWFsLT5ib290X2Rlc2NyaXB0b3IuTWFqb3JWZXJzaW9uLAogCQkgICAgZWRnZV9zZXJpYWwtPmJvb3RfZGVzY3JpcHRvci5NaW5vclZlcnNpb24sCiAJCSAgICBsZTE2X3RvX2NwdShlZGdlX3NlcmlhbC0+Ym9vdF9kZXNjcmlwdG9yLkJ1aWxkTnVtYmVyKSwKLQkJICAgIEJvb3RNYWpvclZlcnNpb24sCi0JCSAgICBCb290TWlub3JWZXJzaW9uLAotCQkgICAgbGUxNl90b19jcHUoQm9vdEJ1aWxkTnVtYmVyKSk7Ci0KKwkJICAgIEJvb3RNYWpvclZlcnNpb24sIEJvb3RNaW5vclZlcnNpb24sIEJvb3RCdWlsZE51bWJlcik7CiAKIAkJZGJnKCJEb3dubG9hZGluZyBuZXcgQm9vdCBJbWFnZSIpOwogCi0JCWZpcm13YXJlID0gQm9vdEltYWdlOwotCi0JCWZvciAoOzspIHsKLQkJCXJlY29yZCA9IChzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgKilmaXJtd2FyZTsKLQkJCXJlc3BvbnNlID0gcm9tX3dyaXRlIChlZGdlX3NlcmlhbC0+c2VyaWFsLCBsZTE2X3RvX2NwdShyZWNvcmQtPkV4dEFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkFkZHIpLCBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbiksICZyZWNvcmQtPkRhdGFbMF0pOworCQlmb3IgKHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKTsgcmVjOworCQkgICAgIHJlYyA9IGloZXhfbmV4dF9iaW5yZWMocmVjKSkgeworCQkJQm9vdGFkZHIgPSBiZTMyX3RvX2NwdShyZWMtPmFkZHIpOworCQkJcmVzcG9uc2UgPSByb21fd3JpdGUoZWRnZV9zZXJpYWwtPnNlcmlhbCwKKwkJCQkJICAgICBCb290YWRkciA+PiAxNiwKKwkJCQkJICAgICBCb290YWRkciAmIDB4RkZGRiwKKwkJCQkJICAgICBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJCSAgICAgJnJlYy0+ZGF0YVswXSk7CiAJCQlpZiAocmVzcG9uc2UgPCAwKSB7Ci0JCQkJZGV2X2VycigmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsICJyb21fd3JpdGUgZmFpbGVkICgleCwgJXgsICVkKVxuIiwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pKTsKLQkJCQlicmVhazsKLQkJCX0KLQkJCWZpcm13YXJlICs9IHNpemVvZiAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkKSArIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKTsKLQkJCWlmIChmaXJtd2FyZSA+PSAmQm9vdEltYWdlW0Jvb3RTaXplXSkgeworCQkJCWRldl9lcnIoJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2LAorCQkJCQkicm9tX3dyaXRlIGZhaWxlZCAoJXgsICV4LCAlZClcbiIsCisJCQkJCUJvb3RhZGRyID4+IDE2LCBCb290YWRkciAmIDB4RkZGRiwKKwkJCQkJYmUxNl90b19jcHUocmVjLT5sZW4pKTsKIAkJCQlicmVhazsKIAkJCX0KIAkJfQogCX0gZWxzZSB7CiAJCWRiZygiQm9vdCBJbWFnZSAtLSBhbHJlYWR5IHVwIHRvIGRhdGUiKTsKIAl9CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiB9CiAKIApAQCAtNDQ3LDkgKzQzMyw2IEBACiAJZGJnKCIgIEJvb3RNYWpvclZlcnNpb24gICAgICAlZC4lZC4lZCIsIHByb2R1Y3RfaW5mby0+Qm9vdE1ham9yVmVyc2lvbiwKIAkgICAgcHJvZHVjdF9pbmZvLT5Cb290TWlub3JWZXJzaW9uLAogCSAgICBsZTE2X3RvX2NwdShwcm9kdWN0X2luZm8tPkJvb3RCdWlsZE51bWJlcikpOwotCWRiZygiICBGaXJtd2FyZU1ham9yVmVyc2lvbiAgJWQuJWQuJWQiLCBwcm9kdWN0X2luZm8tPkZpcm13YXJlTWFqb3JWZXJzaW9uLAotCSAgICBwcm9kdWN0X2luZm8tPkZpcm13YXJlTWlub3JWZXJzaW9uLAotCSAgICBsZTE2X3RvX2NwdShwcm9kdWN0X2luZm8tPkZpcm13YXJlQnVpbGROdW1iZXIpKTsKIAlkYmcoIiAgTWFudWZhY3R1cmVEZXNjRGF0ZSAgICVkLyVkLyVkIiwgcHJvZHVjdF9pbmZvLT5NYW51ZmFjdHVyZURlc2NEYXRlWzBdLAogCSAgICBwcm9kdWN0X2luZm8tPk1hbnVmYWN0dXJlRGVzY0RhdGVbMV0sCiAJICAgIHByb2R1Y3RfaW5mby0+TWFudWZhY3R1cmVEZXNjRGF0ZVsyXSsxOTAwKTsKQEAgLTQ4MCwxNCArNDYzLDggQEAKIAogCS8vIGNoZWNrIGlmIHRoaXMgaXMgMm5kIGdlbmVyYXRpb24gaGFyZHdhcmUKIAlpZiAobGUxNl90b19jcHUoZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgJiBJT05fREVWSUNFX0lEXzgwMjUxX05FVENISVApIHsKLQkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1ham9yVmVyc2lvbgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1ham9yVmVyc2lvbjsKLQkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZU1pbm9yVmVyc2lvbgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1pbm9yVmVyc2lvbjsKLQkJcHJvZHVjdF9pbmZvLT5GaXJtd2FyZUJ1aWxkTnVtYmVyCT0gY3B1X3RvX2xlMTYoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuQnVpbGROdW1iZXIpOwogCQlwcm9kdWN0X2luZm8tPmlEb3dubG9hZEZpbGUJCT0gRURHRV9ET1dOTE9BRF9GSUxFXzgwMjUxOwogCX0gZWxzZSB7Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNYWpvclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5NYWpvclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVNaW5vclZlcnNpb24JPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5NaW5vclZlcnNpb247Ci0JCXByb2R1Y3RfaW5mby0+RmlybXdhcmVCdWlsZE51bWJlcgk9IGNwdV90b19sZTE2KE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLkJ1aWxkTnVtYmVyKTsKIAkJcHJvZHVjdF9pbmZvLT5pRG93bmxvYWRGaWxlCQk9IEVER0VfRE9XTkxPQURfRklMRV9JOTMwOwogCX0KIApAQCAtMjEzMCw3ICsyMTA3LDcgQEAKICAqCUlmIHN1Y2Nlc3NmdWwgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4sIG90aGVyd2lzZSBpdCByZXR1cm5zCiAgKglhIG5lZ2F0aXZlIGVycm9yIG51bWJlciBvZiB0aGUgcHJvYmxlbS4KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotc3RhdGljIGludCBzcmFtX3dyaXRlIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsLCBfX3UxNiBleHRBZGRyLCBfX3UxNiBhZGRyLCBfX3UxNiBsZW5ndGgsIF9fdTggKmRhdGEpCitzdGF0aWMgaW50IHNyYW1fd3JpdGUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBjb25zdCBfX3U4ICpkYXRhKQogewogCWludCByZXN1bHQ7CiAJX191MTYgY3VycmVudF9sZW5ndGg7CkBAIC0yMTc1LDcgKzIxNTIsNyBAQAogICoJSWYgc3VjY2Vzc2Z1bCByZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbiwgb3RoZXJ3aXNlIGl0IHJldHVybnMKICAqCWEgbmVnYXRpdmUgZXJyb3IgbnVtYmVyIG9mIHRoZSBwcm9ibGVtLgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgaW50IHJvbV93cml0ZSAoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBfX3U4ICpkYXRhKQorc3RhdGljIGludCByb21fd3JpdGUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCwgX191MTYgZXh0QWRkciwgX191MTYgYWRkciwgX191MTYgbGVuZ3RoLCBjb25zdCBfX3U4ICpkYXRhKQogewogCWludCByZXN1bHQ7CiAJX191MTYgY3VycmVudF9sZW5ndGg7CkBAIC0yNzYxLDMyICsyNzM4LDIzIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHN0YXRpYyB2b2lkIGxvYWRfYXBwbGljYXRpb25fZmlybXdhcmUgKHN0cnVjdCBlZGdlcG9ydF9zZXJpYWwgKmVkZ2Vfc2VyaWFsKQogewotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCAqcmVjb3JkOwotCXVuc2lnbmVkIGNoYXIgKmZpcm13YXJlOwotCXVuc2lnbmVkIGNoYXIgKkZpcm13YXJlSW1hZ2U7Ci0JaW50IEltYWdlU2l6ZTsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlYzsKKwljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCWNvbnN0IGNoYXIgKmZ3X25hbWU7CisJY29uc3QgY2hhciAqZndfaW5mbzsKIAlpbnQgcmVzcG9uc2U7Ci0KKwlfX3UzMiBPcGVyYWRkcjsKKwlfX3UxNiBidWlsZDsKIAogCXN3aXRjaCAoZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5pRG93bmxvYWRGaWxlKSB7CiAJCWNhc2UgRURHRV9ET1dOTE9BRF9GSUxFX0k5MzA6Ci0JCQlkYmcoImRvd25sb2FkaW5nIGZpcm13YXJlIHZlcnNpb24gKDkzMCkgJWQuJWQuJWQiLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMS5NYWpvclZlcnNpb24sIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4xLk1pbm9yVmVyc2lvbiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjEuQnVpbGROdW1iZXIpOwotCQkJZmlybXdhcmUgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMVswXTsKLQkJCUZpcm13YXJlSW1hZ2UgPSAmT3BlcmF0aW9uYWxDb2RlSW1hZ2VfR0VOMVswXTsKLQkJCUltYWdlU2l6ZSA9IHNpemVvZihPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4xKTsKKwkJCWZ3X2luZm8gPSAiZG93bmxvYWRpbmcgZmlybXdhcmUgdmVyc2lvbiAoOTMwKSI7CisJCQlmd19uYW1lCT0gImVkZ2Vwb3J0L2Rvd24uZnciOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBFREdFX0RPV05MT0FEX0ZJTEVfODAyNTE6Ci0JCQlkYmcoImRvd25sb2FkaW5nIGZpcm13YXJlIHZlcnNpb24gKDgwMjUxKSAlZC4lZC4lZCIsIAotCQkJICAgIE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbl9HRU4yLk1ham9yVmVyc2lvbiwgCi0JCQkgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uX0dFTjIuTWlub3JWZXJzaW9uLCAKLQkJCSAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb25fR0VOMi5CdWlsZE51bWJlcik7Ci0JCQlmaXJtd2FyZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yWzBdOwotCQkJRmlybXdhcmVJbWFnZSA9ICZPcGVyYXRpb25hbENvZGVJbWFnZV9HRU4yWzBdOwotCQkJSW1hZ2VTaXplID0gc2l6ZW9mKE9wZXJhdGlvbmFsQ29kZUltYWdlX0dFTjIpOworCQkJZndfaW5mbyA9ICJkb3dubG9hZGluZyBmaXJtd2FyZSB2ZXJzaW9uICg4MDI1MSkiOworCQkJZndfbmFtZQk9ICJlZGdlcG9ydC9kb3duMi5mdyI7CiAJCQlicmVhazsKIAogCQljYXNlIEVER0VfRE9XTkxPQURfRklMRV9OT05FOgpAQCAtMjc5NywxNiArMjc2NSwzNiBAQAogCQkJcmV0dXJuOwogCX0KIAorCXJlc3BvbnNlID0gcmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgZndfbmFtZSwKKwkJCQkgICAgJmVkZ2Vfc2VyaWFsLT5zZXJpYWwtPmRldi0+ZGV2KTsKKwlpZiAocmVzcG9uc2UpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBpbWFnZSBcIiVzXCIgZXJyICVkXG4iLAorCQkgICAgICAgZndfbmFtZSwgcmVzcG9uc2UpOworCQlyZXR1cm47CisJfQogCi0JZm9yICg7OykgewotCQlyZWNvcmQgPSAoc3RydWN0IGVkZ2VfZmlybXdhcmVfaW1hZ2VfcmVjb3JkICopZmlybXdhcmU7Ci0JCXJlc3BvbnNlID0gc3JhbV93cml0ZSAoZWRnZV9zZXJpYWwtPnNlcmlhbCwgbGUxNl90b19jcHUocmVjb3JkLT5FeHRBZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5BZGRyKSwgbGUxNl90b19jcHUocmVjb3JkLT5MZW4pLCAmcmVjb3JkLT5EYXRhWzBdKTsKKwlyZWMgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CisJYnVpbGQgPSAocmVjLT5kYXRhWzJdIDw8IDgpIHwgcmVjLT5kYXRhWzNdOworCisJZGJnKCIlcyAlZC4lZC4lZCIsIGZ3X2luZm8sIHJlYy0+ZGF0YVswXSwgcmVjLT5kYXRhWzFdLCBidWlsZCk7CisKKwllZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlTWFqb3JWZXJzaW9uID0gZnctPmRhdGFbMF07CisJZWRnZV9zZXJpYWwtPnByb2R1Y3RfaW5mby5GaXJtd2FyZU1pbm9yVmVyc2lvbiA9IGZ3LT5kYXRhWzFdOworCWVkZ2Vfc2VyaWFsLT5wcm9kdWN0X2luZm8uRmlybXdhcmVCdWlsZE51bWJlciA9IGNwdV90b19sZTE2KGJ1aWxkKTsKKworCWZvciAocmVjID0gaWhleF9uZXh0X2JpbnJlYyhyZWMpOyByZWM7CisJICAgICByZWMgPSBpaGV4X25leHRfYmlucmVjKHJlYykpIHsKKwkJT3BlcmFkZHIgPSBiZTMyX3RvX2NwdShyZWMtPmFkZHIpOworCQlyZXNwb25zZSA9IHNyYW1fd3JpdGUoZWRnZV9zZXJpYWwtPnNlcmlhbCwKKwkJCQkgICAgIE9wZXJhZGRyID4+IDE2LAorCQkJCSAgICAgT3BlcmFkZHIgJiAweEZGRkYsCisJCQkJICAgICBiZTE2X3RvX2NwdShyZWMtPmxlbiksCisJCQkJICAgICAmcmVjLT5kYXRhWzBdKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewotCQkJZGV2X2VycigmZWRnZV9zZXJpYWwtPnNlcmlhbC0+ZGV2LT5kZXYsICJzcmFtX3dyaXRlIGZhaWxlZCAoJXgsICV4LCAlZClcbiIsIGxlMTZfdG9fY3B1KHJlY29yZC0+RXh0QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+QWRkciksIGxlMTZfdG9fY3B1KHJlY29yZC0+TGVuKSk7Ci0JCQlicmVhazsKLQkJfQotCQlmaXJtd2FyZSArPSBzaXplb2YgKHN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCkgKyBsZTE2X3RvX2NwdShyZWNvcmQtPkxlbik7Ci0JCWlmIChmaXJtd2FyZSA+PSAmRmlybXdhcmVJbWFnZVtJbWFnZVNpemVdKSB7CisJCQlkZXZfZXJyKCZlZGdlX3NlcmlhbC0+c2VyaWFsLT5kZXYtPmRldiwKKwkJCQkic3JhbV93cml0ZSBmYWlsZWQgKCV4LCAleCwgJWQpXG4iLAorCQkJCU9wZXJhZGRyID4+IDE2LCBPcGVyYWRkciAmIDB4RkZGRiwKKwkJCQliZTE2X3RvX2NwdShyZWMtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KIAl9CkBAIC0yODE3LDYgKzI4MDUsNyBAQAogCQkJCSAgICBVU0JfUkVRVUVTVF9JT05fRVhFQ19ETF9DT0RFLCAKIAkJCQkgICAgMHg0MCwgMHg0MDAwLCAweDAwMDEsIE5VTEwsIDAsIDMwMDApOwogCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJcmV0dXJuOwogfQogCkBAIC0yOTAzLDYgKzI4OTIsMTAgQEAKIC8vCQlkYmcoInNldF9jb25maWd1cmF0aW9uIDEiKTsKIC8vCQl1c2Jfc2V0X2NvbmZpZ3VyYXRpb24gKGRldiwgMSk7CiAJfQorCWRiZygiICBGaXJtd2FyZU1ham9yVmVyc2lvbiAgJWQuJWQuJWQiLAorCSAgICBlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlTWFqb3JWZXJzaW9uLAorCSAgICBlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlTWlub3JWZXJzaW9uLAorCSAgICBsZTE2X3RvX2NwdShlZGdlX3NlcmlhbC0+cHJvZHVjdF9pbmZvLkZpcm13YXJlQnVpbGROdW1iZXIpKTsKIAogCS8qIHdlIHNldCB1cCB0aGUgcG9pbnRlcnMgdG8gdGhlIGVuZHBvaW50cyBpbiB0aGUgZWRnZV9vcGVuIGZ1bmN0aW9uLCAKIAkgKiBhcyB0aGUgc3RydWN0dXJlcyBhcmVuJ3QgY3JlYXRlZCB5ZXQuICovCkBAIC0zMTE1LDYgKzMxMDgsMTAgQEAKIE1PRFVMRV9BVVRIT1IoIERSSVZFUl9BVVRIT1IgKTsKIE1PRFVMRV9ERVNDUklQVElPTiggRFJJVkVSX0RFU0MgKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvYm9vdC5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlZGdlcG9ydC9ib290Mi5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJlZGdlcG9ydC9kb3duLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImVkZ2Vwb3J0L2Rvd24yLmZ3Iik7CiAKIG1vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdC5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDk5ZmFmYS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfYm9vdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTU2ICswLDAgQEAKLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLS8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQotLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgotLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0vLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLS8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0KLQotLy9JbWFnZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbgotI2lmICFkZWZpbmVkKERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQpCi0jZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIgIERhdGFbMF07Ci0JfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0KLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gewotCQl1bnNpZ25lZCBjaGFyCSBNYWpvclZlcnNpb247Ci0JCXVuc2lnbmVkIGNoYXIgIE1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQgQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCQlGaXJtd2FyZUltYWdlCi0jZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlGaXJtd2FyZUltYWdlVmVyc2lvbgotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIElNQUdFX0FSUkFZX05BTUVbXSA9IHsKLQotLy8gU2VnbWVudCAjMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwMCwgTGVuZ3RoIDYKLTB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4ODAsIDB4MDIsIDB4MDAsIDB4MDMsIAotCi0vLyBTZWdtZW50ICMyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDBiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgwYiwgCi0KLS8vIFNlZ21lbnQgIzMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweGI4LCAKLQotLy8gU2VnbWVudCAjNCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAxYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDFiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MWIsIAotCi0vLyBTZWdtZW50ICM1LCBTdGFydCBBZGRyZXNzIDAwZmYwMDIzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MjMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyMywgCi0KLS8vIFNlZ21lbnQgIzYsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMmIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDJiLCAKLQotLy8gU2VnbWVudCAjNywgU3RhcnQgQWRkcmVzcyAwMGZmMDAzMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDMzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MzMsIAotCi0vLyBTZWdtZW50ICM4LCBTdGFydCBBZGRyZXNzIDAwZmYwMDNiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4M2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzYiwgCi0KLS8vIFNlZ21lbnQgIzksIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNDMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweGJkLCAKLQotLy8gU2VnbWVudCAjMTAsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweGQwLCAKLQotLy8gU2VnbWVudCAjMTEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg1MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAxLCAweDIxLCAKLQotLy8gU2VnbWVudCAjMTIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwN2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg3YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDdiLCAKLQotLy8gU2VnbWVudCAjMTMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwODAsIExlbmd0aCAzNTgKLTB4ZmYsMHgwMCwweDgwLDB4MDAsMHg2NiwweDAxLAotICAgIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4MjMsIDB4N2UsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTAsIAotICAgIDB4MDAsIDB4MTIsIDB4MDcsIDB4NWYsIDB4NjksIDB4MjAsIDB4MDAsIDB4MGEsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NzgsIDB4MDUsIDB4NzUsIDB4OTAsIAotICAgIDB4MGQsIDB4ODAsIDB4MDMsIDB4NzUsIDB4OTAsIDB4MWQsIDB4ZDIsIDB4YjUsIDB4N2UsIDB4MDAsIDB4MDAsIDB4YTUsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4YTgsIAotICAgIDB4MDAsIDB4NzUsIDB4YjEsIDB4MDAsIDB4YTksIDB4ZDUsIDB4ODcsIDB4Y2EsIDB4MjksIDB4MTIsIDB4MDksIDB4Y2MsIDB4MTIsIDB4MDksIDB4YTAsIDB4ZjUsIAotICAgIDB4MDksIDB4N2EsIDB4YTEsIDB4MjAsIDB4MTIsIDB4MDEsIDB4ZTYsIDB4ZGEsIDB4MjksIDB4YTksIDB4ZDAsIDB4YzcsIDB4N2UsIDB4MDAsIDB4MDUsIDB4N2EsIAotICAgIDB4MDEsIDB4ZjEsIDB4NzUsIDB4ZTEsIDB4MTAsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIDB4ZDcsIDB4ZTQsIDB4YTUsIDB4ZDgsIDB4ZjEsIDB4NzUsIDB4ZjEsIAotICAgIDB4MDAsIDB4NzUsIDB4ZTEsIDB4M2YsIDB4NzUsIDB4YTIsIDB4MDMsIDB4NzUsIDB4YTMsIDB4MDAsIDB4NzUsIDB4YzAsIDB4MDAsIDB4NzUsIDB4YzEsIDB4MDAsIAotICAgIDB4YTksIDB4ZDEsIDB4YjEsIDB4YTksIDB4ZDAsIDB4YjEsIDB4YTksIDB4ZDUsIDB4ZDMsIDB4ZDIsIDB4YWYsIDB4ZTQsIDB4N2UsIDB4MDQsIDB4MjgsIDB4MDAsIAotICAgIDB4OGQsIDB4ZWYsIDB4MWIsIDB4MDQsIDB4NzgsIDB4ZmEsIDB4MDQsIDB4YTksIDB4MzQsIDB4ZDMsIDB4MDMsIDB4MzAsIDB4ZTAsIDB4ZWUsIDB4YmUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDAsIDB4NzgsIDB4MDUsIDB4NjMsIDB4OTAsIDB4MzAsIDB4ODAsIDB4ZTMsIDB4YjIsIDB4OTUsIDB4ODAsIDB4ZGYsIDB4YmUsIDB4YjAsIDB4MDIsIAotICAgIDB4MjIsIDB4YzAsIDB4ZDAsIDB4YTksIDB4MjAsIDB4ZGYsIDB4MGYsIDB4YTksIDB4MzEsIDB4ZGYsIDB4MDMsIDB4MDIsIDB4MDEsIDB4YjUsIDB4NzUsIDB4MDgsIAotICAgIDB4MDEsIDB4MTIsIDB4MDgsIDB4MzMsIDB4ODAsIDB4ZmUsIDB4NzUsIDB4MDgsIDB4ZmUsIDB4MTIsIDB4MDgsIDB4MzMsIDB4NzUsIDB4YTgsIDB4MDAsIDB4N2UsIAotICAgIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4NGIsIDB4MzAsIDB4MDEsIDB4NDYsIDB4YzIsIDB4OTIsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIAotICAgIDB4MTEsIDB4MDksIDB4NzQsIDB4MDgsIDB4MTksIDB4YjIsIDB4MDAsIDB4MTAsIDB4NzQsIDB4MGUsIDB4MTksIDB4YjIsIDB4MDAsIDB4MDQsIDB4MmUsIDB4MjQsIAotICAgIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZWQsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MDksIDB4ZTQsIDB4ZDUsIDB4ZTAsIDB4ZmQsIAotICAgIDB4MDksIDB4YjIsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MGEsIDB4MDksIDB4YjIsIDB4MDAsIDB4MDAsIDB4MDksIDB4YjIsIDB4MDAsIDB4MTgsIDB4ODAsIAotICAgIDB4ZWIsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZTQsIDB4NDMsIDB4OTAsIDB4MzAsIDB4ZDIsIDB4YWEsIDB4ODAsIDB4MDUsIDB4ZDIsIAotICAgIDB4YWEsIDB4NDMsIDB4OTAsIDB4MzQsIDB4ZDIsIDB4YWYsIDB4YTksIDB4ZDEsIDB4ODcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4YTksIDB4MTEsIAotICAgIDB4ZGYsIDB4MDMsIDB4YTksIDB4ZDIsIDB4ZGYsIDB4NzUsIDB4MDgsIDB4ZmYsIDB4MTIsIDB4MDgsIDB4MzMsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIAotICAgIDB4Y2EsIDB4MDYsIDB4ODMsIDB4MDAsIDB4MzIsIDB4ZDAsIDB4ZDAsIDB4MzIsIDB4YzIsIDB4OGIsIDB4YzIsIDB4YWEsIDB4MzIsIDB4NzUsIDB4MDgsIDB4MDgsIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4YTksIDB4YzAsIDB4YjEsIDB4YTksIDB4YzUsIDB4ZDMsIDB4YTksIDB4YzYsIDB4ZDMsIDB4YTksIDB4ZDIsIDB4YjEsIDB4MzIsIAotICAgIDB4Y2EsIDB4YjgsIDB4NzUsIDB4MDgsIDB4MDIsIDB4MTIsIDB4MDgsIDB4MzMsIDB4ZTUsIDB4YzAsIDB4NTQsIDB4MDMsIDB4NjgsIDB4MDUsIDB4MTIsIDB4MDEsIAotICAgIDB4ZWUsIDB4ODAsIDB4ZjUsIDB4ZGEsIDB4YjgsIDB4MzIsIAotCi0vLyBTZWdtZW50ICMxNCwgU3RhcnQgQWRkcmVzcyAwMGZmMWJjYSwgTGVuZ3RoIDEKLTB4ZmYsMHgwMCwweGNhLDB4MWIsMHgwMSwweDAwLAotICAgIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDFlNiwgTGVuZ3RoIDE2MTMKLTB4ZmYsMHgwMCwweGU2LDB4MDEsMHg0ZCwweDA2LAotICAgIDB4ZTQsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4MDIsIDB4MDIsIDB4NjMsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIAotICAgIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4YzAsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmIsIAotICAgIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MTksIDB4YjQsIDB4MDEsIDB4MTYsIDB4MzAsIDB4YzAsIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4MDIsIAotICAgIDB4NGQsIDB4ODAsIDB4MWYsIDB4MzAsIDB4YzEsIDB4MWMsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4MDIsIDB4ZGUsIDB4ODAsIDB4MTQsIDB4MzAsIDB4YzEsIAotICAgIDB4MDgsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIDB4MDIsIDB4ZGUsIDB4ODAsIDB4MDksIDB4MzAsIDB4YzAsIDB4MDYsIDB4NzUsIDB4ZjEsIDB4MDAsIDB4MTIsIAotICAgIDB4MDIsIDB4NGQsIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIAotICAgIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4YzIsIDB4YzAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmIsIDB4YjQsIDB4MDIsIDB4MDcsIAotICAgIDB4MTIsIDB4MDIsIDB4NmYsIDB4MDIsIDB4MDIsIDB4NjMsIDB4MjIsIDB4YjQsIDB4MDEsIDB4ZmMsIDB4MDIsIDB4MDIsIDB4YTksIDB4N2UsIDB4MDAsIDB4MDAsIAotICAgIDB4N2EsIDB4MDMsIDB4MDEsIDB4MmIsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MmMsIDB4MjIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjMsIDB4NTQsIDB4NjAsIDB4NjAsIAotICAgIDB4MDUsIDB4YjQsIDB4NDAsIDB4MTUsIDB4ODAsIDB4MTMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDUsIDB4MGMsIDB4NzUsIDB4MDgsIDB4NzEsIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4ZjUsIDB4OGYsIDB4MjIsIDB4NzUsIDB4ZjYsIDB4MDAsIDB4MjIsIDB4YmUsIDB4NTcsIAotICAgIDB4MDEsIDB4MjksIDB4MjgsIDB4MDQsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjksIDB4N2EsIDB4MGYsIDB4MDEsIDB4MmUsIDB4N2EsIDB4NTcsIDB4MDEsIDB4MzIsIAotICAgIDB4MDIsIDB4MDIsIDB4YTksIDB4N2UsIDB4ZWYsIDB4MDEsIDB4MmUsIDB4N2UsIDB4ZjcsIDB4MDEsIDB4MzIsIDB4N2UsIDB4MDcsIDB4MDEsIDB4MzIsIDB4NGQsIAotICAgIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2UsIDB4ZWIsIDB4YjAsIDB4ZjUsIDB4ZjMsIDB4YTMsIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIAotICAgIDB4NjgsIDB4MDQsIDB4YTUsIDB4YjgsIDB4MDgsIDB4ZjAsIDB4N2EsIDB4ZWYsIDB4MDEsIDB4MmUsIDB4N2EsIDB4ZjcsIDB4MDEsIDB4MzIsIDB4NzUsIDB4MDgsIAotICAgIDB4MDYsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MDEsIDB4ZjYsIDB4MjIsIDB4YzIsIDB4YzEsIDB4NzUsIDB4MDgsIDB4MDMsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4YTksIDB4MzYsIDB4ZTIsIDB4MTYsIDB4ZTUsIDB4ZjUsIDB4NTQsIDB4YzAsIDB4NjgsIDB4MDcsIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIDB4MjcsIDB4ZjQsIAotICAgIDB4ZmMsIDB4NTMsIDB4ZTEsIDB4M2YsIDB4NDMsIDB4ZjIsIDB4ODgsIDB4MDIsIDB4MDMsIDB4NTUsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmMsIDB4YjQsIDB4MDIsIAotICAgIDB4MGYsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmMsIDB4N2EsIDB4YjMsIDB4MDEsIDB4MmIsIDB4MjIsIAotICAgIDB4YjQsIDB4MDEsIDB4MzksIDB4N2UsIDB4MjEsIDB4ZTYsIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MmQsIDB4MmMsIDB4MjEsIDB4N2EsIDB4MjMsIAotICAgIDB4MDEsIDB4MmQsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MDQsIDB4MDEsIDB4MzQsIDB4ZTUsIDB4ZTMsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIAotICAgIDB4YTUsIDB4ZGIsIDB4ZjYsIDB4YTksIDB4ZDQsIDB4ZTQsIDB4NzUsIDB4MDgsIDB4NzAsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MmQsIAotICAgIDB4N2UsIDB4YTMsIDB4MDEsIDB4MmEsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDMsIDB4MTIsIDB4MDMsIDB4ZWMsIDB4MjIsIDB4MDIsIDB4MDcsIDB4NTUsIDB4ZTUsIAotICAgIDB4ZTYsIDB4YjQsIDB4MDgsIDB4NjUsIDB4YTksIDB4YzQsIDB4ZTIsIDB4N2UsIDB4MDEsIDB4ZTMsIDB4N2UsIDB4MTEsIDB4ZTMsIDB4N2UsIDB4MzEsIDB4ZTMsIAotICAgIDB4N2UsIDB4MjEsIDB4ZTMsIDB4N2UsIDB4NTEsIDB4ZTMsIDB4N2UsIDB4NDEsIDB4ZTMsIDB4N2UsIDB4NzEsIDB4ZTMsIDB4N2UsIDB4NjEsIDB4ZTMsIDB4N2EsIAotICAgIDB4MGYsIDB4MDEsIDB4MjMsIDB4N2EsIDB4MWYsIDB4MDEsIDB4MjcsIDB4NzUsIDB4MDgsIDB4MDQsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MDEsIDB4MDgsIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MjEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIAotICAgIDB4MzEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4NDEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4NTEsIDB4MDgsIDB4MTIsIDB4MDgsIAotICAgIDB4MzMsIDB4N2EsIDB4NjEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4NzEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4YTksIDB4ZDQsIDB4ZTQsIAotICAgIDB4YTksIDB4ZDcsIDB4ZjQsIDB4YTksIDB4YzYsIDB4ZTIsIDB4MTIsIDB4MDMsIDB4YzAsIDB4MjIsIDB4NmQsIDB4MDAsIDB4N2UsIDB4MTQsIDB4MDEsIDB4MDIsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4MzIsIDB4N2EsIDB4MDMsIDB4MDEsIDB4MmQsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjMsIDB4MjAsIDB4ZTcsIDB4MGYsIDB4N2EsIAotICAgIDB4MjMsIDB4MDEsIDB4MmMsIDB4N2EsIDB4MzMsIDB4MDEsIDB4MmIsIDB4YmUsIDB4MDcsIDB4MDEsIDB4MjksIDB4NjgsIDB4MDksIDB4MjIsIDB4N2EsIDB4MzMsIAotICAgIDB4MDEsIDB4MmMsIDB4N2EsIDB4MjMsIDB4MDEsIDB4MmIsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjMsIDB4NTQsIDB4ZTMsIDB4MjMsIDB4MjMsIDB4MzAsIDB4ZTAsIAotICAgIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIDB4MDYsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4MDIsIDB4MDcsIAotICAgIDB4NTUsIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4MDQsIDB4MTgsIDB4NzUsIDB4ODQsIAotICAgIDB4ZmYsIDB4NzMsIDB4MDIsIDB4MDUsIDB4NmMsIDB4MDIsIDB4MDQsIDB4NjAsIDB4MDIsIDB4MDYsIDB4MDksIDB4MDIsIDB4MDYsIDB4MjQsIDB4MDIsIDB4MDUsIAotICAgIDB4MDUsIDB4MDIsIDB4MDQsIDB4YzYsIDB4MDIsIDB4MDYsIDB4M2QsIDB4MDIsIDB4MDYsIDB4M2QsIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDAsIAotICAgIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDAsIDB4MDIsIAotICAgIDB4MDYsIDB4NDAsIDB4MDIsIDB4MDYsIDB4NDYsIDB4MDIsIDB4MDYsIDB4ZmEsIDB4MDIsIDB4MDYsIDB4NDMsIDB4MDIsIDB4MDYsIDB4NDMsIDB4MDIsIDB4MDYsIAotICAgIDB4NDMsIDB4MDIsIDB4MDYsIDB4NDMsIDB4MDIsIDB4MDYsIDB4NDMsIDB4MDIsIDB4MDYsIDB4NDMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDYsIAotICAgIDB4MmEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIDB4NjAsIDB4NTYsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MDEsIDB4MjYsIDB4N2UsIDB4MTcsIDB4MDEsIAotICAgIDB4MjcsIDB4NzUsIDB4MDgsIDB4NzIsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MTEsIDB4MDgsIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4MTIsIDB4MDcsIDB4NWYsIDB4NDAsIDB4MzUsIDB4MDIsIDB4MDIsIDB4OTQsIDB4YjQsIDB4MDgsIDB4MTAsIDB4NzUsIDB4MDgsIAotICAgIDB4NzQsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIDB4MjIsIDB4YjQsIDB4MDAsIAotICAgIDB4MWMsIDB4NzUsIDB4MDgsIDB4NzUsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4NzUsIDB4ZjMsIAotICAgIDB4MDIsIDB4ODAsIDB4MDMsIDB4NzUsIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4MDcsIDB4NTUsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDAsIDB4MzUsIDB4NzUsIDB4MDgsIDB4NzYsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIAotICAgIDB4MjgsIDB4NTQsIDB4MGYsIDB4ZjUsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4MjAsIDB4ZTcsIDB4MDksIDB4ZTUsIDB4ZTEsIDB4MzAsIDB4ZTcsIAotICAgIDB4MGQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MGIsIDB4ZTUsIDB4ZTEsIDB4MzAsIDB4ZTYsIDB4MDQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MDIsIDB4NzQsIDB4MDAsIAotICAgIDB4NTMsIDB4ZjEsIDB4ODAsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjMsIDB4MDAsIDB4NzUsIDB4ZjYsIDB4MDIsIDB4MjIsIDB4MDIsIDB4MDcsIDB4NTUsIDB4YzAsIAotICAgIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4NTQsIDB4MGYsIDB4NDIsIDB4ZjEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDAsIDB4NDUsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDEsIDB4MjQsIDB4NzUsIDB4MDgsIDB4NzcsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIAotICAgIDB4MjgsIDB4NTQsIDB4MGYsIDB4NzgsIDB4MDUsIDB4NTMsIDB4ZTEsIDB4M2YsIDB4ODAsIDB4MzcsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4MjAsIDB4ZTcsIAotICAgIDB4MDUsIDB4NTMsIDB4ZTEsIDB4N2YsIDB4ODAsIDB4MmIsIDB4NTMsIDB4ZTEsIDB4YmYsIDB4ODAsIDB4MjYsIDB4YjQsIDB4MDMsIDB4MTcsIDB4NzUsIDB4MDgsIAotICAgIDB4NzgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjgsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4NDMsIDB4ZTEsIDB4ODAsIDB4ODAsIDB4MTEsIAotICAgIDB4NDMsIDB4ZTEsIDB4NDAsIDB4ODAsIDB4MGMsIDB4NDMsIDB4ZTEsIDB4YzAsIDB4ZDAsIDB4ZjEsIDB4NzUsIDB4MDgsIDB4MDcsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4MjIsIDB4ZDAsIDB4ZjEsIDB4MDIsIDB4MDIsIDB4OTAsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDksIDB4MjMsIDB4NzUsIDB4MDgsIDB4NzksIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MTEsIDB4Y2EsIDB4YjgsIDB4YzAsIAotICAgIDB4ZjEsIDB4MTIsIDB4MDEsIDB4MWQsIDB4ZDAsIDB4ZjEsIDB4ZGEsIDB4YjgsIDB4NTAsIDB4NzYsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIAotICAgIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MDgsIDB4N2EsIDB4MTIsIDB4MDgsIDB4MzMsIDB4ODAsIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MDgsIAotICAgIDB4N2IsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDEsIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIAotICAgIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4NDYsIDB4YjQsIDB4MDEsIDB4MTksIDB4NzUsIDB4MDgsIDB4N2MsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4YjQsIDB4MDEsIDB4MzksIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjUsIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIAotICAgIDB4MDEsIDB4MjYsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjcsIDB4NzUsIDB4MDgsIDB4NzMsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2EsIDB4MDEsIDB4MDgsIDB4MTIsIAotICAgIDB4MDgsIDB4MzMsIDB4N2EsIDB4MTEsIDB4MDgsIDB4MTIsIDB4MDgsIDB4MzMsIDB4MTIsIDB4MDcsIDB4OGIsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDIsIDB4OTAsIAotICAgIDB4MDIsIDB4MDcsIDB4NTUsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MGIsIDB4ZjYsIDB4NzUsIDB4MDgsIDB4N2QsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4N2UsIDB4YTMsIDB4MDEsIDB4MjgsIDB4NGMsIDB4YWIsIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4N2UsIDB4YjMsIAotICAgIDB4MDEsIDB4MjQsIDB4YjQsIDB4MGEsIDB4ZGIsIDB4NzUsIDB4MDgsIDB4N2UsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjYsIDB4NzAsIAotICAgIDB4Y2YsIDB4ZjUsIDB4ZjMsIDB4NzUsIDB4ZjYsIDB4MDEsIDB4MjIsIDB4MDIsIDB4MDcsIDB4NTUsIDB4MDIsIDB4MDcsIDB4NTUsIDB4MDIsIDB4MDcsIDB4NTUsIAotICAgIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDQsIDB4MjAsIDB4NzUsIDB4MDgsIDB4YzMsIDB4MTIsIDB4MDgsIDB4MzMsIDB4N2UsIDB4MDQsIDB4MDAsIAotICAgIDB4MDEsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjUsIDB4N2UsIDB4MTgsIDB4MDEsIDB4MzQsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIDB4MDEsIAotICAgIDB4MjksIDB4MTIsIDB4MDgsIDB4M2YsIDB4MDIsIDB4MDYsIDB4ZjQsIDB4YjQsIDB4MDYsIDB4M2EsIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MDEsIDB4MjUsIDB4N2UsIDB4NzgsIAotICAgIDB4MDEsIDB4MzQsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MjksIDB4NzUsIDB4MDgsIDB4YzEsIDB4MTIsIDB4MDgsIDB4MzMsIAotICAgIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4MDgsIDB4ZDYsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIAotICAgIDB4NDAsIDB4NGYsIDB4ODAsIDB4NGEsIDB4YjQsIDB4MDAsIDB4MWMsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4MDIsIDB4OTAsIDB4ZTQsIAotICAgIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIDB4MDYsIAotICAgIDB4MDAsIDB4MDAsIDB4MzIsIDB4YjQsIDB4MDksIDB4MTIsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjUsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4YTksIDB4ZDIsIAotICAgIDB4YjEsIDB4ODAsIDB4MDMsIDB4YTksIDB4YzIsIDB4YjEsIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MDEsIAotICAgIDB4MjcsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjUsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4MDIsIAotICAgIDB4OTAsIDB4MDIsIDB4MDcsIDB4NTUsIDB4N2UsIDB4YjMsIDB4MDEsIDB4MjQsIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MDgsIDB4YzIsIDB4MTIsIDB4MDgsIAotICAgIDB4MzMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MDEsIDB4MjUsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjksIDB4MDIsIDB4MDIsIDB4OTQsIAotICAgIDB4YjQsIDB4MDUsIDB4MzksIDB4NzUsIDB4MDgsIDB4YzAsIDB4MTIsIDB4MDgsIDB4MzMsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIAotICAgIDB4ZDUsIDB4ODcsIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzQsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4MjUsIDB4N2UsIDB4NDcsIDB4MDEsIDB4MjksIDB4MTIsIDB4MDgsIDB4M2YsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4N2UsIDB4MDgsIDB4MDEsIAotICAgIDB4MzQsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NTcsIDB4MDEsIDB4MjksIDB4MDIsIDB4MDIsIDB4OTQsIDB4MDIsIDB4MDcsIDB4NTUsIDB4NzUsIAotICAgIDB4MDgsIDB4MDcsIDB4MTIsIDB4MDgsIDB4MzMsIDB4NDMsIDB4ZTEsIDB4YzAsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIAotICAgIDB4ZDUsIDB4ODcsIDB4MTIsIDB4MDcsIDB4Y2EsIDB4NDAsIDB4MTksIDB4N2UsIDB4MDgsIDB4MDEsIDB4MzQsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIAotICAgIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4MDgsIDB4M2YsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIAotICAgIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzAsIDB4ODcsIDB4YzIsIDB4YWYsIDB4YTksIDB4ZDUsIDB4ODcsIDB4MTIsIDB4MDcsIAotICAgIDB4Y2EsIDB4NDAsIDB4MmIsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIDB4MDEsIAotICAgIDB4MzQsIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MDEsIDB4MjksIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTEsIDB4NzUsIDB4MDgsIDB4YzEsIAotICAgIDB4MTIsIDB4MDgsIDB4MzMsIDB4MTIsIDB4MDgsIDB4ZDYsIDB4NDAsIDB4MDYsIDB4ZDAsIDB4ODcsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4ZDAsIDB4ODcsIAotICAgIDB4ZDAsIDB4YTgsIDB4ZDMsIDB4MjIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIAotICAgIDB4ZjAsIDB4N2QsIDB4NjIsIDB4N2QsIDB4NzUsIDB4N2QsIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIAotICAgIDB4NTAsIDB4NDksIDB4M2UsIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIAotICAgIDB4MDIsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIAotICAgIDB4NTEsIDB4MmQsIDB4MzUsIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIAotICAgIDB4YmUsIDB4NDQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIAotICAgIDB4NDQsIDB4MDAsIDB4ZmYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgRVhDTFVERUQgU3RhcnQgQWRkcmVzcyAwMGZmN2MwMCwgTGVuZ3RoIDE5OQotCi0KLS8vIFNlZ21lbnQgIzE3LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmY3ZjAwLCBMZW5ndGggMTkyCi0KLQotLy8gU2VnbWVudCAjMTcsIFN0YXJ0IEFkZHJlc3MgMDBmZjdmYzAsIExlbmd0aCA2NAotMHhmZiwweDAwLDB4YzAsMHg3ZiwweDQwLDB4MDAsCi0gICAgMHg0MCwgMHgwMSwgMHgwMiwgMHgwMCwgMHhjYSwgMHgxYiwgMHgwMSwgMHgwYywgMHgwMiwgMHgwMCwgMHgwMCwgMHg3YywgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhmMSwgMHg3ZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgCi0KLS8vIFNlZ21lbnQgIzE4LCBTdGFydCBBZGRyZXNzIDAwZmYwODMzLCBMZW5ndGggNTAxNQotMHhmZiwweDAwLDB4MzMsMHgwOCwweDk3LDB4MTMsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgwOCwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg4MCwgMHg1MCwgMHgwYiwgMHgxYSwgCi0gICAgMHg2MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg3MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg4MCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHg5MCwgCi0gICAgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhhMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhiMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgxYSwgMHhjMCwgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgxYSwgMHhkMCwgMHgwYiwgMHgzNSwgMHgxYiwgMHgwYSwgMHg2MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg3MCwgMHgwYiwgMHgxNSwgCi0gICAgMHgxYiwgMHgwYSwgMHg4MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHg5MCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhhMCwgMHgwYiwgMHgxNSwgMHgxYiwgCi0gICAgMHgwYSwgMHhiMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhjMCwgMHgwYiwgMHgxNSwgMHgxYiwgMHgwYSwgMHhkMCwgMHgwYiwgMHgxNSwgMHg5ZSwgMHg0NCwgCi0gICAgMHgwMCwgMHgxMCwgMHg1MCwgMHhhYSwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwZSwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgMHgwYiwgMHhjMCwgCi0gICAgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgMHhmYywgMHg3YywgCi0gICAgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgMHg0NCwgMHgwMCwgCi0gICAgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmYSwgMHg3ZiwgCi0gICAgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgMHg0MCwgMHg5ZCwgCi0gICAgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHgwOSwgMHgwMCwgMHhkYSwgMHg3OSwgCi0gICAgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg0MywgMHg5MCwgMHgzMCwgCi0gICAgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgMHhiNSwgCi0gICAgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHg3MCwgMHg1MCwgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgMHg2ZCwgMHg3NywgCi0gICAgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgMHgwMCwgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZiwgCi0gICAgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgMHgxYiwgMHg1NCwgCi0gICAgMHg3OCwgMHhmNSwgMHg4MCwgMHgyYywgMHg2ZCwgMHgwMCwgMHg3YywgMHgyMCwgMHg3ZiwgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgMHg5ZiwgMHgyMCwgCi0gICAgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgwMSwgMHg3OCwgMHgxNiwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgMHhhNSwgMHhkYiwgCi0gICAgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwMywgMHg2MywgMHg5MCwgMHgzMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MywgMHhjMiwgMHhkNywgMHgyMiwgCi0gICAgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwMiwgMHgwMSwgCi0gICAgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgCi0gICAgMHgwNCwgMHgwMCwgMHgwOCwgMHgxMCwgMHgwMiwgMHgxMCwgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHg3ZSwgMHgxOCwgMHg3ZiwgCi0gICAgMHhiZCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgwYiwgMHgxYSwgMHgwMCwgMHhiZSwgMHgxMCwgMHgxNCwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgMHgyMywgCi0gICAgMHg3ZSwgMHgxOCwgMHgwOSwgMHg3NiwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgMHhhNSwgCi0gICAgMHhiOCwgMHgwMiwgMHgwMywgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHhlYywgMHgwMCwgCi0gICAgMHhmZiwgMHhlMCwgMHhmNSwgMHgyMiwgMHg1NCwgMHhjMCwgMHg2OCwgMHgxNiwgMHg3ZSwgMHhlOCwgMHg3ZiwgMHhiZSwgMHg3YSwgMHhlYywgMHgwMCwgMHhmZiwgCi0gICAgMHhlMCwgMHg2MCwgMHgwYywgMHgxMiwgMHgwOSwgMHhhMCwgMHhmNSwgMHgwOSwgMHg3YSwgMHhhMSwgMHgyMCwgMHgwMiwgMHgwZiwgMHgwYSwgMHgyMiwgMHhjMiwgCi0gICAgMHg5NSwgMHhkMiwgMHg5NCwgMHgxMiwgMHgxOSwgMHhmYiwgMHg1MywgMHg5MCwgMHhjZiwgMHgxMiwgMHgxOSwgMHhmYiwgMHg4MCwgMHhmMSwgMHgwZCwgMHgwYSwgCi0gICAgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwZCwgCi0gICAgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgMHgwYSwgCi0gICAgMHg0NSwgMHg2NCwgMHg2NywgMHg2NSwgMHg3MCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgyZiwgMHgzNCwgMHgyMCwgMHgyZCwgMHgyMCwgMHg0OCwgMHg2MSwgMHg3MiwgCi0gICAgMHg2NCwgMHg3NywgMHg2MSwgMHg3MiwgMHg2NSwgMHgyMCwgMHg0NCwgMHg2OSwgMHg2MSwgMHg2NywgMHg2ZSwgMHg2ZiwgMHg3MywgMHg3NCwgMHg2OSwgMHg2MywgCi0gICAgMHg3MywgMHgyYywgMHgyMCwgMHg1MiwgMHg2NSwgMHg3NiwgMHgyMCwgMHgzMSwgMHgyZSwgMHgzMCwgMHgzMCwgMHgzYiwgMHgyMCwgMHg0MywgMHg2ZiwgMHg3MCwgCi0gICAgMHg3OSwgMHg3MiwgMHg2OSwgMHg2NywgMHg2OCwgMHg3NCwgMHgyMCwgMHgzMSwgMHgzOSwgMHgzOSwgMHgzOCwgMHgyMCwgMHg0OSwgMHg2ZSwgMHg3MywgMHg2OSwgCi0gICAgMHg2NCwgMHg2NSwgMHgyMCwgMHg0ZiwgMHg3NSwgMHg3NCwgMHgyMCwgMHg0ZSwgMHg2NSwgMHg3NCwgMHg3NywgMHg2ZiwgMHg3MiwgMHg2YiwgMHg3MywgMHgwZCwgCi0gICAgMHgwYSwgMHgwMCwgMHg1MCwgMHg2MSwgMHg3MywgMHg3MywgMHgwMCwgMHg0NiwgMHg0MSwgMHg0OSwgMHg0YywgMHgyMCwgMHgyMSwgMHgyMSwgMHgwMCwgMHg1MCwgCi0gICAgMHg2MSwgMHg3MywgMHg3MywgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHg0NiwgMHg0MSwgMHg0OSwgMHg0YywgMHgyMCwgMHgyMSwgMHgyMSwgMHgyMCwgCi0gICAgMHgwMCwgMHgwZCwgMHgwYSwgMHg0NCwgMHg2NSwgMHg3NCwgMHg2NSwgMHg2MywgMHg3NCwgMHgyMCwgMHg1MiwgMHg2MSwgMHg2ZCwgMHgzYSwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg2MSwgMHg2ZCwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0MSwgMHg2NCwgMHg2NCwgMHg3MiwgMHg2NSwgMHg3MywgMHg3MywgMHgyMCwgMHg2MiwgCi0gICAgMHg2OSwgMHg3NCwgMHgyMCwgMHgzMCwgMHgyZCwgMHgzMSwgMHgzNCwgMHgyMCwgMHg3NCwgMHg2NSwgMHg3MywgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1NywgMHg3MiwgMHg2ZiwgMHg3NCwgMHg2NSwgMHgyMCwgMHg0MSwgCi0gICAgMHg2NCwgMHg2NCwgMHg3MiwgMHg2NSwgMHg3MywgMHg3MywgMHgzYSwgMHgyMCwgMHgzMCwgMHgzMCwgMHgzYSwgMHgwMCwgMHgyMCwgMHgyMCwgMHg3NywgMHg2OSwgCi0gICAgMHg3NCwgMHg2OCwgMHgyMCwgMHg2NCwgMHg2MSwgMHg3NCwgMHg2MSwgMHgzYSwgMHgyMCwgMHgwMCwgMHgyYywgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgCi0gICAgMHg3MiwgMHg2NSwgMHg2MSwgMHg2NCwgMHgzYSwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0ZiwgMHg2ZSwgMHg2NSwgMHgyMCwgMHg2ZiwgMHg3MiwgMHgyMCwgCi0gICAgMHg2MiwgMHg2ZiwgMHg3NCwgMHg2OCwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2NiwgMHg2ZiwgMHg2YywgMHg2YywgCi0gICAgMHg2ZiwgMHg3NywgMHg2OSwgMHg2ZSwgMHg2NywgMHgyMCwgMHg0MSwgMHg2NCwgMHg2NCwgMHg3MiwgMHg2NSwgMHg3MywgMHg3MywgMHgyMCwgMHg2MiwgMHg2OSwgCi0gICAgMHg3NCwgMHg3MywgMHgyMCwgMHg2YywgMHg2OSwgMHg3MywgMHg3NCwgMHg2NSwgMHg2NCwgMHgyMCwgMHg2MSwgMHg3MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2OCwgCi0gICAgMHg2ZiwgMHg3MiwgMHg3NCwgMHg2NSwgMHg2NCwgMHgwZCwgMHgwYSwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg3MywgMHg2ZiwgMHg2ZCwgMHg2NSwgMHg3NCwgMHg2OCwgCi0gICAgMHg2OSwgMHg2ZSwgMHg2NywgMHgzYSwgMHgyMCwgMHgwMCwgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0NCwgMHg2NSwgCi0gICAgMHg3NCwgMHg2NSwgMHg2MywgMHg3NCwgMHgyMCwgMHg1NSwgMHg2MSwgMHg3MiwgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgCi0gICAgMHg1MywgMHg2MywgMHg3MiwgMHg2MSwgMHg3NCwgMHg2MywgMHg2OCwgMHgyMCwgMHg1MCwgMHg2MSwgMHg2NCwgMHgyYywgMHg0NiwgMHg2OSwgMHg0NiwgMHg2ZiwgCi0gICAgMHgyMCwgMHg0NSwgMHg2ZSwgMHg2MSwgMHg2MiwgMHg2YywgMHg2NSwgMHgyMCwgMHgyNiwgMHgyMCwgMHg1MiwgMHg1MywgMHg1NCwgMHgzYSwgMHgyMCwgMHgwMCwgCi0gICAgMHgwZCwgMHgwYSwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHg1NSwgMHg2MSwgMHg3MiwgMHg3NCwgMHgyMCwgMHg1NCwgMHg2NSwgMHg3MywgMHg3NCwgMHg3MywgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHg1MCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzMSwgMHgyMCwgMHgyMCwgMHgyMCwgMHg1MCwgMHg2ZiwgMHg3MiwgMHg3NCwgCi0gICAgMHgzMiwgMHgyMCwgMHgyMCwgMHgyMCwgMHg1MCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzMywgMHgyMCwgMHgyMCwgMHgyMCwgMHg1MCwgMHg2ZiwgMHg3MiwgMHg3NCwgCi0gICAgMHgzNCwgMHgwZCwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgCi0gICAgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgMHgyZCwgCi0gICAgMHgyZCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgyMCwgMHg0NCwgMHg2NSwgMHg2MywgMHg2ZiwgMHg2NCwgMHg2NSwgMHg3MiwgCi0gICAgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0NCwgMHg2OSwgMHg2NywgMHg2OSwgMHg3NCwgMHg2MSwgMHg2YywgMHgyMCwgCi0gICAgMHg0YywgMHg2ZiwgMHg2ZiwgMHg3MCwgMHg2MiwgMHg2MSwgMHg2MywgMHg2YiwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0MSwgMHg2ZSwgMHg2MSwgMHg2YywgCi0gICAgMHg2ZiwgMHg2NywgMHgyMCwgMHg0YywgMHg2ZiwgMHg2ZiwgMHg3MCwgMHg2MiwgMHg2MSwgMHg2MywgMHg2YiwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgCi0gICAgMHg1MiwgMHg1OCwgMHg0NCwgMHgyYywgMHg1NCwgMHg1OCwgMHg0NCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg1MiwgMHg1NCwgMHg1MywgMHgyYywgMHg0MywgCi0gICAgMHg1NCwgMHg1MywgMHgyYywgMHg1MiwgMHg0OSwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg1OCwgMHg0NCwgMHgyYywgMHg1NCwgMHg1OCwgMHg0NCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0NCwgCi0gICAgMHg1NCwgMHg1MiwgMHgyYywgMHg0NCwgMHg1MywgMHg1MiwgMHgyYywgMHg0MywgMHg0NCwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg1NCwgMHg1MywgMHg1YiwgMHg0MywgMHg1NCwgMHg1MywgMHgyYywgCi0gICAgMHg1MiwgMHg0OSwgMHg1ZCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0NCwgMHg1NCwgMHg1MiwgMHgyYywgMHg0NCwgMHg1MywgMHg1MiwgMHgyYywgMHg0MywgCi0gICAgMHg0NCwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg1NCwgMHg1MywgMHg1YiwgCi0gICAgMHg0MywgMHg1NCwgMHg1MywgMHgyYywgMHg0MywgMHg0NCwgMHg1ZCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0NCwgMHg1MywgMHg1MiwgMHgyYywgMHg1MiwgCi0gICAgMHg0OSwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgCi0gICAgMHg0NCwgMHg1NCwgMHg1MiwgMHg1YiwgMHg0NCwgMHg1MywgMHg1MiwgMHgyYywgMHg0MywgMHg0NCwgMHg1ZCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg1MiwgCi0gICAgMHg1NCwgMHg1MywgMHgyYywgMHg0MywgMHg1NCwgMHg1MywgMHgyYywgMHg1MiwgMHg0OSwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgCi0gICAgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg0NCwgMHg1NCwgMHg1MiwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0MywgMHg1NCwgMHg1MywgMHgyYywgMHg0MywgCi0gICAgMHg0NCwgMHgyMCwgMHg1MywgMHg2OCwgMHg2ZiwgMHg3MiwgMHg3NCwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg1NCwgMHg1MywgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0MywgCi0gICAgMHg1NCwgMHg1MywgMHgyYywgMHg1MiwgMHg0OSwgMHgyMCwgMHg0YywgMHg2ZiwgMHg2ZiwgMHg3MCwgMHg2MiwgMHg2MSwgMHg2MywgMHg2YiwgMHgzYSwgMHgyMCwgCi0gICAgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHg1MiwgMHg1NCwgMHg1MywgMHgyMCwgCi0gICAgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0MywgMHg1NCwgMHg1MywgMHgyYywgMHg0MywgMHg0NCwgMHgyMCwgMHg0YywgMHg2ZiwgMHg2ZiwgMHg3MCwgMHg2MiwgMHg2MSwgCi0gICAgMHg2MywgMHg2YiwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgCi0gICAgMHg0NCwgMHg1NCwgMHg1MiwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg0NCwgMHg1MywgMHg1MiwgMHgyYywgMHg0MywgMHg0NCwgMHgyMCwgMHg0YywgMHg2ZiwgCi0gICAgMHg2ZiwgMHg3MCwgMHg2MiwgMHg2MSwgMHg2MywgMHg2YiwgMHgzYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgMHgyMCwgCi0gICAgMHgyMCwgMHgwMCwgMHgwZCwgMHgwYSwgMHgwYSwgMHgyMCwgMHgyMCwgMHgyMCwgMHg0NSwgMHgyMCwgMHg1MiwgMHgyMCwgMHg1MiwgMHgyMCwgMHg0ZiwgMHgyMCwgCi0gICAgMHg1MiwgMHgyMCwgMHgyMSwgMHgyMSwgMHgyMSwgMHgyYywgMHgyMCwgMHg0NSwgMHgyMCwgMHg1MiwgMHgyMCwgMHg1MiwgMHgyMCwgMHg0ZiwgMHgyMCwgMHg1MiwgCi0gICAgMHgyMCwgMHgyMSwgMHgyMSwgMHgyMSwgMHgyMCwgMHgyYywgMHgyMCwgMHg0NSwgMHgyMCwgMHg1MiwgMHgyMCwgMHg1MiwgMHgyMCwgMHg0ZiwgMHgyMCwgMHg1MiwgCi0gICAgMHgyMCwgMHgyMSwgMHgyMSwgMHgyMSwgMHgwZCwgMHgwYSwgMHgwYSwgMHg0NCwgMHg2OSwgMHg2MSwgMHg2NywgMHg2ZSwgMHg2ZiwgMHg3MywgMHg3NCwgMHg2OSwgCi0gICAgMHg2MywgMHg3MywgMHgyMCwgMHg2ZSwgMHg2ZiwgMHg3NywgMHgyMCwgMHg3NywgMHg2OSwgMHg2YywgMHg2YywgMHgyMCwgMHg2NSwgMHg2ZSwgMHg3NCwgMHg2NSwgCi0gICAgMHg3MiwgMHgyMCwgMHg2MSwgMHgyMCwgMHg2NCwgMHg2NSwgMHg2MiwgMHg3NSwgMHg2NywgMHgyMCwgMHg2YywgMHg2ZiwgMHg2ZiwgMHg3MCwgMHgyMCwgMHg2ZiwgCi0gICAgMHg2NiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2NiwgMHg2OSwgMHg3MiwgMHg3MywgMHg3NCwgMHgyMCwgMHg2NCwgMHg2NSwgMHg3NCwgMHg2NSwgCi0gICAgMHg2MywgMHg3NCwgMHg2NSwgMHg2NCwgMHgyMCwgMHg2NSwgMHg3MiwgMHg3MiwgMHg2ZiwgMHg3MiwgMHgyZSwgMHgwMCwgMHgwZCwgMHgwYSwgMHgwYSwgMHg0ZSwgCi0gICAgMHg2ZiwgMHgyMCwgMHg0OCwgMHg2MSwgMHg3MiwgMHg2NCwgMHg3NywgMHg2MSwgMHg3MiwgMHg2NSwgMHgyMCwgMHg2NSwgMHg3MiwgMHg3MiwgMHg2ZiwgMHg3MiwgCi0gICAgMHg3MywgMHgyMCwgMHg2NCwgMHg2NSwgMHg3NCwgMHg2NSwgMHg2MywgMHg3NCwgMHg2NSwgMHg2NCwgMHgyZSwgMHgwZCwgMHgwYSwgMHgwMCwgMHg0MywgMHg2ZiwgCi0gICAgMHg3MCwgMHg3OSwgMHg2OSwgMHg2ZSwgMHg2NywgMHgyMCwgMHg2MywgMHg2ZiwgMHg2NCwgMHg2NSwgMHgyMCwgMHg2NiwgMHg3MiwgMHg2ZiwgMHg2ZCwgMHgyMCwgCi0gICAgMHg0ZCwgMHg2MSwgMHg3MywgMHg3NCwgMHg2NSwgMHg3MiwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg1MywgMHg2YywgMHg2MSwgMHg3NiwgMHg2NSwgMHgyNywgCi0gICAgMHg3MywgMHgyMCwgMHg0NSwgMHg0NSwgMHg3MCwgMHg3MiwgMHg2ZiwgMHg2ZCwgMHgyMCwgMHgyZSwgMHgyZSwgMHgyZSwgMHgwMCwgMHg0NCwgMHg2ZiwgMHg2ZSwgCi0gICAgMHg2NSwgMHgwZCwgMHgwYSwgMHgwYSwgMHgyZCwgMHgzZSwgMHgyMCwgMHg1NCwgMHg3NSwgMHg3MiwgMHg2ZSwgMHgyMCwgMHg3NSwgMHg2ZSwgMHg2OSwgMHg3NCwgCi0gICAgMHgyMCwgMHg2ZiwgMHg2NiwgMHg2NiwgMHgyYywgMHgyMCwgMHg2NCwgMHg2OSwgMHg3MywgMHg2MywgMHg2ZiwgMHg2ZSwgMHg2ZSwgMHg2NSwgMHg2MywgMHg3NCwgCi0gICAgMHgyMCwgMHg2MywgMHg2MSwgMHg2MiwgMHg2YywgMHg2NSwgMHgyMCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHgyMCwgMHg3MiwgMHg3NSwgMHg2ZSwgMHgyMCwgMHg3MywgCi0gICAgMHg3NCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHg2MSwgMHg2YywgMHg2ZiwgMHg2ZSwgMHg2NSwgMHgyMCwgMHg2NCwgMHg2OSwgMHg2MSwgMHg2NywgMHg2ZSwgMHg2ZiwgCi0gICAgMHg3MywgMHg3NCwgMHg2OSwgMHg2MywgMHg3MywgMHgyZSwgMHgwMCwgMHhjMiwgMHhhZiwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYSwgMHg3NSwgMHg5MCwgMHgwZCwgCi0gICAgMHgyMCwgMHgxNywgMHgwMiwgMHhkMiwgMHhiNSwgMHg0MywgMHg5MCwgMHgzMCwgMHg2YywgMHgwMCwgMHg3ZSwgMHgxMCwgMHgwMywgMHgxMiwgMHgwZiwgMHgzOCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgwYSwgMHgwMSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwYiwgMHgwMCwgMHgzMCwgMHhiNCwgMHgwMiwgCi0gICAgMHg4MCwgMHgyNCwgMHgwMiwgMHgxYiwgMHgzYywgMHgyMCwgMHgwOSwgMHgxZCwgMHhjMiwgMHg5NCwgMHhkMiwgMHg5NSwgMHgxMiwgMHgxOSwgMHhmYiwgMHg1MywgCi0gICAgMHg5MCwgMHhjZiwgMHgxMiwgMHgxOSwgMHhmYiwgMHhjMiwgMHg5NSwgMHhkMiwgMHg5NCwgMHgxMiwgMHgxOSwgMHhmYiwgMHhhNSwgMHhkOSwgMHhlNiwgMHg0MywgCi0gICAgMHg5MCwgMHgzMCwgMHgxMiwgMHgxOSwgMHhmYiwgMHgyMiwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg5NCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgCi0gICAgMHg5MywgMHg3ZSwgMHhlNCwgMHgxMCwgMHgwMCwgMHg3ZSwgMHg0MCwgMHg1NSwgMHg3YSwgMHhlOSwgMHg0MCwgMHgwYiwgMHhlNCwgMHg3ZSwgMHg1MCwgMHhhYSwgCi0gICAgMHg3YSwgMHhlOSwgMHg1MCwgMHgxYiwgMHhlNCwgMHhiZSwgMHhlOSwgMHg0MCwgMHg2OCwgMHgxOSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3YSwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgxMywgMHg3YSwgMHhlOSwgMHg0MCwgMHg3ZSwgMHhlOSwgCi0gICAgMHgxMCwgMHg4MCwgMHhmOCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3NSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwYiwgMHgwMCwgCi0gICAgMHg3ZSwgMHg2OCwgMHgwYSwgMHhkOCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHg3MCwgMHgwZSwgMHg3ZSwgMHhhNCwgMHhmZiwgMHhmZiwgMHg3ZSwgMHhiNCwgMHhiZiwgMHhmZiwgMHg3ZCwgMHhjYiwgMHgwZSwgMHhjNCwgMHg3ZCwgMHhkYywgCi0gICAgMHg1ZCwgMHhkYiwgMHg2YywgMHhiYiwgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgCi0gICAgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgCi0gICAgMHg3YSwgMHg3YiwgMHhiMCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg2YywgMHhiYiwgCi0gICAgMHg3ZCwgMHhmYSwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHg0MSwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgzNCwgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgCi0gICAgMHhiZSwgMHg3YiwgMHhiMCwgMHg3OCwgMHgyNywgMHgwYiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHhiZSwgMHg3YiwgMHhiMCwgCi0gICAgMHg3OCwgMHgxYSwgMHgwYiwgMHhiMCwgMHhiZSwgMHhjNCwgMHhmZiwgMHhmZSwgMHg3OCwgMHg5MiwgMHgwZSwgMHhiNCwgMHhhNSwgMHhkZiwgMHg4YiwgMHg3ZSwgCi0gICAgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHg3NywgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgCi0gICAgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg2OCwgMHgwYiwgMHgyYSwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwYSwgMHg0NywgMHgxMiwgMHgxYSwgMHhjOSwgMHg3ZSwgMHg2OCwgMHgwYiwgMHg3OSwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg2YywgMHg3NywgMHhkYSwgMHg2YiwgMHhjYSwgMHg2YiwgMHgwYiwgMHg3MCwgMHgwZSwgMHhjNCwgCi0gICAgMHhiZSwgMHhjNCwgMHhmZiwgMHhmZiwgMHg3OCwgMHhmNiwgMHgxYiwgMHg3MCwgMHgwYSwgMHg0NywgMHgxMiwgMHgxYSwgMHhjOSwgMHgxMiwgMHgxYSwgMHgwOCwgCi0gICAgMHgzMCwgMHgwOSwgMHgzMCwgMHhkYSwgMHg2YiwgMHhkYSwgMHg1YiwgMHg2YywgMHhiYiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3ZCwgMHhmYSwgMHg1ZSwgCi0gICAgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmYiwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgCi0gICAgMHhmYywgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgMHhiMCwgMHg3ZCwgMHhmZCwgMHg1ZSwgMHhmNCwgMHg3ZiwgMHhmZiwgMHg3YSwgMHg3YiwgCi0gICAgMHhiMCwgMHg4MCwgMHhkNCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHhiNiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgzMCwgMHgxNywgCi0gICAgMHgwZSwgMHg3ZSwgMHg3OCwgMHgwNCwgMHgyMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NCwgMHg3YiwgMHhlMCwgMHg4MCwgMHgwYywgMHg3ZSwgCi0gICAgMHg3OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg0NCwgMHg4MCwgMHgwMCwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg0MCwgMHgzYSwgCi0gICAgMHg3YywgMHg1NCwgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgMHg3YSwgMHg1YiwgMHg1MCwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgCi0gICAgMHhkZSwgMHgwMiwgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgMHg3OCwgMHhmMCwgMHg3YywgMHg1NCwgMHg3ZiwgMHg1NywgMHg3ZCwgMHg4NCwgMHg2YywgMHg2NiwgCi0gICAgMHhiZSwgMHg1YiwgMHg1MCwgMHg3OCwgMHgxYSwgMHgwYiwgMHg1YywgMHgwYiwgMHg1MCwgMHhhNSwgMHhkZSwgMHgwMiwgMHgwYiwgMHg1MCwgMHgxYiwgMHg4NCwgCi0gICAgMHg3OCwgMHhlZSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3NSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHg0YiwgMHg3ZiwgCi0gICAgMHg0NSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3YSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg2OCwgMHgwYSwgMHhmYSwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZCwgMHg0YiwgMHgxMiwgMHgxYSwgMHhjOSwgMHg3ZSwgMHg2OCwgMHgwYiwgMHgwZiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg2YywgMHg4OCwgMHg3YywgMHg5NSwgMHgxMiwgMHgxYSwgMHhjOSwgMHg3ZSwgMHg2OCwgCi0gICAgMHgwYiwgMHgxZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg0YiwgMHg5MCwgMHgxMiwgMHgxYSwgMHhjOSwgMHgxMiwgCi0gICAgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwNSwgMHg3ZSwgMHg0YiwgMHg5MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHg2OCwgMHgwYiwgMHg3ZiwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwYiwgMHgwMCwgMHhkMiwgMHg5MiwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgwOCwgMHhiZSwgMHhiMCwgMHgwMSwgMHg3OCwgMHgwYiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhiZSwgMHhiMCwgMHg2MCwgMHg3OCwgMHgwMiwgMHg4MCwgCi0gICAgMHgxNywgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3YSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgCi0gICAgMHgwOSwgMHgxMSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg4MCwgMHhmYSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3NSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg2OCwgMHgwYiwgMHhhMSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwYiwgMHgwMCwgCi0gICAgMHhjMiwgMHg5MiwgMHgxMiwgMHgxOSwgMHhlZSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgCi0gICAgMHg3ZSwgMHhiMCwgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgzNywgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgMHhjMCwgMHhiZSwgMHhiMCwgMHhjMCwgMHg3OCwgMHgyYiwgMHg3ZSwgMHhhMCwgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxYywgMHg2YywgMHhiYiwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgMHg3OCwgMHgxNiwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHg1ZSwgMHhiMCwgMHhjMCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3NSwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHgxYiwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg3YSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgCi0gICAgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgwOSwgMHhiMiwgMHgwMCwgMHgxYywgMHg4MCwgCi0gICAgMHhmNiwgMHg3ZSwgMHg2OCwgMHgwYiwgMHhjMywgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHg2OCwgMHgwYywgMHg0NSwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwMSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxYywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZSwgMHgyNCwgCi0gICAgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHg3ZSwgMHhiMCwgMHgwMSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHhiYywgMHhhYiwgCi0gICAgMHg3OCwgMHgxNiwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgyZSwgMHgyNCwgMHgwMSwgCi0gICAgMHgwMCwgMHgwYiwgMHhiMCwgMHhhNSwgMHhkOSwgMHhlMiwgMHg4MCwgMHgyNSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHhlNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgCi0gICAgMHgwOSwgMHhhMiwgMHgwMCwgMHgxYywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhmNSwgMHg4MCwgMHhlYywgMHg3ZSwgMHg2OCwgMHgwYywgCi0gICAgMHg2OSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxMywgMHg4YSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgCi0gICAgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHg3NCwgMHgxMCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMywgMHgwMywgMHgyZSwgMHgyNCwgMHgwMSwgCi0gICAgMHgwMCwgMHhhNSwgMHhkOSwgMHhlZSwgMHg3ZSwgMHg2OCwgMHgwYywgMHg4ZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHhlNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxMywgMHgwMywgCi0gICAgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhlZiwgMHgzMCwgMHgwMCwgMHgwMywgMHgwMiwgMHgxOCwgMHhiNywgMHgwMiwgMHgxMywgMHhiYiwgCi0gICAgMHg3NCwgMHgwNywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwOCwgMHgxMiwgMHgxOSwgMHhmYiwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxNCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjMiwgMHgwYiwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxMiwgMHgxMywgCi0gICAgMHg2NCwgMHg3ZSwgMHhiMCwgMHhhYSwgMHgxMiwgMHgxMywgMHg2NCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHgxMiwgMHgxMywgMHg2NCwgMHg3ZSwgMHhiMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxMywgMHg2NCwgMHgzMCwgMHgwYiwgMHgwZiwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgCi0gICAgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgyMiwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgCi0gICAgMHgyMiwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHhiYywgMHhhYiwgMHg3OCwgMHgwMSwgCi0gICAgMHgyMiwgMHgyMCwgMHgwOSwgMHgwMywgMHhkMiwgMHgwYiwgMHgyMiwgMHgxMiwgMHgxYSwgMHgwOCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgCi0gICAgMHhlZSwgMHgwOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHg4MCwgMHhmMywgMHhkMiwgMHg5MiwgMHgxMiwgMHgxOSwgMHhlZSwgMHhjMiwgMHg5MiwgMHgxMiwgMHgxOSwgCi0gICAgMHhlZSwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHg3NCwgMHg4MCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgCi0gICAgMHgwMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgxOSwgMHhiMiwgMHgwMCwgMHgwYywgCi0gICAgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhlMSwgMHgyMiwgMHg3ZSwgMHg2OCwgMHgwYywgMHhiMSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgCi0gICAgMHg5MywgMHg4MCwgMHgxYSwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgCi0gICAgMHgwOCwgMHgzMCwgMHgwOSwgMHgwOSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHg4MCwgMHhmNywgMHgyZSwgMHgyNCwgMHgwMSwgCi0gICAgMHgwMCwgMHhhNSwgMHhkOSwgMHhiNiwgMHg3ZSwgMHg2OCwgMHgwYywgMHhkNSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgCi0gICAgMHhhMCwgMHg1NSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgCi0gICAgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHgxYSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwOSwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHg4MCwgMHhmNywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhiNiwgCi0gICAgMHgzMCwgMHgwNCwgMHgwMywgMHgwMiwgMHgxNiwgMHg4YywgMHg3ZSwgMHg2OCwgMHgwYywgMHhmOSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgCi0gICAgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgMHg3OCwgMHgzYywgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgCi0gICAgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwYSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgCi0gICAgMHgxMiwgMHgxYSwgMHg5MywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMiwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgwZCwgMHg0MSwgCi0gICAgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgCi0gICAgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgCi0gICAgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNSwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgCi0gICAgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgCi0gICAgMHgzMCwgMHgwOSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgwZCwgMHg4OSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHhiZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgxZiwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgCi0gICAgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg1MCwgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwZiwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgCi0gICAgMHhkOSwgMHhhMiwgMHg3ZSwgMHg2OCwgMHgwZCwgMHhkMSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgCi0gICAgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHhhMCwgMHhiZSwgMHhiMCwgMHhhMCwgMHg3OCwgMHgxZiwgCi0gICAgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHhhMCwgCi0gICAgMHg3OCwgMHgwZCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHgyMCwgMHg3ZSwgCi0gICAgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwZiwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgCi0gICAgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHgwMiwgMHgxOCwgMHgyYiwgMHg3ZSwgMHg2OCwgMHgwZCwgMHgxZCwgMHg3YSwgMHg2YywgMHgwMCwgCi0gICAgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgCi0gICAgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgCi0gICAgMHgwNiwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgCi0gICAgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgCi0gICAgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwNiwgMHg3OCwgMHgxNCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgCi0gICAgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHhlNiwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgCi0gICAgMHg2OCwgMHgwZCwgMHg2NSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgCi0gICAgMHgwOSwgMHgwYiwgMHgwMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgMHgzYywgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHgwMywgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHgwOSwgMHg3OCwgCi0gICAgMHgxNCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgCi0gICAgMHhhNSwgMHhkOSwgMHg5ZSwgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgCi0gICAgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHhlNiwgMHg3ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgCi0gICAgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHg3ZSwgMHg2OCwgMHgwZCwgMHhhZCwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgCi0gICAgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgMHhiZSwgMHhiMCwgMHg5MCwgMHg3OCwgMHgxZiwgMHg2YywgCi0gICAgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxOCwgMHg1ZSwgMHhiMCwgMHg5MCwgMHg3OCwgCi0gICAgMHgwZCwgMHg3ZSwgMHg2OCwgMHgwYSwgMHg4MiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHg4MCwgMHgyMCwgMHg3ZSwgMHg2OCwgCi0gICAgMHgwYSwgMHg4YiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgwZiwgMHg3ZSwgCi0gICAgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg4MCwgMHhmMSwgMHgyZSwgMHgyNCwgCi0gICAgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhMiwgMHgwMiwgMHgxOCwgMHhiNywgMHgzMCwgMHgxNywgMHgwMywgMHgwMiwgMHgxOSwgMHgzYiwgMHhjMiwgMHg4YSwgCi0gICAgMHgxMiwgMHgxOSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHg2YywgMHhhYSwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHgwYiwgMHgwMCwgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgyMCwgCi0gICAgMHg4YiwgMHgzZSwgMHgyMCwgMHg4OSwgMHgzYiwgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgwOSwgMHhhMiwgMHgwMCwgMHgxMCwgCi0gICAgMHg0ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgzMCwgMHg4YiwgMHgyMywgMHgzMCwgMHg4OSwgMHgyMCwgCi0gICAgMHgwOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHg1ZSwgMHhhMCwgMHhmZCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHg3ZSwgMHhhMCwgCi0gICAgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgyMCwgMHg4YiwgMHgwNSwgMHgyMCwgMHg4OSwgMHgwMiwgMHg4MCwgMHgxYSwgCi0gICAgMHgxMiwgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgxNCwgMHg3ZSwgMHhhMCwgMHgwMiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgwMCwgMHgwMCwgMHg1ZSwgCi0gICAgMHhhMCwgMHhmZCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhlYywgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgCi0gICAgMHg4OSwgMHgwMiwgMHgxOSwgMHgzYiwgMHgyMCwgMHgxNywgMHhmYSwgMHgxMiwgMHgxMywgMHg4YSwgMHgxMiwgMHgxOSwgMHgyMiwgMHg3ZSwgMHgyNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHgwYiwgMHgwMCwgMHgyMCwgMHg4OSwgMHgyNiwgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHg3ZSwgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgzMCwgMHg4OSwgMHgwZiwgCi0gICAgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOSwgMHhlZSwgMHgyMCwgMHg4OSwgMHgwMiwgMHg4MCwgMHgyNiwgMHgxMiwgCi0gICAgMHgxYSwgMHgwOCwgMHgzMCwgMHgwOSwgMHgyMCwgMHg3ZSwgMHhhMCwgMHhmZiwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgMHgxMiwgMHgxOSwgMHhlZSwgMHg3ZSwgCi0gICAgMHhiMCwgMHg1NSwgMHgxOSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgxMiwgMHgxOSwgMHhlZSwgMHg3ZSwgMHhhMCwgMHgwMCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgwNCwgCi0gICAgMHgxMiwgMHgxOSwgMHhlZSwgMHg4MCwgMHhlMCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhhOCwgMHgwMiwgMHgxOSwgMHgzYiwgMHg3ZSwgCi0gICAgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgwOSwgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgMHgxMCwgMHgxMiwgMHgxOSwgMHhlZSwgCi0gICAgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhlZiwgMHgyMiwgMHgzMCwgMHgwYSwgMHgxOSwgMHg3ZSwgMHg2OCwgMHgwZCwgMHhmNSwgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHhkMiwgMHgwOSwgMHgxMiwgMHgxOSwgMHhlZSwgMHgxMiwgMHgxOSwgMHhlZSwgMHgxMiwgMHgxOSwgCi0gICAgMHhlZSwgMHgwMiwgMHgwZiwgMHgxMCwgMHgzMCwgMHgxNywgMHgxYywgMHg3ZSwgMHg2OCwgMHgwZSwgMHg2ZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgCi0gICAgMHgxYSwgMHg5MywgMHg3ZSwgMHg2OCwgMHgwZSwgMHg5MSwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgxMiwgMHgxYiwgMHgzYywgCi0gICAgMHgwMiwgMHgxOSwgMHhlNiwgMHgwYiwgMHgwMCwgMHg3ZSwgMHg3OCwgMHgxOSwgMHhhMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZiwgMHg3ZiwgMHg2NywgMHg3YSwgCi0gICAgMHg2YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3MCwgMHgzZSwgMHg3ZSwgMHg3YiwgMHhiMCwgMHg3YSwgMHg2YiwgMHhiMCwgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgCi0gICAgMHhhNSwgMHhkZiwgMHhmMywgMHg3ZSwgMHg3OCwgMHgxOSwgMHhhMCwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg4OSwgMHg3OCwgMHg3ZSwgMHg3OCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZSwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgMHhmZSwgMHg3NCwgMHhhYSwgMHgzOSwgCi0gICAgMHhiNywgMHg1NSwgMHg1NSwgMHg3NCwgMHg1NSwgMHgzOSwgMHhiNywgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgMHhiNywgMHg1NSwgMHg1NSwgMHg2YywgCi0gICAgMHg5OSwgMHg3YSwgMHg2YiwgMHg5MCwgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgMHg3ZSwgMHg2YiwgMHg4MCwgMHhiYywgMHg4OSwgMHg2OCwgMHgwOCwgMHgxYiwgCi0gICAgMHg1NCwgMHg3OCwgMHhmNSwgMHg4YSwgMHhmZiwgMHgxOSwgMHhkZSwgMHg4YSwgMHhmZiwgMHgxOSwgMHhlNiwgMHgxMiwgMHgxYSwgMHgwOCwgMHg3ZSwgMHg2YiwgCi0gICAgMHg4MCwgMHg4MCwgMHhmYiwgMHg3ZSwgMHgxMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg4NSwgMHg4MCwgMHhmOCwgMHhjYSwgMHhmOSwgMHg3ZSwgMHhmNCwgMHgwMCwgCi0gICAgMHhmZiwgMHgxYiwgMHhmNCwgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHhjYSwgMHhmOSwgMHg3ZSwgMHhmNCwgMHgwMCwgMHgwMCwgMHgxYiwgMHhmNCwgCi0gICAgMHg3OCwgMHhmYywgMHhkYSwgMHhmOSwgMHgyMiwgMHgyMCwgMHgwOSwgMHgxOSwgMHhkMiwgMHgwYSwgMHgxMiwgMHgxOSwgMHhmYiwgMHhjMiwgMHg5NSwgMHhkMiwgCi0gICAgMHg5NCwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHg0MywgMHg5MCwgMHgzMCwgCi0gICAgMHgyMiwgMHhjYSwgMHgwYiwgMHg3ZSwgMHgxMCwgMHgwMywgMHg3YywgMHgzMCwgMHg2YywgMHgyMiwgMHgwYiwgMHgyMCwgMHg5ZSwgMHgzMCwgMHgwYSwgMHg1MCwgCi0gICAgMHhmOSwgMHgyZSwgMHgzMCwgMHgwYiwgMHgxYiwgMHgyMCwgMHg2OCwgMHgxOCwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHg1MywgMHg5MCwgCi0gICAgMHhjZiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHg0MywgMHg5MCwgMHgzMCwgMHhhNSwgMHhkYSwgMHhlOCwgCi0gICAgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxYiwgMHgzMCwgMHg2OCwgMHgxOSwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgCi0gICAgMHhjMiwgMHg5NSwgMHhkMiwgMHg5NCwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHgxMiwgMHgxOSwgMHhmYiwgMHg0MywgMHg5MCwgMHgzMCwgCi0gICAgMHhhNSwgMHhkYiwgMHhlNywgMHg3ZSwgMHgyMCwgMHgwYSwgMHgxMiwgMHgxOSwgMHhmYiwgMHhhNSwgMHhkYSwgMHhmYSwgMHhhNSwgMHhkOSwgMHhhNywgMHhkYSwgCi0gICAgMHgwYiwgMHgyMiwgMHgyMCwgMHgwOSwgMHgwYSwgMHgxMiwgMHgxOSwgMHhmYiwgMHhiMiwgMHg5NCwgMHgxMiwgMHgxOSwgMHhmYiwgMHhiMiwgMHg5NCwgMHgyMiwgCi0gICAgMHgzMCwgMHgxNywgMHgzMiwgMHgyMCwgMHgwOSwgMHgyZiwgMHhjYSwgMHgyYiwgMHhjYSwgMHg3YiwgMHg3ZSwgMHg3OCwgMHg4MCwgMHgwMCwgMHg3YSwgMHg3YywgCi0gICAgMHgwMCwgMHhmZSwgMHgxMiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg2YiwgMHhhMCwgMHg1YywgMHhhYSwgMHg2OCwgMHgxMCwgMHgyOSwgMHhiNywgMHgwMCwgMHgxNCwgCi0gICAgMHg1NCwgMHg2MCwgMHg2OCwgMHhmOCwgMHgzOSwgMHhhNywgMHgwMCwgMHgwMCwgMHgwYiwgMHg2YywgMHg4MCwgMHhlOSwgMHgxMiwgMHgxOSwgMHhlZSwgMHhkMiwgCi0gICAgMHhiNSwgMHhkYSwgMHg3YiwgMHhkYSwgMHgyYiwgMHgyMiwgMHgxMiwgMHgxYSwgMHhkNCwgMHg3ZSwgMHg2OCwgMHgwMCwgMHgwYiwgMHgxMiwgMHgxYSwgMHg5MywgCi0gICAgMHgyMiwgMHhjYSwgMHg1OSwgMHhjYSwgMHg1YiwgMHg3ZSwgMHhiNCwgMHgwMCwgMHgwYiwgMHg3YywgMHhiOCwgMHhjNCwgMHgxMiwgMHgxYiwgMHgwNCwgMHg3YywgCi0gICAgMHhiOCwgMHgxMiwgMHgxYiwgMHgwNCwgMHg3YywgMHhiOSwgMHhjNCwgMHgxMiwgMHgxYiwgMHgwNCwgMHg3YywgMHhiOSwgMHgxMiwgMHgxYiwgMHgwNCwgMHg3ZSwgCi0gICAgMHhiMCwgMHg2OCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHg2YywgMHhiYiwgMHg3YSwgMHhiOSwgMHhiMCwgMHhkYSwgMHg1OSwgMHhkYSwgMHg1YiwgCi0gICAgMHgyMiwgMHg1ZSwgMHhiMCwgMHgwZiwgMHg3YywgMHhhYiwgMHg5ZSwgMHhhMCwgMHgwYSwgMHg0MCwgMHgwNSwgMHgyZSwgMHhiMCwgMHgzNywgMHg4MCwgMHgwMywgCi0gICAgMHgyZSwgMHhiMCwgMHgzMCwgMHg3YSwgMHhiOSwgMHhiMCwgMHgwYiwgMHhiNCwgMHgyMiwgMHhjMiwgMHhiNSwgMHhjMiwgMHg5MiwgMHgxMiwgMHgxOSwgMHhlZSwgCi0gICAgMHg3NCwgMHg4MCwgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwNiwgMHgzOSwgMHhhNywgMHgwMCwgMHgwNCwgMHgzOSwgMHhiNywgCi0gICAgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgzOSwgMHhiNywgMHgwMCwgMHgwYywgMHgyMiwgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgCi0gICAgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZiwgMHg2NSwgMHg3ZSwgMHg3NCwgMHgyMCwgMHgwMCwgMHgxMiwgCi0gICAgMHgwOCwgMHhkNiwgMHg0MCwgMHg1NCwgMHg3ZSwgMHg3OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg3YywgMHgwMCwgMHhmZiwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgCi0gICAgMHg3YSwgMHg1YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg2OCwgMHg3YywgMHgwMCwgMHg3YSwgMHg2YywgMHgwMCwgMHgwMSwgMHg3ZSwgMHg3NCwgMHgwNCwgMHgwMCwgCi0gICAgMHgxMiwgMHgwOCwgMHhkNiwgMHg0MCwgMHgzMywgMHg3NCwgMHg4MCwgMHgxMiwgMHgxYiwgMHhiMSwgMHg0MCwgMHgyYywgMHg1MywgMHg5MCwgMHhjZiwgMHhkMiwgCi0gICAgMHgwOCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHg4NCwgMHhhNSwgMHhkYiwgMHhmYywgMHhhNSwgMHhkYSwgMHhmOSwgCi0gICAgMHhhNSwgMHhkOSwgMHhmNiwgMHg3NCwgMHg0MCwgMHgxMiwgMHgxYiwgMHhiMSwgMHg0MCwgMHgwZSwgMHg3ZSwgMHg2OCwgMHgwZSwgMHhjMCwgMHg3YSwgMHg2YywgCi0gICAgMHgwMCwgMHhmZiwgMHgxMiwgMHgxYSwgMHg5MywgMHgwMiwgMHgxOSwgMHhlNiwgMHhjMiwgMHg5NSwgMHhkMiwgMHg5NCwgMHg4MCwgMHhmZSwgMHhmNSwgMHgwYSwgCi0gICAgMHg3ZSwgMHg3OCwgMHgwMCwgMHgwYSwgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg2OCwgMHg3ZiwgMHhiZiwgMHg3YSwgMHg2YywgMHgwMCwgMHgwMSwgCi0gICAgMHg3ZSwgMHg3NCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwOCwgMHhkNiwgCi19OwotCi1zdGF0aWMgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkxLCAxMiwgMiB9OwkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi0jdW5kZWYgSU1BR0VfVkVSU0lPTl9OQU1FCi0KLSN1bmRlZiBJTUFHRV9BUlJBWV9OQU1FCi0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9pb19md19ib290Mi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzNDYzZGUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Jvb3QyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NDYgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCi0vLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2Ci0vLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0vLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotCi0vL0ltYWdlIHN0cnVjdHVyZSBkZWZpbml0aW9uCi0jaWYgIWRlZmluZWQoREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRCkKLSNkZWZpbmUgREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRAotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCB7Ci0JCV9fbGUxNiBFeHRBZGRyOwotCQlfX2xlMTYgQWRkcjsKLQkJX19sZTE2IExlbjsKLQkJdW5zaWduZWQgY2hhciAgRGF0YVswXTsKLQl9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKLQotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX3ZlcnNpb25faW5mbyB7Ci0JCXVuc2lnbmVkIGNoYXIJIE1ham9yVmVyc2lvbjsKLQkJdW5zaWduZWQgY2hhciAgTWlub3JWZXJzaW9uOwotCQl1bnNpZ25lZCBzaG9ydCBCdWlsZE51bWJlcjsKLQl9OwotCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKElNQUdFX0FSUkFZX05BTUUpCi0jZGVmaW5lIElNQUdFX0FSUkFZX05BTUUJCUZpcm13YXJlSW1hZ2UKLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCUZpcm13YXJlSW1hZ2VWZXJzaW9uCi0jZW5kaWYKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgSU1BR0VfQVJSQVlfTkFNRVtdID0gewotCi0vLyBTZWdtZW50ICMxLCBTdGFydCBBZGRyZXNzIDAwZmYwMDAwLCBMZW5ndGggNgotMHhmZiwweDAwLDB4MDAsMHgwMCwweDA2LDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg4MCwgMHgwMiwgMHgwMCwgMHgwMywgCi0KLS8vIFNlZ21lbnQgIzIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgwYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDBiLCAKLQotLy8gU2VnbWVudCAjMywgU3RhcnQgQWRkcmVzcyAwMGZmMDAxMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDEzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDIsIDB4NTYsIAotCi0vLyBTZWdtZW50ICM0LCBTdGFydCBBZGRyZXNzIDAwZmYwMDFiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MWIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgxYiwgCi0KLS8vIFNlZ21lbnQgIzUsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMjMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDIzLCAKLQotLy8gU2VnbWVudCAjNiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDJiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MmIsIAotCi0vLyBTZWdtZW50ICM3LCBTdGFydCBBZGRyZXNzIDAwZmYwMDMzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MzMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzMywgCi0KLS8vIFNlZ21lbnQgIzgsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwM2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDNiLCAKLQotLy8gU2VnbWVudCAjOSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDQzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NDMsIAotCi0vLyBTZWdtZW50ICMxMCwgU3RhcnQgQWRkcmVzcyAwMGZmMDA0YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDRiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4NGIsIAotCi0vLyBTZWdtZW50ICMxMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDA1MywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDUzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDEsIDB4ZjUsIAotCi0vLyBTZWdtZW50ICMxMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDA3YiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDdiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4N2IsIAotCi0vLyBTZWdtZW50ICMxMywgU3RhcnQgQWRkcmVzcyAwMGZmMDA4MCwgTGVuZ3RoIDUzNAotMHhmZiwweDAwLDB4ODAsMHgwMCwweDE2LDB4MDIsCi0gICAgMHg3ZSwgMHhiMywgMHg5MSwgMHgwMSwgMHgyMCwgMHhlMywgMHgwYywgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg1NCwgMHhmZSwgMHg3YSwgMHhiMywgMHgzZiwgCi0gICAgMHhmMiwgMHg4MCwgMHgwYSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg0NCwgMHgwMSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg3NCwgMHgwMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg3ZSwgMHhmOCwgMHgwMCwgMHgyNCwgMHg3ZSwgMHgwMCwgMHgwMSwgCi0gICAgMHg3ZSwgMHgxMCwgMHgwMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg2OSwgMHgyMCwgMHgwMCwgMHgwYSwgMHg1ZSwgMHg0MCwgMHgxZiwgMHhiZSwgMHgyNCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3OCwgMHgwOSwgMHg3ZSwgMHgwMCwgMHgwMywgMHg3YSwgMHgwMywgMHg5MCwgMHgwMCwgMHg4MCwgMHgwNywgMHg3ZSwgMHgwMCwgMHgwMiwgMHg3YSwgCi0gICAgMHgwMywgMHg5MCwgMHgwMCwgMHg3NSwgMHhiMCwgMHhkZiwgMHg3ZSwgMHgwMCwgMHgwMSwgMHg3YSwgMHgwMywgMHg5NCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgCi0gICAgMHgyNCwgMHg3ZSwgMHgwMCwgMHgwMSwgMHg3YSwgMHgwMywgMHg5MywgMHgwMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHhhNSwgMHhkOCwgMHhmZCwgMHg3NSwgMHhhOCwgCi0gICAgMHgwMCwgMHg3NSwgMHhiMSwgMHgwMCwgMHhjYSwgMHgyOSwgMHgxMiwgMHgwYywgMHg2NiwgMHgxMiwgMHgwYywgMHgzNywgMHhmNSwgMHgyMSwgMHg3YSwgMHhhMSwgCi0gICAgMHgyMCwgMHgyMCwgMHgwOSwgMHgwOCwgMHgyMCwgMHgwYSwgMHgwYSwgMHg3ZSwgMHhiMCwgMHgwYywgMHg4MCwgMHgwOCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg4MCwgCi0gICAgMHgwMywgMHg3ZSwgMHhiMCwgMHgwOCwgMHg3YSwgMHhiMywgMHg5MiwgMHgwMCwgMHgxMiwgMHgwMiwgMHg5NiwgMHhkYSwgMHgyOSwgMHg3NCwgMHgxMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgwMSwgMHg3ZSwgMHgyMCwgMHgwNCwgMHg3YywgMHhiMiwgMHhjMiwgMHhkNywgMHgxMywgMHgxMywgMHgxMywgMHgxMywgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3NCwgMHgwMiwgCi0gICAgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHhhNSwgMHhkYSwgMHhkZiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgxYywgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgCi0gICAgMHgzNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMywgMHg3NCwgMHgzZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwNiwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHg0NCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHhlZiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHgwNywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgCi0gICAgMHhiMywgMHg5MSwgMHgwNywgMHg3YSwgMHhiMSwgMHgwYSwgMHg3NSwgMHgwOSwgMHgwMSwgMHhkMiwgMHhhYSwgMHhkMiwgMHhhZiwgMHhlNCwgMHg3ZSwgMHg2MCwgCi0gICAgMHgwMiwgMHg0ZCwgMHgyMiwgMHg3OCwgMHgwMywgMHg3ZSwgMHg2MCwgMHgwMywgMHg3YywgMHg3NiwgMHg3ZSwgMHgwNCwgMHgyOCwgMHgwMCwgMHg4ZCwgMHhlZiwgCi0gICAgMHgxYiwgMHgwNCwgMHg3OCwgMHhmYSwgMHgwNCwgMHg3ZSwgMHgyMCwgMHgwNywgMHg3YSwgMHgyMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHgyMywgMHg5MSwgMHgwNywgCi0gICAgMHg3ZSwgMHgzMSwgMHgwYSwgMHhiYywgMHgzMiwgMHg2OCwgMHgyMiwgMHg3YSwgMHgyMSwgMHgwYSwgMHg3ZSwgMHgyMSwgMHgwOSwgMHg2OCwgMHgxNywgMHhjYSwgCi0gICAgMHhiOCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg0NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwNywgMHhkYSwgMHhiOCwgMHg3NSwgMHgwOSwgMHgwMCwgMHgzMCwgMHhlMCwgMHhjMSwgMHg2YywgMHg2NywgMHg3YSwgMHg2MywgMHg5MCwgMHgwMCwgMHg4MCwgCi0gICAgMHhiOSwgMHhiZSwgMHhiMCwgMHgwMiwgMHgyMiwgMHhjMCwgMHhkMCwgMHg3NSwgMHgwOCwgMHhmZSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMiwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3NCwgCi0gICAgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHg3NCwgMHgwMiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHgzMCwgCi0gICAgMHhlMCwgMHgwOCwgMHg3NCwgMHgxOCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMSwgMHg4MCwgMHgwNiwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMSwgCi0gICAgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHgwMiwgMHgwMiwgMHgzNiwgMHg3NSwgMHgwOCwgMHhmZiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgCi0gICAgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgwNywgMHg1NCwgCi0gICAgMHhmYywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgMHgzMiwgMHhjYSwgMHhiOCwgMHg3NSwgMHgwOCwgMHgwMiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgCi0gICAgMHg5MSwgMHgwMywgMHgyMCwgMHhlNSwgMHgwOCwgMHgzMCwgMHhlMCwgMHgyYiwgMHgxMiwgMHgwMiwgMHg5ZSwgMHg4MCwgMHhmMSwgMHg3ZSwgMHhiMywgMHg5MSwgCi0gICAgMHgwNCwgMHgzMCwgMHhlMCwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMiwgMHgzOSwgMHgzMCwgMHhlMSwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMSwgCi0gICAgMHhmNSwgMHgzMCwgMHhlNiwgMHgwNSwgMHgxMiwgMHgwNCwgMHgwMywgMHg4MCwgMHhkNSwgMHgzMCwgMHhlMiwgMHgwNSwgMHhkYSwgMHhiOCwgMHgwMiwgMHgwMCwgCi0gICAgMHg4MCwgMHg4MCwgMHhjYiwgMHhkYSwgMHhiOCwgMHgzMiwgCi0KLS8vIFNlZ21lbnQgIzE0LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmYzMWQ3LCBMZW5ndGggMQotCi0KLS8vIFNlZ21lbnQgIzE1LCBTdGFydCBBZGRyZXNzIDAwZmYwMjk2LCBMZW5ndGggMjA5MAotMHhmZiwweDAwLDB4OTYsMHgwMiwweDJhLDB4MDgsCi0gICAgMHhlNCwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMSwgMHgwMiwgMHgwMywgMHg0MSwgMHhjYSwgMHgwYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgyYiwgMHhjYSwgMHgzYiwgCi0gICAgMHhjYSwgMHg0YiwgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHhjYSwgMHg3YiwgMHhjYSwgMHhlYiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgCi0gICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgxYywgMHhiNCwgMHgwMSwgMHgxOSwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgCi0gICAgMHg1NCwgMHgxNCwgMHg2OCwgMHgwNSwgMHgxMiwgMHgwMywgMHgwNSwgMHg4MCwgMHgyMywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgzMCwgMHhlNSwgMHgxYywgCi0gICAgMHgxMiwgMHgwNCwgMHg0MywgMHg4MCwgMHgxNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgzMCwgMHhlNSwgMHgwNSwgMHgxMiwgMHgwNCwgMHg0MywgMHg4MCwgCi0gICAgMHgwYiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHg1NCwgMHgxNCwgMHg2OCwgMHgwMywgMHgxMiwgMHgwMywgMHgwNSwgMHhkYSwgMHhlYiwgMHhkYSwgMHg3YiwgCi0gICAgMHhkYSwgMHg2YiwgMHhkYSwgMHg1YiwgMHhkYSwgMHg0YiwgMHhkYSwgMHgzYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHgyMCwgCi0gICAgMHhlNCwgMHgxOSwgMHg3NSwgMHgwOCwgMHgwYSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZCwgMHg3MCwgMHgwYSwgMHg3ZSwgMHhiMywgCi0gICAgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMSwgMHgxZiwgMHgwMiwgMHgwMywgMHg5ZCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NSwgMHgwOCwgMHgwYiwgMHgxMiwgMHgwYSwgCi0gICAgMHhjMCwgMHg3NCwgMHgxNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiNCwgMHgwMiwgMHgwYywgMHgxMiwgMHgwMywgCi0gICAgMHg0ZCwgMHgwMiwgMHgwMywgMHg0MSwgMHg3NCwgMHgwNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMywgCi0gICAgMHgwMSwgMHgyZSwgMHg3YSwgMHgwMywgMHgwMSwgMHgyZiwgMHgyMiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNSwgMHg1NCwgMHg2MCwgMHg2MCwgMHgwNSwgMHhiNCwgCi0gICAgMHg0MCwgMHgxZSwgMHg4MCwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwNSwgMHgxNSwgMHg3NSwgMHgwOCwgMHg3MSwgMHgxMiwgMHgwYSwgCi0gICAgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHhhMCwgMHgwMSwgMHg3YSwgMHhhMywgMHg5MSwgMHgwNiwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNywgCi0gICAgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgyMiwgMHhiZSwgMHg1NywgCi0gICAgMHgwMSwgMHgyYiwgMHgyOCwgMHgwNCwgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHg3YSwgMHgwZiwgMHgwMSwgMHgzMSwgMHg3YSwgMHg1NywgMHgwMSwgMHgzNSwgCi0gICAgMHg3NCwgMHgxMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgCi0gICAgMHgxYSwgMHg3MCwgMHg1MywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMCwgMHhlNCwgMHg0YywgMHg3ZSwgMHhlZiwgMHgwMSwgMHgzMSwgMHg3ZSwgMHhmNywgCi0gICAgMHgwMSwgMHgzNSwgMHg3ZSwgMHgwNywgMHgwMSwgMHgzNSwgMHg0ZCwgMHgwMCwgMHg2OCwgMHgyMSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHhlMCwgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgxNywgMHhhMywgMHhhNSwgMHgwOCwgMHgxYiwgMHhmNCwgMHg2OCwgMHgwNiwgMHhhNSwgMHhiOCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgxOSwgMHg3ZSwgCi0gICAgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZSwgMHhiZSwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwZCwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3YSwgMHhiMywgCi0gICAgMHgwMSwgMHgyZSwgMHg3NCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxZSwgMHg3YSwgMHhlZiwgMHgwMSwgMHgzMSwgMHg3YSwgMHhmNywgMHgwMSwgMHgzNSwgCi0gICAgMHg3NSwgMHgwOCwgMHgwNiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwNCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHhjYSwgMHgwYiwgMHhjYSwgCi0gICAgMHgxYiwgMHhjYSwgMHgyYiwgMHhjYSwgMHgzYiwgMHhjYSwgMHg0YiwgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHhjYSwgMHg3YiwgMHhjYSwgMHhlYiwgMHg3NSwgCi0gICAgMHgwOCwgMHgwMywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHgxMiwgMHgwNCwgMHhiMiwgMHhkYSwgMHhlYiwgMHhkYSwgMHg3YiwgMHhkYSwgMHg2YiwgCi0gICAgMHhkYSwgMHg1YiwgMHhkYSwgMHg0YiwgMHhkYSwgMHgzYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHg3NSwgMHgwOCwgMHgwMywgCi0gICAgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyZiwgMHhiNCwgMHgwMiwgMHgxMSwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZiwgCi0gICAgMHg3YSwgMHhiMywgMHgwMSwgMHgyZSwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHgyMiwgMHhiNCwgMHgwMSwgMHg0NiwgMHg3ZSwgMHhiMywgCi0gICAgMHg5MSwgMHgwNCwgMHgyMCwgMHhlNiwgMHg0MiwgMHg3ZSwgMHgyMywgMHg5MSwgMHgxYSwgMHg3YywgMHgzMiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgzMCwgMHgyYywgCi0gICAgMHgyMSwgMHg3YSwgMHgyMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHgyZSwgMHgwNCwgMHgwMSwgMHgzNywgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNiwgCi0gICAgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHhhNSwgMHhkYiwgMHhmNCwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNCwgMHg3NSwgMHgwOCwgCi0gICAgMHg3MCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHhhMywgMHgwMSwgMHgyYywgMHhiYywgMHhhYiwgMHg3OCwgMHgwMywgCi0gICAgMHgxMiwgMHgwNSwgMHg1MiwgMHgyMiwgMHgwMiwgMHgwOSwgMHg4YiwgMHhkYSwgMHg1OSwgMHgwMiwgMHgwNCwgMHgxNSwgMHg3NCwgMHhlMCwgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgwMCwgMHg3ZSwgMHgwMywgMHg5MSwgMHgxMCwgMHg3ZSwgMHgxMywgMHg5MSwgMHgxMSwgMHg3ZSwgMHgzMywgMHg5MSwgMHgxMiwgMHg3ZSwgMHgyMywgCi0gICAgMHg5MSwgMHgxMywgMHg3ZSwgMHg1MywgMHg5MSwgMHgxNCwgMHg3ZSwgMHg0MywgMHg5MSwgMHgxNSwgMHg3ZSwgMHg3MywgMHg5MSwgMHgxNiwgMHg3ZSwgMHg2MywgCi0gICAgMHg5MSwgMHgxNywgMHg3YSwgMHgwZiwgMHgwMSwgMHgyNSwgMHg3YSwgMHgxZiwgMHgwMSwgMHgyOSwgMHg3NSwgMHgwOCwgMHgwNCwgMHgxMiwgMHgwYSwgMHhjMCwgCi0gICAgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgyMSwgMHgwOCwgMHgxMiwgCi0gICAgMHgwYSwgMHhjMCwgMHg3YSwgMHgzMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg0MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg1MSwgCi0gICAgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg2MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHg3MSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgCi0gICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwNCwgMHgxMiwgMHgwNSwgMHgyNiwgMHgyMiwgCi0gICAgMHg2ZCwgMHgwMCwgMHg3ZSwgMHgxNCwgMHgwMSwgMHgwMiwgMHg3YSwgMHgwNywgMHgwMSwgMHgzNSwgMHg3YSwgMHgwMywgMHgwMSwgMHgzMCwgMHg3ZSwgMHhiMywgCi0gICAgMHgwMSwgMHgyNSwgMHgyMCwgMHhlNywgMHgwZiwgMHg3YSwgMHgyMywgMHgwMSwgMHgyZiwgMHg3YSwgMHgzMywgMHgwMSwgMHgyZSwgMHhiZSwgMHgwNywgMHgwMSwgCi0gICAgMHgyYiwgMHg2OCwgMHgwOSwgMHgyMiwgMHg3YSwgMHgzMywgMHgwMSwgMHgyZiwgMHg3YSwgMHgyMywgMHgwMSwgMHgyZSwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNSwgCi0gICAgMHg1NCwgMHhlMywgMHgyMywgMHgyMywgMHgzMCwgMHhlMCwgMHgwMiwgMHhkMiwgMHhlNSwgMHgzMCwgMHhlNywgMHgwMiwgMHhkMiwgMHhlNCwgMHgzMCwgMHhlNSwgCi0gICAgMHgwNiwgMHgzMCwgMHhlNCwgMHgwMywgMHgwMiwgMHgwOSwgMHg4YiwgMHg1NCwgMHgzZSwgMHhmNSwgMHhmMCwgMHgwMywgMHg1NCwgMHgxZiwgMHhjMywgMHgyNSwgCi0gICAgMHhmMCwgMHg5MCwgMHgwNSwgMHg3ZSwgMHg3NSwgMHg4NCwgMHhmZiwgMHg3MywgMHgwMiwgMHgwNywgMHgzOSwgMHgwMiwgMHgwNSwgMHhjNiwgMHgwMiwgMHgwNywgCi0gICAgMHhkMiwgMHgwMiwgMHgwNywgMHhlZCwgMHgwMiwgMHgwNiwgMHhkMCwgMHgwMiwgMHgwNiwgMHg1YiwgMHgwMiwgMHgwOCwgMHgxZSwgMHgwMiwgMHgwOCwgMHgxZSwgCi0gICAgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgCi0gICAgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyMSwgMHgwMiwgMHgwOCwgMHgyNywgMHgwMiwgMHgwOCwgMHhmOSwgMHgwMiwgMHgwOCwgCi0gICAgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgMHgwMiwgMHgwOCwgMHgyNCwgCi0gICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgCi0gICAgMHhiNCwgMHgwNiwgMHgyYSwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNywgMHg2MCwgMHg3OSwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgyOCwgMHg3ZSwgCi0gICAgMHgxNywgMHgwMSwgMHgyOSwgMHg3NSwgMHgwOCwgMHg3MiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgCi0gICAgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg0MCwgMHg1OCwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwOCwgMHgxYywgCi0gICAgMHg3NSwgMHgwOCwgMHg3NCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMSwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgCi0gICAgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwMCwgMHgzMywgMHg3NSwgCi0gICAgMHgwOCwgMHg3NSwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHg3ZSwgCi0gICAgMHhiMywgMHgzZiwgMHhmMiwgMHgzMCwgMHhlMCwgMHgwNywgMHg3NCwgMHgwMiwgMHg3YSwgMHgwYiwgMHhiMCwgMHg4MCwgMHgwNSwgMHg3NCwgMHgwMCwgMHg3YSwgCi0gICAgMHgwYiwgMHhiMCwgMHgwYiwgMHgxNCwgMHg3NCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMiwgMHhkYSwgMHgwYiwgMHgwMiwgCi0gICAgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMCwgMHg1ZiwgMHg3NSwgMHgwOCwgMHg3NiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgCi0gICAgMHgwMSwgMHgyYSwgMHg1NCwgMHgwZiwgMHhiNCwgMHgwMiwgMHgwNSwgMHg3ZSwgMHhiMCwgMHg2MCwgMHg4MCwgMHgxNywgMHhiNCwgMHgwMCwgMHgwNSwgMHg3ZSwgCi0gICAgMHhiMCwgMHgwMCwgMHg4MCwgMHgwZiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHgyMCwgMHhlNywgMHgwNSwgMHg3ZSwgMHhiMCwgMHg0MCwgMHg4MCwgMHgwMywgCi0gICAgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxMSwgMHgzMCwgMHhlMCwgMHgwNCwgMHg3NCwgMHgwMSwgCi0gICAgMHg4MCwgMHgwMiwgMHg3NCwgMHgwMCwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHg3YSwgMHgwYiwgCi0gICAgMHhiMCwgMHgwYiwgMHgxNCwgMHg3NCwgMHgwMCwgMHg3YSwgMHgwYiwgMHhiMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHg1NCwgCi0gICAgMHgwMCwgMHgwMiwgMHhkYSwgMHgwYiwgMHgwMiwgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHg1NCwgMHgwZiwgCi0gICAgMHhiNCwgMHgwMiwgMHgwNSwgMHg3ZSwgMHhiMCwgMHg2MCwgMHg4MCwgMHgxNywgMHhiNCwgMHgwMCwgMHgwNSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg4MCwgMHgwZiwgCi0gICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyYSwgMHgyMCwgMHhlNywgMHgwNSwgMHg3ZSwgMHhiMCwgMHg0MCwgMHg4MCwgMHgwMywgMHg3ZSwgMHhiMCwgMHgyMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiNCwgMHgwMCwgMHgyNiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMSwgCi0gICAgMHgwZSwgMHg3NSwgMHgwOCwgMHg3NywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg4MCwgMHgxYiwgMHhiNCwgCi0gICAgMHgwMywgMHgwZSwgMHg3NSwgMHgwOCwgMHg3OCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMSwgMHg4MCwgMHgwYSwgCi0gICAgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHgxMiwgMHgwOSwgMHg4YiwgMHgyMiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgCi0gICAgMHgwMiwgMHgwMywgMHg3NywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwOSwgMHgxZiwgMHg3NSwgMHgwOCwgMHg3OSwgMHgxMiwgMHgwYSwgMHhjMCwgCi0gICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiZSwgMHhiMywgMHgzZiwgMHhmMSwgMHg2OCwgMHgwZCwgMHhjYSwgMHhiOCwgMHgxMiwgMHgwMSwgMHhmMSwgMHhkYSwgCi0gICAgMHhiOCwgMHg1MCwgMHg3NiwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMSwgMHg4MCwgMHg2ZCwgMHhiNCwgMHgwNSwgMHgwOCwgMHg3NSwgMHgwOCwgMHg3YSwgMHgxMiwgCi0gICAgMHgwYSwgMHhjMCwgMHg4MCwgMHg2MiwgMHhiNCwgMHgwMywgMHgxOSwgMHg3NSwgMHgwOCwgMHg3YiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgCi0gICAgMHgyOCwgMHhiNCwgMHgwMSwgMHg1NSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg0NCwgMHgwMSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgMHg0NiwgCi0gICAgMHhiNCwgMHgwMSwgMHgxOSwgMHg3NSwgMHgwOCwgMHg3YywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHhiNCwgMHgwMSwgMHgzOSwgCi0gICAgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg1NCwgMHhmZSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgMHgyYSwgMHhiNCwgMHgwNywgMHgyYSwgMHg3ZSwgCi0gICAgMHhiMywgMHgwMSwgMHgyNywgMHg2MCwgMHgyNCwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHgxNywgMHgwMSwgMHgyOSwgMHg3NSwgCi0gICAgMHgwOCwgMHg3MywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgCi0gICAgMHhjMCwgMHgxMiwgMHgwYSwgMHgwYSwgMHg0MCwgMHgwMywgMHgwMiwgMHgwMywgMHg3NywgMHgwMiwgMHgwOSwgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgCi0gICAgMHhiNCwgMHgwYiwgMHhmNiwgMHg3NSwgMHgwOCwgMHg3ZCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3ZSwgMHhhMywgMHgwMSwgCi0gICAgMHgyYSwgMHg0YywgMHhhYiwgMHg3OCwgMHhlNCwgMHg4MCwgMHhkZiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwYSwgMHhjZiwgMHg3NSwgMHgwOCwgMHg3ZSwgMHgxMiwgMHgwYSwgMHhjMCwgCi0gICAgMHg3ZSwgMHhiMywgMHgwMSwgMHgyOCwgMHg3MCwgMHhjMywgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYiwgCi0gICAgMHhiMCwgMHg3ZSwgMHg1NCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHgwMiwgMHgwOSwgMHg4YiwgMHgwMiwgMHgwOSwgCi0gICAgMHg4YiwgMHg3ZSwgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwNCwgMHgyMCwgMHg3NSwgMHgwOCwgMHhjMywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwNCwgCi0gICAgMHgwMCwgMHgwMSwgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHg3ZSwgMHgxOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgxYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NywgCi0gICAgMHgwMSwgMHgyYiwgMHgxMiwgMHgwYSwgMHhjYywgMHgwMiwgMHgwOCwgMHhmMywgMHhiNCwgMHgwNiwgMHg0MiwgMHg3NSwgMHgwOCwgMHhjMSwgMHgxMiwgMHgwYSwgCi0gICAgMHhjMCwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHhmZSwgMHg3ZCwgMHhjYSwgMHg3ZSwgMHhkNywgMHgwMSwgMHgyNywgMHg3ZSwgCi0gICAgMHg3OCwgMHgwMSwgMHgzNywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3NywgMHgwMSwgMHgyYiwgMHg3NSwgMHgwOCwgMHhjMSwgMHgxMiwgMHgwYSwgCi0gICAgMHhjMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg3ZSwgCi0gICAgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHg0MCwgMHg2NSwgMHg4MCwgMHg2MCwgMHhiNCwgMHgwMCwgMHgyNCwgCi0gICAgMHhjMiwgMHhhZiwgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5NCwgMHgwMCwgMHg3YSwgMHhiMywgMHgwMSwgMHgyNCwgMHgxMiwgMHgwMywgMHg3NywgCi0gICAgMHhlNCwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgMHhkNSwgMHhlMCwgMHhmNywgMHhjMCwgMHhkMSwgMHhjYSwgMHgwMiwgMHhmZiwgMHhjYSwgCi0gICAgMHgwNiwgMHgwMCwgMHgwMCwgMHgzMiwgMHhiNCwgMHgwOSwgMHgyMCwgMHg3NCwgMHgwMywgMHg3YSwgMHhiMywgMHg5MSwgMHgwNiwgMHg3ZSwgMHgyMywgMHg5MSwgCi0gICAgMHgwNywgMHg3ZSwgMHg1NywgMHgwMSwgMHgyNywgMHg0ZCwgMHg1NSwgMHg2OCwgMHgwNSwgMHg0ZSwgMHgyMCwgMHgwMiwgMHg4MCwgMHgwMywgMHg1ZSwgMHgyMCwgCi0gICAgMHhmZCwgMHg3YSwgMHgyMywgMHg5MSwgMHgwNywgMHg4MCwgMHgxNiwgMHhiNCwgMHgwNywgMHgxNiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHgwNywgMHgwMSwgMHgyOSwgCi0gICAgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHhjMCwgMHhkMSwgMHhjYSwgMHgxOCwgMHhjYSwgMHgzOCwgMHhjYSwgMHgyOCwgMHgzMiwgMHgwMiwgMHgwMywgMHg3NywgCi0gICAgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg2MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxYywgMHg3ZSwgCi0gICAgMHhiMywgMHgwMSwgMHgyNiwgMHhiNCwgMHgwMywgMHgxNSwgMHg3NSwgMHgwOCwgMHhjMiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMSwgCi0gICAgMHg3ZSwgMHgxNywgMHgwMSwgMHgyNywgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgMHgwNSwgMHg0MSwgMHg3NSwgMHgwOCwgCi0gICAgMHhjMCwgMHgxMiwgMHgwYSwgMHhjMCwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHg3ZSwgCi0gICAgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNywgMHgwMSwgMHgyNywgMHg3ZSwgCi0gICAgMHg0NywgMHgwMSwgMHgyYiwgMHgxMiwgMHgwYSwgMHhjYywgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgCi0gICAgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg1NywgMHgwMSwgMHgyYiwgMHgwMiwgMHgwMywgMHg4NCwgMHhiNCwgCi0gICAgMHgwMSwgMHgyMCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3ZSwgMHgxMCwgMHgwMSwgMHg3NSwgMHgwOCwgMHg3MiwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgwMSwgCi0gICAgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHg3YSwgMHgxMSwgMHgwOCwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwOSwgMHhkMCwgMHg0MCwgMHgwMywgMHgwMiwgCi0gICAgMHgwMywgMHg4NCwgMHgwMiwgMHgwOSwgMHg4YiwgMHg3NSwgMHgwOCwgMHgwNywgMHgxMiwgMHgwYSwgMHhjMCwgMHg3ZSwgMHhiMCwgMHgwMiwgMHg3YSwgMHhiMywgCi0gICAgMHg5MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNSwgMHg3NCwgMHgwMSwgCi0gICAgMHg3YSwgMHhiMywgMHg5MSwgMHgxMSwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNSwgMHg1NCwgMHg2MCwgMHhiZSwgMHhiMCwgMHg0MCwgMHg2OCwgMHgwOCwgMHg3NCwgCi0gICAgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxNSwgMHg4MCwgMHhlZCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMiwgMHg3NCwgMHgwNCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgxNCwgMHg3NCwgMHhmZiwgMHg3YSwgMHhiMywgMHgwMSwgMHgyZCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgCi0gICAgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgMHgwYSwgMHg1NywgMHg0MCwgMHgxZiwgMHg3ZSwgMHgwOCwgMHgwMSwgMHgzNywgMHg3YSwgMHgwYywgCi0gICAgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHhjYSwgMHg0OSwgMHgxMiwgMHgwYSwgMHhjYywgMHhkYSwgMHg1OSwgMHhkYSwgMHgwYiwgMHg3ZSwgMHg0MywgMHgwMSwgCi0gICAgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgCi0gICAgMHgwMCwgMHhkMCwgMHhhOCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHg3ZSwgMHg0MCwgMHgwMSwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHgxMiwgCi0gICAgMHgwYSwgMHg1NywgMHg0MCwgMHgzMSwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHhmZSwgMHg3ZiwgMHg2MSwgMHg3ZSwgMHg3OCwgCi0gICAgMHgwMSwgMHgzNywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg3NywgMHgwMSwgMHgyYiwgMHhiZCwgMHg3NCwgMHg3OCwgMHgxNywgMHg3NSwgMHgwOCwgCi0gICAgMHhjMSwgMHgxMiwgMHgwYSwgMHhjMCwgMHgxMiwgMHgwYiwgMHg2MywgMHg0MCwgMHgwYywgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgCi0gICAgMHgwMCwgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHg3ZSwgMHg0MywgMHgwMSwgMHgyNCwgMHg3YSwgMHg0MywgMHg5NCwgMHgwMCwgMHhkMCwgMHhhOCwgMHhkMywgCi0gICAgMHgyMiwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNCwgMHg3ZiwgMHhjYSwgMHgwYiwgMHgxYSwgMHg1MCwgMHhjNSwgMHhmMCwgMHg3ZCwgMHg2MiwgCi0gICAgMHg3ZCwgMHg3NSwgMHg3ZCwgMHg4NywgMHg3ZSwgMHgzNCwgMHg3ZiwgMHgwMywgMHg3ZSwgMHgxYiwgMHhiMCwgMHhiYywgMHgwYiwgMHg1MCwgMHg0OSwgMHgzZSwgCi0gICAgMHgwMCwgMHgzZSwgMHgwMCwgMHgwYSwgMHg1MCwgMHgyZCwgMHg3NSwgMHgwYiwgMHgzYSwgMHgzMCwgMHg2OSwgMHg1MywgMHgwMCwgMHgwMiwgMHhiZCwgMHgzOCwgCi0gICAgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiYywgMHgxYiwgMHg1MCwgMHgzMCwgMHgzZSwgMHgxMCwgMHgzZSwgMHgxMCwgMHgwYSwgMHg1MSwgMHgyZCwgMHgzNSwgCi0gICAgMHg2OSwgMHg0MSwgMHgwMCwgMHgwMiwgMHgwYiwgMHgxYSwgMHgzMCwgMHhiZCwgMHgzOCwgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiZSwgMHg0NCwgMHhmZiwgCi0gICAgMHhmZiwgMHg3OCwgMHgwNSwgMHg3ZSwgMHgxYiwgMHg5MCwgMHgwYSwgMHg0OSwgMHg0ZCwgMHg0NCwgMHg2OCwgMHgwYywgMHhiZSwgMHg0NCwgMHgwMCwgMHhmZiwgCi0gICAgMHgyOCwgMHgwNCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgCi0KLS8vIFNlZ21lbnQgIzE2LCBFWENMVURFRCBTdGFydCBBZGRyZXNzIDAwZmY3YzAwLCBMZW5ndGggMjI3Ci0KLQotLy8gU2VnbWVudCAjMTcsIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjdmMDAsIExlbmd0aCAxOTIKLQotCi0vLyBTZWdtZW50ICMxNywgU3RhcnQgQWRkcmVzcyAwMGZmN2ZjMCwgTGVuZ3RoIDY0Ci0weGZmLDB4MDAsMHhjMCwweDdmLDB4NDAsMHgwMCwKLSAgICAweDQwLCAweDAxLCAweDAyLCAweDAwLCAweGQ3LCAweDMxLCAweDAyLCAweDAwLCAweDAzLCAweDAwLCAweDAwLCAweDdjLCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGYxLCAweDdmLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAKLQotLy8gU2VnbWVudCAjMTgsIFN0YXJ0IEFkZHJlc3MgMDBmZjBhYzAsIExlbmd0aCA0MTYzCi0weGZmLDB4MDAsMHhjMCwweDBhLDB4NDMsMHgxMCwKLSAgICAweGNhLCAweDA4LCAweDdlLCAweDAxLCAweDA4LCAweDdhLCAweDAzLCAweDNmLCAweGYwLCAweGRhLCAweDA4LCAweDIyLCAweDgwLCAweDUwLCAweDBiLCAweDFhLCAKLSAgICAweDYwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDcwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDgwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweDkwLCAKLSAgICAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGEwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGIwLCAweDBiLCAweDM1LCAweDBiLCAweDFhLCAweGMwLCAweDBiLCAKLSAgICAweDM1LCAweDBiLCAweDFhLCAweGQwLCAweDBiLCAweDM1LCAweDFiLCAweDBhLCAweDYwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweDcwLCAweDBiLCAweDE1LCAKLSAgICAweDFiLCAweDBhLCAweDgwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweDkwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGEwLCAweDBiLCAweDE1LCAweDFiLCAKLSAgICAweDBhLCAweGIwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGMwLCAweDBiLCAweDE1LCAweDFiLCAweDBhLCAweGQwLCAweDBiLCAweDE1LCAweDllLCAweDQ0LCAKLSAgICAweDAwLCAweDEwLCAweDUwLCAweGFhLCAweDJlLCAweDQ0LCAweDAwLCAweDEwLCAweDY4LCAweDBlLCAweDdlLCAweDFiLCAweGMwLCAweDdhLCAweDBiLCAweGMwLCAKLSAgICAweDBiLCAweDE0LCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDc4LCAweGYyLCAweDIyLCAweDdmLCAweDZmLCAweDdmLCAweGYwLCAweDFiLCAweGZjLCAweDdjLCAKLSAgICAweDU0LCAweDdkLCAweDMyLCAweDgwLCAweDA4LCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweDllLCAweDQ0LCAweDAwLCAKLSAgICAweDEwLCAweDUwLCAweGYyLCAweDJlLCAweDQ0LCAweDAwLCAweDEwLCAweDY4LCAweDA2LCAweGNhLCAweDQ4LCAweDFiLCAweDQ0LCAweDc4LCAweGZhLCAweDdmLCAKLSAgICAweGY2LCAweDg5LCAweGU0LCAweGNhLCAweDZiLCAweDVlLCAweGQ0LCAweDAwLCAweDNmLCAweDY4LCAweDIwLCAweDdlLCAweDg0LCAweDAwLCAweDQwLCAweDlkLCAKLSAgICAweDhkLCAweGRhLCAweDZiLCAweGJkLCAweDg3LCAweDM4LCAweDE2LCAweGNhLCAweDc5LCAweDdkLCAweDc4LCAweDEyLCAweDBiLCAweDhkLCAweGRhLCAweDc5LCAKLSAgICAweDQwLCAweDA4LCAweDlkLCAweDc4LCAweDY4LCAweDAyLCAweDgwLCAweDA1LCAweGMyLCAweGQ3LCAweDIyLCAweGRhLCAweDZiLCAweDdlLCAweGMwLCAweDAzLCAKLSAgICAweDdlLCAweGQwLCAweDAwLCAweDdhLCAweGQzLCAweDkwLCAweDAwLCAweDc0LCAweGFhLCAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDc0LCAweDU1LCAweDM5LCAKLSAgICAweGI1LCAweDJhLCAweGFhLCAweDc0LCAweGEwLCAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDdlLCAweDA0LCAweDAwLCAweDQwLCAweDlkLCAweDcwLCAweDUwLCAKLSAgICAweDA2LCAweDJkLCAweDcwLCAweDdkLCAweDA3LCAweDZkLCAweDc3LCAweDdjLCAweDMxLCAweDdlLCAweDdiLCAweDAwLCAweDdhLCAweDZiLCAweDAwLCAweDBiLCAKLSAgICAweDdjLCAweDBiLCAweDZjLCAweGE1LCAweGQ5LCAweGYzLCAweDdmLCAweDE2LCAweDFiLCAweDFjLCAweDdlLCAweDU0LCAweDI3LCAweDEwLCAweDdlLCAweDFiLCAKLSAgICAweDEwLCAweGJjLCAweDEwLCAweDY4LCAweDA2LCAweDFiLCAweDU0LCAweDc4LCAweGY1LCAweDgwLCAweDJmLCAweDZkLCAweDAwLCAweDdjLCAweDIwLCAweDdmLCAKLSAgICAweDE2LCAweDlmLCAweDEwLCAweDdmLCAweDI3LCAweDlmLCAweDIwLCAweDdlLCAweDJiLCAweDAwLCAweDdlLCAweDFiLCAweDEwLCAweGJjLCAweDAxLCAweDc4LCAKLSAgICAweDE5LCAweDBiLCAweDJjLCAweDBiLCAweDFjLCAweGE1LCAweGRiLCAweGVmLCAweDdjLCAweGI2LCAweDIwLCAweGUwLCAweDA2LCAweDZjLCAweGRjLCAweDdhLCAKLSAgICAweGQzLCAweDkwLCAweDAwLCAweDRkLCAweDc3LCAweDc4LCAweDkwLCAweGMyLCAweGQ3LCAweDIyLCAweGQyLCAweGQ3LCAweDIyLCAweDAwLCAweDA0LCAweDAwLCAKLSAgICAweDA0LCAweDAwLCAweDAwLCAweDA2LCAweDA0LCAweDAyLCAweDA0LCAweDAwLCAweDAyLCAweDAxLCAweDA0LCAweDAxLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAKLSAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAyLCAweDAyLCAweDAyLCAweDAyLCAweDA0LCAweDAwLCAweDA4LCAweDEwLCAweDAyLCAweDEwLCAKLSAgICAweDA0LCAweDAyLCAweDA4LCAweDAwLCAweDAxLCAweDAxLCAweDA4LCAweDdlLCAweDE4LCAweDdmLCAweGJkLCAweDdhLCAweDFjLCAweDAwLCAweGZmLCAweDBiLCAKLSAgICAweDFhLCAweDAwLCAweDVlLCAweDEwLCAweDFmLCAweGJlLCAweDEwLCAweDE0LCAweDM4LCAweDFhLCAweDBhLCAweDUxLCAweDIzLCAweDdlLCAweDE4LCAweDBjLCAKLSAgICAweDBkLCAweDdhLCAweDFjLCAweDAwLCAweGZmLCAweDJkLCAweDM1LCAweDBiLCAweDFhLCAweDUwLCAweDYwLCAweDA4LCAweGE1LCAweGI4LCAweDAyLCAweDAzLCAKLSAgICAweDRlLCAweGEwLCAweDA4LCAweDIyLCAweDgwLCAweGZlLCAweDdlLCAweGU4LCAweDdmLCAweGJmLCAweDdhLCAweGVjLCAweDAwLCAweGZmLCAweGUwLCAweGY1LCAKLSAgICAweDIzLCAweDU0LCAweGMwLCAweDY4LCAweDM4LCAweDdlLCAweGU4LCAweDdmLCAweGJlLCAweDdhLCAweGVjLCAweDAwLCAweGZmLCAweGUwLCAweDYwLCAweDJlLCAKLSAgICAweDEyLCAweDBjLCAweDM3LCAweGY1LCAweDIxLCAweDdhLCAweGExLCAweDIwLCAweDIwLCAweDA5LCAweDBjLCAweDIwLCAweDBhLCAweDEyLCAweDdlLCAweGIwLCAKLSAgICAweDBlLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDgwLCAweDEwLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDgwLCAweDA3LCAKLSAgICAweDdlLCAweGIwLCAweDBhLCAweDdhLCAweGIzLCAweDkyLCAweDAwLCAweDdhLCAweGIxLCAweDBkLCAweDAyLCAweDBjLCAweGM0LCAweDIyLCAweDdlLCAweGIwLCAKLSAgICAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAKLSAgICAweDE5LCAweDBjLCAweDgwLCAweGVhLCAweGMyLCAweGFmLCAweGMyLCAweDExLCAweGMyLCAweDEyLCAweDc1LCAweGIwLCAweGRmLCAweDdlLCAweDAwLCAweDAxLCAKLSAgICAweDdhLCAweDAzLCAweDkzLCAweDAwLCAweDdlLCAweDAwLCAweDAwLCAweDdhLCAweDAzLCAweDkwLCAweDAwLCAweDZjLCAweDAwLCAweDdlLCAweDEwLCAweDAzLCAKLSAgICAweDEyLCAweDBjLCAweGY1LCAweDdlLCAweDY4LCAweDJjLCAweDY2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAKLSAgICAweDgwLCAweDMyLCAweDAyLCAweDFhLCAweDZlLCAweDIwLCAweDExLCAweDJiLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAKLSAgICAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAKLSAgICAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweGE1LCAweGQ5LCAweGRjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweDIyLCAweDdlLCAweDY4LCAweDJjLCAweGY5LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKLSAgICAweGU0LCAweDEwLCAweDAwLCAweDdlLCAweDQwLCAweDU1LCAweDdhLCAweGU5LCAweDQwLCAweDBiLCAweGU0LCAweDdlLCAweDUwLCAweGFhLCAweDdhLCAweGU5LCAKLSAgICAweDUwLCAweDFiLCAweGU0LCAweGJlLCAweGU5LCAweDQwLCAweDY4LCAweDE5LCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDEzLCAweDdhLCAweGU5LCAweDQwLCAweDdlLCAweGU5LCAweDEwLCAweDgwLCAKLSAgICAweGY4LCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDdlLCAweDY4LCAKLSAgICAweDJkLCAweDNkLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdlLCAweDcwLCAweDBlLCAKLSAgICAweDdlLCAweGE0LCAweGZmLCAweGZmLCAweDdlLCAweGI0LCAweGJmLCAweGZmLCAweDdkLCAweGNiLCAweDBlLCAweGM0LCAweDdkLCAweGRjLCAweDVkLCAweGRiLCAKLSAgICAweDZjLCAweGJiLCAweDdkLCAweGZhLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAKLSAgICAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAKLSAgICAweGIwLCAweDBiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDZjLCAweGJiLCAweDdkLCAweGZhLCAKLSAgICAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDQxLCAweDBiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAweGY0LCAweDdmLCAKLSAgICAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDM0LCAweDBiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAKLSAgICAweGIwLCAweDc4LCAweDI3LCAweDBiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweGJlLCAweDdiLCAweGIwLCAweDc4LCAweDFhLCAKLSAgICAweDBiLCAweGIwLCAweGJlLCAweGM0LCAweGZmLCAweGZlLCAweDc4LCAweDkyLCAweDBlLCAweGI0LCAweGE1LCAweGRmLCAweDhiLCAweDdlLCAweDY4LCAweDJjLCAKLSAgICAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDc3LCAweGNhLCAweDViLCAweGNhLCAweDZiLCAweDdlLCAweDY4LCAKLSAgICAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJkLCAweDhmLCAweDdhLCAweDZjLCAweDAwLCAKLSAgICAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBhLCAweDQ3LCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweGRlLCAweDdhLCAweDZjLCAweDAwLCAKLSAgICAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDZjLCAweDc3LCAweGRhLCAweDZiLCAweGNhLCAweDZiLCAweDBiLCAweDcwLCAweDBlLCAweGM0LCAweGJlLCAweGM0LCAKLSAgICAweGZmLCAweGZmLCAweDc4LCAweGY2LCAweDFiLCAweDcwLCAweDBhLCAweDQ3LCAweDEyLCAweDE5LCAweGZhLCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAKLSAgICAweDMwLCAweGRhLCAweDZiLCAweGRhLCAweDViLCAweDZjLCAweGJiLCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdkLCAweGZhLCAweDVlLCAweGY0LCAweDdmLCAKLSAgICAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZiLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZjLCAweDVlLCAKLSAgICAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDdkLCAweGZkLCAweDVlLCAweGY0LCAweDdmLCAweGZmLCAweDdhLCAweDdiLCAweGIwLCAweDgwLCAKLSAgICAweGQ0LCAweDdlLCAweDY4LCAweDJkLCAweDFiLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDMwLCAweDFmLCAweDBlLCAweDdlLCAKLSAgICAweDc4LCAweDA0LCAweDIwLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDQ0LCAweDdiLCAweGUwLCAweDgwLCAweDBjLCAweDdlLCAweDc4LCAweDAwLCAKLSAgICAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweDAxLCAweDdlLCAweDQ0LCAweDgwLCAweDAwLCAweDBiLCAweDAwLCAweDdlLCAweDQwLCAweDNhLCAweDdjLCAweDU0LCAKLSAgICAweDdmLCAweDU3LCAweDdkLCAweDg0LCAweDZjLCAweDY2LCAweDdhLCAweDViLCAweDUwLCAweDBiLCAweDVjLCAweDBiLCAweDUwLCAweGE1LCAweGRlLCAweDAyLCAKLSAgICAweDBiLCAweDUwLCAweDFiLCAweDg0LCAweDc4LCAweGYwLCAweDdjLCAweDU0LCAweDdmLCAweDU3LCAweDdkLCAweDg0LCAweDZjLCAweDY2LCAweGJlLCAweDViLCAKLSAgICAweDUwLCAweDc4LCAweDFhLCAweDBiLCAweDVjLCAweDBiLCAweDUwLCAweGE1LCAweGRlLCAweDAyLCAweDBiLCAweDUwLCAweDFiLCAweDg0LCAweDc4LCAweGVlLCAKLSAgICAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDRiLCAweDdmLCAweDQ1LCAweDdlLCAKLSAgICAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJkLCAweDVmLCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdkLCAweDRiLCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweDc0LCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDZjLCAweDg4LCAweDdjLCAweDk1LCAweDEyLCAweDE5LCAweGZhLCAweDdlLCAweDY4LCAweDJkLCAweDgyLCAKLSAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDRiLCAweDkwLCAweDEyLCAweDE5LCAweGZhLCAweDEyLCAweDE5LCAweDE5LCAKLSAgICAweDMwLCAweDExLCAweDA1LCAweDdlLCAweDRiLCAweDkwLCAweDgwLCAweGZiLCAweDdlLCAweDY4LCAweDJlLCAweDI4LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDdlLCAweGIwLCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDAwLCAweDdlLCAweGEwLCAweDU1LCAweDdhLCAKLSAgICAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweGJjLCAweGFiLCAweDc4LCAweDIwLCAweDdlLCAKLSAgICAweGEwLCAweGFhLCAweDdhLCAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDA3LCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweGJjLCAweGFiLCAKLSAgICAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFiLCAweDdlLCAKLSAgICAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBhLCAKLSAgICAweDdhLCAweGEzLCAweDkxLCAweDEwLCAweDdlLCAweGIzLCAweDkxLCAweDEwLCAweDgwLCAweGY2LCAweDdlLCAweDY4LCAweDJlLCAweDRhLCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDEyLCAweDMxLCAweDBiLCAweDAwLCAweDdlLCAweGU0LCAweDEwLCAweDAwLCAweDdlLCAweGEwLCAKLSAgICAweGE1LCAweGNhLCAweGE4LCAweDdhLCAweGU5LCAweGEwLCAweDdlLCAweGIwLCAweDMwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGEwLCAKLSAgICAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDBiLCAweGU1LCAweDdlLCAweGIwLCAweDIwLCAweDdhLCAKLSAgICAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAKLSAgICAweGRhLCAweGE4LCAweGJjLCAweGFiLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKLSAgICAweGM0LCAweDgwLCAweDFkLCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAKLSAgICAweDE5LCAweDMwLCAweDExLCAweDBjLCAweDdlLCAweGIwLCAweDM4LCAweDdhLCAweGIzLCAweDk1LCAweDAwLCAweDdlLCAweGU5LCAweGIwLCAweDgwLCAweGZiLCAKLSAgICAweDgwLCAweDAwLCAweDdlLCAweDY4LCAweDJkLCAweGU0LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDc1LCAKLSAgICAweGIwLCAweGRmLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweGJlLCAweGIwLCAweDAxLCAweDc4LCAweDBiLCAweDA5LCAKLSAgICAweGIyLCAweDAwLCAweDE0LCAweGJlLCAweGIwLCAweDYwLCAweDc4LCAweDAyLCAweDgwLCAweDE3LCAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDExLCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDgwLCAKLSAgICAweGZhLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJlLCAweDA2LCAKLSAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDBiLCAweDAwLCAweDc1LCAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAKLSAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDdlLCAweGIwLCAweDAxLCAweDE5LCAweGIyLCAweDAwLCAKLSAgICAweDA4LCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDM3LCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDVlLCAweGIwLCAweGMwLCAKLSAgICAweGJlLCAweGIwLCAweGMwLCAweDc4LCAweDJiLCAweDdlLCAweGEwLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDZjLCAweGJiLCAweDE5LCAweGIyLCAKLSAgICAweDAwLCAweDA4LCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDE2LCAweDA5LCAweGIyLCAweDAwLCAweDA4LCAweDVlLCAweGIwLCAKLSAgICAweGMwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGRhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFiLCAKLSAgICAweDdlLCAweDY4LCAweDJjLCAweGRmLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAKLSAgICAweDBhLCAweDE5LCAweGEyLCAweDAwLCAweDFjLCAweDA5LCAweGIyLCAweDAwLCAweDFjLCAweDgwLCAweGY2LCAweDdlLCAweDY4LCAweDJlLCAweDZjLCAweDdhLCAKLSAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDJlLCAweGVlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKLSAgICAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDdlLCAweGIwLCAweDAxLCAweDE5LCAweGIyLCAweDAwLCAweDFjLCAweDJlLCAKLSAgICAweDI0LCAweDAxLCAweDAwLCAweDBiLCAweGIwLCAweGE1LCAweGQ5LCAweGYzLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDdlLCAKLSAgICAweGIwLCAweDAxLCAweDBiLCAweDAwLCAweDA5LCAweGEyLCAweDAwLCAweDFjLCAweGJjLCAweGFiLCAweDc4LCAweDE2LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAKLSAgICAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweDBiLCAweGIwLCAweGE1LCAweGQ5LCAweGUyLCAKLSAgICAweDgwLCAweDI1LCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAKLSAgICAweDMwLCAweDExLCAweGU0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDA5LCAweGEyLCAweDAwLCAweDFjLCAweDJlLCAweDI0LCAKLSAgICAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGY1LCAweDgwLCAweGVjLCAweDdlLCAweDY4LCAweDJmLCAweDEyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKLSAgICAweDE5LCAweGM0LCAweDEyLCAweDEyLCAweDMxLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDc0LCAweDEwLCAKLSAgICAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDEyLCAweDExLCAweGFhLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGVlLCAweDdlLCAweDY4LCAKLSAgICAweDJmLCAweDM2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKLSAgICAweDBiLCAweDAwLCAweGU0LCAweDE5LCAweGIyLCAweDAwLCAweDEwLCAweDEyLCAweDExLCAweGFhLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAKLSAgICAweGVmLCAweDMwLCAweDAwLCAweDAzLCAweDAyLCAweDE3LCAweDNiLCAweDAyLCAweDEyLCAweDZhLCAweDc0LCAweDA3LCAweDE5LCAweGIyLCAweDAwLCAweDA4LCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAKLSAgICAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweDA5LCAweGIyLCAweDAwLCAweDAwLCAweDA5LCAKLSAgICAweGIyLCAweDAwLCAweDE0LCAweGMyLCAweDEzLCAweDdlLCAweGIwLCAweDU1LCAweDEyLCAweDEyLCAweDBiLCAweDdlLCAweGIwLCAweGFhLCAweDEyLCAweDEyLCAKLSAgICAweDBiLCAweDdlLCAweGIwLCAweDAwLCAweDEyLCAweDEyLCAweDBiLCAweDdlLCAweGIwLCAweGZmLCAweDEyLCAweDEyLCAweDBiLCAweDMwLCAweDEzLCAweDBmLCAKLSAgICAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDIyLCAweDdlLCAKLSAgICAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDIyLCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAKLSAgICAweDE4LCAweGZmLCAweDA5LCAweGEyLCAweDAwLCAweDAwLCAweGJjLCAweGFiLCAweDc4LCAweDAxLCAweDIyLCAweDIwLCAweDExLCAweDAzLCAweGQyLCAweDEzLCAKLSAgICAweDIyLCAweDEyLCAweDE5LCAweDE5LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGEyLCAweDAwLCAweDAwLCAweDgwLCAKLSAgICAweGYzLCAweDc1LCAweGIwLCAweGRmLCAweDEyLCAweDE4LCAweGZmLCAweDc1LCAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweDI0LCAweDgwLCAKLSAgICAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDc0LCAweDgwLCAweDE5LCAweGIyLCAweDAwLCAweDBjLCAweDdlLCAweDU0LCAweDAwLCAweDAyLCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDA0LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDE5LCAweGIyLCAweDAwLCAweDBjLCAweDc0LCAweDA2LCAweDE5LCAweGIyLCAKLSAgICAweDAwLCAweDA4LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGRiLCAweDIyLCAweDdlLCAweDY4LCAweDJmLCAweDVhLCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDEyLCAweDE4LCAKLSAgICAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAKLSAgICAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDFhLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKLSAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDA5LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGY3LCAweDJlLCAKLSAgICAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGI2LCAweDdlLCAweDY4LCAweDJmLCAweDdlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKLSAgICAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAKLSAgICAweDE4LCAweDdlLCAweGEwLCAweDU1LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAKLSAgICAweGIwLCAweDBhLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAKLSAgICAweDFhLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAKLSAgICAweDExLCAweDA5LCAweDE5LCAweGEyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGY3LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAKLSAgICAweGQ5LCAweGI2LCAweDMwLCAweDA0LCAweDAzLCAweDAyLCAweDE1LCAweDlmLCAweDdlLCAweDY4LCAweDJmLCAweGEyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAKLSAgICAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDBhLCAKLSAgICAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAKLSAgICAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAKLSAgICAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDBhLCAweDc4LCAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAKLSAgICAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAKLSAgICAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAKLSAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAKLSAgICAweDJmLCAweGVhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKLSAgICAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAKLSAgICAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAKLSAgICAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKLSAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAyLCAKLSAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA1LCAweDc4LCAweDE0LCAKLSAgICAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAKLSAgICAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAKLSAgICAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDMyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKLSAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKLSAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDUwLCAweGJlLCAweGIwLCAweDUwLCAweDc4LCAweDFmLCAweDZjLCAweGFhLCAKLSAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDUwLCAweDc4LCAweDBkLCAKLSAgICAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAKLSAgICAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAKLSAgICAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAKLSAgICAweDAwLCAweGE1LCAweGQ5LCAweGEyLCAweDdlLCAweDY4LCAweDMwLCAweDdhLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAKLSAgICAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweGEwLCAweGJlLCAweGIwLCAweGEwLCAKLSAgICAweDc4LCAweDFmLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAKLSAgICAweGIwLCAweGEwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDgwLCAKLSAgICAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAKLSAgICAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAKLSAgICAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDdlLCAweDY4LCAweDMwLCAweDllLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDIwLCAweGIxLCAweDI2LCAweDdlLCAKLSAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDMwLCAweGIxLCAweDE5LCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDIwLCAweGIxLCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAKLSAgICAweDEyLCAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKLSAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGFlLCAweDAyLCAweDE3LCAweDNiLCAweDdlLCAKLSAgICAweDY4LCAweDJmLCAweGM2LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAKLSAgICAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAKLSAgICAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAKLSAgICAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA2LCAweDc4LCAweDNjLCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAKLSAgICAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAKLSAgICAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA2LCAweDc4LCAKLSAgICAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAKLSAgICAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKLSAgICAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDBlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAKLSAgICAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAKLSAgICAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA5LCAweDc4LCAweDNjLCAweDdlLCAKLSAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDdlLCAweGEwLCAweDAzLCAKLSAgICAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDA5LCAweDc4LCAweDE0LCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKLSAgICAweDE5LCAweGM0LCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweDllLCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAKLSAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGU2LCAweDdlLCAweGEwLCAweDAxLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDdlLCAweDY4LCAweDMwLCAweDU2LCAweDdhLCAKLSAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDkwLCAKLSAgICAweGJlLCAweGIwLCAweDkwLCAweDc4LCAweDFmLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE4LCAweDVlLCAweGIwLCAweDkwLCAweDc4LCAweDBkLCAweDdlLCAweDY4LCAweDJjLCAweGU3LCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAKLSAgICAweDE5LCAweGM0LCAweDgwLCAweDIwLCAweDdlLCAweDY4LCAweDJjLCAweGYwLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDEyLCAKLSAgICAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDBmLCAweDdlLCAweGEwLCAweDAyLCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDZjLCAweGFhLCAweDE5LCAweGEyLCAKLSAgICAweDAwLCAweDEwLCAweDgwLCAweGYxLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAweGEyLCAweDIwLCAweDFmLCAweDY4LCAweDEyLCAweDEyLCAKLSAgICAweDMxLCAweDEyLCAweDE3LCAweGE5LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAweDBiLCAweDAwLCAweDIwLCAweDg5LCAweDI2LCAKLSAgICAweDdlLCAweGEwLCAweGZmLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweGIwLCAweDU1LCAweDE5LCAweGIyLCAweDAwLCAKLSAgICAweDAwLCAweDEyLCAweDE4LCAweGZmLCAweDMwLCAweDg5LCAweDBmLCAweDdlLCAweGEwLCAweDAwLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAKLSAgICAweGZmLCAweDIwLCAweDg5LCAweDAyLCAweDgwLCAweDI2LCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweDIwLCAweDdlLCAweGEwLCAweGZmLCAweDE5LCAKLSAgICAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDdlLCAweGIwLCAweDU1LCAweDE5LCAweGIyLCAweDAwLCAweDAwLCAweDEyLCAweDE4LCAweGZmLCAKLSAgICAweDdlLCAweGEwLCAweDAwLCAweDE5LCAweGEyLCAweDAwLCAweDA0LCAweDEyLCAweDE4LCAweGZmLCAweDgwLCAweGUwLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAKLSAgICAweGE1LCAweGQ5LCAweGE4LCAweDAyLCAweDE3LCAweGMyLCAweDAyLCAweDE4LCAweDRjLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDdlLCAweDExLCAweDIxLCAKLSAgICAweDdlLCAweGEwLCAweDA4LCAweDE5LCAweGEyLCAweDAwLCAweDEwLCAweDEyLCAweDE4LCAweGZmLCAweDJlLCAweDI0LCAweDAxLCAweDAwLCAweGE1LCAweGQ5LCAKLSAgICAweGVmLCAweDIyLCAweDMwLCAweDFmLCAweDAzLCAweDAyLCAweDE4LCAweDRjLCAweGMyLCAweDhhLCAweDEyLCAweDE3LCAweGE5LCAweDBiLCAweDAwLCAweDEyLCAKLSAgICAweDE4LCAweDE2LCAweDIwLCAweDhiLCAweDI0LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAKLSAgICAweDA3LCAweDc0LCAweDBjLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAwLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAweDBjLCAKLSAgICAweDMwLCAweDhiLCAweDA2LCAweDEyLCAweDE4LCAweDE2LCAweDMwLCAweDhiLCAweGFkLCAweDEyLCAweDE5LCAweDE5LCAweDMwLCAweDExLCAweGE3LCAweDEyLCAKLSAgICAweDE4LCAweDE2LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAKLSAgICAweDBjLCAweDEyLCAweDE4LCAweDE2LCAweDgwLCAweGU5LCAweDdlLCAweGEwLCAweDAwLCAweDc0LCAweDAyLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdhLCAKLSAgICAweGEzLCAweDkxLCAweDA3LCAweDc0LCAweDAzLCAweDdhLCAweGIzLCAweDkxLCAweDA2LCAweDdhLCAweGEzLCAweDkxLCAweDA3LCAweDEyLCAweDE4LCAweGZmLCAKLSAgICAweDc0LCAweGVmLCAweDdhLCAweGIzLCAweDkxLCAweDA0LCAweDc0LCAweDgwLCAweDdhLCAweGIzLCAweDkxLCAweDAzLCAweDc0LCAweDBjLCAweDdhLCAweGIzLCAKLSAgICAweDkxLCAweDA2LCAweDc0LCAweDA4LCAweDdhLCAweGIzLCAweDkxLCAweDA3LCAweDEyLCAweDE5LCAweDBjLCAweDIyLCAweDMwLCAweDEyLCAweDE5LCAweDdlLCAKLSAgICAweDY4LCAweDMwLCAweGMyLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweGQyLCAweDExLCAweDEyLCAweDE4LCAweGZmLCAweDEyLCAKLSAgICAweDE4LCAweGZmLCAweDEyLCAweDE4LCAweGZmLCAweDAyLCAweDBjLCAweGNhLCAweDMwLCAweDFmLCAweDFjLCAweDdlLCAweDY4LCAweDMxLCAweDNjLCAweDdhLCAKLSAgICAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDdlLCAweDY4LCAweDMxLCAweDVlLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAKLSAgICAweGM0LCAweDEyLCAweDFhLCAweDZlLCAweDAyLCAweDE4LCAweGY3LCAweDBiLCAweDAwLCAweDdlLCAweDc4LCAweDE4LCAweGIxLCAweDdhLCAweDdjLCAweDAwLCAKLSAgICAweGZmLCAweDdmLCAweDY3LCAweDdhLCAweDZjLCAweDAwLCAweDAwLCAweDdlLCAweDcwLCAweDNlLCAweDdlLCAweDdiLCAweGIwLCAweDdhLCAweDZiLCAweGIwLCAKLSAgICAweDBiLCAweDdjLCAweDBiLCAweDZjLCAweGE1LCAweGRmLCAweGYzLCAweDdlLCAweDc4LCAweDE4LCAweGIxLCAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDg5LCAKLSAgICAweDc4LCAweDdlLCAweDc4LCAweDAwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZlLCAweDdlLCAweDY4LCAweDdmLCAweGJmLCAweDdhLCAweDZjLCAweDAwLCAKLSAgICAweGZlLCAweDc0LCAweGFhLCAweDM5LCAweGI3LCAweDU1LCAweDU1LCAweDc0LCAweDU1LCAweDM5LCAweGI3LCAweDJhLCAweGFhLCAweDc0LCAweGEwLCAweDM5LCAKLSAgICAweGI3LCAweDU1LCAweDU1LCAweDZjLCAweDk5LCAweDdhLCAweDZiLCAweDkwLCAweDdlLCAweDU0LCAweDI3LCAweDEwLCAweDdlLCAweDZiLCAweDgwLCAweGJjLCAKLSAgICAweDg5LCAweDY4LCAweDA4LCAweDFiLCAweDU0LCAweDc4LCAweGY1LCAweDhhLCAweGZmLCAweDE4LCAweGVmLCAweDhhLCAweGZmLCAweDE4LCAweGY3LCAweDEyLCAKLSAgICAweDE5LCAweDE5LCAweDdlLCAweDZiLCAweDgwLCAweDgwLCAweGZiLCAweDdlLCAweDEwLCAweGZmLCAweDEyLCAweDE5LCAweGFjLCAweDgwLCAweGY4LCAweGNhLCAKLSAgICAweGY5LCAweDdlLCAweGY0LCAweDAwLCAweGZmLCAweDFiLCAweGY0LCAweDc4LCAweGZjLCAweGRhLCAweGY5LCAweDIyLCAweGNhLCAweGY5LCAweDdlLCAweGY0LCAKLSAgICAweDAwLCAweDAwLCAweDFiLCAweGY0LCAweDc4LCAweGZjLCAweGRhLCAweGY5LCAweDIyLCAweDIwLCAweDExLCAweDIwLCAweGQyLCAweDEyLCAweDEyLCAweDE5LCAKLSAgICAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAKLSAgICAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDIyLCAweGNhLCAweDBiLCAweDdlLCAweDEwLCAKLSAgICAweDAzLCAweDdjLCAweDMwLCAweDZjLCAweDIyLCAweDBiLCAweDIwLCAweDllLCAweDMwLCAweDBhLCAweDUwLCAweGY5LCAweDJlLCAweDMwLCAweDBiLCAweDFiLCAKLSAgICAweDIwLCAweDY4LCAweDIwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAzLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAKLSAgICAweGE1LCAweGRhLCAweGUwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAweDFiLCAweDMwLCAweDY4LCAweDIwLCAweDEyLCAweDE5LCAweDBjLCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDEyLCAweDE5LCAweDBjLCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweGE1LCAweGRiLCAweGUwLCAweDdlLCAweDIwLCAweDBhLCAKLSAgICAweDEyLCAweDE5LCAweDBjLCAweGE1LCAweGRhLCAweGZhLCAweGE1LCAweGQ5LCAweDk4LCAweGRhLCAweDBiLCAweDIyLCAweDIwLCAweDExLCAweDE0LCAweDEyLCAKLSAgICAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAxLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDEyLCAweDE5LCAweDBjLCAweDdlLCAweGIwLCAweDAwLCAweDdhLCAKLSAgICAweGIzLCAweDkwLCAweDAwLCAweDIyLCAweDMwLCAweDFmLCAweDMyLCAweDIwLCAweDExLCAweDJmLCAweGNhLCAweDJiLCAweGNhLCAweDdiLCAweDdlLCAweDc4LCAKLSAgICAweDgwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZlLCAweDEyLCAweDFhLCAweDRkLCAweDdlLCAweDZiLCAweGEwLCAweDVjLCAweGFhLCAweDY4LCAweDEwLCAKLSAgICAweDI5LCAweGI3LCAweDAwLCAweDE0LCAweDU0LCAweDYwLCAweDY4LCAweGY4LCAweDM5LCAweGE3LCAweDAwLCAweDAwLCAweDBiLCAweDZjLCAweDgwLCAweGU5LCAKLSAgICAweDEyLCAweDE4LCAweGZmLCAweGQyLCAweGI1LCAweGRhLCAweDdiLCAweGRhLCAweDJiLCAweDIyLCAweDEyLCAweDFhLCAweDA1LCAweDdlLCAweDY4LCAweDAwLCAKLSAgICAweDBjLCAweDEyLCAweDE5LCAweGM0LCAweDIyLCAweGNhLCAweDU5LCAweGNhLCAweDViLCAweDdlLCAweGI0LCAweDAwLCAweDBjLCAweDdjLCAweGI4LCAweGM0LCAKLSAgICAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI4LCAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI5LCAweGM0LCAweDEyLCAweDFhLCAweDM1LCAweDdjLCAweGI5LCAKLSAgICAweDEyLCAweDFhLCAweDM1LCAweDdlLCAweGIwLCAweDY4LCAweDdhLCAweGI5LCAweGIwLCAweDBiLCAweGI0LCAweDZjLCAweGJiLCAweDdhLCAweGI5LCAweGIwLCAKLSAgICAweGRhLCAweDU5LCAweGRhLCAweDViLCAweDIyLCAweDVlLCAweGIwLCAweDBmLCAweDdjLCAweGFiLCAweDllLCAweGEwLCAweDBhLCAweDQwLCAweDA1LCAweDJlLCAKLSAgICAweGIwLCAweDM3LCAweDgwLCAweDAzLCAweDJlLCAweGIwLCAweDMwLCAweDdhLCAweGI5LCAweGIwLCAweDBiLCAweGI0LCAweDIyLCAweGMyLCAweGI1LCAweDc1LCAKLSAgICAweGIwLCAweGVmLCAweDEyLCAweDE4LCAweGZmLCAweDc0LCAweDgwLCAweDM5LCAweGI3LCAweDAwLCAweDBjLCAweDdlLCAweDU0LCAweDAwLCAweDA2LCAweDM5LCAKLSAgICAweGE3LCAweDAwLCAweDA0LCAweDM5LCAweGI3LCAweDAwLCAweDAwLCAweDc0LCAweDAzLCAweDM5LCAweGI3LCAweDAwLCAweDBjLCAweDIyLCAweDdlLCAweDc4LCAKLSAgICAweDAwLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAweGZmLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweDAxLCAweDdmLCAweDY1LCAKLSAgICAweDdlLCAweDc0LCAweDIwLCAweDAwLCAweDEyLCAweDBiLCAweDYzLCAweDQwLCAweDU4LCAweDdlLCAweDc4LCAweDdjLCAweDAwLCAweDdhLCAweDdjLCAweDAwLCAKLSAgICAweGZmLCAweDdlLCAweDU4LCAweDAwLCAweDAwLCAweDdhLCAweDVjLCAweDAwLCAweDAxLCAweDdlLCAweDY4LCAweDdjLCAweDAwLCAweDdhLCAweDZjLCAweDAwLCAKLSAgICAweDAxLCAweDdlLCAweDc0LCAweDA0LCAweDAwLCAweDEyLCAweDBiLCAweDYzLCAweDQwLCAweDM3LCAweDc0LCAweDgwLCAweDEyLCAweDFhLCAweGVhLCAweDQwLCAKLSAgICAweDMwLCAweDdlLCAweDAwLCAweDAzLCAweDdhLCAweDAzLCAweDkwLCAweDAwLCAweGQyLCAweDEwLCAweDdlLCAweDA0LCAweDAwLCAweDA4LCAweDdlLCAweDE0LCAKLSAgICAweDAwLCAweDAwLCAweDg0LCAweGE1LCAweGRiLCAweGZjLCAweGE1LCAweGRhLCAweGY5LCAweGE1LCAweGQ5LCAweGY2LCAweDc0LCAweDQwLCAweDEyLCAweDFhLCAKLSAgICAweGVhLCAweDQwLCAweDBlLCAweDdlLCAweDY4LCAweDMxLCAweDhkLCAweDdhLCAweDZjLCAweDAwLCAweGZmLCAweDEyLCAweDE5LCAweGM0LCAweDAyLCAweDE4LCAKLSAgICAweGY3LCAweDdlLCAweGIwLCAweDAyLCAweDdhLCAweGIzLCAweDkwLCAweDAwLCAweDgwLCAweGZlLCAweGY1LCAweDBiLCAweDdlLCAweDc4LCAweDAwLCAweDBiLCAKLSAgICAweDdhLCAweDdjLCAweDAwLCAweDAwLCAweDdlLCAweDY4LCAweDdmLCAweGJmLCAweDdhLCAweDZjLCAweDAwLCAweDAxLCAweDdlLCAweDc0LCAweDAwLCAweDAxLCAKLSAgICAweDAyLCAweDBiLCAweDYzLCAKLQotLy8gU2VnbWVudCAjMTksIEVYQ0xVREVEIFN0YXJ0IEFkZHJlc3MgMDBmZjJjNjYsIExlbmd0aCAxMzkzCi0KLX07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gSU1BR0VfVkVSU0lPTl9OQU1FID0gewotCTIsIDAsIDMgfTsJCS8vIE1ham9yLCBNaW5vciwgQnVpbGQKLQotI3VuZGVmIElNQUdFX1ZFUlNJT05fTkFNRQotCi0jdW5kZWYgSU1BR0VfQVJSQVlfTkFNRQotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE2MWQ4MC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTIyOSArMCwwIEBACi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0vLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKLS8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKLS8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0vLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLS8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCi0KLS8vSW1hZ2Ugc3RydWN0dXJlIGRlZmluaXRpb24KLSNpZiAhZGVmaW5lZChERUZJTkVEX0VER0VfRklSTVdBUkVfSU1BR0VfUkVDT1JEKQotCSNkZWZpbmUgREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRAotCXN0cnVjdCBlZGdlX2Zpcm13YXJlX2ltYWdlX3JlY29yZCB7Ci0JCV9fbGUxNiBFeHRBZGRyOwotCQlfX2xlMTYgQWRkcjsKLQkJX19sZTE2IExlbjsKLQkJdW5zaWduZWQgY2hhcglEYXRhWzBdOwotCX0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwotCi0Jc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIHsKLQkJdW5zaWduZWQgY2hhcglNYWpvclZlcnNpb247Ci0JCXVuc2lnbmVkIGNoYXIJTWlub3JWZXJzaW9uOwotCQl1bnNpZ25lZCBzaG9ydAlCdWlsZE51bWJlcjsKLQl9OwotCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKElNQUdFX0FSUkFZX05BTUUpCi0JI2RlZmluZSBJTUFHRV9BUlJBWV9OQU1FCUZpcm13YXJlSW1hZ2UKLQkjZGVmaW5lIElNQUdFX1ZFUlNJT05fTkFNRQlGaXJtd2FyZUltYWdlVmVyc2lvbgotI2VuZGlmCi0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIElNQUdFX0FSUkFZX05BTUVbXSA9IHsKLQotLy8gU2VnbWVudCAjMSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwMCwgTGVuZ3RoIDYKLTB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNiwweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4ODAsIDB4MDIsIDB4NDQsIDB4YjAsIAotCi0vLyBTZWdtZW50ICMyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDBiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg0NCwgMHg3MiwgCi0KLS8vIFNlZ21lbnQgIzMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDEzLCAKLQotLy8gU2VnbWVudCAjNCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAxYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDFiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MWIsIAotCi0vLyBTZWdtZW50ICM1LCBTdGFydCBBZGRyZXNzIDAwZmYwMDIzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MjMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyMywgCi0KLS8vIFNlZ21lbnQgIzYsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMmIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgyYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDJiLCAKLQotLy8gU2VnbWVudCAjNywgU3RhcnQgQWRkcmVzcyAwMGZmMDAzMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDMzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MzMsIAotCi0vLyBTZWdtZW50ICM4LCBTdGFydCBBZGRyZXNzIDAwZmYwMDNiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4M2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgzYiwgCi0KLS8vIFNlZ21lbnQgIzksIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNDMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDQzLCAKLQotLy8gU2VnbWVudCAjMTAsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNGIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg0YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDZlLCAweGM0LCAKLQotLy8gU2VnbWVudCAjMTEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwNTMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg1MywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDc1LCAweDhkLCAKLQotLy8gU2VnbWVudCAjMTIsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwN2IsIExlbmd0aCAzCi0weGZmLDB4MDAsMHg3YiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDdiLCAKLQotLy8gU2VnbWVudCAjMTMsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwODAsIExlbmd0aCA3Ci0weGZmLDB4MDAsMHg4MCwweDAwLDB4MDcsMHgwMCwKLSAgICAweDdlLCAweDE0LCAweDAwLCAweDAwLCAweDAyLCAweDQwLCAweDUxLCAKLQotLy8gU2VnbWVudCAjMTQsIFN0YXJ0IEFkZHJlc3MgMDBmZjMwMDAsIExlbmd0aCAyMTc4Ci0weGZmLDB4MDAsMHgwMCwweDMwLDB4ODIsMHgwOCwKLSAgICAweDEyLCAweDM3LCAweDI4LCAweDEyLCAweDMwLCAweDNlLCAweDEyLCAweDMwLCAweDU0LCAweDEyLCAweDMwLCAweGU1LCAweDEyLCAweDMxLCAweDY4LCAweDEyLCAKLSAgICAweDM1LCAweDIwLCAweDEyLCAweDM4LCAweDU4LCAweDEyLCAweDMxLCAweDE1LCAweDEyLCAweDMxLCAweDQwLCAweDEyLCAweDMwLCAweGEwLCAweDgwLCAweGUwLCAKLSAgICAweGU1LCAweDIzLCAweDYwLCAweDE5LCAweDdlLCAweDE0LCAweDAwLCAweDAwLCAweDA5LCAweGIxLCAweDAxLCAweGNmLCAweGI0LCAweDAwLCAweDAyLCAweDgwLCAKLSAgICAweDA1LCAweDE0LCAweDE5LCAweGIxLCAweDAxLCAweGNmLCAweGE1LCAweDBiLCAweGJlLCAweDMxLCAweDJmLCAweDc4LCAweGViLCAweDIyLCAweGMyLCAweGFmLCAKLSAgICAweDdlLCAweGIzLCAweDNmLCAweGYxLCAweGI0LCAweDAxLCAweDBhLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAyLCAweDEyLCAweDcwLCAweGVmLCAweGQwLCAKLSAgICAweGYxLCAweGQyLCAweGFmLCAweDIyLCAweGMyLCAweGFmLCAweGU1LCAweDIyLCAweDYwLCAweDQzLCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweGJlLCAweDA0LCAKLSAgICAweDAzLCAweDgwLCAweDM4LCAweDM5LCAweDdlLCAweDA0LCAweDgwLCAweDAwLCAweDdlLCAweDIwLCAweDAwLCAweDEzLCAweDUwLCAweDIxLCAweDA5LCAweGEwLCAKLSAgICAweDAwLCAweDA0LCAweDRlLCAweGEwLCAweDA1LCAweDE5LCAweGEwLCAweDAwLCAweDA0LCAweDBhLCAweDMyLCAweDA5LCAweDUzLCAweDY3LCAweDhlLCAweDVlLCAKLSAgICAweDUxLCAweDI3LCAweDY4LCAweDBiLCAweDA5LCAweGEwLCAweDAwLCAweDEwLCAweDRlLCAweGEwLCAweDAxLCAweDE5LCAweGEwLCAweDAwLCAweDEwLCAweDJlLCAKLSAgICAweDA0LCAweDAxLCAweDAwLCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGQxLCAweDc1LCAweDIyLCAweDAwLCAweGQyLCAweGFmLCAweDIyLCAKLSAgICAweGMyLCAweGFmLCAweDdlLCAweDIwLCAweDAwLCAweDdlLCAweDMwLCAweDAxLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDMyLCAweDAxLCAKLSAgICAweDhmLCAweGJlLCAweDM0LCAweDAwLCAweDAwLCAweDY4LCAweDEyLCAweDdlLCAweGIxLCAweDIxLCAweGE1LCAweDRiLCAweDdhLCAweGIxLCAweDIxLCAweGNhLCAKLSAgICAweDE5LCAweDQ5LCAweDIyLCAweDMwLCAweGQ1LCAweDk5LCAweDI0LCAweGRhLCAweDE5LCAweDNlLCAweDMwLCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAKLSAgICAweDc4LCAweGQ2LCAweGQyLCAweGFmLCAweDIyLCAweDQ2LCAweDBmLCAweDQ5LCAweDY3LCAweDRjLCAweGJmLCAweDUwLCAweDE3LCAweDUzLCAweDZmLCAweDU2LCAKLSAgICAweGM3LCAweDVhLCAweDFmLCAweDVkLCAweDc3LCAweGMyLCAweGFmLCAweGU1LCAweDMyLCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAweDAwLCAweDEzLCAweDUwLCAKLSAgICAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDMxLCAweDAyLCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGVmLCAweGQyLCAKLSAgICAweGFmLCAweDIyLCAweGNhLCAweDI4LCAweDEyLCAweDY3LCAweGFiLCAweGRhLCAweDI4LCAweDQwLCAweDA5LCAweDBhLCAweDIyLCAweDA5LCAweGIyLCAweDY3LCAKLSAgICAweDhlLCAweGY0LCAweDUyLCAweDMyLCAweDIyLCAweGMyLCAweGFmLCAweGU1LCAweDM0LCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAweDAwLCAweDEzLCAweDUwLCAKLSAgICAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDMxLCAweDMyLCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGVmLCAweGQyLCAKLSAgICAweGFmLCAweDIyLCAweGNhLCAweDI4LCAweDBhLCAweDIyLCAweDA5LCAweDQyLCAweDAwLCAweDNlLCAweDEyLCAweDY5LCAweGMyLCAweGRhLCAweDI4LCAweDIyLCAKLSAgICAweGMyLCAweGFmLCAweGU1LCAweDM1LCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAweDAwLCAweDEzLCAweDUwLCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDMxLCAKLSAgICAweDVkLCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGVmLCAweGQyLCAweGFmLCAweDIyLCAweGNhLCAweDI4LCAweDdlLCAKLSAgICAweDQwLCAweDAwLCAweDEyLCAweDZjLCAweDViLCAweGRhLCAweDI4LCAweDIyLCAweGMyLCAweGFmLCAweGU1LCAweDIzLCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAKLSAgICAweDAwLCAweDEzLCAweDUwLCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDMxLCAweDg1LCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAKLSAgICAweDc4LCAweGVmLCAweGQyLCAweGFmLCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDMxLCAweDkwLCAweDg5LCAweDI0LCAKLSAgICAweDMxLCAweGEwLCAweDMyLCAweDEwLCAweDMyLCAweDgwLCAweDMyLCAweGYwLCAweDMzLCAweDYwLCAweDMzLCAweGQwLCAweDM0LCAweDQwLCAweDM0LCAweGIwLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDhmLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDQ5LCAweDMwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweDlmLCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweDlmLCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGNmLCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGNmLCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDE4LCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGNmLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDkxLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDgxLCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDRjLCAweDg4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGExLCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGExLCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQwLCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQwLCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDE5LCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQwLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDkzLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDgyLCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDRmLCAweGUwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGEzLCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGEzLCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQxLCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQxLCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFhLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDk1LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDgzLCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDUzLCAweDM4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGE1LCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGE1LCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQyLCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQyLCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFiLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQyLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDk3LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDg0LCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDU2LCAweDkwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGE3LCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGE3LCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQzLCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQzLCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFjLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQzLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDk5LCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDg1LCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDU5LCAweGU4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGE5LCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGE5LCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQ0LCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQ0LCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFkLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQ0LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDliLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDg2LCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDVkLCAweDQwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGFiLCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGFiLCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQ1LCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQ1LCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFlLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQ1LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI3LCAweDAxLCAweDlkLCAweGJlLCAweDI0LCAweDAwLCAweDAwLCAweDc4LCAweDI0LCAweDdlLCAweDI0LCAweDg3LCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDYwLCAweDk4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDMwLCAweGU2LCAweDE4LCAweDdlLCAweDYwLCAweDAwLCAweDgwLCAweDFlLCAweGJlLCAweDI3LCAKLSAgICAweDAxLCAweGFkLCAweDY4LCAweDBkLCAweDdhLCAweDI3LCAweDAxLCAweGFkLCAweDdlLCAweDYwLCAweDljLCAweDdhLCAweDYzLCAweDAxLCAweGQ2LCAweDgwLCAKLSAgICAweDJlLCAweDdlLCAweDYzLCAweDAxLCAweGQ2LCAweGE1LCAweGJlLCAweDAwLCAweDI2LCAweDdlLCAweDYwLCAweDAxLCAweDdlLCAweGIwLCAweDAwLCAweDdlLCAKLSAgICAweGEwLCAweGM4LCAweDEyLCAweDYyLCAweGI2LCAweDQwLCAweDE4LCAweDc1LCAweDMxLCAweGIzLCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDFmLCAweDZjLCAKLSAgICAweDAwLCAweDdhLCAweDAzLCAweDAxLCAweGQ2LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweGMyLCAweGFmLCAweGU1LCAweDI0LCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAweDAwLCAweDEzLCAweDUwLCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDM1LCAKLSAgICAweDNkLCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAweDc4LCAweGVmLCAweGQyLCAweGFmLCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAKLSAgICAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDM1LCAweDQ4LCAweDg5LCAweDI0LCAweDM1LCAweDU4LCAweDM1LCAweDkyLCAweDM1LCAweGNjLCAweDM2LCAweDA2LCAKLSAgICAweDM2LCAweDQwLCAweDM2LCAweDdhLCAweDM2LCAweGI0LCAweDM2LCAweGVlLCAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAKLSAgICAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDQ5LCAweDMwLCAKLSAgICAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAKLSAgICAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDIwLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAKLSAgICAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDgxLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAKLSAgICAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDRjLCAweDg4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAKLSAgICAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAKLSAgICAweDIxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDgyLCAweDAwLCAKLSAgICAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAKLSAgICAweDEyLCAweDEyLCAweDRmLCAweGUwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAKLSAgICAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDIyLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAKLSAgICAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDgzLCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAKLSAgICAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDUzLCAweDM4LCAweDdkLCAweDIxLCAKLSAgICAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAKLSAgICAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDIzLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAKLSAgICAweDdlLCAweDI0LCAweDg0LCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAKLSAgICAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDU2LCAweDkwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAKLSAgICAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDI0LCAweGMwLCAKLSAgICAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg1LCAweDAwLCAweDA5LCAweGIyLCAKLSAgICAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAKLSAgICAweDU5LCAweGU4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAKLSAgICAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDI1LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAKLSAgICAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg2LCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAKLSAgICAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDVkLCAweDQwLCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAKLSAgICAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAKLSAgICAweDE1LCAweGMyLCAweDI2LCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAKLSAgICAweDg3LCAweDAwLCAweDA5LCAweGIyLCAweDAwLCAweDE0LCAweGNhLCAweGI4LCAweDVlLCAweGIwLCAweDFlLCAweGRhLCAweGI4LCAweDY4LCAweDBiLCAweGNhLCAKLSAgICAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDYwLCAweDk4LCAweDdkLCAweDIxLCAweGRhLCAweDE5LCAweDVlLCAweGIwLCAweDAxLCAweDdlLCAweGEwLCAweDkwLCAKLSAgICAweDEyLCAweDYyLCAweDkzLCAweDQwLCAweDEyLCAweDc1LCAweDMxLCAweGI4LCAweDEyLCAweDdjLCAweDE1LCAweGMyLCAweDI3LCAweGMwLCAweGYxLCAweDc1LCAKLSAgICAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweGMyLCAweGFmLCAweGU1LCAweDMzLCAweDYwLCAweDE0LCAweDdlLCAweDIwLCAKLSAgICAweDAwLCAweDEzLCAweDUwLCAweDA3LCAweGNhLCAweGI4LCAweDEyLCAweDM3LCAweDQ1LCAweGRhLCAweGI4LCAweGE1LCAweDBhLCAweGJlLCAweDIxLCAweDJmLCAKLSAgICAweDc4LCAweGVmLCAweGQyLCAweGFmLCAweDIyLCAweDdjLCAweGIyLCAweDIzLCAweDBhLCAweDJiLCAweDQ5LCAweDIyLCAweDM3LCAweDUwLCAweDg5LCAweDI0LCAKLSAgICAweDM3LCAweDYwLCAweDM3LCAweDdmLCAweDM3LCAweDllLCAweDM3LCAweGJkLCAweDM3LCAweGRjLCAweDM3LCAweGZiLCAweDM4LCAweDFhLCAweDM4LCAweDM5LCAKLSAgICAweDdlLCAweDI0LCAweDgwLCAweDAwLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDQ4LCAweDFiLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAKLSAgICAweDgwLCAweDBjLCAweGQyLCAweDAxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAKLSAgICAweDI0LCAweDgxLCAweDAwLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDRiLCAweDczLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAKLSAgICAweDBjLCAweGQyLCAweDAxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAKLSAgICAweDgyLCAweDAwLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDRlLCAweGNiLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAKLSAgICAweGQyLCAweDAxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDgzLCAKLSAgICAweDAwLCAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDUyLCAweDIzLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAweGQyLCAKLSAgICAweDAxLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg0LCAweDAwLCAKLSAgICAweGNhLCAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDU1LCAweDdiLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAweGQyLCAweDAxLCAKLSAgICAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg1LCAweDAwLCAweGNhLCAKLSAgICAweDE5LCAweDdkLCAweDEyLCAweDEyLCAweDU4LCAweGQzLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAweGQyLCAweDAxLCAweGMwLCAKLSAgICAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg2LCAweDAwLCAweGNhLCAweDE5LCAKLSAgICAweDdkLCAweDEyLCAweDEyLCAweDVjLCAweDJiLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAweGQyLCAweDAxLCAweGMwLCAweGYxLCAKLSAgICAweDc1LCAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweDdlLCAweDI0LCAweDg3LCAweDAwLCAweGNhLCAweDE5LCAweDdkLCAKLSAgICAweDEyLCAweDEyLCAweDVmLCAweDgzLCAweGRhLCAweDE5LCAweDEwLCAweDA0LCAweDAyLCAweDgwLCAweDBjLCAweGQyLCAweDAxLCAweGMwLCAweGYxLCAweDc1LCAKLSAgICAweGYxLCAweDAxLCAweDEyLCAweDZmLCAweGQ5LCAweGQwLCAweGYxLCAweDIyLCAweGMyLCAweGFmLCAweGMwLCAweGYxLCAweDc1LCAweGYxLCAweDAxLCAweGE5LCAKLSAgICAweDMyLCAweGYyLCAweDFhLCAweDdlLCAweDA3LCAweDAxLCAweGUxLCAweGJlLCAweDA0LCAweDAwLCAweDAwLCAweDc4LCAweDEwLCAweGU1LCAweGY1LCAweDMzLCAKLSAgICAweDgyLCAweGU3LCAweDQwLCAweDA5LCAweDg1LCAweDMxLCAweDMxLCAweDEyLCAweDdjLCAweDE1LCAweDc1LCAweGY2LCAweDAwLCAweGQwLCAweGYxLCAweGQyLCAKLSAgICAweGFmLCAweDIyLCAKLQotLy8gU2VnbWVudCAjMTUsIFN0YXJ0IEFkZHJlc3MgMDBmZjQwMDAsIExlbmd0aCAxNTM4MQotMHhmZiwweDAwLDB4MDAsMHg0MCwweDE1LDB4M2MsCi0gICAgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMSwgMHg3ZSwgMHgxNCwgMHg3ZiwgMHhmOCwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZCwgMHgzMSwgMHgwYiwgMHgxYSwgCi0gICAgMHg1MCwgMHgxYiwgMHgwYSwgMHg1MCwgMHg3ZSwgMHgxNCwgMHg0MCwgMHgxYiwgMHgwMiwgMHg0MCwgMHg2YSwgMHg3ZSwgMHhmOCwgMHgwMCwgMHg2ZiwgMHhkMiwgCi0gICAgMHgwNCwgMHhjMiwgMHg5NCwgMHhkMiwgMHg5NSwgMHg3ZSwgMHhmNCwgMHg0MCwgMHgyYywgMHgwMiwgMHg0MCwgMHg3YywgMHgxMiwgMHg3ZCwgMHgzMCwgMHhmNSwgCi0gICAgMHgyZiwgMHg3YSwgMHhhMSwgMHgzMCwgMHg3YSwgMHgxMSwgMHg2ZSwgMHgxMiwgMHg3NSwgMHhjYSwgMHgxMiwgMHg0MCwgMHhkYywgMHg3ZSwgMHhiMywgMHgzZiwgCi0gICAgMHhmMSwgMHg2MCwgMHgwMywgMHgxMiwgMHg0MywgMHhkNCwgMHg3NSwgMHhmMSwgMHgwMCwgMHgxMiwgMHg3NiwgMHg2ZiwgMHhkMiwgMHhhZiwgMHgwMiwgMHgzMCwgCi0gICAgMHgwMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHhmZiwgMHg3ZSwgMHgxOCwgMHg0MCwgMHg1ZiwgMHg3YSwgMHgxYywgMHgwMCwgMHgwMSwgMHg4OSwgMHgxOCwgMHhhOSwgCi0gICAgMHgyNSwgMHg4NywgMHgwMywgMHhhOSwgMHhkNSwgMHg4NywgMHhkMiwgMHg5MywgMHg4OSwgMHgwOCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHhmZiwgMHg3ZSwgMHgxOCwgCi0gICAgMHg0MCwgMHg3OCwgMHg3YSwgMHgxYywgMHgwMCwgMHgwMSwgMHg4OSwgMHgxOCwgMHhjMiwgMHg5MywgMHg4OSwgMHgwOCwgMHg3ZSwgMHgwOCwgMHgwMCwgMHgyMCwgCi0gICAgMHg3ZSwgMHg0NCwgMHgwNCwgMHgwMCwgMHg3ZSwgMHg0MCwgMHgwMCwgMHg3ZSwgMHhlNCwgMHg0MCwgMHg4ZSwgMHgwMiwgMHg3YywgMHgzMCwgMHg3ZSwgMHgwOCwgCi0gICAgMHgwMSwgMHg2ZiwgMHg3ZSwgMHg0NCwgMHgyOCwgMHg3YywgMHg3ZSwgMHg0MCwgMHgwMCwgMHg3ZSwgMHhlNCwgMHg0MCwgMHhhMCwgMHgwMiwgMHg3YywgMHgzMCwgCi0gICAgMHg3ZSwgMHgwOCwgMHgwMCwgMHg2ZiwgMHg3ZSwgMHg0NCwgMHgwMSwgMHgwMCwgMHg3ZSwgMHg0MCwgMHg1MywgMHg3ZSwgMHhlNCwgMHg0MCwgMHhiMiwgMHgwMiwgCi0gICAgMHg3YywgMHgzMCwgMHg3NSwgMHg2ZCwgMHgyMCwgMHg3NSwgMHg2YywgMHgzMCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwOCwgMHg3NSwgMHg2YSwgMHg1OCwgMHg3NSwgCi0gICAgMHg2YiwgMHgwOCwgMHg3NSwgMHg2NywgMHgwOCwgMHg3NSwgMHg2OSwgMHgwMSwgMHg3NSwgMHg4OSwgMHgwMSwgMHg3NSwgMHg4YSwgMHgwMSwgMHg3NSwgMHg4YywgCi0gICAgMHgwMCwgMHhkMiwgMHg4YywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMiwgMHg3YSwgMHgwNSwgMHg1OCwgMHg4OSwgMHhmNCwgMHg3NSwgMHhiNywgMHg3ZiwgMHg3NSwgCi0gICAgMHhiOCwgMHg3ZiwgMHg3NSwgMHhiMywgMHgwNywgMHg3NSwgMHhiMiwgMHgwNywgMHhkMiwgMHhhOSwgMHgyMiwgMHhkMiwgMHg5MiwgMHhlNCwgMHhkNSwgMHhlMCwgCi0gICAgMHhmZCwgMHhjMiwgMHg5MiwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgxMSwgMHgyZiwgMHg3ZSwgMHhhMCwgMHgwOCwgMHgxOSwgMHhhMiwgMHgwMCwgCi0gICAgMHgxMCwgMHgyZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHhkOSwgMHhmMiwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMiwgMHg0MSwgMHg3ZSwgMHgwYiwgMHgyMCwgCi0gICAgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhmNiwgMHgyMiwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgCi0gICAgMHgwMCwgMHgwYywgMHg3NCwgMHgxMCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3NCwgMHg4MCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHg3ZSwgMHg1NCwgCi0gICAgMHgwMCwgMHgwMiwgMHgxOSwgMHhhMCwgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwMCwgMHg3NCwgMHgwMywgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgCi0gICAgMHg3NCwgMHgwNywgMHhhOSwgMHgyMCwgMHgzMCwgMHgwYiwgMHhhOSwgMHgzNSwgMHgzMCwgMHgwNSwgMHhiZSwgMHgyMCwgMHgwMSwgMHgyOCwgMHgwMiwgMHg3NCwgCi0gICAgMHgwZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHhhOSwgMHgzMywgMHgzMCwgMHgxOCwgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHg3NCwgCi0gICAgMHgyOCwgMHhhOSwgMHgyMCwgMHgzMCwgMHgwMiwgMHg3NCwgMHgyMCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHg3NCwgMHgwMywgMHgxOSwgMHhiMCwgMHgwMCwgCi0gICAgMHgwYywgMHg3NCwgMHhhNywgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3NCwgMHgwYywgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHgyMiwgMHg3ZSwgMHgwNCwgCi0gICAgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHhlNCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHgwOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHg1NCwgMHgwOCwgMHgxOSwgCi0gICAgMHhiMCwgMHgwMCwgMHgxMCwgMHg3NCwgMHhhNywgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgCi0gICAgMHgyMiwgMHg0MSwgMHhhNSwgMHg4OSwgMHgyNCwgMHg0MSwgMHhiNSwgMHg0MSwgMHhkNCwgMHg0MSwgMHhmMywgMHg0MiwgMHgxMiwgMHg0MiwgMHgzMSwgMHg0MiwgCi0gICAgMHg1MCwgMHg0MiwgMHg2ZiwgMHg0MiwgMHg4ZSwgMHhjMiwgMHgxMCwgMHhjMiwgMHgxOCwgMHhjMiwgMHgyMCwgMHhjMiwgMHgwOCwgMHg3ZSwgMHgwNCwgMHgwOSwgCi0gICAgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg2ZiwgMHg3YSwgMHgwNywgMHgwMSwgMHg3ZiwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg4ZiwgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg5ZiwgMHgyMiwgMHhjMiwgMHgxMSwgMHhjMiwgMHgxOSwgMHhjMiwgMHgyMSwgMHhjMiwgMHgwOSwgMHg3ZSwgMHgwNCwgMHgwZCwgMHhlMywgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHg3MSwgMHg3YSwgMHgwNywgMHgwMSwgMHg4MSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5MSwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhhMSwgMHgyMiwgMHhjMiwgMHgxMiwgMHhjMiwgMHgxYSwgMHhjMiwgMHgyMiwgMHhjMiwgMHgwYSwgMHg3ZSwgMHgwNCwgMHgxMSwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg3MywgMHg3YSwgMHgwNywgMHgwMSwgMHg4MywgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5MywgMHg3YSwgMHgwNywgMHgwMSwgCi0gICAgMHhhMywgMHgyMiwgMHhjMiwgMHgxMywgMHhjMiwgMHgxYiwgMHhjMiwgMHgyMywgMHhjMiwgMHgwYiwgMHg3ZSwgMHgwNCwgMHgxNSwgMHhlMywgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHg3NSwgMHg3YSwgMHgwNywgMHgwMSwgMHg4NSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5NSwgMHg3YSwgMHgwNywgMHgwMSwgMHhhNSwgCi0gICAgMHgyMiwgMHhjMiwgMHgxNCwgMHhjMiwgMHgxYywgMHhjMiwgMHgyNCwgMHhjMiwgMHgwYywgMHg3ZSwgMHgwNCwgMHgxOSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgCi0gICAgMHg3NywgMHg3YSwgMHgwNywgMHgwMSwgMHg4NywgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5NywgMHg3YSwgMHgwNywgMHgwMSwgMHhhNywgMHgyMiwgCi0gICAgMHhjMiwgMHgxNSwgMHhjMiwgMHgxZCwgMHhjMiwgMHgyNSwgMHhjMiwgMHgwZCwgMHg3ZSwgMHgwNCwgMHgxZCwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3OSwgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHg4OSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5OSwgMHg3YSwgMHgwNywgMHgwMSwgMHhhOSwgMHgyMiwgMHhjMiwgCi0gICAgMHgxNiwgMHhjMiwgMHgxZSwgMHhjMiwgMHgyNiwgMHhjMiwgMHgwZSwgMHg3ZSwgMHgwNCwgMHgyMSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3YiwgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg4YiwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5YiwgMHg3YSwgMHgwNywgMHgwMSwgMHhhYiwgMHgyMiwgMHhjMiwgMHgxNywgCi0gICAgMHhjMiwgMHgxZiwgMHhjMiwgMHgyNywgMHhjMiwgMHgwZiwgMHg3ZSwgMHgwNCwgMHgyNSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3ZCwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHg4ZCwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5ZCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhZCwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgCi0gICAgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHg0MiwgMHhiOCwgMHg4OSwgMHgyNCwgMHg0MiwgMHhjOCwgMHg0MiwgMHhlOSwgMHg0MywgMHgwYSwgMHg0MywgMHgyYiwgCi0gICAgMHg0MywgMHg0YywgMHg0MywgMHg2ZCwgMHg0MywgMHg4ZSwgMHg0MywgMHhhZiwgMHgzMCwgMHg1MCwgMHgwNywgMHgyMCwgMHg2OCwgMHgwNCwgMHhjMiwgMHgyOCwgCi0gICAgMHg4MCwgMHgxNiwgMHgzMCwgMHg0MCwgMHgwNywgMHgyMCwgMHg2MCwgMHgwNCwgMHhjMiwgMHgyOCwgMHg4MCwgMHgwYywgMHgzMCwgMHg0OCwgMHgwNywgMHgyMCwgCi0gICAgMHg1OCwgMHgwNCwgMHhjMiwgMHgyOCwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyOCwgMHgyMiwgMHgzMCwgMHg1MSwgMHgwNywgMHgyMCwgMHg2OSwgMHgwNCwgMHhjMiwgCi0gICAgMHgyOSwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0MSwgMHgwNywgMHgyMCwgMHg2MSwgMHgwNCwgMHhjMiwgMHgyOSwgMHg4MCwgMHgwYywgMHgzMCwgMHg0OSwgMHgwNywgCi0gICAgMHgyMCwgMHg1OSwgMHgwNCwgMHhjMiwgMHgyOSwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyOSwgMHgyMiwgMHgzMCwgMHg1MiwgMHgwNywgMHgyMCwgMHg2YSwgMHgwNCwgCi0gICAgMHhjMiwgMHgyYSwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0MiwgMHgwNywgMHgyMCwgMHg2MiwgMHgwNCwgMHhjMiwgMHgyYSwgMHg4MCwgMHgwYywgMHgzMCwgMHg0YSwgCi0gICAgMHgwNywgMHgyMCwgMHg1YSwgMHgwNCwgMHhjMiwgMHgyYSwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyYSwgMHgyMiwgMHgzMCwgMHg1MywgMHgwNywgMHgyMCwgMHg2YiwgCi0gICAgMHgwNCwgMHhjMiwgMHgyYiwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0MywgMHgwNywgMHgyMCwgMHg2MywgMHgwNCwgMHhjMiwgMHgyYiwgMHg4MCwgMHgwYywgMHgzMCwgCi0gICAgMHg0YiwgMHgwNywgMHgyMCwgMHg1YiwgMHgwNCwgMHhjMiwgMHgyYiwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyYiwgMHgyMiwgMHgzMCwgMHg1NCwgMHgwNywgMHgyMCwgCi0gICAgMHg2YywgMHgwNCwgMHhjMiwgMHgyYywgMHg4MCwgMHgxNiwgMHgzMCwgMHg0NCwgMHgwNywgMHgyMCwgMHg2NCwgMHgwNCwgMHhjMiwgMHgyYywgMHg4MCwgMHgwYywgCi0gICAgMHgzMCwgMHg0YywgMHgwNywgMHgyMCwgMHg1YywgMHgwNCwgMHhjMiwgMHgyYywgMHg4MCwgMHgwMiwgMHhkMiwgMHgyYywgMHgyMiwgMHgzMCwgMHg1NSwgMHgwNywgCi0gICAgMHgyMCwgMHg2ZCwgMHgwNCwgMHhjMiwgMHgyZCwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0NSwgMHgwNywgMHgyMCwgMHg2NSwgMHgwNCwgMHhjMiwgMHgyZCwgMHg4MCwgCi0gICAgMHgwYywgMHgzMCwgMHg0ZCwgMHgwNywgMHgyMCwgMHg1ZCwgMHgwNCwgMHhjMiwgMHgyZCwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyZCwgMHgyMiwgMHgzMCwgMHg1NiwgCi0gICAgMHgwNywgMHgyMCwgMHg2ZSwgMHgwNCwgMHhjMiwgMHgyZSwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0NiwgMHgwNywgMHgyMCwgMHg2NiwgMHgwNCwgMHhjMiwgMHgyZSwgCi0gICAgMHg4MCwgMHgwYywgMHgzMCwgMHg0ZSwgMHgwNywgMHgyMCwgMHg1ZSwgMHgwNCwgMHhjMiwgMHgyZSwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyZSwgMHgyMiwgMHgzMCwgCi0gICAgMHg1NywgMHgwNywgMHgyMCwgMHg2ZiwgMHgwNCwgMHhjMiwgMHgyZiwgMHg4MCwgMHgxNiwgMHgzMCwgMHg0NywgMHgwNywgMHgyMCwgMHg2NywgMHgwNCwgMHhjMiwgCi0gICAgMHgyZiwgMHg4MCwgMHgwYywgMHgzMCwgMHg0ZiwgMHgwNywgMHgyMCwgMHg1ZiwgMHgwNCwgMHhjMiwgMHgyZiwgMHg4MCwgMHgwMiwgMHhkMiwgMHgyZiwgMHgyMiwgCi0gICAgMHg0NCwgMHgzOCwgMHg0MywgMHhlNSwgMHhiZSwgMHhiMCwgMHgwMiwgMHg0MCwgMHgwMSwgMHgyMiwgMHgyMywgMHgwYSwgMHg1YiwgMHg0OSwgMHg1NSwgMHg0MywgCi0gICAgMHhkMCwgMHg5OSwgMHg1NCwgMHhkMywgMHgyMiwgMHhhOSwgMHhjNSwgMHg4NywgMHgxMiwgMHg0NCwgMHg0MywgMHg3ZSwgMHgwNCwgMHgwNSwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHhkNywgMHg3YSwgMHgwNywgMHgwMSwgMHhkOSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHhkZCwgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHgwNCwgMHg3NCwgMHhhZCwgMHg3YSwgMHgwNSwgMHg2MSwgMHg3NSwgMHhmMSwgMHgwMSwgMHg3NSwgMHhlMSwgMHgxZiwgCi0gICAgMHg3NSwgMHhlNCwgMHgwNCwgMHg3NSwgMHhmNCwgMHgwNCwgMHg3NSwgMHhmMSwgMHgwMiwgMHg3NSwgMHhlMSwgMHgwMywgMHg3NSwgMHhlNCwgMHgwNCwgMHg3NSwgCi0gICAgMHhmNCwgMHgwNCwgMHg0MywgMHhhMiwgMHgxYywgMHgxMiwgMHg0MCwgMHhlYiwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMiwgMHg0MSwgMHg5YSwgMHgwYiwgMHgyMCwgCi0gICAgMHhiZSwgMHgyMSwgMHgyZiwgMHg3OCwgMHhmNiwgMHhkMiwgMHhhOCwgMHgyMiwgMHhhOSwgMHhkNSwgMHg4NywgMHgxMiwgMHg0NCwgMHg0MywgMHhkMiwgMHg5MiwgCi0gICAgMHhjMiwgMHhhOCwgMHgyMiwgMHg3NSwgMHhhMywgMHgwMCwgMHg1MywgMHhhMiwgMHgwMywgMHg3NSwgMHhjMSwgMHgwMCwgMHg1MywgMHhjMCwgMHgwMywgMHg3ZSwgCi0gICAgMHgwMCwgMHgwNSwgMHg3YSwgMHgwMSwgMHhmMSwgMHg0MywgMHhmNCwgMHg4MCwgMHg0MywgMHhlNCwgMHg4MCwgMHhlNSwgMHhmMiwgMHg1NCwgMHg3ZiwgMHg0NCwgCi0gICAgMHgwOCwgMHhmNSwgMHhmMiwgMHhlNSwgMHhlMiwgMHg1NCwgMHg3ZiwgMHg0NCwgMHgwOCwgMHhmNSwgMHhlMiwgMHg3NSwgMHhlMSwgMHgxMCwgMHhhNSwgMHhkOCwgCi0gICAgMHhlMSwgMHgyMiwgMHhjYSwgMHgwOSwgMHgxMiwgMHgzMCwgMHgyMCwgMHgxMCwgMHgwMSwgMHgxMiwgMHhkNSwgMHg2NywgMHgxZSwgMHg2MywgMHg2OSwgMHgwMSwgCi0gICAgMHg3ZSwgMHgwMCwgMHg2YSwgMHgyZSwgMHgwMSwgMHg2OSwgMHhhNSwgMHhlNiwgMHhmNSwgMHg2NywgMHg4MCwgMHgxMiwgMHgyMCwgMHgwMiwgMHgxZSwgMHg3NSwgCi0gICAgMHg2OSwgMHgwMCwgMHg4NSwgMHg2YSwgMHg2NywgMHhkMiwgMHgwMiwgMHg3NCwgMHgwMCwgMHg4MCwgMHgwZCwgMHgzMCwgMHgwMiwgMHgwZiwgMHhjMiwgMHgwMiwgCi0gICAgMHg3ZSwgMHgwMCwgMHg2YywgMHgyZSwgMHgwMSwgMHg2OSwgMHhhNSwgMHhlNiwgMHg1MywgMHg5MCwgMHhjZiwgMHg0MiwgMHg5MCwgMHhkYSwgMHgwOSwgMHgzMiwgCi0gICAgMHhjMCwgMHhkMCwgMHhjMCwgMHhkMSwgMHhjMCwgMHhlMCwgMHhjMCwgMHhmMCwgMHhjYSwgMHgwYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgyYiwgMHhkMiwgMHgwMSwgCi0gICAgMHg3NSwgMHgzMSwgMHg4OSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgCi0gICAgMHgwMywgMHgwMiwgMHg0NSwgMHg0ZiwgMHgyMCwgMHg3OCwgMHg1YSwgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgCi0gICAgMHgwMiwgMHg0NSwgMHg2NywgMHgyMCwgMHg3OSwgMHg0YiwgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgCi0gICAgMHg0NSwgMHg3ZiwgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHg0NSwgMHg5NywgMHgyMCwgMHg3YSwgCi0gICAgMHgzMCwgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHg0NSwgMHhhZiwgMHhhNSwgMHgwYSwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHg0NSwgMHhjNywgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgCi0gICAgMHhlMCwgMHgwMywgMHgwMiwgMHg0NSwgMHhkZiwgMHhhNSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwOCwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHg0NSwgCi0gICAgMHhmNywgMHgzMCwgMHgwNCwgMHgwYywgMHhjMiwgMHgwNCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgCi0gICAgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHhkMSwgMHhkMCwgMHhkMCwgMHgzMiwgMHg3NSwgCi0gICAgMHgzMSwgMHg4MCwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2MywgCi0gICAgMHgyYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgMHgzMSwgMHg4MSwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgCi0gICAgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2MywgMHg2YiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgCi0gICAgMHgzMSwgMHg4MiwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2MywgCi0gICAgMHhhYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgMHgzMSwgMHg4MywgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgCi0gICAgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2MywgMHhlYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgCi0gICAgMHgzMSwgMHg4NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2NCwgCi0gICAgMHgyYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgMHgzMSwgMHg4NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgCi0gICAgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2NCwgMHg2YiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgCi0gICAgMHgzMSwgMHg4NiwgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2NCwgCi0gICAgMHhhYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHg3NSwgMHgzMSwgMHg4NywgMHgxMiwgMHg3YywgMHgxNSwgMHg1NCwgMHgzZSwgMHgwYSwgCi0gICAgMHg1YiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHg2OSwgMHg1MiwgMHg2NCwgMHhlYiwgMHhjYSwgMHgwNiwgMHhjNiwgMHg0NCwgMHg4OSwgMHg1NCwgMHgxMCwgCi0gICAgMHgwOCwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyOCwgMHgwMywgMHhkMiwgMHgwOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhhMCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgCi0gICAgMHgxNCwgMHg4MCwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyOCwgMHgwMywgMHhkMiwgMHgwOCwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgCi0gICAgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgMHgxMiwgMHg0OSwgMHgzMCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwOCwgCi0gICAgMHgyMiwgMHgzMCwgMHgzMCwgMHg0OSwgMHhkMiwgMHg3MCwgMHg3ZSwgMHgzNywgMHgwMSwgMHg4ZiwgMHg3ZSwgMHgyNywgMHgwMSwgMHhhZiwgMHg5ZCwgMHgzMiwgCi0gICAgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0OCwgMHg3YSwgMHgwNSwgMHg0OCwgMHg3YSwgMHgzNywgMHgwMSwgMHg4ZiwgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg2ZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwZCwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg2ZiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgCi0gICAgMHg3MCwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3MCwgMHgyZCwgMHgyMywgMHg2OCwgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg4ZiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgMHgyNywgMHgwMSwgMHhhZiwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHhhZiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg4ZiwgMHg5ZCwgMHgzMiwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0OCwgMHg3YSwgMHgwNSwgMHg0OCwgMHg3YSwgCi0gICAgMHgzNywgMHgwMSwgMHg4ZiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg2ZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwZCwgMHhlMiwgMHgzOCwgCi0gICAgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg2ZiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgwZCwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgMHgyYiwgMHg3ZSwgMHgzNCwgMHgwOSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgCi0gICAgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg2ZiwgMHgxMiwgMHg2NSwgMHgyYiwgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg0NiwgMHg3ZiwgCi0gICAgMHgyMiwgMHhkMiwgMHgwOCwgMHg3ZSwgMHgwNCwgMHgwOSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg2ZiwgMHg3YSwgMHgwNywgMHgwMSwgMHg3ZiwgMHg3NSwgCi0gICAgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiZiwgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgCi0gICAgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHgyZSwgMHgyNywgMHgwMSwgMHhiZiwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgCi0gICAgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgCi0gICAgMHgzMCwgMHgzOCwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMCwgMHgyMiwgCi0gICAgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgCi0gICAgMHgwMCwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhiZiwgMHg5ZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgCi0gICAgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgCi0gICAgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgCi0gICAgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwMCwgMHg3YSwgMHg2OSwgCi0gICAgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgCi0gICAgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgCi0gICAgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgCi0gICAgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgCi0gICAgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgCi0gICAgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgCi0gICAgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgCi0gICAgMHgwMiwgMHg0NywgMHhlMywgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzOCwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgCi0gICAgMHhkMiwgMHgxMCwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg0NywgCi0gICAgMHhlMywgMHhkYSwgMHhiOCwgMHgwMiwgMHg0OSwgMHgzMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgCi0gICAgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgCi0gICAgMHg2OCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2OCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MCwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg2MCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1OCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1OCwgMHgxMiwgCi0gICAgMHg0MiwgMHhjOCwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgCi0gICAgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgCi0gICAgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgCi0gICAgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg0OCwgMHgzNSwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgMHgwOSwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyOSwgMHgwMywgMHhkMiwgMHgwOSwgCi0gICAgMHgyMiwgMHg3NSwgMHgzMSwgMHhhMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNCwgMHg4MSwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyOSwgMHgwMywgCi0gICAgMHhkMiwgMHgwOSwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgCi0gICAgMHgxMiwgMHg0YywgMHg4OCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwOSwgMHgyMiwgMHgzMCwgMHgzMSwgMHg0OSwgMHhkMiwgMHg3MSwgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg5MSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiMSwgMHg5ZCwgMHgzMiwgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0YSwgMHg3YSwgCi0gICAgMHgwNSwgMHg0YSwgMHg3YSwgMHgzNywgMHgwMSwgMHg5MSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3MSwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgCi0gICAgMHgxMSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3MSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgCi0gICAgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgMHg3MSwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3MSwgMHgyZCwgMHgyMywgMHg2OCwgCi0gICAgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgCi0gICAgMHgyNywgMHgwMSwgMHhiMSwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5MSwgMHg5ZCwgMHgzMiwgMHg3ZCwgCi0gICAgMHgwMiwgMHgyZSwgMHgwNSwgMHg0YSwgMHg3YSwgMHgwNSwgMHg0YSwgMHg3YSwgMHgzNywgMHgwMSwgMHg5MSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3MSwgMHg3ZCwgCi0gICAgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxMSwgMHhlMiwgMHgzOCwgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3MSwgMHg3NSwgMHgzMSwgMHg5NCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgxMSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgCi0gICAgMHgyYiwgMHg3ZSwgMHgzNCwgMHgwZCwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3MSwgMHgxMiwgMHg2NSwgMHgyYiwgCi0gICAgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg0OSwgMHhkNywgMHgyMiwgMHhkMiwgMHgwOSwgMHg3ZSwgMHgwNCwgMHgwZCwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg3MSwgMHg3YSwgMHgwNywgMHgwMSwgMHg4MSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjMSwgCi0gICAgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgCi0gICAgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgCi0gICAgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwMSwgMHgwMCwgMHgyZSwgMHgyNywgCi0gICAgMHgwMSwgMHhjMSwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgCi0gICAgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzOSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgCi0gICAgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMSwgMHgyMiwgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgMHgwMSwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjMSwgMHg5ZSwgMHgyNCwgCi0gICAgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgCi0gICAgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgCi0gICAgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgCi0gICAgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwMSwgMHg3YSwgMHg2OSwgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgCi0gICAgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgCi0gICAgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgCi0gICAgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgCi0gICAgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgCi0gICAgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgCi0gICAgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgMHgwMiwgMHg0YiwgMHgzYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzOSwgMHgwYSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMSwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgCi0gICAgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg0YiwgMHgzYiwgMHhkYSwgMHhiOCwgMHgwMiwgMHg0YywgMHg4OCwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgCi0gICAgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgCi0gICAgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2OSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2OSwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2MSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgCi0gICAgMHgwNCwgMHhkMiwgMHg1OSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1OSwgMHgxMiwgMHg0MiwgMHhlOSwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgCi0gICAgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgCi0gICAgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg0YiwgCi0gICAgMHg4ZCwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgCi0gICAgMHgwYSwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyYSwgMHgwMywgMHhkMiwgMHgwYSwgMHgyMiwgMHg3NSwgMHgzMSwgMHhhMiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgCi0gICAgMHgxNCwgMHg4MiwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyYSwgMHgwMywgMHhkMiwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgCi0gICAgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgMHgxMiwgMHg0ZiwgMHhlMCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwYSwgCi0gICAgMHgyMiwgMHgzMCwgMHgzMiwgMHg0OSwgMHhkMiwgMHg3MiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5MywgMHg3ZSwgMHgyNywgMHgwMSwgMHhiMywgMHg5ZCwgMHgzMiwgCi0gICAgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0YywgMHg3YSwgMHgwNSwgMHg0YywgMHg3YSwgMHgzNywgMHgwMSwgMHg5MywgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg3MywgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxNSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3MywgCi0gICAgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgCi0gICAgMHg3MiwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3MiwgMHgyZCwgMHgyMywgMHg2OCwgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg5MywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgMHgyNywgMHgwMSwgMHhiMywgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHhiMywgMHg3ZSwgMHgzNywgMHgwMSwgMHg5MywgMHg5ZCwgMHgzMiwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0YywgMHg3YSwgMHgwNSwgMHg0YywgMHg3YSwgCi0gICAgMHgzNywgMHgwMSwgMHg5MywgMHg3ZSwgMHgzNywgMHgwMSwgMHg3MywgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxNSwgMHhlMiwgMHgzOCwgCi0gICAgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3MywgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgxNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgMHgyYiwgMHg3ZSwgMHgzNCwgMHgxMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgCi0gICAgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3MywgMHgxMiwgMHg2NSwgMHgyYiwgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg0ZCwgMHgyZiwgCi0gICAgMHgyMiwgMHhkMiwgMHgwYSwgMHg3ZSwgMHgwNCwgMHgxMSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3MywgMHg3YSwgMHgwNywgMHgwMSwgMHg4MywgMHg3NSwgCi0gICAgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjMywgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgCi0gICAgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwMiwgMHgwMCwgMHgyZSwgMHgyNywgMHgwMSwgMHhjMywgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgCi0gICAgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgCi0gICAgMHgzMCwgMHgzYSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMiwgMHgyMiwgCi0gICAgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgCi0gICAgMHgwMiwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjMywgMHg5ZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgCi0gICAgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgCi0gICAgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgCi0gICAgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwMiwgMHg3YSwgMHg2OSwgCi0gICAgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgCi0gICAgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgCi0gICAgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgCi0gICAgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgCi0gICAgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgCi0gICAgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgCi0gICAgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgCi0gICAgMHgwMiwgMHg0ZSwgMHg5MywgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzYSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgCi0gICAgMHhkMiwgMHgxMiwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg0ZSwgCi0gICAgMHg5MywgMHhkYSwgMHhiOCwgMHgwMiwgMHg0ZiwgMHhlMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgCi0gICAgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgCi0gICAgMHg2YSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MiwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg2MiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1YSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YSwgMHgxMiwgCi0gICAgMHg0MywgMHgwYSwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgCi0gICAgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgCi0gICAgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgCi0gICAgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg0ZSwgMHhlNSwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgMHgwYiwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyYiwgMHgwMywgMHhkMiwgMHgwYiwgCi0gICAgMHgyMiwgMHg3NSwgMHgzMSwgMHhhMywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNCwgMHg4MywgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyYiwgMHgwMywgCi0gICAgMHhkMiwgMHgwYiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgCi0gICAgMHgxMiwgMHg1MywgMHgzOCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwYiwgMHgyMiwgMHgzMCwgMHgzMywgMHg0OSwgMHhkMiwgMHg3MywgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg5NSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiNSwgMHg5ZCwgMHgzMiwgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0ZSwgMHg3YSwgCi0gICAgMHgwNSwgMHg0ZSwgMHg3YSwgMHgzNywgMHgwMSwgMHg5NSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3NSwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgCi0gICAgMHgxOSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3NSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgCi0gICAgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgMHg3MywgMHhjNCwgMHgyMiwgMHhjMiwgMHg3MywgMHgyZCwgMHgyMywgMHg2OCwgCi0gICAgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgCi0gICAgMHgyNywgMHgwMSwgMHhiNSwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiNSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5NSwgMHg5ZCwgMHgzMiwgMHg3ZCwgCi0gICAgMHgwMiwgMHgyZSwgMHgwNSwgMHg0ZSwgMHg3YSwgMHgwNSwgMHg0ZSwgMHg3YSwgMHgzNywgMHgwMSwgMHg5NSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3NSwgMHg3ZCwgCi0gICAgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxOSwgMHhlMiwgMHgzOCwgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3NSwgMHg3NSwgMHgzMSwgMHg5NCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgxOSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgCi0gICAgMHgyYiwgMHg3ZSwgMHgzNCwgMHgxNSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3NSwgMHgxMiwgMHg2NSwgMHgyYiwgCi0gICAgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg1MCwgMHg4NywgMHgyMiwgMHhkMiwgMHgwYiwgMHg3ZSwgMHgwNCwgMHgxNSwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg3NSwgMHg3YSwgMHgwNywgMHgwMSwgMHg4NSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjNSwgCi0gICAgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgCi0gICAgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgCi0gICAgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwMywgMHgwMCwgMHgyZSwgMHgyNywgCi0gICAgMHgwMSwgMHhjNSwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgCi0gICAgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzYiwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgCi0gICAgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMywgMHgyMiwgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgMHgwMywgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjNSwgMHg5ZSwgMHgyNCwgCi0gICAgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgCi0gICAgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgCi0gICAgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgCi0gICAgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwMywgMHg3YSwgMHg2OSwgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgCi0gICAgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgCi0gICAgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgCi0gICAgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgCi0gICAgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgCi0gICAgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgCi0gICAgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgMHgwMiwgMHg1MSwgMHhlYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzYiwgMHgwYSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxMywgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgCi0gICAgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg1MSwgMHhlYiwgMHhkYSwgMHhiOCwgMHgwMiwgMHg1MywgMHgzOCwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgCi0gICAgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgCi0gICAgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2YiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YiwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2MywgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgCi0gICAgMHgwNCwgMHhkMiwgMHg1YiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YiwgMHgxMiwgMHg0MywgMHgyYiwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgCi0gICAgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgCi0gICAgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg1MiwgCi0gICAgMHgzZCwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgCi0gICAgMHgwYywgMHgwMSwgMHgyMiwgMHgyMCwgMHgyYywgMHgwMywgMHhkMiwgMHgwYywgMHgyMiwgMHg3NSwgMHgzMSwgMHhhNCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgCi0gICAgMHgxNCwgMHg4NCwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyYywgMHgwMywgMHhkMiwgMHgwYywgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgCi0gICAgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgMHgxMiwgMHg1NiwgMHg5MCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwYywgCi0gICAgMHgyMiwgMHgzMCwgMHgzNCwgMHg0OSwgMHhkMiwgMHg3NCwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5NywgMHg3ZSwgMHgyNywgMHgwMSwgMHhiNywgMHg5ZCwgMHgzMiwgCi0gICAgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1MCwgMHg3YSwgMHgwNSwgMHg1MCwgMHg3YSwgMHgzNywgMHgwMSwgMHg5NywgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg3NywgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxZCwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3NywgCi0gICAgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgCi0gICAgMHg3NCwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3NCwgMHgyZCwgMHgyMywgMHg2OCwgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg5NywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgMHgyNywgMHgwMSwgMHhiNywgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHhiNywgMHg3ZSwgMHgzNywgMHgwMSwgMHg5NywgMHg5ZCwgMHgzMiwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1MCwgMHg3YSwgMHgwNSwgMHg1MCwgMHg3YSwgCi0gICAgMHgzNywgMHgwMSwgMHg5NywgMHg3ZSwgMHgzNywgMHgwMSwgMHg3NywgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgxZCwgMHhlMiwgMHgzOCwgCi0gICAgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3NywgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgxZCwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgMHgyYiwgMHg3ZSwgMHgzNCwgMHgxOSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgCi0gICAgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3NywgMHgxMiwgMHg2NSwgMHgyYiwgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg1MywgMHhkZiwgCi0gICAgMHgyMiwgMHhkMiwgMHgwYywgMHg3ZSwgMHgwNCwgMHgxOSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3NywgMHg3YSwgMHgwNywgMHgwMSwgMHg4NywgMHg3NSwgCi0gICAgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjNywgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgCi0gICAgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwNCwgMHgwMCwgMHgyZSwgMHgyNywgMHgwMSwgMHhjNywgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgCi0gICAgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgCi0gICAgMHgzMCwgMHgzYywgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNCwgMHgyMiwgCi0gICAgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgCi0gICAgMHgwNCwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjNywgMHg5ZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgCi0gICAgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgCi0gICAgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgCi0gICAgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwNCwgMHg3YSwgMHg2OSwgCi0gICAgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgCi0gICAgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgCi0gICAgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgCi0gICAgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgCi0gICAgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgCi0gICAgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgCi0gICAgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgCi0gICAgMHgwMiwgMHg1NSwgMHg0MywgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzYywgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgCi0gICAgMHhkMiwgMHgxNCwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg1NSwgCi0gICAgMHg0MywgMHhkYSwgMHhiOCwgMHgwMiwgMHg1NiwgMHg5MCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgCi0gICAgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgCi0gICAgMHg2YywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YywgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NCwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg2NCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1YywgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YywgMHgxMiwgCi0gICAgMHg0MywgMHg0YywgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgCi0gICAgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgCi0gICAgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgCi0gICAgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg1NSwgMHg5NSwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgMHgwZCwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyZCwgMHgwMywgMHhkMiwgMHgwZCwgCi0gICAgMHgyMiwgMHg3NSwgMHgzMSwgMHhhNSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNCwgMHg4NSwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyZCwgMHgwMywgCi0gICAgMHhkMiwgMHgwZCwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgCi0gICAgMHgxMiwgMHg1OSwgMHhlOCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwZCwgMHgyMiwgMHgzMCwgMHgzNSwgMHg0OSwgMHhkMiwgMHg3NSwgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg5OSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiOSwgMHg5ZCwgMHgzMiwgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1MiwgMHg3YSwgCi0gICAgMHgwNSwgMHg1MiwgMHg3YSwgMHgzNywgMHgwMSwgMHg5OSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3OSwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgCi0gICAgMHgyMSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3OSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgCi0gICAgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgMHg3NSwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3NSwgMHgyZCwgMHgyMywgMHg2OCwgCi0gICAgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5OSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgCi0gICAgMHgyNywgMHgwMSwgMHhiOSwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiOSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5OSwgMHg5ZCwgMHgzMiwgMHg3ZCwgCi0gICAgMHgwMiwgMHgyZSwgMHgwNSwgMHg1MiwgMHg3YSwgMHgwNSwgMHg1MiwgMHg3YSwgMHgzNywgMHgwMSwgMHg5OSwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3OSwgMHg3ZCwgCi0gICAgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgyMSwgMHhlMiwgMHgzOCwgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3OSwgMHg3NSwgMHgzMSwgMHg5NCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgyMSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgCi0gICAgMHgyYiwgMHg3ZSwgMHgzNCwgMHgxZCwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3OSwgMHgxMiwgMHg2NSwgMHgyYiwgCi0gICAgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg1NywgMHgzNywgMHgyMiwgMHhkMiwgMHgwZCwgMHg3ZSwgMHgwNCwgMHgxZCwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg3OSwgMHg3YSwgMHgwNywgMHgwMSwgMHg4OSwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjOSwgCi0gICAgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgCi0gICAgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgCi0gICAgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwNSwgMHgwMCwgMHgyZSwgMHgyNywgCi0gICAgMHgwMSwgMHhjOSwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgCi0gICAgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzZCwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgCi0gICAgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNSwgMHgyMiwgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgMHgwNSwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjOSwgMHg5ZSwgMHgyNCwgCi0gICAgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgCi0gICAgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgCi0gICAgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgCi0gICAgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwNSwgMHg3YSwgMHg2OSwgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgCi0gICAgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgCi0gICAgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgCi0gICAgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgCi0gICAgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgCi0gICAgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgCi0gICAgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgMHgwMiwgMHg1OCwgMHg5YiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzZCwgMHgwYSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNSwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgCi0gICAgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg1OCwgMHg5YiwgMHhkYSwgMHhiOCwgMHgwMiwgMHg1OSwgMHhlOCwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgCi0gICAgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgCi0gICAgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2ZCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2ZCwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2NSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgCi0gICAgMHgwNCwgMHhkMiwgMHg1ZCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZCwgMHgxMiwgMHg0MywgMHg2ZCwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgCi0gICAgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgCi0gICAgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg1OCwgCi0gICAgMHhlZCwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgCi0gICAgMHgwZSwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyZSwgMHgwMywgMHhkMiwgMHgwZSwgMHgyMiwgMHg3NSwgMHgzMSwgMHhhNiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgCi0gICAgMHgxNCwgMHg4NiwgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyZSwgMHgwMywgMHhkMiwgMHgwZSwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgCi0gICAgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgMHgxMiwgMHg1ZCwgMHg0MCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwZSwgCi0gICAgMHgyMiwgMHgzMCwgMHgzNiwgMHg0OSwgMHhkMiwgMHg3NiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5YiwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiYiwgMHg5ZCwgMHgzMiwgCi0gICAgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1NCwgMHg3YSwgMHgwNSwgMHg1NCwgMHg3YSwgMHgzNywgMHgwMSwgMHg5YiwgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg3YiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgyNSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3YiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgCi0gICAgMHg3NiwgMHhjNCwgMHgyMiwgMHhjMiwgMHg3NiwgMHgyZCwgMHgyMywgMHg2OCwgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg5YiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgMHgyNywgMHgwMSwgMHhiYiwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHhiYiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5YiwgMHg5ZCwgMHgzMiwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1NCwgMHg3YSwgMHgwNSwgMHg1NCwgMHg3YSwgCi0gICAgMHgzNywgMHgwMSwgMHg5YiwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3YiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgyNSwgMHhlMiwgMHgzOCwgCi0gICAgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3YiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgyNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgMHgyYiwgMHg3ZSwgMHgzNCwgMHgyMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgCi0gICAgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3YiwgMHgxMiwgMHg2NSwgMHgyYiwgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg1YSwgMHg4ZiwgCi0gICAgMHgyMiwgMHhkMiwgMHgwZSwgMHg3ZSwgMHgwNCwgMHgyMSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHg3YiwgMHg3YSwgMHgwNywgMHgwMSwgMHg4YiwgMHg3NSwgCi0gICAgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjYiwgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgCi0gICAgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgCi0gICAgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwNiwgMHgwMCwgMHgyZSwgMHgyNywgMHgwMSwgMHhjYiwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgCi0gICAgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgCi0gICAgMHgzMCwgMHgzZSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNiwgMHgyMiwgCi0gICAgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgCi0gICAgMHgwNiwgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjYiwgMHg5ZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgCi0gICAgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgCi0gICAgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgCi0gICAgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwNiwgMHg3YSwgMHg2OSwgCi0gICAgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgCi0gICAgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgCi0gICAgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgCi0gICAgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgCi0gICAgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgCi0gICAgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgCi0gICAgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgCi0gICAgMHgwMiwgMHg1YiwgMHhmMywgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzZSwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgCi0gICAgMHhkMiwgMHgxNiwgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg1YiwgCi0gICAgMHhmMywgMHhkYSwgMHhiOCwgMHgwMiwgMHg1ZCwgMHg0MCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgCi0gICAgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgCi0gICAgMHg2ZSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2ZSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NiwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg2NiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1ZSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZSwgMHgxMiwgCi0gICAgMHg0MywgMHg4ZSwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgCi0gICAgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgCi0gICAgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgCi0gICAgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg1YywgMHg0NSwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgCi0gICAgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHgxMCwgMHgwZiwgMHgwMSwgMHgyMiwgMHgyMCwgMHgyZiwgMHgwMywgMHhkMiwgMHgwZiwgCi0gICAgMHgyMiwgMHg3NSwgMHgzMSwgMHhhNywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNCwgMHg4NywgMHgwMCwgMHg4MCwgMHgwNiwgMHgyMCwgMHgyZiwgMHgwMywgCi0gICAgMHhkMiwgMHgwZiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwMywgCi0gICAgMHgxMiwgMHg2MCwgMHg5OCwgMHgyMCwgMHhlNiwgMHgwMywgMHhkMiwgMHgwZiwgMHgyMiwgMHgzMCwgMHgzNywgMHg0OSwgMHhkMiwgMHg3NywgMHg3ZSwgMHgzNywgCi0gICAgMHgwMSwgMHg5ZCwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiZCwgMHg5ZCwgMHgzMiwgMHg0MCwgMHgzMSwgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgMHg1NiwgMHg3YSwgCi0gICAgMHgwNSwgMHg1NiwgMHg3YSwgMHgzNywgMHgwMSwgMHg5ZCwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3ZCwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgCi0gICAgMHgyOSwgMHhlMiwgMHgzOCwgMHg2OCwgMHg3YSwgMHg0NywgMHgwMSwgMHg3ZCwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgCi0gICAgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg2NSwgMHgyYiwgMHgxMCwgMHg3NywgMHhjNCwgMHgyMiwgMHhjMiwgMHg3NywgMHgyZCwgMHgyMywgMHg2OCwgCi0gICAgMHg3OCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgxYSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5ZCwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg2OCwgMHg2YSwgMHhiZSwgCi0gICAgMHgyNywgMHgwMSwgMHhiZCwgMHgyOCwgMHgwNCwgMHg3ZSwgMHgyNywgMHgwMSwgMHhiZCwgMHg3ZSwgMHgzNywgMHgwMSwgMHg5ZCwgMHg5ZCwgMHgzMiwgMHg3ZCwgCi0gICAgMHgwMiwgMHgyZSwgMHgwNSwgMHg1NiwgMHg3YSwgMHgwNSwgMHg1NiwgMHg3YSwgMHgzNywgMHgwMSwgMHg5ZCwgMHg3ZSwgMHgzNywgMHgwMSwgMHg3ZCwgMHg3ZCwgCi0gICAgMHg0MywgMHgyZCwgMHg0MiwgMHhiZSwgMHg0NCwgMHgyOSwgMHhlMiwgMHgzOCwgMHgxMywgMHg3YSwgMHg0NywgMHgwMSwgMHg3ZCwgMHg3NSwgMHgzMSwgMHg5NCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwMiwgMHg2NSwgMHgyYiwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgyOSwgMHhlMywgMHg5ZCwgMHgyNCwgMHgxMiwgMHg2NSwgCi0gICAgMHgyYiwgMHg3ZSwgMHgzNCwgMHgyNSwgMHhlMywgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHg3ZCwgMHgxMiwgMHg2NSwgMHgyYiwgCi0gICAgMHhiZSwgMHgyNSwgMHgyMCwgMHg3OCwgMHgwMywgMHgwMiwgMHg1ZCwgMHhlNywgMHgyMiwgMHhkMiwgMHgwZiwgMHg3ZSwgMHgwNCwgMHgyNSwgMHhlMywgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHg3ZCwgMHg3YSwgMHgwNywgMHgwMSwgMHg4ZCwgMHg3NSwgMHgzMSwgMHg5NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5MiwgMHgxMiwgMHg3YywgMHgxNSwgMHhkMiwgMHgwNCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgCi0gICAgMHhjYSwgMHhiOCwgMHg1NCwgMHg4MiwgMHhkYSwgMHhiOCwgMHg3OCwgMHg3MCwgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNywgMHgwMSwgMHhjZCwgCi0gICAgMHgyZSwgMHgyNCwgMHgwMCwgMHgwMiwgMHgyZCwgMHgzMiwgMHhiZSwgMHgzNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHgzYywgMHg3ZCwgMHgwMiwgMHgyZSwgMHgwNSwgCi0gICAgMHg0NiwgMHg3YSwgMHgwNSwgMHg0NiwgMHg3YSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZiwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0MiwgCi0gICAgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg0NCwgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHg3ZSwgMHgyNCwgMHgwNywgMHgwMCwgMHgyZSwgMHgyNywgCi0gICAgMHgwMSwgMHhjZCwgMHgxYiwgMHgzOCwgMHgyMCwgMHgwYiwgMHgzNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZSwgMHg1MCwgMHgzOCwgCi0gICAgMHg3OCwgMHgwMywgMHgwMiwgMHg2NiwgMHgxNiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzZiwgMHgwYSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHg1NCwgCi0gICAgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNywgMHgyMiwgMHg4MCwgMHg3ZCwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHgyNCwgMHg3ZSwgMHg2NCwgMHgwNywgMHgwMCwgMHgyZSwgMHg2NywgMHgwMSwgMHhjZCwgMHg5ZSwgMHgyNCwgCi0gICAgMHgwMCwgMHgwMiwgMHg0MCwgMHgxNywgMHgxYiwgMHgzOCwgMHg2MCwgMHgwYiwgMHgzNSwgMHgxMiwgMHg2NSwgMHhmYiwgMHg3ZSwgMHgzNCwgMHgwMSwgMHhlMywgCi0gICAgMHg3ZCwgMHgyNCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZiwgMHgwMiwgMHg2NSwgMHhmYiwgMHg3YSwgMHgzOSwgMHhjMCwgMHg3ZSwgMHgzNCwgCi0gICAgMHgwMSwgMHhlMywgMHg3YSwgMHgzOSwgMHhkMCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg4MCwgMHhlNSwgMHg5ZCwgMHgzMiwgMHg3YywgMHhiNiwgMHg1NCwgCi0gICAgMHgwZiwgMHgyMywgMHgyMywgMHgyMywgMHg0NCwgMHgwNywgMHg3YSwgMHg2OSwgMHhiMCwgMHg3YSwgMHg3OSwgMHg3MCwgMHgwYiwgMHgzNSwgMHg3NSwgMHgzMSwgCi0gICAgMHg5MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhiZCwgMHgwNCwgMHg2OCwgMHgyOSwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhkZiwgMHg3ZSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhlMSwgMHgyZSwgMHgzNSwgMHg0NiwgMHg3YSwgCi0gICAgMHgzNSwgMHg0NiwgMHgyMiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHgxMywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgCi0gICAgMHgyYSwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHgyYywgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkMSwgMHhkMiwgMHgwNCwgMHg3ZSwgCi0gICAgMHgwNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNCwgMHgwMywgMHhmZSwgMHg5ZCwgMHgyMCwgMHgyOCwgMHg0MCwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3ZSwgCi0gICAgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZCwgMHg2MCwgMHgwYiwgMHgwNCwgMHhiZCwgMHgwNCwgMHg2OCwgMHhkMCwgMHg3ZCwgMHg3MCwgMHgwYiwgMHgwNCwgMHhiZCwgCi0gICAgMHgwNCwgMHg2OCwgMHhjZSwgMHg3ZCwgMHg1NCwgMHg5ZCwgMHg1MCwgMHhiZCwgMHgyNSwgMHg0MCwgMHgwMiwgMHg3ZCwgMHgyNSwgMHg3ZCwgMHgzMiwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1NCwgMHgxZiwgMHhiNCwgMHgwMSwgMHgzMSwgMHhkYSwgMHhiOCwgMHg3ZSwgMHgxOSwgMHhiMCwgMHg3YSwgCi0gICAgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHgxYiwgMHgyNCwgMHg3OCwgMHhlNywgMHgwMiwgMHg1ZiwgMHg0YiwgMHg3NSwgMHgzMSwgMHg5OSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmYSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgwNCwgMHgzMCwgMHgzZiwgMHgwYSwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxMCwgMHg1NCwgMHhmZSwgMHgxOSwgMHhiMSwgMHgwMCwgMHgxMCwgMHhkMiwgMHgxNywgMHgyMiwgMHhkYSwgMHhiOCwgMHgzMCwgMHhlMCwgMHhkOCwgCi0gICAgMHhiZCwgMHgzMiwgMHg2OCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHg1ZiwgMHg0YiwgMHhkYSwgMHhiOCwgMHgwMiwgMHg2MCwgMHg5OCwgMHgwOSwgMHhiMSwgCi0gICAgMHgwMCwgMHgxOCwgMHg3ZSwgMHhhMCwgMHg4OCwgMHg3NSwgMHgzMSwgMHg5MCwgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHhhNSwgMHhmYywgMHg1ZSwgMHhiMCwgMHhmMCwgMHhhNSwgMHhmZCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHg0YywgMHg0YiwgMHg1ZSwgMHhiMCwgMHhmMCwgCi0gICAgMHhiYywgMHhiNSwgMHg3OCwgMHhmMSwgMHg1ZSwgMHg0MCwgMHgwZiwgMHg0YywgMHg1NCwgMHg3YywgMHhiNSwgMHg1ZSwgMHg1MCwgMHgwYiwgMHg2OCwgMHgyYSwgCi0gICAgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2ZiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2ZiwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2NywgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgCi0gICAgMHgwNCwgMHhkMiwgMHg1ZiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZiwgMHgxMiwgMHg0MywgMHhhZiwgMHgwMiwgMHg2MiwgMHg5MywgMHg3NSwgMHgzMSwgMHg5MSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHg3YSwgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHhlMCwgMHgwOCwgCi0gICAgMHhkMiwgMHgwNCwgMHg3ZSwgMHhhMCwgMHg4MCwgMHgwMiwgMHg2MiwgMHg5MywgMHhkMiwgMHgwNCwgMHgzMCwgMHhlMSwgMHgwNiwgMHg3ZSwgMHhhMCwgMHg4MCwgCi0gICAgMHgxMiwgMHg2MiwgMHg5MywgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxYywgMHhkYSwgMHhiOCwgMHg2OCwgMHgxMiwgMHg3ZSwgMHhhMCwgMHhjMCwgMHgwOSwgCi0gICAgMHg2MSwgMHgwMCwgMHgwMCwgMHgxMiwgMHg2MiwgMHhiNiwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxNCwgMHgyMCwgMHhlMCwgMHhkYiwgMHgyMiwgMHgwMiwgMHg1ZiwgCi0gICAgMHg5ZCwgMHg3NSwgMHgzMSwgMHg5NSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg5NiwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHg3YywgCi0gICAgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgCi0gICAgMHg2OCwgMHgwNCwgMHhkMiwgMHg2OCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2OCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgCi0gICAgMHg2MCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2MCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1OCwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg1OCwgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgCi0gICAgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2OSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2OSwgMHhhNSwgMHhmZCwgCi0gICAgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2MSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgCi0gICAgMHg2OCwgMHgwNCwgMHhkMiwgMHg1OSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1OSwgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgCi0gICAgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2YSwgCi0gICAgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2MiwgMHg4MCwgMHgwMiwgMHhjMiwgCi0gICAgMHg2MiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1YSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YSwgMHgwMiwgMHg2MiwgCi0gICAgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2YiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgCi0gICAgMHgwNCwgMHhkMiwgMHg2MywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2MywgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1YiwgCi0gICAgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YiwgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgCi0gICAgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2YywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2YywgCi0gICAgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2NCwgMHhhNSwgMHhmZCwgMHg1ZSwgCi0gICAgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1YywgMHg4MCwgMHgwMiwgMHhjMiwgMHg1YywgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgCi0gICAgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgCi0gICAgMHhkMiwgMHg2ZCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2ZCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NSwgMHg4MCwgCi0gICAgMHgwMiwgMHhjMiwgMHg2NSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1ZCwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZCwgCi0gICAgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgCi0gICAgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2ZSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2ZSwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgCi0gICAgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg2NiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgCi0gICAgMHhkMiwgMHg1ZSwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZSwgMHgwMiwgMHg2MiwgMHg3ZiwgMHg3YywgMHgwMiwgMHg3ZSwgMHgxNCwgMHg4MCwgMHgwMCwgMHg0YywgCi0gICAgMHgyMCwgMHgwOSwgMHhiMSwgMHgwMCwgMHgxOCwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgxMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2ZiwgMHg4MCwgMHgwMiwgCi0gICAgMHhjMiwgMHg2ZiwgMHhhNSwgMHhmZCwgMHg1ZSwgMHg1MCwgMHgyMCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg2NywgMHg4MCwgMHgwMiwgMHhjMiwgMHg2NywgMHhhNSwgCi0gICAgMHhmZCwgMHg1ZSwgMHg1MCwgMHg4MCwgMHg2OCwgMHgwNCwgMHhkMiwgMHg1ZiwgMHg4MCwgMHgwMiwgMHhjMiwgMHg1ZiwgMHgwMiwgMHg2MiwgMHg3ZiwgMHg1NCwgCi0gICAgMHhmMCwgMHhjNCwgMHhhNSwgMHhmZiwgMHhjNCwgMHhhNSwgMHg0ZiwgMHg3NSwgMHgzMSwgMHg5MCwgMHgxMiwgMHg3YywgMHgxNSwgMHhmNSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHgyMiwgMHhjYSwgMHgxOSwgMHg1ZSwgMHgyMCwgMHgwNywgMHg0YywgMHhhMiwgMHg3ZSwgMHg3NCwgMHgyOSwgMHhlMywgMHhjYSwgMHg3OSwgCi0gICAgMHg3YSwgMHg3OSwgMHhhMCwgMHgwYiwgMHg3NCwgMHg3YSwgMHg3OSwgMHhiMCwgMHgwYiwgMHg3NCwgMHhkYSwgMHg3OSwgMHg3ZSwgMHgzMCwgMHgwMiwgMHg3ZSwgCi0gICAgMHg2NCwgMHgwMCwgMHgwMiwgMHgwMiwgMHg2MiwgMHhkZSwgMHhjYSwgMHgxOSwgMHg1ZSwgMHgyMCwgMHgwNywgMHg0YywgMHhhMiwgMHg3ZSwgMHg3NCwgMHgyOSwgCi0gICAgMHhlMywgMHhjYSwgMHg3OSwgMHg3YSwgMHg3OSwgMHhhMCwgMHgwYiwgMHg3NCwgMHg3YSwgMHg3OSwgMHhiMCwgMHgwYiwgMHg3NCwgMHg3YSwgMHg3OSwgMHg2MCwgCi0gICAgMHgwYiwgMHg3NCwgMHhkYSwgMHg3OSwgMHg3ZSwgMHgzMCwgMHgwMywgMHg3ZSwgMHg2NCwgMHgwMCwgMHgwMywgMHgwMiwgMHg2MiwgMHhkZSwgMHhkMiwgMHgwNCwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHhlMSwgMHgyZCwgMHgyNiwgMHhiZSwgMHgyNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHgyZSwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkZiwgCi0gICAgMHg3ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg3ZSwgMHg3OSwgMHhhMCwgMHg3YSwgMHgwOSwgMHhhMCwgMHgwYiwgMHgwNCwgMHgwYiwgMHg3NCwgMHhiZCwgMHgwNCwgCi0gICAgMHg2OCwgMHgyMywgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YSwgMHgyNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHgyNSwgMHg0NiwgMHgyZCwgMHgyNiwgMHg3YSwgMHgyNSwgCi0gICAgMHg0NiwgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHhkYSwgMHgxOSwgMHhjMiwgMHhkNywgMHgyMiwgMHg3NSwgMHgzMSwgMHg5YSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHhkYSwgMHgxOSwgMHhkMiwgMHhkNywgMHgyMiwgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg4MCwgMHhkNywgMHg0OCwgMHhiNiwgMHg0NiwgMHgyNSwgMHg0NywgCi0gICAgMHgxYywgMHg0OSwgMHgxNSwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0OCwgMHgxYiwgMHg0NCwgMHhjNiwgMHg0OSwgMHg1OSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0OSwgMHg2MCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0YywgMHgwZSwgMHg0OSwgMHg3ZCwgMHg0YSwgCi0gICAgMHg3NCwgMHg0YywgMHg2ZCwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0YiwgMHg3MywgMHg0NCwgMHhjNiwgMHg0YywgMHhiMSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0YywgMHhiOCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0ZiwgMHg2NiwgMHg0YywgMHhkNSwgMHg0ZCwgCi0gICAgMHhjYywgMHg0ZiwgMHhjNSwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0ZSwgMHhjYiwgMHg0NCwgMHhjNiwgMHg1MCwgMHgwOSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1MCwgMHgxMCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1MiwgMHhiZSwgMHg1MCwgMHgyZCwgMHg1MSwgCi0gICAgMHgyNCwgMHg1MywgMHgxZCwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1MiwgMHgyMywgMHg0NCwgMHhjNiwgMHg1MywgMHg2MSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1MywgMHg2OCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1NiwgMHgxNiwgMHg1MywgMHg4NSwgMHg1NCwgCi0gICAgMHg3YywgMHg1NiwgMHg3NSwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1NSwgMHg3YiwgMHg0NCwgMHhjNiwgMHg1NiwgMHhiOSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1NiwgMHhjMCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1OSwgMHg2ZSwgMHg1NiwgMHhkZCwgMHg1NywgCi0gICAgMHhkNCwgMHg1OSwgMHhjZCwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1OCwgMHhkMywgMHg0NCwgMHhjNiwgMHg1YSwgMHgxMSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1YSwgMHgxOCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1YywgMHhjNiwgMHg1YSwgMHgzNSwgMHg1YiwgCi0gICAgMHgyYywgMHg1ZCwgMHgyNSwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1YywgMHgyYiwgMHg0NCwgMHhjNiwgMHg1ZCwgMHg2OSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1ZCwgMHg3MCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg2MCwgMHgxZSwgMHg1ZCwgMHg4ZCwgMHg1ZSwgCi0gICAgMHg4NCwgMHg2MCwgMHg3ZCwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg1ZiwgMHg4MywgMHg0NCwgMHhjNiwgMHg2MCwgMHhjMSwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg2MCwgMHhjOCwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgCi0gICAgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHg0NCwgMHhjNiwgMHhjYSwgMHgyOSwgMHgxZSwgMHg1MCwgMHg0MCwgCi0gICAgMHgwZCwgMHg3ZSwgMHg1NCwgMHgwYiwgMHgxMCwgMHg5YywgMHhiNSwgMHhhNCwgMHgyZSwgMHg1NCwgMHg2NSwgMHg0OCwgMHg4OSwgMHg1NCwgMHg3ZSwgMHgzOSwgCi0gICAgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHgwYiwgMHgzNCwgMHg4MCwgMHhlOSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgCi0gICAgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgCi0gICAgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgCi0gICAgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgCi0gICAgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgCi0gICAgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgCi0gICAgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgCi0gICAgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgCi0gICAgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgCi0gICAgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHgwMCwgCi0gICAgMHg3YSwgMHgxOSwgMHgwMCwgMHg3YSwgMHgxOSwgMHgxMCwgMHgwYiwgMHgzNSwgMHhkYSwgMHgyOSwgMHgyMiwgMHgxZSwgMHg1MCwgMHg0MCwgMHgwZCwgMHg3ZSwgCi0gICAgMHg1NCwgMHgwYiwgMHgxYywgMHg5YywgMHhiNSwgMHhhNCwgMHgyZSwgMHg1NCwgMHg2NiwgMHgxNiwgMHg4OSwgMHg1NCwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3YSwgCi0gICAgMHgzOSwgMHgwMCwgMHgwYiwgMHgzNCwgMHg4MCwgMHhlOSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgCi0gICAgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgCi0gICAgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgCi0gICAgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgCi0gICAgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgCi0gICAgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgCi0gICAgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgCi0gICAgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgCi0gICAgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgCi0gICAgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgCi0gICAgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgCi0gICAgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgCi0gICAgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgCi0gICAgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgCi0gICAgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHgxOSwgMHgwMCwgMHg3ZSwgMHgxOSwgMHgxMCwgMHgxYiwgMHgzOCwgMHgwMCwgMHgwYiwgMHgzNSwgMHgyMiwgMHg2NywgMHg5NiwgMHg2OSwgMHg2MywgMHg2OSwgCi0gICAgMHg3YiwgMHg2YSwgMHg0OSwgMHg2YSwgMHhlNCwgMHg2YiwgMHg4ZSwgMHg2YiwgMHhhOSwgMHg2YywgMHgzYiwgMHg2YiwgMHhjNCwgMHg2YywgMHgwNSwgMHg2OSwgCi0gICAgMHg5NiwgMHg2OSwgMHhhYSwgMHg3YywgMHhiMywgMHhiZSwgMHhiMCwgMHgwYiwgMHgyOCwgMHgxNCwgMHg3NSwgMHgzMSwgMHgwOSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg3NSwgMHg2ZCwgMHgxMCwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHg0MywgMHhlMSwgMHhjMCwgMHhkMCwgMHhmMSwgMHgyMiwgMHhjMCwgMHhhOCwgCi0gICAgMHhjMiwgMHhhZiwgMHgyMywgMHg2YywgMHhhYSwgMHgyZSwgMHg1NCwgMHg2NywgMHg0YiwgMHgwYiwgMHg1OCwgMHg1MCwgMHg4OSwgMHg1NCwgMHgwMSwgMHgwMiwgCi0gICAgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg3NSwgMHgzMSwgMHhiMCwgMHgxMiwgMHg3YywgMHgxNSwgMHgwYSwgMHgzMiwgMHgwOSwgMHhiMywgCi0gICAgMHg2NywgMHg4ZSwgMHg0MiwgMHgzMiwgMHgxOSwgMHg0MywgMHgwMCwgMHgzNiwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgzYiwgCi0gICAgMHg0OSwgMHgzMywgMHg2NywgMHhjYiwgMHgwYSwgMHgyMiwgMHgwOSwgMHgzMiwgMHgwMCwgMHgzNiwgMHgwOSwgMHhiMiwgMHg2NywgMHg4ZSwgMHhhNSwgMHhiYiwgCi0gICAgMHgwMCwgMHgwNSwgMHhmNCwgMHg1MiwgMHgzMywgMHg4MCwgMHgwMiwgMHg0MiwgMHgzMywgMHg4OSwgMHgzNCwgMHg2NywgMHhkYiwgMHg2OCwgMHgwOSwgMHg2OCwgCi0gICAgMHgzNywgMHg2OCwgMHg2NSwgMHg2OCwgMHg5MywgMHg2OCwgMHhjMSwgMHg2OCwgMHhlZiwgMHg2OSwgMHgxZCwgMHgxMiwgMHg0MSwgMHhiNSwgMHhkMiwgMHgyOCwgCi0gICAgMHhkMiwgMHgwOCwgMHhjMiwgMHg0MCwgMHhjMiwgMHg0OCwgMHhjMiwgMHgzOCwgMHhjMiwgMHgzMCwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhjZiwgCi0gICAgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhZiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiZiwgCi0gICAgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MCwgMHhjZiwgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgMHg0MSwgMHhkNCwgMHhkMiwgMHgyOSwgMHhkMiwgMHgwOSwgCi0gICAgMHhjMiwgMHg0MSwgMHhjMiwgMHg0OSwgMHhjMiwgMHgzOSwgMHhjMiwgMHgzMSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMCwgMHg3ZSwgMHgwNCwgCi0gICAgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiMSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhjMSwgMHgxMiwgMHg0MSwgCi0gICAgMHgxNiwgMHgxMiwgMHg2MSwgMHgwNSwgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgMHg0MSwgMHhmMywgMHhkMiwgMHgyYSwgMHhkMiwgMHgwYSwgMHhjMiwgMHg0MiwgCi0gICAgMHhjMiwgMHg0YSwgMHhjMiwgMHgzYSwgMHhjMiwgMHgzMiwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHhiMywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhjMywgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgCi0gICAgMHg2MSwgMHgzYiwgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgMHg0MiwgMHgxMiwgMHhkMiwgMHgyYiwgMHhkMiwgMHgwYiwgMHhjMiwgMHg0MywgMHhjMiwgMHg0YiwgCi0gICAgMHhjMiwgMHgzYiwgMHhjMiwgMHgzMywgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhiNSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhjNSwgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MSwgMHg3MSwgCi0gICAgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgMHg0MiwgMHgzMSwgMHhkMiwgMHgyYywgMHhkMiwgMHgwYywgMHhjMiwgMHg0NCwgMHhjMiwgMHg0YywgMHhjMiwgMHgzYywgCi0gICAgMHhjMiwgMHgzNCwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkMywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiNywgCi0gICAgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhjNywgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MSwgMHhhNywgMHgwMiwgMHg2OSwgCi0gICAgMHg0YiwgMHgxMiwgMHg0MiwgMHg1MCwgMHhkMiwgMHgyZCwgMHhkMiwgMHgwZCwgMHhjMiwgMHg0NSwgMHhjMiwgMHg0ZCwgMHhjMiwgMHgzZCwgMHhjMiwgMHgzNSwgCi0gICAgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhkNCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiOSwgMHg3ZSwgMHgwNCwgCi0gICAgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhjOSwgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MSwgMHhkZCwgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgCi0gICAgMHg0MiwgMHg2ZiwgMHhkMiwgMHgyZSwgMHhkMiwgMHgwZSwgMHhjMiwgMHg0NiwgMHhjMiwgMHg0ZSwgMHhjMiwgMHgzZSwgMHhjMiwgMHgzNiwgMHg2ZCwgMHgwMCwgCi0gICAgMHg3YSwgMHgwMywgMHgwMSwgMHhkNSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiYiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHhjYiwgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MiwgMHgxMywgMHgwMiwgMHg2OSwgMHg0YiwgMHgxMiwgMHg0MiwgMHg4ZSwgCi0gICAgMHhkMiwgMHgyZiwgMHhkMiwgMHgwZiwgMHhjMiwgMHg0NywgMHhjMiwgMHg0ZiwgMHhjMiwgMHgzZiwgMHhjMiwgMHgzNywgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgCi0gICAgMHgwMSwgMHhkNiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiZCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhjZCwgMHgxMiwgMHg0MSwgMHgxNiwgMHgxMiwgMHg2MiwgMHg0OSwgMHgwMiwgMHg2OSwgMHg0YiwgMHg3ZSwgMHhhMCwgMHhkMCwgMHg3ZSwgMHg2MCwgCi0gICAgMHgwZiwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgwYywgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgCi0gICAgMHhjMiwgMHhkNywgMHgyMiwgMHg3NSwgMHgzMSwgMHhiMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwYSwgMHg1MiwgMHgyMywgMHg2ZCwgMHgwMCwgMHg1OSwgMHgwNSwgCi0gICAgMHgwMCwgMHg0OCwgMHgxMiwgMHg0MSwgMHg3ZSwgMHgxMiwgMHg0MSwgMHg5YSwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiMiwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHg2NywgMHg4ZSwgMHg0MiwgMHgyMywgMHg3ZSwgMHhiMCwgMHg5YywgMHgxOSwgMHhiMiwgMHgwMSwgMHhjZiwgCi0gICAgMHgxMiwgMHgzMSwgMHg4NSwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiNywgMHgxMiwgMHg3YywgMHgxNSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgCi0gICAgMHg2NywgMHg4ZSwgMHg0MiwgMHgyNCwgMHgxMiwgMHgzNSwgMHgzZCwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiOSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHgwYSwgMHgzMiwgMHgwOSwgMHhiMywgMHg2NywgMHg4ZSwgMHg0MiwgMHgzNCwgMHgxOSwgMHg0MywgMHgwMCwgMHgzZSwgMHgxMiwgMHg2OSwgMHhjMiwgMHhkMCwgCi0gICAgMHhhOCwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgwYiwgMHg3YywgMHhiNCwgMHgyMCwgMHhlMCwgMHgwNCwgMHg2ZCwgMHgzMywgMHg4MCwgMHgwNCwgCi0gICAgMHg0OSwgMHgzMCwgMHgwMSwgMHg4ZiwgMHg3ZSwgMHhhMCwgMHhkOCwgMHhhNSwgMHhlZiwgMHhjYSwgMHgwYiwgMHhjYSwgMHgyOSwgMHgxMiwgMHg2MiwgMHhiNiwgCi0gICAgMHhkYSwgMHgyOSwgMHhkYSwgMHgwYiwgMHg0MCwgMHg2MiwgMHg3NSwgMHgzMSwgMHhiYSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YywgMHhiNCwgMHgzMCwgMHhlMCwgCi0gICAgMHgxZSwgMHg2ZCwgMHgzMywgMHg1OSwgMHgzMCwgMHgwMSwgMHg4ZiwgMHg3ZSwgMHgzNCwgMHgwOSwgMHhlMywgMHgwYSwgMHg4MiwgMHg3ZSwgMHg5NCwgMHgwNCwgCi0gICAgMHgwMCwgMHhhZCwgMHg4OSwgMHgyZCwgMHgzOSwgMHg1OSwgMHgzMCwgMHgwMSwgMHg2ZiwgMHg1OSwgMHgzMCwgMHgwMSwgMHg3ZiwgMHg3YywgMHhiNCwgMHgzMCwgCi0gICAgMHhlMSwgMHgxMCwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg0NCwgMHgwNCwgMHgxOSwgMHhiMCwgCi0gICAgMHgwMCwgMHgwOCwgMHgwYSwgMHgwMiwgMHgwOSwgMHhiMCwgMHg2NywgMHg4ZSwgMHg0MiwgMHgyMSwgMHhmNCwgMHg1MiwgMHgzNCwgMHg3YywgMHhiMiwgMHgyMywgCi0gICAgMHgwYSwgMHgwYiwgMHhjYSwgMHgxOSwgMHg0OSwgMHgwMCwgMHgzMCwgMHhkNSwgMHg5OSwgMHgwNCwgMHhkYSwgMHgxOSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgCi0gICAgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHhjMiwgMHhkNywgMHgyMiwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgCi0gICAgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgMHgzMCwgMHgwMCwgCi0gICAgMHgwYywgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMSwgMHg2OCwgMHgxMiwgMHg0NCwgMHg0MCwgMHhjYSwgMHhiOCwgMHgwOSwgMHhiMCwgMHgwMCwgMHgxMCwgCi0gICAgMHg0NCwgMHgwMiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHhkYSwgMHhiOCwgMHg4MCwgMHgwMiwgMHg1NCwgMHhiZiwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgCi0gICAgMHgwOCwgMHg2OCwgMHgwNCwgMHg0NCwgMHgwOCwgMHg4MCwgMHgwMiwgMHg1NCwgMHhmNywgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHhjYSwgMHhiOCwgMHg3NCwgCi0gICAgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhkYSwgMHhiOCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHgwYSwgCi0gICAgMHg2MiwgMHgwOSwgMHhiNiwgMHg2NywgMHg4ZSwgMHgzZSwgMHgyMCwgMHgwYSwgMHg2MiwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgMHg2OCwgMHgyMCwgCi0gICAgMHg0MiwgMHgyNywgMHhjYSwgMHhiOCwgMHg3NCwgMHg2MSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg1OSwgMHg0NiwgCi0gICAgMHgwMSwgMHhiZiwgMHgwOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHg0NCwgMHgwMSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHhkYSwgMHhiOCwgMHg4MCwgMHgxMSwgCi0gICAgMHhmNCwgMHg1MiwgMHgyNywgMHg3NCwgMHhhMSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgzOCwgMHg1OSwgMHg0NiwgMHgwMSwgCi0gICAgMHhiZiwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3YywgMHg3NCwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwYSwgMHg2MiwgMHgwOSwgMHhiNiwgCi0gICAgMHg2NywgMHg4ZSwgMHhhNSwgMHhmZCwgMHhmNCwgMHhhNSwgMHhmZSwgMHhjYSwgMHgyOCwgMHgzZSwgMHgyMCwgMHgwYSwgMHg2MiwgMHhhNSwgMHhlZSwgMHg1MiwgCi0gICAgMHgyNiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgyMCwgMHg1OSwgMHg0NiwgMHgwMSwgMHhhZiwgMHhkYSwgMHgyOCwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgCi0gICAgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMSwgMHg2OCwgMHgwYywgCi0gICAgMHg0NCwgMHg4MCwgMHhjYSwgMHhiOCwgMHhhNSwgMHhlZCwgMHg0MiwgMHgyYSwgMHhkYSwgMHhiOCwgMHg4MCwgMHgwYSwgMHg1NCwgMHg3ZiwgMHhjYSwgMHhiOCwgCi0gICAgMHhhNSwgMHhlZSwgMHg1MiwgMHgyYSwgMHhkYSwgMHhiOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwOCwgMHg2OCwgMHgwNCwgMHg0NCwgMHgwMiwgMHg4MCwgCi0gICAgMHgwMiwgMHg1NCwgMHhmZCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgCi0gICAgMHg2OCwgMHgxMCwgMHhhNSwgMHhlZCwgMHg0MiwgMHgyOCwgMHg0MiwgMHgyNiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgwOCwgMHg1OSwgMHg0NiwgMHgwMSwgMHhhZiwgCi0gICAgMHg4MCwgMHgwNCwgMHhhNSwgMHhlZSwgMHg1MiwgMHgyOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwNCwgMHg2OCwgMHgxMCwgMHhhNSwgMHhlZCwgMHg0MiwgCi0gICAgMHgyOSwgMHg0MiwgMHgyNiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgwOCwgMHg1OSwgMHg0NiwgMHgwMSwgMHhhZiwgMHg4MCwgMHgwYiwgMHhhNSwgMHhlZSwgMHg1MiwgCi0gICAgMHgyOSwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgMHg3OCwgMHgwMCwgMHgxMiwgMHg0MiwgMHhhZCwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHgwNCwgCi0gICAgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgxOSwgMHg0MCwgCi0gICAgMHgwMCwgMHgxMCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgCi0gICAgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgxOSwgMHg0MCwgMHgwMCwgMHgxOCwgMHgxOSwgMHgzMCwgMHgwMCwgCi0gICAgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiNSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgCi0gICAgMHgwOSwgMHhiMCwgMHgwMCwgMHgwYywgMHg0NCwgMHg0MCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhlNSwgMHg2ZSwgMHhiNCwgMHgwNywgMHgyMywgMHgwOSwgCi0gICAgMHhiMCwgMHgwMCwgMHgxMCwgMHg0ZSwgMHhiMCwgMHgwMiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgCi0gICAgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmNywgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgzMCwgCi0gICAgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiNiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgCi0gICAgMHgwMiwgMHhlNSwgMHg2ZSwgMHhiNCwgMHgwNywgMHgxOCwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgCi0gICAgMHgwOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHg0NCwgMHgwOCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgCi0gICAgMHgwMCwgMHgwYywgMHg1NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgzMSwgMHhiNCwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3YSwgMHgyMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg0MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgwYSwgMHgzMiwgMHgwOSwgCi0gICAgMHhiMywgMHg2NywgMHg4ZSwgMHg0MiwgMHgzNSwgMHgxMiwgMHg2YywgMHg1YiwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHhiMCwgMHgwMSwgMHg3ZSwgMHhhMCwgCi0gICAgMHhjOCwgMHg3YywgMHg2NCwgMHgxMiwgMHg2MiwgMHhiNiwgMHg0MCwgMHgxMywgMHgwYSwgMHgzMiwgMHgwOSwgMHhiMywgMHg2NywgMHg4ZSwgMHhmNCwgMHg1MiwgCi0gICAgMHgzNSwgMHhjMCwgMHhmMSwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZiwgMHhkOSwgMHhkMCwgMHhmMSwgMHgyMiwgMHg2YywgMHg4YywgMHg2YywgMHhkMywgCi0gICAgMHg2ZCwgMHgxYSwgMHg2ZCwgMHg2MSwgMHg2ZCwgMHhhOCwgMHg2ZCwgMHhlZiwgMHg2ZSwgMHgzNiwgMHg2ZSwgMHg3ZCwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgCi0gICAgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg3ZiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4ZiwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgCi0gICAgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgwZCwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgCi0gICAgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg3ZiwgMHg3YSwgMHgyNywgMHgwMSwgMHg4ZiwgMHgwMiwgMHg0NiwgMHgwZiwgMHg3ZSwgMHgxNCwgMHgwOSwgCi0gICAgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgCi0gICAgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg4MSwgMHg3ZSwgCi0gICAgMHgyNywgMHgwMSwgMHg5MSwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgCi0gICAgMHgxNCwgMHgxMSwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg4MSwgMHg3YSwgMHgyNywgMHgwMSwgCi0gICAgMHg5MSwgMHgwMiwgMHg0OSwgMHg2NywgMHg3ZSwgMHgxNCwgMHgwZCwgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg3NSwgMHgzMSwgMHgwMiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg4MywgMHg3ZSwgMHgyNywgMHgwMSwgMHg5MywgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgCi0gICAgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxNSwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgCi0gICAgMHg3YSwgMHgxNywgMHgwMSwgMHg4MywgMHg3YSwgMHgyNywgMHgwMSwgMHg5MywgMHgwMiwgMHg0YywgMHhiZiwgMHg3ZSwgMHgxNCwgMHgxMSwgMHhlMywgMHg4MCwgCi0gICAgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwMywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg4NSwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg5NSwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxOSwgCi0gICAgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg4NSwgMHg3YSwgMHgyNywgMHgwMSwgMHg5NSwgMHgwMiwgCi0gICAgMHg1MCwgMHgxNywgMHg3ZSwgMHgxNCwgMHgxNSwgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgCi0gICAgMHgwNCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgCi0gICAgMHg3ZSwgMHgxNywgMHgwMSwgMHg4NywgMHg3ZSwgMHgyNywgMHgwMSwgMHg5NywgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgCi0gICAgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxZCwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgCi0gICAgMHgwMSwgMHg4NywgMHg3YSwgMHgyNywgMHgwMSwgMHg5NywgMHgwMiwgMHg1MywgMHg2ZiwgMHg3ZSwgMHgxNCwgMHgxOSwgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgCi0gICAgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwNSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg4OSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5OSwgMHgyZCwgCi0gICAgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgyMSwgMHhlMiwgMHgzOCwgCi0gICAgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg4OSwgMHg3YSwgMHgyNywgMHgwMSwgMHg5OSwgMHgwMiwgMHg1NiwgMHhjNywgCi0gICAgMHg3ZSwgMHgxNCwgMHgxZCwgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwNiwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgCi0gICAgMHgwMSwgMHg4YiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5YiwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgCi0gICAgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgyNSwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg4YiwgCi0gICAgMHg3YSwgMHgyNywgMHgwMSwgMHg5YiwgMHgwMiwgMHg1YSwgMHgxZiwgMHg3ZSwgMHgxNCwgMHgyMSwgMHhlMywgMHg4MCwgMHhlYiwgMHg3NSwgMHgzMSwgMHg1NSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHgzMSwgMHgwNywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgCi0gICAgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg4ZCwgMHg3ZSwgMHgyNywgMHgwMSwgMHg5ZCwgMHgyZCwgMHgyMywgMHg3ZSwgCi0gICAgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgyOSwgMHhlMiwgMHgzOCwgMHgwZiwgMHgxYiwgCi0gICAgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg4ZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5ZCwgMHgwMiwgMHg1ZCwgMHg3NywgMHg3ZSwgMHgxNCwgCi0gICAgMHgyNSwgMHhlMywgMHg4MCwgMHhlYiwgMHhjYSwgMHhiOCwgMHhjMCwgMHhmMSwgMHg3NSwgMHgzMSwgMHgwMiwgMHgxMiwgMHg3YywgMHgxNSwgMHhlNSwgMHhjMCwgCi0gICAgMHg1NCwgMHgwMywgMHg2OCwgMHgwNSwgMHgxMiwgMHg3NSwgMHhjZCwgMHg4MCwgMHhmNSwgMHgzMCwgMHhjMiwgMHgwOCwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgCi0gICAgMHg2ZiwgMHhkOSwgMHg4MCwgMHgxNCwgMHgzMCwgMHhjMywgMHgwOCwgMHg3NSwgMHhmMSwgMHgwMSwgMHgxMiwgMHg2ZSwgMHhmZCwgMHg4MCwgMHgwOSwgMHgzMCwgCi0gICAgMHhjNCwgMHgwNiwgMHg3NSwgMHhmMSwgMHgwMiwgMHgxMiwgMHg3MCwgMHhlOSwgMHhkMCwgMHhmMSwgMHhkYSwgMHhiOCwgMHgzMiwgMHg3NSwgMHgzMSwgMHgxMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhjYSwgMHgwYiwgMHhjYSwgMHgzOSwgMHhjYSwgMHg1OSwgMHhjMiwgMHhjMywgMHhhOSwgMHgyMSwgMHhlMiwgMHg1YywgMHhlNSwgCi0gICAgMHhlNSwgMHg1NCwgMHhjMCwgMHg2OCwgMHg0ZiwgMHhlNSwgMHhlNiwgMHg2YywgMHhhYSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkYiwgMHgyZCwgMHgzNSwgMHhiZSwgCi0gICAgMHgzNCwgMHgwNCwgMHgwMCwgMHgzOCwgMHg0YSwgMHg3YSwgMHgzNywgMHgwMSwgMHhkYiwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkOSwgMHg3ZCwgMHg0MywgMHgyZCwgCi0gICAgMHg0NSwgMHhiZSwgMHg0NCwgMHgwOSwgMHhlMiwgMHgzOCwgMHg0MCwgMHg3YSwgMHg0NywgMHgwMSwgMHhkOSwgMHg3NSwgMHgzMSwgMHgxMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3YSwgMHhiMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg3MSwgMHhiOCwgMHhhOSwgMHgyMSwgMHhlNSwgMHgxZiwgMHhhOSwgMHhkNCwgCi0gICAgMHhlNCwgMHhhOSwgMHgyNCwgMHhlNCwgMHhmYywgMHhjMiwgMHhjMywgMHhhOSwgMHgyMSwgMHhlMiwgMHgzYiwgMHhlNSwgMHhlNSwgMHg1NCwgMHhjMCwgMHg3OCwgCi0gICAgMHhiNCwgMHgxMiwgMHg3NCwgMHg1YSwgMHhkYSwgMHg1OSwgMHhkYSwgMHgzOSwgMHhkYSwgMHgwYiwgMHgyMiwgMHg4MCwgMHgyOSwgMHg4MCwgMHg1OCwgMHg3NSwgCi0gICAgMHgzMSwgMHgxNiwgMHgxMiwgMHg3YywgMHgxNSwgMHg4MCwgMHhlZCwgMHg3NSwgMHgzMSwgMHgxMiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHhiMSwgMHgzMSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg5ZSwgMHg0NCwgMHgwOSwgMHhlMywgMHg5ZCwgMHg1NCwgMHgxMiwgMHg3MSwgMHhiOCwgMHg3ZSwgMHgzNCwgMHgwNSwgMHhlMywgCi0gICAgMHg3ZCwgMHg1NCwgMHgyZCwgMHg0MywgMHg4MCwgMHhhMSwgMHhlNSwgMHhlNSwgMHg1NCwgMHgwMywgMHg3OCwgMHgxMiwgMHg3NSwgMHgzMSwgMHgxMywgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHg3ZSwgMHgwZiwgMHgyOSwgMHhmZiwgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyOSwgMHhmZiwgMHg4MCwgMHhhNywgMHg3NSwgMHgzMSwgCi0gICAgMHgxNCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwZiwgMHgyYSwgMHgwMywgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyYSwgMHgwMywgMHhhOSwgMHhkNywgCi0gICAgMHhlNCwgMHhhOSwgMHgyNywgMHhlNCwgMHhmYywgMHg4MCwgMHg5ZCwgMHg3NSwgMHgzMSwgMHgxNSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwZiwgMHgyYSwgCi0gICAgMHgwNywgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyYSwgMHgwNywgMHg4MCwgMHhlNSwgMHg3NSwgMHgzMSwgMHgxOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjYSwgCi0gICAgMHgwOSwgMHhjYSwgMHgzOSwgMHhjYSwgMHgyYiwgMHhjMiwgMHhjMiwgMHhhOSwgMHgyMSwgMHhmMiwgMHg1MiwgMHhlNSwgMHhmNSwgMHgzMywgMHg4MiwgMHhlNywgCi0gICAgMHg0MCwgMHg0NCwgMHg3ZSwgMHgzNywgMHgwMSwgMHhlMSwgMHg3ZSwgMHg1NCwgMHgwMCwgMHg0MCwgMHg5ZCwgMHgzNSwgMHg0MCwgMHg0MywgMHg3YSwgMHgzNywgCi0gICAgMHgwMSwgMHhlMSwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkZCwgMHg3ZCwgMHg0MywgMHgyZCwgMHg0NSwgMHhiZSwgMHg0NCwgMHgwNSwgMHhlMiwgMHgzOCwgMHg1MiwgCi0gICAgMHg3YSwgMHg0NywgMHgwMSwgMHhkZCwgMHg3ZCwgMHg0NSwgMHgxMiwgMHg3MywgMHgxNiwgMHhhOSwgMHgyMCwgMHhmNSwgMHgyMiwgMHg3NSwgMHgzMSwgMHgxOSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg5MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg4MSwgMHhmNywgMHg3YSwgMHg5MSwgMHhmNiwgMHhlNSwgCi0gICAgMHhmNSwgMHgzMywgMHg4MiwgMHhlNywgMHg1MCwgMHhiYywgMHhkYSwgMHgyYiwgMHhkYSwgMHgzOSwgMHhkYSwgMHgwOSwgMHgyMiwgMHg4MCwgMHg0MSwgMHg4MCwgCi0gICAgMHg2NCwgMHgyZCwgMHg1MywgMHg2ZCwgMHgzMywgMHg3MCwgMHhiNywgMHg3ZSwgMHgwNCwgMHgwMSwgMHhlMywgMHg3YSwgMHgwNywgMHgwMSwgMHhkZiwgMHg3YSwgCi0gICAgMHgwNywgMHgwMSwgMHhkZCwgMHhhOSwgMHgzMiwgMHhmMiwgMHhkZiwgMHg4NSwgMHgzMCwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHhmNiwgMHgwMCwgCi0gICAgMHg4MCwgMHhkNCwgMHhjYSwgMHg1OSwgMHg5ZSwgMHg0NCwgMHgwNSwgMHhlMywgMHg5ZCwgMHg1NCwgMHgxMiwgMHg3MywgMHgxNiwgMHg3ZSwgMHgzNCwgMHgwMSwgCi0gICAgMHhlMywgMHg3ZCwgMHg1NCwgMHgyZCwgMHg0MywgMHg3YSwgMHg0NywgMHgwMSwgMHhkZCwgMHgxMiwgMHg3MywgMHgxNiwgMHhkYSwgMHg0OSwgMHg4MCwgMHg5OSwgCi0gICAgMHhlNSwgMHhmNSwgMHg1NCwgMHgwMywgMHg3OCwgMHgxZiwgMHg3ZSwgMHgwZiwgMHgyOSwgMHhlZiwgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyOSwgMHhlZiwgCi0gICAgMHg4MCwgMHg5ZCwgMHg3ZSwgMHgwZiwgMHgyOSwgMHhmNywgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyOSwgMHhmNywgMHhhOSwgMHhkNywgMHhmNCwgMHhhOSwgCi0gICAgMHgyNywgMHhmNCwgMHhmYywgMHg4MCwgMHg4YSwgMHg3ZSwgMHgwZiwgMHgyOSwgMHhmMywgMHgwYiwgMHgwYywgMHg3YSwgMHgwZiwgMHgyOSwgMHhmMywgMHg4MCwgCi0gICAgMHhlYiwgMHhlNSwgMHhmNSwgMHg1NCwgMHgwMywgMHg3OCwgMHgxZiwgMHg3ZSwgMHgyZiwgMHgyYSwgMHgwZiwgMHgwYiwgMHgyYywgMHg3YSwgMHgyZiwgMHgyYSwgCi0gICAgMHgwZiwgMHg4MCwgMHgzNCwgMHg3ZSwgMHgyZiwgMHgyYSwgMHgxNywgMHgwYiwgMHgyYywgMHg3YSwgMHgyZiwgMHgyYSwgMHgxNywgMHhhOSwgMHhkNywgMHhmNCwgCi0gICAgMHhhOSwgMHgyNywgMHhmNCwgMHhmYywgMHg4MCwgMHgyMSwgMHg3ZSwgMHgyZiwgMHgyYSwgMHgxMywgMHgwYiwgMHgyYywgMHg3YSwgMHgyZiwgMHgyYSwgMHgxMywgCi0gICAgMHg4MCwgMHhlYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHg3NSwgMHgzMSwgMHgyOCwgMHgxMiwgMHg3YywgMHgxNSwgMHhjYSwgCi0gICAgMHgwYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgyYiwgMHhjMiwgMHhjNCwgMHhhOSwgMHgyMSwgMHhmMiwgMHhiNiwgMHhlNSwgMHhmNSwgMHgzMywgMHg3MiwgMHhlNywgCi0gICAgMHg0MCwgMHhlMCwgMHg3ZSwgMHgwZCwgMHg0NiwgMHg3ZSwgMHgxZCwgMHg0YSwgMHg3ZSwgMHgyZCwgMHg0ZSwgMHg3ZSwgMHgzZCwgMHg1MiwgMHg3ZSwgMHg4NSwgCi0gICAgMHg1NiwgMHg3ZCwgMHg5MCwgMHg0ZCwgMHg5MSwgMHg0ZCwgMHg5MiwgMHg0ZCwgMHg5MywgMHg0ZCwgMHg5NCwgMHg0ZCwgMHg5NSwgMHg0ZCwgMHg5NiwgMHg0ZCwgCi0gICAgMHg5NywgMHg0ZCwgMHg5OCwgMHg2OCwgMHg3MiwgMHg3YSwgMHgxMSwgMHhmMywgMHg3YSwgMHgwMSwgMHhmMywgMHg3YSwgMHgzMSwgMHhmMywgMHg3YSwgMHgyMSwgCi0gICAgMHhmMywgMHg3YSwgMHg1MSwgMHhmMywgMHg3YSwgMHg0MSwgMHhmMywgMHg3YSwgMHg3MSwgMHhmMywgMHg3YSwgMHg2MSwgMHhmMywgMHg3YSwgMHg5MSwgMHhmMywgCi0gICAgMHg3YSwgMHg4MSwgMHhmMywgMHgzMCwgMHg3YiwgMHgxYSwgMHg3YSwgMHhiMSwgMHhmMywgMHg3YSwgMHhhMSwgMHhmMywgMHg3YSwgMHhkMSwgMHhmMywgMHg3YSwgCi0gICAgMHhjMSwgMHhmMywgMHg3YSwgMHhmMSwgMHhmMywgMHg3YSwgMHhlMSwgMHhmMywgMHg3ZCwgMHg3OCwgMHg3YSwgMHhmMSwgMHhmMywgMHg3YSwgMHhlMSwgMHhmMywgCi0gICAgMHhhOSwgMHgzMCwgMHhmNSwgMHgwMywgMHgwMiwgMHg3MCwgMHhkNiwgMHg3NSwgMHgzMSwgMHgyOSwgMHgxMiwgMHg3YywgMHgxNSwgMHgyMCwgMHg3YiwgMHgwYiwgCi0gICAgMHg3NSwgMHgzMSwgMHgwYSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3NSwgMHhmNiwgMHgwYSwgMHg4MCwgMHgwOSwgMHg3NSwgMHgzMSwgMHgxMiwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3NSwgMHhmNiwgMHgxMiwgMHg2ZCwgMHgwMCwgMHg3ZCwgMHgxMCwgMHg3YSwgMHgwZCwgMHg0NiwgMHg3YSwgMHgwZCwgMHg0YSwgMHg3YSwgMHgwZCwgCi0gICAgMHg0ZSwgMHg3YSwgMHgwZCwgMHg1MiwgMHg3YSwgMHgwNSwgMHg1NiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHgxZSwgMHhiMCwgCi0gICAgMHg0MCwgMHgwYywgMHg3ZSwgMHhhMCwgMHgwYSwgMHhhNCwgMHg3ZSwgMHgwNCwgMHg3MiwgMHhmYiwgMHg5ZCwgMHgwNSwgMHg4OSwgMHgwNCwgMHg3ZSwgMHhhMSwgCi0gICAgMHhlMywgMHg3YSwgMHgzOSwgMHhhMCwgMHgwYiwgMHgzNCwgMHg4MCwgMHhlYSwgMHhiNCwgMHg0MCwgMHhlMywgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgCi0gICAgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgCi0gICAgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgCi0gICAgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgCi0gICAgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgCi0gICAgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgCi0gICAgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgCi0gICAgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgCi0gICAgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgCi0gICAgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgCi0gICAgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgCi0gICAgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgCi0gICAgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgCi0gICAgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgCi0gICAgMHgzNSwgMHg3ZSwgMHhhMSwgMHhlMywgMHhlNSwgMHhlMywgMHgxYiwgMHgzOCwgMHg1MCwgMHgwYiwgMHgzNSwgMHgyMiwgMHgxZSwgMHhiMCwgMHg0MCwgMHgwYywgCi0gICAgMHg3ZSwgMHhhMCwgMHgwYSwgMHhhNCwgMHg3ZSwgMHgwNCwgMHg3NCwgMHg1OSwgMHg5ZCwgMHgwNSwgMHg4OSwgMHgwNCwgMHg3ZSwgMHgzOSwgMHhhMCwgMHg3YSwgCi0gICAgMHhhMSwgMHhmMywgMHgwYiwgMHgzNCwgMHg4MCwgMHhlYSwgMHhiNCwgMHg0MCwgMHhlMywgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgCi0gICAgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgCi0gICAgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgCi0gICAgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgCi0gICAgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgCi0gICAgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgCi0gICAgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgCi0gICAgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgCi0gICAgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgCi0gICAgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgCi0gICAgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgCi0gICAgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgCi0gICAgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgCi0gICAgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgCi0gICAgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgCi0gICAgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgCi0gICAgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgwYiwgCi0gICAgMHgzOCwgMHg1MCwgMHg3YSwgMHhhMSwgMHhmMywgMHhmNSwgMHhmMywgMHgwYiwgMHgzNSwgMHgyMiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHgzNywgMHgwMSwgMHhkYiwgCi0gICAgMHg0ZCwgMHgzMywgMHg2OCwgMHgzYiwgMHg3ZSwgMHgwNywgMHgwMSwgMHhkNywgMHg3ZSwgMHg1NCwgMHgwOSwgMHhlMywgMHg5ZCwgMHg1MCwgMHhiZCwgMHgzNSwgCi0gICAgMHg0MCwgMHgwMiwgMHg3ZCwgMHgzNSwgMHhjYSwgMHgzOSwgMHg3ZSwgMHg2NSwgMHg2MSwgMHg5OSwgMHg2NCwgMHhkYSwgMHgzOSwgMHg3ZSwgMHgwNywgMHgwMSwgCi0gICAgMHhkYiwgMHg5ZCwgMHgwMywgMHg3YSwgMHgwNywgMHgwMSwgMHhkYiwgMHgyZSwgMHgzNywgMHgwMSwgMHhkNywgMHg3YSwgMHgzNywgMHgwMSwgMHhkNywgMHhiZSwgCi0gICAgMHgzNCwgMHgwOSwgMHhlMiwgMHgyOCwgMHhjNywgMHg3ZSwgMHgzNCwgMHgwNSwgMHhlMywgMHg3YSwgMHgzNywgMHgwMSwgMHhkNywgMHg4MCwgMHhiZCwgMHhkMiwgCi0gICAgMHhhZiwgMHgyMiwgMHg3NSwgMHgzMSwgMHg1MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNSwgMHg2MywgMHg4MCwgMHgxMSwgMHg3NSwgMHgzMSwgMHg1MSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHgwYiwgMHgwOCwgMHgxMCwgMHgwYiwgMHgwNSwgMHg5ZSwgMHgzNCwgMHgwMCwgMHgwMiwgMHgyOCwgMHg0ZCwgMHg3YywgMHhiMiwgCi0gICAgMHgyMCwgMHhlNywgMHgyNywgMHg1NCwgMHgwNywgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgyMiwgMHg2YywgMHg3YywgMHg3YywgMHhiMiwgMHg1NCwgMHg3OCwgCi0gICAgMHgwMywgMHgwMywgMHgwMywgMHg3YywgMHgyYiwgMHg5ZCwgMHgxMywgMHg0MCwgMHgxYSwgMHg2OCwgMHgxMiwgMHg3YSwgMHgxNSwgMHg2MywgMHg3YSwgMHgyNSwgCi0gICAgMHg2NSwgMHg3ZSwgMHg2NCwgMHg3NSwgMHgzNywgMHg3YSwgMHg2NSwgMHg2MSwgMHg4OSwgMHgyNCwgMHgwMiwgMHg3NSwgMHg0NSwgMHg3ZSwgMHg2NCwgMHg3NCwgCi0gICAgMHhhZCwgMHg4MCwgMHhmMiwgMHgyZCwgMHgxMywgMHg5ZCwgMHgzMSwgMHhjYSwgMHgzOSwgMHg3ZCwgMHgzMSwgMHgyZCwgMHgxMCwgMHhjYSwgMHgxOSwgMHhjYSwgCi0gICAgMHgyOSwgMHg5OSwgMHgyNCwgMHhkYSwgMHgyOSwgMHhkYSwgMHgwOSwgMHhkYSwgMHgzOSwgMHg4MCwgMHhhMiwgMHg3YSwgMHgxNSwgMHg2MywgMHg3ZSwgMHg2NCwgCi0gICAgMHg3NSwgMHgyMywgMHg0ZCwgMHgzMywgMHg3OCwgMHgwOSwgMHg3YywgMHhiMiwgMHgyMCwgMHhlNywgMHgyYSwgMHg3ZSwgMHg2NCwgMHg3NCwgMHhhMiwgMHg3YSwgCi0gICAgMHg2NSwgMHg2MSwgMHgyMiwgMHg3NSwgMHgzMSwgMHg1MiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgyMSwgMHg2MywgMHg3ZSwgMHgwOSwgMHgzMCwgMHgwYiwgCi0gICAgMHgwNCwgMHgxYiwgMHgzNCwgMHg3OCwgMHg4OSwgMHg4MCwgMHhkNCwgMHg3NSwgMHgzMSwgMHg1NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgxNSwgMHg2MywgCi0gICAgMHg3ZSwgMHgyNSwgMHg2NSwgMHg4MCwgMHg5MCwgMHg1ZSwgMHgyMCwgMHgwNywgMHg1NCwgMHg3OCwgMHg3ZSwgMHg0NCwgMHg3NSwgMHhjMSwgMHgzMCwgMHhlNiwgCi0gICAgMHgxNiwgMHg0ZCwgMHgzMywgMHg2OCwgMHgyNiwgMHgxYiwgMHgzNCwgMHg3ZSwgMHgwOSwgMHg0MCwgMHgwYiwgMHgwNCwgMHg3ZSwgMHg0NCwgMHg2NywgMHg2MywgCi0gICAgMHgyMCwgMHhlMywgMHgwNCwgMHg3ZSwgMHg0NCwgMHg3NSwgMHhjOSwgMHhjYSwgMHgwOSwgMHhjYSwgMHgzOSwgMHg5OSwgMHg0NCwgMHhkYSwgMHgzOSwgMHhkYSwgCi0gICAgMHgwOSwgMHg3ZSwgMHg2NCwgMHg3NCwgMHhhZCwgMHg0ZCwgMHgzMywgMHg2OCwgMHhhNiwgMHg4OSwgMHg2NCwgMHg3YSwgMHgxNSwgMHg2MywgMHhmNSwgMHg2NSwgCi0gICAgMHg3ZSwgMHg2NCwgMHg3NSwgMHg4NiwgMHg4MCwgMHg5OSwgMHg3ZSwgMHgxNSwgMHg2MywgMHhlNSwgMHg2NSwgMHg4MCwgMHhjNCwgMHhjMCwgMHhkMCwgMHhjMCwgCi0gICAgMHhkMSwgMHhjMCwgMHhlMCwgMHhjYSwgMHgxOSwgMHhhOSwgMHgyMCwgMHhkZiwgMHgxMiwgMHhhOSwgMHgyMSwgMHhkZiwgMHgxYiwgMHg3NSwgMHgzMSwgMHgwMSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg1MywgMHhkZiwgMHhmNywgMHgxMiwgMHg0MCwgMHhkYywgMHg4MCwgMHgwZCwgMHg3NSwgMHgzMSwgMHhmZSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3ZSwgMHgxNCwgMHgwMCwgMHg1MywgMHgwMiwgMHg0MCwgMHg1MSwgMHhkYSwgMHgxOSwgMHhkMCwgMHhlMCwgMHhkMCwgMHhkMSwgMHhkMCwgMHhkMCwgCi0gICAgMHgzMiwgMHgwMywgMHhhNSwgMHhjYiwgMHgxOSwgMHhiMSwgMHg4MCwgMHgwMCwgMHgyMiwgMHgyMiwgMHgwMiwgMHg3NiwgMHg0MiwgMHhjYSwgMHgwYiwgMHhjYSwgCi0gICAgMHgxYiwgMHhjYSwgMHgyYiwgMHhjYSwgMHgzYiwgMHhjYSwgMHg0YiwgMHhjYSwgMHg1YiwgMHhjYSwgMHg2YiwgMHhjYSwgMHg3YiwgMHhjYSwgMHhlYiwgMHhjMCwgCi0gICAgMHhmMSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgzMywgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgxOSwgMHhiNCwgMHgwMSwgMHgxNiwgMHgzMCwgMHhjMCwgMHgwOCwgCi0gICAgMHg3NSwgMHhmMSwgMHgwMCwgMHgxMiwgMHg3NiwgMHgyYywgMHg4MCwgMHgxZiwgMHgzMCwgMHhjMSwgMHgxYywgMHg3NSwgMHhmMSwgMHgwMCwgMHgxMiwgMHg3NiwgCi0gICAgMHhiZCwgMHg4MCwgMHgxNCwgMHgzMCwgMHhjMSwgMHgwOCwgMHg3NSwgMHhmMSwgMHgwMCwgMHgxMiwgMHg3NiwgMHhiZCwgMHg4MCwgMHgwOSwgMHgzMCwgMHhjMCwgCi0gICAgMHgwNiwgMHg3NSwgMHhmMSwgMHgwMCwgMHgxMiwgMHg3NiwgMHgyYywgMHhkMCwgMHhmMSwgMHhkYSwgMHhlYiwgMHhkYSwgMHg3YiwgMHhkYSwgMHg2YiwgMHhkYSwgCi0gICAgMHg1YiwgMHhkYSwgMHg0YiwgMHhkYSwgMHgzYiwgMHhkYSwgMHgyYiwgMHhkYSwgMHgxYiwgMHhkYSwgMHgwYiwgMHgyMiwgMHhjMiwgMHhjMCwgMHg3ZSwgMHhiMywgCi0gICAgMHgyYSwgMHgzMywgMHhiNCwgMHgwMiwgMHgwNywgMHgxMiwgMHg3NiwgMHg0ZSwgMHgwMiwgMHg3NiwgMHg0MiwgMHgyMiwgMHhiNCwgMHgwMSwgMHhmYywgMHgwMiwgCi0gICAgMHg3NiwgMHg4OCwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMywgMHgyYSwgMHgzMywgMHg3YSwgMHgwMywgMHgyYSwgMHgzNCwgMHgyMiwgMHg3ZSwgMHhiMywgCi0gICAgMHgyYSwgMHgyYiwgMHg1NCwgMHg2MCwgMHg2MCwgMHgwNSwgMHhiNCwgMHg0MCwgMHgxNSwgMHg4MCwgMHgxMywgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgCi0gICAgMHgwNSwgMHgwYywgMHg3NSwgMHgzMSwgMHg3MSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZSwgMHhmNSwgMHg4ZiwgMHgyMiwgMHg3NSwgCi0gICAgMHhmNiwgMHgwMCwgMHgyMiwgMHhiZSwgMHg1NywgMHgyYSwgMHgzMSwgMHgyOCwgMHgwNCwgMHg3ZSwgMHg1NywgMHgyYSwgMHgzMSwgMHg3YSwgMHgwZiwgMHgyYSwgCi0gICAgMHgzNiwgMHg3YSwgMHg1NywgMHgyYSwgMHgzYSwgMHgwMiwgMHg3NiwgMHg4OCwgMHg3ZSwgMHhlZiwgMHgyYSwgMHgzNiwgMHg3ZSwgMHhmNywgMHgyYSwgMHgzYSwgCi0gICAgMHg3ZSwgMHgwNywgMHgyYSwgMHgzYSwgMHg0ZCwgMHgwMCwgMHg2OCwgMHgyMSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg3ZSwgMHhlYiwgMHhiMCwgMHhmNSwgMHhmMywgCi0gICAgMHhhMywgMHhhNSwgMHgwOCwgMHgxYiwgMHhmNCwgMHg2OCwgMHgwNCwgMHhhNSwgMHhiOCwgMHgwOCwgMHhmMCwgMHg3YSwgMHhlZiwgMHgyYSwgMHgzNiwgMHg3YSwgCi0gICAgMHhmNywgMHgyYSwgMHgzYSwgMHg3NSwgMHgzMSwgMHgwNiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgwMSwgMHhmNiwgMHgyMiwgMHhjMiwgMHhjMSwgMHg3NSwgCi0gICAgMHgzMSwgMHgwMywgMHgxMiwgMHg3YywgMHgxNSwgMHhhOSwgMHgzNiwgMHhlMiwgMHgxNiwgMHhlNSwgMHhmNSwgMHg1NCwgMHhjMCwgMHg2OCwgMHgwNywgMHhhOSwgCi0gICAgMHhkNywgMHhmNCwgMHhhOSwgMHgyNywgMHhmNCwgMHhmYywgMHg1MywgMHhlMSwgMHgzZiwgMHg0MywgMHhmMiwgMHg4OCwgMHgwMiwgMHg3NywgMHgyOSwgMHg3ZSwgCi0gICAgMHhiMywgMHgyYSwgMHgzNCwgMHhiNCwgMHgwMiwgMHgwNCwgMHhhOSwgMHhkNCwgMHhlNCwgMHgyMiwgMHhiNCwgMHgwMSwgMHgzOSwgMHg3ZSwgMHgyMSwgMHhlNiwgCi0gICAgMHg3YywgMHgzMiwgMHg3ZSwgMHgxMywgMHgyYSwgMHgzNSwgMHgyYywgMHgyMSwgMHg3YSwgMHgyMywgMHgyYSwgMHgzNSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHgyZSwgCi0gICAgMHgwNCwgMHgyYSwgMHgzYywgMHhlNSwgMHhlMywgMHg3YSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHhhNSwgMHhkYiwgMHhmNiwgMHhhOSwgMHhkNCwgMHhlNCwgCi0gICAgMHg3NSwgMHgzMSwgMHg3MCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgzNSwgMHg3ZSwgMHhhMywgMHgyYSwgMHgzMiwgMHhiYywgMHhhYiwgCi0gICAgMHg3OCwgMHgwMywgMHgxMiwgMHg3NywgMHhjMCwgMHgyMiwgMHgwMiwgMHg3YiwgMHgyOSwgMHhlNSwgMHhlNiwgMHhiNCwgMHgwOCwgMHg2NSwgMHhhOSwgMHhjNCwgCi0gICAgMHhlMiwgMHg3ZSwgMHgwMSwgMHhlMywgMHg3ZSwgMHgxMSwgMHhlMywgMHg3ZSwgMHgzMSwgMHhlMywgMHg3ZSwgMHgyMSwgMHhlMywgMHg3ZSwgMHg1MSwgMHhlMywgCi0gICAgMHg3ZSwgMHg0MSwgMHhlMywgMHg3ZSwgMHg3MSwgMHhlMywgMHg3ZSwgMHg2MSwgMHhlMywgMHg3YSwgMHgwZiwgMHgyYSwgMHgyYiwgMHg3YSwgMHgxZiwgMHgyYSwgCi0gICAgMHgyZiwgMHg3NSwgMHgzMSwgMHgwNCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgwMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgxMSwgMHgzMSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgyMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgzMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgCi0gICAgMHg0MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg1MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHg2MSwgMHgzMSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3YSwgMHg3MSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhhOSwgMHhkNCwgMHhlNCwgMHhhOSwgMHhkNywgMHhmNCwgMHhhOSwgMHhjNiwgMHhlMiwgCi0gICAgMHgxMiwgMHg3NywgMHg5NCwgMHgyMiwgMHg2ZCwgMHgwMCwgMHg3ZSwgMHgxNCwgMHgwMSwgMHgwMiwgMHg3YSwgMHgwNywgMHgyYSwgMHgzYSwgMHg3YSwgMHgwMywgCi0gICAgMHgyYSwgMHgzNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYiwgMHgyMCwgMHhlNywgMHgwZiwgMHg3YSwgMHgyMywgMHgyYSwgMHgzNCwgMHg3YSwgMHgzMywgMHgyYSwgCi0gICAgMHgzMywgMHhiZSwgMHgwNywgMHgyYSwgMHgzMSwgMHg2OCwgMHgwOSwgMHgyMiwgMHg3YSwgMHgzMywgMHgyYSwgMHgzNCwgMHg3YSwgMHgyMywgMHgyYSwgMHgzMywgCi0gICAgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYiwgMHg1NCwgMHhlMywgMHgyMywgMHgyMywgMHgzMCwgMHhlMCwgMHgwMiwgMHhkMiwgMHhlNSwgMHgzMCwgMHhlNywgMHgwMiwgCi0gICAgMHhkMiwgMHhlNCwgMHgzMCwgMHhlNSwgMHgwNiwgMHgzMCwgMHhlNCwgMHgwMywgMHgwMiwgMHg3YiwgMHgyOSwgMHg1NCwgMHgzZSwgMHhmNSwgMHhmMCwgMHgwMywgCi0gICAgMHg1NCwgMHgxZiwgMHhjMywgMHgyNSwgMHhmMCwgMHg5MCwgMHg3NywgMHhlYywgMHg3NSwgMHg4NCwgMHhmZiwgMHg3MywgMHgwMiwgMHg3OSwgMHg0MCwgMHgwMiwgCi0gICAgMHg3OCwgMHgzNCwgMHgwMiwgMHg3OSwgMHhkZCwgMHgwMiwgMHg3OSwgMHhmOCwgMHgwMiwgMHg3OCwgMHhkOSwgMHgwMiwgMHg3OCwgMHg5YSwgMHgwMiwgMHg3YSwgCi0gICAgMHgxMSwgMHgwMiwgMHg3YSwgMHgxMSwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgCi0gICAgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxNCwgMHgwMiwgMHg3YSwgMHgxYSwgMHgwMiwgCi0gICAgMHg3YSwgMHhjZSwgMHgwMiwgMHg3YSwgMHgxNywgMHgwMiwgMHg3YSwgMHgxNywgMHgwMiwgMHg3YSwgMHgxNywgMHgwMiwgMHg3YSwgMHgxNywgMHgwMiwgMHg3YSwgCi0gICAgMHgxNywgMHgwMiwgMHg3YSwgMHgxNywgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwNiwgMHgyYSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZCwgMHg2MCwgCi0gICAgMHg1NiwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgyYSwgMHgyZSwgMHg3ZSwgMHgxNywgMHgyYSwgMHgyZiwgMHg3NSwgMHgzMSwgMHg3MiwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3YSwgMHgwMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgxMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg3YiwgMHgzMywgCi0gICAgMHg0MCwgMHgzNSwgMHgwMiwgMHg3NiwgMHg3MywgMHhiNCwgMHgwOCwgMHgxMCwgMHg3NSwgMHgzMSwgMHg3NCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgCi0gICAgMHgzZiwgMHhmMSwgMHhmNSwgMHhmMywgMHg3NSwgMHhmNiwgMHgwMSwgMHgyMiwgMHhiNCwgMHgwMCwgMHgxYywgMHg3NSwgMHgzMSwgMHg3NSwgMHgxMiwgMHg3YywgCi0gICAgMHgxNSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHgzMCwgMHhlMCwgMHgwNSwgMHg3NSwgMHhmMywgMHgwMiwgMHg4MCwgMHgwMywgMHg3NSwgMHhmMywgMHgwMCwgCi0gICAgMHg3NSwgMHhmMywgMHgwMCwgMHg3NSwgMHhmNiwgMHgwMiwgMHgyMiwgMHgwMiwgMHg3YiwgMHgyOSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwMCwgCi0gICAgMHgzNSwgMHg3NSwgMHgzMSwgMHg3NiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgzMCwgMHg1NCwgMHgwZiwgMHhmNSwgMHhmMSwgMHg3ZSwgCi0gICAgMHhiMywgMHgyYSwgMHgzMCwgMHgyMCwgMHhlNywgMHgwOSwgMHhlNSwgMHhlMSwgMHgzMCwgMHhlNywgMHgwZCwgMHg3NCwgMHgwMSwgMHg4MCwgMHgwYiwgMHhlNSwgCi0gICAgMHhlMSwgMHgzMCwgMHhlNiwgMHgwNCwgMHg3NCwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3NCwgMHgwMCwgMHg1MywgMHhmMSwgMHg4MCwgMHhmNSwgMHhmMywgMHg3NSwgCi0gICAgMHhmMywgMHgwMCwgMHg3NSwgMHhmNiwgMHgwMiwgMHgyMiwgMHgwMiwgMHg3YiwgMHgyOSwgMHhjMCwgMHhmMSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgzMCwgMHg1NCwgCi0gICAgMHgwZiwgMHg0MiwgMHhmMSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZSwgMHhiNCwgMHgwMCwgMHg0NSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwMSwgCi0gICAgMHgyNCwgMHg3NSwgMHgzMSwgMHg3NywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgzMCwgMHg1NCwgMHgwZiwgMHg3OCwgMHgwNSwgMHg1MywgCi0gICAgMHhlMSwgMHgzZiwgMHg4MCwgMHgzNywgMHg3ZSwgMHhiMywgMHgyYSwgMHgzMCwgMHgyMCwgMHhlNywgMHgwNSwgMHg1MywgMHhlMSwgMHg3ZiwgMHg4MCwgMHgyYiwgCi0gICAgMHg1MywgMHhlMSwgMHhiZiwgMHg4MCwgMHgyNiwgMHhiNCwgMHgwMywgMHgxNywgMHg3NSwgMHgzMSwgMHg3OCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgCi0gICAgMHgyYSwgMHgzMCwgMHgyMCwgMHhlNywgMHgwNSwgMHg0MywgMHhlMSwgMHg4MCwgMHg4MCwgMHgxMSwgMHg0MywgMHhlMSwgMHg0MCwgMHg4MCwgMHgwYywgMHg0MywgCi0gICAgMHhlMSwgMHhjMCwgMHhkMCwgMHhmMSwgMHg3NSwgMHgzMSwgMHgwNywgMHgxMiwgMHg3YywgMHgxNSwgMHgyMiwgMHhkMCwgMHhmMSwgMHgwMiwgMHg3NiwgMHg2ZiwgCi0gICAgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwOSwgMHgyMywgMHg3NSwgMHgzMSwgMHg3OSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgCi0gICAgMHgyZSwgMHhiZSwgMHhiMywgMHgzZiwgMHhmMSwgMHg2OCwgMHgxMSwgMHhjYSwgMHhiOCwgMHhjMCwgMHhmMSwgMHgxMiwgMHg0MywgMHhkNCwgMHhkMCwgMHhmMSwgCi0gICAgMHhkYSwgMHhiOCwgMHg1MCwgMHg3NiwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMSwgMHg4MCwgMHg2ZCwgMHhiNCwgMHgwNSwgMHgwOCwgMHg3NSwgMHgzMSwgMHg3YSwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHg4MCwgMHg2MiwgMHhiNCwgMHgwMywgMHgxOSwgMHg3NSwgMHgzMSwgMHg3YiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgCi0gICAgMHgyYSwgMHgyZSwgMHhiNCwgMHgwMSwgMHg1NSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg0NCwgMHgwMSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgCi0gICAgMHg0NiwgMHhiNCwgMHgwMSwgMHgxOSwgMHg3NSwgMHgzMSwgMHg3YywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZSwgMHhiNCwgMHgwMSwgCi0gICAgMHgzOSwgMHg3ZSwgMHhiMywgMHgzZiwgMHhmMiwgMHg1NCwgMHhmZSwgMHg3YSwgMHhiMywgMHgzZiwgMHhmMiwgMHg4MCwgMHgyYSwgMHhiNCwgMHgwNywgMHgyYSwgCi0gICAgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZCwgMHg2MCwgMHgyNCwgMHg3YywgMHgwYiwgMHg3ZSwgMHgxMywgMHgyYSwgMHgyZSwgMHg3ZSwgMHgxNywgMHgyYSwgMHgyZiwgCi0gICAgMHg3NSwgMHgzMSwgMHg3MywgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgwMSwgMHgzMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3YSwgMHgxMSwgMHgzMSwgMHgxMiwgCi0gICAgMHg3YywgMHgxNSwgMHgxMiwgMHg3YiwgMHg1ZiwgMHg0MCwgMHgwMywgMHgwMiwgMHg3NiwgMHg2ZiwgMHgwMiwgMHg3YiwgMHgyOSwgMHg3ZSwgMHhiMywgMHgyYSwgCi0gICAgMHgyYywgMHhiNCwgMHgwYiwgMHhmNiwgMHg3NSwgMHgzMSwgMHg3ZCwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZSwgMHg3ZSwgMHhhMywgCi0gICAgMHgyYSwgMHgzMCwgMHg0YywgMHhhYiwgMHg3OCwgMHhlNCwgMHg4MCwgMHhkZiwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwYSwgMHhkYiwgMHg3NSwgCi0gICAgMHgzMSwgMHg3ZSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyZSwgMHg3MCwgMHhjZiwgMHhmNSwgMHhmMywgMHg3NSwgMHhmNiwgMHgwMSwgCi0gICAgMHgyMiwgMHgwMiwgMHg3YiwgMHgyOSwgMHgwMiwgMHg3YiwgMHgyOSwgMHgwMiwgMHg3YiwgMHgyOSwgMHg3ZSwgMHhiMywgMHgyYSwgMHgyYywgMHhiNCwgMHgwNCwgCi0gICAgMHgyMCwgMHg3NSwgMHgzMSwgMHhjMywgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMSwgMHg3ZSwgMHgxNywgMHgyYSwgMHgyZCwgMHg3ZSwgCi0gICAgMHgxOCwgMHgyYSwgMHgzYywgMHg3YSwgMHgxYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHg0NywgMHgyYSwgMHgzMSwgMHgxMiwgMHg3YywgMHgyMSwgMHgwMiwgMHg3YSwgCi0gICAgMHhjOCwgMHhiNCwgMHgwNiwgMHgzYSwgMHg3NSwgMHgzMSwgMHhjMSwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHg1OCwgMHgwMCwgMHgwMCwgMHg3YSwgMHg1YywgCi0gICAgMHgwMCwgMHhmZSwgMHg3ZCwgMHhjYSwgMHg3ZSwgMHhkNywgMHgyYSwgMHgyZCwgMHg3ZSwgMHg3OCwgMHgyYSwgMHgzYywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgCi0gICAgMHg3ZSwgMHg3NywgMHgyYSwgMHgzMSwgMHg3NSwgMHgzMSwgMHhjMSwgMHgxMiwgMHg3YywgMHgxNSwgMHhjMCwgMHhhOCwgMHhjMCwgMHg4NywgMHhjMiwgMHhhZiwgCi0gICAgMHhhOSwgMHhkNSwgMHg4NywgMHgxMiwgMHg3YywgMHg1YSwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHg0MCwgMHg0ZiwgMHg4MCwgMHg0YSwgMHhiNCwgMHgwMCwgCi0gICAgMHgxYywgMHhjMiwgMHhhZiwgMHhhOSwgMHhkNSwgMHg4NywgMHgxMiwgMHg3NiwgMHg2ZiwgMHhlNCwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgMHg4ZCwgMHhlZiwgCi0gICAgMHhkNSwgMHhlMCwgMHhmNywgMHhjMCwgMHhkMSwgMHhjYSwgMHgwMiwgMHhmZiwgMHhjYSwgMHgwNiwgMHgwMCwgMHgwMCwgMHgzMiwgMHhiNCwgMHgwOSwgMHgxMiwgCi0gICAgMHg3ZSwgMHg1NywgMHgyYSwgMHgyZCwgMHg0ZCwgMHg1NSwgMHg2OCwgMHgwNSwgMHhhOSwgMHhkMiwgMHhiMSwgMHg4MCwgMHgwMywgMHhhOSwgMHhjMiwgMHhiMSwgCi0gICAgMHg4MCwgMHgxNiwgMHhiNCwgMHgwNywgMHgxNiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHgwNywgMHgyYSwgMHgyZiwgMHg3ZSwgMHgxNywgMHgyYSwgMHgyZCwgMHhjMCwgCi0gICAgMHhkMSwgMHhjYSwgMHgxOCwgMHhjYSwgMHgzOCwgMHhjYSwgMHgyOCwgMHgzMiwgMHgwMiwgMHg3NiwgMHg2ZiwgMHgwMiwgMHg3YiwgMHgyOSwgMHg3ZSwgMHhiMywgCi0gICAgMHgyYSwgMHgyYywgMHhiNCwgMHgwMywgMHgxNSwgMHg3NSwgMHgzMSwgMHhjMiwgMHgxMiwgMHg3YywgMHgxNSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgwMSwgMHg3ZSwgCi0gICAgMHgxNywgMHgyYSwgMHgyZCwgMHg3ZSwgMHg1NywgMHgyYSwgMHgzMSwgMHgwMiwgMHg3NiwgMHg3MywgMHhiNCwgMHgwNSwgMHgzOSwgMHg3NSwgMHgzMSwgMHhjMCwgCi0gICAgMHgxMiwgMHg3YywgMHgxNSwgMHhjMCwgMHhhOCwgMHhjMCwgMHg4NywgMHhjMiwgMHhhZiwgMHhhOSwgMHhkNSwgMHg4NywgMHg3ZSwgMHgwOCwgMHgyYSwgMHgzYywgCi0gICAgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgMHgyNCwgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNywgMHgyYSwgMHgyZCwgMHg3ZSwgMHg0NywgMHgyYSwgMHgzMSwgCi0gICAgMHgxMiwgMHg3YywgMHgyMSwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHg3ZSwgMHgwOCwgMHgyYSwgMHgzYywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHg1NywgMHgyYSwgMHgzMSwgMHgwMiwgMHg3NiwgMHg3MywgMHgwMiwgMHg3YiwgMHgyOSwgMHg3NSwgMHgzMSwgMHgwNywgMHgxMiwgMHg3YywgMHgxNSwgMHg0MywgCi0gICAgMHhlMSwgMHhjMCwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMCwgMHg4NywgMHhjMiwgMHhhZiwgMHhhOSwgMHhkNSwgMHg4NywgMHgxMiwgMHg3YiwgMHg5ZSwgMHg0MCwgCi0gICAgMHgxOSwgMHg3ZSwgMHgwOCwgMHgyYSwgMHgzYywgMHg3YSwgMHgwYywgMHgwMCwgMHgwMCwgMHhjYSwgMHgwYiwgMHhjYSwgMHg0OSwgMHgxMiwgMHg3YywgMHgyMSwgCi0gICAgMHhkYSwgMHg1OSwgMHhkYSwgMHgwYiwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHgyMiwgMHhjMCwgCi0gICAgMHhhOCwgMHhjMCwgMHg4NywgMHhjMiwgMHhhZiwgMHhhOSwgMHhkNSwgMHg4NywgMHgxMiwgMHg3YiwgMHg5ZSwgMHg0MCwgMHgyYiwgMHg3ZSwgMHg1OCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3YSwgMHg1YywgMHgwMCwgMHhmZSwgMHg3ZiwgMHg2MSwgMHg3ZSwgMHg3OCwgMHgyYSwgMHgzYywgMHg3YSwgMHg3YywgMHgwMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHg3NywgMHgyYSwgMHgzMSwgMHhiZCwgMHg3NCwgMHg3OCwgMHgxMSwgMHg3NSwgMHgzMSwgMHhjMSwgMHgxMiwgMHg3YywgMHgxNSwgMHgxMiwgMHg3YywgMHg1YSwgCi0gICAgMHg0MCwgMHgwNiwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHhjMywgMHgyMiwgMHhkMCwgMHg4NywgMHhkMCwgMHhhOCwgMHhkMywgMHgyMiwgMHg3ZSwgMHgyNCwgCi0gICAgMHgwMCwgMHhmZSwgMHg3ZSwgMHgzNCwgMHg3ZiwgMHhjYSwgMHgwYiwgMHgxYSwgMHg1MCwgMHhjNSwgMHhmMCwgMHg3ZCwgMHg2MiwgMHg3ZCwgMHg3NSwgMHg3ZCwgCi0gICAgMHg4NywgMHg3ZSwgMHgzNCwgMHg3ZiwgMHhjMiwgMHg3ZSwgMHgxYiwgMHhiMCwgMHg3ZSwgMHgzNCwgMHg3ZiwgMHgwMywgMHhiNCwgMHgwMSwgMHgwNCwgMHg3ZSwgCi0gICAgMHgzNCwgMHg3ZiwgMHhjYywgMHg3ZSwgMHgxYiwgMHhiMCwgMHhiYywgMHgwYiwgMHg1MCwgMHg0OSwgMHgzZSwgMHgwMCwgMHgzZSwgMHgwMCwgMHgwYSwgMHg1MCwgCi0gICAgMHgyZCwgMHg3NSwgMHgwYiwgMHgzYSwgMHgzMCwgMHg2OSwgMHg1MywgMHgwMCwgMHgwMiwgMHhiZCwgMHgzOCwgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiYywgCi0gICAgMHgxYiwgMHg1MCwgMHgzMCwgMHgzZSwgMHgxMCwgMHgzZSwgMHgxMCwgMHgwYSwgMHg1MSwgMHgyZCwgMHgzNSwgMHg2OSwgMHg0MSwgMHgwMCwgMHgwMiwgMHgwYiwgCi0gICAgMHgxYSwgMHgzMCwgMHhiZCwgMHgzOCwgMHg1MCwgMHgwMiwgMHgyZCwgMHgzOCwgMHhiZSwgMHg0NCwgMHhmZiwgMHhmZiwgMHg3OCwgMHgwNSwgMHg3ZSwgMHgxYiwgCi0gICAgMHg5MCwgMHgwYSwgMHg0OSwgMHg0ZCwgMHg0NCwgMHg2OCwgMHgwYywgMHhiZSwgMHg0NCwgMHgwMCwgMHhmZiwgMHgyOCwgMHgwNCwgMHg3ZSwgMHg0NCwgMHgwMCwgCi0gICAgMHhmZiwgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgCi0KLS8vIFNlZ21lbnQgIzE2LCBTdGFydCBBZGRyZXNzIDAwZmY3ZmM2LCBMZW5ndGggNAotMHhmZiwweDAwLDB4YzYsMHg3ZiwweDA0LDB4MDAsCi0gICAgMHgwMSwgMHgxMCwgMHgwNCwgMHgwMCwgCi0KLS8vIFNlZ21lbnQgIzE3LCBTdGFydCBBZGRyZXNzIDAwZmY3YzE1LCBMZW5ndGggMzMwCi0weGZmLDB4MDAsMHgxNSwweDdjLDB4NGEsMHgwMSwKLSAgICAweGNhLCAweDA4LCAweDdlLCAweDAxLCAweDMxLCAweDdhLCAweDAzLCAweDNmLCAweGYwLCAweGRhLCAweDA4LCAweDIyLCAweDdlLCAweDFiLCAweGMwLCAweDdhLCAKLSAgICAweDBiLCAweGMwLCAweDBiLCAweDE0LCAweDBiLCAweDM0LCAweDFiLCAweDQ0LCAweDc4LCAweGYyLCAweDIyLCAweDdmLCAweDZmLCAweDdmLCAweGYwLCAweDFiLCAKLSAgICAweGZjLCAweDdjLCAweDU0LCAweDdkLCAweDMyLCAweDgwLCAweDA4LCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweGNhLCAweDFiLCAweDllLCAKLSAgICAweDQ0LCAweDAwLCAweDEwLCAweDUwLCAweGYyLCAweDJlLCAweDQ0LCAweDAwLCAweDEwLCAweDY4LCAweDA2LCAweGNhLCAweDQ4LCAweDFiLCAweDQ0LCAweDc4LCAKLSAgICAweGZhLCAweDdmLCAweGY2LCAweDg5LCAweGU0LCAweGNhLCAweDZiLCAweDVlLCAweGQ0LCAweDAwLCAweDNmLCAweDY4LCAweDIwLCAweDdlLCAweDg0LCAweDAwLCAKLSAgICAweDQwLCAweDlkLCAweDhkLCAweGRhLCAweDZiLCAweGJkLCAweDg3LCAweDM4LCAweDE2LCAweGNhLCAweDc5LCAweDdkLCAweDc4LCAweDEyLCAweDdjLCAweDg0LCAKLSAgICAweGRhLCAweDc5LCAweDQwLCAweDA4LCAweDlkLCAweDc4LCAweDY4LCAweDAyLCAweDgwLCAweDA1LCAweGMyLCAweGQ3LCAweDIyLCAweGRhLCAweDZiLCAweDQzLCAKLSAgICAweDkwLCAweDMwLCAweDc0LCAweGFhLCAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDc0LCAweDU1LCAweDM5LCAweGI1LCAweDJhLCAweGFhLCAweDc0LCAweGEwLCAKLSAgICAweDM5LCAweGI1LCAweDU1LCAweDU1LCAweDdlLCAweDA0LCAweDAwLCAweDQwLCAweDlkLCAweDcwLCAweDUwLCAweDA2LCAweDJkLCAweDcwLCAweDdkLCAweDA3LCAKLSAgICAweDZkLCAweDc3LCAweDdjLCAweDMxLCAweDdlLCAweDdiLCAweDAwLCAweDdhLCAweDZiLCAweDAwLCAweDBiLCAweDdjLCAweDBiLCAweDZjLCAweGE1LCAweGQ5LCAKLSAgICAweGYzLCAweDdmLCAweDE2LCAweDFiLCAweDFjLCAweDdlLCAweDU0LCAweDI3LCAweDEwLCAweDdlLCAweDFiLCAweDEwLCAweGJjLCAweDEwLCAweDY4LCAweDA2LCAKLSAgICAweDFiLCAweDU0LCAweDc4LCAweGY1LCAweDgwLCAweDJjLCAweDZkLCAweDAwLCAweDdjLCAweDIwLCAweDdmLCAweDE2LCAweDlmLCAweDEwLCAweDdmLCAweDI3LCAKLSAgICAweDlmLCAweDIwLCAweDdlLCAweDJiLCAweDAwLCAweDdlLCAweDFiLCAweDEwLCAweGJjLCAweDAxLCAweDc4LCAweDE2LCAweDBiLCAweDJjLCAweDBiLCAweDFjLCAKLSAgICAweGE1LCAweGRiLCAweGVmLCAweDdjLCAweGI2LCAweDIwLCAweGUwLCAweDAzLCAweDYzLCAweDkwLCAweDMwLCAweDRkLCAweDc3LCAweDc4LCAweDkzLCAweGMyLCAKLSAgICAweGQ3LCAweDIyLCAweGQyLCAweGQ3LCAweDIyLCAweDAwLCAweDA0LCAweDAwLCAweDA0LCAweDQyLCAweDA4LCAweDA2LCAweDA0LCAweDAyLCAweDA0LCAweDAwLCAKLSAgICAweDAyLCAweDAxLCAweDA0LCAweDAxLCAweDAyLCAweDgyLCAweDA4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAyLCAweDAyLCAKLSAgICAweDAyLCAweDAyLCAweDA0LCAweDAyLCAweDA4LCAweDEwLCAweDAyLCAweDEwLCAweDA0LCAweDAyLCAweDA4LCAweDAwLCAweDAxLCAweDAxLCAweDA4LCAweDAwLCAKLSAgICAweDAxLCAweDAwLCAweDAyLCAweDAwLCAweDAyLCAweDAyLCAweDA4LCAweDAyLCAweDA0LCAweDIwLCAweDA0LCAweDdlLCAweDE4LCAweDdmLCAweGJkLCAweDdhLCAKLSAgICAweDFjLCAweDAwLCAweGZlLCAweDBiLCAweDFhLCAweDAwLCAweDVlLCAweDEwLCAweDFmLCAweGJlLCAweDEwLCAweDFhLCAweDM4LCAweDFhLCAweDBhLCAweDUxLCAKLSAgICAweDIzLCAweDdlLCAweDE4LCAweDdjLCAweGZhLCAweDdhLCAweDFjLCAweDAwLCAweGZmLCAweDJkLCAweDM1LCAweDBiLCAweDFhLCAweDUwLCAweDYwLCAweDA4LCAKLSAgICAweGE1LCAweGI4LCAweDAyLCAweDAzLCAweDRlLCAweGEwLCAweDA4LCAweDIyLCAweDgwLCAweGZlLCAKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gSU1BR0VfVkVSU0lPTl9OQU1FID0gewotCTEsIDE2LCA0IH07CQkvLyBNYWpvciwgTWlub3IsIEJ1aWxkCi0KLSN1bmRlZiBJTUFHRV9WRVJTSU9OX05BTUUKLQotI3VuZGVmIElNQUdFX0FSUkFZX05BTUUKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24yLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDY3Mjc3ZS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjIuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMzMgKzAsMCBAQAotLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCi0vLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2Ci0vLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLS8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0vLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotCi0vL0ltYWdlIHN0cnVjdHVyZSBkZWZpbml0aW9uCi0jaWYgIWRlZmluZWQoREVGSU5FRF9FREdFX0ZJUk1XQVJFX0lNQUdFX1JFQ09SRCkKLQkjZGVmaW5lIERFRklORURfRURHRV9GSVJNV0FSRV9JTUFHRV9SRUNPUkQKLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV9pbWFnZV9yZWNvcmQgewotCQlfX2xlMTYgRXh0QWRkcjsKLQkJX19sZTE2IEFkZHI7Ci0JCV9fbGUxNiBMZW47Ci0JCXVuc2lnbmVkIGNoYXIgIERhdGFbMF07Ci0JfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7Ci0KLQlzdHJ1Y3QgZWRnZV9maXJtd2FyZV92ZXJzaW9uX2luZm8gewotCQl1bnNpZ25lZCBjaGFyICBNYWpvclZlcnNpb247Ci0JCXVuc2lnbmVkIGNoYXIgIE1pbm9yVmVyc2lvbjsKLQkJdW5zaWduZWQgc2hvcnQgQnVpbGROdW1iZXI7Ci0JfTsKLQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChJTUFHRV9BUlJBWV9OQU1FKQotCSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlGaXJtd2FyZUltYWdlCi0JI2RlZmluZSBJTUFHRV9WRVJTSU9OX05BTUUJRmlybXdhcmVJbWFnZVZlcnNpb24KLSNlbmRpZgotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSB7Ci0KLS8vIFNlZ21lbnQgIzEsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMDAsIExlbmd0aCA2Ci0weGZmLDB4MDAsMHgwMCwweDAwLDB4MDYsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDgwLCAweDAyLCAweDQ1LCAweDE0LCAKLQotLy8gU2VnbWVudCAjMiwgU3RhcnQgQWRkcmVzcyAwMGZmMDAwYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDBiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4NDQsIDB4YTUsIAotCi0vLyBTZWdtZW50ICMzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDEzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg2MywgMHhhYiwgCi0KLS8vIFNlZ21lbnQgIzQsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMWIsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgxYiwweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDFiLCAKLQotLy8gU2VnbWVudCAjNSwgU3RhcnQgQWRkcmVzcyAwMGZmMDAyMywgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDIzLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MjMsIAotCi0vLyBTZWdtZW50ICM2LCBTdGFydCBBZGRyZXNzIDAwZmYwMDJiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4MmIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHgyYiwgCi0KLS8vIFNlZ21lbnQgIzcsIFN0YXJ0IEFkZHJlc3MgMDBmZjAwMzMsIExlbmd0aCAzCi0weGZmLDB4MDAsMHgzMywweDAwLDB4MDMsMHgwMCwKLSAgICAweDAyLCAweDAwLCAweDMzLCAKLQotLy8gU2VnbWVudCAjOCwgU3RhcnQgQWRkcmVzcyAwMGZmMDAzYiwgTGVuZ3RoIDMKLTB4ZmYsMHgwMCwweDNiLDB4MDAsMHgwMywweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4M2IsIAotCi0vLyBTZWdtZW50ICM5LCBTdGFydCBBZGRyZXNzIDAwZmYwMDQzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NDMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg0MywgCi0KLS8vIFNlZ21lbnQgIzEwLCBTdGFydCBBZGRyZXNzIDAwZmYwMDRiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NGIsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg0YiwgCi0KLS8vIFNlZ21lbnQgIzExLCBTdGFydCBBZGRyZXNzIDAwZmYwMDUzLCBMZW5ndGggMwotMHhmZiwweDAwLDB4NTMsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHg2NywgMHg1ZiwgCi0KLS8vIFNlZ21lbnQgIzEyLCBTdGFydCBBZGRyZXNzIDAwZmYwMDdiLCBMZW5ndGggMwotMHhmZiwweDAwLDB4N2IsMHgwMCwweDAzLDB4MDAsCi0gICAgMHgwMiwgMHgwMCwgMHg3YiwgCi0KLS8vIFNlZ21lbnQgIzEzLCBTdGFydCBBZGRyZXNzIDAwZmYwMDgwLCBMZW5ndGggNwotMHhmZiwweDAwLDB4ODAsMHgwMCwweDA3LDB4MDAsCi0gICAgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHg0MCwgMHg1MiwgCi0KLS8vIFNlZ21lbnQgIzE0LCBTdGFydCBBZGRyZXNzIDAwZmYzMDAwLCBMZW5ndGggMjkxOAotMHhmZiwweDAwLDB4MDAsMHgzMCwweDY2LDB4MGIsCi0gICAgMHgxMiwgMHgzMCwgMHg2NCwgMHgxMiwgMHgzMCwgMHhmZiwgMHgxMiwgMHgzMSwgMHgyZiwgMHgxMiwgMHgzMCwgMHhiMCwgMHg4MCwgMHhmMiwgMHhlNSwgMHgyMywgCi0gICAgMHg2MCwgMHgxOSwgMHg3ZSwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwOSwgMHhiMSwgMHgwMSwgMHhiOSwgMHhiNCwgMHgwMCwgMHgwMiwgMHg4MCwgMHgwNSwgMHgxNCwgCi0gICAgMHgxOSwgMHhiMSwgMHgwMSwgMHhiOSwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZSwgMHg3OCwgMHhlYiwgMHgyMiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHhiMywgCi0gICAgMHgzZiwgMHhmMSwgMHhiNCwgMHgwMSwgMHgwMywgMHgxMiwgMHg2NSwgMHg2NywgMHhkMiwgMHhhZiwgMHgyMiwgMHhjMiwgMHhhZiwgMHg3ZSwgMHhiMywgMHgzZiwgCi0gICAgMHhmMSwgMHhiNCwgMHgwMSwgMHgxZCwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxYSwgMHg2YywgMHhhYSwgCi0gICAgMHg2MCwgMHgwZiwgMHhjYSwgMHgwYiwgMHhjYSwgMHgzOSwgMHhjYSwgMHg1OSwgMHgxMiwgMHg2NCwgMHgyNCwgMHhkYSwgMHg1OSwgMHhkYSwgMHgzOSwgMHhkYSwgCi0gICAgMHgwYiwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjMiwgMHhhZiwgMHhlNSwgMHgyMiwgMHg2MCwgMHg0MywgMHg3ZSwgMHgwNywgMHgwMSwgMHhjYiwgMHhiZSwgMHgwNCwgCi0gICAgMHgwMywgMHg4MCwgMHgzOCwgMHgzOSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgyMSwgMHgwOSwgMHhhMCwgCi0gICAgMHgwMCwgMHgwNCwgMHg0ZSwgMHhhMCwgMHgwNSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgwNCwgMHgwYSwgMHgzMiwgMHgwOSwgMHg1MywgMHgzNSwgMHgzMywgMHg1ZSwgCi0gICAgMHg1MSwgMHgyNywgMHg2OCwgMHgwYiwgMHgwOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHg0ZSwgMHhhMCwgMHgwMSwgMHgxOSwgMHhhMCwgMHgwMCwgMHgxMCwgMHgyZSwgCi0gICAgMHgwNCwgMHgwMSwgMHgwMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZSwgMHg3OCwgMHhkMSwgMHg3NSwgMHgyMiwgMHgwMCwgMHhkMiwgMHhhZiwgMHgyMiwgCi0gICAgMHhjMiwgMHhhZiwgMHhlNSwgMHgyNiwgMHg2MCwgMHgzNiwgMHg3ZSwgMHgyMCwgMHgwMCwgMHg3ZSwgMHgzMCwgMHgwMSwgMHhlNSwgMHgyNiwgMHhhNSwgMHg1YiwgCi0gICAgMHg2OCwgMHgyMSwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgMHgyYiwgMHg0OSwgMHgzMiwgMHgwMSwgMHg3OSwgMHhiZSwgMHgzNCwgMHgwMCwgMHgwMCwgMHg2OCwgCi0gICAgMHgxMiwgMHg3ZSwgMHhiMSwgMHgyMSwgMHhhNSwgMHg0YiwgMHg3YSwgMHhiMSwgMHgyMSwgMHhjYSwgMHgxOSwgMHg0OSwgMHgyMiwgMHgzMCwgMHhlZiwgMHg5OSwgCi0gICAgMHgyNCwgMHhkYSwgMHgxOSwgMHgzZSwgMHgzMCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZSwgMHg3OCwgMHhkMCwgMHhkMiwgMHhhZiwgMHgyMiwgMHg0NiwgCi0gICAgMHg0ZiwgMHg0OSwgMHg3YywgMHg0YywgMHhhOSwgMHg0ZiwgMHhkNiwgMHg1MywgMHgwMywgMHg1NiwgMHgzMCwgMHg1OSwgMHg1ZCwgMHg1YywgMHg4YSwgMHhjMiwgCi0gICAgMHhhZiwgMHhlNSwgMHgyNCwgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHgxYywgCi0gICAgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZSwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHhjYSwgMHgyOCwgMHgxMiwgMHgzNSwgCi0gICAgMHg0YywgMHhkYSwgMHgyOCwgMHg0MCwgMHgwOSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHgzNSwgMHgzMywgMHhmNCwgMHg1MiwgMHgyNCwgMHgyMiwgMHhjMiwgCi0gICAgMHhhZiwgMHhlNSwgMHgyMywgMHg2MCwgMHgxNCwgMHg3ZSwgMHgyMCwgMHgwMCwgMHgxMywgMHg1MCwgMHgwNywgMHhjYSwgMHhiOCwgMHgxMiwgMHgzMSwgMHg0YywgCi0gICAgMHhkYSwgMHhiOCwgMHhhNSwgMHgwYSwgMHhiZSwgMHgyMSwgMHgyZSwgMHg3OCwgMHhlZiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgCi0gICAgMHgyYiwgMHg0OSwgMHgyMiwgMHgzMSwgMHg1NywgMHg4OSwgMHgyNCwgMHgzMSwgMHg2NywgMHgzMSwgMHhkMCwgMHgzMiwgMHgzOSwgMHgzMiwgMHhhMiwgMHgzMywgCi0gICAgMHgwYiwgMHgzMywgMHg3NCwgMHgzMywgMHhkZCwgMHgzNCwgMHg0NiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3OSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgCi0gICAgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgCi0gICAgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0OSwgMHg0NSwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgCi0gICAgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg4OSwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg4OSwgMHg3ZSwgCi0gICAgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhiOSwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiOSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgCi0gICAgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgCi0gICAgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxOCwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiOSwgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgCi0gICAgMHg3ZSwgMHgyNywgMHgwMSwgMHg3YiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MSwgMHgwMCwgMHgwOSwgMHhiMiwgCi0gICAgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgCi0gICAgMHg0YywgMHg3MiwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgCi0gICAgMHgwMSwgMHg4YiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg4YiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhiYSwgMHg4MCwgCi0gICAgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiYSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgCi0gICAgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxOSwgMHg2YywgCi0gICAgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYSwgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3ZCwgMHhiZSwgMHgyNCwgMHgwMCwgCi0gICAgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgCi0gICAgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg0ZiwgMHg5ZiwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgCi0gICAgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg4ZCwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgCi0gICAgMHg4ZCwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhiYiwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiYiwgMHhhNSwgMHhiZSwgCi0gICAgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgCi0gICAgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxYSwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYiwgMHgxMiwgMHg2NCwgCi0gICAgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3ZiwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4MywgMHgwMCwgCi0gICAgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgCi0gICAgMHgxMiwgMHgxMiwgMHg1MiwgMHhjYywgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgCi0gICAgMHhiZSwgMHgyNywgMHgwMSwgMHg4ZiwgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg4ZiwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgCi0gICAgMHhiYywgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiYywgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgCi0gICAgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgCi0gICAgMHgxYiwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYywgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4MSwgMHhiZSwgCi0gICAgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NCwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgCi0gICAgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1NSwgMHhmOSwgMHg3ZCwgMHgyMSwgMHhkYSwgCi0gICAgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg5MSwgMHg2OCwgMHgwZCwgMHg3YSwgCi0gICAgMHgyNywgMHgwMSwgMHg5MSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhiZCwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiZCwgCi0gICAgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgCi0gICAgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxYywgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiZCwgCi0gICAgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4MywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgCi0gICAgMHg4NSwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgCi0gICAgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1OSwgMHgyNiwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgCi0gICAgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg5MywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5MywgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgCi0gICAgMHg2MywgMHgwMSwgMHhiZSwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhiZSwgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgCi0gICAgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgCi0gICAgMHgzNSwgMHhjMiwgMHgxZCwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiZSwgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg4NSwgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgMHg3ZSwgMHgyNCwgMHg4NiwgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgCi0gICAgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1YywgMHg1MywgMHg3ZCwgCi0gICAgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg5NSwgMHg2OCwgCi0gICAgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5NSwgMHg3ZSwgMHg2MCwgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhiZiwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgCi0gICAgMHgwMSwgMHhiZiwgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgCi0gICAgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxZSwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgCi0gICAgMHgwMSwgMHhiZiwgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4NywgMHhiZSwgMHgyNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyNCwgCi0gICAgMHg3ZSwgMHgyNCwgMHg4NywgMHgwMCwgMHgwOSwgMHhiMiwgMHgwMCwgMHgxNCwgMHhjYSwgMHhiOCwgMHg1ZSwgMHhiMCwgMHgxZSwgMHhkYSwgMHhiOCwgMHg2OCwgCi0gICAgMHgwYiwgMHhjYSwgMHgxOSwgMHg3ZCwgMHgxMiwgMHgxMiwgMHg1ZiwgMHg4MCwgMHg3ZCwgMHgyMSwgMHhkYSwgMHgxOSwgMHgzMCwgMHhlNiwgMHgxOCwgMHg3ZSwgCi0gICAgMHg2MCwgMHgwMCwgMHg4MCwgMHgxZSwgMHhiZSwgMHgyNywgMHgwMSwgMHg5NywgMHg2OCwgMHgwZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg5NywgMHg3ZSwgMHg2MCwgCi0gICAgMHg5YywgMHg3YSwgMHg2MywgMHgwMSwgMHhjMCwgMHg4MCwgMHgyNywgMHg3ZSwgMHg2MywgMHgwMSwgMHhjMCwgMHhhNSwgMHhiZSwgMHgwMCwgMHgxZiwgMHg3ZSwgCi0gICAgMHg2MCwgMHgwMSwgMHg3ZSwgMHhiMCwgMHgwMCwgMHg3ZSwgMHhhMCwgMHhjOCwgMHgxMiwgMHg2MSwgMHgzNiwgMHg0MCwgMHgxMSwgMHg3NSwgMHgyZiwgMHhiMywgCi0gICAgMHgxMiwgMHg3MywgMHgzNSwgMHhjMiwgMHgxZiwgMHg2YywgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhjMCwgMHgxMiwgMHg2NCwgMHg4NiwgMHgyMiwgMHhjMiwgCi0gICAgMHhhZiwgMHg3ZSwgMHgwNywgMHgwMSwgMHhjYiwgMHhiZSwgMHgwNCwgMHgwMCwgMHgwMCwgMHg3OCwgMHgyOCwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgCi0gICAgMHgwMCwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxNSwgMHgzMCwgMHhlNSwgMHgxYiwgMHg3ZSwgMHhiMywgMHg5MSwgMHgxYSwgMHhiZSwgMHhiMCwgMHgzZiwgMHgzOCwgCi0gICAgMHgwYywgMHg4NSwgMHgzMSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NCwgMHg4MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgxZSwgMHg3NCwgMHgyMCwgMHg3YSwgCi0gICAgMHhiMywgMHg5MSwgMHgxNSwgMHhkMiwgMHhhZiwgMHgyMiwgMHgzNSwgMHgzYiwgMHgzNiwgMHhlOCwgMHgzNywgMHgwMCwgMHgzNywgMHgxYiwgMHgzNywgMHhiNiwgCi0gICAgMHgzOCwgMHg0ZSwgMHgzOCwgMHg2OSwgMHgzOCwgMHhmYiwgMHgzOCwgMHg4NCwgMHgzOCwgMHhjNSwgMHg3YywgMHhiMywgMHhiZSwgMHhiMCwgMHgwOSwgMHgyOCwgCi0gICAgMHgyMiwgMHg3NSwgMHgyZiwgMHgwOSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHg1NywgMHgwMiwgMHg3NCwgMHgyMCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgCi0gICAgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgMHg5MSwgMHgxMSwgMHg3NCwgMHg0MCwgMHg3YSwgMHhiMywgMHg5MSwgMHgwMCwgMHg3NCwgMHgwMSwgMHg3YSwgMHhiMywgCi0gICAgMHg5MSwgMHgxMSwgMHgyMiwgMHhjMCwgMHhhOCwgMHhjMiwgMHhhZiwgMHgyMywgMHg2YywgMHhhYSwgMHgyZSwgMHg1NCwgMHgzNCwgMHhlNiwgMHgwYiwgMHg1OCwgCi0gICAgMHg1MCwgMHg4OSwgMHg1NCwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg3NSwgMHgyZiwgMHhiMCwgMHgxMiwgMHg3MywgCi0gICAgMHgzNSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHgzNSwgMHgzMywgMHg0MiwgMHgyNCwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3YywgMHhiMiwgMHgyMywgMHgwYSwgCi0gICAgMHgzYiwgMHg0OSwgMHgzMywgMHgzNSwgMHg1NywgMHg4OSwgMHgzNCwgMHgzNSwgMHg2NywgMHgzNSwgMHg5NSwgMHgzNSwgMHhjMywgMHgzNSwgMHhmMSwgMHgzNiwgCi0gICAgMHgxZiwgMHgzNiwgMHg0ZCwgMHgzNiwgMHg3YiwgMHgzNiwgMHhhOSwgMHgxMiwgMHg0MSwgMHhiYSwgMHhkMiwgMHgyOCwgMHhkMiwgMHgwOCwgMHhjMiwgMHg0MCwgCi0gICAgMHhjMiwgMHg0OCwgMHhjMiwgMHgzOCwgMHhjMiwgMHgzMCwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiOSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHg5OSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhOSwgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgCi0gICAgMHg1ZiwgMHhiNywgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgMHg0MSwgMHhkNywgMHhkMiwgMHgyOSwgMHhkMiwgMHgwOSwgMHhjMiwgMHg0MSwgMHhjMiwgMHg0OSwgCi0gICAgMHhjMiwgMHgzOSwgMHhjMiwgMHgzMSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHg5YiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhYiwgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg1ZiwgMHhlMCwgCi0gICAgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgMHg0MSwgMHhmNCwgMHhkMiwgMHgyYSwgMHhkMiwgMHgwYSwgMHhjMiwgMHg0MiwgMHhjMiwgMHg0YSwgMHhjMiwgMHgzYSwgCi0gICAgMHhjMiwgMHgzMiwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYiwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5ZCwgCi0gICAgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhZCwgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg2MCwgMHgwOSwgMHgwMiwgMHgzNiwgCi0gICAgMHhkNywgMHgxMiwgMHg0MiwgMHgxMSwgMHhkMiwgMHgyYiwgMHhkMiwgMHgwYiwgMHhjMiwgMHg0MywgMHhjMiwgMHg0YiwgMHhjMiwgMHgzYiwgMHhjMiwgMHgzMywgCi0gICAgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiYywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHg5ZiwgMHg3ZSwgMHgwNCwgCi0gICAgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhZiwgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg2MCwgMHgzMiwgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgCi0gICAgMHg0MiwgMHgyZSwgMHhkMiwgMHgyYywgMHhkMiwgMHgwYywgMHhjMiwgMHg0NCwgMHhjMiwgMHg0YywgMHhjMiwgMHgzYywgMHhjMiwgMHgzNCwgMHg2ZCwgMHgwMCwgCi0gICAgMHg3YSwgMHgwMywgMHgwMSwgMHhiZCwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhMSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgCi0gICAgMHg3YSwgMHgwNywgMHgwMSwgMHhiMSwgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg2MCwgMHg1YiwgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgMHg0MiwgMHg0YiwgCi0gICAgMHhkMiwgMHgyZCwgMHhkMiwgMHgwZCwgMHhjMiwgMHg0NSwgMHhjMiwgMHg0ZCwgMHhjMiwgMHgzZCwgMHhjMiwgMHgzNSwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgCi0gICAgMHgwMSwgMHhiZSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhMywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgCi0gICAgMHgwMSwgMHhiMywgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg2MCwgMHg4NCwgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgMHg0MiwgMHg2OCwgMHhkMiwgMHgyZSwgCi0gICAgMHhkMiwgMHgwZSwgMHhjMiwgMHg0NiwgMHhjMiwgMHg0ZSwgMHhjMiwgMHgzZSwgMHhjMiwgMHgzNiwgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhiZiwgCi0gICAgMHg3ZSwgMHgwNCwgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhNSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiNSwgCi0gICAgMHgxMiwgMHg0MSwgMHgyNywgMHgxMiwgMHg2MCwgMHhhZCwgMHgwMiwgMHgzNiwgMHhkNywgMHgxMiwgMHg0MiwgMHg4NSwgMHhkMiwgMHgyZiwgMHhkMiwgMHgwZiwgCi0gICAgMHhjMiwgMHg0NywgMHhjMiwgMHg0ZiwgMHhjMiwgMHgzZiwgMHhjMiwgMHgzNywgMHg2ZCwgMHgwMCwgMHg3YSwgMHgwMywgMHgwMSwgMHhjMCwgMHg3ZSwgMHgwNCwgCi0gICAgMHgwMCwgMHgyMCwgMHg3YSwgMHgwNywgMHgwMSwgMHhhNywgMHg3ZSwgMHgwNCwgMHgwMCwgMHgzOCwgMHg3YSwgMHgwNywgMHgwMSwgMHhiNywgMHgxMiwgMHg0MSwgCi0gICAgMHgyNywgMHgxMiwgMHg2MCwgMHhkNiwgMHgwMiwgMHgzNiwgMHhkNywgMHg3ZSwgMHhhMCwgMHhkMCwgMHg3ZSwgMHg2MCwgMHgwZiwgMHgxMiwgMHg2MSwgMHgzNiwgCi0gICAgMHg0MCwgMHgwNSwgMHgxMiwgMHg2NCwgMHg4NiwgMHhjMiwgMHhkNywgMHgyMiwgMHg3NSwgMHgyZiwgMHhiMSwgMHgxMiwgMHg3MywgMHgzNSwgMHgwYSwgMHg1MiwgCi0gICAgMHgyMywgMHg2ZCwgMHgwMCwgMHg1OSwgMHgwNSwgMHgwMCwgMHgzMiwgMHgxMiwgMHg0MSwgMHg4MywgMHgxMiwgMHg0MSwgMHg5ZiwgMHhkMCwgMHhhOCwgMHgyMiwgCi0gICAgMHg3NSwgMHgyZiwgMHhiMiwgMHgxMiwgMHg3MywgMHgzNSwgMHgwYSwgMHgyMiwgMHgwOSwgMHhiMiwgMHgzNSwgMHgzMywgMHg0MiwgMHgyMywgMHg3ZSwgMHhiMCwgCi0gICAgMHg5YywgMHgxOSwgMHhiMiwgMHgwMSwgMHhiOSwgMHgxMiwgMHgzMSwgMHg0YywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgCi0gICAgMHgwMiwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgCi0gICAgMHgzMCwgMHgwMCwgMHgwYywgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMSwgMHg2OCwgMHgxMiwgMHg0NCwgMHg0MCwgMHhjYSwgMHhiOCwgMHgwOSwgMHhiMCwgCi0gICAgMHgwMCwgMHgxMCwgMHg0NCwgMHgwMiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHhkYSwgMHhiOCwgMHg4MCwgMHgwMiwgMHg1NCwgMHhiZiwgMHg3YywgMHg3NCwgCi0gICAgMHg1ZSwgMHg3MCwgMHgwOCwgMHg2OCwgMHgwNCwgMHg0NCwgMHgwOCwgMHg4MCwgMHgwMiwgMHg1NCwgMHhmNywgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHhjYSwgCi0gICAgMHhiOCwgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhkYSwgMHhiOCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgMHgzMCwgMHgwMCwgCi0gICAgMHgwYywgMHgwYSwgMHg2MiwgMHgwOSwgMHhiNiwgMHgzNSwgMHgzMywgMHgzZSwgMHgyMCwgMHgwYSwgMHg2MiwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgCi0gICAgMHg2OCwgMHgyMCwgMHg0MiwgMHgyNywgMHhjYSwgMHhiOCwgMHg3NCwgMHg2MSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgxMCwgCi0gICAgMHg1OSwgMHg0NiwgMHgwMSwgMHhhOSwgMHgwOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHg0NCwgMHgwMSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHhkYSwgMHhiOCwgCi0gICAgMHg4MCwgMHgxMSwgMHhmNCwgMHg1MiwgMHgyNywgMHg3NCwgMHhhMSwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgzOCwgMHg1OSwgCi0gICAgMHg0NiwgMHgwMSwgMHhhOSwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3YywgMHg3NCwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgMHgzMCwgCi0gICAgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgCi0gICAgMHgwMSwgMHg2OCwgMHgwNCwgMHg0NCwgMHg4MCwgMHg4MCwgMHgwMiwgMHg1NCwgMHg3ZiwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwOCwgMHg2OCwgMHgwNCwgCi0gICAgMHg0NCwgMHgwMiwgMHg4MCwgMHgwMiwgMHg1NCwgMHhmZCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwOCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHgwYSwgMHg2MiwgCi0gICAgMHgwOSwgMHhiNiwgMHgzNSwgMHgzMywgMHhhNSwgMHhmZCwgMHhmNCwgMHhhNSwgMHhmZSwgMHhjYSwgMHgyOCwgMHgzZSwgMHgyMCwgMHgwYSwgMHg2MiwgMHhkYSwgCi0gICAgMHgyOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgMHg2OCwgMHgxMCwgMHhhNSwgMHhlZCwgMHg0MiwgMHgyOCwgMHg0MiwgMHgyNiwgMHg3ZSwgMHg0NCwgCi0gICAgMHgwMCwgMHgwOCwgMHg1OSwgMHg0NiwgMHgwMSwgMHg5OSwgMHg4MCwgMHgwNCwgMHhhNSwgMHhlZSwgMHg1MiwgMHgyOCwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgCi0gICAgMHgwNCwgMHg2OCwgMHgxMCwgMHhhNSwgMHhlZCwgMHg0MiwgMHgyOSwgMHg0MiwgMHgyNiwgMHg3ZSwgMHg0NCwgMHgwMCwgMHgwOCwgMHg1OSwgMHg0NiwgMHgwMSwgCi0gICAgMHg5OSwgMHg4MCwgMHgxNSwgMHhhNSwgMHhlZSwgMHg1MiwgMHgyOSwgMHg3YywgMHg3NCwgMHg1ZSwgMHg3MCwgMHgwMiwgMHg3OCwgMHgwYSwgMHg1MiwgMHgyNiwgCi0gICAgMHg3ZSwgMHg0NCwgMHgwMCwgMHgyMCwgMHg1OSwgMHg0NiwgMHgwMSwgMHg5OSwgMHgxMiwgMHg0MiwgMHhhMiwgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHgwNCwgCi0gICAgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgxOSwgMHg0MCwgCi0gICAgMHgwMCwgMHgxMCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgMHgwOSwgCi0gICAgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgxOSwgMHg0MCwgMHgwMCwgMHgxOCwgMHgxOSwgMHgzMCwgMHgwMCwgCi0gICAgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgyZiwgMHhiNSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgMHgwMiwgCi0gICAgMHgwOSwgMHhiMCwgMHgwMCwgMHgwYywgMHg0NCwgMHg0MCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhlNSwgMHg1OCwgMHhiNCwgMHgwNywgMHgyMywgMHgwOSwgCi0gICAgMHhiMCwgMHgwMCwgMHgxMCwgMHg0ZSwgMHhiMCwgMHgwMiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgxMCwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgCi0gICAgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHg1NCwgMHhmNywgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgzMCwgCi0gICAgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgyZiwgMHhiNiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgwNCwgMHg4MCwgMHgwMCwgMHg0YywgCi0gICAgMHgwMiwgMHhlNSwgMHg1OCwgMHhiNCwgMHgwNywgMHgxOCwgMHgwOSwgMHgzMCwgMHgwMCwgMHgwYywgMHg3NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgCi0gICAgMHgwOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHg0NCwgMHgwOCwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgzMCwgMHgwMCwgMHgwYywgMHgwOSwgMHhiMCwgCi0gICAgMHgwMCwgMHgwYywgMHg1NCwgMHhiZiwgMHgxOSwgMHhiMCwgMHgwMCwgMHgwYywgMHhkMCwgMHhhOCwgMHgyMiwgMHg3NSwgMHgyZiwgMHhiNCwgMHgxMiwgMHg3MywgCi0gICAgMHgzNSwgMHg3YSwgMHgyMSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg0MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHhiMCwgMHgwMSwgCi0gICAgMHg3ZSwgMHhhMCwgMHhjOCwgMHg3YywgMHg2NCwgMHgxMiwgMHg2MSwgMHgzNiwgMHgxMiwgMHg2NCwgMHg4NiwgMHhkMCwgMHhhOCwgMHgyMiwgMHgzOSwgMHgyZSwgCi0gICAgMHgzOSwgMHg3NSwgMHgzOSwgMHhiYywgMHgzYSwgMHgwMywgMHgzYSwgMHg0YSwgMHgzYSwgMHg5MSwgMHgzYSwgMHhkOCwgMHgzYiwgMHgxZiwgMHg3NSwgMHgyZiwgCi0gICAgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwMCwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgCi0gICAgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg2OSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3OSwgMHgyZCwgMHgyMywgCi0gICAgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgwOCwgMHgyYywgMHgzOCwgMHgwZiwgCi0gICAgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg2OSwgMHg3YSwgMHgyNywgMHgwMSwgMHg3OSwgMHgwMiwgMHg0NiwgMHg0ZiwgMHg3ZSwgCi0gICAgMHgxNCwgMHgwNCwgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwMSwgMHgxMiwgMHg3MywgCi0gICAgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgCi0gICAgMHg2YiwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3YiwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgCi0gICAgMHgxNCwgMHhiZSwgMHgxNCwgMHgwYywgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg2YiwgMHg3YSwgCi0gICAgMHgyNywgMHgwMSwgMHg3YiwgMHgwMiwgMHg0OSwgMHg3YywgMHg3ZSwgMHgxNCwgMHgwOCwgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgCi0gICAgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwMiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgCi0gICAgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg2ZCwgMHg3ZSwgMHgyNywgMHgwMSwgMHg3ZCwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgCi0gICAgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxMCwgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgCi0gICAgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg2ZCwgMHg3YSwgMHgyNywgMHgwMSwgMHg3ZCwgMHgwMiwgMHg0YywgMHhhOSwgMHg3ZSwgMHgxNCwgMHgwYywgCi0gICAgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwMywgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgCi0gICAgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg2ZiwgMHg3ZSwgCi0gICAgMHgyNywgMHgwMSwgMHg3ZiwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgCi0gICAgMHgxNCwgMHgxNCwgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg2ZiwgMHg3YSwgMHgyNywgMHgwMSwgCi0gICAgMHg3ZiwgMHgwMiwgMHg0ZiwgMHhkNiwgMHg3ZSwgMHgxNCwgMHgxMCwgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgCi0gICAgMHg3NSwgMHgyZiwgMHgwNCwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgCi0gICAgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg3MSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4MSwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgCi0gICAgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxOCwgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgCi0gICAgMHg3YSwgMHgxNywgMHgwMSwgMHg3MSwgMHg3YSwgMHgyNywgMHgwMSwgMHg4MSwgMHgwMiwgMHg1MywgMHgwMywgMHg3ZSwgMHgxNCwgMHgxNCwgMHgyZCwgMHg4MCwgCi0gICAgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwNSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgCi0gICAgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg3MywgMHg3ZSwgMHgyNywgMHgwMSwgCi0gICAgMHg4MywgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgxYywgCi0gICAgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg3MywgMHg3YSwgMHgyNywgMHgwMSwgMHg4MywgMHgwMiwgCi0gICAgMHg1NiwgMHgzMCwgMHg3ZSwgMHgxNCwgMHgxOCwgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgCi0gICAgMHgwNiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgCi0gICAgMHg3ZSwgMHgxNywgMHgwMSwgMHg3NSwgMHg3ZSwgMHgyNywgMHgwMSwgMHg4NSwgMHgyZCwgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgCi0gICAgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgyMCwgMHgyYywgMHgzOCwgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgCi0gICAgMHgwMSwgMHg3NSwgMHg3YSwgMHgyNywgMHgwMSwgMHg4NSwgMHgwMiwgMHg1OSwgMHg1ZCwgMHg3ZSwgMHgxNCwgMHgxYywgMHgyZCwgMHg4MCwgMHhlYiwgMHg3NSwgCi0gICAgMHgyZiwgMHg1NSwgMHgxMiwgMHg3MywgMHgzNSwgMHg3NSwgMHgyZiwgMHgwNywgMHgxMiwgMHg3MywgMHgzNSwgMHg3YSwgMHg2MSwgMHgyZiwgMHgxMiwgMHg3MywgCi0gICAgMHgzNSwgMHg3YSwgMHg3MSwgMHgyZiwgMHgxMiwgMHg3MywgMHgzNSwgMHg3ZSwgMHgxNywgMHgwMSwgMHg3NywgMHg3ZSwgMHgyNywgMHgwMSwgMHg4NywgMHgyZCwgCi0gICAgMHgyMywgMHg3ZSwgMHgwOSwgMHhiMCwgMHgwYiwgMHgwNCwgMHg3YSwgMHgxOSwgMHhiMCwgMHgwYiwgMHgxNCwgMHhiZSwgMHgxNCwgMHgyNCwgMHgyYywgMHgzOCwgCi0gICAgMHgwZiwgMHgxYiwgMHgzNCwgMHg3OCwgMHhlYywgMHg3YSwgMHgxNywgMHgwMSwgMHg3NywgMHg3YSwgMHgyNywgMHgwMSwgMHg4NywgMHgwMiwgMHg1YywgMHg4YSwgCi0gICAgMHg3ZSwgMHgxNCwgMHgyMCwgMHgyZCwgMHg4MCwgMHhlYiwgCi0KLS8vIFNlZ21lbnQgIzE1LCBTdGFydCBBZGRyZXNzIDAwZmY0MDAwLCBMZW5ndGggMTMxMDkKLTB4ZmYsMHgwMCwweDAwLDB4NDAsMHgzNSwweDMzLAotICAgIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTQsIDB4N2YsIDB4ZjgsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4MzEsIDB4MGIsIDB4MWEsIAotICAgIDB4NTAsIDB4MWIsIDB4MGEsIDB4NTAsIDB4N2UsIDB4MTQsIDB4NDAsIDB4MWIsIDB4MDIsIDB4NDAsIDB4NzQsIDB4N2UsIDB4ZjgsIDB4MDAsIDB4NTksIDB4NzUsIAotICAgIDB4YjAsIDB4ZGYsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTAsIDB4MDAsIDB4N2UsIDB4ZjQsIDB4NDAsIDB4MzAsIDB4MDIsIDB4NDAsIDB4OGIsIAotICAgIDB4MTIsIDB4NzQsIDB4NGUsIDB4ZjUsIDB4MmUsIDB4N2EsIDB4YTEsIDB4MmQsIDB4N2EsIDB4MTEsIDB4NTgsIDB4MTIsIDB4NmIsIDB4MDIsIDB4MTIsIDB4NDAsIAotICAgIDB4ZWIsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjAsIDB4MDMsIDB4MTIsIDB4NDMsIDB4NzksIDB4MTIsIDB4NmIsIDB4ZGUsIDB4ZDIsIDB4YWYsIDB4MDIsIAotICAgIDB4MzAsIDB4MDAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIDB4NDAsIDB4NjAsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIDB4ODksIDB4MTgsIAotICAgIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4MzUsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIAotICAgIDB4OTMsIDB4MDAsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDAsIDB4ZmYsIDB4N2UsIDB4MTgsIDB4NDAsIDB4ODIsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDEsIAotICAgIDB4ODksIDB4MTgsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTMsIDB4MDAsIDB4ODksIDB4MDgsIDB4N2UsIDB4MDgsIDB4MDAsIDB4MjAsIDB4N2UsIAotICAgIDB4NDQsIDB4MDQsIDB4MDAsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4OWQsIDB4MDIsIDB4NzMsIDB4NTAsIDB4N2UsIDB4MDgsIDB4MDEsIAotICAgIDB4NTksIDB4N2UsIDB4NDQsIDB4MmEsIDB4ZGQsIDB4N2UsIDB4NDAsIDB4MDAsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YWYsIDB4MDIsIDB4NzMsIDB4NTAsIDB4N2UsIAotICAgIDB4MDgsIDB4MDAsIDB4NTksIDB4N2UsIDB4NDQsIDB4MDEsIDB4MDAsIDB4N2UsIDB4NDAsIDB4NTMsIDB4N2UsIDB4ZTQsIDB4NDAsIDB4YzEsIDB4MDIsIDB4NzMsIAotICAgIDB4NTAsIDB4NzUsIDB4NTcsIDB4MDEsIDB4NzUsIDB4NTYsIDB4MDAsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDgsIDB4NzUsIDB4NTQsIDB4NTgsIDB4NzUsIDB4NTUsIAotICAgIDB4MDgsIDB4NzUsIDB4NTEsIDB4MDgsIDB4NzUsIDB4NTMsIDB4MDEsIDB4NzUsIDB4ODksIDB4MDEsIDB4NzUsIDB4OGEsIDB4MDEsIDB4NzUsIDB4OGMsIDB4MDAsIAotICAgIDB4ZDIsIDB4OGMsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDIsIDB4N2EsIDB4MDUsIDB4NDIsIDB4ODksIDB4ZjQsIDB4NzUsIDB4YjcsIDB4N2YsIDB4NzUsIDB4YjgsIAotICAgIDB4N2YsIDB4NzUsIDB4YjMsIDB4MDEsIDB4NzUsIDB4YjIsIDB4MDEsIDB4ZDIsIDB4YTksIDB4MjIsIDB4NzUsIDB4YjAsIDB4ZGYsIDB4ZTQsIDB4ZDUsIDB4ZTAsIAotICAgIDB4ZmQsIDB4NzUsIDB4YjAsIDB4ZWYsIDB4N2UsIDB4MjQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MTEsIDB4MmUsIDB4N2UsIDB4YTAsIDB4MDgsIDB4MTksIDB4YTIsIAotICAgIDB4MDAsIDB4MTAsIDB4MmUsIDB4MjQsIDB4MDEsIDB4MDAsIDB4YTUsIDB4ZDksIDB4ZjIsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4ODMsIDB4MGIsIAotICAgIDB4MjAsIDB4YmUsIDB4MjEsIDB4MmUsIDB4NzgsIDB4ZjYsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4NzQsIDB4YmYsIDB4MTksIAotICAgIDB4YjAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4MTAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4ODAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4N2UsIAotICAgIDB4NTQsIDB4MDAsIDB4MDIsIDB4MTksIDB4YTAsIDB4MDAsIDB4MDQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIAotICAgIDB4MGMsIDB4NzQsIDB4MDcsIDB4MjAsIDB4NjgsIDB4MDIsIDB4NzQsIDB4MGYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MzAsIDB4NmIsIDB4MTcsIDB4NzQsIAotICAgIDB4YmYsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4MjgsIDB4MjAsIDB4NjgsIDB4MDIsIDB4NzQsIDB4MjAsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIAotICAgIDB4NzQsIDB4MDMsIDB4MTksIDB4YjAsIDB4MDAsIDB4MGMsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4NzQsIDB4MGMsIDB4MTksIDB4YjAsIAotICAgIDB4MDAsIDB4MTAsIDB4MjIsIDB4N2UsIDB4MDQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MDIsIDB4ZTQsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDQsIDB4MDksIDB4YjAsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4MDgsIDB4MTksIDB4YjAsIDB4MDAsIDB4MTAsIDB4NzQsIDB4YTcsIDB4MTksIDB4YjAsIDB4MDAsIDB4MDgsIDB4MjIsIDB4N2MsIAotICAgIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NDEsIDB4YWEsIDB4ODksIDB4MjQsIDB4NDEsIDB4YmEsIDB4NDEsIDB4ZDcsIDB4NDEsIDB4ZjQsIAotICAgIDB4NDIsIDB4MTEsIDB4NDIsIDB4MmUsIDB4NDIsIDB4NGIsIDB4NDIsIDB4NjgsIDB4NDIsIDB4ODUsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MDgsIAotICAgIDB4N2UsIDB4MDQsIDB4MDQsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NTksIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjksIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NzksIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODksIDB4MjIsIDB4YzIsIDB4MTEsIDB4YzIsIDB4MTksIDB4YzIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MDgsIAotICAgIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NWIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmIsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2IsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4OGIsIDB4MjIsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MWEsIDB4YzIsIDB4MGEsIDB4N2UsIDB4MDQsIDB4MGMsIDB4MmQsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NWQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmQsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2QsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGQsIAotICAgIDB4MjIsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MWIsIDB4YzIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTAsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NWYsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NmYsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4N2YsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OGYsIDB4MjIsIDB4YzIsIDB4MTQsIAotICAgIDB4YzIsIDB4MWMsIDB4YzIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTQsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzEsIAotICAgIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTEsIDB4MjIsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MWQsIDB4YzIsIAotICAgIDB4MGQsIDB4N2UsIDB4MDQsIDB4MTgsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzMsIDB4NmQsIDB4MDAsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4ODMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTMsIDB4MjIsIDB4YzIsIDB4MTYsIDB4YzIsIDB4MWUsIDB4YzIsIDB4MGUsIDB4N2UsIDB4MDQsIAotICAgIDB4MWMsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzUsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODUsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4OTUsIDB4MjIsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MWYsIDB4YzIsIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjAsIDB4MmQsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NjcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzcsIDB4NmQsIDB4MDAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4ODcsIDB4N2EsIDB4MDcsIDB4MDEsIAotICAgIDB4OTcsIDB4MjIsIDB4N2MsIDB4YjIsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NDIsIDB4YWQsIDB4ODksIDB4MjQsIDB4NDIsIDB4YmQsIDB4NDIsIAotICAgIDB4ZDQsIDB4NDIsIDB4ZWIsIDB4NDMsIDB4MDIsIDB4NDMsIDB4MTksIDB4NDMsIDB4MzAsIDB4NDMsIDB4NDcsIDB4NDMsIDB4NWUsIDB4MzAsIDB4NDAsIDB4MDcsIAotICAgIDB4MjAsIDB4NTgsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDgsIDB4MDcsIDB4MjAsIDB4NTAsIDB4MDQsIDB4YzIsIDB4MjgsIDB4ODAsIAotICAgIDB4MDIsIDB4ZDIsIDB4MjgsIDB4MjIsIDB4MzAsIDB4NDEsIDB4MDcsIDB4MjAsIDB4NTksIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MGMsIDB4MzAsIDB4NDksIAotICAgIDB4MDcsIDB4MjAsIDB4NTEsIDB4MDQsIDB4YzIsIDB4MjksIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MjksIDB4MjIsIDB4MzAsIDB4NDIsIDB4MDcsIDB4MjAsIDB4NWEsIAotICAgIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGEsIDB4MDcsIDB4MjAsIDB4NTIsIDB4MDQsIDB4YzIsIDB4MmEsIDB4ODAsIDB4MDIsIDB4ZDIsIAotICAgIDB4MmEsIDB4MjIsIDB4MzAsIDB4NDMsIDB4MDcsIDB4MjAsIDB4NWIsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGIsIDB4MDcsIDB4MjAsIAotICAgIDB4NTMsIDB4MDQsIDB4YzIsIDB4MmIsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmIsIDB4MjIsIDB4MzAsIDB4NDQsIDB4MDcsIDB4MjAsIDB4NWMsIDB4MDQsIDB4YzIsIAotICAgIDB4MmMsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGMsIDB4MDcsIDB4MjAsIDB4NTQsIDB4MDQsIDB4YzIsIDB4MmMsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmMsIDB4MjIsIAotICAgIDB4MzAsIDB4NDUsIDB4MDcsIDB4MjAsIDB4NWQsIDB4MDQsIDB4YzIsIDB4MmQsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGQsIDB4MDcsIDB4MjAsIDB4NTUsIDB4MDQsIAotICAgIDB4YzIsIDB4MmQsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmQsIDB4MjIsIDB4MzAsIDB4NDYsIDB4MDcsIDB4MjAsIDB4NWUsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIAotICAgIDB4MGMsIDB4MzAsIDB4NGUsIDB4MDcsIDB4MjAsIDB4NTYsIDB4MDQsIDB4YzIsIDB4MmUsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmUsIDB4MjIsIDB4MzAsIDB4NDcsIAotICAgIDB4MDcsIDB4MjAsIDB4NWYsIDB4MDQsIDB4YzIsIDB4MmYsIDB4ODAsIDB4MGMsIDB4MzAsIDB4NGYsIDB4MDcsIDB4MjAsIDB4NTcsIDB4MDQsIDB4YzIsIDB4MmYsIAotICAgIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MmYsIDB4MjIsIDB4NDQsIDB4NjYsIDB4NDMsIDB4OGEsIDB4YmUsIDB4YjAsIDB4MDIsIDB4NDAsIDB4MDEsIDB4MjIsIDB4MjMsIAotICAgIDB4MGEsIDB4NWIsIDB4NDksIDB4NTUsIDB4NDMsIDB4NzUsIDB4OTksIDB4NTQsIDB4ZDMsIDB4MjIsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTQsIAotICAgIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4MzUsIDB4MTIsIDB4NDQsIDB4N2EsIDB4N2UsIDB4MDQsIDB4MjgsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzEsIAotICAgIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzMsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIAotICAgIDB4N2UsIDB4MDQsIDB4NjYsIDB4N2YsIDB4N2EsIDB4MDUsIDB4NGIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MTIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIAotICAgIDB4MWUsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTAsIDB4NzQsIDB4NDgsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTMsIDB4NzQsIDB4M2YsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MTQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIAotICAgIDB4MTYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTAsIDB4NzQsIDB4MDgsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTMsIDB4NzQsIDB4M2YsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MTYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4NzQsIAotICAgIDB4MmYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTAsIDB4NzQsIDB4NDgsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTMsIDB4NzQsIDB4M2YsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4NzQsIDB4MGYsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDcsIDB4MTIsIDB4NDAsIDB4ZmEsIDB4N2UsIDB4MjAsIDB4MDAsIDB4MTIsIDB4NDEsIDB4OWYsIDB4MGIsIDB4MjAsIDB4YmUsIDB4MjEsIAotICAgIDB4MmUsIDB4NzgsIDB4ZjYsIDB4ZDIsIDB4YTgsIDB4MjIsIDB4N2UsIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIAotICAgIDB4MzUsIDB4MTIsIDB4NDQsIDB4N2EsIDB4NzUsIDB4YjAsIDB4ZGYsIDB4YzIsIDB4YTgsIDB4MjIsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIAotICAgIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4N2UsIDB4MjAsIDB4MDQsIDB4N2MsIDB4YjIsIDB4YzIsIDB4ZDcsIDB4MTMsIDB4MTMsIDB4MTMsIAotICAgIDB4MTMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTIsIDB4YTUsIDB4ZGEsIDB4ZTUsIDB4MjIsIDB4Y2EsIDB4MDksIDB4MTIsIDB4MzAsIDB4MGUsIDB4MTAsIDB4MDEsIDB4MzQsIDB4ZDUsIDB4NTEsIDB4NDAsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIAotICAgIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MDQsIDB4NjMsIDB4NTMsIDB4MDEsIDB4N2UsIDB4MDAsIDB4NTQsIDB4MmUsIDB4MDEsIDB4NTMsIDB4YTUsIDB4ZTYsIDB4ZjUsIDB4NTEsIDB4ODAsIAotICAgIDB4MTIsIDB4MjAsIDB4MDIsIDB4MWQsIDB4NzUsIDB4NTMsIDB4MDAsIDB4ODUsIDB4NTQsIDB4NTEsIDB4ZDIsIDB4MDIsIDB4NzQsIDB4MDMsIDB4ODAsIDB4MGQsIAotICAgIDB4MzAsIDB4MDIsIDB4MGUsIDB4YzIsIDB4MDIsIDB4N2UsIDB4MDAsIDB4NTYsIDB4MmUsIDB4MDEsIDB4NTMsIDB4YTUsIDB4ZTYsIDB4N2EsIDB4YjMsIDB4OTAsIAotICAgIDB4MDAsIDB4ZGEsIDB4MDksIDB4MzIsIDB4NDUsIDB4NmYsIDB4NDUsIDB4OGIsIDB4NDUsIDB4YTcsIDB4NDUsIDB4YzMsIDB4NDUsIDB4ZGYsIDB4NDUsIDB4ZmIsIAotICAgIDB4NDYsIDB4MTcsIDB4NDYsIDB4MzMsIDB4YzAsIDB4ZDAsIDB4YzAsIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIAotICAgIDB4Y2EsIDB4MmIsIDB4ZDIsIDB4MDEsIDB4NzUsIDB4MmYsIDB4ODksIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4OTAsIDB4MDAsIDB4NjAsIDB4MjgsIAotICAgIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MTMsIDB4NTAsIDB4MTMsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4NTksIDB4N2MsIDB4YjAsIAotICAgIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4NDUsIDB4MDQsIDB4OTksIDB4MjQsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4YTUsIDB4MGEsIDB4YTUsIAotICAgIDB4MDgsIDB4YmUsIDB4MDEsIDB4MmUsIDB4NzgsIDB4ZTEsIDB4ODAsIDB4ZDIsIDB4MzAsIDB4MDQsIDB4MDUsIDB4YzIsIDB4MDQsIDB4MTIsIDB4NjQsIDB4ODYsIAotICAgIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIAotICAgIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjEsIDB4YWIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIAotICAgIDB4NjksIDB4NTIsIDB4NjEsIDB4ZWIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIAotICAgIDB4ODIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjIsIDB4MmIsIAotICAgIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODMsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjIsIDB4NmIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIAotICAgIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjIsIDB4YWIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIAotICAgIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIAotICAgIDB4NjksIDB4NTIsIDB4NjIsIDB4ZWIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIAotICAgIDB4ODYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4MmIsIAotICAgIDB4ODksIDB4NTQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDgsIDB4MjAsIDB4ZTAsIDB4MTQsIDB4NzUsIDB4MmYsIDB4ODcsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4NTQsIDB4M2UsIDB4MGEsIDB4NWIsIDB4N2UsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4NjksIDB4NTIsIDB4NjMsIDB4NmIsIDB4ODksIDB4NTQsIDB4MjIsIDB4MTAsIAotICAgIDB4MDgsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjgsIDB4MDMsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NDksIDB4NDUsIDB4MzAsIDB4MzAsIDB4MDYsIDB4MjAsIDB4ZTYsIAotICAgIDB4NGYsIDB4ZDIsIDB4MDgsIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjAsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OTksIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzIsIDB4N2EsIDB4MDUsIDB4MzIsIDB4N2EsIDB4MzcsIDB4MDEsIAotICAgIDB4NzksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NTksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MDgsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIAotICAgIDB4NDcsIDB4MDEsIDB4NTksIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIAotICAgIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjAsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjAsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4NzksIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OTksIDB4MjgsIDB4MDQsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4OTksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NzksIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzIsIDB4N2EsIAotICAgIDB4MDUsIDB4MzIsIDB4N2EsIDB4MzcsIDB4MDEsIDB4NzksIDB4N2UsIDB4MzcsIDB4MDEsIDB4NTksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIAotICAgIDB4MDgsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NTksIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MDgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MDQsIDB4MmQsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NTksIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIAotICAgIDB4MDIsIDB4NDYsIDB4YzIsIDB4MjIsIDB4ZDIsIDB4MDgsIDB4N2UsIDB4MDQsIDB4MDQsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NTksIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NjksIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIAotICAgIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIAotICAgIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTksIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIAotICAgIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIAotICAgIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YTksIDB4MWIsIDB4MzgsIDB4MjAsIAotICAgIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzgsIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTAsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDAsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIAotICAgIDB4YTksIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIAotICAgIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIAotICAgIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIAotICAgIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDAsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIAotICAgIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIAotICAgIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIAotICAgIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIAotICAgIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIAotICAgIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIAotICAgIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIAotICAgIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIAotICAgIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIAotICAgIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NDgsIDB4MWUsIDB4NzUsIDB4MmYsIAotICAgIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzgsIAotICAgIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTAsIDB4MjIsIDB4ZGEsIDB4YjgsIAotICAgIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NDgsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NDksIAotICAgIDB4NDUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIAotICAgIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTAsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTAsIDB4MTIsIDB4NDIsIDB4YmQsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIAotICAgIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIAotICAgIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIAotICAgIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NDgsIDB4NzIsIDB4NzUsIDB4MmYsIAotICAgIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MDksIDB4MDEsIDB4MjIsIAotICAgIDB4MjAsIDB4MjksIDB4MDMsIDB4ZDIsIDB4MDksIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODEsIDB4MDAsIAotICAgIDB4ODAsIDB4MDYsIDB4MjAsIDB4MjksIDB4MDMsIDB4ZDIsIDB4MDksIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIAotICAgIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NGMsIDB4NzIsIDB4MzAsIDB4MzEsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MDksIAotICAgIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWIsIDB4OWQsIDB4MzIsIAotICAgIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzQsIDB4N2EsIDB4MDUsIDB4MzQsIDB4N2EsIDB4MzcsIDB4MDEsIDB4N2IsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4NWIsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGMsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWIsIAotICAgIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIAotICAgIDB4NjEsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjEsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4N2IsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OWIsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIAotICAgIDB4OWIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2IsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzQsIDB4N2EsIDB4MDUsIDB4MzQsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4N2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NWIsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MGMsIDB4MmMsIDB4MzgsIAotICAgIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWIsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4OWUsIDB4NDQsIDB4MGMsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MDgsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWIsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NDksIDB4ZWYsIAotICAgIDB4MjIsIDB4ZDIsIDB4MDksIDB4N2UsIDB4MDQsIDB4MDgsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NWIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmIsIDB4NzUsIAotICAgIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YWIsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIAotICAgIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YWIsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDEsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YWIsIDB4OWUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIAotICAgIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIAotICAgIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIAotICAgIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDEsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIAotICAgIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIAotICAgIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIAotICAgIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIAotICAgIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIAotICAgIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIAotICAgIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NGIsIDB4NGIsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4MzksIDB4MGEsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTEsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIAotICAgIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGIsIDB4NGIsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGMsIDB4NzIsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTksIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTEsIDB4ODAsIDB4MDIsIDB4YzIsIAotICAgIDB4NTEsIDB4MTIsIDB4NDIsIDB4ZDQsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIAotICAgIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIAotICAgIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIAotICAgIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIAotICAgIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGIsIDB4OWYsIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MGEsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmEsIDB4MDMsIAotICAgIDB4ZDIsIDB4MGEsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODIsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIAotICAgIDB4MmEsIDB4MDMsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIAotICAgIDB4NjgsIDB4MDMsIDB4MTIsIDB4NGYsIDB4OWYsIDB4MzAsIDB4MzIsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MGEsIDB4MjIsIDB4MzAsIDB4ZTYsIAotICAgIDB4MDIsIDB4ZDIsIDB4NjIsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIAotICAgIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzYsIDB4N2EsIDB4MDUsIDB4MzYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4N2QsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NWQsIDB4N2QsIAotICAgIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTAsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWQsIDB4NzUsIDB4MmYsIDB4OTQsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjIsIDB4YzQsIDB4MjIsIAotICAgIDB4YzIsIDB4NjIsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2QsIDB4YmUsIDB4MjQsIAotICAgIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OWQsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWQsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4N2QsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzYsIDB4N2EsIDB4MDUsIDB4MzYsIDB4N2EsIDB4MzcsIDB4MDEsIDB4N2QsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4NWQsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTAsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4NWQsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIAotICAgIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MTAsIAotICAgIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MGMsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4NWQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NGQsIDB4MWMsIDB4MjIsIDB4ZDIsIDB4MGEsIAotICAgIDB4N2UsIDB4MDQsIDB4MGMsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NWQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmQsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIAotICAgIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIAotICAgIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YWQsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIAotICAgIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIAotICAgIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIAotICAgIDB4MjQsIDB4MDIsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YWQsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIAotICAgIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIAotICAgIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDIsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YWQsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIAotICAgIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIAotICAgIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIAotICAgIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIAotICAgIDB4MjMsIDB4NDQsIDB4MDIsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIAotICAgIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIAotICAgIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIAotICAgIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIAotICAgIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIAotICAgIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIAotICAgIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIAotICAgIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NGUsIDB4NzgsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2EsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIAotICAgIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTIsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIAotICAgIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NGUsIDB4NzgsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NGYsIDB4OWYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIAotICAgIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIDB4YzIsIAotICAgIDB4NWEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTIsIDB4MTIsIDB4NDIsIAotICAgIDB4ZWIsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIAotICAgIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIAotICAgIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIAotICAgIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NGUsIDB4Y2MsIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIAotICAgIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MGIsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmIsIDB4MDMsIDB4ZDIsIDB4MGIsIDB4MjIsIAotICAgIDB4NzUsIDB4MmYsIDB4YTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODMsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmIsIDB4MDMsIDB4ZDIsIAotICAgIDB4MGIsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIAotICAgIDB4NTIsIDB4Y2MsIDB4MzAsIDB4MzMsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MGIsIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjMsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2YsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWYsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIAotICAgIDB4MzgsIDB4N2EsIDB4MDUsIDB4MzgsIDB4N2EsIDB4MzcsIDB4MDEsIDB4N2YsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NWYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIAotICAgIDB4YmUsIDB4NDQsIDB4MTQsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWYsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjMsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjMsIDB4MmQsIAotICAgIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4N2YsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIAotICAgIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4OWYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4OWYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4N2YsIDB4OWQsIAotICAgIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzgsIDB4N2EsIDB4MDUsIDB4MzgsIDB4N2EsIDB4MzcsIDB4MDEsIDB4N2YsIDB4N2UsIDB4MzcsIDB4MDEsIAotICAgIDB4NWYsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTQsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWYsIDB4NzUsIAotICAgIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIAotICAgIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MTQsIDB4MmQsIDB4OWQsIDB4MjQsIAotICAgIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MTAsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NWYsIDB4MTIsIAotICAgIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTAsIDB4NDksIDB4MjIsIDB4ZDIsIDB4MGIsIDB4N2UsIDB4MDQsIDB4MTAsIAotICAgIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NWYsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NmYsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIAotICAgIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIAotICAgIDB4MDEsIDB4YWYsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIAotICAgIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIAotICAgIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDMsIDB4MDAsIAotICAgIDB4MmUsIDB4MjcsIDB4MDEsIDB4YWYsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIAotICAgIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIAotICAgIDB4MTMsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIAotICAgIDB4N2UsIDB4NjQsIDB4MDMsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YWYsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIAotICAgIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIAotICAgIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIAotICAgIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDMsIAotICAgIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIAotICAgIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIAotICAgIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIAotICAgIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIAotICAgIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIAotICAgIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIAotICAgIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIAotICAgIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTEsIDB4YTUsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIAotICAgIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2IsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIAotICAgIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTMsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIAotICAgIDB4MTIsIDB4NTEsIDB4YTUsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTIsIDB4Y2MsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIAotICAgIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIAotICAgIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTMsIDB4MTIsIDB4NDMsIDB4MDIsIDB4MDIsIDB4NjEsIAotICAgIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIAotICAgIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIAotICAgIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIAotICAgIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTEsIDB4ZjksIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MGMsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTQsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODQsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmMsIDB4MDMsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NTUsIDB4ZjksIDB4MzAsIAotICAgIDB4MzQsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MGMsIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjQsIDB4N2UsIDB4MzcsIDB4MDEsIAotICAgIDB4ODEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTEsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4M2EsIDB4N2EsIDB4MDUsIAotICAgIDB4M2EsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjEsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTgsIAotICAgIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjEsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjQsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjQsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIAotICAgIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODEsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIAotICAgIDB4MDEsIDB4YTEsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODEsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIAotICAgIDB4MmUsIDB4MDUsIDB4M2EsIDB4N2EsIDB4MDUsIDB4M2EsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjEsIDB4N2QsIDB4NDMsIAotICAgIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MTgsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjEsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MTgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIAotICAgIDB4N2UsIDB4MzQsIDB4MTQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjEsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIAotICAgIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTMsIDB4NzYsIDB4MjIsIDB4ZDIsIDB4MGMsIDB4N2UsIDB4MDQsIDB4MTQsIDB4MmQsIDB4N2EsIDB4MDcsIAotICAgIDB4MDEsIDB4NjEsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzEsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIAotICAgIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjEsIDB4MmUsIAotICAgIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIAotICAgIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIAotICAgIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIAotICAgIDB4YjEsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIAotICAgIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIAotICAgIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTQsIDB4MjIsIDB4ODAsIAotICAgIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDQsIAotICAgIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YjEsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIAotICAgIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIAotICAgIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIAotICAgIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDQsIDB4N2EsIDB4NjksIDB4YjAsIAotICAgIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIAotICAgIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIAotICAgIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIAotICAgIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIAotICAgIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIAotICAgIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIAotICAgIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIAotICAgIDB4NTQsIDB4ZDIsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIAotICAgIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2MsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIAotICAgIDB4MTQsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTQsIDB4ZDIsIAotICAgIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NTUsIDB4ZjksIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTQsIDB4MTIsIDB4NDMsIDB4MTksIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIAotICAgIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIAotICAgIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIAotICAgIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIAotICAgIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIAotICAgIDB4NTUsIDB4MjYsIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIAotICAgIDB4MTAsIDB4MGQsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmQsIDB4MDMsIDB4ZDIsIDB4MGQsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTUsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2UsIDB4MTQsIDB4ODUsIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmQsIDB4MDMsIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIAotICAgIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NTksIDB4MjYsIDB4MzAsIDB4MzUsIDB4MDYsIDB4MjAsIAotICAgIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MGQsIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODMsIDB4N2UsIDB4MjcsIAotICAgIDB4MDEsIDB4YTMsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4M2MsIDB4N2EsIDB4MDUsIDB4M2MsIDB4N2EsIDB4MzcsIAotICAgIDB4MDEsIDB4ODMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MWMsIDB4MmMsIDB4MzgsIDB4NjgsIAotICAgIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjUsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjUsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIAotICAgIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODMsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YTMsIDB4MjgsIAotICAgIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODMsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4M2MsIAotICAgIDB4N2EsIDB4MDUsIDB4M2MsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODMsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIAotICAgIDB4NDQsIDB4MWMsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIAotICAgIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MWMsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MTgsIAotICAgIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjMsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIAotICAgIDB4MDMsIDB4MDIsIDB4NTYsIDB4YTMsIDB4MjIsIDB4ZDIsIDB4MGQsIDB4N2UsIDB4MDQsIDB4MTgsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjMsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4NzMsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIAotICAgIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIAotICAgIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjMsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIAotICAgIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIAotICAgIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIAotICAgIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YjMsIDB4MWIsIDB4MzgsIAotICAgIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2QsIDB4MGEsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDUsIDB4MDAsIDB4MmUsIDB4NjcsIAotICAgIDB4MDEsIDB4YjMsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIAotICAgIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIAotICAgIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIAotICAgIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDUsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIAotICAgIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIAotICAgIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIAotICAgIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIAotICAgIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIAotICAgIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIAotICAgIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIAotICAgIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIAotICAgIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIAotICAgIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NTcsIDB4ZmYsIDB4NzUsIAotICAgIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIAotICAgIDB4M2QsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTUsIDB4MjIsIDB4ZGEsIAotICAgIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NTcsIDB4ZmYsIDB4ZGEsIDB4YjgsIDB4MDIsIAotICAgIDB4NTksIDB4MjYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIAotICAgIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NTUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTUsIDB4MTIsIDB4NDMsIDB4MzAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIAotICAgIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIAotICAgIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIAotICAgIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NTgsIDB4NTMsIDB4NzUsIAotICAgIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MGUsIDB4MDEsIAotICAgIDB4MjIsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODYsIAotICAgIDB4MDAsIDB4ODAsIDB4MDYsIDB4MjAsIDB4MmUsIDB4MDMsIDB4ZDIsIDB4MGUsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIAotICAgIDB4YjAsIDB4MWUsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NWMsIDB4NTMsIDB4MzAsIDB4MzYsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIAotICAgIDB4MGUsIDB4MjIsIDB4MzAsIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjYsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODUsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTUsIDB4OWQsIAotICAgIDB4MzIsIDB4NDAsIDB4MzEsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4M2UsIDB4N2EsIDB4MDUsIDB4M2UsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODUsIDB4N2UsIAotICAgIDB4MzcsIDB4MDEsIDB4NjUsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjAsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIAotICAgIDB4NjUsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIAotICAgIDB4MTAsIDB4NjYsIDB4YzQsIDB4MjIsIDB4YzIsIDB4NjYsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIAotICAgIDB4MDEsIDB4ODUsIDB4YmUsIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YTUsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIAotICAgIDB4MDEsIDB4YTUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODUsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4M2UsIDB4N2EsIDB4MDUsIDB4M2UsIAotICAgIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjUsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjAsIDB4MmMsIAotICAgIDB4MzgsIDB4MTMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjUsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MDIsIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjAsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MWMsIDB4MmQsIDB4N2QsIDB4MjQsIAotICAgIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NTksIAotICAgIDB4ZDAsIDB4MjIsIDB4ZDIsIDB4MGUsIDB4N2UsIDB4MDQsIDB4MWMsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjUsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzUsIAotICAgIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIAotICAgIDB4NjgsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjUsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIAotICAgIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIAotICAgIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIAotICAgIDB4NDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4MjQsIDB4MDYsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YjUsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIAotICAgIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTYsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDYsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YjUsIDB4OWUsIAotICAgIDB4MjQsIDB4MDAsIDB4MDIsIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIAotICAgIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIAotICAgIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIAotICAgIDB4NTQsIDB4MGYsIDB4MjMsIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDYsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIAotICAgIDB4MmYsIDB4OTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIAotICAgIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIAotICAgIDB4N2EsIDB4MzUsIDB4MzAsIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIAotICAgIDB4MjQsIDB4MmQsIDB4ODAsIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIAotICAgIDB4N2UsIDB4MDcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIAotICAgIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIAotICAgIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIAotICAgIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIAotICAgIDB4N2EsIDB4MDksIDB4YjAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NWIsIDB4MmMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2UsIDB4MGEsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTYsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIAotICAgIDB4ZDgsIDB4YmQsIDB4MzIsIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWIsIDB4MmMsIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NWMsIDB4NTMsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIAotICAgIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NTYsIDB4MTIsIDB4NDMsIDB4NDcsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIAotICAgIDB4MDIsIDB4NjEsIDB4MTMsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIAotICAgIDB4NWUsIDB4YjAsIDB4MWMsIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIAotICAgIDB4MzYsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWIsIDB4ODAsIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4MTAsIDB4MGYsIDB4MDEsIDB4MjIsIDB4MjAsIDB4MmYsIAotICAgIDB4MDMsIDB4ZDIsIDB4MGYsIDB4MjIsIDB4NzUsIDB4MmYsIDB4YTcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4ODcsIDB4MDAsIDB4ODAsIDB4MDYsIAotICAgIDB4MjAsIDB4MmYsIDB4MDMsIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWUsIDB4ZGEsIAotICAgIDB4YjgsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NWYsIDB4ODAsIDB4MzAsIDB4MzcsIDB4MDYsIDB4MjAsIDB4ZTYsIDB4NGYsIDB4ZDIsIDB4MGYsIDB4MjIsIDB4MzAsIAotICAgIDB4ZTYsIDB4MDIsIDB4ZDIsIDB4NjcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4ODcsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTcsIDB4OWQsIDB4MzIsIDB4NDAsIDB4MzEsIAotICAgIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDAsIDB4N2EsIDB4MDUsIDB4NDAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4ODcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjcsIAotICAgIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjQsIDB4MmMsIDB4MzgsIDB4NjgsIDB4N2EsIDB4NDcsIDB4MDEsIDB4NjcsIDB4NzUsIDB4MmYsIAotICAgIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjksIDB4ZjAsIDB4MTAsIDB4NjcsIDB4YzQsIAotICAgIDB4MjIsIDB4YzIsIDB4NjcsIDB4MmQsIDB4MjMsIDB4NjgsIDB4NzgsIDB4NmQsIDB4MzMsIDB4ODAsIDB4MWEsIDB4N2UsIDB4MjcsIDB4MDEsIDB4ODcsIDB4YmUsIAotICAgIDB4MjQsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NmEsIDB4YmUsIDB4MjcsIDB4MDEsIDB4YTcsIDB4MjgsIDB4MDQsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YTcsIDB4N2UsIAotICAgIDB4MzcsIDB4MDEsIDB4ODcsIDB4OWQsIDB4MzIsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4NDAsIDB4N2EsIDB4MDUsIDB4NDAsIDB4N2EsIDB4MzcsIDB4MDEsIAotICAgIDB4ODcsIDB4N2UsIDB4MzcsIDB4MDEsIDB4NjcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjQsIDB4MmMsIDB4MzgsIDB4MTMsIDB4N2EsIAotICAgIDB4NDcsIDB4MDEsIDB4NjcsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIAotICAgIDB4NjksIDB4ZjAsIDB4NzUsIDB4MmYsIDB4OTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIAotICAgIDB4MjQsIDB4MmQsIDB4OWQsIDB4MjQsIDB4MTIsIDB4NjksIDB4ZjAsIDB4N2UsIDB4MzQsIDB4MjAsIDB4MmQsIDB4N2QsIDB4MjQsIDB4MmQsIDB4NDMsIDB4N2EsIAotICAgIDB4NDcsIDB4MDEsIDB4NjcsIDB4MTIsIDB4NjksIDB4ZjAsIDB4YmUsIDB4MjUsIDB4MjAsIDB4NzgsIDB4MDMsIDB4MDIsIDB4NWMsIDB4ZmQsIDB4MjIsIDB4ZDIsIAotICAgIDB4MGYsIDB4N2UsIDB4MDQsIDB4MjAsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NjcsIDB4N2EsIDB4MDcsIDB4MDEsIDB4NzcsIDB4NzUsIDB4MmYsIDB4OTQsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzUsIDB4MmYsIDB4MDAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OTIsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4ODIsIDB4ZGEsIDB4YjgsIDB4NzgsIDB4NjgsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjcsIDB4MDEsIDB4YjcsIDB4MmUsIDB4MjQsIDB4MDAsIDB4MDIsIDB4MmQsIDB4MzIsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIAotICAgIDB4MzgsIDB4MzQsIDB4N2QsIDB4MDIsIDB4MmUsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MDUsIDB4MzAsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIAotICAgIDB4MDEsIDB4YzksIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDIsIDB4YmUsIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2MsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIAotICAgIDB4N2UsIDB4MjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4MjcsIDB4MDEsIDB4YjcsIDB4MWIsIDB4MzgsIDB4MjAsIDB4MGIsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDIsIDB4NmEsIDB4NjMsIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MDQsIAotICAgIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIDB4NTQsIDB4ZmUsIDB4MTksIAotICAgIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ODAsIDB4N2YsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIAotICAgIDB4MjgsIDB4MmQsIDB4OWQsIDB4MjQsIDB4N2UsIDB4NjQsIDB4MDcsIDB4MDAsIDB4MmUsIDB4NjcsIDB4MDEsIDB4YjcsIDB4OWUsIDB4MjQsIDB4MDAsIDB4MDIsIAotICAgIDB4NDAsIDB4MTcsIDB4MWIsIDB4MzgsIDB4NjAsIDB4MGIsIDB4MzUsIDB4MTIsIDB4NmEsIDB4NjMsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIDB4MjQsIAotICAgIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzksIDB4MDIsIDB4NmEsIDB4NjMsIDB4N2EsIDB4MzksIDB4YzAsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIAotICAgIDB4N2EsIDB4MzksIDB4ZDAsIDB4MGIsIDB4MzQsIDB4MWIsIDB4NDQsIDB4ODAsIDB4ZTUsIDB4OWQsIDB4MzIsIDB4N2MsIDB4YjYsIDB4NTQsIDB4MGYsIDB4MjMsIAotICAgIDB4MjMsIDB4MjMsIDB4NDQsIDB4MDcsIDB4N2EsIDB4NjksIDB4YjAsIDB4N2EsIDB4NzksIDB4NzAsIDB4MGIsIDB4MzUsIDB4NzUsIDB4MmYsIDB4OTMsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YmQsIDB4MDQsIDB4NjgsIDB4MmIsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIAotICAgIDB4N2UsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4Y2IsIDB4MmUsIDB4MzUsIDB4MzAsIDB4N2EsIDB4MzUsIDB4MzAsIAotICAgIDB4MjIsIDB4ZDIsIDB4MDQsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4MTMsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIAotICAgIDB4MjgsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4MmEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDcsIDB4MDEsIAotICAgIDB4Y2IsIDB4N2UsIDB4MjQsIDB4MDMsIDB4ZmUsIDB4OWQsIDB4MjAsIDB4MjgsIDB4NDAsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2UsIDB4NDQsIDB4MjgsIAotICAgIDB4MmQsIDB4N2QsIDB4NjAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIDB4ZDIsIDB4N2QsIDB4NzAsIDB4MGIsIDB4MDQsIDB4YmQsIDB4MDQsIDB4NjgsIAotICAgIDB4ZDAsIDB4N2QsIDB4NTQsIDB4OWQsIDB4NTAsIDB4YmQsIDB4MjUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MjUsIDB4N2QsIDB4MzIsIDB4MDksIDB4YjEsIDB4MDAsIAotICAgIDB4MTQsIDB4Y2EsIDB4YjgsIDB4NTQsIDB4MWYsIDB4YjQsIDB4MDEsIDB4MzEsIDB4ZGEsIDB4YjgsIDB4N2UsIDB4MTksIDB4YjAsIDB4N2EsIDB4MDksIDB4YjAsIAotICAgIDB4MGIsIDB4MDQsIDB4MWIsIDB4MjQsIDB4NzgsIDB4ZTcsIDB4MDIsIDB4NWUsIDB4NTksIDB4NzUsIDB4MmYsIDB4OTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MDQsIDB4NTQsIDB4ZmEsIDB4MTksIDB4YjEsIDB4MDAsIDB4MDQsIDB4MzAsIDB4M2YsIDB4MGEsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTAsIAotICAgIDB4NTQsIDB4ZmUsIDB4MTksIDB4YjEsIDB4MDAsIDB4MTAsIDB4ZDIsIDB4MTcsIDB4MjIsIDB4ZGEsIDB4YjgsIDB4MzAsIDB4ZTAsIDB4ZDgsIDB4YmQsIDB4MzIsIAotICAgIDB4NjgsIDB4MDcsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NWUsIDB4NTksIDB4ZGEsIDB4YjgsIDB4MDIsIDB4NWYsIDB4ODAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIAotICAgIDB4N2UsIDB4YTAsIDB4ODgsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4MGEsIDB4NjgsIDB4MWQsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NWYsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTcsIDB4MTIsIAotICAgIDB4NDMsIDB4NWUsIDB4MDIsIDB4NjEsIDB4MTMsIDB4NzUsIDB4MmYsIDB4OTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTQsIDB4N2EsIAotICAgIDB4YjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDgsIDB4ZDIsIDB4MDQsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MDIsIDB4NjEsIDB4MTMsIAotICAgIDB4ZDIsIDB4MDQsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4N2UsIDB4YTAsIDB4ODAsIDB4MTIsIDB4NjEsIDB4MTMsIDB4Y2EsIDB4YjgsIDB4NWUsIDB4YjAsIDB4MWMsIAotICAgIDB4ZGEsIDB4YjgsIDB4NjgsIDB4MTIsIDB4N2UsIDB4YTAsIDB4YzAsIDB4MDksIDB4NjEsIDB4MDAsIDB4MDAsIDB4MTIsIDB4NjEsIDB4MzYsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTQsIDB4MjAsIDB4ZTAsIDB4ZGIsIDB4MjIsIDB4MDIsIDB4NWUsIDB4YWQsIDB4NzUsIDB4MmYsIDB4OTUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIAotICAgIDB4NzUsIDB4MmYsIDB4OTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjIsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIAotICAgIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTgsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTgsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTAsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTAsIDB4MDIsIDB4NjAsIDB4ZmYsIAotICAgIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIAotICAgIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTksIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTksIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NTEsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTEsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIAotICAgIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWEsIDB4ODAsIDB4MDIsIAotICAgIDB4YzIsIDB4NWEsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTIsIDB4MDIsIAotICAgIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIAotICAgIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWIsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIAotICAgIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTMsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTMsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIAotICAgIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWMsIAotICAgIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWMsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTQsIDB4ODAsIDB4MDIsIDB4YzIsIAotICAgIDB4NTQsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIAotICAgIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWQsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWQsIDB4YTUsIDB4ZmQsIDB4NWUsIAotICAgIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTUsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIAotICAgIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIAotICAgIDB4ZDIsIDB4NWUsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWUsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTYsIDB4ODAsIAotICAgIDB4MDIsIDB4YzIsIDB4NTYsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4N2MsIDB4MDIsIDB4N2UsIDB4MTQsIDB4ODAsIDB4MDAsIDB4NGMsIDB4MjAsIDB4MDksIDB4YjEsIAotICAgIDB4MDAsIDB4MTgsIDB4YTUsIDB4ZmQsIDB4NWUsIDB4NTAsIDB4MjAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NWYsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NWYsIDB4YTUsIAotICAgIDB4ZmQsIDB4NWUsIDB4NTAsIDB4ODAsIDB4NjgsIDB4MDQsIDB4ZDIsIDB4NTcsIDB4ODAsIDB4MDIsIDB4YzIsIDB4NTcsIDB4MDIsIDB4NjAsIDB4ZmYsIDB4NTQsIAotICAgIDB4ZjAsIDB4YzQsIDB4YTUsIDB4ZmYsIDB4YzQsIDB4YTUsIDB4NGYsIDB4NzUsIDB4MmYsIDB4OTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ZjUsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MjIsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MmMsIDB4MmQsIDB4Y2EsIDB4NzksIAotICAgIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDIsIDB4N2UsIAotICAgIDB4NjQsIDB4MDAsIDB4MDIsIDB4MDIsIDB4NjEsIDB4NWUsIDB4Y2EsIDB4MTksIDB4NWUsIDB4MjAsIDB4MDcsIDB4NGMsIDB4YTIsIDB4N2UsIDB4NzQsIDB4MmMsIAotICAgIDB4MmQsIDB4Y2EsIDB4NzksIDB4N2EsIDB4NzksIDB4YTAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4YjAsIDB4MGIsIDB4NzQsIDB4N2EsIDB4NzksIDB4NjAsIAotICAgIDB4MGIsIDB4NzQsIDB4ZGEsIDB4NzksIDB4N2UsIDB4MzAsIDB4MDMsIDB4N2UsIDB4NjQsIDB4MDAsIDB4MDMsIDB4MDIsIDB4NjEsIDB4NWUsIDB4ZDIsIDB4MDQsIAotICAgIDB4N2UsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4MmQsIDB4MjYsIDB4YmUsIDB4MjQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MmUsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzksIAotICAgIDB4N2UsIDB4NDQsIDB4MjgsIDB4MmQsIDB4N2UsIDB4NzksIDB4YTAsIDB4N2EsIDB4MDksIDB4YTAsIDB4MGIsIDB4MDQsIDB4MGIsIDB4NzQsIDB4YmQsIDB4MDQsIAotICAgIDB4NjgsIDB4MjMsIDB4YTUsIDB4ZGIsIDB4ZWYsIDB4N2EsIDB4MjcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MjUsIDB4MzAsIDB4MmQsIDB4MjYsIDB4N2EsIDB4MjUsIAotICAgIDB4MzAsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4ZGEsIDB4MTksIDB4YzIsIDB4ZDcsIDB4MjIsIDB4NzUsIDB4MmYsIDB4OWEsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4ZGEsIDB4MTksIDB4ZDIsIDB4ZDcsIDB4MjIsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4ODAsIDB4ZDcsIDB4NDgsIDB4ZjEsIDB4NDYsIDB4NjUsIDB4NDcsIAotICAgIDB4NWYsIDB4NDksIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDgsIDB4NTYsIDB4NDUsIDB4MmEsIDB4NDksIDB4NmUsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDksIDB4NzUsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGMsIDB4MWUsIDB4NDksIDB4OTIsIDB4NGEsIAotICAgIDB4OGMsIDB4NGMsIDB4NTcsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGIsIDB4ODMsIDB4NDUsIDB4MmEsIDB4NGMsIDB4OWIsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGMsIDB4YTIsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGYsIDB4NGIsIDB4NGMsIDB4YmYsIDB4NGQsIAotICAgIDB4YjksIDB4NGYsIDB4ODQsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGUsIDB4YjAsIDB4NDUsIDB4MmEsIDB4NGYsIDB4YzgsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NGYsIDB4Y2YsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTIsIDB4NzgsIDB4NGYsIDB4ZWMsIDB4NTAsIAotICAgIDB4ZTYsIDB4NTIsIDB4YjEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTEsIDB4ZGQsIDB4NDUsIDB4MmEsIDB4NTIsIDB4ZjUsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTIsIDB4ZmMsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTUsIDB4YTUsIDB4NTMsIDB4MTksIDB4NTQsIAotICAgIDB4MTMsIDB4NTUsIDB4ZGUsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTUsIDB4MGEsIDB4NDUsIDB4MmEsIDB4NTYsIDB4MjIsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTYsIDB4MjksIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTgsIDB4ZDIsIDB4NTYsIDB4NDYsIDB4NTcsIAotICAgIDB4NDAsIDB4NTksIDB4MGIsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTgsIDB4MzcsIDB4NDUsIDB4MmEsIDB4NTksIDB4NGYsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NTksIDB4NTYsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWIsIDB4ZmYsIDB4NTksIDB4NzMsIDB4NWEsIAotICAgIDB4NmQsIDB4NWMsIDB4MzgsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWIsIDB4NjQsIDB4NDUsIDB4MmEsIDB4NWMsIDB4N2MsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWMsIDB4ODMsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWYsIDB4MmMsIDB4NWMsIDB4YTAsIDB4NWQsIAotICAgIDB4OWEsIDB4NWYsIDB4NjUsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWUsIDB4OTEsIDB4NDUsIDB4MmEsIDB4NWYsIDB4YTksIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NWYsIDB4YjAsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIAotICAgIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4NDUsIDB4MmEsIDB4Y2EsIDB4YjgsIDB4NzUsIDB4MmYsIDB4MDIsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDMsIDB4MjAsIDB4ZTUsIDB4MjAsIDB4MzAsIDB4ZTAsIDB4MDUsIDB4MTIsIDB4NmIsIDB4MDUsIAotICAgIDB4ODAsIDB4MzAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4MTIsIDB4NjQsIDB4ODYsIDB4ODAsIDB4MjgsIDB4MzAsIDB4ZTIsIDB4MDUsIDB4MTIsIDB4NjMsIDB4ZjUsIAotICAgIDB4ODAsIDB4MjAsIDB4MzAsIDB4ZTMsIDB4MWQsIDB4MTIsIDB4NjUsIDB4NjEsIDB4ODAsIDB4MTgsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MzAsIDB4ZTEsIAotICAgIDB4MDMsIDB4MDIsIDB4NjcsIDB4NWYsIDB4MzAsIDB4ZTYsIDB4MDUsIDB4MTIsIDB4NmMsIDB4NmEsIDB4ODAsIDB4MDYsIDB4MjAsIDB4ZTIsIDB4MDMsIDB4MDIsIAotICAgIDB4MDAsIDB4ODAsIDB4ZGEsIDB4YjgsIDB4MzIsIDB4NzUsIDB4MmYsIDB4MTAsIDB4MTIsIDB4NzMsIDB4MzUsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MzksIDB4Y2EsIAotICAgIDB4NTksIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NmMsIDB4YWEsIDB4YmUsIDB4YjAsIDB4NDAsIAotICAgIDB4MjgsIDB4MGEsIDB4MTIsIDB4NjQsIDB4MjQsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTQsIDB4ODAsIDB4ZjEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzUsIDB4MmQsIDB4MzUsIDB4YmUsIDB4MzQsIDB4MDQsIDB4MDAsIDB4MzgsIDB4MmYsIAotICAgIDB4N2EsIDB4MzcsIDB4MDEsIDB4YzUsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzMsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDUsIDB4YmUsIDB4NDQsIDB4MmMsIDB4MmMsIAotICAgIDB4MzgsIDB4MjUsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzMsIDB4NzUsIDB4MmYsIDB4MTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4YjEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MTIsIDB4NjcsIDB4OWYsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MTIsIDB4NjYsIDB4MzAsIDB4MjIsIDB4NzUsIAotICAgIDB4MmYsIDB4MTYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ODAsIDB4ZjQsIDB4NzUsIDB4MmYsIDB4MTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4YjEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4OWUsIDB4NDQsIDB4MmMsIDB4MmQsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NjcsIDB4OWYsIDB4N2UsIDB4MzQsIDB4MjgsIDB4MmQsIAotICAgIDB4N2QsIDB4NTQsIDB4MmQsIDB4NDMsIDB4ODAsIDB4YmMsIDB4NzUsIDB4MmYsIDB4MTgsIDB4MTIsIDB4NzMsIDB4MzUsIDB4Y2EsIDB4MDksIDB4Y2EsIDB4MzksIAotICAgIDB4Y2EsIDB4MmIsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4NjMsIDB4OTEsIDB4MWEsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjAsIDB4ODAsIDB4OWMsIDB4YjYsIDB4NjAsIDB4MzgsIDB4NmMsIDB4YWEsIDB4N2UsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4OWQsIAotICAgIDB4MzUsIDB4NDAsIDB4MzcsIDB4N2EsIDB4MzcsIDB4MDEsIDB4Y2IsIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzcsIDB4N2QsIDB4NDMsIDB4MmQsIDB4NDUsIDB4YmUsIAotICAgIDB4NDQsIDB4MjgsIDB4MmMsIDB4MzgsIDB4M2IsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzcsIDB4N2QsIDB4NDUsIDB4MTIsIDB4NjgsIDB4ZDQsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MWUsIDB4MjAsIDB4ZTUsIDB4MTMsIDB4NzUsIDB4MmYsIDB4MTksIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4OTEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MzksIDB4ZGEsIDB4MDksIDB4MjIsIDB4ODAsIDB4MzQsIDB4MmQsIDB4NTMsIDB4NmQsIDB4MzMsIDB4NjAsIDB4MDIsIAotICAgIDB4ODAsIDB4YzEsIDB4N2UsIDB4MDQsIDB4MjQsIDB4MmQsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzksIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzcsIDB4ODAsIDB4ZTEsIAotICAgIDB4Y2EsIDB4NTksIDB4OWUsIDB4NDQsIDB4MjgsIDB4MmQsIDB4OWQsIDB4NTQsIDB4MTIsIDB4NjgsIDB4ZDQsIDB4N2UsIDB4MzQsIDB4MjQsIDB4MmQsIDB4N2QsIAotICAgIDB4NTQsIDB4MmQsIDB4NDMsIDB4N2EsIDB4NDcsIDB4MDEsIDB4YzcsIDB4MTIsIDB4NjgsIDB4ZDQsIDB4ZGEsIDB4NDksIDB4ODAsIDB4YjAsIDB4N2UsIDB4MGYsIAotICAgIDB4MmMsIDB4M2UsIDB4MGIsIDB4MGMsIDB4N2EsIDB4MGYsIDB4MmMsIDB4M2UsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NzQsIDB4NjAsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4ODAsIDB4YTUsIDB4N2UsIDB4MmYsIDB4MmMsIDB4NWUsIAotICAgIDB4MGIsIDB4MmMsIDB4N2EsIDB4MmYsIDB4MmMsIDB4NWUsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MWMsIDB4NzQsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4ODAsIDB4MWYsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIAotICAgIDB4MjIsIDB4NzUsIDB4MmYsIDB4MjgsIDB4MTIsIDB4NzMsIDB4MzUsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4NzQsIDB4NjAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NzAsIDB4ZGIsIDB4N2UsIAotICAgIDB4MGQsIDB4MzAsIDB4N2UsIDB4MWQsIDB4MzQsIDB4N2UsIDB4MmQsIDB4MzgsIDB4N2UsIDB4M2QsIDB4M2MsIDB4N2UsIDB4ODUsIDB4NDAsIDB4N2QsIDB4OTAsIAotICAgIDB4NGQsIDB4OTEsIDB4NGQsIDB4OTIsIDB4NGQsIDB4OTMsIDB4NGQsIDB4OTQsIDB4NGQsIDB4OTUsIDB4NGQsIDB4OTYsIDB4NGQsIDB4OTcsIDB4NGQsIDB4OTgsIAotICAgIDB4NjgsIDB4YjgsIDB4N2EsIDB4MTMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4MDMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4MzMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4MjMsIAotICAgIDB4OTEsIDB4MTcsIDB4N2EsIDB4NTMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4NDMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4NzMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4NjMsIAotICAgIDB4OTEsIDB4MTcsIDB4N2EsIDB4OTMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4ODMsIDB4OTEsIDB4MTcsIDB4MzAsIDB4NzMsIDB4MjIsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTcsIDB4N2EsIDB4YTMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4ZDMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4YzMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4ZjMsIDB4OTEsIAotICAgIDB4MTcsIDB4N2EsIDB4ZTMsIDB4OTEsIDB4MTcsIDB4N2QsIDB4NzgsIDB4N2EsIDB4ZjMsIDB4OTEsIDB4MTcsIDB4N2EsIDB4ZTMsIDB4OTEsIDB4MTcsIDB4N2UsIAotICAgIDB4YjMsIDB4OTEsIDB4MWUsIDB4MzAsIDB4ZTUsIDB4MDMsIDB4MDIsIDB4NjUsIDB4M2MsIDB4NzUsIDB4MmYsIDB4MjksIDB4MTIsIDB4NzMsIDB4MzUsIDB4MjAsIAotICAgIDB4NzMsIDB4MDgsIDB4NzUsIDB4MmYsIDB4MGEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ODAsIDB4MDYsIDB4NzUsIDB4MmYsIDB4MTIsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4NzQsIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4NmQsIDB4MDAsIDB4N2QsIDB4MTAsIDB4N2EsIDB4MGQsIDB4MzAsIDB4N2EsIDB4MGQsIDB4MzQsIAotICAgIDB4N2EsIDB4MGQsIDB4MzgsIDB4N2EsIDB4MGQsIDB4M2MsIDB4N2EsIDB4MDUsIDB4NDAsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIAotICAgIDB4N2UsIDB4MzcsIDB4MDEsIDB4YzUsIDB4NGQsIDB4MzMsIDB4NjgsIDB4M2IsIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzEsIDB4N2UsIDB4NTQsIDB4MmMsIDB4MmQsIAotICAgIDB4OWQsIDB4NTAsIDB4YmQsIDB4MzUsIDB4NDAsIDB4MDIsIDB4N2QsIDB4MzUsIDB4Y2EsIDB4MzksIDB4N2UsIDB4NjUsIDB4NGIsIDB4OTksIDB4NjQsIDB4ZGEsIAotICAgIDB4MzksIDB4N2UsIDB4MDcsIDB4MDEsIDB4YzUsIDB4OWQsIDB4MDMsIDB4N2EsIDB4MDcsIDB4MDEsIDB4YzUsIDB4MmUsIDB4MzcsIDB4MDEsIDB4YzEsIDB4N2EsIAotICAgIDB4MzcsIDB4MDEsIDB4YzEsIDB4YmUsIDB4MzQsIDB4MmMsIDB4MmMsIDB4MjgsIDB4YzcsIDB4N2UsIDB4MzQsIDB4MjgsIDB4MmQsIDB4N2EsIDB4MzcsIDB4MDEsIAotICAgIDB4YzEsIDB4ODAsIDB4YmQsIDB4MjIsIDB4NzUsIDB4MmYsIDB4NTMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTUsIDB4NGQsIDB4ODAsIDB4MTEsIDB4NzUsIAotICAgIDB4MmYsIDB4NTEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MGIsIDB4MDgsIDB4MTAsIDB4MGIsIDB4MDUsIDB4OWUsIDB4MzQsIDB4MDAsIDB4MDIsIDB4MjgsIDB4NGQsIAotICAgIDB4N2MsIDB4YjIsIDB4MjAsIDB4ZTcsIDB4MjcsIDB4NTQsIDB4MDcsIDB4MjMsIDB4MGEsIDB4MmIsIDB4NDksIDB4MjIsIDB4MzksIDB4MWUsIDB4N2MsIDB4YjIsIAotICAgIDB4NTQsIDB4NzgsIDB4MDMsIDB4MDMsIDB4MDMsIDB4N2MsIDB4MmIsIDB4OWQsIDB4MTMsIDB4NDAsIDB4MWEsIDB4NjgsIDB4MTIsIDB4N2EsIDB4MTUsIDB4NGQsIAotICAgIDB4N2EsIDB4MjUsIDB4NGYsIDB4N2UsIDB4NjQsIDB4NjcsIDB4MDksIDB4N2EsIDB4NjUsIDB4NGIsIDB4ODksIDB4MjQsIDB4MDIsIDB4NjcsIDB4MTcsIDB4N2UsIAotICAgIDB4NjQsIDB4NjYsIDB4N2YsIDB4ODAsIDB4ZjIsIDB4MmQsIDB4MTMsIDB4OWQsIDB4MzEsIDB4Y2EsIDB4MzksIDB4N2QsIDB4MzEsIDB4MmQsIDB4MTAsIDB4Y2EsIAotICAgIDB4MTksIDB4Y2EsIDB4MjksIDB4OTksIDB4MjQsIDB4ZGEsIDB4MjksIDB4ZGEsIDB4MDksIDB4ZGEsIDB4MzksIDB4ODAsIDB4YTIsIDB4N2EsIDB4MTUsIDB4NGQsIAotICAgIDB4N2UsIDB4NjQsIDB4NjYsIDB4ZjUsIDB4NGQsIDB4MzMsIDB4NzgsIDB4MDksIDB4N2MsIDB4YjIsIDB4MjAsIDB4ZTcsIDB4MmEsIDB4N2UsIDB4NjQsIDB4NjYsIAotICAgIDB4NzQsIDB4N2EsIDB4NjUsIDB4NGIsIDB4MjIsIDB4NzUsIDB4MmYsIDB4NTIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MjEsIDB4NGQsIDB4N2UsIDB4MDksIAotICAgIDB4MzAsIDB4MGIsIDB4MDQsIDB4MWIsIDB4MzQsIDB4NzgsIDB4ODksIDB4ODAsIDB4ZDQsIDB4NzUsIDB4MmYsIDB4NTQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIAotICAgIDB4MTUsIDB4NGQsIDB4N2UsIDB4MjUsIDB4NGYsIDB4ODAsIDB4OTAsIDB4NWUsIDB4MjAsIDB4MDcsIDB4NTQsIDB4NzgsIDB4N2UsIDB4NDQsIDB4NjcsIDB4N2QsIAotICAgIDB4MzAsIDB4ZTYsIDB4MTYsIDB4NGQsIDB4MzMsIDB4NjgsIDB4MjYsIDB4MWIsIDB4MzQsIDB4N2UsIDB4MDksIDB4NDAsIDB4MGIsIDB4MDQsIDB4N2UsIDB4NDQsIAotICAgIDB4MzQsIDB4ZmEsIDB4MjAsIDB4ZTMsIDB4MDQsIDB4N2UsIDB4NDQsIDB4NjcsIDB4ODUsIDB4Y2EsIDB4MDksIDB4Y2EsIDB4MzksIDB4OTksIDB4NDQsIDB4ZGEsIAotICAgIDB4MzksIDB4ZGEsIDB4MDksIDB4N2UsIDB4NjQsIDB4NjYsIDB4N2YsIDB4NGQsIDB4MzMsIDB4NjgsIDB4YTYsIDB4ODksIDB4NjQsIDB4N2EsIDB4MTUsIDB4NGQsIAotICAgIDB4ZjUsIDB4NGYsIDB4N2UsIDB4NjQsIDB4NjcsIDB4NTgsIDB4ODAsIDB4OTksIDB4N2UsIDB4MTUsIDB4NGQsIDB4ZTUsIDB4NGYsIDB4ODAsIDB4YzQsIDB4YzAsIAotICAgIDB4ZDAsIDB4YzAsIDB4ZDEsIDB4YzAsIDB4ZTAsIDB4Y2EsIDB4MTksIDB4NzUsIDB4MmYsIDB4ZmUsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MTQsIDB4MDAsIAotICAgIDB4NTMsIDB4MDIsIDB4NDAsIDB4NTIsIDB4ZGEsIDB4MTksIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ZDEsIDB4ZDAsIDB4ZDAsIDB4MzIsIDB4MDMsIDB4YTUsIDB4Y2IsIAotICAgIDB4MTksIDB4YjEsIDB4ODAsIDB4MDAsIDB4MjIsIDB4MjIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIDB4ZTEsIDB4N2UsIDB4YTAsIDB4MDIsIDB4YTQsIAotICAgIDB4N2UsIDB4MDQsIDB4NjgsIDB4YjEsIDB4OWQsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MjgsIDB4N2EsIDB4YjMsIDB4OTUsIDB4MDAsIDB4ODksIDB4MDQsIDB4Y2EsIAotICAgIDB4MjksIDB4YjQsIDB4ODAsIDB4ZTIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIDB4ZTEsIDB4N2UsIDB4MDAsIDB4MjgsIDB4N2EsIDB4MDMsIDB4OTUsIAotICAgIDB4MDAsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4OTUsIDB4MDAsIDB4ZGEsIDB4MjksIDB4MjIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIAotICAgIDB4ZTEsIDB4N2UsIDB4YTAsIDB4MDIsIDB4YTQsIDB4N2UsIDB4MDQsIDB4NjksIDB4ZTYsIDB4OWQsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MzgsIDB4N2EsIDB4YjMsIAotICAgIDB4OTUsIDB4MDAsIDB4ODksIDB4MDQsIDB4Y2EsIDB4MjksIDB4YjQsIDB4ODAsIDB4ZTIsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIDB4ZTEsIDB4N2UsIAotICAgIDB4MDAsIDB4MzgsIDB4N2EsIDB4MDMsIDB4OTUsIDB4MDAsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4OTUsIDB4MDAsIDB4ZGEsIDB4MjksIDB4MjIsIAotICAgIDB4Y2EsIDB4MjksIDB4Y2EsIDB4MTksIDB4Y2EsIDB4NTgsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIDB4ZTEsIDB4ZGEsIDB4NTgsIDB4N2UsIDB4NTQsIAotICAgIDB4MDIsIDB4MjAsIDB4OWMsIDB4YjUsIDB4YTQsIDB4N2UsIDB4NTAsIDB4MzAsIDB4NWUsIDB4MjAsIDB4MDcsIDB4MmMsIDB4NTIsIDB4N2EsIDB4NTMsIDB4OTUsIAotICAgIDB4MDAsIDB4MmUsIDB4NTQsIDB4NmEsIDB4MTcsIDB4ODksIDB4NTQsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIAotICAgIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4OTUsIDB4MDAsIDB4ZGEsIDB4MTksIAotICAgIDB4ZGEsIDB4MjksIDB4MjIsIDB4Y2EsIDB4MTksIDB4Y2EsIDB4NTgsIDB4N2UsIDB4MjQsIDB4MDAsIDB4MDAsIDB4N2YsIDB4ZTEsIDB4ZGEsIDB4NTgsIDB4N2UsIAotICAgIDB4NTQsIDB4MDIsIDB4MzgsIDB4OWMsIDB4YjUsIDB4YTQsIDB4N2UsIDB4NTAsIDB4MjAsIDB4NWUsIDB4MjAsIDB4MDcsIDB4MmMsIDB4NTIsIDB4N2EsIDB4NTMsIAotICAgIDB4OTUsIDB4MDAsIDB4MmUsIDB4NTQsIDB4NmEsIDB4ODgsIDB4ODksIDB4NTQsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIAotICAgIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4OTUsIDB4MDAsIDB4ZGEsIAotICAgIDB4MTksIDB4MjIsIDB4MDIsIDB4NmIsIDB4YTgsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIAotICAgIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4MmMsIAotICAgIDB4N2YsIDB4YjQsIDB4MDAsIDB4MDIsIDB4ODAsIDB4MWMsIDB4YjQsIDB4MDEsIDB4MTksIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NTQsIDB4MTQsIDB4NjgsIAotICAgIDB4MDUsIDB4MTIsIDB4NmIsIDB4NmMsIDB4ODAsIDB4MjMsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MWMsIDB4MTIsIDB4NmMsIDB4YWEsIAotICAgIDB4ODAsIDB4MTcsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MzAsIDB4ZTUsIDB4MDUsIDB4MTIsIDB4NmMsIDB4YWEsIDB4ODAsIDB4MGIsIDB4N2UsIDB4YjMsIAotICAgIDB4OTEsIDB4MTQsIDB4NTQsIDB4MTQsIDB4NjgsIDB4MDMsIDB4MTIsIDB4NmIsIDB4NmMsIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIDB4ZGEsIAotICAgIDB4NWIsIDB4ZGEsIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4MjAsIDB4ZTQsIDB4MTksIDB4NzUsIAotICAgIDB4MmYsIDB4MGEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2UsIDB4NzAsIDB4MGEsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2YsIDB4YjQsIAotICAgIDB4MDEsIDB4MWYsIDB4MDIsIDB4NmMsIDB4MDQsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4NzUsIDB4MmYsIDB4MGIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4MTQsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2YsIDB4YjQsIDB4MDIsIDB4MGMsIDB4MTIsIDB4NmIsIDB4YjQsIDB4MDIsIDB4NmIsIAotICAgIDB4YTgsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4N2UsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MDMsIDB4MmMsIDB4N2YsIDB4N2EsIAotICAgIDB4MDMsIDB4MmMsIDB4ODAsIDB4MjIsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzYsIDB4NTQsIDB4NjAsIDB4NjAsIDB4MDUsIDB4YjQsIDB4NDAsIDB4MWUsIDB4ODAsIAotICAgIDB4MWMsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDUsIDB4MTUsIDB4NzUsIDB4MmYsIDB4NzEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIAotICAgIDB4MmMsIDB4NzksIDB4N2UsIDB4YTAsIDB4MDEsIDB4N2EsIDB4YTMsIDB4OTEsIDB4MDYsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDcsIDB4MjIsIDB4NzQsIDB4MDAsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4YmUsIDB4NTcsIDB4MmMsIDB4N2MsIDB4MjgsIAotICAgIDB4MDQsIDB4N2UsIDB4NTcsIDB4MmMsIDB4N2MsIDB4N2EsIDB4MGYsIDB4MmMsIDB4ODIsIDB4N2EsIDB4NTcsIDB4MmMsIDB4ODYsIDB4NzQsIDB4MTAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MTIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MWEsIDB4NzAsIDB4NTMsIAotICAgIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjAsIDB4ZTQsIDB4NGMsIDB4N2UsIDB4ZWYsIDB4MmMsIDB4ODIsIDB4N2UsIDB4ZjcsIDB4MmMsIDB4ODYsIDB4N2UsIAotICAgIDB4MDcsIDB4MmMsIDB4ODYsIDB4NGQsIDB4MDAsIDB4NjgsIDB4MjEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4ZTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTcsIDB4YTMsIAotICAgIDB4YTUsIDB4MDgsIDB4MWIsIDB4ZjQsIDB4NjgsIDB4MDYsIDB4YTUsIDB4YjgsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MTksIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4MmMsIDB4N2YsIDB4YmUsIDB4MDAsIDB4MTAsIDB4NjgsIDB4MGQsIDB4N2UsIDB4YjAsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4N2YsIDB4NzQsIAotICAgIDB4ODAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWUsIDB4N2EsIDB4ZWYsIDB4MmMsIDB4ODIsIDB4N2EsIDB4ZjcsIDB4MmMsIDB4ODYsIDB4NzUsIDB4MmYsIDB4MDYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4Y2EsIDB4MGIsIDB4Y2EsIDB4MWIsIDB4Y2EsIDB4MmIsIAotICAgIDB4Y2EsIDB4M2IsIDB4Y2EsIDB4NGIsIDB4Y2EsIDB4NWIsIDB4Y2EsIDB4NmIsIDB4Y2EsIDB4N2IsIDB4Y2EsIDB4ZWIsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4N2UsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4MDEsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4MTIsIDB4NmQsIDB4MTksIDB4ZGEsIDB4ZWIsIDB4ZGEsIDB4N2IsIDB4ZGEsIDB4NmIsIDB4ZGEsIDB4NWIsIDB4ZGEsIAotICAgIDB4NGIsIDB4ZGEsIDB4M2IsIDB4ZGEsIDB4MmIsIDB4ZGEsIDB4MWIsIDB4ZGEsIDB4MGIsIDB4MjIsIDB4NzUsIDB4MmYsIDB4MDMsIDB4MTIsIDB4NzMsIDB4MzUsIAotICAgIDB4N2UsIDB4YjMsIDB4MmMsIDB4ODAsIDB4YjQsIDB4MDIsIDB4MTEsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4ODAsIDB4N2EsIDB4YjMsIDB4MmMsIAotICAgIDB4N2YsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4MjIsIDB4YjQsIDB4MDEsIDB4NDYsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MjAsIAotICAgIDB4ZTYsIDB4NDIsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MWEsIDB4N2MsIDB4MzIsIDB4N2UsIDB4MTMsIDB4MmMsIDB4ODEsIDB4MmMsIDB4MjEsIDB4N2EsIDB4MjMsIAotICAgIDB4MmMsIDB4ODEsIDB4N2UsIDB4MDAsIDB4MDAsIDB4MmUsIDB4MDQsIDB4MmMsIDB4ODgsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTYsIDB4N2EsIDB4MDksIDB4YjAsIAotICAgIDB4MGIsIDB4MDQsIDB4YTUsIDB4ZGIsIDB4ZjQsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIDB4NzUsIDB4MmYsIDB4NzAsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4ODEsIDB4N2UsIDB4YTMsIDB4MmMsIDB4N2QsIDB4YmMsIDB4YWIsIDB4NzgsIDB4MDMsIDB4MTIsIDB4NmQsIDB4YjksIAotICAgIDB4MjIsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4ZGEsIDB4NTksIDB4MDIsIDB4NmMsIDB4N2MsIDB4NzQsIDB4ZTAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIAotICAgIDB4MDMsIDB4OTEsIDB4MTAsIDB4N2UsIDB4MTMsIDB4OTEsIDB4MTEsIDB4N2UsIDB4MzMsIDB4OTEsIDB4MTIsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MTMsIDB4N2UsIAotICAgIDB4NTMsIDB4OTEsIDB4MTQsIDB4N2UsIDB4NDMsIDB4OTEsIDB4MTUsIDB4N2UsIDB4NzMsIDB4OTEsIDB4MTYsIDB4N2UsIDB4NjMsIDB4OTEsIDB4MTcsIDB4N2EsIAotICAgIDB4MGYsIDB4MmMsIDB4NzYsIDB4N2EsIDB4MWYsIDB4MmMsIDB4N2EsIDB4NzUsIDB4MmYsIDB4MDQsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MDEsIDB4MmYsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIAotICAgIDB4MzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NTEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4NjEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4NzEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDQsIDB4MTIsIDB4NmQsIDB4OGQsIDB4MjIsIDB4NmQsIDB4MDAsIDB4N2UsIAotICAgIDB4MTQsIDB4MDEsIDB4MDIsIDB4N2EsIDB4MDcsIDB4MmMsIDB4ODYsIDB4N2EsIDB4MDMsIDB4MmMsIDB4ODEsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzYsIDB4MjAsIAotICAgIDB4ZTcsIDB4MGYsIDB4N2EsIDB4MjMsIDB4MmMsIDB4ODAsIDB4N2EsIDB4MzMsIDB4MmMsIDB4N2YsIDB4YmUsIDB4MDcsIDB4MmMsIDB4N2MsIDB4NjgsIDB4MDksIAotICAgIDB4MjIsIDB4N2EsIDB4MzMsIDB4MmMsIDB4ODAsIDB4N2EsIDB4MjMsIDB4MmMsIDB4N2YsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzYsIDB4NTQsIDB4ZTMsIDB4MjMsIAotICAgIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDIsIDB4ZDIsIDB4ZTUsIDB4MzAsIDB4ZTcsIDB4MDIsIDB4ZDIsIDB4ZTQsIDB4MzAsIDB4ZTUsIDB4MDYsIDB4MzAsIDB4ZTQsIAotICAgIDB4MDMsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4NTQsIDB4M2UsIDB4ZjUsIDB4ZjAsIDB4MDMsIDB4NTQsIDB4MWYsIDB4YzMsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4NmQsIAotICAgIDB4ZTUsIDB4NzUsIDB4ODQsIDB4ZmYsIDB4NzMsIDB4MDIsIDB4NmYsIDB4YTAsIDB4MDIsIDB4NmUsIDB4MmQsIDB4MDIsIDB4NzAsIDB4MzksIDB4MDIsIDB4NzAsIAotICAgIDB4NTQsIDB4MDIsIDB4NmYsIDB4MzcsIDB4MDIsIDB4NmUsIDB4YzIsIDB4MDIsIDB4NzAsIDB4ODUsIDB4MDIsIDB4NzAsIDB4ODUsIDB4MDIsIDB4NzAsIDB4ODgsIAotICAgIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIAotICAgIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4ODgsIDB4MDIsIDB4NzAsIDB4OGUsIDB4MDIsIDB4NzEsIDB4NjAsIDB4MDIsIDB4NzAsIDB4OGIsIDB4MDIsIDB4NzAsIAotICAgIDB4OGIsIDB4MDIsIDB4NzAsIDB4OGIsIDB4MDIsIDB4NzAsIDB4OGIsIDB4MDIsIDB4NzAsIDB4OGIsIDB4MDIsIDB4NzAsIDB4OGIsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDYsIDB4MmEsIAotICAgIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzgsIDB4NjAsIDB4NzksIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmMsIDB4NzksIDB4N2UsIDB4MTcsIDB4MmMsIDB4N2EsIAotICAgIDB4NzUsIDB4MmYsIDB4NzIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MTEsIDB4MmYsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4MTIsIDB4NzIsIDB4MzcsIDB4NDAsIDB4NTgsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4YjQsIDB4MDgsIDB4MWMsIDB4NzUsIDB4MmYsIDB4NzQsIAotICAgIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2EsIAotICAgIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDEsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4YjQsIDB4MDAsIDB4MzMsIDB4NzUsIDB4MmYsIDB4NzUsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIAotICAgIDB4MzAsIDB4ZTAsIDB4MDcsIDB4NzQsIDB4MDIsIDB4N2EsIDB4MGIsIDB4YjAsIDB4ODAsIDB4MDUsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4MGIsIAotICAgIDB4MTQsIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDIsIDB4ZGEsIDB4MGIsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4MDIsIAotICAgIDB4NzEsIDB4ZjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIAotICAgIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDAsIDB4NWYsIDB4NzUsIDB4MmYsIDB4NzYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2IsIDB4NTQsIAotICAgIDB4MGYsIDB4YjQsIDB4MDIsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIAotICAgIDB4MGYsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2IsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIDB4N2UsIDB4YjAsIDB4MjAsIAotICAgIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTEsIDB4MzAsIDB4ZTAsIDB4MDQsIDB4NzQsIDB4MDEsIDB4ODAsIDB4MDIsIDB4NzQsIAotICAgIDB4MDAsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIDB4MGIsIDB4N2EsIDB4MGIsIDB4YjAsIDB4MGIsIDB4MTQsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4N2UsIDB4NTQsIDB4MDAsIDB4MDIsIDB4ZGEsIAotICAgIDB4MGIsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4N2UsIDB4YjMsIDB4MmMsIDB4N2IsIDB4NTQsIDB4MGYsIDB4YjQsIDB4MDIsIDB4MDUsIAotICAgIDB4N2UsIDB4YjAsIDB4NjAsIDB4ODAsIDB4MTcsIDB4YjQsIDB4MDAsIDB4MDUsIDB4N2UsIDB4YjAsIDB4MDAsIDB4ODAsIDB4MGYsIDB4N2UsIDB4YjMsIDB4MmMsIAotICAgIDB4N2IsIDB4MjAsIDB4ZTcsIDB4MDUsIDB4N2UsIDB4YjAsIDB4NDAsIDB4ODAsIDB4MDMsIDB4N2UsIDB4YjAsIDB4MjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIAotICAgIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzksIDB4YjQsIDB4MDAsIDB4MjYsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDEsIDB4MGUsIDB4NzUsIDB4MmYsIAotICAgIDB4NzcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4ODAsIDB4MWIsIDB4YjQsIDB4MDMsIDB4MGUsIDB4NzUsIAotICAgIDB4MmYsIDB4NzgsIDB4MTIsIDB4NzMsIDB4MzUsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTEsIDB4ODAsIDB4MGEsIDB4NzQsIDB4MDAsIDB4N2EsIAotICAgIDB4YjMsIDB4OTEsIDB4MDAsIDB4MTIsIDB4NzEsIDB4ZjIsIDB4MjIsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4MDIsIDB4NmIsIDB4ZGUsIAotICAgIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDksIDB4MWYsIDB4NzUsIDB4MmYsIDB4NzksIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIAotICAgIDB4NzksIDB4YmUsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4NjgsIDB4MGQsIDB4Y2EsIDB4YjgsIDB4MTIsIDB4NDMsIDB4NzksIDB4ZGEsIDB4YjgsIDB4NTAsIDB4NzYsIAotICAgIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjEsIDB4ODAsIDB4NmQsIDB4YjQsIDB4MDUsIDB4MDgsIDB4NzUsIDB4MmYsIDB4N2EsIDB4MTIsIDB4NzMsIDB4MzUsIDB4ODAsIAotICAgIDB4NjIsIDB4YjQsIDB4MDMsIDB4MTksIDB4NzUsIDB4MmYsIDB4N2IsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzksIDB4YjQsIDB4MDEsIAotICAgIDB4NTUsIDB4N2UsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4NDQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4NDYsIDB4YjQsIDB4MDEsIDB4MTksIAotICAgIDB4NzUsIDB4MmYsIDB4N2MsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzksIDB4YjQsIDB4MDEsIDB4MzksIDB4N2UsIDB4YjMsIDB4M2YsIAotICAgIDB4ZjIsIDB4NTQsIDB4ZmUsIDB4N2EsIDB4YjMsIDB4M2YsIDB4ZjIsIDB4ODAsIDB4MmEsIDB4YjQsIDB4MDcsIDB4MmEsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzgsIAotICAgIDB4NjAsIDB4MjQsIDB4N2MsIDB4MGIsIDB4N2UsIDB4MTMsIDB4MmMsIDB4NzksIDB4N2UsIDB4MTcsIDB4MmMsIDB4N2EsIDB4NzUsIDB4MmYsIDB4NzMsIDB4MTIsIAotICAgIDB4NzMsIDB4MzUsIDB4N2EsIDB4MDEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NzIsIAotICAgIDB4NzEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4NmIsIDB4ZGUsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MGIsIDB4ZjYsIAotICAgIDB4NzUsIDB4MmYsIDB4N2QsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzksIDB4N2UsIDB4YTMsIDB4MmMsIDB4N2IsIDB4NGMsIDB4YWIsIAotICAgIDB4NzgsIDB4ZTQsIDB4ODAsIDB4ZGYsIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIAotICAgIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIDB4YjQsIDB4MGEsIDB4Y2YsIDB4NzUsIDB4MmYsIDB4N2UsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjMsIDB4MmMsIAotICAgIDB4NzksIDB4NzAsIDB4YzMsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGIsIDB4YjAsIDB4N2UsIDB4NTQsIAotICAgIDB4MDAsIDB4MDEsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4MDIsIDB4NzEsIDB4ZjIsIDB4N2UsIDB4YjMsIAotICAgIDB4MmMsIDB4NzcsIDB4YjQsIDB4MDQsIDB4MjAsIDB4NzUsIDB4MmYsIDB4YzMsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIAotICAgIDB4MTcsIDB4MmMsIDB4NzgsIDB4N2UsIDB4MTgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MWMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NDcsIDB4MmMsIDB4N2MsIDB4MTIsIAotICAgIDB4NzMsIDB4NDEsIDB4MDIsIDB4NzEsIDB4NWEsIDB4YjQsIDB4MDYsIDB4NDIsIDB4NzUsIDB4MmYsIDB4YzEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4NTgsIAotICAgIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2QsIDB4Y2EsIDB4N2UsIDB4ZDcsIDB4MmMsIDB4NzgsIDB4N2UsIDB4NzgsIDB4MmMsIDB4ODgsIAotICAgIDB4N2EsIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MmMsIDB4N2MsIDB4NzUsIDB4MmYsIDB4YzEsIDB4MTIsIDB4NzMsIDB4MzUsIDB4YzAsIDB4YTgsIAotICAgIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4NzMsIDB4N2EsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIAotICAgIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4NDAsIDB4NjUsIDB4ODAsIDB4NjAsIDB4YjQsIDB4MDAsIDB4MjQsIDB4YzIsIDB4YWYsIDB4N2UsIAotICAgIDB4YjAsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4MmMsIDB4MzUsIDB4MTIsIDB4NmIsIDB4ZGUsIDB4ZTQsIDB4OGQsIDB4ZWYsIAotICAgIDB4OGQsIDB4ZWYsIDB4OGQsIDB4ZWYsIDB4ZDUsIDB4ZTAsIDB4ZjcsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MDIsIDB4ZmYsIDB4Y2EsIDB4MDYsIDB4MDAsIDB4MDAsIAotICAgIDB4MzIsIDB4YjQsIDB4MDksIDB4MjAsIDB4NzQsIDB4MDMsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDYsIDB4N2UsIDB4MjMsIDB4OTEsIDB4MDcsIDB4N2UsIDB4NTcsIAotICAgIDB4MmMsIDB4NzgsIDB4NGQsIDB4NTUsIDB4NjgsIDB4MDUsIDB4NGUsIDB4MjAsIDB4MDIsIDB4ODAsIDB4MDMsIDB4NWUsIDB4MjAsIDB4ZmQsIDB4N2EsIDB4MjMsIAotICAgIDB4OTEsIDB4MDcsIDB4ODAsIDB4MTYsIDB4YjQsIDB4MDcsIDB4MTYsIDB4YzIsIDB4YWYsIDB4N2UsIDB4MDcsIDB4MmMsIDB4N2EsIDB4N2UsIDB4MTcsIDB4MmMsIAotICAgIDB4NzgsIDB4YzAsIDB4ZDEsIDB4Y2EsIDB4MTgsIDB4Y2EsIDB4MzgsIDB4Y2EsIDB4MjgsIDB4MzIsIDB4MDIsIDB4NmIsIDB4ZGUsIDB4MDIsIDB4NzEsIDB4ZjIsIAotICAgIDB4NzQsIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NjAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MWMsIDB4N2UsIDB4YjMsIDB4MmMsIDB4NzcsIAotICAgIDB4YjQsIDB4MDMsIDB4MTUsIDB4NzUsIDB4MmYsIDB4YzIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4MDQsIDB4MDAsIDB4MDEsIDB4N2UsIDB4MTcsIDB4MmMsIAotICAgIDB4NzgsIDB4N2UsIDB4NTcsIDB4MmMsIDB4N2MsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4YjQsIDB4MDUsIDB4NDEsIDB4NzUsIDB4MmYsIDB4YzAsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIAotICAgIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4MjQsIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzcsIDB4MmMsIDB4NzgsIDB4N2UsIDB4NDcsIDB4MmMsIDB4N2MsIAotICAgIDB4MTIsIDB4NzMsIDB4NDEsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4N2UsIDB4MDgsIDB4MmMsIAotICAgIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NTcsIDB4MmMsIDB4N2MsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4YjQsIDB4MDEsIDB4MjAsIDB4N2UsIAotICAgIDB4MDAsIDB4MDAsIDB4N2UsIDB4MTAsIDB4MDEsIDB4NzUsIDB4MmYsIDB4NzIsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2EsIDB4MDEsIDB4MmYsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4N2EsIDB4MTEsIDB4MmYsIDB4MTIsIDB4NzMsIDB4MzUsIDB4MTIsIDB4NzIsIDB4MzcsIDB4NDAsIDB4MDMsIDB4MDIsIDB4NmIsIDB4ZWIsIDB4MDIsIAotICAgIDB4NzEsIDB4ZjIsIDB4NzUsIDB4MmYsIDB4MDcsIDB4MTIsIDB4NzMsIDB4MzUsIDB4N2UsIDB4YjAsIDB4MDIsIDB4N2EsIDB4YjMsIDB4OTAsIDB4MDAsIDB4NzQsIAotICAgIDB4MDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MDAsIDB4NzQsIDB4NDAsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIAotICAgIDB4MTEsIDB4N2UsIDB4YjMsIDB4OTEsIDB4MTUsIDB4NTQsIDB4NjAsIDB4YmUsIDB4YjAsIDB4NDAsIDB4NjgsIDB4MDgsIDB4NzQsIDB4MjAsIDB4N2EsIDB4YjMsIAotICAgIDB4OTEsIDB4MTUsIDB4ODAsIDB4ZWQsIDB4NzQsIDB4MDEsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTIsIDB4NzQsIDB4MDQsIDB4N2EsIDB4YjMsIDB4OTEsIDB4MTQsIAotICAgIDB4NzQsIDB4ZmYsIDB4N2EsIDB4YjMsIDB4MmMsIDB4N2UsIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIAotICAgIDB4OTQsIDB4MDAsIDB4MTIsIDB4NzIsIDB4YmUsIDB4NDAsIDB4MWYsIDB4N2UsIDB4MDgsIDB4MmMsIDB4ODgsIDB4N2EsIDB4MGMsIDB4MDAsIDB4MDAsIDB4Y2EsIAotICAgIDB4MGIsIDB4Y2EsIDB4NDksIDB4MTIsIDB4NzMsIDB4NDEsIDB4ZGEsIDB4NTksIDB4ZGEsIDB4MGIsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIDB4N2EsIDB4NDMsIAotICAgIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIAotICAgIDB4MjIsIDB4YzAsIDB4YTgsIDB4YzIsIDB4YWYsIDB4N2UsIDB4NDAsIDB4MDEsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4MTIsIDB4NzIsIDB4YmUsIDB4NDAsIAotICAgIDB4MzEsIDB4N2UsIDB4NTgsIDB4MDAsIDB4MDAsIDB4N2EsIDB4NWMsIDB4MDAsIDB4ZmUsIDB4N2YsIDB4NjEsIDB4N2UsIDB4NzgsIDB4MmMsIDB4ODgsIDB4N2EsIAotICAgIDB4N2MsIDB4MDAsIDB4MDAsIDB4N2UsIDB4NzcsIDB4MmMsIDB4N2MsIDB4YmQsIDB4NzQsIDB4NzgsIDB4MTcsIDB4NzUsIDB4MmYsIDB4YzEsIDB4MTIsIDB4NzMsIAotICAgIDB4MzUsIDB4MTIsIDB4NzMsIDB4N2EsIDB4NDAsIDB4MGMsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIAotICAgIDB4YzMsIDB4MjIsIDB4N2UsIDB4NDMsIDB4MmMsIDB4MzUsIDB4N2EsIDB4NDMsIDB4OTQsIDB4MDAsIDB4ZDAsIDB4YTgsIDB4ZDMsIDB4MjIsIDB4N2UsIDB4MjQsIAotICAgIDB4MDAsIDB4ZmUsIDB4N2UsIDB4MzQsIDB4N2YsIDB4Y2EsIDB4MGIsIDB4MWEsIDB4NTAsIDB4YzUsIDB4ZjAsIDB4N2QsIDB4NjIsIDB4N2QsIDB4NzUsIDB4N2QsIAotICAgIDB4ODcsIDB4N2UsIDB4MzQsIDB4N2YsIDB4YzIsIDB4N2UsIDB4MWIsIDB4YjAsIDB4N2UsIDB4MzQsIDB4N2YsIDB4MDMsIDB4YjQsIDB4MDEsIDB4MDQsIDB4N2UsIAotICAgIDB4MzQsIDB4N2YsIDB4Y2MsIDB4N2UsIDB4MWIsIDB4YjAsIDB4YmMsIDB4MGIsIDB4NTAsIDB4NDksIDB4M2UsIDB4MDAsIDB4M2UsIDB4MDAsIDB4MGEsIDB4NTAsIAotICAgIDB4MmQsIDB4NzUsIDB4MGIsIDB4M2EsIDB4MzAsIDB4NjksIDB4NTMsIDB4MDAsIDB4MDIsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmMsIAotICAgIDB4MWIsIDB4NTAsIDB4MzAsIDB4M2UsIDB4MTAsIDB4M2UsIDB4MTAsIDB4MGEsIDB4NTEsIDB4MmQsIDB4MzUsIDB4NjksIDB4NDEsIDB4MDAsIDB4MDIsIDB4MGIsIAotICAgIDB4MWEsIDB4MzAsIDB4YmQsIDB4MzgsIDB4NTAsIDB4MDIsIDB4MmQsIDB4MzgsIDB4YmUsIDB4NDQsIDB4ZmYsIDB4ZmYsIDB4NzgsIDB4MDUsIDB4N2UsIDB4MWIsIAotICAgIDB4OTAsIDB4MGEsIDB4NDksIDB4NGQsIDB4NDQsIDB4NjgsIDB4MGMsIDB4YmUsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4MjgsIDB4MDQsIDB4N2UsIDB4NDQsIDB4MDAsIAotICAgIDB4ZmYsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIAotCi0vLyBTZWdtZW50ICMxNiwgU3RhcnQgQWRkcmVzcyAwMGZmN2ZjNiwgTGVuZ3RoIDQKLTB4ZmYsMHgwMCwweGM2LDB4N2YsMHgwNCwweDAwLAotICAgIDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIAotCi0vLyBTZWdtZW50ICMxNywgU3RhcnQgQWRkcmVzcyAwMGZmNzMzNSwgTGVuZ3RoIDMyOAotMHhmZiwweDAwLDB4MzUsMHg3MywweDQ4LDB4MDEsCi0gICAgMHhjYSwgMHgwOCwgMHg3ZSwgMHgwMSwgMHgyZiwgMHg3YSwgMHgwMywgMHgzZiwgMHhmMCwgMHhkYSwgMHgwOCwgMHgyMiwgMHg3ZSwgMHgxYiwgMHhjMCwgMHg3YSwgCi0gICAgMHgwYiwgMHhjMCwgMHgwYiwgMHgxNCwgMHgwYiwgMHgzNCwgMHgxYiwgMHg0NCwgMHg3OCwgMHhmMiwgMHgyMiwgMHg3ZiwgMHg2ZiwgMHg3ZiwgMHhmMCwgMHgxYiwgCi0gICAgMHhmYywgMHg3YywgMHg1NCwgMHg3ZCwgMHgzMiwgMHg4MCwgMHgwOCwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHhjYSwgMHgxYiwgMHg5ZSwgCi0gICAgMHg0NCwgMHgwMCwgMHgxMCwgMHg1MCwgMHhmMiwgMHgyZSwgMHg0NCwgMHgwMCwgMHgxMCwgMHg2OCwgMHgwNiwgMHhjYSwgMHg0OCwgMHgxYiwgMHg0NCwgMHg3OCwgCi0gICAgMHhmYSwgMHg3ZiwgMHhmNiwgMHg4OSwgMHhlNCwgMHhjYSwgMHg2YiwgMHg1ZSwgMHhkNCwgMHgwMCwgMHgzZiwgMHg2OCwgMHgyMCwgMHg3ZSwgMHg4NCwgMHgwMCwgCi0gICAgMHg0MCwgMHg5ZCwgMHg4ZCwgMHhkYSwgMHg2YiwgMHhiZCwgMHg4NywgMHgzOCwgMHgxNiwgMHhjYSwgMHg3OSwgMHg3ZCwgMHg3OCwgMHgxMiwgMHg3MywgMHhhNCwgCi0gICAgMHhkYSwgMHg3OSwgMHg0MCwgMHgwOCwgMHg5ZCwgMHg3OCwgMHg2OCwgMHgwMiwgMHg4MCwgMHgwNSwgMHhjMiwgMHhkNywgMHgyMiwgMHhkYSwgMHg2YiwgMHg3ZSwgCi0gICAgMHhjMCwgMHgwMywgMHg3ZSwgMHhkMCwgMHgwMCwgMHg3YSwgMHhkMywgMHg5MCwgMHgwMCwgMHg3NCwgMHhhYSwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3NCwgCi0gICAgMHg1NSwgMHgzOSwgMHhiNSwgMHgyYSwgMHhhYSwgMHg3NCwgMHhhMCwgMHgzOSwgMHhiNSwgMHg1NSwgMHg1NSwgMHg3ZSwgMHgwNCwgMHgwMCwgMHg0MCwgMHg5ZCwgCi0gICAgMHg3MCwgMHg1MCwgMHgwNiwgMHgyZCwgMHg3MCwgMHg3ZCwgMHgwNywgMHg2ZCwgMHg3NywgMHg3YywgMHgzMSwgMHg3ZSwgMHg3YiwgMHgwMCwgMHg3YSwgMHg2YiwgCi0gICAgMHgwMCwgMHgwYiwgMHg3YywgMHgwYiwgMHg2YywgMHhhNSwgMHhkOSwgMHhmMywgMHg3ZiwgMHgxNiwgMHgxYiwgMHgxYywgMHg3ZSwgMHg1NCwgMHgyNywgMHgxMCwgCi0gICAgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgMHgxMCwgMHg2OCwgMHgwNiwgMHgxYiwgMHg1NCwgMHg3OCwgMHhmNSwgMHg4MCwgMHgyZiwgMHg2ZCwgMHgwMCwgMHg3YywgCi0gICAgMHgyMCwgMHg3ZiwgMHgxNiwgMHg5ZiwgMHgxMCwgMHg3ZiwgMHgyNywgMHg5ZiwgMHgyMCwgMHg3ZSwgMHgyYiwgMHgwMCwgMHg3ZSwgMHgxYiwgMHgxMCwgMHhiYywgCi0gICAgMHgwMSwgMHg3OCwgMHgxOSwgMHgwYiwgMHgyYywgMHgwYiwgMHgxYywgMHhhNSwgMHhkYiwgMHhlZiwgMHg3YywgMHhiNiwgMHgyMCwgMHhlMCwgMHgwNiwgMHg2YywgCi0gICAgMHhkYywgMHg3YSwgMHhkMywgMHg5MCwgMHgwMCwgMHg0ZCwgMHg3NywgMHg3OCwgMHg5MCwgMHhjMiwgMHhkNywgMHgyMiwgMHhkMiwgMHhkNywgMHgyMiwgMHgwMCwgCi0gICAgMHgwNCwgMHgwMCwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwMiwgMHgwMSwgMHgwNCwgMHgwMSwgMHgwMiwgMHgwMCwgCi0gICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwMCwgMHgwOCwgMHgxMCwgCi0gICAgMHgwMiwgMHgxMCwgMHgwNCwgMHgwMiwgMHgwOCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwOCwgMHg3ZSwgMHgxOCwgMHg3ZiwgMHhiZCwgMHg3YSwgMHgxYywgMHgwMCwgCi0gICAgMHhmZSwgMHgwYiwgMHgxYSwgMHgwMCwgMHg1ZSwgMHgxMCwgMHgxZiwgMHhiZSwgMHgxMCwgMHgxNCwgMHgzOCwgMHgxYSwgMHgwYSwgMHg1MSwgMHgyMywgMHg3ZSwgCi0gICAgMHgxOCwgMHg3NCwgMHgyNCwgMHg3YSwgMHgxYywgMHgwMCwgMHhmZiwgMHgyZCwgMHgzNSwgMHgwYiwgMHgxYSwgMHg1MCwgMHg2MCwgMHgwOCwgMHhhNSwgMHhiOCwgCi0gICAgMHgwMiwgMHgwMywgMHg0ZSwgMHhhMCwgMHgwOCwgMHgyMiwgMHg4MCwgMHhmZSwgCi19OwotCi1zdGF0aWMgc3RydWN0IGVkZ2VfZmlybXdhcmVfdmVyc2lvbl9pbmZvIElNQUdFX1ZFUlNJT05fTkFNRSA9IHsKLQkyLCAwLCAzIH07CQkvLyBNYWpvciwgTWlub3IsIEJ1aWxkCi0KLSN1bmRlZiBJTUFHRV9WRVJTSU9OX05BTUUKLQotI3VuZGVmIElNQUdFX0FSUkFZX05BTUUKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX2Z3X2Rvd24zLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQ5NmIwNi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fZndfZG93bjMuaAorKysgL2Rldi9udWxsCkBAIC0xLDg0NyArMCwwIEBACi0vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0vLyogRWRnZXBvcnQgQmluYXJ5IEltYWdlIChmb3IgVEkgYmFzZWQgcHJvZHVjdHMpCi0vLyogR2VuZXJhdGVkIGJ5IFRJQmluMkMgdjIuMDAgKHdhdGNocG9ydCkKLS8vKiBDb3B5cmlnaHQgKEMpIDIwMDEgSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLQotCi1zdGF0aWMgaW50IElNQUdFX1NJWkUgPSAxMjkzODsKLQotc3RydWN0IEVER0VfRklSTVdBUkVfVkVSU0lPTl9JTkZPCi17Ci0JdW5zaWduZWQgY2hhciAgIE1ham9yVmVyc2lvbjsKLQl1bnNpZ25lZCBjaGFyICAgTWlub3JWZXJzaW9uOwotCXVuc2lnbmVkIHNob3J0ICBCdWlsZE51bWJlcjsKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgRURHRV9GSVJNV0FSRV9WRVJTSU9OX0lORk8gSU1BR0VfVkVSU0lPTl9OQU1FID0KLXsKLQk0LCA4MCwgMAkJLy8gTWFqb3IsIE1pbm9yLCBCdWlsZAotCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBJTUFHRV9BUlJBWV9OQU1FW10gPSAKLXsKLS8vICBzdHJ1Y3QgSW1hZ2VIZHIKLS8vICB7Ci0vLyAgICAgIFdPUkQgICAgTGVuZ3RoOwotLy8gICAgICBCWVRFICAgIENoZWNrU3VtOwotLy8gIH07Ci0weDg3LCAweDMyLAotMHg5YSwKLQotMHgwMiwgMHgyNywgMHhiZiwgMHgwMiwgMHgyMSwgMHhiMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgxZSwgMHgwMCwgMHgwMCwKLTB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDEsIDB4MWEsIDB4ODUsIDB4M2YsIAotMHg4YywgMHg4NSwgMHg0MCwgMHg4YSwgMHhjMCwgMHhlMCwgMHhjMCwgMHhkMCwgMHhjMCwgMHhmMCwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHgwMCwgCi0weGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweGU1LCAweDNlLCAKLTB4MjQsIDB4MDgsIDB4ZjgsIDB4ZTYsIDB4NjAsIDB4MmIsIDB4ZTUsIDB4M2UsIDB4MjQsIDB4MTAsIDB4ZjgsIDB4YTYsIDB4ODEsIDB4ZTUsIDB4M2UsIDB4NzUsIAotMHhmMCwgMHgyMSwgMHhhNCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmOCwgMHhmNSwgMHg4MywgMHg3OCwgMHg4YywgMHhlNSwgMHg4MSwgCi0weDA0LCAweGMzLCAweDk4LCAweGY5LCAweDk0LCAweDIyLCAweDQwLCAweDAzLCAweDAyLCAweDExLCAweGRjLCAweGU2LCAweGYwLCAweDA4LCAweGEzLCAweGQ5LAotMHhmYSwgMHg3NCwgMHgwOCwgMHgyNSwgMHgzZSwgMHhmOCwgMHgwNSwgMHgzZSwgMHgwOCwgMHhlNiwgMHg1NCwgMHg4MCwgMHg3MCwgMHgwYywgMHhlNSwgMHgzZSwgCi0weGI0LCAweDA3LCAweGYzLCAweDc4LCAweDA4LCAweDc1LCAweDNlLCAweDAwLCAweDgwLCAweGVmLCAweGU1LCAweDNlLCAweDI0LCAweDEwLCAweGY4LCAweDg2LCAKLTB4ODEsIDB4ZTUsIDB4M2UsIDB4NzUsIDB4ZjAsIDB4MjEsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjgsIDB4ZjUsIDB4ODMsIAotMHg3OCwgMHg4YywgMHhlNSwgMHg4MSwgMHgwNCwgMHhjMywgMHg5OCwgMHhmOSwgMHhlMCwgMHhmNiwgMHgwOCwgMHhhMywgMHhkOSwgMHhmYSwgMHhkMCwgMHgwNywgCi0weGQwLCAweDA2LCAweGQwLCAweDA1LCAweGQwLCAweDA0LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweDgzLCAKLTB4ZDAsIDB4ODIsIDB4ZDAsIDB4ZjAsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MzAsIDB4MDEsIDB4NGQsIDB4MzAsIDB4YjQsIDB4NDgsIDB4MTAsIAotMHgwMCwgMHg0NSwgMHg5MCwgMHhmZiwgMHgwOCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmOCwgMHg5MCwgMHhmZiwgMHg0OCwgMHhlMCwgMHg1NCwgMHgyMCwgMHhmOSwgCi0weDkwLCAweGZmLCAweDEwLCAweGUwLCAweDU0LCAweDIwLCAweGZhLCAweDkwLCAweGZmLCAweDUwLCAweGUwLCAweDU0LCAweDIwLCAweGZiLCAweDc0LCAweDAwLCAKLTB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4YzgsIDB4ZjAsIDB4NjgsIDB4NjAsIDB4MDIsIDB4N2UsIDB4MDQsIDB4YTMsIDB4ZTAsIAotMHhjOSwgMHhmMCwgMHg2OSwgMHg2MCwgMHgwMiwgMHg3ZSwgMHgwNCwgMHhhMywgMHhlMCwgMHhjYSwgMHhmMCwgMHg2YSwgMHg2MCwgMHgwMiwgMHg3ZSwgMHgwNCwgCi0weGEzLCAweGUwLCAweGNiLCAweGYwLCAweDZiLCAweDYwLCAweDAyLCAweDdlLCAweDA0LCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweGQwLCAweGMwLCAweGYwLCAKLTB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDQsIDB4YzAsIDB4MDUsIAotMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg3NCwgMHgxNSwgMHhmNSwgMHg4MiwgMHg3NCwgMHhmOSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyMywgMHg3NCwKLTB4NjYsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4NzAsIDB4MTYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4NzQsCi0weDFjLCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDA0LCAweDE0LCAweGYwLCAweDcwLCAweDA0LCAweGMyLCAweDkwLAotMHg4MCwgMHhmYywgMHg5MCwgMHhmZiwgMHg5MywgMHg3NCwgMHg4MSwgMHhmMCwgMHhlNSwgMHg4MSwgMHg5NCwgMHhmZCwgMHg0MCwgMHgwMywgMHgwMiwgMHgxMSwKLTB4ZGMsIDB4ODUsIDB4NDEsIDB4OGQsIDB4ODUsIDB4NDIsIDB4OGIsIDB4NzQsIDB4YjIsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZmEsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0weGI0LCAweDAxLCAweDFiLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDRhLCAweGUwLCAweDMwLCAweGU3LCAweDJjLCAweDkwLCAweGZmLAotMHg0ZSwgMHhlMCwgMHgzMCwgMHhlNywgMHgyNSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgyMCwgMHhiNCwgMHgwMiwKLTB4MWQsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4OTAsIDB4ZmYsIDB4N2EsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MDUsIDB4MTIsIDB4MjgsIDB4NGUsIDB4ODAsCi0weDA5LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweDc0LCAweDAzLCAweGYwLCAweDgwLCAweDA0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGEzLCAweGUwLAotMHhiNCwgMHgwMSwgMHgxYiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHg5MCwgMHhmZiwgMHg1MiwgMHhlMCwgMHgzMCwgMHhlNywgMHgyYywgMHg5MCwgMHhmZiwKLTB4NTYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MjUsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MjUsIDB4YjQsIDB4MDIsCi0weDIyLCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweDkwLCAweGZmLCAweDdhLCAweGUwLCAweDMwLCAweGU3LCAweDA1LCAweDEyLCAweDI4LCAweDRlLCAweDgwLAotMHgwOSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg3NCwgMHgwMywgMHhmMCwgMHg4MCwgMHgwOSwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHg4MCwgMHgwMywKLTB4MDIsIDB4MDIsIDB4OTAsIDB4NzQsIDB4MTYsIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4MDQsIDB4ZjEsIDB4MjAsCi0weDAyLCAweDAzLCAweDMwLCAweDAxLCAweGViLCAweDc0LCAweDE5LCAweGY1LCAweDgyLCAweDc0LCAweGY5LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweGZjLAotMHhmMCwgMHhhMywgMHhlMCwgMHhmZCwgMHhhMywgMHhlMCwgMHhmZSwgMHg2NCwgMHgwNCwgMHg3MCwgMHgwZiwgMHhlYywgMHg3MCwgMHg2MiwgMHg3ZSwgMHgwMSwKLTB4MTIsIDB4MDAsIDB4YzksIDB4N2MsIDB4MGEsIDB4N2QsIDB4ZmEsIDB4MDIsIDB4MDIsIDB4NjEsIDB4MTIsIDB4MDAsIDB4YzksIDB4ZWUsIDB4NjQsIDB4MDQsCi0weDYwLCAweDFkLCAweGVjLCAweDcwLCAweDRiLCAweDdjLCAweDBhLCAweGVkLCAweDE0LCAweGZkLCAweDcwLCAweDE1LCAweGVlLCAweDY0LCAweDAyLCAweDYwLAotMHgwNywgMHg3ZSwgMHgwMiwgMHg3ZCwgMHgzMiwgMHgwMiwgMHgwMiwgMHg2MSwgMHg3ZSwgMHgwMSwgMHg3ZCwgMHhmYSwgMHgwMiwgMHgwMiwgMHg2MSwgMHg3YywKLTB4MGEsIDB4NzQsIDB4MTksIDB4ZjUsIDB4ODIsIDB4NzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4YTMsIDB4ZWQsIDB4ZjAsIDB4YTMsIDB4ZWUsCi0weGYwLCAweDE0LCAweDYwLCAweDE4LCAweDIwLCAweGUxLCAweDBmLCAweDIwLCAweDAxLCAweDA2LCAweGQyLCAweGIxLCAweGMyLCAweGIwLCAweDgwLCAweDEwLAotMHhjMiwgMHhiMSwgMHhkMiwgMHhiMCwgMHg4MCwgMHgwYSwgMHhjMiwgMHhiMSwgMHhjMiwgMHhiMCwgMHg4MCwgMHgwNCwgMHhkMiwgMHhiMCwgMHhkMiwgMHhiMSwKLTB4NzgsIDB4MTksIDB4NzksIDB4MDksIDB4N2EsIDB4MDcsIDB4ZTcsIDB4NzAsIDB4MDQsIDB4YTYsIDB4MDAsIDB4ODAsIDB4MGIsIDB4ZTYsIDB4NjAsIDB4MDgsCi0weDE2LCAweGU2LCAweDcwLCAweDA0LCAweGU3LCAweDQ0LCAweDgwLCAweGY3LCAweDA4LCAweDA5LCAweGRhLCAweGVhLCAweGU1LCAweDNkLCAweDYwLCAweDEzLAotMHgxNCwgMHhmNSwgMHgzZCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgzZSwgMHgyNCwgMHgwOCwgMHhmOCwgMHg3NiwgMHgwMCwgMHgxMiwgMHgxMSwgMHg1NywgMHhkMiwKLTB4OGMsIDB4ZDIsIDB4OGQsIDB4ZDAsIDB4MDcsIDB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDUsIDB4ZDAsIDB4MDQsIDB4ZDAsIDB4MDMsIDB4ZDAsIDB4MDIsIDB4ZDAsCi0weDAxLCAweGQwLCAweDAwLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweGYwLCAweGQwLCAweGQwLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweGZmLAotMHgwNCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiOSwgMHhmMCwgMHg5MCwgMHhmZiwgMHgwNiwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmYSwgMHhlYywgMHhmZiwKLTB4ZWEsIDB4ZmUsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4MDgsIDB4ZWUsIDB4OTQsIDB4MDEsIDB4NTAsIDB4MDIsIDB4ODAsIDB4MDQsIDB4N2UsIDB4MDEsIDB4N2YsCi0weDA4LCAweDhlLCAweDNiLCAweDhmLCAweDNjLCAweDkwLCAweGZmLCAweDAyLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZhLCAweGVjLCAweGZmLCAweGVhLAotMHg5MCwgMHhmYSwgMHhiZCwgMHhmMCwgMHhlZiwgMHhhMywgMHhmMCwgMHgxMiwgMHgxYywgMHhlMCwgMHhlNCwgMHhmNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhjMywKLTB4OTQsIDB4MDIsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTQsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MDUsIDB4NGQsIDB4MDQsIDB4MTIsIDB4MWMsCi0weGIyLCAweDgwLCAweGVhLCAweDEyLCAweDFjLCAweGUwLCAweDkwLCAweGZmLCAweDAwLCAweGUwLCAweGZmLCAweDU0LCAweDYwLCAweDI0LCAweGMwLCAweDcwLAotMHgwMywgMHgwMiwgMHgwOCwgMHhmMywgMHgyNCwgMHg0MCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZSwKLTB4NTQsIDB4MGYsIDB4ZjUsIDB4NGQsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4ZDMsIDB4ODAsIDB4MDEsIDB4YzMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4ZmYsCi0weDAxLCAweGUwLCAweDEyLCAweDFiLCAweGZjLCAweDAzLCAweDg0LCAweDAwLCAweDA0LCAweDU3LCAweDAxLCAweDA1LCAweDZhLCAweDAzLCAweDA2LCAweDMxLAotMHgwNSwgMHgwNiwgMHg3MywgMHgwNiwgMHgwNywgMHhkNSwgMHgwOCwgMHgwOCwgMHgxZCwgMHgwOSwgMHgwOCwgMHg3OSwgMHgwYSwgMHgwOCwgMHhiOSwgMHgwYiwKLTB4MDAsIDB4MDAsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsCi0weDcwLCAweDAyLCAweGEzLCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDNjLCAweDY0LCAweDAyLCAweDQ1LCAweDNiLCAweDYwLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlZiwgMHg1NCwgMHgxZiwgMHgxNCwgMHg2MCwgMHgyYiwgMHgxNCwgMHg2MCwgMHg0NywgMHgyNCwgMHgwMiwgMHg2MCwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZWUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWMsIDB4YzEsIDB4NzQsIDB4MDEsIDB4MTIsCi0weDFhLCAweGU4LCAweDc4LCAweDY3LCAweGU2LCAweDMwLCAweGUwLCAweDA4LCAweDEyLCAweDFjLCAweGMxLCAweDc0LCAweDAyLCAweDEyLCAweDFhLCAweGU4LAotMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwOSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZDMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4N2YsCi0weDAyLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDBlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDYwLCAweDA3LAotMHg2NCwgMHg4MCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgwZiwgMHhmYSwgMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwKLTB4NGQsIDB4NzAsIDB4MTksIDB4MzAsIDB4MGEsIDB4MGIsIDB4OTAsIDB4ZmYsIDB4ODAsIDB4MTIsIDB4MWMsIDB4YmUsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4ODAsCi0weDI0LCAweDkwLCAweGZmLCAweDgyLCAweDEyLCAweDFjLCAweGJlLCAweDEyLCAweDFhLCAweGU4LCAweDgwLCAweDE5LCAweDE1LCAweDRkLCAweDMwLCAweDBhLAotMHgwYiwgMHgxMiwgMHgxZCwgMHg1NSwgMHgxMiwgMHgxYywgMHhiYywgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgwOSwgMHgxMiwgMHgxZCwgMHg2MywgMHgxMiwKLTB4MWMsIDB4YmMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MTIsIDB4MWMsIDB4YzEsIDB4MTIsIDB4MWEsIDB4YTIsIDB4NjAsIDB4MDUsIDB4NzQsIDB4MDEsIDB4MTIsCi0weDFhLCAweGU4LCAweDdmLCAweDAyLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LAotMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHgxNCwgMHg2MCwgMHgyZCwgMHgxNCwgMHg2MCwKLTB4NTksIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4YTMsIDB4ZTAsCi0weDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLAotMHg3OCwgMHg2NywgMHhlNiwgMHg1NCwgMHhmZSwgMHhmNiwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwNiwKLTB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTAsIDB4MDksIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUxLCAweDBjLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGQzLCAweDk0LCAweDAxLAotMHg0MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg3MCwgMHgwMiwKLTB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MGYsIDB4ZmEsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsCi0weDM1LCAweDIwLCAweGUxLCAweDA2LCAweDIwLCAweGUwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDMwLCAweGUwLCAweDA3LCAweGU1LAotMHg0ZCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHg0ZCwgMHg3MCwgMHgwZiwgMHg5MCwgMHhmZiwgMHg4MiwgMHhlMCwgMHg1NCwgMHhmNywKLTB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODAsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4NGQsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MjAsIDB4MjQsCi0weGZiLCAweDYwLCAweDM0LCAweDI0LCAweDA2LCAweDcwLCAweDM1LCAweDMwLCAweDBhLCAweDBjLCAweGEyLCAweDBhLCAweGU0LCAweDMzLCAweGZkLCAweDdmLAotMHgwMywgMHgxMiwgMHgyZSwgMHg3OSwgMHg4MCwgMHgyNiwgMHhlNCwgMHhmZCwgMHg3ZiwgMHgwMywgMHgxMiwgMHgyZSwgMHg3OSwgMHg4MCwgMHgxZCwgMHgzMCwKLTB4MGEsIDB4MGMsIDB4YTIsIDB4MGEsIDB4ZTQsIDB4MzMsIDB4ZmQsIDB4N2YsIDB4MDQsIDB4MTIsIDB4MmUsIDB4NzksIDB4ODAsIDB4MGUsIDB4ZTQsIDB4ZmQsCi0weDdmLCAweDA0LCAweDEyLCAweDJlLCAweDc5LCAweDgwLCAweDA1LCAweDdmLCAweDg3LCAweDEyLCAweDMxLCAweGVmLCAweDE1LCAweDRkLCAweDMwLCAweDBhLAotMHgwYiwgMHgxMiwgMHgxZCwgMHg1NSwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg4MCwgMHgwOSwgMHgxMiwgMHgxZCwgMHg2MywgMHhmNSwKLTB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsCi0weDBmLCAweDZlLCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDE0LCAweDYwLAotMHgyZCwgMHgxNCwgMHg2MCwgMHg1NSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg3MCwKLTB4MDQsIDB4YTMsIDB4ZTAsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsCi0weDAyLCAweDBmLCAweDZlLCAweDc4LCAweDY3LCAweGU2LCAweDQ0LCAweDAxLCAweGY2LCAweGU0LCAweGZmLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LAotMHgyMCwgMHhlMSwgMHgwNiwgMHgyMCwgMHhlMCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlMCwgMHgwNywgMHhlNSwgMHg0ZCwKLTB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTEsIDB4MGEsIDB4ZTUsIDB4NGQsIDB4ZDMsIDB4OTQsIDB4MDEsIDB4NDAsCi0weDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU0LCAweGZmLCAweDAyLCAweDMyLCAweDZlLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDcwLCAweDAyLCAweGEzLAotMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgzMiwgMHgzZiwgMHg0MCwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4ZTAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4NGQsCi0weDcwLCAweDA5LCAweDMwLCAweDBhLCAweDAzLCAweDAyLCAweDFlLCAweDE0LCAweDAyLCAweDFkLCAweGRmLCAweGU1LCAweDM1LCAweDIwLCAweGUxLCAweDAzLAotMHgwMiwgMHgwZiwgMHg2ZSwgMHgxNSwgMHg0ZCwgMHgzMCwgMHgwYSwgMHgwYiwgMHgxMiwgMHgxZCwgMHg1NSwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwOCwKLTB4ZjAsIDB4ODAsIDB4MDksIDB4MTIsIDB4MWQsIDB4NjMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzIsCi0weDZlLCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDNjLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLAotMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwgMHg3OSwgMHg2MCwgMHgwMywKLTB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4OTAsCi0weGZmLCAweGZmLCAweGYwLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDM1LCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDM1LCAweGZlLCAweGU0LCAweGZmLAotMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg3MCwKLTB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWQsIDB4NzksIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsCi0weGZjLCAweGEzLCAweGUwLCAweGZkLCAweGVjLCAweDI0LCAweGZlLCAweDYwLCAweDNhLCAweDE0LCAweDYwLCAweDc1LCAweDI0LCAweDAyLCAweDYwLCAweDAzLAotMHgwMiwgMHgwZiwgMHg2ZSwgMHhlZCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxYywgMHhlMCwgMHgxMiwgMHgxZSwgMHgwZCwgMHg3ZCwKLTB4MDMsIDB4MTIsIDB4MGYsIDB4YjUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MGYsIDB4NzIsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZTAsCi0weGZkLCAweGEzLCAweDEyLCAweDFkLCAweDJiLCAweDEyLCAweDBmLCAweGQxLCAweDUwLCAweDAyLCAweDgwLCAweDA0LCAweGFlLCAweDNiLCAweGFmLCAweDNjLAotMHgwMiwgMHgxMCwgMHgwMiwgMHgxMiwgMHgxYywgMHhlMCwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlNCwgMHgwZCwgMHgxMiwgMHgxZSwgMHgwZCwKLTB4N2QsIDB4MTQsIDB4MTIsIDB4MGYsIDB4YjUsIDB4NjAsIDB4MTAsIDB4MDIsIDB4MGYsIDB4NmUsIDB4MTIsIDB4MWUsIDB4MGQsIDB4N2QsIDB4MDQsIDB4MTIsCi0weDEwLCAweDA5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDBmLCAweDcyLCAweDkwLCAweGZhLCAweGI2LCAweGUwLCAweGZkLCAweGEzLAotMHgxMiwgMHgxZCwgMHgyYiwgMHgxMiwgMHgwZiwgMHhkMSwgMHg1MCwgMHgwMiwgMHg4MCwgMHgwNCwgMHhhZSwgMHgzYiwgMHhhZiwgMHgzYywgMHgwMiwgMHgxMCwKLTB4MDIsIDB4MTIsIDB4MWUsIDB4MGQsIDB4N2QsIDB4MDUsIDB4MTIsIDB4MTAsIDB4MDksIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4N2IsIDB4MDEsCi0weDdhLCAweGZhLCAweDc5LCAweGI2LCAweDEyLCAweDFkLCAweDI4LCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGI3LCAweGU0LAotMHg3NSwgMHhmMCwgMHgwMywgMHgxMiwgMHgxYiwgMHgxYywgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiNSwgMHhmMCwgMHhlNCwgMHhmNSwKLTB4NGMsIDB4OTAsIDB4ZmEsIDB4YjUsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NGMsIDB4YzMsIDB4OWYsIDB4NTAsIDB4MjQsIDB4MTIsIDB4MWQsIDB4MjIsIDB4MTIsCi0weDEwLCAweDE0LCAweGZmLCAweGZkLCAweDkwLCAweGZhLCAweGI3LCAweGU0LCAweDhkLCAweGYwLCAweDEyLCAweDFiLCAweDFjLCAweDkwLCAweGZhLCAweGI2LAotMHhlMCwgMHhjMywgMHg5ZiwgMHhmMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgwNSwgMHg0YywgMHg4MCwgMHhkMSwKLTB4MTIsIDB4MWQsIDB4MjIsIDB4MTIsIDB4MTAsIDB4MTQsIDB4MjQsIDB4ZmUsIDB4ZmYsIDB4OTAsIDB4ZmEsIDB4YjYsIDB4ZjAsIDB4ZmQsIDB4YTMsIDB4ZTQsCi0weDc1LCAweGYwLCAweDAyLCAweDEyLCAweDFiLCAweDFjLCAweDdhLCAweGY5LCAweDc5LCAweDcyLCAweDdiLCAweDAxLCAweDhiLCAweDM2LCAweDhhLCAweDM3LAotMHg4OSwgMHgzOCwgMHhlOSwgMHgyNCwgMHgwMiwgMHhmOSwgMHhlNCwgMHgzYSwgMHhmYSwgMHgxMiwgMHgxZCwgMHgyOCwgMHgxMiwgMHgyNiwgMHg5OCwgMHg4ZiwKLTB4NGMsIDB4MDUsIDB4NGMsIDB4MDUsIDB4NGMsIDB4MTIsIDB4MWMsIDB4YzEsIDB4ZTUsIDB4NGMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MTIsIDB4MWMsIDB4YzEsCi0weDkwLCAweDAwLCAweDAxLCAweDc0LCAweDAzLCAweDEyLCAweDFhLCAweGZhLCAweGFmLCAweDRjLCAweDdlLCAweDAwLCAweGMzLCAweGVmLCAweDk1LCAweDNjLAotMHhlZSwgMHg5NSwgMHgzYiwgMHg1MCwgMHgwMiwgMHg4MCwgMHgwNCwgMHhhZSwgMHgzYiwgMHhhZiwgMHgzYywgMHg4ZSwgMHgzOSwgMHg4ZiwgMHgzYSwgMHgwMiwKLTB4MmMsIDB4ZDgsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4M2MsIDB4NjQsCi0weDAxLCAweDQ1LCAweDNiLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweDYwLCAweDAzLCAweDAyLCAweDBmLAotMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHgxMiwgMHgxZCwKLTB4NzksIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZTUsIDB4MzUsIDB4MjAsIDB4ZTAsIDB4MDYsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGYsCi0weDZlLCAweDc1LCAweDM2LCAweDAwLCAweDc1LCAweDM3LCAweDAwLCAweDc1LCAweDM4LCAweDMyLCAweDAyLCAweDBmLCAweGYxLCAweGU1LCAweDM1LCAweDMwLAotMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzYywgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwKLTB4YjksIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZDMsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4OTQsIDB4MDEsIDB4OTAsIDB4ZmEsCi0weGJkLCAweGUwLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDYwLCAweDAzLCAweDAyLCAweDBmLAotMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMCwgMHgwNiwgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiZSwgMHhlMCwKLTB4ZjUsIDB4MzIsIDB4ZTUsIDB4MzIsIDB4NzAsIDB4MDgsIDB4NDMsIDB4MzUsIDB4MDEsIDB4NTMsIDB4MzUsIDB4ZmQsIDB4ODAsIDB4MDYsIDB4NTMsIDB4MzUsCi0weGZlLCAweDQzLCAweDM1LCAweDAyLCAweGU0LCAweGZmLCAweDAyLCAweDMyLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLAotMHg2ZSwgMHhlNSwgMHgzYywgMHg2NCwgMHgwMSwgMHg0NSwgMHgzYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwKLTB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4NzAsIDB4MDIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsCi0weDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweGU1LCAweDM1LCAweDIwLCAweGUxLAotMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHg3ZiwgMHgwMSwgMHgwMiwgMHgzMiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwKLTB4NmUsIDB4ZTUsIDB4M2MsIDB4NDUsIDB4M2IsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NmUsIDB4ZDMsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4OTQsCi0weDAwLCAweDkwLCAweGZhLCAweGJkLCAweGUwLCAweDk0LCAweDAwLCAweDQwLCAweDAzLCAweDAyLCAweDBmLCAweDZlLCAweDEyLCAweDFkLCAweDc5LCAweDY0LAotMHgwMSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwZiwgMHg2ZSwgMHhlNCwgMHhmZiwKLTB4MDIsIDB4MzIsIDB4NmUsIDB4OTAsIDB4ZmYsIDB4MDEsIDB4MTIsIDB4MWUsIDB4MjQsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4OTAsIDB4ZmEsIDB4YjksCi0weDEyLCAweDFlLCAweDI0LCAweDkwLCAweDAwLCAweDAxLCAweGVmLCAweDEyLCAweDFhLCAweGZhLCAweDkwLCAweDAwLCAweDAyLCAweGU0LCAweDEyLCAweDFhLAotMHhmYSwgMHg3NCwgMHgwMywgMHgxMiwgMHgxYywgMHhiMiwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHhmZiwgMHhhMywgMHhlMCwgMHg4NSwgMHgzOCwgMHg4MiwKLTB4ODUsIDB4MzcsIDB4ODMsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDEsIDB4ZTAsIDB4MTIsIDB4MWIsIDB4ZmMsIDB4MDksCi0weDdiLCAweDAyLCAweDA5LCAweDlkLCAweDA0LCAweDA5LCAweGJmLCAweDA1LCAweDA5LCAweGViLCAweDA2LCAweDBhLCAweDA5LCAweDA3LCAweDBhLCAweDI3LAotMHgwOCwgMHgwYSwgMHg0NSwgMHgwOSwgMHgwYSwgMHg2MywgMHgwYiwgMHgwYiwgMHgxOCwgMHg4MCwgMHgwZCwgMHhiNywgMHg4MSwgMHgwZCwgMHhlOCwgMHg4MiwKLTB4MGIsIDB4NWYsIDB4ODMsIDB4MGIsIDB4YTgsIDB4ODQsIDB4MGIsIDB4YzcsIDB4ODUsIDB4MGMsIDB4MGMsIDB4ODYsIDB4MGMsIDB4NTcsIDB4ODcsIDB4MGMsCi0weGU4LCAweDg4LCAweDBkLCAweDczLCAweDg5LCAweDBhLCAweDgxLCAweDkyLCAweDBhLCAweDgxLCAweDkzLCAweDBkLCAweGEwLCAweGIwLCAweDBlLCAweDliLAotMHhjMCwgMHgwZSwgMHhjNywgMHhjMSwgMHgwZSwgMHhkOCwgMHhjMiwgMHgwMCwgMHgwMCwgMHgwZiwgMHg1ZCwgMHhlNSwgMHgzNSwgMHgyMCwgMHhlNywgMHgwNSwKLTB4N2YsIDB4MDUsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsCi0weDAwLCAweDdmLCAweDA3LCAweDAyLCAweDExLCAweDVlLCAweGU0LCAweGZkLCAweDdmLCAweDA3LCAweDAyLCAweDJmLCAweGI0LCAweGU1LCAweDM1LCAweDIwLAotMHhlNywgMHgwNSwgMHg3ZiwgMHgwNSwgMHgwMiwgMHgzMSwgMHhhOSwgMHgxMiwgMHgxZCwgMHg3MSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwKLTB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MGMsIDB4MDIsIDB4MTEsIDB4NWUsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MmYsIDB4YjQsIDB4ZTUsCi0weDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDcxLCAweDEyLCAweDFlLCAweDQyLCAweDUwLCAweDA2LCAweGU1LCAweDNjLCAweDQ1LCAweDNiLAotMHg3MCwgMHgwNSwgMHg3ZiwgMHgwMiwgMHgwMiwgMHgzMSwgMHhhOSwgMHg5MCwgMHhmYSwgMHhiOSwgMHhlMCwgMHgyNCwgMHhmZSwgMHgyNCwgMHhmZCwgMHg1MCwKLTB4MDIsIDB4ODAsIDB4MDMsIDB4MDIsIDB4MzIsIDB4MmMsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsCi0weDAyLCAweDBmLCAweDcxLCAweDEyLCAweDFkLCAweDcxLCAweDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLAotMHgwOCwgMHgwMiwgMHgxMSwgMHg1ZSwgMHg3ZiwgMHgwNywgMHgwMiwgMHgzMSwgMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwKLTB4NzEsIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MDksIDB4MDIsCi0weDExLCAweDVlLCAweDdmLCAweDA3LCAweDAyLCAweDMxLCAweGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDAzLCAweDAyLCAweDBmLCAweDcxLCAweDEyLAotMHgxZCwgMHg3MSwgMHg2MCwgMHgwMywgMHgwNCwgMHg3MCwgMHgwOSwgMHhlZiwgMHhmZCwgMHg3YywgMHgwMCwgMHg3ZiwgMHgwYSwgMHgwMiwgMHgxMSwgMHg1ZSwKLTB4N2YsIDB4MDcsIDB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsIDB4ZTcsIDB4MDMsIDB4MDIsIDB4MGYsIDB4NzEsIDB4MTIsIDB4MWQsIDB4NzEsCi0weDYwLCAweDAzLCAweDA0LCAweDcwLCAweDA5LCAweGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBiLCAweDAyLCAweDExLCAweDVlLCAweDdmLCAweDA3LAotMHgwMiwgMHgzMSwgMHhhOSwgMHhlNSwgMHgzNSwgMHgzMCwgMHhlNywgMHgwMywgMHgwMiwgMHgwZiwgMHg3MSwgMHgxMiwgMHgxZCwgMHg3MSwgMHg2MCwgMHgwMywKLTB4MDQsIDB4NzAsIDB4MDksIDB4ZWYsIDB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MGUsIDB4MDIsIDB4MTEsIDB4NWUsIDB4N2YsIDB4MDcsIDB4MDIsIDB4MzEsCi0weGE5LCAweGU1LCAweDM1LCAweDMwLCAweGU3LCAweDU2LCAweDEyLCAweDFkLCAweDc5LCAweDcwLCAweDRhLCAweDkwLCAweGZmLCAweDAyLCAweGUwLCAweGY1LAotMHg0YywgMHhlNSwgMHg0YywgMHhiNCwgMHg4MiwgMHgwNSwgMHg3NSwgMHg0YywgMHg2MSwgMHg4MCwgMHgxMiwgMHhlNSwgMHg0YywgMHhiNCwgMHg4MywgMHgwNSwKLTB4NzUsIDB4NGMsIDB4NjIsIDB4ODAsIDB4MDgsIDB4ZTUsIDB4NGMsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4MDQsIDB4ZjUsIDB4NGMsIDB4MTIsIDB4MWMsIDB4MjIsCi0weDEyLCAweDFlLCAweDNiLCAweDEyLCAweDI1LCAweGZhLCAweDEyLCAweDFkLCAweDg5LCAweDEyLCAweDFhLCAweGJiLCAweDYwLCAweDA1LCAweDEyLCAweDMyLAotMHg3YSwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzMywgMHgzOSwgMHg4NSwgMHgzNCwgMHgzYSwgMHg3NSwgMHgzNiwgMHgwMSwgMHg3NSwgMHgzNywgMHhmOSwgMHg3NSwKLTB4MzgsIDB4NzUsIDB4MDIsIDB4MmMsIDB4ZDgsIDB4ZTQsIDB4ZmQsIDB4N2YsIDB4MDUsIDB4MDIsIDB4MmYsIDB4YjQsIDB4MTIsIDB4MWQsIDB4NzksIDB4NjAsCi0weDA1LCAweDdmLCAweDA1LCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFlLCAweDQyLCAweDQwLCAweDA1LCAweDdmLCAweDAzLCAweDAyLCAweDMxLCAweGE5LAotMHg5MCwgMHhmZiwgMHgwMiwgMHhlMCwgMHhmNSwgMHg0YywgMHhlNSwgMHg0YywgMHhiNCwgMHg4MiwgMHgwNSwgMHg3NSwgMHg0YywgMHg2MSwgMHg4MCwgMHgxMiwKLTB4ZTUsIDB4NGMsIDB4YjQsIDB4ODMsIDB4MDUsIDB4NzUsIDB4NGMsIDB4NjIsIDB4ODAsIDB4MDgsIDB4ZTUsIDB4NGMsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4MDQsCi0weGY1LCAweDRjLCAweDEyLCAweDFjLCAweDIyLCAweDAyLCAweDMyLCAweDJjLCAweDEyLCAweDFlLCAweDRjLCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDFkLAotMHgzMywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHhlMCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhmMCwgMHg3OCwgMHg2OCwgMHgxMiwKLTB4MWIsIDB4ZDgsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MWEsIDB4YmIsIDB4MzAsIDB4ZTcsIDB4ZjIsIDB4OTAsIDB4MDAsIDB4MDIsIDB4ZTQsIDB4MTIsCi0weDFhLCAweGZhLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDQ0LCAweDgwLCAweGZmLCAweGYwLCAweDc4LCAweDdjLCAweGU2LCAweGZjLCAweDA4LCAweGU2LAotMHg4YywgMHg4MywgMHgxMiwgMHgxZCwgMHgzYiwgMHhlZiwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHhlNCwgMHhmZiwgMHgwMiwgMHgzMSwgMHhhOSwgMHg5MCwKLTB4ZmEsIDB4YjksIDB4ZTAsIDB4NjQsIDB4MDEsIDB4NzAsIDB4MWYsIDB4OTAsIDB4ZmEsIDB4YmQsIDB4ZTAsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4NzAsIDB4MDYsCi0weGEzLCAweGUwLCAweGY1LCAweDkwLCAweDgwLCAweDJkLCAweGMyLCAweGFmLCAweGVmLCAweGY0LCAweDUyLCAweDkwLCAweDkwLCAweGZhLCAweGJlLCAweGUwLAotMHg0MiwgMHg5MCwgMHhkMiwgMHhhZiwgMHg4MCwgMHgxZCwgMHg5MCwgMHhmYSwgMHhiZCwgMHhlMCwgMHhmZiwgMHg3ZSwgMHgwMCwgMHg3MCwgMHgwNiwgMHhhMywKLTB4ZTAsIDB4ZjUsIDB4YjAsIDB4ODAsIDB4MGUsIDB4YzIsIDB4YWYsIDB4ZWYsIDB4ZjQsIDB4NTIsIDB4YjAsIDB4OTAsIDB4ZmEsIDB4YmUsIDB4ZTAsIDB4NDIsCi0weGIwLCAweGQyLCAweGFmLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFjLCAweGUwLCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGI0LAotMHgwMSwgMHgwYSwgMHgxMiwgMHgxYywgMHhjMSwgMHhlNSwgMHg5MCwgMHgxMiwgMHgxYSwgMHhlOCwgMHg4MCwgMHgwOCwgMHgxMiwgMHgxYywgMHhjMSwgMHhlNSwKLTB4YjAsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MDIsIDB4MGYsIDB4ZjEsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmYsIDB4MjQsIDB4MTMsIDB4MTIsIDB4MWMsCi0weGYxLCAweDIwLCAweGUxLCAweDMzLCAweDEyLCAweDFkLCAweDgwLCAweGVmLCAweDI0LCAweGZjLCAweDYwLCAweDE4LCAweDA0LCAweDcwLCAweDI4LCAweDkwLAotMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHg4MCwgMHgxOSwgMHgxMiwgMHgxZSwKLTB4NTYsIDB4ZjAsIDB4ODAsIDB4MTMsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MTAsCi0weGYwLCAweDgwLCAweDA0LCAweDEyLCAweDFlLCAweDVkLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDkwLCAweGZhLCAweGI5LCAweGUwLAotMHhmZiwgMHgyNCwgMHgxMywgMHgxMiwgMHgxYywgMHhmMSwgMHgyMCwgMHhlMSwgMHgzOSwgMHgxMiwgMHgxZCwgMHg4MCwgMHhlZiwgMHgyNCwgMHhmYywgMHg2MCwKLTB4MWIsIDB4MDQsIDB4NzAsIDB4MmUsIDB4OTAsIDB4ZmEsIDB4YmEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4ZmYsIDB4YTQsIDB4ZTAsIDB4NDQsIDB4MjAsCi0weGYwLCAweDgwLCAweDFmLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDgwLCAweDE2LCAweDkwLCAweGZhLCAweGJhLCAweGUwLAotMHg2MCwgMHgwOSwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg1NCwKLTB4ZGYsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4ODAsIDB4MTIsIDB4MWQsIDB4NzEsIDB4NjAsIDB4NGQsIDB4MDQsCi0weDYwLCAweDAzLCAweDAyLCAweDBjLCAweGUzLCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDBmLCAweDkwLCAweGZmLCAweGE0LCAweDEyLCAweDFjLAotMHhlYSwgMHgzMCwgMHhlMSwgMHg2ZiwgMHgxMiwgMHgxZSwgMHgyYywgMHgwMiwgMHgwYywgMHhlMywgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhmYiwKLTB4MTIsIDB4MWMsIDB4ZWQsIDB4ZmUsIDB4MzAsIDB4ZTEsIDB4NWMsIDB4MzAsIDB4ZTIsIDB4MTEsIDB4MzAsIDB4YjQsIDB4MDUsIDB4MTIsIDB4MWUsIDB4MmMsCi0weDgwLCAweDUxLCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDgwLCAweDQ4LCAweDMwLCAweDk1LCAweDA1LCAweDEyLCAweDFlLAotMHgyYywgMHg4MCwgMHg0MCwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg4MCwgMHgzNywgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwKLTB4NjAsIDB4MTIsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4MTIsIDB4MWMsIDB4ZWEsIDB4MzAsIDB4ZTEsIDB4MjgsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsCi0weDAyLCAweGYwLCAweDgwLCAweDFmLCAweDkwLCAweGZmLCAweGI0LCAweGUwLCAweDU0LCAweGZiLCAweDEyLCAweDFjLCAweGVkLCAweDMwLCAweGUxLCAweDEzLAotMHgzMCwgMHg5MywgMHgwOSwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwKLTB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4ODAsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4MjQsCi0weGZjLCAweDYwLCAweDQwLCAweDA0LCAweDcwLCAweDc4LCAweDkwLCAweGZhLCAweGJhLCAweGUwLCAweDYwLCAweDFkLCAweDkwLCAweGZmLCAweGEyLCAweGUwLAotMHg0NCwgMHg0MCwgMHhmMCwgMHhhMywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHg2NSwgMHhkMiwgMHgwMywgMHhhMywgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwKLTB4OTAsIDB4ZmYsIDB4YTMsIDB4ZWYsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4NTUsIDB4MzAsIDB4MDMsIDB4MGUsIDB4OTAsIDB4ZmYsIDB4YTMsIDB4ZTAsCi0weDQ0LCAweDgwLCAweGYwLCAweGMyLCAweDAzLCAweGEzLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweGUwLCAweDU0LCAweGJmLAotMHhmMCwgMHg4MCwgMHgzYiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg2MCwgMHgxZCwgMHg5MCwgMHhmZiwgMHhiMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwKLTB4YTMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MjgsIDB4ZDIsIDB4MDQsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZGYsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjMsCi0weGVmLCAweDU0LCAweDdmLCAweGYwLCAweDgwLCAweDE4LCAweDMwLCAweDA0LCAweDBlLCAweDkwLCAweGZmLCAweGIzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLAotMHhjMiwgMHgwNCwgMHhhMywgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHhlNCwgMHhmZiwKLTB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWMsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4MjQsIDB4ZmMsIDB4NjAsIDB4MGYsIDB4MDQsIDB4NzAsCi0weDE2LCAweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDEyLCAweDFjLCAweGMxLCAweDEyLCAweDFhLCAweGU4LCAweDgwLCAweDBhLCAweDkwLCAweGZmLCAweGI2LAotMHhlMCwgMHgxMiwgMHgxYywgMHhjMSwgMHgxMiwgMHgxYSwgMHhlOCwgMHg3NSwgMHgzOSwgMHgwMCwgMHg3NSwgMHgzYSwgMHgwMSwgMHgwMiwgMHgyYywgMHhkOCwKLTB4OTAsIDB4ZjksIDB4MTUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MWMsIDB4NzQsIDB4MTksIDB4ZjAsIDB4OTAsIDB4ZjksIDB4NjYsIDB4NzQsCi0weGZmLCAweGYwLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweGU0LCAweGZmLCAweDEyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweGU3LCAweDdmLAotMHgwMywgMHgxMiwgMHgxMiwgMHg2MSwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgzMCwgMHhlNCwgMHgwOCwgMHg5MCwgMHhmZiwgMHg5MywgMHg3NCwgMHg4MCwKLTB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4N2YsIDB4ZmYsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MzAsCi0weGQzLCAweGMyLCAweDkwLCAweGMyLCAweGFmLCAweDAwLCAweDgwLCAweGZkLCAweGU0LCAweGY1LCAweDRlLCAweGY1LCAweDRmLCAweDkwLCAweGZhLCAweGJmLAotMHg3NCwgMHgzZSwgMHhmMCwgMHhhMywgMHhlNCwgMHhmMCwgMHg5MCwgMHhmYSwgMHhiNywgMHhmMCwgMHhhMywgMHg3NCwgMHgxNSwgMHhmMCwgMHhlMCwgMHg1NCwKLTB4M2YsIDB4ZmYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4ZmEsIDB4YmMsIDB4ZjAsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZTQsIDB4OTQsIDB4M2UsCi0weDQwLCAweDA4LCAweDkwLCAweGZhLCAweGMwLCAweGUwLCAweDkwLCAweGZhLCAweGJjLCAweGYwLCAweDEyLCAweDBmLCAweDk4LCAweGU1LCAweDMxLCAweDQ1LAotMHgzMCwgMHg3MCwgMHg3MywgMHgxMiwgMHgxYywgMHhmYSwgMHg5MCwgMHhmYSwgMHhiZiwgMHgxMiwgMHgxZSwgMHgwNiwgMHg2MCwgMHgyNywgMHhkMywgMHhlZiwKLTB4OTQsIDB4NDAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDgsIDB4OTAsIDB4ZmEsIDB4YmMsIDB4NzQsIDB4NDAsIDB4ZjAsIDB4ODAsIDB4MDgsIDB4OTAsCi0weGZhLCAweGMwLCAweGUwLCAweDkwLCAweGZhLCAweGJjLCAweGYwLCAweDEyLCAweDBmLCAweDk4LCAweGU1LCAweDMxLCAweDQ1LCAweDMwLCAweDcwLCAweDQ2LAotMHgxMiwgMHgxYywgMHhmYSwgMHg4MCwgMHhkMSwgMHg3NSwgMHg0YywgMHgwMiwgMHg5MCwgMHhmYSwgMHhiZiwgMHhlNCwgMHhmMCwgMHhhMywgMHgwNCwgMHhmMCwKLTB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4NGMsIDB4OTAsCi0weGZhLCAweGMwLCAweGUwLCAweGY1LCAweDRhLCAweDdkLCAweDBmLCAweDdjLCAweDAwLCAweDEyLCAweDI5LCAweDYwLCAweDc1LCAweDMwLCAweDAwLCAweDhmLAotMHgzMSwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHg0YywgMHhlNCwgMHhmNSwgMHgyZCwgMHhmNSwgMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwKLTB4OTgsIDB4ZTQsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4YWYsIDB4MzEsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWQsIDB4ODAsIDB4MzAsIDB4ZTcsCi0weDEwLCAweGUwLCAweDU0LCAweDBmLCAweDkwLCAweGY5LCAweDY3LCAweGYwLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDE1LCAweGMyLCAweDk1LCAweDgwLAotMHgxMSwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg1NCwgMHgwZiwgMHg5MCwgMHhmOSwgMHg2NSwgMHhmMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMiwKLTB4YzIsIDB4OTQsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4MTIsIDB4MWUsIDB4NGMsIDB4YmYsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4OTMsIDB4ODAsCi0weDAyLCAweGMyLCAweDkzLCAweGU0LCAweGZmLCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDFkLCAweDgwLCAweDU0LCAweDAzLCAweDE0LCAweDYwLCAweDBhLAotMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwgMHg2MCwgMHgwOCwgMHgyNCwgMHgwMywgMHg3MCwgMHgyYiwgMHhkMiwgMHg5MSwgMHg4MCwgMHgyNywgMHhjMiwgMHg5MSwKLTB4ODAsIDB4MjMsIDB4MTIsIDB4MWUsIDB4NTYsIDB4MTIsIDB4MGYsIDB4YzAsIDB4NjAsIDB4MDQsIDB4ZDIsIDB4OTEsIDB4ODAsIDB4MTcsIDB4OTAsIDB4ZmYsCi0weGE0LCAweGUwLCAweDQ0LCAweDEwLCAweDEyLCAweDBmLCAweGMwLCAweGZmLCAweGJmLCAweGEwLCAweDA0LCAweGMyLCAweDkxLCAweDgwLCAweDAyLCAweGQyLAotMHg5MSwgMHgxMiwgMHgxZSwgMHg1NiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhiYSwgMHhlMCwgMHg1NCwgMHgwYywgMHhmZiwgMHgxMywgMHgxMywgMHg1NCwgMHgzZiwKLTB4MTQsIDB4NjAsIDB4MGEsIDB4MTQsIDB4NjAsIDB4MGYsIDB4MTQsIDB4NjAsIDB4MDgsIDB4MjQsIDB4MDMsIDB4NzAsIDB4MmIsIDB4ZDIsIDB4OTIsIDB4ODAsCi0weDI3LCAweGMyLCAweDkyLCAweDgwLCAweDIzLCAweDEyLCAweDFlLCAweDVkLCAweDEyLCAweDBmLCAweGUwLCAweDYwLCAweDA0LCAweGQyLCAweDkyLCAweDgwLAotMHgxNywgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgxMCwgMHgxMiwgMHgwZiwgMHhlMCwgMHhmZiwgMHhiZiwgMHhhMCwgMHgwNCwgMHhjMiwgMHg5MiwKLTB4ODAsIDB4MDIsIDB4ZDIsIDB4OTIsIDB4MTIsIDB4MWUsIDB4NWQsIDB4ZjAsIDB4ZTQsIDB4ZmYsIDB4MDIsIDB4MzEsIDB4YTksIDB4ZTUsIDB4MzUsIDB4MzAsCi0weGU3LCAweDA3LCAweGU0LCAweGZkLCAweDdmLCAweDA1LCAweDAyLCAweDJmLCAweGI0LCAweDdmLCAweDA1LCAweDAyLCAweDMxLCAweGE5LCAweDEyLCAweDMyLAotMHg3YSwgMHgyMiwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmYSwgMHg3OSwgMHhiNiwgMHg5MCwgMHhmYSwgMHhiNywgMHhlMCwgMHhmNSwgMHgyZCwgMHhhMywgMHhlMCwKLTB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDMsIDB4MTIsIDB4MWIsCi0weDFjLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDIyLCAweGFhLCAweDRlLCAweGE5LCAweDRmLCAweDdiLCAweGZmLCAweDkwLCAweGZhLAotMHhiNywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHg5MCwgMHhmYSwgMHhiYywgMHhlMCwgMHhmNSwgMHg0YSwgMHgxMiwgMHgyOSwgMHg2MCwgMHg3NSwKLTB4MzAsIDB4MDAsIDB4OGYsIDB4MzEsIDB4MjIsIDB4MTIsIDB4MjMsIDB4NjEsIDB4N2UsIDB4MDAsIDB4OGUsIDB4MzAsIDB4OGYsIDB4MzEsIDB4ZWYsIDB4MjIsCi0weGYwLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDYxLCAweDkwLCAweGZmLCAweGE2LCAweGUwLCAweDkwLCAweGZhLCAweGJiLCAweGYwLCAweDU0LCAweGEwLAotMHgyMiwgMHgxMiwgMHgyNiwgMHg5OCwgMHg4ZiwgMHg0YywgMHg3ZSwgMHgwMCwgMHhjMywgMHhlZiwgMHg5NSwgMHgzYywgMHhlZSwgMHg5NSwgMHgzYiwgMHgyMiwKLTB4ZjAsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4NjEsIDB4OTAsIDB4ZmYsIDB4YjYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4YmIsIDB4ZjAsIDB4NTQsIDB4YTAsCi0weDIyLCAweDc1LCAweDM5LCAweDAwLCAweDc1LCAweDNhLCAweDAxLCAweDAyLCAweDJjLCAweGQ4LCAweDkwLCAweGZhLCAweGI5LCAweGUwLCAweGZmLCAweDAyLAotMHgzMiwgMHgzZiwgMHg4ZSwgMHgzOSwgMHg4ZiwgMHgzYSwgMHgwMiwgMHgyYywgMHhkOCwgMHgxMiwgMHgyMywgMHg2MSwgMHg3ZSwgMHgwMCwgMHg4ZSwgMHgzMCwKLTB4OGYsIDB4MzEsIDB4ZWYsIDB4MjIsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmEsIDB4YjQsIDB4ZTAsIDB4MjIsIDB4ZWYsIDB4OTAsCi0weGY4LCAweDA0LCAweGYwLCAweDIyLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweGVlLCAweDYwLCAweDBhLCAweGMwLCAweDA1LCAweDdkLCAweDdmLCAweGRkLAotMHhmZSwgMHhkZSwgMHhmYSwgMHhkMCwgMHgwNSwgMHhlZiwgMHhjMywgMHg5NCwgMHgxNSwgMHg1MCwgMHgwMywgMHhkMCwgMHhhOCwgMHgyMiwgMHgxMywgMHg3MCwKLTB4MDMsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4ZmYsIDB4ZDUsIDB4MDcsIDB4ZmQsIDB4ZDAsIDB4YTgsIDB4MjIsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsCi0weDAyLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGU1LCAweDNlLCAweDI0LCAweDA4LCAweGY4LCAweDg2LCAweDA1LCAweDUzLCAweDA1LCAweDdmLCAweDdjLAotMHhmZiwgMHgxMiwgMHgxMCwgMHhjMCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgwMCwgMHhlNSwgMHg0MywgMHg2MCwgMHg0NiwgMHhmYywgMHg5MCwgMHhmOSwgMHgxZCwKLTB4ZTAsIDB4NTQsIDB4N2YsIDB4NmQsIDB4NzAsIDB4MGYsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsCi0weGEzLCAweDE1LCAweDQzLCAweDgwLCAweDA3LCAweGEzLCAweGEzLCAweGEzLCAweGRjLCAweGU2LCAweDgwLCAweDI2LCAweGRjLCAweDA2LCAweGQwLCAweDgyLAotMHhkMCwgMHg4MywgMHg4MCwgMHgxZSwgMHhlMCwgMHhmOCwgMHhhMywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywKLTB4ZTgsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4ZjAsIDB4YTMsIDB4ZWEsIDB4ZjAsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YTMsIDB4YTMsIDB4YTMsCi0weDgwLCAweGRhLCAweDEyLCAweDExLCAweDU3LCAweGQwLCAweDA1LCAweGQwLCAweDA0LCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweDIyLAotMHg4NSwgMHhhOCwgMHg0NCwgMHg3NSwgMHhhOCwgMHg4OCwgMHhlYywgMHg3MCwgMHgwMiwgMHg3YywgMHgzZiwgMHg4YywgMHgzZCwgMHgyMiwgMHhlNSwgMHgzZSwKLTB4MjQsIDB4MDgsIDB4ZjgsIDB4NzYsIDB4MDAsIDB4MTIsIDB4MTEsIDB4YWUsIDB4ODAsIDB4ZmIsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsCi0weGMwLCAweDA0LCAweGMwLCAweDA2LCAweDdjLCAweGZmLCAweDEyLCAweDEwLCAweGMwLCAweGU1LCAweDQzLCAweDYwLCAweDQyLCAweGZlLCAweDkwLCAweGY5LAotMHgxZCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHg2ZiwgMHg3MCwgMHgwYiwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhhMywgMHhhMywgMHhhMywgMHgxNSwgMHg0MywKLTB4ODAsIDB4MDcsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZGUsIDB4ZWEsIDB4ODAsIDB4MjYsIDB4ZGUsIDB4MDYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ODAsCi0weGQ4LCAweGUwLCAweGY4LCAweGEzLCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGU4LCAweGYwLCAweGEzLAotMHhlOSwgMHhmMCwgMHhhMywgMHhlYSwgMHhmMCwgMHhhMywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkYSwgMHg3OCwKLTB4MDgsIDB4MDgsIDB4NzksIDB4MTgsIDB4MDksIDB4N2MsIDB4MDEsIDB4ZTYsIDB4NTQsIDB4N2YsIDB4NmYsIDB4NzAsIDB4MDYsIDB4NzYsIDB4MDAsIDB4NzcsCi0weDAwLCAweDgwLCAweDA2LCAweDA4LCAweDA5LCAweDBjLCAweGJjLCAweDA4LCAweGVlLCAweDEyLCAweDExLCAweDU3LCAweGQwLCAweDA2LCAweGQwLCAweDA0LAotMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHgyMiwgMHg3NSwgMHgzZCwgMHgwMCwgMHg4NSwgMHg0NCwgMHhhOCwgMHgyMiwgMHhjMCwgMHhmMCwKLTB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzMsIDB4ZTUsIDB4NDMsIDB4MjQsIDB4ZTgsIDB4NTAsIDB4MDUsIDB4MTIsIDB4MTEsIDB4YWUsIDB4ODAsIDB4ZjQsCi0weGVmLCAweDYwLCAweDMxLCAweDkwLCAweDMxLCAweDExLCAweGU0LCAweDkzLCAweGMzLCAweDlmLCAweDQwLCAweDJmLCAweGMwLCAweDA0LCAweDdjLCAweGZmLAotMHgxMiwgMHgxMCwgMHhjMCwgMHhkMCwgMHgwNCwgMHg0MywgMHgwNywgMHg4MCwgMHhlNSwgMHg0MywgMHg3NSwgMHhmMCwgMHgwMywgMHhhNCwgMHgyNCwgMHgxZCwKLTB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZWMsIDB4YTMsIDB4ZjAsIDB4ZWQsIDB4YTMsIDB4ZjAsIDB4MDUsCi0weDQzLCAweDEyLCAweDExLCAweDU3LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweGYwLCAweDIyLCAweDAyLCAweDExLCAweGRjLCAweGMwLCAweDA0LAotMHg3YywgMHgyMCwgMHhkMiwgMHg4YywgMHhkMiwgMHg4ZCwgMHhkNSwgMHgwNCwgMHhmZCwgMHhkMCwgMHgwNCwgMHgyMiwgMHg3NSwgMHhhOCwgMHgwMCwgMHg3NSwKLTB4ODgsIDB4MDAsIDB4NzUsIDB4YjgsIDB4MDAsIDB4NzUsIDB4ZjAsIDB4MDAsIDB4NzUsIDB4ZDAsIDB4MDAsIDB4ZTQsIDB4ZjgsIDB4OTAsIDB4ZjgsIDB4MDQsCi0weGYwLCAweDkwLCAweDAwLCAweDAwLCAweGY2LCAweDA4LCAweGI4LCAweDAwLCAweGZiLCAweDAyLCAweDAwLCAweDAwLCAweGMyLCAweGFmLCAweGU0LCAweDkwLAotMHhmZiwgMHg0OCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg1MCwgMHhmMCwgMHg5MCwgMHhmZiwgMHgwOCwgMHhmMCwgMHg5MCwgMHhmZiwgMHgxMCwgMHhmMCwgMHg5MCwKLTB4ZmYsIDB4ODAsIDB4ZjAsIDB4YTMsIDB4YTMsIDB4ZjAsIDB4ZDIsIDB4YjEsIDB4YzIsIDB4YjAsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsCi0weDI0LCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLCAweDI0LCAweDdlLCAweGZmLCAweDdmLCAweGZmLCAweDEyLCAweDEwLCAweDI0LCAweGQyLAotMHhiMCwgMHhkMiwgMHhiMSwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwgMHgyNCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmZiwgMHgxMiwgMHgxMCwKLTB4MjQsIDB4N2UsIDB4ZmYsIDB4N2YsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4MjQsIDB4ODAsIDB4Y2MsIDB4YzMsIDB4ZWUsIDB4OTQsIDB4MDIsIDB4NTAsIDB4MDQsCi0weDdlLCAweDAzLCAweDdmLCAweGU4LCAweGVmLCAweGY0LCAweGZmLCAweGVlLCAweGY0LCAweGZlLCAweDBmLCAweGJmLCAweDAwLCAweDAxLCAweDBlLCAweDhmLAotMHg0MiwgMHg4ZSwgMHg0MSwgMHgyMiwgMHhjMywgMHhlZiwgMHg5NCwgMHhiYywgMHhlZSwgMHg5NCwgMHgwMiwgMHg1MCwgMHgwNCwgMHg3ZSwgMHgwNywgMHg3ZiwKLTB4ZDAsIDB4ZWYsIDB4ZjQsIDB4ZmYsIDB4ZWUsIDB4ZjQsIDB4ZmUsIDB4MGYsIDB4YmYsIDB4MDAsIDB4MDEsIDB4MGUsIDB4OGYsIDB4NDAsIDB4OGUsIDB4M2YsCi0weDIyLCAweGVmLCAweDcwLCAweDAxLCAweDIyLCAweGMwLCAweDAwLCAweGMwLCAweGE4LCAweGMyLCAweGFmLCAweGU1LCAweDNlLCAweDI0LCAweDE4LCAweGY4LAotMHhhNiwgMHgwNywgMHhlNSwgMHgzZSwgMHgyNCwgMHgwOCwgMHhmOCwgMHhjNiwgMHg1NCwgMHg3ZiwgMHhmNiwgMHhkMCwgMHhhOCwgMHhlNiwgMHgzMCwgMHhlNywKLTB4MDMsIDB4ZDAsIDB4MDAsIDB4MjIsIDB4MTIsIDB4MTEsIDB4YWUsIDB4ODAsIDB4ZjQsIDB4YzAsIDB4MDAsIDB4N2YsIDB4MDEsIDB4ZWYsIDB4MjQsIDB4MDgsCi0weGY4LCAweGU2LCAweDYwLCAweDA5LCAweDBmLCAweGJmLCAweDA4LCAweGY1LCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGVlLCAweGQwLCAweDAwLCAweDIyLAotMHhjMCwgMHhmMCwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMCwgMHgwMCwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNCwgMHhlZCwgMHgyNCwgMHgxMCwgMHhmOCwKLTB4NzYsIDB4OWEsIDB4ZWQsIDB4NzUsIDB4ZjAsIDB4MjEsIDB4YTQsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjgsIDB4ZjUsIDB4ODMsCi0weGMwLCAweDgyLCAweGMwLCAweDgzLCAweGEzLCAweGEzLCAweGU0LCAweDc4LCAweDBkLCAweGYwLCAweGEzLCAweGQ4LCAweGZjLCAweGVmLCAweDU0LCAweDdmLAotMHg3NSwgMHhmMCwgMHgwMiwgMHhhNCwgMHgyNCwgMHhmMywgMHhmNSwgMHg4MiwgMHhlNSwgMHhmMCwgMHgzNCwgMHgzMCwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywKLTB4ZmUsIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZmMsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZWMsIDB4ZjAsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZWQsIDB4MjQsCi0weDA4LCAweGY4LCAweGVmLCAweDQ0LCAweDgwLCAweGY2LCAweGQwLCAweDA0LCAweGQwLCAweDA2LCAweGQwLCAweDAwLCAweGQwLCAweDgzLCAweGQwLCAweDgyLAotMHhkMCwgMHhmMCwgMHgyMiwgMHg3NSwgMHgzZSwgMHgwMCwgMHg3NSwgMHg0MywgMHgwMCwgMHg3YSwgMHgwOCwgMHg3OSwgMHgxOCwgMHg3OCwgMHgwOCwgMHg3NiwKLTB4MDAsIDB4NzcsIDB4MDAsIDB4MDgsIDB4MDksIDB4ZGEsIDB4ZjgsIDB4OTAsIDB4ZjgsIDB4MDQsIDB4ZTAsIDB4ZmMsIDB4OTAsIDB4MzEsIDB4MTEsIDB4ZTQsCi0weDkzLCAweGMzLCAweDljLCAweDUwLCAweDA1LCAweGU0LCAweDkwLCAweGY4LCAweDA0LCAweGYwLCAweDc4LCAweDA4LCAweDc0LCAweDgwLCAweDQ0LCAweDdmLAotMHhmNiwgMHg3NCwgMHgwMSwgMHg0NCwgMHgxMCwgMHhmNSwgMHg4OSwgMHg3NSwgMHhiOCwgMHgwMCwgMHhkMiwgMHhhYiwgMHhkMiwgMHhhOSwgMHgyMiwgMHg3NSwKLTB4ODEsIDB4OGIsIDB4ZDIsIDB4OGUsIDB4ZDIsIDB4OGMsIDB4ZDIsIDB4YWYsIDB4ZTUsIDB4NDMsIDB4NjAsIDB4MzYsIDB4ZmYsIDB4OTAsIDB4ZjksIDB4MWQsCi0weGUwLCAweDU0LCAweDgwLCAweDYwLCAweDI4LCAweDc4LCAweDA4LCAweDc5LCAweDA4LCAweGUwLCAweDU0LCAweDdmLCAweGZhLCAweDdiLCAweDAwLCAweGU2LAotMHg1NCwgMHg3ZiwgMHhiNSwgMHgwMiwgMHgwMiwgMHg3YiwgMHhmZiwgMHgwOCwgMHhkOSwgMHhmNSwgMHhlYiwgMHg3MCwgMHgxMCwgMHhlYSwgMHhmMCwgMHhjMCwKLTB4MDcsIDB4MTIsIDB4MTIsIDB4ODksIDB4YWQsIDB4MDcsIDB4YWYsIDB4MDIsIDB4MTIsIDB4MTIsIDB4YTAsIDB4ZDAsIDB4MDcsIDB4YTMsIDB4YTMsIDB4YTMsCi0weGRmLCAweGNlLCAweDEyLCAweDExLCAweGFlLCAweDgwLCAweGMxLCAweDhmLCAweDI0LCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLCAweGI1LCAweGEzLAotMHhhMywgMHhlMCwgMHhhMywgMHgzMCwgMHhlNywgMHgyOCwgMHg3OCwgMHg3ZSwgMHgxMiwgMHgyMiwgMHg5OSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgxMiwKLTB4MjIsIDB4ZmEsIDB4MTIsIDB4MjIsIDB4OWQsIDB4ZTAsIDB4MjAsIDB4ZTAsIDB4ZjYsIDB4MTIsIDB4MjMsIDB4NTAsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MTIsCi0weDIyLCAweGRhLCAweGUwLCAweGEzLCAweDMwLCAweGU1LCAweDA3LCAweDEyLCAweDIzLCAweDUwLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDc4LCAweDgwLAotMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhmZiwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwOCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgyMywKLTB4MzksIDB4OGEsIDB4ODMsIDB4MjQsIDB4MGEsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWQsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4MDYsIDB4MjQsIDB4MDcsIDB4MTIsCi0weDIyLCAweGExLCAweGUwLCAweGZmLCAweDEyLCAweDIzLCAweDVhLCAweDI0LCAweDA5LCAweDEyLCAweDIyLCAweGExLCAweGVmLCAweGYwLCAweDkwLCAweGY5LAotMHgxNiwgMHhlMCwgMHgzMCwgMHhlNCwgMHgyMCwgMHgwOCwgMHgxMiwgMHgyMiwgMHhiNywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhhMywgMHhlMCwgMHgyNSwKLTB4ZTAsIDB4ZmYsIDB4MDUsIDB4ODIsIDB4ZDUsIDB4ODIsIDB4MDIsIDB4MTUsIDB4ODMsIDB4MTUsIDB4ODIsIDB4ZTAsIDB4MzMsIDB4ZDAsIDB4ODIsIDB4ZDAsCi0weDgzLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDEyLCAweDIyLCAweGI1LCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGVjLCAweGZmLCAweDEyLAotMHgyMywgMHgzOSwgMHg4YSwgMHg4MywgMHgyNCwgMHgwOCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlZiwgMHhmMCwgMHhlZCwgMHgxMiwgMHgyMywgMHg1YSwgMHgyNCwKLTB4MDcsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZWQsIDB4ZjAsIDB4MTIsIDB4MjIsIDB4YTksIDB4ZTAsIDB4MzAsIDB4ZTYsIDB4MGEsIDB4MTIsIDB4MjMsIDB4NDEsCi0weDI0LCAweDA5LCAweDEyLCAweDIyLCAweGExLCAweGU0LCAweGYwLCAweDEyLCAweDIyLCAweGE5LCAweGUwLCAweGZmLCAweDMwLCAweGU3LCAweDFiLCAweDEyLAotMHgyMywgMHgxZSwgMHgyNCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg2MCwgMHgwOSwgMHgxMiwgMHgyMiwgMHhhOSwgMHhlZiwgMHg0NCwgMHgwMiwKLTB4ZjAsIDB4ODAsIDB4MDcsIDB4MTIsIDB4MjIsIDB4YTksIDB4ZWYsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4NzgsIDB4N2UsIDB4MTIsIDB4MjIsIDB4YjcsIDB4YTMsCi0weGEzLCAweGUwLCAweGZmLCAweDUzLCAweDA3LCAweGM3LCAweDA4LCAweGU2LCAweGZjLCAweDA4LCAweGU2LCAweGZkLCAweDEyLCAweDIyLCAweGUwLCAweGEzLAotMHhlMCwgMHgzMCwgMHhlMywgMHgxMiwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwKLTB4OTAsIDB4MzIsIDB4NTEsIDB4OTMsIDB4NDIsIDB4MDcsIDB4NTMsIDB4MDcsIDB4ZmIsIDB4MTIsIDB4MjMsIDB4MWUsIDB4MjQsIDB4MDYsIDB4MTIsIDB4MjIsCi0weGExLCAweGUwLCAweDYwLCAweDAzLCAweDQzLCAweDA3LCAweDA0LCAweDUzLCAweDA3LCAweGZjLCAweDc4LCAweDgwLCAweDEyLCAweDIzLCAweDI5LCAweDI0LAotMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg0MiwgMHgwNywgMHg0MywgMHgwNywgMHg4MCwgMHgxMiwgMHgyMywgMHgzOSwgMHhmNSwgMHg4MiwgMHg4YSwKLTB4ODMsIDB4YTMsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4NWEsIDB4MjQsIDB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4ZmYsIDB4OGQsCi0weDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweDMwLCAweGUxLCAweDA1LCAweDUzLCAweDA3LCAweGRmLAotMHg4MCwgMHgwMywgMHg0MywgMHgwNywgMHgyMCwgMHhlYywgMHgzMCwgMHhlNCwgMHgwNSwgMHg1MywgMHgwNywgMHhlZiwgMHg4MCwgMHgwMywgMHg0MywgMHgwNywKLTB4MTAsIDB4MTIsIDB4MjIsIDB4YTksIDB4ZTAsIDB4ZmUsIDB4NTQsIDB4MDMsIDB4NjAsIDB4NzMsIDB4NTMsIDB4MDcsIDB4ZGYsIDB4ZWUsIDB4MzAsIDB4ZTEsCi0weDY5LCAweDEyLCAweDIzLCAweDFlLCAweDI0LCAweDA5LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDEyLCAweDFiLCAweGZjLCAweDE1LCAweDJjLCAweDAwLAotMHgxNSwgMHg2MCwgMHgwMSwgMHgxNSwgMHg2NSwgMHgwMywgMHgxNSwgMHg2MCwgMHgwNSwgMHgxNSwgMHg2NSwgMHgwNywgMHgxNSwgMHg2MCwgMHgwOSwgMHgxNSwKLTB4NjUsIDB4MGIsIDB4MTUsIDB4NjAsIDB4MGQsIDB4MTUsIDB4NjUsIDB4MGYsIDB4MDAsIDB4MDAsIDB4MTUsIDB4NmQsIDB4ZTUsIDB4MjQsIDB4NjQsIDB4MDMsCi0weDcwLCAweDIxLCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweDMwLCAweGUyLCAweDBkLCAweDMwLCAweGI0LCAweDA1LCAweDQzLCAweDA3LCAweDAyLCAweDgwLAotMHgyYywgMHg1MywgMHgwNywgMHhmZCwgMHg4MCwgMHgyNywgMHgzMCwgMHg5NSwgMHgwNSwgMHg0MywgMHgwNywgMHgwMiwgMHg4MCwgMHgxZiwgMHg1MywgMHgwNywKLTB4ZmQsIDB4ODAsIDB4MWEsIDB4MzAsIDB4OTMsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDIsIDB4ODAsIDB4MTIsIDB4NTMsIDB4MDcsIDB4ZmQsIDB4ODAsIDB4MGQsCi0weDQzLCAweDA3LCAweDAyLCAweDgwLCAweDA4LCAweDUzLCAweDA3LCAweGZkLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGZkLCAweDEyLCAweDIzLCAweDI3LAotMHgyNCwgMHgwNCwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlZiwgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmZiwKLTB4MTIsIDB4MjIsIDB4YTksIDB4ZTAsIDB4ZmUsIDB4NTQsIDB4MDMsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTYsIDB4NjAsIDB4ZWUsIDB4MjAsIDB4ZTEsIDB4MDMsCi0weDAyLCAweDE2LCAweDVkLCAweDA4LCAweDEyLCAweDIzLCAweDIwLCAweDI0LCAweDA5LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDEyLCAweDFiLCAweGZjLAotMHgxNSwgMHhiZiwgMHgwMCwgMHgxNSwgMHhmNSwgMHgwMSwgMHgxNSwgMHhmNSwgMHgwMywgMHgxNiwgMHgyOSwgMHgwNSwgMHgxNiwgMHgyOSwgMHgwNywgMHgxNiwKLTB4MGYsIDB4MDksIDB4MTYsIDB4MGYsIDB4MGIsIDB4MTYsIDB4NDMsIDB4MGQsIDB4MTYsIDB4NDMsIDB4MGYsIDB4MDAsIDB4MDAsIDB4MTYsIDB4NjAsIDB4ZTUsCi0weDI0LCAweDY0LCAweDAzLCAweDcwLCAweDIzLCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweDMwLCAweGUyLCAweDBmLCAweDMwLCAweGIxLCAweDA2LCAweDUzLAotMHgwNywgMHg3ZiwgMHgwMiwgMHgxNiwgMHg2MCwgMHg0MywgMHgwNywgMHg4MCwgMHgwMiwgMHgxNiwgMHg2MCwgMHgzMCwgMHg5NCwgMHgwNSwgMHg1MywgMHgwNywKLTB4N2YsIDB4ODAsIDB4N2QsIDB4NDMsIDB4MDcsIDB4ODAsIDB4ODAsIDB4NzgsIDB4MzAsIDB4OTIsIDB4MDUsIDB4NTMsIDB4MDcsIDB4N2YsIDB4ODAsIDB4NzAsCi0weDQzLCAweDA3LCAweDgwLCAweDgwLCAweDZiLCAweGU1LCAweDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGVmLAotMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg1MywgMHgwNywgMHg3ZiwgMHg4MCwgMHg1MSwgMHhlNSwKLTB4MjQsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4OWUsCi0weGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDUzLCAweDA3LCAweDdmLCAweDgwLCAweDM3LCAweGU1LCAweDI0LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLAotMHg5ZSwgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHg0MywgMHgwNywKLTB4ODAsIDB4ODAsIDB4MWQsIDB4ZTUsIDB4MjQsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsCi0weDA3LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDQzLCAweDA3LCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweDdmLAotMHgxMiwgMHgyMiwgMHhkYSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHgzMCwgMHhlMCwgMHgwNSwgMHg0MywgMHgwNywgMHgyMCwgMHg4MCwgMHgwMywKLTB4NTMsIDB4MDcsIDB4ZGYsIDB4ZWMsIDB4MzAsIDB4ZTMsIDB4MDUsIDB4NDMsIDB4MDcsIDB4NDAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4YmYsIDB4ZWMsCi0weDMwLCAweGUwLCAweDA1LCAweDQzLCAweDA3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGVmLCAweGVkLCAweDMwLCAweGU0LCAweDA1LCAweDQzLAotMHgwNywgMHgwOCwgMHg4MCwgMHgwMywgMHg1MywgMHgwNywgMHhmNywgMHhlZCwgMHgzMCwgMHhlNSwgMHgwNSwgMHg0MywgMHgwNywgMHgwNCwgMHg4MCwgMHgwMywKLTB4NTMsIDB4MDcsIDB4ZmIsIDB4ZWQsIDB4MzAsIDB4ZTYsIDB4MDUsIDB4NDMsIDB4MDcsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MDcsIDB4ZmUsIDB4ZWQsCi0weDMwLCAweGU3LCAweDA1LCAweDQzLCAweDA3LCAweDAyLCAweDgwLCAweDAzLCAweDUzLCAweDA3LCAweGZkLCAweDc4LCAweDdlLCAweDEyLCAweDIyLCAweGRjLAotMHhhMywgMHhlZiwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3ZiwgMHgwMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmYSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhMywKLTB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ZjksIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4Y2YsIDB4ZTQsCi0weGZkLCAweDEyLCAweDIzLCAweDYxLCAweDkwLCAweGZhLCAweGNmLCAweGU0LCAweDc1LCAweGYwLCAweDAzLCAweDEyLCAweDFiLCAweDFjLCAweDEyLCAweDE5LAotMHg5MiwgMHhlNSwgMHgyMywgMHgzMCwgMHhlNywgMHgwMiwgMHhkMiwgMHgwMiwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyNCwgMHg5MCwgMHhmYSwKLTB4Y2YsIDB4ZTAsIDB4ZjUsIDB4MmQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MmUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmEsIDB4Y2YsCi0weGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBiLCAweGYwLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDIzLCAweDc1LCAweDJkLCAweDAwLCAweGY1LAotMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHhlNSwgMHgyMywgMHgyNCwgMHg4MCwgMHg5MCwgMHhmZiwgMHhmOCwgMHhmMCwgMHhlNSwgMHgyMywKLTB4NjQsIDB4MDcsIDB4NjAsIDB4MWUsIDB4ZTUsIDB4MjMsIDB4NjQsIDB4MDYsIDB4NjAsIDB4MTgsIDB4ZTUsIDB4MjMsIDB4NjQsIDB4MTQsIDB4NjAsIDB4MTIsCi0weGU1LCAweDIzLCAweDY0LCAweDQxLCAweDYwLCAweDBjLCAweGU1LCAweDIzLCAweDY0LCAweDFhLCAweDcwLCAweDQ2LCAweGU1LCAweDI0LCAweDY0LCAweDAyLAotMHg3MCwgMHg0MCwgMHhlNSwgMHgyMywgMHhiNCwgMHgwNywgMHgxNiwgMHhkMiwgMHg5NCwgMHhkMiwgMHg5NSwgMHhkMiwgMHg5MiwgMHhkMiwgMHg5MywgMHg5MCwKLTB4ZjksIDB4MTYsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MWUsIDB4ZTUsIDB4MjMsIDB4YjQsCi0weDQxLCAweDEyLCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweDQ0LCAweDA2LCAweGYwLCAweGEzLCAweGUwLCAweDQ0LCAweDA2LCAweGYwLCAweGQyLCAweGIxLAotMHhkMiwgMHhiNCwgMHg4MCwgMHgwNywgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHhmOSwgMHgxNywgMHhlMCwgMHg0NCwKLTB4MDEsIDB4ZjAsIDB4ZTUsIDB4MjMsIDB4NjQsIDB4NDIsIDB4NjAsIDB4MGMsIDB4ZTUsIDB4MjMsIDB4NjQsIDB4NDMsIDB4NjAsIDB4MDYsIDB4ZTUsIDB4MjMsCi0weDY0LCAweDQ0LCAweDcwLCAweDJlLCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweGZmLCAweGU1LCAweDIzLCAweGI0LCAweDQ0LCAweDA0LCAweDdlLCAweDQwLAotMHg4MCwgMHgwMiwgMHg3ZSwgMHgwMCwgMHhlZSwgMHgyNCwgMHg4MCwgMHg0ZiwgMHg5MCwgMHhmOSwgMHgxNiwgMHhmMCwgMHhhMywgMHhlMCwgMHhmZiwgMHhlNSwKLTB4MjMsIDB4YjQsIDB4NDQsIDB4MDQsIDB4N2UsIDB4NDAsIDB4ODAsIDB4MDIsIDB4N2UsIDB4MDAsIDB4ZWUsIDB4MjQsIDB4ODAsIDB4NGYsIDB4OTAsIDB4ZjksCi0weDE3LCAweGYwLCAweDkwLCAweGZhLCAweGNmLCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBkLCAweGYwLCAweDEyLCAweDE5LCAweDkyLCAweDkwLCAweGZmLAotMHhmNSwgMHhlNSwgMHgyMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNSwgMHhmNSwgMHgzMywgMHhmNSwgMHgzNCwgMHhmNSwgMHgzMiwgMHgxMiwgMHgxZSwgMHgzNCwKLTB4MTIsIDB4MWMsIDB4ZTAsIDB4MTIsIDB4MWUsIDB4M2IsIDB4OTAsIDB4ZjksIDB4NmEsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4OTAsIDB4ZjksIDB4NmYsIDB4MTIsCi0weDFiLCAweGYzLCAweDkwLCAweGZmLCAweGZmLCAweGU0LCAweGYwLCAweDkwLCAweGZmLCAweDgzLCAweGUwLCAweGU0LCAweGYwLCAweDkwLCAweGZmLCAweDgxLAotMHg3NCwgMHg4MCwgMHhmMCwgMHhhMywgMHg3NCwgMHg4NCwgMHhmMCwgMHg5MCwgMHhmZiwgMHg4MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgyMywgMHhlNSwgMHgyMywgCi0weDEyLCAweDFkLCAweDU3LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDIzLCAweDEyLCAweDFkLCAweDY1LCAweGY1LCAweDgzLCAweGU0LCAweGYwLAotMHgwNSwgMHgyMywgMHhlNSwgMHgyMywgMHhiNCwgMHgwNywgMHhlNywgMHg3OCwgMHg3YSwgMHg3NiwgMHhmZSwgMHgwOCwgMHg3NiwgMHhmMCwgMHg5MCwgMHgzMiwKLTB4MGEsIDB4ZTQsIDB4OTMsIDB4ZmYsIDB4NzgsIDB4NzgsIDB4ZjYsIDB4ZmQsIDB4YWQsIDB4MDcsIDB4OTAsIDB4MzIsIDB4MTcsIDB4ZTQsIDB4OTMsIDB4ZmYsCi0weDA4LCAweGY2LCAweGZmLCAweGVkLCAweDU0LCAweDBmLCAweGZkLCAweDEyLCAweDFkLCAweDQ3LCAweDc0LCAweDg0LCAweGYwLCAweGVkLCAweDc1LCAweGYwLAotMHgwOCwgMHhhNCwgMHgyNCwgMHg0NywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhjMywgMHg3NCwgMHhmMCwgCi0weDlmLCAweDc4LCAweDdiLCAweGY2LCAweDc0LCAweGZlLCAweDk0LCAweDAwLCAweDE4LCAweDEyLCAweDFjLCAweGQ4LCAweGNlLCAweGMzLCAweDEzLCAweGNlLAotMHgxMywgMHhkOCwgMHhmOSwgMHhmZiwgMHhlZCwgMHgxMiwgMHgxZCwgMHhhOCwgMHhlZiwgMHhmMCwgMHhlZCwgMHgxMiwgMHgxZCwgMHhjZSwgMHhlNCwgMHhmNSwKLTB4MjMsIDB4ZTUsIDB4MjMsIDB4OTAsIDB4MzIsIDB4MDQsIDB4OTMsIDB4ZmYsIDB4NzgsIDB4NzgsIDB4ZjYsIDB4ZmQsIDB4ZTUsIDB4MjMsIDB4MjUsIDB4ZTAsCi0weDI0LCAweDBiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDMyLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDA4LCAweGY2LCAweGVkLCAweDMwLCAweGU3LAotMHg1MywgMHgxOCwgMHhlNiwgMHg1NCwgMHgwZiwgMHhmOSwgMHgxMiwgMHgxZCwgMHg0NywgMHgxMiwgMHgxZCwgMHhiNiwgMHgyNCwgMHg0NywgMHhmNSwgMHg4MiwKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4MTIsIDB4MWMsIDB4YzgsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTksIDB4MTIsCi0weDFkLCAweGE4LCAweGVmLCAweGYwLCAweDEyLCAweDFjLCAweGNmLCAweGNlLCAweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweDEyLCAweDFkLAotMHhiYiwgMHgyNCwgMHg0NSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlOSwgMHgxMiwgMHgxZCwgMHhjZSwKLTB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ODAsIAotMHhmMCwgMHgwMiwgMHgxOSwgMHg2NywgMHg3OCwgMHg3OCwgMHhlNiwgMHg1NCwgMHgwZiwgMHhmOSwgMHgxMiwgMHgxZCwgMHg5YSwgMHgxMiwgMHgxZCwgMHhiNiwKLTB4MjQsIDB4MDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4MTIsIDB4MWMsIDB4YzgsIDB4Y2UsIDB4YzMsIDB4MTMsIDB4Y2UsIDB4MTMsIDB4ZDgsCi0weGY5LCAweDEyLCAweDFkLCAweGJiLCAweDI0LCAweDAxLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDEyLAotMHgxYywgMHhjZiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHgxMiwgMHgxZCwgMHhiYiwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwKLTB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODIsIAotMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlOSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgCi0weGU0LCAweDM0LCAweGZmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDA1LCAweDIzLCAweGU1LCAweDIzLCAweDY0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAKLTB4MTgsIDB4OTEsIDB4OTAsIDB4MzIsIDB4MDksIDB4ZTQsIDB4OTMsIDB4ZmYsIDB4NzgsIDB4NzgsIDB4ZjYsIDB4MTIsIDB4MWQsIDB4OTgsIDB4ZTQsIDB4ZjAsCi0weDkwLCAweDMyLCAweDA4LCAweDkzLCAweGZmLCAweGY2LCAweDEyLCAweDFkLCAweDQ1LCAweGU0LCAweGYwLCAweDkwLCAweGZmLCAweGZkLCAweDc0LCAweDA1LAotMHhmMCwgMHgyMiwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgyMywgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwKLTB4MWIsIDB4MzIsIDB4ODUsIDB4ZjAsIDB4MmUsIDB4ZjUsIDB4MmQsIDB4N2QsIDB4MDEsIDB4MDIsIDB4MjYsIDB4OTgsIDB4ZTcsIDB4MDksIDB4ZjYsIDB4MDgsCi0weGRmLCAweGZhLCAweDgwLCAweDQ2LCAweGU3LCAweDA5LCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDNlLCAweDg4LCAweDgyLCAweDhjLCAweDgzLCAKLTB4ZTcsIDB4MDksIDB4ZjAsIDB4YTMsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4MzIsIDB4ZTMsIDB4MDksIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NzgsIAotMHhlMywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg3MCwgMHg4OCwgMHg4MiwgMHg4YywgMHg4MywgMHhlMywgMHgwOSwgMHhmMCwgMHhhMywgCi0weGRmLCAweGZhLCAweDgwLCAweDY0LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGEzLCAweGY2LCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDU4LCAKLTB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4YTMsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NGMsIDB4ODAsIDB4ZDIsIDB4ODAsIDB4ZmEsIAotMHg4MCwgMHhjNiwgMHg4MCwgMHhkNCwgMHg4MCwgMHg2OSwgMHg4MCwgMHhmMiwgMHg4MCwgMHgzMywgMHg4MCwgMHgxMCwgMHg4MCwgMHhhNiwgMHg4MCwgMHhlYSwgCi0weDgwLCAweDlhLCAweDgwLCAweGE4LCAweDgwLCAweGRhLCAweDgwLCAweGUyLCAweDgwLCAweGNhLCAweDgwLCAweDMzLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAKLTB4ZWMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZjAsIDB4YTMsIDB4YzgsIAotMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHgwZCwgMHg4OSwgMHg4MiwgMHg4YSwgCi0weDgzLCAweGU0LCAweDkzLCAweGEzLCAweGY2LCAweDA4LCAweGRmLCAweGY5LCAweGVjLCAweGZhLCAweGE5LCAweGYwLCAweGVkLCAweGZiLCAweDIyLCAweDg5LCAKLTB4ODIsIDB4OGEsIDB4ODMsIDB4ZWMsIDB4ZmEsIDB4ZTAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2MsIDB4YzUsIDB4ODMsIDB4Y2MsIDB4ZjAsIAotMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhkZiwgMHhlYSwgMHhkZSwgMHhlOCwgMHg4MCwgMHhkYiwgMHg4OSwgCi0weDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweGEzLCAweGYyLCAweDA4LCAweGRmLCAweGY5LCAweDgwLCAweGNjLCAweDg4LCAweGYwLCAweGVmLCAweDYwLCAKLTB4MDEsIDB4MGUsIDB4NGUsIDB4NjAsIDB4YzMsIDB4ODgsIDB4ZjAsIDB4ZWQsIDB4MjQsIDB4MDIsIDB4YjQsIDB4MDQsIDB4MDAsIDB4NTAsIDB4YjksIDB4ZjUsIAotMHg4MiwgMHhlYiwgMHgyNCwgMHgwMiwgMHhiNCwgMHgwNCwgMHgwMCwgMHg1MCwgMHhhZiwgMHgyMywgMHgyMywgMHg0NSwgMHg4MiwgMHgyMywgMHg5MCwgMHgxOSwgCi0weGZjLCAweDczLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLAotMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgCi0weDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAKLTB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIAotMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgCi0weDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGY4LCAweGJiLCAweDAxLCAweDBkLCAweGU1LCAweDgyLCAKLTB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTgsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIAotMHhjOCwgMHhmNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmMiwgMHgyMiwgMHhjNSwgMHhmMCwgMHhmOCwgMHhhMywgCi0weGUwLCAweDI4LCAweGYwLCAweGM1LCAweGYwLCAweGY4LCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyLCAweDE1LCAweDgzLCAweGUwLCAweDM4LCAKLTB4ZjAsIDB4MjIsIDB4YTMsIDB4ZjgsIDB4ZTAsIDB4YzUsIDB4ZjAsIDB4MjUsIDB4ZjAsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MTUsIDB4ODIsIDB4NzAsIDB4MDIsIAotMHgxNSwgMHg4MywgMHhlMCwgMHhjOCwgMHgzOCwgMHhmMCwgMHhlOCwgMHgyMiwgMHhiYiwgMHgwMSwgMHgxMCwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgCi0weGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwLCAweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAKLTB4ZjgsIDB4ODYsIDB4ZjAsIDB4MDgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MGEsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4ZjUsIDB4ZjAsIAotMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4MywgMHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMiwgCi0weGJiLCAweDAxLCAweDBhLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweGU1LCAweGYwLCAweGEzLCAweGYwLCAweDIyLCAweDUwLCAweDA2LCAweGY3LCAKLTB4MDksIDB4YTcsIDB4ZjAsIDB4MTksIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZjMsIDB4ZTUsIDB4ZjAsIDB4MDksIDB4ZjMsIDB4MTksIDB4MjIsIDB4ZjgsIAotMHhiYiwgMHgwMSwgMHgxMSwgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlOCwgMHhmMCwgMHhlNSwgCi0weGYwLCAweGEzLCAweGYwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGM4LCAweGY2LCAweDA4LCAweGE2LCAweGYwLCAweDIyLCAweGJiLCAKLTB4ZmUsIDB4MDksIDB4ZTksIDB4MjUsIDB4ODIsIDB4YzgsIDB4ZjIsIDB4ZTUsIDB4ZjAsIDB4MDgsIDB4ZjIsIDB4MjIsIDB4YTQsIDB4MjUsIDB4ODIsIDB4ZjUsIAotMHg4MiwgMHhlNSwgMHhmMCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHgyMiwgMHhlNiwgMHhmYiwgMHgwOCwgMHhlNiwgMHhmYSwgMHgwOCwgMHhlNiwgMHhmOSwgCi0weDIyLCAweGViLCAweGY2LCAweDA4LCAweGVhLCAweGY2LCAweDA4LCAweGU5LCAweGY2LCAweDIyLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAKLTB4ZTAsIDB4ZjksIDB4MjIsIDB4ZWIsIDB4ZjAsIDB4YTMsIDB4ZWEsIDB4ZjAsIDB4YTMsIDB4ZTksIDB4ZjAsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIAotMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgCi0weDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLCAKLTB4ODAsIDB4ZGYsIDB4YWIsIDB4MzYsIDB4YWEsIDB4MzcsIDB4YTksIDB4MzgsIDB4ZTUsIDB4NGMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4NzQsIDB4MDEsIDB4MjUsCi0weDM4LCAweGY1LCAweDM4LCAweGU0LCAweDM1LCAweDM3LCAweGY1LCAweDM3LCAweGFiLCAweDM2LCAweGZhLCAweGE5LCAweDM4LCAweDc0LCAweDExLCAweDEyLCAKLTB4MWEsIDB4ZTgsIDB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4OTAsIDB4ZmYsIDB4MDYsCi0weGUwLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDEyLCAweDFhLCAweGU4LCAweDc0LCAweDAxLCAweDI1LCAweDM4LCAweGY1LCAweDM4LAotMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHhhYiwgMHgzNiwgMHhmYSwgMHhhOSwgMHgzOCwgMHhlNCwgMHgxMiwgMHgxYSwgMHhlOCwgMHgwNCwgMHgyNSwKLTB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsIDB4MzcsIDB4ZjUsIDB4MzcsIDB4YWIsIDB4MzYsIDB4ZmEsIDB4YTksIDB4MzgsIDB4ZTQsIDB4MTIsIDB4MWEsIAotMHhlOCwgMHgwNCwgMHgyNSwgMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHg5MCwgMHhmZiwgMHgwNCwgMHhlMCwgMHhhYiwKLTB4MzYsIDB4YWEsIDB4MzcsIDB4YTksIDB4MzgsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4NzQsIDB4MDEsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4MzgsIDB4ZTQsIDB4MzUsCi0weDM3LCAweGY1LCAweDM3LCAweDkwLCAweGZmLCAweDA1LCAweGUwLCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDEyLCAweDFhLCAweGU4LAotMHg3NCwgMHgwMSwgMHgyNSwgMHgzOCwgMHhmNSwgMHgzOCwgMHhlNCwgMHgzNSwgMHgzNywgMHhmNSwgMHgzNywgMHgyMiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgCi0weDA4LCAweGFiLCAweDM2LCAweGFhLCAweDM3LCAweGE5LCAweDM4LCAweDIyLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGZkLCAweDdjLCAweDAwLCAweGMzLCAKLTB4NzgsIDB4N2IsIDB4ZTYsIDB4OWQsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4OWMsIDB4ZjYsIDB4ZTYsIDB4ZmUsIDB4MDgsIDB4ZTYsIDB4NzgsIDB4MDMsIDB4MjIsIAotMHg3NSwgMHgzNiwgMHgwMSwgMHg3NSwgMHgzNywgMHhmOSwgMHg3NSwgMHgzOCwgMHg3MiwgMHgyMiwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHg3NCwgMHgxMywKLTB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZjksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YmMsIDB4ZTAsIDB4ZmYsIDB4N2UsCi0weDAwLCAweGMzLCAweDkwLCAweGZhLCAweGMwLCAweGUwLCAweDlmLCAweGYwLCAweDkwLCAweGZhLCAweGJmLCAweGUwLCAweDllLCAweGYwLCAweDkwLCAweGZhLAotMHhiNywgMHhlZSwgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYiwgMHgxYywgMHhlZiwgMHgyNSwgMHg0ZiwgMHhmNSwgMHg0ZiwgMHhlZSwgMHgzNSwgMHg0ZSwgMHhmNSwKLTB4NGUsIDB4MjIsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4YjQsIDB4OTAsIDB4ZmEsIDB4YjcsIDB4ZTAsIDB4ZjUsIDB4MmQsIDB4YTMsIDB4ZTAsCi0weGY1LCAweDJlLCAweDIyLCAweDc4LCAweDdjLCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDhlLCAweDgzLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAKLTB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NTQsIDB4MGYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIAotMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHgyMiwgMHhlNSwgMHg0ZCwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHg0OCwgMHhmNSwgMHg4MiwgMHhlNCwgCi0weDM0LCAweGZmLCAweDIyLCAweGU1LCAweDRkLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZmLCAKLTB4MjIsIDB4OTAsIDB4ZmEsIDB4YjksIDB4ZTAsIDB4ZmYsIDB4MjQsIDB4ZmMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4MDAsIDB4ZTAsIDB4NTQsIDB4MWYsIDB4MjIsCi0weDkwLCAweGZhLCAweGJlLCAweGUwLCAweDkwLCAweGZhLCAweGJhLCAweGYwLCAweDIyLCAweDc1LCAweDMzLCAweDAwLCAweDhmLCAweDM0LCAweDkwLCAweGY5LAotMHg2ZiwgMHgxMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHgwMCwgMHgwMiwgMHgyMiwgMHg1NCwgMHgwZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwKLTB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4NDEsIDB4ZjUsIDB4ODIsIAotMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHgyMiwgMHg3NCwgMHg4MCwgMHhmMCwgMHgwOCwgMHhlNiwgMHhmZiwgMHhlOSwgMHg3NSwgMHhmMCwgMHgwOCwgCi0weGE0LCAweDIyLCAweDc0LCAweGIyLCAweDI1LCAweDIyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZhLCAweGY1LCAweDgzLCAweDIyLCAweDc1LCAweGYwLAotMHgwOCwgMHhhNCwgMHgyNCwgMHg0MiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZiwgMHhmNSwgMHg4MywgMHg3NCwgMHg4MCwgMHhmMCwgMHgyMiwgMHg5MCwgCi0weGZmLCAweDgyLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDIyLCAweDkwLCAweGZmLCAweGZlLCAweGUwLCAweDQ0LCAweDAzLCAweGYwLCAweDkwLCAweGZmLCAKLTB4ZmMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MjIsIDB4NzgsIDB4NjcsIDB4ZTYsIDB4NTQsIDB4ZmQsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4ZmQsIDB4NzQsIAotMHg2NSwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxYiwgMHhjYywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg0ZSwgMHgyMiwgMHg3YiwgMHgwMSwgMHg3YSwKLTB4ZmEsIDB4NzksIDB4YjcsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ODAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ODMsIDB4ZTAsCi0weDU0LCAweDdmLCAweGYwLCAweDIyLCAweGUwLCAweGZmLCAweDkwLCAweGY5LCAweDZhLCAweDAyLCAweDFiLCAweGVhLCAweDkwLCAweGZmLCAweGE0LCAweGUwLAotMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHg3NSwgMHgzOSwgMHgwMSwgMHg3NSwgMHgzYSwgMHgwOSwgMHgyMiwgMHg3YiwgMHgwMSwgMHg3YSwgMHhmOSwgMHg3OSwgCi0weDcyLCAweDIyLCAweGQzLCAweGU1LCAweDNjLCAweDk0LCAweDA4LCAweGU1LCAweDNiLCAweDk0LCAweDAxLCAweDIyLCAweDkwLCAweGZhLCAweGJlLCAweGUwLAotMHhmZiwgMHg5MCwgMHhmYSwgMHhiYSwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg1NCwgMHhlZiwgMHgyMiwgMHg5MCwgMHhmZiwgMHhiNCwKLTB4ZTAsIDB4NTQsIDB4ZWYsIDB4MjIsIDB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODgsIDB4ZWYsIDB4ZjYsIDB4MTIsIDB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsCi0weGZhLCAweDhlLCAweDgzLCAweDI0LCAweDA5LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweGZkLCAweDEyLCAweDIyLCAweGU4LCAweDkwLCAweDAwLCAweDBhLAotMHgxMiwgMHgyMywgMHgwMiwgMHgyNCwgMHgwYSwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg5MCwgMHgwMCwgMHgwYiwgMHgxMiwgMHgxYSwgMHhmYSwgMHgxMiwKLTB4MjIsIDB4ZmEsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4MTIsIDB4MjMsIDB4MDYsIDB4MjQsCi0weDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweGY1LCAweDU0LCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGY1LCAweDU1LAotMHhlNSwgMHg1MywgMHhjNCwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgwMSwgMHg3OCwgMHg4OCwgMHhmNiwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgCi0weGU1LCAweDU0LCAweDMwLCAweGUxLCAweDAxLCAweDA2LCAweDc4LCAweDg4LCAweGU2LCAweDEyLCAweDIyLCAweGU3LCAweDkwLCAweDAwLCAweDBjLCAweGVmLAotMHgxMiwgMHgxYSwgMHhmYSwgMHgxMiwgMHgyMiwgMHhiNSwgMHhhMywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHg1MywgMHgwNywgMHgwYywKLTB4NTMsIDB4MDYsIDB4ZTYsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTUsIDB4MDMsIDB4NDMsIDB4MDcsIDB4MDEsIDB4ZTUsIDB4NTQsIDB4MjAsIDB4ZTUsIDB4MGUsCi0weGU1LCAweDUzLCAweDU0LCAweDdmLCAweDcwLCAweDA4LCAweGU1LCAweDUzLCAweDIwLCAweGU3LCAweDAzLCAweDQzLCAweDA3LCAweDAyLCAweGU1LCAweDUzLAotMHgzMCwgMHhlMywgMHgwMywgMHg0MywgMHgwNywgMHgxMCwgMHhlNSwgMHg1MywgMHgzMCwgMHhlMiwgMHgwMywgMHg0MywgMHgwNywgMHgyMCwgMHhlNSwgMHg1MywKLTB4NTQsIDB4MDMsIDB4NjAsIDB4MDMsIDB4NDMsIDB4MDcsIDB4NDAsIDB4ZTUsIDB4NTMsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4NDMsIDB4MDcsIDB4ODAsIDB4ZTUsCi0weDUzLCAweDMwLCAweGU0LCAweDAzLCAweDQzLCAweDA2LCAweDAxLCAweGU1LCAweDUzLCAweDMwLCAweGU2LCAweDAzLCAweDQzLCAweDA2LCAweDA4LCAweGU1LAotMHg1NCwgMHgyMCwgMHhlNCwgMHgwZSwgMHhlNSwgMHg1MywgMHg1NCwgMHg3ZiwgMHg3MCwgMHgwOCwgMHhlNSwgMHg1MywgMHgyMCwgMHhlNywgMHgwMywgMHg0MywKLTB4MDYsIDB4MTAsIDB4NTMsIDB4MDcsIDB4ZmIsIDB4NTMsIDB4MDYsIDB4NzksIDB4OTAsIDB4MDAsIDB4MDUsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsCi0weDlmLCAweGU1LCAweDU1LCAweDMwLCAweGUzLCAweDEyLCAweDU0LCAweDMwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDEyLCAweDIyLCAweGU3LCAweDkwLAotMHgwMCwgMHgwOCwgMHhlZiwgMHgxMiwgMHgxYSwgMHhmYSwgMHg4MCwgMHgwYSwgMHgxMiwgMHgyMiwgMHhlOCwgMHg5MCwgMHgwMCwgMHgwOCwgMHhlNCwgMHgxMiwKLTB4MWEsIDB4ZmEsIDB4ZTUsIDB4NTUsIDB4NTQsIDB4MDMsIDB4MTIsIDB4MjIsIDB4ZTcsIDB4OTAsIDB4MDAsIDB4MDcsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsCi0weGU1LCAweDU1LCAweDU0LCAweDA0LCAweGZmLCAweGMzLCAweDEzLCAweDkwLCAweDAwLCAweDA5LCAweDEyLCAweDFhLCAweGZhLCAweDkwLCAweDAwLCAweDA3LAotMHgxMiwgMHgxYSwgMHhiYiwgMHg3MCwgMHgxMywgMHgxMiwgMHgyMiwgMHhlOCwgMHhlOSwgMHgyNCwgMHgwOSwgMHhmOSwgMHhlNCwgMHgzYSwgMHhmYSwgMHgxMiwKLTB4MWEsIDB4YTIsIDB4ZmYsIDB4YzMsIDB4MTMsIDB4MTIsIDB4MWEsIDB4ZTgsIDB4MTIsIDB4MjMsIDB4MjcsIDB4MjQsIDB4MDgsIDB4MTIsIDB4MjIsIDB4YTEsCi0weGUwLCAweGZlLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA3LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweGZkLCAweGVlLAotMHhlZCwgMHgxMiwgMHgyMiwgMHhlNywgMHg5MCwgMHgwMCwgMHgwMywgMHhlZSwgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYiwgMHg5ZiwgMHgxMiwgMHgzMiwgMHg4NCwKLTB4N2QsIDB4MGEsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MmYsIDB4YjQsIDB4MDIsIDB4MTAsIDB4Y2UsIDB4OTAsIDB4ZmEsIDB4ZTYsIDB4ZTAsIDB4YjQsIDB4MDMsCi0weDA2LCAweDdlLCAweDAwLCAweDdmLCAweDQwLCAweDgwLCAweDA0LCAweDdlLCAweDAwLCAweDdmLCAweDA4LCAweDkwLCAweGZhLCAweGRhLCAweGVlLCAweGYwLAotMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMCwgMHgwNSwgMHgxMiwgMHgxYSwgMHhiYiwgMHhmZiwgMHg3ZSwgMHgwMCwgMHg5MCwgMHhmYSwgMHhkNiwgMHhlZSwKLTB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4NzAsIDB4MDMsIDB4N2YsIDB4MDgsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDgsIDB4MTIsIDB4MWIsIDB4NDgsIDB4ZmYsCi0weDkwLCAweGZhLCAweGQ4LCAweGU1LCAweGYwLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweGFlLCAweDAyLCAweGFmLCAweDAxLCAweDhlLCAweDUwLCAweDhmLAotMHg1MSwgMHg3NCwgMHgwYSwgMHgyNSwgMHg1MSwgMHhmNSwgMHg1MSwgMHhlNCwgMHgzNSwgMHg1MCwgMHhmNSwgMHg1MCwgMHg5MCwgMHhmYSwgMHhkYiwgMHhlMCwKLTB4ZmYsIDB4MTQsIDB4ZmUsIDB4OTAsIDB4ZmEsIDB4ZDksIDB4ZTAsIDB4NWUsIDB4ZmUsIDB4YzMsIDB4ZWYsIDB4OWUsIDB4ZmYsIDB4OTAsIDB4ZmEsIDB4ZGQsCi0weGYwLCAweGMzLCAweDkwLCAweGZhLCAweGQ3LCAweGUwLCAweDlmLCAweDkwLCAweGZhLCAweGQ2LCAweGUwLCAweDk0LCAweDAwLCAweDUwLCAweDA2LCAweGEzLAotMHhlMCwgMHg5MCwgMHhmYSwgMHhkZCwgMHhmMCwgMHgxMiwgMHgyMCwgMHhhOSwgMHg2MCwgMHgwMywgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgyZSwgMHgyYiwKLTB4OTAsIDB4ZmEsIDB4ZDYsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NGUsIDB4NjAsIDB4MmIsIDB4OTAsIDB4ZmEsIDB4ZGEsIDB4ZTAsIDB4ZmMsCi0weGEzLCAweGUwLCAweGZkLCAweGQzLCAweGVmLCAweDlkLCAweGVlLCAweDljLCAweDQwLCAweDA3LCAweGUwLCAweDkwLCAweGZhLCAweGRkLCAweGYwLCAweDgwLAotMHgwOCwgMHg5MCwgMHhmYSwgMHhkNywgMHhlMCwgMHg5MCwgMHhmYSwgMHhkZCwgMHhmMCwgMHgxMiwgMHgyMCwgMHhhOSwgMHg2MCwgMHgwMywgMHhlMCwgMHhmZiwKLTB4MjIsIDB4MTIsIDB4MmUsIDB4MmIsIDB4ODAsIDB4Y2EsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4NTIsIDB4ZTQsIDB4ZjUsIDB4MmQsIDB4ZjUsCi0weDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDdmLCAweDAwLCAweDIyLCAweGFhLCAweDUwLCAweGE5LCAweDUxLCAweDdiLCAweDAxLCAweDkwLAotMHhmYSwgMHhkOCwgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmZCwgMHg5MCwgMHhmYSwgMHhkZCwgMHhlMCwgMHhmNSwgMHg0YSwgMHgxMiwgMHgyOSwgMHg2MCwKLTB4OTAsIDB4ZmEsIDB4ZGMsIDB4ZWYsIDB4ZjAsIDB4MjIsIDB4ZWYsIDB4MjQsIDB4YWUsIDB4NjAsIDB4NTIsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MmUsIDB4MjQsCi0weGZlLCAweDcwLCAweDAzLCAweDAyLCAweDIxLCAweDY5LCAweDI0LCAweDA2LCAweDYwLCAweDAzLCAweDAyLCAweDIxLCAweGIxLCAweDc4LCAweDcxLCAweGU2LAotMHg1NCwgMHhmYiwgMHhmNiwgMHg5MCwgMHhmZiwgMHhhNSwgMHhlMCwgMHhmNSwgMHgyMiwgMHg0NCwgMHgwZiwgMHhmMCwgMHg3NCwgMHgzMywgMHg5MCwgMHhmYSwKLTB4OTQsIDB4ZjAsIDB4ZTUsIDB4MjIsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4YjIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MjIsIDB4NzgsIDB4NzIsIDB4ZTYsCi0weDU0LCAweGZiLCAweGY2LCAweDkwLCAweGZmLCAweGI1LCAweGUwLCAweGY1LCAweDIyLCAweDQ0LCAweDBmLCAweGYwLCAweDc0LCAweDQzLCAweDkwLCAweGZhLAotMHg5NiwgMHhmMCwgMHhlNSwgMHgyMiwgMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhiMywgMHg3NCwgMHgwMSwgMHhmMCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhhMCwKLTB4ZTAsIDB4YTMsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MDIsIDB4MjEsIDB4YjEsIDB4OTAsIDB4ZmYsIDB4YTYsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4Y2QsIDB4ZjAsCi0weGEzLCAweGYwLCAweDkwLCAweGZhLCAweGNkLCAweGUwLCAweGZmLCAweDU0LCAweDBmLCAweGZlLCAweDYwLCAweDEwLCAweDkwLCAweGZmLCAweGE2LCAweDEyLAotMHgyMywgMHgwZCwgMHg5MCwgMHhmZiwgMHhhNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhjZCwgMHhmMCwgMHg4MCwgMHhlNiwgMHg5MCwgMHhmYSwgMHhjZSwgMHhlMCwKLTB4ZmYsIDB4NzQsIDB4MzQsIDB4ZmUsIDB4MTIsIDB4MmQsIDB4ODUsIDB4ZWYsIDB4NzAsIDB4NTcsIDB4OTAsIDB4ZmEsIDB4Y2UsIDB4ZTAsIDB4ZmYsIDB4NzQsCi0weDM0LCAweDkwLCAweGZhLCAweDk4LCAweGYwLCAweGVmLCAweGEzLCAweGYwLCAweDIyLCAweDkwLCAweGZhLCAweGFhLCAweGUwLCAweGEzLCAweDMwLCAweGU1LAotMHg0MCwgMHg5MCwgMHhmZiwgMHhiNiwgMHhlMCwgMHg5MCwgMHhmYSwgMHhjZCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZCwgMHhlMCwgMHhmZiwKLTB4NTQsIDB4MGYsIDB4ZmUsIDB4NjAsIDB4MTAsIDB4OTAsIDB4ZmYsIDB4YjYsIDB4MTIsIDB4MjMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4YjYsIDB4ZTAsIDB4OTAsCi0weGZhLCAweGNkLCAweGYwLCAweDgwLCAweGU2LCAweDkwLCAweGZhLCAweGNlLCAweGUwLCAweGZmLCAweDc0LCAweDQ0LCAweGZlLCAweDEyLCAweDJkLCAweDg1LAotMHhlZiwgMHg3MCwgMHgwZSwgMHg5MCwgMHhmYSwgMHhjZSwgMHhlMCwgMHhmZiwgMHg3NCwgMHg0NCwgMHg5MCwgMHhmYSwgMHg5YSwgMHhmMCwgMHhlZiwgMHhhMywKLTB4ZjAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDAsIDB4YzAsCi0weDAwLCAweGMwLCAweDAxLCAweGMwLCAweDAyLCAweGMwLCAweDAzLCAweGMwLCAweDA0LCAweGMwLCAweDA1LCAweGMwLCAweDA2LCAweGMwLCAweDA3LCAweDkwLAotMHhmZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHg5MCwgMHhmYSwgMHhjYywgMHhmMCwgMHg5MCwgMHhmZiwgMHg5MiwgMHhlNCwgMHhmMCwgMHhlZiwgMHgxMiwgMHgxYiwKLTB4ZmMsIDB4MjIsIDB4NjksIDB4MjYsIDB4MjIsIDB4NjksIDB4MmUsIDB4MjIsIDB4MGMsIDB4MzAsIDB4MjIsIDB4MGMsIDB4MzIsIDB4MjIsIDB4MWEsIDB4MzgsCi0weDIyLCAweDJjLCAweDNhLCAweDIyLCAweDVlLCAweDNlLCAweDIyLCAweDQ5LCAweDQ0LCAweDIyLCAweDNlLCAweDQ2LCAweDIyLCAweDU0LCAweDUwLCAweDIyLAotMHg1NCwgMHg1MiwgMHgyMiwgMHg1NCwgMHg1NCwgMHgyMiwgMHg1NCwgMHg1NiwgMHgwMCwgMHgwMCwgMHgyMiwgMHg2ZSwgMHg5MCwgMHhmYSwgMHhjYywgMHhlMCwKLTB4ZmQsIDB4N2MsIDB4MDAsIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTEsIDB4NWUsIDB4ODAsIDB4NjIsIDB4N2MsIDB4MDAsIDB4N2QsIDB4MDEsIDB4N2YsIDB4MDMsCi0weDEyLCAweDExLCAweDVlLCAweDkwLCAweGZmLCAweGZlLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDUwLCAweDdjLCAweDAwLCAweDdkLCAweDAxLAotMHg3ZiwgMHgwMiwgMHgxMiwgMHgxMSwgMHg1ZSwgMHg5MCwgMHhmZiwgMHhmZSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg4MCwgMHgzZSwgMHg3YywgMHgwMCwKLTB4N2QsIDB4MDEsIDB4N2YsIDB4MDUsIDB4MTIsIDB4MTEsIDB4NWUsIDB4ODAsIDB4MzMsIDB4N2MsIDB4MDAsIDB4N2QsIDB4MDEsIDB4N2YsIDB4MDYsIDB4MTIsCi0weDExLCAweDVlLCAweDgwLCAweDI4LCAweDkwLCAweGZhLCAweGNjLCAweGUwLCAweGZmLCAweDEyLCAweDIwLCAweGM2LCAweDgwLCAweDFlLCAweDdjLCAweDAwLAotMHg3ZCwgMHgwMSwgMHg3ZiwgMHgwNCwgMHgxMiwgMHgxMSwgMHg1ZSwgMHg4MCwgMHgxMywgMHgxMiwgMHgyOCwgMHg0ZSwgMHg4MCwgMHgwZSwgMHg5MCwgMHhmYSwKLTB4Y2MsIDB4ZTAsIDB4MjQsIDB4MDAsIDB4ZmYsIDB4ZTQsIDB4MzQsIDB4ZmYsIDB4ZmUsIDB4MTIsIDB4MmQsIDB4ODUsIDB4ZDAsIDB4MDcsIDB4ZDAsIDB4MDYsCi0weGQwLCAweDA1LCAweGQwLCAweDA0LCAweGQwLCAweDAzLCAweGQwLCAweDAyLCAweGQwLCAweDAxLCAweGQwLCAweDAwLCAweGQwLCAweGQwLCAweGQwLCAweDgyLAotMHhkMCwgMHg4MywgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHg3OCwgMHg3YywgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHgyNCwgMHgwNCwgMHg4ZSwKLTB4ODMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4MjIsIDB4NzQsIDB4MTMsIDB4MjUsIDB4MjQsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0weDM0LCAweGY5LCAweGY1LCAweDgzLCAweDIyLCAweDc4LCAweDgwLCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweDIyLAotMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwgMHhhYSwgMHgwNiwgMHhmOCwgMHhhYywgMHgwMiwgMHg3ZCwgMHgwMSwgMHg3YiwgMHhmZiwgMHg3YSwKLTB4MzIsIDB4NzksIDB4NTYsIDB4N2UsIDB4MDAsIDB4N2YsIDB4MGEsIDB4MDIsIDB4MWEsIDB4N2MsIDB4NzgsIDB4ODAsIDB4ZTYsIDB4ZmMsIDB4MDgsIDB4ZTYsCi0weGY1LCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzLCAweDIyLCAweGZmLCAweDkwLCAweGY5LCAweDZmLCAweDAyLCAweDFiLCAweGVhLCAweDkwLCAweGY5LAotMHg2YSwgMHgxMiwgMHgxYiwgMHhlYSwgMHg5MCwgMHgwMCwgMHgwNCwgMHgwMiwgMHgxYSwgMHhiYiwgMHg3OCwgMHg3ZSwgMHhlNiwgMHhmZSwgMHgwOCwgMHhlNiwKLTB4ZmYsIDB4MjIsIDB4ZWQsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjIsIDB4ZWYsIDB4ZjAsIDB4OTAsCi0weGZhLCAweGNlLCAweGUwLCAweDU0LCAweDBmLCAweDRlLCAweGZlLCAweGYwLCAweGVmLCAweDU0LCAweGYwLCAweDRlLCAweGYwLCAweDIyLCAweDc4LCAweDgwLAotMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwgMHg4YywgMHg4MywgMHgyMiwgMHg3OCwgMHg3ZSwgMHhlNiwgMHhmYywgMHgwOCwgMHhlNiwgMHhmZCwgMHg4YywgMHg4MywKLTB4MjIsIDB4YTYsIDB4MDcsIDB4ZTYsIDB4MjQsIDB4NmUsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4NzgsIDB4N2UsIDB4ZTYsIDB4ZmEsIDB4MDgsIDB4ZTYsIDB4ZmIsCi0weDIyLCAweDA4LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweDhlLCAweDgzLCAweDIyLCAweDI2LCAweGY2LCAweDE4LCAweGVlLCAweDM2LCAweGY2LCAweDIyLAotMHhlZiwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzZSwgMHhmNSwgMHg4MywgMHgyMiwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNSwgMHg4MiwKLTB4MjIsIDB4OGIsIDB4MjUsIDB4OGEsIDB4MjYsIDB4ODksIDB4MjcsIDB4OGQsIDB4MjgsIDB4OTAsIDB4ZmEsIDB4ZDIsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4NzQsCi0weDAyLCAweGYwLCAweDdiLCAweDAxLCAweDdhLCAweGZhLCAweDc5LCAweGQxLCAweDkwLCAweGZhLCAweGQyLCAweGUwLCAweGY1LCAweDJkLCAweGEzLCAweGUwLAotMHhmNSwgMHgyZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgyNiwgMHg5OCwgMHg5MCwgMHhmYSwgMHhkMSwgMHhlMCwgMHg2NSwgMHgyOCwgMHg2MCwgMHg0NiwgMHhhMywKLTB4ZTAsIDB4ZmYsIDB4YTMsIDB4ZTAsIDB4YTMsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZDEsCi0weGUwLCAweGZmLCAweDkwLCAweGZhLCAweGQ0LCAweGU0LCAweDhmLCAweGYwLCAweDEyLCAweDFiLCAweDFjLCAweDEyLCAweDIzLCAweGYwLCAweDkwLCAweGZhLAotMHhkNCwgMHhlMCwgMHhmZiwgMHhhMywgMHhlMCwgMHg5MCwgMHhmYSwgMHhkMiwgMHhjZiwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhkMSwKLTB4ZTAsIDB4YTMsIDB4NzUsIDB4ZjAsIDB4MDAsIDB4MTIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4ZmEsIDB4ZDIsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDQsIDB4MTIsCi0weDFiLCAweDFjLCAweDAyLCAweDIzLCAweDcyLCAweDkwLCAweGZhLCAweGQzLCAweGUwLCAweDI0LCAweDAxLCAweGZmLCAweDkwLCAweGZhLCAweGQyLCAweGUwLAotMHgzNCwgMHgwMCwgMHhhYiwgMHgyNSwgMHhhYSwgMHgyNiwgMHhhOSwgMHgyNywgMHg4ZiwgMHhmMCwgMHgxMiwgMHgxYiwgMHg4MCwgMHg3ZiwgMHgwMCwgMHgyMiwKLTB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4ZDEsIDB4OTAsIDB4ZmEsIDB4ZDIsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4MWIsIDB4MWMsCi0weDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDAyLCAweDI2LCAweDk4LCAweDhmLCAweDYyLCAweDEyLCAweDJhLCAweGM3LCAweDEyLAotMHgyMiwgMHhmYSwgMHg4ZSwgMHg4MywgMHgyNCwgMHgwYiwgMHgxMiwgMHgyMiwgMHhhMSwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg0NCwgMHgwMiwgMHhmMCwKLTB4MDgsIDB4MTIsIDB4MjIsIDB4ZGMsIDB4ZTAsIDB4YTMsIDB4MzAsIDB4ZTUsIDB4MGMsIDB4MTIsIDB4MjMsIDB4MDYsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjIsCi0weGExLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDc4LCAweDdjLCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGZmLCAweGY1LCAweDgyLCAweDhlLCAweDgzLAotMHhlMCwgMHg1NCwgMHhiOCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg2MiwgMHgyNCwgMHhmZSwgMHg0NCwgMHgyMCwgMHhmYywgMHg0ZCwgMHhmMCwgMHhlNSwgMHg4MiwKLTB4MjQsIDB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NTQsIDB4YjgsIDB4ZjAsIDB4NGMsIDB4ZjAsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsCi0weDc0LCAweDAzLCAweGYwLCAweDE4LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGZmLCAweDhlLCAweDgzLCAweDI0LCAweDA1LCAweDEyLCAweDIyLCAweGExLAotMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZCwgMHg3NCwgMHg5OSwgMHgyNSwgMHg2MiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmYSwgMHhmNSwKLTB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmMsIDB4NDQsIDB4MDMsIDB4ZmMsIDB4ZWQsIDB4NGMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODIsCi0weDhlLCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDQ0LCAweDgwLAotMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHg3NCwgMHg2ZSwgMHgyNSwgMHg2MiwgMHhmOCwgMHg3NCwgMHgwNCwgMHg0NiwgMHhmNiwgMHg3ZiwgMHgwMCwgMHgyMiwKLTB4MTIsIDB4MTAsIDB4NGIsIDB4N2YsIDB4MDIsIDB4MTIsIDB4MTIsIDB4NjEsIDB4NzgsIDB4NjcsIDB4ZTYsIDB4NDQsIDB4MDIsIDB4ZjYsIDB4ZDIsIDB4YjAsCi0weGQyLCAweGIxLCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweDMwLCAweGU3LCAweDA3LCAweDkwLCAweGZmLCAweDllLCAweGU0LCAweGYwLCAweDgwLCAweDM2LAotMHhkMiwgMHhiMywgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg5MCwgMHhmYSwgMHg3ZSwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg5MCwgMHhmYSwKLTB4N2YsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YTIsIDB4ZTAsIDB4OTAsIDB4ZmEsIDB4N2MsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZTAsIDB4OTAsIDB4ZmEsCi0weDdkLCAweGYwLCAweDkwLCAweGZmLCAweGE0LCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweGZmLCAweGI0LCAweGYwLCAweDkwLCAweGZmLCAweGEyLCAweDc0LAotMHg0MCwgMHhmMCwgMHg5MCwgMHhmZiwgMHhiMiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhlNywgMHhlNSwgMHhhOCwgMHhmMCwgMHg3NSwgMHhhOCwgMHg4MSwgMHg5MCwKLTB4ZmYsIDB4OTIsIDB4ZTAsIDB4NjAsIDB4MDQsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4ZmQsIDB4NzQsIDB4M2EsIDB4ZjAsIDB4NDMsCi0weDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDkwLCAweGZhLCAweDdlLCAweGUwLCAweDkwLCAweGZmLCAweGE0LCAweGYwLCAweDkwLCAweGZhLCAweDdmLAotMHhlMCwgMHg5MCwgMHhmZiwgMHhiNCwgMHhmMCwgMHg5MCwgMHhmYSwgMHg3YywgMHhlMCwgMHg5MCwgMHhmZiwgMHhhMiwgMHhmMCwgMHg5MCwgMHhmYSwgMHg3ZCwKLTB4ZTAsIDB4OTAsIDB4ZmYsIDB4YjIsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTgsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4YzIsIDB4YjMsIDB4OTAsIDB4ZmEsIDB4ZTcsCi0weGUwLCAweGY1LCAweGE4LCAweDAyLCAweDEwLCAweGNlLCAweDhiLCAweDVjLCAweDhhLCAweDVkLCAweDg5LCAweDVlLCAweDEyLCAweDJlLCAweDBkLCAweDkwLAotMHhmYSwgMHhjMywgMHgxMiwgMHgxYiwgMHhmMywgMHhhYSwgMHg1ZCwgMHhhOSwgMHg1ZSwgMHg5MCwgMHhmYSwgMHhjNiwgMHgxMiwgMHgxYiwgMHhmMywgMHg5MCwKLTB4ZmEsIDB4YzcsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MGEsIDB4MTIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4ZmEsIDB4YzYsIDB4MTIsIDB4MWIsIDB4ZWEsIDB4ZTksCi0weDI0LCAweDAxLCAweGY5LCAweGU0LCAweDNhLCAweGZhLCAweDkwLCAweGZhLCAweGM5LCAweDEyLCAweDFiLCAweGYzLCAweGFiLCAweDVjLCAweGFhLCAweDVkLAotMHhhOSwgMHg1ZSwgMHgxMiwgMHgyZSwgMHgxOSwgMHhlMCwgMHhmZiwgMHhjMywgMHgxMywgMHhmMCwgMHhlNCwgMHg3OCwgMHg4MiwgMHhmNiwgMHg5MCwgMHhmYSwKLTB4YzEsIDB4ZTAsIDB4ZmYsIDB4NzgsIDB4ODIsIDB4ZTYsIDB4YzMsIDB4OWYsIDB4NTAsIDB4NGEsIDB4OTAsIDB4ZmEsIDB4YzMsIDB4MTIsIDB4MmQsIDB4ZWUsCi0weGZmLCAweDc4LCAweDgzLCAweGY2LCAweDkwLCAweGZhLCAweGM2LCAweDEyLCAweDJkLCAweGVlLCAweGZlLCAweGY0LCAweDVmLCAweGZmLCAweDc4LCAweDgzLAotMHhmNiwgMHgxMiwgMHgyZCwgMHhlYiwgMHg1ZSwgMHg0ZiwgMHhmZiwgMHg3OCwgMHg4MywgMHhmNiwgMHgxMiwgMHgyZCwgMHhmNCwgMHg3NSwgMHhmMCwgMHgwMiwKLTB4MTIsIDB4MWIsIDB4MWMsIDB4OTAsIDB4ZmEsIDB4YzcsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDIsIDB4MTIsIDB4MWIsIDB4MWMsIDB4YWIsIDB4NWMsIDB4YWEsCi0weDVkLCAweGE5LCAweDVlLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweDFhLCAweGJiLCAweDMwLCAweGU0LCAweDAzLCAweDEyLCAweDJlLCAweDAzLCAweDc4LAotMHg4MiwgMHgwNiwgMHg4MCwgMHhhYSwgMHhlNCwgMHg5MCwgMHhmYSwgMHhjMiwgMHhmMCwgMHgyMiwgMHg4YiwgMHg1NiwgMHg4YSwgMHg1NywgMHg4OSwgMHg1OCwKLTB4OTAsIDB4ZmEsIDB4YzIsIDB4NzQsIDB4MDYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4ZmEsIDB4YzEsIDB4ZjAsIDB4MTIsIDB4MWEsIDB4YTIsIDB4MjQsIDB4NmUsCi0weDYwLCAweDI2LCAweDE0LCAweDcwLCAweDcwLCAweDEyLCAweDJkLCAweGRhLCAweDYwLCAweDA5LCAweDI0LCAweDMwLCAweDcwLCAweDEyLCAweDEyLCAweDI1LAotMHg1NiwgMHg4MCwgMHg2MiwgMHgxMiwgMHgyZSwgMHgyNCwgMHgxMiwgMHgxZiwgMHhkYSwgMHg5MCwgMHhmYSwgMHhjMiwgMHhlZiwgMHhmMCwgMHg4MCwgMHg1NSwKLTB4OTAsIDB4ZmEsIDB4YzIsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4ODAsIDB4NGQsIDB4MTIsIDB4MmQsIDB4ZGEsIDB4NjAsIDB4MDksIDB4MjQsIDB4MzAsIDB4NzAsCi0weDNlLCAweDEyLCAweDJkLCAweDMwLCAweDgwLCAweDNmLCAweGU1LCAweDU4LCAweDI0LCAweDAzLCAweGY5LCAweGU0LCAweDM1LCAweDU3LCAweGZhLCAweDdiLAotMHgwMSwgMHhjMCwgMHgwMywgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMSwgMHgxMiwgMHgyZSwgMHgyNCwgMHg5MCwgMHgwMCwgMHgwNSwgMHgxMiwgMHgxYSwgMHhiYiwKLTB4ZmQsIDB4OTAsIDB4MDAsIDB4MDgsIDB4MTIsIDB4MWIsIDB4NDgsIDB4ZjUsIDB4MmUsIDB4ODUsIDB4ZjAsIDB4MmQsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDIsCi0weGQwLCAweDAzLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZhLCAweGMxLCAweGVmLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDgwLCAweDA2LCAweDkwLAotMHhmYSwgMHhjMiwgMHg3NCwgMHg4MSwgMHhmMCwgMHg5MCwgMHhmYSwgMHhjMiwgMHhlMCwgMHgxMiwgMHgyZSwgMHgyNCwgMHg5MCwgMHgwMCwgMHgwMiwgMHgxMiwKLTB4MWEsIDB4ZmEsIDB4OTAsIDB4ZmEsIDB4YzEsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OGIsIDB4MjksIDB4OGEsIDB4MmEsIDB4ODksIDB4MmIsIDB4OGQsIDB4MmMsCi0weGU1LCAweDJjLCAweDcwLCAweDAzLCAweGFmLCAweDJjLCAweDIyLCAweDEyLCAweDJlLCAweDUzLCAweDcwLCAweDE2LCAweDEyLCAweDJlLCAweDcyLCAweGU1LAotMHgyZCwgMHg5MCwgMHhmZiwgMHhmMSwgMHhmMCwgMHgxMiwgMHgzMSwgMHhkOCwgMHg1MCwgMHhmMiwgMHgxMiwgMHgyNywgMHgyNSwgMHg0MCwgMHgwYiwgMHg3ZiwKLTB4MDAsIDB4MjIsIDB4MTIsIDB4MmUsIDB4NzIsIDB4MTIsIDB4MjcsIDB4MjUsIDB4NTAsIDB4ZjgsIDB4OTAsIDB4ZmYsIDB4ZjMsIDB4NzQsIDB4YTEsIDB4ZjAsCi0weGU1LCAweDJjLCAweGI0LCAweDAxLCAweDA3LCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweGZmLCAweGYxLCAweGU0LAotMHhmMCwgMHhmNSwgMHgyZiwgMHhlNSwgMHgyYywgMHgxNCwgMHhmZiwgMHhlNSwgMHgyZiwgMHhjMywgMHg5ZiwgMHg1MCwgMHgyYSwgMHgxMiwgMHgzMSwgMHhjMSwKLTB4NDAsIDB4MDMsIDB4YWYsIDB4MmYsIDB4MjIsIDB4YzMsIDB4ZTUsIDB4MmMsIDB4OTUsIDB4MmYsIDB4ZmYsIDB4YmYsIDB4MDIsIDB4MDcsIDB4OTAsIDB4ZmYsCi0weGYwLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDEyLCAweDJlLCAweDY1LCAweDA1LCAweDJmLCAweDc0LCAweDAxLCAweDI1LCAweDJiLCAweGY1LCAweDJiLAotMHhlNCwgMHgzNSwgMHgyYSwgMHhmNSwgMHgyYSwgMHg4MCwgMHhjYywgMHgxMiwgMHgzMSwgMHhjMSwgMHg0MCwgMHgwMywgMHg3ZiwgMHgxOCwgMHgyMiwgMHgxMiwKLTB4MmUsIDB4NjUsIDB4YWYsIDB4MmMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjEsIDB4ZTUsIDB4MmUsIDB4ZjAsIDB4MDIsIDB4MzEsIDB4ZDgsIDB4MTIsIDB4MTAsCi0weDRiLCAweDc4LCAweDg0LCAweDEyLCAweDIzLCAweDMxLCAweDMwLCAweGUxLCAweDA4LCAweDdmLCAweDEzLCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDI3LAotMHhiYywgMHg3OCwgMHg4NCwgMHhlNiwgMHhmOSwgMHgyNCwgMHgxMywgMHgxMiwgMHgyMiwgMHhhZCwgMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHg0MCwgMHg1NCwKLTB4MDMsIDB4NjAsIDB4MWUsIDB4ZTksIDB4YjQsIDB4MDMsIDB4MGQsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTAsIDB4NDQsCi0weDA0LCAweGYwLCAweDgwLCAweDQ2LCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDgwLAotMHgzOSwgMHhlOSwgMHhiNCwgMHgwMywgMHgwZCwgMHg5MCwgMHhmZiwgMHg5ZSwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLTB4ODAsIDB4MjgsIDB4OTAsIDB4ZmYsIDB4OWUsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MWIsIDB4ZWYsCi0weDU0LCAweDAzLCAweDYwLCAweDE0LCAweGU5LCAweGI0LCAweDAzLCAweDA5LCAweDkwLCAweGZmLCAweGE0LCAweGUwLCAweDU0LCAweGRmLCAweGYwLCAweDgwLAotMHgwNywgMHg5MCwgMHhmZiwgMHhiNCwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHhjMiwgMHhiMywgMHg5MCwgMHhmOSwgMHgxOCwgMHhlMCwgMHgwNCwgMHhmMCwKLTB4YWYsIDB4MDEsIDB4MTIsIDB4MjIsIDB4ZWUsIDB4ZmQsIDB4MTIsIDB4MmYsIDB4ZTUsIDB4MTIsIDB4MzEsIDB4YTksIDB4MDIsIDB4MTAsIDB4Y2UsIDB4NzUsCi0weGE4LCAweDQwLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDhiLCAweDAyLCAweDI4LCAweDA5LCAweDAyLCAweDMxLAotMHg4YywgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwKLTB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsCi0weDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLAotMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgyYiwgMHhhOSwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywKLTB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsCi0weDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LAotMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywKLTB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4ZTQsIDB4ZjUsCi0weDIyLCAweDEyLCAweDFkLCAweGMyLCAweGUwLCAweGI0LCAweDA0LCAweDBkLCAweGU1LCAweDIyLCAweDI0LCAweDAzLCAweGZmLCAweDEyLCAweDMwLCAweDEzLAotMHgxMiwgMHgxZCwgMHhjMiwgMHhlNCwgMHhmMCwgMHgwNSwgMHgyMiwgMHhlNSwgMHgyMiwgMHhjMywgMHg5NCwgMHgwMiwgMHg0MCwgMHhlMywgMHhlNCwgMHhmNSwKLTB4MjIsIDB4NzUsIDB4ZjAsIDB4MDIsIDB4ZTUsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4OTQsIDB4MTIsIDB4MWUsIDB4MDMsIDB4NjAsIDB4MmMsIDB4MTIsIDB4MmQsCi0weDg1LCAweGVmLCAweDYwLCAweDUyLCAweDc1LCAweGYwLCAweDAyLCAweGU1LCAweDIyLCAweDkwLCAweGZhLCAweDk0LCAweDEyLCAweDFiLCAweGNjLCAweGU0LAotMHhmMCwgMHhhMywgMHhmMCwgMHg3NSwgMHhmMCwgMHgwYSwgMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgMHhhMCwgMHgxMiwgMHgxYiwgMHhjYywgMHhlMCwgMHhhMywKLTB4MzAsIDB4ZTYsIDB4MzMsIDB4MTIsIDB4MWQsIDB4YzIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4NzUsIDB4ZjAsIDB4MDIsIDB4ZTUsIDB4MjIsIDB4OTAsCi0weGZhLCAweDk4LCAweDEyLCAweDFlLCAweDAzLCAweDYwLCAweDE2LCAweDEyLCAweDJkLCAweDg1LCAweGVmLCAweDYwLCAweDE5LCAweDc1LCAweGYwLCAweDAyLAotMHhlNSwgMHgyMiwgMHg5MCwgMHhmYSwgMHg5OCwgMHgxMiwgMHgxYiwgMHhjYywgMHhlNCwgMHhmMCwgMHhhMywgMHhmMCwgMHgyMiwgMHgwNSwgMHgyMiwgMHhlNSwKLTB4MjIsIDB4YzMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4OWIsIDB4MjIsIDB4ZTQsIDB4ZmYsIDB4OTAsIDB4ZmYsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4ZmUsCi0weGVmLCAweGMzLCAweDllLCAweDUwLCAweDE3LCAweDc0LCAweGYwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZlLCAweGY1LCAweDgzLCAweGUwLAotMHgxMiwgMHgxYywgMHhjMSwgMHgxMiwgMHgxYSwgMHhlOCwgMHgwZiwgMHgxMiwgMHgxYywgMHhiMCwgMHg4MCwgMHhkZCwgMHhlZiwgMHhmZCwgMHhjMywgMHhlNSwKLTB4M2EsIDB4OWQsIDB4ZjUsIDB4M2EsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsIDB4ZjUsIDB4MzksIDB4ZDMsIDB4ZTUsIDB4M2EsIDB4OTQsIDB4MDAsIDB4ZTUsCi0weDM5LCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAweGU0LCAweDkwLCAweGZmLCAweDgzLCAweGYwLCAweDIyLCAweDEyLCAweDFkLCAweGRmLCAweDEyLCAweDFlLAotMHgzNCwgMHgxMiwgMHgxZSwgMHgyNiwgMHgxMiwgMHgxYSwgMHhhMiwgMHgyNCwgMHg2ZSwgMHg2MCwgMHgxZSwgMHgxNCwgMHg2MCwgMHgxYiwgMHgyNCwgMHg4ZSwKLTB4NzAsIDB4MmQsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MWEsIDB4YmIsIDB4ZmYsIDB4MjQsIDB4ZmMsIDB4NjAsIDB4MDMsIDB4MDQsIDB4NzAsIDB4MWYsCi0weGVmLCAweGZkLCAweDdjLCAweDAwLCAweDdmLCAweDBkLCAweDAyLCAweDExLCAweDVlLCAweDEyLCAweDFlLCAweDNiLCAweDEyLCAweDI1LCAweGZhLCAweDEyLAotMHgxZCwgMHg4OSwgMHgxMiwgMHgxYSwgMHhiYiwgMHg2MCwgMHgwMywgMHgwMiwgMHgzMiwgMHg3YSwgMHhlNCwgMHhmZiwgMHgxMiwgMHgzMiwgMHg2ZSwgMHgyMiwKLTB4OGIsIDB4NDUsIDB4OGEsIDB4NDYsIDB4ODksIDB4NDcsIDB4OGMsIDB4NDgsIDB4OGQsIDB4NDksIDB4ZDIsIDB4MDAsIDB4MTIsIDB4MmUsIDB4NTMsIDB4NzAsCi0weDE2LCAweDEyLCAweDJlLCAweDcyLCAweGU1LCAweDQ4LCAweDkwLCAweGZmLCAweGYxLCAweGYwLCAweDEyLCAweDMxLCAweGQ4LCAweDUwLCAweGYyLCAweDEyLAotMHgyOSwgMHhkNSwgMHg0MCwgMHgwYiwgMHg3ZiwgMHgxOCwgMHgyMiwgMHgxMiwgMHgyZSwgMHg3MiwgMHgxMiwgMHgyOSwgMHhkNSwgMHg1MCwgMHhmOCwgMHhlNCwKLTB4ZjUsIDB4NGIsIDB4ZTUsIDB4NGEsIDB4MTQsIDB4ZmYsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OWYsIDB4NTAsIDB4MTcsIDB4MTIsIDB4MjksIDB4YzUsIDB4NDAsCi0weDAzLCAweDdmLCAweDE4LCAweDIyLCAweDA1LCAweDRiLCAweDc0LCAweDAxLCAweDI1LCAweDQ3LCAweGY1LCAweDQ3LCAweGU0LCAweDM1LCAweDQ2LCAweGY1LAotMHg0NiwgMHg4MCwgMHhkZiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgxMiwgMHgyOSwgMHhjNSwgMHg0MCwgMHgwMywgMHg3ZiwKLTB4MTgsIDB4MjIsIDB4N2YsIDB4MDAsIDB4MjIsIDB4YWIsIDB4NDUsIDB4YWEsIDB4NDYsIDB4YTksIDB4NDcsIDB4MTIsIDB4MWEsIDB4YTIsIDB4OTAsIDB4ZmYsCi0weGYxLCAweGYwLCAweDAyLCAweDMxLCAweGQ4LCAweDkwLCAweGZmLCAweGYxLCAweGU1LCAweDQ5LCAweGYwLCAweDAyLCAweDMxLCAweGQ4LCAweDdiLCAweDAxLAotMHg3YSwgMHhmYSwgMHg3OSwgMHhjZiwgMHhlNCwgMHhmZCwgMHgxMiwgMHgyMywgMHg2MSwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwOSwKLTB4MTIsIDB4MWIsIDB4MWMsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MjMsIDB4OTAsIDB4ZmEsIDB4Y2YsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsCi0weDEyLCAweDFiLCAweDMyLCAweDg1LCAweGYwLCAweDJlLCAweGY1LCAweDJkLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDkwLCAweGZmLCAweGY3LAotMHhlNSwgMHgyMywgMHgxMiwgMHgyYSwgMHgzOSwgMHg5MCwgMHhmZiwgMHhmNiwgMHhlNSwgMHgyMywgMHhmMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHhmMCwKLTB4YTMsIDB4NzQsIDB4MDYsIDB4MTIsIDB4MmEsIDB4MzksIDB4ZTUsIDB4MjMsIDB4MzAsIDB4ZTAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4NzQsIDB4OTQsCi0weGYwLCAweDIyLCAweDkwLCAweGZmLCAweGZjLCAweDc0LCAweDkwLCAweGYwLCAweDIyLCAweGYwLCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDIzLAotMHg5MCwgMHhmYSwgMHhjZiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHgxYiwgMHgzMiwgMHg4NSwgMHhmMCwgMHgyZSwgMHhmNSwgMHgyZCwgMHg3ZCwKLTB4MDEsIDB4MDIsIDB4MjYsIDB4OTgsIDB4OTAsIDB4ZmYsIDB4OTMsIDB4NzQsIDB4ODEsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ZmYsIDB4ZTAsIDB4NjAsIDB4MDYsCi0weDkwLCAweGZmLCAweGZjLCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGZmLCAweDkxLCAweGUwLCAweDQ0LCAweDkwLCAweGYwLCAweGU0LCAweDkwLCAweGY5LAotMHgxNiwgMHhmMCwgMHhhMywgMHhmMCwgMHgxMiwgMHgyYiwgMHgzOSwgMHgxMiwgMHgxNiwgMHhjOSwgMHgxMiwgMHgzMCwgMHg2OSwgMHg3ZSwgMHgwNywgMHg3ZiwKLTB4ZDAsIDB4MTIsIDB4MTIsIDB4MmEsIDB4N2UsIDB4MGYsIDB4N2YsIDB4YTAsIDB4MTIsIDB4MTIsIDB4NDQsIDB4ZTQsIDB4NzgsIDB4NzcsIDB4ZjYsIDB4NzgsCi0weDc3LCAweGU2LCAweGZmLCAweGMzLCAweDk0LCAweDA2LCAweDUwLCAweDBiLCAweDc0LCAweDZlLCAweDJmLCAweGY4LCAweGU0LCAweGY2LCAweDc4LCAweDc3LAotMHgwNiwgMHg4MCwgMHhlYywgMHg3ZiwgMHgwMywgMHgxMiwgMHgzMCwgMHhiMiwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHgyMCwgMHhlNCwgMHgwNSwgMHg3ZiwKLTB4MDQsIDB4MTIsIDB4MzAsIDB4YjIsIDB4OTAsIDB4ZmYsIDB4OWIsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4OWEsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4ZTgsCi0weGUwLCAweDU0LCAweDFmLCAweGYwLCAweGQyLCAweGE4LCAweDIyLCAweDE1LCAweDY1LCAweGE4LCAweDY1LCAweGE2LCAweDA3LCAweDMwLCAweDA4LCAweDA1LAotMHgxMiwgMHgxMSwgMHhhZSwgMHg4MCwgMHhmOCwgMHhkMiwgMHgwOCwgMHhhOCwgMHg2NSwgMHhlNiwgMHhmZiwgMHhiNCwgMHgwMywgMHgwZiwgMHg3OCwgMHg3YywKLTB4NzYsIDB4ZmYsIDB4MDgsIDB4NzYsIDB4ZTAsIDB4MDgsIDB4NzYsIDB4ZmYsIDB4MDgsIDB4NzYsIDB4YTAsIDB4ODAsIDB4MGQsIDB4NzgsIDB4N2MsIDB4NzYsCi0weGZmLCAweDA4LCAweDc2LCAweGUyLCAweDA4LCAweDc2LCAweGZmLCAweDA4LCAweDc2LCAweGIwLCAweDc4LCAweDgwLCAweDc2LCAweGZhLCAweDA4LCAweDc2LAotMHg5ZSwgMHhlZiwgMHgyNCwgMHhmZCwgMHg3NSwgMHhmMCwgMHgwYSwgMHhhNCwgMHhhZSwgMHhmMCwgMHgxMiwgMHgyMywgMHg0OSwgMHg3YiwgMHgwMSwgMHg3YSwKLTB4ZmYsIDB4NzksIDB4NDgsIDB4NzgsIDB4NjgsIDB4MTIsIDB4MWIsIDB4ZTEsIDB4YTgsIDB4NjUsIDB4ZTYsIDB4MjQsIDB4ZmQsIDB4NzUsIDB4ZjAsIDB4MDgsCi0weGE0LCAweGZmLCAweGFlLCAweGYwLCAweDc4LCAweDZhLCAweDEyLCAweDIzLCAweDQ5LCAweDc5LCAweDA4LCAweDc4LCAweDZiLCAweDEyLCAweDFiLCAweGUxLAotMHg3OCwgMHg2ZCwgMHhlZiwgMHgxMiwgMHgyMywgMHg0OSwgMHgwNSwgMHg2NSwgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHg1NCwgMHhhYiwgMHhmMCwKLTB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZmEsIDB4ZTYsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4ZmEsIDB4NzksIDB4Y2YsCi0weGU0LCAweGY1LCAweDJkLCAweGY1LCAweDJlLCAweDdkLCAweDAxLCAweDEyLCAweDI2LCAweDk4LCAweDdlLCAweDAwLCAweDkwLCAweGZhLCAweGU0LCAweGVlLAotMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHg2NCwgMHgwMSwgMHg3MCwgMHgxMCwgMHg5MCwgMHhmYSwgMHhjZiwgMHhlMCwgMHhiNCwgMHg1MiwgMHgwOSwgMHg5MCwKLTB4ZjksIDB4MTYsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4MjksIDB4OTAsIDB4ZmEsIDB4ZTQsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4YTMsIDB4ZTAsCi0weDY0LCAweDAxLCAweDcwLCAweDEwLCAweDkwLCAweGZhLCAweGNmLCAweGUwLCAweGI0LCAweDEwLCAweDA5LCAweDkwLCAweGY5LCAweDE2LCAweGUwLCAweDQ0LAotMHgxMCwgMHhmMCwgMHg4MCwgMHgwZCwgMHg5MCwgMHhmYSwgMHhlNiwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhmOSwgMHgxNiwgMHhlMCwgMHg1NCwgMHhlZiwKLTB4ZjAsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4MjIsIDB4MDMsIDB4NjgsIDB4MDEsIDB4ZmYsIDB4NDgsIDB4MDMsIDB4NmIsCi0weDAxLCAweGZmLCAweDA4LCAweDAyLCAweDY2LCAweDAwLCAweDAwLCAweDQ0LCAweGZhLCAweDk4LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDQ0LCAweGZhLAotMHg5NCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg0MiwgMHhmYSwgMHhiMiwgMHgwMCwgMHgwMCwgMHg0MiwgMHhmYSwgMHg3ZSwgMHgwMCwgMHgwMCwgMHg0MiwKLTB4ZmEsIDB4N2MsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZjksIDB4NmQsIDB4ZmYsIDB4ZmYsIDB4NDIsIDB4ZmEsIDB4N2EsIDB4MDAsIDB4MDAsIDB4NDEsIDB4ZjksCi0weDY2LCAweGZmLCAweDQxLCAweGY5LCAweDFjLCAweDE5LCAweDQxLCAweGY5LCAweDE1LCAweDAwLCAweDQzLCAweGY5LCAweDE5LCAweDBhLCAweDMyLCAweDAyLAotMHg0MSwgMHhmOSwgMHg2OCwgMHgyMCwgMHg0MSwgMHhmOSwgMHg2OSwgMHgyMCwgMHg0MSwgMHhmOSwgMHg2NSwgMHgwMCwgMHg0MSwgMHhmOSwgMHg2NywgMHgwMCwKLTB4NDQsIDB4ZjgsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDIsIDB4ZjksIDB4MTYsIDB4MDAsIDB4MDAsIDB4NDEsIDB4ZjksIDB4MTgsIDB4MDAsCi0weDAxLCAweDIwLCAweDAwLCAweDQxLCAweGY4LCAweDA0LCAweDAwLCAweDAwLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDhhLCAweGVmLCAweGY2LCAweDEyLAotMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhlZSwgMHgzMCwgMHhlMCwgMHgyOSwgMHg3OCwgMHg3YywgMHgxMiwgMHgyMiwgMHhiNywgMHhlMCwgMHg1NCwgMHg3ZiwKLTB4ZjAsIDB4NzgsIDB4NmIsIDB4MTIsIDB4MWIsIDB4ZDgsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MWEsIDB4YmIsIDB4MzAsIDB4ZTcsIDB4MDksIDB4OTAsCi0weDAwLCAweDAyLCAweGU0LCAweDEyLCAweDFhLCAweGZhLCAweDgwLCAweGU5LCAweDc4LCAweDdjLCAweDEyLCAweDIyLCAweGI3LCAweGUwLCAweDQ0LCAweDgwLAotMHhmMCwgMHgxMiwgMHgyMiwgMHhlZSwgMHgzMCwgMHhlMSwgMHgxZSwgMHgxMiwgMHgyMiwgMHg5NywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHgxMiwgMHgzMiwKLTB4MTksIDB4NzgsIDB4NjgsIDB4MTIsIDB4MWIsIDB4ZDgsIDB4OTAsIDB4MDAsIDB4MDIsIDB4NzQsIDB4ODAsIDB4MTIsIDB4MWEsIDB4ZmEsIDB4MTIsIDB4MjIsCi0weDk3LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDEyLCAweDMyLCAweDg0LCAweGU0LCAweGZmLCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLAotMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4NSwgMHhlZiwgMHhmNiwgMHgxMiwgMHgzMSwgMHg1MCwgMHgxMiwgMHgzMSwgMHhhOSwgMHg3OCwgMHg4NSwgMHhlNiwKLTB4ZmYsIDB4MjQsIDB4MTMsIDB4MTIsIDB4MjIsIDB4YWQsIDB4ZTAsIDB4ZmUsIDB4MzAsIDB4ZTcsIDB4MTYsIDB4ZWYsIDB4YjQsIDB4MDMsIDB4MDksIDB4OTAsCi0weGZmLCAweDllLCAweGUwLCAweDU0LCAweGZhLCAweGYwLCAweDgwLCAweDIyLCAweDkwLCAweGZmLCAweDllLCAweGUwLCAweDU0LCAweGY1LCAweGYwLCAweDgwLAotMHgxOSwgMHhlZSwgMHg1NCwgMHgwMywgMHg2MCwgMHgxNCwgMHhlZiwgMHhiNCwgMHgwMywgMHgwOSwgMHg5MCwgMHhmZiwgMHhhNCwgMHhlMCwgMHg0NCwgMHgyMCwKLTB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4ZmYsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4OTAsIDB4ZjksIDB4MTgsIDB4ZTAsIDB4MTQsIDB4ZjAsCi0weGUwLCAweDcwLCAweDAyLCAweGQyLCAweGIzLCAweDAyLCAweDEwLCAweGNlLCAweDEyLCAweDFlLCAweDFjLCAweGU1LCAweDNhLCAweDY0LCAweDA5LCAweDcwLAotMHgwNCwgMHhlNSwgMHgzOSwgMHg2NCwgMHgwMSwgMHg2MCwgMHg0OCwgMHhjMywgMHhlNSwgMHgzYSwgMHg5NCwgMHgwOCwgMHhlNSwgMHgzOSwgMHg5NCwgMHgwMCwKLTB4NDAsIDB4MTEsIDB4N2YsIDB4MDgsIDB4ZWYsIDB4ZTUsIDB4M2EsIDB4OTQsIDB4MDgsIDB4ZjUsIDB4M2EsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsIDB4ZjUsCi0weDM5LCAweDgwLCAweDA1LCAweGFmLCAweDNhLCAweDEyLCAweDFlLCAweDM0LCAweGU0LCAweGZlLCAweGVlLCAweGMzLCAweDlmLCAweDUwLCAweDE5LCAweDEyLAotMHgxYywgMHhjMSwgMHgxMiwgMHgxYSwgMHhhMiwgMHhmZCwgMHg3NCwgMHhmOCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHhmZSwgMHhmNSwgMHg4MywKLTB4ZWQsIDB4ZjAsIDB4MGUsIDB4MTIsIDB4MWMsIDB4YjAsIDB4ODAsIDB4ZTIsIDB4ZWYsIDB4NTQsIDB4N2YsIDB4OTAsIDB4ZmYsIDB4ODEsIDB4ZjAsIDB4MjIsCi0weDhiLCAweDU5LCAweDhhLCAweDVhLCAweDg5LCAweDViLCAweDEyLCAweDJlLCAweDE5LCAweDcwLCAweDA1LCAweGEzLCAweDc0LCAweDA4LCAweGYwLCAweDIyLAotMHhhYiwgMHg1OSwgMHhhYSwgMHg1YSwgMHhhOSwgMHg1YiwgMHgxMiwgMHgyZSwgMHgwZCwgMHg5MCwgMHhmYSwgMHhjOSwgMHgxMiwgMHgxYiwgMHhmMywgMHhlNSwKLTB4NWIsIDB4MjQsIDB4MDMsIDB4ZjksIDB4ZTQsIDB4MzUsIDB4NWEsIDB4ZmEsIDB4OTAsIDB4ZmEsIDB4YzMsIDB4MTIsIDB4MWIsIDB4ZjMsIDB4ZTQsIDB4OTAsCi0weGZhLCAweGMyLCAweGYwLCAweDc4LCAweDhiLCAweGY2LCAweDkwLCAweGZhLCAweGMxLCAweGUwLCAweGZmLCAweDc4LCAweDhiLCAweGU2LCAweGMzLCAweDlmLAotMHg1MCwgMHgxMiwgMHgxMiwgMHgyZCwgMHhlYiwgMHhmZiwgMHgxMiwgMHgyZCwgMHhmNCwgMHgxMiwgMHgyZSwgMHgwNywgMHg3OCwgMHg4YiwgMHgwNiwgMHgxMiwKLTB4MmUsIDB4MDMsIDB4ODAsIDB4ZTIsIDB4MjIsIDB4YWQsIDB4MDcsIDB4YWMsIDB4MDYsIDB4OTAsIDB4MzIsIDB4MGEsIDB4ZTQsIDB4OTMsIDB4ZmYsIDB4NzgsCi0weDc0LCAweGY2LCAweDU0LCAweDBmLCAweDEyLCAweDFkLCAweGE4LCAweGUwLCAweDA4LCAweDc2LCAweDAwLCAweDA4LCAweGY2LCAweDE4LCAweDEyLCAweDFjLAotMHhkOSwgMHhjMywgMHgzMywgMHhjZSwgMHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHg3OCwgMHg3NSwgMHhlZSwgMHhmNiwgMHgwOCwgMHhlZiwgMHhmNiwKLTB4ZWUsIDB4NDQsIDB4ZjgsIDB4MTgsIDB4ZjYsIDB4ZWYsIDB4MDgsIDB4ZjYsIDB4OTAsIDB4ZmYsIDB4N2EsIDB4ZTAsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4N2YsCi0weDAwLCAweDIyLCAweDc4LCAweDc1LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGVjLCAweGYwLCAweGEzLCAweGVkLAotMHhmMCwgMHg5MCwgMHhmZiwgMHg3YSwgMHg3NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHgyMiwgMHhhYiwgMHg1NiwgMHhhYSwgMHg1NywgMHhhOSwgMHg1OCwKLTB4OTAsIDB4MDAsIDB4MDMsIDB4MTIsIDB4MWEsIDB4YmIsIDB4NTQsIDB4ZjAsIDB4MjQsIDB4YTAsIDB4MjIsIDB4OTAsIDB4ZmEsIDB4YzksIDB4MTIsIDB4MWIsCi0weGVhLCAweDAyLCAweDFhLCAweGEyLCAweDkwLCAweGZhLCAweGMzLCAweDEyLCAweDFiLCAweGVhLCAweGVmLCAweDEyLCAweDFhLCAweGU4LCAweDkwLCAweGZhLAotMHhjYSwgMHhlNCwgMHgyMiwgMHg5MCwgMHhmYSwgMHhjNCwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgwMiwgMHgxYiwgMHgxYywgMHg5MCwgMHgwMCwgMHgwOCwKLTB4MTIsIDB4MWIsIDB4NDgsIDB4YWEsIDB4ZjAsIDB4ZjksIDB4N2IsIDB4MDEsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4MWEsIDB4YmIsIDB4OTAsCi0weGZhLCAweGMxLCAweGYwLCAweDIyLCAweGFiLCAweDU2LCAweGFhLCAweDU3LCAweGE5LCAweDU4LCAweDIyLCAweDkwLCAweGZhLCAweGRkLCAweGUwLCAweGZmLAotMHg3ZSwgMHgwMCwgMHhjMywgMHg5MCwgMHhmYSwgMHhkNywgMHhlMCwgMHg5ZiwgMHhmMCwgMHg5MCwgMHhmYSwgMHhkNiwgMHhlMCwgMHg5ZSwgMHhmMCwgMHg5MCwKLTB4ZmEsIDB4ZDgsIDB4ZWUsIDB4OGYsIDB4ZjAsIDB4MTIsIDB4MWIsIDB4MWMsIDB4ZWYsIDB4MjUsIDB4NTEsIDB4ZjUsIDB4NTEsIDB4ZWUsIDB4MzUsIDB4NTAsCi0weGY1LCAweDUwLCAweDIyLCAweDkwLCAweGZmLCAweGYwLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweGZhLAotMHhlNiwgMHhlMCwgMHg2NCwgMHgwMywgMHgyMiwgMHg5MCwgMHhmZiwgMHhmMiwgMHhlMCwgMHhhYiwgMHgyOSwgMHhhYSwgMHgyYSwgMHhhOSwgMHgyYiwgMHgwMiwKLTB4MWEsIDB4ZTgsIDB4OTAsIDB4ZmYsIDB4ZjMsIDB4NzQsIDB4YTAsIDB4ZjAsIDB4MjIsIDB4OGYsIDB4NjQsIDB4ZWQsIDB4NzAsIDB4MGYsIDB4ZTUsIDB4NjQsCi0weGI0LCAweDAzLCAweDA1LCAweDdmLCAweDAxLCAweDAyLCAweDMxLCAweGVmLCAweDdmLCAweDAyLCAweDAyLCAweDMxLCAweGVmLCAweGFmLCAweDY0LCAweDEyLAotMHgyYSwgMHhjNywgMHg3NCwgMHg2ZSwgMHgyNSwgMHg2NCwgMHhmOCwgMHhlNiwgMHgzMCwgMHhlMiwgMHgwYiwgMHhkMiwgMHgwOSwgMHgxMiwgMHgxZCwgMHgzMywKLTB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MDksIDB4ZTUsIDB4NjQsIDB4YjQsIDB4MDMsIDB4MDcsIDB4N2YsIDB4ODEsIDB4MTIsCi0weDMxLCAweGVmLCAweDgwLCAweDA1LCAweDdmLCAweDgyLCAweDEyLCAweDMxLCAweGVmLCAweDMwLCAweDA5LCAweDA3LCAweDEyLCAweDFkLCAweDMzLCAweGUwLAotMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgzMiwgMHg4NCwgMHgyMiwgMHgxMiwgMHgxMCwgMHg0YiwgMHg5MCwgMHhmZiwgMHhmZCwgMHhlMCwgMHg0NCwgMHg2MCwKLTB4ZjAsIDB4ZDIsIDB4MDEsIDB4OTAsIDB4ZmYsIDB4ZmMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4ZmYsIDB4MDAsIDB4ZTAsIDB4MzAsIDB4ZTcsCi0weDEzLCAweDkwLCAweGZmLCAweDgzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDM1LCAweDgwLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDQ0LAotMHgwMSwgMHhmMCwgMHg4MCwgMHgwZCwgMHgxMiwgMHgxZCwgMHhkZiwgMHg1MywgMHgzNSwgMHg3ZiwgMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHg1NCwgMHhmZSwKLTB4ZjAsIDB4OTAsIDB4ZmYsIDB4ODEsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4MTIsIDB4MDIsIDB4ZGUsIDB4MTIsIDB4MWQsIDB4ZTcsIDB4MDIsIDB4MTAsCi0weGNlLCAweDEyLCAweDEwLCAweDRiLCAweDc4LCAweDg5LCAweGVmLCAweGY2LCAweGQyLCAweDAwLCAweDEyLCAweDJhLCAweGM3LCAweDkwLCAweGY5LCAweDZhLAotMHgxMiwgMHgxYiwgMHhlYSwgMHhlOSwgMHgyNCwgMHgwMywgMHhmOSwgMHhlNCwgMHgzYSwgMHhmYSwgMHhjMCwgMHgwMiwgMHg3OCwgMHg4MCwgMHhlNiwgMHhmZSwKLTB4MDgsIDB4ZTYsIDB4YWEsIDB4MDYsIDB4ZjgsIDB4YWMsIDB4MDIsIDB4N2QsIDB4MDEsIDB4ZDAsIDB4MDIsIDB4MTIsIDB4MjIsIDB4ZDMsIDB4MTIsIDB4MzIsCi0weDg0LCAweDc4LCAweDg5LCAweGU2LCAweGZmLCAweDEyLCAweDEzLCAweDg3LCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLCAweGNlLCAweDhmLCAweDYzLAotMHgxMiwgMHgyYSwgMHhjNywgMHg3OCwgMHg3YywgMHgxMiwgMHgyMiwgMHhiNywgMHhlMCwgMHg1NCwgMHgzZiwgMHhmMCwgMHhlNSwgMHg4MiwgMHgyNCwgMHgwNCwKLTB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjAsIDB4MTIsIDB4MjMsIDB4NDEsIDB4MjQsIDB4MGIsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsCi0weDU0LCAweGY4LCAweGYwLCAweDEyLCAweDMyLCAweDg0LCAweDc0LCAweDZlLCAweDI1LCAweDYzLCAweGY4LCAweDc0LCAweGZiLCAweDU2LCAweGY2LCAweDdmLAotMHgwMCwgMHgyMiwgMHgxMiwgMHgxMCwgMHg0YiwgMHgxMiwgMHgyYSwgMHhjNywgMHgxMiwgMHgyMiwgMHhmYSwgMHgyNCwgMHgwNiwgMHgxMiwgMHgyMiwgMHg5ZiwKLTB4ZTAsIDB4ZmQsIDB4MTIsIDB4MjIsIDB4ZTgsIDB4OTAsIDB4MDAsIDB4MDMsIDB4MTIsIDB4MjMsIDB4MDIsIDB4MjQsIDB4MDUsIDB4MTIsIDB4MjIsIDB4YTEsCi0weGUwLCAweDkwLCAweDAwLCAweDA0LCAweDEyLCAweDFhLCAweGZhLCAweDEyLCAweDMyLCAweDg0LCAweDdkLCAweDAyLCAweGU0LCAweGZmLCAweDEyLCAweDJmLAotMHhiNCwgMHgwMiwgMHgxMCwgMHhjZSwgMHhhZSwgMHgwNSwgMHgxMiwgMHgxZCwgMHg4ZSwgMHhlZiwgMHgxMiwgMHgxYSwgMHhmYSwgMHgwZSwgMHgwZSwgMHgwZSwKLTB4ZWUsIDB4ZDMsIDB4OTUsIDB4M2MsIDB4ZTQsIDB4OTUsIDB4M2IsIDB4NDAsIDB4MDIsIDB4YWUsIDB4M2MsIDB4ZWUsIDB4ZDMsIDB4OTQsIDB4MDgsIDB4NzQsCi0weDgwLCAweDk0LCAweDgxLCAweDQwLCAweDBhLCAweDdlLCAweDAzLCAweDkwLCAweDAwLCAweDAyLCAweDc0LCAweDAyLCAweDEyLCAweDFhLCAweGZhLCAweGFmLAotMHgwNiwgMHgxMiwgMHgzMiwgMHg2ZSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlZCwgMHg1NCwgMHgwMywgMHg2NCwgMHgwMSwgMHg2MCwgMHgwMywgMHg3ZiwgMHgxMCwKLTB4MjIsIDB4ZWQsIDB4NTQsIDB4N2MsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NTAsIDB4MDMsIDB4N2YsIDB4MGIsIDB4MjIsIDB4NzQsIDB4NmUsIDB4MmUsIDB4ZjgsCi0weDc0LCAweDAyLCAweDQ2LCAweGY2LCAweDc0LCAweDk5LCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweGZhLCAweGY1LCAweDgzLCAweGVkLCAweGYwLAotMHg3ZiwgMHgwMCwgMHgyMiwgMHhiZiwgMHgwMywgMHgwNiwgMHg3YywgMHhmZiwgMHg3ZCwgMHhlMCwgMHg4MCwgMHgwNCwgMHg3YywgMHhmZiwgMHg3ZCwgMHhlMiwKLTB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4MTIsIDB4MjIsIDB4YTEsIDB4ZTAsCi0weDQ0LCAweDgwLCAweGYwLCAweDc0LCAweDZlLCAweDJmLCAweGY4LCAweDc0LCAweDA0LCAweDQ2LCAweGY2LCAweDdmLCAweDAwLCAweDIyLCAweDEyLCAweDEwLAotMHg0YiwgMHhlNSwgMHgzYSwgMHg2NCwgMHgwOSwgMHg3MCwgMHgwNCwgMHhlNSwgMHgzOSwgMHg2NCwgMHgwMSwgMHg2MCwgMHgxNiwgMHg5MCwgMHhmZiwgMHg4MywKLTB4ZTAsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4YzMsIDB4ZTUsIDB4M2EsIDB4OWYsIDB4ZTUsIDB4MzksIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDUsIDB4MTIsIDB4MjgsCi0weGQ3LCAweDgwLCAweDAzLCAweDEyLCAweDMyLCAweDdhLCAweDAyLCAweDEwLCAweGNlLCAweDkwLCAweGZmLCAweGZjLCAweGUwLCAweDIwLCAweGU3LCAweDFmLAotMHhjMiwgMHhhZiwgMHg3ZCwgMHhmZiwgMHhhYywgMHgwNSwgMHgxZCwgMHhlYywgMHg2MCwgMHgxNSwgMHg3ZSwgMHgwNCwgMHg3ZiwgMHgwMCwgMHhlZiwgMHgxZiwKLTB4YWEsIDB4MDYsIDB4NzAsIDB4MDEsIDB4MWUsIDB4NGEsIDB4NjAsIDB4ZWMsIDB4OTAsIDB4ZmYsIDB4OTIsIDB4ZTQsIDB4ZjAsIDB4ODAsIDB4ZWYsIDB4MjIsCi0weDEyLCAweDEwLCAweDRiLCAweDc4LCAweDY2LCAweGU2LCAweGZlLCAweDA4LCAweGU2LCAweGZmLCAweDMwLCAweGUwLCAweDEyLCAweDMwLCAweGUxLCAweDBmLAotMHg5MCwgMHhmZiwgMHhmYywgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg3ZiwgMHgwNCwgMHgxMiwgMHgxMiwgMHg2MSwgMHgxMiwgMHgxZCwgMHhmNiwgMHgwMiwKLTB4MTAsIDB4Y2UsIDB4OGYsIDB4MjMsIDB4YzIsIDB4MDgsIDB4MTIsIDB4MmEsIDB4YzcsIDB4MTIsIDB4MjIsIDB4YzAsIDB4NzgsIDB4N2UsIDB4MTIsIDB4MjMsCi0weDQyLCAweDI0LCAweDBiLCAweDEyLCAweDIyLCAweGExLCAweGUwLCAweDU0LCAweGY4LCAweGYwLCAweDEyLCAweDMyLCAweDg0LCAweGFmLCAweDIzLCAweDEyLAotMHgxMywgMHg4NywgMHgyMiwgMHg4ZSwgMHg1ZiwgMHg4ZiwgMHg2MCwgMHhlNSwgMHg2MCwgMHgxNSwgMHg2MCwgMHhhZSwgMHg1ZiwgMHg3MCwgMHgwMiwgMHgxNSwKLTB4NWYsIDB4ZDMsIDB4OTQsIDB4MDAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDksIDB4N2UsIDB4MDcsIDB4N2YsIDB4ZDAsIDB4MTIsIDB4MTAsIDB4MjQsCi0weDgwLCAweGU1LCAweDIyLCAweDExLCAweGRjLCAweDJlLCAweGM3LCAweDI0LCAweGIwLCAweDMyLCAweDYwLCAweDMwLCAweDkwLCAweDMwLCAweDNlLCAweDMxLAotMHg2ZiwgMHgyZiwgMHg4MiwgMHgyNywgMHgyZSwgMHgyYywgMHg4MCwgMHgzMSwgMHgxMiwgMHgzMSwgMHgzMSwgMHgxZSwgMHg2NCwgMHgyZiwgMHgxMSwgMHgyYywKLTB4MTgsIDB4MGUsIDB4MTIsIDB4MTAsIDB4NGIsIDB4NzgsIDB4ODYsIDB4MTIsIDB4MjMsIDB4MzEsIDB4MjAsIDB4ZTEsIDB4MDcsIDB4N2YsIDB4MTIsIDB4MTIsCi0weDMxLCAweGE5LCAweDgwLCAweDBhLCAweDc4LCAweDg2LCAweGU2LCAweGZmLCAweDEyLCAweDI0LCAweDBhLCAweDEyLCAweDMxLCAweGE5LCAweDAyLCAweDEwLAotMHhjZSwgMHgxMiwgMHgxMCwgMHg0YiwgMHg3OCwgMHg4NywgMHgxMiwgMHgyMywgMHgzMSwgMHgyMCwgMHhlMiwgMHgwNywgMHg3ZiwgMHgxMSwgMHgxMiwgMHgzMSwKLTB4YTksIDB4ODAsIDB4MGEsIDB4NzgsIDB4ODcsIDB4ZTYsIDB4ZmYsIDB4MTIsIDB4MmYsIDB4NGUsIDB4MTIsIDB4MzEsIDB4YTksIDB4MDIsIDB4MTAsIDB4Y2UsCi0weDhmLCAweDYxLCAweDEyLCAweDJmLCAweDRlLCAweGFmLCAweDYxLCAweDEyLCAweDJhLCAweGM3LCAweDEyLCAweDIyLCAweGMwLCAweDEyLCAweDMyLCAweDg0LAotMHg3NCwgMHg2ZSwgMHgyNSwgMHg2MSwgMHhmOCwgMHg3NCwgMHhmZCwgMHg1NiwgMHhmNiwgMHhhZiwgMHg2MSwgMHgxMiwgMHgxMywgMHg4NywgMHgyMiwgMHgxMiwKLTB4MTAsIDB4NGIsIDB4ZTUsIDB4M2EsIDB4NjQsIDB4MDksIDB4NzAsIDB4MDQsIDB4ZTUsIDB4MzksIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDUsIDB4MTIsIDB4MmMsCi0weGQ4LCAweDgwLCAweDA2LCAweDEyLCAweDFlLCAweDE0LCAweDEyLCAweDFlLCAweDFjLCAweDAyLCAweDEwLCAweGNlLCAweDEyLCAweDJhLCAweDU0LCAweDEyLAotMHgxMywgMHgwMywgMHg5MCwgMHhmOCwgMHgwNCwgMHhlMCwgMHhmZiwgMHg2MCwgMHgwNSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHgxMiwgMHhhMCwgMHgxMiwgMHgyOSwKLTB4ZGUsIDB4MTIsIDB4MTMsIDB4M2YsIDB4MTIsIDB4MTEsIDB4YmMsIDB4ODAsIDB4ZTMsIDB4MTIsIDB4MWQsIDB4OGUsIDB4ZWYsIDB4MTIsIDB4MWEsIDB4ZmEsCi0weGU0LCAweGY1LCAweDMzLCAweGY1LCAweDM0LCAweGVmLCAweDYwLCAweDAzLCAweDAyLCAweDMyLCAweDdhLCAweGU0LCAweGZmLCAweDEyLCAweDMyLCAweDZlLAotMHgyMiwgMHg5MCwgMHhmZiwgMHhmMCwgMHhlMCwgMHhmZiwgMHg1NCwgMHhhMCwgMHg2MCwgMHhmNywgMHhlZiwgMHgzMCwgMHhlNSwgMHgwOCwgMHg5MCwgMHhmZiwKLTB4ZjAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4YzMsIDB4MjIsIDB4ZDMsIDB4MjIsIDB4OTAsIDB4ZmYsIDB4ZjAsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4MjgsIDB4NjAsCi0weGY3LCAweGVmLCAweDMwLCAweGU1LCAweDA4LCAweDkwLCAweGZmLCAweGYwLCAweDQ0LCAweDIwLCAweGYwLCAweGMzLCAweDIyLCAweGQzLCAweDIyLCAweGVmLAotMHgzMCwgMHhlNywgMHgwOCwgMHgxMiwgMHgxZCwgMHg0NSwgMHhlMCwgMHg1NCwgMHhkZiwgMHhmMCwgMHgyMiwgMHhlZiwgMHgxMiwgMHgxZCwgMHg5OCwgMHhlMCwKLTB4NTQsIDB4ZGYsIDB4ZjAsIDB4MjIsIDB4ODEsIDB4MDEsIDB4ODIsIDB4MDIsIDB4ODMsIDB4MDMsIDB4ODcsIDB4NDAsIDB4MDAsIDB4NDAsIDB4MDAsIDB4NDAsCi0weDAwLCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDQwLCAweDAwLCAweDA4LCAweDAwLCAweDc4LCAweDdlLCAweDEyLCAweDIyLCAweGI3LCAweGEzLCAweGEzLAotMHhlMCwgMHhmZiwgMHgzMCwgMHhlNywgMHgwNiwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgyMiwgMHg4NSwgMHgzYiwgMHgzOSwgMHg4NSwKLTB4M2MsIDB4M2EsIDB4OTAsIDB4ZmYsIDB4ODIsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4MjIsIDB4ZTQsCi0weGZlLCAweGVlLCAweDkwLCAweDMyLCAweDA0LCAweDkzLCAweGI1LCAweDA3LCAweDAyLCAweGQzLCAweDIyLCAweDBlLCAweGJlLCAweDA3LCAweGYyLCAweGMzLAotMHgyMiwgMHgwMCwgMHgwOCwgMHgxOCwgMHgyOCwgMHgzOCwgMHgwMSwgMHg4MSwgMHg5MCwgMHgwYSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgxMSwgMHgxMywgMHgwMCwKLTB4MTIsIDB4MTAsIDB4NGIsIDB4N2YsIDB4MDIsIDB4MTIsIDB4MTAsIDB4ZGEsIDB4MTIsIDB4MWQsIDB4ZjYsIDB4MDIsIDB4MTAsIDB4Y2UsIDB4NzUsIDB4MzksCi0weDAwLCAweDhmLCAweDNhLCAweDEyLCAweDFjLCAweGUwLCAweDEyLCAweDJjLCAweGQ4LCAweDIyLCAweDEyLCAweDFlLCAweDFjLCAweDEyLCAweDFkLCAweGRmLAotMHgxMiwgMHgxZSwgMHgxNCwgMHgyMiwgMHhjMiwgMHgwOCwgMHgyMiwKLX07Ci0KLSN1bmRlZiBJTUFHRV9WRVJTSU9OX05BTUUKLQotI3VuZGVmIElNQUdFX0FSUkFZX05BTUUKLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2lvX3RpLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuYwppbmRleCAwNWU0ZmE3Li42MWRhZWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvaW9fdGkuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VyaWFsLmg+CiAjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgpAQCAtNTIsMTMgKzUzLDYgQEAKICNkZWZpbmUgRFJJVkVSX0FVVEhPUiAiR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4gYW5kIERhdmlkIElhY292ZWxsaSIKICNkZWZpbmUgRFJJVkVSX0RFU0MgIkVkZ2Vwb3J0IFVTQiBTZXJpYWwgRHJpdmVyIgogCi0KLS8qIGZpcm13YXJlIGltYWdlIGNvZGUgKi8KLSNkZWZpbmUgSU1BR0VfVkVSU0lPTl9OQU1FCVBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24KLSNkZWZpbmUgSU1BR0VfQVJSQVlfTkFNRQlQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2UKLSNkZWZpbmUgSU1BR0VfU0laRQkJUGFnYWJsZU9wZXJhdGlvbmFsQ29kZVNpemUKLSNpbmNsdWRlICJpb19md19kb3duMy5oIgkvKiBEZWZpbmUgYXJyYXkgT3BlcmF0aW9uYWxDb2RlSW1hZ2VbXSAqLwotCiAjZGVmaW5lIEVQUk9NX1BBR0VfU0laRQkJNjQKIAogCkBAIC0yMzEsNyArMjI1LDkgQEAKIH07CiAKIAotc3RhdGljIHN0cnVjdCBFREdFX0ZJUk1XQVJFX1ZFUlNJT05fSU5GTyBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb247CitzdGF0aWMgdW5zaWduZWQgY2hhciBPcGVyYXRpb25hbE1ham9yVmVyc2lvbjsKK3N0YXRpYyB1bnNpZ25lZCBjaGFyIE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uOworc3RhdGljIHVuc2lnbmVkIHNob3J0IE9wZXJhdGlvbmFsQnVpbGROdW1iZXI7CiAKIHN0YXRpYyBpbnQgZGVidWc7CiAKQEAgLTg4NSwxMCArODgxLDEzIEBACiAJX191OCAqYnVmZmVyOwogCWludCBidWZmZXJfc2l6ZTsKIAlpbnQgaTsKKwlpbnQgZXJyOwogCV9fdTggY3MgPSAwOwogCXN0cnVjdCB0aV9pMmNfZGVzYyAqaTJjX2hlYWRlcjsKIAlzdHJ1Y3QgdGlfaTJjX2ltYWdlX2hlYWRlciAqaW1nX2hlYWRlcjsKIAlzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYyAqZmlybXdhcmVfcmVjOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CisJY29uc3QgY2hhciAqZndfbmFtZSA9ICJlZGdlcG9ydC9kb3duMy5iaW4iOwogCiAJLy8gSW4gb3JkZXIgdG8gdXBkYXRlIHRoZSBJMkMgZmlybXdhcmUgd2UgbXVzdCBjaGFuZ2UgdGhlIHR5cGUgMiByZWNvcmQgdG8gdHlwZSAweEYyLgogCS8vIFRoaXMgd2lsbCBmb3JjZSB0aGUgVU1QIHRvIGNvbWUgdXAgaW4gQm9vdCBNb2RlLiAgVGhlbiB3aGlsZSBpbiBib290IG1vZGUsIHRoZSBkcml2ZXIgCkBAIC05MDksMTkgKzkwOCwzNCBAQAogCS8vIFNldCBlbnRpcmUgaW1hZ2Ugb2YgMHhmZnMKIAltZW1zZXQgKGJ1ZmZlciwgMHhmZiwgYnVmZmVyX3NpemUpOwogCisJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsIGRldik7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgIkZhaWxlZCB0byBsb2FkIGltYWdlIFwiJXNcIiBlcnIgJWRcbiIsCisJCSAgICAgICBmd19uYW1lLCBlcnIpOworCQlrZnJlZShidWZmZXIpOworCQlyZXR1cm4gZXJyOworCX0KKworCS8qIFNhdmUgRG93bmxvYWQgVmVyc2lvbiBOdW1iZXIgKi8KKwlPcGVyYXRpb25hbE1ham9yVmVyc2lvbiA9IGZ3LT5kYXRhWzBdOworCU9wZXJhdGlvbmFsTWlub3JWZXJzaW9uID0gZnctPmRhdGFbMV07CisJT3BlcmF0aW9uYWxCdWlsZE51bWJlciA9IGZ3LT5kYXRhWzJdIHwgKGZ3LT5kYXRhWzNdIDw8IDgpOworCiAJLy8gQ29weSB2ZXJzaW9uIG51bWJlciBpbnRvIGZpcm13YXJlIHJlY29yZAogCWZpcm13YXJlX3JlYyA9IChzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYyAqKWJ1ZmZlcjsKIAotCWZpcm13YXJlX3JlYy0+VmVyX01ham9yCT0gT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbjsKLQlmaXJtd2FyZV9yZWMtPlZlcl9NaW5vcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb247CisJZmlybXdhcmVfcmVjLT5WZXJfTWFqb3IJPSBPcGVyYXRpb25hbE1ham9yVmVyc2lvbjsKKwlmaXJtd2FyZV9yZWMtPlZlcl9NaW5vcgk9IE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uOwogCiAJLy8gUG9pbnRlciB0byBmd19kb3duIG1lbW9yeSBpbWFnZQotCWltZ19oZWFkZXIgPSAoc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKikmUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlWzBdOworCWltZ19oZWFkZXIgPSAoc3RydWN0IHRpX2kyY19pbWFnZV9oZWFkZXIgKikmZnctPmRhdGFbNF07CiAKIAltZW1jcHkgKGJ1ZmZlciArIHNpemVvZihzdHJ1Y3QgdGlfaTJjX2Zpcm13YXJlX3JlYyksCi0JCSZQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2Vbc2l6ZW9mKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyKV0sCisJCSZmdy0+ZGF0YVs0ICsgc2l6ZW9mKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyKV0sCiAJCWxlMTZfdG9fY3B1KGltZ19oZWFkZXItPkxlbmd0aCkpOwogCisJcmVsZWFzZV9maXJtd2FyZShmdyk7CisKIAlmb3IgKGk9MDsgaSA8IGJ1ZmZlcl9zaXplOyBpKyspIHsKIAkJY3MgPSAoX191OCkoY3MgKyBidWZmZXJbaV0pOwogCX0KQEAgLTkzNSw4ICs5NDksOCBAQAogCWkyY19oZWFkZXItPlR5cGUJPSBJMkNfREVTQ19UWVBFX0ZJUk1XQVJFX0JMQU5LOwogCWkyY19oZWFkZXItPlNpemUJPSAoX191MTYpYnVmZmVyX3NpemU7CiAJaTJjX2hlYWRlci0+Q2hlY2tTdW0JPSBjczsKLQlmaXJtd2FyZV9yZWMtPlZlcl9NYWpvcgk9IE9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NYWpvclZlcnNpb247Ci0JZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uOworCWZpcm13YXJlX3JlYy0+VmVyX01ham9yCT0gT3BlcmF0aW9uYWxNYWpvclZlcnNpb247CisJZmlybXdhcmVfcmVjLT5WZXJfTWlub3IJPSBPcGVyYXRpb25hbE1pbm9yVmVyc2lvbjsKIAogCXJldHVybiAwOwogfQpAQCAtMTA3NSwxMSArMTA4OSw2IEBACiAJCS8vIE90aGVyd2lzZSB3ZSB3aWxsIHJlbWFpbiBpbiBjb25maWd1cmluZyBtb2RlCiAJCXNlcmlhbC0+cHJvZHVjdF9pbmZvLlRpTW9kZSA9IFRJX01PREVfQ09ORklHVVJJTkc7CiAKLQkvLyBTYXZlIERvd25sb2FkIFZlcnNpb24gTnVtYmVyCi0JT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiA9IFBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uOwotCU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5NaW5vclZlcnNpb24gPSBQYWdhYmxlT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbjsKLQlPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uQnVpbGROdW1iZXIJID0gUGFnYWJsZU9wZXJhdGlvbmFsQ29kZUltYWdlVmVyc2lvbi5CdWlsZE51bWJlcjsKLQogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAkvKiBEb3dubG9hZCBNb2RlICovCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtMTE1NCwxNSArMTE2MywxNSBAQAogCQkJLy8gQ2hlY2sgdmVyc2lvbiBudW1iZXIgb2YgZG93bmxvYWQgd2l0aCBjdXJyZW50IHZlcnNpb24gaW4gSTJjCiAJCQlkb3dubG9hZF9jdXJfdmVyID0gKGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NYWpvciA8PCA4KSArIAogCQkJCQkgICAoZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yKTsKLQkJCWRvd25sb2FkX25ld192ZXIgPSAoT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1ham9yVmVyc2lvbiA8PCA4KSArCi0JCQkJCSAgIChPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uKTsKKwkJCWRvd25sb2FkX25ld192ZXIgPSAoT3BlcmF0aW9uYWxNYWpvclZlcnNpb24gPDwgOCkgKworCQkJCQkgICAoT3BlcmF0aW9uYWxNaW5vclZlcnNpb24pOwogCiAJCQlkYmcgKCIlcyAtID4+PkZpcm13YXJlIFZlcnNpb25zIERldmljZSAlZC4lZCAgRHJpdmVyICVkLiVkIiwKIAkJCSAgICAgX19mdW5jX18sCiAJCQkgICAgIGZpcm13YXJlX3ZlcnNpb24tPlZlcl9NYWpvciwKIAkJCSAgICAgZmlybXdhcmVfdmVyc2lvbi0+VmVyX01pbm9yLAotCQkJICAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uLAotCQkJICAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWlub3JWZXJzaW9uKTsKKwkJCSAgICAgT3BlcmF0aW9uYWxNYWpvclZlcnNpb24sCisJCQkgICAgIE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uKTsKIAogCQkJLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBvbGQgdmVyc2lvbiBpbiB0aGUgSTJDIGFuZCB1cGRhdGUgaWYgbmVjZXNzYXJ5CiAJCQlpZiAoZG93bmxvYWRfY3VyX3ZlciAhPSBkb3dubG9hZF9uZXdfdmVyKSB7CkBAIC0xMTcwLDggKzExNzksOCBAQAogCQkJCSAgICAgX19mdW5jX18sCiAJCQkJICAgICBmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWFqb3IsCiAJCQkJICAgICBmaXJtd2FyZV92ZXJzaW9uLT5WZXJfTWlub3IsCi0JCQkJICAgICBPcGVyYXRpb25hbENvZGVJbWFnZVZlcnNpb24uTWFqb3JWZXJzaW9uLAotCQkJCSAgICAgT3BlcmF0aW9uYWxDb2RlSW1hZ2VWZXJzaW9uLk1pbm9yVmVyc2lvbik7CisJCQkJICAgICBPcGVyYXRpb25hbE1ham9yVmVyc2lvbiwKKwkJCQkgICAgIE9wZXJhdGlvbmFsTWlub3JWZXJzaW9uKTsKIAogCQkJCS8vIEluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgSTJDIGZpcm13YXJlIHdlIG11c3QgY2hhbmdlIHRoZSB0eXBlIDIgcmVjb3JkIHRvIHR5cGUgMHhGMi4KIAkJCQkvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIFVNUCB0byBjb21lIHVwIGluIEJvb3QgTW9kZS4gIFRoZW4gd2hpbGUgaW4gYm9vdCBtb2RlLCB0aGUgZHJpdmVyIApAQCAtMTM3Nyw2ICsxMzg2LDkgQEAKIAkJX191OCBjcyA9IDA7CiAJCV9fdTggKmJ1ZmZlcjsKIAkJaW50IGJ1ZmZlcl9zaXplOworCQlpbnQgZXJyOworCQljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OworCQljb25zdCBjaGFyICpmd19uYW1lID0gImVkZ2Vwb3J0L2Rvd24zLmJpbiI7CiAKIAkJLyogVmFsaWRhdGUgSGFyZHdhcmUgdmVyc2lvbiBudW1iZXIKIAkJICogUmVhZCBNYW51ZmFjdHVyaW5nIERlc2NyaXB0b3IgZnJvbSBUSSBCYXNlZCBFZGdlcG9ydApAQCAtMTQyNSw3ICsxNDM3LDE1IEBACiAJCS8vIEluaXRpYWxpemUgdGhlIGJ1ZmZlciB0byAweGZmIChwYWQgdGhlIGJ1ZmZlcikKIAkJbWVtc2V0IChidWZmZXIsIDB4ZmYsIGJ1ZmZlcl9zaXplKTsKIAotCQltZW1jcHkgKGJ1ZmZlciwgJlBhZ2FibGVPcGVyYXRpb25hbENvZGVJbWFnZVswXSwgUGFnYWJsZU9wZXJhdGlvbmFsQ29kZVNpemUpOworCQllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgZGV2KTsKKwkJaWYgKGVycikgeworCQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gbG9hZCBpbWFnZSBcIiVzXCIgZXJyICVkXG4iLAorCQkJICAgICAgIGZ3X25hbWUsIGVycik7CisJCQlrZnJlZShidWZmZXIpOworCQkJcmV0dXJuIGVycjsKKwkJfQorCQltZW1jcHkoYnVmZmVyLCAmZnctPmRhdGFbNF0sIGZ3LT5zaXplIC0gNCk7CisJCXJlbGVhc2VfZmlybXdhcmUoZncpOwogCiAJCWZvcihpID0gc2l6ZW9mKHN0cnVjdCB0aV9pMmNfaW1hZ2VfaGVhZGVyKTsgaSA8IGJ1ZmZlcl9zaXplOyBpKyspIHsKIAkJCWNzID0gKF9fdTgpKGNzICsgYnVmZmVyW2ldKTsKQEAgLTMxMTksNiArMzEzOSw3IEBACiBNT0RVTEVfQVVUSE9SKERSSVZFUl9BVVRIT1IpOwogTU9EVUxFX0RFU0NSSVBUSU9OKERSSVZFUl9ERVNDKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9GSVJNV0FSRSgiZWRnZXBvcnQvZG93bjMuYmluIik7CiAKIG1vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkRlYnVnIGVuYWJsZWQgb3Igbm90Iik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvaXBhcS5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL2lwYXEuYwppbmRleCBlYTkyNGRjLi5kOWZiMzc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvaXBhcS5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9pcGFxLmMKQEAgLTU3MCw3ICs1NzAsMTIgQEAKIAkuZGVzY3JpcHRpb24gPQkJIlBvY2tldFBDIFBEQSIsCiAJLnVzYl9kcml2ZXIgPSAJCSZpcGFxX2RyaXZlciwKIAkuaWRfdGFibGUgPQkJaXBhcV9pZF90YWJsZSwKLQkubnVtX3BvcnRzID0JCTIsCisJLyoKKwkgKiBzb21lIGRldmljZXMgaGF2ZSBhbiBleHRyYSBlbmRwb2ludCwgd2hpY2gKKwkgKiBtdXN0IGJlIGlnbm9yZWQgYXMgaXQgd291bGQgbWFrZSB0aGUgY29yZQorCSAqIGNyZWF0ZSBhIHNlY29uZCBwb3J0IHdoaWNoIG9vcHNlcyB3aGVuIHVzZWQKKwkgKi8KKwkubnVtX3BvcnRzID0JCTEsCiAJLm9wZW4gPQkJCWlwYXFfb3BlbiwKIAkuY2xvc2UgPQkJaXBhcV9jbG9zZSwKIAkuYXR0YWNoID0JCWlwYXFfc3RhcnR1cCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5jCmluZGV4IDNkZjhhNjYuLjExZTQzOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmMKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uYwpAQCAtMTA1LDYgKzEwNSw4IEBACiAjaW5jbHVkZSA8bGludXgvdHR5X2ZsaXAuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgpAQCAtMTMzOSwxMyArMTM0MSwxMyBAQAogCXBvcnQtPnR0eSA9IE5VTEw7CiB9CiAKLQogCS8qIGRvd25sb2FkIHRoZSBmaXJtd2FyZSB0byBhIHByZS1yZW51bWVyYXRpb24gZGV2aWNlICovCiBzdGF0aWMgaW50IGtleXNwYW5fZmFrZV9zdGFydHVwIChzdHJ1Y3QgdXNiX3NlcmlhbCAqc2VyaWFsKQogewogCWludCAJCQkJcmVzcG9uc2U7Ci0JY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgCSpyZWNvcmQ7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjIAkqcmVjb3JkOwogCWNoYXIJCQkJKmZ3X25hbWU7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlCQkqZnc7CiAKIAlkYmcoIktleXNwYW4gc3RhcnR1cCB2ZXJzaW9uICUwNHggcHJvZHVjdCAlMDR4IiwKIAkgICAgbGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlKSwKQEAgLTEzNTksNzIgKzEzNjEsNjAgQEAKIAkJLyogU2VsZWN0IGZpcm13YXJlIGltYWdlIG9uIHRoZSBiYXNpcyBvZiBpZFByb2R1Y3QgKi8KIAlzd2l0Y2ggKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpIHsKIAljYXNlIGtleXNwYW5fdXNhMjhfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTI4X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTI4IjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTI4LmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhMjh4X3ByZV9wcm9kdWN0X2lkOgotCQlyZWNvcmQgPSAma2V5c3Bhbl91c2EyOHhfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMjhYIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTI4eC5mdyI7CiAJCWJyZWFrOwogCiAJY2FzZSBrZXlzcGFuX3VzYTI4eGFfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTI4eGFfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMjhYQSI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2EyOHhhLmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhMjh4Yl9wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMjh4Yl9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0EyOFhCIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTI4eGIuZnciOwogCQlicmVhazsKIAogCWNhc2Uga2V5c3Bhbl91c2ExOV9wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTlfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMTkiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhMTkuZnciOwogCQlicmVhazsKIAkJCSAgICAgCiAJY2FzZSBrZXlzcGFuX3VzYTE5cWlfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX3VzYTE5cWlfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBMTlRSSI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2ExOXFpLmZ3IjsKIAkJYnJlYWs7CiAJCQkgICAgIAogCWNhc2Uga2V5c3Bhbl9tcHJfcHJlX3Byb2R1Y3RfaWQ6Ci0JCXJlY29yZCA9ICZrZXlzcGFuX21wcl9maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJNUFIiOworCQlmd19uYW1lID0gImtleXNwYW4vbXByLmZ3IjsKIAkJYnJlYWs7CiAKIAljYXNlIGtleXNwYW5fdXNhMTlxd19wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTlxd19maXJtd2FyZVswXTsKLQkJZndfbmFtZSA9ICJVU0ExOVFJIjsKKwkJZndfbmFtZSA9ICJrZXlzcGFuL3VzYTE5cXcuZnciOwogCQlicmVhazsKIAkJCSAgICAgCiAJY2FzZSBrZXlzcGFuX3VzYTE4eF9wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTh4X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE4WCI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2ExOHguZnciOwogCQlicmVhazsKIAkJCSAgICAgCiAJY2FzZSBrZXlzcGFuX3VzYTE5d19wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhMTl3X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTE5VyI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2ExOXcuZnciOwogCQlicmVhazsKIAkJCiAJY2FzZSBrZXlzcGFuX3VzYTQ5d19wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhNDl3X2Zpcm13YXJlWzBdOwotCQlmd19uYW1lID0gIlVTQTQ5VyI7CisJCWZ3X25hbWUgPSAia2V5c3Bhbi91c2E0OXcuZnciOwogCQlicmVhazsKIAogCWNhc2Uga2V5c3Bhbl91c2E0OXdsY19wcmVfcHJvZHVjdF9pZDoKLQkJcmVjb3JkID0gJmtleXNwYW5fdXNhNDl3bGNfZmlybXdhcmVbMF07Ci0JCWZ3X25hbWUgPSAiVVNBNDlXTEMiOworCQlmd19uYW1lID0gImtleXNwYW4vdXNhNDl3bGMuZnciOwogCQlicmVhazsKIAogCWRlZmF1bHQ6Ci0JCXJlY29yZCA9IE5VTEw7Ci0JCWZ3X25hbWUgPSAiVW5rbm93biI7Ci0JCWJyZWFrOworCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiVW5rbm93biBwcm9kdWN0IElEICglMDR4KVxuIiwKKwkJCWxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpOworCQlyZXR1cm4gMTsKIAl9CiAKLQlpZiAocmVjb3JkID09IE5VTEwpIHsKKwlpZiAocmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmdywgZndfbmFtZSwgJnNlcmlhbC0+ZGV2LT5kZXYpKSB7CiAJCWRldl9lcnIoJnNlcmlhbC0+ZGV2LT5kZXYsICJSZXF1aXJlZCBrZXlzcGFuIGZpcm13YXJlIGltYWdlICglcykgdW5hdmFpbGFibGUuXG4iLCBmd19uYW1lKTsKIAkJcmV0dXJuKDEpOwogCX0KQEAgLTE0MzQsMTkgKzE0MjQsMjIgQEAKIAkJLyogZG93bmxvYWQgdGhlIGZpcm13YXJlIGltYWdlICovCiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQoc2VyaWFsLCAxKTsKIAotCXdoaWxlKHJlY29yZC0+YWRkcmVzcyAhPSAweGZmZmYpIHsKLQkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeShzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywKKwlyZWNvcmQgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CisKKwl3aGlsZSAocmVjb3JkKSB7CisJCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkoc2VyaWFsLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAogCQkJCQkgICAgICh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLAotCQkJCQkgICAgIHJlY29yZC0+ZGF0YV9zaXplLCAweGEwKTsKKwkJCQkJICAgICBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbiksIDB4YTApOwogCQlpZiAocmVzcG9uc2UgPCAwKSB7CiAJCQlkZXZfZXJyKCZzZXJpYWwtPmRldi0+ZGV2LCAiZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBLZXlzcGFuIgogCQkJCSJmaXJtd2FyZSAoJWQgJTA0WCAlcCAlZClcbiIsCi0JCQkJcmVzcG9uc2UsIAotCQkJCXJlY29yZC0+YWRkcmVzcywgcmVjb3JkLT5kYXRhLCByZWNvcmQtPmRhdGFfc2l6ZSk7CisJCQkJcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkJcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KLQkJcmVjb3JkKys7CisJCXJlY29yZCA9IGloZXhfbmV4dF9iaW5yZWMocmVjb3JkKTsKIAl9CisJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJCS8qIGJyaW5nIGRldmljZSBvdXQgb2YgcmVzZXQuIFJlbnVtZXJhdGlvbiB3aWxsIG9jY3VyIGluIGEKIAkJICAgbW9tZW50IGFuZCB0aGUgbmV3IGRldmljZSB3aWxsIGJpbmQgdG8gdGhlIHJlYWwgZHJpdmVyICovCiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQoc2VyaWFsLCAwKTsKQEAgLTI3NTYsNiArMjc0OSwxOSBAQAogTU9EVUxFX0RFU0NSSVBUSU9OKCBEUklWRVJfREVTQyApOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogCitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjguZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2EyOHguZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2EyOHhhLmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMjh4Yi5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTE5LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoImtleXNwYW4vdXNhMTlxaS5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL21wci5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJrZXlzcGFuL3VzYTE5cXcuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOHguZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2ExOXcuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2E0OXcuZnciKTsKK01PRFVMRV9GSVJNV0FSRSgia2V5c3Bhbi91c2E0OXdsYy5mdyIpOworCiBtb2R1bGVfcGFyYW0oZGVidWcsIGJvb2wsIFNfSVJVR08gfCBTX0lXVVNSKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGVidWcsICJEZWJ1ZyBlbmFibGVkIG9yIG5vdCIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW4uaAppbmRleCA4ZDZlZDAyLi5iNTJmYjY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbi5oCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuLmgKQEAgLTEwMyw5MCArMTAzLDYgQEAKIAkJCQkJIHN0cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQsCiAJCQkJCSBpbnQgcmVzZXRfcG9ydCk7CiAKLS8qIFN0cnVjdCB1c2VkIGZvciBmaXJtd2FyZSAtIGluY3JlYXNlZCBzaXplIG9mIGRhdGEgc2VjdGlvbgotICAgdG8gYWxsb3cgS2V5c3BhbidzICdDJyBmaXJtd2FyZSBzdHJ1Y3QgdG8gYmUgdXNlZCB1bm1vZGlmaWVkICovCi1zdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCB7Ci0JX191MTYgYWRkcmVzczsKLQlfX3U4IGRhdGFfc2l6ZTsKLQlfX3U4IGRhdGFbNjRdOwotfTsKLQotLyogQ29uZGl0aW9uYWxseSBpbmNsdWRlIGZpcm13YXJlIGltYWdlcywgaWYgdGhleSBhcmVuJ3QKLSAgIGluY2x1ZGVkIGNyZWF0ZSBhIG51bGwgcG9pbnRlciBpbnN0ZWFkLiAgQ3VycmVudCAKLSAgIGZpcm13YXJlIGltYWdlcyBhcmVuJ3Qgb3B0aW1pc2VkIHRvIHJlbW92ZSBkdXBsaWNhdGUKLSAgIGFkZHJlc3NlcyBpbiB0aGUgaW1hZ2UgaXRzZWxmLiAqLwotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjgKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2EyOF9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjhfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WAotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eF9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjh4X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhBCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhMjh4YV9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMjh4YV9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQgotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTI4eGJfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTI4eGJfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5Ci0JI2luY2x1ZGUgImtleXNwYW5fdXNhMTlfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTE5X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFJCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhMTlxaV9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTlxaV9maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fTVBSCi0gICAgICAgICNpbmNsdWRlICJrZXlzcGFuX21wcl9mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fbXByX2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVFXCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhMTlxd19mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTlxd19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYCi0JI2luY2x1ZGUgImtleXNwYW5fdXNhMTh4X2Z3LmgiCi0jZWxzZQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCAqa2V5c3Bhbl91c2ExOHhfZmlybXdhcmUgPSBOVUxMOwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5VwotCSNpbmNsdWRlICJrZXlzcGFuX3VzYTE5d19mdy5oIgotI2Vsc2UKLQlzdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQgKmtleXNwYW5fdXNhMTl3X2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0E0OVcKLQkjaW5jbHVkZSAia2V5c3Bhbl91c2E0OXdfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTQ5d19maXJtd2FyZSA9IE5VTEw7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBNDlXTEMKLSAgICAgICAgI2luY2x1ZGUgImtleXNwYW5fdXNhNDl3bGNfZncuaCIKLSNlbHNlCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICprZXlzcGFuX3VzYTQ5d2xjX2Zpcm13YXJlID0gTlVMTDsKLSNlbmRpZgotCiAvKiBWYWx1ZXMgdXNlZCBmb3IgYmF1ZCByYXRlIGNhbGN1bGF0aW9uIC0gZGV2aWNlIHNwZWNpZmljICovCiAjZGVmaW5lCUtFWVNQQU5fSU5WQUxJRF9CQVVEX1JBVEUJCSgtMSkKICNkZWZpbmUJS0VZU1BBTl9CQVVEX1JBVEVfT0sJCQkoMCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX21wcl9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fbXByX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIzODgwNWUuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fbXByX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyODYgKzAsMCBAQAotLyoga2V5c3Bhbl9tcHJfZncuaAotIAotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fbXByX2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNTNbXSA9Ci0JIjA0LzI2LzIwMDIgIDAyOjQ3cCAgICAgICAgICAgICAgMTEsNTcwIFVTQTUzIjsKLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX21wcl9maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MWF9fSwKLSB7MHgwMDFhLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDAwMywgMTYsIHsgMHg4ZSwgMHg1NiwgMHg4ZiwgMHg1NywgMHhlNSwgMHg1NywgMHgxNSwgMHg1NywgMHhhZSwgMHg1NiwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1NiwgMHg0ZSwgMHg2MH19LAotIHsweDAwMTMsICA3LCB7IDB4MDUsIDB4MTIsIDB4MGYsIDB4YTIsIDB4ODAsIDB4ZWUsIDB4MjJ9fSwKLSB7MHgwMDIzLCAgMywgeyAweDAyLCAweDAwLCAweDQ2fX0sCi0gezB4MDA0NiwgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgwOH19LAotIHsweDAwNTYsIDE2LCB7IDB4MzAsIDB4OTksIDB4MGUsIDB4MzAsIDB4MGIsIDB4MDcsIDB4YTIsIDB4MGUsIDB4OTIsIDB4OWIsIDB4ODUsIDB4MzYsIDB4OTksIDB4YzIsIDB4OTksIDB4ZDJ9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDEyLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDAyLCAweGY5LCAweGMyLCAweDEyLCAweDMwLCAweDAzLCAweDE5LCAweDdlLCAweDdlLCAweDdmLCAweDQwfX0sCi0gezB4MDA3NiwgMTYsIHsgMHg3NSwgMHgxYSwgMHg3ZSwgMHg3NSwgMHgxYiwgMHg0MCwgMHg3NSwgMHgxNywgMHgwMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxOCwgMHg3ZH19LAotIHsweDAwODYsIDE2LCB7IDB4NzUsIDB4MTksIDB4YzAsIDB4ODAsIDB4MTcsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4NzUsIDB4MWEsIDB4N2QsIDB4NzUsIDB4MWIsIDB4YzAsIDB4NzV9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDE3LCAweDAxLCAweDdlLCAweDdlLCAweDdmLCAweDQwLCAweDc1LCAweDE4LCAweDdlLCAweDc1LCAweDE5LCAweDQwLCAweDIwLCAweDBiLCAweDAzLCAweDAyfX0sCi0gezB4MDBhNiwgMTYsIHsgMHgwMSwgMHg4NCwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgzYywgMHgyMCwgMHgwYywgMHgzNCwgMHgyMCwgMHgwOSwgMHgzMSwgMHg5MH19LAotIHsweDAwYjYsIDE2LCB7IDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjksIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWJ9fSwKLSB7MHgwMGM2LCAxNiwgeyAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhlNSwgMHgxYiwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwMiwgMHhmN319LAotIHsweDAwZTYsIDE2LCB7IDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4MzAsIDB4MDMsIDB4MTEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZTAsIDB4NTR9fSwKLSB7MHgwMGY2LCAxNiwgeyAweDAyLCAweGY1LCAweDFkLCAweGEzLCAweGUwLCAweGY1LCAweDFjLCAweDgwLCAweDExLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDA0MywgIDMsIHsgMHgwMiwgMHgwZiwgMHgwMH19LAotIHsweDAwMDAsICAzLCB7IDB4MDIsIDB4MDAsIDB4MjZ9fSwKLSB7MHgwMDI2LCAxMiwgeyAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDVhLCAweDAyLCAweDBhLCAweDMzfX0sCi0gezB4MDEwNiwgNjQsIHsgMHhjNiwgMHhlMCwgMHg1NCwgMHgwMiwgMHhmNSwgMHgxZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxYywgMHhlNSwgMHgxNywgMHgyNCwgMHhmZiwgMHg5MiwgMHgwMywgMHgzMCwKLSAgMHgwZCwgMHgwZCwgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHhlNSwKLSAgMHgxZCwgMHg2MCwgMHgwNSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwMiwgMHhmNywgMHg4NSwgMHgxYywgMHg1MywgMHg4NSwgMHgxOSwgMHg4MiwgMHg4NSwgMHgxOCwKLSAgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxMiwgMHhmZiwgMHgyMCwgMHgwYywgMHgzYSwgMHgyMCwgMHgwOSwgMHgzNywgMHg5MH19LAotIHsweDAxNDYsIDY0LCB7IDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MmYsIDB4MzAsIDB4MTAsIDB4MWMsIDB4ODUsIDB4MTksIDB4ODIsIDB4ODUsIDB4MTgsIDB4ODMsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4ODUsIDB4MTksIDB4ODIsIDB4ODUsIDB4MTgsIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4NzUsCi0gIDB4M2EsIDB4MDMsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4NzUsIDB4M2EsIDB4MDIsIDB4ODUsIDB4MTksIDB4ODIsIDB4ODUsIDB4MTgsIDB4ODMsIDB4YTMsIDB4ZTAsCi0gIDB4ZjUsIDB4MzYsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4MzAsIDB4MDN9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDBlLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDU0LCAweDAyLCAweGY1LCAweDFkLCAweGEzLCAweGUwLCAweGY1LCAweDFjLCAweDgwLCAweDBjLCAweDkwLCAweDdmLAotICAweGM4LCAweGUwLCAweDU0LCAweDAyLCAweGY1LCAweDFkLCAweGEzLCAweGUwLCAweGY1LCAweDFjLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLAotICAweDAzLCAweDAyLCAweDAyLCAweDY4LCAweGU1LCAweDFkLCAweDYwLCAweDA3LCAweGMyLCAweDE0LCAweGMyLCAweDA1LCAweDAyLCAweDAyLCAweGY3LCAweDg1LAotICAweDFjLCAweDUzLCAweDg1LCAweDFiLCAweDgyLCAweDg1LCAweDFhLCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDEyLCAweGZmfX0sCi0gezB4MDFjNiwgNjQsIHsgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwMiwgMHg2MCwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMiwgMHg2MCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwKLSAgMHgzOCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwMiwgMHg2MCwgMHgzMCwgMHgxMCwgMHgxYiwgMHg4NSwgMHgxYiwgMHg4MiwgMHg4NSwgMHgxYSwgMHg4MywgMHhhMywKLSAgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHg4NSwgMHgxYiwgMHg4MiwgMHg4NSwgMHgxYSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwKLSAgMHgzYSwgMHgwMywgMHg4MCwgMHgwZCwgMHg4NSwgMHgxYiwgMHg4MiwgMHg4NSwgMHgxYSwgMHg4MywgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NX19LAotIHsweDAyMDYsIDY0LCB7IDB4M2EsIDB4MDIsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDAsIDB4MjYsIDB4MzAsIDB4MDMsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsCi0gIDB4ODAsIDB4MDUsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTcsIDB4MjQsIDB4ZmYsIDB4OTIsIDB4MDMsIDB4MjAsIDB4MGQsIDB4MDMsCi0gIDB4MDIsIDB4MDIsIDB4ZjcsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDIsIDB4ZjcsIDB4MzAsIDB4MTAsCi0gIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDFhLCAweGY1LAotICAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLCAweDBiLCAweDAyLCAweDAyLCAweGY3LCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDE0LCAweDAyLCAweDAyLAotICAweGY3LCAweDMwLCAweDBjLCAweDAzLCAweDAyLCAweDAyLCAweGY1LCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAyLCAweGY1LCAweDkwLCAweDdmLCAweDliLAotICAweGUwLCAweDU1LCAweDM4LCAweDcwLCAweDc5LCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweGU1LCAweDFiLCAweDJmfX0sCi0gezB4MDI4NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHgxYiwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxYSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg5OSwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywKLSAgMHg0MCwgMHgyMiwgMHgzMCwgMHgwMywgMHgwNywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwKLSAgMHhmMCwgMHhlNSwgMHgxNywgMHgyNCwgMHhmZiwgMHg5MiwgMHgwMywgMHgzMCwgMHgwZCwgMHgzNiwgMHhjMiwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhiYn19LAotIHsweDAyYzYsIDY0LCB7IDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsIDB4MmYsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4MWIsIDB4MmYsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MWEsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGIsIDB4ODAsIDB4MDIsIDB4YzIsIDB4MTQsCi0gIDB4ZDIsIDB4MDEsIDB4MjAsIDB4OTgsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MzUsIDB4YzIsIDB4OTgsIDB4MjAsIDB4MDIsIDB4MDMsIDB4MDIsIDB4MDN9fSwKLSB7MHgwMzA2LCA2NCwgeyAweGEyLCAweDIwLCAweDE1LCAweDI3LCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAotICAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDEwLCAweDRkLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LCAweDgyLAotICAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDNhLCAweDg1LCAweDk5LCAweDU1LCAweGU1LCAweDU1LCAweGI1LAotICAweDQ3LCAweDA0LCAweGQyLCAweDA5LCAweDgwLCAweDJlLCAweGU1LCAweDU1LCAweGI1LCAweDQ2LCAweDA0LCAweGMyLCAweDA5LCAweDgwLCAweDI1fX0sCi0gezB4MDM0NiwgNjQsIHsgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg1NSwgMHhmMCwKLSAgMHgzMCwgMHgxMCwgMHgxMSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgwZiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NSwgMHg0MywgMHg1MCwgMHgwMywgMHgwMiwgMHgwNCwgMHgzMywKLSAgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxNiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMn19LAotIHsweDAzODYsIDY0LCB7IDB4MDQsIDB4MzMsIDB4MTUsIDB4MzksIDB4MTUsIDB4MzksIDB4MDUsIDB4MmIsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MzMsIDB4OTAsIDB4N2YsIDB4YjcsCi0gIDB4ZTUsIDB4MzksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MDAsIDB4YzIsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MzMsIDB4MjAsIDB4MTUsIDB4MjcsIDB4YWYsIDB4MzksCi0gIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsCi0gIDB4MTAsIDB4NGQsIDB4YWYsIDB4MzksIDB4MDUsIDB4MzksIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjV9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDNhLCAweDg1LCAweDk5LCAweDU1LCAweGU1LCAweDU1LCAweGI1LCAweDQ3LCAweDA0LCAweGQyLCAweDA5LCAweDgwLAotICAweDJlLCAweGU1LCAweDU1LCAweGI1LCAweDQ2LCAweDA0LCAweGMyLCAweDA5LCAweDgwLCAweDI1LCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLAotICAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDU1LCAweGYwLCAweDMwLCAweDEwLCAweDExLCAweGFmLCAweDM5LAotICAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwfX0sCi0gezB4MDQwNiwgNjQsIHsgMHhkMiwgMHgwZiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NSwgMHg0MywgMHg0MCwgMHgyNCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMiwgMHhlNSwKLSAgMHgzOSwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNiwgMHgxNSwgMHgzOSwgMHgxNSwgMHgzOSwgMHgwNSwgMHgyYiwgMHg0MywgMHgzNCwgMHgwMSwgMHg4MCwKLSAgMHgwYiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgwMCwgMHhkMiwgMHgwMiwgMHhkMiwgMHgwMSwgMHgzMCwgMHgwMSwKLSAgMHgwNSwgMHhjMiwgMHgwMSwgMHgwMiwgMHgwMCwgMHg1NiwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMH19LAotIHsweDA0NDYsIDY0LCB7IDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NTQsIDB4ZTUsIDB4MzQsIDB4NjAsIDB4NTAsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4NGMsCi0gIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTEsIDB4MGIsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4NzUsIDB4MzQsIDB4MDEsIDB4NzUsIDB4MzEsIDB4MDIsIDB4ODAsIDB4MGUsCi0gIDB4YTIsIDB4MDgsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MmYsIDB4YzIsIDB4MDgsIDB4ZTQsIDB4ZjUsIDB4MzQsIDB4NzUsIDB4MzEsIDB4MTAsIDB4ZTQsIDB4ZjUsCi0gIDB4NTYsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4NTYsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTJ9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDBjLCAweDc5LCAweGZmLCAweDc0LCAweDAwLCAweDI1LCAweDU2LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LAotICAweDU2LCAweGU1LCAweDU2LCAweGI0LCAweDBjLCAweGRiLCAweDkwLCAweDdmLCAweGJkLCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweDdmLCAweGNhLCAweGUwLAotICAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LCAweGQxLCAweGU0LCAweGY1LCAweDU2LCAweDc0LCAweDQwLCAweDI1LCAweDU2LCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDU2LCAweDdjLCAweDAwLCAweDdiLCAweDAwLCAweDI0LCAweDNiLCAweGY5fX0sCi0gezB4MDRjNiwgNjQsIHsgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwYywgMHg5MiwgMHgwNSwgMHg1NiwgMHhlNSwgMHg1NiwgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHgzYiwKLSAgMHg2MCwgMHgxMSwgMHg3NSwgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNiwgMHg4NSwgMHgzYywgMHhjYSwgMHg4NSwgMHgzZCwgMHhjYiwgMHhlNCwgMHg5MCwKLSAgMHg3ZiwgMHg5ZiwgMHhmMCwgMHhlNSwgMHgzZSwgMHgxMywgMHg5MiwgMHgxMCwgMHg5MiwgMHg5ZiwgMHg4NSwgMHgzZiwgMHgzOCwgMHhlNSwgMHg0MCwgMHgxMywKLSAgMHg5MiwgMHgxNSwgMHhlNSwgMHg0MSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg4MCwgMHgwN319LAotIHsweDA1MDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4NDIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsCi0gIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NDgsIDB4NjAsIDB4MGIsIDB4YzIsIDB4MGMsCi0gIDB4YzIsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NDksIDB4NjAsIDB4MGMsIDB4ZDIsIDB4MDksIDB4NDMsCi0gIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NGEsIDB4NjAsIDB4MGQsIDB4YzIsIDB4YWZ9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGMyLCAweDBiLCAweGQyLCAweDAwLCAweGU0LCAweGY1LCAweDUzLCAweGY1LCAweDNhLCAweGQyLCAweGFmLCAweGU1LCAweDRiLCAweDYwLCAweDA1LCAweDMwLCAweDE1LAotICAweDAyLCAweGQyLCAweDA5LCAweGU1LCAweDRjLCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLAotICAweDllLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDRkLCAweDYwLCAweDBhLAotICAweGQyLCAweDljLCAweGMyLCAweDk4LCAweDc1LCAweDJjLCAweDAxLCAweDc1LCAweDMxLCAweDFlLCAweGU1LCAweDRlLCAweDYwLCAweDA3LCAweGMyfX0sCi0gezB4MDU4NiwgNjQsIHsgMHg5YywgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgyYywgMHhlNSwgMHg0ZiwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHgzOSwgMHhlNSwgMHg1MCwgMHg2MCwgMHgwMiwKLSAgMHhkMiwgMHgwNywgMHhlNSwgMHg1MSwgMHg2MCwgMHgwYSwgMHhlNSwgMHg0ZCwgMHg3MCwgMHgwMiwgMHhmNSwgMHgzMSwgMHhlNSwgMHg1MSwgMHg0MiwgMHgzNCwKLSAgMHhlNSwgMHg1MiwgMHg2MCwgMHgxZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxMiwgMHhmMCwKLSAgMHg3NCwgMHgzMiwgMHhmMCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NCwgMHgzNCwgMHhmMH19LAotIHsweDA1YzYsIDY0LCB7IDB4ZDIsIDB4MDMsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YTIsIDB4MGMsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsCi0gIDB4MjksIDB4NjAsIDB4MDUsIDB4OGYsIDB4MjksIDB4NDMsIDB4MzQsIDB4MDEsIDB4YTIsIDB4MDksIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmEsIDB4NjAsCi0gIDB4MDUsIDB4OGYsIDB4MmEsIDB4NDMsIDB4MzQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4ZmYsIDB4NTQsIDB4MDgsIDB4NjQsIDB4MDgsIDB4ZjUsCi0gIDB4NTcsIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDYsIDB4ODUsIDB4NTcsIDB4MjUsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4NjR9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDEwLCAweGY1LCAweDU3LCAweDY1LCAweDI2LCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDI2LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDQwLCAweDY0LAotICAweDQwLCAweGY1LCAweDU3LCAweDY1LCAweDI3LCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDI3LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDIwLAotICAweDY0LCAweDIwLCAweGY1LCAweDU3LCAweDY1LCAweDI4LCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDI4LCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLAotICAweDlhLCAweGUwLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDU3LCAweDY1LCAweDJlLCAweDYwLCAweDA2LCAweDg1LCAweDU3LCAweDJlfX0sCi0gezB4MDY0NiwgNjQsIHsgMHg0MywgMHgzNCwgMHgwMSwgMHgzMCwgMHgwNywgMHgzNSwgMHhjMiwgMHhhZiwgMHgzMCwgMHgwMiwgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwKLSAgMHgyNywgMHhlNSwgMHgzOSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHhlNCwgMHhmNSwgMHgzOSwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwNywKLSAgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHgzOSwgMHhkMiwgMHgwMiwgMHhjMiwgMHgwNywgMHhkMiwgMHhhZiwgMHgyMCwgMHgwNSwgMHgzZCwgMHgzMCwgMHgwM319LAotIHsweDA2ODYsIDY0LCB7IDB4MWUsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzMsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4M2EsCi0gIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4ZDIsIDB4MDUsIDB4NzUsIDB4MTIsIDB4ZmYsIDB4ODAsIDB4MWMsIDB4OTAsIDB4N2YsCi0gIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTUsIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4M2EsIDB4MDEsIDB4OTAsCi0gIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4ZDIsIDB4MDUsIDB4NzUsIDB4MTIsIDB4ZmYsIDB4MjAsIDB4MTQsIDB4MzMsIDB4MjAsIDB4MDB9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDA2LCAweGU1LCAweDNhLCAweDY1LCAweDUzLCAweDcwLCAweDJhLCAweDMwLCAweDA1LCAweDFhLCAweDMwLCAweDAzLCAweDA5LCAweGU0LCAweDkwLCAweDdmLCAweGM3LAotICAweGYwLCAweGMyLCAweDAzLCAweDgwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweGMyLCAweDA1LCAweGU0LCAweGY1LAotICAweDUzLCAweGY1LCAweDNhLCAweDMwLCAweDBkLCAweDBhLCAweGMyLCAweDBkLCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLAotICAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA3LCAweGJmLCAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDA3LCAweGJmLCAweDMwLCAweDBjLCAweDAzfX0sCi0gezB4MDcwNiwgNjQsIHsgMHgwMiwgMHgwNywgMHhiZiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwNywgMHhiZiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg2MCwgMHgwMywKLSAgMHgwMiwgMHgwNywgMHhiZiwgMHgzMCwgMHgwMywgMHgwYywgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MCwgMHg3NSwgMHg1OCwgMHg3ZSwgMHg3NSwgMHg1OSwgMHg0MCwKLSAgMHg4MCwgMHgwYSwgMHg3ZSwgMHg3ZCwgMHg3ZiwgMHhjMCwgMHg3NSwgMHg1OCwgMHg3ZCwgMHg3NSwgMHg1OSwgMHhjMCwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwKLSAgMHgzYSwgMHgwNSwgMHgzYSwgMHhlNSwgMHg1OSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDA3NDYsIDY0LCB7IDB4OTIsIDB4MWEsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4ZTUsIDB4NTksIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4NTcsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4ZTUsIDB4NTksIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsCi0gIDB4MDUsIDB4M2EsIDB4ZTUsIDB4NTksIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzZ9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGQyLCAweDBiLCAweDgwLCAweDE1LCAweGMyLCAweDBiLCAweDMwLCAweDAzLCAweDA5LCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAzLCAweDgwLAotICAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDEwLCAweDA0LCAweGEyLCAweDFhLCAweDkyLCAweDliLCAweGQyLAotICAweDE0LCAweGMyLCAweGFmLCAweDg1LCAweDU3LCAweDk5LCAweDIwLCAweDBiLCAweDBkLCAweDMwLCAweDBkLCAweDBhLCAweGMyLCAweDBkLCAweGMyLCAweDAwLAotICAweDkwLCAweDdmLCAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBjfX0sCi0gezB4MDdjNiwgNjQsIHsgMHhhNCwgMHgwOSwgMHgxYywgMHgwMCwgMHgwOSwgMHg4OSwgMHgwMSwgMHgwOSwgMHhlNiwgMHgwMywgMHgwNywgMHhlMywgMHgwNiwgMHgwOSwgMHgwZCwgMHgwOCwgMHgwOSwKLSAgMHgwMSwgMHgwOSwgMHgwOCwgMHhlOSwgMHgwYSwgMHgwOCwgMHhmOCwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYSwgMHgyNCwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwKLSAgMHgyNCwgMHhmZSwgMHg2MCwgMHgxYywgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwOCwgMHg3OSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYSwKLSAgMHgyNCwgMHg3NCwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHg4NywgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYX19LAotIHsweDA4MDYsIDY0LCB7IDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ZDgsCi0gIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4ZDEsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4Y2EsIDB4NzUsCi0gIDB4ODMsIDB4MGQsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4YzMsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsCi0gIDB4ODIsIDB4OWUsIDB4NzUsIDB4ODMsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWYsIDB4ZTAsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTB9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDdjLCAweDAwLCAweDI0LCAweDAwLCAweGY1LCAweDVhLCAweGVjLCAweDNlLCAweGY1LCAweDU5LCAweDc1LCAweDE1LCAweDBkLCAweDc1LCAweDE2LCAweDk5LCAweDc1LAotICAweDgyLCAweDliLCAweDc1LCAweDgzLCAweDBkLCAweGUwLCAweDc1LCAweDEzLCAweDAwLCAweGY1LCAweDE0LCAweGQzLCAweGU1LCAweDE0LCAweDk1LCAweDVhLAotICAweGU1LCAweDEzLCAweDk1LCAweDU5LCAweDQwLCAweDA2LCAweDg1LCAweDU5LCAweDEzLCAweDg1LCAweDVhLCAweDE0LCAweDEyLCAweDBiLCAweGJhLCAweDAyLAotICAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDBiLCAweDc1LCAweDU2LCAweGZmLCAweDc1LCAweDU3LCAweDBkLCAweDc1fX0sCi0gezB4MDg4NiwgNjQsIHsgMHg1OCwgMHhkYywgMHg4MCwgMHgyZCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwYiwgMHg3NSwgMHg1NiwgMHhmZiwgMHg3NSwgMHg1NywgMHgwZCwKLSAgMHg3NSwgMHg1OCwgMHhlMCwgMHg4MCwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMiwgMHgwYiwgMHg3NSwgMHg1NiwgMHhmZiwgMHg3NSwKLSAgMHg1NywgMHgwZCwgMHg3NSwgMHg1OCwgMHhmMCwgMHg4MCwgMHgwOSwgMHg3NSwgMHg1NiwgMHhmZiwgMHg3NSwgMHg1NywgMHgwZSwgMHg3NSwgMHg1OCwgMHgxZSwKLSAgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3NSwgMHg1OSwgMHgwMCwgMHhmNSwgMHg1YSwgMHhhZSwgMHg1NywgMHhhZiwgMHg1OCwgMHg4ZSwgMHgxNX19LAotIHsweDA4YzYsIDY0LCB7IDB4OGYsIDB4MTYsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4OGUsIDB4MTMsIDB4ZjUsIDB4MTQsIDB4ZDMsIDB4OTUsIDB4NWEsCi0gIDB4ZTUsIDB4MTMsIDB4OTUsIDB4NTksIDB4NDAsIDB4MDYsIDB4ODUsIDB4NTksIDB4MTMsIDB4ODUsIDB4NWEsIDB4MTQsIDB4MTIsIDB4MGIsIDB4YmEsIDB4MDIsCi0gIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGEsCi0gIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTEsIDB4MDIsIDB4MGEsIDB4MmIsIDB4MTIsIDB4MGMsIDB4MjQsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwOTA2LCA2NCwgeyAweGVhLCAweGUwLCAweGY1LCAweDEwLCAweDAyLCAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDEwLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBhLCAweDJiLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI3LCAweDE0LCAweDYwLCAweDM0LAotICAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBhLCAweDI0LCAweGEyLCAweDE2LCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLAotICAweDE4LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0fX0sCi0gezB4MDk0NiwgNjQsIHsgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwKLSAgMHhmMCwgMHgwMiwgMHgwYSwgMHgyYiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwKLSAgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMH19LAotIHsweDA5ODYsIDY0LCB7IDB4MDIsIDB4MGEsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTcsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGEsCi0gIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGEsIDB4MjQsIDB4YzIsIDB4MTYsIDB4MDIsIDB4MGEsCi0gIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsCi0gIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLAotICAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDQ1LCAweDkwLAotICAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDEwLCAweDI0LCAweDAyLCAweDcwLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LAotICAweDAxLCAweDcwLCAweDJhLCAweGQyLCAweDE2LCAweDgwLCAweDJkLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmfX0sCi0gezB4MGEwNiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwKLSAgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhjMiwgMHgxMCwgMHhlNCwgMHhmNSwKLSAgMHgxMCwgMHhmNSwgMHgzNCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYywgMHhjMiwgMHgwYiwgMHhjMiwgMHgxNCwgMHhjMiwgMHgwZCwgMHhjMiwgMHgxNX19LAotIHsweDBhNDYsIDY0LCB7IDB4YzIsIDB4MTEsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MTIsIDB4YzIsIDB4MGYsIDB4YzIsIDB4MDgsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4NTMsIDB4ZjUsCi0gIDB4M2EsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MmYsIDB4ZjUsIDB4MmUsIDB4ZjUsIDB4MmQsIDB4ZjUsIDB4MmMsIDB4ZjUsIDB4MmIsIDB4ZjUsCi0gIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZjUsIDB4MjgsIDB4ZjUsIDB4MjcsIDB4ZjUsIDB4MjYsIDB4ZjUsIDB4MjUsIDB4ZjUsIDB4MjQsIDB4YzIsIDB4MDUsIDB4YzIsCi0gIDB4MTcsIDB4YzIsIDB4MTksIDB4YzIsIDB4MTYsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MDQsIDB4ZDIsIDB4MTMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDF9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLAotICAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLAotICAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLAotICAweGUwLCAweDQ0LCAweDBmLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweDc0LCAweDBlLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyfX0sCi0gezB4MGFjNiwgNjQsIHsgMHgxYSwgMHgxMiwgMHgwZiwgMHg3ZCwgMHhjMiwgMHgxNywgMHgzMCwgMHgwNCwgMHgwMywgMHgxMiwgMHgwNCwgMHg0OCwgMHgzMCwgMHgwNCwgMHgyYSwgMHgzMCwgMHgwNiwKLSAgMHgyNywgMHhjMiwgMHgwNiwgMHhlNSwgMHgxMiwgMHg2MCwgMHgxNiwgMHgxNSwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHgzMCwgMHhlNiwgMHgwNCwKLSAgMHg3ZiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHg5NiwKLSAgMHg3NCwgMHgyMCwgMHhmMCwgMHgxMiwgMHgwYiwgMHgxNCwgMHg4MCwgMHhjZCwgMHgzMCwgMHgxNywgMHgwNywgMHhjMiwgMHgxNywgMHgxMiwgMHgwN319LAotIHsweDBiMDYsIDY0LCB7IDB4YzAsIDB4ODAsIDB4YzMsIDB4MzAsIDB4MTksIDB4YzAsIDB4YzIsIDB4MTksIDB4MTIsIDB4MGUsIDB4ZGMsIDB4ODAsIDB4YjksIDB4MjIsIDB4ZTUsIDB4MzEsIDB4NjAsCi0gIDB4MDIsIDB4MTUsIDB4MzEsIDB4ZTUsIDB4MzksIDB4NjAsIDB4NTUsIDB4NjUsIDB4MzUsIDB4NzAsIDB4NGIsIDB4ZTUsIDB4MzMsIDB4ZjQsIDB4NjAsIDB4MDIsCi0gIDB4MDUsIDB4MzMsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTUsIDB4NDQsIDB4NDAsIDB4NDMsIDB4YzIsIDB4YWYsIDB4MzAsIDB4MDIsIDB4MWIsIDB4OTAsIDB4N2YsCi0gIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MmQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4MzksIDB4ZjAsIDB4YzIsIDB4MDIsIDB4ZTQsIDB4ZjV9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDM5LCAweGY1LCAweDMzLCAweGY1LCAweDM1LCAweDc1LCAweDEyLCAweGZmLCAweDgwLCAweDE5LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxLCAweDEyLAotICAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM5LCAweGYwLCAweGQyLCAweDAyLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDMzLCAweGY1LCAweDM1LCAweDc1LAotICAweDEyLCAweGZmLCAweGQyLCAweGFmLCAweDgwLCAweDA2LCAweDg1LCAweDM5LCAweDM1LCAweGU0LCAweGY1LCAweDMzLCAweGU1LCAweDJjLCAweDYwLCAweDMwLAotICAweDIwLCAweDBmLCAweDA3LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUwLCAweDBmLCAweGU1LCAweDJkLCAweDYwLCAweDA2LCAweGU0fX0sCi0gezB4MGI4NiwgNjQsIHsgMHhmNSwgMHgyZCwgMHg0MywgMHgzNCwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzMCwgMHg4MCwgMHgxNCwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NSwgMHg0NSwgMHg1MCwgMHgwZCwKLSAgMHhlNSwgMHgzMCwgMHhiNSwgMHg0NSwgMHgwNiwgMHg3NSwgMHgyZCwgMHgwMSwgMHg0MywgMHgzNCwgMHgwMSwgMHgwNSwgMHgzMCwgMHhjMiwgMHgwZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHhkOSwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwNCwgMHg3ZiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5NiwKLSAgMHhlZiwgMHhmMCwgMHgyMiwgMHhlNSwgMHgxNCwgMHg0NSwgMHgxMywgMHg2MCwgMHg1NywgMHhhZSwgMHgxMywgMHhhZiwgMHgxNCwgMHhkMywgMHhlZn19LAotIHsweDBiYzYsIDY0LCB7IDB4OTQsIDB4NDAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4N2UsIDB4MDAsIDB4N2YsIDB4NDAsIDB4YzMsIDB4ZTUsIDB4MTQsIDB4OWYsIDB4ZjUsIDB4MTQsCi0gIDB4ZTUsIDB4MTMsIDB4OWUsIDB4ZjUsIDB4MTMsIDB4ZTQsIDB4ZmQsIDB4ZWQsIDB4YzMsIDB4OWYsIDB4ZTQsIDB4OWUsIDB4NTAsIDB4MWYsIDB4ODUsIDB4MTYsCi0gIDB4ODIsIDB4ODUsIDB4MTUsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzQsIDB4MDAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsCi0gIDB4ZWMsIDB4ZjAsIDB4MGQsIDB4MDUsIDB4MTYsIDB4ZTUsIDB4MTYsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MTUsIDB4ODAsIDB4ZGEsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYzA2LCA2NCwgeyAweGE5LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGVmLCAweGYwLCAweDIyLAotICAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLAotICAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk0LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweDc0LCAweDg2fX0sCi0gezB4MGM0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHg4NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwKLSAgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHg3NSwgMHg5OCwgMHg0MCwKLSAgMHg0MywgMHhhOCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgxZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHgwZiwgMHhmMCwgMHhkMiwKLSAgMHgwNCwgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMn19LAotIHsweDBjODYsIDY0LCB7IDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsCi0gIDB4OGEsIDB4ODMsIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsCi0gIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsCi0gIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTN9fSwKLSB7MHgwY2M2LCA2NCwgeyAweGEzLCAweGEzLCAweDgwLCAweGRmLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDkzLCAweGYwLAotICAweDkwLCAweDdmLCAweDlkLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDQ0LCAweDQyLCAweGYwLCAweDkwLCAweDdmLAotICAweDljLCAweDc0LCAweDEwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGJlLCAweGYwLCAweDMwLAotICAweDE2LCAweDA0LCAweDdmLCAweDgwLCAweDgwLCAweDAyLCAweDdmLCAweDAwLCAweDkwLCAweDdmLCAweDk3LCAweGVmLCAweGYwLCAweGU0LCAweDkwfX0sCi0gezB4MGQwNiwgNjQsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHhmMCwgMHhjMCwKLSAgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwKLSAgMHgwOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgxMiwgMHgwYiwgMHhiYSwgMHhkMCwgMHhkMCwgMHhkMCwKLSAgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMH19LAotIHsweDBkNDYsIDY0LCB7IDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzQsCi0gIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsCi0gIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweGZmLCAweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDFjLCAweDAxLCAweDAxLCAweDAwLCAweDAxLCAweDAyLAotICAweDAwLCAweDAyLCAweDA5LCAweDAyLCAweDQzLCAweDAwLCAweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDMyLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDA3LAotICAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAxLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLAotICAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAzLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgxLCAweDAyLCAweDQwLCAweDAwfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgwMSwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHg4MywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwKLSAgMHg4NCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHgxMCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwKLSAgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyZSwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwKLSAgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MCwgMHgwMH19LAotIHsweDBlMDYsIDY0LCB7IDB4NTMsIDB4MDAsIDB4NDgsIDB4MDAsIDB4MzEsIDB4MDAsIDB4MzEsIDB4MDAsIDB4MzIsIDB4MDAsIDB4MmQsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsCi0gIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsIDB4MDAsIDB4MjIsIDB4MDMsIDB4NTUsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NDEsIDB4MDAsIDB4MmQsCi0gIDB4MDAsIDB4MzUsIDB4MDAsIDB4MzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4MzIsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzAsIDB4MDAsIDB4MzIsIDB4MDAsIDB4NjEsCi0gIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzIsIDB4MDAsIDB4MzIsIDB4MDAsIDB4MzYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODN9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLAotICAweDc0LCAweDAyLCAweGYwLCAweGQyLCAweDA2LCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLAotICAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LAotICAweDAwLCAweGQyLCAweDE3LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwKLSAgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwKLSAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMH19LAotIHsweDBlYzYsIDY0LCB7IDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsCi0gIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4MTIsIDB4MGMsIDB4Y2EsIDB4MTIsIDB4MGYsIDB4YjMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsCi0gIDB4ZTcsIDB4MTIsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MGQsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsCi0gIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MTIsIDB4MGMsIDB4MjQsIDB4MjIsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NjksIDB4MDAsIDB4MDIsIDB4MGV9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDQyLCAweDAwLCAweDAyLCAweDBkLCAweDQ1LCAweDAwLCAweDAyLCAweDBlLCAweDkwLCAweDAwLCAweDAyLCAweDBmLCAweDEwLCAweDAwLCAweDAyLCAweDBmLCAweDE0LAotICAweDAwLCAweDAyLCAweDBkLCAweDEyLCAweDAwLCAweDAyLCAweDBmLCAweDFjLCAweDAwLCAweDAyLCAweDBlLCAweGI3LCAweDAwLCAweDAyLCAweDBmLCAweDI0LAotICAweDAwLCAweDAyLCAweDBmLCAweDMzLCAweDAwLCAweDAyLCAweDBmLCAweDJjLCAweDAwLCAweDAyLCAweDBmLCAweDU4LCAweGMwLCAweGUwLCAweGMwLCAweDgzLAotICAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLCAweDkwfX0sCi0gezB4MGY0NiwgNjQsIHsgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwKLSAgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwKLSAgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwKLSAgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NH19LAotIHsweDBmODYsIDYxLCB7IDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsCi0gIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsCi0gIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjJ9fSwKLSB7MHhmZmZmLAkwLAl7MHgwMH19Ci19OwotCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl9wZGEuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jCmluZGV4IGZmNTQyMDMuLjY0NGExZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5jCkBAIC03NiwxOCArNzYsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8bGludXgvaWhleC5oPgogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgogCiBzdGF0aWMgaW50IGRlYnVnOwogCi1zdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCB7Ci0JX191MTYgYWRkcmVzczsKLQlfX3U4IGRhdGFfc2l6ZTsKLQlfX3U4IGRhdGFbMTZdOwotfTsKLQogLyogbWFrZSBhIHNpbXBsZSBkZWZpbmUgdG8gaGFuZGxlIGlmIHdlIGFyZSBjb21waWxpbmcga2V5c3Bhbl9wZGEgb3IgeGlyY29tIHN1cHBvcnQgKi8KICNpZiBkZWZpbmVkKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fUERBKSB8fCBkZWZpbmVkKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fUERBX01PRFVMRSkKIAkjZGVmaW5lIEtFWVNQQU4KQEAgLTEwMCwxNCArOTYsNiBAQAogCSN1bmRlZiBYSVJDT00KICNlbmRpZgogCi0jaWZkZWYgS0VZU1BBTgotI2luY2x1ZGUgImtleXNwYW5fcGRhX2Z3LmgiCi0jZW5kaWYKLQotI2lmZGVmIFhJUkNPTQotI2luY2x1ZGUgInhpcmNvbV9wZ3NfZncuaCIKLSNlbmRpZgotCiAvKgogICogVmVyc2lvbiBJbmZvcm1hdGlvbgogICovCkBAIC03MjIsMzggKzcxMCw0NyBAQAogc3RhdGljIGludCBrZXlzcGFuX3BkYV9mYWtlX3N0YXJ0dXAgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwpCiB7CiAJaW50IHJlc3BvbnNlOwotCWNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkICpyZWNvcmQgPSBOVUxMOworCWNvbnN0IGNoYXIgKmZ3X25hbWU7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQ7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKIAogCS8qIGRvd25sb2FkIHRoZSBmaXJtd2FyZSBoZXJlIC4uLiAqLwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0KHNlcmlhbCwgMSk7CiAKKwlpZiAoMCkgeyA7IH0KICNpZmRlZiBLRVlTUEFOCi0JaWYgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBLRVlTUEFOX1ZFTkRPUl9JRCkKLQkJcmVjb3JkID0gJmtleXNwYW5fcGRhX2Zpcm13YXJlWzBdOworCWVsc2UgaWYgKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBLRVlTUEFOX1ZFTkRPUl9JRCkKKwkJZndfbmFtZSA9ICJrZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5mdyI7CiAjZW5kaWYKICNpZmRlZiBYSVJDT00KLQlpZiAoKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSBYSVJDT01fVkVORE9SX0lEKSB8fAotCSAgICAobGUxNl90b19jcHUoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpID09IEVOVFJFR1JBX1ZFTkRPUl9JRCkpCi0JCXJlY29yZCA9ICZ4aXJjb21fcGdzX2Zpcm13YXJlWzBdOworCWVsc2UgaWYgKChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gWElSQ09NX1ZFTkRPUl9JRCkgfHwKKwkJIChsZTE2X3RvX2NwdShzZXJpYWwtPmRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gRU5UUkVHUkFfVkVORE9SX0lEKSkKKwkJZndfbmFtZSA9ICJrZXlzcGFuX3BkYS94aXJjb21fcGdzLmZ3IjsKICNlbmRpZgotCWlmIChyZWNvcmQgPT0gTlVMTCkgeworCWVsc2UgewogCQllcnIoIiVzOiB1bmtub3duIHZlbmRvciwgYWJvcnRpbmcuIiwgX19mdW5jX18pOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CisJaWYgKHJlcXVlc3RfaWhleF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZzZXJpYWwtPmRldi0+ZGV2KSkgeworCQllcnIoImZhaWxlZCB0byBsb2FkIGZpcm13YXJlIFwiJXNcIlxuIiwgZndfbmFtZSk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKwlyZWNvcmQgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZnctPmRhdGE7CiAKLQl3aGlsZShyZWNvcmQtPmFkZHJlc3MgIT0gMHhmZmZmKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkoc2VyaWFsLCByZWNvcmQtPmFkZHJlc3MsCisJd2hpbGUgKHJlY29yZCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5KHNlcmlhbCwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKIAkJCQkJICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKLQkJCQkJICAgICByZWNvcmQtPmRhdGFfc2l6ZSwgMHhhMCk7CisJCQkJCSAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEwKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZXJyKCJlenVzYl93cml0ZW1lbW9yeSBmYWlsZWQgZm9yIEtleXNwYW4gUERBICIKIAkJCSAgICAiZmlybXdhcmUgKCVkICUwNFggJXAgJWQpIiwKLQkJCSAgICByZXNwb25zZSwgCi0JCQkgICAgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCSAgICByZXNwb25zZSwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCSAgICByZWNvcmQtPmRhdGEsIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSk7CiAJCQlicmVhazsKIAkJfQotCQlyZWNvcmQrKzsKKwkJcmVjb3JkID0gaWhleF9uZXh0X2JpbnJlYyhyZWNvcmQpOwogCX0KKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAkvKiBicmluZyBkZXZpY2Ugb3V0IG9mIHJlc2V0LiBSZW51bWVyYXRpb24gd2lsbCBvY2N1ciBpbiBhIG1vbWVudAogCSAgIGFuZCB0aGUgbmV3IGRldmljZSB3aWxsIGJpbmQgdG8gdGhlIHJlYWwgZHJpdmVyICovCiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQoc2VyaWFsLCAwKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyNTNhY2MuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0vKgotICogVVNCIEtleXNwYW4gUERBIEZpcm13YXJlCi0gKgotICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEJyaWFuIFdhcm5lcgk8d2FybmVyQGxvdGhhci5jb20+Ci0gKgotICoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBHZW5lcmF0ZWQgZnJvbSBrZXlzcGFuX3BkYS5zIGJ5IGV6dXNiX2NvbnZlcnQucGwKLSAqCi0gKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fcGRhX2Zpcm13YXJlW10gPSB7Ci17IDB4MDAwMCwJMywJezB4MDIsIDB4MDIsIDB4MDB9IH0sCi17IDB4MDAyMywJNCwJezB4MDIsIDB4MDUsIDB4NWYsIDB4MDB9IH0sCi17IDB4MDA0MywJNCwJezB4MDIsIDB4MDEsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDAzMCwJNSwJezB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDEwMCwJMTYsCXsweDAyLCAweDAyLCAweDk2LCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAxMTAsCTE2LAl7MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTIwLAkxNiwJezB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDQsIDB4NjEsIDB4MDAsIDB4MDIsIDB4MDQsIDB4ODksIDB4MDB9IH0sCi17IDB4MDIwMCwJMTYsCXsweDc1LCAweDgxLCAweDVlLCAweGU0LCAweGY1LCAweDMyLCAweGY1LCAweDMzLCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGY1LCAweDM0LCAweGMyLCAweDAwfSB9LAoteyAweDAyMTAsCTE2LAl7MHhjMiwgMHgwMSwgMHhhOSwgMHgwMCwgMHg3NCwgMHhmZSwgMHg5MCwgMHgxMCwgMHgwMCwgMHhmMCwgMHhhMywgMHhkOSwgMHhmYywgMHg3NCwgMHhmZCwgMHg5MH0gfSwKLXsgMHgwMjIwLAkxNiwJezB4MTEsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZDksIDB4ZmMsIDB4NzQsIDB4MDIsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDIzMCwJMTYsCXsweDk3LCAweGYwLCAweDc0LCAweDg2LCAweDkwLCAweDdmLCAweDllLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmfSB9LAoteyAweDAyNDAsCTE2LAl7MHhhZiwgMHhlMCwgMHhkMiwgMHhlMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhhYiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwMjUwLAkxNiwJezB4N2YsIDB4YWMsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWQsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4NzR9IH0sCi17IDB4MDI2MCwJMTYsCXsweDg0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDc0LCAweDAwLCAweGY1LCAweDk4LCAweDc1LCAweGM4LCAweDMwLCAweDdiLCAweDA1LCAweDkxLCAweDIwfSB9LAoteyAweDAyNzAsCTE2LAl7MHhkMiwgMHhjYSwgMHg3NSwgMHg5OCwgMHg1MCwgMHhkMiwgMHhlOCwgMHhkMiwgMHhhZiwgMHhkMiwgMHhhYywgMHg3NCwgMHgwMCwgMHhmNSwgMHg4NiwgMHg5MH0gfSwKLXsgMHgwMjgwLAkxNiwJezB4N2YsIDB4ZDYsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4NzksIDB4MmUsIDB4N2EsIDB4MDAsIDB4N2IsIDB4MDAsIDB4ZGIsIDB4ZmUsIDB4ZGEsIDB4ZmEsIDB4ZDl9IH0sCi17IDB4MDI5MCwJMTYsCXsweGY2LCAweDc0LCAweDA2LCAweGYwLCAweDgwLCAweGZlLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1fSB9LAoteyAweDAyYTAsCTE2LAl7MHhjMCwgMHhlMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwMmIwLAkxNiwJezB4ZTgsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4YTMsIDB4ZTAsIDB4ZmIsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4ZTksIDB4NTQsIDB4NjAsIDB4YjR9IH0sCi17IDB4MDJjMCwJMTYsCXsweDAwLCAweDAzLCAweDAyLCAweDAzLCAweDM5LCAweGI0LCAweDQwLCAweDZlLCAweGJhLCAweDAwLCAweDBiLCAweDEyLCAweDA0LCAweDIwLCAweDQwLCAweDAzfSB9LAoteyAweDAyZDAsCTE2LAl7MHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwMiwgMHgwMywgMHgwMn0gfSwKLXsgMHgwMmUwLAkxNiwJezB4MDQsIDB4MGEsIDB4YmEsIDB4MDMsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDQsIDB4YmEsIDB4MDQsIDB4MWUsIDB4YmIsIDB4MDAsIDB4MGEsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDJmMCwJMTYsCXsweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwfSB9LAoteyAweDAzMDAsCTE2LAl7MHg3ZiwgMHg5NSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYSwgMHgwNSwgMHgwMywgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYX0gfSwKLXsgMHgwMzEwLAkxNiwJezB4MDYsIDB4MTksIDB4YmIsIDB4MDAsIDB4MDgsIDB4ZTUsIDB4MzMsIDB4ZDMsIDB4OTUsIDB4MzIsIDB4MDIsIDB4MDMsIDB4ZGUsIDB4YmIsIDB4MDEsIDB4MDh9IH0sCi17IDB4MDMyMCwJMTYsCXsweGU1LCAweDMyLCAweGMzLCAweDk1LCAweDMzLCAweDAyLCAweDAzLCAweGRlLCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDA3LCAweDA1LCAweDhiLCAweDM0fSB9LAoteyAweDAzMzAsCTE2LAl7MHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwYSwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwMCwgMHgyMCwgMHhiOSwgMHg4MCwgMHgxMCwgMHg5MH0gfSwKLXsgMHgwMzQwLAkxNiwJezB4N2YsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4Yjl9IH0sCi17IDB4MDM1MCwJMTYsCXsweDgyLCAweDAyLCAweDgwLCAweGViLCAweGI5LCAweDgxLCAweDAyLCAweDgwLCAweGU2LCAweDAyLCAweDA0LCAweDBhLCAweGJhLCAweDAxLCAweDBmLCAweGJifSB9LAoteyAweDAzNjAsCTE2LAl7MHgwMCwgMHgwMywgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYiwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgwYSwgMHhiYSwgMHgwM30gfSwKLXsgMHgwMzcwLAkxNiwJezB4MGYsIDB4YmIsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGF9IH0sCi17IDB4MDM4MCwJMTYsCXsweGJhLCAweDA2LCAweDU2LCAweGJjLCAweDAxLCAweDBmLCAweDkwLCAweDdmLCAweGQ0LCAweDc0LCAweDA2LCAweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweDc0fSB9LAoteyAweDAzOTAsCTE2LAl7MHgxMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHhiYywgMHgwMiwgMHgxMiwgMHhiYiwgMHgwMCwgMHg2ZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHg3NCwgMHgwNn0gfSwKLXsgMHgwM2EwLAkxNiwJezB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4NzQsIDB4MjQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmMsIDB4MDMsIDB4MjksIDB4NzQsIDB4MDQsIDB4YzN9IH0sCi17IDB4MDNiMCwJMTYsCXsweDliLCAweDQwLCAweDU3LCAweDYwLCAweDU1LCAweGViLCAweDJiLCAweDkwLCAweDA2LCAweDQ0LCAweDI1LCAweDgyLCAweGY1LCAweDgyLCAweDc0LCAweDAwfSB9LAoteyAweDAzYzAsCTE2LAl7MHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHhmOSwgMHhhMywgMHhlMCwgMHhmYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhlOSwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwM2QwLAkxNiwJezB4ZDUsIDB4ZWEsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4MDIsIDB4MDQsIDB4MGEsIDB4YmEsIDB4MDgsIDB4MGYsIDB4NzQsIDB4MDEsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDNlMCwJMTYsCXsweDAwLCAweGYwLCAweDc0LCAweDAxLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDA0LCAweDAyLCAweGJhLCAweDA5LCAweDAzLCAweDAyLCAweDA0fSB9LAoteyAweDAzZjAsCTE2LAl7MHgwMiwgMHhiYSwgMHgwYSwgMHgwNSwgMHg3NCwgMHgwMCwgMHgwMiwgMHgwMywgMHhkZSwgMHhiYSwgMHgwYiwgMHgwMywgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMn0gfSwKLXsgMHgwNDAwLAkxNiwJezB4MDQsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YjQsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDF9IH0sCi17IDB4MDQxMCwJMTYsCXsweGYwLCAweDgwLCAweDAwLCAweGQwLCAweGUwLCAweGQwLCAweDg1LCAweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyfSB9LAoteyAweDA0MjAsCTE2LAl7MHhlYiwgMHgyMCwgMHhlNywgMHgxZSwgMHhjMywgMHg5NCwgMHgwYSwgMHg1MCwgMHgxOSwgMHhlYiwgMHgyMywgMHgyNCwgMHhmZSwgMHhmNSwgMHg4MiwgMHg3NH0gfSwKLXsgMHgwNDMwLAkxNiwJezB4MDUsIDB4MzQsIDB4MDAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4Y2IsIDB4ZjUsIDB4Y2QsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4Y2EsIDB4ZjUsIDB4Y2N9IH0sCi17IDB4MDQ0MCwJMTYsCXsweGMzLCAweDIyLCAweGQzLCAweDIyLCAweGI5LCAweDQxLCAweDExLCAweGViLCAweDY0LCAweGZmLCAweDU0LCAweDg0LCAweGZiLCAweDkwLCAweDdmLCAweDk4fSB9LAoteyAweDA0NTAsCTE2LAl7MHhlMCwgMHg1NCwgMHg3YiwgMHg0YiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgwMiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg2NCwgMHhmZiwgMHgwMiwgMHgwM30gfSwKLXsgMHgwNDYwLAkxNiwJezB4ZGUsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzJ9IH0sCi17IDB4MDQ3MCwJMTYsCXsweGU0LCAweGY1LCAweDkxLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA0LCAweGYwLCAweDEyLCAweDA1LCAweGEwLCAweGQwLCAweGUwLCAweGQwLCAweDg1fSB9LAoteyAweDA0ODAsCTE2LAl7MHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhkMCwgMHg4NiwgMHgzMiwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4MywgMHhjMH0gfSwKLXsgMHgwNDkwLAkxNiwJezB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDR9IH0sCi17IDB4MDRhMCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY5LCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdkLCAweGMwLCAweDc1LCAweDg1LCAweDEwLCAweDg1fSB9LAoteyAweDA0YjAsCTE2LAl7MHgzMiwgMHg4NCwgMHhlMCwgMHgwNSwgMHg4NiwgMHgwNSwgMHg4NCwgMHhmMCwgMHhlNSwgMHg4NCwgMHhiNSwgMHgzMywgMHgwMiwgMHg4MCwgMHgwOSwgMHgwNX0gfSwKLXsgMHgwNGMwLAkxNiwJezB4MzIsIDB4MDUsIDB4ODYsIDB4YTMsIDB4ZDksIDB4ZWMsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4YjEsIDB4MzEsIDB4ZDAsIDB4ZTB9IH0sCi17IDB4MDRkMCwJMTYsCXsweGQwLCAweDg1LCAweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmfSB9LAoteyAweDA0ZTAsCTE2LAl7MHhiYywgMHhlMCwgMHgyMCwgMHhlMSwgMHg0YiwgMHg5MCwgMHg3ZCwgMHgwMCwgMHhlNSwgMHgzMiwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMywgMHhmMCwgMHhhM30gfSwKLXsgMHgwNGYwLAkxNiwJezB4ZTUsIDB4MzAsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzEsIDB4ZjAsIDB4YTMsIDB4ZTQsIDB4MzAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4ZjAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MDUwMCwJMTYsCXsweDg2LCAweDkwLCAweDEwLCAweDAwLCAweDc5LCAweDEwLCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGQ5LCAweGY2fSB9LAoteyAweDA1MTAsCTE2LAl7MHgwNSwgMHg4NiwgMHg3NCwgMHhmYywgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHg5MCwgMHgxMSwgMHgwMCwgMHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNX0gfSwKLXsgMHgwNTIwLAkxNiwJezB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZDksIDB4ZjYsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4YmQsIDB4NzQsIDB4MjYsIDB4ZjB9IH0sCi17IDB4MDUzMCwJMTYsCXsweDIyLCAweDIwLCAweDAwLCAweDEzLCAweGU1LCAweDMyLCAweGI1LCAweDMzLCAweDAxLCAweDIyLCAweDA1LCAweDMzLCAweDc1LCAweDgzLCAweDEwLCAweDg1fSB9LAoteyAweDA1NDAsCTE2LAl7MHgzMywgMHg4MiwgMHhlMCwgMHhmNSwgMHg5OSwgMHhkMiwgMHgwMCwgMHg3NCwgMHgwMCwgMHhiNSwgMHgzNCwgMHgwMSwgMHgyMiwgMHhlNSwgMHgzMywgMHhkM30gfSwKLXsgMHgwNTUwLAkxNiwJezB4OTUsIDB4MzIsIDB4YzMsIDB4OTUsIDB4MzQsIDB4NDAsIDB4ZjUsIDB4NzUsIDB4MzQsIDB4MDAsIDB4ZDIsIDB4MDEsIDB4MDIsIDB4MDUsIDB4YTAsIDB4YzB9IH0sCi17IDB4MDU2MCwJMTYsCXsweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweDMwLCAweDk5LCAweDA3LCAweGMyLCAweDk5fSB9LAoteyAweDA1NzAsCTE2LAl7MHhjMiwgMHgwMCwgMHgxMiwgMHgwNSwgMHgzNCwgMHgzMCwgMHg5OCwgMHgwNSwgMHgxMiwgMHgwNSwgMHg4YSwgMHhjMiwgMHg5OCwgMHhkMCwgMHhlMCwgMHhkMH0gfSwKLXsgMHgwNTgwLAkxNiwJezB4ODUsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4NzUsIDB4ODMsIDB4MTEsIDB4ODUsIDB4MzAsIDB4ODJ9IH0sCi17IDB4MDU5MCwJMTYsCXsweDA1LCAweDgyLCAweGU1LCAweDk5LCAweGYwLCAweGU1LCAweDgyLCAweGI1LCAweDMxLCAweDAxLCAweDIyLCAweDA1LCAweDMwLCAweGIxLCAweGEwLCAweDIyfSB9LAoteyAweDA1YTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzOCwgMHgyMCwgMHgwMSwgMHgzNiwgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMSwgMHgwMSwgMHgyMn0gfSwKLXsgMHgwNWIwLAkxNiwJezB4ZTQsIDB4ZjUsIDB4ODYsIDB4NzUsIDB4ODMsIDB4MTEsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4Nzl9IH0sCi17IDB4MDVjMCwJMTYsCXsweDAxLCAweGU1LCAweDMwLCAweGI1LCAweDMxLCAweDAyLCAweDgwLCAweDEwLCAweDA1LCAweDMxLCAweDg1LCAweDMxLCAweDgyLCAweGUwLCAweDA1LCAweDg2fSB9LAoteyAweDA1ZDAsCTE2LAl7MHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHgwOSwgMHhiOSwgMHg0MCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlOSwgMHg2MCwgMHgwMSwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwNWUwLAkxNiwJezB4YzIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MDVmMCwJMTYsCXsweDdmLCAweGI5LCAweGYwLCAweDIyLCAweGMyLCAweDk5LCAweGY1LCAweDk5LCAweDMwLCAweDk5LCAweGZkLCAweGMyLCAweDk5LCAweDIyLCAweGU1LCAweDVlfSB9LAoteyAweDA2MDAsCTE2LAl7MHhmNiwgMHgzYywgMHhmZCwgMHg4ZiwgMHhmZSwgMHhjOCwgMHhmZiwgMHg2NCwgMHhmZiwgMHhiMiwgMHhmZiwgMHhkOSwgMHhmZiwgMHhlZCwgMHhmZiwgMHhmM30gfSwKLXsgMHgwNjEwLAkxNiwJezB4ZmYsIDB4ZmEsIDB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MDQsIDB4MDEsIDB4ODksIDB4YWJ9IH0sCi17IDB4MDYyMCwJMTYsCXsweDAxLCAweDAyLCAweDAzLCAweDAxLCAweDA5LCAweDAyLCAweDIwLCAweDAwLCAweDAxLCAweDAxLCAweDAwLCAweDgwLCAweDMyLCAweDA5LCAweDA0LCAweDAwfSB9LAoteyAweDA2MzAsCTE2LAl7MHgwMCwgMHgwMiwgMHhmZiwgMHhmZiwgMHhmZiwgMHgwMCwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMywgMHg0MCwgMHgwMCwgMHgwMSwgMHgwNywgMHgwNSwgMHgwMn0gfSwKLXsgMHgwNjQwLAkxNiwJezB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4NGMsIDB4MDYsIDB4NTAsIDB4MDYsIDB4NzIsIDB4MDYsIDB4YTAsIDB4MDQsIDB4MDMsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDY1MCwJMTYsCXsweDIyLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDc1LCAweDAwLCAweDczLCAweDAwfSB9LAoteyAweDA2NjAsCTE2LAl7MHg2MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwNjcwLAkxNiwJezB4NzMsIDB4MDAsIDB4MmUsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDAsIDB4NGQsIDB4MDAsIDB4NDUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDB9IH0sCi17IDB4MDY4MCwJMTYsCXsweDUzLCAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDczLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwfSB9LAoteyAweDA2OTAsCTE2LAl7MHg2YywgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2NywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwNmEwLAk2LAl7MHgwNiwgMHgwMywgMHgzNCwgMHgwMCwgMHgzNywgMHgwMH0gfSwKLXsgMHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE4eF9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTh4X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3YjNiYzAuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTh4X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDcgKzAsMCBAQAotLyoga2V5c3Bhbl91c2ExOHhfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2ExOHhfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTh4X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxMiwgMHhmN319LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgxYiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGJhfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhiYSwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZDYsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEyLCAweGVifX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgwMH19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCi0gIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NGIsIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCi0gIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAotICAweDBjLCAweGRmLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAotICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwKLSAgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg0MywgMHg0NiwKLSAgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDAxYzYsIDY0LCB7IDB4N2UsIDB4MTMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4MzUsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsCi0gIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NWIsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsCi0gIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLAotICAweDdlLCAweDEzLCAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLAotICAweGY1LCAweDQ0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLAotICAweDA3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZiwgMHg1MywgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgxMCwgMHhhNywgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhjZCwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4MSwgMHg5MCwKLSAgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4MSwgMHg5MCwgMHg3ZSwgMHgwYywKLSAgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZH19LAotIHsweDAyODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTB9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLAotICAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAotICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEyLCAweGRmLAotICAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMSwgMHhiMSwgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwKLSAgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwKLSAgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDAzNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsCi0gIDB4NTMsIDB4M2UsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsCi0gIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4ZTQsCi0gIDB4ZjUsIDB4MmIsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLAotICAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLAotICAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLAotICAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM4fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKLSAgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMiwgMHhkZiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKLSAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHgzMywgMHhlZiwgMHg1NCwgMHg4MCwKLSAgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZCwgMHgxMSwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsIDB4MDcsIDB4MjAsCi0gIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZWMsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2QsIDB4NDAsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4YWUsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsCi0gIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4YzN9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweDE0LCAweGY1LAotICAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LAotICAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDA0LCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLAotICAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwKLSAgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwZCwgMHgwNCwKLSAgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwKLSAgMHgzNiwgMHgxMiwgMHgxMiwgMHgyMCwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOSwgMHhjMywgMHg5NX19LAotIHsweDA0YzYsIDY0LCB7IDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NTcsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGMsCi0gIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4MzAsCi0gIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsCi0gIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGYsIDB4ODQsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LAotICAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgxLCAweDc1LAotICAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDI5LCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDkwLAotICAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk3LCAweGMyLCAweDA2LCAweGU0fX0sCi0gezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKLSAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKLSAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwM319LAotIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTEsIDB4MTksIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4M2YsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCi0gIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAotICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAotICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAotICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKLSAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg2NSwgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg4YiwKLSAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMCwgMHhmMywgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCi0gIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCi0gIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKLSAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKLSAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3NSwgMHgzMiwKLSAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAotIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsCi0gIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAotICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwKLSAgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwKLSAgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwgMHgxMywgMHgxMiwKLSAgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgzMywgMHhkMn19LAotIHsweDA3YzYsIDY0LCB7IDB4MDgsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsCi0gIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsCi0gIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsCi0gIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MTYsIDB4OTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDIwLCAweGU1LCAweDBhLCAweDcwLCAweDQwLAotICAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwKLSAgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwKLSAgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGUsIDB4OGMsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCi0gIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsCi0gIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsCi0gIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA1LCAweGYwLCAweDc1LCAweDBhLAotICAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDkwNiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwKLSAgMHhlNCwgMHgwYSwgMHgwOCwgMHgwMCwgMHgwYSwgMHg3YywgMHgwMSwgMHgwYSwgMHhlOCwgMHgwMywgMHgwOSwgMHg0NCwgMHgwNiwgMHgwOSwgMHhmYiwgMHgwOCwKLSAgMHgwOSwgMHhmNSwgMHgwOSwgMHgwOSwgMHhkZCwgMHgwYSwgMHgwOSwgMHhlYywgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzNywgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZDMsIDB4NzQsCi0gIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NzQsIDB4NzUsIDB4ODMsIDB4MTl9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAotICAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBmLAotICAweDBhLCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwgMHgwYiwgMHgzZSwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsCi0gIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsCi0gIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAotICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwYiwgMHgzZSwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwKLSAgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwKLSAgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsCi0gIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLAotICAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LAotICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwKLSAgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYX19LAotIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsCi0gIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsCi0gIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLAotICAweDEyLCAweDExLCAweGIxLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDExfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhiMSwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg2YSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwKLSAgMHgwYywgMHhiNywgMHg3NSwgMHgyZCwgMHgwMSwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwKLSAgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwKLSAgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgxMywgMHhmNSwgMHgzNywgMHhjMiwgMHgwOCwgMHhjMiwgMHgwYywgMHhjMiwgMHgwNiwgMHhjMn19LAotIHsweDBjNDYsIDY0LCB7IDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTAsCi0gIDB4ZjMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDcsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzR9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLAotICAweDExLCAweGZiLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLAotICAweDdmLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDhiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLAotICAweGQyLCAweDEyLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwKLSAgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwKLSAgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwKLSAgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDBkMDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsCi0gIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsCi0gIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsCi0gIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LAotICAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLAotICAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLAotICAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDEwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwKLSAgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwKLSAgMHgxYSwgMHgxMiwgMHgxMiwgMHg0NSwgMHhjMiwgMHgxMSwgMHhlNCwgMHhmNSwgMHgwYiwgMHhmNSwgMHgxMywgMHhjMiwgMHgxNywgMHhjMiwgMHgxMn19LAotIHsweDBkYzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsIDB4MDUsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsIDB4MDUsIDB4YzIsCi0gIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjEsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MTgsCi0gIDB4ZDMsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ODAsIDB4Y2MsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmR9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDc1LCAweDgxLCAweDQ3LCAweDAyLCAweDBlLCAweDQ3LCAweDAyLCAweDBkLCAweDZmLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLAotICAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LAotICAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LAotICAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHg4MCwgMHg5MCwgMHgxMiwgMHhhYywgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwKLSAgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwKLSAgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwKLSAgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYX19LAotIHsweDBlODYsIDY0LCB7IDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsCi0gIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsCi0gIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksCi0gIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTV9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLAotICAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLAotICAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LAotICAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzfX0sCi0gezB4MGYwNiwgNjQsIHsgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwgMHg3NSwgMHgxYywKLSAgMHg4NiwgMHhhYiwgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhhNSwgMHhiNCwgMHgwMywgMHgxZCwKLSAgMHhhZiwgMHgxOSwgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg4YywgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwKLSAgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgxYSwgMHhmZiwgMHhmNSwgMHgxYiwgMHg4OSwgMHgxYywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsCi0gIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsCi0gIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsCi0gIDB4NjAsIDB4MGEsIDB4MTIsIDB4MTMsIDB4MjcsIDB4OGYsIDB4MWEsIDB4ZWYsIDB4NDIsIDB4MzYsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4OGYsIDB4MWF9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLAotICAweGYwLCAweDEyLCAweDEzLCAweDNmLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LAotICAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFhLAotICAweGVmLCAweDQyLCAweDM3LCAweDgwLCAweGNhLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwKLSAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwKLSAgMHgxMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMH19LAotIHsweDEwMDYsIDY0LCB7IDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsCi0gIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsCi0gIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLAotICAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzfX0sCi0gezB4MTA4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NH19LAotIHsweDEwYzYsIDY0LCB7IDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsCi0gIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LAotICAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3Zn19LAotIHsweDExODYsIDY0LCB7IDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsCi0gIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLAotICAweDEzLCAweDBmLCAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDBmLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLAotICAweDEzLCAweDBmLCAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDBmLCAweDhmLCAweDFiLCAweDgwLAotICAweGU4LCAweGFmLCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywKLSAgMHg2MywgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwKLSAgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYiwgMHg4MCwgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MH19LAotIHsweDEyNDYsIDY0LCB7IDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0gIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YzgsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsCi0gIDB4MDQsIDB4ZjAsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2UsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4M2UsIDB4NDQsIDB4ODB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGZiLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDIyLCAweDA1LCAweDBlLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDE0LCAweDAzLCAweDAwLAotICAweDAwLCAweGMxLCAweDExLCAweGMxLCAweDE4LCAweGMxLCAweDk1LCAweGMxLCAweDEwLCAweGMxLCAweDE2LCAweDAxLCAweDBhLCAweDAwLCAweGMxfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgxYiwgMHgwMCwgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwKLSAgMHg2MCwgMHgwNSwgMHgxMiwgMHgwZCwgMHg0ZSwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhlNywgMHgwMCwgMHgwMiwgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGYsIDB4YmQsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwMCwgMHgwMywgMHgxMiwKLSAgMHgwZCwgMHg1ZiwgMHgxMiwgMHgwYiwgMHg0NiwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTIsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAyMCwgeyAweDcyLCAweDAwLCAweDEwLCAweDAzLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMwLAotICAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjAyM2M1Mi4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOV9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjg1ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMTlfZncuaAotIAotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMTlfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotKi8KLQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2ExOV9maXJtd2FyZVtdID0gewotIHsweDAwMjYsIDEwLCB7IDB4MTIsIDB4MGQsIDB4YmYsIDB4MTIsIDB4MGYsIDB4NDcsIDB4MTIsIDB4MGQsIDB4NmIsIDB4MjJ9fSwKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDFhfX0sCi0gezB4MDAxYSwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwMDMsIDE2LCB7IDB4OGUsIDB4MTMsIDB4OGYsIDB4MTQsIDB4ZTUsIDB4MTQsIDB4MTUsIDB4MTQsIDB4YWUsIDB4MTMsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTMsIDB4NGUsIDB4NjB9fSwKLSB7MHgwMDEzLCAgNywgeyAweDA1LCAweDEyLCAweDBmLCAweDM2LCAweDgwLCAweGVlLCAweDIyfX0sCi0gezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAotIHsweDAwNDYsIDE2LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDh9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDMwLCAweDk5LCAweDBlLCAweDMwLCAweDA4LCAweDA3LCAweGEyLCAweDBiLCAweDkyLCAweDliLCAweDg1LCAweDM1LCAweDk5LCAweGMyLCAweDk5LCAweGQyfX0sCi0gezB4MDA2NiwgMTYsIHsgMHgwZiwgMHgyMCwgMHgwZiwgMHgwMywgMHgwMiwgMHgwNCwgMHgzMSwgMHhjMiwgMHgwZiwgMHgyMCwgMHgwMiwgMHgwMywgMHgwMiwgMHgwMiwgMHg1NiwgMHgyMH19LAotIHsweDAwNzYsIDE2LCB7IDB4MDgsIDB4MDMsIDB4MDIsIDB4MDEsIDB4MjcsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MDksIDB4MzYsIDB4MjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDA2LCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDI5LCAweDMwLCAweDBkLCAweDEyLCAweGFmfX0sCi0gezB4MDA5NiwgMTYsIHsgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5Mn19LAotIHsweDAwYTYsIDE2LCB7IDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgwMGI2LCAxNiwgeyAweGY1LCAweDM1LCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyfX0sCi0gezB4MDBjNiwgMTYsIHsgMHgwMiwgMHgzMCwgMHgwYSwgMHgwYywgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZn19LAotIHsweDAwZDYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MDgsIDB4MDIsIDB4MDQsIDB4MmYsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTB9fSwKLSB7MHgwMGU2LCAxNiwgeyAweGY1LCAweDUwLCAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDIwLCAweDA5LCAweDJkLCAweDIwLCAweDA2LCAweDJhLCAweDkwfX0sCi0gezB4MDBmNiwgMTYsIHsgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHgyMCwgMHgzMCwgMHgwZCwgMHgxMSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMH19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGYsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDBjLCAweDYxfX0sCi0gezB4MDEwNiwgNjQsIHsgMHgxMywgMHg5MiwgMHgwYiwgMHhhMywgMHhlMCwgMHhmNSwgMHgzNSwgMHg3NSwgMHgzNywgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg3NSwgMHgzNywgMHgwMiwgMHg5MCwKLSAgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHg3NSwgMHgzNywgMHgwMSwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwKLSAgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwMSwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwKLSAgMHgwNywgMHhjMiwgMHgxMCwgMHhjMiwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHhmNSwgMHg1MCwgMHg5MH19LAotIHsweDAxNDYsIDY0LCB7IDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDEsIDB4YzcsIDB4MjAsIDB4MDYsIDB4NzIsIDB4MjAsIDB4MDAsCi0gIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NjUsIDB4MzAsIDB4MGQsIDB4MTAsIDB4OTAsIDB4N2UsCi0gIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDMsIDB4ODAsIDB4MDksIDB4OTAsIDB4N2UsCi0gIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTB9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAyLCAweDIwLCAweDBhLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLAotICAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDJmLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLCAweDJmLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBiLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweDQwLAotICAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgyZiwgMHg3NSwgMHgzNywgMHgwMSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwMiwgMHg1MSwgMHgyMCwgMHgwNiwKLSAgMHg3OSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgyMCwgMHgwZSwgMHg2ZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywKLSAgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwKLSAgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDAyMDYsIDY0LCB7IDB4ZjUsIDB4OTksIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDIsIDB4MjAsCi0gIDB4MGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4YzIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsCi0gIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM1LCAweGQyLCAweDA4LCAweDAyLCAweDA0LCAweDJmLCAweGMyLCAweDEwLCAweDAyLCAweDA0LCAweDJmLCAweDIwLAotICAweDA4LCAweDAzLCAweDAyLCAweDAzLCAweDA4LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDNlLCAweDIwLCAweDA5LCAweDM2LCAweDIwLAotICAweDA2LCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDI5LCAweDMwLCAweDBkLCAweDEyLCAweGFmLAotICAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzfX0sCi0gezB4MDI4NiwgNjQsIHsgMHg5MiwgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHhmNSwgMHgzNSwgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwKLSAgMHgwMiwgMHgzMCwgMHgwYSwgMHgwYywgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwKLSAgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgwOCwgMHgwMiwgMHgwNCwgMHgyZiwgMHg5MCwgMHg3ZiwgMHhjN319LAotIHsweDAyYzYsIDY0LCB7IDB4ZTAsIDB4ZjUsIDB4NTAsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4MjAsIDB4MDksIDB4MmQsIDB4MjAsIDB4MDYsIDB4MmEsIDB4OTAsCi0gIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4MjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsCi0gIDB4MTMsIDB4OTIsIDB4MGIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MzcsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDIsCi0gIDB4OTAsIDB4N2UsIDB4NDEsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4MDIsIDB4MDQsIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MDgsIDB4MDJ9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDA0LCAweDJmLCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDAzLCAweDAyLCAweDAzLCAweGIwLCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDMwLAotICAweGUxLCAweDA3LCAweGMyLCAweDEwLCAweGMyLCAweDAzLCAweDAyLCAweDA0LCAweDJmLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUwLCAweDkwLAotICAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDAzLCAweGE4LCAweDIwLCAweDA2LCAweDcyLCAweDIwLAotICAweDAwLCAweDZmLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUzLCAweDAzLCAweDIwLCAweDBlLCAweDY1LCAweDMwLCAweDBkLCAweDEwfX0sCi0gezB4MDM0NiwgNjQsIHsgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzNywgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwKLSAgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzNywgMHgwMiwgMHhlNSwgMHgzNywgMHhjMywgMHg5NSwgMHg1MCwgMHg0MCwgMHgxNywgMHg5MCwKLSAgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMiwgMHgyMCwgMHgwYSwgMHgwMywgMHgwMiwgMHgwNCwgMHgyZiwgMHhjMiwgMHgwYSwgMHg5MCwgMHg3ZiwKLSAgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyZiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMH19LAotIHsweDAzODYsIDY0LCB7IDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsIDB4NzQsCi0gIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MDgsIDB4MDIsIDB4MDQsCi0gIDB4MmYsIDB4NzUsIDB4MzcsIDB4MDEsIDB4YzIsIDB4MTAsIDB4MDIsIDB4MDQsIDB4MmYsIDB4MzAsIDB4MDksIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmQsIDB4MjAsCi0gIDB4MDYsIDB4NzQsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MGUsIDB4NmEsIDB4MzAsIDB4MGQsIDB4MTJ9fSwKLSB7MHgwM2M2LCA2NCwgeyAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLAotICAweDliLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLAotICAweGY1LCAweDk5LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDQwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAyLAotICAweDMwLCAweDBhLCAweDM1LCAweGMyLCAweDBhLCAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDgwLCAweDJjLCAweDMwLCAweDBkLCAweDEyfX0sCi0gezB4MDQwNiwgNjQsIHsgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKLSAgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHhmNSwgMHgzNSwgMHhkMiwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMiwgMHgxMCwgMHhkMiwgMHgxMiwgMHgyMCwgMHg5OCwgMHgwMywgMHgwMiwgMHgwNSwgMHg2ZCwKLSAgMHhjMiwgMHg5OCwgMHgyMCwgMHgwMSwgMHgwMywgMHgwMiwgMHgwNCwgMHhkYSwgMHgyMCwgMHgxMSwgMHgyNywgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNn19LAotIHsweDA0NDYsIDY0LCB7IDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MGQsIDB4NGQsIDB4YWYsCi0gIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsCi0gIDB4ODAsIDB4M2EsIDB4ODUsIDB4OTksIDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDQsIDB4MDQsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsCi0gIDB4YjUsIDB4NDMsIDB4MDQsIDB4YzIsIDB4MDYsIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4ODAsIDB4MmYsIDB4ZjV9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDEwLCAweGYwLCAweDMwLCAweDBkLCAweDExLCAweGFmLCAweDM2LCAweDA1LCAweDM2LCAweDc0LAotICAweDgwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDBjLCAweGU1LCAweDM2LAotICAweGMzLCAweDk1LCAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDZiLCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDMwLCAweGUxLCAweDE2LCAweGU1LAotICAweDM2LCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDAzLCAweDAyLCAweDA1LCAweDZiLCAweDE1LCAweDM2LCAweDE1LCAweDM2LCAweDA1LCAweDJifX0sCi0gezB4MDRjNiwgNjQsIHsgMHg0MywgMHgzMywgMHgwMSwgMHgwMiwgMHgwNSwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHgzNiwgMHhmMCwgMHg3NSwgMHgzNiwgMHgwMCwgMHhjMiwgMHgwMSwKLSAgMHgwMiwgMHgwNSwgMHg2YiwgMHgyMCwgMHgxMSwgMHgyNywgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgwZCwgMHg0ZCwgMHhhZiwgMHgzNiwgMHgwNSwgMHgzNiwgMHg3NCwgMHgwMCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwgMHg5OX19LAotIHsweDA1MDYsIDY0LCB7IDB4MTAsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDQsIDB4MDQsIDB4ZDIsIDB4MDYsIDB4ODAsIDB4MmUsIDB4ZTUsIDB4MTAsIDB4YjUsIDB4NDMsIDB4MDQsIDB4YzIsIDB4MDYsCi0gIDB4ODAsIDB4MjUsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsCi0gIDB4ZTUsIDB4MTAsIDB4ZjAsIDB4MzAsIDB4MGQsIDB4MTEsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4NzQsIDB4MDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGMsIDB4ZTUsIDB4MzYsIDB4YzMsIDB4OTUsIDB4NDAsIDB4NDB9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweDI0LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDEyLCAweGU1LCAweDM2LCAweGMzLCAweDk0LCAweDQwLCAweDQwLCAweDE2LCAweDE1LCAweDM2LAotICAweDE1LCAweDM2LCAweDA1LCAweDJiLCAweDQzLCAweDMzLCAweDAxLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM2LCAweGYwLCAweDc1LAotICAweDM2LCAweDAwLCAweGQyLCAweDAxLCAweGQyLCAweDEyLCAweDMwLCAweDEyLCAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDAwLCAweDU2LCAweGQwLCAweGQwLAotICAweGQwLCAweDg2LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDMwLCAweGUxfX0sCi0gezB4MDU4NiwgNjQsIHsgMHgwMywgMHgwMiwgMHgwNiwgMHhhYiwgMHhlNCwgMHhmNSwgMHgxMywgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMywgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHgzOCwgMHhmOSwgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwKLSAgMHhlZiwgMHgxMiwgMHgwZCwgMHgzMywgMHgwNSwgMHgxMywgMHhlNSwgMHgxMywgMHhiNCwgMHgxOCwgMHhkYiwgMHhlNSwgMHgzOCwgMHg2MCwgMHgwYywgMHg3NSwKLSAgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNCwgMHg4NSwgMHgzOSwgMHhjYSwgMHg4NSwgMHgzYSwgMHhjYiwgMHhlNSwgMHgzYiwgMHgxMywgMHg5Mn19LAotIHsweDA1YzYsIDY0LCB7IDB4MGQsIDB4OTIsIDB4OWYsIDB4ZTUsIDB4M2MsIDB4MTMsIDB4OTIsIDB4MGUsIDB4ZTUsIDB4M2QsIDB4MTMsIDB4OTIsIDB4MTEsIDB4ZTUsIDB4M2UsIDB4NjAsIDB4MDksCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsCi0gIDB4ZTUsIDB4M2YsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NjAsIDB4MGIsIDB4YzIsIDB4MDksIDB4YzIsIDB4MDYsIDB4OTAsIDB4N2YsIDB4OTV9fSwKLSB7MHgwNjA2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ2LCAweDYwLCAweDBjLCAweGQyLCAweDA2LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDk1LCAweGUwLAotICAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ3LCAweDYwLCAweDBkLCAweGMyLCAweGFmLCAweGMyLCAweDA4LCAweGQyLCAweDAwLCAweGU0LCAweGY1LCAweDUwLAotICAweGY1LCAweDM3LCAweGQyLCAweGFmLCAweGU1LCAweDQ4LCAweDYwLCAweDA1LCAweDMwLCAweDExLCAweDAyLCAweGQyLCAweDA2LCAweGU1LCAweDQ5LCAweDYwLAotICAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweGUwLCAweDQ0LCAweDAyLCAweGYwfX0sCi0gezB4MDY0NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg0YSwgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwgMHg3NSwgMHgyYywKLSAgMHgwMSwgMHg3NSwgMHgzMSwgMHgxZSwgMHhlNSwgMHg0YiwgMHg2MCwgMHgwNywgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgyYywgMHhlNSwKLSAgMHg0YywgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHgzNiwgMHhlNSwgMHg0ZCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNCwgMHhlNSwgMHg0ZSwgMHg2MCwgMHgwYSwKLSAgMHhlNSwgMHg0YSwgMHg3MCwgMHgwMiwgMHhmNSwgMHgzMSwgMHhlNSwgMHg0ZSwgMHg0MiwgMHgzMywgMHhlNSwgMHg0ZiwgMHg2MCwgMHgxZiwgMHg5MH19LAotIHsweDA2ODYsIDY0LCB7IDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsIDB4ZjAsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDEsIDB4ZDIsIDB4MDUsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YTIsIDB4MDksIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MjksIDB4NjAsIDB4MDUsIDB4OGYsIDB4MjksIDB4NDMsCi0gIDB4MzMsIDB4MDEsIDB4YTIsIDB4MDYsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4NjUsIDB4MmEsIDB4NjAsIDB4MDUsIDB4OGYsIDB4MmEsIDB4NDMsIDB4MzN9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDA4LCAweGI1LCAweDI1LCAweDBhLCAweGUwLCAweDU0LCAweDA4LCAweDY0LCAweDA4LCAweGY1LCAweDI1LAotICAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDEwLCAweGI1LCAweDI2LCAweDBhLCAweGUwLCAweDU0LCAweDEwLCAweDY0LAotICAweDEwLCAweGY1LCAweDI2LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDQwLCAweGI1LCAweDI3LCAweDBhLCAweGUwLAotICAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGY1LCAweDI3LCAweDQzLCAweDMzLCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU0LCAweDIwfX0sCi0gezB4MDcwNiwgNjQsIHsgMHhiNSwgMHgyOCwgMHgwYSwgMHhlMCwgMHg1NCwgMHgyMCwgMHg2NCwgMHgyMCwgMHhmNSwgMHgyOCwgMHg0MywgMHgzMywgMHgwMSwgMHgzMCwgMHgwNCwgMHgzNSwgMHhjMiwKLSAgMHhhZiwgMHgzMCwgMHgwMSwgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHhlNSwgMHgzNiwgMHg2MCwgMHgwOSwgMHg5MCwKLSAgMHg3ZiwgMHhiNywgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNiwgMHhjMiwgMHgwMSwgMHhjMiwgMHgwNCwgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwKLSAgMHgyMCwgMHhlMSwgMHgwZiwgMHhlNSwgMHgzNiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNiwgMHhkMn19LAotIHsweDA3NDYsIDY0LCB7IDB4MDEsIDB4YzIsIDB4MDQsIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDMsIDB4MzcsIDB4MzAsIDB4MDIsIDB4MWIsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsCi0gIDB4MmQsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4NzUsIDB4MzcsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsCi0gIDB4NTAsIDB4ZDIsIDB4MDMsIDB4ODAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTIsIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsCi0gIDB4MTMsIDB4OTIsIDB4MGEsIDB4NzUsIDB4MzcsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTAsIDB4ZDIsIDB4MDMsIDB4MjB9fSwKLSB7MHgwNzg2LCA2NCwgeyAweDEwLCAweDMzLCAweDIwLCAweDAwLCAweDA2LCAweGU1LCAweDM3LCAweDY1LCAweDUwLCAweDcwLCAweDJhLCAweDMwLCAweDAzLCAweDFhLCAweDMwLCAweDAyLCAweDA5LAotICAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAyLCAweDgwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweGQyLCAweDAyLAotICAweGMyLCAweDAzLCAweGU0LCAweGY1LCAweDUwLCAweGY1LCAweDM3LCAweDMwLCAweDBhLCAweDBhLCAweGMyLCAweDBhLCAweGMyLCAweDAwLCAweDkwLCAweDdmLAotICAweGJiLCAweDc0LCAweDAxLCAweGYwLCAweDMwLCAweDEwLCAweDAzLCAweDAyLCAweDA4LCAweGM1LCAweDIwLCAweDAzLCAweDAzLCAweDAyLCAweDA4fX0sCi0gezB4MDdjNiwgNjQsIHsgMHhjNSwgMHgzMCwgMHgwZSwgMHgwYSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMywgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwNiwgMHgwMywKLSAgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwOCwgMHhjNSwgMHgzMCwgMHgwMiwgMHg2MiwgMHgzMCwgMHgwZCwgMHgxMiwgMHhhZiwKLSAgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwKLSAgMHgxOSwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4M319LAotIHsweDA4MDYsIDY0LCB7IDB4ZTAsIDB4ZjUsIDB4MTQsIDB4ZTUsIDB4MzcsIDB4YzMsIDB4OTUsIDB4NTAsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MGQsIDB4MTIsIDB4YWYsIDB4MzcsIDB4MDUsIDB4MzcsCi0gIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGIsIDB4YWYsIDB4MzcsCi0gIDB4MDUsIDB4MzcsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzUsIDB4ZDIsCi0gIDB4MDgsIDB4ODAsIDB4NmIsIDB4YzIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4YzIsIDB4MDIsIDB4ODAsIDB4NjAsIDB4MzB9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDBkLCAweDEyLCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLAotICAweDEzLCAweDkyLCAweDE5LCAweGFmLCAweDM3LCAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LAotICAweDgzLCAweGUwLCAweGY1LCAweDE0LCAweGU1LCAweDM3LCAweGMzLCAweDk1LCAweDUwLCAweDUwLCAweDJhLCAweDMwLCAweDBkLCAweDEyLCAweGFmLCAweDM3LAotICAweDA1LCAweDM3LCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyfX0sCi0gezB4MDg4NiwgNjQsIHsgMHgwYiwgMHhhZiwgMHgzNywgMHgwNSwgMHgzNywgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgzNSwgMHhkMiwgMHgwOCwgMHg4MCwgMHgwOSwgMHhjMiwgMHgwOCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMiwgMHgzMCwgMHgwZCwKLSAgMHgwNCwgMHhhMiwgMHgxOSwgMHg5MiwgMHg5YiwgMHhkMiwgMHgxMCwgMHhjMiwgMHhhZiwgMHg4NSwgMHgxNCwgMHg5OSwgMHgyMCwgMHgwOCwgMHgwZCwgMHgzMCwKLSAgMHgwYSwgMHgwYSwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMiwgMHhhZiwgMHg5MH19LAotIHsweDA4YzYsIDY0LCB7IDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NTEsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4NGQsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4NDksIDB4ZTUsIDB4MzMsIDB4MzAsCi0gIDB4ZTEsIDB4MDgsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4NzUsIDB4MzMsIDB4MDEsIDB4ODAsIDB4MGIsIDB4YTIsIDB4MDUsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MmYsCi0gIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MzMsIDB4ZTQsIDB4ZjUsIDB4MTMsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MjQsIDB4MjUsIDB4MTMsCi0gIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGMsIDB4ZWQsIDB4ZmYsIDB4NzQsIDB4MDAsIDB4MjUsIDB4MTMsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwOTA2LCA2NCwgeyAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEzLCAweGU1LCAweDEzLCAweGI0LCAweDBjLCAweGRiLCAweDkwLCAweDdmLCAweGJkLAotICAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDMxLCAweDEwLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBkLCAweDQ1LCAweDBhLCAweDAzLAotICAweDAwLCAweDBhLCAweDc3LCAweDAxLCAweDBhLCAweGUzLCAweDAzLCAweDA5LCAweDQxLCAweDA2LCAweDA5LCAweGY0LCAweDA4LCAweDA5LCAweGU4LCAweDA5LAotICAweDA5LCAweGQwLCAweDBhLCAweDA5LCAweGRmLCAweDBiLCAweDAwLCAweDAwLCAweDBiLCAweDMyLCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0fX0sCi0gezB4MDk0NiwgNjQsIHsgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwgMHg2MCwgMHg1NywgMHgyNCwgMHgwMiwgMHg3MCwgMHg3NiwgMHg3NCwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwKLSAgMHg2NCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwKLSAgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHhiNSwgMHg3NSwgMHg4MywgMHgwZiwgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhZSwgMHg3NSwKLSAgMHg4MywgMHgwZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhNywgMHg3NSwgMHg4MywgMHgwZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHhhMCwgMHg3NSwgMHg4M319LAotIHsweDA5ODYsIDY0LCB7IDB4MGYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MGYsIDB4ZjAsIDB4NzQsIDB4MGYsIDB4OTAsCi0gIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsCi0gIDB4ZmYsIDB4MTIsIDB4MGUsIDB4NDgsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsCi0gIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4Mzl9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDE5LCAweGYwLCAweDkwLAotICAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE5LCAweDAyLCAweDBiLAotICAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDE4LCAweDEyLCAweDBkLCAweDZiLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweDAwLAotICAweGU1LCAweDE4LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGU4fX0sCi0gezB4MGEwNiwgNjQsIHsgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMiwgMHgxMywgMHhlNCwgMHgzMywgMHhmZiwKLSAgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxNywgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MH19LAotIHsweDBhNDYsIDY0LCB7IDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsCi0gIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MzksCi0gIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4Mzl9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDEzLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDM5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAotICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmfX0sCi0gezB4MGFjNiwgNjQsIHsgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwKLSAgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwKLSAgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwKLSAgMHgxMywgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYX19LAotIHsweDBiMDYsIDY0LCB7IDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsCi0gIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MGJ9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweGQzLCAweGU1LCAweDMxLCAweDYwLCAweDAyLCAweDE1LCAweDMxLCAweGU1LCAweDM2LCAweDYwLCAweDRmLCAweDY1LCAweDM0LCAweDcwLCAweDQ1LCAweGU1LCAweDMyLAotICAweGY0LCAweDYwLCAweDAyLCAweDA1LCAweDMyLCAweGU1LCAweDMyLCAweGMzLCAweDk1LCAweDQxLCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAxLAotICAweDE4LCAweDkwLCAweDdmLCAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDM2LCAweGYwLCAweGMyLCAweDAxLAotICAweGU0LCAweGY1LCAweDM2LCAweGY1LCAweDMyLCAweGY1LCAweDM0LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxfX0sCi0gezB4MGI4NiwgNjQsIHsgMHgwZiwgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlNSwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzMiwgMHhmNSwgMHgzNCwgMHhkMiwKLSAgMHhhZiwgMHg4MCwgMHgwNiwgMHg4NSwgMHgzNiwgMHgzNCwgMHhlNCwgMHhmNSwgMHgzMiwgMHhlNSwgMHgyYywgMHg2MCwgMHgyZiwgMHgyMCwgMHgwYywgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgzMCwgMHhlMCwgMHgwZiwgMHhlNSwgMHgyZCwgMHg2MCwgMHgwNiwgMHhlNCwgMHhmNSwgMHgyZCwgMHg0MywgMHgzMywKLSAgMHgwMSwgMHhlNCwgMHhmNSwgMHgzMCwgMHg4MCwgMHgxNCwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NSwgMHg0MiwgMHg1MCwgMHgwZCwgMHhlNSwgMHgzMH19LAotIHsweDBiYzYsIDY0LCB7IDB4YjUsIDB4NDIsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDEsIDB4NDMsIDB4MzMsIDB4MDEsIDB4MDUsIDB4MzAsIDB4YzIsIDB4MGMsIDB4MjIsIDB4NzUsIDB4MTIsIDB4MDEsCi0gIDB4YzIsIDB4MTQsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTUsIDB4YzIsIDB4MTIsIDB4ZDIsIDB4MTYsIDB4ZTQsIDB4ZjUsCi0gIDB4MTgsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4ZmYsIDB4ZDMsIDB4OTIsIDB4MTMsCi0gIDB4ZTQsIDB4MzMsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzR9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLAotICAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLAotICAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweDE5LCAweDEyLCAweDBlLCAweGRhLCAweGMyLCAweDE0LCAweDMwLAotICAweDE1LCAweDAzLCAweDEyLCAweDA1LCAweDgwLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweDY1LCAweDExLCAweDYwLCAweDA4LCAweGUwLCAweGY1fX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxMSwgMHgxMiwgMHgwYiwgMHg0MSwgMHg4MCwgMHhlYSwgMHgzMCwgMHgxNCwgMHgwNywgMHhjMiwgMHgxNCwgMHgxMiwgMHgwOSwgMHgxZSwgMHg4MCwgMHhlMCwgMHgzMCwKLSAgMHgxOCwgMHhkZCwgMHhjMiwgMHgxOCwgMHgxMiwgMHgwMCwgMHgyNiwgMHg4MCwgMHhkNiwgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwKLSAgMHg3NSwgMHg4MSwgMHg1MCwgMHgwMiwgMHgwYywgMHhhOCwgMHgwMiwgMHgwYiwgMHhkNCwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywKLSAgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOH19LAotIHsweDBjODYsIDY0LCB7IDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsCi0gIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsCi0gIDB4ODAsIDB4OTAsIDB4MGUsIDB4MDQsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsCi0gIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTB9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LAotICAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLAotICAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLAotICAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyfX0sCi0gezB4MGQwNiwgNjQsIHsgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwKLSAgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMiwgMHhlNSwKLSAgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwKLSAgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMH19LAotIHsweDBkNDYsIDY0LCB7IDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsCi0gIDB4NzQsIDB4MDEsIDB4OTMsIDB4ZjUsIDB4ODIsIDB4ODgsIDB4ODMsIDB4ZTQsIDB4NzMsIDB4NzQsIDB4MDIsIDB4OTMsIDB4NjgsIDB4NjAsIDB4ZWYsIDB4YTMsCi0gIDB4YTMsIDB4YTMsIDB4ODAsIDB4ZGYsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTYsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4MDR9fSwKLSB7MHgwZDg2LCA2NCwgeyAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweDc0LCAweDIwLCAweGYwLCAweDkwLCAweDdmLCAweDk1LCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LAotICAweDg0LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDkwLAotICAweDdmLCAweGNiLCAweGYwLCAweDc1LCAweDk4LCAweDQwLCAweDQzLCAweGE4LCAweDEwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDFmLCAweGYwLCAweDkwLAotICAweDdmLCAweGRmLCAweDc0LCAweDBmLCAweGYwLCAweGQyLCAweDE1LCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MGRjNiwgNjQsIHsgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwKLSAgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgyMCwgMHhmMCwKLSAgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHhmZCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMiwgMHgwYywgMHgyNH19LAotIHsweDBlMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MzAsIDB4MDAsIDB4MDEsIDB4MzMsCi0gIDB4MDEsIDB4MDEsIDB4MzIsIDB4MDAsIDB4MDEsIDB4MzcsIDB4MDAsIDB4MDEsIDB4NTAsIDB4MDAsIDB4MDEsIDB4MzYsIDB4MDAsIDB4MDEsIDB4MzQsIDB4MDAsCi0gIDB4YzEsIDB4MDUsIDB4YzEsIDB4MGMsIDB4YzEsIDB4MDMsIDB4YzEsIDB4MGYsIDB4YzEsIDB4MDQsIDB4YzEsIDB4MGUsIDB4YzEsIDB4MTEsIDB4YzEsIDB4MGEsCi0gIDB4YzEsIDB4MTAsIDB4YzEsIDB4MDgsIDB4YzEsIDB4MDksIDB4YzEsIDB4MDYsIDB4YzEsIDB4MDAsIDB4YzEsIDB4MGQsIDB4YzEsIDB4ODEsIDB4YzF9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweDgyLCAweDAwLCAweDhmLCAweDEzLCAweGU0LCAweGY1LCAweDE0LCAweDc1LCAweDE1LCAweGZmLCAweDc1LCAweDE2LCAweDBmLCAweDc1LCAweDE3LCAweGI5LCAweGFiLAotICAweDE1LCAweGFhLCAweDE2LCAweGE5LCAweDE3LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBkLCAweDA2LCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDE0LAotICAweDA1LCAweDE0LCAweGVmLCAweGI1LCAweDEzLCAweDAxLCAweDIyLCAweDEyLCAweDBjLCAweGVkLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLAotICAweGE5LCAweDA3LCAweDc1LCAweDE1LCAweGZmLCAweGY1LCAweDE2LCAweDg5LCAweDE3LCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHg3OSwgMHgwMCwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwKLSAgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwKLSAgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywKLSAgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxNCwgMHg1MywgMHg5MX19LAotIHsweDBlYzYsIDY0LCB7IDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCi0gIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MTksCi0gIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDAsIDB4MDMsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsCi0gIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4MDAsIDB4MDIsIDB4MGUsIDB4YjMsIDB4MDAsIDB4MDIsIDB4MGZ9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDA0LCAweDAwLCAweDAyLCAweDBlLCAweDg5LCAweDAwLCAweDAyLCAweDBmLCAweDBmLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LAotICAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LAotICAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDc0LAotICAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5fX0sCi0gezB4MGY0NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwKLSAgMHgwMSwgMHhmZiwgMHgwMCwgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwNywgMHgwMSwgMHgwMSwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwKLSAgMHgwMiwgMHg0MywgMHgwMCwgMHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwNywgMHhmZiwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsCi0gIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDEsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MTAsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzN9fSwKLSB7MHgwZmM2LCAyMywgeyAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDBlLCAweDAzLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLAotICAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXFpX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXFpX2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhMjY0NzIuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxaV9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjg0ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMTlxaV9mdy5oCi0gCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3BuX3VzYTE5cWlfZncuaCBpcwotCi0JCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCi0JCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKLQkJCi0JYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCi0JcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCi0JZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUgCi0JcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCAKLQlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLQotCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZSAKLQlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwgCi0JaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4gCi0KLQlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCAgCi0JS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZSAKLQlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIAotCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgotCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2ExOXFpX2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgxYX19LAotIHsweDAwMWEsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDAzLCAxNiwgeyAweDhlLCAweDExLCAweDhmLCAweDEyLCAweGU1LCAweDEyLCAweDE1LCAweDEyLCAweGFlLCAweDExLCAweDcwLCAweDAyLCAweDE1LCAweDExLCAweDRlLCAweDYwfX0sCi0gezB4MDAxMywgIDcsIHsgMHgwNSwgMHgxMiwgMHgwZiwgMHg4NCwgMHg4MCwgMHhlZSwgMHgyMn19LAotIHsweDAwMjMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgzMCwgMHg5OSwgMHgwZSwgMHgzMCwgMHgwYiwgMHgwNywgMHhhMiwgMHgwZSwgMHg5MiwgMHg5YiwgMHg4NSwgMHgzNiwgMHg5OSwgMHhjMiwgMHg5OSwgMHhkMn19LAotIHsweDAwNjYsIDE2LCB7IDB4MTIsIDB4MjAsIDB4MTIsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWUsIDB4YzIsIDB4MTIsIDB4MjAsIDB4MDMsIDB4MDMsIDB4MDIsIDB4MDIsIDB4NGUsIDB4MjB9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDBiLCAweDAzLCAweDAyLCAweDAxLCAweDI2LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDNjLCAweDIwLCAweDBjLCAweDM0LCAweDIwfX0sCi0gezB4MDA4NiwgMTYsIHsgMHgwOSwgMHgzMSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHgyOSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNX19LAotIHsweDAwOTYsIDE2LCB7IDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWZ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2fX0sCi0gezB4MDBiNiwgMTYsIHsgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMywgMHgzMH19LAotIHsweDAwYzYsIDE2LCB7IDB4MGQsIDB4MGMsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGM4LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzfX0sCi0gezB4MDBlNiwgMTYsIHsgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxNiwgMHhmZiwgMHgyMCwgMHgwYywgMHgyYiwgMHgyMCwgMHgwOSwgMHgyOH19LAotIHsweDAwZjYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4MjAsIDB4MzAsIDB4MTAsIDB4MTEsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTN9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDBlLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwMCwgMHgyNn19LAotIHsweDAwMjYsIDEyLCB7IDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4NTQsIDB4MDIsIDB4MGIsIDB4Mjh9fSwKLSB7MHgwMTA2LCA2NCwgeyAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDM2LCAweDc1LCAweDNhLCAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAyLCAweDkwLCAweDdkLAotICAweGMxLCAweGUwLCAweGY1LCAweDM2LCAweDAyLCAweDA0LCAweDFjLCAweDc1LCAweDNhLCAweDAxLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweGU1LAotICAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDAzLCAweDAyLCAweDAxLCAweGM5LCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDMwLCAweGUxLCAweDA3LAotICAweGMyLCAweDE0LCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweDkwLCAweDdlfX0sCi0gezB4MDE0NiwgNjQsIHsgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHg3NSwgMHgxNiwgMHhmZiwgMHgyMCwgMHgwYywgMHg3MCwgMHgyMCwgMHgwOSwgMHg2ZCwgMHg5MCwgMHg3ZiwgMHg5YiwKLSAgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHg2NSwgMHgzMCwgMHgxMCwgMHgxMCwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhMywKLSAgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzYSwgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHgzYSwKLSAgMHgwMiwgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg0MCwgMHgxNywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwM319LAotIHsweDAxODYsIDY0LCB7IDB4MjAsIDB4MGQsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MzAsCi0gIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4ZDIsIDB4MGIsIDB4MDIsIDB4MDQsIDB4MWMsIDB4NzUsIDB4M2EsIDB4MDEsIDB4YzIsIDB4MTR9fSwKLSB7MHgwMWM2LCA2NCwgeyAweDAyLCAweDA0LCAweDFjLCAweDMwLCAweDBjLCAweDAzLCAweDAyLCAweDAyLCAweDQ5LCAweDIwLCAweDA5LCAweDc3LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDU1LAotICAweDM4LCAweDcwLCAweDZmLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDliLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDk5LCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwfX0sCi0gezB4MDIwNiwgNjQsIHsgMHgxNywgMHg5MCwgMHg3ZiwgMHhjNywgMHhlNCwgMHhmMCwgMHhjMiwgMHgwMywgMHgyMCwgMHgwZCwgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHhjMiwgMHgwZCwgMHg5MCwKLSAgMHg3ZiwgMHhiYiwgMHgwNCwgMHhmMCwgMHgwMiwgMHgwNCwgMHgxYywgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwKLSAgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwKLSAgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYn19LAotIHsweDAyNDYsIDY0LCB7IDB4MDIsIDB4MDQsIDB4MWMsIDB4YzIsIDB4MTQsIDB4MDIsIDB4MDQsIDB4MWMsIDB4MjAsIDB4MGIsIDB4MDMsIDB4MDIsIDB4MDIsIDB4ZmYsIDB4ZTUsIDB4M2EsIDB4YzMsCi0gIDB4OTUsIDB4NTMsIDB4NTAsIDB4M2MsIDB4MjAsIDB4MGMsIDB4MzQsIDB4MjAsIDB4MDksIDB4MzEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsCi0gIDB4NzAsIDB4MjksIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjV9fSwKLSB7MHgwMjg2LCA2NCwgeyAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLAotICAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAzLCAweDMwLCAweDBkLCAweDBjLCAweGMyLCAweDBkLCAweDkwLCAweDdmLCAweGJiLCAweDA0LAotICAweGYwLCAweGMyLCAweDBiLCAweDAyLCAweDA0LCAweDFjLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDMwLCAweGUxLCAweDA1LCAweGMyLCAweDBiLCAweDAyLAotICAweDA0LCAweDFjLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDUzLCAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBkfX0sCi0gezB4MDJjNiwgNjQsIHsgMHg3NSwgMHgxNiwgMHhmZiwgMHgyMCwgMHgwYywgMHgyYiwgMHgyMCwgMHgwOSwgMHgyOCwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHgyMCwKLSAgMHgzMCwgMHgxMCwgMHgxMSwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwgMHhhMywgMHhlMCwgMHhmNSwgMHgzNiwgMHg3NSwgMHgzYSwKLSAgMHgwMywgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMiwgMHg5MCwgMHg3ZSwgMHg0MSwgMHhlMCwgMHhmNSwgMHgzNiwgMHgwMiwgMHgwNCwgMHgxYywKLSAgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgwYiwgMHgwMiwgMHgwNCwgMHgxYywgMHhlNSwgMHgzYSwgMHhjMywgMHg5NSwgMHg1MywgMHg1MCwgMHgwM319LAotIHsweDAzMDYsIDY0LCB7IDB4MDIsIDB4MDMsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDcsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MDUsIDB4MDIsIDB4MDQsIDB4MWMsCi0gIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4MTYsIDB4ZmYsCi0gIDB4MjAsIDB4MGMsIDB4NzAsIDB4MjAsIDB4MDksIDB4NmQsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTUsIDB4MzgsIDB4NzAsIDB4NjUsIDB4MzAsIDB4MTAsCi0gIDB4MTAsIDB4OTAsIDB4N2QsIDB4YzEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4M2EsIDB4MDN9fSwKLSB7MHgwMzQ2LCA2NCwgeyAweDgwLCAweDA5LCAweDkwLCAweDdkLCAweGMxLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDNhLCAweDAyLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDQwLAotICAweDE3LCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwLCAweGQyLCAweDAzLCAweDIwLCAweDBkLCAweDAzLCAweDAyLCAweDA0LCAweDFjLCAweGMyLCAweDBkLAotICAweDkwLCAweDdmLCAweGJiLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDFjLCAweDMwLCAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LAotICAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGFmLCAweDNhfX0sCi0gezB4MDM4NiwgNjQsIHsgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHgzNiwgMHhkMiwgMHgwYiwKLSAgMHgwMiwgMHgwNCwgMHgxYywgMHg3NSwgMHgzYSwgMHgwMSwgMHhjMiwgMHgxNCwgMHgwMiwgMHgwNCwgMHgxYywgMHgyMCwgMHgwYywgMHg3NSwgMHgyMCwgMHgwOSwKLSAgMHg3MiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg3MCwgMHg2YSwgMHgzMCwgMHgxMCwgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwKLSAgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhZn19LAotIHsweDAzYzYsIDY0LCB7IDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4ZTUsCi0gIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NDAsIDB4MTMsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTQsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MGQsIDB4MzUsCi0gIDB4YzIsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4MmMsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsCi0gIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWZ9fSwKLSB7MHgwNDA2LCA2NCwgeyAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDM2LCAweGQyLAotICAweDBiLCAweDgwLCAweDAyLCAweGMyLCAweDE0LCAweGQyLCAweDAxLCAweDIwLCAweDk4LCAweDAzLCAweDAyLCAweDA1LCAweDVhLCAweGMyLCAweDk4LCAweDIwLAotICAweDAyLCAweDAzLCAweDAyLCAweDA0LCAweGM3LCAweDIwLCAweDE2LCAweDI3LCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDgwLCAweDJmLCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDEwLCAweDRkLCAweGFmLCAweDM5LCAweDA1fX0sCi0gezB4MDQ0NiwgNjQsIHsgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHg4MCwgMHgzYSwgMHg4NSwKLSAgMHg5OSwgMHgxMCwgMHhlNSwgMHgxMCwgMHhiNSwgMHg0NywgMHgwNCwgMHhkMiwgMHgwOSwgMHg4MCwgMHgyZSwgMHhlNSwgMHgxMCwgMHhiNSwgMHg0NiwgMHgwNCwKLSAgMHhjMiwgMHgwOSwgMHg4MCwgMHgyNSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwKLSAgMHhmNSwgMHg4MywgMHhlNSwgMHgxMCwgMHhmMCwgMHgzMCwgMHgxMCwgMHgxMSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHg4MCwgMHgyZn19LAotIHsweDA0ODYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ZDIsIDB4MGYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTUsIDB4NDMsCi0gIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTYsIDB4ZTUsIDB4MzksIDB4YzMsIDB4OTQsCi0gIDB4NDAsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NTgsIDB4MTUsIDB4MzksIDB4MTUsIDB4MzksIDB4MDUsIDB4MmIsIDB4NDMsIDB4MzQsIDB4MDEsIDB4MDIsCi0gIDB4MDUsIDB4NTgsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsIDB4MzksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MDAsIDB4YzIsIDB4MDIsIDB4MDIsIDB4MDV9fSwKLSB7MHgwNGM2LCA2NCwgeyAweDU4LCAweDIwLCAweDE2LCAweDI3LCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LAotICAweDgzLCAweGU1LCAweDk5LCAweGYwLCAweDMwLCAweDEwLCAweDRkLCAweGFmLCAweDM5LCAweDA1LCAweDM5LCAweDc0LCAweDAwLCAweDJmLCAweGY1LCAweDgyLAotICAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweDgwLCAweDNhLCAweDg1LCAweDk5LCAweDEwLCAweGU1LCAweDEwLCAweGI1LAotICAweDQ3LCAweDA0LCAweGQyLCAweDA5LCAweDgwLCAweDJlLCAweGU1LCAweDEwLCAweGI1LCAweDQ2LCAweDA0LCAweGMyLCAweDA5LCAweDgwLCAweDI1fX0sCi0gezB4MDUwNiwgNjQsIHsgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHgxMCwgMHhmMCwKLSAgMHgzMCwgMHgxMCwgMHgxMSwgMHhhZiwgMHgzOSwgMHgwNSwgMHgzOSwgMHg3NCwgMHgwMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwKLSAgMHg4MywgMHhlNSwgMHg5OCwgMHhmMCwgMHhkMiwgMHgwZiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NSwgMHg0MywgMHg0MCwgMHgyNCwgMHg5MCwgMHg3ZiwgMHhiNiwKLSAgMHhlMCwgMHgzMCwgMHhlMSwgMHgxMiwgMHhlNSwgMHgzOSwgMHhjMywgMHg5NCwgMHg0MCwgMHg0MCwgMHgxNiwgMHgxNSwgMHgzOSwgMHgxNSwgMHgzOX19LAotIHsweDA1NDYsIDY0LCB7IDB4MDUsIDB4MmIsIDB4NDMsIDB4MzQsIDB4MDEsIDB4ODAsIDB4MGIsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZTUsIDB4MzksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MDAsIDB4ZDIsCi0gIDB4MDIsIDB4ZDIsIDB4MDEsIDB4MzAsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MDEsIDB4MDIsIDB4MDAsIDB4NTYsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsCi0gIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NTEsIDB4ZTUsIDB4MzQsIDB4NjAsCi0gIDB4NGQsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4NDksIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTEsIDB4MDgsIDB4ZTQsIDB4ZjUsIDB4MmYsIDB4NzUsIDB4MzR9fSwKLSB7MHgwNTg2LCA2NCwgeyAweDAxLCAweDgwLCAweDBiLCAweGEyLCAweDA4LCAweGU0LCAweDMzLCAweGY1LCAweDJmLCAweGMyLCAweDA4LCAweGU0LCAweGY1LCAweDM0LCAweGU0LCAweGY1LCAweDExLAotICAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDExLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBkLCAweDA2LAotICAweGZmLCAweDc0LCAweDAwLCAweDI1LCAweDExLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDExLAotICAweGU1LCAweDExLCAweGI0LCAweDBjLCAweGRiLCAweDkwLCAweDdmLCAweGJkLCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDMxLCAweDEwLCAweDkwfX0sCi0gezB4MDVjNiwgNjQsIHsgMHg3ZiwgMHhjYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNiwgMHhmMywgMHhlNCwgMHhmNSwgMHgxMSwgMHg3NCwgMHg0MCwgMHgyNSwgMHgxMSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxMSwgMHg3YywgMHgwMCwgMHg3YiwgMHgwMCwgMHgyNCwgMHgzYiwKLSAgMHhmOSwgMHhlYywgMHgzNCwgMHgwMCwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZCwgMHgxZiwgMHgwNSwgMHgxMSwgMHhlNSwgMHgxMSwgMHhiNCwgMHgxOCwgMHhkYiwKLSAgMHhlNSwgMHgzYiwgMHg2MCwgMHgxMSwgMHg3NSwgMHhjOSwgMHgyMCwgMHg3NSwgMHhjOCwgMHgzNiwgMHg4NSwgMHgzYywgMHhjYSwgMHg4NSwgMHgzZH19LAotIHsweDA2MDYsIDY0LCB7IDB4Y2IsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OWYsIDB4ZjAsIDB4ZTUsIDB4M2UsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTIsIDB4OWYsIDB4ODUsIDB4M2YsIDB4MzgsIDB4ZTUsCi0gIDB4NDAsIDB4MTMsIDB4OTIsIDB4MTYsIDB4ZTUsIDB4NDEsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ODAsCi0gIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4NDIsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsCi0gIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NDgsIDB4NjB9fSwKLSB7MHgwNjQ2LCA2NCwgeyAweDBiLCAweGMyLCAweDBjLCAweGMyLCAweDA5LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDQ5LCAweDYwLCAweDBjLCAweGQyLAotICAweDA5LCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDRhLCAweDYwLCAweDBkLCAweGMyLAotICAweGFmLCAweGMyLCAweDBiLCAweGQyLCAweDAwLCAweGU0LCAweGY1LCAweDUzLCAweGY1LCAweDNhLCAweGQyLCAweGFmLCAweGU1LCAweDRiLCAweDYwLCAweDA1LAotICAweDMwLCAweDE2LCAweDAyLCAweGQyLCAweDA5LCAweGU1LCAweDRjLCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDU0LCAweGZkfX0sCi0gezB4MDY4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHhlNSwgMHg0ZCwKLSAgMHg2MCwgMHgwYSwgMHhkMiwgMHg5YywgMHhjMiwgMHg5OCwgMHg3NSwgMHgyYywgMHgwMSwgMHg3NSwgMHgzMSwgMHgxZSwgMHhlNSwgMHg0ZSwgMHg2MCwgMHgwNywKLSAgMHhjMiwgMHg5YywgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgyYywgMHhlNSwgMHg0ZiwgMHg2MCwgMHgwMywgMHhlNCwgMHhmNSwgMHgzOSwgMHhlNSwgMHg1MCwKLSAgMHg2MCwgMHgwMiwgMHhkMiwgMHgwNywgMHhlNSwgMHg1MSwgMHg2MCwgMHgwYSwgMHhlNSwgMHg0ZCwgMHg3MCwgMHgwMiwgMHhmNSwgMHgzMSwgMHhlNX19LAotIHsweDA2YzYsIDY0LCB7IDB4NTEsIDB4NDIsIDB4MzQsIDB4ZTUsIDB4NTIsIDB4NjAsIDB4MWYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsCi0gIDB4MTIsIDB4ZjAsIDB4NzQsIDB4MzIsIDB4ZjAsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzQsIDB4MzMsIDB4ZjAsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzQsIDB4MzQsCi0gIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4YTIsIDB4MGMsIDB4ZTQsIDB4MzMsCi0gIDB4ZmYsIDB4NjUsIDB4MjksIDB4NjAsIDB4MDUsIDB4OGYsIDB4MjksIDB4NDMsIDB4MzQsIDB4MDEsIDB4YTIsIDB4MDksIDB4ZTQsIDB4MzMsIDB4ZmZ9fSwKLSB7MHgwNzA2LCA2NCwgeyAweDY1LCAweDJhLCAweDYwLCAweDA1LCAweDhmLCAweDJhLCAweDQzLCAweDM0LCAweDAxLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweGZmLCAweDU0LCAweDA4LCAweDY0LAotICAweDA4LCAweGZlLCAweDY1LCAweDI1LCAweDYwLCAweDA1LCAweDhlLCAweDI1LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDEwLCAweDY0LCAweDEwLAotICAweGZlLCAweDY1LCAweDI2LCAweDYwLCAweDA1LCAweDhlLCAweDI2LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDQwLCAweDY0LCAweDQwLCAweGZlLAotICAweDY1LCAweDI3LCAweDYwLCAweDA1LCAweDhlLCAweDI3LCAweDQzLCAweDM0LCAweDAxLCAweGVmLCAweDU0LCAweDIwLCAweDY0LCAweDIwLCAweGZlfX0sCi0gezB4MDc0NiwgNjQsIHsgMHg2NSwgMHgyOCwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyOCwgMHg0MywgMHgzNCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwgMHg1NCwgMHg0MCwgMHg2NCwgMHg0MCwKLSAgMHhmZSwgMHg2NSwgMHgyZSwgMHg2MCwgMHgwNSwgMHg4ZSwgMHgyZSwgMHg0MywgMHgzNCwgMHgwMSwgMHgzMCwgMHgwNywgMHgzNSwgMHhjMiwgMHhhZiwgMHgzMCwKLSAgMHgwMiwgMHgxOCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyNywgMHhlNSwgMHgzOSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhiNywKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHgzOSwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwNywgMHg4MCwgMHgxNiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgyMH19LAotIHsweDA3ODYsIDY0LCB7IDB4ZTEsIDB4MGYsIDB4ZTUsIDB4MzksIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YjksIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZDIsIDB4MDIsIDB4YzIsIDB4MDcsCi0gIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDUsIDB4M2QsIDB4MzAsIDB4MDMsIDB4MWUsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzMsIDB4OTAsCi0gIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4NzUsIDB4M2EsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4NTMsIDB4ZDIsCi0gIDB4MDUsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4ODAsIDB4MWMsIDB4OTAsIDB4N2YsIDB4YzgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MTUsIDB4OTAsIDB4N2R9fSwKLSB7MHgwN2M2LCA2NCwgeyAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBkLCAweDc1LCAweDNhLCAweDAxLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDUzLCAweGQyLCAweDA1LCAweDc1LAotICAweDE2LCAweGZmLCAweDIwLCAweDE0LCAweDMzLCAweDIwLCAweDAwLCAweDA2LCAweGU1LCAweDNhLCAweDY1LCAweDUzLCAweDcwLCAweDJhLCAweDMwLCAweDA1LAotICAweDFhLCAweDMwLCAweDAzLCAweDA5LCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAzLCAweDgwLCAweDA3LCAweGU0LCAweDkwLCAweDdmLAotICAweGM5LCAweGYwLCAweGQyLCAweDAzLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDUzLCAweGY1LCAweDNhLCAweDMwLCAweDBkLCAweDBhLCAweGMyfX0sCi0gezB4MDgwNiwgNjQsIHsgMHgwZCwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwOSwgMHgxNCwgMHgyMCwgMHgwNSwKLSAgMHgwMywgMHgwMiwgMHgwOSwgMHgxNCwgMHgzMCwgMHgwYywgMHgwMywgMHgwMiwgMHgwOSwgMHgxNCwgMHgzMCwgMHgwOSwgMHgwMywgMHgwMiwgMHgwOSwgMHgxNCwKLSAgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NSwgMHgzOCwgMHg2MCwgMHgwMywgMHgwMiwgMHgwOSwgMHgxNCwgMHgzMCwgMHgwMywgMHg2MSwgMHgzMCwgMHgxMCwKLSAgMHgxMiwgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4M319LAotIHsweDA4NDYsIDY0LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MWIsIDB4YWYsIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4M2EsIDB4YzMsIDB4OTUsIDB4NTMsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MTAsIDB4MTIsIDB4YWYsIDB4M2EsIDB4MDUsCi0gIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YWYsCi0gIDB4M2EsIDB4MDUsIDB4M2EsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjV9fSwKLSB7MHgwODg2LCA2NCwgeyAweDM2LCAweGQyLCAweDBiLCAweDgwLCAweDZhLCAweGMyLCAweDBiLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweGMyLCAweDAzLCAweDgwLCAweDVmLCAweDMwLAotICAweDEwLCAweDEyLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLAotICAweGUwLCAweDEzLCAweDkyLCAweDFiLCAweGFmLCAweDNhLCAweDA1LCAweDNhLCAweDc0LCAweGMwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLAotICAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGU1LCAweDNhLCAweGMzLCAweDk1LCAweDUzLCAweDUwLCAweDJhLCAweDMwLCAweDEwLCAweDEyLCAweGFmfX0sCi0gezB4MDhjNiwgNjQsIHsgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgwZSwKLSAgMHhhZiwgMHgzYSwgMHgwNSwgMHgzYSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwKLSAgMHgzNiwgMHhkMiwgMHgwYiwgMHg4MCwgMHgwOSwgMHhjMiwgMHgwYiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHgzMCwgMHgxMCwKLSAgMHgwNCwgMHhhMiwgMHgxYiwgMHg5MiwgMHg5YiwgMHhkMiwgMHgxNCwgMHhjMiwgMHhhZiwgMHg4ZSwgMHg5OSwgMHgyMCwgMHgwYiwgMHgwZCwgMHgzMH19LAotIHsweDA5MDYsIDY0LCB7IDB4MGQsIDB4MGEsIDB4YzIsIDB4MGQsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGQsIDB4MzEsIDB4MGEsIDB4MTEsIDB4MDAsIDB4MGEsIDB4N2UsIDB4MDEsIDB4MGEsIDB4ZGIsIDB4MDMsIDB4MDksIDB4MzgsCi0gIDB4MDYsIDB4MGEsIDB4MDIsIDB4MDgsIDB4MDksIDB4ZjYsIDB4MDksIDB4MDksIDB4ZGUsIDB4MGEsIDB4MDksIDB4ZWQsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MGIsCi0gIDB4MTksIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NWEsIDB4MjQsIDB4MDIsIDB4NjB9fSwKLSB7MHgwOTQ2LCA2NCwgeyAweDAzLCAweDAyLCAweDBiLCAweDE5LCAweDc0LCAweDBkLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDg3LCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLAotICAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLAotICAweGQ4LCAweDc1LCAweDgzLCAweDBkLCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweGQxLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGNhLAotICAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDc1LCAweDgyLCAweGMzLCAweDc1LCAweDgzLCAweDBkLCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwfX0sCi0gezB4MDk4NiwgNjQsIHsgMHgwNCwgMHg3NSwgMHg4MiwgMHg5ZSwgMHg3NSwgMHg4MywgMHgwZCwgMHhmMCwgMHg3NCwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHg5OSwgMHg5MCwKLSAgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgwYiwgMHg3NSwgMHgxMSwgMHhmZiwgMHg3NSwKLSAgMHgxMiwgMHgwZCwgMHg3NSwgMHgxMywgMHhkYywgMHg4MCwgMHgxYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwYiwgMHg3NSwgMHgxMSwKLSAgMHhmZiwgMHg3NSwgMHgxMiwgMHgwZCwgMHg3NSwgMHgxMywgMHhlMCwgMHg4MCwgMHgwOSwgMHg3NSwgMHgxMSwgMHhmZiwgMHg3NSwgMHgxMiwgMHgwZH19LAotIHsweDA5YzYsIDY0LCB7IDB4NzUsIDB4MTMsIDB4ZjAsIDB4YWEsIDB4MTIsIDB4YTksIDB4MTMsIDB4YWUsIDB4MDIsIDB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsCi0gIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsCi0gIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4MDIsIDB4MGIsIDB4MjAsIDB4MTIsCi0gIDB4MGMsIDB4YjEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MTQsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTV9fSwKLSB7MHgwYTA2LCA2NCwgeyAweDE0LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLAotICAweDYwLCAweDI3LCAweDE0LCAweDYwLCAweDM0LCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDE5LCAweGEyLCAweDE3LCAweGU0LCAweDMzLAotICAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDE5LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLAotICAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDIwLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzfX0sCi0gezB4MGE0NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwKLSAgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxN319LAotIHsweDBhODYsIDY0LCB7IDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NjQsIDB4MDEsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGIsCi0gIDB4MTksIDB4YzIsIDB4MTcsIDB4MDIsIDB4MGIsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsCi0gIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODB9fSwKLSB7MHgwYWM2LCA2NCwgeyAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LAotICAweDIwLCAweGYwLCAweDgwLCAweDQ1LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDEwLCAweDI0LCAweDAyLCAweDcwLCAweDM5LAotICAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDY0LCAweDAxLCAweDcwLCAweDJhLCAweGQyLCAweDE3LCAweDgwLCAweDJkLCAweDkwLCAweDdmLCAweGVhLCAweGUwLAotICAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwfX0sCi0gezB4MGIwNiwgNjQsIHsgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwKLSAgMHgyMiwgMHhjMiwgMHgxMCwgMHhlNCwgMHhmNSwgMHgxNCwgMHhmNSwgMHgzNCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgwYywgMHhjMiwgMHgwYiwgMHhjMiwgMHgxNCwKLSAgMHhjMiwgMHgwZCwgMHhjMiwgMHgxNiwgMHhjMiwgMHgxMSwgMHhjMiwgMHgwNywgMHhjMiwgMHgxMiwgMHhjMiwgMHgwZiwgMHhjMiwgMHgwOCwgMHhmNX19LAotIHsweDBiNDYsIDY0LCB7IDB4MzUsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4NTMsIDB4ZjUsIDB4M2EsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MmYsIDB4ZjUsIDB4MmUsIDB4ZjUsIDB4MmQsCi0gIDB4ZjUsIDB4MmMsIDB4ZjUsIDB4MmIsIDB4ZjUsIDB4MmEsIDB4ZjUsIDB4MjksIDB4ZjUsIDB4MjgsIDB4ZjUsIDB4MjcsIDB4ZjUsIDB4MjYsIDB4ZjUsIDB4MjUsCi0gIDB4ZjUsIDB4MjQsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MTgsIDB4YzIsIDB4MWEsIDB4YzIsIDB4MTcsIDB4YzIsIDB4MTksIDB4YzIsIDB4MTUsIDB4YzIsIDB4MDQsCi0gIDB4ZDIsIDB4MTMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZDIsIDB4ZTh9fSwKLSB7MHgwYjg2LCA2NCwgeyAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LAotICAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLAotICAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBmLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweDc0LCAweDBlLAotICAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweGJjLCAweGQyLCAweDFiLCAweDEyLCAweDBmLCAweDVmLCAweGMyLCAweDE4LCAweDMwLCAweDA0LCAweDAzfX0sCi0gezB4MGJjNiwgNjQsIHsgMHgxMiwgMHgwNSwgMHg2ZCwgMHgzMCwgMHgwNCwgMHgyYSwgMHgzMCwgMHgwNiwgMHgyNywgMHhjMiwgMHgwNiwgMHhlNSwgMHgxNiwgMHg2MCwgMHgxNiwgMHgxNSwgMHgxNiwKLSAgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHgzMCwgMHhlNiwgMHgwNCwgMHg3ZiwgMHgwMCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5NiwKLSAgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNiwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgyMCwgMHhmMCwgMHgxMiwgMHgwYywgMHgwYiwgMHg4MCwgMHhjZCwgMHgzMCwKLSAgMHgxOCwgMHgwNywgMHhjMiwgMHgxOCwgMHgxMiwgMHgwOSwgMHgxNSwgMHg4MCwgMHhjMywgMHgzMCwgMHgxYSwgMHhjMCwgMHhjMiwgMHgxYSwgMHgxMn19LAotIHsweDBjMDYsIDY0LCB7IDB4MGYsIDB4YmIsIDB4ODAsIDB4YjksIDB4MjIsIDB4ZTUsIDB4MzEsIDB4NjAsIDB4MDIsIDB4MTUsIDB4MzEsIDB4ZTUsIDB4MzksIDB4NjAsIDB4NTUsIDB4NjUsIDB4MzUsCi0gIDB4NzAsIDB4NGIsIDB4ZTUsIDB4MzMsIDB4ZjQsIDB4NjAsIDB4MDIsIDB4MDUsIDB4MzMsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTUsIDB4NDQsIDB4NDAsIDB4NDMsCi0gIDB4YzIsIDB4YWYsIDB4MzAsIDB4MDIsIDB4MWIsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MmQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZTUsCi0gIDB4MzksIDB4ZjAsIDB4YzIsIDB4MDIsIDB4ZTQsIDB4ZjUsIDB4MzksIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MTYsIDB4ZmYsIDB4ODB9fSwKLSB7MHgwYzQ2LCA2NCwgeyAweDE5LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxLCAweDEyLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDM5LCAweGYwLCAweGQyLCAweDAyLCAweGU0LAotICAweGY1LCAweDM5LCAweGY1LCAweDMzLCAweGY1LCAweDM1LCAweDc1LCAweDE2LCAweGZmLCAweGQyLCAweGFmLCAweDgwLCAweDA2LCAweDg1LCAweDM5LCAweDM1LAotICAweGU0LCAweGY1LCAweDMzLCAweGU1LCAweDJjLCAweDYwLCAweDMwLCAweDIwLCAweDBmLCAweDA3LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDMwLCAweGUwLAotICAweDBmLCAweGU1LCAweDJkLCAweDYwLCAweDA2LCAweGU0LCAweGY1LCAweDJkLCAweDQzLCAweDM0LCAweDAxLCAweGU0LCAweGY1LCAweDMwLCAweDgwfX0sCi0gezB4MGM4NiwgNjQsIHsgMHgxNCwgMHhlNSwgMHgzMCwgMHhkMywgMHg5NSwgMHg0NSwgMHg1MCwgMHgwZCwgMHhlNSwgMHgzMCwgMHhiNSwgMHg0NSwgMHgwNiwgMHg3NSwgMHgyZCwgMHgwMSwgMHg0MywKLSAgMHgzNCwgMHgwMSwgMHgwNSwgMHgzMCwgMHhjMiwgMHgwZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkOSwgMHhlMCwgMHgzMCwgMHhlMiwgMHgwNCwgMHg3ZiwgMHgwMCwKLSAgMHg4MCwgMHgwMiwgMHg3ZiwgMHgyMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlZiwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHg3NH19LAotIHsweDBjYzYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4NzQsIDB4ODYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsCi0gIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4YzcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4NzUsIDB4OTgsIDB4NDAsIDB4NDMsIDB4YTgsIDB4MTAsCi0gIDB4OTAsIDB4N2YsIDB4ZGUsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4MGYsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MjJ9fSwKLSB7MHgwZDA2LCA2NCwgeyAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLCAweGUzLAotICAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLAotICAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LAotICAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxLCAweDkzfX0sCi0gezB4MGQ0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwKLSAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwKLSAgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwKLSAgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBkODYsIDY0LCB7IDB4MDAsIDB4MTIsIDB4MDEsIDB4MTAsIDB4MDEsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MGMsIDB4MDEsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDIsCi0gIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NDMsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDcsCi0gIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgwZGM2LCA2NCwgeyAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LAotICAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDEwLCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LAotICAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDBlLCAweDAzLCAweDUzLCAweDAwLCAweDY1LCAweDAwLCAweDcyLAotICAweDAwLCAweDY5LCAweDAwLCAweDYxLCAweDAwLCAweDZjLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDBlLCAweGEyLCAweDAwLCAweDAyLCAweDBlfX0sCi0gezB4MGUwNiwgNjQsIHsgMHg3YiwgMHgwMCwgMHgwMiwgMHgwZCwgMHg1NywgMHgwMCwgMHgwMiwgMHgwZSwgMHhjOSwgMHgwMCwgMHgwMiwgMHgwZSwgMHgxMCwgMHgwMCwgMHgwMiwgMHgwZSwgMHgxNCwKLSAgMHgwMCwgMHgwMiwgMHgwZSwgMHgxOCwgMHgwMCwgMHgwMiwgMHgwZSwgMHgxYywgMHgwMCwgMHgwMiwgMHgwZSwgMHhmMCwgMHgwMCwgMHgwMiwgMHgwZSwgMHgyNCwKLSAgMHgwMCwgMHgwMiwgMHgwZiwgMHgxNSwgMHgwMCwgMHgwMiwgMHgwZSwgMHgyYywgMHgwMCwgMHgwMiwgMHgwZiwgMHgzYSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NSwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHhlMCwgMHg0NCwgMHgwMn19LAotIHsweDBlNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmUsIDB4ZjAsIDB4MzAsIDB4MTcsIDB4MDQsIDB4N2YsIDB4ODAsIDB4ODAsIDB4MDIsIDB4N2YsCi0gIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZWYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzB9fSwKLSB7MHgwZTg2LCA2NCwgeyAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAyLCAweGYwLCAweGQyLCAweDA2LCAweGQwLCAweDg2LAotICAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLAotICAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDE4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLAotICAweDdmLCAweGFiLCAweDc0LCAweDAxLCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzfX0sCi0gezB4MGVjNiwgNjQsIHsgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwKLSAgMHgwMCwgMHhkMiwgMHgxYSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwKLSAgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwKLSAgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NH19LAotIHsweDBmMDYsIDY0LCB7IDB4MDIsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsCi0gIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4NTMsIDB4OTEsIDB4ZWYsCi0gIDB4OTAsIDB4N2YsIDB4YTksIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsCi0gIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODZ9fSwKLSB7MHgwZjQ2LCA2NCwgeyAweDc1LCAweDg2LCAweDAwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLAotICAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLAotICAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDFiLCAweDA0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDAwLAotICAweDAzLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGUwLCAweDQ0LCAweDA0LCAweGYwLCAweDIyLCAweDc0LCAweDAwfX0sCi0gezB4MGY4NiwgNjQsIHsgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHhkNiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwMCwgMHgwMywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwKLSAgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMiwgMHgxMiwgMHgwZSwgMHgzMywgMHgxMiwgMHgwZiwgMHg5NSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMH19LAotIHsweDBmYzYsICA5LCB7IDB4ZTcsIDB4MDMsIDB4MTIsIDB4MGYsIDB4YTUsIDB4MTIsIDB4MGMsIDB4YjEsIDB4MjJ9fSwKLSB7MHhmZmZmLAkwLAl7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxd19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTlxd19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwODAzZjhiLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTE5cXdfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0OCArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5cXdfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2ExOXdxX2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMTlxd19maXJtd2FyZVtdID0gewotIHsweDAwMzMsICAzLCB7IDB4MDIsIDB4MDAsIDB4MmR9fSwKLSB7MHgwMDJkLCAgNCwgeyAweDUzLCAweGQ4LCAweGVmLCAweDMyfX0sCi0gezB4MDA0NiwgMTYsIHsgMHgzMCwgMHgxMCwgMHgxOSwgMHgxMiwgMHgwZSwgMHgwZiwgMHhlZiwgMHhjMywgMHg5NSwgMHgxNCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwMCwgMHhkZiwgMHg5MH19LAotIHsweDAwNTYsIDE2LCB7IDB4N2YsIDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MTAsIDB4YzIsIDB4MGIsIDB4MDIsIDB4MDAsIDB4ZGYsIDB4MzAsIDB4MGQsIDB4M2UsIDB4OTB9fSwKLSB7MHgwMDY2LCAxNiwgeyAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDczLCAweDEyLCAweDBlLCAweDBmLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDZhLCAweDkwfX0sCi0gezB4MDA3NiwgMTYsIHsgMHg3ZSwgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHgxNCwgMHhmNSwgMHgzNiwgMHgyMCwgMHgwYiwgMHgxMX19LAotIHsweDAwODYsIDE2LCB7IDB4NjAsIDB4MGYsIDB4ZjUsIDB4MjQsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MjksIDB4N2UsIDB4NzUsIDB4MmEsIDB4NDEsIDB4MTIsIDB4MDl9fSwKLSB7MHgwMDk2LCAxNiwgeyAweDEwLCAweGMyLCAweDBkLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDc1LCAweDI2LCAweGZmLCAweDgwLCAweDNjLCAweDkwLCAweDdmLCAweGM4fX0sCi0gezB4MDBhNiwgMTYsIHsgMHhlMCwgMHgyMCwgMHhlMSwgMHgzNSwgMHgxMiwgMHgwZSwgMHgwZiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyYywgMHg5MCwgMHg3ZCwgMHhjMH19LAotIHsweDAwYjYsIDE2LCB7IDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MzYsIDB4MjAsIDB4MGIsIDB4MTEsIDB4NjAsIDB4MGZ9fSwKLSB7MHgwMGM2LCAxNiwgeyAweGY1LCAweDI0LCAweDdlLCAweDdkLCAweDdmLCAweGMxLCAweDc1LCAweDI5LCAweDdkLCAweDc1LCAweDJhLCAweGMxLCAweDEyLCAweDA5LCAweDEwLCAweGQyfX0sCi0gezB4MDBkNiwgMTYsIHsgMHgwZCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHg3NSwgMHgyNiwgMHhmZiwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwM319LAotIHsweDAwZTYsIDE2LCB7IDB4MDIsIDB4MDEsIDB4NjgsIDB4MTIsIDB4MGMsIDB4ZmYsIDB4OGYsIDB4MzYsIDB4MTIsIDB4MGUsIDB4MWIsIDB4OGYsIDB4MTEsIDB4ZTUsIDB4MzYsIDB4YzN9fSwKLSB7MHgwMGY2LCAxNiwgeyAweDk1LCAweDEzLCAweDUwLCAweDBmLCAweDEyLCAweDBkLCAweGRlLCAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDExLCAweDIwLCAweGU3LCAweDAzfX0sCi0gezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMDAzLCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwfX0sCi0gezB4MDAxMywgMTYsIHsgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMH19LAotIHsweDAwMjMsIDEwLCB7IDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDA5LCAweGM1fX0sCi0gezB4MDEwNiwgNjQsIHsgMHgzMCwgMHgxMywgMHg1ZiwgMHhjMiwgMHgxMywgMHhlNSwgMHgzNiwgMHg2MCwgMHg1OSwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgxMSwgMHgwMiwgMHhlNSwgMHgxMSwKLSAgMHgzMCwgMHhlNywgMHgyNCwgMHhlNSwgMHgzNiwgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgzNiwgMHgyMCwgMHg4NSwgMHgzNiwgMHgyNCwKLSAgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgyOSwgMHg3ZSwgMHg3NSwgMHgyYSwgMHg4MCwgMHgxMiwgMHgwYiwgMHg5YSwgMHhlNSwgMHgzNiwgMHgyNSwKLSAgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg4MCwgMHgyYSwgMHhlNSwgMHgzNiwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NX19LAotIHsweDAxNDYsIDY0LCB7IDB4MzYsIDB4M2YsIDB4ODUsIDB4MzYsIDB4MjQsIDB4OTAsIDB4N2UsIDB4ODAsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODEsIDB4NzUsIDB4MjksCi0gIDB4N2UsIDB4NzUsIDB4MmEsIDB4ODEsIDB4MTIsIDB4MDksIDB4MzUsIDB4ZTUsIDB4MzYsIDB4MDQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4NzUsIDB4MjYsCi0gIDB4ZmYsIDB4OTAsIDB4N2YsIDB4Y2UsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4MGUsIDB4MDMsIDB4MDIsIDB4MDMsIDB4YzQsIDB4ZTQsIDB4ZjUsCi0gIDB4MzUsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTV9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDM1LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5LCAweDAwLCAweDI0LCAweDAwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLAotICAweDEyLCAweDBhLCAweDk3LCAweDA1LCAweDM1LCAweGU1LCAweDM1LCAweGI0LCAweDIwLCAweGQ3LCAweDkwLCAweDdlLCAweDAwLCAweGUwLCAweDYwLCAweDZlLAotICAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLAotICAweDBjLCAweDFjLCAweDkwLCAweDdlLCAweDAyLCAweGUwLCAweGZmLCAweDEyLCAweDBjLCAweDQyLCAweGQyLCAweDExLCAweGQyLCAweDEyLCAweDc1fX0sCi0gezB4MDFjNiwgNjQsIHsgMHgzNiwgMHgwNCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwNSwgMHhjMiwgMHgxMiwgMHg0MywgMHgzNiwgMHhjMCwgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwKLSAgMHhiNCwgMHgwMSwgMHgwNywgMHhjMiwgMHgxMiwgMHg0MywgMHgzNiwgMHgwYiwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwgMHg2MCwgMHgwNywKLSAgMHhjMiwgMHgxMSwgMHg0MywgMHgzNiwgMHgwOSwgMHg4MCwgMHgwMywgMHg0MywgMHgzNiwgMHgwMiwgMHg3ZiwgMHgwMywgMHhhZCwgMHgzNiwgMHgxMiwgMHgwYywKLSAgMHhkYSwgMHg0MywgMHgxYSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxYX19LAotIHsweDAyMDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTcsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsCi0gIDB4MDUsIDB4ZTAsIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjUsIDB4MTksIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDcsIDB4ZTAsIDB4NjAsIDB4NDIsIDB4OTAsIDB4N2UsIDB4MTMsIDB4ZTAsCi0gIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTYsIDB4MDQsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MTYsIDB4ZmIsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTYsIDB4MTJ9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDBjLCAweGRhLCAweDkwLCAweDdlLCAweDA4LCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE4LCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDE4LCAweDdmLCAweDUzLAotICAweDE4LCAweGZjLCAweDkwLCAweDdlLCAweDA5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDE4LCAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLCAweDBjLAotICAweDhlLCAweDkwLCAweDdlLCAweDBiLCAweGUwLCAweGZmLCAweDEyLCAweDBjLCAweGI0LCAweGFmLCAweDE4LCAweDEyLCAweDBjLCAweDY4LCAweDkwLCAweDdlLAotICAweDBlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDFhLCAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDFhfX0sCi0gezB4MDI4NiwgNjQsIHsgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxYSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwYywgMHhlMCwKLSAgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxYSwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHgxYSwgMHhmZCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxYSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxMiwgMHhlMCwgMHhmNSwgMHgxMywKLSAgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgxNCwgMHhhMywgMHhlMCwgMHhmNSwgMHgxNCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxYX19LAotIHsweDAyYzYsIDY0LCB7IDB4MTAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MWEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MWEsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4MTksIDB4YmYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MGQsCi0gIDB4ZDIsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4MTYsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTZ9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDEyLCAweDBjLCAweGRhLCAweGU0LCAweGY1LCAweDBlLCAweGY1LCAweDBkLCAweGQyLCAweDBmLCAweDkwLCAweDdlLCAweDE3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLAotICAweDE2LCAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDE2LCAweDEyLCAweDBjLCAweGRhLCAweDc1LCAweDBkLCAweDAxLCAweGQyLCAweDBmLCAweDkwLCAweDdlLAotICAweDE4LCAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDE3LCAweDQ0LCAweDA0LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweGQyLCAweDBiLCAweDkwLCAweDdlLCAweDE5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDE5LCAweDQwLCAweDkwLCAweDdmfX0sCi0gezB4MDM0NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxYSwgMHhlMCwgMHg2MCwKLSAgMHgwZiwgMHg1MywgMHgxNiwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwgMHg3NSwgMHgwZiwgMHgwMSwgMHhkMiwgMHgwZiwKLSAgMHg5MCwgMHg3ZSwgMHgxYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgxNiwgMHgwMSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwKLSAgMHhlNCwgMHhmNSwgMHgwZiwgMHhkMiwgMHgwZiwgMHg5MCwgMHg3ZSwgMHgxYywgMHhlMCwgMHg2MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDAzODYsIDY0LCB7IDB4MTIsIDB4ZjAsIDB4ZTUsIDB4MTcsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWQsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsCi0gIDB4MTMsIDB4OTAsIDB4N2UsIDB4MWUsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MTAsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4ZDIsIDB4MGYsIDB4OTAsCi0gIDB4N2UsIDB4MWYsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTUsCi0gIDB4ZjAsIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MGQsIDB4YzIsIDB4MGUsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4MzAsIDB4MTZ9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDcxLCAweGU1LCAweDEyLCAweDYwLCAweDAyLCAweDE1LCAweDEyLCAweGU1LCAweDMwLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDMwLCAweDgwLAotICAweDYwLCAweDc1LCAweDMwLCAweDBhLCAweDEyLCAweDBkLCAweGQyLCAweGVmLCAweDU0LCAweDAxLCAweGY1LCAweDM2LCAweDY1LCAweDBlLCAweDYwLCAweDA3LAotICAweDg1LCAweDM2LCAweDBlLCAweGQyLCAweDBmLCAweDgwLCAweDExLCAweDEyLCAweDBlLCAweDI3LCAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDM2LCAweDY1LAotICAweDA5LCAweDYwLCAweDA1LCAweDg1LCAweDM2LCAweDA5LCAweGQyLCAweDBmLCAweDEyLCAweDBlLCAweDI3LCAweGVmLCAweDU0LCAweDgwLCAweGY1fX0sCi0gezB4MDQwNiwgNjQsIHsgMHgzNiwgMHg2NSwgMHgwYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgzNiwgMHgwYSwgMHhkMiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgyNywgMHhlZiwgMHg1NCwgMHgyMCwgMHhmNSwKLSAgMHgzNiwgMHg2NSwgMHgwYiwgMHg2MCwgMHgwOCwgMHg4NSwgMHgzNiwgMHgwYiwgMHgzMCwgMHgxMSwgMHgwMiwgMHhkMiwgMHgwZiwgMHgxMiwgMHgwZSwgMHgyNywKLSAgMHhlZiwgMHg1NCwgMHg0MCwgMHhmNSwgMHgzNiwgMHg2NSwgMHgwYywgMHg2MCwgMHgwOCwgMHg4NSwgMHgzNiwgMHgwYywgMHgzMCwgMHgxMiwgMHgwMiwgMHhkMiwKLSAgMHgwZiwgMHgzMCwgMHgxNiwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyMywgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMH19LAotIHsweDA0NDYsIDY0LCB7IDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MzIsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MzMsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksCi0gIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsIDB4MjksIDB4ZTUsIDB4MjcsIDB4NzAsIDB4NDAsIDB4MzAsIDB4MGYsIDB4MzksIDB4ZTUsCi0gIDB4MTIsIDB4NzAsIDB4MzUsIDB4YzIsIDB4MGYsIDB4ZjUsIDB4MzUsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MDgsIDB4MjUsIDB4MzV9fSwKLSB7MHgwNDg2LCA2NCwgeyAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBhLCAweDUxLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDM1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDM1LCAweGU1LCAweDM1LCAweGI0LCAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LAotICAweDA5LCAweGYwLCAweDc1LCAweDEyLCAweDEwLCAweGU0LCAweGY1LCAweDEwLCAweDc1LCAweDI3LCAweDAyLCAweDIyLCAweGU1LCAweDI3LCAweDY0LCAweDAyLAotICAweDcwLCAweDM2LCAweDMwLCAweDA1LCAweDJmLCAweGMyLCAweDA1LCAweGY1LCAweDM1LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJifX0sCi0gezB4MDRjNiwgNjQsIHsgMHgyNSwgMHgzNSwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwYSwgMHg1MSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgzNSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzNSwgMHhlNSwgMHgzNSwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwKLSAgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgyNywgMHgwMywgMHgyMiwgMHhlNSwgMHgzMiwgMHg2MCwgMHgzMywgMHg3NSwgMHgzMSwgMHgwMywgMHgxNSwKLSAgMHgzMiwgMHhlNCwgMHhmNSwgMHgzNSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgzMSwgMHgyNSwgMHgzNSwgMHhmOSwgMHhlZSwgMHgzNH19LAotIHsweDA1MDYsIDY0LCB7IDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGEsIDB4NTEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsCi0gIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzUsIDB4ZTUsIDB4MzUsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsCi0gIDB4ZjUsIDB4MjcsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGEsIDB4YTksIDB4MDYsIDB4MDgsIDB4MDAsIDB4MDYsIDB4N2MsIDB4MDEsCi0gIDB4MDYsIDB4ZTksIDB4MDMsIDB4MDUsIDB4NGQsIDB4MDYsIDB4MDUsIDB4ZjksIDB4MDgsIDB4MDUsIDB4ZWQsIDB4MDksIDB4MDUsIDB4ZDUsIDB4MGF9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweDA1LCAweGU0LCAweDBiLCAweDAwLCAweDAwLCAweDA3LCAweDM5LCAweDkwLCAweDdmLCAweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLAotICAweDUwLCAweDI0LCAweDAyLCAweDcwLCAweDZmLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LAotICAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLAotICAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDc0LCAweDc1LCAweDgzLCAweDE5LCAweGYwfX0sCi0gezB4MDU4NiwgNjQsIHsgMHg3NSwgMHg4MiwgMHg1OCwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywKLSAgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywKLSAgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYiwgMHgxYywgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwKLSAgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAotIHsweDA1YzYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZTUsIDB4MjUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4ZjUsIDB4MjUsIDB4MDIsIDB4MDcsIDB4NDAsIDB4MTIsIDB4MDcsIDB4NDgsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjMsIDB4MDIsCi0gIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDA3LCAweDQwLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLAotICAweGEyLCAweDAxLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA3LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLAotICAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweGU0LCAweDkwLCAweDdmLAotICAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDQwLCAweDkwLCAweDdmfX0sCi0gezB4MDY0NiwgNjQsIHsgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwKLSAgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwKLSAgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNywgMHg0MCwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZSwgMHgyNCwgMHgwMn19LAotIHsweDA2ODYsIDY0LCB7IDB4NjAsIDB4MDMsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDYsIDB4MTIsIDB4MGQsIDB4ZjksIDB4MDIsIDB4MDcsCi0gIDB4NDAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsCi0gIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsCi0gIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDkwLAotICAweDdmLCAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLAotICAweDgwLCAweDU3LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDI0LCAweDAyLCAweDcwLCAweDRiLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweDEyLCAweDBkLCAweGY2LCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0fX0sCi0gezB4MDcwNiwgNjQsIHsgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwKLSAgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMn19LAotIHsweDA3NDYsIDY0LCB7IDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsCi0gIDB4MjAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MDgsIDB4N2YsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MDgsIDB4MmYsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDB9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGZhLCAweGU0LCAweDEyLCAweDBhLCAweDk3LCAweDBmLCAweGJmLCAweDA5LCAweGVlLCAweDc1LCAweDEzLCAweDAxLCAweGU0LCAweGY1LCAweDEyLCAweGY1LCAweDMwLAotICAweGY1LCAweDExLCAweGMyLCAweDBmLCAweGMyLCAweDEzLCAweGMyLCAweDBlLCAweGMyLCAweDBiLCAweGMyLCAweDEwLCAweGMyLCAweDA0LCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDc1LCAweDE5LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LAotICAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDdmLCAweDEwLCAweDhmLCAweDE4LCAweDEyLCAweDBjLCAweDY4LCAweDkwLCAweDdmLCAweDk4LCAweDc0fX0sCi0gezB4MDdjNiwgNjQsIHsgMHgxMiwgMHhmMCwgMHg3ZiwgMHgwMSwgMHg4ZiwgMHgxNywgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgwZiwgMHhlNCwgMHhmZCwgMHgxMiwKLSAgMHgwYywgMHhkYSwgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgxNiwgMHgxMiwgMHgwYywgMHhkYSwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgwYywgMHhkYSwgMHg3ZiwKLSAgMHgwMSwgMHgxMiwgMHgwZCwgMHg2YSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgwYywgMHhkYSwgMHhlNCwgMHhmZiwgMHhlNSwgMHgxNn19LAotIHsweDA4MDYsIDY0LCB7IDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4MTIsIDB4MGUsIDB4MGYsIDB4OGYsIDB4MTUsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTYsIDB4NDQsIDB4ODAsCi0gIDB4ZmQsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4ZTUsIDB4MTUsIDB4MzAsIDB4ZTcsIDB4MDQsIDB4YzIsIDB4MDgsIDB4ODAsIDB4MDIsIDB4ZDIsIDB4MDgsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzUsIDB4MWEsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4ZDIsIDB4MDMsCi0gIDB4MjIsIDB4ZDIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MTIsIDB4MGQsIDB4ZjksIDB4ZDIsIDB4ZTh9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LAotICAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLAotICAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweDc0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweDE2LCAweDEyLCAweDBkLAotICAweDI0LCAweGMyLCAweDAyLCAweGU0LCAweGY1LCAweDI4LCAweGY1LCAweDMwLCAweGMyLCAweDA5LCAweGY1LCAweDIzLCAweGMyLCAweDAzLCAweDkwfX0sCi0gezB4MDg4NiwgNjQsIHsgMHg3ZiwgMHhhMSwgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgzNCwgMHg2MCwgMHg0OCwgMHgzMCwgMHgwMywgMHgwNSwgMHhkMiwgMHgxNiwKLSAgMHgxMiwgMHgwMCwgMHg0NiwgMHhlNSwgMHgwZiwgMHg2MCwgMHgyMiwgMHhlNSwgMHgyNiwgMHg2MCwgMHgxNiwgMHgxNSwgMHgyNiwgMHg5MCwgMHg3ZiwgMHhkOCwKLSAgMHhlMCwgMHgzMCwgMHhlNiwgMHgwNCwgMHg3ZiwgMHgyMCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgzMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlZiwgMHhmMCwgMHg4MCwKLSAgMHgxYSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHgzMCwgMHhmMCwgMHg4MCwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhkOSwgMHhlMCwgMHgzMCwgMHhlMn19LAotIHsweDA4YzYsIDY0LCB7IDB4MDQsIDB4N2YsIDB4MzAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsCi0gIDB4MzQsIDB4ODAsIDB4MjAsIDB4MzAsIDB4MDMsIDB4MDcsIDB4YzIsIDB4MTYsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MTYsIDB4ZTUsIDB4MGYsIDB4NzAsCi0gIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDksIDB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDQsIDB4N2YsIDB4MzAsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MjAsIDB4OTAsIDB4N2YsCi0gIDB4OTYsIDB4ZWYsIDB4ZjAsIDB4MzAsIDB4MDIsIDB4MDcsIDB4YzIsIDB4MDIsIDB4MTIsIDB4MDUsIDB4MmEsIDB4ODAsIDB4ODYsIDB4MzAsIDB4MGF9fSwKLSB7MHgwOTA2LCA2NCwgeyAweDgzLCAweGMyLCAweDBhLCAweDEyLCAweDBiLCAweDVkLCAweDAyLCAweDA4LCAweDhhLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLAotICAweDI0LCAweGU1LCAweDJhLCAweGY1LCAweDgyLCAweGU1LCAweDI5LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLAotICAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDI0LCAweGU1LCAweDJhLCAweGY1LCAweDgyLCAweGU1LCAweDI5LCAweGY1LCAweDgzLCAweGMyfX0sCi0gezB4MDk0NiwgNjQsIHsgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwKLSAgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgyNCwgMHhlNSwgMHgyYSwgMHhmNSwgMHg4MiwgMHhlNSwKLSAgMHgyOSwgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwKLSAgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZn19LAotIHsweDA5ODYsIDY0LCB7IDB4MjQsIDB4ZTUsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MjksIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsCi0gIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsCi0gIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4Nzh9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDM5LCAweDAyLCAweDBhLCAweDBjLCAweDAyLCAweDA4LCAweDM4LCAweGU0LCAweDkzLCAweGEzLAotICAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LAotICAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LAotICAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyfX0sCi0gezB4MGEwNiwgNjQsIHsgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHgwZCwgMHg4YiwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwKLSAgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwKLSAgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4Mn19LAotIHsweDBhNDYsIDY0LCB7IDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsCi0gIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsCi0gIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjV9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLAotICAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLAotICAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLAotICAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LCAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyfX0sCi0gezB4MGFjNiwgNjQsIHsgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywKLSAgMHg3NCwgMHgyMCwgMHhmMCwgMHgzMCwgMHgwMSwgMHgwMywgMHhmZiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlZiwgMHhmMCwKLSAgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwKLSAgMHgzMCwgMHgwOCwgMHgxMSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBiMDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MjAsIDB4ZjAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4MjIsIDB4OGYsIDB4MzUsIDB4ZTQsIDB4ZjUsIDB4MzYsIDB4NzUsIDB4MzcsIDB4ZmYsIDB4NzUsIDB4MzgsIDB4MTksCi0gIDB4NzUsIDB4MzksIDB4ODYsIDB4YWIsIDB4MzcsIDB4YWEsIDB4MzgsIDB4YTksIDB4MzksIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MGEsIDB4NmEsIDB4YjQsCi0gIDB4MDMsIDB4MWQsIDB4YWYsIDB4MzYsIDB4MDUsIDB4MzYsIDB4ZWYsIDB4YjUsIDB4MzUsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGEsIDB4NTEsIDB4N2V9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDAwLCAweDI5LCAweGZmLCAweGVlLCAweDNhLCAweGE5LCAweDA3LCAweDc1LCAweDM3LCAweGZmLCAweGY1LCAweDM4LCAweDg5LCAweDM5LCAweDgwLCAweGQ0LCAweDdiLAotICAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDM1LCAweDEyLCAweDBhLCAweGNmLCAweDIwLAotICAweDA4LCAweDA3LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLAotICAweDEyLCAweDA5LCAweGI1LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDBlLCAweDMwLCAweDAxLCAweDA1LCAweDEyLCAweDBkfX0sCi0gezB4MGI4NiwgNjQsIHsgMHhiYywgMHg4MCwgMHgwNiwgMHgxMiwgMHgwZCwgMHg0OSwgMHhlZiwgMHg2MCwgMHhlMSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgxMiwKLSAgMHgwNywgMHg0OCwgMHgyMiwgMHgwNSwgMHgyYSwgMHhlNSwgMHgyYSwgMHhhZSwgMHgyOSwgMHg3MCwgMHgwMiwgMHgwNSwgMHgyOSwgMHgxNCwgMHhmNSwgMHg4MiwKLSAgMHg4ZSwgMHg4MywgMHhlNSwgMHgxMSwgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHgwNSwgMHgyYSwgMHhlNSwgMHgyYSwgMHhhYywgMHgyOSwgMHg3MCwgMHgwMiwKLSAgMHgwNSwgMHgyOSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgyNCwgMHhlNSwgMHgyNCwgMHg2MCwgMHgwN319LAotIHsweDBiYzYsIDY0LCB7IDB4MTIsIDB4MGUsIDB4MWIsIDB4OGYsIDB4MTEsIDB4ODAsIDB4Y2QsIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsCi0gIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsCi0gIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsCi0gIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MGF9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLAotICAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0fX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNX19LAotIHsweDBjODYsIDY0LCB7IDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjB9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE5LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDBkLCAweGVhLCAweDhmLCAweDM3LCAweDEyLCAweDBkfX0sCi0gezB4MGQwNiwgNjQsIHsgMHhlYSwgMHg4ZiwgMHgzOCwgMHhlNSwgMHgzNywgMHg2NSwgMHgzOCwgMHg2MCwgMHgxMiwgMHgxMiwgMHgwZCwgMHhlYSwgMHg4ZiwgMHgzNywgMHhlNSwgMHgzNywgMHg2NSwKLSAgMHgzOCwgMHg2MCwgMHgwNywgMHgxMiwgMHgwZCwgMHhlYSwgMHg4ZiwgMHgzOCwgMHg4MCwgMHhlOCwgMHhhZiwgMHgzNywgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwKLSAgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxNiwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwKLSAgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwZCwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NH19LAotIHsweDBkNDYsIDY0LCB7IDB4MDQsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MzYsIDB4MTIsIDB4MDcsIDB4NDgsIDB4MTIsIDB4MGUsIDB4MjcsIDB4ZWYsIDB4MzAsCi0gIDB4ZTYsIDB4MGIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MzYsIDB4NjAsIDB4ZjEsIDB4N2YsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MGEsIDB4Y2YsCi0gIDB4N2YsIDB4MDAsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTYsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MGMsIDB4ZGEsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4MTYsIDB4NDQsIDB4ODB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweGZkLCAweDEyLCAweDBjLCAweGRhLCAweDIyLCAweDA1LCAweDJiLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDMxLCAweDAzLCAweDAwLCAweDAwLAotICAweGMxLCAweDg2LCAweGMxLCAweDAyLCAweGMxLCAweDBhLCAweGMxLCAweDAxLCAweGMxLCAweDA3LCAweDAxLCAweDI3LCAweDAwLCAweDAwLCAweDhlLCAweDM2LAotICAweDhmLCAweDM3LCAweGU1LCAweDM3LCAweDE1LCAweDM3LCAweGFlLCAweDM2LCAweDcwLCAweDAyLCAweDE1LCAweDM2LCAweDRlLCAweDYwLCAweDA1LCAweDEyLAotICAweDA5LCAweGE0LCAweDgwLCAweGVlLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLCAweDdlfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgwMCwgMHgxMiwgMHgwZCwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwKLSAgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhkMiwKLSAgMHgwMSwgMHgyMiwgMHhjMiwgMHgwMSwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwYiwgMHhjZSwgMHgwMCwgMHgwMiwgMHgwZX19LAotIHsweDBlMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDIsIDB4MGIsIDB4ZjUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTAwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTBjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTI0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTMwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTNjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxOGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCi0gezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgxOSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKLSAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAotIHsweDFhMDYsICA0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHhmZmZmLCAwLAl7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMTl3X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXdfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzVkNjE5MS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2ExOXdfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0NiArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTE5d19mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTE5d19mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0qLwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGV6dXNiX2hleF9yZWNvcmQga2V5c3Bhbl91c2ExOXdfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDBkLCAweDVjfX0sCi0gezB4MDAwMywgMTYsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAotIHsweDAwMTMsIDE2LCB7IDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwMDIzLCAxNSwgeyAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDE3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyfX0sCi0gezB4MDA0NiwgMTYsIHsgMHgzMCwgMHgwZiwgMHgxOCwgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NSwgMHgxNCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwMCwgMHhkOCwgMHg5MH19LAotIHsweDAwNTYsIDE2LCB7IDB4N2YsIDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGYsIDB4YzIsIDB4MGEsIDB4ODAsIDB4NzcsIDB4MzAsIDB4MGMsIDB4M2IsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMDY2LCAxNiwgeyAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDBkLCAweDM4LCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdlfX0sCi0gezB4MDA3NiwgMTYsIHsgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHgxNCwgMHhmNSwgMHgxYywgMHgyMCwgMHgwYSwgMHgxMSwgMHg2MH19LAotIHsweDAwODYsIDE2LCB7IDB4MGYsIDB4ZjUsIDB4MjMsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MjcsIDB4N2UsIDB4NzUsIDB4MjgsIDB4NDEsIDB4MTIsIDB4MDgsIDB4MDF9fSwKLSB7MHgwMDk2LCAxNiwgeyAweGMyLCAweDBjLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDMyfX0sCi0gezB4MDBhNiwgMTYsIHsgMHgxMiwgMHgwZCwgMHgzOCwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwZn19LAotIHsweDAwYjYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MWMsIDB4MjAsIDB4MGEsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MjMsIDB4N2UsIDB4N2R9fSwKLSB7MHgwMGM2LCAxNiwgeyAweDdmLCAweGMxLCAweDc1LCAweDI3LCAweDdkLCAweDc1LCAweDI4LCAweGMxLCAweDEyLCAweDA4LCAweDAxLCAweGQyLCAweDBjLCAweGU0LCAweDkwLCAweDdmfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHg1ZSwgMHgxMiwgMHgwYywgMHg0MSwgMHg4Zn19LAotIHsweDAwZTYsIDE2LCB7IDB4MWMsIDB4MTIsIDB4MGQsIDB4NDQsIDB4OGYsIDB4MTEsIDB4ZTUsIDB4MWMsIDB4YzMsIDB4OTUsIDB4MTMsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MGQsIDB4MjB9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDExLCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDEyLCAweDVjLCAweGMyLCAweDEyLCAweGU1LCAweDFjfX0sCi0gezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MGUsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDA4LCAweGI2fX0sCi0gezB4MDEwNiwgNjQsIHsgMHg2MCwgMHg1NiwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgxMSwgMHgwMiwgMHhlNSwgMHgxMSwgMHgzMCwgMHhlNywgMHgyNCwgMHhlNSwgMHgxYywgMHhkMywgMHg5NCwKLSAgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxYywgMHgyMCwgMHg4NSwgMHgxYywgMHgyMywgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgyNywgMHg3ZSwKLSAgMHg3NSwgMHgyOCwgMHg4MCwgMHgxMiwgMHgwYSwgMHg4NiwgMHhlNSwgMHgxYywgMHgyNSwgMHgxYywgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHg4MCwgMHgyNywKLSAgMHhlNSwgMHgxYywgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxYywgMHgzZiwgMHg4NSwgMHgxYywgMHgyMywgMHg5MCwgMHg3ZX19LAotIHsweDAxNDYsIDY0LCB7IDB4ODAsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODEsIDB4NzUsIDB4MjcsIDB4N2UsIDB4NzUsIDB4MjgsIDB4ODEsIDB4MTIsIDB4MDgsIDB4MjYsCi0gIDB4ZTUsIDB4MWMsIDB4MDQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2UsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4MGQsCi0gIDB4MDMsIDB4MDIsIDB4MDMsIDB4YmEsIDB4ZTQsIDB4ZjUsIDB4MWIsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MWIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MWIsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2EsIDB4N2UsIDB4NzksIDB4MDAsIDB4MjR9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDAwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLCAweDEyLCAweDBhLCAweDBkLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LCAweDIwLCAweGQ3LAotICAweDkwLCAweDdlLCAweDAwLCAweGUwLCAweDYwLCAweDZlLCAweDdmLCAweDAxLCAweDkwLCAweDdlLCAweDExLCAweGUwLCAweGZkLCAweDEyLCAweDBjLCAweDFjLAotICAweDkwLCAweDdlLCAweDAxLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweDVlLCAweDkwLCAweDdlLCAweDAyLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweDg0LAotICAweGQyLCAweDEwLCAweGQyLCAweDExLCAweDc1LCAweDFjLCAweDA0LCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDA1LCAweGMyLCAweDExfX0sCi0gezB4MDFjNiwgNjQsIHsgMHg0MywgMHgxYywgMHhjMCwgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNywgMHhjMiwgMHgxMSwgMHg0MywgMHgxYywgMHgwYiwgMHg4MCwgMHgxMCwKLSAgMHg5MCwgMHg3ZSwgMHgwNCwgMHhlMCwgMHg2MCwgMHgwNywgMHhjMiwgMHgxMCwgMHg0MywgMHgxYywgMHgwOSwgMHg4MCwgMHgwMywgMHg0MywgMHgxYywgMHgwMiwKLSAgMHg3ZiwgMHgwMywgMHhhZCwgMHgxYywgMHgxMiwgMHgwYywgMHgxYywgMHg0MywgMHgxOSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0NH19LAotIHsweDAyMDYsIDY0LCB7IDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDUsIDB4ZTAsIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjUsIDB4MTgsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTgsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDcsIDB4ZTAsCi0gIDB4NjAsIDB4NDIsIDB4OTAsIDB4N2UsIDB4MTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTUsIDB4MDQsIDB4ODAsIDB4MDMsIDB4NTMsIDB4MTUsIDB4ZmIsCi0gIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4OTAsIDB4N2UsIDB4MDgsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4MTd9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDE3LCAweDdmLCAweDUzLCAweDE3LCAweGZjLCAweDkwLCAweDdlLCAweDA5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDE3LAotICAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweGQwLCAweDkwLCAweDdlLCAweDBiLCAweGUwLCAweGZmLCAweDEyLCAweDBiLCAweGY2LCAweGFmLAotICAweDE3LCAweDEyLCAweDBiLCAweGFhLCAweDkwLCAweDdlLCAweDBlLCAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDE5LAotICAweDAxLCAweDgwLCAweDAzLCAweDUzLCAweDE5LCAweGZlLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwfX0sCi0gezB4MDI4NiwgNjQsIHsgMHhlNSwgMHgxOSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwYywgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwgMHgwMiwgMHg4MCwKLSAgMHgwMywgMHg1MywgMHgxOSwgMHhmZCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHgxOSwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgxMiwgMHhlMCwgMHhmNSwgMHgxMywgMHhhMywgMHhlMCwgMHgxMywgMHg5MiwgMHgxMywgMHhhMywgMHhlMCwgMHhmNSwgMHgxNCwgMHhhMywKLSAgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHgxOSwgMHgxMCwgMHg4MCwgMHgwMywgMHg1MywgMHgxOSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NH19LAotIHsweDAyYzYsIDY0LCB7IDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4MTgsIDB4YmYsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MGQsIDB4MTQsIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4MTUsCi0gIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4MTUsIDB4MTIsIDB4MGMsIDB4MWMsIDB4ZTQsIDB4ZjUsIDB4MGUsIDB4ZjUsIDB4MGQsIDB4ZDIsIDB4MGV9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDkwLCAweDdlLCAweDE3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDE1LCAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDE1LCAweDEyLCAweDBjLCAweDFjLCAweDc1LAotICAweDBkLCAweDAxLCAweGQyLCAweDBlLCAweDkwLCAweDdlLCAweDE4LCAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLAotICAweGU1LCAweDE2LCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGQyLCAweDBhLCAweDkwLCAweDdlLCAweDE5LCAweGUwLCAweDYwLCAweDExLAotICAweDQzLCAweDE4LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwfX0sCi0gezB4MDM0NiwgNjQsIHsgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg1MywgMHgxNSwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywKLSAgMHgxYywgMHg3NSwgMHgwZiwgMHgwMSwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgxNSwgMHgwMSwgMHhlNCwKLSAgMHhmZiwgMHhhZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHhlNCwgMHhmNSwgMHgwZiwgMHhkMiwgMHgwZSwgMHg5MCwgMHg3ZSwgMHgxYywgMHhlMCwgMHg2MCwKLSAgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMH19LAotIHsweDAzODYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4MWQsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MWUsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MTAsIDB4MDEsCi0gIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2UsIDB4MWYsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsCi0gIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MGMsIDB4YzIsIDB4MGQsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4MzAsIDB4MTUsIDB4NzEsIDB4ZTUsIDB4MTIsIDB4NjAsIDB4MDIsIDB4MTUsIDB4MTIsIDB4ZTUsIDB4MmUsIDB4ZDN9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDJlLCAweDgwLCAweDYwLCAweDc1LCAweDJlLCAweDBhLCAweDEyLCAweDBkLCAweDE0LCAweGVmLCAweDU0LCAweDAxLAotICAweGY1LCAweDFjLCAweDY1LCAweDBlLCAweDYwLCAweDA3LCAweDg1LCAweDFjLCAweDBlLCAweGQyLCAweDBlLCAweDgwLCAweDExLCAweDEyLCAweDBkLCAweDUwLAotICAweGVmLCAweDU0LCAweDEwLCAweGY1LCAweDFjLCAweDY1LCAweDA5LCAweDYwLCAweDA1LCAweDg1LCAweDFjLCAweDA5LCAweGQyLCAweDBlLCAweDEyLCAweDBkLAotICAweDUwLCAweGVmLCAweDU0LCAweDgwLCAweGY1LCAweDFjLCAweDY1LCAweDBhLCAweDYwLCAweDA1LCAweDg1LCAweDFjLCAweDBhLCAweGQyLCAweDBlfX0sCi0gezB4MDQwNiwgNjQsIHsgMHgxMiwgMHgwZCwgMHg1MCwgMHhlZiwgMHg1NCwgMHgyMCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYiwgMHg2MCwgMHgwOCwgMHg4NSwgMHgxYywgMHgwYiwgMHgzMCwgMHgxMCwKLSAgMHgwMiwgMHhkMiwgMHgwZSwgMHgxMiwgMHgwZCwgMHg1MCwgMHhlZiwgMHg1NCwgMHg0MCwgMHhmNSwgMHgxYywgMHg2NSwgMHgwYywgMHg2MCwgMHgwOCwgMHg4NSwKLSAgMHgxYywgMHgwYywgMHgzMCwgMHgxMSwgMHgwMiwgMHhkMiwgMHgwZSwgMHgzMCwgMHgxNSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwKLSAgMHgyMywgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHg2MCwgMHgwOSwgMHhlMCwgMHhmNSwgMHgzMCwgMHg5MCwgMHg3YiwgMHg0MiwgMHhlMCwgMHhmNX19LAotIHsweDA0NDYsIDY0LCB7IDB4MzEsIDB4OTAsIDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsCi0gIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDUsIDB4MWYsIDB4ZTUsIDB4MjUsCi0gIDB4NzAsIDB4NDAsIDB4MzAsIDB4MGUsIDB4MzksIDB4ZTUsIDB4MTIsIDB4NzAsIDB4MzUsIDB4YzIsIDB4MGUsIDB4ZjUsIDB4MWIsIDB4N2UsIDB4MDAsIDB4N2IsCi0gIDB4MDAsIDB4NzQsIDB4MDgsIDB4MjUsIDB4MWIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MDksIDB4YzcsIDB4ZmYsIDB4NzR9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDgwLCAweDI1LCAweDFiLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDFiLCAweGU1LCAweDFiLCAweGI0LAotICAweDA5LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDEyLCAweDEwLCAweGU0LCAweGY1LCAweDEwLCAweDc1LCAweDI1LAotICAweDAyLCAweDIyLCAweGU1LCAweDI1LCAweDY0LCAweDAyLCAweDcwLCAweDM2LCAweDMwLCAweDA1LCAweDJmLCAweGMyLCAweDA1LCAweGY1LCAweDFiLCAweDdlLAotICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI5LCAweDI1LCAweDFiLCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDA5LCAweGM3fX0sCi0gezB4MDRjNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxYiwgMHhlNSwKLSAgMHgxYiwgMHhiNCwgMHgwNSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwNSwgMHhmMCwgMHg3NSwgMHgyNSwgMHgwMywgMHgyMiwgMHhlNSwgMHgzMCwKLSAgMHg2MCwgMHgzMywgMHg3NSwgMHgyZiwgMHgwMywgMHgxNSwgMHgzMCwgMHhlNCwgMHhmNSwgMHgxYiwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZiwKLSAgMHgyNSwgMHgxYiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgwOSwgMHhjNywgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxYn19LAotIHsweDA1MDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MWIsIDB4ZTUsIDB4MWIsIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTAsCi0gIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MjUsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MTIsIDB4MGEsIDB4MWYsCi0gIDB4MDUsIDB4ZjYsIDB4MDAsIDB4MDYsIDB4NmEsIDB4MDEsIDB4MDYsIDB4ZDcsIDB4MDMsIDB4MDUsIDB4NDMsIDB4MDYsIDB4MDUsIDB4ZTksIDB4MDgsIDB4MDUsCi0gIDB4ZTMsIDB4MDksIDB4MDUsIDB4Y2IsIDB4MGEsIDB4MDUsIDB4ZGEsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MjcsIDB4OTAsIDB4N2YsIDB4ZWJ9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLCAweDUwLCAweDI0LCAweDAyLCAweDcwLCAweDZmLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LAotICAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDA0LAotICAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLAotICAweDc0LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhfX0sCi0gezB4MDU4NiwgNjQsIHsgMHhlMCwgMHgwNCwgMHg3NSwgMHg4MiwgMHgxNywgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgxMiwKLSAgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYSwgMHg0NSwgMHhlYSwKLSAgMHg0OSwgMHg2MCwgMHgwZCwgMHhlYSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHhlOSwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NH19LAotIHsweDA1YzYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZjUsIDB4MjQsIDB4MDIsIDB4MDcsIDB4MmUsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MDIsCi0gIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsCi0gIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTJ9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDAxLCAweGU0LCAweDMzLCAweGZmLCAweDI1LCAweGUwLCAweGZmLCAweGEyLCAweDA3LCAweGU0LCAweDMzLCAweDRmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweGU0LCAweDkwLCAweDdmLCAweDAwLCAweGYwLAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA3LCAweDJlLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAotICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0fX0sCi0gezB4MDY0NiwgNjQsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHgwMiwgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwKLSAgMHgwNywgMHgyZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNiwgMHgxMiwgMHgwZCwgMHg2MywgMHgwMiwgMHgwNywgMHgyZX19LAotIHsweDA2ODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDcsIDB4MmUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsCi0gIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsCi0gIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsCi0gIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwNmM2LCA2NCwgeyAweGQ3LCAweGYwLCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweDgwLCAweDYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDU3LAotICAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE5LCAweDI0LCAweDAyLCAweDcwLCAweDRiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLAotICAweGI0LCAweDAxLCAweDA1LCAweDEyLCAweDBkLCAweDYwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLAotICAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmfX0sCi0gezB4MDcwNiwgNjQsIHsgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwKLSAgMHhmNSwgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNCwKLSAgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAotIHsweDA3NDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTgsCi0gIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4ZTQsIDB4ZjUsCi0gIDB4MDgsIDB4N2YsIDB4MDEsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MDgsIDB4MmYsIDB4ZjksIDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGEsCi0gIDB4MGQsIDB4MGYsIDB4YmYsIDB4MDksIDB4ZWUsIDB4NzUsIDB4MTMsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4ZjUsIDB4MmUsIDB4ZjUsIDB4MTF9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGMyLCAweDBlLCAweGMyLCAweDEyLCAweGMyLCAweDBkLCAweGMyLCAweDBhLCAweGMyLCAweDBmLCAweGMyLCAweDA0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLAotICAweGYwLCAweDc1LCAweDE4LCAweDAzLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDAzLCAweGYwLCAweDdmLCAweDBjLCAweGU0LCAweGZkLCAweDEyLCAweDBjLAotICAweDFjLCAweDdmLCAweDEwLCAweDhmLCAweDE3LCAweDEyLCAweDBiLCAweGFhLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLAotICAweDhmLCAweDE2LCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDBjLCAweDFjfX0sCi0gezB4MDdjNiwgNjQsIHsgMHhlNCwgMHhmZiwgMHg3ZSwgMHhhMywgMHhhZCwgMHgwNiwgMHg4ZCwgMHgxNSwgMHgxMiwgMHgwYywgMHgxYywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgwYywgMHgxYywgMHg3ZiwgMHgwMSwgMHgxMiwgMHgwYywKLSAgMHhhYywgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgwYywgMHgxYywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NSwgMHgxOSwKLSAgMHg4MCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHg4MCwgMHhmMCwgMHhkMiwgMHgwMywgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMH19LAotIHsweDA4MDYsIDY0LCB7IDB4ZjAsIDB4YWYsIDB4MjMsIDB4ZTUsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MjcsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YWYsIDB4MjMsIDB4ZTUsIDB4MjgsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MjcsIDB4ZjUsIDB4ODMsIDB4YzIsCi0gIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4Zjd9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLCAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLAotICAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LAotICAweDg2LCAweGYwLCAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweGFmLAotICAweDIzLCAweGU1LCAweDI4LCAweGY1LCAweDgyLCAweGU1LCAweDI3LCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwfX0sCi0gezB4MDg4NiwgNjQsIHsgMHgwMCwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg3NCwgMHgwMCwKLSAgMHhmNSwgMHg4NiwgMHg5MCwgMHhmZCwgMHhhNSwgMHg3YywgMHgwNSwgMHhhMywgMHhlNSwgMHg4MiwgMHg0NSwgMHg4MywgMHg3MCwgMHhmOSwgMHgyMiwgMHg5MCwKLSAgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHg3OCwKLSAgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzMSwgMHgwMiwgMHgwOCwgMHhmZCwgMHgwMiwgMHgwOSwgMHg0MiwgMHhlNH19LAotIHsweDA4YzYsIDY0LCB7IDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksCi0gIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsCi0gIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsCi0gIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MGMsIDB4Y2QsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmN9fSwKLSB7MHgwOTA2LCA2NCwgeyAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLAotICAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LAotICAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLAotICAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweGQyLCAweDE0LCAweDkwLCAweDdmfX0sCi0gezB4MDk0NiwgNjQsIHsgMHg5MiwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgxMiwgMHgwZCwgMHg2MywgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhhZSwgMHg3NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwgMHgxNSwgMHgxMiwgMHgwYywgMHg2NiwgMHhjMiwgMHgwMiwgMHhlNCwgMHhmNX19LAotIHsweDA5ODYsIDY0LCB7IDB4MjYsIDB4ZjUsIDB4MmUsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MDMsIDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsCi0gIDB4MWEsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MDMsIDB4MDUsIDB4ZDIsIDB4MTUsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsCi0gIDB4MWEsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MDMsIDB4MDUsIDB4YzIsIDB4MTUsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MDIsIDB4MDcsIDB4YzIsIDB4MDIsCi0gIDB4MTIsIDB4MDUsIDB4MjAsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MDksIDB4ZDMsIDB4YzIsIDB4MDksIDB4MTIsIDB4MGEsIDB4YmEsIDB4ODAsIDB4Y2N9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDAyLCAweGU3LCAweDIyLCAweGJiLCAweGZlLCAweDAyLAotICAweGUzLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LAotICAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLAotICAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1fX0sCi0gezB4MGEwNiwgNjQsIHsgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhmMCwgMHgyMiwgMHg1MCwKLSAgMHgwMiwgMHhmNywgMHgyMiwgMHhiYiwgMHhmZSwgMHgwMSwgMHhmMywgMHgyMiwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwKLSAgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwKLSAgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4Zn19LAotIHsweDBhNDYsIDY0LCB7IDB4MWIsIDB4ZTQsIDB4ZjUsIDB4MWMsIDB4NzUsIDB4MWQsIDB4ZmYsIDB4NzUsIDB4MWUsIDB4MTksIDB4NzUsIDB4MWYsIDB4ODYsIDB4YWIsIDB4MWQsIDB4YWEsIDB4MWUsCi0gIDB4YTksIDB4MWYsIDB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4MDksIDB4ZTAsIDB4YjQsIDB4MDMsIDB4MWQsIDB4YWYsIDB4MWMsIDB4MDUsIDB4MWMsIDB4ZWYsCi0gIDB4YjUsIDB4MWIsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MDksIDB4YzcsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsCi0gIDB4MWQsIDB4ZmYsIDB4ZjUsIDB4MWUsIDB4ODksIDB4MWYsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjJ9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDA1LCAweDI4LCAweGU1LCAweDI4LCAweGFlLCAweDI3LCAweDcwLCAweDAyLCAweDA1LCAweDI3LCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDExLAotICAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweDA1LCAweDI4LCAweGU1LCAweDI4LCAweGFjLCAweDI3LCAweDcwLCAweDAyLCAweDA1LCAweDI3LCAweDE0LCAweGY1LAotICAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDIzLCAweGU1LCAweDIzLCAweDYwLCAweDA3LCAweDEyLCAweDBkLCAweDQ0LCAweDhmLCAweDExLAotICAweDgwLCAweGNkLCAweDIyLCAweDkwLCAweDdmLCAweGQ4LCAweGUwLCAweGY1LCAweDFiLCAweDEyLCAweDAwLCAweDAzLCAweDkwLCAweDdmLCAweGQ2fX0sCi0gezB4MGFjNiwgNjQsIHsgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHgxMiwgMHgwOCwgMHhhNiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwZSwgMHgzMCwgMHgwMSwgMHgwNSwKLSAgMHgxMiwgMHgwYywgMHhmZSwgMHg4MCwgMHgwNiwgMHgxMiwgMHgwYywgMHg4YiwgMHhlZiwgMHg2MCwgMHhlMSwgMHgxMiwgMHgwNywgMHgzNiwgMHgyMiwgMHhjMCwKLSAgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwKLSAgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMH19LAotIHsweDBiMDYsIDY0LCB7IDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsCi0gIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDB9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweGQyLCAweDA5LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4LCAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LAotICAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmfX0sCi0gezB4MGI4NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHgxOCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDBiYzYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzR9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLAotICAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDE4LCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDBkLCAweDJjLCAweDhmLCAweDFkfX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZSwgMHhlNSwgMHgxZCwgMHg2NSwgMHgxZSwgMHg2MCwgMHgxMiwgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZCwgMHhlNSwKLSAgMHgxZCwgMHg2NSwgMHgxZSwgMHg2MCwgMHgwNywgMHgxMiwgMHgwZCwgMHgyYywgMHg4ZiwgMHgxZSwgMHg4MCwgMHhlOCwgMHhhZiwgMHgxZCwgMHgyMiwgMHg5MCwKLSAgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxNSwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwKLSAgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgwYywgMHhlNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH19LAotIHsweDBjODYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MWMsIDB4MTIsIDB4MDcsIDB4MzYsIDB4MTIsIDB4MGQsIDB4NTAsCi0gIDB4ZWYsIDB4MzAsIDB4ZTYsIDB4MGIsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MWMsIDB4NjAsIDB4ZjEsIDB4N2YsIDB4MDEsIDB4MjIsIDB4MTIsCi0gIDB4MDAsIDB4MDMsIDB4N2YsIDB4MDAsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MGMsCi0gIDB4MWMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4MTV9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDQ0LCAweDgwLCAweGZkLCAweDEyLCAweDBjLCAweDFjLCAweDIyLCAweDA1LCAweDI5LCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDJmLCAweDAzLAotICAweDAwLCAweDAwLCAweGMxLCAweDg2LCAweGMxLCAweDAyLCAweGMxLCAweDA5LCAweGMxLCAweDAxLCAweGMxLCAweDA3LCAweDAxLCAweDI1LCAweDAwLCAweDAwLAotICAweDhlLCAweDFjLCAweDhmLCAweDFkLCAweGU1LCAweDFkLCAweDE1LCAweDFkLCAweGFlLCAweDFjLCAweDcwLCAweDAyLCAweDE1LCAweDFjLCAweDRlLCAweDYwLAotICAweDA1LCAweDEyLCAweDA4LCAweDk1LCAweDgwLCAweGVlLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmfX0sCi0gezB4MGQwNiwgNjQsIHsgMHgwZCwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwYywgMHhlNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwKLSAgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDBkNDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzIsIDB4ZDIsIDB4MDEsIDB4MjIsIDB4YzIsIDB4MDEsIDB4MjIsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwYiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgwZX19LAotIHsweDBlMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZTYsIDB4MDAsIDB4MDIsIDB4MGIsIDB4MzcsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGU4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBlYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MGY0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDBmODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTAwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEwNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMDg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTBjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExMDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDExYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMjA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTI0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEyODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMmM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTMwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzNDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMzg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTNjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxOGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCi0gezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwOCwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKLSAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAotIHsweDFhMDYsICA0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHhmZmZmLAkwLAl7MHgwMH0gfQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOF9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDhiMGEyLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4X2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NjYgKzAsMCBAQAotLyoga2V5c3Bhbl91c2EyOF9mdy5oCi0KLQlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBhcyBrZXlzcGFuX3VzYTI4X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMjhfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDI2LCAxMCwgeyAweDEyLCAweDE3LCAweGRiLCAweDEyLCAweDE4LCAweGI1LCAweDEyLCAweDE0LCAweGMzLCAweDIyfX0sCi0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgwMCwgMHgxZH19LAotIHsweDAwMWQsICA0LCB7IDB4NTMsIDB4ZDgsIDB4ZWYsIDB4MzJ9fSwKLSB7MHgwMDA2LCAxNiwgeyAweDhlLCAweDEyLCAweDhmLCAweDEzLCAweGU1LCAweDEzLCAweDE1LCAweDEzLCAweGFlLCAweDEyLCAweDcwLCAweDAyLCAweDE1LCAweDEyLCAweDRlLCAweDYwfX0sCi0gezB4MDAxNiwgIDcsIHsgMHgwNSwgMHgxMiwgMHgxOCwgMHhhNCwgMHg4MCwgMHhlZSwgMHgyMn19LAotIHsweDAwMDMsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgzMCwgMHg5OSwgMHgwZSwgMHgzMCwgMHgxMSwgMHgwNywgMHhhMiwgMHgxNywgMHg5MiwgMHg5YiwgMHg4NSwgMHg0NiwgMHg5OSwgMHhjMiwgMHg5OSwgMHhkMn19LAotIHsweDAwNjYsIDE2LCB7IDB4MWYsIDB4MzAsIDB4YzEsIDB4MGUsIDB4MzAsIDB4MTIsIDB4MDcsIDB4YTIsIDB4MTgsIDB4OTIsIDB4YzMsIDB4ODUsIDB4NDcsIDB4YzEsIDB4YzIsIDB4YzF9fSwKLSB7MHgwMDc2LCAxNiwgeyAweGQyLCAweDIwLCAweDIwLCAweDFmLCAweDAzLCAweDAyLCAweDA0LCAweDQyLCAweGMyLCAweDFmLCAweDIwLCAweDAzLCAweDAzLCAweDAyLCAweDAyLCAweDY3fX0sCi0gezB4MDA4NiwgMTYsIHsgMHgyMCwgMHgxMSwgMHgwMywgMHgwMiwgMHgwMSwgMHgzOCwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgzZSwgMHgyMCwgMHgxMywgMHgzNn19LAotIHsweDAwOTYsIDE2LCB7IDB4MjAsIDB4MGIsIDB4MzMsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4MjksIDB4MzAsIDB4MWIsIDB4MTJ9fSwKLSB7MHgwMGE2LCAxNiwgeyAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzfX0sCi0gezB4MDBiNiwgMTYsIHsgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4M319LAotIHsweDAwYzYsIDE2LCB7IDB4ZTAsIDB4ZjUsIDB4NDYsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweGMyLCAweDAzLCAweDMwLCAweDE1LCAweDBjLCAweGMyLCAweDE1LCAweDkwLCAweDdmLCAweGJmLCAweDA0LCAweGYwLCAweGMyLCAweDExLCAweDAyLCAweDA0fX0sCi0gezB4MDBlNiwgMTYsIHsgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNSwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOX19LAotIHsweDAwZjYsIDE2LCB7IDB4ZTAsIDB4ZjUsIDB4N2MsIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTUsIDB4MjAsIDB4MTMsIDB4MmQsIDB4MjAsIDB4MGIsIDB4MmF9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDFiLCAweDAwfX0sCi0gezB4MDAyMywgIDMsIHsgMHgwMiwgMHgwMCwgMHg0Nn19LAotIHsweDAwM2IsICAzLCB7IDB4MDIsIDB4MDAsIDB4NDZ9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDE2LCAweDNkfX0sCi0gezB4MDEwNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHgyMCwgMHgzMCwgMHgxYiwgMHgxMSwgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwKLSAgMHgxMywgMHg5MiwgMHgxNywgMHhhMywgMHhlMCwgMHhmNSwgMHg0NiwgMHg3NSwgMHg0YSwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMiwKLSAgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg0NiwgMHgwMiwgMHgwNCwgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMSwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNCwKLSAgMHg0MCwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgwMywgMHgwMiwgMHgwMSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMH19LAotIHsweDAxNDYsIDY0LCB7IDB4MzAsIDB4ZTEsIDB4MDcsIDB4YzIsIDB4MjEsIDB4YzIsIDB4MDUsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4ZjUsIDB4N2MsIDB4OTAsCi0gIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTUsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZDgsIDB4MjAsIDB4MGIsIDB4NzIsIDB4MjAsCi0gIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4NjUsIDB4MzAsIDB4MWIsIDB4MTAsIDB4OTAsCi0gIDB4N2UsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4OWIsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4OTksIDB4NzUsIDB4NGEsIDB4MDMsIDB4ODAsIDB4MDl9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDk5LCAweDc1LCAweDRhLCAweDAyLCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDQwLCAweDE3LCAweDkwLAotICAweDdmLCAweGM3LCAweGU0LCAweGYwLCAweGMyLCAweDAzLCAweDIwLCAweDE1LCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDE1LCAweDkwLCAweDdmLAotICAweGJmLCAweDA0LCAweGYwLCAweDAyLCAweDA0LCAweDQwLCAweDMwLCAweDFiLCAweDEyLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLAotICAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFlLCAweDRhLCAweDA1LCAweDRhfX0sCi0gezB4MDFjNiwgNjQsIHsgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMiwgMHgxMSwgMHgwMiwgMHgwNCwKLSAgMHg0MCwgMHg3NSwgMHg0YSwgMHgwMSwgMHhjMiwgMHgyMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHgzMCwgMHgxMywgMHgwMywgMHgwMiwgMHgwMiwgMHg2MiwgMHgyMCwKLSAgMHgwYiwgMHg3OSwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHg2ZiwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZSwKLSAgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlMCwgMHgxM319LAotIHsweDAyMDYsIDY0LCB7IDB4OTIsIDB4OWIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsCi0gIDB4ZjUsIDB4OTksIDB4ZTUsIDB4NGEsIDB4YzMsIDB4OTUsIDB4N2MsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDMsCi0gIDB4MjAsIDB4MTUsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4YzIsIDB4MTUsIDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4NDAsCi0gIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2V9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LCAweGQyLCAweDExLCAweDAyLCAweDA0LCAweDQwLCAweGMyLCAweDIxLCAweDAyLCAweDA0LCAweDQwLAotICAweDIwLCAweDExLCAweDAzLCAweDAyLCAweDAzLCAweDE5LCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDUwLCAweDNlLCAweDIwLCAweDEzLCAweDM2LAotICAweDIwLCAweDBiLCAweDMzLCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDI5LCAweDMwLCAweDFifX0sCi0gezB4MDI4NiwgNjQsIHsgMHgxMiwgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHhmNSwgMHg0NiwgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgxMSwgMHgwMiwgMHgwNCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwKLSAgMHhkMiwgMHgwMywgMHgzMCwgMHgxNSwgMHgwYywgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiZiwgMHgwNCwgMHhmMCwgMHhjMiwgMHgxMSwgMHgwMn19LAotIHsweDAyYzYsIDY0LCB7IDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MTEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4YzcsCi0gIDB4ZTAsIDB4ZjUsIDB4N2MsIDB4OTAsIDB4N2UsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTUsIDB4MjAsIDB4MTMsIDB4MmQsIDB4MjAsIDB4MGIsIDB4MmEsCi0gIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MjAsIDB4MWMsIDB4MjAsIDB4MzAsIDB4MWIsIDB4MTEsIDB4OTAsIDB4N2UsIDB4NDEsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTcsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4NzUsIDB4NGEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NDAsIDB4NzV9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDRhLCAweDAyLCAweDkwLCAweDdlLCAweDQxLCAweGUwLCAweGY1LCAweDQ2LCAweDAyLCAweDA0LCAweDQwLCAweDc1LCAweDRhLCAweDAxLCAweGMyLCAweDExLCAweDAyLAotICAweDA0LCAweDQwLCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDUwLCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweDkwLCAweDdmLCAweGM4LCAweGUwLAotICAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIxLCAweGMyLCAweDA1LCAweDAyLCAweDA0LCAweDQwLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGY1LCAweDdjLAotICAweDkwLCAweDdkLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDMwLCAweDEzLCAweDAzLCAweDAyLCAweDAzLCAweGI5LCAweDIwLCAweDBifX0sCi0gezB4MDM0NiwgNjQsIHsgMHg3MiwgMHgyMCwgMHgwMCwgMHg2ZiwgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHgyMCwgMHhlMywgMHgwMywgMHgyMCwgMHgxYywgMHg2NSwgMHgzMCwgMHgxYiwgMHgxMCwKLSAgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwgMHg5YiwgMHhhMywgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHg0YSwgMHgwMywgMHg4MCwgMHgwOSwKLSAgMHg5MCwgMHg3ZCwgMHhjMSwgMHhlMCwgMHhmNSwgMHg5OSwgMHg3NSwgMHg0YSwgMHgwMiwgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg0MCwgMHgxNywKLSAgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwMywgMHgyMCwgMHgxNSwgMHgwMywgMHgwMiwgMHgwNCwgMHg0MCwgMHhjMiwgMHgxNX19LAotIHsweDAzODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YmYsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTcsIDB4YWUsIDB4NGEsIDB4MDUsIDB4NGEsCi0gIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDYsIDB4ZDIsIDB4MTEsIDB4MDIsCi0gIDB4MDQsIDB4NDAsIDB4NzUsIDB4NGEsIDB4MDEsIDB4YzIsIDB4MjEsIDB4MDIsIDB4MDQsIDB4NDAsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MDR9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDNlLCAweDIwLCAweDBiLCAweDc0LCAweDkwLCAweDdmLCAweDliLCAweGUwLCAweDIwLCAweGUzLCAweDAzLCAweDIwLCAweDFjLCAweDZhLCAweDMwLCAweDFiLCAweDEyLAotICAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLAotICAweDkyLCAweDliLCAweGFlLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLAotICAweGUwLCAweGY1LCAweDk5LCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDQwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGU0LCAweGYwfX0sCi0gezB4MDQwNiwgNjQsIHsgMHhkMiwgMHgwMywgMHgzMCwgMHgxNSwgMHgzNSwgMHhjMiwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiZiwgMHgwNCwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgxYiwgMHgxMiwKLSAgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHgxNywgMHhhZSwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHhmNSwgMHg0NiwgMHhkMiwgMHgxMSwgMHg4MCwgMHgwMiwgMHhjMiwgMHgyMSwgMHhkMiwgMHgyNSwgMHgyMCwgMHgyMCwgMHgwMywgMHgwMn19LAotIHsweDA0NDYsIDY0LCB7IDB4MDgsIDB4MGMsIDB4YzIsIDB4MjAsIDB4MjAsIDB4MDQsIDB4MDMsIDB4MDIsIDB4MDYsIDB4MzEsIDB4MjAsIDB4MTIsIDB4MDMsIDB4MDIsIDB4MDUsIDB4MDIsIDB4ZTUsCi0gIDB4NGIsIDB4YzMsIDB4OTUsIDB4N2QsIDB4NTAsIDB4M2UsIDB4MjAsIDB4MTQsIDB4MzYsIDB4MjAsIDB4MGQsIDB4MzMsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsCi0gIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4MjksIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4NDAsIDB4MmUsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGJ9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LCAweDAyLCAweDA4LCAweDBhLCAweGMyLAotICAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGU0LCAweGYwLCAweGMyLCAweDA0LCAweDMwLCAweDE2LCAweDBjLCAweGMyLCAweDE2LAotICAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNjLCAweGUwLCAweDMwLCAweGUxLAotICAweDA1LCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdjLCAweGMwfX0sCi0gezB4MDRjNiwgNjQsIHsgMHhlMCwgMHgxMywgMHg5MiwgMHgxNiwgMHgyMCwgMHgxNCwgMHgyZCwgMHgyMCwgMHgwZCwgMHgyYSwgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywKLSAgMHgyMCwgMHgxZSwgMHgyMCwgMHgzMCwgMHgxZCwgMHgxMSwgMHg5MCwgMHg3YywgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhMywgMHhlMCwgMHhmNSwKLSAgMHg0NywgMHg3NSwgMHg0YiwgMHgwMywgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMiwgMHg5MCwgMHg3YywgMHhjMSwgMHhlMCwgMHhmNSwgMHg0NywKLSAgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMSwgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NX19LAotIHsweDA1MDYsIDY0LCB7IDB4N2QsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWEsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDcsIDB4YzIsIDB4MjIsIDB4YzIsIDB4MDYsCi0gIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZjUsIDB4N2QsIDB4OTAsIDB4N2QsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTYsCi0gIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTIsIDB4MjAsIDB4MGQsIDB4NzIsIDB4MjAsIDB4MDAsIDB4NmYsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsCi0gIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MjAsIDB4MWUsIDB4NjUsIDB4MzAsIDB4MWQsIDB4MTAsIDB4OTAsIDB4N2QsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGMzLCAweGEzLCAweGUwLCAweGY1LCAweGMxLCAweDc1LCAweDRiLCAweDAzLCAweDgwLCAweDA5LCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweGY1LCAweGMxLCAweDc1LAotICAweDRiLCAweDAyLCAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDQwLCAweDE3LCAweDkwLCAweDdmLCAweGNiLCAweGU0LCAweGYwLCAweGMyLCAweDA0LAotICAweDIwLCAweDE2LCAweDAzLCAweDAyLCAweDA4LCAweDBhLCAweGMyLCAweDE2LCAweDkwLCAweDdmLCAweGMxLCAweDA0LCAweGYwLCAweDAyLCAweDA4LCAweDBhLAotICAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkfX0sCi0gezB4MDU4NiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwKLSAgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHhkMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg3NSwgMHg0YiwgMHgwMSwgMHhjMiwgMHgyMiwKLSAgMHgwMiwgMHgwOCwgMHgwYSwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwNiwgMHgyYywgMHgyMCwgMHgwZCwgMHg3OSwgMHg5MCwgMHg3ZiwgMHg5YSwgMHhlMCwKLSAgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHg2ZiwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MH19LAotIHsweDA1YzYsIDY0LCB7IDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4YzMsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsCi0gIDB4NDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4YzEsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTUsCi0gIDB4N2QsIDB4NDAsIDB4MTcsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTQsIDB4ZjAsIDB4YzIsIDB4MDQsIDB4MjAsIDB4MTYsIDB4MDMsIDB4MDIsIDB4MDgsIDB4MGEsCi0gIDB4YzIsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4MGEsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGJ9fSwKLSB7MHgwNjA2LCA2NCwgeyAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFlLAotICAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ3LAotICAweGQyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweGMyLCAweDIyLCAweDAyLCAweDA4LCAweDBhLCAweDIwLCAweDEyLCAweDAzLCAweDAyLCAweDA2LCAweGUzLAotICAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDNlLCAweDIwLCAweDE0LCAweDM2LCAweDIwLCAweDBkLCAweDMzLCAweDkwLCAweDdmfX0sCi0gezB4MDY0NiwgNjQsIHsgMHg5YSwgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHgyOSwgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwKLSAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwKLSAgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHgwMiwgMHgwOCwgMHgwYSwKLSAgMHhjMiwgMHgxMiwgMHgwMiwgMHgwOCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwNCwgMHgzMCwgMHgxNiwgMHgwY319LAotIHsweDA2ODYsIDY0LCB7IDB4YzIsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MzAsCi0gIDB4ZTEsIDB4MDUsIDB4YzIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZjUsIDB4N2QsIDB4OTAsIDB4N2QsIDB4NDAsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTYsIDB4MjAsIDB4MTQsIDB4MmQsIDB4MjAsIDB4MGQsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsCi0gIDB4MDMsIDB4MjAsIDB4MWUsIDB4MjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4OTAsIDB4N2QsIDB4NDEsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YTN9fSwKLSB7MHgwNmM2LCA2NCwgeyAweGUwLCAweGY1LCAweDQ3LCAweDc1LCAweDRiLCAweDAzLCAweDAyLCAweDA4LCAweDBhLCAweDc1LCAweDRiLCAweDAyLCAweDkwLCAweDdkLCAweDQxLCAweGUwLCAweGY1LAotICAweDQ3LCAweDAyLCAweDA4LCAweDBhLCAweDc1LCAweDRiLCAweDAxLCAweGMyLCAweDEyLCAweDAyLCAweDA4LCAweDBhLCAweGU1LCAweDRiLCAweGMzLCAweDk1LAotICAweDdkLCAweDUwLCAweDAzLCAweDAyLCAweDA3LCAweDhiLCAweDkwLCAweDdmLCAweGNjLCAweGUwLCAweDMwLCAweGUxLCAweDA3LCAweGMyLCAweDIyLCAweGMyLAotICAweDA2LCAweDAyLCAweDA4LCAweDBhLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweGY1LCAweDdkLCAweDkwLCAweDdjLCAweGMwLCAweGUwLCAweDEzfX0sCi0gezB4MDcwNiwgNjQsIHsgMHg5MiwgMHgxNiwgMHgzMCwgMHgxNCwgMHgwMywgMHgwMiwgMHgwNywgMHg4MywgMHgyMCwgMHgwZCwgMHg3MiwgMHgyMCwgMHgwMCwgMHg2ZiwgMHg5MCwgMHg3ZiwgMHg5YSwKLSAgMHhlMCwgMHgyMCwgMHhlNSwgMHgwMywgMHgyMCwgMHgxZSwgMHg2NSwgMHgzMCwgMHgxZCwgMHgxMCwgMHg5MCwgMHg3YywgMHhjMSwgMHhlMCwgMHgxMywgMHg5MiwKLSAgMHhjMywgMHhhMywgMHhlMCwgMHhmNSwgMHhjMSwgMHg3NSwgMHg0YiwgMHgwMywgMHg4MCwgMHgwOSwgMHg5MCwgMHg3YywgMHhjMSwgMHhlMCwgMHhmNSwgMHhjMSwKLSAgMHg3NSwgMHg0YiwgMHgwMiwgMHhlNSwgMHg0YiwgMHhjMywgMHg5NSwgMHg3ZCwgMHg0MCwgMHgxNywgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlNCwgMHhmMH19LAotIHsweDA3NDYsIDY0LCB7IDB4ZDIsIDB4MDQsIDB4MjAsIDB4MTYsIDB4MDMsIDB4MDIsIDB4MDgsIDB4MGEsIDB4YzIsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YzEsIDB4MDQsIDB4ZjAsIDB4MDIsIDB4MDgsCi0gIDB4MGEsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWUsIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsIDB4ZDIsIDB4MTIsIDB4MDIsIDB4MDgsIDB4MGEsIDB4NzUsIDB4NGIsIDB4MDF9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGMyLCAweDIyLCAweDAyLCAweDA4LCAweDBhLCAweDMwLCAweDE0LCAweDAzLCAweDAyLCAweDA4LCAweDA4LCAweDIwLCAweDBkLCAweDc0LCAweDkwLCAweDdmLCAweDlhLAotICAweGUwLCAweDIwLCAweGU1LCAweDAzLCAweDIwLCAweDFlLCAweDZhLCAweDMwLCAweDFkLCAweDEyLCAweGFlLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweGMwLAotICAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweGMzLCAweGFlLCAweDRiLCAweDA1LCAweDRiLAotICAweDc0LCAweGMwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGMxLCAweGU1LCAweDRifX0sCi0gezB4MDdjNiwgNjQsIHsgMHhjMywgMHg5NSwgMHg3ZCwgMHg0MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlNCwgMHhmMCwgMHhkMiwgMHgwNCwgMHgzMCwgMHgxNiwgMHgzNSwgMHhjMiwgMHgxNiwKLSAgMHg5MCwgMHg3ZiwgMHhjMSwgMHgwNCwgMHhmMCwgMHg4MCwgMHgyYywgMHgzMCwgMHgxZCwgMHgxMiwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwKLSAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywgMHg5MiwgMHgxOCwgMHhhZSwgMHg0YiwgMHgwNSwgMHg0YiwKLSAgMHg3NCwgMHhjMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHhkMiwgMHgxMn19LAotIHsweDA4MDYsIDY0LCB7IDB4ODAsIDB4MDIsIDB4YzIsIDB4MjIsIDB4ZDIsIDB4MjUsIDB4MjAsIDB4OTgsIDB4MDMsIDB4MDIsIDB4MDksIDB4M2UsIDB4YzIsIDB4OTgsIDB4MjAsIDB4MDEsIDB4MDMsCi0gIDB4MDIsIDB4MDgsIDB4YjAsIDB4MjAsIDB4MjMsIDB4MjcsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTksIDB4ZjAsIDB4MzAsIDB4MWIsIDB4NDksIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsIDB4NzQsIDB4ODAsCi0gIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsIDB4OTl9fSwKLSB7MHgwODQ2LCA2NCwgeyAweGVmLCAweGI1LCAweDU4LCAweDA0LCAweGQyLCAweDBiLCAweDgwLCAweDJjLCAweGVmLCAweGI1LCAweDU3LCAweDA0LCAweGMyLCAweDBiLCAweDgwLCAweDI0LCAweGFlLAotICAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDMwLAotICAweDFiLCAweDExLCAweGFlLCAweDQ4LCAweDA1LCAweDQ4LCAweDc0LCAweDgwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLAotICAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDE5LCAweGU1LCAweDQ4LCAweGMzLCAweDk1LCAweDU0LCAweDUwLCAweDAzLCAweDAyLCAweDA5LCAweDNjfX0sCi0gezB4MDg4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgzMCwgMHhlMSwgMHgxNSwgMHhlNSwgMHg0OCwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgwMywgMHgwMiwgMHgwOSwgMHgzYywKLSAgMHgxNSwgMHg0OCwgMHgxNSwgMHg0OCwgMHgwNSwgMHgyZCwgMHhkMiwgMHgwYywgMHgwMiwgMHgwOSwgMHgzYywgMHg5MCwgMHg3ZiwgMHhiNywgMHhlNSwgMHg0OCwKLSAgMHhmMCwgMHg3NSwgMHg0OCwgMHgwMCwgMHhjMiwgMHgwMSwgMHgwMiwgMHgwOSwgMHgzYywgMHgyMCwgMHgyMywgMHgyNywgMHhhZSwgMHg0OCwgMHgwNSwgMHg0OCwKLSAgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZSwgMHhmNSwgMHg4MywgMHhlNSwgMHg5OSwgMHhmMCwgMHgzMCwgMHgxYn19LAotIHsweDA4YzYsIDY0LCB7IDB4NDksIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4OTgsCi0gIDB4ZjAsIDB4ODAsIDB4MzYsIDB4YWYsIDB4OTksIDB4ZWYsIDB4YjUsIDB4NTgsIDB4MDQsIDB4ZDIsIDB4MGIsIDB4ODAsIDB4MmMsIDB4ZWYsIDB4YjUsIDB4NTcsCi0gIDB4MDQsIDB4YzIsIDB4MGIsIDB4ODAsIDB4MjQsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsIDB4NzQsIDB4MDAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MzAsIDB4MWIsIDB4MTEsIDB4YWUsIDB4NDgsIDB4MDUsIDB4NDgsIDB4NzQsIDB4MDAsIDB4MmV9fSwKLSB7MHgwOTA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGU1LCAweDk4LCAweGYwLCAweGQyLCAweDE5LCAweGU1LCAweDQ4LCAweGMzLCAweDk1LCAweDU0LAotICAweDQwLCAweDIzLCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDMwLCAweGUxLCAweDExLCAweGU1LCAweDQ4LCAweGMzLCAweDk0LCAweDQwLCAweDQwLCAweDE1LAotICAweDE1LCAweDQ4LCAweDE1LCAweDQ4LCAweDA1LCAweDJkLCAweGQyLCAweDBjLCAweDgwLCAweDBiLCAweDkwLCAweDdmLCAweGI5LCAweGU1LCAweDQ4LCAweGYwLAotICAweDc1LCAweDQ4LCAweDAwLCAweGQyLCAweDAxLCAweGQyLCAweDI1LCAweDIwLCAweGMwLCAweDAzLCAweDAyLCAweDBhLCAweDcwLCAweGMyLCAweGMwfX0sCi0gezB4MDk0NiwgNjQsIHsgMHgyMCwgMHgwMiwgMHgwMywgMHgwMiwgMHgwOSwgMHhlMiwgMHgyMCwgMHgyNCwgMHgyNywgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMSwgMHhmMCwgMHgzMCwgMHgxZCwgMHg0OSwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwKLSAgMHg3NCwgMHg4MCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMCwgMHhmMCwgMHg4MCwgMHgzNiwgMHhhZiwKLSAgMHhjMSwgMHhlZiwgMHhiNSwgMHg3MCwgMHgwNCwgMHhkMiwgMHgwZCwgMHg4MCwgMHgyYywgMHhlZiwgMHhiNSwgMHg2ZiwgMHgwNCwgMHhjMiwgMHgwZH19LAotIHsweDA5ODYsIDY0LCB7IDB4ODAsIDB4MjQsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZWYsCi0gIDB4ZjAsIDB4MzAsIDB4MWQsIDB4MTEsIDB4YWUsIDB4NDksIDB4MDUsIDB4NDksIDB4NzQsIDB4ODAsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsCi0gIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4YzAsIDB4ZjAsIDB4ZDIsIDB4MWEsIDB4ZTUsIDB4NDksIDB4YzMsIDB4OTUsIDB4NmMsIDB4NTAsIDB4MDMsIDB4MDIsIDB4MGEsCi0gIDB4NmUsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTUsIDB4ZTUsIDB4NDksIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MDN9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDAyLCAweDBhLCAweDZlLCAweDE1LCAweDQ5LCAweDE1LCAweDQ5LCAweDA1LCAweDM5LCAweGQyLCAweDBlLCAweDAyLCAweDBhLCAweDZlLCAweDkwLCAweDdmLCAweGJiLAotICAweGU1LCAweDQ5LCAweGYwLCAweDc1LCAweDQ5LCAweDAwLCAweGMyLCAweDAyLCAweDAyLCAweDBhLCAweDZlLCAweDIwLCAweDI0LCAweDI3LCAweGFlLCAweDQ5LAotICAweDA1LCAweDQ5LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGU1LCAweGMxLCAweGYwLCAweDMwLAotICAweDFkLCAweDQ5LCAweGFlLCAweDQ5LCAweDA1LCAweDQ5LCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1fX0sCi0gezB4MGEwNiwgNjQsIHsgMHg4MywgMHhlNSwgMHhjMCwgMHhmMCwgMHg4MCwgMHgzNiwgMHhhZiwgMHhjMSwgMHhlZiwgMHhiNSwgMHg3MCwgMHgwNCwgMHhkMiwgMHgwZCwgMHg4MCwgMHgyYywgMHhlZiwKLSAgMHhiNSwgMHg2ZiwgMHgwNCwgMHhjMiwgMHgwZCwgMHg4MCwgMHgyNCwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgzMCwgMHgxZCwgMHgxMSwgMHhhZSwgMHg0OSwgMHgwNSwgMHg0OSwgMHg3NCwgMHgwMCwKLSAgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlNSwgMHhjMCwgMHhmMCwgMHhkMiwgMHgxYSwgMHhlNSwgMHg0OX19LAotIHsweDBhNDYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4NmMsIDB4NDAsIDB4MjMsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MTEsIDB4ZTUsIDB4NDksIDB4YzMsIDB4OTQsIDB4NDAsCi0gIDB4NDAsIDB4MTUsIDB4MTUsIDB4NDksIDB4MTUsIDB4NDksIDB4MDUsIDB4MzksIDB4ZDIsIDB4MGUsIDB4ODAsIDB4MGIsIDB4OTAsIDB4N2YsIDB4YmQsIDB4ZTUsCi0gIDB4NDksIDB4ZjAsIDB4NzUsIDB4NDksIDB4MDAsIDB4ZDIsIDB4MDIsIDB4ZDIsIDB4MjUsIDB4MzAsIDB4MjUsIDB4MDUsIDB4YzIsIDB4MjUsIDB4MDIsIDB4MDAsCi0gIDB4NTYsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4Y2V9fSwKLSB7MHgwYTg2LCA2NCwgeyAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDBiLCAweGE1LCAweGU0LCAweGY1LCAweDEyLCAweDc0LCAweDQwLCAweDI1LCAweDEyLCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDEyLCAweDdjLCAweDAwLCAweDdiLCAweDAwLCAweDI0LCAweDRjLCAweGY5LCAweGVjLAotICAweDM0LCAweDAwLCAweGZhLCAweGVmLCAweDEyLCAweDE1LCAweGNkLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDE4LCAweGRiLCAweGU1LCAweDRjLAotICAweDYwLCAweDBjLCAweDc1LCAweGM5LCAweDIwLCAweDc1LCAweGM4LCAweDM2LCAweDg1LCAweDRkLCAweGNhLCAweDg1LCAweDRlLCAweGNiLCAweGU1fX0sCi0gezB4MGFjNiwgNjQsIHsgMHg0ZiwgMHgxMywgMHg5MiwgMHgxYiwgMHg5MiwgMHg5ZiwgMHhlNSwgMHg1MCwgMHgxMywgMHg5MiwgMHgxYywgMHhlNSwgMHg1MSwgMHgxMywgMHg5MiwgMHgyMywgMHhlNSwKLSAgMHg1MiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwKLSAgMHg0NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHg1MywgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MCwgMHgwNywKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNSwgMHg1OSwgMHg2MCwgMHgwYiwgMHhjMiwgMHgxMywgMHhjMiwgMHgwYn19LAotIHsweDBiMDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4NjAsIDB4MGIsIDB4ZDIsIDB4MGIsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2YsCi0gIDB4OTUsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4NWIsIDB4NjAsIDB4MGQsIDB4YzIsIDB4YWYsIDB4YzIsIDB4MTEsIDB4ZDIsIDB4MDAsIDB4ZTQsCi0gIDB4ZjUsIDB4N2MsIDB4ZjUsIDB4NGEsIDB4ZDIsIDB4YWYsIDB4ZTUsIDB4NWMsIDB4NjAsIDB4MDUsIDB4MzAsIDB4MjMsIDB4MDIsIDB4ZDIsIDB4MGIsIDB4ZTUsCi0gIDB4NWQsIDB4NjAsIDB4MTUsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZTAsIDB4NDR9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweGU1LCAweDVlLCAweDYwLCAweDBhLCAweGQyLCAweDljLCAweGMyLCAweDk4LAotICAweDc1LCAweDJlLCAweDAxLCAweDc1LCAweDQwLCAweDI4LCAweGU1LCAweDVmLCAweDYwLCAweDA3LCAweGMyLCAweDljLCAweGU0LCAweGY1LCAweDQ4LCAweGY1LAotICAweDJlLCAweGU1LCAweDYwLCAweDYwLCAweDAzLCAweGU0LCAweGY1LCAweDQ4LCAweGU1LCAweDYxLCAweDYwLCAweDAyLCAweGQyLCAweDA3LCAweGU1LCAweDYyLAotICAweDYwLCAweDA4LCAweGU1LCAweDVlLCAweDcwLCAweDAyLCAweGY1LCAweDQwLCAweGQyLCAweDBjLCAweGU1LCAweDYzLCAweDYwLCAweDE5LCAweDkwfX0sCi0gezB4MGI4NiwgNjQsIHsgMHg3ZiwgMHhkNywgMHg3NCwgMHgxMSwgMHhmMCwgMHg3NCwgMHgzMSwgMHhmMCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg3NCwgMHgzMiwgMHhmMCwgMHg3NCwgMHgxNSwgMHhmMCwKLSAgMHg3NCwgMHgzNSwgMHhmMCwgMHhkMiwgMHgwMywgMHhkMiwgMHgwMSwgMHhkMiwgMHgwOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZiwgMHhmMCwgMHhhMiwgMHgxMywKLSAgMHhlNCwgMHgzMywgMHhmZiwgMHg2NSwgMHgyYiwgMHg2MCwgMHgwNCwgMHg4ZiwgMHgyYiwgMHhkMiwgMHgwYywgMHhhMiwgMHgwYiwgMHhlNCwgMHgzMywgMHhmZiwKLSAgMHg2NSwgMHgyYywgMHg2MCwgMHgwNCwgMHg4ZiwgMHgyYywgMHhkMiwgMHgwYywgMHg5MCwgMHg3ZiwgMHg5YiwgMHhlMCwgMHg1NCwgMHgwOCwgMHg2NX19LAotIHsweDBiYzYsIDY0LCB7IDB4MjcsIDB4NjAsIDB4MDcsIDB4ZTAsIDB4NTQsIDB4MDgsIDB4ZjUsIDB4MjcsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4NTQsIDB4NDAsIDB4YjUsCi0gIDB4MjksIDB4MDksIDB4ZTAsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsIDB4ZjUsIDB4MjksIDB4ZDIsIDB4MGMsIDB4MzAsIDB4MDcsIDB4MzUsIDB4YzIsIDB4YWYsCi0gIDB4MzAsIDB4MDEsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4NDgsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsCi0gIDB4YjcsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4NDgsIDB4YzIsIDB4MDEsIDB4YzIsIDB4MDcsIDB4ODAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTB9fSwKLSB7MHgwYzA2LCA2NCwgeyAweDIwLCAweGUxLCAweDBmLCAweGU1LCAweDQ4LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweGU0LCAweGY1LCAweDQ4LCAweGQyLCAweDAxLCAweGMyLAotICAweDA3LCAweGQyLCAweGFmLCAweDIwLCAweDA1LCAweDM3LCAweDMwLCAweDAzLCAweDFiLCAweDkwLCAweDdmLCAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDJkLAotICAweDkwLCAweDdlLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE1LCAweDc1LCAweDRhLCAweDAxLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGY1LCAweDdjLAotICAweGQyLCAweDA1LCAweDgwLCAweDE5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDEyLCAweDkwLCAweDdkLCAweGMwLCAweGUwfX0sCi0gezB4MGM0NiwgNjQsIHsgMHgxMywgMHg5MiwgMHgxNSwgMHg3NSwgMHg0YSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmNSwgMHg3YywgMHhkMiwgMHgwNSwgMHgyMCwgMHgyMSwgMHgzMywKLSAgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHg0YSwgMHg2NSwgMHg3YywgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNSwgMHgxYSwgMHgzMCwgMHgwMywgMHgwOSwgMHhlNCwKLSAgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHhkMiwgMHgwMywgMHhjMiwKLSAgMHgwNSwgMHhlNCwgMHhmNSwgMHg3YywgMHhmNSwgMHg0YSwgMHgzMCwgMHgxNSwgMHgwYSwgMHhjMiwgMHgxNSwgMHhjMiwgMHgwMCwgMHg5MCwgMHg3Zn19LAotIHsweDBjODYsIDY0LCB7IDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MzAsIDB4MjEsIDB4MDMsIDB4MDIsIDB4MGQsIDB4OTQsIDB4MjAsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MGQsIDB4OTQsIDB4MzAsCi0gIDB4MWMsIDB4MGEsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTAsIDB4MjAsIDB4ZTMsIDB4MDMsIDB4MDIsIDB4MGQsIDB4OTQsIDB4MzAsIDB4MGIsIDB4MDMsIDB4MDIsCi0gIDB4MGQsIDB4OTQsIDB4MzAsIDB4MTMsIDB4MDMsIDB4MDIsIDB4MGQsIDB4OTQsIDB4MzAsIDB4MDMsIDB4NjIsIDB4MzAsIDB4MWIsIDB4MTIsIDB4YWYsIDB4NGEsCi0gIDB4MDUsIDB4NGEsIDB4NzQsIDB4NDAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTJ9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDJkLCAweGFmLCAweDRhLCAweDA1LCAweDRhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LAotICAweDEzLCAweGU1LCAweDRhLCAweGMzLCAweDk1LCAweDdjLCAweDUwLCAweDJhLCAweDMwLCAweDFiLCAweDEyLCAweGFmLCAweDRhLCAweDA1LCAweDRhLCAweDc0LAotICAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE3LCAweGFmLCAweDRhLCAweDA1LAotICAweDRhLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDQ2LCAweGQyfX0sCi0gezB4MGQwNiwgNjQsIHsgMHgxMSwgMHg4MCwgMHg2YiwgMHhjMiwgMHgxMSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHhjMiwgMHgwMywgMHg4MCwgMHg2MCwgMHgzMCwgMHgxYiwgMHgxMiwKLSAgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHgyZCwgMHhhZiwgMHg0YSwgMHgwNSwgMHg0YSwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHhmNSwgMHgxMywgMHhlNSwgMHg0YSwgMHhjMywgMHg5NSwgMHg3YywgMHg1MCwgMHgyYSwgMHgzMCwgMHgxYiwgMHgxMiwgMHhhZiwgMHg0YX19LAotIHsweDBkNDYsIDY0LCB7IDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTcsIDB4YWYsCi0gIDB4NGEsIDB4MDUsIDB4NGEsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2QsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDYsCi0gIDB4ZDIsIDB4MTEsIDB4ODAsIDB4MDksIDB4YzIsIDB4MTEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4MzAsIDB4MWIsIDB4MDQsCi0gIDB4YTIsIDB4MmQsIDB4OTIsIDB4OWIsIDB4ZDIsIDB4MjEsIDB4YzIsIDB4YWYsIDB4ODUsIDB4MTMsIDB4OTksIDB4MjAsIDB4MTEsIDB4MGQsIDB4MzB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDE1LCAweDBhLCAweGMyLCAweDE1LCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGQyLCAweGFmLCAweDkwLCAweDdmLCAweGQwLAotICAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDBlLCAweGI1LCAweGU0LCAweGY1LCAweDEyLCAweDc0LCAweGMwLCAweDI1LCAweDEyLCAweGY1LCAweDgyLAotICAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDEyLCAweDdjLCAweDAwLCAweDdiLCAweDAwLCAweDI0LCAweDY0LCAweGY5LAotICAweGVjLCAweDM0LCAweDAwLCAweGZhLCAweGVmLCAweDEyLCAweDE1LCAweGNkLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDE4LCAweGRifX0sCi0gezB4MGRjNiwgNjQsIHsgMHhlNSwgMHg2NCwgMHg2MCwgMHgwYiwgMHg3NSwgMHg4OSwgMHg2MCwgMHg3NSwgMHg4OCwgMHg0MCwgMHhkMiwgMHhkZiwgMHg4NSwgMHg2NSwgMHg4ZCwgMHhlNSwgMHg2NywKLSAgMHgxMywgMHg5MiwgMHgxZCwgMHg5MiwgMHhjNywgMHhlNSwgMHg2OCwgMHgxMywgMHg5MiwgMHgxZSwgMHhlNSwgMHg2OSwgMHgxMywgMHg5MiwgMHgyNCwgMHhlNSwKLSAgMHg2YSwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwKLSAgMHg0NCwgMHgxMCwgMHhmMCwgMHhlNSwgMHg2YiwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHg5NywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHg4MH19LAotIHsweDBlMDYsIDY0LCB7IDB4MDcsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZTUsIDB4NzEsIDB4NjAsIDB4MGIsIDB4YzIsIDB4MTQsIDB4YzIsIDB4MGQsIDB4OTAsCi0gIDB4N2YsIDB4OTQsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4ZTUsIDB4NzIsIDB4NjAsIDB4MGIsIDB4ZDIsIDB4MGQsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2YsCi0gIDB4OTQsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4ZTUsIDB4NzMsIDB4NjAsIDB4MGQsIDB4YzIsIDB4YWYsIDB4YzIsIDB4MTIsIDB4ZDIsIDB4MDAsIDB4ZTQsCi0gIDB4ZjUsIDB4N2QsIDB4ZjUsIDB4NGIsIDB4ZDIsIDB4YWYsIDB4ZTUsIDB4NzQsIDB4NjAsIDB4MDUsIDB4MzAsIDB4MjQsIDB4MDIsIDB4ZDIsIDB4MGR9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweGU1LCAweDc1LCAweDYwLCAweDE1LCAweDkwLCAweDdmLCAweDk0LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweGUwLCAweDQ0LCAweDA4LAotICAweGYwLCAweDkwLCAweDdmLCAweDk3LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweGU1LCAweDc2LCAweDYwLCAweDBhLCAweGQyLCAweGM0LCAweGMyLCAweGMwLAotICAweDc1LCAweDNhLCAweDAxLCAweDc1LCAweDQxLCAweDI4LCAweGU1LCAweDc3LCAweDYwLCAweDA3LCAweGMyLCAweGM0LCAweGU0LCAweGY1LCAweDQ5LCAweGY1LAotICAweDNhLCAweGU1LCAweDc4LCAweDYwLCAweDAzLCAweGU0LCAweGY1LCAweDQ5LCAweGU1LCAweDc5LCAweDYwLCAweDAyLCAweGQyLCAweDA4LCAweGU1fX0sCi0gezB4MGU4NiwgNjQsIHsgMHg3YSwgMHg2MCwgMHgwOCwgMHhlNSwgMHg3NiwgMHg3MCwgMHgwMiwgMHhmNSwgMHg0MSwgMHhkMiwgMHgwZSwgMHhlNSwgMHg3YiwgMHg2MCwgMHgxOSwgMHg5MCwgMHg3ZiwKLSAgMHhkNywgMHg3NCwgMHgxMywgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg3NCwgMHgzNCwgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwKLSAgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhkMiwgMHgwMiwgMHhkMiwgMHgwYSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwgMHhhMiwgMHgxNCwKLSAgMHhlNCwgMHgzMywgMHhmZiwgMHg2NSwgMHgzNywgMHg2MCwgMHgwNCwgMHg4ZiwgMHgzNywgMHhkMiwgMHgwZSwgMHhhMiwgMHgwZCwgMHhlNCwgMHgzM319LAotIHsweDBlYzYsIDY0LCB7IDB4ZmYsIDB4NjUsIDB4MzgsIDB4NjAsIDB4MDQsIDB4OGYsIDB4MzgsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4NjUsIDB4MzMsCi0gIDB4NjAsIDB4MDcsIDB4ZTAsIDB4NTQsIDB4MjAsIDB4ZjUsIDB4MzMsIDB4ZDIsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4NTQsIDB4NDAsIDB4YjUsCi0gIDB4MzUsIDB4MDksIDB4ZTAsIDB4NTQsIDB4NDAsIDB4NjQsIDB4NDAsIDB4ZjUsIDB4MzUsIDB4ZDIsIDB4MGUsIDB4MzAsIDB4MDgsIDB4MzUsIDB4YzIsIDB4YWYsCi0gIDB4MzAsIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4ZTUsIDB4NDksIDB4NjAsIDB4MDksIDB4OTB9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDdmLCAweGJiLCAweGYwLCAweGU0LCAweGY1LCAweDQ5LCAweGMyLCAweDAyLCAweGMyLCAweDA4LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDIwLAotICAweGUxLCAweDBmLCAweGU1LCAweDQ5LCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGJkLCAweGYwLCAweGU0LCAweGY1LCAweDQ5LCAweGQyLCAweDAyLCAweGMyLAotICAweDA4LCAweGQyLCAweGFmLCAweDIwLCAweDA2LCAweDM3LCAweDMwLCAweDA0LCAweDFiLCAweDkwLCAweDdmLCAweGNhLCAweGUwLCAweDIwLCAweGUxLCAweDJkLAotICAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDE2LCAweDc1LCAweDRiLCAweDAxLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGY1fX0sCi0gezB4MGY0NiwgNjQsIHsgMHg3ZCwgMHhkMiwgMHgwNiwgMHg4MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhjYywgMHhlMCwgMHgyMCwgMHhlMSwgMHgxMiwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHgxNiwgMHg3NSwgMHg0YiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHhmNSwgMHg3ZCwgMHhkMiwgMHgwNiwgMHgyMCwgMHgyMiwgMHgzMywKLSAgMHgyMCwgMHgwMCwgMHgwNiwgMHhlNSwgMHg0YiwgMHg2NSwgMHg3ZCwgMHg3MCwgMHgyYSwgMHgzMCwgMHgwNiwgMHgxYSwgMHgzMCwgMHgwNCwgMHgwOSwgMHhlNCwKLSAgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHhjMiwgMHgwNCwgMHg4MCwgMHgwNywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHhkMiwgMHgwNH19LAotIHsweDBmODYsIDY0LCB7IDB4YzIsIDB4MDYsIDB4ZTQsIDB4ZjUsIDB4N2QsIDB4ZjUsIDB4NGIsIDB4MzAsIDB4MTYsIDB4MGEsIDB4YzIsIDB4MTYsIDB4YzIsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YzEsCi0gIDB4NzQsIDB4MDEsIDB4ZjAsIDB4MzAsIDB4MjIsIDB4MDMsIDB4MDIsIDB4MTAsIDB4YTQsIDB4MjAsIDB4MDYsIDB4MDMsIDB4MDIsIDB4MTAsIDB4YTQsIDB4MzAsCi0gIDB4MWUsIDB4MGEsIDB4OTAsIDB4N2YsIDB4OWEsIDB4ZTAsIDB4MjAsIDB4ZTUsIDB4MDMsIDB4MDIsIDB4MTAsIDB4YTQsIDB4MzAsIDB4MGQsIDB4MDMsIDB4MDIsCi0gIDB4MTAsIDB4YTQsIDB4MzAsIDB4MTQsIDB4MDMsIDB4MDIsIDB4MTAsIDB4YTQsIDB4MzAsIDB4MDQsIDB4NjIsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWZ9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDJkLAotICAweGFmLCAweDRiLCAweDA1LCAweDRiLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweGY1LAotICAweDEzLCAweGU1LCAweDRiLCAweGMzLCAweDk1LCAweDdkLCAweDUwLCAweDJhLCAweDMwLCAweDFkLCAweDEyLCAweGFmLCAweDRiLCAweDA1LCAweDRiLCAweDc0LAotICAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdkLCAweGY1LCAweDgzLCAweGUwLCAweDEzLCAweDkyLCAweDE4LCAweGFmLCAweDRifX0sCi0gezB4MTAwNiwgNjQsIHsgMHgwNSwgMHg0YiwgMHg3NCwgMHg0MCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0NywgMHhkMiwgMHgxMiwKLSAgMHg4MCwgMHg2YiwgMHhjMiwgMHgxMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjYiwgMHhmMCwgMHhjMiwgMHgwNCwgMHg4MCwgMHg2MCwgMHgzMCwgMHgxZCwgMHgxMiwKLSAgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNSwgMHg4MywgMHhlMCwgMHgxMywKLSAgMHg5MiwgMHgyZCwgMHhhZiwgMHg0YiwgMHgwNSwgMHg0YiwgMHg3NCwgMHhjMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YywgMHhmNX19LAotIHsweDEwNDYsIDY0LCB7IDB4ODMsIDB4ZTAsIDB4ZjUsIDB4MTMsIDB4ZTUsIDB4NGIsIDB4YzMsIDB4OTUsIDB4N2QsIDB4NTAsIDB4MmEsIDB4MzAsIDB4MWQsIDB4MTIsIDB4YWYsIDB4NGIsIDB4MDUsCi0gIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MTgsIDB4YWYsCi0gIDB4NGIsIDB4MDUsIDB4NGIsIDB4NzQsIDB4YzAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4NDcsCi0gIDB4ZDIsIDB4MTIsIDB4ODAsIDB4MDksIDB4YzIsIDB4MTIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4ZDIsIDB4MDQsIDB4MzAsIDB4MWR9fSwKLSB7MHgxMDg2LCA2NCwgeyAweDA0LCAweGEyLCAweDJkLCAweDkyLCAweGMzLCAweGQyLCAweDIyLCAweGMyLCAweGFmLCAweDg1LCAweDEzLCAweGMxLCAweDIwLCAweDEyLCAweDBkLCAweDMwLCAweDE2LAotICAweDBhLCAweGMyLCAweDE2LCAweGMyLCAweDAwLCAweDkwLCAweDdmLCAweGMxLCAweDc0LCAweDAxLCAweGYwLCAweGQyLCAweGFmLCAweDkwLCAweDdmLCAweGMyLAotICAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDExLCAweDdhLCAweGU1LCAweDFhLCAweDcwLCAweDQ2LCAweDMwLCAweDBjLCAweDNmLCAweGU1LCAweDQwLAotICAweDcwLCAweDNiLCAweGEyLCAweDA5LCAweDMzLCAweGY1LCAweDMxLCAweGMyLCAweDA5LCAweGMyLCAweDBjLCAweGU0LCAweGY1LCAweDEyLCAweDdlfX0sCi0gezB4MTBjNiwgNjQsIHsgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNiwgMHgyNSwgMHgxMiwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMiwgMHgxNSwgMHg4NywgMHhmZiwgMHg3NCwKLSAgMHg4MCwgMHgyNSwgMHgxMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxMiwgMHhlNSwgMHgxMiwKLSAgMHhiNCwgMHgwYywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwYywgMHhmMCwgMHg3NSwgMHg0MCwgMHgxMCwgMHgyMiwgMHg3NSwgMHgxYSwgMHgwMSwKLSAgMHgyMiwgMHhlNSwgMHgxYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0NSwgMHgzMCwgMHgwZSwgMHgzZSwgMHhlNSwgMHg0MSwgMHg3MCwgMHgzYSwgMHhhMn19LAotIHsweDExMDYsIDY0LCB7IDB4MGEsIDB4MzMsIDB4ZjUsIDB4M2QsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MGUsIDB4ZTQsIDB4ZjUsIDB4MTIsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MzIsCi0gIDB4MjUsIDB4MTIsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTUsIDB4ODcsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTIsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTIsIDB4ZTUsIDB4MTIsIDB4YjQsIDB4MGMsIDB4ZGIsIDB4OTAsCi0gIDB4N2YsIDB4YzMsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDEsIDB4MTAsIDB4NzUsIDB4MWEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MWMsIDB4NjB9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweDMwLCAweDE1LCAweDFjLCAweGU0LCAweGY1LCAweDEyLCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDFiLCAweDI1LCAweDEyLCAweGY5LCAweGVlLCAweDM0LAotICAweDAwLCAweGZhLCAweDEyLCAweDE1LCAweDg3LCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDEyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LAotICAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDEyLCAweGU1LCAweDEyLCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLAotICAweGU0LCAweGY1LCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDE2LCAweDE3LCAweDEyLCAweDQwLCAweDAwLCAweDEyfX0sCi0gezB4MTE4NiwgNjQsIHsgMHhiNCwgMHgwMSwgMHgxMywgMHgyMCwgMHgwMywgMHgxMSwgMHg5ZSwgMHgwNiwgMHgxMiwgMHgzMywgMHgwOCwgMHgxMiwgMHgyZCwgMHgwOSwgMHgxMiwgMHgyMCwgMHgwYSwKLSAgMHgxMywgMHg3NiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgxMywgMHg2ZiwgMHg5MCwgMHg3ZiwgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxNiwgMHgxNCwKLSAgMHg2MCwgMHg0MCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg2OSwgMHg3NCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwKLSAgMHhkNSwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNywgMHg0YiwgMHg4YiwgMHgxMn19LAotIHsweDExYzYsIDY0LCB7IDB4OGEsIDB4MTMsIDB4ODksIDB4MTQsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDIsIDB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsCi0gIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsCi0gIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTcsIDB4OWEsIDB4OGIsIDB4MTIsIDB4OGEsIDB4MTMsIDB4ODksIDB4MTQsCi0gIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDIsIDB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTB9fSwKLSB7MHgxMjA2LCA2NCwgeyAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweDkwLAotICAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDEyLCAweDE0LCAweGMzLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweDAwLCAweDc0LAotICAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmfX0sCi0gezB4MTI0NiwgNjQsIHsgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMiwgMHgyNiwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwKLSAgMHhhMiwgMHgyYiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMiwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMiwgMHhmMCwgMHgwMiwgMHgxMywgMHg3NiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NH19LAotIHsweDEyODYsIDY0LCB7IDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsCi0gIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZTgsCi0gIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MTMsIDB4NzYsIDB4OTAsIDB4N2YsIDB4ZWF9fSwKLSB7MHgxMmM2LCA2NCwgeyAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDI2LCAweDAyLCAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLAotICAweDEzLCAweDc2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLAotICAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzfX0sCi0gezB4MTMwNiwgNjQsIHsgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1ZiwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwKLSAgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwgMHgyNiwgMHg4MCwgMHgzZiwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMH19LAotIHsweDEzNDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsCi0gIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsCi0gIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4MjAsIDB4MjgsIDB4MDMsIDB4MDIsIDB4MTQsIDB4YzIsIDB4ZTUsIDB4NDB9fSwKLSB7MHgxMzg2LCA2NCwgeyAweDYwLCAweDAyLCAweDE1LCAweDQwLCAweGU1LCAweDQ4LCAweDYwLCAweDRmLCAweDY1LCAweDQ0LCAweDcwLCAweDQ1LCAweGU1LCAweDQyLCAweGY0LCAweDYwLCAweDAyLAotICAweDA1LCAweDQyLCAweGU1LCAweDQyLCAweGMzLCAweDk1LCAweDU1LCAweDQwLCAweDNkLCAweGMyLCAweGFmLCAweDMwLCAweDAxLCAweDE4LCAweDkwLCAweDdmLAotICAweGI4LCAweGUwLCAweDIwLCAweGUxLCAweDI3LCAweDkwLCAweDdmLCAweGI3LCAweGU1LCAweDQ4LCAweGYwLCAweGMyLCAweDAxLCAweGU0LCAweGY1LCAweDQ4LAotICAweGY1LCAweDQyLCAweGY1LCAweDQ0LCAweDgwLCAweDE2LCAweDkwLCAweDdmLCAweGI2LCAweGUwLCAweDIwLCAweGUxLCAweDBmLCAweDkwLCAweDdmfX0sCi0gezB4MTNjNiwgNjQsIHsgMHhiOSwgMHhlNSwgMHg0OCwgMHhmMCwgMHhkMiwgMHgwMSwgMHhlNCwgMHhmNSwgMHg0OCwgMHhmNSwgMHg0MiwgMHhmNSwgMHg0NCwgMHhkMiwgMHhhZiwgMHg4MCwgMHgwNiwKLSAgMHg4NSwgMHg0OCwgMHg0NCwgMHhlNCwgMHhmNSwgMHg0MiwgMHhlNSwgMHgyZSwgMHg2MCwgMHgyZCwgMHgyMCwgMHgxOSwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5YiwKLSAgMHhlMCwgMHgzMCwgMHhlMCwgMHgwZSwgMHhlNSwgMHgyZiwgMHg2MCwgMHgwNSwgMHhlNCwgMHhmNSwgMHgyZiwgMHhkMiwgMHgwYywgMHhlNCwgMHhmNSwgMHgzZSwKLSAgMHg4MCwgMHgxMywgMHhlNSwgMHgzZSwgMHhkMywgMHg5NSwgMHg1NiwgMHg1MCwgMHgwYywgMHhlNSwgMHgzZSwgMHhiNSwgMHg1NiwgMHgwNSwgMHg3NX19LAotIHsweDE0MDYsIDY0LCB7IDB4MmYsIDB4MDEsIDB4ZDIsIDB4MGMsIDB4MDUsIDB4M2UsIDB4YzIsIDB4MTksIDB4ZTUsIDB4NDEsIDB4NjAsIDB4MDIsIDB4MTUsIDB4NDEsIDB4ZTUsIDB4NDksIDB4NjAsCi0gIDB4NGYsIDB4NjUsIDB4NDUsIDB4NzAsIDB4NDUsIDB4ZTUsIDB4NDMsIDB4ZjQsIDB4NjAsIDB4MDIsIDB4MDUsIDB4NDMsIDB4ZTUsIDB4NDMsIDB4YzMsIDB4OTUsCi0gIDB4NmQsIDB4NDAsIDB4M2QsIDB4YzIsIDB4YWYsIDB4MzAsIDB4MDIsIDB4MTgsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjcsIDB4OTAsCi0gIDB4N2YsIDB4YmIsIDB4ZTUsIDB4NDksIDB4ZjAsIDB4YzIsIDB4MDIsIDB4ZTQsIDB4ZjUsIDB4NDksIDB4ZjUsIDB4NDMsIDB4ZjUsIDB4NDUsIDB4ODB9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDE2LCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDIwLCAweGUxLCAweDBmLCAweDkwLCAweDdmLCAweGJkLCAweGU1LCAweDQ5LCAweGYwLCAweGQyLCAweDAyLCAweGU0LAotICAweGY1LCAweDQ5LCAweGY1LCAweDQzLCAweGY1LCAweDQ1LCAweGQyLCAweGFmLCAweDgwLCAweDA2LCAweDg1LCAweDQ5LCAweDQ1LCAweGU0LCAweGY1LCAweDQzLAotICAweGU1LCAweDNhLCAweDYwLCAweDJkLCAweDIwLCAweDFhLCAweDA3LCAweDkwLCAweDdmLCAweDlhLCAweGUwLCAweDMwLCAweGUyLCAweDBlLCAweGU1LCAweDNiLAotICAweDYwLCAweDA1LCAweGU0LCAweGY1LCAweDNiLCAweGQyLCAweDBlLCAweGU0LCAweGY1LCAweDNmLCAweDgwLCAweDEzLCAweGU1LCAweDNmLCAweGQzfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHg5NSwgMHg2ZSwgMHg1MCwgMHgwYywgMHhlNSwgMHgzZiwgMHhiNSwgMHg2ZSwgMHgwNSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhkMiwgMHgwZSwgMHgwNSwgMHgzZiwgMHhjMiwKLSAgMHgxYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyMywgMHg5MCwgMHg3YiwgMHg0MCwgMHhlMCwgMHg2MCwgMHgwOSwgMHhlMCwgMHhmNSwKLSAgMHgxYywgMHg5MCwgMHg3YiwgMHg0MiwgMHhlMCwgMHhmNSwgMHgxZCwgMHg5MCwgMHg3YiwgMHg0MSwgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywKLSAgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDE0YzYsIDY0LCB7IDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTQsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4OWEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZTAsIDB4NTQsIDB4ZmQsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ODQsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4YzcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4NzUsIDB4OTgsIDB4NDAsIDB4NDMsIDB4YTh9fSwKLSB7MHgxNTA2LCA2NCwgeyAweDEwLCAweGMyLCAweDFiLCAweGMyLCAweDA1LCAweGMyLCAweDIxLCAweGMyLCAweDBiLCAweGMyLCAweDEzLCAweGY1LCAweDdjLCAweGY1LCAweDRhLCAweGMyLCAweDExLAotICAweGMyLCAweDE1LCAweGY1LCAweDQyLCAweGMyLCAweDE5LCAweGY1LCAweDQ0LCAweGY1LCAweDQ4LCAweGMyLCAweDIzLCAweGMyLCAweDFjLCAweGY1LCAweDJkLAotICAweGY1LCAweDJmLCAweGMyLCAweDA3LCAweGMyLCAweDAwLCAweGMyLCAweDFmLCAweGY1LCAweDNlLCAweGMyLCAweDA5LCAweGQyLCAweDBjLCAweGY1LCAweDI2LAotICAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweDkwLCAweDdmLCAweGQxLCAweGYwLCAweDc1LCAweGMwLCAweDQwfX0sCi0gezB4MTU0NiwgNjQsIHsgMHg0MywgMHhhOCwgMHg0MCwgMHhjMiwgMHgxZCwgMHhjMiwgMHgwNiwgMHhjMiwgMHgyMiwgMHhjMiwgMHgwZCwgMHhjMiwgMHgxNCwgMHhmNSwgMHg3ZCwgMHhmNSwgMHg0YiwKLSAgMHhjMiwgMHgxMiwgMHhjMiwgMHgxNiwgMHhmNSwgMHg0MywgMHhjMiwgMHgxYSwgMHhmNSwgMHg0NSwgMHhmNSwgMHg0OSwgMHhjMiwgMHgyNCwgMHhjMiwgMHgxZSwKLSAgMHhmNSwgMHgzOSwgMHhmNSwgMHgzYiwgMHhjMiwgMHgwOCwgMHhjMiwgMHgwMCwgMHhjMiwgMHgyMCwgMHhmNSwgMHgzZiwgMHhjMiwgMHgwYSwgMHhkMiwgMHgwZSwKLSAgMHg3NSwgMHgzMiwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhkMiwgMHgyOH19LAotIHsweDE1ODYsIDY0LCB7IDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsCi0gIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsCi0gIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsCi0gIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTV9fSwKLSB7MHgxNWM2LCA2NCwgeyAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLAotICAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGJiLCAweDAxLCAweDEwLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLAotICAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGYwLCAweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLAotICAweGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDBhLCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweGY1fX0sCi0gezB4MTYwNiwgNjQsIHsgMHhmMCwgMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4MywgMHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMiwKLSAgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywKLSAgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwKLSAgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHg3ZH19LAotIHsweDE2NDYsIDY0LCB7IDB4MDIsIDB4MTYsIDB4ODQsIDB4MDIsIDB4MTYsIDB4YzksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsIDB4ODAsCi0gIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsCi0gIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsCi0gIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MTh9fSwKLSB7MHgxNjg2LCA2NCwgeyAweGM1LCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLCAweGZlLAotICAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LAotICAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LAotICAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlfX0sCi0gezB4MTZjNiwgNjQsIHsgMHhlNywgMHg4MCwgMHhiZSwgMHg3NSwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwKLSAgMHhmZiwgMHhkMywgMHg5MiwgMHgyNiwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwKLSAgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NH19LAotIHsweDE3MDYsIDY0LCB7IDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZTAsIDB4NDQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YmMsIDB4ZDIsIDB4YmUsIDB4ZDIsIDB4MmQsCi0gIDB4MTIsIDB4MTgsIDB4N2YsIDB4YzIsIDB4MjcsIDB4YzIsIDB4MjUsIDB4YzIsIDB4MjgsIDB4MzAsIDB4MjgsIDB4MDMsIDB4MTIsIDB4MGEsIDB4ODMsIDB4OTAsCi0gIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTAsIDB4NjAsIDB4MDgsIDB4ZTAsIDB4ZjUsIDB4MTAsIDB4MTIsIDB4MTMsIDB4N2UsIDB4ODAsIDB4ZWEsIDB4MzAsCi0gIDB4MjcsIDB4MDcsIDB4YzIsIDB4MjcsIDB4MTIsIDB4MTEsIDB4N2IsIDB4ODAsIDB4ZTAsIDB4MzAsIDB4MmMsIDB4ZGQsIDB4YzIsIDB4MmMsIDB4MTJ9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDI2LCAweDgwLCAweGQ2LCAweDIyLCAweGU0LCAweGZlLCAweDc1LCAweDE3LCAweGZmLCAweDc1LCAweDE4LCAweDE5LCAweDc1LCAweDE5LCAweDEyLCAweGFiLAotICAweDE3LCAweGFhLCAweDE4LCAweGE5LCAweDE5LCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDE1LCAweGEwLCAweDY0LCAweDAyLCAweDcwLCAweDJkLCAweGFkLAotICAweDA2LCAweDBlLCAweGVkLCAweGI1LCAweDA3LCAweDAxLCAweDIyLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweDE1LCAweGRmLCAweDg1LCAweGYwLCAweDE1LAotICAweGY1LCAweDE2LCAweDYyLCAweDE1LCAweGU1LCAweDE1LCAweDYyLCAweDE2LCAweGU1LCAweDE2LCAweDYyLCAweDE1LCAweDI5LCAweGZkLCAweGU1fX0sCi0gezB4MTc4NiwgNjQsIHsgMHgxNSwgMHgzYSwgMHhhOSwgMHgwNSwgMHg3NSwgMHgxNywgMHhmZiwgMHhmNSwgMHgxOCwgMHg4OSwgMHgxOSwgMHg4MCwgMHhjMywgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwKLSAgMHg3OSwgMHgwMCwgMHgyMiwgMHg4ZiwgMHgxNSwgMHhlNCwgMHhmNSwgMHgxNiwgMHg3NSwgMHgxNywgMHhmZiwgMHg3NSwgMHgxOCwgMHgxOSwgMHg3NSwgMHgxOSwKLSAgMHg4NiwgMHhhYiwgMHgxNywgMHhhYSwgMHgxOCwgMHhhOSwgMHgxOSwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgxNSwgMHhhMCwgMHhiNCwgMHgwMywgMHgxZCwKLSAgMHhhZiwgMHgxNiwgMHgwNSwgMHgxNiwgMHhlZiwgMHhiNSwgMHgxNSwgMHgwMSwgMHgyMiwgMHgxMiwgMHgxNSwgMHg4NywgMHg3ZSwgMHgwMCwgMHgyOX19LAotIHsweDE3YzYsIDY0LCB7IDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MTcsIDB4ZmYsIDB4ZjUsIDB4MTgsIDB4ODksIDB4MTksIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4ZjB9fSwKLSB7MHgxODA2LCA2NCwgeyAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLAotICAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2LCAweGQwLAotICAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLAotICAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDI3LCAweDUzLCAweDkxLCAweGVmLCAweDkwfX0sCi0gezB4MTg0NiwgNjQsIHsgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwKLSAgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwKLSAgMHhkMiwgMHgyYywgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwKLSAgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMH19LAotIHsweDE4ODYsIDY0LCB7IDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MmQsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MDAsCi0gIDB4MDYsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsCi0gIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsCi0gIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4YzF9fSwKLSB7MHgxOGM2LCA2NCwgeyAweGFhLCAweDAxLCAweDFhLCAweDAwLCAweDAzLCAweDFiLCAweDAzLCAweDAwLCAweDAwLCAweGMxLCAweDI3LCAweGMxLCAweDJjLCAweGMxLCAweDI2LCAweGMxLCAweDJiLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCi0gezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgwZiwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMSwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKLSAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAotIHsweDFhMDYsIDY0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYTQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MTgsIDB4MzEsIDB4MDAsIDB4MDIsIDB4MWJ9fSwKLSB7MHgxYjA2LCAgOSwgeyAweDA0LCAweDAwLCAweDAyLCAweDE4LCAweDA3LCAweDAwLCAweDAyLCAweDE4LCAweDU4fX0sCi0gezB4ZmZmZiwgIDAsIHsweDAwfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eF9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzg3ZWQ5Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDQ3ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhMjh4X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjh4X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhMjh4X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxMiwgMHhmN319LAotIHsweDAwMDMsIDE2LCB7IDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4MzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjB9fSwKLSB7MHgwMDEzLCAxNiwgeyAweDkwLCAweDdmLCAweDk0LCAweGYwLCAweDkwLCAweDdmLCAweDlkLCAweDc0LCAweGZmLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDkwfX0sCi0gezB4MDAyMywgMTUsIHsgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHgyMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgxYiwgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGJhfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MWIsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhiYSwgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZDYsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEyLCAweGVifX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgwMH19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCi0gIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NGIsIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCi0gIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAotICAweDBjLCAweGRmLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAotICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGMyLCAweDA1LCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhfX0sCi0gezB4MDE4NiwgNjQsIHsgMHg3ZSwgMHg3OSwgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwKLSAgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhiMSwgMHg0MywgMHg0NiwKLSAgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MH19LAotIHsweDAxYzYsIDY0LCB7IDB4N2UsIDB4MTMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4MzUsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsCi0gIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NWIsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MDMsCi0gIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLAotICAweDdlLCAweDEzLCAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLAotICAweGY1LCAweDQ0LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLAotICAweDA3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyfX0sCi0gezB4MDI0NiwgNjQsIHsgMHg3ZiwgMHg1MywgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgxMCwgMHhhNywgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhjZCwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4MSwgMHg5MCwKLSAgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4MSwgMHg5MCwgMHg3ZSwgMHgwYywKLSAgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZH19LAotIHsweDAyODYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsCi0gIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsCi0gIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTB9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLAotICAweDkwLCAweDdlLCAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAotICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEyLCAweGRmLAotICAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHgxMSwgMHhiMSwgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwKLSAgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiMSwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwKLSAgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDAzNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsCi0gIDB4NTMsIDB4M2UsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsCi0gIDB4N2UsIDB4MWIsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YjEsIDB4ZTQsCi0gIDB4ZjUsIDB4MmIsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTJ9fSwKLSB7MHgwMzg2LCA2NCwgeyAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLAotICAweDkwLCAweDdlLCAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLAotICAweDFmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLAotICAweDc0LCAweDM1LCAweGYwLCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM4fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKLSAgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMiwgMHhkZiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKLSAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHgzMywgMHhlZiwgMHg1NCwgMHg4MCwKLSAgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZCwgMHgxMSwgMHgxMn19LAotIHsweDA0MDYsIDY0LCB7IDB4MTMsIDB4MzMsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsIDB4MDcsIDB4MjAsCi0gIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZWMsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2QsIDB4NDAsCi0gIDB4MDMsIDB4MDIsIDB4MDQsIDB4YWUsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsCi0gIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4YzN9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweDE0LCAweGY1LAotICAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LAotICAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDA0LCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLAotICAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDZmLCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDI5LCAweDkwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MCwKLSAgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwZCwgMHgwNCwKLSAgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwNSwKLSAgMHgzNiwgMHgxMiwgMHgxMiwgMHgyMCwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOSwgMHhjMywgMHg5NX19LAotIHsweDA0YzYsIDY0LCB7IDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NTcsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsIDB4MzAsIDB4MGMsCi0gIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsIDB4MzcsIDB4MzAsCi0gIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsCi0gIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGYsIDB4ODQsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LAotICAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgxLCAweDc1LAotICAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDI5LCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDkwLAotICAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk3LCAweGMyLCAweDA2LCAweGU0fX0sCi0gezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKLSAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKLSAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3ZiwgMHgwM319LAotIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTEsIDB4MTksIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4M2YsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCi0gIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAotICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAotICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAotICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKLSAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg2NSwgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg4YiwKLSAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMCwgMHhmMywgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTAsIDB4ZjMsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCi0gIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCi0gIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKLSAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKLSAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMSwgMHhmYiwgMHg3NSwgMHgzMiwKLSAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAotIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTEsIDB4ZmIsCi0gIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDExLCAweGZiLCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAotICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhkMSwgMHhmMCwKLSAgMHgzMCwgMHgxYSwgMHg1MiwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0OSwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwKLSAgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHgzZSwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwgMHgxMywgMHgxMiwKLSAgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgzMywgMHhkMn19LAotIHsweDA3YzYsIDY0LCB7IDB4MDgsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsCi0gIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsCi0gIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsCi0gIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDIsIDB4ZTAsIDB4ZjUsIDB4MTYsIDB4OTB9fSwKLSB7MHgwODA2LCA2NCwgeyAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLAotICAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDIwLCAweGU1LCAweDBhLCAweDcwLCAweDQwLAotICAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwKLSAgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwKLSAgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMCwgMHhmYSwgMHgxMn19LAotIHsweDA4ODYsIDY0LCB7IDB4MGUsIDB4OGMsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsCi0gIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsCi0gIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsCi0gIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLAotICAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA1LCAweGYwLCAweDc1LCAweDBhLAotICAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LAotICAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDhjLCAweGZmLCAweDc0LCAweDgwLCAweDI1fX0sCi0gezB4MDkwNiwgNjQsIHsgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwKLSAgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwKLSAgMHhlNCwgMHgwYSwgMHgwOCwgMHgwMCwgMHgwYSwgMHg3YywgMHgwMSwgMHgwYSwgMHhlOCwgMHgwMywgMHgwOSwgMHg0NCwgMHgwNiwgMHgwOSwgMHhmYiwgMHgwOCwKLSAgMHgwOSwgMHhmNSwgMHgwOSwgMHgwOSwgMHhkZCwgMHgwYSwgMHgwOSwgMHhlYywgMHgwYiwgMHgwMCwgMHgwMCwgMHgwYiwgMHgzNywgMHg5MCwgMHg3Zn19LAotIHsweDA5NDYsIDY0LCB7IDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDksIDB4ZDMsIDB4NzQsCi0gIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksCi0gIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NzQsIDB4NzUsIDB4ODMsIDB4MTl9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LCAweDkwLCAweDdmLCAweGQ0LCAweGYwLAotICAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBmLAotICAweDBhLCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5LCAweDkwLCAweDdmLCAweGQ1LCAweGYwfX0sCi0gezB4MDljNiwgNjQsIHsgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwKLSAgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwgMHgwYiwgMHgzZSwgMHgxMiwgMHgwYiwKLSAgMHg0NiwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMn19LAotIHsweDBhMDYsIDY0LCB7IDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsCi0gIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsCi0gIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LAotICAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LAotICAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwgMHgxMCwgMHgwMiwgMHgwYiwgMHgzZSwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwKLSAgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwKLSAgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3Zn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsCi0gIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsCi0gIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LAotICAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLAotICAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LAotICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwKLSAgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwKLSAgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYX19LAotIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZDIsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsCi0gIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsCi0gIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTIsIDB4MTAsIDB4ODEsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLAotICAweDEyLCAweDExLCAweGIxLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLCAweDExLCAweGIxLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDExfX0sCi0gezB4MGMwNiwgNjQsIHsgMHhiMSwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg2YSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiMSwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwKLSAgMHgwYywgMHhiNywgMHg3NSwgMHgyZCwgMHgwMSwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwKLSAgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgwZSwgMHhkMiwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwKLSAgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOSwgMHhmNSwgMHgxMywgMHhmNSwgMHgzNywgMHhjMiwgMHgwOCwgMHhjMiwgMHgwYywgMHhjMiwgMHgwNiwgMHhjMn19LAotIHsweDBjNDYsIDY0LCB7IDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZmIsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTAsCi0gIDB4ZjMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4NzUsIDB4NDcsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzR9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGZiLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLAotICAweDExLCAweGZiLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLAotICAweDdmLCAweDEyLCAweDExLCAweGZiLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDhiLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGZiLAotICAweGQyLCAweDEyLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyfX0sCi0gezB4MGNjNiwgNjQsIHsgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwKLSAgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwKLSAgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwKLSAgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDBkMDYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsCi0gIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4ZDIsCi0gIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsCi0gIDB4ZjUsIDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LAotICAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLAotICAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLAotICAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDEwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwKLSAgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHhkMiwKLSAgMHgxYSwgMHgxMiwgMHgxMiwgMHg0NSwgMHhjMiwgMHgxMSwgMHhlNCwgMHhmNSwgMHgwYiwgMHhmNSwgMHgxMywgMHhjMiwgMHgxNywgMHhjMiwgMHgxMn19LAotIHsweDBkYzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsIDB4MDUsIDB4ZDIsCi0gIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsIDB4MDUsIDB4YzIsCi0gIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjEsIDB4ODAsIDB4ZDYsIDB4MzAsIDB4MTgsCi0gIDB4ZDMsIDB4YzIsIDB4MTgsIDB4MTIsIDB4MTMsIDB4OTMsIDB4ODAsIDB4Y2MsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmR9fSwKLSB7MHgwZTA2LCA2NCwgeyAweDc1LCAweDgxLCAweDQ3LCAweDAyLCAweDBlLCAweDQ3LCAweDAyLCAweDBkLCAweDZmLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLAotICAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweDU0LCAweDA3LAotICAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LAotICAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHg4MCwgMHg5MCwgMHgxMiwgMHhhYywgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwKLSAgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwgMHg2MCwgMHhhOCwKLSAgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwKLSAgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYX19LAotIHsweDBlODYsIDY0LCB7IDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsCi0gIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsCi0gIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDYsIDB4ZTksCi0gIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTV9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLAotICAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLAotICAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzLCAweDkzLCAweGY4LCAweDc0LAotICAweDAxLCAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzfX0sCi0gezB4MGYwNiwgNjQsIHsgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwgMHg3NSwgMHgxYywKLSAgMHg4NiwgMHhhYiwgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhhNSwgMHhiNCwgMHgwMywgMHgxZCwKLSAgMHhhZiwgMHgxOSwgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg4YywgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwKLSAgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgxYSwgMHhmZiwgMHhmNSwgMHgxYiwgMHg4OSwgMHgxYywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMH19LAotIHsweDBmNDYsIDY0LCB7IDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsCi0gIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsCi0gIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsCi0gIDB4NjAsIDB4MGEsIDB4MTIsIDB4MTMsIDB4MjcsIDB4OGYsIDB4MWEsIDB4ZWYsIDB4NDIsIDB4MzYsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4OGYsIDB4MWF9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDFhLAotICAweGYwLCAweDEyLCAweDEzLCAweDNmLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LAotICAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDdiLCAweDhmLCAweDFhLAotICAweGVmLCAweDQyLCAweDM3LCAweDgwLCAweGNhLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwKLSAgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwKLSAgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwKLSAgMHgxMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMH19LAotIHsweDEwMDYsIDY0LCB7IDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsCi0gIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsCi0gIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTB9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLAotICAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzfX0sCi0gezB4MTA4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NH19LAotIHsweDEwYzYsIDY0LCB7IDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsCi0gIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsCi0gIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMTA2LCA2NCwgeyAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LAotICAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwKLSAgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3Zn19LAotIHsweDExODYsIDY0LCB7IDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsCi0gIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsCi0gIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMWM2LCA2NCwgeyAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLAotICAweDEzLCAweDBmLCAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDBmLCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLAotICAweDEzLCAweDBmLCAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDA3LCAweDEyLCAweDEzLCAweDBmLCAweDhmLCAweDFiLCAweDgwLAotICAweGU4LCAweGFmLCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxMywKLSAgMHg2MywgMHg4ZiwgMHgxYiwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgxMiwgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwKLSAgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHg2MywgMHg4ZiwgMHgxYiwgMHg4MCwgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MH19LAotIHsweDEyNDYsIDY0LCB7IDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsCi0gIDB4N2YsIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4YzgsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDQsCi0gIDB4MDQsIDB4ZjAsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2UsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4YjEsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4M2UsIDB4NDQsIDB4ODB9fSwKLSB7MHgxMjg2LCA2NCwgeyAweGZkLCAweDEyLCAweDExLCAweGIxLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGZiLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwLAotICAweGZkLCAweDEyLCAweDExLCAweGZiLCAweDIyLCAweDA1LCAweDBlLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAzLCAweDE0LCAweDAzLCAweDAwLAotICAweDAwLCAweGMxLCAweDExLCAweGMxLCAweDE4LCAweGMxLCAweDk1LCAweGMxLCAweDEwLCAweGMxLCAweDE2LCAweDAxLCAweDBhLCAweDAwLCAweGMxfX0sCi0gezB4MTJjNiwgNjQsIHsgMHg5YiwgMHgwMCwgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwKLSAgMHg2MCwgMHgwNSwgMHgxMiwgMHgwZCwgMHg0ZSwgMHg4MCwgMHhlZSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhlNywgMHgwMCwgMHgwMiwgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MGYsIDB4YmQsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwMCwgMHgwMywgMHgxMiwKLSAgMHgwZCwgMHg1ZiwgMHgxMiwgMHgwYiwgMHg0NiwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgIDAsICB7MHgwMH19Ci19OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4YV9mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhMjh4YV9mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjU2Njc4Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGFfZncuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ0OSArMCwwIEBACi0vKiBrZXlzcGFuX3VzYTI4eGFfZncuaAotCi0JVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gYXMga2V5c3Bhbl91c2EyOHhhLmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4eGFfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDEyLCAweGY5fX0sCi0gezB4MDAwMywgMTYsIHsgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMH19LAotIHsweDAwMTMsIDE2LCB7IDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTcsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwMDIzLCAxNSwgeyAweDdmLCAweDk1LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDA3LCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDIyfX0sCi0gezB4MDA0NiwgMTYsIHsgMHgzMCwgMHgwOSwgMHgxOCwgMHgxMiwgMHgxMywgMHgyNywgMHhlZiwgMHhjMywgMHg5NSwgMHgzYywgMHg0MCwgMHgwMywgMHgwMiwgMHgwMCwgMHhkOCwgMHg5MH19LAotIHsweDAwNTYsIDE2LCB7IDB4N2YsIDB4YmYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MDksIDB4YzIsIDB4MDAsIDB4ODAsIDB4NzcsIDB4MzAsIDB4MDMsIDB4M2IsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwMDY2LCAxNiwgeyAweGM2LCAweGUwLCAweDIwLCAweGUxLCAweDZkLCAweDEyLCAweDEzLCAweDI3LCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdlfX0sCi0gezB4MDA3NiwgMTYsIHsgMHg0MCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhjNywgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwgMHgxMSwgMHg2MH19LAotIHsweDAwODYsIDE2LCB7IDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MGMsIDB4N2UsIDB4NzUsIDB4MGQsIDB4NDEsIDB4MTIsIDB4MGMsIDB4Yzh9fSwKLSB7MHgwMDk2LCAxNiwgeyAweGMyLCAweDAzLCAweGU0LCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDgwLCAweDM5LCAweDkwLCAweDdmLCAweGM4LCAweGUwLCAweDIwLCAweGUxLCAweDMyfX0sCi0gezB4MDBhNiwgMTYsIHsgMHgxMiwgMHgxMywgMHgyNywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHgyOSwgMHg5MCwgMHg3ZCwgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwOX19LAotIHsweDAwYjYsIDE2LCB7IDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2R9fSwKLSB7MHgwMGM2LCAxNiwgeyAweDdmLCAweGMxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweGMxLCAweDEyLCAweDBjLCAweGM4LCAweGQyLCAweDAzLCAweGU0LCAweDkwLCAweDdmfX0sCi0gezB4MDBkNiwgMTYsIHsgMHhjOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNiwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHg2MCwgMHgxMiwgMHgxMSwgMHhlNCwgMHg4Zn19LAotIHsweDAwZTYsIDE2LCB7IDB4MTksIDB4MTIsIDB4MTMsIDB4MzMsIDB4OGYsIDB4MzYsIDB4ZTUsIDB4MTksIDB4YzMsIDB4OTUsIDB4M2EsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4MGZ9fSwKLSB7MHgwMGY2LCAxNiwgeyAweGVmLCAweDMwLCAweGUwLCAweDA4LCAweGU1LCAweDM2LCAweDIwLCAweGU3LCAweDAzLCAweDMwLCAweDBiLCAweDVlLCAweGMyLCAweDBiLCAweGU1LCAweDE5fX0sCi0gezB4MDAzNiwgMTIsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMn19LAotIHsweDAwNDMsICAzLCB7IDB4MDIsIDB4MTMsIDB4MDB9fSwKLSB7MHgwMDAwLCAgMywgeyAweDAyLCAweDBlLCAweDBlfX0sCi0gezB4MDEwNiwgNjQsIHsgMHg2MCwgMHg1OCwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgzNiwgMHgwMiwgMHhlNSwgMHgzNiwgMHgzMCwgMHhlNywgMHgyNiwgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwKLSAgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgyMCwgMHg4NSwgMHgxOSwgMHgwOCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgwYywgMHg3ZSwKLSAgMHg3NSwgMHgwZCwgMHg4MCwgMHhhZiwgMHgzNiwgMHgxMiwgMHgwZiwgMHg1OSwgMHhlNSwgMHgxOSwgMHgyNSwgMHhlMCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwKLSAgMHg4MCwgMHgyNywgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgzZiwgMHg4NSwgMHgxOSwgMHgwOH19LAotIHsweDAxNDYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4ODAsIDB4ZTUsIDB4MzYsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODEsIDB4NzUsIDB4MGMsIDB4N2UsIDB4NzUsIDB4MGQsIDB4ODEsIDB4MTIsCi0gIDB4MGMsIDB4ZWQsIDB4ZTUsIDB4MTksIDB4MDQsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2UsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsCi0gIDB4MjAsIDB4MDUsIDB4MDMsIDB4MDIsIDB4MDMsIDB4YzEsIDB4YzIsIDB4MDUsIDB4ZTQsIDB4ZjUsIDB4MTgsIDB4NzQsIDB4NDAsIDB4MjUsIDB4MTgsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4N2MsIDB4MDAsIDB4N2IsIDB4MDEsIDB4N2F9fSwKLSB7MHgwMTg2LCA2NCwgeyAweDdlLCAweDc5LCAweDAwLCAweDI0LCAweDAwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLCAweDEyLCAweDBlLCAweGUwLCAweDA1LCAweDE4LCAweGU1LAotICAweDE4LCAweGI0LCAweDIwLCAweGQ3LCAweDkwLCAweDdlLCAweDAwLCAweGUwLCAweDYwLCAweDY4LCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDI0LAotICAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGJmLCAweDdmLCAweDAzLCAweDdkLCAweGNkLCAweDEyLCAweDExLCAweGJmLCAweDQzLCAweDQ2LAotICAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweGU0LCAweDkwfX0sCi0gezB4MDFjNiwgNjQsIHsgMHg3ZSwgMHgxMywgMHhmMCwgMHg4MCwgMHgzMCwgMHg5MCwgMHg3ZSwgMHgwMSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHg0MywgMHg5MCwgMHg3ZSwgMHgwMiwgMHhlMCwKLSAgMHhmZiwgMHgxMiwgMHgxMCwgMHg2OSwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgxMSwgMHhlMCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgwMywKLSAgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhiZiwgMHg0MywgMHg0NiwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNiwgMHg5MH19LAotIHsweDAyMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MDMsIDB4ZTAsIDB4NzAsIDB4MDYsIDB4OTAsIDB4N2UsIDB4MTMsIDB4ZTAsIDB4NzAsIDB4MDgsIDB4ZTQsIDB4OTAsCi0gIDB4N2UsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4MjUsIDB4ZmYsIDB4OTAsIDB4N2UsIDB4MDUsIDB4ZTAsIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsCi0gIDB4ZjUsIDB4NDQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDQsIDB4ZjAsIDB4OTAsIDB4N2UsCi0gIDB4MDcsIDB4ZTAsIDB4NjAsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDIsIDB4ODAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDJ9fSwKLSB7MHgwMjQ2LCA2NCwgeyAweDdmLCAweDUzLCAweDQyLCAweGZjLCAweDkwLCAweDdlLCAweDA5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDQyLCAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLAotICAweDEwLCAweGI1LCAweDkwLCAweDdlLCAweDBiLCAweGUwLCAweGZmLCAweDEyLCAweDEwLCAweGRiLCAweGFmLCAweDQyLCAweDEyLCAweDEwLCAweDhmLCAweDkwLAotICAweDdlLCAweDAzLCAweGUwLCAweDYwLCAweDA4LCAweDUzLCAweDQyLCAweDdmLCAweGFmLCAweDQyLCAweDEyLCAweDEwLCAweDhmLCAweDkwLCAweDdlLCAweDBjLAotICAweGUwLCAweDYwLCAweDE4LCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQ2LCAweDAyLCAweDgwLCAweDAzLCAweDUzLCAweDQ2LCAweGZkfX0sCi0gezB4MDI4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgwZSwgMHhlMCwgMHg2MCwKLSAgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMSwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxMiwgMHhlMCwgMHhmNSwgMHgzYSwgMHhhMywKLSAgMHhlMCwgMHgxMywgMHg5MiwgMHgwZCwgMHhhMywgMHhlMCwgMHhmNSwgMHgzYywgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgxMH19LAotIHsweDAyYzYsIDY0LCB7IDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4MTYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4NDQsIDB4YmYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsCi0gIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4MTIsIDB4MTIsIDB4ZWQsCi0gIDB4ZWYsIDB4NTQsIDB4ZmUsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4NTMsIDB4M2UsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTJ9fSwKLSB7MHgwMzA2LCA2NCwgeyAweDExLCAweGJmLCAweGU0LCAweGY1LCAweDJhLCAweGY1LCAweDI5LCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDE3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNlLAotICAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGJmLCAweDc1LCAweDI5LCAweDAxLCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDE4LAotICAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweGU1LCAweDQwLCAweDQ0LCAweDA0LCAweDkwLCAweGMwLCAweDAwLAotICAweGYwLCAweGQyLCAweDAwLCAweDkwLCAweDdlLCAweDE5LCAweGUwLCAweDYwLCAweDExLCAweDQzLCAweDQ0LCAweDQwLCAweDkwLCAweDdmLCAweDk4fX0sCi0gezB4MDM0NiwgNjQsIHsgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgxYSwgMHhlMCwgMHg2MCwgMHgwZiwKLSAgMHg1MywgMHgzZSwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3NSwgMHgyYiwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwKLSAgMHg3ZSwgMHgxYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwgMHgwMSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhiZiwgMHhlNCwKLSAgMHhmNSwgMHgyYiwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxYywgMHhlMCwgMHg2MCwgMHgwZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMn19LAotIHsweDAzODYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWQsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MGIsCi0gIDB4OTAsIDB4N2UsIDB4MWUsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MmMsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsCi0gIDB4MWYsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4NzQsIDB4MzEsIDB4ZjAsIDB4NzQsIDB4MTUsIDB4ZjAsCi0gIDB4NzQsIDB4MzUsIDB4ZjAsIDB4ZDIsIDB4MDMsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2YsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4NTIsIDB4ZTUsIDB4Mzh9fSwKLSB7MHgwM2M2LCA2NCwgeyAweDYwLCAweDAyLCAweDE1LCAweDM4LCAweDIwLCAweDEzLCAweDQ5LCAweGU1LCAweDEzLCAweGQzLCAweDk0LCAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDEzLCAweDgwLAotICAweDNlLCAweDc1LCAweDEzLCAweDBhLCAweDMwLCAweDFiLCAweDAyLCAweGQyLCAweDEzLCAweDEyLCAweDEyLCAweGVkLCAweGVmLCAweDU0LCAweDAxLCAweGY1LAotICAweDE5LCAweDY1LCAweDJhLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDJhLCAweGQyLCAweDA3LCAweDEyLCAweDEzLCAweDNmLCAweGVmLCAweDU0LCAweDgwLAotICAweGY1LCAweDE5LCAweDY1LCAweDI2LCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDI2LCAweGQyLCAweDA3LCAweDMwLCAweDBkLCAweDExLCAweDEyfX0sCi0gezB4MDQwNiwgNjQsIHsgMHgxMywgMHgzZiwgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNSwgMHhkMiwgMHgwNywgMHgyMCwKLSAgMHgxYiwgMHgwMywgMHgwMiwgMHgwNywgMHhlYywgMHgzMCwgMHgwYSwgMHgxOCwgMHgxMiwgMHgxMywgMHg3YiwgMHhlZiwgMHhjMywgMHg5NSwgMHgzZCwgMHg0MCwKLSAgMHgwMywgMHgwMiwgMHgwNCwgMHhhZSwgMHg5MCwgMHg3ZiwgMHhjMSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgwMCwgMHg4MCwgMHg3NywKLSAgMHgzMCwgMHgwNCwgMHgzYiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHg3YiwgMHhlZiwgMHhjM319LAotIHsweDA0NDYsIDY0LCB7IDB4OTQsIDB4NDAsIDB4NTAsIDB4NjQsIDB4OTAsIDB4N2QsIDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4MTQsIDB4ZjUsCi0gIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjAsIDB4MGYsIDB4ZjUsIDB4MDgsIDB4N2UsIDB4N2QsIDB4N2YsIDB4NDEsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsCi0gIDB4MGQsIDB4NDEsIDB4MTIsIDB4MGQsIDB4MTIsIDB4YzIsIDB4MDQsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4ODAsIDB4MzksIDB4OTAsIDB4N2YsCi0gIDB4Y2MsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MzIsIDB4MTIsIDB4MTMsIDB4N2IsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTB9fSwKLSB7MHgwNDg2LCA2NCwgeyAweDdjLCAweGMwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLAotICAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdjLCAweDdmLCAweGMxLCAweDc1LCAweDBjLCAweDdjLCAweDc1LCAweDBkLCAweGMxLCAweDEyLCAweDBkLCAweDEyLAotICAweGQyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweDkwLCAweDdmLCAweGJhLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA1LAotICAweDM2LCAweDEyLCAweDEyLCAweDJlLCAweDhmLCAweDE5LCAweDEyLCAweDEzLCAweDg3LCAweDhmLCAweDM3LCAweGU1LCAweDE5LCAweGMzLCAweDk1fX0sCi0gezB4MDRjNiwgNjQsIHsgMHgzYiwgMHg1MCwgMHgwZiwgMHgxMiwgMHgxMywgMHg2MywgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNywgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYywKLSAgMHg1ZSwgMHhjMiwgMHgwYywgMHhlNSwgMHgxOSwgMHg2MCwgMHg1OCwgMHhiNCwgMHg4MCwgMHgwMywgMHg0MywgMHgzNywgMHgwMiwgMHhlNSwgMHgzNywgMHgzMCwKLSAgMHhlNywgMHgyNiwgMHhlNSwgMHgxOSwgMHhkMywgMHg5NCwgMHgyMCwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOSwgMHgyMCwgMHg4NSwgMHgxOSwgMHgwOCwgMHg3ZSwKLSAgMHg3ZCwgMHg3ZiwgMHg4MCwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHg4MCwgMHhhZiwgMHgzNywgMHgxMiwgMHgwZiwgMHg5MiwgMHhlNX19LAotIHsweDA1MDYsIDY0LCB7IDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsCi0gIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDgsIDB4OTAsIDB4N2QsIDB4ODAsIDB4ZTUsIDB4MzcsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODEsIDB4NzUsCi0gIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODEsIDB4MTIsIDB4MGQsIDB4MzcsIDB4ZTUsIDB4MTksIDB4MDQsIDB4OTAsIDB4N2YsIDB4YmIsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4ZDAsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDYsIDB4MjAsIDB4MDYsIDB4MDMsIDB4MDIsIDB4MDcsIDB4OTcsIDB4YzIsIDB4MDYsIDB4ZTR9fSwKLSB7MHgwNTQ2LCA2NCwgeyAweGY1LCAweDE4LCAweDc0LCAweGMwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LAotICAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5LCAweDIwLCAweDI0LCAweDIwLCAweGY5LCAweGVjLCAweDM0LCAweDdlLCAweGZhLCAweGVmLAotICAweDEyLCAweDBlLCAweGUwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDIwLCAweGQ3LCAweDkwLCAweDdlLCAweDIwLCAweGUwLCAweDYwLCAweDY4LAotICAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDYwLCAweDI0LCAweDdmLCAweDAxLCAweGU0LCAweGZkLCAweDEyLCAweDEyLCAweDA5LCAweDdmLCAweDAzfX0sCi0gezB4MDU4NiwgNjQsIHsgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMiwgMHgwOSwgMHg0MywgMHg0NywgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlNSwgMHg0NywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgzMywgMHhmMCwgMHg4MCwgMHgzMCwgMHg5MCwgMHg3ZSwgMHgyMSwgMHhlMCwgMHhmZiwgMHgxMiwKLSAgMHgxMSwgMHgyNywgMHg5MCwgMHg3ZSwgMHgyMiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg0ZCwgMHg3ZiwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgzMSwgMHhlMCwKLSAgMHhmZCwgMHgxMiwgMHgxMiwgMHgwOSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMiwgMHgwOSwgMHg0MywgMHg0NywgMHg4MCwgMHg5MH19LAotIHsweDA1YzYsIDY0LCB7IDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsCi0gIDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MjMsIDB4ZTAsIDB4NzAsIDB4MDYsIDB4OTAsIDB4N2UsCi0gIDB4MzMsIDB4ZTAsIDB4NzAsIDB4MDgsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4NzUsIDB4MmUsIDB4ZmYsIDB4OTAsIDB4N2UsIDB4MjUsIDB4ZTAsCi0gIDB4NjAsIDB4MTIsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjUsIDB4NDUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTB9fSwKLSB7MHgwNjA2LCA2NCwgeyAweGMwLCAweDAwLCAweGU1LCAweDQ1LCAweGYwLCAweDkwLCAweDdlLCAweDI3LCAweGUwLCAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQzLAotICAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQzLCAweDdmLCAweDUzLCAweDQzLCAweGZjLCAweDkwLCAweDdlLCAweDI5LCAweGUwLCAweDYwLCAweDExLCAweDQzLAotICAweDQzLCAweDAyLCAweGEzLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDczLCAweDkwLCAweDdlLCAweDJiLCAweGUwLCAweGZmLCAweDEyLCAweDExLCAweDk5LAotICAweGFmLCAweDQzLCAweDEyLCAweDExLCAweDAxLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDYwLCAweDA4LCAweDUzLCAweDQzLCAweDdmLCAweGFmfX0sCi0gezB4MDY0NiwgNjQsIHsgMHg0MywgMHgxMiwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZSwgMHgyYywgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgwMiwKLSAgMHg4MCwgMHgwMywgMHg1MywgMHg0NywgMHhmZCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywKLSAgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyZSwgMHhlMCwgMHg2MCwgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NywgMHgwMSwgMHg4MCwgMHgwMywKLSAgMHg1MywgMHg0NywgMHhmZSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NywgMHhmMH19LAotIHsweDA2ODYsIDY0LCB7IDB4OTAsIDB4N2UsIDB4MzIsIDB4ZTAsIDB4ZjUsIDB4M2IsIDB4YTMsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MGUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2QsIDB4YTMsIDB4ZTAsCi0gIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MTAsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MzYsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4NTMsIDB4NDUsIDB4YmYsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwNmM2LCA2NCwgeyAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDEyLCAweDEzLCAweDU3LCAweGVmLCAweDU0LCAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNmLCAweGZkLAotICAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweGU0LCAweGY1LCAweDMzLCAweGY1LCAweDMyLCAweGQyLCAweDA4LCAweDkwLCAweDdlLAotICAweDM3LCAweGUwLCAweDYwLCAweDBmLCAweDQzLCAweDNmLCAweDAyLCAweGU0LCAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDA5LCAweDc1LCAweDMyLAotICAweDAxLCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDM4LCAweGUwLCAweDYwLCAweDEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwfX0sCi0gezB4MDcwNiwgNjQsIHsgMHhlNSwgMHg0MSwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwgMHgwMCwgMHg5MCwgMHg3ZSwgMHgzOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0NSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwKLSAgMHg5MCwgMHg3ZSwgMHgzYSwgMHhlMCwgMHg2MCwgMHgwZiwgMHg1MywgMHgzZiwgMHhmZSwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgwOSwKLSAgMHg3NSwgMHgzNCwgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzYiwgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMSwgMHhlNH19LAotIHsweDA3NDYsIDY0LCB7IDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MDksIDB4ZTQsIDB4ZjUsIDB4MzQsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2MsIDB4ZTAsIDB4NjAsIDB4MGUsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDIsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsCi0gIDB4M2QsIDB4ZTAsIDB4NjAsIDB4MDIsIDB4ZDIsIDB4MGMsIDB4OTAsIDB4N2UsIDB4M2UsIDB4ZTAsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MzUsIDB4MDEsIDB4ZTQsCi0gIDB4ZjUsIDB4MzksIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2YsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTN9fSwKLSB7MHgwNzg2LCA2NCwgeyAweGYwLCAweDc0LCAweDMzLCAweGYwLCAweDc0LCAweDE2LCAweGYwLCAweDc0LCAweDM2LCAweGYwLCAweGQyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGQxLCAweGYwLAotICAweDMwLCAweDFhLCAweDUyLCAweGU1LCAweDM5LCAweDYwLCAweDAyLCAweDE1LCAweDM5LCAweDMwLCAweDEzLCAweDQ5LCAweGU1LCAweDEzLCAweGQzLCAweDk0LAotICAweDAwLCAweDQwLCAweDA0LCAweDE1LCAweDEzLCAweDgwLCAweDNlLCAweDc1LCAweDEzLCAweDBhLCAweDMwLCAweDFiLCAweDAyLCAweGMyLCAweDEzLCAweDEyLAotICAweDEzLCAweDU3LCAweGVmLCAweDU0LCAweDAxLCAweGY1LCAweDE5LCAweDY1LCAweDMzLCAweDYwLCAweDA1LCAweDg1LCAweDE5LCAweDMzLCAweGQyfX0sCi0gezB4MDdjNiwgNjQsIHsgMHgwOCwgMHgxMiwgMHgxMywgMHg5MywgMHhlZiwgMHg1NCwgMHg4MCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyZiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyZiwgMHhkMiwKLSAgMHgwOCwgMHgzMCwgMHgwZSwgMHgxMSwgMHgxMiwgMHgxMywgMHg5MywgMHhlZiwgMHg1NCwgMHgxMCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyZSwgMHg2MCwgMHgwNSwKLSAgMHg4NSwgMHgxOSwgMHgyZSwgMHhkMiwgMHgwOCwgMHgzMCwgMHgxYSwgMHgyYSwgMHg5MCwgMHg3ZiwgMHhkMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHgyMywgMHg5MCwKLSAgMHg3YiwgMHg0MCwgMHhlMCwgMHg2MCwgMHgwOSwgMHhlMCwgMHhmNSwgMHgxNSwgMHg5MCwgMHg3YiwgMHg0MiwgMHhlMCwgMHhmNSwgMHgxNiwgMHg5MH19LAotIHsweDA4MDYsIDY0LCB7IDB4N2IsIDB4NDEsIDB4ZTAsIDB4NjAsIDB4MDksIDB4OTAsIDB4N2YsIDB4ZDcsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4NzQsIDB4MzcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsCi0gIDB4ZDMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzIsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDksIDB4MjAsIDB4ZTUsIDB4MGEsIDB4NzAsIDB4NDAsCi0gIDB4MzAsIDB4MDcsIDB4MzksIDB4ZTUsIDB4MzgsIDB4NzAsIDB4MzUsIDB4YzIsIDB4MDcsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsCi0gIDB4MjQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjV9fSwKLSB7MHgwODQ2LCA2NCwgeyAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGRiLAotICAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDA5LCAweGYwLCAweDc1LCAweDM4LCAweDEwLCAweGU0LCAweGY1LCAweDJjLCAweDc1LCAweDBhLCAweDAxLCAweDIyLAotICAweGU1LCAweDBhLCAweDY0LCAweDAxLCAweDcwLCAweDQwLCAweDMwLCAweDA4LCAweDM5LCAweGU1LCAweDM5LCAweDcwLCAweDM1LCAweGMyLCAweDA4LCAweGY1LAotICAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDJkLCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyfX0sCi0gezB4MDg4NiwgNjQsIHsgMHgwZSwgMHg5YSwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwKLSAgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOSwgMHgxMCwgMHhlNCwKLSAgMHhmNSwgMHgzNSwgMHg3NSwgMHgwYSwgMHgwMiwgMHgyMiwgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMiwgMHg3MCwgMHgzNiwgMHgzMCwgMHgxNCwgMHgyZiwgMHhjMiwKLSAgMHgxNCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgwZSwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZSwgMHgzNCwgMHgwMH19LAotIHsweDA4YzYsIDY0LCB7IDB4ZmEsIDB4MTIsIDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsCi0gIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDUsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDUsIDB4ZjAsIDB4NzUsIDB4MGEsCi0gIDB4MDMsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4NjAsIDB4MzAsIDB4MTUsIDB4MTUsIDB4ZTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsCi0gIDB4MTQsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OWEsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjV9fSwKLSB7MHgwOTA2LCA2NCwgeyAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDAzLCAweGRiLAotICAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweGU0LCAweGY1LCAweDBhLCAweDIyLCAweDkwLCAweDdmLCAweGU5LCAweGUwLCAweDEyLCAweDBlLAotICAweGYyLCAweDBhLCAweDA4LCAweDAwLCAweDBhLCAweDdjLCAweDAxLCAweDBhLCAweGU4LCAweDAzLCAweDA5LCAweDQ0LCAweDA2LCAweDA5LCAweGZiLCAweDA4LAotICAweDA5LCAweGY1LCAweDA5LCAweDA5LCAweGRkLCAweDBhLCAweDA5LCAweGVjLCAweDBiLCAweDAwLCAweDAwLCAweDBiLCAweDM3LCAweDkwLCAweDdmfX0sCi0gezB4MDk0NiwgNjQsIHsgMHhlYiwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOSwgMHgxNCwgMHg2MCwgMHg2MSwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwOSwgMHhkMywgMHg3NCwKLSAgMHgxOSwgMHg5MCwgMHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMiwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMywgMHg3NSwgMHg4MiwgMHg4MiwgMHg3NSwgMHg4MywgMHgxOSwKLSAgMHhlZiwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3YiwgMHg3NSwgMHg4MywgMHgxOSwgMHhmMCwgMHg3NSwgMHg4MiwgMHg3NCwgMHg3NSwgMHg4MywgMHgxOX19LAotIHsweDA5ODYsIDY0LCB7IDB4ZjAsIDB4NzUsIDB4ODIsIDB4NjYsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODIsIDB4NTgsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsCi0gIDB4NzQsIDB4MTIsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MGYsCi0gIDB4MTgsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MGQsIDB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjB9fSwKLSB7MHgwOWM2LCA2NCwgeyAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGI0LCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDA5LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LAotICAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDA5LCAweDAyLCAweDBiLCAweDNlLCAweDEyLCAweDBiLAotICAweDQ2LCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweDAwLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDAyfX0sCi0gezB4MGEwNiwgNjQsIHsgMHgwYiwgMHgzZSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwKLSAgMHhhMiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgxNiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwKLSAgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwYiwgMHgzZSwgMHg5MCwgMHg3Zn19LAotIHsweDBhNDYsIDY0LCB7IDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsCi0gIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsCi0gIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4M2UsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDJ9fSwKLSB7MHgwYTg2LCA2NCwgeyAweDYwLCAweDAzLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDEwLCAweDAyLCAweDBiLCAweDNlLAotICAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDNlLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LAotICAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLAotICAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MGFjNiwgNjQsIHsgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwKLSAgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwKLSAgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwKLSAgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwgMHgxMCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMH19LAotIHsweDBiMDYsIDY0LCB7IDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsCi0gIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsCi0gIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsCi0gIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwYjQ2LCA2NCwgeyAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweDMwLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweDk2LCAweGYwLCAweDkwLAotICAweDdmLCAweDk1LCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweDNmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE4LAotICAweGYwLCAweGU0LCAweGY1LCAweDhlLCAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweGU0LCAweGY1LAotICAweDI0LCAweDc1LCAweDE4LCAweDAxLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGU0LCAweDM0LCAweDAwLCAweGZhfX0sCi0gezB4MGI4NiwgNjQsIHsgMHhlNCwgMHgxMiwgMHgwZSwgMHhlMCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYSwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOCwKLSAgMHhmNSwgMHgxMywgMHhmNSwgMHgzNiwgMHhjMiwgMHgwNywgMHhjMiwgMHgwYiwgMHhjMiwgMHgwNSwgMHhjMiwgMHgwMCwgMHhjMiwgMHgwOSwgMHhjMiwgMHgxMywKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg3NSwgMHg0NCwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwKLSAgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHg4ZiwgMHg5MCwgMHg3Zn19LAotIHsweDBiYzYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDAsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4NzUsIDB4NDYsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsCi0gIDB4MTIsIDB4MTEsIDB4YmYsIDB4ZTQsIDB4ZmYsIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4YmYsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTF9fSwKLSB7MHgwYzA2LCA2NCwgeyAweGJmLCAweDdmLCAweDAxLCAweDEyLCAweDEyLCAweDc4LCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDExLCAweGJmLCAweDdmLCAweDEzLCAweDdkLCAweDAxLAotICAweDEyLCAweDExLCAweGJmLCAweDIwLCAweDFiLCAweDAzLCAweDAyLCAweDBjLCAweGM1LCAweDc1LCAweDJkLCAweDAxLCAweDc1LCAweDE4LCAweDAxLCAweDdiLAotICAweDAwLCAweDc0LCAweDJkLCAweDI1LCAweDE4LCAweGY5LCAweGU0LCAweDM0LCAweDAwLCAweGZhLCAweGU0LCAweDEyLCAweDBlLCAweGUwLCAweDA1LCAweDE4LAotICAweGU1LCAweDE4LCAweGI0LCAweDA5LCAweGVhLCAweDc1LCAweDNiLCAweDAxLCAweGU0LCAweGY1LCAweDM5LCAweGY1LCAweDEzLCAweGY1LCAweDM3fX0sCi0gezB4MGM0NiwgNjQsIHsgMHhjMiwgMHgwOCwgMHhjMiwgMHgwYywgMHhjMiwgMHgwNiwgMHhjMiwgMHgwMCwgMHhjMiwgMHgwYSwgMHhjMiwgMHgxMywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwKLSAgMHhmMCwgMHg3NSwgMHg0NSwgMHgwMywgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHgwMywgMHhmMCwgMHg3ZiwgMHgwYywgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwKLSAgMHgwOSwgMHg3ZiwgMHgxMCwgMHg4ZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgwMSwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMCwgMHg3ZiwgMHgwMSwKLSAgMHg4ZiwgMHg0MSwgMHhlZiwgMHg0NCwgMHgwNiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMH19LAotIHsweDBjODYsIDY0LCB7IDB4NzUsIDB4NDcsIDB4ODAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4ODAsIDB4ZjAsIDB4MGYsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MDksIDB4ZTQsIDB4ZmYsCi0gIDB4N2UsIDB4YTMsIDB4YWQsIDB4MDYsIDB4OGQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZTQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2QsIDB4N2YsIDB4MTIsIDB4MTIsIDB4MDksIDB4N2YsIDB4MDEsIDB4MTIsIDB4MTIsIDB4OTksCi0gIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MDksIDB4N2YsIDB4MTMsIDB4N2QsIDB4MDEsIDB4MTIsIDB4MTIsIDB4MDksIDB4ZDJ9fSwKLSB7MHgwY2M2LCA2NCwgeyAweDEyLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLCAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LAotICAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweDA1LCAweDg2LCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweDA1LAotICAweDg2LCAweGRmLCAweGY3LCAweGQyLCAweGFmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweGFmLCAweDA4LCAweGU1LCAweDBkLAotICAweGY1LCAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1fX0sCi0gezB4MGQwNiwgNjQsIHsgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHgwNSwgMHg4NiwgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwKLSAgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNX19LAotIHsweDBkNDYsIDY0LCB7IDB4ODMsIDB4YzIsIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsCi0gIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsCi0gIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4ZjksIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4NDMsIDB4ODcsIDB4MDEsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjIsIDB4ZDIsIDB4MTksIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9fSwKLSB7MHgwZDg2LCA2NCwgeyAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweGZmLCAweGQzLCAweDkyLCAweDEwLCAweGU0LCAweDMzLCAweGZlLCAweGVmLCAweDRlLCAweGYwLCAweGQyLCAweGU4LCAweDQzLAotICAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGRlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LAotICAweGZmLCAweGYwLCAweDkwLCAweDdmLCAweGE5LCAweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFmLAotICAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDBkLCAweGYwLCAweGQyLCAweGFmLCAweGQyLCAweDFhfX0sCi0gezB4MGRjNiwgNjQsIHsgMHgxMiwgMHgxMiwgMHg1MywgMHhjMiwgMHgxMSwgMHhlNCwgMHhmNSwgMHgwYiwgMHhmNSwgMHgxMywgMHhjMiwgMHgxNywgMHhjMiwgMHgxMiwgMHg5MCwgMHg3ZiwgMHhhMSwKLSAgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHg2NSwgMHgxNywgMHg2MCwgMHgxMCwgMHgzMCwgMHgxMiwgMHgwNSwgMHhkMiwgMHgxYSwgMHgxMiwKLSAgMHgwMCwgMHg0NiwgMHg5MCwgMHg3ZiwgMHhkOCwgMHhlMCwgMHhmNSwgMHgxNywgMHg4MCwgMHgwOCwgMHgzMCwgMHgxMiwgMHgwNSwgMHhjMiwgMHgxYSwgMHgxMiwKLSAgMHgwMCwgMHg0NiwgMHgzMCwgMHgxMSwgMHgwNywgMHhjMiwgMHgxMSwgMHgxMiwgMHgwOSwgMHgyMSwgMHg4MCwgMHhkNiwgMHgzMCwgMHgxOCwgMHhkM319LAotIHsweDBlMDYsIDY0LCB7IDB4YzIsIDB4MTgsIDB4MTIsIDB4MTMsIDB4OWYsIDB4ODAsIDB4Y2MsIDB4MjIsIDB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4NDcsCi0gIDB4MDIsIDB4MGUsIDB4NTUsIDB4MDIsIDB4MGQsIDB4N2QsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NDAsIDB4MDMsIDB4ZjYsCi0gIDB4ODAsIDB4MDEsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsCi0gIDB4YzgsIDB4YzMsIDB4MzMsIDB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODB9fSwKLSB7MHgwZTQ2LCA2NCwgeyAweDAxLCAweDQ2LCAweGY2LCAweGRmLCAweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDEyLAotICAweGJhLCAweGU0LCAweDdlLCAweDAxLCAweDkzLCAweDYwLCAweGJjLCAweGEzLCAweGZmLCAweDU0LCAweDNmLCAweDMwLCAweGU1LCAweDA5LCAweDU0LCAweDFmLAotICAweGZlLCAweGU0LCAweDkzLCAweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LAotICAweGU0LCAweDkzLCAweGEzLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4fX0sCi0gezB4MGU4NiwgNjQsIHsgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwKLSAgMHhlNywgMHg4MCwgMHhiZSwgMHhiYiwgMHgwMSwgMHgwNiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwMiwgMHhlNywgMHgyMiwKLSAgMHhiYiwgMHhmZSwgMHgwMiwgMHhlMywgMHgyMiwgMHg4OSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlNCwgMHg5MywgMHgyMiwgMHhiYiwgMHgwMSwgMHgwYywgMHhlNSwKLSAgMHg4MiwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNSwgMHg4MywgMHgzYSwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNX19LAotIHsweDBlYzYsIDY0LCB7IDB4ODIsIDB4ZjgsIDB4ZTYsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDYsIDB4ZTksIDB4MjUsIDB4ODIsIDB4ZjgsIDB4ZTIsIDB4MjIsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsCi0gIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsCi0gIDB4ZjAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZjcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDEsIDB4ZjMsIDB4MjIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ODIsIDB4ZjgsCi0gIDB4ZTQsIDB4OTMsIDB4NzAsIDB4MTIsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NzAsIDB4MGQsIDB4YTMsIDB4YTMsIDB4OTMsIDB4ZjgsIDB4NzQsIDB4MDF9fSwKLSB7MHgwZjA2LCA2NCwgeyAweDkzLCAweGY1LCAweDgyLCAweDg4LCAweDgzLCAweGU0LCAweDczLCAweDc0LCAweDAyLCAweDkzLCAweDY4LCAweDYwLCAweGVmLCAweGEzLCAweGEzLCAweGEzLCAweDgwLAotICAweGRmLCAweDhmLCAweDE4LCAweGU0LCAweGY1LCAweDE5LCAweDc1LCAweDFhLCAweGZmLCAweDc1LCAweDFiLCAweDE5LCAweDc1LCAweDFjLCAweDg2LCAweGFiLAotICAweDFhLCAweGFhLCAweDFiLCAweGE5LCAweDFjLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDBlLCAweGIzLCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDE5LAotICAweDA1LCAweDE5LCAweGVmLCAweGI1LCAweDE4LCAweDAxLCAweDIyLCAweDEyLCAweDBlLCAweDlhLCAweDdlLCAweDAwLCAweDI5LCAweGZmLCAweGVlfX0sCi0gezB4MGY0NiwgNjQsIHsgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgxYSwgMHhmZiwgMHhmNSwgMHgxYiwgMHg4OSwgMHgxYywgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwKLSAgMHgwMCwgMHgyMiwgMHg4ZiwgMHgxYSwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhZSwgMHgwYywgMHg3MCwgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwKLSAgMHg4MiwgMHg4ZSwgMHg4MywgMHhlNSwgMHgxYSwgMHhmMCwgMHgxMiwgMHgwMCwgMHgzNiwgMHgwNSwgMHgwZCwgMHhlNSwgMHgwZCwgMHhhYywgMHgwYywgMHg3MCwKLSAgMHgwMiwgMHgwNSwgMHgwYywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgxNSwgMHgwOCwgMHhlNSwgMHgwOCwgMHg2MH19LAotIHsweDBmODYsIDY0LCB7IDB4MGEsIDB4MTIsIDB4MTMsIDB4MzMsIDB4OGYsIDB4MWEsIDB4ZWYsIDB4NDIsIDB4MzYsIDB4ODAsIDB4Y2EsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsCi0gIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsCi0gIDB4MTMsIDB4NGIsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsCi0gIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTUsIDB4MDgsIDB4ZTUsIDB4MDgsIDB4NjAsIDB4MGEsIDB4MTIsIDB4MTMsIDB4ODcsIDB4OGYsIDB4MWEsIDB4ZWZ9fSwKLSB7MHgwZmM2LCA2NCwgeyAweDQyLCAweDM3LCAweDgwLCAweGNhLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LAotICAweDc1LCAweDg2LCAweDAwLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LAotICAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweGMwLCAweGUwLAotICAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGQyLCAweDExfX0sCi0gezB4MTAwNiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKLSAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwKLSAgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhkMiwgMHgxOCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwKLSAgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDEwNDYsIDY0LCB7IDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjB9fSwKLSB7MHgxMDg2LCA2NCwgeyAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0fX0sCi0gezB4MTBjNiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywKLSAgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYn19LAotIHsweDExMDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MDgsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDV9fSwKLSB7MHgxMTQ2LCA2NCwgeyAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LAotICAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwfX0sCi0gezB4MTE4NiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwKLSAgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNX19LAotIHsweDExYzYsIDY0LCB7IDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTcsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWQsIDB4ZjAsIDB4MjIsIDB4MTIsIDB4MTMsIDB4MWIsCi0gIDB4OGYsIDB4MWEsIDB4MTIsIDB4MTMsIDB4MWIsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4MWIsCi0gIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4MWIsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTh9fSwKLSB7MHgxMjA2LCA2NCwgeyAweGFmLCAweDFhLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBmLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBkLAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLCAweDZmLCAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDZmLCAweDhmLAotICAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyLCAweDEzLCAweDZmLCAweDhmLCAweDFhLCAweGU1LCAweDFhLCAweDY1fX0sCi0gezB4MTI0NiwgNjQsIHsgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHg2ZiwgMHg4ZiwgMHgxYiwgMHg4MCwgMHhlOCwgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwKLSAgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgxYSwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhmNCwKLSAgMHg3ZSwgMHgwMSwgMHgxMiwgMHgxMiwgMHhkNiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwKLSAgMHgyMiwgMHhhZSwgMHgwNywgMHhlNCwgMHhmZiwgMHhlNSwgMHgzZSwgMHg1NCwgMHg3ZiwgMHhmZCwgMHgxMiwgMHgxMSwgMHhiZiwgMHg5MCwgMHg3Zn19LAotIHsweDEyODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4M2UsIDB4NDQsIDB4ODAsIDB4ZmQsIDB4MTIsIDB4MTEsCi0gIDB4YmYsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4M2YsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MDksIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4M2YsIDB4NDQsIDB4ODAsIDB4ZmQsIDB4MTIsCi0gIDB4MTIsIDB4MDksIDB4MjIsIDB4MDUsIDB4MGUsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MTQsIDB4MDMsIDB4MDAsIDB4MDB9fSwKLSB7MHgxMmM2LCA2NCwgeyAweGMxLCAweDExLCAweGMxLCAweDE4LCAweGMxLCAweDk1LCAweGMxLCAweDEwLCAweGMxLCAweDE2LCAweDAxLCAweDBhLCAweDAwLCAweGMxLCAweDliLCAweDAwLCAweDhlLAotICAweDE4LCAweDhmLCAweDE5LCAweGU1LCAweDE5LCAweDE1LCAweDE5LCAweGFlLCAweDE4LCAweDcwLCAweDAyLCAweDE1LCAweDE4LCAweDRlLCAweDYwLCAweDA1LAotICAweDEyLCAweDBkLCAweDVjLCAweDgwLCAweGVlLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLAotICAweGZmLCAweDIyLCAweDUzLCAweGQ4LCAweGVmLCAweDMyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDBmLCAweGY1LCAweDAwLCAweDAyLCAweDEzfX0sCi0gezB4MTMwNiwgNjQsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgwZiwgMHhjYiwgMHgwMCwgMHgwMiwgMHgxMCwgMHgxYywgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgxNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg5MH19LAotIHsweDEzNDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDksIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmZ9fSwKLSB7MHgxMzg2LCA2NCwgeyAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBkLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDBlLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDEyLCAweDAwLCAweDAzLCAweDEyLCAweDBkLCAweDZkLCAweDEyLCAweDBiLAotICAweDQ2LCAweDIyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTNjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTU0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTYwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTZjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTg0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxOGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDEyLCAweDAxLCAweDEwLCAweDAxLCAweGZmLCAweDAwfX0sCi0gezB4MTkwNiwgNjQsIHsgMHgwMCwgMHg0MCwgMHhjZCwgMHgwNiwgMHgxNSwgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMCwgMHgwMiwgMHgwOSwgMHgwMiwgMHg3NCwgMHgwMCwgMHgwMSwKLSAgMHgwMSwgMHgwMCwgMHhhMCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwZSwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMSwKLSAgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwKLSAgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNCwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwNSwgMHgwMiwgMHg0MCwgMHgwMH19LAotIHsweDE5NDYsIDY0LCB7IDB4MDAsIDB4MDcsIDB4MDUsIDB4MDYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsCi0gIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODMsIDB4MDIsCi0gIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODUsIDB4MDIsIDB4NDAsIDB4MDAsCi0gIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODYsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDF9fSwKLSB7MHgxOTg2LCA2NCwgeyAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDQ4LCAweDAzLCAweDRiLCAweDAwLCAweDY1LCAweDAwLCAweDc5LCAweDAwLCAweDczLCAweDAwLCAweDcwLCAweDAwLCAweDYxLAotICAweDAwLCAweDZlLCAweDAwLCAweDJjLCAweDAwLCAweDIwLCAweDAwLCAweDYxLCAweDAwLCAweDIwLCAweDAwLCAweDY0LCAweDAwLCAweDY5LCAweDAwLCAweDc2LAotICAweDAwLCAweDY5LCAweDAwLCAweDczLCAweDAwLCAweDY5LCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDIwLCAweDAwLCAweDZmLCAweDAwLCAweDY2LAotICAweDAwLCAweDIwLCAweDAwLCAweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDZlLCAweDAwLCAweDZmLCAweDAwLCAweDUzLCAweDAwLCAweDc5LCAweDAwfX0sCi0gezB4MTljNiwgNjQsIHsgMHg3MywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgzNiwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwKLSAgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1NSwgMHgwMCwgMHg1MywKLSAgMHgwMCwgMHg0MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0MSwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3MCwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMH19LAotIHsweDFhMDYsICA0LCB7IDB4NzIsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHhmZmZmLCAgMCwgezB4MDB9fQotfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGJfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTI4eGJfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjVmY2FkNC4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2EyOHhiX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NDggKzAsMCBAQAotLyoga2V5c3Bhbl91c2EyOHhiX2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhMjl4Yl9mdy5oIGlzCi0KLQkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKLQkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQotCQkKLQlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKLQlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKLQlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZSAKLQlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IAotCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotCi0JUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlIAotCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbCAKLQlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLiAKLQotCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoICAKLQlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlIAotCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gCi0JcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCi0KLSovCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXp1c2JfaGV4X3JlY29yZCBrZXlzcGFuX3VzYTI4eGJfZmlybXdhcmVbXSA9IHsKLSB7MHgwMDMzLCAgMywgeyAweDAyLCAweDAwLCAweDJkfX0sCi0gezB4MDAyZCwgIDQsIHsgMHg1MywgMHhkOCwgMHhlZiwgMHgzMn19LAotIHsweDAwNDYsIDE2LCB7IDB4MzAsIDB4MDksIDB4MTgsIDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTUsIDB4M2MsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDAsIDB4ZDgsIDB4OTB9fSwKLSB7MHgwMDU2LCAxNiwgeyAweDdmLCAweGJmLCAweDc0LCAweDAxLCAweGYwLCAweGMyLCAweDA5LCAweGMyLCAweDAwLCAweDgwLCAweDc3LCAweDMwLCAweDAzLCAweDNiLCAweDkwLCAweDdmfX0sCi0gezB4MDA2NiwgMTYsIHsgMHhjNiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg2ZCwgMHgxMiwgMHgxMywgMHgzMywgMHhlZiwgMHhjMywgMHg5NCwgMHg0MCwgMHg1MCwgMHg2NCwgMHg5MCwgMHg3ZX19LAotIHsweDAwNzYsIDE2LCB7IDB4NDAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZTAsIDB4MTQsIDB4ZjUsIDB4MTksIDB4MjAsIDB4MDAsIDB4MTEsIDB4NjB9fSwKLSB7MHgwMDg2LCAxNiwgeyAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdlLCAweDdmLCAweDQxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBjLCAweGNjfX0sCi0gezB4MDA5NiwgMTYsIHsgMHhjMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjNywgMHhmMCwgMHg4MCwgMHgzOSwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzMn19LAotIHsweDAwYTYsIDE2LCB7IDB4MTIsIDB4MTMsIDB4MzMsIDB4ZWYsIDB4YzMsIDB4OTQsIDB4NDAsIDB4NTAsIDB4MjksIDB4OTAsIDB4N2QsIDB4YzAsIDB4ZTAsIDB4MTMsIDB4OTIsIDB4MDl9fSwKLSB7MHgwMGI2LCAxNiwgeyAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkfX0sCi0gezB4MDBjNiwgMTYsIHsgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3ZCwgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwgMHgwYywgMHhjYywgMHhkMiwgMHgwMywgMHhlNCwgMHg5MCwgMHg3Zn19LAotIHsweDAwZDYsIDE2LCB7IDB4YzksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MDEsIDB4NjAsIDB4MTIsIDB4MTEsIDB4ZjUsIDB4OGZ9fSwKLSB7MHgwMGU2LCAxNiwgeyAweDE5LCAweDEyLCAweDEzLCAweDNmLCAweDhmLCAweDM2LCAweGU1LCAweDE5LCAweGMzLCAweDk1LCAweDNhLCAweDUwLCAweDBmLCAweDEyLCAweDEzLCAweDFifX0sCi0gezB4MDBmNiwgMTYsIHsgMHhlZiwgMHgzMCwgMHhlMCwgMHgwOCwgMHhlNSwgMHgzNiwgMHgyMCwgMHhlNywgMHgwMywgMHgzMCwgMHgwYiwgMHg1ZSwgMHhjMiwgMHgwYiwgMHhlNSwgMHgxOX19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDEzLCAweDAwfX0sCi0gezB4MDAwMywgMTYsIHsgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHg5MH19LAotIHsweDAwMTMsIDE2LCB7IDB4N2YsIDB4YzQsIDB4ZTQsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDB9fSwKLSB7MHgwMDIzLCAxMCwgeyAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgwZSwgMHgxMn19LAotIHsweDAxMDYsIDY0LCB7IDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzYsIDB4MDIsIDB4ZTUsIDB4MzYsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsCi0gIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksIDB4MDgsIDB4N2UsIDB4N2UsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2UsCi0gIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzYsIDB4MTIsIDB4MGYsIDB4NWQsIDB4ZTUsIDB4MTksIDB4MjUsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YjcsIDB4ZjAsCi0gIDB4ODAsIDB4MjcsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4M2YsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4M2YsIDB4ODUsIDB4MTksIDB4MDh9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweDkwLCAweDdlLCAweDgwLCAweGU1LCAweDM2LCAweGYwLCAweDdlLCAweDdlLCAweDdmLCAweDgxLCAweDc1LCAweDBjLCAweDdlLCAweDc1LCAweDBkLCAweDgxLCAweDEyLAotICAweDBjLCAweGYxLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGI3LCAweGYwLCAweDkwLCAweDdmLCAweGNlLCAweGUwLCAweDMwLCAweGUxLCAweDA2LAotICAweDIwLCAweDA1LCAweDAzLCAweDAyLCAweDAzLCAweGMxLCAweGU0LCAweGY1LCAweDE4LCAweDc0LCAweDQwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LAotICAweDM0LCAweDdjLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE4LCAweDdjLCAweDAwLCAweDdiLCAweDAxLCAweDdhLCAweDdlLCAweDc5fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgwMCwgMHgyNCwgMHgwMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwgMHgxMiwgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwKLSAgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgwMCwgMHhlMCwgMHg2MCwgMHg2OCwgMHg5MCwgMHg3ZSwgMHgwMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwKLSAgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhjZCwgMHgxMiwgMHgxMSwgMHhkMCwgMHg0MywgMHg0NiwgMHg4MCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZSwgMHgxM319LAotIHsweDAxYzYsIDY0LCB7IDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MDEsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTAsIDB4NTQsIDB4OTAsIDB4N2UsIDB4MDIsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTAsIDB4N2EsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MTEsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsCi0gIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NDMsIDB4NDYsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsCi0gIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTUsIDB4NDAsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDB9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGYwLCAweDkwLCAweDdlLCAweDAzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLCAweDEzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDEzLAotICAweGYwLCAweDc1LCAweDI1LCAweGZmLCAweDkwLCAweDdlLCAweDA1LCAweGUwLCAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ0LAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ0LCAweGYwLCAweDkwLCAweDdlLCAweDA3LCAweGUwLAotICAweDYwLCAweDJiLCAweGEzLCAweGUwLCAweDYwLCAweDA1LCAweDQzLCAweDQyLCAweDgwLCAweDgwLCAweDAzLCAweDUzLCAweDQyLCAweDdmLCAweDUzfX0sCi0gezB4MDI0NiwgNjQsIHsgMHg0MiwgMHhmYywgMHg5MCwgMHg3ZSwgMHgwOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0MiwgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhjNiwKLSAgMHg5MCwgMHg3ZSwgMHgwYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMCwgMHhlYywgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZSwgMHgwMywKLSAgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MiwgMHg3ZiwgMHhhZiwgMHg0MiwgMHgxMiwgMHgxMCwgMHhhMCwgMHg5MCwgMHg3ZSwgMHgwYywgMHhlMCwgMHg2MCwKLSAgMHgxOCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0NiwgMHgwMiwgMHg4MCwgMHgwMywgMHg1MywgMHg0NiwgMHhmZCwgMHg5MCwgMHg3Zn19LAotIHsweDAyODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MGUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsCi0gIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MDEsIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDYsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsCi0gIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDYsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MTIsIDB4ZTAsIDB4ZjUsIDB4M2EsIDB4YTMsIDB4ZTAsIDB4MTMsCi0gIDB4OTIsIDB4MGQsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4M2MsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDYsIDB4MTAsIDB4ODAsIDB4MDN9fSwKLSB7MHgwMmM2LCA2NCwgeyAweDUzLCAweDQ2LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ2LCAweGYwLCAweDkwLCAweDdlLAotICAweDE2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ0LCAweGJmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LAotICAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDEyLCAweDEzLCAweDBmLCAweGVmLCAweDU0LAotICAweGZlLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDUzLCAweDNlLCAweGZkLCAweGU0LCAweGZmLCAweGFkLCAweDNlLCAweDEyLCAweDExLCAweGQwfX0sCi0gezB4MDMwNiwgNjQsIHsgMHhlNCwgMHhmNSwgMHgyYSwgMHhmNSwgMHgyOSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZSwgMHgwMiwgMHhlNCwKLSAgMHhmZiwgMHhhZCwgMHgzZSwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3NSwgMHgyOSwgMHgwMSwgMHhkMiwgMHgwNywgMHg5MCwgMHg3ZSwgMHgxOCwgMHhlMCwgMHg2MCwKLSAgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHhlNSwgMHg0MCwgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhkMiwKLSAgMHgwMCwgMHg5MCwgMHg3ZSwgMHgxOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxM319LAotIHsweDAzNDYsIDY0LCB7IDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MWEsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2UsCi0gIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4NzUsIDB4MmIsIDB4MDEsIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWIsCi0gIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2UsIDB4MDEsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2UsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4ZTQsIDB4ZjUsIDB4MmIsCi0gIDB4ZDIsIDB4MDcsIDB4OTAsIDB4N2UsIDB4MWMsIDB4ZTAsIDB4NjAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDQwLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDFkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBiLCAweDkwLCAweDdlLAotICAweDFlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDJjLCAweDAxLCAweGU0LCAweGY1LCAweDM4LCAweGQyLCAweDA3LCAweDkwLCAweDdlLCAweDFmLCAweGUwLAotICAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDExLCAweGYwLCAweDc0LCAweDMxLCAweGYwLCAweDc0LCAweDE1LCAweGYwLCAweDc0LCAweDM1LAotICAweGYwLCAweGQyLCAweDAzLCAweGMyLCAweDA1LCAweGU0LCAweDkwLCAweDdmLCAweGNmLCAweGYwLCAweDMwLCAweDFhLCAweDU0LCAweGU1LCAweDM4fX0sCi0gezB4MDNjNiwgNjQsIHsgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOCwgMHgyMCwgMHgxMywgMHg0YiwgMHhlNSwgMHgxMywgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwKLSAgMHg0MCwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhkMiwgMHgxMywgMHgxMiwgMHgxMywgMHgwZiwgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwKLSAgMHgxOSwgMHg2NSwgMHgyYSwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyYSwgMHhkMiwgMHgwNywgMHgxMiwgMHgxMywgMHg0YiwgMHhlZiwgMHg1NCwgMHg4MCwKLSAgMHg2NCwgMHg4MCwgMHhmNSwgMHgxOSwgMHg2NSwgMHgyNiwgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOSwgMHgyNiwgMHhkMiwgMHgwNywgMHgzMCwgMHgwZH19LAotIHsweDA0MDYsIDY0LCB7IDB4MTEsIDB4MTIsIDB4MTMsIDB4NGIsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MjUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MjUsIDB4ZDIsCi0gIDB4MDcsIDB4MjAsIDB4MWIsIDB4MDMsIDB4MDIsIDB4MDcsIDB4ZjAsIDB4MzAsIDB4MGEsIDB4MTgsIDB4MTIsIDB4MTMsIDB4ODcsIDB4ZWYsIDB4YzMsIDB4OTUsCi0gIDB4M2QsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4YjAsIDB4OTAsIDB4N2YsIDB4YzEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDAsCi0gIDB4ODAsIDB4NzcsIDB4MzAsIDB4MDQsIDB4M2IsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4NmQsIDB4MTIsIDB4MTMsIDB4ODd9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDY0LCAweDkwLCAweDdkLCAweDQwLCAweGUwLCAweDEzLCAweDkyLCAweDBhLCAweDkwLCAweDdmLCAweGNiLCAweGUwLAotICAweDE0LCAweGY1LCAweDE5LCAweDIwLCAweDAwLCAweDExLCAweDYwLCAweDBmLCAweGY1LCAweDA4LCAweDdlLCAweDdkLCAweDdmLCAweDQxLCAweDc1LCAweDBjLAotICAweDdkLCAweDc1LCAweDBkLCAweDQxLCAweDEyLCAweDBkLCAweDE2LCAweGMyLCAweDA0LCAweGU0LCAweDkwLCAweDdmLCAweGNiLCAweGYwLCAweDgwLCAweDM5LAotICAweDkwLCAweDdmLCAweGNjLCAweGUwLCAweDIwLCAweGUxLCAweDMyLCAweDEyLCAweDEzLCAweDg3LCAweGVmLCAweGMzLCAweDk0LCAweDQwLCAweDUwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHgyOSwgMHg5MCwgMHg3YywgMHhjMCwgMHhlMCwgMHgxMywgMHg5MiwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlMCwgMHgxNCwgMHhmNSwgMHgxOSwgMHgyMCwgMHgwMCwKLSAgMHgxMSwgMHg2MCwgMHgwZiwgMHhmNSwgMHgwOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHhjMSwgMHg3NSwgMHgwYywgMHg3YywgMHg3NSwgMHgwZCwgMHhjMSwgMHgxMiwKLSAgMHgwZCwgMHgxNiwgMHhkMiwgMHgwNCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiYSwgMHhlMCwgMHgzMCwgMHhlMSwgMHgwMywKLSAgMHgwMiwgMHgwNSwgMHgzOCwgMHgxMiwgMHgxMiwgMHgzZiwgMHg4ZiwgMHgxOSwgMHgxMiwgMHgxMywgMHg5MywgMHg4ZiwgMHgzNywgMHhlNSwgMHgxOX19LAotIHsweDA0YzYsIDY0LCB7IDB4YzMsIDB4OTUsIDB4M2IsIDB4NTAsIDB4MGYsIDB4MTIsIDB4MTMsIDB4NmYsIDB4ZWYsIDB4MzAsIDB4ZTAsIDB4MDgsIDB4ZTUsIDB4MzcsIDB4MjAsIDB4ZTcsIDB4MDMsCi0gIDB4MzAsIDB4MGMsIDB4NWUsIDB4YzIsIDB4MGMsIDB4ZTUsIDB4MTksIDB4NjAsIDB4NTgsIDB4YjQsIDB4ODAsIDB4MDMsIDB4NDMsIDB4MzcsIDB4MDIsIDB4ZTUsCi0gIDB4MzcsIDB4MzAsIDB4ZTcsIDB4MjYsIDB4ZTUsIDB4MTksIDB4ZDMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4MTksIDB4MjAsIDB4ODUsIDB4MTksCi0gIDB4MDgsIDB4N2UsIDB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MGMsIDB4N2QsIDB4NzUsIDB4MGQsIDB4ODAsIDB4YWYsIDB4MzcsIDB4MTIsIDB4MGZ9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDk2LCAweGU1LCAweDE5LCAweDI1LCAweGUwLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDgwLCAweDI3LCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLAotICAweDAzLCAweDc1LCAweDE5LCAweDNmLCAweDg1LCAweDE5LCAweDA4LCAweDkwLCAweDdkLCAweDgwLCAweGU1LCAweDM3LCAweGYwLCAweDdlLCAweDdkLCAweDdmLAotICAweDgxLCAweDc1LCAweDBjLCAweDdkLCAweDc1LCAweDBkLCAweDgxLCAweDEyLCAweDBkLCAweDNiLCAweGU1LCAweDE5LCAweDA0LCAweDkwLCAweDdmLCAweGJiLAotICAweGYwLCAweDkwLCAweDdmLCAweGQwLCAweGUwLCAweDMwLCAweGUxLCAweDA2LCAweDIwLCAweDA2LCAweDAzLCAweDAyLCAweDA3LCAweDk5LCAweGU0fX0sCi0gezB4MDU0NiwgNjQsIHsgMHhmNSwgMHgxOCwgMHg3NCwgMHhjMCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwKLSAgMHg3YywgMHgwMCwgMHg3YiwgMHgwMSwgMHg3YSwgMHg3ZSwgMHg3OSwgMHgyMCwgMHgyNCwgMHgyMCwgMHhmOSwgMHhlYywgMHgzNCwgMHg3ZSwgMHhmYSwgMHhlZiwKLSAgMHgxMiwgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgyMCwgMHhkNywgMHg5MCwgMHg3ZSwgMHgyMCwgMHhlMCwgMHg2MCwgMHg2OCwKLSAgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgyNCwgMHg3ZiwgMHgwMSwgMHhlNCwgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3ZiwgMHgwM319LAotIHsweDA1ODYsIDY0LCB7IDB4N2QsIDB4Y2QsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4ZTUsIDB4NDcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2UsIDB4MzMsIDB4ZjAsIDB4ODAsIDB4MzAsIDB4OTAsIDB4N2UsIDB4MjEsIDB4ZTAsIDB4ZmYsIDB4MTIsCi0gIDB4MTEsIDB4MzgsIDB4OTAsIDB4N2UsIDB4MjIsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTEsIDB4NWUsIDB4N2YsIDB4MDEsIDB4OTAsIDB4N2UsIDB4MzEsIDB4ZTAsCi0gIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MDMsIDB4N2QsIDB4MDcsIDB4MTIsIDB4MTIsIDB4MWEsIDB4NDMsIDB4NDcsIDB4ODAsIDB4OTB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLAotICAweGU1LCAweDQxLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLCAweDIzLCAweGUwLCAweDcwLCAweDA2LCAweDkwLCAweDdlLAotICAweDMzLCAweGUwLCAweDcwLCAweDA4LCAweGU0LCAweDkwLCAweDdlLCAweDMzLCAweGYwLCAweDc1LCAweDJlLCAweGZmLCAweDkwLCAweDdlLCAweDI1LCAweGUwLAotICAweDYwLCAweDEyLCAweGEzLCAweGUwLCAweDU0LCAweDNmLCAweGY1LCAweDQ1LCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHhjMCwgMHgwMCwgMHhlNSwgMHg0NSwgMHhmMCwgMHg5MCwgMHg3ZSwgMHgyNywgMHhlMCwgMHg2MCwgMHgyYiwgMHhhMywgMHhlMCwgMHg2MCwgMHgwNSwgMHg0MywgMHg0MywKLSAgMHg4MCwgMHg4MCwgMHgwMywgMHg1MywgMHg0MywgMHg3ZiwgMHg1MywgMHg0MywgMHhmYywgMHg5MCwgMHg3ZSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgxMSwgMHg0MywKLSAgMHg0MywgMHgwMiwgMHhhMywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHg4NCwgMHg5MCwgMHg3ZSwgMHgyYiwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxMSwgMHhhYSwKLSAgMHhhZiwgMHg0MywgMHgxMiwgMHgxMSwgMHgxMiwgMHg5MCwgMHg3ZSwgMHgyMywgMHhlMCwgMHg2MCwgMHgwOCwgMHg1MywgMHg0MywgMHg3ZiwgMHhhZn19LAotIHsweDA2NDYsIDY0LCB7IDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2UsIDB4MmMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDIsCi0gIDB4ODAsIDB4MDMsIDB4NTMsIDB4NDcsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsCi0gIDB4ZjAsIDB4OTAsIDB4N2UsIDB4MmUsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MDUsIDB4NDMsIDB4NDcsIDB4MDEsIDB4ODAsIDB4MDMsCi0gIDB4NTMsIDB4NDcsIDB4ZmUsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTUsIDB4NDcsIDB4ZjB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdlLCAweDMyLCAweGUwLCAweGY1LCAweDNiLCAweGEzLCAweGUwLCAweDEzLCAweDkyLCAweDBlLCAweGEzLCAweGUwLCAweGY1LCAweDNkLCAweGEzLCAweGUwLAotICAweDYwLCAweDA1LCAweDQzLCAweDQ3LCAweDEwLCAweDgwLCAweDAzLCAweDUzLCAweDQ3LCAweGVmLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBjLCAweGYwLAotICAweDkwLCAweGMwLCAweDAwLCAweGU1LCAweDQ3LCAweGYwLCAweDkwLCAweDdlLCAweDM2LCAweGUwLCAweDYwLCAweDMyLCAweDUzLCAweDQ1LCAweGJmLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MDZjNiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHgxMiwgMHgxMywgMHg2MywgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg1MywgMHgzZiwgMHhmZCwKLSAgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHhlNCwgMHhmNSwgMHgzMywgMHhmNSwgMHgzMiwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwKLSAgMHgzNywgMHhlMCwgMHg2MCwgMHgwZiwgMHg0MywgMHgzZiwgMHgwMiwgMHhlNCwgMHhmZiwgMHhhZCwgMHgzZiwgMHgxMiwgMHgxMiwgMHgxYSwgMHg3NSwgMHgzMiwKLSAgMHgwMSwgMHhkMiwgMHgwOCwgMHg5MCwgMHg3ZSwgMHgzOCwgMHhlMCwgMHg2MCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYSwgMHhmMH19LAotIHsweDA3MDYsIDY0LCB7IDB4ZTUsIDB4NDEsIDB4NDQsIDB4MDQsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZDIsIDB4MDAsIDB4OTAsIDB4N2UsIDB4MzksIDB4ZTAsIDB4NjAsIDB4MTEsIDB4NDMsCi0gIDB4NDUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsCi0gIDB4OTAsIDB4N2UsIDB4M2EsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NTMsIDB4M2YsIDB4ZmUsIDB4ZTQsIDB4ZmYsIDB4YWQsIDB4M2YsIDB4MTIsIDB4MTIsIDB4MWEsCi0gIDB4NzUsIDB4MzQsIDB4MDEsIDB4ZDIsIDB4MDgsIDB4OTAsIDB4N2UsIDB4M2IsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4NDMsIDB4M2YsIDB4MDEsIDB4ZTR9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweGZmLCAweGFkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLCAweGU0LCAweGY1LCAweDM0LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNjLCAweGUwLCAweDYwLCAweDBlLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweGU1LCAweDQxLCAweDQ0LCAweDAyLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdlLAotICAweDNkLCAweGUwLCAweDYwLCAweDAyLCAweGQyLCAweDBjLCAweDkwLCAweDdlLCAweDNlLCAweGUwLCAweDYwLCAweDA4LCAweDc1LCAweDM1LCAweDAxLCAweGU0LAotICAweGY1LCAweDM5LCAweGQyLCAweDA4LCAweDkwLCAweDdlLCAweDNmLCAweGUwLCAweDYwLCAweDExLCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDEzfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhmMCwgMHg3NCwgMHgzMywgMHhmMCwgMHg3NCwgMHgxNiwgMHhmMCwgMHg3NCwgMHgzNiwgMHhmMCwgMHhkMiwgMHgwNCwgMHhjMiwgMHgwNiwgMHhlNCwgMHg5MCwgMHg3ZiwKLSAgMHhkMSwgMHhmMCwgMHgzMCwgMHgxYSwgMHg1NCwgMHhlNSwgMHgzOSwgMHg2MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHgzMCwgMHgxMywgMHg0YiwgMHhlNSwgMHgxMywKLSAgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNCwgMHgxNSwgMHgxMywgMHg4MCwgMHg0MCwgMHg3NSwgMHgxMywgMHgwYSwgMHgzMCwgMHgxYiwgMHgwMiwgMHhjMiwKLSAgMHgxMywgMHgxMiwgMHgxMywgMHg2MywgMHhlZiwgMHg1NCwgMHgwMSwgMHhmNSwgMHgxOSwgMHg2NSwgMHgzMywgMHg2MCwgMHgwNSwgMHg4NSwgMHgxOX19LAotIHsweDA3YzYsIDY0LCB7IDB4MzMsIDB4ZDIsIDB4MDgsIDB4MTIsIDB4MTMsIDB4OWYsIDB4ZWYsIDB4NTQsIDB4ODAsIDB4NjQsIDB4ODAsIDB4ZjUsIDB4MTksIDB4NjUsIDB4MmYsIDB4NjAsIDB4MDUsCi0gIDB4ODUsIDB4MTksIDB4MmYsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MGUsIDB4MTEsIDB4MTIsIDB4MTMsIDB4OWYsIDB4ZWYsIDB4NTQsIDB4MTAsIDB4ZjUsIDB4MTksCi0gIDB4NjUsIDB4MmUsIDB4NjAsIDB4MDUsIDB4ODUsIDB4MTksIDB4MmUsIDB4ZDIsIDB4MDgsIDB4MzAsIDB4MWEsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZDIsIDB4ZTAsCi0gIDB4MjAsIDB4ZTEsIDB4MjMsIDB4OTAsIDB4N2IsIDB4NDAsIDB4ZTAsIDB4NjAsIDB4MDksIDB4ZTAsIDB4ZjUsIDB4MTUsIDB4OTAsIDB4N2IsIDB4NDJ9fSwKLSB7MHgwODA2LCA2NCwgeyAweGUwLCAweGY1LCAweDE2LCAweDkwLCAweDdiLCAweDQxLCAweGUwLCAweDYwLCAweDA5LCAweDkwLCAweDdmLCAweGQ3LCAweDc0LCAweDE3LCAweGYwLCAweDc0LCAweDM3LAotICAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGQzLCAweGYwLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDA5LCAweDI0LAotICAweGU1LCAweDBhLCAweDcwLCAweDQwLCAweDMwLCAweDA3LCAweDM5LCAweGU1LCAweDM4LCAweDcwLCAweDM1LCAweGMyLCAweDA3LCAweGY1LCAweDE4LCAweDdlLAotICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDI0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllfX0sCi0gezB4MDg0NiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgwOSwgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwOSwgMHhmMCwgMHg3NSwgMHgzOCwgMHgxMCwgMHhlNCwgMHhmNSwgMHgyYywKLSAgMHg3NSwgMHgwYSwgMHgwMSwgMHgyMiwgMHhlNSwgMHgwYSwgMHg2NCwgMHgwMSwgMHg3MCwgMHg0MCwgMHgzMCwgMHgwOCwgMHgzOSwgMHhlNSwgMHgzOSwgMHg3MCwKLSAgMHgzNSwgMHhjMiwgMHgwOCwgMHhmNSwgMHgxOCwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlZX19LAotIHsweDA4ODYsIDY0LCB7IDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MGUsIDB4OWUsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsCi0gIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDksIDB4ZjAsCi0gIDB4NzUsIDB4MzksIDB4MTAsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4NzUsIDB4MGEsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MGEsIDB4NjQsIDB4MDIsIDB4NzAsIDB4MzYsCi0gIDB4MzAsIDB4MTQsIDB4MmYsIDB4YzIsIDB4MTQsIDB4ZjUsIDB4MTgsIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MGUsIDB4MjUsIDB4MTh9fSwKLSB7MHgwOGM2LCA2NCwgeyAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllLCAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LAotICAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LCAweDE4LCAweGI0LCAweDA1LCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LAotICAweDA1LCAweGYwLCAweDc1LCAweDBhLCAweDAzLCAweDIyLCAweGU1LCAweDE1LCAweDYwLCAweDMwLCAweDE1LCAweDE1LCAweGU0LCAweGY1LCAweDE4LCAweDdlLAotICAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDE0LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDBlLCAweDllfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgxOCwgMHhlNSwKLSAgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgwYSwgMHgyMiwgMHg5MCwgMHg3ZiwKLSAgMHhlOSwgMHhlMCwgMHgxMiwgMHgwZSwgMHhmNiwgMHgwYSwgMHgwYywgMHgwMCwgMHgwYSwgMHg4MCwgMHgwMSwgMHgwYSwgMHhlYywgMHgwMywgMHgwOSwgMHg0OCwKLSAgMHgwNiwgMHgwOSwgMHhmZiwgMHgwOCwgMHgwOSwgMHhmOSwgMHgwOSwgMHgwOSwgMHhlMSwgMHgwYSwgMHgwOSwgMHhmMCwgMHgwYiwgMHgwMCwgMHgwMH19LAotIHsweDA5NDYsIDY0LCB7IDB4MGIsIDB4M2IsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTksIDB4MTQsIDB4NjAsIDB4NjEsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsCi0gIDB4MDIsIDB4MDksIDB4ZDcsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsCi0gIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDIsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDMsIDB4NzUsIDB4ODIsCi0gIDB4ODIsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZWYsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4N2IsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4NzUsIDB4ODJ9fSwKLSB7MHgwOTg2LCA2NCwgeyAweDc0LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLAotICAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc0LCAweDE5LAotICAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVhLAotICAweGUwLCAweGZmLCAweDEyLCAweDBmLCAweDFjLCAweGVhLCAweDQ5LCAweDYwLCAweDBkLCAweGVhLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGU5fX0sCi0gezB4MDljNiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwKLSAgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwOSwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwOSwgMHgwMiwKLSAgMHgwYiwgMHg0MiwgMHgxMiwgMHgwYiwgMHg0YSwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MH19LAotIHsweDBhMDYsIDY0LCB7IDB4N2YsIDB4YjUsIDB4ZjAsIDB4MDIsIDB4MGIsIDB4NDIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4N2YsIDB4NjAsIDB4MjQsIDB4MTQsIDB4NjAsIDB4MzEsCi0gIDB4MjQsIDB4MDIsIDB4NzAsIDB4NWIsIDB4YTIsIDB4MTAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MTYsIDB4ZTQsIDB4MzMsCi0gIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MGIsCi0gIDB4NDIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDJ9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LAotICAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLAotICAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLAotICAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDBiLCAweDQyLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg2MCwgMHgxZCwgMHgyNCwgMHgwMiwgMHg2MCwgMHgwMywgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNSwgMHhjMiwKLSAgMHgxMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwYiwgMHg0MiwgMHg5MCwgMHg3ZiwKLSAgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwKLSAgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M319LAotIHsweDBhYzYsIDY0LCB7IDB4ZTQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4MTMsIDB4MTMsIDB4MTMsIDB4NTQsIDB4MWYsIDB4ZmYsIDB4ZTAsIDB4NTQsCi0gIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NWYsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsCi0gIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NTYsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsCi0gIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MTAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjR9fSwKLSB7MHgwYjA2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDM2LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAotICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwfX0sCi0gezB4MGI0NiwgNjQsIHsgMHg0NCwgMHgwMiwgMHhmMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwKLSAgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxOCwgMHhmMCwgMHhlNCwgMHhmNSwgMHg4ZSwgMHg5MCwgMHg3ZiwgMHhkZiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhkZSwgMHhmMCwgMHhlNCwgMHhmNSwgMHgyNCwgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyNCwgMHgyNSwgMHgxOCwgMHhmOX19LAotIHsweDBiODYsIDY0LCB7IDB4ZTQsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4ZTQsIDB4MTIsIDB4MGUsIDB4ZTQsIDB4MDUsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4YjQsIDB4MDksIDB4ZWEsIDB4NzUsIDB4M2EsCi0gIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MzgsIDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzYsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MGIsIDB4YzIsIDB4MDUsIDB4YzIsIDB4MDAsCi0gIDB4YzIsIDB4MDksIDB4YzIsIDB4MTMsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4NzUsIDB4NDQsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsCi0gIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTEsIDB4ZDAsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDIsIDB4MTJ9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDEwLCAweGEwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEyLCAweGYwLCAweDdmLCAweDAxLCAweDhmLCAweDQwLCAweGVmLCAweDQ0LCAweDA2LCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE0LCAweGYwLCAweDc1LCAweDQ2LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLAotICAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNlLCAweDEyLAotICAweDExLCAweGQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1fX0sCi0gezB4MGMwNiwgNjQsIHsgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxMSwgMHhkMCwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxMiwgMHg4OSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxMSwgMHhkMCwKLSAgMHg3ZiwgMHgxMywgMHg3ZCwgMHgwOSwgMHgxMiwgMHgxMSwgMHhkMCwgMHgyMCwgMHgxYiwgMHgwMywgMHgwMiwgMHgwYywgMHhjOSwgMHg3NSwgMHgyZCwgMHgwMSwKLSAgMHg3NSwgMHgxOCwgMHgwMSwgMHg3YiwgMHgwMCwgMHg3NCwgMHgyZCwgMHgyNSwgMHgxOCwgMHhmOSwgMHhlNCwgMHgzNCwgMHgwMCwgMHhmYSwgMHhlNCwgMHgxMiwKLSAgMHgwZSwgMHhlNCwgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwOSwgMHhlYSwgMHg3NSwgMHgzYiwgMHgwMSwgMHhlNCwgMHhmNSwgMHgzOX19LAotIHsweDBjNDYsIDY0LCB7IDB4ZjUsIDB4MTMsIDB4ZjUsIDB4MzcsIDB4YzIsIDB4MDgsIDB4YzIsIDB4MGMsIDB4YzIsIDB4MDYsIDB4YzIsIDB4MDAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MTMsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4NzUsIDB4NDUsIDB4MDMsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2YsIDB4MGMsCi0gIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTIsIDB4MWEsIDB4N2YsIDB4MTAsIDB4OGYsIDB4NDMsIDB4MTIsIDB4MTEsIDB4MTIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MGEsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4OGYsIDB4NDEsIDB4ZWYsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDk4LCAweDc0LCAweDBjLCAweGYwLCAweDc1LCAweDQ3LCAweDgwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweDgwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLAotICAweDEyLCAweDFhLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGFkLCAweDA2LCAweDhkLCAweDNmLCAweDEyLCAweDEyLCAweDFhLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmLCAweDA1LCAweDdkLCAweDdmLCAweDEyLCAweDEyLCAweDFhLCAweDdmLAotICAweDAxLCAweDEyLCAweDEyLCAweGFhLCAweDdmLCAweDAzLCAweDdkLCAweDA3LCAweDEyLCAweDEyLCAweDFhLCAweDdmLCAweDEzLCAweDdkLCAweDA5fX0sCi0gezB4MGNjNiwgNjQsIHsgMHgxMiwgMHgxMiwgMHgxYSwgMHhkMiwgMHgxMiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwKLSAgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MCwgMHhjMCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlMCwgMHhhMywKLSAgMHgwNSwgMHg4NiwgMHhmMCwgMHgwNSwgMHg4NiwgMHhkZiwgMHhmNywgMHhkMiwgMHhhZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMCwgMHhmMCwKLSAgMHhhZiwgMHgwOCwgMHhlNSwgMHgwZCwgMHhmNSwgMHg4MiwgMHhlNSwgMHgwYywgMHhmNSwgMHg4MywgMHhjMiwgMHhhZiwgMHgwNSwgMHg4NiwgMHg5MH19LAotIHsweDBkMDYsIDY0LCB7IDB4YzAsIDB4MDAsIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZGYsIDB4ZjcsIDB4MDUsIDB4ODYsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MGMsIDB4ZjUsIDB4ODMsIDB4YzIsCi0gIDB4YWYsIDB4MDUsIDB4ODYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4ZGYsCi0gIDB4ZjcsIDB4ZDIsIDB4YWYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4YWYsIDB4MDgsIDB4ZTUsIDB4MGQsIDB4ZjV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgyLCAweGU1LCAweDBjLCAweGY1LCAweDgzLCAweGMyLCAweGFmLCAweDA1LCAweDg2LCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLAotICAweDA1LCAweDg2LCAweGRmLCAweGY3LCAweDA1LCAweDg2LCAweGQyLCAweGFmLCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LAotICAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLAotICAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDIyLCAweGQyLCAweDE5LCAweDkwLCAweDdmLCAweDkyfX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgxMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwKLSAgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYSwgMHhmMCwgMHg1MywgMHg5MSwKLSAgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NCwgMHgwZCwgMHhmMH19LAotIHsweDBkYzYsIDY0LCB7IDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MWEsIDB4MTIsIDB4MTIsIDB4NjQsIDB4YzIsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MGIsIDB4ZjUsIDB4MTMsIDB4YzIsIDB4MTcsIDB4YzIsCi0gIDB4MTIsIDB4OTAsIDB4N2YsIDB4YTEsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MTcsIDB4NjAsIDB4MTAsIDB4MzAsIDB4MTIsCi0gIDB4MDUsIDB4ZDIsIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4ZjUsIDB4MTcsIDB4ODAsIDB4MDgsIDB4MzAsIDB4MTIsCi0gIDB4MDUsIDB4YzIsIDB4MWEsIDB4MTIsIDB4MDAsIDB4NDYsIDB4MzAsIDB4MTEsIDB4MDcsIDB4YzIsIDB4MTEsIDB4MTIsIDB4MDksIDB4MjUsIDB4ODB9fSwKLSB7MHgwZTA2LCA2NCwgeyAweGQ2LCAweDMwLCAweDE4LCAweGQzLCAweGMyLCAweDE4LCAweDEyLCAweDEzLCAweGFiLCAweDgwLCAweGNjLCAweDIyLCAweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LAotICAweGZkLCAweDc1LCAweDgxLCAweDQ3LCAweDAyLCAweDBlLCAweDU5LCAweDAyLCAweDBkLCAweDgxLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLAotICAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyLCAweDA4LCAweGRmLCAweGY0LCAweDgwLCAweDI5LCAweGU0LCAweDkzLCAweGEzLCAweGY4LAotICAweDU0LCAweDA3LCAweDI0LCAweDBjLCAweGM4LCAweGMzLCAweDMzLCAweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgwNCwgMHhmNCwgMHg1NiwgMHg4MCwgMHgwMSwgMHg0NiwgMHhmNiwgMHhkZiwgMHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwKLSAgMHg0MCwgMHg4MCwgMHg5MCwgMHgxMiwgMHhjYiwgMHhlNCwgMHg3ZSwgMHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwKLSAgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5MywgMHhhMywgMHg2MCwgMHgwMSwgMHgwZSwgMHhjZiwgMHg1NCwgMHhjMCwgMHgyNSwgMHhlMCwKLSAgMHg2MCwgMHhhOCwgMHg0MCwgMHhiOCwgMHhlNCwgMHg5MywgMHhhMywgMHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhM319LAotIHsweDBlODYsIDY0LCB7IDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsCi0gIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmUsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsCi0gIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsCi0gIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjJ9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLAotICAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LAotICAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLAotICAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwLCAweDEyLCAweDc0LCAweDAxLCAweDkzLCAweDcwLCAweDBkLCAweGEzLCAweGEzfX0sCi0gezB4MGYwNiwgNjQsIHsgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwKLSAgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg4ZiwgMHgxOCwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3NSwgMHgxYSwgMHhmZiwgMHg3NSwgMHgxYiwgMHgxOSwKLSAgMHg3NSwgMHgxYywgMHg4NiwgMHhhYiwgMHgxYSwgMHhhYSwgMHgxYiwgMHhhOSwgMHgxYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwZSwgMHhiNywgMHhiNCwKLSAgMHgwMywgMHgxZCwgMHhhZiwgMHgxOSwgMHgwNSwgMHgxOSwgMHhlZiwgMHhiNSwgMHgxOCwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwZSwgMHg5ZSwgMHg3ZX19LAotIHsweDBmNDYsIDY0LCB7IDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWEsIDB4ZmYsIDB4ZjUsIDB4MWIsIDB4ODksIDB4MWMsIDB4ODAsIDB4ZDQsIDB4N2IsCi0gIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MGQsIDB4ZTUsIDB4MGQsIDB4YWUsIDB4MGMsIDB4NzAsIDB4MDIsCi0gIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MDAsIDB4MzYsIDB4MDUsIDB4MGQsIDB4ZTUsCi0gIDB4MGQsIDB4YWMsIDB4MGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTV9fSwKLSB7MHgwZjg2LCA2NCwgeyAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzLCAweDNmLCAweDhmLCAweDFhLCAweGVmLCAweDQyLCAweDM2LCAweDgwLCAweGNhLCAweDIyLCAweDhmLAotICAweDFhLCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFlLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLAotICAweGU1LCAweDFhLCAweGYwLCAweDEyLCAweDEzLCAweDU3LCAweDA1LCAweDBkLCAweGU1LCAweDBkLCAweGFjLCAweDBjLCAweDcwLCAweDAyLCAweDA1LCAweDBjLAotICAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDE1LCAweDA4LCAweGU1LCAweDA4LCAweDYwLCAweDBhLCAweDEyLCAweDEzfX0sCi0gezB4MGZjNiwgNjQsIHsgMHg5MywgMHg4ZiwgMHgxYSwgMHhlZiwgMHg0MiwgMHgzNywgMHg4MCwgMHhjYSwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywKLSAgMHg3NCwgMHgzMCwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwKLSAgMHgyNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgwNywgMHhmMCwgMHhlNCwgMHg5MCwKLSAgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHgyMn19LAotIHsweDEwMDYsIDY0LCB7IDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTEsCi0gIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsCi0gIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsCi0gIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MTgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDh9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweGYwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDdmLCAweDk4LAotICAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEwLCAweGYwLCAweDkwLAotICAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLAotICAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwKLSAgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxMywgMHhmMCwgMHhlNSwgMHg0NCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMn19LAotIHsweDEwYzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTQsCi0gIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4ZTUsIDB4NDQsIDB4NTQsIDB4N2YsCi0gIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTh9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDc0LCAweDEzLCAweGYwLCAweGU1LCAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLAotICAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLAotICAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDdmfX0sCi0gezB4MTE0NiwgNjQsIHsgMHg5OCwgMHg3NCwgMHgwOCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwKLSAgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwOSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3Zn19LAotIHsweDExODYsIDY0LCB7IDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGMsIDB4ZjAsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4ZTUsIDB4NDUsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGUsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MGJ9fSwKLSB7MHgxMWM2LCA2NCwgeyAweGYwLCAweGU1LCAweDQ1LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDEzLCAweGYwLCAweGU1LAotICAweDQ0LCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE3LCAweGYwLCAweDkwLCAweGMwLCAweDAwLAotICAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDEyLCAweDEzLAotICAweDI3LCAweDhmLCAweDFhLCAweDEyLCAweDEzLCAweDI3LCAweDhmLCAweDFiLCAweGU1LCAweDFhLCAweDY1LCAweDFiLCAweDYwLCAweDEyLCAweDEyfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgxMywgMHgyNywgMHg4ZiwgMHgxYSwgMHhlNSwgMHgxYSwgMHg2NSwgMHgxYiwgMHg2MCwgMHgwNywgMHgxMiwgMHgxMywgMHgyNywgMHg4ZiwgMHgxYiwgMHg4MCwgMHhlOCwKLSAgMHhhZiwgMHgxYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHg0NSwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZCwgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg3YiwgMHg4ZiwgMHgxYSwgMHgxMiwgMHgxM319LAotIHsweDEyNDYsIDY0LCB7IDB4N2IsIDB4OGYsIDB4MWIsIDB4ZTUsIDB4MWEsIDB4NjUsIDB4MWIsIDB4NjAsIDB4MTIsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWEsIDB4ZTUsIDB4MWEsIDB4NjUsCi0gIDB4MWIsIDB4NjAsIDB4MDcsIDB4MTIsIDB4MTMsIDB4N2IsIDB4OGYsIDB4MWIsIDB4ODAsIDB4ZTgsIDB4YWYsIDB4MWEsIDB4MjIsIDB4OTAsIDB4N2YsIDB4ZDYsCi0gIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MDgsIDB4ZjAsIDB4MzAsIDB4MWEsIDB4MDQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsCi0gIDB4ZjQsIDB4N2UsIDB4MDEsIDB4MTIsIDB4MTIsIDB4ZTcsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTAsIDB4NDR9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDA0LCAweGYwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNlLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDExLCAweGQwLCAweDkwLCAweDdmLAotICAweDk4LCAweDc0LCAweDExLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNlLCAweDQ0LCAweDgwLCAweGZkLCAweDEyLAotICAweDExLCAweGQwLCAweDIyLCAweGFlLCAweDA3LCAweGU0LCAweGZmLCAweGU1LCAweDNmLCAweDU0LCAweDdmLCAweGZkLCAweDEyLCAweDEyLCAweDFhLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVlLCAweGYwLCAweGU0LCAweGU1LCAweDNmLCAweDQ0LCAweDgwfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhmZCwgMHgxMiwgMHgxMiwgMHgxYSwgMHgyMiwgMHgwNSwgMHgwZSwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMywgMHgxNCwgMHgwMywgMHgwMCwgMHgwMCwKLSAgMHhjMSwgMHgxMSwgMHhjMSwgMHgxOCwgMHhjMSwgMHg5NSwgMHhjMSwgMHgxMCwgMHhjMSwgMHgxNiwgMHgwMSwgMHgwYSwgMHgwMCwgMHhjMSwgMHg5YiwgMHgwMCwKLSAgMHg4ZSwgMHgxOCwgMHg4ZiwgMHgxOSwgMHhlNSwgMHgxOSwgMHgxNSwgMHgxOSwgMHhhZSwgMHgxOCwgMHg3MCwgMHgwMiwgMHgxNSwgMHgxOCwgMHg0ZSwgMHg2MCwKLSAgMHgwNSwgMHgxMiwgMHgwZCwgMHg2MCwgMHg4MCwgMHhlZSwgMHgyMiwgMHgwMCwgMHgwMCwgMHgwMiwgMHgxMCwgMHgwNiwgMHgwMCwgMHgwMiwgMHgxM319LAotIHsweDEzMDYsIDY0LCB7IDB4MDQsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDMsIDB4MDAsIDB4MDIsIDB4MTAsIDB4MmQsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTIsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsCi0gIDB4MTQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MTUsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDE2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDA4LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LAotICAweDA5LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBhLCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBiLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmfX0sCi0gezB4MTM4NiwgNjQsIHsgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwYywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwKLSAgMHgwZCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgwZSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHgxMiwgMHgwZiwgMHhjZiwgMHgxMiwgMHgwZCwgMHg3MSwgMHgxMiwgMHgwYiwgMHg0YSwgMHgyMiwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDEzYzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE0ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE1NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTVjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2MDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTY4NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE2YzYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE3ODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MThjNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MTAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDB9fSwKLSB7MHgxYTA2LCAgNCwgeyAweDcyLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4ZmZmZiwgIDAsIHsweDAwfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdfZncuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzI0ZGFjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3VzYTQ5d19mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDY0ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhNDl3X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhNDl3X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhNDl3X2Zpcm13YXJlW10gPSB7Ci0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxOCwgMHhmYn19LAotIHsweDAwMzYsIDEyLCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGU0LCAweGZmLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGU1LCAweDE1fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgyNCwgMHgwNCwgMHhmZCwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmYSwgMHhhOSwgMHgwNSwgMHg3YiwgMHgwMSwgMHhlZiwgMHg3YywgMHgwMCwgMHgyOSwgMHhmOX19LAotIHsweDAwNjYsIDE2LCB7IDB4ZWMsIDB4M2EsIDB4ZmEsIDB4ZWUsIDB4MTIsIDB4MTEsIDB4ZjEsIDB4MGYsIDB4YmYsIDB4MjIsIDB4ZDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDUsIDB4ZjV9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDAxLCAweDM0LCAweGU1LCAweDE1LCAweDI0LCAweDA5fX0sCi0gezB4MDA4NiwgMTYsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwYSwgMHhmNSwgMHg4Mn19LAotIHsweDAwOTYsIDE2LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTV9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGNmLCAweGYwLCAweDgwLCAweDQxfX0sCi0gezB4MDBiNiwgMTYsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg3Nn19LAotIHsweDAwYzYsIDE2LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MDAsIDB4MDN9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweDdmLCAweDAxLCAweGU1LCAweDE1LCAweDI0LCAweDA4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxNiwgMHg0NywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgzMH19LAotIHsweDAwZjYsIDE2LCB7IDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjB9fSwKLSB7MHgwMDAzLCAxNiwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0fX0sCi0gezB4MDAxMywgMTYsIHsgMHgwMSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNH19LAotIHsweDAwMjMsIDE2LCB7IDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDFiLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgxMCwgMHg5NX19LAotIHsweDAxMDYsIDY0LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGN9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDNmLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDBkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDAyLCAweDRmLCAweGU1fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgxNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlNCwgMHhmZiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNX19LAotIHsweDAxYzYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MGUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGZ9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDJmLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDEwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweGU3LCAweGU1LCAweDE1LCAweDI0LCAweDExLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE2LCAweDE3LCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LCAweDgyLCAweGU0fX0sCi0gezB4MDI0NiwgNjQsIHsgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHhiNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHg0NCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNX19LAotIHsweDAyODYsIDY0LCB7IDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTIsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4NDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKLSB7MHgwMmM2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE2LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNX19LAotIHsweDAzNDYsIDY0LCB7IDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2IsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MTksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4Nzh9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDZiLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCi0gezB4MDNjNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgxMiwgMHgwMCwKLSAgMHgzNiwgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg0NywgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYn19LAotIHsweDA0MDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWIsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NDcsIDB4ZTV9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDE1LCAweDI0LCAweDJiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLAotICAweGU1LCAweDE1LCAweDI0LCAweDFjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDcwLCAweDBlLCAweGU1LAotICAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDJhLCAweDkwLCAweDc4LCAweDQxLAotICAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlZiwgMHg2MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNX19LAotIHsweDA0YzYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWUsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NDcsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDFmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLAotICAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI3LCAweGU1LCAweDE1LAotICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAxLCAweGZmLCAweGYwLCAweGZkLCAweGU0LAotICAweGZmLCAweDEyLCAweDE2LCAweDQ3LCAweGU1LCAweDE1LCAweDI0LCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHgxOCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMSwgMHhmNSwgMHg4Mn19LAotIHsweDA1ODYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDIzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDAzLCAweDEyLCAweDE4LCAweDg1LCAweGU1LCAweDE1LCAweDI0LCAweDI0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweDYwLCAweDFiLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA4LAotICAweGYwLCAweDkwLCAweDdmLCAweDk4LCAweGUwLCAweGZmLCAweGU1LCAweDE2LCAweGY0LCAweGZlLCAweGVmLCAweDVlLCAweGYwLCAweGU1LCAweDE1fX0sCi0gezB4MDYwNiwgNjQsIHsgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxNiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMCwgMHg0NSwgMHgxNiwKLSAgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgxMiwgMHgwMywgMHgwNywgMHg4MywgMHgwMCwgMHgwNywgMHhmNywgMHgwMSwgMHgwOCwKLSAgMHg2MywgMHgwMywgMHgwNiwgMHg0YywgMHgwNiwgMHgwNywgMHg3NCwgMHgwOCwgMHgwNywgMHg2OCwgMHgwOSwgMHgwNywgMHg1MCwgMHgwYSwgMHgwN319LAotIHsweDA2NDYsIDY0LCB7IDB4NWYsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDgsIDB4YjIsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWMsIDB4MTQsIDB4NzAsIDB4MDMsCi0gIDB4MDIsIDB4MDYsIDB4ZmUsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDcsIDB4NDYsIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsCi0gIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MDQsIDB4NzUsIDB4ODIsCi0gIDB4MTcsIDB4NzUsIDB4ODMsIDB4MTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MDQsIDB4N2YsIDB4MDMsIDB4ODB9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDAyLCAweDdmLCAweDAyLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDc1LCAweDgyLCAweDZkLCAweDc1LCAweDgzLCAweDE5LAotICAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDVmLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LAotICAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDMwLCAweGUxLCAweDA0LCAweDdmLCAweDY0LCAweDgwLAotICAweDAyLCAweDdmLCAweDMyLCAweDc1LCAweDgyLCAweDFhLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLCAweDkwLCAweDdmLCAweGVmLCAweGUwfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhmZSwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3YywgMHgwMCwgMHgyNCwgMHgwMCwgMHhmNSwgMHgxOSwgMHhlYywgMHgzZSwgMHhmNSwgMHgxOCwgMHg3NSwgMHgzMywKLSAgMHgxOSwgMHg3NSwgMHgzNCwgMHgxMiwgMHg3NSwgMHg4MiwgMHgxNCwgMHg3NSwgMHg4MywgMHgxOSwgMHhlMCwgMHg3NSwgMHgyNywgMHgwMCwgMHhmNSwgMHgyOCwKLSAgMHhkMywgMHhlNSwgMHgyOCwgMHg5NSwgMHgxOSwgMHhlNSwgMHgyNywgMHg5NSwgMHgxOCwgMHg0MCwgMHgwNiwgMHg4NSwgMHgxOCwgMHgyNywgMHg4NSwgMHgxOSwKLSAgMHgyOCwgMHgxMiwgMHgxMywgMHgxMiwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNCwgMHgyYn19LAotIHsweDA3MDYsIDY0LCB7IDB4ZWEsIDB4NDksIDB4NjAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4NzUsIDB4MTgsIDB4MDAsIDB4ZjUsIDB4MTksIDB4YWUsIDB4MDIsIDB4YWYsIDB4MDEsCi0gIDB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4OGUsIDB4MjcsIDB4ZjUsIDB4MjgsCi0gIDB4ZDMsIDB4OTUsIDB4MTksIDB4ZTUsIDB4MjcsIDB4OTUsIDB4MTgsIDB4NDAsIDB4MDYsIDB4ODUsIDB4MTgsIDB4MjcsIDB4ODUsIDB4MTksIDB4MjgsIDB4MTIsCi0gIDB4MTMsIDB4MTIsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Yjl9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDI1LCAweGYwLCAweDkwLAotICAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDI1LCAweDAyLCAweDA4LAotICAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIyLCAweDEyLCAweDBhLCAweGI4LCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweDAwLAotICAweGU1LCAweDIyLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGU4fX0sCi0gezB4MDc4NiwgNjQsIHsgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMiwgMHgwMCwgMHhlNCwgMHgzMywgMHhmZiwKLSAgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHhhMywgMHhmMCwgMHg5MCwKLSAgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhiOSwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MH19LAotIHsweDA3YzYsIDY0LCB7IDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsCi0gIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4YjksCi0gIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDgsIDB4Yjl9fSwKLSB7MHgwODA2LCA2NCwgeyAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGI5LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLCAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LAotICAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LAotICAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmfX0sCi0gezB4MDg0NiwgNjQsIHsgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwKLSAgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwKLSAgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNCwgMHhkMiwKLSAgMHgwMCwgMHg4MCwgMHgzZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzNiwgMHg5MCwgMHg3ZiwgMHhlYX19LAotIHsweDA4ODYsIDY0LCB7IDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsCi0gIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsCi0gIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MTEsIDB4NTQsIDB4MGYsIDB4NzB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDAzLCAweDAyLCAweDA5LCAweGIyLCAweDEyLCAweDE2LCAweGE1LCAweGVmLCAweDIwLCAweGUxLCAweDc1LCAweDEyLCAweDE3LCAweDAzLCAweGVmLCAweDE0LCAweGY1LAotICAweDE5LCAweDEyLCAweDE4LCAweGNjLCAweGVmLCAweDI1LCAweDE5LCAweGZmLCAweGU0LCAweDMzLCAweGZlLCAweGMzLCAweGVmLCAweDk0LCAweDgwLCAweGVlLAotICAweDY0LCAweDgwLCAweDk0LCAweDgwLCAweDUwLCAweDU5LCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLAotICAweGZmLCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDMwLCAweGUwLCAweDExLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyfX0sCi0gezB4MDkwNiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlMiwgMHgxMiwgMHhlNSwgMHgxOSwgMHg2MCwgMHgwZSwgMHhmNSwgMHgyMywgMHhlZiwgMHgyNCwKLSAgMHgwMSwgMHhmNSwgMHgyZCwgMHhlNCwgMHgzZSwgMHhmNSwgMHgyYywgMHgxMiwgMHgxNCwgMHhhZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNCwgMHhlM319LAotIHsweDA5NDYsIDY0LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4NWQsIDB4MTIsIDB4MTgsCi0gIDB4Y2MsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2IsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZWYsIDB4YzMsCi0gIDB4OWUsIDB4NTAsIDB4NDgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsCi0gIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2J9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLAotICAweDEzLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDEwLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDI0LCAweDgwLCAweDAzLCAweDEyLCAweDEyLCAweGExLCAweDEyLCAweDE2LCAweGQ0LCAweGVmLCAweDMwLAotICAweGUxLCAweDAzLCAweDAyLCAweDBhLCAweGI3LCAweDEyLCAweDE3LCAweGQyLCAweDhmLCAweDE5LCAweDEyLCAweDE4LCAweGQ4LCAweGU1LCAweDE1fX0sCi0gezB4MDljNiwgNjQsIHsgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4MiwKLSAgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOSwgMHhjMywgMHg5ZiwgMHg1MCwgMHgyOCwgMHgxMiwgMHgxOCwgMHhiNCwKLSAgMHhlZiwgMHgzMCwgMHhlMCwgMHgyMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHgyMCwgMHhlNywgMHgxMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMH19LAotIHsweDBhMDYsIDY0LCB7IDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4YjcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4MTksIDB4NzAsIDB4MDMsIDB4MDIsIDB4MGEsIDB4YjcsIDB4YjQsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTcsIDB4MjksIDB4ZTUsIDB4MTl9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDIwLCAweDg1LCAweDE5LCAweDIzLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLAotICAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweDhjLCAweDJjLCAweGY1LCAweDJkLCAweDEyLCAweDEzLCAweGRkLCAweGU1LCAweDE5LCAweDI1LAotICAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweDE5LCAweDIyLCAweGU1LCAweDE5LCAweGQzLCAweDk0LCAweDNmLCAweDQwLCAweDAzLCAweDc1LCAweDE5LCAweDNmLAotICAweDg1LCAweDE5LCAweDIzLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MGE4NiwgNjQsIHsgMHhmZiwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhhMywgMHhlMCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywKLSAgMHhlZiwgMHhmMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHgyNCwgMHgwMSwKLSAgMHhmNSwgMHgyZCwgMHhlNCwgMHgzZSwgMHhmNSwgMHgyYywgMHgxMiwgMHgxNCwgMHg2YywgMHhlNSwgMHgxOSwgMHgwNCwgMHhmZiwgMHgxMiwgMHgxNSwgMHgxOSwKLSAgMHgyMiwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhmMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5Nn19LAotIHsweDBhYzYsIDY0LCB7IDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NGEsIDB4MDQsIDB4ZjAsIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsCi0gIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MWYsIDB4ZjAsIDB4OTAsIDB4NzgsCi0gIDB4NDMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4NzQsIDB4OWYsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4ZGUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2UsIDB4N2IsIDB4N2YsIDB4YzAsIDB4NzV9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDBmLCAweDEyLAotICAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLAotICAweDc1LCAweDE2LCAweDAxLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLAotICAweDdlLCAweDdlLCAweDdmLCAweDQwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweDc0LCAweDdlLCAweGYwLCAweGEzLCAweDc0fX0sCi0gezB4MGI0NiwgNjQsIHsgMHg0MCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZSwgMHhmMCwKLSAgMHhhMywgMHg3NCwgMHg4MCwgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwKLSAgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgwZiwgMHgxMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHhlNSwgMHgxNX19LAotIHsweDBiODYsIDY0LCB7IDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4ODUsCi0gIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4MDAsCi0gIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2UsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4N2UsCi0gIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjB9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDBmLCAweDEyLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLAotICAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAyLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDQwLCAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLAotICAweDc0LCAweDdkLCAweGYwLCAweGEzLCAweDc0LCAweDQwLCAweGYwLCAweDdlLCAweDdkLCAweDdmLCAweDgwLCAweDg1LCAweDE1LCAweDgyLCAweDg1fX0sCi0gezB4MGMwNiwgNjQsIHsgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHg4MCwgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwZiwgMHgxMiwKLSAgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NH19LAotIHsweDBjNDYsIDY0LCB7IDB4MDMsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2MsIDB4ZjAsIDB4YTMsIDB4NzQsCi0gIDB4YzAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4MDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2QsCi0gIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDksIDB4ZDIsIDB4MDIsIDB4MjIsIDB4ZTUsIDB4MTAsIDB4MDQsIDB4NTQsCi0gIDB4MDMsIDB4ZjUsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MWYsIDB4MTQsIDB4NjAsIDB4MzEsIDB4MTQsIDB4NjAsIDB4NDMsIDB4MjQsIDB4MDMsIDB4NzB9fSwKLSB7MHgwYzg2LCA2NCwgeyAweDUyLCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLAotICAweDc1LCAweDE2LCAweDAxLCAweDgwLCAweDNkLCAweDdlLCAweDdjLCAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLAotICAweDdmLCAweDk2LCAweDc0LCAweGRmLCAweGYwLCAweDc1LCAweDE2LCAweDAyLCAweDgwLCAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LAotICAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGJmLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDgwLCAweDEzfX0sCi0gezB4MGNjNiwgNjQsIHsgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHg3ZiwgMHhmMCwgMHg3NSwKLSAgMHgxNiwgMHgwOCwgMHhlNSwgMHgzMiwgMHg1NSwgMHgxNiwgMHg3MCwgMHgwMywgMHgwMiwgMHgwZSwgMHgxMSwgMHhlNSwgMHgxNiwgMHhmNCwgMHhmZiwgMHg1MiwKLSAgMHgzMiwgMHhlNSwgMHgyNiwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg3MCwgMHgwZiwgMHhlNSwgMHgyYSwgMHg1NSwgMHgxNiwgMHg2MCwgMHgyNCwgMHg5MCwgMHg3ZiwKLSAgMHg5OCwgMHhlMCwgMHg0NSwgMHgxNiwgMHhmMCwgMHg4MCwgMHgxYiwgMHhiZSwgMHgyMCwgMHgxOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNX19LAotIHsweDBkMDYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MDksIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsCi0gIDB4NWYsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MDMsCi0gIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsCi0gIDB4MDMsIDB4ZTAsIDB4MTQsIDB4ZjAsIDB4ZTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MGUsIDB4MTEsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4MTIsIDB4MDB9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDM2LCAweGVmLCAweDU0LCAweDAxLCAweGZmLCAweGY1LCAweDE5LCAweGU1LCAweDE1LCAweDI0LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDZmLCAweDYwLCAweDA3LCAweGU1LCAweDE5LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweDEyLCAweDE4LCAweGU0LCAweDhmLAotICAweDE5LCAweGU1LCAweDE1LCAweDI0LCAweDI3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE5LAotICAweDU0LCAweDEwLCAweGZlLCAweDZmLCAweDYwLCAweDA2LCAweGVlLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0fX0sCi0gezB4MGQ4NiwgNjQsIHsgMHgyOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOSwgMHg1NCwgMHg4MCwgMHhmZSwgMHg2ZiwgMHg2MCwKLSAgMHgwNiwgMHhlZSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOSwgMHg1NCwgMHgyMCwgMHhmZSwgMHg2ZiwgMHg2MCwgMHgxNSwgMHhlZSwgMHhmMCwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNCwgMHgwNCwgMHhlNSwgMHgxNn19LAotIHsweDBkYzYsIDY0LCB7IDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTIsIDB4NTUsIDB4MTYsIDB4ZmYsIDB4ZjUsIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NmYsIDB4NjAsIDB4MTYsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTUsIDB4MDQsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTcsIDB4NTUsCi0gIDB4MTYsIDB4ZmYsIDB4ZjUsIDB4MTksIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwZTA2LCA2NCwgeyAweGUwLCAweDZmLCAweDYwLCAweDA3LCAweGU1LCAweDE5LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweDIyLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDBmLAotICAweDExLCAweGU1LCAweDI0LCAweDE0LCAweDYwLCAweDJhLCAweDE0LCAweDYwLCAweDQxLCAweDE0LCAweDYwLCAweDU4LCAweDE0LCAweDYwLCAweDZmLCAweDI0LAotICAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDBlLCAweGNmLCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLAotICAweDkwLCAweDdmLCAweDk2LCAweDc0LCAweGVmLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDEyLCAweGExLCAweDc1LCAweDI0LCAweDAxfX0sCi0gezB4MGU0NiwgNjQsIHsgMHgyMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhkZiwgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgxMiwgMHhhMSwgMHg3NSwgMHgyNCwgMHgwMiwgMHgyMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgxMiwgMHhhMSwKLSAgMHg3NSwgMHgyNCwgMHgwMywgMHgyMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MH19LAotIHsweDBlODYsIDY0LCB7IDB4N2YsIDB4OTYsIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MTIsIDB4YTEsIDB4NzUsIDB4MjQsIDB4MDQsIDB4MjIsIDB4MzAsIDB4MDQsCi0gIDB4MzMsIDB4YzIsIDB4MDQsIDB4NTMsIDB4MTMsIDB4ZGYsIDB4ZTQsIDB4ZjUsIDB4MTksIDB4N2UsIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmUsIDB4MjUsCi0gIDB4MTksIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTEsIDB4YWIsIDB4ZmYsIDB4NzQsIDB4ODAsIDB4MjUsIDB4MTksIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzQsIDB4N2IsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MTksIDB4ZTUsIDB4MTksIDB4YjQsIDB4MDMsIDB4ZGIsIDB4OTB9fSwKLSB7MHgwZWM2LCA2NCwgeyAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweDc1LCAweDI0LCAweDA1LCAweDIyLCAweGU1LCAweDM2LCAweDYwLCAweDNiLCAweGQ1LCAweDM2LCAweDBhLCAweDUzLAotICAweDEzLCAweGVmLCAweDMwLCAweDBhLCAweDA0LCAweGQyLCAweDA5LCAweGMyLCAweDBhLCAweGU0LCAweGY1LCAweDE5LCAweDdlLCAweDAwLCAweDdiLCAweDAwLAotICAweDc0LCAweDM1LCAweDI1LCAweDE5LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhLCAweDEyLCAweDExLCAweGFiLCAweGZmLCAweDc0LCAweDgwLCAweDI1LAotICAweDE5LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE5LCAweGU1LCAweDE5LCAweGI0fX0sCi0gezB4MGYwNiwgNjQsIHsgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgyNCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgxYSwgMHg3ZSwgMHgwMCwKLSAgMHg3YiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNSwgMHgxYSwgMHhmOSwgMHhlZSwgMHgzNSwgMHgxNCwgMHhmYSwgMHhlNCwgMHgxMiwgMHgxMSwgMHhmMSwgMHgwNSwKLSAgMHgxYSwgMHhlNSwgMHgxYSwgMHhiNCwgMHgzYywgMHhlOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNX19LAotIHsweDBmNDYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsCi0gIDB4MTIsIDB4MTYsIDB4NDcsIDB4N2YsIDB4MTAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MTUsIDB4YjcsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4MDEsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDB9fSwKLSB7MHgwZjg2LCA2NCwgeyAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweDc0LCAweDgwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDBmLCAweGU0LCAweGZkLCAweDEyLCAweDE2LCAweDQ3LCAweGU0LCAweGZmLAotICAweDdlLCAweGEzLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVlLCAweGYwLCAweGZkLAotICAweDEyLCAweDE2LCAweDQ3LCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGU0LCAweGYwLCAweDdmfX0sCi0gezB4MGZjNiwgNjQsIHsgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxNiwgMHg0NywgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxNSwgMHg0ZiwgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxNiwKLSAgMHg0NywgMHgyMiwgMHg1MywgMHgxMywgMHgzZiwgMHg5MCwgMHg3YiwgMHhmMSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwKLSAgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwKLSAgMHgwOCwgMHhjMSwgMHg5MCwgMHg3YywgMHgzMSwgMHhlMCwgMHgzMCwgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNH19LAotIHsweDEwMDYsIDY0LCB7IDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ZGYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDIsIDB4MTIsIDB4MDgsIDB4YzEsIDB4OTAsCi0gIDB4N2MsIDB4NzEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsCi0gIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MDgsIDB4YzEsIDB4OTAsIDB4N2MsIDB4YjEsIDB4ZTAsCi0gIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2Z9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDk2LCAweDc0LCAweDdmLCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDA4LCAweGMxLCAweDA1LCAweDExLCAweGU1LCAweDExLCAweDU0LCAweDBmLCAweGY1LAotICAweDE4LCAweDcwLCAweDFmLCAweDkwLCAweDc4LCAweDQxLCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDkwLCAweDdmLCAweDk5LCAweGUwLCAweGY1LCAweDE3LAotICAweDkwLCAweDc4LCAweDQxLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDkwLCAweDdmLCAweDk5LCAweGUwLCAweGY0LCAweGY1LCAweDEyLCAweDEyLCAweDExLAotICAweDIxLCAweDIyLCAweGU1LCAweDE4LCAweGI0LCAweDAxLCAweDA0LCAweDEyLCAweDBjLCAweDczLCAweDIyLCAweDkwLCAweDdmLCAweGMyLCAweGUwfX0sCi0gezB4MTA4NiwgNjQsIHsgMHgyMCwgMHhlMSwgMHgwOCwgMHhlNSwgMHgxMywgMHg2MCwgMHgwNCwgMHgxMiwgMHgwZSwgMHgxMiwgMHgyMiwgMHgxMiwgMHgwYywgMHg3MywgMHgyMiwgMHg3OCwgMHg3ZiwKLSAgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwgMHg4MSwgMHgzNywgMHgwMiwgMHgxMCwgMHhkYywgMHgwMiwgMHgxMiwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywKLSAgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwKLSAgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMH19LAotIHsweDEwYzYsIDY0LCB7IDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsCi0gIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsIDB4OTAsIDB4MTgsIDB4NTAsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsCi0gIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsCi0gIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4Zjh9fSwKLSB7MHgxMTA2LCA2NCwgeyAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LAotICAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLCAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDMwLCAweGUxLAotICAweDAzLCAweDAyLCAweDExLCAweGFhLCAweGMyLCAweDA5LCAweDkwLCAweDdiLCAweDQwLCAweGUwLCAweDE0LCAweDYwLCAweDI2LCAweDE0LCAweDYwLCAweDNiLAotICAweDE0LCAweDYwLCAweDUwLCAweDI0LCAweDgzLCAweDYwLCAweDY0LCAweDI0LCAweDgwLCAweDcwLCAweDYzLCAweDdlLCAweDdiLCAweDdmLCAweGMwfX0sCi0gezB4MTE0NiwgNjQsIHsgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhlZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwMCwKLSAgMHg0NiwgMHg4MCwgMHg0YiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwKLSAgMHg3NCwgMHhkZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgzMywgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwKLSAgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHg3NCwgMHhiZiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMn19LAotIHsweDExODYsIDY0LCB7IDB4MDAsIDB4NDYsIDB4ODAsIDB4MWIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTYsCi0gIDB4NzQsIDB4N2YsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MDMsIDB4MTIsIDB4MTcsIDB4NWMsIDB4ZTQsIDB4OTAsCi0gIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsCi0gIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDF9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LAotICAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLCAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LAotICAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLAotICAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLCAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHg4MiwgMHhmOCwgMHhlNCwgMHg5MywgMHg3MCwgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwKLSAgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywKLSAgMHg4MCwgMHhkZiwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgwMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwKLSAgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMH19LAotIHsweDEyNDYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsCi0gIDB4OTAsIDB4N2YsIDB4YWYsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MGIsCi0gIDB4MTIsIDB4MTgsIDB4MTQsIDB4YzIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4MmIsIDB4ZjUsIDB4MzEsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MDIsIDB4NzUsIDB4MjksCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDYsIDB4NzUsIDB4MzIsIDB4MGYsIDB4ZTAsIDB4ZjUsIDB4MjZ9fSwKLSB7MHgxMjg2LCA2NCwgeyAweDMwLCAweDAyLCAweDAzLCAweDEyLCAweDBmLCAweGQ5LCAweDMwLCAweDAxLCAweDA3LCAweGMyLCAweDAxLCAweDEyLCAweDA2LCAweDI5LCAweDgwLCAweGUyLCAweDMwLAotICAweDA4LCAweGRmLCAweGMyLCAweDA4LCAweDEyLCAweDE4LCAweDM1LCAweDgwLCAweGQ4LCAweDIyLCAweGU1LCAweDEzLCAweDU1LCAweDE2LCAweDYwLCAweDZhLAotICAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDVjLCAweGU1LCAweDE2LAotICAweGY0LCAweDUyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGZmLCAweGU0LCAweDM1LCAweDE0LCAweGZlLCAweGU0LCAweGZkLCAweDBmfX0sCi0gezB4MTJjNiwgNjQsIHsgMHhlZiwgMHhhYSwgMHgwNiwgMHg3MCwgMHgwMSwgMHgwZSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhmYywgMHg3NCwgMHg4MCwgMHgyZCwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHgwZCwgMHhiZCwgMHgwYiwgMHhlMiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwKLSAgMHgwYiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgxMCwgMHhmMCwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNX19LAotIHsweDEzMDYsIDY0LCB7IDB4MjQsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MjgsIDB4NDUsIDB4MjcsIDB4NjAsCi0gIDB4NTcsIDB4YWUsIDB4MjcsIDB4YWYsIDB4MjgsIDB4ZDMsIDB4ZWYsIDB4OTQsIDB4NDAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4N2UsIDB4MDAsCi0gIDB4N2YsIDB4NDAsIDB4YzMsIDB4ZTUsIDB4MjgsIDB4OWYsIDB4ZjUsIDB4MjgsIDB4ZTUsIDB4MjcsIDB4OWUsIDB4ZjUsIDB4MjcsIDB4ZTQsIDB4ZmQsIDB4ZWQsCi0gIDB4YzMsIDB4OWYsIDB4ZTQsIDB4OWUsIDB4NTAsIDB4MWYsIDB4ODUsIDB4MzQsIDB4ODIsIDB4ODUsIDB4MzMsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzR9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDAwLCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDBkLCAweDA1LCAweDM0LCAweGU1LCAweDM0LCAweDcwLAotICAweDAyLCAweDA1LCAweDMzLCAweDgwLCAweGRhLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweGVmLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU0LAotICAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDIyLCAweGU0LCAweDkwLCAweDdmLCAweDkzLCAweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGYwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0YSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZCwKLSAgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHgzMCwgMHgwMCwgMHgwNywgMHhlNSwgMHgyOSwgMHg1NCwgMHhmMCwgMHhmZiwKLSAgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHhlZiwgMHg0NCwgMHgwOCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwKLSAgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMH19LAotIHsweDEzYzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4ZjAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MjIsIDB4OGYsIDB4MWEsIDB4MDUsIDB4MmQsIDB4ZTUsIDB4MmQsIDB4YWUsIDB4MmMsIDB4NzAsIDB4MDIsCi0gIDB4MDUsIDB4MmMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MWEsIDB4ZjAsIDB4MTIsIDB4MTgsIDB4ZjAsIDB4MDUsIDB4MmQsIDB4ZTUsCi0gIDB4MmQsIDB4YWMsIDB4MmMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MmMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTV9fSwKLSB7MHgxNDA2LCA2NCwgeyAweDIzLCAweGU1LCAweDIzLCAweDYwLCAweDFmLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGMwLAotICAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZlLCAweDEyLCAweDE4LCAweGQ4LCAweDhmLCAweDFhLCAweGVlLCAweDRmLCAweGQwLCAweDgyLCAweGQwLCAweDgzLAotICAweGYwLCAweDgwLCAweGI1LCAweDIyLCAweDhmLCAweDFhLCAweGU0LCAweGY1LCAweDFiLCAweDc1LCAweDFjLCAweGZmLCAweDc1LCAweDFkLCAweDE5LCAweDc1LAotICAweDFlLCAweDg2LCAweGFiLCAweDFjLCAweGFhLCAweDFkLCAweGE5LCAweDFlLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDExLCAweGM0LCAweGI0fX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwMywgMHgxZCwgMHhhZiwgMHgxYiwgMHgwNSwgMHgxYiwgMHhlZiwgMHhiNSwgMHgxYSwgMHgwMSwgMHgyMiwgMHgxMiwgMHgxMSwgMHhhYiwgMHg3ZSwgMHgwMCwgMHgyOSwKLSAgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NSwgMHgxYywgMHhmZiwgMHhmNSwgMHgxZCwgMHg4OSwgMHgxZSwgMHg4MCwgMHhkNCwgMHg3YiwgMHgwMCwKLSAgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0ZiwgMHg3NCwgMHhjMCwgMHhmMCwKLSAgMHhlNCwgMHg5MCwgMHg3OCwgMHg1MCwgMHhmMCwgMHhlNSwgMHgyYywgMHg5MCwgMHg3OCwgMHg1MSwgMHhmMCwgMHhhZSwgMHgyYywgMHhlNSwgMHgyZH19LAotIHsweDE0ODYsIDY0LCB7IDB4OTAsIDB4NzgsIDB4NTIsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTQsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTcsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsCi0gIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTUsIDB4ZjAsIDB4OTAsCi0gIDB4NzgsIDB4NTUsIDB4ZTAsIDB4NjAsIDB4ZmEsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4OTAsIDB4NzgsIDB4NGYsCi0gIDB4ZjAsIDB4YWUsIDB4MmMsIDB4ZTUsIDB4MmQsIDB4OTAsIDB4NzgsIDB4NTAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTEsIDB4NzQsIDB4YzAsIDB4ZjB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweGU0LCAweDkwLCAweDc4LCAweDUyLCAweGYwLCAweDkwLCAweDc4LCAweDU0LCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDc4LCAweDU3LCAweDc0LCAweDA0LCAweGYwLAotICAweGU0LCAweDkwLCAweDc4LCAweDU1LCAweGYwLCAweDkwLCAweDc4LCAweDU1LCAweGUwLCAweDYwLCAweGZhLCAweDIyLCAweGU1LCAweDE1LCAweDI0LCAweDA0LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBmLCAweDE0LCAweDYwLCAweDEzLCAweDE0LCAweDYwLAotICAweDE3LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM3LCAweGVmLCAweGYwLCAweDgwLCAweDEzLCAweDkwLCAweDdmLCAweGM5LCAweGVmLCAweGYwfX0sCi0gezB4MTUwNiwgNjQsIHsgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhjYiwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhjZCwgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwKLSAgMHgyYSwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwKLSAgMHgwZiwgMHgxNCwgMHg2MCwgMHgxMywgMHgxNCwgMHg2MCwgMHgxNywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiNywgMHhlZiwgMHhmMCwgMHg4MCwgMHgxMywKLSAgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhiYiwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MH19LAotIHsweDE1NDYsIDY0LCB7IDB4N2YsIDB4YmQsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MmEsIDB4MjIsIDB4YWUsIDB4MDcsIDB4ZTQsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4OTAsIDB4NzgsCi0gIDB4NDEsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NDcsIDB4MjIsIDB4YzAsIDB4ZTB9fSwKLSB7MHgxNTg2LCA2NCwgeyAweGMwLCAweGYwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLAotICAweDc1LCAweGQwLCAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAxLCAweGYwLCAweDEyLCAweDEzLCAweDEyLCAweGQwLAotICAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGYwLCAweGQwLCAweGUwLCAweDMyLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxfX0sCi0gezB4MTVjNiwgNjQsIHsgMHg3NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwKLSAgMHgwNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNX19LAotIHsweDE2MDYsIDY0LCB7IDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsCi0gIDB4MDYsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjB9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA3LCAweGYwLCAweDkwLCAweGMwLAotICAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDA1LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVkLCAweGYwLCAweDIyLCAweDkwLAotICAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDQxfX0sCi0gezB4MTY4NiwgNjQsIHsgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwKLSAgMHgxNCwgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMH19LAotIHsweDE2YzYsIDY0LCB7IDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2EsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4Y2MsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsCi0gIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YjgsIDB4ZTAsIDB4ZmYsIDB4MjIsCi0gIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjR9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LCAweDYwLAotICAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGM5LCAweGUwLCAweGZmLCAweDIyLCAweDkwLAotICAweDdmLCAweGNiLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweGZmLCAweDIyLCAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLAotICAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwfX0sCi0gezB4MTc0NiwgNjQsIHsgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwKLSAgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3YiwgMHg0MSwgMHhlMCwgMHhmNSwgMHgzNiwgMHg0MywgMHgxMywgMHgxMCwgMHhhMywgMHhlMCwKLSAgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwgMHg5MCwgMHg3YiwgMHg0MywgMHhlMCwgMHhmNSwKLSAgMHgzNywgMHhhMywgMHhlMCwgMHg1NCwgMHhmMCwgMHhmNSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwgMHgwYSwgMHgyMiwgMHhjMCwgMHhlMH19LAotIHsweDE3ODYsIDY0LCB7IDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsCi0gIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsCi0gIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsCi0gIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyLCAweDEyLCAweDE4LCAweGMwLCAweGFlLCAweDA3LAotICAweDEyLCAweDE4LCAweGMwLCAweGFkLCAweDA3LCAweGVlLCAweDZkLCAweDYwLCAweDEwLCAweDEyLCAweDE4LCAweGMwLCAweGFlLCAweDA3LCAweGVlLCAweDZkLAotICAweDYwLCAweDA3LCAweDEyLCAweDE4LCAweGMwLCAweGFkLCAweDA3LCAweDgwLCAweGVjLCAweGFmLCAweDA2LCAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LAotICAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5LCAweDIyLCAweDkwLCAweDdmfX0sCi0gezB4MTgwNiwgNjQsIHsgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwKLSAgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgwYiwgMHgwNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwKLSAgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgxOCwgMHg2YiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywKLSAgMHg3YywgMHgxMiwgMHgxOCwgMHgwNCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwYSwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH19LAotIHsweDE4NDYsIDY0LCB7IDB4MTIsIDB4MTgsIDB4NmIsIDB4MTIsIDB4MTgsIDB4OWUsIDB4MTIsIDB4MGEsIDB4YjgsIDB4MjIsIDB4MDMsIDB4MzUsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MmUsCi0gIDB4ODEsIDB4MDAsIDB4MDAsIDB4YzEsIDB4ODUsIDB4YzEsIDB4ODEsIDB4YzEsIDB4MDgsIDB4YzEsIDB4MDAsIDB4YzEsIDB4MDYsIDB4MDEsIDB4MjIsIDB4MDAsCi0gIDB4MDEsIDB4MjQsIDB4MDAsIDB4MDAsIDB4OGUsIDB4MTgsIDB4OGYsIDB4MTksIDB4ZTUsIDB4MTksIDB4MTUsIDB4MTksIDB4YWUsIDB4MTgsIDB4NzAsIDB4MDIsCi0gIDB4MTUsIDB4MTgsIDB4NGUsIDB4NjAsIDB4MDgsIDB4MTIsIDB4MTcsIDB4ZjMsIDB4MTIsIDB4MTcsIDB4ZjMsIDB4ODAsIDB4ZWIsIDB4MjIsIDB4ZTV9fSwKLSB7MHgxODg2LCA2NCwgeyAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDA0LCAweGZmLCAweDQ0LCAweDEwLCAweDkwLCAweDdmLAotICAweGQ3LCAweGYwLCAweGVmLCAweDQ0LCAweDMwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLAotICAweDdlLCAweDAwLCAweDEyLCAweDE4LCAweDZiLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLAotICAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweDAzLCAweGYwfX0sCi0gezB4MThjNiwgNjQsIHsgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwKLSAgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHgwNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwKLSAgMHg3NCwgMHgwNiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHgwMH19LAotIHsweDE5MDYsIDY0LCB7IDB4MDAsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MGEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDQsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MzYsIDB4MDMsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDIsIDB4MDAsIDB4MjAsIDB4MDAsIDB4MzQsIDB4MDAsIDB4MmQsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NmYsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NzQsCi0gIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmMsIDB4MDAsIDB4MjAsCi0gIDB4MDAsIDB4NDEsIDB4MDAsIDB4NjQsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzIsIDB4MDB9fSwKLSB7MHgxYTA2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDE3LCAweDg0LCAweDAwLCAweDAyLCAweDFifX0sCi0gezB4MWIwNiwgMjEsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgxNywgMHgzMiwgMHgwMCwgMHgwMiwgMHgxNywgMHhhYiwgMHgwMCwgMHgwMiwgMHgxYiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgxYiwgMHgxNCwKLSAgMHgwMCwgMHgwMiwgMHgxNSwgMHg4NH19LAotIHsweGZmZmYsIDAsIHsweDAwfX0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdsY19mdy5oIGIvZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fdXNhNDl3bGNfZncuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmVmMDZhMy4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwva2V5c3Bhbl91c2E0OXdsY19mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDc2ICswLDAgQEAKLS8qIGtleXNwYW5fdXNhNDl3X2Z3LmgKLQotCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGFzIGtleXNwYW5fdXNhNDl3X2Z3LmggaXMKLQotCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMwotCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCi0JCQotCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgotCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcwotCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlIAotCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQgCi0JS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0KLQlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUgCi0JaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsIAotCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuIAotCi0JVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggIAotCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUgCi0Ja2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbiAKLQlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKLQotc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNDlbXSA9Ci0JIjAyLzE0LzIwMDIgIDAyOjM3cCAgICAgICAgICAgICAgMTksMzQ3IFVTQTQ5IjsKLQotCi0KLXN0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTY1W10gPQotCSIwMS8zMS8yMDAzICAwOTozNGEgICAgICAgICAgICAgIDE5LDMzMSBVU0E2NSI7Ci0KLQotKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIGtleXNwYW5fdXNhNDl3bGNfZmlybXdhcmVbXSA9IHsKLSB7MHg3ZjkyLCAgMSwgeyAweDAxfX0sCi0gezB4MDAzMywgIDMsIHsgMHgwMiwgMHgxOCwgMHhmYn19LAotIHsweDAwMzYsIDEzLCB7IDB4ZTUsIDB4MTEsIDB4MDQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZTAsIDB4ZmYsIDB4MjJ9fSwKLSB7MHgwMDQ2LCAxNiwgeyAweGU0LCAweGZmLCAweDc0LCAweDQwLCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGU1LCAweDE1fX0sCi0gezB4MDA1NiwgMTYsIHsgMHgyNCwgMHgwNCwgMHhmZCwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmYSwgMHhhOSwgMHgwNSwgMHg3YiwgMHgwMSwgMHhlZiwgMHg3YywgMHgwMCwgMHgyOSwgMHhmOX19LAotIHsweDAwNjYsIDE2LCB7IDB4ZWMsIDB4M2EsIDB4ZmEsIDB4ZWUsIDB4MTIsIDB4MTEsIDB4ZWMsIDB4MGYsIDB4YmYsIDB4MjIsIDB4ZDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDUsIDB4ZjV9fSwKLSB7MHgwMDc2LCAxNiwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDAxLCAweDM0LCAweGU1LCAweDE1LCAweDI0LCAweDA5fX0sCi0gezB4MDA4NiwgMTYsIHsgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwYSwgMHhmNSwgMHg4Mn19LAotIHsweDAwOTYsIDE2LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTgsIDB4N2YsIDB4MDEsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTV9fSwKLSB7MHgwMGE2LCAxNiwgeyAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGNmLCAweGYwLCAweDgwLCAweDQxfX0sCi0gezB4MDBiNiwgMTYsIHsgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgwMCwgMHgwM319LAotIHsweDAwYzYsIDE2LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4YWJ9fSwKLSB7MHgwMGQ2LCAxNiwgeyAweDdmLCAweDAxLCAweGU1LCAweDE1LCAweDI0LCAweDA4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweDEyfX0sCi0gezB4MDBlNiwgMTYsIHsgMHgxNiwgMHg2YiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgzMH19LAotIHsweDAwZjYsIDE2LCB7IDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjB9fSwKLSB7MHgwMDAzLCAxNiwgeyAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0fX0sCi0gezB4MDAxMywgMTYsIHsgMHhmMCwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNH19LAotIHsweDAwMjMsIDE2LCB7IDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjJ9fSwKLSB7MHgwMDQzLCAgMywgeyAweDAyLCAweDFiLCAweDAwfX0sCi0gezB4MDAwMCwgIDMsIHsgMHgwMiwgMHgxMCwgMHg5MH19LAotIHsweDAxMDYsIDY0LCB7IDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzYsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDYsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MzIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGN9fSwKLSB7MHgwMTQ2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDNmLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LAotICAweDBkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDAzLCAweDAyLCAweDAyLCAweDRmLCAweGU1fX0sCi0gezB4MDE4NiwgNjQsIHsgMHgxNSwgMHgyNCwgMHgxNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwKLSAgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlNCwgMHhmZiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNX19LAotIHsweDAxYzYsIDY0LCB7IDB4MTUsIDB4MjQsIDB4MGUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmMsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MGZ9fSwKLSB7MHgwMjA2LCA2NCwgeyAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDJmLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LCAweDgyLCAweGU0LAotICAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDEwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE2LCAweDBiLCAweGU1LCAweDE1LCAweDI0LCAweDExLCAweGY1LCAweDgyLCAweGU0LCAweDM1LAotICAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDEyLCAweDE2LCAweDNiLCAweGU1LCAweDE1LCAweDI0LCAweDMzLCAweGY1LCAweDgyLCAweGU0fX0sCi0gezB4MDI0NiwgNjQsIHsgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxMiwgMHgxNSwgMHhkYiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHg0NCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg2MCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNX19LAotIHsweDAyODYsIDY0LCB7IDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTIsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4NDQsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKLSB7MHgwMmM2LCA2NCwgeyAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDgwLCAweDBmLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDE2LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDE1LCAweDI0LCAweDM1LCAweGY1LCAweDgyfX0sCi0gezB4MDMwNiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgxMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg4MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNX19LAotIHsweDAzNDYsIDY0LCB7IDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2IsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsCi0gIDB4MTUsIDB4MjQsIDB4MTksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MTEsIDB4ZTUsIDB4MTUsIDB4MjQsCi0gIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MTAsIDB4ZjAsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4Nzh9fSwKLSB7MHgwMzg2LCA2NCwgeyAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDFhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDZiLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGJmLCAweGYwLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0fX0sCi0gezB4MDNjNiwgNjQsIHsgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMSwgMHhmMCwgMHgxMiwgMHgwMCwKLSAgMHgzNiwgMHhlZiwgMHg1NCwgMHhmZSwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmZCwgMHhmZiwgMHhmMCwgMHhmZCwgMHhlNCwgMHhmZiwgMHgxMiwgMHgxNiwgMHg2YiwgMHhlNSwgMHgxNSwKLSAgMHgyNCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyYn19LAotIHsweDA0MDYsIDY0LCB7IDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWIsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NzAsIDB4MGUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjUsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsCi0gIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NmIsIDB4ZTV9fSwKLSB7MHgwNDQ2LCA2NCwgeyAweDE1LCAweDI0LCAweDJiLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLAotICAweGU1LCAweDE1LCAweDI0LCAweDFjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweDcwLCAweDBlLCAweGU1LAotICAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDJhLCAweDkwLCAweDc4LCAweDQxLAotICAweDc0LCAweGYyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwfX0sCi0gezB4MDQ4NiwgNjQsIHsgMHg0NCwgMHgwNCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlZiwgMHg2MCwgMHgwZiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwKLSAgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgxZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwgMHgyNywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNX19LAotIHsweDA0YzYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MWUsCi0gIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MjgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZmYsIDB4ZjAsIDB4ZmQsIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTYsIDB4NmIsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZTV9fSwKLSB7MHgwNTA2LCA2NCwgeyAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDFmLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDBlLAotICAweGU1LCAweDE1LCAweDI0LCAweDI1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDI3LCAweGU1LCAweDE1LAotICAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAxLCAweGZmLCAweGYwLCAweGZkLCAweGU0LAotICAweGZmLCAweDEyLCAweDE2LCAweDZiLCAweGU1LCAweDE1LCAweDI0LCAweDJkLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzfX0sCi0gezB4MDU0NiwgNjQsIHsgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg3MCwgMHgwZSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg2MCwKLSAgMHgxOCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwKLSAgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHg5MCwgMHhjMCwgMHgwMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyMSwgMHhmNSwgMHg4Mn19LAotIHsweDA1ODYsIDY0LCB7IDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsCi0gIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjB9fSwKLSB7MHgwNWM2LCA2NCwgeyAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDIzLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLAotICAweDAzLCAweDEyLCAweDE4LCAweDdhLCAweGU1LCAweDE1LCAweDI0LCAweDI0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLAotICAweDYwLCAweDIzLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDA4LAotICAweGYwLCAweGU1LCAweDE2LCAweGM0LCAweDU0LCAweGYwLCAweGZmLCAweDQyLCAweDExLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDRmLCAweGYwfX0sCi0gezB4MDYwNiwgNjQsIHsgMHg5MCwgMHg3OCwgMHg0MSwgMHhlMCwgMHg0ZiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywKLSAgMHhlMCwgMHg2MCwgMHgyNCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwKLSAgMHhmNywgMHhmMCwgMHhlNSwgMHgxNiwgMHhjNCwgMHg1NCwgMHhmMCwgMHhmNCwgMHhmZiwgMHg1MiwgMHgxMSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1ZiwKLSAgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlMCwgMHg1ZiwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHgxMiwgMHgxMSwgMHhmZX19LAotIHsweDA2NDYsIDY0LCB7IDB4MDcsIDB4OTksIDB4MDAsIDB4MDgsIDB4MGQsIDB4MDEsIDB4MDgsIDB4NzksIDB4MDMsIDB4MDYsIDB4NjIsIDB4MDYsIDB4MDcsIDB4OGEsIDB4MDgsIDB4MDcsIDB4N2UsCi0gIDB4MDksIDB4MDcsIDB4NjYsIDB4MGEsIDB4MDcsIDB4NzUsIDB4MGIsIDB4MDAsIDB4MDAsIDB4MDgsIDB4YzgsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsCi0gIDB4ZmUsIDB4NjAsIDB4MWMsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDcsIDB4MTQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDcsIDB4NWMsCi0gIDB4NzQsIDB4MTksIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2Z9fSwKLSB7MHgwNjg2LCA2NCwgeyAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDA0LCAweDc1LCAweDgyLCAweDE3LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDMwLAotICAweGUwLCAweDA0LCAweDdmLCAweDAyLCAweDgwLCAweDAyLCAweDdmLCAweDAzLCAweDc1LCAweDgyLCAweDgyLCAweDc1LCAweDgzLCAweDE5LCAweGVmLCAweGYwLAotICAweDc1LCAweDgyLCAweDZkLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDY2LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLAotICAweDVmLCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDc1LCAweDgyLCAweDU4LCAweDc1LCAweDgzLCAweDE5LCAweGYwLCAweDkwLCAweDdmLCAweGVhfX0sCi0gezB4MDZjNiwgNjQsIHsgMHhlMCwgMHgzMCwgMHhlMSwgMHgwNCwgMHg3ZiwgMHg2NCwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgzMiwgMHg3NSwgMHg4MiwgMHgxYSwgMHg3NSwgMHg4MywgMHgxOSwgMHhlZiwKLSAgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlZiwgMHhlMCwgMHhmZSwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHg3YywgMHgwMCwgMHgyNCwgMHgwMCwgMHhmNSwgMHgxOCwKLSAgMHhlYywgMHgzZSwgMHhmNSwgMHgxNywgMHg3NSwgMHgzMywgMHgxOSwgMHg3NSwgMHgzNCwgMHgxMiwgMHg3NSwgMHg4MiwgMHgxNCwgMHg3NSwgMHg4MywgMHgxOSwKLSAgMHhlMCwgMHg3NSwgMHgyNywgMHgwMCwgMHhmNSwgMHgyOCwgMHhkMywgMHhlNSwgMHgyOCwgMHg5NSwgMHgxOCwgMHhlNSwgMHgyNywgMHg5NSwgMHgxN319LAotIHsweDA3MDYsIDY0LCB7IDB4NDAsIDB4MDYsIDB4ODUsIDB4MTcsIDB4MjcsIDB4ODUsIDB4MTgsIDB4MjgsIDB4MTIsIDB4MTMsIDB4MGQsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4ZWEsCi0gIDB4ZTAsIDB4ZmYsIDB4MTIsIDB4MTQsIDB4NWYsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MzIsIDB4OTAsIDB4N2YsIDB4ZWUsIDB4ZTAsIDB4NzUsIDB4MTcsIDB4MDAsCi0gIDB4ZjUsIDB4MTgsIDB4YWUsIDB4MDIsIDB4YWYsIDB4MDEsIDB4OGUsIDB4MzMsIDB4OGYsIDB4MzQsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmUsCi0gIDB4YTMsIDB4ZTAsIDB4OGUsIDB4MjcsIDB4ZjUsIDB4MjgsIDB4ZDMsIDB4OTUsIDB4MTgsIDB4ZTUsIDB4MjcsIDB4OTUsIDB4MTcsIDB4NDAsIDB4MDZ9fSwKLSB7MHgwNzQ2LCA2NCwgeyAweDg1LCAweDE3LCAweDI3LCAweDg1LCAweDE4LCAweDI4LCAweDEyLCAweDEzLCAweDBkLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LAotICAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLAotICAweDdmLCAweDAwLCAweGU1LCAweDI1LCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLAotICAweGVhLCAweGUwLCAweGY1LCAweDI1LCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIyLCAweDEyLCAweDBhfX0sCi0gezB4MDc4NiwgNjQsIHsgMHhjZSwgMHgwMiwgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgyMiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHgwMiwKLSAgMHgwOCwgMHhjZiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwKLSAgMHg1YiwgMHhhMiwgMHgwMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwKLSAgMHgwMCwgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwOCwgMHhjZiwgMHhlNH19LAotIHsweDA3YzYsIDY0LCB7IDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsCi0gIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsCi0gIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsCi0gIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDgsIDB4Y2YsIDB4OTAsIDB4N2YsIDB4YjR9fSwKLSB7MHgwODA2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLAotICAweDYwLCAweDAzLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyLCAweDA4LAotICAweGNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA4LCAweGNmLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweDcwLAotICAweDM4LCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0fX0sCi0gezB4MDg0NiwgNjQsIHsgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwKLSAgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwKLSAgMHg4MCwgMHg1NiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg0YSwgMHg5MH19LAotIHsweDA4ODYsIDY0LCB7IDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDQsIDB4ZDIsIDB4MDAsIDB4ODAsIDB4M2YsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsCi0gIDB4ODAsIDB4MzYsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsCi0gIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsCi0gIDB4N2YsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjB9fSwKLSB7MHgwOGM2LCA2NCwgeyAweDgwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDIyLAotICAweGU1LCAweDEyLCAweDU0LCAweDBmLCAweDcwLCAweDAzLCAweDAyLCAweDA5LCAweGM4LCAweDEyLCAweDE2LCAweDlhLCAweGVmLCAweDIwLCAweGUxLCAweDc1LAotICAweDEyLCAweDE2LCAweGY4LCAweGVmLCAweDE0LCAweGY1LCAweDE4LCAweDEyLCAweDE4LCAweGM1LCAweGVmLCAweDI1LCAweDE4LCAweGZmLCAweGU0LCAweDMzLAotICAweGZlLCAweGMzLCAweGVmLCAweDk0LCAweDgwLCAweGVlLCAweDY0LCAweDgwLCAweDk0LCAweDgwLCAweDUwLCAweDU5LCAweDg1LCAweDE1LCAweDgyfX0sCi0gezB4MDkwNiwgNjQsIHsgMHg4NSwgMHgxNCwgMHg4MywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhmNSwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMCwgMHgxMSwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHgwZiwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHhmMCwgMHhlNSwKLSAgMHgxNSwgMHgyNCwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgyMCwgMHhlMiwgMHgxMiwgMHhlNX19LAotIHsweDA5NDYsIDY0LCB7IDB4MTgsIDB4NjAsIDB4MGUsIDB4ZjUsIDB4MjMsIDB4ZWYsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4MmQsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4MmMsIDB4MTIsIDB4MTQsIDB4YTAsCi0gIDB4ZTQsIDB4ZmYsIDB4MTIsIDB4MTQsIDB4ZDcsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsCi0gIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4NWQsIDB4MTIsIDB4MTgsIDB4YzUsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2IsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsCi0gIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4ZWYsIDB4YzMsIDB4OWUsIDB4NTAsIDB4NDgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmYsIDB4ZjUsIDB4ODJ9fSwKLSB7MHgwOTg2LCA2NCwgeyAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAxLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LAotICAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdiLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LAotICAweDgzLCAweGU0LCAweGYwLCAweGU1LCAweDE2LCAweDQyLCAweDEzLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDMwLCAweGUxLCAweDEwLCAweGU1LCAweDE1LAotICAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweDI0LCAweDgwLCAweDAzLCAweDEyfX0sCi0gezB4MDljNiwgNjQsIHsgMHgxMiwgMHg5YywgMHgxMiwgMHgxNiwgMHhjOSwgMHhlZiwgMHgzMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwYSwgMHhjZCwgMHgxMiwgMHgxNywgMHhjNywgMHg4ZiwgMHgxOCwKLSAgMHgxMiwgMHgxOCwgMHhkMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwKLSAgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHhjMywKLSAgMHg5ZiwgMHg1MCwgMHgyOCwgMHgxMiwgMHgxOCwgMHhhOSwgMHhlZiwgMHgzMCwgMHhlMCwgMHgyMSwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNX19LAotIHsweDBhMDYsIDY0LCB7IDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTcsIDB4MTIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MGEsIDB4Y2QsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTUsIDB4MTgsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MGEsCi0gIDB4Y2QsIDB4YjQsIDB4ODAsIDB4MGYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODN9fSwKLSB7MHgwYTQ2LCA2NCwgeyAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM4LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweGZmLAotICAweDMwLCAweGU3LCAweDI5LCAweGU1LCAweDE4LCAweGQzLCAweDk0LCAweDIwLCAweDQwLCAweDAzLCAweDc1LCAweDE4LCAweDIwLCAweDg1LCAweDE4LCAweDIzLAotICAweDg1LCAweDE1LCAweDgyLCAweDg1LCAweDE0LCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweDhjLCAweDJjLCAweGY1LCAweDJkLAotICAweDEyLCAweDEzLCAweGNmLCAweGU1LCAweDE4LCAweDI1LCAweGUwLCAweGZmLCAweDEyLCAweDE1LCAweDBkLCAweDIyLCAweGU1LCAweDE4LCAweGQzfX0sCi0gezB4MGE4NiwgNjQsIHsgMHg5NCwgMHgzZiwgMHg0MCwgMHgwMywgMHg3NSwgMHgxOCwgMHgzZiwgMHg4NSwgMHgxOCwgMHgyMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgzOCwgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywKLSAgMHhhMywgMHhlMCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywKLSAgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHgyNCwgMHgwMSwgMHhmNSwgMHgyZCwgMHhlNCwgMHgzZSwgMHhmNSwgMHgyYywgMHgxMiwgMHgxNCwgMHgxZH19LAotIHsweDBhYzYsIDY0LCB7IDB4ZTUsIDB4MTgsIDB4MDQsIDB4ZmYsIDB4MTIsIDB4MTUsIDB4MGQsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsCi0gIDB4ZmYsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTQsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NGEsIDB4MDQsIDB4ZjAsCi0gIDB4ZjUsIDB4OGUsIDB4OTAsIDB4N2YsIDB4OTUsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4NzQsIDB4M2YsIDB4ZjAsIDB4OTAsIDB4N2YsCi0gIDB4OTgsIDB4NzQsIDB4MmYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDMsIDB4NzQsIDB4ZjcsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZjB9fSwKLSB7MHgwYjA2LCA2NCwgeyAweDkwLCAweDdmLCAweGRmLCAweDc0LCAweDlmLCAweGYwLCAweDkwLCAweDdmLCAweGRlLCAweGYwLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLAotICAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJlLCAweGYwLAotICAweDc1LCAweDE2LCAweDAxLCAweDEyLCAweDBmLCAweDI4LCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1LCAweGMwLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweGU1LCAweDE1LCAweDI0LCAweDI2LCAweGY1LCAweDgyfX0sCi0gezB4MGI0NiwgNjQsIHsgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg0MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywKLSAgMHg3NCwgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHg4MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwKLSAgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZSwgMHhmMCwgMHhhMywgMHg3NCwgMHg4MCwgMHhmMCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwKLSAgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgwZn19LAotIHsweDBiODYsIDY0LCB7IDB4MjgsIDB4N2UsIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsCi0gIDB4NzUsIDB4MTYsIDB4MDIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsCi0gIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4YzAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsCi0gIDB4YzAsIDB4ZjAsIDB4N2UsIDB4N2UsIDB4N2YsIDB4MDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzR9fSwKLSB7MHgwYmM2LCA2NCwgeyAweDdlLCAweGYwLCAweGEzLCAweDc0LCAweDAwLCAweGYwLCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLAotICAweDdmLCAweDk4LCAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweDEyLCAweDBmLCAweDI4LCAweDdlLCAweDdjLCAweDdmLCAweDQwLCAweDc1LAotICAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDQwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJiLCAweGYwLCAweDc1LCAweDE2LCAweDA0LCAweGU1LCAweDE1LAotICAweDI0LCAweDI2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDAyLCAweGYwLCAweDdlLCAweDdkLCAweDdmfX0sCi0gezB4MGMwNiwgNjQsIHsgMHg0MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHg3ZCwgMHg3ZiwKLSAgMHg4MCwgMHg4NSwgMHgxNSwgMHg4MiwgMHg4NSwgMHgxNCwgMHg4MywgMHhhMywgMHhhMywgMHg3NCwgMHg3ZCwgMHhmMCwgMHhhMywgMHg3NCwgMHg4MCwgMHhmMCwKLSAgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwKLSAgMHg3NSwgMHgxNiwgMHgwOCwgMHgxMiwgMHgwZiwgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNX19LAotIHsweDBjNDYsIDY0LCB7IDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjYsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4N2UsIDB4N2MsIDB4N2YsIDB4YzAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsIDB4MTQsCi0gIDB4ODMsIDB4NzQsIDB4N2MsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4YzAsIDB4ZjAsIDB4N2UsIDB4N2QsIDB4N2YsIDB4MDAsIDB4ODUsIDB4MTUsIDB4ODIsIDB4ODUsCi0gIDB4MTQsIDB4ODMsIDB4YTMsIDB4YTMsIDB4NzQsIDB4N2QsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4YzIsIDB4MGEsIDB4YzIsIDB4MDl9fSwKLSB7MHgwYzg2LCA2NCwgeyAweGU0LCAweGY1LCAweDExLCAweGQyLCAweDAyLCAweDIyLCAweGU1LCAweDEwLCAweDA0LCAweDU0LCAweDAzLCAweGY1LCAweDEwLCAweDE0LCAweDYwLCAweDFmLCAweDE0LAotICAweDYwLCAweDMxLCAweDE0LCAweDYwLCAweDQzLCAweDI0LCAweDAzLCAweDcwLCAweDUyLCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLAotICAweDc1LCAweDE1LCAweGMwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJlLCAweGYwLCAweDc1LCAweDE2LCAweDAxLCAweDgwLCAweDNkLCAweDdlLCAweDdjLAotICAweDdmLCAweDAwLCAweDc1LCAweDE0LCAweDdjLCAweDc1LCAweDE1LCAweDAwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDJkLCAweGYwLCAweDc1fX0sCi0gezB4MGNjNiwgNjQsIHsgMHgxNiwgMHgwMiwgMHg4MCwgMHgyOCwgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwKLSAgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHg4MCwgMHgxMywgMHg3ZSwgMHg3YywgMHg3ZiwgMHg4MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwKLSAgMHgxNSwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyNywgMHhmMCwgMHg3NSwgMHgxNiwgMHgwOCwgMHhlNSwgMHgzMiwgMHg1NSwgMHgxNiwgMHg3MCwKLSAgMHgwMywgMHgwMiwgMHgwZSwgMHgyNywgMHhlNSwgMHgxNiwgMHhmNCwgMHg1MiwgMHgzMiwgMHhlNSwgMHgyNiwgMHg1NCwgMHg3ZiwgMHhmZiwgMHg3MH19LAotIHsweDBkMDYsIDY0LCB7IDB4MTcsIDB4ZTUsIDB4MmEsIDB4NTUsIDB4MTYsIDB4NjAsIDB4MzQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4ZmUsIDB4ZTUsIDB4MTYsIDB4YzQsIDB4NTQsIDB4ZjAsCi0gIDB4ZjQsIDB4ZmQsIDB4ZWUsIDB4NWQsIDB4ZjAsIDB4ODAsIDB4MjMsIDB4YmYsIDB4MjAsIDB4MjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsCi0gIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTEsIDB4ZTQsIDB4ZjUsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsCi0gIDB4ZmYsIDB4ZTUsIDB4MTYsIDB4YzQsIDB4NTQsIDB4ZjAsIDB4ZmUsIDB4ZWYsIDB4NGUsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4M2EsIDB4ZjV9fSwKLSB7MHgwZDQ2LCA2NCwgeyAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDAzLCAweGUwLCAweDE0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM0LCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDYwLCAweDAzLCAweGUwLCAweDE0LCAweGYwLCAweGUwLCAweDYwLCAweDAzLCAweDAyLAotICAweDBlLCAweDI3LCAweDc0LCAweDBhLCAweGYwLCAweDEyLCAweDAwLCAweDM2LCAweGVmLCAweDU0LCAweDAxLCAweGZmLCAweGY1LCAweDE4LCAweGU1LCAweDE1LAotICAweDI0LCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDZmLCAweDYwLCAweDA3LCAweGU1LCAweDE4fX0sCi0gezB4MGQ4NiwgNjQsIHsgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHgxMiwgMHgxOCwgMHhlMSwgMHg4ZiwgMHgxOCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyNywgMHhmNSwgMHg4MiwgMHhlNCwKLSAgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNSwgMHgxOCwgMHg1NCwgMHgxMCwgMHhmZSwgMHg2ZiwgMHg2MCwgMHgwNiwgMHhlZSwgMHhmMCwKLSAgMHhlNSwgMHgxNiwgMHg0MiwgMHgxMywgMHhlNSwgMHgxNSwgMHgyNCwgMHgyOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwKLSAgMHhmZiwgMHhlNSwgMHgxOCwgMHg1NCwgMHg4MCwgMHhmZSwgMHg2ZiwgMHg2MCwgMHgwNiwgMHhlZSwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgxM319LAotIHsweDBkYzYsIDY0LCB7IDB4ZTUsIDB4MTUsIDB4MjQsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4MjAsCi0gIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MTUsIDB4ZWUsIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsCi0gIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTQsIDB4MDQsIDB4ZTUsIDB4MTYsIDB4NDIsIDB4MTMsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MmEsIDB4ZjUsIDB4ODIsIDB4ZTQsCi0gIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4MTgsIDB4NTQsIDB4NDAsIDB4ZmUsIDB4NmYsIDB4NjAsIDB4MTUsIDB4ZWV9fSwKLSB7MHgwZTA2LCA2NCwgeyAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDMxLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU1LCAweDA0LCAweGU1LAotICAweDE2LCAweDQyLCAweDEzLCAweGU1LCAweDE1LCAweDI0LCAweDMwLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGU0LCAweGYwLAotICAweDIyLCAweDMwLCAweDA5LCAweDAzLCAweDAyLCAweDBmLCAweDI3LCAweGU1LCAweDI0LCAweDE0LCAweDYwLCAweDJhLCAweDE0LCAweDYwLCAweDQxLCAweDE0LAotICAweDYwLCAweDU4LCAweDE0LCAweDYwLCAweDZmLCAweDI0LCAweDA0LCAweDYwLCAweDAzLCAweDAyLCAweDBlLCAweGU1LCAweDdlLCAweDdiLCAweDdmfX0sCi0gezB4MGU0NiwgNjQsIHsgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwKLSAgMHgxMiwgMHg5YywgMHg3NSwgMHgyNCwgMHgwMSwgMHgyMiwgMHg3ZSwgMHg3YywgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMiwgMHgxMiwgMHgxMiwgMHg5YywgMHg3NSwgMHgyNCwgMHgwMiwgMHgyMiwKLSAgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYn19LAotIHsweDBlODYsIDY0LCB7IDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDQsIDB4MTIsIDB4MTIsIDB4OWMsIDB4NzUsIDB4MjQsIDB4MDMsIDB4MjIsIDB4N2UsIDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsCi0gIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDgsIDB4MTIsIDB4MTIsIDB4OWMsCi0gIDB4NzUsIDB4MjQsIDB4MDQsIDB4MjIsIDB4MzAsIDB4MDQsIDB4MzMsIDB4YzIsIDB4MDQsIDB4NTMsIDB4MTMsIDB4ZGYsIDB4ZTQsIDB4ZjUsIDB4MTgsIDB4N2UsCi0gIDB4MDAsIDB4N2IsIDB4MDAsIDB4NzQsIDB4MmUsIDB4MjUsIDB4MTgsIDB4ZjksIDB4ZWUsIDB4MzQsIDB4MDAsIDB4ZmEsIDB4MTIsIDB4MTEsIDB4YTZ9fSwKLSB7MHgwZWM2LCA2NCwgeyAweGZmLCAweDc0LCAweDgwLCAweDI1LCAweDE4LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdiLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDA1LCAweDE4LCAweGU1LAotICAweDE4LCAweGI0LCAweDAzLCAweGRiLCAweDkwLCAweDdmLCAweGMzLCAweDc0LCAweDAzLCAweGYwLCAweDc1LCAweDI0LCAweDA1LCAweDIyLCAweGU1LCAweDM2LAotICAweDYwLCAweDNiLCAweGQ1LCAweDM2LCAweDBhLCAweDUzLCAweDEzLCAweGVmLCAweDMwLCAweDBhLCAweDA0LCAweGQyLCAweDA5LCAweGMyLCAweDBhLCAweGU0LAotICAweGY1LCAweDE4LCAweDdlLCAweDAwLCAweDdiLCAweDAwLCAweDc0LCAweDM1LCAweDI1LCAweDE4LCAweGY5LCAweGVlLCAweDM0LCAweDAwLCAweGZhfX0sCi0gezB4MGYwNiwgNjQsIHsgMHgxMiwgMHgxMSwgMHhhNiwgMHhmZiwgMHg3NCwgMHg4MCwgMHgyNSwgMHgxOCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwKLSAgMHgwNSwgMHgxOCwgMHhlNSwgMHgxOCwgMHhiNCwgMHgwMywgMHhkYiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwMywgMHhmMCwgMHhlNCwgMHhmNSwgMHgyNCwKLSAgMHgyMiwgMHhlNCwgMHhmNSwgMHgxOSwgMHg3ZSwgMHgwMCwgMHg3YiwgMHgwMSwgMHhlNSwgMHgxNSwgMHgyNSwgMHgxOSwgMHhmOSwgMHhlZSwgMHgzNSwgMHgxNCwKLSAgMHhmYSwgMHhlNCwgMHgxMiwgMHgxMSwgMHhlYywgMHgwNSwgMHgxOSwgMHhlNSwgMHgxOSwgMHhiNCwgMHgzYywgMHhlOCwgMHhlNSwgMHgxNSwgMHgyNH19LAotIHsweDBmNDYsIDY0LCB7IDB4MzUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsCi0gIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4OTAsIDB4YzAsCi0gIDB4MDAsIDB4ZjAsIDB4N2YsIDB4MGMsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsIDB4N2YsIDB4MTAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzMsIDB4ZjUsCi0gIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MTIsIDB4MTUsIDB4ZGIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzR9fSwKLSB7MHgwZjg2LCA2NCwgeyAweGYyLCAweGYwLCAweDdmLCAweDAxLCAweGU1LCAweDE1LCAweDI0LCAweDM2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGVmLCAweGYwLAotICAweDQ0LCAweDA2LCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY0LCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM5LAotICAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweDc0LCAweDgwLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDBmLCAweGU0LAotICAweGZkLCAweDEyLCAweDE2LCAweDZiLCAweGU0LCAweGZmLCAweDdlLCAweGEzLCAweGU1LCAweDE1LCAweDI0LCAweDMyLCAweGY1LCAweDgyLCAweGU0fX0sCi0gezB4MGZjNiwgNjQsIHsgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlZSwgMHhmMCwgMHhmZCwgMHgxMiwgMHgxNiwgMHg2YiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMSwgMHhmMCwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhlNCwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZCwgMHg3ZiwgMHgxMiwgMHgxNiwgMHg2YiwgMHg3ZiwgMHgwMSwgMHgxMiwgMHgxNSwgMHg0MywKLSAgMHg3ZiwgMHgwMywgMHg3ZCwgMHgwNywgMHgxMiwgMHgxNiwgMHg2YiwgMHgyMiwgMHg1MywgMHgxMywgMHgzZiwgMHg5MCwgMHg3YiwgMHhmMSwgMHhlMCwgMHgzMCwKLSAgMHhlMywgMHgxNiwgMHg3ZSwgMHg3YiwgMHg3ZiwgMHhjMCwgMHg3NSwgMHgxNCwgMHg3YiwgMHg3NSwgMHgxNSwgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OH19LAotIHsweDEwMDYsIDY0LCB7IDB4NzQsIDB4MmUsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDEsIDB4MTIsIDB4MDgsIDB4ZDcsIDB4OTAsIDB4N2MsIDB4MzEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsCi0gIDB4N2MsIDB4N2YsIDB4MDAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmQsIDB4ZjAsIDB4NzUsCi0gIDB4MTYsIDB4MDIsIDB4MTIsIDB4MDgsIDB4ZDcsIDB4OTAsIDB4N2MsIDB4NzEsIDB4ZTAsIDB4MzAsIDB4ZTMsIDB4MTYsIDB4N2UsIDB4N2MsIDB4N2YsIDB4NDAsCi0gIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MmIsIDB4ZjAsIDB4NzUsIDB4MTYsIDB4MDR9fSwKLSB7MHgxMDQ2LCA2NCwgeyAweDEyLCAweDA4LCAweGQ3LCAweDkwLCAweDdjLCAweGIxLCAweGUwLCAweDMwLCAweGUzLCAweDE2LCAweDdlLCAweDdjLCAweDdmLCAweDgwLCAweDc1LCAweDE0LCAweDdjLAotICAweDc1LCAweDE1LCAweDgwLCAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDI3LCAweGYwLCAweDc1LCAweDE2LCAweDA4LCAweDEyLCAweDA4LCAweGQ3LCAweDA1LAotICAweDEyLCAweGU1LCAweDEyLCAweDU0LCAweDBmLCAweGY1LCAweDE3LCAweDcwLCAweDA0LCAweDEyLCAweDExLCAweDFjLCAweDIyLCAweGU1LCAweDE3LCAweGI0LAotICAweDAxLCAweDA0LCAweDEyLCAweDBjLCAweDhjLCAweDIyLCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDIwLCAweGUxLCAweDA4LCAweGU1LCAweDEzfX0sCi0gezB4MTA4NiwgNjQsIHsgMHg2MCwgMHgwNCwgMHgxMiwgMHgwZSwgMHgyOCwgMHgyMiwgMHgxMiwgMHgwYywgMHg4YywgMHgyMiwgMHg3OCwgMHg3ZiwgMHhlNCwgMHhmNiwgMHhkOCwgMHhmZCwgMHg3NSwKLSAgMHg4MSwgMHgzNywgMHgwMiwgMHgxMCwgMHhkNywgMHgwMiwgMHgxMiwgMHgyNCwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwKLSAgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywKLSAgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzMywgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHgyMCwgMHhjOCwgMHg4MywgMHg0MCwgMHgwNCwgMHhmNH19LAotIHsweDEwYzYsIDY0LCB7IDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGYsIDB4ZTQsIDB4ODAsIDB4MGIsIDB4MDEsIDB4MDIsIDB4MDQsIDB4MDgsIDB4MTAsIDB4MjAsIDB4NDAsIDB4ODAsCi0gIDB4OTAsIDB4MTgsIDB4NDUsIDB4ZTQsIDB4N2UsIDB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksCi0gIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsCi0gIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZmEsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzgsIDB4YzV9fSwKLSB7MHgxMTA2LCA2NCwgeyAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGYwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhLCAweGRmLAotICAweGU5LCAweGRlLCAweGU3LCAweDgwLCAweGJlLCAweDkwLCAweDdmLCAweGQyLCAweGUwLCAweDMwLCAweGUxLCAweDAzLCAweDAyLCAweDExLCAweGE1LCAweGMyLAotICAweDA5LCAweDkwLCAweDdiLCAweDQwLCAweGUwLCAweDE0LCAweDYwLCAweDI2LCAweDE0LCAweDYwLCAweDNiLCAweDE0LCAweDYwLCAweDUwLCAweDI0LCAweDgzLAotICAweDYwLCAweDY0LCAweDI0LCAweDgwLCAweDcwLCAweDYzLCAweDdlLCAweDdiLCAweDdmLCAweGMwLCAweDc1LCAweDE0LCAweDdiLCAweDc1LCAweDE1fX0sCi0gezB4MTE0NiwgNjQsIHsgMHhjMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZSwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwMSwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHg0YiwgMHg3ZSwgMHg3YywKLSAgMHg3ZiwgMHgwMCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyZCwgMHhmMCwgMHg3NSwgMHgxNiwKLSAgMHgwMiwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgzMywgMHg3ZSwgMHg3YywgMHg3ZiwgMHg0MCwgMHg3NSwgMHgxNCwgMHg3YywgMHg3NSwgMHgxNSwgMHg0MCwKLSAgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgyYiwgMHhmMCwgMHg3NSwgMHgxNiwgMHgwNCwgMHgxMiwgMHgwMCwgMHg0NiwgMHg4MCwgMHgxYiwgMHg3ZX19LAotIHsweDExODYsIDY0LCB7IDB4N2MsIDB4N2YsIDB4ODAsIDB4NzUsIDB4MTQsIDB4N2MsIDB4NzUsIDB4MTUsIDB4ODAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4NzQsIDB4MjcsIDB4ZjAsIDB4NzUsIDB4MTYsCi0gIDB4MDgsIDB4MTIsIDB4MDAsIDB4NDYsIDB4ODAsIDB4MDMsIDB4MTIsIDB4MTcsIDB4NTEsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4ZDMsIDB4ZjAsIDB4MjIsIDB4YmIsCi0gIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDIsIDB4ZTMsCi0gIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjIsIDB4YmIsIDB4MDEsIDB4MGMsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjV9fSwKLSB7MHgxMWM2LCA2NCwgeyAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGU2LCAweDIyLCAweGJiLAotICAweGZlLCAweDA2LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweGUyLCAweDIyLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLAotICAweGY1LCAweDgzLCAweGU0LCAweDkzLCAweDIyLCAweGJiLCAweDAxLCAweDA2LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGYwLCAweDIyLCAweDUwLCAweDAyLAotICAweGY3LCAweDIyLCAweGJiLCAweGZlLCAweDAxLCAweGYzLCAweDIyLCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGY4LCAweGU0LCAweDkzLCAweDcwfX0sCi0gezB4MTIwNiwgNjQsIHsgMHgxMiwgMHg3NCwgMHgwMSwgMHg5MywgMHg3MCwgMHgwZCwgMHhhMywgMHhhMywgMHg5MywgMHhmOCwgMHg3NCwgMHgwMSwgMHg5MywgMHhmNSwgMHg4MiwgMHg4OCwgMHg4MywKLSAgMHhlNCwgMHg3MywgMHg3NCwgMHgwMiwgMHg5MywgMHg2OCwgMHg2MCwgMHhlZiwgMHhhMywgMHhhMywgMHhhMywgMHg4MCwgMHhkZiwgMHg5MCwgMHg3ZiwgMHhhZSwKLSAgMHhlMCwgMHhmZiwgMHhkMywgMHg5MiwgMHgwMCwgMHhlNCwgMHgzMywgMHhmZSwgMHhlZiwgMHg0ZSwgMHhmMCwgMHhkMiwgMHhlOCwgMHg0MywgMHhkOCwgMHgyMCwKLSAgMHg5MCwgMHg3ZiwgMHhkZSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZn19LAotIHsweDEyNDYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTksIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWYsIDB4NzQsIDB4MDEsCi0gIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4MGIsIDB4MTIsIDB4MTgsIDB4MDksIDB4YzIsIDB4MDEsCi0gIDB4ZTQsIDB4ZjUsIDB4MmIsIDB4ZjUsIDB4MzEsIDB4YzIsIDB4MDcsIDB4YzIsIDB4MDIsIDB4NzUsIDB4MjksIDB4MGYsIDB4OTAsIDB4N2YsIDB4ZDgsIDB4ZTAsCi0gIDB4NjUsIDB4MjYsIDB4NjAsIDB4MDYsIDB4NzUsIDB4MzIsIDB4MGYsIDB4ZTAsIDB4ZjUsIDB4MjYsIDB4MzAsIDB4MDIsIDB4MDMsIDB4MTIsIDB4MGZ9fSwKLSB7MHgxMjg2LCA2NCwgeyAweGVmLCAweDMwLCAweDAxLCAweDA3LCAweGMyLCAweDAxLCAweDEyLCAweDA2LCAweDNmLCAweDgwLCAweGUyLCAweDMwLCAweDA4LCAweGRmLCAweGMyLCAweDA4LCAweDEyLAotICAweDE4LCAweDJhLCAweDgwLCAweGQ4LCAweDIyLCAweGU1LCAweDEzLCAweDU1LCAweDE2LCAweDYwLCAweDZhLCAweGU1LCAweDE1LCAweDI0LCAweDNhLCAweGY1LAotICAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDVjLCAweGU1LCAweDE2LCAweGY0LCAweDUyLCAweDEzLCAweGU1LCAweDE1LAotICAweDI0LCAweDI2LCAweGZmLCAweGU0LCAweDM1LCAweDE0LCAweGZlLCAweGU0LCAweGZkLCAweDBmLCAweGVmLCAweGFhLCAweDA2LCAweDcwLCAweDAxfX0sCi0gezB4MTJjNiwgNjQsIHsgMHgwZSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlMCwgMHhmYywgMHg3NCwgMHg4MCwgMHgyZCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3YiwgMHhmNSwKLSAgMHg4MywgMHhlYywgMHhmMCwgMHgwZCwgMHhiZCwgMHgwYiwgMHhlMiwgMHg5MCwgMHg3ZiwgMHhjMywgMHg3NCwgMHgwYiwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwKLSAgMHgzYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZSwgMHhmNSwKLSAgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNH19LAotIHsweDEzMDYsIDY0LCB7IDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MjIsIDB4ZTUsIDB4MjgsIDB4NDUsIDB4MjcsIDB4NjAsIDB4NTcsIDB4YWUsIDB4MjcsIDB4YWYsIDB4MjgsCi0gIDB4ZDMsIDB4ZWYsIDB4OTQsIDB4NDAsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDQsIDB4N2UsIDB4MDAsIDB4N2YsIDB4NDAsIDB4YzMsIDB4ZTUsIDB4MjgsCi0gIDB4OWYsIDB4ZjUsIDB4MjgsIDB4ZTUsIDB4MjcsIDB4OWUsIDB4ZjUsIDB4MjcsIDB4ZTQsIDB4ZmQsIDB4ZWQsIDB4YzMsIDB4OWYsIDB4ZTQsIDB4OWUsIDB4NTAsCi0gIDB4MWYsIDB4ODUsIDB4MzQsIDB4ODIsIDB4ODUsIDB4MzMsIDB4ODMsIDB4ZTAsIDB4ZmMsIDB4NzQsIDB4MDAsIDB4MmQsIDB4ZjUsIDB4ODIsIDB4ZTR9fSwKLSB7MHgxMzQ2LCA2NCwgeyAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVjLCAweGYwLCAweDBkLCAweDA1LCAweDM0LCAweGU1LCAweDM0LCAweDcwLCAweDAyLCAweDA1LCAweDMzLCAweDgwLCAweGRhLAotICAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI1LAotICAweGVmLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGFjLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU0LCAweDkwLCAweDdmLCAweGI1LCAweGYwLCAweDIyLAotICAweDkwLCAweDdmLCAweDk4LCAweDc0LCAweDBmLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDRhLCAweGYwLCAweDkwLCAweDdmLCAweDk0LCAweGYwfX0sCi0gezB4MTM4NiwgNjQsIHsgMHg5MCwgMHg3ZiwgMHg5ZCwgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5NywgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHg3ZiwKLSAgMHg5MywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHg3NCwgMHhmZiwgMHhmMCwgMHgzMCwgMHgwMCwgMHgwNywgMHhlNSwgMHgyOSwgMHg1NCwgMHgwZiwgMHhmZiwKLSAgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHgxZiwgMHhmMCwgMHhlNCwKLSAgMHg5MCwgMHg3ZiwgMHg5NSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5ZSwgMHg3NCwgMHgzZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHg3NCwgMHhkZn19LAotIHsweDEzYzYsIDY0LCB7IDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MjIsIDB4OGYsIDB4MTksIDB4MDUsIDB4MmQsIDB4ZTUsIDB4MmQsIDB4YWUsIDB4MmMsCi0gIDB4NzAsIDB4MDIsIDB4MDUsIDB4MmMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4MTksIDB4ZjAsIDB4MTIsIDB4MTgsIDB4ZWYsIDB4MDUsCi0gIDB4MmQsIDB4ZTUsIDB4MmQsIDB4YWMsIDB4MmMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MmMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsCi0gIDB4MTUsIDB4MjMsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTR9fSwKLSB7MHgxNDA2LCA2NCwgeyAweGY1LCAweDgzLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGUwLCAweGZlLCAweDEyLCAweDE4LCAweGQzLCAweDhmLCAweDE5LCAweGVlLCAweDRmLCAweGQwLCAweDgyLAotICAweGQwLCAweDgzLCAweGYwLCAweDgwLCAweGI1LCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweGU1LCAweDExLCAweGYwLCAweDkwLCAweDc4LCAweDRmLCAweDc0LAotICAweGMwLCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDUwLCAweGYwLCAweGU1LCAweDJjLCAweDkwLCAweDc4LCAweDUxLCAweGYwLCAweGFlLCAweDJjLCAweGU1LAotICAweDJkLCAweDkwLCAweDc4LCAweDUyLCAweGYwLCAweDkwLCAweDc4LCAweDU0LCAweGU1LCAweDIzLCAweGYwLCAweDkwLCAweDc4LCAweDU3LCAweDc0fX0sCi0gezB4MTQ0NiwgNjQsIHsgMHgwNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHgxMCwgMHhmMCwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMCwgMHhlNCwgMHg5MCwgMHg3OCwgMHg1NSwKLSAgMHhmMCwgMHg5MCwgMHg3OCwgMHg1NSwgMHhlMCwgMHg2MCwgMHhmYSwgMHgyMiwgMHg4ZiwgMHgxOSwgMHhlNCwgMHhmNSwgMHgxYSwgMHg3NSwgMHgxYiwgMHhmZiwKLSAgMHg3NSwgMHgxYywgMHgxOSwgMHg3NSwgMHgxZCwgMHg4NiwgMHhhYiwgMHgxYiwgMHhhYSwgMHgxYywgMHhhOSwgMHgxZCwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwKLSAgMHgxMSwgMHhiZiwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgxYSwgMHgwNSwgMHgxYSwgMHhlZiwgMHhiNSwgMHgxOSwgMHgwMSwgMHgyMiwgMHgxMn19LAotIHsweDE0ODYsIDY0LCB7IDB4MTEsIDB4YTYsIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzUsIDB4MWIsIDB4ZmYsIDB4ZjUsIDB4MWMsIDB4ODksIDB4MWQsCi0gIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4ZTUsIDB4MTEsIDB4ZjAsIDB4ZTUsCi0gIDB4MmMsIDB4OTAsIDB4NzgsIDB4NGYsIDB4ZjAsIDB4YWUsIDB4MmMsIDB4ZTUsIDB4MmQsIDB4OTAsIDB4NzgsIDB4NTAsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTEsCi0gIDB4NzQsIDB4YzAsIDB4ZjAsIDB4ZTQsIDB4OTAsIDB4NzgsIDB4NTIsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NTQsIDB4ZTUsIDB4MjMsIDB4ZjAsIDB4OTB9fSwKLSB7MHgxNGM2LCA2NCwgeyAweDc4LCAweDU3LCAweDc0LCAweDA0LCAweGYwLCAweGU0LCAweDkwLCAweDc4LCAweDU1LCAweGYwLCAweDkwLCAweDc4LCAweDU1LCAweGUwLCAweDYwLCAweGZhLCAweDIyLAotICAweGU1LCAweDE1LCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweDYwLCAweDBmLCAweDE0LAotICAweDYwLCAweDEzLCAweDE0LCAweDYwLCAweDE3LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM3LCAweGVmLCAweGYwLCAweDgwLCAweDEzLCAweDkwLCAweDdmLAotICAweGM5LCAweGVmLCAweGYwLCAweDgwLCAweDBjLCAweDkwLCAweDdmLCAweGNiLCAweGVmLCAweGYwLCAweDgwLCAweDA1LCAweDkwLCAweDdmLCAweGNkfX0sCi0gezB4MTUwNiwgNjQsIHsgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgyYSwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwKLSAgMHg4MywgMHhlMCwgMHgxNCwgMHg2MCwgMHgwZiwgMHgxNCwgMHg2MCwgMHgxMywgMHgxNCwgMHg2MCwgMHgxNywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhiNywKLSAgMHhlZiwgMHhmMCwgMHg4MCwgMHgxMywgMHg5MCwgMHg3ZiwgMHhiOSwgMHhlZiwgMHhmMCwgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhiYiwgMHhlZiwgMHhmMCwKLSAgMHg4MCwgMHgwNSwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhlZiwgMHhmMCwgMHhlNSwgMHgxNiwgMHg0MiwgMHgyYSwgMHgyMiwgMHhhZSwgMHgwNywgMHhlNH19LAotIHsweDE1NDYsIDY0LCB7IDB4ZmYsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZmQsIDB4MTIsCi0gIDB4MTYsIDB4NmIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjEsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWUsIDB4ZjAsIDB4ZTQsIDB4ZTUsIDB4MTUsCi0gIDB4MjQsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZmQsIDB4MTIsIDB4MTYsIDB4NmIsCi0gIDB4MjIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODZ9fSwKLSB7MHgxNTg2LCA2NCwgeyAweDc1LCAweDg2LCAweDAwLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDA4LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDAxLCAweGYwLAotICAweDEyLCAweDEzLCAweDBkLCAweGQwLCAweGQwLCAweGQwLCAweDg2LCAweGQwLCAweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLAotICAweGYwLCAweGQwLCAweGUwLCAweDMyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweDc0LCAweGJmLCAweGYwLAotICAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0fX0sCi0gezB4MTVjNiwgNjQsIHsgMHhmMywgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3ZiwgMHg5MCwKLSAgMHhjMCwgMHgwMCwgMHhmMCwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHg3NCwgMHhiZiwgMHhmMCwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMiwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmMywKLSAgMHhmMCwgMHhlNSwgMHgxNSwgMHgyNCwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHg3Zn19LAotIHsweDE2MDYsIDY0LCB7IDB4OTAsIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmYsIDB4ZjAsCi0gIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjQsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsCi0gIDB4ZjAsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4OTAsCi0gIDB4YzAsIDB4MDAsIDB4ZjAsIDB4MjIsIDB4OTAsIDB4NzgsIDB4NDEsIDB4NzQsIDB4ZjMsIDB4ZjAsIDB4OTAsIDB4YzAsIDB4MDAsIDB4NzQsIDB4YmZ9fSwKLSB7MHgxNjQ2LCA2NCwgeyAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGY2LCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGVmLCAweGYwLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLAotICAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLAotICAweGMwLCAweDAwLCAweGYwLCAweDIyLCAweDkwLCAweDc4LCAweDQxLCAweDc0LCAweGYzLCAweGYwLCAweGU1LCAweDE1LCAweDI0LCAweDM3LCAweGY1LCAweDgyLAotICAweGU0LCAweDM1LCAweDE0LCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDdmLCAweDkwLCAweGMwLCAweDAwLCAweGYwLCAweDkwLCAweDc4LCAweDQxfX0sCi0gezB4MTY4NiwgNjQsIHsgMHg3NCwgMHhmNywgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlZiwgMHhmMCwgMHg5MCwgMHg3OCwgMHg0MSwgMHg3NCwgMHhmNSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwKLSAgMHhlZCwgMHhmMCwgMHgyMiwgMHhlNSwgMHgxNSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHgxNCwgMHhmNSwgMHg4MywgMHhlMCwgMHgxNCwKLSAgMHg2MCwgMHgwZSwgMHgxNCwgMHg2MCwgMHgxMSwgMHgxNCwgMHg2MCwgMHgxNCwgMHg4MCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjNiwgMHhlMCwgMHhmZiwgMHgyMiwKLSAgMHg5MCwgMHg3ZiwgMHhjOCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjYSwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhjY319LAotIHsweDE2YzYsIDY0LCB7IDB4ZTAsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjAsCi0gIDB4MGUsIDB4MTQsIDB4NjAsIDB4MTEsIDB4MTQsIDB4NjAsIDB4MTQsIDB4ODAsIDB4MDAsIDB4OTAsIDB4N2YsIDB4YjYsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsCi0gIDB4N2YsIDB4YjgsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YmEsIDB4ZTAsIDB4ZmYsIDB4MjIsIDB4OTAsIDB4N2YsIDB4YmMsIDB4ZTAsIDB4ZmYsCi0gIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4NjB9fSwKLSB7MHgxNzA2LCA2NCwgeyAweDBlLCAweDE0LCAweDYwLCAweDExLCAweDE0LCAweDYwLCAweDE0LCAweDgwLCAweDAwLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLAotICAweGM5LCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNiLCAweGUwLCAweGZmLCAweDIyLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweGZmLCAweDIyLAotICAweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweDkwLAotICAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA0LCAweGYwLCAweGQwLCAweDg2fX0sCi0gezB4MTc0NiwgNjQsIHsgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMiwgMHg5MCwgMHg3YiwgMHg0MSwgMHhlMCwgMHhmNSwgMHgzNiwKLSAgMHg0MywgMHgxMywgMHgxMCwgMHhhMywgMHhlMCwgMHg2MCwgMHgwOSwgMHg5MCwgMHg3ZiwgMHhkNywgMHg3NCwgMHgxNywgMHhmMCwgMHg3NCwgMHgzNywgMHhmMCwKLSAgMHg5MCwgMHg3YiwgMHg0MywgMHhlMCwgMHhmNSwgMHgzNywgMHhhMywgMHhlMCwgMHg1NCwgMHhmMCwgMHhmNSwgMHgyOSwgMHhlMCwgMHg2MCwgMHgwMiwgMHhkMiwKLSAgMHgwYSwgMHgyMiwgMHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NX19LAotIHsweDE3ODYsIDY0LCB7IDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsCi0gIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzIsIDB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsCi0gIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4NzUsIDB4ODYsIDB4MDAsIDB4ZDIsIDB4MDgsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsCi0gIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTB9fSwKLSB7MHgxN2M2LCA2NCwgeyAweDMyLCAweDEyLCAweDE4LCAweGI3LCAweGFlLCAweDA3LCAweDEyLCAweDE4LCAweGI3LCAweGFkLCAweDA3LCAweGVlLCAweDZkLCAweDYwLCAweDEwLCAweDEyLCAweDE4LAotICAweGI3LCAweGFlLCAweDA3LCAweGVlLCAweDZkLCAweDYwLCAweDA3LCAweDEyLCAweDE4LCAweGI3LCAweGFkLCAweDA3LCAweDgwLCAweGVjLCAweGFmLCAweDA2LAotICAweDIyLCAweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLAotICAweGY5LCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDQzLCAweDg3LCAweDAxLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MTgwNiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgwYiwgMHgwNCwKLSAgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg3ZiwgMHhmNCwgMHg3ZSwgMHgwMSwgMHgxMiwgMHgxOCwgMHg2MCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwKLSAgMHhmNywgMHhmMCwgMHgyMiwgMHgxMiwgMHgxMywgMHg3NywgMHgxMiwgMHgxNywgMHhmOSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHgwYSwKLSAgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgxOCwgMHg2MCwgMHgxMiwgMHgxOCwgMHg5MywgMHgxMiwgMHgwYSwgMHhjZSwgMHgyMiwgMHgwM319LAotIHsweDE4NDYsIDY0LCB7IDB4MzUsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDMsIDB4MmUsIDB4ODEsIDB4MDAsIDB4MDAsIDB4YzEsIDB4ODUsIDB4YzEsIDB4ODEsIDB4YzEsIDB4MDgsIDB4YzEsIDB4MDAsCi0gIDB4YzEsIDB4MDYsIDB4MDEsIDB4MjIsIDB4MDAsIDB4MDEsIDB4MjQsIDB4MDAsIDB4MDAsIDB4OGUsIDB4MTcsIDB4OGYsIDB4MTgsIDB4ZTUsIDB4MTgsIDB4MTUsCi0gIDB4MTgsIDB4YWUsIDB4MTcsIDB4NzAsIDB4MDIsIDB4MTUsIDB4MTcsIDB4NGUsIDB4NjAsIDB4MDgsIDB4MTIsIDB4MTcsIDB4ZTgsIDB4MTIsIDB4MTcsIDB4ZTgsCi0gIDB4ODAsIDB4ZWIsIDB4MjIsIDB4ZTUsIDB4MTUsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MTQsIDB4ZjUsIDB4ODMsIDB4ZTB9fSwKLSB7MHgxODg2LCA2NCwgeyAweDA0LCAweGZmLCAweDQ0LCAweDEwLCAweDkwLCAweDdmLCAweGQ3LCAweGYwLCAweGVmLCAweDQ0LCAweDMwLCAweGYwLCAweDIyLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLAotICAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDBkLCAweDdlLCAweDAwLCAweDEyLCAweDE4LCAweDYwLCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZlLAotICAweGYwLCAweDIyLCAweGU1LCAweDExLCAweDI0LCAweDAyLCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLAotICAweGU1LCAweDExLCAweDI0LCAweDAzLCAweDkwLCAweDc4LCAweDQxLCAweGYwLCAweDkwLCAweGMwLCAweDAwLCAweGUwLCAweGZmLCAweDIyLCAweGU1fX0sCi0gezB4MThjNiwgNjQsIHsgMHgxMSwgMHgyNCwgMHgwNCwgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxMSwgMHgyNCwgMHgwNSwKLSAgMHg5MCwgMHg3OCwgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHhlNSwgMHgxMSwgMHgyNCwgMHgwNiwgMHg5MCwgMHg3OCwKLSAgMHg0MSwgMHhmMCwgMHg5MCwgMHhjMCwgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg5MCwgMHg3OCwgMHg0MSwgMHhlNSwgMHgxMSwgMHhmMCwgMHg5MCwgMHhjMCwKLSAgMHgwMCwgMHhlMCwgMHhmZiwgMHgyMiwgMHg1MywgMHhkOCwgMHhlZiwgMHgzMiwgMHgwMCwgMHgxMiwgMHgwMSwgMHgxMCwgMHgwMSwgMHhmZiwgMHhmZn19LAotIHsweDE5MDYsIDY0LCB7IDB4ZmYsIDB4NDAsIDB4Y2QsIDB4MDYsIDB4MmEsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDIsIDB4MDAsIDB4MDQsIDB4MDksIDB4MDIsIDB4NzQsIDB4MDAsIDB4MDEsCi0gIDB4MDEsIDB4MDAsIDB4YTAsIDB4MzIsIDB4MDksIDB4MDQsIDB4MDAsIDB4MDAsIDB4MGUsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsCi0gIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDMsIDB4MDIsIDB4NDAsCi0gIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDUsIDB4MDIsIDB4NDAsIDB4MDB9fSwKLSB7MHgxOTQ2LCA2NCwgeyAweDAwLCAweDA3LCAweDA1LCAweDA2LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LAotICAweDgxLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDgzLCAweDAyLAotICAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg0LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg1LCAweDAyLCAweDQwLCAweDAwLAotICAweDAxLCAweDA3LCAweDA1LCAweDg2LCAweDAyLCAweDQwLCAweDAwLCAweDAxLCAweDA3LCAweDA1LCAweDg3LCAweDAyLCAweDQwLCAweDAwLCAweDAxfX0sCi0gezB4MTk4NiwgNjQsIHsgMHgwNCwgMHgwMywgMHgwOSwgMHgwNCwgMHg0OCwgMHgwMywgMHg0YiwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg3MCwgMHgwMCwgMHg2MSwKLSAgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg2MSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg3NiwKLSAgMHgwMCwgMHg2OSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2NiwKLSAgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg1MywgMHgwMCwgMHg3OSwgMHgwMH19LAotIHsweDE5YzYsIDY0LCB7IDB4NzMsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4MmUsIDB4MDAsIDB4MjQsIDB4MDMsIDB4NGIsIDB4MDAsIDB4NjUsCi0gIDB4MDAsIDB4NzksIDB4MDAsIDB4NzMsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTUsIDB4MDAsIDB4NTMsCi0gIDB4MDAsIDB4NDEsIDB4MDAsIDB4MmQsIDB4MDAsIDB4MzQsIDB4MDAsIDB4MzksIDB4MDAsIDB4NTcsIDB4MDAsIDB4NGMsIDB4MDAsIDB4NDMsIDB4MDAsIDB4MjIsCi0gIDB4MDMsIDB4NTUsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NDEsIDB4MDAsIDB4MmQsIDB4MDAsIDB4MzYsIDB4MDAsIDB4MzUsIDB4MDAsIDB4MjAsIDB4MDB9fSwKLSB7MHgxYTA2LCA2NCwgeyAweDMyLCAweDAwLCAweDMwLCAweDAwLCAweDMwLCAweDAwLCAweDMzLCAweDAwLCAweDZhLCAweDAwLCAweDYxLCAweDAwLCAweDZlLCAweDAwLCAweDMzLCAweDAwLCAweDMxLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwfX0sCi0gezB4MWE0NiwgNjQsIHsgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwKLSAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH19LAotIHsweDFhODYsIDY0LCB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsCi0gIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDB9fSwKLSB7MHgxYWM2LCA2NCwgeyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLAotICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDE3LCAweDc5LCAweDAwLCAweDAyLCAweDFifX0sCi0gezB4MWIwNiwgMjEsIHsgMHgwNCwgMHgwMCwgMHgwMiwgMHgxNywgMHgyNywgMHgwMCwgMHgwMiwgMHgxNywgMHhhMCwgMHgwMCwgMHgwMiwgMHgxYiwgMHgxMCwgMHgwMCwgMHgwMiwgMHgxYiwgMHgxNCwKLSAgMHgwMCwgMHgwMiwgMHgxNSwgMHg3OH19LAotIHsweGZmZmYsICAwLCB7IDB4MDB9fSwKLX07Ci0KLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jCmluZGV4IDZjZWNkMmMuLmE3MzQyMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMKQEAgLTIzNiwyNSArMjM2LDI1IEBACiAJeyBVU0JfREVWSUNFKE9QVElPTl9WRU5ET1JfSUQsIE9QVElPTl9QUk9EVUNUX0VUTkFfTkVUV09SS19FWCkgfSwKIAl7IFVTQl9ERVZJQ0UoT1BUSU9OX1ZFTkRPUl9JRCwgT1BUSU9OX1BST0RVQ1RfRVROQV9LT0lfTU9ERU0pIH0sCiAJeyBVU0JfREVWSUNFKE9QVElPTl9WRU5ET1JfSUQsIE9QVElPTl9QUk9EVUNUX0VUTkFfS09JX05FVFdPUkspIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0U2MDApIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FNjAwLCAweGZmLCAweGZmLCAweGZmKSB9LAogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTIyMCwgMHhmZiwgMHhmZiwgMHhmZikgfSwKIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UyMjBCSVMsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDAxKSB9LAotCXsgVVNCX0RFVklDRShIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQwMykgfSwKLQl7IFVTQl9ERVZJQ0UoSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MDUpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDA2KSB9LAotCXsgVVNCX0RFVklDRShIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQwOCkgfSwKLQl7IFVTQl9ERVZJQ0UoSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MDkpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDEwKSB9LAotCXsgVVNCX0RFVklDRShIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxMSkgfSwKLQl7IFVTQl9ERVZJQ0UoSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTIpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDEzKSB9LAotCXsgVVNCX0RFVklDRShIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxNCkgfSwKLQl7IFVTQl9ERVZJQ0UoSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTUpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDE2KSB9LAotCXsgVVNCX0RFVklDRShIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxNykgfSwKLQl7IFVTQl9ERVZJQ0UoSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTgpIH0sCi0JeyBVU0JfREVWSUNFKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDE5KSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MDEsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQwMywgMHhmZiwgMHhmZiwgMHhmZikgfSwKKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDA1LCAweGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MDYsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQwOCwgMHhmZiwgMHhmZiwgMHhmZikgfSwKKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDA5LCAweGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTAsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxMSwgMHhmZiwgMHhmZiwgMHhmZikgfSwKKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDEyLCAweGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTMsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxNCwgMHhmZiwgMHhmZiwgMHhmZikgfSwKKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDE1LCAweGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTYsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVORE9SX0lELCBIVUFXRUlfUFJPRFVDVF9FMTQxNywgMHhmZiwgMHhmZiwgMHhmZikgfSwKKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIEhVQVdFSV9QUk9EVUNUX0UxNDE4LCAweGZmLCAweGZmLCAweGZmKSB9LAorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE0MTksIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sCiAJeyBVU0JfREVWSUNFKEFNT0lfVkVORE9SX0lELCBBTU9JX1BST0RVQ1RfOTUwOCkgfSwKIAl7IFVTQl9ERVZJQ0UoTk9WQVRFTFdJUkVMRVNTX1ZFTkRPUl9JRCwgTk9WQVRFTFdJUkVMRVNTX1BST0RVQ1RfVjY0MCkgfSwgLyogTm92YXRlbCBNZXJsaW4gVjY0MC9YVjYyMCAqLwogCXsgVVNCX0RFVklDRShOT1ZBVEVMV0lSRUxFU1NfVkVORE9SX0lELCBOT1ZBVEVMV0lSRUxFU1NfUFJPRFVDVF9WNjIwKSB9LCAvKiBOb3ZhdGVsIE1lcmxpbiBWNjIwL1M2MjAgKi8KQEAgLTMwNiw2ICszMDYsNyBAQAogCXsgVVNCX0RFVklDRShCQU5EUklDSF9WRU5ET1JfSUQsIEJBTkRSSUNIX1BST0RVQ1RfQzEwMF8xKSB9LAogCXsgVVNCX0RFVklDRShCQU5EUklDSF9WRU5ET1JfSUQsIEJBTkRSSUNIX1BST0RVQ1RfQzEwMF8yKSB9LAogCXsgVVNCX0RFVklDRShLWU9DRVJBX1ZFTkRPUl9JRCwgS1lPQ0VSQV9QUk9EVUNUX0tQQzY4MCkgfSwKKwl7IFVTQl9ERVZJQ0UoUVVBTENPTU1fVkVORE9SX0lELCAweDYwMDApfSwgLyogWlRFIEFDODcwMCAqLwogCXsgVVNCX0RFVklDRShRVUFMQ09NTV9WRU5ET1JfSUQsIDB4NjYxMyl9LCAvKiBPbmRhIEg2MDAvWlRFIE1GMzMwICovCiAJeyBVU0JfREVWSUNFKE1BWE9OX1ZFTkRPUl9JRCwgMHg2MjgwKSB9LCAvKiBCUDMtVVNCICYgQlAzLUVYVCBIU0RQQSAqLwogCXsgVVNCX0RFVklDRShURUxJVF9WRU5ET1JfSUQsIFRFTElUX1BST0RVQ1RfVUM4NjRFKSB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5jCmluZGV4IDIzNGM1ZWUuLjJhMGRkMWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmMKQEAgLTU2LDYgKzU2LDggQEAKIAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfUlNBUTMpIH0sCiAJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX1BIQVJPUykgfSwKIAl7IFVTQl9ERVZJQ0UoUEwyMzAzX1ZFTkRPUl9JRCwgUEwyMzAzX1BST0RVQ1RfSURfQUxESUdBKSB9LAorCXsgVVNCX0RFVklDRShQTDIzMDNfVkVORE9SX0lELCBQTDIzMDNfUFJPRFVDVF9JRF9NTVgpIH0sCisJeyBVU0JfREVWSUNFKFBMMjMwM19WRU5ET1JfSUQsIFBMMjMwM19QUk9EVUNUX0lEX0dQUlMpIH0sCiAJeyBVU0JfREVWSUNFKElPREFUQV9WRU5ET1JfSUQsIElPREFUQV9QUk9EVUNUX0lEKSB9LAogCXsgVVNCX0RFVklDRShJT0RBVEFfVkVORE9SX0lELCBJT0RBVEFfUFJPRFVDVF9JRF9SU0FRNSkgfSwKIAl7IFVTQl9ERVZJQ0UoQVRFTl9WRU5ET1JfSUQsIEFURU5fUFJPRFVDVF9JRCkgfSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9wbDIzMDMuaAppbmRleCAzYmRlZmUwLi42YWMzYmJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvcGwyMzAzLmgKKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL3BsMjMwMy5oCkBAIC0xNCw2ICsxNCw4IEBACiAjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX1BIQVJPUwkweGFhYTAKICNkZWZpbmUgUEwyMzAzX1BST0RVQ1RfSURfUlNBUTMJCTB4YWFhMgogI2RlZmluZSBQTDIzMDNfUFJPRFVDVF9JRF9BTERJR0EJMHgwNjExCisjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX01NWAkJMHgwNjEyCisjZGVmaW5lIFBMMjMwM19QUk9EVUNUX0lEX0dQUlMJCTB4MDYwOQogCiAjZGVmaW5lIEFURU5fVkVORE9SX0lECQkweDA1NTcKICNkZWZpbmUgQVRFTl9WRU5ET1JfSUQyCQkweDA1NDcKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md18zNDEwLmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfZndfMzQxMC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWU4ODU3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md18zNDEwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4ODUgKzAsMCBAQAotLyogdmk6IHRzPTggc3c9OAotICoKLSAqIFRJIDM0MTAgVVNCIFNlcmlhbCBEcml2ZXIgRmlybXdhcmUgSGVhZGVyCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDA0IFRleGFzIEluc3RydW1lbnRzCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqLwotCi0jaWZuZGVmIF9USV9GV18zNDEwX0hfCi0jZGVmaW5lIF9USV9GV18zNDEwX0hfCi0KLS8qIGZpcm13YXJlIDkvMTAvMDQgRlczNDEwX1NwZWNpYWxfU3RhcnRXZG9nT25TdGFydFBvcnQgKi8KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgdGlfZndfMzQxMFtdID0gewotMHhDMiwgMHgzNSwJLyogZmlybXdhcmUgaW1hZ2UgbGVuZ3RoIGV4Y2x1ZGluZyBoZWFkZXIsIGxpdHRsZSBlbmRpYW4gKi8KLTB4MDAsIAkJLyogcGxhY2Vob2xkZXIgZm9yIGNoZWNrc3VtICovCi0KLTB4MDIsMHgwMCwweDFlLDB4MDIsMHgxYSwweGRiLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4MzIsMHhjYiwweGZmLDB4ZmYsCi0weGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweDMzLDB4NzYsMHg3NSwweDgxLAotMHhjZSwweDkwLDB4ZmQsMHhlOCwweDg1LDB4ODMsMHhhMCwweDEyLDB4MzQsMHhlYSwweGVjLDB4NGQsMHg2MCwweDZhLDB4NzgsMHhhYiwKLTB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4OWMsMHhmYSwweDc4LDB4N2YsMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsCi0weDY1LDB4ZmEsMHg3OCwweDIwLDB4ODAsMHgwMywweDc2LDB4MDAsMHgxOCwweGI4LDB4MjAsMHhmYSwweDkwLDB4ZmQsMHhkZCwweGFlLAotMHg4MywweGFmLDB4ODIsMHg5MCwweGZiLDB4ZjgsMHgxMiwweDAwLDB4YTEsMHg2MCwweDA1LDB4ZTQsMHhmMCwweGEzLDB4ODAsMHhmNiwKLTB4OTAsMHhmZCwweGU4LDB4YTgsMHg4MiwweDkwLDB4ZmQsMHhlOCwweGE5LDB4ODIsMHhlOCwweGMzLDB4OTksMHg1MCwweDA1LDB4NzYsCi0weDAwLDB4MDgsMHg4MCwweGY2LDB4OTAsMHgwMCwweGZmLDB4MTIsMHgwMCwweGFhLDB4OTAsMHgwMSwweDAzLDB4MTIsMHgwMCwweGFhLAotMHg5MCwweDAxLDB4MDcsMHgxMiwweDAwLDB4YWEsMHg5MCwweDAxLDB4MGIsMHgxMiwweDAwLDB4YzgsMHg5MCwweDAxLDB4MTEsMHgxMiwKLTB4MDAsMHhjOCwweDkwLDB4MDEsMHgxNywweDEyLDB4MDAsMHhjOCwweDc1LDB4ZDAsMHgwMCwweDEyLDB4MzMsMHhjOCwweDAyLDB4MDEsCi0weDFkLDB4ZWYsMHg2NSwweDgyLDB4NzAsMHgwMywweGVlLDB4NjUsMHg4MywweDIyLDB4ZTQsMHg5MywweGY4LDB4NzQsMHgwMSwweDkzLAotMHhmOSwweDc0LDB4MDIsMHg5MywweGZlLDB4NzQsMHgwMywweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlOCwweDY5LDB4NzAsMHgwMSwKLTB4MjIsMHhlNCwweDkzLDB4ZjYsMHhhMywweDA4LDB4ODAsMHhmNCwweGU0LDB4OTMsMHhmYywweDc0LDB4MDEsMHg5MywweGZkLDB4NzQsCi0weDAyLDB4OTMsMHhmZSwweDc0LDB4MDMsMHg5MywweGZmLDB4NzQsMHgwNCwweDkzLDB4ZjgsMHg3NCwweDA1LDB4OTMsMHhmNSwweDgyLAotMHg4OCwweDgzLDB4MTIsMHgwMCwweGExLDB4NzAsMHgwMSwweDIyLDB4ZTQsMHg5MywweGEzLDB4YTgsMHg4MywweGE5LDB4ODIsMHg4YywKLTB4ODMsMHg4ZCwweDgyLDB4ZjAsMHhhMywweGFjLDB4ODMsMHhhZCwweDgyLDB4ODgsMHg4MywweDg5LDB4ODIsMHg4MCwweGUzLDB4MjEsCi0weDIxLDB4MDQsMHg5MiwweDgwLDB4ODAsMHgwNCwweDkyLDB4YWMsMHhhZSwweDA0LDB4OTIsMHhmZCwweGU4LDB4MDQsMHg5NCwweDA0LAotMHg5NCwweGZiLDB4ZjMsMHgwNCwweDk5LDB4MDQsMHg5NCwweGZiLDB4ZjMsMHgwNCwweGY5LDB4MDQsMHhmOSwweDgwLDB4ZmUsMHhkMCwKLTB4ZjAsMHgzMCwweGYwLDB4MDksMHgyMCwweGYzLDB4MDMsMHhmNiwweDgwLDB4MTAsMHhmNywweDgwLDB4MGQsMHgzMCwweGYxLDB4MDksCi0weDIwLDB4ZjMsMHgwMywweGYyLDB4ODAsMHgwNCwweGYzLDB4ODAsMHgwMSwweGYwLDB4MjAsMHhmNCwweDA0LDB4ZmMsMHhkMCwweGUwLAotMHhjYywweDIyLDB4Y2MsMHhjMCwweGUwLDB4MTIsMHgwMSwweDVhLDB4MDIsMHgwMSwweDRiLDB4YmMsMHgwMCwweDA1LDB4ZDAsMHhmMCwKLTB4YWMsMHhmMCwweDIyLDB4YzMsMHgxMywweGRjLDB4ZmMsMHgwMiwweDAxLDB4MjEsMHhiZiwweDAwLDB4MDksMHhlZCwweDI1LDB4ODIsCi0weDc1LDB4ZjAsMHgwMSwweGY4LDB4ZTYsMHgyMiwweGJmLDB4MDEsMHgwZiwweGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LAotMHg4MywweGY1LDB4ODMsMHg3NSwweGYwLDB4MDQsMHhlMCwweDIyLDB4ZWQsMHgyNSwweDgyLDB4NzUsMHhmMCwweDAyLDB4ZjgsMHhlMiwKLTB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhjMywweGU0LDB4OTMsMHhhMywweGM1LDB4ZjAsMHg5NSwweGYwLDB4YzAsCi0weGUwLDB4YzMsMHhkMCwweGYwLDB4ZTQsMHg5MywweGEzLDB4OTUsMHhmMCwweDQwLDB4MTIsMHhhMywweGEzLDB4YzMsMHhlNSwweGYwLAotMHgzMywweDUwLDB4MDIsMHgwNSwweDgzLDB4MjUsMHg4MiwweGY1LDB4ODIsMHg1MCwweDAyLDB4MDUsMHg4MywweDc0LDB4MDEsMHg5MywKLTB4YzAsMHhlMCwweGU0LDB4OTMsMHhjMCwweGUwLDB4MjIsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGY1LDB4ZjAsMHhlNCwweDkzLDB4NzAsCi0weDA5LDB4NzQsMHgwMSwweDkzLDB4NzAsMHgwNCwweGEzLDB4YTMsMHg4MCwweDBjLDB4NzQsMHgwMiwweDkzLDB4NjUsMHhmMCwweDYwLAotMHgwNSwweGEzLDB4YTMsMHhhMywweDgwLDB4ZTcsMHg3NCwweDAxLDB4OTMsMHhjMCwweGUwLDB4ZTQsMHg5MywweGMwLDB4ZTAsMHgyMiwKLTB4MTIsMHgwMiwweDViLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMSwweGYyLDB4MTIsMHgwMiwweGQzLDB4MDIsCi0weDAxLDB4ZjIsMHgzMCwweGUwLDB4MDcsMHgyMCwweGUzLDB4MDIsMHhlNiwweDIyLDB4ZTcsMHgyMiwweDMwLDB4ZTEsMHgwNywweDIwLAotMHhlMywweDAyLDB4ZTIsMHgyMiwweGUzLDB4MjIsMHgzMCwweGUyLDB4MDIsMHhlMCwweDIyLDB4ZTQsMHg5MywweDIyLDB4MTIsMHgwMiwKLTB4ZDMsMHgwMiwweDAyLDB4MWEsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAyLDB4MWEsMHhhYiwweGYwLDB4MTIsMHgwMiwweDI0LDB4Y2IsCi0weGM1LDB4ZjAsMHhjYiwweDIyLDB4MzAsMHhlMCwweDEwLDB4MjAsMHhlMywweDA2LDB4ZTYsMHhmNSwweGYwLDB4MDgsMHhlNiwweDIyLAotMHhlNywweGY1LDB4ZjAsMHgwOSwweGU3LDB4MTksMHgyMiwweDMwLDB4ZTEsMHgxMCwweDIwLDB4ZTMsMHgwNiwweGUyLDB4ZjUsMHhmMCwKLTB4MDgsMHhlMiwweDIyLDB4ZTMsMHhmNSwweGYwLDB4MDksMHhlMywweDE5LDB4MjIsMHgzMCwweGUyLDB4MDYsMHhlMCwweGY1LDB4ZjAsCi0weGEzLDB4ZTAsMHgyMiwweGU0LDB4OTMsMHhmNSwweGYwLDB4NzQsMHgwMSwweDkzLDB4MjIsMHhiYiwweDAwLDB4MDMsMHg3NCwweDA5LAotMHgyMiwweGJiLDB4MDEsMHgwNywweDg5LDB4ODIsMHg4YSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDA3LDB4ODksMHg4MiwKLTB4OGEsMHg4MywweDc0LDB4MTAsMHgyMiwweDc0LDB4MGEsMHgyMiwweDAyLDB4MDIsMHg3YiwweGJiLDB4MDAsMHgwNywweGU5LDB4MjUsCi0weDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiYiwweDAxLDB4MGQsMHhlOSwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWEsMHgzNSwweDgzLAotMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmIsMHgwMiwweDBkLDB4ZTksMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVhLDB4MzUsMHg4MywKLTB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGU5LDB4MjUsMHg4MiwweGY4LDB4NzQsMHgwMiwweDIyLDB4MDIsMHgwMiwweGFmLDB4YmYsCi0weDAwLDB4MDUsMHhlZCwweGY4LDB4NzQsMHgwMSwweDIyLDB4YmYsMHgwMSwweDA3LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg3NCwweDA0LAotMHgyMiwweGJmLDB4MDIsMHgwNywweDhkLDB4ODIsMHg4ZSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZWQsMHhmOCwweDc0LDB4MDIsMHgyMiwKLTB4MDIsMHgwMiwweGQzLDB4YmYsMHgwMCwweDA3LDB4ZWQsMHgyNSwweDgyLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiZiwweDAxLDB4MGQsCi0weGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LDB4ODMsMHhmNSwweDgzLDB4NzQsMHgwNCwweDIyLDB4YmYsMHgwMiwweDBkLAotMHhlZCwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWUsMHgzNSwweDgzLDB4ZjUsMHg4MywweDc0LDB4MTAsMHgyMiwweGVkLDB4MjUsMHg4MiwKLTB4ZjgsMHg3NCwweDAyLDB4MjIsMHgwMiwweDAzLDB4MDcsMHhjMCwweGUwLDB4MTIsMHgwMiwweDViLDB4MDIsMHgwMywweDFmLDB4YzAsCi0weGUwLDB4MTIsMHgwMiwweGFmLDB4MDIsMHgwMywweDFmLDB4YzAsMHhlMCwweDEyLDB4MDIsMHhkMywweDAyLDB4MDMsMHgxZiwweDMwLAotMHhlMCwweDBiLDB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGY2LDB4MjIsMHhkMCwweGUwLDB4ZjcsMHgyMiwweDMwLDB4ZTEsMHgwYiwKLTB4MjAsMHhlMywweDA0LDB4ZDAsMHhlMCwweGYyLDB4MjIsMHhkMCwweGUwLDB4ZjMsMHgyMiwweGQwLDB4ZTAsMHhmMCwweDIyLDB4YzksCi0weGNkLDB4YzksMHhjYSwweGNlLDB4Y2EsMHhjYiwweGNmLDB4Y2IsMHgxMiwweDAzLDB4NTIsMHhlZCwweGY5LDB4ZWUsMHhmYSwweGVmLAotMHhmYiwweDIyLDB4YmIsMHgwMCwweDJmLDB4YmYsMHgwMCwweDBhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmNiwweDA4LDB4MDksMHhkYSwKLTB4ZmEsMHgyMiwweGJmLDB4MDEsMHgxMiwweDhkLDB4ODIsMHg4ZSwweDgzLDB4ZjgsMHgwMiwweDAzLDB4NmYsMHgwOSwweGEzLDB4ZTcsCi0weGYwLDB4ZDgsMHhmYSwweDIyLDB4MDIsMHgwMywweDdhLDB4ZmEsMHhlZCwweGY4LDB4ZTcsMHhmMiwweDA4LDB4MDksMHhkYSwweGZhLAotMHgyMiwweDAyLDB4MDMsMHg4NCwweGJiLDB4MDEsMHg0ZCwweGJmLDB4MDAsMHgxNCwweDg5LDB4ODIsMHg4YSwweDgzLDB4ZjksMHhlZCwKLTB4ZjgsMHgwMiwweDAzLDB4OTYsMHgwOCwweGEzLDB4ZTAsMHhmNiwweGQ5LDB4ZmEsMHgyMiwweDAyLDB4MDMsMHhhNywweGJmLDB4MDEsCi0weDIyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmYiwweDA4LDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGUwLAotMHhhMywweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlYSwweGQ4LDB4ZTgsMHgyMiwKLTB4MDIsMHgwMywweGNhLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlMCwweGYyLDB4MDgsMHhhMywweGQ5LDB4ZmEsCi0weDIyLDB4MDIsMHgwMywweGQ0LDB4YmIsMHgwMiwweDRkLDB4YmYsMHgwMCwweDEyLDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLAotMHhmOCwweDAyLDB4MDMsMHhlNiwweDA4LDB4YTMsMHhlNCwweDkzLDB4ZjYsMHhkOSwweGY5LDB4MjIsMHhiZiwweDAxLDB4MjMsMHg4ZCwKLTB4ODIsMHg4ZSwweDgzLDB4ZmIsMHgwOCwweGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhlNCwweDkzLDB4YTMsCi0weGM5LDB4YzUsMHg4MiwweGM5LDB4Y2EsMHhjNSwweDgzLDB4Y2EsMHhmMCwweGEzLDB4ZGIsMHhlOSwweGQ4LDB4ZTcsMHgyMiwweDAyLAotMHgwNCwweDE5LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLDB4ZjgsMHhlNCwweDkzLDB4ZjIsMHgwOCwweGEzLDB4ZDksMHhmOSwKLTB4MjIsMHgwMiwweDA0LDB4MmEsMHhiZiwweDAwLDB4MGQsMHhmYSwweGVkLDB4ZjgsMHhlMywweGY2LDB4MDgsMHgwOSwweGRhLDB4ZmEsCi0weDIyLDB4MDIsMHgwNCwweDM0LDB4YmYsMHgwMSwweDEyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOCwweDAyLDB4MDQsMHg0MSwweDA5LAotMHhhMywweGUzLDB4ZjAsMHhkOCwweGZhLDB4MjIsMHgwMiwweDA0LDB4NGMsMHhmYSwweGVkLDB4ZjgsMHhlMywweGYyLDB4MDgsMHgwOSwKLTB4ZGEsMHhmYSwweDIyLDB4MDIsMHgwNCwweDU2LDB4ZTYsMHhmYiwweDA4LDB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwweDA0LDB4ZjYsCi0weDE4LDB4NzAsMHgwMSwweDA2LDB4MjIsMHhlNiwweGZmLDB4MDgsMHhlNiwweGZlLDB4MDgsMHhlNiwweGZkLDB4MjIsMHhlZiwweGYwLAotMHhhMywweGVlLDB4ZjAsMHhhMywweGVkLDB4ZjAsMHgyMiwweGViLDB4ZjAsMHhhMywweGVhLDB4ZjAsMHhhMywweGU5LDB4ZjAsMHgyMiwKLTB4ZTAsMHhmZiwweGEzLDB4ZTAsMHhmZSwweGEzLDB4ZTAsMHhmZCwweDIyLDB4ZTAsMHhmYiwweGEzLDB4ZTAsMHhmYSwweGEzLDB4ZTAsCi0weGY5LDB4MjIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDA0LDB4ZjksMHgwMCwweDYxLDB4MDUsMHg2OCwweDAwLAotMHgyNiwweDA1LDB4OGYsMHgwMCwweDMzLDB4MGEsMHgwMCwweDAwLDB4NjEsMHgwYSwweDZjLDB4MDAsMHg2NiwweDE1LDB4MWQsMHgwMCwKLTB4NjEsMHgwYywweGYwLDB4MDAsMHg2MSwweDA5LDB4YTAsMHgwMCwweDYxLDB4MDksMHhkNywweDAwLDB4NjEsMHgwZCwweGI3LDB4MDAsCi0weDYxLDB4MGIsMHhlOCwweDAwLDB4NjEsMHgwYSwweDEzLDB4MDAsMHg2MSwweDBhLDB4NDgsMHgwMCwweDYxLDB4MTcsMHgxNSwweDAwLAotMHgzMywweDE3LDB4MjgsMHgwMCwweDM0LDB4MWQsMHhmNiwweDAwLDB4NDMsMHgxZSwweGExLDB4MDAsMHg0NCwweDIwLDB4MGUsMHgwMCwKLTB4NDQsMHgxZiwweGZjLDB4MDAsMHg0NywweDFlLDB4YzgsMHgwMCwweDQ3LDB4MWYsMHg2ZCwweDAwLDB4NGQsMHgxZiwweGJlLDB4MDAsCi0weDRmLDB4MWUsMHhlYSwweDAwLDB4NTgsMHgzMiwweDU2LDB4MDAsMHg2MSwweDdjLDB4Y2MsMHg3ZCwweGZmLDB4MTIsMHgxYywweGE3LAotMHgyMiwweDkwLDB4ZmYsMHhmYywweGUwLDB4MjAsMHhlNywweDJkLDB4YzIsMHhhZiwweGFlLDB4NTksMHhhZiwweDU4LDB4NzUsMHg1YSwKLTB4MjAsMHhlNSwweDVhLDB4MTQsMHhjNSwweDVhLDB4NjAsMHgxOSwweGU0LDB4ZmUsMHg3ZiwweDA1LDB4ZWUsMHg0ZiwweGNlLDB4MjQsCi0weGZmLDB4Y2UsMHhjZiwweDM0LDB4ZmYsMHhjZiwweDYwLDB4MDcsMHhlNCwweDkwLDB4ZmYsMHg5MiwweGYwLDB4ODAsMHhlZCwweDgwLAotMHhlMCwweDhlLDB4NTksMHg4ZiwweDU4LDB4MjIsMHgxMiwweDA1LDB4MDEsMHg3ZCwweDA3LDB4N2MsMHhiNywweDEyLDB4MzIsMHg3MiwKLTB4N2QsMHgwZiwweDdjLDB4NmUsMHgxMiwweDMyLDB4OGMsMHg3OCwweDlkLDB4N2EsMHgwNiwweGU0LDB4ZjYsMHgwOCwweGRhLDB4ZmMsCi0weDdhLDB4MDYsMHgxMiwweDA1LDB4YzQsMHg3YywweDAzLDB4MTIsMHgwZSwweDRjLDB4MTIsMHgyMSwweDRhLDB4ZTQsMHhmZSwweGZmLAotMHg3YywweDBmLDB4MTIsMHgzMSwweGZiLDB4ZDIsMHhhOCwweDIyLDB4MTIsMHgzMCwweGU2LDB4ZTQsMHg5MCwweGZjLDB4MzgsMHhmMCwKLTB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU0LDB4MDgsMHg3NCwweDAxLDB4OTAsMHhmYywweDM5LDB4ZjAsMHg4MCwweDA1LDB4ZTQsCi0weDkwLDB4ZmMsMHgzOSwweGYwLDB4N2QsMHgwYSwweDdjLDB4MDAsMHgxMiwweDI1LDB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLAotMHgzMCwweGU2LDB4OTAsMHhmYywweDM5LDB4ZTAsMHgxNCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MTAsMHhmMCwKLTB4N2MsMHgwMCwweDEyLDB4MjUsMHhiZiwweDgwLDB4MTksMHg5MCwweGZjLDB4MzksMHhlMCwweDcwLDB4MGUsMHg5MCwweGZmLDB4ZjAsCi0weGUwLDB4NTQsMHhlZiwweGYwLDB4N2MsMHgwMCwweDEyLDB4MjUsMHhiZiwweDgwLDB4MDUsMHg3YywweDE3LDB4MTIsMHgyNSwweGJmLAotMHgxMiwweDMxLDB4NjksMHgyMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhhYiwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwKLTB4MjAsMHhmMCwweDIyLDB4OGMsMHgzNywweDhkLDB4MzYsMHg3OCwweDgyLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweGVkLDB4ZmUsCi0weGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4NzgsMHg4MCwweGY2LDB4NzgsMHg4MiwweGU2LAotMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywKLTB4NTQsMHgwZiwweGZjLDB4N2QsMHg4MCwweDEyLDB4MTcsMHg0NiwweDc4LDB4ODAsMHhlNiwweDcwLDB4MGQsMHhhZCwweDNhLDB4YWUsCi0weDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgwOCwweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZlLAotMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZCwweGYwLDB4ODAsMHgxZSwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwKLTB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHgyNSwweGUwLDB4NDQsCi0weDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHgwMiwweDA2LDB4ZDAsMHg3OCwweDgyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLAotMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMiwweDBlLDB4NTQsMHhmZSwweDkwLDB4ZmYsMHhmMywKLTB4ZjAsMHg4MCwweDJiLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsCi0weDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZWIsMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhiZiwweDQwLAotMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MiwKLTB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsCi0weDBlLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDBkLDB4YWQsMHgzYSwweGFlLDB4MzksMHhhZiwweDM4LAotMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwKLTB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg0NCwweDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsCi0weDc4LDB4ODMsMHhlNiwweDI0LDB4MDMsMHhmNiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjYsMHg3OCwweDgwLDB4ZTYsMHgyNCwweGZlLAotMHg1MCwweDA5LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg4MCwweDA3LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwKLTB4MDIsMHhmMCwweGU0LDB4OTAsMHhmZiwweGYxLDB4ZjAsMHg3OCwweDgxLDB4NzYsMHgwMCwweDc4LDB4ODAsMHhlNiwweDI0LDB4ZmYsCi0weGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHg3OCwweDgxLDB4ZTYsMHg3ZiwweDAwLDB4ZmUsMHhlYywweGQzLDB4OWUsMHhlZiwweDY0LAotMHg4MCwweGNkLDB4NjQsMHg4MCwweDlkLDB4NDAsMHgyZiwweDEyLDB4MDgsMHhhNCwweDQwLDB4MGYsMHg3OCwweDgxLDB4ZTYsMHhhZCwKLTB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDkwLDB4ZmYsMHhmMiwweGUwLDB4ZmMsCi0weDc4LDB4ODIsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZWMsMHhmMCwweDc4LDB4ODEsMHgwNiwweGEzLDB4NzgsMHg4MiwweGE2LAotMHg4MywweDA4LDB4YTYsMHg4MiwweDgwLDB4YjUsMHgxMiwweDA4LDB4YTQsMHg0MCwweDBmLDB4NzgsMHg4MSwweGU2LDB4YWQsMHgzYSwKLTB4YWUsMHgzOSwweGFmLDB4MzgsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg5MCwweGZmLDB4ZjIsMHhlMCwweGZjLDB4NzgsCi0weDgyLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjAsMHg3OCwweDgwLDB4ZTYsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLAotMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDAsMHgyMiwweDhjLDB4MzcsMHg4ZCwweDM2LDB4NzgsMHg4MiwweGVkLDB4ZjYsMHgwOCwKLTB4ZWMsMHhmNiwweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDc4LDB4ODEsCi0weGY2LDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLAotMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LDB4MGYsMHhmYywweDdkLDB4ODEsMHgxMiwweDE3LDB4NDYsMHg3OCwweDgxLDB4ZTYsMHg3MCwKLTB4MDMsMHg3YywweDA4LDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsCi0weGZkLDB4ZjAsMHg4MCwweDFiLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLAotMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDI1LDB4ZTAsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDgwLDB4NWIsMHg3OCwKLTB4ODIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA2LDB4MTIsCi0weDAyLDB4MGUsMHg1NCwweGZlLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDIxLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHgwOCwweGU2LAotMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZWIsMHg5MCwKLTB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4ODIsMHhlNiwweGZkLDB4MDgsCi0weGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDgsMHgxMiwweDAyLDB4MGUsMHg5MCwweGZmLAotMHhmMSwweGYwLDB4MTIsMHgwOCwweGJmLDB4NDAsMHgwMywweDdjLDB4MTgsMHgyMiwweDc4LDB4ODMsMHhlNiwweDI0LDB4MGEsMHhmNiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNiwweDc4LDB4ODAsMHg3NiwweDAwLDB4NzgsMHg4MSwweGU2LDB4MjQsMHhmZiwweGZjLDB4ZTQsCi0weDM0LDB4ZmYsMHhmZCwweDc4LDB4ODAsMHhlNiwweDdmLDB4MDAsMHhmZSwweGVjLDB4ZDMsMHg5ZSwweGVmLDB4NjQsMHg4MCwweGNkLAotMHg2NCwweDgwLDB4OWQsMHg0MCwweDIxLDB4NzgsMHg4MiwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDkwLDB4ZmYsMHhmMSwKLTB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg4MCwweDA2LDB4NzgsMHg4MywweDA2LDB4ZTYsCi0weDE4LDB4NzAsMHgwMSwweDA2LDB4ODAsMHhjMywweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgwMSwweGYwLDB4NzgsMHg4MiwweDg2LAotMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4YmYsMHg0MCwweDAzLDB4N2MsMHgxOCwKLTB4MjIsMHg3YywweDAwLDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDIwLDB4ZTcsMHgxMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsCi0weGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMCwweGMzLDB4MjIsMHg4MCwweGU3LDB4ZDMsMHgyMiwweDkwLAotMHhmZiwweGYwLDB4ZTAsMHgyMCwweGUzLDB4MTIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDMwLDB4ZTUsMHgwOSwweDkwLDB4ZmYsMHhmMCwKLTB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywweDIyLDB4ODAsMHhlNywweGQzLDB4MjIsMHg4YywweDQyLDB4OGQsMHg0MSwweDdjLDB4MDAsCi0weGVkLDB4NTQsMHhmMCwweGZkLDB4ZWMsMHg3MCwweDAzLDB4ZWQsMHg2NCwweDMwLDB4NzAsMHgwNSwweDc1LDB4M2UsMHgwMywweDgwLAotMHgwMywweDc1LDB4M2UsMHgwNCwweGFjLDB4M2UsMHgxMiwweDBmLDB4NjksMHg3NSwweDgzLDB4MDAsMHg4NSwweDgzLDB4NDAsMHhlNSwKLTB4NDEsMHg1NCwweDBmLDB4ZjUsMHgzZiwweGU1LDB4NDAsMHg3MCwweDA0LDB4ZTUsMHgzZiwweDY0LDB4MDMsMHg3MCwweDM1LDB4ZTUsCi0weDNlLDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LDB4MjQsMHgwMiwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLAotMHhlMCwweDMwLDB4ZTYsMHgwNSwweDEyLDB4MTAsMHg0YiwweDgwLDB4MTksMHhlNSwweDNlLDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg1NCwKLTB4ZmIsMHhmNiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4NzQsCi0weDBmLDB4ZjAsMHg4MCwweDU5LDB4ZTUsMHg0MCwweDcwLDB4MDQsMHhlNSwweDNmLDB4NjQsMHgwNCwweDcwLDB4NDgsMHhlNSwweDNlLAotMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDAyLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwKLTB4MzAsMHhlNSwweDA3LDB4YWMsMHg0MiwweGFkLDB4NDEsMHgxMiwweDFjLDB4M2MsMHhlNSwweDQyLDB4MzAsMHhlMiwweDE1LDB4NzgsCi0weGFkLDB4ZTYsMHgzMCwweGUwLDB4MGYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUxLDB4MDksMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLAotMHgwNCwweDEyLDB4MzEsMHhmYiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHg3NCwweDBmLDB4ZjAsMHg4MCwweDA3LDB4ZTQsMHhmYywweDdkLDB4ZWUsMHgxMiwweDFjLDB4M2MsMHhjMiwweDAzLDB4MjIsCi0weDEyLDB4MzAsMHhlNiwweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDYsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHgzOCwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHhmYywweDM5LDB4ZjAsMHhjMiwweDAzLDB4N2QsMHgwMiwweDdjLDB4MDAsCi0weDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDI0LAotMHg5ZCwweGY4LDB4ZTYsMHgzMCwweGUxLDB4MDcsMHg3YywweDEzLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwZiwweDkwLDB4ZmMsMHgzOSwKLTB4ZTAsMHhmZCwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxMywweGM4LDB4MTIsMHgyNSwweGJmLDB4MTIsMHgzMSwweDY5LDB4MjIsCi0weDEyLDB4MzAsMHhlNiwweDc4LDB4OTUsMHhlYywweGY2LDB4N2QsMHgwMCwweDEyLDB4MGYsMHgwOSwweDEyLDB4MjUsMHhiZiwweDEyLAotMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgzMCwKLTB4ZTIsMHgwNywweDdjLDB4MTMsMHgxMiwweDI1LDB4YmYsMHg4MCwweDFiLDB4NzgsMHg5NSwweGU2LDB4MjQsMHg5ZCwweGY4LDB4ZTYsCi0weDIwLDB4ZTEsMHgwNywweDdjLDB4MTIsMHgxMiwweDI1LDB4YmYsMHg4MCwweDBhLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDEzLAotMHhlYywweDEyLDB4MjUsMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywKLTB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgyMCwweGUyLDB4MDcsMHg3YywweDExLDB4MTIsMHgyNSwweGJmLDB4ODAsMHgwYSwweDc4LDB4OTUsCi0weGU2LDB4ZmMsMHgxMiwweDE0LDB4ZWQsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDc4LAotMHg5NSwweGVjLDB4ZjYsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweGZjLDB4M2YsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGEsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLDB4ZmMsMHg0MCwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMywweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwweDYyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHg2MywweDhjLDB4NjEsMHhlNCwweGVjLDB4MzMsMHgzMywweDU0LAotMHgwMSwweDc4LDB4OTUsMHhmNiwweDYwLDB4MDgsMHhlNSwweDYyLDB4MzAsMHhlMSwweDAzLDB4NzgsMHg5NSwweDA2LDB4NzgsMHg5NSwKLTB4ZTYsMHg5MCwweGZjLDB4NDEsMHhmMCwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweGZkLDB4YTMsMHhlMCwweDU0LDB4MGMsMHhmYywweGVkLDB4NTQsMHhlNiwweDhjLDB4NjUsMHhmNSwweDY0LAotMHhlNSwweDYxLDB4MzAsMHhlNSwweDAzLDB4NDMsMHg2NSwweDAxLDB4ZTUsMHg2MiwweDIwLDB4ZTUsMHgwZSwweGU1LDB4NjEsMHg1NCwKLTB4N2YsMHg3MCwweDA4LDB4ZTUsMHg2MSwweDIwLDB4ZTcsMHgwMywweDQzLDB4NjUsMHgwMiwweGU1LDB4NjEsMHgzMCwweGUzLDB4MDMsCi0weDQzLDB4NjUsMHgxMCwweGU1LDB4NjEsMHgzMCwweGUyLDB4MDMsMHg0MywweDY1LDB4MjAsMHhlNSwweDYxLDB4NTQsMHgwMywweDYwLAotMHgwMywweDQzLDB4NjUsMHg0MCwweGU1LDB4NjEsMHgzMCwweGUxLDB4MDMsMHg0MywweDY1LDB4ODAsMHhlNSwweDYxLDB4MzAsMHhlNCwKLTB4MDMsMHg0MywweDY0LDB4MDEsMHhlNSwweDYxLDB4MzAsMHhlNiwweDAzLDB4NDMsMHg2NCwweDA4LDB4ZTUsMHg2MiwweDIwLDB4ZTQsCi0weDBlLDB4ZTUsMHg2MSwweDU0LDB4N2YsMHg3MCwweDA4LDB4ZTUsMHg2MSwweDIwLDB4ZTcsMHgwMywweDQzLDB4NjQsMHgxMCwweDUzLAotMHg2NSwweGZiLDB4NTMsMHg2NCwweDc5LDB4YWQsMHg2NCwweGU1LDB4NjUsMHg5MCwweGZjLDB4M2EsMHhjZCwweGYwLDB4YTMsMHhjZCwKLTB4ZjAsMHhlNSwweDYzLDB4MzAsMHhlMywweDBkLDB4ZTUsMHg2MywweDU0LDB4MzAsMHhjNCwweDU0LDB4MGYsMHg5MCwweGZjLDB4M2QsCi0weGYwLDB4ODAsMHgwNSwweGU0LDB4OTAsMHhmYywweDNkLDB4ZjAsMHhlNSwweDYzLDB4NTQsMHgwMywweDkwLDB4ZmMsMHgzYywweGYwLAotMHhlNSwweDYzLDB4NTQsMHgwNCwweGMzLDB4MTMsMHg5MCwweGZjLDB4M2UsMHhmMCwweDkwLDB4ZmMsMHgzYywweGUwLDB4NzAsMHgwZSwKLTB4N2QsMHgzNSwweDdlLDB4ZmMsMHg3ZiwweDAxLDB4NzQsMHgwMSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MDEsMHg0MiwweDc4LDB4YTksCi0weGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdjLDB4MDAsMHhmZCwweDc4LAotMHhhOSwweGU2LDB4MjQsMHgwNywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDdmLDB4MDAsMHg0YywKLTB4ZmUsMHhlZiwweDRkLDB4OTAsMHhmYywweDM4LDB4ZjAsMHhhMywweGNlLDB4ZjAsMHhjZSwweGMyLDB4MDMsMHg3ZCwweDBhLDB4N2MsCi0weDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweDc4LAotMHg5YSwweDc2LDB4MDEsMHgwOCwweDc2LDB4ZmMsMHgwOCwweDc2LDB4MzgsMHg3OCwweDk3LDB4NzYsMHgwYywweDc4LDB4OWEsMHgxMiwKLTB4MDQsMHg2NSwweDEyLDB4MDIsMHgxNCwweDc4LDB4OTgsMHhjYiwweGY2LDB4Y2IsMHgwOCwweGY2LDB4N2YsMHgwMCwweGVmLDB4MjQsCi0weGVhLDB4NDAsMHgxZiwweGU0LDB4ZWYsMHgyNSwweGUwLDB4OTAsMHgzNSwweDJjLDB4ZmQsMHg5MywweGNkLDB4MDQsMHg5MywweDc4LAotMHg5OSwweDY2LDB4NzAsMHgwMywweGVkLDB4MTgsMHg2NiwweDcwLDB4MDYsMHg3OCwweDk3LDB4NzYsMHgwMCwweDgwLDB4MDMsMHgwZiwKLTB4ODAsMHhkYywweDc4LDB4OTYsMHhlZiwweGY2LDB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDIsCi0weDBlLDB4NzgsMHg5OCwweGNiLDB4ZjYsMHhjYiwweDA4LDB4ZjYsMHg1NCwweDA0LDB4Y2IsMHg1NCwweDg2LDB4NGIsMHg2MCwweDA0LAotMHg3OCwweDk3LDB4NzYsMHgwYiwweDc4LDB4OTksMHhlNiwweDMwLDB4ZTMsMHgxMywweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwKLTB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmIsMHg1MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGQsMHg3OCwweDk5LDB4ZTYsCi0weDU0LDB4YzAsMHg3ZCwweDAwLDB4NjQsMHhjMCwweDRkLDB4NzAsMHgwNCwweDc4LDB4OTcsMHg3NiwweDBiLDB4NzgsMHg5YSwweDEyLAotMHgwNCwweDY1LDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmYywweDUwLDB4MDQsMHg3OCwweDk3LDB4NzYsMHgwZiwKLTB4NzgsMHg5YSwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmQsMHg1MCwweDA0LDB4NzgsCi0weDk3LDB4NzYsMHgwZSwweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg5MCwweDAwLDB4MDksMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZkLAotMHg1MCwweDA0LDB4NzgsMHg5NywweDc2LDB4MGEsMHg3OCwweDk3LDB4ZTYsMHg3MCwweDJhLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwKLTB4MGYsMHg2OSwweDc4LDB4OWEsMHgxMiwweDA0LDB4NjUsMHg3OCwweGE3LDB4ZTYsMHhmOSwweDc4LDB4YTYsMHhlNiwweGZhLDB4N2IsCi0weDAxLDB4NzQsMHgwYSwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHhjMiwweDAzLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDExLAotMHgwNywweDc4LDB4OTcsMHhlYywweGY2LDB4NzgsMHg5NywweGU2LDB4ZmMsMHgxMiwweDI1LDB4YmYsMHgxMiwweDMxLDB4NjksMHgyMiwKLTB4MTIsMHgzMCwweGU2LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHgxMiwweDBmLDB4NjksMHg3OCwweDk1LDB4ZTYsMHgyNCwweGZkLDB4NzUsCi0weGYwLDB4MGEsMHhhNCwweDI0LDB4MTQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGFjLDB4ODIsMHhhZCwweDgzLAotMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwKLTB4MDMsMHhhNywweGMyLDB4MDMsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTEsMHgwNywweDEyLDB4MzEsMHg2OSwweDIyLDB4OGQsCi0weDJiLDB4OGMsMHgyYSwweGVkLDB4NjAsMHg0MCwweDc1LDB4MjcsMHgwMSwweDc1LDB4MjksMHg0OCwweDc1LDB4MjgsMHhmZiwweGU1LAotMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LDB4MzQsMHhmZiwweGZkLDB4ZWMsMHg3YywweDAzLDB4MjUsMHhlMCwweGNkLDB4MzMsMHhjZCwKLTB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwweDJjLDB4ZjUsMHgyOSwweGU1LDB4MjgsMHgzZCwweGY1LDB4MjgsMHhhZCwweDI5LDB4YWUsCi0weDI4LDB4YWYsMHgyNywweDc0LDB4ODAsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHg3NCwweDgwLDB4OTAsMHgwMCwweDAyLAotMHgxMiwweDAzLDB4MTcsMHgxMiwweDBmLDB4YjcsMHhlNSwweDJiLDB4MTQsMHg2MCwweDNiLDB4NzUsMHgyNywweDAxLDB4NzUsMHgyOSwKLTB4MDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwweDJhLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsCi0weDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDI5LDB4MmMsMHhmNSwweDI5LDB4ZTUsMHgyOCwweDNkLAotMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLDB4MjgsMHhhZiwweDI3LDB4ZTQsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHhlNCwKLTB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3OCwweDk1LDB4ZWMsMHhmNiwweGVjLDB4MjQsCi0weDlkLDB4ZjgsMHhlNiwweDMwLDB4ZTIsMHgwOSwweDc4LDB4OTUsMHhlNiwweGZjLDB4MTIsMHgxNCwweGVkLDB4ZDIsMHgwMCwweDc4LAotMHg5NSwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweDk2LDB4NzYsMHgwMCwweDkwLDB4ZmMsMHgzOSwweGUwLDB4MzAsMHhlNywKLTB4MDQsMHg3OCwweDk2LDB4NzYsMHgwMSwweDc4LDB4OTYsMHhlNiwweGZkLDB4NzgsMHg5NSwweGU2LDB4ZmMsMHgxMiwweDBkLDB4MmYsCi0weGMyLDB4MDMsMHgzMCwweDAwLDB4MDcsMHg3OCwweDk1LDB4ZTYsMHhmYywweDEyLDB4MTMsMHhlYywweDdjLDB4MDAsMHgxMiwweDI1LAotMHhiZiwweDEyLDB4MzEsMHg2OSwweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMSwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlMCwweDAyLDB4ODAsMHhlZCwweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjgsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4YzIsMHgwMywweDhjLDB4NTgsCi0weDEyLDB4MGYsMHg2OSwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHg1ZCwweDdhLDB4MzUsMHg3YiwweDBhLAotMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4MTIsMHgwZSwweDA1LDB4YWMsMHg1OCwweDdkLDB4MDIsMHgxMiwweDBkLDB4MmYsMHhjMiwKLTB4MDMsMHhhYywweDU4LDB4MTIsMHgxMSwweDA3LDB4MjIsMHg4ZCwweDUzLDB4OGUsMHg1MiwweDhmLDB4NTEsMHg4YywweDUwLDB4MTIsCi0weDBmLDB4NjksMHg3NSwweDRmLDB4MDAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LDB4MWYsMHhlNSwweDRmLDB4MjQsMHhmNiwweDQwLDB4MTksMHgwNSwweDRmLDB4YzIsMHgwMywKLTB4N2MsMHgxOCwweDEyLDB4MzIsMHhhOSwweDkwLDB4ZmYsMHg5MywweGUwLDB4NDQsMHgwMSwweGYwLDB4YjIsMHhiMywweGFjLDB4NTAsCi0weDEyLDB4MGYsMHg2OSwweDgwLDB4ZDAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LDB4MDUsMHhjMiwweDAzLDB4N2MsMHgwMiwweDIyLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwZiwweDYwLDB4MTYsMHg3OCwweGE5LDB4ZTYsCi0weDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZjAsMHhjMiwweDAzLAotMHg3YywweDAxLDB4MjIsMHg3OCwweGE4LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4YWQsMHg1MywweGFlLDB4NTIsMHhhZiwKLTB4NTEsMHgxMiwweDAzLDB4MGYsMHhjMiwweDAzLDB4N2MsMHgwMCwweDIyLDB4OGQsMHgzMSwweDhjLDB4MzAsMHgxMiwweDE0LDB4ZWQsCi0weGU1LDB4MzEsMHg2MCwweDBmLDB4ZTUsMHgzMCwweGI0LDB4MDMsMHgwYSwweDdjLDB4MDEsMHgxMiwweDI0LDB4ZWUsMHg3YywweDgxLAotMHgxMiwweDI0LDB4ZWUsMHhhYywweDMwLDB4MTIsMHgwZiwweDY5LDB4ZTUsMHgzMSwweDYwLDB4MWEsMHg3OCwweGFhLDB4ODYsMHg4MywKLTB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwweGU3LDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsMHhlNywweGYwLDB4YWMsCi0weDMwLDB4N2QsMHgwMiwweDEyLDB4MGQsMHgyZiwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4NzksMHg2NywweDdhLAotMHgzNSwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4YzIsMHgwMywweGU1LDB4MzAsMHgyNCwweDlkLDB4ZjgsMHhjNiwKLTB4NTQsMHhmZCwweGY2LDB4YWMsMHgzMCwweDEyLDB4MTEsMHgwNywweDIyLDB4OGMsMHgyNiwweDMwLDB4MDMsMHgwNSwweDEyLDB4MzIsCi0weDQ4LDB4ODAsMHhmOCwweDdjLDB4MGEsMHgxMiwweDMxLDB4NWIsMHhkMiwweDAzLDB4ZTUsMHgyNiwweDI0LDB4ZmQsMHg3OCwweGEzLAotMHhmNiwweDcwLDB4MDcsMHg3OCwweGFhLDB4NzYsMHhmZiwweDA4LDB4NzYsMHhlMCwweDc4LDB4YTMsMHhlNiwweDc1LDB4ZjAsMHgxMCwKLTB4YTQsMHhhZCwweGYwLDB4ZmMsMHgyNCwweGEwLDB4NzgsMHhhOSwweGY2LDB4ZWQsMHgzNCwweGZmLDB4MTgsMHhmNiwweDc4LDB4YTMsCi0weGU2LDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDAwLDB4ZmMsMHhlNCwweDM0LDB4ZmMsMHhmZCwweDc4LDB4YTYsMHhlZCwweGY2LAotMHgwOCwweGVjLDB4ZjYsMHgxMiwweDMxLDB4ZjQsMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTcsMHgyMiwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDc4LDB4YTksMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDIyLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwKLTB4ODYsMHg4MiwweGUwLDB4NTQsMHg3ZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsCi0weDgyLDB4ZjUsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmOCwweGYwLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwKLTB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDIyLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwKLTB4ODYsMHg4MiwweGUwLDB4NTQsMHgzZiwweGYwLDB4YWQsMHg4MywweGU1LDB4ODIsMHgyNCwweDA0LDB4ZmMsMHhlNCwweDNkLDB4OGMsCi0weDgyLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgzZiwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHhhNCwweGY4LDB4ZTYsMHhmYywweDc4LAotMHhhYiwweGU2LDB4MjQsMHgwMSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhMywKLTB4ZTYsMHgyNCwweGE0LDB4ZjgsMHhlNiwweGZjLDB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg1NCwweGZiLDB4NDQsMHgwMiwweGY1LDB4MjYsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU1LDB4MDMsMHg0MywweDI2LDB4MDEsMHg3OCwweGE5LDB4ZTYsCi0weDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLDB4MDMsMHgxMiwweDBmLAotMHhiNywweGU1LDB4MjYsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weDc0LDB4MGYsMHhmMCwweDc4LDB4YWEsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHhhMywweGEzLAotMHhhMywweGEzLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgyMiwweDhjLDB4MmEsMHgxMiwweDBmLDB4NjksMHg3OCwweGE3LDB4ZTYsMHgyNCwKLTB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTksMHhlNiwweDI0LDB4MGEsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNywweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA5LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4YTYsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsCi0weGZkLDB4YTMsMHhlMCwweGZjLDB4ZWQsMHhmZSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LAotMHgwMCwweGY1LDB4ODMsMHhlZSwweGYwLDB4ZWMsMHhmZSwweDc4LDB4YTksMHhlNiwweDI0LDB4MDcsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlZSwweGYwLDB4OGMsMHgyOSwweDhkLDB4MjgsMHhjMywweGVjLDB4OTQsMHgwNSwweGVkLDB4OTQsCi0weDBjLDB4NDAsMHgwNSwweDc1LDB4MjcsMHg3YywweDgwLDB4MzMsMHhkMywweGU1LDB4MjksMHg5NCwweDAxLDB4ZTUsMHgyOCwweDk0LAotMHgwMywweDQwLDB4MDUsMHg3NSwweDI3LDB4M2MsMHg4MCwweDIzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHg4MSwweGU1LDB4MjgsMHg5NCwKLTB4MDEsMHg0MCwweDA1LDB4NzUsMHgyNywweDE4LDB4ODAsMHgxMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4NjAsMHhlNSwweDI4LDB4OTQsCi0weDAwLDB4NDAsMHgwNSwweDc1LDB4MjcsMHgwYywweDgwLDB4MDMsMHg3NSwweDI3LDB4MDgsMHhhZiwweDI3LDB4ZTQsMHhlZiwweDU0LAotMHg3YywweDQ0LDB4ODMsMHhmZiwweDhmLDB4MjcsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MjcsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsCi0weGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhMywweGU2LAotMHgyNCwweGE0LDB4ZjgsMHhlYywweGY2LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlMywweDE3LDB4NTMsMHgyNywweGM3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNSwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4OTAsMHgzNSwweDU4LDB4OTMsMHg0MiwweDI3LDB4NTMsMHgyNywKLTB4ZmIsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NjAsCi0weDAzLDB4NDMsMHgyNywweDA0LDB4NTMsMHgyNywweGZjLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDIsMHgyNywweDQzLDB4MjcsMHg4MCwweGU1LDB4MjcsMHhmYywweDc4LDB4YTksMHhlNiwKLTB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhOSwweGU2LDB4MjQsCi0weDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsMHgyNywweDc4LDB4YTcsMHhlNiwweDI0LAotMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlMSwweDA1LDB4NTMsMHgyNywKLTB4ZGYsMHg4MCwweDAzLDB4NDMsMHgyNywweDIwLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNCwweDA1LDB4NTMsMHgyNywweGVmLDB4ODAsMHgwMywweDQzLDB4MjcsMHgxMCwweDc4LAotMHhhNywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGI0LDB4MDIsMHgwMywKLTB4NDMsMHgyNywweDAyLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHhmNSwweDI3LDB4NzgsMHhhNywweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NzAsMHgwNSwweDUzLDB4MjcsMHg3ZiwweDgwLDB4MDMsMHg0MywweDI3LDB4ODAsMHg3OCwweGE3LDB4ZTYsCi0weDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTAsMHgwNSwweDQzLAotMHgyNywweDIwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhkZiwweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTMsMHgwNSwweDQzLDB4MjcsMHg0MCwweDgwLDB4MDMsMHg1MywweDI3LDB4YmYsCi0weDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGUwLAotMHgwNSwweDQzLDB4MjcsMHgxMCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZWYsMHg3OCwweGE3LDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTQsMHgwNSwweDQzLDB4MjcsMHgwOCwweDgwLDB4MDMsCi0weDUzLDB4MjcsMHhmNywweDc4LDB4YTcsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLAotMHhhMywweGUwLDB4MzAsMHhlNSwweDA1LDB4NDMsMHgyNywweDA0LDB4ODAsMHgwMywweDUzLDB4MjcsMHhmYiwweDc4LDB4YTcsMHhlNiwKLTB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNiwweDA1LDB4NDMsCi0weDI3LDB4MDEsMHg4MCwweDAzLDB4NTMsMHgyNywweGZlLDB4NzgsMHhhNywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU3LDB4MDUsMHg0MywweDI3LDB4MDIsMHg4MCwweDAzLDB4NTMsMHgyNywKLTB4ZmQsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZWMsMHhmMCwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDI3LDB4OGMsMHgyNiwweGVkLDB4NTQsMHgwMywweDE0LAotMHg2MCwweDAzLDB4N2MsMHgxMCwweDIyLDB4ZTUsMHgyNywweDU0LDB4N2MsMHgyNCwweGZjLDB4NDAsMHgwMywweDdjLDB4MGIsMHgyMiwKLTB4ZTUsMHgyNiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NDQsMHgwMiwweGY2LDB4N2MsMHgwMCwweDIyLDB4OGMsMHgzMCwweDEyLDB4MGYsCi0weDY5LDB4ZTUsMHgzMCwweDI0LDB4OWQsMHhmOCwweGU2LDB4MjAsMHhlMiwweDRmLDB4YWMsMHgzMCwweDdkLDB4MDIsMHgxMiwweDBkLAotMHgyZiwweGU1LDB4MzAsMHgyNCwweGZlLDB4NDQsMHgyOCwweGZjLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlYywKLTB4ZjAsMHhhZiwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmZSwweGU0LDB4M2YsMHhmZiwweGVjLDB4OGUsMHg4MiwweDhmLDB4ODMsCi0weGYwLDB4N2MsMHgwMywweDhjLDB4MmMsMHhlNSwweDJjLDB4ZmMsMHg3OCwweGFiLDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MmMsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDUsMHhmNSwKLTB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzUsMHgyZCwweDAxLDB4NzUsMHgyZiwweDQ4LDB4NzUsCi0weDJlLDB4ZmYsMHhlNSwweDMwLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLAotMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDJmLDB4MmMsMHhmNSwweDJmLDB4ZTUsMHgyZSwweDNkLDB4ZjUsMHgyZSwKLTB4NzgsMHhhYiwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZTcsCi0weGY1LDB4MmMsMHhhZCwweDJmLDB4YWUsMHgyZSwweGFmLDB4MmQsMHhlNCwweDkwLDB4MDAsMHgwMiwweDEyLDB4MDMsMHgxNywweGU0LAotMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHgxMiwweDAxLDB4ZTYsMHgzMCwweGU1LDB4MDMsMHg0MywweDJjLDB4MTAsMHhlNSwKLTB4MmMsMHhmYywweDc4LDB4YWIsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsCi0weGYwLDB4MTIsMHgxMCwweDRiLDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4YzIsMHgwMywweGZjLDB4ZTUsMHgzMCwweDI0LDB4OWQsMHhmOCwweGM2LDB4NDQsMHgwNCwweGY2LDB4OGMsMHgyYywKLTB4ZTUsMHgzMCwweDU0LDB4MGYsMHhjNCwweDU0LDB4ZjAsMHg3ZSwweDAwLDB4ZmYsMHhlZSwweGVmLDB4NDQsMHgwNCwweDdkLDB4MDAsCi0weGZmLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4MTIsMHgxYywweGE3LDB4N2MsMHgwMCwweDIyLDB4OGMsMHgyZiwweDEyLAotMHgwZiwweDY5LDB4MTIsMHgwZiwweGViLDB4NzgsMHhhYSwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDU0LDB4MDgsMHhmMCwKLTB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDU0LDB4MDgsMHhmMCwweGFjLDB4MmYsMHg3ZCwweDAyLDB4MTIsMHgwZCwweDJmLDB4YzIsCi0weDAzLDB4ZTUsMHgyZiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NTQsMHhmYiwweGY2LDB4N2MsMHgwMCwweDIyLDB4MTIsMHgzMCwweGU2LAotMHg3OCwweDk2LDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5ZCwweGY4LDB4ZTYsMHgzMCwweGUxLDB4MGEsMHg3ZCwweDAwLDB4N2MsMHgxMywKLTB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4NzgsMHg5NiwweGU2LDB4MjQsMHg5ZCwweGY4LDB4YzYsMHg0NCwweDAxLDB4ZjYsCi0weDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsMHgwZiwweDY5LDB4NzgsMHg5NiwweGU2LDB4MjQsMHhmZCwweDc1LDB4ZjAsMHgwYSwweGE0LAotMHgyNCwweDE0LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHg3OCwweGE2LDB4ZTYsMHhmYSwweDA4LDB4ZTYsMHhmOSwKLTB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4YTcsMHg3OCwweGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweDc5LDB4NjcsCi0weDdhLDB4MzUsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweDEyLDB4MGYsMHhiNywweGMyLDB4MDMsMHg3OCwweDk2LAotMHhlNiwweGZjLDB4MTIsMHgxMSwweDA3LDB4NzgsMHg5NSwweGVjLDB4ZjYsMHhlYywweDYwLDB4MGEsMHg3ZCwweDAwLDB4N2MsMHgwOCwKLTB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4NzgsMHg5NiwweGU2LDB4ZmMsMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsCi0weDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDEwLDB4NTQsMHhkZiwweGZjLAotMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwKLTB4OTUsMHhlYywweGY2LDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsCi0weDY5LDB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDU0LAotMHhlZiwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwKLTB4NzgsMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MTAsCi0weGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LAotMHhhOSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MjAsMHhmMCwKLTB4YzIsMHgwMywweDdjLDB4ZjAsMHgxMiwweDMyLDB4YTksMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MGYsMHg2OSwweDc4LDB4YTksCi0weGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTQsMHgxNSwweGMyLAotMHgwMywweDc4LDB4OTYsMHhlNiwweDQ0LDB4MTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDA3LDB4MTIsMHgzMSwweGZiLDB4MTIsMHgzMSwKLTB4NjksMHgwMiwweDE3LDB4MTQsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLAotMHgxMiwweDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHg0NCwweDMwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHhhOSwweDc4LDB4OTYsMHhlNiwweGZjLDB4MTIsCi0weDBmLDB4NjksMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLAotMHgzMCwweGU0LDB4MTQsMHhjMiwweDAzLDB4NzgsMHg5NiwweGU2LDB4NDQsMHgxMCwweDdmLDB4MDAsMHhmZSwweDdjLDB4MDcsMHgxMiwKLTB4MzEsMHhmYiwweDEyLDB4MzEsMHg2OSwweDgwLDB4NWQsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3OCwweGE5LDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg3OCwweDk2LDB4ZTYsMHgyNCwweGZkLDB4NzUsMHhmMCwKLTB4MGEsMHhhNCwweDI0LDB4MTQsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGFjLDB4ODIsMHhhZCwweDgzLDB4NzgsCi0weGE2LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLAotMHhhNywweGMyLDB4MDMsMHg3OCwweDk2LDB4ZTYsMHhmYywweDEyLDB4MTEsMHgwNywweDdkLDB4MDAsMHg3YywweDBiLDB4MTIsMHgyNSwKLTB4MjYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweGU0LDB4OTAsMHhmYywweDM5LDB4ZjAsMHg3ZCwweDAyLDB4N2MsCi0weDAwLDB4MTIsMHgyNSwweDI2LDB4MTIsMHgzMSwweDY5LDB4MjIsMHgxMiwweDMwLDB4ZTYsMHg3YywweDAwLDB4MTIsMHgyNSwweGJmLAotMHgxMiwweDMxLDB4NjksMHgyMiwweDc0LDB4M2MsMHg5MCwweGZiLDB4ZTAsMHhmMCwweDc0LDB4M2UsMHg5MCwweGZiLDB4ZTAsMHhmMCwKLTB4ZTQsMHg5MCwweGZjLDB4MjgsMHhmMCwweDIyLDB4OGQsMHgzNSwweDhjLDB4MzQsMHhlYywweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsCi0weGQzLDB4NDAsMHgwMiwweDgwLDB4MjgsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA4LDB4YTgsMHgzNSwweGM2LAotMHgyNSwweGUwLDB4ZjYsMHg4MCwweDE4LDB4YjQsMHgwNCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGE4LDB4MzUsMHhjNiwKLTB4MjUsMHhlMCwweDI1LDB4ZTAsMHhmNiwweDgwLDB4MDYsMHhhOCwweDM1LDB4NzYsMHgwMCwweDgwLDB4MDAsMHgyMiwweDhjLDB4M2MsCi0weDhkLDB4M2IsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg3NSwweDY2LDB4MDYsMHg3NSwweDY3LDB4MDAsMHg5MCwweGZjLAotMHgyOSwweDEyLDB4MDQsMHg2ZSwweDEyLDB4MDEsMHhlNiwweGI0LDB4ODAsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwKLTB4MTgsMHg0NywweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwMywweDEyLDB4MDEsMHhlYywweDU0LDB4ZjAsCi0weGI0LDB4MzAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NWYsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLAotMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZmQsMHhlYiwweGZlLDB4N2YsMHgwMSwweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg2ZSwKLTB4ZWUsMHhjZCwweDkwLDB4MzUsMHg3MSwweGZjLDB4ZTQsMHg5MywweGZmLDB4NzQsMHgwMSwweDkzLDB4ZmUsMHhmOSwweGVmLDB4ZmEsCi0weDdiLDB4MDEsMHhlYSwweGZmLDB4ZTksMHhmZSwweGVjLDB4YzMsMHg5ZSwweGVkLDB4OWYsMHg0MCwweDI1LDB4OTAsMHgzNSwweDczLAotMHhlNCwweDkzLDB4ZmQsMHg3NCwweDAxLDB4OTMsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweGVlLDB4Y2QsMHhmYywKLTB4OTAsMHhmYywweDJlLDB4ZTAsMHhkMywweDljLDB4OTAsMHhmYywweDJkLDB4ZTAsMHg5ZCwweDUwLDB4MDUsMHg3NSwweDY2LDB4ODAsCi0weDgwLDB4MzMsMHgxMiwweDE5LDB4NjUsMHg4MCwweDJlLDB4YjQsMHg2MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYiwweGFjLAotMHgzYywweGFkLDB4M2IsMHgxMiwweDA3LDB4NzcsMHg4YywweDY2LDB4ODAsMHgxYiwweGI0LDB4MTAsMHgwMywweGIzLDB4NDAsMHgxMCwKLTB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLDB4MDksMHhjMywweGI0LDB4NDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsCi0weDc1LDB4NjYsMHg4MSwweDgwLDB4MDAsMHg4MCwweDc1LDB4YjQsMHg4MSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2YiwweDkwLAotMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDAzLDB4MTIsMHgwMSwweGVjLDB4NTQsMHhmMCwweGI0LDB4MzAsMHgwMiwKLTB4ODAsMHgwMywweGQzLDB4NDAsMHgxZCwweDkwLDB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsCi0weDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwweDAxLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4MTIsMHgxOCwweGNmLAotMHg4MCwweDM2LDB4YjQsMHg2MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxMywweDc1LDB4M2EsMHg2NywweGU0LDB4ZjUsMHgzOSwKLTB4ZjUsMHgzOCwweGFjLDB4M2MsMHhhZCwweDNiLDB4MTIsMHgwNSwweGQzLDB4OGMsMHg2NiwweDgwLDB4MWIsMHhiNCwweDEwLDB4MDMsCi0weGIzLDB4NDAsMHgxMCwweGMzLDB4YjQsMHgyMCwweDAzLDB4YjMsMHg0MCwweDA5LDB4YzMsMHhiNCwweDQwLDB4MDIsMHg4MCwweDAzLAotMHhkMywweDQwLDB4MDAsMHg3NSwweDY2LDB4ODEsMHg4MCwweDAwLDB4ODAsMHgwMiwweDgwLDB4MDAsMHhlNSwweDY2LDB4ZmMsMHg5MCwKLTB4ZmMsMHgyOSwweDEyLDB4MDQsMHg4MCwweGVjLDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywweDE3LDB4YWMsMHg2NywweDIyLDB4OTAsCi0weGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHg2MCwweDA0LDB4NzQsMHgwMSwweDgwLAotMHgwMSwweGU0LDB4YTIsMHhlMCwweDkyLDB4MDEsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDMsMHhmZCwKLTB4NTAsMHgwMSwweDBlLDB4OTAsMHhmYywweDJjLDB4MTIsMHgwNCwweDZlLDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsCi0weDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHhmNSwweDY3LDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLAotMHg3ZCwweDY3LDB4MTIsMHgxNywweDQ2LDB4ZTUsMHg2NywweDcwLDB4MDQsMHg3NSwweDY2LDB4MDgsMHgyMiwweDc1LDB4NjYsMHgwMCwKLTB4NzgsMHg4NCwweDc2LDB4MDAsMHg3OCwweDg0LDB4ZTYsMHhjMywweDk1LDB4NjcsMHg1MCwweDM4LDB4OTAsMHhmYywweDJmLDB4MTIsCi0weDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLDB4ZmMsMHgyYywweDEyLDB4MDQsMHg4MCwweGVjLDB4MTIsMHgwMywweDBmLAotMHgzMCwweDAxLDB4MGUsMHg5MCwweGZjLDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MzAsMHg3MCwweDAzLDB4ZTAsMHgwNCwKLTB4ZjAsMHg3OCwweDg0LDB4MDYsMHg5MCwweGZjLDB4MmUsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MmQsMHg3MCwweDAzLDB4ZTAsCi0weDA0LDB4ZjAsMHg4MCwweGMwLDB4MjIsMHg5MCwweGZjLDB4MmEsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4ZWQsMHhmZSwweGVjLAotMHhmZCwweDdmLDB4MDEsMHhlZCwweDI0LDB4MGEsMHhmZCwweDUwLDB4MDEsMHgwZSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg2ZSwKLTB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGI0LDB4MDEsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxNywweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4MCwweDBkLDB4ZWQsMHg3MCwweDAxLAotMHgwZSwweDkwLDB4ZmMsMHgyZiwweDEyLDB4MDQsMHg2ZSwweDc4LDB4ODgsMHg3NiwweDAxLDB4ODAsMHg0ZSwweGI0LDB4MDIsMHgwMiwKLTB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmMsMHgzMiwweDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwMiwweGZkLDB4NTAsCi0weDAxLDB4MGUsMHg5MCwweGZjLDB4MmYsMHgxMiwweDA0LDB4NmUsMHg3OCwweDg4LDB4NzYsMHgwMiwweDgwLDB4MmQsMHhiNCwweDA0LAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTksMHg5MCwweGZjLDB4MzIsMHgxMiwweDA0LDB4ODAsMHhlZCwweDI0LDB4MDQsMHhmZCwKLTB4NTAsMHgwMSwweDBlLDB4OTAsMHhmYywweDJmLDB4MTIsMHgwNCwweDZlLDB4NzgsMHg4OCwweDc2LDB4MDQsMHg4MCwweDBjLDB4YjQsCi0weDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2NiwweDA4LDB4MjIsMHg5MCwweGZjLDB4MjksMHgxMiwweDA0LAotMHg4MCwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjcsMHg3OCwweDg1LDB4NzYsMHgwMCwweDc4LDB4ODUsMHhlNiwKLTB4YzMsMHg5NSwweDY3LDB4NDAsMHgwMywweDAyLDB4MWEsMHhjZCwweDc4LDB4ODYsMHg3NiwweDAwLDB4NzgsMHg4NiwweGU2LDB4YzMsCi0weDc4LDB4ODgsMHg5NiwweDUwLDB4NzYsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLAotMHhmYywweDMyLDB4MTIsMHgwNCwweDg5LDB4MTIsMHgwMSwweGUwLDB4ZjQsMHg1YywweGZjLDB4MTIsMHgwMSwweGUwLDB4ZjgsMHg5MCwKLTB4ZmMsMHgyZiwweDEyLDB4MDQsMHg4MCwweGU4LDB4YzAsMHhlMCwweDEyLDB4MDEsMHhlNiwweGM4LDB4ZDAsMHhlMCwweGM4LDB4NTgsCi0weDRjLDB4ZmMsMHg5MCwweGZjLDB4MmMsMHgxMiwweDA0LDB4ODAsMHhlYywweDEyLDB4MDMsMHgwZiwweDc4LDB4ODcsMHhlYywweGY2LAotMHg5MCwweGZjLDB4MzEsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLDB4MzAsMHg3MCwweDAzLDB4ZTAsMHgwNCwweGYwLDB4MDksMHhlOSwKLTB4NzAsMHgwMSwweDBhLDB4OTAsMHhmYywweDMyLDB4MTIsMHgwNCwweDc3LDB4OTAsMHhmYywweDI5LDB4MTIsMHgwNCwweDgwLDB4OTAsCi0weDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHgzMCwweGU0LDB4MGUsMHg5MCwweGZjLDB4MmUsMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZjLAotMHgyZCwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg3OCwweDg2LDB4MDYsMHg4MCwweDgxLDB4NzgsMHg4OCwweGU2LDB4ZmQsMHhlNCwKLTB4ZmUsMHhmZiwweGVlLDB4Y2QsMHhmYywweDkwLDB4ZmMsMHgzMSwweGUwLDB4MmMsMHhmMCwweDkwLDB4ZmMsMHgzMCwweGUwLDB4M2QsCi0weGYwLDB4NzgsMHg4OCwweGU2LDB4ZmQsMHhlNCwweGZlLDB4ZmYsMHhlZSwweGNkLDB4ZmMsMHg5MCwweGZjLDB4MzQsMHhlMCwweDJjLAotMHhmMCwweDkwLDB4ZmMsMHgzMywweGUwLDB4M2QsMHhmMCwweDc4LDB4ODUsMHgwNiwweDAyLDB4MWEsMHgwZCwweDc1LDB4NjYsMHgwMCwKLTB4MjIsMHhlNSwweDNkLDB4MDUsMHgzZCwweDA0LDB4NzAsMHgwMiwweGIyLDB4YjAsMHgyMiwweGMwLDB4ZTAsMHhjMCwweGYwLDB4YzAsCi0weDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwweGMwLDB4ZTAsMHhlYSwweGMwLDB4ZTAsMHhlYiwweGMwLAotMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsMHhlMCwweGVmLDB4YzAsMHhlMCwweDkwLDB4ZmYsMHg5MiwKLTB4ZTAsMHgxMiwweDAxLDB4YjcsMHgxYiwweDI5LDB4MzAsMHgxYiwweDI5LDB4MzIsMHgxYiwweDM4LDB4MzgsMHgxYiwweDRhLDB4M2EsCi0weDFiLDB4NWMsMHgzZSwweDFiLDB4NzQsMHg0NCwweDFiLDB4NjgsMHg0NiwweDFiLDB4ODAsMHg1MCwweDFiLDB4YzIsMHg1MiwweDFiLAotMHhhMSwweDU0LDB4MWIsMHhlMywweDU2LDB4MDAsMHgwMCwweDFjLDB4MDQsMHg5MCwweGZmLDB4OTIsMHhlMCwweDdmLDB4MDAsMHhmZSwKLTB4N2MsMHgwMSwweDEyLDB4MzEsMHhmYiwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwMywweDEyLDB4MzEsCi0weGZiLDB4NzQsMHgyMCwweDkwLDB4ZmYsMHhmZSwweGYwLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDAyLAotMHgxMiwweDMxLDB4ZmIsMHg3NCwweDQwLDB4OTAsMHhmZiwweGZlLDB4ZjAsMHgwMiwweDFjLDB4MTQsMHhlNCwweGZmLDB4MDQsMHhmZSwKLTB4N2MsMHgwNCwweDEyLDB4MzEsMHhmYiwweDAyLDB4MWMsMHgxNCwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNSwweDEyLDB4MzEsCi0weGZiLDB4MDIsMHgxYywweDE0LDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywweDA2LDB4MTIsMHgzMSwweGZiLDB4MDIsMHgxYywweDE0LAotMHg5MCwweGZmLDB4YTUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZjgsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmYiwKLTB4ZjksMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmOCwweGUwLDB4NDQsMHgzMywweGZkLDB4MTIsMHgxYywweGE3LDB4ODAsCi0weDczLDB4OTAsMHhmZiwweGI1LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmYiwweGZhLDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLAotMHhmYiwweGZiLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZiLDB4ZmEsMHhlMCwweDQ0LDB4NDMsMHhmZCwweDEyLDB4MWMsMHhhNywKLTB4ODAsMHg1MiwweDkwLDB4ZmYsMHhhNiwweGUwLDB4N2QsMHgwMCwweDkwLDB4ZmIsMHhmYywweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsCi0weDkwLDB4ZmIsMHhmZCwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmYiwweGZjLDB4ZTAsMHg0NCwweDM0LDB4ZmQsMHgxMiwweDFjLAotMHhhNywweDgwLDB4MzEsMHg5MCwweGZmLDB4YjYsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZiLDB4ZmUsMHhjZCwweGYwLDB4YTMsMHhjZCwKLTB4ZjAsMHg5MCwweGZiLDB4ZmYsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmIsMHhmZSwweGUwLDB4NDQsMHg0NCwweGZkLDB4MTIsCi0weDFjLDB4YTcsMHg4MCwweDEwLDB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHhlZCwweDQ0LDB4YWEsMHhmZCwweDEyLAotMHgxYywweGE3LDB4ODAsMHgwMCwweGU0LDB4OTAsMHhmZiwweDkyLDB4ZjAsMHhkMCwweGUwLDB4ZmYsMHhkMCwweGUwLDB4ZmUsMHhkMCwKLTB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLDB4ZTAsMHhmYSwweGQwLDB4ZTAsMHhmOSwweGQwLDB4ZTAsCi0weGY4LDB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweGQwLDB4ZTAsMHgzMiwweDA1LDB4ODEsMHgwNSwweDgxLAotMHgwNSwweDgxLDB4MDUsMHg4MSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4OTAsMHhmZiwKLTB4NWEsMHhlMCwweDIwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHg5MCwweGZmLDB4NTksMHhlMCwweDdkLDB4MDAsMHhhOCwweDgxLDB4MTgsCi0weGNkLDB4ZjYsMHhjZCwweDA4LDB4ZjYsMHg3ZCwweDAzLDB4YTgsMHg4MSwweGU2LDB4MTgsMHhmYywweGU2LDB4Y2MsMHgyNSwweGUwLAotMHhjYywweDMzLDB4Y2MsMHhkZCwweGY5LDB4Y2MsMHhmNiwweGNjLDB4MDgsMHhmNiwweGE4LDB4ODEsMHgxOCwweGU2LDB4NDQsMHhmOCwKLTB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGE4LDB4ODEsMHgxOCwweDg2LDB4ODMsCi0weDA4LDB4ODYsMHg4MiwweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHg3NCwweDAyLDB4OTAsMHhmZiwweDVhLDB4ZjAsMHgxNSwweDgxLAotMHgxNSwweDgxLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgyMiwweGU1LDB4ODEsMHgyNCwweDA1LDB4ZjUsMHg4MSwweGU0LDB4YTgsMHg4MSwKLTB4MTgsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg5MCwweGZiLDB4ZjUsCi0weGUwLDB4MjQsMHhmOCwweDUwLDB4MDMsMHgwMiwweDFkLDB4YzgsMHhlNCwweGE4LDB4ODEsMHgxOCwweDE4LDB4ZjYsMHhhOCwweDgxLAotMHgxOCwweGU2LDB4ZmUsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4N2YsMHgwMCwKLTB4ZWYsMHgyNCwweGY4LDB4NDAsMHg0ZCwweGU0LDB4ZWYsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsCi0weGY1LDB4ODMsMHhlMCwweGZiLDB4YTMsMHhlMCwweDZjLDB4NzAsMHgwMywweGZhLDB4ZWIsMHg2ZCwweDcwLDB4MDksMHg3NCwweDAxLAotMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4ODAsMHgyYiwweGU0LDB4ZWYsMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmYywweGY1LDB4ODMsMHg3YSwweDAwLDB4ZTAsMHg1NCwweGYwLDB4Y2MsMHhmOCwweGNjLDB4Y2QsMHhmOSwweGNkLDB4ZmIsCi0weDc4LDB4MDAsMHhlOSwweDU0LDB4ZjAsMHhmOSwweGVhLDB4NjgsMHg3MCwweDAyLDB4ZWIsMHg2OSwweDcwLDB4MDEsMHgwZSwweDBmLAotMHg4MCwweGFlLDB4YTgsMHg4MSwweDE4LDB4ZWUsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLDB4ZjYsMHgwOCwKLTB4ZWMsMHhmNiwweGE4LDB4ODEsMHhlZiwweGY2LDB4YTgsMHg4MSwweDE4LDB4MTgsMHhlNiwweDcwLDB4NzksMHhhOCwweDgxLDB4MTgsCi0weGU2LDB4MjQsMHhmNywweDQwLDB4NzEsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsMHhlNiwweDU0LDB4MGYsMHhhOCwweDgxLAotMHhmNiwweDY0LDB4MDQsMHg2MCwweDE3LDB4YTgsMHg4MSwweGU2LDB4NjQsMHgwMywweDYwLDB4MTAsMHhhOCwweDgxLDB4MTgsMHgxOCwKLTB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwweDFjLDB4M2MsMHg4MCwweDRhLDB4N2MsMHgwYSwweDEyLDB4MzEsCi0weDViLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweDkwLDB4ZmIsMHhmNCwweGUwLAotMHgyNSwweGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwKLTB4OTAsMHhmYiwweGY0LDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHgwNCwweDU0LDB4MDcsMHhmZiwweDkwLDB4ZmIsMHhmNCwweGYwLDB4OTAsCi0weGZiLDB4ZjUsMHhlMCwweDA0LDB4ZjAsMHgxMiwweDMxLDB4ZjQsMHg5MCwweGZiLDB4ZjYsMHhlMCwweDcwLDB4MDgsMHhlNCwweGZlLAotMHhmZiwweDdjLDB4MGYsMHgxMiwweDMxLDB4ZmIsMHg4MCwweDI3LDB4OTAsMHhmYiwweGY3LDB4ZTAsMHgwNCwweGYwLDB4NTQsMHgzZiwKLTB4NzAsMHgxZCwweDkwLDB4ZmIsMHhmNywweGUwLDB4NDQsMHhmZSwweDdkLDB4MDAsMHhmYywweDkwLDB4ZmIsMHhmNCwweGUwLDB4MjUsCi0weGUwLDB4MjQsMHg3ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZWQsMHhmMCwweGEzLDB4ZWMsMHhmMCwweGU1LAotMHg4MSwweDI0LDB4ZmIsMHhmNSwweDgxLDB4MjIsMHg3OCwweDhiLDB4NzYsMHgwMCwweDc4LDB4OGMsMHg3NiwweDAwLDB4NzQsMHgwMSwKLTB4OTAsMHhmYiwweGY2LDB4ZjAsMHgxMiwweDMwLDB4ZTYsMHg5MCwweGZiLDB4ZjUsMHhlMCwweDYwLDB4NTcsMHg3YywweDBhLDB4MTIsCi0weDMxLDB4NWIsMHg5MCwweGZiLDB4ZjMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LAotMHg4MywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHg5MCwweGZiLDB4ZjMsMHhlMCwweDI1LDB4ZTAsMHgyNCwweDdkLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhhMywweGYwLDB4OTAsMHhmYiwweGYzLDB4ZTAsMHhmZiwweGU0LDB4ZWYsCi0weDA0LDB4NTQsMHgwNywweGZmLDB4OTAsMHhmYiwweGYzLDB4ZjAsMHg5MCwweGZiLDB4ZjUsMHhlMCwweDE0LDB4ZjAsMHg3OCwweDg5LAotMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4MTIsMHgzMSwweGY0LDB4NzgsMHg4OSwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwKLTB4MDgsMHhkYSwweDgwLDB4YTMsMHgxMiwweDMyLDB4NDgsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGIyLDB4YjMsCi0weDc4LDB4OGIsMHgwNiwweGI2LDB4MDAsMHgxMSwweDc4LDB4OGIsMHg3NiwweDAwLDB4NzgsMHg4YywweGU2LDB4ZjQsMHgwNCwweDA0LAotMHhhMiwweGUwLDB4OTIsMHhiNCwweDc4LDB4OGMsMHhmNiwweDAyLDB4MWUsMHgwNywweGU0LDB4OTAsMHhmYiwweGY2LDB4ZjAsMHg5MCwKLTB4ZmIsMHhmNSwweGUwLDB4N2QsMHgwMCwweGZjLDB4ZWQsMHg0NCwweGNmLDB4ZmQsMHgxMiwweDFjLDB4M2MsMHgxMiwweDMxLDB4NjksCi0weDIyLDB4MTIsMHgzMCwweGU2LDB4ZTUsMHg3MCwweDY0LDB4NDksMHg0NSwweDZmLDB4NjAsMHgxNSwweDkwLDB4ZmYsMHg4MywweGUwLAotMHg1NCwweDBmLDB4N2QsMHgwMCwweGQzLDB4OTUsMHg3MCwweGVkLDB4OTUsMHg2ZiwweDUwLDB4MDUsMHgxMiwweDJmLDB4MmYsMHg4MCwKLTB4MDMsMHgxMiwweDJmLDB4ZmYsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweGU1LDB4NzAsMHg2NCwweDQ5LDB4NDUsCi0weDZmLDB4NjAsMHgwNSwweDEyLDB4MzAsMHgzOSwweDgwLDB4MGUsMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLAotMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDhjLDB4NTQsMHhlYywKLTB4NTQsMHhmMCwweGI0LDB4MTAsMHgxNSwweDc1LDB4NmEsMHgzNSwweDc1LDB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweGU1LDB4NmEsCi0weDI0LDB4MDMsMHhmNSwweDZhLDB4ZTUsMHg2OSwweDM0LDB4MDAsMHhmNSwweDY5LDB4ZTQsMHhmNSwweDU3LDB4ZjUsMHg1NiwweGU1LAotMHg1NiwweGMzLDB4OTQsMHgwMSwweDUwLDB4MjcsMHhlNSwweDU0LDB4NTQsMHgwZiwweGZjLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwKLTB4NjgsMHgxMiwweDBlLDB4NzcsMHg4YywweDU1LDB4ZWMsMHg2MCwweDAyLDB4ODAsMHgxMiwweDA1LDB4NmEsMHhlNSwweDZhLDB4NzAsCi0weDAyLDB4MDUsMHg2OSwweDA1LDB4NTcsMHhlNSwweDU3LDB4NzAsMHgwMiwweDA1LDB4NTYsMHg4MCwweGQyLDB4ZTUsMHg1NCwweDU0LAotMHgwZiwweDI0LDB4OWQsMHhmOCwweGM2LDB4NTQsMHhmZSwweGY2LDB4ZTUsMHg1NCwweDU0LDB4MGYsMHg3ZiwweDAwLDB4ZmUsMHg3YywKLTB4MTIsMHgxMiwweDMxLDB4ZmIsMHhlNSwweDU1LDB4MTQsMHg3MCwweDA5LDB4N2QsMHgwMCwweDdjLDB4MDksMHgxMiwweDI1LDB4MjYsCi0weDgwLDB4MDcsMHhhZCwweDU3LDB4N2MsMHgwMCwweDEyLDB4MjUsMHgyNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwweGU2LAotMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LDB4MDIsMHhmMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4MzAsMHhlNywweDEzLDB4OTAsMHhmZiwKLTB4ODMsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDQzLDB4NmQsMHg4MCwweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgwMSwweGYwLDB4ODAsCi0weDExLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg1MywweDZkLDB4N2YsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDU0LAotMHhmZSwweGYwLDB4OTAsMHhmZiwweDgxLDB4ZTAsMHg0NCwweDgwLDB4ZjAsMHgxMiwweDI1LDB4ZDksMHg5MCwweGZmLDB4ZmUsMHhlMCwKLTB4NDQsMHgwNSwweGYwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsCi0weGU2LDB4N2MsMHgwMSwweDEyLDB4MzIsMHhhOSwweDc4LDB4YWQsMHhlNiwweDQ0LDB4MDIsMHhmNiwweDc0LDB4ZmUsMHhmYywweDA0LAotMHhmZCwweDEyLDB4MWMsMHhhNywweDkwLDB4ZmYsMHg1YSwweGUwLDB4MzAsMHhlNywweDAyLDB4ODAsMHhmNywweGU0LDB4ZjUsMHg0ZSwKLTB4NzUsMHg0ZCwweDEwLDB4YWMsMHg0ZSwweGFkLDB4NGQsMHhlNSwweDRlLDB4MTUsMHg0ZSwweDcwLDB4MDIsMHgxNSwweDRkLDB4ZWMsCi0weDRkLDB4NjAsMHgwMiwweDgwLDB4ZWUsMHg0MywweDg3LDB4MDEsMHgxMiwweDMxLDB4NjksMHgyMiwweDEyLDB4MzAsMHhlNiwweDdjLAotMHgwMiwweDEyLDB4MzEsMHg3NSwweDc4LDB4YWQsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDEyLDB4MzEsMHg2OSwweDIyLDB4MTIsMHgzMCwKLTB4ZTYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUwLDB4MmMsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUxLDB4MjYsMHg3OCwweGFkLDB4ZTYsCi0weGZjLDB4ZjUsMHg4MywweDE4LDB4ZTYsMHg0NCwweGYwLDB4ZmQsMHgxMiwweDFjLDB4M2MsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDQ0LAotMHgyMCwweGYwLDB4N2MsMHgwMiwweDEyLDB4MzIsMHhhOSwweDc4LDB4YWQsMHhlNiwweDU0LDB4ZmQsMHhmNiwweDc0LDB4MWEsMHg5MCwKLTB4ZmYsMHhmZSwweGYwLDB4NzgsMHhhZCwweGU2LDB4ZmMsMHhmNSwweDgzLDB4MTgsMHhlNiwweDQ0LDB4ZjEsMHhmZCwweDEyLDB4MWMsCi0weDNjLDB4MTIsMHgzMSwweDY5LDB4MjIsMHg3NSwweDZkLDB4MDAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDMsMHg0MywweDZkLAotMHgwMSwweDc1LDB4NmUsMHgwMCwweGU0LDB4ZjUsMHg2YywweGY1LDB4NmIsMHhlNCwweGY1LDB4NmYsMHg3NSwweDcwLDB4NDksMHg3NCwKLTB4ODQsMHg5MCwweGZmLDB4ODIsMHhmMCwweDc0LDB4ODQsMHg5MCwweGZmLDB4ODAsMHhmMCwweDc0LDB4ODAsMHg5MCwweGZmLDB4NTgsCi0weGYwLDB4NzQsMHg4MCwweDkwLDB4ZmYsMHg1YSwweGYwLDB4YWQsMHg0NiwweGFmLDB4NDUsMHg3ZSwweDAwLDB4ZWUsMHgyNCwweGZlLAotMHg1MCwweDAzLDB4MDIsMHgyMSwweDI0LDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg3ZiwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDU0LDB4ODAsMHhmZCwweGU0LDB4ZWYsMHg1NCwweDBmLDB4MTQsCi0weGZmLDB4ZWQsMHg2MCwweDM4LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LAotMHhmZiwweGY1LDB4ODMsMHg3NCwweDkwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4ODAsMHgzNCwweGU0LDB4ZWYsMHg3NSwweGYwLAotMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg5MCwweGYwLDB4ZTQsMHhlZiwKLTB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4ZTQsCi0weGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLAotMHgwZSwweDAyLDB4MjAsMHg4ZCwweDhkLDB4NDYsMHg4ZSwweDQ0LDB4OGYsMHg0NSwweDc0LDB4N2YsMHg5MCwweGZmLDB4ZmQsMHhmMCwKLTB4NzQsMHg5MCwweDkwLDB4ZmYsMHhmYywweGYwLDB4MjIsMHg4YywweDU4LDB4ZWMsMHgyNCwweGY2LDB4NTAsMHgwNiwweGU1LDB4NTgsCi0weDI0LDB4MzcsMHhmYywweDIyLDB4ZTUsMHg1OCwweDI0LDB4MzAsMHhmYywweDIyLDB4MTIsMHgyNSwweDIzLDB4ZWMsMHg3MCwweDAzLAotMHgwMiwweDIyLDB4NWUsMHg3NSwweDVjLDB4MDMsMHhhZSwweDViLDB4N2YsMHgwMCwweGU1LDB4NWMsMHgxNSwweDVjLDB4NjQsMHg4MCwKLTB4MjQsMHg3ZiwweDUwLDB4MzUsMHhlZiwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4ZmUsCi0weDI0LDB4ZmUsMHg1MCwweDFlLDB4ZWYsMHg3ZCwweDAwLDB4ZmMsMHhlNCwweGZiLDB4NzQsMHg3NCwweGMzLDB4OWMsMHhmYSwweGViLAotMHg5ZCwweGZiLDB4ZWUsMHg3ZCwweDAwLDB4ZmMsMHhlYSwweGMzLDB4OWMsMHhlZCwweDY0LDB4ODAsMHhjYiwweDY0LDB4ODAsMHg5YiwKLTB4NTAsMHgwMiwweDgwLDB4MDUsMHhlZiwweDJlLDB4ZmYsMHg4MCwweGMxLDB4OGUsMHg1YiwweDhmLDB4NWEsMHhlNSwweDVjLDB4NjQsCi0weDgwLDB4MjQsMHg3ZiwweDUwLDB4MDMsMHgwMiwweDIyLDB4NWUsMHhlNSwweDVhLDB4MjQsMHg4ZSwweDUwLDB4MDMsMHgwMiwweDIyLAotMHg1ZSwweDg1LDB4NWEsMHg1ZCwweDc1LDB4NWIsMHgwMCwweGFlLDB4NWEsMHhhZiwweDViLDB4OTAsMHgzNSwweDljLDB4ZTQsMHg5MywKLTB4ZjUsMHg1YywweGU1LDB4NWMsMHgxNSwweDVjLDB4NjQsMHg4MCwweDI0LDB4N2YsMHg1MCwweDE4LDB4ZWUsMHgyNCwweDAwLDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGUwLDB4ZmMsMHhlZiwweDkwLDB4MzUsMHg5YywweDkzLDB4NmMsMHg3MCwweDA0LAotMHgwZSwweDBmLDB4ODAsMHhkZSwweDhlLDB4NWEsMHg4ZiwweDViLDB4ZTUsMHg1YywweDY0LDB4ODAsMHgyNCwweDdmLDB4NDAsMHg2ZSwKLTB4NzUsMHg1ZSwweDAxLDB4NzUsMHg2MCwweGU4LDB4NzUsMHg1ZiwweGZmLDB4ZTUsMHg1ZCwweDI0LDB4MDIsMHhmNSwweDVhLDB4NzUsCi0weDVjLDB4MDcsMHhlNSwweDVjLDB4MzMsMHg0MCwweDU3LDB4YWQsMHg2MCwweGFlLDB4NWYsMHhhZiwweDVlLDB4ZTUsMHg1YywweGY1LAotMHg4MiwweDMzLDB4OTUsMHhlMCwweGY1LDB4ODMsMHgxMiwweDAxLDB4ZWMsMHhjNCwweDU0LDB4MGYsMHhmYywweDEyLDB4MjEsMHgzNywKLTB4ZTUsMHg1YSwweDI0LDB4MDAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZiLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgwNSwweDVhLDB4MDUsCi0weDVhLDB4YWQsMHg2MCwweGFlLDB4NWYsMHhhZiwweDVlLDB4ZTUsMHg1YywweGY1LDB4ODIsMHgzMywweDk1LDB4ZTAsMHhmNSwweDgzLAotMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHgxMiwweDIxLDB4MzcsMHhlNSwweDVhLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmYiwweGY1LDB4ODMsMHhlYywweGYwLDB4MDUsMHg1YSwweDA1LDB4NWEsMHgxNSwweDVjLDB4ODAsMHhhNCwweDc0LDB4MDIsCi0weDkwLDB4ZjgsMHg1MSwweGYwLDB4OTAsMHhmOCwweDZiLDB4NzksMHg3NSwweDdhLDB4MzUsMHg3YiwweDI3LDB4NzgsMHgwMSwweDEyLAotMHgwMywweGY1LDB4NzUsMHg2YSwweDM1LDB4NzUsMHg2OSwweGZjLDB4NzUsMHg2OCwweDAxLDB4ZTQsMHg5MCwweGZmLDB4ODMsMHhmMCwKLTB4NzQsMHg4MCwweDkwLDB4ZmYsMHg4MSwweGYwLDB4NzUsMHg1OSwweDAyLDB4ZTUsMHg1OSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsCi0weDdmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OGYsMHhmNiwweGZjLDB4NTQsMHgwZiwweDE0LAotMHhmYywweDc4LDB4OGYsMHhlYywweGY2LDB4ZTUsMHg1OSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg4MSwweGY1LDB4ODIsMHhlNCwKLTB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OTIsMHg3NiwweGZkLDB4MDgsMHg3NiwweGU4LDB4ZmMsMHg3OCwweDhmLDB4ZTYsCi0weDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LAotMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYywKLTB4ZjAsMHg3OCwweDkyLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHg3ZSwweDAzLDB4Y2YsMHhjMywweDEzLDB4Y2YsMHgxMywweGRlLDB4ZjksCi0weGZlLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAotMHg4MywweGVlLDB4ZjAsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4NzgsMHg5MCwweGVjLDB4ZjYsMHg3ZCwweDAwLDB4NzgsMHg5MywweGU2LDB4MmMsCi0weGY2LDB4MTgsMHhlNiwweDNkLDB4ZjYsMHg3OCwweDkyLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHg3YywweDAzLDB4Y2QsMHhjMywweDEzLAotMHhjZCwweDEzLDB4ZGMsMHhmOSwweGZjLDB4NzgsMHg4ZiwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwKLTB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweDhmLDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OTIsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLAotMHg3OCwweDhmLDB4ZTYsMHhmZiwweDdlLDB4MDAsMHhlZSwweDI0LDB4ZmUsMHg1MCwweDAzLDB4MDIsMHgyNCwweGRkLDB4ZTQsMHhlZSwKLTB4NzUsMHhmMCwweDA3LDB4YTQsMHgyNCwweDdmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsCi0weGVmLDB4NTQsMHg4MCwweGZhLDB4ZTQsMHhlZiwweDU0LDB4MGYsMHgxNCwweGZmLDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywweGE0LAotMHgyNCwweDgxLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmOCwweGY1LDB4ODMsMHhlMCwweDc4LDB4OTAsMHhmNiwweGU0LDB4ZWUsMHgxMywKLTB4MTMsMHg1NCwweDgwLDB4MjQsMHhmMCwweGY4LDB4ZTQsMHgzNCwweGZkLDB4ZjksMHhlOCwweGZjLDB4ZTksMHhmZCwweDhhLDB4NWEsCi0weGVhLDB4NzAsMHgwMywweDAyLDB4MjQsMHg0YSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OTAsMHhlNiwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwKLTB4YTQsMHgyNCwweDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZWQsMHhmYiwweGVjLDB4N2EsCi0weDAzLDB4Y2IsMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LAotMHg0OSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweDc4LDB4OTAsMHhlNiwweDdiLDB4MDAsMHhmYSwKLTB4ZWMsMHgyYSwweGZjLDB4ZWQsMHgzYiwweGZkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsCi0weGY5LDB4ZmEsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LAotMHg4MywweGVhLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwKLTB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4MDIsMHgyNCwweGQ5LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LAotMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg5MCwweGU2LDB4ZmEsMHhlNCwKLTB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsCi0weGVkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LAotMHhmMCwweDA4LDB4YTQsMHgyNCwweDA5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg5MCwKLTB4ZTYsMHg3YiwweDAwLDB4ZmEsMHhlYywweDJhLDB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsCi0weDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGQsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDBlLDB4MDIsMHgyMywweDY2LDB4OGUsMHg1OSwweDc4LAotMHg5MiwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg3OCwweDhmLDB4ZWYsMHhmNiwweDEyLDB4MjAsMHg1NSwweDIyLDB4OGMsMHgyNiwKLTB4ZWMsMHgzMCwweGU3LDB4MTgsMHhlNSwweDI2LDB4NTQsMHgwZiwweDE0LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLDB4ODAsMHgxNiwweGU1LDB4MjYsMHg1NCwweDBmLAotMHgxNCwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwKLTB4ZGYsMHhmMCwweDIyLDB4N2MsMHgwMCwweDIyLDB4ZWMsMHg5MCwweGZjLDB4MzcsMHhmMCwweDhjLDB4MjQsMHhlZCwweDI0LDB4MDMsCi0weGY1LDB4MjUsMHg3ZCwweDAwLDB4ZDMsMHg5NSwweDcyLDB4ZWQsMHg5NSwweDcxLDB4NDAsMHgwMywweDg1LDB4NzIsMHgyNSwweGU1LAotMHgyNSwweDI0LDB4YjcsMHg1MCwweDA5LDB4NzUsMHgyNSwweDAzLDB4NzQsMHgwMiwweDkwLDB4ZmMsMHgzNywweGYwLDB4YWMsMHgyNSwKLTB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNCwweGY1LDB4NmMsMHhmNSwweDZiLDB4MTIsMHgyNSwweDVkLDB4MjIsMHg5MCwweGZjLDB4MzUsCi0weGUwLDB4NjUsMHg3MywweDYwLDB4MGUsMHg3NCwweDA0LDB4OTAsMHhmYywweDM3LDB4ZjAsMHhlNCwweGY1LDB4NmIsMHg3NSwweDZjLAotMHgwMywweDgwLDB4NDYsMHg3ZCwweDczLDB4ZTQsMHhmZSwweGZmLDB4NzksMHgzNSwweDdhLDB4ZmMsMHg3YiwweDAxLDB4NzQsMHgwNSwKLTB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweGU1LDB4NmMsMHgyNCwweDAzLDB4ZjUsMHg2YywweGU1LDB4NmIsMHgzNCwweDAwLDB4ZjUsCi0weDZiLDB4ZTUsMHg2YywweGQzLDB4OTUsMHg3MiwweGU1LDB4NmIsMHg5NSwweDcxLDB4NDAsMHgwNiwweDg1LDB4NzIsMHg2YywweDg1LAotMHg3MSwweDZiLDB4ZDMsMHhlNSwweDZjLDB4OTQsMHg0OCwweGU1LDB4NmIsMHg5NCwweDAwLDB4NDAsMHgwYywweDc0LDB4MDIsMHg5MCwKLTB4ZmMsMHgzNywweGYwLDB4ZTQsMHhmNSwweDZiLDB4NzUsMHg2YywweDAzLDB4YWMsMHg2YywweDEyLDB4MzAsMHgyNCwweDIyLDB4ZWMsCi0weDkwLDB4ZmMsMHgzNywweGYwLDB4ZTQsMHhmNSwweDZjLDB4ZjUsMHg2YiwweDhjLDB4MzIsMHhlYywweDYwLDB4MDUsMHgxMiwweDMwLAotMHgxNSwweDgwLDB4MDUsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwKLTB4YjIsMHhiMywweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZjUsMHg0YSwweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmQsMHhhMywweGUwLDB4ZWQsCi0weDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwNiwweGUwLDB4ZmYsMHhhMywweGUwLDB4N2UsMHgwMCwweGZmLAotMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4YzMsMHhlYywweDk0LDB4NDgsMHhlZCwweDk0LDB4MDAsMHg1MCwKLTB4MjIsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsCi0weGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZmMsMHhlZCwweDRmLAotMHhmZCwweDgwLDB4MDQsMHhlNCwweGZkLDB4N2MsMHg0OCwweDhjLDB4NzIsMHg4ZCwweDcxLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZCwKLTB4YTMsMHhlMCwweGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4OTAsMHhmZiwweDAyLDB4ZTAsMHhmZiwweGEzLDB4ZTAsCi0weDdlLDB4MDAsMHhmZiwweGU0LDB4ZmUsMHhlYywweDRlLDB4ZjUsMHg0YywweGVkLDB4NGYsMHhmNSwweDRiLDB4NzUsMHg2YSwweDM1LAotMHg3NSwweDY5LDB4ZmMsMHg3NSwweDY4LDB4MDEsMHg3ZCwweDM1LDB4N2UsMHhmYywweDdmLDB4MDEsMHg3OSwweDczLDB4ZTQsMHhmYSwKLTB4ZmIsMHg3NCwweDA1LDB4NzgsMHgwMCwweDEyLDB4MDMsMHgzZiwweDc1LDB4NDksMHgwMCwweGU1LDB4NDksMHgyNCwweGZlLDB4NDAsCi0weDE5LDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHgwNSwweDQ5LDB4MGQsMHhlZCwweDcwLAotMHgwMSwweDBlLDB4OGQsMHg2YSwweDhlLDB4NjksMHg4ZiwweDY4LDB4ODAsMHhlMSwweDc1LDB4NmEsMHgzNSwweDc1LDB4NjksMHhmYywKLTB4NzUsMHg2OCwweDAxLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDYwLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsCi0weDAzLDB4MDIsMHgyYywweDZkLDB4ZTUsMHg0YSwweDU0LDB4MGYsMHhmNSwweDQ5LDB4ZTUsMHg0YSwweDU0LDB4ODAsMHhhMiwweGUwLAotMHg5MiwweDAyLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4ODEsMHgwMCwweDBiLDB4MmMsMHg2OCwweDI2LDB4ZTUsMHgyOCwKLTB4MDMsMHgyYywweDY4LDB4MjksMHgwZiwweDJjLDB4NjgsMHgyOSwweGYyLDB4MmEsMHgyNiwweDJiLDB4OGQsMHgyYiwweDkwLDB4MmIsCi0weGQwLDB4MmMsMHgxMSwweDJjLDB4M2YsMHhlNSwweDZkLDB4MzAsMHhlNywweDBlLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LAotMHhlNSwweDcyLDB4NjQsMHgwMiwweDQ1LDB4NzEsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwKLTB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI4LDB4MDAsCi0weGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3OCwweGFkLDB4ZTYsMHgzMCwweGUwLAotMHgwYiwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDc0LDB4MDIsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLDB4MTIsMHgzMCwKLTB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWIsMHhlNSwweDZkLDB4MjAsMHhlMSwweDA3LDB4ZTUsCi0weDRhLDB4NjAsMHgwMywweDAyLDB4MjgsMHgwMCwweGU1LDB4NGEsMHgyNCwweGZlLDB4NTAsMHgwMywweDAyLDB4MjgsMHgwMCwweDdjLAotMHgwMiwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MjcsMHhmZSwKLTB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwZCwweGU1LDB4NGEsMHg2MCwweDA5LDB4ZTUsMHg0YSwweDY0LDB4ODAsMHg2MCwweDAzLDB4MDIsCi0weDI4LDB4MDAsMHhhYywweDRhLDB4MTIsMHgzMCwweGFiLDB4NDAsMHgwMywweDAyLDB4MjgsMHgwMCwweGU1LDB4NDksMHg3MCwweDI1LAotMHgzMCwweDAyLDB4MTEsMHg5MCwweGZmLDB4ODAsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsMHgxMiwKLTB4MDMsMHgwZiwweDgwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwweGFmLDB4NjgsCi0weDEyLDB4MDMsMHgwZiwweDgwLDB4M2QsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDFkLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LAotMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDZhLDB4YWUsMHg2OSwKLTB4YWYsMHg2OCwweDEyLDB4MDMsMHgwZiwweDgwLDB4MWIsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsCi0weDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwOCwweGFkLDB4NmEsMHhhZSwweDY5LDB4YWYsMHg2OCwweDEyLAotMHgwMywweDBmLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsMHgwMSwweGU2LDB4NjAsMHgwYiwweGFkLDB4NmEsMHhhZSwKLTB4NjksMHhhZiwweDY4LDB4NzQsMHgwMSwweDEyLDB4MDMsMHgwZiwweDdjLDB4MDIsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDAsCi0weDAyLDB4MmMsMHg2YSwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHhlNSwweDcyLDB4NDUsMHg3MSwweDYwLDB4MDMsMHgwMiwweDJjLAotMHg2YSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwKLTB4NGMsMHgxNCwweDQ1LDB4NGIsMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHg3OCwweGFkLDB4ZTYsCi0weDU0LDB4ZmUsMHhmNiwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLAotMHgyYSwweGU1LDB4NmQsMHgyMCwweGUxLDB4MDgsMHhlNSwweDZkLDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweDBjLDB4ZTUsMHg2ZCwKLTB4MzAsMHhlMCwweDA0LDB4ZTUsMHg0YSwweDcwLDB4MGIsMHhlNSwweDZkLDB4MzAsMHhlMSwweDA5LDB4ZTUsMHg0YSwweDI0LDB4ZmUsCi0weDUwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDA2LAotMHhkMywweDUwLDB4MDMsMHgwMiwweDI5LDB4MGEsMHhlNSwweDRjLDB4NDUsMHg0YiwweDYwLDB4MDMsMHgwMiwweDI5LDB4MGMsMHhhYywKLTB4NGEsMHgxMiwweDMwLDB4YWIsMHg0MCwweDAzLDB4MDIsMHgyOSwweDBjLDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwNywweGU1LDB4NmQsCi0weDIwLDB4ZTAsMHgwMiwweDgwLDB4NzcsMHhlNSwweDZkLDB4MzAsMHhlMCwweDA2LDB4ZTUsMHg0OSwweDYwLDB4MDIsMHg4MCwweDZjLAotMHhlNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHg4MiwweGUwLDB4NTQsMHhmNywweGYwLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg1NCwKLTB4ZjcsMHhmMCwweDIyLDB4ZTUsMHg0OSwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwweDAxLDB4N2MsCi0weDAzLDB4MTIsMHgwZiwweDA5LDB4ODAsMHgxMSwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDksMHg3ZCwweDAxLAotMHg3YywweDA0LDB4MTIsMHgwZiwweDA5LDB4ODAsMHgwMCwweDE1LDB4NDksMHgzMCwweDAyLDB4MTUsMHhlNSwweDQ5LDB4NzUsMHhmMCwKLTB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhmNywweGYwLDB4ODAsCi0weDEzLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLAotMHhlMCwweDU0LDB4ZjcsMHhmMCwweDdjLDB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4NmEsMHhlNSwKLTB4NmQsMHgyMCwweGU3LDB4MDYsMHhlNSwweDcyLDB4NDUsMHg3MSwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHg5MCwweGZmLDB4MDAsCi0weGUwLDB4NTQsMHgxZiwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MWEsMHhlNSwweDRjLDB4MTQsMHg0NSwweDRiLAotMHg3MCwweDA0LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI5LDB4ZWYsMHg3OCwweGFkLDB4ZTYsMHg0NCwweDAxLDB4ZjYsMHg3YywKLTB4MDAsMHgxMiwweDMwLDB4MjQsMHgyMiwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MjksMHhlNSwweDZkLDB4MjAsCi0weGUxLDB4MDgsMHhlNSwweDZkLDB4MjAsMHhlMCwweDAzLDB4MDIsMHgyOSwweGVmLDB4ZTUsMHg2ZCwweDMwLDB4ZTAsMHgwNCwweGU1LAotMHg0OSwweDcwLDB4MGIsMHhlNSwweDZkLDB4MzAsMHhlMSwweDA4LDB4ZTUsMHg0OSwweDI0LDB4ZmUsMHg1MCwweDAyLDB4ODAsMHg3ZiwKLTB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHg2ZiwweGU1LDB4NGMsCi0weDQ1LDB4NGIsMHg2MCwweDAyLDB4ODAsMHg2OSwweGFjLDB4NGEsMHgxMiwweDMwLDB4YWIsMHg0MCwweDAyLDB4ODAsMHg2MCwweGU1LAotMHg2ZCwweDIwLDB4ZTEsMHgwNywweGU1LDB4NmQsMHgyMCwweGUwLDB4MDIsMHg4MCwweDU0LDB4ZTUsMHg0OSwweDcwLDB4MTQsMHgzMCwKLTB4MDIsMHgwOSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4ODAsMHgwNywweDkwLDB4ZmYsMHg4MiwweGUwLDB4NDQsCi0weDA4LDB4ZjAsMHgyMiwweGU1LDB4NmQsMHgzMCwweGUxLDB4MzMsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsMHg0OSwweDc1LAotMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDQ0LDB4MDgsMHhmMCwKLTB4ODAsMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCi0weDgzLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHg4MCwweDAyLDB4ODAsMHgwMCwweDAyLAotMHgyYywweDZhLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxMiwweGU1LDB4NzIsMHg0NSwweDcxLDB4NzAsMHgwYywweGU1LDB4NGEsMHg3MCwKLTB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4ZTUsMHg0YywweDkwLDB4ZmYsCi0weGZmLDB4ZjAsMHg5MCwweGZmLDB4ZmYsMHhlMCwweDYwLDB4MDUsMHg0MywweDZkLDB4MDEsMHg4MCwweDAzLDB4NTMsMHg2ZCwweGZlLAotMHg3YywweDAwLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNSwweDZkLDB4MzAsMHhlNywweDBlLDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg2MCwKLTB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywweDZhLDB4YWQsMHg0YiwweGU1LDB4NGMsCi0weGVkLDB4N2QsMHgwMCwweGZjLDB4N2QsMHgwMCwweGZjLDB4YmQsMHgwMCwweDAyLDB4ODAsMHgwMywweDAyLDB4MmIsMHg4OCwweGI0LAotMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgzMiwweGU1LDB4NGEsMHg3MCwweDA1LDB4ZTUsMHg0YywweGZjLDB4NjAsMHgwMywKLTB4MDIsMHgyYiwweDhhLDB4NzUsMHg2YSwweDQwLDB4NzUsMHg2OSwweGY4LDB4NzUsMHg2OCwweDAxLDB4ZDMsMHhlNSwweDcyLDB4OTQsCi0weDEyLDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MTIsMHg4MCwweDA0LDB4YWMsMHg3MiwweGFkLAotMHg3MSwweDhjLDB4NzAsMHg4ZCwweDZmLDB4MTIsMHgzMCwweDM5LDB4MjIsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKLTB4NTksMHhlNSwweDRhLDB4NjAsMHgwMywweDAyLDB4MmIsMHg4YSwweGU1LDB4NGMsMHhmYywweDcwLDB4MjcsMHg3NSwweDZhLDB4NTIsCi0weDc1LDB4NjksMHhmOCwweDc1LDB4NjgsMHgwMSwweGQzLDB4ZTUsMHg3MiwweDk0LDB4MTksMHhlNSwweDcxLDB4OTQsMHgwMCwweDQwLAotMHgwNiwweGU0LDB4ZmQsMHg3YywweDE5LDB4ODAsMHgwNCwweGFjLDB4NzIsMHhhZCwweDcxLDB4OGMsMHg3MCwweDhkLDB4NmYsMHgxMiwKLTB4MzAsMHgzOSwweDgwLDB4MjUsMHg3NSwweDZhLDB4NmIsMHg3NSwweDY5LDB4ZjgsMHg3NSwweDY4LDB4MDEsMHhkMywweGU1LDB4NzIsCi0weDk0LDB4MjcsMHhlNSwweDcxLDB4OTQsMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgyNywweDgwLDB4MDQsMHhhYywweDcyLAotMHhhZCwweDcxLDB4OGMsMHg3MCwweDhkLDB4NmYsMHgxMiwweDMwLDB4MzksMHgyMiwweGI0LDB4MDMsMHgwMiwweDgwLDB4MDYsMHhkMywKLTB4NTAsMHgwMywweDAyLDB4MmIsMHg4OCwweGU1LDB4NGMsMHhmNSwweDQ5LDB4NzAsMHgwZiwweDkwLDB4ZmYsMHgwNCwweGUwLDB4ZmQsCi0weGEzLDB4ZTAsMHg0ZCwweDYwLDB4MDMsMHgwMiwweDJiLDB4OGEsMHg4MCwweDE4LDB4OTAsMHhmYiwweDAyLDB4ZTAsMHhmZCwweGEzLAotMHhlMCwweGZjLDB4OTAsMHhmZiwweDA1LDB4ZTAsMHg2YywweDcwLDB4MDcsMHg5MCwweGZmLDB4MDQsMHhlMCwweDZkLDB4NjAsMHgwMiwKLTB4ODAsMHg2OCwweGU0LDB4ZjUsMHg3MCwweGY1LDB4NmYsMHg3ZiwweDAwLDB4ZTUsMHg0OSwweDE0LDB4YzUsMHg0OSwweDYwLDB4MGYsCi0weGVmLDB4MjQsMHgwMCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmIsMHhmNSwweDgzLDB4ZTAsMHgyZiwweGZmLDB4ODAsMHhlYSwweDhmLAotMHg0YSwweGU1LDB4NGEsMHgyNCwweDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhkMywKLTB4OTUsMHg3MiwweGVkLDB4OTUsMHg3MSwweDQwLDB4MDYsMHhhYywweDcyLDB4YWQsMHg3MSwweDgwLDB4MGYsMHhlNSwweDRhLDB4MjQsCi0weDAwLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYiwweGY1LDB4ODMsMHhlMCwweDdkLDB4MDAsMHhmYywweDhjLDB4NzAsMHg4ZCwweDZmLAotMHhlNSwweDRhLDB4MjQsMHgwMCwweGZjLDB4ZTQsMHgzNCwweGZiLDB4ZmQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OGQsMHg2YSwKLTB4OGUsMHg2OSwweDhmLDB4NjgsMHgxMiwweDMwLDB4MzksMHgyMiwweDgwLDB4MDAsMHgwMiwweDJjLDB4NmEsMHgwMiwweDJjLDB4NmEsCi0weGU1LDB4NmQsMHgzMCwweGU3LDB4MTksMHhlNSwweDcyLDB4MTQsMHg0NSwweDcxLDB4NzAsMHgxMiwweGU1LDB4NGEsMHg3MCwweDBlLAotMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDgsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHg2MCwweDAzLDB4MDIsMHgyYywKLTB4NmEsMHhlNSwweDZkLDB4MjAsMHhlMCwweDA4LDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwMywweDAyLDB4MmMsMHg2YSwweDc1LDB4NmEsCi0weDZlLDB4ZTQsMHhmNSwweDY5LDB4ZjUsMHg2OCwweGU0LDB4ZjUsMHg2ZiwweDA0LDB4ZjUsMHg3MCwweDEyLDB4MzAsMHgzOSwweDIyLAotMHhlNSwweDZkLDB4MjAsMHhlNywweDEyLDB4ZTUsMHg3MiwweDQ1LDB4NzEsMHg3MCwweDBjLDB4ZTUsMHg0YSwweDcwLDB4MDgsMHg5MCwKLTB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLDB4NmEsMHhlNSwweDZkLDB4MjAsMHhlMCwweDA3LDB4ZTUsCi0weDZkLDB4MjAsMHhlMSwweDAyLDB4ODAsMHg3NCwweDg1LDB4NGMsMHg2ZSwweGU1LDB4NmUsMHg3MCwweDA4LDB4NDMsMHg2ZCwweDAxLAotMHg1MywweDZkLDB4ZmQsMHg4MCwweDA2LDB4NTMsMHg2ZCwweGZlLDB4NDMsMHg2ZCwweDAyLDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwKLTB4MjIsMHhlNSwweDZkLDB4MzAsMHhlNywweDFhLDB4ZTUsMHg3MiwweDE0LDB4NDUsMHg3MSwweDcwLDB4MTMsMHhlNSwweDRhLDB4NzAsCi0weDBmLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4MTQsMHg2MCwweDAyLAotMHg4MCwweDM4LDB4ZTUsMHg2ZCwweDIwLDB4ZTEsMHgwMiwweDgwLDB4MzEsMHg3YywweDAxLDB4MTIsMHgzMCwweDI0LDB4MjIsMHhlNSwKLTB4NmQsMHgyMCwweGU3LDB4MTUsMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MGYsMHhlNSwweDRjLDB4NDUsMHg0YiwweDcwLDB4MDksCi0weDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwweDgwLDB4MGYsMHhlNSwweDZkLDB4MjAsMHhlMSwweDAyLAotMHg4MCwweDA4LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4ODAsMHgwMCwweDAyLDB4MmYsMHgyYiwweGI0LDB4NDAsMHgwMiwKLTB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MmYsMHgyMSwweDkwLDB4ZmYsMHgwMSwweGUwLDB4OTAsMHhmYywweDM1LDB4ZjAsCi0weGU1LDB4NGEsMHg5MCwweGZjLDB4MzYsMHhmMCwweGU0LDB4OTAsMHhmYywweDM3LDB4ZjAsMHhlNSwweDZhLDB4MjQsMHgwMywweGY1LAotMHg2YSwweGU1LDB4NjksMHgzNCwweDAwLDB4ZjUsMHg2OSwweGFkLDB4NGIsMHhlNSwweDRjLDB4ODUsMHg2YSwweDgyLDB4ODUsMHg2OSwKLTB4ODMsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwweDAxLDB4YjcsMHgyYywweGQ4LDB4MDEsCi0weDJjLDB4ZmUsMHgwMiwweDJkLDB4MjgsMHgwMywweDJkLDB4NTIsMHgwNCwweDJkLDB4YTAsMHgwNSwweDJkLDB4ZGQsMHgwNiwweDJlLAotMHgwMywweDA3LDB4MmUsMHgyOSwweDA4LDB4MmUsMHg1NSwweDA5LDB4MmUsMHg3YiwweDBiLDB4MmUsMHhhMSwweDBjLDB4MmUsMHhiMCwKLTB4ODAsMHgyZSwweGIwLDB4ODEsMHgwMCwweDAwLDB4MmYsMHgwZSwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA1LDB4MTIsCi0weDI1LDB4YmYsMHgyMiwweDdkLDB4MjQsMHg3ZSwweDM1LDB4N2YsMHgwMiwweDc5LDB4MzgsMHg3YSwweGZjLDB4N2IsMHgwMSwweDc0LAotMHgwOCwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHg3ZCwweDA4LDB4N2MsMHgwMCwweDEyLDB4MjUsMHgyNiwweDIyLDB4ZTUsMHg2ZCwKLTB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsCi0weGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMCwweDEyLDB4MzEsMHhmYiwweDIyLAotMHg3ZCwweDAwLDB4N2MsMHgwNywweDEyLDB4MjUsMHgyNiwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwKLTB4MjUsMHhiZiwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsCi0weDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMSwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2QsMHgwMCwweDdjLDB4MDcsMHgxMiwweDI1LAotMHgyNiwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LDB4NGEsMHhiNCwKLTB4MDUsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MGEsMHgxMiwweDMxLDB4ZmIsCi0weDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwOCwweDEyLAotMHgzMSwweGZiLDB4MjIsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwKLTB4MDAsMHhmZSwweDdjLDB4MTMsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDdkLDB4MDAsMHg3YywweDA3LDB4MTIsMHgyNSwweDI2LDB4MjIsCi0weGU1LDB4NmQsMHgyMCwweGU3LDB4MzQsMHhkMywweGU1LDB4NzIsMHg5NCwweDQ4LDB4ZTUsMHg3MSwweDk0LDB4MDAsMHg1MCwweDA2LAotMHhlNSwweDcyLDB4NDUsMHg3MSwweDcwLDB4MDYsMHg3YywweDAyLDB4MTIsMHgyNSwweGJmLDB4MjIsMHhlNSwweDRhLDB4YjQsMHgwMSwKLTB4MDMsMHhiMywweDQwLDB4MGIsMHhjMywweGI0LDB4MDMsMHgwMCwweDQwLDB4MDksMHhiNCwweDA2LDB4MDAsMHg1MCwweDA0LDB4MTIsCi0weDMwLDB4ZDEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLAotMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwKLTB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNiwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsCi0weDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LAotMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE5LDB4MTIsMHgzMSwweGZiLDB4MjIsMHg3YywKLTB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgyMywweDc0LDB4ODEsCi0weDkwLDB4ZmYsMHg5MywweGYwLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLAotMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNywweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwKLTB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsCi0weDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE4LDB4MTIsMHgzMSwweGZiLAotMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4YmYsMHgyMiwweDEyLDB4MjUsMHg1ZCwweDIyLDB4ZTUsMHg2ZCwweDIwLDB4ZTcsMHgxZCwKLTB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsCi0weGZlLDB4N2MsMHgxNSwweDEyLDB4MzEsMHhmYiwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4MTIsMHgyNSwweDVkLAotMHgyMiwweGU1LDB4NmQsMHgyMCwweGU3LDB4MDYsMHg3YywweDA3LDB4MTIsMHgyNSwweGJmLDB4MjIsMHgxMiwweDI1LDB4NWQsMHgyMiwKLTB4ZTUsMHg2ZCwweDMwLDB4ZTcsMHgyMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDcwLDB4MTAsMHg5MCwweGZmLDB4MDEsCi0weGUwLDB4YjQsMHg4MCwweDA1LDB4MTIsMHgyNSwweDU0LDB4ODAsMHgwMywweDEyLDB4MjUsMHg1ZCwweDIyLDB4N2QsMHgwMCwweDdjLAotMHgwNSwweDEyLDB4MjUsMHgyNiwweDIyLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwNiwweDdjLDB4MDUsMHgxMiwKLTB4MjUsMHhiZiwweDIyLDB4ZDMsMHhlNSwweDcyLDB4OTQsMHg0OCwweGU1LDB4NzEsMHg5NCwweDAwLDB4NTAsMHgwYiwweGMzLDB4ZTUsCi0weDcyLDB4OTQsMHgwNywweGU1LDB4NzEsMHg5NCwweDAwLDB4NTAsMHgwNiwweDdjLDB4MDMsMHgxMiwweDI1LDB4YmYsMHgyMiwweGU1LAotMHg0YSwweGI0LDB4MDUsMHgwNCwweDEyLDB4MzAsMHhkMSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHhiZiwweDIyLDB4ZTUsMHg2ZCwKLTB4MzAsMHhlNywweDA4LDB4N2QsMHgwMCwweDdjLDB4MDUsMHgxMiwweDI1LDB4MjYsMHgyMiwweDdjLDB4MDUsMHgxMiwweDI1LDB4YmYsCi0weDIyLDB4YjQsMHgyMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDgwLDB4MDAsMHgxMiwweDJmLDB4ZmYsMHgyMiwweDc1LAotMHg0MywweDAwLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZDMsMHg5NSwweDQzLDB4NDAsMHgyNCwweGU1LDB4NDMsMHgyNCwKLTB4ZjAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZlLDB4ZjUsMHg4MywweGUwLDB4YWQsMHg2YSwweGFlLDB4NjksMHhhZiwweDY4LDB4MTIsCi0weDAzLDB4MGYsMHgwNSwweDQzLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NmEsMHg4ZSwweDY5LDB4OGYsMHg2OCwweDgwLAotMHhkMSwweGU1LDB4NDMsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NzAsMHg5YywweGY1LDB4NzAsMHhlNSwweDZmLDB4OWQsMHhmNSwKLTB4NmYsMHhlNSwweDcwLDB4NDUsMHg2ZiwweDYwLDB4MDYsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsCi0weGUwLDB4NDQsMHgwOCwweGYwLDB4ZTQsMHhmNSwweDZmLDB4NzUsMHg3MCwweDQ5LDB4OTAsMHhmYywweDM1LDB4ZTAsMHhiNCwweDA1LAotMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NDAsMHg5MCwweGZjLDB4MzYsMHhlMCwweGY1LDB4NDMsMHhiNCwweDA1LDB4MDIsMHg4MCwKLTB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MGIsMHgxMiwweDMxLDB4ZmIsMHgyMiwweGI0LDB4MDEsCi0weDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwOSwweDEyLDB4MzEsMHhmYiwweDIyLAotMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NDMsMHg3ZiwweDAwLDB4ZmUsMHg3YywKLTB4MTQsMHgxMiwweDMxLDB4ZmIsMHgyMiwweDIyLDB4YjQsMHg4MCwweDAwLDB4NDAsMHgyMywweGI0LDB4ODIsMHgwMCwweDUwLDB4MWUsCi0weDdjLDB4MzUsMHg3ZCwweGZjLDB4MTIsMHgxNywweDdlLDB4N2QsMHgwMCwweDhjLDB4NmMsMHg4ZCwweDZiLDB4OTAsMHhmYywweDM3LAotMHhlMCwweDYwLDB4MDUsMHgxMiwweDJmLDB4ZmYsMHg4MCwweDA1LDB4N2MsMHgwMCwweDEyLDB4MzAsMHgyNCwweDIyLDB4MjIsMHg5MCwKLTB4ZmYsMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLDB4ODAsCi0weGUwLDB4NDQsMHgwOCwweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLAotMHg0NCwweDA4LDB4ZjAsMHgyMiwweDhjLDB4MjMsMHg3ZCwweDAwLDB4OGMsMHg3MCwweDhkLDB4NmYsMHg3NSwweDZhLDB4MzUsMHg3NSwKLTB4NjksMHhmYywweDc1LDB4NjgsMHgwMSwweDEyLDB4MzAsMHgzOSwweDIyLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsCi0weGU1LDB4NzAsMHg2NCwweDQ5LDB4NDUsMHg2ZiwweDcwLDB4MDEsMHgyMiwweGMzLDB4ZTUsMHg3MCwweDk0LDB4MDgsMHhlNSwweDZmLAotMHg5NCwweDAwLDB4NDAsMHgxNSwweDc1LDB4MjEsMHgwOCwweGU1LDB4MjEsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NzAsMHg5YywKLTB4ZjUsMHg3MCwweGU1LDB4NmYsMHg5ZCwweGY1LDB4NmYsMHg4MCwweDA5LDB4ODUsMHg3MCwweDIxLDB4ZTQsMHhmNSwweDZmLDB4NzUsCi0weDcwLDB4NDksMHg3NSwweDIyLDB4MDAsMHhlNSwweDIyLDB4YzMsMHg5NSwweDIxLDB4NTAsMHgyNiwweGFkLDB4NmEsMHhhZSwweDY5LAotMHhhZiwweDY4LDB4MTIsMHgwMSwweGU2LDB4ZmMsMHhlNSwweDIyLDB4MjQsMHhmOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwKLTB4ODMsMHhlYywweGYwLDB4MDUsMHgyMiwweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDZhLDB4OGUsMHg2OSwweDhmLDB4NjgsCi0weDgwLDB4ZDMsMHhlNSwweDIxLDB4NTQsMHg3ZiwweDkwLDB4ZmYsMHg4MSwweGYwLDB4MjIsMHg4YywweDQ4LDB4N2YsMHgwMCwweGVmLAotMHgyNCwweGZkLDB4NDAsMHgxOSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4N2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZjgsMHhmNSwweDgzLDB4ZTAsMHg2NSwweDQ4LDB4NzAsMHgwMiwweGQzLDB4MjIsMHgwZiwweDgwLDB4ZTIsMHg4ZiwweDQ3LDB4YzMsCi0weDIyLDB4ODUsMHg3MiwweDcwLDB4ODUsMHg3MSwweDZmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg5MCwweGZmLAotMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4MjIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywKLTB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweDg2LDB4MDYsMHg1MywweDA2LDB4N2YsMHg3YywweGZmLDB4MTIsMHgzMSwweDViLDB4N2MsCi0weDAwLDB4N2QsMHgwMCwweGU1LDB4N2IsMHg2MCwweDQ2LDB4ZmYsMHg5MCwweGZkLDB4OTUsMHhlMCwweDU0LDB4N2YsMHg2ZSwweDcwLAotMHgwZiwweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4YTMsMHgxNSwweDdiLDB4ODAsMHgwNywKLTB4YTMsMHhhMywweGEzLDB4ZGYsMHhlNiwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweDFlLDB4ZTAsCi0weGY4LDB4YTMsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLAotMHhhMywweGVhLDB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDEyLDB4MzEsMHhmNCwKLTB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHgyMiwweDg1LDB4YTgsMHg3YSwweDc1LDB4YTgsCi0weDg4LDB4ZWMsMHg3MCwweDAyLDB4N2MsMHgzZiwweDhjLDB4NzksMHgyMiwweGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHg3NiwweDAwLAotMHgxMiwweDMyLDB4NDgsMHg4MCwweGZiLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhhZSwKLTB4MDQsMHg3YywweGZmLDB4MTIsMHgzMSwweDViLDB4ZTUsMHg3YiwweDYwLDB4NDIsMHhmZiwweDkwLDB4ZmQsMHg5NSwweGUwLDB4NTQsCi0weDdmLDB4NmUsMHg3MCwweDBiLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHgxNSwweDdiLDB4ODAsMHgwNywweGEzLAotMHhhMywweGEzLDB4ZGYsMHhlYSwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweGQ4LDB4ZTAsMHhmOCwKLTB4YTMsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLDB4YTMsCi0weGVhLDB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDc4LDB4MDgsMHgwOCwweDc5LAotMHgxOCwweDA5LDB4N2MsMHgwMSwweGU2LDB4NTQsMHg3ZiwweDZlLDB4NzAsMHgwNiwweDc2LDB4MDAsMHg3NywweDAwLDB4ODAsMHgwNiwKLTB4MDgsMHgwOSwweDBjLDB4YmMsMHgwOCwweGVlLDB4MTIsMHgzMSwweGY0LDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsCi0weDAxLDB4ZDAsMHgwMCwweDIyLDB4NzUsMHg3OSwweDAwLDB4ODUsMHg3YSwweGE4LDB4MjIsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLAotMHg4MywweGMzLDB4ZTUsMHg3YiwweDI0LDB4ZTgsMHg1MCwweDA1LDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhmNCwweGVjLDB4NjAsMHgzMSwKLTB4OTAsMHgzNSwweDIzLDB4ZTQsMHg5MywweGMzLDB4OWMsMHg0MCwweDI4LDB4YzAsMHgwNCwweDdjLDB4ZmYsMHgxMiwweDMxLDB4NWIsCi0weGQwLDB4MDQsMHg0MywweDA0LDB4ODAsMHhlNSwweDdiLDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZkLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlZiwweGEzLDB4ZjAsMHhlZSwweGEzLDB4ZjAsMHgwNSwweDdiLDB4MTIsMHgzMSwKLTB4ZjQsMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHgyMiwweGMwLDB4MDQsMHg3YywweDIwLDB4ZDIsMHg4YywweGQyLDB4OGQsCi0weGQ1LDB4MDQsMHhmZCwweGQwLDB4MDQsMHgyMiwweDc1LDB4YTgsMHgwMCwweDc1LDB4ODgsMHgwMCwweDc1LDB4YjgsMHgwMCwweDc1LAotMHhmMCwweDAwLDB4NzUsMHhkMCwweDAwLDB4ZTQsMHhmOCwweDkwLDB4MDAsMHgwMCwweGY2LDB4MDgsMHhiOCwweDAwLDB4ZmIsMHgwMiwKLTB4MDAsMHgwMCwweGMzLDB4ZWQsMHg5NCwweDAyLDB4NTAsMHgwNCwweDdkLDB4MDMsMHg3YywweGU4LDB4ZWMsMHhmNCwweGZjLDB4ZWQsCi0weGY0LDB4ZmQsMHgwYywweGJjLDB4MDAsMHgwMSwweDBkLDB4OGMsMHg3ZiwweDhkLDB4N2UsMHgyMiwweGMzLDB4ZWMsMHg5NCwweGJjLAotMHhlZCwweDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwNywweDdjLDB4ZDAsMHhlYywweGY0LDB4ZmMsMHhlZCwweGY0LDB4ZmQsMHgwYywKLTB4YmMsMHgwMCwweDAxLDB4MGQsMHg4YywweDdkLDB4OGQsMHg3YywweDIyLDB4ZWMsMHg3MCwweDAxLDB4MjIsMHhjMCwweDAwLDB4ZTUsCi0weDc4LDB4MjQsMHgxOCwweGY4LDB4YTYsMHgwNCwweGU1LDB4NzgsMHgyNCwweDA4LDB4ZjgsMHhjNiwweDU0LDB4N2YsMHhmNiwweGU2LAotMHgzMCwweGU3LDB4MDMsMHhkMCwweDAwLDB4MjIsMHgxMiwweDMyLDB4NDgsMHg4MCwweGY0LDB4YzIsMHg4YywweDg1LDB4N2MsMHg4YywKLTB4ODUsMHg3ZCwweDhhLDB4ZDIsMHg4YywweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsCi0weDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweDEyLAotMHgxYSwweGQxLDB4ZTUsMHg3OCwweDI0LDB4MDgsMHhmOCwweGU2LDB4NjAsMHgyNCwweGU1LDB4NzgsMHgyNCwweDEwLDB4ZjgsMHhhNiwKLTB4ODEsMHhlNSwweDc4LDB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDhkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsCi0weDc4LDB4YWUsMHhlNSwweDgxLDB4MDQsMHhjMywweDk4LDB4ZjksMHhlNiwweGYwLDB4MDgsMHhhMywweGQ5LDB4ZmEsMHg3NCwweDA4LAotMHgyNSwweDc4LDB4ZjgsMHgwNSwweDc4LDB4MDgsMHhlNiwweDU0LDB4ODAsMHg3MCwweDBjLDB4ZTUsMHg3OCwweGI0LDB4MDcsMHhmMywKLTB4NzgsMHgwOCwweDc1LDB4NzgsMHgwMCwweDgwLDB4ZWYsMHhlNSwweDc4LDB4MjQsMHgxMCwweGY4LDB4ODYsMHg4MSwweGU1LDB4NzgsCi0weDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg4ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4NzgsMHhhZSwweGU1LAotMHg4MSwweDA0LDB4YzMsMHg5OCwweGY5LDB4ZTAsMHhmNiwweDA4LDB4YTMsMHhkOSwweGZhLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwKLTB4MDUsMHhkMCwweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsCi0weGYwLDB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLAotMHhjMiwweDhlLDB4ODUsMHg3ZSwweDhkLDB4ODUsMHg3ZiwweDhiLDB4ZDIsMHg4ZSwweDc4LDB4MTksMHg3OSwweDA5LDB4N2EsMHgwNywKLTB4ZTcsMHg3MCwweDA0LDB4YTYsMHgwMCwweDgwLDB4MGIsMHhlNiwweDYwLDB4MDgsMHgxNiwweGU2LDB4NzAsMHgwNCwweGU3LDB4NDQsCi0weDgwLDB4ZjcsMHgwOCwweDA5LDB4ZGEsMHhlYSwweGU1LDB4NzksMHg2MCwweDEzLDB4MTQsMHhmNSwweDc5LDB4NzAsMHgwZSwweGU1LAotMHg3OCwweDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsMHgxMiwweDMxLDB4ZjQsMHhkMiwweDhjLDB4ZDIsMHg4ZCwweGQwLDB4MDIsMHhkMCwKLTB4MDEsMHhkMCwweDAwLDB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweDc1LDB4ODEsMHhhZCwweDc0LDB4MmEsMHg5MCwweGZmLDB4OTMsCi0weGYwLDB4NzUsMHg3ZiwweDMwLDB4NzUsMHg3ZSwweGY4LDB4NzUsMHg3ZCwweDYwLDB4NzUsMHg3YywweGYwLDB4MTIsMHgwNSwweDM2LAotMHgxMiwweDM0LDB4N2MsMHgxMiwweDE3LDB4MzQsMHg5MCwweGZmLDB4OTMsMHhlMCwweDQ0LDB4MDEsMHhmMCwweGIyLDB4YjMsMHgxMiwKLTB4MzQsMHhhNiwweDEyLDB4MzIsMHg1NiwweDgwLDB4ZGEsMHgyMiwweGMwLDB4MDAsMHg3YywweDAxLDB4ZWMsMHgyNCwweDA4LDB4ZjgsCi0weGU2LDB4NjAsMHgwOSwweDBjLDB4YmMsMHgwOCwweGY1LDB4MTIsMHgzMiwweDQ4LDB4ODAsMHhlZSwweGQwLDB4MDAsMHgyMiwweGMwLAotMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMCwweGMwLDB4MDYsMHhjMCwweDA3LDB4ZWQsMHgyNCwweDEwLDB4ZjgsMHg3NiwKLTB4YmMsMHhlZCwweDc1LDB4ZjAsMHgyMSwweGE0LDB4MjQsMHg4ZCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4YzAsCi0weDgyLDB4YzAsMHg4MywweGEzLDB4YTMsMHhlNCwweDc4LDB4MGQsMHhmMCwweGEzLDB4ZDgsMHhmYywweGVjLDB4NTQsMHg3ZiwweDc1LAotMHhmMCwweDAyLDB4YTQsMHgyNCwweGVmLDB4ZjUsMHg4MiwweGU1LDB4ZjAsMHgzNCwweDM0LDB4ZjUsMHg4MywweGU0LDB4OTMsMHhmZSwKLTB4NzQsMHgwMSwweDkzLDB4ZjUsMHg4MiwweDhlLDB4ODMsMHhlNCwweDkzLDB4ZmUsMHg3NCwweDAxLDB4OTMsMHhmZiwweGQwLDB4ODMsCi0weGQwLDB4ODIsMHhlZiwweGYwLDB4YTMsMHhlZSwweGYwLDB4ZWQsMHgyNCwweDA4LDB4ZjgsMHhlYywweDQ0LDB4ODAsMHhmNiwweGQwLAotMHgwNywweGQwLDB4MDYsMHhkMCwweDAwLDB4ZDAsMHg4MywweGQwLDB4ODIsMHhkMCwweGYwLDB4MjIsMHg3NSwweDc4LDB4MDAsMHg3NSwKLTB4N2IsMHgwMCwweDdhLDB4MDgsMHg3OSwweDE4LDB4NzgsMHgwOCwweDc2LDB4MDAsMHg3NywweDAwLDB4MDgsMHgwOSwweGRhLDB4ZjgsCi0weGU0LDB4NzgsMHgwOCwweDc0LDB4ODAsMHg0NCwweDdmLDB4ZjYsMHg3NCwweDAxLDB4NDQsMHgxMCwweGY1LDB4ODksMHg3NSwweGI4LAotMHgwOCwweGQyLDB4YWIsMHhkMiwweGE5LDB4MjIsMHg3NSwweDgxLDB4YWQsMHhkMiwweDhlLDB4ZDIsMHg4YywweGQyLDB4YWYsMHhlNSwKLTB4N2IsMHg2MCwweDMyLDB4ZmYsMHg5MCwweGZkLDB4OTUsMHhlMCwweDU0LDB4ODAsMHg2MCwweDI0LDB4NzgsMHgwOCwweDc5LDB4MDgsCi0weGUwLDB4NTQsMHg3ZiwweGZhLDB4N2IsMHgwMCwweGU2LDB4NTQsMHg3ZiwweGI1LDB4MDIsMHgwMiwweDdiLDB4ZmYsMHgwOCwweGQ5LAotMHhmNSwweGViLDB4NzAsMHgwYywweGVhLDB4ZjAsMHgxMiwweDMzLDB4ZjgsMHhhZCwweDA0LDB4YWMsMHgwMiwweDEyLDB4MzQsMHgwZiwKLTB4YTMsMHhhMywweGEzLDB4ZGYsMHhkMiwweDEyLDB4MzIsMHg0OCwweDgwLDB4YzUsMHg3YywweDAxLDB4N2QsMHgwMCwweDIyLDB4MDQsCi0weGY1LDB4MDQsMHhlOSwweDA0LDB4ZWQsMHgwNCwweGUxLDB4MDQsMHhkZCwweDA0LDB4ZDksMHgwNCwweGU1LDB4MDQsMHhmMSwweDA0LAotMHg5ZCwweDA0LDB4YTEsMHgwNCwweGNkLDB4MDQsMHhkMSwweDA0LDB4OTksMHgwNCwweDk5LDB4MDQsMHg5OSwweDA0LDB4ZDUsMHgwNCwKLTB4YjUsMHgwNCwweGFkLDB4MDQsMHhiMSwweDA0LDB4YTksMHgwNCwweGMxLDB4MDQsMHhiZCwweDA0LDB4YjksMHgwNCwweGM1LDB4MDQsCi0weGM5LDB4MDQsMHhhNSwweDE5LDB4MDEsMHgwMywweDAwLDB4MjIsMHgwMCwweDQ4LDB4MDIsMHgwMCwweDQ4LDB4MGUsMHgzMCwweDE0LAotMHgyMCwweGM4LDB4MWEsMHhkMCwweDE4LDB4MGEsMHgwYywweDA1LDB4MDYsMHgwMiwweDAzLDB4MDEsMHgwMiwweDAwLDB4MDEsMHhjZSwKLTB4MDEsMHg4MSwweDAxLDB4MDAsMHgwMCwweGMwLDB4MDAsMHg4MCwweDAwLDB4NjAsMHgwMCwweDMwLDB4MDAsMHgxOCwweDAwLDB4MTAsCi0weDAwLDB4MDgsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDEsMHgwMCwweDA4LDB4MTgsMHgzOCwweDI4LDB4MGMsMHgwNSwweDEwLAotMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAzLDB4MDEsMHgxMCwweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsMHgwMCwKLTB4MDAsMHhmYiwweGUwLDB4ZmIsMHhmMiwweDA5LDB4MDIsMHgyNywweDAwLDB4MDEsMHgwMiwweDAwLDB4YTAsMHgzMiwweDA5LDB4MDQsCi0weDAwLDB4MDAsMHgwMywweGZmLDB4MDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgxLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LAotMHgwMSwweDAyLDB4NDAsMHgwMCwweDAwLDB4MDcsMHgwNSwweDgzLDB4MDMsMHgwMiwweDAwLDB4MDEsMHgyMiwweDAzLDB4NTQsMHgwMCwKLTB4NTUsMHgwMCwweDUzLDB4MDAsMHg0MiwweDAwLDB4MzMsMHgwMCwweDM0LDB4MDAsMHgzMSwweDAwLDB4MzAsMHgwMCwweDIwLDB4MDAsCi0weDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgwMCwweDAwLAotMHgwMCwweDAwLAotfTsKLQotI2VuZGlmIC8qIGlmbmRlZiBfVElfRldfMzQxMF9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzUwNTIuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV9md181MDUyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjY2Y0MGEuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX2Z3XzUwNTIuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4NSArMCwwIEBACi0vKiB2aTogdHM9OCBzdz04Ci0gKgotICogVEkgNTA1MiBVU0IgU2VyaWFsIERyaXZlciBGaXJtd2FyZSBIZWFkZXIKLSAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgVGV4YXMgSW5zdHJ1bWVudHMKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICovCi0KLSNpZm5kZWYgX1RJX0ZXXzUwNTJfSF8KLSNkZWZpbmUgX1RJX0ZXXzUwNTJfSF8KLQotLyogZmlybXdhcmUgOS8xOC8wNCAqLwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciB0aV9md181MDUyW10gPSB7Ci0weEMxLCAweDM1LAkvKiBmaXJtd2FyZSBpbWFnZSBsZW5ndGggZXhjbHVkaW5nIGhlYWRlciwgbGl0dGxlIGVuZGlhbiAqLwotMHgwMCwgCQkvKiBwbGFjZWhvbGRlciBmb3IgY2hlY2tzdW0gKi8KLQotMHgwMiwweDAwLDB4MWUsMHgwMiwweDFiLDB4MzIsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHgzMiwweDZhLDB4ZmYsMHhmZiwKLTB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4MzMsMHgxNSwweDc1LDB4ODEsCi0weGM4LDB4OTAsMHhmZSwweGYwLDB4ODUsMHg4MywweGEwLDB4MTIsMHgzNCwweDdkLDB4ZWMsMHg0ZCwweDYwLDB4NmEsMHg3OCwweGE1LAotMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsMHg5NiwweGZhLDB4NzgsMHg3OSwweDgwLDB4MDMsMHg3NiwweDAwLDB4MTgsMHhiOCwKLTB4NWYsMHhmYSwweDc4LDB4MjAsMHg4MCwweDAzLDB4NzYsMHgwMCwweDE4LDB4YjgsMHgyMCwweGZhLDB4OTAsMHhmZSwweGU1LDB4YWUsCi0weDgzLDB4YWYsMHg4MiwweDkwLDB4ZmQsMHgwMCwweDEyLDB4MDAsMHhhMSwweDYwLDB4MDUsMHhlNCwweGYwLDB4YTMsMHg4MCwweGY2LAotMHg5MCwweGZlLDB4ZjAsMHhhOCwweDgyLDB4OTAsMHhmZSwweGYwLDB4YTksMHg4MiwweGU4LDB4YzMsMHg5OSwweDUwLDB4MDUsMHg3NiwKLTB4MDAsMHgwOCwweDgwLDB4ZjYsMHg5MCwweDAwLDB4ZmYsMHgxMiwweDAwLDB4YWEsMHg5MCwweDAxLDB4MDMsMHgxMiwweDAwLDB4YWEsCi0weDkwLDB4MDEsMHgwNywweDEyLDB4MDAsMHhhYSwweDkwLDB4MDEsMHgwYiwweDEyLDB4MDAsMHhjOCwweDkwLDB4MDEsMHgxMSwweDEyLAotMHgwMCwweGM4LDB4OTAsMHgwMSwweDE3LDB4MTIsMHgwMCwweGM4LDB4NzUsMHhkMCwweDAwLDB4MTIsMHgzMywweDY3LDB4MDIsMHgwMSwKLTB4MWQsMHhlZiwweDY1LDB4ODIsMHg3MCwweDAzLDB4ZWUsMHg2NSwweDgzLDB4MjIsMHhlNCwweDkzLDB4ZjgsMHg3NCwweDAxLDB4OTMsCi0weGY5LDB4NzQsMHgwMiwweDkzLDB4ZmUsMHg3NCwweDAzLDB4OTMsMHhmNSwweDgyLDB4OGUsMHg4MywweGU4LDB4NjksMHg3MCwweDAxLAotMHgyMiwweGU0LDB4OTMsMHhmNiwweGEzLDB4MDgsMHg4MCwweGY0LDB4ZTQsMHg5MywweGZjLDB4NzQsMHgwMSwweDkzLDB4ZmQsMHg3NCwKLTB4MDIsMHg5MywweGZlLDB4NzQsMHgwMywweDkzLDB4ZmYsMHg3NCwweDA0LDB4OTMsMHhmOCwweDc0LDB4MDUsMHg5MywweGY1LDB4ODIsCi0weDg4LDB4ODMsMHgxMiwweDAwLDB4YTEsMHg3MCwweDAxLDB4MjIsMHhlNCwweDkzLDB4YTMsMHhhOCwweDgzLDB4YTksMHg4MiwweDhjLAotMHg4MywweDhkLDB4ODIsMHhmMCwweGEzLDB4YWMsMHg4MywweGFkLDB4ODIsMHg4OCwweDgzLDB4ODksMHg4MiwweDgwLDB4ZTMsMHgyMSwKLTB4MjEsMHgwNCwweDkyLDB4N2EsMHg3YSwweDA0LDB4OTIsMHhhNiwweGE4LDB4MDQsMHg5MiwweGZlLDB4ZjAsMHgwNCwweDk0LDB4MDQsCi0weDk0LDB4ZmIsMHhmYiwweDA0LDB4OTksMHgwNCwweDk0LDB4ZmIsMHhmYiwweDA0LDB4ZjksMHgwNCwweGY5LDB4ODAsMHhmZSwweGQwLAotMHhmMCwweDMwLDB4ZjAsMHgwOSwweDIwLDB4ZjMsMHgwMywweGY2LDB4ODAsMHgxMCwweGY3LDB4ODAsMHgwZCwweDMwLDB4ZjEsMHgwOSwKLTB4MjAsMHhmMywweDAzLDB4ZjIsMHg4MCwweDA0LDB4ZjMsMHg4MCwweDAxLDB4ZjAsMHgyMCwweGY0LDB4MDQsMHhmYywweGQwLDB4ZTAsCi0weGNjLDB4MjIsMHhjYywweGMwLDB4ZTAsMHgxMiwweDAxLDB4NWEsMHgwMiwweDAxLDB4NGIsMHhiYywweDAwLDB4MDUsMHhkMCwweGYwLAotMHhhYywweGYwLDB4MjIsMHhjMywweDEzLDB4ZGMsMHhmYywweDAyLDB4MDEsMHgyMSwweGJmLDB4MDAsMHgwOSwweGVkLDB4MjUsMHg4MiwKLTB4NzUsMHhmMCwweDAxLDB4ZjgsMHhlNiwweDIyLDB4YmYsMHgwMSwweDBmLDB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsCi0weDgzLDB4ZjUsMHg4MywweDc1LDB4ZjAsMHgwNCwweGUwLDB4MjIsMHhlZCwweDI1LDB4ODIsMHg3NSwweGYwLDB4MDIsMHhmOCwweGUyLAotMHgyMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZjUsMHhmMCwweGMzLDB4ZTQsMHg5MywweGEzLDB4YzUsMHhmMCwweDk1LDB4ZjAsMHhjMCwKLTB4ZTAsMHhjMywweGQwLDB4ZjAsMHhlNCwweDkzLDB4YTMsMHg5NSwweGYwLDB4NDAsMHgxMiwweGEzLDB4YTMsMHhjMywweGU1LDB4ZjAsCi0weDMzLDB4NTAsMHgwMiwweDA1LDB4ODMsMHgyNSwweDgyLDB4ZjUsMHg4MiwweDUwLDB4MDIsMHgwNSwweDgzLDB4NzQsMHgwMSwweDkzLAotMHhjMCwweGUwLDB4ZTQsMHg5MywweGMwLDB4ZTAsMHgyMiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZjUsMHhmMCwweGU0LDB4OTMsMHg3MCwKLTB4MDksMHg3NCwweDAxLDB4OTMsMHg3MCwweDA0LDB4YTMsMHhhMywweDgwLDB4MGMsMHg3NCwweDAyLDB4OTMsMHg2NSwweGYwLDB4NjAsCi0weDA1LDB4YTMsMHhhMywweGEzLDB4ODAsMHhlNywweDc0LDB4MDEsMHg5MywweGMwLDB4ZTAsMHhlNCwweDkzLDB4YzAsMHhlMCwweDIyLAotMHgxMiwweDAyLDB4NWIsMHgwMiwweDAxLDB4ZjIsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAxLDB4ZjIsMHgxMiwweDAyLDB4ZDMsMHgwMiwKLTB4MDEsMHhmMiwweDMwLDB4ZTAsMHgwNywweDIwLDB4ZTMsMHgwMiwweGU2LDB4MjIsMHhlNywweDIyLDB4MzAsMHhlMSwweDA3LDB4MjAsCi0weGUzLDB4MDIsMHhlMiwweDIyLDB4ZTMsMHgyMiwweDMwLDB4ZTIsMHgwMiwweGUwLDB4MjIsMHhlNCwweDkzLDB4MjIsMHgxMiwweDAyLAotMHhkMywweDAyLDB4MDIsMHgxYSwweDEyLDB4MDIsMHhhZiwweDAyLDB4MDIsMHgxYSwweGFiLDB4ZjAsMHgxMiwweDAyLDB4MjQsMHhjYiwKLTB4YzUsMHhmMCwweGNiLDB4MjIsMHgzMCwweGUwLDB4MTAsMHgyMCwweGUzLDB4MDYsMHhlNiwweGY1LDB4ZjAsMHgwOCwweGU2LDB4MjIsCi0weGU3LDB4ZjUsMHhmMCwweDA5LDB4ZTcsMHgxOSwweDIyLDB4MzAsMHhlMSwweDEwLDB4MjAsMHhlMywweDA2LDB4ZTIsMHhmNSwweGYwLAotMHgwOCwweGUyLDB4MjIsMHhlMywweGY1LDB4ZjAsMHgwOSwweGUzLDB4MTksMHgyMiwweDMwLDB4ZTIsMHgwNiwweGUwLDB4ZjUsMHhmMCwKLTB4YTMsMHhlMCwweDIyLDB4ZTQsMHg5MywweGY1LDB4ZjAsMHg3NCwweDAxLDB4OTMsMHgyMiwweGJiLDB4MDAsMHgwMywweDc0LDB4MDksCi0weDIyLDB4YmIsMHgwMSwweDA3LDB4ODksMHg4MiwweDhhLDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiYiwweDAyLDB4MDcsMHg4OSwweDgyLAotMHg4YSwweDgzLDB4NzQsMHgxMCwweDIyLDB4NzQsMHgwYSwweDIyLDB4MDIsMHgwMiwweDdiLDB4YmIsMHgwMCwweDA3LDB4ZTksMHgyNSwKLTB4ODIsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJiLDB4MDEsMHgwZCwweGU5LDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlYSwweDM1LDB4ODMsCi0weGY1LDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiYiwweDAyLDB4MGQsMHhlOSwweDI1LDB4ODIsMHhmNSwweDgyLDB4ZWEsMHgzNSwweDgzLAotMHhmNSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZTksMHgyNSwweDgyLDB4ZjgsMHg3NCwweDAyLDB4MjIsMHgwMiwweDAyLDB4YWYsMHhiZiwKLTB4MDAsMHgwNSwweGVkLDB4ZjgsMHg3NCwweDAxLDB4MjIsMHhiZiwweDAxLDB4MDcsMHg4ZCwweDgyLDB4OGUsMHg4MywweDc0LDB4MDQsCi0weDIyLDB4YmYsMHgwMiwweDA3LDB4OGQsMHg4MiwweDhlLDB4ODMsMHg3NCwweDEwLDB4MjIsMHhlZCwweGY4LDB4NzQsMHgwMiwweDIyLAotMHgwMiwweDAyLDB4ZDMsMHhiZiwweDAwLDB4MDcsMHhlZCwweDI1LDB4ODIsMHhmOCwweDc0LDB4MDEsMHgyMiwweGJmLDB4MDEsMHgwZCwKLTB4ZWQsMHgyNSwweDgyLDB4ZjUsMHg4MiwweGVlLDB4MzUsMHg4MywweGY1LDB4ODMsMHg3NCwweDA0LDB4MjIsMHhiZiwweDAyLDB4MGQsCi0weGVkLDB4MjUsMHg4MiwweGY1LDB4ODIsMHhlZSwweDM1LDB4ODMsMHhmNSwweDgzLDB4NzQsMHgxMCwweDIyLDB4ZWQsMHgyNSwweDgyLAotMHhmOCwweDc0LDB4MDIsMHgyMiwweDAyLDB4MDMsMHgwNywweGMwLDB4ZTAsMHgxMiwweDAyLDB4NWIsMHgwMiwweDAzLDB4MWYsMHhjMCwKLTB4ZTAsMHgxMiwweDAyLDB4YWYsMHgwMiwweDAzLDB4MWYsMHhjMCwweGUwLDB4MTIsMHgwMiwweGQzLDB4MDIsMHgwMywweDFmLDB4MzAsCi0weGUwLDB4MGIsMHgyMCwweGUzLDB4MDQsMHhkMCwweGUwLDB4ZjYsMHgyMiwweGQwLDB4ZTAsMHhmNywweDIyLDB4MzAsMHhlMSwweDBiLAotMHgyMCwweGUzLDB4MDQsMHhkMCwweGUwLDB4ZjIsMHgyMiwweGQwLDB4ZTAsMHhmMywweDIyLDB4ZDAsMHhlMCwweGYwLDB4MjIsMHhjOSwKLTB4Y2QsMHhjOSwweGNhLDB4Y2UsMHhjYSwweGNiLDB4Y2YsMHhjYiwweDEyLDB4MDMsMHg1MiwweGVkLDB4ZjksMHhlZSwweGZhLDB4ZWYsCi0weGZiLDB4MjIsMHhiYiwweDAwLDB4MmYsMHhiZiwweDAwLDB4MGEsMHhmYSwweGVkLDB4ZjgsMHhlNywweGY2LDB4MDgsMHgwOSwweGRhLAotMHhmYSwweDIyLDB4YmYsMHgwMSwweDEyLDB4OGQsMHg4MiwweDhlLDB4ODMsMHhmOCwweDAyLDB4MDMsMHg2ZiwweDA5LDB4YTMsMHhlNywKLTB4ZjAsMHhkOCwweGZhLDB4MjIsMHgwMiwweDAzLDB4N2EsMHhmYSwweGVkLDB4ZjgsMHhlNywweGYyLDB4MDgsMHgwOSwweGRhLDB4ZmEsCi0weDIyLDB4MDIsMHgwMywweDg0LDB4YmIsMHgwMSwweDRkLDB4YmYsMHgwMCwweDE0LDB4ODksMHg4MiwweDhhLDB4ODMsMHhmOSwweGVkLAotMHhmOCwweDAyLDB4MDMsMHg5NiwweDA4LDB4YTMsMHhlMCwweGY2LDB4ZDksMHhmYSwweDIyLDB4MDIsMHgwMywweGE3LDB4YmYsMHgwMSwKLTB4MjIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGZiLDB4MDgsMHhjOSwweGM1LDB4ODIsMHhjOSwweGNhLDB4YzUsMHg4MywweGNhLDB4ZTAsCi0weGEzLDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGYwLDB4YTMsMHhkYiwweGVhLDB4ZDgsMHhlOCwweDIyLAotMHgwMiwweDAzLDB4Y2EsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY5LDB4ZWQsMHhmOCwweGUwLDB4ZjIsMHgwOCwweGEzLDB4ZDksMHhmYSwKLTB4MjIsMHgwMiwweDAzLDB4ZDQsMHhiYiwweDAyLDB4NGQsMHhiZiwweDAwLDB4MTIsMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsCi0weGY4LDB4MDIsMHgwMywweGU2LDB4MDgsMHhhMywweGU0LDB4OTMsMHhmNiwweGQ5LDB4ZjksMHgyMiwweGJmLDB4MDEsMHgyMywweDhkLAotMHg4MiwweDhlLDB4ODMsMHhmYiwweDA4LDB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGU0LDB4OTMsMHhhMywKLTB4YzksMHhjNSwweDgyLDB4YzksMHhjYSwweGM1LDB4ODMsMHhjYSwweGYwLDB4YTMsMHhkYiwweGU5LDB4ZDgsMHhlNywweDIyLDB4MDIsCi0weDA0LDB4MTksMHg4OSwweDgyLDB4OGEsMHg4MywweGY5LDB4ZWQsMHhmOCwweGU0LDB4OTMsMHhmMiwweDA4LDB4YTMsMHhkOSwweGY5LAotMHgyMiwweDAyLDB4MDQsMHgyYSwweGJmLDB4MDAsMHgwZCwweGZhLDB4ZWQsMHhmOCwweGUzLDB4ZjYsMHgwOCwweDA5LDB4ZGEsMHhmYSwKLTB4MjIsMHgwMiwweDA0LDB4MzQsMHhiZiwweDAxLDB4MTIsMHg4ZCwweDgyLDB4OGUsMHg4MywweGY4LDB4MDIsMHgwNCwweDQxLDB4MDksCi0weGEzLDB4ZTMsMHhmMCwweGQ4LDB4ZmEsMHgyMiwweDAyLDB4MDQsMHg0YywweGZhLDB4ZWQsMHhmOCwweGUzLDB4ZjIsMHgwOCwweDA5LAotMHhkYSwweGZhLDB4MjIsMHgwMiwweDA0LDB4NTYsMHhlNiwweGZiLDB4MDgsMHhlNiwweGZhLDB4MDgsMHhlNiwweGY5LDB4MDQsMHhmNiwKLTB4MTgsMHg3MCwweDAxLDB4MDYsMHgyMiwweGU2LDB4ZmYsMHgwOCwweGU2LDB4ZmUsMHgwOCwweGU2LDB4ZmQsMHgyMiwweGVmLDB4ZjAsCi0weGEzLDB4ZWUsMHhmMCwweGEzLDB4ZWQsMHhmMCwweDIyLDB4ZWIsMHhmMCwweGEzLDB4ZWEsMHhmMCwweGEzLDB4ZTksMHhmMCwweDIyLAotMHhlMCwweGZmLDB4YTMsMHhlMCwweGZlLDB4YTMsMHhlMCwweGZkLDB4MjIsMHhlMCwweGZiLDB4YTMsMHhlMCwweGZhLDB4YTMsMHhlMCwKLTB4ZjksMHgyMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDQsMHhmOSwweDAwLDB4NWIsMHgwNSwweDczLDB4MDAsCi0weDI2LDB4MDUsMHg5YSwweDAwLDB4MzMsMHgwYSwweDBiLDB4MDAsMHg1YiwweDBhLDB4NzcsMHgwMCwweDYwLDB4MTUsMHg1MiwweDAwLAotMHg1YiwweDBjLDB4ZmIsMHgwMCwweDViLDB4MDksMHhhYiwweDAwLDB4NWIsMHgwOSwweGUyLDB4MDAsMHg1YiwweDBkLDB4YzIsMHgwMCwKLTB4NWIsMHgwYiwweGYzLDB4MDAsMHg1YiwweDBhLDB4MWUsMHgwMCwweDViLDB4MGEsMHg1MywweDAwLDB4NWIsMHgxNywweDRhLDB4MDAsCi0weDMzLDB4MTcsMHg2MCwweDAwLDB4MzQsMHgxZSwweDRkLDB4MDAsMHg0MywweDFlLDB4ZjAsMHgwMCwweDQ0LDB4MjAsMHg1ZCwweDAwLAotMHg0NCwweDIwLDB4NGIsMHgwMCwweDQ3LDB4MWYsMHgxNywweDAwLDB4NDcsMHgxZiwweGJjLDB4MDAsMHg0ZCwweDIwLDB4MGQsMHgwMCwKLTB4NGYsMHgxZiwweDM5LDB4MDAsMHg1OCwweDMxLDB4ZjUsMHgwMCwweDViLDB4N2MsMHhjYywweDdkLDB4ZmYsMHgxMiwweDFjLDB4ZmUsCi0weDIyLDB4NzQsMHg5MCwweDkwLDB4ZmYsMHg5MSwweGYwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHgyMCwweGU3LDB4MmQsMHhjMiwweGFmLAotMHhhZSwweDU5LDB4YWYsMHg1OCwweDc1LDB4NWEsMHgyMCwweGU1LDB4NWEsMHgxNCwweGM1LDB4NWEsMHg2MCwweDE5LDB4ZTQsMHhmZSwKLTB4N2YsMHgwNSwweGVlLDB4NGYsMHhjZSwweDI0LDB4ZmYsMHhjZSwweGNmLDB4MzQsMHhmZiwweGNmLDB4NjAsMHgwNywweGU0LDB4OTAsCi0weGZmLDB4OTIsMHhmMCwweDgwLDB4ZWQsMHg4MCwweGUwLDB4OGUsMHg1OSwweDhmLDB4NTgsMHgyMiwweDEyLDB4MDUsMHgwMSwweDdkLAotMHgwNywweDdjLDB4YjcsMHgxMiwweDMyLDB4MTEsMHg3ZCwweDBmLDB4N2MsMHg2ZSwweDEyLDB4MzIsMHgyYiwweDc4LDB4OTcsMHg3YSwKLTB4MDYsMHhlNCwweGY2LDB4MDgsMHhkYSwweGZjLDB4N2EsMHgwNiwweDEyLDB4MDUsMHhjZiwweDdjLDB4MDMsMHgxMiwweDBlLDB4NTcsCi0weDdjLDB4MDQsMHgxMiwweDBlLDB4NTcsMHgxMiwweDIxLDB4OGIsMHhlNCwweGZlLDB4ZmYsMHg3YywweDBmLDB4MTIsMHgzMSwweDlhLAotMHhkMiwweGE4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHhlNCwweDkwLDB4ZmQsMHg0MCwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwKLTB4ZTQsMHgwOCwweDc0LDB4MDEsMHg5MCwweGZkLDB4NDEsMHhmMCwweDgwLDB4MDUsMHhlNCwweDkwLDB4ZmQsMHg0MSwweGYwLDB4N2QsCi0weDBhLDB4N2MsMHgwMCwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4OTAsMHhmZCwweDQxLAotMHhlMCwweDE0LDB4NzAsMHgwZSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NDQsMHgxMCwweGYwLDB4N2MsMHgwMCwweDEyLDB4MjUsMHg0YSwKLTB4ODAsMHgxOSwweDkwLDB4ZmQsMHg0MSwweGUwLDB4NzAsMHgwZSwweDkwLDB4ZmYsMHhmMCwweGUwLDB4NTQsMHhlZiwweGYwLDB4N2MsCi0weDAwLDB4MTIsMHgyNSwweDRhLDB4ODAsMHgwNSwweDdjLDB4MTcsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDkwLAotMHhmZiwweGYwLDB4ZTAsMHg1NCwweGFiLDB4ZjAsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MjAsMHhmMCwweDIyLDB4OGMsMHgzNywKLTB4OGQsMHgzNiwweDc4LDB4N2MsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsCi0weDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHg3OCwweDdhLDB4ZjYsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLAotMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA0LDB4MTIsMHgwMSwweGVjLDB4NTQsMHgwZiwweGZjLDB4N2QsMHg3YSwKLTB4MTIsMHgxNywweDlkLDB4NzgsMHg3YSwweGU2LDB4NzAsMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweGU0LDB4MTIsCi0weDAzLDB4MGYsMHg3YywweDA4LDB4MjIsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDU0LDB4ZmUsMHhmMCwweDkwLDB4ZmYsMHhmMCwweGUwLAotMHg1NCwweGZkLDB4ZjAsMHg4MCwweDFlLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwKLTB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDI1LDB4ZTAsMHg0NCwweDAxLDB4OTAsMHhmZiwweGYzLDB4ZjAsCi0weDAyLDB4MDYsMHhkYiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLAotMHg5MCwweDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg1NCwweGZlLDB4OTAsMHhmZiwweGYzLDB4ZjAsMHg4MCwweDJiLDB4NzgsMHg3YywKLTB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsCi0weDBlLDB4ZmEsMHhlYiwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGNhLDB4NDAsMHgwZCwweGFkLDB4M2EsMHhhZSwweDM5LAotMHhhZiwweDM4LDB4ZTQsMHgxMiwweDAzLDB4MGYsMHg3YywweDE4LDB4MjIsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywKLTB4ZWQsMHhmZSwweGVjLDB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4OTAsMHhmZiwweGYxLDB4ZjAsCi0weDEyLDB4MDgsMHhjYSwweDQwLDB4MGQsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHhlNCwweDEyLDB4MDMsMHgwZiwweDdjLAotMHgxOCwweDIyLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwKLTB4MDAsMHgwNiwweDEyLDB4MDIsMHgwZSwweDQ0LDB4MDEsMHg5MCwweGZmLDB4ZjMsMHhmMCwweDc4LDB4N2QsMHhlNiwweDI0LDB4MDMsCi0weGY2LDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNiwweDc4LDB4N2EsMHhlNiwweDI0LDB4ZmUsMHg1MCwweDA5LDB4OTAsMHhmZiwweGYwLAotMHhlMCwweDU0LDB4ZmQsMHhmMCwweDgwLDB4MDcsMHg5MCwweGZmLDB4ZjAsMHhlMCwweDQ0LDB4MDIsMHhmMCwweGU0LDB4OTAsMHhmZiwKLTB4ZjEsMHhmMCwweDc4LDB4N2IsMHg3NiwweDAwLDB4NzgsMHg3YSwweGU2LDB4MjQsMHhmZiwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsCi0weDc4LDB4N2IsMHhlNiwweDdmLDB4MDAsMHhmZSwweGVjLDB4ZDMsMHg5ZSwweGVmLDB4NjQsMHg4MCwweGNkLDB4NjQsMHg4MCwweDlkLAotMHg0MCwweDJmLDB4MTIsMHgwOCwweGFmLDB4NDAsMHgwZiwweDc4LDB4N2IsMHhlNiwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwKLTB4MTIsMHgwMywweDBmLDB4N2MsMHgxOCwweDIyLDB4OTAsMHhmZiwweGYyLDB4ZTAsMHhmYywweDc4LDB4N2MsMHg4NiwweDgzLDB4MDgsCi0weDg2LDB4ODIsMHhlYywweGYwLDB4NzgsMHg3YiwweDA2LDB4YTMsMHg3OCwweDdjLDB4YTYsMHg4MywweDA4LDB4YTYsMHg4MiwweDgwLAotMHhiNSwweDEyLDB4MDgsMHhhZiwweDQwLDB4MGYsMHg3OCwweDdiLDB4ZTYsMHhhZCwweDNhLDB4YWUsMHgzOSwweGFmLDB4MzgsMHgxMiwKLTB4MDMsMHgwZiwweDdjLDB4MTgsMHgyMiwweDkwLDB4ZmYsMHhmMiwweGUwLDB4ZmMsMHg3OCwweDdjLDB4ODYsMHg4MywweDA4LDB4ODYsCi0weDgyLDB4ZWMsMHhmMCwweDc4LDB4N2EsMHhlNiwweGFkLDB4M2EsMHhhZSwweDM5LDB4YWYsMHgzOCwweDEyLDB4MDMsMHgwZiwweDdjLAotMHgwMCwweDIyLDB4OGMsMHgzNywweDhkLDB4MzYsMHg3OCwweDdjLDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweGVkLDB4ZmUsMHhlYywKLTB4ZmQsMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA1LDB4MTIsMHgwMSwweGVjLDB4NzgsMHg3YiwweGY2LDB4NzgsMHg3YywweGU2LDB4ZmQsCi0weDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwNCwweDEyLDB4MDEsMHhlYywweDU0LAotMHgwZiwweGZjLDB4N2QsMHg3YiwweDEyLDB4MTcsMHg5ZCwweDc4LDB4N2IsMHhlNiwweDcwLDB4MDMsMHg3YywweDA4LDB4MjIsMHg5MCwKLTB4ZmYsMHhmMCwweGUwLDB4NTQsMHhmZSwweGYwLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg1NCwweGZkLDB4ZjAsMHg4MCwweDFiLDB4NzgsCi0weDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLAotMHgwMiwweDBlLDB4MjUsMHhlMCwweDkwLDB4ZmYsMHhmMywweGYwLDB4ODAsMHg1YiwweDc4LDB4N2MsMHhlNiwweGZkLDB4MDgsMHhlNiwKLTB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAyLDB4MGUsMHg1NCwweGZlLDB4OTAsCi0weGZmLDB4ZjMsMHhmMCwweDgwLDB4MjEsMHg3OCwweDdjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHhmYywweGVkLDB4ZmUsMHhlYywweGZkLAotMHg3ZiwweDAxLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhlYiwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwKLTB4Y2EsMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg3YywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHhlZCwweGZlLDB4ZWMsCi0weGZkLDB4N2YsMHgwMSwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweDkwLDB4ZmYsMHhmMSwweGYwLDB4MTIsMHgwOCwweGNhLAotMHg0MCwweDAzLDB4N2MsMHgxOCwweDIyLDB4NzgsMHg3ZCwweGU2LDB4MjQsMHgwYSwweGY2LDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNiwKLTB4NzgsMHg3YSwweDc2LDB4MDAsMHg3OCwweDdiLDB4ZTYsMHgyNCwweGZmLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweDc4LDB4N2EsCi0weGU2LDB4N2YsMHgwMCwweGZlLDB4ZWMsMHhkMywweDllLDB4ZWYsMHg2NCwweDgwLDB4Y2QsMHg2NCwweDgwLDB4OWQsMHg0MCwweDIxLAotMHg3OCwweDdjLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4OTAsMHhmZiwweGYxLDB4ZjAsMHgxMiwweDA4LDB4Y2EsMHg0MCwKLTB4MDMsMHg3YywweDE4LDB4MjIsMHg3OCwweDdhLDB4MDYsMHg3OCwweDdkLDB4MDYsMHhlNiwweDE4LDB4NzAsMHgwMSwweDA2LDB4ODAsCi0weGMzLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg3OCwweDdjLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLAotMHg5MCwweGZmLDB4ZjEsMHhmMCwweDEyLDB4MDgsMHhjYSwweDQwLDB4MDMsMHg3YywweDE4LDB4MjIsMHg3YywweDAwLDB4MjIsMHg5MCwKLTB4ZmYsMHhmMCwweGUwLDB4MjAsMHhlNywweDEyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgzMCwweGU1LDB4MDksMHg5MCwweGZmLDB4ZjAsCi0weGUwLDB4NDQsMHgyMCwweGYwLDB4YzMsMHgyMiwweDgwLDB4ZTcsMHhkMywweDIyLDB4OTAsMHhmZiwweGYwLDB4ZTAsMHgyMCwweGUzLAotMHgxMiwweDkwLDB4ZmYsMHhmMCwweGUwLDB4MzAsMHhlNSwweDA5LDB4OTAsMHhmZiwweGYwLDB4ZTAsMHg0NCwweDIwLDB4ZjAsMHhjMywKLTB4MjIsMHg4MCwweGU3LDB4ZDMsMHgyMiwweDhjLDB4NDIsMHg4ZCwweDQxLDB4N2MsMHgwMCwweGVkLDB4NTQsMHhmMCwweGZkLDB4ZWMsCi0weDcwLDB4MDMsMHhlZCwweDY0LDB4MzAsMHg3MCwweDA1LDB4NzUsMHgzZSwweDAzLDB4ODAsMHgwMywweDc1LDB4M2UsMHgwNCwweGFjLAotMHgzZSwweDEyLDB4MGYsMHg3YywweDc1LDB4ODMsMHgwMCwweDg1LDB4ODMsMHg0MCwweGU1LDB4NDEsMHg1NCwweDBmLDB4ZjUsMHgzZiwKLTB4ZTUsMHg0MCwweDcwLDB4MDQsMHhlNSwweDNmLDB4NjQsMHgwMywweDcwLDB4MzUsMHhlNSwweDNlLDB4MjQsMHhmZCwweDc1LDB4ZjAsCi0weDBhLDB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTYsMHgwNSwweDEyLAotMHgxMCwweDY3LDB4ODAsMHgxOSwweGU1LDB4M2UsMHgyNCwweDk3LDB4ZjgsMHhjNiwweDU0LDB4ZmIsMHhmNiwweDc4LDB4YTMsMHhlNiwKLTB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHg4MCwweDU5LDB4ZTUsCi0weDQwLDB4NzAsMHgwNCwweGU1LDB4M2YsMHg2NCwweDA0LDB4NzAsMHg0OCwweGU1LDB4M2UsMHgyNCwweGZkLDB4NzUsMHhmMCwweDBhLAotMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNSwweDA3LDB4YWMsMHg0MiwKLTB4YWQsMHg0MSwweDEyLDB4MWMsMHg5MywweGU1LDB4NDIsMHgzMCwweGUyLDB4MTUsMHg3OCwweGE3LDB4ZTYsMHgzMCwweGUwLDB4MGYsCi0weDc4LDB4YTcsMHhlNiwweDMwLDB4ZTEsMHgwOSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNCwweDEyLDB4MzEsMHg5YSwweDc4LAotMHhhMywweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHg3NCwweDBmLDB4ZjAsMHg4MCwKLTB4MDcsMHhlNCwweGZjLDB4N2QsMHhlZSwweDEyLDB4MWMsMHg5MywweGMyLDB4MDMsMHgyMiwweDEyLDB4MzAsMHg4NSwweDEyLDB4MGYsCi0weDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDkwLAotMHhmZCwweDQwLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHg5MCwweGZkLDB4NDEsMHhmMCwweGMyLDB4MDMsMHg3ZCwweDAyLDB4N2MsMHgwMCwweDEyLDB4MjQsMHhiMSwweDEyLDB4MzEsCi0weDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgzMCwweGUxLAotMHgwNywweDdjLDB4MTMsMHgxMiwweDI1LDB4NGEsMHg4MCwweDBmLDB4OTAsMHhmZCwweDQxLDB4ZTAsMHhmZCwweDc4LDB4OGYsMHhlNiwKLTB4ZmMsMHgxMiwweDEzLDB4ZmQsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsCi0weGVjLDB4ZjYsMHg3ZCwweDAwLDB4MTIsMHgwZiwweDBiLDB4MTIsMHgyNSwweDRhLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLAotMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTIsMHgwNywweDdjLDB4MTMsMHgxMiwKLTB4MjUsMHg0YSwweDgwLDB4MWIsMHg3OCwweDhmLDB4ZTYsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDIwLDB4ZTEsMHgwNywweDdjLDB4MTIsCi0weDEyLDB4MjUsMHg0YSwweDgwLDB4MGEsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTQsMHgyMSwweDEyLDB4MjUsMHg0YSwweDEyLAotMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDhmLDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgyMCwKLTB4ZTIsMHgwNywweDdjLDB4MTEsMHgxMiwweDI1LDB4NGEsMHg4MCwweDBhLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDE1LDB4MjIsCi0weDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHgxMiwweDBmLAotMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwKLTB4ZmQsMHg0NywweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4OTAsMHhmZCwweDQ4LDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwKLTB4ODMsMHhlMCwweGY1LDB4NWMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHhmNSwweDVkLDB4OGMsMHg1YiwweGU0LDB4ZWMsMHgzMywweDMzLDB4NTQsMHgwMSwweDc4LDB4OGYsMHhmNiwweDYwLAotMHgwOCwweGU1LDB4NWMsMHgzMCwweGUxLDB4MDMsMHg3OCwweDhmLDB4MDYsMHg3OCwweDhmLDB4ZTYsMHg5MCwweGZkLDB4NDksMHhmMCwKLTB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGZkLDB4YTMsCi0weGUwLDB4NTQsMHgwYywweGZjLDB4ZWQsMHg1NCwweGU2LDB4OGMsMHg1ZiwweGY1LDB4NWUsMHhlNSwweDViLDB4MzAsMHhlNSwweDAzLAotMHg0MywweDVmLDB4MDEsMHhlNSwweDVjLDB4MjAsMHhlNSwweDBlLDB4ZTUsMHg1YiwweDU0LDB4N2YsMHg3MCwweDA4LDB4ZTUsMHg1YiwKLTB4MjAsMHhlNywweDAzLDB4NDMsMHg1ZiwweDAyLDB4ZTUsMHg1YiwweDMwLDB4ZTMsMHgwMywweDQzLDB4NWYsMHgxMCwweGU1LDB4NWIsCi0weDMwLDB4ZTIsMHgwMywweDQzLDB4NWYsMHgyMCwweGU1LDB4NWIsMHg1NCwweDAzLDB4NjAsMHgwMywweDQzLDB4NWYsMHg0MCwweGU1LAotMHg1YiwweDMwLDB4ZTEsMHgwMywweDQzLDB4NWYsMHg4MCwweGU1LDB4NWIsMHgzMCwweGU0LDB4MDMsMHg0MywweDVlLDB4MDEsMHhlNSwKLTB4NWIsMHgzMCwweGU2LDB4MDMsMHg0MywweDVlLDB4MDgsMHhlNSwweDVjLDB4MjAsMHhlNCwweDBlLDB4ZTUsMHg1YiwweDU0LDB4N2YsCi0weDcwLDB4MDgsMHhlNSwweDViLDB4MjAsMHhlNywweDAzLDB4NDMsMHg1ZSwweDEwLDB4NTMsMHg1ZiwweGZiLDB4NTMsMHg1ZSwweGY5LAotMHhhZCwweDVlLDB4ZTUsMHg1ZiwweDkwLDB4ZmQsMHg0MiwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHhlNSwweDVkLDB4MzAsMHhlMywKLTB4MGQsMHhlNSwweDVkLDB4NTQsMHgzMCwweGM0LDB4NTQsMHgwZiwweDkwLDB4ZmQsMHg0NSwweGYwLDB4ODAsMHgwNSwweGU0LDB4OTAsCi0weGZkLDB4NDUsMHhmMCwweGU1LDB4NWQsMHg1NCwweDAzLDB4OTAsMHhmZCwweDQ0LDB4ZjAsMHhlNSwweDVkLDB4NTQsMHgwNCwweGMzLAotMHgxMywweDkwLDB4ZmQsMHg0NiwweGYwLDB4OTAsMHhmZCwweDQ0LDB4ZTAsMHg3MCwweDBlLDB4N2QsMHgzZCwweDdlLDB4ZmQsMHg3ZiwKLTB4MDEsMHg3NCwweDAxLDB4OTAsMHgwMCwweDA5LDB4MTIsMHgwMSwweDQyLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4N2MsMHgwMCwweGZkLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNywweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4N2YsMHgwMCwweDRjLDB4ZmUsMHhlZiwweDRkLDB4OTAsMHhmZCwKLTB4NDAsMHhmMCwweGEzLDB4Y2UsMHhmMCwweGNlLDB4YzIsMHgwMywweDdkLDB4MGEsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsCi0weDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4NzgsMHg5NCwweDc2LDB4MDEsMHgwOCwweDc2LAotMHhmZCwweDA4LDB4NzYsMHg0MCwweDc4LDB4OTEsMHg3NiwweDBjLDB4NzgsMHg5NCwweDEyLDB4MDQsMHg2NSwweDEyLDB4MDIsMHgxNCwKLTB4NzgsMHg5MiwweGNiLDB4ZjYsMHhjYiwweDA4LDB4ZjYsMHg3ZiwweDAwLDB4ZWYsMHgyNCwweGViLDB4NDAsMHgxZiwweGU0LDB4ZWYsCi0weDI1LDB4ZTAsMHg5MCwweDM0LDB4YmYsMHhmZCwweDkzLDB4Y2QsMHgwNCwweDkzLDB4NzgsMHg5MywweDY2LDB4NzAsMHgwMywweGVkLAotMHgxOCwweDY2LDB4NzAsMHgwNiwweDc4LDB4OTEsMHg3NiwweDAwLDB4ODAsMHgwMywweDBmLDB4ODAsMHhkYywweDc4LDB4OTAsMHhlZiwKLTB4ZjYsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMiwweDBlLDB4NzgsMHg5MiwweGNiLDB4ZjYsCi0weGNiLDB4MDgsMHhmNiwweDU0LDB4MDQsMHhjYiwweDU0LDB4MDYsMHg0YiwweDYwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwYiwweDc4LAotMHg5MywweGU2LDB4MzAsMHhlMywweDEzLDB4NzgsMHg5NCwweDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywKLTB4MjQsMHhmYiwweDUwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwZCwweDc4LDB4OTMsMHhlNiwweDU0LDB4YzAsMHg3ZCwweDAwLDB4NjQsCi0weGMwLDB4NGQsMHg3MCwweDA0LDB4NzgsMHg5MSwweDc2LDB4MGIsMHg3OCwweDk0LDB4MTIsMHgwNCwweDY1LDB4OTAsMHgwMCwweDA0LAotMHgxMiwweDAxLDB4ZWMsMHgyNCwweGZjLDB4NTAsMHgwNCwweDc4LDB4OTEsMHg3NiwweDBmLDB4NzgsMHg5NCwweDEyLDB4MDQsMHg2NSwKLTB4OTAsMHgwMCwweDA2LDB4MTIsMHgwMSwweGVjLDB4MjQsMHhmZCwweDUwLDB4MDQsMHg3OCwweDkxLDB4NzYsMHgwZSwweDc4LDB4OTQsCi0weDEyLDB4MDQsMHg2NSwweDkwLDB4MDAsMHgwOSwweDEyLDB4MDEsMHhlYywweDI0LDB4ZmQsMHg1MCwweDA0LDB4NzgsMHg5MSwweDc2LAotMHgwYSwweDc4LDB4OTEsMHhlNiwweDcwLDB4MmEsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MGYsMHg3YywweDc4LDB4OTQsMHgxMiwKLTB4MDQsMHg2NSwweDc4LDB4YTEsMHhlNiwweGY5LDB4NzgsMHhhMCwweGU2LDB4ZmEsMHg3YiwweDAxLDB4NzQsMHgwYSwweDc4LDB4MDAsCi0weDEyLDB4MDMsMHgzZiwweGMyLDB4MDMsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MTEsMHgyMywweDc4LDB4OTEsMHhlYywweGY2LAotMHg3OCwweDkxLDB4ZTYsMHhmYywweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4NzgsMHg4ZiwKLTB4ZWMsMHhmNiwweDEyLDB4MGYsMHg3YywweDc4LDB4OGYsMHhlNiwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MWMsCi0weGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4YWMsMHg4MiwweGFkLDB4ODMsMHg3OCwweGEwLDB4ODYsMHg4MywweDA4LAotMHg4NiwweDgyLDB4ZWMsMHhmOSwweGVkLDB4ZmEsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhhNywweGMyLDB4MDMsMHg3OCwKLTB4OGYsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4MTIsMHgzMSwweDA4LDB4MjIsMHg4ZCwweDJiLDB4OGMsMHgyYSwweGVkLDB4NjAsCi0weDQwLDB4NzUsMHgyNywweDAxLDB4NzUsMHgyOSwweDQ4LDB4NzUsMHgyOCwweGZmLDB4ZTUsMHgyYSwweDI0LDB4ZmQsMHhmYywweGU0LAotMHgzNCwweGZmLDB4ZmQsMHhlYywweDdjLDB4MDMsMHgyNSwweGUwLDB4Y2QsMHgzMywweGNkLDB4ZGMsMHhmOSwweGZjLDB4ZTUsMHgyOSwKLTB4MmMsMHhmNSwweDI5LDB4ZTUsMHgyOCwweDNkLDB4ZjUsMHgyOCwweGFkLDB4MjksMHhhZSwweDI4LDB4YWYsMHgyNywweDc0LDB4ODAsCi0weDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweDc0LDB4ODAsMHg5MCwweDAwLDB4MDIsMHgxMiwweDAzLDB4MTcsMHgxMiwweDBmLAotMHhkMywweGU1LDB4MmIsMHgxNCwweDYwLDB4M2IsMHg3NSwweDI3LDB4MDEsMHg3NSwweDI5LDB4MDgsMHg3NSwweDI4LDB4ZmYsMHhlNSwKLTB4MmEsMHgyNCwweGZkLDB4ZmMsMHhlNCwweDM0LDB4ZmYsMHhmZCwweGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsCi0weGRjLDB4ZjksMHhmYywweGU1LDB4MjksMHgyYywweGY1LDB4MjksMHhlNSwweDI4LDB4M2QsMHhmNSwweDI4LDB4YWQsMHgyOSwweGFlLAotMHgyOCwweGFmLDB4MjcsMHhlNCwweDkwLDB4MDAsMHgwNiwweDEyLDB4MDMsMHgxNywweGU0LDB4OTAsMHgwMCwweDAyLDB4MTIsMHgwMywKLTB4MTcsMHgyMiwweDEyLDB4MzAsMHg4NSwweDc4LDB4OGYsMHhlYywweGY2LDB4ZWMsMHgyNCwweDk3LDB4ZjgsMHhlNiwweDMwLDB4ZTIsCi0weDA5LDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDE1LDB4MjIsMHhkMiwweDAwLDB4NzgsMHg4ZiwweGU2LDB4ZmMsMHgxMiwweDBmLAotMHg3YywweDc4LDB4OTAsMHg3NiwweDAwLDB4OTAsMHhmZCwweDQxLDB4ZTAsMHgzMCwweGU3LDB4MDQsMHg3OCwweDkwLDB4NzYsMHgwMSwKLTB4NzgsMHg5MCwweGU2LDB4ZmQsMHg3OCwweDhmLDB4ZTYsMHhmYywweDEyLDB4MGQsMHgzYSwweGMyLDB4MDMsMHgzMCwweDAwLDB4MDcsCi0weDc4LDB4OGYsMHhlNiwweGZjLDB4MTIsMHgxNCwweDIxLDB4N2MsMHgwMCwweDEyLDB4MjUsMHg0YSwweDEyLDB4MzEsMHgwOCwweDIyLAotMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwMSwKLTB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsCi0weGUwLDB4MDIsMHg4MCwweGVkLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4NTQsMHhmOCwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NDQsMHg4MCwweGYwLDB4MjIsMHhjMiwweDAzLDB4OGMsMHg1OCwweDEyLDB4MGYsMHg3YywweDc4LDB4YTAsCi0weDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHg3OSwweGVlLDB4N2EsMHgzNCwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LAotMHgxMiwweDBlLDB4MTAsMHhhYywweDU4LDB4N2QsMHgwMiwweDEyLDB4MGQsMHgzYSwweGMyLDB4MDMsMHhhYywweDU4LDB4MTIsMHgxMSwKLTB4MjMsMHgyMiwweDhkLDB4NTMsMHg4ZSwweDUyLDB4OGYsMHg1MSwweDhjLDB4NTAsMHgxMiwweDBmLDB4N2MsMHg3NSwweDRmLDB4MDAsCi0weDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LAotMHgxNiwweGU1LDB4NGYsMHgyNCwweGY2LDB4NDAsMHgxMCwweDA1LDB4NGYsMHhjMiwweDAzLDB4N2MsMHgxOCwweDEyLDB4MzIsMHg0OCwKLTB4YWMsMHg1MCwweDEyLDB4MGYsMHg3YywweDgwLDB4ZDksMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgyMCwweGU0LDB4MDUsMHhjMiwweDAzLDB4N2MsMHgwMiwweDIyLDB4NzgsMHhhMywweGU2LAotMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHgwZiwweDYwLDB4MTYsMHg3OCwKLTB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZjAsCi0weGMyLDB4MDMsMHg3YywweDAxLDB4MjIsMHg3OCwweGEyLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4YWQsMHg1MywweGFlLAotMHg1MiwweGFmLDB4NTEsMHgxMiwweDAzLDB4MGYsMHhjMiwweDAzLDB4N2MsMHgwMCwweDIyLDB4OGQsMHgzMSwweDhjLDB4MzAsMHgxMiwKLTB4MTUsMHgyMiwweGU1LDB4MzEsMHg2MCwweDIwLDB4ZTUsMHgzMCwweGI0LDB4MDMsMHgwYywweDdjLDB4MDEsMHgxMiwweDI0LDB4N2MsCi0weDdjLDB4ODEsMHgxMiwweDI0LDB4N2MsMHg4MCwweDBmLDB4ZTUsMHgzMCwweGI0LDB4MDQsMHgwYSwweDdjLDB4MDIsMHgxMiwweDI0LAotMHg3YywweDdjLDB4ODIsMHgxMiwweDI0LDB4N2MsMHhhYywweDMwLDB4MTIsMHgwZiwweDdjLDB4ZTUsMHgzMSwweDYwLDB4MWEsMHg3OCwKLTB4YTQsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLDB4ZTAsMHg1NCwweGU3LDB4ZjAsMHhhMywweGEzLDB4YTMsMHhhMywweGUwLDB4NTQsCi0weGU3LDB4ZjAsMHhhYywweDMwLDB4N2QsMHgwMiwweDEyLDB4MGQsMHgzYSwweDc4LDB4YTAsMHg4NiwweDgzLDB4MDgsMHg4NiwweDgyLAotMHg3OSwweGY4LDB4N2EsMHgzNCwweDdiLDB4MGEsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4YzIsMHgwMywweGU1LDB4MzAsMHgyNCwKLTB4OTcsMHhmOCwweGM2LDB4NTQsMHhmZCwweGY2LDB4YWMsMHgzMCwweDEyLDB4MTEsMHgyMywweDIyLDB4OGMsMHgyNiwweDMwLDB4MDMsCi0weDA1LDB4MTIsMHgzMSwweGU3LDB4ODAsMHhmOCwweDdjLDB4MGEsMHgxMiwweDMwLDB4ZmEsMHhkMiwweDAzLDB4ZTUsMHgyNiwweDI0LAotMHhmZCwweDc4LDB4OWQsMHhmNiwweDcwLDB4MDksMHg3OCwweGE0LDB4NzYsMHhmZiwweDA4LDB4NzYsMHhlMCwweDgwLDB4MDcsMHg3OCwKLTB4YTQsMHg3NiwweGZmLDB4MDgsMHg3NiwweGUyLDB4NzgsMHg5ZCwweGU2LDB4NzUsMHhmMCwweDEwLDB4YTQsMHhhZCwweGYwLDB4ZmMsCi0weDI0LDB4YTAsMHg3OCwweGEzLDB4ZjYsMHhlZCwweDM0LDB4ZmYsMHgxOCwweGY2LDB4NzgsMHg5ZCwweGU2LDB4NzUsMHhmMCwweDBhLAotMHhhNCwweDI0LDB4MDgsMHhmYywweGU0LDB4MzQsMHhmZCwweGZkLDB4NzgsMHhhMCwweGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHgxMiwKLTB4MzEsMHg5MywweDIyLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4MzAsMHhlNywweDIyLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NDQsMHg4MCwweGYwLDB4MjIsMHg3OCwweGE0LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NTQsCi0weDdmLDB4ZjAsMHhhZCwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmYywweGU0LDB4M2QsMHg4YywweDgyLDB4ZjUsMHg4MywweGUwLAotMHg1NCwweDdmLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDBiLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywKLTB4ZTAsMHg1NCwweGY4LDB4ZjAsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDAxLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsCi0weDgzLDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZTAsMHg0NCwweDAzLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4NzQsMHgwZiwweGYwLDB4MjIsMHg3OCwweGE0LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGUwLDB4NTQsCi0weDNmLDB4ZjAsMHhhZCwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmYywweGU0LDB4M2QsMHg4YywweDgyLDB4ZjUsMHg4MywweGUwLAotMHg1NCwweDNmLDB4ZjAsMHg3OCwweDlkLDB4ZTYsMHgyNCwweDllLDB4ZjgsMHhlNiwweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwMSwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweDlkLDB4ZTYsMHgyNCwweDllLDB4ZjgsCi0weGU2LDB4ZmMsMHg3OCwweGE1LDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLAotMHhmMCwweDc4LDB4YTMsMHhlNiwweDI0LDB4MGIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwKLTB4ZmIsMHg0NCwweDAyLDB4ZjUsMHgyNiwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDMwLDB4ZTUsMHgwMywweDQzLDB4MjYsMHgwMSwweDc4LDB4YTMsMHhlNiwweDI0LDB4MDUsMHhmNSwweDgyLAotMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTAsMHgwMywweDEyLDB4MGYsMHhkMywweGU1LDB4MjYsMHhmYywKLTB4NzgsMHhhMywweGU2LDB4MjQsMHgwYiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsCi0weGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweDc0LDB4MGYsMHhmMCwweDc4LAotMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweDQ0LDB4ODAsMHhmMCwweGEzLDB4YTMsMHhhMywweGEzLDB4ZTAsMHg0NCwKLTB4ODAsMHhmMCwweDIyLDB4OGMsMHgyYSwweDEyLDB4MGYsMHg3YywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDgsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwYSwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA3LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmYywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDksMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlYywweGYwLDB4NzgsMHhhMCwweDg2LDB4ODMsMHgwOCwweDg2LDB4ODIsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLAotMHhlZCwweGZlLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwOCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlZSwKLTB4ZjAsMHhlYywweGZlLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNywweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGVlLDB4ZjAsMHg4YywweDI5LDB4OGQsMHgyOCwweGMzLDB4ZWMsMHg5NCwweDAyLDB4ZWQsMHg5NCwweDA2LDB4NDAsMHgwNSwweDc1LAotMHgyNywweDdjLDB4ODAsMHgzMywweGQzLDB4ZTUsMHgyOSwweDk0LDB4ODEsMHhlNSwweDI4LDB4OTQsMHgwMSwweDQwLDB4MDUsMHg3NSwKLTB4MjcsMHgzYywweDgwLDB4MjMsMHhkMywweGU1LDB4MjksMHg5NCwweGMwLDB4ZTUsMHgyOCwweDk0LDB4MDAsMHg0MCwweDA1LDB4NzUsCi0weDI3LDB4MTgsMHg4MCwweDEzLDB4ZDMsMHhlNSwweDI5LDB4OTQsMHgzMCwweGU1LDB4MjgsMHg5NCwweDAwLDB4NDAsMHgwNSwweDc1LAotMHgyNywweDBjLDB4ODAsMHgwMywweDc1LDB4MjcsMHgwOCwweGFmLDB4MjcsMHhlNCwweGVmLDB4NTQsMHg3YywweDQ0LDB4ODMsMHhmZiwKLTB4OGYsMHgyNywweGU1LDB4MjcsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlYywweGYwLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LAotMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlNSwweDI3LDB4ZmMsMHg3OCwweDlkLDB4ZTYsMHgyNCwweDllLDB4ZjgsMHhlYywKLTB4ZjYsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsCi0weDI3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLAotMHgzMCwweGUzLDB4MTcsMHg1MywweDI3LDB4YzcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHg5MCwweDM0LDB4ZTksMHg5MywweDQyLDB4MjcsMHg3OCwweGExLDB4ZTYsMHgyNCwweDAyLDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU3LDB4MDUsMHg0MywweDI3LDB4NDAsMHg4MCwweDAzLAotMHg1MywweDI3LDB4YmYsMHg1MywweDI3LDB4ZmIsMHg3OCwweGExLDB4ZTYsMHgyNCwweDA2LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwKLTB4MDAsMHhmNSwweDgzLDB4ZTAsMHg2MCwweDAzLDB4NDMsMHgyNywweDA0LDB4NTMsMHgyNywweGZjLDB4NzgsMHhhMSwweGU2LDB4MjQsCi0weDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NDIsMHgyNywweDQzLDB4MjcsMHg4MCwweGU1LAotMHgyNywweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywKLTB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4ZjUsCi0weDI3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLAotMHgzMCwweGUxLDB4MDUsMHg1MywweDI3LDB4ZGYsMHg4MCwweDAzLDB4NDMsMHgyNywweDIwLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4MzAsMHhlNCwweDA1LDB4NTMsMHgyNywweGVmLDB4ODAsCi0weDAzLDB4NDMsMHgyNywweDEwLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwOSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4YjQsMHgwMiwweDAzLDB4NDMsMHgyNywweDAyLDB4ZTUsMHgyNywweGZjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwKLTB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAzLDB4ZjUsCi0weDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHhmNSwweDI3LDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwOSwweGY1LAotMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4NzAsMHgwNSwweDUzLDB4MjcsMHg3ZiwweDgwLDB4MDMsMHg0MywKLTB4MjcsMHg4MCwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsCi0weGUwLDB4MzAsMHhlMCwweDA1LDB4NDMsMHgyNywweDIwLDB4ODAsMHgwMywweDUzLDB4MjcsMHhkZiwweDc4LDB4YTEsMHhlNiwweDI0LAotMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlMCwweDMwLDB4ZTMsMHgwNSwweDQzLDB4MjcsMHg0MCwKLTB4ODAsMHgwMywweDUzLDB4MjcsMHhiZiwweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsCi0weGY1LDB4ODMsMHhlMCwweDMwLDB4ZTAsMHgwNSwweDQzLDB4MjcsMHgxMCwweDgwLDB4MDMsMHg1MywweDI3LDB4ZWYsMHg3OCwweGExLAotMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4YTMsMHhlMCwweDMwLDB4ZTQsMHgwNSwKLTB4NDMsMHgyNywweDA4LDB4ODAsMHgwMywweDUzLDB4MjcsMHhmNywweDc4LDB4YTEsMHhlNiwweDI0LDB4MDIsMHhmNSwweDgyLDB4MTgsCi0weGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywweGUwLDB4MzAsMHhlNSwweDA1LDB4NDMsMHgyNywweDA0LDB4ODAsMHgwMywweDUzLAotMHgyNywweGZiLDB4NzgsMHhhMSwweGU2LDB4MjQsMHgwMiwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhhMywKLTB4ZTAsMHgzMCwweGU2LDB4MDUsMHg0MywweDI3LDB4MDEsMHg4MCwweDAzLDB4NTMsMHgyNywweGZlLDB4NzgsMHhhMSwweGU2LDB4MjQsCi0weDAyLDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGEzLDB4ZTAsMHgzMCwweGU3LDB4MDUsMHg0MywweDI3LAotMHgwMiwweDgwLDB4MDMsMHg1MywweDI3LDB4ZmQsMHhlNSwweDI3LDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDAzLDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGMyLDB4MDMsMHg3YywweDAwLDB4MjIsMHg4ZCwweDI3LDB4OGMsCi0weDI2LDB4ZWQsMHg1NCwweDAzLDB4MTQsMHg2MCwweDAzLDB4N2MsMHgxMCwweDIyLDB4ZTUsMHgyNywweDU0LDB4N2MsMHgyNCwweGZjLAotMHg0MCwweDAzLDB4N2MsMHgwYiwweDIyLDB4ZTUsMHgyNiwweDI0LDB4OTcsMHhmOCwweGM2LDB4NDQsMHgwMiwweGY2LDB4N2MsMHgwMCwKLTB4MjIsMHg4YywweDMwLDB4MTIsMHgwZiwweDdjLDB4ZTUsMHgzMCwweDI0LDB4OTcsMHhmOCwweGU2LDB4MjAsMHhlMiwweDRmLDB4YWMsCi0weDMwLDB4N2QsMHgwMiwweDEyLDB4MGQsMHgzYSwweGU1LDB4MzAsMHgyNCwweGZlLDB4NDQsMHgyOCwweGZjLDB4NzgsMHhhNCwweDg2LAotMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjAsMHhhZiwweDgzLDB4ZTUsMHg4MiwweDI0LDB4MDQsMHhmZSwweGU0LDB4M2YsMHhmZiwKLTB4ZWMsMHg4ZSwweDgyLDB4OGYsMHg4MywweGYwLDB4N2MsMHgwMywweDhjLDB4MmMsMHhlNSwweDJjLDB4ZmMsMHg3OCwweGE1LDB4ZTYsCi0weDI0LDB4MDEsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZWMsMHhmMCwweGU1LDB4MmMsMHhmYywweDc4LAotMHhhNSwweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4NzUsMHgyZCwKLTB4MDEsMHg3NSwweDJmLDB4NDgsMHg3NSwweDJlLDB4ZmYsMHhlNSwweDMwLDB4MjQsMHhmZCwweGZjLDB4ZTQsMHgzNCwweGZmLDB4ZmQsCi0weGVjLDB4N2MsMHgwMywweDI1LDB4ZTAsMHhjZCwweDMzLDB4Y2QsMHhkYywweGY5LDB4ZmMsMHhlNSwweDJmLDB4MmMsMHhmNSwweDJmLAotMHhlNSwweDJlLDB4M2QsMHhmNSwweDJlLDB4NzgsMHhhNSwweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NTQsMHhlNywweGY1LDB4MmMsMHhhZCwweDJmLDB4YWUsMHgyZSwweGFmLDB4MmQsMHhlNCwweDkwLDB4MDAsCi0weDAyLDB4MTIsMHgwMywweDE3LDB4ZTQsMHg5MCwweDAwLDB4MDYsMHgxMiwweDAzLDB4MTcsMHgxMiwweDAxLDB4ZTYsMHgzMCwweGU1LAotMHgwMywweDQzLDB4MmMsMHgxMCwweGU1LDB4MmMsMHhmYywweDc4LDB4YTUsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwKLTB4MzQsMHgwMCwweGY1LDB4ODMsMHhlYywweGYwLDB4MTIsMHgxMCwweDY3LDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNiwweGY1LDB4ODIsCi0weDE4LDB4ZTYsMHgzNCwweDAwLDB4ZjUsMHg4MywweGUwLDB4YzIsMHgwMywweGZjLDB4ZTUsMHgzMCwweDI0LDB4OTcsMHhmOCwweGM2LAotMHg0NCwweDA0LDB4ZjYsMHg4YywweDJjLDB4ZTUsMHgzMCwweDU0LDB4MGYsMHhjNCwweDU0LDB4ZjAsMHg3ZSwweDAwLDB4ZmYsMHhlZSwKLTB4ZWYsMHg0NCwweDA0LDB4N2QsMHgwMCwweGZmLDB4ZWMsMHg0ZSwweGZjLDB4ZWQsMHg0ZiwweGZkLDB4MTIsMHgxYywweGZlLDB4N2MsCi0weDAwLDB4MjIsMHg4YywweDJmLDB4MTIsMHgwZiwweDdjLDB4MTIsMHgxMCwweDA3LDB4NzgsMHhhNCwweDg2LDB4ODMsMHgwOCwweDg2LAotMHg4MiwweGUwLDB4NTQsMHgwOCwweGYwLDB4YTMsMHhhMywweGEzLDB4YTMsMHhlMCwweDU0LDB4MDgsMHhmMCwweGFjLDB4MmYsMHg3ZCwKLTB4MDIsMHgxMiwweDBkLDB4M2EsMHhjMiwweDAzLDB4ZTUsMHgyZiwweDI0LDB4OTcsMHhmOCwweGM2LDB4NTQsMHhmYiwweGY2LDB4N2MsCi0weDAwLDB4MjIsMHgxMiwweDMwLDB4ODUsMHg3OCwweDkwLDB4ZWMsMHhmNiwweGVjLDB4MjQsMHg5NywweGY4LDB4ZTYsMHgzMCwweGUxLAotMHgwYSwweDdkLDB4MDAsMHg3YywweDEzLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4NzgsMHg5MCwweGU2LDB4MjQsMHg5NywKLTB4ZjgsMHhjNiwweDQ0LDB4MDEsMHhmNiwweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHg5MCwweGU2LDB4MjQsCi0weGZkLDB4NzUsMHhmMCwweDBhLDB4YTQsMHgyNCwweDFjLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHg3OCwweGEwLAotMHhlNiwweGZhLDB4MDgsMHhlNiwweGY5LDB4N2IsMHgwYSwweDc4LDB4MDEsMHgxMiwweDAzLDB4YTcsMHg3OCwweGEwLDB4ODYsMHg4MywKLTB4MDgsMHg4NiwweDgyLDB4NzksMHhmOCwweDdhLDB4MzQsMHg3YiwweDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhmNSwweDEyLDB4MGYsCi0weGQzLDB4YzIsMHgwMywweDc4LDB4OTAsMHhlNiwweGZjLDB4MTIsMHgxMSwweDIzLDB4NzgsMHg4ZiwweGVjLDB4ZjYsMHhlYywweDYwLAotMHgwYSwweDdkLDB4MDAsMHg3YywweDA4LDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwKLTB4MGYsMHg3YywweDc4LDB4YTMsMHhlNiwweDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsCi0weDQ0LDB4MTAsMHg1NCwweGRmLDB4ZmMsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LDB4ZTYsMHgzNCwweDAwLAotMHhmNSwweDgzLDB4ZWMsMHhmMCwweDc4LDB4OGYsMHhlYywweGY2LDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4NDgsMHg3OCwKLTB4OTAsMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsCi0weDAwLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhlZiwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4NDgsMHg3OCwweDkwLAotMHhlNiwweGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwKLTB4ZjUsMHg4MywweGUwLDB4NDQsMHgxMCwweGYwLDB4YzIsMHgwMywweDdjLDB4YzgsMHgxMiwweDMyLDB4NDgsMHg3OCwweDkwLDB4ZTYsCi0weGZjLDB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNCwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LAotMHg4MywweGUwLDB4NDQsMHgyMCwweGYwLDB4YzIsMHgwMywweDdjLDB4ZjAsMHgxMiwweDMyLDB4NDgsMHg3OCwweDkwLDB4ZTYsMHhmYywKLTB4MTIsMHgwZiwweDdjLDB4NzgsMHhhMywweGU2LDB4MjQsMHgwNSwweGY1LDB4ODIsMHgxOCwweGU2LDB4MzQsMHgwMCwweGY1LDB4ODMsCi0weGUwLDB4MzAsMHhlNCwweDE1LDB4YzIsMHgwMywweDc4LDB4OTAsMHhlNiwweDQ0LDB4MTAsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDA3LAotMHgxMiwweDMxLDB4OWEsMHgxMiwweDMxLDB4MDgsMHgwMiwweDE3LDB4NDksMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwKLTB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGNmLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhjOCwweDEyLDB4MzIsCi0weDQ4LDB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA0LDB4ZjUsMHg4MiwweDE4LAotMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg0NCwweDMwLDB4ZjAsMHhjMiwweDAzLDB4N2MsMHhmMCwweDEyLDB4MzIsMHg0OCwKLTB4NzgsMHg5MCwweGU2LDB4ZmMsMHgxMiwweDBmLDB4N2MsMHg3OCwweGEzLDB4ZTYsMHgyNCwweDA1LDB4ZjUsMHg4MiwweDE4LDB4ZTYsCi0weDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHgzMCwweGU0LDB4MTQsMHhjMiwweDAzLDB4NzgsMHg5MCwweGU2LDB4NDQsMHgxMCwweDdmLAotMHgwMCwweGZlLDB4N2MsMHgwNywweDEyLDB4MzEsMHg5YSwweDEyLDB4MzEsMHgwOCwweDgwLDB4NWQsMHg3OCwweGEzLDB4ZTYsMHgyNCwKLTB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGVmLDB4ZjAsMHg3OCwweGEzLDB4ZTYsCi0weDI0LDB4MDQsMHhmNSwweDgyLDB4MTgsMHhlNiwweDM0LDB4MDAsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsMHg3OCwweDkwLAotMHhlNiwweDI0LDB4ZmQsMHg3NSwweGYwLDB4MGEsMHhhNCwweDI0LDB4MWMsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywKLTB4YWMsMHg4MiwweGFkLDB4ODMsMHg3OCwweGEwLDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVjLDB4ZjksMHhlZCwweGZhLDB4N2IsCi0weDBhLDB4NzgsMHgwMSwweDEyLDB4MDMsMHhhNywweGMyLDB4MDMsMHg3OCwweDkwLDB4ZTYsMHhmYywweDEyLDB4MTEsMHgyMywweDdkLAotMHgwMCwweDdjLDB4MGIsMHgxMiwweDI0LDB4YjEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDEyLDB4MzAsMHg4NSwweDkwLDB4ZmYsMHg5MSwKLTB4ZTAsMHg5MCwweGZkLDB4NDEsMHhmMCwweDdkLDB4MDIsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4MjIsCi0weDEyLDB4MzAsMHg4NSwweDkwLDB4ZmQsMHg0MCwweGUwLDB4ZjQsMHhmYywweDkwLDB4ZmYsMHg5MSwweGUwLDB4NWMsMHhmNSwweDMzLAotMHg5MCwweGZkLDB4NDEsMHhlMCwweGZjLDB4OTAsMHhmZCwweDQwLDB4ZTAsMHg1YywweDQyLDB4MzMsMHhlNSwweDMzLDB4OTAsMHhmZiwKLTB4OTEsMHhmMCwweDdjLDB4MDAsMHgxMiwweDI1LDB4NGEsMHgxMiwweDMxLDB4MDgsMHgyMiwweDc0LDB4M2MsMHg5MCwweGZiLDB4ZTgsCi0weGYwLDB4NzQsMHgzZSwweDkwLDB4ZmIsMHhlOCwweGYwLDB4ZTQsMHg5MCwweGZkLDB4MzAsMHhmMCwweDIyLDB4OGQsMHgzNSwweDhjLAotMHgzNCwweGVjLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMiwweDgwLDB4MjgsMHhiNCwweDAyLDB4MDIsMHg4MCwKLTB4MDMsMHhkMywweDQwLDB4MDgsMHhhOCwweDM1LDB4YzYsMHgyNSwweGUwLDB4ZjYsMHg4MCwweDE4LDB4YjQsMHgwNCwweDAyLDB4ODAsCi0weDAzLDB4ZDMsMHg0MCwweDBhLDB4YTgsMHgzNSwweGM2LDB4MjUsMHhlMCwweDI1LDB4ZTAsMHhmNiwweDgwLDB4MDYsMHhhOCwweDM1LAotMHg3NiwweDAwLDB4ODAsMHgwMCwweDIyLDB4OGMsMHgzYywweDhkLDB4M2IsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHg3NSwKLTB4NjAsMHgwNiwweDc1LDB4NjEsMHgwMCwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg2ZSwweDEyLDB4MDEsMHhlNiwweGI0LDB4ODAsCi0weDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MTgsMHg5ZSwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLAotMHgwMCwweDAzLDB4MTIsMHgwMSwweGVjLDB4NTQsMHhmMCwweGI0LDB4MzAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NWYsMHg5MCwKLTB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwOCwweDEyLDB4MDIsMHgwZSwweGZhLDB4ZmQsMHhlYiwweGZlLDB4N2YsCi0weDAxLDB4OTAsMHhmZCwweDM0LDB4MTIsMHgwNCwweDZlLDB4ZWUsMHhjZCwweDkwLDB4MzUsMHgwMiwweGZjLDB4ZTQsMHg5MywweGZmLAotMHg3NCwweDAxLDB4OTMsMHhmZSwweGY5LDB4ZWYsMHhmYSwweDdiLDB4MDEsMHhlYSwweGZmLDB4ZTksMHhmZSwweGVjLDB4YzMsMHg5ZSwKLTB4ZWQsMHg5ZiwweDQwLDB4MjUsMHg5MCwweDM1LDB4MDQsMHhlNCwweDkzLDB4ZmQsMHg3NCwweDAxLDB4OTMsMHhmYywweGVkLDB4ZmUsCi0weGVjLDB4ZmQsMHg3ZiwweDAxLDB4ZWUsMHhjZCwweGZjLDB4OTAsMHhmZCwweDM2LDB4ZTAsMHhkMywweDljLDB4OTAsMHhmZCwweDM1LAotMHhlMCwweDlkLDB4NTAsMHgwNSwweDc1LDB4NjAsMHg4MCwweDgwLDB4MzMsMHgxMiwweDE5LDB4YmMsMHg4MCwweDJlLDB4YjQsMHg2MCwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDBiLDB4YWMsMHgzYywweGFkLDB4M2IsMHgxMiwweDA3LDB4ODIsMHg4YywweDYwLDB4ODAsCi0weDFiLDB4YjQsMHgxMCwweDAzLDB4YjMsMHg0MCwweDEwLDB4YzMsMHhiNCwweDIwLDB4MDMsMHhiMywweDQwLDB4MDksMHhjMywweGI0LAotMHg0MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDc1LDB4NjAsMHg4MSwweDgwLDB4MDAsMHg4MCwweDc1LDB4YjQsMHg4MSwKLTB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDZiLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDAzLDB4MTIsCi0weDAxLDB4ZWMsMHg1NCwweGYwLDB4YjQsMHgzMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxZCwweDkwLDB4ZmQsMHgzMSwweDEyLAotMHgwNCwweDgwLDB4OTAsMHgwMCwweDA4LDB4MTIsMHgwMiwweDBlLDB4ZmEsMHhmZCwweGViLDB4ZmUsMHg3ZiwweDAxLDB4OTAsMHhmZCwKLTB4MzcsMHgxMiwweDA0LDB4NmUsMHgxMiwweDE5LDB4MjYsMHg4MCwweDM2LDB4YjQsMHg2MCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsCi0weDEzLDB4NzUsMHgzYSwweDYxLDB4ZTQsMHhmNSwweDM5LDB4ZjUsMHgzOCwweGFjLDB4M2MsMHhhZCwweDNiLDB4MTIsMHgwNSwweGRlLAotMHg4YywweDYwLDB4ODAsMHgxYiwweGI0LDB4MTAsMHgwMywweGIzLDB4NDAsMHgxMCwweGMzLDB4YjQsMHgyMCwweDAzLDB4YjMsMHg0MCwKLTB4MDksMHhjMywweGI0LDB4NDAsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MDAsMHg3NSwweDYwLDB4ODEsMHg4MCwweDAwLDB4ODAsCi0weDAyLDB4ODAsMHgwMCwweGU1LDB4NjAsMHhmYywweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweGVjLDB4OTAsMHgwMCwweDAyLAotMHgxMiwweDAzLDB4MTcsMHhhYywweDYxLDB4MjIsMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsMHgxMiwKLTB4MDEsMHhlYywweDYwLDB4MDQsMHg3NCwweDAxLDB4ODAsMHgwMSwweGU0LDB4YTIsMHhlMCwweDkyLDB4MDEsMHg5MCwweGZkLDB4MzEsCi0weDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwMywweGZkLDB4NTAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM0LDB4MTIsMHgwNCwweDZlLAotMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDUsMHgxMiwweDAxLDB4ZWMsMHhmNSwweDYxLDB4OTAsMHgwMCwKLTB4MDQsMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4ZmMsMHg3ZCwweDYxLDB4MTIsMHgxNywweDlkLDB4ZTUsMHg2MSwweDcwLDB4MDQsCi0weDc1LDB4NjAsMHgwOCwweDIyLDB4NzUsMHg2MCwweDAwLDB4NzgsMHg3ZSwweDc2LDB4MDAsMHg3OCwweDdlLDB4ZTYsMHhjMywweDk1LAotMHg2MSwweDUwLDB4MzgsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4ODAsMHgxMiwweDAxLDB4ZTYsMHhmYywweDkwLDB4ZmQsMHgzNCwKLTB4MTIsMHgwNCwweDgwLDB4ZWMsMHgxMiwweDAzLDB4MGYsMHgzMCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzksMHhlMCwweDA0LDB4ZjAsCi0weDkwLDB4ZmQsMHgzOCwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg3OCwweDdlLDB4MDYsMHg5MCwweGZkLDB4MzYsMHhlMCwweDA0LAotMHhmMCwweDkwLDB4ZmQsMHgzNSwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg4MCwweGMwLDB4MjIsMHg5MCwweGZkLDB4MzIsMHhlMCwKLTB4ZmQsMHhhMywweGUwLDB4ZmMsMHhlZCwweGZlLDB4ZWMsMHhmZCwweDdmLDB4MDEsMHhlZCwweDI0LDB4MGEsMHhmZCwweDUwLDB4MDEsCi0weDBlLDB4OTAsMHhmZCwweDNhLDB4MTIsMHgwNCwweDZlLDB4OTAsMHhmZCwweDMxLDB4MTIsMHgwNCwweDgwLDB4OTAsMHgwMCwweDA0LAotMHgxMiwweDAxLDB4ZWMsMHg1NCwweDBmLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxNywweDkwLDB4ZmQsMHgzYSwKLTB4MTIsMHgwNCwweDgwLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg2ZSwweDc4LDB4ODIsCi0weDc2LDB4MDEsMHg4MCwweDRlLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgxOSwweDkwLDB4ZmQsMHgzYSwweDEyLAotMHgwNCwweDgwLDB4ZWQsMHgyNCwweDAyLDB4ZmQsMHg1MCwweDAxLDB4MGUsMHg5MCwweGZkLDB4MzcsMHgxMiwweDA0LDB4NmUsMHg3OCwKLTB4ODIsMHg3NiwweDAyLDB4ODAsMHgyZCwweGI0LDB4MDQsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MTksMHg5MCwweGZkLDB4M2EsCi0weDEyLDB4MDQsMHg4MCwweGVkLDB4MjQsMHgwNCwweGZkLDB4NTAsMHgwMSwweDBlLDB4OTAsMHhmZCwweDM3LDB4MTIsMHgwNCwweDZlLAotMHg3OCwweDgyLDB4NzYsMHgwNCwweDgwLDB4MGMsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDAwLDB4NzUsMHg2MCwKLTB4MDgsMHgyMiwweDkwLDB4ZmQsMHgzMSwweDEyLDB4MDQsMHg4MCwweDkwLDB4MDAsMHgwNSwweDEyLDB4MDEsMHhlYywweGY1LDB4NjEsCi0weDc4LDB4N2YsMHg3NiwweDAwLDB4NzgsMHg3ZiwweGU2LDB4YzMsMHg5NSwweDYxLDB4NDAsMHgwMywweDAyLDB4MWIsMHgyNCwweDc4LAotMHg4MCwweDc2LDB4MDAsMHg3OCwweDgwLDB4ZTYsMHhjMywweDc4LDB4ODIsMHg5NiwweDUwLDB4NzYsMHg5MCwweGZkLDB4MzQsMHgxMiwKLTB4MDQsMHg4MCwweDEyLDB4MDEsMHhlNiwweGZjLDB4OTAsMHhmZCwweDNhLDB4MTIsMHgwNCwweDg5LDB4MTIsMHgwMSwweGUwLDB4ZjQsCi0weDVjLDB4ZmMsMHgxMiwweDAxLDB4ZTAsMHhmOCwweDkwLDB4ZmQsMHgzNywweDEyLDB4MDQsMHg4MCwweGU4LDB4YzAsMHhlMCwweDEyLAotMHgwMSwweGU2LDB4YzgsMHhkMCwweGUwLDB4YzgsMHg1OCwweDRjLDB4ZmMsMHg5MCwweGZkLDB4MzQsMHgxMiwweDA0LDB4ODAsMHhlYywKLTB4MTIsMHgwMywweDBmLDB4NzgsMHg4MSwweGVjLDB4ZjYsMHg5MCwweGZkLDB4MzksMHhlMCwweDA0LDB4ZjAsMHg5MCwweGZkLDB4MzgsCi0weDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHgwOSwweGU5LDB4NzAsMHgwMSwweDBhLDB4OTAsMHhmZCwweDNhLDB4MTIsMHgwNCwweDc3LAotMHg5MCwweGZkLDB4MzEsMHgxMiwweDA0LDB4ODAsMHg5MCwweDAwLDB4MDQsMHgxMiwweDAxLDB4ZWMsMHgzMCwweGU0LDB4MGUsMHg5MCwKLTB4ZmQsMHgzNiwweGUwLDB4MDQsMHhmMCwweDkwLDB4ZmQsMHgzNSwweDcwLDB4MDMsMHhlMCwweDA0LDB4ZjAsMHg3OCwweDgwLDB4MDYsCi0weDgwLDB4ODEsMHg3OCwweDgyLDB4ZTYsMHhmZCwweGU0LDB4ZmUsMHhmZiwweGVlLDB4Y2QsMHhmYywweDkwLDB4ZmQsMHgzOSwweGUwLAotMHgyYywweGYwLDB4OTAsMHhmZCwweDM4LDB4ZTAsMHgzZCwweGYwLDB4NzgsMHg4MiwweGU2LDB4ZmQsMHhlNCwweGZlLDB4ZmYsMHhlZSwKLTB4Y2QsMHhmYywweDkwLDB4ZmQsMHgzYywweGUwLDB4MmMsMHhmMCwweDkwLDB4ZmQsMHgzYiwweGUwLDB4M2QsMHhmMCwweDc4LDB4N2YsCi0weDA2LDB4MDIsMHgxYSwweDY0LDB4NzUsMHg2MCwweDAwLDB4MjIsMHhlNSwweDNkLDB4MDUsMHgzZCwweDA0LDB4NzAsMHgwMiwweGIyLAotMHhiMCwweDIyLDB4YzAsMHhlMCwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4ZDAsMHhlOCwweGMwLDB4ZTAsMHhlOSwKLTB4YzAsMHhlMCwweGVhLDB4YzAsMHhlMCwweGViLDB4YzAsMHhlMCwweGVjLDB4YzAsMHhlMCwweGVkLDB4YzAsMHhlMCwweGVlLDB4YzAsCi0weGUwLDB4ZWYsMHhjMCwweGUwLDB4OTAsMHhmZiwweDkyLDB4ZTAsMHgxMiwweDAxLDB4YjcsMHgxYiwweDgwLDB4MzAsMHgxYiwweDgwLAotMHgzMiwweDFiLDB4OGYsMHgzOCwweDFiLDB4YTEsMHgzYSwweDFiLDB4YjMsMHgzZSwweDFiLDB4Y2IsMHg0NCwweDFiLDB4YmYsMHg0NiwKLTB4MWIsMHhkNywweDUwLDB4MWMsMHgxOSwweDUyLDB4MWIsMHhmOCwweDU0LDB4MWMsMHgzYSwweDU2LDB4MDAsMHgwMCwweDFjLDB4NWIsCi0weDkwLDB4ZmYsMHg5MiwweGUwLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgwMSwweDEyLDB4MzEsMHg5YSwweDAyLDB4MWMsMHg2YiwweGU0LAotMHhmZiwweDA0LDB4ZmUsMHg3YywweDAzLDB4MTIsMHgzMSwweDlhLDB4NzQsMHgyMCwweDkwLDB4ZmYsMHhmZSwweGYwLDB4MDIsMHgxYywKLTB4NmIsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MDIsMHgxMiwweDMxLDB4OWEsMHg3NCwweDQwLDB4OTAsMHhmZiwweGZlLDB4ZjAsCi0weDAyLDB4MWMsMHg2YiwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwNCwweDEyLDB4MzEsMHg5YSwweDAyLDB4MWMsMHg2YiwweGU0LAotMHhmZiwweDA0LDB4ZmUsMHg3YywweDA1LDB4MTIsMHgzMSwweDlhLDB4MDIsMHgxYywweDZiLDB4ZTQsMHhmZiwweDA0LDB4ZmUsMHg3YywKLTB4MDYsMHgxMiwweDMxLDB4OWEsMHgwMiwweDFjLDB4NmIsMHg5MCwweGZmLDB4YTUsMHhlMCwweDdkLDB4MDAsMHg5MCwweGZkLDB4MDAsCi0weGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZkLDB4MDEsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLDB4ZmQsMHgwMCwweGUwLAotMHg0NCwweDMzLDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDczLDB4OTAsMHhmZiwweGI1LDB4ZTAsMHg3ZCwweDAwLDB4OTAsMHhmZCwKLTB4MDIsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZCwweDAzLDB4ZTAsMHhmYywweGY1LDB4ODMsMHg5MCwweGZkLDB4MDIsCi0weGUwLDB4NDQsMHg0MywweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHg1MiwweDkwLDB4ZmYsMHhhNiwweGUwLDB4N2QsMHgwMCwweDkwLAotMHhmZCwweDA0LDB4Y2QsMHhmMCwweGEzLDB4Y2QsMHhmMCwweDkwLDB4ZmQsMHgwNSwweGUwLDB4ZmMsMHhmNSwweDgzLDB4OTAsMHhmZCwKLTB4MDQsMHhlMCwweDQ0LDB4MzQsMHhmZCwweDEyLDB4MWMsMHhmZSwweDgwLDB4MzEsMHg5MCwweGZmLDB4YjYsMHhlMCwweDdkLDB4MDAsCi0weDkwLDB4ZmQsMHgwNiwweGNkLDB4ZjAsMHhhMywweGNkLDB4ZjAsMHg5MCwweGZkLDB4MDcsMHhlMCwweGZjLDB4ZjUsMHg4MywweDkwLAotMHhmZCwweDA2LDB4ZTAsMHg0NCwweDQ0LDB4ZmQsMHgxMiwweDFjLDB4ZmUsMHg4MCwweDEwLDB4OTAsMHhmZiwweDkyLDB4ZTAsMHg3ZCwKLTB4MDAsMHhmYywweGVkLDB4NDQsMHhhYSwweGZkLDB4MTIsMHgxYywweGZlLDB4ODAsMHgwMCwweGU0LDB4OTAsMHhmZiwweDkyLDB4ZjAsCi0weGQwLDB4ZTAsMHhmZiwweGQwLDB4ZTAsMHhmZSwweGQwLDB4ZTAsMHhmZCwweGQwLDB4ZTAsMHhmYywweGQwLDB4ZTAsMHhmYiwweGQwLAotMHhlMCwweGZhLDB4ZDAsMHhlMCwweGY5LDB4ZDAsMHhlMCwweGY4LDB4ZDAsMHhkMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwKLTB4ZDAsMHhlMCwweDMyLDB4MDUsMHg4MSwweDA1LDB4ODEsMHgwNSwweDgxLDB4MDUsMHg4MSwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsCi0weGVkLDB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg5MCwweGZmLDB4NmEsMHhlMCwweDIwLDB4ZTcsMHgwMiwweDgwLDB4ZjcsMHg5MCwweGZmLAotMHg2OSwweGUwLDB4N2QsMHgwMCwweGE4LDB4ODEsMHgxOCwweGNkLDB4ZjYsMHhjZCwweDA4LDB4ZjYsMHg3ZCwweDAzLDB4YTgsMHg4MSwKLTB4ZTYsMHgxOCwweGZjLDB4ZTYsMHhjYywweDI1LDB4ZTAsMHhjYywweDMzLDB4Y2MsMHhkZCwweGY5LDB4Y2MsMHhmNiwweGNjLDB4MDgsCi0weGY2LDB4YTgsMHg4MSwweDE4LDB4ZTYsMHg0NCwweGY4LDB4ZjYsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwweDA4LAotMHhlNiwweGZjLDB4YTgsMHg4MSwweDE4LDB4ODYsMHg4MywweDA4LDB4ODYsMHg4MiwweGVkLDB4ZjAsMHhhMywweGVjLDB4ZjAsMHg3NCwKLTB4MDIsMHg5MCwweGZmLDB4NmEsMHhmMCwweDE1LDB4ODEsMHgxNSwweDgxLDB4MTUsMHg4MSwweDE1LDB4ODEsMHgyMiwweGU1LDB4ODEsCi0weDI0LDB4MDUsMHhmNSwweDgxLDB4ZTQsMHhhOCwweDgxLDB4MTgsMHhmNiwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGVkLAotMHhmNiwweDA4LDB4ZWMsMHhmNiwweDkwLDB4ZmIsMHhmZCwweGUwLDB4MjQsMHhmOCwweDUwLDB4MDMsMHgwMiwweDFlLDB4MWYsMHhlNCwKLTB4YTgsMHg4MSwweDE4LDB4MTgsMHhmNiwweGE4LDB4ODEsMHgxOCwweGU2LDB4ZmUsMHhhOCwweDgxLDB4MTgsMHgxOCwweDE4LDB4MTgsCi0weGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHg3ZiwweDAwLDB4ZWYsMHgyNCwweGY4LDB4NDAsMHg0ZCwweGU0LDB4ZWYsMHgyNSwweGUwLAotMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHhlMCwweGZiLDB4YTMsMHhlMCwweDZjLDB4NzAsMHgwMywKLTB4ZmEsMHhlYiwweDZkLDB4NzAsMHgwOSwweDc0LDB4MDEsMHhhOCwweDgxLDB4MTgsMHgxOCwweGY2LDB4ODAsMHgyYiwweGU0LDB4ZWYsCi0weDI1LDB4ZTAsMHgyNCwweDg1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHg3YSwweDAwLDB4ZTAsMHg1NCwweGYwLAotMHhjYywweGY4LDB4Y2MsMHhjZCwweGY5LDB4Y2QsMHhmYiwweDc4LDB4MDAsMHhlOSwweDU0LDB4ZjAsMHhmOSwweGVhLDB4NjgsMHg3MCwKLTB4MDIsMHhlYiwweDY5LDB4NzAsMHgwMSwweDBlLDB4MGYsMHg4MCwweGFlLDB4YTgsMHg4MSwweDE4LDB4ZWUsMHhmNiwweGE4LDB4ODEsCi0weDE4LDB4MTgsMHgxOCwweDE4LDB4ZWQsMHhmNiwweDA4LDB4ZWMsMHhmNiwweGE4LDB4ODEsMHhlZiwweGY2LDB4YTgsMHg4MSwweDE4LAotMHgxOCwweGU2LDB4NzAsMHg3OSwweGE4LDB4ODEsMHgxOCwweGU2LDB4MjQsMHhmNywweDQwLDB4NzEsMHhhOCwweDgxLDB4MTgsMHgxOCwKLTB4MTgsMHgxOCwweGU2LDB4NTQsMHgwZiwweGE4LDB4ODEsMHhmNiwweDY0LDB4MDQsMHg2MCwweDE3LDB4YTgsMHg4MSwweGU2LDB4NjQsCi0weDAzLDB4NjAsMHgxMCwweGE4LDB4ODEsMHgxOCwweDE4LDB4MTgsMHgxOCwweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwweDFjLAotMHg5MywweDgwLDB4NGEsMHg3YywweDBhLDB4MTIsMHgzMCwweGZhLDB4YTgsMHg4MSwweDE4LDB4MTgsMHgxOCwweDE4LDB4ZTYsMHhmZCwKLTB4MDgsMHhlNiwweGZjLDB4OTAsMHhmYiwweGZjLDB4ZTAsMHgyNSwweGUwLDB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsCi0weGY1LDB4ODMsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLDB4OTAsMHhmYiwweGZjLDB4ZTAsMHhmZiwweGU0LDB4ZWYsMHgwNCwweDU0LAotMHgwNywweGZmLDB4OTAsMHhmYiwweGZjLDB4ZjAsMHg5MCwweGZiLDB4ZmQsMHhlMCwweDA0LDB4ZjAsMHgxMiwweDMxLDB4OTMsMHg5MCwKLTB4ZmIsMHhmZSwweGUwLDB4NzAsMHgwOCwweGU0LDB4ZmUsMHhmZiwweDdjLDB4MGYsMHgxMiwweDMxLDB4OWEsMHg4MCwweDI3LDB4OTAsCi0weGZiLDB4ZmYsMHhlMCwweDA0LDB4ZjAsMHg1NCwweDNmLDB4NzAsMHgxZCwweDkwLDB4ZmIsMHhmZiwweGUwLDB4NDQsMHhmZSwweDdkLAotMHgwMCwweGZjLDB4OTAsMHhmYiwweGZjLDB4ZTAsMHgyNSwweGUwLDB4MjQsMHg4NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwKLTB4ODMsMHhlZCwweGYwLDB4YTMsMHhlYywweGYwLDB4ZTUsMHg4MSwweDI0LDB4ZmIsMHhmNSwweDgxLDB4MjIsMHg3OCwweDg1LDB4NzYsCi0weDAwLDB4NzgsMHg4NiwweDc2LDB4MDAsMHg3NCwweDAxLDB4OTAsMHhmYiwweGZlLDB4ZjAsMHgxMiwweDMwLDB4ODUsMHg5MCwweGZiLAotMHhmZCwweGUwLDB4NjAsMHg1OSwweDdjLDB4MGEsMHgxMiwweDMwLDB4ZmEsMHg5MCwweGZiLDB4ZmIsMHhlMCwweDI1LDB4ZTAsMHgyNCwKLTB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGUwLDB4ZmQsMHhhMywweGUwLDB4ZmMsMHg5MCwweGZiLDB4ZmIsCi0weGUwLDB4MjUsMHhlMCwweDI0LDB4ODUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhhMywweGYwLAotMHg5MCwweGZiLDB4ZmIsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDA0LDB4NTQsMHgwNywweGZmLDB4OTAsMHhmYiwweGZiLDB4ZjAsMHg5MCwKLTB4ZmIsMHhmZCwweGUwLDB4MTQsMHhmMCwweDc4LDB4ODMsMHhlZCwweGY2LDB4MDgsMHhlYywweGY2LDB4MTIsMHgzMSwweDkzLDB4YjIsCi0weGIzLDB4NzgsMHg4MywweGU2LDB4ZmQsMHgwOCwweGU2LDB4ZmMsMHgxMiwweDA4LDB4ZTUsMHg4MCwweGExLDB4MTIsMHgzMSwweGU3LAotMHg3OCwweDg1LDB4MDYsMHhiNiwweDAwLDB4MTEsMHg3OCwweDg1LDB4NzYsMHgwMCwweDc4LDB4ODYsMHhlNiwweGY0LDB4MDQsMHgwNCwKLTB4YTIsMHhlMCwweDkyLDB4YjQsMHg3OCwweDg2LDB4ZjYsMHg4MCwweDg1LDB4ZTQsMHg5MCwweGZiLDB4ZmUsMHhmMCwweDkwLDB4ZmIsCi0weGZkLDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHhlZCwweDQ0LDB4Y2YsMHhmZCwweDEyLDB4MWMsMHg5MywweDEyLDB4MzEsMHgwOCwweDIyLAotMHgxMiwweDMwLDB4ODUsMHhlNSwweDZhLDB4NjQsMHg0OSwweDQ1LDB4NjksMHg2MCwweDE1LDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwKLTB4MGYsMHg3ZCwweDAwLDB4ZDMsMHg5NSwweDZhLDB4ZWQsMHg5NSwweDY5LDB4NTAsMHgwNSwweDEyLDB4MmUsMHhjZSwweDgwLDB4MDMsCi0weDEyLDB4MmYsMHg5ZSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4ZTUsMHg2YSwweDY0LDB4NDksMHg0NSwweDY5LAotMHg2MCwweDA1LDB4MTIsMHgyZiwweGQ4LDB4ODAsMHgwZSwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsMHgwOCwweGYwLDB4OTAsMHhmZiwKLTB4ODMsMHhlMCwweDU0LDB4N2YsMHhmMCwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4OGMsMHg1NCwweGVjLDB4NTQsCi0weGYwLDB4YjQsMHgxMCwweDE1LDB4NzUsMHg2NCwweDNkLDB4NzUsMHg2MywweGZkLDB4NzUsMHg2MiwweDAxLDB4ZTUsMHg2NCwweDI0LAotMHgwMywweGY1LDB4NjQsMHhlNSwweDYzLDB4MzQsMHgwMCwweGY1LDB4NjMsMHhlNCwweGY1LDB4NTcsMHhmNSwweDU2LDB4ZTUsMHg1NiwKLTB4YzMsMHg5NCwweDAxLDB4NTAsMHgyNywweGU1LDB4NTQsMHg1NCwweDBmLDB4ZmMsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsCi0weDEyLDB4MGUsMHg4MiwweDhjLDB4NTUsMHhlYywweDYwLDB4MDIsMHg4MCwweDEyLDB4MDUsMHg2NCwweGU1LDB4NjQsMHg3MCwweDAyLAotMHgwNSwweDYzLDB4MDUsMHg1NywweGU1LDB4NTcsMHg3MCwweDAyLDB4MDUsMHg1NiwweDgwLDB4ZDIsMHhlNSwweDU0LDB4NTQsMHgwZiwKLTB4MjQsMHg5NywweGY4LDB4YzYsMHg1NCwweGZlLDB4ZjYsMHhlNSwweDU0LDB4NTQsMHgwZiwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTIsCi0weDEyLDB4MzEsMHg5YSwweGU1LDB4NTUsMHgxNCwweDcwLDB4MDksMHg3ZCwweDAwLDB4N2MsMHgwOSwweDEyLDB4MjQsMHhiMSwweDgwLAotMHgwNywweGFkLDB4NTcsMHg3YywweDAwLDB4MTIsMHgyNCwweGIxLDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsMHg5MCwKLTB4ZmYsMHhmYywweGUwLDB4NDQsMHgwMiwweGYwLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHgzMCwweGU3LDB4MTMsMHg5MCwweGZmLDB4ODMsCi0weGUwLDB4NDQsMHg4MCwweGYwLDB4NDMsMHg2NywweDgwLDB4OTAsMHhmZiwweGZjLDB4ZTAsMHg0NCwweDAxLDB4ZjAsMHg4MCwweDExLAotMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDUzLDB4NjcsMHg3ZiwweDkwLDB4ZmYsMHhmYywweGUwLDB4NTQsMHhmZSwKLTB4ZjAsMHg5MCwweGZmLDB4ODEsMHhlMCwweDQ0LDB4ODAsMHhmMCwweDEyLDB4MjUsMHg2NCwweDkwLDB4ZmYsMHhmZSwweGUwLDB4NDQsCi0weDA1LDB4ZjAsMHg5MCwweGZmLDB4ZmMsMHhlMCwweDU0LDB4ZmQsMHhmMCwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LAotMHg3YywweDAxLDB4MTIsMHgzMiwweDQ4LDB4NzgsMHhhNywweGU2LDB4NDQsMHgwMiwweGY2LDB4NzQsMHhmZSwweGZjLDB4MDQsMHhmZCwKLTB4MTIsMHgxYywweGZlLDB4OTAsMHhmZiwweDZhLDB4ZTAsMHgzMCwweGU3LDB4MDIsMHg4MCwweGY3LDB4ZTQsMHhmNSwweDRlLDB4NzUsCi0weDRkLDB4MTAsMHhhYywweDRlLDB4YWQsMHg0ZCwweGU1LDB4NGUsMHgxNSwweDRlLDB4NzAsMHgwMiwweDE1LDB4NGQsMHhlYywweDRkLAotMHg2MCwweDAyLDB4ODAsMHhlZSwweDQzLDB4ODcsMHgwMSwweDEyLDB4MzEsMHgwOCwweDIyLDB4MTIsMHgzMCwweDg1LDB4N2MsMHgwMiwKLTB4MTIsMHgzMSwweDE0LDB4NzgsMHhhNywweGU2LDB4NTQsMHhmZCwweGY2LDB4MTIsMHgzMSwweDA4LDB4MjIsMHgxMiwweDMwLDB4ODUsCi0weDc4LDB4YTcsMHhlNiwweDMwLDB4ZTAsMHgyYywweDc4LDB4YTcsMHhlNiwweDMwLDB4ZTEsMHgyNiwweDc4LDB4YTcsMHhlNiwweGZjLAotMHhmNSwweDgzLDB4MTgsMHhlNiwweDQ0LDB4ZjAsMHhmZCwweDEyLDB4MWMsMHg5MywweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgyMCwKLTB4ZjAsMHg3YywweDAyLDB4MTIsMHgzMiwweDQ4LDB4NzgsMHhhNywweGU2LDB4NTQsMHhmZCwweGY2LDB4NzQsMHgxYSwweDkwLDB4ZmYsCi0weGZlLDB4ZjAsMHg3OCwweGE3LDB4ZTYsMHhmYywweGY1LDB4ODMsMHgxOCwweGU2LDB4NDQsMHhmMSwweGZkLDB4MTIsMHgxYywweDkzLAotMHgxMiwweDMxLDB4MDgsMHgyMiwweDc1LDB4NjcsMHgwMCwweDc1LDB4NjgsMHgwMCwweGU0LDB4ZjUsMHg2NiwweGY1LDB4NjUsMHhlNCwKLTB4ZjUsMHg2OSwweDc1LDB4NmEsMHg0OSwweDc0LDB4ODQsMHg5MCwweGZmLDB4ODIsMHhmMCwweDc0LDB4ODQsMHg5MCwweGZmLDB4ODAsCi0weGYwLDB4NzQsMHg4MCwweDkwLDB4ZmYsMHg2OCwweGYwLDB4NzQsMHg4MCwweDkwLDB4ZmYsMHg2YSwweGYwLDB4YWQsMHg0NiwweGFmLAotMHg0NSwweDdlLDB4MDAsMHhlZSwweDI0LDB4ZmMsMHg1MCwweDAzLDB4MDIsMHgyMSwweDZhLDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywKLTB4YTQsMHgyNCwweDNmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDU0LDB4ODAsCi0weGZkLDB4ZTQsMHhlZiwweDU0LDB4MGYsMHgxNCwweGZmLDB4ZWQsMHg2MCwweDM4LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LAotMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHg3NCwweDkwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwKLTB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsCi0weDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0ZSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLAotMHg4MCwweDM0LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwKLTB4ODMsMHg3NCwweDkwLDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBhLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDBlLDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZmLDB4ZjUsMHg4MywweGU0LDB4ZjAsMHgwZSwweDAyLDB4MjAsMHhkMywweDhkLDB4NDYsMHg4ZSwweDQ0LDB4OGYsMHg0NSwKLTB4NzQsMHg3ZiwweDkwLDB4ZmYsMHhmZCwweGYwLDB4NzQsMHg5MCwweDkwLDB4ZmYsMHhmYywweGYwLDB4OTAsMHhmYywweDE5LDB4ZTAsCi0weDMwLDB4ZTYsMHgwNywweDkwLDB4ZmYsMHhmYywweGUwLDB4NDQsMHgwNCwweGYwLDB4MjIsMHg5MCwweGZjLDB4MGQsMHhlMCwweDE0LAotMHg3MCwweDA0LDB4OTAsMHhmYywweDBjLDB4ZTAsMHg3MCwweDM5LDB4OTAsMHhmYywweDAwLDB4NzksMHgwNiwweDdhLDB4MzUsMHg3YiwKLTB4MTIsMHg3OCwweDAxLDB4MTIsMHgwMywweGY1LDB4N2YsMHgwMCwweGVmLDB4MzMsMHg0MCwweDE1LDB4ZWYsMHg5MCwweDM1LDB4NGQsCi0weDkzLDB4ZmMsMHhlZiwweDI0LDB4ODAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHgwZiwweDgwLAotMHhlNywweDhmLDB4NTksMHg5MCwweGZjLDB4MmIsMHg3OSwweDE4LDB4N2EsMHgzNSwweDdiLDB4MzUsMHg3OCwweDAxLDB4MTIsMHgwMywKLTB4ZjUsMHhlNCwweDkwLDB4ZmYsMHhmZiwweGYwLDB4NzQsMHg1MSwweDkwLDB4ZmYsMHhmYSwweGYwLDB4NzQsMHgwNCwweDkwLDB4ZmYsCi0weGZiLDB4ZjAsMHg3NCwweDUzLDB4OTAsMHhmZiwweGY4LDB4ZjAsMHg3NCwweDUxLDB4OTAsMHhmZiwweGY5LDB4ZjAsMHg3NCwweDU1LAotMHg5MCwweGZmLDB4ZjcsMHhmMCwweDc0LDB4OTMsMHg5MCwweGZmLDB4ZjYsMHhmMCwweDc0LDB4MzIsMHg5MCwweGZmLDB4ZjUsMHhmMCwKLTB4NzUsMHg2NCwweDNkLDB4NzUsMHg2MywweGZkLDB4NzUsMHg2MiwweDAxLDB4ZTQsMHg5MCwweGZmLDB4ODMsMHhmMCwweDc0LDB4ODAsCi0weDkwLDB4ZmYsMHg4MSwweGYwLDB4NzUsMHg1OCwweDA0LDB4ZTUsMHg1OCwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHgzZiwweGY1LAotMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDc4LDB4ODksMHhmNiwweGZjLDB4NTQsMHgwZiwweDE0LDB4ZmMsMHg3OCwKLTB4ODksMHhlYywweGY2LDB4ZTUsMHg1OCwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg0MSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsCi0weGY1LDB4ODMsMHhlMCwweDc4LDB4OGMsMHg3NiwweGY4LDB4MDgsMHg3NiwweDAwLDB4ZmMsMHg3OCwweDg5LDB4ZTYsMHg3NSwweGYwLAotMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4ODksMHhlNiwKLTB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYywweGYwLDB4NzgsCi0weDhjLDB4ZTYsMHhmZiwweDA4LDB4ZTYsMHg3ZSwweDAzLDB4Y2YsMHhjMywweDEzLDB4Y2YsMHgxMywweGRlLDB4ZjksMHhmZSwweDc4LAotMHg4OSwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlZSwKLTB4ZjAsMHg3OCwweDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGEsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsCi0weDgzLDB4NzQsMHg4MCwweGYwLDB4NzgsMHg4YSwweGVjLDB4ZjYsMHg3ZCwweDAwLDB4NzgsMHg4ZCwweGU2LDB4MmMsMHhmNiwweDE4LAotMHhlNiwweDNkLDB4ZjYsMHg3OCwweDhjLDB4ZTYsMHhmZCwweDA4LDB4ZTYsMHg3YywweDAzLDB4Y2QsMHhjMywweDEzLDB4Y2QsMHgxMywKLTB4ZGMsMHhmOSwweGZjLDB4NzgsMHg4OSwweGU2LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHg3OCwweDg5LDB4ZTYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OGMsMHhlNiwweGZkLDB4MDgsMHhlNiwweGZjLDB4NzgsMHg4OSwKLTB4ZTYsMHhmZiwweDdlLDB4MDAsMHhlZSwweDI0LDB4ZmMsMHg1MCwweDAzLDB4MDIsMHgyNCwweDZiLDB4ZTQsMHhlZSwweDc1LDB4ZjAsCi0weDA3LDB4YTQsMHgyNCwweDNmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweGZmLDB4ZTQsMHhlZiwweDU0LAotMHg4MCwweGZhLDB4ZTQsMHhlZiwweDU0LDB4MGYsMHgxNCwweGZmLDB4ZTQsMHhlZSwweDc1LDB4ZjAsMHgwNywweGE0LDB4MjQsMHg0MSwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmYywweGY1LDB4ODMsMHhlMCwweDc4LDB4OGEsMHhmNiwweGVlLDB4NzUsMHhmMCwweDgwLDB4YTQsCi0weDI0LDB4MDgsMHhmOCwweGU1LDB4ZjAsMHgzNCwweGY4LDB4ZjksMHhlOCwweGZjLDB4ZTksMHhmZCwweDhhLDB4NTksMHhlYSwweDcwLAotMHgwMywweDAyLDB4MjMsMHhkOCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDc4LDB4OGEsMHhlNiwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsCi0weDRmLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4ZWQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLAotMHhjMywweDEzLDB4Y2IsMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NDksMHhmNSwKLTB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweDc4LDB4OGEsMHhlNiwweDdiLDB4MDAsMHhmYSwweGVjLDB4MmEsCi0weGZjLDB4ZWQsMHgzYiwweGZkLDB4ZmIsMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLAotMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRkLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwKLTB4ZjAsMHhlNCwweGVmLDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDRhLDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsCi0weDc0LDB4ODAsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4NGUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLAotMHhmNSwweDgzLDB4NzQsMHg4MCwweGYwLDB4MDIsMHgyNCwweDY3LDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwKLTB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlNCwweGYwLDB4NzgsMHg4YSwweGU2LDB4ZmEsMHhlNCwweGVmLDB4NzUsCi0weGYwLDB4MDgsMHhhNCwweDI0LDB4MGYsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLDB4ZjUsMHg4MywweGVhLDB4ZjAsMHhlZCwweGZiLAotMHhlYywweDdhLDB4MDMsMHhjYiwweGMzLDB4MTMsMHhjYiwweDEzLDB4ZGEsMHhmOSwweGZhLDB4ZTQsMHhlZiwweDc1LDB4ZjAsMHgwOCwKLTB4YTQsMHgyNCwweDA5LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlYSwweGYwLDB4NzgsMHg4YSwweGU2LDB4N2IsCi0weDAwLDB4ZmEsMHhlYywweDJhLDB4ZmMsMHhlZCwweDNiLDB4ZmQsMHhmYiwweGVjLDB4N2EsMHgwMywweGNiLDB4YzMsMHgxMywweGNiLAotMHgxMywweGRhLDB4ZjksMHhmYSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGQsMHhmNSwweDgyLDB4ZTQsMHgzNCwKLTB4ZmYsMHhmNSwweDgzLDB4ZWEsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGEsMHhmNSwweDgyLDB4ZTQsCi0weDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MGUsMHhmNSwweDgyLAotMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTQsMHhmMCwweDBlLDB4MDIsMHgyMiwweGY0LDB4OGUsMHg1OCwweDc4LDB4OGMsMHhlZCwKLTB4ZjYsMHgwOCwweGVjLDB4ZjYsMHg3OCwweDg5LDB4ZWYsMHhmNiwweDEyLDB4MjAsMHhhNCwweDIyLDB4OGMsMHgyNiwweGVjLDB4MzAsCi0weGU3LDB4MTgsMHhlNSwweDI2LDB4NTQsMHgwZiwweDE0LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LAotMHgzNCwweGZmLDB4ZjUsMHg4MywweGUwLDB4NTQsMHhkZiwweGYwLDB4ODAsMHgxNiwweGU1LDB4MjYsMHg1NCwweDBmLDB4MTQsMHg3NSwKLTB4ZjAsMHgwOCwweGE0LDB4MjQsMHgwOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweGRmLDB4ZjAsCi0weDIyLDB4ZWMsMHg5MCwweGZkLDB4M2YsMHhmMCwweDhjLDB4MjQsMHhlZCwweDI0LDB4MDMsMHhmNSwweDI1LDB4N2QsMHgwMCwweGQzLAotMHg5NSwweDZjLDB4ZWQsMHg5NSwweDZiLDB4NDAsMHgwMywweDg1LDB4NmMsMHgyNSwweGU1LDB4MjUsMHgyNCwweGI3LDB4NTAsMHgwOSwKLTB4NzUsMHgyNSwweDAzLDB4NzQsMHgwMiwweDkwLDB4ZmQsMHgzZiwweGYwLDB4YWMsMHgyNSwweDEyLDB4MmYsMHhjMywweDIyLDB4ZTQsCi0weGY1LDB4NjYsMHhmNSwweDY1LDB4MTIsMHgyNCwweGU4LDB4MjIsMHg5MCwweGZkLDB4M2QsMHhlMCwweDY1LDB4NmQsMHg2MCwweDBlLAotMHg3NCwweDA0LDB4OTAsMHhmZCwweDNmLDB4ZjAsMHhlNCwweGY1LDB4NjUsMHg3NSwweDY2LDB4MDMsMHg4MCwweDQ2LDB4N2QsMHg2ZCwKLTB4ZTQsMHhmZSwweGZmLDB4NzksMHgzZCwweDdhLDB4ZmQsMHg3YiwweDAxLDB4NzQsMHgwNSwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsCi0weGU1LDB4NjYsMHgyNCwweDAzLDB4ZjUsMHg2NiwweGU1LDB4NjUsMHgzNCwweDAwLDB4ZjUsMHg2NSwweGU1LDB4NjYsMHhkMywweDk1LAotMHg2YywweGU1LDB4NjUsMHg5NSwweDZiLDB4NDAsMHgwNiwweDg1LDB4NmMsMHg2NiwweDg1LDB4NmIsMHg2NSwweGQzLDB4ZTUsMHg2NiwKLTB4OTQsMHg0OCwweGU1LDB4NjUsMHg5NCwweDAwLDB4NDAsMHgwYywweDc0LDB4MDIsMHg5MCwweGZkLDB4M2YsMHhmMCwweGU0LDB4ZjUsCi0weDY1LDB4NzUsMHg2NiwweDAzLDB4YWMsMHg2NiwweDEyLDB4MmYsMHhjMywweDIyLDB4ZWMsMHg5MCwweGZkLDB4M2YsMHhmMCwweGU0LAotMHhmNSwweDY2LDB4ZjUsMHg2NSwweDhjLDB4MzIsMHhlYywweDYwLDB4MDUsMHgxMiwweDJmLDB4YjQsMHg4MCwweDA1LDB4N2MsMHgwMCwKLTB4MTIsMHgyZiwweGMzLDB4MjIsMHg5MCwweGZmLDB4MDQsMHhlMCwweGY1LDB4NGEsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZkLDB4YTMsCi0weGUwLDB4ZWQsMHg3ZCwweDAwLDB4ZmMsMHg3ZCwweDAwLDB4ZmMsMHg5MCwweGZmLDB4MDYsMHhlMCwweGZmLDB4YTMsMHhlMCwweDdlLAotMHgwMCwweGZmLDB4ZTQsMHhmZSwweGVjLDB4NGUsMHhmYywweGVkLDB4NGYsMHhmZCwweGMzLDB4ZWMsMHg5NCwweDQ4LDB4ZWQsMHg5NCwKLTB4MDAsMHg1MCwweDIyLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsCi0weGZjLDB4OTAsMHhmZiwweDA2LDB4ZTAsMHhmZiwweGEzLDB4ZTAsMHg3ZSwweDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGZjLAotMHhlZCwweDRmLDB4ZmQsMHg4MCwweDA0LDB4ZTQsMHhmZCwweDdjLDB4NDgsMHg4YywweDZjLDB4OGQsMHg2YiwweDkwLDB4ZmYsMHgwMiwKLTB4ZTAsMHhmZCwweGEzLDB4ZTAsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweDkwLDB4ZmYsMHgwMiwweGUwLDB4ZmYsCi0weGEzLDB4ZTAsMHg3ZSwweDAwLDB4ZmYsMHhlNCwweGZlLDB4ZWMsMHg0ZSwweGY1LDB4NGMsMHhlZCwweDRmLDB4ZjUsMHg0YiwweDc1LAotMHg2NCwweDNkLDB4NzUsMHg2MywweGZkLDB4NzUsMHg2MiwweDAxLDB4N2QsMHgzZCwweDdlLDB4ZmQsMHg3ZiwweDAxLDB4NzksMHg2ZCwKLTB4ZTQsMHhmYSwweGZiLDB4NzQsMHgwNSwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHg3NSwweDQ5LDB4MDAsMHhlNSwweDQ5LDB4MjQsCi0weGZlLDB4NDAsMHgxOSwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweGU0LDB4MTIsMHgwMywweDBmLDB4MDUsMHg0OSwweDBkLAotMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NjQsMHg4ZSwweDYzLDB4OGYsMHg2MiwweDgwLDB4ZTEsMHg3NSwweDY0LDB4M2QsMHg3NSwKLTB4NjMsMHhmZCwweDc1LDB4NjIsMHgwMSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHg2MCwweGI0LDB4MDAsMHgwMiwweDgwLDB4MDYsCi0weGQzLDB4NTAsMHgwMywweDAyLDB4MmMsMHgxMiwweGU1LDB4NGEsMHg1NCwweDBmLDB4ZjUsMHg0OSwweGU1LDB4NGEsMHg1NCwweDgwLAotMHhhMiwweGUwLDB4OTIsMHgwMiwweDkwLDB4ZmYsMHgwMSwweGUwLDB4MTIsMHgwMSwweDgxLDB4MDAsMHgwYiwweDJjLDB4MGQsMHgyNiwKLTB4NjcsMHgyNywweDg1LDB4MmMsMHgwZCwweDI4LDB4OTEsMHgyYywweDBkLDB4MjksMHg3NCwweDI5LDB4YTgsMHgyYiwweDBmLDB4MmIsCi0weDEyLDB4MmIsMHg1MiwweDJiLDB4YjYsMHgyYiwweGU0LDB4ZTUsMHg2NywweDMwLDB4ZTcsMHgwZSwweGU1LDB4NGMsMHg0NSwweDRiLAotMHg3MCwweDA4LDB4ZTUsMHg2YywweDY0LDB4MDIsMHg0NSwweDZiLDB4NjAsMHgwMywweDAyLDB4MmMsMHgwZiwweDkwLDB4ZmYsMHgwMCwKLTB4ZTAsMHg1NCwweDFmLDB4YjQsMHgwMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgyOSwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsCi0weDI3LDB4ODIsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHg3NCwweDAxLDB4MTIsMHgwMywweDBmLDB4NzgsMHhhNywweGU2LAotMHgzMCwweGUwLDB4MGIsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLDB4NjIsMHg3NCwweDAyLDB4MTIsMHgwMywweDBmLDB4N2MsMHgwMiwKLTB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFiLDB4ZTUsMHg2NywweDIwLDB4ZTEsCi0weDA3LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDI3LDB4ODIsMHhlNSwweDRhLDB4MjQsMHhmZSwweDUwLDB4MDMsMHgwMiwweDI3LAotMHg4MiwweDdjLDB4MDIsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwKLTB4MjcsMHg4MCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MGQsMHhlNSwweDRhLDB4NjAsMHgwOSwweGU1LDB4NGEsMHg2NCwweDgwLDB4NjAsCi0weDAzLDB4MDIsMHgyNywweDgyLDB4YWMsMHg0YSwweDEyLDB4MzAsMHg0YSwweDQwLDB4MDMsMHgwMiwweDI3LDB4ODIsMHhlNSwweDQ5LAotMHg3MCwweDI1LDB4MzAsMHgwMiwweDExLDB4OTAsMHhmZiwweDgwLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwKLTB4NjIsMHgxMiwweDAzLDB4MGYsMHg4MCwweDBmLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2NCwweGFlLDB4NjMsCi0weGFmLDB4NjIsMHgxMiwweDAzLDB4MGYsMHg4MCwweDNkLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxZCwweGU1LDB4NDksMHg3NSwweGYwLAotMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg1NCwweDA4LDB4YWQsMHg2NCwKLTB4YWUsMHg2MywweGFmLDB4NjIsMHgxMiwweDAzLDB4MGYsMHg4MCwweDFiLDB4ZTUsMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsCi0weDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4MDgsMHhhZCwweDY0LDB4YWUsMHg2MywweGFmLAotMHg2MiwweDEyLDB4MDMsMHgwZiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDEyLDB4MDEsMHhlNiwweDYwLDB4MGIsMHhhZCwKLTB4NjQsMHhhZSwweDYzLDB4YWYsMHg2MiwweDc0LDB4MDEsMHgxMiwweDAzLDB4MGYsMHg3YywweDAyLDB4MTIsMHgyZiwweGMzLDB4MjIsCi0weDgwLDB4MDAsMHgwMiwweDJjLDB4MGYsMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg2MCwweDAzLAotMHgwMiwweDJjLDB4MGYsMHg5MCwweGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwKLTB4MWEsMHhlNSwweDRjLDB4MTQsMHg0NSwweDRiLDB4NzAsMHgwNCwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOCwweDhlLDB4NzgsCi0weGE3LDB4ZTYsMHg1NCwweGZlLDB4ZjYsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLAotMHhkMywweDQwLDB4MmEsMHhlNSwweDY3LDB4MjAsMHhlMSwweDA4LDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwMywweDAyLDB4MjgsMHg4ZSwKLTB4ZTUsMHg2NywweDMwLDB4ZTAsMHgwNCwweGU1LDB4NGEsMHg3MCwweDBiLDB4ZTUsMHg2NywweDMwLDB4ZTEsMHgwOSwweGU1LDB4NGEsCi0weDI0LDB4ZmUsMHg1MCwweDAzLDB4MDIsMHgyOCwweDhlLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4YjQsMHgwMiwweDAyLAotMHg4MCwweDA2LDB4ZDMsMHg1MCwweDAzLDB4MDIsMHgyOCwweDhjLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg2MCwweDAzLDB4MDIsMHgyOCwKLTB4OGUsMHhhYywweDRhLDB4MTIsMHgzMCwweDRhLDB4NDAsMHgwMywweDAyLDB4MjgsMHg4ZSwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDcsCi0weGU1LDB4NjcsMHgyMCwweGUwLDB4MDIsMHg4MCwweDc3LDB4ZTUsMHg2NywweDMwLDB4ZTAsMHgwNiwweGU1LDB4NDksMHg2MCwweDAyLAotMHg4MCwweDZjLDB4ZTUsMHg0OSwweDcwLDB4MGYsMHg5MCwweGZmLDB4ODIsMHhlMCwweDU0LDB4ZjcsMHhmMCwweDkwLDB4ZmYsMHg4MCwKLTB4ZTAsMHg1NCwweGY3LDB4ZjAsMHgyMiwweGU1LDB4NDksMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA5LDB4N2QsCi0weDAxLDB4N2MsMHgwMywweDEyLDB4MGYsMHgwYiwweDgwLDB4MTEsMHhiNCwweDAyLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDA5LAotMHg3ZCwweDAxLDB4N2MsMHgwNCwweDEyLDB4MGYsMHgwYiwweDgwLDB4MDAsMHgxNSwweDQ5LDB4MzAsMHgwMiwweDE1LDB4ZTUsMHg0OSwKLTB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDQ4LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZiwweGY1LDB4ODMsMHhlMCwweDU0LDB4ZjcsCi0weGYwLDB4ODAsMHgxMywweGU1LDB4NDksMHg3NSwweGYwLDB4MDgsMHhhNCwweDI0LDB4MDgsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZmLAotMHhmNSwweDgzLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHg4MCwweDAwLDB4MDIsMHgyYywKLTB4MGYsMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4ZTUsMHg2YywweDQ1LDB4NmIsMHg2MCwweDAzLDB4MDIsMHgyYywweDBmLDB4OTAsCi0weGZmLDB4MDAsMHhlMCwweDU0LDB4MWYsMHhiNCwweDAwLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDFhLDB4ZTUsMHg0YywweDE0LAotMHg0NSwweDRiLDB4NzAsMHgwNCwweGU1LDB4NGEsMHg2MCwweDAzLDB4MDIsMHgyOSwweDcxLDB4NzgsMHhhNywweGU2LDB4NDQsMHgwMSwKLTB4ZjYsMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhiNCwweDAxLDB4MDIsMHg4MCwweDAzLDB4ZDMsMHg0MCwweDI5LDB4ZTUsCi0weDY3LDB4MjAsMHhlMSwweDA4LDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwMywweDAyLDB4MjksMHg3MSwweGU1LDB4NjcsMHgzMCwweGUwLAotMHgwNCwweGU1LDB4NDksMHg3MCwweDBiLDB4ZTUsMHg2NywweDMwLDB4ZTEsMHgwOCwweGU1LDB4NDksMHgyNCwweGZlLDB4NTAsMHgwMiwKLTB4ODAsMHg3ZiwweDdjLDB4MDAsMHgxMiwweDJmLDB4YzMsMHgyMiwweGI0LDB4MDIsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4NmYsCi0weGU1LDB4NGMsMHg0NSwweDRiLDB4NjAsMHgwMiwweDgwLDB4NjksMHhhYywweDRhLDB4MTIsMHgzMCwweDRhLDB4NDAsMHgwMiwweDgwLAotMHg2MCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDcsMHhlNSwweDY3LDB4MjAsMHhlMCwweDAyLDB4ODAsMHg1NCwweGU1LDB4NDksMHg3MCwKLTB4MTQsMHgzMCwweDAyLDB4MDksMHg5MCwweGZmLDB4ODAsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDgwLDB4MDcsMHg5MCwweGZmLDB4ODIsCi0weGUwLDB4NDQsMHgwOCwweGYwLDB4MjIsMHhlNSwweDY3LDB4MzAsMHhlMSwweDMzLDB4MTUsMHg0OSwweDMwLDB4MDIsMHgxNSwweGU1LAotMHg0OSwweDc1LDB4ZjAsMHgwOCwweGE0LDB4MjQsMHg0OCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmYsMHhmNSwweDgzLDB4ZTAsMHg0NCwKLTB4MDgsMHhmMCwweDgwLDB4MTMsMHhlNSwweDQ5LDB4NzUsMHhmMCwweDA4LDB4YTQsMHgyNCwweDA4LDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZmLDB4ZjUsMHg4MywweGUwLDB4NDQsMHgwOCwweGYwLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4ODAsMHgwMiwweDgwLAotMHgwMCwweDAyLDB4MmMsMHgwZiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MTIsMHhlNSwweDZjLDB4NDUsMHg2YiwweDcwLDB4MGMsMHhlNSwKLTB4NGEsMHg3MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsMHgwZiwweGU1LDB4NGMsCi0weDkwLDB4ZmYsMHhmZiwweGYwLDB4OTAsMHhmZiwweGZmLDB4ZTAsMHg2MCwweDA1LDB4NDMsMHg2NywweDAxLDB4ODAsMHgwMywweDUzLAotMHg2NywweGZlLDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4ZTUsMHg2NywweDMwLDB4ZTcsMHgwZSwweGU1LDB4NmMsMHg0NSwKLTB4NmIsMHg2MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywweDAyLDB4MmMsMHgwZiwweGFkLDB4NGIsCi0weGU1LDB4NGMsMHhlZCwweDdkLDB4MDAsMHhmYywweDdkLDB4MDAsMHhmYywweGJkLDB4MDAsMHgwMiwweDgwLDB4MDMsMHgwMiwweDJiLAotMHgwYSwweGI0LDB4MDEsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MzIsMHhlNSwweDRhLDB4NzAsMHgwNSwweGU1LDB4NGMsMHhmYywKLTB4NjAsMHgwMywweDAyLDB4MmIsMHgwYywweDc1LDB4NjQsMHgwMCwweDc1LDB4NjMsMHhmYywweDc1LDB4NjIsMHgwMSwweGQzLDB4ZTUsCi0weDZjLDB4OTQsMHgxMiwweGU1LDB4NmIsMHg5NCwweDAwLDB4NDAsMHgwNiwweGU0LDB4ZmQsMHg3YywweDEyLDB4ODAsMHgwNCwweGFjLAotMHg2YywweGFkLDB4NmIsMHg4YywweDZhLDB4OGQsMHg2OSwweDEyLDB4MmYsMHhkOCwweDIyLDB4YjQsMHgwMiwweDAyLDB4ODAsMHgwMywKLTB4ZDMsMHg0MCwweDU5LDB4ZTUsMHg0YSwweDYwLDB4MDMsMHgwMiwweDJiLDB4MGMsMHhlNSwweDRjLDB4ZmMsMHg3MCwweDI3LDB4NzUsCi0weDY0LDB4MTIsMHg3NSwweDYzLDB4ZmMsMHg3NSwweDYyLDB4MDEsMHhkMywweGU1LDB4NmMsMHg5NCwweDE5LDB4ZTUsMHg2YiwweDk0LAotMHgwMCwweDQwLDB4MDYsMHhlNCwweGZkLDB4N2MsMHgxOSwweDgwLDB4MDQsMHhhYywweDZjLDB4YWQsMHg2YiwweDhjLDB4NmEsMHg4ZCwKLTB4NjksMHgxMiwweDJmLDB4ZDgsMHg4MCwweDI1LDB4NzUsMHg2NCwweDJiLDB4NzUsMHg2MywweGZjLDB4NzUsMHg2MiwweDAxLDB4ZDMsCi0weGU1LDB4NmMsMHg5NCwweDM1LDB4ZTUsMHg2YiwweDk0LDB4MDAsMHg0MCwweDA2LDB4ZTQsMHhmZCwweDdjLDB4MzUsMHg4MCwweDA0LAotMHhhYywweDZjLDB4YWQsMHg2YiwweDhjLDB4NmEsMHg4ZCwweDY5LDB4MTIsMHgyZiwweGQ4LDB4MjIsMHhiNCwweDAzLDB4MDIsMHg4MCwKLTB4MDYsMHhkMywweDUwLDB4MDMsMHgwMiwweDJiLDB4MGEsMHhlNSwweDRjLDB4ZjUsMHg0OSwweDcwLDB4MGYsMHg5MCwweGZmLDB4MDQsCi0weGUwLDB4ZmQsMHhhMywweGUwLDB4NGQsMHg2MCwweDAzLDB4MDIsMHgyYiwweDBjLDB4ODAsMHgxOCwweDkwLDB4ZmMsMHg4MiwweGUwLAotMHhmZCwweGEzLDB4ZTAsMHhmYywweDkwLDB4ZmYsMHgwNSwweGUwLDB4NmMsMHg3MCwweDA3LDB4OTAsMHhmZiwweDA0LDB4ZTAsMHg2ZCwKLTB4NjAsMHgwMiwweDgwLDB4NjgsMHhlNCwweGY1LDB4NmEsMHhmNSwweDY5LDB4N2YsMHgwMCwweGU1LDB4NDksMHgxNCwweGM1LDB4NDksCi0weDYwLDB4MGYsMHhlZiwweDI0LDB4ODAsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLDB4ZjUsMHg4MywweGUwLDB4MmYsMHhmZiwweDgwLAotMHhlYSwweDhmLDB4NGEsMHhlNSwweDRhLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHg3ZCwKLTB4MDAsMHhkMywweDk1LDB4NmMsMHhlZCwweDk1LDB4NmIsMHg0MCwweDA2LDB4YWMsMHg2YywweGFkLDB4NmIsMHg4MCwweDBmLDB4ZTUsCi0weDRhLDB4MjQsMHg4MCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmMsMHhmNSwweDgzLDB4ZTAsMHg3ZCwweDAwLDB4ZmMsMHg4YywweDZhLAotMHg4ZCwweDY5LDB4ZTUsMHg0YSwweDI0LDB4ODAsMHhmYywweGU0LDB4MzQsMHhmYywweGZkLDB4ZmUsMHhlYywweGZkLDB4N2YsMHgwMSwKLTB4OGQsMHg2NCwweDhlLDB4NjMsMHg4ZiwweDYyLDB4MTIsMHgyZiwweGQ4LDB4MjIsMHg4MCwweDAwLDB4MDIsMHgyYywweDBmLDB4MDIsCi0weDJjLDB4MGYsMHhlNSwweDY3LDB4MzAsMHhlNywweDE5LDB4ZTUsMHg2YywweDE0LDB4NDUsMHg2YiwweDcwLDB4MTIsMHhlNSwweDRhLAotMHg3MCwweDBlLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA4LDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwMywKLTB4MDIsMHgyYywweDBmLDB4ZTUsMHg2NywweDIwLDB4ZTAsMHgwOCwweGU1LDB4NjcsMHgyMCwweGUxLDB4MDMsMHgwMiwweDJjLDB4MGYsCi0weDc1LDB4NjQsMHg2OCwweGU0LDB4ZjUsMHg2MywweGY1LDB4NjIsMHhlNCwweGY1LDB4NjksMHgwNCwweGY1LDB4NmEsMHgxMiwweDJmLAotMHhkOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgyNywweGU1LDB4NmMsMHg0NSwweDZiLDB4NzAsMHgyMSwweGU1LDB4NGEsMHg3MCwKLTB4MWQsMHhlNSwweDRjLDB4NjQsMHgwMiwweDQ1LDB4NGIsMHg2MCwweDBkLDB4ZTUsMHg0YywweDE0LDB4NDUsMHg0YiwweDYwLDB4MDYsCi0weGU1LDB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDYwLDB4MDMsMHgwMiwweDJjLAotMHgwZiwweGU1LDB4NjcsMHgyMCwweGUwLDB4MDgsMHhlNSwweDY3LDB4MjAsMHhlMSwweDAzLDB4MDIsMHgyYywweDBmLDB4ODUsMHg0YywKLTB4NjgsMHhlNSwweDY4LDB4NzAsMHgwOCwweDQzLDB4NjcsMHgwMSwweDUzLDB4NjcsMHhmZCwweDgwLDB4MTMsMHhlNSwweDY4LDB4NjQsCi0weDAyLDB4NjAsMHgwNywweGU1LDB4NjgsMHgxNCwweDYwLDB4MDIsMHg4MCwweDY1LDB4NTMsMHg2NywweGZlLDB4NDMsMHg2NywweDAyLAotMHg3YywweDAwLDB4MTIsMHgyZiwweGMzLDB4MjIsMHhlNSwweDY3LDB4MzAsMHhlNywweDFhLDB4ZTUsMHg2YywweDE0LDB4NDUsMHg2YiwKLTB4NzAsMHgxMywweGU1LDB4NGEsMHg3MCwweDBmLDB4ZTUsMHg0YywweDQ1LDB4NGIsMHg3MCwweDA5LDB4OTAsMHhmZiwweDAwLDB4ZTAsCi0weDU0LDB4MWYsMHgxNCwweDYwLDB4MDIsMHg4MCwweDM4LDB4ZTUsMHg2NywweDIwLDB4ZTEsMHgwMiwweDgwLDB4MzEsMHg3YywweDAxLAotMHgxMiwweDJmLDB4YzMsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MTUsMHhlNSwweDZjLDB4NDUsMHg2YiwweDcwLDB4MGYsMHhlNSwKLTB4NGMsMHg0NSwweDRiLDB4NzAsMHgwOSwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDE0LDB4NjAsMHgwMiwweDgwLDB4MGYsCi0weGU1LDB4NjcsMHgyMCwweGUxLDB4MDIsMHg4MCwweDA4LDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4ODAsMHgwMCwweDAyLAotMHgyZSwweGNhLDB4YjQsMHg0MCwweDAyLDB4ODAsMHgwNiwweGQzLDB4NTAsMHgwMywweDAyLDB4MmUsMHhjMCwweDkwLDB4ZmYsMHgwMSwKLTB4ZTAsMHg5MCwweGZkLDB4M2QsMHhmMCwweGU1LDB4NGEsMHg5MCwweGZkLDB4M2UsMHhmMCwweGU0LDB4OTAsMHhmZCwweDNmLDB4ZjAsCi0weGU1LDB4NjQsMHgyNCwweDAzLDB4ZjUsMHg2NCwweGU1LDB4NjMsMHgzNCwweDAwLDB4ZjUsMHg2MywweGFkLDB4NGIsMHhlNSwweDRjLAotMHg4NSwweDY0LDB4ODIsMHg4NSwweDYzLDB4ODMsMHhjZCwweGYwLDB4YTMsMHhjZCwweGYwLDB4OTAsMHhmZiwweDAxLDB4ZTAsMHgxMiwKLTB4MDEsMHhiNywweDJjLDB4N2QsMHgwMSwweDJjLDB4YTMsMHgwMiwweDJjLDB4Y2QsMHgwMywweDJjLDB4ZjcsMHgwNCwweDJkLDB4NDUsCi0weDA1LDB4MmQsMHg4MiwweDA2LDB4MmQsMHhhOCwweDA3LDB4MmQsMHhjZSwweDA4LDB4MmQsMHhmNCwweDA5LDB4MmUsMHgxYSwweDBiLAotMHgyZSwweDQwLDB4MGMsMHgyZSwweDRmLDB4ODAsMHgyZSwweDRmLDB4ODEsMHgwMCwweDAwLDB4MmUsMHhhZCwweGU1LDB4NjcsMHgyMCwKLTB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LDB4NGEsMHgyMiwweDdkLDB4YjcsMHg3ZSwweDM0LDB4N2YsMHgwMiwweDc5LDB4NDAsCi0weDdhLDB4ZmQsMHg3YiwweDAxLDB4NzQsMHgwOCwweDc4LDB4MDAsMHgxMiwweDAzLDB4M2YsMHg3ZCwweDA4LDB4N2MsMHgwMCwweDEyLAotMHgyNCwweGIxLDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLDB4ZTUsMHg0YSwKLTB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwweGI0LDB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsCi0weDEwLDB4MTIsMHgzMSwweDlhLDB4MjIsMHg3ZCwweDAwLDB4N2MsMHgwNywweDEyLDB4MjQsMHhiMSwweDIyLDB4ZTUsMHg2NywweDIwLAotMHhlNywweDA2LDB4N2MsMHgwNSwweDEyLDB4MjUsMHg0YSwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwKLTB4MDUsMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxMSwweDEyLDB4MzEsMHg5YSwweDIyLDB4N2QsCi0weDAwLDB4N2MsMHgwNywweDEyLDB4MjQsMHhiMSwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LAotMHg0YSwweDIyLDB4ZTUsMHg0YSwweGI0LDB4MDUsMHgwMiwweDgwLDB4MDMsMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwKLTB4N2MsMHgwYSwweDEyLDB4MzEsMHg5YSwweDIyLDB4YjQsMHgwMSwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsCi0weDA0LDB4ZmUsMHg3YywweDA4LDB4MTIsMHgzMSwweDlhLDB4MjIsMHhiNCwweDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLAotMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwweDdjLDB4MTMsMHgxMiwweDMxLDB4OWEsMHgyMiwweDdkLDB4MDAsMHg3YywKLTB4MDcsMHgxMiwweDI0LDB4YjEsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MzQsMHhkMywweGU1LDB4NmMsMHg5NCwweDQ4LDB4ZTUsCi0weDZiLDB4OTQsMHgwMCwweDUwLDB4MDYsMHhlNSwweDZjLDB4NDUsMHg2YiwweDcwLDB4MDYsMHg3YywweDAyLDB4MTIsMHgyNSwweDRhLAotMHgyMiwweGU1LDB4NGEsMHhiNCwweDAxLDB4MDMsMHhiMywweDQwLDB4MGIsMHhjMywweGI0LDB4MDMsMHgwMCwweDQwLDB4MDksMHhiNCwKLTB4MDYsMHgwMCwweDUwLDB4MDQsMHgxMiwweDMwLDB4NzAsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsCi0weGU4LDB4MjIsMHhlNSwweDY3LDB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LAotMHgwMCwweDUwLDB4MGIsMHhlNSwweDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNiwweDEyLDB4MzEsMHg5YSwweDIyLDB4N2MsMHgwNywKLTB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsCi0weDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE5LAotMHgxMiwweDMxLDB4OWEsMHgyMiwweDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywKLTB4MjAsMHhlNywweDFkLDB4ZTUsMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsCi0weDRhLDB4N2YsMHgwMCwweGZlLDB4N2MsMHgxNywweDEyLDB4MzEsMHg5YSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLAotMHgxMiwweDI0LDB4ZTgsMHgyMiwweGU1LDB4NjcsMHgyMCwweGU3LDB4MWQsMHhlNSwweDRhLDB4YjQsMHgwMywweDAwLDB4NDAsMHgxMCwKLTB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NGEsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE4LDB4MTIsMHgzMSwweDlhLDB4MjIsCi0weDdjLDB4MDcsMHgxMiwweDI1LDB4NGEsMHgyMiwweDEyLDB4MjQsMHhlOCwweDIyLDB4ZTUsMHg2NywweDIwLDB4ZTcsMHgxZCwweGU1LAotMHg0YSwweGI0LDB4MDMsMHgwMCwweDQwLDB4MTAsMHhiNCwweDA1LDB4MDAsMHg1MCwweDBiLDB4ZTUsMHg0YSwweDdmLDB4MDAsMHhmZSwKLTB4N2MsMHgxNSwweDEyLDB4MzEsMHg5YSwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4MTIsMHgyNCwweGU4LDB4MjIsCi0weGU1LDB4NjcsMHgyMCwweGU3LDB4MDYsMHg3YywweDA3LDB4MTIsMHgyNSwweDRhLDB4MjIsMHgxMiwweDI0LDB4ZTgsMHgyMiwweGU1LAotMHg2NywweDMwLDB4ZTcsMHgyMCwweDkwLDB4ZmYsMHgwMCwweGUwLDB4NTQsMHgxZiwweDcwLDB4MTAsMHg5MCwweGZmLDB4MDEsMHhlMCwKLTB4YjQsMHg4MCwweDA1LDB4MTIsMHgyNCwweGRmLDB4ODAsMHgwMywweDEyLDB4MjQsMHhlOCwweDIyLDB4N2QsMHgwMCwweDdjLDB4MDUsCi0weDEyLDB4MjQsMHhiMSwweDIyLDB4OTAsMHhmZiwweDAwLDB4ZTAsMHg1NCwweDFmLDB4NjAsMHgwNiwweDdjLDB4MDUsMHgxMiwweDI1LAotMHg0YSwweDIyLDB4ZDMsMHhlNSwweDZjLDB4OTQsMHg0OCwweGU1LDB4NmIsMHg5NCwweDAwLDB4NTAsMHgwYiwweGMzLDB4ZTUsMHg2YywKLTB4OTQsMHgwNywweGU1LDB4NmIsMHg5NCwweDAwLDB4NTAsMHgwNiwweDdjLDB4MDMsMHgxMiwweDI1LDB4NGEsMHgyMiwweGU1LDB4NGEsCi0weGI0LDB4MDUsMHgwNCwweDEyLDB4MzAsMHg3MCwweDIyLDB4N2MsMHgwNywweDEyLDB4MjUsMHg0YSwweDIyLDB4ZTUsMHg2NywweDMwLAotMHhlNywweDA4LDB4N2QsMHgwMCwweDdjLDB4MDUsMHgxMiwweDI0LDB4YjEsMHgyMiwweDdjLDB4MDUsMHgxMiwweDI1LDB4NGEsMHgyMiwKLTB4YjQsMHgyMCwweDAyLDB4ODAsMHgwMywweGQzLDB4NDAsMHgwMCwweDgwLDB4MDAsMHgxMiwweDJmLDB4OWUsMHgyMiwweDc1LDB4NDMsCi0weDAwLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDBmLDB4ZDMsMHg5NSwweDQzLDB4NDAsMHgyNCwweGU1LDB4NDMsMHgyNCwweGYwLAotMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZlLDB4ZjUsMHg4MywweGUwLDB4YWQsMHg2NCwweGFlLDB4NjMsMHhhZiwweDYyLDB4MTIsMHgwMywKLTB4MGYsMHgwNSwweDQzLDB4MGQsMHhlZCwweDcwLDB4MDEsMHgwZSwweDhkLDB4NjQsMHg4ZSwweDYzLDB4OGYsMHg2MiwweDgwLDB4ZDEsCi0weGU1LDB4NDMsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NmEsMHg5YywweGY1LDB4NmEsMHhlNSwweDY5LDB4OWQsMHhmNSwweDY5LAotMHhlNSwweDZhLDB4NDUsMHg2OSwweDYwLDB4MDYsMHhlNCwweDkwLDB4ZmYsMHg4MywweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsMHhlMCwKLTB4NDQsMHgwOCwweGYwLDB4ZTQsMHhmNSwweDY5LDB4NzUsMHg2YSwweDQ5LDB4OTAsMHhmZCwweDNkLDB4ZTAsMHhiNCwweDA1LDB4MDIsCi0weDgwLDB4MDMsMHhkMywweDQwLDB4NDAsMHg5MCwweGZkLDB4M2UsMHhlMCwweGY1LDB4NDMsMHhiNCwweDA1LDB4MDIsMHg4MCwweDAzLAotMHhkMywweDQwLDB4MGEsMHhlNCwweGZmLDB4MDQsMHhmZSwweDdjLDB4MGIsMHgxMiwweDMxLDB4OWEsMHgyMiwweGI0LDB4MDEsMHgwMiwKLTB4ODAsMHgwMywweGQzLDB4NDAsMHgwYSwweGU0LDB4ZmYsMHgwNCwweGZlLDB4N2MsMHgwOSwweDEyLDB4MzEsMHg5YSwweDIyLDB4YjQsCi0weDAzLDB4MDAsMHg0MCwweDEwLDB4YjQsMHgwNSwweDAwLDB4NTAsMHgwYiwweGU1LDB4NDMsMHg3ZiwweDAwLDB4ZmUsMHg3YywweDE0LAotMHgxMiwweDMxLDB4OWEsMHgyMiwweDIyLDB4YjQsMHg4MCwweDAwLDB4NDAsMHgyMywweGI0LDB4ODIsMHgwMCwweDUwLDB4MWUsMHg3YywKLTB4M2QsMHg3ZCwweGZkLDB4MTIsMHgxNywweGQ1LDB4N2QsMHgwMCwweDhjLDB4NjYsMHg4ZCwweDY1LDB4OTAsMHhmZCwweDNmLDB4ZTAsCi0weDYwLDB4MDUsMHgxMiwweDJmLDB4OWUsMHg4MCwweDA1LDB4N2MsMHgwMCwweDEyLDB4MmYsMHhjMywweDIyLDB4MjIsMHg5MCwweGZmLAotMHg4MywweGUwLDB4NTQsMHg3ZiwweGYwLDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg0NCwweDA4LDB4ZjAsMHg5MCwweGZmLDB4ODAsMHhlMCwKLTB4NDQsMHgwOCwweGYwLDB4MjIsMHg5MCwweGZmLDB4ODIsMHhlMCwweDQ0LDB4MDgsMHhmMCwweDkwLDB4ZmYsMHg4MCwweGUwLDB4NDQsCi0weDA4LDB4ZjAsMHgyMiwweDhjLDB4MjMsMHg3ZCwweDAwLDB4OGMsMHg2YSwweDhkLDB4NjksMHg3NSwweDY0LDB4M2QsMHg3NSwweDYzLAotMHhmZCwweDc1LDB4NjIsMHgwMSwweDEyLDB4MmYsMHhkOCwweDIyLDB4OTAsMHhmZiwweDgzLDB4ZTAsMHg1NCwweDdmLDB4ZjAsMHhlNSwKLTB4NmEsMHg2NCwweDQ5LDB4NDUsMHg2OSwweDcwLDB4MDEsMHgyMiwweGMzLDB4ZTUsMHg2YSwweDk0LDB4MDgsMHhlNSwweDY5LDB4OTQsCi0weDAwLDB4NDAsMHgxNSwweDc1LDB4MjEsMHgwOCwweGU1LDB4MjEsMHg3ZCwweDAwLDB4ZmMsMHhjMywweGU1LDB4NmEsMHg5YywweGY1LAotMHg2YSwweGU1LDB4NjksMHg5ZCwweGY1LDB4NjksMHg4MCwweDA5LDB4ODUsMHg2YSwweDIxLDB4ZTQsMHhmNSwweDY5LDB4NzUsMHg2YSwKLTB4NDksMHg3NSwweDIyLDB4MDAsMHhlNSwweDIyLDB4YzMsMHg5NSwweDIxLDB4NTAsMHgyNiwweGFkLDB4NjQsMHhhZSwweDYzLDB4YWYsCi0weDYyLDB4MTIsMHgwMSwweGU2LDB4ZmMsMHhlNSwweDIyLDB4MjQsMHhmOCwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmUsMHhmNSwweDgzLAotMHhlYywweGYwLDB4MDUsMHgyMiwweDBkLDB4ZWQsMHg3MCwweDAxLDB4MGUsMHg4ZCwweDY0LDB4OGUsMHg2MywweDhmLDB4NjIsMHg4MCwKLTB4ZDMsMHhlNSwweDIxLDB4NTQsMHg3ZiwweDkwLDB4ZmYsMHg4MSwweGYwLDB4MjIsMHg4YywweDQ4LDB4N2YsMHgwMCwweGVmLDB4MjQsCi0weGZiLDB4NDAsMHgxOSwweGU0LDB4ZWYsMHg3NSwweGYwLDB4MDcsMHhhNCwweDI0LDB4M2YsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZjLAotMHhmNSwweDgzLDB4ZTAsMHg2NSwweDQ4LDB4NzAsMHgwMiwweGQzLDB4MjIsMHgwZiwweDgwLDB4ZTIsMHg4ZiwweDQ3LDB4YzMsMHgyMiwKLTB4ODUsMHg2YywweDZhLDB4ODUsMHg2YiwweDY5LDB4OTAsMHhmZiwweDgyLDB4ZTAsMHg1NCwweGY3LDB4ZjAsMHg5MCwweGZmLDB4ODMsCi0weGUwLDB4NTQsMHg3ZiwweGYwLDB4MjIsMHhjMCwweDAwLDB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDA2LDB4YzAsMHgwNywweGU1LAotMHg3MiwweDI0LDB4MDgsMHhmOCwweDg2LDB4MDYsMHg1MywweDA2LDB4N2YsMHg3YywweGZmLDB4MTIsMHgzMCwweGZhLDB4N2MsMHgwMCwKLTB4N2QsMHgwMCwweGU1LDB4NzUsMHg2MCwweDQ2LDB4ZmYsMHg5MCwweGZlLDB4OWQsMHhlMCwweDU0LDB4N2YsMHg2ZSwweDcwLDB4MGYsCi0weGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhlMCwweGZkLDB4YTMsMHhlMCwweGZjLDB4YTMsMHgxNSwweDc1LDB4ODAsMHgwNywweGEzLAotMHhhMywweGEzLDB4ZGYsMHhlNiwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweDFlLDB4ZTAsMHhmOCwKLTB4YTMsMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLDB4YTMsCi0weGVhLDB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDEyLDB4MzEsMHg5MywweGQwLAotMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsMHgwMSwweGQwLDB4MDAsMHgyMiwweDg1LDB4YTgsMHg3NCwweDc1LDB4YTgsMHg4OCwKLTB4ZWMsMHg3MCwweDAyLDB4N2MsMHgzZiwweDhjLDB4NzMsMHgyMiwweGU1LDB4NzIsMHgyNCwweDA4LDB4ZjgsMHg3NiwweDAwLDB4MTIsCi0weDMxLDB4ZTcsMHg4MCwweGZiLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzAsMHgwNiwweGMwLDB4MDcsMHhhZSwweDA0LAotMHg3YywweGZmLDB4MTIsMHgzMCwweGZhLDB4ZTUsMHg3NSwweDYwLDB4NDIsMHhmZiwweDkwLDB4ZmUsMHg5ZCwweGUwLDB4NTQsMHg3ZiwKLTB4NmUsMHg3MCwweDBiLDB4YzAsMHg4MywweGMwLDB4ODIsMHhhMywweGEzLDB4YTMsMHgxNSwweDc1LDB4ODAsMHgwNywweGEzLDB4YTMsCi0weGEzLDB4ZGYsMHhlYSwweDgwLDB4MjYsMHhkZiwweDA2LDB4ZDAsMHg4MiwweGQwLDB4ODMsMHg4MCwweGQ4LDB4ZTAsMHhmOCwweGEzLAotMHhlMCwweGY5LDB4YTMsMHhlMCwweGZhLDB4ZDAsMHg4MiwweGQwLDB4ODMsMHhlOCwweGYwLDB4YTMsMHhlOSwweGYwLDB4YTMsMHhlYSwKLTB4ZjAsMHhhMywweGMwLDB4ODMsMHhjMCwweDgyLDB4YTMsMHhhMywweGEzLDB4ODAsMHhkYSwweDc4LDB4MDgsMHgwOCwweDc5LDB4MTgsCi0weDA5LDB4N2MsMHgwMSwweGU2LDB4NTQsMHg3ZiwweDZlLDB4NzAsMHgwNiwweDc2LDB4MDAsMHg3NywweDAwLDB4ODAsMHgwNiwweDA4LAotMHgwOSwweDBjLDB4YmMsMHgwOCwweGVlLDB4MTIsMHgzMSwweDkzLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDAyLDB4ZDAsMHgwMSwKLTB4ZDAsMHgwMCwweDIyLDB4NzUsMHg3MywweDAwLDB4ODUsMHg3NCwweGE4LDB4MjIsMHhjMCwweGYwLDB4YzAsMHg4MiwweGMwLDB4ODMsCi0weGMzLDB4ZTUsMHg3NSwweDI0LDB4ZTgsMHg1MCwweDA1LDB4MTIsMHgzMSwweGU3LDB4ODAsMHhmNCwweGVjLDB4NjAsMHgzMSwweDkwLAotMHgzNCwweGI2LDB4ZTQsMHg5MywweGMzLDB4OWMsMHg0MCwweDI4LDB4YzAsMHgwNCwweDdjLDB4ZmYsMHgxMiwweDMwLDB4ZmEsMHhkMCwKLTB4MDQsMHg0MywweDA0LDB4ODAsMHhlNSwweDc1LDB4NzUsMHhmMCwweDAzLDB4YTQsMHgyNCwweDlkLDB4ZjUsMHg4MiwweGU0LDB4MzQsCi0weGZlLDB4ZjUsMHg4MywweGVjLDB4ZjAsMHhlZiwweGEzLDB4ZjAsMHhlZSwweGEzLDB4ZjAsMHgwNSwweDc1LDB4MTIsMHgzMSwweDkzLAotMHhkMCwweDgzLDB4ZDAsMHg4MiwweGQwLDB4ZjAsMHgyMiwweGMwLDB4MDQsMHg3YywweDIwLDB4ZDIsMHg4YywweGQyLDB4OGQsMHhkNSwKLTB4MDQsMHhmZCwweGQwLDB4MDQsMHgyMiwweDc1LDB4YTgsMHgwMCwweDc1LDB4ODgsMHgwMCwweDc1LDB4YjgsMHgwMCwweDc1LDB4ZjAsCi0weDAwLDB4NzUsMHhkMCwweDAwLDB4ZTQsMHhmOCwweDkwLDB4MDAsMHgwMCwweGY2LDB4MDgsMHhiOCwweDAwLDB4ZmIsMHgwMiwweDAwLAotMHgwMCwweGMzLDB4ZWQsMHg5NCwweDAyLDB4NTAsMHgwNCwweDdkLDB4MDMsMHg3YywweGU4LDB4ZWMsMHhmNCwweGZjLDB4ZWQsMHhmNCwKLTB4ZmQsMHgwYywweGJjLDB4MDAsMHgwMSwweDBkLDB4OGMsMHg3OSwweDhkLDB4NzgsMHgyMiwweGMzLDB4ZWMsMHg5NCwweGJjLDB4ZWQsCi0weDk0LDB4MDIsMHg1MCwweDA0LDB4N2QsMHgwNywweDdjLDB4ZDAsMHhlYywweGY0LDB4ZmMsMHhlZCwweGY0LDB4ZmQsMHgwYywweGJjLAotMHgwMCwweDAxLDB4MGQsMHg4YywweDc3LDB4OGQsMHg3NiwweDIyLDB4ZWMsMHg3MCwweDAxLDB4MjIsMHhjMCwweDAwLDB4ZTUsMHg3MiwKLTB4MjQsMHgxOCwweGY4LDB4YTYsMHgwNCwweGU1LDB4NzIsMHgyNCwweDA4LDB4ZjgsMHhjNiwweDU0LDB4N2YsMHhmNiwweGU2LDB4MzAsCi0weGU3LDB4MDMsMHhkMCwweDAwLDB4MjIsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGY0LDB4YzIsMHg4YywweDg1LDB4NzYsMHg4YywweDg1LAotMHg3NywweDhhLDB4ZDIsMHg4YywweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHhmMCwweGMwLDB4ODIsMHhjMCwweDgzLDB4YzAsMHgwMCwKLTB4YzAsMHgwMSwweGMwLDB4MDIsMHhjMCwweDAzLDB4YzAsMHgwNCwweGMwLDB4MDUsMHhjMCwweDA2LDB4YzAsMHgwNywweDEyLDB4MWIsCi0weDI4LDB4ZTUsMHg3MiwweDI0LDB4MDgsMHhmOCwweGU2LDB4NjAsMHgyNCwweGU1LDB4NzIsMHgyNCwweDEwLDB4ZjgsMHhhNiwweDgxLAotMHhlNSwweDcyLDB4NzUsMHhmMCwweDIxLDB4YTQsMHgyNCwweDk1LDB4ZjUsMHg4MiwweGU0LDB4MzQsMHhmZCwweGY1LDB4ODMsMHg3OCwKLTB4YTgsMHhlNSwweDgxLDB4MDQsMHhjMywweDk4LDB4ZjksMHhlNiwweGYwLDB4MDgsMHhhMywweGQ5LDB4ZmEsMHg3NCwweDA4LDB4MjUsCi0weDcyLDB4ZjgsMHgwNSwweDcyLDB4MDgsMHhlNiwweDU0LDB4ODAsMHg3MCwweDBjLDB4ZTUsMHg3MiwweGI0LDB4MDcsMHhmMywweDc4LAotMHgwOCwweDc1LDB4NzIsMHgwMCwweDgwLDB4ZWYsMHhlNSwweDcyLDB4MjQsMHgxMCwweGY4LDB4ODYsMHg4MSwweGU1LDB4NzIsMHg3NSwKLTB4ZjAsMHgyMSwweGE0LDB4MjQsMHg5NSwweGY1LDB4ODIsMHhlNCwweDM0LDB4ZmQsMHhmNSwweDgzLDB4NzgsMHhhOCwweGU1LDB4ODEsCi0weDA0LDB4YzMsMHg5OCwweGY5LDB4ZTAsMHhmNiwweDA4LDB4YTMsMHhkOSwweGZhLDB4ZDAsMHgwNywweGQwLDB4MDYsMHhkMCwweDA1LAotMHhkMCwweDA0LDB4ZDAsMHgwMywweGQwLDB4MDIsMHhkMCwweDAxLDB4ZDAsMHgwMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwKLTB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweGMwLDB4ZTAsMHhjMCwweGQwLDB4YzAsMHgwMCwweGMwLDB4MDEsMHhjMCwweDAyLDB4YzIsCi0weDhlLDB4ODUsMHg3OCwweDhkLDB4ODUsMHg3OSwweDhiLDB4ZDIsMHg4ZSwweDc4LDB4MTksMHg3OSwweDA5LDB4N2EsMHgwNywweGU3LAotMHg3MCwweDA0LDB4YTYsMHgwMCwweDgwLDB4MGIsMHhlNiwweDYwLDB4MDgsMHgxNiwweGU2LDB4NzAsMHgwNCwweGU3LDB4NDQsMHg4MCwKLTB4ZjcsMHgwOCwweDA5LDB4ZGEsMHhlYSwweGU1LDB4NzMsMHg2MCwweDEzLDB4MTQsMHhmNSwweDczLDB4NzAsMHgwZSwweGU1LDB4NzIsCi0weDI0LDB4MDgsMHhmOCwweDc2LDB4MDAsMHgxMiwweDMxLDB4OTMsMHhkMiwweDhjLDB4ZDIsMHg4ZCwweGQwLDB4MDIsMHhkMCwweDAxLAotMHhkMCwweDAwLDB4ZDAsMHhkMCwweGQwLDB4ZTAsMHgzMiwweDc1LDB4ODEsMHhhNywweDc1LDB4OTAsMHgwMCwweDc1LDB4NzksMHgzMCwKLTB4NzUsMHg3OCwweGY4LDB4NzUsMHg3NywweDYwLDB4NzUsMHg3NiwweGYwLDB4MTIsMHgwNSwweDNjLDB4MTIsMHgzNCwweDBmLDB4MTIsCi0weDE3LDB4OGIsMHgxMiwweDM0LDB4MzksMHgxMiwweDMxLDB4ZjUsMHg4MCwweGUzLDB4MjIsMHhjMCwweDAwLDB4N2MsMHgwMSwweGVjLAotMHgyNCwweDA4LDB4ZjgsMHhlNiwweDYwLDB4MDksMHgwYywweGJjLDB4MDgsMHhmNSwweDEyLDB4MzEsMHhlNywweDgwLDB4ZWUsMHhkMCwKLTB4MDAsMHgyMiwweGMwLDB4ZjAsMHhjMCwweDgyLDB4YzAsMHg4MywweGMwLDB4MDAsMHhjMCwweDA2LDB4YzAsMHgwNywweGVkLDB4MjQsCi0weDEwLDB4ZjgsMHg3NiwweGI2LDB4ZWQsMHg3NSwweGYwLDB4MjEsMHhhNCwweDI0LDB4OTUsMHhmNSwweDgyLDB4ZTQsMHgzNCwweGZkLAotMHhmNSwweDgzLDB4YzAsMHg4MiwweGMwLDB4ODMsMHhhMywweGEzLDB4ZTQsMHg3OCwweDBkLDB4ZjAsMHhhMywweGQ4LDB4ZmMsMHhlYywKLTB4NTQsMHg3ZiwweDc1LDB4ZjAsMHgwMiwweGE0LDB4MjQsMHg4MiwweGY1LDB4ODIsMHhlNSwweGYwLDB4MzQsMHgzNCwweGY1LDB4ODMsCi0weGU0LDB4OTMsMHhmZSwweDc0LDB4MDEsMHg5MywweGY1LDB4ODIsMHg4ZSwweDgzLDB4ZTQsMHg5MywweGZlLDB4NzQsMHgwMSwweDkzLAotMHhmZiwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZWYsMHhmMCwweGEzLDB4ZWUsMHhmMCwweGVkLDB4MjQsMHgwOCwweGY4LDB4ZWMsMHg0NCwKLTB4ODAsMHhmNiwweGQwLDB4MDcsMHhkMCwweDA2LDB4ZDAsMHgwMCwweGQwLDB4ODMsMHhkMCwweDgyLDB4ZDAsMHhmMCwweDIyLDB4NzUsCi0weDcyLDB4MDAsMHg3NSwweDc1LDB4MDAsMHg3YSwweDA4LDB4NzksMHgxOCwweDc4LDB4MDgsMHg3NiwweDAwLDB4NzcsMHgwMCwweDA4LAotMHgwOSwweGRhLDB4ZjgsMHhlNCwweDc4LDB4MDgsMHg3NCwweDgwLDB4NDQsMHg3ZiwweGY2LDB4NzQsMHgwMSwweDQ0LDB4MTAsMHhmNSwKLTB4ODksMHg3NSwweGI4LDB4MDgsMHhkMiwweGFiLDB4ZDIsMHhhOSwweDIyLDB4NzUsMHg4MSwweGE3LDB4ZDIsMHg4ZSwweGQyLDB4OGMsCi0weGQyLDB4YWYsMHhlNSwweDc1LDB4NjAsMHgzMiwweGZmLDB4OTAsMHhmZSwweDlkLDB4ZTAsMHg1NCwweDgwLDB4NjAsMHgyNCwweDc4LAotMHgwOCwweDc5LDB4MDgsMHhlMCwweDU0LDB4N2YsMHhmYSwweDdiLDB4MDAsMHhlNiwweDU0LDB4N2YsMHhiNSwweDAyLDB4MDIsMHg3YiwKLTB4ZmYsMHgwOCwweGQ5LDB4ZjUsMHhlYiwweDcwLDB4MGMsMHhlYSwweGYwLDB4MTIsMHgzMywweDhiLDB4YWQsMHgwNCwweGFjLDB4MDIsCi0weDEyLDB4MzMsMHhhMiwweGEzLDB4YTMsMHhhMywweGRmLDB4ZDIsMHgxMiwweDMxLDB4ZTcsMHg4MCwweGM1LDB4N2MsMHgwMSwweDdkLAotMHgwMCwweDIyLDB4MDQsMHhmNSwweDA0LDB4ZTksMHgwNCwweGVkLDB4MDQsMHhlMSwweDA0LDB4ZGQsMHgwNCwweGQ5LDB4MDQsMHhlNSwKLTB4MDQsMHhmMSwweDA0LDB4OWQsMHgwNCwweGExLDB4MDQsMHhjZCwweDA0LDB4ZDEsMHgwNCwweDk5LDB4MDQsMHg5OSwweDA0LDB4OTksCi0weDA0LDB4ZDUsMHgwNCwweGI1LDB4MDQsMHhhZCwweDA0LDB4YjEsMHgwNCwweGE5LDB4MDQsMHhjMSwweDA0LDB4YmQsMHgwNCwweGI5LAotMHgwNCwweGM1LDB4MDQsMHhjOSwweDA0LDB4YTUsMHgxOSwweDAxLDB4MDMsMHgwMCwweDIyLDB4MDAsMHg0OCwweDAyLDB4MDAsMHgyNCwKLTB4MGYsMHgxOCwweDBhLDB4MTAsMHg2NCwweDBkLDB4NjgsMHgwYywweDA1LDB4MDYsMHgwMiwweDAzLDB4MDEsMHgwMSwweDgxLDB4MDEsCi0weDAwLDB4MDAsMHhlNywweDAwLDB4YzAsMHgwMCwweDgwLDB4MDAsMHg2MCwweDAwLDB4NDAsMHgwMCwweDMwLDB4MDAsMHgxOCwweDAwLAotMHgwYywweDAwLDB4MDgsMHgwMCwweDA0LDB4MDAsMHgwMiwweDAwLDB4MDEsMHgwMCwweDA4LDB4MTgsMHgzOCwweDI4LDB4MDYsMHgwMiwKLTB4MTAsMHgwYSwweDAyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4ODEsMHgxMCwweDBhLDB4MDIsMHgwMCwweDAwLDB4MDAsCi0weDAwLDB4MDAsMHhmYiwweGU4LDB4ZmIsMHhmYSwweDEyLDB4MDEsMHgxMCwweDAxLDB4ZmYsMHgwMCwweDAwLDB4MDgsMHg1MSwweDA0LAotMHg1ZiwweDUwLDB4MTYsMHgwMSwweDAxLDB4MDIsMHgwMCwweDAyLDB4MDksMHgwMiwweDM1LDB4MDAsMHgwMSwweDAyLDB4MDAsMHhlMCwKLTB4MDAsMHgwOSwweDA0LDB4MDAsMHgwMCwweDA1LDB4ZmYsMHgwMCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODEsMHgwMiwweDQwLDB4MDAsCi0weDAwLDB4MDcsMHgwNSwweDAxLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODIsMHgwMiwweDQwLDB4MDAsMHgwMCwweDA3LAotMHgwNSwweDAyLDB4MDIsMHg0MCwweDAwLDB4MDAsMHgwNywweDA1LDB4ODUsMHgwMywweDAyLDB4MDAsMHgwMSwweDA0LDB4MDMsMHgwOSwKLTB4MDQsMHgyNCwweDAzLDB4NTQsMHgwMCwweDY1LDB4MDAsMHg3OCwweDAwLDB4NjEsMHgwMCwweDczLDB4MDAsMHgyMCwweDAwLDB4NDksCi0weDAwLDB4NmUsMHgwMCwweDczLDB4MDAsMHg3NCwweDAwLDB4NzIsMHgwMCwweDc1LDB4MDAsMHg2ZCwweDAwLDB4NjUsMHgwMCwweDZlLAotMHgwMCwweDc0LDB4MDAsMHg3MywweDAwLDB4MmEsMHgwMywweDU0LDB4MDAsMHg1NSwweDAwLDB4NTMsMHgwMCwweDQyLDB4MDAsMHgzNSwKLTB4MDAsMHgzMCwweDAwLDB4MzUsMHgwMCwweDMyLDB4MDAsMHgyMCwweDAwLDB4NTMsMHgwMCwweDY1LDB4MDAsMHg3MiwweDAwLDB4NjksCi0weDAwLDB4NjEsMHgwMCwweDZjLDB4MDAsMHgyMCwweDAwLDB4NTAsMHgwMCwweDZmLDB4MDAsMHg3MiwweDAwLDB4NzQsMHgwMCwweDIyLAotMHgwMywweDU0LDB4MDAsMHg1NSwweDAwLDB4NTMsMHgwMCwweDQyLDB4MDAsMHgzNSwweDAwLDB4MzAsMHgwMCwweDM1LDB4MDAsMHgzMiwKLTB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsMHgwMCwweDIwLDB4MDAsMHgyMCwweDAwLDB4MjAsCi0weDAwLAotfTsKLQotI2VuZGlmIC8qIGlmbmRlZiBfVElfRldfNTA1Ml9IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC90aV91c2JfMzQxMF81MDUyLmMKaW5kZXggYTFjOGFlZi4uYTI2YTYyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3RpX3VzYl8zNDEwXzUwNTIuYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvdGlfdXNiXzM0MTBfNTA1Mi5jCkBAIC04NCwxMSArODQsOSBAQAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiLmg+CiAjaW5jbHVkZSA8bGludXgvdXNiL3NlcmlhbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAKICNpbmNsdWRlICJ0aV91c2JfMzQxMF81MDUyLmgiCi0jaW5jbHVkZSAidGlfZndfMzQxMC5oIgkJLyogZmlybXdhcmUgaW1hZ2UgZm9yIDM0MTAgKi8KLSNpbmNsdWRlICJ0aV9md181MDUyLmgiCQkvKiBmaXJtd2FyZSBpbWFnZSBmb3IgNTA1MiAqLwotCiAKIC8qIERlZmluZXMgKi8KIApAQCAtMTk0LDggKzE5Miw4IEBACiBzdGF0aWMgaW50IHRpX3dyaXRlX2J5dGUoc3RydWN0IHRpX2RldmljZSAqdGRldiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCV9fdTggbWFzaywgX191OCBieXRlKTsKIAotc3RhdGljIGludCB0aV9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LAotCXVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCB1bnNpZ25lZCBpbnQgZmlybXdhcmVfc2l6ZSk7CitzdGF0aWMgaW50IHRpX2Rvd25sb2FkX2Zpcm13YXJlKHN0cnVjdCB0aV9kZXZpY2UgKnRkZXYsIGNoYXIgKmZ3X25hbWUpOworCiAKIC8qIGNpcmN1bGFyIGJ1ZmZlciAqLwogc3RhdGljIHN0cnVjdCBjaXJjX2J1ZiAqdGlfYnVmX2FsbG9jKHZvaWQpOwpAQCAtMzIwLDYgKzMxOCw5IEBACiBNT0RVTEVfVkVSU0lPTihUSV9EUklWRVJfVkVSU0lPTik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKK01PRFVMRV9GSVJNV0FSRSgidGlfMzQxMC5mdyIpOworTU9EVUxFX0ZJUk1XQVJFKCJ0aV81MDUyLmZ3Iik7CisKIG1vZHVsZV9wYXJhbShkZWJ1ZywgYm9vbCwgU19JUlVHTyB8IFNfSVdVU1IpOwogTU9EVUxFX1BBUk1fREVTQyhkZWJ1ZywgIkVuYWJsZSBkZWJ1Z2dpbmcsIDA9bm8sIDE9eWVzIik7CiAKQEAgLTQzMSwxMSArNDMyLDkgQEAKIAlpZiAoZGV2LT5kZXNjcmlwdG9yLmJOdW1Db25maWd1cmF0aW9ucyA9PSAxKSB7CiAKIAkJaWYgKHRkZXYtPnRkX2lzXzM0MTApCi0JCQlzdGF0dXMgPSB0aV9kb3dubG9hZF9maXJtd2FyZSh0ZGV2LCB0aV9md18zNDEwLAotCQkJCXNpemVvZih0aV9md18zNDEwKSk7CisJCQlzdGF0dXMgPSB0aV9kb3dubG9hZF9maXJtd2FyZSh0ZGV2LCAidGlfMzQxMC5mdyIpOwogCQllbHNlCi0JCQlzdGF0dXMgPSB0aV9kb3dubG9hZF9maXJtd2FyZSh0ZGV2LCB0aV9md181MDUyLAotCQkJCXNpemVvZih0aV9md181MDUyKSk7CisJCQlzdGF0dXMgPSB0aV9kb3dubG9hZF9maXJtd2FyZSh0ZGV2LCAidGlfNTA1Mi5mdyIpOwogCQlpZiAoc3RhdHVzKQogCQkJZ290byBmcmVlX3RkZXY7CiAKQEAgLTE2NTgsOCArMTY1Nyw5IEBACiAKIAogc3RhdGljIGludCB0aV9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3QgdGlfZGV2aWNlICp0ZGV2LAotCXVuc2lnbmVkIGNoYXIgKmZpcm13YXJlLCB1bnNpZ25lZCBpbnQgZmlybXdhcmVfc2l6ZSkKKwkJCQljaGFyICpmd19uYW1lKQogeworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZnc7CiAJaW50IHN0YXR1cyA9IDA7CiAJaW50IGJ1ZmZlcl9zaXplOwogCWludCBwb3M7CkBAIC0xNjcyLDE2ICsxNjcyLDI5IEBACiAJdW5zaWduZWQgaW50IHBpcGUgPSB1c2Jfc25kYnVsa3BpcGUoZGV2LAogCQl0ZGV2LT50ZF9zZXJpYWwtPnBvcnRbMF0tPmJ1bGtfb3V0X2VuZHBvaW50QWRkcmVzcyk7CiAKLQogCWJ1ZmZlcl9zaXplID0gVElfRklSTVdBUkVfQlVGX1NJWkUgKyBzaXplb2Yoc3RydWN0IHRpX2Zpcm13YXJlX2hlYWRlcik7CisKKwlpZiAocmVxdWVzdF9maXJtd2FyZSgmZncsIGZ3X25hbWUsICZkZXYtPmRldikpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIGZhaWxlZCB0byBsb2FkIGZpcm13YXJlIFwiJXNcIlxuIiwKKwkJCV9fZnVuY19fLCBmd19uYW1lKTsKKwkJcmV0dXJuIC1FTk9FTlQ7CisJfQorCWlmIChmdy0+c2l6ZSA+IGJ1ZmZlcl9zaXplKSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiJXMgLSBmaXJtd2FyZSBcIiVzXCIgaXMgdG9vIGxhcmdlXG4iLAorCQkJX19mdW5jX18sIGZ3X25hbWUpOworCQlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJYnVmZmVyID0ga21hbGxvYyhidWZmZXJfc2l6ZSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFidWZmZXIpIHsKIAkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIG91dCBvZiBtZW1vcnlcbiIsIF9fZnVuY19fKTsKKwkJcmVsZWFzZV9maXJtd2FyZShmdyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIAotCW1lbWNweShidWZmZXIsIGZpcm13YXJlLCBmaXJtd2FyZV9zaXplKTsKLQltZW1zZXQoYnVmZmVyK2Zpcm13YXJlX3NpemUsIDB4ZmYsIGJ1ZmZlcl9zaXplLWZpcm13YXJlX3NpemUpOworCW1lbWNweShidWZmZXIsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CisJbWVtc2V0KGJ1ZmZlcitmdy0+c2l6ZSwgMHhmZiwgYnVmZmVyX3NpemUtZnctPnNpemUpOwogCiAJZm9yKHBvcyA9IHNpemVvZihzdHJ1Y3QgdGlfZmlybXdhcmVfaGVhZGVyKTsgcG9zIDwgYnVmZmVyX3NpemU7IHBvcysrKQogCQljcyA9IChfX3U4KShjcyArIGJ1ZmZlcltwb3NdKTsKQEAgLTE2OTksNiArMTcxMiw3IEBACiAJfQogCiAJa2ZyZWUoYnVmZmVyKTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZ3KTsKIAogCWlmIChzdGF0dXMpIHsKIAkJZGV2X2VycigmZGV2LT5kZXYsICIlcyAtIGVycm9yIGRvd25sb2FkaW5nIGZpcm13YXJlLCAlZFxuIiwgX19mdW5jX18sIHN0YXR1cyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0LmMKaW5kZXggZjA3ZThhNC4uNjY1YWE3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdC5jCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC93aGl0ZWhlYXQuYwpAQCAtODEsNyArODEsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KICNpbmNsdWRlIDxsaW51eC9zZXJpYWwuaD4KICNpbmNsdWRlIDxsaW51eC91c2Ivc2VyaWFsLmg+Ci0jaW5jbHVkZSAid2hpdGVoZWF0X2Z3LmgiCQkvKiBmaXJtd2FyZSBmb3IgdGhlIENvbm5lY3RUZWNoIFdoaXRlSEVBVCBkZXZpY2UgKi8KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2loZXguaD4KICNpbmNsdWRlICJ3aGl0ZWhlYXQuaCIJCQkvKiBXaGl0ZUhFQVQgc3BlY2lmaWMgY29tbWFuZHMgKi8KIAogc3RhdGljIGludCBkZWJ1ZzsKQEAgLTI3OSwzNyArMjgwLDUyIEBACiAqLwogc3RhdGljIGludCB3aGl0ZWhlYXRfZmlybXdhcmVfZG93bmxvYWQgKHN0cnVjdCB1c2Jfc2VyaWFsICpzZXJpYWwsIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZCkKIHsKLQlpbnQgcmVzcG9uc2U7Ci0JY29uc3Qgc3RydWN0IHdoaXRlaGVhdF9oZXhfcmVjb3JkICpyZWNvcmQ7Ci0JCisJaW50IHJlc3BvbnNlLCByZXQgPSAtRU5PRU5UOworCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqbG9hZGVyX2Z3ID0gTlVMTCwgKmZpcm13YXJlX2Z3ID0gTlVMTDsKKwljb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKnJlY29yZDsKKwogCWRiZygiJXMiLCBfX2Z1bmNfXyk7Ci0JCisKKwlpZiAocmVxdWVzdF9paGV4X2Zpcm13YXJlKCZmaXJtd2FyZV9mdywgIndoaXRlaGVhdC5mdyIsCisJCQkJICAmc2VyaWFsLT5kZXYtPmRldikpIHsKKwkJZXJyKCIlcyAtIHJlcXVlc3QgXCJ3aGl0ZWhlYXQuZndcIiBmYWlsZWQiLCBfX2Z1bmNfXyk7CisJCWdvdG8gb3V0OworCX0KKwlpZiAocmVxdWVzdF9paGV4X2Zpcm13YXJlKCZsb2FkZXJfZncsICJ3aGl0ZWhlYXRfbG9hZGVyLmZ3IiwKKwkJCSAgICAgJnNlcmlhbC0+ZGV2LT5kZXYpKSB7CisJCWVycigiJXMgLSByZXF1ZXN0IFwid2hpdGVoZWF0X2xvYWRlci5md1wiIGZhaWxlZCIsIF9fZnVuY19fKTsKKwkJZ290byBvdXQ7CisJfQorCXJldCA9IDA7CiAJcmVzcG9uc2UgPSBlenVzYl9zZXRfcmVzZXQgKHNlcmlhbCwgMSk7CiAKLQlyZWNvcmQgPSAmd2hpdGVoZWF0X2xvYWRlclswXTsKLQl3aGlsZSAocmVjb3JkLT5hZGRyZXNzICE9IDB4ZmZmZikgewotCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywgCi0JCQkJKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplLCAweGEwKTsKKwlyZWNvcmQgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopbG9hZGVyX2Z3LT5kYXRhOworCXdoaWxlIChyZWNvcmQpIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJCQkgICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKKwkJCQkJICAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEwKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZXJyKCIlcyAtIGV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3IgbG9hZGVyICglZCAlMDRYICVwICVkKSIsCi0JCQkJX19mdW5jX18sIHJlc3BvbnNlLCByZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJICAgIF9fZnVuY19fLCByZXNwb25zZSwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCSAgICByZWNvcmQtPmRhdGEsIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSk7CiAJCQlicmVhazsKIAkJfQotCQkrK3JlY29yZDsKKwkJcmVjb3JkID0gaWhleF9uZXh0X2JpbnJlYyhyZWNvcmQpOwogCX0KIAogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDApOwogCi0JcmVjb3JkID0gJndoaXRlaGVhdF9maXJtd2FyZVswXTsKLQl3aGlsZSAocmVjb3JkLT5hZGRyZXNzIDwgMHgxYjQwKSB7Ci0JCSsrcmVjb3JkOwotCX0KLQl3aGlsZSAocmVjb3JkLT5hZGRyZXNzICE9IDB4ZmZmZikgewotCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIHJlY29yZC0+YWRkcmVzcywgCi0JCQkJKHVuc2lnbmVkIGNoYXIgKilyZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplLCAweGEzKTsKKwlyZWNvcmQgPSAoY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICopZmlybXdhcmVfZnctPmRhdGE7CisJd2hpbGUgKHJlY29yZCAmJiBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpIDwgMHgxYjQwKQorCQlyZWNvcmQgPSBpaGV4X25leHRfYmlucmVjKHJlY29yZCk7CisJd2hpbGUgKHJlY29yZCkgeworCQlyZXNwb25zZSA9IGV6dXNiX3dyaXRlbWVtb3J5IChzZXJpYWwsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkJCSAgICAgICh1bnNpZ25lZCBjaGFyICopcmVjb3JkLT5kYXRhLAorCQkJCQkgICAgICBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbiksIDB4YTMpOwogCQlpZiAocmVzcG9uc2UgPCAwKSB7CiAJCQllcnIoIiVzIC0gZXp1c2Jfd3JpdGVtZW1vcnkgZmFpbGVkIGZvciBmaXJzdCBmaXJtd2FyZSBzdGVwICglZCAlMDRYICVwICVkKSIsIAotCQkJCV9fZnVuY19fLCByZXNwb25zZSwgcmVjb3JkLT5hZGRyZXNzLCByZWNvcmQtPmRhdGEsIHJlY29yZC0+ZGF0YV9zaXplKTsKKwkJCSAgICBfX2Z1bmNfXywgcmVzcG9uc2UsIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkciksCisJCQkgICAgcmVjb3JkLT5kYXRhLCBiZTE2X3RvX2NwdShyZWNvcmQtPmxlbikpOwogCQkJYnJlYWs7CiAJCX0KIAkJKytyZWNvcmQ7CkBAIC0zMTcsMjEgKzMzMywyNSBAQAogCQogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDEpOwogCi0JcmVjb3JkID0gJndoaXRlaGVhdF9maXJtd2FyZVswXTsKLQl3aGlsZSAocmVjb3JkLT5hZGRyZXNzIDwgMHgxYjQwKSB7Ci0JCXJlc3BvbnNlID0gZXp1c2Jfd3JpdGVtZW1vcnkgKHNlcmlhbCwgcmVjb3JkLT5hZGRyZXNzLCAKLQkJCQkodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUsIDB4YTApOworCXJlY29yZCA9IChjb25zdCBzdHJ1Y3QgaWhleF9iaW5yZWMgKilmaXJtd2FyZV9mdy0+ZGF0YTsKKwl3aGlsZSAocmVjb3JkICYmIGJlMzJfdG9fY3B1KHJlY29yZC0+YWRkcikgPCAweDFiNDApIHsKKwkJcmVzcG9uc2UgPSBlenVzYl93cml0ZW1lbW9yeSAoc2VyaWFsLCBiZTMyX3RvX2NwdShyZWNvcmQtPmFkZHIpLAorCQkJCQkgICAgICAodW5zaWduZWQgY2hhciAqKXJlY29yZC0+ZGF0YSwKKwkJCQkJICAgICAgYmUxNl90b19jcHUocmVjb3JkLT5sZW4pLCAweGEwKTsKIAkJaWYgKHJlc3BvbnNlIDwgMCkgewogCQkJZXJyKCIlcyAtIGV6dXNiX3dyaXRlbWVtb3J5IGZhaWxlZCBmb3Igc2Vjb25kIGZpcm13YXJlIHN0ZXAgKCVkICUwNFggJXAgJWQpIiwgCi0JCQkJX19mdW5jX18sIHJlc3BvbnNlLCByZWNvcmQtPmFkZHJlc3MsIHJlY29yZC0+ZGF0YSwgcmVjb3JkLT5kYXRhX3NpemUpOworCQkJICAgIF9fZnVuY19fLCByZXNwb25zZSwgYmUzMl90b19jcHUocmVjb3JkLT5hZGRyKSwKKwkJCSAgICByZWNvcmQtPmRhdGEsIGJlMTZfdG9fY3B1KHJlY29yZC0+bGVuKSk7CiAJCQlicmVhazsKIAkJfQogCQkrK3JlY29yZDsKIAl9Ci0KKwlyZXQgPSAwOwogCXJlc3BvbnNlID0gZXp1c2Jfc2V0X3Jlc2V0IChzZXJpYWwsIDApOwotCi0JcmV0dXJuIDA7Cisgb3V0OgorCXJlbGVhc2VfZmlybXdhcmUobG9hZGVyX2Z3KTsKKwlyZWxlYXNlX2Zpcm13YXJlKGZpcm13YXJlX2Z3KTsKKwlyZXR1cm4gcmV0OwogfQogCiAKQEAgLTE1MDMsNiArMTUyMyw5IEBACiBNT0RVTEVfREVTQ1JJUFRJT04oIERSSVZFUl9ERVNDICk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiAKK01PRFVMRV9GSVJNV0FSRSgid2hpdGVoZWF0LmZ3Iik7CitNT0RVTEVfRklSTVdBUkUoIndoaXRlaGVhdF9sb2FkZXIuZnciKTsKKwogbW9kdWxlX3BhcmFtKHVyYl9wb29sX3NpemUsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKHVyYl9wb29sX3NpemUsICJOdW1iZXIgb2YgdXJicyB0byB1c2UgZm9yIGJ1ZmZlcmluZyIpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0X2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwvd2hpdGVoZWF0X2Z3LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlMGJkYzcuLjAwMDAwMDAKLS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL3doaXRlaGVhdF9mdy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTY2OSArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqCi0gKiAgICAgIHdoaXRlaGVhdC5oICAtLSAgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIEZpcm13YXJlLgotICoKLSAqICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgIENvbm5lY3RUZWNoIEluYyAoaHR0cDovL3d3dy5jb25uZWN0dGVjaC5jb20vKQotICoKLSAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogICAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogICAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiAgICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogICAgICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSAqCi0gKiAoMTAvMDkvMjAwMikgU3R1YXJ0IE1hY0RvbmFsZAotICoJRmlybXdhcmUgNC4wNgotICoKLSAqICgwNC8wOS8yMDAwKSBna2gKLSAqCVVwZGF0ZWQgdGhlIGZpcm13YXJlIHdpdGggdGhlIGxhdGVzdCBwcm92aWRlZCBieSBDb25uZWN0VGVjaC4KLSAqCi0gKiAoMDEvMTYvMjAwMCkgZ2toCi0gKglGaXhlZCBteSBpbnRlbCBoZXggcHJvY2Vzc2luZyB0b29sLCBzbyBub3cgdGhlIGZpcm13YXJlIGFjdHVhbGx5Ci0gKgltYXRjaGVzIHRoZSBvcmlnaW5hbCBmaWxlICh0aGlzIHdhcyBjYXVzaW5nIGEgZmV3IHByb2JsZW1zLi4uKQotICoKLSAqICgwMS8xNS8yMDAwKSBna2gKLSAqCUFkZGVkIGRlYnVnIGxvYWRlciBmaXJtd2FyZSBpZiBERUJVRyBpcyAjZGVmaW5lZDoKLSAqCQlQb3J0IDEgTEVEIGZsYXNoZXMgd2hlbiB0aGUgdmVuZF9heCBwcm9ncmFtIGlzIHJ1bm5pbmcKLSAqCQlQb3J0IDIgTEVEIGZsYXNoZXMgd2hlbiBhbnkgU0VUVVAgY29tbWFuZCBhcnJpdmVzCi0gKgkJUG9ydCAzIExFRCBmbGFzaGVzIHdoZW4gYW55IHZhbGlkIFZFTkRPUiByZXF1ZXN0IG9jY3VycwotICoJCVBvcnQgNCBMRUQgZmxhc2hlcyB3aGVuIHRoZSBFWFRFUk5BTCBSQU0gRE9XTkxPQUQgcmVxdWVzdCBvY2N1cnMKLSAqCi0gKiB2ZXJzaW9uIDEuMCAoMDEvMDkvMjAwMCkgZ2toCi0gKglPcmlnaW5hbCBmaXJtd2FyZSBmcm9tIENvbm5lY3RUZWNoIG1hc3NhZ2VkIGEgbGl0dGxlIHRvIGJlIHByb2dyYW0KLSAqCXJlYWRhYmxlLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2RlZmluZSB3aGl0ZWhlYXRfREFURSAiMjAwMDAxMDYiCi0KLXN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB7Ci0JX191MTYJYWRkcmVzczsKLQlfX3U4CWRhdGFfc2l6ZTsKLQlfX3U4CWRhdGFbMTZdOwotfTsKLQotc3RhdGljIGNvbnN0IHN0cnVjdCB3aGl0ZWhlYXRfaGV4X3JlY29yZCB3aGl0ZWhlYXRfZmlybXdhcmVbXSA9IHsKLXsgMHgwMDAwLAkzLAl7MHgwMiwgMHg5NywgMHhlM30gfSwKLXsgMHgwMDAzLAkzLAl7MHgwMiwgMHgxMywgMHgxMn0gfSwKLXsgMHgwMDBiLAkzLAl7MHgwMiwgMHgwYiwgMHhiNX0gfSwKLXsgMHgwMDMzLAkzLAl7MHgwMiwgMHgwOCwgMHgxY30gfSwKLXsgMHgwMDQzLAkzLAl7MHgwMiwgMHgwYSwgMHgwMH0gfSwKLXsgMHgwMDViLAkzLAl7MHgwMiwgMHg4MywgMHgzYn0gfSwKLXsgMHgwMzcwLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NzMsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4ZTcsIDB4MjR9IH0sCi17IDB4MDM4MCwJMTYsCXsweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDA1LCAweDRmLCAweDI0LCAweGZiLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDY0LCAweDE0LCAweDcwLCAweDAzfSB9LAoteyAweDAzOTAsCTE2LAl7MHgwMiwgMHgwNCwgMHg1MiwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHgzYSwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg0OSwgMHgyNH0gfSwKLXsgMHgwM2EwLAkxNiwJezB4MDUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4OWUsIDB4OTAsIDB4N2YsIDB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjB9IH0sCi17IDB4MDNiMCwJMTYsCXsweDM2LCAweDI0LCAweDAyLCAweDcwLCAweDdiLCAweDc0LCAweDEyLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1fSB9LAoteyAweDAzYzAsCTE2LAl7MHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwYSwgMHg5OSwgMHhlYSwgMHg0OSwgMHg2MCwgMHgwZH0gfSwKLXsgMHgwM2QwLAkxNiwJezB4ZWEsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4ZTksIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4YjR9IH0sCi17IDB4MDNlMCwJMTYsCXsweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDBhLCAweDU4LCAweGVhfSB9LAoteyAweDAzZjAsCTE2LAl7MHg0OSwgMHg2MCwgMHgzMywgMHgxMiwgMHhhMiwgMHgzYiwgMHhmNSwgMHg0ZSwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMCwgMHhmZiwgMHhlNSwgMHg0ZSwgMHhkM30gfSwKLXsgMHgwNDAwLAkxNiwJezB4OWYsIDB4NDAsIDB4MDMsIDB4ZTAsIDB4ZjUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4ZDMsIDB4OTQsIDB4NDAsIDB4NDAsIDB4MDMsIDB4NzUsIDB4NGUsIDB4NDB9IH0sCi17IDB4MDQxMCwJMTYsCXsweGFlLCAweDAyLCAweGFmLCAweDAxLCAweDdjLCAweDdmLCAweDdkLCAweDAwLCAweGFiLCAweDRlLCAweDEyLCAweDkxLCAweDM3LCAweDkwLCAweDdmLCAweGI1fSB9LAoteyAweDA0MjAsCTE2LAl7MHhlNSwgMHg0ZSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNX0gfSwKLXsgMHgwNDMwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MjEsIDB4ZjB9IH0sCi17IDB4MDQ0MCwJMTYsCXsweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDIxLCAweDAyfSB9LAoteyAweDA0NTAsCTE2LAl7MHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgzNSwgMHhkMiwgMHgwMiwgMHg0MywgMHg4OCwgMHgxMCwgMHhkMiwgMHhlYiwgMHhkMn0gfSwKLXsgMHgwNDYwLAkxNiwJezB4YTgsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZTUsIDB4MzUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjB9IH0sCi17IDB4MDQ3MCwJMTYsCXsweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyfSB9LAoteyAweDA0ODAsCTE2LAl7MHg3MCwgMHg1YiwgMHhhMiwgMHgwMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwNSwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MH0gfSwKLXsgMHgwNDkwLAkxNiwJezB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTUsIDB4ZTR9IH0sCi17IDB4MDRhMCwJMTYsCXsweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwfSB9LAoteyAweDA0YjAsCTE2LAl7MHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNX0gfSwKLXsgMHgwNGMwLAkxNiwJezB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCi17IDB4MDRkMCwJMTYsCXsweGYwLCAweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGI0fSB9LAoteyAweDA0ZTAsCTE2LAl7MHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhNSwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxZCwgMHgyNH0gfSwKLXsgMHgwNGYwLAkxNiwJezB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTUsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjQsIDB4MDEsIDB4MDUsIDB4YzIsIDB4MDAsIDB4MDJ9IH0sCi17IDB4MDUwMCwJMTYsCXsweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGE1LCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoteyAweDA1MTAsCTE2LAl7MHg3MCwgMHgzNCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmZiwgMHg1NCwgMHgwNywgMHhmZSwgMHhmNSwgMHg0ZSwgMHhlZiwgMHgzMCwgMHhlNywgMHgwM30gfSwKLXsgMHgwNTIwLAkxNiwJezB4NDMsIDB4NGUsIDB4MTAsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZTUsIDB4NGUsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ZWYsIDB4ZjR9IH0sCi17IDB4MDUzMCwJMTYsCXsweDU0LCAweDgwLCAweGZkLCAweGM0LCAweDU0LCAweDBmLCAweDJlLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmfSB9LAoteyAweDA1NDAsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg4MCwgMHg1ZiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHg1NiwgMHg5MH0gfSwKLXsgMHgwNTUwLAkxNiwJezB4N2YsIDB4ZTgsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTgsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NGEsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjR9IH0sCi17IDB4MDU2MCwJMTYsCXsweDAxLCAweDA0LCAweGQyLCAweDAwLCAweDgwLCAweDNmLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDM2LCAweDkwfSB9LAoteyAweDA1NzAsCTE2LAl7MHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZn0gfSwKLXsgMHgwNTgwLAkxNiwJezB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MDU5MCwJMTYsCXsweDc0LCAweDAxLCAweGYwLCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDA3LCAweDkwLCAweDdmfSB9LAoteyAweDA1YTAsCTEyLAl7MHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMH0gfSwKLXsgMHgwNWFjLAkxLAl7MHgyMn0gfSwKLXsgMHgwNWFkLAkxNiwJezB4NzUsIDB4NGEsIDB4ZmYsIDB4NzUsIDB4NDksIDB4ZmYsIDB4NzUsIDB4NDgsIDB4MGYsIDB4NzUsIDB4NDcsIDB4MDAsIDB4ZDIsIDB4MDMsIDB4YzIsIDB4MDZ9IH0sCi17IDB4MDViZCwJMTYsCXsweGMyLCAweDAyLCAweGMyLCAweDAwLCAweGMyLCAweDA1LCAweGMyLCAweDAxLCAweDkwLCAweDAzLCAweDAwLCAweDc0LCAweDE5LCAweGYwLCAweGU0LCAweDkwfSB9LAoteyAweDA1Y2QsCTE2LAl7MHgwMSwgMHhiYywgMHhmMCwgMHhjMiwgMHgwNCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhmMCwgMHhhMywgMHhmMCwgMHhjMiwgMHhhZiwgMHhjMiwgMHhhOCwgMHgxMn0gfSwKLXsgMHgwNWRkLAkxNiwJezB4MGMsIDB4MjIsIDB4ZTQsIDB4OTAsIDB4MDIsIDB4YWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4YmQsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MDAsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDVlZCwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGEzLCAweDc0LCAweDAxLCAweGYwLCAweGEzfSB9LAoteyAweDA1ZmQsCTE2LAl7MHg3NCwgMHgwOCwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgwMCwgMHgxMiwgMHgxOSwgMHhjMSwgMHg3NSwgMHg0YywgMHgxMiwgMHg3NSwgMHg0ZCwgMHgwYX0gfSwKLXsgMHgwNjBkLAkxNiwJezB4OTAsIDB4MDEsIDB4MGIsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NGMsIDB4MTR9IH0sCi17IDB4MDYxZCwJMTYsCXsweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxLCAweDBjLCAweGUwLCAweDQ0LCAweDgwLCAweGZmLCAweDA1LCAweDRkLCAweGU1fSB9LAoteyAweDA2MmQsCTE2LAl7MHg0ZCwgMHhhYywgMHg0YywgMHg3MCwgMHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMX0gfSwKLXsgMHgwNjNkLAkxNiwJezB4MGQsIDB4ZTAsIDB4ZmYsIDB4MDUsIDB4NGQsIDB4ZTUsIDB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MDY0ZCwJMTYsCXsweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDkwLCAweDAxLCAweDBlLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFjLCAweDRjLCAweDcwfSB9LAoteyAweDA2NWQsCTE2LAl7MHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHgxMiwgMHgwYSwgMHhlNCwgMHg5MywgMHhmZn0gfSwKLXsgMHgwNjZkLAkxNiwJezB4NzQsIDB4MDEsIDB4OTMsIDB4OTAsIDB4MDEsIDB4MWMsIDB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWMsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MDY3ZCwJMTYsCXsweGEzLCAweGUwLCAweGZlLCAweGVmLCAweDZlLCAweGZmLCAweDkwLCAweDAxLCAweDFjLCAweGYwLCAweGEzLCAweGUwLCAweDZmLCAweGZmLCAweGYwLCAweDkwfSB9LAoteyAweDA2OGQsCTE2LAl7MHgwMSwgMHgxYywgMHhlMCwgMHg2ZiwgMHhmMCwgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhlNCwgMHhmYywgMHhmZCwgMHg3NSwgMHg1MiwgMHgxMH0gfSwKLXsgMHgwNjlkLAkxNiwJezB4NzUsIDB4NTMsIDB4MDIsIDB4NzUsIDB4NTQsIDB4MTIsIDB4NzUsIDB4NTUsIDB4YWMsIDB4MTIsIDB4OTQsIDB4MjYsIDB4NzUsIDB4NGMsIDB4MTIsIDB4NzV9IH0sCi17IDB4MDZhZCwJMTYsCXsweDRkLCAweGIyLCAweDkwLCAweDAxLCAweDBkLCAweGUwLCAweGZmLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFjLCAweDRjLCAweDcwLCAweDAyLCAweDA1fSB9LAoteyAweDA2YmQsCTE2LAl7MHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHgwZSwgMHhlMCwgMHhmZiwgMHgwNSwgMHg0ZCwgMHhlNX0gfSwKLXsgMHgwNmNkLAkxNiwJezB4NGQsIDB4YWMsIDB4NGMsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDZkZCwJMTYsCXsweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDI0LCAweDQxLCAweGZmLCAweDA1LCAweDRkLCAweGU1LCAweDRkLCAweGFjLCAweDRjLCAweDcwfSB9LAoteyAweDA2ZWQsCTE2LAl7MHgwMiwgMHgwNSwgMHg0YywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHg0ZCwgMHhlNSwgMHg0ZCwgMHhhZSwgMHg0Y30gfSwKLXsgMHgwNmZkLAkxNiwJezB4NzAsIDB4MDIsIDB4MDUsIDB4NGMsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4NzUsIDB4ODIsIDB4MTAsIDB4NzUsIDB4ODN9IH0sCi17IDB4MDcwZCwJMTYsCXsweDAxLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDkwLCAweDAxLCAweDE4LCAweDEyfSB9LAoteyAweDA3MWQsCTE2LAl7MHhhMywgMHhlZSwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHgxOCwgMHgxMiwgMHg4NiwgMHhiZSwgMHg5MCwgMHgwMSwgMHgxOCwgMHhlMCwgMHhmYywgMHhhMywgMHhlMH0gfSwKLXsgMHgwNzJkLAkxNiwJezB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4NzUsIDB4NTIsIDB4MGEsIDB4NzUsIDB4NTMsIDB4MDYsIDB4NzUsIDB4NTQsIDB4MTJ9IH0sCi17IDB4MDczZCwJMTYsCXsweDc1LCAweDU1LCAweGI4LCAweDEyLCAweDk0LCAweDI2LCAweGQyLCAweGU4LCAweDQzLCAweGQ4LCAweDIwLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweGZmfSB9LAoteyAweDA3NGQsCTE2LAl7MHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZSwgMHhlMCwgMHg0NH0gfSwKLXsgMHgwNzVkLAkxNiwJezB4MWYsIDB4ZjAsIDB4ZDIsIDB4YWYsIDB4MjAsIDB4MDEsIDB4MmUsIDB4MjAsIDB4MDEsIDB4MmIsIDB4YTIsIDB4MDMsIDB4OTIsIDB4MDcsIDB4MTIsIDB4MDl9IH0sCi17IDB4MDc2ZCwJMTYsCXsweGM1LCAweDc1LCAweDQ2LCAweDUwLCAweDc1LCAweDQ1LCAweDZkLCAweDc1LCAweDQ0LCAweDMzLCAweDc1LCAweDQzLCAweDAwLCAweDIwLCAweDAxLCAweGU0fSB9LAoteyAweDA3N2QsCTE2LAl7MHg3ZiwgMHhmZiwgMHg3ZSwgMHhmZiwgMHg3ZCwgMHhmZiwgMHg3YywgMHhmZiwgMHg3OCwgMHg0MywgMHgxMiwgMHhhMywgMHhkNywgMHhlYywgMHg0ZCwgMHg0ZX0gfSwKLXsgMHgwNzhkLAkxNiwJezB4NGYsIDB4NjAsIDB4ZDEsIDB4ODAsIDB4ZTgsIDB4MzAsIDB4MDEsIDB4MDUsIDB4MTIsIDB4MDMsIDB4NzAsIDB4YzIsIDB4MDEsIDB4MzAsIDB4MDYsIDB4MGF9IH0sCi17IDB4MDc5ZCwJMTYsCXsweDEyLCAweDA5LCAweGZiLCAweDUwLCAweDAzLCAweDEyLCAweDBhLCAweGU4LCAweGMyLCAweDA2LCAweDEyLCAweDk2LCAweDVlLCAweDkwLCAweDAxLCAweGJkfSB9LAoteyAweDA3YWQsCTE2LAl7MHhlMCwgMHg2MCwgMHgwYywgMHgxMiwgMHg5MiwgMHgwMSwgMHhlNCwgMHg5MCwgMHgwMSwgMHhiZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkMywgMHhmMCwgMHg5MH0gfSwKLXsgMHgwN2JkLAkxNiwJezB4MDIsIDB4YWYsIDB4ZTAsIDB4YjQsIDB4MGYsIDB4MDMsIDB4MTIsIDB4OTksIDB4YjksIDB4MTIsIDB4YTAsIDB4OTUsIDB4ZTQsIDB4ZmYsIDB4NzQsIDB4MDF9IH0sCi17IDB4MDdjZCwJMTYsCXsweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGZlLCAweDkwLCAweDAxLCAweGJjLCAweGUwLCAweDVlLCAweDYwfSB9LAoteyAweDA3ZGQsCTE2LAl7MHgxNCwgMHg3NCwgMHgyOCwgMHgyZiwgMHhmOCwgMHhlNiwgMHhkMywgMHg5NCwgMHgwYSwgMHg0MCwgMHgwNCwgMHg3ZSwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3ZX0gfSwKLXsgMHgwN2VkLAkxNiwJezB4MDAsIDB4OGUsIDB4NGIsIDB4ODAsIDB4MDMsIDB4NzUsIDB4NGIsIDB4MDEsIDB4NzQsIDB4NjgsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjB9IH0sCi17IDB4MDdmZCwJMTYsCXsweGY1LCAweDgzLCAweGU1LCAweDRiLCAweGYwLCAweDBmLCAweGJmLCAweDA0LCAweGM1LCAweGU1LCAweDJjLCAweGQzLCAweDk0LCAweDBhLCAweDQwLCAweDA0fSB9LAoteyAweDA4MGQsCTE0LAl7MHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg5MCwgMHgyMCwgMHg2YywgMHhlZiwgMHhmMCwgMHgwMiwgMHgwNywgMHg5Mn0gfSwKLXsgMHgwODFiLAkxLAl7MHgyMn0gfSwKLXsgMHgwODFjLAk0LAl7MHg1MywgMHhkOCwgMHhlZiwgMHgzMn0gfSwKLXsgMHgwODIwLAkxNiwJezB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZTAsIDB4NDQsIDB4MzAsIDB4ZjAsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDgzMCwJMTYsCXsweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwfSB9LAoteyAweDA4NDAsCTE2LAl7MHg1NCwgMHhmZSwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwOH0gfSwKLXsgMHgwODUwLAkxNiwJezB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4N2Z9IH0sCi17IDB4MDg2MCwJMTYsCXsweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDUwLCAweDBlLCAweDdmLCAweDAyLCAweDdkfSB9LAoteyAweDA4NzAsCTE2LAl7MHhmZiwgMHgxMiwgMHg4MiwgMHhlYSwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NH0gfSwKLXsgMHgwODgwLAkxNiwJezB4MDIsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTZ9IH0sCi17IDB4MDg5MCwJMTYsCXsweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0fSB9LAoteyAweDA4YTAsCTE2LAl7MHhiZiwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMH0gfSwKLXsgMHgwOGIwLAk4LAl7MHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHgyMn0gfSwKLXsgMHgwOGI4LAkxNiwJezB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4N2UsIDB4MDAsIDB4MTJ9IH0sCi17IDB4MDhjOCwJMTYsCXsweDA5LCAweGFlLCAweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDUwLCAweDBlLCAweDdmLCAweDAyLCAweGU0LCAweGZkLCAweDEyLCAweDgyLCAweGVhfSB9LAoteyAweDA4ZDgsCTE2LAl7MHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg3ZiwgMHgwNX0gfSwKLXsgMHgwOGU4LAkxNiwJezB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4N2YsIDB4MDUsIDB4N2UsIDB4MDB9IH0sCi17IDB4MDhmOCwJMTYsCXsweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDU0LCAweGY3LCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5fSB9LAoteyAweDA5MDgsCTE2LAl7MHhhZSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHhlNX0gfSwKLXsgMHgwOTE4LAkxNiwJezB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MGUsIDB4OTAsIDB4N2YsIDB4OTMsIDB4ZTAsIDB4NTQsIDB4Y2YsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTV9IH0sCi17IDB4MDkyOCwJOCwJezB4ZTAsIDB4NTQsIDB4M2YsIDB4ZjAsIDB4MTIsIDB4MGIsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MDkzMCwJMTYsCXsweDkwLCAweDBhLCAweGY0LCAweGU0LCAweDkzLCAweDcwLCAweDc2LCAweDkwLCAweDdmLCAweDkzLCAweDc0LCAweDMwLCAweGYwLCAweDkwLCAweDdmLCAweDk0fSB9LAoteyAweDA5NDAsCTE2LAl7MHg3NCwgMHgzYywgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHhjNiwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZX0gfSwKLXsgMHgwOTUwLAkxNiwJezB4ZTQsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4MDgsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4NzQsIDB4Y2Z9IH0sCi17IDB4MDk2MCwJMTYsCXsweGYwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDkwLCAweDIwLCAweDcwLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmfSB9LAoteyAweDA5NzAsCTE2LAl7MHhmNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg1MCwgMHgwNywgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlNCwgMHg5MH0gfSwKLXsgMHgwOTgwLAkxNiwJezB4N2YsIDB4OTcsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OWQsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDEsIDB4NDAsIDB4MGJ9IH0sCi17IDB4MDk5MCwJMTYsCXsweGU0LCAweDkwLCAweDdmLCAweDk4LCAweGYwLCAweDkwLCAweDdmLCAweDllLCAweDc0LCAweGMwLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweDc0LCAweDEyfSB9LAoteyAweDA5YTAsCTE0LAl7MHhmMCwgMHgxMiwgMHgwOCwgMHgyMCwgMHg3NSwgMHg4MiwgMHhmNCwgMHg3NSwgMHg4MywgMHgwYSwgMHg3NCwgMHhmZiwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwOWFlLAkxNiwJezB4OGUsIDB4NWQsIDB4OGYsIDB4NWUsIDB4ZTUsIDB4NWUsIDB4MTUsIDB4NWUsIDB4YWUsIDB4NWQsIDB4NzAsIDB4MDIsIDB4MTUsIDB4NWQsIDB4NGUsIDB4NjB9IH0sCi17IDB4MDliZSwJNywJezB4MDUsIDB4MTIsIDB4MDksIDB4ZWEsIDB4ODAsIDB4ZWUsIDB4MjJ9IH0sCi17IDB4MDljNSwJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDA3LCAweDA0LCAweGUwLCAweDQ0fSB9LAoteyAweDA5ZDUsCTE2LAl7MHgwMiwgMHhmMCwgMHg3ZiwgMHhkMCwgMHg3ZSwgMHgwNywgMHgxMiwgMHgwOSwgMHhhZSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH0gfSwKLXsgMHgwOWU1LAk1LAl7MHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwOWVhLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4Zjl9IH0sCi17IDB4MDlmYSwJMSwJezB4MjJ9IH0sCi17IDB4MDlmYiwJNSwJezB4MTIsIDB4MDgsIDB4YjgsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MGEwMCwJMTYsCXsweDAyLCAweDBjLCAweDRlLCAweDAwLCAweDAyLCAweDBjLCAweDgxLCAweDAwLCAweDAyLCAweDBjLCAweDY2LCAweDAwLCAweDAyLCAweDBjLCAweGMwLCAweDAwfSB9LAoteyAweDBhMTAsCTE2LAl7MHgwMiwgMHgwYywgMHhhYSwgMHgwMCwgMHgwMiwgMHgwYSwgMHhlZCwgMHgwMCwgMHgwMiwgMHgwYSwgMHhlZSwgMHgwMCwgMHgwMiwgMHgwYSwgMHhlZiwgMHgwMH0gfSwKLXsgMHgwYTIwLAkxNiwJezB4MDIsIDB4MGMsIDB4ZGIsIDB4MDAsIDB4MDIsIDB4MGQsIDB4Y2IsIDB4MDAsIDB4MDIsIDB4MGQsIDB4MTcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4MmIsIDB4MDB9IH0sCi17IDB4MGEzMCwJMTYsCXsweDAyLCAweDBkLCAweDUzLCAweDAwLCAweDAyLCAweDBlLCAweDhiLCAweDAwLCAweDAyLCAweDBkLCAweDhmLCAweDAwLCAweDAyLCAweDBlLCAweGViLCAweDAwfSB9LAoteyAweDBhNDAsCTE2LAl7MHgwMiwgMHgwYSwgMHhmMCwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmMiwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmMSwgMHgwMCwgMHgwMiwgMHgwYSwgMHhmMywgMHgwMH0gfSwKLXsgMHgwYTUwLAk4LAl7MHgwMiwgMHgwZiwgMHg0YiwgMHgwMCwgMHgwMiwgMHgwZiwgMHg2MSwgMHgwMH0gfSwKLXsgMHgwYTU4LAkyLAl7MHg4ZiwgMHg0Zn0gfSwKLXsgMHgwYTVhLAkxNiwJezB4ZTQsIDB4ZjUsIDB4NTAsIDB4NzUsIDB4NTEsIDB4ZmYsIDB4NzUsIDB4NTIsIDB4MTIsIDB4NzUsIDB4NTMsIDB4NmEsIDB4YWIsIDB4NTEsIDB4YWEsIDB4NTJ9IH0sCi17IDB4MGE2YSwJMTYsCXsweGE5LCAweDUzLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweGEyLCAweDU0LCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDUwLCAweDA1LCAweDUwLCAweGVmfSB9LAoteyAweDBhN2EsCTE2LAl7MHhiNSwgMHg0ZiwgMHgwMSwgMHgyMiwgMHgxMiwgMHhhMiwgMHgzYiwgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NX0gfSwKLXsgMHgwYThhLAkxNCwJezB4NTEsIDB4ZmYsIDB4ZjUsIDB4NTIsIDB4ODksIDB4NTMsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MGE5OCwJMSwJezB4MjJ9IH0sCi17IDB4MGE5OSwJMTYsCXsweGU0LCAweGZlLCAweDc1LCAweDUxLCAweGZmLCAweDc1LCAweDUyLCAweDEyLCAweDc1LCAweDUzLCAweDEyLCAweGFiLCAweDUxLCAweGFhLCAweDUyLCAweGE5fSB9LAoteyAweDBhYTksCTE2LAl7MHg1MywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg1NCwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNX0gfSwKLXsgMHgwYWI5LAkxNiwJezB4MDcsIDB4MDEsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4YTIsIDB4YWQsIDB4ODUsIDB4ZjAsIDB4NGYsIDB4ZjUsIDB4NTAsIDB4NjIsIDB4NGZ9IH0sCi17IDB4MGFjOSwJMTYsCXsweGU1LCAweDRmLCAweDYyLCAweDUwLCAweGU1LCAweDUwLCAweDYyLCAweDRmLCAweDI5LCAweGZkLCAweGU1LCAweDRmLCAweDNhLCAweGE5LCAweDA1LCAweDc1fSB9LAoteyAweDBhZDksCTE0LAl7MHg1MSwgMHhmZiwgMHhmNSwgMHg1MiwgMHg4OSwgMHg1MywgMHg4MCwgMHhjMywgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwYWU3LAkxLAl7MHgyMn0gfSwKLXsgMHgwYWU4LAk1LAl7MHgxMiwgMHgwOCwgMHgyMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwYWVkLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWVlLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWVmLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWYwLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWYxLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWYyLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWYzLAkxLAl7MHgzMn0gfSwKLXsgMHgwYWY0LAkzLAl7MHgwMCwgMHgwNCwgMHgwN30gfSwKLXsgMHgwYjAwLAk5LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHg4MCwgMHg3NH0gfSwKLXsgMHgwYjdkLAkxNiwJezB4NDMsIDB4ODcsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MjJ9IH0sCi17IDB4MGI4ZCwJMTYsCXsweDUzLCAweDhlLCAweGY3LCAweGU1LCAweDg5LCAweDU0LCAweGYxLCAweDQ0LCAweDAxLCAweGY1LCAweDg5LCAweDc1LCAweDhjLCAweGIxLCAweGQyLCAweGE5fSB9LAoteyAweDBiOWQsCTE2LAl7MHg3NSwgMHg5OCwgMHg0MCwgMHg3NSwgMHhjYiwgMHhmZiwgMHg3NSwgMHhjYSwgMHhmMywgMHg3NSwgMHhjOCwgMHgzNCwgMHhlNCwgMHhmZiwgMHg3ZiwgMHgwNX0gfSwKLXsgMHgwYmFkLAk3LAl7MHg3OCwgMHgyOCwgMHhlNCwgMHhmNiwgMHgwOCwgMHhkZiwgMHhmY30gfSwKLXsgMHgwYmI0LAkxLAl7MHgyMn0gfSwKLXsgMHgwYmI1LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MDAsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDYsIDB4YzB9IH0sCi17IDB4MGJjNSwJMSwJezB4MDd9IH0sCi17IDB4MGJjNiwJMTYsCXsweDMwLCAweDA0LCAweDE2LCAweDc1LCAweDhjLCAweGY4LCAweDc1LCAweDhhLCAweDMwLCAweDdmLCAweDJmLCAweGFlLCAweDA3LCAweDFmLCAweGVlLCAweDYwfSB9LAoteyAweDBiZDYsCTE2LAl7MHgzYywgMHg5MCwgMHgyMCwgMHgwMCwgMHg3NCwgMHg1NSwgMHhmMCwgMHg4MCwgMHhmMiwgMHg3NSwgMHg4YywgMHhiMSwgMHg3ZiwgMHgyOCwgMHhlZiwgMHhkM30gfSwKLXsgMHgwYmU2LAkxNiwJezB4OTQsIDB4MmMsIDB4NTAsIDB4MDksIDB4YTgsIDB4MDcsIDB4ZTYsIDB4NjAsIDB4MDEsIDB4MTYsIDB4MGYsIDB4ODAsIDB4ZjEsIDB4OTAsIDB4MDMsIDB4MDB9IH0sCi17IDB4MGJmNiwJMTYsCXsweGUwLCAweDYwLCAweDAyLCAweDE0LCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDYwLCAweDBlLCAweDkwfSB9LAoteyAweDBjMDYsCTEzLAl7MHgwMSwgMHhjMSwgMHhlMCwgMHgyNCwgMHhmZiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlMCwgMHgzNCwgMHhmZiwgMHhmMH0gfSwKLXsgMHgwYzEzLAkxNSwJezB4ZDAsIDB4MDcsIDB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDAsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGMyMiwJMTYsCXsweGQyLCAweDAwLCAweDc1LCAweDhlLCAweDEwLCAweDEyLCAweDA5LCAweDMwLCAweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDQwLCAweDA4LCAweDkwfSB9LAoteyAweDBjMzIsCTE2LAl7MHg3ZiwgMHg5MiwgMHg3NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHgwNSwgMHhlNCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhmMCwgMHgxMiwgMHg4MCwgMHgwMCwgMHgxMn0gfSwKLXsgMHgwYzQyLAkxMiwJezB4MGYsIDB4N2QsIDB4MTIsIDB4OTQsIDB4ZjcsIDB4MTIsIDB4MWIsIDB4MGMsIDB4MTIsIDB4MGIsIDB4OGQsIDB4MjJ9IH0sCi17IDB4MGM0ZSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAxLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAxfSB9LAoteyAweDBjNWUsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBjNjYsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwYzc2LAkxMSwJezB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGM4MSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDAyLCAweGYwLCAweDkwfSB9LAoteyAweDBjOTEsCTE2LAl7MHg3ZiwgMHhkOCwgMHhlMCwgMHg3MCwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhkOSwgMHhlMCwgMHg3MCwgMHgwNywgMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHg3NX0gfSwKLXsgMHgwY2ExLAk5LAl7MHgyYywgMHgxNCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwY2FhLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGNiYSwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGNjMCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDMwLCAweDAyLCAweDAyLCAweGQyLCAweDA2LCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBjZDAsCTExLAl7MHhhYiwgMHg3NCwgMHgwOCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwY2RiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGNlYiwJMTYsCXsweGE5LCAweDc0LCAweDAyLCAweGYwLCAweGU1LCAweDM0LCAweDMwLCAweGUwLCAweDEzLCAweGU1LCAweDMyLCAweDMwLCAweGUwLCAweDA3LCAweDkwLCAweDIwfSB9LAoteyAweDBjZmIsCTE2LAl7MHgwNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwMSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwM30gfSwKLXsgMHgwZDBiLAkxMiwJezB4NzUsIDB4MmMsIDB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQxNywJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDEwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBkMjcsCTE2LAl7MHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgzMCwgMHhlMSwgMHgxMywgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMSwgMHgwNywgMHg5MCwgMHgyMH0gfSwKLXsgMHgwZDM3LAkxNiwJezB4MGMsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDksIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4MmMsIDB4NzAsIDB4MDN9IH0sCi17IDB4MGQ0NywJMTIsCXsweDc1LCAweDJjLCAweDE0LCAweGQwLCAweGQwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkNTMsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwZDYzLAkxNiwJezB4YTksIDB4NzQsIDB4MDgsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4MzAsIDB4ZTIsIDB4MTMsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTIsIDB4MDcsIDB4OTAsIDB4MjB9IH0sCi17IDB4MGQ3MywJMTYsCXsweDE0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDIwLCAweDExLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweGU1LCAweDJjLCAweDcwLCAweDAzfSB9LAoteyAweDBkODMsCTEyLAl7MHg3NSwgMHgyYywgMHgxNCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDhmLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ZDAsIDB4NzUsIDB4ZDAsIDB4MTAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MGQ5ZiwJMTYsCXsweGE5LCAweDc0LCAweDEwLCAweGYwLCAweGU1LCAweDM0LCAweDMwLCAweGUzLCAweDEzLCAweGU1LCAweDMyLCAweDMwLCAweGUzLCAweDA3LCAweDkwLCAweDIwfSB9LAoteyAweDBkYWYsCTE2LAl7MHgxYywgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxOSwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwM30gfSwKLXsgMHgwZGJmLAkxMiwJezB4NzUsIDB4MmMsIDB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGRjYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDBkZGIsCTE2LAl7MHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgzNCwgMHgyMH0gfSwKLXsgMHgwZGViLAkxNiwJezB4ZTAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4YzcsIDB4ZjAsIDB4ODAsIDB4MjIsIDB4ZTUsIDB4MzEsIDB4MzAsIDB4ZTAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Yzd9IH0sCi17IDB4MGRmYiwJMTYsCXsweGUwLCAweDkwLCAweDAyLCAweGY4LCAweGYwLCAweDgwLCAweDEzLCAweGU1LCAweDIyLCAweDMwLCAweGUwLCAweDA3LCAweDkwLCAweDIwLCAweDA0LCAweGUwfSB9LAoteyAweDBlMGIsCTE2LAl7MHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwMSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHg3NSwgMHgyY30gfSwKLXsgMHgwZTFiLAkxNiwJezB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGUyYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDBlM2IsCTE2LAl7MHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgwNCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgyMH0gfSwKLXsgMHgwZTRiLAkxNiwJezB4ZTEsIDB4MDYsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZjAsIDB4ODAsIDB4MjIsIDB4ZTUsIDB4MzEsIDB4MzAsIDB4ZTEsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Yzl9IH0sCi17IDB4MGU1YiwJMTYsCXsweGUwLCAweDkwLCAweDAyLCAweGY5LCAweGYwLCAweDgwLCAweDEzLCAweGU1LCAweDIyLCAweDMwLCAweGUxLCAweDA3LCAweDkwLCAweDIwLCAweDBjLCAweGUwfSB9LAoteyAweDBlNmIsCTE2LAl7MHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHg3NSwgMHgyY30gfSwKLXsgMHgwZTdiLAkxNiwJezB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGU4YiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDBlOWIsCTE2LAl7MHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgwOCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgyMH0gfSwKLXsgMHgwZWFiLAkxNiwJezB4ZTIsIDB4MDYsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4ODAsIDB4MjIsIDB4ZTUsIDB4MzEsIDB4MzAsIDB4ZTIsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2J9IH0sCi17IDB4MGViYiwJMTYsCXsweGUwLCAweDkwLCAweDAyLCAweGZhLCAweGYwLCAweDgwLCAweDEzLCAweGU1LCAweDIyLCAweDMwLCAweGUyLCAweDA3LCAweDkwLCAweDIwLCAweDE0LCAweGUwfSB9LAoteyAweDBlY2IsCTE2LAl7MHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxMSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHg3NSwgMHgyY30gfSwKLXsgMHgwZWRiLAkxNiwJezB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGVlYiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDBlZmIsCTE2LAl7MHhkMCwgMHg3NSwgMHhkMCwgMHgxMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHgxMCwgMHhmMCwgMHhlNSwgMHgzNCwgMHgyMH0gfSwKLXsgMHgwZjBiLAkxNiwJezB4ZTMsIDB4MDYsIDB4OTAsIDB4N2YsIDB4Y2QsIDB4ZjAsIDB4ODAsIDB4MjIsIDB4ZTUsIDB4MzEsIDB4MzAsIDB4ZTMsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2R9IH0sCi17IDB4MGYxYiwJMTYsCXsweGUwLCAweDkwLCAweDAyLCAweGZiLCAweGYwLCAweDgwLCAweDEzLCAweGU1LCAweDIyLCAweDMwLCAweGUzLCAweDA3LCAweDkwLCAweDIwLCAweDFjLCAweGUwfSB9LAoteyAweDBmMmIsCTE2LAl7MHg0NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxOSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHhlNSwgMHgyYywgMHg3MCwgMHgwMywgMHg3NSwgMHgyY30gfSwKLXsgMHgwZjNiLAkxNiwJezB4MTQsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDAsIDB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGY0YiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGE5LCAweDc0LCAweDgwLCAweGYwLCAweGQwfSB9LAoteyAweDBmNWIsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBmNjEsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYSwgMHg3NCwgMHg4MCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgwZjcxLAkxMiwJezB4MDEsIDB4YmQsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGY3ZCwJMTYsCXsweDkwLCAweDAxLCAweDIwLCAweDEyLCAweGEzLCAweGZhLCAweDAwLCAweDAwLCAweDI1LCAweDgwLCAweDkwLCAweDAxLCAweDI0LCAweDc0LCAweDA4LCAweGYwfSB9LAoteyAweDBmOGQsCTE2LAl7MHhhMywgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHg3NCwgMHg2ZSwgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMywgMHhmMCwgMHhhMywgMHg3NH0gfSwKLXsgMHgwZjlkLAkxNiwJezB4MTEsIDB4ZjAsIDB4ZTQsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MGZhZCwJMTYsCXsweDA0LCAweGEzLCAweGYwLCAweGVmLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAxLCAweGY5LCAweDc0LCAweDAzLCAweDM1LCAweGYwLCAweGE4fSB9LAoteyAweDBmYmQsCTE2LAl7MHgwMSwgMHhmYywgMHg3ZCwgMHgwMSwgMHg3YiwgMHgwMSwgMHg3YSwgMHgwMSwgMHg3OSwgMHgxZiwgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwZCwgMHgxMiwgMHhhMn0gfSwKLXsgMHgwZmNkLAkxNiwJezB4MTIsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MWYsIDB4MTIsIDB4ODcsIDB4YTYsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ZTAsIDB4YzN9IH0sCi17IDB4MGZkZCwJMTYsCXsweDk0LCAweDA0LCAweDQwLCAweGM3LCAweGU0LCAweGY1LCAweDI3LCAweDkwLCAweDAxLCAweDFlLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZmfSB9LAoteyAweDBmZWQsCTE2LAl7MHhjMywgMHg5NCwgMHgwNCwgMHg1MCwgMHgxYSwgMHg3NCwgMHhmOCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlNH0gfSwKLXsgMHgwZmZkLAkxNiwJezB4ZjAsIDB4NzQsIDB4MjMsIDB4MmYsIDB4ZjgsIDB4ZTQsIDB4ZjYsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ODAsIDB4ZGMsIDB4ZTR9IH0sCi17IDB4MTAwZCwJMTYsCXsweGY1LCAweDM0LCAweGU1LCAweGMwLCAweDYwLCAweDJmLCAweDkwLCAweDAxLCAweDFlLCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwfSB9LAoteyAweDEwMWQsCTE2LAl7MHhmZiwgMHhkMywgMHg5NCwgMHgwNCwgMHg1MCwgMHgxZiwgMHhlZiwgMHgxNCwgMHhmZiwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMn0gfSwKLXsgMHgxMDJkLAkxNiwJezB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4MzQsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MWUsIDB4MTIsIDB4ODQsIDB4NDEsIDB4OTAsIDB4MDEsIDB4MWV9IH0sCi17IDB4MTAzZCwJMTYsCXsweGUwLCAweDA0LCAweGYwLCAweDgwLCAweGQ3LCAweGU0LCAweGY1LCAweDNlLCAweGY1LCAweDIyLCAweGY1LCAweDMxLCAweGY1LCAweDMyLCAweDkwLCAweDAxfSB9LAoteyAweDEwNGQsCTE2LAl7MHgxZSwgMHhmMCwgMHg5MCwgMHgwMSwgMHgxZSwgMHhlMCwgMHhmZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHgxMDVkLAkxNiwJezB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZjAsIDB4ZmUsIDB4NzQsIDB4YzUsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDF9IH0sCi17IDB4MTA2ZCwJMTYsCXsweGY1LCAweDgzLCAweGVlLCAweGYwLCAweDc0LCAweDNhLCAweDJmLCAweGY4LCAweGE2LCAweDA2LCAweDc0LCAweDM2LCAweDJmLCAweGY4LCAweGU0LCAweGY2fSB9LAoteyAweDEwN2QsCTE2LAl7MHg3NCwgMHgyZCwgMHgyZiwgMHhmOCwgMHhlNCwgMHhmNiwgMHg3NCwgMHhmYywgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4M30gfSwKLXsgMHgxMDhkLAkxNiwJezB4ZTQsIDB4ZjAsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4MDQsIDB4ZjAsIDB4ZTAsIDB4YjQsIDB4MDQsIDB4YjYsIDB4OTAsIDB4MjAsIDB4NjAsIDB4ZTB9IH0sCi17IDB4MTA5ZCwJNCwJezB4NTQsIDB4MGYsIDB4ZjUsIDB4NGV9IH0sCi17IDB4MTBhMSwJMTYsCXsweDcwLCAweDAzLCAweDAyLCAweDExLCAweDI2LCAweGU0LCAweDkwLCAweDAxLCAweDFlLCAweGYwLCAweDkwLCAweDAxLCAweDFlLCAweGUwLCAweGZmLCAweGMzfSB9LAoteyAweDEwYjEsCTE2LAl7MHg5NCwgMHgwNCwgMHg1MCwgMHhlNCwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg1NX0gfSwKLXsgMHgxMGMxLAkxNiwJezB4NGUsIDB4NjAsIDB4NWEsIDB4OTAsIDB4MDEsIDB4MWUsIDB4ZTAsIDB4ZmUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MTBkMSwJMTYsCXsweGU0LCAweDM0LCAweDIwLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGVlLCAweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDA1LCAweGY1LCAweDgyfSB9LAoteyAweDEwZTEsCTE2LAl7MHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHhlZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHgxMGYxLAkxNiwJezB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4YWYsIDB4MDYsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjV9IH0sCi17IDB4MTEwMSwJMTYsCXsweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwfSB9LAoteyAweDExMTEsCTE2LAl7MHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2MywgMHg3ZCwgMHgwNiwgMHgxMiwgMHg4MywgMHhkZiwgMHg5MCwgMHgwMSwgMHgxZX0gfSwKLXsgMHgxMTIxLAk2LAl7MHhlMCwgMHgwNCwgMHhmMCwgMHg4MCwgMHg4NSwgMHgyMn0gfSwKLXsgMHgxMTI3LAkyLAl7MHhhYywgMHgwN30gfSwKLXsgMHgxMTI5LAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4ODAsIDB4ZjAsIDB4ZWMsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4NDEsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjB9IH0sCi17IDB4MTEzOSwJMTYsCXsweDdiLCAweDNjLCAweGFmLCAweDAzLCAweDFiLCAweGVmLCAweDcwLCAweDE2LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwfSB9LAoteyAweDExNDksCTE2LAl7MHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHg3ZCwgMHgzMiwgMHhhZiwgMHgwNSwgMHgxZCwgMHhlZiwgMHg2MCwgMHhkNCwgMHg4MCwgMHhmOCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgxMTU5LAkxNiwJezB4YTUsIDB4ZTAsIDB4ZmQsIDB4MzAsIDB4ZTAsIDB4ZGMsIDB4MjAsIDB4ZTEsIDB4MDksIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2UsIDB4ZmYsIDB4N2Z9IH0sCi17IDB4MTE2OSwJMTYsCXsweGY5LCAweDIyLCAweGVkLCAweDMwLCAweGUyLCAweDBjLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdlLCAweGZmLCAweDdmfSB9LAoteyAweDExNzksCTE2LAl7MHhmYSwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZCwgMHg3YiwgMHgxZX0gfSwKLXsgMHgxMTg5LAkxNiwJezB4YWYsIDB4MDMsIDB4MWIsIDB4ZWYsIDB4NzAsIDB4MTYsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTZ9IH0sCi17IDB4MTE5OSwJMTYsCXsweGUwLCAweGZkLCAweDdkLCAweDMyLCAweGFmLCAweDA1LCAweDFkLCAweGVmLCAweDYwLCAweDg2LCAweDgwLCAweGY4LCAweDkwLCAweDdmLCAweGE1LCAweGUwfSB9LAoteyAweDExYTksCTE2LAl7MHhmZCwgMHgyMCwgMHhlMCwgMHhkYywgMHg3YiwgMHgzYywgMHhhZiwgMHgwMywgMHgxYiwgMHhlZiwgMHg3MCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMH0gfSwKLXsgMHgxMWI5LAkxNiwJezB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmQsIDB4N2QsIDB4MzIsIDB4YWYsIDB4MDUsIDB4MWQsIDB4ZWYsIDB4NzAsIDB4MDN9IH0sCi17IDB4MTFjOSwJMTYsCXsweDAyLCAweDExLCAweDI5LCAweDgwLCAweGY1LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweGZkLCAweDMwLCAweGUwLCAweGQ5LCAweDMwLCAweGUyLCAweDA5fSB9LAoteyAweDExZDksCTE2LAl7MHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZSwgMHhmZiwgMHg3ZiwgMHhmYSwgMHgyMiwgMHhjMiwgMHhhZiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKLXsgMHgxMWU5LAkxMiwJezB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZmQsIDB4ZDIsIDB4YWYsIDB4ZmYsIDB4N2UsIDB4MDB9IH0sCi17IDB4MTFmNSwJMSwJezB4MjJ9IH0sCi17IDB4MTIwMCwJMTYsCXsweDEyLCAweDAxLCAweDAwLCAweDAxLCAweGZmLCAweGZmLCAweGZmLCAweDQwLCAweDEwLCAweDA3LCAweDAxLCAweDgwLCAweDQyLCAweDAwLCAweDAxLCAweDAyfSB9LAoteyAweDEyMTAsCTE2LAl7MHgwMywgMHgwMSwgMHgwOSwgMHgwMiwgMHg1OCwgMHgwMCwgMHgwMSwgMHgwMSwgMHgwNCwgMHg4MCwgMHgzYywgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwYX0gfSwKLXsgMHgxMjIwLAkxNiwJezB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDUsIDB4MDcsIDB4MDUsIDB4ODEsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDEsIDB4MDIsIDB4NDB9IH0sCi17IDB4MTIzMCwJMTYsCXsweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDgyLCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDAyLCAweDAyLCAweDQwLCAweDAwLCAweDAwfSB9LAoteyAweDEyNDAsCTE2LAl7MHgwNywgMHgwNSwgMHg4MywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNX0gfSwKLXsgMHgxMjUwLAkxNiwJezB4ODQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4MDQsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDcsIDB4MDUsIDB4ODcsIDB4MDJ9IH0sCi17IDB4MTI2MCwJMTYsCXsweDQwLCAweDAwLCAweDAwLCAweDA3LCAweDA1LCAweDA3LCAweDAyLCAweDQwLCAweDAwLCAweDAwLCAweDA0LCAweDAzLCAweDA5LCAweDA0LCAweDI0LCAweDAzfSB9LAoteyAweDEyNzAsCTE2LAl7MHg0MywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NSwgMHgwMCwgMHg2MywgMHgwMCwgMHg3NCwgMHgwMCwgMHgyMCwgMHgwMH0gfSwKLXsgMHgxMjgwLAkxNiwJezB4NTQsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4NjgsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NDksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDB9IH0sCi17IDB4MTI5MCwJMTYsCXsweDJlLCAweDAwLCAweDE4LCAweDAzLCAweDU3LCAweDAwLCAweDY4LCAweDAwLCAweDY5LCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDQ4LCAweDAwfSB9LAoteyAweDEyYTAsCTE2LAl7MHg0NSwgMHgwMCwgMHg0MSwgMHgwMCwgMHg1NCwgMHgwMCwgMHgyZCwgMHgwMCwgMHgzNCwgMHgwMCwgMHgxYSwgMHgwMywgMHg1OCwgMHgwMCwgMHg1OCwgMHgwMH0gfSwKLXsgMHgxMmIwLAkxNiwJezB4MmQsIDB4MDAsIDB4NTgsIDB4MDAsIDB4NTgsIDB4MDAsIDB4MmQsIDB4MDAsIDB4NTgsIDB4MDAsIDB4NTgsIDB4MDAsIDB4NTgsIDB4MDAsIDB4NTgsIDB4MDB9IH0sCi17IDB4MTJjMCwJMTYsCXsweDU4LCAweDAwLCAweDU4LCAweDAwLCAweDJhLCAweDAzLCAweDQzLCAweDAwLCAweDZmLCAweDAwLCAweDZlLCAweDAwLCAweDY2LCAweDAwLCAweDY5LCAweDAwfSB9LAoteyAweDEyZDAsCTE2LAl7MHg2NywgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMH0gfSwKLXsgMHgxMmUwLAkxNiwJezB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDAsIDB4MjIsIDB4MDN9IH0sCi17IDB4MTJmMCwJMTYsCXsweDQ5LCAweDAwLCAweDZlLCAweDAwLCAweDc0LCAweDAwLCAweDY1LCAweDAwLCAweDcyLCAweDAwLCAweDY2LCAweDAwLCAweDYxLCAweDAwLCAweDYzLCAweDAwfSB9LAoteyAweDEzMDAsCTE2LAl7MHg2NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg1MywgMHgwMCwgMHg3NCwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NywgMHgwMH0gfSwKLXsgMHgxMzEwLAkyLAl7MHgwMCwgMHgwMH0gfSwKLXsgMHgxMzEyLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ZjAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ODQsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ZDB9IH0sCi17IDB4MTMyMiwJMTYsCXsweDc1LCAweDg2LCAweDAwLCAweDc1LCAweGQwLCAweDE4LCAweDkwLCAweDIwLCAweDYwLCAweGUwLCAweDU0LCAweDBmLCAweGY1LCAweGYwLCAweDcwLCAweDExfSB9LAoteyAweDEzMzIsCTE2LAl7MHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhmMCwgMHhkMCwgMHhlMH0gfSwKLXsgMHgxMzQyLAkxNiwJezB4MzIsIDB4NzUsIDB4ODYsIDB4MDAsIDB4MTAsIDB4ZjAsIDB4MGIsIDB4MTAsIDB4ZjEsIDB4MTIsIDB4MTAsIDB4ZjIsIDB4MTksIDB4MTAsIDB4ZjMsIDB4MjB9IH0sCi17IDB4MTM1MiwJMTYsCXsweDgwLCAweGQ0LCAweGU1LCAweDI4LCAweDcwLCAweDAzLCAweDc1LCAweDI4LCAweDE0LCAweDAyLCAweDEzLCAweDdjLCAweGU1LCAweDI5LCAweDcwLCAweDAzfSB9LAoteyAweDEzNjIsCTE2LAl7MHg3NSwgMHgyOSwgMHgxNCwgMHgwMiwgMHgxNSwgMHgwZCwgMHhlNSwgMHgyYSwgMHg3MCwgMHgwMywgMHg3NSwgMHgyYSwgMHgxNCwgMHgwMiwgMHgxNiwgMHg5ZX0gfSwKLXsgMHgxMzcyLAkxNiwJezB4ZTUsIDB4MmIsIDB4NzAsIDB4MDMsIDB4NzUsIDB4MmIsIDB4MTQsIDB4MDIsIDB4MTgsIDB4MmYsIDB4OTAsIDB4MjAsIDB4MDIsIDB4ZTAsIDB4NTQsIDB4M2Z9IH0sCi17IDB4MTM4MiwJMTYsCXsweDIwLCAweGUyLCAweDNhLCAweDIwLCAweGUxLCAweDBiLCAweDIwLCAweGU0LCAweDBiLCAweDIwLCAweGU1LCAweDE0LCAweDYwLCAweDA5LCAweDAyLCAweDEzfSB9LAoteyAweDEzOTIsCTE2LAl7MHg0MywgMHgwMiwgMHgxNCwgMHg2NSwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHhmNSwgMHgzYSwgMHgwMiwgMHgxMywgMHg0M30gfSwKLXsgMHgxM2EyLAkxNiwJezB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NDMsIDB4MmQsIDB4MDEsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4ODIsIDB4ZjgsIDB4NDMsIDB4ODIsIDB4MDV9IH0sCi17IDB4MTNiMiwJMTYsCXsweGUwLCAweDQyLCAweDM2LCAweDUzLCAweDgyLCAweGZiLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDMwLCAweGUxLCAweDAyfSB9LAoteyAweDEzYzIsCTE2LAl7MHg4MCwgMHhlOCwgMHhmNSwgMHg4NSwgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMCwgMHgwYSwgMHg1MywgMHg4MiwgMHhmOCwgMHg0MywgMHg4MiwgMHgwNCwgMHhlMH0gfSwKLXsgMHgxM2QyLAkxNiwJezB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTUsIDB4ODUsIDB4MjAsIDB4ZTMsIDB4NTYsIDB4OTAsIDB4MjAsIDB4NTAsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4MjB9IH0sCi17IDB4MTNlMiwJMTYsCXsweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2fSB9LAoteyAweDEzZjIsCTE2LAl7MHg5MCwgMHg3ZSwgMHg4MCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NCwgMHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgxNDAyLAkxNiwJezB4ZTUsIDB4ZTUsIDB4M2YsIDB4ZmQsIDB4MDMsIDB4MDMsIDB4MDMsIDB4ZmUsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjB9IH0sCi17IDB4MTQxMiwJMTYsCXsweGRlLCAweGY2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDkwfSB9LAoteyAweDE0MjIsCTE2LAl7MHg3ZiwgMHhiNywgMHhlZCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgwMSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg3ZiwgMHg0MH0gfSwKLXsgMHgxNDMyLAkxNiwJezB4OTAsIDB4N2UsIDB4ODAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MjAsIDB4MDAsIDB4ZTUsIDB4ODQsIDB4ZmUsIDB4MjQsIDB4MDUsIDB4ZmQsIDB4OGQsIDB4ODR9IH0sCi17IDB4MTQ0MiwJMTYsCXsweGUwLCAweDhlLCAweDg0LCAweDMwLCAweGUwLCAweDA5LCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGRmLCAweGVmLCAweDA1fSB9LAoteyAweDE0NTIsCTE2LAl7MHg4NiwgMHhjMywgMHg3NCwgMHg0MCwgMHg5ZiwgMHg5MCwgMHg3ZiwgMHhiNywgMHhmMCwgMHgwNSwgMHg4NiwgMHhhMywgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMH0gfSwKLXsgMHgxNDYyLAkxNiwJezB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4MmQsIDB4ZmEsIDB4ZTUsIDB4MjMsIDB4NjAsIDB4MDgsIDB4NzUsIDB4MjMsIDB4MDAsIDB4ZDIsIDB4ZTcsIDB4ZmV9IH0sCi17IDB4MTQ3MiwJMTYsCXsweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGM3LCAweGUwLCAweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDE0LCAweGZmLCAweDkwLCAweDIwLCAweDUwLCAweDc0fSB9LAoteyAweDE0ODIsCTE2LAl7MHgwMCwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MH0gfSwKLXsgMHgxNDkyLAkxNiwJezB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4NDAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjB9IH0sCi17IDB4MTRhMiwJMTYsCXsweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGVlLCAweDMwLCAweGU3LCAweDA4LCAweDA1LCAweDg2LCAweGUwLCAweDI0LCAweDM4LCAweGYwLCAweDA1fSB9LAoteyAweDE0YjIsCTE2LAl7MHg4NiwgMHhlZSwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg1NCwgMHgwNywgMHhmYiwgMHhlZSwgMHg1NCwgMHg3OCwgMHg2MCwgMHgzMCwgMHgwMywgMHgwMywgMHgwM30gfSwKLXsgMHgxNGMyLAkxNiwJezB4MzAsIDB4ZTMsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2IsIDB4MDgsIDB4ZmQsIDB4ZmMsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTB9IH0sCi17IDB4MTRkMiwJMTYsCXsweGUwLCAweGRkLCAweGY2LCAweGViLCAweGZlLCAweDYwLCAweDE5LCAweGVjLCAweDY0LCAweDA3LCAweDcwLCAweDExLCAweDhiLCAweDIzLCAweDkwLCAweDdmfSB9LAoteyAweDE0ZTIsCTE2LAl7MHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg4MCwgMHgxYiwgMHhlMCwgMHhkZSwgMHhmZH0gfSwKLXsgMHgxNGYyLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDF9IH0sCi17IDB4MTUwMiwJMTYsCXsweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGM3LCAweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDkwLCAweDIwLCAweDBhLCAweGUwLCAweDU0fSB9LAoteyAweDE1MTIsCTE2LAl7MHgzZiwgMHgyMCwgMHhlMiwgMHgzYSwgMHgyMCwgMHhlMSwgMHgwYiwgMHgyMCwgMHhlNCwgMHgwYiwgMHgyMCwgMHhlNSwgMHgxNCwgMHg2MCwgMHgwOSwgMHgwMn0gfSwKLXsgMHgxNTIyLAkxNiwJezB4MTMsIDB4NDMsIDB4MDIsIDB4MTUsIDB4ZjYsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4ZjUsIDB4M2IsIDB4MDIsIDB4MTN9IH0sCi17IDB4MTUzMiwJMTYsCXsweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweDQzLCAweDJlLCAweDAxLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDgyLCAweGY4LCAweDQzLCAweDgyfSB9LAoteyAweDE1NDIsCTE2LAl7MHgwNSwgMHhlMCwgMHg0MiwgMHgzNywgMHg1MywgMHg4MiwgMHhmYiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHgzMCwgMHhlMX0gfSwKLXsgMHgxNTUyLAkxNiwJezB4MDIsIDB4ODAsIDB4ZTgsIDB4ZjUsIDB4ODUsIDB4ZTUsIDB4MzIsIDB4MzAsIDB4ZTEsIDB4MGEsIDB4NTMsIDB4ODIsIDB4ZjgsIDB4NDMsIDB4ODIsIDB4MDR9IH0sCi17IDB4MTU2MiwJMTYsCXsweGUwLCAweDU0LCAweGZlLCAweGYwLCAweGU1LCAweDg1LCAweDIwLCAweGUzLCAweDU2LCAweDkwLCAweDIwLCAweDUwLCAweDc0LCAweDAxLCAweGYwLCAweDkwfSB9LAoteyAweDE1NzIsCTE2LAl7MHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMywgMHgwNX0gfSwKLXsgMHgxNTgyLAkxNiwJezB4ODYsIDB4OTAsIDB4N2UsIDB4MDAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODUsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4OTB9IH0sCi17IDB4MTU5MiwJMTYsCXsweDdmLCAweGU1LCAweGU1LCAweDQwLCAweGZkLCAweDAzLCAweDAzLCAweDAzLCAweGZlLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwfSB9LAoteyAweDE1YTIsCTE2LAl7MHhmMCwgMHhkZSwgMHhmNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMH0gfSwKLXsgMHgxNWIyLAkxNiwJezB4OTAsIDB4N2YsIDB4YjksIDB4ZWQsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4MDksIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4N2Z9IH0sCi17IDB4MTVjMiwJMTYsCXsweDQwLCAweDkwLCAweDdlLCAweDAwLCAweDA1LCAweDg2LCAweDkwLCAweDIwLCAweDA4LCAweGU1LCAweDg0LCAweGZlLCAweDI0LCAweDA1LCAweGZkLCAweDhkfSB9LAoteyAweDE1ZDIsCTE2LAl7MHg4NCwgMHhlMCwgMHg4ZSwgMHg4NCwgMHgzMCwgMHhlMCwgMHgwOSwgMHhlMCwgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhkZiwgMHhlZn0gfSwKLXsgMHgxNWUyLAkxNiwJezB4MDUsIDB4ODYsIDB4YzMsIDB4NzQsIDB4NDAsIDB4OWYsIDB4OTAsIDB4N2YsIDB4YjksIDB4ZjAsIDB4MDUsIDB4ODYsIDB4YTMsIDB4ZTAsIDB4NTQsIDB4ZmV9IH0sCi17IDB4MTVmMiwJMTYsCXsweGYwLCAweDAyLCAweDEzLCAweDQzLCAweDUzLCAweDJlLCAweGZhLCAweGU1LCAweDI0LCAweDYwLCAweDA4LCAweDc1LCAweDI0LCAweDAwLCAweGQyLCAweGU3fSB9LAoteyAweDE2MDIsCTE2LAl7MHhmZSwgMHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhlMCwgMHhmZSwgMHg3MCwgMHgwMywgMHgwMiwgMHgxNiwgMHg5MCwgMHg5MCwgMHgyMCwgMHg1MH0gfSwKLXsgMHgxNjEyLAkxNiwJezB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjB9IH0sCi17IDB4MTYyMiwJMTYsCXsweDkwLCAweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweGMwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0fSB9LAoteyAweDE2MzIsCTE2LAl7MHhmMCwgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlZSwgMHgzMCwgMHhlNywgMHgwOCwgMHgwNSwgMHg4NiwgMHhlMCwgMHgyNCwgMHgzOCwgMHhmMH0gfSwKLXsgMHgxNjQyLAkxNiwJezB4MDUsIDB4ODYsIDB4ZWUsIDB4NTQsIDB4N2YsIDB4ZmUsIDB4NTQsIDB4MDcsIDB4ZmIsIDB4ZWUsIDB4NTQsIDB4NzgsIDB4NjAsIDB4MzAsIDB4MDMsIDB4MDN9IH0sCi17IDB4MTY1MiwJMTYsCXsweDAzLCAweDMwLCAweGUzLCAweDA0LCAweDc0LCAweDA3LCAweDdiLCAweDA4LCAweGZkLCAweGZjLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwfSB9LAoteyAweDE2NjIsCTE2LAl7MHhlMCwgMHhlMCwgMHhkZCwgMHhmNiwgMHhlYiwgMHhmZSwgMHg2MCwgMHgxOSwgMHhlYywgMHg2NCwgMHgwNywgMHg3MCwgMHgxMSwgMHg4YiwgMHgyNCwgMHg5MH0gfSwKLXsgMHgxNjcyLAkxNiwJezB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDAsIDB4ZjAsIDB4ODAsIDB4MWIsIDB4ZTAsIDB4ZGV9IH0sCi17IDB4MTY4MiwJMTQsCXsweGZkLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwfSB9LAoteyAweDE2OTAsCTE2LAl7MHg5MCwgMHgyMCwgMHgwOSwgMHhlMCwgMHg1NCwgMHhmZCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhjOSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg5MCwgMHgyMH0gfSwKLXsgMHgxNmEwLAkxNiwJezB4MTIsIDB4ZTAsIDB4NTQsIDB4M2YsIDB4MjAsIDB4ZTIsIDB4M2EsIDB4MjAsIDB4ZTEsIDB4MGIsIDB4MjAsIDB4ZTQsIDB4MGIsIDB4MjAsIDB4ZTUsIDB4MTR9IH0sCi17IDB4MTZiMCwJMTYsCXsweDYwLCAweDA5LCAweDAyLCAweDEzLCAweDQzLCAweDAyLCAweDE3LCAweDg3LCAweDAyLCAweDEzLCAweDQzLCAweDQzLCAweDgyLCAweDA0LCAweGUwLCAweGY1fSB9LAoteyAweDE2YzAsCTE2LAl7MHgzYywgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg0MywgMHgyZiwgMHgwMSwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHg4Mn0gfSwKLXsgMHgxNmQwLAkxNiwJezB4ZjgsIDB4NDMsIDB4ODIsIDB4MDUsIDB4ZTAsIDB4NDIsIDB4MzgsIDB4NTMsIDB4ODIsIDB4ZmIsIDB4ZTAsIDB4NTQsIDB4ZmIsIDB4ZjAsIDB4MDIsIDB4MTN9IH0sCi17IDB4MTZlMCwJMTYsCXsweDQzLCAweDMwLCAweGUxLCAweDAyLCAweDgwLCAweGU4LCAweGY1LCAweDg1LCAweGU1LCAweDMyLCAweDMwLCAweGUyLCAweDBhLCAweDUzLCAweDgyLCAweGY4fSB9LAoteyAweDE2ZjAsCTE2LAl7MHg0MywgMHg4MiwgMHgwNCwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHhlNSwgMHg4NSwgMHgyMCwgMHhlMywgMHg1NiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NH0gfSwKLXsgMHgxNzAwLAkxNiwJezB4MDIsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTB9IH0sCi17IDB4MTcxMCwJMTYsCXsweDdmLCAweGUzLCAweDA1LCAweDg2LCAweDkwLCAweDdkLCAweDgwLCAweDA1LCAweDg2LCAweGU1LCAweDg1LCAweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwfSB9LAoteyAweDE3MjAsCTE2LAl7MHgwNSwgMHg4NiwgMHg5MCwgMHg3ZiwgMHhlNSwgMHhlNSwgMHg0MSwgMHhmZCwgMHgwMywgMHgwMywgMHgwMywgMHhmZSwgMHhmMCwgMHhmMCwgMHhmMCwgMHhmMH0gfSwKLXsgMHgxNzMwLAkxNiwJezB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZjAsIDB4ZGUsIDB4ZjYsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTh9IH0sCi17IDB4MTc0MCwJMTYsCXsweDc0LCAweDAwLCAweGYwLCAweDkwLCAweDdmLCAweGJiLCAweGVkLCAweGYwLCAweDkwLCAweDIwLCAweDExLCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDAyfSB9LAoteyAweDE3NTAsCTE2LAl7MHgxMywgMHg0MywgMHg3ZiwgMHg0MCwgMHg5MCwgMHg3ZCwgMHg4MCwgMHgwNSwgMHg4NiwgMHg5MCwgMHgyMCwgMHgxMCwgMHhlNSwgMHg4NCwgMHhmZSwgMHgyNH0gfSwKLXsgMHgxNzYwLAkxNiwJezB4MDUsIDB4ZmQsIDB4OGQsIDB4ODQsIDB4ZTAsIDB4OGUsIDB4ODQsIDB4MzAsIDB4ZTAsIDB4MDksIDB4ZTAsIDB4MDUsIDB4ODYsIDB4ZjAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MTc3MCwJMTYsCXsweDg2LCAweGRmLCAweGVmLCAweDA1LCAweDg2LCAweGMzLCAweDc0LCAweDQwLCAweDlmLCAweDkwLCAweDdmLCAweGJiLCAweGYwLCAweDA1LCAweDg2LCAweGEzfSB9LAoteyAweDE3ODAsCTE2LAl7MHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgwMiwgMHgxMywgMHg0MywgMHg1MywgMHgyZiwgMHhmYSwgMHhlNSwgMHgyNSwgMHg2MCwgMHgwOCwgMHg3NSwgMHgyNX0gfSwKLXsgMHgxNzkwLAkxNiwJezB4MDAsIDB4ZDIsIDB4ZTcsIDB4ZmUsIDB4ODAsIDB4MGEsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZTAsIDB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MTgsIDB4MjF9IH0sCi17IDB4MTdhMCwJMTYsCXsweDkwLCAweDIwLCAweDUwLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwfSB9LAoteyAweDE3YjAsCTE2LAl7MHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHg0MCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMH0gfSwKLXsgMHgxN2MwLAkxNiwJezB4YTMsIDB4ZTUsIDB4ODQsIDB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZWUsIDB4MzAsIDB4ZTcsIDB4MDgsIDB4MDUsIDB4ODYsIDB4ZTB9IH0sCi17IDB4MTdkMCwJMTYsCXsweDI0LCAweDM4LCAweGYwLCAweDA1LCAweDg2LCAweGVlLCAweDU0LCAweDdmLCAweGZlLCAweDU0LCAweDA3LCAweGZiLCAweGVlLCAweDU0LCAweDc4LCAweDYwfSB9LAoteyAweDE3ZTAsCTE2LAl7MHgzMCwgMHgwMywgMHgwMywgMHgwMywgMHgzMCwgMHhlMywgMHgwNCwgMHg3NCwgMHgwNywgMHg3YiwgMHgwOCwgMHhmZCwgMHhmYywgMHhlMCwgMHhlMCwgMHhlMH0gfSwKLXsgMHgxN2YwLAkxNiwJezB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZTAsIDB4ZGQsIDB4ZjYsIDB4ZWIsIDB4ZmUsIDB4NjAsIDB4MTksIDB4ZWMsIDB4NjQsIDB4MDcsIDB4NzAsIDB4MTF9IH0sCi17IDB4MTgwMCwJMTYsCXsweDhiLCAweDI1LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAwLCAweGYwLCAweDgwfSB9LAoteyAweDE4MTAsCTE2LAl7MHgxYiwgMHhlMCwgMHhkZSwgMHhmZCwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMH0gfSwKLXsgMHgxODIwLAkxNiwJezB4ZjAsIDB4OTAsIDB4MjAsIDB4MTEsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4Y2IsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4OTB9IH0sCi17IDB4MTgzMCwJMTYsCXsweDIwLCAweDFhLCAweGUwLCAweDU0LCAweDNmLCAweDIwLCAweGUyLCAweDNhLCAweDIwLCAweGUxLCAweDBiLCAweDIwLCAweGU0LCAweDBiLCAweDIwLCAweGU1fSB9LAoteyAweDE4NDAsCTE2LAl7MHgxNCwgMHg2MCwgMHgwOSwgMHgwMiwgMHgxMywgMHg0MywgMHgwMiwgMHgxOSwgMHgxOCwgMHgwMiwgMHgxMywgMHg0MywgMHg0MywgMHg4MiwgMHgwNCwgMHhlMH0gfSwKLXsgMHgxODUwLAkxNiwJezB4ZjUsIDB4M2QsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NDMsIDB4MzAsIDB4MDEsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTN9IH0sCi17IDB4MTg2MCwJMTYsCXsweDgyLCAweGY4LCAweDQzLCAweDgyLCAweDA1LCAweGUwLCAweDQyLCAweDM5LCAweDUzLCAweDgyLCAweGZiLCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweDAyfSB9LAoteyAweDE4NzAsCTE2LAl7MHgxMywgMHg0MywgMHgzMCwgMHhlMSwgMHgwMiwgMHg4MCwgMHhlOCwgMHhmNSwgMHg4NSwgMHhlNSwgMHgzMiwgMHgzMCwgMHhlMywgMHgwYSwgMHg1MywgMHg4Mn0gfSwKLXsgMHgxODgwLAkxNiwJezB4ZjgsIDB4NDMsIDB4ODIsIDB4MDQsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4ZTUsIDB4ODUsIDB4MjAsIDB4ZTMsIDB4NTYsIDB4OTAsIDB4MjAsIDB4NTB9IH0sCi17IDB4MTg5MCwJMTYsCXsweDc0LCAweDAzLCAweGYwLCAweDkwLCAweDIwLCAweDU4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDQ0LCAweDQwLCAweGYwfSB9LAoteyAweDE4YTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlMywgMHgwNSwgMHg4NiwgMHg5MCwgMHg3ZCwgMHgwMCwgMHgwNSwgMHg4NiwgMHhlNSwgMHg4NSwgMHhmMCwgMHhhMywgMHhlNSwgMHg4NH0gfSwKLXsgMHgxOGIwLAkxNiwJezB4ZjAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4ZTUsIDB4ZTUsIDB4NDIsIDB4ZmQsIDB4MDMsIDB4MDMsIDB4MDMsIDB4ZmUsIDB4ZjAsIDB4ZjAsIDB4ZjB9IH0sCi17IDB4MThjMCwJMTYsCXsweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGYwLCAweGRlLCAweGY2LCAweDkwLCAweDdmLCAweGUyLCAweGUwLCAweDU0LCAweGJmLCAweGYwLCAweDkwLCAweDIwfSB9LAoteyAweDE4ZDAsCTE2LAl7MHg1OCwgMHg3NCwgMHgwMCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhlZCwgMHhmMCwgMHg5MCwgMHgyMCwgMHgxOSwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMH0gfSwKLXsgMHgxOGUwLAkxNiwJezB4MDIsIDB4MTMsIDB4NDMsIDB4N2YsIDB4NDAsIDB4OTAsIDB4N2QsIDB4MDAsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MjAsIDB4MTgsIDB4ZTUsIDB4ODQsIDB4ZmV9IH0sCi17IDB4MThmMCwJMTYsCXsweDI0LCAweDA1LCAweGZkLCAweDhkLCAweDg0LCAweGUwLCAweDhlLCAweDg0LCAweDMwLCAweGUwLCAweDA5LCAweGUwLCAweDA1LCAweDg2LCAweGYwLCAweGEzfSB9LAoteyAweDE5MDAsCTE2LAl7MHgwNSwgMHg4NiwgMHhkZiwgMHhlZiwgMHgwNSwgMHg4NiwgMHhjMywgMHg3NCwgMHg0MCwgMHg5ZiwgMHg5MCwgMHg3ZiwgMHhiZCwgMHhmMCwgMHgwNSwgMHg4Nn0gfSwKLXsgMHgxOTEwLAkxNiwJezB4YTMsIDB4ZTAsIDB4NTQsIDB4ZmUsIDB4ZjAsIDB4MDIsIDB4MTMsIDB4NDMsIDB4NTMsIDB4MzAsIDB4ZmEsIDB4ZTUsIDB4MjYsIDB4NjAsIDB4MDgsIDB4NzV9IH0sCi17IDB4MTkyMCwJMTYsCXsweDI2LCAweDAwLCAweGQyLCAweGU3LCAweGZlLCAweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGNkLCAweGUwLCAweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDE5fSB9LAoteyAweDE5MzAsCTE2LAl7MHhiMiwgMHg5MCwgMHgyMCwgMHg1MCwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMn0gfSwKLXsgMHgxOTQwLAkxNiwJezB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2MsIDB4YzAsIDB4MDUsIDB4ODYsIDB4ZTUsIDB4ODV9IH0sCi17IDB4MTk1MCwJMTYsCXsweGYwLCAweGEzLCAweGU1LCAweDg0LCAweGYwLCAweDA1LCAweDg2LCAweDkwLCAweDdmLCAweGU1LCAweGVlLCAweDMwLCAweGU3LCAweDA4LCAweDA1LCAweDg2fSB9LAoteyAweDE5NjAsCTE2LAl7MHhlMCwgMHgyNCwgMHgzOCwgMHhmMCwgMHgwNSwgMHg4NiwgMHhlZSwgMHg1NCwgMHg3ZiwgMHhmZSwgMHg1NCwgMHgwNywgMHhmYiwgMHhlZSwgMHg1NCwgMHg3OH0gfSwKLXsgMHgxOTcwLAkxNiwJezB4NjAsIDB4MzAsIDB4MDMsIDB4MDMsIDB4MDMsIDB4MzAsIDB4ZTMsIDB4MDQsIDB4NzQsIDB4MDcsIDB4N2IsIDB4MDgsIDB4ZmQsIDB4ZmMsIDB4ZTAsIDB4ZTB9IH0sCi17IDB4MTk4MCwJMTYsCXsweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGUwLCAweGRkLCAweGY2LCAweGViLCAweGZlLCAweDYwLCAweDE5LCAweGVjLCAweDY0LCAweDA3LCAweDcwfSB9LAoteyAweDE5OTAsCTE2LAl7MHgxMSwgMHg4YiwgMHgyNiwgMHg5MCwgMHg3ZiwgMHhlMiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHgyMCwgMHg1OCwgMHg3NCwgMHgwMCwgMHhmMH0gfSwKLXsgMHgxOWEwLAkxNiwJezB4ODAsIDB4MWIsIDB4ZTAsIDB4ZGUsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4ZTIsIDB4ZTAsIDB4NTQsIDB4YmYsIDB4ZjAsIDB4OTAsIDB4MjAsIDB4NTgsIDB4NzR9IH0sCi17IDB4MTliMCwJMTYsCXsweDAwLCAweGYwLCAweDkwLCAweDIwLCAweDE5LCAweGUwLCAweDU0LCAweGZkLCAweGYwLCAweDkwLCAweDdmLCAweGNkLCAweGYwLCAweDAyLCAweDEzLCAweDQzfSB9LAoteyAweDE5YzAsCTEsCXsweDMyfSB9LAoteyAweDE5YzEsCTQsCXsweGFkLCAweDA3LCAweGFjLCAweDA2fSB9LAoteyAweDE5YzUsCTE2LAl7MHg3OSwgMHgwNiwgMHhlZCwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlMCwgMHhmYSwgMHhhMywgMHhlMCwgMHhmYn0gfSwKLXsgMHgxOWQ1LAkxNiwJezB4NGEsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MWIsIDB4MDksIDB4ZTksIDB4YjQsIDB4MDcsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MWEsIDB4ZGIsIDB4OTB9IH0sCi17IDB4MTllNSwJMTYsCXsweDE5LCAweGViLCAweGY4LCAweDI4LCAweDI4LCAweDczLCAweDAyLCAweDFhLCAweGI5LCAweDAyLCAweDFhLCAweDcxLCAweDAyLCAweDFhLCAweDVhLCAweDAyfSB9LAoteyAweDE5ZjUsCTE2LAl7MHgxYSwgMHg0MCwgMHgwMiwgMHgxYSwgMHgyZiwgMHgwMiwgMHgxYSwgMHgxYSwgMHgwMiwgMHgxYSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKLXsgMHgxYTA1LAkxNiwJezB4ODAsIDB4ZjAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4NDQsIDB4YTAsIDB4OTAsIDB4N2YsIDB4YTZ9IH0sCi17IDB4MWExNSwJMTYsCXsweGYwLCAweDE5LCAweDAyLCAweDFhLCAweGRiLCAweDE5LCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweGMzLCAweDk0LCAweDIwLCAweDQwLCAweDBhfSB9LAoteyAweDFhMjUsCTE2LAl7MHhhMywgMHhhMywgMHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHgwMiwgMHgxYSwgMHhkYiwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhhMywgMHhhM30gfSwKLXsgMHgxYTM1LAkxNiwJezB4ZTAsIDB4YTMsIDB4ZTAsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4MTksIDB4MDIsIDB4MWEsIDB4ZGIsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4MWE0NSwJMTYsCXsweDgwLCAweGYwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDI1LCAweGUwLCAweDQ0LCAweGExLCAweDkwLCAweDdmLCAweGE2fSB9LAoteyAweDFhNTUsCTE2LAl7MHhmMCwgMHgxOSwgMHgwMiwgMHgxYSwgMHhkYiwgMHhlYiwgMHg2NCwgMHgwMSwgMHg0YSwgMHg3MCwgMHgwOCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NH0gfSwKLXsgMHgxYTY1LAkxNiwJezB4MjAsIDB4ZjAsIDB4MTksIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4ZjUsIDB4NTksIDB4MTksIDB4ODAsIDB4NmEsIDB4ZWQsIDB4MjQsIDB4MDQsIDB4ZjV9IH0sCi17IDB4MWE3NSwJMTYsCXsweDgyLCAweGU0LCAweDNjLCAweGY1LCAweDgzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDY0LCAweDAyLCAweDRlLCAweDcwLCAweDA4LCAweDkwLCAweDdmfSB9LAoteyAweDFhODUsCTE2LAl7MHhhNSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHgxOSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZiwgMHhlZCwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgxYTk1LAkxNiwJezB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODN9IH0sCi17IDB4MWFhNSwJMTYsCXsweGVmLCAweGYwLCAweGVkLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNjLCAweGY1LCAweDgzLCAweDc0LCAweGZmLCAweGY1LCAweGYwLCAweDEyfSB9LAoteyAweDFhYjUsCTE2LAl7MHhhMiwgMHg4MSwgMHg4MCwgMHgyMiwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhmZn0gfSwKLXsgMHgxYWM1LAkxNiwJezB4ZWQsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2MsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmEsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4ODIsIDB4OGF9IH0sCi17IDB4MWFkNSwJMTYsCXsweDgzLCAweGVmLCAweGYwLCAweDdmLCAweDA4LCAweDIyLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweGY1LCAweDU5LCAweDMwLCAweGUwLCAweGY3LCAweDMwfSB9LAoteyAweDFhZTUsCTE2LAl7MHhlMiwgMHgwNywgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNiwgMHgyMiwgMHhlOSwgMHhkMywgMHg5NCwgMHgwMiwgMHg1MCwgMHgwMywgMHgwMn0gfSwKLXsgMHgxYWY1LAkxNiwJezB4MTksIDB4YzcsIDB4ZTUsIDB4NTksIDB4MzAsIDB4ZTEsIDB4MDMsIDB4MDIsIDB4MTksIDB4YzcsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDB9IH0sCi17IDB4MWIwNSwJNiwJezB4ZjAsIDB4N2YsIDB4MDcsIDB4MjIsIDB4N2YsIDB4MDh9IH0sCi17IDB4MWIwYiwJMSwJezB4MjJ9IH0sCi17IDB4MWIwYywJMTYsCXsweGU1LCAweDMzLCAweGMzLCAweDk0LCAweDAxLCAweDUwLCAweDFjLCAweDdmLCAweDA1LCAweDdlLCAweDAwLCAweDEyLCAweDA5LCAweGFlLCAweDdmLCAweDAyfSB9LAoteyAweDFiMWMsCTE2LAl7MHg3ZCwgMHhmZiwgMHgxMiwgMHg4MiwgMHhlYSwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwOSwgMHhhZSwgMHg3ZiwgMHgwMywgMHg3ZCwgMHhmZn0gfSwKLXsgMHgxYjJjLAk0LAl7MHgxMiwgMHg4MiwgMHhlYSwgMHgyMn0gfSwKLXsgMHg4MDAwLAkxNiwJezB4N2IsIDB4ZmYsIDB4N2EsIDB4MTIsIDB4NzksIDB4MWIsIDB4OTAsIDB4MDAsIDB4MDQsIDB4MTIsIDB4YTIsIDB4NTQsIDB4ZmQsIDB4OGIsIDB4NTAsIDB4NzV9IH0sCi17IDB4ODAxMCwJMTYsCXsweDUxLCAweDEyLCAweDc1LCAweDUyLCAweDI0LCAweGU0LCAweDkwLCAweDdmLCAweGUxLCAweGYwLCAweDkwLCAweDdmLCAweGUwLCAweGYwLCAweGY1LCAweDRlfSB9LAoteyAweDgwMjAsCTE2LAl7MHhmNSwgMHg0ZiwgMHg5MCwgMHgwMiwgMHhhZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHg4MDMwLAkxNiwJezB4YTksIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWEsIDB4ZjAsIDB4ZTQsIDB4ZmMsIDB4ZWMsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjV9IH0sCi17IDB4ODA0MCwJMTYsCXsweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDBjLCAweGJjLCAweDEwLCAweGVlLCAweGU0LCAweDkwLCAweDdmLCAweGRkfSB9LAoteyAweDgwNTAsCTE2LAl7MHhmMCwgMHhhZiwgMHgwNSwgMHgxZCwgMHhlZiwgMHg3MCwgMHgwMywgMHgwMiwgMHg4MSwgMHhjNiwgMHhhYiwgMHg1MCwgMHhhYSwgMHg1MSwgMHhhOSwgMHg1Mn0gfSwKLXsgMHg4MDYwLAkxNiwJezB4OTAsIDB4MDAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4NTQsIDB4NjQsIDB4MDUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4YjUsIDB4OTAsIDB4MDAsIDB4MDN9IH0sCi17IDB4ODA3MCwJMTYsCXsweDEyLCAweGEyLCAweDU0LCAweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDgxLCAweDNjLCAweDkwLCAweDAwLCAweDAyLCAweDEyLCAweGEyLCAweDU0fSB9LAoteyAweDgwODAsCTE2LAl7MHhmZiwgMHg1NCwgMHg3ZiwgMHhmYywgMHhkMywgMHg5NCwgMHgwNywgMHg1MCwgMHgwMywgMHgwMiwgMHg4MSwgMHgxNiwgMHhlYywgMHhjMywgMHg5NCwgMHgxMH0gfSwKLXsgMHg4MDkwLAkxNiwJezB4NDAsIDB4MDMsIDB4MDIsIDB4ODEsIDB4MTYsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4NDIsIDB4ZTUsIDB4NGYsIDB4YWUsIDB4NGUsIDB4NzgsIDB4MDIsIDB4Y2V9IH0sCi17IDB4ODBhMCwJMTYsCXsweGMzLCAweDEzLCAweGNlLCAweDEzLCAweGQ4LCAweGY5LCAweGZmLCAweDc0LCAweGYwLCAweDJjLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1fSB9LAoteyAweDgwYjAsCTE2LAl7MHg4MywgMHhlZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlMCwgMHhlMCwgMHhmZiwgMHhlYywgMHgyNCwgMHhmOCwgMHhmZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNn0gfSwKLXsgMHg4MGMwLAkxNiwJezB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4ZTAsIDB4ZjAsIDB4OTAsIDB4MDIsIDB4YWUsIDB4ZTB9IH0sCi17IDB4ODBkMCwJMTYsCXsweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGRkLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDNlLCAweGU1LCAweDRmLCAweGFlLCAweDRlLCAweDc4fSB9LAoteyAweDgwZTAsCTE2LAl7MHgwMiwgMHhjZSwgMHhjMywgMHgxMywgMHhjZSwgMHgxMywgMHhkOCwgMHhmOSwgMHhmZiwgMHg3NCwgMHhlOCwgMHgyYywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNH0gfSwKLXsgMHg4MGYwLAkxNiwJezB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4ZTEsIDB4ZTAsIDB4ZmYsIDB4ZWMsIDB4MjQsIDB4ZjgsIDB4ZmUsIDB4NzQsIDB4MDF9IH0sCi17IDB4ODEwMCwJMTYsCXsweGE4LCAweDA2LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDRmLCAweDkwLCAweDdmLCAweGUxLCAweGYwLCAweDkwLCAweDAyfSB9LAoteyAweDgxMTAsCTE2LAl7MHhhZSwgMHhlMCwgMHgwNCwgMHhmMCwgMHg4MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHg5MCwgMHgwMCwgMHgwNCwgMHgxMiwgMHhhMiwgMHg1NCwgMHgyNX0gfSwKLXsgMHg4MTIwLAkxNiwJezB4NGYsIDB4ZjUsIDB4NGYsIDB4ZTQsIDB4MzUsIDB4NGUsIDB4ZjUsIDB4NGUsIDB4OTAsIDB4MDAsIDB4MDUsIDB4MTIsIDB4YTIsIDB4NTQsIDB4ZmUsIDB4ZTR9IH0sCi17IDB4ODEzMCwJMTYsCXsweDI1LCAweDRmLCAweGY1LCAweDRmLCAweGVlLCAweDM1LCAweDRlLCAweGY1LCAweDRlLCAweDAyLCAweDgxLCAweGI4LCAweGFiLCAweDUwLCAweGFhLCAweDUxfSB9LAoteyAweDgxNDAsCTE2LAl7MHhhOSwgMHg1MiwgMHg5MCwgMHgwMCwgMHgwMywgMHgxMiwgMHhhMiwgMHg1NCwgMHhmZiwgMHg2NCwgMHgwMiwgMHg2MCwgMHgwNSwgMHhlZiwgMHg2NCwgMHgwM30gfSwKLXsgMHg4MTUwLAkxNiwJezB4NzAsIDB4NjAsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4YTIsIDB4NTQsIDB4ZmYsIDB4NTQsIDB4N2YsIDB4ZmMsIDB4ZDMsIDB4OTQsIDB4MDcsIDB4NTB9IH0sCi17IDB4ODE2MCwJMTYsCXsweDRlLCAweGVmLCAweDMwLCAweGU3LCAweDFlLCAweDkwLCAweDdmLCAweGRlLCAweGUwLCAweGZmLCAweDc0LCAweDAxLCAweGE4LCAweDA0LCAweDA4LCAweDgwfSB9LAoteyAweDgxNzAsCTE2LAl7MHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmZSwgMHg0ZiwgMHg5MCwgMHg3ZiwgMHhkZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhYywgMHhlMCwgMHg0ZX0gfSwKLXsgMHg4MTgwLAkxNiwJezB4ZjAsIDB4ODAsIDB4MzUsIDB4OTAsIDB4N2YsIDB4ZGYsIDB4ZTAsIDB4ZmYsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDQsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzN9IH0sCi17IDB4ODE5MCwJMTYsCXsweDMzLCAweGQ4LCAweGZjLCAweGZlLCAweDRmLCAweDkwLCAweDdmLCAweGRmLCAweGYwLCAweDkwLCAweDdmLCAweGFkLCAweGUwLCAweDRlLCAweGYwLCAweGVjfSB9LAoteyAweDgxYTAsCTE2LAl7MHgyNSwgMHhlMCwgMHgyNCwgMHhjNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlYywgMHhmMCwgMHg4MCwgMHgwOSwgMHg3Zn0gfSwKLXsgMHg4MWIwLAkxNiwJezB4ZmYsIDB4MjIsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4NzQsIDB4MDcsIDB4MjUsIDB4NTIsIDB4ZjUsIDB4NTIsIDB4ZTQsIDB4MzV9IH0sCi17IDB4ODFjMCwJMTYsCXsweDUxLCAweGY1LCAweDUxLCAweDAyLCAweDgwLCAweDUxLCAweDIwLCAweDAzLCAweDBkLCAweDkwLCAweDAyLCAweGFlLCAweGUwLCAweDYwLCAweDA3LCAweDkwfSB9LAoteyAweDgxZDAsCTgsCXsweDdmLCAweGFlLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDgxZDgsCTEsCXsweDIyfSB9LAoteyAweDgxZDksCTQsCXsweDhlLCAweDU5LCAweDhmLCAweDVhfSB9LAoteyAweDgxZGQsCTE2LAl7MHg3NSwgMHg1YiwgMHgwMywgMHhlNSwgMHg1YSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZX0gfSwKLXsgMHg4MWVkLAkxNiwJezB4YTMsIDB4ZTAsIDB4NGUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4ODIsIDB4ZTcsIDB4ZTUsIDB4NWIsIDB4NjAsIDB4NGUsIDB4MTQsIDB4NjAsIDB4MzgsIDB4MTR9IH0sCi17IDB4ODFmZCwJMTYsCXsweDYwLCAweDIwLCAweDE0LCAweDYwLCAweDAzLCAweDAyLCAweDgyLCAweDhiLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDg1fSB9LAoteyAweDgyMGQsCTE2LAl7MHg1YSwgMHg4MiwgMHg4NSwgMHg1OSwgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHgyNSwgMHhlMCwgMHg0NCwgMHhhMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMH0gfSwKLXsgMHg4MjFkLAkxNiwJezB4ODAsIDB4NmMsIDB4ODUsIDB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4ZTAsIDB4YzMsIDB4OTQsIDB4MjAsIDB4NDAsIDB4MDksIDB4YTMsIDB4YTN9IH0sCi17IDB4ODIyZCwJMTYsCXsweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDgwLCAweDU3LCAweDE1LCAweDViLCAweDg1LCAweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGEzfSB9LAoteyAweDgyM2QsCTE2LAl7MHhhMywgMHhlMCwgMHhhMywgMHhlMCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4MCwgMHg0NCwgMHhlNSwgMHg1YSwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4MjRkLAkxNiwJezB4ZTQsIDB4MzUsIDB4NTksIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjV9IH0sCi17IDB4ODI1ZCwJMTYsCXsweDgzLCAweGUwLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU1LCAweDVhLCAweDI0fSB9LAoteyAweDgyNmQsCTE2LAl7MHgwNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OSwgMHhmNSwgMHg4MywgMHg3NCwgMHhmZiwgMHhmNSwgMHhmMCwgMHgxMiwgMHhhMiwgMHg4MSwgMHg4NX0gfSwKLXsgMHg4MjdkLAkxNiwJezB4NWEsIDB4ODIsIDB4ODUsIDB4NTksIDB4ODMsIDB4YTMsIDB4YTMsIDB4ZTQsIDB4NzUsIDB4ZjAsIDB4MDEsIDB4MTIsIDB4YTIsIDB4ODEsIDB4OTAsIDB4N2Z9IH0sCi17IDB4ODI4ZCwJMTYsCXsweGE1LCAweGUwLCAweGY1LCAweDVjLCAweDMwLCAweGUwLCAweGY3LCAweDMwLCAweGUyLCAweDA3LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA2fSB9LAoteyAweDgyOWQsCTE2LAl7MHgyMiwgMHhlNSwgMHg1YywgMHgyMCwgMHhlMSwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNywgMHgyMn0gfSwKLXsgMHg4MmFkLAkxNiwJezB4ZTUsIDB4NWIsIDB4NzAsIDB4MzEsIDB4N2YsIDB4MDEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MDksIDB4YWUsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDR9IH0sCi17IDB4ODJiZCwJMTYsCXsweDgwLCAweGYwLCAweDg1LCAweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGEzLCAweGUwLCAweGZmLCAweDI1LCAweGUwLCAweDQ0LCAweGEwLCAweDkwfSB9LAoteyAweDgyY2QsCTE2LAl7MHg3ZiwgMHhhNiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHhmNSwgMHg1YywgMHgzMCwgMHhlMCwgMHhmNywgMHgzMCwgMHhlMSwgMHhkNSwgMHg3NX0gfSwKLXsgMHg4MmRkLAkxMiwJezB4NWIsIDB4MDMsIDB4MDIsIDB4ODEsIDB4ZTAsIDB4MTUsIDB4NWIsIDB4MDIsIDB4ODEsIDB4ZTAsIDB4N2YsIDB4MDh9IH0sCi17IDB4ODJlOSwJMSwJezB4MjJ9IH0sCi17IDB4ODJlYSwJMiwJezB4YWUsIDB4MDd9IH0sCi17IDB4ODJlYywJMTYsCXsweDdjLCAweDAyLCAweGVjLCAweDE0LCAweDYwLCAweDE1LCAweDE0LCAweDcwLCAweDFlLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwfSB9LAoteyAweDgyZmMsCTE2LAl7MHhlZSwgMHgyNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4MCwgMHgwYywgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlZCwgMHhmMH0gfSwKLXsgMHg4MzBjLAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4ZmIsIDB4MzAsIDB4ZTAsIDB4ZjgsIDB4YmN9IH0sCi17IDB4ODMxYywJMTYsCXsweDAyLCAweDBhLCAweDIwLCAweGUxLCAweDA3LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA3LCAweDIyLCAweGViLCAweDMwLCAweGUyLCAweDBhfSB9LAoteyAweDgzMmMsCTE0LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHg3ZiwgMHgwNiwgMHgyMiwgMHhkYywgMHhiNiwgMHg3ZiwgMHgwOH0gfSwKLXsgMHg4MzNhLAkxLAl7MHgyMn0gfSwKLXsgMHg4MzNiLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4YzIsIDB4YTksIDB4OTAsIDB4MDMsIDB4MDAsIDB4NzQsIDB4MTksIDB4ZjAsIDB4ZDIsIDB4YTl9IH0sCi17IDB4ODM0YiwJMTUsCXsweDUzLCAweDkxLCAweDdmLCAweDkwLCAweDAxLCAweGM0LCAweGU0LCAweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDgzNWEsCTE2LAl7MHhlZiwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhYiwgMHg4MiwgMHhmYSwgMHhmNX0gfSwKLXsgMHg4MzZhLAkxNiwJezB4ODMsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4OGIsIDB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjEsIDB4NzQsIDB4YmZ9IH0sCi17IDB4ODM3YSwJMTYsCXsweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweDQ0LCAweDEwLCAweGYwLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzfSB9LAoteyAweDgzOGEsCTE2LAl7MHhhMywgMHhhMywgMHhlNCwgMHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhmMCwgMHhmOSwgMHhlZCwgMHg2MCwgMHgxZCwgMHg3NCwgMHgwMX0gfSwKLXsgMHg4MzlhLAkxNiwJezB4N2UsIDB4MDAsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDUsIDB4YzMsIDB4MzMsIDB4Y2UsIDB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTR9IH0sCi17IDB4ODNhYSwJMTYsCXsweGVmLCAweDU1LCAweDMxLCAweDYwLCAweDA0LCAweDc5LCAweDA5LCAweDgwLCAweDAyLCAweDc5LCAweDBkLCAweDhiLCAweDgyLCAweDhhLCAweDgzLCAweGEzfSB9LAoteyAweDgzYmEsCTE2LAl7MHhhMywgMHhhMywgMHg3NCwgMHhiZiwgMHhmMCwgMHg4YiwgMHg4MiwgMHg4YSwgMHg4MywgMHhhMywgMHhhMywgMHhlMCwgMHg1NCwgMHhlZiwgMHhmMCwgMHg4Yn0gfSwKLXsgMHg4M2NhLAkxNiwJezB4ODIsIDB4OGEsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTUsIDB4NjEsIDB4ZjAsIDB4YWUsIDB4MDIsIDB4YWYsIDB4MDMsIDB4OGYsIDB4ODIsIDB4OGV9IH0sCi17IDB4ODNkYSwJNCwJezB4ODMsIDB4YTMsIDB4ZTksIDB4ZjB9IH0sCi17IDB4ODNkZSwJMSwJezB4MjJ9IH0sCi17IDB4ODNkZiwJNCwJezB4OGYsIDB4NjEsIDB4OGQsIDB4NjJ9IH0sCi17IDB4ODNlMywJMTYsCXsweGU0LCAweGY1LCAweDY3LCAweDc0LCAweDNmLCAweDJmLCAweGY4LCAweDc2LCAweDA4LCAweDdmLCAweDgwLCAweDdlLCAweDI1LCAweDdkLCAweDAwLCAweDdjfSB9LAoteyAweDgzZjMsCTE2LAl7MHgwMCwgMHhhYiwgMHg2NiwgMHhhYSwgMHg2NSwgMHhhOSwgMHg2NCwgMHhhOCwgMHg2MywgMHhkMywgMHgxMiwgMHhhMywgMHhiMywgMHg0MCwgMHgyNiwgMHg3Zn0gfSwKLXsgMHg4NDAzLAkxNiwJezB4MDAsIDB4N2UsIDB4OTYsIDB4N2QsIDB4MDAsIDB4N2MsIDB4MDAsIDB4YTgsIDB4NjMsIDB4ZDMsIDB4MTIsIDB4YTMsIDB4YjMsIDB4NTAsIDB4MGMsIDB4NzV9IH0sCi17IDB4ODQxMywJMTYsCXsweDY3LCAweDQwLCAweDc0LCAweDNmLCAweDI1LCAweDYxLCAweGY4LCAweDc2LCAweDEwLCAweDgwLCAweDBhLCAweDc1LCAweDY3LCAweDgwLCAweDc0LCAweDNmfSB9LAoteyAweDg0MjMsCTE2LAl7MHgyNSwgMHg2MSwgMHhmOCwgMHg3NiwgMHgzOCwgMHhlNSwgMHg2NywgMHg0NSwgMHg2MiwgMHg0NCwgMHgwMSwgMHhmZiwgMHhlNSwgMHg2MSwgMHg3NSwgMHhmMH0gfSwKLXsgMHg4NDMzLAkxMywJezB4MDgsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjB9IH0sCi17IDB4ODQ0MCwJMSwJezB4MjJ9IH0sCi17IDB4ODQ0MSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGY1LCAweDU3LCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyfSB9LAoteyAweDg0NTEsCTE2LAl7MHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmNX0gfSwKLXsgMHg4NDYxLAkxNiwJezB4NTgsIDB4OGYsIDB4NTksIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YzYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODN9IH0sCi17IDB4ODQ3MSwJMTYsCXsweGUwLCAweDIwLCAweGUxLCAweDBmLCAweGU1LCAweDU3LCAweDI1LCAweGUwLCAweDI0LCAweGM3LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1fSB9LAoteyAweDg0ODEsCTE2LAl7MHg4MywgMHhlNCwgMHhmMCwgMHg3NCwgMHgyMywgMHgyNSwgMHg1NywgMHhmOCwgMHhlNCwgMHhmNiwgMHhlNSwgMHg1OSwgMHgyNCwgMHgwNCwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4NDkxLAkxNiwJezB4ZTQsIDB4MzUsIDB4NTgsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDQsIDB4MDMsIDB4ZjAsIDB4ZTUsIDB4NTcsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjR9IH0sCi17IDB4ODRhMSwJMTYsCXsweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlfSB9LAoteyAweDg0YjEsCTE2LAl7MHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2MywgMHg3ZCwgMHgwNiwgMHhhZiwgMHg1NywgMHgxMiwgMHg4M30gfSwKLXsgMHg4NGMxLAkxNiwJezB4ZGYsIDB4YWYsIDB4NTcsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWEsIDB4ODUsIDB4NTksIDB4ODIsIDB4ODUsIDB4NTgsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCi17IDB4ODRkMSwJMTYsCXsweGUwLCAweDIwLCAweGUwLCAweDQzLCAweGUwLCAweGZmLCAweGU1LCAweDU5LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU4LCAweGY1fSB9LAoteyAweDg0ZTEsCTE2LAl7MHg4MywgMHhlMCwgMHhlNSwgMHg1OSwgMHgyNCwgMHgwNiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1OCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHhlNX0gfSwKLXsgMHg4NGYxLAkxNiwJezB4NTcsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmN9IH0sCi17IDB4ODUwMSwJMTYsCXsweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGY1LCAweDY2LCAweDhlLCAweDY1LCAweDhkLCAweDY0LCAweDhjLCAweDYzfSB9LAoteyAweDg1MTEsCTE2LAl7MHg3ZCwgMHgwNiwgMHhhZiwgMHg1NywgMHgxMiwgMHg4MywgMHhkZiwgMHg3NCwgMHhmOCwgMHgyNSwgMHg1NywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMn0gfSwKLXsgMHg4NTIxLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4NzQsIDB4MGMsIDB4OWYsIDB4NzUsIDB4ZjAsIDB4NDB9IH0sCi17IDB4ODUzMSwJMTYsCXsweGE0LCAweDI0LCAweDQwLCAweGY1LCAweDgyLCAweGU1LCAweGYwLCAweDM0LCAweDdiLCAweGFmLCAweDgyLCAweGZlLCAweGU1LCAweDU3LCAweDI1LCAweGUwfSB9LAoteyAweDg1NDEsCTE2LAl7MHgyNCwgMHhlZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlZSwgMHhmMCwgMHhhMywgMHhlZiwgMHhmMCwgMHhhZiwgMHg1N30gfSwKLXsgMHg4NTUxLAkxNSwJezB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4MzQsIDB4N2YsIDB4MDB9IH0sCi17IDB4ODU2MCwJMSwJezB4MjJ9IH0sCi17IDB4ODU2MSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGY1LCAweDU3LCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyfSB9LAoteyAweDg1NzEsCTE2LAl7MHhhZiwgMHg1NywgMHhlNCwgMHhmZCwgMHgxMiwgMHg4MywgMHg1YSwgMHg3NCwgMHhmOCwgMHgyNSwgMHg1NywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMn0gfSwKLXsgMHg4NTgxLAkxNiwJezB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4NTcsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCi17IDB4ODU5MSwJMTYsCXsweDIwLCAweGFmLCAweDgyLCAweGY1LCAweDU5LCAweDhmLCAweDVhLCAweGY1LCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0fSB9LAoteyAweDg1YTEsCTE2LAl7MHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYywgMHhmMCwgMHhlNSwgMHg1NywgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwY30gfSwKLXsgMHg4NWIxLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4ZTUsIDB4NTcsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjR9IH0sCi17IDB4ODVjMSwJMTYsCXsweDAyLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAzLCAweGY1LCAweDgzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlfSB9LAoteyAweDg1ZDEsCTE2LAl7MHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2MywgMHg3ZCwgMHgwNiwgMHhhZiwgMHg1NywgMHgxMiwgMHg4M30gfSwKLXsgMHg4NWUxLAkxNiwJezB4ZGYsIDB4ZTUsIDB4NWEsIDB4MjQsIDB4MDUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTksIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MDl9IH0sCi17IDB4ODVmMSwJMTYsCXsweDg1LCAweDVhLCAweDgyLCAweDg1LCAweDU5LCAweDgzLCAweGUwLCAweGY1LCAweDU4LCAweGFmLCAweDU3LCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4fSB9LAoteyAweDg2MDEsCTE2LAl7MHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNCwgMHg1MiwgMHgzNCwgMHhlNSwgMHg1NywgMHgyNSwgMHhlMCwgMHgyNCwgMHhjNiwgMHhmNX0gfSwKLXsgMHg4NjExLAkxNiwJezB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MjAsIDB4ZTEsIDB4MGYsIDB4ZTUsIDB4NTcsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4Yzd9IH0sCi17IDB4ODYyMSwJMTEsCXsweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDg2MmMsCTEsCXsweDIyfSB9LAoteyAweDg2MmQsCTQsCXsweDhlLCAweDU3LCAweDhmLCAweDU4fSB9LAoteyAweDg2MzEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmNSwgMHg1OSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMn0gfSwKLXsgMHg4NjQxLAkxNiwJezB4ZTUsIDB4NTksIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTB9IH0sCi17IDB4ODY1MSwJMTYsCXsweDU0LCAweDAzLCAweDcwLCAweDY2LCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweDMwLCAweGUwLCAweDI4LCAweGU1fSB9LAoteyAweDg2NjEsCTE2LAl7MHg1OSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNSwgMHg4MywgMHhlMCwgMHhmY30gfSwKLXsgMHg4NjcxLAkxNiwJezB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGQsIDB4NjQsIDB4OGMsIDB4NjN9IH0sCi17IDB4ODY4MSwJMTYsCXsweDdkLCAweDAyLCAweGFmLCAweDU5LCAweDEyLCAweDgzLCAweGRmLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweDMwfSB9LAoteyAweDg2OTEsCTE2LAl7MHhlMSwgMHgyOCwgMHhlNSwgMHg1OSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMywgMHhmNX0gfSwKLXsgMHg4NmExLAkxNiwJezB4ODMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZjUsIDB4NjYsIDB4OGUsIDB4NjUsIDB4OGR9IH0sCi17IDB4ODZiMSwJMTIsCXsweDY0LCAweDhjLCAweDYzLCAweDdkLCAweDA0LCAweGFmLCAweDU5LCAweDEyLCAweDgzLCAweGRmLCAweDdmLCAweDAwfSB9LAoteyAweDg2YmQsCTEsCXsweDIyfSB9LAoteyAweDg2YmUsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZCwgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmYywgMHhlZH0gfSwKLXsgMHg4NmNlLAkxNiwJezB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzB9IH0sCi17IDB4ODZkZSwJMTYsCXsweDgyLCAweGUwLCAweGZkLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZjLCAweGVkLCAweDZjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwfSB9LAoteyAweDg2ZWUsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHhmZCwgMHhlYywgMHg2ZCwgMHhkMH0gfSwKLXsgMHg4NmZlLAkxNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZTAsIDB4ZmQsIDB4OGZ9IH0sCi17IDB4ODcwZSwJMTYsCXsweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZjLCAweGVkLCAweDZjLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGYwLCAweDhmLCAweDgyfSB9LAoteyAweDg3MWUsCTE2LAl7MHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhlMCwgMHhmZCwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhlMH0gfSwKLXsgMHg4NzJlLAkxNiwJezB4ZmMsIDB4ZWQsIDB4NmMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZjAsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4YTMsIDB4YzAsIDB4ODMsIDB4YzB9IH0sCi17IDB4ODczZSwJMTYsCXsweDgyLCAweGUwLCAweGZkLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGUwLCAweGZmLCAweGVkLCAweDZmLCAweGQwLCAweDgyLCAweGQwfSB9LAoteyAweDg3NGUsCTMsCXsweDgzLCAweGYwLCAweDIyfSB9LAoteyAweDg3NTEsCTQsCXsweGFkLCAweDA3LCAweGFjLCAweDA2fSB9LAoteyAweDg3NTUsCTE2LAl7MHg3OSwgMHgwZCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZn0gfSwKLXsgMHg4NzY1LAkxNiwJezB4MjIsIDB4OGMsIDB4NTcsIDB4OGQsIDB4NTgsIDB4ZWUsIDB4NzUsIDB4ZjAsIDB4MGQsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCi17IDB4ODc3NSwJMTYsCXsweDAzLCAweGFmLCAweDgyLCAweGZlLCAweGFkLCAweDAxLCAweDE5LCAweGVkLCAweDYwLCAweDI0LCAweDBmLCAweGVmLCAweGFjLCAweDA2LCAweDcwLCAweDAxfSB9LAoteyAweDg3ODUsCTE2LAl7MHgwZSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHhmZCwgMHgwNSwgMHg1OCwgMHhlNSwgMHg1OCwgMHhhYSwgMHg1NywgMHg3MCwgMHgwMn0gfSwKLXsgMHg4Nzk1LAkxNiwJezB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4NmQsIDB4NjAsIDB4ZDksIDB4N2YsIDB4MDEsIDB4MjIsIDB4N2YsIDB4MDB9IH0sCi17IDB4ODdhNSwJMSwJezB4MjJ9IH0sCi17IDB4ODdhNiwJNCwJezB4OGUsIDB4NTcsIDB4OGYsIDB4NTh9IH0sCi17IDB4ODdhYSwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGY1LCAweDVlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyfSB9LAoteyAweDg3YmEsCTE2LAl7MHhlNSwgMHg1ZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmNX0gfSwKLXsgMHg4N2NhLAkxNiwJezB4NWYsIDB4OGYsIDB4NjAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTN9IH0sCi17IDB4ODdkYSwJMTYsCXsweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDdiLCAweDA4LCAweDdhLCAweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweGQzLCAweDEyLCAweGEzfSB9LAoteyAweDg3ZWEsCTE2LAl7MHhiMywgMHg0MCwgMHgxMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHgxMiwgMHhhMywgMHhmYSwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHg4N2ZhLAkxNiwJezB4MDgsIDB4ODAsIDB4MmUsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTAsIDB4ZmQsIDB4YTN9IH0sCi17IDB4ODgwYSwJMTYsCXsweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweDdiLCAweDAwLCAweDdhLCAweDA4LCAweDc5LCAweDA3LCAweDc4LCAweDAwLCAweGMzLCAweDEyLCAweGEzfSB9LAoteyAweDg4MWEsCTE2LAl7MHhiMywgMHg1MCwgMHgwZSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHgxMiwgMHhhMywgMHhmYSwgMHgwMCwgMHgwNywgMHgwOH0gfSwKLXsgMHg4ODJhLAkxNiwJezB4MDAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZjgsIDB4YTMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmF9IH0sCi17IDB4ODgzYSwJMTYsCXsweGEzLCAweGUwLCAweGZiLCAweDdmLCAweDAwLCAweDdlLCAweDUwLCAweDdkLCAweDQ2LCAweDdjLCAweDAwLCAweDEyLCAweGEzLCAweDIxLCAweDhmLCAweDVjfSB9LAoteyAweDg4NGEsCTE2LAl7MHg4ZSwgMHg1YiwgMHg4ZCwgMHg1YSwgMHg4YywgMHg1OSwgMHg3YiwgMHgwYSwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHgxMiwgMHhhM30gfSwKLXsgMHg4ODVhLAkxNiwJezB4MjEsIDB4YWYsIDB4MDMsIDB4OGYsIDB4NWQsIDB4YWYsIDB4NWMsIDB4YWUsIDB4NWIsIDB4YWQsIDB4NWEsIDB4YWMsIDB4NTksIDB4N2IsIDB4MGEsIDB4N2F9IH0sCi17IDB4ODg2YSwJMTYsCXsweDAwLCAweDc5LCAweDAwLCAweDc4LCAweDAwLCAweDEyLCAweGEzLCAweDIxLCAweDhmLCAweDVjLCAweDhlLCAweDViLCAweDhkLCAweDVhLCAweDhjLCAweDU5fSB9LAoteyAweDg4N2EsCTE2LAl7MHhlNSwgMHg1ZCwgMHhjMywgMHg5NCwgMHgwNSwgMHg0MCwgMHgxNSwgMHhlNSwgMHg1YywgMHgyNCwgMHgwMSwgMHhmNSwgMHg1YywgMHhlNCwgMHgzNSwgMHg1Yn0gfSwKLXsgMHg4ODhhLAkxNiwJezB4ZjUsIDB4NWIsIDB4ZTQsIDB4MzUsIDB4NWEsIDB4ZjUsIDB4NWEsIDB4ZTQsIDB4MzUsIDB4NTksIDB4ZjUsIDB4NTksIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODV9IH0sCi17IDB4ODg5YSwJMTYsCXsweDVmLCAweDgzLCAweGEzLCAweGU0LCAweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDQ0fSB9LAoteyAweDg4YWEsCTE2LAl7MHg4MCwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4MiwgMHg4NSwgMHg1ZiwgMHg4MywgMHhlNSwgMHg1YywgMHhmMCwgMHhhZiwgMHg1YywgMHhhZSwgMHg1YiwgMHhhZH0gfSwKLXsgMHg4OGJhLAkxNiwJezB4NWEsIDB4YWMsIDB4NTksIDB4NzgsIDB4MDgsIDB4MTIsIDB4YTMsIDB4YzQsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4ZWZ9IH0sCi17IDB4ODhjYSwJMTYsCXsweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDU0LCAweDdmLCAweGYwLCAweGU0LCAweGY1fSB9LAoteyAweDg4ZGEsCTE2LAl7MHg1ZCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHgzMCwgMHhlMH0gfSwKLXsgMHg4OGVhLAkxNiwJezB4MjMsIDB4NTQsIDB4MDEsIDB4ZjAsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZTB9IH0sCi17IDB4ODhmYSwJMTYsCXsweDU0LCAweGZkLCAweGYwLCAweGFmLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjfSB9LAoteyAweDg5MGEsCTE2LAl7MHg0MiwgMHgyMiwgMHg4MCwgMHgzNiwgMHg3NCwgMHgwMSwgMHg3ZSwgMHgwMCwgMHhhOCwgMHg1ZSwgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZX0gfSwKLXsgMHg4OTFhLAkxNiwJezB4MzMsIDB4Y2UsIDB4ZDgsIDB4ZjksIDB4ZmYsIDB4ZTQsIDB4ZWYsIDB4NTUsIDB4MjIsIDB4NjAsIDB4MWYsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjV9IH0sCi17IDB4ODkyYSwJMTYsCXsweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweGFmLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA3fSB9LAoteyAweDg5M2EsCTE2LAl7MHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNCwgMHg1MiwgMHgyMiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwOCwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4OTRhLAkxNiwJezB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4YjQsIDB4NjIsIDB4MDUsIDB4NDMsIDB4NWQsIDB4MGEsIDB4ODAsIDB4MWEsIDB4ZWZ9IH0sCi17IDB4ODk1YSwJMTYsCXsweGI0LCAweDcyLCAweDA1LCAweDQzLCAweDVkLCAweDA4LCAweDgwLCAweDExLCAweGVmLCAweGI0LCAweDc0LCAweDA1LCAweDQzLCAweDVkLCAweDAyLCAweDgwfSB9LAoteyAweDg5NmEsCTE2LAl7MHgwOCwgMHhlZiwgMHg2NCwgMHg2ZSwgMHg2MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHg4OTdhLAkxNiwJezB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTMsIDB4MDMsIDB4NDMsIDB4NWQsIDB4ODAsIDB4ZWYsIDB4MzAsIDB4ZTcsIDB4MTJ9IH0sCi17IDB4ODk4YSwJMTYsCXsweDQzLCAweDVkLCAweDQwLCAweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGUwLCAweDQ0fSB9LAoteyAweDg5OWEsCTE2LAl7MHgwMiwgMHhmMCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlMX0gfSwKLXsgMHg4OWFhLAkxNiwJezB4MjAsIDB4YWYsIDB4NWUsIDB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4NDIsIDB4MzJ9IH0sCi17IDB4ODliYSwJMTYsCXsweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwfSB9LAoteyAweDg5Y2EsCTE2LAl7MHgxMCwgMHhhZiwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNCwgMHg1Mn0gfSwKLXsgMHg4OWRhLAkxNiwJezB4MzIsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MzAsIDB4ZTR9IH0sCi17IDB4ODllYSwJMTYsCXsweDExLCAweGFlLCAweDVlLCAweDc0LCAweDAxLCAweGE4LCAweDA2LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDQyLCAweDMxfSB9LAoteyAweDg5ZmEsCTE2LAl7MHg4MCwgMHgxMCwgMHhhZSwgMHg1ZSwgMHg3NCwgMHgwMSwgMHhhOCwgMHgwNiwgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHhmNH0gfSwKLXsgMHg4YTBhLAkxNiwJezB4NTIsIDB4MzEsIDB4ZWYsIDB4MjAsIDB4ZTEsIDB4MDMsIDB4MzAsIDB4ZTQsIDB4MDMsIDB4ZTQsIDB4ZjUsIDB4NWQsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODV9IH0sCi17IDB4OGExYSwJMTYsCXsweDVmLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweDc0LCAweGJmLCAweGYwLCAweDg1LCAweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzfSB9LAoteyAweDhhMmEsCTE2LAl7MHhlNCwgMHhmMCwgMHhlNSwgMHg1ZCwgMHhmMCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwYSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNSwgMHg4M30gfSwKLXsgMHg4YTNhLAkxNiwJezB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTV9IH0sCi17IDB4OGE0YSwJMTYsCXsweDU4LCAweDI0LCAweDBhLCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDYwLCAweDI0LCAweDA1fSB9LAoteyAweDhhNWEsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwOSwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHg4YTZhLAkxNiwJezB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NjAsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NWYsIDB4ZjV9IH0sCi17IDB4OGE3YSwJMTYsCXsweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDU4LCAweDI0LCAweDA5LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZmfSB9LAoteyAweDhhOGEsCTE2LAl7MHhlNSwgMHg2MCwgMHgyNCwgMHgwNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1ZiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHg4NSwgMHg2MCwgMHg4Mn0gfSwKLXsgMHg4YTlhLAkxNiwJezB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZTQsIDB4ZjAsIDB4ODUsIDB4NjAsIDB4ODIsIDB4ODUsIDB4NWYsIDB4ODMsIDB4YTMsIDB4YTN9IH0sCi17IDB4OGFhYSwJMTYsCXsweGYwLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZjLCAweGEzLCAweGUwLCAweGZkLCAweGEzLCAweGUwLCAweGZlfSB9LAoteyAweDhhYmEsCTE2LAl7MHhhMywgMHhlMCwgMHhmNSwgMHg2NiwgMHg4ZSwgMHg2NSwgMHg4ZCwgMHg2NCwgMHg4YywgMHg2MywgMHg3ZCwgMHgwNiwgMHhhZiwgMHg1ZSwgMHgxMiwgMHg4M30gfSwKLXsgMHg4YWNhLAkxNiwJezB4ZGYsIDB4NzUsIDB4NWQsIDB4MDgsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MGMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZjUsIDB4ODMsIDB4ZTB9IH0sCi17IDB4OGFkYSwJMTYsCXsweDYwLCAweDAzLCAweDQzLCAweDVkLCAweDEwLCAweGU1LCAweDYwLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDVmLCAweGY1LCAweDgzfSB9LAoteyAweDhhZWEsCTE2LAl7MHhlMCwgMHg1NCwgMHgwMywgMHg0NSwgMHg1ZCwgMHhmMCwgMHhlNSwgMHg1OCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg1NywgMHhmNX0gfSwKLXsgMHg4YWZhLAkxNiwJezB4ODMsIDB4ZTAsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDUsIDB4NDAsIDB4MDYsIDB4ZWUsIDB4ZDMsIDB4OTQsIDB4MDgsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmZ9IH0sCi17IDB4OGIwYSwJMTYsCXsweDIyLCAweGU1LCAweDU4LCAweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweGZkLCAweGMzLCAweDk0fSB9LAoteyAweDhiMWEsCTE2LAl7MHgwMSwgMHg0MCwgMHgwNiwgMHhlZCwgMHhkMywgMHg5NCwgMHgwMiwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZCwgMHgxNCwgMHhmZiwgMHgyNX0gfSwKLXsgMHg4YjJhLAkxNiwJezB4ZTAsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4ZWUsIDB4MjQsIDB4ZmIsIDB4NGYsIDB4ZjUsIDB4NWQsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDcsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OGIzYSwJMTYsCXsweGU0LCAweDM1LCAweDU3LCAweGY1LCAweDgzLCAweGUwLCAweDI0LCAweGQwLCAweDYwLCAweDE4LCAweDE0LCAweDYwLCAweDFhLCAweDI0LCAweGMzLCAweDYwfSB9LAoteyAweDhiNGEsCTE2LAl7MHgxZSwgMHgxNCwgMHg2MCwgMHgwOSwgMHgyNCwgMHgwYSwgMHg3MCwgMHgxNCwgMHg0MywgMHg1ZCwgMHgxOCwgMHg4MCwgMHgxMiwgMHg0MywgMHg1ZCwgMHgwOH0gfSwKLXsgMHg4YjVhLAkxNiwJezB4ODAsIDB4MGQsIDB4NDMsIDB4NWQsIDB4MzgsIDB4ODAsIDB4MDgsIDB4NDMsIDB4NWQsIDB4MjgsIDB4ODAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ODV9IH0sCi17IDB4OGI2YSwJMTYsCXsweDYwLCAweDgyLCAweDg1LCAweDVmLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGU1LCAweDVkLCAweGYwLCAweDc0LCAweDAxLCAweDdlLCAweDAwLCAweGE4fSB9LAoteyAweDhiN2EsCTE2LAl7MHg1ZSwgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZSwgMHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNCwgMHhlZiwgMHg1NSwgMHgzNH0gfSwKLXsgMHg4YjhhLAkxNiwJezB4NjAsIDB4MDcsIDB4YWYsIDB4NWUsIDB4N2QsIDB4MDEsIDB4MTIsIDB4ODMsIDB4NWEsIDB4YWEsIDB4NTcsIDB4YTksIDB4NTgsIDB4N2IsIDB4MDEsIDB4YzB9IH0sCi17IDB4OGI5YSwJMTYsCXsweDAzLCAweGMwLCAweDAxLCAweGU1LCAweDVlLCAweDc1LCAweGYwLCAweDBkLCAweGE0LCAweDI0LCAweDAxLCAweGY5LCAweDc0LCAweDAzLCAweDM1LCAweGYwfSB9LAoteyAweDhiYWEsCTE2LAl7MHhhOCwgMHgwMSwgMHhmYywgMHhhZCwgMHgwMywgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMywgMHg3ZSwgMHgwMCwgMHg3ZiwgMHgwZCwgMHgxMiwgMHhhMiwgMHgxMn0gfSwKLXsgMHg4YmJhLAkyLAl7MHg3ZiwgMHgwMH0gfSwKLXsgMHg4YmJjLAkxLAl7MHgyMn0gfSwKLXsgMHg4YmJkLAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZWV9IH0sCi17IDB4OGJjZCwJMTYsCXsweDc1LCAweGYwLCAweDA4LCAweGE0LCAweDI0LCAweDAwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFkLCAweDgyLCAweGZjLCAweDkwLCAweDAxfSB9LAoteyAweDhiZGQsCTE2LAl7MHgyYywgMHg3NCwgMHgwOCwgMHhmMCwgMHhlZSwgMHgwNCwgMHhhMywgMHhmMCwgMHhlNCwgMHhhMywgMHhmMCwgMHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlNX0gfSwKLXsgMHg4YmVkLAkxNiwJezB4ODIsIDB4MjQsIDB4MDYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OTAsIDB4MDEsIDB4MmYsIDB4ZjAsIDB4OGR9IH0sCi17IDB4OGJmZCwJMTYsCXsweDgyLCAweDhjLCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0fSB9LAoteyAweDhjMGQsCTE2LAl7MHgxZSwgMHg5MCwgMHgwMSwgMHgzMCwgMHhmMCwgMHg3NCwgMHgyZCwgMHgyZSwgMHhmOCwgMHhlNiwgMHhhMywgMHhmMCwgMHhhZiwgMHgwNiwgMHg3NCwgMHgwMX0gfSwKLXsgMHg4YzFkLAkxNiwJezB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjUsIDB4NTcsIDB4ZTUsIDB4MzMsIDB4YzMsIDB4OTQsIDB4MDF9IH0sCi17IDB4OGMyZCwJMTYsCXsweDQwLCAweDBkLCAweDkwLCAweDIwLCAweDc4LCAweGUwLCAweDU0LCAweDBmLCAweDc1LCAweDU4LCAweDAwLCAweGY1LCAweDU5LCAweDgwLCAweDA5LCAweDdmfSB9LAoteyAweDhjM2QsCTE2LAl7MHgwMiwgMHgxMiwgMHgxMSwgMHgyNywgMHg4ZSwgMHg1OCwgMHg4ZiwgMHg1OSwgMHhjMywgMHhlNSwgMHg1OCwgMHg2NCwgMHg4MCwgMHg5NCwgMHg4MCwgMHg0MH0gfSwKLXsgMHg4YzRkLAkxNiwJezB4ZGEsIDB4ZTUsIDB4NTcsIDB4NTUsIDB4NTksIDB4OTAsIDB4MDEsIDB4MzIsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MmMsIDB4N2QsIDB4MDcsIDB4MTJ9IH0sCi17IDB4OGM1ZCwJNCwJezB4OTEsIDB4NmEsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGM2MSwJMSwJezB4MjJ9IH0sCi17IDB4OGM2MiwJMTYsCXsweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoteyAweDhjNzIsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmZSwgMHg5MCwgMHgwMX0gfSwKLXsgMHg4YzgyLAkxNiwJezB4MzMsIDB4NzQsIDB4MGEsIDB4ZjAsIDB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTUsIDB4ODIsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzV9IH0sCi17IDB4OGM5MiwJMTYsCXsweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDkwLCAweDAxLCAweDM0LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDMzLCAweDdkLCAweDAyLCAweDEyLCAweDkxfSB9LAoteyAweDhjYTIsCTMsCXsweDZhLCAweDdmLCAweDAwfSB9LAoteyAweDhjYTUsCTEsCXsweDIyfSB9LAoteyAweDhjYTYsCTQsCXsweDhlLCAweDU3LCAweDhmLCAweDU4fSB9LAoteyAweDhjYWEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKLXsgMHg4Y2JhLAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWQsIDB4ODIsIDB4ZmMsIDB4ODUsIDB4NTh9IH0sCi17IDB4OGNjYSwJMTYsCXsweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweDYwLCAweDBmLCAweGVkLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNjLCAweGY1fSB9LAoteyAweDhjZGEsCTE2LAl7MHg4MywgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHg4MCwgMHg0MywgMHhlZSwgMHg3NSwgMHhmMCwgMHgwZCwgMHhhNCwgMHgyNCwgMHgwYywgMHhmNSwgMHg4Mn0gfSwKLXsgMHg4Y2VhLAkxNiwJezB4ZTQsIDB4MzQsIDB4MDMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4MzAsIDB4ZTAsIDB4MjAsIDB4ZWUsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YzYsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4OGNmYSwJMTYsCXsweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGUxLCAweGYwLCAweDdmLCAweDYwLCAweGVkLCAweDI0LCAweDA1LCAweGY1LCAweDgyfSB9LAoteyAweDhkMGEsCTE2LAl7MHhlNCwgMHgzYywgMHhmNSwgMHg4MywgMHhlMCwgMHg1ZiwgMHhiNSwgMHgwNywgMHhmMiwgMHhhZSwgMHgwNCwgMHhhZiwgMHgwNSwgMHhlZiwgMHgyNCwgMHgwNH0gfSwKLXsgMHg4ZDFhLAkxMiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4N2YsIDB4MDB9IH0sCi17IDB4OGQyNiwJMSwJezB4MjJ9IH0sCi17IDB4OGQyNywJNCwJezB4YWQsIDB4MDcsIDB4YWMsIDB4MDZ9IH0sCi17IDB4OGQyYiwJMTYsCXsweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweDE0LCAweGZlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweDAzLCAweDdmLCAweGZmLCAweDIyLCAweGVlfSB9LAoteyAweDhkM2IsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhhZiwgMHg4MiwgMHhmZSwgMHg4ZCwgMHg4Mn0gfSwKLXsgMHg4ZDRiLAkxNiwJezB4OGMsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4NjAsIDB4MGYsIDB4ZWYsIDB4MjQsIDB4MDQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTB9IH0sCi17IDB4OGQ1YiwJMTYsCXsweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDBkLCAweGVmLCAweDI0LCAweDA0LCAweGY1LCAweDgyLCAweGU0LCAweDNlLCAweGY1LCAweDgzLCAweGUwLCAweDU0fSB9LAoteyAweDhkNmIsCTQsCXsweGZlLCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDhkNmYsCTEsCXsweDIyfSB9LAoteyAweDhkNzAsCTQsCXsweGFkLCAweDA3LCAweGFjLCAweDA2fSB9LAoteyAweDhkNzQsCTE2LAl7MHg4ZCwgMHg4MiwgMHg4YywgMHg4MywgMHhlMCwgMHgxNCwgMHhmZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MCwgMHgwMywgMHg3ZiwgMHhmZiwgMHgyMiwgMHhlZX0gfSwKLXsgMHg4ZDg0LAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4OGQsIDB4ODJ9IH0sCi17IDB4OGQ5NCwJMTYsCXsweDhjLCAweDgzLCAweGEzLCAweGUwLCAweDYwLCAweDBkLCAweDhmLCAweDgyLCAweDhlLCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDQ0LCAweDQwfSB9LAoteyAweDhkYTQsCTE2LAl7MHhmMCwgMHg4MCwgMHgwYiwgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg4ZGI0LAkxLAl7MHgyMn0gfSwKLXsgMHg4ZGI1LAkxNiwJezB4OGYsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4MTQsIDB4ZmUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4YWZ9IH0sCi17IDB4OGRjNSwJMTYsCXsweDA2LCAweDc0LCAweDAxLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweDQyLCAweDNlLCAweDdmLCAweDAwfSB9LAoteyAweDhkZDUsCTEsCXsweDIyfSB9LAoteyAweDhkZDYsCTQsCXsweDhlLCAweDU3LCAweDhmLCAweDU4fSB9LAoteyAweDhkZGEsCTE2LAl7MHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhhMywgMHhlMCwgMHhmNSwgMHg1YywgMHg4ZiwgMHg4MiwgMHg4ZSwgMHg4MywgMHhlMCwgMHhmNSwgMHg1OSwgMHhkM30gfSwKLXsgMHg4ZGVhLAkxNiwJezB4OTQsIDB4MDQsIDB4NDAsIDB4MDMsIDB4N2YsIDB4ZmYsIDB4MjIsIDB4ZTUsIDB4NTksIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4MWZ9IH0sCi17IDB4OGRmYSwJMTYsCXsweDE0LCAweDYwLCAweDI4LCAweDI0LCAweDAzLCAweDcwLCAweDJlLCAweDdlLCAweDdlLCAweDdmLCAweDgwLCAweDc1LCAweDVhLCAweDdlLCAweDc1LCAweDVifSB9LAoteyAweDhlMGEsCTE2LAl7MHg4MCwgMHg4MCwgMHgyMiwgMHg3ZSwgMHg3ZSwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1YSwgMHg3ZSwgMHg3NSwgMHg1YiwgMHgwMCwgMHg4MCwgMHgxNiwgMHg3ZX0gfSwKLXsgMHg4ZTFhLAkxNiwJezB4N2QsIDB4N2YsIDB4ODAsIDB4NzUsIDB4NWEsIDB4N2QsIDB4NzUsIDB4NWIsIDB4ODAsIDB4ODAsIDB4MGEsIDB4N2UsIDB4N2QsIDB4N2YsIDB4MDAsIDB4NzV9IH0sCi17IDB4OGUyYSwJMTYsCXsweDVhLCAweDdkLCAweDc1LCAweDViLCAweDAwLCAweGU1LCAweDVjLCAweDcwLCAweDFiLCAweDg1LCAweDViLCAweDgyLCAweDg1LCAweDVhLCAweDgzLCAweDc0fSB9LAoteyAweDhlM2EsCTE2LAl7MHhmZiwgMHhmMCwgMHhlNSwgMHg1OSwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NH0gfSwKLXsgMHg4ZTRhLAkxNiwJezB4MDEsIDB4ZjAsIDB4ODAsIDB4NDgsIDB4ZTUsIDB4NTgsIDB4MjQsIDB4MDIsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4NTcsIDB4ZmUsIDB4ZTUsIDB4NWMsIDB4NjB9IH0sCi17IDB4OGU1YSwJMTYsCXsweDIzLCAweDBmLCAweGVmLCAweGFjLCAweDA2LCAweDcwLCAweDAxLCAweDBlLCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGUwLCAweGZkLCAweDA1fSB9LAoteyAweDhlNmEsCTE2LAl7MHg1YiwgMHhlNSwgMHg1YiwgMHhhYSwgMHg1YSwgMHg3MCwgMHgwMiwgMHgwNSwgMHg1YSwgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlZCwgMHhmMH0gfSwKLXsgMHg4ZTdhLAkxNiwJezB4MTUsIDB4NWMsIDB4ODAsIDB4ZDksIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4ZTUsIDB4NTksIDB4MjV9IH0sCi17IDB4OGU4YSwJMTQsCXsweGUwLCAweDI0LCAweGI1LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweDdmLCAweDAwfSB9LAoteyAweDhlOTgsCTEsCXsweDIyfSB9LAoteyAweDhlOTksCTE2LAl7MHhlZiwgMHgyNCwgMHgwNSwgMHhmNSwgMHg1OCwgMHhlNCwgMHgzZSwgMHhmNSwgMHg1NywgMHg5MCwgMHgwMSwgMHgzNSwgMHg3NCwgMHgwNywgMHhmMCwgMHg5MH0gfSwKLXsgMHg4ZWE5LAkxNiwJezB4MDEsIDB4N2EsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MzYsIDB4ZjAsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTN9IH0sCi17IDB4OGViOSwJMTYsCXsweGEzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweDhlLCAweDU5LCAweGY1LCAweDVhLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzfSB9LAoteyAweDhlYzksCTE2LAl7MHhlMCwgMHgyNCwgMHg5ZSwgMHg2MCwgMHg2MSwgMHgyNCwgMHhmOSwgMHg2MCwgMHgwZSwgMHgyNCwgMHhmMSwgMHg3MCwgMHgwMywgMHgwMiwgMHg4ZiwgMHg3YX0gfSwKLXsgMHg4ZWQ5LAkxNiwJezB4MjQsIDB4MTQsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OGYsIDB4YzgsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmV9IH0sCi17IDB4OGVlOSwJMTYsCXsweGEzLCAweGUwLCAweGZmLCAweGMzLCAweGU0LCAweDlmLCAweGY1LCAweDVjLCAweDc0LCAweDAxLCAweDllLCAweGY1LCAweDViLCAweGQzLCAweGU1LCAweDVjfSB9LAoteyAweDhlZjksCTE2LAl7MHg5NCwgMHgzZiwgMHhlNSwgMHg1YiwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwNiwgMHg3NSwgMHg1YiwgMHgwMCwgMHg3NSwgMHg1YywgMHgzZiwgMHhkMywgMHhlNX0gfSwKLXsgMHg4ZjA5LAkxNiwJezB4NWEsIDB4OTUsIDB4NWMsIDB4ZTUsIDB4NTksIDB4OTUsIDB4NWIsIDB4NTAsIDB4MDMsIDB4MDIsIDB4OGYsIDB4Y2IsIDB4YWUsIDB4NWIsIDB4YWYsIDB4NWN9IH0sCi17IDB4OGYxOSwJMTYsCXsweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGVlLCAweGYwLCAweGZlLCAweGEzLCAweGVmLCAweGYwLCAweDhlfSB9LAoteyAweDhmMjksCTE2LAl7MHg1OSwgMHhmNSwgMHg1YSwgMHgwMiwgMHg4ZiwgMHhjYiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhM30gfSwKLXsgMHg4ZjM5LAkxNiwJezB4ZTAsIDB4ZmYsIDB4YzMsIDB4NzQsIDB4MzAsIDB4OWYsIDB4ZjUsIDB4NWMsIDB4ZTQsIDB4OWUsIDB4ZjUsIDB4NWIsIDB4ZDMsIDB4ZTUsIDB4NWMsIDB4OTR9IH0sCi17IDB4OGY0OSwJMTYsCXsweDEwLCAweGU1LCAweDViLCAweDk0LCAweDAwLCAweDQwLCAweDA2LCAweDc1LCAweDViLCAweDAwLCAweDc1LCAweDVjLCAweDEwLCAweGQzLCAweGU1LCAweDVhfSB9LAoteyAweDhmNTksCTE2LAl7MHg5NSwgMHg1YywgMHhlNSwgMHg1OSwgMHg5NSwgMHg1YiwgMHg0MCwgMHg2YSwgMHhhZSwgMHg1YiwgMHhhZiwgMHg1YywgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NX0gfSwKLXsgMHg4ZjY5LAkxNiwJezB4NTcsIDB4ODMsIDB4YTMsIDB4YTMsIDB4YTMsIDB4ZWUsIDB4ZjAsIDB4ZmUsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4OGUsIDB4NTksIDB4ZjUsIDB4NWEsIDB4ODB9IH0sCi17IDB4OGY3OSwJMTYsCXsweDUxLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGMzLCAweGU0LCAweDlmfSB9LAoteyAweDhmODksCTE2LAl7MHhmNSwgMHg1YywgMHhlNCwgMHg5ZSwgMHhmNSwgMHg1YiwgMHg0NSwgMHg1YywgMHg2MCwgMHgwYiwgMHhkMywgMHhlNSwgMHg1YywgMHg5NCwgMHgzZiwgMHhlNX0gfSwKLXsgMHg4Zjk5LAkxNiwJezB4NWIsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDYsIDB4NzUsIDB4NWIsIDB4MDAsIDB4NzUsIDB4NWMsIDB4M2YsIDB4ZDMsIDB4ZTUsIDB4NWEsIDB4OTUsIDB4NWN9IH0sCi17IDB4OGZhOSwJMTYsCXsweGU1LCAweDU5LCAweDk1LCAweDViLCAweDQwLCAweDFjLCAweGFlLCAweDViLCAweGFmLCAweDVjLCAweDg1LCAweDU4LCAweDgyLCAweDg1LCAweDU3LCAweDgzfSB9LAoteyAweDhmYjksCTE2LAl7MHhhMywgMHhhMywgMHhhMywgMHhlZSwgMHhmMCwgMHhmZSwgMHhhMywgMHhlZiwgMHhmMCwgMHg4ZSwgMHg1OSwgMHhmNSwgMHg1YSwgMHg4MCwgMHgwMywgMHg3Zn0gfSwKLXsgMHg4ZmM5LAkxNiwJezB4MDEsIDB4MjIsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4ZTAsIDB4MjQsIDB4OWUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4OTAsIDB4OGJ9IH0sCi17IDB4OGZkOSwJMTYsCXsweDI0LCAweGY5LCAweDYwLCAweDU4LCAweDI0LCAweGYxLCAweDcwLCAweDAzLCAweDAyLCAweDkwLCAweGRiLCAweDI0LCAweDE0LCAweDYwLCAweDAzLCAweDAyfSB9LAoteyAweDhmZTksCTE2LAl7MHg5MSwgMHgxZiwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZSwgMHhhMywgMHhlMCwgMHhmZiwgMHhkMywgMHg5NH0gfSwKLXsgMHg4ZmY5LAkxNiwJezB4ZmYsIDB4ZWUsIDB4OTQsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4OTEsIDB4MWYsIDB4OTAsIDB4MDEsIDB4NzUsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NWF9IH0sCi17IDB4OTAwOSwJMTYsCXsweDE1LCAweDVhLCAweGFlLCAweDU5LCAweDcwLCAweDAyLCAweDE1LCAweDU5LCAweDRlLCAweDcwLCAweDAzLCAweDAyLCAweDkxLCAweDFmLCAweDkwLCAweDAxfSB9LAoteyAweDkwMTksCTE2LAl7MHg3NSwgMHhlMCwgMHhmZiwgMHgwNCwgMHhmMCwgMHhhOCwgMHgwNywgMHhlNiwgMHhmZiwgMHg5MCwgMHgwMSwgMHg3YSwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMX0gfSwKLXsgMHg5MDI5LAkxNiwJezB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4ZDIsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODV9IH0sCi17IDB4OTAzOSwJMTYsCXsweDU3LCAweDgzLCAweGEzLCAweGUwLCAweGZlLCAweGEzLCAweGUwLCAweGZmLCAweGMzLCAweDk0LCAweDgwLCAweGVlLCAweDk0LCAweDAwLCAweDUwLCAweDAzfSB9LAoteyAweDkwNDksCTE2LAl7MHgwMiwgMHg5MSwgMHgxZiwgMHhkMywgMHhlZiwgMHg5NCwgMHhmZiwgMHhlZSwgMHg5NCwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5MSwgMHgxZiwgMHg5MH0gfSwKLXsgMHg5MDU5LAkxNiwJezB4MDEsIDB4NzYsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4MTUsIDB4NWEsIDB4YWUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTksIDB4NGUsIDB4NzB9IH0sCi17IDB4OTA2OSwJMTYsCXsweDAzLCAweDAyLCAweDkxLCAweDFmLCAweDkwLCAweDAxLCAweDc2LCAweGUwLCAweGZmLCAweDA0LCAweGYwLCAweGE4LCAweDA3LCAweGU2LCAweGZmLCAweDkwfSB9LAoteyAweDkwNzksCTE2LAl7MHgwMSwgMHg3YSwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4MiwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMH0gfSwKLXsgMHg5MDg5LAkxNiwJezB4ODAsIDB4ZDIsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4YzMsIDB4OTR9IH0sCi17IDB4OTA5OSwJMTYsCXsweDIwLCAweGVlLCAweDk0LCAweDAwLCAweDUwLCAweDAzLCAweDAyLCAweDkxLCAweDFmLCAweGQzLCAweGVmLCAweDk0LCAweDJmLCAweGVlLCAweDk0LCAweDAwfSB9LAoteyAweDkwYTksCTE2LAl7MHg1MCwgMHg3NCwgMHg5MCwgMHgwMSwgMHg3NywgMHhlZiwgMHhmMCwgMHhlNSwgMHg1YSwgMHgxNSwgMHg1YSwgMHhhZSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNX0gfSwKLXsgMHg5MGI5LAkxNiwJezB4NTksIDB4NGUsIDB4NjAsIDB4NjIsIDB4OTAsIDB4MDEsIDB4NzcsIDB4ZTAsIDB4ZmYsIDB4MDQsIDB4ZjAsIDB4YTgsIDB4MDcsIDB4ZTYsIDB4ZmYsIDB4OTB9IH0sCi17IDB4OTBjOSwJMTYsCXsweDAxLCAweDdhLCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1LCAweDgzLCAweGVmLCAweGYwfSB9LAoteyAweDkwZDksCTE2LAl7MHg4MCwgMHhkNSwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhhMywgMHhlMCwgMHhmZiwgMHhhMywgMHhlMCwgMHg5MCwgMHgwMSwgMHg3OH0gfSwKLXsgMHg5MGU5LAkxNiwJezB4Y2YsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4NWEsIDB4MTUsIDB4NWEsIDB4YWUsIDB4NTksIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTksIDB4NGV9IH0sCi17IDB4OTBmOSwJMTYsCXsweDYwLCAweDI0LCAweDkwLCAweDAxLCAweDc4LCAweGU0LCAweDc1LCAweGYwLCAweDAxLCAweDEyLCAweGEyLCAweDk3LCAweDg1LCAweGYwLCAweDgyLCAweGY1fSB9LAoteyAweDkxMDksCTE2LAl7MHg4MywgMHhlMCwgMHhmZiwgMHg5MCwgMHgwMSwgMHg3YSwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg5NywgMHg4NSwgMHhmMCwgMHg4Mn0gfSwKLXsgMHg5MTE5LAkxNiwJezB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODAsIDB4Y2YsIDB4N2UsIDB4MDEsIDB4N2YsIDB4MzUsIDB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODN9IH0sCi17IDB4OTEyOSwJMTMsCXsweGEzLCAweGEzLCAweGEzLCAweGUwLCAweGEzLCAweGUwLCAweDA0LCAweGZkLCAweDEyLCAweDkxLCAweDZhLCAweDdmLCAweDAwfSB9LAoteyAweDkxMzYsCTEsCXsweDIyfSB9LAoteyAweDkxMzcsCTE2LAl7MHg4ZSwgMHg2MiwgMHg4ZiwgMHg2MywgMHg4YywgMHg2NCwgMHg4ZCwgMHg2NSwgMHhhZiwgMHgwMywgMHgxYiwgMHhlZiwgMHg2MCwgMHgyNCwgMHgwNSwgMHg2M30gfSwKLXsgMHg5MTQ3LAkxNiwJezB4ZTUsIDB4NjMsIDB4YWUsIDB4NjIsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NjIsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4MDV9IH0sCi17IDB4OTE1NywJMTYsCXsweDY1LCAweGU1LCAweDY1LCAweGFjLCAweDY0LCAweDcwLCAweDAyLCAweDA1LCAweDY0LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwfSB9LAoteyAweDkxNjcsCTMsCXsweDgwLCAweGQ2LCAweDIyfSB9LAoteyAweDkxNmEsCTYsCXsweDhkLCAweDVkLCAweGFiLCAweDA3LCAweGFhLCAweDA2fSB9LAoteyAweDkxNzAsCTE2LAl7MHg3NSwgMHg2MSwgMHg0MCwgMHg3NSwgMHg2MCwgMHgwZCwgMHg3NSwgMHg1ZiwgMHgwMywgMHg3NSwgMHg1ZSwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhjMiwgMHhlMH0gfSwKLXsgMHg5MTgwLAkxNiwJezB4MjAsIDB4ZTEsIDB4ZjksIDB4YWYsIDB4NjEsIDB4YWUsIDB4NjAsIDB4YWQsIDB4NWYsIDB4YWMsIDB4NWUsIDB4ZWMsIDB4NGQsIDB4NGUsIDB4NGYsIDB4NzB9IH0sCi17IDB4OTE5MCwJMTYsCXsweDA4LCAweDkwLCAweDdmLCAweGMyLCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweGQ3LCAweDkwLCAweDdmLCAweGMyLCAweGUwLCAweDIwLCAweGUxLCAweDE2fSB9LAoteyAweDkxYTAsCTE2LAl7MHhhZiwgMHgwMywgMHhhZSwgMHgwMiwgMHg3YywgMHg3YiwgMHg3ZCwgMHg4MCwgMHhhYiwgMHg1ZCwgMHgxMiwgMHg5MSwgMHgzNywgMHg5MCwgMHg3ZiwgMHhjM30gfSwKLXsgMHg5MWIwLAk4LAl7MHhlNSwgMHg1ZCwgMHhmMCwgMHg3ZiwgMHgwMSwgMHgyMiwgMHg3ZiwgMHgwMH0gfSwKLXsgMHg5MWI4LAkxLAl7MHgyMn0gfSwKLXsgMHg5MWI5LAkxNiwJezB4OTAsIDB4MDEsIDB4ODQsIDB4NzQsIDB4MGIsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4MzMsIDB4ZjAsIDB4OTAsIDB4MGEsIDB4ZjUsIDB4ZTQsIDB4OTMsIDB4OTB9IH0sCi17IDB4OTFjOSwJMTYsCXsweDAxLCAweDg2LCAweGYwLCAweDkwLCAweDBhLCAweGY2LCAweGU0LCAweDkzLCAweDkwLCAweDAxLCAweDg3LCAweGYwLCAweGU0LCAweDkwLCAweDAxLCAweDdjfSB9LAoteyAweDkxZDksCTE2LAl7MHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHg3NCwgMHgxMCwgMHhmMCwgMHhhMywgMHg3NCwgMHgwMX0gfSwKLXsgMHg5MWU5LAkxNiwJezB4ZjAsIDB4YTMsIDB4NzQsIDB4ODgsIDB4ZjAsIDB4N2UsIDB4MDEsIDB4N2YsIDB4N2MsIDB4MTIsIDB4MTksIDB4YzEsIDB4N2UsIDB4MDEsIDB4N2YsIDB4ODR9IH0sCi17IDB4OTFmOSwJNywJezB4N2QsIDB4MTQsIDB4MTIsIDB4OTEsIDB4NmEsIDB4N2YsIDB4MDB9IH0sCi17IDB4OTIwMCwJMSwJezB4MjJ9IH0sCi17IDB4OTIwMSwJMTYsCXsweDdlLCAweDdiLCAweDdmLCAweDQwLCAweDc1LCAweDRlLCAweDdiLCAweDc1LCAweDRmLCAweDQwLCAweDkwLCAweDdmLCAweGQzLCAweGUwLCAweGZmLCAweDg1fSB9LAoteyAweDkyMTEsCTE2LAl7MHg0ZSwgMHg1MSwgMHg4NSwgMHg0ZiwgMHg1MiwgMHhlNSwgMHg1MiwgMHgyNCwgMHgwMSwgMHhmNSwgMHg1NiwgMHhlNCwgMHgzNSwgMHg1MSwgMHhmNSwgMHg1NX0gfSwKLXsgMHg5MjIxLAkxNiwJezB4ZTQsIDB4ZjUsIDB4NTAsIDB4ODUsIDB4NTIsIDB4ODIsIDB4ODUsIDB4NTEsIDB4ODMsIDB4ZTAsIDB4ZmUsIDB4MTQsIDB4YjQsIDB4MGMsIDB4MDAsIDB4NTB9IH0sCi17IDB4OTIzMSwJMTYsCXsweDViLCAweDkwLCAweDkyLCAweDM5LCAweGY4LCAweDI4LCAweDI4LCAweDczLCAweDAyLCAweDkyLCAweDVkLCAweDAyLCAweDkyLCAweDVkLCAweDAyLCAweDkyfSB9LAoteyAweDkyNDEsCTE2LAl7MHg2NywgMHgwMiwgMHg5MiwgMHg3MSwgMHgwMiwgMHg5MiwgMHg3MSwgMHgwMiwgMHg5MiwgMHg3MSwgMHgwMiwgMHg5MiwgMHg4NSwgMHgwMiwgMHg5MiwgMHg1ZH0gfSwKLXsgMHg5MjUxLAkxNiwJezB4MDIsIDB4OTIsIDB4N2IsIDB4MDIsIDB4OTIsIDB4NWQsIDB4MDIsIDB4OTIsIDB4OGQsIDB4MDIsIDB4OTIsIDB4NWQsIDB4ZWYsIDB4NjQsIDB4MDIsIDB4NjB9IH0sCi17IDB4OTI2MSwJMTYsCXsweDJiLCAweDc1LCAweDUwLCAweGZmLCAweDgwLCAweDI2LCAweGVmLCAweDY0LCAweDBlLCAweDYwLCAweDIxLCAweDc1LCAweDUwLCAweGZmLCAweDgwLCAweDFjfSB9LAoteyAweDkyNzEsCTE2LAl7MHhlZiwgMHg2NCwgMHgwMywgMHg2MCwgMHgxNywgMHg3NSwgMHg1MCwgMHhmZiwgMHg4MCwgMHgxMiwgMHhlZiwgMHg2NCwgMHgwMywgMHg2MCwgMHgwZCwgMHg3NX0gfSwKLXsgMHg5MjgxLAkxNiwJezB4NTAsIDB4ZmYsIDB4ODAsIDB4MDgsIDB4ZWYsIDB4NjQsIDB4MDYsIDB4NjAsIDB4MDMsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ZTUsIDB4NTAsIDB4NjAsIDB4MTV9IH0sCi17IDB4OTI5MSwJMTYsCXsweDkwLCAweDAxLCAweDk4LCAweDc0LCAweDExLCAweGYwLCAweGEzLCAweGVlLCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDk4LCAweDdkLCAweDAyLCAweDEyfSB9LAoteyAweDkyYTEsCTE2LAl7MHg5MSwgMHg2YSwgMHhhZiwgMHg1MCwgMHgyMiwgMHhlNCwgMHhmNSwgMHg1MCwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MSwgMHg4MywgMHhlMCwgMHgxNH0gfSwKLXsgMHg5MmIxLAkxNiwJezB4YjQsIDB4MGYsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4OTMsIDB4Y2YsIDB4OTAsIDB4OTIsIDB4YzAsIDB4ZjgsIDB4MjgsIDB4MjgsIDB4NzMsIDB4MDJ9IH0sCi17IDB4OTJjMSwJMTYsCXsweDkyLCAweGVkLCAweDAyLCAweDkyLCAweGY5LCAweDAyLCAweDkzLCAweDA1LCAweDAyLCAweDkzLCAweDUzLCAweDAyLCAweDkzLCAweDVlLCAweDAyLCAweDkzfSB9LAoteyAweDkyZDEsCTE2LAl7MHg2OSwgMHgwMiwgMHg5MywgMHg3NCwgMHgwMiwgMHg5MywgMHg3ZiwgMHgwMiwgMHg5MywgMHg4YSwgMHgwMiwgMHg5MywgMHg5NSwgMHgwMiwgMHg5MywgMHhhMH0gfSwKLXsgMHg5MmUxLAkxNiwJezB4MDIsIDB4OTMsIDB4YTcsIDB4MDIsIDB4OTMsIDB4Y2YsIDB4MDIsIDB4OTMsIDB4YjIsIDB4MDIsIDB4OTMsIDB4YmQsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTV9IH0sCi17IDB4OTJmMSwJMTYsCXsweDEyLCAweDg0LCAweDQxLCAweDhmLCAweDUwLCAweDAyLCAweDkzLCAweGQyLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDg1LCAweDYxLCAweDhmfSB9LAoteyAweDkzMDEsCTE2LAl7MHg1MCwgMHgwMiwgMHg5MywgMHhkMiwgMHg4NSwgMHg1NSwgMHg1MywgMHg4NSwgMHg1NiwgMHg1NCwgMHhlNSwgMHg1NCwgMHgyNCwgMHgwMSwgMHhmZiwgMHhlNH0gfSwKLXsgMHg5MzExLAkxNiwJezB4MzUsIDB4NTMsIDB4ZmUsIDB4MTIsIDB4ODYsIDB4YmUsIDB4YWYsIDB4NTQsIDB4YWUsIDB4NTMsIDB4MTIsIDB4ODcsIDB4NTEsIDB4OGYsIDB4NTAsIDB4ZWZ9IH0sCi17IDB4OTMyMSwJMTYsCXsweDY0LCAweDAxLCAweDYwLCAweDAzLCAweDAyLCAweDkzLCAweGQyLCAweGFmLCAweDU0LCAweGFlLCAweDUzLCAweDEyLCAweDg3LCAweGE2LCAweDhmLCAweDUwfSB9LAoteyAweDkzMzEsCTE2LAl7MHhlNSwgMHg1MCwgMHg3MCwgMHgwMywgMHgwMiwgMHg5MywgMHhkMiwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1MywgMHg4MywgMHhlMCwgMHg3NSwgMHhmMH0gfSwKLXsgMHg5MzQxLAkxNiwJezB4MGQsIDB4YTQsIDB4MjQsIDB4ZjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDIsIDB4YWYsIDB4ODIsIDB4ZmUsIDB4MTIsIDB4ODcsIDB4YTYsIDB4MDJ9IH0sCi17IDB4OTM1MSwJMTYsCXsweDkzLCAweGQyLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhjLCAweGE2LCAweDhmLCAweDUwLCAweDgwLCAweDc0LCAweGFmLCAweDU2LCAweGFlfSB9LAoteyAweDkzNjEsCTE2LAl7MHg1NSwgMHgxMiwgMHg4ZCwgMHgyNywgMHg4ZiwgMHg1MCwgMHg4MCwgMHg2OSwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4ZCwgMHg3MCwgMHg4Zn0gfSwKLXsgMHg5MzcxLAkxNiwJezB4NTAsIDB4ODAsIDB4NWUsIDB4YWYsIDB4NGYsIDB4YWUsIDB4NGUsIDB4MTIsIDB4OGUsIDB4OTksIDB4OGYsIDB4NTAsIDB4ODAsIDB4NTMsIDB4YWYsIDB4NTZ9IH0sCi17IDB4OTM4MSwJMTYsCXsweGFlLCAweDU1LCAweDEyLCAweDhiLCAweGJkLCAweDhmLCAweDUwLCAweDgwLCAweDQ4LCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDg2LCAweDJkfSB9LAoteyAweDkzOTEsCTE2LAl7MHg4ZiwgMHg1MCwgMHg4MCwgMHgzZCwgMHhhZiwgMHg1NiwgMHhhZSwgMHg1NSwgMHgxMiwgMHg4YywgMHg2MiwgMHg4ZiwgMHg1MCwgMHg4MCwgMHgzMiwgMHgxMn0gfSwKLXsgMHg5M2ExLAkxNiwJezB4OTEsIDB4YjksIDB4OGYsIDB4NTAsIDB4ODAsIDB4MmIsIDB4YWYsIDB4NTYsIDB4YWUsIDB4NTUsIDB4MTIsIDB4OGQsIDB4YjUsIDB4OGYsIDB4NTAsIDB4ODB9IH0sCi17IDB4OTNiMSwJMTYsCXsweDIwLCAweGFmLCAweDU2LCAweGFlLCAweDU1LCAweDEyLCAweDhkLCAweGQ2LCAweDhmLCAweDUwLCAweDgwLCAweDE1LCAweGFmLCAweDRmLCAweGFlLCAweDRlfSB9LAoteyAweDkzYzEsCTE2LAl7MHg3YywgMHgwMiwgMHg3ZCwgMHhhZiwgMHg3YiwgMHg0MCwgMHgxMiwgMHg5MSwgMHgzNywgMHhlNCwgMHhmNSwgMHg1MCwgMHg4MCwgMHgwMywgMHg3NSwgMHg1MH0gfSwKLXsgMHg5M2QxLAkxNiwJezB4ZmYsIDB4ZTUsIDB4NTAsIDB4NjAsIDB4MWQsIDB4OTAsIDB4MDEsIDB4OTgsIDB4NzQsIDB4MTEsIDB4ZjAsIDB4ODUsIDB4NTIsIDB4ODIsIDB4ODUsIDB4NTF9IH0sCi17IDB4OTNlMSwJMTYsCXsweDgzLCAweGUwLCAweDkwLCAweDAxLCAweDk5LCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDk4LCAweDdkLCAweDAyLCAweDEyLCAweDkxLCAweDZhLCAweGFmfSB9LAoteyAweDkzZjEsCTE2LAl7MHg1MCwgMHgyMiwgMHg4NSwgMHg1MiwgMHg4MiwgMHg4NSwgMHg1MSwgMHg4MywgMHhlMCwgMHhmZiwgMHgxNCwgMHgyNCwgMHhmYSwgMHg1MCwgMHgwNCwgMHgyNH0gfSwKLXsgMHg5NDAxLAkxNiwJezB4ZmUsIDB4NzAsIDB4MWYsIDB4OTAsIDB4MDEsIDB4OTgsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODV9IH0sCi17IDB4OTQxMSwJMTYsCXsweDU1LCAweDgzLCAweGUwLCAweDkwLCAweDAxLCAweDlhLCAweGYwLCAweDdlLCAweDAxLCAweDdmLCAweDk4LCAweDdkLCAweDAzLCAweDEyLCAweDkxLCAweDZhfSB9LAoteyAweDk0MjEsCTQsCXsweDhmLCAweDUwLCAweGFmLCAweDUwfSB9LAoteyAweDk0MjUsCTEsCXsweDIyfSB9LAoteyAweDk0MjYsCTgsCXsweDhmLCAweDUxLCAweDhlLCAweDUwLCAweDhkLCAweDRmLCAweDhjLCAweDRlfSB9LAoteyAweDk0MmUsCTE2LAl7MHg3NSwgMHg1OCwgMHgwMSwgMHg3NSwgMHg1OSwgMHg5YywgMHhlNCwgMHhmNSwgMHg1NywgMHhhZiwgMHg1MywgMHgxNSwgMHg1MywgMHhlZiwgMHg3MCwgMHgwM30gfSwKLXsgMHg5NDNlLAkxNiwJezB4MDIsIDB4OTQsIDB4YzQsIDB4YWYsIDB4NTIsIDB4ZTQsIDB4ZmMsIDB4ZmQsIDB4ZmUsIDB4ZjgsIDB4ZjksIDB4ZmEsIDB4YWIsIDB4MDcsIDB4YWYsIDB4NTF9IH0sCi17IDB4OTQ0ZSwJMTYsCXsweGFlLCAweDUwLCAweGFkLCAweDRmLCAweGFjLCAweDRlLCAweDEyLCAweGEzLCAweDIxLCAweGFmLCAweDAzLCAweDhmLCAweDU2LCAweGFmLCAweDUxLCAweGFlfSB9LAoteyAweDk0NWUsCTE2LAl7MHg1MCwgMHhhZCwgMHg0ZiwgMHhhYywgMHg0ZSwgMHhjMCwgMHgwNCwgMHhjMCwgMHgwNSwgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHhhZiwgMHg1MiwgMHhlNH0gfSwKLXsgMHg5NDZlLAkxNiwJezB4ZmMsIDB4ZmQsIDB4ZmUsIDB4ZjgsIDB4ZjksIDB4ZmEsIDB4YWIsIDB4MDcsIDB4ZDAsIDB4MDcsIDB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDUsIDB4ZDAsIDB4MDR9IH0sCi17IDB4OTQ3ZSwJMTYsCXsweDEyLCAweGEzLCAweDIxLCAweDhmLCAweDUxLCAweDhlLCAweDUwLCAweDhkLCAweDRmLCAweDhjLCAweDRlLCAweGU1LCAweDU2LCAweDI0LCAweDMwLCAweGY1fSB9LAoteyAweDk0OGUsCTE2LAl7MHg1NiwgMHhkMywgMHg5NCwgMHgzOSwgMHg0MCwgMHgwNiwgMHg3NCwgMHgwNywgMHgyNSwgMHg1NiwgMHhmNSwgMHg1NiwgMHgwNSwgMHg1OSwgMHhlNSwgMHg1OX0gfSwKLXsgMHg5NDllLAkxNiwJezB4YWUsIDB4NTgsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTgsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MDUsIDB4NTksIDB4ZTV9IH0sCi17IDB4OTRhZSwJMTYsCXsweDU5LCAweGFlLCAweDU4LCAweDcwLCAweDAyLCAweDA1LCAweDU4LCAweDE0LCAweGY1LCAweDgyLCAweDhlLCAweDgzLCAweGU1LCAweDU2LCAweGYwLCAweDA1fSB9LAoteyAweDk0YmUsCTE2LAl7MHg1NywgMHgwNSwgMHg1NywgMHgwMiwgMHg5NCwgMHgzNywgMHhlNSwgMHg1OSwgMHgxNSwgMHg1OSwgMHg3MCwgMHgwMiwgMHgxNSwgMHg1OCwgMHhhZiwgMHg1N30gfSwKLXsgMHg5NGNlLAkxNiwJezB4MTUsIDB4NTcsIDB4ZWYsIDB4NjAsIDB4MjMsIDB4ZTUsIDB4NTksIDB4MTUsIDB4NTksIDB4YWUsIDB4NTgsIDB4NzAsIDB4MDIsIDB4MTUsIDB4NTgsIDB4ZjV9IH0sCi17IDB4OTRkZSwJMTYsCXsweDgyLCAweDhlLCAweDgzLCAweGUwLCAweGZmLCAweDA1LCAweDU1LCAweGU1LCAweDU1LCAweGFjLCAweDU0LCAweDcwLCAweDAyLCAweDA1LCAweDU0LCAweDE0fSB9LAoteyAweDk0ZWUsCTgsCXsweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDgwLCAweGQ2fSB9LAoteyAweDk0ZjYsCTEsCXsweDIyfSB9LAoteyAweDk0ZjcsCTE2LAl7MHhlNCwgMHg5MCwgMHgwMSwgMHhjOSwgMHhmMCwgMHg3ZSwgMHgwMSwgMHg3ZiwgMHhjYSwgMHg5MCwgMHgwMSwgMHhiZSwgMHhlZSwgMHhmMCwgMHhhMywgMHhlZn0gfSwKLXsgMHg5NTA3LAkxMCwJezB4ZjAsIDB4OTAsIDB4MDEsIDB4YzIsIDB4ZWUsIDB4ZjAsIDB4YTMsIDB4ZWYsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4OTUxMSwJMTYsCXsweGFhLCAweDA3LCAweGE5LCAweDA1LCAweDkwLCAweDAxLCAweGM5LCAweGUwLCAweGMzLCAweDk0LCAweDQwLCAweDUwLCAweDYxLCAweGFjLCAweDAyLCAweDc0fSB9LAoteyAweDk1MjEsCTE2LAl7MHgwMSwgMHg3ZSwgMHgwMCwgMHhhOCwgMHgwNCwgMHgwOCwgMHg4MCwgMHgwNSwgMHhjMywgMHgzMywgMHhjZSwgMHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZn0gfSwKLXsgMHg5NTMxLAkxNiwJezB4ZTQsIDB4ZWYsIDB4NTUsIDB4MzQsIDB4NjAsIDB4NDUsIDB4ZWEsIDB4MDQsIDB4ZmYsIDB4OTAsIDB4MDEsIDB4YzIsIDB4ZTAsIDB4ZmMsIDB4YTMsIDB4ZTB9IH0sCi17IDB4OTU0MSwJMTYsCXsweGZkLCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweGEzLCAweGU5LCAweGYwLCAweDhkLCAweDgyLCAweDhjLCAweDgzLCAweGEzLCAweGEzfSB9LAoteyAweDk1NTEsCTE2LAl7MHhlYiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMiwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMywgMHgxMiwgMHhhMiwgMHg4MSwgMHhmYywgMHhkMywgMHhlNSwgMHhmMH0gfSwKLXsgMHg5NTYxLAkxNiwJezB4OTQsIDB4ODcsIDB4ZWMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4MGEsIDB4OTAsIDB4MDEsIDB4YzIsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4Y2F9IH0sCi17IDB4OTU3MSwJMTYsCXsweGYwLCAweGMyLCAweGFmLCAweDkwLCAweDAxLCAweGM5LCAweGUwLCAweDA0LCAweGYwLCAweGQyLCAweGFmLCAweDdmLCAweDAxLCAweDIyLCAweDdmLCAweDAwfSB9LAoteyAweDk1ODEsCTEsCXsweDIyfSB9LAoteyAweDk1ODIsCTE2LAl7MHg5MCwgMHgwMSwgMHhjOSwgMHhlMCwgMHhkMywgMHg5NCwgMHgwMCwgMHg0MCwgMHg1NSwgMHg5MCwgMHgwMSwgMHhiZSwgMHhlMCwgMHhmYywgMHhhMywgMHhlMH0gfSwKLXsgMHg5NTkyLAkxNiwJezB4YWEsIDB4MDQsIDB4ZjksIDB4N2IsIDB4MDEsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDEsIDB4YWEsIDB4MDYsIDB4YTksIDB4MDcsIDB4YTh9IH0sCi17IDB4OTVhMiwJMTYsCXsweDAxLCAweGFjLCAweDAyLCAweGFkLCAweDAzLCAweGQwLCAweDAxLCAweGQwLCAweDAyLCAweGQwLCAweDAzLCAweDdlLCAweDAwLCAweDdmLCAweDAzLCAweDEyfSB9LAoteyAweDk1YjIsCTE2LAl7MHhhMiwgMHgxMiwgMHg5MCwgMHgwMSwgMHhiZSwgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMywgMHgxMiwgMHhhMiwgMHg4MSwgMHhmYywgMHhkMywgMHhlNSwgMHhmMH0gfSwKLXsgMHg5NWMyLAkxNiwJezB4OTQsIDB4ODcsIDB4ZWMsIDB4OTQsIDB4MDIsIDB4NDAsIDB4MGEsIDB4OTAsIDB4MDEsIDB4YmUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4Y2F9IH0sCi17IDB4OTVkMiwJMTYsCXsweGYwLCAweGMyLCAweGFmLCAweDkwLCAweDAxLCAweGM5LCAweGUwLCAweDE0LCAweGYwLCAweGQyLCAweGFmLCAweDdmLCAweDAxLCAweDIyLCAweDdmLCAweDAwfSB9LAoteyAweDk1ZTIsCTEsCXsweDIyfSB9LAoteyAweDk1ZTMsCTE2LAl7MHg5MCwgMHg3ZiwgMHhjMiwgMHhlMCwgMHgyMCwgMHhlMSwgMHg3MywgMHg3ZSwgMHg3YiwgMHg3ZiwgMHg4MCwgMHg3NSwgMHg1MywgMHg3YiwgMHg3NSwgMHg1NH0gfSwKLXsgMHg5NWYzLAkxNiwJezB4ODAsIDB4ZTUsIDB4NTQsIDB4MjQsIDB4MDEsIDB4ZmYsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4YTksIDB4MDcsIDB4N2IsIDB4MDEsIDB4OGIsIDB4NTUsIDB4ZjV9IH0sCi17IDB4OTYwMywJMTYsCXsweDU2LCAweDg5LCAweDU3LCAweGZlLCAweDEyLCAweDk1LCAweDgyLCAweGVmLCAweDYwLCAweDUwLCAweGFiLCAweDU1LCAweGFhLCAweDU2LCAweGE5LCAweDU3fSB9LAoteyAweDk2MTMsCTE2LAl7MHgxMiwgMHhhMiwgMHgzYiwgMHgxNCwgMHhmZiwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHhhMiwgMHg1NCwgMHhiNCwgMHgwMiwgMHgxNiwgMHhjMiwgMHhhZn0gfSwKLXsgMHg5NjIzLAkxNiwJezB4ZWYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NDR9IH0sCi17IDB4OTYzMywJMTYsCXsweDA0LCAweGYwLCAweGQyLCAweGFmLCAweDc0LCAweDAxLCAweDdlLCAweDAwLCAweGE4LCAweDA3LCAweDA4LCAweDgwLCAweDA1LCAweGMzLCAweDMzLCAweGNlfSB9LAoteyAweDk2NDMsCTE2LAl7MHgzMywgMHhjZSwgMHhkOCwgMHhmOSwgMHhmZiwgMHhlNCwgMHhlZiwgMHg1NSwgMHgzNCwgMHg2MCwgMHgwZiwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1M30gfSwKLXsgMHg5NjUzLAkxMCwJezB4ODMsIDB4NzQsIDB4MGQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzMsIDB4NzQsIDB4MDQsIDB4ZjB9IH0sCi17IDB4OTY1ZCwJMSwJezB4MjJ9IH0sCi17IDB4OTY1ZSwJMTYsCXsweDEyLCAweDk1LCAweGUzLCAweGU0LCAweGY1LCAweDRlLCAweDc0LCAweDNhLCAweDI1LCAweDRlLCAweGY4LCAweGU2LCAweDU0LCAweGYwLCAweGY1LCAweDRmfSB9LAoteyAweDk2NmUsCTE2LAl7MHg3NCwgMHhjNSwgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2NSwgMHg0ZiwgMHhmZiwgMHhjNH0gfSwKLXsgMHg5NjdlLAkxNiwJezB4NTQsIDB4MGYsIDB4ZjUsIDB4NTAsIDB4NjAsIDB4MjIsIDB4NzQsIDB4YzUsIDB4MjUsIDB4NGUsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MDEsIDB4ZjV9IH0sCi17IDB4OTY4ZSwJMTYsCXsweDgzLCAweGU1LCAweDRmLCAweGYwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweGU1LCAweDRmLCAweDQ1LCAweDUwLCAweGZiLCAweDEyLCAweDk1LCAweDExfSB9LAoteyAweDk2OWUsCTE2LAl7MHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlMywgMHg4MCwgMHhlYywgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhjMywgMHg5NCwgMHgwNCwgMHg0MH0gfSwKLXsgMHg5NmFlLAkxNiwJezB4YjUsIDB4MTIsIDB4OTUsIDB4ZTMsIDB4ZTUsIDB4M2UsIDB4NjAsIDB4NDgsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4YWYsIDB4NGUsIDB4NzQsIDB4MDEsIDB4YTh9IH0sCi17IDB4OTZiZSwJMTYsCXsweDA3LCAweDA4LCAweDgwLCAweDAyLCAweGMzLCAweDMzLCAweGQ4LCAweGZjLCAweGY1LCAweDRmLCAweDU1LCAweDNlLCAweDYwLCAweDI5LCAweGU1LCAweDRlfSB9LAoteyAweDk2Y2UsCTE2LAl7MHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwNSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgyMCwgMHhmNSwgMHg4MywgMHhlMCwgMHgzMCwgMHhlNn0gfSwKLXsgMHg5NmRlLAkxNiwJezB4MTYsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDQsIDB4N2IsIDB4ODAsIDB4MTIsIDB4OTUsIDB4MTEsIDB4ZWYsIDB4NzAsIDB4MDUsIDB4MTIsIDB4OTUsIDB4ZTN9IH0sCi17IDB4OTZlZSwJMTYsCXsweDgwLCAweGVmLCAweGU1LCAweDRmLCAweGY0LCAweDUyLCAweDNlLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGMzLCAweDk0LCAweDA0LCAweDQwLCAweGJifSB9LAoteyAweDk2ZmUsCTE2LAl7MHg5MCwgMHgwMywgMHgwMCwgMHhlMCwgMHg2MCwgMHgwMywgMHgwMiwgMHg5NywgMHhkZiwgMHg3NCwgMHgxOSwgMHhmMCwgMHhlNSwgMHgzMywgMHhjMywgMHg5NH0gfSwKLXsgMHg5NzBlLAkxNiwJezB4MDEsIDB4NDAsIDB4MGQsIDB4OTAsIDB4MjAsIDB4NzgsIDB4ZTAsIDB4NTQsIDB4MGYsIDB4NzUsIDB4NTEsIDB4MDAsIDB4ZjUsIDB4NTIsIDB4ODAsIDB4MDl9IH0sCi17IDB4OTcxZSwJMTYsCXsweDdmLCAweDAyLCAweDEyLCAweDExLCAweDI3LCAweDhlLCAweDUxLCAweDhmLCAweDUyLCAweGMzLCAweGU1LCAweDUxLCAweDY0LCAweDgwLCAweDk0LCAweDgwfSB9LAoteyAweDk3MmUsCTE2LAl7MHg0MCwgMHhkYSwgMHg5MCwgMHgwMSwgMHhiYywgMHhlMCwgMHg2NSwgMHg1MiwgMHhmMCwgMHg2MCwgMHgzNywgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZX0gfSwKLXsgMHg5NzNlLAkxNiwJezB4NzQsIDB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjUsIDB4NGYsIDB4OTAsIDB4MDEsIDB4YmN9IH0sCi17IDB4OTc0ZSwJMTYsCXsweGUwLCAweDU1LCAweDRmLCAweDYwLCAweDE0LCAweGFmLCAweDRlLCAweDdkLCAweDA4LCAweGU1LCAweDRmLCAweDU1LCAweDUyLCAweGZiLCAweDEyLCAweDk1fSB9LAoteyAweDk3NWUsCTE2LAl7MHgxMSwgMHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlMywgMHg4MCwgMHhlYywgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHhjMywgMHg5NCwgMHgwNH0gfSwKLXsgMHg5NzZlLAkxNiwJezB4NDAsIDB4Y2MsIDB4OTAsIDB4MDEsIDB4YmMsIDB4ZTUsIDB4NTIsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4YzIsIDB4YWYsIDB4NzQsIDB4MzYsIDB4MjV9IH0sCi17IDB4OTc3ZSwJMTYsCXsweDRlLCAweGY4LCAweGU2LCAweGY1LCAweDRmLCAweGU0LCAweGY2LCAweGQyLCAweGFmLCAweDUzLCAweDRmLCAweDFlLCAweGU1LCAweDRmLCAweDYwLCAweDExfSB9LAoteyAweDk3OGUsCTE2LAl7MHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMiwgMHhhYiwgMHg0ZiwgMHgxMiwgMHg5NSwgMHgxMSwgMHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlMywgMHg4MH0gfSwKLXsgMHg5NzllLAkxNiwJezB4ZWYsIDB4NzQsIDB4MmQsIDB4MjUsIDB4NGUsIDB4ZjgsIDB4ZTYsIDB4ZjUsIDB4NGYsIDB4NzQsIDB4ZmMsIDB4MjUsIDB4NGUsIDB4ZjUsIDB4ODIsIDB4ZTR9IH0sCi17IDB4OTdhZSwJMTYsCXsweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweDY1LCAweDRmLCAweDYwLCAweDExLCAweGFmLCAweDRlLCAweDdkLCAweDA0LCAweGFiLCAweDRmLCAweDEyfSB9LAoteyAweDk3YmUsCTE2LAl7MHg5NSwgMHgxMSwgMHhlZiwgMHg3MCwgMHgwNSwgMHgxMiwgMHg5NSwgMHhlMywgMHg4MCwgMHhlZiwgMHg3NCwgMHhmYywgMHgyNSwgMHg0ZSwgMHhmNSwgMHg4Mn0gfSwKLXsgMHg5N2NlLAkxNiwJezB4ZTQsIDB4MzQsIDB4MDIsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4YzMsIDB4OTQsIDB4MDQsIDB4NDB9IH0sCi17IDB4OTdkZSwJNCwJezB4OWEsIDB4MTIsIDB4OTUsIDB4ZTN9IH0sCi17IDB4OTdlMiwJMSwJezB4MjJ9IH0sCi17IDB4OTdlMywJMTIsCXsweDc4LCAweDdmLCAweGU0LCAweGY2LCAweGQ4LCAweGZkLCAweDc1LCAweDgxLCAweDY3LCAweDAyLCAweDk4LCAweDJhfSB9LAoteyAweDk3ZWYsCTE2LAl7MHgwMiwgMHgwNSwgMHhhZCwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHg0MCwgMHgwMywgMHhmNiwgMHg4MCwgMHgwMSwgMHhmMn0gfSwKLXsgMHg5N2ZmLAkxNiwJezB4MDgsIDB4ZGYsIDB4ZjQsIDB4ODAsIDB4MjksIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjgsIDB4NTQsIDB4MDcsIDB4MjQsIDB4MGMsIDB4YzgsIDB4YzMsIDB4MzN9IH0sCi17IDB4OTgwZiwJMTYsCXsweGM0LCAweDU0LCAweDBmLCAweDQ0LCAweDIwLCAweGM4LCAweDgzLCAweDQwLCAweDA0LCAweGY0LCAweDU2LCAweDgwLCAweDAxLCAweDQ2LCAweGY2LCAweGRmfSB9LAoteyAweDk4MWYsCTE2LAl7MHhlNCwgMHg4MCwgMHgwYiwgMHgwMSwgMHgwMiwgMHgwNCwgMHgwOCwgMHgxMCwgMHgyMCwgMHg0MCwgMHg4MCwgMHg5MCwgMHg5OCwgMHg2ZiwgMHhlNCwgMHg3ZX0gfSwKLXsgMHg5ODJmLAkxNiwJezB4MDEsIDB4OTMsIDB4NjAsIDB4YmMsIDB4YTMsIDB4ZmYsIDB4NTQsIDB4M2YsIDB4MzAsIDB4ZTUsIDB4MDksIDB4NTQsIDB4MWYsIDB4ZmUsIDB4ZTQsIDB4OTN9IH0sCi17IDB4OTgzZiwJMTYsCXsweGEzLCAweDYwLCAweDAxLCAweDBlLCAweGNmLCAweDU0LCAweGMwLCAweDI1LCAweGUwLCAweDYwLCAweGE4LCAweDQwLCAweGI4LCAweGU0LCAweDkzLCAweGEzfSB9LAoteyAweDk4NGYsCTE2LAl7MHhmYSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHhlNCwgMHg5MywgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYX0gfSwKLXsgMHg5ODVmLAkxNiwJezB4ZjAsIDB4YTMsIDB4YzgsIDB4YzUsIDB4ODIsIDB4YzgsIDB4Y2EsIDB4YzUsIDB4ODMsIDB4Y2EsIDB4ZGYsIDB4ZTksIDB4ZGUsIDB4ZTcsIDB4ODAsIDB4YmV9IH0sCi17IDB4OTg2ZiwJMTYsCXsweDYwLCAweDI0LCAweDAyLCAweDhhLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDgxLCAweDgyLCAweDg0LCAweDg4fSB9LAoteyAweDk4N2YsCTE2LAl7MHg5MCwgMHhhMCwgMHhjMCwgMHhjMSwgMHhjMiwgMHhjNCwgMHhjOCwgMHhkMCwgMHhlMCwgMHhlMSwgMHhlMiwgMHhlNCwgMHhlOCwgMHhmMCwgMHhmMSwgMHhmMn0gfSwKLXsgMHg5ODhmLAk4LAl7MHhmNCwgMHhmOCwgMHhmOSwgMHhmYSwgMHhmYywgMHhmZCwgMHhmZSwgMHhmZn0gfSwKLXsgMHg5ODk3LAkxLAl7MHgwMH0gfSwKLXsgMHg5ODk4LAk4LAl7MHg4YiwgMHg1OSwgMHg4YSwgMHg1YSwgMHg4OSwgMHg1YiwgMHg4ZCwgMHg1Y30gfSwKLXsgMHg5OGEwLAkxNiwJezB4ZTQsIDB4ZjUsIDB4NWQsIDB4ZjUsIDB4NWUsIDB4YWYsIDB4NWMsIDB4MTUsIDB4NWMsIDB4ZWYsIDB4NjAsIDB4MzYsIDB4YWIsIDB4NTksIDB4MDUsIDB4NWJ9IH0sCi17IDB4OThiMCwJMTYsCXsweGU1LCAweDViLCAweGFhLCAweDVhLCAweDcwLCAweDAyLCAweDA1LCAweDVhLCAweDE0LCAweGY5LCAweDEyLCAweGEyLCAweDNiLCAweGZmLCAweGU1LCAweDVkfSB9LAoteyAweDk4YzAsCTE2LAl7MHhlNSwgMHg1ZSwgMHg2ZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhlNCwgMHgzMywgMHhmZSwgMHg3NCwgMHg5NSwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlZSwgMHgzNH0gfSwKLXsgMHg5OGQwLAkxNiwJezB4OWUsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NWQsIDB4ZmYsIDB4ZTQsIDB4OTMsIDB4ZjUsIDB4NWQsIDB4NzQsIDB4MDEsIDB4OTMsIDB4NmYsIDB4ZjUsIDB4NWV9IH0sCi17IDB4OThlMCwJNiwJezB4ODAsIDB4YzMsIDB4YWUsIDB4NWQsIDB4YWYsIDB4NWV9IH0sCi17IDB4OThlNiwJMSwJezB4MjJ9IH0sCi17IDB4OThlNywJMTEsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweGQwLCAweDc1LCAweGQwLCAweDE4fSB9LAoteyAweDk4ZjIsCTE2LAl7MHg5MCwgMHgyMCwgMHg2MCwgMHhlMCwgMHg1NCwgMHgwZiwgMHhmZSwgMHgzMCwgMHhlMCwgMHgwNSwgMHg5MCwgMHgyMCwgMHgwMiwgMHhlMCwgMHhmZiwgMHhlZX0gfSwKLXsgMHg5OTAyLAkxNiwJezB4MzAsIDB4ZTEsIDB4MDUsIDB4OTAsIDB4MjAsIDB4MGEsIDB4ZTAsIDB4ZmYsIDB4ZWUsIDB4MzAsIDB4ZTIsIDB4MDUsIDB4OTAsIDB4MjAsIDB4MTIsIDB4ZTB9IH0sCi17IDB4OTkxMiwJMTYsCXsweGZmLCAweGVlLCAweDMwLCAweGUzLCAweDA1LCAweDkwLCAweDIwLCAweDFhLCAweGUwLCAweGZmLCAweDkwLCAweDAxLCAweGM0LCAweGUwLCAweGI1LCAweDFlfSB9LAoteyAweDk5MjIsCTEwLAl7MHgwNCwgMHhlNCwgMHhmMCwgMHg4MCwgMHgwNSwgMHg5MCwgMHgwMSwgMHhjNCwgMHhlZSwgMHhmMH0gfSwKLXsgMHg5OTJjLAk5LAl7MHhkMCwgMHhkMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHg5OTM1LAkyLAl7MHhhOSwgMHgwM30gfSwKLXsgMHg5OTM3LAkxNiwJezB4ZWYsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWIsIDB4ODIsIDB4ZmEsIDB4ZTV9IH0sCi17IDB4OTk0NywJMTYsCXsweDVjLCAweDQ1LCAweDVkLCAweGY1LCAweDVlLCAweGU5LCAweDYwLCAweDE0LCAweDhhLCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA0LCAweGY1LCAweDgyfSB9LAoteyAweDk5NTcsCTE2LAl7MHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg0ZCwgMHhmMCwgMHhlNCwgMHhmZSwgMHg4MCwgMHgxMywgMHhlYiwgMHgyNCwgMHgwNCwgMHhmNX0gfSwKLXsgMHg5OTY3LAkxNiwJezB4ODIsIDB4ZTQsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmYsIDB4ZWQsIDB4ZjQsIDB4ZmMsIDB4ZWYsIDB4NWMsIDB4ZjAsIDB4YWUsIDB4NWUsIDB4ZWJ9IH0sCi17IDB4OTk3NywJMTYsCXsweDI0LCAweDA2LCAweGY1LCAweDgyLCAweGU0LCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDU1LCAweDVlLCAweGZjLCAweGI1LCAweDA2LCAweDAzLCAweGFmfSB9LAoteyAweDk5ODcsCTE2LAl7MHgwNSwgMHgyMiwgMHhlNSwgMHg1YywgMHg1YywgMHhmZSwgMHhlNSwgMHg1ZCwgMHg1YywgMHhmZCwgMHhlOSwgMHg2MCwgMHgxNiwgMHhlZSwgMHg3MCwgMHgwNH0gfSwKLXsgMHg5OTk3LAkxNiwJezB4N2YsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2YsIDB4MDAsIDB4YWUsIDB4MDcsIDB4ZWQsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2Z9IH0sCi17IDB4OTlhNywJMTYsCXsweDAwLCAweGFkLCAweDA3LCAweGVlLCAweDYwLCAweDAzLCAweGFmLCAweDVjLCAweDIyLCAweGVkLCAweDYwLCAweDAzLCAweGFmLCAweDVkLCAweDIyLCAweDdmfSB9LAoteyAweDk5YjcsCTEsCXsweDAwfSB9LAoteyAweDk5YjgsCTEsCXsweDIyfSB9LAoteyAweDk5YjksCTE2LAl7MHg3NSwgMHg1NSwgMHgwMiwgMHg3NSwgMHg1NiwgMHhiMCwgMHg5MCwgMHgwMywgMHgzNSwgMHg3NCwgMHgwZiwgMHhmMCwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NX0gfSwKLXsgMHg5OWM5LAkxNiwJezB4NTUsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4ZmYsIDB4OTAsIDB4MDMsIDB4MzcsIDB4ZjAsIDB4ODUsIDB4NTYsIDB4ODIsIDB4ODUsIDB4NTUsIDB4ODMsIDB4ZTB9IH0sCi17IDB4OTlkOSwJMTYsCXsweDkwLCAweDAzLCAweDM2LCAweGYwLCAweDkwLCAweDAzLCAweDM4LCAweDc0LCAweGZmLCAweGYwLCAweDc1LCAweDU3LCAweDAzLCAweDc1LCAweDU4LCAweDM5fSB9LAoteyAweDk5ZTksCTE2LAl7MHhlZiwgMHgxNCwgMHhiNCwgMHgwYiwgMHgwMCwgMHg0MCwgMHgwMywgMHgwMiwgMHg5ZSwgMHg1ZCwgMHg5MCwgMHg5OSwgMHhmYSwgMHhmOCwgMHgyOCwgMHgyOH0gfSwKLXsgMHg5OWY5LAkxNiwJezB4NzMsIDB4MDIsIDB4OWEsIDB4MWIsIDB4MDIsIDB4OWEsIDB4YmEsIDB4MDIsIDB4OWIsIDB4YmYsIDB4MDIsIDB4OWIsIDB4ZGUsIDB4MDIsIDB4OWIsIDB4ZGV9IH0sCi17IDB4OWEwOSwJMTYsCXsweDAyLCAweDljLCAweDk0LCAweDAyLCAweDljLCAweGNmLCAweDAyLCAweDljLCAweGY0LCAweDAyLCAweDlkLCAweGIyLCAweDAyLCAweDlkLCAweGUyLCAweDAyfSB9LAoteyAweDlhMTksCTE2LAl7MHg5ZSwgMHgwZSwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHg3NSwgMHhmMCwgMHgwOCwgMHhhNCwgMHgyNCwgMHgwMCwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHg5YTI5LAkxNiwJezB4MzQsIDB4MjAsIDB4YWYsIDB4ODIsIDB4ZjUsIDB4NTMsIDB4OGYsIDB4NTQsIDB4ZTQsIDB4ZmYsIDB4ZTQsIDB4ZmUsIDB4ZWYsIDB4NjAsIDB4MTAsIDB4NzR9IH0sCi17IDB4OWEzOSwJMTYsCXsweDhhLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweGY0LCAweGY1LCAweDRmLCAweDgwLCAweDBkLCAweDc0fSB9LAoteyAweDlhNDksCTE2LAl7MHg4YSwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlMCwgMHhmNSwgMHg0ZiwgMHhlNSwgMHg1NCwgMHgyNCwgMHgwN30gfSwKLXsgMHg5YTU5LAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4NTMsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4ZTAsIDB4ZjUsIDB4NTAsIDB4NjUsIDB4NGYsIDB4NjB9IH0sCi17IDB4OWE2OSwJMTYsCXsweDM4LCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweGU1LCAweDRlLCAweDA0LCAweGZkLCAweDA1LCAweDU4LCAweGU1LCAweDU4LCAweGFhLCAweDU3fSB9LAoteyAweDlhNzksCTE2LAl7MHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YSwgMHg4MywgMHhlZCwgMHhmMCwgMHgwNSwgMHg1OCwgMHhlNSwgMHg1OCwgMHhhY30gfSwKLXsgMHg5YTg5LAkxNiwJezB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4ODUsIDB4NTgsIDB4ODJ9IH0sCi17IDB4OWE5OSwJMTYsCXsweDg1LCAweDU3LCAweDgzLCAweGU1LCAweDUwLCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweDBlLCAweGJlLCAweDI0LCAweDhmLCAweDBmLCAweGVmLCAweDY0fSB9LAoteyAweDlhYTksCTE2LAl7MHgwMiwgMHg3MCwgMHg4NywgMHgwNSwgMHg0ZSwgMHhlNSwgMHg0ZSwgMHg2NCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHg5YSwgMHgxZSwgMHgwMiwgMHg5ZX0gfSwKLXsgMHg5YWI5LAkxNiwJezB4NjMsIDB4ZTQsIDB4ZjUsIDB4NGUsIDB4YWYsIDB4NGUsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4ODMsIDB4NWEsIDB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4ZDN9IH0sCi17IDB4OWFjOSwJMTYsCXsweDk0LCAweDAzLCAweDQwLCAweGYwLCAweDkwLCAweDAwLCAweDA0LCAweDc0LCAweDk4LCAweGYwLCAweGEzLCAweDc0LCAweGU3LCAweGYwLCAweGU0LCAweGY1fSB9LAoteyAweDlhZDksCTE2LAl7MHg1MCwgMHg3ZSwgMHgyMCwgMHg3ZiwgMHgwMCwgMHg3NSwgMHg1MywgMHgyMCwgMHg3NSwgMHg1NCwgMHgwMCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHg3NH0gfSwKLXsgMHg5YWU5LAkxNiwJezB4MDEsIDB4YTgsIDB4MDcsIDB4MDgsIDB4ODAsIDB4MDIsIDB4YzMsIDB4MzMsIDB4ZDgsIDB4ZmMsIDB4ZjUsIDB4NGYsIDB4OTAsIDB4MDEsIDB4YzQsIDB4ZjB9IH0sCi17IDB4OWFmOSwJMTYsCXsweDkwLCAweDAxLCAweGMwLCAweGU0LCAweGYwLCAweGEzLCAweDc0LCAweDBhLCAweGYwLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweGEzfSB9LAoteyAweDliMDksCTE2LAl7MHg3NCwgMHgwMiwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjNCwgMHhlMCwgMHhiNSwgMHg0ZiwgMHgzNCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlMCwgMHg3MCwgMHgwMn0gfSwKLXsgMHg5YjE5LAkxNiwJezB4YTMsIDB4ZTAsIDB4NzAsIDB4ZWYsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4MDQsIDB4ZmYsIDB4MDUsIDB4NTgsIDB4ZTUsIDB4NTh9IH0sCi17IDB4OWIyOSwJMTYsCXsweGFjLCAweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVmLCAweGYwLCAweDg1LCAweDU4LCAweDgyfSB9LAoteyAweDliMzksCTE2LAl7MHg4NSwgMHg1NywgMHg4MywgMHg3NCwgMHhmZiwgMHhmMCwgMHhlNCwgMHg5MCwgMHgwMSwgMHhjNCwgMHhmMCwgMHg3NSwgMHg1MCwgMHhmZiwgMHg5MCwgMHgwMX0gfSwKLXsgMHg5YjQ5LAkxNiwJezB4YzQsIDB4ZTAsIDB4ZmYsIDB4NjAsIDB4MzcsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ZTUsIDB4NGUsIDB4MDQsIDB4ZmUsIDB4MDUsIDB4NTh9IH0sCi17IDB4OWI1OSwJMTYsCXsweGU1LCAweDU4LCAweGFjLCAweDU3LCAweDcwLCAweDAyLCAweDA1LCAweDU3LCAweDE0LCAweGY1LCAweDgyLCAweDhjLCAweDgzLCAweGVlLCAweGYwLCAweDA1fSB9LAoteyAweDliNjksCTE2LAl7MHg1OCwgMHhlNSwgMHg1OCwgMHhhYywgMHg1NywgMHg3MCwgMHgwMiwgMHgwNSwgMHg1NywgMHgxNCwgMHhmNSwgMHg4MiwgMHg4YywgMHg4MywgMHhlZiwgMHhmMH0gfSwKLXsgMHg5Yjc5LAkxNiwJezB4ODUsIDB4NTgsIDB4ODIsIDB4ODUsIDB4NTcsIDB4ODMsIDB4ZTUsIDB4NGYsIDB4ZjAsIDB4NzUsIDB4NTAsIDB4ZmYsIDB4ZTUsIDB4NTAsIDB4NzAsIDB4MTZ9IH0sCi17IDB4OWI4OSwJMTYsCXsweDc0LCAweDA4LCAweDI1LCAweDU0LCAweGY1LCAweDU0LCAweGU0LCAweDM1LCAweDUzLCAweGY1LCAweDUzLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweDY0fSB9LAoteyAweDliOTksCTE2LAl7MHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHg5YSwgMHhlNiwgMHhlNCwgMHhmNSwgMHg0ZSwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YX0gfSwKLXsgMHg5YmE5LAkxNiwJezB4MDUsIDB4NGUsIDB4ZTUsIDB4NGUsIDB4ZDMsIDB4OTQsIDB4MDMsIDB4NDAsIDB4ZjAsIDB4OTAsIDB4MDAsIDB4MDQsIDB4NzQsIDB4MTMsIDB4ZjAsIDB4YTN9IH0sCi17IDB4OWJiOSwJMTYsCXsweDc0LCAweDEyLCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweDg1LCAweDU2LCAweDgyLCAweDg1LCAweDU1LCAweDgzLCAweGUwLCAweDE0LCAweGZmLCAweDc0fSB9LAoteyAweDliYzksCTE2LAl7MHgwMSwgMHhhOCwgMHgwNywgMHgwOCwgMHg4MCwgMHgwMiwgMHhjMywgMHgzMywgMHhkOCwgMHhmYywgMHg5MCwgMHgwMiwgMHhmNywgMHhmMCwgMHg5MCwgMHgwMX0gfSwKLXsgMHg5YmQ5LAkxNiwJezB4YzQsIDB4ZjAsIDB4MDIsIDB4OWUsIDB4NjMsIDB4OTAsIDB4MDEsIDB4YzAsIDB4NzQsIDB4MDMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4ZTgsIDB4ZjAsIDB4ZTR9IH0sCi17IDB4OWJlOSwJMTYsCXsweGY1LCAweDUwLCAweDkwLCAweDAyLCAweGY3LCAweGUwLCAweGZmLCAweDkwLCAweDAxLCAweGM0LCAweGUwLCAweGI1LCAweDA3LCAweDE5LCAweDkwLCAweDAxfSB9LAoteyAweDliZjksCTE2LAl7MHhjMCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg3MCwgMHhlYSwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHg4NSwgMHg1OCwgMHg4MiwgMHg4NX0gfSwKLXsgMHg5YzA5LAkxNiwJezB4NTcsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZjUsIDB4NTAsIDB4ZTUsIDB4NTAsIDB4NjAsIDB4MDMsIDB4MDIsIDB4OWUsIDB4NjMsIDB4OTAsIDB4MDF9IH0sCi17IDB4OWMxOSwJMTYsCXsweGMwLCAweGYwLCAweGEzLCAweDc0LCAweDk2LCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGUwLCAweDcwLCAweDAyLCAweGEzLCAweGUwLCAweDcwLCAweGY2fSB9LAoteyAweDljMjksCTE2LAl7MHhlNSwgMHgzMywgMHhjMywgMHg5NCwgMHgwMSwgMHg0MCwgMHgwZCwgMHg5MCwgMHgyMCwgMHg3OCwgMHhlMCwgMHg1NCwgMHgwZiwgMHg3NSwgMHg1MSwgMHgwMH0gfSwKLXsgMHg5YzM5LAkxNiwJezB4ZjUsIDB4NTIsIDB4ODAsIDB4MDksIDB4N2YsIDB4MDIsIDB4MTIsIDB4MTEsIDB4MjcsIDB4OGUsIDB4NTEsIDB4OGYsIDB4NTIsIDB4YzMsIDB4ZTUsIDB4NTF9IH0sCi17IDB4OWM0OSwJMTYsCXsweDY0LCAweDgwLCAweDk0LCAweDgwLCAweDQwLCAweGRhLCAweGU1LCAweDUyLCAweDU0LCAweDBmLCAweGY1LCAweDUwLCAweDkwLCAweDAyLCAweGY3LCAweGUwfSB9LAoteyAweDljNTksCTE2LAl7MHg1NSwgMHg1MCwgMHg3MCwgMHgwNCwgMHg3ZiwgMHgwMSwgMHg4MCwgMHgwMiwgMHg3ZiwgMHgwMCwgMHg4ZiwgMHg0ZiwgMHg4NSwgMHg1NiwgMHg4MiwgMHg4NX0gfSwKLXsgMHg5YzY5LAkxNiwJezB4NTUsIDB4ODMsIDB4YTMsIDB4ZTAsIDB4YjQsIDB4MDUsIDB4MGMsIDB4ZTUsIDB4NGYsIDB4NzAsIDB4MDQsIDB4N2YsIDB4MDEsIDB4ODAsIDB4MDIsIDB4N2Z9IH0sCi17IDB4OWM3OSwJMTYsCXsweDAwLCAweDhmLCAweDRmLCAweGU1LCAweDRmLCAweDcwLCAweDAzLCAweDAyLCAweDllLCAweDYzLCAweGU0LCAweDkwLCAweDAzLCAweDM4LCAweGYwLCAweDg1fSB9LAoteyAweDljODksCTE2LAl7MHg1OCwgMHg4MiwgMHg4NSwgMHg1NywgMHg4MywgMHhlNSwgMHg1MCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHhlNCwgMHhmZiwgMHhmZCwgMHgxMiwgMHg4M30gfSwKLXsgMHg5Yzk5LAkxNiwJezB4NWEsIDB4N2UsIDB4MjAsIDB4N2YsIDB4MDAsIDB4NzUsIDB4NTMsIDB4MjAsIDB4NzUsIDB4NTQsIDB4MDAsIDB4ODUsIDB4NTQsIDB4ODIsIDB4ODUsIDB4NTN9IH0sCi17IDB4OWNhOSwJMTYsCXsweDgzLCAweGEzLCAweGEzLCAweGEzLCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDg1LCAweDU0LCAweDgyLCAweDg1LCAweDUzLCAweDgzLCAweDc0LCAweDAxfSB9LAoteyAweDljYjksCTE2LAl7MHhmMCwgMHhhMywgMHhlNCwgMHhmMCwgMHg4NSwgMHg1NCwgMHg4MiwgMHg4NSwgMHg1MywgMHg4MywgMHhhMywgMHhhMywgMHhhMywgMHhlMCwgMHg1NCwgMHg3Zn0gfSwKLXsgMHg5Y2M5LAkxNiwJezB4ZjAsIDB4ZDIsIDB4MDQsIDB4MDIsIDB4OWUsIDB4NjMsIDB4YzIsIDB4MDQsIDB4N2UsIDB4MjAsIDB4N2YsIDB4MDAsIDB4NzUsIDB4NTMsIDB4MjAsIDB4NzV9IH0sCi17IDB4OWNkOSwJMTYsCXsweDU0LCAweDAwLCAweGU1LCAweDU0LCAweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDUzLCAweGY1LCAweDgzLCAweGUwLCAweDMwLCAweGU2fSB9LAoteyAweDljZTksCTE2LAl7MHhmMSwgMHhlNCwgMHhmZiwgMHg3ZCwgMHgwMSwgMHgxMiwgMHg4MywgMHg1YSwgMHgwMiwgMHg5ZSwgMHg2MywgMHhlNCwgMHhmNSwgMHg1MCwgMHhmNSwgMHg0ZX0gfSwKLXsgMHg5Y2Y5LAkxNiwJezB4YWYsIDB4NGUsIDB4ZTQsIDB4ZmQsIDB4MTIsIDB4ODMsIDB4NWEsIDB4ZTUsIDB4NGUsIDB4NzUsIDB4ZjAsIDB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjV9IH0sCi17IDB4OWQwOSwJMTYsCXsweDgyLCAweGU0LCAweDM0LCAweDIwLCAweGFmLCAweDgyLCAweGY1LCAweDUzLCAweDhmLCAweDU0LCAweGY1LCAweDgzLCAweGU1LCAweDgyLCAweDI0LCAweDA0fSB9LAoteyAweDlkMTksCTE2LAl7MHhmNSwgMHg4MiwgMHhlNCwgMHgzNSwgMHg4MywgMHhmNSwgMHg4MywgMHhlMCwgMHg1NCwgMHhmYywgMHhmMCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMSwgMHg3Yn0gfSwKLXsgMHg5ZDI5LAkxNiwJezB4MDEsIDB4NzUsIDB4NWMsIDB4ODAsIDB4NzUsIDB4NWQsIDB4NDAsIDB4MTIsIDB4OTksIDB4MzUsIDB4OGYsIDB4NTAsIDB4ZTUsIDB4NTAsIDB4NzAsIDB4MTF9IH0sCi17IDB4OWQzOSwJMTYsCXsweGFmLCAweDRlLCAweDdkLCAweDAyLCAweDdiLCAweDAxLCAweDc1LCAweDVjLCAweDEwLCAweDc1LCAweDVkLCAweDIwLCAweDEyLCAweDk5LCAweDM1LCAweDhmfSB9LAoteyAweDlkNDksCTE2LAl7MHg1MCwgMHhlNSwgMHg1MCwgMHg3MCwgMHgxMCwgMHhhZiwgMHg0ZSwgMHg3ZCwgMHgwMSwgMHhmYiwgMHg3NSwgMHg1YywgMHg4MCwgMHg3NSwgMHg1ZCwgMHg0MH0gfSwKLXsgMHg5ZDU5LAkxNiwJezB4MTIsIDB4OTksIDB4MzUsIDB4OGYsIDB4NTAsIDB4ZTUsIDB4NTAsIDB4NzAsIDB4MTAsIDB4YWYsIDB4NGUsIDB4N2QsIDB4MDIsIDB4ZmIsIDB4NzUsIDB4NWN9IH0sCi17IDB4OWQ2OSwJMTYsCXsweDEwLCAweDc1LCAweDVkLCAweDIwLCAweDEyLCAweDk5LCAweDM1LCAweDhmLCAweDUwLCAweGFmLCAweDRlLCAweDdkLCAweDAxLCAweDEyLCAweDgzLCAweDVhfSB9LAoteyAweDlkNzksCTE2LAl7MHhlNSwgMHg1MCwgMHg2MCwgMHgyNiwgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHhlNSwgMHg0ZSwgMHgwNCwgMHhmZiwgMHgwNSwgMHg1OCwgMHhlNX0gfSwKLXsgMHg5ZDg5LAkxNiwJezB4NTgsIDB4YWMsIDB4NTcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4NTcsIDB4MTQsIDB4ZjUsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ODUsIDB4NTh9IH0sCi17IDB4OWQ5OSwJMTYsCXsweDgyLCAweDg1LCAweDU3LCAweDgzLCAweGU1LCAweDUwLCAweGYwLCAweDAyLCAweDllLCAweDYzLCAweDA1LCAweDRlLCAweGU1LCAweDRlLCAweGQzLCAweDk0fSB9LAoteyAweDlkYTksCTE2LAl7MHgwMywgMHg1MCwgMHgwMywgMHgwMiwgMHg5YywgMHhmOSwgMHgwMiwgMHg5ZSwgMHg2MywgMHhlNCwgMHg5MCwgMHgwMywgMHg1OSwgMHhmMCwgMHhhMywgMHhmMH0gfSwKLXsgMHg5ZGI5LAkxNiwJezB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4OWUsIDB4ZjAsIDB4YTMsIDB4NzR9IH0sCi17IDB4OWRjOSwJMTYsCXsweDg1LCAweGYwLCAweDdlLCAweDAzLCAweDdmLCAweDU5LCAweDEyLCAweDgxLCAweGQ5LCAweGVmLCAweDY0LCAweDA4LCAweDcwLCAweDAzLCAweDAyLCAweDllfSB9LAoteyAweDlkZDksCTE2LAl7MHg2MywgMHhlNCwgMHg5MCwgMHgwMywgMHgzOCwgMHhmMCwgMHgwMiwgMHg5ZSwgMHg2MywgMHhlNCwgMHg5MCwgMHgwMywgMHg1OSwgMHhmMCwgMHhhMywgMHhmMH0gfSwKLXsgMHg5ZGU5LAkxNiwJezB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4ZjAsIDB4YTMsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4YTMsIDB4ZTUsIDB4NTcsIDB4ZjAsIDB4YTMsIDB4ZTV9IH0sCi17IDB4OWRmOSwJMTYsCXsweDU4LCAweGYwLCAweDdlLCAweDAzLCAweDdmLCAweDU5LCAweDEyLCAweDE5LCAweGMxLCAweGVmLCAweDY0LCAweDA4LCAweDYwLCAweDVjLCAweGU0LCAweDkwfSB9LAoteyAweDllMDksCTE2LAl7MHgwMywgMHgzOCwgMHhmMCwgMHg4MCwgMHg1NSwgMHhlNSwgMHg1NiwgMHgyNCwgMHgwMiwgMHhmZiwgMHhlNCwgMHgzNSwgMHg1NSwgMHhmYSwgMHhhOSwgMHgwN30gfSwKLXsgMHg5ZTE5LAkxNiwJezB4N2IsIDB4MDEsIDB4N2QsIDB4MTAsIDB4MTIsIDB4OTgsIDB4OTgsIDB4ZWYsIDB4NGUsIDB4NzAsIDB4MzIsIDB4OTAsIDB4MDMsIDB4NTksIDB4ZjAsIDB4YTN9IH0sCi17IDB4OWUyOSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweGYwLCAweGEzLCAweDc0LCAweDEwLCAweGYwLCAweGU1LCAweDU2LCAweDI0LCAweDAyLCAweDkwfSB9LAoteyAweDllMzksCTE2LAl7MHgwMywgMHg2MCwgMHhmMCwgMHhlNCwgMHgzNSwgMHg1NSwgMHg5MCwgMHgwMywgMHg1ZiwgMHhmMCwgMHg3ZSwgMHgwMywgMHg3ZiwgMHg1OSwgMHgxMiwgMHg4MX0gfSwKLXsgMHg5ZTQ5LAkxNiwJezB4ZDksIDB4ZWYsIDB4NjQsIDB4MDgsIDB4NjAsIDB4MTQsIDB4ZTQsIDB4OTAsIDB4MDMsIDB4MzgsIDB4ZjAsIDB4ODAsIDB4MGQsIDB4ZTQsIDB4OTAsIDB4MDN9IH0sCi17IDB4OWU1OSwJMTYsCXsweDM4LCAweGYwLCAweDgwLCAweDA2LCAweDkwLCAweDAzLCAweDM4LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDAxLCAweGMwLCAweGU0LCAweGYwLCAweGEzfSB9LAoteyAweDllNjksCTE2LAl7MHg3NCwgMHgwYSwgMHhmMCwgMHg5MCwgMHgwMSwgMHhjMCwgMHhlMCwgMHg3MCwgMHgwMiwgMHhhMywgMHhlMCwgMHg3MCwgMHhmNiwgMHg3ZSwgMHgwMywgMHg3Zn0gfSwKLXsgMHg5ZTc5LAkxMSwJezB4MzUsIDB4N2QsIDB4MjQsIDB4MTIsIDB4OTEsIDB4NmEsIDB4ZTQsIDB4OTAsIDB4MDIsIDB4YWYsIDB4ZjB9IH0sCi17IDB4OWU4NCwJMSwJezB4MjJ9IH0sCi17IDB4OWU4NSwJMTYsCXsweGZmLCAweGZlLCAweGZjLCAweGY4LCAweGYwLCAweGUwLCAweGMwLCAweDgwLCAweDAwLCAweDAxLCAweDAzLCAweDA3LCAweDBmLCAweDFmLCAweDNmLCAweDdmfSB9LAoteyAweDllOTUsCTE2LAl7MHgwMCwgMHgwMCwgMHhjMCwgMHhjMSwgMHhjMSwgMHg4MSwgMHgwMSwgMHg0MCwgMHhjMywgMHgwMSwgMHgwMywgMHhjMCwgMHgwMiwgMHg4MCwgMHhjMiwgMHg0MX0gfSwKLXsgMHg5ZWE1LAkxNiwJezB4YzYsIDB4MDEsIDB4MDYsIDB4YzAsIDB4MDcsIDB4ODAsIDB4YzcsIDB4NDEsIDB4MDUsIDB4MDAsIDB4YzUsIDB4YzEsIDB4YzQsIDB4ODEsIDB4MDQsIDB4NDB9IH0sCi17IDB4OWViNSwJMTYsCXsweGNjLCAweDAxLCAweDBjLCAweGMwLCAweDBkLCAweDgwLCAweGNkLCAweDQxLCAweDBmLCAweDAwLCAweGNmLCAweGMxLCAweGNlLCAweDgxLCAweDBlLCAweDQwfSB9LAoteyAweDllYzUsCTE2LAl7MHgwYSwgMHgwMCwgMHhjYSwgMHhjMSwgMHhjYiwgMHg4MSwgMHgwYiwgMHg0MCwgMHhjOSwgMHgwMSwgMHgwOSwgMHhjMCwgMHgwOCwgMHg4MCwgMHhjOCwgMHg0MX0gfSwKLXsgMHg5ZWQ1LAkxNiwJezB4ZDgsIDB4MDEsIDB4MTgsIDB4YzAsIDB4MTksIDB4ODAsIDB4ZDksIDB4NDEsIDB4MWIsIDB4MDAsIDB4ZGIsIDB4YzEsIDB4ZGEsIDB4ODEsIDB4MWEsIDB4NDB9IH0sCi17IDB4OWVlNSwJMTYsCXsweDFlLCAweDAwLCAweGRlLCAweGMxLCAweGRmLCAweDgxLCAweDFmLCAweDQwLCAweGRkLCAweDAxLCAweDFkLCAweGMwLCAweDFjLCAweDgwLCAweGRjLCAweDQxfSB9LAoteyAweDllZjUsCTE2LAl7MHgxNCwgMHgwMCwgMHhkNCwgMHhjMSwgMHhkNSwgMHg4MSwgMHgxNSwgMHg0MCwgMHhkNywgMHgwMSwgMHgxNywgMHhjMCwgMHgxNiwgMHg4MCwgMHhkNiwgMHg0MX0gfSwKLXsgMHg5ZjA1LAkxNiwJezB4ZDIsIDB4MDEsIDB4MTIsIDB4YzAsIDB4MTMsIDB4ODAsIDB4ZDMsIDB4NDEsIDB4MTEsIDB4MDAsIDB4ZDEsIDB4YzEsIDB4ZDAsIDB4ODEsIDB4MTAsIDB4NDB9IH0sCi17IDB4OWYxNSwJMTYsCXsweGYwLCAweDAxLCAweDMwLCAweGMwLCAweDMxLCAweDgwLCAweGYxLCAweDQxLCAweDMzLCAweDAwLCAweGYzLCAweGMxLCAweGYyLCAweDgxLCAweDMyLCAweDQwfSB9LAoteyAweDlmMjUsCTE2LAl7MHgzNiwgMHgwMCwgMHhmNiwgMHhjMSwgMHhmNywgMHg4MSwgMHgzNywgMHg0MCwgMHhmNSwgMHgwMSwgMHgzNSwgMHhjMCwgMHgzNCwgMHg4MCwgMHhmNCwgMHg0MX0gfSwKLXsgMHg5ZjM1LAkxNiwJezB4M2MsIDB4MDAsIDB4ZmMsIDB4YzEsIDB4ZmQsIDB4ODEsIDB4M2QsIDB4NDAsIDB4ZmYsIDB4MDEsIDB4M2YsIDB4YzAsIDB4M2UsIDB4ODAsIDB4ZmUsIDB4NDF9IH0sCi17IDB4OWY0NSwJMTYsCXsweGZhLCAweDAxLCAweDNhLCAweGMwLCAweDNiLCAweDgwLCAweGZiLCAweDQxLCAweDM5LCAweDAwLCAweGY5LCAweGMxLCAweGY4LCAweDgxLCAweDM4LCAweDQwfSB9LAoteyAweDlmNTUsCTE2LAl7MHgyOCwgMHgwMCwgMHhlOCwgMHhjMSwgMHhlOSwgMHg4MSwgMHgyOSwgMHg0MCwgMHhlYiwgMHgwMSwgMHgyYiwgMHhjMCwgMHgyYSwgMHg4MCwgMHhlYSwgMHg0MX0gfSwKLXsgMHg5ZjY1LAkxNiwJezB4ZWUsIDB4MDEsIDB4MmUsIDB4YzAsIDB4MmYsIDB4ODAsIDB4ZWYsIDB4NDEsIDB4MmQsIDB4MDAsIDB4ZWQsIDB4YzEsIDB4ZWMsIDB4ODEsIDB4MmMsIDB4NDB9IH0sCi17IDB4OWY3NSwJMTYsCXsweGU0LCAweDAxLCAweDI0LCAweGMwLCAweDI1LCAweDgwLCAweGU1LCAweDQxLCAweDI3LCAweDAwLCAweGU3LCAweGMxLCAweGU2LCAweDgxLCAweDI2LCAweDQwfSB9LAoteyAweDlmODUsCTE2LAl7MHgyMiwgMHgwMCwgMHhlMiwgMHhjMSwgMHhlMywgMHg4MSwgMHgyMywgMHg0MCwgMHhlMSwgMHgwMSwgMHgyMSwgMHhjMCwgMHgyMCwgMHg4MCwgMHhlMCwgMHg0MX0gfSwKLXsgMHg5Zjk1LAkxNiwJezB4YTAsIDB4MDEsIDB4NjAsIDB4YzAsIDB4NjEsIDB4ODAsIDB4YTEsIDB4NDEsIDB4NjMsIDB4MDAsIDB4YTMsIDB4YzEsIDB4YTIsIDB4ODEsIDB4NjIsIDB4NDB9IH0sCi17IDB4OWZhNSwJMTYsCXsweDY2LCAweDAwLCAweGE2LCAweGMxLCAweGE3LCAweDgxLCAweDY3LCAweDQwLCAweGE1LCAweDAxLCAweDY1LCAweGMwLCAweDY0LCAweDgwLCAweGE0LCAweDQxfSB9LAoteyAweDlmYjUsCTE2LAl7MHg2YywgMHgwMCwgMHhhYywgMHhjMSwgMHhhZCwgMHg4MSwgMHg2ZCwgMHg0MCwgMHhhZiwgMHgwMSwgMHg2ZiwgMHhjMCwgMHg2ZSwgMHg4MCwgMHhhZSwgMHg0MX0gfSwKLXsgMHg5ZmM1LAkxNiwJezB4YWEsIDB4MDEsIDB4NmEsIDB4YzAsIDB4NmIsIDB4ODAsIDB4YWIsIDB4NDEsIDB4NjksIDB4MDAsIDB4YTksIDB4YzEsIDB4YTgsIDB4ODEsIDB4NjgsIDB4NDB9IH0sCi17IDB4OWZkNSwJMTYsCXsweDc4LCAweDAwLCAweGI4LCAweGMxLCAweGI5LCAweDgxLCAweDc5LCAweDQwLCAweGJiLCAweDAxLCAweDdiLCAweGMwLCAweDdhLCAweDgwLCAweGJhLCAweDQxfSB9LAoteyAweDlmZTUsCTE2LAl7MHhiZSwgMHgwMSwgMHg3ZSwgMHhjMCwgMHg3ZiwgMHg4MCwgMHhiZiwgMHg0MSwgMHg3ZCwgMHgwMCwgMHhiZCwgMHhjMSwgMHhiYywgMHg4MSwgMHg3YywgMHg0MH0gfSwKLXsgMHg5ZmY1LAkxNiwJezB4YjQsIDB4MDEsIDB4NzQsIDB4YzAsIDB4NzUsIDB4ODAsIDB4YjUsIDB4NDEsIDB4NzcsIDB4MDAsIDB4YjcsIDB4YzEsIDB4YjYsIDB4ODEsIDB4NzYsIDB4NDB9IH0sCi17IDB4YTAwNSwJMTYsCXsweDcyLCAweDAwLCAweGIyLCAweGMxLCAweGIzLCAweDgxLCAweDczLCAweDQwLCAweGIxLCAweDAxLCAweDcxLCAweGMwLCAweDcwLCAweDgwLCAweGIwLCAweDQxfSB9LAoteyAweGEwMTUsCTE2LAl7MHg1MCwgMHgwMCwgMHg5MCwgMHhjMSwgMHg5MSwgMHg4MSwgMHg1MSwgMHg0MCwgMHg5MywgMHgwMSwgMHg1MywgMHhjMCwgMHg1MiwgMHg4MCwgMHg5MiwgMHg0MX0gfSwKLXsgMHhhMDI1LAkxNiwJezB4OTYsIDB4MDEsIDB4NTYsIDB4YzAsIDB4NTcsIDB4ODAsIDB4OTcsIDB4NDEsIDB4NTUsIDB4MDAsIDB4OTUsIDB4YzEsIDB4OTQsIDB4ODEsIDB4NTQsIDB4NDB9IH0sCi17IDB4YTAzNSwJMTYsCXsweDljLCAweDAxLCAweDVjLCAweGMwLCAweDVkLCAweDgwLCAweDlkLCAweDQxLCAweDVmLCAweDAwLCAweDlmLCAweGMxLCAweDllLCAweDgxLCAweDVlLCAweDQwfSB9LAoteyAweGEwNDUsCTE2LAl7MHg1YSwgMHgwMCwgMHg5YSwgMHhjMSwgMHg5YiwgMHg4MSwgMHg1YiwgMHg0MCwgMHg5OSwgMHgwMSwgMHg1OSwgMHhjMCwgMHg1OCwgMHg4MCwgMHg5OCwgMHg0MX0gfSwKLXsgMHhhMDU1LAkxNiwJezB4ODgsIDB4MDEsIDB4NDgsIDB4YzAsIDB4NDksIDB4ODAsIDB4ODksIDB4NDEsIDB4NGIsIDB4MDAsIDB4OGIsIDB4YzEsIDB4OGEsIDB4ODEsIDB4NGEsIDB4NDB9IH0sCi17IDB4YTA2NSwJMTYsCXsweDRlLCAweDAwLCAweDhlLCAweGMxLCAweDhmLCAweDgxLCAweDRmLCAweDQwLCAweDhkLCAweDAxLCAweDRkLCAweGMwLCAweDRjLCAweDgwLCAweDhjLCAweDQxfSB9LAoteyAweGEwNzUsCTE2LAl7MHg0NCwgMHgwMCwgMHg4NCwgMHhjMSwgMHg4NSwgMHg4MSwgMHg0NSwgMHg0MCwgMHg4NywgMHgwMSwgMHg0NywgMHhjMCwgMHg0NiwgMHg4MCwgMHg4NiwgMHg0MX0gfSwKLXsgMHhhMDg1LAkxNiwJezB4ODIsIDB4MDEsIDB4NDIsIDB4YzAsIDB4NDMsIDB4ODAsIDB4ODMsIDB4NDEsIDB4NDEsIDB4MDAsIDB4ODEsIDB4YzEsIDB4ODAsIDB4ODEsIDB4NDAsIDB4NDB9IH0sCi17IDB4YTA5NSwJMTYsCXsweGU0LCAweGZmLCAweDc0LCAweGY4LCAweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweDcwLCAweDAzLCAweDAyfSB9LAoteyAweGEwYTUsCTE2LAl7MHhhMSwgMHgzOCwgMHg3NCwgMHgzYSwgMHgyZiwgMHhmOCwgMHhlNiwgMHgyMCwgMHhlNSwgMHgwMywgMHgwMiwgMHhhMSwgMHgzOCwgMHhlZiwgMHg3NSwgMHhmMH0gfSwKLXsgMHhhMGI1LAkxNiwJezB4MDgsIDB4YTQsIDB4MjQsIDB4MDAsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MjAsIDB4YWQsIDB4ODIsIDB4ZmMsIDB4ZjUsIDB4ODMsIDB4ZTUsIDB4ODJ9IH0sCi17IDB4YTBjNSwJMTYsCXsweDI0LCAweDA1LCAweGY1LCAweDgyLCAweGU0LCAweDM1LCAweDgzLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweDYwLCAweDY0LCAweDYwLCAweDcwLCAweDYzfSB9LAoteyAweGEwZDUsCTE2LAl7MHhlZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhlZiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwMiwgMHhmNSwgMHg4MywgMHhlNCwgMHg3NSwgMHhmMCwgMHgwMX0gfSwKLXsgMHhhMGU1LAkxNiwJezB4MTIsIDB4YTIsIDB4OTcsIDB4ODUsIDB4ZjAsIDB4ODIsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4OGQsIDB4ODIsIDB4OGMsIDB4ODMsIDB4ZjAsIDB4NzQsIDB4Zjh9IH0sCi17IDB4YTBmNSwJMTYsCXsweDJmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGUwLCAweDE0LCAweGYwLCAweDcwLCAweDM2LCAweGVmLCAweDI1LCAweGUwfSB9LAoteyAweGExMDUsCTE2LAl7MHgyNCwgMHhjNywgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHhlZiwgMHgyNSwgMHhlMCwgMHhmZSwgMHhjM30gfSwKLXsgMHhhMTE1LAkxNiwJezB4NzQsIDB4MGMsIDB4OWUsIDB4NzUsIDB4ZjAsIDB4NDAsIDB4YTQsIDB4MjQsIDB4NDAsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ZjAsIDB4MzQsIDB4N2IsIDB4YWR9IH0sCi17IDB4YTEyNSwJMTYsCXsweDgyLCAweGZjLCAweGVmLCAweDI1LCAweGUwLCAweDI0LCAweGVmLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDAyLCAweGY1LCAweDgzLCAweGVjLCAweGYwfSB9LAoteyAweGExMzUsCTEyLAl7MHhhMywgMHhlZCwgMHhmMCwgMHgwZiwgMHhlZiwgMHg2NCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMiwgMHhhMCwgMHg5N30gfSwKLXsgMHhhMTQxLAkxLAl7MHgyMn0gfSwKLXsgMHhhMTQyLAkxNiwJezB4ZTcsIDB4MDksIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NDYsIDB4ZTcsIDB4MDksIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4M2V9IH0sCi17IDB4YTE1MiwJMTYsCXsweDg4LCAweDgyLCAweDhjLCAweDgzLCAweGU3LCAweDA5LCAweGYwLCAweGEzLCAweGRmLCAweGZhLCAweDgwLCAweDMyLCAweGUzLCAweDA5LCAweGY2LCAweDA4fSB9LAoteyAweGExNjIsCTE2LAl7MHhkZiwgMHhmYSwgMHg4MCwgMHg3OCwgMHhlMywgMHgwOSwgMHhmMiwgMHgwOCwgMHhkZiwgMHhmYSwgMHg4MCwgMHg3MCwgMHg4OCwgMHg4MiwgMHg4YywgMHg4M30gfSwKLXsgMHhhMTcyLAkxNiwJezB4ZTMsIDB4MDksIDB4ZjAsIDB4YTMsIDB4ZGYsIDB4ZmEsIDB4ODAsIDB4NjQsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4YTMsIDB4ZjYsIDB4MDh9IH0sCi17IDB4YTE4MiwJMTYsCXsweGRmLCAweGZhLCAweDgwLCAweDU4LCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGUwLCAweGEzLCAweGYyLCAweDA4LCAweGRmLCAweGZhLCAweDgwLCAweDRjfSB9LAoteyAweGExOTIsCTE2LAl7MHg4MCwgMHhkMiwgMHg4MCwgMHhmYSwgMHg4MCwgMHhjNiwgMHg4MCwgMHhkNCwgMHg4MCwgMHg2OSwgMHg4MCwgMHhmMiwgMHg4MCwgMHgzMywgMHg4MCwgMHgxMH0gfSwKLXsgMHhhMWEyLAkxNiwJezB4ODAsIDB4YTYsIDB4ODAsIDB4ZWEsIDB4ODAsIDB4OWEsIDB4ODAsIDB4YTgsIDB4ODAsIDB4ZGEsIDB4ODAsIDB4ZTIsIDB4ODAsIDB4Y2EsIDB4ODAsIDB4MzN9IH0sCi17IDB4YTFiMiwJMTYsCXsweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGVjLCAweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjLCAweGM1LCAweDgzfSB9LAoteyAweGExYzIsCTE2LAl7MHhjYywgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MH0gfSwKLXsgMHhhMWQyLAkxNiwJezB4MGQsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjYsIDB4MDgsIDB4ZGYsIDB4ZjksIDB4ZWMsIDB4ZmEsIDB4YTksIDB4ZjB9IH0sCi17IDB4YTFlMiwJMTYsCXsweGVkLCAweGZiLCAweDIyLCAweDg5LCAweDgyLCAweDhhLCAweDgzLCAweGVjLCAweGZhLCAweGUwLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNjfSB9LAoteyAweGExZjIsCTE2LAl7MHhjNSwgMHg4MywgMHhjYywgMHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYywgMHhjNSwgMHg4MywgMHhjYywgMHhkZiwgMHhlYSwgMHhkZX0gfSwKLXsgMHhhMjAyLAkxNiwJezB4ZTgsIDB4ODAsIDB4ZGIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4ZjIsIDB4MDgsIDB4ZGYsIDB4ZjksIDB4ODAsIDB4Y2N9IH0sCi17IDB4YTIxMiwJMTYsCXsweDg4LCAweGYwLCAweGVkLCAweDI0LCAweDAyLCAweGI0LCAweDA0LCAweDAwLCAweDUwLCAweGMyLCAweGY1LCAweDgyLCAweGViLCAweDI0LCAweDAyLCAweGI0fSB9LAoteyAweGEyMjIsCTE2LAl7MHgwNCwgMHgwMCwgMHg1MCwgMHhiOCwgMHgyMywgMHgyMywgMHg0NSwgMHg4MiwgMHhmNSwgMHg4MiwgMHhlZiwgMHg0ZSwgMHg2MCwgMHhhZSwgMHhlZiwgMHg2MH0gfSwKLXsgMHhhMjMyLAk5LAl7MHgwMSwgMHgwZSwgMHhlNSwgMHg4MiwgMHgyMywgMHg5MCwgMHhhMSwgMHg5MiwgMHg3M30gfSwKLXsgMHhhMjNiLAkxNiwJezB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDJ9IH0sCi17IDB4YTI0YiwJOSwJezB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4YTI1NCwJMTYsCXsweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwfSB9LAoteyAweGEyNjQsCTE2LAl7MHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMn0gfSwKLXsgMHhhMjc0LAkxMywJezB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4YTI4MSwJMTYsCXsweGM1LCAweGYwLCAweGY4LCAweGEzLCAweGUwLCAweDI4LCAweGYwLCAweGM1LCAweGYwLCAweGY4LCAweGU1LCAweDgyLCAweDE1LCAweDgyLCAweDcwLCAweDAyfSB9LAoteyAweGEyOTEsCTYsCXsweDE1LCAweDgzLCAweGUwLCAweDM4LCAweGYwLCAweDIyfSB9LAoteyAweGEyOTcsCTE2LAl7MHhhMywgMHhmOCwgMHhlMCwgMHhjNSwgMHhmMCwgMHgyNSwgMHhmMCwgMHhmMCwgMHhlNSwgMHg4MiwgMHgxNSwgMHg4MiwgMHg3MCwgMHgwMiwgMHgxNSwgMHg4M30gfSwKLXsgMHhhMmE3LAk2LAl7MHhlMCwgMHhjOCwgMHgzOCwgMHhmMCwgMHhlOCwgMHgyMn0gfSwKLXsgMHhhMmFkLAkxNiwJezB4YmIsIDB4MDEsIDB4MTAsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4ZjB9IH0sCi17IDB4YTJiZCwJMTYsCXsweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlfSB9LAoteyAweGEyY2QsCTE2LAl7MHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNSwgMHhmMCwgMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4M30gfSwKLXsgMHhhMmRkLAk4LAl7MHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMn0gfSwKLXsgMHhhMmU1LAkxNiwJezB4NzUsIDB4ZjAsIDB4MDgsIDB4NzUsIDB4ODIsIDB4MDAsIDB4ZWYsIDB4MmYsIDB4ZmYsIDB4ZWUsIDB4MzMsIDB4ZmUsIDB4Y2QsIDB4MzMsIDB4Y2QsIDB4Y2N9IH0sCi17IDB4YTJmNSwJMTYsCXsweDMzLCAweGNjLCAweGM1LCAweDgyLCAweDMzLCAweGM1LCAweDgyLCAweDliLCAweGVkLCAweDlhLCAweGVjLCAweDk5LCAweGU1LCAweDgyLCAweDk4LCAweDQwfSB9LAoteyAweGEzMDUsCTE2LAl7MHgwYywgMHhmNSwgMHg4MiwgMHhlZSwgMHg5YiwgMHhmZSwgMHhlZCwgMHg5YSwgMHhmZCwgMHhlYywgMHg5OSwgMHhmYywgMHgwZiwgMHhkNSwgMHhmMCwgMHhkNn0gfSwKLXsgMHhhMzE1LAkxNiwJezB4ZTQsIDB4Y2UsIDB4ZmIsIDB4ZTQsIDB4Y2QsIDB4ZmEsIDB4ZTQsIDB4Y2MsIDB4ZjksIDB4YTgsIDB4ODIsIDB4MjIsIDB4YjgsIDB4MDAsIDB4YzEsIDB4Yjl9IH0sCi17IDB4YTMyNSwJMTYsCXsweDAwLCAweDU5LCAweGJhLCAweDAwLCAweDJkLCAweGVjLCAweDhiLCAweGYwLCAweDg0LCAweGNmLCAweGNlLCAweGNkLCAweGZjLCAweGU1LCAweGYwLCAweGNifSB9LAoteyAweGEzMzUsCTE2LAl7MHhmOSwgMHg3OCwgMHgxOCwgMHhlZiwgMHgyZiwgMHhmZiwgMHhlZSwgMHgzMywgMHhmZSwgMHhlZCwgMHgzMywgMHhmZCwgMHhlYywgMHgzMywgMHhmYywgMHhlYn0gfSwKLXsgMHhhMzQ1LAkxNiwJezB4MzMsIDB4ZmIsIDB4MTAsIDB4ZDcsIDB4MDMsIDB4OTksIDB4NDAsIDB4MDQsIDB4ZWIsIDB4OTksIDB4ZmIsIDB4MGYsIDB4ZDgsIDB4ZTUsIDB4ZTQsIDB4Zjl9IH0sCi17IDB4YTM1NSwJMTYsCXsweGZhLCAweDIyLCAweDc4LCAweDE4LCAweGVmLCAweDJmLCAweGZmLCAweGVlLCAweDMzLCAweGZlLCAweGVkLCAweDMzLCAweGZkLCAweGVjLCAweDMzLCAweGZjfSB9LAoteyAweGEzNjUsCTE2LAl7MHhjOSwgMHgzMywgMHhjOSwgMHgxMCwgMHhkNywgMHgwNSwgMHg5YiwgMHhlOSwgMHg5YSwgMHg0MCwgMHgwNywgMHhlYywgMHg5YiwgMHhmYywgMHhlOSwgMHg5YX0gfSwKLXsgMHhhMzc1LAkxNiwJezB4ZjksIDB4MGYsIDB4ZDgsIDB4ZTAsIDB4ZTQsIDB4YzksIDB4ZmEsIDB4ZTQsIDB4Y2MsIDB4ZmIsIDB4MjIsIDB4NzUsIDB4ZjAsIDB4MTAsIDB4ZWYsIDB4MmZ9IH0sCi17IDB4YTM4NSwJMTYsCXsweGZmLCAweGVlLCAweDMzLCAweGZlLCAweGVkLCAweDMzLCAweGZkLCAweGNjLCAweDMzLCAweGNjLCAweGM4LCAweDMzLCAweGM4LCAweDEwLCAweGQ3LCAweDA3fSB9LAoteyAweGEzOTUsCTE2LAl7MHg5YiwgMHhlYywgMHg5YSwgMHhlOCwgMHg5OSwgMHg0MCwgMHgwYSwgMHhlZCwgMHg5YiwgMHhmZCwgMHhlYywgMHg5YSwgMHhmYywgMHhlOCwgMHg5OSwgMHhmOH0gfSwKLXsgMHhhM2E1LAkxNCwJezB4MGYsIDB4ZDUsIDB4ZjAsIDB4ZGEsIDB4ZTQsIDB4Y2QsIDB4ZmIsIDB4ZTQsIDB4Y2MsIDB4ZmEsIDB4ZTQsIDB4YzgsIDB4ZjksIDB4MjJ9IH0sCi17IDB4YTNiMywJMTYsCXsweGViLCAweDlmLCAweGY1LCAweGYwLCAweGVhLCAweDllLCAweDQyLCAweGYwLCAweGU5LCAweDlkLCAweDQyLCAweGYwLCAweGU4LCAweDljLCAweDQ1LCAweGYwfSB9LAoteyAweGEzYzMsCTEsCXsweDIyfSB9LAoteyAweGEzYzQsCTE2LAl7MHhlOCwgMHg2MCwgMHgwZiwgMHhlYywgMHhjMywgMHgxMywgMHhmYywgMHhlZCwgMHgxMywgMHhmZCwgMHhlZSwgMHgxMywgMHhmZSwgMHhlZiwgMHgxMywgMHhmZn0gfSwKLXsgMHhhM2Q0LAkzLAl7MHhkOCwgMHhmMSwgMHgyMn0gfSwKLXsgMHhhM2Q3LAkxNiwJezB4MDgsIDB4MDgsIDB4MDgsIDB4ZTYsIDB4Y2YsIDB4MmYsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4Y2UsIDB4M2UsIDB4ZjYsIDB4MTgsIDB4ZTYsIDB4Y2QsIDB4M2R9IH0sCi17IDB4YTNlNywJNywJezB4ZjYsIDB4MTgsIDB4ZTYsIDB4Y2MsIDB4M2MsIDB4ZjYsIDB4MjJ9IH0sCi17IDB4YTNlZSwJMTIsCXsweGVjLCAweGYwLCAweGEzLCAweGVkLCAweGYwLCAweGEzLCAweGVlLCAweGYwLCAweGEzLCAweGVmLCAweGYwLCAweDIyfSB9LAoteyAweGEzZmEsCTE2LAl7MHhhOCwgMHg4MiwgMHg4NSwgMHg4MywgMHhmMCwgMHhkMCwgMHg4MywgMHhkMCwgMHg4MiwgMHgxMiwgMHhhNCwgMHgxMSwgMHgxMiwgMHhhNCwgMHgxMSwgMHgxMn0gfSwKLXsgMHhhNDBhLAkxNiwJezB4YTQsIDB4MTEsIDB4MTIsIDB4YTQsIDB4MTEsIDB4ZTQsIDB4NzMsIDB4ZTQsIDB4OTMsIDB4YTMsIDB4YzUsIDB4ODMsIDB4YzUsIDB4ZjAsIDB4YzUsIDB4ODN9IH0sCi17IDB4YTQxYSwJMTYsCXsweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGYwLCAweGEzLCAweGM1LCAweDgzLCAweGM1LCAweGYwLCAweGM1LCAweDgzLCAweGM4LCAweGM1LCAweDgyLCAweGM4fSB9LAoteyAweGE0MmEsCTEsCXsweDIyfSB9LAoteyAweGZmZmYsCTAsCXsweDAwfSB9Ci19OwotCi0jaWZkZWYgREVCVUcKLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2hpdGVoZWF0X2hleF9yZWNvcmQgd2hpdGVoZWF0X2xvYWRlcltdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDA5LCAweDhkfSB9LAoteyAweDAwMzMsCTMsCXsweDAyLCAweDBlLCAweDcwfSB9LAoteyAweDAwNDMsCTMsCXsweDAyLCAweDBiLCAweDAwfSB9LAoteyAweDAwNGIsCTMsCXsweDAyLCAweDA1LCAweGIzfSB9LAoteyAweDAxMDAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg1NCwgMHgxMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHg1MCwgMHhmNSwgMHgwZiwgMHgxMywgMHhlNH0gfSwKLXsgMHgwMTEwLAkxNiwJezB4MzMsIDB4ZjUsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MjQsIDB4NWUsIDB4YjQsIDB4MDcsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDEyMCwJMTYsCXsweDdjLCAweDkwLCAweDAxLCAweDI4LCAweGY4LCAweDI4LCAweDI4LCAweDczLCAweDAyLCAweDAxLCAweGJjLCAweDAyLCAweDAxLCAweGJjLCAweDAyLCAweDAxfSB9LAoteyAweDAxMzAsCTE2LAl7MHg5MSwgMHgwMiwgMHgwMSwgMHgzZCwgMHgwMiwgMHgwMSwgMHg1MywgMHgwMiwgMHgwMSwgMHg2ZiwgMHgwMiwgMHgwMSwgMHg5YSwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHgwMTQwLAkxNiwJezB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9IH0sCi17IDB4MDE1MCwJMTYsCXsweDAyLCAweDAzLCAweDdjLCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweDkwfSB9LAoteyAweDAxNjAsCTE2LAl7MHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwMywgMHg3YywgMHgxMn0gfSwKLXsgMHgwMTcwLAkxNiwJezB4MGEsIDB4ODksIDB4NTAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MGZ9IH0sCi17IDB4MDE4MCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzfSB9LAoteyAweDAxOTAsCTE2LAl7MHg3YywgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwZiwgMHgwMiwgMHgwMywgMHg3YywgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwNywgMHhmMH0gfSwKLXsgMHgwMWEwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZTgsIDB4N2V9IH0sCi17IDB4MDFiMCwJMTYsCXsweDAzLCAweDEyLCAweDBkLCAweGQ1LCAweGQyLCAweDA2LCAweDEyLCAweDBkLCAweDBkLCAweDAyLCAweDAzLCAweDdjLCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoteyAweDAxYzAsCTE2LAl7MHg3NSwgMHgyOSwgMHgwMCwgMHhmNSwgMHgyYSwgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyOSwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMH0gfSwKLXsgMHgwMWQwLAkxNiwJezB4NzUsIDB4MmIsIDB4MDAsIDB4ZjUsIDB4MmMsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZTQsIDB4ZWUsIDB4NDIsIDB4MmIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTB9IH0sCi17IDB4MDFlMCwJMTYsCXsweDY0LCAweGMwLCAweDYwLCAweDAzLCAweDAyLCAweDAyLCAweGM5LCAweGU1LCAweDJjLCAweDQ1LCAweDJiLCAweDcwLCAweDAzLCAweDAyLCAweDAzLCAweDdjfSB9LAoteyAweDAxZjAsCTE2LAl7MHhjMywgMHhlNSwgMHgyYywgMHg5NCwgMHg0MCwgMHhlNSwgMHgyYiwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOCwgMHg4NSwgMHgyYiwgMHgyZCwgMHg4NSwgMHgyY30gfSwKLXsgMHgwMjAwLAkxNiwJezB4MmUsIDB4ODAsIDB4MDYsIDB4NzUsIDB4MmQsIDB4MDAsIDB4NzUsIDB4MmUsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NjQsIDB4YTMsIDB4NzB9IH0sCi17IDB4MDIxMCwJMTYsCXsweDM0LCAweGY1LCAweDMxLCAweGY1LCAweDMyLCAweGMzLCAweGU1LCAweDMyLCAweDk1LCAweDJlLCAweGU1LCAweDMxLCAweDk1LCAweDJkLCAweDUwLCAweDVjfSB9LAoteyAweDAyMjAsCTE2LAl7MHhlNSwgMHgyYSwgMHgyNSwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzMSwgMHgzNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwMjMwLAkxNiwJezB4MjUsIDB4MzIsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzIsIDB4ZTUsIDB4MzIsIDB4NzB9IH0sCi17IDB4MDI0MCwJMTYsCXsweDAyLCAweDA1LCAweDMxLCAweDgwLCAweGQwLCAweGU0LCAweGY1LCAweDMxLCAweGY1LCAweDMyLCAweGMzLCAweGU1LCAweDMyLCAweDk1LCAweDJlLCAweGU1fSB9LAoteyAweDAyNTAsCTE2LAl7MHgzMSwgMHg5NSwgMHgyZCwgMHg1MCwgMHgxOCwgMHg3NCwgMHgwMCwgMHgyNSwgMHgzMiwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKLXsgMHgwMjYwLAkxNiwJezB4NzQsIDB4Y2QsIDB4ZjAsIDB4MDUsIDB4MzIsIDB4ZTUsIDB4MzIsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzEsIDB4ODAsIDB4ZGQsIDB4YWYsIDB4MmEsIDB4YWV9IH0sCi17IDB4MDI3MCwJMTYsCXsweDI5LCAweGFkLCAweDJlLCAweDdhLCAweDdmLCAweDc5LCAweDAwLCAweDdiLCAweDAwLCAweDEyLCAweDBiLCAweGY0LCAweDkwLCAweDdmLCAweGI1LCAweGU1fSB9LAoteyAweDAyODAsCTE2LAl7MHgyZSwgMHhmMCwgMHhlNSwgMHgyZSwgMHgyNSwgMHgyYSwgMHhmNSwgMHgyYSwgMHhlNSwgMHgyZCwgMHgzNSwgMHgyOSwgMHhmNSwgMHgyOSwgMHhjMywgMHhlNX0gfSwKLXsgMHgwMjkwLAkxNiwJezB4MmMsIDB4OTUsIDB4MmUsIDB4ZjUsIDB4MmMsIDB4ZTUsIDB4MmIsIDB4OTUsIDB4MmQsIDB4ZjUsIDB4MmIsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MDJhMCwJMTYsCXsweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJmLCAweDAwLCAweGY1LCAweDMwLCAweGQzLCAweDk0LCAweDAwLCAweGU1LCAweDJmLCAweDk0LCAweDAwLCAweDUwfSB9LAoteyAweDAyYjAsCTE2LAl7MHgwYywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKLXsgMHgwMmMwLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTIsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTcsIDB4ODAsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4NjQsIDB4NDAsIDB4NjB9IH0sCi17IDB4MDJkMCwJMTYsCXsweDAzLCAweDAyLCAweDAzLCAweDdjLCAweGU1LCAweDJjLCAweDQ1LCAweDJiLCAweDcwLCAweDAzLCAweDAyLCAweDAzLCAweDdjLCAweGU0LCAweDkwLCAweDdmfSB9LAoteyAweDAyZTAsCTE2LAl7MHhjNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg3NSwgMHgyZiwgMHgwMCwgMHhmNSwgMHgzMCwgMHhkM30gfSwKLXsgMHgwMmYwLAkxNiwJezB4OTQsIDB4MDAsIDB4ZTUsIDB4MmYsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDksIDB4ODB9IH0sCi17IDB4MDMwMCwJMTYsCXsweGY3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUzLCAweGY5LCAweDkwLCAweDdmLCAweGM1LCAweGUwLCAweDc1LCAweDJkLCAweDAwLCAweGY1fSB9LAoteyAweDAzMTAsCTE2LAl7MHgyZSwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MCwgMHgzOCwgMHg5MCwgMHgyMCwgMHg2YiwgMHhmMCwgMHhmNSwgMHgzMSwgMHhmNX0gfSwKLXsgMHgwMzIwLAkxNiwJezB4MzIsIDB4YzMsIDB4ZTUsIDB4MzIsIDB4OTUsIDB4MmUsIDB4ZTUsIDB4MzEsIDB4OTUsIDB4MmQsIDB4NTAsIDB4MzQsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MzJ9IH0sCi17IDB4MDMzMCwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdlLCAweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDJhLCAweDI1LCAweDMyLCAweGY1LCAweDgyLCAweGU1fSB9LAoteyAweDAzNDAsCTE2LAl7MHgzMSwgMHgzNSwgMHgyOSwgMHhmNSwgMHg4MywgMHhlZiwgMHhmMCwgMHgwNSwgMHgzMiwgMHhlNSwgMHgzMiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMSwgMHg4MH0gfSwKLXsgMHgwMzUwLAkxNiwJezB4ZDAsIDB4YWYsIDB4MmEsIDB4YWUsIDB4MjksIDB4YWQsIDB4MmUsIDB4N2EsIDB4N2UsIDB4NzksIDB4YzAsIDB4N2IsIDB4YzAsIDB4MTIsIDB4MGMsIDB4ODB9IH0sCi17IDB4MDM2MCwJMTYsCXsweGU1LCAweDJlLCAweDI1LCAweDJhLCAweGY1LCAweDJhLCAweGU1LCAweDJkLCAweDM1LCAweDI5LCAweGY1LCAweDI5LCAweGMzLCAweGU1LCAweDJjLCAweDk1fSB9LAoteyAweDAzNzAsCTEzLAl7MHgyZSwgMHhmNSwgMHgyYywgMHhlNSwgMHgyYiwgMHg5NSwgMHgyZCwgMHhmNSwgMHgyYiwgMHgwMiwgMHgwMiwgMHhkNCwgMHhjM30gfSwKLXsgMHgwMzdkLAkxLAl7MHgyMn0gfSwKLXsgMHgwMzdlLAkxNiwJezB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NTYsIDB4MTQsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4ZDIsIDB4MjR9IH0sCi17IDB4MDM4ZSwJMTYsCXsweGZlLCAweDcwLCAweDAzLCAweDAyLCAweDA1LCAweDQ2LCAweDI0LCAweGZiLCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDUwLCAweDE0LCAweDcwLCAweDAzfSB9LAoteyAweDAzOWUsCTE2LAl7MHgwMiwgMHgwNCwgMHg0YSwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHgzZSwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg0NCwgMHgyNH0gfSwKLXsgMHgwM2FlLAkxNiwJezB4MDUsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4OWEsIDB4MTIsIDB4MGUsIDB4N2IsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDNiZSwJMTYsCXsweGViLCAweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE2LCAweDE0LCAweDYwLCAweDQwLCAweDI0LCAweDAyLCAweDcwLCAweDY5LCAweDc0LCAweDExLCAweDkwfSB9LAoteyAweDAzY2UsCTE2LAl7MHg3ZiwgMHhkNCwgMHhmMCwgMHg3NCwgMHgwMCwgMHg5MCwgMHg3ZiwgMHhkNSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMH0gfSwKLXsgMHgwM2RlLAkxNiwJezB4ZmYsIDB4MTIsIDB4MGIsIDB4NTgsIDB4OGIsIDB4MjYsIDB4OGEsIDB4MjcsIDB4ODksIDB4MjgsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDJ9IH0sCi17IDB4MDNlZSwJMTYsCXsweGVlLCAweDkwLCAweDdmLCAweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwfSB9LAoteyAweDAzZmUsCTE2LAl7MHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmZiwgMHgxMiwgMHgwY30gfSwKLXsgMHgwNDBlLAkxNiwJezB4M2YsIDB4OGIsIDB4MjYsIDB4OGEsIDB4MjcsIDB4ODksIDB4MjgsIDB4ZWEsIDB4NDksIDB4NjAsIDB4MTEsIDB4YWUsIDB4MDIsIDB4ZWUsIDB4OTAsIDB4N2Z9IH0sCi17IDB4MDQxZSwJMTYsCXsweGQ0LCAweGYwLCAweGFmLCAweDAxLCAweGVmLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGI0LCAweGUwfSB9LAoteyAweDA0MmUsCTE2LAl7MHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYn0gfSwKLXsgMHgwNDNlLAkxNiwJezB4MTIsIDB4MGUsIDB4NTIsIDB4MDIsIDB4MDUsIDB4YWIsIDB4MTIsIDB4MGUsIDB4NjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4MTIsIDB4MGEsIDB4ZjcsIDB4MDJ9IH0sCi17IDB4MDQ0ZSwJMTYsCXsweDA1LCAweGFiLCAweDEyLCAweDA4LCAweGYxLCAweDAyLCAweDA1LCAweGFiLCAweDEyLCAweDBlLCAweDdkLCAweDQwLCAweDAzLCAweDAyLCAweDA1LCAweGFifSB9LAoteyAweDA0NWUsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOCwgMHhlMCwgMHgyNCwgMHg3ZiwgMHg2MCwgMHgyNCwgMHgxNCwgMHg2MCwgMHgzMSwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1YiwgMHhhMn0gfSwKLXsgMHgwNDZlLAkxNiwJezB4MDAsIDB4ZTQsIDB4MzMsIDB4ZmYsIDB4MjUsIDB4ZTAsIDB4ZmYsIDB4YTIsIDB4MDIsIDB4ZTQsIDB4MzMsIDB4NGYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjB9IH0sCi17IDB4MDQ3ZSwJMTYsCXsweGU0LCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGFiLCAweGU0LCAweDkwLCAweDdmLCAweDAwfSB9LAoteyAweDA0OGUsCTE2LAl7MHhmMCwgMHhhMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMH0gfSwKLXsgMHgwNDllLAkxNiwJezB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjR9IH0sCi17IDB4MDRhZSwJMTYsCXsweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweGUwLCAweDU0LCAweGZkLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweGU0LCAweGEzfSB9LAoteyAweDA0YmUsCTE2LAl7MHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMX0gfSwKLXsgMHgwNGNlLAkxNiwJezB4ZjAsIDB4MDIsIDB4MDUsIDB4YWIsIDB4MTIsIDB4MGUsIDB4N2YsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YWIsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTB9IH0sCi17IDB4MDRkZSwJMTYsCXsweDI0LCAweGZlLCAweDYwLCAweDFkLCAweDI0LCAweDAyLCAweDYwLCAweDAzLCAweDAyLCAweDA1LCAweGFiLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0fSB9LAoteyAweDA0ZWUsCTE2LAl7MHgwMSwgMHgwNSwgMHhjMiwgMHgwMCwgMHgwMiwgMHgwNSwgMHhhYiwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHgwMiwgMHgwNX0gfSwKLXsgMHgwNGZlLAkxNiwJezB4YWIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4NzAsIDB4MzgsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzR9IH0sCi17IDB4MDUwZSwJMTYsCXsweDU0LCAweDBmLCAweGZmLCAweGUwLCAweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmfSB9LAoteyAweDA1MWUsCTE2LAl7MHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHg1NCwgMHg4MCwgMHhmZiwgMHgxMywgMHgxMywgMHgxMywgMHg1NCwgMHgxZn0gfSwKLXsgMHgwNTJlLAkxNiwJezB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4OTAsIDB4N2YsIDB4ZDcsIDB4ZjAsIDB4ZTAsIDB4NDQsIDB4MjAsIDB4ZjAsIDB4ODAsIDB4NmUsIDB4OTB9IH0sCi17IDB4MDUzZSwJMTYsCXsweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDgwLCAweDY1LCAweDEyLCAweDBlLCAweDgxLCAweDUwLCAweDYwLCAweDkwLCAweDdmLCAweGU4fSB9LAoteyAweDA1NGUsCTE2LAl7MHhlMCwgMHgyNCwgMHhmZSwgMHg2MCwgMHgxOCwgMHgyNCwgMHgwMiwgMHg3MCwgMHg1NCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhiNCwgMHgwMSwgMHgwNH0gfSwKLXsgMHgwNTVlLAkxNiwJezB4ZDIsIDB4MDAsIDB4ODAsIDB4NDksIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZWF9IH0sCi17IDB4MDU2ZSwJMTYsCXsweGUwLCAweDcwLCAweDIwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweGY0LCAweDU0LCAweDgwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweGZmLCAweGUwfSB9LAoteyAweDA1N2UsCTE2LAl7MHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNCwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4MywgMHg3NCwgMHgwMX0gfSwKLXsgMHgwNThlLAkxNiwJezB4ZjAsIDB4ODAsIDB4MWEsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MTEsIDB4ZTQsIDB4OTAsIDB4MjAsIDB4NmF9IH0sCi17IDB4MDU5ZSwJMTYsCXsweGYwLCAweDEyLCAweDAxLCAweDAwLCAweDUwLCAweDA3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0fSB9LAoteyAweDA1YWUsCTQsCXsweGUwLCAweDQ0LCAweDAyLCAweGYwfSB9LAoteyAweDA1YjIsCTEsCXsweDIyfSB9LAoteyAweDA1YjMsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhjMCwgMHg4NSwgMHhjMCwgMHg4NCwgMHhjMCwgMHg4NiwgMHg3NSwgMHg4NiwgMHgwMCwgMHhjMH0gfSwKLXsgMHgwNWMzLAkxNiwJezB4ZDAsIDB4YzAsIDB4MDAsIDB4YzAsIDB4MDEsIDB4YzAsIDB4MDIsIDB4YzAsIDB4MDMsIDB4YzAsIDB4MDYsIDB4YzAsIDB4MDcsIDB4OTAsIDB4N2YsIDB4YTV9IH0sCi17IDB4MDVkMywJMTYsCXsweGUwLCAweDMwLCAweGUyLCAweDA2LCAweDc1LCAweDBkLCAweDA2LCAweDAyLCAweDA2LCAweDdmLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDIwLCAweGUxfSB9LAoteyAweDA1ZTMsCTE2LAl7MHgwYywgMHhlNSwgMHgwZCwgMHg2NCwgMHgwMiwgMHg2MCwgMHgwNiwgMHg3NSwgMHgwZCwgMHgwNywgMHgwMiwgMHgwNiwgMHg3ZiwgMHhhZiwgMHgwZCwgMHhlZn0gfSwKLXsgMHgwNWYzLAkxNiwJezB4MjQsIDB4ZmUsIDB4NjAsIDB4NDgsIDB4MTQsIDB4NjAsIDB4MmMsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4NzcsIDB4MjQsIDB4MDQsIDB4NjAsIDB4MDMsIDB4MDJ9IH0sCi17IDB4MDYwMywJMTYsCXsweDA2LCAweDdmLCAweGFiLCAweDA5LCAweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFmLCAweDBjLCAweDA1LCAweDBjLCAweDhmLCAweDgyLCAweDc1LCAweDgzfSB9LAoteyAweDA2MTMsCTE2LAl7MHgwMCwgMHgxMiwgMHgwNywgMHg4NSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHhlNSwgMHgwYywgMHg2NSwgMHgwOCwgMHg3MCwgMHg1ZSwgMHg3NSwgMHgwZH0gfSwKLXsgMHgwNjIzLAkxNiwJezB4MDUsIDB4ODAsIDB4NTksIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4YWIsIDB4MDksIDB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWUsIDB4MGMsIDB4OGV9IH0sCi17IDB4MDYzMywJMTYsCXsweDgyLCAweDc1LCAweDgzLCAweDAwLCAweDEyLCAweDA3LCAweGIyLCAweDc1LCAweDBkLCAweDAyLCAweDgwLCAweDQwLCAweGU1LCAweDA4LCAweDI0LCAweGZlfSB9LAoteyAweDA2NDMsCTE2LAl7MHhiNSwgMHgwYywgMHgwNywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHhlNSwgMHgwOCwgMHgxNCwgMHhiNSwgMHgwYywgMHgwYX0gfSwKLXsgMHgwNjUzLAkxNiwJezB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZTAsIDB4YWIsIDB4MDl9IH0sCi17IDB4MDY2MywJMTYsCXsweGFhLCAweDBhLCAweGE5LCAweDBiLCAweGFlLCAweDBjLCAweDhlLCAweDgyLCAweDc1LCAweDgzLCAweDAwLCAweDEyLCAweDA3LCAweGIyLCAweDA1LCAweDBjfSB9LAoteyAweDA2NzMsCTE2LAl7MHg4MCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgwZCwgMHg1MywgMHg5MSwgMHhkZiwgMHhkMH0gfSwKLXsgMHgwNjgzLAkxNiwJezB4MDcsIDB4ZDAsIDB4MDYsIDB4ZDAsIDB4MDMsIDB4ZDAsIDB4MDIsIDB4ZDAsIDB4MDEsIDB4ZDAsIDB4MDAsIDB4ZDAsIDB4ZDAsIDB4ZDAsIDB4ODYsIDB4ZDB9IH0sCi17IDB4MDY5MywJMTAsCXsweDg0LCAweGQwLCAweDg1LCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDA2OWQsCTE2LAl7MHhjMiwgMHgwNCwgMHhkMiwgMHgwNSwgMHhlNCwgMHhmNSwgMHgyNSwgMHhjMiwgMHgwMywgMHhjMiwgMHgwMCwgMHhjMiwgMHgwMiwgMHhjMiwgMHgwMSwgMHgxMn0gfSwKLXsgMHgwNmFkLAkxNiwJezB4MGUsIDB4NzQsIDB4ZDIsIDB4ZTgsIDB4NDMsIDB4ZDgsIDB4MjAsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YTl9IH0sCi17IDB4MDZiZCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGFhLCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweDkwfSB9LAoteyAweDA2Y2QsCTE2LAl7MHg3ZiwgMHg5MywgMHg3NCwgMHgzMCwgMHhmMCwgMHgxMiwgMHgwYSwgMHgxOSwgMHg3NSwgMHgyNCwgMHg0OCwgMHg3NSwgMHgyMywgMHg5MiwgMHg3NSwgMHgyMn0gfSwKLXsgMHgwNmRkLAkxNiwJezB4MDAsIDB4NzUsIDB4MjEsIDB4MDAsIDB4ZTQsIDB4ZmYsIDB4ZmUsIDB4N2UsIDB4MDUsIDB4OTAsIDB4MjAsIDB4NjgsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4YTN9IH0sCi17IDB4MDZlZCwJMTYsCXsweGRlLCAweGZjLCAweDdlLCAweDAwLCAweDdmLCAweDA1LCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlfSB9LAoteyAweDA2ZmQsCTE2LAl7MHhlMCwgMHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHgxMiwgMHgwZSwgMHg2OCwgMHgzMCwgMHgwMSwgMHgwYSwgMHhlNCwgMHg5MCwgMHgyMCwgMHg2OX0gfSwKLXsgMHgwNzBkLAkxNiwJezB4ZjAsIDB4MTIsIDB4MDMsIDB4N2UsIDB4YzIsIDB4MDEsIDB4MzAsIDB4MDQsIDB4MWEsIDB4MTIsIDB4MGUsIDB4NzcsIDB4NTAsIDB4MTMsIDB4MTIsIDB4MDl9IH0sCi17IDB4MDcxZCwJMTYsCXsweDAwLCAweDMwLCAweDAwLCAweDA3LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweGYzLCAweDEyLCAweDBkLCAweDhiLCAweDEyLCAweDBlfSB9LAoteyAweDA3MmQsCTE2LAl7MHg3OSwgMHhjMiwgMHgwMywgMHg3ZiwgMHhmZiwgMHg3ZSwgMHhmZiwgMHg3ZCwgMHhmZiwgMHg3YywgMHhmZiwgMHg3OCwgMHgyMSwgMHgxMiwgMHgwOCwgMHgxZH0gfSwKLXsgMHgwNzNkLAkxNiwJezB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDAsIDB4NzgsIDB4MDAsIDB4YzMsIDB4MTIsIDB4MDgsIDB4MGMsIDB4NzAsIDB4MWIsIDB4NzUsIDB4MjR9IH0sCi17IDB4MDc0ZCwJMTYsCXsweDQ4LCAweDc1LCAweDIzLCAweDkyLCAweGY1LCAweDIyLCAweGY1LCAweDIxLCAweDYzLCAweDI1LCAweGZmLCAweDkwLCAweDIwLCAweDY4LCAweGU1LCAweDI1fSB9LAoteyAweDA3NWQsCTE0LAl7MHhmMCwgMHhhMywgMHg3NCwgMHgwMSwgMHhmMCwgMHhhMywgMHhmMCwgMHhhMywgMHhmMCwgMHgxMiwgMHgwOCwgMHhmZiwgMHg4MCwgMHg5Yn0gfSwKLXsgMHgwNzZiLAkxLAl7MHgyMn0gfSwKLXsgMHgwNzZjLAkxNiwJezB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDJ9IH0sCi17IDB4MDc3YywJOSwJezB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDc4NSwJMTYsCXsweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwfSB9LAoteyAweDA3OTUsCTE2LAl7MHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMn0gfSwKLXsgMHgwN2E1LAkxMywJezB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDdiMiwJMTYsCXsweGY4LCAweGJiLCAweDAxLCAweDBkLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU4LCAweGYwfSB9LAoteyAweDA3YzIsCTE2LAl7MHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOH0gfSwKLXsgMHgwN2QyLAkyLAl7MHhmMiwgMHgyMn0gfSwKLXsgMHgwN2Q0LAkxNiwJezB4YmIsIDB4MDEsIDB4MTAsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4ZjB9IH0sCi17IDB4MDdlNCwJMTYsCXsweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlfSB9LAoteyAweDA3ZjQsCTE2LAl7MHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNSwgMHhmMCwgMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4M30gfSwKLXsgMHgwODA0LAk4LAl7MHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMn0gfSwKLXsgMHgwODBjLAkxNiwJezB4ZWIsIDB4OWYsIDB4ZjUsIDB4ZjAsIDB4ZWEsIDB4OWUsIDB4NDIsIDB4ZjAsIDB4ZTksIDB4OWQsIDB4NDIsIDB4ZjAsIDB4ZTgsIDB4OWMsIDB4NDUsIDB4ZjB9IH0sCi17IDB4MDgxYywJMSwJezB4MjJ9IH0sCi17IDB4MDgxZCwJMTYsCXsweDA4LCAweDA4LCAweDA4LCAweGU2LCAweDJmLCAweGZmLCAweGY2LCAweDE4LCAweGU2LCAweDNlLCAweGZlLCAweGY2LCAweDE4LCAweGU2LCAweDNkLCAweGZkfSB9LAoteyAweDA4MmQsCTcsCXsweGY2LCAweDE4LCAweGU2LCAweDNjLCAweGZjLCAweGY2LCAweDIyfSB9LAoteyAweDA4MzQsCTQsCXsweDhjLCAweDM0LCAweDhkLCAweDM1fSB9LAoteyAweDA4MzgsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHhjMCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgzNiwgMHhmNSwgMHgzNywgMHhjMywgMHhlNSwgMHgzNywgMHg5NX0gfSwKLXsgMHgwODQ4LAkxNiwJezB4MzUsIDB4ZTUsIDB4MzYsIDB4OTUsIDB4MzQsIDB4NTAsIDB4NjksIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjV9IH0sCi17IDB4MDg1OCwJMTYsCXsweDgzLCAweDc0LCAweGZmLCAweGYwLCAweGY0LCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM3LCAweGY1LCAweDgyLCAweGU1LCAweDM2fSB9LAoteyAweDA4NjgsCTE2LAl7MHgzZSwgMHhmNSwgMHg4MywgMHhlNCwgMHhmMCwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNn0gfSwKLXsgMHgwODc4LAkxNiwJezB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4YWEsIDB4ZjAsIDB4NjQsIDB4YWEsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjV9IH0sCi17IDB4MDg4OCwJMTYsCXsweDgyLCAweGU1LCAweDM2LCAweDNlLCAweGY1LCAweDgzLCAweDc0LCAweDU1LCAweGYwLCAweDY0LCAweDU1LCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGFkfSB9LAoteyAweDA4OTgsCTE2LAl7MHgzNywgMHhlNSwgMHgzNywgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNSwgMHg4MywgMHhlZCwgMHhmMCwgMHhmYywgMHhhYywgMHgwNX0gfSwKLXsgMHgwOGE4LAkxNiwJezB4ZWQsIDB4NmMsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4MDUsIDB4MzcsIDB4ZTUsIDB4MzcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzYsIDB4ODAsIDB4OGN9IH0sCi17IDB4MDhiOCwJMTYsCXsweGU0LCAweGY1LCAweDM2LCAweGY1LCAweDM3LCAweGMzLCAweGU1LCAweDM3LCAweDk1LCAweDM1LCAweGU1LCAweDM2LCAweDk1LCAweDM0LCAweDUwLCAweDI3fSB9LAoteyAweDA4YzgsCTE2LAl7MHhlZiwgMHgyNSwgMHgzNywgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNiwgMHgzZSwgMHhmNSwgMHg4MywgMHhlMCwgMHg2NSwgMHgzNywgMHg2MCwgMHgwMiwgMHhjM30gfSwKLXsgMHgwOGQ4LAkxNiwJezB4MjIsIDB4ZWYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzYsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4ZjAsIDB4MDUsIDB4MzcsIDB4ZTV9IH0sCi17IDB4MDhlOCwJOCwJezB4MzcsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzYsIDB4ODAsIDB4Y2UsIDB4ZDN9IH0sCi17IDB4MDhmMCwJMSwJezB4MjJ9IH0sCi17IDB4MDhmMSwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDEwLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoteyAweDA4ZmYsCTEsCXsweDIyfSB9LAoteyAweDA5MDAsCTksCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDc0fSB9LAoteyAweDA5N2QsCTE2LAl7MHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwOThkLAkxMiwJezB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4M2EsIDB4MDIsIDB4MDksIDB4ZDR9IH0sCi17IDB4MDk5OSwJMTYsCXsweDAyLCAweDA2LCAweDlkLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyfSB9LAoteyAweDA5YTksCTE2LAl7MHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzM30gfSwKLXsgMHgwOWI5LAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGZ9IH0sCi17IDB4MDljOSwJMTYsCXsweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDBlLCAweDJkLCAweGU0LCAweDdlfSB9LAoteyAweDA5ZDksCTE2LAl7MHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5M30gfSwKLXsgMHgwOWU5LAkxNiwJezB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTN9IH0sCi17IDB4MDlmOSwJMTYsCXsweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhfSB9LAoteyAweDBhMDksCTE2LAl7MHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZX0gfSwKLXsgMHgwYTE5LAkxNiwJezB4ZTQsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4ZmUsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ODl9IH0sCi17IDB4MGEyOSwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGNmLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmfSB9LAoteyAweDBhMzksCTE2LAl7MHg5NiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHhkNSwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwYTQ5LAkxNiwJezB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4N2YsIDB4MDV9IH0sCi17IDB4MGE1OSwJMTYsCXsweDdlLCAweDAwLCAweDEyLCAweDBkLCAweGQ1LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoteyAweDBhNjksCTE2LAl7MHgxMiwgMHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZH0gfSwKLXsgMHgwYTc5LAkxNiwJezB4ZDUsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4MjJ9IH0sCi17IDB4MGE4OSwJMTYsCXsweDc1LCAweDMzLCAweDAxLCAweGU1LCAweDMzLCAweDYwLCAweDFiLCAweDdmLCAweDAxLCAweDEyLCAweDBlLCAweDE4LCAweDdmLCAweDAwLCAweDdlLCAweDBlfSB9LAoteyAweDBhOTksCTE2LAl7MHg3ZCwgMHgwMCwgMHg3YywgMHgwMSwgMHgxMiwgMHgwOCwgMHgzNCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMywgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMn0gfSwKLXsgMHgwYWE5LAkxNiwJezB4MGUsIDB4MTgsIDB4ZTUsIDB4MzMsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDIsIDB4MTIsIDB4MGUsIDB4MTgsIDB4N2YsIDB4MDAsIDB4N2UsIDB4ODAsIDB4N2R9IH0sCi17IDB4MGFiOSwJMTYsCXsweDAwLCAweDdjLCAweDgwLCAweDEyLCAweDA4LCAweDM0LCAweGU0LCAweDMzLCAweGY1LCAweDMzLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyLCAweDBlfSB9LAoteyAweDBhYzksCTE2LAl7MHgxOCwgMHhlNSwgMHgzMywgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMywgMHgxMiwgMHgwZSwgMHgxOCwgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgyMCwgMHg3ZCwgMHg0MH0gfSwKLXsgMHgwYWQ5LAkxNiwJezB4N2MsIDB4NWIsIDB4MTIsIDB4MDgsIDB4MzQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzMsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGUsIDB4MTh9IH0sCi17IDB4MGFlOSwJMTMsCXsweGU1LCAweDMzLCAweDYwLCAweDA1LCAweGU0LCAweGZmLCAweDEyLCAweDBlLCAweDE4LCAweGU1LCAweDMzLCAweDI0LCAweGZmfSB9LAoteyAweDBhZjYsCTEsCXsweDIyfSB9LAoteyAweDBhZjcsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDEwLCAweGQzLCAweDIyfSB9LAoteyAweDBhZmYsCTEsCXsweDMyfSB9LAoteyAweDBiMDAsCTE2LAl7MHgwMiwgMHgwZCwgMHhhNSwgMHgwMCwgMHgwMiwgMHgwZCwgMHhlYywgMHgwMCwgMHgwMiwgMHgwZCwgMHg3MCwgMHgwMCwgMHgwMiwgMHgwZCwgMHhiZCwgMHgwMH0gfSwKLXsgMHgwYjEwLAkxNiwJezB4MDIsIDB4MGUsIDB4MDIsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZmYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4ODQsIDB4MDB9IH0sCi17IDB4MGIyMCwJMTYsCXsweDAyLCAweDBlLCAweDg1LCAweDAwLCAweDAyLCAweDBlLCAweDg2LCAweDAwLCAweDAyLCAweDBlLCAweDg3LCAweDAwLCAweDAyLCAweDBlLCAweDg4LCAweDAwfSB9LAoteyAweDBiMzAsCTE2LAl7MHgwMiwgMHgwZSwgMHg4OSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4YSwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4YiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg4YywgMHgwMH0gfSwKLXsgMHgwYjQwLAkxNiwJezB4MDIsIDB4MGUsIDB4OGQsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGUsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OGYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OTAsIDB4MDB9IH0sCi17IDB4MGI1MCwJOCwJezB4MDIsIDB4MGUsIDB4OTEsIDB4MDAsIDB4MDIsIDB4MGUsIDB4OTIsIDB4MDB9IH0sCi17IDB4MGI1OCwJMTYsCXsweGU0LCAweGZlLCAweDc1LCAweDJiLCAweGZmLCAweDc1LCAweDJjLCAweDExLCAweDc1LCAweDJkLCAweDEyLCAweGFiLCAweDJiLCAweGFhLCAweDJjLCAweGE5fSB9LAoteyAweDBiNjgsCTE2LAl7MHgyZCwgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwNywgMHg4NSwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNX0gfSwKLXsgMHgwYjc4LAkxNiwJezB4MDcsIDB4MDEsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MDcsIDB4ZDQsIDB4ODUsIDB4ZjAsIDB4MjksIDB4ZjUsIDB4MmEsIDB4NjIsIDB4Mjl9IH0sCi17IDB4MGI4OCwJMTYsCXsweGU1LCAweDI5LCAweDYyLCAweDJhLCAweGU1LCAweDJhLCAweDYyLCAweDI5LCAweDI5LCAweGZkLCAweGU1LCAweDI5LCAweDNhLCAweGE5LCAweDA1LCAweDc1fSB9LAoteyAweDBiOTgsCTE0LAl7MHgyYiwgMHhmZiwgMHhmNSwgMHgyYywgMHg4OSwgMHgyZCwgMHg4MCwgMHhjMywgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwYmE2LAkxLAl7MHgyMn0gfSwKLXsgMHgwYmE3LAk2LAl7MHhhYiwgMHgwNywgMHhhYSwgMHgwNiwgMHhhYywgMHgwNX0gfSwKLXsgMHgwYmFkLAkxNiwJezB4ZTQsIDB4ZmQsIDB4ZTUsIDB4MTEsIDB4NjAsIDB4MTEsIDB4ZWEsIDB4ZmYsIDB4YWUsIDB4MDUsIDB4MGQsIDB4ZWUsIDB4MjQsIDB4MTAsIDB4ZjUsIDB4ODJ9IH0sCi17IDB4MGJiZCwJMTYsCXsweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGViLCAweGFlLCAweDA1LCAweDBkLCAweDc0LCAweDEwLCAweDJlLCAweGY1LCAweDgyfSB9LAoteyAweDBiY2QsCTE2LAl7MHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYiwgMHhmMCwgMHhhZiwgMHgwNSwgMHgwZCwgMHg3NCwgMHgxMCwgMHgyZiwgMHhmNSwgMHg4MiwgMHhlNH0gfSwKLXsgMHgwYmRkLAkxNiwJezB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4YWYsIDB4MGYsIDB4N2EsIDB4MGYsIDB4N2IsIDB4MTAsIDB4MTIsIDB4MGQsIDB4NTEsIDB4N2Z9IH0sCi17IDB4MGJlZCwJNiwJezB4MGEsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4ZDV9IH0sCi17IDB4MGJmMywJMSwJezB4MjJ9IH0sCi17IDB4MGJmNCwJMTAsCXsweDhlLCAweDMzLCAweDhmLCAweDM0LCAweDhkLCAweDM1LCAweDhhLCAweDM2LCAweDhiLCAweDM3fSB9LAoteyAweDBiZmUsCTE2LAl7MHhlNCwgMHhmZCwgMHhmNSwgMHgzOCwgMHhlNSwgMHgxMSwgMHg2MCwgMHgxMiwgMHhlNSwgMHgzMywgMHhmZiwgMHhhZSwgMHgwNSwgMHgwZCwgMHhlZSwgMHgyNH0gfSwKLXsgMHgwYzBlLAkxNiwJezB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4ZTUsIDB4MzQsIDB4YWUsIDB4MDUsIDB4MGQsIDB4NzR9IH0sCi17IDB4MGMxZSwJMTYsCXsweDEzLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGU1LCAweDM0LCAweGYwLCAweGFmLCAweDBmLCAweDdhLCAweDBmfSB9LAoteyAweDBjMmUsCTE2LAl7MHg3YiwgMHgxMywgMHgxMiwgMHgwZCwgMHg1MSwgMHhhZiwgMHgwZiwgMHhhZCwgMHgzNSwgMHhhYiwgMHgzNywgMHhhYSwgMHgzNiwgMHgxMiwgMHgwZCwgMHgzMn0gfSwKLXsgMHgwYzNlLAkxLAl7MHgyMn0gfSwKLXsgMHgwYzNmLAkyLAl7MHg4ZiwgMHgyOX0gfSwKLXsgMHgwYzQxLAkxNiwJezB4ZTQsIDB4ZjUsIDB4MmEsIDB4NzUsIDB4MmIsIDB4ZmYsIDB4NzUsIDB4MmMsIDB4MTEsIDB4NzUsIDB4MmQsIDB4MzIsIDB4YWIsIDB4MmIsIDB4YWEsIDB4MmN9IH0sCi17IDB4MGM1MSwJMTYsCXsweGE5LCAweDJkLCAweDkwLCAweDAwLCAweDAxLCAweDEyLCAweDA3LCAweDg1LCAweGI0LCAweDAzLCAweDFkLCAweGFmLCAweDJhLCAweDA1LCAweDJhLCAweGVmfSB9LAoteyAweDBjNjEsCTE2LAl7MHhiNSwgMHgyOSwgMHgwMSwgMHgyMiwgMHgxMiwgMHgwNywgMHg2YywgMHg3ZSwgMHgwMCwgMHgyOSwgMHhmZiwgMHhlZSwgMHgzYSwgMHhhOSwgMHgwNywgMHg3NX0gfSwKLXsgMHgwYzcxLAkxNCwJezB4MmIsIDB4ZmYsIDB4ZjUsIDB4MmMsIDB4ODksIDB4MmQsIDB4ODAsIDB4ZDQsIDB4N2IsIDB4MDAsIDB4N2EsIDB4MDAsIDB4NzksIDB4MDB9IH0sCi17IDB4MGM3ZiwJMSwJezB4MjJ9IH0sCi17IDB4MGM4MCwJMTAsCXsweDhlLCAweDMzLCAweDhmLCAweDM0LCAweDhkLCAweDM1LCAweDhhLCAweDM2LCAweDhiLCAweDM3fSB9LAoteyAweDBjOGEsCTE2LAl7MHhlNCwgMHhmNSwgMHgzOCwgMHhlNSwgMHgzOCwgMHhjMywgMHg5NSwgMHgzNSwgMHg1MCwgMHgyMCwgMHgwNSwgMHgzNCwgMHhlNSwgMHgzNCwgMHhhZSwgMHgzM30gfSwKLXsgMHgwYzlhLAkxNiwJezB4NzAsIDB4MDIsIDB4MDUsIDB4MzMsIDB4MTQsIDB4ZmYsIDB4ZTUsIDB4MzcsIDB4MjUsIDB4MzgsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MzYsIDB4ZjV9IH0sCi17IDB4MGNhYSwJMTAsCXsweDgzLCAweGUwLCAweGZkLCAweDEyLCAweDBiLCAweGE3LCAweDA1LCAweDM4LCAweDgwLCAweGQ5fSB9LAoteyAweDBjYjQsCTEsCXsweDIyfSB9LAoteyAweDBjYjUsCTE2LAl7MHhhOSwgMHgwNywgMHhlNSwgMHgwZCwgMHg3MCwgMHgyNSwgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlOSwgMHgyNSwgMHhlMH0gfSwKLXsgMHgwY2M1LAkxNiwJezB4NDQsIDB4MDEsIDB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OGQsIDB4MDgsIDB4YWYsIDB4MDMsIDB4YTksIDB4MDcsIDB4NzUsIDB4MDksIDB4MDEsIDB4OGF9IH0sCi17IDB4MGNkNSwJMTMsCXsweDBhLCAweDg5LCAweDBiLCAweGU0LCAweGY1LCAweDBjLCAweDc1LCAweDBkLCAweDAzLCAweGQzLCAweDIyLCAweGMzLCAweDIyfSB9LAoteyAweDBjZTIsCTE2LAl7MHhhOSwgMHgwNywgMHhlNSwgMHgwZCwgMHg3MCwgMHgyMywgMHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg4MCwgMHhmMCwgMHhlOSwgMHgyNSwgMHhlMH0gfSwKLXsgMHgwY2YyLAkxNiwJezB4OTAsIDB4N2YsIDB4YTYsIDB4ZjAsIDB4OGQsIDB4MDgsIDB4YWYsIDB4MDMsIDB4YTksIDB4MDcsIDB4NzUsIDB4MDksIDB4MDEsIDB4OGEsIDB4MGEsIDB4ODl9IH0sCi17IDB4MGQwMiwJMTEsCXsweDBiLCAweGU0LCAweGY1LCAweDBjLCAweDc1LCAweDBkLCAweDAxLCAweGQzLCAweDIyLCAweGMzLCAweDIyfSB9LAoteyAweDBkMGQsCTE2LAl7MHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmYiwgMHhmMCwgMHhlMCwgMHg0NCwgMHgwOCwgMHhmMCwgMHgzMCwgMHgwNiwgMHgwNCwgMHhlMCwgMHg0NH0gfSwKLXsgMHgwZDFkLAkxNiwJezB4MDIsIDB4ZjAsIDB4N2YsIDB4ZDAsIDB4N2UsIDB4MDcsIDB4MTIsIDB4MGQsIDB4ZDUsIDB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4NTQsIDB4ZjcsIDB4ZjB9IH0sCi17IDB4MGQyZCwJNSwJezB4ZTAsIDB4NDQsIDB4MDQsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MGQzMiwJMTYsCXsweDEyLCAweDBjLCAweGI1LCAweGU1LCAweDBkLCAweDI0LCAweGZhLCAweDYwLCAweDEwLCAweDE0LCAweDYwLCAweDA3LCAweDI0LCAweDA3LCAweDcwLCAweGYzfSB9LAoteyAweDBkNDIsCTE1LAl7MHg3ZiwgMHgwOCwgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNywgMHgyMiwgMHhlNCwgMHhmNSwgMHgwZCwgMHg3ZiwgMHgwNiwgMHgyMn0gfSwKLXsgMHgwZDUxLAkxNiwJezB4MTIsIDB4MGMsIDB4ZTIsIDB4ZTUsIDB4MGQsIDB4MjQsIDB4ZmEsIDB4NjAsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MDcsIDB4MjQsIDB4MDcsIDB4NzAsIDB4ZjN9IH0sCi17IDB4MGQ2MSwJMTUsCXsweDdmLCAweDA4LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA3LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA2LCAweDIyfSB9LAoteyAweDBkNzAsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg5MCwgMHg3ZiwgMHhjNCwgMHhlNCwgMHhmMCwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwZDgwLAkxMSwJezB4YWIsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ4YiwJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDMwLCAweGU3LCAweDEyLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDdmLCAweDE0LCAweDdlLCAweDAwLCAweDEyfSB9LAoteyAweDBkOWIsCTEwLAl7MHgwZCwgMHhkNSwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwZGE1LAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDEsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDF9IH0sCi17IDB4MGRiNSwJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGRiZCwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGQyLCAweDAzLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDA4fSB9LAoteyAweDBkY2QsCTgsCXsweGYwLCAweGQwLCAweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBkZDUsCTE2LAl7MHg4ZSwgMHgzOSwgMHg4ZiwgMHgzYSwgMHhlNSwgMHgzYSwgMHgxNSwgMHgzYSwgMHhhZSwgMHgzOSwgMHg3MCwgMHgwMiwgMHgxNSwgMHgzOSwgMHg0ZSwgMHg2MH0gfSwKLXsgMHgwZGU1LAk3LAl7MHgwNSwgMHgxMiwgMHgwZSwgMHg0MSwgMHg4MCwgMHhlZSwgMHgyMn0gfSwKLXsgMHgwZGVjLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGRmYywJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGUwMiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmLCAweGFiLCAweDc0LCAweDEwLCAweGYwLCAweGQwfSB9LAoteyAweDBlMTIsCTYsCXsweDgyLCAweGQwLCAweDgzLCAweGQwLCAweGUwLCAweDMyfSB9LAoteyAweDBlMTgsCTE2LAl7MHhhZSwgMHgwNywgMHg3ZiwgMHgyMSwgMHg3ZCwgMHgwMSwgMHg3NCwgMHgwMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhhYiwgMHg4Mn0gfSwKLXsgMHgwZTI4LAk1LAl7MHhmYSwgMHgxMiwgMHgwZCwgMHg1MSwgMHgyMn0gfSwKLXsgMHgwZTJkLAkxNiwJezB4NTAsIDB4MGYsIDB4MDAsIDB4YzAsIDB4ZjksIDB4YTQsIDB4YjAsIDB4OTksIDB4OTIsIDB4ODIsIDB4ZjgsIDB4ODAsIDB4OTgsIDB4ODgsIDB4ODMsIDB4YzZ9IH0sCi17IDB4MGUzZCwJMywJezB4YTEsIDB4ODYsIDB4OGV9IH0sCi17IDB4MGU0MCwJMSwJezB4MDB9IH0sCi17IDB4MGU0MSwJMTYsCXsweDc0LCAweDAwLCAweGY1LCAweDg2LCAweDkwLCAweGZkLCAweGE1LCAweDdjLCAweDA1LCAweGEzLCAweGU1LCAweDgyLCAweDQ1LCAweDgzLCAweDcwLCAweGY5fSB9LAoteyAweDBlNTEsCTEsCXsweDIyfSB9LAoteyAweDBlNTIsCTE0LAl7MHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwZTYwLAk4LAl7MHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwZSwgMHhkMywgMHgyMn0gfSwKLXsgMHgwZTY4LAk4LAl7MHhlNCwgMHhmNSwgMHgwZCwgMHhkMiwgMHhlOSwgMHhkMiwgMHhhZiwgMHgyMn0gfSwKLXsgMHgwZTcwLAk0LAl7MHg1MywgMHhkOCwgMHhlZiwgMHgzMn0gfSwKLXsgMHgwZTc0LAkzLAl7MHhkMiwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwZTc3LAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTc5LAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTdiLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTdkLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTdmLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTgxLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTgzLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg0LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg1LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg2LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg3LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg4LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTg5LAkxLAl7MHgzMn0gfSwKLXsgMHgwZThhLAkxLAl7MHgzMn0gfSwKLXsgMHgwZThiLAkxLAl7MHgzMn0gfSwKLXsgMHgwZThjLAkxLAl7MHgzMn0gfSwKLXsgMHgwZThkLAkxLAl7MHgzMn0gfSwKLXsgMHgwZThlLAkxLAl7MHgzMn0gfSwKLXsgMHgwZThmLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTkwLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTkxLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTkyLAkxLAl7MHgzMn0gfSwKLXsgMHgxMTAwLAkxNiwJezB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDcsIDB4MDUsIDB4MTAsIDB4MjcsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDJ9IH0sCi17IDB4MTExMCwJMTYsCXsweDAwLCAweDAxLCAweDA5LCAweDAyLCAweDIwLCAweDAwLCAweDAxLCAweDAxLCAweDAzLCAweGEwLCAweDAwLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDAyfSB9LAoteyAweDExMjAsCTE2LAl7MHhmZiwgMHgwMCwgMHgwMCwgMHgwNCwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MH0gfSwKLXsgMHgxMTMwLAkxNiwJezB4MDAsIDB4MDAsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MjYsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4NjgsIDB4MDB9IH0sCi17IDB4MTE0MCwJMTYsCXsweDZmLCAweDAwLCAweDcyLCAweDAwLCAweDIwLCAweDAwLCAweDQzLCAweDAwLCAweDY4LCAweDAwLCAweDY5LCAweDAwLCAweDcwLCAweDAwLCAweDczLCAweDAwfSB9LAoteyAweDExNTAsCTE2LAl7MHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgyOCwgMHgwMywgMHg0NiwgMHgwMH0gfSwKLXsgMHgxMTYwLAkxNiwJezB4NjksIDB4MDAsIDB4NzIsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4MjAsIDB4MDB9IH0sCi17IDB4MTE3MCwJMTYsCXsweDQ2LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDZkLCAweDAwLCAweDY1LCAweDAwLCAweDU3LCAweDAwLCAweDZmLCAweDAwLCAweDcyLCAweDAwfSB9LAoteyAweDExODAsCTE2LAl7MHg2YiwgMHgwMCwgMHg3MywgMHgwMCwgMHgyYSwgMHgwMywgMHg0MywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2OSwgMHgwMH0gfSwKLXsgMHgxMTkwLAkxNiwJezB4NjcsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDB9IH0sCi17IDB4MTFhMCwJMTYsCXsweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwLCAweDIyLCAweDAzfSB9LAoteyAweDExYjAsCTE2LAl7MHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2MywgMHgwMH0gfSwKLXsgMHgxMWMwLAkxNiwJezB4NjUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDB9IH0sCi17IDB4MTFkMCwJMiwJezB4MDAsIDB4MDB9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07Ci0KLSNlbHNlCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3Qgd2hpdGVoZWF0X2hleF9yZWNvcmQgd2hpdGVoZWF0X2xvYWRlcltdID0gewoteyAweDAwMDAsCTMsCXsweDAyLCAweDA5LCAweDhkfSB9LAoteyAweDAwMzMsCTMsCXsweDAyLCAweDA4LCAweGZifSB9LAoteyAweDAwNDMsCTMsCXsweDAyLCAweDBiLCAweDAwfSB9LAoteyAweDAwNGIsCTMsCXsweDAyLCAweDA1LCAweGFhfSB9LAoteyAweDAxMDAsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg1NCwgMHgxMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg0NCwgMHg1MCwgMHhmNSwgMHgwZiwgMHgxMywgMHhlNH0gfSwKLXsgMHgwMTEwLAkxNiwJezB4MzMsIDB4ZjUsIDB4MTEsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4MjQsIDB4NWUsIDB4YjQsIDB4MDcsIDB4MDAsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDN9IH0sCi17IDB4MDEyMCwJMTYsCXsweDc4LCAweDkwLCAweDAxLCAweDI4LCAweGY4LCAweDI4LCAweDI4LCAweDczLCAweDAyLCAweDAxLCAweGJjLCAweDAyLCAweDAxLCAweGJjLCAweDAyLCAweDAxfSB9LAoteyAweDAxMzAsCTE2LAl7MHg5MSwgMHgwMiwgMHgwMSwgMHgzZCwgMHgwMiwgMHgwMSwgMHg1MywgMHgwMiwgMHgwMSwgMHg2ZiwgMHgwMiwgMHgwMSwgMHg5YSwgMHg5MCwgMHg3ZiwgMHgwMH0gfSwKLXsgMHgwMTQwLAkxNiwJezB4ZTUsIDB4MTEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjB9IH0sCi17IDB4MDE1MCwJMTYsCXsweDAyLCAweDAzLCAweDc4LCAweDkwLCAweDdmLCAweDkyLCAweGUwLCAweGZmLCAweGM0LCAweDU0LCAweDBmLCAweDkwLCAweDdmLCAweDAwLCAweGYwLCAweDkwfSB9LAoteyAweDAxNjAsCTE2LAl7MHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwMywgMHg3OCwgMHgxMn0gfSwKLXsgMHgwMTcwLAkxNiwJezB4MGEsIDB4ODksIDB4NTAsIDB4MDcsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ODAsIDB4MDYsIDB4OTAsIDB4N2YsIDB4MDAsIDB4NzQsIDB4MGZ9IH0sCi17IDB4MDE4MCwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAyLCAweGYwLCAweDAyLCAweDAzfSB9LAoteyAweDAxOTAsCTE2LAl7MHg3OCwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwZiwgMHgwMiwgMHgwMywgMHg3OCwgMHg5MCwgMHg3ZiwgMHgwMCwgMHg3NCwgMHgwNywgMHhmMH0gfSwKLXsgMHgwMWEwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4N2YsIDB4ZTgsIDB4N2V9IH0sCi17IDB4MDFiMCwJMTYsCXsweDAzLCAweDEyLCAweDBkLCAweDk0LCAweGQyLCAweDA2LCAweDEyLCAweDBjLCAweGNjLCAweDAyLCAweDAzLCAweDc4LCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoteyAweDAxYzAsCTE2LAl7MHg3NSwgMHgyOCwgMHgwMCwgMHhmNSwgMHgyOSwgMHhhMywgMHhlMCwgMHhmZSwgMHhlNCwgMHhlZSwgMHg0MiwgMHgyOCwgMHg5MCwgMHg3ZiwgMHhlZSwgMHhlMH0gfSwKLXsgMHgwMWQwLAkxNiwJezB4NzUsIDB4MmEsIDB4MDAsIDB4ZjUsIDB4MmIsIDB4YTMsIDB4ZTAsIDB4ZmUsIDB4ZTQsIDB4ZWUsIDB4NDIsIDB4MmEsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTB9IH0sCi17IDB4MDFlMCwJMTYsCXsweDY0LCAweGMwLCAweDYwLCAweDAzLCAweDAyLCAweDAyLCAweGM5LCAweGU1LCAweDJiLCAweDQ1LCAweDJhLCAweDcwLCAweDAzLCAweDAyLCAweDAzLCAweDc4fSB9LAoteyAweDAxZjAsCTE2LAl7MHhjMywgMHhlNSwgMHgyYiwgMHg5NCwgMHg0MCwgMHhlNSwgMHgyYSwgMHg5NCwgMHgwMCwgMHg1MCwgMHgwOCwgMHg4NSwgMHgyYSwgMHgyYywgMHg4NSwgMHgyYn0gfSwKLXsgMHgwMjAwLAkxNiwJezB4MmQsIDB4ODAsIDB4MDYsIDB4NzUsIDB4MmMsIDB4MDAsIDB4NzUsIDB4MmQsIDB4NDAsIDB4OTAsIDB4N2YsIDB4ZTksIDB4ZTAsIDB4NjQsIDB4YTMsIDB4NzB9IH0sCi17IDB4MDIxMCwJMTYsCXsweDM0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGMzLCAweGU1LCAweDMxLCAweDk1LCAweDJkLCAweGU1LCAweDMwLCAweDk1LCAweDJjLCAweDUwLCAweDVjfSB9LAoteyAweDAyMjAsCTE2LAl7MHhlNSwgMHgyOSwgMHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzMCwgMHgzNSwgMHgyOCwgMHhmNSwgMHg4MywgMHhlMCwgMHhmZiwgMHg3NCwgMHgwMH0gfSwKLXsgMHgwMjMwLAkxNiwJezB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZWYsIDB4ZjAsIDB4MDUsIDB4MzEsIDB4ZTUsIDB4MzEsIDB4NzB9IH0sCi17IDB4MDI0MCwJMTYsCXsweDAyLCAweDA1LCAweDMwLCAweDgwLCAweGQwLCAweGU0LCAweGY1LCAweDMwLCAweGY1LCAweDMxLCAweGMzLCAweGU1LCAweDMxLCAweDk1LCAweDJkLCAweGU1fSB9LAoteyAweDAyNTAsCTE2LAl7MHgzMCwgMHg5NSwgMHgyYywgMHg1MCwgMHgxOCwgMHg3NCwgMHgwMCwgMHgyNSwgMHgzMSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHg3ZiwgMHhmNSwgMHg4M30gfSwKLXsgMHgwMjYwLAkxNiwJezB4NzQsIDB4Y2QsIDB4ZjAsIDB4MDUsIDB4MzEsIDB4ZTUsIDB4MzEsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzAsIDB4ODAsIDB4ZGQsIDB4YWYsIDB4MjksIDB4YWV9IH0sCi17IDB4MDI3MCwJMTYsCXsweDI4LCAweGFkLCAweDJkLCAweDdhLCAweDdmLCAweDc5LCAweDAwLCAweDdiLCAweDAwLCAweDEyLCAweDBiLCAweGY0LCAweDkwLCAweDdmLCAweGI1LCAweGU1fSB9LAoteyAweDAyODAsCTE2LAl7MHgyZCwgMHhmMCwgMHhlNSwgMHgyZCwgMHgyNSwgMHgyOSwgMHhmNSwgMHgyOSwgMHhlNSwgMHgyYywgMHgzNSwgMHgyOCwgMHhmNSwgMHgyOCwgMHhjMywgMHhlNX0gfSwKLXsgMHgwMjkwLAkxNiwJezB4MmIsIDB4OTUsIDB4MmQsIDB4ZjUsIDB4MmIsIDB4ZTUsIDB4MmEsIDB4OTUsIDB4MmMsIDB4ZjUsIDB4MmEsIDB4OTAsIDB4N2YsIDB4OTIsIDB4ZTAsIDB4ZmZ9IH0sCi17IDB4MDJhMCwJMTYsCXsweGM0LCAweDU0LCAweDBmLCAweDc1LCAweDJlLCAweDAwLCAweGY1LCAweDJmLCAweGQzLCAweDk0LCAweDAwLCAweGU1LCAweDJlLCAweDk0LCAweDAwLCAweDUwfSB9LAoteyAweDAyYjAsCTE2LAl7MHgwYywgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgwMywgMHgwMiwgMHgwMSwgMHhlNywgMHg4MCwgMHhmNCwgMHg5MCwgMHg3ZiwgMHhiNH0gfSwKLXsgMHgwMmMwLAkxNiwJezB4ZTAsIDB4MjAsIDB4ZTIsIDB4MDMsIDB4MDIsIDB4MDEsIDB4ZTcsIDB4ODAsIDB4ZjQsIDB4OTAsIDB4N2YsIDB4ZTgsIDB4ZTAsIDB4NjQsIDB4NDAsIDB4NjB9IH0sCi17IDB4MDJkMCwJMTYsCXsweDAzLCAweDAyLCAweDAzLCAweDc4LCAweGU1LCAweDJiLCAweDQ1LCAweDJhLCAweDcwLCAweDAzLCAweDAyLCAweDAzLCAweDc4LCAweGU0LCAweDkwLCAweDdmfSB9LAoteyAweDAyZTAsCTE2LAl7MHhjNSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5MiwgMHhlMCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHg3NSwgMHgyZSwgMHgwMCwgMHhmNSwgMHgyZiwgMHhkM30gfSwKLXsgMHgwMmYwLAkxNiwJezB4OTQsIDB4MDAsIDB4ZTUsIDB4MmUsIDB4OTQsIDB4MDAsIDB4NTAsIDB4MDksIDB4OTAsIDB4N2YsIDB4YzQsIDB4ZTAsIDB4MzAsIDB4ZTEsIDB4MDksIDB4ODB9IH0sCi17IDB4MDMwMCwJMTYsCXsweGY3LCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDIwLCAweGUzLCAweGY5LCAweDkwLCAweDdmLCAweGM1LCAweGUwLCAweDc1LCAweDJjLCAweDAwLCAweGY1fSB9LAoteyAweDAzMTAsCTE2LAl7MHgyZCwgMHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg2NCwgMHhhMywgMHg3MCwgMHgzNCwgMHhmNSwgMHgzMCwgMHhmNSwgMHgzMSwgMHhjMywgMHhlNSwgMHgzMX0gfSwKLXsgMHgwMzIwLAkxNiwJezB4OTUsIDB4MmQsIDB4ZTUsIDB4MzAsIDB4OTUsIDB4MmMsIDB4NTAsIDB4MzQsIDB4NzQsIDB4YzAsIDB4MjUsIDB4MzEsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzR9IH0sCi17IDB4MDMzMCwJMSwJezB4N2V9IH0sCi17IDB4MDMzMSwJMTYsCXsweGY1LCAweDgzLCAweGUwLCAweGZmLCAweGU1LCAweDI5LCAweDI1LCAweDMxLCAweGY1LCAweDgyLCAweGU1LCAweDMwLCAweDM1LCAweDI4LCAweGY1LCAweDgzfSB9LAoteyAweDAzNDEsCTE2LAl7MHhlZiwgMHhmMCwgMHgwNSwgMHgzMSwgMHhlNSwgMHgzMSwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMCwgMHg4MCwgMHhkMCwgMHhhZiwgMHgyOSwgMHhhZSwgMHgyOH0gfSwKLXsgMHgwMzUxLAkxNiwJezB4YWQsIDB4MmQsIDB4N2EsIDB4N2UsIDB4NzksIDB4YzAsIDB4N2IsIDB4YzAsIDB4MTIsIDB4MGMsIDB4M2YsIDB4ZTUsIDB4MmQsIDB4MjUsIDB4MjksIDB4ZjV9IH0sCi17IDB4MDM2MSwJMTYsCXsweDI5LCAweGU1LCAweDJjLCAweDM1LCAweDI4LCAweGY1LCAweDI4LCAweGMzLCAweGU1LCAweDJiLCAweDk1LCAweDJkLCAweGY1LCAweDJiLCAweGU1LCAweDJhfSB9LAoteyAweDAzNzEsCTksCXsweDk1LCAweDJjLCAweGY1LCAweDJhLCAweDAyLCAweDAyLCAweGQ0LCAweGMzLCAweDIyfSB9LAoteyAweDAzN2EsCTE2LAl7MHg5MCwgMHg3ZiwgMHhlOSwgMHhlMCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHg1MiwgMHgxNCwgMHg3MCwgMHgwMywgMHgwMiwgMHgwNCwgMHhjZSwgMHgyNH0gfSwKLXsgMHgwMzhhLAkxNiwJezB4ZmUsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4NDIsIDB4MjQsIDB4ZmIsIDB4NzAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4NGMsIDB4MTQsIDB4NzAsIDB4MDN9IH0sCi17IDB4MDM5YSwJMTYsCXsweDAyLCAweDA0LCAweDQ2LCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDNhLCAweDE0LCAweDcwLCAweDAzLCAweDAyLCAweDA0LCAweDQwLCAweDI0fSB9LAoteyAweDAzYWEsCTE2LAl7MHgwNSwgMHg2MCwgMHgwMywgMHgwMiwgMHgwNSwgMHg5NiwgMHgxMiwgMHgwZSwgMHg0NCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwM2JhLAkxNiwJezB4ZWIsIDB4ZTAsIDB4MjQsIDB4ZmUsIDB4NjAsIDB4MTYsIDB4MTQsIDB4NjAsIDB4NDAsIDB4MjQsIDB4MDIsIDB4NzAsIDB4NjksIDB4NzQsIDB4MTEsIDB4OTB9IH0sCi17IDB4MDNjYSwJMTYsCXsweDdmLCAweGQ0LCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweGQ1LCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGVhLCAweGUwfSB9LAoteyAweDAzZGEsCTE2LAl7MHhmZiwgMHgxMiwgMHgwYiwgMHg1OCwgMHg4YiwgMHgyNSwgMHg4YSwgMHgyNiwgMHg4OSwgMHgyNywgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMn0gfSwKLXsgMHgwM2VhLAkxNiwJezB4ZWUsIDB4OTAsIDB4N2YsIDB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTB9IH0sCi17IDB4MDNmYSwJMTYsCXsweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGZmLCAweDEyLCAweDA4fSB9LAoteyAweDA0MGEsCTE2LAl7MHhiYSwgMHg4YiwgMHgyNSwgMHg4YSwgMHgyNiwgMHg4OSwgMHgyNywgMHhlYSwgMHg0OSwgMHg2MCwgMHgxMSwgMHhhZSwgMHgwMiwgMHhlZSwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNDFhLAkxNiwJezB4ZDQsIDB4ZjAsIDB4YWYsIDB4MDEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4ZDUsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTB9IH0sCi17IDB4MDQyYSwJMTYsCXsweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1LCAweGEyfSB9LAoteyAweDA0M2EsCTE2LAl7MHgxMiwgMHgwZSwgMHgxZiwgMHgwMiwgMHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHgyZCwgMHgwMiwgMHgwNSwgMHhhMiwgMHgxMiwgMHgwYSwgMHhmNywgMHgwMn0gfSwKLXsgMHgwNDRhLAkxNiwJezB4MDUsIDB4YTIsIDB4MTIsIDB4MGUsIDB4MTEsIDB4MDIsIDB4MDUsIDB4YTIsIDB4MTIsIDB4MGUsIDB4NDYsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTJ9IH0sCi17IDB4MDQ1YSwJMTYsCXsweDkwLCAweDdmLCAweGU4LCAweGUwLCAweDI0LCAweDdmLCAweDYwLCAweDI0LCAweDE0LCAweDYwLCAweDMxLCAweDI0LCAweDAyLCAweDcwLCAweDViLCAweGEyfSB9LAoteyAweDA0NmEsCTE2LAl7MHgwMCwgMHhlNCwgMHgzMywgMHhmZiwgMHgyNSwgMHhlMCwgMHhmZiwgMHhhMiwgMHgwMiwgMHhlNCwgMHgzMywgMHg0ZiwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMH0gfSwKLXsgMHgwNDdhLAkxNiwJezB4ZTQsIDB4YTMsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjUsIDB4NzQsIDB4MDIsIDB4ZjAsIDB4MDIsIDB4MDUsIDB4YTIsIDB4ZTQsIDB4OTAsIDB4N2YsIDB4MDB9IH0sCi17IDB4MDQ4YSwJMTYsCXsweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGVjLCAweGUwfSB9LAoteyAweDA0OWEsCTE2LAl7MHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNCwgMHg1NCwgMHgwZiwgMHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHgyNSwgMHhlMCwgMHgyNCwgMHhiNH0gfSwKLXsgMHgwNGFhLAkxNiwJezB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2YsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4OTAsIDB4N2YsIDB4MDAsIDB4ZjAsIDB4ZTQsIDB4YTN9IH0sCi17IDB4MDRiYSwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxfSB9LAoteyAweDA0Y2EsCTE2LAl7MHhmMCwgMHgwMiwgMHgwNSwgMHhhMiwgMHgxMiwgMHgwZSwgMHg0OCwgMHg0MCwgMHgwMywgMHgwMiwgMHgwNSwgMHhhMiwgMHg5MCwgMHg3ZiwgMHhlOCwgMHhlMH0gfSwKLXsgMHgwNGRhLAkxNiwJezB4MjQsIDB4ZmUsIDB4NjAsIDB4MWQsIDB4MjQsIDB4MDIsIDB4NjAsIDB4MDMsIDB4MDIsIDB4MDUsIDB4YTIsIDB4OTAsIDB4N2YsIDB4ZWEsIDB4ZTAsIDB4YjR9IH0sCi17IDB4MDRlYSwJMTYsCXsweDAxLCAweDA1LCAweGMyLCAweDAwLCAweDAyLCAweDA1LCAweGEyLCAweDkwLCAweDdmLCAweGI0LCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDAyLCAweDA1fSB9LAoteyAweDA0ZmEsCTE2LAl7MHhhMiwgMHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHg3MCwgMHgzOCwgMHg5MCwgMHg3ZiwgMHhlYywgMHhlMCwgMHhmNCwgMHg1NCwgMHg4MCwgMHhmZiwgMHhjNH0gfSwKLXsgMHgwNTBhLAkxNiwJezB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTAsIDB4NTQsIDB4MDcsIDB4MmYsIDB4MjUsIDB4ZTAsIDB4MjQsIDB4YjQsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4N2Z9IH0sCi17IDB4MDUxYSwJMTYsCXsweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDkwLCAweDdmLCAweGVjLCAweGUwLCAweDU0LCAweDgwLCAweGZmLCAweDEzLCAweDEzLCAweDEzLCAweDU0LCAweDFmfSB9LAoteyAweDA1MmEsCTE2LAl7MHhmZiwgMHhlMCwgMHg1NCwgMHgwNywgMHgyZiwgMHg5MCwgMHg3ZiwgMHhkNywgMHhmMCwgMHhlMCwgMHg0NCwgMHgyMCwgMHhmMCwgMHg4MCwgMHg2OSwgMHg5MH0gfSwKLXsgMHgwNTNhLAkxNiwJezB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4NjAsIDB4MTIsIDB4MGUsIDB4NGEsIDB4NTAsIDB4NWIsIDB4OTAsIDB4N2YsIDB4ZTh9IH0sCi17IDB4MDU0YSwJMTYsCXsweGUwLCAweDI0LCAweGZlLCAweDYwLCAweDE4LCAweDI0LCAweDAyLCAweDcwLCAweDRmLCAweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGI0LCAweDAxLCAweDA0fSB9LAoteyAweDA1NWEsCTE2LAl7MHhkMiwgMHgwMCwgMHg4MCwgMHg0NCwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgzYiwgMHg5MCwgMHg3ZiwgMHhlYX0gfSwKLXsgMHgwNTZhLAkxNiwJezB4ZTAsIDB4NzAsIDB4MjAsIDB4OTAsIDB4N2YsIDB4ZWMsIDB4ZTAsIDB4ZjQsIDB4NTQsIDB4ODAsIDB4ZmYsIDB4YzQsIDB4NTQsIDB4MGYsIDB4ZmYsIDB4ZTB9IH0sCi17IDB4MDU3YSwJMTYsCXsweDU0LCAweDA3LCAweDJmLCAweDI1LCAweGUwLCAweDI0LCAweGI0LCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDdmLCAweGY1LCAweDgzLCAweDc0LCAweDAxfSB9LAoteyAweDA1OGEsCTE2LAl7MHhmMCwgMHg4MCwgMHgxNSwgMHg5MCwgMHg3ZiwgMHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwYywgMHgxMiwgMHgwMSwgMHgwMCwgMHg1MH0gfSwKLXsgMHgwNTlhLAkxNiwJezB4MDcsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YjQsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4MjJ9IH0sCi17IDB4MDVhYSwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweGMwLCAweDg1LCAweGMwLCAweDg0LCAweGMwLCAweDg2LCAweDc1LCAweDg2LCAweDAwLCAweGMwfSB9LAoteyAweDA1YmEsCTE2LAl7MHhkMCwgMHhjMCwgMHgwMCwgMHhjMCwgMHgwMSwgMHhjMCwgMHgwMiwgMHhjMCwgMHgwMywgMHhjMCwgMHgwNiwgMHhjMCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhhNX0gfSwKLXsgMHgwNWNhLAkxNiwJezB4ZTAsIDB4MzAsIDB4ZTIsIDB4MDYsIDB4NzUsIDB4MGQsIDB4MDYsIDB4MDIsIDB4MDYsIDB4NzYsIDB4OTAsIDB4N2YsIDB4YTUsIDB4ZTAsIDB4MjAsIDB4ZTF9IH0sCi17IDB4MDVkYSwJMTYsCXsweDBjLCAweGU1LCAweDBkLCAweDY0LCAweDAyLCAweDYwLCAweDA2LCAweDc1LCAweDBkLCAweDA3LCAweDAyLCAweDA2LCAweDc2LCAweGFmLCAweDBkLCAweGVmfSB9LAoteyAweDA1ZWEsCTE2LAl7MHgyNCwgMHhmZSwgMHg2MCwgMHg0OCwgMHgxNCwgMHg2MCwgMHgyYywgMHgyNCwgMHhmZSwgMHg2MCwgMHg3NywgMHgyNCwgMHgwNCwgMHg2MCwgMHgwMywgMHgwMn0gfSwKLXsgMHgwNWZhLAkxNiwJezB4MDYsIDB4NzYsIDB4YWIsIDB4MDksIDB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWYsIDB4MGMsIDB4MDUsIDB4MGMsIDB4OGYsIDB4ODIsIDB4NzUsIDB4ODN9IH0sCi17IDB4MDYwYSwJMTYsCXsweDAwLCAweDEyLCAweDA4LCAweDIyLCAweDkwLCAweDdmLCAweGE2LCAweGYwLCAweGU1LCAweDBjLCAweDY1LCAweDA4LCAweDcwLCAweDVlLCAweDc1LCAweDBkfSB9LAoteyAweDA2MWEsCTE2LAl7MHgwNSwgMHg4MCwgMHg1OSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOSwgMHhhYSwgMHgwYSwgMHhhOSwgMHgwYiwgMHhhZSwgMHgwYywgMHg4ZX0gfSwKLXsgMHgwNjJhLAkxNiwJezB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDgsIDB4NGYsIDB4NzUsIDB4MGQsIDB4MDIsIDB4ODAsIDB4NDAsIDB4ZTUsIDB4MDgsIDB4MjQsIDB4ZmV9IH0sCi17IDB4MDYzYSwJMTYsCXsweGI1LCAweDBjLCAweDA3LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDIwLCAweGYwLCAweGU1LCAweDA4LCAweDE0LCAweGI1LCAweDBjLCAweDBhfSB9LAoteyAweDA2NGEsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNSwgMHhlMCwgMHg0NCwgMHg0MCwgMHhmMCwgMHhlNCwgMHhmNSwgMHgwZCwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhlMCwgMHhhYiwgMHgwOX0gfSwKLXsgMHgwNjVhLAkxNiwJezB4YWEsIDB4MGEsIDB4YTksIDB4MGIsIDB4YWUsIDB4MGMsIDB4OGUsIDB4ODIsIDB4NzUsIDB4ODMsIDB4MDAsIDB4MTIsIDB4MDgsIDB4NGYsIDB4MDUsIDB4MGN9IH0sCi17IDB4MDY2YSwJMTYsCXsweDgwLCAweDBhLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweGU0LCAweGY1LCAweDBkLCAweDUzLCAweDkxLCAweGRmLCAweGQwfSB9LAoteyAweDA2N2EsCTE2LAl7MHgwNywgMHhkMCwgMHgwNiwgMHhkMCwgMHgwMywgMHhkMCwgMHgwMiwgMHhkMCwgMHgwMSwgMHhkMCwgMHgwMCwgMHhkMCwgMHhkMCwgMHhkMCwgMHg4NiwgMHhkMH0gfSwKLXsgMHgwNjhhLAkxMCwJezB4ODQsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MDY5NCwJMTYsCXsweDhjLCAweDMzLCAweDhkLCAweDM0LCAweDkwLCAweDdmLCAweDk1LCAweGUwLCAweDQ0LCAweGMwLCAweGYwLCAweGU0LCAweGY1LCAweDM1LCAweGY1LCAweDM2fSB9LAoteyAweDA2YTQsCTE2LAl7MHhjMywgMHhlNSwgMHgzNiwgMHg5NSwgMHgzNCwgMHhlNSwgMHgzNSwgMHg5NSwgMHgzMywgMHg1MCwgMHg2OSwgMHhlZiwgMHgyNSwgMHgzNiwgMHhmNSwgMHg4Mn0gfSwKLXsgMHgwNmI0LAkxNiwJezB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4ZmYsIDB4ZjAsIDB4ZjQsIDB4NjAsIDB4MDIsIDB4YzMsIDB4MjIsIDB4ZWYsIDB4MjUsIDB4MzZ9IH0sCi17IDB4MDZjNCwJMTYsCXsweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweGU0LCAweGYwLCAweDYwLCAweDAyLCAweGMzLCAweDIyLCAweGVmLCAweDI1LCAweDM2fSB9LAoteyAweDA2ZDQsCTE2LAl7MHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHg3NCwgMHhhYSwgMHhmMCwgMHg2NCwgMHhhYSwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMn0gfSwKLXsgMHgwNmU0LAkxNiwJezB4ZWYsIDB4MjUsIDB4MzYsIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4MzUsIDB4M2UsIDB4ZjUsIDB4ODMsIDB4NzQsIDB4NTUsIDB4ZjAsIDB4NjQsIDB4NTUsIDB4NjB9IH0sCi17IDB4MDZmNCwJMTYsCXsweDAyLCAweGMzLCAweDIyLCAweGFkLCAweDM2LCAweGU1LCAweDM2LCAweDJmLCAweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweGVkfSB9LAoteyAweDA3MDQsCTE2LAl7MHhmMCwgMHhmYywgMHhhYywgMHgwNSwgMHhlZCwgMHg2YywgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHgwNSwgMHgzNiwgMHhlNSwgMHgzNiwgMHg3MCwgMHgwMn0gfSwKLXsgMHgwNzE0LAkxNiwJezB4MDUsIDB4MzUsIDB4ODAsIDB4OGMsIDB4ZTQsIDB4ZjUsIDB4MzUsIDB4ZjUsIDB4MzYsIDB4YzMsIDB4ZTUsIDB4MzYsIDB4OTUsIDB4MzQsIDB4ZTUsIDB4MzV9IH0sCi17IDB4MDcyNCwJMTYsCXsweDk1LCAweDMzLCAweDUwLCAweDI3LCAweGVmLCAweDI1LCAweDM2LCAweGY1LCAweDgyLCAweGU1LCAweDM1LCAweDNlLCAweGY1LCAweDgzLCAweGUwLCAweDY1fSB9LAoteyAweDA3MzQsCTE2LAl7MHgzNiwgMHg2MCwgMHgwMiwgMHhjMywgMHgyMiwgMHhlZiwgMHgyNSwgMHgzNiwgMHhmNSwgMHg4MiwgMHhlNSwgMHgzNSwgMHgzZSwgMHhmNSwgMHg4MywgMHhlNH0gfSwKLXsgMHgwNzQ0LAkxMywJezB4ZjAsIDB4MDUsIDB4MzYsIDB4ZTUsIDB4MzYsIDB4NzAsIDB4MDIsIDB4MDUsIDB4MzUsIDB4ODAsIDB4Y2UsIDB4ZDMsIDB4MjJ9IH0sCi17IDB4MDc1MSwJMTYsCXsweGMyLCAweDA0LCAweGQyLCAweDA1LCAweGMyLCAweDAzLCAweGMyLCAweDAwLCAweGMyLCAweDAyLCAweGMyLCAweDAxLCAweDEyLCAweDBlLCAweDNkLCAweGQyfSB9LAoteyAweDA3NjEsCTE2LAl7MHhlOCwgMHg0MywgMHhkOCwgMHgyMCwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHhmZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhOSwgMHhmMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNzcxLAkxNiwJezB4YWEsIDB4ZjAsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NDQsIDB4YzAsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTMsIDB4NzR9IH0sCi17IDB4MDc4MSwJMTYsCXsweDMwLCAweGYwLCAweDEyLCAweDBhLCAweDE5LCAweDkwLCAweDdmLCAweGFmLCAweGUwLCAweDQ0LCAweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGFlLCAweGUwfSB9LAoteyAweDA3OTEsCTE2LAl7MHg0NCwgMHgwZCwgMHhmMCwgMHhkMiwgMHhhZiwgMHgxMiwgMHgwZSwgMHgzNSwgMHgyMCwgMHgwMSwgMHg0MiwgMHg3NSwgMHgyNCwgMHgwMCwgMHg3NSwgMHgyM30gfSwKLXsgMHgwN2ExLAkxNiwJezB4MDAsIDB4NzUsIDB4MjIsIDB4MDAsIDB4NzUsIDB4MjEsIDB4MDAsIDB4N2YsIDB4NDgsIDB4N2UsIDB4OTIsIDB4N2QsIDB4MDAsIDB4N2MsIDB4MDAsIDB4YWJ9IH0sCi17IDB4MDdiMSwJMTYsCXsweDI0LCAweGFhLCAweDIzLCAweGE5LCAweDIyLCAweGE4LCAweDIxLCAweGMzLCAweDEyLCAweDA4LCAweGE5LCAweDUwLCAweGRiLCAweDIwLCAweDAxLCAweGQ4fSB9LAoteyAweDA3YzEsCTE2LAl7MHg3YSwgMHgwMCwgMHg3OSwgMHgwMCwgMHg3OCwgMHgwMCwgMHhlNSwgMHgyNCwgMHgyNCwgMHgwMSwgMHhmNSwgMHgyNCwgMHhlYSwgMHgzNSwgMHgyMywgMHhmNX0gfSwKLXsgMHgwN2QxLAkxNiwJezB4MjMsIDB4ZTksIDB4MzUsIDB4MjIsIDB4ZjUsIDB4MjIsIDB4ZTgsIDB4MzUsIDB4MjEsIDB4ZjUsIDB4MjEsIDB4ODAsIDB4Y2EsIDB4MzAsIDB4MDEsIDB4MDV9IH0sCi17IDB4MDdlMSwJMTYsCXsweDEyLCAweDAzLCAweDdhLCAweGMyLCAweDAxLCAweDMwLCAweDA0LCAweDFhLCAweDEyLCAweDBlLCAweDQwLCAweDUwLCAweDEzLCAweDEyLCAweDA5LCAweDAwfSB9LAoteyAweDA3ZjEsCTE2LAl7MHgzMCwgMHgwMCwgMHgwNywgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHgzMCwgMHhlNywgMHhmMywgMHgxMiwgMHgwZCwgMHg0YSwgMHgxMiwgMHgwZSwgMHg0Mn0gfSwKLXsgMHgwODAxLAk4LAl7MHhjMiwgMHgwMywgMHgxMiwgMHgwOCwgMHhmZiwgMHg4MCwgMHhkNiwgMHgyMn0gfSwKLXsgMHgwODA5LAkxNiwJezB4YmIsIDB4MDEsIDB4MDYsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTAsIDB4MjIsIDB4NTAsIDB4MDIsIDB4ZTcsIDB4MjIsIDB4YmIsIDB4ZmUsIDB4MDJ9IH0sCi17IDB4MDgxOSwJOSwJezB4ZTMsIDB4MjIsIDB4ODksIDB4ODIsIDB4OGEsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDgyMiwJMTYsCXsweGJiLCAweDAxLCAweDBjLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGUwLCAweDIyLCAweDUwfSB9LAoteyAweDA4MzIsCTE2LAl7MHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHgyMn0gfSwKLXsgMHgwODQyLAkxMywJezB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTQsIDB4OTMsIDB4MjJ9IH0sCi17IDB4MDg0ZiwJMTYsCXsweGY4LCAweGJiLCAweDAxLCAweDBkLCAweGU1LCAweDgyLCAweDI5LCAweGY1LCAweDgyLCAweGU1LCAweDgzLCAweDNhLCAweGY1LCAweDgzLCAweGU4LCAweGYwfSB9LAoteyAweDA4NWYsCTE2LAl7MHgyMiwgMHg1MCwgMHgwNiwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOCwgMHhmNiwgMHgyMiwgMHhiYiwgMHhmZSwgMHgwNSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhjOH0gfSwKLXsgMHgwODZmLAkyLAl7MHhmMiwgMHgyMn0gfSwKLXsgMHgwODcxLAkxNiwJezB4YmIsIDB4MDEsIDB4MTAsIDB4ZTUsIDB4ODIsIDB4MjksIDB4ZjUsIDB4ODIsIDB4ZTUsIDB4ODMsIDB4M2EsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjUsIDB4ZjB9IH0sCi17IDB4MDg4MSwJMTYsCXsweGEzLCAweGUwLCAweDIyLCAweDUwLCAweDA5LCAweGU5LCAweDI1LCAweDgyLCAweGY4LCAweDg2LCAweGYwLCAweDA4LCAweGU2LCAweDIyLCAweGJiLCAweGZlfSB9LAoteyAweDA4OTEsCTE2LAl7MHgwYSwgMHhlOSwgMHgyNSwgMHg4MiwgMHhmOCwgMHhlMiwgMHhmNSwgMHhmMCwgMHgwOCwgMHhlMiwgMHgyMiwgMHhlNSwgMHg4MywgMHgyYSwgMHhmNSwgMHg4M30gfSwKLXsgMHgwOGExLAk4LAl7MHhlOSwgMHg5MywgMHhmNSwgMHhmMCwgMHhhMywgMHhlOSwgMHg5MywgMHgyMn0gfSwKLXsgMHgwOGE5LAkxNiwJezB4ZWIsIDB4OWYsIDB4ZjUsIDB4ZjAsIDB4ZWEsIDB4OWUsIDB4NDIsIDB4ZjAsIDB4ZTksIDB4OWQsIDB4NDIsIDB4ZjAsIDB4ZTgsIDB4OWMsIDB4NDUsIDB4ZjB9IH0sCi17IDB4MDhiOSwJMSwJezB4MjJ9IH0sCi17IDB4MDhiYSwJMiwJezB4OGYsIDB4Mjh9IH0sCi17IDB4MDhiYywJMTYsCXsweGU0LCAweGY1LCAweDI5LCAweDc1LCAweDJhLCAweGZmLCAweDc1LCAweDJiLCAweDExLCAweDc1LCAweDJjLCAweDMyLCAweGFiLCAweDJhLCAweGFhLCAweDJifSB9LAoteyAweDA4Y2MsCTE2LAl7MHhhOSwgMHgyYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwOCwgMHgyMiwgMHhiNCwgMHgwMywgMHgxZCwgMHhhZiwgMHgyOSwgMHgwNSwgMHgyOSwgMHhlZn0gfSwKLXsgMHgwOGRjLAkxNiwJezB4YjUsIDB4MjgsIDB4MDEsIDB4MjIsIDB4MTIsIDB4MDgsIDB4MDksIDB4N2UsIDB4MDAsIDB4MjksIDB4ZmYsIDB4ZWUsIDB4M2EsIDB4YTksIDB4MDcsIDB4NzV9IH0sCi17IDB4MDhlYywJMTQsCXsweDJhLCAweGZmLCAweGY1LCAweDJiLCAweDg5LCAweDJjLCAweDgwLCAweGQ0LCAweDdiLCAweDAwLCAweDdhLCAweDAwLCAweDc5LCAweDAwfSB9LAoteyAweDA4ZmEsCTEsCXsweDIyfSB9LAoteyAweDA4ZmIsCTQsCXsweDUzLCAweGQ4LCAweGVmLCAweDMyfSB9LAoteyAweDA4ZmYsCTEsCXsweDIyfSB9LAoteyAweDA5MDAsCTksCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweDgwLCAweDc0fSB9LAoteyAweDA5N2QsCTE2LAl7MHg0MywgMHg4NywgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwOThkLAkxMiwJezB4NzgsIDB4N2YsIDB4ZTQsIDB4ZjYsIDB4ZDgsIDB4ZmQsIDB4NzUsIDB4ODEsIDB4MzksIDB4MDIsIDB4MDksIDB4ZDR9IH0sCi17IDB4MDk5OSwJMTYsCXsweDAyLCAweDA3LCAweDUxLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweDQwLCAweDAzLCAweGY2LCAweDgwLCAweDAxLCAweGYyfSB9LAoteyAweDA5YTksCTE2LAl7MHgwOCwgMHhkZiwgMHhmNCwgMHg4MCwgMHgyOSwgMHhlNCwgMHg5MywgMHhhMywgMHhmOCwgMHg1NCwgMHgwNywgMHgyNCwgMHgwYywgMHhjOCwgMHhjMywgMHgzM30gfSwKLXsgMHgwOWI5LAkxNiwJezB4YzQsIDB4NTQsIDB4MGYsIDB4NDQsIDB4MjAsIDB4YzgsIDB4ODMsIDB4NDAsIDB4MDQsIDB4ZjQsIDB4NTYsIDB4ODAsIDB4MDEsIDB4NDYsIDB4ZjYsIDB4ZGZ9IH0sCi17IDB4MDljOSwJMTYsCXsweGU0LCAweDgwLCAweDBiLCAweDAxLCAweDAyLCAweDA0LCAweDA4LCAweDEwLCAweDIwLCAweDQwLCAweDgwLCAweDkwLCAweDBkLCAweGVjLCAweGU0LCAweDdlfSB9LAoteyAweDA5ZDksCTE2LAl7MHgwMSwgMHg5MywgMHg2MCwgMHhiYywgMHhhMywgMHhmZiwgMHg1NCwgMHgzZiwgMHgzMCwgMHhlNSwgMHgwOSwgMHg1NCwgMHgxZiwgMHhmZSwgMHhlNCwgMHg5M30gfSwKLXsgMHgwOWU5LAkxNiwJezB4YTMsIDB4NjAsIDB4MDEsIDB4MGUsIDB4Y2YsIDB4NTQsIDB4YzAsIDB4MjUsIDB4ZTAsIDB4NjAsIDB4YTgsIDB4NDAsIDB4YjgsIDB4ZTQsIDB4OTMsIDB4YTN9IH0sCi17IDB4MDlmOSwJMTYsCXsweGZhLCAweGU0LCAweDkzLCAweGEzLCAweGY4LCAweGU0LCAweDkzLCAweGEzLCAweGM4LCAweGM1LCAweDgyLCAweGM4LCAweGNhLCAweGM1LCAweDgzLCAweGNhfSB9LAoteyAweDBhMDksCTE2LAl7MHhmMCwgMHhhMywgMHhjOCwgMHhjNSwgMHg4MiwgMHhjOCwgMHhjYSwgMHhjNSwgMHg4MywgMHhjYSwgMHhkZiwgMHhlOSwgMHhkZSwgMHhlNywgMHg4MCwgMHhiZX0gfSwKLXsgMHgwYTE5LAkxNiwJezB4ZTQsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4N2YsIDB4MGEsIDB4ZmUsIDB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4NzQsIDB4ODl9IH0sCi17IDB4MGEyOSwJMTYsCXsweGYwLCAweDkwLCAweDdmLCAweDljLCAweDc0LCAweGNmLCAweGYwLCAweDdmLCAweGY0LCAweDdlLCAweDAxLCAweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmfSB9LAoteyAweDBhMzksCTE2LAl7MHg5NiwgMHhlMCwgMHg1NCwgMHhmZSwgMHhmMCwgMHg3ZiwgMHgwYSwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZCwgMHg5NCwgMHg3ZiwgMHgwNSwgMHg3ZSwgMHgwMH0gfSwKLXsgMHgwYTQ5LAkxNiwJezB4MTIsIDB4MGQsIDB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4MDIsIDB4ZjAsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4ZjAsIDB4N2YsIDB4MDV9IH0sCi17IDB4MGE1OSwJMTYsCXsweDdlLCAweDAwLCAweDEyLCAweDBkLCAweDk0LCAweDkwLCAweDdmLCAweDk2LCAweGUwLCAweDQ0LCAweDQwLCAweGYwLCAweDdmLCAweDA1LCAweDdlLCAweDAwfSB9LAoteyAweDBhNjksCTE2LAl7MHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHg5NiwgMHhlMCwgMHg1NCwgMHhiZiwgMHhmMCwgMHg3ZiwgMHgzMiwgMHg3ZSwgMHgwMCwgMHgxMiwgMHgwZH0gfSwKLXsgMHgwYTc5LAkxNiwJezB4OTQsIDB4OTAsIDB4N2YsIDB4OTYsIDB4ZTAsIDB4NDQsIDB4NDAsIDB4ZjAsIDB4N2YsIDB4MzIsIDB4N2UsIDB4MDAsIDB4MTIsIDB4MGQsIDB4OTQsIDB4MjJ9IH0sCi17IDB4MGE4OSwJMTYsCXsweDc1LCAweDMyLCAweDAxLCAweGU1LCAweDMyLCAweDYwLCAweDFiLCAweDdmLCAweDAxLCAweDEyLCAweDBkLCAweGQ3LCAweDdmLCAweDAwLCAweDdlLCAweDBlfSB9LAoteyAweDBhOTksCTE2LAl7MHg3ZCwgMHgwMCwgMHg3YywgMHgwMSwgMHgxMiwgMHgwNiwgMHg5NCwgMHhlNCwgMHgzMywgMHhmNSwgMHgzMiwgMHg3MCwgMHgwNSwgMHg3ZiwgMHgwZiwgMHgxMn0gfSwKLXsgMHgwYWE5LAkxNiwJezB4MGQsIDB4ZDcsIDB4ZTUsIDB4MzIsIDB4NjAsIDB4MWIsIDB4N2YsIDB4MDIsIDB4MTIsIDB4MGQsIDB4ZDcsIDB4N2YsIDB4MDAsIDB4N2UsIDB4ODAsIDB4N2R9IH0sCi17IDB4MGFiOSwJMTYsCXsweDAwLCAweDdjLCAweDgwLCAweDEyLCAweDA2LCAweDk0LCAweGU0LCAweDMzLCAweGY1LCAweDMyLCAweDcwLCAweDA1LCAweDdmLCAweDBmLCAweDEyLCAweDBkfSB9LAoteyAweDBhYzksCTE2LAl7MHhkNywgMHhlNSwgMHgzMiwgMHg2MCwgMHgxYiwgMHg3ZiwgMHgwMywgMHgxMiwgMHgwZCwgMHhkNywgMHg3ZiwgMHgwMCwgMHg3ZSwgMHgyMCwgMHg3ZCwgMHg0MH0gfSwKLXsgMHgwYWQ5LAkxNiwJezB4N2MsIDB4NWIsIDB4MTIsIDB4MDYsIDB4OTQsIDB4ZTQsIDB4MzMsIDB4ZjUsIDB4MzIsIDB4NzAsIDB4MDUsIDB4N2YsIDB4MGYsIDB4MTIsIDB4MGQsIDB4ZDd9IH0sCi17IDB4MGFlOSwJMTQsCXsweGU1LCAweDMyLCAweDYwLCAweDA1LCAweGU0LCAweGZmLCAweDEyLCAweDBkLCAweGQ3LCAweGU1LCAweDMyLCAweDI0LCAweGZmLCAweDIyfSB9LAoteyAweDBhZjcsCTgsCXsweDkwLCAweDdmLCAweGVhLCAweGUwLCAweGY1LCAweDEwLCAweGQzLCAweDIyfSB9LAoteyAweDBhZmYsCTEsCXsweDMyfSB9LAoteyAweDBiMDAsCTE2LAl7MHgwMiwgMHgwZCwgMHg2NCwgMHgwMCwgMHgwMiwgMHgwZCwgMHhhYiwgMHgwMCwgMHgwMiwgMHgwZCwgMHgyZiwgMHgwMCwgMHgwMiwgMHgwZCwgMHg3YywgMHgwMH0gfSwKLXsgMHgwYjEwLAkxNiwJezB4MDIsIDB4MGQsIDB4YzEsIDB4MDAsIDB4MDIsIDB4MGEsIDB4ZmYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NGMsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NGQsIDB4MDB9IH0sCi17IDB4MGIyMCwJMTYsCXsweDAyLCAweDBlLCAweDRlLCAweDAwLCAweDAyLCAweDBlLCAweDRmLCAweDAwLCAweDAyLCAweDBlLCAweDUwLCAweDAwLCAweDAyLCAweDBlLCAweDUxLCAweDAwfSB9LAoteyAweDBiMzAsCTE2LAl7MHgwMiwgMHgwZSwgMHg1MiwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1MywgMHgwMCwgMHgwMiwgMHgwZSwgMHg1NCwgMHgwMCwgMHgwMiwgMHgwZSwgMHg1NSwgMHgwMH0gfSwKLXsgMHgwYjQwLAkxNiwJezB4MDIsIDB4MGUsIDB4NTYsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTcsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTgsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NTksIDB4MDB9IH0sCi17IDB4MGI1MCwJOCwJezB4MDIsIDB4MGUsIDB4NWEsIDB4MDAsIDB4MDIsIDB4MGUsIDB4NWIsIDB4MDB9IH0sCi17IDB4MGI1OCwJMTYsCXsweGU0LCAweGZlLCAweDc1LCAweDJhLCAweGZmLCAweDc1LCAweDJiLCAweDExLCAweDc1LCAweDJjLCAweDEyLCAweGFiLCAweDJhLCAweGFhLCAweDJiLCAweGE5fSB9LAoteyAweDBiNjgsCTE2LAl7MHgyYywgMHg5MCwgMHgwMCwgMHgwMSwgMHgxMiwgMHgwOCwgMHgyMiwgMHg2NCwgMHgwMiwgMHg3MCwgMHgyZCwgMHhhZCwgMHgwNiwgMHgwZSwgMHhlZCwgMHhiNX0gfSwKLXsgMHgwYjc4LAkxNiwJezB4MDcsIDB4MDEsIDB4MjIsIDB4OTAsIDB4MDAsIDB4MDIsIDB4MTIsIDB4MDgsIDB4NzEsIDB4ODUsIDB4ZjAsIDB4MjgsIDB4ZjUsIDB4MjksIDB4NjIsIDB4Mjh9IH0sCi17IDB4MGI4OCwJMTYsCXsweGU1LCAweDI4LCAweDYyLCAweDI5LCAweGU1LCAweDI5LCAweDYyLCAweDI4LCAweDI5LCAweGZkLCAweGU1LCAweDI4LCAweDNhLCAweGE5LCAweDA1LCAweDc1fSB9LAoteyAweDBiOTgsCTE0LAl7MHgyYSwgMHhmZiwgMHhmNSwgMHgyYiwgMHg4OSwgMHgyYywgMHg4MCwgMHhjMywgMHg3YiwgMHgwMCwgMHg3YSwgMHgwMCwgMHg3OSwgMHgwMH0gfSwKLXsgMHgwYmE2LAkxLAl7MHgyMn0gfSwKLXsgMHgwYmE3LAkxNiwJezB4YWIsIDB4MDcsIDB4YWEsIDB4MDYsIDB4YWMsIDB4MDUsIDB4ZTQsIDB4ZmQsIDB4ZTUsIDB4MTEsIDB4NjAsIDB4MTEsIDB4ZWEsIDB4ZmYsIDB4YWUsIDB4MDV9IH0sCi17IDB4MGJiNywJMTYsCXsweDBkLCAweGVlLCAweDI0LCAweDEwLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGViLCAweGFlLCAweDA1fSB9LAoteyAweDBiYzcsCTE2LAl7MHgwZCwgMHg3NCwgMHgxMCwgMHgyZSwgMHhmNSwgMHg4MiwgMHhlNCwgMHgzNCwgMHgwZiwgMHhmNSwgMHg4MywgMHhlYiwgMHhmMCwgMHhhZiwgMHgwNSwgMHgwZH0gfSwKLXsgMHgwYmQ3LAkxNiwJezB4NzQsIDB4MTAsIDB4MmYsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGYsIDB4ZjUsIDB4ODMsIDB4ZWMsIDB4ZjAsIDB4YWYsIDB4MGYsIDB4N2EsIDB4MGZ9IH0sCi17IDB4MGJlNywJMTMsCXsweDdiLCAweDEwLCAweDEyLCAweDBkLCAweDEwLCAweDdmLCAweDBhLCAweDdlLCAweDAwLCAweDEyLCAweDBkLCAweDk0LCAweDIyfSB9LAoteyAweDBiZjQsCTE2LAl7MHg4ZSwgMHgzMiwgMHg4ZiwgMHgzMywgMHg4ZCwgMHgzNCwgMHg4YSwgMHgzNSwgMHg4YiwgMHgzNiwgMHhlNCwgMHhmZCwgMHhmNSwgMHgzNywgMHhlNSwgMHgxMX0gfSwKLXsgMHgwYzA0LAkxNiwJezB4NjAsIDB4MTIsIDB4ZTUsIDB4MzIsIDB4ZmYsIDB4YWUsIDB4MDUsIDB4MGQsIDB4ZWUsIDB4MjQsIDB4MTMsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzQsIDB4MGZ9IH0sCi17IDB4MGMxNCwJMTYsCXsweGY1LCAweDgzLCAweGVmLCAweGYwLCAweGU1LCAweDMzLCAweGFlLCAweDA1LCAweDBkLCAweDc0LCAweDEzLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0fSB9LAoteyAweDBjMjQsCTE2LAl7MHgwZiwgMHhmNSwgMHg4MywgMHhlNSwgMHgzMywgMHhmMCwgMHhhZiwgMHgwZiwgMHg3YSwgMHgwZiwgMHg3YiwgMHgxMywgMHgxMiwgMHgwZCwgMHgxMCwgMHhhZn0gfSwKLXsgMHgwYzM0LAkxMSwJezB4MGYsIDB4YWQsIDB4MzQsIDB4YWIsIDB4MzYsIDB4YWEsIDB4MzUsIDB4MTIsIDB4MGMsIDB4ZjEsIDB4MjJ9IH0sCi17IDB4MGMzZiwJMTYsCXsweDhlLCAweDMyLCAweDhmLCAweDMzLCAweDhkLCAweDM0LCAweDhhLCAweDM1LCAweDhiLCAweDM2LCAweGU0LCAweGY1LCAweDM3LCAweGU1LCAweDM3LCAweGMzfSB9LAoteyAweDBjNGYsCTE2LAl7MHg5NSwgMHgzNCwgMHg1MCwgMHgyMCwgMHgwNSwgMHgzMywgMHhlNSwgMHgzMywgMHhhZSwgMHgzMiwgMHg3MCwgMHgwMiwgMHgwNSwgMHgzMiwgMHgxNCwgMHhmZn0gfSwKLXsgMHgwYzVmLAkxNiwJezB4ZTUsIDB4MzYsIDB4MjUsIDB4MzcsIDB4ZjUsIDB4ODIsIDB4ZTQsIDB4MzUsIDB4MzUsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZmQsIDB4MTIsIDB4MGIsIDB4YTd9IH0sCi17IDB4MGM2ZiwJNSwJezB4MDUsIDB4MzcsIDB4ODAsIDB4ZDksIDB4MjJ9IH0sCi17IDB4MGM3NCwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDI1LCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoteyAweDBjODQsCTE2LAl7MHg0NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YX0gfSwKLXsgMHgwYzk0LAkxMywJezB4MGEsIDB4ODksIDB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDMsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MGNhMSwJMTYsCXsweGE5LCAweDA3LCAweGU1LCAweDBkLCAweDcwLCAweDIzLCAweDkwLCAweDdmLCAweGE1LCAweGUwLCAweDQ0LCAweDgwLCAweGYwLCAweGU5LCAweDI1LCAweGUwfSB9LAoteyAweDBjYjEsCTE2LAl7MHg5MCwgMHg3ZiwgMHhhNiwgMHhmMCwgMHg4ZCwgMHgwOCwgMHhhZiwgMHgwMywgMHhhOSwgMHgwNywgMHg3NSwgMHgwOSwgMHgwMSwgMHg4YSwgMHgwYSwgMHg4OX0gfSwKLXsgMHgwY2MxLAkxMSwJezB4MGIsIDB4ZTQsIDB4ZjUsIDB4MGMsIDB4NzUsIDB4MGQsIDB4MDEsIDB4ZDMsIDB4MjIsIDB4YzMsIDB4MjJ9IH0sCi17IDB4MGNjYywJMTYsCXsweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZiLCAweGYwLCAweGUwLCAweDQ0LCAweDA4LCAweGYwLCAweDMwLCAweDA2LCAweDA0LCAweGUwLCAweDQ0fSB9LAoteyAweDBjZGMsCTE2LAl7MHgwMiwgMHhmMCwgMHg3ZiwgMHhkMCwgMHg3ZSwgMHgwNywgMHgxMiwgMHgwZCwgMHg5NCwgMHg5MCwgMHg3ZiwgMHhkNiwgMHhlMCwgMHg1NCwgMHhmNywgMHhmMH0gfSwKLXsgMHgwY2VjLAk1LAl7MHhlMCwgMHg0NCwgMHgwNCwgMHhmMCwgMHgyMn0gfSwKLXsgMHgwY2YxLAkxNiwJezB4MTIsIDB4MGMsIDB4NzQsIDB4ZTUsIDB4MGQsIDB4MjQsIDB4ZmEsIDB4NjAsIDB4MTAsIDB4MTQsIDB4NjAsIDB4MDcsIDB4MjQsIDB4MDcsIDB4NzAsIDB4ZjN9IH0sCi17IDB4MGQwMSwJMTUsCXsweDdmLCAweDA4LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA3LCAweDIyLCAweGU0LCAweGY1LCAweDBkLCAweDdmLCAweDA2LCAweDIyfSB9LAoteyAweDBkMTAsCTE2LAl7MHgxMiwgMHgwYywgMHhhMSwgMHhlNSwgMHgwZCwgMHgyNCwgMHhmYSwgMHg2MCwgMHgxMCwgMHgxNCwgMHg2MCwgMHgwNywgMHgyNCwgMHgwNywgMHg3MCwgMHhmM30gfSwKLXsgMHgwZDIwLAkxNSwJezB4N2YsIDB4MDgsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDcsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4MGQsIDB4N2YsIDB4MDYsIDB4MjJ9IH0sCi17IDB4MGQyZiwJMTYsCXsweGMwLCAweGUwLCAweGMwLCAweDgzLCAweGMwLCAweDgyLCAweDkwLCAweDdmLCAweGM0LCAweGU0LCAweGYwLCAweDUzLCAweDkxLCAweGVmLCAweDkwLCAweDdmfSB9LAoteyAweDBkM2YsCTExLAl7MHhhYiwgMHg3NCwgMHgwNCwgMHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDRhLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDYsIDB4ZTAsIDB4MzAsIDB4ZTcsIDB4MTIsIDB4ZTAsIDB4NDQsIDB4MDEsIDB4ZjAsIDB4N2YsIDB4MTQsIDB4N2UsIDB4MDAsIDB4MTJ9IH0sCi17IDB4MGQ1YSwJMTAsCXsweDBkLCAweDk0LCAweDkwLCAweDdmLCAweGQ2LCAweGUwLCAweDU0LCAweGZlLCAweGYwLCAweDIyfSB9LAoteyAweDBkNjQsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHhkMiwgMHgwMSwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMX0gfSwKLXsgMHgwZDc0LAk4LAl7MHhmMCwgMHhkMCwgMHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZDdjLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4ZDIsIDB4MDMsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MDh9IH0sCi17IDB4MGQ4YywJOCwJezB4ZjAsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGQ5NCwJMTYsCXsweDhlLCAweDM4LCAweDhmLCAweDM5LCAweGU1LCAweDM5LCAweDE1LCAweDM5LCAweGFlLCAweDM4LCAweDcwLCAweDAyLCAweDE1LCAweDM4LCAweDRlLCAweDYwfSB9LAoteyAweDBkYTQsCTcsCXsweDA1LCAweDEyLCAweDBlLCAweDAwLCAweDgwLCAweGVlLCAweDIyfSB9LAoteyAweDBkYWIsCTE2LAl7MHhjMCwgMHhlMCwgMHhjMCwgMHg4MywgMHhjMCwgMHg4MiwgMHg1MywgMHg5MSwgMHhlZiwgMHg5MCwgMHg3ZiwgMHhhYiwgMHg3NCwgMHgwMiwgMHhmMCwgMHhkMH0gfSwKLXsgMHgwZGJiLAk2LAl7MHg4MiwgMHhkMCwgMHg4MywgMHhkMCwgMHhlMCwgMHgzMn0gfSwKLXsgMHgwZGMxLAkxNiwJezB4YzAsIDB4ZTAsIDB4YzAsIDB4ODMsIDB4YzAsIDB4ODIsIDB4NTMsIDB4OTEsIDB4ZWYsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzQsIDB4MTAsIDB4ZjAsIDB4ZDB9IH0sCi17IDB4MGRkMSwJNiwJezB4ODIsIDB4ZDAsIDB4ODMsIDB4ZDAsIDB4ZTAsIDB4MzJ9IH0sCi17IDB4MGRkNywJMTYsCXsweGFlLCAweDA3LCAweDdmLCAweDIxLCAweDdkLCAweDAxLCAweDc0LCAweDAwLCAweDJlLCAweGY1LCAweDgyLCAweGU0LCAweDM0LCAweDBmLCAweGFiLCAweDgyfSB9LAoteyAweDBkZTcsCTUsCXsweGZhLCAweDEyLCAweDBkLCAweDEwLCAweDIyfSB9LAoteyAweDBkZWMsCTE2LAl7MHg1MCwgMHgwZiwgMHgwMCwgMHhjMCwgMHhmOSwgMHhhNCwgMHhiMCwgMHg5OSwgMHg5MiwgMHg4MiwgMHhmOCwgMHg4MCwgMHg5OCwgMHg4OCwgMHg4MywgMHhjNn0gfSwKLXsgMHgwZGZjLAkzLAl7MHhhMSwgMHg4NiwgMHg4ZX0gfSwKLXsgMHgwZGZmLAkxLAl7MHgwMH0gfSwKLXsgMHgwZTAwLAkxNiwJezB4NzQsIDB4MDAsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4ZmQsIDB4YTUsIDB4N2MsIDB4MDUsIDB4YTMsIDB4ZTUsIDB4ODIsIDB4NDUsIDB4ODMsIDB4NzAsIDB4Zjl9IH0sCi17IDB4MGUxMCwJMSwJezB4MjJ9IH0sCi17IDB4MGUxMSwJMTQsCXsweDkwLCAweDdmLCAweDAwLCAweGU1LCAweDEwLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAxLCAweGYwLCAweGQzLCAweDIyfSB9LAoteyAweDBlMWYsCTE0LAl7MHg5MCwgMHg3ZiwgMHgwMCwgMHhlNSwgMHgwZSwgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiNSwgMHg3NCwgMHgwMSwgMHhmMCwgMHhkMywgMHgyMn0gfSwKLXsgMHgwZTJkLAk4LAl7MHg5MCwgMHg3ZiwgMHhlYSwgMHhlMCwgMHhmNSwgMHgwZSwgMHhkMywgMHgyMn0gfSwKLXsgMHgwZTM1LAk4LAl7MHhlNCwgMHhmNSwgMHgwZCwgMHhkMiwgMHhlOSwgMHhkMiwgMHhhZiwgMHgyMn0gfSwKLXsgMHgwZTNkLAkzLAl7MHhkMiwgMHgwMCwgMHgyMn0gfSwKLXsgMHgwZTQwLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTQyLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTQ0LAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTQ2LAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTQ4LAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTRhLAkyLAl7MHhkMywgMHgyMn0gfSwKLXsgMHgwZTRjLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTRkLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTRlLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTRmLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTUwLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTUxLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTUyLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTUzLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU0LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU1LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU2LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU3LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU4LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTU5LAkxLAl7MHgzMn0gfSwKLXsgMHgwZTVhLAkxLAl7MHgzMn0gfSwKLXsgMHgwZTViLAkxLAl7MHgzMn0gfSwKLXsgMHgxMTAwLAkxNiwJezB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDcsIDB4MDUsIDB4MTAsIDB4MjcsIDB4MDEsIDB4MDAsIDB4MDEsIDB4MDJ9IH0sCi17IDB4MTExMCwJMTYsCXsweDAwLCAweDAxLCAweDA5LCAweDAyLCAweDIwLCAweDAwLCAweDAxLCAweDAxLCAweDAzLCAweGEwLCAweDAwLCAweDA5LCAweDA0LCAweDAwLCAweDAwLCAweDAyfSB9LAoteyAweDExMjAsCTE2LAl7MHhmZiwgMHgwMCwgMHgwMCwgMHgwNCwgMHgwNywgMHgwNSwgMHg4MiwgMHgwMiwgMHg0MCwgMHgwMCwgMHgwMCwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMiwgMHg0MH0gfSwKLXsgMHgxMTMwLAkxNiwJezB4MDAsIDB4MDAsIDB4MDQsIDB4MDMsIDB4MDksIDB4MDQsIDB4MjYsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjMsIDB4MDAsIDB4NjgsIDB4MDB9IH0sCi17IDB4MTE0MCwJMTYsCXsweDZmLCAweDAwLCAweDcyLCAweDAwLCAweDIwLCAweDAwLCAweDQzLCAweDAwLCAweDY4LCAweDAwLCAweDY5LCAweDAwLCAweDcwLCAweDAwLCAweDczLCAweDAwfSB9LAoteyAweDExNTAsCTE2LAl7MHgyYywgMHgwMCwgMHgyMCwgMHgwMCwgMHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2MywgMHgwMCwgMHgyZSwgMHgwMCwgMHgyOCwgMHgwMywgMHg0NiwgMHgwMH0gfSwKLXsgMHgxMTYwLAkxNiwJezB4NjksIDB4MDAsIDB4NzIsIDB4MDAsIDB4NmQsIDB4MDAsIDB4NzcsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjUsIDB4MDAsIDB4MjAsIDB4MDB9IH0sCi17IDB4MTE3MCwJMTYsCXsweDQ2LCAweDAwLCAweDcyLCAweDAwLCAweDYxLCAweDAwLCAweDZkLCAweDAwLCAweDY1LCAweDAwLCAweDU3LCAweDAwLCAweDZmLCAweDAwLCAweDcyLCAweDAwfSB9LAoteyAweDExODAsCTE2LAl7MHg2YiwgMHgwMCwgMHg3MywgMHgwMCwgMHgyYSwgMHgwMywgMHg0MywgMHgwMCwgMHg2ZiwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2OSwgMHgwMH0gfSwKLXsgMHgxMTkwLAkxNiwJezB4NjcsIDB4MDAsIDB4NzUsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjEsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmYsIDB4MDAsIDB4NmUsIDB4MDB9IH0sCi17IDB4MTFhMCwJMTYsCXsweDIwLCAweDAwLCAweDUzLCAweDAwLCAweDc0LCAweDAwLCAweDcyLCAweDAwLCAweDY5LCAweDAwLCAweDZlLCAweDAwLCAweDY3LCAweDAwLCAweDIyLCAweDAzfSB9LAoteyAweDExYjAsCTE2LAl7MHg0OSwgMHgwMCwgMHg2ZSwgMHgwMCwgMHg3NCwgMHgwMCwgMHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2NiwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2MywgMHgwMH0gfSwKLXsgMHgxMWMwLAkxNiwJezB4NjUsIDB4MDAsIDB4MjAsIDB4MDAsIDB4NTMsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzIsIDB4MDAsIDB4NjksIDB4MDAsIDB4NmUsIDB4MDAsIDB4NjcsIDB4MDB9IH0sCi17IDB4MTFkMCwJMiwJezB4MDAsIDB4MDB9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzX2Z3LmggYi9kcml2ZXJzL3VzYi9zZXJpYWwveGlyY29tX3Bnc19mdy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmY3NGE2Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzX2Z3LmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDMgKzAsMCBAQAotLyoKLSAqIFVTQiBYaXJjb20gUEdTIEZpcm13YXJlCi0gKgotICogQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwIEJyaWFuIFdhcm5lciAgICAgICAgPHdhcm5lckBsb3RoYXIuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDAxIENyaXN0aWFuIE0uIENyYWNpdW5lc2N1CTxjcmlzdGlAZG50LnJvPgotICoKLSAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBHZW5lcmF0ZWQgZnJvbSB4aXJjb21fcGdzLlMgYnkgZXp1c2JfY29udmVydF94LnBsCi0gKi8KLQotc3RhdGljIGNvbnN0IHN0cnVjdCBlenVzYl9oZXhfcmVjb3JkIHhpcmNvbV9wZ3NfZmlybXdhcmVbXSA9IHsKLXsgMHgwMDAwLAkzLAl7MHgwMiwgMHgwMiwgMHgwMH0gfSwKLXsgMHgwMDIzLAk0LAl7MHgwMiwgMHgwNSwgMHg5YiwgMHgwMH0gfSwKLXsgMHgwMDMwLAk1LAl7MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMDQzLAk0LAl7MHgwMiwgMHgwMSwgMHgwMCwgMHgwMH0gfSwKLXsgMHgwMTAwLAkxNiwJezB4MDIsIDB4MDIsIDB4YmEsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDB9IH0sCi17IDB4MDExMCwJMTYsCXsweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAyLCAweDAwLCAweDAwLCAweDAwfSB9LAoteyAweDAxMjAsCTE2LAl7MHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMiwgMHgwNCwgMHg4NSwgMHgwMCwgMHgwMiwgMHgwNCwgMHhiOSwgMHgwMH0gfSwKLXsgMHgwMjAwLAkxNiwJezB4NzUsIDB4ODEsIDB4NWUsIDB4ZTQsIDB4ZjUsIDB4MzIsIDB4ZjUsIDB4MzMsIDB4ZjUsIDB4MzAsIDB4ZjUsIDB4MzEsIDB4ZjUsIDB4MzQsIDB4YzIsIDB4MDB9IH0sCi17IDB4MDIxMCwJMTYsCXsweGMyLCAweDAxLCAweGE5LCAweDAwLCAweDc0LCAweGZlLCAweDkwLCAweDEwLCAweDAwLCAweGYwLCAweGEzLCAweGQ5LCAweGZjLCAweDc0LCAweGZkLCAweDkwfSB9LAoteyAweDAyMjAsCTE2LAl7MHgxMSwgMHgwMCwgMHhmMCwgMHhhMywgMHhkOSwgMHhmYywgMHg5MCwgMHg3ZiwgMHg5NCwgMHg3NCwgMHhiZiwgMHhmMCwgMHg5MCwgMHg3ZiwgMHg5NSwgMHg3NH0gfSwKLXsgMHgwMjMwLAkxNiwJezB4ZWYsIDB4ZjAsIDB4NzQsIDB4MTAsIDB4OTAsIDB4N2YsIDB4OWUsIDB4ZjAsIDB4NzQsIDB4MDAsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZjAsIDB4NzQsIDB4NDB9IH0sCi17IDB4MDI0MCwJMTYsCXsweDkwLCAweDdmLCAweDlkLCAweGYwLCAweDc0LCAweDAwLCAweDkwLCAweDdmLCAweDk3LCAweGYwLCAweDc0LCAweDgyLCAweDkwLCAweDdmLCAweDllLCAweGYwfSB9LAoteyAweDAyNTAsCTE2LAl7MHg5MCwgMHg3ZiwgMHg5NSwgMHg3NCwgMHgwMywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhhZiwgMHhlMCwgMHhkMiwgMHhlMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MH0gfSwKLXsgMHgwMjYwLAkxNiwJezB4N2YsIDB4YWIsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWUsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWMsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YWR9IH0sCi17IDB4MDI3MCwJMTYsCXsweDc0LCAweDA0LCAweGYwLCAweDkwLCAweDdmLCAweGM5LCAweGYwLCAweDc0LCAweDA3LCAweDkwLCAweDdmLCAweGFmLCAweGYwLCAweDc0LCAweDIwLCAweDkwfSB9LAoteyAweDAyODAsCTE2LAl7MHg3ZiwgMHg5YywgMHhmMCwgMHg3NCwgMHg4MCwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhmMCwgMHg3NCwgMHg1MywgMHhmNSwgMHg5OCwgMHg3NSwgMHhjOCwgMHgzMH0gfSwKLXsgMHgwMjkwLAkxNiwJezB4N2IsIDB4MDUsIDB4OTEsIDB4NDQsIDB4ZDIsIDB4Y2EsIDB4NzUsIDB4OTgsIDB4NTAsIDB4ZDIsIDB4ZTgsIDB4ZDIsIDB4YWYsIDB4ZDIsIDB4YWMsIDB4NzR9IH0sCi17IDB4MDJhMCwJMTYsCXsweDAwLCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGQ2LCAweDc0LCAweDAyLCAweGYwLCAweDc5LCAweDJlLCAweDdhLCAweDAwLCAweDdiLCAweDAwLCAweGRifSB9LAoteyAweDAyYjAsCTE2LAl7MHhmZSwgMHhkYSwgMHhmYSwgMHhkOSwgMHhmNiwgMHg3NCwgMHgwNiwgMHhmMCwgMHg4MCwgMHhmZSwgMHhjMCwgMHg4NiwgMHhjMCwgMHg4MiwgMHhjMCwgMHg4M30gfSwKLXsgMHgwMmMwLAkxNiwJezB4YzAsIDB4ODQsIDB4YzAsIDB4ODUsIDB4YzAsIDB4ZTAsIDB4ZTUsIDB4OTEsIDB4YzIsIDB4ZTQsIDB4ZjUsIDB4OTEsIDB4OTAsIDB4N2YsIDB4YWIsIDB4NzR9IH0sCi17IDB4MDJkMCwJMTYsCXsweDAxLCAweGYwLCAweDkwLCAweDdmLCAweGU4LCAweGUwLCAweGY5LCAweGEzLCAweGUwLCAweGZhLCAweGEzLCAweGUwLCAweGZiLCAweGEzLCAweGUwLCAweGZjfSB9LAoteyAweDAyZTAsCTE2LAl7MHhlOSwgMHg1NCwgMHg2MCwgMHhiNCwgMHgwMCwgMHgwMywgMHgwMiwgMHgwMywgMHg1ZCwgMHhiNCwgMHg0MCwgMHg2ZSwgMHhiYSwgMHgwMCwgMHgwYiwgMHgxMn0gfSwKLXsgMHgwMmYwLAkxNiwJezB4MDQsIDB4NDQsIDB4NDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmV9IH0sCi17IDB4MDMwMCwJMTYsCXsweGJhLCAweDAyLCAweDAzLCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDAzLCAweDAzLCAweDAyLCAweDA0LCAweDY4LCAweGJhLCAweDA0LCAweDFlLCAweGJifSB9LAoteyAweDAzMTAsCTE2LAl7MHgwMCwgMHgwYSwgMHg5MCwgMHg3ZiwgMHg5NSwgMHhlMCwgMHg0NCwgMHgwMiwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHg5MCwgMHg3ZiwgMHg5OCwgMHhlMH0gfSwKLXsgMHgwMzIwLAkxNiwJezB4NTQsIDB4ZmQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4OTUsIDB4ZTAsIDB4NTQsIDB4ZmQsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmEsIDB4MDUsIDB4MDN9IH0sCi17IDB4MDMzMCwJMTYsCXsweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDA2LCAweDE5LCAweGJiLCAweDAwLCAweDA4LCAweGU1LCAweDMzLCAweGQzLCAweDk1LCAweDMyLCAweDAyLCAweDA0fSB9LAoteyAweDAzNDAsCTE2LAl7MHgwMiwgMHhiYiwgMHgwMSwgMHgwOCwgMHhlNSwgMHgzMiwgMHhjMywgMHg5NSwgMHgzMywgMHgwMiwgMHgwNCwgMHgwMiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYX0gfSwKLXsgMHgwMzUwLAkxNiwJezB4MDcsIDB4MDUsIDB4OGIsIDB4MzQsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDIsIDB4MDQsIDB4MmUsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmEsIDB4MDAsIDB4MjB9IH0sCi17IDB4MDM2MCwJMTYsCXsweGI5LCAweDgwLCAweDEwLCAweDkwLCAweDdmLCAweDAwLCAweGU0LCAweGYwLCAweGEzLCAweGYwLCAweDkwLCAweDdmLCAweGI1LCAweDc0LCAweDAyLCAweGYwfSB9LAoteyAweDAzNzAsCTE2LAl7MHgwMiwgMHgwNCwgMHgyNiwgMHhiOSwgMHg4MiwgMHgwMiwgMHg4MCwgMHhlYiwgMHhiOSwgMHg4MSwgMHgwMiwgMHg4MCwgMHhlNiwgMHgwMiwgMHgwNCwgMHgyZX0gfSwKLXsgMHgwMzgwLAkxNiwJezB4YmEsIDB4MDEsIDB4MGYsIDB4YmIsIDB4MDAsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MmUsIDB4YmIsIDB4MDEsIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4MDJ9IH0sCi17IDB4MDM5MCwJMTYsCXsweDA0LCAweDJlLCAweGJhLCAweDAzLCAweDBmLCAweGJiLCAweDAwLCAweDAzLCAweDAyLCAweDA0LCAweDJlLCAweGJiLCAweDAxLCAweDAzLCAweDAyLCAweDA0fSB9LAoteyAweDAzYTAsCTE2LAl7MHgyNiwgMHgwMiwgMHgwNCwgMHgyZSwgMHhiYSwgMHgwNiwgMHg1NiwgMHhiYywgMHgwMSwgMHgwZiwgMHg5MCwgMHg3ZiwgMHhkNCwgMHg3NCwgMHgwNiwgMHhmMH0gfSwKLXsgMHgwM2IwLAkxNiwJezB4OTAsIDB4N2YsIDB4ZDUsIDB4NzQsIDB4NWEsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmMsIDB4MDIsIDB4MTIsIDB4YmIsIDB4MDAsIDB4NmYsIDB4OTB9IH0sCi17IDB4MDNjMCwJMTYsCXsweDdmLCAweGQ0LCAweDc0LCAweDA2LCAweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweDc0LCAweDZjLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweGJjLCAweDAzfSB9LAoteyAweDAzZDAsCTE2LAl7MHgyOSwgMHg3NCwgMHgwNCwgMHhjMywgMHg5YiwgMHg0MCwgMHg1NywgMHg2MCwgMHg1NSwgMHhlYiwgMHgyYiwgMHg5MCwgMHgwNiwgMHg4YywgMHgyNSwgMHg4Mn0gfSwKLXsgMHgwM2UwLAkxNiwJezB4ZjUsIDB4ODIsIDB4NzQsIDB4MDAsIDB4MzUsIDB4ODMsIDB4ZjUsIDB4ODMsIDB4ZTAsIDB4ZjksIDB4YTMsIDB4ZTAsIDB4ZmEsIDB4OTAsIDB4N2YsIDB4ZDR9IH0sCi17IDB4MDNmMCwJMTYsCXsweGU5LCAweGYwLCAweDkwLCAweDdmLCAweGQ1LCAweGVhLCAweGYwLCAweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweGJhLCAweDA4LCAweDBmfSB9LAoteyAweDA0MDAsCTE2LAl7MHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHgwMCwgMHhmMCwgMHg3NCwgMHgwMSwgMHg5MCwgMHg3ZiwgMHhiNSwgMHhmMCwgMHgwMiwgMHgwNCwgMHgyNiwgMHhiYX0gfSwKLXsgMHgwNDEwLAkxNiwJezB4MDksIDB4MDMsIDB4MDIsIDB4MDQsIDB4MjYsIDB4YmEsIDB4MGEsIDB4MDUsIDB4NzQsIDB4MDAsIDB4MDIsIDB4MDQsIDB4MDIsIDB4YmEsIDB4MGIsIDB4MDN9IH0sCi17IDB4MDQyMCwJMTYsCXsweDAyLCAweDA0LCAweDI2LCAweDAyLCAweDA0LCAweDJlLCAweDkwLCAweDdmLCAweGI0LCAweDc0LCAweDAyLCAweGYwLCAweDgwLCAweDA5LCAweDkwLCAweDdmfSB9LAoteyAweDA0MzAsCTE2LAl7MHhiNCwgMHhlMCwgMHg0NCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMCwgMHg4MywgMHhkMH0gfSwKLXsgMHgwNDQwLAkxNiwJezB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4ZWIsIDB4MjAsIDB4ZTcsIDB4MWUsIDB4YzMsIDB4OTQsIDB4MGEsIDB4NTAsIDB4MTksIDB4ZWIsIDB4MjMsIDB4MjR9IH0sCi17IDB4MDQ1MCwJMTYsCXsweDQ2LCAweGY1LCAweDgyLCAweDc0LCAweDA2LCAweDM0LCAweDAwLCAweGY1LCAweDgzLCAweGUwLCAweGY1LCAweGNiLCAweGY1LCAweGNkLCAweGEzLCAweGUwfSB9LAoteyAweDA0NjAsCTE2LAl7MHhmNSwgMHhjYSwgMHhmNSwgMHhjYywgMHhjMywgMHgyMiwgMHhkMywgMHgyMiwgMHhiOSwgMHg0MSwgMHgxMSwgMHhlYiwgMHg2NCwgMHhmZiwgMHg1NCwgMHg4MH0gfSwKLXsgMHgwNDcwLAkxNiwJezB4ZmIsIDB4OTAsIDB4N2YsIDB4OTgsIDB4ZTAsIDB4NTQsIDB4N2YsIDB4NGIsIDB4ZjAsIDB4MDIsIDB4MDQsIDB4MjYsIDB4OTAsIDB4N2YsIDB4OWIsIDB4ZTB9IH0sCi17IDB4MDQ4MCwJMTYsCXsweDY0LCAweGZmLCAweDAyLCAweDA0LCAweDAyLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwfSB9LAoteyAweDA0OTAsCTE2LAl7MHhlMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNSwgMHg5MSwgMHg5MCwgMHg3ZiwgMHhhOSwgMHg3NCwgMHgwNCwgMHhmMCwgMHg3NCwgMHgyMCwgMHg5MH0gfSwKLXsgMHgwNGEwLAkxNiwJezB4N2YsIDB4OWMsIDB4ZjAsIDB4MTIsIDB4MDUsIDB4ZGMsIDB4NzQsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODV9IH0sCi17IDB4MDRiMCwJMTYsCXsweGQwLCAweDg0LCAweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGMwLCAweDg2LCAweGMwLCAweDgyLCAweGMwLCAweDgzLCAweGMwfSB9LAoteyAweDA0YzAsCTE2LAl7MHg4NCwgMHhjMCwgMHg4NSwgMHhjMCwgMHhlMCwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMCwgMHhlNSwgMHg5MSwgMHhjMiwgMHhlNCwgMHhmNX0gfSwKLXsgMHgwNGQwLAkxNiwJezB4OTEsIDB4OTAsIDB4N2YsIDB4YWEsIDB4NzQsIDB4MDQsIDB4ZjAsIDB4OTAsIDB4N2YsIDB4YzksIDB4ZTAsIDB4ZjksIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTB9IH0sCi17IDB4MDRlMCwJMTYsCXsweDdkLCAweGMwLCAweDc1LCAweDg1LCAweDEwLCAweDg1LCAweDMyLCAweDg0LCAweGUwLCAweDA1LCAweDg2LCAweDA1LCAweDg0LCAweGYwLCAweGU1LCAweDg0fSB9LAoteyAweDA0ZjAsCTE2LAl7MHhiNSwgMHgzMywgMHgwMiwgMHg4MCwgMHgwOSwgMHgwNSwgMHgzMiwgMHgwNSwgMHg4NiwgMHhhMywgMHhkOSwgMHhlYywgMHg4MCwgMHgwMCwgMHg5MCwgMHg3Zn0gfSwKLXsgMHgwNTAwLAkxNiwJezB4YzksIDB4ZjAsIDB4YjEsIDB4NmQsIDB4NzQsIDB4MjAsIDB4OTAsIDB4N2YsIDB4OWMsIDB4ZjAsIDB4ZDAsIDB4ZTAsIDB4ZDAsIDB4ODUsIDB4ZDAsIDB4ODR9IH0sCi17IDB4MDUxMCwJMTYsCXsweGQwLCAweDgzLCAweGQwLCAweDgyLCAweGQwLCAweDg2LCAweDMyLCAweGU0LCAweGY1LCAweDg2LCAweDkwLCAweDdmLCAweGJjLCAweGUwLCAweDIwLCAweGUxfSB9LAoteyAweDA1MjAsCTE2LAl7MHg0YiwgMHg5MCwgMHg3ZCwgMHgwMCwgMHhlNSwgMHgzMiwgMHhmMCwgMHhhMywgMHhlNSwgMHgzMywgMHhmMCwgMHhhMywgMHhlNSwgMHgzMCwgMHhmMCwgMHhhM30gfSwKLXsgMHgwNTMwLAkxNiwJezB4ZTUsIDB4MzEsIDB4ZjAsIDB4YTMsIDB4ZTQsIDB4MzAsIDB4MDAsIDB4MDEsIDB4MDQsIDB4ZjAsIDB4YTMsIDB4MDUsIDB4ODYsIDB4OTAsIDB4MTAsIDB4MDB9IH0sCi17IDB4MDU0MCwJMTYsCXsweDc5LCAweDEwLCAweGUwLCAweGEzLCAweDA1LCAweDg2LCAweGYwLCAweGEzLCAweDA1LCAweDg2LCAweGQ5LCAweGY2LCAweDA1LCAweDg2LCAweDc0LCAweGZjfSB9LAoteyAweDA1NTAsCTE2LAl7MHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHg5MCwgMHgxMSwgMHgwMCwgMHg3OSwgMHgxMCwgMHhlMCwgMHhhMywgMHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNX0gfSwKLXsgMHgwNTYwLAkxNiwJezB4ODYsIDB4ZDksIDB4ZjYsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2YsIDB4YmQsIDB4NzQsIDB4MjYsIDB4ZjAsIDB4MjIsIDB4MjAsIDB4MDAsIDB4MTN9IH0sCi17IDB4MDU3MCwJMTYsCXsweGU1LCAweDMyLCAweGI1LCAweDMzLCAweDAxLCAweDIyLCAweDA1LCAweDMzLCAweDc1LCAweDgzLCAweDEwLCAweDg1LCAweDMzLCAweDgyLCAweGUwLCAweGY1fSB9LAoteyAweDA1ODAsCTE2LAl7MHg5OSwgMHhkMiwgMHgwMCwgMHg3NCwgMHgwMCwgMHhiNSwgMHgzNCwgMHgwMSwgMHgyMiwgMHhlNSwgMHgzMywgMHhkMywgMHg5NSwgMHgzMiwgMHhjMywgMHg5NX0gfSwKLXsgMHgwNTkwLAkxNiwJezB4MzQsIDB4NDAsIDB4ZjUsIDB4NzUsIDB4MzQsIDB4MDAsIDB4ZDIsIDB4MDEsIDB4MDIsIDB4MDUsIDB4ZGMsIDB4YzAsIDB4ODYsIDB4YzAsIDB4ODIsIDB4YzB9IH0sCi17IDB4MDVhMCwJMTYsCXsweDgzLCAweGMwLCAweDg0LCAweGMwLCAweDg1LCAweGMwLCAweGUwLCAweDMwLCAweDk5LCAweDA3LCAweGMyLCAweDk5LCAweGMyLCAweDAwLCAweDEyLCAweDA1fSB9LAoteyAweDA1YjAsCTE2LAl7MHg3MCwgMHgzMCwgMHg5OCwgMHgwNSwgMHgxMiwgMHgwNSwgMHhjNiwgMHhjMiwgMHg5OCwgMHhkMCwgMHhlMCwgMHhkMCwgMHg4NSwgMHhkMCwgMHg4NCwgMHhkMH0gfSwKLXsgMHgwNWMwLAkxNiwJezB4ODMsIDB4ZDAsIDB4ODIsIDB4ZDAsIDB4ODYsIDB4MzIsIDB4NzUsIDB4ODMsIDB4MTEsIDB4ODUsIDB4MzAsIDB4ODIsIDB4MDUsIDB4ODIsIDB4ZTUsIDB4OTl9IH0sCi17IDB4MDVkMCwJMTYsCXsweGYwLCAweGU1LCAweDgyLCAweGI1LCAweDMxLCAweDAxLCAweDIyLCAweDA1LCAweDMwLCAweGIxLCAweGRjLCAweDIyLCAweDc0LCAweDEwLCAweDkwLCAweDdmfSB9LAoteyAweDA1ZTAsCTE2LAl7MHg5YywgMHhmMCwgMHg5MCwgMHg3ZiwgMHhiOCwgMHhlMCwgMHgyMCwgMHhlMSwgMHgzZSwgMHgyMCwgMHgwMSwgMHgzYywgMHhlNSwgMHgzMCwgMHhiNSwgMHgzMX0gfSwKLXsgMHgwNWYwLAkxNiwJezB4MDEsIDB4MjIsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4NzUsIDB4ODMsIDB4MTEsIDB4MDUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDAsIDB4ZjAsIDB4YTMsIDB4MDV9IH0sCi17IDB4MDYwMCwJMTYsCXsweDg2LCAweDc5LCAweDAxLCAweGU1LCAweDMwLCAweGI1LCAweDMxLCAweDAyLCAweDgwLCAweDEwLCAweDA1LCAweDMxLCAweDg1LCAweDMxLCAweDgyLCAweGUwfSB9LAoteyAweDA2MTAsCTE2LAl7MHgwNSwgMHg4NiwgMHhmMCwgMHhhMywgMHgwNSwgMHg4NiwgMHgwOSwgMHhiOSwgMHg0MCwgMHhlOSwgMHg3NCwgMHgxMCwgMHg5MCwgMHg3ZiwgMHg5YywgMHhmMH0gfSwKLXsgMHgwNjIwLAkxNiwJezB4OTAsIDB4N2YsIDB4YjksIDB4ZTksIDB4NjAsIDB4MDEsIDB4ZjAsIDB4MjIsIDB4YzIsIDB4MDEsIDB4ZTQsIDB4ZjUsIDB4ODYsIDB4OTAsIDB4N2UsIDB4MDB9IH0sCi17IDB4MDYzMCwJMTYsCXsweDc0LCAweDAxLCAweGYwLCAweGEzLCAweDc0LCAweDAyLCAweGYwLCAweDkwLCAweDdmLCAweGI5LCAweGYwLCAweDIyLCAweGMyLCAweDk5LCAweGY1LCAweDk5fSB9LAoteyAweDA2NDAsCTE2LAl7MHgzMCwgMHg5OSwgMHhmZCwgMHhjMiwgMHg5OSwgMHgyMiwgMHhlNSwgMHg1ZSwgMHhmNiwgMHgzYywgMHhmZCwgMHg4ZiwgMHhmZSwgMHhjOCwgMHhmZiwgMHg2NH0gfSwKLXsgMHgwNjUwLAkxNiwJezB4ZmYsIDB4YjIsIDB4ZmYsIDB4ZDksIDB4ZmYsIDB4ZWQsIDB4ZmYsIDB4ZjMsIDB4ZmYsIDB4ZmEsIDB4MTIsIDB4MDEsIDB4MDAsIDB4MDEsIDB4ZmYsIDB4ZmZ9IH0sCi17IDB4MDY2MCwJMTYsCXsweGZmLCAweDQwLCAweGNkLCAweDA2LCAweDA0LCAweDAxLCAweDg5LCAweGFiLCAweDAxLCAweDAyLCAweDAzLCAweDAxLCAweDA5LCAweDAyLCAweDIwLCAweDAwfSB9LAoteyAweDA2NzAsCTE2LAl7MHgwMSwgMHgwMSwgMHgwMCwgMHg4MCwgMHgzMiwgMHgwOSwgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMiwgMHhmZiwgMHhmZiwgMHhmZiwgMHgwMCwgMHgwNywgMHgwNX0gfSwKLXsgMHgwNjgwLAkxNiwJezB4ODIsIDB4MDMsIDB4NDAsIDB4MDAsIDB4MDEsIDB4MDcsIDB4MDUsIDB4MDIsIDB4MDIsIDB4NDAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4OTQsIDB4MDYsIDB4OTh9IH0sCi17IDB4MDY5MCwJMTYsCXsweDA2LCAweGJhLCAweDA2LCAweGU4LCAweDA0LCAweDAzLCAweDAwLCAweDAwLCAweDIyLCAweDAzLCAweDQxLCAweDAwLCAweDQzLCAweDAwLCAweDRkLCAweDAwfSB9LAoteyAweDA2YTAsCTE2LAl7MHg0NSwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NSwgMHgwMCwgMHg3MywgMHgwMCwgMHg2MiwgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMH0gfSwKLXsgMHgwNmIwLAkxNiwJezB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4NzMsIDB4MDAsIDB4MmUsIDB4MDMsIDB4NDEsIDB4MDAsIDB4NDMsIDB4MDB9IH0sCi17IDB4MDZjMCwJMTYsCXsweDRkLCAweDAwLCAweDQ1LCAweDAwLCAweDIwLCAweDAwLCAweDU1LCAweDAwLCAweDUzLCAweDAwLCAweDQyLCAweDAwLCAweDIwLCAweDAwLCAweDczLCAweDAwfSB9LAoteyAweDA2ZDAsCTE2LAl7MHg2NSwgMHgwMCwgMHg3MiwgMHgwMCwgMHg2OSwgMHgwMCwgMHg2MSwgMHgwMCwgMHg2YywgMHgwMCwgMHgyMCwgMHgwMCwgMHg3NywgMHgwMCwgMHg2OSwgMHgwMH0gfSwKLXsgMHgwNmUwLAkxNCwJezB4NjQsIDB4MDAsIDB4NjcsIDB4MDAsIDB4NjUsIDB4MDAsIDB4NzQsIDB4MDAsIDB4MDYsIDB4MDMsIDB4MzQsIDB4MDAsIDB4MzcsIDB4MDB9IH0sCi17IDB4ZmZmZiwJMCwJezB4MDB9IH0KLX07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaAppbmRleCAxYjA5NTc4Li4zOWE3YzExIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgKQEAgLTQwMiwxMCArNDAyLDE4IEBACiAJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCiAKICNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfQ1lQUkVTU19BVEFDQgorLyogQ1k3QzY4MzAwIDogc3VwcG9ydCBhdGFjYiAqLwogVU5VU1VBTF9ERVYoICAweDA0YjQsIDB4NjgzMCwgMHgwMDAwLCAweDk5OTksCiAJCSJDeXByZXNzIiwKIAkJIkN5cHJlc3MgQVQyTFAiLAotCQlVU19TQ19DWVBfQVRBQ0IsIFVTX1BSX0JVTEssIE5VTEwsCisJCVVTX1NDX0NZUF9BVEFDQiwgVVNfUFJfREVWSUNFLCBOVUxMLAorCQkwKSwKKworLyogQ1k3QzY4MzEwIDogc3VwcG9ydCBhdGFjYiBhbmQgYXRhY2IyICovCitVTlVTVUFMX0RFViggIDB4MDRiNCwgMHg2ODMxLCAweDAwMDAsIDB4OTk5OSwKKwkJIkN5cHJlc3MiLAorCQkiQ3lwcmVzcyBJU0QtMzAwTFAiLAorCQlVU19TQ19DWVBfQVRBQ0IsIFVTX1BSX0RFVklDRSwgTlVMTCwKIAkJMCksCiAjZW5kaWYKIApAQCAtMTUyMiw3ICsxNTMwLDcgQEAKIAkJIlNvbnkgRXJpY3Nzb24iLAogCQkiTTYwMGkiLAogCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKLQkJVVNfRkxfRklYX0NBUEFDSVRZICksCisJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfRklYX0NBUEFDSVRZICksCiAKIC8qIFJlcG9ydGVkIGJ5IEtldmluIENlcm5la2VlIDxrcGMtdXNiZGV2QGdlbGF0by51aXVjLmVkdT4KICAqIFRlc3RlZCBvbiBoYXJkd2FyZSB2ZXJzaW9uIDEuMTAuCkBAIC0xNzE2LDEwICsxNzI0LDEyIEBACiAvKgogICogUGF0Y2ggYnkgUGV0ZSBaYWl0Y2V2IDx6YWl0Y2V2QHJlZGhhdC5jb20+CiAgKiBSZXBvcnQgYnkgTWFyayBQYXR0b24uIFJlZCBIYXQgYnojMjA4OTI4LgorICogQWRkZWQgc3VwcG9ydCBmb3IgcmV2IDB4MDAwMiAoTW90b3JvbGEgUk9LUiBXNSkKKyAqIGJ5IEphdmllciBTbWFsZG9uZSA8amF2aWVyQHNtYWxkb25lLmNvbS5hcj4KICAqLwotVU5VU1VBTF9ERVYoICAweDIyYjgsIDB4NDgxMCwgMHgwMDAxLCAweDAwMDEsCitVTlVTVUFMX0RFViggIDB4MjJiOCwgMHg0ODEwLCAweDAwMDEsIDB4MDAwMiwKIAkJIk1vdG9yb2xhIiwKLQkJIlJBWlIgVjNpIiwKKwkJIlJBWlIgVjNpL1JPS1IgVzUiLAogCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKIAkJVVNfRkxfRklYX0NBUEFDSVRZKSwKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9LY29uZmlnIGIvZHJpdmVycy92aWRlby9LY29uZmlnCmluZGV4IDAwMmI2MWIuLjliODg3ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL0tjb25maWcKQEAgLTcsNyArNyw3IEBACiAKIHNvdXJjZSAiZHJpdmVycy9jaGFyL2FncC9LY29uZmlnIgogCi1zb3VyY2UgImRyaXZlcnMvY2hhci9kcm0vS2NvbmZpZyIKK3NvdXJjZSAiZHJpdmVycy9ncHUvZHJtL0tjb25maWciCiAKIGNvbmZpZyBWR0FTVEFURQogICAgICAgIHRyaXN0YXRlCkBAIC0xODI1LDEyICsxODI1LDEzIEBACiAKIGNvbmZpZyBGQl9XMTAwCiAJdHJpc3RhdGUgIlcxMDAgZnJhbWUgYnVmZmVyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBGQiAmJiBQWEFfU0hBUlBTTAorCWRlcGVuZHMgb24gRkIgJiYgQVJDSF9QWEEKICAJc2VsZWN0IEZCX0NGQl9GSUxMUkVDVAogIAlzZWxlY3QgRkJfQ0ZCX0NPUFlBUkVBCiAgCXNlbGVjdCBGQl9DRkJfSU1BR0VCTElUCiAJLS0taGVscC0tLQogCSAgRnJhbWUgYnVmZmVyIGRyaXZlciBmb3IgdGhlIHcxMDAgYXMgZm91bmQgb24gdGhlIFNoYXJwIFNMLUN4eCBzZXJpZXMuCisJICBJdCBjYW4gYWxzbyBkcml2ZSB0aGUgdzMyMjAgY2hpcCBmb3VuZCBvbiBpUEFRIGh4NDcwMC4KIAogCSAgVGhpcyBkcml2ZXIgaXMgYWxzbyBhdmFpbGFibGUgYXMgYSBtb2R1bGUgKCA9IGNvZGUgd2hpY2ggY2FuIGJlCiAJICBpbnNlcnRlZCBhbmQgcmVtb3ZlZCBmcm9tIHRoZSBydW5uaW5nIGtlcm5lbCB3aGVuZXZlciB5b3Ugd2FudCkuIFRoZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9hdHkvYXR5ZmJfYmFzZS5jIGIvZHJpdmVycy92aWRlby9hdHkvYXR5ZmJfYmFzZS5jCmluZGV4IGU0YmNmNTMuLmJkNGFjMGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vYXR5L2F0eWZiX2Jhc2UuYworKysgYi9kcml2ZXJzL3ZpZGVvL2F0eS9hdHlmYl9iYXNlLmMKQEAgLTMzNTYsNyArMzM1Niw3IEBACiAKIAlpbmZvLT5maXgubW1pb19zdGFydCA9IHJhZGRyOwogCXBhci0+YXRpX3JlZ2Jhc2UgPSBpb3JlbWFwKGluZm8tPmZpeC5tbWlvX3N0YXJ0LCAweDEwMDApOwotCWlmIChwYXItPmF0aV9yZWdiYXNlID09IDApCisJaWYgKHBhci0+YXRpX3JlZ2Jhc2UgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlpbmZvLT5maXgubW1pb19zdGFydCArPSBwYXItPmF1eF9zdGFydCA/IDB4NDAwIDogMHhjMDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2F0eS9yYWRlb25fYmFzZS5jIGIvZHJpdmVycy92aWRlby9hdHkvcmFkZW9uX2Jhc2UuYwppbmRleCA3MmNkMGQyLi40MDBlOTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2F0eS9yYWRlb25fYmFzZS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vYXR5L3JhZGVvbl9iYXNlLmMKQEAgLTIyNzcsOCArMjI3Nyw4IEBACiAJZG8gewogCQlyaW5mby0+ZmJfYmFzZSA9IGlvcmVtYXAgKHJpbmZvLT5mYl9iYXNlX3BoeXMsCiAJCQkJCSAgcmluZm8tPm1hcHBlZF92cmFtKTsKLQl9IHdoaWxlICggICByaW5mby0+ZmJfYmFzZSA9PSAwICYmCi0JCSAgKChyaW5mby0+bWFwcGVkX3ZyYW0gLz0yKSA+PSBNSU5fTUFQUEVEX1ZSQU0pICk7CisJfSB3aGlsZSAocmluZm8tPmZiX2Jhc2UgPT0gTlVMTCAmJgorCQkgKChyaW5mby0+bWFwcGVkX3ZyYW0gLz0gMikgPj0gTUlOX01BUFBFRF9WUkFNKSk7CiAKIAlpZiAocmluZm8tPmZiX2Jhc2UgPT0gTlVMTCkgewogCQlwcmludGsgKEtFUk5fRVJSICJyYWRlb25mYiAoJXMpOiBjYW5ub3QgbWFwIEZCXG4iLApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZyBiL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L0tjb25maWcKaW5kZXggZGNkODA3My4uMzBiZjdmMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvS2NvbmZpZworKysgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9LY29uZmlnCkBAIC0xMTIsMyArMTEyLDEwIEBACiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBJbnRlbCBMRTgwNTc4IChDYXJpbGxvIFJhbmNoKSBzYXkgWSB0byBlbmFibGUgdGhlCiAJICBiYWNrbGlnaHQgZHJpdmVyLgorCitjb25maWcgQkFDS0xJR0hUX1BXTQorCXRyaXN0YXRlICJHZW5lcmljIFBXTSBiYXNlZCBCYWNrbGlnaHQgRHJpdmVyIgorCWRlcGVuZHMgb24gQkFDS0xJR0hUX0NMQVNTX0RFVklDRSAmJiBIQVZFX1BXTQorCWhlbHAKKwkgIElmIHlvdSBoYXZlIGEgTENEIGJhY2tsaWdodCBhZGp1c3RhYmxlIGJ5IFBXTSwgc2F5IFkgdG8gZW5hYmxlCisJICB0aGlzIGRyaXZlci4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vYmFja2xpZ2h0L01ha2VmaWxlIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKaW5kZXggMzNmNmM3Yy4uYjUxYTdjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvTWFrZWZpbGUKQEAgLTEwLDMgKzEwLDQgQEAKIG9iai0kKENPTkZJR19CQUNLTElHSFRfT01BUDEpCSs9IG9tYXAxX2JsLm8KIG9iai0kKENPTkZJR19CQUNLTElHSFRfUFJPR0VBUikgKz0gcHJvZ2Vhcl9ibC5vCiBvYmotJChDT05GSUdfQkFDS0xJR0hUX0NBUklMTE9fUkFOQ0gpICs9IGNyX2JsbGNkLm8KK29iai0kKENPTkZJR19CQUNLTElHSFRfUFdNKQkrPSBwd21fYmwubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMgYi9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzM4ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy92aWRlby9iYWNrbGlnaHQvcHdtX2JsLmMKQEAgLTAsMCArMSwxODUgQEAKKy8qCisgKiBsaW51eC9kcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworICoKKyAqIHNpbXBsZSBQV00gYmFzZWQgYmFja2xpZ2h0IGNvbnRyb2wsIGJvYXJkIGNvZGUgaGFzIHRvIHNldHVwCisgKiAxKSBwaW4gY29uZmlndXJhdGlvbiBzbyBQV00gd2F2ZWZvcm1zIGNhbiBvdXRwdXQKKyAqIDIpIHBsYXRmb3JtX2RhdGEgY2FzdHMgdG8gdGhlIFBXTSBpZCAoMC8xLzIvMyBvbiBQWEEpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZiLmg+CisjaW5jbHVkZSA8bGludXgvYmFja2xpZ2h0Lmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvcHdtLmg+CisjaW5jbHVkZSA8bGludXgvcHdtX2JhY2tsaWdodC5oPgorCitzdHJ1Y3QgcHdtX2JsX2RhdGEgeworCXN0cnVjdCBwd21fZGV2aWNlCSpwd207CisJdW5zaWduZWQgaW50CQlwZXJpb2Q7CisJaW50CQkJKCpub3RpZnkpKGludCBicmlnaHRuZXNzKTsKK307CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzKHN0cnVjdCBiYWNrbGlnaHRfZGV2aWNlICpibCkKK3sKKwlzdHJ1Y3QgcHdtX2JsX2RhdGEgKnBiID0gZGV2X2dldF9kcnZkYXRhKCZibC0+ZGV2KTsKKwlpbnQgYnJpZ2h0bmVzcyA9IGJsLT5wcm9wcy5icmlnaHRuZXNzOworCWludCBtYXggPSBibC0+cHJvcHMubWF4X2JyaWdodG5lc3M7CisKKwlpZiAoYmwtPnByb3BzLnBvd2VyICE9IEZCX0JMQU5LX1VOQkxBTkspCisJCWJyaWdodG5lc3MgPSAwOworCisJaWYgKGJsLT5wcm9wcy5mYl9ibGFuayAhPSBGQl9CTEFOS19VTkJMQU5LKQorCQlicmlnaHRuZXNzID0gMDsKKworCWlmIChwYi0+bm90aWZ5KQorCQlicmlnaHRuZXNzID0gcGItPm5vdGlmeShicmlnaHRuZXNzKTsKKworCWlmIChicmlnaHRuZXNzID09IDApIHsKKwkJcHdtX2NvbmZpZyhwYi0+cHdtLCAwLCBwYi0+cGVyaW9kKTsKKwkJcHdtX2Rpc2FibGUocGItPnB3bSk7CisJfSBlbHNlIHsKKwkJcHdtX2NvbmZpZyhwYi0+cHdtLCBicmlnaHRuZXNzICogcGItPnBlcmlvZCAvIG1heCwgcGItPnBlcmlvZCk7CisJCXB3bV9lbmFibGUocGItPnB3bSk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsKQoreworCXJldHVybiBibC0+cHJvcHMuYnJpZ2h0bmVzczsKK30KKworc3RhdGljIHN0cnVjdCBiYWNrbGlnaHRfb3BzIHB3bV9iYWNrbGlnaHRfb3BzID0geworCS51cGRhdGVfc3RhdHVzCT0gcHdtX2JhY2tsaWdodF91cGRhdGVfc3RhdHVzLAorCS5nZXRfYnJpZ2h0bmVzcwk9IHB3bV9iYWNrbGlnaHRfZ2V0X2JyaWdodG5lc3MsCit9OworCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhICpkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsOworCXN0cnVjdCBwd21fYmxfZGF0YSAqcGI7CisJaW50IHJldDsKKworCWlmICghZGF0YSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlpZiAoZGF0YS0+aW5pdCkgeworCQlyZXQgPSBkYXRhLT5pbml0KCZwZGV2LT5kZXYpOworCQlpZiAocmV0IDwgMCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcGIgPSBremFsbG9jKHNpemVvZigqcGIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIXBiKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2FsbG9jOworCX0KKworCXBiLT5wZXJpb2QgPSBkYXRhLT5wd21fcGVyaW9kX25zOworCXBiLT5ub3RpZnkgPSBkYXRhLT5ub3RpZnk7CisKKwlwYi0+cHdtID0gcHdtX3JlcXVlc3QoZGF0YS0+cHdtX2lkLCAiYmFja2xpZ2h0Iik7CisJaWYgKElTX0VSUihwYi0+cHdtKSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUgdG8gcmVxdWVzdCBQV00gZm9yIGJhY2tsaWdodFxuIik7CisJCXJldCA9IFBUUl9FUlIocGItPnB3bSk7CisJCWdvdG8gZXJyX3B3bTsKKwl9CisKKwlibCA9IGJhY2tsaWdodF9kZXZpY2VfcmVnaXN0ZXIocGRldi0+bmFtZSwgJnBkZXYtPmRldiwKKwkJCXBiLCAmcHdtX2JhY2tsaWdodF9vcHMpOworCWlmIChJU19FUlIoYmwpKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byByZWdpc3RlciBiYWNrbGlnaHRcbiIpOworCQlyZXQgPSBQVFJfRVJSKGJsKTsKKwkJZ290byBlcnJfYmw7CisJfQorCisJYmwtPnByb3BzLm1heF9icmlnaHRuZXNzID0gZGF0YS0+bWF4X2JyaWdodG5lc3M7CisJYmwtPnByb3BzLmJyaWdodG5lc3MgPSBkYXRhLT5kZnRfYnJpZ2h0bmVzczsKKwliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7CisKKwlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBibCk7CisJcmV0dXJuIDA7CisKK2Vycl9ibDoKKwlwd21fZnJlZShwYi0+cHdtKTsKK2Vycl9wd206CisJa2ZyZWUocGIpOworZXJyX2FsbG9jOgorCWlmIChkYXRhLT5leGl0KQorCQlkYXRhLT5leGl0KCZwZGV2LT5kZXYpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgcHdtX2JhY2tsaWdodF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3QgcGxhdGZvcm1fcHdtX2JhY2tsaWdodF9kYXRhICpkYXRhID0gcGRldi0+ZGV2LnBsYXRmb3JtX2RhdGE7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHB3bV9ibF9kYXRhICpwYiA9IGRldl9nZXRfZHJ2ZGF0YSgmYmwtPmRldik7CisKKwliYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoYmwpOworCXB3bV9jb25maWcocGItPnB3bSwgMCwgcGItPnBlcmlvZCk7CisJcHdtX2Rpc2FibGUocGItPnB3bSk7CisJcHdtX2ZyZWUocGItPnB3bSk7CisJa2ZyZWUocGIpOworCWlmIChkYXRhLT5leGl0KQorCQlkYXRhLT5leGl0KCZwZGV2LT5kZXYpOworCXJldHVybiAwOworfQorCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCSBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHB3bV9ibF9kYXRhICpwYiA9IGRldl9nZXRfZHJ2ZGF0YSgmYmwtPmRldik7CisKKwlwd21fY29uZmlnKHBiLT5wd20sIDAsIHBiLT5wZXJpb2QpOworCXB3bV9kaXNhYmxlKHBiLT5wd20pOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHB3bV9iYWNrbGlnaHRfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJsID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhibCk7CisJcmV0dXJuIDA7Cit9CisjZWxzZQorI2RlZmluZSBwd21fYmFja2xpZ2h0X3N1c3BlbmQJTlVMTAorI2RlZmluZSBwd21fYmFja2xpZ2h0X3Jlc3VtZQlOVUxMCisjZW5kaWYKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcHdtX2JhY2tsaWdodF9kcml2ZXIgPSB7CisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gInB3bS1iYWNrbGlnaHQiLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9LAorCS5wcm9iZQkJPSBwd21fYmFja2xpZ2h0X3Byb2JlLAorCS5yZW1vdmUJCT0gcHdtX2JhY2tsaWdodF9yZW1vdmUsCisJLnN1c3BlbmQJPSBwd21fYmFja2xpZ2h0X3N1c3BlbmQsCisJLnJlc3VtZQkJPSBwd21fYmFja2xpZ2h0X3Jlc3VtZSwKK307CisKK3N0YXRpYyBpbnQgX19pbml0IHB3bV9iYWNrbGlnaHRfaW5pdCh2b2lkKQoreworCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJnB3bV9iYWNrbGlnaHRfZHJpdmVyKTsKK30KK21vZHVsZV9pbml0KHB3bV9iYWNrbGlnaHRfaW5pdCk7CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBwd21fYmFja2xpZ2h0X2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHdtX2JhY2tsaWdodF9kcml2ZXIpOworfQorbW9kdWxlX2V4aXQocHdtX2JhY2tsaWdodF9leGl0KTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJQV00gYmFzZWQgQmFja2xpZ2h0IERyaXZlciIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9jaXJydXNmYi5jIGIvZHJpdmVycy92aWRlby9jaXJydXNmYi5jCmluZGV4IDM1YWM5ZDkuLmMxNGIyNDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vY2lycnVzZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2NpcnJ1c2ZiLmMKQEAgLTI0MzIsOSArMjQzMiw5IEBACiAJaW5mby0+c2NyZWVuX3NpemUgPSBib2FyZF9zaXplOwogCWNpbmZvLT51bm1hcCA9IGNpcnJ1c2ZiX3BjaV91bm1hcDsKIAotCXByaW50ayhLRVJOX0lORk8gIiBSQU0gKCVsdSBrQikgYXQgMHh4JWx4LCAiLAotCQlpbmZvLT5zY3JlZW5fc2l6ZSA+PiAxMCwgYm9hcmRfYWRkcik7Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQ2lycnVzIExvZ2ljIGNoaXBzZXQgb24gUENJIGJ1c1xuIik7CisJcHJpbnRrKEtFUk5fSU5GTyAiUkFNICglbHUga0IpIGF0IDB4JWx4LCBDaXJydXMgIgorCQkJIkxvZ2ljIGNoaXBzZXQgb24gUENJIGJ1c1xuIiwKKwkJCWluZm8tPnNjcmVlbl9zaXplID4+IDEwLCBib2FyZF9hZGRyKTsKIAlwY2lfc2V0X2RydmRhdGEocGRldiwgaW5mbyk7CiAKIAlyZXQgPSBjaXJydXNmYl9yZWdpc3RlcihpbmZvKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vY29uc29sZS9mYmNvbi5jIGIvZHJpdmVycy92aWRlby9jb25zb2xlL2ZiY29uLmMKaW5kZXggNWZhOGI3Ni4uOTdhZmY4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9jb25zb2xlL2ZiY29uLmMKKysrIGIvZHJpdmVycy92aWRlby9jb25zb2xlL2ZiY29uLmMKQEAgLTIyNzUsOSArMjI3NSw3IEBACiAJICogaW4gZmJfc2V0X3ZhcigpCiAJICovCiAJaW5mby0+dmFyLmFjdGl2YXRlID0gdmFyLmFjdGl2YXRlOwotCXZhci55b2Zmc2V0ID0gaW5mby0+dmFyLnlvZmZzZXQ7Ci0JdmFyLnhvZmZzZXQgPSBpbmZvLT52YXIueG9mZnNldDsKLQl2YXIudm1vZGUgPSBpbmZvLT52YXIudm1vZGU7CisJdmFyLnZtb2RlIHw9IGluZm8tPnZhci52bW9kZSAmIH5GQl9WTU9ERV9NQVNLOwogCWZiX3NldF92YXIoaW5mbywgJnZhcik7CiAJb3BzLT52YXIgPSBpbmZvLT52YXI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJfZGVmaW8uYyBiL2RyaXZlcnMvdmlkZW8vZmJfZGVmaW8uYwppbmRleCAyNDg0M2ZkLi41OWRmMTMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiX2RlZmlvLmMKKysrIGIvZHJpdmVycy92aWRlby9mYl9kZWZpby5jCkBAIC03NCw2ICs3NCw3IEBACiB7CiAJc3RydWN0IGZiX2luZm8gKmluZm8gPSB2bWEtPnZtX3ByaXZhdGVfZGF0YTsKIAlzdHJ1Y3QgZmJfZGVmZXJyZWRfaW8gKmZiZGVmaW8gPSBpbmZvLT5mYmRlZmlvOworCXN0cnVjdCBwYWdlICpjdXI7CiAKIAkvKiB0aGlzIGlzIGEgY2FsbGJhY2sgd2UgZ2V0IHdoZW4gdXNlcnNwYWNlIGZpcnN0IHRyaWVzIHRvCiAJd3JpdGUgdG8gdGhlIHBhZ2UuIHdlIHNjaGVkdWxlIGEgd29ya3F1ZXVlLiB0aGF0IHdvcmtxdWV1ZQpAQCAtODMsNyArODQsMjQgQEAKIAogCS8qIHByb3RlY3QgYWdhaW5zdCB0aGUgd29ya3F1ZXVlIGNoYW5naW5nIHRoZSBwYWdlIGxpc3QgKi8KIAltdXRleF9sb2NrKCZmYmRlZmlvLT5sb2NrKTsKLQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmZmJkZWZpby0+cGFnZWxpc3QpOworCisJLyogd2UgbG9vcCB0aHJvdWdoIHRoZSBwYWdlbGlzdCBiZWZvcmUgYWRkaW5nIGluIG9yZGVyCisJdG8ga2VlcCB0aGUgcGFnZWxpc3Qgc29ydGVkICovCisJbGlzdF9mb3JfZWFjaF9lbnRyeShjdXIsICZmYmRlZmlvLT5wYWdlbGlzdCwgbHJ1KSB7CisJCS8qIHRoaXMgY2hlY2sgaXMgdG8gY2F0Y2ggdGhlIGNhc2Ugd2hlcmUgYSBuZXcKKwkJcHJvY2VzcyBjb3VsZCBzdGFydCB3cml0aW5nIHRvIHRoZSBzYW1lIHBhZ2UKKwkJdGhyb3VnaCBhIG5ldyBwdGUuIHRoaXMgbmV3IGFjY2VzcyBjYW4gY2F1c2UgdGhlCisJCW1rd3JpdGUgZXZlbiB3aGVuIHRoZSBvcmlnaW5hbCBwcydzIHB0ZSBpcyBtYXJrZWQKKwkJd3JpdGFibGUgKi8KKwkJaWYgKHVubGlrZWx5KGN1ciA9PSBwYWdlKSkKKwkJCWdvdG8gcGFnZV9hbHJlYWR5X2FkZGVkOworCQllbHNlIGlmIChjdXItPmluZGV4ID4gcGFnZS0+aW5kZXgpCisJCQlicmVhazsKKwl9CisKKwlsaXN0X2FkZF90YWlsKCZwYWdlLT5scnUsICZjdXItPmxydSk7CisKK3BhZ2VfYWxyZWFkeV9hZGRlZDoKIAltdXRleF91bmxvY2soJmZiZGVmaW8tPmxvY2spOwogCiAJLyogY29tZSBiYWNrIGFmdGVyIGRlbGF5IHRvIHByb2Nlc3MgdGhlIGRlZmVycmVkIElPICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMgYi9kcml2ZXJzL3ZpZGVvL2ZibWVtLmMKaW5kZXggNzc2ZjdmYy4uMzNlYmRiMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9mYm1lbS5jCisrKyBiL2RyaXZlcnMvdmlkZW8vZmJtZW0uYwpAQCAtMTMyNiwyMCArMTMyNiwyNyBAQAogCiAJaWYgKGZiaWR4ID49IEZCX01BWCkKIAkJcmV0dXJuIC1FTk9ERVY7CisJbG9ja19rZXJuZWwoKTsKICNpZmRlZiBDT05GSUdfS01PRAogCWlmICghKGluZm8gPSByZWdpc3RlcmVkX2ZiW2ZiaWR4XSkpCiAJCXRyeV90b19sb2FkKGZiaWR4KTsKICNlbmRpZiAvKiBDT05GSUdfS01PRCAqLwotCWlmICghKGluZm8gPSByZWdpc3RlcmVkX2ZiW2ZiaWR4XSkpCi0JCXJldHVybiAtRU5PREVWOwotCWlmICghdHJ5X21vZHVsZV9nZXQoaW5mby0+ZmJvcHMtPm93bmVyKSkKLQkJcmV0dXJuIC1FTk9ERVY7CisJaWYgKCEoaW5mbyA9IHJlZ2lzdGVyZWRfZmJbZmJpZHhdKSkgeworCQlyZXMgPSAtRU5PREVWOworCQlnb3RvIG91dDsKKwl9CisJaWYgKCF0cnlfbW9kdWxlX2dldChpbmZvLT5mYm9wcy0+b3duZXIpKSB7CisJCXJlcyA9IC1FTk9ERVY7CisJCWdvdG8gb3V0OworCX0KIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBpbmZvOwogCWlmIChpbmZvLT5mYm9wcy0+ZmJfb3BlbikgewogCQlyZXMgPSBpbmZvLT5mYm9wcy0+ZmJfb3BlbihpbmZvLDEpOwogCQlpZiAocmVzKQogCQkJbW9kdWxlX3B1dChpbmZvLT5mYm9wcy0+b3duZXIpOwogCX0KK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIHJlczsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9mc2wtZGl1LWZiLmMgYi9kcml2ZXJzL3ZpZGVvL2ZzbC1kaXUtZmIuYwppbmRleCBiNTBiYjAzLi4wOWQ3ZTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZzbC1kaXUtZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2ZzbC1kaXUtZmIuYwpAQCAtMjg2LDcgKzI4Niw3IEBACiAgKglyaGVhcCBhbmQgbWFrZSB0aGUgZnVydHVyZSBsYXJnZSBhbGxvY2F0aW9uIGZhaWwuCiAgKi8KIAotdm9pZCAqZnNsX2RpdV9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUsIHBoeXNfYWRkcl90ICpwaHlzKQorc3RhdGljIHZvaWQgKmZzbF9kaXVfYWxsb2ModW5zaWduZWQgbG9uZyBzaXplLCBwaHlzX2FkZHJfdCAqcGh5cykKIHsKIAl2b2lkICp2aXJ0OwogCkBAIC0zMTEsMTIgKzMxMSwxMiBAQAogCQltZW1zZXQodmlydCwgMCwgc2l6ZSk7CiAJfQogCi0JcHJfZGVidWcoInJoIHZpcnQ9JXAgcGh5cz0lbHhcbiIsIHZpcnQsICpwaHlzKTsKKwlwcl9kZWJ1ZygicmggdmlydD0lcCBwaHlzPSVsbHhcbiIsIHZpcnQsICh1bnNpZ25lZCBsb25nIGxvbmcpKnBoeXMpOwogCiAJcmV0dXJuIHZpcnQ7CiB9CiAKLXZvaWQgZnNsX2RpdV9mcmVlKHZvaWQgKnAsIHVuc2lnbmVkIGxvbmcgc2l6ZSkKK3N0YXRpYyB2b2lkIGZzbF9kaXVfZnJlZSh2b2lkICpwLCB1bnNpZ25lZCBsb25nIHNpemUpCiB7CiAJcHJfZGVidWcoInA9JXAgc2l6ZT0lbHVcbiIsIHAsIHNpemUpOwogCkBAIC03NzAsNyArNzcwLDcgQEAKIAlpbmZvLT5maXguc21lbV9sZW4gPSBpbmZvLT5maXgubGluZV9sZW5ndGggKiBpbmZvLT52YXIueXJlc192aXJ0dWFsOwogCXByX2RlYnVnKCJNQVBfVklERU9fTUVNT1JZOiBzbWVtX2xlbiA9ICVkXG4iLCBpbmZvLT5maXguc21lbV9sZW4pOwogCWluZm8tPnNjcmVlbl9iYXNlID0gZnNsX2RpdV9hbGxvYyhpbmZvLT5maXguc21lbV9sZW4sICZwaHlzKTsKLQlpZiAoaW5mby0+c2NyZWVuX2Jhc2UgPT0gMCkgeworCWlmIChpbmZvLT5zY3JlZW5fYmFzZSA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIGFsbG9jYXRlIGZiIG1lbW9yeVxuIik7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KQEAgLTc4OCw3ICs3ODgsNyBAQAogc3RhdGljIHZvaWQgdW5tYXBfdmlkZW9fbWVtb3J5KHN0cnVjdCBmYl9pbmZvICppbmZvKQogewogCWZzbF9kaXVfZnJlZShpbmZvLT5zY3JlZW5fYmFzZSwgaW5mby0+Zml4LnNtZW1fbGVuKTsKLQlpbmZvLT5zY3JlZW5fYmFzZSA9IDA7CisJaW5mby0+c2NyZWVuX2Jhc2UgPSBOVUxMOwogCWluZm8tPmZpeC5zbWVtX3N0YXJ0ID0gMDsKIAlpbmZvLT5maXguc21lbV9sZW4gPSAwOwogfQpAQCAtMTE1OCw3ICsxMTU4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBpbnN0YWxsX2ZiKHN0cnVjdCBmYl9pbmZvICppbmZvKQorc3RhdGljIGludCBfX2RldmluaXQgaW5zdGFsbF9mYihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlpbnQgcmM7CiAJc3RydWN0IG1mYl9pbmZvICptZmJpID0gaW5mby0+cGFyOwpAQCAtMTIzMyw3ICsxMjMzLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgX19leGl0IHVuaW5zdGFsbF9mYihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKK3N0YXRpYyB2b2lkIHVuaW5zdGFsbF9mYihzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgbWZiX2luZm8gKm1mYmkgPSBpbmZvLT5wYXI7CiAKQEAgLTEyODcsNyArMTI4Nyw3IEBACiAJLyogUmVhZCB0byBjbGVhciB0aGUgc3RhdHVzICovCiAJc3RhdHVzID0gaW5fYmUzMigmaHctPmludF9zdGF0dXMpOwogCi0JcmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBmc2xfZGl1X2lzciwgMCwgImRpdSIsIDApOworCXJldCA9IHJlcXVlc3RfaXJxKGlycSwgZnNsX2RpdV9pc3IsIDAsICJkaXUiLCBOVUxMKTsKIAlpZiAocmV0KQogCQlwcl9pbmZvKCJSZXF1ZXN0IGRpdSBJUlEgZmFpbGVkLlxuIik7CiAJZWxzZSB7CkBAIC0xMzEyLDcgKzEzMTIsNyBAQAogCS8qIERpc2FibGUgYWxsIExDREMgaW50ZXJydXB0ICovCiAJb3V0X2JlMzIoJmh3LT5pbnRfbWFzaywgMHgxZik7CiAKLQlmcmVlX2lycShpcnEsIDApOworCWZyZWVfaXJxKGlycSwgTlVMTCk7CiB9CiAKICNpZmRlZiBDT05GSUdfUE0KQEAgLTEzMjAsNyArMTMyMCw3IEBACiAgKiBQb3dlciBtYW5hZ2VtZW50IGhvb2tzLiBOb3RlIHRoYXQgd2Ugd29uJ3QgYmUgY2FsbGVkIGZyb20gSVJRIGNvbnRleHQsCiAgKiB1bmxpa2UgdGhlIGJsYW5rIGZ1bmN0aW9ucyBhYm92ZSwgc28gd2UgbWF5IHNsZWVwLgogICovCi1zdGF0aWMgaW50IGZzbF9kaXVfc3VzcGVuZChzdHJ1Y3Qgb2ZfZGV2aWNlICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3N0YXRpYyBpbnQgZnNsX2RpdV9zdXNwZW5kKHN0cnVjdCBvZl9kZXZpY2UgKm9mZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCiB7CiAJc3RydWN0IGZzbF9kaXVfZGF0YSAqbWFjaGluZV9kYXRhOwogCkBAIC0xMzMwLDcgKzEzMzAsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGZzbF9kaXVfcmVzdW1lKHN0cnVjdCBvZl9kZXZpY2UgKmRldikKK3N0YXRpYyBpbnQgZnNsX2RpdV9yZXN1bWUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYpCiB7CiAJc3RydWN0IGZzbF9kaXVfZGF0YSAqbWFjaGluZV9kYXRhOwogCkBAIC0xMzUzLDcgKzEzNTMsOCBAQAogCWRtYV9hZGRyX3QgcGFkZHIgPSAwOwogCiAJc3NpemUgPSBzaXplICsgYnl0ZXNfYWxpZ247Ci0JYnVmLT52YWRkciA9IGRtYV9hbGxvY19jb2hlcmVudCgwLCBzc2l6ZSwgJnBhZGRyLCBHRlBfRE1BIHwgX19HRlBfWkVSTyk7CisJYnVmLT52YWRkciA9IGRtYV9hbGxvY19jb2hlcmVudChOVUxMLCBzc2l6ZSwgJnBhZGRyLCBHRlBfRE1BIHwKKwkJCQkJCQkgICAgIF9fR0ZQX1pFUk8pOwogCWlmICghYnVmLT52YWRkcikKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTEzNzEsNyArMTM3Miw3IEBACiAKIHN0YXRpYyB2b2lkIGZyZWVfYnVmKHN0cnVjdCBkaXVfYWRkciAqYnVmLCB1MzIgc2l6ZSwgdTMyIGJ5dGVzX2FsaWduKQogewotCWRtYV9mcmVlX2NvaGVyZW50KDAsIHNpemUgKyBieXRlc19hbGlnbiwKKwlkbWFfZnJlZV9jb2hlcmVudChOVUxMLCBzaXplICsgYnl0ZXNfYWxpZ24sCiAJCQkJYnVmLT52YWRkciwgKGJ1Zi0+cGFkZHIgLSBidWYtPm9mZnNldCkpOwogCXJldHVybjsKIH0KQEAgLTE0MTEsNyArMTQxMiw3IEBACiAJcmV0dXJuIGRpdV9vcHMuc2hvd19tb25pdG9yX3BvcnQobWFjaGluZV9kYXRhLT5tb25pdG9yX3BvcnQsIGJ1Zik7CiB9CiAKLXN0YXRpYyBpbnQgZnNsX2RpdV9wcm9iZShzdHJ1Y3Qgb2ZfZGV2aWNlICpvZmRldiwKK3N0YXRpYyBpbnQgX19kZXZpbml0IGZzbF9kaXVfcHJvYmUoc3RydWN0IG9mX2RldmljZSAqb2ZkZXYsCiAJY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCAqbWF0Y2gpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IG9mZGV2LT5ub2RlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9oZ2FmYi5jIGIvZHJpdmVycy92aWRlby9oZ2FmYi5jCmluZGV4IGZiOWU2NzIuLmMxODg4MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vaGdhZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL2hnYWZiLmMKQEAgLTI3OSw3ICsyNzksNyBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBoZ2FfY2FyZF9kZXRlY3Qodm9pZCkKIHsKLQlpbnQgY291bnQ9MDsKKwlpbnQgY291bnQgPSAwOwogCXZvaWQgX19pb21lbSAqcCwgKnE7CiAJdW5zaWduZWQgc2hvcnQgcF9zYXZlLCBxX3NhdmU7CiAKQEAgLTMwMywyMCArMzAzLDE4IEBACiAJd3JpdGV3KDB4NTVhYSwgcCk7IGlmIChyZWFkdyhwKSA9PSAweDU1YWEpIGNvdW50Kys7CiAJd3JpdGV3KHBfc2F2ZSwgcCk7CiAKLQlpZiAoY291bnQgIT0gMikgewotCQlyZXR1cm4gMDsKLQl9CisJaWYgKGNvdW50ICE9IDIpCisJCWdvdG8gZXJyb3I7CiAKIAkvKiBPaywgdGhlcmUgaXMgZGVmaW5pdGVseSBhIGNhcmQgcmVnaXN0ZXJpbmcgYXQgdGhlIGNvcnJlY3QKIAkgKiBtZW1vcnkgbG9jYXRpb24sIHNvIG5vdyB3ZSBkbyBhbiBJL08gcG9ydCB0ZXN0LgogCSAqLwogCQotCWlmICghdGVzdF9oZ2FfYigweDY2LCAweDBmKSkgewkgICAgLyogY3Vyc29yIGxvdyByZWdpc3RlciAqLwotCQlyZXR1cm4gMDsKLQl9Ci0JaWYgKCF0ZXN0X2hnYV9iKDB4OTksIDB4MGYpKSB7ICAgICAvKiBjdXJzb3IgbG93IHJlZ2lzdGVyICovCi0JCXJldHVybiAwOwotCX0KKwlpZiAoIXRlc3RfaGdhX2IoMHg2NiwgMHgwZikpCSAgICAvKiBjdXJzb3IgbG93IHJlZ2lzdGVyICovCisJCWdvdG8gZXJyb3I7CisKKwlpZiAoIXRlc3RfaGdhX2IoMHg5OSwgMHgwZikpICAgICAvKiBjdXJzb3IgbG93IHJlZ2lzdGVyICovCisJCWdvdG8gZXJyb3I7CiAKIAkvKiBTZWUgaWYgdGhlIGNhcmQgaXMgYSBIZXJjdWxlcywgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUgdnN5bmMKIAkgKiBiaXQgb2YgdGhlIHN0YXR1cyByZWdpc3RlciBpcyBjaGFuZ2luZy4gIFRoaXMgdGVzdCBsYXN0cyBmb3IKQEAgLTMzMSw3ICszMjksNyBAQAogCX0KIAogCWlmIChwX3NhdmUgPT0gcV9zYXZlKSAKLQkJcmV0dXJuIDA7CisJCWdvdG8gZXJyb3I7CiAKIAlzd2l0Y2ggKGluYl9wKEhHQV9TVEFUVVNfUE9SVCkgJiAweDcwKSB7CiAJCWNhc2UgMHgxMDoKQEAgLTM0OCw2ICszNDYsMTIgQEAKIAkJCWJyZWFrOwogCX0KIAlyZXR1cm4gMTsKK2Vycm9yOgorCWlmIChyZWxlYXNlX2lvX3BvcnRzKQorCQlyZWxlYXNlX3JlZ2lvbigweDNiMCwgMTIpOworCWlmIChyZWxlYXNlX2lvX3BvcnQpCisJCXJlbGVhc2VfcmVnaW9uKDB4M2JmLCAxKTsKKwlyZXR1cm4gMDsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2xlby5jIGIvZHJpdmVycy92aWRlby9sZW8uYwppbmRleCA4YmM0NmU5Li4xM2ZlYTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2xlby5jCisrKyBiL2RyaXZlcnMvdmlkZW8vbGVvLmMKQEAgLTE3LDggKzE3LDggQEAKICNpbmNsdWRlIDxsaW51eC9mYi5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KIAotI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9mYmlvLmg+CiAKICNpbmNsdWRlICJzYnVzbGliLmgiCkBAIC0zMyw3ICszMyw2IEBACiAKIHN0YXRpYyBpbnQgbGVvX21tYXAoc3RydWN0IGZiX2luZm8gKiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICopOwogc3RhdGljIGludCBsZW9faW9jdGwoc3RydWN0IGZiX2luZm8gKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBsb25nKTsKLXN0YXRpYyBpbnQgbGVvX3Bhbl9kaXNwbGF5KHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqLCBzdHJ1Y3QgZmJfaW5mbyAqKTsKIAogLyoKICAqICBGcmFtZSBidWZmZXIgb3BlcmF0aW9ucwpAQCAtNDMsNyArNDIsNiBAQAogCS5vd25lcgkJCT0gVEhJU19NT0RVTEUsCiAJLmZiX3NldGNvbHJlZwkJPSBsZW9fc2V0Y29scmVnLAogCS5mYl9ibGFuawkJPSBsZW9fYmxhbmssCi0JLmZiX3Bhbl9kaXNwbGF5CQk9IGxlb19wYW5fZGlzcGxheSwKIAkuZmJfZmlsbHJlY3QJCT0gY2ZiX2ZpbGxyZWN0LAogCS5mYl9jb3B5YXJlYQkJPSBjZmJfY29weWFyZWEsCiAJLmZiX2ltYWdlYmxpdAkJPSBjZmJfaW1hZ2VibGl0LApAQCAtNzgsNyArNzYsNyBAQAogI2RlZmluZSBMRU9fQ1VSX1RZUEVfQ01BUAkweDAwMDAwMDUwCiAKIHN0cnVjdCBsZW9fY3Vyc29yIHsKLQl1OAkJeHh4MFsxNl07CisJdTgJeHh4MFsxNl07CiAJdTMyCWN1cl90eXBlOwogCXUzMgljdXJfbWlzYzsKIAl1MzIJY3VyX2N1cnN4eTsKQEAgLTEwNSw3ICsxMDMsNyBAQAogCiBzdHJ1Y3QgbGVvX2xjX3NzMF9rcm4gewogCXUzMiAJbWlzYzsKLQl1OAkJeHh4MFsweDgwMC00XTsKKwl1OAl4eHgwWzB4ODAwLTRdOwogCXUzMglyZXY7CiB9OwogCkBAIC0xMTYsNyArMTE0LDcgQEAKIAl1MzIJZm9udHQ7CiAJdTMyCWV4dGVudDsKIAl1MzIJc3JjOwotCXUzMgkJZHN0OworCXUzMglkc3Q7CiAJdTMyCWNvcHk7CiAJdTMyCWZpbGw7CiB9OwpAQCAtMTI5LDggKzEyNyw4IEBACiAJdTgJdW5rbm93bjsKIH07CiAKLXN0cnVjdCBsZW9fbGQgewotCXU4CQl4eHgwWzB4ZTAwXTsKK3N0cnVjdCBsZW9fbGRfc3MwIHsKKwl1OAl4eHgwWzB4ZTAwXTsKIAl1MzIJY3NyOwogCXUzMgl3aWQ7CiAJdTMyCXdtYXNrOwpAQCAtMTQ0LDEzICsxNDIsMTMgQEAKIAl1MzIJc3JjOwkJLyogQ29weS9TY3JvbGwgKFNTMCBvbmx5KSAqLwogCXUzMglkc3Q7CQkvKiBDb3B5L1Njcm9sbC9GaWxsIChTUzAgb25seSkgKi8KIAl1MzIJZXh0ZW50OwkJLyogQ29weS9TY3JvbGwvRmlsbCBzaXplIChTUzAgb25seSkgKi8KLQl1MzIJCXh4eDFbM107CisJdTMyCXh4eDFbM107CiAJdTMyCXNldHNlbTsJCS8qIFNTMSBvbmx5ICovCiAJdTMyCWNscnNlbTsJCS8qIFNTMSBvbmx5ICovCiAJdTMyCWNscnBpY2s7CS8qIFNTMSBvbmx5ICovCiAJdTMyCWNscmRhdDsJCS8qIFNTMSBvbmx5ICovCiAJdTMyCWFscGhhOwkJLyogU1MxIG9ubHkgKi8KLQl1OAkJeHh4MlsweDJjXTsKKwl1OAl4eHgyWzB4MmNdOwogCXUzMgl3aW5iZzsKIAl1MzIJcGxhbmVtYXNrOwogCXUzMglyb3A7CkBAIC0xOTksMTEgKzE5NywxMiBAQAogc3RhdGljIHZvaWQgbGVvX3dhaXQoc3RydWN0IGxlb19seF9rcm4gX19pb21lbSAqbHhfa3JuKQogewogCWludCBpOwotCQorCiAJZm9yIChpID0gMDsKLQkgICAgIChzYnVzX3JlYWRsKCZseF9rcm4tPmtybl9jc3IpICYgTEVPX0tSTl9DU1JfUFJPR1JFU1MpICYmIGkgPCAzMDAwMDA7CisJICAgICAoc2J1c19yZWFkbCgmbHhfa3JuLT5rcm5fY3NyKSAmIExFT19LUk5fQ1NSX1BST0dSRVNTKSAmJgorCSAgICAgaSA8IDMwMDAwMDsKIAkgICAgIGkrKykKLQkJdWRlbGF5ICgxKTsgLyogQnVzeSB3YWl0IGF0IG1vc3QgMC4zIHNlYyAqLworCQl1ZGVsYXkoMSk7IC8qIEJ1c3kgd2FpdCBhdCBtb3N0IDAuMyBzZWMgKi8KIAlyZXR1cm47CiB9CiAKQEAgLTIyMSw3ICsyMjAsNyBAQAogCQkJIHVuc2lnbmVkIHRyYW5zcCwgc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IGxlb19wYXIgKnBhciA9IChzdHJ1Y3QgbGVvX3BhciAqKSBpbmZvLT5wYXI7Ci0gICAgICAgIHN0cnVjdCBsZW9fbHhfa3JuIF9faW9tZW0gKmx4X2tybiA9IHBhci0+bHhfa3JuOworCXN0cnVjdCBsZW9fbHhfa3JuIF9faW9tZW0gKmx4X2tybiA9IHBhci0+bHhfa3JuOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTMyIHZhbDsKIAlpbnQgaTsKQEAgLTQwOCw3ICs0MDcsNyBAQAogCWxlb193YWl0KGx4X2tybik7CiAKIAlmb3IgKGkgPSAwLCB3aSA9IHdsLT53bF9saXN0OyBpIDwgd2wtPndsX2NvdW50OyBpKyssIHdpKyspIHsKLQkJc3dpdGNoKHdpLT53aV90eXBlKSB7CisJCXN3aXRjaCAod2ktPndpX3R5cGUpIHsKIAkJY2FzZSBGQl9XSURfREJMXzg6CiAJCQlqID0gKHdpLT53aV9pbmRleCAmIDB4ZikgKyAweDQwOwogCQkJYnJlYWs7CkBAIC00NTMsMTMgKzQ1MiwxMiBAQAogCXdpLndpX2luZGV4ID0gMTsKIAl3aS53aV92YWx1ZXMgWzBdID0gMHgzMDsKIAlsZW9fd2lkX3B1dChpbmZvLCAmd2wpOwotCiB9CiAKIHN0YXRpYyB2b2lkIGxlb19zd2l0Y2hfZnJvbV9ncmFwaChzdHJ1Y3QgZmJfaW5mbyAqaW5mbykKIHsKIAlzdHJ1Y3QgbGVvX3BhciAqcGFyID0gKHN0cnVjdCBsZW9fcGFyICopIGluZm8tPnBhcjsKLQlzdHJ1Y3QgbGVvX2xkIF9faW9tZW0gKnNzID0gKHN0cnVjdCBsZW9fbGQgX19pb21lbSAqKSBwYXItPmxkX3NzMDsKKwlzdHJ1Y3QgbGVvX2xkX3NzMCBfX2lvbWVtICpzcyA9IHBhci0+bGRfc3MwOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdTMyIHZhbDsKIApAQCAtNDg1LDIxICs0ODMsMTUgQEAKIAkJdmFsID0gc2J1c19yZWFkbCgmcGFyLT5sY19zczBfdXNyLT5jc3IpOwogCX0gd2hpbGUgKHZhbCAmIDB4MjAwMDAwMDApOwogCisJLyogc2V0dXAgc2NyZWVuIGJ1ZmZlciBmb3IgY2ZiXyogZnVuY3Rpb25zICovCisJc2J1c193cml0ZWwoMSwgJnNzLT53aWQpOworCXNidXNfd3JpdGVsKDB4MDBmZmZmZmYsICZzcy0+cGxhbmVtYXNrKTsKKwlzYnVzX3dyaXRlbCgweDMxMGI5MCwgJnNzLT5yb3ApOworCXNidXNfd3JpdGVsKDAsICZwYXItPmxjX3NzMF91c3ItPmFkZHJzcGFjZSk7CisKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwYXItPmxvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBsZW9fcGFuX2Rpc3BsYXkoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvKQotewotCS8qIFdlIGp1c3QgdXNlIHRoaXMgdG8gY2F0Y2ggc3dpdGNoZXMgb3V0IG9mCi0JICogZ3JhcGhpY3MgbW9kZS4KLQkgKi8KLQlsZW9fc3dpdGNoX2Zyb21fZ3JhcGgoaW5mbyk7Ci0KLQlpZiAodmFyLT54b2Zmc2V0IHx8IHZhci0+eW9mZnNldCB8fCB2YXItPnZtb2RlKQotCQlyZXR1cm4gLUVJTlZBTDsKLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgbGVvX2luaXRfaHcoc3RydWN0IGZiX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IGxlb19wYXIgKnBhciA9IChzdHJ1Y3QgbGVvX3BhciAqKSBpbmZvLT5wYXI7CkBAIC01NDIsNyArNTM0LDggQEAKIAkJb2ZfaW91bm1hcCgmb3AtPnJlc291cmNlWzBdLCBpbmZvLT5zY3JlZW5fYmFzZSwgMHg4MDAwMDApOwogfQogCi1zdGF0aWMgaW50IF9fZGV2aW5pdCBsZW9fcHJvYmUoc3RydWN0IG9mX2RldmljZSAqb3AsIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoKQorc3RhdGljIGludCBfX2RldmluaXQgbGVvX3Byb2JlKHN0cnVjdCBvZl9kZXZpY2UgKm9wLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgKm1hdGNoKQogewogCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZHAgPSBvcC0+bm9kZTsKIAlzdHJ1Y3QgZmJfaW5mbyAqaW5mbzsKQEAgLTU5NCw4ICs1ODcsOSBAQAogCSAgICAhaW5mby0+c2NyZWVuX2Jhc2UpCiAJCWdvdG8gb3V0X3VubWFwX3JlZ3M7CiAKLQlpbmZvLT5mbGFncyA9IEZCSU5GT19ERUZBVUxUIHwgRkJJTkZPX0hXQUNDRUxfWVBBTjsKKwlpbmZvLT5mbGFncyA9IEZCSU5GT19ERUZBVUxUOwogCWluZm8tPmZib3BzID0gJmxlb19vcHM7CisJaW5mby0+cHNldWRvX3BhbGV0dGUgPSBwYXItPmNsdXRfZGF0YTsKIAogCWxlb19pbml0X3dpZHMoaW5mbyk7CiAJbGVvX2luaXRfaHcoaW5mbyk7CkBAIC02NDksNyArNjQzLDcgQEAKIAogc3RhdGljIHN0cnVjdCBvZl9kZXZpY2VfaWQgbGVvX21hdGNoW10gPSB7CiAJewotCQkubmFtZSA9ICJsZW8iLAorCQkubmFtZSA9ICJTVU5XLGxlbyIsCiAJfSwKIAl7fSwKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL21hdHJveC9tYXRyb3hmYl9iYXNlLmggYi9kcml2ZXJzL3ZpZGVvL21hdHJveC9tYXRyb3hmYl9iYXNlLmgKaW5kZXggZjMxMDdhZC4uOTU4ODMyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9tYXRyb3gvbWF0cm94ZmJfYmFzZS5oCisrKyBiL2RyaXZlcnMvdmlkZW8vbWF0cm94L21hdHJveGZiX2Jhc2UuaApAQCAtMjAwLDcgKzIwMCw3IEBACiAJCXZpcnQtPnZhZGRyID0gaW9yZW1hcF9ub2NhY2hlKHBoeXMsIHNpemUpOwogCWVsc2UKIAkJdmlydC0+dmFkZHIgPSBpb3JlbWFwKHBoeXMsIHNpemUpOwotCXJldHVybiAodmlydC0+dmFkZHIgPT0gMCk7IC8qIDAsICEwLi4uIDAsIGVycm9yX2NvZGUgaW4gZnV0dXJlICovCisJcmV0dXJuICh2aXJ0LT52YWRkciA9PSBOVUxMKTsgLyogMCwgITAuLi4gMCwgZXJyb3JfY29kZSBpbiBmdXR1cmUgKi8KIH0KIAogc3RhdGljIGlubGluZSB2b2lkIG1nYV9pb3VubWFwKHZhZGRyX3QgdmEpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vbW9kZWRiLmMgYi9kcml2ZXJzL3ZpZGVvL21vZGVkYi5jCmluZGV4IDQ3MzU2MjEuLmQzYzNhZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8vbW9kZWRiLmMKKysrIGIvZHJpdmVycy92aWRlby9tb2RlZGIuYwpAQCAtMjgsNiArMjgsNyBAQAogI2VuZGlmCiAKIGNvbnN0IGNoYXIgKmZiX21vZGVfb3B0aW9uOworRVhQT1JUX1NZTUJPTF9HUEwoZmJfbW9kZV9vcHRpb24pOwogCiAgICAgLyoKICAgICAgKiAgU3RhbmRhcmQgdmlkZW8gbW9kZSBkZWZpbml0aW9ucyAodGFrZW4gZnJvbSBYRnJlZTg2KQpAQCAtNTkwLDYgKzU5MSw3IEBACiAJCSAgICAiIiwgKG1hcmdpbnMpID8gIiB3aXRoIG1hcmdpbnMiIDogIiIsIChpbnRlcmxhY2UpID8KIAkJICAgICIgaW50ZXJsYWNlZCIgOiAiIik7CiAKKwkgICAgbWVtc2V0KCZjdnRfbW9kZSwgMCwgc2l6ZW9mKGN2dF9tb2RlKSk7CiAJICAgIGN2dF9tb2RlLnhyZXMgPSB4cmVzOwogCSAgICBjdnRfbW9kZS55cmVzID0geXJlczsKIAkgICAgY3Z0X21vZGUucmVmcmVzaCA9IChyZWZyZXNoKSA/IHJlZnJlc2ggOiA2MDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vcHhhZmIuYyBiL2RyaXZlcnMvdmlkZW8vcHhhZmIuYwppbmRleCAzZWUzMTRiLi5kMDc0NjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3B4YWZiLmMKKysrIGIvZHJpdmVycy92aWRlby9weGFmYi5jCkBAIC01NzMsOCArNTczLDggQEAKIAkJZG1hX2Rlc2MtPmZkYWRyID0gZmJpLT5kbWFfYnVmZl9waHlzICsgZG1hX2Rlc2Nfb2ZmOwogCQlmYmktPmZkYWRyW2RtYV0gPSBmYmktPmRtYV9idWZmX3BoeXMgKyBkbWFfZGVzY19vZmY7CiAJfSBlbHNlIHsKLQkJcGFsX2Rlc2MgPSAmZmJpLT5kbWFfYnVmZi0+cGFsX2Rlc2NbZG1hXTsKLQkJcGFsX2Rlc2Nfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IHB4YWZiX2RtYV9idWZmLCBkbWFfZGVzY1twYWxdKTsKKwkJcGFsX2Rlc2MgPSAmZmJpLT5kbWFfYnVmZi0+cGFsX2Rlc2NbcGFsXTsKKwkJcGFsX2Rlc2Nfb2ZmID0gb2Zmc2V0b2Yoc3RydWN0IHB4YWZiX2RtYV9idWZmLCBwYWxfZGVzY1twYWxdKTsKIAogCQlwYWxfZGVzYy0+ZnNhZHIgPSBmYmktPmRtYV9idWZmX3BoeXMgKyBwYWwgKiBQQUxFVFRFX1NJWkU7CiAJCXBhbF9kZXNjLT5maWRyICA9IDA7CkBAIC0xMjQ2LDcgKzEyNDYsNyBAQAogICogICAgICBjYWNoZS4gIE9uY2UgdGhpcyBhcmVhIGlzIHJlbWFwcGVkLCBhbGwgdmlydHVhbCBtZW1vcnkKICAqICAgICAgYWNjZXNzIHRvIHRoZSB2aWRlbyBtZW1vcnkgc2hvdWxkIG9jY3VyIGF0IHRoZSBuZXcgcmVnaW9uLgogICovCi1zdGF0aWMgaW50IF9faW5pdCBweGFmYl9tYXBfdmlkZW9fbWVtb3J5KHN0cnVjdCBweGFmYl9pbmZvICpmYmkpCitzdGF0aWMgaW50IF9fZGV2aW5pdCBweGFmYl9tYXBfdmlkZW9fbWVtb3J5KHN0cnVjdCBweGFmYl9pbmZvICpmYmkpCiB7CiAJLyoKIAkgKiBXZSByZXNlcnZlIG9uZSBwYWdlIGZvciB0aGUgcGFsZXR0ZSwgcGx1cyB0aGUgc2l6ZQpAQCAtMTI3Niw2ICsxMjc2LDggQEAKIAkJZmJpLT5kbWFfYnVmZl9waHlzID0gZmJpLT5tYXBfZG1hOwogCQlmYmktPnBhbGV0dGVfY3B1ID0gKHUxNiAqKSBmYmktPmRtYV9idWZmLT5wYWxldHRlOwogCisJICAgICAgICBwcl9kZWJ1ZygicHhhZmI6IHBhbGV0dGVfbWVtX3NpemUgPSAweCUwOGx4XG4iLCBmYmktPnBhbGV0dGVfc2l6ZSpzaXplb2YodTE2KSk7CisKICNpZmRlZiBDT05GSUdfRkJfUFhBX1NNQVJUUEFORUwKIAkJZmJpLT5zbWFydF9jbWRzID0gKHVpbnQxNl90ICopIGZiaS0+ZG1hX2J1ZmYtPmNtZF9idWZmOwogCQlmYmktPm5fc21hcnRfY21kcyA9IDA7CkBAIC0xMzQ2LDEyICsxMzQ4LDExIEBACiAJcHhhZmJfZGVjb2RlX21vZGVfaW5mbyhmYmksIGluZi0+bW9kZXMsIGluZi0+bnVtX21vZGVzKTsKIH0KIAotc3RhdGljIHN0cnVjdCBweGFmYl9pbmZvICogX19pbml0IHB4YWZiX2luaXRfZmJpbmZvKHN0cnVjdCBkZXZpY2UgKmRldikKK3N0YXRpYyBzdHJ1Y3QgcHhhZmJfaW5mbyAqIF9fZGV2aW5pdCBweGFmYl9pbml0X2ZiaW5mbyhzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IHB4YWZiX2luZm8gKmZiaTsKIAl2b2lkICphZGRyOwogCXN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmluZiA9IGRldi0+cGxhdGZvcm1fZGF0YTsKLQlzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvICptb2RlID0gaW5mLT5tb2RlczsKIAogCS8qIEFsbG9jIHRoZSBweGFmYl9pbmZvIGFuZCBwc2V1ZG9fcGFsZXR0ZSBpbiBvbmUgc3RlcCAqLwogCWZiaSA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBweGFmYl9pbmZvKSArIHNpemVvZih1MzIpICogMTYsIEdGUF9LRVJORUwpOwpAQCAtMTQwOSw3ICsxNDEwLDcgQEAKIH0KIAogI2lmZGVmIENPTkZJR19GQl9QWEFfUEFSQU1FVEVSUwotc3RhdGljIGludCBfX2luaXQgcGFyc2Vfb3B0X21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICp0aGlzX29wdCkKK3N0YXRpYyBpbnQgX19kZXZpbml0IHBhcnNlX29wdF9tb2RlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqdGhpc19vcHQpCiB7CiAJc3RydWN0IHB4YWZiX21hY2hfaW5mbyAqaW5mID0gZGV2LT5wbGF0Zm9ybV9kYXRhOwogCkBAIC0xNDY4LDcgKzE0NjksNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBwYXJzZV9vcHQoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICp0aGlzX29wdCkKK3N0YXRpYyBpbnQgX19kZXZpbml0IHBhcnNlX29wdChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKnRoaXNfb3B0KQogewogCXN0cnVjdCBweGFmYl9tYWNoX2luZm8gKmluZiA9IGRldi0+cGxhdGZvcm1fZGF0YTsKIAlzdHJ1Y3QgcHhhZmJfbW9kZV9pbmZvICptb2RlID0gJmluZi0+bW9kZXNbMF07CkBAIC0xNTY2LDcgKzE1NjcsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBweGFmYl9wYXJzZV9vcHRpb25zKHN0cnVjdCBkZXZpY2UgKmRldiwgY2hhciAqb3B0aW9ucykKK3N0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX3BhcnNlX29wdGlvbnMoc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpvcHRpb25zKQogewogCWNoYXIgKnRoaXNfb3B0OwogCWludCByZXQ7CkBAIC0xNTg3LDggKzE1ODgsOCBAQAogCiBzdGF0aWMgY2hhciBnX29wdGlvbnNbMjU2XSBfX2RldmluaXRkYXRhID0gIiI7CiAKLSNpZm5kZWYgQ09ORklHX01PRFVMRVMKLXN0YXRpYyBpbnQgX19kZXZpbml0IHB4YWZiX3NldHVwX29wdGlvbnModm9pZCkKKyNpZm5kZWYgTU9EVUxFCitzdGF0aWMgaW50IF9faW5pdCBweGFmYl9zZXR1cF9vcHRpb25zKHZvaWQpCiB7CiAJY2hhciAqb3B0aW9ucyA9IE5VTEw7CiAKQEAgLTE2MTIsNyArMTYxMyw3IEBACiAjZGVmaW5lIHB4YWZiX3NldHVwX29wdGlvbnMoKQkJKDApCiAjZW5kaWYKIAotc3RhdGljIGludCBfX2luaXQgcHhhZmJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQorc3RhdGljIGludCBfX2RldmluaXQgcHhhZmJfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBweGFmYl9pbmZvICpmYmk7CiAJc3RydWN0IHB4YWZiX21hY2hfaW5mbyAqaW5mOwpAQCAtMTY4NCwxNCArMTY4NSwxNCBAQAogCWlmIChyID09IE5VTEwpIHsKIAkJZGV2X2VycigmZGV2LT5kZXYsICJubyBJL08gbWVtb3J5IHJlc291cmNlIGRlZmluZWRcbiIpOwogCQlyZXQgPSAtRU5PREVWOwotCQlnb3RvIGZhaWxlZDsKKwkJZ290byBmYWlsZWRfZmJpOwogCX0KIAogCXIgPSByZXF1ZXN0X21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSwgZGV2LT5uYW1lKTsKIAlpZiAociA9PSBOVUxMKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LCAiZmFpbGVkIHRvIHJlcXVlc3QgSS9PIG1lbW9yeVxuIik7CiAJCXJldCA9IC1FQlVTWTsKLQkJZ290byBmYWlsZWQ7CisJCWdvdG8gZmFpbGVkX2ZiaTsKIAl9CiAKIAlmYmktPm1taW9fYmFzZSA9IGlvcmVtYXAoci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CkBAIC0xNzM0LDggKzE3MzUsMTcgQEAKIAkgKiBUaGlzIG1ha2VzIHN1cmUgdGhhdCBvdXIgY29sb3VyIGJpdGZpZWxkCiAJICogZGVzY3JpcHRvcnMgYXJlIGNvcnJlY3RseSBpbml0aWFsaXNlZC4KIAkgKi8KLQlweGFmYl9jaGVja192YXIoJmZiaS0+ZmIudmFyLCAmZmJpLT5mYik7Ci0JcHhhZmJfc2V0X3BhcigmZmJpLT5mYik7CisJcmV0ID0gcHhhZmJfY2hlY2tfdmFyKCZmYmktPmZiLnZhciwgJmZiaS0+ZmIpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IHN1aXRhYmxlIG1vZGVcbiIpOworCQlnb3RvIGZhaWxlZF9mcmVlX2lycTsKKwl9CisKKwlyZXQgPSBweGFmYl9zZXRfcGFyKCZmYmktPmZiKTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoJmRldi0+ZGV2LCAiRmFpbGVkIHRvIHNldCBwYXJhbWV0ZXJzXG4iKTsKKwkJZ290byBmYWlsZWRfZnJlZV9pcnE7CisJfQogCiAJcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCBmYmkpOwogCkBAIC0xNzQzLDcgKzE3NTMsNyBAQAogCWlmIChyZXQgPCAwKSB7CiAJCWRldl9lcnIoJmRldi0+ZGV2LAogCQkJIkZhaWxlZCB0byByZWdpc3RlciBmcmFtZWJ1ZmZlciBkZXZpY2U6ICVkXG4iLCByZXQpOwotCQlnb3RvIGZhaWxlZF9mcmVlX2lycTsKKwkJZ290byBmYWlsZWRfZnJlZV9jbWFwOwogCX0KIAogI2lmZGVmIENPTkZJR19DUFVfRlJFUQpAQCAtMTc2MiwzMSArMTc3Miw3NCBAQAogCiAJcmV0dXJuIDA7CiAKK2ZhaWxlZF9mcmVlX2NtYXA6CisJaWYgKGZiaS0+ZmIuY21hcC5sZW4pCisJCWZiX2RlYWxsb2NfY21hcCgmZmJpLT5mYi5jbWFwKTsKIGZhaWxlZF9mcmVlX2lycToKIAlmcmVlX2lycShpcnEsIGZiaSk7Ci1mYWlsZWRfZnJlZV9yZXM6Ci0JcmVsZWFzZV9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEpOwotZmFpbGVkX2ZyZWVfaW86Ci0JaW91bm1hcChmYmktPm1taW9fYmFzZSk7CiBmYWlsZWRfZnJlZV9tZW06CiAJZG1hX2ZyZWVfd3JpdGVjb21iaW5lKCZkZXYtPmRldiwgZmJpLT5tYXBfc2l6ZSwKIAkJCWZiaS0+bWFwX2NwdSwgZmJpLT5tYXBfZG1hKTsKLWZhaWxlZDoKK2ZhaWxlZF9mcmVlX2lvOgorCWlvdW5tYXAoZmJpLT5tbWlvX2Jhc2UpOworZmFpbGVkX2ZyZWVfcmVzOgorCXJlbGVhc2VfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxKTsKK2ZhaWxlZF9mYmk6CisJY2xrX3B1dChmYmktPmNsayk7CiAJcGxhdGZvcm1fc2V0X2RydmRhdGEoZGV2LCBOVUxMKTsKIAlrZnJlZShmYmkpOworZmFpbGVkOgogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBpbnQgX19kZXZleGl0IHB4YWZiX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHB4YWZiX2luZm8gKmZiaSA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCBpcnE7CisJc3RydWN0IGZiX2luZm8gKmluZm87CisKKwlpZiAoIWZiaSkKKwkJcmV0dXJuIDA7CisKKwlpbmZvID0gJmZiaS0+ZmI7CisKKwl1bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyKGluZm8pOworCisJcHhhZmJfZGlzYWJsZV9jb250cm9sbGVyKGZiaSk7CisKKwlpZiAoZmJpLT5mYi5jbWFwLmxlbikKKwkJZmJfZGVhbGxvY19jbWFwKCZmYmktPmZiLmNtYXApOworCisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShkZXYsIDApOworCWZyZWVfaXJxKGlycSwgZmJpKTsKKworCWRtYV9mcmVlX3dyaXRlY29tYmluZSgmZGV2LT5kZXYsIGZiaS0+bWFwX3NpemUsCisJCQkJCWZiaS0+bWFwX2NwdSwgZmJpLT5tYXBfZG1hKTsKKworCWlvdW5tYXAoZmJpLT5tbWlvX2Jhc2UpOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKKwlyZWxlYXNlX21lbV9yZWdpb24oci0+c3RhcnQsIHItPmVuZCAtIHItPnN0YXJ0ICsgMSk7CisKKwljbGtfcHV0KGZiaS0+Y2xrKTsKKwlrZnJlZShmYmkpOworCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHB4YWZiX2RyaXZlciA9IHsKIAkucHJvYmUJCT0gcHhhZmJfcHJvYmUsCisJLnJlbW92ZSAJPSBweGFmYl9yZW1vdmUsCiAJLnN1c3BlbmQJPSBweGFmYl9zdXNwZW5kLAogCS5yZXN1bWUJCT0gcHhhZmJfcmVzdW1lLAogCS5kcml2ZXIJCT0geworCQkub3duZXIJPSBUSElTX01PRFVMRSwKIAkJLm5hbWUJPSAicHhhMnh4LWZiIiwKIAl9LAogfTsKIAotc3RhdGljIGludCBfX2RldmluaXQgcHhhZmJfaW5pdCh2b2lkKQorc3RhdGljIGludCBfX2luaXQgcHhhZmJfaW5pdCh2b2lkKQogewogCWlmIChweGFmYl9zZXR1cF9vcHRpb25zKCkpCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTc5NCw3ICsxODQ3LDEzIEBACiAJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmcHhhZmJfZHJpdmVyKTsKIH0KIAorc3RhdGljIHZvaWQgX19leGl0IHB4YWZiX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmcHhhZmJfZHJpdmVyKTsKK30KKwogbW9kdWxlX2luaXQocHhhZmJfaW5pdCk7Cittb2R1bGVfZXhpdChweGFmYl9leGl0KTsKIAogTU9EVUxFX0RFU0NSSVBUSU9OKCJsb2FkYWJsZSBmcmFtZWJ1ZmZlciBkcml2ZXIgZm9yIFBYQSIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9zM2MyNDEwZmIuYyBiL2RyaXZlcnMvdmlkZW8vczNjMjQxMGZiLmMKaW5kZXggMTNiMzhjYi4uZjA1OTg5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9zM2MyNDEwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL3MzYzI0MTBmYi5jCkBAIC0xLDc1ICsxLDE1IEBACi0vKgotICogbGludXgvZHJpdmVycy92aWRlby9zM2MyNDEwZmIuYwotICoJQ29weXJpZ2h0IChjKSBBcm5hdWQgUGF0YXJkLCBCZW4gRG9va3MKKy8qIGxpbnV4L2RyaXZlcnMvdmlkZW8vczNjMjQxMGZiLmMKKyAqCUNvcHlyaWdodCAoYykgMjAwNCwyMDA1IEFybmF1ZCBQYXRhcmQKKyAqCUNvcHlyaWdodCAoYykgMjAwNC0yMDA4IEJlbiBEb29rcworICoKKyAqIFMzQzI0MTAgTENEIEZyYW1lYnVmZmVyIERyaXZlcgogICoKICAqIFRoaXMgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgYXJjaGl2ZSBmb3IKICAqIG1vcmUgZGV0YWlscy4KICAqCi0gKgkgICAgUzNDMjQxMCBMQ0QgQ29udHJvbGxlciBGcmFtZSBCdWZmZXIgRHJpdmVyCi0gKgkgICAgYmFzZWQgb24gc2tlbGV0b25mYi5jLCBzYTExMDBmYi5jIGFuZCBvdGhlcnMKLSAqCi0gKiBDaGFuZ2VMb2cKLSAqIDIwMDUtMDQtMDc6IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+Ci0gKiAgICAgIC0gdTMyIHN0YXRlIC0+IHBtX21lc3NhZ2VfdCBzdGF0ZQotICogICAgICAtIFMzQzI0MTBfe1ZBLFNafV9MQ0QgLT4gUzNDMjRYWAotICoKLSAqIDIwMDUtMDMtMTU6IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+Ci0gKiAgICAgIC0gUmVtb3ZlZCB0aGUgaW9jdGwKLSAqICAgICAgLSB1c2UgcmVhZGwvd3JpdGVsIGluc3RlYWQgb2YgX19yYXdfd3JpdGVsL19fcmF3X3JlYWRsCi0gKgotICogMjAwNC0xMi0wNDogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqICAgICAgLSBBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gc2V0IG9uIG9yIG9mZiB0aGUKLSAqICAgICAgZGVidWdnaW5nIG1lc3NhZ2VzCi0gKiAgICAgIC0gUmVwbGFjZWQgMCBhbmQgMSBieSBvbiBvciBvZmYgd2hlbiByZWFkaW5nIHRoZQotICogICAgICAvc3lzIGZpbGVzCi0gKgotICogMjAwNS0wMy0yMzogQmVuIERvb2tzIDxiZW4tbGludXhAZmx1ZmYub3JnPgotICoJLSBhZGRlZCBub24gMTZicHAgbW9kZXMKLSAqCS0gdXBkYXRlZCBwbGF0Zm9ybSBpbmZvcm1hdGlvbiBmb3IgcmFuZ2Ugb2YgeC95L2JwcAotICoJLSBhZGQgY29kZSB0byBlbnN1cmUgcGFsZXR0ZSBpcyB3cml0dGVuIGNvcnJlY3RseQotICoJLSBhZGQgcGl4ZWwgY2xvY2sgZGl2aXNvciBjb250cm9sCi0gKgotICogMjAwNC0xMS0xMTogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqCS0gUmVtb3ZlZCB0aGUgdXNlIG9mIGN1cnJjb24gYXMgaXQgbm8gbW9yZSBleGlzdHMKLSAqCS0gQWRkZWQgTENEIHBvd2VyIHN5c2ZzIGludGVyZmFjZQotICoKLSAqIDIwMDQtMTEtMDM6IEJlbiBEb29rcyA8YmVuLWxpbnV4QGZsdWZmLm9yZz4KLSAqCS0gbWlub3IgY2xlYW51cHMKLSAqCS0gYWRkIHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQKLSAqCS0gczNjMjQxMGZiX3NldGNvbHJlZygpIG5vdCB2YWxpZCBpbiA+OGJwcCBtb2RlcwotICoJLSByZW1vdmVkIGxhc3QgQ09ORklHX0ZCX1MzQzI0MTBfRklYRUQKLSAqCS0gZW5zdXJlIGxjZCBjb250cm9sbGVyIHN0b3BwZWQgYmVmb3JlIGNsZWFudXAKLSAqCS0gYWRkZWQgc3lzZnMgaW50ZXJmYWNlIGZvciBiYWNrbGlnaHQgcG93ZXIKLSAqCS0gYWRkZWQgbWFzayBmb3IgZ3BpbyBjb25maWd1cmF0aW9uCi0gKgktIGVuc3VyZWQgSVJRcyBkaXNhYmxlZCBkdXJpbmcgR1BJTyBjb25maWd1cmF0aW9uCi0gKgktIGRpc2FibGUgVFBBTCBiZWZvcmUgZW5hYmxpbmcgdmlkZW8KLSAqCi0gKiAyMDA0LTA5LTIwOiBBcm5hdWQgUGF0YXJkIDxhcm5hdWQucGF0YXJkQHJ0cC1uZXQub3JnPgotICogICAgICAtIFN1cHByZXNzIGNvbW1hbmQgbGluZSBvcHRpb25zCi0gKgotICogMjAwNC0wOS0xNTogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqCS0gY29kZSBjbGVhbnVwCi0gKgotICogMjAwNC0wOS0wNzogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqCS0gUmVuYW1lZCBmcm9tIGgxOTQwZmIuYyB0byBzM2MyNDEwZmIuYwotICoJLSBBZGQgc3VwcG9ydCBmb3IgZGlmZmVyZW50IGRldmljZXMKLSAqCS0gQmFja2xpZ2h0IHN1cHBvcnQKLSAqCi0gKiAyMDA0LTA5LTA1OiBIZXJiZXJ0IFDDtnR6bCA8aGVyYmVydEAxM3RoZmxvb3IuYXQ+Ci0gKgktIGFkZGVkIGNsb2NrIChkZS0pYWxsb2NhdGlvbiBjb2RlCi0gKgktIGFkZGVkIGZpeGVtIGZibWVtIG9wdGlvbgotICoKLSAqIDIwMDQtMDctMjc6IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+Ci0gKgktIGNvZGUgY2xlYW51cAotICoJLSBhZGRlZCBhIGZvcmdvdHRlbiByZXR1cm4gaW4gaDE5NDBmYl9pbml0Ci0gKgotICogMjAwNC0wNy0xOTogSGVyYmVydCBQw7Z0emwgPGhlcmJlcnRAMTN0aGZsb29yLmF0PgotICoJLSBjb2RlIGNsZWFudXAgYW5kIGV4dGVuZGVkIGRlYnVnZ2luZwotICoKLSAqIDIwMDQtMDctMTU6IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+Ci0gKgktIEZpcnN0IHZlcnNpb24KLSAqLworICogRHJpdmVyIGJhc2VkIG9uIHNrZWxldG9uZmIuYywgc2ExMTAwZmIuYyBhbmQgb3RoZXJzLgorKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgpAQCAtNTgwLDYgKzUyMCwyNyBAQAogCXJldHVybiAwOwogfQogCisvKiBzM2MyNDEwZmJfbGNkX2VuYWJsZQorICoKKyAqIHNodXRkb3duIHRoZSBsY2QgY29udHJvbGxlcgorICovCitzdGF0aWMgdm9pZCBzM2MyNDEwZmJfbGNkX2VuYWJsZShzdHJ1Y3QgczNjMjQxMGZiX2luZm8gKmZiaSwgaW50IGVuYWJsZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCisJaWYgKGVuYWJsZSkKKwkJZmJpLT5yZWdzLmxjZGNvbjEgfD0gUzNDMjQxMF9MQ0RDT04xX0VOVklEOworCWVsc2UKKwkJZmJpLT5yZWdzLmxjZGNvbjEgJj0gflMzQzI0MTBfTENEQ09OMV9FTlZJRDsKKworCXdyaXRlbChmYmktPnJlZ3MubGNkY29uMSwgZmJpLT5pbyArIFMzQzI0MTBfTENEQ09OMSk7CisKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKKwogLyoKICAqICAgICAgczNjMjQxMGZiX2JsYW5rCiAgKglAYmxhbmtfbW9kZTogdGhlIGJsYW5rIG1vZGUgd2Ugd2FudC4KQEAgLTU4OSw5ICs1NTAsNiBAQAogICoJYmxhbmtpbmcgc3VjY2VlZGVkLCAhPSAwIGlmIHVuLS9ibGFua2luZyBmYWlsZWQgZHVlIHRvIGUuZy4gYQogICoJdmlkZW8gbW9kZSB3aGljaCBkb2Vzbid0IHN1cHBvcnQgaXQuIEltcGxlbWVudHMgVkVTQSBzdXNwZW5kCiAgKglhbmQgcG93ZXJkb3duIG1vZGVzIG9uIGhhcmR3YXJlIHRoYXQgc3VwcG9ydHMgZGlzYWJsaW5nIGhzeW5jL3ZzeW5jOgotICoJYmxhbmtfbW9kZSA9PSAyOiBzdXNwZW5kIHZzeW5jCi0gKglibGFua19tb2RlID09IDM6IHN1c3BlbmQgaHN5bmMKLSAqCWJsYW5rX21vZGUgPT0gNDogcG93ZXJkb3duCiAgKgogICoJUmV0dXJucyBuZWdhdGl2ZSBlcnJubyBvbiBlcnJvciwgb3IgemVybyBvbiBzdWNjZXNzLgogICoKQEAgLTYwNSw2ICs1NjMsMTIgQEAKIAogCXRwYWxfcmVnICs9IGlzX3MzYzI0MTIoZmJpKSA/IFMzQzI0MTJfVFBBTCA6IFMzQzI0MTBfVFBBTDsKIAorCWlmIChibGFua19tb2RlID09IEZCX0JMQU5LX1BPV0VSRE9XTikgeworCQlzM2MyNDEwZmJfbGNkX2VuYWJsZShmYmksIDApOworCX0gZWxzZSB7CisJCXMzYzI0MTBmYl9sY2RfZW5hYmxlKGZiaSwgMSk7CisJfQorCiAJaWYgKGJsYW5rX21vZGUgPT0gRkJfQkxBTktfVU5CTEFOSykKIAkJd3JpdGVsKDB4MCwgdHBhbF9yZWcpOwogCWVsc2UgewpAQCAtOTQ4LDcgKzkxMiwxMCBAQAogCX0KIAogCS8qIGNyZWF0ZSBkZXZpY2UgZmlsZXMgKi8KLQlkZXZpY2VfY3JlYXRlX2ZpbGUoJnBkZXYtPmRldiwgJmRldl9hdHRyX2RlYnVnKTsKKwlyZXQgPSBkZXZpY2VfY3JlYXRlX2ZpbGUoJnBkZXYtPmRldiwgJmRldl9hdHRyX2RlYnVnKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0VSUiAiZmFpbGVkIHRvIGFkZCBkZWJ1ZyBhdHRyaWJ1dGVcbiIpOworCX0KIAogCXByaW50ayhLRVJOX0lORk8gImZiJWQ6ICVzIGZyYW1lIGJ1ZmZlciBkZXZpY2VcbiIsCiAJCWZiaW5mby0+bm9kZSwgZmJpbmZvLT5maXguaWQpOwpAQCAtOTgzLDIxICs5NTAsNiBAQAogCXJldHVybiBzM2MyNHh4ZmJfcHJvYmUocGRldiwgRFJWX1MzQzI0MTIpOwogfQogCi0vKiBzM2MyNDEwZmJfc3RvcF9sY2QKLSAqCi0gKiBzaHV0ZG93biB0aGUgbGNkIGNvbnRyb2xsZXIKLSAqLwotc3RhdGljIHZvaWQgczNjMjQxMGZiX3N0b3BfbGNkKHN0cnVjdCBzM2MyNDEwZmJfaW5mbyAqZmJpKQotewotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7Ci0KLQlmYmktPnJlZ3MubGNkY29uMSAmPSB+UzNDMjQxMF9MQ0RDT04xX0VOVklEOwotCXdyaXRlbChmYmktPnJlZ3MubGNkY29uMSwgZmJpLT5pbyArIFMzQzI0MTBfTENEQ09OMSk7Ci0KLQlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Ci19CiAKIC8qCiAgKiAgQ2xlYW51cApAQCAtMTAxMCw3ICs5NjIsNyBAQAogCiAJdW5yZWdpc3Rlcl9mcmFtZWJ1ZmZlcihmYmluZm8pOwogCi0JczNjMjQxMGZiX3N0b3BfbGNkKGluZm8pOworCXMzYzI0MTBmYl9sY2RfZW5hYmxlKGluZm8sIDApOwogCW1zbGVlcCgxKTsKIAogCXMzYzI0MTBmYl91bm1hcF92aWRlb19tZW1vcnkoZmJpbmZvKTsKQEAgLTEwNDMsNyArOTk1LDcgQEAKIAlzdHJ1Y3QgZmJfaW5mbwkgICAqZmJpbmZvID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsKIAlzdHJ1Y3QgczNjMjQxMGZiX2luZm8gKmluZm8gPSBmYmluZm8tPnBhcjsKIAotCXMzYzI0MTBmYl9zdG9wX2xjZChpbmZvKTsKKwlzM2MyNDEwZmJfbGNkX2VuYWJsZShpbmZvLCAwKTsKIAogCS8qIHNsZWVwIGJlZm9yZSBkaXNhYmxpbmcgdGhlIGNsb2NrLCB3ZSBuZWVkIHRvIGVuc3VyZQogCSAqIHRoZSBMQ0QgRE1BIGVuZ2luZSBpcyBub3QgZ29pbmcgdG8gZ2V0IGJhY2sgb24gdGhlIGJ1cwpAQCAtMTExOCwzICsxMDcwLDUgQEAKIAkgICAgICAiQmVuIERvb2tzIDxiZW4tbGludXhAZmx1ZmYub3JnPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJGcmFtZWJ1ZmZlciBkcml2ZXIgZm9yIHRoZSBzM2MyNDEwIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTAtbGNkIik7CitNT0RVTEVfQUxJQVMoInBsYXRmb3JtOnMzYzI0MTItbGNkIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3MzYzI0MTBmYi5oIGIvZHJpdmVycy92aWRlby9zM2MyNDEwZmIuaAppbmRleCBkYmI3M2I5Li45YTZiYTNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3MzYzI0MTBmYi5oCisrKyBiL2RyaXZlcnMvdmlkZW8vczNjMjQxMGZiLmgKQEAgLTEsMjYgKzEsMTQgQEAKIC8qCiAgKiBsaW51eC9kcml2ZXJzL3ZpZGVvL3MzYzI0MTBmYi5oCi0gKiBDb3B5cmlnaHQgKGMpIEFybmF1ZCBQYXRhcmQKKyAqCUNvcHlyaWdodCAoYykgMjAwNCBBcm5hdWQgUGF0YXJkCisgKgorICogIFMzQzI0MTAgTENEIEZyYW1lYnVmZmVyIERyaXZlcgogICoKICAqIFRoaXMgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCiAgKiBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgYXJjaGl2ZSBmb3IKICAqIG1vcmUgZGV0YWlscy4KICAqCi0gKgkgICAgUzNDMjQxMCBMQ0QgQ29udHJvbGxlciBGcmFtZSBCdWZmZXIgRHJpdmVyCi0gKgkgICAgYmFzZWQgb24gc2tlbGV0b25mYi5jLCBzYTExMDBmYi5oCi0gKgotICogQ2hhbmdlTG9nCi0gKgotICogMjAwNC0xMi0wNDogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqICAgICAgLSBNb3ZlZCBkcHJpbnRrIHRvIHMzYzI0MTBmYi5jCi0gKgotICogMjAwNC0wOS0wNzogQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KLSAqIAktIFJlbmFtZWQgZnJvbSBoMTk0MGZiLmggdG8gczNjMjQxMGZiLmgKLSAqIAktIENoYW5nZWQgaDE5NDAgdG8gczNjMjQxMAotICoKLSAqIDIwMDQtMDctMTU6IEFybmF1ZCBQYXRhcmQgPGFybmF1ZC5wYXRhcmRAcnRwLW5ldC5vcmc+Ci0gKgktIEZpcnN0IHZlcnNpb24KLSAqLworKi8KIAogI2lmbmRlZiBfX1MzQzI0MTBGQl9ICiAjZGVmaW5lIF9fUzNDMjQxMEZCX0gKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vc2dpdndmYi5jIGIvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKaW5kZXggNGZiMTYyNC4uZjUyNTJjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKKysrIGIvZHJpdmVycy92aWRlby9zZ2l2d2ZiLmMKQEAgLTIxLDggKzIxLDcgQEAKIAogI2luY2x1ZGUgPGFzbS9pby5oPgogI2luY2x1ZGUgPGFzbS9tdHJyLmg+Ci0KLSNpbmNsdWRlIDxzZXR1cF9hcmNoLmg+CisjaW5jbHVkZSA8YXNtL3Zpc3dzL3NnaXZ3Lmg+CiAKICNkZWZpbmUgSU5DTFVERV9USU1JTkdfVEFCTEVfREFUQQogI2RlZmluZSBEQkVfUkVHX0JBU0UgcGFyLT5yZWdzCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3Npcy9zaXNfbWFpbi5jIGIvZHJpdmVycy92aWRlby9zaXMvc2lzX21haW4uYwppbmRleCA3MzgwMzYyLi5iOTM0Mzg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3Npcy9zaXNfbWFpbi5jCisrKyBiL2RyaXZlcnMvdmlkZW8vc2lzL3Npc19tYWluLmMKQEAgLTU3ODcsNyArNTc4Nyw3IEBACiAJfSBlbHNlIHsKIAkJc3RydWN0IHNpc192aWRlb19pbmZvICpjb3VudHZpZGVvID0gY2FyZF9saXN0OwogCQlpdmlkZW8tPmNhcmRudW1iZXIgPSAxOwotCQl3aGlsZSgoY291bnR2aWRlbyA9IGNvdW50dmlkZW8tPm5leHQpICE9IDApCisJCXdoaWxlKChjb3VudHZpZGVvID0gY291bnR2aWRlby0+bmV4dCkgIT0gTlVMTCkKIAkJCWl2aWRlby0+Y2FyZG51bWJlcisrOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby9zbTUwMWZiLmMgYi9kcml2ZXJzL3ZpZGVvL3NtNTAxZmIuYwppbmRleCA3NDJiNWM2Li4xNWQ0YTc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL3NtNTAxZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL3NtNTAxZmIuYwpAQCAtNjYzLDE0ICs2NjMsMTQgQEAKIAkJc201MDFmYl9zeW5jX3JlZ3MoZmJpKTsKIAkJbWRlbGF5KDEwKTsKIAotCQlpZiAocGQtPmZsYWdzICYgU001MDFGQl9GTEFHX1BBTkVMX1VTRV9WQklBU0VOKSB7CisJCWlmICghKHBkLT5mbGFncyAmIFNNNTAxRkJfRkxBR19QQU5FTF9OT19WQklBU0VOKSkgewogCQkJY29udHJvbCB8PSBTTTUwMV9EQ19QQU5FTF9DT05UUk9MX0JJQVM7CS8qIFZCSUFTRU4gKi8KIAkJCXdyaXRlbChjb250cm9sLCBjdHJsX3JlZyk7CiAJCQlzbTUwMWZiX3N5bmNfcmVncyhmYmkpOwogCQkJbWRlbGF5KDEwKTsKIAkJfQogCi0JCWlmIChwZC0+ZmxhZ3MgJiBTTTUwMUZCX0ZMQUdfUEFORUxfVVNFX0ZQRU4pIHsKKwkJaWYgKCEocGQtPmZsYWdzICYgU001MDFGQl9GTEFHX1BBTkVMX05PX0ZQRU4pKSB7CiAJCQljb250cm9sIHw9IFNNNTAxX0RDX1BBTkVMX0NPTlRST0xfRlBFTjsKIAkJCXdyaXRlbChjb250cm9sLCBjdHJsX3JlZyk7CiAJCQlzbTUwMWZiX3N5bmNfcmVncyhmYmkpOwpAQCAtNjc4LDE0ICs2NzgsMTQgQEAKIAkJfQogCX0gZWxzZSBpZiAoIXRvICYmIChjb250cm9sICYgU001MDFfRENfUEFORUxfQ09OVFJPTF9WREQpICE9IDApIHsKIAkJLyogZGlzYWJsZSBwYW5lbCBwb3dlciAqLwotCQlpZiAocGQtPmZsYWdzICYgU001MDFGQl9GTEFHX1BBTkVMX1VTRV9GUEVOKSB7CisJCWlmICghKHBkLT5mbGFncyAmIFNNNTAxRkJfRkxBR19QQU5FTF9OT19GUEVOKSkgewogCQkJY29udHJvbCAmPSB+U001MDFfRENfUEFORUxfQ09OVFJPTF9GUEVOOwogCQkJd3JpdGVsKGNvbnRyb2wsIGN0cmxfcmVnKTsKIAkJCXNtNTAxZmJfc3luY19yZWdzKGZiaSk7CiAJCQltZGVsYXkoMTApOwogCQl9CiAKLQkJaWYgKHBkLT5mbGFncyAmIFNNNTAxRkJfRkxBR19QQU5FTF9VU0VfVkJJQVNFTikgeworCQlpZiAoIShwZC0+ZmxhZ3MgJiBTTTUwMUZCX0ZMQUdfUEFORUxfTk9fVkJJQVNFTikpIHsKIAkJCWNvbnRyb2wgJj0gflNNNTAxX0RDX1BBTkVMX0NPTlRST0xfQklBUzsKIAkJCXdyaXRlbChjb250cm9sLCBjdHJsX3JlZyk7CiAJCQlzbTUwMWZiX3N5bmNfcmVncyhmYmkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby93MTAwZmIuYyBiL2RyaXZlcnMvdmlkZW8vdzEwMGZiLmMKaW5kZXggMzA0NjliZi4uZDA2NzRmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aWRlby93MTAwZmIuYworKysgYi9kcml2ZXJzL3ZpZGVvL3cxMDBmYi5jCkBAIC0xMDAzLDYgKzEwMDMsNyBAQAogc3RhdGljIHN0cnVjdCB3MTAwX3BsbF9pbmZvIHh0YWxfMTYwMDAwMDBbXSA9IHsKIAkvKmZyZXEgICAgIE0gICBOX2ludCAgICBOX2ZhYyAgdGZnb2FsICBsb2NrX3RpbWUgKi8KIAl7IDcyLCAgICAgIDEsICAgOCwgICAgICAgMCwgICAgIDB4ZTAsICAgICAgICA0OH0sIC8qIHRmZ29hbCBndWVzc2VkICovCisJeyA4MCwgICAgICAxLCAgIDksICAgICAgIDAsICAgICAweGUwLCAgICAgICAgMTN9LCAvKiB0ZmdvYWwgZ3Vlc3NlZCAqLwogCXsgOTUsICAgICAgMSwgICAxMCwgICAgICA3LCAgICAgMHhlMCwgICAgICAgIDM4fSwgLyogdGZnb2FsIGd1ZXNzZWQgKi8KIAl7IDk2LCAgICAgIDEsICAgMTEsICAgICAgMCwgICAgIDB4ZTAsICAgICAgICAzNn0sIC8qIHRmZ29hbCBndWVzc2VkICovCiAJeyAgMCwgICAgICAwLCAgIDAsICAgICAgIDAsICAgICAgICAwLCAgICAgICAgIDB9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy92aWRlby94ZW4tZmJmcm9udC5jIGIvZHJpdmVycy92aWRlby94ZW4tZmJmcm9udC5jCmluZGV4IDYxOWE2ZjguLjQ3ZWQzOWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlkZW8veGVuLWZiZnJvbnQuYworKysgYi9kcml2ZXJzL3ZpZGVvL3hlbi1mYmZyb250LmMKQEAgLTE4LDYgKzE4LDcgQEAKICAqIGZyYW1lIGJ1ZmZlci4KICAqLwogCisjaW5jbHVkZSA8bGludXgvY29uc29sZS5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvZmIuaD4KQEAgLTQyLDM3ICs0Myw2OCBAQAogCXN0cnVjdCB4ZW5mYl9wYWdlCSpwYWdlOwogCXVuc2lnbmVkIGxvbmcgCQkqbWZuczsKIAlpbnQJCQl1cGRhdGVfd2FudGVkOyAvKiBYRU5GQl9UWVBFX1VQREFURSB3YW50ZWQgKi8KKwlpbnQJCQlmZWF0dXJlX3Jlc2l6ZTsgLyogWEVORkJfVFlQRV9SRVNJWkUgb2sgKi8KKwlzdHJ1Y3QgeGVuZmJfcmVzaXplCXJlc2l6ZTsJCS8qIHByb3RlY3RlZCBieSByZXNpemVfbG9jayAqLworCWludAkJCXJlc2l6ZV9kcHk7CS8qIGRpdHRvICovCisJc3BpbmxvY2tfdAkJcmVzaXplX2xvY2s7CiAKIAlzdHJ1Y3QgeGVuYnVzX2RldmljZQkqeGJkZXY7CiB9OwogCi1zdGF0aWMgdTMyIHhlbmZiX21lbV9sZW4gPSBYRU5GQl9XSURUSCAqIFhFTkZCX0hFSUdIVCAqIFhFTkZCX0RFUFRIIC8gODsKKyNkZWZpbmUgWEVORkJfREVGQVVMVF9GQl9MRU4gKFhFTkZCX1dJRFRIICogWEVORkJfSEVJR0hUICogWEVORkJfREVQVEggLyA4KQogCitlbnVtIHsgS1BBUkFNX01FTSwgS1BBUkFNX1dJRFRILCBLUEFSQU1fSEVJR0hULCBLUEFSQU1fQ05UIH07CitzdGF0aWMgaW50IHZpZGVvW0tQQVJBTV9DTlRdID0geyAyLCBYRU5GQl9XSURUSCwgWEVORkJfSEVJR0hUIH07Cittb2R1bGVfcGFyYW1fYXJyYXkodmlkZW8sIGludCwgTlVMTCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHZpZGVvLAorCSJWaWRlbyBtZW1vcnkgc2l6ZSBpbiBNQiwgd2lkdGgsIGhlaWdodCBpbiBwaXhlbHMgKGRlZmF1bHQgMiw4MDAsNjAwKSIpOworCitzdGF0aWMgdm9pZCB4ZW5mYl9tYWtlX3ByZWZlcnJlZF9jb25zb2xlKHZvaWQpOwogc3RhdGljIGludCB4ZW5mYl9yZW1vdmUoc3RydWN0IHhlbmJ1c19kZXZpY2UgKik7Ci1zdGF0aWMgdm9pZCB4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKHN0cnVjdCB4ZW5mYl9pbmZvICopOworc3RhdGljIHZvaWQgeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShzdHJ1Y3QgeGVuZmJfaW5mbyAqLCBzdHJ1Y3QgZmJfaW5mbyAqKTsKIHN0YXRpYyBpbnQgeGVuZmJfY29ubmVjdF9iYWNrZW5kKHN0cnVjdCB4ZW5idXNfZGV2aWNlICosIHN0cnVjdCB4ZW5mYl9pbmZvICopOwogc3RhdGljIHZvaWQgeGVuZmJfZGlzY29ubmVjdF9iYWNrZW5kKHN0cnVjdCB4ZW5mYl9pbmZvICopOwogCitzdGF0aWMgdm9pZCB4ZW5mYl9zZW5kX2V2ZW50KHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvLAorCQkJICAgICB1bmlvbiB4ZW5mYl9vdXRfZXZlbnQgKmV2ZW50KQoreworCXUzMiBwcm9kOworCisJcHJvZCA9IGluZm8tPnBhZ2UtPm91dF9wcm9kOworCS8qIGNhbGxlciBlbnN1cmVzICF4ZW5mYl9xdWV1ZV9mdWxsKCkgKi8KKwltYigpOwkJCS8qIGVuc3VyZSByaW5nIHNwYWNlIGF2YWlsYWJsZSAqLworCVhFTkZCX09VVF9SSU5HX1JFRihpbmZvLT5wYWdlLCBwcm9kKSA9ICpldmVudDsKKwl3bWIoKTsJCQkvKiBlbnN1cmUgcmluZyBjb250ZW50cyB2aXNpYmxlICovCisJaW5mby0+cGFnZS0+b3V0X3Byb2QgPSBwcm9kICsgMTsKKworCW5vdGlmeV9yZW1vdGVfdmlhX2lycShpbmZvLT5pcnEpOworfQorCiBzdGF0aWMgdm9pZCB4ZW5mYl9kb191cGRhdGUoc3RydWN0IHhlbmZiX2luZm8gKmluZm8sCiAJCQkgICAgaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgpCiB7CiAJdW5pb24geGVuZmJfb3V0X2V2ZW50IGV2ZW50OwotCXUzMiBwcm9kOwogCisJbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9mKGV2ZW50KSk7CiAJZXZlbnQudHlwZSA9IFhFTkZCX1RZUEVfVVBEQVRFOwogCWV2ZW50LnVwZGF0ZS54ID0geDsKIAlldmVudC51cGRhdGUueSA9IHk7CiAJZXZlbnQudXBkYXRlLndpZHRoID0gdzsKIAlldmVudC51cGRhdGUuaGVpZ2h0ID0gaDsKIAotCXByb2QgPSBpbmZvLT5wYWdlLT5vdXRfcHJvZDsKIAkvKiBjYWxsZXIgZW5zdXJlcyAheGVuZmJfcXVldWVfZnVsbCgpICovCi0JbWIoKTsJCQkvKiBlbnN1cmUgcmluZyBzcGFjZSBhdmFpbGFibGUgKi8KLQlYRU5GQl9PVVRfUklOR19SRUYoaW5mby0+cGFnZSwgcHJvZCkgPSBldmVudDsKLQl3bWIoKTsJCQkvKiBlbnN1cmUgcmluZyBjb250ZW50cyB2aXNpYmxlICovCi0JaW5mby0+cGFnZS0+b3V0X3Byb2QgPSBwcm9kICsgMTsKKwl4ZW5mYl9zZW5kX2V2ZW50KGluZm8sICZldmVudCk7Cit9CiAKLQlub3RpZnlfcmVtb3RlX3ZpYV9pcnEoaW5mby0+aXJxKTsKK3N0YXRpYyB2b2lkIHhlbmZiX2RvX3Jlc2l6ZShzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbykKK3sKKwl1bmlvbiB4ZW5mYl9vdXRfZXZlbnQgZXZlbnQ7CisKKwltZW1zZXQoJmV2ZW50LCAwLCBzaXplb2YoZXZlbnQpKTsKKwlldmVudC5yZXNpemUgPSBpbmZvLT5yZXNpemU7CisKKwkvKiBjYWxsZXIgZW5zdXJlcyAheGVuZmJfcXVldWVfZnVsbCgpICovCisJeGVuZmJfc2VuZF9ldmVudChpbmZvLCAmZXZlbnQpOwogfQogCiBzdGF0aWMgaW50IHhlbmZiX3F1ZXVlX2Z1bGwoc3RydWN0IHhlbmZiX2luZm8gKmluZm8pCkBAIC04NCwxMiArMTE2LDI4IEBACiAJcmV0dXJuIHByb2QgLSBjb25zID09IFhFTkZCX09VVF9SSU5HX0xFTjsKIH0KIAorc3RhdGljIHZvaWQgeGVuZmJfaGFuZGxlX3Jlc2l6ZV9kcHkoc3RydWN0IHhlbmZiX2luZm8gKmluZm8pCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpbmZvLT5yZXNpemVfbG9jaywgZmxhZ3MpOworCWlmIChpbmZvLT5yZXNpemVfZHB5KSB7CisJCWlmICgheGVuZmJfcXVldWVfZnVsbChpbmZvKSkgeworCQkJaW5mby0+cmVzaXplX2RweSA9IDA7CisJCQl4ZW5mYl9kb19yZXNpemUoaW5mbyk7CisJCX0KKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW5mby0+cmVzaXplX2xvY2ssIGZsYWdzKTsKK30KKwogc3RhdGljIHZvaWQgeGVuZmJfcmVmcmVzaChzdHJ1Y3QgeGVuZmJfaW5mbyAqaW5mbywKIAkJCSAgaW50IHgxLCBpbnQgeTEsIGludCB3LCBpbnQgaCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCB5MiA9IHkxICsgaCAtIDE7CiAJaW50IHgyID0geDEgKyB3IC0gMTsKKwlpbnQgeTIgPSB5MSArIGggLSAxOworCisJeGVuZmJfaGFuZGxlX3Jlc2l6ZV9kcHkoaW5mbyk7CiAKIAlpZiAoIWluZm8tPnVwZGF0ZV93YW50ZWQpCiAJCXJldHVybjsKQEAgLTIyMiw2ICsyNzAsNTcgQEAKIAlyZXR1cm4gcmVzOwogfQogCitzdGF0aWMgaW50Cit4ZW5mYl9jaGVja192YXIoc3RydWN0IGZiX3Zhcl9zY3JlZW5pbmZvICp2YXIsIHN0cnVjdCBmYl9pbmZvICppbmZvKQoreworCXN0cnVjdCB4ZW5mYl9pbmZvICp4ZW5mYl9pbmZvOworCWludCByZXF1aXJlZF9tZW1fbGVuOworCisJeGVuZmJfaW5mbyA9IGluZm8tPnBhcjsKKworCWlmICgheGVuZmJfaW5mby0+ZmVhdHVyZV9yZXNpemUpIHsKKwkJaWYgKHZhci0+eHJlcyA9PSB2aWRlb1tLUEFSQU1fV0lEVEhdICYmCisJCSAgICB2YXItPnlyZXMgPT0gdmlkZW9bS1BBUkFNX0hFSUdIVF0gJiYKKwkJICAgIHZhci0+Yml0c19wZXJfcGl4ZWwgPT0geGVuZmJfaW5mby0+cGFnZS0+ZGVwdGgpIHsKKwkJCXJldHVybiAwOworCQl9CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIENhbid0IHJlc2l6ZSBwYXN0IGluaXRpYWwgd2lkdGggYW5kIGhlaWdodCAqLworCWlmICh2YXItPnhyZXMgPiB2aWRlb1tLUEFSQU1fV0lEVEhdIHx8IHZhci0+eXJlcyA+IHZpZGVvW0tQQVJBTV9IRUlHSFRdKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJlcXVpcmVkX21lbV9sZW4gPSB2YXItPnhyZXMgKiB2YXItPnlyZXMgKiB4ZW5mYl9pbmZvLT5wYWdlLT5kZXB0aCAvIDg7CisJaWYgKHZhci0+Yml0c19wZXJfcGl4ZWwgPT0geGVuZmJfaW5mby0+cGFnZS0+ZGVwdGggJiYKKwkgICAgdmFyLT54cmVzIDw9IGluZm8tPmZpeC5saW5lX2xlbmd0aCAvIChYRU5GQl9ERVBUSCAvIDgpICYmCisJICAgIHJlcXVpcmVkX21lbV9sZW4gPD0gaW5mby0+Zml4LnNtZW1fbGVuKSB7CisJCXZhci0+eHJlc192aXJ0dWFsID0gdmFyLT54cmVzOworCQl2YXItPnlyZXNfdmlydHVhbCA9IHZhci0+eXJlczsKKwkJcmV0dXJuIDA7CisJfQorCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IHhlbmZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8gKmluZm8pCit7CisJc3RydWN0IHhlbmZiX2luZm8gKnhlbmZiX2luZm87CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXhlbmZiX2luZm8gPSBpbmZvLT5wYXI7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmeGVuZmJfaW5mby0+cmVzaXplX2xvY2ssIGZsYWdzKTsKKwl4ZW5mYl9pbmZvLT5yZXNpemUudHlwZSA9IFhFTkZCX1RZUEVfUkVTSVpFOworCXhlbmZiX2luZm8tPnJlc2l6ZS53aWR0aCA9IGluZm8tPnZhci54cmVzOworCXhlbmZiX2luZm8tPnJlc2l6ZS5oZWlnaHQgPSBpbmZvLT52YXIueXJlczsKKwl4ZW5mYl9pbmZvLT5yZXNpemUuc3RyaWRlID0gaW5mby0+Zml4LmxpbmVfbGVuZ3RoOworCXhlbmZiX2luZm8tPnJlc2l6ZS5kZXB0aCA9IGluZm8tPnZhci5iaXRzX3Blcl9waXhlbDsKKwl4ZW5mYl9pbmZvLT5yZXNpemUub2Zmc2V0ID0gMDsKKwl4ZW5mYl9pbmZvLT5yZXNpemVfZHB5ID0gMTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ4ZW5mYl9pbmZvLT5yZXNpemVfbG9jaywgZmxhZ3MpOworCXJldHVybiAwOworfQorCiBzdGF0aWMgc3RydWN0IGZiX29wcyB4ZW5mYl9mYl9vcHMgPSB7CiAJLm93bmVyCQk9IFRISVNfTU9EVUxFLAogCS5mYl9yZWFkCT0gZmJfc3lzX3JlYWQsCkBAIC0yMzAsNiArMzI5LDggQEAKIAkuZmJfZmlsbHJlY3QJPSB4ZW5mYl9maWxscmVjdCwKIAkuZmJfY29weWFyZWEJPSB4ZW5mYl9jb3B5YXJlYSwKIAkuZmJfaW1hZ2VibGl0CT0geGVuZmJfaW1hZ2VibGl0LAorCS5mYl9jaGVja192YXIJPSB4ZW5mYl9jaGVja192YXIsCisJLmZiX3NldF9wYXIgICAgID0geGVuZmJfc2V0X3BhciwKIH07CiAKIHN0YXRpYyBpcnFyZXR1cm5fdCB4ZW5mYl9ldmVudF9oYW5kbGVyKGludCBycSwgdm9pZCAqZGV2X2lkKQpAQCAtMjU4LDYgKzM1OSw4IEBACiB7CiAJc3RydWN0IHhlbmZiX2luZm8gKmluZm87CiAJc3RydWN0IGZiX2luZm8gKmZiX2luZm87CisJaW50IGZiX3NpemU7CisJaW50IHZhbDsKIAlpbnQgcmV0OwogCiAJaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKCppbmZvKSwgR0ZQX0tFUk5FTCk7CkBAIC0yNjUsMTggKzM2OCwzNSBAQAogCQl4ZW5idXNfZGV2X2ZhdGFsKGRldiwgLUVOT01FTSwgImFsbG9jYXRpbmcgaW5mbyBzdHJ1Y3R1cmUiKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQorCisJLyogTGltaXQga2VybmVsIHBhcmFtIHZpZGVvcmFtIGFtb3VudCB0byB3aGF0IGlzIGluIHhlbnN0b3JlICovCisJaWYgKHhlbmJ1c19zY2FuZihYQlRfTklMLCBkZXYtPm90aGVyZW5kLCAidmlkZW9yYW0iLCAiJWQiLCAmdmFsKSA9PSAxKSB7CisJCWlmICh2YWwgPCB2aWRlb1tLUEFSQU1fTUVNXSkKKwkJCXZpZGVvW0tQQVJBTV9NRU1dID0gdmFsOworCX0KKworCS8qIElmIHJlcXVlc3RlZCByZXMgZG9lcyBub3QgZml0IGluIGF2YWlsYWJsZSBtZW1vcnksIHVzZSBkZWZhdWx0ICovCisJZmJfc2l6ZSA9IHZpZGVvW0tQQVJBTV9NRU1dICogMTAyNCAqIDEwMjQ7CisJaWYgKHZpZGVvW0tQQVJBTV9XSURUSF0gKiB2aWRlb1tLUEFSQU1fSEVJR0hUXSAqIFhFTkZCX0RFUFRIIC8gOAorCSAgICA+IGZiX3NpemUpIHsKKwkJdmlkZW9bS1BBUkFNX1dJRFRIXSA9IFhFTkZCX1dJRFRIOworCQl2aWRlb1tLUEFSQU1fSEVJR0hUXSA9IFhFTkZCX0hFSUdIVDsKKwkJZmJfc2l6ZSA9IFhFTkZCX0RFRkFVTFRfRkJfTEVOOworCX0KKwogCWRldi0+ZGV2LmRyaXZlcl9kYXRhID0gaW5mbzsKIAlpbmZvLT54YmRldiA9IGRldjsKIAlpbmZvLT5pcnEgPSAtMTsKIAlpbmZvLT54MSA9IGluZm8tPnkxID0gSU5UX01BWDsKIAlzcGluX2xvY2tfaW5pdCgmaW5mby0+ZGlydHlfbG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmluZm8tPnJlc2l6ZV9sb2NrKTsKIAotCWluZm8tPmZiID0gdm1hbGxvYyh4ZW5mYl9tZW1fbGVuKTsKKwlpbmZvLT5mYiA9IHZtYWxsb2MoZmJfc2l6ZSk7CiAJaWYgKGluZm8tPmZiID09IE5VTEwpCiAJCWdvdG8gZXJyb3Jfbm9tZW07Ci0JbWVtc2V0KGluZm8tPmZiLCAwLCB4ZW5mYl9tZW1fbGVuKTsKKwltZW1zZXQoaW5mby0+ZmIsIDAsIGZiX3NpemUpOwogCi0JaW5mby0+bnJfcGFnZXMgPSAoeGVuZmJfbWVtX2xlbiArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CisJaW5mby0+bnJfcGFnZXMgPSAoZmJfc2l6ZSArIFBBR0VfU0laRSAtIDEpID4+IFBBR0VfU0hJRlQ7CiAKIAlpbmZvLT5tZm5zID0gdm1hbGxvYyhzaXplb2YodW5zaWduZWQgbG9uZykgKiBpbmZvLT5ucl9wYWdlcyk7CiAJaWYgKCFpbmZvLT5tZm5zKQpAQCAtMjg3LDggKzQwNyw2IEBACiAJaWYgKCFpbmZvLT5wYWdlKQogCQlnb3RvIGVycm9yX25vbWVtOwogCi0JeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShpbmZvKTsKLQogCS8qIGFidXNpbmcgZnJhbWVidWZmZXJfYWxsb2MoKSB0byBhbGxvY2F0ZSBwc2V1ZG9fcGFsZXR0ZSAqLwogCWZiX2luZm8gPSBmcmFtZWJ1ZmZlcl9hbGxvYyhzaXplb2YodTMyKSAqIDI1NiwgTlVMTCk7CiAJaWYgKGZiX2luZm8gPT0gTlVMTCkKQEAgLTMwMSw5ICs0MTksOSBAQAogCWZiX2luZm8tPnNjcmVlbl9iYXNlID0gaW5mby0+ZmI7CiAKIAlmYl9pbmZvLT5mYm9wcyA9ICZ4ZW5mYl9mYl9vcHM7Ci0JZmJfaW5mby0+dmFyLnhyZXNfdmlydHVhbCA9IGZiX2luZm8tPnZhci54cmVzID0gaW5mby0+cGFnZS0+d2lkdGg7Ci0JZmJfaW5mby0+dmFyLnlyZXNfdmlydHVhbCA9IGZiX2luZm8tPnZhci55cmVzID0gaW5mby0+cGFnZS0+aGVpZ2h0OwotCWZiX2luZm8tPnZhci5iaXRzX3Blcl9waXhlbCA9IGluZm8tPnBhZ2UtPmRlcHRoOworCWZiX2luZm8tPnZhci54cmVzX3ZpcnR1YWwgPSBmYl9pbmZvLT52YXIueHJlcyA9IHZpZGVvW0tQQVJBTV9XSURUSF07CisJZmJfaW5mby0+dmFyLnlyZXNfdmlydHVhbCA9IGZiX2luZm8tPnZhci55cmVzID0gdmlkZW9bS1BBUkFNX0hFSUdIVF07CisJZmJfaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsID0gWEVORkJfREVQVEg7CiAKIAlmYl9pbmZvLT52YXIucmVkID0gKHN0cnVjdCBmYl9iaXRmaWVsZCl7MTYsIDgsIDB9OwogCWZiX2luZm8tPnZhci5ncmVlbiA9IChzdHJ1Y3QgZmJfYml0ZmllbGQpezgsIDgsIDB9OwpAQCAtMzE1LDkgKzQzMyw5IEBACiAJZmJfaW5mby0+dmFyLnZtb2RlID0gRkJfVk1PREVfTk9OSU5URVJMQUNFRDsKIAogCWZiX2luZm8tPmZpeC52aXN1YWwgPSBGQl9WSVNVQUxfVFJVRUNPTE9SOwotCWZiX2luZm8tPmZpeC5saW5lX2xlbmd0aCA9IGluZm8tPnBhZ2UtPmxpbmVfbGVuZ3RoOworCWZiX2luZm8tPmZpeC5saW5lX2xlbmd0aCA9IGZiX2luZm8tPnZhci54cmVzICogWEVORkJfREVQVEggLyA4OwogCWZiX2luZm8tPmZpeC5zbWVtX3N0YXJ0ID0gMDsKLQlmYl9pbmZvLT5maXguc21lbV9sZW4gPSB4ZW5mYl9tZW1fbGVuOworCWZiX2luZm8tPmZpeC5zbWVtX2xlbiA9IGZiX3NpemU7CiAJc3RyY3B5KGZiX2luZm8tPmZpeC5pZCwgInhlbiIpOwogCWZiX2luZm8tPmZpeC50eXBlID0gRkJfVFlQRV9QQUNLRURfUElYRUxTOwogCWZiX2luZm8tPmZpeC5hY2NlbCA9IEZCX0FDQ0VMX05PTkU7CkBAIC0zMzQsNiArNDUyLDggQEAKIAlmYl9pbmZvLT5mYmRlZmlvID0gJnhlbmZiX2RlZmlvOwogCWZiX2RlZmVycmVkX2lvX2luaXQoZmJfaW5mbyk7CiAKKwl4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKGluZm8sIGZiX2luZm8pOworCiAJcmV0ID0gcmVnaXN0ZXJfZnJhbWVidWZmZXIoZmJfaW5mbyk7CiAJaWYgKHJldCkgewogCQlmYl9kZWZlcnJlZF9pb19jbGVhbnVwKGZiX2luZm8pOwpAQCAtMzQ4LDYgKzQ2OCw3IEBACiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyb3I7CiAKKwl4ZW5mYl9tYWtlX3ByZWZlcnJlZF9jb25zb2xlKCk7CiAJcmV0dXJuIDA7CiAKICBlcnJvcl9ub21lbToKQEAgLTM1OCwxMiArNDc5LDM0IEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIF9fZGV2aW5pdCB2b2lkCit4ZW5mYl9tYWtlX3ByZWZlcnJlZF9jb25zb2xlKHZvaWQpCit7CisJc3RydWN0IGNvbnNvbGUgKmM7CisKKwlpZiAoY29uc29sZV9zZXRfb25fY21kbGluZSkKKwkJcmV0dXJuOworCisJYWNxdWlyZV9jb25zb2xlX3NlbSgpOworCWZvciAoYyA9IGNvbnNvbGVfZHJpdmVyczsgYzsgYyA9IGMtPm5leHQpIHsKKwkJaWYgKCFzdHJjbXAoYy0+bmFtZSwgInR0eSIpICYmIGMtPmluZGV4ID09IDApCisJCQlicmVhazsKKwl9CisJcmVsZWFzZV9jb25zb2xlX3NlbSgpOworCWlmIChjKSB7CisJCXVucmVnaXN0ZXJfY29uc29sZShjKTsKKwkJYy0+ZmxhZ3MgfD0gQ09OX0NPTlNERVY7CisJCWMtPmZsYWdzICY9IH5DT05fUFJJTlRCVUZGRVI7IC8qIGRvbid0IHByaW50IGFnYWluICovCisJCXJlZ2lzdGVyX2NvbnNvbGUoYyk7CisJfQorfQorCiBzdGF0aWMgaW50IHhlbmZiX3Jlc3VtZShzdHJ1Y3QgeGVuYnVzX2RldmljZSAqZGV2KQogewogCXN0cnVjdCB4ZW5mYl9pbmZvICppbmZvID0gZGV2LT5kZXYuZHJpdmVyX2RhdGE7CiAKIAl4ZW5mYl9kaXNjb25uZWN0X2JhY2tlbmQoaW5mbyk7Ci0JeGVuZmJfaW5pdF9zaGFyZWRfcGFnZShpbmZvKTsKKwl4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKGluZm8sIGluZm8tPmZiX2luZm8pOwogCXJldHVybiB4ZW5mYl9jb25uZWN0X2JhY2tlbmQoZGV2LCBpbmZvKTsKIH0KIApAQCAtMzkxLDIwICs1MzQsMjMgQEAKIAlyZXR1cm4gcGZuX3RvX21mbih2bWFsbG9jX3RvX3BmbihhZGRyZXNzKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHhlbmZiX2luaXRfc2hhcmVkX3BhZ2Uoc3RydWN0IHhlbmZiX2luZm8gKmluZm8pCitzdGF0aWMgdm9pZCB4ZW5mYl9pbml0X3NoYXJlZF9wYWdlKHN0cnVjdCB4ZW5mYl9pbmZvICppbmZvLAorCQkJCSAgIHN0cnVjdCBmYl9pbmZvICpmYl9pbmZvKQogewogCWludCBpOworCWludCBlcGQgPSBQQUdFX1NJWkUgLyBzaXplb2YoaW5mby0+bWZuc1swXSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgaW5mby0+bnJfcGFnZXM7IGkrKykKIAkJaW5mby0+bWZuc1tpXSA9IHZtYWxsb2NfdG9fbWZuKGluZm8tPmZiICsgaSAqIFBBR0VfU0laRSk7CiAKLQlpbmZvLT5wYWdlLT5wZFswXSA9IHZtYWxsb2NfdG9fbWZuKGluZm8tPm1mbnMpOwotCWluZm8tPnBhZ2UtPnBkWzFdID0gMDsKLQlpbmZvLT5wYWdlLT53aWR0aCA9IFhFTkZCX1dJRFRIOwotCWluZm8tPnBhZ2UtPmhlaWdodCA9IFhFTkZCX0hFSUdIVDsKLQlpbmZvLT5wYWdlLT5kZXB0aCA9IFhFTkZCX0RFUFRIOwotCWluZm8tPnBhZ2UtPmxpbmVfbGVuZ3RoID0gKGluZm8tPnBhZ2UtPmRlcHRoIC8gOCkgKiBpbmZvLT5wYWdlLT53aWR0aDsKLQlpbmZvLT5wYWdlLT5tZW1fbGVuZ3RoID0geGVuZmJfbWVtX2xlbjsKKwlmb3IgKGkgPSAwOyBpICogZXBkIDwgaW5mby0+bnJfcGFnZXM7IGkrKykKKwkJaW5mby0+cGFnZS0+cGRbaV0gPSB2bWFsbG9jX3RvX21mbigmaW5mby0+bWZuc1tpICogZXBkXSk7CisKKwlpbmZvLT5wYWdlLT53aWR0aCA9IGZiX2luZm8tPnZhci54cmVzOworCWluZm8tPnBhZ2UtPmhlaWdodCA9IGZiX2luZm8tPnZhci55cmVzOworCWluZm8tPnBhZ2UtPmRlcHRoID0gZmJfaW5mby0+dmFyLmJpdHNfcGVyX3BpeGVsOworCWluZm8tPnBhZ2UtPmxpbmVfbGVuZ3RoID0gZmJfaW5mby0+Zml4LmxpbmVfbGVuZ3RoOworCWluZm8tPnBhZ2UtPm1lbV9sZW5ndGggPSBmYl9pbmZvLT5maXguc21lbV9sZW47CiAJaW5mby0+cGFnZS0+aW5fY29ucyA9IGluZm8tPnBhZ2UtPmluX3Byb2QgPSAwOwogCWluZm8tPnBhZ2UtPm91dF9jb25zID0gaW5mby0+cGFnZS0+b3V0X3Byb2QgPSAwOwogfQpAQCAtNTA0LDYgKzY1MCwxMSBAQAogCQkJdmFsID0gMDsKIAkJaWYgKHZhbCkKIAkJCWluZm8tPnVwZGF0ZV93YW50ZWQgPSAxOworCisJCWlmICh4ZW5idXNfc2NhbmYoWEJUX05JTCwgZGV2LT5vdGhlcmVuZCwKKwkJCQkgImZlYXR1cmUtcmVzaXplIiwgIiVkIiwgJnZhbCkgPCAwKQorCQkJdmFsID0gMDsKKwkJaW5mby0+ZmVhdHVyZV9yZXNpemUgPSB2YWw7CiAJCWJyZWFrOwogCiAJY2FzZSBYZW5idXNTdGF0ZUNsb3Npbmc6CkBAIC01NDcsNCArNjk4LDYgQEAKIG1vZHVsZV9pbml0KHhlbmZiX2luaXQpOwogbW9kdWxlX2V4aXQoeGVuZmJfY2xlYW51cCk7CiAKK01PRFVMRV9ERVNDUklQVElPTigiWGVuIHZpcnR1YWwgZnJhbWVidWZmZXIgZGV2aWNlIGZyb250ZW5kIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVMoInhlbjp2ZmIiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpby5jIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvLmMKaW5kZXggMTM4NjY3OC4uNzA4NGU3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvLmMKKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvLmMKQEAgLTIsNiArMiw5IEBACiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC92aXJ0aW9fY29uZmlnLmg+CiAKKy8qIFVuaXF1ZSBudW1iZXJpbmcgZm9yIHZpcnRpbyBkZXZpY2VzLiAqLworc3RhdGljIHVuc2lnbmVkIGludCBkZXZfaW5kZXg7CisKIHN0YXRpYyBzc2l6ZV90IGRldmljZV9zaG93KHN0cnVjdCBkZXZpY2UgKl9kLAogCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKQEAgLTEyMSw5ICsxMjQsOSBAQAogCWlmIChlcnIpCiAJCWFkZF9zdGF0dXMoZGV2LCBWSVJUSU9fQ09ORklHX1NfRkFJTEVEKTsKIAllbHNlIHsKLQkJYWRkX3N0YXR1cyhkZXYsIFZJUlRJT19DT05GSUdfU19EUklWRVJfT0spOwogCQkvKiBUaGV5IHNob3VsZCBuZXZlciBoYXZlIHNldCBmZWF0dXJlIGJpdHMgYmV5b25kIDMyICovCiAJCWRldi0+Y29uZmlnLT5zZXRfZmVhdHVyZXMoZGV2LCBkZXYtPmZlYXR1cmVzWzBdKTsKKwkJYWRkX3N0YXR1cyhkZXYsIFZJUlRJT19DT05GSUdfU19EUklWRVJfT0spOwogCX0KIAlyZXR1cm4gZXJyOwogfQpAQCAtMTY2LDcgKzE2OSwxMCBAQAogCWludCBlcnI7CiAKIAlkZXYtPmRldi5idXMgPSAmdmlydGlvX2J1czsKLQlzcHJpbnRmKGRldi0+ZGV2LmJ1c19pZCwgIiV1IiwgZGV2LT5pbmRleCk7CisKKwkvKiBBc3NpZ24gYSB1bmlxdWUgZGV2aWNlIGluZGV4IGFuZCBoZW5jZSBuYW1lLiAqLworCWRldi0+aW5kZXggPSBkZXZfaW5kZXgrKzsKKwlzcHJpbnRmKGRldi0+ZGV2LmJ1c19pZCwgInZpcnRpbyV1IiwgZGV2LT5pbmRleCk7CiAKIAkvKiBXZSBhbHdheXMgc3RhcnQgYnkgcmVzZXR0aW5nIHRoZSBkZXZpY2UsIGluIGNhc2UgYSBwcmV2aW91cwogCSAqIGRyaXZlciBtZXNzZWQgaXQgdXAuICBUaGlzIGFsc28gdGVzdHMgdGhhdCBjb2RlIHBhdGggYSBsaXR0bGUuICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpLmMKaW5kZXggMjdlOWZjOS4uZWFlNzIzNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2kuYworKysgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpLmMKQEAgLTc4LDkgKzc4LDYgQEAKIAkuYnVzX2lkCQk9ICJ2aXJ0aW8tcGNpIiwKIH07CiAKLS8qIFVuaXF1ZSBudW1iZXJpbmcgZm9yIGRldmljZXMgdW5kZXIgdGhlIGt2bSByb290ICovCi1zdGF0aWMgdW5zaWduZWQgaW50IGRldl9pbmRleDsKLQogLyogQ29udmVydCBhIGdlbmVyaWMgdmlydGlvIGRldmljZSB0byBvdXIgc3RydWN0dXJlICovCiBzdGF0aWMgc3RydWN0IHZpcnRpb19wY2lfZGV2aWNlICp0b192cF9kZXZpY2Uoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpCiB7CkBAIC0zMjUsMTAgKzMyMiw2IEBACiAJaWYgKHZwX2RldiA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXNucHJpbnRmKHZwX2Rldi0+dmRldi5kZXYuYnVzX2lkLCBCVVNfSURfU0laRSwgInZpcnRpbyVkIiwgZGV2X2luZGV4KTsKLQl2cF9kZXYtPnZkZXYuaW5kZXggPSBkZXZfaW5kZXg7Ci0JZGV2X2luZGV4Kys7Ci0KIAl2cF9kZXYtPnZkZXYuZGV2LnBhcmVudCA9ICZ2aXJ0aW9fcGNpX3Jvb3Q7CiAJdnBfZGV2LT52ZGV2LmNvbmZpZyA9ICZ2aXJ0aW9fcGNpX2NvbmZpZ19vcHM7CiAJdnBfZGV2LT5wY2lfZGV2ID0gcGNpX2RldjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jCmluZGV4IDkzN2E0OWQuLjcyYmY4YmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMKKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYwpAQCAtMjI3LDcgKzIyNyw2IEBACiAJc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnEgPSB0b192dnEoX3ZxKTsKIAogCVNUQVJUX1VTRSh2cSk7Ci0JQlVHX09OKCEodnEtPnZyaW5nLmF2YWlsLT5mbGFncyAmIFZSSU5HX0FWQUlMX0ZfTk9fSU5URVJSVVBUKSk7CiAKIAkvKiBXZSBvcHRpbWlzdGljYWxseSB0dXJuIGJhY2sgb24gaW50ZXJydXB0cywgdGhlbiBjaGVjayBpZiB0aGVyZSB3YXMKIAkgKiBtb3JlIHRvIGRvLiAqLwpAQCAtMjU0LDEzICsyNTMsNiBAQAogCWlmICh1bmxpa2VseSh2cS0+YnJva2VuKSkKIAkJcmV0dXJuIElSUV9IQU5ETEVEOwogCi0JLyogT3RoZXIgc2lkZSBtYXkgaGF2ZSBtaXNzZWQgdXMgdHVybmluZyBvZmYgdGhlIGludGVycnVwdCwKLQkgKiBidXQgd2Ugc2hvdWxkIHByZXNlcnZlIGRpc2FibGUgc2VtYW50aWMgZm9yIHZpcnRpbyB1c2Vycy4gKi8KLQlpZiAodW5saWtlbHkodnEtPnZyaW5nLmF2YWlsLT5mbGFncyAmIFZSSU5HX0FWQUlMX0ZfTk9fSU5URVJSVVBUKSkgewotCQlwcl9kZWJ1ZygidmlydHF1ZXVlIGludGVycnVwdCBhZnRlciBkaXNhYmxlIGZvciAlcFxuIiwgdnEpOwotCQlyZXR1cm4gSVJRX0hBTkRMRUQ7Ci0JfQotCiAJcHJfZGVidWcoInZpcnRxdWV1ZSBjYWxsYmFjayBmb3IgJXAgKCVwKVxuIiwgdnEsIHZxLT52cS5jYWxsYmFjayk7CiAJaWYgKHZxLT52cS5jYWxsYmFjaykKIAkJdnEtPnZxLmNhbGxiYWNrKCZ2cS0+dnEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9LY29uZmlnIGIvZHJpdmVycy93YXRjaGRvZy9LY29uZmlnCmluZGV4IDI1NGQxMTUuLmNjYjc4ZjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvS2NvbmZpZworKysgYi9kcml2ZXJzL3dhdGNoZG9nL0tjb25maWcKQEAgLTI5NSw2ICsyOTUsMTkgQEAKIAogCSAgTW9zdCBwZW9wbGUgd2lsbCBzYXkgTi4KIAorY29uZmlnIEdFT0RFX1dEVAorCXRyaXN0YXRlICJBTUQgR2VvZGUgQ1M1NTM1L0NTNTUzNiBXYXRjaGRvZyIKKwlkZXBlbmRzIG9uIE1HRU9ERV9MWAorCWhlbHAKKwkgIFRoaXMgZHJpdmVyIGVuYWJsZXMgYSB3YXRjaGRvZyBjYXBhYmlsaXR5IGJ1aWx0IGludG8gdGhlCisJICBDUzU1MzUvQ1M1NTM2IGNvbXBhbmlvbiBjaGlwcyBmb3IgdGhlIEFNRCBHZW9kZSBHWCBhbmQgTFgKKwkgIHByb2Nlc3NvcnMuICBUaGlzIHdhdGNoZG9nIHdhdGNoZXMgeW91ciBrZXJuZWwgdG8gbWFrZSBzdXJlCisJICBpdCBkb2Vzbid0IGZyZWV6ZSwgYW5kIGlmIGl0IGRvZXMsIGl0IHJlYm9vdHMgeW91ciBjb21wdXRlciBhZnRlcgorCSAgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lLgorCisJICBZb3UgY2FuIGNvbXBpbGUgdGhpcyBkcml2ZXIgZGlyZWN0bHkgaW50byB0aGUga2VybmVsLCBvciB1c2UKKwkgIGl0IGFzIGEgbW9kdWxlLiAgVGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBnZW9kZXdkdC4KKwogY29uZmlnIFNDNTIwX1dEVAogCXRyaXN0YXRlICJBTUQgRWxhbiBTQzUyMCBwcm9jZXNzb3IgV2F0Y2hkb2ciCiAJZGVwZW5kcyBvbiBYODYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvd2F0Y2hkb2cvTWFrZWZpbGUgYi9kcml2ZXJzL3dhdGNoZG9nL01ha2VmaWxlCmluZGV4IGYzZmIxNzAuLjI1YjM1MmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvTWFrZWZpbGUKKysrIGIvZHJpdmVycy93YXRjaGRvZy9NYWtlZmlsZQpAQCAtNTksNiArNTksNyBAQAogb2JqLSQoQ09ORklHX0FEVkFOVEVDSF9XRFQpICs9IGFkdmFudGVjaHdkdC5vCiBvYmotJChDT05GSUdfQUxJTTE1MzVfV0RUKSArPSBhbGltMTUzNV93ZHQubwogb2JqLSQoQ09ORklHX0FMSU03MTAxX1dEVCkgKz0gYWxpbTcxMDFfd2R0Lm8KK29iai0kKENPTkZJR19HRU9ERV9XRFQpICs9IGdlb2Rld2R0Lm8KIG9iai0kKENPTkZJR19TQzUyMF9XRFQpICs9IHNjNTIwX3dkdC5vCiBvYmotJChDT05GSUdfRVVST1RFQ0hfV0RUKSArPSBldXJvdGVjaHdkdC5vCiBvYmotJChDT05GSUdfSUI3MDBfV0RUKSArPSBpYjcwMHdkdC5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2JmaW5fd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2JmaW5fd2R0LmMKaW5kZXggMTIzNzExMy4uMDNiM2UzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9iZmluX3dkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvYmZpbl93ZHQuYwpAQCAtMjksNyArMjksOCBAQAogCiAjZGVmaW5lIHN0YW1wKGZtdCwgYXJncy4uLikgcHJfZGVidWcoIiVzOiVpOiAiIGZtdCAiXG4iLCBfX2Z1bmNfXywgX19MSU5FX18sICMjIGFyZ3MpCiAjZGVmaW5lIHN0YW1waXQoKSBzdGFtcCgiaGVyZSBpIGFtIikKLSNkZWZpbmUgcHJfaW5pdChmbXQsIGFyZ3MuLi4pICh7IHN0YXRpYyBjb25zdCBfX2luaXRkYXRhIGNoYXIgX19mbXRbXSA9IGZtdDsgcHJpbnRrKF9fZm10LCAjIyBhcmdzKTsgfSkKKyNkZWZpbmUgcHJfZGV2aW5pdChmbXQsIGFyZ3MuLi4pICh7IHN0YXRpYyBjb25zdCBfX2RldmluaXRjb25zdCBjaGFyIF9fZm10W10gPSBmbXQ7IHByaW50ayhfX2ZtdCwgIyMgYXJncyk7IH0pCisjZGVmaW5lIHByX2luaXQoZm10LCBhcmdzLi4uKSAoeyBzdGF0aWMgY29uc3QgX19pbml0Y29uc3QgY2hhciBfX2ZtdFtdID0gZm10OyBwcmludGsoX19mbXQsICMjIGFyZ3MpOyB9KQogCiAjZGVmaW5lIFdBVENIRE9HX05BTUUgImJmaW4td2R0IgogI2RlZmluZSBQRlggV0FUQ0hET0dfTkFNRSAiOiAiCkBAIC0zNzcsMjAgKzM3OCw2IEBACiAjIGRlZmluZSBiZmluX3dkdF9yZXN1bWUgTlVMTAogI2VuZGlmCiAKLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIGJmaW5fd2R0X2RldmljZSA9IHsKLQkubmFtZSAgICAgICAgICA9IFdBVENIRE9HX05BTUUsCi0JLmlkICAgICAgICAgICAgPSAtMSwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGJmaW5fd2R0X2RyaXZlciA9IHsKLQkuZHJpdmVyICAgID0gewotCQkubmFtZSAgPSBXQVRDSERPR19OQU1FLAotCQkub3duZXIgPSBUSElTX01PRFVMRSwKLQl9LAotCS5zdXNwZW5kICAgPSBiZmluX3dkdF9zdXNwZW5kLAotCS5yZXN1bWUgICAgPSBiZmluX3dkdF9yZXN1bWUsCi19OwotCiBzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBiZmluX3dkdF9mb3BzID0gewogCS5vd25lciAgICA9IFRISVNfTU9EVUxFLAogCS5sbHNlZWsgICA9IG5vX2xsc2VlaywKQEAgLTQxOCwxMCArNDA1LDY2IEBACiB9OwogCiAvKioKKyAqCWJmaW5fd2R0X3Byb2JlIC0gSW5pdGlhbGl6ZSBtb2R1bGUKKyAqCisgKglSZWdpc3RlcnMgdGhlIG1pc2MgZGV2aWNlIGFuZCBub3RpZmllciBoYW5kbGVyLiAgQWN0dWFsIGRldmljZQorICoJaW5pdGlhbGl6YXRpb24gaXMgaGFuZGxlZCBieSBiZmluX3dkdF9vcGVuKCkuCisgKi8KK3N0YXRpYyBpbnQgX19kZXZpbml0IGJmaW5fd2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJaW50IHJldDsKKworCXJldCA9IHJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmYmZpbl93ZHRfbm90aWZpZXIpOworCWlmIChyZXQpIHsKKwkJcHJfZGV2aW5pdChLRVJOX0VSUiBQRlggImNhbm5vdCByZWdpc3RlciByZWJvb3Qgbm90aWZpZXIgKGVycj0lZClcbiIsIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJcmV0ID0gbWlzY19yZWdpc3RlcigmYmZpbl93ZHRfbWlzY2Rldik7CisJaWYgKHJldCkgeworCQlwcl9kZXZpbml0KEtFUk5fRVJSIFBGWCAiY2Fubm90IHJlZ2lzdGVyIG1pc2NkZXYgb24gbWlub3I9JWQgKGVycj0lZClcbiIsCisJCSAgICAgICBXQVRDSERPR19NSU5PUiwgcmV0KTsKKwkJdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIoJmJmaW5fd2R0X25vdGlmaWVyKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlwcl9kZXZpbml0KEtFUk5fSU5GTyBQRlggImluaXRpYWxpemVkOiB0aW1lb3V0PSVkIHNlYyAobm93YXlvdXQ9JWQpXG4iLAorCSAgICAgICB0aW1lb3V0LCBub3dheW91dCk7CisKKwlyZXR1cm4gMDsKK30KKworLyoqCisgKgliZmluX3dkdF9yZW1vdmUgLSBJbml0aWFsaXplIG1vZHVsZQorICoKKyAqCVVucmVnaXN0ZXJzIHRoZSBtaXNjIGRldmljZSBhbmQgbm90aWZpZXIgaGFuZGxlci4gIEFjdHVhbCBkZXZpY2UKKyAqCWRlaW5pdGlhbGl6YXRpb24gaXMgaGFuZGxlZCBieSBiZmluX3dkdF9jbG9zZSgpLgorICovCitzdGF0aWMgaW50IF9fZGV2ZXhpdCBiZmluX3dkdF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwltaXNjX2RlcmVnaXN0ZXIoJmJmaW5fd2R0X21pc2NkZXYpOworCXVucmVnaXN0ZXJfcmVib290X25vdGlmaWVyKCZiZmluX3dkdF9ub3RpZmllcik7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpiZmluX3dkdF9kZXZpY2U7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGJmaW5fd2R0X2RyaXZlciA9IHsKKwkucHJvYmUgICAgID0gYmZpbl93ZHRfcHJvYmUsCisJLnJlbW92ZSAgICA9IF9fZGV2ZXhpdF9wKGJmaW5fd2R0X3JlbW92ZSksCisJLnN1c3BlbmQgICA9IGJmaW5fd2R0X3N1c3BlbmQsCisJLnJlc3VtZSAgICA9IGJmaW5fd2R0X3Jlc3VtZSwKKwkuZHJpdmVyICAgID0geworCQkubmFtZSAgPSBXQVRDSERPR19OQU1FLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwl9LAorfTsKKworLyoqCiAgKgliZmluX3dkdF9pbml0IC0gSW5pdGlhbGl6ZSBtb2R1bGUKICAqCi0gKglSZWdpc3RlcnMgdGhlIGRldmljZSBhbmQgbm90aWZpZXIgaGFuZGxlci4gQWN0dWFsIGRldmljZQotICoJaW5pdGlhbGl6YXRpb24gaXMgaGFuZGxlZCBieSBiZmluX3dkdF9vcGVuKCkuCisgKglDaGVja3MgdGhlIG1vZHVsZSBwYXJhbXMgYW5kIHJlZ2lzdGVycyB0aGUgcGxhdGZvcm0gZGV2aWNlICYgZHJpdmVyLgorICoJUmVhbCB3b3JrIGlzIGluIHRoZSBwbGF0Zm9ybSBwcm9iZSBmdW5jdGlvbi4KICAqLwogc3RhdGljIGludCBfX2luaXQgYmZpbl93ZHRfaW5pdCh2b2lkKQogewpAQCAtNDM2LDQ0ICs0NzksMzIgQEAKIAkvKiBTaW5jZSB0aGlzIGlzIGFuIG9uLWNoaXAgZGV2aWNlIGFuZCBuZWVkcyBubyBib2FyZC1zcGVjaWZpYwogCSAqIHJlc291cmNlcywgd2UnbGwgaGFuZGxlIGFsbCB0aGUgcGxhdGZvcm0gZGV2aWNlIHN0dWZmIGhlcmUuCiAJICovCi0JcmV0ID0gcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyKCZiZmluX3dkdF9kZXZpY2UpOwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcHJvYmUoJmJmaW5fd2R0X2RyaXZlciwgTlVMTCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQotCXJldCA9IHJlZ2lzdGVyX3JlYm9vdF9ub3RpZmllcigmYmZpbl93ZHRfbm90aWZpZXIpOworCXJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcigmYmZpbl93ZHRfZHJpdmVyKTsKIAlpZiAocmV0KSB7Ci0JCXByX2luaXQoS0VSTl9FUlIgUEZYICJjYW5ub3QgcmVnaXN0ZXIgcmVib290IG5vdGlmaWVyIChlcnI9JWQpXG4iLCByZXQpOworCQlwcl9pbml0KEtFUk5fRVJSIFBGWCAidW5hYmxlIHRvIHJlZ2lzdGVyIGRyaXZlclxuIik7CiAJCXJldHVybiByZXQ7CiAJfQogCi0JcmV0ID0gbWlzY19yZWdpc3RlcigmYmZpbl93ZHRfbWlzY2Rldik7Ci0JaWYgKHJldCkgewotCQlwcl9pbml0KEtFUk5fRVJSIFBGWCAiY2Fubm90IHJlZ2lzdGVyIG1pc2NkZXYgb24gbWlub3I9JWQgKGVycj0lZClcbiIsCi0JCSAgICAgICBXQVRDSERPR19NSU5PUiwgcmV0KTsKLQkJdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIoJmJmaW5fd2R0X25vdGlmaWVyKTsKLQkJcmV0dXJuIHJldDsKKwliZmluX3dkdF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXJfc2ltcGxlKFdBVENIRE9HX05BTUUsIC0xLCBOVUxMLCAwKTsKKwlpZiAoSVNfRVJSKGJmaW5fd2R0X2RldmljZSkpIHsKKwkJcHJfaW5pdChLRVJOX0VSUiBQRlggInVuYWJsZSB0byByZWdpc3RlciBkZXZpY2VcbiIpOworCQlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmYmZpbl93ZHRfZHJpdmVyKTsKKwkJcmV0dXJuIFBUUl9FUlIoYmZpbl93ZHRfZGV2aWNlKTsKIAl9CiAKLQlwcl9pbml0KEtFUk5fSU5GTyBQRlggImluaXRpYWxpemVkOiB0aW1lb3V0PSVkIHNlYyAobm93YXlvdXQ9JWQpXG4iLAotCSAgICAgICB0aW1lb3V0LCBub3dheW91dCk7Ci0KIAlyZXR1cm4gMDsKIH0KIAogLyoqCiAgKgliZmluX3dkdF9leGl0IC0gRGVpbml0aWFsaXplIG1vZHVsZQogICoKLSAqCVVucmVnaXN0ZXJzIHRoZSBkZXZpY2UgYW5kIG5vdGlmaWVyIGhhbmRsZXIuIEFjdHVhbCBkZXZpY2UKLSAqCWRlaW5pdGlhbGl6YXRpb24gaXMgaGFuZGxlZCBieSBiZmluX3dkdF9jbG9zZSgpLgorICoJQmFjayBvdXQgdGhlIHBsYXRmb3JtIGRldmljZSAmIGRyaXZlciBzdGVwcy4gIFJlYWwgd29yayBpcyBpbiB0aGUKKyAqCXBsYXRmb3JtIHJlbW92ZSBmdW5jdGlvbi4KICAqLwogc3RhdGljIHZvaWQgX19leGl0IGJmaW5fd2R0X2V4aXQodm9pZCkKIHsKLQltaXNjX2RlcmVnaXN0ZXIoJmJmaW5fd2R0X21pc2NkZXYpOwotCXVucmVnaXN0ZXJfcmVib290X25vdGlmaWVyKCZiZmluX3dkdF9ub3RpZmllcik7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoYmZpbl93ZHRfZGV2aWNlKTsKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmYmZpbl93ZHRfZHJpdmVyKTsKIH0KIAogbW9kdWxlX2luaXQoYmZpbl93ZHRfaW5pdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2Jvb2tlX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9ib29rZV93ZHQuYwppbmRleCBkMzYyZjViLi5jMWJhMGRiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9ib29rZV93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2Jvb2tlX3dkdC5jCkBAIC0xLDEyICsxLDEwIEBACiAvKgotICogZHJpdmVycy9jaGFyL3dhdGNoZG9nL2Jvb2tlX3dkdC5jCi0gKgogICogV2F0Y2hkb2cgdGltZXIgZm9yIFBvd2VyUEMgQm9vay1FIHN5c3RlbXMKICAqCiAgKiBBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jawogICogTWFpbnRhaW5lcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAqCi0gKiBDb3B5cmlnaHQgMjAwNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKiBDb3B5cmlnaHQgMjAwNSwgMjAwOCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlICBpdCBhbmQvb3IgbW9kaWZ5IGl0CiAgKiB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKQEAgLTE2LDYgKzE0LDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L25vdGlmaWVyLmg+CiAjaW5jbHVkZSA8bGludXgvd2F0Y2hkb2cuaD4KQEAgLTM4LDcgKzM3LDcgQEAKICNkZWZpbmUgV0RUX1BFUklPRF9ERUZBVUxUIDMJLyogUmVmZXIgdG8gdGhlIFBQQzQweCBhbmQgUFBDNHh4IG1hbnVhbHMgKi8KICNlbmRpZgkJCQkvKiBmb3IgdGltaW5nIGluZm9ybWF0aW9uICovCiAKLXUzMiBib29rZV93ZHRfZW5hYmxlZCA9IDA7Cit1MzIgYm9va2Vfd2R0X2VuYWJsZWQ7CiB1MzIgYm9va2Vfd2R0X3BlcmlvZCA9IFdEVF9QRVJJT0RfREVGQVVMVDsKIAogI2lmZGVmCUNPTkZJR19GU0xfQk9PS0UKQEAgLTQ3LDMzICs0NiwzMSBAQAogI2RlZmluZSBXRFRQKHgpCQkoVENSX1dQKHgpKQogI2VuZGlmCiAKLS8qCi0gKiBib29rZV93ZHRfcGluZzoKLSAqLwotc3RhdGljIF9faW5saW5lX18gdm9pZCBib29rZV93ZHRfcGluZyh2b2lkKQorc3RhdGljIERFRklORV9TUElOTE9DSyhib29rZV93ZHRfbG9jayk7CisKK3N0YXRpYyB2b2lkIF9fYm9va2Vfd2R0X3Bpbmcodm9pZCAqZGF0YSkKIHsKIAltdHNwcihTUFJOX1RTUiwgVFNSX0VOV3xUU1JfV0lTKTsKIH0KIAotLyoKLSAqIGJvb2tlX3dkdF9lbmFibGU6Ci0gKi8KLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgYm9va2Vfd2R0X2VuYWJsZSh2b2lkKQorc3RhdGljIHZvaWQgYm9va2Vfd2R0X3Bpbmcodm9pZCkKK3sKKwlvbl9lYWNoX2NwdShfX2Jvb2tlX3dkdF9waW5nLCBOVUxMLCAwLCAwKTsKK30KKworc3RhdGljIHZvaWQgX19ib29rZV93ZHRfZW5hYmxlKHZvaWQgKmRhdGEpCiB7CiAJdTMyIHZhbDsKIAogCS8qIGNsZWFyIHN0YXR1cyBiZWZvcmUgZW5hYmxpbmcgd2F0Y2hkb2cgKi8KLQlib29rZV93ZHRfcGluZygpOworCV9fYm9va2Vfd2R0X3BpbmcoTlVMTCk7CiAJdmFsID0gbWZzcHIoU1BSTl9UQ1IpOwogCXZhbCB8PSAoVENSX1dJRXxUQ1JfV1JDKFdSQ19DSElQKXxXRFRQKGJvb2tlX3dkdF9wZXJpb2QpKTsKIAogCW10c3ByKFNQUk5fVENSLCB2YWwpOwogfQogCi0vKgotICogYm9va2Vfd2R0X3dyaXRlOgotICovCi1zdGF0aWMgc3NpemVfdCBib29rZV93ZHRfd3JpdGUgKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAorc3RhdGljIHNzaXplX3QgYm9va2Vfd2R0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqYnVmLAogCQkJCXNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zKQogewogCWJvb2tlX3dkdF9waW5nKCk7CkBAIC04MSwxNSArNzgsMTEgQEAKIH0KIAogc3RhdGljIHN0cnVjdCB3YXRjaGRvZ19pbmZvIGlkZW50ID0gewotICAub3B0aW9ucyA9IFdESU9GX1NFVFRJTUVPVVQgfCBXRElPRl9LRUVQQUxJVkVQSU5HLAotICAuZmlybXdhcmVfdmVyc2lvbiA9IDAsCi0gIC5pZGVudGl0eSA9ICJQb3dlclBDIEJvb2stRSBXYXRjaGRvZyIsCisJLm9wdGlvbnMgPSBXRElPRl9TRVRUSU1FT1VUIHwgV0RJT0ZfS0VFUEFMSVZFUElORywKKwkuaWRlbnRpdHkgPSAiUG93ZXJQQyBCb29rLUUgV2F0Y2hkb2ciLAogfTsKIAotLyoKLSAqIGJvb2tlX3dkdF9pb2N0bDoKLSAqLwotc3RhdGljIGludCBib29rZV93ZHRfaW9jdGwgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLAorc3RhdGljIGludCBib29rZV93ZHRfaW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCiB7CiAJdTMyIHRtcCA9IDA7CkBAIC05Nyw3ICs5MCw3IEBACiAKIAlzd2l0Y2ggKGNtZCkgewogCWNhc2UgV0RJT0NfR0VUU1VQUE9SVDoKLQkJaWYgKGNvcHlfdG9fdXNlciAoKHN0cnVjdCB3YXRjaGRvZ19pbmZvIF9fdXNlciAqKSBhcmcsICZpZGVudCwKKwkJaWYgKGNvcHlfdG9fdXNlcigoc3RydWN0IHdhdGNoZG9nX2luZm8gX191c2VyICopYXJnLCAmaWRlbnQsCiAJCQkJc2l6ZW9mKHN0cnVjdCB3YXRjaGRvZ19pbmZvKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAljYXNlIFdESU9DX0dFVFNUQVRVUzoKQEAgLTEzMiwzMyArMTI1LDMzIEBACiAKIAlyZXR1cm4gMDsKIH0KLS8qCi0gKiBib29rZV93ZHRfb3BlbjoKLSAqLwotc3RhdGljIGludCBib29rZV93ZHRfb3BlbiAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCisKK3N0YXRpYyBpbnQgYm9va2Vfd2R0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJc3Bpbl9sb2NrKCZib29rZV93ZHRfbG9jayk7CiAJaWYgKGJvb2tlX3dkdF9lbmFibGVkID09IDApIHsKIAkJYm9va2Vfd2R0X2VuYWJsZWQgPSAxOwotCQlib29rZV93ZHRfZW5hYmxlKCk7Ci0JCXByaW50ayAoS0VSTl9JTkZPICJQb3dlclBDIEJvb2stRSBXYXRjaGRvZyBUaW1lciBFbmFibGVkICh3ZHRfcGVyaW9kPSVkKVxuIiwKLQkJCQlib29rZV93ZHRfcGVyaW9kKTsKKwkJb25fZWFjaF9jcHUoX19ib29rZV93ZHRfZW5hYmxlLCBOVUxMLCAwLCAwKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUG93ZXJQQyBCb29rLUUgV2F0Y2hkb2cgVGltZXIgRW5hYmxlZCAiCisJCQkJIih3ZHRfcGVyaW9kPSVkKVxuIiwgYm9va2Vfd2R0X3BlcmlvZCk7CiAJfQorCXNwaW5fdW5sb2NrKCZib29rZV93ZHRfbG9jayk7CiAKIAlyZXR1cm4gbm9uc2Vla2FibGVfb3Blbihpbm9kZSwgZmlsZSk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGJvb2tlX3dkdF9mb3BzID0gewotICAub3duZXIgPSBUSElTX01PRFVMRSwKLSAgLmxsc2VlayA9IG5vX2xsc2VlaywKLSAgLndyaXRlID0gYm9va2Vfd2R0X3dyaXRlLAotICAuaW9jdGwgPSBib29rZV93ZHRfaW9jdGwsCi0gIC5vcGVuID0gYm9va2Vfd2R0X29wZW4sCisJLm93bmVyID0gVEhJU19NT0RVTEUsCisJLmxsc2VlayA9IG5vX2xsc2VlaywKKwkud3JpdGUgPSBib29rZV93ZHRfd3JpdGUsCisJLmlvY3RsID0gYm9va2Vfd2R0X2lvY3RsLAorCS5vcGVuID0gYm9va2Vfd2R0X29wZW4sCiB9OwogCiBzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgYm9va2Vfd2R0X21pc2NkZXYgPSB7Ci0gIC5taW5vciA9IFdBVENIRE9HX01JTk9SLAotICAubmFtZSA9ICJ3YXRjaGRvZyIsCi0gIC5mb3BzID0gJmJvb2tlX3dkdF9mb3BzLAorCS5taW5vciA9IFdBVENIRE9HX01JTk9SLAorCS5uYW1lID0gIndhdGNoZG9nIiwKKwkuZm9wcyA9ICZib29rZV93ZHRfZm9wcywKIH07CiAKIHN0YXRpYyB2b2lkIF9fZXhpdCBib29rZV93ZHRfZXhpdCh2b2lkKQpAQCAtMTY2LDI4ICsxNTksMjcgQEAKIAltaXNjX2RlcmVnaXN0ZXIoJmJvb2tlX3dkdF9taXNjZGV2KTsKIH0KIAotLyoKLSAqIGJvb2tlX3dkdF9pbml0OgotICovCiBzdGF0aWMgaW50IF9faW5pdCBib29rZV93ZHRfaW5pdCh2b2lkKQogewogCWludCByZXQgPSAwOwogCi0JcHJpbnRrIChLRVJOX0lORk8gIlBvd2VyUEMgQm9vay1FIFdhdGNoZG9nIFRpbWVyIExvYWRlZFxuIik7CisJcHJpbnRrKEtFUk5fSU5GTyAiUG93ZXJQQyBCb29rLUUgV2F0Y2hkb2cgVGltZXIgTG9hZGVkXG4iKTsKIAlpZGVudC5maXJtd2FyZV92ZXJzaW9uID0gY3VyX2NwdV9zcGVjLT5wdnJfdmFsdWU7CiAKIAlyZXQgPSBtaXNjX3JlZ2lzdGVyKCZib29rZV93ZHRfbWlzY2Rldik7CiAJaWYgKHJldCkgewotCQlwcmludGsgKEtFUk5fQ1JJVCAiQ2Fubm90IHJlZ2lzdGVyIG1pc2NkZXYgb24gbWlub3I9JWQgKGVycj0lZClcbiIsCisJCXByaW50ayhLRVJOX0NSSVQgIkNhbm5vdCByZWdpc3RlciBtaXNjZGV2IG9uIG1pbm9yPSVkOiAlZFxuIiwKIAkJCQlXQVRDSERPR19NSU5PUiwgcmV0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKKwlzcGluX2xvY2soJmJvb2tlX3dkdF9sb2NrKTsKIAlpZiAoYm9va2Vfd2R0X2VuYWJsZWQgPT0gMSkgewotCQlwcmludGsgKEtFUk5fSU5GTyAiUG93ZXJQQyBCb29rLUUgV2F0Y2hkb2cgVGltZXIgRW5hYmxlZCAod2R0X3BlcmlvZD0lZClcbiIsCi0JCQkJYm9va2Vfd2R0X3BlcmlvZCk7Ci0JCWJvb2tlX3dkdF9lbmFibGUoKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiUG93ZXJQQyBCb29rLUUgV2F0Y2hkb2cgVGltZXIgRW5hYmxlZCAiCisJCQkJIih3ZHRfcGVyaW9kPSVkKVxuIiwgYm9va2Vfd2R0X3BlcmlvZCk7CisJCW9uX2VhY2hfY3B1KF9fYm9va2Vfd2R0X2VuYWJsZSwgTlVMTCwgMCwgMCk7CiAJfQorCXNwaW5fdW5sb2NrKCZib29rZV93ZHRfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9nZW9kZXdkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9nZW9kZXdkdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwZDA5Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL3dhdGNoZG9nL2dlb2Rld2R0LmMKQEAgLTAsMCArMSwzMDggQEAKKy8qIFdhdGNoZG9nIHRpbWVyIGZvciB0aGUgR2VvZGUgR1gvTFggd2l0aCB0aGUgQ1M1NTM1L0NTNTUzNiBjb21wYW5pb24gY2hpcAorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA3LCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbgorICogMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqLworCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3dhdGNoZG9nLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKworI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaW5jbHVkZSA8YXNtL2dlb2RlLmg+CisKKyNkZWZpbmUgR0VPREVXRFRfSFogNTAwCisjZGVmaW5lIEdFT0RFV0RUX1NDQUxFIDYKKyNkZWZpbmUgR0VPREVXRFRfTUFYX1NFQ09ORFMgMTMxCisKKyNkZWZpbmUgV0RUX0ZMQUdTX09QRU4gMQorI2RlZmluZSBXRFRfRkxBR1NfT1JQSEFOIDIKKworI2RlZmluZSBEUlZfTkFNRSAiZ2VvZGV3ZHQiCisjZGVmaW5lIFdBVENIRE9HX05BTUUgIkdlb2RlIEdYL0xYIFdEVCIKKyNkZWZpbmUgV0FUQ0hET0dfVElNRU9VVCA2MAorCitzdGF0aWMgaW50IHRpbWVvdXQgPSBXQVRDSERPR19USU1FT1VUOworbW9kdWxlX3BhcmFtKHRpbWVvdXQsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKHRpbWVvdXQsICJXYXRjaGRvZyB0aW1lb3V0IGluIHNlY29uZHMuIDE8PSB0aW1lb3V0IDw9MTMxLCBkZWZhdWx0PSIgX19NT0RVTEVfU1RSSU5HKFdBVENIRE9HX1RJTUVPVVQpICIuIik7CisKK3N0YXRpYyBpbnQgbm93YXlvdXQgPSBXQVRDSERPR19OT1dBWU9VVDsKK21vZHVsZV9wYXJhbShub3dheW91dCwgaW50LCAwKTsKK01PRFVMRV9QQVJNX0RFU0Mobm93YXlvdXQsICJXYXRjaGRvZyBjYW5ub3QgYmUgc3RvcHBlZCBvbmNlIHN0YXJ0ZWQgKGRlZmF1bHQ9IiBfX01PRFVMRV9TVFJJTkcoV0FUQ0hET0dfTk9XQVlPVVQpICIpIik7CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpnZW9kZXdkdF9wbGF0Zm9ybV9kZXZpY2U7CitzdGF0aWMgdW5zaWduZWQgbG9uZyB3ZHRfZmxhZ3M7CitzdGF0aWMgaW50IHdkdF90aW1lcjsKK3N0YXRpYyBpbnQgc2FmZV9jbG9zZTsKKworc3RhdGljIHZvaWQgZ2VvZGV3ZHRfcGluZyh2b2lkKQoreworCS8qIFN0b3AgdGhlIGNvdW50ZXIgKi8KKwlnZW9kZV9tZmdwdF93cml0ZSh3ZHRfdGltZXIsIE1GR1BUX1JFR19TRVRVUCwgMCk7CisKKwkvKiBSZXNldCB0aGUgY291bnRlciAqLworCWdlb2RlX21mZ3B0X3dyaXRlKHdkdF90aW1lciwgTUZHUFRfUkVHX0NPVU5URVIsIDApOworCisJLyogRW5hYmxlIHRoZSBjb3VudGVyICovCisJZ2VvZGVfbWZncHRfd3JpdGUod2R0X3RpbWVyLCBNRkdQVF9SRUdfU0VUVVAsIE1GR1BUX1NFVFVQX0NOVEVOKTsKK30KKworc3RhdGljIHZvaWQgZ2VvZGV3ZHRfZGlzYWJsZSh2b2lkKQoreworCWdlb2RlX21mZ3B0X3dyaXRlKHdkdF90aW1lciwgTUZHUFRfUkVHX1NFVFVQLCAwKTsKKwlnZW9kZV9tZmdwdF93cml0ZSh3ZHRfdGltZXIsIE1GR1BUX1JFR19DT1VOVEVSLCAwKTsKK30KKworc3RhdGljIGludCBnZW9kZXdkdF9zZXRfaGVhcnRiZWF0KGludCB2YWwpCit7CisJaWYgKHZhbCA8IDEgfHwgdmFsID4gR0VPREVXRFRfTUFYX1NFQ09ORFMpCisJCXJldHVybiAtRUlOVkFMOworCisJZ2VvZGVfbWZncHRfd3JpdGUod2R0X3RpbWVyLCBNRkdQVF9SRUdfU0VUVVAsIDApOworCWdlb2RlX21mZ3B0X3dyaXRlKHdkdF90aW1lciwgTUZHUFRfUkVHX0NNUDIsIHZhbCAqIEdFT0RFV0RUX0haKTsKKwlnZW9kZV9tZmdwdF93cml0ZSh3ZHRfdGltZXIsIE1GR1BUX1JFR19DT1VOVEVSLCAwKTsKKwlnZW9kZV9tZmdwdF93cml0ZSh3ZHRfdGltZXIsIE1GR1BUX1JFR19TRVRVUCwgTUZHUFRfU0VUVVBfQ05URU4pOworCisJdGltZW91dCA9IHZhbDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZ2VvZGV3ZHRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKyAgICAgICAgaWYgKHRlc3RfYW5kX3NldF9iaXQoV0RUX0ZMQUdTX09QRU4sICZ3ZHRfZmxhZ3MpKQorICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisKKyAgICAgICAgaWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoV0RUX0ZMQUdTX09SUEhBTiwgJndkdF9mbGFncykpCisgICAgICAgICAgICAgICAgX19tb2R1bGVfZ2V0KFRISVNfTU9EVUxFKTsKKworCWdlb2Rld2R0X3BpbmcoKTsKKyAgICAgICAgcmV0dXJuIG5vbnNlZWthYmxlX29wZW4oaW5vZGUsIGZpbGUpOworfQorCitzdGF0aWMgaW50CitnZW9kZXdkdF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWlmIChzYWZlX2Nsb3NlKSB7CisJCWdlb2Rld2R0X2Rpc2FibGUoKTsKKwkJbW9kdWxlX3B1dChUSElTX01PRFVMRSk7CisJfQorCWVsc2UgeworCQlwcmludGsoS0VSTl9DUklUICJVbmV4cGVjdGVkIGNsb3NlIC0gd2F0Y2hkb2cgaXMgbm90IHN0b3BwaW5nLlxuIik7CisJCWdlb2Rld2R0X3BpbmcoKTsKKworCQlzZXRfYml0KFdEVF9GTEFHU19PUlBIQU4sICZ3ZHRfZmxhZ3MpOworCX0KKworCWNsZWFyX2JpdChXRFRfRkxBR1NfT1BFTiwgJndkdF9mbGFncyk7CisJc2FmZV9jbG9zZSA9IDA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitnZW9kZXdkdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmRhdGEsIHNpemVfdCBsZW4sCisJICAgICAgIGxvZmZfdCAqcHBvcykKK3sKKyAgICAgICAgaWYobGVuKSB7CisJCWlmICghbm93YXlvdXQpIHsKKwkJCXNpemVfdCBpOworCQkJc2FmZV9jbG9zZSA9IDA7CisKKwkJCWZvciAoaSA9IDA7IGkgIT0gbGVuOyBpKyspIHsKKwkJCQljaGFyIGM7CisKKwkJCQlpZiAoZ2V0X3VzZXIoYywgZGF0YSArIGkpKQorCQkJCQlyZXR1cm4gLUVGQVVMVDsKKworCQkJCWlmIChjID09ICdWJykKKwkJCQkJc2FmZV9jbG9zZSA9IDE7CisJCQl9CisJCX0KKworCQlnZW9kZXdkdF9waW5nKCk7CisJfQorCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBpbnQKK2dlb2Rld2R0X2lvY3RsKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCSAgICAgICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwl2b2lkIF9fdXNlciAqYXJncCA9ICh2b2lkIF9fdXNlciAqKWFyZzsKKwlpbnQgX191c2VyICpwID0gYXJncDsKKwlpbnQgaW50ZXJ2YWw7CisKKwlzdGF0aWMgc3RydWN0IHdhdGNoZG9nX2luZm8gaWRlbnQgPSB7CisJCS5vcHRpb25zID0gV0RJT0ZfU0VUVElNRU9VVCB8IFdESU9GX0tFRVBBTElWRVBJTkcKKwkJfCBXRElPRl9NQUdJQ0NMT1NFLAorCQkuZmlybXdhcmVfdmVyc2lvbiA9ICAgICAxLAorCQkuaWRlbnRpdHkgPSAgICAgICAgICAgICBXQVRDSERPR19OQU1FLAorICAgICAgICB9OworCisJc3dpdGNoKGNtZCkgeworCWNhc2UgV0RJT0NfR0VUU1VQUE9SVDoKKwkJcmV0dXJuIGNvcHlfdG9fdXNlcihhcmdwLCAmaWRlbnQsCisJCQkJICAgIHNpemVvZihpZGVudCkpID8gLUVGQVVMVCA6IDA7CisJCWJyZWFrOworCisJY2FzZSBXRElPQ19HRVRTVEFUVVM6CisJY2FzZSBXRElPQ19HRVRCT09UU1RBVFVTOgorCQlyZXR1cm4gcHV0X3VzZXIoMCwgcCk7CisKKwljYXNlIFdESU9DX0tFRVBBTElWRToKKwkJZ2VvZGV3ZHRfcGluZygpOworCQlyZXR1cm4gMDsKKworCWNhc2UgV0RJT0NfU0VUVElNRU9VVDoKKwkJaWYgKGdldF91c2VyKGludGVydmFsLCBwKSkKKwkJCXJldHVybiAtRUZBVUxUOworCisJCWlmIChnZW9kZXdkdF9zZXRfaGVhcnRiZWF0KGludGVydmFsKSkKKwkJCXJldHVybiAtRUlOVkFMOworCisvKiBGYWxsIHRocm91Z2ggKi8KKworCWNhc2UgV0RJT0NfR0VUVElNRU9VVDoKKwkJcmV0dXJuIHB1dF91c2VyKHRpbWVvdXQsIHApOworCisJY2FzZSBXRElPQ19TRVRPUFRJT05TOgorCXsKKwkJaW50IG9wdGlvbnMsIHJldCA9IC1FSU5WQUw7CisKKwkJaWYgKGdldF91c2VyKG9wdGlvbnMsIHApKQorCQkJcmV0dXJuIC1FRkFVTFQ7CisKKwkJaWYgKG9wdGlvbnMgJiBXRElPU19ESVNBQkxFQ0FSRCkgeworCQkJZ2VvZGV3ZHRfZGlzYWJsZSgpOworCQkJcmV0ID0gMDsKKwkJfQorCisJCWlmIChvcHRpb25zICYgV0RJT1NfRU5BQkxFQ0FSRCkgeworCQkJZ2VvZGV3ZHRfcGluZygpOworCQkJcmV0ID0gMDsKKwkJfQorCisJCXJldHVybiByZXQ7CisJfQorCWRlZmF1bHQ6CisJCXJldHVybiAtRU5PVFRZOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBnZW9kZXdkdF9mb3BzID0geworICAgICAgICAub3duZXIgICAgICAgICAgPSBUSElTX01PRFVMRSwKKyAgICAgICAgLmxsc2VlayAgICAgICAgID0gbm9fbGxzZWVrLAorICAgICAgICAud3JpdGUgICAgICAgICAgPSBnZW9kZXdkdF93cml0ZSwKKyAgICAgICAgLmlvY3RsICAgICAgICAgID0gZ2VvZGV3ZHRfaW9jdGwsCisgICAgICAgIC5vcGVuICAgICAgICAgICA9IGdlb2Rld2R0X29wZW4sCisgICAgICAgIC5yZWxlYXNlICAgICAgICA9IGdlb2Rld2R0X3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2UgZ2VvZGV3ZHRfbWlzY2RldiA9IHsKKwkubWlub3IgPSBXQVRDSERPR19NSU5PUiwKKwkubmFtZSA9ICJ3YXRjaGRvZyIsCisJLmZvcHMgPSAmZ2VvZGV3ZHRfZm9wcworfTsKKworc3RhdGljIGludCBfX2RldmluaXQKK2dlb2Rld2R0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwlpbnQgcmV0LCB0aW1lcjsKKworCXRpbWVyID0gZ2VvZGVfbWZncHRfYWxsb2NfdGltZXIoTUZHUFRfVElNRVJfQU5ZLCBNRkdQVF9ET01BSU5fV09SS0lORyk7CisKKwlpZiAodGltZXIgPT0gLTEpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJnZW9kZXdkdDogIE5vIHRpbWVycyB3ZXJlIGF2YWlsYWJsZVxuIik7CisJCXJldHVybiAtRU5PREVWOworCX0KKworCXdkdF90aW1lciA9IHRpbWVyOworCisJLyogU2V0IHVwIHRoZSB0aW1lciAqLworCisJZ2VvZGVfbWZncHRfd3JpdGUod2R0X3RpbWVyLCBNRkdQVF9SRUdfU0VUVVAsCisJCQkgIEdFT0RFV0RUX1NDQUxFIHwgKDMgPDwgOCkpOworCisJLyogU2V0IHVwIGNvbXBhcmF0b3IgMiB0byByZXNldCB3aGVuIHRoZSBldmVudCBmaXJlcyAqLworCWdlb2RlX21mZ3B0X3RvZ2dsZV9ldmVudCh3ZHRfdGltZXIsIE1GR1BUX0NNUDIsIE1GR1BUX0VWRU5UX1JFU0VULCAxKTsKKworCS8qIFNldCB1cCB0aGUgaW5pdGlhbCB0aW1lb3V0ICovCisKKwlnZW9kZV9tZmdwdF93cml0ZSh3ZHRfdGltZXIsIE1GR1BUX1JFR19DTVAyLAorCQl0aW1lb3V0ICogR0VPREVXRFRfSFopOworCisJcmV0ID0gbWlzY19yZWdpc3RlcigmZ2VvZGV3ZHRfbWlzY2Rldik7CisKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IF9fZGV2ZXhpdAorZ2VvZGV3ZHRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikKK3sKKwltaXNjX2RlcmVnaXN0ZXIoJmdlb2Rld2R0X21pc2NkZXYpOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorZ2VvZGV3ZHRfc2h1dGRvd24oc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQoreworCWdlb2Rld2R0X2Rpc2FibGUoKTsKK30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VvZGV3ZHRfZHJpdmVyID0geworCS5wcm9iZQkJPSBnZW9kZXdkdF9wcm9iZSwKKwkucmVtb3ZlCQk9IF9fZGV2ZXhpdF9wKGdlb2Rld2R0X3JlbW92ZSksCisJLnNodXRkb3duCT0gZ2VvZGV3ZHRfc2h1dGRvd24sCisJLmRyaXZlcgkJPSB7CisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCQkubmFtZQk9IERSVl9OQU1FLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdAorZ2VvZGV3ZHRfaW5pdCh2b2lkKQoreworCWludCByZXQ7CisKKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJmdlb2Rld2R0X2RyaXZlcik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWdlb2Rld2R0X3BsYXRmb3JtX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9yZWdpc3Rlcl9zaW1wbGUoRFJWX05BTUUsIC0xLCBOVUxMLCAwKTsKKwlpZiAoSVNfRVJSKGdlb2Rld2R0X3BsYXRmb3JtX2RldmljZSkpIHsKKwkJcmV0ID0gUFRSX0VSUihnZW9kZXdkdF9wbGF0Zm9ybV9kZXZpY2UpOworCQlnb3RvIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK2VycjoKKwlwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcigmZ2VvZGV3ZHRfZHJpdmVyKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQKK2dlb2Rld2R0X2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihnZW9kZXdkdF9wbGF0Zm9ybV9kZXZpY2UpOworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZnZW9kZXdkdF9kcml2ZXIpOworfQorCittb2R1bGVfaW5pdChnZW9kZXdkdF9pbml0KTsKK21vZHVsZV9leGl0KGdlb2Rld2R0X2V4aXQpOworCitNT0RVTEVfQVVUSE9SKCJBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMiKTsKK01PRFVMRV9ERVNDUklQVElPTigiR2VvZGUgR1gvTFggV2F0Y2hkb2cgRHJpdmVyIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfQUxJQVNfTUlTQ0RFVihXQVRDSERPR19NSU5PUik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3dhdGNoZG9nL2hwd2R0LmMgYi9kcml2ZXJzL3dhdGNoZG9nL2hwd2R0LmMKaW5kZXggNjQ4M2QxMC4uZWFhM2YyYSAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy9ocHdkdC5jCisrKyBiL2RyaXZlcnMvd2F0Y2hkb2cvaHB3ZHQuYwpAQCAtMTQwLDQ5ICsxNDAsNTMgQEAKIH07CiBNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaHB3ZHRfZGV2aWNlcyk7CiAKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgYXNtaW5saW5lX2NhbGwoc3RydWN0IGNtbl9yZWdpc3RlcnMgKnBpODZSZWdzLCB1bnNpZ25lZCBsb25nICpwUm9tRW50cnkpOworCiAjaWZuZGVmIENPTkZJR19YODZfNjQKIC8qIC0tMzIgQml0IEJpb3MtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2RlZmluZSBIUFdEVF9BUkNICTMyCiAKLXN0YXRpYyB2b2lkIGFzbWlubGluZV9jYWxsKHN0cnVjdCBjbW5fcmVnaXN0ZXJzICpwaTg2UmVncywKLQkJCSAgIHVuc2lnbmVkIGxvbmcgKnBSb21FbnRyeSkKLXsKLQlhc20oInB1c2hsICAgICAgICVlYnAgICAgICAgICAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVzcCwgJWVicCAgICAgICAgIFxuXHQiCi0JICAgICJwdXNoYSAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hmICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgotCSAgICAicHVzaCAgICAgICAgJWVzICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNoICAgICAgICAlZHMgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcCAgICAgICAgICVlcyAgICAgICAgICAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgOCglZWJwKSwlZWF4ICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICA0KCVlYXgpLCVlYnggICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDgoJWVheCksJWVjeCAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgMTIoJWVheCksJWVkeCAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAxNiglZWF4KSwlZXNpICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDIwKCVlYXgpLCVlZGkgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgKCVlYXgpLCVlYXggICAgICAgIFxuXHQiCi0JICAgICJwdXNoICAgICAgICAlY3MgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgImNhbGwgICAgICAgICoxMiglZWJwKSAgICAgICAgICBcblx0IgotCSAgICAicHVzaGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNobCAgICAgICAlZWF4ICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgIDgoJWVicCksJWVheCAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVieCw0KCVlYXgpICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWN4LDgoJWVheCkgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgICVlZHgsMTIoJWVheCkgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICAgJWVzaSwxNiglZWF4KSAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWRpLDIwKCVlYXgpICAgICAgXG5cdCIKLQkgICAgIm1vdncgICAgICAgICVkcywyNCglZWF4KSAgICAgICBcblx0IgotCSAgICAibW92dyAgICAgICAgJWVzLDI2KCVlYXgpICAgICAgIFxuXHQiCi0JICAgICJwb3BsICAgICAgICAlZWJ4ICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgICVlYngsKCVlYXgpICAgICAgICBcblx0IgotCSAgICAicG9wbCAgICAgICAgJWVieCAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICAlZWJ4LDI4KCVlYXgpICAgICAgXG5cdCIKLQkgICAgInBvcCAgICAgICAgICVlcyAgICAgICAgICAgICAgICBcblx0IgotCSAgICAicG9wZiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BhICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgImxlYXZlICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IiAicmV0Iik7Ci19Cithc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICIuYWxpZ24gNCAgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgImFzbWlubGluZV9jYWxsOiAgICAgICAgICAgICAgICBcblx0IgorICAgICJwdXNobCAgICAgICAlZWJwICAgICAgICAgICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVzcCwgJWVicCAgICAgICAgIFxuXHQiCisgICAgInB1c2hhICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJwdXNoZiAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicHVzaCAgICAgICAgJWVzICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInB1c2ggICAgICAgICVkcyAgICAgICAgICAgICAgICBcblx0IgorICAgICJwb3AgICAgICAgICAlZXMgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgOCglZWJwKSwlZWF4ICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgIDQoJWVheCksJWVieCAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICA4KCVlYXgpLCVlY3ggICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgMTIoJWVheCksJWVkeCAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgIDE2KCVlYXgpLCVlc2kgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAyMCglZWF4KSwlZWRpICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgKCVlYXgpLCVlYXggICAgICAgIFxuXHQiCisgICAgInB1c2ggICAgICAgICVjcyAgICAgICAgICAgICAgICBcblx0IgorICAgICJjYWxsICAgICAgICAqMTIoJWVicCkgICAgICAgICAgXG5cdCIKKyAgICAicHVzaGYgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInB1c2hsICAgICAgICVlYXggICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICA4KCVlYnApLCVlYXggICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVieCw0KCVlYXgpICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlY3gsOCglZWF4KSAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAlZWR4LDEyKCVlYXgpICAgICAgXG5cdCIKKyAgICAibW92bCAgICAgICAgJWVzaSwxNiglZWF4KSAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlZGksMjAoJWVheCkgICAgICBcblx0IgorICAgICJtb3Z3ICAgICAgICAlZHMsMjQoJWVheCkgICAgICAgXG5cdCIKKyAgICAibW92dyAgICAgICAgJWVzLDI2KCVlYXgpICAgICAgIFxuXHQiCisgICAgInBvcGwgICAgICAgICVlYnggICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICAlZWJ4LCglZWF4KSAgICAgICAgXG5cdCIKKyAgICAicG9wbCAgICAgICAgJWVieCAgICAgICAgICAgICAgIFxuXHQiCisgICAgIm1vdmwgICAgICAgICVlYngsMjgoJWVheCkgICAgICBcblx0IgorICAgICJwb3AgICAgICAgICAlZXMgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicG9wZiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgInBvcGEgICAgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKKyAgICAicmV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgIi5wcmV2aW91cyIpOworCiAKIC8qCiAgKgljcnVfZGV0ZWN0CkBAIC0zMzMsNDMgKzMzNyw0NCBAQAogCiAjZGVmaW5lIEhQV0RUX0FSQ0gJNjQKIAotc3RhdGljIHZvaWQgYXNtaW5saW5lX2NhbGwoc3RydWN0IGNtbl9yZWdpc3RlcnMgKnBpODZSZWdzLAotCQkJICAgdW5zaWduZWQgbG9uZyAqcFJvbUVudHJ5KQotewotCWFzbSgicHVzaHEgICAgICAlcmJwICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXJzcCwgJXJicCAgICAgIFxuXHQiCi0JICAgICJwdXNocSAgICAgICVyYXggICAgICAgICAgICBcblx0IgotCSAgICAicHVzaHEgICAgICAlcmJ4ICAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hxICAgICAgJXJkeCAgICAgICAgICAgIFxuXHQiCi0JICAgICJwdXNocSAgICAgICVyMTIgICAgICAgICAgICBcblx0IgotCSAgICAicHVzaHEgICAgICAlcjkgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXJzaSwgJXIxMiAgICAgIFxuXHQiCi0JICAgICJtb3ZxICAgICAgICVyZGksICVyOSAgICAgICBcblx0IgotCSAgICAibW92bCAgICAgICA0KCVyOSksJWVieCAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgOCglcjkpLCVlY3ggICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgIDEyKCVyOSksJWVkeCAgICBcblx0IgotCSAgICAibW92bCAgICAgICAxNiglcjkpLCVlc2kgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgMjAoJXI5KSwlZWRpICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICglcjkpLCVlYXggICAgICBcblx0IgotCSAgICAiY2FsbCAgICAgICAqJXIxMiAgICAgICAgICAgXG5cdCIKLQkgICAgInB1c2hmcSAgICAgICAgICAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BxICAgICAgICAlcjEyICAgICAgICAgICBcblx0IgotCSAgICAicG9wZnEgICAgICAgICAgICAgICAgICAgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgJWVheCwgKCVyOSkgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlYngsIDQoJXI5KSAgICBcblx0IgotCSAgICAibW92bCAgICAgICAlZWN4LCA4KCVyOSkgICAgXG5cdCIKLQkgICAgIm1vdmwgICAgICAgJWVkeCwgMTIoJXI5KSAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlc2ksIDE2KCVyOSkgICBcblx0IgotCSAgICAibW92bCAgICAgICAlZWRpLCAyMCglcjkpICAgXG5cdCIKLQkgICAgIm1vdnEgICAgICAgJXIxMiwgJXJheCAgICAgIFxuXHQiCi0JICAgICJtb3ZsICAgICAgICVlYXgsIDI4KCVyOSkgICBcblx0IgotCSAgICAicG9wcSAgICAgICAlcjkgICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcHEgICAgICAgJXIxMiAgICAgICAgICAgIFxuXHQiCi0JICAgICJwb3BxICAgICAgICVyZHggICAgICAgICAgICBcblx0IgotCSAgICAicG9wcSAgICAgICAlcmJ4ICAgICAgICAgICAgXG5cdCIKLQkgICAgInBvcHEgICAgICAgJXJheCAgICAgICAgICAgIFxuXHQiCi0JICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICBcblx0IiAicmV0Iik7Ci19Cithc20oIi50ZXh0ICAgICAgICAgICAgICAgICAgICAgIFxuXHQiCisgICAgIi5hbGlnbiA0ICAgICAgICAgICAgICAgICAgIFxuIgorICAgICJhc21pbmxpbmVfY2FsbDogICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYnAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyc3AsICVyYnAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYXggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyYnggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyZHggICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyMTIgICAgICAgICAgICBcblx0IgorICAgICJwdXNocSAgICAgICVyOSAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyc2ksICVyMTIgICAgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyZGksICVyOSAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDQoJXI5KSwlZWJ4ICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDgoJXI5KSwlZWN4ICAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDEyKCVyOSksJWVkeCAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDE2KCVyOSksJWVzaSAgICBcblx0IgorICAgICJtb3ZsICAgICAgIDIwKCVyOSksJWVkaSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICglcjkpLCVlYXggICAgICBcblx0IgorICAgICJjYWxsICAgICAgIColcjEyICAgICAgICAgICBcblx0IgorICAgICJwdXNoZnEgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICAlcjEyICAgICAgICAgICBcblx0IgorICAgICJwb3BmcSAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYXgsICglcjkpICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYngsIDQoJXI5KSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlY3gsIDgoJXI5KSAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlZHgsIDEyKCVyOSkgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlc2ksIDE2KCVyOSkgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlZGksIDIwKCVyOSkgICBcblx0IgorICAgICJtb3ZxICAgICAgICVyMTIsICVyYXggICAgICBcblx0IgorICAgICJtb3ZsICAgICAgICVlYXgsIDI4KCVyOSkgICBcblx0IgorICAgICJwb3BxICAgICAgICVyOSAgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyMTIgICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyZHggICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyYnggICAgICAgICAgICBcblx0IgorICAgICJwb3BxICAgICAgICVyYXggICAgICAgICAgICBcblx0IgorICAgICJsZWF2ZSAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICJyZXQgICAgICAgICAgICAgICAgICAgICAgICBcblx0IgorICAgICIucHJldmlvdXMiKTsKIAogLyoKICAqCWRtaV9maW5kX2NydQpkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy9pVENPX3dkdC5jIGIvZHJpdmVycy93YXRjaGRvZy9pVENPX3dkdC5jCmluZGV4IGEwZTY4MDkuLjk1YmE5ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvd2F0Y2hkb2cvaVRDT193ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL2lUQ09fd2R0LmMKQEAgLTQxLDkgKzQxLDEwIEBACiAgKgk4MjgwMUhIICAoSUNIOERIKSAgICA6IGRvY3VtZW50IG51bWJlciAzMTMwNTYtMDAzLCAzMTMwNTctMDA5LAogICoJODI4MDFITyAgKElDSDhETykgICAgOiBkb2N1bWVudCBudW1iZXIgMzEzMDU2LTAwMywgMzEzMDU3LTAwOSwKICAqCTgyODAxSEVNIChJQ0g4TS1FKSAgIDogZG9jdW1lbnQgbnVtYmVyIDMxMzA1Ni0wMDMsIDMxMzA1Ny0wMDksCi0gKgk4MjgwMUlCICAoSUNIOSkgICAgICA6IGRvY3VtZW50IG51bWJlciAzMTY5NzItMDAxLCAzMTY5NzMtMDAxLAotICoJODI4MDFJUiAgKElDSDlSKSAgICAgOiBkb2N1bWVudCBudW1iZXIgMzE2OTcyLTAwMSwgMzE2OTczLTAwMSwKLSAqCTgyODAxSUggIChJQ0g5REgpICAgIDogZG9jdW1lbnQgbnVtYmVyIDMxNjk3Mi0wMDEsIDMxNjk3My0wMDEsCisgKgk4MjgwMUlCICAoSUNIOSkgICAgICA6IGRvY3VtZW50IG51bWJlciAzMTY5NzItMDAxLCAzMTY5NzMtMDA2LAorICoJODI4MDFJUiAgKElDSDlSKSAgICAgOiBkb2N1bWVudCBudW1iZXIgMzE2OTcyLTAwMSwgMzE2OTczLTAwNiwKKyAqCTgyODAxSUggIChJQ0g5REgpICAgIDogZG9jdW1lbnQgbnVtYmVyIDMxNjk3Mi0wMDEsIDMxNjk3My0wMDYsCisgKgk4MjgwMUlPICAoSUNIOURPKSAgICA6IGRvY3VtZW50IG51bWJlciAzMTY5NzItMDAxLCAzMTY5NzMtMDA2LAogICoJNjMwMEVTQiAgKDYzMDBFU0IpICAgOiBkb2N1bWVudCBudW1iZXIgMzAwNjQxLTAwMywgMzAwODg0LTAxMCwKICAqCTYzMXhFU0IgICg2MzF4RVNCKSAgIDogZG9jdW1lbnQgbnVtYmVyIDMxMzA4Mi0wMDEsIDMxMzA3NS0wMDUsCiAgKgk2MzJ4RVNCICAoNjMyeEVTQikgICA6IGRvY3VtZW50IG51bWJlciAzMTMwODItMDAxLCAzMTMwNzUtMDA1CkBAIC01NSw4ICs1Niw4IEBACiAKIC8qIE1vZHVsZSBhbmQgdmVyc2lvbiBpbmZvcm1hdGlvbiAqLwogI2RlZmluZSBEUlZfTkFNRSAgICAgICAgImlUQ09fd2R0IgotI2RlZmluZSBEUlZfVkVSU0lPTiAgICAgIjEuMDIiCi0jZGVmaW5lIERSVl9SRUxEQVRFICAgICAiMjYtSnVsLTIwMDciCisjZGVmaW5lIERSVl9WRVJTSU9OICAgICAiMS4wMyIKKyNkZWZpbmUgRFJWX1JFTERBVEUgICAgICIzMC1BcHItMjAwOCIKICNkZWZpbmUgUEZYCQlEUlZfTkFNRSAiOiAiCiAKIC8qIEluY2x1ZGVzICovCkBAIC0xMDQsNiArMTA1LDcgQEAKIAlUQ09fSUNIOSwJLyogSUNIOSAqLwogCVRDT19JQ0g5UiwJLyogSUNIOVIgKi8KIAlUQ09fSUNIOURILAkvKiBJQ0g5REggKi8KKwlUQ09fSUNIOURPLCAgICAgLyogSUNIOURPICovCiAJVENPXzYzMVhFU0IsCS8qIDYzMXhFU0IvNjMyeEVTQiAqLwogfTsKIApAQCAtMTM2LDYgKzEzOCw3IEBACiAJeyJJQ0g5IiwgMn0sCiAJeyJJQ0g5UiIsIDJ9LAogCXsiSUNIOURIIiwgMn0sCisJeyJJQ0g5RE8iLCAyfSwKIAl7IjYzMXhFU0IvNjMyeEVTQiIsIDJ9LAogCXtOVUxMLDB9CiB9OwpAQCAtMTgxLDYgKzE4NCw3IEBACiAJeyBJVENPX1BDSV9ERVZJQ0UoMHgyOTE4LAkJCQlUQ09fSUNIOSAgICl9LAogCXsgSVRDT19QQ0lfREVWSUNFKDB4MjkxNiwJCQkJVENPX0lDSDlSICApfSwKIAl7IElUQ09fUENJX0RFVklDRShQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDlfMiwJCVRDT19JQ0g5REggKX0sCisJeyBJVENPX1BDSV9ERVZJQ0UoUENJX0RFVklDRV9JRF9JTlRFTF9JQ0g5XzQsICAgICAgICAgICBUQ09fSUNIOURPICl9LAogCXsgSVRDT19QQ0lfREVWSUNFKFBDSV9ERVZJQ0VfSURfSU5URUxfRVNCMl8wLAkJVENPXzYzMVhFU0IpfSwKIAl7IElUQ09fUENJX0RFVklDRSgweDI2NzEsCQkJCVRDT182MzFYRVNCKX0sCiAJeyBJVENPX1BDSV9ERVZJQ0UoMHgyNjcyLAkJCQlUQ09fNjMxWEVTQil9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy93YXRjaGRvZy93ODM2OTdoZl93ZHQuYyBiL2RyaXZlcnMvd2F0Y2hkb2cvdzgzNjk3aGZfd2R0LmMKaW5kZXggYzYyMmEwZS4uNTI4Yjg4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy93YXRjaGRvZy93ODM2OTdoZl93ZHQuYworKysgYi9kcml2ZXJzL3dhdGNoZG9nL3c4MzY5N2hmX3dkdC5jCkBAIC00NCw2ICs0NCw3IEBACiAjZGVmaW5lIFdBVENIRE9HX05BTUUgInc4MzY5N2hmL2hnIFdEVCIKICNkZWZpbmUgUEZYIFdBVENIRE9HX05BTUUgIjogIgogI2RlZmluZSBXQVRDSERPR19USU1FT1VUIDYwCQkvKiA2MCBzZWMgZGVmYXVsdCB0aW1lb3V0ICovCisjZGVmaW5lIFdBVENIRE9HX0VBUkxZX0RJU0FCTEUgMQkvKiBEaXNhYmxlIHVudGlsIHVzZXJsYW5kIGtpY2tzIGluICovCiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIHdkdF9pc19vcGVuOwogc3RhdGljIGNoYXIgZXhwZWN0X2Nsb3NlOwpAQCAtNTYsMTIgKzU3LDE2IEBACiAKIHN0YXRpYyBpbnQgdGltZW91dCA9IFdBVENIRE9HX1RJTUVPVVQ7CS8qIGluIHNlY29uZHMgKi8KIG1vZHVsZV9wYXJhbSh0aW1lb3V0LCBpbnQsIDApOwotTU9EVUxFX1BBUk1fREVTQyh0aW1lb3V0LCAiV2F0Y2hkb2cgdGltZW91dCBpbiBzZWNvbmRzLiAxPD0gdGltZW91dCA8PTI1NSwgZGVmYXVsdD0iIF9fTU9EVUxFX1NUUklORyhXQVRDSERPR19USU1FT1VUKSAiLiIpOworTU9EVUxFX1BBUk1fREVTQyh0aW1lb3V0LCAiV2F0Y2hkb2cgdGltZW91dCBpbiBzZWNvbmRzLiAxPD0gdGltZW91dCA8PTI1NSAoZGVmYXVsdD0iIF9fTU9EVUxFX1NUUklORyhXQVRDSERPR19USU1FT1VUKSAiKSIpOwogCiBzdGF0aWMgaW50IG5vd2F5b3V0ID0gV0FUQ0hET0dfTk9XQVlPVVQ7CiBtb2R1bGVfcGFyYW0obm93YXlvdXQsIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKG5vd2F5b3V0LCAiV2F0Y2hkb2cgY2Fubm90IGJlIHN0b3BwZWQgb25jZSBzdGFydGVkIChkZWZhdWx0PSIgX19NT0RVTEVfU1RSSU5HKFdBVENIRE9HX05PV0FZT1VUKSAiKSIpOwogCitzdGF0aWMgaW50IGVhcmx5X2Rpc2FibGUgPSBXQVRDSERPR19FQVJMWV9ESVNBQkxFOworbW9kdWxlX3BhcmFtKGVhcmx5X2Rpc2FibGUsIGludCwgMCk7CitNT0RVTEVfUEFSTV9ERVNDKGVhcmx5X2Rpc2FibGUsICJXYXRjaGRvZyBnZXRzIGRpc2FibGVkIGF0IGJvb3QgdGltZSAoZGVmYXVsdD0iIF9fTU9EVUxFX1NUUklORyhXQVRDSERPR19FQVJMWV9ESVNBQkxFKSAiKSIpOworCiAvKgogICoJS2VybmVsIG1ldGhvZHMuCiAgKi8KQEAgLTE0MCw3ICsxNDUsNyBAQAogCXc4MzY5N2hmX2Rlc2VsZWN0X3dkdCgpOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdm9pZAogd2R0X3Bpbmcodm9pZCkKIHsKIAlzcGluX2xvY2soJmlvX2xvY2spOwpAQCAtMTUwLDEwICsxNTUsOSBAQAogCiAJdzgzNjk3aGZfZGVzZWxlY3Rfd2R0KCk7CiAJc3Bpbl91bmxvY2soJmlvX2xvY2spOwotCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50CitzdGF0aWMgdm9pZAogd2R0X2VuYWJsZSh2b2lkKQogewogCXNwaW5fbG9jaygmaW9fbG9jayk7CkBAIC0xNjQsMTAgKzE2OCw5IEBACiAKIAl3ODM2OTdoZl9kZXNlbGVjdF93ZHQoKTsKIAlzcGluX3VubG9jaygmaW9fbG9jayk7Ci0JcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQKK3N0YXRpYyB2b2lkCiB3ZHRfZGlzYWJsZSh2b2lkKQogewogCXNwaW5fbG9jaygmaW9fbG9jayk7CkBAIC0xNzgsNyArMTgxLDIyIEBACiAKIAl3ODM2OTdoZl9kZXNlbGVjdF93ZHQoKTsKIAlzcGluX3VubG9jaygmaW9fbG9jayk7Ci0JcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBjaGFyCit3ZHRfcnVubmluZyh2b2lkKQoreworCXVuc2lnbmVkIGNoYXIgdDsKKworCXNwaW5fbG9jaygmaW9fbG9jayk7CisJdzgzNjk3aGZfc2VsZWN0X3dkdCgpOworCisJdCA9IHc4MzY5N2hmX2dldF9yZWcoMHhGNCk7CS8qIFJlYWQgdGltZXIgKi8KKworCXc4MzY5N2hmX2Rlc2VsZWN0X3dkdCgpOworCXNwaW5fdW5sb2NrKCZpb19sb2NrKTsKKworCXJldHVybiB0OwogfQogCiBzdGF0aWMgaW50CkBAIC0zOTcsNyArNDE1LDExIEBACiAJfQogCiAJdzgzNjk3aGZfaW5pdCgpOwotCXdkdF9kaXNhYmxlKCk7CS8qIERpc2FibGUgd2F0Y2hkb2cgdW50aWwgZmlyc3QgdXNlICovCisJaWYgKGVhcmx5X2Rpc2FibGUpIHsKKwkJaWYgKHdkdF9ydW5uaW5nKCkpCisJCQlwcmludGsgKEtFUk5fV0FSTklORyBQRlggIlN0b3BwaW5nIHByZXZpb3VzbHkgZW5hYmxlZCB3YXRjaGRvZyB1bnRpbCB1c2VybGFuZCBraWNrcyBpblxuIik7CisJCXdkdF9kaXNhYmxlKCk7CisJfQogCiAJaWYgKHdkdF9zZXRfaGVhcnRiZWF0KHRpbWVvdXQpKSB7CiAJCXdkdF9zZXRfaGVhcnRiZWF0KFdBVENIRE9HX1RJTUVPVVQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vTWFrZWZpbGUgYi9kcml2ZXJzL3hlbi9NYWtlZmlsZQppbmRleCAzN2FmMDRmLi4zNjMyODZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9NYWtlZmlsZQorKysgYi9kcml2ZXJzL3hlbi9NYWtlZmlsZQpAQCAtMSw0ICsxLDQgQEAKLW9iai15CSs9IGdyYW50LXRhYmxlLm8gZmVhdHVyZXMubyBldmVudHMubworb2JqLXkJKz0gZ3JhbnQtdGFibGUubyBmZWF0dXJlcy5vIGV2ZW50cy5vIG1hbmFnZS5vCiBvYmoteQkrPSB4ZW5idXMvCiBvYmotJChDT05GSUdfWEVOX1hFTkNPTU0pCSs9IHhlbmNvbW0ubwogb2JqLSQoQ09ORklHX1hFTl9CQUxMT09OKQkrPSBiYWxsb29uLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2JhbGxvb24uYyBiL2RyaXZlcnMveGVuL2JhbGxvb24uYwppbmRleCBhYjI1YmE2Li41OTFiYzI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi9iYWxsb29uLmMKKysrIGIvZHJpdmVycy94ZW4vYmFsbG9vbi5jCkBAIC0yMjUsNyArMjI1LDcgQEAKIAkJcGFnZSA9IGJhbGxvb25fbmV4dF9wYWdlKHBhZ2UpOwogCX0KIAotCXJlc2VydmF0aW9uLmV4dGVudF9zdGFydCA9ICh1bnNpZ25lZCBsb25nKWZyYW1lX2xpc3Q7CisJc2V0X3hlbl9ndWVzdF9oYW5kbGUocmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0LCBmcmFtZV9saXN0KTsKIAlyZXNlcnZhdGlvbi5ucl9leHRlbnRzICAgPSBucl9wYWdlczsKIAlyYyA9IEhZUEVSVklTT1JfbWVtb3J5X29wKAogCQlYRU5NRU1fcG9wdWxhdGVfcGh5c21hcCwgJnJlc2VydmF0aW9uKTsKQEAgLTMyMSw3ICszMjEsNyBAQAogCQliYWxsb29uX2FwcGVuZChwZm5fdG9fcGFnZShwZm4pKTsKIAl9CiAKLQlyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQgPSAodW5zaWduZWQgbG9uZylmcmFtZV9saXN0OworCXNldF94ZW5fZ3Vlc3RfaGFuZGxlKHJlc2VydmF0aW9uLmV4dGVudF9zdGFydCwgZnJhbWVfbGlzdCk7CiAJcmVzZXJ2YXRpb24ubnJfZXh0ZW50cyAgID0gbnJfcGFnZXM7CiAJcmV0ID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uLCAmcmVzZXJ2YXRpb24pOwogCUJVR19PTihyZXQgIT0gbnJfcGFnZXMpOwpAQCAtMzY4LDcgKzM2OCw3IEBACiB9CiAKIC8qIFJlc2V0cyB0aGUgWGVuIGxpbWl0LCBzZXRzIG5ldyB0YXJnZXQsIGFuZCBraWNrcyBvZmYgcHJvY2Vzc2luZy4gKi8KLXZvaWQgYmFsbG9vbl9zZXRfbmV3X3RhcmdldCh1bnNpZ25lZCBsb25nIHRhcmdldCkKK3N0YXRpYyB2b2lkIGJhbGxvb25fc2V0X25ld190YXJnZXQodW5zaWduZWQgbG9uZyB0YXJnZXQpCiB7CiAJLyogTm8gbmVlZCBmb3IgbG9jay4gTm90IHJlYWQtbW9kaWZ5LXdyaXRlIHVwZGF0ZXMuICovCiAJYmFsbG9vbl9zdGF0cy5oYXJkX2xpbWl0ICAgPSB+MFVMOwpAQCAtNDgzLDcgKzQ4Myw3IEBACiAJCS5leHRlbnRfb3JkZXIgPSAwLAogCQkuZG9taWQgICAgICAgID0gRE9NSURfU0VMRgogCX07Ci0JcmVzZXJ2YXRpb24uZXh0ZW50X3N0YXJ0ID0gKHVuc2lnbmVkIGxvbmcpJm1mbjsKKwlzZXRfeGVuX2d1ZXN0X2hhbmRsZShyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQsICZtZm4pOwogCXNldF9wdGVfYXQoJmluaXRfbW0sIGFkZHIsIHB0ZSwgX19wdGVfbWEoMHVsbCkpOwogCXNldF9waHlzX3RvX21hY2hpbmUoX19wYShhZGRyKSA+PiBQQUdFX1NISUZULCBJTlZBTElEX1AyTV9FTlRSWSk7CiAJcmV0ID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uLCAmcmVzZXJ2YXRpb24pOwpAQCAtNTE5LDcgKzUxOSw3IEBACiAJCQkJLmV4dGVudF9vcmRlciA9IDAsCiAJCQkJLmRvbWlkICAgICAgICA9IERPTUlEX1NFTEYKIAkJCX07Ci0JCQlyZXNlcnZhdGlvbi5leHRlbnRfc3RhcnQgPSAodW5zaWduZWQgbG9uZykmZ21mbjsKKwkJCXNldF94ZW5fZ3Vlc3RfaGFuZGxlKHJlc2VydmF0aW9uLmV4dGVudF9zdGFydCwgJmdtZm4pOwogCQkJcmV0ID0gSFlQRVJWSVNPUl9tZW1vcnlfb3AoWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uLAogCQkJCQkJICAgJnJlc2VydmF0aW9uKTsKIAkJCWlmIChyZXQgPT0gMSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2V2ZW50cy5jIGIvZHJpdmVycy94ZW4vZXZlbnRzLmMKaW5kZXggNGYwZjIyYi4uMzMyZGQ2MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2V2ZW50cy5jCisrKyBiL2RyaXZlcnMveGVuL2V2ZW50cy5jCkBAIC0zNTUsNyArMzU1LDcgQEAKIAogCXNwaW5fbG9jaygmaXJxX21hcHBpbmdfdXBkYXRlX2xvY2spOwogCi0JaWYgKFZBTElEX0VWVENITihldnRjaG4pICYmICgtLWlycV9iaW5kY291bnRbaXJxXSA9PSAwKSkgeworCWlmICgoLS1pcnFfYmluZGNvdW50W2lycV0gPT0gMCkgJiYgVkFMSURfRVZUQ0hOKGV2dGNobikpIHsKIAkJY2xvc2UucG9ydCA9IGV2dGNobjsKIAkJaWYgKEhZUEVSVklTT1JfZXZlbnRfY2hhbm5lbF9vcChFVlRDSE5PUF9jbG9zZSwgJmNsb3NlKSAhPSAwKQogCQkJQlVHKCk7CkBAIC0zNzUsNyArMzc1LDcgQEAKIAkJZXZ0Y2huX3RvX2lycVtldnRjaG5dID0gLTE7CiAJCWlycV9pbmZvW2lycV0gPSBJUlFfVU5CT1VORDsKIAotCQlkeW5hbWljX2lycV9pbml0KGlycSk7CisJCWR5bmFtaWNfaXJxX2NsZWFudXAoaXJxKTsKIAl9CiAKIAlzcGluX3VubG9jaygmaXJxX21hcHBpbmdfdXBkYXRlX2xvY2spOwpAQCAtNTI5LDcgKzUyOSw3IEBACiAKICNpZm5kZWYgQ09ORklHX1g4NiAvKiBObyBuZWVkIGZvciBhIGJhcnJpZXIgLS0gWENIRyBpcyBhIGJhcnJpZXIgb24geDg2LiAqLwogCQkvKiBDbGVhciBtYXN0ZXIgZmxhZyAvYmVmb3JlLyBjbGVhcmluZyBzZWxlY3RvciBmbGFnLiAqLwotCQlybWIoKTsKKwkJd21iKCk7CiAjZW5kaWYKIAkJcGVuZGluZ193b3JkcyA9IHhjaGcoJnZjcHVfaW5mby0+ZXZ0Y2huX3BlbmRpbmdfc2VsLCAwKTsKIAkJd2hpbGUgKHBlbmRpbmdfd29yZHMgIT0gMCkgewpAQCAtNTU3LDYgKzU1NywzMyBAQAogCXB1dF9jcHUoKTsKIH0KIAorLyogUmViaW5kIGEgbmV3IGV2ZW50IGNoYW5uZWwgdG8gYW4gZXhpc3RpbmcgaXJxLiAqLwordm9pZCByZWJpbmRfZXZ0Y2huX2lycShpbnQgZXZ0Y2huLCBpbnQgaXJxKQoreworCS8qIE1ha2Ugc3VyZSB0aGUgaXJxIGlzIG1hc2tlZCwgc2luY2UgdGhlIG5ldyBldmVudCBjaGFubmVsCisJICAgd2lsbCBhbHNvIGJlIG1hc2tlZC4gKi8KKwlkaXNhYmxlX2lycShpcnEpOworCisJc3Bpbl9sb2NrKCZpcnFfbWFwcGluZ191cGRhdGVfbG9jayk7CisKKwkvKiBBZnRlciByZXN1bWUgdGhlIGlycTwtPmV2dGNobiBtYXBwaW5ncyBhcmUgYWxsIGNsZWFyZWQgb3V0ICovCisJQlVHX09OKGV2dGNobl90b19pcnFbZXZ0Y2huXSAhPSAtMSk7CisJLyogRXhwZWN0IGlycSB0byBoYXZlIGJlZW4gYm91bmQgYmVmb3JlLAorCSAgIHNvIHRoZSBiaW5kY291bnQgc2hvdWxkIGJlIG5vbi0wICovCisJQlVHX09OKGlycV9iaW5kY291bnRbaXJxXSA9PSAwKTsKKworCWV2dGNobl90b19pcnFbZXZ0Y2huXSA9IGlycTsKKwlpcnFfaW5mb1tpcnFdID0gbWtfaXJxX2luZm8oSVJRVF9FVlRDSE4sIDAsIGV2dGNobik7CisKKwlzcGluX3VubG9jaygmaXJxX21hcHBpbmdfdXBkYXRlX2xvY2spOworCisJLyogbmV3IGV2ZW50IGNoYW5uZWxzIGFyZSBhbHdheXMgYm91bmQgdG8gY3B1IDAgKi8KKwlpcnFfc2V0X2FmZmluaXR5KGlycSwgY3B1bWFza19vZl9jcHUoMCkpOworCisJLyogVW5tYXNrIHRoZSBldmVudCBjaGFubmVsLiAqLworCWVuYWJsZV9pcnEoaXJxKTsKK30KKwogLyogUmViaW5kIGFuIGV2dGNobiBzbyB0aGF0IGl0IGdldHMgZGVsaXZlcmVkIHRvIGEgc3BlY2lmaWMgY3B1ICovCiBzdGF0aWMgdm9pZCByZWJpbmRfaXJxX3RvX2NwdSh1bnNpZ25lZCBpcnEsIHVuc2lnbmVkIHRjcHUpCiB7CkBAIC02NDcsNiArNjc0LDg5IEBACiAJcmV0dXJuIHJldDsKIH0KIAorc3RhdGljIHZvaWQgcmVzdG9yZV9jcHVfdmlycXModW5zaWduZWQgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgZXZ0Y2huX2JpbmRfdmlycSBiaW5kX3ZpcnE7CisJaW50IHZpcnEsIGlycSwgZXZ0Y2huOworCisJZm9yICh2aXJxID0gMDsgdmlycSA8IE5SX1ZJUlFTOyB2aXJxKyspIHsKKwkJaWYgKChpcnEgPSBwZXJfY3B1KHZpcnFfdG9faXJxLCBjcHUpW3ZpcnFdKSA9PSAtMSkKKwkJCWNvbnRpbnVlOworCisJCUJVR19PTihpcnFfaW5mb1tpcnFdLnR5cGUgIT0gSVJRVF9WSVJRKTsKKwkJQlVHX09OKGlycV9pbmZvW2lycV0uaW5kZXggIT0gdmlycSk7CisKKwkJLyogR2V0IGEgbmV3IGJpbmRpbmcgZnJvbSBYZW4uICovCisJCWJpbmRfdmlycS52aXJxID0gdmlycTsKKwkJYmluZF92aXJxLnZjcHUgPSBjcHU7CisJCWlmIChIWVBFUlZJU09SX2V2ZW50X2NoYW5uZWxfb3AoRVZUQ0hOT1BfYmluZF92aXJxLAorCQkJCQkJJmJpbmRfdmlycSkgIT0gMCkKKwkJCUJVRygpOworCQlldnRjaG4gPSBiaW5kX3ZpcnEucG9ydDsKKworCQkvKiBSZWNvcmQgdGhlIG5ldyBtYXBwaW5nLiAqLworCQlldnRjaG5fdG9faXJxW2V2dGNobl0gPSBpcnE7CisJCWlycV9pbmZvW2lycV0gPSBta19pcnFfaW5mbyhJUlFUX1ZJUlEsIHZpcnEsIGV2dGNobik7CisJCWJpbmRfZXZ0Y2huX3RvX2NwdShldnRjaG4sIGNwdSk7CisKKwkJLyogUmVhZHkgZm9yIHVzZS4gKi8KKwkJdW5tYXNrX2V2dGNobihldnRjaG4pOworCX0KK30KKworc3RhdGljIHZvaWQgcmVzdG9yZV9jcHVfaXBpcyh1bnNpZ25lZCBpbnQgY3B1KQoreworCXN0cnVjdCBldnRjaG5fYmluZF9pcGkgYmluZF9pcGk7CisJaW50IGlwaSwgaXJxLCBldnRjaG47CisKKwlmb3IgKGlwaSA9IDA7IGlwaSA8IFhFTl9OUl9JUElTOyBpcGkrKykgeworCQlpZiAoKGlycSA9IHBlcl9jcHUoaXBpX3RvX2lycSwgY3B1KVtpcGldKSA9PSAtMSkKKwkJCWNvbnRpbnVlOworCisJCUJVR19PTihpcnFfaW5mb1tpcnFdLnR5cGUgIT0gSVJRVF9JUEkpOworCQlCVUdfT04oaXJxX2luZm9baXJxXS5pbmRleCAhPSBpcGkpOworCisJCS8qIEdldCBhIG5ldyBiaW5kaW5nIGZyb20gWGVuLiAqLworCQliaW5kX2lwaS52Y3B1ID0gY3B1OworCQlpZiAoSFlQRVJWSVNPUl9ldmVudF9jaGFubmVsX29wKEVWVENITk9QX2JpbmRfaXBpLAorCQkJCQkJJmJpbmRfaXBpKSAhPSAwKQorCQkJQlVHKCk7CisJCWV2dGNobiA9IGJpbmRfaXBpLnBvcnQ7CisKKwkJLyogUmVjb3JkIHRoZSBuZXcgbWFwcGluZy4gKi8KKwkJZXZ0Y2huX3RvX2lycVtldnRjaG5dID0gaXJxOworCQlpcnFfaW5mb1tpcnFdID0gbWtfaXJxX2luZm8oSVJRVF9JUEksIGlwaSwgZXZ0Y2huKTsKKwkJYmluZF9ldnRjaG5fdG9fY3B1KGV2dGNobiwgY3B1KTsKKworCQkvKiBSZWFkeSBmb3IgdXNlLiAqLworCQl1bm1hc2tfZXZ0Y2huKGV2dGNobik7CisKKwl9Cit9CisKK3ZvaWQgeGVuX2lycV9yZXN1bWUodm9pZCkKK3sKKwl1bnNpZ25lZCBpbnQgY3B1LCBpcnEsIGV2dGNobjsKKworCWluaXRfZXZ0Y2huX2NwdV9iaW5kaW5ncygpOworCisJLyogTmV3IGV2ZW50LWNoYW5uZWwgc3BhY2UgaXMgbm90ICdsaXZlJyB5ZXQuICovCisJZm9yIChldnRjaG4gPSAwOyBldnRjaG4gPCBOUl9FVkVOVF9DSEFOTkVMUzsgZXZ0Y2huKyspCisJCW1hc2tfZXZ0Y2huKGV2dGNobik7CisKKwkvKiBObyBJUlEgPC0+IGV2ZW50LWNoYW5uZWwgbWFwcGluZ3MuICovCisJZm9yIChpcnEgPSAwOyBpcnEgPCBOUl9JUlFTOyBpcnErKykKKwkJaXJxX2luZm9baXJxXS5ldnRjaG4gPSAwOyAvKiB6YXAgZXZlbnQtY2hhbm5lbCBiaW5kaW5nICovCisKKwlmb3IgKGV2dGNobiA9IDA7IGV2dGNobiA8IE5SX0VWRU5UX0NIQU5ORUxTOyBldnRjaG4rKykKKwkJZXZ0Y2huX3RvX2lycVtldnRjaG5dID0gLTE7CisKKwlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoY3B1KSB7CisJCXJlc3RvcmVfY3B1X3ZpcnFzKGNwdSk7CisJCXJlc3RvcmVfY3B1X2lwaXMoY3B1KTsKKwl9Cit9CisKIHN0YXRpYyBzdHJ1Y3QgaXJxX2NoaXAgeGVuX2R5bmFtaWNfY2hpcCBfX3JlYWRfbW9zdGx5ID0gewogCS5uYW1lCQk9ICJ4ZW4tZHluIiwKIAkubWFzawkJPSBkaXNhYmxlX2R5bmlycSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMgYi9kcml2ZXJzL3hlbi9ncmFudC10YWJsZS5jCmluZGV4IDUyYjZiNDEuLmU5ZTExMTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2dyYW50LXRhYmxlLmMKKysrIGIvZHJpdmVycy94ZW4vZ3JhbnQtdGFibGUuYwpAQCAtNDcxLDE0ICs0NzEsMTQgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBnbnR0YWJfcmVzdW1lKHZvaWQpCitpbnQgZ250dGFiX3Jlc3VtZSh2b2lkKQogewogCWlmIChtYXhfbnJfZ3JhbnRfZnJhbWVzKCkgPCBucl9ncmFudF9mcmFtZXMpCiAJCXJldHVybiAtRU5PU1lTOwogCXJldHVybiBnbnR0YWJfbWFwKDAsIG5yX2dyYW50X2ZyYW1lcyAtIDEpOwogfQogCi1zdGF0aWMgaW50IGdudHRhYl9zdXNwZW5kKHZvaWQpCitpbnQgZ250dGFiX3N1c3BlbmQodm9pZCkKIHsKIAlhcmNoX2dudHRhYl91bm1hcF9zaGFyZWQoc2hhcmVkLCBucl9ncmFudF9mcmFtZXMpOwogCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4vbWFuYWdlLmMgYi9kcml2ZXJzL3hlbi9tYW5hZ2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjU0NmUzCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy94ZW4vbWFuYWdlLmMKQEAgLTAsMCArMSwyNTIgQEAKKy8qCisgKiBIYW5kbGUgZXh0ZXJuIHJlcXVlc3RzIGZvciBzaHV0ZG93biwgcmVib290IGFuZCBzeXNycQorICovCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CisjaW5jbHVkZSA8bGludXgvcmVib290Lmg+CisjaW5jbHVkZSA8bGludXgvc3lzcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9zdG9wX21hY2hpbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9mcmVlemVyLmg+CisKKyNpbmNsdWRlIDx4ZW4veGVuYnVzLmg+CisjaW5jbHVkZSA8eGVuL2dyYW50X3RhYmxlLmg+CisjaW5jbHVkZSA8eGVuL2V2ZW50cy5oPgorI2luY2x1ZGUgPHhlbi9odmMtY29uc29sZS5oPgorI2luY2x1ZGUgPHhlbi94ZW4tb3BzLmg+CisKKyNpbmNsdWRlIDxhc20veGVuL2h5cGVyY2FsbC5oPgorI2luY2x1ZGUgPGFzbS94ZW4vcGFnZS5oPgorCitlbnVtIHNodXRkb3duX3N0YXRlIHsKKwlTSFVURE9XTl9JTlZBTElEID0gLTEsCisJU0hVVERPV05fUE9XRVJPRkYgPSAwLAorCVNIVVRET1dOX1NVU1BFTkQgPSAyLAorCS8qIENvZGUgMyBpcyBTSFVURE9XTl9DUkFTSCwgd2hpY2ggd2UgZG9uJ3QgdXNlIGJlY2F1c2UgdGhlIGRvbWFpbiBjYW4gb25seQorCSAgIHJlcG9ydCBhIGNyYXNoLCBub3QgYmUgaW5zdHJ1Y3RlZCB0byBjcmFzaCEKKwkgICBIQUxUIGlzIHRoZSBzYW1lIGFzIFBPV0VST0ZGLCBhcyBmYXIgYXMgd2UncmUgY29uY2VybmVkLiAgVGhlIHRvb2xzIHVzZQorCSAgIHRoZSBkaXN0aW5jdGlvbiB3aGVuIHdlIHJldHVybiB0aGUgcmVhc29uIGNvZGUgdG8gdGhlbS4gICovCisJIFNIVVRET1dOX0hBTFQgPSA0LAorfTsKKworLyogSWdub3JlIG11bHRpcGxlIHNodXRkb3duIHJlcXVlc3RzLiAqLworc3RhdGljIGVudW0gc2h1dGRvd25fc3RhdGUgc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX0lOVkFMSUQ7CisKKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKK3N0YXRpYyBpbnQgeGVuX3N1c3BlbmQodm9pZCAqZGF0YSkKK3sKKwlpbnQgKmNhbmNlbGxlZCA9IGRhdGE7CisJaW50IGVycjsKKworCUJVR19PTighaXJxc19kaXNhYmxlZCgpKTsKKworCWxvYWRfY3IzKHN3YXBwZXJfcGdfZGlyKTsKKworCWVyciA9IGRldmljZV9wb3dlcl9kb3duKFBNU0dfU1VTUEVORCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgInhlbl9zdXNwZW5kOiBkZXZpY2VfcG93ZXJfZG93biBmYWlsZWQ6ICVkXG4iLAorCQkgICAgICAgZXJyKTsKKwkJcmV0dXJuIGVycjsKKwl9CisKKwl4ZW5fbW1fcGluX2FsbCgpOworCWdudHRhYl9zdXNwZW5kKCk7CisJeGVuX3ByZV9zdXNwZW5kKCk7CisKKwkvKgorCSAqIFRoaXMgaHlwZXJjYWxsIHJldHVybnMgMSBpZiBzdXNwZW5kIHdhcyBjYW5jZWxsZWQKKwkgKiBvciB0aGUgZG9tYWluIHdhcyBtZXJlbHkgY2hlY2twb2ludGVkLCBhbmQgMCBpZiBpdAorCSAqIGlzIHJlc3VtaW5nIGluIGEgbmV3IGRvbWFpbi4KKwkgKi8KKwkqY2FuY2VsbGVkID0gSFlQRVJWSVNPUl9zdXNwZW5kKHZpcnRfdG9fbWZuKHhlbl9zdGFydF9pbmZvKSk7CisKKwl4ZW5fcG9zdF9zdXNwZW5kKCpjYW5jZWxsZWQpOworCWdudHRhYl9yZXN1bWUoKTsKKwl4ZW5fbW1fdW5waW5fYWxsKCk7CisKKwlkZXZpY2VfcG93ZXJfdXAoKTsKKworCWlmICghKmNhbmNlbGxlZCkgeworCQl4ZW5faXJxX3Jlc3VtZSgpOworCQl4ZW5fY29uc29sZV9yZXN1bWUoKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgZG9fc3VzcGVuZCh2b2lkKQoreworCWludCBlcnI7CisJaW50IGNhbmNlbGxlZCA9IDE7CisKKwlzaHV0dGluZ19kb3duID0gU0hVVERPV05fU1VTUEVORDsKKworI2lmZGVmIENPTkZJR19QUkVFTVBUCisJLyogSWYgdGhlIGtlcm5lbCBpcyBwcmVlbXB0aWJsZSwgd2UgbmVlZCB0byBmcmVlemUgYWxsIHRoZSBwcm9jZXNzZXMKKwkgICB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZyBpbiB0aGUgbWlkZGxlIG9mIGEgcGFnZXRhYmxlIHVwZGF0ZQorCSAgIGR1cmluZyBzdXNwZW5kLiAqLworCWVyciA9IGZyZWV6ZV9wcm9jZXNzZXMoKTsKKwlpZiAoZXJyKSB7CisJCXByaW50ayhLRVJOX0VSUiAieGVuIHN1c3BlbmQ6IGZyZWV6ZSBmYWlsZWQgJWRcbiIsIGVycik7CisJCXJldHVybjsKKwl9CisjZW5kaWYKKworCWVyciA9IGRldmljZV9zdXNwZW5kKFBNU0dfU1VTUEVORCk7CisJaWYgKGVycikgeworCQlwcmludGsoS0VSTl9FUlIgInhlbiBzdXNwZW5kOiBkZXZpY2Vfc3VzcGVuZCAlZFxuIiwgZXJyKTsKKwkJZ290byBvdXQ7CisJfQorCisJcHJpbnRrKCJzdXNwZW5kaW5nIHhlbmJ1cy4uLlxuIik7CisJLyogWFhYIHVzZSBub3JtYWwgZGV2aWNlIHRyZWU/ICovCisJeGVuYnVzX3N1c3BlbmQoKTsKKworCWVyciA9IHN0b3BfbWFjaGluZV9ydW4oeGVuX3N1c3BlbmQsICZjYW5jZWxsZWQsIDApOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gc3RhcnQgeGVuX3N1c3BlbmQ6ICVkXG4iLCBlcnIpOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoIWNhbmNlbGxlZCkKKwkJeGVuYnVzX3Jlc3VtZSgpOworCWVsc2UKKwkJeGVuYnVzX3N1c3BlbmRfY2FuY2VsKCk7CisKKwlkZXZpY2VfcmVzdW1lKCk7CisKKwkvKiBNYWtlIHN1cmUgdGltZXIgZXZlbnRzIGdldCByZXRyaWdnZXJlZCBvbiBhbGwgQ1BVcyAqLworCWNsb2NrX3dhc19zZXQoKTsKK291dDoKKyNpZmRlZiBDT05GSUdfUFJFRU1QVAorCXRoYXdfcHJvY2Vzc2VzKCk7CisjZW5kaWYKKwlzaHV0dGluZ19kb3duID0gU0hVVERPV05fSU5WQUxJRDsKK30KKyNlbmRpZgkvKiBDT05GSUdfUE1fU0xFRVAgKi8KKworc3RhdGljIHZvaWQgc2h1dGRvd25faGFuZGxlcihzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwKKwkJCSAgICAgY29uc3QgY2hhciAqKnZlYywgdW5zaWduZWQgaW50IGxlbikKK3sKKwljaGFyICpzdHI7CisJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CisJaW50IGVycjsKKworCWlmIChzaHV0dGluZ19kb3duICE9IFNIVVRET1dOX0lOVkFMSUQpCisJCXJldHVybjsKKworIGFnYWluOgorCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9zdGFydCgmeGJ0KTsKKwlpZiAoZXJyKQorCQlyZXR1cm47CisKKwlzdHIgPSAoY2hhciAqKXhlbmJ1c19yZWFkKHhidCwgImNvbnRyb2wiLCAic2h1dGRvd24iLCBOVUxMKTsKKwkvKiBJZ25vcmUgcmVhZCBlcnJvcnMgYW5kIGVtcHR5IHJlYWRzLiAqLworCWlmIChYRU5CVVNfSVNfRVJSX1JFQUQoc3RyKSkgeworCQl4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhidCwgMSk7CisJCXJldHVybjsKKwl9CisKKwl4ZW5idXNfd3JpdGUoeGJ0LCAiY29udHJvbCIsICJzaHV0ZG93biIsICIiKTsKKworCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAwKTsKKwlpZiAoZXJyID09IC1FQUdBSU4pIHsKKwkJa2ZyZWUoc3RyKTsKKwkJZ290byBhZ2FpbjsKKwl9CisKKwlpZiAoc3RyY21wKHN0ciwgInBvd2Vyb2ZmIikgPT0gMCB8fAorCSAgICBzdHJjbXAoc3RyLCAiaGFsdCIpID09IDApIHsKKwkJc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX1BPV0VST0ZGOworCQlvcmRlcmx5X3Bvd2Vyb2ZmKGZhbHNlKTsKKwl9IGVsc2UgaWYgKHN0cmNtcChzdHIsICJyZWJvb3QiKSA9PSAwKSB7CisJCXNodXR0aW5nX2Rvd24gPSBTSFVURE9XTl9QT1dFUk9GRjsgLyogPyAqLworCQljdHJsX2FsdF9kZWwoKTsKKyNpZmRlZiBDT05GSUdfUE1fU0xFRVAKKwl9IGVsc2UgaWYgKHN0cmNtcChzdHIsICJzdXNwZW5kIikgPT0gMCkgeworCQlkb19zdXNwZW5kKCk7CisjZW5kaWYKKwl9IGVsc2UgeworCQlwcmludGsoS0VSTl9JTkZPICJJZ25vcmluZyBzaHV0ZG93biByZXF1ZXN0OiAlc1xuIiwgc3RyKTsKKwkJc2h1dHRpbmdfZG93biA9IFNIVVRET1dOX0lOVkFMSUQ7CisJfQorCisJa2ZyZWUoc3RyKTsKK30KKworc3RhdGljIHZvaWQgc3lzcnFfaGFuZGxlcihzdHJ1Y3QgeGVuYnVzX3dhdGNoICp3YXRjaCwgY29uc3QgY2hhciAqKnZlYywKKwkJCSAgdW5zaWduZWQgaW50IGxlbikKK3sKKwljaGFyIHN5c3JxX2tleSA9ICdcMCc7CisJc3RydWN0IHhlbmJ1c190cmFuc2FjdGlvbiB4YnQ7CisJaW50IGVycjsKKworIGFnYWluOgorCWVyciA9IHhlbmJ1c190cmFuc2FjdGlvbl9zdGFydCgmeGJ0KTsKKwlpZiAoZXJyKQorCQlyZXR1cm47CisJaWYgKCF4ZW5idXNfc2NhbmYoeGJ0LCAiY29udHJvbCIsICJzeXNycSIsICIlYyIsICZzeXNycV9rZXkpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiVW5hYmxlIHRvIHJlYWQgc3lzcnEgY29kZSBpbiAiCisJCSAgICAgICAiY29udHJvbC9zeXNycVxuIik7CisJCXhlbmJ1c190cmFuc2FjdGlvbl9lbmQoeGJ0LCAxKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChzeXNycV9rZXkgIT0gJ1wwJykKKwkJeGVuYnVzX3ByaW50Zih4YnQsICJjb250cm9sIiwgInN5c3JxIiwgIiVjIiwgJ1wwJyk7CisKKwllcnIgPSB4ZW5idXNfdHJhbnNhY3Rpb25fZW5kKHhidCwgMCk7CisJaWYgKGVyciA9PSAtRUFHQUlOKQorCQlnb3RvIGFnYWluOworCisJaWYgKHN5c3JxX2tleSAhPSAnXDAnKQorCQloYW5kbGVfc3lzcnEoc3lzcnFfa2V5LCBOVUxMKTsKK30KKworc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggc2h1dGRvd25fd2F0Y2ggPSB7CisJLm5vZGUgPSAiY29udHJvbC9zaHV0ZG93biIsCisJLmNhbGxiYWNrID0gc2h1dGRvd25faGFuZGxlcgorfTsKKworc3RhdGljIHN0cnVjdCB4ZW5idXNfd2F0Y2ggc3lzcnFfd2F0Y2ggPSB7CisJLm5vZGUgPSAiY29udHJvbC9zeXNycSIsCisJLmNhbGxiYWNrID0gc3lzcnFfaGFuZGxlcgorfTsKKworc3RhdGljIGludCBzZXR1cF9zaHV0ZG93bl93YXRjaGVyKHZvaWQpCit7CisJaW50IGVycjsKKworCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmc2h1dGRvd25fd2F0Y2gpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gc2V0IHNodXRkb3duIHdhdGNoZXJcbiIpOworCQlyZXR1cm4gZXJyOworCX0KKworCWVyciA9IHJlZ2lzdGVyX3hlbmJ1c193YXRjaCgmc3lzcnFfd2F0Y2gpOworCWlmIChlcnIpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gc2V0IHN5c3JxIHdhdGNoZXJcbiIpOworCQlyZXR1cm4gZXJyOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNodXRkb3duX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbm90aWZpZXIsCisJCQkgIHVuc2lnbmVkIGxvbmcgZXZlbnQsCisJCQkgIHZvaWQgKmRhdGEpCit7CisJc2V0dXBfc2h1dGRvd25fd2F0Y2hlcigpOworCXJldHVybiBOT1RJRllfRE9ORTsKK30KKworc3RhdGljIGludCBfX2luaXQgc2V0dXBfc2h1dGRvd25fZXZlbnQodm9pZCkKK3sKKwlzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHhlbnN0b3JlX25vdGlmaWVyID0geworCQkubm90aWZpZXJfY2FsbCA9IHNodXRkb3duX2V2ZW50CisJfTsKKwlyZWdpc3Rlcl94ZW5zdG9yZV9ub3RpZmllcigmeGVuc3RvcmVfbm90aWZpZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N1YnN5c19pbml0Y2FsbChzZXR1cF9zaHV0ZG93bl9ldmVudCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jbGllbnQuYwppbmRleCAwZjg2YjBmLi45Njc4YjNlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NsaWVudC5jCisrKyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY2xpZW50LmMKQEAgLTExNyw3ICsxMTcsNyBAQAogCWNoYXIgKnBhdGg7CiAKIAl2YV9zdGFydChhcCwgcGF0aGZtdCk7Ci0JcGF0aCA9IGt2YXNwcmludGYoR0ZQX0tFUk5FTCwgcGF0aGZtdCwgYXApOworCXBhdGggPSBrdmFzcHJpbnRmKEdGUF9OT0lPIHwgX19HRlBfSElHSCwgcGF0aGZtdCwgYXApOwogCXZhX2VuZChhcCk7CiAKIAlpZiAoIXBhdGgpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY29tbXMuYyBiL2RyaXZlcnMveGVuL3hlbmJ1cy94ZW5idXNfY29tbXMuYwppbmRleCA2ZWZiZTNmLi4wOTBjNjFlIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX2NvbW1zLmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c19jb21tcy5jCkBAIC0yMDMsNyArMjAzLDYgQEAKIGludCB4Yl9pbml0X2NvbW1zKHZvaWQpCiB7CiAJc3RydWN0IHhlbnN0b3JlX2RvbWFpbl9pbnRlcmZhY2UgKmludGYgPSB4ZW5fc3RvcmVfaW50ZXJmYWNlOwotCWludCBlcnI7CiAKIAlpZiAoaW50Zi0+cmVxX3Byb2QgIT0gaW50Zi0+cmVxX2NvbnMpCiAJCXByaW50ayhLRVJOX0VSUiAiWEVOQlVTIHJlcXVlc3QgcmluZyBpcyBub3QgcXVpZXNjZW50ICIKQEAgLTIxNiwxOCArMjE1LDIwIEBACiAJCWludGYtPnJzcF9jb25zID0gaW50Zi0+cnNwX3Byb2Q7CiAJfQogCi0JaWYgKHhlbmJ1c19pcnEpCi0JCXVuYmluZF9mcm9tX2lycWhhbmRsZXIoeGVuYnVzX2lycSwgJnhiX3dhaXRxKTsKKwlpZiAoeGVuYnVzX2lycSkgeworCQkvKiBBbHJlYWR5IGhhdmUgYW4gaXJxOyBhc3N1bWUgd2UncmUgcmVzdW1pbmcgKi8KKwkJcmViaW5kX2V2dGNobl9pcnEoeGVuX3N0b3JlX2V2dGNobiwgeGVuYnVzX2lycSk7CisJfSBlbHNlIHsKKwkJaW50IGVycjsKKwkJZXJyID0gYmluZF9ldnRjaG5fdG9faXJxaGFuZGxlcih4ZW5fc3RvcmVfZXZ0Y2huLCB3YWtlX3dhaXRpbmcsCisJCQkJCQkwLCAieGVuYnVzIiwgJnhiX3dhaXRxKTsKKwkJaWYgKGVyciA8PSAwKSB7CisJCQlwcmludGsoS0VSTl9FUlIgIlhFTkJVUyByZXF1ZXN0IGlycSBmYWlsZWQgJWlcbiIsIGVycik7CisJCQlyZXR1cm4gZXJyOworCQl9CiAKLQllcnIgPSBiaW5kX2V2dGNobl90b19pcnFoYW5kbGVyKAotCQl4ZW5fc3RvcmVfZXZ0Y2huLCB3YWtlX3dhaXRpbmcsCi0JCTAsICJ4ZW5idXMiLCAmeGJfd2FpdHEpOwotCWlmIChlcnIgPD0gMCkgewotCQlwcmludGsoS0VSTl9FUlIgIlhFTkJVUyByZXF1ZXN0IGlycSBmYWlsZWQgJWlcbiIsIGVycik7Ci0JCXJldHVybiBlcnI7CisJCXhlbmJ1c19pcnEgPSBlcnI7CiAJfQogCi0JeGVuYnVzX2lycSA9IGVycjsKLQogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c194cy5jIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c194cy5jCmluZGV4IDIyN2Q1M2IxLi43ZjJmOTFjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3hlbi94ZW5idXMveGVuYnVzX3hzLmMKKysrIGIvZHJpdmVycy94ZW4veGVuYnVzL3hlbmJ1c194cy5jCkBAIC0yODMsOSArMjgzLDkgQEAKIAljaGFyICpidWZmZXI7CiAKIAlpZiAoc3RybGVuKG5hbWUpID09IDApCi0JCWJ1ZmZlciA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiJXMiLCBkaXIpOworCQlidWZmZXIgPSBrYXNwcmludGYoR0ZQX05PSU8gfCBfX0dGUF9ISUdILCAiJXMiLCBkaXIpOwogCWVsc2UKLQkJYnVmZmVyID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICIlcy8lcyIsIGRpciwgbmFtZSk7CisJCWJ1ZmZlciA9IGthc3ByaW50ZihHRlBfTk9JTyB8IF9fR0ZQX0hJR0gsICIlcy8lcyIsIGRpciwgbmFtZSk7CiAJcmV0dXJuICghYnVmZmVyKSA/IEVSUl9QVFIoLUVOT01FTSkgOiBidWZmZXI7CiB9CiAKQEAgLTI5Nyw3ICsyOTcsNyBAQAogCSpudW0gPSBjb3VudF9zdHJpbmdzKHN0cmluZ3MsIGxlbik7CiAKIAkvKiBUcmFuc2ZlciB0byBvbmUgYmlnIGFsbG9jIGZvciBlYXN5IGZyZWVpbmcuICovCi0JcmV0ID0ga21hbGxvYygqbnVtICogc2l6ZW9mKGNoYXIgKikgKyBsZW4sIEdGUF9LRVJORUwpOworCXJldCA9IGttYWxsb2MoKm51bSAqIHNpemVvZihjaGFyICopICsgbGVuLCBHRlBfTk9JTyB8IF9fR0ZQX0hJR0gpOwogCWlmICghcmV0KSB7CiAJCWtmcmVlKHN0cmluZ3MpOwogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKQEAgLTc1MSw3ICs3NTEsNyBAQAogCX0KIAogCi0JbXNnID0ga21hbGxvYyhzaXplb2YoKm1zZyksIEdGUF9LRVJORUwpOworCW1zZyA9IGttYWxsb2Moc2l6ZW9mKCptc2cpLCBHRlBfTk9JTyB8IF9fR0ZQX0hJR0gpOwogCWlmIChtc2cgPT0gTlVMTCkgewogCQllcnIgPSAtRU5PTUVNOwogCQlnb3RvIG91dDsKQEAgLTc2Myw3ICs3NjMsNyBAQAogCQlnb3RvIG91dDsKIAl9CiAKLQlib2R5ID0ga21hbGxvYyhtc2ctPmhkci5sZW4gKyAxLCBHRlBfS0VSTkVMKTsKKwlib2R5ID0ga21hbGxvYyhtc2ctPmhkci5sZW4gKyAxLCBHRlBfTk9JTyB8IF9fR0ZQX0hJR0gpOwogCWlmIChib2R5ID09IE5VTEwpIHsKIAkJa2ZyZWUobXNnKTsKIAkJZXJyID0gLUVOT01FTTsKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL01ha2VmaWxlIGIvZmlybXdhcmUvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRmMmZiMwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL01ha2VmaWxlCkBAIC0wLDAgKzEsMTc1IEBACisjCisjIGtidWlsZCBmaWxlIGZvciBmaXJtd2FyZS8KKyMKKworIyBDcmVhdGUgJChmd2FicykgZnJvbSAkKENPTkZJR19FWFRSQV9GSVJNV0FSRV9ESVIpIC0tIGlmIGl0IGRvZXNuJ3QgaGF2ZSBhCisjIGxlYWRpbmcgLywgaXQncyByZWxhdGl2ZSB0byAkKHNyY3RyZWUpLgorZndkaXIgOj0gJChzdWJzdCAiLCwkKENPTkZJR19FWFRSQV9GSVJNV0FSRV9ESVIpKQorZndhYnMgOj0gJChhZGRwcmVmaXggJChzcmN0cmVlKS8sJChmaWx0ZXItb3V0IC8lLCQoZndkaXIpKSkkKGZpbHRlciAvJSwkKGZ3ZGlyKSkKKworZnctZXh0ZXJuYWwteSA6PSAkKHN1YnN0ICIsLCQoQ09ORklHX0VYVFJBX0ZJUk1XQVJFKSkKKworIyBUaGVyZSBhcmUgdGhyZWUgY2FzZXMgdG8gY2FyZSBhYm91dDoKKyMgMS4gQnVpbGRpbmcga2VybmVsIHdpdGggQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTD15IC0tICQoZnctc2hpcHBlZC15KSBzaG91bGQKKyMgICAgaW5jbHVkZSB0aGUgZmlybXdhcmUgZmlsZXMgdG8gaW5jbHVkZSwgYWNjb3JkaW5nIHRvIC5jb25maWcKKyMgMi4gJ21ha2UgbW9kdWxlc19pbnN0YWxsJywgd2hpY2ggd2lsbCBpbnN0YWxsIGZpcm13YXJlIGZvciBtb2R1bGVzLCBhbmQgCisjICAgIF9hbHNvXyBmb3IgdGhlIGluLWtlcm5lbCBkcml2ZXJzIHdoZW4gQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTD1uCisjIDMuICdtYWtlIGZpcm13YXJlX2luc3RhbGwnLCB3aGljaCBpbnN0YWxscyBhbGwgZmlybXdhcmUsIHVuY29uZGl0aW9uYWxseS4KKworIyBGb3IgdGhlIGZvcm1lciB0d28gY2FzZXMgd2Ugd2FudCAkKGZ3LXNoaXBwZWQteSkgYW5kICQoZnctc2hpcHBlZC1tKSB0byBiZQorIyBhY2N1cmF0ZS4gSW4gdGhlIGxhdHRlciBjYXNlIGl0IGRvZXNuJ3QgbWF0dGVyIC0tIGl0J2xsIHVzZSAkKGZ3LXNoaXBwZWQtYWxsKS4KKyMgQnV0IGJlIGF3YXJlIHRoYXQgdGhlIGNvbmZpZyBmaWxlIG1pZ2h0IG5vdCBiZSBpbmNsdWRlZCBhdCBhbGwuCisKK2Z3LXNoaXBwZWQtJChDT05GSUdfQVRBUklfRFNQNTZLKSArPSBkc3A1NmsvYm9vdHN0cmFwLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19BVE1fQU1CQVNTQURPUikgKz0gYXRtc2FyMTEuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfQ09NUFVUT05FKSArPSBpbnRlbGxpcG9ydDIuYmluCitmdy1zaGlwcGVkLSQoQ09ORklHX0RWQl9UVFVTQl9CVURHRVQpICs9IHR0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4KK2Z3LXNoaXBwZWQtJChDT05GSUdfU01DVFIpICs9IHRyX3NtY3RyLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19TTkRfS09SRzEyMTIpICs9IGtvcmcvazEyMTIuZHNwCitmdy1zaGlwcGVkLSQoQ09ORklHX1NORF9NQUVTVFJPMykgKz0gZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3IFwKKwkJCQkgICAgIGVzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfU05EX1NCMTZfQ1NQKSArPSBzYjE2L211bGF3X21haW4uY3NwIHNiMTYvYWxhd19tYWluLmNzcCBcCisJCQkJICAgICBzYjE2L2ltYV9hZHBjbV9pbml0LmNzcCBcCisJCQkJICAgICBzYjE2L2ltYV9hZHBjbV9wbGF5YmFjay5jc3AgXAorCQkJCSAgICAgc2IxNi9pbWFfYWRwY21fY2FwdHVyZS5jc3AKK2Z3LXNoaXBwZWQtJChDT05GSUdfU05EX1lNRlBDSSkgKz0geWFtYWhhL2RzMV9jdHJsLmZ3IHlhbWFoYS9kczFfZHNwLmZ3IFwKKwkJCQkgICB5YW1haGEvZHMxZV9jdHJsLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9EQUJVU0IpICs9IGRhYnVzYi9maXJtd2FyZS5mdyBkYWJ1c2IvYml0c3RyZWFtLmJpbgorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfRU1JMjYpICs9IGVtaTI2L2xvYWRlci5mdyBlbWkyNi9maXJtd2FyZS5mdyBcCisJCQkJICBlbWkyNi9iaXRzdHJlYW0uZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX0VNSTYyKSArPSBlbWk2Mi9sb2FkZXIuZncgZW1pNjIvYml0c3RyZWFtLmZ3IFwKKwkJCQkgIGVtaTYyL3NwZGlmLmZ3IGVtaTYyL21pZGkuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX0tBV0VUSCkgKz0ga2F3ZXRoL25ld19jb2RlLmJpbiBrYXdldGgvdHJpZ2dlcl9jb2RlLmJpbiBcCisJCQkJICAga2F3ZXRoL25ld19jb2RlX2ZpeC5iaW4gXAorCQkJCSAgIGthd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbgoraWZkZWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTAorZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fTVBSKSArPSBrZXlzcGFuL21wci5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMThYKSArPSBrZXlzcGFuL3VzYTE4eC5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTkpICs9IGtleXNwYW4vdXNhMTkuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTE5UUkpICs9IGtleXNwYW4vdXNhMTlxaS5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMTlRVykgKz0ga2V5c3Bhbi91c2ExOXF3LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0ExOVcpICs9IGtleXNwYW4vdXNhMTl3LmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOCkgKz0ga2V5c3Bhbi91c2EyOC5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0tFWVNQQU5fVVNBMjhYQSkgKz0ga2V5c3Bhbi91c2EyOHhhLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9VU0EyOFhCKSArPSBrZXlzcGFuL3VzYTI4eGIuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTI4WCkgKz0ga2V5c3Bhbi91c2EyOHguZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5VykgKz0ga2V5c3Bhbi91c2E0OXcuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9LRVlTUEFOX1VTQTQ5V0xDKSArPSBrZXlzcGFuL3VzYTQ5d2xjLmZ3CitlbHNlCitmdy1zaGlwcGVkLSA6PSBrZXlzcGFuL21wci5mdyBrZXlzcGFuL3VzYTE4eC5mdyBrZXlzcGFuL3VzYTE5LmZ3CVwKKwlrZXlzcGFuL3VzYTE5cWkuZncga2V5c3Bhbi91c2ExOXF3LmZ3IGtleXNwYW4vdXNhMTl3LmZ3CQlcCisJa2V5c3Bhbi91c2EyOC5mdyBrZXlzcGFuL3VzYTI4eGEuZncga2V5c3Bhbi91c2EyOHhiLmZ3CQlcCisJa2V5c3Bhbi91c2EyOHguZncga2V5c3Bhbi91c2E0OXcuZncga2V5c3Bhbi91c2E0OXdsYy5mdworZW5kaWYKK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9USSkgKz0gdGlfMzQxMC5mdyB0aV81MDUyLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfRURHRVBPUlQpICs9IGVkZ2Vwb3J0L2Jvb3QuZncgZWRnZXBvcnQvYm9vdDIuZncgXAorCQkJCQkgICAgZWRnZXBvcnQvZG93bi5mdyBlZGdlcG9ydC9kb3duMi5mdworZnctc2hpcHBlZC0kKENPTkZJR19VU0JfU0VSSUFMX0VER0VQT1JUX1RJKSArPSBlZGdlcG9ydC9kb3duMy5iaW4KK2Z3LXNoaXBwZWQtJChDT05GSUdfVVNCX1NFUklBTF9XSElURUhFQVQpICs9IHdoaXRlaGVhdF9sb2FkZXIuZncgd2hpdGVoZWF0LmZ3IFwKKwkJCQkJICAgIyB3aGl0ZWhlYXRfbG9hZGVyX2RlYnVnLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREEpICs9IGtleXNwYW5fcGRhL2tleXNwYW5fcGRhLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9TRVJJQUxfWElSQ09NKSArPSBrZXlzcGFuX3BkYS94aXJjb21fcGdzLmZ3Citmdy1zaGlwcGVkLSQoQ09ORklHX1VTQl9WSUNBTSkgKz0gdmljYW0vZmlybXdhcmUuZncKK2Z3LXNoaXBwZWQtJChDT05GSUdfVklERU9fQ1BJQTIpICs9IGNwaWEyL3N0djA2NzJfdnA0LmJpbgorCitmdy1zaGlwcGVkLWFsbCA6PSAkKGZ3LXNoaXBwZWQteSkgJChmdy1zaGlwcGVkLW0pICQoZnctc2hpcHBlZC0pCisKKyMgRGlyZWN0b3JpZXMgd2hpY2ggd2UgX21pZ2h0XyBuZWVkIHRvIGNyZWF0ZSwgc28gd2UgaGF2ZSBhIHJ1bGUgZm9yIHRoZW0uCitmaXJtd2FyZS1kaXJzIDo9ICQoc29ydCAkKHBhdHN1YnN0ICUsJChvYmp0cmVlKS8kKG9iaikvJS8sJChkaXIgJChmdy1leHRlcm5hbC15KSAkKGZ3LXNoaXBwZWQtYWxsKSkpKQorCitxdWlldF9jbWRfbWtkaXIgPSBNS0RJUiAgICQocGF0c3Vic3QgJChvYmp0cmVlKS8lLCUsJEApCisgICAgICBjbWRfbWtkaXIgPSBta2RpciAtcCAkQAorCitxdWlldF9jbWRfaWhleCAgPSBJSEVYICAgICRACisgICAgICBjbWRfaWhleCAgPSAkKE9CSkNPUFkpIC1JaWhleCAtT2JpbmFyeSAkPCAkQAorCitxdWlldF9jbWRfaWhleDJmdyAgPSBJSEVYMkZXICRACisgICAgICBjbWRfaWhleDJmdyAgPSAkKG9ianRyZWUpLyQob2JqKS9paGV4MmZ3ICQ8ICRACisKK3F1aWV0X2NtZF9oMTZ0b2Z3ICA9IEgxNlRPRlcgJEAKKyAgICAgIGNtZF9oMTZ0b2Z3ICA9ICQob2JqdHJlZSkvJChvYmopL2loZXgyZncgLXcgJDwgJEAKKworcXVpZXRfY21kX2Z3YmluID0gTUtfRlcgICAkQAorICAgICAgY21kX2Z3YmluID0gRldOQU1FPSIkKHBhdHN1YnN0IGZpcm13YXJlLyUuZ2VuLlMsJSwkQCkiOwkJICAgICBcCisJCSAgRldTVFI9IiQoc3Vic3QgLyxfLCQoc3Vic3QgLixfLCQoc3Vic3QgLSxfLCQocGF0c3Vic3QJICAgICBcCisJCQkJZmlybXdhcmUvJS5nZW4uUywlLCRAKSkpKSI7CQkgICAgIFwKKwkJICBBU01fV09SRD0kKGlmICQoQ09ORklHXzY0QklUKSwucXVhZCwubG9uZyk7CQkgICAgIFwKKwkJICBBU01fQUxJR049JChpZiAkKENPTkZJR182NEJJVCksMywyKTsJCQkgICAgIFwKKwkJICBQUk9HQklUUz0kKGlmICQoQ09ORklHX0FSTSksJSxAKXByb2diaXRzOwkJICAgICBcCisJCSAgZWNobyAiLyogR2VuZXJhdGVkIGJ5IGZpcm13YXJlL01ha2VmaWxlICovIgkJPiAkQDtcCisJCSAgZWNobyAiICAgIC5zZWN0aW9uIC5yb2RhdGEiCQkJCT4+JEA7XAorCQkgIGVjaG8gIiAgICAucDJhbGlnbiAkJHtBU01fQUxJR059IgkJCT4+JEA7XAorCQkgIGVjaG8gIl9md18kJHtGV1NUUn1fYmluOiIJCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5pbmNiaW4gXCIkKDIpXCIiCQkJCT4+JEA7XAorCQkgIGVjaG8gIl9md19lbmQ6IgkJCQkJPj4kQDtcCisJCSAgZWNobyAiICAgLnNlY3Rpb24gLnJvZGF0YS5zdHIsXCJhTVNcIiwkJHtQUk9HQklUU30sMSIJPj4kQDtcCisJCSAgZWNobyAiICAgIC5wMmFsaWduICQke0FTTV9BTElHTn0iCQkJPj4kQDtcCisJCSAgZWNobyAiX2Z3XyQke0ZXU1RSfV9uYW1lOiIJCQkJPj4kQDtcCisJCSAgZWNobyAiICAgIC5zdHJpbmcgXCIkJEZXTkFNRVwiIgkJCT4+JEA7XAorCQkgIGVjaG8gIiAgICAuc2VjdGlvbiAuYnVpbHRpbl9mdyxcImFcIiwkJHtQUk9HQklUU30iCT4+JEA7XAorCQkgIGVjaG8gIiAgICAucDJhbGlnbiAkJHtBU01fQUxJR059IgkJCT4+JEA7XAorCQkgIGVjaG8gIiAgICAkJHtBU01fV09SRH0gX2Z3XyQke0ZXU1RSfV9uYW1lIgkJPj4kQDtcCisJCSAgZWNobyAiICAgICQke0FTTV9XT1JEfSBfZndfJCR7RldTVFJ9X2JpbiIJCT4+JEA7XAorCQkgIGVjaG8gIiAgICAkJHtBU01fV09SRH0gX2Z3X2VuZCAtIF9md18kJHtGV1NUUn1fYmluIgk+PiRAOworCisjIE9uZSBvZiB0aGVzZSBmaWxlcyB3aWxsIGNoYW5nZSwgb3IgY29tZSBpbnRvIGV4aXN0ZW5jZSwgd2hlbmV2ZXIKKyMgdGhlIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBiZXR3ZWVuIDMyLWJpdCBhbmQgNjQtYml0LiBUaGUgLlMgZmlsZXMKKyMgbmVlZCB0byBjaGFuZ2Ugd2hlbiB0aGF0IGhhcHBlbnMuCit3b3Jkc2l6ZV9kZXBzIDo9ICQod2lsZGNhcmQgaW5jbHVkZS9jb25maWcvNjRiaXQuaCBpbmNsdWRlL2NvbmZpZy8zMmJpdC5oIFwKKwkJaW5jbHVkZS9jb25maWcvcHBjMzIuaCBpbmNsdWRlL2NvbmZpZy9wcGM2NC5oIFwKKwkJaW5jbHVkZS9jb25maWcvc3VwZXJoMzIuaCBpbmNsdWRlL2NvbmZpZy9zdXBlcmg2NC5oIFwKKwkJaW5jbHVkZS9jb25maWcveDg2XzMyLmggaW5jbHVkZS9jb25maWcveDg2XzY0LmgpCisKKyMgV29ya2Fyb3VuZCBmb3IgbWFrZSA8IDMuODEsIHdoZXJlIC5TRUNPTkRFWFBBTlNJT04gZG9lc24ndCB3b3JrLgorIyBJdCdsbCBlbmQgdXAgZGVwZW5kaW5nIG9uIHRoZXNlIHRhcmdldHMsIHNvIG1ha2UgdGhlbSBhIFBIT05ZIHJ1bGUgd2hpY2gKKyMgZGVwZW5kcyBvbiBfYWxsXyB0aGUgZGlyZWN0b3JpZXMgaW4gJChmaXJtd2FyZS1kaXJzKSwgYW5kIGl0J2xsIHdvcmsgb3V0IE9LLgorUEhPTlkgKz0gJChvYmp0cmVlKS8kJCglKSAkKG9ianRyZWUpLyQob2JqKS8kJCglKQorJChvYmp0cmVlKS8kJCglKSAkKG9ianRyZWUpLyQob2JqKS8kJCglKTogJChmaXJtd2FyZS1kaXJzKQorCUB0cnVlCisKKyMgRm9yIHRoZSAkJChkaXIgJSkgdHJpY2ssIHdoZXJlIHdlIG5lZWQgJSB0byBiZSBleHBhbmRlZCBmaXJzdC4KKy5TRUNPTkRFWFBBTlNJT046CisKKyQocGF0c3Vic3QgJSwkKG9iaikvJS5nZW4uUywgJChmdy1zaGlwcGVkLXkpKTogJTogJCh3b3Jkc2l6ZV9kZXBzKSBcCisJCXwgJChvYmp0cmVlKS8kJChkaXIgJSkKKwkkKGNhbGwgY21kLGZ3YmluLCQocGF0c3Vic3QgJS5nZW4uUywlLCRAKSkKKyQocGF0c3Vic3QgJSwkKG9iaikvJS5nZW4uUywgJChmdy1leHRlcm5hbC15KSk6ICU6ICQod29yZHNpemVfZGVwcykgXAorCQlpbmNsdWRlL2NvbmZpZy9leHRyYS9maXJtd2FyZS9kaXIuaCB8ICQob2JqdHJlZSkvJCQoZGlyICUpCisJJChjYWxsIGNtZCxmd2JpbiwkKGZ3YWJzKS8kKHBhdHN1YnN0ICQob2JqKS8lLmdlbi5TLCUsJEApKQorCisjIFRoZSAubyBmaWxlcyBkZXBlbmQgb24gdGhlIGJpbmFyaWVzIGRpcmVjdGx5OyB0aGUgLlMgZmlsZXMgZG9uJ3QuCiskKHBhdHN1YnN0ICUsJChvYmopLyUuZ2VuLm8sICQoZnctc2hpcHBlZC15KSk6ICUuZ2VuLm86ICUKKyQocGF0c3Vic3QgJSwkKG9iaikvJS5nZW4ubywgJChmdy1leHRlcm5hbC15KSk6ICQob2JqKS8lLmdlbi5vOiAkKGZ3ZGlyKS8lCisKKyMgLmloZXggaXMgdXNlZCBqdXN0IGFzIGEgc2ltcGxlIHdheSB0byBob2xkIGJpbmFyeSBmaWxlcyBpbiBhIHNvdXJjZSB0cmVlCisjIHdoZXJlIGJpbmFyaWVzIGFyZSBmcm93bmVkIHVwb24uIFRoZXkgYXJlIGRpcmVjdGx5IGNvbnZlcnRlZCB3aXRoIG9iamNvcHkuCiskKG9iaikvJTogJChvYmopLyUuaWhleCB8ICQob2JqdHJlZSkvJChvYmopLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsaWhleCkKKworIyAuSEVYIGlzIGFsc28gSW50ZWwgSEVYLCBidXQgd2hlcmUgdGhlIG9mZnNldCBhbmQgbGVuZ3RoIGluIGVhY2ggcmVjb3JkCisjIGlzIGFjdHVhbGx5IG1lYW5pbmdmdWwsIGJlY2F1c2UgdGhlIGZpcm13YXJlIGhhcyB0byBiZSBsb2FkZWQgaW4gYSBjZXJ0YWluCisjIG9yZGVyIHJhdGhlciB0aGFuIGFzIGEgc2luZ2xlIGJpbmFyeSBibG9iLiBUaHVzLCB3ZSBjb252ZXJ0IHRoZW0gaW50byBvdXIKKyMgbW9yZSBjb21wYWN0IGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBpaGV4IHJlY29yZHMgKDxsaW51eC9paGV4Lmg+KQorJChvYmopLyUuZnc6ICQob2JqKS8lLkhFWCAkKG9iaikvaWhleDJmdyB8ICQob2JqdHJlZSkvJChvYmopLyQkKGRpciAlKQorCSQoY2FsbCBjbWQsaWhleDJmdykKKworIyAuSDE2IGlzIG91ciBvd24gbW9kaWZpZWQgZm9ybSBvZiBJbnRlbCBIRVgsIHdpdGggMTYtYml0IGxlbmd0aCBmb3IgcmVjb3Jkcy4KKyQob2JqKS8lLmZ3OiAkKG9iaikvJS5IMTYgJChvYmopL2loZXgyZncgfCAkKG9ianRyZWUpLyQob2JqKS8kJChkaXIgJSkKKwkkKGNhbGwgY21kLGgxNnRvZncpCisKKyQoZmlybXdhcmUtZGlycyk6CisJJChjYWxsIGNtZCxta2RpcikKKworb2JqLXkJCQkJICs9ICQocGF0c3Vic3QgJSwlLmdlbi5vLCAkKGZ3LWV4dGVybmFsLXkpKQorb2JqLSQoQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTCkgKz0gJChwYXRzdWJzdCAlLCUuZ2VuLm8sICQoZnctc2hpcHBlZC15KSkKKworIyBSZW1vdmUgLlMgZmlsZXMgYW5kIGJpbmFyaWVzIGNyZWF0ZWQgZnJvbSBpaGV4CisjIChkdXJpbmcgJ21ha2UgY2xlYW4nIC5jb25maWcgaXNuJ3QgaW5jbHVkZWQgc28gdGhleSdyZSBhbGwgaW4gJChmdy1zaGlwcGVkLSkpCit0YXJnZXRzIDo9ICQoZnctc2hpcHBlZC0pICQocGF0c3Vic3QgJChvYmopLyUsJSwgXAorCQkJCSQoc2hlbGwgZmluZCAkKG9iaikgLW5hbWUgXCouZ2VuLlMgMj4vZGV2L251bGwpKQorCisjIFdpdGhvdXQgdGhpcywgYnVpbHQtaW4ubyB3b24ndCBiZSBjcmVhdGVkIHdoZW4gaXQncyBlbXB0eSwgYW5kIHRoZQorIyBmaW5hbCB2bWxpbnV4IGxpbmsgd2lsbCBmYWlsLgorb2JqLW4gOj0gZHVtbXkKKworaG9zdHByb2dzLXkgOj0gaWhleDJmdwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvV0hFTkNFIGIvZmlybXdhcmUvV0hFTkNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2YzUxYjIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9XSEVOQ0UKQEAgLTAsMCArMSwzNDEgQEAKKyAgICAgICAgICAgICAqKioqKioqKioqCisgICAgICAgICAgICAgKiBXSEVOQ0UgKgorICAgICAgICAgICAgICoqKioqKioqKioKKworVGhpcyBmaWxlIGF0dGVtcHRzIHRvIGRvY3VtZW50IHRoZSBvcmlnaW4gYW5kIGxpY2Vuc2luZyBpbmZvcm1hdGlvbiwKK2lmIGtub3duLCBmb3IgZWFjaCBwaWVjZSBvZiBmaXJtd2FyZSBkaXN0cmlidXRlZCBmb3IgdXNlIHdpdGggdGhlIExpbnV4CitrZXJuZWwuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjoga29yZzEyMTIgLS0gS29yZyAxMjEyIElPIGF1ZGlvIGRldmljZQorCitGaWxlOiBrb3JnL2sxMjEyLmRzcAorCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGFsc2EtZmlybXdhcmUgcGFja2FnZSBpbiBoZXggZm9ybTsgbm8gbGljZW5zaW5nIGluZm9ybWF0aW9uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IG1hZXN0cm8zIC0tIEVTUyBBbGxlZ3JvIE1hZXN0cm8zIGF1ZGlvIGRldmljZQorCitGaWxlOiBlc3MvbWFlc3RybzNfYXNzcF9rZXJuZWwuZncKK0ZpbGU6IGVzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZncKKworTGljZW5jZTogVW5rbm93bgorCitGb3VuZCBpbiBhbHNhLWZpcm13YXJlIHBhY2thZ2UgaW4gaGV4IGZvcm0gd2l0aCBhIGNvbW1lbnQgY2xhaW1pbmcgdG8KK2JlIEdQTHYyKywgYnV0IHdpdGhvdXQgc291cmNlIC0tIGFuZCB3aXRoIGFub3RoZXIgY29tbWVudCBzYXlpbmcgIkVTUworZHJvcHMgYmluYXJ5IGRzcCBjb2RlIGltYWdlcyBvbiBvdXIgaGVhZHMsIGJ1dCB3ZSBkb24ndCBnZXQgdG8gc2VlCitzcGVjcyBvbiB0aGUgZHNwLiIKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiB5bWZwY2kgLS0gWWFtYWhhIFlNRjcyNC83NDAvNzQ0Lzc1NCBhdWRpbyBkZXZpY2VzCisKK0ZpbGU6IHlhbWFoYS9kczFfY3RybC5mdworRmlsZTogeWFtYWhhL2RzMV9kc3AuZncKK0ZpbGU6IHlhbWFoYS9kczFlX2N0cmwuZncKKworTGljZW5jZTogVW5rbm93bgorCitGb3VuZCBhbHNhLWZpcm13YXJlIHBhY2thZ2UgaW4gaGV4IGZvcm0sIHdpdGggdGhlIGZvbGxvd2luZyBjb21tZW50OgorICAgQ29weXJpZ2h0IChjKSAxOTk3LTE5OTkgWWFtYWhhIENvcnBvcmF0aW9uLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHNtY3RyIC0tIFNNQyBJU0EvTUNBIFRva2VuIFJpbmcgYWRhcHRlcgorCitGaWxlOiB0cl9zbWN0ci5iaW4KK0luZm86IE1DVC5CSU4gdjYuM0MxIDAzLzAxLzk1CisKK09yaWdpbmFsIGxpY2VuY2UgaW5mbzoKKworICogVGhpcyBmaXJtd2FyZSBpcyBsaWNlbnNlZCB0byB5b3Ugc3RyaWN0bHkgZm9yIHVzZSBpbiBjb25qdW5jdGlvbgorICogd2l0aCB0aGUgdXNlIG9mIFNNQyBUb2tlblJpbmcgYWRhcHRlcnMuIFRoZXJlIGlzIG5vIHdhcmFudHkKKyAqIGV4cHJlc3NlZCBvciBpbXBsaWVkIGFib3V0IGl0cyBmaXRuZXNzIGZvciBhbnkgcHVycG9zZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBrYXdldGggLS0gVVNCIEtMU0kgS0w1VVNCMTAxLWJhc2VkIEV0aGVybmV0IGRldmljZQorCitGaWxlOiBrYXdldGgvbmV3X2NvZGUuYmluCitGaWxlOiBrYXdldGgvbmV3X2NvZGVfZml4LmJpbgorRmlsZToga2F3ZXRoL3RyaWdnZXJfY29kZS5iaW4KK0ZpbGU6IGthd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbgorCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIHRoZSBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHR0dXNiLWJ1ZGdldCAtLSBUZWNobm90cmVuZC9IYXVwcGF1Z2UgTm92YS1VU0IgZGV2aWNlcworCitGaWxlOiB0dHVzYi1idWRnZXQvZHNwYm9vdGNvZGUuYmluCisKK0xpY2VuY2U6IFVua25vd24KKworRm91bmQgaW4gaGV4IGZvcm0gaW4gdGhlIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjoga2V5c3BhbiAtLSBVU0IgS2V5c3BhbiBVU0EteHh4IHNlcmlhbCBkZXZpY2UKKworRmlsZToga2V5c3Bhbi9tcHIuZncKK0ZpbGU6IGtleXNwYW4vdXNhMTh4LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTE5LmZ3CitGaWxlOiBrZXlzcGFuL3VzYTE5cWkuZncKK0ZpbGU6IGtleXNwYW4vdXNhMTlxdy5mdworRmlsZToga2V5c3Bhbi91c2ExOXcuZncKK0ZpbGU6IGtleXNwYW4vdXNhMjguZncKK0ZpbGU6IGtleXNwYW4vdXNhMjh4YS5mdworRmlsZToga2V5c3Bhbi91c2EyOHhiLmZ3CitGaWxlOiBrZXlzcGFuL3VzYTI4eC5mdworRmlsZToga2V5c3Bhbi91c2E0OXcuZncKK0ZpbGU6IGtleXNwYW4vdXNhNDl3bGMuZncKKworQ29udmVydGVkIGZyb20gSW50ZWwgSEVYIGZpbGVzLCB1c2VkIGluIG91ciBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgaWhleC4KKworT3JpZ2luYWwgbGljZW5jZSBpbmZvcm1hdGlvbjoKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjoga2V5c3Bhbl9wZGEgLS0gVVNCIEtleXNwYW4gUERBIHNpbmdsZS1wb3J0IHNlcmlhbCBkZXZpY2UKKworRmlsZToga2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuZncKK1NvdXJjZToga2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuUworCitGaWxlOiBrZXlzcGFuX3BkYS94aXJjb21fcGdzLmZ3CitTb3VyY2U6IGtleXNwYW5fcGRhL3hpcmNvbV9wZ3MuUworCitMaWNlbmNlOiBHUEx2MisKKworQ29tcGlsZWQgZnJvbSBvcmlnaW5hbCA4MDUxIHNvdXJjZSBpbnRvIEludGVsIEhFWCwgdXNlZCBpbiBvdXIgYmluYXJ5IGloZXggZm9ybS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBlbWkyNiAtLSBFTUkgMnw2IFVTQiBBdWRpbyBpbnRlcmZhY2UKKworRmlsZTogZW1pMjYvYml0c3RyZWFtLmZ3CitJbmZvOiBWRVJTSU9OPTEuMS4xLjEzMSBEQVRFPTIwMDFkZWMwNgorCitGaWxlOiBlbWkyNi9maXJtd2FyZS5mdworSW5mbzogVkVSU0lPTj0xLjAuMi45MTYgREFURT0xMi4wMi4yMDAyCisKK0ZpbGU6IGVtaTI2L2xvYWRlci5mdworCitDb252ZXJ0ZWQgZnJvbSBJbnRlbCBIRVggZmlsZXMsIHVzZWQgaW4gb3VyIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBpaGV4LgorCitPcmlnaW5hbCBsaWNlbmNlIGluZm9ybWF0aW9uOgorLyoKKyAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKKyAqCisgKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKKyAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAorICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKKyAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KKyAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKyAqIGltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorICogaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKyAqCisgKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKKyAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKKyAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKKyAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCisgKi8KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiBlbWk2MiAtLSBFTUkgNnwybSBVU0IgQXVkaW8gaW50ZXJmYWNlCisKK0ZpbGU6IGVtaTYyL2JpdHN0cmVhbS5mdworSW5mbzogVkVSU0lPTj0xLjAuMC4xOTEgREFURT0gMjAwMm9jdDI4CisKK0ZpbGU6IGVtaTYyL2xvYWRlci5mdworU291cmNlOiBFTUlMT0FELkhFWAorSW5mbzogVkVSU0lPTj0xLjAuMi4wMDIgREFURT0xMC4wMS4yMDAyCisKK0ZpbGU6IGVtaTYyL21pZGkuZncKK1NvdXJjZTogRU1JNjJNRlcuSEVYCitJbmZvOiBWRVJTSU9OPTEuMDQuMDYyIERBVEU9MTYuMTAuMjAwMgorCitGaWxlOiBlbWk2Mi9zcGRpZi5mdworU291cmNlOiBFTUk2MlNGVy5IRVgKK0luZm86IFZFUlNJT049MS4wNC4wNjIgREFURT0xNi4xMC4yMDAyCisKK0NvbnZlcnRlZCBmcm9tIEludGVsIEhFWCBmaWxlcywgdXNlZCBpbiBvdXIgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXguCisKK09yaWdpbmFsIGxpY2VuY2UgaW5mb3JtYXRpb246IE5vbmUKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRHJpdmVyOiB0dV91c2JfMzQxMF81MDUyIC0tIFVTQiBUSSAzNDEwLzUwNTIgc2VyaWFsIGRldmljZQorCitGaWxlOiB0aV8zNDEwLmZ3CitJbmZvOiBmaXJtd2FyZSA5LzEwLzA0IEZXMzQxMF9TcGVjaWFsX1N0YXJ0V2RvZ09uU3RhcnRQb3J0CisKK0ZpbGU6IHRpXzUwNTIuZncKK0luZm86IGZpcm13YXJlIDkvMTgvMDQKKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyKywgYnV0IG5vIHNvdXJjZSB2aXNpYmxlLiBNYXJrZWQ6CisJIENvcHlyaWdodCAoQykgMjAwNCBUZXhhcyBJbnN0cnVtZW50cworCitGb3VuZCBpbiBoZXggZm9ybSBpbiBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IHdoaXRlaGVhdCAtLSBVU0IgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIHNlcmlhbCBkZXZpY2UKKworRmlsZTogd2hpdGVoZWF0LmZ3CitWZXJzaW9uOiA0LjA2CisKK0ZpbGU6IHdoaXRlaGVhdF9sb2FkZXIuZncKK0ZpbGU6IHdoaXRlaGVhdF9sb2FkZXJfZGVidWcuZncKKworTGljZW5jZTogQWxsZWdlZGx5IEdQTHYyLCBidXQgbm8gc291cmNlIHZpc2libGUuIE1hcmtlZDoKKwkgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgIENvbm5lY3RUZWNoIEluYworCitEZWJ1ZyBsb2FkZXIgY2xhaW1zIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3VyOgorCVBvcnQgMSBMRUQgZmxhc2hlcyB3aGVuIHRoZSB2ZW5kX2F4IHByb2dyYW0gaXMgcnVubmluZworCVBvcnQgMiBMRUQgZmxhc2hlcyB3aGVuIGFueSBTRVRVUCBjb21tYW5kIGFycml2ZXMKKwlQb3J0IDMgTEVEIGZsYXNoZXMgd2hlbiBhbnkgdmFsaWQgVkVORE9SIHJlcXVlc3Qgb2NjdXJzCisJUG9ydCA0IExFRCBmbGFzaGVzIHdoZW4gdGhlIEVYVEVSTkFMIFJBTSBET1dOTE9BRCByZXF1ZXN0IG9jY3VycworCitDb252ZXJ0ZWQgZnJvbSBJbnRlbCBIRVggZmlsZXMsIHVzZWQgaW4gb3VyIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiBpaGV4LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IGlwMiAtLSBDb21wdXRvbmUgSW50ZWxsaVBvcnQgUGx1cyBzZXJpYWwgZGV2aWNlCisKK0ZpbGU6IGludGVsbGlwb3J0Mi5iaW4KKworTGljZW5jZTogVW5rbm93bgorCitGb3VuZCBpbiBoZXggZm9ybSBpbiBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IENQaUEyIC0tIGNhbWVyYXMgYmFzZWQgb24gVmlzaW9uJ3MgQ1BpQTIKKworRmlsZTogY3BpYTIvc3R2MDY3Ml92cDQuYmluCisKK0xpY2VuY2U6IEFsbGVnZWRseSBHUEx2MissIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorCUNvcHlyaWdodCAoQykgMjAwMSBTVE1pY3JvZWxlY3Ryb25pY3MsIEluYy4KKwlDb250YWN0OiAgc3RldmUubWlsbGVyQHN0LmNvbQorCURlc2NyaXB0aW9uOiBUaGlzIGZpbGUgY29udGFpbnMgcGF0Y2ggZGF0YSBmb3IgdGhlIENQaUEyIChzdHYwNjcyKSBWUDQuCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogREFCVVNCIC0tIERpZ2l0YWwgQXVkaW8gQnJvYWRjYXN0aW5nIChEQUIpIFJlY2VpdmVyIGZvciBVU0IgYW5kIExpbnV4CisKK0ZpbGU6IGRhYnVzYi9maXJtd2FyZS5mdworRmlsZTogZGFidXNiL2JpdHN0cmVhbS5iaW4KKworTGljZW5jZTogRGlzdHJpYnV0YWJsZQorCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgQmF5Q29tIEdtYkgKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UKKyAqIGNvZGUgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIGNvbW1lbnQgd2l0aG91dAorICogbW9kaWZpY2F0aW9uLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IFVTQl9WSUNBTSAtLSBVU0IgM2NvbSBIb21lQ29ubmVjdCAoYWthIHZpY2FtKQorCitGaWxlOiB2aWNhbS9maXJtd2FyZS5mdworCitMaWNlbmNlOiBVbmtub3duCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogVVNCX1NFUklBTF9FREdFUE9SVCAtIFVTQiBJbnNpZGUgT3V0IEVkZ2Vwb3J0IFNlcmlhbCBEcml2ZXIKKworRmlsZTogZWRnZXBvcnQvYm9vdC5mdworRmlsZTogZWRnZXBvcnQvYm9vdDIuZncKK0ZpbGU6IGVkZ2Vwb3J0L2Rvd24uZncKK0ZpbGU6IGVkZ2Vwb3J0L2Rvd24yLmZ3CisKK0xpY2VuY2U6IEFsbGVnZWRseSBHUEx2MissIGJ1dCBubyBzb3VyY2UgdmlzaWJsZS4gTWFya2VkOgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK0ZvdW5kIGluIGhleCBmb3JtIGluIGtlcm5lbCBzb3VyY2UuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogVVNCX1NFUklBTF9FREdFUE9SVF9USSAtIFVTQiBJbnNpZGUgT3V0IEVkZ2Vwb3J0IFNlcmlhbCBEcml2ZXIKKyhUSSBEZXZpY2VzKQorCitGaWxlOiBlZGdlcG9ydC9kb3duMy5iaW4KKworTGljZW5jZToKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydCBCaW5hcnkgSW1hZ2UgKGZvciBUSSBiYXNlZCBwcm9kdWN0cykKKy8vKiBHZW5lcmF0ZWQgYnkgVElCaW4yQyB2Mi4wMCAod2F0Y2hwb3J0KQorLy8qIENvcHlyaWdodCAoQykgMjAwMSBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitGb3VuZCBpbiBoZXggZm9ybSBpbiBrZXJuZWwgc291cmNlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitEcml2ZXI6IEFUQVJJX0RTUDU2SyAtIEF0YXJpIERTUDU2ayBzdXBwb3J0CisKK0ZpbGU6IGRzcDU2ay9ib290c3RyYXAuYmluCitTb3VyY2U6IGRzcDU2ay9ib290c3RyYXAuYXNtCisKK0xpY2VuY2U6IEdQTHYyIG9yIGxhdGVyCisKK0RTUDU2MDAxIGFzc2VtYmxlciwgcG9zc2libHkgYnVpbGRhYmxlIHdpdGggYTU2IGZyb20gCitodHRwOi8vd3d3Lnpkb21haW4uY29tL2E1Ni5odG1sCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RyaXZlcjogU05EX1NCMTZfQ1NQIC0gU291bmQgQmxhc3RlciAxNi9BV0UgQ1NQIHN1cHBvcnQKKworRmlsZTogc2IxNi9tdWxhd19tYWluLmNzcAorRmlsZTogc2IxNi9hbGF3X21haW4uY3NwCitGaWxlOiBzYjE2L2ltYV9hZHBjbV9pbml0LmNzcAorRmlsZTogc2IxNi9pbWFfYWRwY21fcGxheWJhY2suY3NwCitGaWxlOiBzYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcAorCitMaWNlbmNlOiBBbGxlZ2VkbHkgR1BMdjIrLCBidXQgbm8gc291cmNlIHZpc2libGUuIE1hcmtlZDoKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KKworRm91bmQgaW4gaGV4IGZvcm0gaW4ga2VybmVsIHNvdXJjZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2F0bXNhcjExLkhFWCBiL2Zpcm13YXJlL2F0bXNhcjExLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmRkYzE5Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvYXRtc2FyMTEuSEVYCkBAIC0wLDAgKzEsMjA0IEBACis6MDQwMDAwMDBBMEQwRjAwMDlDCis6MkMwMDgwMDA0MDFBNjgwMDAwMDAwMDAwMzM1QjAwN0MxMzYwMDAwNTMzNUIxMDAwM0MxQUEwQzAzNzVBMDE4MDAzNDAwMDA4MDAwMDAwMDAxNzYwRkZGQjMzNUI0MDAwMjAKKzoyQzAwQUMwMDQwMUE3MDAwMTM2MDAwMDMyNDFCMEZDMEFGOUI0NTAwMjUwODAwMDgwMzQwMDAwODQyMDAwMDEwOEY4MTBDOTAzMjIyMDAwMjEwNDAwMDAzM0MwM0EwRDE3NAorOjJDMDBEODAwMjQ2M0Y4MTAwMDYwRjgwOTI0MjEwMDAxMTAwMDAwMUFBRjgxMEM5MDgyMDIwMDExQUY5MDBDNDgwNDQxMDAwQTM0NDIwMDgwOTY3RDAwMDI5NjAyMDAxMkE0Cis6MkMwMTA0MDAwMDAwMDAwMDEwNUQwMDExMDAwMDAwMDAwNDExMDE2MUE2NjIwMDAyMTAwMDAwMERBRTYyMDAwQzM0ODQ4MDAwQTIwMjAwMTE0RDAxRkZGRjAwMDAwMDAwNUUKKzoyQzAxMzAwMDhGODM0QzAwMDAwMDAwMDBBRjgzMEZFQzAwRTBGODA5MDNFMDM4MjEwMDA0MTQwMDA0NDBGRkY3MDAwMDAwMDBBRjgwNDYwQzhFMTAwMDA4NEQwMUZGRkYzNgorOjJDMDE1QzAwMDAwMDAwMDA4RjgzNEMwMDQ5MDAwMDFEQUY4MzBGRUM4RjgyMENCQzhGOUQwQzRDMjQ0MjAwMDE5N0JFMDAwMEFGODIwQ0JDMTNDMDAwMDlBQ0EyMDBEODcyCis6MkMwMTg4MDBBN0EwMDAwMDNDMDEwMEQxMDAzRTA4MjU5NDIyMDAyQzA0MTEwMTNGQTQyMjAwMDJBQzIyMDAwQ0FDMjAwMDEwOEY5RTBDNTQyN0JEMDAwMjE3QkUwMDAyOEMKKzoyQzAxQjQwMDhDQTIwMEMwOEY5RDBDNTA4Rjk3MEZDOEFGOUQwQzRDMTJFMjAwMDU4NzgwNDAwMjNDMDJBMEQxMjQ0MkY5NEMwMDQwRjgwOTAwMDAwMDAwMDBFMEY4MDk0QQorOjJDMDFFMDAwMDNFMDM4MjE0NTAwRkZEQzhFMTEwMDBDM0MxMzAwRDEwMDExMTEwMjJDNDMwNDAwMTA2MEZGQjkwMDAyMTE4MDAyNjI5ODIxOEU3NjAwM0MzMjIyMDAwOEMxCis6MkMwMjBDMDAxNDQwRkZCNzhFNzcwMDM0OEU3NTAwMzAzQzAzQ0ZCMDE2QzAwMDAzMDJENTEwMkIwNDExMDBCRTAwMDAwMDAwMTA0MEZGQTYwMDcwMTgyNjREMDFGRkZGRTUKKzoyQzAyMzgwMDAwMDAwMDAwOEY4MjRDMDBBRjk3NEMwMEFGODIwRkVDQUM3NjAwMTAwMjYwOTAyMTMyMjIwMDAyMTA0MDAwMDc4Rjk0NEEwMDk2MDIwMDNBMzQ4NDAwMDQ5MgorOjJDMDI2NDAwMTQ0MDAwMDNBRjgyMEZCQzNDMDI5MDAwQUY4MjBGQkM4RTEwMDAwODMyOTQzRjAwOEUxMTAwMEMyNjk0RkYwMDEyODAwMDczM0MxMzAwRDE0OTAxMDA3MTYyCis6MkMwMjkwMDAzMjM3MDAwODE2RTAwMDZGMDAxMTExMDIyQzQzMDQwMDEwNjAwMDZDMDAwMkI5ODAwMDA0MTc0MDA0NDAwMDNBMDI3Nzk4MjExMjcyMDAyMzI2RDYwMDMwRTAKKzoyQzAyQkMwMEFFNTYwMDNDOEU3NjAwM0M4RTc3MDAzNDhFNzUwMDMwM0MwM0NGQjAxNkMwMDAwMzAyRDUxMDJCMDQxMTAwOTEwMDAwMDAwMDEwNDAwMDYwMkU4MjEwMDA2QgorOjJDMDJFODAwMTQ0MDAwMDkwMDcwMTgyNjREMDFGRkZGMDAwMDAwMDA4RjgyNEMwMEFGOTc0QzAwQUM3NjAwMTBBRTQyMDAzNDEwMDBGRkQwQUY4MDQ2MEMwMEUwRjgwOTBECis6MkMwMzE0MDAwM0UwMzgyMTNDMDNDRkIwMDA3MDE4MjZBRTQ2MDAzNDREMDFGRkZGMDAwMDAwMDA4RjgyNEMwMEFGOTc0QzAwQUY4MjBGRUNBQzc2MDAxMDEwMDBGRkMzODIKKzoyQzAzNDAwMEFGODA0NjBDMDJENTEwMkIxMDQwMDA0MjNDMTdDRkIwMkU4MjEwMDAxNDQwMDAwNjAyRjBCODI2NEQwMUZGRkYwMDAwMDAwMEFFRjYwMDEwMTAwMEZGQjhFOQorOjJDMDM2QzAwQUY4MDQ2MEMwMEUwRjgwOTAzRTAzODIxNEQwMUZGRkYwMDAwMDAwMDhGODI0QzAwQUY4NjRDMDBBRUY2MDAxMEFGODIwRkVDMTAwMEZGQUVBRjgwNDYwQzdGCis6MkMwMzk4MDAzMDg0RkZGQjhFNTcwMDM4MzI0MkZGQzAwMDAyMTE4MkE3ODIwRkI4QUY5NzBGQjQ4NjVEMDAyQTg2NUUwMDA4QTc5RDBGQkEyNzlEMEYxODMzREUwMDYwNEIKKzoyQzAzQzQwMDAzQkVFODIxMDAxRUYwQzIwM0JFRTgyMThGOTcwQzU4NEQwMUZGRkYwMDAwMDAwMDhGODM0QzAwOEZBMjAwMUMxMkUzMDAwMzNDMDMwQzQwM0MxRUMwMDA4QgorOjJDMDNGMDAwQUY5RTBGQkNBQzYyMEZCNDhGQTMwMDE4MjQ0MjAwMEMxNDQzMDAwMkFGODA0NjBDOEZBMjAwMTRBRTQwMDAzQ0FGQTIwMDFDOEU3NjAwM0M4RTc3MDAzNDBECis6MkMwNDFDMDA4RTc1MDAzMDNDMDNDRkIwMTZDMDAwMDMwMkQ1MTAyQjA0MTEwMDNDMDAwMDAwMDAwMDcwMTgyNjREMDFGRkZGMDAwMDAwMDBBQ0E1MDBFNDEwNDAwMDMyRDYKKzoyQzA0NDgwMEFGOTc0QzAwMTAwMEZGN0ZBQzc2MDAxMDAwMDQxNzQwMDQ0MDAwMDcyNkQ2MDAzMEFFNTYwMDNDMDBFMEY4MDkwM0UwMzgyMUFGODA0NjBDMTAwMEZGMzkzRQorOjJDMDQ3NDAwQUU0NjAwMzQ4RTU3MDAzODMyNDJGRkMwMDAwMjExODJBNzgyMEZCOEFGOTcwRkI0OEY5NzBDNTgwMEUwRjgwOTAzRTAzODIxMTJFNjAwMDMzQzAzMEM0MDI5Cis6MkMwNEEwMDAzQzAyQzAwMEFGODIwRkJDODY1RDAwMkE4NjVFMDAwOEE3OUQwRkJBMjc5RDBGMTgzM0RFMDA2MDAzQkVFODIxMDAxRUYwQzIwM0JFRTgyMThGQTIwMDFDMjMKKzoyQzA0Q0MwMDREMDFGRkZGMDAwMDAwMDA4Rjk3NEMwMEFDNjIwRkI0MzA4NEZGRkI4RkEzMDAxODI0NDIwMDBDMTQ0MzAwMDJBRjgwNDYwQzhGQTIwMDE0QUU0MDAwM0NDMgorOjJDMDRGODAwQUZBMjAwMUM0RDAxRkZGRjAwMDAwMDAwQUNBNTAwRTQxMDAwRkYxM0FGOTc0QzAwMDBFMEY4MDkwM0UwMzgyMTEwMDBGRjBGMDAwMDAwMDAxMDQwMDA1QjUwCis6MkMwNTI0MDA4NjdFMDAwODI3OUQwRjE4MzNERTAwNjAwM0JFRTgyMTAwMUUxMEMyMDNBMkU4MjE4RkI3MDAwODhGQTIwMDBDOEVGNjAwMDQxMkUyMDAyODg2NjIwMDA4QkMKKzoyQzA1NTAwMDgyMDMwMDEwMDAwMjE3NDAwNDQxMDAxOTI0NjMwMDAxMTA2MDAwMTczQzAyRDFCMDAwNTAxMDI2NEQwMUZGRkYwMDAwMDAwMDhGOUU0QzAwQUM1NjAwMTAwOAorOjJDMDU3QzAwMjZENkZGRkU4NjAyMDAxMDNDMDNDRkIwMzQ2MzIwMDBBNjYyMDAyQThFRTIwMDAwMjZGNzAwMDhBRTYyMDAzODhGQTIwMDIwQUZCNzAwMDgyNDE3RkZGRjQ2Cis6MkMwNUE4MDAwMkMyQTgyMTREMDFGRkZGMDAwMDAwMDBBRjlFNEMwMDAzRTAwMDA4QUU3NTAwMzA4RUUyMDAwMDI2RjcwMDA4QUU2MjAwMzg4RkEyMDAyMEFGQjcwMDA4REIKKzoyQzA1RDQwMDI0MTdGRkZGQTY3NzAwMkEwMkMyQTgyMTNDMDNDRkIwMDNFMDAwMDhBRTc1MDAzMDAwMUUxOEMyMDA2NTE4MjE4QzYzMDBDODhGQTIwMDEwMDAwMDAwMDA2NAorOjJDMDYwMDAwMDA2MkIwMjMxRUMwMDAwMzhGQTEwMDA0MTJDMDAwMUIwMDIyQjAyMzJFQzMwMDQxMTQ2MDAwMDIzQzE1MDA0MDI0MTYwMDQwMDAxNjFFODAwMDAzMTg4MjlFCis6MkMwNjJDMDAwMDc1MTgyNTREMDFGRkZGMDAwMDAwMDA4Rjk1NEMwMDAwMUVCODQwMDA3NzE4MjFBQzYyNEQwMDAwNTYxMDIxMTQ0MTAwMDIyNzgzMEQwMDhGQTIwMDAwNEQKKzoyQzA2NTgwMDAyRTNCODIxQUZBMjAwMTAwMkQ3MTgyMUFGQTMwMDBDNEQwMUZGRkYwMDAwMDAwMDhFRjYwMDA0MTAwMEZGQjVBRjk1NEMwMDNDMTZERUFEQUU3NjAwM0M4MgorOjJDMDY4NDAwQUU2MDAwMzgyNkQ1RkZGRjAwMDAxMDIxMDNFMDAwMDhBRTc1MDAzMDJDNDMwQUIyMTA2MDAwMDUyQzQzMjRCMjEwMDAwMDA0MjQwMjBBQjIxMDAwMDAwMkFGCis6MkMwNkIwMDAyNDAyMjRCMTEwNjBGRkZEMzA0MzAxRkYwMDAzMTg0MDNDMURBMEQxMjdCREQ2Q0MwMDdEMTgyMTk0NjMwMDAwMDAwMkVBNDIwMDAzMUMwMDI3QkRGRkZCQzEKKzoyQzA2REMwMDAzRTAwMDA4MDNBMzEwMDYyNDAzMEZDMEFGODM0NTAwMTAwMDAwMDIwMTIwNjAyMTNDMENDRkIwMTFFMDAwNTYwMTg5NjAyNjg1RkUwMDAwMDAwMDAwMDA4OQorOjJDMDcwODAwMTNDMDAwNDczQzAyQ0ZCMDA3QzAwMDJEMDAxRTFGODAwNDYxMDAzNDAwMUUxRkMwMDQ2MDAwMDkzQzAyRDNCMDAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjEwCis6MkMwNzM0MDAwMDAwMDAwMDhGODY0QzAwOEY5OTBGRUMxMDAwMDAwQkFGOTk0QzAwMDFFMjc4MjYwMEUwRjgwOTAzRTAzODIxNEQwMUZGRkYwMDAwMDAwMDhGODY0QzAwMUIKKzoyQzA3NjAwMEFGOTk0QzAwQURFRjIwMTAzQzAyRDNCMDAxRTI3ODI2OEY4MjBGQzA4RjgzMEZDNEFGODI0RDAwOERFMjAwMDRBNUUwMDAwMEFDNjIwMDAwOEM2MjAwMDA5NAorOjJDMDc4QzAwMjQwMjAzODBBRjgyNEQwMDhGODI0RDAwOEY4MjBGMTQyNDYzMDAwNDE0NjIwMDAyMjQxOUZGRkY4RjgzMEYxMEFDQTUwMEU0QUY4MzBGQzQ0RDAxRkZGRjkzCis6MkMwN0I4MDAwMDAwMDAwMDhGODI0QzgwMTAwMDAwMUZBREUyMDAzQzAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwQTVFMDAwMDA4Rjg2NEMwMDE1ODAwMDIyMzgKKzoyQzA3RTQwMEFGOEY0NTQwMTAwMDAwMTcwMUUyNzgyNjAwRTBGODA5MDNFMDM4MjE0RDAxRkZGRjAwMDAwMDAwOEY4NjRDMDBBRjk5NEMwMEFERUYyMDEwM0MwMkNGQjA5NworOjJDMDgxMDAwMDFFMjc4MjZBNUUwMDAwMDREMDFGRkZGMDAwMDAwMDAxMDAwMDAwNzhGOTk0QzAwMDBFMEY4MDkwM0UwMzgyMTREMDFGRkZGMDAwMDAwMDA4Rjg2NEMwMDE1Cis6MkMwODNDMDA4Rjk5MEZFQzE1ODAwMDBBQUY4RjQ1MDAwMDAwNzgyMTEwMDAwMDE0QUYxOTAwMTQwMEUwRjgwOTAzRTAzODIxNEQwMUZGRkYwMDAwMDAwMDExODBGRkY4QzEKKzoyQzA4NjgwMDhGODY0QzAwODUyMjAwMDAwMTIwNzgyMTA0NDAwMDBBOEQyOTAwMDgxMzBCMDAwNDAwMEMxNjAyQUYxOTAwMTQ4RDc5MDAxNDAxNjBDMDIxQUY5OTRDMDA4NAorOjJDMDg5NDAwQUQ4RTQwMTAzMDQyMDAzRjAxQzI3MDIxMDAwNDE3ODAwNDQwMDE4QjhGODI0QTAwMzA4MTgwMDAzMDQyMDAwNDE0NDBGRjhEOEQ0QjAwMDAxMDIwMDAwQzQ3Cis6MkMwOEMwMDAzMDg0N0ZGRjhGODIwQzQ4MDEyMEYwMjEyNDQzMDAzNDhDNUQwMDBDMjQ0MjAwMDRBRkREMDAwQzE0NjJGRkZDMjdERTAwMDRBNTIxMDAwMDEwMDBGRjgyRTAKKzoyQzA4RUMwMDI1MDgwMDA4MTE2MDAwNTgwMDAwMDAwMDg1N0QwMDA4OEQ2MzAwMEM5NTYyMDAwQThENDEwMDA0MDdBMTAwMjYwMDYyMTgyMUE1NjMwMDBBMDAwMzFDMDI2RAorOjJDMDkxODAwMDQxMTAxQTAwMDAzMThDMDAwMUQxNkMwMDQ0MTAwMUYyN0EyMDA4MDAwMDIxQ0MwMDQ2MTAwMEUwMDQwRTgyMTI3QkQwMDgwOTU2MjAwMDA5NTYzMDAwMjkzCis6MkMwOTQ0MDAzNDQyMDAwQ0FEMjIwMDBDMjQwMjAxMDBBNTIyMDAxMDk1NjIwMDJDQTUyMzAwMTRBNTIyMDAxMkE1MjAwMDE2MzQwMjgwMDBBNTIyMDAwMEE1N0QwMDA4RDIKKzoyQzA5NzAwMDA3QTAwMDBDOEY4MjBDNEM4RjgzMEM1MDI0NDFGRkU4MDAyM0YwMkIxM0MwMDAwMjAwMjAxMDIxMjQ0MjA0MDA5NDVFMDAwMDI0NDFGRkZFMTdDMEZGRjk5NAorOjJDMDk5QzAwQUQ2MjAwMTBBNDRCMDAwMDE0MkIwMDFDQUQ0MDAwMDBBRDQwMDAwNDI1NEEwMDA4MzE0MjAwN0YxNDQwMDAwRTAwMDQxNzgwMDQ0MTAwMDM4RjgyMEZFMDNBCis6MkMwOUM4MDAxMDAwMDAwNjM0ODQwMDAxMzQ4NDAwMDIyNDQyMDAwODM0NDIxMDAwMzg0MjEwMDBBRjgyMEZFMDM1NEEwMTAwMzk0QTAxMDAzOTQyMDA4MEFGODIwRkU0QjkKKzoyQzA5RjQwMDAwMUQxNEMwMDQ0MTAwMDMzM0EyRUZGRjEwMDBGRjNDQTU2MjAwMDgwN0EwMDA5RjMzQTJGRkZFMTAwMDAwMjFBNTYyMDAwODhENjIwMDI0MDAxRDFDQzAxRAorOjJDMEEyMDAwMDQ2MTAwMDRBRDQyMDAwMDMzQTNFRkZGMTAwMEZGMzFBNTYzMDAwODA3QTAwMDA1MzNBM0ZGRkVBNTYzMDAwODhENEIwMDAwMTAwMEZGQUEwMDAwMDAwMDFFCis6MkMwQTRDMDAxMDAwMDA4RTI1MDgwMDA4MjU0QTAwMDgzMTQyMDA3RjE0NDAwMDBFMDAwNDE3ODAwNDQxMDAwMzhGODIwRkUwMTAwMDAwMDYzNDg0MDAwMTM0ODQwMDAyNzQKKzoyQzBBNzgwMDI0NDIwMDA4MzQ0MjEwMDAzODQyMTAwMEFGODIwRkUwMzU0QTAxMDAzOTRBMDEwMDM5NDIwMDgwQUY4MjBGRTQxMTAwMDAwMzhENEIwMDAwMTAwMEZGOTMwMworOjJDMEFBNDAwMjUwOEZGRjg4RjgyMEZEODhGODMwRkRDOEY4MTBGRDQxMDYyMDAxRDI0NjIwMDA4NEQwMUZGRkYwMDAwMDAwMDhGOEM0QzAwODQ3RjAwMDAzQzFFMDBEMTFDCis6MkMwQUQwMDAzM0ZEMDNGRjAwMUQ1OTgwMDE3RTU4MjE4NTdFMDAwODAwMURFOTAwMDAxRTBGMDAwM0UxRjgyNTA3RTAwMDAzQUY4MjBGREM4NzlFMENBMDI3OEIwQzk4NkUKKzoyQzBBRkMwMDA3QzEwMDQyM0MwMjA4NDAzQzAxRjdCMDhENjIwMDIwMDAyMzA4MjZBQzIyMDAwMDhDNjIwMDA0OTQ2MzAwMDIyNDQyRkZGODAwNDMxMDIxMTAwMDAwNEUxMgorOjJDMEIyODAwQUQ2MjAwMjA4RjgyMEZEMDg3ODMwQ0EwMTQyMjAwMDcyNzhCMEM5ODQxMDAwMDUxM0MwMTgwMDBBQ0ExMDBFMDhDQTEwMEM0MDAwMDAwMDAxMDIyMDA0QzRFCis6MkMwQjU0MDAwMDIyRTgyMzhGOUYwRjBDMDdBMTAwMDJBRjgxMEZENDAzRTJFODIzMkZBMzAwNDExNDYwMDAwMjNDMUUwMDQwMjQxRDAwNDAwMDFEMUU4MDAwMDMxODgyNTYKKzoyQzBCODAwMDAwN0UxODI1NEQwMUZGRkYwMDAwMDAwMDhGOEM0QzAwQUM2MjRDQzAwMDVEMTAyMTE0NUYwMDAyMjc4MzBDQzA4RjgyMEYwODAzQTNGMDIxQUY4MjBGRDA1OQorOjJDMEJBQzAwQUY5RTBGRDg0RDAxRkZGRjAwMDAwMDAwMTAwMEZGQzMyNDYyMDAwODhENjMwMDBDOEQ3RDAwMTBBNTYzMDAwQTEzQTAwMDAyMDAwMzFDMDJBN0EwMDAwMEY4Cis6MkMwQkQ4MDAwMDAzMThDMDA0MTEwMEVGMDA2ODE4MjE0RDAxRkZGRjAwMDAwMDAwOEY4MjBDNDQ4RjgzMEM0MEFENjIwMDEwQTU2MzAwMDRBNTYzMDAwNjEwMDAwMDIxRkMKKzoyQzBDMDQwMEFGOEM0QzAwQTU3RDAwMDA4QzdEMDAwNDk0NjMwMDAyQUM1RDRDNDAyN0EyMDAwOEFENjIwMDE4MDNBM0U4MjEyN0JERkZGNEFEN0QwMDFDMjdCRDAwMDRENAorOjJDMEMzMDAwQUQ3RDAwMjAzN0MxODAwMTAwMUUxN0MwMDQ0MUZGRTBBNTYxMDAwODREMDFGRkZGMDAwMDAwMDA4RjgyMEM0NDhGODMwQzQwQUQ2MjAwMTBBNTYzMDAwNDc4Cis6MkMwQzVDMDBBNTYzMDAwNjhGODIwRkQ4OEY4MzBGREM0RDAxRkZGRjAwMDAwMDAwMTQ2MkZGOTUyNDYyMDAwOEFGOEM0QzAwODc4MzBDQTAyNzhCMEM5ODA0NjFGRTk3RjgKKzoyQzBDODgwMDAwMDQxNzAwMDQ0MDAwMDU5NTYyMDAwMDExNzgwMDA2MDAwMDAwMDBBRjBFMDAxMEE3MEQwMDA0MzA4NEZGRjc5NTZEMDAwNDhENkUwMDEwMjVBREZGRDA3NQorOjJDMENCNDAwMDVBMUZFOEZBRDIyMDAwQzNDMENGRkIwMDE4OTYwMjYwMDBEMTgyMjI1QUQwMDMwOEQ3RTAwMTg4RDYxMDAxQzREMDFGRkZGMDAwMDAwMDAxMDNFMDAzNkI5Cis6MkMwQ0UwMDA4RjlENEMwMDNDMDEwODQwQUMzRTRDNDAyN0RFMDAwODExQTAwMDE3QUQ3RTAwMTgwMDBERjYwMDAxOUU2MDI1NEQwMUZGRkYwMDAwMDAwMEFEOEU0MDEwNUYKKzoyQzBEMEMwMDhGOEQwQzQwOTU3RTAwMDY4RjhFMEM0NDAzQ0RGMDIxQTU3RTAwMDYwMDBDRjc4MjAwMEMwRTAyMDNDMUYwMjEwMDFFMEY4MDAwMEM2MjAwMDAwQzYyMDJDMgorOjJDMEQzODAwMDE4MTYwMjUzM0RFMDAzQzAxOUU2MDIxMzQwMTAwMDExMDAwMDAwOEE1MjEwMDAwOTU3RTAwMDY0RDAxRkZGRjAwMDAwMDAwOEY4RDBDNDA4RjhFMEM0NENECis6MkMwRDY0MDAwM0NERjAyMUE1N0UwMDA2NEQwMUZGRkYwMDAwMDAwMDAxQTNGMDJCMTdDMDAwMDgwMDAzRjYwMDAxQTM2ODIzMDE5RTYwMjUwMTg5NjAyNjREMDFGRkY3Q0YKKzoyQzBEOTAwMDAwMDAwMDAwMTAwMEZFNThBRjlENEMwMDhEN0UwMDE4OEQ2MTAwMUMwMDAwMDAwMDE0M0VGRkNFMDA2RDE4MjM0RDAxRkZGRjAwMDAwMDAwMkM2MTAwMDg2NAorOjJDMERCQzAwMTAyMDAwMTc5NTYxMDAwODAwMDAwMDAwMDAwMUZGODAwN0UwMDAwQjM0MjEwMDAyMDA2RDE4MjEwMDAzMUUwMDAxODM2MDI1MDE4OTYwMjYyNDBEMDAyQ0MwCis6MkMwREU4MDBBNTYxMDAwODREMDFGRkZGMDAwMDAwMDAxMDAwRkU0MEFGOUQ0QzAwM0MxRjBDNDBBRkZFNEZBODMwMjFGRkZEQTU2MTAwMDgzQzBDRDNDRjM1OENFMDAwNkUKKzoyQzBFMTQwMDEwMDAwMDA4MzQwMzAwMDIzQzFGMEM0MEFGRkU0RkE4MTFBMEZGRjkwMDBERjYwMDM0MDMwMDAzMDE5RTYwMjUwMTg5NjAyNjM0ODQwMDA4MzQ0MjAwMDJDNAorOjJDMEU0MDAwQUQyMjAwMEM5NTYyMDAwNkE1MjMwMDAwQUQyMjAwMzg0RDAxRkZGRjAwMDAwMDAwODU3RTAwMDg4RjgyMEZBODk3ODMwRkFDQUQyMjAwMDQzM0MxN0ZGRkE2Cis6MkMwRTZDMDBBRDYwMDAxMEE1NjEwMDA4MTA2MEZFMjBBRjlENEMwMEE1N0UwMDA4MDAwMzE5MDAzMDYzM0ZGMEE1NjMwMDAwOEY4MjBGQjAzQzAzMDg0MEFDNjI0QzQwMDcKKzoyQzBFOTgwMDI0NDMwMDA4QUQ2MzAwMTg5NzgzMEZBRTI0NDJGRkY0MDA2MjE4MjFBRDYzMDAxQzREMDFGRkZGMDAwMDAwMDA4RjhEMEM0MDhGODMwQzQ0QTU2RDAwMDQ3NAorOjJDMEVDNDAwQTU2RDAwMDZBRDYzMDAxMDEwMDBGRTBBQUY5RDRDMDA4RjgyMEZFMDAwMDQwRkMwOEM0MzAwMDAwNDIxMDAxQjhGOUYwRkU0OEM1RDAwMDRBQzQwMDAwNDNBCis6MkMwRUYwMDAxMDYwMDAwRUFDNDAwMDAwMDAwMDAwMDA5NDYyMDAyODAwMDAwMDAwMDA1RjEwMjA4QzQxMDAwNDAwMDAwMDAwMTAyMDAwMDNBQzQzMDAwNDEwMDAwMDAyQjYKKzoyQzBGMUMwMEFDMjMwMDI0QUM0MzAwMDAxN0EzRkZGNDhDNjMwMDI0OEY4MjBGRTAzQkZGMDA4MDI0NDIwMDA4MzQ0MjEwMDAzODQyMTAwMEFGODIwRkUwQUY5RjBGRTQ2RQorOjJDMEY0ODAwMTAwMEZFNTczMDg0RkZGRTEwNjAwMDEwMDAwMDAwMDA5NDdEMDAyODAwMDAwMDAwMDNCRkU4MjA4RkExMDAwNEFGQTMwMDA0MTAyMDAwMDM4QzVFMDAwNDM5Cis6MkMwRjc0MDAxMDAwMDAwMkFDMjMwMDI0QUZBMzAwMDA4QzYxMDAyNDE3QzNGRTQ4QUM0MTAwMDBBQzQwMDAwNEFDNDAwMDAwMTAwMEZFNDQzMDg0RkZGRDJDNjIwMTAwNkYKKzoyQzBGQTAwMDE0NDAwMDBFMDA2QTEwMjEzMTQzMDA3RjAxNDMxODIzMDA0MzE4MjMzMDYyMDA3RkE1NjIwMDI4MDA2MjE4MjMwMDAzMTkwMjhGODIwRkUwMjQ2M0ZGRjhCRgorOjJDMEZDQzAwMDA2MjE4MjEzNDYzMTAwMDEwMDAwMDAzMzg2MzEwMDAzNDQzMDEwMDM4NjMwMTAwOEM2MjAwMDQwMDAwMDAwMDEwNDAwMDAzQUM2QjAwMDQwM0UwMDAwODlBCis6MEMwRkY4MDBBQzRCMDAyNDAzRTAwMDA4QUM2QjAwMDBEMAorOjAyMDAwMDA0QTBEMDhBCis6MkNENTAwMDAwMDAwMDAwMkEwRDBFMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDA2MDAwMDAwMDgwMDAwMDAwMDAwMDAwMDA4MDAwMDAwMDJBMEQwRDY0ODAwMDAwMDAwRjcKKzoyQ0Q1MkMwMDAwMDAwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNDMxMzIwMDI0MzEzMjAwMjQzMTMyMDAwMDAwMDAwMDI0NEQ0MzUyMjQyMDQzNkZCMgorOjJDRDU1ODAwNzA3OTcyNjk2NzY4NzQyMDI4NjMyOTIwNEQ2MTY0Njc2NTIwNEU2NTc0Nzc2RjcyNkI3MzIwNEM3NDY0MjAzMTM5MzkzNTJFMjA0MTZDNkMyMDcyNjk2NzRDCis6MkNENTg0MDA2ODc0NzMyMDcyNjU3MzY1NzI3NjY1NjQyRTAwNEQ2MTY0Njc2NTIwNDE2RDYyNjE3MzczNjE2NDZGNzIyMDc2MzEyRTMwMzEwMDAwMDAwMDAwMDAwMDAxMkMKKzoyQ0Q1QjAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjJDRDVEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MkNENjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjYKKzowQ0Q2MzQwMDAwMDAwMDAwRkZGMDQwMDAwMDAwMDAwMEJCCis6MkNGMDAwMDAwQzM0M0UyRDAwMDAwMDAwM0MxQ0EwRDEyNzlDNTYzODNDMURBMEQxMjdCRERGRDAzQzA4QTBEMTI1MDhERkQwQUY4NzgwMDgwQzM0M0MxMzAwMDAwMDAwRTQKKzoyQ0YwMkMwMDI0MDQwMDAzMDA5NzAwMEQzQzA4QkZDMDM1MDgwMjMwOEQwODAwMDAwMDAwMDAwMDAxMDAwMDA4MDAwMDAwMDAyN0JERkZEMEFGQkYwMDFDQUZCMTAwMTg2NAorOjJDRjA1ODAwQUZCMDAwMTQzQzExRkZGMDAwMDA4MDIxM0MxODAwNTYzNzE4M0I3OTI2MTkwMjAwMTcyMDAwMDIwMzE5MDAxQTAwMDcwMDBEMjQwMUZGRkYxNzIxMDAwNTZCCis6MkNGMDg0MDAwMDAwMDAwMDNDMDE4MDAwMTcwMTAwMDIwMDAwMDAwMDAwMDYwMDBEMDAwMDEwMTIwMDEwMTg0MDNDMDVBMEQxMjRBNUQ2Q0MwMEEzMjAyMUE0ODIwMDAwQzUKKzoyQ0YwQjAwMDI2MTAwMDAxMkEwMTAyMDAxNDIwRkZFQTAwMDAwMDAwM0MwNkEwRDEyNEM2RjlFNDNDMDdBMEQxMjRFN0Q2NDhBQ0U2MDAwMDNDMDhBMEQxMjUwOEZCMTREOQorOjJDRjBEQzAwQUNFODAwMDQzQzA5QTBEMTI1MjlGQzk0QUNFOTAwMDgzQzBBQTBEMTI1NEFGQ0Q0QUNFQTAwMEMzQzBCQTBEMTI1NkJGQkE4QUNFQjAwMTAzQzBDQTBEMTVDCis6MkNGMTA4MDAyNThDRkJDNEFDRUMwMDE0M0MwREEwRDEyNUFERkJFMEFDRUQwMDE4M0MwRUEwRDEyNUNFRkJGQ0FDRUUwMDFDM0MwRkEwRDEyNUVGRkMxOEFDRUYwMDIwQUQKKzoyQ0YxMzQwMDNDMThBMEQxMjcxOEZDMzRBQ0Y4MDAyNDNDMTlBMEQxMjczOUZDNTBBQ0Y5MDAyODNDMDJBMEQxMjQ0MkZDNjBBQ0UyMDAyQzNDMDNBMEQxMjQ2M0ZDNzBBNgorOjJDRjE2MDAwQUNFMzAwMzAzQzA0QTBEMTI0ODRGQzgwQUNFNDAwMzQzQzA1QTBEMTI0QTVGQ0I0QUNFNTAwMzgzQzA2QTBEMTI0QzZGRTA4QUNFNjAwM0MzQzA4QTBEMTExCis6MkNGMThDMDAyNTA4RkU5MEFDRTgwMDQwM0MwOUEwRDEyNTI5RkEzOEFDRTkwMDQ0M0MwQUEwRDEyNTRBRkE3NEFDRUEwMDQ4MjQxMDAwMTMzQzBCQTBEMTI1NkJGOUQ4RTcKKzoyQ0YxQjgwMDAwMTA2MDgwM0MwRUEwRDEyNUNFRDY0ODAxQ0M2ODIxQURBQjAwMDAyNjEwMDAwMTJBMDEwMDIwMTQyMEZGRjYwMDAwMDAwMDhGOTg4MDAwMDAwMDAwMDA2RgorOjJDRjFFNDAwQUYwMDAxMDA4RjgyODAwMDI0MTkwM0ZGQTQ1OTAyMDIwMDAwODAyMThGODY4MDAwMjQwMzBGRkYwMDEwMjA0MDI0QzcwMzgwMDBFNDI4MjFBNEEzMDAwMEMxCis6MkNGMjEwMDAyNjEwMDAwMTJBMDEwMDA4MTQyMEZGRjcwMDAwMDAwMDhGODk4MDAwMzQwODlDNDBBRDI4MDNBMDhGOEI4MDAwM0MwQTAwRkYzNTRBRkZGRkFENkEwM0E0RkMKKzoyQ0YyM0MwMDAwMDA4MDIxOEY4RjgwMDAyNDBDMEZGRjAwMTA2ODQwMjVGODAzMDAwMzBENzAyMUE1Q0MwMDAwMjYxMDAwMDEyQTAxMDAwODE0MjBGRkY3MDAwMDAwMDBBQgorOjJDRjI2ODAwOEY4MjgwMDAzNDE5OUM0MEFDNTkwMzIwOEY4NDgwMDAzQzAzMDBGRjM0NjNGRkZGQUM4MzAzMjQ4Rjg2ODAwMDI0MDUwMkZGQTRDNTAyMDIzQzA4QTBDMDBDCis6MkNGMjk0MDAzNTA4MDE4MDNDMDlBMEQxMjUyOUQ1QjgyNTBBMDAyODhEMEIwMDAwOEQwQzAwMDRBRDJCMDAwMEFEMkMwMDA0MjUwODAwMDgxNTBBRkZGQTI1MjkwMDA4MUIKKzoyQ0YyQzAwMDQwMDI2MDAwMDAwMDAwMDBBRkEyMDAyODI0MDMwMDIyM0MwNEEwRTAzNDg0MDAxNEFDODMwMDAwOEZBNTAwMjgwMDAwMDAwMDM0QTYxMDAxMDBDMDEwMjFDQgorOjJDRjJFQzAwQUZBNjAwMjgzQzA3RkZCRjM0RTdGRkZGMDBDNzM4MjQwMEUwMTAyMUFGQTcwMDI4NDA4NzYwMDAwMDAwMDAwMDNDMDgwMDAyMzUwOEQ4OTAzQzA5RkZGRTU5Cis6MkNGMzE4MDAzNTI5MDEzMEFEMjgwMDAwOEZBQTAwMjgzQzBCRjAwMDAxNEI1ODI1MDE2MDEwMjFBRkFCMDAyODAxNjA2MDIxNDA4QzYwMDAwMDAwMDAwMDAwMDA4MDIxNDEKKzoyQ0YzNDQwMDAwMTA3MDgwMDIyRTc4MjFBREUwMDAwMDI2MTAwMDAxMkEwMTA0MDAxNDIwRkZGQTAwMDAwMDAwMjQxODAwMDEzQzE5QTBFOEFGMzgwMDAwMjQwMjAwMTE3QworOjJDRjM3MDAwM0MwM0EwRjAzNDYzMDAxN0EwNjIwMDAwM0MwNEYwRUIzNDg0MDA3MDNDMDVGRkYwMzRBNTRBMDBBQ0E0MDAwMDNDMDZGQ0VCMzRDNjAwNzBBQ0E2MDAwMDI3Cis6MkNGMzlDMDAzQzA3RkZGMDM0RTc0NzAwQUNFMDAwMDAwMDAwODAyMTNDMDhGRkYwMzUwODBGQzAzQzA5RkZGMDM1Mjk0NTAwQUQyODAwMDAyNjEwMDAwMTJBMDEwMDA0MzMKKzoyQ0YzQzgwMDE0MjBGRkY4MDAwMDAwMDAwMDAwODAyMTNDMEFERUFEMDAxMDU5ODAzQzAxMDBEMTAwMkIwODIxQUMyQTAwM0MzQzAxMDBEMTAwMkIwODIxQUMyMDAwMzBDMQorOjJDRjNGNDAwM0MwMTAwRDEwMDJCMDgyMUFDMjAwMDM4MjQwREZGRkYzQzAxMDBEMTAwMkIwODIxQUMyRDAwMTQwMDEwNzEwMDNDMDEwMEQxMDAyQjA4MjFBNDJFMDAwMDU0Cis6MkNGNDIwMDAzQzAxMDBEMTAwMkIwODIxQTQyMDAwMDQyNDE4MDAyMDNDMDEwMEQxMDAyQjA4MjFBNDM4MDAwODNDMDEwMEQxMDAyQjA4MjFBQzIwMDAxMDI2MTAwMDAxN0YKKzoyQ0Y0NEMwMDJBMDEwNDAwMTQyMEZGRTAwMDAwMDAwMDAwMDA4MDIxMDAxMDE4QzAzQzA1QTBEMTI0QTVFMDAwMDBBMzIwMjFBQzgwMDAwMDNDMDdBMEQxMjRFN0UwMDBCRgorOjJDRjQ3ODAwMjRFODAwMDQwMTAzMzAyMUFDQzAwMDAwMjYxMDAwMDEyQTAxMDAwOTE0MjBGRkYzMDAwMDAwMDAyNDA5MDM4MDNDMEFGRkYwMzU0QTREMDBBRDQ5MDAwMDVGCis6MkNGNEE0MDAzQzBDQTA4MDM1OEMwMDlDQUQ4MDAwMDAzQzBEQTA4MDM1QUQwMEEwQURBMDAwMDAzQzBFMTEwMDNDMEZBMDgwMzVFRjAwQThBREVFMDAwMDQxMDEwMDAzQTAKKzoyQ0Y0RDAwMDAwMDAwMDAwNDEwMEZGRkYwMDAwMDAwMDNDMThBMDgwMzcxODAwRTA4RjE5MDAwMDNDMDFBMEQxQUMzOUQ2QzgwQzM0M0Q0MzAzMjAyMDIxOEZCMDAwMTRERQorOjJDRjRGQzAwOEZCRjAwMUM4RkIxMDAxODAzRTAwMDA4MjdCRDAwMzAwMDgwQjgyMTNDMUNGRkYwQTM4MDBDODRBMzgwMEM4ODhGOTA0NDAwMDAwMDIwMjFBRjgwMENCQzdFCis6MkNGNTI4MDAyNDAyMDBBODI3ODMwRjAwMkM1RDAwNDAxN0EwMDAwQzNDMURGRkIwMDNBM0U4MjZBRkI3NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDREMDFGRkZGRjYKKzoyQ0Y1NTQwMDAwMDAwMDAwMjQ0MkZGQzAyNDYzMDA0MDEwMDBGRkYzMjZGNzAwNDAxMDQwMDAwRDAwMDAwMDAwMDAwMkVFMDAzQzAxMDA0MDAzQTFFODI1M0MwMUZGRjA5OQorOjJDRjU4MDAwMDNBMUU4MjYwM0EzRTgyNkFGQjc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQwMUZGRkYwMDAwMDAwMDNDMDVBMDgwOEY4MjBGMDgwMDAwMDAwMDdFCis6MkNGNUFDMDBBRjgyMEZENEFGODIwRkQwQUNBMjAwQzQ4RjgyMEYxMDAwMDAwMDAwMDAwMjFEODJBRjgzMEZDMDAwMDMxRDgwMDA0MzEwMjMzQzAxQTA4MDAwNDExMDI1NDIKKzoyQ0Y1RDgwMEFGODIwRkM0QUY4MjBGMTA4RjgyMEYxNDAwMDAwMDAwMDA0MzEwMjMzQzAxQTA4MDAwNDExMDI1QUY4MjBGMTQyNDAzMDAwMzI3OUQwRjE4MjRCRTAwQzgyMworOjJDRjYwNDAwMjc4MTBEMDA4RkEyMDAwMDAwMDAwMDAwQUZBMjAwMTBBRkMyMDAwMEFGQTEwMDA4QUZBMTAwMEM4RkEyMDAxNDAwMDAwMDAwQUZBMjAwMUMyN0JEMDAyNEI0Cis6MkNGNjMwMDAyN0RFMDAwNDI0MjEwMDQwMTQ2MEZGRjMyNDYzRkZGRjhGODIwRjAwMDAwMDAwMDBBRjgyMEZDOEFDQTIwMEMwMjc4MjA4MDAyNDAzMDAwRkFDNDAwMDAwMkMKKzoyQ0Y2NUMwMDI0NDIwMDA0MTQ2MEZGRkQyNDYzRkZGRjhGODMwRkMwMDAwMDAwMDBBRjgzNEQwMDhGODM0RDAwOEY4MzBGMTQ4RjgyMEYxMDI0NjNGRkZDQUM0MDAwMDA5MQorOjJDRjY4ODAwMTQ0M0ZGRkUyNDQyMDAwNDI0MDIwMzgwQUY4MjREMDAyNzlEMEYxODI3QTEwMDkwOEZBMjAwMTQ4RkEzMDAxODAwMDAwMDAwMDA2MjE4MjMyQzdGMDA0MDE3Cis6MkNGNkI0MDAxN0UwMDAwOTNDMUYwMDQwMzdGRjA4MDAwM0EwRjAyMTREMDFGRkZGMDAwMDAwMDBBRkUyMDAwMDI0NDIwMDQwMTAwMEZGRjYyNDYzRkZDMDEwNjAwMDA2NTkKKzoyQ0Y2RTAwMDM3RkYwODAwMDAwMzFFMDAwM0UzRjgyNTREMDFGRkZGMDAwMDAwMDBBRkUyMDAwMDI3QkQwMDI0MTdBMUZGRTgwMDAwMDAwMDAwMDAzODIxOEZDMjAwMTQ1QQorOjJDRjcwQzAwOEZDMzAwMTgwMDAwMDAwMDAwNjIxODIzMkM3RjAwNDAxM0UwMDAwNDNDMUYwMDQwMDAwMzBFMDAxMDAwMDAwMjAzRTFGODI1MjQwMzAwNDAzN0ZGMDgwMDg0Cis6MkNGNzM4MDAyNDFFMDNFNzAwMDAwODIxNEQwMUZGRkYwMDAwMDAwMEFGRTIwMDAwMDAyMzA4MjE0OTAwRkZGQjAwMDAwMDAwODc4MDQwMDIxN0MwRkZGODI3REVGRkZGQ0EKKzoyQ0Y3NjQwMDE0RTAwMDA0MzRFNzQwMDAwM0U3RjgyNTEwMDBGRkYwQUY4MTBDNjBBRjgxMEM1QzNDMDFBMEQxOEMyMkQ2QzgwMDAwMDAwMDNDMDFBMDgwQUMyMjAwRTBFNworOjJDRjc5MDAwM0MwMUEwODA4QzIwMDBFMEFGODAwRkI0QTc4MDBGQjhBNzgwMEZCQUE3ODAwRkJDQTc4MDBGQkUyNzgyMENDMEFGODIwRkRDQUY4MjBGRDgzQzAyQTBEMTU2Cis6MkNGN0JDMDAyNDQyREFDQ0FGODIwQzRDQUY4MjBDNTAyNDQyMDQwMEFGODIwQzU0MjQwMjAwMUUzQzAzRkZGMDI0N0QwMDQwQUM3RDAwMDgwM0EwMTgyMTE0NDBGRkZDNTUKKzoyQ0Y3RTgwMDI0NDJGRkZGM0MxREZGRjBBQzdEMDAwODNDMDJDNzA0MzQ0MkREN0JBRjgyMEM1ODNDMDcwMDAwMjRFNzAxNTgwODM0M0ZBOTAwMDAwMDAwOEU2MjAwMzhCOQorOjJDRjgxNDAwMDAwMDAwMDAxNDQwMDAwNThGODMwQzk0MTJBMDAwMjIyNDYzMDAwMTEwMDAwMDIwQUY4MzBDOTRBRjgyMEZCNDMyNjJGRkMwMDAwMjExODI4NjYzMDAyQTcwCis6MkNGODQwMDBBNzgyMEZCODNDMDJBMDAwQUY4MjBGQkNBNzgzMEZCQTg2N0UwMDA4Mjc5RDBGMTgzM0RFMDA2MDAzQkVFODIxMDAxRUYwQzIwM0JFRTgyMThGQTIwMDFDQzYKKzoyQ0Y4NkMwMDNDMDMwQzQwNEQwMUZGRkYwMDAwMDAwMDhGOTc0QzAwQUM2MjBGQjQ4RkEzMDAxODI0NDIwMDBDMTQ0MzAwMDMwMDAwMDAwMDhGQTIwMDE0MDAwMDAwMDBGQgorOjJDRjg5ODAwQUZBMjAwMUM0RDAxRkZGRjAwMDAwMDAwQUNBNTAwRTRBRjk3NEMwMDAzRTAwMDA4QUU2MDAwM0MzQzBEQTBEMTI1QURENTAwMTFBMDAwMjEwMDAwMDAwMDVDCis6MkNGOEM0MDA4REE5MDAwMDAwMDAwMDAwMTEyMDAwMUQwMDAwMDAwMDhEQUEwMDA0OERBQjAwMDg4REFDMDAwQzAwMDk0NzQwMDUwMTAwMDQwMDAwMDAwMDNDMDhBMEQxODUKKzoyQ0Y4RjAwMDI1MDhENjM4MDE0ODUwMjEwMDA5NDc4MDA1MDEwMDA3MDAwMDAwMDAxMTgwMDAwRDAwMDAwMDAwQUQ0MDAwMDAyNTRBMDAwNDEwMDBGRkZCMjU4Q0ZGRkM2NgorOjJDRjkxQzAwMTE4MDAwMDcwMDAwMDAwMDhENkUwMDAwMjU2QjAwMDRBRDRFMDAwMDI1NEEwMDA0MTAwMEZGRjkyNThDRkZGQzEwMDBGRkUxMjVBRDAwMTAwM0UwMDAwOEI5Cis6MkNGOTQ4MDAwMDAwMDAwMDNDMDIxMDQwQUM1NzRGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDREMDFGRkZGMDAwMDAwMDA4RjgyMEZGQzAwMDAwMDAwNUIKKzoyQ0Y5NzQwMDMwNDIwMDFGMDAwMjEwODAzQzE3QTBEMTAyRTJCODIxMjZGN0Q2NDg4RUY3MDAwMDAwMDAwMDAwMDJFMDAwMDgwMDAwMDAwMDI0MDJGRkZGQUY4MjBGRkNCOQorOjJDRjlBMDAwOEY5NzBGQzgzQzAyMTA0MEFDNTcwRkYwOEY4MjBGMDQyNkY3MDAxMDE2RTIwMDA0QUY5NzBGQzg4Rjk3MEYwMDAwMDAwMDAwQUY5NzBGQzg0RDAxRkZGRkE2Cis6MkNGOUNDMDAwMDAwMDAwMDAzRTAwMDA4MDAwMDAwMDAzQzFGQTBEMTI3RkZGMDJDMTAwMEZGRUQ4Rjk3MEZGMDNDMDIwMEQxMzJGNzAzRkYwMDE3Qjk4MDAyRTJCODI1QUEKKzoyQ0Y5RjgwMEFFRTAwMDNDMjQwMkZGRkZBRUUyMDAzMEFFRTIwMDE0OTc4MzBGRjQ5NzgyMEZGODNDMUQwMDAwMjdCRDA2OThBNkUzMDAwOEE2RTIwMDAyQUY5RjBGRTgxOQorOjJDRkEyNDAwMDNBMEY4MDlBNkUyMDAyQzhGOUYwRkU4MTAwMEZGRDlBRUUyMDAwQzhGOTcwRkYwM0MwMjAwRDEzMkY3MDNGRjAwMTdCOTgwMDJFMkI4MjU5NzgyMEZGNDI5Cis6MkNGQTUwMDAzQzAzMDAwMDI0NjMwNjk4QTZFMjAwMDJBRjlGMEZFODAwNjBGODA5QTZFMjAwMkM4RjlGMEZFODEwMDBGRkNBQUVFMjAwMEM4Rjk3MEZGMDNDMDIwMEQxNzQKKzoyQ0ZBN0MwMDMyRjcwM0ZGMDAxN0I5ODAwMkUyQjgyNTk3ODIwRkY0MDAwMDAwMDA5NkUzMDAwOEE2RTIwMDA4MDA0MzEwMjYzMDQyMDA2MDEwNDBGRkJEOEVFMjAwM0NGMgorOjJDRkFBODAwQUVFMDAwM0MxMDQwRkZCQTNDMDI4ODAwQUY4MjBGQkM4RUUyMDAzOEFFRTAwMDM4MzA2MzAwNjAyNzlEMEYxODAzQTNFODIxMDAwMzE4QzIwM0EzRTgyMTE2Cis6MkNGQUQ0MDA4RkEzMDAxQzEwNDBGRkFGQUY4MjBGQjQzQzAyMEM0MEFDNDMwRkI0OEZBMjAwMTgyNDYzMDAwQzE0NDMwMDAzMDAwMDAwMDA4RkEzMDAxNDAwMDAwMDAwMEUKKzoyQ0ZCMDAwMEFGQTMwMDFDNEQwMUZGRkYwMDAwMDAwMDEwMDBGRkEyMDAwMDAwMDA4Rjk3MEZGMDNDMDIwMEQxQTc5NzBGQjgwMDE3Qjk4MDMyRjdGRkMwMDJFMkI4MjE0MAorOjJDRkIyQzAwQUVFMDAwMzAzQzAyREVBRDhFRTMwMDNDQUVFMjAwM0M4RUUyMDAzODEwNjBGRjk1QUVFMDAwMzgzQzAzODgwMEFGODMwRkJDODZFMzAwMDgyNzk3MEYxODIxCis6MkNGQjU4MDAzMDYzMDA2MDAyRTNCODIxMDAwMzE4QzIwMkUzQjgyMThFRTMwMDFDMTA0MEZGOEFBRjgyMEZCNDNDMDIwQzQwQUM0MzBGQjQ4RUUyMDAxODI0NjMwMDBDODQKKzoyQ0ZCODQwMDE0NDMwMDAzMDAwMDAwMDA4RUUzMDAxNDAwMDAwMDAwQUVFMzAwMUM0RDAxRkZGRjAwMDAwMDAwMTAwMEZGN0QwMDAwMDAwMDhGODIwRkYwOEY5NzBGRjRCOAorOjJDRkJCMDAwOTA0MTAwMDAwMDAwMDAwMDAwMzcwODI1MTAwMEZGNzZBMDQxMDAwMDhGODIwRkYwOEY5NzBGRjQ5NDQxMDAwMDAwMDAwMDAwMDAzNzA4MjUxMDAwRkY2RjlFCis6MkNGQkRDMDBBNDQxMDAwMDhGODIwRkYwOEY5NzBGRjQ4QzQxMDAwMDAwMDAwMDAwMDAzNzA4MjUxMDAwRkY2OEFDNDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDkwNDEwMDAwNDAKKzoyQ0ZDMDgwMDAyRTBCODI3MDAzNzA4MjQxMDAwRkY2MUEwNDEwMDAwOEY4MjBGRjA4Rjk3MEZGNDk0NDEwMDAwMDJFMEI4MjcwMDM3MDgyNDEwMDBGRjVBQTQ0MTAwMDBEQgorOjJDRkMzNDAwOEY4MjBGRjA4Rjk3MEZGNDhDNDEwMDAwMDJFMEI4MjcwMDM3MDgyNDEwMDBGRjUzQUM0MTAwMDA4RjgyMEZGMDhGOTcwRkY0MTAwMEZGNEZBMDU3MDAwMDlECis6MkNGQzYwMDA4RjgyMEZGMDhGOTcwRkY0MTAwMEZGNEJBNDU3MDAwMDhGODIwRkYwOEY5NzBGRjQxMDAwRkY0N0FDNTcwMDAwOEY4MjBGRjAwMDAwMDAwMDhDNDIwMDAwN0EKKzoyQ0ZDOEMwMDEwMDBGRjQyQUY4MjBGRjQzQzAxQTBDMjhDMjJDMDAwMDAwMDAwMDBBRjgyMEZGMDNDMDFBMEMyOEMyMkMwMDQxMDAwRkYzQUFGODIwRkY0M0MwMUEwRDE0RQorOjJDRkNCODAwOEMyMkQ1QUMwMDAwMDAwMEFGODIwRkYwM0MwMUEwRDE4QzIyRDVCMDEwMDBGRjMyQUY4MjBGRjQzQzAyQTBGMEFDNDAwMDAwOTA1NzAxNTMwMDAwMDAwMDc2Cis6MkNGQ0U0MDBBMzk3MEM4MDkwNTcwMTU3MDAwMDAwMDBBMzk3MEM4MTkwNTcwMTVCMDAwMDAwMDBBMzk3MEM4NzkwNTcwMTVGMDAwMDAwMDBBMzk3MEM4NjkwNTcwMTYzQkEKKzoyQ0ZEMTAwMDAwMDAwMDAwMzJGNzAwMDdBMzk3MEM4NTkwNTcwMTkzMDAwMDAwMDBBMzk3MEM4QjkwNTcwMTk3MDAwMDAwMDBBMzk3MEM4QTkwNTcwMTlCMDAwMDAwMDBBRQorOjJDRkQzQzAwMzJGNzAwMDdBMzk3MEM4OTkwNTcwMDBCMDAwMDAwMDAzMkY3MDBFMDAwMTcwOTQyOTA1NzAwNDcwMDAwMDAwMDMyRjcwMDc4MDAzNzA4MjU5MDU3MDA2N0JFCis6MkNGRDY4MDAwMDAwMDAwMDMyRjcwMDBGMDAxN0I5QzAwMDM3MDgyNTkwNTcwMEM3MDAwMDAwMDAzMkY3MDAyRjAwMTdCQUMwMDAzNzA4MjU5MDU3MDE0NzAwMDAwMDAwMTkKKzoyQ0ZEOTQwMDMyRjcwMDFFMDAxN0JDMDAwMDM3MDgyNTkwNTcwMTgzMDAwMDAwMDAzMkY3MDA2MDAwMTdCQzAwMDAzNzA4MjVBRjgxMEM4QzNDMDIxODQwOEY5NzBGQzgzRgorOjJDRkRDMDAwMDAwMDAwMDA4Rjk3MEZGMDAwMDAwMDAwQUM1NzBDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RDAxRkZGRjE3Cis6MkNGREVDMDAwMDAwMDAwMDNDMDJBMEQxMjQ0MkY5OThBRjgwMEM5MEFGODAwQzk0MDA0MDAwMDgwMDAwMDAwMDg3OTcwRkYwM0MxMzAwRDFBNjc3MDAwODNDMDMwMDAwQzIKKzoyQ0ZFMTgwMDI0NjMwNTIwQUY5RjBGRTgwMDYwRjgwOTI0MDIwMDAxOEY5RjBGRTgxMDQwRkVEQTk3OTcwRkYwMjc4MzBGMTgwMDc3MTgyMTAwMTdCOEMyMDJFM0I4MjFGQgorOjJDRkU0NDAwM0MwMjg4MDBBRjgyMEZCQzhFNjIwMDM4QTc4MDBGQjhBRjgyMEZCNDhFRTMwMDFDM0MwMjBDNDBBQzQzMEZCNDhFRTIwMDE4MjQ2MzAwMEMxNDQzMDAwNDg3Cis6MkNGRTcwMDBBRUUzMDAxQzhFRTMwMDE0MDAwMDAwMDBBRUUzMDAxQzREMDFGRkZGMDAwMDAwMDAxMDAwRkZERjAwMDAwMDAwOEY4MjBDNUM4RjgzMEM2MEFGODIwRkYwMjYKKzoyQ0ZFOUMwMDEwMDBGRUJFQUY4MzBGRjQyMzg5MDgwMDAxMjAxODIxMjQwMjAwMEYyMDZDMDA0MEFDNkMwMDA4MDE4MDE4MjExNDQwRkZGQzIwNDJGRkZGQUM2OTAwMDg4NAorOjJDRkVDODAwMjc4QjBDOThBNTYwMDAwMDI0MDNGRkZGQUQ2MzAwMTQzNDAyMDAwMTM0NDIwMDIwQTU2MjAwMDgyNzhBMEUwMDAxNDAxMDIxMDAwMDE4MjFBQzQwMDAwMDM4Cis6MkNGRUY0MDAyNDYzMDAwNDJDNkMwMTAwMTU4MEZGRkMyNDQyMDAwNDNDMDJBMEQxMjQ0MkUwMDBBRjgyMEZFMDNDMTgwMEQxMDEyMDYwMjEwMDAwNjgyMTAwMDA3ODIxQzYKKzoyOEZGMjAwMDAwMDA1ODIxMDAwMDQwMjE0MDAyNjAwMDAwMDAwMDAwMzQ0MjQwMDE0MDgyNjAwMDNDMDIwMDAwMjQ0MjA2RjgwMDQwMDAwODAwMDAwMDAwN0EKKzowMDAwMDAwMUZGCisvKgorICBNYWRnZSBBbWJhc3NhZG9yIEFUTSBBZGFwdGVyIG1pY3JvY29kZS4KKyAgQ29weXJpZ2h0IChDKSAxOTk1LTE5OTkgIE1hZGdlIE5ldHdvcmtzIEx0ZC4KKworICBUaGlzIG1pY3JvY29kZSBkYXRhIGlzIHBsYWNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsCisgIFB1YmxpYyBMaWNlbnNlLiBUaGUgR1BMIGlzIGNvbnRhaW5lZCBpbiAvdXNyL2RvYy9jb3B5cmlnaHQvR1BMIG9uIGEKKyAgRGViaWFuIHN5c3RlbSBhbmQgaW4gdGhlIGZpbGUgQ09QWUlORyBpbiB0aGUgTGludXgga2VybmVsIHNvdXJjZS4KKworICBXZSB3b3VsZCBwcmVmZXIgeW91IG5vdCB0byBkaXN0cmlidXRlIG1vZGlmaWVkIHZlcnNpb25zIHdpdGhvdXQKKyAgY29uc3VsdGF0aW9uIGFuZCBub3QgdG8gYXNrIGZvciBhc3NlbWJseS9vdGhlciBtaWNyb2NvZGUgc291cmNlLgorKi8KKworRmlyc3QgcmVjb3JkIGlzIHN0YXJ0IGFkZHJlc3MgaW4gYSBfX2JlMzIuCmRpZmYgLS1naXQgYS9maXJtd2FyZS9jcGlhMi9zdHYwNjcyX3ZwNC5iaW4uaWhleCBiL2Zpcm13YXJlL2NwaWEyL3N0djA2NzJfdnA0LmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkMGI5Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9jcGlhMi9zdHYwNjcyX3ZwNC5iaW4uaWhleApAQCAtMCwwICsxLDczIEBACis6MTAwMDAwMDAwMUJDRTMwMkUzMDNFMzA0RTMwNUUzMDZFMzA3OTM0NEVGCis6MTAwMDEwMDA1NkQ0OTM0RTU2NTE5MzRFNTFENjkzNEU0RjU0OTM0RUMxCis6MTAwMDIwMDA5MjRGOTJBNDkzMDU5MkY0OTMxQjkyOTI5MUU2OTIzNjhBCis6MTAwMDMwMDA5Mjc0OTI0QTkyOEM5MjhFQzhEMDBCNDIwMkEwQ0E5MkJECis6MTAwMDQwMDAwOTAyQzkxMDBBMEEwQTgxRTNCOEUzQjBFM0E4RTNBMEYxCis6MTAwMDUwMDBFMzk4RTM5MEUxMDBDRkQ3MEExMkNDOTUwOEIyMEExOEQyCis6MTAwMDYwMDBFMTAwMDFFRTBDMDg0QTEyQzgxOEYwOUFDMDIyRjMxQ0Y1Cis6MTAwMDcwMDA0QTEzRjMxNEM4QTBGMjE0RjIxQ0VCMTNEM0EyNjMxNkI0Cis6MTAwMDgwMDA0ODlFRjAxOEE0MDNGMzkzQzA1OEY3MTM1MTlDRTkyMDNECis6MTAwMDkwMDBDRkVGNjNGOTkyMkVEMzVGNjNGQTkyMkVEMzY3NjNGQjlGCis6MTAwMEEwMDA5MjJFRDM2RkU5MUE2MzE2NDhBN0YwMjBBNDA2RjM5NEEyCis6MTAwMEIwMDBDMDI3RjcxNEY1MTM1MTlERjYxMzYzMThDNDIwQ0JFRjM2Cis6MTAwMEMwMDA2M0ZDOTIyRUQzNzc2M0ZEOTIyRUQzN0Y2M0ZFOTIyRTM0Cis6MTAwMEQwMDBEMzg3NjNGRjkyMkVEMzhGNjQzODkyMkVEMzk3NjQzOURGCis6MTAwMEUwMDA5MjJFRDM5RkUxMDBGNTNBRjQzQkY3QkZGMkJDRjIzRDBDCis6MTAwMEYwMDBFMTAwODA4NzkwODA1MUQ1MDIyMjAyMzI0QkQzRjcxMTY0Cis6MTAwMTAwMDAwQkRBRTEwMDBFMDIwMjQwMERCNUUzMDI0ODU1RTUxMjlDCis6MTAwMTEwMDBBNDAxRTgxQkUzOTBGMDE4QTQwMUU4QkY4REI4NEJEMTBGCis6MTAwMTIwMDA0QkQ4MEJDQjBCQzJFMTAwRTMwMkUzMDM1MkQzNjA1OTdGCis6MTAwMTMwMDBFNjkzMEQyMjUyRDRFNjkzMEQyQUUzOThFMzkwRTEwMDcyCis6MTAwMTQwMDAwMjVEMDI2M0UzMDJDODEyMDJDQUM4NTIwMkMyODI2ODk4Cis6MTAwMTUwMDBFMzAyQzgxNDAyQ0FDODkwMDJDMjBBRDBDOTkzMEFEQURDCis6MTAwMTYwMDBDQ0QyMEFFMjYzMTIwMkRBMEE5ODBBQTAwQUE4RTM5MDQzCis6MTAwMTcwMDBFMTAwRTMwMjBBRDBDOTkzMEFEQUNDRDIwQUUyNjMxMkEwCis6MTAwMTgwMDAwMkRBMEE5ODBBQTAwQUE4NDk5MUU1NkFBNDA0QzgxMkVBCis6MTAwMTkwMDAwMkNBQzg1MjgyODlDODE0MDJDQUM4OTAwMkMyRTM5MDM3Cis6MTAwMUEwMDBFMTAwMDg2MEUxMDA0ODUzRTg5NzA4NUFFMTAwRTMwMkUzCis6MTAwMUIwMDBFMzAzNTREMzYwNTlFNjkzMEQ1MkUzOThFMzkwRTEwMEQyCis6MTAwMUMwMDAwMjlDRTMwMjU1MTM5MzE3NTUxMzkzMTdFMzkwRTEwMDM0Cis6MTAwMUQwMDA3NTMwRTMwMkUzMDM1NTU1NjA1OUU2OTMwREIyRTM5ODk5Cis6MTAwMUUwMDBFMzkwRTEwMDAyQUVFNzkyRTkxOEVBOUFFODk4RTgxMDk1Cis6MTAwMUYwMDBFODExRTg1MUQyREFEMkYzRTgxM0QyRkFFODUwRDJFQUExCis6MTAwMjAwMDBFOEQwRThEMUQzMEEwMzA5NDgyM0U1MkNBMDAzNDgyNDA5Cis6MTAwMjEwMDBFQTFDMDMwOEQyRTNEMzAzRDMxM0UxMDAwMkNCMDU5MzE2Cis6MTAwMjIwMDA1NzkzRjA5QUFDMEJFMzA3OTJFQUUyOUZFNTA2RTNCMDNFCis6MTAwMjMwMDBBMDAyRUIxRTgyRDdFQTFFRTIzQjg1OUJFOTFFQzg5MDE2Cis6MTAwMjQwMDA4NTk0MDJERTA1ODA1NzkzRjBCQUFDMDY5MkVBRTJCRkNECis6MTAwMjUwMDBFNTA2QTAwMUVCQkY4NTg4RTkzRUM4OTA4NTgxRTkzRUFGCis6MTAwMjYwMDBGMEJBRjMzOUYwM0E2MDE3RjAzQUMwOTBGMEJBRTEwMDEyCis6MTAwMjcwMDAwMDNGRTMwMkUzMDM1ODEwNjA1OUU2OTMwREEyNTgxMkMxCis6MTAwMjgwMDBFNjkzMERBQUUzOThFMzkwRTEwMDAzMDFFMTAwMDMwMzg0Cis6MTAwMjkwMDA5QjdEOEI4QkUzMDJFMzAzNTg1NjYwNTlFNjkzMERCQUJFCis6MTAwMkEwMDBFMzk4RTM5MEUxMDAwMzBGOTMxMUUxMDBFMzAyNEExMUE4Cis6MTAwMkIwMDAwQjQyOTFBRkUzOTBFMTAwRjI5MUYwOTFBM0ZFRTEwMEQ3Cis6MTAwMkMwMDA2MDkyQzA1RkYwMTNGMDEzNTk1QkUyMTNGMDExNUExOUZBCis6MTAwMkQwMDBFMjEzRTEwMDAwMDAwMzI3Njg2MTc2NjE2RTYxMDAwNkE5Cis6MTAwMkUwMDAwMzJDRTMwMkUzMDNFOTM4NTkxNTU5NUFGMjlBQkMwQjdGCis6MTAwMkYwMDBBNDBBNTkxRUYzMTFGMDFBRTJCQjU5MTVGMDExMTkyQTdDCis6MTAwMzAwMDBFNTAyQTQwMUVCQkZFMzk4RTM5MEUxMDAwMzQyMTkyODYyCis6MTAwMzEwMDBFMTAwRTkzMDYwNzlFMTAwRTMwM0UzMDc2MDc5OTM0RTlGCis6MTAwMzIwMDBFM0I4RTM5OEUxMDBFOTFBRjAxRkUyMzNGMDkxRTI5MkJBCis6MDgwMzMwMDBFMDMyRjAzMUUxMDAwMDAwQjEKKzowMDAwMDAwMUZGCisKKyAgQ29weXJpZ2h0IDIwMDEsIFNUTWljcm9sZWN0cm9uaWNzLCBJbmMuCisgIENvbnRhY3Q6ICBzdGV2ZS5taWxsZXJAc3QuY29tCisKKyAgRGVzY3JpcHRpb246CisgICAgIFRoaXMgZmlsZSBjb250YWlucyBwYXRjaCBkYXRhIGZvciB0aGUgQ1BpQTIgKHN0djA2NzIpIFZQNC4KKworICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAgRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCmRpZmYgLS1naXQgYS9maXJtd2FyZS9kYWJ1c2IvYml0c3RyZWFtLmJpbi5paGV4IGIvZmlybXdhcmUvZGFidXNiL2JpdHN0cmVhbS5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDIxYTRiCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZGFidXNiL2JpdHN0cmVhbS5iaW4uaWhleApAQCAtMCwwICsxLDc2MSBAQAorOjEwMDAwMDAwMDAwOTBGRjAwRkYwMEZGMDBGRjAwMDAwMDE2MTAwMEQ3QworOjEwMDAxMDAwNjQ2MTYyNzU3MzYyNzQ3MjJFNkU2MzY0MDA2MjAwMEJCOQorOjEwMDAyMDAwNzMzMTMwNzg2Qzc2NzEzMTMwMzAwMDYzMDAwQjMxMzlDOAorOjEwMDAzMDAwMzkzOTJGMzAzOTJGMzIzNDAwNjQwMDA5MzEzMDNBMzRFNQorOjEwMDA0MDAwMzIzQTM0MzYwMDY1MDAwMDJFQzBGRjIwMTc1RjlGNUJGOAorOjEwMDA1MDAwRkVGQkJCQjdCQkJCRkJCRkFGRUZGQkRGQjdGQkZCN0Y2MQorOjEwMDA2MDAwQkZCN0VGRjJGRkZCRkVGRkZGRUZGRkZFRkZCRkZGRkY5QgorOjEwMDA3MDAwRkZGRkFGRkZGQUZGRkZGRkM5RkZGRkZGREZGRkZGRkYzQgorOjEwMDA4MDAwRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCRkZBM0ZGRkJFNAorOjEwMDA5MDAwRkVGRkJGRUZFM0ZFRkZCRkUzRkVGRkJGNkZGQkY2RkYxOAorOjEwMDBBMDAwQkZGRjQ3RkZGRjlGRUVGOUZFQ0Y5RkVGRkJDRjlCRUUxOQorOjEwMDBCMDAwRjhGRUVGOEZFRUZCRkUwQkZGRkZGRkZGRkZGRkZGRkZFMgorOjEwMDBDMDAwRkZGRkJGRkZGRkZCRkZGRkJGRkZGRkZDMTdGRkZGRkZBRgorOjEwMDBEMDAwRkZGRkZGN0ZGRkZGRkY3RkZGRkZGQkZGRkY3RkZGRkZCNAorOjEwMDBFMDAwRkMzRkZGRkZGRkZGRkZGRkZGRkZGRkZCRkZGRkZGRkZFNworOjEwMDBGMDAwRkZGRkZGRkZGRkZFNUZGRkZGRkRGRkZGREJGRkZERkZEOQorOjEwMDEwMDAwNzdGRkZERkZGRkRGRkVGREZGRkZGMkZGRkZGRkZGRkZCOQorOjEwMDExMDAwRkZGREZGRkZGRkZERkZGRkZGRkZGRkZGRkZGRkZGRTExMQorOjEwMDEyMDAwN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYzRkZGRkYxRgorOjEwMDEzMDAwRkZGRkZGRkZFM0ZGRkZGRkZGRkZGRkZGRkZGRkZGQkYyQgorOjEwMDE0MDAwRkZGRUZGRkZGRkZGRkZGRkZGNjdGRkZGRkZGRkZGRkY1OAorOjEwMDE1MDAwN0ZGRkZGRkY3RkZGRkZGRkZGRkZERkZGRkZGRjJGRkY5RgorOjEwMDE2MDAwRjNGREZGN0ZERUY3RkRGRjdGRjc3REZGN0ZERkY3QkQ0QworOjEwMDE3MDAwRkY3RkZGMUZGRkVGRkJGRUZGQkZFRkZCRkVGRkVGRkI2RAorOjEwMDE4MDAwRkVGRkJGRUZGQkZFRkZGRjNGRkU3RjlGRTdGOUZFN0YxNQorOjEwMDE5MDAwOUZFN0ZBN0Y5RkU3RjlGRTdGOUZFN0ZGRkM3RkJGQkZFNgorOjEwMDFBMDAwRUZGQkZFRkZCRkVGRkJCN0JGRUZGQkZFRkZCRkVGRkJCOQorOjEwMDFCMDAwRkZFMEZERjlGRTdGOUZFN0Y5RkU3RjlERjlGRTdEOUQ0MworOjEwMDFDMDAwRTdGOUZFN0Y5RkVERURGRkZERkY3RkRGRjdGREZGN0Y4RQorOjEwMDFEMDAwREZGREZGN0ZERkY3RkRGRjdGREZGRjlCRkZFRkZCRkUxNAorOjEwMDFFMDAwRkJCRkVGQkJGRUZGQUZCQkJFRkZCRkVGRkJGRUZGRkZFMgorOjEwMDFGMDAwQjdCRkRCRjZCREJGNkJEQkY2RjlCRjVCRDZGOUJGNkZGMAorOjEwMDIwMDAwREJGNkZEQkZGRjBFRkZGRkZGRkY1RkZGRjdGRkZGN0Y4NgorOjEwMDIxMDAwRjdCREZGRkZGRkZGRkZGRkZGREY5RkZGRkZGRkZFRkZCOQorOjEwMDIyMDAwRkZFRkZFRkVGRkZGNzdGRkZCRkJGRkZGRkZGRkY4M0Y0NworOjEwMDIzMDAwRkZGREZGRkZGRkZERkZGRkZGRkZGRkZGRkZGRkZGRkZEMgorOjEwMDI0MDAwRkZGRkZGRjQ3RkZGRkVGREJFRkZERkZFRkZGRkVGN0YzRQorOjEwMDI1MDAwRkZDRkZGQ0ZGRkZGRkZERkU2RkZGRjdGREZGN0REN0Y5MQorOjEwMDI2MDAwN0ZERkY3RkY3RkRGRDdGREZGN0ZERkY3RkZDREZGRjJGNworOjEwMDI3MDAwRkZGRjRGN0ZGNEZGRkZGRkU3RUZGRkZGRkZGRkZGRkZGMQorOjEwMDI4MDAwRkZGRkJCRkZFRkZGRkVGRkZGRkZFRkZGRkZFRkZGRkJGNworOjEwMDI5MDAwRkZGRkZGRkZGRkZGRkY2NUVGRkZGRjdGRkZGREVGRkZBQQorOjEwMDJBMDAwRkZGRkZFRkZGRkZGRkZGRkZGRkZGRkZFQ0ZERkZFRkZCMQorOjEwMDJCMDAwRkZGQkZGRkZGRkZGRjNGRkZGRkZGRkZGRkZGRkZGRkY1RQorOjEwMDJDMDAwRkVERkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkY1RgorOjEwMDJEMDAwRkZGRkZGRkZGRkZFQkZGRkZGRkZFMzdGRkZGRkZGRkYwQgorOjEwMDJFMDAwRkZGRkVGRUJGRkZFQkZGRkVCRkZGQzdGRkZGRkZGRUUyQgorOjEwMDJGMDAwRkZGRkZGRkZGRkZGRERGRkQ2RkZGREJGRkZGQkZGRkVBMAorOjEwMDMwMDAwRkRGRkZGRkRFRkZGRkZGRkZGRkZGRkRFRkZGRkZGRkYzMgorOjEwMDMxMDAwRkZGRkJGRkZGREZGN0ZCRkZGNUZERkZGRkZCRjc3RkY3NworOjEwMDMyMDAwRkZGRjdGRDdGRkZGRkZGRkZGQzNGRkZGRkZGRkRGRUZGMQorOjEwMDMzMDAwRkZGRkZFRkJGRkZGREZCRkZGRkZGRkZGRURGRkI3RkY4QworOjEwMDM0MDAwRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCRAorOjEwMDM1MDAwRkZGRkZGQUY3RkZGRkZGRkZGRkZGRkZGRkZGRkZGRkY3RAorOjEwMDM2MDAwRkZGRkZGRkZGRkZGRkZGRkRGQkZERkYzRkRGQkZGNUJEMworOjEwMDM3MDAwRkRGRkJGRUZGN0ZGRkY3REZGRkZGRkZGRjgzQkZGQkY3NAorOjEwMDM4MDAwNkZGRkZFRkZCRkZGRUI3REZGRUZGQkZFRkZGRkZGRkZGOQorOjEwMDM5MDAwRkZGMjdGRkNGRjNGREZFREZFRkZGRkZGRkZFRjVGRjdBOAorOjEwMDNBMDAwQjVGRkVGRkZGRkZGRTAzRjlGOUVGRkZGRUZGRkRGRkY4NworOjEwMDNCMDAwQkY1RkJGQ0ZGM0ZGRkZGRkZGRkZGRjY5QUYzM0ZERkY1RAorOjEwMDNDMDAwRkJGRkZGRkZGRkZDRkY3RkQ5RkZERkZGRkZGRkZGRjUxNAorOjEwMDNEMDAwQTNERjZFREVGRkZGQkRGRkZGRkVGRkZGRkZGRUU3RkRCOQorOjEwMDNFMDAwRkZGRkZGRjlFRkM2RkVCN0FERTVGOUZGRkZGRkNGRkY1NworOjEwMDNGMDAwRkZGRkNERkI3RkZGRkZGRkY5RjYwRkRGRUNDRjdGRkZBNQorOjEwMDQwMDAwRkI3RkZGRkZGRkZERkZGRUY5RkQ3RkZGN0ZGRkY5NUIzNQorOjEwMDQxMDAwRkY3M0RDRkQ3QkRGRkZGRkZGN0JGRkZGRjc1M0Q2RkZBMgorOjEwMDQyMDAwRkZGRkZGRDg5RkZFRkZFRjdGRUVGRkZGRkZGQkVERUQyRAorOjEwMDQzMDAwRkRGRkZFRkZGRkZCN0ZGRkUyN0ZGRjZGRDg1N0Y3RkY1NworOjEwMDQ0MDAwRkZGRkRGRkZFOEZGRkZGREZGRkZGQzdGRkZFNEZGRkI5NworOjEwMDQ1MDAwRUZGQkZFREZCN0VERkZGRURGN0ZGRkZFN0ZCN0ZGRkZBNQorOjEwMDQ2MDAwRkZGRjg5RkZGRkNGRjNGRTdGRkZFRkZGRkU3RTdGRkJFNQorOjEwMDQ3MDAwRkZGRkZGRkZGRkZGRkZGMUZGRUI3QUQ1QkY2RkRCQkU5MgorOjEwMDQ4MDAwRkRCN0Q4RjZFNUJGNkZGQkZFRjVCRDdFMDZGRkRGRjdEMworOjEwMDQ5MDAwRkJGNkZGM0ZGRkRCRkZGRjZGRkJGN0ZGRkZGRkZCRkVGRQorOjEwMDRBMDAwRjdBRkZGQjdFREVGRjdGRUZGRkZERkZGRkVGRkVGRkY1OAorOjEwMDRCMDAwRkZGRkZGQkZGN0ZDMUZFRUZCRkVCREZGN0Y1RkQ3RkQxOQorOjEwMDRDMDAwRkI0M0ZGRkZGREZGNUZGRkY3RkZGOTNGRkZDRkYzRkRBQQorOjEwMDREMDAwRjc3RUVGQTdGOUZFOEZBN0U5RjM3RTlGRkJGOEZGRkZGQQorOjEwMDRFMDAwM0ZGRDdGNUZERkZERkZGRjVGRkZGRDVGRkZGRjdGRkRFNAorOjEwMDRGMDAwN0ZGRDlGRkZFMEZGRkFGOEJFNkY5RkU2RjhCRTNGOUFEMAorOjEwMDUwMDAwRjlCRTZGOUZFMkY5RkU2RjlGRjlGRkY1RkQ3RkNGREYyOAorOjEwMDUxMDAwRkRGRDdGRkZGNUZGRkZGRkY3RjVGRDBGREJGRkQzRkZDRAorOjEwMDUyMDAwRUJGQUZGRkZCRkZGRkFGRkZGQ0JGQkZFRkZGRkVCRkE4QgorOjEwMDUzMDAwRkVGRkZGQjdGRkZGRkZGRkJGRkZERkY1RkZGRkQ3RkZBNgorOjEwMDU0MDAwRkZGRkRGRDdGNUZGN0ZGRTRGRkZGREZGN0Y3RkZGQUQ5MgorOjEwMDU1MDAwRUJGQkZGQURGRkZGRkZGRkFGRUJGQkZGRkMwREZGRkY3MgorOjEwMDU2MDAwREZEMkZERkZGRkZERjZGRkZGN0ZGRkZGMUZGRkZGRkY1NQorOjEwMDU3MDAwRkZGQjNGN0RFQjMyRkVCRjJGRUJGQUFFQkRFMEZBN0UxNAorOjEwMDU4MDAwQkZBREVCRkFGRUJGRjU3RkZGREVGRUUzRkJGRkZGRkYzMworOjEwMDU5MDAwREZFRjRGREZGRjdGREZGRkY3RkZGRkY4N0ZGRkZGRUZBQQorOjEwMDVBMDAwRkJGRkZGRkZFRkZGRkZERkVERkJERkZGQkZGRkZGRkYwNQorOjEwMDVCMDAwODFGRkZGRkZGRjNGRkZGRkZGRkZGRURERkVFRkZERkZCRgorOjEwMDVDMDAwRkZGQkZFRjdGRjkzRkRGQjdFRkZGRTg3RTlGRjdGQjM5NgorOjEwMDVEMDAwOUZGRUZFRkZBRkZERkU3RTNGRkU2N0ZGRkZGN0ZGRkZDMgorOjEwMDVFMDAwRkNGN0RGRkRGRjdGRkZGRjdGNkRGRkZGRkVGRkZGMkZBQgorOjEwMDVGMDAwRkZCRkZGRkZFRUZGQkVGRkZGRkVGRkVGRkZGRkZFRkZBRgorOjEwMDYwMDAwRUZGRkZGRkE1RkZGRkZGQkZGRkZFRkZGRkJGRUZERkZDQQorOjEwMDYxMDAwRkVGRkZCRkZGRkZGN0ZGRkZFQkZERkZGRkJGRkZGRjdEQworOjEwMDYyMDAwRkNGREZGRkZGRkZGRkY3RkZGRkZGRkZGRkZGMjdGRkZFQworOjEwMDYzMDAwRkZGRkZGN0ZGRkZGRkZGRkYzRkZGRkZGRUZGQkZGRkY2QQorOjEwMDY0MDAwRkZERkUyRkZGRkZCRkZGRkZGRkZGRkZGRkJFN0ZGRkQxOQorOjEwMDY1MDAwRkZGRkZGQkZGRkZGRkZFREVGRkRGRkZGREZEN0Y1RkQ2MgorOjEwMDY2MDAwN0Y1REZERkY3RkRGOTdGNEZEN0I1RkZGQzlGRkZCRkUzMgorOjEwMDY3MDAwRkZCRkZGNUZGRkZGRjdGRkVGRkRGRkVGRkZGRkZGRkY5NAorOjEwMDY4MDAwRkZGN0ZGRDdGRDdEN0ZGRkZGRkZGRkVGREZGN0ZERkZFOAorOjEwMDY5MDAwQkJGRkZGN0ZGRkZFRTNGRkY5RkU3RkJGRUZGQkZFRkYyNworOjEwMDZBMDAwQkZGOUZFRkY5RkVGRjlGRUZGQkZGM0RBRkYzN0NERjM4RgorOjEwMDZCMDAwN0NERjM3Q0RGMzdGMzdDREYzN0NERjM3Q0NGMzdGNUE0OAorOjEwMDZDMDAwQkRGNkZEQkY2RkRCRjZGREJGNkZERUZEQkY2RkRCRjY3NgorOjEwMDZEMDAwRkRCRjZGRkVGMTZGRUI3QURFQjdBREVCN0FERUI3QUY0MQorOjEwMDZFMDAwN0FERUI3QURFQjdBREVCN0ZGN0VGRkZFQ0RCMzZDREIxMworOjEwMDZGMDAwMzZDREIzNkNERUNEQjM2Q0RCMzZDREIzNkNERkM5QkZBQQorOjEwMDcwMDAwRjdCREVGN0E5RUE3QTlFQTdBQjdCREVBN0JERUE3QkQ1RgorOjEwMDcxMDAwQ0E3MjhEOTFGRkVGRkJGRUZGQkZFRkZCRkVGN0VGRkIxMQorOjEwMDcyMDAwRkVGRkJGRUZGQkZFRkZGRTg3RkZGNkZEQkY2RkRCRjZCMAorOjEwMDczMDAwRkRCRjZGRjZGREJGNkZEQkY2RkRCRjZGRkU0RkZGQkY2NgorOjEwMDc0MDAwRUZCQkVFRkJCRUVGQkJFRkJFRUZCQkVFRkJCRUVGQkIwNgorOjEwMDc1MDAwRUZGQzVGRkZGRkZGM0ZDRkYzRkNGRjNGQ0ZGQ0ZGM0YwRQorOjEwMDc2MDAwQ0ZGM0ZDRkYzRkNGRkQ5RkZFQkZBRkVCRkFGRUJGQUY2NQorOjEwMDc3MDAwRUJGRUJGQUZFQkZBRkVCRkFGRUJGRkUxNkZGREZGN0YxQworOjEwMDc4MDAwREZGN0ZERkY3RkRGRkRGRjdGREZGN0ZERkY3RkRGRkY4RgorOjEwMDc5MDAwN0FCRkZCRkVERkI3RURGQjdFREZCN0ZCN0VERkI3RUQ5OQorOjEwMDdBMDAwRkI3RURGQjdGRkM5RkZGRkJGRUZGQkZFRkZCRkVGRkIyNQorOjEwMDdCMDAwRkZCRkVGRkJGRUZGQkZFRUZCRkVCQkZGRkVGRkJGRUY4OQorOjEwMDdDMDAwRkJGRUZGQkZFRkZFRkZCRkVGRkJGRUZGM0ZDRkZGRTdFQworOjEwMDdEMDAwRkVGRkY1RkQ3NzVERDczNURENzdEN0Y1Q0Q3QjVERDdBRQorOjEwMDdFMDAwRjVERDc3RkUyN0ZGRkY4QkUyRjhCRTJGOEJFMkY5QUYzNgorOjEwMDdGMDAwOEJFMkY4QkUyRjhCRTJGOUZFMUZGRjVGRDdGNUZEN0Y3RQorOjEwMDgwMDAwNUZEN0Y1RkY1RkQ3RjVGRDdGNUZEN0Y1RkZGQTNGRkVCNgorOjEwMDgxMDAwQkZBRkVCRkFGRUJGQUZFQkVDQkZBRkVCRkFGRUJGQUY4MworOjEwMDgyMDAwRUJGRkZFN0ZGRDdGRkZGRkZGRkZGRkZGRkZGRkZGRkZFRgorOjEwMDgzMDAwRkZGRkZGRkZGRkZGRkZFNkZGRkFERkY3RkRGRjdGREZCMAorOjEwMDg0MDAwRjdGQ0ZGREZGN0ZERkY3RkRGRjdGREZGRjVGRkZGRkZBMQorOjEwMDg1MDAwRkZGRkZGRkZGRkZGRkJGRkZGRkZGRkZGRkZGRkZGRkZBQworOjEwMDg2MDAwRkYwMkZGRkVCRkFCRUJGQUJFQkYyM0VCREUxRkFGRUExQQorOjEwMDg3MDAwRkFGRUFGQUZFQkZEOTdGRkYzRkM3QjFGQ0ZGMUZDN0ZFMAorOjEwMDg4MDAwMUZGMUZDNzcxRkNERjFGQ0ZGMUZGRTg3RkZBRkVGRkFEMgorOjEwMDg5MDAwRkVGRkFGRUZGQUZEQkYyQkZCN0VCRkJGRUJGQkZCRkIwOQorOjEwMDhBMDAwREZGRkZCRjdGRkZGN0ZGN0Y3RkZGRERGRkVGQ0RGRkY1QQorOjEwMDhCMDAwREZGRkZERkZEQUJGRkZCQkVGRkJGOUZGQkVFRkZCRkI4NgorOjEwMDhDMDAwQkZFRkZCRkVGRkJGRUZGQkZGRjc3RkZERDdGRkZGN0YxMworOjEwMDhEMDAwRkZGRkZGRkVGN0ZGRkVGRkY3RkZGRjdGRkZGRkVDRkZDRAorOjEwMDhFMDAwRkZGRURGQkZGRkZCRkVGRkJCNjhBRTFGQUVGQkZCRkZFMworOjEwMDhGMDAwRkZCRkZGRDVGRjdGRkZGRkY3RkVGRUZGQkZFRjlGRkRBRQorOjEwMDkwMDAwN0ZGRkNCRkZGRkRGRkZGRkJCRjdCRkZGRkZGRkZGREY3NworOjEwMDkxMDAwRkZCRkZCRkZGRkZGREUzRkZGRkZGRkZGRkZBN0ZGRkY2NAorOjEwMDkyMDAwRkZGRkVGRkY3RkZCRkRGQjdGRkZGRkZGRkZDRkYzN0NCMAorOjEwMDkzMDAwRkY3RjhEN0ZGRkZGRkZGRkZCRkZGN0ZCRkVGREZGRkY0QworOjEwMDk0MDAwRkZGRkY3RkRGRjdGRkQxRkZERkZGRkZGRkZCRkRGRkY4NQorOjEwMDk1MDAwRkZGRTVDRkY2REZGN0ZBQkU3RjFGRkZEOUZGRkZGQUQ4QgorOjEwMDk2MDAwRUI3QTNGMUZGRkZGRkVCRkFGRjNERUY1RkY4RkZCREYyQworOjEwMDk3MDAwRTY3RkZGREZGM0ZERkY3RUZGRkZGRkZGRkZGREY3RjNFNQorOjEwMDk4MDAwN0ZERkY3RUZGRkY2M0Y5RkRGRkZGRkVFRkZGRkVGRkI5RAorOjEwMDk5MDAwRkZGRkY5RkJGRTRGQkZFRkJCRkY2OUFGQUZGQ0ZGM0ZBRgorOjEwMDlBMDAwRERGRkZDQkY4RkZGRkRGM0JGRUQ5RUZDQkY2RkY1RDNGNgorOjEwMDlCMDAwREZGRkRCRDZGNUVGRkRGRUZGQjlGRjFGRDJBOUFGRkZDQQorOjEwMDlDMDAwREJGN0JGRUY0NkZGRkZBREVCN0FERkVGRjdGRjdGRjcxNworOjEwMDlEMDAwOUZFREZGN0ZGRkFERUI3RkY1NkZGRkZERkJENkY0RjdEQgorOjEwMDlFMDAwRkJGOTdFN0ZGRjVGQzJGRUJGRkRGQjMzREZGOTVCRkZEQworOjEwMDlGMDAwRkZERDY3N0RDRkVGREJFQ0ZGNzdEREY3RkRGRkZGREU4RgorOjEwMEEwMDAwQTdCRkQ0OUZGRkZGQkZFRkZFRkZERkVGQkJGRkZGRUZFRQorOjEwMEExMDAwRUJGQUZGRUZCREZCRkZFMjdGRkZERkRGRjdGREJGQkJDMAorOjEwMEEyMDAwNzNGN0ZEN0ZERkRFRjdCRkVBREJGNkZGRDZGRkZGNjY3OQorOjEwMEEzMDAwRkZCRUZGQkY2QkQ5RjZERkZGRkI3RTdGQjc3RUZGRkVGOQorOjEwMEE0MDAwRkZDREZGRkU3RkZGRkNGRDNGRkJGQkY3RkZGRkZCRjY0QgorOjEwMEE1MDAwN0RGRTdGRkZGQ0ZGQjlGRkY5RkFGRUJGQUY1QkQ2RUQ2RAorOjEwMEE2MDAwQUQ3QkY2RjlCRkVGRjhGQUZFQkZGRUU2RkZGRkY3RkQzQworOjEwMEE3MDAwRkY3RkJGRUZGM0ZGRkY2RkY3RkVGRkZGRjdGREZFRjcwRQorOjEwMEE4MDAwRUZGRkZCRUZGQjdFREVGRUZGQkZGRkZFRkZGRkZCRkY4NgorOjEwMEE5MDAwRkZFRkZCNkZGQzFGRkVFN0ZGRkZGRkVGRkZEM0I0QkJEMQorOjEwMEFBMDAwRkZGRkZEQkY2RkUzRkVGRkJGRkNCRkY3Q0ZGN0ZERkYwQQorOjEwMEFCMDAwMkZERkFCRUFGRkRGRTdFQTlBQUZFRkZCRkVGRkY1M0Y4MAorOjEwMEFDMDAwRkQ3RUZGRDdGNUZCRkZGREY3RkY3RkZFRjdGREZGRDdBQworOjEwMEFEMDAwRkZENzdGRUU3RkZBNzlGRTJGOEJFNkY5RkUzRjlFRjk3NgorOjEwMEFFMDAwQkUyRjBCRTdGOUZFMkY5RkZERkZGRTdEN0Y1RkQ3RkYzNworOjEwMEFGMDAwRkY3RkZGRkRGRjdGNUY5N0ZGRkQ3RjVGRkZFM0ZGRkY0RQorOjEwMEIwMDAwRkFGRUJGQUZGQkZCRkZGRkNGRUJGRUJGQUZGRkZBRkU2RQorOjEwMEIxMDAwQkZGRjg3RkZGRkY1RkZGRkZGRkZGREZGN0ZGRkZGRkYyOQorOjEwMEIyMDAwRkJGRkZGRjVGRkZGRkUwRkZGRkRFQkZGRkZGN0ZGRUYwMgorOjEwMEIzMDAwN0JERkZFRkZGRkRGRjdGREVCN0ZERkZGNUZGRkZGRkZFOAorOjEwMEI0MDAwRkZGREJGRkY3RUZBQkZDN0RCRjdCRDNGRkJGRkY2RkYzMAorOjEwMEI1MDAwRkFBRkZGRUJGQUZFM0YyRkVBRkEzRUFEQzlCQUY2QURBNworOjEwMEI2MDAwQUZFQkZBRjZCRkZFN0ZGRkZGRkRGRkYxN0YzRkNGRjE1NgorOjEwMEI3MDAwRUZGRjdGRkZCQ0RGREZGN0RERkZFMDdGRkZGRkZFRkY2MgorOjEwMEI4MDAwRkFFQ0JCN0Y1RkZGRkJFQ0ZGRUZCN0ZGRjdGRkZGQjVCMgorOjEwMEI5MDAwRkZGRjdGRkZGRkZGRUVERjVGREZERUZGQUVFNzc3RkZFOAorOjEwMEJBMDAwRkZERkY3RkZFM0ZGRkFCQkZFRkZBRkZERkJGRUJGQUJDRQorOjEwMEJCMDAwRjlGRUZGQkY3RkJGRkVCREZFRDdGRjlGRkRGRkJFRUY2QgorOjEwMEJDMDAwRkZFRUZEQkI1QkVGRkY3RkVGRkZFRkZGN0ZGRjRGRkYxMAorOjEwMEJEMDAwRUZGQkJDRkNGRkZGRkZGRUZFRkRGQUZFRkJGRkZERjM5QgorOjEwMEJFMDAwRkJGRkY4NUZGRkZGRDdGNUZEREZFRkZGRjNEQzVGQ0UyNAorOjEwMEJGMDAwRjVCREZGRkZEN0ZGRkZGOTNGRkZERkY3RkZGRUZGRkQ2QQorOjEwMEMwMDAwRkZGQkZGRjdCOTdERkVERkZGRkZGRkZGRjk3RkZGRkU3MAorOjEwMEMxMDAwRkZGRjdGRkZGRUZGRkZGN0Y2RkZCRkYxRjhGRkZGRkZDQgorOjEwMEMyMDAwRkZFMEZGRkZGRkZGRjlGRkZGRkZGRkZGRUZFRkZGRkYxOQorOjEwMEMzMDAwOUJGQjdGRkZGRkZGQzFGRkRGRkYzRjVGRDdCRkVGQkIyNgorOjEwMEM0MDAwREVFRUZGN0ZERkZGRkVGNTdGREZGRjk5RkZGRkZBRkY5QworOjEwMEM1MDAwQkZGREVCN0FGRkI3RkVGRUZGRkZFRkZGRkZGREJGRkYxQgorOjEwMEM2MDAwOTdGRkZERjdGRjdGRjdGRkZGRkQ1RkZFRjNGOURGREY4MworOjEwMEM3MDAwRkZGRkZDRkZGRjgzRkZGRkZFRkY5RUVDRkJFRUZGOUZFRAorOjEwMEM4MDAwQkZFRkZGRkVFRDdCRkZGRkZGRjE1QUZGRkZGREZGN0M5MworOjEwMEM5MDAwNjkzQkRGRkY3RjFGREZGRkZEQkFGRkZGRkJGRjVCQkQ4RgorOjEwMENBMDAwRkZGRkZGRkZEN0I2RURFOUZGRDZCRDZGNUZGQkZGRUY5QworOjEwMENCMDAwRkY1RkZFRjY2RkZGRkZGRkZGRjdFQjdBREZGRjlGN0YxRgorOjEwMENDMDAwN0ZGRkI3RkZGRkZFREZGRjZDRkZGQkZGQkI2RkVCRkU5RAorOjEwMENEMDAwQ0NGN0E1RkE1Q0Y1NzVCQkI3REZGRTZGNUZDNUJGRkQ0RQorOjEwMENFMDAwN0JGRUZGOTVFNzI5Q0Y0RkY1OTFFRTZCREZFRkZENTRDQgorOjEwMENGMDAwRjVCREIxRkZFRkVFRkJCRUJGQUZGRURFQkQ2RkRBRjJCQQorOjEwMEQwMDAwRkZBRkJFRkZGRkZEN0VBN0ZGRjdGRkJGRUY3QkY2RkQ0NgorOjEwMEQxMDAwQkQ0QUYyODU4NUJGNUJGRUI1RkRGQUZGNEZGRkZFREZFMgorOjEwMEQyMDAwRkZFREZGQkZGRkJGN0ZGRUZGQjc2REZGRjdCRkJGRUY1OAorOjEwMEQzMDAwRkQxRkZGRkU3REZGNjdGRkZGRkYzRjdGRkVCRkZGRTc1OQorOjEwMEQ0MDAwREZFN0ZGRUY2QkZDMUZGRkJGRUZGQkZFREVCRkFGRkE3RAorOjEwMEQ1MDAwRkZCNkVGRjlGRUZGOEZFRkRCRUZBQjZGRkJGRUZGRkZBMAorOjEwMEQ2MDAwRUZGREZGN0ZGRkZGREVGRkZGRUZGRkZGRkYzRkZGNkNBOQorOjEwMEQ3MDAwRkZCRkZCRkZGRUZGRkJGRURGRkZGRkVGRkZGRkJGRkYzRAorOjEwMEQ4MDAwRkZGRUZCRkZENTdGRkZGRkVGRkJGRkZGQkZFRjQzQjU4QworOjEwMEQ5MDAwRkQ2RkNGRDZCRTNGN0ZEQkZFQzNGRkZERkZBRkVCRkI5QQorOjEwMERBMDAwRkNGRjNFRUZFOEZBQkRDREFBRkVGRTdEQ0ZGRkI3RkYwOAorOjEwMERCMDAwRjdGRkZGRkZGREZGNzVDRDUyRDdGREZCRjdEREZCRUYyMgorOjEwMERDMDAwRUJGRkZGNEZGRkJGOUZFN0Y5RkM3RjhCQzNGOUFGOEZBRQorOjEwMEREMDAwRTdFOUJFN0Y5RkU2RjlGQzVGRkZGRkY3RkRGRjdBNUY2MworOjEwMERFMDAwRDdFREZGRkZEN0ZGREQ3RkU3RkZGQ0ZGRkMzRkZGRkZGNQorOjEwMERGMDAwRkZGQkZGRkVCRkFGRkZGREZGRUZGRkVCRkZGRkZGRkZCRQorOjEwMEUwMDAwRkZGNzdGRkY3RkRGRkZGREZEN0ZGRUY3RkQ3RkRGRkY0OQorOjEwMEUxMDAwRkRGRkZGREZGQkZGRUVGRkZCRkZGN0ZERkY3QURGRjVENgorOjEwMEUyMDAwRkRGQURGRjdGQ0ZGN0ZERkJGRURGRkM5RkZERkZGQkY4QworOjEwMEUzMDAwMkZGQkZGQkNBREZGRjdGRkZGRUZEM0ZGN0RCRjZGRkZDMQorOjEwMEU0MDAwRkFGRkZFQkZBRUVBRkFCRUFEQTVFQkNFQkZBN0VCNUFFNgorOjEwMEU1MDAwREVCREFGNkJGRDU3RkZGRkY0N0YxRjdGRkRGRjdGMzZDOQorOjEwMEU2MDAwRjBERjc5RkZGRkZGRjdGREJGRkY4N0ZGRkJGM0ZDRkYxQworOjEwMEU3MDAwRkZGRkZGN0VGRkJGREZGRkZGRkZGRkZGRkRCRkY4OUYwQworOjEwMEU4MDAwRkZGRkZGRkZCRkZGRkZGREY3RkNCREZGRkVGRkZGRkYwMgorOjEwMEU5MDAwRkZGRkZCRjlCRkZGRkZFQkUyRkVGRkJGRUZBOUJBMkY5OQorOjEwMEVBMDAwRUJGOUZFNzdERkY3RkZGRkY5N0ZGRkZGN0ZFRkQ3RkY1QgorOjEwMEVCMDAwRkRGRkZCRjVGRkJGNkZERkZGRkZGREZGRkZGMEZGRkY1MworOjEwMEVDMDAwRkYzRkNGRkZCQUVFOUJCRkVFRDdGRUNERUZGRkRGQkZGOAorOjEwMEVEMDAwRkZGRkM1RkZGRkZEN0Y0RkZERjZEOUZGNEZENkZEQkZEQQorOjEwMEVFMDAwNkVGRkZGRjQ3RkZGN0Y4QkZGRkZGRkZGRjdGRkY5RkUzMQorOjEwMEVGMDAwMzdGRkQ5RkJGNUFGRkRGRkZGRkJGRkZGMDdGRkZGRkY0QworOjEwMEYwMDAwRkJGN0ZGRkRGRjdDRkE3RTRGRkNERjFEQzdGRkZGRkZGNQorOjEwMEYxMDAwRkZBRUZGRkZGRkZGRkRGQkZGRkZGRUZFRkNGRjdGN0YzRAorOjEwMEYyMDAwQkZFRkZFRkZGRkZGNUZGREZGRkZGRkZENkY1QUQ3N0JBNworOjEwMEYzMDAwQkU1RkZFMzlGRkY3RkZGN0ZERkVBQTFGRkZGRkZGRkZCMQorOjEwMEY0MDAwRkVGRUFCQUZGREZFQkZGRkY3RkY3RkZFOEZFM0ZCRUVDNAorOjEwMEY1MDAwN0ZGRkZGRkZGRkVCRkJGRkZEQkZFRkRGRkZGRkZGRkZBQgorOjEwMEY2MDAwRkZGRkZGRkJFNDNGRkZERkZGRkZGRkZGRjNFRkJCRkJGNAorOjEwMEY3MDAwQkZFRkJCRkZEN0JGRkZGRkZGMjlBRkY3RkZGRkZCRkZBRgorOjEwMEY4MDAwRkJFNkZGMEZGQjNGREYwRkZGQUZGRkZGRkZGNUMzREYwOAorOjEwMEY5MDAwNUZGRkZGRkZGRTZCQ0FCRUJDRkY5RkYyQkZGRkZFRkEwMgorOjEwMEZBMDAwRkZGRkVGMTZGRkZGRkZGRkZGRkNERjk3RkQ3OUZGMzcyNQorOjEwMEZCMDAwRTc3RkZGRkZCNUZGRkZGNjJGRkZGREZCRkVGRkZGRkQwNQorOjEwMEZDMDAwNUY1NzVGRkZEQjUyREZGRkZEQkZGRkZGRkNEQkZGN0JGNworOjEwMEZEMDAwQjVGRDdGRkY3MTlDNkVGRkY2MzVBNTlCRkZGRkZERkYwMgorOjEwMEZFMDAwRkZEQjlFN0ZGRUVGRkJGRkZGQkRFRkZGREVCN0Y5NEJBMAorOjEwMEZGMDAwRkZGNUVGRkZGRkZGRTg3RUZGRUFERkY3RkZGRDY5NUIyQworOjEwMTAwMDAwRkM5RkVGNzhENkZGRUJFRkZGRkZGRkU4RkZGRkVERkY2MAorOjEwMTAxMDAwRkZGRkZGRTNGOUY2QkZGRkZGRkVERkZGN0ZGRkZGRkZFQworOjEwMTAyMDAwRDFGRkZGRTdGRkZGRkZGRkU3RjlGRkJGN0ZEOUZGRkQxQworOjEwMTAzMDAwRkU3RkZGRkVGRkY5RkZGQkQ2REZCRkVGNUJENkZGQkZGMgorOjEwMTA0MDAwRkJGNkZGQkZFRkY4RjZEREJFRkUxNkZGQkZFRkZGRkVCQgorOjEwMTA1MDAwRkZCRkVGRkZGRkZGNkZGQkZGRkZGRjZGRjNGRkY3RUYzOAorOjEwMTA2MDAwRkJGRkJGRkZFRkZFRkZCRkZGRkZGRkJFQkZGRkVGRkZCNgorOjEwMTA3MDAwN0ZFRkZGRkQxN0ZCN0JGRkZGRkQ3RkRCRjZGNDdGRkFDMQorOjEwMTA4MDAwRkVGNUJGRUJFM0Y3RkZGRkU5QkZGRkFGRjdGREYzN0UzMAorOjEwMTA5MDAwOEZBM0VBRkZDQkYzRUVGRkJGRUZGN0Y5RkZGRTdGRkY3MQorOjEwMTBBMDAwRkZGRkZGRjVGQkY2RkZGNTJGRkVGQkQ3QkZGRkJFREYwRgorOjEwMTBCMDAwOUZGRkYwRkZGRkY5RkU3RjhGQTNGOEZFNkY5RkY5RjYwOQorOjEwMTBDMDAwMkY5RkU3RjlGRTJGOUZFMUZGRkZGRjdGREZGN0Y1RkQ4MQorOjEwMTBEMDAwN0Y3RkY1RkY5RjVGRkJGRUZGN0ZGRkZGQ0JGRkZGRkJFNworOjEwMTBFMDAwRkVGRkJGQUZGQkZFRkZERkZFRkVCRkY3RkZGRkZGRkYxMAorOjEwMTBGMDAwRkZDN0ZGRkZGREZGN0ZEREY3RkRGRkZGRDdGRkZEN0Y5MAorOjEwMTEwMDAwRkZGQkZERkZGRkZFRUY3RkZERUZGQkZFRkJGREZGN0YyMworOjEwMTExMDAwREZGREZGN0FERkY3RkRGRkZGRkZGRjFGRkZGRkQzRjdDNAorOjEwMTEyMDAwRkZGRjZGREJGRkZGRUZDQkY0RkZGRkZGRkZGRkZGRkVEMworOjEwMTEzMDAwMjlGRkU4REE3NjlGQUY2QURBRkUzNUVCREFENkJGQUI4NQorOjEwMTE0MDAwRUI3QURFQkZENzdGRkZGRUZGQkZFRkZEREY3N0JGRkQ4RQorOjEwMTE1MDAwMzdFRkZGRUZGRjNGRkZGRkZGRkU3RkZGRkZGRkY3N0U1MQorOjEwMTE2MDAwREZGRkZGRkZGQUI3N0ZGRkZGRkVGRkZGRkZGRjg5RkZGMworOjEwMTE3MDAwRkZGRkZGRkZGRkZGRkZGRkZGOUZGQkZGRkZGRkU3RkZGQgorOjEwMTE4MDAwRkZGRkZGQUFGRkFCRkJGQUVGQkZGRkRGRkE3QkI5RkU2MQorOjEwMTE5MDAwRkVGRkZERkZGN0ZFM0ZGRkI3RkZGN0VFRkY3RkVGRkYxQworOjEwMTFBMDAwRkY3RkZGMUZGQkZGQkZGQkZFRkZCREZGRkYyRkZGQkY0QQorOjEwMTFCMDAwRkY3RkRGRkFGRkZGRkNFRUY1RjNCRUZCMEZFRkYzQkVBMAorOjEwMTFDMDAwRUZGQzVGRkY1QUZGRjdERkZGRkZGRUQ1RkM1RkZCRjI4RQorOjEwMTFEMDAwRkZGRjJGQkJGM0ZGRkZCRkZGRUZGRkVGRkZGRkZGRkY5RgorOjEwMTFFMDAwQkZGRkZGRkQ3QkZGREZCOUZGRkJGRkQ4N0ZGRkZGRkZFNgorOjEwMTFGMDAwRkJGRkZDN0YxRkJGRTBERkY3RUZGRkZEN0ZGRURGRkZBMAorOjEwMTIwMDAwRTBGRkZGRkRFRkZCRkZGRUY3REZGRkVCNUZGRkY3RkYwOAorOjEwMTIxMDAwRkZGRkZGQkZGRkZERkZGREZGRkZGRkY3RkRGRjNCREMxMworOjEwMTIyMDAwRkQ2RDdCNUY1N0Y1RkQ3RjVGRkZCMUZGRUJGRkZGRkZCQworOjEwMTIzMDAwRkJGQkZFRkZCRkZCQkVGRkJGRUZGQkZFRkZBRkZFRjdGQQorOjEwMTI0MDAwREZERkZGRkZGRjdGQ0ZGM0Y4RkZEN0ZCRkY1RkJGRjdDNQorOjEwMTI1MDAwRkJGRjdGRkUyM0ZGRkZGRTdGRjNGRkZCRkVGRkZGRjM5RAorOjEwMTI2MDAwRkZGRkY1RjlGRjNGRkZGRkYwOUFGRkJFN0ZGRkZDRjk5QworOjEwMTI3MDAwRkZGREFGRUJGRUJGRkZDRkYzRkU3RkZGRkY1QkJERkZDOAorOjEwMTI4MDAwQkNFQkZGRDdENEFGQUZGREZGQ0ZGN0ZERkY3RkRGRjc5QworOjEwMTI5MDAwRkRGRUZGNkZGRkZCRkZGRkZGRkQ3RjVFRkRCRkRCRjY4NworOjEwMTJBMDAwRkRCRjZGRkJFRUZERkY3QUZGRkFGQkZGM0ZGQkI3NUY3MQorOjEwMTJCMDAwRDZGNzFGNzFEQzc3MURDNzMxREM3N0RGRjlCRkY1NUIyRgorOjEwMTJDMDAwRjRENzlEQUVGRkJGRkRCRkRCRjZGREJGNkZEQkY2RkVDMworOjEwMTJEMDAwM0Q4MUZGRUJGRUZFRkVGRkVCN0FERjdENzc3REY1Nzk0QQorOjEwMTJFMDAwREY1N0RERjU3RDdFRTZGRkQ2M0ZCRjdGRkZENEY1M0ZCQworOjEwMTJGMDAwQkZGQkJFRUZCM0VFRkI5RUVGQkJGRThCRkZGRURGQjc4NworOjEwMTMwMDAwRURGRkY3RkRGRUZGRUZCQkVFRkZCRUVGQkJFRUVCRkMyQworOjEwMTMxMDAwMUZGRkZGRkRGRkU3RkZGN0ZERkZFRkZFRkZCRkVGRkI0NgorOjEwMTMyMDAwRkVGRkJGRUJGQTFGRkZCN0VGNUJGRUZGQUZFQkRERTdBMgorOjEwMTMzMDAwREU3NzlERTc3OURFNzc5REJGRTY2RkZGRkVGRkJGRUZBQgorOjEwMTM0MDAwRkJGRUZEQkY2RkY2RkRCRjZGREJGNkZEQkZGRjdFRkY0RgorOjEwMTM1MDAwRkZGQkZFRkVGRkVGRkJGREVGN0VGN0JERUY3QkRFRjc1MQorOjEwMTM2MDAwQkRFRkZGRDVGRkJGRkZFRkZFRkZGQzNGMEZFN0ZFN0ZBNgorOjEwMTM3MDAwOUZFN0Y5RkU3RjlGRTdGRUYzRkZGRURGQURERjY3RUUzRAorOjEwMTM4MDAwRkJCRkVGRkVGRkJGRUZGQkZFRkZCRkVGRkYyM0ZGRkY0MworOjEwMTM5MDAwRkZGRjdGRkZGM0JDREJGRUZCRkZGQkJFRjdGQkZGN0YyNgorOjEwMTNBMDAwREZGRkNGRkJGRjlGRTNGOUJFM0Y4RkU3NzlGRjlERTdBQworOjEwMTNCMDAwRjlGRTdGOUZFN0Y5RkU1RkZGQ0ZGN0ZGRkZGRkRGRjc0MworOjEwMTNDMDAwRkU3RkU3RjlGRTdGRkZGRkZCRkVGRkZGQkZGRkJGQkYxMgorOjEwMTNEMDAwRkZGRUZGQkZFRkZGRkRGRkZGRkZGRkZGRkZGN0ZERkY3QQorOjEwMTNFMDAwRkYzRkZGQkZGRkY3RkZGRjdGREZGRkZGRkZGRkZGRkZCNQorOjEwMTNGMDAwRkZGRkZGRkZGRkU4RUZGRjVGRjdCRkY5RkVERkI3RkQ3RAorOjEwMTQwMDAwRkZERkY3RkRGRjdGREZGN0ZERkZEREZGRjJGRkJGRkYyRgorOjEwMTQxMDAwRkZCRkZGRkYyRkYyRkZCRjJGN0JEMkY3QkYyRkZGQkIxNgorOjEwMTQyMDAwRkZFRThGQUZFQkZBRkUzRkE3NjlDRThGQTRFQUZBRUU4QworOjEwMTQzMDAwQjdBRUVCRkRDN0ZGRjdGN0ZGRkZGRkZGRkY3RjNFRjMwMAorOjEwMTQ0MDAwNzRGRjNGNEZGRkU3RkYzRkZFQTdGRkZGREZGN0I3RkY0OAorOjEwMTQ1MDAwRjdGRkJBRUYzN0VCRkJGRUJGRkJGRUYzRkZGOURGRkY1MQorOjEwMTQ2MDAwQkZGRkZGRkZCRkZGRkZGRkZEREZGRkZERkZGRkZCRkUzNQorOjEwMTQ3MDAwRkRGRkZCQkZGRTNGRURGRkRGQkUzREE3RkJGQTNGRTZGMgorOjEwMTQ4MDAwRTFGRUZFM0ZFRkUzREZGNTdGRkVGRjdFRkZGRkZGRkZBNAorOjEwMTQ5MDAwRUY2RkY2RkY3REVGRDdERUZGN0RFRkZGRjJGRkZGRkY3RgorOjEwMTRBMDAwRkZGRkZGN0JERUZCRTZFRUVGMzc2RUYzN0VFQjM3RUYwMQorOjEwMTRCMDAwRkZDMUZGRkVGRkY3RUZGRkZGRkZCRjNGRDJERkJGMkZGMAorOjEwMTRDMDAwN0JFMkZGRkUzQkJEREJGRkZFRkZGRkZGRkZGRkVGRkUwQQorOjEwMTREMDAwRkZGQkZGRkZCRkZGRkJERkZGQkZGRkI3RkZGRkJGRUY1QworOjEwMTRFMDAwRkZGRkZGRkZGRkZGMEZGRjdGRkYxRkVGRjFGREZGRjY4NQorOjEwMTRGMDAwQUZGRkZGRkZGRkZGRUZGRkZGRkZGRTlGRkZGRkZGNzc0NQorOjEwMTUwMDAwRUZGN0ZCRkZGRTVGRkZGRkJGQ0ZGQkY3RERGN0Y1RkY1OAorOjEwMTUxMDAwNUZENUY1RkQ3RjVGRDdGNUZGRkIwRkZGRkZBOUVBN0FFNworOjEwMTUyMDAwRkZBRjhGRkVERkFGRUZGQkZFRkZCRkVGRkJERkU1NUYzRgorOjEwMTUzMDAwRkZGRkZGRkZGRkJENTdGRkZGNkY3N0JGRjdGQkZGN0Y4OQorOjEwMTU0MDAwQkZGN0ZGRkNCRkZGOUZGRkZGRUZGRkZFRkZGRkZGMUY4NworOjEwMTU1MDAwQ0ZGRkZDRkZGRkZGRkZGQjY1QUZGMzdDRkYzRkRGRkYyQgorOjEwMTU2MDAwRkRFOUZFN0ZFN0ZGRkU3RkZGRkZGRkZGRkRFM0RGRkJGRgorOjEwMTU3MDAwREJGNkZERUY1QkZCRkZERkZDRkYzRkRGRjNGREZGN0ZGMworOjEwMTU4MDAwREZFRjY2RkZERkFERUI3QURFRjdGN0U3RDlGRDlGNjdBOAorOjEwMTU5MDAwRDlGNjdEOUZFN0RGRjU0N0ZENjU1QkQ2RjRGRUZGRUZFQgorOjEwMTVBMDAwRkY2REY2RERCNzZEREI3NkRDQjc3REZBOUJGNjZEOURFMgorOjEwMTVCMDAwNjc1OURGRjdEREZGRUJGRUJGQUZFQkZBRkVCRkFGRTMyRQorOjEwMTVDMDAwRDE5RkZGQkRCRkVGRkVGN0JGQkZGN0Q3N0ZEREY3OUQxMAorOjEwMTVEMDAwREY3RkRGRjdGRkUwN0ZGREMxREZGN0ZEQzc3RjdGRkIyOAorOjEwMTVFMDAwRkZCQkVDRkIzRUZGQkZFQ0ZCRkZEODdGQkY2Q0ZGQkUzOQorOjEwMTVGMDAwRkZCRkVERkZFRkZFRkJCRkVGRkJGRUZGQkZFRUZGQzU0MgorOjEwMTYwMDAwRkZBRjZGRkZGQ0ZEM0ZFN0ZGRkVGRkVGRkJGRUZGQkZGRAorOjEwMTYxMDAwRUZGQkZFQkY4OUZFRkFCQUZFQkZBRkZCRjZGNUQ5N0Q0MAorOjEwMTYyMDAwOTc2NUQ5NzQ1RDk3NjVEM0ZFRDZGRkJGRjdGREZGN0Y0MQorOjEwMTYzMDAwQkZDRkZCRkVGRkVGRkJGRUZGQkZFRkZCRkZGNjhGRkIxNQorOjEwMTY0MDAwRkZFRkZCN0VEQkZFRkZCRUVGRUVGQkJFRUZCQkVFRkI3NAorOjEwMTY1MDAwQkVGRkZGREZGRjQzRkZGRkZCRUY1RkI3RkU3RkU3Rjk1MgorOjEwMTY2MDAwRkU3RjlGRTdGOUZFN0ZGOUJGRkVBRjc3RkRGRjJGQUY0QgorOjEwMTY3MDAwQTdGRUZGRUZGQkZFRkZCRkVGRkJGRUZGRjE3RkVGREZGQgorOjEwMTY4MDAwRkY5N0Y1RUZGRkRGRkZGRkJGRkZCRkZGRkZGRUZGRkY4RAorOjEwMTY5MDAwRkZFMEZGRkZGOUZFMkY4QkUzRjhCRTc3OUZGOURBNzdDMworOjEwMTZBMDAwOURFNzc5REU3NzlGRERGRkZERkQ3RjVGRDdGREZGN0Y0MworOjEwMTZCMDAwRTdGRTdGOTdFN0ZCRkVGRkJGRUZGRkFCRkZFRkZBRkUxMgorOjEwMTZDMDAwQkZBRkZGRkFGRkZGREZGRkZCRkZGN0ZERkY3RkRGRkY4RAorOjEwMTZEMDAwNjdGRkY3RjVGRkZGRkZERkZERkZGRkZGRkZGRkZGRkZFNgorOjEwMTZFMDAwRkZGRkZGRkZGRkVGRkZCREVCRkZGRkY3QURFQkZGREZGRQorOjEwMTZGMDAwRkRGRjNGREZGN0ZERkY3RkRGRkY1RkZGRjdGRkZGRkQzMAorOjEwMTcwMDAwQkZGRkNCRjRGRjdGRDNGN0ZEM0Y3RkQzRjdGRkZDM0Y1NQorOjEwMTcxMDAwRkZFQUZBQkVBRkFCRUJCQUY0OTU2QjUyRDRBRDJGNEFFOQorOjEwMTcyMDAwRDJGNkJGRDI3RkY3M0ZGRkZGRjM3RkZGRkZGN0ZGQkE4RAorOjEwMTczMDAwREZGQkZERkZCRkZGRkJGRkY4N0ZFQUZGRkVGRURGRkZFMQorOjEwMTc0MDAwRjdGRjdGQkJGRkZGQkZERkZCRkZGRkJGRkZCMTdGRkZFNworOjEwMTc1MDAwRkJFRkZGRkZGRkZGRkZCRkNGRkVGRkZGRUZGRkY3RkYzNgorOjEwMTc2MDAwRkZGRkYxRkY2OUJFRkFCRkFGRTJGRkZFRkRBRkYzRkU4MAorOjEwMTc3MDAwRkZCRkVGRkJGQ0ZGRkYwN0ZEOTVEQkRGN0ZERkFGRkY2OAorOjEwMTc4MDAwRjdBRjM2RkVCRjY1RUJGNkZFOUY2RkZFMDdGRkNGRkY5QworOjEwMTc5MDAwRjhGRUZGQ0ZGRkY2RkFFN0ZCRkVGRkJCRURGOUZGRkYxOAorOjEwMTdBMDAwRkY1RkZGRkZGRjc1RkZFRjdFRkRFMEU4NUVEM0U1RjkyOQorOjEwMTdCMDAwM0U1RkQ3RjdGRkZBMkZGQkZGRkZGRkZGRkVGRkZGN0YyNAorOjEwMTdDMDAwN0ZEN0Y1N0Q1RjU3RDVGNUVGRkZGMzdGRkM3RkZGQzczMAorOjEwMTdEMDAwRjFGRkZGMUZDRkIwRkYzRkNGRjNGQ0ZGM0ZDRUZGRTQ5MQorOjEwMTdFMDAwRkZERjdGRkVGN0JCRkZGRkRGRUZFRUZGQkZFRkZCRkU4QworOjEwMTdGMDAwQkZCRkVGRkZEMUZGRkZGRkZERkJGRkZERkZGQjlGRTkzOQorOjEwMTgwMDAwRkU3RjlGRTdGOUZFN0ZCRkZGQjNGRkZGRjdGRkZGQUY0QworOjEwMTgxMDAwRjdGRkI2M0ZFQkZBRkVCRkFGRUJGQUZFQkZGRUE3RkY0NgorOjEwMTgyMDAwRkZGRkZGRkZGN0ZGRkZGRkZFOUZGN0Y5RkY3RjlGRTczNworOjEwMTgzMDAwRkZGRkZFQUY2RkZGRkZGRjlGRkZERkZGN0Q1RkRERkY1RAorOjEwMTg0MDAwRkJCRkU3QkJGRkZCREY2RDVGN0VGRkZGRkZGRkZGRkYxRgorOjEwMTg1MDAwRUJGN0ZGRTdFRkY3RkZGRjdGRkZGN0ZGRkM4RkZGRUZFRgorOjEwMTg2MDAwRkRGRUZGQkVGNEYyN0REN0NGRkYzRkZGRkZGRkZGRkY3RQorOjEwMTg3MDAwRkZDRjZCRkZCRjNGRkJGMkZDN0ZFQkZGOUZGQUZGRkY0OQorOjEwMTg4MDAwM0ZGRkYzRkZGRkZENzBGN0ZGRkZCRkZGRkJEN0ZFRjU0NAorOjEwMTg5MDAwNzdGRjE1REQ3N0ZERkY3RkRGRjdGQkNEQkZGRkZERkY5NgorOjEwMThBMDAwRkZERjM3Q0RGOUVDRkVFRkJCRjRGQjNGNEZCM0ZGRkQ5RAorOjEwMThCMDAwQ0JGRkU5N0U1NDlGRTU0QkI3RkZERDdEQzc3MURENzczOAorOjEwMThDMDAwNURENzc1Q0Q3RkQ2RkZEM0Y2RjkzRjZEOTVBRjdGRkUxRgorOjEwMThEMDAwRkZFRkZCRkVGRkJGRUZGQkZFRjZDN0ZGQUQ3QkNBRkZDRQorOjEwMThFMDAwQkZCRkVGRkRFM0RGQjdFREZCN0VERjM3RURFM0ZCREZFRgorOjEwMThGMDAwRkY1MjVDMTVGRENGN0ZERkZFRUZFRkZCRkVGRkJGRUM3RAorOjEwMTkwMDAwN0JGRUZGRkUzRTdGREFGN0ZERkY3RkZGRkZGQkVGQkJCNQorOjEwMTkxMDAwNkZGQkZFRkZCRkVGRkJGRkY3N0RGRkQ4RkZGREJGN0YzMworOjEwMTkyMDAwRkJGRkZGOUZGQkZFN0Y5RkU3RjlGRTdGOUZFQTdGRjZBRAorOjEwMTkzMDAwQkZCRDZBNUFGNkU1QkY3NzVGNkRERDc3NURENzc1RERCMAorOjEwMTk0MDAwNzdGRkE1QkZDRkZCRkZGRkJGQ0ZGQkZERkZCRkYzRkVDMAorOjEwMTk1MDAwRkZCRkVGRkJGRUZGRkRBQkZGQkZCRkZGRkJGRjdGRUY1NgorOjEwMTk2MDAwRkZCRUZCRUVGQkJFRUZCQkVFRkJCRkZGQjVGRkQwQkM4NworOjEwMTk3MDAwRkQyRjRCRjdGRkZGOUZGOUZFN0Y5RkU3RjlGRTdGOUY0QgorOjEwMTk4MDAwRkE4RkZEQUJGQURBQkZBRkIzRkRGRkJGRkJGRUZGQkZCRgorOjEwMTk5MDAwRUZGQkZFRjdCRkZGOUZGRjc3RjdCREZENzdERkZGN0UxMQorOjEwMTlBMDAwREZFREJCRkVGRkJFRUZGQkZFRkZGQTNGRkZCRTZGOEYxQQorOjEwMTlCMDAwRTZGOUZFN0Y5RkM3RkU3RjlGRTdGOUZFN0Y5RkU3RkI2QgorOjEwMTlDMDAwN0ZGRjdGQ0ZGRkZERkZGRkRGRkJBRkJGRUZGRkZFRkYxRQorOjEwMTlEMDAwOUZFRkZCRkZGQ0ZGRkJGRUZGRkZGRkZGRkVGRkZGRjc5QworOjEwMTlFMDAwRkZGRkZGRkZGRkZGRkZGRkZGRjVGRkZGRkYzRkRGRjdGOQorOjEwMTlGMDAwRkZGRjdGRUZGRUZGQkZGRkZCRkZGRkJGRUZGRkIzN0ZFOAorOjEwMUEwMDAwRkY3QjVFRjdGREZGN0I3RkY3RkY3RkRGRjdGREZGN0Y0QgorOjEwMUExMDAwREZGN0ZGMTdGRkZGRkY3RkZGRkZEREY2RkNCRkNCRjIxNQorOjEwMUEyMDAwQkNCRjJGQ0JGMkZDQkZGRThGRkZGQTdFQkZBN0VCREE2NQorOjEwMUEzMDAwRkNCRkFGN0FGRUJGQUZFQUZBRkVCRkFGRjRERkZFRkYzNgorOjEwMUE0MDAwRjMzQzdGM0VGRkNGRjhCRjhGRTNGOEZFM0Y4RkU3RTgyMAorOjEwMUE1MDAwRkZGQzlGRkZGRkNGRUJCM0U3RkI3QkYzRkVGRkNGREI4QQorOjEwMUE2MDAwRkJGQkJGNkY2RkRGRUM3RkZGRkZGN0ZERkRGRkZGRkZBRAorOjEwMUE3MDAwRkZCMkJGRkZERUZEQkRFRkZCRjZERkVBRTdEQkZFQkIzQgorOjEwMUE4MDAwRkZFQkZCQkY5RjhGRThGRTNGOEZBM0Y4RkUzRjhGRkY2QQorOjEwMUE5MDAwRjg3RUZERkQ3RkZGRkJDREZGRkRGRjVGRUZGREZGRkY0QworOjEwMUFBMDAwREZGN0ZERkZCRTkwRkZGRkVFRkYzRkJGRjNCQkZFQjdDQQorOjEwMUFCMDAwQUJGQUZFQUZBREVBRkFERUFCRkY2M0ZGRkVGMkZGQjNCNworOjEwMUFDMDAwRkZERkVFN0RGRjAzRjFGNDNGMUZDM0YxRUM3RkZFNkZGQworOjEwMUFEMDAwRkZGQkZCRkY5RkZGQkZGRjdCNUZGREZGREZGN0ZERkQxMAorOjEwMUFFMDAwN0Y3RkRGRkVDRkZCRkZGRkFGRkJGRjFGRUZBNUZEQkYzQgorOjEwMUFGMDAwREZGQjdERkZCRkRGRkJGRkZEM0JGRkZGRkZGRkZGRkRDOAorOjEwMUIwMDAwQUZGM0ZGRkI3RkJGRDdGQkJGN0ZCQkY3RkZGODdGRkZDNAorOjEwMUIxMDAwRkE1RkQ3RkZERjdGRUZGRkZGN0ZEQkY3RkRGRjdGREZBMAorOjEwMUIyMDAwQjdGQkVDRkZGRkY3QkZFRkZERkNGQkZGRUZGMEZFM0Y2NQorOjEwMUIzMDAwOEZFM0Y4RkUzRjhGRUY4REZGRkZFRjdGQkZGRkZCRkZDRgorOjEwMUI0MDAwREJCRkZGRkZGRkZGRkZGRkZGRkZGRkVGRDhGRjJFN0Y5MQorOjEwMUI1MDAwQkVFRkZFNkVGRkJGRjlGRkZGRjNGRkZGRkZGRkZGRkZDQQorOjEwMUI2MDAwRkM2NkJFNDdGMzdGREZGRTg3OUZGRkZGRkZGRkU3RkZCNworOjEwMUI3MDAwRkZGRkZGRkZGRkQ2NkY3Q0ZCNEZEMkZGRkQyQkZFRkY2OQorOjEwMUI4MDAwRkZGRDVGRDdENUY1N0RGRkZGRkZCRjlCRkZGRkRGQjdGMQorOjEwMUI5MDAwRkZGRkRGRkYzRkNGRkU3RkJGRUZGQkZDRkYzRkZGRDkyMworOjEwMUJBMDAwQkZGRTk3RUM4RkI3RkU5QjdERkRCN0RENzcxREM3NzEzQworOjEwMUJCMDAwREQ3NzVERDdGMzZGRkQzRjczRERBRkZEN0FGRkZGQUZEQworOjEwMUJDMDAwRkVGREJGRUZGQkZFRkZCRkVGNjY3RkZGRkZCRkJGRkY2NgorOjEwMUJEMDAwRkJGRkY3REZGREZCN0RERkI3Q0RGMzdDNUYzRjkxM0Y4MAorOjEwMUJFMDAwRkYzREVGN0JGRkZDRkZDQUVGRkVGRkJERUZGQjFFRTdGMworOjEwMUJGMDAwQkJFQzdGQjNGRkZEOUZGRkZGRkVGRkZGN0ZCRkZCRkU0MAorOjEwMUMwMDAwRkZCRkVGRkJFRUZCQkZERjY3RkZGRkJGRUZEQkZGQkNGQworOjEwMUMxMDAwRkU3RkZCRkY5RkVGRjlGRTdGOUZFN0Y5RkU4N0ZGRUU1OAorOjEwMUMyMDAwRkJCRUU1QkZFRkY5RDc2NUY3RERFNzdEREY3NzVERDc3MQorOjEwMUMzMDAwN0ZGODlCRkVGRkJGRUZGQkZGRkZCRkVGRkJGRjdGQ0ZGOAorOjEwMUM0MDAwRjNGQ0ZGQkZFRkZGREIzRkVGRkJGRUZGREZGRkZFRkIyMQorOjEwMUM1MDAwQkJFRkJGRUZCQkVFRkJCRUVGQkJGRkZDN0ZGRDNCNUIxMworOjEwMUM2MDAwRDZFNUZENEZDM0ZCRkZCRkVGRkJGRUZGQkZFRkZCRkY2MgorOjEwMUM3MDAwQjRGRkZBQkM4RkIyRTlEMjJFQ0ZGQkZGQkZFRkZCRkU2MQorOjEwMUM4MDAwRkZCRkVGRkJGRkVDRkZGREZEN0ZERkY3RTRERjVGRkY1MgorOjEwMUM5MDAwRkZGQkZGRkZGRkZGRkZGRkZGRkZDM0ZGRUZFNkY4RkVDNQorOjEwMUNBMDAwM0Y4QjgzRjlGRTdGRTdGOUZFN0Y5RkU3RjlGRTdGMTcwMQorOjEwMUNCMDAwRkRGRkZGRkY3RjVGRjcyQ0ZGRkZGRkZFN0ZGRkU3RjlEMAorOjEwMUNDMDAwRkU3RjlGRkUyRkZGRkZFRkZGRkVCRkVGQURGRkZGN0YwOQorOjEwMUNEMDAwRkZGRkZGRkZGRkZGRkZGRkZFREZGRkRGRkZGREZEN0ZEOQorOjEwMUNFMDAwREZGN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQTNGRkVGMgorOjEwMUNGMDAwRjdGREVGN0FGRkIxQkRGRjdGRjdGREZGN0ZERkY3RkQ1NworOjEwMUQwMDAwRkY3RkYzMjdGRkRGRkZEREZGRkM5QkZGQ0JGQ0JGMkYzNworOjEwMUQxMDAwQ0JGMkZDQkYyRkM5RkZERUZGREZBRkVCREFGRUJCQUZCQworOjEwMUQyMDAwRUJGOEY3QUZFOEZBRkVCRkFGRUJGMkZGRkRGRkZGRUYxNgorOjEwMUQzMDAwQkREN0JGRkZGRkRFOEZCOERFMzc4REEzNzhEQTNGOEZDOAorOjEwMUQ0MDAwRkZBMUZGRkZGQkZCRkZGRkZGRkZBN0JERkI3NkZEQkY3MgorOjEwMUQ1MDAwRUZEQkZFQkJCRkZFMjc3RkZGRkVGRUZERjVGRkVGRjVDRAorOjEwMUQ2MDAwREYxRkU3RkRGRjdGREZGN0ZERkZGRkNERkRBRUZGRkFEMQorOjEwMUQ3MDAwM0UzRkFCRkRGODdFOEZFM0Y4RkUzRThGRTNGOEZGRkVCQgorOjEwMUQ4MDAwMUZFRkRGQkZGRURFREZEOUZGREZCQ0ZGRkY3RkZGRUYwRQorOjEwMUQ5MDAwRkQ3RkRGRjdGOTNGRkVGRkZGNkZGRURFQkZGN0VERUFFNQorOjEwMURBMDAwRkQ4RjgzRjhFQTNGOEZFRkZGRjQ3RkZGRUZFRjdCRjNDOAorOjEwMURCMDAwRjE1RkZGRkZGMTNCN0ZERkY3RkRGRkZGRkZGRkUwRkY3QworOjEwMURDMDAwRkZGRkY3RkY2RkZGN0ZGRkZGRjdERUY3QkZFRkZCRjdDOAorOjEwMUREMDAwRkRGRkZGRjVGQUZGRkZGQkU3RkZGM0Y4N0ZGM0RGRkZGRgorOjEwMURFMDAwRkZGRkZGRkZGRkZGMUZFRkJCRkZGRkZGRkZGRkZGRkQzOQorOjEwMURGMDAwRkY3RkZGOUZGRkZGRkZGRkZGRkZGRkNGRkYzN0ZGRkZDQgorOjEwMUUwMDAwN0ZERjc3NURFN0ZDRkZCRkY3RjVGQkZGRkZEN0Y1RkI1MworOjEwMUUxMDAwRkZGRjQ1RkQ3RkVBRkRCRUJGREZGN0ZGRkZEQkZCRkVGNworOjEwMUUyMDAwRkZCRkVGRkZGRkZGRkI1RjdGRkZGRUZGRkZGRkZGRkYzNworOjEwMUUzMDAwRkZGRUZGRUZGREZGN0ZERkZGRUZGQkY4MEZGM0ZGRjk4MgorOjEwMUU0MDAwMkVGQkZFRkNGM0VGRkZGRkJGRkZGQkU3RkZGRTdFRkY3NQorOjEwMUU1MDAwQzA2QkNGRkYzNERGRjFGREZGRUZGRkZGRkZERkY3RkRDQQorOjEwMUU2MDAwQ0Y3RjlDRkRGRDZDRjdGRkY2RkRFQjJCOUZGRkZDRkU4QgorOjEwMUU3MDAwN0VGRkZGRkZGRkQ3RjNGN0ZGRkJFMUJGRkZFQjdBREU0QgorOjEwMUU4MDAwRDdGQkZGRjlGRUZGRkZGM0RFN0ZGREU3N0ZGRkZEQkIyMgorOjEwMUU5MDAwRkZGRjdFQ0NGNkFGNUY3RkZFRjQ3REY3RkRCQjZFREIxMAorOjEwMUVBMDAwQjdGRkY3REY2NkZGRkZGNzNEQ0ZERUJERkZGRkRFREJFRAorOjEwMUVCMDAwOERGNzdFREZCN0VGN0ZGRkY2ODdGRkZGRUZGRURFQkYxOAorOjEwMUVDMDAwRkZGRkZGQkJFRkZERkY3QkRFRjczRkZGQkZGQkRCRkY0RAorOjEwMUVEMDAwRjJCNkZEQkQ3RkU3RkZGRkZGNkZGN0ZGRkZGRkZFNzc2NQorOjEwMUVFMDAwRkZCRkY4QUZGRkRGQkZGRkJGN0ZGQkZGRkZGRkRCRkVFMgorOjEwMUVGMDAwRkZCRkZGRkFGRkZERkZGNjdGRkY5RkZGRkYzRkVGRjhGOQorOjEwMUYwMDAwRUU3RTlGQkFGRUJGOEZFRkZFRkVGOUZGRkE3RkZFN0VFOAorOjEwMUYxMDAwQkZBRkZCOTZGRDlGRUY1RTY1QkVFRjVCQjZGRkJFRTMxNgorOjEwMUYyMDAwRkZCNUJGRkZGREZGN0ZGRkVGREZGRUZGQkZGQkZFRkY0MworOjEwMUYzMDAwQkZDRkZGRkZGRkZEOUJGRkZFRkJGRURGRkY3RkZGRjczNQorOjEwMUY0MDAwRkVGRkRGRkJGQkZFRkZGRkZGRkZGRkI3RkVGQUZGQUI2RAorOjEwMUY1MDAwRUZGRkZEQjU3QjdGRkJGN0ZERkZGRkRERkZFRjhGRkZBMQorOjEwMUY2MDAwMkZGRkZCN0NGRjNGREY3M0VCRkUzRkZGRUZGQkZFRkYyRQorOjEwMUY3MDAwRUZGREZGQkZGRDBGRkZGRkZGRjVGOUZGN0ZEN0ZERkY2RgorOjEwMUY4MDAwREZGRkY3RkJGRjdGQkZGRkZGRjA5RkZGRkU3RjhCRTNDRAorOjEwMUY5MDAwRjlERTI3OUJFNkJFN0Y5QkMzRjhERTdGOURFN0ZFN0ZEMQorOjEwMUZBMDAwRkZGRjVGRDdGRkZGRkY0RkZCRkZGRjdGRkZBRkZGOUZFRAorOjEwMUZCMDAwN0ZGQkZGRThGRkZGRkVCRkFGRkZGRkZFQkZFRkY3RkZCNgorOjEwMUZDMDAwQkZGRkZGRkZGRkZGRjdGRkZDRkZGRkZEN0ZGRkZGRkZFRQorOjEwMUZEMDAwRkQzRkNGRkZGRkZGRkZGN0ZGRkQ3RkZGRkY5M0ZGRkZGOQorOjEwMUZFMDAwN0FERkY3RkZGRjdCN0ZCN0VGRkZGRkZEQkZGREZCRkY1MgorOjEwMUZGMDAwRjdGRkQ3RkZGRkZGRkM5RjZGQ0JGRkY0QkJERkQ2RkRFMgorOjEwMjAwMDAwQkYyRkQzRjdGRkRGRkZDRkZGRkFCRUJEQUY2QURBQkU0NworOjEwMjAxMDAwQkJBQjNBQkUyREFFRUJEQUY2M0ZBREY1RERGRkNGRjE0RgorOjEwMjAyMDAwRkZGOTdGRkY3M0ZFRkZDRkMzRjRGNzJGRjNGRkZDRkYzMQorOjEwMjAzMDAwN0MxRkZGM0Y0RkZGN0VGRkVGQkRGNkZFRkYyQkVGREM2NworOjEwMjA0MDAwRkJGREZGRkJGRkVBN0JGRkZGRkZGRkZGRkJGN0RGRkY2RgorOjEwMjA1MDAwRTM3REZGQjdGRkJGRkZGRkRGRkZGOEZGQkZGRkJGRUI3MQorOjEwMjA2MDAwRTdGQUZFM0RCRkU5RkNCRkZGRkFGQkZFRkZGRkZGRDkyOQorOjEwMjA3MDAwRkZGRkZGRjY3RkZGRjY3REZGREZDRkZEQkZGQkVGN0VBQgorOjEwMjA4MDAwRkY3RkZGRkZEM0ZGRkRGQkZGRkJGRkZGRkZFRkZGQkY2NgorOjEwMjA5MDAwRkVGRkY3RUZGRkZGRkZGQkZGODdGRkZERkZGRkZGRkZFNworOjEwMjBBMDAwN0JGRUZGRkUzQkY3RjdGRjNGRkZGRkZGRkZGRjBGRkY0QQorOjEwMjBCMDAwRkZGRkZGRkJGRkZGRkZGN0ZGRkZBREZGRkVGN0ZGRkY5NworOjEwMjBDMDAwNUZGRkZGREZGRkZERkZGNUZGREZGRkJERkZFOUZGQzc5QworOjEwMjBEMDAwRjNGRkZGRjdGRkYzRkZGODNCRkZGRjdCREZCRkZCRUZGMworOjEwMjBFMDAwRkJGRkZCRjdGN0JCRkZGRkZGRkZGQkZGRkU3RkYzN0Y2RAorOjEwMjBGMDAwNUVCN0JGRkQ3RkZGRjk3RkZCRkZFQkZEN0Y3RkZGRUY0QgorOjEwMjEwMDAwRkJFMDNGRkVCRkJGREZGRjdFRkZGN0ZGRkZGRUJGRkYyRAorOjEwMjExMDAwREI3OEZGRkZGRkVFQTFCRkY1REVGQkY3RkZGQkZGRkY2NAorOjEwMjEyMDAwRkZGRkZCRkZGRkQ3RkZGRkZGRkZFRkYwRkZGRkZGRjMxNgorOjEwMjEzMDAwRjdGRkVGRkZFN0NGRkZGQkZGRUZGRkZGOUY5RkVGRkNGNgorOjEwMjE0MDAwMTZCRkZFRjNFNEZGRkZDNkZGRTdGRkZGRkRGRkJGRkY4MworOjEwMjE1MDAwRkYzRkZGQkZENkFGN0ZGRTZCN0U3RkZGQUZGRkZGQkZBRQorOjEwMjE2MDAwRkY1RkZGRkVGRkZGRkVGRkZGQkREQkZGRkU1RkYyRkYzNQorOjEwMjE3MDAwRkY1RkZGRkZGRkZGRkZGRkVGN0ZGRkZGRkZGRkRFQkYwMAorOjEwMjE4MDAwRkZGRkVGRkI3N0ZFQkQ3RjVGRkZGRkZGREY2RkVERkYyMAorOjEwMjE5MDAwRkRGRjdGRkQ2RkZGRkY3N0RBQ0ZGRDVGRkZCRkZGRkYyMgorOjEwMjFBMDAwREY3RkZGRkJGRkZGRkZGRjY2N0ZGRkZFQkZFN0JGRkE5QQorOjEwMjFCMDAwRkZGRUZGRkZGRkRGRkY1OUVGRkZFRkZCN0Y4OUZGRkYxMAorOjEwMjFDMDAwRTlGRjZGRkZGNUZGRkZGRkZGRkY3RkYyRjdGRkZGRUY3NAorOjEwMjFEMDAwRjg3RkZCRkZGREZGRkZEOUZGRUZCQkZGRkZGRkJGRUY2NgorOjEwMjFFMDAwREVGRkZGOUY3RkRGRkZGN0ZGRkZGRkZGREZGRkZGQUY5OAorOjEwMjFGMDAwRkZGRkY3M0ZFQjlGRkU3RjlFN0Y5RkZFODdGRkVEREI5QworOjEwMjIwMDAwNTZGRkJGQUYwQkQyRkZFRkRCNkU3REJENkZGOEZFM0YxOQorOjEwMjIxMDAwRkE1QkZGRkRCRkVGRkZCRjZGREJFNkZGRkYzRkZGREZCNgorOjEwMjIyMDAwRkVGRkZGRkZGRkRBM0ZGRkZCRkVGRUZGRkZERkY3QkQxNAorOjEwMjIzMDAwRkZGREZGRkVGRkZCRkZGRkZGRkZGMTVGRkQ5RkRGRkRFNworOjEwMjI0MDAwRkZGRDdGRkZGRkZGRkY3NkZBRkZGRjdGRTNGOEZGQUVBMgorOjEwMjI1MDAwRkZGQjdFOUQ3M0ZGRkE3RkRGRkZGRjdGRkZGQkNERkY1QworOjEwMjI2MDAwN0ZFRkZCRkZGREZGRjc3RjdGRUZGRkVERkZGRkZGQjU4OAorOjEwMjI3MDAwRkZCRkZGQkZGREVGREJGN0ZGOTNGRkVGRTJGOUJFN0Y4QworOjEwMjI4MDAwOEJFN0Y5RkU2QkU3RjlGRTdGOUZFN0Y5RkU3RjQ3RkZEQgorOjEwMjI5MDAwRkZGREZGOUZGRkQ3RkZGRkZGRkZGNUZGOUZGRkY3RkU0QgorOjEwMjJBMDAwRkZCRkZFNkZGRkZGRkJGRkZGRkZBRkZGRkZGRjdGRkJFNworOjEwMjJCMDAwRkZGRUZGRkZGRkZGRkZGRERGRkZGRkY3RkZGRkZGREY3OQorOjEwMjJDMDAwRkZGRkZGNUZGRkZGRkZGRjVGRkJGRUZGRjgzN0ZGRkYzMgorOjEwMjJEMDAwRUZGRjdGRkVCRkZGRkZGRUJGRkZGRjdGRkZCRkZERkZFMgorOjEwMjJFMDAwN0ZGQTdGRkZGRjZGRkZGRjdERkZDRkZGRkZGRjRGRkZGNQorOjEwMjJGMDAwRjJGRkZGRkZGRkZGRkFCRkZGQUVFQkZBRkVCQkFERUI1NQorOjEwMjMwMDAwRkFGN0FGNkJGQUY2QkYyNUU5RjI3RjQ1RkZGRkZERjc1RAorOjEwMjMxMDAwRjdCRkZGREZGRkZGQkZGQkZGREZGM0ZGRjczRkNGRkY5RAorOjEwMjMyMDAwQTFGRkZGQkZFN0ZGRkY3RkZGM0RGRkZGRkZGN0ZGMkY4RAorOjEwMjMzMDAwRkZGQkY1N0ZGRTU3RkZGRkZGRkZGRkZGRkZGRkZGRjdFQworOjEwMjM0MDAwM0ZGRkZFRkZGRkZGRkRGRUY3RUVBRkZFRUVFN0ZBRkZGOQorOjEwMjM1MDAwRkU5REY5NUVGRUZGRUJGRkZGREZBN0ZGRkZGRkZDREI0QgorOjEwMjM2MDAwRkZGRkZGN0VGQkZGRkZFRkZCRkRGRkRCRkZGRkZGRUY0QworOjEwMjM3MDAwRkZGRkZGRkRCRkZFQkZGRjZGN0ZGRkY3RkZGRkY5RkYwRQorOjEwMjM4MDAwRjdGRkJGREVGN0ZGRkZGRkZBN0ZGREJGNUZGRkZGQkY3NQorOjEwMjM5MDAwRkZFREZGRjdCRkZGRkZFRkZGREZGRkZGRkZFNkZGRkJGNAorOjEwMjNBMDAwN0ZGRkZGRkZGRkZGRjdGRkZGRkZGRkZGRkZGRkVCRkZEOQorOjEwMjNCMDAwRkRGRkY1RkZGNjdGREZCRENGRkZGRkZGRkZERkZGRkY3NAorOjEwMjNDMDAwRkZGOUZGRkZGRkZGRkZFM0ZGRUVCRkZGN0RFRkZFRkYyMworOjEwMjNEMDAwRkZGRkJGRkZGRkZGRkZGRUZGRkZGRkZGRTdGRkI1QUUwMQorOjEwMjNFMDAwRkZGRkI2RkVCRkZGRkZCRkZGRkZGRkZGRkZGRkZGRkZDNworOjEwMjNGMDAwRkYyN0ZGRUZGRTdGREZGRjdFRkZGRkZGRkZGRkZGRkZGNworOjEwMjQwMDAwRkZGRkZERkZGN0Y5OUZGRjVGRkZGRkZGRkZGRkZGN0Y2QworOjEwMjQxMDAwRkZGRkZFRkZGRkZGRkZGRkZGRkZGRjBGRkZFN0JGRkUxNgorOjEwMjQyMDAwRkZCRkZGRkZGRkZGRkNCRkZGRkZGRUZGRkZGRkZGQzQ3QgorOjEwMjQzMDAwNkJGRjI5MUZGQkFGRkZGRkZGRkZGRkVGMUJGRUZGRkM0MgorOjEwMjQ0MDAwNkZGRkZGRkQ2QUY3RDdGNUJGRkZGRUZGRkZGRkZGRkYzRQorOjEwMjQ1MDAwRkVCRkZGRkZGQUZGRkZGN0ZCRERCRkZGRTdGRkZGRkY1OAorOjEwMjQ2MDAwRkZGRkZGRkZGRkZEN0ZGRkZGRjVGRkZGRjdGREIzRUY2RQorOjEwMjQ3MDAwRkQ3RTVERkZGREZGRkZGRkZEN0ZEMkY1RkI3RUNCQjc0RAorOjEwMjQ4MDAwRkZGRkZGQzZGRkZERUU2M0ZGRkZGRkZGRkZGNkZENjVFOQorOjEwMjQ5MDAwNUJERkZGRDVGRkZGRkZGNkU3QkZGN0E5RkZGRkVERkYwQgorOjEwMjRBMDAwRkZGRkZGRkZFQkZGRkZGRkFGRkZGRkZGRjgxQkZGRTNBNworOjEwMjRCMDAwRDBCRkZGRTFGRkZGRkZGRkZGRDdGRkZGRkY1RkZGRkY4MQorOjEwMjRDMDAwRkZGRkFGRkZEQjc2QkZGRjdGRkZCRkVGRkVGRkJGRUY3QQorOjEwMjREMDAwRkJGRUZGRkZGRkJGRjI3RkZGOUZGRUJERkU3RkZGRkYwMgorOjEwMjRFMDAwRkZGRkZGRkZGRkZGRkZGRkZGRjczRkVDN0ZGNjk1QkIwRQorOjEwMjRGMDAwRUZGOEZFRkNCRjJGREFGQ0JGMkZDQkYyRkNCRkVGRkZFMworOjEwMjUwMDAwQTlCRkNGRkJGRkZGRkZGRUREQjc2REY2RDlCNjZEOUIxMAorOjEwMjUxMDAwNzZEOUJGRkJGREEzRkZCRkVGRkZFRkZGRkZGRjdGREYxQworOjEwMjUyMDAwRkRFRjdCREVGN0ZERUY3RkZGRkYwNUZGRkFGRTdGRUY5QworOjEwMjUzMDAwRTNGRkZGRkQ3RkZGRkZGRkZGNUZGRkZGRkQ3RkZCQUZCRgorOjEwMjU0MDAwRkY2M0M4RkZCRkVGRkZGRkZBN0ZGRkZGRkZGRTlGRjdBQworOjEwMjU1MDAwRkZGQUJGRkU5RkZCN0ZGRkZGRUZEN0ZGRkZGNUZGRkZGNworOjEwMjU2MDAwRkZGRkZEN0ZGRkZGQkZGRkY5QkZGRkJFMjc5RkU3RjkxQQorOjEwMjU3MDAwRkU3RjhCRTdGRTdGOUZFMkY5RkU3RjlGRTdGMTdGRkYwMworOjEwMjU4MDAwRkZGRkZCRkVGRkZGRkZEN0ZGRkZGRkZGRjVGRkZGRkY5MgorOjEwMjU5MDAwRDdGRkZBRkZGRUZGRkZGRkZERkZGRkZGQUZGN0ZGRkZEMworOjEwMjVBMDAwRkZFQkZGRkZGRkFGRkZDNEZGRjdGRkZGRUZGRkZGRkZGMgorOjEwMjVCMDAwRkY1RkZGRkZGRkZGRDdGRkZGRkZGRkZGRUJGRkZCN0E5MAorOjEwMjVDMDAwREZGN0ZERkZGRkZFQkZGRkZGN0ZGRkFGRkZGRkZGRjc1RQorOjEwMjVEMDAwRUZFM0ZGREREMkZGREZGRkZGRjJGQ0JGQ0JGNkZEQkY3NQorOjEwMjVFMDAwMkZDQkZGN0ZERkRFQUZGRkRBRUVCRkFGRTlGQUY0QkQzRQorOjEwMjVGMDAwQUY1QUFFQkJBQjZCREFERUJGQURENzVFRkZGRkJGRkM0MQorOjEwMjYwMDAwRkZERkZERkZGRkZGRkZERkY3RkZGRkZGRkZGREZGRkEyQgorOjEwMjYxMDAwMUZGRkZFRkJFRkJGRkRGRkZEQkQ3N0ZGRkZGRkZGOUQyRgorOjEwMjYyMDAwRUZGRkZGRkZFRjdERkZGQkZFRUZGRkZGRkZGRkZGRjc3OQorOjEwMjYzMDAwRkZGRkZGRkZGRkZGRkZFRUJGRTRGQkZGRkUzRkZFRkZEQworOjEwMjY0MDAwRkZGRkZGQUZFQUZFQkZBRkVCRkFGRUZGRkZGRjU1RjY1RAorOjEwMjY1MDAwRkZGRUY3RkY3RkZGRUJGNzVGQzVGRDdGNUZEN0Y1RkY1RAorOjEwMjY2MDAwNkZGQkZGOEFGRkZGRkZGRkVCRkZGRkZGRkZGQkJGQkYxQgorOjEwMjY3MDAwRUZGQkZGRkZGRkZGRkJGRjc3REZGQkZGRkQ3RkVGRkZDMAorOjEwMjY4MDAwRkZGRkJGN0ZGRkRGQkZGRkZCRkZGRkZGRkVFRkRGRkZBRgorOjEwMjY5MDAwRkVGRjlGRUY3REZGRjdGRjdGRkZGRkRGRjdGREZGRUZGRgorOjEwMjZBMDAwREZGRkRGRkZGRkZGRkZGRkZGRkZGRkZGRkRGRkZGRkI4MAorOjEwMjZCMDAwRkRGRkJGREZEMUZGRjgzQkZGRkZGRkZGRkZGRkZGRkY4NQorOjEwMjZDMDAwN0VEQkZERkY3N0RCQjc3REJGRkJGRkY4N0ZFRDdCNUUzOQorOjEwMjZEMDAwRkZGRUZGRkY0RkQ3RkQ3RkRGRDdGNUZGN0ZGRkZGRkYzNworOjEwMjZFMDAwRjIzRkZFRkZCRkZGRkZGRkZGQkZFRkZFRkYzQkVFRkYyRQorOjEwMjZGMDAwRkNFRkZGRkZGRjg1RkZGREZFRkZGNUZGRkZGRUZGREZBNQorOjEwMjcwMDAwRkJGRjVGQkZGRkZERkZGRkZGRkZBOEZGRkY5RjlFRkZENworOjEwMjcxMDAwRkZGRjdGRjNGRkZGQ0ZGRkY3RkRGRjdGRkZGRkZDMTZGQgorOjEwMjcyMDAwQkZDRkEzRTVFRjdGRkZGM0U0RkZDRjkzRkNGRjNGQ0ZFNQorOjEwMjczMDAwRkZGRkZGRDYwRjdEQkY2RUZCRjRGQ0FGNkREQjc3QjdGRAorOjEwMjc0MDAwNkREQkY2RkRCRkZGRkZGRkJGOUJGQURFQjdCN0VERjkwQworOjEwMjc1MDAwN0VCN0FDRUJENkIzQURFQjdBREZGRkZGRkZEOEJGRkZBMAorOjEwMjc2MDAwQjdFRDlGNkZEREY3NjhEQjM3QjM2Q0RCMzZDREIzN0YzQQorOjEwMjc3MDAwRkY3RkY1NkZGREVGNzkzREY3OTNFNDdBOUVBREVBN0EzRQorOjEwMjc4MDAwOUVGN0JERUZGRkZGRkY3NjdGRkJDNkZGQkJFRkRBRkVENAorOjEwMjc5MDAwRkRCRkZCRkVGRkJGRUZGQkZGRkZGQkZGQTVGRkZEQUI5OAorOjEwMjdBMDAwNkY3OERFMTc4Rjc5REZGREZGN0ZERkY3RkRGRkZGRkIxRgorOjEwMjdCMDAwRkZGQkZGRUZGQkVGRkJGRUZGQkJEQUYzRUYzQkNFRjNEQworOjEwMjdDMDAwQkNFRjNGQ0ZERkZGQjdGRkZGRkZDRjczRkZCRkVGRkZEMAorOjEwMjdEMDAwRjNGRjNGQ0ZGM0ZDRkYzRENGOUZGRTA3RkZBRkVCRkVDNAorOjEwMjdFMDAwRkRCRkVGRUJGQUZGQUZFQkZBRkVCRkFGRkJGRTNGRkIyNworOjEwMjdGMDAwOUJGRjdGREZGRkYzRkVGRkRFRjdCRjdCREVGN0JERUY2MgorOjEwMjgwMDAwN0JGRUZGRkZERjNGRkVGRkI3RkZFRkY3RkZCRkVERkVGMQorOjEwMjgxMDAwREZCN0VERkI3RURGRkZGRkZGRkQ1RkVGRUJGQUZFRjVCRAorOjEwMjgyMDAwQkY2RkZGRkZGRkZGRkZGRkZGRkZGRkZFRjhGRkE4RkZFNworOjEwMjgzMDAwRkZCRkVGRkI2QUZCQjdFRkZCRkZCRkVGRkJGRUZGQkY4NgorOjEwMjg0MDAwRUZGQkZGRTBGRkZGRkQ3RjVDRDc3RERGRjM1Q0Y1Q0RBNQorOjEwMjg1MDAwNzM1RUQ3QjVGRDdGRUZGRkRCRkZGRkUyRjhCRTJGOEY4MgorOjEwMjg2MDAwRTdGOEJFNkJFMkY4QkUyRjhCRTJGOUZFN0ZFN0ZGRDdGOQorOjEwMjg3MDAwRjVGRDdGRkZGN0Y1RkQ3RkQ3RjVGRDdGNUZEN0Y1RkYwRQorOjEwMjg4MDAwRkZGRjhGRkZBRkVCRkFGRkZGQkZFQkZBRkYyRkVCRkE3MworOjEwMjg5MDAwRkVCRkFGRUJGRkZGRkU1RkZGNUZGRkZGRkRGRkZGRDc1OAorOjEwMjhBMDAwRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQkZGRUI3RkRDMworOjEwMjhCMDAwRkY3RURGRjdBREZGN0ZGN0ZERkY3RkRGRjdGREZGN0ZENworOjEwMjhDMDAwRjY3RkZGRkZGRkRCRjZGQ0FGRkZGRkZGRkZGN0ZGRkYyOQorOjEwMjhEMDAwRkZGRkZGRkZGRkVDQkZGRkFGRUJGQUY2QUI4RkVCRkFBQQorOjEwMjhFMDAwRjdBNUVCRkFCRUJGQUZFQkZBRkY2REZGRkY3RkRGMzM1QgorOjEwMjhGMDAwRERGRjdGRkVGN0ZDN0ZGQkZGRkZGRkZGRkZGRkZGQTk3MAorOjEwMjkwMDAwRkZGREZGRkZGRUZGRkZERkZGRkZFRkVGRkRGRjdGRkY5QworOjEwMjkxMDAwRkZGRkZGRkVBN0ZGRkZGRjc3REZGN0ZEOUY3RkZFNzczQgorOjEwMjkyMDAwRUZGRkZGRkZGRkZGRkZGRkZGQUZCRkFGRkZGOUJFQkYyRQorOjEwMjkzMDAwOEZGQkZFRkVFRkZCRkVGRkJGRUZGQkZGRkZGRERGNkYzOAorOjEwMjk0MDAwRUZGRjdGRkZCRkJGREZGRkZDRkZERkY3RkRFRjdGREZBNAorOjEwMjk1MDAwRkZGRkZGM0ZGNkZGQ0ZGRkRCRkJGN0ZGRUI3QUZGRkY0OQorOjEwMjk2MDAwRkZCRkVGRkJGRkZGRkZGRTZERkRGRjVGRkJGRkZGRjcwQworOjEwMjk3MDAwRkY1RkY1RkZGRkZGRkZGRkZGRkZGRkZGRjhGRkZCRkYxQworOjEwMjk4MDAwRkZGREZGRkZGRkZGRTdGNkJGRkZGRkZGRkZGQkZGRkZCRQorOjEwMjk5MDAwRkZDOUZGRkZGRkJERkZCRkFGRUZFRjNGRDFGQzdGRkJFNAorOjEwMjlBMDAwQzdGRkZGRkZGRkZGRTNGRkZGRkZGRkZERkZGRjc3RkYxNQorOjEwMjlCMDAwREZCN0ZERjdGREY3RkZGRkZGRkZGRjU3RkZGN0E1RkRBRgorOjEwMjlDMDAwM0ZERkJGQkZGRTdGRkZGRkZGREZGQUZERkZGRkZGRkUyMAorOjEwMjlEMDAwODdGRkU5RkZGRUVGQkZFRkZFRkVGRkVGRkZGRkZGRkYwOAorOjEwMjlFMDAwRkZGRkZGRkZGQTlGRkYzRkZGRkRGRDU3REZGREYzRkZGNgorOjEwMjlGMDAwREZGREZGNUZERkY1RkRGRkZGRjk4RkZGRkZGRkVFN0ZEQworOjEwMkEwMDAwRkZGRkJGNUVGRUVDRkIzRjdGOUZFRkY5RkZGRkNENkI0QgorOjEwMkExMDAwRkZGRkZGQzVGM0ZDRkEzOEZGQUYzRkVFN0Y5RkZGRDkwMgorOjEwMkEyMDAwRkZGRkZEN0FGN0ZGRjNGRkFGNkZEQkYyQjlFOUZCRkZDMgorOjEwMkEzMDAwRkZGRkZFRkZGRkVGRkZGQkM1QkZGRkVGRkY1RUI3QUQ4MAorOjEwMkE0MDAwQ0Q3OTdDRkZGRkZGRkZGRkZGRkZGRkZGRkQ5M0ZGRUY0RgorOjEwMkE1MDAwRUFGRUJGRUY1QkQyQ0RGNTZENzdERkY3RkRGRjdGREZERAorOjEwMkE2MDAwRkZGRjY2RkZENTY1N0Q1Rjc1OUQ2NTdGRDZGQjRGRkZEOAorOjEwMkE3MDAwRkZGRkZGRkZGRkZGRjZDN0ZGQkZFRkZBRkVGRkJGRUI1MQorOjEwMkE4MDAwRkZERkZGN0VGRkZGRUZGRDdFRDdGRjc4REZGRjVGREYxOQorOjEwMkE5MDAwRjVCRjdGREZDNUZGM0ZGNjdFRkYwRkVGRjIzRUJGRkZDMgorOjEwMkFBMDAwRkIzRkZGRkI3RkZGQjNGRUZCRjZGREZGREFGN0ZERkYwOQorOjEwMkFCMDAwN0ZERkY3QkZGRkZBN0ZGRkZGRkZGRjlGRkZGM0RDRjkyOAorOjEwMkFDMDAwQkZDRUU3RjlGRTdGOUZFN0ZGRkZFMjdGRkVGRkJGRUY4QworOjEwMkFEMDAwRUJGQUZGOUY2NzFFRkY4RkU3RjhGRTdGOEZFRkZGQkRDQQorOjEwMkFFMDAwQkZGRkZCRkZGRkRGRjdGRkZDRkZCRkZGRkZGRkZGRkZBNQorOjEwMkFGMDAwRkZGRkZGRkRCM0ZGRkZFRkZGRkZCRkVERkZGQkVFRkVBQworOjEwMkIwMDAwRkZGRkVGRkZGRUZGRkZGRkZGQjVGRkI3RkRGRDZFRkYwRAorOjEwMkIxMDAwRkZGRUZEMkZEOEZFQkY4RkVCRjlGRTNGRkZGQUNGRkY4MAorOjEwMkIyMDAwRTdEOUZBQkZERjc3RkNGQjNGQUJGRUZGQkZFRkZCRkU1MQorOjEwMkIzMDAwRkZGRkVFMUZGRkRGRjdGRkZGRkY1Rjk3MzVCRjVFRkU3MgorOjEwMkI0MDAwQkZFRkZGRjdGREZGRkZGQUJGRkZCRTZGOUZFN0Y4QkVDNQorOjEwMkI1MDAwMkY4QjY2OTQ3RDlERTdGOUZFN0Y5RkU3RjE3RkZGRkY1NgorOjEwMkI2MDAwRkZGN0Y1RkQ3RjVGRkJGRDlFRkZGQkZFRkZGRkVGRkYyNQorOjEwMkI3MDAwRkZBMEZGRkZGRkJGRUZFQkZBRkVCRkI3RjdGN0ZGRkZDNgorOjEwMkI4MDAwRkRGRkZGRkZGRkZGRERGRkZERkZGRkZGRDdGRkZGRkZBMworOjEwMkI5MDAwN0ZGNUZGRkZFRkZGRkZGRkJGRkZGRkFCRkVGQkZFRkY3OQorOjEwMkJBMDAwRjdBRkZGRkZERUY3RUI1RkRGRjdGREZGN0ZERkZGRkYzNAorOjEwMkJCMDAwQjNGRkM5RkVGRkZGRkZGRkQ2RkZGRkNCRkZGRkRGRkYyNQorOjEwMkJDMDAwRkZGRkZGRkZGQzhGRkZCQUJFQkZBRkVCNzhGRUI3QURENAorOjEwMkJEMDAwM0FGRUI3QUZFQjdBRkVCRkFGRkY5RkZGRkZERkZDRkYxMAorOjEwMkJFMDAwRkZGRUMzRkVGRkZGMzNGQ0ZGQkZERkYzRkZGRkJCOUYxMgorOjEwMkJGMDAwRkZGRkZGRUJERkZGRkZBRkY3NkZGOUJGRUZGREZGRkY1OQorOjEwMkMwMDAwRkZGRkZGRTM3RkZGRkZGRkZCRkZGRkJGRkRGQkY3RkZDMgorOjEwMkMxMDAwREZGN0ZGRkVFRjVGQkRGRkZBRkZGOEZGQkZBRkZCRkU4MAorOjEwMkMyMDAwRkUzRkVGRThGRkRGRjNGREZGRkZGRkZGRkZFREZGRkJFMAorOjEwMkMzMDAwRkRGRkFGRkZGRkZFRkVCRkRCRkZGRkZGQkZGRkRGRkZCQworOjEwMkM0MDAwRkRGRkNCRkZGRkZGRkZGRkJGNkZGRjdGQjdCM0ZGRkZBRQorOjEwMkM1MDAwREZGRkZCRUZGRkZGRkYwN0ZGRkJGRkZGRkZFREZGRjVEMAorOjEwMkM2MDAwN0NGRjdGRkVGRkZGRUZDRkZGRkJGRkZGMkZGRkZGRkY4QworOjEwMkM3MDAwRkZGM0ZGRkJGRkZFRkZGRkZGRkZGRkZGQkZGRkZGRkZCNQorOjEwMkM4MDAwRkQxQkZGRkZGRkZGRkZGRkZGRkZGRTdDRkZGRkZGRkZCRQorOjEwMkM5MDAwRUZGRkZGRkZGRkZCQkY3RkZERkZGRkZGRkZGRkZGRkYxQQorOjEwMkNBMDAwREJGRkZGRkZGRkZGRkZGREZGRkZGMDdGRkZGRkZGRkZFOQorOjEwMkNCMDAwRkZGRkZGRkZGRkZCRkZERkZGRkZGRkZGRkZGREJGRkU4QgorOjEwMkNDMDAwN0ZGRkZGRkZGRkZGRkZGRkZGRUZGRUZGQkZGRkZGRkZFNQorOjEwMkNEMDAwRkZGRkVGRkFCNUZGRkZGRkY3RjdGRkZGRkZGRkRGRkI5NworOjEwMkNFMDAwRkNGRkZGRkVGRjdGREZCRkZGQ0JCRkY5RkU3RjlGRTc0QgorOjEwMkNGMDAwRjlGRTdGOTdFMUZFNzk5RkU3RkRGRTdGREZGRTM3RkY1QworOjEwMkQwMDAwRkJERURFQkRFRkYzRkVGQkFGRUJGRUZGRkZDRkZGRkUxMgorOjEwMkQxMDAwRkZCRkZGOEZGRkVGRkJGRUZGQkZFN0Y5NUU3RkVGRkIxQgorOjEwMkQyMDAwREFGRkJGRUZGQkZFRkZGRDFGRkZGRkZGRkZGRkZGREYyRgorOjEwMkQzMDAwRkZGRjdGRkZGRkY3RkI3RkZGRkZGRkZGRkMzRkZGQkZCMgorOjEwMkQ0MDAwRUZGQkZFRkZCRkVGN0I3RkJGRUZGQkZFRkZCNUVGRkJBRgorOjEwMkQ1MDAwQkZGQTdGRkNGRjNGQ0ZGM0ZDRkYzRkNGQkNGRjNGRUY0RAorOjEwMkQ2MDAwRjNGQ0ZFM0ZDRkZGRUVFRkZCRkVGRkJGRUZGQjZBRDdBQQorOjEwMkQ3MDAwQjdGQkY4RkZCN0VGQkFGRUZGQkY3RkU5RkZGOTdFNUY1MQorOjEwMkQ4MDAwOTdFNUY5RkU3RkJGRjk3RTVGOUZFNUZCRkU1RkI3RkYyQQorOjEwMkQ5MDAwQTNGRkY3RkRGRjdGREZGN0ZERkY1RUY3N0RGRjc3REYyNgorOjEwMkRBMDAwRjdGREZGN0ZGRkQ3RkZGRkZGRkZGRkZGRkRERkZCN0Y4QgorOjEwMkRCMDAwRkZGRkVGRkZGRUZCRkZGRkJGRkU4RkZGREZGN0ZERkQxNQorOjEwMkRDMDAwN0ZERkY3RkQzRURGRjVCREZGN0ZERkY3RkRGN0ZGOUZGQworOjEwMkREMDAwRkZGRkZGRkZGRkZGRkZGRkZGRkRGRkJFRkZGRkZGRkY0NgorOjEwMkRFMDAwRkZGRkZGRkQzRkZGREZGN0ZERkY3RkRGRjdGREZGQ0ZCOQorOjEwMkRGMDAwNzdGQ0ZGNUZERkY3RkRGRkY0N0ZGRkZGRkZGRkZGRkZDMworOjEwMkUwMDAwRkZGRkZGRkZGRkZGRkZGRkZGRkRGRkZGRkZFRUZGRkZFNQorOjEwMkUxMDAwRkZGRkZGRkZGRkZGRkZGRkVERkJGRkZGQkZGRkZGRkYxOAorOjEwMkUyMDAwRkZGRkU5RkZGRkZGRkZGRkZGRkJGRkZGRkZEM0ZGRkZGOAorOjEwMkUzMDAwQkYzRkZCRkZGRkZGRkJGM0ZGRkZGRkZGRkZGRkZGRkZCNgorOjEwMkU0MDAwRkZGRkZGRkZGRkZFRkZGN0ZGRkZGRkZGMTdGRkZGRkY4MworOjEwMkU1MDAwREZGRkZERkZGRkZGRkZGRkRGREZGRkZERkZGRkRGRjcwRQorOjEwMkU2MDAwRkY0RkZGRkZGRkZGRkZGRkZGRkZGRkZFRkZGRkZGRkQyNQorOjEwMkU3MDAwRkZGRkZGRkZGRUZGOUZGRkZGRkZGRkZGRkZGRkZGRkZDMworOjEwMkU4MDAwRkRGRkZGRkZGRkZGN0ZGRkZGRkY3QTNGRkZGRkZGRkYxOQorOjEwMkU5MDAwRkZGRkZGN0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRjJDRgorOjEwMkVBMDAwN0ZGRkZCRkVGRkJGRUZGOEZFRkZCRkZCRkVGRjhGRUNENworOjEwMkVCMDAwRkJGRUZGQkZGOEY3RkVGRkJGRUZGQkZFRkRCRkNGRUM1MQorOjEwMkVDMDAwRkYzRkVGREJGOEZGQkZDRkZGRjlGRkZGQkZGRkZCRkZDNworOjEwMkVEMDAwRkZGRkVGRkJERkZGRkZGRkZGRkZCRkZGRkZGRkJCRkZCQQorOjEwMkVFMDAwRUZGQkZFRUZCRkVFRUJGQkZFRkZFRkZFRUVCRkZFRUJGOAorOjEwMkVGMDAwRkZFRkZGMTdGRjdFRUJCQkZFQkZCRUZCRUY1QkY3QkQzNworOjBBMkYwMDAwRkJDRkJGQkZCQkZCN0VDQ0VGRkY5MQorOjAwMDAwMDAxRkYKKworICogQ29weXJpZ2h0IChDKSAxOTk5IEJheUNvbSBHbWJICisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCByZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCisgKiBjb2RlIHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBjb21tZW50IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbi4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RhYnVzYi9maXJtd2FyZS5IRVggYi9maXJtd2FyZS9kYWJ1c2IvZmlybXdhcmUuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjMjU4ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9kYWJ1c2IvZmlybXdhcmUuSEVYCkBAIC0wLDAgKzEsNjQ5IEBACis6MDIwMDAwMDAyMTU3ODYKKzowMzAwMDMwMDAyMDE2NjkxCis6MDMwMDBCMDAwMjAxNjY4OQorOjAzMDAxMzAwMDIwMTY2ODEKKzowMzAwMUIwMDAyMDE2Njc5Cis6MDMwMDIzMDAwMjAxNjY3MQorOjAzMDAyQjAwMDIwMTY2NjkKKzowMzAwMzMwMDAyMDMwRkI2Cis6MDMwMDNCMDAwMjAxNjY1OQorOjAzMDA0MzAwMDIwMTAwQjcKKzowMzAwNEIwMDAyMDE2NjQ5Cis6MDMwMDUzMDAwMjAxNjY0MQorOjAzMDA1QjAwMDIwNEJEREYKKzowMzAwNjMwMDAyMDE2NzMwCis6MDMwMTAwMDAwMjBDNUE5NAorOjAzMDEwNDAwMDIwMUVEMDgKKzowMzAxMDgwMDAyMDI1MTlGCis6MDMwMTBDMDAwMjAyN0M3MAorOjAzMDExMDAwMDIwMkU0MDQKKzowMTAxMTQwMDMyQjgKKzowMTAxMTgwMDMyQjQKKzowMzAxMUMwMDAyMDVGRERDCis6MDMwMTIwMDAwMjAwMDBEQQorOjAzMDEyNDAwMDIwMDAwRDYKKzowMzAxMjgwMDAyMDQzQzkyCis6MDMwMTJDMDAwMjA0NkE2MAorOjAzMDEzMDAwMDIwMDAwQ0EKKzowMzAxMzQwMDAyMDAwMEM2Cis6MDMwMTM4MDAwMjAwMDBDMgorOjAzMDEzQzAwMDIwMDAwQkUKKzowMzAxNDAwMDAyMDAwMEJBCis6MDMwMTQ0MDAwMjAwMDBCNgorOjAzMDE0ODAwMDIwMDAwQjIKKzowMzAxNEMwMDAyMDAwMEFFCis6MDMwMTUwMDAwMjAwMDBBQQorOjAzMDE1NDAwMDIwMDAwQTYKKzowQTAxNTcwMDc1ODE3RkU1ODI2MDAzMDIwMTYxRkIKKzowNTAxNjEwMDEyMDc2RjIxNjQ4QworOjAxMDE2NjAwMzI2NgorOjBFMDE2NzAwQzBEMEMwODZDMDgyQzA4M0MwRTA5MDdGOTdFMDA5Cis6MEUwMTc1MDA0NDgwRjA5MDdGNjlGMEYwRjBGMEYwRjBGMEYwRDAKKzowRTAxODMwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0RQorOjBFMDE5MTAwRjBGMEYwRjBGMEYwRjBGMEYwRjA5MDdGOTdFMDdBCis6MDMwMTlGMDA1NTdGRjA5OQorOjBFMDFBMjAwOTA3RjlBRTAzMEU0MjM5MDdGNjhGMEYwRjBGMDU4Cis6MEUwMUIwMDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwMjEKKzowRTAxQkUwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjAxMworOjBFMDFDQzAwRTVEOEMyRTNGNUQ4RDBFMEQwODNEMDgyRDA4NjRCCis6MDMwMURBMDBEMEQwMzI1MAorOjA4MDFERDAwNzU4NjAwOTBGRkMzN0MwNTRDCis6MDcwMUU1MDBBM0U1ODI0NTgzNzBGOUQ4Cis6MDEwMUVDMDAyMkYwCis6MEUwMUVEMDBDMEUwQzBGMEMwODJDMDgzQzAwMkMwMDNDMEQwMUEKKzowRTAxRkIwMDc1RDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTFDRQorOjBEMDIwOTAwOTA4ODAwRTBGNTQxOTA3RkFCNzQwMkYwOTAwQQorOjA5MDIxNjAwN0ZBQjc0MDJGMEU1MzI2MDIxQjcKKzowNDAyMUYwMDdBMDA3QjAwRTYKKzowQjAyMjMwMEMzRUE5NDE4RUI2NDgwOTQ4MDUwMTIzMgorOjBFMDIyRTAwOTA3RjY5RjBGMEYwRjBGMEYwRjBGMDBBQkEwMDA2Cis6MDIwMjNDMDAwMTBCQjQKKzowMjAyM0UwMDgwRTM1QgorOjAyMDI0MDAwRDA4NjY2Cis6MEUwMjQyMDBEMEQwRDAwM0QwMDJEMDgzRDA4MkQwRjBEMEUwNTQKKzowMTAyNTAwMDMyN0IKKzowRTAyNTEwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzAzNQorOjBFMDI1RjAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQUI3NDQwCis6MDQwMjZEMDAwNEYwRDA4NjQzCis6MEIwMjcxMDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyOUIKKzowRTAyN0MwMEMwRTBDMEYwQzA4MkMwODNDMDAyQzAwM0MwMDQ1NgorOjBFMDI4QTAwQzAwNUMwMDZDMDA3QzAwMEMwMDFDMEQwNzVEMEJFCis6MEQwMjk4MDAwMEMwODY3NTg2MDBFNTkxQzJFNEY1OTE5MEU2Cis6MEMwMkE1MDA3RkFCNzQwOEYwNzU2RTAwNzU2RjAyMTJEQworOjA2MDJCMTAwMTE0NDc1NzAzOTc1NUYKKzowNjAyQjcwMDcxMEM3NTcyMDIxMkM5Cis6MEMwMkJEMDAxMTc1OTA3RkQ2RTRGMDc1RDgyMEQwODYzMworOjBFMDJDOTAwRDBEMEQwMDFEMDAwRDAwN0QwMDZEMDA1RDAwNDkwCis6MEQwMkQ3MDBEMDAzRDAwMkQwODNEMDgyRDBGMEQwRTAzMjJFCis6MEUwMkU0MDBDMEUwQzBGMEMwODJDMDgzQzBEMDc1RDAwMEMwQTIKKzowRTAyRjIwMDg2NzU4NjAwRTU5MUMyRTRGNTkxOTA3RkFCNzRBRAorOjA0MDMwMDAwMTBGMEQwODZBMworOjBCMDMwNDAwRDBEMEQwODNEMDgyRDBGMEQwRTAzMjA3Cis6MEUwMzBGMDBDMEUwQzBGMEMwODJDMDgzQzAwMkMwMDNDMDA0QzIKKzowRTAzMUQwMEMwMDVDMDA2QzAwN0MwMDBDMDAxQzBEMDc1RDAyQQorOjBDMDMyQjAwMDBDMDg2NzU4NjAwNzU2RTAwNzU2RjAyQkMKKzowNzAzMzcwMDEyMTE0NDc1NzA0MDc1QkUKKzowNjAzM0UwMDcxMEM3NTcyMDIxMjQxCis6MEUwMzQ0MDAxMTc1OTA3RkQ2NzQwMkYwOTA3RkQ2NzQwNkYwOEIKKzowNTAzNTIwMDc1RDgxMEQwODZGMworOjBFMDM1NzAwRDBEMEQwMDFEMDAwRDAwN0QwMDZEMDA1RDAwNDAxCis6MEQwMzY1MDBEMDAzRDAwMkQwODNEMDgyRDBGMEQwRTAzMjlGCis6MEQwMzcyMDA5MDdGQTU3NDgwRjA5MDdGQTY3NDlBRjAxMjIxCis6MEMwMzdGMDAxMDFCOTA3RkE2RTU0MkYwMTIxMDFCOTBBRQorOjBEMDM4QjAwN0ZBNkU1NDNGMDEyMTAxQjkwN0ZBNTc0NDA4MworOjAxMDM5ODAwRjA3NAorOjAxMDM5OTAwMjI0MQorOjBEMDM5QTAwOTA3RkE1NzQ4MEYwOTA3RkE2NzQ5QUYwMTJGOQorOjBDMDNBNzAwMTAxQjkwN0ZBNkU1NDRGMDEyMTAxQjkwODQKKzowQzAzQjMwMDdGQTZFNTQ1RjAxMjEwMUI5MDdGQTZFNTI4Cis6MEIwM0JGMDA0NkYwMTIxMDFCOTA3RkE1NzQ0MEYwNjgKKzowMTAzQ0EwMDIyMTAKKzowQTAzQ0IwMDc1NDQwMjc1NDUwMDc1NDYwMDEyRTYKKzowOTAzRDUwMDAzOUE3NTQyMDM3NTQzMDAxMkZFCis6MDIwM0RFMDAwMzcyQTgKKzowMTAzRTAwMDIyRkEKKzowQzAzRTEwMDkwODgwMEU1MzZGMDkwODgwMDc0MTAyNTJDCis6MDkwM0VEMDAzNkYwMTIwMURENzU0MjAxNzVDNAorOjA5MDNGNjAwNDMxODEyMDM3Mjc1NDQwMjc1RUMKKzowOTAzRkYwMDQ1MDA3NTQ2MDAxMjAzOUE3NUQxCis6MDgwNDA4MDA0MjAzNzU0MzQ0MTIwMzcyMjQKKzowMTA0MTAwMDIyQzkKKzowRTA0MTEwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzA3MworOjBFMDQxRjAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQUE3NDdGCis6MDQwNDJEMDAwMkYwRDA4NjgzCis6MEIwNDMxMDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyRDkKKzowRTA0M0MwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzA0OAorOjBFMDQ0QTAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQTk3NDU1Cis6MDcwNDU4MDAwNEYwNzUzMDAxRDA4NkFECis6MEIwNDVGMDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyQUIKKzowRTA0NkEwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzAxQQorOjBFMDQ3ODAwODY3NTg2MDBFNTkxQzJFNEY1OTE5MDdGQUE3NDI2Cis6MDcwNDg2MDAwNEYwNzUzMTAxRDA4NjdFCis6MEIwNDhEMDBEMEQwRDA4M0QwODJEMEYwRDBFMDMyN0QKKzowRTA0OTgwMEMwRTBDMEYwQzA4MkMwODNDMEQwNzVEMDAwQzBFQworOjBDMDRBNjAwODY3NTg2MDBFNTkxQzJFNUY1OTFEMDg2RDAKKzowQjA0QjIwMEQwRDBEMDgzRDA4MkQwRjBEMEUwMzI1OAorOjBFMDRCRDAwQzBFMEMwRjBDMDgyQzA4M0MwRDA3NUQwMDBDMEM3Cis6MEMwNENCMDA4Njc1ODYwMEU1OTFDMkU3RjU5MUQwODZBOQorOjBCMDRENzAwRDBEMEQwODNEMDgyRDBGMEQwRTAzMjMzCis6MEMwNEUyMDA5MDdGRUFFMEZBOEEyMDkwN0Y5NkU0RjAxOAorOjAxMDRFRTAwMjJFQgorOjA3MDRFRjAwOTA3RkVBRTBGQThBMjE4OAorOjAxMDRGNjAwMjJFMworOjBFMDRGNzAwOTAxNzEzRTBGQTkwMTcxNUUwRkI3NDgwMkFGQUI0Cis6MEUwNTA1MDA3NDgwMkJGQkVBMDMwMzU0M0ZGQ0VBQzQyMzU0MkEKKzowRTA1MTMwMDFGRkEyQ0ZBRUIwMzAzNTQzRkZDRUJDNDIzNTRGNQorOjBCMDUyMTAwMUZGQjJDRkI5MDE3MEFFMEZDNjAwMjlGCis6MDIwNTJDMDA3QTAwNTMKKzowNzA1MkUwMDkwMTcwQ0UwRkM2MDAyRDUKKzowMjA1MzUwMDdCMDA0OQorOjBCMDUzNzAwRUEyQkZDQzMxM0Y1M0E3NTQ0MDI4QjVECis6MDcwNTQyMDA0NThBNDYxMjAzOUE3NTc5Cis6MDkwNTQ5MDA2RTA4NzU2RjAwMTIxMTQ0NzU3MworOjA0MDU1MjAwNzA0Nzc1NzEwOAorOjA4MDU1NjAwMEM3NTcyMDIxMjExNzU4NThCCis6MDUwNTVFMDAzQTczMTIxMUEwMjgKKzowMTA1NjMwMDIyNzUKKzowRTA1NjQwMDkwN0Y5NkUwRkE5MDdGOTY3NDgwNjUwMkYwOTA4QQorOjBFMDU3MjAwN0ZFQkUwRkE5MDdGRUFFMEZCOTA3RkVGRTBGQzg5Cis6MEUwNTgwMDAzMzk1RTBGRDhDMDU3QzAwOTA3RkVFRTBGRTMzQUQKKzowRTA1OEUwMDk1RTBGRkVDMkVGQ0VEM0ZGRDkwN0ZFOUUwRkVENgorOjA1MDU5QzAwQkUwMTAyODAwMzE2Cis6MDMwNUExMDAwMjA1Rjk1NworOjA2MDVBNDAwQkMwMTIxQkQwMDFFOTgKKzowRTA1QUEwMEVBQzQwMzU0RjhGQ0VCMjVFMEZEMkMyNDAwRkMxMQorOjBFMDVCODAwRTQzNDE3RkQ5MDdFQzBFMEZFOEM4MjhEODNGMDRGCis6MDIwNUM2MDA4MDMxODIKKzowRTA1QzgwMEVBQzQwMzU0RjhGQUVCMjVFMEZCMkFGQTI0MDBGQgorOjBFMDVENjAwRkJFNDM0MTdGQzkwN0VDMEUwRkQ4QjgyOEM4MzJBCis6MEUwNUU0MDBGMDc0MDEyQTI0MDBGQUU0MzQxN0ZCOTA3RUMxNjMKKzowNzA1RjIwMEUwRkM4QTgyOEI4M0YwMUMKKzowMzA1RjkwMDc1MzgwMTUxCis6MDEwNUZDMDAyMkRDCis6MEUwNUZEMDBDMEUwQzBGMEMwODJDMDgzQzAwMkMwMDNDMDA0RDIKKzowRTA2MEIwMEMwMDVDMDA2QzAwN0MwMDBDMDAxQzBEMDc1RDAzOQorOjBEMDYxOTAwMDBDMDg2NzU4NjAwRTU5MUMyRTRGNTkxOTA2MQorOjBEMDYyNjAwN0ZBQTc0MDFGMDEyMDU2NDc1MzcwMEQwODZCQworOjBFMDYzMzAwRDBEMEQwMDFEMDAwRDAwN0QwMDZEMDA1RDAwNDIyCis6MEQwNjQxMDBEMDAzRDAwMkQwODNEMDgyRDBGMEQwRTAzMkMwCis6MEUwNjRFMDA5MDdGRUJFMEZBOTA3RkVBRTBGQjkwN0ZFRUUwMTkKKzowRTA2NUMwMEZDMzM5NUUwRkQ5MDdGOTZFMEZFOTA3Rjk2NzQ1MworOjBFMDY2QTAwODA2NTA2RjA5MDdGMDA3NDAxRjBFQUM0MDM1NDJFCis6MEUwNjc4MDBGOEZFRUIyNUUwRkIyRUZFMjQwMEZCRTQzNDE3MTkKKzowRTA2ODYwMEZGOEI4MjhGODNFMEZCNzQwMTJFMjQwMEZFRTRDNAorOjBFMDY5NDAwMzQxN0ZGOEU4MjhGODNFMEZFOTA3RkU5RTBGRjM3Cis6MDMwNkEyMDBCRjgxMEEwQgorOjBBMDZBNTAwOTA3RjAwRUJGMDkwN0YwMUVFRjA3MworOjA4MDZBRjAwOTA3RkU5RTBGQkJCODIxQTE5Cis6MDMwNkI3MDBCQTAxMEM3OQorOjBDMDZCQTAwOTA3RjAwRTRGMDkwN0YwMUU0RjA4MDBCRTIKKzowQjA2QzYwMDkwN0YwMEU0RjA5MDdGMDE3NEI1RjAxRAorOjA4MDZEMTAwOTA3RkU5RTBGQkJCODMxQkY1Cis6MDMwNkQ5MDBCQTAxMEQ1NgorOjBEMDZEQzAwOTA3RjAwNzQwMUYwOTA3RjAxRTRGMDgwMEIyRQorOjBCMDZFOTAwOTA3RjAwRTRGMDkwN0YwMTc0MTJGMDlECis6MDgwNkY0MDA5MDdGRTlFMEZCQkI4NDFDRDAKKzowMzA2RkMwMEJBMDEwRDMzCis6MEQwNkZGMDA5MDdGMDA3NDAxRjA5MDdGMDFFNEYwODAwQzBBCis6MEMwNzBDMDA5MDdGMDA3NDgwRjA5MDdGMDE3NDAxRjA3OQorOjA1MDcxODAwOTA3RkI1RUNGMDNDCis6MDEwNzFEMDAyMkI5Cis6MEMwNzFFMDA3NTM2MEQ5MDg4MDA3NDFERjA3NTZCODAxRQorOjBBMDcyQTAwNzU2QzNDMTIxMEUyNzU2QjgwNzVDRgorOjA5MDczNDAwNkMwRjEyMTBFMjc1NkI4MDc1NjgKKzowOTA3M0QwMDZDMDYxMjEwRTI3NTZCODA3NTY4Cis6MDcwNzQ2MDA2QzAxMTIxMEUyN0EwMEMxCis6MDMwNzREMDBCQUZGMDBGMAorOjAyMDc1MDAwNTAwQTRECis6MEEwNzUyMDBDMDAyMTIwMURERDAwMjBBODBGMTlFCis6MEEwNzVDMDA3NTZCODA3NTZDM0MxMjEwRTI3NTlECis6MDgwNzY2MDA2QjgwNzU2QzBGMTIxMEUyQUMKKzowMTA3NkUwMDIyNjgKKzowRTA3NkYwMDkwN0ZBMUU0RjA5MDdGQUY3NDAxRjA5MDdGOTIzNAorOjBFMDc3RDAwNzQwMkYwNzU4RTMxNzU4OTIxNzU4ODAwNzVDODdCCis6MEUwNzhCMDAwMDc1OEQ0MDc1OTg0MDc1QzA0MDc1ODcwMDc1RUIKKzowOTA3OTkwMDIwMDA3NTIxMDA3NTIyMDA3NTk1Cis6MDUwN0EyMDAyMzAwNzU0NzAwNzMKKzowNzA3QTcwMEMzRTU0Nzk0MjA1MDExNDcKKzowRDA3QUUwMEU1NDcyNDAwRjU4MkU0MzQxN0Y1ODNFNEYwRkMKKzowNDA3QkIwMDA1NDc4MEU4ODYKKzowOTA3QkYwMEU0RjU0MEY1M0ZFNEY1M0NGNURBCis6MDcwN0M4MDAzQkU0RjUzRUY1M0Q3NTMxCis6MEIwN0NGMDAzMjAwNzUzNzAwNzUzOTAwOTA3RjkzRjEKKzowRTA3REEwMDc0M0NGMDkwN0Y5Qzc0RkZGMDkwN0Y5Njc0ODBDQQorOjBFMDdFODAwRjA5MDdGOTQ3NDcwRjA5MDdGOUQ3NDhGRjA5MDZECis6MEUwN0Y2MDA3Rjk3RTRGMDkwN0Y5NTc0QzJGMDkwN0Y5ODc0MjYKKzowRTA4MDQwMDI4RjA5MDdGOUU3NDI4RjA5MDdGRjBFNEYwOTAzMgorOjBFMDgxMjAwN0ZGMUU0RjA5MDdGRjJFNEYwOTA3RkYzRTRGMEU5Cis6MEUwODIwMDA5MDdGRjRFNEYwOTA3RkY1RTRGMDkwN0ZGNkU0MzIKKzowRTA4MkUwMEYwOTA3RkY3RTRGMDkwN0ZGOEU0RjA5MDdGRjkwRgorOjBFMDgzQzAwNzQzOEYwOTA3RkZBNzRBMEYwOTA3RkZCNzRBMEU3Cis6MEUwODRBMDBGMDkwN0ZGQzc0QTBGMDkwN0ZGRDc0QTBGMDkwMDEKKzowRTA4NTgwMDdGRkU3NEEwRjA5MDdGRkY3NEEwRjA5MDdGRTAxMAorOjBFMDg2NjAwNzQwM0YwOTA3RkUxNzQwMUYwOTA3RkRENzQ4MEU4Cis6MEIwODc0MDBGMDEyMTI0MzEyMDcxRTdBMDA3QjAwRjYKKzowOTA4N0YwMEMzRUE5NDFFRUI5NDAwNTAxNzJCCis6MEMwODg4MDA5MDg4MDBFMEY1NDc5MDg4MEJFMEY1NDdGMQorOjA5MDg5NDAwOTA3RjY4RjAwQUJBMDAwMTBCMjQKKzowMjA4OUQwMDgwRTBGOQorOjBDMDg5RjAwMTIwM0UxOTA3RkQ2RTRGMDdBMDA3QjAwQTkKKzowRDA4QUIwMDhBMDQ4QjA1QzNFQTk0RTBFQjk0MkU1MDFBRUEKKzowRTA4QjgwMEMwMDJDMDAzQzAwNEMwMDUxMjAxREREMDA1RDA4RgorOjBBMDhDNjAwMDREMDAzRDAwMjBBQkEwMDAxMEJBRgorOjAyMDhEMDAwODBEOUNECis6MEQwOEQyMDA5MDdGRDY3NDAyRjA5MDdGRDY3NDA2RjA5MEVGCis6MEUwOERGMDA3RkRFNzQwNUYwOTA3RkRGNzQwNUYwOTA3RkFDMzMKKzowRTA4RUQwMEU0RjA5MDdGQUQ3NDA1RjA3NUE4ODA3NUY4MTBFQQorOjBEMDhGQjAwOTA3RkFFNzQwQkYwOTA3RkUyNzQ4OEYwOTA1NworOjBDMDkwODAwN0ZBQjc0MDhGMDc1RTgxMTc1MzIwMTc1QzIKKzowQzA5MTQwMDMxMDA3NTMwMDBDMDA0QzAwNTEyMDRGNzZCCis6MEEwOTIwMDBEMDA1RDAwNDc1MzQwMDc1MzUwMUQwCis6MEQwOTJBMDA5MDdGQUU3NDAzRjA4QzAyQkEwMDAyODAwM0NGCis6MDMwOTM3MDAwMjBBM0Y3MgorOjBDMDkzQTAwODUzMzM0OTA3RjlENzQ4RkYwOTA3Rjk3ODAKKzowRTA5NDYwMDc0MDhGMDkwN0Y5RDc0ODhGMDkwN0Y5QUUwRkExQworOjBDMDk1NDAwNzQwNTVBRjUzMzkwN0Y5RDc0OEZGMDkwNkQKKzowRDA5NjAwMDdGOTc3NDAyRjA5MDdGOUQ3NDgyRjBFNTMzNjQKKzowRDA5NkQwMDI1RTBGQTkwN0Y5QUUwNTQwNUZCNEFGNTMzMkYKKzowMjA5N0EwMDYwMEMwRgorOjBDMDk3QzAwOTA3Rjk2RTBGQTkwN0Y5Njc0ODA0QUYwMUQKKzowQjA5ODgwMDc1NkUwMDc1NkYwMEMwMDRDMDA1MTIwMgorOjBFMDk5MzAwMTE0NEQwMDVEMDA0OTAxNzEzRTBGQTc0ODAyQUE2Cis6MDYwOUExMDBGQUU1MzNCNDA0Mjk1RAorOjAzMDlBNzAwQkFBMDAwRjMKKzowMjA5QUEwMDUwMjRENworOjBEMDlBQzAwOTAxNzEzRTAwNEZCMEI5MDE3MTNFQkYwOTA3NQorOjBFMDlCOTAwMTcxM0UwRkI5MDE3MTVGMEMwMDJDMDA0QzAwNTM0Cis6MDkwOUM3MDAxMjA0RjdEMDA1RDAwNEQwMDI5RgorOjA1MDlEMDAwRTUzM0I0MDIyNjJFCis6MDYwOUQ1MDBDMzc0MDQ5QTUwMjBENworOjBEMDlEQjAwOTAxNzEzRTBGQTFBMUE5MDE3MTNFQUYwOTAyMworOjBEMDlFODAwMTcxM0UwRkE5MDE3MTVGMEMwMDRDMDA1MTJCNworOjA2MDlGNTAwMDRGN0QwMDVEMDA0NTgKKzowNTA5RkIwMEU1MzNCNDA4MUQwNgorOjA0MEEwMDAwRTUzNDcwMTk1MAorOjBBMEEwNDAwNzQwMTI1MzU1NDBGRjUzNTg1MzVEMgorOjBDMEEwRTAwNzU3NTc2MDBDMDA0QzAwNTEyMTNGRUQwMDAKKzowMzBBMUEwMDA1RDAwNDAwCis6MDUwQTFEMDBFNTMzQjQwMTFERUEKKzowNDBBMjIwMEU1MzQ3MDE5MkUKKzowQTBBMjYwMEU1MzUyNEZGNTQwRkY1MzU4NTM1NDIKKzowQzBBMzAwMDc1NzU3NjAwQzAwNEMwMDUxMjEzRkVEMERFCis6MDMwQTNDMDAwNUQwMDRERQorOjBFMEEzRjAwQzAwNEMwMDUxMjAxREREMDA1RDAwNDkwN0Y5NkUyCis6MEUwQTREMDBFMEZBOTA3Rjk2NzQ3RjVBRjA5MDdGOTc3NDA4QkQKKzowQTBBNUIwMEYwQzNFQzk0MDBFRDk0MDI0MDA4OTMKKzowODBBNjUwMDkwN0Y5NkUwRkEyMEU2MDhGQworOjA4MEE2RDAwQzNFNDlDNzQwODlENTAxM0MyCis6MEUwQTc1MDA5MDdGOTZFMEZBOTA3Rjk2NzQ0MDY1MDJGMDdDQzgKKzowNTBBODMwMDAwN0QwMDgwMDU2QworOjA1MEE4ODAwMENCQzAwMDEwRDkzCis6MDUwQThEMDBFNTM4QjQwMTBFODQKKzowRDBBOTIwMEMwMDRDMDA1MTIwNEY3RDAwNUQwMDQ3NTM4NkIKKzowMTBBOUYwMDAwNTYKKzowNzBBQTAwMEU1MzE3MDAzMDIwOTJBOTEKKzowQTBBQTcwMDkwN0ZDOUUwRkE3MDAzMDIwQzJERTUKKzowRTBBQjEwMDkwN0Y5NkUwRkE5MDdGOTY3NDgwNjUwMkYwOTAzOAorOjA5MEFCRjAwN0RDMEUwRkFCQTJDMDI4MDAzQUMKKzowMzBBQzgwMDAyMEIzNkU4Cis6MDUwQUNCMDA3NTMyMDA3QjAwMDQKKzowMzBBRDAwMEJCNjQwMDA0Cis6MDIwQUQzMDA1MDFDQjUKKzowRTBBRDUwMEMwMDJDMDAzQzAwNEMwMDUxMjAxREREMDA1RDA3MAorOjBEMEFFMzAwMDREMDAzRDAwMjkwODgwRkUwRjU0NzBCODA4RgorOjAxMEFGMDAwREYyNgorOjBEMEFGMTAwQzAwMkMwMDRDMDA1MTIwNzFFMTIwM0UxMTI2RQorOjBDMEFGRTAwMDRGN0QwMDVEMDA0RDAwMjc1NkUwMDc1MUUKKzowRDBCMEEwMDZGMDFDMDAyQzAwNEMwMDUxMjExNDREMDA1RTcKKzowOTBCMTcwMEQwMDREMDAyNzU3MDRENzU3MTE3Cis6MEIwQjIwMDAwQzc1NzIwMkMwMDJDMDA0QzAwNTEyNzgKKzowQjBCMkIwMDExNzVEMDA1RDAwNEQwMDIwMjBDMkQ4MworOjAzMEIzNjAwQkEyQTNCOUQKKzowRDBCMzkwMDkwN0Y5ODc0MjBGMEMwMDJDMDA0QzAwNTEyMjcKKzowRTBCNDYwMDAxREREMDA1RDAwNEQwMDI5MDdGOTg3NDI4RjAxNQorOjAyMEI1NDAwN0IwMDI0Cis6MDMwQjU2MDBCQjBBMDBENworOjA1MEI1OTAwNDAwMzAyMEMyRDE5Cis6MEUwQjVFMDBDMDAyQzAwM0MwMDRDMDA1MTIwMURERDAwNUQwRTYKKzowODBCNkMwMDA0RDAwM0QwMDIwQjgwRTI2QgorOjAzMEI3NDAwQkEyQjFBN0YKKzowODBCNzcwMDkwN0ZDOUUwRkJCQjQwMTJCNgorOjBFMEI3RjAwQzAwMkMwMDRDMDA1MTIxMjA1RDAwNUQwMDREMDdCCis6MDQwQjhEMDAwMjAyMEMyRDI3Cis6MDMwQjkxMDBCQTEwMUY3OAorOjBFMEI5NDAwOTA3Rjk2RTBGQjkwN0Y5Njc0ODA2NTAzRjBDMDIyCis6MEUwQkEyMDAwMkMwMDRDMDA1MTIxMDNERDAwNUQwMDREMDAyRTAKKzowMzBCQjAwMDAyMEMyRDA3Cis6MDMwQkIzMDBCQTExMTI2MgorOjBFMEJCNjAwQzAwMkMwMDRDMDA1MTIxMDZBRDAwNUQwMDREMEUxCis6MDQwQkM0MDAwMjAyMEMyREYwCis6MDMwQkM4MDBCQTEyMTI0QworOjBFMEJDQjAwQzAwMkMwMDRDMDA1MTIxMDhGRDAwNUQwMDREMEE3Cis6MDQwQkQ5MDAwMjAyMEMyRERCCis6MDMwQkREMDBCQTEzMEIzRAorOjBCMEJFMDAwOTA3REMxRTBGQjkwODgwMEYwODA0Mjk3Cis6MDMwQkVCMDBCQTE0MTEyOAorOjBFMEJFRTAwQzAwMkMwMDRDMDA1MTIxMURERDAwNUQwMDREMDM1Cis6MDMwQkZDMDAwMjgwMkU0NgorOjAzMEJGRjAwQkExNTFEMDcKKzowQzBDMDIwMDkwN0RDMUUwRjU3NTkwN0RDMkUwRjU3NkI0Cis6MEUwQzBFMDBDMDAyQzAwNEMwMDUxMjEzRkVEMDA1RDAwNEQwRjEKKzowMzBDMUMwMDAyODAwRTQ1Cis6MDMwQzFGMDBCQTE2MEJGNworOjBCMEMyMjAwQzAwNEMwMDUxMjEzQTNEMDA1RDAwNENECis6MEIwQzJEMDA5MDdGQzlFNEYwNzUzMTAwMDIwOTJBMzUKKzowMTBDMzgwMDIyOTkKKzowNzBDMzkwMDUzNTU1MDQ1NEU0NDAwRTUKKzowNzBDNDAwMDUyNDU1MzU1NEQ0NTAwREMKKzowNjBDNDcwMDIwNTY2RjZDMjAwMDM2Cis6MEQwQzREMDA0NDQxNDI1NTUzNDIyMDc2MzEyRTMwMzAwMDk0Cis6MEUwQzVBMDBDMEUwQzBGMEMwODJDMDgzQzAwMkMwMDNDMDA0NkUKKzowRTBDNjgwMEMwMDVDMDA2QzAwN0MwMDBDMDAxQzBEMDc1RDBENgorOjBEMEM3NjAwMDBDMDg2NzU4NjAwRTU5MUMyRTRGNTkxOTBGRQorOjBFMEM4MzAwN0ZBQjc0MDFGMDkwN0ZFOEUwRkE5MDdGRTlFMDJCCis6MDYwQzkxMDBGQkJCMDAwMjgwMDMyMgorOjAzMEM5NzAwMDIwRDM4MTMKKzowMzBDOUEwMEJBODAxNDA5Cis6MEUwQzlEMDA5MDdGMDA3NDAxRjA5MDdGMDFFNEYwOTA3RkI1MkQKKzowNjBDQUIwMDc0MDJGMDAyMEVDRDAwCis6MDUwQ0IxMDBCQTgyMDI4MDAzN0QKKzowMzBDQjYwMDAyMEQxRDBGCis6MDgwQ0I5MDA5MDdGRUNFMEZDQkMwMTAwOUYKKzowMjBDQzEwMDQwMjFEMAorOjA2MENDMzAwQzM3NDA3OUM0MDFCRjYKKzowRTBDQzkwMEVDMjRGRjI1RTBGRDI0QzZGNTgyRTQzNDdGRjUxRgorOjBEMENENzAwODNFMEZENTMwNTAxOTA3RjAwRURGMDgwMkJDMAorOjAzMENFNDAwQkM4MTAwRDAKKzowMjBDRTcwMDQwMjFBQQorOjA2MENFOTAwQzM3NDg3OUM0MDFCNTAKKzowRTBDRUYwMEVDMjQ3RjI1RTBGQzI0QjZGNTgyRTQzNDdGRjU4QQorOjBEMENGRDAwODNFMEZDNTMwNDAxOTA3RjAwRUNGMDgwMDVDMworOjA1MEQwQTAwOTA3RjAwRTRGMDAxCis6MEUwRDBGMDA5MDdGMDFFNEYwOTA3RkI1NzQwMkYwMDIwRUNERUIKKzowNTBEMUQwMEJBODEwMjgwMDMxMQorOjAzMEQyMjAwMDIwRUM1RjkKKzowRTBEMjUwMDkwN0YwMEU0RjA5MDdGMDFFNEYwOTA3RkI1NzRDMQorOjA1MEQzMzAwMDJGMDAyMEVDREVDCis6MDMwRDM4MDBCQjAxMkRDRgorOjA2MEQzQjAwQkEwMDAzMDIwRUNEMTgKKzowMzBENDEwMEJBMDIxMUUyCis6MEQwRDQ0MDA3NTU5MDBDMDAyQzAwMzEyMEVGMEQwMDNEMDlDCis6MDQwRDUxMDAwMjAyMEVDREJGCis6MDUwRDU1MDBCQTIxMDI4MDAzMzkKKzowMzBENUEwMDAyMEVDREI5Cis6MEIwRDVEMDA3NTM3MDE5MDdGQzVFNEYwMDIwRUNENTkKKzowMzBENjgwMEJCMDMxRkFCCis6MDYwRDZCMDBCQTAwMDMwMjBFQ0RFOAorOjA1MEQ3MTAwQkEwMjAyODAwMzNDCis6MDMwRDc2MDAwMjBFQ0Q5RAorOjBEMEQ3OTAwNzU1OTAxQzAwMkMwMDMxMjBFRjBEMDAzRDA2NgorOjA0MEQ4NjAwMDIwMjBFQ0Q4QQorOjAzMEQ4QTAwQkIwNjU0NTEKKzowNTBEOEQwMEJBODAwMjgwMDNBMgorOjAzMEQ5MjAwMDIwRUM1ODkKKzowODBEOTUwMDkwN0ZFQkUwRkNCQzAxMTVBRQorOjBDMEQ5RDAwN0NGQjdEMEY4RDA2N0YwMDkwN0ZENEVFNjQKKzowOTBEQTkwMEYwOTA3RkQ1RUNGMDAyMEVDREI0Cis6MEEwREIyMDA5MDdGRUJFMEZDQkMwMjAyODAwMzFFCis6MDMwREJDMDAwMjBFQzU1RgorOjBBMERCRjAwOTA3RkVBRTBGQ0JDMDAwMjgwMDMxNAorOjAzMERDOTAwMDIwRUM1NTIKKzowQzBEQ0MwMDdDM0I3RDBGOEQwNjdGMDA5MDdGRDRFRUY1Cis6MDkwREQ4MDBGMDkwN0ZENUVDRjAwMjBFQ0Q4NQorOjA2MERFMTAwQkIwNzAzMDIwRUM1NzIKKzowMzBERTcwMEJCMDgxMDM2Cis6MEQwREVBMDBBQzQ4OTA3RjAwRUNGMDkwN0ZCNTc0MDFGMEY0Cis6MDMwREY3MDAwMjBFQ0QxQworOjAzMERGQTAwQkIwOTMxMDEKKzowNTBERkQwMEJBMDAwMjgwMDNCMgorOjAzMEUwMjAwMDIwRUM1MTgKKzowRTBFMDUwMDkwN0ZFQUUwRkNDMzc0MDE5QzUwMDMwMjBFQzUwRQorOjA4MEUxMzAwOTA3RkVBRTBGQ0JDMDAwQTNDCis6MEEwRTFCMDA5MDE3MjFFNEYwOTAxNzIyRTRGMDk0Cis6MDkwRTI1MDA5MDdGRUFFMEY1NDgwMjBFQ0REMQorOjAzMEUyRTAwQkIwQTI3RDUKKzowNTBFMzEwMEJBODEwMjgwMDNGQworOjAzMEUzNjAwMDIwRUM1RTQKKzowRTBFMzkwMDkwN0ZFQ0UwRkEyNDIwRkFFNDM0MTdGQzhBODI2MQorOjBFMEU0NzAwOEM4M0UwRkE5MDdGMDBGMDkwN0ZCNTc0MDFGMDhDCis6MDMwRTU1MDAwMjBFQ0RCRAorOjA1MEU1ODAwQkIwQjAyODAwMzRBCis6MDMwRTVEMDAwMjBFQTlEOQorOjBEMEU2MDAwOTAxNzIwRTRGMDkwN0ZFQ0UwRkFCQTAxMUE0MAorOjA4MEU2RDAwOTA3RkVERTBGQUJBMDAxMkRCCis6MEUwRTc1MDA5MDdGRUFFMEZBOTAxNzIxRjBDMDAzMTIwNEUyMjkKKzowNDBFODMwMEQwMDM4MDQ2RDIKKzowODBFODcwMDkwN0ZFQ0UwRkFCQTAyM0U5NAorOjA4MEU4RjAwOTA3RkVERTBGQUJBMDAzNjk1Cis6MEQwRTk3MDBDMDAzMTIwNEVGRDAwMzkwN0ZFQUUwRkE5MDUwCis6MDUwRUE0MDAxNzIyRjA4MDI0N0MKKzowNTBFQTkwMEJCMTIwMjgwMTdERQorOjA1MEVBRTAwQkI4MTAyODAwRDc0Cis6MDUwRUIzMDBCQjgzMDI4MDA4NzIKKzowNTBFQjgwMEJCODIwMjgwMDM3MworOjAzMEVCRDAwQkI4NDA1RUUKKzowNTBFQzAwMDEyMDY0RTgwMDgzRgorOjA4MEVDNTAwOTA3RkI0NzQwM0YwODAwNjc1Cis6MDYwRUNEMDA5MDdGQjQ3NDAyRjBGNgorOjAyMEVEMzAwRDA4NkM3Cis6MEUwRUQ1MDBEMEQwRDAwMUQwMDBEMDA3RDAwNkQwMDVEMDA0NzgKKzowRDBFRTMwMEQwMDNEMDAyRDA4M0QwODJEMEYwRDBFMDMyMTYKKzowQjBFRjAwMDkwN0ZFQ0UwRjU1QUMzOTQwMTQwMUQxOAorOjA3MEVGQjAwQzM3NDA3OTU1QTQwMTY2RAorOjBEMEYwMjAwRTU1QTI0RkYyNUUwRkEyNEM2RjU4MkU0MzQwOAorOjA5MEYwRjAwN0ZGNTgzQUE1OUVBRjA4MDIyNjMKKzowNzBGMTgwMEMzRTU1QTk0ODE0MDFCNjAKKzowNzBGMUYwMEMzNzQ4Nzk1NUE0MDE0Q0EKKzowRDBGMjYwMEU1NUEyNEZGMjVFMEZBMjRCNkY1ODJFNDM0RjQKKzowNzBGMzMwMDdGRjU4M0FBNTlFQUYwRTMKKzowMTBGM0EwMDIyOTQKKzowRTBGM0IwMDA5MDJCQTAwMDMwMTAwNDAwMDA5MDQwMDAwMDA5MgorOjBFMEY0OTAwMDEwMTAwMDAwOTI0MDEwMDAxM0QwMDAxMDEwQzFFCis6MEUwRjU3MDAyNDAyMDExMDA3MDAwMjAzMDAwMDAwMEQyNDA2MTIKKzowRTBGNjUwMDAzMDEwMjE1MDAwMzAwMDMwMDAwMDkyNDAzMDIyQgorOjBFMEY3MzAwMDEwMTAwMDEwMDA5MjQwMzA0MDIwMzAwMDMwMDMxCis6MEUwRjgxMDAwOTI0MDMwNTAzMDYwMDAxMDAwOTA0MDEwMDAwMTUKKzowRTBGOEYwMDAxMDIwMDAwMDkwNDAxMDEwMTAxMDIwMDAwMDczNworOjBFMEY5RDAwMjQwMTAyMDEwMTAwMEIyNDAyMDEwMjAyMTAwMUQ2Cis6MEUwRkFCMDA4MEJCMDAwOTA1ODgwNTAwMDEwMTAwMDAwNzI1MzQKKzowRTBGQjkwMDAxMDAwMDAwMDAwOTA0MDIwMDAyMDAwMDAwMDAxOAorOjBFMEZDNzAwMDcwNTgyMDI0MDAwMDAwNzA1MDIwMjQwMDAwMEZDCis6MEUwRkQ1MDAwOTA0MDIwMTAzMDAwMDAwMDAwNzA1ODIwMjQwMkIKKzowRTBGRTMwMDAwMDAwNzA1MDIwMjQwMDAwMDA5MDU4OTA1QTA3NAorOjBBMEZGMTAwMDEwMTAwMDAwMEZGRkZGRkZGMDBGOAorOjBFMEZGQjAwMTIwMTAwMDEwMDAwMDA0MDQ3MDU5OTk5MDAwMTE1Cis6MEUxMDA5MDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDkwMkJBMTMKKzowNDEwMTcwMDAwMDMwMTAwRDEKKzowMjEwMUIwMDdBMDA1OQorOjAzMTAxRDAwQkEwNTAwMTEKKzowMjEwMjAwMDUwMTc2NworOjA4MTAyMjAwOTA3RkE1RTBGQjMwRTAwNTIyCis6MDUxMDJBMDA5MDAwMDE4MDBEQTMKKzowQTEwMkYwMEMwMDIxMjAxREREMDAyMEE4MEU0QzUKKzowMzEwMzkwMDkwMDAwMTIzCis6MDExMDNDMDAyMjkxCis6MEUxMDNEMDA5MDdEQzFFMEY5QTNFMEZBQTNFMEZCN0MwMDdEMEEKKzowNDEwNEIwMDdFRUI2MDEyQzYKKzowRTEwNEYwMDg5ODI4QTgzRTBBM0E5ODJBQTgzOEM4MjhEODM4MgorOjA0MTA1RDAwRjAwQ0RCRUVDQQorOjA4MTA2MTAwOTA3REMzRTA5MDdGQjlGMDFGCis6MDExMDY5MDAyMjY0Cis6MEUxMDZBMDA5MDdEQzFFMEY5QTNFMEZBQTNFMEZCN0NDNDdEMTkKKzowNDEwNzgwMDdERUI2MEU1QzcKKzowRTEwN0MwMDhDODI4RDgzRTAwQzg5ODI4QTgzRjBBM0E5ODI4NgorOjA0MTA4QTAwQUE4M0RCRUU2QworOjAxMTA4RTAwMjIzRgorOjBFMTA4RjAwOTA3RkE1NzQ4MEYwMDU4NjkwN0RDMUUwMDU4NkY3Cis6MEUxMDlEMDBBM0YwMTIxMDFCOTA3RkE2MDU4NkEzQTNFMEY5MTYKKzowNTEwQUIwMDYwMTZBMzA1ODY5QworOjBEMTBCMDAwOTA3RkE2MDU4NkUwQTMwNTg2RjBDMDAxMTIyMgorOjA2MTBCRDAwMTAxQkQwMDFEOUVENkIKKzowNjEwQzMwMDkwN0ZBNTc0NDBGMENGCis6MDExMEM5MDAyMjA0Cis6MDgxMENBMDA5MDg4MDI3NDAxRjA3QTAwMjUKKzowMzEwRDIwMEJBRkYwMDYyCis6MDIxMEQ1MDA1MDBBQkYKKzowQTEwRDcwMEMwMDIxMjAxREREMDAyMEE4MEYxMTAKKzowMTEwRTEwMDIyRUMKKzowNTEwRTIwMEU1NkJCNEMwMDgzRAorOjA4MTBFNzAwOTA4ODAzRTU2Q0YwODAwNjFGCis6MDYxMEVGMDA5MDg4MDJFNTZDRjBBMAorOjA0MTBGNTAwN0EwMDdCMDAwMgorOjBCMTBGOTAwQzNFQTk0MzJFQjY0ODA5NDgwNTAwNzNGCis6MDUxMTA0MDAwQUJBMDAwMTBCMTYKKzowMjExMDkwMDgwRUU3NgorOjAxMTEwQjAwMjJDMQorOjBBMTEwQzAwOTA4ODAzRTU2REYwMDUzOTdBMDBDNAorOjAzMTExNjAwQkEyODAwRjQKKzowMjExMTkwMDUwMDM4MQorOjAzMTExQjAwMEE4MEY4NEYKKzowNTExMUUwMEU1MzlCNDEwMDhFMgorOjA4MTEyMzAwOTA4ODAyNzRDMEYwODAwRUY4Cis6MDUxMTJCMDBFNTM5QjQyMDA5QzQKKzowOTExMzAwMDkwODgwMjc0ODBGMDc1MzkwMDBBCis6MDIxMTM5MDA3QTAwM0EKKzowMzExM0IwMEJBMjgwMENGCis6MDIxMTNFMDA1MDAzNUMKKzowMzExNDAwMDBBODBGODJBCis6MDExMTQzMDAyMjg5Cis6MDQxMTQ0MDBFNTZGNjAwMkYxCis6MDIxMTQ4MDA4MDA3MUUKKzowNzExNEEwMDdBMDA3NTM5MDA4MDA1RjEKKzowNTExNTEwMDdBNDA3NTM5MTAyMQorOjA5MTE1NjAwRTU2RTJBRkFFNTZFMjUzOUY1NzMKKzowQTExNUYwMDM5OTA4ODAyNzQ4MDJBRjA3QTAwQUIKKzowODExNjkwMEMzRUE2NDgwOTRBODUwMDM1RQorOjAzMTE3MTAwMEE4MEY1RkMKKzowMTExNzQwMDIyNTgKKzowNjExNzUwMEFBNzBBQjcxQUM3MjIwCis6MEMxMTdCMDA4QTgyOEI4MzhDRjAxMjE0RUVGRDYwMTg0OQorOjBEMTE4NzAwOEQ2REMwMDJDMDAzQzAwNDEyMTEwQ0QwMDQxNQorOjA5MTE5NDAwRDAwM0QwMDIwQUJBMDAwMTBCREQKKzowMjExOUQwMDgwRENGNAorOjAxMTE5RjAwMjIyRAorOjBEMTFBMDAwRTU3M0M0NTQwRkZBNTMwMjBGQzM3NDA5OUE4QgorOjAyMTFBRDAwNTAwNkVBCis6MDYxMUFGMDA3NDM3MkFGQjgwMDRFNgorOjA0MTFCNTAwNzQzMDJBRkI2RAorOjBDMTFCOTAwOEI2REMwMDMxMjExMENEMDAzQUE3MzUzRkQKKzowODExQzUwMDAyMEZDMzc0MDk5QTUwMDZFMQorOjA2MTFDRDAwNzQzNzJBRkI4MDA0QzgKKzowNDExRDMwMDc0MzAyQUZCNEYKKzowNTExRDcwMDhCNkQxMjExMENFQworOjAxMTFEQzAwMjJGMAorOjA3MTFERDAwOTA3REMzRTBGQTYwMEZGMgorOjBDMTFFNDAwOTA3REMxRTBGNTZFOTA3REMyRTBGNTZGREIKKzowMzExRjAwMDEyMTE0NDk1Cis6MEMxMUYzMDA5MDdERkZFNEYwNzU3MEM0NzU3MTdENzU4RgorOjA1MTFGRjAwNzIwMTEyMTE3NUUwCis6MDExMjA0MDAyMkM3Cis6MDIxMjA1MDA3QTA0NjkKKzowMzEyMDcwMEJBNDAwMEVBCis6MDIxMjBBMDA1MDM2NUMKKzowRTEyMEMwMEVBMjRDMEY1ODJFNDM0N0RGNTgzRTBGQjdDMDAyQgorOjAzMTIxQTAwQkMwODAwMEQKKzowMjEyMUQwMDUwMjA1RgorOjA2MTIxRjAwOEIwNUVEMzBFNzBCMkEKKzowQjEyMjUwMDkwN0Y5Njc0NDJGMDc0QzNGMDgwMDhDNAorOjA4MTIzMDAwOTA3Rjk2RTRGMDc0ODFGMDU4Cis6MDcxMjM4MDBFQjI1RTBGQjBDODBEQjVECis6MDMxMjNGMDAwQTgwQzU1RAorOjAxMTI0MjAwMjI4OQorOjA0MTI0MzAwN0EwMDdCRUZDMworOjAzMTI0NzAwQkExMDAwREEKKzowMjEyNEEwMDUwMjAzMgorOjBFMTI0QzAwNzQxMTJCRkIyNDAwRkNFNDM0MThGRDhDODI4RDAxCis6MEUxMjVBMDA4M0U0RjBFQTI0MDBGNTgyRTQzNDE5RjU4M0U0MUQKKzowNDEyNjgwMEYwMEE4MERCMkQKKzowMTEyNkMwMDIyNUYKKzowRTEyNkQwMDc0RjgyNDAwRjU4Mjc0MDMzNDg0RjU4M0U0RjBGMQorOjBFMTI3QjAwNzRGOTI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEUyCis6MEUxMjg5MDA3NEZBMjQwMEY1ODI3NDAzMzQ4NEY1ODNFNEYwRDMKKzowRTEyOTcwMDc0RkIyNDAwRjU4Mjc0MDMzNDg0RjU4M0U0RjBDNAorOjBFMTJBNTAwNzRGRjI0MDBGNTgyNzQwMzM0ODRGNTgzRTRGMEIyCis6MDExMkIzMDAyMjE4Cis6MEUxMkI0MDAxMjAzQ0IxMjEyNkQ3QUMwN0I4NzdDMDE3NDAxOEQKKzowRTEyQzIwMDJBRkRFNDNCRkU4QzA3OEE4MjhCODM4Q0YwNzQzRAorOjBFMTJEMDAwMDExMjE0QkYyREZBRTQzRUZCOEYwNDhEODI4RUI2Cis6MEUxMkRFMDA4MzhGRjA3NDA2MTIxNEJGNzQwMTJBRkRFNDNCRTYKKzowRTEyRUMwMEZFOEMwNzhBODI4QjgzOENGMEU0MTIxNEJGNzQ5MAorOjBFMTJGQTAwMDEyREZBRTQzRUZCOEYwNDhEODI4RTgzOEZGMDZGCis6MEUxMzA4MDA3NDBCMTIxNEJGNzQwMTJBRkRFNDNCRkU4QzA3MjcKKzowRTEzMTYwMDhBODI4QjgzOENGMDc0MDgxMjE0QkY3NDAxMkQzMAorOjBFMTMyNDAwRkFFNDNFRkI4RjA0OEQ4MjhFODM4RkYwNzQwMUZECis6MEUxMzMyMDAxMjE0QkYyQUZERTQzQkZFOEMwNzhBODI4QjgzRDcKKzowRTEzNDAwMDhDRjBFNDEyMTRCRjc0MDEyREZBRTQzRUZCOEYxMgorOjBFMTM0RTAwMDQ4RDgyOEU4MzhGRjA3NDAzMTIxNEJGN0QwMDE1Cis6MDMxMzVDMDBCRDA2MDBDQgorOjAyMTM1RjAwNTAxMjJBCis6MEIxMzYxMDA4QTgyOEI4MzhDRjAwQUJBMDAwMTBCMUIKKzowNzEzNkMwMEU0MTIxNEJGMEQ4MEU5M0IKKzowRDEzNzMwMDhBODI4QjgzOENGMEU1NzQxMjE0QkY3NEY5MkMKKzowRTEzODAwMDI0MDBGNTgyNzQwMzM0ODRGNTgzNzQwRkYwNzQzNgorOjBFMTM4RTAwRkUyNDAwRjU4Mjc0MDMzNDg0RjU4Mzc0MDFGMEFDCis6MDYxMzlDMDAxMjAzRTExMjA0Rjc0OAorOjAxMTNBMjAwMjIyOAorOjBEMTNBMzAwOTA3REMxRTBGQTI0MDBGQkU0MzQxOUZDOTBCOQorOjBFMTNCMDAwN0RDMkUwRkQ4QjgyOEM4M0YwNzVGMDExRUFBNDAzCis6MDMxM0JFMDBGQTdCMDBCNworOjAzMTNDMTAwQkIxMDAwNUUKKzowMjEzQzQwMDUwMjRCMworOjBFMTNDNjAwRUEyNDAwRkNFNDM0MThGREVCMkNGQ0U0M0RGREIxCis6MEUxM0Q0MDA3NDA0MkIyNEMwRjU4MkU0MzQ3REY1ODNFMEZFMjIKKzowODEzRTIwMDhDODI4RDgzRjAwQjgwRDc5MworOjBFMTNFQTAwRUEyNDAwRkFFNDM0MThGQjc0MTAyQUY1ODJFNEI5Cis6MDUxM0Y4MDAzQkY1ODNFNEYwNjkKKzowMTEzRkQwMDIyQ0QKKzowNDEzRkUwMEU1NzY2MDAyMkUKKzowMjE0MDIwMDgwMTY1MgorOjBDMTQwNDAwNzQwRjU1NzVGQThBNzUyNDAwRjU4MkU0MTcKKzowQTE0MTAwMDM0MTlGNTgzRTBGNTc0MTIxMkI0RUMKKzowQTE0MUEwMDEyMTBDQTc1NkUwMDc1NkYwMDEyMDMKKzowNjE0MjQwMDExNDQ3NTcwQjk3NTVBCis6MDYxNDJBMDA3MTE0NzU3MjAyMTIzQworOjBCMTQzMDAwMTE3NUU1NzZCNDAyMDQ3NDAxODAwMTIwCis6MDExNDNCMDBFNENDCis6MDMxNDNDMDBGQTcwMEYzNAorOjBDMTQzRjAwNzQwMTI1NzVGNTczQzAwMjEyMTFBMEQwRDUKKzowMzE0NEIwMDAyODAwQTEyCis6MEExNDRFMDA4NTc1NzNDMDAyMTIxMUEwRDAwMkQwCis6MEMxNDU4MDA3NTZFMDA3NTZGMDFDMDAyMTIxMTQ0RDBDNworOjA0MTQ2NDAwMDJFQTcwMUEwRQorOjBEMTQ2ODAwNzVGMDExRTU3NUE0RkEyNDAwRkFFNDM0MThCQgorOjA5MTQ3NTAwRkI4QTcwOEI3MTc1NzIwMTEyODMKKzowNDE0N0UwMDExNzU4MDM2MkUKKzowMjE0ODIwMDdBMDBFRQorOjAzMTQ4NDAwQkExMDAwOUIKKzowMjE0ODcwMDUwMkZFNAorOjBEMTQ4OTAwRUEyNDAwRjU4MkU0MzQxOUY1ODNFMEZCRTU2OAorOjA0MTQ5NjAwNzVCNTAzMUIwQQorOjBFMTQ5QTAwNzVGMDExRUFBNEZCMjQwMEZCRTQzNDE4RkM4QjZGCis6MDkxNEE4MDA3MDhDNzE3NTcyMDFDMDAyMTIxMgorOjA0MTRCMTAwMTE3NUQwMDJERgorOjAzMTRCNTAwMEE4MENDREUKKzowMTE0QjgwMDIyMTEKKzowNjE0QjkwMDUwNzI2RjY3MjAwMDc1Cis6MEUxNEJGMDBDOEMwRTBDOEMwRTBFNUYwNjAwQjE0NjAwRjE0NzgKKzowNzE0Q0QwMDYwMTExNDYwMTI4MDE1OEMKKzowNzE0RDQwMEQwRTBBODgyRjY4MDBFQjMKKzowNTE0REIwMEQwRTBGMDgwMDlFMworOjA0MTRFMDAwRDBFMDgwMDVEMworOjA1MTRFNDAwRDBFMEE4ODJGMjM3Cis6MDQxNEU5MDBDOEQwRTBDOEJGCis6MDExNEVEMDAyMkRDCis6MEUxNEVFMDBDOEMwRTBFNUYwNjAwRDE0NjAwRjE0NjAwRjE0MkMKKzowNjE0RkMwMDYwMTA3NEZGODAwRjc4Cis6MDUxNTAyMDBBODgyRTY4MDBBNEEKKzowMzE1MDcwMEUwODAwNzdBCis6MDQxNTBBMDBFNDkzODAwM0UzCis6MDMxNTBFMDBBODgyRTJDRQorOjA0MTUxMTAwRjhEMEUwQzg2NgorOjAxMTUxNTAwMjJCMworOjAwMDAwMDAxRkYKKworICogQ29weXJpZ2h0IChDKSAxOTk5IEJheUNvbSBHbWJICisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCByZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCisgKiBjb2RlIHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBjb21tZW50IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbi4KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2RzcDU2ay9ib290c3RyYXAuYXNtIGIvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5hc20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBkODkxOQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2RzcDU2ay9ib290c3RyYXAuYXNtCkBAIC0wLDAgKzEsOTggQEAKKzsgQXV0aG9yOiBGcmVkZXJpayBOb3JpbmcgPG5vcmluZ0Bub2NyZXcub3JnPgorOworOyBUaGlzIGZpbGUgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworOyBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgYXJjaGl2ZQorOyBmb3IgbW9yZSBkZXRhaWxzLgorCis7IERTUDU2ayBsb2FkZXIKKworOyBIb3N0IEludGVyZmFjZQorTV9CQ1IgICBFUVUgICAgICRGRkZFICAgICAgICAgICA7IFBvcnQgQSBCdXMgQ29udHJvbCBSZWdpc3RlcgorTV9QQkMgICBFUVUgICAgICRGRkUwICAgICAgICAgICA7IFBvcnQgQiBDb250cm9sIFJlZ2lzdGVyCitNX1BCRERSIEVRVSAgICAgJEZGRTIgICAgICAgICAgIDsgUG9ydCBCIERhdGEgRGlyZWN0aW9uIFJlZ2lzdGVyCitNX1BCRCAgIEVRVSAgICAgJEZGRTQgICAgICAgICAgIDsgUG9ydCBCIERhdGEgUmVnaXN0ZXIKK01fUENDICAgRVFVICAgICAkRkZFMSAgICAgICAgICAgOyBQb3J0IEMgQ29udHJvbCBSZWdpc3RlcgorTV9QQ0REUiBFUVUgICAgICRGRkUzICAgICAgICAgICA7IFBvcnQgQyBEYXRhIERpcmVjdGlvbiBSZWdpc3RlcgorTV9QQ0QgICBFUVUgICAgICRGRkU1ICAgICAgICAgICA7IFBvcnQgQyBEYXRhIFJlZ2lzdGVyCisKK01fSENSICAgRVFVICAgICAkRkZFOCAgICAgICAgICAgOyBIb3N0IENvbnRyb2wgUmVnaXN0ZXIKK01fSFNSICAgRVFVICAgICAkRkZFOSAgICAgICAgICAgOyBIb3N0IFN0YXR1cyBSZWdpc3RlcgorTV9IUlggICBFUVUgICAgICRGRkVCICAgICAgICAgICA7IEhvc3QgUmVjZWl2ZSBEYXRhIFJlZ2lzdGVyCitNX0hUWCAgIEVRVSAgICAgJEZGRUIgICAgICAgICAgIDsgSG9zdCBUcmFuc21pdCBEYXRhIFJlZ2lzdGVyCisKKzsgU1NJLCBTeW5jaHJvbm91cyBTZXJpYWwgSW50ZXJmYWNlCitNX1JYICAgIEVRVSAgICAgJEZGRUYgICAgICAgICAgIDsgU2VyaWFsIFJlY2VpdmUgRGF0YSBSZWdpc3RlcgorTV9UWCAgICBFUVUgICAgICRGRkVGICAgICAgICAgICA7IFNlcmlhbCBUcmFuc21pdCBEYXRhIFJlZ2lzdGVyCitNX0NSQSAgIEVRVSAgICAgJEZGRUMgICAgICAgICAgIDsgU1NJIENvbnRyb2wgUmVnaXN0ZXIgQQorTV9DUkIgICBFUVUgICAgICRGRkVEICAgICAgICAgICA7IFNTSSBDb250cm9sIFJlZ2lzdGVyIEIKK01fU1IgICAgRVFVICAgICAkRkZFRSAgICAgICAgICAgOyBTU0kgU3RhdHVzIFJlZ2lzdGVyCitNX1RTUiAgIEVRVSAgICAgJEZGRUUgICAgICAgICAgIDsgU1NJIFRpbWUgU2xvdCBSZWdpc3RlcgorCis7IEV4Y2VwdGlvbiBQcm9jZXNzaW5nCitNX0lQUiAgIEVRVSAgICAgJEZGRkYgICAgICAgICAgIDsgSW50ZXJydXB0IFByaW9yaXR5IFJlZ2lzdGVyCisKKyAgICAgICAgb3JnICAgICBQOiQwCitzdGFydCAgIGptcCAgICAgPCQ0MAorCisgICAgICAgIG9yZyAgICAgUDokNDAKKzsgICAgICAgOyBaZXJvIDE2Mzg0IERTUCBYIGFuZCBZIHdvcmRzCis7ICAgICAgIGNsciAgICAgQSAjMCxyMAorOyAgICAgICBjbHIgICAgIEIgIzAscjQKKzsgICAgICAgZG8gICAgICAjNjQsPF9ibG9jazEKKzsgICAgICAgcmVwICAgICAjMjU2Cis7ICAgICAgIG1vdmUgICAgQSxYOihyMCkrIEIsWToocjQpKworO19ibG9jazEgICAgICAgIDsgWmVybyAoMzI3NjgtNTEyKSBQcm9ncmFtIHdvcmRzCis7ICAgICAgIGNsciAgICAgQSAjNTEyLHIwCis7ICAgICAgIGRvICAgICAgIzEyNiw8X2Jsb2NrMgorOyAgICAgICByZXAgICAgICMyNTYKKzsgICAgICAgbW92ZSAgICBBLFA6KHIwKSsKKztfYmxvY2syCisKKyAgICAgICAgOyBDb3B5IERTUCBwcm9ncmFtIGNvbnRyb2wKKyAgICAgICAgbW92ZSAgICAjcmVhbCxyMAorICAgICAgICBtb3ZlICAgICN1cGxvYWQscjEKKyAgICAgICAgZG8gICAgICAjdXBsb2FkX2VuZC11cGxvYWQsPF9jb3B5CisgICAgICAgIG1vdmUgICAgUDoocjApKyx4MAorICAgICAgICBtb3ZlICAgIHgwLFA6KHIxKSsKK19jb3B5ICAgbW92ZXAgICAjPjQsWDo8PE1fSENSCisgICAgICAgIG1vdmVwICAgIz4kYzAwLFg6PDxNX0lQUgorICAgICAgICBhbmQgICAgICM8JGZlLG1yCisgICAgICAgIGptcCAgICAgdXBsb2FkCisKK3JlYWwKKyAgICAgICAgb3JnICAgICBQOiQ3ZWE5Cit1cGxvYWQKKyAgICAgICAgbW92ZXAgICAjPjEsWDo8PE1fUEJDCisgICAgICAgIG1vdmVwICAgIz4wLFg6PDxNX0JDUgorCituZXh0ICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLCoKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgsQQorICAgICAgICBtb3ZlICAgICM+Myx4MAorICAgICAgICBjbXAgICAgIHgwLEEgIz4xLHgwCisgICAgICAgIGplcSAgICAgPCQwCitfZ2V0X2FkZHJlc3MKKyAgICAgICAgamNsciAgICAjMCxYOjw8TV9IU1IsX2dldF9hZGRyZXNzCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLHIwCitfZ2V0X2xlbmd0aAorICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUixfZ2V0X2xlbmd0aAorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCx5MAorICAgICAgICBjbXAgICAgIHgwLEEgIz4yLHgwCisgICAgICAgIGplcSAgICAgbG9hZF9YCisgICAgICAgIGNtcCAgICAgeDAsQQorICAgICAgICBqZXEgICAgIGxvYWRfWQorCitsb2FkX1AgIGRvICAgICAgeTAsX2xvYWQKKyAgICAgICAgamNsciAgICAjMCxYOjw8TV9IU1IsKgorICAgICAgICBtb3ZlcCAgIFg6PDxNX0hSWCxQOihyMCkrCitfbG9hZCAgIGptcCAgICAgbmV4dAorbG9hZF9YICBkbyAgICAgIHkwLF9sb2FkCisgICAgICAgIGpjbHIgICAgIzAsWDo8PE1fSFNSLCoKKyAgICAgICAgbW92ZXAgICBYOjw8TV9IUlgsWDoocjApKworX2xvYWQgICBqbXAgICAgIG5leHQKK2xvYWRfWSAgZG8gICAgICB5MCxfbG9hZAorICAgICAgICBqY2xyICAgICMwLFg6PDxNX0hTUiwqCisgICAgICAgIG1vdmVwICAgWDo8PE1fSFJYLFk6KHIwKSsKK19sb2FkICAgam1wICAgICBuZXh0CisKK3VwbG9hZF9lbmQKKyAgICAgICAgZW5kCmRpZmYgLS1naXQgYS9maXJtd2FyZS9kc3A1NmsvYm9vdHN0cmFwLmJpbi5paGV4IGIvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzNmMjFmCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZHNwNTZrL2Jvb3RzdHJhcC5iaW4uaWhleApAQCAtMCwwICsxLDI2IEBACis6MTAwMDAwMDAwQzAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQwCis6MTAwMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwCis6MTAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIwCis6MTAwMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwCis6MTAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwCis6MTAwMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAwMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAwMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAwMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAwMEMwMDA2MEY0MDAwMDAwNEY2MUY0MDAwMDdFQTkwNjJFODAwMDVECis6MTAwMEQwMDAwMDQ3MDdEODg0MDc1OTg0MDhGNEE4MDAwMDA0MDhGNEVFCis6MTAwMEUwMDBCRjAwMEMwMDAwRkVCODBBRjA4MDAwN0VBOTA4RjRBMDUyCis6MTAwMEYwMDAwMDAwMDEwOEY0QkUwMDAwMDAwQUE5ODAwMDdFQUQwOERGCis6MTAwMTAwMDA0RTJCNDRGNDAwMDAwMDAzNDRGNDQ1MDAwMDAxMEVBMDBGCis6MTAwMTEwMDAwMDBBQTk4MDAwN0VCNTA4NTAyQjBBQTk4MDAwN0VCODhECis6MTAwMTIwMDAwODQ2MkI0NEY0NDUwMDAwMDIwQUYwQUEwMDdFQzkyMENDCis6MTAwMTMwMDAwMDQ1MEFGMEFBMDA3RUQwMDZDNjAwMDA3RUM2MEFBOUM1Cis6MTAwMTQwMDA4MDAwN0VDNDA4NTg2QjBBRjA4MDAwN0VBRDA2QzYwMEIxCis6MTAwMTUwMDAwMDdFQ0QwQUE5ODAwMDdFQ0IwODU4QUIwQUYwODAwMDUzCis6MTAwMTYwMDA3RUFEMDZDNjAwMDA3RUQ0MEFBOTgwMDA3RUQyMDg1ODYzCis6MDcwMTcwMDBFQjBBRjA4MDAwN0VBREY4Cis6MDAwMDAwMDFGRgorLyogRFNQNTYwMDEgYm9vdHN0cmFwIGNvZGUgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Jvb3QuSDE2IGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdC5IMTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJmOGU5MQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Jvb3QuSDE2CkBAIC0wLDAgKzEsMjkgQEAKKzowMDA0MDAwMDAwMDEwQzAwMDJFRAorOjAwMDIwMDAwMDQwMEZGRkIKKzowMDA2MDAwMDAwMDIwMDgwMDIwMDAzNzMKKzowMDAzMDAwQjAwMDIwMDBCRTUKKzowMDAzMDAxMzAwMDIwMUI4MkYKKzowMDAzMDAxQjAwMDIwMDFCQzUKKzowMDAzMDAyMzAwMDIwMDIzQjUKKzowMDAzMDAyQjAwMDIwMDJCQTUKKzowMDAzMDAzMzAwMDIwMDMzOTUKKzowMDAzMDAzQjAwMDIwMDNCODUKKzowMDAzMDA0MzAwMDIwMUJERkEKKzowMDAzMDA0QjAwMDIwMUQwREYKKzowMDAzMDA1MzAwMDIwMTIxODYKKzowMDAzMDA3QjAwMDIwMDdCMDUKKzowMTY2MDA4MDAwN0VCMDAwN0FCMzNGRjI3RUY4MDAyMzdFMDAwMTdFMTAwMDEyMDc1RjY5MjAwMDBBQkUyNDAwMDA3ODA1NzU5MDBEODAwMzc1OTAxREQyQjU3RTAwMDBBNUQ4RkQ3NUE4MDA3NUIxMDBBOUQ1ODdDQTI5MTIwOUNDMTIwOUEwRjUwOTdBQTEyMDEyMDFFNkRBMjlBOUQwQzc3RTAwMDU3QTAxRjE3NUUxMTBBOUQ3RjRBOUQ3RTRBNUQ4RjE3NUYxMDA3NUUxM0Y3NUEyMDM3NUEzMDA3NUMwMDA3NUMxMDBBOUQxQjFBOUQwQjFBOUQ1RDNEMkFGRTQ3RTA0MjgwMDhERUYxQjA0NzhGQTA0QTkzNEQzMDMzMEUwRUVCRTI0MDAwMDc4MDU2MzkwMzA4MEUzQjI5NTgwREZCRUIwMDIyMkMwRDBBOTIwREYwRkE5MzFERjAzMDIwMUI1NzUwODAxMTIwODMzODBGRTc1MDhGRTEyMDgzMzc1QTgwMDdFQjMzRkYyMzBFMDRCMzAwMTQ2QzI5MjdFMjQ4MDAwN0UxMTA5NzQwODE5QjIwMDEwNzQwRTE5QjIwMDA0MkUyNDAxMDBBNUQ5RUQ3RTI0ODAwMDdFMTEwOUU0RDVFMEZEMDlCMjAwMDgyMEUwMEEwOUIyMDAwMDA5QjIwMDE4ODBFQjJFMjQwMTAwQTVEOUU0NDM5MDMwRDJBQTgwMDVEMkFBNDM5MDM0RDJBRkE5RDE4NzAwMDAwMDAwMDBBOTExREYwM0E5RDJERjc1MDhGRjEyMDgzM0MwRDFDQTAyRkZDQTA2ODMwMDMyRDBEMDMyQzI4QkMyQUEzMjc1MDgwODEyMDgzM0E5QzBCMUE5QzVEM0E5QzZEM0E5RDJCMTMyQ0FCODc1MDgwMjEyMDgzM0U1QzA1NDAzNjgwNTEyMDFFRTgwRjVEQUI4MzJBRQorOjAwMDExQkNBMDAwMDFBCis6MDY0RDAxRTYwMEU0N0FCMzNGRjEwMjAyNjNDQTBCQ0ExQkNBMkJDQTNCQ0E0QkNBNUJDQTZCQ0E3QkNBRUJDMEYxN0VCMzAxMkJCNDAwMDI4MDE5QjQwMTE2MzBDMDA4NzVGMTAwMTIwMjREODAxRjMwQzExQzc1RjEwMDEyMDJERTgwMTQzMEMxMDg3NUYxMDAxMjAyREU4MDA5MzBDMDA2NzVGMTAwMTIwMjRERDBGMURBRUJEQTdCREE2QkRBNUJEQTRCREEzQkRBMkJEQTFCREEwQjIyQzJDMDdFQjMwMTJCQjQwMjA3MTIwMjZGMDIwMjYzMjJCNDAxRkMwMjAyQTk3RTAwMDA3QTAzMDEyQjdBMDMwMTJDMjI3RUIzMDEyMzU0NjA2MDA1QjQ0MDE1ODAxMzdFQjMwMTI0QjQwNTBDNzUwODcxMTIwODMzN0VCMzAxMjZGNThGMjI3NUY2MDAyMkJFNTcwMTI5MjgwNDdFNTcwMTI5N0EwRjAxMkU3QTU3MDEzMjAyMDJBOTdFRUYwMTJFN0VGNzAxMzI3RTA3MDEzMjREMDA2ODIxN0UwMDAwN0VFQkIwRjVGM0EzQTUwODFCRjQ2ODA0QTVCODA4RjA3QUVGMDEyRTdBRjcwMTMyNzUwODA2MTIwODMzN0EwMUY2MjJDMkMxNzUwODAzMTIwODMzQTkzNkUyMTZFNUY1NTRDMDY4MDdBOUQ3RjRBOTI3RjRGQzUzRTEzRjQzRjI4ODAyMDM1NTdFQjMwMTJDQjQwMjBGQTlENEU0N0VCMDAwN0FCMzAxMkM3QUIzMDEyQjIyQjQwMTM5N0UyMUU2N0MzMjdFMTMwMTJEMkMyMTdBMjMwMTJEN0UwMDAwMkUwNDAxMzRFNUUzN0EwOUIwMEIwNEE1REJGNkE5RDRFNDc1MDg3MDEyMDgzMzdFQjMwMTJEN0VBMzAxMkFCQ0FCNzgwMzEyMDNFQzIyMDIwNzU1RTVFNkI0MDg2NUE5QzRFMjdFMDFFMzdFMTFFMzdFMzFFMzdFMjFFMzdFNTFFMzdFNDFFMzdFNzFFMzdFNjFFMzdBMEYwMTIzN0ExRjAxMjc3NTA4MDQxMjA4MzM3QTAxMDgxMjA4MzM3QTExMDgxMjA4MzM3QTIxMDgxMjA4MzM3QTMxMDgxMjA4MzM3QTQxMDgxMjA4MzM3QTUxMDgxMjA4MzM3QTYxMDgxMjA4MzM3QTcxMDgxMjA4MzNBOUQ0RTRBOUQ3RjRBOUM2RTIxMjAzQzAyMjZEMDA3RTE0MDEwMjdBMDcwMTMyN0EwMzAxMkQ3RUIzMDEyMzIwRTcwRjdBMjMwMTJDN0EzMzAxMkJCRTA3MDEyOTY4MDkyMjdBMzMwMTJDN0EyMzAxMkI3RUIzMDEyMzU0RTMyMzIzMzBFMDAyRDJFNTMwRTcwMkQyRTQzMEU1MDYzMEU0MDMwMjA3NTU1NDNFRjVGMDAzNTQxRkMzMjVGMDkwMDQxODc1ODRGRjczMDIwNTZDMDIwNDYwMDIwNjA5MDIwNjI0MDIwNTA1MDIwNEM2MDIwNjNEMDIwNjNEMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQwMDIwNjQ2MDIwNkZBMDIwNjQzMDIwNjQzMDIwNjQzMDIwNjQzMDIwNjQzMDIwNjQzN0VCMzAxMjRCNDA2MkE3RUIzMDEyNTYwNTY3QzBCN0UxMzAxMjY3RTE3MDEyNzc1MDg3MjEyMDgzMzdBMDEwODEyMDgzMzdBMTEwODEyMDgzMzEyMDc1RjQwMzUwMjAyOTRCNDA4MTA3NTA4NzQxMjA4MzM3RUIzM0ZGMUY1RjM3NUY2MDEyMkI0MDAxQzc1MDg3NTEyMDgzMzdFQjMzRkYyMzBFMDA1NzVGMzAyODAwMzc1RjMwMDc1RjMwMDc1RjYwMjIyMDIwNzU1N0VCMzAxMjRCNDAwMzU3NTA4NzYxMjA4MzM3RUIzMDEyODU0MEZGNUYxN0VCMzAxMjgyMEU3MDlFNUUxMzBFNzBENzQwMTgwMEJFNUUxMzBFNjA0NzQwMTgwMDI3NDAwNTNGMTgwRjVGMzc1RjMwMDc1RjYwMjIyMDIwNzU1QzBGMTdFQjMwMTI4NTQwRjQyRjE3RUIzMDEyNkI0MDA0NTdFQjMwMTI0QjQwMTI0NzUwODc3MTIwODMzN0VCMzAxMjg1NDBGNzgwNTUzRTEzRjgwMzc3RUIzMDEyODIwRTcwNTUzRTE3RjgwMkI1M0UxQkY4MDI2QjQwMzE3NzUwODc4MTIwODMzN0VCMzAxMjgyMEU3MDU0M0UxODA4MDExNDNFMTQwODAwQzQzRTFDMEQwRjE3NTA4MDcxMjA4MzMyMkQwRjEwMjAyOTA3RUIzMDEyNEI0MDkyMzc1MDg3OTEyMDgzMzdFQjMwMTI2QkVCMzNGRjE2ODExQ0FCOEMwRjExMjAxMUREMEYxREFCODUwNzY3QUIzM0ZGMTgwNkRCNDA1MDg3NTA4N0ExMjA4MzM4MDYyQjQwMzE5NzUwODdCMTIwODMzN0VCMzAxMjZCNDAxNTU3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjgwNDZCNDAxMTk3NTA4N0MxMjA4MzM3RUIzMDEyNkI0MDEzOTdFQjMzRkYyNTRGRTdBQjMzRkYyODAyQUI0MDcyQTdFQjMwMTI1NjAyNDdDMEI3RTEzMDEyNjdFMTcwMTI3NzUwODczMTIwODMzN0EwMTA4MTIwODMzN0ExMTA4MTIwODMzMTIwNzhCNDAwMzAyMDI5MDAyMDc1NTdFQjMwMTI0QjQwQkY2NzUwODdEMTIwODMzN0VCMzAxMjY3RUEzMDEyODRDQUI3OEU0ODBERjdFQjMwMTI0QjQwQURCNzUwODdFMTIwODMzN0VCMzAxMjY3MENGRjVGMzc1RjYwMTIyMDIwNzU1MDIwNzU1MDIwNzU1N0VCMzAxMjRCNDA0MjA3NTA4QzMxMjA4MzM3RTA0MDAwMTdFMTcwMTI1N0UxODAxMzQ3QTFDMDAwMDdFNDcwMTI5MTIwODNGMDIwNkY0QjQwNjNBNzUwOEMxMTIwODMzN0U1ODAwMDA3QTVDMDBGRTdEQ0E3RUQ3MDEyNTdFNzgwMTM0N0E3QzAwMDA3RTc3MDEyOTc1MDhDMTEyMDgzM0MwQThDMDg3QzJBRkE5RDU4NzEyMDhENkQwODdEMEE4NDA0RjgwNEFCNDAwMUNDMkFGQTlENTg3MTIwMjkwRTQ4REVGOERFRjhERUZENUUwRjdDMEQxQ0EwMkZGQ0EwNjAwMDAzMkI0MDkxMjdFNTcwMTI1NEQ1NTY4MDVBOUQyQjE4MDAzQTlDMkIxODAxNkI0MDcxNkMyQUY3RTA3MDEyNzdFMTcwMTI1QzBEMUNBMThDQTM4Q0EyODMyMDIwMjkwMDIwNzU1N0VCMzAxMjRCNDAzMTU3NTA4QzIxMjA4MzM3RTA0MDAwMTdFMTcwMTI1N0U1NzAxMjkwMjAyOTRCNDA1Mzk3NTA4QzAxMjA4MzNDMEE4QzA4N0MyQUZBOUQ1ODc3RTA4MDEzNDdBMEMwMDAwN0UyNDAwRkU3RTM3MDEyNTdFNDcwMTI5MTIwODNGRDA4N0QwQTg3RTA4MDEzNDdBMEMwMDAwN0U1NzAxMjkwMjAyOTQwMjA3NTU3NTA4MDcxMjA4MzM0M0UxQzAyMkMwQThDMDg3QzJBRkE5RDU4NzEyMDdDQTQwMTk3RTA4MDEzNDdBMEMwMDAwQ0EwQkNBNDkxMjA4M0ZEQTU5REEwQkQwODdEMEE4QzMyMkQwODdEMEE4MjJDMEE4QzA4N0MyQUZBOUQ1ODcxMjA3Q0E0MDJCN0U1ODAwMDA3QTVDMDBGRTdGNjE3RTc4MDEzNDdBN0MwMDAwN0U3NzAxMjlCRDc0NzgxMTc1MDhDMTEyMDgzMzEyMDhENjQwMDZEMDg3RDBBOEMzMjJEMDg3RDBBOEQzMjI3RTI0MDBGRTdFMzQ3RkNBMEIxQTUwQzVGMDdENjI3RDc1N0Q4NzdFMzQ3RjAzN0UxQkIwQkMwQjUwNDkzRTAwM0UwMDBBNTAyRDc1MEIzQTMwNjk1MzAwMDJCRDM4NTAwMjJEMzhCQzFCNTAzMDNFMTAzRTEwMEE1MTJEMzU2OTQxMDAwMjBCMUEzMEJEMzg1MDAyMkQzOEJFNDRGRkZGNzgwNTdFMUI5MDBBNDk0RDQ0NjgwQ0JFNDQwMEZGMjgwNDdFNDQwMEZGQzMyMkQzMjIzNAorOjAwNDA3RkMwMDA0MDAxMDIwMENBMUIwMTBDMDIwMDAwN0MwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjE3RjAwMDAwMDAwMDAwMDVECis6MTM5NzA4MzMwMENBMDg3RTAxMDg3QTAzM0ZGMERBMDgyMjgwNTAwQjFBNjAwQjM1MEIxQTcwMEIzNTBCMUE4MDBCMzUwQjFBOTAwQjM1MEIxQUEwMEIzNTBCMUFCMDBCMzUwQjFBQzAwQjM1MEIxQUQwMEIzNTFCMEE2MDBCMTUxQjBBNzAwQjE1MUIwQTgwMEIxNTFCMEE5MDBCMTUxQjBBQTAwQjE1MUIwQUIwMEIxNTFCMEFDMDBCMTUxQjBBRDAwQjE1OUU0NDAwMTA1MEFBMkU0NDAwMTA2ODBFN0UxQkMwN0EwQkMwMEIxNDBCMzQxQjQ0NzhGMjIyN0Y2RjdGRjAxQkZDN0M1NDdEMzI4MDA4Q0ExQkNBMUJDQTFCQ0ExQjlFNDQwMDEwNTBGMjJFNDQwMDEwNjgwNkNBNDgxQjQ0NzhGQTdGRjY4OUU0Q0E2QjVFRDQwMDNGNjgyMDdFODQwMDQwOUQ4RERBNkJCRDg3MzgxNkNBNzk3RDc4MTIwOTAwREE3OTQwMDg5RDc4NjgwMjgwMDVDMkQ3MjJEQTZCNDM5MDMwNzRBQTM5QjU1NTU1NzQ1NTM5QjUyQUFBNzRBMDM5QjU1NTU1N0UwNDAwNDA5RDcwNTAwNjJENzA3RDA3NkQ3NzdDMzE3RTdCMDA3QTZCMDAwQjdDMEI2Q0E1RDlGMzdGMTYxQjFDN0U1NDI3MTA3RTFCMTBCQzEwNjgwNjFCNTQ3OEY1ODAyQzZEMDA3QzIwN0YxNjlGMTA3RjI3OUYyMDdFMkIwMDdFMUIxMEJDMDE3ODE2MEIyQzBCMUNBNURCRUY3Q0I2MjBFMDAzNjM5MDMwNEQ3Nzc4OTNDMkQ3MjJEMkQ3MjIwMDA0MDAwNDAwMDAwNjA0MDIwNDAwMDIwMTA0MDEwMjAwMDAwMDAwMDAwMDAwMDAwMjAyMDIwMjAyMDQwMDA4MTAwMjEwMDQwMjA4MDAwMTAxMDg3RTE4N0ZCRDdBMUMwMEZGMEIxQTAwQkUxMDE0MzgxQTBBNTEyMzdFMTgwOTc2N0ExQzAwRkYyRDM1MEIxQTUwNjAwOEE1QjgwMjAzNEVBMDA4MjI4MEZFN0VFODdGQkY3QUVDMDBGRkUwRjUyMjU0QzA2ODE2N0VFODdGQkU3QUVDMDBGRkUwNjAwQzEyMDlBMEY1MDk3QUExMjAwMjBGMEEyMkMyOTVEMjk0MTIxOUZCNTM5MENGMTIxOUZCODBGMTBEMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwRDBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBMEEwQTBBNDU2NDY3NjU3MDZGNzI3NDJGMzQyMDJEMjA0ODYxNzI2NDc3NjE3MjY1MjA0NDY5NjE2NzZFNkY3Mzc0Njk2MzczMkMyMDUyNjU3NjIwMzEyRTMwMzAzQjIwNDM2RjcwNzk3MjY5Njc2ODc0MjAzMTM5MzkzODIwNDk2RTczNjk2NDY1MjA0Rjc1NzQyMDRFNjU3NDc3NkY3MjZCNzMwRDBBMDA1MDYxNzM3MzAwNDY0MTQ5NEMyMDIxMjEwMDUwNjE3MzczMjAyMDIwMjAwMDQ2NDE0OTRDMjAyMTIxMjAwMDBEMEE0NDY1NzQ2NTYzNzQyMDUyNjE2RDNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTUyNjE2RDIwNTQ2NTczNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNDE2NDY0NzI2NTczNzMyMDYyNjk3NDIwMzAyRDMxMzQyMDc0NjU3Mzc0M0EyMDIwMjAyMDIwMjAyMDIwMjAwMDBEMEE1NzcyNkY3NDY1MjA0MTY0NjQ3MjY1NzM3MzNBMjAzMDMwM0EwMDIwMjA3NzY5NzQ2ODIwNjQ2MTc0NjEzQTIwMDAyQzIwNjE2RTY0MjA3MjY1NjE2NDNBMjAwMDBEMEE0RjZFNjUyMDZGNzIyMDYyNkY3NDY4MjA2RjY2MjA3NDY4NjUyMDY2NkY2QzZDNkY3NzY5NkU2NzIwNDE2NDY0NzI2NTczNzMyMDYyNjk3NDczMjA2QzY5NzM3NDY1NjQyMDYxNzI2NTIwNzM2ODZGNzI3NDY1NjQwRDBBNzQ2RjIwNzM2RjZENjU3NDY4Njk2RTY3M0EyMDAwMjA2MTZFNjQyMDAwMEQwQTQ0NjU3NDY1NjM3NDIwNTU2MTcyNzQzQTIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMDAwRDBBNTM2MzcyNjE3NDYzNjgyMDUwNjE2NDJDNDY2OTQ2NkYyMDQ1NkU2MTYyNkM2NTIwMjYyMDUyNTM1NDNBMjAwMDBEMEEwQTIwMjAyMDU1NjE3Mjc0MjA1NDY1NzM3NDczMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDUwNkY3Mjc0MzEyMDIwMjA1MDZGNzI3NDMyMjAyMDIwNTA2RjcyNzQzMzIwMjAyMDUwNkY3Mjc0MzQwRDBBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDAwMEQwQTUwNkY3Mjc0MjA0NDY1NjM2RjY0NjU3MjNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTQ0Njk2NzY5NzQ2MTZDMjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTQxNkU2MTZDNkY2NzIwNEM2RjZGNzA2MjYxNjM2QjNBMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTUyNTg0NDJDNTQ1ODQ0MjA3NDZGMjA1MjU0NTMyQzQzNTQ1MzJDNTI0OTIwNTM2ODZGNzI3NDNBMjAyMDIwMjAyMDAwMEQwQTUyNTg0NDJDNTQ1ODQ0MjA3NDZGMjA0NDU0NTIyQzQ0NTM1MjJDNDM0NDIwNTM2ODZGNzI3NDNBMjAyMDIwMjAyMDAwMEQwQTUyNTQ1MzVCNDM1NDUzMkM1MjQ5NUQyMDc0NkYyMDQ0NTQ1MjJDNDQ1MzUyMkM0MzQ0MjA1MzY4NkY3Mjc0M0EyMDAwMEQwQTUyNTQ1MzVCNDM1NDUzMkM0MzQ0NUQyMDc0NkYyMDQ0NTM1MjJDNTI0OTIwNTM2ODZGNzI3NDNBMjAyMDIwMjAyMDAwMEQwQTQ0NTQ1MjVCNDQ1MzUyMkM0MzQ0NUQyMDc0NkYyMDUyNTQ1MzJDNDM1NDUzMkM1MjQ5MjA1MzY4NkY3Mjc0M0EyMDAwMEQwQTQ0NTQ1MjIwNzQ2RjIwNDM1NDUzMkM0MzQ0MjA1MzY4NkY3Mjc0M0EyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTUyNTQ1MzIwNzQ2RjIwNDM1NDUzMkM1MjQ5MjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTUyNTQ1MzIwNzQ2RjIwNDM1NDUzMkM0MzQ0MjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTQ0NTQ1MjIwNzQ2RjIwNDQ1MzUyMkM0MzQ0MjA0QzZGNkY3MDYyNjE2MzZCM0EyMDIwMjAyMDIwMjAyMDIwMjAyMDAwMEQwQTBBMjAyMDIwNDUyMDUyMjA1MjIwNEYyMDUyMjAyMTIxMjEyQzIwNDUyMDUyMjA1MjIwNEYyMDUyMjAyMTIxMjEyMDJDMjA0NTIwNTIyMDUyMjA0RjIwNTIyMDIxMjEyMTBEMEEwQTQ0Njk2MTY3NkU2RjczNzQ2OTYzNzMyMDZFNkY3NzIwNzc2OTZDNkMyMDY1NkU3NDY1NzIyMDYxMjA2NDY1NjI3NTY3MjA2QzZGNkY3MDIwNkY2NjIwNzQ2ODY1MjA2NjY5NzI3Mzc0MjA2NDY1NzQ2NTYzNzQ2NTY0MjA2NTcyNzI2RjcyMkUwMDBEMEEwQTRFNkYyMDQ4NjE3MjY0Nzc2MTcyNjUyMDY1NzI3MjZGNzI3MzIwNjQ2NTc0NjU2Mzc0NjU2NDJFMEQwQTAwNDM2RjcwNzk2OTZFNjcyMDYzNkY2NDY1MjA2NjcyNkY2RDIwNEQ2MTczNzQ2NTcyMjA3NDZGMjA1MzZDNjE3NjY1Mjc3MzIwNDU0NTcwNzI2RjZEMjAyRTJFMkUwMDQ0NkY2RTY1MEQwQTBBMkQzRTIwNTQ3NTcyNkUyMDc1NkU2OTc0MjA2RjY2NjYyQzIwNjQ2OTczNjM2RjZFNkU2NTYzNzQyMDYzNjE2MjZDNjUyMDYxNkU2NDIwNzI3NTZFMjA3Mzc0NjE2RTY0NjE2QzZGNkU2NTIwNjQ2OTYxNjc2RTZGNzM3NDY5NjM3MzJFMDBDMkFGQzIwOUMyMEE3NTkwMEQyMDE3MDJEMkI1NDM5MDMwNkMwMDdFMTAwMzEyMEYzODdFNjgwQTAxN0E2QzAwRkYxMjFBOTMwQjAwMzBCNDAyODAyNDAyMUIzQzIwMDkxREMyOTREMjk1MTIxOUZCNTM5MENGMTIxOUZCQzI5NUQyOTQxMjE5RkJBNUQ5RTY0MzkwMzAxMjE5RkIyMjdFNjgwQTk0N0E2QzAwRkYxMjFBOTM3RUU0MTAwMDdFNDA1NTdBRTk0MDBCRTQ3RTUwQUE3QUU5NTAxQkU0QkVFOTQwNjgxOTdFNjgwQTdBN0E2QzAwRkYxMjFBOTMxMjFBMDgzMDA5MTM3QUU5NDA3RUU5MTA4MEY4N0U2ODBBNzU3QTZDMDBGRjEyMUE5MzBCMDA3RTY4MEFEODdBNkMwMEZGMTIxQTkzN0U3ODAwMDA3RTcwMEU3RUE0RkZGRjdFQjRCRkZGN0RDQjBFQzQ3RERDNUREQjZDQkI3REZBNUVGNDdGRkY3QTdCQjAwQkIwN0RGQjVFRjQ3RkZGN0E3QkIwMEJCMDdERkM1RUY0N0ZGRjdBN0JCMDBCQjA3REZENUVGNDdGRkY3QTdCQjA2Q0JCN0RGQTVFRjQ3RkZGQkU3QkIwNzg0MTBCQjA3REZCNUVGNDdGRkZCRTdCQjA3ODM0MEJCMDdERkM1RUY0N0ZGRkJFN0JCMDc4MjcwQkIwN0RGRDVFRjQ3RkZGQkU3QkIwNzgxQTBCQjBCRUM0RkZGRTc4OTIwRUI0QTVERjhCN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwNzdDQTVCQ0E2QjdFNjgwQThCN0E2QzAwRkYxMjFBOTM3RTY4MEIyQTdBNkMwMEZGMTIxQTkzMEE0NzEyMUFDOTdFNjgwQjc5N0E2QzAwRkYxMjFBOTM2Qzc3REE2QkNBNkIwQjcwMEVDNEJFQzRGRkZGNzhGNjFCNzAwQTQ3MTIxQUM5MTIxQTA4MzAwOTMwREE2QkRBNUI2Q0JCN0U3ODAwMDA3REZBNUVGNDdGRkY3QTdCQjA3REZCNUVGNDdGRkY3QTdCQjA3REZDNUVGNDdGRkY3QTdCQjA3REZENUVGNDdGRkY3QTdCQjA4MEQ0N0U2ODBBQjY3QTZDMDBGRjEyMUE5MzMwMTcwRTdFNzgwNDIwN0E3QzAwMDA3RTQ0N0JFMDgwMEM3RTc4MDAwMDdBN0MwMDAxN0U0NDgwMDAwQjAwN0U0MDNBN0M1NDdGNTc3RDg0NkM2NjdBNUI1MDBCNUMwQjUwQTVERTAyMEI1MDFCODQ3OEYwN0M1NDdGNTc3RDg0NkM2NkJFNUI1MDc4MUEwQjVDMEI1MEE1REUwMjBCNTAxQjg0NzhFRTdFNjgwQTc1N0E2QzAwRkYxMjFBOTM4MDRCN0Y0NTdFNjgwQTdBN0E2QzAwRkYxMjFBOTM3RTY4MEFGQTdBNkMwMEZGMTIxQTkzN0Q0QjEyMUFDOTdFNjgwQjBGN0E2QzAwRkYxMjFBOTM2Qzg4N0M5NTEyMUFDOTdFNjgwQjFEN0E2QzAwRkYxMjFBOTM3RTRCOTAxMjFBQzkxMjFBMDgzMDA5MDU3RTRCOTA4MEZCN0U2ODBCN0Y3QTZDMDBGRjEyMUE5MzBCMDBEMjkyN0UyNDgwMDAwOUIyMDAwOEJFQjAwMTc4MEIwOUIyMDAxNEJFQjA2MDc4MDI4MDE3N0U2ODBBN0E3QTZDMDBGRjEyMUE5MzEyMUEwODMwMDkxMTA5QjIwMDA4ODBGQTdFNjgwQTc1N0E2QzAwRkYxMjFBOTM3RTY4MEJBMTdBNkMwMEZGMTIxQTkzMEIwMEMyOTIxMjE5RUU3RTI0ODAwMDdFQTA1NTE5QTIwMDFDN0VCMDAxMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODM3MDlCMjAwMDg1RUIwQzBCRUIwQzA3ODJCN0VBMEFBMTlBMjAwMUM2Q0JCMTlCMjAwMDgwOUIyMDAxQ0JDQUI3ODE2MDlCMjAwMDg1RUIwQzA3ODBEN0U2ODBBNzU3QTZDMDBGRjEyMUE5MzgwMUI3RTY4MEE3QTdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTBBMTlBMjAwMUMwOUIyMDAxQzgwRjY3RTY4MEJDMzdBNkMwMEZGMTIxQTkzN0U2ODBDNDU3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5N0VCMDAxMTlCMjAwMUMyRTI0MDEwMDBCQjBBNUQ5RjM3RTI0ODAwMDdFMTEwOTdFQjAwMTBCMDAwOUEyMDAxQ0JDQUI3ODE2N0U2ODBBODI3QTZDMDBGRjEyMUE5MzJFMjQwMTAwMEJCMEE1RDlFMjgwMjU3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOUU0N0UyNDgwMDA3RTExMDkwOUEyMDAxQzJFMjQwMTAwQTVEOUY1ODBFQzdFNjgwQzY5N0E2QzAwRkYxMjFBOTMxMjEzOEE3RTI0ODAwMDdFMTEwOTBCMDA3NDEwMTlCMjAwMTAxMjEzMDMyRTI0MDEwMEE1RDlFRTdFNjgwQzhEN0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDBFNDE5QjIwMDEwMTIxMzAzMkUyNDAxMDBBNUQ5RUYzMDAwMDMwMjE4QjcwMjEzQkI3NDA3MTlCMjAwMDgxMjE5RkIwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0QzIwQjdFQjA1NTEyMTM2NDdFQjBBQTEyMTM2NDdFQjAwMDEyMTM2NDdFQjBGRjEyMTM2NDMwMEIwRjdFNjgwQThCN0E2QzAwRkYxMjFBOTMxMjFBMDgyMjdFNjgwQTgyN0E2QzAwRkYxMjFBOTMyMjE5QjIwMDAwMTIxOUVFMDlBMjAwMDBCQ0FCNzgwMTIyMjAwOTAzRDIwQjIyMTIxQTA4MTlCMjAwMDAxMjE5RUUwOUEyMDAwMDgwRjNEMjkyMTIxOUVFQzI5MjEyMTlFRTdFMjQ4MDAwN0UxMTA5NzQ4MDE5QjIwMDBDN0U1NDAwMDIxOUEyMDAwNDE5QjIwMDAwNzQwMzE5QjIwMDBDMkUyNDAxMDBBNUQ5RTEyMjdFNjgwQ0IxN0E2QzAwRkYxMjFBOTM3RTI0ODAwMDdFMTEwOTBCMDAxMjE5RUUwOUIyMDAxODdFQTA1NTE5QTIwMDAwMTIxOUVFMDlCMjAwMTg1RUIwMDU3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMUE3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTA5MTlBMjAwMDAxMjE5RUU4MEY3MkUyNDAxMDBBNUQ5QjY3RTY4MENENTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwMTIxOUVFMDlCMjAwMTg3RUEwNTUxOUEyMDAwMDEyMTlFRTA5QjIwMDE4NUVCMDBBNzgwRDdFNjgwQTgyN0E2QzAwRkYxMjFBOTM4MDFBN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzEyMUEwODMwMDkwOTE5QTIwMDAwMTIxOUVFODBGNzJFMjQwMTAwQTVEOUI2MzAwNDAzMDIxNjhDN0U2ODBDRjk3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjAwQTc4M0M3RUEwMDExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDBBNzgxNDdFNjgwQTgyN0E2QzAwRkYxMjFBOTMyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOUU2N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODBENDE3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjAwNTc4M0M3RUEwMDIxOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDIxOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA1NzgxNDdFNjgwQTgyN0E2QzAwRkYxMjFBOTMyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOUU2N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODBEODk3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwNTBCRUIwNTA3ODFGNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwNTA3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTBGN0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5QTI3RTY4MEREMTdBNkMwMEZGMTIxQTkzN0UyNDgwMDA3RTExMDkwQjAwMDlCMjAwMTg3RUEwMDExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMEEwQkVCMEEwNzgxRjZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMEEwNzgwRDdFNjgwQTgyN0E2QzAwRkYxMjFBOTM4MDIwN0U2ODBBOEI3QTZDMDBGRjEyMUE5MzEyMUEwODMwMDkwRjdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOTlFMDIxODJCN0U2ODBEMUQ3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjAwNjc4M0M3RUEwMDExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDExOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA2NzgxNDdFNjgwQTgyN0E2QzAwRkYxMjFBOTMyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOUU2N0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODBENjU3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDZDQUExOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTAxMjE5RUUwOUIyMDAxODVFQjAwOTc4M0M3RUEwMDIxOUEyMDAxMDEyMTlFRTA5QjIwMDE4N0VBMDAzMTlBMjAwMTA3RUEwMDIxOUEyMDAxMDEyMTlFRTA5QjIwMDE4NUVCMDA5NzgxNDdFNjgwQTgyN0E2QzAwRkYxMjFBOTMyRTI0MDEwMEE1RDk5RTgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOUU2N0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxN0U2ODBEQUQ3QTZDMDBGRjEyMUE5MzdFMjQ4MDAwN0UxMTA5MEIwMDdFQTAwMjE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwOTBCRUIwOTA3ODFGNkNBQTE5QTIwMDEwMTIxOUVFMDlCMjAwMTg1RUIwOTA3ODBEN0U2ODBBODI3QTZDMDBGRjEyMUE5MzgwMjA3RTY4MEE4QjdBNkMwMEZGMTIxQTkzMTIxQTA4MzAwOTBGN0VBMDAyMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5QTIwMjE4QjczMDE3MDMwMjE5M0JDMjhBMTIxOTIyN0UyNDgwMDA3RTExMDk2Q0FBMTlBMjAwMDQxMjE5RUUwQjAwN0VBMDA4MTlBMjAwMTAxMjE5RUUyMDhCM0UyMDg5M0I3RUEwMDgxOUEyMDAwNDA5QTIwMDEwNEVBMDAyMTlBMjAwMTAxMjE5RUUzMDhCMjMzMDg5MjAwOUEyMDAxMDVFQTBGRDE5QTIwMDEwMTIxOUVFN0VBMDAwMTlBMjAwMDQxMjE5RUUyMDhCMDUyMDg5MDI4MDFBMTIxQTA4MzAwOTE0N0VBMDAyMTlBMjAwMTAwMDAwNUVBMEZEMTlBMjAwMTAwMDAwODBFQzJFMjQwMTAwQTVEOTg5MDIxOTNCMjAxN0ZBMTIxMzhBMTIxOTIyN0UyNDgwMDA3RTExMDkwQjAwMjA4OTI2N0VBMEZGMTlBMjAwMDQxMjE5RUU3RUIwNTUxOUIyMDAwMDEyMTlFRTMwODkwRjdFQTAwMDE5QTIwMDA0MTIxOUVFMjA4OTAyODAyNjEyMUEwODMwMDkyMDdFQTBGRjE5QTIwMDA0MTIxOUVFN0VCMDU1MTlCMjAwMDAxMjE5RUU3RUEwMDAxOUEyMDAwNDEyMTlFRTgwRTAyRTI0MDEwMEE1RDlBODAyMTkzQjdFMjQ4MDAwN0UxMTA5N0VBMDA4MTlBMjAwMTAxMjE5RUUyRTI0MDEwMEE1RDlFRjIyMzAwQTE5N0U2ODBERjU3QTZDMDBGRjEyMUE5M0QyMDkxMjE5RUUxMjE5RUUxMjE5RUUwMjBGMTAzMDE3MUM3RTY4MEU2RjdBNkMwMEZGMTIxQTkzN0U2ODBFOTE3QTZDMDBGRjEyMUE5MzEyMUIzQzAyMTlFNjBCMDA3RTc4MTlBMDdBN0MwMEZGN0Y2NzdBNkMwMDAwN0U3MDNFN0U3QkIwN0E2QkIwMEI3QzBCNkNBNURGRjM3RTc4MTlBMDdBN0MwMDAwODk3ODdFNzgwMDAwN0E3QzAwRkU3RTY4N0ZCRjdBNkMwMEZFNzRBQTM5Qjc1NTU1NzQ1NTM5QjcyQUFBNzRBMDM5Qjc1NTU1NkM5OTdBNkI5MDdFNTQyNzEwN0U2QjgwQkM4OTY4MDgxQjU0NzhGNThBRkYxOURFOEFGRjE5RTYxMjFBMDg3RTZCODA4MEZCN0UxMEZGMTIxQTg1ODBGOENBRjk3RUY0MDBGRjFCRjQ3OEZDREFGOTIyQ0FGOTdFRjQwMDAwMUJGNDc4RkNEQUY5MjIyMDA5MTlEMjBBMTIxOUZCQzI5NUQyOTQxMjE5RkIxMjE5RkIxMjE5RkIxMjE5RkI0MzkwMzAyMkNBMEI3RTEwMDM3QzMwNkMyMjBCMjA5RTMwMEE1MEY5MkUzMDBCMUIyMDY4MTgxMjE5RkIxMjE5RkI1MzkwQ0YxMjE5RkIxMjE5RkIxMjE5RkI0MzkwMzBBNURBRTgxMjE5RkIxMjE5RkIxQjMwNjgxOTEyMTlGQjEyMTlGQkMyOTVEMjk0MTIxOUZCMTIxOUZCMTIxOUZCNDM5MDMwQTVEQkU3N0UyMDBBMTIxOUZCQTVEQUZBQTVEOUE3REEwQjIyMjAwOTBBMTIxOUZCQjI5NDEyMTlGQkIyOTQyMjMwMTczMjIwMDkyRkNBMkJDQTdCN0U3ODgwMDA3QTdDMDBGRTEyMUIxQzdFNkJBMDVDQUE2ODEwMjlCNzAwMTQ1NDYwNjhGODM5QTcwMDAwMEI2QzgwRTkxMjE5RUVEMkI1REE3QkRBMkIyMjEyMUFENDdFNjgwMDBCMTIxQTkzMjJDQTU5Q0E1QjdFQjQwMDBCN0NCOEM0MTIxQjA0N0NCODEyMUIwNDdDQjlDNDEyMUIwNDdDQjkxMjFCMDQ3RUIwNjg3QUI5QjAwQkI0NkNCQjdBQjlCMERBNTlEQTVCMjI1RUIwMEY3Q0FCOUVBMDBBNDAwNTJFQjAzNzgwMDMyRUIwMzA3QUI5QjAwQkI0MjJDMkI1QzI5MjEyMTlFRTc0ODAzOUI3MDAwQzdFNTQwMDA2MzlBNzAwMDQzOUI3MDAwMDc0MDMzOUI3MDAwQzIyN0U3ODAwMDA3QTdDMDBGRjdFNTgwMDAwN0E1QzAwMDE3RjY1N0U3NDIwMDAxMjA4RDY0MDU0N0U3ODdDMDA3QTdDMDBGRjdFNTgwMDAwN0E1QzAwMDE3RTY4N0MwMDdBNkMwMDAxN0U3NDA0MDAxMjA4RDY0MDMzNzQ4MDEyMUJCMTQwMkM1MzkwQ0ZEMjA4N0UwNDAwMDg3RTE0MDAwMDg0QTVEQkZDQTVEQUY5QTVEOUY2NzQ0MDEyMUJCMTQwMEU3RTY4MEVDMDdBNkMwMEZGMTIxQTkzMDIxOUU2QzI5NUQyOTQ4MEZFRjUwQTdFNzgwMDBBN0E3QzAwMDA3RTY4N0ZCRjdBNkMwMDAxN0U3NDAwMDEwMjA4RDZEMgorOjAwMDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0LzQgQmluYXJ5IEltYWdlCisvLyogR2VuZXJhdGVkIGJ5IEhFWDJDIHYxLjA2CisvLyogQ29weXJpZ2h0IChDKSAxOTk4IEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy8vKglpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorLy8qCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisvLyoJKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VkZ2Vwb3J0L2Jvb3QyLkgxNiBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Jvb3QyLkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjE0Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvYm9vdDIuSDE2CkBAIC0wLDAgKzEsMjggQEAKKzowMDA0MDAwMDAwMDIwMDAwMDNGNworOjAwMDIwMDAwMDQwMEZGRkIKKzowMDA2MDAwMDAwMDIwMDgwMDIwMDAzNzMKKzowMDAzMDAwQjAwMDIwMDBCRTUKKzowMDAzMDAxMzAwMDIwMjU2OTAKKzowMDAzMDAxQjAwMDIwMDFCQzUKKzowMDAzMDAyMzAwMDIwMDIzQjUKKzowMDAzMDAyQjAwMDIwMDJCQTUKKzowMDAzMDAzMzAwMDIwMDMzOTUKKzowMDAzMDAzQjAwMDIwMDNCODUKKzowMDAzMDA0MzAwMDIwMDQzNzUKKzowMDAzMDA0QjAwMDIwMDRCNjUKKzowMDAzMDA1MzAwMDIwMUY1QjIKKzowMDAzMDA3QjAwMDIwMDdCMDUKKzowMjE2MDA4MDAwN0VCMzkxMDEyMEUzMEM3RUIzM0ZGMjU0RkU3QUIzM0ZGMjgwMEE3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjc0MDA3QUIzOTEwMDc0MDE3QUIzOTExMjdFRjgwMDI0N0UwMDAxN0UxMDAwMTIwOUQwNjkyMDAwMEE1RTQwMUZCRTI0MDAwMDc4MDk3RTAwMDM3QTAzOTAwMDgwMDc3RTAwMDI3QTAzOTAwMDc1QjBERjdFMDAwMTdBMDM5NDAwN0EwMzAxMjQ3RTAwMDE3QTAzOTMwMDdFMDAwMEE1RDhGRDc1QTgwMDc1QjEwMENBMjkxMjBDNjYxMjBDMzdGNTIxN0FBMTIwMjAwOTA4MjAwQTBBN0VCMDBDODAwODdFQjAwMDgwMDM3RUIwMDg3QUIzOTIwMDEyMDI5NkRBMjk3NDEwN0FCMzkxMDE3RTIwMDQ3Q0IyQzJENzEzMTMxMzEzN0FCMzkxMDA3NDAwN0FCMzkxMTA3NDYwN0FCMzkxMUM3NDAyN0FCMzkxMTJBNURBREY3NDAwN0FCMzkxMDA3NDYwN0FCMzkxMUM3NDEwN0FCMzkxMDY3NDEwN0FCMzkxMDc3NDM0N0FCMzkxMTM3NDNGN0FCMzkxMTQ3NDAyN0FCMzkxMDY3NDAxN0FCMzkxMDc3NDAzN0FCMzkxMDY3NDQ0N0FCMzkxMDc3NEVGN0FCMzkxMDQ3NDA3N0FCMzkxMDY3RUIzOTEwNzdBQjEwQTc1MDkwMUQyQUFEMkFGRTQ3RTYwMDI0RDIyNzgwMzdFNjAwMzdDNzY3RTA0MjgwMDhERUYxQjA0NzhGQTA0N0UyMDA3N0EyMzkxMDY3RTIzOTEwNzdFMzEwQUJDMzI2ODIyN0EyMTBBN0UyMTA5NjgxN0NBQjg3NDAzN0FCMzkxMDY3RUIzOTEwNzQ0MDI3QUIzOTEwN0RBQjg3NTA5MDAzMEUwQzE2QzY3N0E2MzkwMDA4MEI5QkVCMDAyMjJDMEQwNzUwOEZFMTIwQUMwNzQwMjdBQjM5MTA2NzQwMDdBQjM5MTA3NzQwMzdBQjM5MTA2NzQwMDdBQjM5MTA3NzQwMjdBQjM5MTA0N0VCMzNGRjIzMEUwMDg3NDE4N0FCMzkxMDE4MDA2NzQxMDdBQjM5MTAxNzQxMDdBQjM5MTA0MDIwMjM2NzUwOEZGMTIwQUMwNzQwMTdBQjM5MTA0NzQwMzdBQjM5MTA2N0VCMzkxMDc1NEZDN0FCMzkxMDczMkNBQjg3NTA4MDIxMjBBQzA3RUIzOTEwMzIwRTUwODMwRTAyQjEyMDI5RTgwRjE3RUIzOTEwNDMwRTAwNURBQjgwMjAyMzkzMEUxMDVEQUI4MDIwMUY1MzBFNjA1MTIwNDAzODBENTMwRTIwNURBQjgwMjAwODA4MENCREFCODMyNkQKKzowODJBMDI5NjAwRTQ3QUIzM0ZGMTAyMDM0MUNBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQjc0MDA3QUIzOTEwMDdFQjMwMTJFQjQwMDAyODAxQ0I0MDExOTdFQjM5MTE0NTQxNDY4MDUxMjAzMDU4MDIzN0VCMzkxMTQzMEU1MUMxMjA0NDM4MDE3N0VCMzkxMTQzMEU1MDUxMjA0NDM4MDBCN0VCMzkxMTQ1NDE0NjgwMzEyMDMwNURBRUJEQTdCREE2QkRBNUJEQTRCREEzQkRBMkJEQTFCREEwQjIyMjBFNDE5NzUwODBBMTIwQUMwN0VCMzAxMkQ3MDBBN0VCMzAxMkVCNDAxMUYwMjAzOUQwMjA5OEI3NTA4MEIxMjBBQzA3NDE0N0FCMzkxMTQ3RUIzMDEyRUI0MDIwQzEyMDM0RDAyMDM0MTc0MDQ3QUIzOTExNDIyN0UwMDAwN0EwMzAxMkU3QTAzMDEyRjIyN0VCMzAxMjU1NDYwNjAwNUI0NDAxRTgwMUM3RUIzMDEyNkI0MDUxNTc1MDg3MTEyMEFDMDdFQjMwMTI4N0VBMDAxN0FBMzkxMDY3QUIzOTEwNzIyNzQwMDdBQjM5MTAwNzQxMDdBQjM5MTEyMjJCRTU3MDEyQjI4MDQ3RTU3MDEyQjdBMEYwMTMxN0E1NzAxMzU3NDEwN0FCMzkxMTIyMjc0MDA3QUIzOTEwMDdFQjM5MTFBNzA1MzdFQjM5MTE0MjBFNDRDN0VFRjAxMzE3RUY3MDEzNTdFMDcwMTM1NEQwMDY4MjE3RTAwMDBFMDdBQjM5MTE3QTNBNTA4MUJGNDY4MDZBNUI4MTBGMDgwMTk3RUIwMDA3QUIzMDEyRUJFMDAxMDY4MEQ3RUIwMDA3QUIzMDEyRTc0ODA3QUIzOTExRTdBRUYwMTMxN0FGNzAxMzU3NTA4MDYxMjBBQzA3NDA0N0FCMzkxMTQyMkNBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQjc1MDgwMzEyMEFDMDc0MDA3QUIzMDEyRDc0MDA3QUIzOTEwMDc0MDE3QUIzOTExMjEyMDRCMkRBRUJEQTdCREE2QkRBNUJEQTRCREEzQkRBMkJEQTFCREEwQjIyNzUwODAzMTIwQUMwN0VCMzAxMkZCNDAyMTE3NDAwN0FCMzAxMkY3QUIzMDEyRTc0MjA3QUIzOTExNDIyQjQwMTQ2N0VCMzkxMDQyMEU2NDI3RTIzOTExQTdDMzI3RTEzMDEzMDJDMjE3QTIzMDEzMDdFMDAwMDJFMDQwMTM3N0VCMzkxMTY3QTA5QjAwQjA0QTVEQkY0NzQyMDdBQjM5MTE0NzUwODcwMTIwQUMwN0VCMzAxMzA3RUEzMDEyQ0JDQUI3ODAzMTIwNTUyMjIwMjA5OEJEQTU5MDIwNDE1NzRFMDdBQjM5MTAwN0UwMzkxMTA3RTEzOTExMTdFMzM5MTEyN0UyMzkxMTM3RTUzOTExNDdFNDM5MTE1N0U3MzkxMTY3RTYzOTExNzdBMEYwMTI1N0ExRjAxMjk3NTA4MDQxMjBBQzA3QTAxMDgxMjBBQzA3QTExMDgxMjBBQzA3QTIxMDgxMjBBQzA3QTMxMDgxMjBBQzA3QTQxMDgxMjBBQzA3QTUxMDgxMjBBQzA3QTYxMDgxMjBBQzA3QTcxMDgxMjBBQzA3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMDQxMjA1MjYyMjZEMDA3RTE0MDEwMjdBMDcwMTM1N0EwMzAxMzA3RUIzMDEyNTIwRTcwRjdBMjMwMTJGN0EzMzAxMkVCRTA3MDEyQjY4MDkyMjdBMzMwMTJGN0EyMzAxMkU3RUIzMDEyNTU0RTMyMzIzMzBFMDAyRDJFNTMwRTcwMkQyRTQzMEU1MDYzMEU0MDMwMjA5OEI1NDNFRjVGMDAzNTQxRkMzMjVGMDkwMDU3RTc1ODRGRjczMDIwNzM5MDIwNUM2MDIwN0QyMDIwN0VEMDIwNkQwMDIwNjVCMDIwODFFMDIwODFFMDIwODIxMDIwODIxMDIwODIxMDIwODIxMDIwODIxMDIwODIxMDIwODIxMDIwODIxMDIwODI3MDIwOEY5MDIwODI0MDIwODI0MDIwODI0MDIwODI0MDIwODI0MDIwODI0NzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDA2MkE3RUIzMDEyNzYwNzk3QzBCN0UxMzAxMjg3RTE3MDEyOTc1MDg3MjEyMEFDMDdBMDEwODEyMEFDMDdBMTEwODEyMEFDMDEyMDlEMDQwNTgwMjAzODRCNDA4MUM3NTA4NzQxMjBBQzA3RUIzM0ZGMTdFMDgwMTM3N0EwQzAwMDA3QTBCQjA3RTU0MDAwMTAyMDM4NEI0MDAzMzc1MDg3NTEyMEFDMDdFMDgwMTM3N0EwQzAwMDBDQTBCN0VCMzNGRjIzMEUwMDc3NDAyN0EwQkIwODAwNTc0MDA3QTBCQjAwQjE0NzQwMDdBMEJCMDdFNTQwMDAyREEwQjAyMDM4NDAyMDk4Qjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzdFQjMwMTI2QjQwMDVGNzUwODc2MTIwQUMwN0VCMzAxMkE1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMDEyQTIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjM5MTExMzBFMDA0NzQwMTgwMDI3NDAwN0UwODAxMzc3QTBDMDAwMENBMEI3QTBCQjAwQjE0NzQwMDdBMEJCMDc0MDA3QUIzOTEwMDdFNTQwMDAyREEwQjAyMDM4NDAyMDk4QjdFQjMwMTJBNTQwRkI0MDIwNTdFQjA2MDgwMTdCNDAwMDU3RUIwMDA4MDBGN0VCMzAxMkEyMEU3MDU3RUIwNDA4MDAzN0VCMDIwN0FCMzkxMDA3RUIzMDEyOEI0MDAyNjdFQjMwMTI2QjQwMTBFNzUwODc3MTIwQUMwNzQwMTdBQjM5MTEyODAxQkI0MDMwRTc1MDg3ODEyMEFDMDc0MDE3QUIzOTExMTgwMEE3NDAwN0FCMzkxMDAxMjA5OEIyMjc0MDA3QUIzOTEwMDAyMDM3NzdFQjMwMTI2QjQwOTFGNzUwODc5MTIwQUMwN0VCMzAxMjhCRUIzM0ZGMTY4MERDQUI4MTIwMUYxREFCODUwNzY3QUIzM0ZGMTgwNkRCNDA1MDg3NTA4N0ExMjBBQzA4MDYyQjQwMzE5NzUwODdCMTIwQUMwN0VCMzAxMjhCNDAxNTU3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjgwNDZCNDAxMTk3NTA4N0MxMjBBQzA3RUIzMDEyOEI0MDEzOTdFQjMzRkYyNTRGRTdBQjMzRkYyODAyQUI0MDcyQTdFQjMwMTI3NjAyNDdDMEI3RTEzMDEyODdFMTcwMTI5NzUwODczMTIwQUMwN0EwMTA4MTIwQUMwN0ExMTA4MTIwQUMwMTIwQTBBNDAwMzAyMDM3NzAyMDk4QjdFQjMwMTI2QjQwQkY2NzUwODdEMTIwQUMwN0VCMzAxMjg3RUEzMDEyQTRDQUI3OEU0ODBERjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzdFQjMwMTI2QjQwQUNGNzUwODdFMTIwQUMwN0VCMzAxMjg3MEMzN0UwODAxMzc3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDIwMzg0MDIwOThCMDIwOThCMDIwOThCN0VCMzAxMjZCNDA0MjA3NTA4QzMxMjBBQzA3RTA0MDAwMTdFMTcwMTI3N0UxODAxMzc3QTFDMDAwMDdFNDcwMTJCMTIwQUNDMDIwOEYzQjQwNjQyNzUwOEMxMTIwQUMwN0U1ODAwMDA3QTVDMDBGRTdEQ0E3RUQ3MDEyNzdFNzgwMTM3N0E3QzAwMDA3RTc3MDEyQjc1MDhDMTEyMEFDMEMwQThDMkFGN0U0MDAxN0E0Mzk0MDAxMjBCNjM3RTQzMDEyNDdBNDM5NDAwRDBBODQwNjU4MDYwQjQwMDI0QzJBRjdFQjAwMTdBQjM5NDAwN0FCMzAxMjQxMjAzNzdFNDhERUY4REVGOERFRkQ1RTBGN0MwRDFDQTAyRkZDQTA2MDAwMDMyQjQwOTIwNzQwMzdBQjM5MTA2N0UyMzkxMDc3RTU3MDEyNzRENTU2ODA1NEUyMDAyODAwMzVFMjBGRDdBMjM5MTA3ODAxNkI0MDcxNkMyQUY3RTA3MDEyOTdFMTcwMTI3QzBEMUNBMThDQTM4Q0EyODMyMDIwMzc3MDIwOThCNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzAxMjZCNDAzMTU3NTA4QzIxMjBBQzA3RTA0MDAwMTdFMTcwMTI3N0U1NzAxMkIwMjAzODRCNDA1NDE3NTA4QzAxMjBBQzBDMEE4QzJBRjdFNDAwMTdBNDM5NDAwN0UwODAxMzc3QTBDMDAwMDdFMjQwMEZFN0UzNzAxMjc3RTQ3MDEyQjEyMEFDQzdFNDMwMTI0N0E0Mzk0MDBEMEE4N0UwODAxMzc3QTBDMDAwMDdFNTcwMTJCMDIwMzg0QjQwMTIwN0UwMDAwN0UxMDAxNzUwODcyMTIwQUMwN0EwMTA4MTIwQUMwN0ExMTA4MTIwQUMwMTIwOUQwNDAwMzAyMDM4NDAyMDk4Qjc1MDgwNzEyMEFDMDdFQjAwMjdBQjM5MDAwNzQwMDdBQjM5MTAwNzQ0MDdBQjM5MTE1NzQwMTdBQjM5MTExN0VCMzkxMTU1NDYwQkVCMDQwNjgwODc0MjA3QUIzOTExNTgwRUQ3NDAxN0FCMzkxMTI3NDA0N0FCMzkxMTQ3NEZGN0FCMzAxMkQyMkMwQThDMkFGN0U0MDAxN0E0Mzk0MDAxMjBBNTc0MDFGN0UwODAxMzc3QTBDMDAwMENBMEJDQTQ5MTIwQUNDREE1OURBMEI3RTQzMDEyNDdBNDM5NDAwRDBBOEMzMjI3RTQzMDEyNDdBNDM5NDAwRDBBODIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyMEE1NzQwMzE3RTU4MDAwMDdBNUMwMEZFN0Y2MTdFNzgwMTM3N0E3QzAwMDA3RTc3MDEyQkJENzQ3ODE3NzUwOEMxMTIwQUMwMTIwQjYzNDAwQzdFNDMwMTI0N0E0Mzk0MDBEMEE4QzMyMjdFNDMwMTI0N0E0Mzk0MDBEMEE4RDMyMjdFMjQwMEZFN0UzNDdGQ0EwQjFBNTBDNUYwN0Q2MjdENzU3RDg3N0UzNDdGMDM3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMjQ4Cis6MDA0MDdGQzAwMDQwMDEwMjAwRDczMTAyMDAwMzAwMDA3QzAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMTdGMDAwMDAwMDAwMDAwNDQKKzoxMDQzMEFDMDAwQ0EwODdFMDEwODdBMDMzRkYwREEwODIyODA1MDBCMUE2MDBCMzUwQjFBNzAwQjM1MEIxQTgwMEIzNTBCMUE5MDBCMzUwQjFBQTAwQjM1MEIxQUIwMEIzNTBCMUFDMDBCMzUwQjFBRDAwQjM1MUIwQTYwMEIxNTFCMEE3MDBCMTUxQjBBODAwQjE1MUIwQTkwMEIxNTFCMEFBMDBCMTUxQjBBQjAwQjE1MUIwQUMwMEIxNTFCMEFEMDBCMTU5RTQ0MDAxMDUwQUEyRTQ0MDAxMDY4MEU3RTFCQzA3QTBCQzAwQjE0MEIzNDFCNDQ3OEYyMjI3RjZGN0ZGMDFCRkM3QzU0N0QzMjgwMDhDQTFCQ0ExQkNBMUJDQTFCOUU0NDAwMTA1MEYyMkU0NDAwMTA2ODA2Q0E0ODFCNDQ3OEZBN0ZGNjg5RTRDQTZCNUVENDAwM0Y2ODIwN0U4NDAwNDA5RDhEREE2QkJEODczODE2Q0E3OTdENzgxMjBCOEREQTc5NDAwODlENzg2ODAyODAwNUMyRDcyMkRBNkI3RUMwMDM3RUQwMDA3QUQzOTAwMDc0QUEzOUI1NTU1NTc0NTUzOUI1MkFBQTc0QTAzOUI1NTU1NTdFMDQwMDQwOUQ3MDUwMDYyRDcwN0QwNzZENzc3QzMxN0U3QjAwN0E2QjAwMEI3QzBCNkNBNUQ5RjM3RjE2MUIxQzdFNTQyNzEwN0UxQjEwQkMxMDY4MDYxQjU0NzhGNTgwMkY2RDAwN0MyMDdGMTY5RjEwN0YyNzlGMjA3RTJCMDA3RTFCMTBCQzAxNzgxOTBCMkMwQjFDQTVEQkVGN0NCNjIwRTAwNjZDREM3QUQzOTAwMDRENzc3ODkwQzJENzIyRDJENzIyMDAwNDAwMDQwMDAwMDYwNDAyMDQwMDAyMDEwNDAxMDIwMDAwMDAwMDAwMDAwMDAwMDIwMjAyMDIwMjA0MDAwODEwMDIxMDA0MDIwODAwMDEwMTA4N0UxODdGQkQ3QTFDMDBGRjBCMUEwMDVFMTAxRkJFMTAxNDM4MUEwQTUxMjM3RTE4MEMwRDdBMUMwMEZGMkQzNTBCMUE1MDYwMDhBNUI4MDIwMzRFQTAwODIyODBGRTdFRTg3RkJGN0FFQzAwRkZFMEY1MjM1NEMwNjgzODdFRTg3RkJFN0FFQzAwRkZFMDYwMkUxMjBDMzdGNTIxN0FBMTIwMjAwOTBDMjAwQTEyN0VCMDBFN0FCMzkyMDA4MDEwN0VCMDAyN0FCMzkyMDA4MDA3N0VCMDBBN0FCMzkyMDA3QUIxMEQwMjBDQzQyMjdFQjAwMjdBQjM5MDAwMTIxOTBDN0VCMDAzN0FCMzkwMDAxMjE5MEM4MEVBQzJBRkMyMTFDMjEyNzVCMERGN0UwMDAxN0EwMzkzMDA3RTAwMDA3QTAzOTAwMDZDMDA3RTEwMDMxMjBDRjU3RTY4MkM2NjdBNkMwMEZGMTIxOUM0MEIwMDgwMzIwMjFBNkUyMDExMkI3RUIwMDE3QUIzOTAwMDEyMTkwQzdFQjAwMzdBQjM5MDAwMTIxOTBDN0VCMDAyN0FCMzkwMDAxMjE5MENBNUQ5REM3RUIwMDA3QUIzOTAwMDEyMTkwQzIyN0U2ODJDRjk3QTZDMDBGRjEyMTlDNDdFRTQxMDAwN0U0MDU1N0FFOTQwMEJFNDdFNTBBQTdBRTk1MDFCRTRCRUU5NDA2ODE5N0U2ODJDREY3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTExMzdBRTk0MDdFRTkxMDgwRjg3RTY4MkNEQTdBNkMwMEZGMTIxOUM0MEIwMDdFNjgyRDNEN0E2QzAwRkYxMjE5QzQ3RTc4MDAwMDdFNzAwRTdFQTRGRkZGN0VCNEJGRkY3RENCMEVDNDdEREM1RERCNkNCQjdERkE1RUY0N0ZGRjdBN0JCMDBCQjA3REZCNUVGNDdGRkY3QTdCQjAwQkIwN0RGQzVFRjQ3RkZGN0E3QkIwMEJCMDdERkQ1RUY0N0ZGRjdBN0JCMDZDQkI3REZBNUVGNDdGRkZCRTdCQjA3ODQxMEJCMDdERkI1RUY0N0ZGRkJFN0JCMDc4MzQwQkIwN0RGQzVFRjQ3RkZGQkU3QkIwNzgyNzBCQjA3REZENUVGNDdGRkZCRTdCQjA3ODFBMEJCMEJFQzRGRkZFNzg5MjBFQjRBNURGOEI3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODA3N0NBNUJDQTZCN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDdFNjgyRDhGN0E2QzAwRkYxMjE5QzQwQTQ3MTIxOUZBN0U2ODJEREU3QTZDMDBGRjEyMTlDNDZDNzdEQTZCQ0E2QjBCNzAwRUM0QkVDNEZGRkY3OEY2MUI3MDBBNDcxMjE5RkExMjE5MTkzMDExMzBEQTZCREE1QjZDQkI3RTc4MDAwMDdERkE1RUY0N0ZGRjdBN0JCMDdERkI1RUY0N0ZGRjdBN0JCMDdERkM1RUY0N0ZGRjdBN0JCMDdERkQ1RUY0N0ZGRjdBN0JCMDgwRDQ3RTY4MkQxQjdBNkMwMEZGMTIxOUM0MzAxRjBFN0U3ODA0MjA3QTdDMDAwMDdFNDQ3QkUwODAwQzdFNzgwMDAwN0E3QzAwMDE3RTQ0ODAwMDBCMDA3RTQwM0E3QzU0N0Y1NzdEODQ2QzY2N0E1QjUwMEI1QzBCNTBBNURFMDIwQjUwMUI4NDc4RjA3QzU0N0Y1NzdEODQ2QzY2QkU1QjUwNzgxQTBCNUMwQjUwQTVERTAyMEI1MDFCODQ3OEVFN0U2ODJDREE3QTZDMDBGRjEyMTlDNDgwNEI3RjQ1N0U2ODJDREY3QTZDMDBGRjEyMTlDNDdFNjgyRDVGN0E2QzAwRkYxMjE5QzQ3RDRCMTIxOUZBN0U2ODJENzQ3QTZDMDBGRjEyMTlDNDZDODg3Qzk1MTIxOUZBN0U2ODJEODI3QTZDMDBGRjEyMTlDNDdFNEI5MDEyMTlGQTEyMTkxOTMwMTEwNTdFNEI5MDgwRkI3RTY4MkUyODdBNkMwMEZGMTIxOUM0MEIwMDdFQjA4MDdBQjM5MTAwN0VBMDU1N0FBMzkxMTA3RUIzOTEwNzdFQjM5MTEwQkNBQjc4MjA3RUEwQUE3QUEzOTExMDdFQjM5MTA3N0VCMzkxMTBCQ0FCNzgwRDdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQ4MDFCN0U2ODJDREY3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwQTdBQTM5MTEwN0VCMzkxMTA4MEY2N0U2ODJFNEE3QTZDMDBGRjEyMTlDNDEyMTIzMTBCMDA3RUU0MTAwMDdFQTBBNUNBQTg3QUU5QTA3RUIwMzA3QUIzOTUwMDdFRTlBMDdFQjAwMDdBQjM5NTAwMTIxOTBDMEJFNTdFQjAyMDdBQjM5NTAwN0VFOUIwN0VCMDAwN0FCMzk1MDA3RUU5QjBEQUE4QkNBQjc4MEQ3RTY4MkNEQTdBNkMwMEZGMTIxOUM0ODAxRDdFNjgyQ0RGN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMEM3RUIwMzg3QUIzOTUwMDdFRTlCMDgwRkI4MDAwN0U2ODJERTQ3QTZDMDBGRjEyMTlDNDBCMDA3NUIwREY3RTI0ODAwMDA5QjIwMDA4QkVCMDAxNzgwQjA5QjIwMDE0QkVCMDYwNzgwMjgwMTc3RTY4MkNERjdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTExMDlCMjAwMDg4MEZBN0U2ODJDREE3QTZDMDBGRjEyMTlDNDdFNjgyRTA2N0E2QzAwRkYxMjE5QzQwQjAwNzVCMEVGMTIxOEZGN0UyNDgwMDA3RUEwNTUxOUEyMDAxQzdFQjAwMTE5QjIwMDA4MDlCMjAwMUNCQ0FCNzgzNzA5QjIwMDA4NUVCMEMwQkVCMEMwNzgyQjdFQTBBQTE5QTIwMDFDNkNCQjE5QjIwMDA4MDlCMjAwMUNCQ0FCNzgxNjA5QjIwMDA4NUVCMEMwNzgwRDdFNjgyQ0RBN0E2QzAwRkYxMjE5QzQ4MDFCN0U2ODJDREY3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwQTE5QTIwMDFDMDlCMjAwMUM4MEY2N0U2ODJFNkM3QTZDMDBGRjEyMTlDNDdFNjgyRUVFN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTdFQjAwMTE5QjIwMDFDMkUyNDAxMDAwQkIwQTVEOUYzN0UyNDgwMDA3RTExMjE3RUIwMDEwQjAwMDlBMjAwMUNCQ0FCNzgxNjdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQyRTI0MDEwMDBCQjBBNUQ5RTI4MDI1N0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNDdFMjQ4MDAwN0UxMTIxMDlBMjAwMUMyRTI0MDEwMEE1RDlGNTgwRUM3RTY4MkYxMjdBNkMwMEZGMTIxOUM0MTIxMjMxN0UyNDgwMDA3RTExMjEwQjAwNzQxMDE5QjIwMDEwMTIxMUFBMkUyNDAxMDBBNUQ5RUU3RTY4MkYzNjdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwRTQxOUIyMDAxMDEyMTFBQTJFMjQwMTAwQTVEOUVGMzAwMDAzMDIxNzNCMDIxMjZBNzQwNzE5QjIwMDA4MTIxOTBDMDlCMjAwMDAwOUIyMDAxNDA5QjIwMDAwMDlCMjAwMTQwOUIyMDAwMDA5QjIwMDE0MDlCMjAwMDAwOUIyMDAxNEMyMTM3RUIwNTUxMjEyMEI3RUIwQUExMjEyMEI3RUIwMDAxMjEyMEI3RUIwRkYxMjEyMEIzMDEzMEY3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MjI3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MjIxOUIyMDAwMDEyMThGRjA5QTIwMDAwQkNBQjc4MDEyMjIwMTEwM0QyMTMyMjEyMTkxOTE5QjIwMDAwMTIxOEZGMDlBMjAwMDA4MEYzNzVCMERGMTIxOEZGNzVCMEVGMTIxOEZGN0UyNDgwMDA3RTExMjE3NDgwMTlCMjAwMEM3RTU0MDAwMjE5QTIwMDA0MTlCMjAwMDA3NDAzMTlCMjAwMEM3NDA2MTlCMjAwMDgyRTI0MDEwMEE1RDlEQjIyN0U2ODJGNUE3QTZDMDBGRjEyMTlDNDdFMjQ4MDAwN0UxMTIxMEIwMDEyMThGRjA5QjIwMDE4N0VBMDU1MTlBMjAwMDAxMjE4RkYwOUIyMDAxODVFQjAwNTc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAxQTdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMDkxOUEyMDAwMDEyMThGRjgwRjcyRTI0MDEwMEE1RDlCNjdFNjgyRjdFN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDAxMjE4RkYwOUIyMDAxODdFQTA1NTE5QTIwMDAwMTIxOEZGMDlCMjAwMTg1RUIwMEE3ODBEN0U2ODJDRTc3QTZDMDBGRjEyMTlDNDgwMUE3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTA5MTlBMjAwMDAxMjE4RkY4MEY3MkUyNDAxMDBBNUQ5QjYzMDA0MDMwMjE1OUY3RTY4MkZBMjdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDBBNzgzQzdFQTAwMTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMEE3ODE0N0U2ODJDRTc3QTZDMDBGRjEyMTlDNDJFMjQwMTAwQTVEOTlFODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExRTY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MkZFQTdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDA1NzgzQzdFQTAwMjE5QTIwMDEwMTIxOEZGMDlCMjAwMTg3RUEwMDMxOUEyMDAxMDdFQTAwMjE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMDU3ODE0N0U2ODJDRTc3QTZDMDBGRjEyMTlDNDJFMjQwMTAwQTVEOTlFODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExRTY3RUEwMDExOUEyMDAxMDZDQUExOUEyMDAxMDgwRjE3RTY4MzAzMjdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjA1MEJFQjA1MDc4MUY2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjA1MDc4MEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBMjdFNjgzMDdBN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDAwOUIyMDAxODdFQTAwMTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwQTBCRUIwQTA3ODFGNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwQTA3ODBEN0U2ODJDRTc3QTZDMDBGRjEyMTlDNDgwMjA3RTY4MkNGMDdBNkMwMEZGMTIxOUM0MTIxOTE5MzAxMTBGN0VBMDAxMTlBMjAwMTA2Q0FBMTlBMjAwMTA4MEYxMkUyNDAxMDBBNUQ5OUU3RTY4MzA5RTdBNkMwMEZGMTIxOUM0N0UyNDgwMDA3RTExMjEwQjAwMjBCMTI2N0VBMDAyMTlBMjAwMTAxMjE4RkYzMEIxMTk2Q0FBMTlBMjAwMTAxMjE4RkYyMEIxMEQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0ODAyMDdFNjgyQ0YwN0E2QzAwRkYxMjE5QzQxMjE5MTkzMDExMEY3RUEwMDIxOUEyMDAxMDZDQUExOUEyMDAxMDgwRjEyRTI0MDEwMEE1RDlBRTAyMTczQjdFNjgyRkM2N0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMDY3ODNDN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAxMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwNjc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgzMDBFN0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA2Q0FBMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwMTIxOEZGMDlCMjAwMTg1RUIwMDk3ODNDN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODdFQTAwMzE5QTIwMDEwN0VBMDAyMTlBMjAwMTAxMjE4RkYwOUIyMDAxODVFQjAwOTc4MTQ3RTY4MkNFNzdBNkMwMEZGMTIxOUM0MkUyNDAxMDBBNUQ5OUU4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTFFNjdFQTAwMTE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTdFNjgzMDU2N0E2QzAwRkYxMjE5QzQ3RTI0ODAwMDdFMTEyMTBCMDA3RUEwMDIxOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDkwQkVCMDkwNzgxRjZDQUExOUEyMDAxMDEyMThGRjA5QjIwMDE4NUVCMDkwNzgwRDdFNjgyQ0U3N0E2QzAwRkYxMjE5QzQ4MDIwN0U2ODJDRjA3QTZDMDBGRjEyMTlDNDEyMTkxOTMwMTEwRjdFQTAwMjE5QTIwMDEwNkNBQTE5QTIwMDEwODBGMTJFMjQwMTAwQTVEOUEyMjAxRjY4MTIxMjMxMTIxN0E5N0UyNDgwMDA3RTExMjEwQjAwMjA4OTI2N0VBMEZGMTlBMjAwMDQxMjE4RkY3RUIwNTUxOUIyMDAwMDEyMThGRjMwODkwRjdFQTAwMDE5QTIwMDA0MTIxOEZGMjA4OTAyODAyNjEyMTkxOTMwMTEyMDdFQTBGRjE5QTIwMDA0MTIxOEZGN0VCMDU1MTlCMjAwMDAxMjE4RkY3RUEwMDAxOUEyMDAwNDEyMThGRjgwRTAyRTI0MDEwMEE1RDlBODAyMTdDMjAyMTg0QzdFMjQ4MDAwN0UxMTIxN0VBMDA4MTlBMjAwMTAxMjE4RkYyRTI0MDEwMEE1RDlFRjIyMzAxRjAzMDIxODRDQzI4QTEyMTdBOTBCMDAxMjE4MTYyMDhCMjQ3NDAzN0FCMzkxMDY3NDAyN0FCMzkxMDc3NDBDN0FCMzkxMDY3NDAwN0FCMzkxMDcxMjE5MEMzMDhCMDYxMjE4MTYzMDhCQUQxMjE5MTkzMDExQTcxMjE4MTY3NDAzN0FCMzkxMDY3NDAyN0FCMzkxMDcxMjE5MEMxMjE4MTY4MEU5N0VBMDAwNzQwMjdBQjM5MTA2N0FBMzkxMDc3NDAzN0FCMzkxMDY3QUEzOTEwNzEyMThGRjc0RUY3QUIzOTEwNDc0ODA3QUIzOTEwMzc0MEM3QUIzOTEwNjc0MDg3QUIzOTEwNzEyMTkwQzIyMzAxMjE5N0U2ODMwQzI3QTZDMDBGRjEyMTlDNEQyMTExMjE4RkYxMjE4RkYxMjE4RkYwMjBDQ0EzMDFGMUM3RTY4MzEzQzdBNkMwMEZGMTIxOUM0N0U2ODMxNUU3QTZDMDBGRjEyMTlDNDEyMUE2RTAyMThGNzBCMDA3RTc4MThCMTdBN0MwMEZGN0Y2NzdBNkMwMDAwN0U3MDNFN0U3QkIwN0E2QkIwMEI3QzBCNkNBNURGRjM3RTc4MThCMTdBN0MwMDAwODk3ODdFNzgwMDAwN0E3QzAwRkU3RTY4N0ZCRjdBNkMwMEZFNzRBQTM5Qjc1NTU1NzQ1NTM5QjcyQUFBNzRBMDM5Qjc1NTU1NkM5OTdBNkI5MDdFNTQyNzEwN0U2QjgwQkM4OTY4MDgxQjU0NzhGNThBRkYxOEVGOEFGRjE4RjcxMjE5MTk3RTZCODA4MEZCN0UxMEZGMTIxOUFDODBGOENBRjk3RUY0MDBGRjFCRjQ3OEZDREFGOTIyQ0FGOTdFRjQwMDAwMUJGNDc4RkNEQUY5MjIyMDExMjBEMjEyMTIxOTBDN0VCMDAyN0FCMzkwMDAxMjE5MEMxMjE5MEMxMjE5MEMxMjE5MEM3RUIwMDA3QUIzOTAwMDIyQ0EwQjdFMTAwMzdDMzA2QzIyMEIyMDlFMzAwQTUwRjkyRTMwMEIxQjIwNjgyMDEyMTkwQzEyMTkwQzdFQjAwMzdBQjM5MDAwMTIxOTBDMTIxOTBDMTIxOTBDN0VCMDAwN0FCMzkwMDBBNURBRTAxMjE5MEMxMjE5MEMxQjMwNjgyMDEyMTkwQzEyMTkwQzdFQjAwMjdBQjM5MDAwMTIxOTBDMTIxOTBDMTIxOTBDN0VCMDAwN0FCMzkwMDBBNURCRTA3RTIwMEExMjE5MENBNURBRkFBNUQ5OThEQTBCMjIyMDExMTQxMjE5MEM3RUIwMDE3QUIzOTAwMDEyMTkwQzdFQjAwMDdBQjM5MDAwMjIzMDFGMzIyMDExMkZDQTJCQ0E3QjdFNzg4MDAwN0E3QzAwRkUxMjFBNEQ3RTZCQTA1Q0FBNjgxMDI5QjcwMDE0NTQ2MDY4RjgzOUE3MDAwMDBCNkM4MEU5MTIxOEZGRDJCNURBN0JEQTJCMjIxMjFBMDU3RTY4MDAwQzEyMTlDNDIyQ0E1OUNBNUI3RUI0MDAwQzdDQjhDNDEyMUEzNTdDQjgxMjFBMzU3Q0I5QzQxMjFBMzU3Q0I5MTIxQTM1N0VCMDY4N0FCOUIwMEJCNDZDQkI3QUI5QjBEQTU5REE1QjIyNUVCMDBGN0NBQjlFQTAwQTQwMDUyRUIwMzc4MDAzMkVCMDMwN0FCOUIwMEJCNDIyQzJCNTc1QjBFRjEyMThGRjc0ODAzOUI3MDAwQzdFNTQwMDA2MzlBNzAwMDQzOUI3MDAwMDc0MDMzOUI3MDAwQzIyN0U3ODAwMDA3QTdDMDBGRjdFNTgwMDAwN0E1QzAwMDE3RjY1N0U3NDIwMDAxMjBCNjM0MDU4N0U3ODdDMDA3QTdDMDBGRjdFNTgwMDAwN0E1QzAwMDE3RTY4N0MwMDdBNkMwMDAxN0U3NDA0MDAxMjBCNjM0MDM3NzQ4MDEyMUFFQTQwMzA3RTAwMDM3QTAzOTAwMEQyMTA3RTA0MDAwODdFMTQwMDAwODRBNURCRkNBNURBRjlBNUQ5RjY3NDQwMTIxQUVBNDAwRTdFNjgzMThEN0E2QzAwRkYxMjE5QzQwMjE4Rjc3RUIwMDI3QUIzOTAwMDgwRkVGNTBCN0U3ODAwMEI3QTdDMDAwMDdFNjg3RkJGN0E2QzAwMDE3RTc0MDAwMTAyMEI2Mzc0Cis6MDAwMDAwMDAwMUZGCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisvLyogRWRnZXBvcnQvNCBCaW5hcnkgSW1hZ2UKKy8vKiBHZW5lcmF0ZWQgYnkgSEVYMkMgdjEuMDYKKy8vKiBDb3B5cmlnaHQgKEMpIDE5OTggSW5zaWRlIE91dCBOZXR3b3JrcywgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLy8qCWl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisvLyoJdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKy8vKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZWRnZXBvcnQvZG93bi5IMTYgYi9maXJtd2FyZS9lZGdlcG9ydC9kb3duLkgxNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTM2ZmUxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZWRnZXBvcnQvZG93bi5IMTYKQEAgLTAsMCArMSwyOSBAQAorOjAwMDQwMDAwMDAwMTEwMDAwNEU3Cis6MDAwMjAwMDAwNDAwRkZGQgorOjAwMDYwMDAwMDAwMjAwODAwMjQ0QjA4MgorOjAwMDMwMDBCMDAwMjQ0NzIzQQorOjAwMDMwMDEzMDAwMjAwMTNENQorOjAwMDMwMDFCMDAwMjAwMUJDNQorOjAwMDMwMDIzMDAwMjAwMjNCNQorOjAwMDMwMDJCMDAwMjAwMkJBNQorOjAwMDMwMDMzMDAwMjAwMzM5NQorOjAwMDMwMDNCMDAwMjAwM0I4NQorOjAwMDMwMDQzMDAwMjAwNDM3NQorOjAwMDMwMDRCMDAwMjZFQzQ3RQorOjAwMDMwMDUzMDAwMjc1OERBNgorOjAwMDMwMDdCMDAwMjAwN0IwNQorOjAwMDcwMDgwMDA3RTE0MDAwMDAyNDA1MTU0Cis6MDg4MjMwMDAwMDEyMzcyODEyMzAzRTEyMzA1NDEyMzBFNTEyMzE2ODEyMzUyMDEyMzg1ODEyMzExNTEyMzE0MDEyMzBBMDgwRTBFNTIzNjAxOTdFMTQwMDAwMDlCMTAxQ0ZCNDAwMDI4MDA1MTQxOUIxMDFDRkE1MEJCRTMxMkY3OEVCMjJDMkFGN0VCMzNGRjFCNDAxMEFDMEYxNzVGMTAyMTI3MEVGRDBGMUQyQUYyMkMyQUZFNTIyNjA0MzdFMDcwMUUxQkUwNDAzODAzODM5N0UwNDgwMDA3RTIwMDAxMzUwMjEwOUEwMDAwNDRFQTAwNTE5QTAwMDA0MEEzMjA5NTM2NzhFNUU1MTI3NjgwQjA5QTAwMDEwNEVBMDAxMTlBMDAwMTAyRTA0MDEwMEE1MEFCRTIxMkY3OEQxNzUyMjAwRDJBRjIyQzJBRjdFMjAwMDdFMzAwMTdDQjIyMzBBMkI0OTMyMDE4RkJFMzQwMDAwNjgxMjdFQjEyMUE1NEI3QUIxMjFDQTE5NDkyMjMwRDU5OTI0REExOTNFMzBBNTBBQkUyMTJGNzhENkQyQUYyMjQ2MEY0OTY3NENCRjUwMTc1MzZGNTZDNzVBMUY1RDc3QzJBRkU1MzI2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzEwMkRBQjhBNTBBQkUyMTJGNzhFRkQyQUYyMkNBMjgxMjY3QUJEQTI4NDAwOTBBMjIwOUIyNjc4RUY0NTIzMjIyQzJBRkU1MzQ2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzEzMkRBQjhBNTBBQkUyMTJGNzhFRkQyQUYyMkNBMjgwQTIyMDk0MjAwM0UxMjY5QzJEQTI4MjJDMkFGRTUzNTYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzMTVEREFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyQ0EyODdFNDAwMDEyNkM1QkRBMjgyMkMyQUZFNTIzNjAxNDdFMjAwMDEzNTAwN0NBQjgxMjMxODVEQUI4QTUwQUJFMjEyRjc4RUZEMkFGMjI3Q0IyMjMwQTJCNDkyMjMxOTA4OTI0MzFBMDMyMTAzMjgwMzJGMDMzNjAzM0QwMzQ0MDM0QjA3RTI3MDE4RkJFMjQwMDAwNzgyNDdFMjQ4MDAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNDkzMDdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMTlGNjgwRDdBMjcwMTlGN0U2MDlDN0E2MzAxQ0Y4MDJFN0U2MzAxQ0ZBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjE4NkMwMDdBMDMwMUNGQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTkxQkUyNDAwMDA3ODI0N0UyNDgxMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0Qzg4N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQTE2ODBEN0EyNzAxQTE3RTYwOUM3QTYzMDFEMDgwMkU3RTYzMDFEMEE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMTk2QzAwN0EwMzAxRDBDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTNCRTI0MDAwMDc4MjQ3RTI0ODIwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRGRTA3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBMzY4MEQ3QTI3MDFBMzdFNjA5QzdBNjMwMUQxODAyRTdFNjMwMUQxQTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxQTZDMDA3QTAzMDFEMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5NUJFMjQwMDAwNzgyNDdFMjQ4MzAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTMzODdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUE1NjgwRDdBMjcwMUE1N0U2MDlDN0E2MzAxRDI4MDJFN0U2MzAxRDJBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFCNkMwMDdBMDMwMUQyQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTk3QkUyNDAwMDA3ODI0N0UyNDg0MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1NjkwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQTc2ODBEN0EyNzAxQTc3RTYwOUM3QTYzMDFEMzgwMkU3RTYzMDFEM0E1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUM2QzAwN0EwMzAxRDNDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNzAxOTlCRTI0MDAwMDc4MjQ3RTI0ODUwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU5RTg3RDIxREExOTMwRTYxODdFNjAwMDgwMUVCRTI3MDFBOTY4MEQ3QTI3MDFBOTdFNjA5QzdBNjMwMUQ0ODAyRTdFNjMwMUQ0QTVCRTAwMjY3RTYwMDE3RUIwMDA3RUEwQzgxMjYyQjY0MDE4NzUzMUIzMTI3QzE1QzIxRDZDMDA3QTAzMDFENEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI3MDE5QkJFMjQwMDAwNzgyNDdFMjQ4NjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNUQ0MDdEMjFEQTE5MzBFNjE4N0U2MDAwODAxRUJFMjcwMUFCNjgwRDdBMjcwMUFCN0U2MDlDN0E2MzAxRDU4MDJFN0U2MzAxRDVBNUJFMDAyNjdFNjAwMTdFQjAwMDdFQTBDODEyNjJCNjQwMTg3NTMxQjMxMjdDMTVDMjFFNkMwMDdBMDMwMUQ1QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjcwMTlEQkUyNDAwMDA3ODI0N0UyNDg3MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI2MDk4N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxQUQ2ODBEN0EyNzAxQUQ3RTYwOUM3QTYzMDFENjgwMkU3RTYzMDFENkE1QkUwMDI2N0U2MDAxN0VCMDAwN0VBMEM4MTI2MkI2NDAxODc1MzFCMzEyN0MxNUMyMUY2QzAwN0EwMzAxRDZDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyQzJBRkU1MjQ2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzUzRERBQjhBNTBBQkUyMTJGNzhFRkQyQUYyMjdDQjIyMzBBMkI0OTIyMzU0ODg5MjQzNTU4MzU5MjM1Q0MzNjA2MzY0MDM2N0EzNkI0MzZFRTdFMjQ4MDAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNDkzMDdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjBDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgxMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0Qzg4N0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODIwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjRGRTA3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjIyQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MzAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNTMzODdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjNDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg0MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1NjkwN0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyNEMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODUwMDA5QjIwMDE0Q0FCODVFQjAxRURBQjg2ODBCQ0ExOTdEMTIxMjU5RTg3RDIxREExOTVFQjAwMTdFQTA5MDEyNjI5MzQwMTI3NTMxQjgxMjdDMTVDMjI1QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NjAwMDlCMjAwMTRDQUI4NUVCMDFFREFCODY4MEJDQTE5N0QxMjEyNUQ0MDdEMjFEQTE5NUVCMDAxN0VBMDkwMTI2MjkzNDAxMjc1MzFCODEyN0MxNUMyMjZDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg3MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI2MDk4N0QyMURBMTk1RUIwMDE3RUEwOTAxMjYyOTM0MDEyNzUzMUI4MTI3QzE1QzIyN0MwRjE3NUYxMDExMjZGRDlEMEYxMjJDMkFGRTUzMzYwMTQ3RTIwMDAxMzUwMDdDQUI4MTIzNzQ1REFCOEE1MEFCRTIxMkY3OEVGRDJBRjIyN0NCMjIzMEEyQjQ5MjIzNzUwODkyNDM3NjAzNzdGMzc5RTM3QkQzN0RDMzdGQjM4MUEzODM5N0UyNDgwMDBDQTE5N0QxMjEyNDgxQkRBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODEwMENBMTk3RDEyMTI0QjczREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4MjAwQ0ExOTdEMTIxMjRFQ0JEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDgzMDBDQTE5N0QxMjEyNTIyM0RBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODQwMENBMTk3RDEyMTI1NTdCREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMjdFMjQ4NTAwQ0ExOTdEMTIxMjU4RDNEQTE5MTAwNDAyODAwQ0QyMDFDMEYxNzVGMTAxMTI2RkQ5RDBGMTIyN0UyNDg2MDBDQTE5N0QxMjEyNUMyQkRBMTkxMDA0MDI4MDBDRDIwMUMwRjE3NUYxMDExMjZGRDlEMEYxMjI3RTI0ODcwMENBMTk3RDEyMTI1RjgzREExOTEwMDQwMjgwMENEMjAxQzBGMTc1RjEwMTEyNkZEOUQwRjEyMkMyQUZDMEYxNzVGMTAxQTkzMkYyMUE3RTA3MDFFMUJFMDQwMDAwNzgxMEU1RjUzMzgyRTc0MDA5ODUzMTMxMTI3QzE1NzVGNjAwRDBGMUQyQUYyMjQ3Cis6M0MxNTQwMDAwMDdFMDQwMDAxN0UxNDdGRjg3RTI0MDBGRTdEMzEwQjFBNTAxQjBBNTA3RTE0NDAxQjAyNDA2QTdFRjgwMDZGRDIwNEMyOTREMjk1N0VGNDQwMkMwMjQwN0MxMjdEMzBGNTJGN0FBMTMwN0ExMTZFMTI3NUNBMTI0MERDN0VCMzNGRjE2MDAzMTI0M0Q0NzVGMTAwMTI3NjZGRDJBRjAyMzAwMDdFMDQwMEZGN0UxODQwNUY3QTFDMDAwMTg5MThBOTI1ODcwM0E5RDU4N0QyOTM4OTA4N0UwNDAwRkY3RTE4NDA3ODdBMUMwMDAxODkxOEMyOTM4OTA4N0UwODAwMjA3RTQ0MDQwMDdFNDAwMDdFRTQ0MDhFMDI3QzMwN0UwODAxNkY3RTQ0Mjg3QzdFNDAwMDdFRTQ0MEEwMDI3QzMwN0UwODAwNkY3RTQ0MDEwMDdFNDA1MzdFRTQ0MEIyMDI3QzMwNzU2RDIwNzU2QzMwN0UwNDAwMDg3NTZBNTg3NTZCMDg3NTY3MDg3NTY5MDE3NTg5MDE3NThBMDE3NThDMDBEMjhDN0UwNDAwMDI3QTA1NTg4OUY0NzVCNzdGNzVCODdGNzVCMzA3NzVCMjA3RDJBOTIyRDI5MkU0RDVFMEZEQzI5MjdFMjQ4MDAwN0UxMTJGN0VBMDA4MTlBMjAwMTAyRTI0MDEwMEE1RDlGMjdFMjAwMDEyNDE3RTBCMjBCRTIxMkY3OEY2MjI3RTA0ODAwMDRDMDI3NEJGMTlCMDAwMEM3NDEwMTlCMDAwMDg3NDgwMTlCMDAwMEM3RTU0MDAwMjE5QTAwMDA0MTlCMDAwMDA3NDAzMTlCMDAwMEM3NDA3QTkyMDMwMEJBOTM1MzAwNUJFMjAwMTI4MDI3NDBGMTlCMDAwMDRBOTMzMzAxODc0QkYxOUIwMDAwQzc0MjhBOTIwMzAwMjc0MjAxOUIwMDAwNDc0MDMxOUIwMDAwQzc0QTcxOUIwMDAwODc0MEMxOUIwMDAxMDIyN0UwNDgwMDA0QzAyRTQxOUIwMDAwNDA5QjAwMDEwNTQwODE5QjAwMDEwNzRBNzE5QjAwMDA4MjI3Q0IyMjMwQTJCNDkyMjQxQTU4OTI0NDFCNTQxRDQ0MUYzNDIxMjQyMzE0MjUwNDI2RjQyOEVDMjEwQzIxOEMyMjBDMjA4N0UwNDA5RTM3QTA3MDE2RjdBMDcwMTdGNkQwMDdBMDcwMThGN0EwNzAxOUYyMkMyMTFDMjE5QzIyMUMyMDk3RTA0MERFMzdBMDcwMTcxN0EwNzAxODE2RDAwN0EwNzAxOTE3QTA3MDFBMTIyQzIxMkMyMUFDMjIyQzIwQTdFMDQxMUUzN0EwNzAxNzM3QTA3MDE4MzZEMDA3QTA3MDE5MzdBMDcwMUEzMjJDMjEzQzIxQkMyMjNDMjBCN0UwNDE1RTM3QTA3MDE3NTdBMDcwMTg1NkQwMDdBMDcwMTk1N0EwNzAxQTUyMkMyMTRDMjFDQzIyNEMyMEM3RTA0MTlFMzdBMDcwMTc3N0EwNzAxODc2RDAwN0EwNzAxOTc3QTA3MDFBNzIyQzIxNUMyMURDMjI1QzIwRDdFMDQxREUzN0EwNzAxNzk3QTA3MDE4OTZEMDA3QTA3MDE5OTdBMDcwMUE5MjJDMjE2QzIxRUMyMjZDMjBFN0UwNDIxRTM3QTA3MDE3QjdBMDcwMThCNkQwMDdBMDcwMTlCN0EwNzAxQUIyMkMyMTdDMjFGQzIyN0MyMEY3RTA0MjVFMzdBMDcwMTdEN0EwNzAxOEQ2RDAwN0EwNzAxOUQ3QTA3MDFBRDIyN0NCMjIzMEEyQjQ5MjI0MkI4ODkyNDQyQzg0MkU5NDMwQTQzMkI0MzRDNDM2RDQzOEU0M0FGMzA1MDA3MjA2ODA0QzIyODgwMTYzMDQwMDcyMDYwMDRDMjI4ODAwQzMwNDgwNzIwNTgwNEMyMjg4MDAyRDIyODIyMzA1MTA3MjA2OTA0QzIyOTgwMTYzMDQxMDcyMDYxMDRDMjI5ODAwQzMwNDkwNzIwNTkwNEMyMjk4MDAyRDIyOTIyMzA1MjA3MjA2QTA0QzIyQTgwMTYzMDQyMDcyMDYyMDRDMjJBODAwQzMwNEEwNzIwNUEwNEMyMkE4MDAyRDIyQTIyMzA1MzA3MjA2QjA0QzIyQjgwMTYzMDQzMDcyMDYzMDRDMjJCODAwQzMwNEIwNzIwNUIwNEMyMkI4MDAyRDIyQjIyMzA1NDA3MjA2QzA0QzIyQzgwMTYzMDQ0MDcyMDY0MDRDMjJDODAwQzMwNEMwNzIwNUMwNEMyMkM4MDAyRDIyQzIyMzA1NTA3MjA2RDA0QzIyRDgwMTYzMDQ1MDcyMDY1MDRDMjJEODAwQzMwNEQwNzIwNUQwNEMyMkQ4MDAyRDIyRDIyMzA1NjA3MjA2RTA0QzIyRTgwMTYzMDQ2MDcyMDY2MDRDMjJFODAwQzMwNEUwNzIwNUUwNEMyMkU4MDAyRDIyRTIyMzA1NzA3MjA2RjA0QzIyRjgwMTYzMDQ3MDcyMDY3MDRDMjJGODAwQzMwNEYwNzIwNUYwNEMyMkY4MDAyRDIyRjIyNDQzODQzRTVCRUIwMDI0MDAxMjIyMzBBNUI0OTU1NDNEMDk5NTREMzIyQTlDNTg3MTI0NDQzN0UwNDA1RTM3QTA3MDFENzdBMDcwMUQ5N0UwNDAxRTM3QTA3MDFERDdBMDcwMURGN0UwNDc0QUQ3QTA1NjE3NUYxMDE3NUUxMUY3NUU0MDQ3NUY0MDQ3NUYxMDI3NUUxMDM3NUU0MDQ3NUY0MDQ0M0EyMUMxMjQwRUI3RTIwMDAxMjQxOUEwQjIwQkUyMTJGNzhGNkQyQTgyMkE5RDU4NzEyNDQ0M0QyOTJDMkE4MjI3NUEzMDA1M0EyMDM3NUMxMDA1M0MwMDM3RTAwMDU3QTAxRjE0M0Y0ODA0M0U0ODBFNUYyNTQ3RjQ0MDhGNUYyRTVFMjU0N0Y0NDA4RjVFMjc1RTExMEE1RDhFMTIyQ0EwOTEyMzAyMDEwMDExMkQ1NjcxRTYzNjkwMTdFMDA2QTJFMDE2OUE1RTZGNTY3ODAxMjIwMDIxRTc1NjkwMDg1NkE2N0QyMDI3NDAwODAwRDMwMDIwRkMyMDI3RTAwNkMyRTAxNjlBNUU2NTM5MENGNDI5MERBMDkzMkMwRDBDMEQxQzBFMEMwRjBDQTBCQ0ExQkNBMkJEMjAxNzUzMTg5MTI3QzE1N0UxNDgwMDAwOUIxMDAwODIwRTAwMzAyNDU0RjIwNzg1QUE1MEEwOUIxMDAwODIwRTAwMzAyNDU2NzIwNzk0QkE1MEEwOUIxMDAwODIwRTAwMzAyNDU3RkE1MEEwOUIxMDAwODIwRTAwMzAyNDU5NzIwN0EzMEE1MEEwOUIxMDAwODIwRTAwMzAyNDVBRkE1MEEwOUIxMDAwODIwRTAwMzAyNDVDN0E1MEEwOUIxMDAwODIwRTAwMzAyNDVERkE1MEEwOUIxMDAwODIwRTAwMzAyNDVGNzMwMDQwQ0MyMDRDMEYxNzVGMTAxMTI2RkQ5RDBGMURBMkJEQTFCREEwQkQwRjBEMEUwRDBEMUQwRDAzMjc1MzE4MDEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjMyQkNBMDZDNjQ0ODk1NDc1MzE4MTEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjM2QkNBMDZDNjQ0ODk1NDc1MzE4MjEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjNBQkNBMDZDNjQ0ODk1NDc1MzE4MzEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjNFQkNBMDZDNjQ0ODk1NDc1MzE4NDEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjQyQkNBMDZDNjQ0ODk1NDc1MzE4NTEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjQ2QkNBMDZDNjQ0ODk1NDc1MzE4NjEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjRBQkNBMDZDNjQ0ODk1NDc1MzE4NzEyN0MxNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjRFQkNBMDZDNjQ0ODk1NDEwMDgwMTIyMjAyODAzRDIwODIyNzUzMUEwMTI3QzE1N0UxNDgwMDA4MDA2MjAyODAzRDIwODIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjQ5MzAyMEU2MDNEMjA4MjIzMDMwNDlEMjcwN0UzNzAxOEY3RTI3MDFBRjlEMzI0MDMxN0QwMjJFMDU0ODdBMDU0ODdBMzcwMThGN0UzNzAxNkY3RDQzMkQ0MkJFNDQwREUyMzg2ODdBNDcwMTZGNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3MEM0MjJDMjcwMkQyMzY4Nzg2RDMzODAxQTdFMjcwMThGQkUyNDAwMDA2ODZBQkUyNzAxQUYyODA0N0UyNzAxQUY3RTM3MDE4RjlEMzI3RDAyMkUwNTQ4N0EwNTQ4N0EzNzAxOEY3RTM3MDE2RjdENDMyRDQyQkU0NDBERTIzODEzN0E0NzAxNkY3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MERFMzlEMjQxMjY1MkI3RTM0MDlFMzdEMjQyRDQzN0E0NzAxNkYxMjY1MkJCRTI1MjA3ODAzMDI0NjdGMjJEMjA4N0UwNDA5RTM3QTA3MDE2RjdBMDcwMTdGNzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFCRjJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwMDAwMkUyNzAxQkYxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzODBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEwMjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDAwMDAyRTY3MDFCRjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDA3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI0N0UzNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM4MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTAyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjQ3RTNEQUI4MDI0OTMwMDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2ODgwMDJDMjY4QTVGRDVFNTAyMDY4MDREMjYwODAwMkMyNjBBNUZENUU1MDgwNjgwNEQyNTg4MDAyQzI1ODEyNDJDODAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjQ4MzU3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwOTAxMjIyMDI5MDNEMjA5MjI3NTMxQTExMjdDMTU3RTE0ODEwMDgwMDYyMDI5MDNEMjA5MjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNEM4ODIwRTYwM0QyMDkyMjMwMzE0OUQyNzE3RTM3MDE5MTdFMjcwMUIxOUQzMjQwMzE3RDAyMkUwNTRBN0EwNTRBN0EzNzAxOTE3RTM3MDE3MTdENDMyRDQyQkU0NDExRTIzODY4N0E0NzAxNzE3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDcxQzQyMkMyNzEyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOTFCRTI0MDAwMDY4NkFCRTI3MDFCMTI4MDQ3RTI3MDFCMTdFMzcwMTkxOUQzMjdEMDIyRTA1NEE3QTA1NEE3QTM3MDE5MTdFMzcwMTcxN0Q0MzJENDJCRTQ0MTFFMjM4MTM3QTQ3MDE3MTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQxMUUzOUQyNDEyNjUyQjdFMzQwREUzN0QyNDJENDM3QTQ3MDE3MTEyNjUyQkJFMjUyMDc4MDMwMjQ5RDcyMkQyMDk3RTA0MERFMzdBMDcwMTcxN0EwNzAxODE3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUMxMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDAxMDAyRTI3MDFDMTFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDM5MEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTEyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDEwMDJFNjcwMUMxOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwMTdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjRCM0I3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzkwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMTIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNEIzQkRBQjgwMjRDODgwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjY5ODAwMkMyNjlBNUZENUU1MDIwNjgwNEQyNjE4MDAyQzI2MUE1RkQ1RTUwODA2ODA0RDI1OTgwMDJDMjU5MTI0MkU5MDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNEI4RDc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBBMDEyMjIwMkEwM0QyMEEyMjc1MzFBMjEyN0MxNTdFMTQ4MjAwODAwNjIwMkEwM0QyMEEyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI0RkUwMjBFNjAzRDIwQTIyMzAzMjQ5RDI3MjdFMzcwMTkzN0UyNzAxQjM5RDMyNDAzMTdEMDIyRTA1NEM3QTA1NEM3QTM3MDE5MzdFMzcwMTczN0Q0MzJENDJCRTQ0MTVFMjM4Njg3QTQ3MDE3Mzc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzJDNDIyQzI3MjJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5M0JFMjQwMDAwNjg2QUJFMjcwMUIzMjgwNDdFMjcwMUIzN0UzNzAxOTM5RDMyN0QwMjJFMDU0QzdBMDU0QzdBMzcwMTkzN0UzNzAxNzM3RDQzMkQ0MkJFNDQxNUUyMzgxMzdBNDcwMTczNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDE1RTM5RDI0MTI2NTJCN0UzNDExRTM3RDI0MkQ0MzdBNDcwMTczMTI2NTJCQkUyNTIwNzgwMzAyNEQyRjIyRDIwQTdFMDQxMUUzN0EwNzAxNzM3QTA3MDE4Mzc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzMyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDIwMDJFMjcwMUMzMUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0EwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMjIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwMjAwMkU2NzAxQzM5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAyN0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNEU5Mzc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0RTkzREFCODAyNEZFMDA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkE4MDAyQzI2QUE1RkQ1RTUwMjA2ODA0RDI2MjgwMDJDMjYyQTVGRDVFNTA4MDY4MDREMjVBODAwMkMyNUExMjQzMEEwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI0RUU1NzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEIwMTIyMjAyQjAzRDIwQjIyNzUzMUEzMTI3QzE1N0UxNDgzMDA4MDA2MjAyQjAzRDIwQjIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjUzMzgyMEU2MDNEMjBCMjIzMDMzNDlEMjczN0UzNzAxOTU3RTI3MDFCNTlEMzI0MDMxN0QwMjJFMDU0RTdBMDU0RTdBMzcwMTk1N0UzNzAxNzU3RDQzMkQ0MkJFNDQxOUUyMzg2ODdBNDcwMTc1NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3M0M0MjJDMjczMkQyMzY4Nzg2RDMzODAxQTdFMjcwMTk1QkUyNDAwMDA2ODZBQkUyNzAxQjUyODA0N0UyNzAxQjU3RTM3MDE5NTlEMzI3RDAyMkUwNTRFN0EwNTRFN0EzNzAxOTU3RTM3MDE3NTdENDMyRDQyQkU0NDE5RTIzODEzN0E0NzAxNzU3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MTlFMzlEMjQxMjY1MkI3RTM0MTVFMzdEMjQyRDQzN0E0NzAxNzUxMjY1MkJCRTI1MjA3ODAzMDI1MDg3MjJEMjBCN0UwNDE1RTM3QTA3MDE3NTdBMDcwMTg1NzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDNTJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwMzAwMkUyNzAxQzUxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEzMjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDAzMDAyRTY3MDFDNTlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDM3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1MUVCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNCMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTMyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjUxRUJEQUI4MDI1MzM4MDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2QjgwMDJDMjZCQTVGRDVFNTAyMDY4MDREMjYzODAwMkMyNjNBNUZENUU1MDgwNjgwNEQyNUI4MDAyQzI1QjEyNDMyQjAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjUyM0Q3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwQzAxMjIyMDJDMDNEMjBDMjI3NTMxQTQxMjdDMTU3RTE0ODQwMDgwMDYyMDJDMDNEMjBDMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTY5MDIwRTYwM0QyMEMyMjMwMzQ0OUQyNzQ3RTM3MDE5NzdFMjcwMUI3OUQzMjQwMzE3RDAyMkUwNTUwN0EwNTUwN0EzNzAxOTc3RTM3MDE3NzdENDMyRDQyQkU0NDFERTIzODY4N0E0NzAxNzc3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDc0QzQyMkMyNzQyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOTdCRTI0MDAwMDY4NkFCRTI3MDFCNzI4MDQ3RTI3MDFCNzdFMzcwMTk3OUQzMjdEMDIyRTA1NTA3QTA1NTA3QTM3MDE5NzdFMzcwMTc3N0Q0MzJENDJCRTQ0MURFMjM4MTM3QTQ3MDE3Nzc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQxREUzOUQyNDEyNjUyQjdFMzQxOUUzN0QyNDJENDM3QTQ3MDE3NzEyNjUyQkJFMjUyMDc4MDMwMjUzREYyMkQyMEM3RTA0MTlFMzdBMDcwMTc3N0EwNzAxODc3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUM3MkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDA0MDAyRTI3MDFDNzFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNDMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTQyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDQwMDJFNjcwMUM3OUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwNDdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjU1NDM3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0MwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNDIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNTU0M0RBQjgwMjU2OTAwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZDODAwMkMyNkNBNUZENUU1MDIwNjgwNEQyNjQ4MDAyQzI2NEE1RkQ1RTUwODA2ODA0RDI1QzgwMDJDMjVDMTI0MzRDMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNTU5NTc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjIxMDBEMDEyMjIwMkQwM0QyMEQyMjc1MzFBNTEyN0MxNTdFMTQ4NTAwODAwNjIwMkQwM0QyMEQyMjA5QjEwMDE0Q0FCODVFQjAxRURBQjg2ODAzMTI1OUU4MjBFNjAzRDIwRDIyMzAzNTQ5RDI3NTdFMzcwMTk5N0UyNzAxQjk5RDMyNDAzMTdEMDIyRTA1NTI3QTA1NTI3QTM3MDE5OTdFMzcwMTc5N0Q0MzJENDJCRTQ0MjFFMjM4Njg3QTQ3MDE3OTc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTEyNjUyQjEwNzVDNDIyQzI3NTJEMjM2ODc4NkQzMzgwMUE3RTI3MDE5OUJFMjQwMDAwNjg2QUJFMjcwMUI5MjgwNDdFMjcwMUI5N0UzNzAxOTk5RDMyN0QwMjJFMDU1MjdBMDU1MjdBMzcwMTk5N0UzNzAxNzk3RDQzMkQ0MkJFNDQyMUUyMzgxMzdBNDcwMTc5NzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MDI2NTJCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1OUU0NDIxRTM5RDI0MTI2NTJCN0UzNDFERTM3RDI0MkQ0MzdBNDcwMTc5MTI2NTJCQkUyNTIwNzgwMzAyNTczNzIyRDIwRDdFMDQxREUzN0EwNzAxNzk3QTA3MDE4OTc1MzE5NDEyN0MxNTc1MzEwMDEyN0MxNTIyNzUzMTkyMTI3QzE1RDIwNDA5QjEwMDE0Q0FCODU0ODJEQUI4Nzg3MDdFMzcwMUUxN0UyNzAxQzkyRTI0MDAwMjJEMzJCRTM0MDQwMDM4M0M3RDAyMkUwNTQ2N0EwNTQ2N0EzNzAxRTE3RTM3MDFERjdENDMyRDQyQkU0NDA1RTIzODQ0N0E0NzAxREY3RTI0MDUwMDJFMjcwMUM5MUIzODIwMEIzNTdBNTEzMTEyN0MxNUJFNTAzODc4MDMwMjY2MTYwMjY1RkI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0QwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNTIyODA3RDdBNTEzMTEyN0MxNTlFNDQwNUUzOUQyNDdFNjQwNTAwMkU2NzAxQzk5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2NUZCN0UzNDAxRTM3RDI0MkQ0MzdBNDcwMURGMDI2NUZCN0EzOUMwN0UzNDAxRTM3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA1N0E2OUIwN0E3OTcwMEIzNTc1MzE5MzEyN0MxNTdBNzEzMTEyN0MxNUJEMDQ2ODI5N0EwNzAxREY3RTQ3MDFFMTJENDM3QTQ3MDFFMTJFMzU0NjdBMzU0NjIyMDlCMTAwMTQyMEUwMTMyMjdFMDQwMUUzODAyQTdFMDQwMUUzODAyQzdFMDQwMUUzODBEMUQyMDQ3RTA3MDFFMTdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFERjdFNDQwNUUzN0Q2MDBCMDRCRDA0NjhEMDdENzAwQjA0QkQwNDY4Q0U3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTg5Qjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1ODlCREFCODAyNTlFODA5QjEwMDE4N0VBMDg4NzUzMTkwMTI3QzE1RjUzMTEyN0MxNUE1RkM1RUIwRjBBNUZEMDlCMTAwMTg0QzRCNUVCMEYwQkNCNTc4RjE1RTQwMEY0QzU0N0NCNTVFNTAwQjY4MkFBNUZENUU1MDEwNjgwNEQyNkQ4MDAyQzI2REE1RkQ1RTUwMjA2ODA0RDI2NTgwMDJDMjY1QTVGRDVFNTA4MDY4MDREMjVEODAwMkMyNUQxMjQzNkQwMjYyOTM3NTMxOTExMjdDMTUwOUIxMDAxNDdBQjEzMTEyN0MxNTIwRTAwOEQyMDQ3RUEwODAwMjYyOTNEMjA0MzBFMTA2N0VBMDgwMTI2MjkzQ0FCODVFQjAxQ0RBQjg2ODEyN0VBMEMwMDk2MTAwMDAxMjYyQjYwOUIxMDAxNDIwRTBEQjIyMDI1OEVENzUzMTk1MTI3QzE1MjI3NTMxOTYxMjdDMTUyMjEwMEUwMTIyMjAyRTAzRDIwRTIyNzUzMUE2MTI3QzE1N0UxNDg2MDA4MDA2MjAyRTAzRDIwRTIyMDlCMTAwMTRDQUI4NUVCMDFFREFCODY4MDMxMjVENDAyMEU2MDNEMjBFMjIzMDM2NDlEMjc2N0UzNzAxOUI3RTI3MDFCQjlEMzI0MDMxN0QwMjJFMDU1NDdBMDU1NDdBMzcwMTlCN0UzNzAxN0I3RDQzMkQ0MkJFNDQyNUUyMzg2ODdBNDcwMTdCNzUzMTk0MTI3QzE1N0E1MTMxMTI3QzE1MTI2NTJCMTA3NkM0MjJDMjc2MkQyMzY4Nzg2RDMzODAxQTdFMjcwMTlCQkUyNDAwMDA2ODZBQkUyNzAxQkIyODA0N0UyNzAxQkI3RTM3MDE5QjlEMzI3RDAyMkUwNTU0N0EwNTU0N0EzNzAxOUI3RTM3MDE3QjdENDMyRDQyQkU0NDI1RTIzODEzN0E0NzAxN0I3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUwMjY1MkI3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTU5RTQ0MjVFMzlEMjQxMjY1MkI3RTM0MjFFMzdEMjQyRDQzN0E0NzAxN0IxMjY1MkJCRTI1MjA3ODAzMDI1QThGMjJEMjBFN0UwNDIxRTM3QTA3MDE3QjdBMDcwMThCNzUzMTk0MTI3QzE1NzUzMTAwMTI3QzE1MjI3NTMxOTIxMjdDMTVEMjA0MDlCMTAwMTRDQUI4NTQ4MkRBQjg3ODcwN0UzNzAxRTE3RTI3MDFDQjJFMjQwMDAyMkQzMkJFMzQwNDAwMzgzQzdEMDIyRTA1NDY3QTA1NDY3QTM3MDFFMTdFMzcwMURGN0Q0MzJENDJCRTQ0MDVFMjM4NDQ3QTQ3MDFERjdFMjQwNjAwMkUyNzAxQ0IxQjM4MjAwQjM1N0E1MTMxMTI3QzE1QkU1MDM4NzgwMzAyNjYxNjAyNjVGQjc1MzE5OTEyN0MxNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE2MjI4MDdEN0E1MTMxMTI3QzE1OUU0NDA1RTM5RDI0N0U2NDA2MDAyRTY3MDFDQjlFMjQwMDAyNDAxNzFCMzg2MDBCMzUxMjY1RkI3RTM0MDFFMzdEMjQyRDQzN0E0NzAxREYwMjY1RkI3QTM5QzA3RTM0MDFFMzdBMzlEMDBCMzQxQjQ0ODBFNTlEMzI3Q0I2NTQwRjIzMjMyMzQ0MDY3QTY5QjA3QTc5NzAwQjM1NzUzMTkzMTI3QzE1N0E3MTMxMTI3QzE1QkQwNDY4Mjk3QTA3MDFERjdFNDcwMUUxMkQ0MzdBNDcwMUUxMkUzNTQ2N0EzNTQ2MjIwOUIxMDAxNDIwRTAxMzIyN0UwNDAxRTM4MDJBN0UwNDAxRTM4MDJDN0UwNDAxRTM4MEQxRDIwNDdFMDcwMUUxN0UyNDAzRkU5RDIwMjg0MDdFMDcwMURGN0U0NDA1RTM3RDYwMEIwNEJEMDQ2OEQwN0Q3MDBCMDRCRDA0NjhDRTdENTQ5RDUwQkQyNTQwMDI3RDI1N0QzMjA5QjEwMDE0Q0FCODU0MUZCNDAxMzFEQUI4N0UxOUIwN0EwOUIwMEIwNDFCMjQ3OEU3MDI1QkYzNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNFMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTYyMkRBQjgzMEUwRDhCRDMyNjgwN0NBQjgxMjVCRjNEQUI4MDI1RDQwMDlCMTAwMTg3RUEwODg3NTMxOTAxMjdDMTVGNTMxMTI3QzE1QTVGQzVFQjBGMEE1RkQwOUIxMDAxODRDNEI1RUIwRjBCQ0I1NzhGMTVFNDAwRjRDNTQ3Q0I1NUU1MDBCNjgyQUE1RkQ1RTUwMTA2ODA0RDI2RTgwMDJDMjZFQTVGRDVFNTAyMDY4MDREMjY2ODAwMkMyNjZBNUZENUU1MDgwNjgwNEQyNUU4MDAyQzI1RTEyNDM4RTAyNjI5Mzc1MzE5MTEyN0MxNTA5QjEwMDE0N0FCMTMxMTI3QzE1MjBFMDA4RDIwNDdFQTA4MDAyNjI5M0QyMDQzMEUxMDY3RUEwODAxMjYyOTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjJCNjA5QjEwMDE0MjBFMERCMjIwMjVDNDU3NTMxOTUxMjdDMTUyMjc1MzE5NjEyN0MxNTIyMTAwRjAxMjIyMDJGMDNEMjBGMjI3NTMxQTcxMjdDMTU3RTE0ODcwMDgwMDYyMDJGMDNEMjBGMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNjA5ODIwRTYwM0QyMEYyMjMwMzc0OUQyNzc3RTM3MDE5RDdFMjcwMUJEOUQzMjQwMzE3RDAyMkUwNTU2N0EwNTU2N0EzNzAxOUQ3RTM3MDE3RDdENDMyRDQyQkU0NDI5RTIzODY4N0E0NzAxN0Q3NTMxOTQxMjdDMTU3QTUxMzExMjdDMTUxMjY1MkIxMDc3QzQyMkMyNzcyRDIzNjg3ODZEMzM4MDFBN0UyNzAxOURCRTI0MDAwMDY4NkFCRTI3MDFCRDI4MDQ3RTI3MDFCRDdFMzcwMTlEOUQzMjdEMDIyRTA1NTY3QTA1NTY3QTM3MDE5RDdFMzcwMTdEN0Q0MzJENDJCRTQ0MjlFMjM4MTM3QTQ3MDE3RDc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTAyNjUyQjc1MzE5NDEyN0MxNTdBNTEzMTEyN0MxNTlFNDQyOUUzOUQyNDEyNjUyQjdFMzQyNUUzN0QyNDJENDM3QTQ3MDE3RDEyNjUyQkJFMjUyMDc4MDMwMjVERTcyMkQyMEY3RTA0MjVFMzdBMDcwMTdEN0EwNzAxOEQ3NTMxOTQxMjdDMTU3NTMxMDAxMjdDMTUyMjc1MzE5MjEyN0MxNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4NzA3RTM3MDFFMTdFMjcwMUNEMkUyNDAwMDIyRDMyQkUzNDA0MDAzODNDN0QwMjJFMDU0NjdBMDU0NjdBMzcwMUUxN0UzNzAxREY3RDQzMkQ0MkJFNDQwNUUyMzg0NDdBNDcwMURGN0UyNDA3MDAyRTI3MDFDRDFCMzgyMDBCMzU3QTUxMzExMjdDMTVCRTUwMzg3ODAzMDI2NjE2MDI2NUZCNzUzMTk5MTI3QzE1MDlCMTAwMDQ1NEZBMTlCMTAwMDQzMDNGMEEwOUIxMDAxMDU0RkUxOUIxMDAxMEQyMTcyMjgwN0Q3QTUxMzExMjdDMTU5RTQ0MDVFMzlEMjQ3RTY0MDcwMDJFNjcwMUNEOUUyNDAwMDI0MDE3MUIzODYwMEIzNTEyNjVGQjdFMzQwMUUzN0QyNDJENDM3QTQ3MDFERjAyNjVGQjdBMzlDMDdFMzQwMUUzN0EzOUQwMEIzNDFCNDQ4MEU1OUQzMjdDQjY1NDBGMjMyMzIzNDQwNzdBNjlCMDdBNzk3MDBCMzU3NTMxOTMxMjdDMTU3QTcxMzExMjdDMTVCRDA0NjgyOTdBMDcwMURGN0U0NzAxRTEyRDQzN0E0NzAxRTEyRTM1NDY3QTM1NDYyMjA5QjEwMDE0MjBFMDEzMjI3RTA0MDFFMzgwMkE3RTA0MDFFMzgwMkM3RTA0MDFFMzgwRDFEMjA0N0UwNzAxRTE3RTI0MDNGRTlEMjAyODQwN0UwNzAxREY3RTQ0MDVFMzdENjAwQjA0QkQwNDY4RDA3RDcwMEIwNEJEMDQ2OENFN0Q1NDlENTBCRDI1NDAwMjdEMjU3RDMyMDlCMTAwMTRDQUI4NTQxRkI0MDEzMURBQjg3RTE5QjA3QTA5QjAwQjA0MUIyNDc4RTcwMjVGNEI3NTMxOTkxMjdDMTUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0YwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNzIyREFCODMwRTBEOEJEMzI2ODA3Q0FCODEyNUY0QkRBQjgwMjYwOTgwOUIxMDAxODdFQTA4ODc1MzE5MDEyN0MxNUY1MzExMjdDMTVBNUZDNUVCMEYwQTVGRDA5QjEwMDE4NEM0QjVFQjBGMEJDQjU3OEYxNUU0MDBGNEM1NDdDQjU1RTUwMEI2ODJBQTVGRDVFNTAxMDY4MDREMjZGODAwMkMyNkZBNUZENUU1MDIwNjgwNEQyNjc4MDAyQzI2N0E1RkQ1RTUwODA2ODA0RDI1RjgwMDJDMjVGMTI0M0FGMDI2MjkzNzUzMTkxMTI3QzE1MDlCMTAwMTQ3QUIxMzExMjdDMTUyMEUwMDhEMjA0N0VBMDgwMDI2MjkzRDIwNDMwRTEwNjdFQTA4MDEyNjI5M0NBQjg1RUIwMUNEQUI4NjgxMjdFQTBDMDA5NjEwMDAwMTI2MkI2MDlCMTAwMTQyMEUwREIyMjAyNUY5RDc1MzE5NTEyN0MxNTIyNzUzMTk2MTI3QzE1MjI3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNjg4MDAyQzI2OEE1RkQ1RTUwMjA2ODA0RDI2MDgwMDJDMjYwQTVGRDVFNTA4MDY4MDREMjU4ODAwMkMyNTgwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNjk4MDAyQzI2OUE1RkQ1RTUwMjA2ODA0RDI2MTgwMDJDMjYxQTVGRDVFNTA4MDY4MDREMjU5ODAwMkMyNTkwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkE4MDAyQzI2QUE1RkQ1RTUwMjA2ODA0RDI2MjgwMDJDMjYyQTVGRDVFNTA4MDY4MDREMjVBODAwMkMyNUEwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkI4MDAyQzI2QkE1RkQ1RTUwMjA2ODA0RDI2MzgwMDJDMjYzQTVGRDVFNTA4MDY4MDREMjVCODAwMkMyNUIwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkM4MDAyQzI2Q0E1RkQ1RTUwMjA2ODA0RDI2NDgwMDJDMjY0QTVGRDVFNTA4MDY4MDREMjVDODAwMkMyNUMwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkQ4MDAyQzI2REE1RkQ1RTUwMjA2ODA0RDI2NTgwMDJDMjY1QTVGRDVFNTA4MDY4MDREMjVEODAwMkMyNUQwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkU4MDAyQzI2RUE1RkQ1RTUwMjA2ODA0RDI2NjgwMDJDMjY2QTVGRDVFNTA4MDY4MDREMjVFODAwMkMyNUUwMjYyN0Y3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDEwNjgwNEQyNkY4MDAyQzI2RkE1RkQ1RTUwMjA2ODA0RDI2NzgwMDJDMjY3QTVGRDVFNTA4MDY4MDREMjVGODAwMkMyNUYwMjYyN0Y1NEYwQzRBNUZGQzRBNTRGNzUzMTkwMTI3QzE1RjUzMTEyN0MxNTIyQ0ExOTVFMjAwNzRDQTI3RTc0MjlFM0NBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NERBNzk3RTMwMDI3RTY0MDAwMjAyNjJERUNBMTk1RTIwMDc0Q0EyN0U3NDI5RTNDQTc5N0E3OUEwMEI3NDdBNzlCMDBCNzQ3QTc5NjAwQjc0REE3OTdFMzAwMzdFNjQwMDAzMDI2MkRFRDIwNDdFMjcwMUUxMkQyNkJFMjQwNDAwMzgyRTdFMDcwMURGN0U0NDA1RTM3RTc5QTA3QTA5QTAwQjA0MEI3NEJEMDQ2ODIzQTVEQkVGN0EyNzAxRTE3RTI1NDYyRDI2N0EyNTQ2N0EwNzAxREZEQTE5QzJENzIyNzUzMTlBMTI3QzE1REExOUQyRDcyMjdFMDQwMUUzODBENzQ4QjY0NjI1NDcxQzQ5MTU0NEM2NDRDNjQ4MUI0NEM2NDk1OTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0OTYwNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NEMwRTQ5N0Q0QTc0NEM2RDQ0QzY0NEM2NEI3MzQ0QzY0Q0IxNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjRDQjg0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0RjY2NENENTREQ0M0RkM1NDRDNjQ0QzY0RUNCNDRDNjUwMDk0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTAxMDQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjUyQkU1MDJENTEyNDUzMUQ0NEM2NDRDNjUyMjM0NEM2NTM2MTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1MzY4NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NTYxNjUzODU1NDdDNTY3NTQ0QzY0NEM2NTU3QjQ0QzY1NkI5NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjU2QzA0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1OTZFNTZERDU3RDQ1OUNENDRDNjQ0QzY1OEQzNDRDNjVBMTE0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NUExODQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjVDQzY1QTM1NUIyQzVEMjU0NEM2NDRDNjVDMkI0NEM2NUQ2OTQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY1RDcwNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NjAxRTVEOEQ1RTg0NjA3RDQ0QzY0NEM2NUY4MzQ0QzY2MEMxNDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjYwQzg0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzY0NEM2NDRDNjQ0QzZDQTI5MUU1MDQwMEQ3RTU0MEIxMDlDQjVBNDJFNTQ2NTQ4ODk1NDdFMzkwMDdBMTkwMDBCMzQ4MEU5MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNTBCMzgwMDdBMTkwMDdBMTkxMDBCMzUwQjM4MDA3QTE5MDA3QTE5MTAwQjM1MEIzODAwN0ExOTAwN0ExOTEwMEIzNURBMjkyMjFFNTA0MDBEN0U1NDBCMUM5Q0I1QTQyRTU0NjYxNjg5NTQ3RTE5MDA3QTM5MDAwQjM0ODBFOTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzU3RTE5MDA3RTE5MTAxQjM4MDAwQjM1N0UxOTAwN0UxOTEwMUIzODAwMEIzNTdFMTkwMDdFMTkxMDFCMzgwMDBCMzUyMjY3OTY2OTYzNjk3QjZBNDk2QUU0NkI4RTZCQTk2QzNCNkJDNDZDMDU2OTk2NjlBQTdDQjNCRUIwMEIyODE0NzUzMTA5MTI3QzE1NzU2RDEwQzBGMTc1RjEwMTQzRTFDMEQwRjEyMkMwQThDMkFGMjM2Q0FBMkU1NDY3NEIwQjU4NTA4OTU0MDEwMjA0MDgxMDIwNDA4MDc1MzFCMDEyN0MxNTBBMzIwOUIzNjc4RTQyMzIxOTQzMDAzNkQwQTgyMjdDQjIyMzBBM0I0OTMzNjdDQjBBMjIwOTMyMDAzNjA5QjI2NzhFQTVCQjAwMDVGNDUyMzM4MDAyNDIzMzg5MzQ2N0RCNjgwOTY4Mzc2ODY1Njg5MzY4QzE2OEVGNjkxRDEyNDFCNUQyMjhEMjA4QzI0MEMyNDhDMjM4QzIzMDZEMDA3QTAzMDFDRjdFMDQwMDIwN0EwNzAxQUY3RTA0MDAzODdBMDcwMUJGMTI0MTE2MTI2MENGMDI2OTRCMTI0MUQ0RDIyOUQyMDlDMjQxQzI0OUMyMzlDMjMxNkQwMDdBMDMwMUQwN0UwNDAwMjA3QTA3MDFCMTdFMDQwMDM4N0EwNzAxQzExMjQxMTYxMjYxMDUwMjY5NEIxMjQxRjNEMjJBRDIwQUMyNDJDMjRBQzIzQUMyMzI2RDAwN0EwMzAxRDE3RTA0MDAyMDdBMDcwMUIzN0UwNDAwMzg3QTA3MDFDMzEyNDExNjEyNjEzQjAyNjk0QjEyNDIxMkQyMkJEMjBCQzI0M0MyNEJDMjNCQzIzMzZEMDA3QTAzMDFEMjdFMDQwMDIwN0EwNzAxQjU3RTA0MDAzODdBMDcwMUM1MTI0MTE2MTI2MTcxMDI2OTRCMTI0MjMxRDIyQ0QyMENDMjQ0QzI0Q0MyM0NDMjM0NkQwMDdBMDMwMUQzN0UwNDAwMjA3QTA3MDFCNzdFMDQwMDM4N0EwNzAxQzcxMjQxMTYxMjYxQTcwMjY5NEIxMjQyNTBEMjJERDIwREMyNDVDMjREQzIzREMyMzU2RDAwN0EwMzAxRDQ3RTA0MDAyMDdBMDcwMUI5N0UwNDAwMzg3QTA3MDFDOTEyNDExNjEyNjFERDAyNjk0QjEyNDI2RkQyMkVEMjBFQzI0NkMyNEVDMjNFQzIzNjZEMDA3QTAzMDFENTdFMDQwMDIwN0EwNzAxQkI3RTA0MDAzODdBMDcwMUNCMTI0MTE2MTI2MjEzMDI2OTRCMTI0MjhFRDIyRkQyMEZDMjQ3QzI0RkMyM0ZDMjM3NkQwMDdBMDMwMUQ2N0UwNDAwMjA3QTA3MDFCRDdFMDQwMDM4N0EwNzAxQ0QxMjQxMTYxMjYyNDkwMjY5NEI3RUEwRDA3RTYwMEYxMjYyQjY0MDBDQzBGMTc1RjEwMTEyNkZEOUQwRjFDMkQ3MjI3NTMxQjExMjdDMTUwQTUyMjM2RDAwNTkwNTAwNDgxMjQxN0UxMjQxOUFEMEE4MjI3NTMxQjIxMjdDMTUwQTIyMDlCMjY3OEU0MjIzN0VCMDlDMTlCMjAxQ0YxMjMxODVEMEE4MjI3NTMxQjcxMjdDMTUwQTIyMDlCMjY3OEU0MjI0MTIzNTNERDBBODIyNzUzMUI5MTI3QzE1MEEzMjA5QjM2NzhFNDIzNDE5NDMwMDNFMTI2OUMyRDBBODIyN0NCMjIzMEEwQjdDQjQyMEUwMDQ2RDMzODAwNDQ5MzAwMThGN0VBMEQ4QTVFRkNBMEJDQTI5MTI2MkI2REEyOURBMEI0MDYyNzUzMUJBMTI3QzE1N0NCNDMwRTAxRTZEMzM1OTMwMDE4RjdFMzQwOUUzMEE4MjdFOTQwNDAwQUQ4OTJEMzk1OTMwMDE2RjU5MzAwMTdGN0NCNDMwRTExMDdFMDQ4MDAwNEMwMjA5QjAwMDA4NDQwNDE5QjAwMDA4MEEwMjA5QjA2NzhFNDIyMUY0NTIzNDdDQjIyMzBBMEJDQTE5NDkwMDMwRDU5OTA0REExOUMwRjE3NUYxMDExMjZGRDlEMEYxQzJENzIyN0UwNDgwMDA0QzAyMDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwODE5MzAwMDBDN0M3NDVFNzAwMTY4MTI0NDQwQ0FCODA5QjAwMDEwNDQwMjE5QjAwMDEwREFCODgwMDI1NEJGN0M3NDVFNzAwODY4MDQ0NDA4ODAwMjU0RjcwOTMwMDAwQ0NBQjg3NEJGMTlCMDAwMENEQUI4MTlCMDAwMDgxOTMwMDAwQzBBNjIwOUI2Njc4RTNFMjAwQTYyN0M3NDVFNzAwMjY4MjA0MjI3Q0FCODc0NjExOUIwMDAwODdFNDQwMDEwNTk0NjAxQkYwOUIwMDAxMDQ0MDExOUIwMDAxMERBQjg4MDExRjQ1MjI3NzRBMTE5QjAwMDA4N0U0NDAwMzg1OTQ2MDFCRkQwQTgyMjdDNzQ3RTA0ODAwMDRDMDIwQTYyMDlCNjY3OEVBNUZERjRBNUZFQ0EyODNFMjAwQTYyQTVFRTUyMjY3RTQ0MDAyMDU5NDYwMUFGREEyODA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDg3Qzc0NUU3MDAxNjgwQzQ0ODBDQUI4QTVFRDQyMkFEQUI4ODAwQTU0N0ZDQUI4QTVFRTUyMkFEQUI4N0M3NDVFNzAwODY4MDQ0NDAyODAwMjU0RkQxOUIwMDAwODE5MzAwMDBDN0M3NDVFNzAwMjY4MTBBNUVENDIyODQyMjY3RTQ0MDAwODU5NDYwMUFGODAwNEE1RUU1MjI4N0M3NDVFNzAwNDY4MTBBNUVENDIyOTQyMjY3RTQ0MDAwODU5NDYwMUFGODAwQkE1RUU1MjI5N0M3NDVFNzAwMjc4MDAxMjQyQUREMEE4MjI3RTA0ODAwMDRDMDIwOTMwMDAwQzc0QkYxOUIwMDAwQzE5NDAwMDEwMTkzMDAwMENEMEE4MjI3RTA0ODAwMDRDMDIwOTMwMDAwQzc0QkYxOUIwMDAwQzE5NDAwMDE4MTkzMDAwMENEMEE4MjI3NTMxQjUxMjdDMTU3RTA0ODAwMDRDMDIwOUIwMDAwQzQ0NDAxOUIwMDAwQ0U1NkVCNDA3MjMwOUIwMDAxMDRFQjAwMjE5QjAwMDEwMDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwNDU0RjcxOUIwMDAwNDE5MzAwMDBDRDBBODIyNzUzMUI2MTI3QzE1N0UwNDgwMDA0QzAyRTU2RUI0MDcxODA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDQ0NDA4MTlCMDAwMDQxOTMwMDAwQzA5QjAwMDBDNTRCRjE5QjAwMDBDRDBBODIyNzUzMUI0MTI3QzE1N0EyMTMxMTI3QzE1N0E0MTMxMTI3QzE1MEEzMjA5QjM2NzhFNDIzNTEyNkM1QkQwQTgyMjdFQjAwMTdFQTBDODdDNjQxMjYyQjY0MDEzMEEzMjA5QjM2NzhFRjQ1MjM1QzBGMTc1RjEwMTEyNkZEOUQwRjEyMjZDOEM2Q0QzNkQxQTZENjE2REE4NkRFRjZFMzY2RTdENzUzMTU1MTI3QzE1NzUzMTAwMTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxN0Y3RTI3MDE4RjJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQwREUyMzgwRjFCMzQ3OEVDN0ExNzAxN0Y3QTI3MDE4RjAyNDYwRjdFMTQwOUUzODBFQjc1MzE1NTEyN0MxNTc1MzEwMTEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTgxN0UyNzAxOTEyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTFFMjM4MEYxQjM0NzhFQzdBMTcwMTgxN0EyNzAxOTEwMjQ5Njc3RTE0MERFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDIxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4MzdFMjcwMTkzMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE1RTIzODBGMUIzNDc4RUM3QTE3MDE4MzdBMjcwMTkzMDI0Q0JGN0UxNDExRTM4MEVCNzUzMTU1MTI3QzE1NzUzMTAzMTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxODU3RTI3MDE5NTJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxOUUyMzgwRjFCMzQ3OEVDN0ExNzAxODU3QTI3MDE5NTAyNTAxNzdFMTQxNUUzODBFQjc1MzE1NTEyN0MxNTc1MzEwNDEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMTg3N0UyNzAxOTcyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MURFMjM4MEYxQjM0NzhFQzdBMTcwMTg3N0EyNzAxOTcwMjUzNkY3RTE0MTlFMzgwRUI3NTMxNTUxMjdDMTU3NTMxMDUxMjdDMTU3QTYxMzExMjdDMTU3QTcxMzExMjdDMTU3RTE3MDE4OTdFMjcwMTk5MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDIxRTIzODBGMUIzNDc4RUM3QTE3MDE4OTdBMjcwMTk5MDI1NkM3N0UxNDFERTM4MEVCNzUzMTU1MTI3QzE1NzUzMTA2MTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1N0UxNzAxOEI3RTI3MDE5QjJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQyNUUyMzgwRjFCMzQ3OEVDN0ExNzAxOEI3QTI3MDE5QjAyNUExRjdFMTQyMUUzODBFQjc1MzE1NTEyN0MxNTc1MzEwNzEyN0MxNTdBNjEzMTEyN0MxNTdBNzEzMTEyN0MxNTdFMTcwMThEN0UyNzAxOUQyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MjlFMjM4MEYxQjM0NzhFQzdBMTcwMThEN0EyNzAxOUQwMjVENzc3RTE0MjVFMzgwRUJDQUI4QzBGMTc1MzEwMjEyN0MxNUU1QzA1NDAzNjgwNTEyNzVDRDgwRjUzMEMyMDg3NUYxMDExMjZGRDk4MDE0MzBDMzA4NzVGMTAxMTI2RUZEODAwOTMwQzQwNjc1RjEwMjEyNzBFOUQwRjFEQUI4MzI3NTMxMTAxMjdDMTVDQTBCQ0EzOUNBNTlDMkMzQTkyMUUyNUNFNUU1NTRDMDY4NEZFNUU2NkNBQTdFMzcwMURCMkQzNUJFMzQwNDAwMzg0QTdBMzcwMURCN0UzNzAxRDk3RDQzMkQ0NUJFNDQwOUUyMzg0MDdBNDcwMUQ5NzUzMTExMTI3QzE1N0FCMTMxMTI3QzE1MTI3MUI4QTkyMUU1MUZBOUQ0RTRBOTI0RTRGQ0MyQzNBOTIxRTIzQkU1RTU1NEMwNzhCNDEyNzQ1QURBNTlEQTM5REEwQjIyODAyOTgwNTg3NTMxMTYxMjdDMTU4MEVENzUzMTEyMTI3QzE1N0FCMTMxMTI3QzE1OUU0NDA5RTM5RDU0MTI3MUI4N0UzNDA1RTM3RDU0MkQ0MzgwQTFFNUU1NTQwMzc4MTI3NTMxMTMxMjdDMTU3RTBGMjlGRjBCMEM3QTBGMjlGRjgwQTc3NTMxMTQxMjdDMTU3RTBGMkEwMzBCMEM3QTBGMkEwM0E5RDdFNEE5MjdFNEZDODA5RDc1MzExNTEyN0MxNTdFMEYyQTA3MEIwQzdBMEYyQTA3ODBFNTc1MzExODEyN0MxNUNBMDlDQTM5Q0EyQkMyQzJBOTIxRjI1MkU1RjUzMzgyRTc0MDQ0N0UzNzAxRTE3RTU0MDA0MDlEMzU0MDQzN0EzNzAxRTE3RTM3MDFERDdENDMyRDQ1QkU0NDA1RTIzODUyN0E0NzAxREQ3RDQ1MTI3MzE2QTkyMEY1MjI3NTMxMTkxMjdDMTU3QTkxMzExMjdDMTU3QTgxRjc3QTkxRjZFNUY1MzM4MkU3NTBCQ0RBMkJEQTM5REEwOTIyODA0MTgwNjQyRDUzNkQzMzcwQjc3RTA0MDFFMzdBMDcwMURGN0EwNzAxRERBOTMyRjJERjg1MzAzMTEyN0MxNTc1RjYwMDgwRDRDQTU5OUU0NDA1RTM5RDU0MTI3MzE2N0UzNDAxRTM3RDU0MkQ0MzdBNDcwMUREMTI3MzE2REE0OTgwOTlFNUY1NTQwMzc4MUY3RTBGMjlFRjBCMEM3QTBGMjlFRjgwOUQ3RTBGMjlGNzBCMEM3QTBGMjlGN0E5RDdGNEE5MjdGNEZDODA4QTdFMEYyOUYzMEIwQzdBMEYyOUYzODBFQkU1RjU1NDAzNzgxRjdFMkYyQTBGMEIyQzdBMkYyQTBGODAzNDdFMkYyQTE3MEIyQzdBMkYyQTE3QTlEN0Y0QTkyN0Y0RkM4MDIxN0UyRjJBMTMwQjJDN0EyRjJBMTM4MEVCREEyQkRBMUJEQTBCMjI3NTMxMjgxMjdDMTVDQTBCQ0ExQkNBMkJDMkM0QTkyMUYyQjZFNUY1MzM3MkU3NDBFMDdFMEQ0NjdFMUQ0QTdFMkQ0RTdFM0Q1MjdFODU1NjdEOTA0RDkxNEQ5MjREOTM0RDk0NEQ5NTREOTY0RDk3NEQ5ODY4NzI3QTExRjM3QTAxRjM3QTMxRjM3QTIxRjM3QTUxRjM3QTQxRjM3QTcxRjM3QTYxRjM3QTkxRjM3QTgxRjMzMDdCMUE3QUIxRjM3QUExRjM3QUQxRjM3QUMxRjM3QUYxRjM3QUUxRjM3RDc4N0FGMUYzN0FFMUYzQTkzMEY1MDMwMjcwRDY3NTMxMjkxMjdDMTUyMDdCMEI3NTMxMEExMjdDMTU3NUY2MEE4MDA5NzUzMTEyMTI3QzE1NzVGNjEyNkQwMDdEMTA3QTBENDY3QTBENEE3QTBENEU3QTBENTI3QTA1NTZEQTJCREExQkRBMEIyMjFFQjA0MDBDN0VBMDBBQTQ3RTA0NzJGQjlEMDU4OTA0N0VBMUUzN0EzOUEwMEIzNDgwRUFCNDQwRTM3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1N0VBMUUzRTVFMzFCMzg1MDBCMzU3RUExRTNFNUUzMUIzODUwMEIzNTdFQTFFM0U1RTMxQjM4NTAwQjM1MjIxRUIwNDAwQzdFQTAwQUE0N0UwNDc0NTk5RDA1ODkwNDdFMzlBMDdBQTFGMzBCMzQ4MEVBQjQ0MEUzMEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTBCMzg1MDdBQTFGM0Y1RjMwQjM1MEIzODUwN0FBMUYzRjVGMzBCMzUwQjM4NTA3QUExRjNGNUYzMEIzNTIyQzJBRjdFMzcwMURCNEQzMzY4M0I3RTA3MDFENzdFNTQwOUUzOUQ1MEJEMzU0MDAyN0QzNUNBMzk3RTY1NjE5OTY0REEzOTdFMDcwMURCOUQwMzdBMDcwMURCMkUzNzAxRDc3QTM3MDFEN0JFMzQwOUUyMjhDNzdFMzQwNUUzN0EzNzAxRDc4MEJERDJBRjIyNzUzMTUzMTI3QzE1N0UxNTYzODAxMTc1MzE1MTEyN0MxNTBCMDgxMDBCMDU5RTM0MDAwMjI4NEQ3Q0IyMjBFNzI3NTQwNzIzMEEyQjQ5MjI2QzdDN0NCMjU0NzgwMzAzMDM3QzJCOUQxMzQwMUE2ODEyN0ExNTYzN0EyNTY1N0U2NDc1Mzc3QTY1NjE4OTI0MDI3NTQ1N0U2NDc0QUQ4MEYyMkQxMzlEMzFDQTM5N0QzMTJEMTBDQTE5Q0EyOTk5MjREQTI5REEwOURBMzk4MEEyN0ExNTYzN0U2NDc1MjM0RDMzNzgwOTdDQjIyMEU3MkE3RTY0NzRBMjdBNjU2MTIyNzUzMTUyMTI3QzE1N0UyMTYzN0UwOTMwMEIwNDFCMzQ3ODg5ODBENDc1MzE1NDEyN0MxNTdFMTU2MzdFMjU2NTgwOTA1RTIwMDc1NDc4N0U0NDc1QzEzMEU2MTY0RDMzNjgyNjFCMzQ3RTA5NDAwQjA0N0U0NDY3NjMyMEUzMDQ3RTQ0NzVDOUNBMDlDQTM5OTk0NERBMzlEQTA5N0U2NDc0QUQ0RDMzNjhBNjg5NjQ3QTE1NjNGNTY1N0U2NDc1ODY4MDk5N0UxNTYzRTU2NTgwQzRDMEQwQzBEMUMwRTBDQTE5QTkyMERGMTJBOTIxREYxQjc1MzEwMTEyN0MxNTUzREZGNzEyNDBEQzgwMEQ3NTMxRkUxMjdDMTU3RTE0MDA1MzAyNDA1MURBMTlEMEUwRDBEMUQwRDAzMjAzQTVDQjE5QjE4MDAwMjIyMjAyNzY0MkNBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQkMwRjE3RUIzMkEzM0I0MDAwMjgwMTlCNDAxMTYzMEMwMDg3NUYxMDAxMjc2MkM4MDFGMzBDMTFDNzVGMTAwMTI3NkJEODAxNDMwQzEwODc1RjEwMDEyNzZCRDgwMDkzMEMwMDY3NUYxMDAxMjc2MkNEMEYxREFFQkRBN0JEQTZCREE1QkRBNEJEQTNCREEyQkRBMUJEQTBCMjJDMkMwN0VCMzJBMzNCNDAyMDcxMjc2NEUwMjc2NDIyMkI0MDFGQzAyNzY4ODdFMDAwMDdBMDMyQTMzN0EwMzJBMzQyMjdFQjMyQTJCNTQ2MDYwMDVCNDQwMTU4MDEzN0VCMzJBMkNCNDA1MEM3NTMxNzExMjdDMTU3RUIzMkEyRUY1OEYyMjc1RjYwMDIyQkU1NzJBMzEyODA0N0U1NzJBMzE3QTBGMkEzNjdBNTcyQTNBMDI3Njg4N0VFRjJBMzY3RUY3MkEzQTdFMDcyQTNBNEQwMDY4MjE3RTAwMDA3RUVCQjBGNUYzQTNBNTA4MUJGNDY4MDRBNUI4MDhGMDdBRUYyQTM2N0FGNzJBM0E3NTMxMDYxMjdDMTU3QTAxRjYyMkMyQzE3NTMxMDMxMjdDMTVBOTM2RTIxNkU1RjU1NEMwNjgwN0E5RDdGNEE5MjdGNEZDNTNFMTNGNDNGMjg4MDI3NzI5N0VCMzJBMzRCNDAyMDRBOUQ0RTQyMkI0MDEzOTdFMjFFNjdDMzI3RTEzMkEzNTJDMjE3QTIzMkEzNTdFMDAwMDJFMDQyQTNDRTVFMzdBMDlCMDBCMDRBNURCRjZBOUQ0RTQ3NTMxNzAxMjdDMTU3RUIzMkEzNTdFQTMyQTMyQkNBQjc4MDMxMjc3QzAyMjAyN0IyOUU1RTZCNDA4NjVBOUM0RTI3RTAxRTM3RTExRTM3RTMxRTM3RTIxRTM3RTUxRTM3RTQxRTM3RTcxRTM3RTYxRTM3QTBGMkEyQjdBMUYyQTJGNzUzMTA0MTI3QzE1N0EwMTMxMTI3QzE1N0ExMTMxMTI3QzE1N0EyMTMxMTI3QzE1N0EzMTMxMTI3QzE1N0E0MTMxMTI3QzE1N0E1MTMxMTI3QzE1N0E2MTMxMTI3QzE1N0E3MTMxMTI3QzE1QTlENEU0QTlEN0Y0QTlDNkUyMTI3Nzk0MjI2RDAwN0UxNDAxMDI3QTA3MkEzQTdBMDMyQTM1N0VCMzJBMkIyMEU3MEY3QTIzMkEzNDdBMzMyQTMzQkUwNzJBMzE2ODA5MjI3QTMzMkEzNDdBMjMyQTMzN0VCMzJBMkI1NEUzMjMyMzMwRTAwMkQyRTUzMEU3MDJEMkU0MzBFNTA2MzBFNDAzMDI3QjI5NTQzRUY1RjAwMzU0MUZDMzI1RjA5MDc3RUM3NTg0RkY3MzAyNzk0MDAyNzgzNDAyNzlERDAyNzlGODAyNzhEOTAyNzg5QTAyN0ExMTAyN0ExMTAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExNDAyN0ExQTAyN0FDRTAyN0ExNzAyN0ExNzAyN0ExNzAyN0ExNzAyN0ExNzAyN0ExNzdFQjMyQTJDQjQwNjJBN0VCMzJBMkQ2MDU2N0MwQjdFMTMyQTJFN0UxNzJBMkY3NTMxNzIxMjdDMTU3QTAxMzExMjdDMTU3QTExMzExMjdDMTUxMjdCMzM0MDM1MDI3NjczQjQwODEwNzUzMTc0MTI3QzE1N0VCMzNGRjFGNUYzNzVGNjAxMjJCNDAwMUM3NTMxNzUxMjdDMTU3RUIzM0ZGMjMwRTAwNTc1RjMwMjgwMDM3NUYzMDA3NUYzMDA3NUY2MDIyMjAyN0IyOTdFQjMyQTJDQjQwMDM1NzUzMTc2MTI3QzE1N0VCMzJBMzA1NDBGRjVGMTdFQjMyQTMwMjBFNzA5RTVFMTMwRTcwRDc0MDE4MDBCRTVFMTMwRTYwNDc0MDE4MDAyNzQwMDUzRjE4MEY1RjM3NUYzMDA3NUY2MDIyMjAyN0IyOUMwRjE3RUIzMkEzMDU0MEY0MkYxN0VCMzJBMkVCNDAwNDU3RUIzMkEyQ0I0MDEyNDc1MzE3NzEyN0MxNTdFQjMyQTMwNTQwRjc4MDU1M0UxM0Y4MDM3N0VCMzJBMzAyMEU3MDU1M0UxN0Y4MDJCNTNFMUJGODAyNkI0MDMxNzc1MzE3ODEyN0MxNTdFQjMyQTMwMjBFNzA1NDNFMTgwODAxMTQzRTE0MDgwMEM0M0UxQzBEMEYxNzUzMTA3MTI3QzE1MjJEMEYxMDI3NjZGN0VCMzJBMkNCNDA5MjM3NTMxNzkxMjdDMTU3RUIzMkEyRUJFQjMzRkYxNjgxMUNBQjhDMEYxMTI0M0Q0RDBGMURBQjg1MDc2N0FCMzNGRjE4MDZEQjQwNTA4NzUzMTdBMTI3QzE1ODA2MkI0MDMxOTc1MzE3QjEyN0MxNTdFQjMyQTJFQjQwMTU1N0VCMzNGRjI0NDAxN0FCMzNGRjI4MDQ2QjQwMTE5NzUzMTdDMTI3QzE1N0VCMzJBMkVCNDAxMzk3RUIzM0ZGMjU0RkU3QUIzM0ZGMjgwMkFCNDA3MkE3RUIzMkEyRDYwMjQ3QzBCN0UxMzJBMkU3RTE3MkEyRjc1MzE3MzEyN0MxNTdBMDEzMTEyN0MxNTdBMTEzMTEyN0MxNTEyN0I1RjQwMDMwMjc2NkYwMjdCMjk3RUIzMkEyQ0I0MEJGNjc1MzE3RDEyN0MxNTdFQjMyQTJFN0VBMzJBMzA0Q0FCNzhFNDgwREY3RUIzMkEyQ0I0MEFEQjc1MzE3RTEyN0MxNTdFQjMyQTJFNzBDRkY1RjM3NUY2MDEyMjAyN0IyOTAyN0IyOTAyN0IyOTdFQjMyQTJDQjQwNDIwNzUzMUMzMTI3QzE1N0UwNDAwMDE3RTE3MkEyRDdFMTgyQTNDN0ExQzAwMDA3RTQ3MkEzMTEyN0MyMTAyN0FDOEI0MDYzQTc1MzFDMTEyN0MxNTdFNTgwMDAwN0E1QzAwRkU3RENBN0VENzJBMkQ3RTc4MkEzQzdBN0MwMDAwN0U3NzJBMzE3NTMxQzExMjdDMTVDMEE4QzA4N0MyQUZBOUQ1ODcxMjdDNUFEMDg3RDBBODQwNEY4MDRBQjQwMDFDQzJBRkE5RDU4NzEyNzY2RkU0OERFRjhERUY4REVGRDVFMEY3QzBEMUNBMDJGRkNBMDYwMDAwMzJCNDA5MTI3RTU3MkEyRDRENTU2ODA1QTlEMkIxODAwM0E5QzJCMTgwMTZCNDA3MTZDMkFGN0UwNzJBMkY3RTE3MkEyREMwRDFDQTE4Q0EzOENBMjgzMjAyNzY2RjAyN0IyOTdFQjMyQTJDQjQwMzE1NzUzMUMyMTI3QzE1N0UwNDAwMDE3RTE3MkEyRDdFNTcyQTMxMDI3NjczQjQwNTM5NzUzMUMwMTI3QzE1QzBBOEMwODdDMkFGQTlENTg3N0UwODJBM0M3QTBDMDAwMDdFMjQwMEZFN0UzNzJBMkQ3RTQ3MkEzMTEyN0MyMUQwODdEMEE4N0UwODJBM0M3QTBDMDAwMDdFNTcyQTMxMDI3NjczMDI3QjI5NzUzMTA3MTI3QzE1NDNFMUMwMjJDMEE4QzA4N0MyQUZBOUQ1ODcxMjdCOUU0MDE5N0UwODJBM0M3QTBDMDAwMENBMEJDQTQ5MTI3QzIxREE1OURBMEJEMDg3RDBBOEMzMjJEMDg3RDBBODIyQzBBOEMwODdDMkFGQTlENTg3MTI3QjlFNDAyQjdFNTgwMDAwN0E1QzAwRkU3RjYxN0U3ODJBM0M3QTdDMDAwMDdFNzcyQTMxQkQ3NDc4MTE3NTMxQzExMjdDMTUxMjdDNUE0MDA2RDA4N0QwQThDMzIyRDA4N0QwQThEMzIyN0UyNDAwRkU3RTM0N0ZDQTBCMUE1MEM1RjA3RDYyN0Q3NTdEODc3RTM0N0ZDMjdFMUJCMDdFMzQ3RjAzQjQwMTA0N0UzNDdGQ0M3RTFCQjBCQzBCNTA0OTNFMDAzRTAwMEE1MDJENzUwQjNBMzA2OTUzMDAwMkJEMzg1MDAyMkQzOEJDMUI1MDMwM0UxMDNFMTAwQTUxMkQzNTY5NDEwMDAyMEIxQTMwQkQzODUwMDIyRDM4QkU0NEZGRkY3ODA1N0UxQjkwMEE0OTRENDQ2ODBDQkU0NDAwRkYyODA0N0U0NDAwRkZDMzIyRDMyMkZBCis6MDAwNDdGQzYwMDAxMTAwNDAwQTIKKzowMTRBN0MxNTAwQ0EwODdFMDEzMTdBMDMzRkYwREEwODIyN0UxQkMwN0EwQkMwMEIxNDBCMzQxQjQ0NzhGMjIyN0Y2RjdGRjAxQkZDN0M1NDdEMzI4MDA4Q0ExQkNBMUJDQTFCQ0ExQjlFNDQwMDEwNTBGMjJFNDQwMDEwNjgwNkNBNDgxQjQ0NzhGQTdGRjY4OUU0Q0E2QjVFRDQwMDNGNjgyMDdFODQwMDQwOUQ4RERBNkJCRDg3MzgxNkNBNzk3RDc4MTI3Qzg0REE3OTQwMDg5RDc4NjgwMjgwMDVDMkQ3MjJEQTZCNDM5MDMwNzRBQTM5QjU1NTU1NzQ1NTM5QjUyQUFBNzRBMDM5QjU1NTU1N0UwNDAwNDA5RDcwNTAwNjJENzA3RDA3NkQ3NzdDMzE3RTdCMDA3QTZCMDAwQjdDMEI2Q0E1RDlGMzdGMTYxQjFDN0U1NDI3MTA3RTFCMTBCQzEwNjgwNjFCNTQ3OEY1ODAyQzZEMDA3QzIwN0YxNjlGMTA3RjI3OUYyMDdFMkIwMDdFMUIxMEJDMDE3ODE2MEIyQzBCMUNBNURCRUY3Q0I2MjBFMDAzNjM5MDMwNEQ3Nzc4OTNDMkQ3MjJEMkQ3MjIwMDA0MDAwNDQyMDgwNjA0MDIwNDAwMDIwMTA0MDEwMjgyMDgwMDAwMDAwMDAwMDAwMjAyMDIwMjAyMDQwMjA4MTAwMjEwMDQwMjA4MDAwMTAxMDgwMDAxMDAwMjAwMDIwMjA4MDIwNDIwMDQ3RTE4N0ZCRDdBMUMwMEZFMEIxQTAwNUUxMDFGQkUxMDFBMzgxQTBBNTEyMzdFMTg3Q0ZBN0ExQzAwRkYyRDM1MEIxQTUwNjAwOEE1QjgwMjAzNEVBMDA4MjI4MEZFNzMKKzowMDAwMDAwMDAxRkYKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lZGdlcG9ydC9kb3duMi5IMTYgYi9maXJtd2FyZS9lZGdlcG9ydC9kb3duMi5IMTYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY0YjRmZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24yLkgxNgpAQCAtMCwwICsxLDI5IEBACis6MDAwNDAwMDAwMDAyMDAwMDAzRjcKKzowMDAyMDAwMDA0MDBGRkZCCis6MDAwNjAwMDAwMDAyMDA4MDAyNDUxNDFECis6MDAwMzAwMEIwMDAyNDRBNTA3Cis6MDAwMzAwMTMwMDAyNjNBQkRBCis6MDAwMzAwMUIwMDAyMDAxQkM1Cis6MDAwMzAwMjMwMDAyMDAyM0I1Cis6MDAwMzAwMkIwMDAyMDAyQkE1Cis6MDAwMzAwMzMwMDAyMDAzMzk1Cis6MDAwMzAwM0IwMDAyMDAzQjg1Cis6MDAwMzAwNDMwMDAyMDA0Mzc1Cis6MDAwMzAwNEIwMDAyMDA0QjY1Cis6MDAwMzAwNTMwMDAyNjc1RkUyCis6MDAwMzAwN0IwMDAyMDA3QjA1Cis6MDAwNzAwODAwMDdFMTQwMDAwMDI0MDUyNTMKKzowQjY2MzAwMDAwMTIzMDY0MTIzMEZGMTIzMTJGMTIzMEIwODBGMkU1MjM2MDE5N0UxNDAwMDAwOUIxMDFCOUI0MDAwMjgwMDUxNDE5QjEwMUI5QTUwQUJFMjEyRTc4RUIyMkMyQUY3RUIzM0ZGMUI0MDEwMzEyNjU2N0QyQUYyMkMyQUY3RUIzM0ZGMUI0MDExRDc0NDA3QUIzOTEwMDdFQjM5MTFBNkNBQTYwMEZDQTBCQ0EzOUNBNTkxMjY0MjREQTU5REEzOURBMEJEMkFGMjJDMkFGRTUyMjYwNDM3RTA3MDFDQkJFMDQwMzgwMzgzOTdFMDQ4MDAwN0UyMDAwMTM1MDIxMDlBMDAwMDQ0RUEwMDUxOUEwMDAwNDBBMzIwOTUzMzUzMzVFNTEyNzY4MEIwOUEwMDAxMDRFQTAwMTE5QTAwMDEwMkUwNDAxMDBBNTBBQkUyMTJFNzhEMTc1MjIwMEQyQUYyMkMyQUZFNTI2NjAzNjdFMjAwMDdFMzAwMUU1MjZBNTVCNjgyMTdDQjIyMzBBMkI0OTMyMDE3OUJFMzQwMDAwNjgxMjdFQjEyMUE1NEI3QUIxMjFDQTE5NDkyMjMwRUY5OTI0REExOTNFMzBBNTBBQkUyMTJFNzhEMEQyQUYyMjQ2NEY0OTdDNENBOTRGRDY1MzAzNTYzMDU5NUQ1QzhBQzJBRkU1MjQ2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzExQ0RBQjhBNTBBQkUyMTJFNzhFRkQyQUYyMkNBMjgxMjM1NENEQTI4NDAwOTBBMjIwOUIyMzUzM0Y0NTIyNDIyQzJBRkU1MjM2MDE0N0UyMDAwMTM1MDA3Q0FCODEyMzE0Q0RBQjhBNTBBQkUyMTJFNzhFRkQyQUYyMjdDQjIyMzBBMkI0OTIyMzE1Nzg5MjQzMTY3MzFEMDMyMzkzMkEyMzMwQjMzNzQzM0REMzQ0NjdFMjcwMTc5QkUyNDAwMDA3ODI0N0UyNDgwMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0OTQ1N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxODk2ODBEN0EyNzAxODk3RTYwOUM3QTYzMDFCOTgwMjc3RTYzMDFCOUE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMTg2QzAwN0EwMzAxQjkxMjY0ODYyMjdFMjcwMTdCQkUyNDAwMDA3ODI0N0UyNDgxMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0QzcyN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOEI2ODBEN0EyNzAxOEI3RTYwOUM3QTYzMDFCQTgwMjc3RTYzMDFCQUE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMTk2QzAwN0EwMzAxQkExMjY0ODYyMjdFMjcwMTdEQkUyNDAwMDA3ODI0N0UyNDgyMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI0RjlGN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOEQ2ODBEN0EyNzAxOEQ3RTYwOUM3QTYzMDFCQjgwMjc3RTYzMDFCQkE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUE2QzAwN0EwMzAxQkIxMjY0ODYyMjdFMjcwMTdGQkUyNDAwMDA3ODI0N0UyNDgzMDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1MkNDN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOEY2ODBEN0EyNzAxOEY3RTYwOUM3QTYzMDFCQzgwMjc3RTYzMDFCQ0E1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUI2QzAwN0EwMzAxQkMxMjY0ODYyMjdFMjcwMTgxQkUyNDAwMDA3ODI0N0UyNDg0MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1NUY5N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOTE2ODBEN0EyNzAxOTE3RTYwOUM3QTYzMDFCRDgwMjc3RTYzMDFCREE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUM2QzAwN0EwMzAxQkQxMjY0ODYyMjdFMjcwMTgzQkUyNDAwMDA3ODI0N0UyNDg1MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1OTI2N0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOTM2ODBEN0EyNzAxOTM3RTYwOUM3QTYzMDFCRTgwMjc3RTYzMDFCRUE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUQ2QzAwN0EwMzAxQkUxMjY0ODYyMjdFMjcwMTg1QkUyNDAwMDA3ODI0N0UyNDg2MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1QzUzN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOTU2ODBEN0EyNzAxOTU3RTYwOUM3QTYzMDFCRjgwMjc3RTYzMDFCRkE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUU2QzAwN0EwMzAxQkYxMjY0ODYyMjdFMjcwMTg3QkUyNDAwMDA3ODI0N0UyNDg3MDAwOUIyMDAxNENBQjg1RUIwMUVEQUI4NjgwQkNBMTk3RDEyMTI1RjgwN0QyMURBMTkzMEU2MTg3RTYwMDA4MDFFQkUyNzAxOTc2ODBEN0EyNzAxOTc3RTYwOUM3QTYzMDFDMDgwMjc3RTYzMDFDMEE1QkUwMDFGN0U2MDAxN0VCMDAwN0VBMEM4MTI2MTM2NDAxMTc1MkZCMzEyNzMzNUMyMUY2QzAwN0EwMzAxQzAxMjY0ODYyMkMyQUY3RTA3MDFDQkJFMDQwMDAwNzgyODc0MjA3QUIzOTEwMDdFQjM5MTE1MzBFNTFCN0VCMzkxMUFCRUIwM0YzODBDODUzMTJGMTI3MzM1NzQ4MDdBQjM5MTFFNzQyMDdBQjM5MTE1RDJBRjIyMzUzQjM2RTgzNzAwMzcxQjM3QjYzODRFMzg2OTM4RkIzODg0MzhDNTdDQjNCRUIwMDkyODIyNzUyRjA5MTI3MzM1NzU1NzAyNzQyMDdBQjM5MTAwNzQwMTdBQjM5MTExNzQ0MDdBQjM5MTAwNzQwMTdBQjM5MTExMjJDMEE4QzJBRjIzNkNBQTJFNTQzNEU2MEI1ODUwODk1NDAxMDIwNDA4MTAyMDQwODA3NTJGQjAxMjczMzUwQTIyMDlCMjM1MzM0MjI0RDBBODIyN0NCMjIzMEEzQjQ5MzMzNTU3ODkzNDM1NjczNTk1MzVDMzM1RjEzNjFGMzY0RDM2N0IzNkE5MTI0MUJBRDIyOEQyMDhDMjQwQzI0OEMyMzhDMjMwNkQwMDdBMDMwMUI5N0UwNDAwMjA3QTA3MDE5OTdFMDQwMDM4N0EwNzAxQTkxMjQxMjcxMjVGQjcwMjM2RDcxMjQxRDdEMjI5RDIwOUMyNDFDMjQ5QzIzOUMyMzE2RDAwN0EwMzAxQkE3RTA0MDAyMDdBMDcwMTlCN0UwNDAwMzg3QTA3MDFBQjEyNDEyNzEyNUZFMDAyMzZENzEyNDFGNEQyMkFEMjBBQzI0MkMyNEFDMjNBQzIzMjZEMDA3QTAzMDFCQjdFMDQwMDIwN0EwNzAxOUQ3RTA0MDAzODdBMDcwMUFEMTI0MTI3MTI2MDA5MDIzNkQ3MTI0MjExRDIyQkQyMEJDMjQzQzI0QkMyM0JDMjMzNkQwMDdBMDMwMUJDN0UwNDAwMjA3QTA3MDE5RjdFMDQwMDM4N0EwNzAxQUYxMjQxMjcxMjYwMzIwMjM2RDcxMjQyMkVEMjJDRDIwQ0MyNDRDMjRDQzIzQ0MyMzQ2RDAwN0EwMzAxQkQ3RTA0MDAyMDdBMDcwMUExN0UwNDAwMzg3QTA3MDFCMTEyNDEyNzEyNjA1QjAyMzZENzEyNDI0QkQyMkREMjBEQzI0NUMyNERDMjNEQzIzNTZEMDA3QTAzMDFCRTdFMDQwMDIwN0EwNzAxQTM3RTA0MDAzODdBMDcwMUIzMTI0MTI3MTI2MDg0MDIzNkQ3MTI0MjY4RDIyRUQyMEVDMjQ2QzI0RUMyM0VDMjM2NkQwMDdBMDMwMUJGN0UwNDAwMjA3QTA3MDFBNTdFMDQwMDM4N0EwNzAxQjUxMjQxMjcxMjYwQUQwMjM2RDcxMjQyODVEMjJGRDIwRkMyNDdDMjRGQzIzRkMyMzc2RDAwN0EwMzAxQzA3RTA0MDAyMDdBMDcwMUE3N0UwNDAwMzg3QTA3MDFCNzEyNDEyNzEyNjBENjAyMzZENzdFQTBEMDdFNjAwRjEyNjEzNjQwMDUxMjY0ODZDMkQ3MjI3NTJGQjExMjczMzUwQTUyMjM2RDAwNTkwNTAwMzIxMjQxODMxMjQxOUZEMEE4MjI3NTJGQjIxMjczMzUwQTIyMDlCMjM1MzM0MjIzN0VCMDlDMTlCMjAxQjkxMjMxNENEMEE4MjI3RTA0ODAwMDRDMDIwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA4MTkzMDAwMEM3Qzc0NUU3MDAxNjgxMjQ0NDBDQUI4MDlCMDAwMTA0NDAyMTlCMDAwMTBEQUI4ODAwMjU0QkY3Qzc0NUU3MDA4NjgwNDQ0MDg4MDAyNTRGNzA5MzAwMDBDQ0FCODc0QkYxOUIwMDAwQ0RBQjgxOUIwMDAwODE5MzAwMDBDMEE2MjA5QjYzNTMzM0UyMDBBNjI3Qzc0NUU3MDAyNjgyMDQyMjdDQUI4NzQ2MTE5QjAwMDA4N0U0NDAwMTA1OTQ2MDFBOTA5QjAwMDEwNDQwMTE5QjAwMDEwREFCODgwMTFGNDUyMjc3NEExMTlCMDAwMDg3RTQ0MDAzODU5NDYwMUE5RDBBODIyN0M3NDdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMDlCMDAwMDg3Qzc0NUU3MDAxNjgwNDQ0ODA4MDAyNTQ3RjdDNzQ1RTcwMDg2ODA0NDQwMjgwMDI1NEZEMTlCMDAwMDgxOTMwMDAwQzBBNjIwOUI2MzUzM0E1RkRGNEE1RkVDQTI4M0UyMDBBNjJEQTI4N0M3NDVFNzAwMjY4MTBBNUVENDIyODQyMjY3RTQ0MDAwODU5NDYwMTk5ODAwNEE1RUU1MjI4N0M3NDVFNzAwNDY4MTBBNUVENDIyOTQyMjY3RTQ0MDAwODU5NDYwMTk5ODAxNUE1RUU1MjI5N0M3NDVFNzAwMjc4MEE1MjI2N0U0NDAwMjA1OTQ2MDE5OTEyNDJBMkQwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTAxOTMwMDAwQ0QwQTgyMjdFMDQ4MDAwNEMwMjA5MzAwMDBDNzRCRjE5QjAwMDBDMTk0MDAwMTgxOTMwMDAwQ0QwQTgyMjc1MkZCNTEyNzMzNTdFMDQ4MDAwNEMwMjA5QjAwMDBDNDQ0MDE5QjAwMDBDRTU1OEI0MDcyMzA5QjAwMDEwNEVCMDAyMTlCMDAwMTAwOTMwMDAwQzc0QkYxOUIwMDAwQzA5QjAwMDA0NTRGNzE5QjAwMDA0MTkzMDAwMENEMEE4MjI3NTJGQjYxMjczMzU3RTA0ODAwMDRDMDJFNTU4QjQwNzE4MDkzMDAwMEM3NEJGMTlCMDAwMEMwOUIwMDAwNDQ0MDgxOUIwMDAwNDE5MzAwMDBDMDlCMDAwMEM1NEJGMTlCMDAwMENEMEE4MjI3NTJGQjQxMjczMzU3QTIxMkYxMjczMzU3QTQxMkYxMjczMzU3RUIwMDE3RUEwQzg3QzY0MTI2MTM2MTI2NDg2RDBBODIyMzkyRTM5NzUzOUJDM0EwMzNBNEEzQTkxM0FEODNCMUY3NTJGNTUxMjczMzU3NTJGMDAxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE2OTdFMjcwMTc5MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDA4MkMzODBGMUIzNDc4RUM3QTE3MDE2OTdBMjcwMTc5MDI0NjRGN0UxNDA0MkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjAxMTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNkI3RTI3MDE3QjJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQwQzJDMzgwRjFCMzQ3OEVDN0ExNzAxNkI3QTI3MDE3QjAyNDk3QzdFMTQwODJEODBFQjc1MkY1NTEyNzMzNTc1MkYwMjEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTZEN0UyNzAxN0QyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MTAyQzM4MEYxQjM0NzhFQzdBMTcwMTZEN0EyNzAxN0QwMjRDQTk3RTE0MEMyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDMxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE2RjdFMjcwMTdGMkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDE0MkMzODBGMUIzNDc4RUM3QTE3MDE2RjdBMjcwMTdGMDI0RkQ2N0UxNDEwMkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjA0MTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNzE3RTI3MDE4MTJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQxODJDMzgwRjFCMzQ3OEVDN0ExNzAxNzE3QTI3MDE4MTAyNTMwMzdFMTQxNDJEODBFQjc1MkY1NTEyNzMzNTc1MkYwNTEyNzMzNTdBNjEyRjEyNzMzNTdBNzEyRjEyNzMzNTdFMTcwMTczN0UyNzAxODMyRDIzN0UwOUIwMEIwNDdBMTlCMDBCMTRCRTE0MUMyQzM4MEYxQjM0NzhFQzdBMTcwMTczN0EyNzAxODMwMjU2MzA3RTE0MTgyRDgwRUI3NTJGNTUxMjczMzU3NTJGMDYxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3RTE3MDE3NTdFMjcwMTg1MkQyMzdFMDlCMDBCMDQ3QTE5QjAwQjE0QkUxNDIwMkMzODBGMUIzNDc4RUM3QTE3MDE3NTdBMjcwMTg1MDI1OTVEN0UxNDFDMkQ4MEVCNzUyRjU1MTI3MzM1NzUyRjA3MTI3MzM1N0E2MTJGMTI3MzM1N0E3MTJGMTI3MzM1N0UxNzAxNzc3RTI3MDE4NzJEMjM3RTA5QjAwQjA0N0ExOUIwMEIxNEJFMTQyNDJDMzgwRjFCMzQ3OEVDN0ExNzAxNzc3QTI3MDE4NzAyNUM4QTdFMTQyMDJEODBFQjY0Cis6MzMzNTQwMDAwMDdFMDQwMDAxN0UxNDdGRjg3RTI0MDBGRTdEMzEwQjFBNTAxQjBBNTA3RTE0NDAxQjAyNDA3NDdFRjgwMDU5NzVCMERGN0VCMDAxN0FCMzkwMDA3RUY0NDAzMDAyNDA4QjEyNzQ0RUY1MkU3QUExMkQ3QTExNTgxMjZCMDIxMjQwRUI3RUIzM0ZGMTYwMDMxMjQzNzkxMjZCREVEMkFGMDIzMDAwN0UwNDAwRkY3RTE4NDA2MDdBMUMwMDAxODkxODdFQjAwMTdBQjM5NDAwN0FCMzJDMzU3RUIwMDE3QUIzOTMwMDg5MDg3RTA0MDBGRjdFMTg0MDgyN0ExQzAwMDE4OTE4N0VCMDAwN0FCMzkzMDA4OTA4N0UwODAwMjA3RTQ0MDQwMDdFNDAwMDdFRTQ0MDlEMDI3MzUwN0UwODAxNTk3RTQ0MkFERDdFNDAwMDdFRTQ0MEFGMDI3MzUwN0UwODAwNTk3RTQ0MDEwMDdFNDA1MzdFRTQ0MEMxMDI3MzUwNzU1NzAxNzU1NjAwN0UwNDAwMDg3NTU0NTg3NTU1MDg3NTUxMDg3NTUzMDE3NTg5MDE3NThBMDE3NThDMDBEMjhDN0UwNDAwMDI3QTA1NDI4OUY0NzVCNzdGNzVCODdGNzVCMzAxNzVCMjAxRDJBOTIyNzVCMERGRTRENUUwRkQ3NUIwRUY3RTI0ODAwMDdFMTEyRTdFQTAwODE5QTIwMDEwMkUyNDAxMDBBNUQ5RjI3RTIwMDAxMjQxODMwQjIwQkUyMTJFNzhGNjIyN0UwNDgwMDA0QzAyNzRCRjE5QjAwMDBDNzQxMDE5QjAwMDA4NzQ4MDE5QjAwMDBDN0U1NDAwMDIxOUEwMDAwNDE5QjAwMDAwNzQwMzE5QjAwMDBDNzQwNzIwNjgwMjc0MEYxOUIwMDAwNDMwNkIxNzc0QkYxOUIwMDAwQzc0MjgyMDY4MDI3NDIwMTlCMDAwMDQ3NDAzMTlCMDAwMEM3NEE3MTlCMDAwMDg3NDBDMTlCMDAwMTAyMjdFMDQ4MDAwNEMwMkU0MTlCMDAwMDQwOUIwMDAxMDU0MDgxOUIwMDAxMDc0QTcxOUIwMDAwODIyN0NCMjIzMEEyQjQ5MjI0MUFBODkyNDQxQkE0MUQ3NDFGNDQyMTE0MjJFNDI0QjQyNjg0Mjg1QzIxMEMyMThDMjA4N0UwNDA0MkQ3QTA3MDE1OTdBMDcwMTY5NkQwMDdBMDcwMTc5N0EwNzAxODkyMkMyMTFDMjE5QzIwOTdFMDQwODJEN0EwNzAxNUI3QTA3MDE2QjZEMDA3QTA3MDE3QjdBMDcwMThCMjJDMjEyQzIxQUMyMEE3RTA0MEMyRDdBMDcwMTVEN0EwNzAxNkQ2RDAwN0EwNzAxN0Q3QTA3MDE4RDIyQzIxM0MyMUJDMjBCN0UwNDEwMkQ3QTA3MDE1RjdBMDcwMTZGNkQwMDdBMDcwMTdGN0EwNzAxOEYyMkMyMTRDMjFDQzIwQzdFMDQxNDJEN0EwNzAxNjE3QTA3MDE3MTZEMDA3QTA3MDE4MTdBMDcwMTkxMjJDMjE1QzIxREMyMEQ3RTA0MTgyRDdBMDcwMTYzN0EwNzAxNzM2RDAwN0EwNzAxODM3QTA3MDE5MzIyQzIxNkMyMUVDMjBFN0UwNDFDMkQ3QTA3MDE2NTdBMDcwMTc1NkQwMDdBMDcwMTg1N0EwNzAxOTUyMkMyMTdDMjFGQzIwRjdFMDQyMDJEN0EwNzAxNjc3QTA3MDE3NzZEMDA3QTA3MDE4NzdBMDcwMTk3MjI3Q0IyMjMwQTJCNDkyMjQyQUQ4OTI0NDJCRDQyRDQ0MkVCNDMwMjQzMTk0MzMwNDM0NzQzNUUzMDQwMDcyMDU4MDRDMjI4ODAwQzMwNDgwNzIwNTAwNEMyMjg4MDAyRDIyODIyMzA0MTA3MjA1OTA0QzIyOTgwMEMzMDQ5MDcyMDUxMDRDMjI5ODAwMkQyMjkyMjMwNDIwNzIwNUEwNEMyMkE4MDBDMzA0QTA3MjA1MjA0QzIyQTgwMDJEMjJBMjIzMDQzMDcyMDVCMDRDMjJCODAwQzMwNEIwNzIwNTMwNEMyMkI4MDAyRDIyQjIyMzA0NDA3MjA1QzA0QzIyQzgwMEMzMDRDMDcyMDU0MDRDMjJDODAwMkQyMkMyMjMwNDUwNzIwNUQwNEMyMkQ4MDBDMzA0RDA3MjA1NTA0QzIyRDgwMDJEMjJEMjIzMDQ2MDcyMDVFMDRDMjJFODAwQzMwNEUwNzIwNTYwNEMyMkU4MDAyRDIyRTIyMzA0NzA3MjA1RjA0QzIyRjgwMEMzMDRGMDcyMDU3MDRDMjJGODAwMkQyMkYyMjQ0NjY0MzhBQkVCMDAyNDAwMTIyMjMwQTVCNDk1NTQzNzU5OTU0RDMyMjdFQjAwMDdBQjM5NDAwN0FCMzJDMzUxMjQ0N0E3RTA0MjgyRDdBMDcwMUMxN0EwNzAxQzM3RTA0MjQyRDdBMDcwMUM3N0EwNzAxQzk3RTA0NjY3RjdBMDU0Qjc0MjA3QUIzOTEwMDc0NjA3QUIzOTExQzc0MTI3QUIzOTEwNjc0NDA3QUIzOTEwNzc0MUU3QUIzOTExMDc0NDg3QUIzOTExMjc0MTA3QUIzOTExMzc0M0Y3QUIzOTExNDc0NDA3QUIzOTEwMDc0NjA3QUIzOTExQzc0MTQ3QUIzOTEwNjc0NDA3QUIzOTEwNzc0MTY3QUIzOTExMDc0MDg3QUIzOTExMTc0MjA3QUIzOTExMzc0M0Y3QUIzOTExNDc0NjA3QUIzOTEwMDc0NjA3QUIzOTExQzc0MTY3QUIzOTEwNjc0MjA3QUIzOTEwNzc0MkY3QUIzOTExMDc0NDg3QUIzOTExMjc0MTA3QUIzOTExMzc0M0Y3QUIzOTExNDc0MDI3QUIzOTEwNjc0MEY3QUIzOTEwNzEyNDBGQTdFMjAwMDEyNDE5RjBCMjBCRTIxMkU3OEY2RDJBODIyN0VCMDAxN0FCMzk0MDA3QUIzMkMzNTEyNDQ3QTc1QjBERkMyQTgyMjc0MDI3QUIzOTEwNjc0MDE3QUIzOTEwNzdFMjAwNDdDQjJDMkQ3MTMxMzEzMTM3QUIzOTEwMDc0NjA3QUIzOTExQzc0MDI3QUIzOTExMkE1REFFNTIyQ0EwOTEyMzAwRTEwMDEzNEQ1NTE0MDc0MDA3QUIzOTEwMDc0MDI3QUIzOTEwNjdFQjM5MTA3NzQwMzdBQjM5MTA2N0VCMzkxMDc3RUIzOTExNDdFQjM5MTA0NjM1MzAxN0UwMDU0MkUwMTUzQTVFNkY1NTE4MDEyMjAwMjFENzU1MzAwODU1NDUxRDIwMjc0MDM4MDBEMzAwMjBFQzIwMjdFMDA1NjJFMDE1M0E1RTY3QUIzOTAwMERBMDkzMjQ1NkY0NThCNDVBNzQ1QzM0NURGNDVGQjQ2MTc0NjMzQzBEMEMwRDFDMEUwQzBGMENBMEJDQTFCQ0EyQkQyMDE3NTJGODkxMjczMzU3RUIzOTAwMDYwMjg3RTE0ODAwMDdFMDAwMDEzNTAxM0NBMEJDQTU5N0NCMDIzMEEyQjQ5MjI0NTA0OTkyNERBNTlEQTBCQTUwQUE1MDhCRTAxMkU3OEUxODBEMjMwMDQwNUMyMDQxMjY0ODZEQTJCREExQkRBMEJEMEYwRDBFMEQwRDFEMEQwMzIwOUIxMDAwODIwRTAxNDc1MkY4MDEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjFBQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjgxMTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MUVCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODIxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYyMkI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4MzEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjI2Qjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjg0MTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MkFCODk1NDIyMDlCMTAwMDgyMEUwMTQ3NTJGODUxMjczMzU1NDNFMEE1QjdFNDQwMEZGNjk1MjYyRUI4OTU0MjIwOUIxMDAwODIwRTAxNDc1MkY4NjEyNzMzNTU0M0UwQTVCN0U0NDAwRkY2OTUyNjMyQjg5NTQyMjA5QjEwMDA4MjBFMDE0NzUyRjg3MTI3MzM1NTQzRTBBNUI3RTQ0MDBGRjY5NTI2MzZCODk1NDIyMTAwODAxMjIyMDI4MDNEMjA4MjI3NTJGQTAxMjczMzU3RTE0ODAwMDgwMDYyMDI4MDNEMjA4MjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNDk0NTMwMzAwNjIwRTY0RkQyMDgyMjMwRTYwMkQyNjA3RTM3MDE3OTdFMjcwMTk5OUQzMjQwMzE3RDAyMkUwNTMyN0EwNTMyN0EzNzAxNzk3RTM3MDE1OTdENDMyRDQyQkU0NDA4MkMzODY4N0E0NzAxNTk3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDYwQzQyMkMyNjAyRDIzNjg3ODZEMzM4MDFBN0UyNzAxNzlCRTI0MDAwMDY4NkFCRTI3MDE5OTI4MDQ3RTI3MDE5OTdFMzcwMTc5OUQzMjdEMDIyRTA1MzI3QTA1MzI3QTM3MDE3OTdFMzcwMTU5N0Q0MzJENDJCRTQ0MDgyQzM4MTM3QTQ3MDE1OTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQwODJEOUQyNDEyNjlGMDdFMzQwNDJEN0QyNDJENDM3QTQ3MDE1OTEyNjlGMEJFMjUyMDc4MDMwMjQ2QzIyMkQyMDg3RTA0MDQyRDdBMDcwMTU5N0EwNzAxNjk3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUE5MkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDAwMDAyRTI3MDFBOTFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzgwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMDIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwMDAwMkU2NzAxQTk5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAwN0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNDgxRTc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzODBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEwMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0ODFFREFCODAyNDk0NTA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjU4ODAwMkMyNThBNUZENUU1MDgwNjgwNEQyNTA4MDAyQzI1MDEyNDJCRDAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjQ4NzI3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwOTAxMjIyMDI5MDNEMjA5MjI3NTJGQTExMjczMzU3RTE0ODEwMDgwMDYyMDI5MDNEMjA5MjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNEM3MjMwMzEwNjIwRTY0RkQyMDkyMjMwRTYwMkQyNjE3RTM3MDE3QjdFMjcwMTlCOUQzMjQwMzE3RDAyMkUwNTM0N0EwNTM0N0EzNzAxN0I3RTM3MDE1QjdENDMyRDQyQkU0NDBDMkMzODY4N0E0NzAxNUI3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDYxQzQyMkMyNjEyRDIzNjg3ODZEMzM4MDFBN0UyNzAxN0JCRTI0MDAwMDY4NkFCRTI3MDE5QjI4MDQ3RTI3MDE5QjdFMzcwMTdCOUQzMjdEMDIyRTA1MzQ3QTA1MzQ3QTM3MDE3QjdFMzcwMTVCN0Q0MzJENDJCRTQ0MEMyQzM4MTM3QTQ3MDE1Qjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQwQzJEOUQyNDEyNjlGMDdFMzQwODJEN0QyNDJENDM3QTQ3MDE1QjEyNjlGMEJFMjUyMDc4MDMwMjQ5RUYyMkQyMDk3RTA0MDgyRDdBMDcwMTVCN0EwNzAxNkI3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUFCMkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDAxMDAyRTI3MDFBQjFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwMzkwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMTIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwMTAwMkU2NzAxQUI5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAxN0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNEI0Qjc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzOTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjExMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0QjRCREFCODAyNEM3MjA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjU5ODAwMkMyNTlBNUZENUU1MDgwNjgwNEQyNTE4MDAyQzI1MTEyNDJENDAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjRCOUY3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwQTAxMjIyMDJBMDNEMjBBMjI3NTJGQTIxMjczMzU3RTE0ODIwMDgwMDYyMDJBMDNEMjBBMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNEY5RjMwMzIwNjIwRTY0RkQyMEEyMjMwRTYwMkQyNjI3RTM3MDE3RDdFMjcwMTlEOUQzMjQwMzE3RDAyMkUwNTM2N0EwNTM2N0EzNzAxN0Q3RTM3MDE1RDdENDMyRDQyQkU0NDEwMkMzODY4N0E0NzAxNUQ3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDYyQzQyMkMyNjIyRDIzNjg3ODZEMzM4MDFBN0UyNzAxN0RCRTI0MDAwMDY4NkFCRTI3MDE5RDI4MDQ3RTI3MDE5RDdFMzcwMTdEOUQzMjdEMDIyRTA1MzY3QTA1MzY3QTM3MDE3RDdFMzcwMTVEN0Q0MzJENDJCRTQ0MTAyQzM4MTM3QTQ3MDE1RDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQxMDJEOUQyNDEyNjlGMDdFMzQwQzJEN0QyNDJENDM3QTQ3MDE1RDEyNjlGMEJFMjUyMDc4MDMwMjREMUMyMkQyMEE3RTA0MEMyRDdBMDcwMTVEN0EwNzAxNkQ3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUFEMkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDAyMDAyRTI3MDFBRDFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0EwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMjIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwMjAwMkU2NzAxQUQ5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAyN0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNEU3ODc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEyMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI0RTc4REFCODAyNEY5RjA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVBODAwMkMyNUFBNUZENUU1MDgwNjgwNEQyNTI4MDAyQzI1MjEyNDJFQjAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjRFQ0M3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwQjAxMjIyMDJCMDNEMjBCMjI3NTJGQTMxMjczMzU3RTE0ODMwMDgwMDYyMDJCMDNEMjBCMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTJDQzMwMzMwNjIwRTY0RkQyMEIyMjMwRTYwMkQyNjM3RTM3MDE3RjdFMjcwMTlGOUQzMjQwMzE3RDAyMkUwNTM4N0EwNTM4N0EzNzAxN0Y3RTM3MDE1RjdENDMyRDQyQkU0NDE0MkMzODY4N0E0NzAxNUY3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDYzQzQyMkMyNjMyRDIzNjg3ODZEMzM4MDFBN0UyNzAxN0ZCRTI0MDAwMDY4NkFCRTI3MDE5RjI4MDQ3RTI3MDE5RjdFMzcwMTdGOUQzMjdEMDIyRTA1Mzg3QTA1Mzg3QTM3MDE3RjdFMzcwMTVGN0Q0MzJENDJCRTQ0MTQyQzM4MTM3QTQ3MDE1Rjc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQxNDJEOUQyNDEyNjlGMDdFMzQxMDJEN0QyNDJENDM3QTQ3MDE1RjEyNjlGMEJFMjUyMDc4MDMwMjUwNDkyMkQyMEI3RTA0MTAyRDdBMDcwMTVGN0EwNzAxNkY3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUFGMkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDAzMDAyRTI3MDFBRjFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0IwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxMzIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwMzAwMkU2NzAxQUY5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDAzN0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTFBNTc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjEzMjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1MUE1REFCODAyNTJDQzA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVCODAwMkMyNUJBNUZENUU1MDgwNjgwNEQyNTM4MDAyQzI1MzEyNDMwMjAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjUxRjk3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwQzAxMjIyMDJDMDNEMjBDMjI3NTJGQTQxMjczMzU3RTE0ODQwMDgwMDYyMDJDMDNEMjBDMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTVGOTMwMzQwNjIwRTY0RkQyMEMyMjMwRTYwMkQyNjQ3RTM3MDE4MTdFMjcwMUExOUQzMjQwMzE3RDAyMkUwNTNBN0EwNTNBN0EzNzAxODE3RTM3MDE2MTdENDMyRDQyQkU0NDE4MkMzODY4N0E0NzAxNjE3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDY0QzQyMkMyNjQyRDIzNjg3ODZEMzM4MDFBN0UyNzAxODFCRTI0MDAwMDY4NkFCRTI3MDFBMTI4MDQ3RTI3MDFBMTdFMzcwMTgxOUQzMjdEMDIyRTA1M0E3QTA1M0E3QTM3MDE4MTdFMzcwMTYxN0Q0MzJENDJCRTQ0MTgyQzM4MTM3QTQ3MDE2MTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQxODJEOUQyNDEyNjlGMDdFMzQxNDJEN0QyNDJENDM3QTQ3MDE2MTEyNjlGMEJFMjUyMDc4MDMwMjUzNzYyMkQyMEM3RTA0MTQyRDdBMDcwMTYxN0EwNzAxNzE3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUIxMkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDA0MDAyRTI3MDFCMTFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0MwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNDIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwNDAwMkU2NzAxQjE5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA0N0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTREMjc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzQzBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE0MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1NEQyREFCODAyNTVGOTA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVDODAwMkMyNUNBNUZENUU1MDgwNjgwNEQyNTQ4MDAyQzI1NDEyNDMxOTAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjU1MjY3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwRDAxMjIyMDJEMDNEMjBEMjI3NTJGQTUxMjczMzU3RTE0ODUwMDgwMDYyMDJEMDNEMjBEMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNTkyNjMwMzUwNjIwRTY0RkQyMEQyMjMwRTYwMkQyNjU3RTM3MDE4MzdFMjcwMUEzOUQzMjQwMzE3RDAyMkUwNTNDN0EwNTNDN0EzNzAxODM3RTM3MDE2MzdENDMyRDQyQkU0NDFDMkMzODY4N0E0NzAxNjM3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDY1QzQyMkMyNjUyRDIzNjg3ODZEMzM4MDFBN0UyNzAxODNCRTI0MDAwMDY4NkFCRTI3MDFBMzI4MDQ3RTI3MDFBMzdFMzcwMTgzOUQzMjdEMDIyRTA1M0M3QTA1M0M3QTM3MDE4MzdFMzcwMTYzN0Q0MzJENDJCRTQ0MUMyQzM4MTM3QTQ3MDE2Mzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQxQzJEOUQyNDEyNjlGMDdFMzQxODJEN0QyNDJENDM3QTQ3MDE2MzEyNjlGMEJFMjUyMDc4MDMwMjU2QTMyMkQyMEQ3RTA0MTgyRDdBMDcwMTYzN0EwNzAxNzM3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUIzMkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDA1MDAyRTI3MDFCMzFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0QwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNTIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwNTAwMkU2NzAxQjM5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA1N0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNTdGRjc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRDBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE1MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1N0ZGREFCODAyNTkyNjA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVEODAwMkMyNURBNUZENUU1MDgwNjgwNEQyNTU4MDAyQzI1NTEyNDMzMDAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjU4NTM3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwRTAxMjIyMDJFMDNEMjBFMjI3NTJGQTYxMjczMzU3RTE0ODYwMDgwMDYyMDJFMDNEMjBFMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNUM1MzMwMzYwNjIwRTY0RkQyMEUyMjMwRTYwMkQyNjY3RTM3MDE4NTdFMjcwMUE1OUQzMjQwMzE3RDAyMkUwNTNFN0EwNTNFN0EzNzAxODU3RTM3MDE2NTdENDMyRDQyQkU0NDIwMkMzODY4N0E0NzAxNjU3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDY2QzQyMkMyNjYyRDIzNjg3ODZEMzM4MDFBN0UyNzAxODVCRTI0MDAwMDY4NkFCRTI3MDFBNTI4MDQ3RTI3MDFBNTdFMzcwMTg1OUQzMjdEMDIyRTA1M0U3QTA1M0U3QTM3MDE4NTdFMzcwMTY1N0Q0MzJENDJCRTQ0MjAyQzM4MTM3QTQ3MDE2NTc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQyMDJEOUQyNDEyNjlGMDdFMzQxQzJEN0QyNDJENDM3QTQ3MDE2NTEyNjlGMEJFMjUyMDc4MDMwMjU5RDAyMkQyMEU3RTA0MUMyRDdBMDcwMTY1N0EwNzAxNzU3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUI1MkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDA2MDAyRTI3MDFCNTFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0UwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNjIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwNjAwMkU2NzAxQjU5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA2N0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNUIyQzc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRTBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE2MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1QjJDREFCODAyNUM1MzA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVFODAwMkMyNUVBNUZENUU1MDgwNjgwNEQyNTY4MDAyQzI1NjEyNDM0NzAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjVCODA3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyMTAwRjAxMjIyMDJGMDNEMjBGMjI3NTJGQTcxMjczMzU3RTE0ODcwMDgwMDYyMDJGMDNEMjBGMjIwOUIxMDAxNENBQjg1RUIwMUVEQUI4NjgwMzEyNUY4MDMwMzcwNjIwRTY0RkQyMEYyMjMwRTYwMkQyNjc3RTM3MDE4NzdFMjcwMUE3OUQzMjQwMzE3RDAyMkUwNTQwN0EwNTQwN0EzNzAxODc3RTM3MDE2NzdENDMyRDQyQkU0NDI0MkMzODY4N0E0NzAxNjc3NTJGOTQxMjczMzU3QTUxMkYxMjczMzUxMjY5RjAxMDY3QzQyMkMyNjcyRDIzNjg3ODZEMzM4MDFBN0UyNzAxODdCRTI0MDAwMDY4NkFCRTI3MDFBNzI4MDQ3RTI3MDFBNzdFMzcwMTg3OUQzMjdEMDIyRTA1NDA3QTA1NDA3QTM3MDE4NzdFMzcwMTY3N0Q0MzJENDJCRTQ0MjQyQzM4MTM3QTQ3MDE2Nzc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTAyNjlGMDc1MkY5NDEyNzMzNTdBNTEyRjEyNzMzNTlFNDQyNDJEOUQyNDEyNjlGMDdFMzQyMDJEN0QyNDJENDM3QTQ3MDE2NzEyNjlGMEJFMjUyMDc4MDMwMjVDRkQyMkQyMEY3RTA0MjAyRDdBMDcwMTY3N0EwNzAxNzc3NTJGOTQxMjczMzU3NTJGMDAxMjczMzUyMjc1MkY5MjEyNzMzNUQyMDQwOUIxMDAxNENBQjg1NDgyREFCODc4Njg3RTM3MDFDQjdFMjcwMUI3MkUyNDAwMDIyRDMyQkUzNDA0MDAzODM0N0QwMjJFMDUzMDdBMDUzMDdBMzcwMUNCN0UzNzAxQzk3RDQzMkQ0MkJFNDQyODJDMzgzQzdBNDcwMUM5N0UyNDA3MDAyRTI3MDFCNzFCMzgyMDBCMzU3QTUxMkYxMjczMzUwMjZBNjM3NTJGOTkxMjczMzUwOUIxMDAwNDU0RkExOUIxMDAwNDMwM0YwQTA5QjEwMDEwNTRGRTE5QjEwMDEwRDIxNzIyODA3RjdBNTEyRjEyNzMzNTlFNDQyODJEOUQyNDdFNjQwNzAwMkU2NzAxQjc5RTI0MDAwMjQwMTcxQjM4NjAwQjM1MTI2QTYzN0UzNDI0MkQ3RDI0MkQ0MzdBNDcwMUM5MDI2QTYzN0EzOUMwN0UzNDI0MkQ3QTM5RDAwQjM0MUI0NDgwRTU5RDMyN0NCNjU0MEYyMzIzMjM0NDA3N0E2OUIwN0E3OTcwMEIzNTc1MkY5MzEyNzMzNTdBNzEyRjEyNzMzNUJEMDQ2ODJCN0EwNzAxQzk3RTQ3MDFDQjJENDM3QTQ3MDFDQjJFMzUzMDdBMzUzMDIyRDIwNDA5QjEwMDE0MjBFMDEzMjI3RTA0MjQyRDgwMjg3RTA0MjQyRDgwMkE3RTA0MjQyRDgwQ0Y3RTA3MDFDQjdFMjQwM0ZFOUQyMDI4NDA3RTA3MDFDOTdFNDQyODJEN0Q2MDBCMDRCRDA0NjhEMjdENzAwQjA0QkQwNDY4RDA3RDU0OUQ1MEJEMjU0MDAyN0QyNTdEMzIwOUIxMDAxNENBQjg1NDFGQjQwMTMxREFCODdFMTlCMDdBMDlCMDBCMDQxQjI0NzhFNzAyNUU1OTc1MkY5OTEyNzMzNTA5QjEwMDA0NTRGQTE5QjEwMDA0MzAzRjBBMDlCMTAwMTA1NEZFMTlCMTAwMTBEMjE3MjJEQUI4MzBFMEQ4QkQzMjY4MDdDQUI4MTI1RTU5REFCODAyNUY4MDA5QjEwMDE4N0VBMDg4NzUyRjkwMTI3MzM1RjUyRjEyNzMzNUE1RkQ1RTUwMEE2ODFEQTVGRDVFNTAyMDY4MDREMjVGODAwMkMyNUZBNUZENUU1MDgwNjgwNEQyNTc4MDAyQzI1NzEyNDM1RTAyNjExMzc1MkY5MTEyNzMzNTA5QjEwMDE0N0FCMTJGMTI3MzM1MjBFMDA4RDIwNDdFQTA4MDAyNjExM0QyMDQzMEUxMDY3RUEwODAxMjYxMTNDQUI4NUVCMDFDREFCODY4MTI3RUEwQzAwOTYxMDAwMDEyNjEzNjA5QjEwMDE0MjBFMERCMjIwMjVFQUQ3NTJGOTUxMjczMzUyMjc1MkY5NjEyNzMzNTIyN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjU4ODAwMkMyNThBNUZENUU1MDgwNjgwNEQyNTA4MDAyQzI1MDAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1OTgwMDJDMjU5QTVGRDVFNTA4MDY4MDREMjUxODAwMkMyNTEwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUE4MDAyQzI1QUE1RkQ1RTUwODA2ODA0RDI1MjgwMDJDMjUyMDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVCODAwMkMyNUJBNUZENUU1MDgwNjgwNEQyNTM4MDAyQzI1MzAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1QzgwMDJDMjVDQTVGRDVFNTA4MDY4MDREMjU0ODAwMkMyNTQwMjYwRkY3QzAyN0UxNDgwMDA0QzIwMDlCMTAwMThBNUZENUU1MDIwNjgwNEQyNUQ4MDAyQzI1REE1RkQ1RTUwODA2ODA0RDI1NTgwMDJDMjU1MDI2MEZGN0MwMjdFMTQ4MDAwNEMyMDA5QjEwMDE4QTVGRDVFNTAyMDY4MDREMjVFODAwMkMyNUVBNUZENUU1MDgwNjgwNEQyNTY4MDAyQzI1NjAyNjBGRjdDMDI3RTE0ODAwMDRDMjAwOUIxMDAxOEE1RkQ1RTUwMjA2ODA0RDI1RjgwMDJDMjVGQTVGRDVFNTA4MDY4MDREMjU3ODAwMkMyNTcwMjYwRkY1NEYwQzRBNUZGQzRBNTRGNzUyRjkwMTI3MzM1RjUyRjEyNzMzNTIyQ0ExOTVFMjAwNzRDQTI3RTc0MkMyRENBNzk3QTc5QTAwQjc0N0E3OUIwMEI3NERBNzk3RTMwMDI3RTY0MDAwMjAyNjE1RUNBMTk1RTIwMDc0Q0EyN0U3NDJDMkRDQTc5N0E3OUEwMEI3NDdBNzlCMDBCNzQ3QTc5NjAwQjc0REE3OTdFMzAwMzdFNjQwMDAzMDI2MTVFRDIwNDdFMjcwMUNCMkQyNkJFMjQwNDAwMzgyRTdFMDcwMUM5N0U0NDI4MkQ3RTc5QTA3QTA5QTAwQjA0MEI3NEJEMDQ2ODIzQTVEQkVGN0EyNzAxQ0I3RTI1MzAyRDI2N0EyNTMwN0EwNzAxQzlEQTE5QzJENzIyNzUyRjlBMTI3MzM1REExOUQyRDcyMjdFMDQyNDJEODBENzQ4RjE0NjY1NDc1RjQ5MkE0NTJBNDUyQTQ4NTY0NTJBNDk2RTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0OTc1NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNEMxRTQ5OTI0QThDNEM1NzQ1MkE0NTJBNEI4MzQ1MkE0QzlCNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTRDQTI0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0RjRCNENCRjREQjk0Rjg0NDUyQTQ1MkE0RUIwNDUyQTRGQzg0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNEZDRjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTUyNzg0RkVDNTBFNjUyQjE0NTJBNDUyQTUxREQ0NTJBNTJGNTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1MkZDNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTVBNTUzMTk1NDEzNTVERTQ1MkE0NTJBNTUwQTQ1MkE1NjIyNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTU2Mjk0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1OEQyNTY0NjU3NDA1OTBCNDUyQTQ1MkE1ODM3NDUyQTU5NEY0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNTk1NjQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTVCRkY1OTczNUE2RDVDMzg0NTJBNDUyQTVCNjQ0NTJBNUM3QzQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE1QzgzNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNUYyQzVDQTA1RDlBNUY2NTQ1MkE0NTJBNUU5MTQ1MkE1RkE5NDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTVGQjA0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkE0NTJBNDUyQTQ1MkFDQUI4NzUyRjAyMTI3MzM1N0VCMzkxMDMyMEU1MjAzMEUwMDUxMjZCMDU4MDMwMzBFMTA1MTI2NDg2ODAyODMwRTIwNTEyNjNGNTgwMjAzMEUzMUQxMjY1NjE4MDE4N0VCMzkxMDQzMEUxMDMwMjY3NUYzMEU2MDUxMjZDNkE4MDA2MjBFMjAzMDIwMDgwREFCODMyNzUyRjEwMTI3MzM1Q0EwQkNBMzlDQTU5NzQ0MDdBQjM5MTAwN0VCMzkxMUE2Q0FBQkVCMDQwMjgwQTEyNjQyNERBNTlEQTM5REEwQjIyNzQyMDdBQjM5MTE0ODBGMTdFMzcwMUM1MkQzNUJFMzQwNDAwMzgyRjdBMzcwMUM1N0UzNzAxQzM3RDQzMkQ0NUJFNDQyQzJDMzgyNTdBNDcwMUMzNzUyRjExMTI3MzM1N0FCMTJGMTI3MzM1MTI2NzlGNzQyMDdBQjM5MTE0MTI2NjMwMjI3NTJGMTYxMjczMzU4MEY0NzUyRjEyMTI3MzM1N0FCMTJGMTI3MzM1OUU0NDJDMkQ5RDU0MTI2NzlGN0UzNDI4MkQ3RDU0MkQ0MzgwQkM3NTJGMTgxMjczMzVDQTA5Q0EzOUNBMkI3NDIwN0FCMzkxMDA3RTYzOTExQTc0MTA3QUIzOTExNDdFQjA4MDlDQjY2MDM4NkNBQTdFMzcwMUNCOUQzNTQwMzc3QTM3MDFDQjdFMzcwMUM3N0Q0MzJENDVCRTQ0MjgyQzM4M0I3QTQ3MDFDNzdENDUxMjY4RDQ3RUIzOTExRTIwRTUxMzc1MkYxOTEyNzMzNTdBOTEyRjEyNzMzNURBMkJEQTM5REEwOTIyODAzNDJENTM2RDMzNjAwMjgwQzE3RTA0MjQyRDdBMDcwMUM5N0EwNzAxQzc4MEUxQ0E1OTlFNDQyODJEOUQ1NDEyNjhENDdFMzQyNDJEN0Q1NDJENDM3QTQ3MDFDNzEyNjhENERBNDk4MEIwN0UwRjJDM0UwQjBDN0EwRjJDM0U3NDIwN0FCMzkxMUU3NDYwN0FCMzkxMUM3NDAyN0FCMzkxMTI4MEE1N0UyRjJDNUUwQjJDN0EyRjJDNUU3NDIwN0FCMzkxMUU3NDYwN0FCMzkxMUM3NDAyN0FCMzkxMTI4MDFGREEyQkRBMUJEQTBCMjI3NTJGMjgxMjczMzVDQTBCQ0ExQkNBMkI3NDYwN0FCMzkxMDA3NDEwN0FCMzkxMTQ3RUIzOTExQTcwREI3RTBEMzA3RTFEMzQ3RTJEMzg3RTNEM0M3RTg1NDA3RDkwNEQ5MTREOTI0RDkzNEQ5NDREOTU0RDk2NEQ5NzREOTg2OEI4N0ExMzkxMTc3QTAzOTExNzdBMzM5MTE3N0EyMzkxMTc3QTUzOTExNzdBNDM5MTE3N0E3MzkxMTc3QTYzOTExNzdBOTM5MTE3N0E4MzkxMTczMDczMjI3QUIzOTExNzdBQTM5MTE3N0FEMzkxMTc3QUMzOTExNzdBRjM5MTE3N0FFMzkxMTc3RDc4N0FGMzkxMTc3QUUzOTExNzdFQjM5MTFFMzBFNTAzMDI2NTNDNzUyRjI5MTI3MzM1MjA3MzA4NzUyRjBBMTI3MzM1ODAwNjc1MkYxMjEyNzMzNTc0ODA3QUIzOTExRTZEMDA3RDEwN0EwRDMwN0EwRDM0N0EwRDM4N0EwRDNDN0EwNTQwREEyQkRBMUJEQTBCMjI3RTM3MDFDNTREMzM2ODNCN0UwNzAxQzE3RTU0MkMyRDlENTBCRDM1NDAwMjdEMzVDQTM5N0U2NTRCOTk2NERBMzk3RTA3MDFDNTlEMDM3QTA3MDFDNTJFMzcwMUMxN0EzNzAxQzFCRTM0MkMyQzI4Qzc3RTM0MjgyRDdBMzcwMUMxODBCRDIyNzUyRjUzMTI3MzM1N0UxNTREODAxMTc1MkY1MTEyNzMzNTBCMDgxMDBCMDU5RTM0MDAwMjI4NEQ3Q0IyMjBFNzI3NTQwNzIzMEEyQjQ5MjIzOTFFN0NCMjU0NzgwMzAzMDM3QzJCOUQxMzQwMUE2ODEyN0ExNTREN0EyNTRGN0U2NDY3MDk3QTY1NEI4OTI0MDI2NzE3N0U2NDY2N0Y4MEYyMkQxMzlEMzFDQTM5N0QzMTJEMTBDQTE5Q0EyOTk5MjREQTI5REEwOURBMzk4MEEyN0ExNTREN0U2NDY2RjU0RDMzNzgwOTdDQjIyMEU3MkE3RTY0NjY3NDdBNjU0QjIyNzUyRjUyMTI3MzM1N0UyMTREN0UwOTMwMEIwNDFCMzQ3ODg5ODBENDc1MkY1NDEyNzMzNTdFMTU0RDdFMjU0RjgwOTA1RTIwMDc1NDc4N0U0NDY3N0QzMEU2MTY0RDMzNjgyNjFCMzQ3RTA5NDAwQjA0N0U0NDM0RkEyMEUzMDQ3RTQ0Njc4NUNBMDlDQTM5OTk0NERBMzlEQTA5N0U2NDY2N0Y0RDMzNjhBNjg5NjQ3QTE1NERGNTRGN0U2NDY3NTg4MDk5N0UxNTRERTU0RjgwQzRDMEQwQzBEMUMwRTBDQTE5NzUyRkZFMTI3MzM1N0UxNDAwNTMwMjQwNTJEQTE5RDBFMEQwRDFEMEQwMzIwM0E1Q0IxOUIxODAwMDIyMjI3RTI0MDAwMDdGRTE3RUEwMDJBNDdFMDQ2OEIxOUQwNTdFQjAyODdBQjM5NTAwODkwNENBMjlCNDgwRTI3RTI0MDAwMDdGRTE3RTAwMjg3QTAzOTUwMEUwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzN0UwMDAwN0EwMzk1MDBEQTI5MjI3RTI0MDAwMDdGRTE3RUEwMDJBNDdFMDQ2OUU2OUQwNTdFQjAzODdBQjM5NTAwODkwNENBMjlCNDgwRTI3RTI0MDAwMDdGRTE3RTAwMzg3QTAzOTUwMEUwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzN0UwMDAwN0EwMzk1MDBEQTI5MjJDQTI5Q0ExOUNBNTg3RTI0MDAwMDdGRTFEQTU4N0U1NDAyMjA5Q0I1QTQ3RTUwMzA1RTIwMDcyQzUyN0E1Mzk1MDAyRTU0NkExNzg5NTRFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBMzdFMDAwMDdBMDM5NTAwREExOURBMjkyMkNBMTlDQTU4N0UyNDAwMDA3RkUxREE1ODdFNTQwMjM4OUNCNUE0N0U1MDIwNUUyMDA3MkM1MjdBNTM5NTAwMkU1NDZBODg4OTU0RTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTNFMEEzRTBBM0UwQTM3RTAwMDA3QTAzOTUwMERBMTkyMjAyNkJBOENBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQjc0MDA3QUIzOTEwMDdFQjMyQzdGQjQwMDAyODAxQ0I0MDExOTdFQjM5MTE0NTQxNDY4MDUxMjZCNkM4MDIzN0VCMzkxMTQzMEU1MUMxMjZDQUE4MDE3N0VCMzkxMTQzMEU1MDUxMjZDQUE4MDBCN0VCMzkxMTQ1NDE0NjgwMzEyNkI2Q0RBRUJEQTdCREE2QkRBNUJEQTRCREEzQkRBMkJEQTFCREEwQjIyMjBFNDE5NzUyRjBBMTI3MzM1N0VCMzJDN0U3MDBBN0VCMzJDN0ZCNDAxMUYwMjZDMDQwMjcxRjI3NTJGMEIxMjczMzU3NDE0N0FCMzkxMTQ3RUIzMkM3RkI0MDIwQzEyNkJCNDAyNkJBODc0MDQ3QUIzOTExNDIyN0UwMDAwN0EwMzJDN0Y3QTAzMkM4MDIyN0VCMzJDNzY1NDYwNjAwNUI0NDAxRTgwMUM3RUIzMkM3N0I0MDUxNTc1MkY3MTEyNzMzNTdFQjMyQzc5N0VBMDAxN0FBMzkxMDY3QUIzOTEwNzIyNzQwMDdBQjM5MTAwNzQxMDdBQjM5MTEyMjJCRTU3MkM3QzI4MDQ3RTU3MkM3QzdBMEYyQzgyN0E1NzJDODY3NDEwN0FCMzkxMTIyMjc0MDA3QUIzOTEwMDdFQjM5MTFBNzA1MzdFQjM5MTE0MjBFNDRDN0VFRjJDODI3RUY3MkM4NjdFMDcyQzg2NEQwMDY4MjE3RTAwMDBFMDdBQjM5MTE3QTNBNTA4MUJGNDY4MDZBNUI4MTBGMDgwMTk3RUIwMDA3QUIzMkM3RkJFMDAxMDY4MEQ3RUIwMDA3QUIzMkM3Rjc0ODA3QUIzOTExRTdBRUYyQzgyN0FGNzJDODY3NTJGMDYxMjczMzU3NDA0N0FCMzkxMTQyMkNBMEJDQTFCQ0EyQkNBM0JDQTRCQ0E1QkNBNkJDQTdCQ0FFQjc1MkYwMzEyNzMzNTc0MDA3QUIzMkM3RTc0MDA3QUIzOTEwMDc0MDE3QUIzOTExMjEyNkQxOURBRUJEQTdCREE2QkRBNUJEQTRCREEzQkRBMkJEQTFCREEwQjIyNzUyRjAzMTI3MzM1N0VCMzJDODBCNDAyMTE3NDAwN0FCMzJDODA3QUIzMkM3Rjc0MjA3QUIzOTExNDIyQjQwMTQ2N0VCMzkxMDQyMEU2NDI3RTIzOTExQTdDMzI3RTEzMkM4MTJDMjE3QTIzMkM4MTdFMDAwMDJFMDQyQzg4N0VCMzkxMTY3QTA5QjAwQjA0QTVEQkY0NzQyMDdBQjM5MTE0NzUyRjcwMTI3MzM1N0VCMzJDODE3RUEzMkM3REJDQUI3ODAzMTI2REI5MjIwMjcxRjJEQTU5MDI2QzdDNzRFMDdBQjM5MTAwN0UwMzkxMTA3RTEzOTExMTdFMzM5MTEyN0UyMzkxMTM3RTUzOTExNDdFNDM5MTE1N0U3MzkxMTY3RTYzOTExNzdBMEYyQzc2N0ExRjJDN0E3NTJGMDQxMjczMzU3QTAxMkYxMjczMzU3QTExMkYxMjczMzU3QTIxMkYxMjczMzU3QTMxMkYxMjczMzU3QTQxMkYxMjczMzU3QTUxMkYxMjczMzU3QTYxMkYxMjczMzU3QTcxMkYxMjczMzU3NDAwN0FCMzkxMDA3NDQwN0FCMzkxMDQxMjZEOEQyMjZEMDA3RTE0MDEwMjdBMDcyQzg2N0EwMzJDODE3RUIzMkM3NjIwRTcwRjdBMjMyQzgwN0EzMzJDN0ZCRTA3MkM3QzY4MDkyMjdBMzMyQzgwN0EyMzJDN0Y3RUIzMkM3NjU0RTMyMzIzMzBFMDAyRDJFNTMwRTcwMkQyRTQzMEU1MDYzMEU0MDMwMjcxRjI1NDNFRjVGMDAzNTQxRkMzMjVGMDkwNkRFNTc1ODRGRjczMDI2RkEwMDI2RTJEMDI3MDM5MDI3MDU0MDI2RjM3MDI2RUMyMDI3MDg1MDI3MDg1MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDg4MDI3MDhFMDI3MTYwMDI3MDhCMDI3MDhCMDI3MDhCMDI3MDhCMDI3MDhCMDI3MDhCNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDA2MkE3RUIzMkM3ODYwNzk3QzBCN0UxMzJDNzk3RTE3MkM3QTc1MkY3MjEyNzMzNTdBMDEyRjEyNzMzNTdBMTEyRjEyNzMzNTEyNzIzNzQwNTgwMjZCRUJCNDA4MUM3NTJGNzQxMjczMzU3RUIzM0ZGMTdFMDgyQzg4N0EwQzAwMDA3QTBCQjA3RTU0MDAwMTAyNkJFQkI0MDAzMzc1MkY3NTEyNzMzNTdFMDgyQzg4N0EwQzAwMDBDQTBCN0VCMzNGRjIzMEUwMDc3NDAyN0EwQkIwODAwNTc0MDA3QTBCQjAwQjE0NzQwMDdBMEJCMDdFNTQwMDAyREEwQjAyNkJFQjAyNzFGMjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzdFQjMyQzc3QjQwMDVGNzUyRjc2MTI3MzM1N0VCMzJDN0I1NDBGQjQwMjA1N0VCMDYwODAxN0I0MDAwNTdFQjAwMDgwMEY3RUIzMkM3QjIwRTcwNTdFQjA0MDgwMDM3RUIwMjA3QUIzOTEwMDdFQjM5MTExMzBFMDA0NzQwMTgwMDI3NDAwN0UwODJDODg3QTBDMDAwMENBMEI3QTBCQjAwQjE0NzQwMDdBMEJCMDc0MDA3QUIzOTEwMDdFNTQwMDAyREEwQjAyNkJFQjAyNzFGMjdFQjMyQzdCNTQwRkI0MDIwNTdFQjA2MDgwMTdCNDAwMDU3RUIwMDA4MDBGN0VCMzJDN0IyMEU3MDU3RUIwNDA4MDAzN0VCMDIwN0FCMzkxMDA3RUIzMkM3OUI0MDAyNjdFQjMyQzc3QjQwMTBFNzUyRjc3MTI3MzM1NzQwMTdBQjM5MTEyODAxQkI0MDMwRTc1MkY3ODEyNzMzNTc0MDE3QUIzOTExMTgwMEE3NDAwN0FCMzkxMDAxMjcxRjIyMjc0MDA3QUIzOTEwMDAyNkJERTdFQjMyQzc3QjQwOTFGNzUyRjc5MTI3MzM1N0VCMzJDNzlCRUIzM0ZGMTY4MERDQUI4MTI0Mzc5REFCODUwNzY3QUIzM0ZGMTgwNkRCNDA1MDg3NTJGN0ExMjczMzU4MDYyQjQwMzE5NzUyRjdCMTI3MzM1N0VCMzJDNzlCNDAxNTU3RUIzM0ZGMjQ0MDE3QUIzM0ZGMjgwNDZCNDAxMTk3NTJGN0MxMjczMzU3RUIzMkM3OUI0MDEzOTdFQjMzRkYyNTRGRTdBQjMzRkYyODAyQUI0MDcyQTdFQjMyQzc4NjAyNDdDMEI3RTEzMkM3OTdFMTcyQzdBNzUyRjczMTI3MzM1N0EwMTJGMTI3MzM1N0ExMTJGMTI3MzM1MTI3MjcxNDAwMzAyNkJERTAyNzFGMjdFQjMyQzc3QjQwQkY2NzUyRjdEMTI3MzM1N0VCMzJDNzk3RUEzMkM3QjRDQUI3OEU0ODBERjc0MDA3QUIzOTEwMDc0NjA3QUIzOTExQzdFQjMyQzc3QjQwQUNGNzUyRjdFMTI3MzM1N0VCMzJDNzk3MEMzN0UwODJDODg3QTBDMDAwMDdBMEJCMDdFNTQwMDAxMDI2QkVCMDI3MUYyMDI3MUYyMDI3MUYyN0VCMzJDNzdCNDA0MjA3NTJGQzMxMjczMzU3RTA0MDAwMTdFMTcyQzc4N0UxODJDODg3QTFDMDAwMDdFNDcyQzdDMTI3MzQxMDI3MTVBQjQwNjQyNzUyRkMxMTI3MzM1N0U1ODAwMDA3QTVDMDBGRTdEQ0E3RUQ3MkM3ODdFNzgyQzg4N0E3QzAwMDA3RTc3MkM3Qzc1MkZDMTEyNzMzNUMwQThDMkFGN0U0MDAxN0E0Mzk0MDAxMjczN0E3RTQzMkMzNTdBNDM5NDAwRDBBODQwNjU4MDYwQjQwMDI0QzJBRjdFQjAwMTdBQjM5NDAwN0FCMzJDMzUxMjZCREVFNDhERUY4REVGOERFRkQ1RTBGN0MwRDFDQTAyRkZDQTA2MDAwMDMyQjQwOTIwNzQwMzdBQjM5MTA2N0UyMzkxMDc3RTU3MkM3ODRENTU2ODA1NEUyMDAyODAwMzVFMjBGRDdBMjM5MTA3ODAxNkI0MDcxNkMyQUY3RTA3MkM3QTdFMTcyQzc4QzBEMUNBMThDQTM4Q0EyODMyMDI2QkRFMDI3MUYyNzQwMDdBQjM5MTAwNzQ2MDdBQjM5MTFDN0VCMzJDNzdCNDAzMTU3NTJGQzIxMjczMzU3RTA0MDAwMTdFMTcyQzc4N0U1NzJDN0MwMjZCRUJCNDA1NDE3NTJGQzAxMjczMzVDMEE4QzJBRjdFNDAwMTdBNDM5NDAwN0UwODJDODg3QTBDMDAwMDdFMjQwMEZFN0UzNzJDNzg3RTQ3MkM3QzEyNzM0MTdFNDMyQzM1N0E0Mzk0MDBEMEE4N0UwODJDODg3QTBDMDAwMDdFNTcyQzdDMDI2QkVCQjQwMTIwN0UwMDAwN0UxMDAxNzUyRjcyMTI3MzM1N0EwMTJGMTI3MzM1N0ExMTJGMTI3MzM1MTI3MjM3NDAwMzAyNkJFQjAyNzFGMjc1MkYwNzEyNzMzNTdFQjAwMjdBQjM5MDAwNzQwMDdBQjM5MTAwNzQ0MDdBQjM5MTE1NzQwMTdBQjM5MTExN0VCMzkxMTU1NDYwQkVCMDQwNjgwODc0MjA3QUIzOTExNTgwRUQ3NDAxN0FCMzkxMTI3NDA0N0FCMzkxMTQ3NEZGN0FCMzJDN0UyMkMwQThDMkFGN0U0MDAxN0E0Mzk0MDAxMjcyQkU0MDFGN0UwODJDODg3QTBDMDAwMENBMEJDQTQ5MTI3MzQxREE1OURBMEI3RTQzMkMzNTdBNDM5NDAwRDBBOEMzMjI3RTQzMkMzNTdBNDM5NDAwRDBBODIyQzBBOEMyQUY3RTQwMDE3QTQzOTQwMDEyNzJCRTQwMzE3RTU4MDAwMDdBNUMwMEZFN0Y2MTdFNzgyQzg4N0E3QzAwMDA3RTc3MkM3Q0JENzQ3ODE3NzUyRkMxMTI3MzM1MTI3MzdBNDAwQzdFNDMyQzM1N0E0Mzk0MDBEMEE4QzMyMjdFNDMyQzM1N0E0Mzk0MDBEMEE4RDMyMjdFMjQwMEZFN0UzNDdGQ0EwQjFBNTBDNUYwN0Q2MjdENzU3RDg3N0UzNDdGQzI3RTFCQjA3RTM0N0YwM0I0MDEwNDdFMzQ3RkNDN0UxQkIwQkMwQjUwNDkzRTAwM0UwMDBBNTAyRDc1MEIzQTMwNjk1MzAwMDJCRDM4NTAwMjJEMzhCQzFCNTAzMDNFMTAzRTEwMEE1MTJEMzU2OTQxMDAwMjBCMUEzMEJEMzg1MDAyMkQzOEJFNDRGRkZGNzgwNTdFMUI5MDBBNDk0RDQ0NjgwQ0JFNDQwMEZGMjgwNDdFNDQwMEZGQzMyMkQzMjI3NAorOjAwMDQ3RkM2MDAwMjAwMDMwMEIyCis6MDE0ODczMzUwMENBMDg3RTAxMkY3QTAzM0ZGMERBMDgyMjdFMUJDMDdBMEJDMDBCMTQwQjM0MUI0NDc4RjIyMjdGNkY3RkYwMUJGQzdDNTQ3RDMyODAwOENBMUJDQTFCQ0ExQkNBMUI5RTQ0MDAxMDUwRjIyRTQ0MDAxMDY4MDZDQTQ4MUI0NDc4RkE3RkY2ODlFNENBNkI1RUQ0MDAzRjY4MjA3RTg0MDA0MDlEOEREQTZCQkQ4NzM4MTZDQTc5N0Q3ODEyNzNBNERBNzk0MDA4OUQ3ODY4MDI4MDA1QzJENzIyREE2QjdFQzAwMzdFRDAwMDdBRDM5MDAwNzRBQTM5QjU1NTU1NzQ1NTM5QjUyQUFBNzRBMDM5QjU1NTU1N0UwNDAwNDA5RDcwNTAwNjJENzA3RDA3NkQ3NzdDMzE3RTdCMDA3QTZCMDAwQjdDMEI2Q0E1RDlGMzdGMTYxQjFDN0U1NDI3MTA3RTFCMTBCQzEwNjgwNjFCNTQ3OEY1ODAyRjZEMDA3QzIwN0YxNjlGMTA3RjI3OUYyMDdFMkIwMDdFMUIxMEJDMDE3ODE5MEIyQzBCMUNBNURCRUY3Q0I2MjBFMDA2NkNEQzdBRDM5MDAwNEQ3Nzc4OTBDMkQ3MjJEMkQ3MjIwMDA0MDAwNDAwMDAwNjA0MDIwNDAwMDIwMTA0MDEwMjAwMDAwMDAwMDAwMDAwMDAwMjAyMDIwMjAyMDQwMDA4MTAwMjEwMDQwMjA4MDAwMTAxMDg3RTE4N0ZCRDdBMUMwMEZFMEIxQTAwNUUxMDFGQkUxMDE0MzgxQTBBNTEyMzdFMTg3NDI0N0ExQzAwRkYyRDM1MEIxQTUwNjAwOEE1QjgwMjAzNEVBMDA4MjI4MEZFQ0IKKzowMDAwMDAwMDAxRkYKKy8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKy8vKiBFZGdlcG9ydC80IEJpbmFyeSBJbWFnZQorLy8qIEdlbmVyYXRlZCBieSBIRVgyQyB2MS4wNgorLy8qIENvcHlyaWdodCAoQykgMTk5OCBJbnNpZGUgT3V0IE5ldHdvcmtzLCBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8qCVRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisvLyoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy8vKgl0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorLy8qCShhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lZGdlcG9ydC9kb3duMy5iaW4uaWhleCBiL2Zpcm13YXJlL2VkZ2Vwb3J0L2Rvd24zLmJpbi5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MzVlNTIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lZGdlcG9ydC9kb3duMy5iaW4uaWhleApAQCAtMCwwICsxLDgxNSBAQAorOjEwMDAwMDAwMDQ1MDAwMDA4NzMyOUEwMjI3QkYwMjIxQjIwMDAwMDA4QworOjEwMDAxMDAwMDAwMDAyMDAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMDAyMDAwMDAwMDAyMDExQTg1M0Y4Qzg1NDA4QUMwRTBDMEQwQzAyNAorOjEwMDAzMDAwRjBDMDgyQzA4M0MwMDBDMDAxQzAwMkMwMDNDMDA0QzBDMQorOjEwMDA0MDAwMDVDMDA2QzAwN0U1M0UyNDA4RjhFNjYwMkJFNTNFMjQxRgorOjEwMDA1MDAwMTBGOEE2ODFFNTNFNzVGMDIxQTQyNDA1RjU4MkU0MzQ2QworOjEwMDA2MDAwRjhGNTgzNzg4Q0U1ODEwNEMzOThGOTk0MjI0MDAzMDI2MworOjEwMDA3MDAwMTFEQ0U2RjAwOEEzRDlGQTc0MDgyNTNFRjgwNTNFMDgxRAorOjEwMDA4MDAwRTY1NDgwNzAwQ0U1M0VCNDA3RjM3ODA4NzUzRTAwODBCNgorOjEwMDA5MDAwRUZFNTNFMjQxMEY4ODY4MUU1M0U3NUYwMjFBNDI0MDVBNQorOjEwMDBBMDAwRjU4MkU0MzRGOEY1ODM3ODhDRTU4MTA0QzM5OEY5RTBBRgorOjEwMDBCMDAwRjYwOEEzRDlGQUQwMDdEMDA2RDAwNUQwMDREMDAzRDBEMworOjEwMDBDMDAwMDJEMDAxRDAwMEQwODNEMDgyRDBGMEQwRDBEMEUwMzJBNgorOjEwMDBEMDAwMzAwMTREMzBCNDQ4MTAwMDQ1OTBGRjA4RTA1NDIwRjgzRQorOjEwMDBFMDAwOTBGRjQ4RTA1NDIwRjk5MEZGMTBFMDU0MjBGQTkwRkY3MAorOjEwMDBGMDAwNTBFMDU0MjBGQjc0MDBGNTgyNzRGOEY1ODNFMEM4RjBGQQorOjEwMDEwMDAwNjg2MDAyN0UwNEEzRTBDOUYwNjk2MDAyN0UwNEEzRTA5NworOjEwMDExMDAwQ0FGMDZBNjAwMjdFMDRBM0UwQ0JGMDZCNjAwMjdFMDQ0QQorOjEwMDEyMDAwMjJDMEUwQzBEMEMwRjBDMDgyQzA4M0MwMDBDMDAxQzAwNworOjEwMDEzMDAwMDJDMDAzQzAwNEMwMDVDMDA2QzAwNzc0MTVGNTgyNzQ3MAorOjEwMDE0MDAwRjlGNTgzRTA2MDIzNzQ2NkY1ODI3NEY5RjU4M0UwMTRCMQorOjEwMDE1MDAwRjA3MDE2NzRGRkYwNzQxQ0Y1ODI3NEY5RjU4M0UwNjA5QQorOjEwMDE2MDAwMDQxNEYwNzAwNEMyOTA4MEZDOTBGRjkzNzQ4MUYwRTU1OQorOjEwMDE3MDAwODE5NEZENDAwMzAyMTFEQzg1NDE4RDg1NDI4Qjc0QjI3MAorOjEwMDE4MDAwRjU4Mjc0RkFGNTgzRTBCNDAxMUJDMDgyQzA4MzkwRkY0RQorOjEwMDE5MDAwNEFFMDMwRTcyQzkwRkY0RUUwMzBFNzI1RDA4M0QwODI1NAorOjEwMDFBMDAwNzQwMkYwODAyMEI0MDIxREMwODJDMDgzOTBGRjdBRTAwOAorOjEwMDFCMDAwMzBFNzA1MTIyODRFODAwOUQwODNEMDgyNzQwM0YwODA4NgorOjEwMDFDMDAwMDREMDgzRDA4MkEzRTBCNDAxMUJDMDgyQzA4MzkwRkYxRgorOjEwMDFEMDAwNTJFMDMwRTcyQzkwRkY1NkUwMzBFNzI1RDA4M0QwODIwNAorOjEwMDFFMDAwNzQwMkYwODAyNUI0MDIyMkMwODJDMDgzOTBGRjdBRTBCRQorOjEwMDFGMDAwMzBFNzA1MTIyODRFODAwOUQwODNEMDgyNzQwM0YwODA0NgorOjEwMDIwMDAwMDlEMDgzRDA4MjgwMDMwMjAyOTA3NDE2RjU4Mjc0RjlCQgorOjEwMDIxMDAwRjU4M0UwMjAwNEYxMjAwMjAzMzAwMUVCNzQxOUY1ODIyQworOjEwMDIyMDAwNzRGOUY1ODNFMDE0RkNGMEEzRTBGREEzRTBGRTY0MDRBMAorOjEwMDIzMDAwNzAwRkVDNzA2MjdFMDExMjAwQzk3QzBBN0RGQTAyMDIyNgorOjEwMDI0MDAwNjExMjAwQzlFRTY0MDQ2MDFERUM3MDRCN0MwQUVEMTQ3MQorOjEwMDI1MDAwRkQ3MDE1RUU2NDAyNjAwNzdFMDI3RDMyMDIwMjYxN0U0RgorOjEwMDI2MDAwMDE3REZBMDIwMjYxN0MwQTc0MTlGNTgyNzRGOUY1ODM0MgorOjEwMDI3MDAwRUNGMEEzRURGMEEzRUVGMDE0NjAxODIwRTEwRjIwMDFFNAorOjEwMDI4MDAwMDZEMkIxQzJCMDgwMTBDMkIxRDJCMDgwMEFDMkIxQzIyRgorOjEwMDI5MDAwQjA4MDA0RDJCMEQyQjE3ODE5NzkwOTdBMDdFNzcwMDQzNgorOjEwMDJBMDAwQTYwMDgwMEJFNjYwMDgxNkU2NzAwNEU3NDQ4MEY3MDhCNQorOjEwMDJCMDAwMDlEQUVBRTUzRDYwMTMxNEY1M0Q3MDBFRTUzRTI0MDhDOQorOjEwMDJDMDAwRjg3NjAwMTIxMTU3RDI4Q0QyOEREMDA3RDAwNkQwMDUwNworOjEwMDJEMDAwRDAwNEQwMDNEMDAyRDAwMUQwMDBEMDgzRDA4MkQwRjA5RgorOjEwMDJFMDAwRDBEMEQwRTAzMjkwRkYwNEUwOTBGQUI5RjA5MEZGMDY1MQorOjEwMDJGMDAwRTBGQ0EzRTBGQUVDRkZFQUZFRUZDMzk0MDhFRTk0MDEwMQorOjEwMDMwMDAwNTAwMjgwMDQ3RTAxN0YwODhFM0I4RjNDOTBGRjAyRTAwQworOjEwMDMxMDAwRkNBM0UwRkFFQ0ZGRUE5MEZBQkRGMEVGQTNGMDEyMUNBOAorOjEwMDMyMDAwRTBFNEY1NERFNTREQzM5NDAyNTAwRjEyMUNDMUU0MTJGOAorOjEwMDMzMDAwMUFFODA1NEQwNDEyMUNCMjgwRUExMjFDRTA5MEZGMDA3RQorOjEwMDM0MDAwRTBGRjU0NjAyNEMwNzAwMzAyMDhGMzI0NDA2MDAzMDJGRAorOjEwMDM1MDAwMEY2RTkwRkFCOUUwRkU1NDBGRjU0REVFMzBFNzAzRDM3RgorOjEwMDM2MDAwODAwMUMzOTIwQTkwRkYwMUUwMTIxQkZDMDM4NDAwMDQ4OQorOjEwMDM3MDAwNTcwMTA1NkEwMzA2MzEwNTA2NzMwNjA3RDUwODA4MURFRgorOjEwMDM4MDAwMDkwODc5MEEwOEI5MEIwMDAwMEY2RUU1MzUyMEU3MDM2QworOjEwMDM5MDAwMDIwRjZFOTBGQUJERTA3MDAyQTNFMDYwMDMwMjBGNkVFMAorOjEwMDNBMDAwRTUzQzY0MDI0NTNCNjAwMzAyMEY2RUVGNTQxRjE0NjA4RQorOjEwMDNCMDAwMkIxNDYwNDcyNDAyNjAwMzAyMEY2RUVFNjAwMzAyMEZFRAorOjEwMDNDMDAwNkUxMjFDQzE3NDAxMTIxQUU4Nzg2N0U2MzBFMDA4MTI1OAorOjEwMDNEMDAwMUNDMTc0MDIxMjFBRTg3RjAyMDIzMjZFRTUzNTIwRTE3OAorOjEwMDNFMDAwMDk5MEZBQjlFMDYwMDMwMjBGNkU5MEZBQjlFMEQzOTQ3NQorOjEwMDNGMDAwMDE0MDAzMDIwRjZFN0YwMjAyMzI2RUU1MzUyMEUxMEVFRQorOjEwMDQwMDAwOTBGQUI5RTBGRjYwMDc2NDgwNjAwMzAyMEY2RTEyMEY3QworOjEwMDQxMDAwRkE0MDAzMDIwRjZFRTU0RDcwMTkzMDBBMEI5MEZGODAxMQorOjEwMDQyMDAwMTIxQ0JFMTIxQUU4ODAyNDkwRkY4MjEyMUNCRTEyMUFGRgorOjEwMDQzMDAwRTg4MDE5MTU0RDMwMEEwQjEyMUQ1NTEyMUNCQzEyMUFGQQorOjEwMDQ0MDAwRTg4MDA5MTIxRDYzMTIxQ0JDMTIxQUU4MTIxQ0MxMTJBQQorOjEwMDQ1MDAwMUFBMjYwMDU3NDAxMTIxQUU4N0YwMjAyMzI2RUU1MzVCNQorOjEwMDQ2MDAwMzBFNzAzMDIwRjZFRTUzQzQ1M0I2MDAzMDIwRjZFMTI1RQorOjEwMDQ3MDAwMUQ3OTE0NjAyRDE0NjA1OTI0MDI2MDAzMDIwRjZFOTBFMAorOjEwMDQ4MDAwRkFCREUwNzAwNEEzRTA2NDAxNjAwMzAyMEY2RTkwRkEwRAorOjEwMDQ5MDAwQjlFMDYwMDMwMjBGNkU3ODY3RTY1NEZFRjZFNEZGMDJFRgorOjEwMDRBMDAwMzI2RUU1MzUyMEUxMDYyMEUwMDMwMjBGNkVFNTM1MzBCRgorOjEwMDRCMDAwRTAwOTkwRkFCOUUwNjAwMzAyMEY2RUU1MzUzMEUxMEMxNworOjEwMDRDMDAwOTBGQUI5RTBEMzk0MDE0MDAzMDIwRjZFRTRGRjAyMzJDOAorOjEwMDREMDAwNkU5MEZBQkRFMDcwMDJBM0UwNjAwMzAyMEY2RTEyMEY4RgorOjEwMDRFMDAwRkE0MDAzMDIwRjZFRTUzNTIwRTEwNjIwRTAwMzAyMEYxQgorOjEwMDRGMDAwNkVFNTM1MzBFMDA3RTU0RDYwMDMwMjBGNkVFNTRENzBBNworOjEwMDUwMDAwMEY5MEZGODJFMDU0RjdGMDkwRkY4MEUwNTRGN0YwMjI2NAorOjEwMDUxMDAwRTU0RDI0RkU2MDIwMjRGQjYwMzQyNDA2NzAzNTMwMEE0QgorOjEwMDUyMDAwMENBMjBBRTQzM0ZEN0YwMzEyMkU3OTgwMjZFNEZEN0ZCRQorOjEwMDUzMDAwMDMxMjJFNzk4MDFEMzAwQTBDQTIwQUU0MzNGRDdGMDREOQorOjEwMDU0MDAwMTIyRTc5ODAwRUU0RkQ3RjA0MTIyRTc5ODAwNTdGODdCQworOjEwMDU1MDAwMTIzMUVGMTU0RDMwMEEwQjEyMUQ1NUY1ODNFMDU0Rjc5QgorOjEwMDU2MDAwRjA4MDA5MTIxRDYzRjU4M0UwNTRGN0YwRTRGRjAyMzJENgorOjEwMDU3MDAwNkVFNTM1MzBFNzAzMDIwRjZFRTUzQzQ1M0I2MDAzMDI1NAorOjEwMDU4MDAwMEY2RTEyMUQ3OTE0NjAyRDE0NjA1NTI0MDI2MDAzMDI1MQorOjEwMDU5MDAwMEY2RTkwRkFCREUwNzAwNEEzRTA2NDAxNjAwMzAyMEZFNworOjEwMDVBMDAwNkU5MEZBQjlFMDYwMDMwMjBGNkU3ODY3RTY0NDAxRjZEOAorOjEwMDVCMDAwRTRGRjAyMzI2RUU1MzUyMEUxMDYyMEUwMDMwMjBGNkUxMworOjEwMDVDMDAwRTUzNTMwRTAwN0U1NEQ2MDAzMDIwRjZFRTUzNTMwRTFCQgorOjEwMDVEMDAwMEFFNTRERDM5NDAxNDAwMzAyMEY2RUU0RkYwMjMyNkUzMAorOjEwMDVFMDAwOTBGQUJERTA3MDAyQTNFMDYwMDMwMjBGNkU5MEZBQjlDQQorOjEwMDVGMDAwRTBGRjEyMzIzRjQwMDMwMjBGNkVFNTM1MjBFMTA2MjA5NgorOjEwMDYwMDAwRTAwMzAyMEY2RUU1NEQ3MDA5MzAwQTAzMDIxRTE0MDI2QQorOjEwMDYxMDAwMURERkU1MzUyMEUxMDMwMjBGNkUxNTREMzAwQTBCMTI4OAorOjEwMDYyMDAwMUQ1NUY1ODNFMDQ0MDhGMDgwMDkxMjFENjNGNTgzRTA1MQorOjEwMDYzMDAwNDQwOEYwRTRGRjAyMzI2RUU1MzUzMEU3MDMwMjBGNkU0NgorOjEwMDY0MDAwRTUzQzQ1M0I2MDAzMDIwRjZFOTBGQUI5RTA2MDAzMDI5RgorOjEwMDY1MDAwMEY2RTEyMUQ3OTYwMDMwMjBGNkVFNTM1MzBFMTAzMDI2MworOjEwMDY2MDAwMEY2RTkwRkFCRUUwOTBGRkZGRjBFMDYwMDU0MzM1MDFBOQorOjEwMDY3MDAwODAwMzUzMzVGRUU0RkYwMjMyNkVFNTM1MjBFNzAzMDJDNgorOjEwMDY4MDAwMEY2RUU1M0M0NTNCNzAwMzAyMEY2RTEyMUQ3OTYwMDM0RgorOjEwMDY5MDAwMDIwRjZFOTBGQUJERTBGQ0EzRTBGREVDMjRGRTYwM0E5MAorOjEwMDZBMDAwMTQ2MDc1MjQwMjYwMDMwMjBGNkVFRDYwMDMwMjBGNkU4QQorOjEwMDZCMDAwMTIxQ0UwMTIxRTBEN0QwMzEyMEZCNTYwMDMwMjBGNkVCNworOjEwMDZDMDAwMTIwRjcyOTBGQUI2RTBGREEzMTIxRDJCMTIwRkQxNTAzQgorOjEwMDZEMDAwMDI4MDA0QUUzQkFGM0MwMjEwMDIxMjFDRTA5MEY5MTZGRgorOjEwMDZFMDAwRTAzMEU0MEQxMjFFMEQ3RDE0MTIwRkI1NjAxMDAyMEZFNAorOjEwMDZGMDAwNkUxMjFFMEQ3RDA0MTIxMDA5NjAwMzAyMEY2RTEyMEZBMAorOjEwMDcwMDAwNzI5MEZBQjZFMEZEQTMxMjFEMkIxMjBGRDE1MDAyODA5OQorOjEwMDcxMDAwMDRBRTNCQUYzQzAyMTAwMjEyMUUwRDdEMDUxMjEwMDkwMworOjEwMDcyMDAwNjAwMzAyMEY2RTdCMDE3QUZBNzlCNjEyMUQyODdEMDFGMworOjEwMDczMDAwMTIyNjk4OTBGQUI3RTQ3NUYwMDMxMjFCMUM5MEZBQkVDQgorOjEwMDc0MDAwRTA5MEZBQjVGMEU0RjU0QzkwRkFCNUUwRkZFNTRDQzM2MworOjEwMDc1MDAwOUY1MDI0MTIxRDIyMTIxMDE0RkZGRDkwRkFCN0U0OEQ1MQorOjEwMDc2MDAwRjAxMjFCMUM5MEZBQjZFMEMzOUZGMEQzOTQwMDUwMDMyNAorOjEwMDc3MDAwMDIwRjZFMDU0QzgwRDExMjFEMjIxMjEwMTQyNEZFRkZCMAorOjEwMDc4MDAwOTBGQUI2RjBGREEzRTQ3NUYwMDIxMjFCMUM3QUY5NzkxOQorOjEwMDc5MDAwNzI3QjAxOEIzNjhBMzc4OTM4RTkyNDAyRjlFNDNBRkEwOAorOjEwMDdBMDAwMTIxRDI4MTIyNjk4OEY0QzA1NEMwNTRDMTIxQ0MxRTVEMQorOjEwMDdCMDAwNEMxMjFBRTgxMjFDQzE5MDAwMDE3NDAzMTIxQUZBQUYwRAorOjEwMDdDMDAwNEM3RTAwQzNFRjk1M0NFRTk1M0I1MDAyODAwNEFFM0I1RgorOjEwMDdEMDAwQUYzQzhFMzk4RjNBMDIyQ0Q4MDIwRjZFRTUzNTIwRTdGOAorOjEwMDdFMDAwMDMwMjBGNkVFNTNDNjQwMTQ1M0I2MDAzMDIwRjZFOTAwRgorOjEwMDdGMDAwRkFCOUUwNjAwMzAyMEY2RTkwRkFCREUwNzAwMkEzRTA2OAorOjEwMDgwMDAwNjAwMzAyMEY2RTEyMUQ3OTYwMDMwMjBGNkVFNTM1MjA0MgorOjEwMDgxMDAwRTAwNjIwRTEwMzAyMEY2RTc1MzYwMDc1MzcwMDc1Mzg2QgorOjEwMDgyMDAwMzIwMjBGRjFFNTM1MzBFNzAzMDIwRjZFRTUzQzQ1M0I0MAorOjEwMDgzMDAwNjAwMzAyMEY2RTkwRkFCOUUwNjAwMzAyMEY2RUQzOTA2RQorOjEwMDg0MDAwRkFCRUUwOTQwMTkwRkFCREUwOTQwMDQwMDMwMjBGNkVGRQorOjEwMDg1MDAwMTIxRDc5NjAwMzAyMEY2RUU1MzUyMEUwMDYyMEUxMDNFQQorOjEwMDg2MDAwMDIwRjZFOTBGQUJFRTBGNTMyRTUzMjcwMDg0MzM1MDFCMgorOjEwMDg3MDAwNTMzNUZEODAwNjUzMzVGRTQzMzUwMkU0RkYwMjMyNkVFOAorOjEwMDg4MDAwRTUzNTIwRTcwMzAyMEY2RUU1M0M2NDAxNDUzQjYwMDM1QworOjEwMDg5MDAwMDIwRjZFOTBGQUI5RTA2MDAzMDIwRjZFOTBGQUJERTBBRAorOjEwMDhBMDAwNzAwMkEzRTA2MDAzMDIwRjZFMTIxRDc5NjQwMTYwMDMwMQorOjEwMDhCMDAwMDIwRjZFRTUzNTIwRTEwMzAyMEY2RTdGMDEwMjMyNkVGQQorOjEwMDhDMDAwRTUzNTMwRTcwMzAyMEY2RUU1M0M0NTNCNjAwMzAyMEY2MAorOjEwMDhEMDAwNkVEMzkwRkFCRUUwOTQwMDkwRkFCREUwOTQwMDQwMDMxRAorOjEwMDhFMDAwMDIwRjZFMTIxRDc5NjQwMTYwMDMwMjBGNkVFNTM1MjA2MAorOjEwMDhGMDAwRTEwMzAyMEY2RUU0RkYwMjMyNkU5MEZGMDExMjFFMjQyQworOjEwMDkwMDAwRUYxMjFBRTg5MEZBQjkxMjFFMjQ5MDAwMDFFRjEyMUFBMQorOjEwMDkxMDAwRkE5MDAwMDJFNDEyMUFGQTc0MDMxMjFDQjI5MEZBQkRBMworOjEwMDkyMDAwRTBGRkEzRTA4NTM4ODI4NTM3ODNDRkYwQTNFRkYwOTAxNgorOjEwMDkzMDAwRkYwMUUwMTIxQkZDMDk3QjAyMDk5RDA0MDlCRjA1MDlBOAorOjEwMDk0MDAwRUIwNjBBMDkwNzBBMjcwODBBNDUwOTBBNjMwQjBCMTg3MAorOjEwMDk1MDAwODAwREI3ODEwREU4ODIwQjVGODMwQkE4ODQwQkM3ODVFMAorOjEwMDk2MDAwMEMwQzg2MEM1Nzg3MENFODg4MEQ3Mzg5MEE4MTkyMEE1MworOjEwMDk3MDAwODE5MzBEQTBCMDBFOUJDMDBFQzdDMTBFRDhDMjAwMDA1RgorOjEwMDk4MDAwMEY1REU1MzUyMEU3MDU3RjA1MDIzMUE5MTIxRDcxNjA3NQorOjEwMDk5MDAwMDMwNDcwMDlFRkZEN0MwMDdGMDcwMjExNUVFNEZEN0YxOAorOjEwMDlBMDAwMDcwMjJGQjRFNTM1MjBFNzA1N0YwNTAyMzFBOTEyMURBNgorOjEwMDlCMDAwNzE2MDAzMDQ3MDA5RUZGRDdDMDA3RjBDMDIxMTVFRTQ5RQorOjEwMDlDMDAwRkQ3RjA3MDIyRkI0RTUzNTMwRTcwMzAyMEY3MTEyMUVEOQorOjEwMDlEMDAwNDI1MDA2RTUzQzQ1M0I3MDA1N0YwMjAyMzFBOTkwRkE4MgorOjEwMDlFMDAwQjlFMDI0RkUyNEZENTAwMjgwMDMwMjMyMkM3RjA3MDI2RQorOjEwMDlGMDAwMzFBOUU1MzUzMEU3MDMwMjBGNzExMjFENzE2MDAzMDQ2MAorOjEwMEEwMDAwNzAwOUVGRkQ3QzAwN0YwODAyMTE1RTdGMDcwMjMxQTlBQgorOjEwMEExMDAwRTUzNTMwRTcwMzAyMEY3MTEyMUQ3MTYwMDMwNDcwMDlBMAorOjEwMEEyMDAwRUZGRDdDMDA3RjA5MDIxMTVFN0YwNzAyMzFBOUU1MzVFOQorOjEwMEEzMDAwMzBFNzAzMDIwRjcxMTIxRDcxNjAwMzA0NzAwOUVGRkRBRQorOjEwMEE0MDAwN0MwMDdGMEEwMjExNUU3RjA3MDIzMUE5RTUzNTMwRTc5RAorOjEwMEE1MDAwMDMwMjBGNzExMjFENzE2MDAzMDQ3MDA5RUZGRDdDMDAyOQorOjEwMEE2MDAwN0YwQjAyMTE1RTdGMDcwMjMxQTlFNTM1MzBFNzAzMDJGMworOjEwMEE3MDAwMEY3MTEyMUQ3MTYwMDMwNDcwMDlFRkZEN0MwMDdGMEU4MQorOjEwMEE4MDAwMDIxMTVFN0YwNzAyMzFBOUU1MzUzMEU3NTYxMjFENzk2NAorOjEwMEE5MDAwNzA0QTkwRkYwMkUwRjU0Q0U1NENCNDgyMDU3NTRDNjE1QworOjEwMEFBMDAwODAxMkU1NENCNDgzMDU3NTRDNjI4MDA4RTU0Q0M0NTQ1MworOjEwMEFCMDAwRjAwNEY1NEMxMjFDMjIxMjFFM0IxMjI1RkExMjFEODk1RAorOjEwMEFDMDAwMTIxQUJCNjAwNTEyMzI3QTgwMDY4NTMzMzk4NTM0M0FCMgorOjEwMEFEMDAwNzUzNjAxNzUzN0Y5NzUzODc1MDIyQ0Q4RTRGRDdGMDUzOAorOjEwMEFFMDAwMDIyRkI0MTIxRDc5NjAwNTdGMDUwMjMxQTkxMjFFNDI0MgorOjEwMEFGMDAwNDAwNTdGMDMwMjMxQTk5MEZGMDJFMEY1NENFNTRDQjRCQworOjEwMEIwMDAwODIwNTc1NEM2MTgwMTJFNTRDQjQ4MzA1NzU0QzYyODA5QQorOjEwMEIxMDAwMDhFNTRDQzQ1NEYwMDRGNTRDMTIxQzIyMDIzMjJDMTI4RAorOjEwMEIyMDAwMUU0QzEyMkFDNzEyMUQzM0UwNTQ3RkYwMDAwMDAwRTA3MworOjEwMEIzMDAwOTBGQUJBRjA3ODY4MTIxQkQ4OTAwMDAyMTIxQUJCMzBGMworOjEwMEI0MDAwRTdGMjkwMDAwMkU0MTIxQUZBOTBGQUJBRTA0NDgwRkY0OQorOjEwMEI1MDAwRjA3ODdDRTZGQzA4RTY4QzgzMTIxRDNCRUZGMDEyMzI0NQorOjEwMEI2MDAwODRFNEZGMDIzMUE5OTBGQUI5RTA2NDAxNzAxRjkwRkFBMQorOjEwMEI3MDAwQkRFMEZGN0UwMDcwMDZBM0UwRjU5MDgwMkRDMkFGRUZEMAorOjEwMEI4MDAwRjQ1MjkwOTBGQUJFRTA0MjkwRDJBRjgwMUQ5MEZBQkQzMAorOjEwMEI5MDAwRTBGRjdFMDA3MDA2QTNFMEY1QjA4MDBFQzJBRkVGRjQ3OAorOjEwMEJBMDAwNTJCMDkwRkFCRUUwNDJCMEQyQUZFNEZGMDIzMUE5MTJENworOjEwMEJCMDAwMUNFMDkwRkFCOUUwQjQwMTBBMTIxQ0MxRTU5MDEyMUFDNworOjEwMEJDMDAwRTg4MDA4MTIxQ0MxRTVCMDEyMUFFODAyMEZGMTkwRkE5MQorOjEwMEJEMDAwQjlFMEZGMjQxMzEyMUNGMTIwRTEzMzEyMUQ4MEVGMjQzMQorOjEwMEJFMDAwRkM2MDE4MDQ3MDI4OTBGQUJBRTA2MDA5OTBGRkE0RTA1NQorOjEwMEJGMDAwNDQxMEYwODAxOTEyMUU1NkYwODAxMzkwRkFCQUUwNjA4QgorOjEwMEMwMDAwMDk5MEZGQjRFMDQ0MTBGMDgwMDQxMjFFNURGMEU0RkY5MAorOjEwMEMxMDAwMDIzMUE5OTBGQUI5RTBGRjI0MTMxMjFDRjEyMEUxMzk0NgorOjEwMEMyMDAwMTIxRDgwRUYyNEZDNjAxQjA0NzAyRTkwRkFCQUUwNjA2NQorOjEwMEMzMDAwMDk5MEZGQTRFMDQ0MjBGMDgwMUY5MEZGQTRFMDU0REY1RgorOjEwMEM0MDAwRjA4MDE2OTBGQUJBRTA2MDA5OTBGRkI0RTA0NDIwRjAxQQorOjEwMEM1MDAwODAwNzkwRkZCNEUwNTRERkYwRTRGRjAyMzFBOTEyMUREOQorOjEwMEM2MDAwODAxMjFENzE2MDREMDQ2MDAzMDIwQ0UzOTBGQUJBRTAzQgorOjEwMEM3MDAwNjAwRjkwRkZBNDEyMUNFQTMwRTE2RjEyMUUyQzAyMENEMAorOjEwMEM4MDAwRTM5MEZGQTRFMDU0RkIxMjFDRURGRTMwRTE1QzMwRTI4NworOjEwMEM5MDAwMTEzMEI0MDUxMjFFMkM4MDUxOTBGRkE0RTA1NEZERjBEOQorOjEwMENBMDAwODA0ODMwOTUwNTEyMUUyQzgwNDA5MEZGQTRFMDU0RkQzMgorOjEwMENCMDAwRjA4MDM3OTBGQUJBRTA2MDEyOTBGRkI0MTIxQ0VBMzA2QworOjEwMENDMDAwRTEyODkwRkZCNEUwNDQwMkYwODAxRjkwRkZCNEUwNTRBQworOjEwMENEMDAwRkIxMjFDRUQzMEUxMTMzMDkzMDk5MEZGQjRFMDQ0MDJBNQorOjEwMENFMDAwRjA4MDA3OTBGRkI0RTA1NEZERjBFNEZGMDIzMUE5MTI1OAorOjEwMENGMDAwMUQ4MDkwRkFCOUUwMjRGQzYwNDAwNDcwNzg5MEZBQkE0NAorOjEwMEQwMDAwRTA2MDFEOTBGRkEyRTA0NDQwRjBBM0UwRkYzMEU3NjUwMworOjEwMEQxMDAwRDIwM0EzRTA1NERGRjA5MEZGQTNFRjU0N0ZGMDgwNTU5RgorOjEwMEQyMDAwMzAwMzBFOTBGRkEzRTA0NDgwRjBDMjAzQTNFMDQ0MjAxMAorOjEwMEQzMDAwRjA5MEZGQTJFMDU0QkZGMDgwM0I5MEZBQkFFMDYwMUQ1MworOjEwMEQ0MDAwOTBGRkIyRTA0NDQwRjBBM0UwRkYzMEU3MjhEMjA0QTNENAorOjEwMEQ1MDAwRTA1NERGRjA5MEZGQjNFRjU0N0ZGMDgwMTgzMDA0MEVDMgorOjEwMEQ2MDAwOTBGRkIzRTA0NDgwRjBDMjA0QTNFMDQ0MjBGMDkwRkY4MQorOjEwMEQ3MDAwQjJFMDU0QkZGMEU0RkYwMjMxQTkxMjFDRTA5MEZBQjlDRQorOjEwMEQ4MDAwRTAyNEZDNjAwRjA0NzAxNjkwRkZBNkUwMTIxQ0MxMTI1NAorOjEwMEQ5MDAwMUFFODgwMEE5MEZGQjZFMDEyMUNDMTEyMUFFODc1MzlGMQorOjEwMERBMDAwMDA3NTNBMDEwMjJDRDg5MEY5MTU3NDAxRjA5MEY5MUNFNQorOjEwMERCMDAwNzQxOUYwOTBGOTY2NzRGRkYwRTRGRjAyMzFBOUU0RkZDMgorOjEwMERDMDAwMTIzMUE5MTIxREU3N0YwMzEyMTI2MTkwRjkxNkUwMzA2QgorOjEwMEREMDAwRTQwODkwRkY5Mzc0ODBGMDgwMTA5MEZGRkNFMDU0N0Y1MworOjEwMERFMDAwRjA3RkZGN0UwMDEyMzBEM0MyOTBDMkFGMDA4MEZERTRERQorOjEwMERGMDAwRjU0RUY1NEY5MEZBQkY3NDNFRjBBM0U0RjA5MEZBQjdDOQorOjEwMEUwMDAwRjBBMzc0MTVGMEUwNTQzRkZGQzM3NDQwOUY5MEZBQkMwOAorOjEwMEUxMDAwRjBEMzk0MDBFNDk0M0U0MDA4OTBGQUMwRTA5MEZBQkMwRAorOjEwMEUyMDAwRjAxMjBGOThFNTMxNDUzMDcwNzMxMjFDRkE5MEZBQkYzQQorOjEwMEUzMDAwMTIxRTA2NjAyN0QzRUY5NDQwRUU5NDAwNDAwODkwRkEwQgorOjEwMEU0MDAwQkM3NDQwRjA4MDA4OTBGQUMwRTA5MEZBQkNGMDEyMEYzOQorOjEwMEU1MDAwOThFNTMxNDUzMDcwNDYxMjFDRkE4MEQxNzU0QzAyOTBFRAorOjEwMEU2MDAwRkFCRkU0RjBBMzA0RjA5MEZBQjdFNEYwQTM3NDBGRjAzMworOjEwMEU3MDAwN0IwMDdBMDA3OTRDOTBGQUMwRTBGNTRBN0QwRjdDMDA0NworOjEwMEU4MDAwMTIyOTYwNzUzMDAwOEYzMTdCMDA3QTAwNzk0Q0U0RjVDRgorOjEwMEU5MDAwMkRGNTJFN0QwMTEyMjY5OEU0RjUzMEY1MzFBRjMxMDJBMworOjEwMEVBMDAwMzFBOTEyMUQ4MDMwRTcxMEUwNTQwRjkwRjk2N0YwRDM5QworOjEwMEVCMDAwOTQwMDQwMTVDMjk1ODAxMTkwRkFCQUUwNTQwRjkwRjk1MQorOjEwMEVDMDAwNjVGMEQzOTQwMDQwMDJDMjk0RTRGRjAyMzFBOTEyMUVERgorOjEwMEVEMDAwNENCRjAxMDREMjkzODAwMkMyOTNFNEZGMDIzMUE5MTJGNQorOjEwMEVFMDAwMUQ4MDU0MDMxNDYwMEExNDYwMEYxNDYwMDgyNDAzNzBGQQorOjEwMEVGMDAwMkJEMjkxODAyN0MyOTE4MDIzMTIxRTU2MTIwRkMwNjAwMAorOjEwMEYwMDAwMDREMjkxODAxNzkwRkZBNEUwNDQxMDEyMEZDMEZGQkZERAorOjEwMEYxMDAwQTAwNEMyOTE4MDAyRDI5MTEyMUU1NkYwOTBGQUJBRTA1QgorOjEwMEYyMDAwNTQwQ0ZGMTMxMzU0M0YxNDYwMEExNDYwMEYxNDYwMDgyQworOjEwMEYzMDAwMjQwMzcwMkJEMjkyODAyN0MyOTI4MDIzMTIxRTVEMTI0RQorOjEwMEY0MDAwMEZFMDYwMDREMjkyODAxNzkwRkZCNEUwNDQxMDEyMEZCQgorOjEwMEY1MDAwRTBGRkJGQTAwNEMyOTI4MDAyRDI5MjEyMUU1REYwRTRCNAorOjEwMEY2MDAwRkYwMjMxQTlFNTM1MzBFNzA3RTRGRDdGMDUwMjJGQjQyNAorOjEwMEY3MDAwN0YwNTAyMzFBOTEyMzI3QTIyN0IwMTdBRkE3OUI2OTA4MgorOjEwMEY4MDAwRkFCN0UwRjUyREEzRTBGNTJFN0QwMTEyMjY5ODkwRkEzMAorOjEwMEY5MDAwQjdFNDc1RjAwMzEyMUIxQ0FCMzZBQTM3QTkzODIyQUE5NgorOjEwMEZBMDAwNEVBOTRGN0JGRjkwRkFCN0UwRkNBM0UwRkQ5MEZBQkM5RQorOjEwMEZCMDAwRTBGNTRBMTIyOTYwNzUzMDAwOEYzMTIyMTIyMzYxN0VEQworOjEwMEZDMDAwMDA4RTMwOEYzMUVGMjJGMDdGMDExMjEyNjE5MEZGQTY2OAorOjEwMEZEMDAwRTA5MEZBQkJGMDU0QTAyMjEyMjY5ODhGNEM3RTAwQzNGQQorOjEwMEZFMDAwRUY5NTNDRUU5NTNCMjJGMDdGMDExMjEyNjE5MEZGQjYyNworOjEwMEZGMDAwRTA5MEZBQkJGMDU0QTAyMjc1MzkwMDc1M0EwMTAyMkMzQQorOjEwMTAwMDAwRDg5MEZBQjlFMEZGMDIzMjNGOEUzOThGM0EwMjJDRDhERAorOjEwMTAxMDAwMTIyMzYxN0UwMDhFMzA4RjMxRUYyMjdEMDExMjI2OThERgorOjEwMTAyMDAwOTBGQUI0RTAyMkVGOTBGODA0RjAyMkMwQThDMkFGRUUyQworOjEwMTAzMDAwNjAwQUMwMDU3RDdGRERGRURFRkFEMDA1RUZDMzk0MTVBMgorOjEwMTA0MDAwNTAwM0QwQTgyMjEzNzAwM0QwQTgyMkZGRDUwN0ZERDBFQgorOjEwMTA1MDAwQTgyMkMwMDBDMDAxQzAwMkMwMDRDMDA1RTUzRTI0MDhBQgorOjEwMTA2MDAwRjg4NjA1NTMwNTdGN0NGRjEyMTBDMDdGMDA3RTAwRTVFNworOjEwMTA3MDAwNDM2MDQ2RkM5MEY5MURFMDU0N0Y2RDcwMEZDMDgzQzA0MworOjEwMTA4MDAwODJBM0UwRkVBM0UwRkZBMzE1NDM4MDA3QTNBM0EzREM5NAorOjEwMTA5MDAwRTY4MDI2REMwNkQwODJEMDgzODAxRUUwRjhBM0UwRjk0QgorOjEwMTBBMDAwQTNFMEZBRDA4MkQwODNFOEYwQTNFOUYwQTNFQUYwQTNBQQorOjEwMTBCMDAwQzA4M0MwODJBM0EzQTM4MERBMTIxMTU3RDAwNUQwMDQ0NQorOjEwMTBDMDAwRDAwMkQwMDFEMDAwMjI4NUE4NDQ3NUE4ODhFQzcwMDIxNworOjEwMTBEMDAwN0MzRjhDM0QyMkU1M0UyNDA4Rjg3NjAwMTIxMUFFODA1QworOjEwMTBFMDAwRkJDMDAwQzAwMUMwMDJDMDA0QzAwNjdDRkYxMjEwQzBEQgorOjEwMTBGMDAwRTU0MzYwNDJGRTkwRjkxREUwNTQ3RjZGNzAwQkMwODNBMgorOjEwMTEwMDAwQzA4MkEzQTNBMzE1NDM4MDA3QTNBM0EzREVFQTgwMjY3RQorOjEwMTExMDAwREUwNkQwODJEMDgzODBEOEUwRjhBM0UwRjlBM0UwRkExRAorOjEwMTEyMDAwRDA4MkQwODNFOEYwQTNFOUYwQTNFQUYwQTNDMDgzQzBBMworOjEwMTEzMDAwODJBM0EzQTM4MERBNzgwODA4NzkxODA5N0MwMUU2NTQxMQorOjEwMTE0MDAwN0Y2RjcwMDY3NjAwNzcwMDgwMDYwODA5MENCQzA4RUVGOQorOjEwMTE1MDAwMTIxMTU3RDAwNkQwMDREMDAyRDAwMUQwMDAyMjc1M0QyNAorOjEwMTE2MDAwMDA4NTQ0QTgyMkMwRjBDMDgyQzA4M0MzRTU0MzI0RThDMAorOjEwMTE3MDAwNTAwNTEyMTFBRTgwRjRFRjYwMzE5MDMxMTFFNDkzQzM0OQorOjEwMTE4MDAwOUY0MDJGQzAwNDdDRkYxMjEwQzBEMDA0NDMwNzgwRTVBRAorOjEwMTE5MDAwNDM3NUYwMDNBNDI0MURGNTgyRTQzNEY5RjU4M0VGRjBFMAorOjEwMTFBMDAwRUNBM0YwRURBM0YwMDU0MzEyMTE1N0QwODNEMDgyRDAwOQorOjEwMTFCMDAwRjAyMjAyMTFEQ0MwMDQ3QzIwRDI4Q0QyOERENTA0RkQzQgorOjEwMTFDMDAwRDAwNDIyNzVBODAwNzU4ODAwNzVCODAwNzVGMDAwNzUwOAorOjEwMTFEMDAwRDAwMEU0Rjg5MEY4MDRGMDkwMDAwMEY2MDhCODAwRkJBNgorOjEwMTFFMDAwMDIwMDAwQzJBRkU0OTBGRjQ4RjA5MEZGNTBGMDkwRkY4MworOjEwMTFGMDAwMDhGMDkwRkYxMEYwOTBGRjgwRjBBM0EzRjBEMkIxQzJFRQorOjEwMTIwMDAwQjA3RUZGN0ZGRjEyMTAyNDdFRkY3RkZGMTIxMDI0N0UyRQorOjEwMTIxMDAwRkY3RkZGMTIxMDI0RDJCMEQyQjE3RUZGN0ZGRjEyMTBFOQorOjEwMTIyMDAwMjQ3RUZGN0ZGRjEyMTAyNDdFRkY3RkZGMTIxMDI0ODA5OAorOjEwMTIzMDAwQ0NDM0VFOTQwMjUwMDQ3RTAzN0ZFOEVGRjRGRkVFRjQ5QgorOjEwMTI0MDAwRkUwRkJGMDAwMTBFOEY0MjhFNDEyMkMzRUY5NEJDRUUxMQorOjEwMTI1MDAwOTQwMjUwMDQ3RTA3N0ZEMEVGRjRGRkVFRjRGRTBGQkY0MAorOjEwMTI2MDAwMDAwMTBFOEY0MDhFM0YyMkVGNzAwMTIyQzAwMEMwQTgwNworOjEwMTI3MDAwQzJBRkU1M0UyNDE4RjhBNjA3RTUzRTI0MDhGOEM2NTQ5OAorOjEwMTI4MDAwN0ZGNkQwQThFNjMwRTcwM0QwMDAyMjEyMTFBRTgwRjQzQQorOjEwMTI5MDAwQzAwMDdGMDFFRjI0MDhGOEU2NjAwOTBGQkYwOEY1MTJDRgorOjEwMTJBMDAwMTFBRTgwRUVEMDAwMjJDMEYwQzA4MkMwODNDMDAwQzA2QQorOjEwMTJCMDAwMDZDMDA0RUQyNDEwRjg3NjlBRUQ3NUYwMjFBNDI0MDVGQgorOjEwMTJDMDAwRjU4MkU0MzRGOEY1ODNDMDgyQzA4M0EzQTNFNDc4MERFQgorOjEwMTJEMDAwRjBBM0Q4RkNFRjU0N0Y3NUYwMDJBNDI0RjNGNTgyRTU2NworOjEwMTJFMDAwRjAzNDMwRjU4M0U0OTNGRTc0MDE5M0ZDRDA4M0QwODIxNAorOjEwMTJGMDAwRUNGMEEzRUVGMEVEMjQwOEY4RUY0NDgwRjZEMDA0RDAzMworOjEwMTMwMDAwMDZEMDAwRDA4M0QwODJEMEYwMjI3NTNFMDA3NTQzMDAxNQorOjEwMTMxMDAwN0EwODc5MTg3ODA4NzYwMDc3MDAwODA5REFGODkwRjhFMgorOjEwMTMyMDAwMDRFMEZDOTAzMTExRTQ5M0MzOUM1MDA1RTQ5MEY4MDQ3MAorOjEwMTMzMDAwRjA3ODA4NzQ4MDQ0N0ZGNjc0MDE0NDEwRjU4OTc1QjgxQworOjEwMTM0MDAwMDBEMkFCRDJBOTIyNzU4MThCRDI4RUQyOENEMkFGRTVERQorOjEwMTM1MDAwNDM2MDM2RkY5MEY5MURFMDU0ODA2MDI4NzgwODc5MDhEMgorOjEwMTM2MDAwRTA1NDdGRkE3QjAwRTY1NDdGQjUwMjAyN0JGRjA4RDk4OAorOjEwMTM3MDAwRjVFQjcwMTBFQUYwQzAwNzEyMTI4OUFEMDdBRjAyMTI0OAorOjEwMTM4MDAwMTJBMEQwMDdBM0EzQTNERkNFMTIxMUFFODBDMThGMjQ3OQorOjEwMTM5MDAwMTIyQUM3MTIyMkI1QTNBM0UwQTMzMEU3Mjg3ODdFMTI1MQorOjEwMTNBMDAwMjI5OUUwNDQwMUYwMTIyMkZBMTIyMjlERTAyMEUwRjY5OAorOjEwMTNCMDAwMTIyMzUwNzQwMkYwMTIyMkRBRTBBMzMwRTUwNzEyMjM2MAorOjEwMTNDMDAwNTBFMDQ0MDFGMDc4ODBFNkZFMDhFNkZGOEU4MzI0MDhCMgorOjEwMTNEMDAwMTIyMkExRTBGRDEyMjMzOThBODMyNDBBMTIyMkExRURGMAorOjEwMTNFMDAwRjAxMjIzMDYyNDA3MTIyMkExRTBGRjEyMjM1QTI0MDkzNworOjEwMTNGMDAwMTIyMkExRUZGMDkwRjkxNkUwMzBFNDIwMDgxMjIyQjc5MworOjEwMTQwMDAwQzA4M0MwODJBM0UwMjVFMEZGMDU4MkQ1ODIwMjE1ODM1OAorOjEwMTQxMDAwMTU4MkUwMzNEMDgyRDA4M0YwQTNFRkYwMTIyMkI1RTA0MgorOjEwMTQyMDAwRkNBM0UwRkRFQ0ZGMTIyMzM5OEE4MzI0MDgxMjIyQTFEOQorOjEwMTQzMDAwRUZGMEVEMTIyMzVBMjQwNzEyMjJBMUVERjAxMjIyQTk5NworOjEwMTQ0MDAwRTAzMEU2MEExMjIzNDEyNDA5MTIyMkExRTRGMDEyMjIxQworOjEwMTQ1MDAwQTlFMEZGMzBFNzFCMTIyMzFFMjQwOTEyMjJBMUUwNjAzRAorOjEwMTQ2MDAwMDkxMjIyQTlFRjQ0MDJGMDgwMDcxMjIyQTlFRjU0RkRDRAorOjEwMTQ3MDAwRjA3ODdFMTIyMkI3QTNBM0UwRkY1MzA3QzcwOEU2RkM2QgorOjEwMTQ4MDAwMDhFNkZEMTIyMkUwQTNFMDMwRTMxMjhEODI4QzgzRTVCMgorOjEwMTQ5MDAwODIyNDA1MTIyMkExRTA5MDMyNTE5MzQyMDc1MzA3RkJBOAorOjEwMTRBMDAwMTIyMzFFMjQwNjEyMjJBMUUwNjAwMzQzMDcwNDUzMDdGRgorOjEwMTRCMDAwRkM3ODgwMTIyMzI5MjQwNDEyMjJBMUUwNDIwNzQzMDc2QQorOjEwMTRDMDAwODAxMjIzMzlGNTgyOEE4M0EzQTNFRkYwMTIyMzVBMjREMgorOjEwMTREMDAwMDQxMjIyQTFFMEZGOEQ4MjhDODNBM0EzRTBGQ0EzRTA5MQorOjEwMTRFMDAwRkQzMEUxMDU1MzA3REY4MDAzNDMwNzIwRUMzMEU0MDVCRQorOjEwMTRGMDAwNTMwN0VGODAwMzQzMDcxMDEyMjJBOUUwRkU1NDAzNjA1NAorOjEwMTUwMDAwNzM1MzA3REZFRTMwRTE2OTEyMjMxRTI0MDkxMjIyQTE3MgorOjEwMTUxMDAwRTAxMjFCRkMxNTJDMDAxNTYwMDExNTY1MDMxNTYwMDUxNAorOjEwMTUyMDAwMTU2NTA3MTU2MDA5MTU2NTBCMTU2MDBEMTU2NTBGMDAyQworOjEwMTUzMDAwMDAxNTZERTUyNDY0MDM3MDIxOTBGOTE2RTAzMEUyMEQ4QQorOjEwMTU0MDAwMzBCNDA1NDMwNzAyODAyQzUzMDdGRDgwMjczMDk1MDVGMgorOjEwMTU1MDAwNDMwNzAyODAxRjUzMDdGRDgwMUEzMDkzMDU0MzA3MDI5QgorOjEwMTU2MDAwODAxMjUzMDdGRDgwMEQ0MzA3MDI4MDA4NTMwN0ZEODA1QQorOjEwMTU3MDAwMDM1MzA3RkQxMjIzMjcyNDA0MTIyMkExRUZGMDhEODJDQQorOjEwMTU4MDAwOEM4M0EzQTNBM0UwRkYxMjIyQTlFMEZFNTQwMzcwMDNGRgorOjEwMTU5MDAwMDIxNjYwRUUyMEUxMDMwMjE2NUQwODEyMjMyMDI0MDlFMgorOjEwMTVBMDAwMTIyMkExRTAxMjFCRkMxNUJGMDAxNUY1MDExNUY1MDM3MQorOjEwMTVCMDAwMTYyOTA1MTYyOTA3MTYwRjA5MTYwRjBCMTY0MzBEMTZDNworOjEwMTVDMDAwNDMwRjAwMDAxNjYwRTUyNDY0MDM3MDIzOTBGOTE2RTBEMQorOjEwMTVEMDAwMzBFMjBGMzBCMTA2NTMwNzdGMDIxNjYwNDMwNzgwMDJFNgorOjEwMTVFMDAwMTY2MDMwOTQwNTUzMDc3RjgwN0Q0MzA3ODA4MDc4MzBGNAorOjEwMTVGMDAwOTIwNTUzMDc3RjgwNzA0MzA3ODA4MDZCRTUyNEI0MDMxNgorOjEwMTYwMDAwMDk5MEZGOUVFMDU0RUZGMDgwMDc5MEZGOUVFMDU0REZDQQorOjEwMTYxMDAwRjA1MzA3N0Y4MDUxRTUyNEI0MDMwOTkwRkY5RUUwNDQxNgorOjEwMTYyMDAwMTBGMDgwMDc5MEZGOUVFMDQ0MjBGMDUzMDc3RjgwMzc0MgorOjEwMTYzMDAwRTUyNEI0MDMwOTkwRkY5RUUwNTRFRkYwODAwNzkwRkY4QgorOjEwMTY0MDAwOUVFMDU0REZGMDQzMDc4MDgwMURFNTI0QjQwMzA5OTAzOQorOjEwMTY1MDAwRkY5RUUwNDQxMEYwODAwNzkwRkY5RUUwNDQyMEYwNDM5RQorOjEwMTY2MDAwMDc4MDgwMDM1MzA3N0YxMjIyREFFMEZDQTNFMEZEMzBGRAorOjEwMTY3MDAwRTAwNTQzMDcyMDgwMDM1MzA3REZFQzMwRTMwNTQzMDcxMQorOjEwMTY4MDAwNDA4MDAzNTMwN0JGRUMzMEUwMDU0MzA3MTA4MDAzNTM0RAorOjEwMTY5MDAwMDdFRkVEMzBFNDA1NDMwNzA4ODAwMzUzMDdGN0VEMzAwQgorOjEwMTZBMDAwRTUwNTQzMDcwNDgwMDM1MzA3RkJFRDMwRTYwNTQzMDdEOAorOjEwMTZCMDAwMDE4MDAzNTMwN0ZFRUQzMEU3MDU0MzA3MDI4MDAzNTMyMworOjEwMTZDMDAwMDdGRDc4N0UxMjIyRENBM0VGRjAxMjMyODQ3RjAwMjIyNQorOjEwMTZEMDAwOTBGRkZBNzQwOEYwQTM3NDE2RjA5MEZGRjk3NDAyRjAwQQorOjEwMTZFMDAwN0IwMTdBRkE3OUNGRTRGRDEyMjM2MTkwRkFDRkU0NzU5OQorOjEwMTZGMDAwRjAwMzEyMUIxQzEyMTk5MkU1MjMzMEU3MDJEMjAyN0I4MQorOjEwMTcwMDAwMDA3QTAwNzkyNDkwRkFDRkUwRjUyREEzRTBGNTJFN0Q0NAorOjEwMTcxMDAwMDExMjI2OTg5MEZBQ0ZFNEYwQTM3NDBCRjA3QjAwN0FDNAorOjEwMTcyMDAwMDA3OTIzNzUyRDAwRjUyRTdEMDExMjI2OThFNTIzMjRERQorOjEwMTczMDAwODA5MEZGRjhGMEU1MjM2NDA3NjAxRUU1MjM2NDA2NjBFRgorOjEwMTc0MDAwMThFNTIzNjQxNDYwMTJFNTIzNjQ0MTYwMENFNTIzNjQwQQorOjEwMTc1MDAwMUE3MDQ2RTUyNDY0MDI3MDQwRTUyM0I0MDcxNkQyOTQ1QgorOjEwMTc2MDAwRDI5NUQyOTJEMjkzOTBGOTE2RTA0NDAyRjBBM0UwNDRDRAorOjEwMTc3MDAwMDJGMDgwMUVFNTIzQjQ0MTEyOTBGOTE2RTA0NDA2RjAxMQorOjEwMTc4MDAwQTNFMDQ0MDZGMEQyQjFEMkI0ODAwNzkwRjkxNkUwNDQ0OQorOjEwMTc5MDAwMDFGMDkwRjkxN0UwNDQwMUYwRTUyMzY0NDI2MDBDRTVBNAorOjEwMTdBMDAwMjM2NDQzNjAwNkU1MjM2NDQ0NzAyRTkwRjkxNkUwRkYzRAorOjEwMTdCMDAwRTUyM0I0NDQwNDdFNDA4MDAyN0UwMEVFMjQ4MDRGOTBGNgorOjEwMTdDMDAwRjkxNkYwQTNFMEZGRTUyM0I0NDQwNDdFNDA4MDAyN0VENgorOjEwMTdEMDAwMDBFRTI0ODA0RjkwRjkxN0YwOTBGQUNGRTRGMEEzNzQ1NAorOjEwMTdFMDAwMERGMDEyMTk5MjkwRkZGNUU1MjNGMEU0RjUzNUY1MzM4RAorOjEwMTdGMDAwRjUzNEY1MzIxMjFFMzQxMjFDRTAxMjFFM0I5MEY5NkFDOQorOjEwMTgwMDAwMTIxQkYzOTBGOTZGMTIxQkYzOTBGRkZGRTRGMDkwRkZBRgorOjEwMTgxMDAwODNFMEU0RjA5MEZGODE3NDgwRjBBMzc0ODRGMDkwRkY4MworOjEwMTgyMDAwODBGMEU0RjUyM0U1MjMxMjFENTdGNTgzRTRGMEU1MjM2QQorOjEwMTgzMDAwMTIxRDY1RjU4M0U0RjAwNTIzRTUyM0I0MDdFNzc4N0EwNAorOjEwMTg0MDAwNzZGRTA4NzZGMDkwMzIwQUU0OTNGRjc4NzhGNkZEQURFNAorOjEwMTg1MDAwMDc5MDMyMTdFNDkzRkYwOEY2RkZFRDU0MEZGRDEyMURCOQorOjEwMTg2MDAwNDc3NDg0RjBFRDc1RjAwOEE0MjQ0N0Y1ODJFNDM0RkY1MgorOjEwMTg3MDAwRjU4M0VGRjBDMzc0RjA5Rjc4N0JGNjc0RkU5NDAwMTg0NAorOjEwMTg4MDAwMTIxQ0Q4Q0VDMzEzQ0UxM0Q4RjlGRkVEMTIxREE4RUY0QQorOjEwMTg5MDAwRjBFRDEyMURDRUU0RjUyM0U1MjM5MDMyMDQ5M0ZGNzg5QQorOjEwMThBMDAwNzhGNkZERTUyMzI1RTAyNDBCRjU4MkU0MzQzMkY1ODM1OAorOjEwMThCMDAwRTQ5MzA4RjZFRDMwRTc1MzE4RTY1NDBGRjkxMjFENDc4QworOjEwMThDMDAwMTIxREI2MjQ0N0Y1ODJFNDM0RkYxMjFDQzhDRUMzMTNBMAorOjEwMThEMDAwQ0UxM0Q4RjlGRkU5MTIxREE4RUZGMDEyMUNDRkNFQzMyQQorOjEwMThFMDAwMTNDRTEzRDhGOTEyMURCQjI0NDVGNTgyRTQzNEZGRjU1RAorOjEwMThGMDAwODNFRkYwRTkxMjFEQ0VFOTc1RjAwOEE0MjQ0NkY1ODJDNQorOjEwMTkwMDAwRTQzNEZGRjU4Mzc0ODBGMDAyMTk2Nzc4NzhFNjU0MEZBOQorOjEwMTkxMDAwRjkxMjFEOUExMjFEQjYyNDA3RjU4MkU0MzRGRjEyMUMzOQorOjEwMTkyMDAwQzhDRUMzMTNDRTEzRDhGOTEyMURCQjI0MDFGNTgyRTQyRgorOjEwMTkzMDAwMzRGRkY1ODNFRkYwMTIxQ0NGQ0VDMzEzQ0UxM0Q4RjlDQQorOjEwMTk0MDAwMTIxREJCMjQwNUY1ODJFNDM0RkZGNTgzRUZGMEU5NzU0MQorOjEwMTk1MDAwRjAwOEE0MjQwMkY1ODJFNDM0RkZGNTgzRTRGMEU5NzU4RAorOjEwMTk2MDAwRjAwOEE0MjQwNkY1ODJFNDM0RkZGNTgzRTRGMDA1MjNBRgorOjEwMTk3MDAwRTUyMzY0MDQ2MDAzMDIxODkxOTAzMjA5RTQ5M0ZGNzgzMAorOjEwMTk4MDAwNzhGNjEyMUQ5OEU0RjA5MDMyMDg5M0ZGRjYxMjFENDU4OAorOjEwMTk5MDAwRTRGMDkwRkZGRDc0MDVGMDIyN0IwMDdBMDA3OTIzOTAzQgorOjEwMTlBMDAwRkFDRkU0NzVGMDAxMTIxQjMyODVGMDJFRjUyRDdEMDE4MgorOjEwMTlCMDAwMDIyNjk4RTcwOUY2MDhERkZBODA0NkU3MDlGMjA4REYxMQorOjEwMTlDMDAwRkE4MDNFODg4MjhDODNFNzA5RjBBM0RGRkE4MDMyRTM1NQorOjEwMTlEMDAwMDlGNjA4REZGQTgwNzhFMzA5RjIwOERGRkE4MDcwODhGOAorOjEwMTlFMDAwODI4QzgzRTMwOUYwQTNERkZBODA2NDg5ODI4QTgzRTAzMgorOjEwMTlGMDAwQTNGNjA4REZGQTgwNTg4OTgyOEE4M0UwQTNGMjA4REYyMQorOjEwMUEwMDAwRkE4MDRDODBEMjgwRkE4MEM2ODBENDgwNjk4MEYyODBDRgorOjEwMUExMDAwMzM4MDEwODBBNjgwRUE4MDlBODBBODgwREE4MEUyODBGNQorOjEwMUEyMDAwQ0E4MDMzODk4MjhBODNFQ0ZBRTQ5M0EzQzhDNTgyQzg0QQorOjEwMUEzMDAwQ0NDNTgzQ0NGMEEzQzhDNTgyQzhDQ0M1ODNDQ0RGRTlCNAorOjEwMUE0MDAwREVFNzgwMEQ4OTgyOEE4M0U0OTNBM0Y2MDhERkY5RUM1MAorOjEwMUE1MDAwRkFBOUYwRURGQjIyODk4MjhBODNFQ0ZBRTBBM0M4QzVEQgorOjEwMUE2MDAwODJDOENDQzU4M0NDRjBBM0M4QzU4MkM4Q0NDNTgzQ0MwMgorOjEwMUE3MDAwREZFQURFRTg4MERCODk4MjhBODNFNDkzQTNGMjA4REY3MQorOjEwMUE4MDAwRjk4MENDODhGMEVGNjAwMTBFNEU2MEMzODhGMEVEMjQ0MQorOjEwMUE5MDAwMDJCNDA0MDA1MEI5RjU4MkVCMjQwMkI0MDQwMDUwQUY0NAorOjEwMUFBMDAwMjMyMzQ1ODIyMzkwMTlGQzczQkIwMTA2ODk4MjhBODMxNAorOjEwMUFCMDAwRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQwRAorOjEwMUFDMDAwOTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTA5OAorOjEwMUFEMDAwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhCNworOjEwMUFFMDAwRTIyMkU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkI3RAorOjEwMUFGMDAwMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjM5RAorOjEwMUIwMDAwMjJGOEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzRThFOQorOjEwMUIxMDAwRjAyMjUwMDZFOTI1ODJDOEY2MjJCQkZFMDVFOTI1ODI5RgorOjEwMUIyMDAwQzhGMjIyQzVGMEY4QTNFMDI4RjBDNUYwRjhFNTgyMTU2OAorOjEwMUIzMDAwODI3MDAyMTU4M0UwMzhGMDIyQTNGOEUwQzVGMDI1RjBBQQorOjEwMUI0MDAwRjBFNTgyMTU4MjcwMDIxNTgzRTBDODM4RjBFODIyQkIwOAorOjEwMUI1MDAwMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwQTNFQgorOjEwMUI2MDAwRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFMEE0OQorOjEwMUI3MDAwRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzRTkxNworOjEwMUI4MDAwOTNGNUYwQTNFOTkzMjJCQjAxMEE4OTgyOEE4M0YwRTVFOQorOjEwMUI5MDAwRjBBM0YwMjI1MDA2RjcwOUE3RjAxOTIyQkJGRTA2RjNDNgorOjEwMUJBMDAwRTVGMDA5RjMxOTIyRjhCQjAxMTFFNTgyMjlGNTgyRTU3OAorOjEwMUJCMDAwODMzQUY1ODNFOEYwRTVGMEEzRjAyMjUwMDlFOTI1ODJBNQorOjEwMUJDMDAwQzhGNjA4QTZGMDIyQkJGRTA5RTkyNTgyQzhGMkU1RjBCNgorOjEwMUJEMDAwMDhGMjIyQTQyNTgyRjU4MkU1RjAzNTgzRjU4MzIyRTYxQQorOjEwMUJFMDAwRkIwOEU2RkEwOEU2RjkyMkVCRjYwOEVBRjYwOEU5RjY1OQorOjEwMUJGMDAwMjJFMEZCQTNFMEZBQTNFMEY5MjJFQkYwQTNFQUYwQTNEMgorOjEwMUMwMDAwRTlGMDIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzBDQgorOjEwMUMxMDAwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI4RgorOjEwMUMyMDAwOTM2ODYwRUZBM0EzQTM4MERGQUIzNkFBMzdBOTM4RTU5QQorOjEwMUMzMDAwNEMxMjFBRTg3NDAxMjUzOEY1MzhFNDM1MzdGNTM3QUIxRQorOjEwMUM0MDAwMzZGQUE5Mzg3NDExMTIxQUU4NzQwMTI1MzhGNTM4RTQwNworOjEwMUM1MDAwMzUzN0Y1Mzc5MEZGMDZFMEFCMzZBQTM3QTkzODEyMUFBOAorOjEwMUM2MDAwRTg3NDAxMjUzOEY1MzhFNDM1MzdGNTM3QUIzNkZBQTk4RAorOjEwMUM3MDAwMzhFNDEyMUFFODA0MjUzOEY1MzhFNDM1MzdGNTM3QUI3RgorOjEwMUM4MDAwMzZGQUE5MzhFNDEyMUFFODA0MjUzOEY1MzhFNDM1Mzc2RAorOjEwMUM5MDAwRjUzNzkwRkYwNEUwQUIzNkFBMzdBOTM4MTIxQUU4NzQ3QQorOjEwMUNBMDAwMDEyNTM4RjUzOEU0MzUzN0Y1Mzc5MEZGMDVFMEFCMzZEOAorOjEwMUNCMDAwQUEzN0E5MzgxMjFBRTg3NDAxMjUzOEY1MzhFNDM1MzdGRgorOjEwMUNDMDAwRjUzNzIyRjU4M0UwNTQwOEFCMzZBQTM3QTkzODIyRjU1OAorOjEwMUNEMDAwODNFRkYwRkQ3QzAwQzM3ODdCRTY5REY2MThFNjlDRjY2QQorOjEwMUNFMDAwRTZGRTA4RTY3ODAzMjI3NTM2MDE3NTM3Rjk3NTM4NzIxNQorOjEwMUNGMDAwMjJFMDQ0MDRGMDc0MTMyRkY1ODJFNDM0RjlGNTgzRTAxNAorOjEwMUQwMDAwMjI5MEZBQkNFMEZGN0UwMEMzOTBGQUMwRTA5RkYwOTAwMgorOjEwMUQxMDAwRkFCRkUwOUVGMDkwRkFCN0VFOEZGMDEyMUIxQ0VGMjU5MQorOjEwMUQyMDAwNEZGNTRGRUUzNTRFRjU0RTIyN0IwMTdBRkE3OUI0OTA5RAorOjEwMUQzMDAwRkFCN0UwRjUyREEzRTBGNTJFMjI3ODdDRTZGRTA4RTY2MgorOjEwMUQ0MDAwOEU4MzI0MDRGNTgyRTQzNTgzRjU4MzIyNTQwRjc1RjBFNQorOjEwMUQ1MDAwMDhBNDI0NDBGNTgyRTQzNEZGRjU4MzIyRTU0RDc1RjBCNAorOjEwMUQ2MDAwMDhBNDI0NDhGNTgyRTQzNEZGMjJFNTRENzVGMDA4QTQ2OAorOjEwMUQ3MDAwMjQwOEY1ODJFNDM0RkYyMjkwRkFCOUUwRkYyNEZDMjIyMworOjEwMUQ4MDAwOTBGRjAwRTA1NDFGMjI5MEZBQkVFMDkwRkFCQUYwMjJEMQorOjEwMUQ5MDAwNzUzMzAwOEYzNDkwRjk2RjEyMUJFQTkwMDAwMjIyNTRDMQorOjEwMURBMDAwMEY3NUYwMDhBNDI0MDBGNTgyRTQzNEZGRjU4MzIyNzU1MgorOjEwMURCMDAwRjAwOEE0MjQ0MUY1ODJFNDM0RkZGNTgzMjI3NDgwRjAxNgorOjEwMURDMDAwMDhFNkZGRTk3NUYwMDhBNDIyNzRCMjI1MjJGNTgyRTQ0MgorOjEwMUREMDAwMzRGQUY1ODMyMjc1RjAwOEE0MjQ0MkY1ODJFNDM0RkYzNgorOjEwMURFMDAwRjU4Mzc0ODBGMDIyOTBGRjgyRTA0NDA4RjAyMjkwRkY5NworOjEwMURGMDAwRkVFMDQ0MDNGMDkwRkZGQ0UwNTRGREYwMjI3ODY3RTYzQgorOjEwMUUwMDAwNTRGREY2OTBGRkZENzQ2NUYwMjIxMjFCQ0NFMEZFQTM5QQorOjEwMUUxMDAwRTBGRjRFMjI3QjAxN0FGQTc5QjcyMjkwRkY4MEUwNDRGRQorOjEwMUUyMDAwMDhGMDIyOTBGRjgzRTA1NDdGRjAyMkUwRkY5MEY5NkFFRgorOjEwMUUzMDAwMDIxQkVBOTBGRkE0RTA0NDAyRjAyMjc1MzkwMTc1M0FEMgorOjEwMUU0MDAwMDkyMjdCMDE3QUY5Nzk3MjIyRDNFNTNDOTQwOEU1M0JCQgorOjEwMUU1MDAwOTQwMTIyOTBGQUJFRTBGRjkwRkFCQUYwMjI5MEZGQTQxQgorOjEwMUU2MDAwRTA1NEVGMjI5MEZGQjRFMDU0RUYyMjEyMTA0Qjc4ODgzOAorOjEwMUU3MDAwRUZGNjEyMkFDNzEyMjJGQThFODMyNDA5MTIyMkExRTA1OQorOjEwMUU4MDAwRkQxMjIyRTg5MDAwMEExMjIzMDIyNDBBMTIyMkExRTA4NQorOjEwMUU5MDAwOTAwMDBCMTIxQUZBMTIyMkZBRjU4MjhFODNBM0EzQTNFMgorOjEwMUVBMDAwRTBGNTUzMTIyMzA2MjQwNDEyMjJBMUUwRjU1NDhGODI5OAorOjEwMUVCMDAwOEU4M0EzQTNFMEY1NTVFNTUzQzQxMzEzMTM1NDAxNzg5RgorOjEwMUVDMDAwODhGNkQzOTQwMDQwMDZFNTU0MzBFMTAxMDY3ODg4RTZCMAorOjEwMUVEMDAwMTIyMkU3OTAwMDBDRUYxMjFBRkExMjIyQjVBM0EzRTAyNworOjEwMUVFMDAwRkVBM0UwRkY1MzA3MEM1MzA2RTZFNTUzMzBFNTAzNDMzQQorOjEwMUVGMDAwMDcwMUU1NTQyMEU1MEVFNTUzNTQ3RjcwMDhFNTUzMjBCMworOjEwMUYwMDAwRTcwMzQzMDcwMkU1NTMzMEUzMDM0MzA3MTBFNTUzMzA4QgorOjEwMUYxMDAwRTIwMzQzMDcyMEU1NTM1NDAzNjAwMzQzMDc0MEU1NTNCRQorOjEwMUYyMDAwMzBFMTAzNDMwNzgwRTU1MzMwRTQwMzQzMDYwMUU1NTMwMgorOjEwMUYzMDAwMzBFNjAzNDMwNjA4RTU1NDIwRTQwRUU1NTM1NDdGNzA3MQorOjEwMUY0MDAwMDhFNTUzMjBFNzAzNDMwNjEwNTMwN0ZCNTMwNjc5OTAzNworOjEwMUY1MDAwMDAwNUVFOEZGMDEyMUI5RkU1NTUzMEUzMTI1NDMwRkY2MQorOjEwMUY2MDAwQzQ1NDBGMTIyMkU3OTAwMDA4RUYxMjFBRkE4MDBBMTJFNgorOjEwMUY3MDAwMjJFODkwMDAwOEU0MTIxQUZBRTU1NTU0MDMxMjIyRTcwOQorOjEwMUY4MDAwOTAwMDA3RUYxMjFBRkFFNTU1NTQwNEZGQzMxMzkwMDBBRQorOjEwMUY5MDAwMDkxMjFBRkE5MDAwMDcxMjFBQkI3MDEzMTIyMkU4RTkwQworOjEwMUZBMDAwMjQwOUY5RTQzQUZBMTIxQUEyRkZDMzEzMTIxQUU4MTIyQQorOjEwMUZCMDAwMjMyNzI0MDgxMjIyQTFFMEZFOEQ4MjhDODNFNTgyMjQ0RgorOjEwMUZDMDAwMDcxMjIyQTFFMEZERUVFRDEyMjJFNzkwMDAwM0VFOEY1MgorOjEwMUZEMDAwRjAxMjFCOUYxMjMyODQ3RDBBRTRGRjEyMkZCNDAyMTAwQworOjEwMUZFMDAwQ0U5MEZBRTZFMEI0MDMwNjdFMDA3RjQwODAwNDdFMDBENworOjEwMUZGMDAwN0YwODkwRkFEQUVFRjBBM0VGRjA5MDAwMDUxMjFBQkIxQQorOjEwMjAwMDAwRkY3RTAwOTBGQUQ2RUVGMEEzRUZGMDcwMDM3RjA4MjI3NworOjEwMjAxMDAwOTAwMDA4MTIxQjQ4RkY5MEZBRDhFNUYwRjBBM0VGRjAwQgorOjEwMjAyMDAwQUUwMkFGMDE4RTUwOEY1MTc0MEEyNTUxRjU1MUU0MzUzRgorOjEwMjAzMDAwNTBGNTUwOTBGQURCRTBGRjE0RkU5MEZBRDlFMDVFRkUxNgorOjEwMjA0MDAwQzNFRjlFRkY5MEZBRERGMEMzOTBGQUQ3RTA5RjkwRkFCRAorOjEwMjA1MDAwRDZFMDk0MDA1MDA2QTNFMDkwRkFEREYwMTIyMEE5NjBDQgorOjEwMjA2MDAwMDNFMEZGMjIxMjJFMkI5MEZBRDZFMEZFQTNFMEZGNEVGMworOjEwMjA3MDAwNjAyQjkwRkFEQUUwRkNBM0UwRkREM0VGOURFRTlDNDBFQworOjEwMjA4MDAwMDdFMDkwRkFEREYwODAwODkwRkFEN0UwOTBGQURERjBGMgorOjEwMjA5MDAwMTIyMEE5NjAwM0UwRkYyMjEyMkUyQjgwQ0E3QjAwN0E1NworOjEwMjBBMDAwMDA3OTUyRTRGNTJERjUyRTdEMDExMjI2OTg3RjAwMjI0RAorOjEwMjBCMDAwQUE1MEE5NTE3QjAxOTBGQUQ4RTBGQ0EzRTBGRDkwRkE2OAorOjEwMjBDMDAwRERFMEY1NEExMjI5NjA5MEZBRENFRkYwMjJFRjI0QUU1MQorOjEwMjBEMDAwNjA1MjI0RkU2MDJFMjRGRTcwMDMwMjIxNjkyNDA2NjBGMworOjEwMjBFMDAwMDMwMjIxQjE3ODcxRTY1NEZCRjY5MEZGQTVFMEY1MjJEQQorOjEwMjBGMDAwNDQwRkYwNzQzMzkwRkE5NEYwRTUyMkEzRjA5MEZBQjIxMgorOjEwMjEwMDAwNzQwMUYwMjI3ODcyRTY1NEZCRjY5MEZGQjVFMEY1MjJGOAorOjEwMjExMDAwNDQwRkYwNzQ0MzkwRkE5NkYwRTUyMkEzRjA5MEZBQjNERQorOjEwMjEyMDAwNzQwMUYwMjI5MEZBQTBFMEEzMjBFNTAzMDIyMUIxOTAwRgorOjEwMjEzMDAwRkZBNkUwOTBGQUNERjBBM0YwOTBGQUNERTBGRjU0MEZBNworOjEwMjE0MDAwRkU2MDEwOTBGRkE2MTIyMzBEOTBGRkE2RTA5MEZBQ0QzRQorOjEwMjE1MDAwRjA4MEU2OTBGQUNFRTBGRjc0MzRGRTEyMkQ4NUVGNzAyOQorOjEwMjE2MDAwNTc5MEZBQ0VFMEZGNzQzNDkwRkE5OEYwRUZBM0YwMjI4MworOjEwMjE3MDAwOTBGQUFBRTBBMzMwRTU0MDkwRkZCNkUwOTBGQUNERjBFNworOjEwMjE4MDAwQTNGMDkwRkFDREUwRkY1NDBGRkU2MDEwOTBGRkI2MTI1RQorOjEwMjE5MDAwMjMwRDkwRkZCNkUwOTBGQUNERjA4MEU2OTBGQUNFRTAwNQorOjEwMjFBMDAwRkY3NDQ0RkUxMjJEODVFRjcwMEU5MEZBQ0VFMEZGNzQ5RQorOjEwMjFCMDAwNDQ5MEZBOUFGMEVGQTNGMDIyQzBFMEMwRjBDMDgzQzBEMAorOjEwMjFDMDAwODJDMEQwNzVEMDAwQzAwMEMwMDFDMDAyQzAwM0MwMDRFRQorOjEwMjFEMDAwQzAwNUMwMDZDMDA3OTBGRjkyRTBGRjkwRkFDQ0YwOTBENworOjEwMjFFMDAwRkY5MkU0RjBFRjEyMUJGQzIyNjkyNjIyNjkyRTIyMENEQQorOjEwMjFGMDAwMzAyMjBDMzIyMjFBMzgyMjJDM0EyMjVFM0UyMjQ5NDRFNgorOjEwMjIwMDAwMjIzRTQ2MjI1NDUwMjI1NDUyMjI1NDU0MjI1NDU2MDAwNAorOjEwMjIxMDAwMDAyMjZFOTBGQUNDRTBGRDdDMDA3RjAxMTIxMTVFODBGRQorOjEwMjIyMDAwNjI3QzAwN0QwMTdGMDMxMjExNUU5MEZGRkVFMDQ0MjA3RQorOjEwMjIzMDAwRjA4MDUwN0MwMDdEMDE3RjAyMTIxMTVFOTBGRkZFRTA3NQorOjEwMjI0MDAwNDQ0MEYwODAzRTdDMDA3RDAxN0YwNTEyMTE1RTgwMzNBQQorOjEwMjI1MDAwN0MwMDdEMDE3RjA2MTIxMTVFODAyODkwRkFDQ0UwRkZBMQorOjEwMjI2MDAwMTIyMEM2ODAxRTdDMDA3RDAxN0YwNDEyMTE1RTgwMTM0NworOjEwMjI3MDAwMTIyODRFODAwRTkwRkFDQ0UwMjQwMEZGRTQzNEZGRkVEQQorOjEwMjI4MDAwMTIyRDg1RDAwN0QwMDZEMDA1RDAwNEQwMDNEMDAyRDBCRgorOjEwMjI5MDAwMDFEMDAwRDBEMEQwODJEMDgzRDBGMEQwRTAzMjc4N0M5MgorOjEwMjJBMDAwRTZGRTA4RTYyNDA0OEU4M0Y1ODJFNDM1ODNGNTgzMjI3NgorOjEwMjJCMDAwNzQxMzI1MjRGNTgyRTQzNEY5RjU4MzIyNzg4MEU2RkU1MAorOjEwMjJDMDAwMDhFNkY1ODI4RTgzMjI3ODgwRTZGRTA4RTZBQTA2RjgwNAorOjEwMjJEMDAwQUMwMjdEMDE3QkZGN0EzMjc5NTY3RTAwN0YwQTAyMUFCQQorOjEwMjJFMDAwN0M3ODgwRTZGQzA4RTZGNTgyOEM4M0EzQTMyMkZGOTAyRAorOjEwMjJGMDAwRjk2RjAyMUJFQTkwRjk2QTEyMUJFQTkwMDAwNDAyMUFCNQorOjEwMjMwMDAwQkI3ODdFRTZGRTA4RTZGRjIyRUQxMjFBRkE4RjgyOEU3NworOjEwMjMxMDAwODNFNTgyMjJFRkYwOTBGQUNFRTA1NDBGNEVGRUYwRUYwQworOjEwMjMyMDAwNTRGMDRFRjAyMjc4ODBFNkZDMDhFNjhDODMyMjc4N0UxQQorOjEwMjMzMDAwRTZGQzA4RTZGRDhDODMyMkE2MDdFNjI0NkVGOEU2MjI3QQorOjEwMjM0MDAwNzg3RUU2RkEwOEU2RkIyMjA4RTZGRTA4RTY4RTgzMjI5RgorOjEwMjM1MDAwMjZGNjE4RUUzNkY2MjJFRjI0MEJGNTgyRTQzRUY1ODNERQorOjEwMjM2MDAwMjI4QjgyOEE4M0U1ODIyMjhCMjU4QTI2ODkyNzhEMjhFMworOjEwMjM3MDAwOTBGQUQyRTRGMEEzNzQwMkYwN0IwMTdBRkE3OUQxOTA1QQorOjEwMjM4MDAwRkFEMkUwRjUyREEzRTBGNTJFN0QwMTEyMjY5ODkwRkEwMQorOjEwMjM5MDAwRDFFMDY1Mjg2MDQ2QTNFMEZGQTNFMEEzQ0ZGMEEzRUY2MAorOjEwMjNBMDAwRjAxMjIzRjA5MEZBRDFFMEZGOTBGQUQ0RTQ4RkYwMTIwQgorOjEwMjNCMDAwMUIxQzEyMjNGMDkwRkFENEUwRkZBM0UwOTBGQUQyQ0ZENgorOjEwMjNDMDAwRjBBM0VGRjA5MEZBRDFFMEEzNzVGMDAwMTIxQjFDOTA3RgorOjEwMjNEMDAwRkFEMkU0NzVGMDA0MTIxQjFDMDIyMzcyOTBGQUQzRTBDNworOjEwMjNFMDAwMjQwMUZGOTBGQUQyRTAzNDAwQUIyNUFBMjZBOTI3OEY1QQorOjEwMjNGMDAwRjAxMjFCODA3RjAwMjI3QjAxN0FGQTc5RDE5MEZBRDIwOQorOjEwMjQwMDAwRTQ3NUYwMDExMjFCMUM4NUYwMkVGNTJEN0QwMTAyMjZDRQorOjEwMjQxMDAwOTg4RjYyMTIyQUM3MTIyMkZBOEU4MzI0MEIxMjIyQTFFRAorOjEwMjQyMDAwRTA1NEZCRjA0NDAyRjAwODEyMjJEQ0UwQTMzMEU1MEM5QgorOjEwMjQzMDAwMTIyMzA2MjQwQjEyMjJBMUUwNDQwMUYwNzg3Q0U2RkU3MAorOjEwMjQ0MDAwMDhFNkZGRjU4MjhFODNFMDU0QjhGREYwRTU2MjI0RkVENQorOjEwMjQ1MDAwNDQyMEZDNERGMEU1ODIyNDA0MTIyMkExRTA1NEI4RjA5RgorOjEwMjQ2MDAwNENGMDhGODI4RTgzQTM3NDAzRjAxOEU2RkUwOEU2RkYxQgorOjEwMjQ3MDAwOEU4MzI0MDUxMjIyQTFDMDgzQzA4MkUwRkQ3NDk5MjVCOQorOjEwMjQ4MDAwNjJGNTgyRTQzNEZBRjU4M0UwNTRGQzQ0MDNGQ0VENEMzRAorOjEwMjQ5MDAwRDA4MkQwODNGMDhGODI4RTgzRTA0NDgwRjBFNTgyMjQ2NgorOjEwMjRBMDAwMDQxMjIyQTFFMDQ0ODBGMDEyMzI4NDc0NkUyNTYyRjg5NgorOjEwMjRCMDAwNzQwNDQ2RjY3RjAwMjIxMjEwNEI3RjAyMTIxMjYxNzhEQworOjEwMjRDMDAwNjdFNjQ0MDJGNkQyQjBEMkIxOTBGOTE2RTAzMEU3MDdFMQorOjEwMjREMDAwOTBGRjlFRTRGMDgwMzZEMkIzOTBGRkE0RTA5MEZBN0VBNQorOjEwMjRFMDAwRjA5MEZGQjRFMDkwRkE3RkYwOTBGRkEyRTA5MEZBN0NDOQorOjEwMjRGMDAwRjA5MEZGQjJFMDkwRkE3REYwOTBGRkE0NzQzMEYwOTA3RAorOjEwMjUwMDAwRkZCNEYwOTBGRkEyNzQ0MEYwOTBGRkIyRjA5MEZBRTdCMQorOjEwMjUxMDAwRTVBOEYwNzVBODgxOTBGRjkyRTA2MDA0RTRGMDgwRjZGMQorOjEwMjUyMDAwOTBGRkZENzQzQUYwNDM4NzAxMDAwMDAwOTBGQTdFRTBDRQorOjEwMjUzMDAwOTBGRkE0RjA5MEZBN0ZFMDkwRkZCNEYwOTBGQTdDRTA3NgorOjEwMjU0MDAwOTBGRkEyRjA5MEZBN0RFMDkwRkZCMkYwOTBGOTE4RTBEMQorOjEwMjU1MDAwNjAwMkMyQjM5MEZBRTdFMEY1QTgwMjEwQ0U4QjVDOEE2NQorOjEwMjU2MDAwNUQ4OTVFMTIyRTBEOTBGQUMzMTIxQkYzQUE1REE5NUU1RgorOjEwMjU3MDAwOTBGQUM2MTIxQkYzOTBGQUM3RTQ3NUYwMEExMjFCMUNGRQorOjEwMjU4MDAwOTBGQUM2MTIxQkVBRTkyNDAxRjlFNDNBRkE5MEZBQzk3MgorOjEwMjU5MDAwMTIxQkYzQUI1Q0FBNURBOTVFMTIyRTE5RTBGRkMzMTNGOAorOjEwMjVBMDAwRjBFNDc4ODJGNjkwRkFDMUUwRkY3ODgyRTZDMzlGNTBBQgorOjEwMjVCMDAwNEE5MEZBQzMxMjJERUVGRjc4ODNGNjkwRkFDNjEyMkREOAorOjEwMjVDMDAwRUVGRUY0NUZGRjc4ODNGNjEyMkRFQjVFNEZGRjc4ODMwQgorOjEwMjVEMDAwRjYxMjJERjQ3NUYwMDIxMjFCMUM5MEZBQzdFNDc1RjA4OAorOjEwMjVFMDAwMDIxMjFCMUNBQjVDQUE1REE5NUU5MDAwMDQxMjFBQkIxMAorOjEwMjVGMDAwMzBFNDAzMTIyRTAzNzg4MjA2ODBBQUU0OTBGQUMyRjAzNworOjEwMjYwMDAwMjI4QjU2OEE1Nzg5NTg5MEZBQzI3NDA2RjBFNDkwRkFFMQorOjEwMjYxMDAwQzFGMDEyMUFBMjI0NkU2MDI2MTQ3MDcwMTIyRERBNjBCNgorOjEwMjYyMDAwMDkyNDMwNzAxMjEyMjU1NjgwNjIxMjJFMjQxMjFGREFFRAorOjEwMjYzMDAwOTBGQUMyRUZGMDgwNTU5MEZBQzI3NDgxRjA4MDREMTI4QQorOjEwMjY0MDAwMkREQTYwMDkyNDMwNzAzRTEyMkQzMDgwM0ZFNTU4MjQ4OQorOjEwMjY1MDAwMDNGOUU0MzU1N0ZBN0IwMUMwMDNDMDAyQzAwMTEyMkUxMgorOjEwMjY2MDAwMjQ5MDAwMDUxMjFBQkJGRDkwMDAwODEyMUI0OEY1MkU5RAorOjEwMjY3MDAwODVGMDJERDAwMUQwMDJEMDAzMTIyNjk4OTBGQUMxRUYzOAorOjEwMjY4MDAwRjBFNEEzRjA4MDA2OTBGQUMyNzQ4MUYwOTBGQUMyRTAwMAorOjEwMjY5MDAwMTIyRTI0OTAwMDAyMTIxQUZBOTBGQUMxRTBGRjIyOEI0NworOjEwMjZBMDAwMjk4QTJBODkyQjhEMkNFNTJDNzAwM0FGMkMyMjEyMkUxRgorOjEwMjZCMDAwNTM3MDE2MTIyRTcyRTUyRDkwRkZGMUYwMTIzMUQ4NTBBMgorOjEwMjZDMDAwRjIxMjI3MjU0MDBCN0YwMDIyMTIyRTcyMTIyNzI1NTA2RQorOjEwMjZEMDAwRjg5MEZGRjM3NEExRjBFNTJDQjQwMTA3OTBGRkYwRTA0RgorOjEwMjZFMDAwNDQwMkYwOTBGRkYxRTRGMEY1MkZFNTJDMTRGRkU1MkYwNAorOjEwMjZGMDAwQzM5RjUwMkExMjMxQzE0MDAzQUYyRjIyQzNFNTJDOTU0RQorOjEwMjcwMDAwMkZGRkJGMDIwNzkwRkZGMEUwNDQwMkYwMTIyRTY1MDU5NAorOjEwMjcxMDAwMkY3NDAxMjUyQkY1MkJFNDM1MkFGNTJBODBDQzEyMzFCNAorOjEwMjcyMDAwQzE0MDAzN0YxODIyMTIyRTY1QUYyQzIyOTBGRkYxRTVFNQorOjEwMjczMDAwMkVGMDAyMzFEODEyMTA0Qjc4ODQxMjIzMzEzMEUxMDg4OAorOjEwMjc0MDAwN0YxMzEyMzFBOTAyMjdCQzc4ODRFNkY5MjQxMzEyMjJFMAorOjEwMjc1MDAwQURFMEZGMzBFNzQwNTQwMzYwMUVFOUI0MDMwRDkwRkY4NQorOjEwMjc2MDAwOUVFMDU0RkVGMEUwNDQwNEYwODA0NjkwRkY5RUUwNTQ2QQorOjEwMjc3MDAwRkRGMEUwNDQwOEYwODAzOUU5QjQwMzBEOTBGRjlFRTBERAorOjEwMjc4MDAwNTRGQkYwRTA0NDAxRjA4MDI4OTBGRjlFRTA1NEY3RjAwNQorOjEwMjc5MDAwRTA0NDAyRjA4MDFCRUY1NDAzNjAxNEU5QjQwMzA5OTA5NQorOjEwMjdBMDAwRkZBNEUwNTRERkYwODAwNzkwRkZCNEUwNTRERkYwQzJGNAorOjEwMjdCMDAwQjM5MEY5MThFMDA0RjBBRjAxMTIyMkVFRkQxMjJGRTVGQworOjEwMjdDMDAwMTIzMUE5MDIxMENFNzVBODQwNzg3RkU0RjZEOEZENzVDNQorOjEwMjdEMDAwODE4QjAyMjgwOTAyMzE4Q0U0OTNBM0Y4RTQ5M0EzNDA4RgorOjEwMjdFMDAwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDc4QworOjEwMjdGMDAwMjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4NworOjEwMjgwMDAwODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwODBCRQorOjEwMjgxMDAwOTAyQkE5RTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDlFRgorOjEwMjgyMDAwNTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQThCRQorOjEwMjgzMDAwNDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODI1MQorOjEwMjg0MDAwQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBREZCRgorOjEwMjg1MDAwRTlERUU3ODBCRUU0RjUyMjEyMURDMkUwQjQwNDBERTUxNgorOjEwMjg2MDAwMjIyNDAzRkYxMjMwMTMxMjFEQzJFNEYwMDUyMkU1MjJEOAorOjEwMjg3MDAwQzM5NDAyNDBFM0U0RjUyMjc1RjAwMkU1MjI5MEZBOTQ1NQorOjEwMjg4MDAwMTIxRTAzNjAyQzEyMkQ4NUVGNjA1Mjc1RjAwMkU1MjJCNgorOjEwMjg5MDAwOTBGQTk0MTIxQkNDRTRGMEEzRjA3NUYwMEFFNTIyOTBCNAorOjEwMjhBMDAwRkFBMDEyMUJDQ0UwQTMzMEU2MzMxMjFEQzI3NDA0RjA3MAorOjEwMjhCMDAwMjI3NUYwMDJFNTIyOTBGQTk4MTIxRTAzNjAxNjEyMkQ3RQorOjEwMjhDMDAwODVFRjYwMTk3NUYwMDJFNTIyOTBGQTk4MTIxQkNDRTRBRQorOjEwMjhEMDAwRjBBM0YwMjIwNTIyRTUyMkMzOTQwMjQwOUIyMkU0RkZFQworOjEwMjhFMDAwOTBGRjgzRTA1NDBGRkVFRkMzOUU1MDE3NzRGMDJGRjU1NgorOjEwMjhGMDAwODJFNDM0RkVGNTgzRTAxMjFDQzExMjFBRTgwRjEyMUNBOAorOjEwMjkwMDAwQjA4MERERUZGREMzRTUzQTlERjUzQUU1Mzk5NDAwRjU3OQorOjEwMjkxMDAwMzlEM0U1M0E5NDAwRTUzOTk0MDA0MDA2RTQ5MEZGODMwQQorOjEwMjkyMDAwRjAyMjEyMURERjEyMUUzNDEyMUUyNjEyMUFBMjI0NkU2RAorOjEwMjkzMDAwNjAxRTE0NjAxQjI0OEU3MDJEOTAwMDAxMTIxQUJCRkZDNAorOjEwMjk0MDAwMjRGQzYwMDMwNDcwMUZFRkZEN0MwMDdGMEQwMjExNUUwQworOjEwMjk1MDAwMTIxRTNCMTIyNUZBMTIxRDg5MTIxQUJCNjAwMzAyMzJBNQorOjEwMjk2MDAwN0FFNEZGMTIzMjZFMjI4QjQ1OEE0Njg5NDc4QzQ4OEQ2NQorOjEwMjk3MDAwNDlEMjAwMTIyRTUzNzAxNjEyMkU3MkU1NDg5MEZGRjFDNAorOjEwMjk4MDAwRjAxMjMxRDg1MEYyMTIyOUQ1NDAwQjdGMTgyMjEyMkVBNgorOjEwMjk5MDAwNzIxMjI5RDU1MEY4RTRGNTRCRTU0QTE0RkZFNTRCQzMxNAorOjEwMjlBMDAwOUY1MDE3MTIyOUM1NDAwMzdGMTgyMjA1NEI3NDAxMjUzQgorOjEwMjlCMDAwNDdGNTQ3RTQzNTQ2RjU0NjgwREY5MEZGRjBFMDQ0MDFGNworOjEwMjlDMDAwRjAxMjI5QzU0MDAzN0YxODIyN0YwMDIyQUI0NUFBNDY5QQorOjEwMjlEMDAwQTk0NzEyMUFBMjkwRkZGMUYwMDIzMUQ4OTBGRkYxRTU1OQorOjEwMjlFMDAwNDlGMDAyMzFEODdCMDE3QUZBNzlDRkU0RkQxMjIzNjFGNAorOjEwMjlGMDAwOTBGQUNGRTQ3NUYwMDkxMjFCMUM3QjAwN0EwMDc5MjM1MgorOjEwMkEwMDAwOTBGQUNGRTQ3NUYwMDExMjFCMzI4NUYwMkVGNTJEN0Q4MgorOjEwMkExMDAwMDExMjI2OTg5MEZGRjdFNTIzMTIyQTM5OTBGRkY2RTU3OAorOjEwMkEyMDAwMjNGMDkwRkFDRkU0RjBBMzc0MDYxMjJBMzlFNTIzMzA5QworOjEwMkEzMDAwRTAwNzkwRkZGQzc0OTRGMDIyOTBGRkZDNzQ5MEYwMjI2OQorOjEwMkE0MDAwRjA3QjAwN0EwMDc5MjM5MEZBQ0ZFNDc1RjAwMTEyMUIzNQorOjEwMkE1MDAwMzI4NUYwMkVGNTJEN0QwMTAyMjY5ODkwRkY5Mzc0ODEyQQorOjEwMkE2MDAwRjA5MEZGRkZFMDYwMDY5MEZGRkM3NDEwRjA5MEZGOTE4MworOjEwMkE3MDAwRTA0NDkwRjBFNDkwRjkxNkYwQTNGMDEyMkIzOTEyMTYwRQorOjEwMkE4MDAwQzkxMjMwNjk3RTA3N0ZEMDEyMTIyQTdFMEY3RkEwMTJGMgorOjEwMkE5MDAwMTI0NEU0Nzg3N0Y2Nzg3N0U2RkZDMzk0MDY1MDBCNzQxNworOjEwMkFBMDAwNkUyRkY4RTRGNjc4NzcwNjgwRUM3RjAzMTIzMEIyOTA1MAorOjEwMkFCMDAwRjkxNkUwMjBFNDA1N0YwNDEyMzBCMjkwRkY5QkU0RjBBOQorOjEwMkFDMDAwOTBGRjlBRjA5MEZGRThFMDU0MUZGMEQyQTgyMjE1NjUxRAorOjEwMkFEMDAwQTg2NUE2MDczMDA4MDUxMjExQUU4MEY4RDIwOEE4NjVDRgorOjEwMkFFMDAwRTZGRkI0MDMwRjc4N0M3NkZGMDg3NkUwMDg3NkZGMDhFRgorOjEwMkFGMDAwNzZBMDgwMEQ3ODdDNzZGRjA4NzZFMjA4NzZGRjA4NzY2RgorOjEwMkIwMDAwQjA3ODgwNzZGQTA4NzY5RUVGMjRGRDc1RjAwQUE0QUVDMAorOjEwMkIxMDAwRjAxMjIzNDk3QjAxN0FGRjc5NDg3ODY4MTIxQkUxQThGQgorOjEwMkIyMDAwNjVFNjI0RkQ3NUYwMDhBNEZGQUVGMDc4NkExMjIzNDkyQgorOjEwMkIzMDAwNzkwODc4NkIxMjFCRTE3ODZERUYxMjIzNDkwNTY1MjI0NQorOjEwMkI0MDAwOTBGRkYwRTA1NEFCRjBFMDQ0MjBGMDkwRkFFNjc0MDIxRAorOjEwMkI1MDAwRjA3QjAxN0FGQTc5Q0ZFNEY1MkRGNTJFN0QwMTEyMjY2RQorOjEwMkI2MDAwOTg3RTAwOTBGQUU0RUVGMEEzRUZGMDY0MDE3MDEwOTAwQworOjEwMkI3MDAwRkFDRkUwQjQ1MjA5OTBGOTE2RTA1NEVGRjA4MDI5OTBCMgorOjEwMkI4MDAwRkFFNEUwNzAwNEEzRTA2NDAxNzAxMDkwRkFDRkUwQjRCRQorOjEwMkI5MDAwMTAwOTkwRjkxNkUwNDQxMEYwODAwRDkwRkFFNjc0MDNFNQorOjEwMkJBMDAwRjA5MEY5MTZFMDU0RUZGMDkwRkZGMEUwNDQyMEYwMjJBRQorOjEwMkJCMDAwMDM2ODAxRkY0ODAzNkIwMUZGMDgwMjY2MDAwMDQ0RkE0NgorOjEwMkJDMDAwOTgwMDAwMDAwMDQ0RkE5NDAwMDAwMDAwNDJGQUIyMDBBRAorOjEwMkJEMDAwMDA0MkZBN0UwMDAwNDJGQTdDMDAwMDQyRjk2REZGRkZERAorOjEwMkJFMDAwNDJGQTdBMDAwMDQxRjk2NkZGNDFGOTFDMTk0MUY5MTVEMgorOjEwMkJGMDAwMDA0M0Y5MTkwQTMyMDI0MUY5NjgyMDQxRjk2OTIwNDE3QworOjEwMkMwMDAwRjk2NTAwNDFGOTY3MDA0NEY4MDAwMDAwMDAwMDQyRjk0RQorOjEwMkMxMDAwMTYwMDAwNDFGOTE4MDAwMTIwMDA0MUY4MDQwMDAwMTJEQworOjEwMkMyMDAwMTA0Qjc4OEFFRkY2MTIyQUM3MTIyMkVFMzBFMDI5Nzg4QworOjEwMkMzMDAwN0MxMjIyQjdFMDU0N0ZGMDc4NkIxMjFCRDg5MDAwMDIxMAorOjEwMkM0MDAwMTIxQUJCMzBFNzA5OTAwMDAyRTQxMjFBRkE4MEU5NzgwMAorOjEwMkM1MDAwN0MxMjIyQjdFMDQ0ODBGMDEyMjJFRTMwRTExRTEyMjJGNAorOjEwMkM2MDAwOTdFMDU0N0ZGMDEyMzIxOTc4NjgxMjFCRDg5MDAwMDI1NgorOjEwMkM3MDAwNzQ4MDEyMUFGQTEyMjI5N0UwNDQ4MEYwMTIzMjg0RTQyRgorOjEwMkM4MDAwRkYxMjMxQTkwMjEwQ0UxMjEwNEI3ODg1RUZGNjEyMzFFNworOjEwMkM5MDAwNTAxMjMxQTk3ODg1RTZGRjI0MTMxMjIyQURFMEZFMzBGMAorOjEwMkNBMDAwRTcxNkVGQjQwMzA5OTBGRjlFRTA1NEZBRjA4MDIyOTBGQgorOjEwMkNCMDAwRkY5RUUwNTRGNUYwODAxOUVFNTQwMzYwMTRFRkI0MDM2NgorOjEwMkNDMDAwMDk5MEZGQTRFMDQ0MjBGMDgwMDc5MEZGQjRFMDQ0MjA4NgorOjEwMkNEMDAwRjA5MEY5MThFMDE0RjBFMDcwMDJEMkIzMDIxMENFMTJCNgorOjEwMkNFMDAwMUUxQ0U1M0E2NDA5NzAwNEU1Mzk2NDAxNjA0OEMzRTVENworOjEwMkNGMDAwM0E5NDA4RTUzOTk0MDA0MDExN0YwOEVGRTUzQTk0MDhDQQorOjEwMkQwMDAwRjUzQUU1Mzk5NDAwRjUzOTgwMDVBRjNBMTIxRTM0RTRGRQorOjEwMkQxMDAwRkVFRUMzOUY1MDE5MTIxQ0MxMTIxQUEyRkQ3NEY4MkVBOAorOjEwMkQyMDAwRjU4MkU0MzRGRUY1ODNFREYwMEUxMjFDQjA4MEUyRUY4NAorOjEwMkQzMDAwNTQ3RjkwRkY4MUYwMjI4QjU5OEE1QTg5NUIxMjJFMTk5OQorOjEwMkQ0MDAwNzAwNUEzNzQwOEYwMjJBQjU5QUE1QUE5NUIxMjJFMEQ4NAorOjEwMkQ1MDAwOTBGQUM5MTIxQkYzRTU1QjI0MDNGOUU0MzU1QUZBOTBBMworOjEwMkQ2MDAwRkFDMzEyMUJGM0U0OTBGQUMyRjA3ODhCRjY5MEZBQzEyMgorOjEwMkQ3MDAwRTBGRjc4OEJFNkMzOUY1MDEyMTIyREVCRkYxMjJERjQ2QgorOjEwMkQ4MDAwMTIyRTA3Nzg4QjA2MTIyRTAzODBFMjIyQUQwN0FDMDZDNgorOjEwMkQ5MDAwOTAzMjBBRTQ5M0ZGNzg3NEY2NTQwRjEyMURBOEUwMDhFRAorOjEwMkRBMDAwNzYwMDA4RjYxODEyMUNEOUMzMzNDRTMzQ0VEOEY5RkZGQgorOjEwMkRCMDAwNzg3NUVFRjYwOEVGRjZFRTQ0RjgxOEY2RUYwOEY2OTBBMAorOjEwMkRDMDAwRkY3QUUwMjBFNzAzN0YwMDIyNzg3NUU2RkUwOEU2RjU0QgorOjEwMkREMDAwODI4RTgzRUNGMEEzRURGMDkwRkY3QTc0MDJGMDdGMDExNQorOjEwMkRFMDAwMjJBQjU2QUE1N0E5NTg5MDAwMDMxMjFBQkI1NEYwMjREQworOjEwMkRGMDAwQTAyMjkwRkFDOTEyMUJFQTAyMUFBMjkwRkFDMzEyMUI2RgorOjEwMkUwMDAwRUFFRjEyMUFFODkwRkFDQUU0MjI5MEZBQzRFNDc1RjBFNAorOjEwMkUxMDAwMDEwMjFCMUM5MDAwMDgxMjFCNDhBQUYwRjk3QjAxMjIzQQorOjEwMkUyMDAwOTAwMDA1MTIxQUJCOTBGQUMxRjAyMkFCNTZBQTU3QTkxRQorOjEwMkUzMDAwNTgyMjkwRkFEREUwRkY3RTAwQzM5MEZBRDdFMDlGRjBDMQorOjEwMkU0MDAwOTBGQUQ2RTA5RUYwOTBGQUQ4RUU4RkYwMTIxQjFDRUZBRAorOjEwMkU1MDAwMjU1MUY1NTFFRTM1NTBGNTUwMjI5MEZGRjBFMDU0RkUyQgorOjEwMkU2MDAwRjBFMDU0RkRGMDkwRkFFNkUwNjQwMzIyOTBGRkYyRTAxNworOjEwMkU3MDAwQUIyOUFBMkFBOTJCMDIxQUU4OTBGRkYzNzRBMEYwMjIyQQorOjEwMkU4MDAwOEY2NEVENzAwRkU1NjRCNDAzMDU3RjAxMDIzMUVGN0ZCRAorOjEwMkU5MDAwMDIwMjMxRUZBRjY0MTIyQUM3NzQ2RTI1NjRGOEU2MzA3RgorOjEwMkVBMDAwRTIwQkQyMDkxMjFEMzNFMDU0N0ZGMDgwMDJDMjA5RTUyMworOjEwMkVCMDAwNjRCNDAzMDc3RjgxMTIzMUVGODAwNTdGODIxMjMxRUYwNgorOjEwMkVDMDAwMzAwOTA3MTIxRDMzRTA0NDgwRjAxMjMyODQyMjEyMTBDMAorOjEwMkVEMDAwNEI5MEZGRkRFMDQ0NjBGMEQyMDE5MEZGRkNFMDQ0MDIyMworOjEwMkVFMDAwRjA5MEZGMDBFMDMwRTcxMzkwRkY4M0UwNDQ4MEYwNDM3MAorOjEwMkVGMDAwMzU4MDkwRkZGQ0UwNDQwMUYwODAwRDEyMURERjUzMzU1QQorOjEwMkYwMDAwN0Y5MEZGRkNFMDU0RkVGMDkwRkY4MUUwNDQ4MEYwMTJERgorOjEwMkYxMDAwMDJERTEyMURFNzAyMTBDRTEyMTA0Qjc4ODlFRkY2RDJCNgorOjEwMkYyMDAwMDAxMjJBQzc5MEY5NkExMjFCRUFFOTI0MDNGOUU0M0E2RAorOjEwMkYzMDAwRkFDMDAyNzg4MEU2RkUwOEU2QUEwNkY4QUMwMjdEMDEzNworOjEwMkY0MDAwRDAwMjEyMjJEMzEyMzI4NDc4ODlFNkZGMTIxMzg3MTIzQworOjEwMkY1MDAwMzFBOTAyMTBDRThGNjMxMjJBQzc3ODdDMTIyMkI3RTAwMworOjEwMkY2MDAwNTQzRkYwRTU4MjI0MDQxMjIyQTFFMDU0M0ZGMDEyMjNFMgorOjEwMkY3MDAwNDEyNDBCMTIyMkExRTA1NEY4RjAxMjMyODQ3NDZFMjUyMQorOjEwMkY4MDAwNjNGODc0RkI1NkY2N0YwMDIyMTIxMDRCMTIyQUM3MTIwOAorOjEwMkY5MDAwMjJGQTI0MDYxMjIyOUZFMEZEMTIyMkU4OTAwMDAzMTI3QQorOjEwMkZBMDAwMjMwMjI0MDUxMjIyQTFFMDkwMDAwNDEyMUFGQTEyMzIyMAorOjEwMkZCMDAwODQ3RDAyRTRGRjEyMkZCNDAyMTBDRUFFMDUxMjFEOEVFNgorOjEwMkZDMDAwRUYxMjFBRkEwRTBFMEVFRUQzOTUzQ0U0OTUzQjQwMDIzQQorOjEwMkZEMDAwQUUzQ0VFRDM5NDA4NzQ4MDk0ODE0MDBBN0UwMzkwMDA0NgorOjEwMkZFMDAwMDI3NDAyMTIxQUZBQUYwNjEyMzI2RTIyQUUwN0VENTRDNAorOjEwMkZGMDAwMDM2NDAxNjAwMzdGMTAyMkVENTQ3Q0MzOTQwNDUwMDNFQQorOjEwMzAwMDAwN0YwQjIyNzQ2RTJFRjg3NDAyNDZGNjc0OTkyRUY1ODJBOAorOjEwMzAxMDAwRTQzNEZBRjU4M0VERjA3RjAwMjJCRjAzMDY3Q0ZGN0RFOAorOjEwMzAyMDAwRTA4MDA0N0NGRjdERTI4RDgyOEM4M0UwNDQ4MEYwRTVDQgorOjEwMzAzMDAwODIyNDA0MTIyMkExRTA0NDgwRjA3NDZFMkZGODc0MDRGQworOjEwMzA0MDAwNDZGNjdGMDAyMjEyMTA0QkU1M0E2NDA5NzAwNEU1MzkxOAorOjEwMzA1MDAwNjQwMTYwMTY5MEZGODNFMDU0MEZGRkMzRTUzQTlGRTVEQgorOjEwMzA2MDAwMzk5NDAwNDAwNTEyMjhENzgwMDMxMjMyN0EwMjEwQ0UxQworOjEwMzA3MDAwOTBGRkZDRTAyMEU3MUZDMkFGN0RGRkFDMDUxREVDNjBCOAorOjEwMzA4MDAwMTU3RTA0N0YwMEVGMUZBQTA2NzAwMTFFNEE2MEVDOTBCNworOjEwMzA5MDAwRkY5MkU0RjA4MEVGMjIxMjEwNEI3ODY2RTZGRTA4RTYxRAorOjEwMzBBMDAwRkYzMEUwMTIzMEUxMEY5MEZGRkNFMDQ0MjBGMDdGMDQ5RAorOjEwMzBCMDAwMTIxMjYxMTIxREY2MDIxMENFOEYyM0MyMDgxMjJBQzcwNworOjEwMzBDMDAwMTIyMkMwNzg3RTEyMjM0MjI0MEIxMjIyQTFFMDU0Rjg2RgorOjEwMzBEMDAwRjAxMjMyODRBRjIzMTIxMzg3MjI4RTVGOEY2MEU1NjA3NworOjEwMzBFMDAwMTU2MEFFNUY3MDAyMTU1RkQzOTQwMEVFOTQwMDQwMDk0NgorOjEwMzBGMDAwN0UwNzdGRDAxMjEwMjQ4MEU1MjIxMURDMkVDNzI0QjA3OQorOjEwMzEwMDAwMzI2MDMwOTAzMDNFMzE2RjJGODIyNzJFMkM4MDMxMTI2QQorOjEwMzExMDAwMzEzMTFFNjQyRjExMkMxODBFMTIxMDRCNzg4NjEyMjM5OQorOjEwMzEyMDAwMzEyMEUxMDc3RjEyMTIzMUE5ODAwQTc4ODZFNkZGMTI2QQorOjEwMzEzMDAwMjQwQTEyMzFBOTAyMTBDRTEyMTA0Qjc4ODcxMjIzMzFDMworOjEwMzE0MDAwMjBFMjA3N0YxMTEyMzFBOTgwMEE3ODg3RTZGRjEyMkY0QgorOjEwMzE1MDAwNEUxMjMxQTkwMjEwQ0U4RjYxMTIyRjRFQUY2MTEyMkE4QQorOjEwMzE2MDAwQzcxMjIyQzAxMjMyODQ3NDZFMjU2MUY4NzRGRDU2RjZCRgorOjEwMzE3MDAwQUY2MTEyMTM4NzIyMTIxMDRCRTUzQTY0MDk3MDA0RTUxRgorOjEwMzE4MDAwMzk2NDAxNjAwNTEyMkNEODgwMDYxMjFFMTQxMjFFMUMxMAorOjEwMzE5MDAwMDIxMENFMTIyQTU0MTIxMzAzOTBGODA0RTBGRjYwMDVDNworOjEwMzFBMDAwN0QwMTEyMTJBMDEyMjlERTEyMTMzRjEyMTFCQzgwRTMxRQorOjEwMzFCMDAwMTIxRDhFRUYxMjFBRkFFNEY1MzNGNTM0RUY2MDAzMDJCNAorOjEwMzFDMDAwMzI3QUU0RkYxMjMyNkUyMjkwRkZGMEUwRkY1NEEwNjBFQQorOjEwMzFEMDAwRjdFRjMwRTUwODkwRkZGMDQ0MjBGMEMzMjJEMzIyOTBBRgorOjEwMzFFMDAwRkZGMEUwRkY1NDI4NjBGN0VGMzBFNTA4OTBGRkYwNDQ2RgorOjEwMzFGMDAwMjBGMEMzMjJEMzIyRUYzMEU3MDgxMjFENDVFMDU0REY1MAorOjEwMzIwMDAwRjAyMkVGMTIxRDk4RTA1NERGRjAyMjgxMDE4MjAyODM0OAorOjEwMzIxMDAwMDM4NzQwMDA0MDAwNDAwMDQwMDA0MDAwNDAwMDA4MDA5QworOjEwMzIyMDAwNzg3RTEyMjJCN0EzQTNFMEZGMzBFNzA2NTQ3RkYwNDQ3NAorOjEwMzIzMDAwODBGMDIyODUzQjM5ODUzQzNBOTBGRjgyRTA1NEY3RjBEQworOjEwMzI0MDAwQTNFMDU0N0ZGMDIyRTRGRUVFOTAzMjA0OTNCNTA3MDIyRgorOjEwMzI1MDAwRDMyMjBFQkUwN0YyQzMyMjAwMDgxODI4MzgwMTgxOTAzRAorOjEwMzI2MDAwMEEwMjAwMDAxMTEzMDAxMjEwNEI3RjAyMTIxMERBMTIzMgorOjEwMzI3MDAwMURGNjAyMTBDRTc1MzkwMDhGM0ExMjFDRTAxMjJDRDhDMAorOjBFMzI4MDAwMjIxMjFFMUMxMjFEREYxMjFFMTQyMkMyMDgyMjcyCis6MDAwMDAwMDFGRgorLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorLy8qIEVkZ2Vwb3J0IEJpbmFyeSBJbWFnZSAoZm9yIFRJIGJhc2VkIHByb2R1Y3RzKQorLy8qIEdlbmVyYXRlZCBieSBUSUJpbjJDIHYyLjAwICh3YXRjaHBvcnQpCisvLyogQ29weXJpZ2h0IChDKSAyMDAxIEluc2lkZSBPdXQgTmV0d29ya3MsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWkyNi9iaXRzdHJlYW0uSEVYIGIvZmlybXdhcmUvZW1pMjYvYml0c3RyZWFtLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDRkM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pMjYvYml0c3RyZWFtLkhFWApAQCAtMCwwICsxLDQzOTEgQEAKKzoxMDgwMTAwMEZGRkZGRkZGQUE5OTU1NjYzMDAwODAwMTAwMDAwMDA3QUUKKzoxMDgwMjAwMDMwMDE2MDAxMDAwMDAwMEIzMDAxMjAwMTAwODAzRjJENzUKKzoxMDgwMzAwMDMwMDBDMDAxMDAwMDAwMDAzMDAwODAwMTAwMDAwMDA5OTUKKzoxMDgwNDAwMDMwMDAyMDAxMDAwMDAwMDAzMDAwODAwMTAwMDAwMDAxMkQKKzoxMDgwNTAwMDMwMDA0MDAwNTAwMDNFMDQwODEyMTAwMDAwMDAwMDAwRjQKKzoxMDgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDgwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDA0QkMKKzoxMDgwODAwMDgwMDAwMDAwMDAwMDAwMDAwMDEyMTAwMDAwMDAwMDAwNEUKKzoxMDgwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDgwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDg0MEMKKzoxMDgwQjAwMDgwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwM0UKKzoxMDgwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDgwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwOTgKKzoxMDgwRTAwMEMwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwQ0UKKzoxMDgwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKKzoxMDgxMTAwMDgwMDAwMDAwMDAwMDAwMDAwMDEyMDAwMDAwMDAwMDAwQ0QKKzoxMDgxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDgxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0M0IKKzoxMDgxNDAwMDgwMDAwMDAwMDAwMDAwMDAwODEzMDAwMDAwMDAwMDAwOTQKKzoxMDgxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDgxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDgxNzAwMDkwMDAwMDAwMDAwMDAwMDAwMDEyMDAwMDAwMDAwMDAwNUQKKzoxMDgxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDgxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0NUIKKzoxMDgxQTAwMDkwMDAwMDAwMDAwMDAwMDBGNzEwMDExNDAwMjUwMDA1RjkKKzoxMDgxQjAwMDQwMDE1MDAwOTQwMDE1MDAwNzQwMDFEMDAwOTQwMDI1QjQKKzoxMDgxQzAwMDgwMDE2MDAyRDgwMEY2MDAyRjgwMDJFMDA0RDgzNzQ0MTYKKzoxMDgxRDAwMDkwMDAwMDAwMDAwMDAwMDBDMDA1RjIwMENDOTAzOTIwQTMKKzoxMDgxRTAwMDBEOTgwM0QyMDBFNzgwMzcwNDBFRjE4MzdFMDBERjkwMDQKKzoxMDgxRjAwMDMxRTQ4Rjc5MDM3QzIwREYyMjMzQzAwQ0YwMjIzMDAwODEKKzoxMDgyMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwNjIwMDgwMjQyMjIwMjYKKzoxMDgyMTAwMDA4OTgxMkUyMDA4QjgxMjA5NDA4NzQwMjJFMDA4QTAxRDMKKzoxMDgyMjAwMDIyQzgwODkyMDIzRDgwOEI2MDIyODAwOEIwMDIyMDA0QTAKKzoxMDgyMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzgwMEEwMDAyMDAwRjkKKzoxMDgyNDAwMDBCMTAwMkMwMDBBMTAwMjQwOTRBMzIwMjQ4MDBCMTAwMEMKKzoxMDgyNTAwMDYyQzAwOUEwNDZDQzI0OTM0OTJBODA0ODMwMjI2MjAxOUEKKzoxMDgyNjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTgxMkE4MDAyMjAwNDUKKzoxMDgyNzAwMDA4OTAwMkUwMDA4OTgwMjI0NDA4QjAxMkE4MDBBOTQwQkEKKzoxMDgyODAwMDIyQzAwODkwODJBQzAwOUIwNDJBQzQwOEIwMDI3MDA0OEIKKzoxMDgyOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDE0ODQwMEU5ODBCMjY0NjcKKzoxMDgyQTAwMDREQTAwM0VBMjBFOUMwMzY0MDBFQjAwMzQ0MDBGQjkwMjUKKzoxMDgyQjAwMEIyODgwREJDMDNFQzA4NUIwMDM4NjAyQ0IwNjM0MDA0NEUKKzoxMDgyQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjQyNkREOTAzNzQwOUYKKzoxMDgyRDAwMDRGRTAxM0YyODBGRDAwM0RBMDBENzAwMzc1MDA1RTAwQkQKKzoxMDgyRTAwMDNGQTQwREY5MDM1QzEwRUIwMDM3MjAwRjMwMDNCODAwRkEKKzoxMDgyRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEU5ODAzMjQwNDcKKzoxMDgzMDAwMDBDQTE4M0U4MDBFOTAwMzI0MjBFQjAwM0FDNDhFOTAwNUEKKzoxMDgzMTAwMDNBODAwRUE0MDNFQzAwRUIwMEIyMDMwRUIwMEIxMDA0ODUKKzoxMDgzMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkU4MDg5RDEyMDQwRjgKKzoxMDgzMzAwMDA4QTAwMkMwMDA4MTgwMjI1ODA4RjUwMjJGNDA4QjAwNUYKKzoxMDgzNDAwMDIwQzAwODMwNDM3QzAwODcwMDIyNDAwOEYwMDIzMjAwNDEKKzoxMDgzNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDIwMTlBNDQyOEEyMEQKKzoxMDgzNjAwMDA4MTgwMkMwODBBMTgwQTAwMDA4MzAwMjhFMDBBQjAwNzcKKzoxMDgzNzAwMDJDNDAwQTMwMDIwQzAwQTMwMDIwNDQwQTMwMDIzODAwQ0UKKzoxMDgzODAwMDUwMDAwMDAwMDAwMDAwMDA2MDAxMzIwMDk2ODIyQkEyMjUKKzoxMDgzOTAwMDg4NUEwMkYyMDAwNTgwMjlBMDA4Nzg0MkJFMDA4RTg0MjcKKzoxMDgzQTAwMDJGNjEwQUQ4MDI0RTEwQTc4MDIwMjgwODc4MDIxODAwRjIKKzoxMDgzQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDgwMEYyMjQzODgwNTcKKzoxMDgzQzAwMDJDMUEwM0M0MDBFMDU4QTA4MDJFMzAwMzg4NDFFMzAyMzkKKzoxMDgzRDAwMDNDNDAwNjIwMDM4QzAwRTMwMDEwMDAwRTMxNDMxMjAyRTMKKzoxMDgzRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEOTgwMEVFMDEzNzg0RUUKKzoxMDgzRjAwMDlGRDkwM0YwNDhGRDEwMzdDMDA3QjAwMzVDMDBGNjEwQUEKKzoxMDg0MDAwMDMzQzAwREUxMDNFRDIwREYxMDNGNDgwRkYwMjNEMDA2MEQKKzoxMDg0MTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTQwMkNCODAzMEMwMkUKKzoxMDg0MjAwMDBDQTAwM0UyMDJDOTAwM0E0MDBEQjYwMzY0MDBFQjAwNjEKKzoxMDg0MzAwMDNFQzAwRkIwMDNFRDAwRkIwMTNFRTAwQ0IwMDJFQTAwQ0QKKzoxMDg0NDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOTQwMDg3MDAyMUMwNjcKKzoxMDg0NTAwMDI4NjAwMkQwMDA4NTAwMkQ4MDQ4RjA4MjFDMDBCNzAwMDMKKzoxMDg0NjAwMDJEMDAwQjUwMDJEQzAwQjdBMDJGODAyODdBMDJEMjA0MjYKKzoxMDg0NzAwMDYwMDAwMDAwMDAwMDAwMDBDMTAwQkUwMDg3ODAyMUUwMTUKKzoxMDg0ODAwMDI4NjgwMkQ3MDA4NDgwMkRFMDQ5NzkwNjUzMDlCNTgwMTkKKzoxMDg0OTAwMDJERTIwQjc4MDJERTgwQjc5MDJEQjAwODc5MDJGMDAwNTMKKzoxMDg0QTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MxMDgzMDEyOEM4MDAKKzoxMDg0QjAwMDA4MjAwMkMyMDY4MTAwMkNDODg4MzA2MjBFMjFCM0EwQjkKKzoxMDg0QzAwMDJDQzEwQkI2MDJDQzAwQjMwMDJDRTAwODMwMDJEMjA0NjEKKzoxMDg0RDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMENBNDBCMDgwOEQKKzoxMDg0RTAwMDBDMkMwMkY4MDBDNjIwM0Y5MDBEQTAwMzdCMDFFRUUwQUIKKzoxMDg0RjAwMDNGQjQwRkVDMDNFODAwRkEwMDNGQTAwQ0EwMDNGQTA0MUQKKzoxMDg1MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTMwMEY4MDkyNjAwQjkKKzoxMDg1MTAwMDBGQzE4M0UwMTBGODQwM0MwMDBGODAwM0UwMDFGODAwMzkKKzoxMDg1MjAwMDNFMDAwRjgxMDNFMDA0RjgwMDNFMTAwRjgwMDNEMjAwRUMKKzoxMDg1MzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMkM5MDAzRTQwQzYKKzoxMDg1NDAwMDRGOTA2MzI2ODQzOTAyQjI0MDBDOTEwMzI0MDBGOTAwNTUKKzoxMDg1NTAwMDNFNDAwRjkwMDMyNDAwRjEwMDNBNDQwRjkwMDNDMjA0MDAKKzoxMDg1NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NDUwMDg5NDAyRTQwREIKKzoxMDg1NzAwMDA4OTIwQTI0MDBCOTMxMjI2MDg4OTQ4QTI0MjBCOTAwMjQKKzoxMDg1ODAwMDJFNDAwQjkwMDIyNDAwQjkwMDIyNjgwQjkwMDJFMDAwRkMKKzoxMDg1OTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjRBMDhEODQyRjQwNkEKKzoxMDg1QTAwMDBCRDEwMjI0MDBCOTAwMjI0QTA4MTAwMjJDNDBCOTAwNjUKKzoxMDg1QjAwMDJFNDAwQjkwMDIyNDAwQjkwMDJBNDAwQjkwMDJDNjAwMDYKKzoxMDg1QzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MTQwMDg1ODAyRDQwRDkKKzoxMDg1RDAwMDA4NTAwMjA0MENCOTAwQTA1MDA4MTQyMjA0MDBCMTAwOTUKKzoxMDg1RTAwMDJDNDAwQjEwMDIwNDAwQjEyODIwNEEwQjEzMDJDMjAxRDgKKzoxMDg1RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwMEMwNTAzRTgwODgKKzoxMDg2MDAwMDBGQzA0MzIwMDBGODAwMzAwMDJDODAyMzIwMDBGODUxRDgKKzoxMDg2MTAwMDNFMTQ4Rjg1MEIyMTQwRjg3MDNBMDgwRjg0ODNFRTAzRDcKKzoxMDg2MjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFEQzQwMEY5MDQzRTQwMDYKKzoxMDg2MzAwMDBGOTAyM0Q0MDBGRDAwM0Y1MDBGOTQwM0Y0MDRGRDAwN0QKKzoxMDg2NDAwMDNGNDE4RkQwNDNFNTBDRjkwMjNGNEEwRjkyMDNFNjAyMDcKKzoxMDg2NTAwMDcwMDAwMDAwMDAwMDAwMDA4ODA1RDQwMUZEMDAzRDQwQ0UKKzoxMDg2NjAwMDBDRDAxM0Y0MDBENTAwMzM2QTFDREM4MzM0MDBEMTA0MzEKKzoxMDg2NzAwMDNFNTAwQzkxMDNFNkMwRERCMDMzNkEyQzlDODNFNjAwQ0IKKzoxMDg2ODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAwOUY4ODAyRTAwQTMKKzoxMDg2OTAwMDg4ODAwMEU4MDBCQTAwMjJCMDA4OEUwMjI4MDA4OEE4NkUKKzoxMDg2QTAwMDI2MjgwODhBMjJFMjAwODhFNDIyMzAwODhDMDJDRTA0QzAKKzoxMDg2QjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMjgyRTQwNzIKKzoxMDg2QzAwMDA4MTAwMkM0MDA5OTAwMjA0MjQ4MTAwMjY0MDE5MTgwMDEKKzoxMDg2RDAwMDJDNDgwODEwMDJDNEMwODE0MDIwNEEwODEyMDJDMjAxN0UKKzoxMDg2RTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQ5NEE5MDIyRTQwOUMKKzoxMDg2RjAwMDBBOTAwMjY0MDBCOTAwODI2MDA4OTAwMjY2MDA4OTEwNDYKKzoxMDg3MDAwMDI0NjIwODkwMDJFNDAwODkwMjIyNDAxODkwMDJDNjA0MDQKKzoxMDg3MTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTYwMEI5MDQzRTQwMjMKKzoxMDg3MjAwMDBDOTAxM0U0MDBEMUMwMTI1MDI4OTAwMzQ0MDBEOTAwRUIKKzoxMDg3MzAwMDNFNDAyODkyMDNFNDAyRDkwMDMyNDI4QzkwMTJFODA0QjEKKzoxMDg3NDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTYyMEY5MDAzRTQxNTIKKzoxMDg3NTAwMDJEOTAwM0U0MDBGOTIwM0U0MDRGOTAwMUE0MDBGOTAwNjEKKzoxMDg3NjAwMDM2NDA4RjkyMDdFNDAwRjEwMEJFNDAwRjkwMDNDQTAwMkMKKzoxMDg3NzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEM4MDAzRTIwOUIKKzoxMDg3ODAwMDBDODAwM0UwNDBGODAwMzYxMjJDMDAwM0UwQzBGODAwMzMKKzoxMDg3OTAwMDMyMTAwRDg0MDNBMDAwRjgwMjNFMDgwRjgwMDBDQTA0QzYKKzoxMDg3QTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1M0E5MDhFMDAyREEwNTcKKzoxMDg3QjAwMDgwRTgwMkZBMDBCRTQwMjM4MDA4RTgwMkZBMDA4QTAwM0UKKzoxMDg3QzAwMDM2ODAwOEEwMDJFODAwQkEwMDJGODAwQkEwMDM4QTAwQzAKKzoxMDg3RDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NDYwMjgzMDAyQzgwQjUKKzoxMDg3RTAwMDA4MjI0MkM2ODBCMTYwMkVGNDA4MzgyMkNFMDBBMzAwRDEKKzoxMDg3RjAwMDIwQzAwODMwMDJBQzAwQjEwMDJFNDAwQjMwMDJDQTAwOEQKKzoxMDg4MDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUUwMjg1MDEyREMyRTIKKzoxMDg4MTAwMEE4NDQwMkQ0MDBCRDAxMjk0MDE4NjhEMkRDMDA4RjgwMzIKKzoxMDg4MjAwMDI1Q0MyODczNDJEQzgwQjUzMDJEQzAxQjcyMDJFODAwRDUKKzoxMDg4MzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwNEM2ODIzREUwQzEKKzoxMDg4NDAwMDBDNDgxMkQ2MTBGNTgwM0NBMDBDNzAwM0RFMDBFNzkwQjcKKzoxMDg4NTAwMDIzRUEwNDdBMDM5RTAwRjU4MDNERTAwRjdBMDNFQTAyRTIKKzoxMDg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwODBEQUMwMDlDMDAzRUMwQUQKKzoxMDg4NzAwMDBGODAwM0U0MTBGOTAwMzYwMTBGQTAwM0MwMDBFQjAwRTUKKzoxMDg4ODAwMDNFRDg0RUIwODNFQzAwRjkwMDNFQzAwRkI0NDM4MjA2RTAKKzoxMDg4OTAwMDYwMDAwMDAwMDAwMDAwMDBDMDA1REUwMENGODQzMUUwNzEKKzoxMDg4QTAwMDBFQzg0M0Q2MDBDRDgwMzNFMENERDkwMzNBMDBGRjg4MEYKKzoxMDg4QjAwMDMzRTAwRkY5MTNGRTI0RkQ4MDNGMjAwQ0Y2ODMxMDAwRjcKKzoxMDg4QzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMDg1MDAyMUM0NzkKKzoxMDg4RDAwMDI4NDA4MkQwMDBENTAwMjM4MDQ4QzkwMjFDMDBCNzAwODAKKzoxMDg4RTAwMDIxQzAwQjcxMDJERTgwQjUxMDJEQzAyOEYwMDIyQTA0RDEKKzoxMDg4RjAwMDYwMDAwMDAwMDAwMDAwMDAxMDAwOUMwMDk2MDAyMUMwRjUKKzoxMDg5MDAwMDBBNDEwMkY1NDA4RDAwMjE0MDA5NTIwMjk4MjBCNzAwMkIKKzoxMDg5MTAwMDIxQzAwQjcwMDZEQzgwQjUwMDJEQzAwODcwMDIwNDAwNzkKKzoxMDg5MjAwMDIwMDAwMDAwMDAwMDAwMDA2MDE0Q0MxMDk4MDAwMEMwN0YKKzoxMDg5MzAwMDg4MDQ4MkMwMDA5MTA0MjAwMzA5MDAwMjhBMDBCMzBBNUYKKzoxMDg5NDAwMDIwQzQ4QjM0MDJDQzAwQjkwMDJDQzAwMDMwMDIxODA0QzMKKzoxMDg5NTAwMDMwMDAwMDAwMDAwMDAwMDBGODE1QUMwMERCMDBCMEMwRTMKKzoxMDg5NjAwMDBFOUMwMkM1MDBDMTEwQjJDMDBEQjAwQkE3MDhGRjAwREQKKzoxMDg5NzAwMEIzQzAwRkZBMDNGQzAwRkQwMDNFRDQwQ0YwMEIyRTA0MzQKKzoxMDg5ODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwNEVEMDAzRTQwQUMKKzoxMDg5OTAwMDBGODQwM0U1NDBGOTQwM0U2MENFQjQ0MzY0MDBGQjgwQTEKKzoxMDg5QTAwMDNFQzIwRkIwMTNFQzAwRjkwMjNFQzA0RkIwMDNFMTAwMkQKKzoxMDg5QjAwMDMwMDAwMDAwMDAwMDAwMDA5MDEwRkYwMENFMDAzM0MwMjcKKzoxMDg5QzAwMDBFQzAwNzc0MDRFQzAwMTE4MDBDQ0EwM0ZFNjBGRjAwQTcKKzoxMDg5RDAwMDNGQzAwRkYwODMzQzAwREQwMEIzNTAyQ0YwMDMyMDA0QjcKKzoxMDg5RTAwMDMwMDAwMDAwMDAwMDAwMDA4MTAwNEMwNDhCMEIyMjcwNUUKKzoxMDg5RjAwMDA4MDgwMzY3MjA4QTg4QTIwMDI4ODQwMkU3MDBCQjAwRDkKKzoxMDhBMDAwMDNFQzAwQkIwMDIyQzAwQjkwMDIyNjEwOEIwMDM2MDQwRTgKKzoxMDhBMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDhCMjAyMkUyRTYKKzoxMDhBMjAwMDBBOEMwMjI2MDBBOTgwMkFDMDA4QjQ0MkVEMDBCQjAwQ0YKKzoxMDhBMzAwMDJFQzAwQjMwMDIyQzAwQjkwMDIwODAwODMwMDI2MDAwRUMKKzoxMDhBNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEUwMTgxMDBBMEMwRUEKKzoxMDhBNTAwMDA4ODEwMjQ0MDA4MTAwMjg4MTA4MzIwMkNDMDBCMzAwNjIKKzoxMDhBNjAwMDI4QzAwQjMwMDIwQzgwQjEwMDIwQzAwODMwMTI0MjAxMzcKKzoxMDhBNzAwMDAwMDAwMDAwMDAwMDAwMDA4MDBENkMwMEMyMDEzMkMwNDgKKzoxMDhBODAwMDJFODAxNjJDMDhFOTAwM0E0MDBDODAwM0VDMDBGNzAwMTkKKzoxMDhBOTAwMDJGQzAwRkYwMEIyQzAwRDkwMDMwNDAwQ0YwMDM2MDAzMDYKKzoxMDhBQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDBERjgwOEZGMDAzRkMwQ0IKKzoxMDhBQjAwMDBGQzIxN0ZDMDBGNzAwMzcwMDBGODQwM0ZDMDBGRjAwMTMKKzoxMDhBQzAwMDNGQzAwRkYwMDNFRDAwRkQwMDNGNDAwRkYwMDNFODA2NEMKKzoxMDhBRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkMwMENGMzAxNzQ4MDcKKzoxMDhBRTAwMDBDNTkwM0I5MDBERjI4MzUyNDBEODJBMzdDODBGRjAwRDgKKzoxMDhBRjAwMDNGQzgwRkYyMDNFNEEwRUY4MDNGRTE4Q0Q4NDMzMDAwODEKKzoxMDhCMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUQ0ODg5MzRBMzcwNjAKKzoxMDhCMTAwMDI4QjAyMzYwMDA4QkMwMjI0MDA4QjQ4MjJGNDBCRkQxMTAKKzoxMDhCMjAwMDZGRjQ4RUJEMDJFNzAwQkI4MDNBRTAwODk4MEEyODA0ODMKKzoxMDhCMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzRCMDkxMDBBODUwN0IKKzoxMDhCNDAwMDA4QjIwMkM4ODQ5MzAwMjQ0OTBCMDIwMjRDMDBCMzA0MEIKKzoxMDhCNTAwMDJDQzAwQjMwNDI4NDAwQjMwMDJFMDAwQUIwMTIyMjAxNTgKKzoxMDhCNjAwMDcwMDAwMDAwMDAwMDAwMDBDMDExQUMwMjk5MTgyQTQ0RjcKKzoxMDhCNzAwMDA4Qjg4MkEyMDFCQjAwMjg2MDBBQTAxMjZDMDBCQjAwRUEKKzoxMDhCODAwMDZFQzAwQUIwMDJFNDAwQkIwMDJBMDAyQUIwMDIzODA0MUEKKzoxMDhCOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDExRTQwOERBQzAzQTYwMDQKKzoxMDhCQTAwMDBDMTgwQUVCMDREQjAwMzZFMDA3ODU4MzZDMDBGQjAwNDEKKzoxMDhCQjAwMDJFQzAwRkIwNDNFNDAwRUIwMDNFODgwRTE4MDMxMDA0RjMKKzoxMDhCQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDQxOUMxMEU5MDAzNzYwRTgKKzoxMDhCRDAwMDg3RjAxNzcwMDBDRjAxMzdDMDRDOTgwM0JDMDBGQjAwMzIKKzoxMDhCRTAwMDNGQzIwRkYwMDNFNDAwRkY0MDNGRTQwREQ5MDNGMDAwNjMKKzoxMDhCRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTQwMEY0MDAzMDQwQkQKKzoxMDhDMDAwMDBGQjQwMzk5MDBGQjAwM0VDMDBEMDQyMzJDMDhGQjg4MjEKKzoxMDhDMTAwMDMyQzAwRkIwMDNFNjAwREIxMDNFMDIwRkIwODNEMDA0NzkKKzoxMDhDMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMEI5NTBBMjQ4MzgKKzoxMDhDMzAwMDhCQjAwMzIwMDBENzgwMkVEODAwODAwMjNDMDBCRjgwN0MKKzoxMDhDNDAwMDIzRTg4QkYwMDJGNDQwOEI0MDBDNDIwM0I2MDJGMjAwQTIKKzoxMDhDNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIyNDQwMEM4RTUKKzoxMDhDNjAwMDBCMzAxMjhDMDBBMzgwMjRDODBCMDAwQUNDMDBCMzQ0NDQKKzoxMDhDNzAwMDA0QzAxQjM2MDJDNTAxODMwQzJDQTAwQjMwMDJGODAwODcKKzoxMDhDODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwOEI3OTAyMTY0ODEKKzoxMDhDOTAwMDBCRjgwMjRBMDQ5NzgxMkZFNDBBNzgwMjlFMDBCNzgwRkQKKzoxMDhDQTAwMDIxRTA4Qjc4ODJENjg2ODc4NDJEQTAwQjc4MDJDMDAwQzUKKzoxMDhDQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDQwMEYyMDAzMEMwM0UKKzoxMDhDQzAwMDBGMzAwMzhDMDBFMzBBM0NDMDBGMTgwMzhDMDBGMzAyNDIKKzoxMDhDRDAwMDMwQzAxRjMwMDFDNjgwQzMwMDNDQzAwRjEyMDNEQTAyNEYKKzoxMDhDRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDBEQkMwMEZGMDAzRjQxRkMKKzoxMDhDRjAwMDBGRjAwM0I4MDhGRjA4M0ZDMDBERjAwMzNDMjBGRjA4NDkKKzoxMDhEMDAwMDNCRDIwRkYwMDNGNDQwRUYwMDNGQzQwRkQwMDNEMDA2NzYKKzoxMDhEMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTQwMEZFMDAzMkMyNzAKKzoxMDhEMjAwMDBDMzAwQjI2MDBGQjgwMzZDMDBEQTAwM0VDMDBGQkUwRUUKKzoxMDhEMzAwMDMyRDAwRkI4NDM2NDQ0REIwNDNFODAwRkIwMDNFMjAwM0UKKzoxMDhENDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMEI3MDBBMUMwQTYKKzoxMDhENTAwMDg4NzAwMzEwMDBCNzIwMjFDMDA4NzAwMkRDODBCMzMwOTcKKzoxMDhENjAwMDMxQzgwQjc0MDIxNDAwODc0MDJEQzA0QjcwMDJEMjAwMzIKKzoxMDhENzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOTYyMEI2ODAyMEUwRTcKKzoxMDhEODAwMDI4RjgwMjk0MTBCNzgxMjdFMjA5NzgwMkRFMDBCN0EwMjQKKzoxMDhEOTAwMEE5RTgwQjM4MDI3NjAwODc4MDJEQTAwQjU4MDJGMDAwNUUKKzoxMDhEQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0UxMEIzMDAyMEM0RDIKKzoxMDhEQjAwMDA4MjAwMjgwMTBCMzAwMjJDODA4QjAwMkNDMTFCMzAyMTAKKzoxMDhEQzAwMDI4QzAwQjMwMDIwNDAwOTM4MDJDRDIwQjEwMDJEMjA0NzYKKzoxMDhERDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEZFNDAzMkEwQUUKKzoxMDhERTAwMDBDRTQwMzk4ODBGQTAwMzdBMDBERTA4M0U4MDBGRTAwNTEKKzoxMDhERjAwMDNBODAwQkEwMDM2ODAwRDhBMDNGOTAwRkEwMDNGQTA0QUMKKzoxMDhFMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwOEY4MDgzRTAwOTQKKzoxMDhFMTAwMDBGODAwMzIwMDBGODQwM0UwMDBGODAwM0UwMDBGODA0QkMKKzoxMDhFMjAwMDMwMTAwRjgwMDNFMDAyRTgwMDNFMDAwRjgwMDNEMjAwMDQKKzoxMDhFMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEYxMDAzMjQwQTMKKzoxMDhFNDAwMDBFOTA4M0E0MDBDOTgwM0U0MDBFOTAwM0E0MDBGOTAwNTgKKzoxMDhFNTAwMDNFNDAwQzkwMDNFNDAwQzgwMDNFNDA4RjkwMDMwMjA0QTMKKzoxMDhFNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5NDBBMDYyRUYKKzoxMDhFNzAwMDA4MTAwMjI0MTA4OTAwMkU0MDA4OTAwMjI0MDBCOTAwMzYKKzoxMDhFODAwMDJFNTIwODk0MDJDNDAwODk0MDJFNDAwQjEwMDM2MDEwM0IKKzoxMDhFOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEI5MTgyMjQ0NEEKKzoxMDhFQTAwMDBBOTAwMkFDMDA4OTEwMkVDMDBBOTAwMkE0MDBCOTgwN0EKKzoxMDhFQjAwMDJFNjAwODk4MDJFNjAyODkwODJFNDAwQjkwMDIwNjAwRjgKKzoxMDhFQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4MEIxMjBBMDQ4MTkKKzoxMDhFRDAwMDA4OTAwMjI0MDg4MTIzMkM1MDA4MTAwMjA0ODBCMTIwM0QKKzoxMDhFRTAwMDJDNDgyODEyMDJFNDgwODEyMDJDNDAwQjk4MDI0MjA1NzUKKzoxMDhFRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEY4NTAzMjAwOTIKKzoxMDhGMDAwMDBFODUwM0ExRTBDQTAwM0UwMDBFODUwM0EwMDBGODAwMTQKKzoxMDhGMTAwMDJFMDA5Q0EwMDNFMDAwQzgyODNFMDAwRjgwMDMyRTAxMTUKKzoxMDhGMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQ0MEY1MTAzRjQ0ODAKKzoxMDhGMzAwMDBGRDAwM0Y0MDBGMTEwM0Q0MDhGRDQwM0U0NTBGOTEwM0EKKzoxMDhGNDAwMDNFNDUwRjkxMDNENDQwRkMwMDNGQzA4RkQwMjNFNjA0ODAKKzoxMDhGNTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTYyMENEQTgzMzQwOTYKKzoxMDhGNjAwMDhERDAwMzI2ODBDRDAwM0Q1MDBDOUEwMzY0MDBGOUEwRkIKKzoxMDhGNzAwMDdBNkEwRjlBNjNFNjgwQzk4MDNFNDAwRjkwMDMwNjAwMkMKKzoxMDhGODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTEwMDg4RTAzNjAwQUEKKzoxMDhGOTAwMDA4ODAwQTIxNDJDODAwMkUyOTBDQTQ0MjIwMDBCODQwQjMKKzoxMDhGQTAwMDJFMDAwQjgxMDJFMTAwODgwMjNBMDEwQkMwMDIwRTA0ODAKKzoxMDhGQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMjgxMDgyNDQwQzEKKzoxMDhGQzAwMDA5MTAwMjA0MDA5MTAwMkM0MDRCMTQwMjQ0MDBCNTEwMUIKKzoxMDhGRDAwMDI5NDAwQjUwMDJGNTAwQjUwMDJENDAwQkQwMDIwMjAxRDQKKzoxMDhGRTAwMDcwMDAwMDAwMDAwMDAwMDAxODExQTYwMTg5MDAyNjQwNTIKKzoxMDhGRjAwMDA4OTQwMjI0MDE4OTAwMkU0MDFBOTAwMjZDMDBCRjAyREUKKzoxMDkwMDAwMDJGNDAwQkQwMDJGNDAyQkQ4MDJCNDA4QkQ4M0EwNjA0Q0YKKzoxMDkwMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEM5MDUzNjQxMTIKKzoxMDkwMjAwMDBEMUMwMzI0MDBEOTAwM0U0MjJGOTQwMzY0MDBGOTAwNzQKKzoxMDkwMzAwMDNBNDAwRjkwMDNDNDAwRjkwMDNFNzAwRjEwMDMyODA0NUIKKzoxMDkwNDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxODQwOEY5MjQzRTQwNjAKKzoxMDkwNTAwMDBGOTEwM0U0MDBGOTAwM0U0MTBEMTAwM0E0MDBGOTAwNTQKKzoxMDkwNjAwMDNFNDAwRjkwMDNFNDAwQzkwMDNFNjQwRjkwMDNDQTAwMjUKKzoxMDkwNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwOEM4ODAzMjAyMzQKKzoxMDkwODAwMDBGODAwMzAwMDBDODA4M0ExMENFODQwM0UwMDBGQzAwMDMKKzoxMDkwOTAwMDNGMDA4RkMwMDNGMDgwRkMwMDNGMTgwRkMwNDNDQTA0OUMKKzoxMDkwQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDhFMDBBMTgwOUMKKzoxMDkwQjAwMDBCRTAwMjI4MDBERUMyMjM5MDAwQTAwMkU4MDBCQTAwMDQKKzoxMDkwQzAwMDJFODAwQkEwMDJFODAwRkEwMDJFODAwQkEwMDJDQTAwM0UKKzoxMDkwRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDk5ODE2MEMwOUQKKzoxMDkwRTAwMDBCMTAwMjBDMDA5MDEwMkFGQzBCMzAwMkNDMDBCMzAwRDUKKzoxMDkwRjAwMDJDQzAwQjMwMDJDQzAwQjMwMDJDQzAwQjMwMDJDQTAwRDUKKzoxMDkxMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUM4Mjk1NDAyMUMwMUEKKzoxMDkxMTAwMDBCNTAwMjFDODA5MDgwMjMwMTA5NzIxMkRDMDBCNjAwMDMKKzoxMDkxMjAwMDJEMDAwQjQwMDJEMDAwQjQwOTJEMDA0QjQwODJFODAwMTYKKzoxMDkxMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4M0U4MEREODBCMUUwOTMKKzoxMDkxNDAwMDBGREEwMzBGODBENDgwMzlFMDBCN0EwM0RFMDBGNTgwNUMKKzoxMDkxNTAwMDNEMjAwRjQ4MDNENjEwRjY4MTNERTA4RjY4MDNFQTAyRjgKKzoxMDkxNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEVEMDAzRTAwMDMKKzoxMDkxNzAwMDBGOTEwQkVDMTBGODAwM0UwMDBFQjAwM0VDMDBGODAwNkQKKzoxMDkxODAwMDNFQzA0RkIwMDNFODAwRTkwMTNFMDAwRjkwMDNDMjA2NjUKKzoxMDkxOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUyMEJGODEzM0E0MzUKKzoxMDkxQTAwMDhDMTkwMzNFMDBDRDgwM0ZFMDBGRjg4MzNFMDBFRjgwMzYKKzoxMDkxQjAwMDNGRTAwRkY5MTNGQTEwRkQ4MDNGQTQwRkQ4MDNDMDAwNjEKKzoxMDkxQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEJGMjAzMUMyMDgKKzoxMDkxRDAwMDA4NUEwMjNDMDI4NzAwMkQ5NDBCNzAwQTFDNDA4NjEwMkUKKzoxMDkxRTAwMDJEMDAwQjQwMDJENDAwRjYwMDJENDA0QjYwMDJFQTA0MzMKKzoxMDkxRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEI3MDEyMzgwMTgKKzoxMDkyMDAwMDI4NTAwMjFDMDA4NDAwMkRDMDBCMzAwMjFDMDBCNTAwNDkKKzoxMDkyMTAwMDJEMDAwQjQwMDZEMDQwQjQwODJEODAwQjQ4MDJDMDAwNDIKKzoxMDkyMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwMEIzMDhBMDIwQTMKKzoxMDkyMzAwMDA4MTE4QTBFMDA4MDAwMkM5MDBCMzcwMjBDMDA5MDAwNjEKKzoxMDkyNDAwMDJDQzAwQjMwNDJDQzA0QTM4MDJDNTAwQjMwMDJDODA0M0QKKzoxMDkyNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMEY5ODAzMjYwNUEKKzoxMDkyNjAwMDBDRDQwMzNDODA4ODAwM0VEMDBGRjgwMzI4MDBGQTAwOUQKKzoxMDkyNzAwMDNFQzAwRkIwMDdFQzAxQkI4MDNFNTQwRkIwMDZFQTA0QkQKKzoxMDkyODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUUwOEY5ODAzQUMwOTUKKzoxMDkyOTAwMDBGOTAwM0VDMDBGODQwM0U1ODBGQjA0M0U5MDBFQjQ0NTgKKzoxMDkyQTAwMDNFMDAwRjgwMDNFMDBERjgwMDNFODAwRjgwMDNFMDAwRDkKKzoxMDkyQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwREMwMENGMDAzMzQwNEYKKzoxMDkyQzAwMDBDRDAwMzNDMzBDQzAwM0JDMDJERjAwM0Q4MDJDQzAwQzYKKzoxMDkyRDAwMDNEMDAwQ0MwMDNGNDAwRUUwMjM3NDAwQ0UwMDNDMDQ0MzQKKzoxMDkyRTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMxODgzODQyMDAwMUUKKzoxMDkyRjAwMDRBMTAwMjBDMDBBODQ4MkU2MDA4QjAwMkU5MDA4OTQwMUMKKzoxMDkzMDAwMDJFQzAwOEIwMDJFODEwQjEwMTIwODAwQTkwMDNBMDQwRUUKKzoxMDkzMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDhCODIyMjA4NTUKKzoxMDkzMjAwMDA4OTAwMjJDMTQ4ODA0MkMwODA4QjAxMkU4MDA4QTAwNjcKKzoxMDkzMzAwMDJFQzAwQUIwMDJFODAxQjkwMDI2MDQwODkwMDJFMDAwM0QKKzoxMDkzNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMDgzODBBMkMwNjAKKzoxMDkzNTAwMDBBOTIwMjJDMDBBMjAwMkMwMDA4MzQwMkM4MDA4MzAwRUMKKzoxMDkzNjAwMDJDMDAyODAwMDJDNDAxQkEwMDIyQzAwMjIwMDZDMjAxNUIKKzoxMDkzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMENBMDBCMjAwRjgKKzoxMDkzODAwMDBDOTIwQjJDMDRDODA0M0EwMDBDQjQwM0U4MDBDODAwOEIKKzoxMDkzOTAwMDJFMDAwQzgwMzNFMTQwRTgwMDM2MDAwQzgwMDNDMDAzNEYKKzoxMDkzQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZGMDAzRDAwNzgKKzoxMDkzQjAwMDBGRDEwQkZDMDFGQzAwM0YwMDBGRjAwM0Q4MDBGRDAwQjMKKzoxMDkzQzAwMDNGQzAwRkYwMDNGQzgwRkYwMDNGQzAwRkYwMDdBODA2NkUKKzoxMDkzRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1RjMwMENGODAzNTYwNzEKKzoxMDkzRTAwMDRFNjg0MzVDMDBFNzgwMzlDMDBDQzEwMzdFMDBDRjM0NzcKKzoxMDkzRjAwMDM1RTE0REYyMDM3QzAwREYzODNGQzgwRkY4MDNGMDAwODEKKzoxMDk0MDAwMDcwMDAwMDAwMDAwMDAwMDBDMDE4QzgwMERCODQyMjYwNkIKKzoxMDk0MTAwMDA4QUMwQTJDMDA4QjgwMjIzMDA4OTEyMjJDOTAyNzYxMDYKKzoxMDk0MjAwMDIyQ0E4OEZDMjJCRjAwOEI2MjJGRDAwOUI4MDNCMDA0ODcKKzoxMDk0MzAwMDMwMDAwMDAwMDAwMDAwMDBDODA1RTI4MEE5MDIyNDQwQkUKKzoxMDk0NDAwMDgyMzQ0MjA0MDBBOTAwMjhDNTQ4MzIwMjRDMjA4MzMwRUYKKzoxMDk0NTAwMDIwQzAwODMxMDIwRDAwQjMyMDJDQzQwQjMwMDJGMjAxRjEKKzoxMDk0NjAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1QUEwMkI5MDQyMjYwREMKKzoxMDk0NzAwMDI4QjIwMjI2MDA4OTg4MDJDMDA4MzExMkVDMDA4QjAwNTUKKzoxMDk0ODAwMDJBRDAwOEIwMDJBQzAwMkIwMDJFQzAwQkIwMDJCMDA0RjIKKzoxMDk0OTAwMDYwMDAwMDAwMDAwMDAwMDBDMDA1RTIwMEUzMDAzNjIwOEMKKzoxMDk0QTAwMDBFQTQ2MzZFMDBFMUMwMUFDMTBDODAwMzY4NzBDQjAwOEIKKzoxMDk0QjAwMDM2ODAwREIwMDM0QzAwRkIwNDNFQzEwRkIwMDNEMDA0NTYKKzoxMDk0QzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjgwNERGMDAzRjAwNzEKKzoxMDk0RDAwMDBGRTgwM0ZDMDBGRDAwM0YwMDJCOTgwMzNBMDA3NzAwRTMKKzoxMDk0RTAwMDI3RTQwRkYwMDNGQzAwREYwMDNFQzAwREYwNDNGODAwNUUKKzoxMDk0RjAwMDYwMDAwMDAwMDAwMDAwMDA1MDAwQTQ2OENCMjAzQTkwRkIKKzoxMDk1MDAwMDBGMjRBM0FDMDBFOTUwM0FDMDBFQjQ4MzJDMDhFQjAwNDIKKzoxMDk1MTAwMDNBOTAwRUIwOEJFQzgwRkIwMDNFQzAwRUIwMDM5MDA0N0UKKzoxMDk1MjAwMDIwMDAwMDAwMDAwMDAwMDBDODAxMEEwMDhCQTAyMDgwN0QKKzoxMDk1MzAwMDBEQTgwMjJDMDQ4OTQwMjhFODA4QjIwMjJDMDBBRjAwRDQKKzoxMDk1NDAwMDAyODAwODdDMDMzRDgwM0YwMDJGQzAwOEIwMDIzNjAwMzcKKzoxMDk1NTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDkwMDAzNDAyOEMwNzIKKzoxMDk1NjAwMDJCMjg0QTI4MDBBMTAwNjhEMjBBMjA0MkE0MDFBMzAwQTcKKzoxMDk1NzAwMDAyNDAwQTM0MDIwRDAwMzMwMDJDQzAwQTMwMDBCODAwNEIKKzoxMDk1ODAwMDUwMDAwMDAwMDAwMDAwMDBCODAxMUEwMDg3OTAyMUU0OUMKKzoxMDk1OTAwMDJCQzgxMjNBMDA4NUMwMkIyMTI4NjgwMkI2MDBBNzg0ODgKKzoxMDk1QTAwMDIzNjAwODM4ODAxRTAwQjc4MDJERTAwODc4MDIyRTAwNjYKKzoxMDk1QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDgwMEMxMDAzODU0QzYKKzoxMDk1QzAwMDBGMjY4MzgwMDBFMDM0MjhDODBFMkMwQjhDMDBFMzAwQUIKKzoxMDk1RDAwMDc4NDUwRTMwMDM4RTgwRjMwMDNDQzgwRTMwMDM5MjAyQjMKKzoxMDk1RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQjgwMEY1MDIzRjQ0RUMKKzoxMDk1RjAwMDBEOTAwM0Y4MDBCRDE0MUZDMDBGRTEyMzVDNDQ5RjQyOEYKKzoxMDk2MDAwMDNGQzAwRkY0ODI3RDQwRkYxMDNGQzA0RjcwMDdEMDA2NkYKKzoxMDk2MTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTgwMkNCMDAzOEMwOTAKKzoxMDk2MjAwMDNDQTAwM0VDMDBFOTAwM0VDMDBDQjAwMzIwMDRGQjIxODkKKzoxMDk2MzAwMDNFODA0RkI0MDNDRjAwQ0IwMDNFQ0M0RkIwNDNFQTAwOTYKKzoxMDk2NDAwMDcwMDAwMDAwMDAwMDAwMDBDODkxOTgwMDg3MDAyMUMwNTEKKzoxMDk2NTAwMDA4NDAwMkRDMDRCNTAwMkQwMDJENzAwMjFDMUNCNzAyNkUKKzoxMDk2NjAwMDJEQzAwQjcyMDJEQzAwODc0MDJEQ0E4QjcwMDJGMjA0MDEKKzoxMDk2NzAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwQkEwMDg3ODgyQkUwMzYKKzoxMDk2ODAwMDE4NzgyMkQ2MTFBNDgyMkZFMDA4NzgwMjEyMDBCNzk0MkQKKzoxMDk2OTAwMDZENjA0QjdBMDJERTQwQjdBMDJERTAwQjc4MDZFMDAwNEIKKzoxMDk2QTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0QzkxMjgzODIyOEQ0NjIKKzoxMDk2QjAwMDk4MDAwNkVGMDVCMTkwMkNDMTA5QjQwMjBDMDRCMzAxNjcKKzoxMDk2QzAwMDZDRjAwQjMwMDJDQzAwQkIwMDJFQzAwQjMwMDJEMjA0NzkKKzoxMDk2RDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1Qjg0MENBODAzQkEwNDAKKzoxMDk2RTAwMDRDRTUwMkY4ODBFRTAwM0Q4MDJDRTAwRjM4ODBGQTAwNTcKKzoxMDk2RjAwMDNGQTkwRkEwMDNFODAwQkEwMjNFODA4QkEwMDNGQTA0NDIKKzoxMDk3MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAxMEY4MDAyNjAyQTEKKzoxMDk3MTAwMDBGODQwM0UwMjRGODAwM0UwMDRGODBBM0UwMzBGODAwRkYKKzoxMDk3MjAwMDM2MDIwRjgwMjNFMDA0MDgwMDNFMDAwRjgwMDNEMjAwQzEKKzoxMDk3MzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEQ5MDBCNjQxMkQKKzoxMDk3NDAwMDRFOTkwQkE0MDA2OTEwM0U0MDBDOTAwM0E0MTBDOTAwNzAKKzoxMDk3NTAwMDNFNDAwRDkyMDNFNjAwRjkwMDNBNDAwRTkwMDNDMjA0MjkKKzoxMDk3NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDgxMDAyMDQyRkUKKzoxMDk3NzAwMDA4MTQ5QTI0MDA4OTAwNkU1MDAwOTAwMjI0MTBEOTAyMjcKKzoxMDk3ODAwMDZFNDAwQjk0MDNBNzAwQjkwMDIyNDAwODkwMDNFMDAwNEMKKzoxMDk3OTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MDYwMDk5MDBBNjQxMTYKKzoxMDk3QTAwMDBBOTAwNjJDMDBBOTA5NkU1MDA4OTEwMjg0MDQ4OTAwRDEKKzoxMDk3QjAwMDBFNDAwQjk0MDJFNTQ5QjkwMDBBNDAwQTkwMDJDNjAwMjcKKzoxMDk3QzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDYwMDgxMDAyMjQwNjQKKzoxMDk3RDAwMDA4MTIyMjA0ODFBMTAwMkM0MDA4MTYwMjA0MDA5MTIwRTYKKzoxMDk3RTAwMDJDNDAwQjEyNDI4NDg5QjEyMDIwNDgwODEwMDJDMjAxOEIKKzoxMDk3RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEQ4MDAzNjAwRjUKKzoxMDk4MDAwMDBBODAwM0ExNDBFODAwMkUwMDBDMDAyM0ExNDBDODUwQUMKKzoxMDk4MTAwMDJFMTQwRDgwMDNFMDAwRjg1MDNBMDAwRTgwMDNFRTAzOTIKKzoxMDk4MjAwMDUwMDAwMDAwMDAwMDAwMDA4ODFERDQwMEY1MDBCRjQwN0IKKzoxMDk4MzAwMDBGRDEwM0Y0NDRERDAyM0Q1MDJCRDEyM0Y0MDBGOTEwODUKKzoxMDk4NDAwMDNGNDAwRDkxMDNBNDQ4RjkxMjNFNEUxRjkwMDNBNjAyMUIKKzoxMDk4NTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1RjQwMEM1MDQzQjQwMzMKKzoxMDk4NjAwMDBGRDgwM0E3ODBGRDAwQjM2ODBERDg0M0E1MTBDOUEwODkKKzoxMDk4NzAwMDMyNTE0RjVBNDMzNjAwQzlBMDdBNjgwQkQwMDNDNjAxNTMKKzoxMDk4ODAwMDcwMDAwMDAwMDAwMDAwMDA3ODE4Q0E4ODg4MDIwMjAwRkEKKzoxMDk4OTAwMDhEODQyMjIzNDJGODAwMjIwNDI4OEFBMkFBOTQ4OEU5MEYKKzoxMDk4QTAwMDIwQTgwQTgwMEEyMTQwODBFMjJFMjgwQjgwMDJDRTA0RTQKKzoxMDk4QjAwMDMwMDAwMDAwMDAwMDAwMDA0ODA1QzQyMEExMDRBOEMwM0EKKzoxMDk4QzAwMDBCMUMyQTI0MDAzOTA0MjA0MDJBMUUwMkU0ODBCMTEwMTcKKzoxMDk4RDAwMDJBNDgwOTE0NDYwNDAwODEzODJDNUIwQjEwMDJEMjAwODAKKzoxMDk4RTAwMDMwMDAwMDAwMDAwMDAwMDAxODA1QTQxMkE5MjQyMjQwNDYKKzoxMDk4RjAwMDI5OTAwMjI0MDAzOTAwMDI1ODA4MTgxMEU2MDFCOTAwMjYKKzoxMDk5MDAwMEFBNDQwODkwMDIyNDAwODkwMDBFNDEwQjkwMDJDNjA0NkMKKzoxMDk5MTAwMDYwMDAwMDAwMDAwMDAwMDBBMDA1RTQwMEUxMDEyQTY0RUUKKzoxMDk5MjAwMDJGOTQxMzI0MDI3MTYwMTI2MDREOTAwMEM1MDJGOTAwNUIKKzoxMDk5MzAwMDNBNDAwRjkwMjMyNDAyQzkwMjNBNDAwRjkwMDJFODA0RjMKKzoxMDk5NDAwMDUwMDAwMDAwMDAwMDAwMDA2ODAxQTQwMEQ5MDAzRTYwNDMKKzoxMDk5NTAwMEFGOTA4MzY0ODhGOTIwM0U2MjAzOTA4M0E0MDBDOTAwMUQKKzoxMDk5NjAwMDM2NjAwRjEwMDNDNDAwRjkwMDdFNDAwRjkwMDNEQTAwNDgKKzoxMDk5NzAwMDYwMDAwMDAwMDAwMDAwMDAyODAwQTEwMEM4ODIzMjAwNDIKKzoxMDk5ODAwMDZGMDAwM0EwMDBEODQwMzAwMDBFODAwMzYwMDRGODAxOEYKKzoxMDk5OTAwMDNFMTA0RjgwOEIyMjAwRjgwMDMyMDEwRTgwMDNDQTA0NzMKKzoxMDk5QTAwMDIwMDAwMDAwMDAwMDAwMDAyODAxMzgwMDBFMDBBOTkwRUYKKzoxMDk5QjAwMDJGRTYyMDg4MDA5RTgwMjM4MDBBRTgwMzI4MDBCQTAwNTIKKzoxMDk5QzAwMDE4ODAwREVDMDIzODgwQkEwMEEyODAwOEEwMDM4QTAwM0IKKzoxMDk5RDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NkMwMjgzODAyMEM4QzEKKzoxMDk5RTAwMDBCMjAwMjBDMDE5MjEwNjhDMDNBM0MwMkNDMTAzQjAyRTIKKzoxMDk5RjAwMDBDQzAyODNDMDI0RTAwQjMwMDI4QzAyODMwMDJDQTAwMjgKKzoxMDlBMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTQwMDg3NDIyQkMwOUQKKzoxMDlBMTAwMDI5NzAyMjlDMDBCNjAwMkJDMjBBNjA4NjFDMDBCNzIxNjgKKzoxMDlBMjAwMDI5QzAwMDc0MDI1QzAwMzc5MTAxRTAwODc0MDJBODAwQUMKKzoxMDlBMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEM3ODAyMUUwRDAKKzoxMDlBNDAwMDJGNzgwMjlFMDA5NjgwMzlFMDJFRjgwM0RFMzBGN0QwQTIKKzoxMDlBNTAwMDJERjIwMDc4MDM1MjAwRjdBMjNCRTAwRTc4MDdFQTAyRUQKKzoxMDlBNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQjQwMEZCMDAwQ0MwNTYKKzoxMDlBNzAwMDBGMzAwM0VDMTBEMzAwQjRDMDJGODAwMzZDNDhGQjAwMDAKKzoxMDlBODAwMDNFQzg0RDkwMDNBNDAwRkIyMDFFQzAwRkIwMDNDMjA2QzkKKzoxMDlBOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMENDODAyQjJDQzAKKzoxMDlBQTAwMDJGRjgwMzdFMDA2RTgwM0JBMTBERDg0MzNFMDBGRjkwNEYKKzoxMDlBQjAwMDMzRTAwRkU5MzNGRTAwQ0ZDMDNGRTIwRkQ4MDNDMDAwMTAKKzoxMDlBQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExQjQ0MDg3MDAyMTA0Q0QKKzoxMDlBRDAwMDA4NzgwMjFDMDA4NjAwMjFDMDI4OTAwMkRDMDBCNzEwMjQKKzoxMDlBRTAwMDIxQzAwRjczMDJDQzAwODcwMDJEQzAwQjUwMDJFQTAwOEEKKzoxMDlBRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUQwMEE0MDAyOTQ4NTQKKzoxMDlCMDAwMDZBRjA4MjRDMDBBRTAwQTFDNDI5NzQwMjVDNDBBMzEwMkMKKzoxMDlCMTAwMDYxQzIwQjYwMDZDODAwODcwMDJEQzAwQjUwMDJDMDA0NTQKKzoxMDlCMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0RTYwMUEzMDIyMDQwRjUKKzoxMDlCMzAwMDI4M0MwMjBDMDA4MzQyMjBDODA4MTAwMkNEMDBCMzAwNkMKKzoxMDlCNDAwMDI4RjAwQjMwMDJDQzAxODMwNDJDQzA4MzEwMDJDODA0MUYKKzoxMDlCNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUE4MEVCMDAzOEMwMEIKKzoxMDlCNjAwMDBBOTAwMzdDMjJBMjQwMzI0ODBEQjAwQjNFMDBGRjAwNTkKKzoxMDlCNzAwMDMzRjQwRjkwMDNFQzAwOEYwMjNGQzAwRjkwMDNFQTA0MTAKKzoxMDlCODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTAwMEQ5MDIzRUMwM0MKKzoxMDlCOTAwMDBFQjYwM0VDMDBGQTIwM0VDMDRGMjQyM0FDNjBGQjAwNUQKKzoxMDlCQTAwMEE2QzAwRTkwMDNFNDAwRkIwMDNDQzEwRjkwMDNFMDAwNTAKKzoxMDlCQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRjgwMkNGMDAzM0UwODgKKzoxMDlCQzAwMDJDRjAxM0JDMDAyRTEwQjE2NDJFRjAwMjNDMDBGRjAyRkEKKzoxMDlCRDAwMDNGQzE0REVDNjNGRTAwQjcwMDNCQzAwQ0Q4MDNDMDQ0NEUKKzoxMDlCRTAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NkMyODgxODEyMkUwMjkKKzoxMDlCRjAwMDBBMzgwMjNDMDRCQUM5MzJFMDIwODQwMjJDMDBCQjAwQkYKKzoxMDlDMDAwMDJFQzAwQjlDMDJFNzgxQkIwNDIyQzAwQTk5MDJFMDAwMkYKKzoxMDlDMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1Mjg0MDg4ODAyMjg4OTUKKzoxMDlDMjAwMDI4QkM0MkFDMDBCQTAwMkE4MDA4ODQwMkFDMDBCQjAwMDkKKzoxMDlDMzAwMDJFQzAwQkIwODJFODkwQUIwMDYyQzAwOEIwMTJFMDAwMEEKKzoxMDlDNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDAwMDg5MDAyQTgwOTUKKzoxMDlDNTAwMDI4QjIwMjBDMDBCQTAwMjBDMDA4MDAwMjhDMDBCMzAwMzkKKzoxMDlDNjAwMDJDQzAwQjMwMjA0QzE0QjMwMDIwQzAwODMwMDJDMjAxQkQKKzoxMDlDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENjgwMEM4MDBCMkMwMzUKKzoxMDlDODAwMDJDQjIwM0FDMDBGQTAwM0FDMDRFQTUwM0JDMDBGRjAwQTIKKzoxMDlDOTAwMDNGQzAwOUEwMDNFOTA0RUYwMEJBQzAwQ0IwMDFDMDAxNDUKKzoxMDlDQTAwMDEwMDAwMDAwMDAwMDAwMDBBMDE5RkMwMEY1MDAzNUMwMDUKKzoxMDlDQjAwMEFGMzQwM0ZDMDBGNDAwMzlDMDBGQzIwMzdDMDBGRjAxODUKKzoxMDlDQzAwMDNGQzAwRkYwMDNGQ0EwRkYwMDNGQzAwRkYwMDNFODA1MEEKKzoxMDlDRDAwMDYwMDAwMDAwMDAwMDAwMDBDMDA1RkMwMEZGMjkzRDIwREUKKzoxMDlDRTAwMDhFQzEwMzMyNDhEQzgwMjMyNTBFRjIwMzNDQzBERjg0QTIKKzoxMDlDRjAwMDMzQzkwRkYyMDNGQzAwQ0Y4MDMzNDAwQ0YyMDMzMDAwNzUKKzoxMDlEMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUNDMEJCNjAyRTA4NTYKKzoxMDlEMTAwMDA4ODEwMjIwMDQ4ODIwMjA0ODA4RjE4MjJEQzA4MzAwOTkKKzoxMDlEMjAwMDIyRDQwOUY1MDJGQzA4OEIwMTIyNDAyOEI0MDIyMDA0NDkKKzoxMDlEMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0MyMEIzMDkyQzgyMTAKKzoxMDlENDAwMDA4MTAxNkEwMTA5MDA4Mjg0ODBBMzIwMjBDMDBCQjAwMjgKKzoxMDlENTAwMDJDQzAwQjMwMDJDQzAyOTMwMTIwMDA4QTMxMjJFMjAxOTgKKzoxMDlENjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwNEJCMDAyQzgwOTcKKzoxMDlENzAwMDA4ODYwMkEwMjBBMDAwMkE2MDBBQjAxMDJDMDBBQjBDQkMKKzoxMDlEODAwMDZFQzAwOUIwMDJDQzAwOUIwMDIyNjAwQUIwMDJGMDA0NTEKKzoxMDlEOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDE1RUMwMEJCMDAzRTM0MzUKKzoxMDlEQTAwMDA4QTAwQjgzMDBEOTAyM0FFMDJFQjAwQjJDMDBGODgwRkIKKzoxMDlEQjAwMDNFQzA0RkIwMDNFQzAwQ0E0MEIyNzIwRUIwMEJDMDA0RkMKKzoxMDlEQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkMxMEZCMDAzRjAwM0MKKzoxMDlERDAwMDBERjgxMzcwNDhERDQwMzdDMjhERjAwM0RDMDBEREM4OUMKKzoxMDlERTAwMDEzQzAwRkYwMDNGQzAwRUU0MDdGNDAwRDcwMDMzODAwRkQKKzoxMDlERjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEZCMDEzMkMwMTkKKzoxMDlFMDAwMDA0MTAwMzIwNDBFODEwM0FDMDBEQjAwM0FDMDhGODQwM0QKKzoxMDlFMTAwMEIyQzAyQ0IwMzNBNDgyREE0MEJBNDAwRkIwMDNEMDA0RjEKKzoxMDlFMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1M0MwOEJGODAyMkM4RDgKKzoxMDlFMzAwMDA4QjcwMDIzNDQ4OEQwMjJEMDA4NzA4MkZDMDBCMkUwMkEKKzoxMDlFNDAwMDAzRjQwOEY1MDIzNzA0OEJEMTIyNjA0QkZEMDJGMjAwQzcKKzoxMDlFNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIzMTBBNDQwRUEKKzoxMDlFNjAwMDA4MDAwMjQ4MDBBMDQyMkFEMDAxMzAwMjhDMDBCMzgwRDIKKzoxMDlFNzAwMDJDQzAwOTMxMDJDQzAwODkwMDIyRTgwMzM4MDJGODAwMjYKKzoxMDlFODAwMDUwMDAwMDAwMDAwMDAwMDA2MDAxMUUwMEI3ODAyNzY0NDEKKzoxMDlFOTAwMDY4NEEwMjUyMDA4QzgwMjFFMDA4NzgwMkRFMDBCNzgwMTgKKzoxMDlFQTAwMDJERTIxOTM5MDI1RTMwODU5ODIxRTQwQjc5MDJEODAwNDEKKzoxMDlFQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMwMEYzMjAzNDAwQkYKKzoxMDlFQzAwMDBDQjgwMzQ4ODBFMjIyMzhDMDBEMzAwMzhDMDBGMzAwNDgKKzoxMDlFRDAwMDNFQzAwRDMxMDNFQzAwQ0IwMDM4MDYwRjMwODNEMjAyQjgKKzoxMDlFRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMwMEZGMDAzQjAxMUUKKzoxMDlFRjAwMDBGRDAwMzkwMDBGNjAwM0ZDMDBGRjQwMUZDMDBGRjAxRkIKKzoxMDlGMDAwMDMzQzIwRUY1MTNCQzAwRUQwMDNGQzQwRkYwMDNEMDA2QzIKKzoxMDlGMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUMwMEZCMDAzQ0MwNTEKKzoxMDlGMjAwMDBFQTAwMTY0MDFEODAwMzJFMDJDQjUwMzJDMDBGMjAwMzEKKzoxMDlGMzAwMDdBQzAwREI0MDMyRDgwQzkwMjMyQzAwQ0IwMDMyQTAwRDAKKzoxMDlGNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUM4MEI3MDAyREMwODgKKzoxMDlGNTAwMDBENjAwMkQwMDE4NDAwMjFDMDA4MzAwMjFEMDBCNzAwNEUKKzoxMDlGNjAwMDIxQzgwQkY0MDMxRUMwODYwMDIxQzAwODdDMDM1MjA0RTQKKzoxMDlGNzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUVDMEI3OTAyREUwMEYKKzoxMDlGODAwMDA4NzgwNkQ2MDFCNDgyMjFFMDA4NzgwQTFFMDBCNUMwMjAKKzoxMDlGOTAwMDI5RTgwOTc4MDIzNkMxOTc4MDI4QjAwQTdBMDIzMDAwOTEKKzoxMDlGQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMEJCMDAyQ0UwQTIKKzoxMDlGQjAwMDA5MzU4MkMwQzFBMDUxMjBFNDA4MzAwMjhDMDBCQkM0MjYKKzoxMDlGQzAwMDIwQzAwQjMwMDIwNjAwOTMxOEFBQjAyQTMwMEE1MjA0QUYKKzoxMDlGRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEZBMDEzREFDQzgKKzoxMDlGRTAwMDRDRUMxMzc4MTBGNjgwQjM5MDBDQTAwMzI4MDBGRTAwMTAKKzoxMDlGRjAwMDNBODEwREEwMEYyQTgwREUwNDNCQTAwRUEwMDMzQTA0OTQKKzoxMEEwMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwMEY4MDAzRTAwOTIKKzoxMEEwMTAwMDBEODAwMkUxMDBEODQ4M0UxMjBGODAxMzYwMDBGODYwMDYKKzoxMEEwMjAwMDNFMDAwNzgwMDNBMDAyRTgwNDI2MDgwNTgwMDM5MjAwOTIKKzoxMEEwMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEY5MDQzQTQwN0QKKzoxMEEwNDAwMDBDMTIwMzI0ODJDOTAwMzY0NDBGMTAwMzI0MDBGOTAwQzcKKzoxMEEwNTAwMDM2NDAwNDkwMDMwNDAwQzkwMDEyNDAwQzkwMDMwMjA0MkYKKzoxMEEwNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5ODEyMjQwM0MKKzoxMEEwNzAwMDA4OTAxQTI0MDA4OTAwMjI2ODBCOTkwMjI0MDBCOTAwNzQKKzoxMEEwODAwMDIyNDA2ODkwMEEyNDAwODkwMEEyNDAwODkwMEEyMDAwMUIKKzoxMEEwOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEI5MTAyMkUwQTQKKzoxMEEwQTAwMDA4OTQwMDA0MDQ4QjA4MjZDMDBCOTAwMjI0MDRCOTBDMDkKKzoxMEEwQjAwMDI0NDAwQTEwMDIyNDAwMjMwMjJBNDBBODEwMDIwNjAwQUQKKzoxMEEwQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ5MEIxMjAyMjQwN0QKKzoxMEEwRDAwMDA4MTIwMjBDMTA4MTAyQTA1MDBCMTIwMjA0ODBCMTA1N0MKKzoxMEEwRTAwMDAwNDgwQTEwMDIwNEEwQTEwMDI4NEEwODEyMDAwMjAxMzgKKzoxMEEwRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEY4NTBCQTE0RTQKKzoxMEExMDAwMDBDODUwMzAxNDJDODUwMzQwMDBGODUwMzIxNDBGODAwM0MKKzoxMEExMTAwMDM2MDAwRTgwMTMyMDgwRTAwMDFBMDgwQzAwMDMyRTAzODYKKzoxMEExMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERTQ0NEY5MTAzRjQwN0EKKzoxMEExMzAwMDJGRDExM0Y0MDRGNTAwM0Y0MDBGOTEwQkU0NDBGRjI4QUEKKzoxMEExNDAwMEJFNEUwRDk2ODNENEEyREQyODM3NEEwRjkzODNFNjA2RDAKKzoxMEExNTAwMDcwMDAwMDAwMDAwMDAwMDA5ODA1RTQxMENEMDAzRjQwQjIKKzoxMEExNjAwMDBGRDAwMzM1MDI1RDAxMzE0NDBGRDAwMzI0MDBGOTAwMDQKKzoxMEExNzAwMDMyNjAwQzk4ODNFNjQwRDkwMDM2NkEwQzlFODMyNjAxMzMKKzoxMEExODAwMDYwMDAwMDAwMDAwMDAwMDAzODEwRTAwMDg4MDAyRTAwOTEKKzoxMEExOTAwMDBCODA0MjAyODA4QTAwMjIyMDg4ODAwMzIwMDhCODgyMzcKKzoxMEExQTAwMDIyMjEwODg4ODJFMjQyODhBODIyMjAwOENFMDIwRTA0REEKKzoxMEExQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMjgxMDA2ODQwNzMKKzoxMEExQzAwMDBCMTAwMjg0MDFCOTAwMjA0MDQ5MTAwQTA0MDBCNTA4QjAKKzoxMEExRDAwMDIxNDYwODUwMDJENDAwOEQyMDI1NEEwQjUwMDI0MjAxMkUKKzoxMEExRTAwMDMwMDAwMDAwMDAwMDAwMDAxODExQTQwMDg5MDQ2RTU0MjMKKzoxMEExRjAwMDBCMTAxMkE0MDFBOTAwQTI0MDE4OTAxNjI0MDBCOTAwNjcKKzoxMEEyMDAwMDIzNDAxOEQwMDJGNDAwOEQ0MDIxNEEwQkQwMDI0NjA0QUUKKzoxMEEyMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEM5MDAzQTUwRjIKKzoxMEEyMjAwMDhGOTYwQjg0MDJGMTAxMzA0ODhEOTAwMzI0MTBGOTAwQzEKKzoxMEEyMzAwMEIyNDAyQzkwMDNFNjQwRDFDMDM2NTAyRjkwMEI2ODA0RkEKKzoxMEEyNDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5MDAzRTYwM0EKKzoxMEEyNTAwMDBGOTlDMzY0MDBEOTI4M0U0MDBEOTAwM0E0MDBGOTQwMzMKKzoxMEEyNjAwMDNFNDAwRjkwMDNFNDIwRjk0MDNFNDAwQzkwMDM4QTAwRUEKKzoxMEEyNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEY4MDEzNjAwNzcKKzoxMEEyODAwMDhGODAwM0UwMDJGODA0MzIwMDBEODA0MzIwMDJDQzAwRUUKKzoxMEEyOTAwMDNGMDAwRkMwMTM5MDAyREM0MDNGMTA0Q0MwMjMwQTA0NjMKKzoxMEEyQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMEJBMDAyMjgwREQKKzoxMEEyQjAwMDBCRTgyMEY4MDA0RUMwMjNBMDA4QTAwMzY4MDA4QTAwMjUKKzoxMEEyQzAwMDJFODAxRkEwMDIyQTA2OEEwMDJFQTAwMjYwMDMwQTAwMjgKKzoxMEEyRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NkMwMEIzMDAyMEMwMTIKKzoxMEEyRTAwMDBCM0QwMkMwMDMyMzAwMjBFMDAxQjAwNjRDMDA4QjAwQjAKKzoxMEEyRjAwMDJFQzA0QjMwMDI4RTA4ODM4MDJDQzQwMDM0OEU0QTAwNUUKKzoxMEEzMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUM4MEI1ODA2MUMwNkEKKzoxMEEzMTAwMDBCNDAwMkQ0MDA4NDA4MjNDMjA4NTAwMjVFQzA4NDAxQUUKKzoxMEEzMjAwMDJEMDA4QTA4MDIxMDI0ODQwODZEMDAwQTAzMTIyODAwRjgKKzoxMEEzMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEY1ODIyMTYwMTcKKzoxMEEzNDAwMDBGNzgwM0Q2MDRBRTgwMzFFMDBENTgyMzdFMDBDNjgwMUUKKzoxMEEzNTAwMDJERTAwQjc4MDM4RTAwRDc4MjNERjAwQzdBMDM2QTAyNjEKKzoxMEEzNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEYxMDBCQUQ4OTkKKzoxMEEzNzAwMDBGODAwM0U0MTJGODAwQkU4MDBFMTAwM0VDMDBGOTAwMTkKKzoxMEEzODAwMDNFMDA1RjgwMDNFMDA4RjgwNDNDMDAwRjgwMDNDMjA2MzMKKzoxMEEzOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDA1RkUyMEZGODAzRkYwNEMKKzoxMEEzQTAwMDBGRjgwM0QyMDBFRjg0QjM2MTBDQjkwM0ZFMDBGRjgwMDUKKzoxMEEzQjAwMDMzRTAwQ0Y4MTMyMjExQ0Q5MDNGNjAwQ0U4MDMxMDAwM0QKKzoxMEEzQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEY1MDAyREMwRTYKKzoxMEEzRDAwMDBCMDAwMkQ0MDQ4NDIwMjM0MDA4NUEwMkRDMDBCNDAwOUQKKzoxMEEzRTAwMDIxMDAyOEMyMDIxRTA0ODYwNDJEODgwOEQwMDIyQTA0RjcKKzoxMEEzRjAwMDYwMDAwMDAwMDAwMDAwMDAxMDAwOUMwMEI1MDAyRDQwMkYKKzoxMEE0MDAwMDBCNzAwMkY0MjBBNzA0MjFDMDBBNTAwMkRDMDBCRTAwMzkKKzoxMEE0MTAwMDIxQzAwODcwMTIwMDAwODUwMDJENDA4ODY4MEEwNDAwRTEKKzoxMEE0MjAwMDIwMDAwMDAwMDAwMDAwMDA2MDE0Q0MwMEExMDAyRUMwM0QKKzoxMEE0MzAwMDFCMDgwNkM0MjA4MDAwMjA5ODFBMTAwMkNDMDBCMTA4MjYKKzoxMEE0NDAwMDIwMDAwODAwMDIwQzAxODJDMDJDQUMyODkwMjIxODA0QzUKKzoxMEE0NTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMEIzMDAzRTQwMjIKKzoxMEE0NjAwMDBGQkEwM0U1MDJFOTA0MzI5MEFFQjAwM0ZDMTBGQjQwRTIKKzoxMEE0NzAwMEIyMDAwQzgwMEIyQzAyODIxODNGQTAwQ0QwMDMyRTA0REIKKzoxMEE0ODAwMDYwMDAwMDAwMDAwMDAwMDA5MDAwRUMwNEZCMDEzRTQwNzIKKzoxMEE0OTAwMDBGQjY0M0U0MDBGODAwM0U4MDAxOTAwM0VDMDBGODgxMjEKKzoxMEE0QTAwMDNFRDAwREI0NTNFMDAwRjk0MDNFNDAwRkEwMDNFMDAwNjEKKzoxMEE0QjAwMDMwMDAwMDAwMDAwMDAwMDA4MDEwREMwMkNEODAzMzYwMUUKKzoxMEE0QzAwMDJDREEwM0ZDMDBFQzAwMzM0MDBGRjIwMzdDMDRGRTAwQTYKKzoxMEE0RDAwMDMyMDAwQ0M4MDMzQzAwQ0UwMDMxODAwQ0QxMDMyNDA0QjAKKzoxMEE0RTAwMDMwMDAwMDAwMDAwMDAwMDA5MTA0NkMwMDA5MDAyQTY0QTQKKzoxMEE0RjAwMDA4OEUwMkMyMTBBMDEwM0UxMDBCOTgwMkVDMDBCOTAwQUEKKzoxMEE1MDAwMDAyRDgwOEJFMjIyMDAwODkwMDIyNTAwOEEwMDIyMDQwNjQKKzoxMEE1MTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDBCMjAyMjQwRUQKKzoxMEE1MjAwMDA4QTAwMkU1NDJBQjA0MjIxODBCQjAwMjZDMDBCMzAwOTUKKzoxMEE1MzAwMDIwMDQwODAxMDIwMDA0QTg0MDIyMTAwODgwMDIyMDAwMjQKKzoxMEE1NDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwODgzMDAyODQwQzAKKzoxMEE1NTAwMDA4MDQwMkM0MDJBODAwMkMwMDBCMTIwMkNDMDBCMDAwQjgKKzoxMEE1NjAwMDIwQzA0MDMwMDIwQzAwOEIwMEE4QzAwODMwMDIwMjExNEQKKzoxMEE1NzAwMDAwMDAwMDAwMDAwMDAwMDA4MDBENkMwMEM5MDAzMzQwQTYKKzoxMEE1ODAwMDBDQjAwM0VDMDJFQjAwMzI0MDBGQjAwMzZDMDBGQTAwOTkKKzoxMEE1OTAwMDMyMDAwQzgwMDMyMDgwQzgwMDMwMDAwQzgwMDMyMDAzQjAKKzoxMEE1QTAwMDUwMDAwMDAwMDAwMDAwMDBBMDE5RkMwMEZEMDAzRjQwMkEKKzoxMEE1QjAwMDBGQzIxM0YwMDBGNDAwM0YwMDRGRDQwM0ZDMDBGNTAwN0QKKzoxMEE1QzAwMDNGQzA4RkYwMDNGQzQwRkYwMDM3QzAyRkYwMDNFODA2QzgKKzoxMEE1RDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjAwMENDMDAzMzAwNTcKKzoxMEE1RTAwMDBFRDAwQjMzMDBDQzAwMzNFMDBGQzA4MzdDMDBDRjIwQjMKKzoxMEE1RjAwMDdCMDk4Q0Y4MDNGRTUwQ0YzODNGRTEwREMyMDNGMDAwMTkKKzoxMEE2MDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTIwMDk4MDgyMDgwMjgKKzoxMEE2MTAwMDA4OTgwMjIwMDA4OEQwMjJFMDBFQjQyMjdEMTk5RjY5OUMKKzoxMEE2MjAwMDJFOTAwODMwOTIyODgxREI2NDJFRTE4ODE2QTJFMDA0ODcKKzoxMEE2MzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzgwMDkwMjQyMDAxQzAKKzoxMEE2NDAwMDA4MTAxNjAwODI4MzAxMjhDMTBCMDI4MjBDRTBBMzEwQkYKKzoxMEE2NTAwMDI4MEUxQjkyMDI4NDg0OTMyMDJFQzAwODMxMDJFMjAxNEUKKzoxMEE2NjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTgxMDk4MDAyMjgwQjMKKzoxMEE2NzAwMDA4OTAwMjAwNjA4QTEwMkFDMDBBMjAwMjZDMThCQjAwRjEKKzoxMEE2ODAwMDZFNjAyQjkwMDI0NjIwOEIwMDJFQzIwOEIxODJGMDA0MkYKKzoxMEE2OTAwMDYwMDAwMDAwMDAwMDAwMDA0MDExRTQwMkNCMDBCMjQwNjYKKzoxMEE2QTAwMDJDOTIwMzI3MDA4ODAwQkFDMDBGODgwMzJDMDBFQjA0MEIKKzoxMEE2QjAwMDNBQTBDRjJDQTNFRDAwOUIwMDNDRjAyRDhDMzNEMDA0QUUKKzoxMEE2QzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjQwNEVGMDAzRkMwOTMKKzoxMEE2RDAwMDBENTEwM0YwMDBGMTgxMzdDMDBFRjQwMzlDMTBDRjAwNDAKKzoxMEE2RTAwMDNEODAwQ0VDMDdCODA4RkYwMjFGQzQwRkM4MDNGODAwMzgKKzoxMEE2RjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwOUUwMEMzMDAzODQwRDEKKzoxMEE3MDAwMDBDOTIwM0E0ODBGQjIwM0FDMDBEOTQwMzJDNDBGQjAwNjQKKzoxMEE3MTAwMDNFMDEwRjgwMDNFNTAwRUIwMDNBQzAwRDg0MEIxMDA0RUUKKzoxMEE3MjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwODhCMDIyMkMwOTkKKzoxMEE3MzAwMDA4OTIwMzIxMDA4QjQ4MjJDMDBCQjcwMjNENDAzRjAxMjUKKzoxMEE3NDAwMDIyNzQwQjkwMDIyODA0QkYwMEIyQzAwQjg1MDIzMjAwQjUKKzoxMEE3NTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDAwMTgwMDAyODAwRUIKKzoxMEE3NjAwMDA4MkMxMjg4NDBCMDQwMDhDMDBCMTgwMjBFMDBCMzAwM0QKKzoxMEE3NzAwMDI4MjAxMTMwMDIwQzAwQjMwMDI0MDAwOTAwMDYzODAwMjQKKzoxMEE3ODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTIwMDg0ODAyMUEwODEKKzoxMEE3OTAwMDI4NjgxMjNBMDA4NDgwMjVFMDhCNTgwMjFFNDBCNzgyNTgKKzoxMEE3QTAwMDIxQTYwQjc4MDIxQTAwQjc4MDIxMjAwQjU4MDIwODAwNUUKKzoxMEE3QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDgwMEM4MjEzODA5RDcKKzoxMEE3QzAwMDBDMjgwMzgwMDFGMTAwMzhDMDBEODUwMjBDMDBGQjAwNEQKKzoxMEE3RDAwMDM4ODUwRjEwMDM4QzAwRUIxMDNDQzgwRDMwMDMxMjAyQkIKKzoxMEE3RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEOTgwMEZDMDEzRjgwQjgKKzoxMEE3RjAwMDBGNjgwM0QwNDBGQzAwM0JDMDBEQzAwM0ZDMjBGRjAwRUQKKzoxMEE4MDAwMDNCQzUwRkYwMEJCNDQwRkYxODNGMDAwRkYxMDNEMDA2MUIKKzoxMEE4MTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTQwMEVCMDBCMDQxNkIKKzoxMEE4MjAwMDBDQTAwM0UwMDRDQTA0QjBFMDBFQjAwM0VDODBDQjIwMUYKKzoxMEE4MzAwMDMyODEwQ0EwMDNFRTAwREIwMDNFMDAwRUIwMDMyQTAwQzQKKzoxMEE4NDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOTQwNDg3MDAyMUMwM0YKKzoxMEE4NTAwMDQ4NjAwMkYwMDA4NzAwMjFDMDA4NzAwMkZDQTA4MzI4MzUKKzoxMEE4NjAwMEEzODAwODYwMDJEQzAwODcyMDJEQzAwQjcwMDIxMjA0NTgKKzoxMEE4NzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUMwMkEzODAyMTYwNzYKKzoxMEE4ODAwMDA4NjgwMkQyMDA4NzgwMjFFMDI5NzgwMkRFODA4NzkwNjQKKzoxMEE4OTAwMDIxQTAxOTQ4MDJGRTAwOTc4MDJERTAwQTM4ODIzMDAwN0UKKzoxMEE4QTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMTgzODAyMEMwN0MKKzoxMEE4QjAwMDA4MjA0MkMwMzA4MzcwQTBDMDg5MzQwMkNDMDI4MzAwREIKKzoxMEE4QzAwMDYwQzAyOTAwMDJDRTAwODMwMDJDQzgwQkJDMDIxMjA0MTkKKzoxMEE4RDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTkwMEVBRTIzMjkwMTQKKzoxMEE4RTAwMDJDRTAwM0ZCMDJDRUMwMzI4MDBGRTQwM0U4MDA4QTAwQjQKKzoxMEE4RjAwMDMzODgwRDY0QzNGQTAwREEwMDNEOTAwRUUwMEIzQTA0OTEKKzoxMEE5MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwQzAyNEY4MDgzRTEyNkIKKzoxMEE5MTAwMDBGQzAwM0UwNDhGMDAwM0UwMDBFODA5M0MwMDBGODAwMzYKKzoxMEE5MjAwMDdFMDEwRTgwQzJFMDQwRjgwMDdFMDA4Rjg0MDNEMjAwREEKKzoxMEE5MzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTUwMEMxMDEzMjQ4QUUKKzoxMEE5NDAwMDBDOTgwM0U2NDBDOTAwMzI0MDBGOTAwMzY2MDBDOTAwMkUKKzoxMEE5NTAwMDE4NjEwQzkwMDM2NDIwRjkwNTNFNDAwQzkwODMwMjA0QkEKKzoxMEE5NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjYyMDg5MDAyMDUyQjIKKzoxMEE5NzAwMDI4MTBDMjI2MDJBOTAwMjI0MDBCOTAwQTI3MDBBOTAwMzUKKzoxMEE5ODAwMDIyNzAwODkwMDIyNDA4QjkwMDJFNDAwQTkwMEEyMDAwODQKKzoxMEE5OTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMjhEMDAyMzQwNzQKKzoxMEE5QTAwMDA4RDEwMjg0MjA4OTAwMjI2MDBCMTFGMjI0QjA4MTAwQkEKKzoxMEE5QjAwMDJBNDYwODkwNDI2NDA4QjkwMDJFNDAwODkyMDIwNjAwMTgKKzoxMEE5QzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MTQ4MDg1MjAyMzQ4OTcKKzoxMEE5RDAwMDA4NTIwMjg0MDg4MTAwMjA0MDBCMTIwMjA0ODBBMTIwNEEKKzoxMEE5RTAwMDI4NDkyODkwMDIwNDAwMzEyMDJFNDAwODMyMDIwMjAxM0EKKzoxMEE5RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwMEM4NTBCMjE0NTQKKzoxMEFBMDAwMDBDQzAwM0ExNDBDODAwQjIwMDA3ODUwMzIxNDBDODUwMTQKKzoxMEFBMTAwMDNBMTUwQzg1MDM2MTQwRjg1MTNFMDAyQzg1MDMyRTAzNDYKKzoxMEFBMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFEQzQ0OEY5MTAzRTQ0OEEKKzoxMEFBMzAwMDRGOTEwMzc0MDBGNTQ0M0U0MDBGRDEwM0U0NDBGOTEwRjgKKzoxMEFBNDAwMDM3NDQwRkQwMDNENDAwRjkxMDNGQzAwRkQxMDNFNjA2RkUKKzoxMEFBNTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1RjZBMEREOEMzMzc4QUYKKzoxMEFBNjAwMDBFREEwMzM1MDBDREEwMzM0MDBERjgwQjM2ODFFOTgwQjYKKzoxMEFBNzAwMDMzNzAwQzkxMDNFNDQwRjlDMDNFQzAwRkRDMDNDNjAwMDQKKzoxMEFBODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTEwNEI4NDAyMDNDRDUKKzoxMEFBOTAwMDBDODUwMjAyODQ4QTQwMjIwMDA4OEY4MjIzMDBCOEU4RDUKKzoxMEFBQTAwMDIyMjAwODg4MDJFMjAwQjhEMDJFMDAwQjhDMDJDRTA0Q0YKKzoxMEFBQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMDkxMDA2MDQ4NUMKKzoxMEFBQzAwMDRCMTAwMjA0OEE4MTQwNjA0MDQ5MTAwMjhEQTBBMTQxRDAKKzoxMEFBRDAwMDIwNTAwOTEyMjJDNDgwQjEyMDJDNDA0QjNFMDJDMjAxRkEKKzoxMEFBRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwOEI5MDRBMDQwODAKKzoxMEFBRjAwMDQ4QjAwMjI0MDA4OTAwODI0MDA4OTBBNkE0MDBCOTA0NEUKKzoxMEFCMDAwMDIyNTQyOTk1MDJFNTQwQjkwMDZFNDAwQjkyMDJDNjA0MUEKKzoxMEFCMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDA1RTQwMDkxMDAzMjQwNDkKKzoxMEFCMjAwMDBGOTAwOTI0MDA4OTkwMzI0MDBEOTQwM0E0MDBFOTAyOUIKKzoxMEFCMzAwMDcyNjAwRDk0MDNFNDAxRjkwMTNFNjAwRjkwMDNFODA0OTQKKzoxMEFCNDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQ0MEY5MDAzRTQwMTEKKzoxMEFCNTAwMDRGOTAwM0U3MTBGOTgwM0U0MDBGMTAxMzY0MDBGMTAwOUUKKzoxMEFCNjAwMEJFNDAwRTkwMDNFNjA4RjkwMTNFNjQwRjkwMDNDQTAwNTAKKzoxMEFCNzAwMDYwMDAwMDAwMDAwMDAwMDAyODAwQTAwMEY4MDAzMjA4N0IKKzoxMEFCODAwMDBDMDEwQjIwNDBDODQwMzIwMDBFODQ4MzIwMDBGODA0RTIKKzoxMEFCOTAwMDNFMDQwRjgwMDMyMTAwRTgwMDNFMTAwRjg4MDNDQTA0MjIKKzoxMEFCQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MzgwMDNFMDQyMzgwM0IKKzoxMEFCQjAwMDA4RUMxMjM5NDRBNjAwMjg4MTA4RTAwMDM4MDhCQTAwRTEKKzoxMEFCQzAwMDNGODAwQkEwMDJBODAwOEEwMjJFODAwQkUwMDJDQTAwODAKKzoxMEFCRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NDgwMDMxMDAyNEQwOUIKKzoxMEFCRTAwMDA4M0UxMkFFMDg4MUEwMkNDMDBBMzgwMDRDMDBCMzAwMDkKKzoxMEFCRjAwMDZFQzAwQTMwMDIwQzAwQTMwMDZDQzAwQjMwMDJDQTAwMDkKKzoxMEFDMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTgwMEI1MTAyNUMwOTEKKzoxMEFDMTAwMDI4NjAxMjkwMTBBNTA4MkRDMjA4NjQyMjU4MThCNzAwQTkKKzoxMEFDMjAwMDJEODAwQjc5MDJCRUMwODcwMTZEQzAwQjYwMDJFODAwNjkKKzoxMEFDMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEY1ODQzNTIwMzgKKzoxMEFDNDAwMDhDMTgwMjkyMTBDNTgwM0Q2MDBFQzgwQjVBMDg3N0YzMkQKKzoxMEFDNTAwMDNEQTAwRkY4MDMxRUIwRTc4NTNERTAwRjc4MDNFQTAyNDAKKzoxMEFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEYxMDRCQTAxNjMKKzoxMEFDNzAwMDBGQTA0MzYwMDlFMTAwMzg0MDBFQTAwM0E4MTRGQjIwOTgKKzoxMEFDODAwMDNBODAwRkI0MUI0QzgwRkIyOTNFQzAwRkIwMjNDMjA2OTQKKzoxMEFDOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkEwMENEODAzQkUwRUQKKzoxMEFDQTAwMDRFRjgwM0YyMDJENDgxM0JFMDhFOTgwNzNFNDRFRjkxQzgKKzoxMEFDQjAwMDNGRTA0RkZDMDdFRUQwQ0Y5ODMzRTQwRkY4MDNDMDAwMUQKKzoxMEFDQzAwMDcwMDAwMDAwMDAwMDAwMDBBODAxOTgwMDg1MTAyREM0NEQKKzoxMEFDRDAwMDBEMTEwMkYwMDA4NTIwMzFDNDBCN0IwMDM4NDBENzEwRTUKKzoxMEFDRTAwMDJEODAwQjcwNjJGRUUxODcxNDM5QzAwQjYwMDJFQTA0MEMKKzoxMEFDRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDEwQkM0MEE1MDAyOTQwREEKKzoxMEFEMDAwMDBCNTA4MkRDNDA4NDA0MkRDMDBCMTAwNjU4NDRBNzEwNjEKKzoxMEFEMTAwMDJEODAwQjcxMDJEQzAwODcwNDIxQzIwQjUwMDJDMDEwOTEKKzoxMEFEMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwQUExMDEyQzQwRUIKKzoxMEFEMzAwMDg5MTgwMkMxMDBBMTA4MjBDMDBCMzQwNjQwMDA5MzA1MDkKKzoxMEFENDAwMDJDMTQwQjNDODZDRTEwODMwMTI4RjEwQjE0MDJDODA0OEUKKzoxMEFENTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QTAwMEVEMDAzQUMwN0YKKzoxMEFENjAwMDA3QkM2M0VEMDA4MTQwM0VDMDBFODgwMzY0MDBFRjAwMjUKKzoxMEFENzAwMDdFNTAwRkYwMDJGRDQyQ0YwMDcyQzAxRkI0MDNFQTA0MDAKKzoxMEFEODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTgwMDk5MDAzRUUwNDQKKzoxMEFEOTAwMDRGQjQ4M0VEOTAwOTQwM0VDMDBGQTE4M0E4MDFFQjAxQTEKKzoxMEFEQTAwMDNFMDAwRkIxMTNFQzBDRkIwMDNBQzA1RjIwMjNFMDAwMjMKKzoxMEFEQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRjgwMEZEMDQzRkIwNkEKKzoxMEFEQzAwMDBENjAwMzNFMDBDRDAwMzNGMDBGRjIwMUYwMDBGRjAzRjEKKzoxMEFERDAwMDNGMDMwRkYwMDFGQzAwRkIwMjMzQzIwRkYwRTMwMDQ0MUQKKzoxMEFERTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkEwMEI5MDIyRUEwQkIKKzoxMEFERjAwMDRBQUMwMjBFODBGOUMwMzZFMTBCQTAwMjJBMDhCQjAwNjMKKzoxMEFFMDAwMDJFMjAwRUIwMDJFQzAwRUIwMDIyQzA4QkIwMDIyMDQwREUKKzoxMEFFMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDAxMjMwMEE5MDAyOEMwRUQKKzoxMEFFMjAwMDA5QjIyMjZDNDA4OTg5MkFDMDBCMTQwNjI2MDBBQjAyQTUKKzoxMEFFMzAwMDZFRTAwOUIwMDY2QzAwQjMwMjIyQzAwQkIwMDIyMDAwMjUKKzoxMEFFNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDgwMEIxMDAyQ0MwMTEKKzoxMEFFNTAwMDBBMzAwMjJDMDBCQjAwNjRDMDBCMzIwQTA4MDAzMzAwMjkKKzoxMEFFNjAwMDZDODAwMjMwNDZDQzE4QTMwMDIwQzAwQjI4MDIwMjExQ0YKKzoxMEFFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NjgwMEU5MDAzOEMxODMKKzoxMEFFODAwMDBEQjEwQjJDMDA4OTAwM0FDMDBCOTAwMzYwMDBGRjAyNEIKKzoxMEFFOTAwMDNFODAwRkYwMDNGQzgwRkYwMDMyQzA4RjgwMEIwMDAzNjgKKzoxMEFFQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDExRDgwMEZEMDQzRkMwQzkKKzoxMEFFQjAwMDJGRjIwM0ZDMTFFRjAwM0ZDMDBGRjQ0MzcwMDBGRjAwQkUKKzoxMEFFQzAwMDNGMDA0NkYwMDNGRDAwRUYwMDNGQzAwRkMwMDNFODA2NUYKKzoxMEFFRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkUwMEZGODAzREUwQTMKKzoxMEFFRTAwMDBDRjkxM0RFMDA3RjgwQjNFMDBGRkMwM0JFNDBDRjgwN0YKKzoxMEFFRjAwMDMzRjAwRkY4MDM3QzA0Q0M4MDMzQTAwQ0YwMEIzMDAxNEUKKzoxMEFGMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTAyMDg4MDAyRTIwNkIKKzoxMEFGMTAwMDA4ODIxMkUwODBBODgxMjIwMjBCODAwMjIwODBBODgwOTMKKzoxMEFGMjAwMDIyMDgwQjgwMDIyQzAyODgwNEFBMjAwOEIwMDIyMDA0MDgKKzoxMEFGMzAwMDIwMDAwMDAwMDAwMDAwMDA4ODA1RUMwMEEzMDgyQzgwMjEKKzoxMEFGNDAwMDA4MzIwMkM0MjBBMzAwMjg0MDBCOTIwMjg0MDBBOTAxMDkKKzoxMEFGNTAwMDI4QzgxQjEyODJDQzQwQTgwMDI0RTAwQTMwNDIyMjAxRkIKKzoxMEFGNjAwMDMwMDAwMDAwMDAwMDAwMDBDMDExQTg4MEE4MDIyRTQwQTAKKzoxMEFGNzAwMDY4ODAxMEM4MDBCODQwMkE5MDBCQTAwMDI4MDBBQTA4REEKKzoxMEFGODAwMDJBMDIwMzIwMDI4QzAwQTg4ODJFMjAwQUIwMDIzMDA0NzYKKzoxMEFGOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RTgwNEZBMDAzQzQwOUEKKzoxMEFGQTAwMDBDQTAwM0U4MDBFQjAwM0FDMDBGMjA1M0E4MDBFMzQwRDgKKzoxMEFGQjAwMDJBNDAwRkEwMDM2QzAwQTg4MDM0MjAxRUIwMDMxMDA0QTgKKzoxMEFGQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjQwMDlEOTEzRjgwOEYKKzoxMEFGRDAwMDBGREEyM0Y0MDBDQzIwMzcwMDA3RDAxMzc0MDBCQzAwMzQKKzoxMEFGRTAwMEI3ODAwQkQwNDM3QzAwREMwNDNCMDA2REYwMDNGODAwMUQKKzoxMEFGRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTgwMEZBODAzQTAwNDUKKzoxMEIwMDAwMDJDQTAwQjIwMDJDQjYyM0U1MDBFODgwMzIwMDBEOTEwRUEKKzoxMEIwMTAwMDNFNzA4QzgwMzNFQzgwRDg0MDNBMDIwREIwMDMxMDA0QUYKKzoxMEIwMjAwMDIwMDAwMDAwMDAwMDAwMDBDODAxMEMwMDM5ODAyMkMwOTAKKzoxMEIwMzAwMDBDOUQ4MjJDMTBEMDQwMkVBMDA4QjgwMzRFMDI4QTQwRUUKKzoxMEIwNDAwMDBFQTAwREIwMDMzRDAwRDA5MDM2MTAwQkYwMDJCMjAwMDAKKzoxMEIwNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIxMDA2MEMwQUUKKzoxMEIwNjAwMDhBMTgwMjhDMDg4MDQwMENBMDAyMzAwMkNFMDA4MjQ4NzAKKzoxMEIwNzAwMDJDODAyQjMwMDY4QzAwODEwMjIwOTAwOUIwMDIzODAwMTEKKzoxMEIwODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTIwMEI2OTBBMzMwMjQKKzoxMEIwOTAwMDA4RTgyMkIyMTQ4NzgwMkQ2MDA4NDkxMjEyNjE5NTkwNDkKKzoxMEIwQTAwMDJENjEwQTQ4MTYxRTgwOTU4MDI1MjAwQjc4MDI4ODAwQTUKKzoxMEIwQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMwMEYxMDAyODhDNEYKKzoxMEIwQzAwMDhFMTAwMzg0ODA4MDAwMkMwMjBBOUEwMkU0MDBEMDAwRDMKKzoxMEIwRDAwMDNFODAwQjkxMDM4RTgwQzIwODM4ODAwREIwMDMxMjAyQUYKKzoxMEIwRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQjAwMEY2MDAzRjQ0REEKKzoxMEIwRjAwMDBGMjExMzc4MDBGRjAwM0RDMDBGRTAwMzc4MDBFRjA0M0MKKzoxMEIxMDAwMDNGNDA4REU4MDNEQzA0RjYwMDNGMDAwRkYwODNEMDA2REIKKzoxMEIxMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTgwMEU4ODAzMjQwNjAKKzoxMEIxMjAwMDBGODgwQjI4MDA3ODAyM0U4MDBFMjgwMzI4MDBDQTgwNzIKKzoxMEIxMzAwMDMyMDAwRkEwMDNFQzAwQzk4MDMyODAwRkIwMDMyQTAwNTgKKzoxMEIxNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOEMwMDhGMDBBMTgwRkEKKzoxMEIxNTAwMDBCNzA0MjE0MDBCNzAwMkQ0MTBCNTA0MjE0MDBBNTAwQTMKKzoxMEIxNjAwMEExQzAwQjUwMDJGQzgwQTUwMDIxMDAwQkYyMDIxMjA0Q0EKKzoxMEIxNzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwQkEwMEE0ODAyOTMwNzgKKzoxMEIxODAwMDRCNDgwNjUyMDhCNDgwMkQyMDBCNDg0MjMyMDA4NDgwODAKKzoxMEIxOTAwMDIxMjAwQjQ4MTJERTQwODY4MTI5QTAwQjc4MEEzMDAwNUUKKzoxMEIxQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMDgzMDUyMEUwQ0YKKzoxMEIxQjAwMDBCMzQwMjZDMTBCMzAwMkNDMDBCMzY0QTBEMERBMzAwRUIKKzoxMEIxQzAwMDIwQzAwQjM0ODJDQzAyQTIwMDI4MDAwQjMwMDIxMjA0RjMKKzoxMEIxRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTkyMEVBNDAzMEEwN0YKKzoxMEIxRTAwMDA3QTA0MzY5NDBGQTAwM0M4MDBGQTAwMzA4NDBDQTAwNTIKKzoxMEIxRjAwMDMwQTAwRkE0MDNFODAwQ0UwMDNCOTgwRkEwMDMzQTA0NTAKKzoxMEIyMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRDIwMEZDMDgzRjAwODEKKzoxMEIyMTAwMDBCQzIwM0IwMDBGQzAwM0YwMDBGQzAwM0YwMDBGQzAwQjUKKzoxMEIyMjAwMDNGMDQwRkMwMDNFMDAwRjgwMEI2MDIwRjgwMDNEMjAwMTUKKzoxMEIyMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEQ5MDAzRTY4NjMKKzoxMEIyNDAwMDRDOTEwMUU0MDhDOTAwM0U0MDJDOTIwM0U0MDJDOUEwREQKKzoxMEIyNTAwMDNFNzAwRTkwMDNDNjQyQzkwMDNFNDAwRjEwMDMwMjA0MjgKKzoxMEIyNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDg5ODYwRTYwNDkKKzoxMEIyNzAwMDA4OTgwMkU0MDg4OTEwMkU2MDA4OTAwMkU0MDA4OTBDMDYKKzoxMEIyODAwMDJFNjAwODkwMDJFNjg4ODkwMDJFNDAwQjkwMDJBMDAwRjQKKzoxMEIyOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMDlEMTAyRjQwNDEKKzoxMEIyQTAwMDI4RDAwNkY0MDJBRDAwMkY2MDA4RDAwMkY0MDA4RDAwMTMKKzoxMEIyQjAwMDJGNDAwQUQwMDJFNDAwODkwMDJFNjAwQjkwMDIwNjAwQTUKKzoxMEIyQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MzQwMDg1MDAyRDQwMEMKKzoxMEIyRDAwMDA4NTgwMkQ0MDBBNTAyMkQ0MDA4NTAwMEQ0MDA4NTAwNzMKKzoxMEIyRTAwMDJENDAwODU0MDJDNDgwODEwMDJDNjAwQjE0MDI4MjAxOUUKKzoxMEIyRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEQ4NTIzRTAwODAKKzoxMEIzMDAwMDBDMDUwM0UxNDBFODA0M0UxNDBDODUwM0UxNDBDODAwNEQKKzoxMEIzMTAwMDNFMTQwRUMwMDNFMDAwQzAwMjNFMDA0RjgwMjMyRTAzMDcKKzoxMEIzMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQwMEY5MDEzRTQwQUMKKzoxMEIzMzAwMDRGOTAxM0U0MDBEOTAwMUU0MDBGOTAwM0M0MTBGMTAwOTkKKzoxMEIzNDAwMDFFNDAwRjkwMDNFNEUwRkQyODNGNDAwRjk0MDNFNjA2MDMKKzoxMEIzNTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1QTQwMEZEMDAzRjQwNDAKKzoxMEIzNjAwMDRENTAwMkU0MDA5NTA0MzM0MDI4RDAwM0Y0MDBGRDAwNjIKKzoxMEIzNzAwMDMzNDAwRjkxMDMzNDAwQ0Q0MDMzNDAwRjk4ODEwNjAwRDUKKzoxMEIzODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAxMEI4MDAyRTAwMkYKKzoxMEIzOTAwMDBCODAwMkUwMTBCODAwMjIwMDA4ODAwMkUwMDBCODAwMzQKKzoxMEIzQTAwMDIyMDAwQjg4MDNDMjgwODg4MDIyMDAwQjhDMDIwRTA0Q0UKKzoxMEIzQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA0QzQwMEIxMDAyQ0MwRjAKKzoxMEIzQzAwMDBCMTAwMkM0MDBCQjAwMjI0MDA4MTAwMkM0MDFCOTAwRTcKKzoxMEIzRDAwMDIwNDAxQjkwMDIwNDIyODkwMDIwNjAwQjEyODIwMjAxOEYKKzoxMEIzRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQ0NEI5MDAyRUMwMzEKKzoxMEIzRjAwMDRCOTAwMkU0MTBCOTAyMDI0MDA4OTE0MkU0MDBCOTgwODcKKzoxMEI0MDAwMDIyNDAwQjkyMDJDNDAwOTk0MDIyNDA0QjkwMTIwNjA0NDUKKzoxMEI0MTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTYwMEI5MDEzRTU4RTEKKzoxMEI0MjAwMDBEOTAwM0U2MDBEMTAwMzI2MDBDOTgwMkU2NDBGOTAwNkUKKzoxMEI0MzAwMEIyNDAwRjE4MDMyNDAwQzk4MDMyNTAwRjkwMjMyODA0MTMKKzoxMEI0NDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5MDAzRTQyNDYKKzoxMEI0NTAwMDBCOTAwM0U3MDhGOTAwQkU0ODBGOTAwM0U0MDBGOTAwRTEKKzoxMEI0NjAwMDNFNDAwRjk4MDNBNDAwRTlBMEJFNDAwRjEwMEI0QTAwMTUKKzoxMEI0NzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEQ4MDEzRTAwN0QKKzoxMEI0ODAwMDBGODA4QjIwMDBGODIwM0UwMTBGODEwM0UwMDBGODA4QjgKKzoxMEI0OTAwMDNBMDAwQzgwMDNFMDAwRDg0MDMyMDAwRjgwMTMwQTA0MDkKKzoxMEI0QTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDhBODAyRjkxNUQKKzoxMEI0QjAwMDBCRUUwMjI4MDFCRTAwMjA4MDBCQTAwMkVBODBCNjQ4RjUKKzoxMEI0QzAwMDIyODAwREEwMDJGQTAyODY0MUEzQTYwQkEwMDMwQTAwNjcKKzoxMEI0RDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDkzODAyQ0MwQjQKKzoxMEI0RTAwMDBCMzAwMjBDMTBCMzAwMjhDMDBCMzgwMkNDMDBCMzAwQTQKKzoxMEI0RjAwMDI4QzAwOTMwMDJDNjAxODM2MDIwNzAwQjMwMEE0QTAwNjAKKzoxMEI1MDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMkU4ODg1MDgyRDgwNUEKKzoxMEI1MTAwMDRCRjgwNjFDODBCNzAwMjFDMDBCNTAwMkQ0MDBCNjAwQzcKKzoxMEI1MjAwMDI5NjAwOTcwMDJEMEEwOEQwMDIxNDAwQjMyMDIyODAwNTIKKzoxMEI1MzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEQ1ODAzREUwOEIKKzoxMEI1NDAwMDhGNzgwMzFFODRCNzgyM0Q2MDBGNTkwM0RFMDBGNzgwQjkKKzoxMEI1NTAwMDI5NjAxNTc4MDNERTAwQzc4MDMxNjAwRjdDMDM2QTAyMjIKKzoxMEI1NjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUM0MEU5MDAzRTgwMjMKKzoxMEI1NzAwMDBGQTAwM0VEMzBGQjAwMzZDMTBGOTYwM0U0MDBCMzAwQ0IKKzoxMEI1ODAwMDM0NDAwRkI3ODNFQzQwMjEwMDNFNDAwRkIwMDNDMjA2QTkKKzoxMEI1OTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMEZGODEzM0UwQjUKKzoxMEI1QTAwMDBGRjkwM0RFMjBDRjgxM0ZFMDA3NzgwMzNFMDBGRjgwRTQKKzoxMEI1QjAwMDNGRTAwNEY4MTNGRTAyREU4MDMzNjAwRkY4MDMwMDAwNjIKKzoxMEI1QzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEI3MDAyMUM0MUEKKzoxMEI1RDAwMDBCNUEwMkRDNDg4NjUwMkRDMDBCMzEwMjk0NjBCNDE4MUYKKzoxMEI1RTAwMDJENDA0ODcwMDJFODAwQTUxMDIxNDAwQjcxMDIyQTA0OEEKKzoxMEI1RjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEJEMDAyMTQyMkYKKzoxMEI2MDAwMDBCNzAwMkZDMDI4NTAwMjU0MDBCNTAwMjlDMDBCNzAwMjUKKzoxMEI2MTAwMDJGNDAyODcxMDJEQzAwQTYwMDIxQzAwQjcwMDIwMDAwNDAKKzoxMEI2MjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0NkQ4MEIxMjBBMDUwMTgKKzoxMEI2MzAwMDBCQjIwNkNFMDBBMDM0MkVGMDBCMTgwMjg1MjBCMzRBQzAKKzoxMEI2NDAwMDJDNTQ4ODM4MDJDQzEwQTEwMDIwQjAwQjMwMDIwODA0MjIKKzoxMEI2NTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkU4MEYzMDgxMDU0NjAKKzoxMEI2NjAwMDBCODgxM0ZGMDBDMDgwM0U2NDBGQjQ4MzA3MDBGOUMwNEQKKzoxMEI2NzAwMDNFRjAwQ0ZDMTNGNDAwRUEwMDMyNzAwRkYwMEIyQTA0QzkKKzoxMEI2ODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEY5MDAzRTEwQTcKKzoxMEI2OTAwMDA3OTEwM0VDQzA1ODAwM0U0NDBGOTIwM0U0MDBGOTAwMDgKKzoxMEI2QTAwMDNFQzA4RkIzMDNFMDAwQkIwMEJFNDQwRkIwMDNFMDAwMTgKKzoxMEI2QjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMkNEMDQzM0UwNjcKKzoxMEI2QzAwMDBDQzAwMzNDMDhGRTAwMzM2MDJDRDAwMkI0ODBDRjAwRDUKKzoxMEI2RDAwMDNGNTIwN0YwMTNGQzAwQ0UxMDMzNDIwQ0IwMDNDMDQ0QkQKKzoxMEI2RTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMwMDg5MDAyQUIwRDYKKzoxMEI2RjAwMDA4ODgwMjJDMDBCQTAwMzY0NDA4OTAwMDI2MDBEQkMwRkYKKzoxMEI3MDAwMDJFNDAwQkIwMDJFQzAwODNDMDI4NDAwQUIwMDJFMDQwOUIKKzoxMEI3MTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDhCMDAyMjA4QjMKKzoxMEI3MjAwMDFBQTIwMjJDMTBCOTIwMjI0MDA4MzAwMjJDMDRBQTU0N0MKKzoxMEI3MzAwMDJFQzAwQkIwMTJDQzAwOEIwODIyNDAwOEIwMDJFMDAwRjMKKzoxMEI3NDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMDgzMDQyQTAwRjAKKzoxMEI3NTAwMDBBMDg4MjBDMDBCODAwNjQ0MDA4MzAwMkE0MDBCMDAwNUYKKzoxMEI3NjAwMDJDQzA4QjMwMTBDODAyOEIwMDJBNDAwQTMwMDJDMjAxNjQKKzoxMEI3NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMEM5MDAzMjAwNTUKKzoxMEI3ODAwMDFBODIwMzNDMDBGOTAwMzI0MDBDRDEwM0FDMDBFQjAwRkMKKzoxMEI3OTAwMDNFNDAwRkYwMDNFRDAwQzMwMDMyQzA4Q0IwMDNDMDAzODUKKzoxMEI3QTAwMDUwMDAwMDAwMDAwMDAwMDBBMDE5RkMwMEY1MDAzRjAwNjAKKzoxMEI3QjAwMDBEODA0QkZDMDA3QzAwM0Y0MDBGRDIwQjc0MDBERjAwN0IKKzoxMEI3QzAwMDFENDA4RkYwMDNGQ0EwRkYwMDNGODAwRkYwMDNFODA2NTAKKzoxMEI3RDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkMwMERGODQzQkUwQkEKKzoxMEI3RTAwMDBGRjgwQjNFMDBFQzgwMzNFMTBDMzAwMzNDODBDRjQ4NzcKKzoxMEI3RjAwMDM3QzAwRTQwMDNFMEMwQzc5MUIzMDQwQ0YwMDMzMDAwMjMKKzoxMEI4MDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUYwNDhCODAyMjQxRDcKKzoxMEI4MTAwMDBCQjA4MjJFMDA4ODgwQTJFMDBBQTI5MkFEODA4NzQyRkYKKzoxMEI4MjAwMDIzRDg4QUFEMDJFMEMwOEIwMDIwNEM0OEE0MDIyMDA0M0IKKzoxMEI4MzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0M1OEJCMDAyODgwQzQKKzoxMEI4NDAwMDBCQjI0MjI0MDBBODAwMkFDMDBBMTAwMjA0NjBBMzIwMDAKKzoxMEI4NTAwMDI0RDIwODAwNDI4QzgzOUIwMTIwNDkwODMzQzIyMjAxNzQKKzoxMEI4NjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwMEFCODgyMkEwRjIKKzoxMEI4NzAwMDBCQjgwMjI2MENBODAwMkFDMDBBOTIwMkE0MDBBQjA2NEMKKzoxMEI4ODAwMDIyQzAwQUIwMDJFODAwOUIwMDAyNDAwOEEwNDIzMDA0MzcKKzoxMEI4OTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMEQzODAzQUUwOUEKKzoxMEI4QTAwMDBGMTgwMTA2MDBFODMwMzg2NjBFQjgwMzJBNDBFQjAwOTYKKzoxMEI4QjAwMDM2QzEwRTk2MDNFMjgwREEwODMyODAyQ0JCMDMxMDA0RjYKKzoxMEI4QzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxOUMwMERGMDAzRkMwQUQKKzoxMEI4RDAwMDBGRDAwM0Y0MDBEQzgwMzc2MDBGRTgwM0ZBMDBERjAxQ0IKKzoxMEI4RTAwMDNGQzAwRkMwNDNFNjRDRUZBMDNGNDQwRkEwMDNGODAwNTkKKzoxMEI4RjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUM0MERCMDAzNjgwMUIKKzoxMEI5MDAwMDBDOTgwMzI2MDBGODAwM0VDMDBFMTgwMzg0MDJFMzAxRTEKKzoxMEI5MTAwMDM4QzEwRUI0MDNBQzgwQ0ExODNBRDAyQzMwMDMxMDA0REUKKzoxMEI5MjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1M0Y0MEI5ODgyRTgwQkMKKzoxMEI5MzAwMDA4QkMwMkEzMDBCMDAwMEVDMDA4QjAwNjIwMDA4RjA0QUYKKzoxMEI5NDAwMDIzQzEwOEI5MTIyRjAwODM4MDM2NDAwOEFEMDIzMjAwQUYKKzoxMEI5NTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIyMDAyQ0MwRDgKKzoxMEI5NjAwMDA5MzIwMjg0MDAzMzAwMkNCMjBBMzYxMjhDMDg5MzA1ODcKKzoxMEI5NzAwMDIwQzAwQjE4MDJFRDAwOTE4MDZBMDAwODEwMDIzODAwMDgKKzoxMEI5ODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwMEI3ODAyREUwRTQKKzoxMEI5OTAwMDA5NzgwMjk3NDBCNDgwMkZBMDA4RTgwMjBFNDA5NzgyRjEKKzoxMEI5QTAwMDIxRTA5ODY4ODIxQTE4OUQ5MDJEQTExODU4MDIwODAwNkQKKzoxMEI5QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MENDMEYzMDAzRUMwM0EKKzoxMEI5QzAwMDBEQjA0Mzg0NDBGMDAwM0M4MjBFMzgxMjhDNDRGMzMwQkEKKzoxMEI5RDAwMEJBQzExRTEwNDc4RTIyRDExMDM4MTgwQzMwODMxMjAyQzMKKzoxMEI5RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkM0MEZGMDAzRkMwMDAKKzoxMEI5RjAwMDBFRTAwM0Y0NDBGQzAwM0RDNDBGRDAwMUY0NDFFRjE4MDkKKzoxMEJBMDAwMDNGQzQxRkYwMDNGODQ4RUYxNDMzODAwRkMxMDNEMDA2ODIKKzoxMEJBMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RkM0MEZCMDAzRUMwRTQKKzoxMEJBMjAwMDBGOTgwMzI0MDBDQjAwM0U0MDBGQjAwM0E4MDBEQjI4OTIKKzoxMEJBMzAwMDNFQzQxRjkwMjNFQzAwQ0EwMDMyRTAwQzkwMDNFQTAwRTEKKzoxMEJBNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUM4MEI3MDAyREMwNkQKKzoxMEJBNTAwMDRCNTA1MjE0MDBENDAxMkQ4MDBCNjAwMkQ4MDBBNzIwNTcKKzoxMEJBNjAwMDJEQzUwQjQwMTZEQzAwODQwMDIzQzAwODQwMDJEMjA0MjAKKzoxMEJBNzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUU4MEI3ODAyREUwNDQKKzoxMEJBODAwMDBCNzgwQTk2MDA5NDgwMkQ2MDFCNzgwNkQyMDBBNzgwNjAKKzoxMEJBOTAwMDJERTAwQjc4MjJERTAwODc4MjIxRTAwODU4MDJGMDAwQkEKKzoxMEJBQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMEIzRTQyQ0MwQ0IKKzoxMEJBQjAwMDFCMjEwMjgxMDA5MDAwMkNDODBCMzkwMkNFMDBBMzAwOEMKKzoxMEJBQzAwMDJDQzAwQjMwMDJDRDAwOEIyMDIwRjAwOEIyMDJEMjA0MzMKKzoxMEJBRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEZFQTAzRjgyMzIKKzoxMEJBRTAwMDBGRTgwMzk4MzBENjAwM0ZBMDBGRTAwM0JBQzBGQTAwNzkKKzoxMEJBRjAwMDNFODAwRkVDMzNGODAyQ0UwMEIzQjgyQ0VDODNGQTA0OEUKKzoxMEJCMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAxOEY4NDAzRTAwMUYKKzoxMEJCMTAwMDBGODAwMjYwODRGODA1MkUwNDhGODA0MUUwMDA3ODAyRDcKKzoxMEJCMjAwMDNFMDAwRjgxODNFMDIwRjgwMEJFMDIwRjgwMDNEMjAwQTgKKzoxMEJCMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTYxOEY5MjAzRTQwMjgKKzoxMEJCNDAwMDBGOUMwM0U0NDBDOTAwMzI2MTBDOTAxM0M0MDhDOTAxODIKKzoxMEJCNTAwMDNFNDEwRjE4MDMyNDAwQzlBMDMyNDAwRjk4NDMwMjA0NEQKKzoxMEJCNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjUwMEIxQzAyMjQwRTkKKzoxMEJCNzAwMDBCOUMwMkU3MTA4OTAwMjg0NDA4OTQyMkU0MTA4OTAwRjUKKzoxMEJCODAwMDJFNDAwQjlGMjIyNjYwODk4MDIyNDAwQjkxMEEyMDAwQzQKKzoxMEJCOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQ4MEI5MDAyRUMwMkQKKzoxMEJCQTAwMDRCQjQwMkU0MjA4OTIwMjI0MDA4OTQwMkVDMDA4OTAwNzIKKzoxMEJCQjAwMDJFNDEwQjkwMDIwNDAwODk0MDIyNDAwQjkwMDIwNjAwQTcKKzoxMEJCQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMEIxMDQyMDQwMTAKKzoxMEJCRDAwMDhCMTAwMkU0MDU4MTAwMjg0MDI4MTIxMkM0ODI4MTIwQzMKKzoxMEJCRTAwMDJDNDgwQjEyMEEwNDgyODEwMDIwNDgwQjEyMDIwMjAxMjkKKzoxMEJCRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjhBMEZBMDIzRTE0MkEKKzoxMEJDMDAwMDBGODUwM0UwMDBDODAwMzIwMDBDODUwM0MxNDBDODUzMTMKKzoxMEJDMTAwMDNFMTQwRjgwMDMwMTQ4QzA1MEIyMTQwRjg1MDMyRTAzNTkKKzoxMEJDMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERTQwMEZEMDBCRjQwMkYKKzoxMEJDMzAwMDBGNTAxM0Q0MDJGRDAwMkZDMDBGRDEwM0Y0NDBGOTEwQjAKKzoxMEJDNDAwMDNFNDQwRkQxMDNGNDQwRkYwMEJGNDQwRkQxMDNFNjA2OEEKKzoxMEJDNTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTZBMEZEMDEzRTQ0NTEKKzoxMEJDNjAwMDBGRDEwM0Q0MDBDNTAwMzM0MTBGREIwMzI3MjBEOUUwRjcKKzoxMEJDNzAwMEIyNzAwRERBODNGNjQwQ0YxMDMyNzgyRERBMDMwNjAwNjkKKzoxMEJDODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTEwMEI4MDAyRTI4MEQKKzoxMEJDOTAwMDBCODg0MkUwMTBEODAwMjIwMDBCOEMwQTIzMDA4OEMwRDkKKzoxMEJDQTAwMDIyMjgwODg0MDJDMjgwODBBMDIyMzA0OEFBODIwRTA0ODIKKzoxMEJDQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMDAyQzQwNjYKKzoxMEJDQzAwMDhCMTIwMkM0MDA5OTAyMjg0MDhCMTYwMjg0ODE5MTMwQTUKKzoxMEJDRDAwMDIwNTgwOTEwMDJDNTAwODEwMDY0NEQwODM0MDIwMjAxOTkKKzoxMEJDRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QUMwQ0I5MDQyRTQ4Q0MKKzoxMEJDRjAwMDBCOTQwNkU0MDA5OTQwQUE0MDBCOTIyMkE0MDA4OTAwMEMKKzoxMEJEMDAwMDYwNDAwODk0MDJFNDAwODk4MEE2NTAwODkyMDIwNjA0NkMKKzoxMEJEMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5OTgzRTQ4MTMKKzoxMEJEMjAwMDBGOTgwM0U1MjBEOTAwM0E2NDBGOTQ4M0E0QzBEOTAyODgKKzoxMEJEMzAwMDcyNDA0RDkwNDJFNDgyQzk0MDM2NDAwQzkwMEIyODA0N0EKKzoxMEJENDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQUMyOEY5ODgzRTQwODcKKzoxMEJENTAwMDBGOTkxM0U3MDBGOUMwMzY2MDBGOTAwMzY2MDBGMTAwRjkKKzoxMEJENjAwMDdFNDAwRjk5MDdFNDYwRjkwMDM4NDAwRjk4MDNDQTAwM0QKKzoxMEJENzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEY4MTAzMjAwNTEKKzoxMEJEODAwMDBGODIwQjIxMDBFODAwMzYwNDBDODYwM0UxMDBEODAwODYKKzoxMEJEOTAwMDMyMDAwRjgwMDM2MTAwQzgwMDMyMDAwRjAwMDMwQTA0NjQKKzoxMEJEQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgyMEJFMDAyMjgwOUUKKzoxMEJEQjAwMDI4RUMwMjE5MDQ4MjAwMDM4MDBERTQ4MkU4MDA4QTAxNjUKKzoxMEJEQzAwMEFBODA4QkVEODIzQjgwOEU5MDM2ODAwQkUwMDM0QTAwODgKKzoxMEJERDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NDIwMEIzODAyMEMwQTEKKzoxMEJERTAwMDZCMzQxNjQwQzA4MzEwMjQ3Mjg4QjAwMkVDMDA4MzAwQ0MKKzoxMEJERjAwMDI0QzAwQjA0MDI2RjA5OUIwMDI0QzAwQjMwMDIwQTAwMTAKKzoxMEJFMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTQwMEI3ODAyM0U0RUYKKzoxMEJFMTAwMDI4Nzg4Mjc0MTQ4RjAwNjFFMDA5NTAxMkRDMDQ4NzIyQjQKKzoxMEJFMjAwMDI1QzgxQjc4MDIxNDAwOTQ0MEE1QzAwQjYwMjI2ODAwNEUKKzoxMEJFMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MTIyMEI3ODBCMUUwMTgKKzoxMEJFNDAwMDhGRjgwMzEyMDJFNzgwMzVFMDBDNjgwNkNGQzJDRkIwNEUKKzoxMEJFNTAwMDI1RjQwRjU4MDM1QTAyRDU4MDc1RkE0RkY4MDMyQTAyQzkKKzoxMEJFNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQTU5MEYzMDAzREMwODgKKzoxMEJFNzAwMDRGQjAxM0E4MDRGQjAwM0NDMDBGODA0M0VDODBFQjYwODQKKzoxMEJFODAwMDNBQzkwRjMwMDNFQzAwRTkwMDNFQzgwRkEwMDNDMjA2MTgKKzoxMEJFOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RjYwMEVFODAzRkUwQkEKKzoxMEJFQTAwMDBEODkwM0QyNDBFNTgxMzlFMDNDRjkwN0ZFMDBDRjg4RDcKKzoxMEJFQjAwMDNGRTAwRkU4MDNGMjA4Q0U4MDMzRTAwQ0Y4MDMwMDAwMDcKKzoxMEJFQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOTQ0NEM2MDAyRkMwQkMKKzoxMEJFRDAwMDA4NTgwMkQwQzQ4NTI0MjE5MDA4NTQxMkRDODIwNzAwM0YKKzoxMEJFRTAwMDJEQzAwQjcwMDZENDAwOEU0ODIxQzAwQTYwMDIyQTA0QkYKKzoxMEJFRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEE3NDAyREMwNzIKKzoxMEJGMDAwMDA4NDIwMkQwMDBBRDAwMjlDMDA4NzAyMkRDMjg4NzAwNUEKKzoxMEJGMTAwMDJEQzAwQjQwMDI5ODAwOTcwMEEwQzQwODcwMDIwMDAwREEKKzoxMEJGMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwODkzMDAyQ0UwNEEKKzoxMEJGMzAwMDA4M0MyMkMxMDA4MTAwMjA4MDg4MTUwMkNFMzA4MzAwOTkKKzoxMEJGNDAwMDJDQzAwQjNDMDJDQzA0OTNDMDIwRjQ0QTBDODIwODA0QTEKKzoxMEJGNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QTAwMEUzQzAxRkUwQjIKKzoxMEJGNjAwMDZDMTA4M0UwMDRFQjAwM0E1MjRDQjQwM0ZFMDJDRjAwQTUKKzoxMEJGNzAwMDNGQzAwRjg0NDNFMTAyRDhDMjMzQzAwQzg0MEIyQTA0QjMKKzoxMEJGODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTkwMEVCMTAzRUM0RUIKKzoxMEJGOTAwMDBFOTQwM0U0MDBGQjE4M0VDMjBGQjYwM0VDMDBGQjAxNTUKKzoxMEJGQTAwMDNFQzAwRjM1MDNDNDI4RUE0MjNFQzAwRjgxMDNFMDAwQzMKKzoxMEJGQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkM0MEZGMDAzM0MwMTIKKzoxMEJGQzAwMDBDQzBBMzMwMjhDREEwMzNDMDBDRTgwMzBDMDBFRjA1NTMKKzoxMEJGRDAwMDNEQzAwQ0NBODMzQzAwQ0QwODNGQzIwQ0EwMDNDMDQ0NDYKKzoxMEJGRTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NjcwMEJCODAyMEMwMUEKKzoxMEJGRjAwMDA4QUEwMjA4MDBBMTAxMzREMTA4QTQxMjJDMDA4QjAwNjkKKzoxMEMwMDAwMDZFQzA4OEIyMDIyQzA4ODk4MDJFQzAwQUE4MDNBMDQwMDYKKzoxMEMwMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMEJBODBBMkMwQzMKKzoxMEMwMjAwMDA4QTgwQUEwMDA4QjAwQTJDMDQ4MTEwMkFDMDQ4QjAwMzMKKzoxMEMwMzAwMDJFQzAwMDgwMTIyQTA4OEIxNDJDQzAwODg4MDJFMDAwNTEKKzoxMEMwNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMEIyMDAyMkMwMDQKKzoxMEMwNTAwMDA4QjIxMjgwMDBBQjAxMjRDMDA4MDAwMjBDMDQ4MzAwNjcKKzoxMEMwNjAwMDJDQzAwODMwMDIwNzAwODIwMDI0QzAwODA4MDI4MjAxQTgKKzoxMEMwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMEZCMDAzMkMwNUEKKzoxMEMwODAwMDBDQTIwM0EwMDBDOTAwMzJDMDI0OTQwMzNDMDJDRjAwREMKKzoxMEMwOTAwMDJGQzAwNDgwMEIwOTAyQ0IwMTNGQzAyQ0EwMDNDMDAzQkEKKzoxMEMwQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDE5REMwMEZEMDIzRkMwQUQKKzoxMEMwQjAwMDRGRTQxMzcwMDBGRDAwM0ZDMDBGQzI4M0ZDMDBGRjAwN0YKKzoxMEMwQzAwMDNGQzAwRkYwMDNGQzAwRkYwMDNGQzAwRkMwMDNBODA2RjUKKzoxMEMwRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkMyMEVGMzAzRjA0QUQKKzoxMEMwRTAwMDZDODgwMzNBNDJFNDkxM0YwRDBENDgwMzNDQzBGRjAyQzcKKzoxMEMwRjAwMDMzNDQwQ0Y0MDNGQzgyREYzMDMzNjAwREYxMDMzMDAwNzUKKzoxMEMxMDAwMDcwMDAwMDAwMDAwMDAwMDBBMDEwRUQwMDhCNzAyRTE4RTEKKzoxMEMxMTAwMDg4MjI0QTJDODJFQTI2MkUwQzBCQjg0MjNEODBCRjkwMjIKKzoxMEMxMjAwMDJBNTQyOEI0MDJDRDAwREI0MDJBNEE0ODMwMDJBMDA0MzkKKzoxMEMxMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0NCMEEzMDA2QzEwQTcKKzoxMEMxNDAwMDA5MDA4MjIwODJBMDIwMkM4ODRCODAwMDBDNDBCMzAxODMKKzoxMEMxNTAwMDIwNDgwQjM2MDI4Q0UwODM2NDI0NDAyODMyMDIyMjAxRkUKKzoxMEMxNjAwMDcwMDAwMDAwMDAwMDAwMDBFMDExQUMwMDhCMDAyRTAwMDkKKzoxMEMxNzAwMDA5ODA4MEE2MDBCQTExMkU4ODBCQjAwMDJDMDBCQjAyRUIKKzoxMEMxODAwMDAyNDAwOUIwMDJFQzAwOEIwMDJDQzgwOEI4ODJCMDA0NTEKKzoxMEMxOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMEVCMDAzRTkyNDMKKzoxMEMxQTAwMDBEODAwMzBBMjBFOTAwM0U1MDQ1ODAwMTJDMDRGMzAwNzUKKzoxMEMxQjAwMDkwNjAwOUIwMDNFQzAwOEIwMjI2NTA4REJDMDMxMDA0ODQKKzoxMEMxQzAwMDcwMDAwMDAwMDAwMDAwMDBDMDAxQkMwMEZGMDIzRjgwQzIKKzoxMEMxRDAwMDBFRjkwMjdDMjJBRjAwM0Y2MDAzQzAwQkZDMTBGRjAwOTEKKzoxMEMxRTAwMDNGNEE0RUYwMDNGQzAwRjcwMDJCNjAwRjcwMDNGODAwOEQKKzoxMEMxRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEZCMDBCMDAwMzgKKzoxMEMyMDAwMDBGODIwQkE5MDBDOTAwMzJEMjBGQTA4M0FDMDBDQjEwNjMKKzoxMEMyMTAwMDNFNDAwQ0IwMDNFQzAwREIwMDMyNTAyQzk1MDMxMDA0QzAKKzoxMEMyMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1M0MwNEJGMDIyMjgwN0UKKzoxMEMyMzAwMDBCOTgwMDI5MDBDQjQwMjJDMDBCMjQwMjNDMDg4RjUwRjEKKzoxMEMyNDAwMDJFNTAwREYwMDJGRDQyOEY1ODIyRTA0OEI1MDIzMjAwMTgKKzoxMEMyNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NkMwMEIzMDAyNDQwMzYKKzoxMEMyNjAwMDRCOTQwMDQ5MDA5MDgwMDQzMDA5MDAwRTRDMDA4MzgwRkMKKzoxMEMyNzAwMDJDQzAwOTMwMjI2RTQyODM4MDIwNDgwODM4MDIzODAwRTIKKzoxMEMyODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwMEI3ODA2NTIwNjMKKzoxMEMyOTAwMDBCNzg4MjdBMDg4Q0MwMjVBMzRCNzgwMjVFMDQ4Nzg0RDEKKzoxMEMyQTAwMDJENjE4OTc4MDJERTA0ODc4MEU5NjIwODc4MDIwODAwM0YKKzoxMEMyQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMwMEZCMDAzNDQ4NkIKKzoxMEMyQzAwMDBGM0IwMzQ4MDA5MzQ4MzQ1MDBEMDAwMzZDMDBDMzEwMkIKKzoxMEMyRDAwMDFDQzIwNTMwMDNDQzQwQ0IwMDMyNDAwQzIwMDMxMjAyQkMKKzoxMEMyRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMyMEZGMDEwMzQwRDIKKzoxMEMyRjAwMDBGRjAyMzFDMDBGRjAwM0I4MDBGQjAyMzNDMDJGRjUwRDcKKzoxMEMzMDAwMDNEQzQwRkYxMDNFQzAwRUYwMEI3QzAwRkUxMDNEMDA2MEUKKzoxMEMzMTAwMDYwMDAwMDAwMDAwMDAwMDA4ODA1RUMwMEZCMDIzRUUwMjkKKzoxMEMzMjAwMDBDODAwMzQ4MDJDODgxMzIwMDBGOTA0MkVDQTBGQjEwNDEKKzoxMEMzMzAwMDNFRTAwQ0IxMDNFQzQwRkIxMDMyNDAxRkYwMDMyQTAwM0EKKzoxMEMzNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMEI3MjQyRDgwMDAKKzoxMEMzNTAwMDA4NzA0MkQ4MTA4QzAyMjE0MDBCNTAwMkREMDBFNzIwMEIKKzoxMEMzNjAwMDJGNDAwODcwMDJEQzA1QjcwMDIxQzAwQkYwMDIxMjA0NTgKKzoxMEMzNzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMEI3OTAyRjQwNDkKKzoxMEMzODAwMDBBNjgwMjdBMDA5NzgwMjFFMDBCNzgwMkRFMDBCNzgwMEQKKzoxMEMzOTAwMDJERTAwODc4MDZERTAwQjdBMDIxNjAwQjc4NDIzMDAwNUYKKzoxMEMzQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMEIzMDAyQ0MwQTYKKzoxMEMzQjAwMDBBMzQwMkM4MDA4MzRBMjBGODBCMzEwMkNDMDBBMzAwRTMKKzoxMEMzQzAwMDJDQzAwODMwMDJDQzAwQjMwMDIwQjIwQjIwNDIxMjA0NzMKKzoxMEMzRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEJBMDAzRjg4MDcKKzoxMEMzRTAwMDJFRTA0MzU5ODhERTAwMzNCMDBGNkMwM0U4MDBGQTAwRkEKKzoxMEMzRjAwMDNFODAyQ0EwMDNFODA0RkEwMDIzQjgwRkUwOEIzQTA0MzcKKzoxMEM0MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwNEY4MDEzRTAwNjkKKzoxMEM0MTAwMDA5ODIyMUUwMDBGODQwQkUxNDBGODQ4MUUwMDBFODAwQUEKKzoxMEM0MjAwMDNFMDAxRjgwMDNFMDAwRjgwMEJFMDAwRjg4MDNEMjAwMkEKKzoxMEM0MzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEUxMDAzMjQwN0QKKzoxMEM0NDAwMDBDOTA0M0U0MjBEOTAwM0M0NDA4OTAwMzI0MDBGOTAxRjcKKzoxMEM0NTAwMDNFNDgwRjEwNDMyNTAwQzkwMEIyNDAwQzkwMDMwMjA0NkYKKzoxMEM0NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5MDBBMDQwMUIKKzoxMEM0NzAwMDA4OTgwMkU2MDhBOTYwMkU0OTA4OTQwMjI0MDBCOTAwMzEKKzoxMEM0ODAwMDJFNzAwQjkwMDIyNjAyODkwMEEwNDAwQTkwMEEyMDAwMUMKKzoxMEM0OTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEI5MDAyMjQwMzAKKzoxMEM0QTAwMDA4OTgwNEU2MDA5OTgwMkU0MDBBQjEwMjI0MDBCOTAwRTEKKzoxMEM0QjAwMDBFNDAwQjkwMEEwNDAwODEwMTIyQzAwODEwMDIwNjAwMDEKKzoxMEM0QzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4MEIxMjAyMjQ4NjEKKzoxMEM0RDAwMDA4MTgwNkM0MDBBMTAwMkM0ODJBMzAwMjA0ODBCMTIyQUEKKzoxMEM0RTAwMDJDNDgwQjEyMDIwNTgwODE2MDIyNTAwQTE0MDIwMjAxQkUKKzoxMEM0RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEY4NTAzMjE0NDgKKzoxMEM1MDAwMDBDODUwM0UxNDBEODUwM0UxNDBFODAwQjIxNDBGQTAwMDgKKzoxMEM1MTAwMDNFOTQwRjg1MDMyMDAwQzAwMDMyMDAwQzgwMDMyRTAzRTAKKzoxMEM1MjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERTQ0MUY5MTAzRDQ1NTYKKzoxMEM1MzAwMDBGRDAwM0Y0MDBGRjAwM0Y0NTBERDAwM0U0NDBGOTEwOTUKKzoxMEM1NDAwMDNGNDQwRjkxMDNFNDQyRjkxMDNGNDAwRkQ0MDNFNjA2NDUKKzoxMEM1NTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTQwMEY5MDAzRTQwRjMKKzoxMEM1NjAwMDBDRDAwM0Y0MDg4RDAyM0Y0MDBGRDAwM0U0MDBDRDAwNEYKKzoxMEM1NzAwMDMzNDAwQzkwMDMyNDAwRjkwMDMyNDA0Qzk4MjMwNjAwMEQKKzoxMEM1ODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAwMEU4MDAyRTAwRkQKKzoxMEM1OTAwMDQ4ODAwMkU4MDBEMDAwMkU4MDBCODAxMkUwMDI4ODAwNjQKKzoxMEM1QTAwMEEyMDAwQTgwMTIyMjAwQjg4MTIyMjgwOENGMDIwRTA0QkQKKzoxMEM1QjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMDAyQzQwNUQKKzoxMEM1QzAwMDI4MTAwMkM0MDA4MTAwMkM0MDBCMTAwMkM0MDA5MTAwMEUKKzoxMEM1RDAwMDI2NDAwOTEwMDI1NEEwQjUyQ0E1NDIwODUwODIwMjAxNDEKKzoxMEM1RTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwMEE5MDAyRTUwRTMKKzoxMEM1RjAwMDU4OTAwMkU0ODA5QjAwMkU0NThCOTIwMkU0MDA5OTAwNDMKKzoxMEM2MDAwMDI2NDQwQjkwMDI2NDA4QjUwMDI1NEEwODUxMDIwNjA0MkUKKzoxMEM2MTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5MDAzRTU0OTYKKzoxMEM2MjAwMDBDOTA0M0M0MDBDOTkwM0U3MDBGOTgwM0U0MDBEOTAwRjkKKzoxMEM2MzAwMDM0NjA0RDkwMEE2NDAwRjkwMDM2NDAyQzlFMDMyODA0QjMKKzoxMEM2NDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5MDAzQzQwMzgKKzoxMEM2NTAwMDBGOUMwM0U2MzBGOTAwM0U2MjBGOTAwM0U0MDBFOTAwMEUKKzoxMEM2NjAwMDNBNDA0RTkwMDNBNDAwNzkwQzNBNDAwRjkwMUJDQTAwNDgKKzoxMEM2NzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEY4MDAzRTAwNEMKKzoxMEM2ODAwMDBDODExM0UxMDhDODQ4MzIwMDNDODAwM0MwMDBGMDEwNjAKKzoxMEM2OTAwMDNFMDYwQzgwMDNGMDA4Q0MwMDMzMDQwQ0MwMDMwQTA0RUYKKzoxMEM2QTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMEJBMDAyRTgwQUQKKzoxMEM2QjAwMDA4RUM0MkZBMjA4RTAwMjNBMDA4RTg0MkU4MDBCRTgwODEKKzoxMEM2QzAwMDJGODAwOEEwMDJFODAwREEwMDIyODA0OEUwMDIwQTAwNzkKKzoxMEM2RDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMEIzMDAyQ0MwMDIKKzoxMEM2RTAwMDA5MzQ4MkM5MDA4MzgwMjBGMDA4MzA4MkNDMDBCMzgwRjYKKzoxMEM2RjAwMDJDRjAwOEIwMDJDMTIwODAwMEEwMzIwODAwMDIwQTAwMUQKKzoxMEM3MDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUNDMEI3MDEyRkM4QUQKKzoxMEM3MTAwMDg5NTAwMkQ4MDI4N0M0MjFFMjQ4NzA4MkRDMDBCNzAwNDkKKzoxMEM3MjAwMDJDNDAwODcyMDJDRTAwOTcwODIzQzAwODcwMDIyODAwMkYKKzoxMEM3MzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEY3RTEzREU4RUUKKzoxMEM3NDAwMDJENjgwM0YyMDBDNzgwQjBFMDA4NjgwM0RGODBGNjgwNDAKKzoxMEM3NTAwMDNERTA4QzdFMDNEQTAwQ0M4MDMxMjAwQ0M4MEIyQTAyMkQKKzoxMEM3NjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwOEZCMDAzQ0MwRjkKKzoxMEM3NzAwMDBFODAwM0UwMDhGOTAwM0U0MDBGQjAwMkVDMDBGQTAwMjIKKzoxMEM3ODAwMDNFNDAyRkIwMDNFNDAwRkIwMDNDQzAyRkIwMDNDMjA2QzQKKzoxMEM3OTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMEZGOTI3RkVBM0MKKzoxMEM3QTAwMDBDRjgwM0ZFMDBDQ0EwM0YyMDBERjkwMzNFMDBDRjgwMjMKKzoxMEM3QjAwMDMzNjAwRkY4MDNGNjAwRUY4NDMzRTAyQ0M4MDMwMDAwNjkKKzoxMEM3QzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEI3MDAyRkM4RjYKKzoxMEM3RDAwMDA4NTQwMkQ4MDBENjA0MkQwMTA4NjkwMjFDMDA4NTAwMDcKKzoxMEM3RTAwMDIxNDMwQjcwMDM5QUMwOEMwMEEzMDIwOEYxMDIyQTA0QjMKKzoxMEM3RjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEI3MDEyRENDOEMKKzoxMEM4MDAwMDA4NzAwMkQ0MDA5NDI4MkRDMjA4QzIwMjVDMDA4NjAwODEKKzoxMEM4MTAwMDIxODAwQjcxMDJEQzAwQTcxMDIxQzAwODQ4MDI0MDAwRjMKKzoxMEM4MjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwOEIzMDAyQ0YwMTEKKzoxMEM4MzAwMDA4MDUwMkMwMjA5MDgwMkUwMDA4MDA4MjRDMDI4MDAwNzMKKzoxMEM4NDAwMEEwNjEwQjMwMDJBMDAwODAwMEEwMzA4OEIxMEE0ODA0MkIKKzoxMEM4NTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMEZGMDAyREM4M0IKKzoxMEM4NjAwMDBDM0QwM0U0MDBEQjAyM0VGMDJDOTA0QjdDMDBDMTAwNDkKKzoxMEM4NzAwMDMyMjA0RkYwMTNFMDAwRTgwMTMyMDA4Q0FDMDM2QTA0NzAKKzoxMEM4ODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEZCMDQzRUMyREQKKzoxMEM4OTAwMDRGQjAwM0UwMDRGQTQwM0VDMjRFOTgyM0FDMTBGODAwQkIKKzoxMEM4QTAwMDNFNTAwN0IwMTNBQzAwRkIwMDNFQzIwRjkyMDNBMDAwNDUKKzoxMEM4QjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwREMwMENGMDAzRkMwOEQKKzoxMEM4QzAwMDBDQzgyMzM2ODJDRjgwM0Y4MDBDRTAwM0VDMDBGOTIwQjcKKzoxMEM4RDAwMDMzQzAwRUYwMDNGODEwREMwMDMzMDA0Q0U4MjEwMDQ0QjQKKzoxMEM4RTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMwMEFCMDAyRUMwOEUKKzoxMEM4RjAwMDRBOEQ0MjIxMDA4QjQyMkVEMjA4QjAwM0VDMDBCODg4NEEKKzoxMEM5MDAwMDM0NjIwREIwMDJFNDAwOEIwMDIyQzAwODkwMEEyMDQwN0YKKzoxMEM5MTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDhCMDAyRUMwREQKKzoxMEM5MjAwMDA4QTAwMjBEMDA4OTEwMkUwODI4OTIwMkVDMDRCQjAwMUEKKzoxMEM5MzAwMDIyQTAwOEIwMDI2NDAyQjMwMjIwQzAwOEEyMDJBMDAwMzQKKzoxMEM5NDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMEEzMDAyRUMwRkUKKzoxMEM5NTAwMDBBOTAyMjBDMTA4MDAwMkMwMDE4MDI4MkNDMDBCMDAwM0IKKzoxMEM5NjAwMDI2NDAwOTMwMDJDODIwODAwMDIwMDAwODEwMDY4MjAxRkQKKzoxMEM5NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMENCMDAyRUMwODUKKzoxMEM5ODAwMDBDQTEwMjI0MDA4ODAwM0MwMDBDODAwM0VDMDBGQjAwOUEKKzoxMEM5OTAwMDMyODAwRUIwMDNDQzgwREIwMDMyQzAwQ0EwMDM4MDAzRDkKKzoxMEM5QTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZGMDAzRkMwODAKKzoxMEM5QjAwMDRGQzIxM0Q0MTBGQzAwM0YwMDBGMDAwM0JDMDBGQzAwNkEKKzoxMEM5QzAwMDNGNDAwRkYwMjNFMDEyRkMwMUJGMDAwRkQwMDM2ODAyQ0MKKzoxMEM5RDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkMwMEM3ODAzM0MwRUMKKzoxMEM5RTAwMDhCQjQwM0IwQzBDRjJFMUYwQzRGQzMwMzMwODBGRjAxQTgKKzoxMEM5RjAwMDNGMDgwRkYwMDA3QzAwRkYyMTMzRTQwQ0UwMDMzMDAwMUYKKzoxMENBMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUUwMDhCODIyM0YwMTgKKzoxMENBMTAwMDBCQjUxMjBEODg4OEMwMEU5ODBCODYwMjIxMDBCQkMwOTIKKzoxMENBMjAwMDJFRTQ0QkY3ODMyRjQ0QkY5MDIyQzg0OEE2ODIyMDA0RUYKKzoxMENBMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0MwOThBMDAyMDUwNkEKKzoxMENBNDAwMDRCQjIwQTgwQ0M4MzAxMEM4QzBCMjMwQTA0NjBCMzE0MTQKKzoxMENBNTAwMDI0NDA0QjMwMDJDQzEwQjMwMDIwQzhFOTExMDY2MjAxMUIKKzoxMENBNjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwMThBODBBMjQ0RTQKKzoxMENBNzAwMDBCQjAwMkExMDQ4ODQwMkVBMDBCMjAwMjI4MjBCQjQwNEUKKzoxMENBODAwMDJFNDAwQkIwMDIyQzA4QkIwMDIyQzAwOUIwMDI3MDA0N0IKKzoxMENBOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMEMzODMzMkUwOUQKKzoxMENBQTAwMDhGMDAwM0EwMDJDQkM0M0UyODA3OEIwMzIxMDBGOUMwRUUKKzoxMENBQjAwMDNFMTAwRkIwMDNFQzAwN0IwMDMyQzAwREEwMDM1MDA0MDkKKzoxMENBQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxOUMwMkZGMDAzRkUwNTkKKzoxMENBRDAwMDBGRjQ0MzVFODBGQzk0M0YwMDBGQzAyQkYyNTBGRDIxMDkKKzoxMENBRTAwMDdFODQ4RkYwMDM2QzBDRkYwMDNGQzAwRTYyMDNCODAwMjEKKzoxMENBRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEVCMDAzMjQwN0QKKzoxMENCMDAwMDJDODAwMzY5MDBDQjMwQjIwMDRGQjM0M0U1MDBDQjQwMkIKKzoxMENCMTAwMDcyMTgyQ0IwMDNFQzI4QzMyMTNBQzEwRjk0MDMxMDA0RkYKKzoxMENCMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1M0MwMDhCMjAyMjUwQkYKKzoxMENCMzAwMDA4QjAwMjI4MDA4OEMwMkEwMDhCQjQwMkU4MDBEQjAwOUQKKzoxMENCNDAwMDYyMzAwOEYwMDJGQzAwOEY4MDIyQzAwQjk1NDczMjAwNTMKKzoxMENCNTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIxMDAyMEMyRDEKKzoxMENCNjAwMDQ4MzAwMjQ5ODA4MzQyNjAxMjBCMzAwMkM4MDA4MjAyQzIKKzoxMENCNzAwMDJDMzAwOUIwMDJDRjAxODM1MDJBQzAwQjIwMDJCODAwMkMKKzoxMENCODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwMDlEODBBMEUwNzkKKzoxMENCOTAwMDA4NzkyMjVFNjA4NzkwMjlBMDBCNzgwMkM2MDA5MjgxRjYKKzoxMENCQTAwMDA1RTAwOTc4MDJERTQwODc4MDIxRTAwQjI5MDIwODAwQjkKKzoxMENCQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEM0MEYyMDAzMEMwQjcKKzoxMENCQzAwMDA4M0EwMzQ0MDRDMzE0MzBDMDBGMjIwM0NDODBDMjAwQ0YKKzoxMENCRDAwMEE0RDIwRDMwMTNDQzIwQzMwMDM4QzQ0RjA0NDMxMjAyM0EKKzoxMENCRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEOUMwMEVFMDAzRkUwM0YKKzoxMENCRjAwMDBGNzAwM0I0MDJGNDEwM0ZDMDhGQTAwM0ZDMDA3RTAwNEUKKzoxMENDMDAwMDNCQzAwRUYwODNFQzAwRjcwMDNGQzAwRkMwMDNEMDA2MUUKKzoxMENDMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RkMwMEY5MDAzRUMwMTQKKzoxMENDMjAwMDBGQTAwM0FBMTJDQjAxMzI4MDBGQjAxMzI4MTRGOTgwOTEKKzoxMENDMzAwMDNBNDAwM0I0MDNFQzQyQ0IxODNFQzAwRkIwMDMyQTAwQzUKKzoxMENDNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUQwMEI1MDAyREM0RDgKKzoxMENDNTAwMDBCNzA0QjdDMDA4NDAwMjE4MDBCNzAwMjk0MTBCMjAwOUEKKzoxMENDNjAwMDI5QzAwQjcyODJEQzAwODcyMDJEQzEwRTcwMDIxMjA0RDUKKzoxMENDNzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMEI3ODAyREUwQjIKKzoxMENDODAwMDBCNjgwMjlFMDA4MzgwMjFFMDVCMzgwMjFFMDBCNEMwNjYKKzoxMENDOTAwMDI1RTAwOTc4MzJDRTAwOTc4MDJERTAwQjVDNEUzMDAwMDUKKzoxMENDQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMEIzNDQyQ0MwNTkKKzoxMENDQjAwMDBCM0MwMkNDNDA5MzA4MjBFMDBCMzAwMjhDMTBCM0MwMzgKKzoxMENDQzAwMDI4RDgxQjMwMDJDQzA4OTMwMTZDQzAwQUI4ODIxMjA0MjkKKzoxMENDRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEY2MTAzRTgwQkIKKzoxMENDRTAwMDRCRUQ4M0I4MDBDRUU0QjNBMzBGRTAwMzM4MDBGRTAwQTEKKzoxMENDRjAwMDNCODAwREEwMDJFODAwREEwMDNFODAwRkU4MDIzQTA0MTMKKzoxMENEMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAxMEY4NDAzRTAwMTUKKzoxMENEMTAwMDBGODAxMzYwMDBFMDAwM0UwMDQzMDgwM0UwMDBGODA4QzUKKzoxMENEMjAwMDNBMDAwRjgwMDNFMDAwRTg0MDNFMDAwRTgwMjNEMjAwNkUKKzoxMENEMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwQzQwMEQ5QzBCRTQwNTAKKzoxMENENDAwMDBGOTAwM0U2MDBGOTAwMzI0MDAxOUEwMzI0MDBGOTAwMzUKKzoxMENENTAwMDNFNDAwRjkwMDNDNDQwMDkxMDBFNDAwRjlBMDMwMjA0OTYKKzoxMENENjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwNDg5MDRBMjYwMTgKKzoxMENENzAwMDhCOUQ4MEE2MDBCOTgwMjI0MDQ4OTgwMjI0MDBCOTAwMEIKKzoxMENEODAwMDJFNDA4QjkwMDJFNDk0ODk2MDJFNDAwQjk0MEIyMDAwN0YKKzoxMENEOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMDk5MDhBRTQ4QUIKKzoxMENEQTAwMDRCMTAwMkU1ODFCOTEwMjA0NDFCOTQwMjI0MTBCOTAwRjUKKzoxMENEQjAwMDZFNjAwQjkwMDJFNDAwODkwMDJFNDAwQjk0MDIwNjAwODYKKzoxMENEQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4MDg5MDBBMDY4MDIKKzoxMENERDAwMDBCMTIwMjg0ODlCMTIwMjA0ODFBMTIxMjA0ODBCMTIyNTkKKzoxMENERTAwMDBDNDgwQjEyMDJDNDgxQTEyMDJDNDAwQjEyMDIwMjAxM0MKKzoxMENERjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwMEQ4MDBCRTAwNzgKKzoxMENFMDAwMDBGMDUwQkUxNDBGODAwMzIxNDBGODUwMzIxNDBGODAwQjQKKzoxMENFMTAwMDJFODAwRjg1MTNFMDAyQzgwMDNFMTQwRjA1MDEyRTAzN0IKKzoxMENFMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERTQ0MEZEMDBCRjQ0RDkKKzoxMENFMzAwMDBGRDEwM0Y0NDA3RDEwQkY0NDQ1RjEyQkY0NDBGRDEwQTkKKzoxMENFNDAwMDNGNDQwRjkxMDNFNDQwRDkxMDNFNDAwRkQxMDNBNjA2QTIKKzoxMENFNTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjYwMEZEMDAxRjYyRDEKKzoxMENFNjAwMDBGRDg4MjM2MDBCREEwM0I2ODBDREM4MzI2QzhEOUEwNTEKKzoxMENFNzAwMDMzNjAwRDk5ODM1NjIwRDVBODJFNDQwQ0Q4ODM4NjA0QTAKKzoxMENFODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTE0OEI4MDAyRTAwREIKKzoxMENFOTAwMDBCMEE4MjIyMjBCODUwMjJCQTA4OEEyMjIyODA4ODAwRjcKKzoxMENFQTAwMDIyMDEwODBDMDIyMDAwODgwMDJFMjg4ODg4MDJDRTA0NjcKKzoxMENFQjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMDAyQzQwNTQKKzoxMENFQzAwMDFCMTAwQTg0NDBCMTAwMjg1ODBBMzIwMjA1MDA5OTQwMUMKKzoxMENFRDAwMDIwNjUwOTEwNDJDNDAwOTEwMDJDNDAwQTMwODJDMjAxMzIKKzoxMENFRTAwMDcwMDAwMDAwMDAwMDAwMDAxODExQTQwMEI5MDAyRTQwREUKKzoxMENFRjAwMDFCOTAwMkE1ODBCOTEwMjI0ODA4MTA0MjA0MTAwOTAwQjYKKzoxMENGMDAwMDIyNDAwODkwMDJFNDAwOUIwMDJDNDAwQTk0MjJDNjA0QjAKKzoxMENGMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5MjAzRTQwODEKKzoxMENGMjAwMDBGOTAxM0E3MTBGOTYwQkE1MDJFOUMwQTI1ODREMUYwRjcKKzoxMENGMzAwMEIyNjAwRDkwMDNFNDAwRDkwMDNFNDAwRTkwMDNBODAwQkIKKzoxMENGNDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwQ0Y5OTAzRTZBNjcKKzoxMENGNTAwMDhGOTAyMzY2MDBGMTA4M0M0MDBGOUM0M0U0NDBGOTgwMjkKKzoxMENGNjAwMDNBNDQwRjkwMDMyNDA0RTkwMjNFNDAyRDkxMTNDQTAwNzUKKzoxMENGNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEU4MjAzRTAxMzIKKzoxMENGODAwMDBDMDAwM0ExMjBFODUwMzIxMDJDOEMwMzIxMDBFODAwOTMKKzoxMENGOTAwMDMyMDIwRjAwMTMyMDg4QzgwODMyMDAwRjhDMDNDQTAwMjkKKzoxMENGQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgyMDhFRTMyRjkwQkMKKzoxMENGQjAwMDBBRTAwNjNCMDBFRTA0MjM5MDA4RTAwMjI4MDg4QTAyRkIKKzoxMENGQzAwMDc1OTA4QkEwNDE1ODkwOEU4MDJBODEwQkUwMDM4QTEwQzcKKzoxMENGRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEUwMEEzMDA2QzYwMjcKKzoxMENGRTAwMDA4MzgxQThFNDBBMDgwMjBDQzA5MzAwMjBDMDVBMzA0MUEKKzoxMENGRjAwMDI4QzQwQjMwMDIwRDAxODNDMDIwQzAwQjMwMDJDQTAwRDAKKzoxMEQwMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUUwODg3MDAyRDYyRjMKKzoxMEQwMTAwMDBCNzA5MjFDMDhBMDAwNjFDMDA5NjAwNjFDODBBNzAwNkMKKzoxMEQwMjAwMDIxQzAwQjcyMDI1ODAxODc4ODI5QzAwQjYwMTJBODAwMkEKKzoxMEQwMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEU2ODAzRDYwREYKKzoxMEQwNDAwMDBDNzg0Mjk2MDBFNDgwQTM2MDBENzgwMzNGMDBFMzgwRjMKKzoxMEQwNTAwMDIxRTAwRjdCMDMxNjA4Qzc4MDMxRTI0Rjc4NDNFQTAyRDQKKzoxMEQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEOEMwMUY4MDAzQzQwOUEKKzoxMEQwNzAwMDBFQjAwMkVDMDBGODAxM0U0MDRFMzAzM0VEMjBEQjAxRjMKKzoxMEQwODAwMEJFQzAwRkI0MDNFQzAwRkIwMDNFRDgwRkEwMDNDMjA2RTUKKzoxMEQwOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMEM3ODQyMzYwNUYKKzoxMEQwQTAwMDBDNzgwQkJFMDBGRDgwM0ZFMDBGRUIwMzNFMDBDRjgwMEQKKzoxMEQwQjAwMDNCMjUwQ0Y4ODM3RTQwQ0Q4MDMzRTIwQkY5MDMwMDAwNjIKKzoxMEQwQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMjg3MDAxNTQ4QjUKKzoxMEQwRDAwMDA4NzAwMjE0MjBCNjAwMzU5QTQ5QzgwMzlDODRBNzAwNDIKKzoxMEQwRTAwMDM5RDAwQTcwMDIxQTA4QTQwMDIxQzAwOTYxNDIyQTA0M0EKKzoxMEQwRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMDg3MDAyMTQwNEMKKzoxMEQxMDAwMDA4NzEwMjk0MDBCNTAwMkQ0MDBCRjEyMjVDMDIwNzA4NjMKKzoxMEQxMTAwMDJDNTAwODcwMDI1MDAwODcwMDJEQzQwQjUwNDIwMDAwQjQKKzoxMEQxMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwMDgzMDIyNDQwRjYKKzoxMEQxMzAwMDE4M0QwQTAxMDBCMDU4MjQyMDA5MzAwMjhGNDA4M0UwRDYKKzoxMEQxNDAwMDJDQzEwQTMwNDIwODAwQjMwMTZDQzAwOTA4MTYwODA0NUIKKzoxMEQxNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1OEMwMDhCMDAzMjQwNTkKKzoxMEQxNjAwMDBDMjUwM0E4NDhGODgxM0U4MDBGODA2MzdDMDBDQjgwQUIKKzoxMEQxNzAwMDNBQzAwQ0YwMDM2QzAwQ0EwMkJGQzAwRjk4OEIyQTA0OUYKKzoxMEQxODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEY5MDAzRTUwNEMKKzoxMEQxOTAwMDJGQTQwQkM4MDBGMDQwM0VEMDBGQTAzM0VDMjBGQjA0QkUKKzoxMEQxQTAwMDdBRTAwRkIwMDNFRDA4RTkwMzMyQzAwRDkwMDNFMDAwMTAKKzoxMEQxQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRUM0MEVFMDAzRUMwMTYKKzoxMEQxQzAwMDBDREEwMzcwMDRDQzAyQjFBMDBFRjAyM0VDMDBGRjAwRDcKKzoxMEQxRDAwMDM3MjBDREIwNzNFQzg4RkI4MDNGQzAwRjMwMDMwMDQ0OTQKKzoxMEQxRTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkUwMDg4ODAyQ0UxMDcKKzoxMEQxRjAwMDA4OTQwQUE5MDI4ODQwMjJEMDA4Qjk0MkVDMDRCQjAwNzYKKzoxMEQyMDAwMDJDRDQwREIwMDJFRDIwQkJEMDJFQzAwQkIwMDJBMDQwM0MKKzoxMEQyMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MjQwMEFCODAyRUYwMEMKKzoxMEQyMjAwMDI5QTA4MjZEMDA4ODA4MjIwNDA4OTA0MkVDMDBCQjAwMEYKKzoxMEQyMzAwMDJBODEwOEIwMDJFNDA5QkEwNDJFQzE0Qjk4ODIyMDAwNkEKKzoxMEQyNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMDgzMDAyQ0MwMUYKKzoxMEQyNTAwMDBBMjEwMjg0MTA4MjAwRTAwMDE4MEExMkNDMDBCMzAwRjgKKzoxMEQyNjAwMDBDQzAwOTMwMDJDQzkwQjAwMDJDQzAwQjEwMDI4MjAxMUYKKzoxMEQyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENjQwMEVCMDAzRTAwMTQKKzoxMEQyODAwMDJDQjQwMzY0MDg4ODAwQjIwMDBDQjI0M0ZDMDBGQjAwMUQKKzoxMEQyOTAwMDU2MDAwQ0YwMDFFNDAwRkIwMDNGQzAwRjgwMEIwMDAzQzAKKzoxMEQyQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERjQwMEZGMDAzRjQwRkYKKzoxMEQyQjAwMDJERjA2MUYwMDBGNDAwMjcwMTBEQjExMUZDMDBGRjAyMTgKKzoxMEQyQzAwMDA3QzAwRkYwMDNFQzQwRkYwMDNGQzAwRkMwMDM2ODA2MkIKKzoxMEQyRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjYwMEVGOTAzRDRDMUIKKzoxMEQyRTAwMDJDQzAxM0Y0MDhGRDIwMzc0QzhFODI4Mzc0ODREQ0MyN0EKKzoxMEQyRjAwMDNGRDgwREYyMDNFQ0MwRkY4MTNGMDAwQ0Y4MDNGMDAwQjMKKzoxMEQzMDAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTYwMDhCMjQyRTVDRkUKKzoxMEQzMTAwMDA4OEQwMkZGNDhCOTkwMkY1NDBCODQ4MjNFNDBBMDgwQjQKKzoxMEQzMjAwMDJFQzQwQUZDNDJFRDgwQjk4MDJFNjAwQTk4MTJFMDA0RjcKKzoxMEQzMzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1RTQwMUEzMDAyODQ4MzgKKzoxMEQzNDAwMDBBMDA0MkM0MDBCMTAwMkM0OTBCMEE0MjA0QTI5MTIxRjgKKzoxMEQzNTAwMDJDQzkwODMxMDI4Q0MxQTMwMDJDNDAwODE4MDJBMjAxN0MKKzoxMEQzNjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTAyMDhCODIyRTQ0MzkKKzoxMEQzNzAwMDU4ODAwMkU0MDBCQjEwMkU0MDBCQTExMjBDMDE4OTEwNTIKKzoxMEQzODAwMDJFQzAwQUIwMDJFQzAxQjg4MDJFRTIwQUExMDJGMDA0MUQKKzoxMEQzOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUI0MEVCNDAzRTYwRTQKKzoxMEQzQTAwMDBFODczM0U0MDBCOUExMzZDMDBFQTgwQjI2MDBEQUMwMDAKKzoxMEQzQjAwMDNFQzA4REIwMDNFQzAwRkI4NTNFRTEwOEI4MDM5MDA1NEMKKzoxMEQzQzAwMDIwMDAwMDAwMDAwMDAwMDBFMDAxQjgwMEZGMDIyRjYwMTQKKzoxMEQzRDAwMDAzRTg4M0ZDMTBGRDgwMUY0MDFGRDAxM0JFNDBFRTA0MDUKKzoxMEQzRTAwMDNGQzAwRkYwNDNGQzA4RkQwMDNDQzAwRkQwMTFGODAwMTcKKzoxMEQzRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTQwMERCMDBCMjQwMEMKKzoxMEQ0MDAwMDBFOTQwMzI0MDBEOTAwQkFDMDBDMjAwM0U0OTBGQjAwNjIKKzoxMEQ0MTAwMDNBQzAwQ0IwMDNFQzAxRkEwMDNFRDAyQzk4MDM5MDA0MDMKKzoxMEQ0MjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MDMwMDhCMDAyMjQ4MTcKKzoxMEQ0MzAwMDA4ODQyMjJDMDBCOTAwMjJDMDA4QTAwMkVEMDA4QkEwQjUKKzoxMEQ0NDAwMDIxQzAwOEYwMDJGQzAwQjk4MDJFQzAwOEEwMDIzMjAwMDIKKzoxMEQ0NTAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDUyMDkzMDAyMkY4OTUKKzoxMEQ0NjAwMDBCMzAwQTg0NDBCMjAwMjA0MDA4MTAwMkM0MDA4MDgwQzMKKzoxMEQ0NzAwMDI4QzAyODM5MDI0QzAwQjEwMDJDQzAwODMwMDJCODAwODYKKzoxMEQ0ODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMzYwMDlGODAyMTYwNTUKKzoxMEQ0OTAwMDA5MzgwMjlFMDBCMkMwMjA2MDQ4NDgxMkQ2QzY4NkQwMjUKKzoxMEQ0QTAwMDIxRTAwODc4MDBERTgwQjc4MjJERTAwOEY4MDIwODAwNEQKKzoxMEQ0QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMyMEQzMTAzMEM4RDUKKzoxMEQ0QzAwMDBGMzAwMzg0MDBGMTAwMzA0MDI0MTkwM0U0QzBFMDQwMzEKKzoxMEQ0RDAwMDNBQzAwQzMyMDNDRTgwQjEyODNDQzAwQzMwMTM5MjAyMEIKKzoxMEQ0RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEOUMwMEU2MDA3RkMwMUUKKzoxMEQ0RjAwMDBFRjAyMzc0NDBGRjEwM0Y0MDRGRDAwM0ZDRDJDRTA0MDcKKzoxMEQ1MDAwMDNGQzAwRkY0MDNGQzAwRkUwMDNGQzAwRjcxMDNEMDEyQjgKKzoxMEQ1MTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUUwMENCMDAxNkMwNkYKKzoxMEQ1MjAwMDBEODAwMzI3MjBDQjAwM0VDMjBBQjA1M0U0MjhDMTgxRkUKKzoxMEQ1MzAwMDMyQzEwRUI5MDMyQzAwRjE4MDM1RTAwQ0I4MDMyQTA0ODcKKzoxMEQ1NDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMjg3MTAyRDQwNzAKKzoxMEQ1NTAwMDA4NzAwMzVDMDBBNzAwMkQ0MDI4NzAwMkQ0MDQ4NzA0RTMKKzoxMEQ1NjAwMEExRDAwQjcyMDIxRDAwRjcwMDIxQzAwRDUwMDIxMjA0NjEKKzoxMEQ1NzAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMDg1ODAyNUUwRTMKKzoxMEQ1ODAwMDA5NzgwMjM3MDM4NzgwMkZFMDA4NzgxMkM2MTA4RDgwNTMKKzoxMEQ1OTAwMDI1RTgwQjM4MDIxRTgwQkM4NDI1RTAwODU4MDI3MDAwODQKKzoxMEQ1QTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0Q4MDgzODgyQ0MwQkIKKzoxMEQ1QjAwMDA4M0MwMjRFMDFBM0QyMkVDNDA4QjEwMkNDMDA4MzgwRTUKKzoxMEQ1QzAwMDI0QzEwQjMwMDIwQzAwQjM0MEEwRDIwOTMwMTI1MjAwMkIKKzoxMEQ1RDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QkEwMENBQzAzNjgwMjQKKzoxMEQ1RTAwMDBENjcxMzI4MDBDRTAwM0VBMDBDRUQwM0U4MDBDRUUwNEUKKzoxMEQ1RjAwMDM2ODAxRUEwMEIyODA0RkUwMEI3QjIwQ0UwMEI3QTAwQTgKKzoxMEQ2MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTA0MEY4MTAyRTEwMEMKKzoxMEQ2MTAwMDBGODAwM0UwMDFEODBBM0UwMDBGODAwM0MwMDJGODA4MjMKKzoxMEQ2MjAwMDNBMDAwRjgwMDNFMDEwRTgyMEJFMDAwRjgwMTM5MjAwNDQKKzoxMEQ2MzAwMDIwMDAwMDAwMDAwMDAwMDAwODEwRTUwMEZCMDAzRTQwNTQKKzoxMEQ2NDAwMDBDOTEwMzI2MDA2MTgwMzI0MDBDOTAwMzI0MDBDOTAwMzUKKzoxMEQ2NTAwMDFFNDAwQzlDMDNFNDAxRjkwMDNFNDAwRjkwMDNDMjAwMDEKKzoxMEQ2NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjcwMEI5MDAyQzQwN0EKKzoxMEQ2NzAwMDAwOUMwMkE2MDA3OTAwMjI0MDI4OTAwMjI0MDA4OTAwMjQKKzoxMEQ2ODAwMDJDNDQwODk4MDJFNDAwQjk4MDJFNDAwQjkwMDJFMDAxN0YKKzoxMEQ2OTAwMDAwMDAwMDAwMDAwMDAwMDAxODAxMjQwMEJCMDAyNjUwMUMKKzoxMEQ2QTAwMDI4OTA4MjI0ODQ5OTIwMjI0MDQ5OTAwMjI0MDA4OTAwRjUKKzoxMEQ2QjAwMDJFNDAwODkwMDJFNDAwQjk2MDJFNDAwQjkwMDJDNjA0OTAKKzoxMEQ2QzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDYwMEIxMDAyRTQ4RTEKKzoxMEQ2RDAwMDA4MTIwMjg0ODBCMTIwQTA0ODA5MTIwQTA0ODA4MTAwNDcKKzoxMEQ2RTAwMDJDNDgyODEyNDJDNDg4MzEwMDJDNDAwQjE4MDJDMjAxNzkKKzoxMEQ2RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwMEY4NTAzNjE0NzMKKzoxMEQ3MDAwMDBDODAwMzIwMDBFODAwMzIxNDBDODUwMzIxNDBDODUwMkYKKzoxMEQ3MTAwMDNFMTQwQzgwMDNFMTQwMzgwMDNFMDA4RjgwMDNFRTAzOEUKKzoxMEQ3MjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERDQwMEZCMDQzRDQ0QTAKKzoxMEQ3MzAwMDBGNTEyM0Q0NDhFRDEwM0Q0NDRFRDEyM0Y0NDJGRDAwNTcKKzoxMEQ3NDAwMDNFNDQ4RjkxMDNFNDU4RkQwMDNGNTAwRjUwMDNFNjA2MUUKKzoxMEQ3NTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjQwMEY5MDAzRDQwRDIKKzoxMEQ3NjAwMDBDRDAwM0Y0MDBERDAyM0U0MDBDOTAwM0U0NDBDOTEwRUQKKzoxMEQ3NzAwMDM3NDAwN0QwMDcyNDAwRTUwMDJGNkEwRjcwMDMwNjAwMkEKKzoxMEQ3ODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAwMEI4MDAzQTAwMEYKKzoxMEQ3OTAwMDgwODAwMkUwMDA4ODAwMkUwMDBBODA1M0EyODAyQ0EwMjYKKzoxMEQ3QTAwMDIyMDAwQjgwMEEyMDAwQjgwMDJFMTAwOTgwMDMwRTA0MEUKKzoxMEQ3QjAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMDA2QzQwMEIKKzoxMEQ3QzAwMDJBMTAwMjg0MDE4MTgwMkU0MDA5MTAwMkY0MDA4RDA0ODkKKzoxMEQ3RDAwMDIwNDAwQjEwMDI4NDAwQjEwMDJDNDAwQjk4MDI0MjAxNDMKKzoxMEQ3RTAwMDcwMDAwMDAwMDAwMDAwMDAxODExQTQyMEI5MDAyQTQwQjkKKzoxMEQ3RjAwMDg4QjQwMkU2MDFBOTIwMkU0ODBBOTAwMEE0NDBBRDQwNUEKKzoxMEQ4MDAwMDIyNDAwQjkwMTJBNDA0QjkwMTJFNDEwQjkwMDIwNjA0OTEKKzoxMEQ4MTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5QzAzRTYwQjgKKzoxMEQ4MjAwMDBDOTQxM0E2MDJEOTQyMUM2MDBDOUUwMUM2MDRDMTAwRDAKKzoxMEQ4MzAwMEIyNDAxRjkwMDJBNDAwRTkwODNFNjg0Rjk4MEI2ODA0QUMKKzoxMEQ4NDAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTY0MEY5MjAzODcwOTgKKzoxMEQ4NTAwMDBGOTEwM0U0MDBEOTgwM0U0MDBGOUMxM0E0MDBGOTAwMEYKKzoxMEQ4NjAwMDNFNDAwRjEwMDM2NDEwRjkwQTNFNTAwRDlBMDNDQTAwOUYKKzoxMEQ4NzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTEwMEQ4MDQzRTAwNTUKKzoxMEQ4ODAwMDBDODExM0MwMDJEODIwM0UwMDJEODQwM0UwMDBDQzA4OTgKKzoxMEQ4OTAwMDNBMDAwRjgwNDNFMDAwRjg0MTMyMDAwNzgxOEIwQTA0MTAKKzoxMEQ4QTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1M0E2MDhBMDAyRkE4MzAKKzoxMEQ4QjAwMDBBRTAyMkU4MDI3RTQ4MkU4MDA4QTA0MkU4MDQ4RTAwOUEKKzoxMEQ4QzAwMDIzQTgwQkE4ODJFODAwRUUwMEEyODA0QjYwMDIwQTAwQTkKKzoxMEQ4RDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDkzMDA2Q0MwRDAKKzoxMEQ4RTAwMDA4MzAwMkNDMDAxMzgxMkNDMDA4MzAwMkNFNDA4MjQwQTgKKzoxMEQ4RjAwMDI4RTAwQjM4MDJDQzAwQjMxMDI0QzA4QjM4MDIwQTAwOTkKKzoxMEQ5MDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUUwMDg3MjAyRkMwNzIKKzoxMEQ5MTAwMDBBNzAwMkRDMEFCNjAwMkNDODg4NzIwNkQ4MDA4NjAwOUQKKzoxMEQ5MjAwMDIxQzAwQjcwMDJEQzg0QUY4MEE1QzAwQkQwMDIyODAwQTAKKzoxMEQ5MzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEQ3ODAzREEwQTUKKzoxMEQ5NDAwMDFDNzgxM0Q2MDJENzgwM0RFQzA4N0UyM0ZFMDBDRTgwRTMKKzoxMEQ5NTAwMDM5NjAwRjc4MDNERjAwRjY4MDc1RTAwRjc4MDMyQTAyNDQKKzoxMEQ5NjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEOEMwMEZCMTAzRTgwM0QKKzoxMEQ5NzAwMDFGQTAyMUNDMDBGQTAwM0VDMDBFQjAwM0U4MDJGQTAwNUUKKzoxMEQ5ODAwMDNFNDAwRkIwMTNFQzAwRUEwMTNBQzAwRjkwMDNDMjA2MEMKKzoxMEQ5OTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkMwMEZGODAzRjYwMDgKKzoxMEQ5QTAwMDA4OTkwNzdFMDBERDgwM0ZFMjBDRjgwM0Y2MDJERjgwNzUKKzoxMEQ5QjAwMEIzRTAwQ0Y4MDMzRTQxQ0M4MDMzRTQwRkY4MDNDMDAwMjEKKzoxMEQ5QzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUM0MEI3MDAyREMwQUUKKzoxMEQ5RDAwMDBENUEyMkRDODA3NTAwMkRDMDA4NzEwMkYwMjA4NzAwRUUKKzoxMEQ5RTAwMDIxQzAwQTcwMDIxQzAwRDQyODIxQzAwQjcyMDJFQTA0NzQKKzoxMEQ5RjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUM0MEI3MDAyRDAwMDcKKzoxMERBMDAwMDA4NzIyMkY0MDA4NzAwMkRDMjA4NzAwMkQ0MDA4NzgwQkIKKzoxMERBMTAwMDI1NDAwOTMwMDI1QzAxQUQwMDI5RDA0QjcwMDJDMDAwRTYKKzoxMERBMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwMEJCQzgyQ0EwODcKKzoxMERBMzAwMDA5MjAwMkNFMDBBMzAwMkNFMEE4M0Q0MkMyMDA4QjgwNEEKKzoxMERBNDAwMDI0NDAwQjMwMEE2QzA4QTM0MEE4RTAwQjM0MDJDODA0NDEKKzoxMERBNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUQwMEZGNDgzQzI4ODEKKzoxMERBNjAwMDBDQTkyMzZDODA4QjAwM0ZDMDBDRkMwM0VDMDBEODgwMTkKKzoxMERBNzAwMDM0NDAwRDMwMDM3QzAyQTM0MDM4NjgwRjI0MDNFQTA0Q0QKKzoxMERBODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUQ4OEZCMDAzRTUwQjgKKzoxMERBOTAwMDBGQTEwM0VDMDQzQUMwM0VDMDBGQjA4M0U4MDJGODEwQjcKKzoxMERBQTAwMDNBNDEwRTkwMDNBQzAwOUIwOEI2NDAwRjgxMDNFMDAwQTIKKzoxMERBQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMEZGMDBCMzIwNTcKKzoxMERBQzAwMDBDNTAxMzFDMDlDRDgzMzNDMDgzNzAwMDNDMDBEQzEwNjQKKzoxMERBRDAwMDMyNjAwRUYxNDMyQzAwQ0UwNDNCNzAwQ0YwODMwMDQ0MDYKKzoxMERBRTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0Njc4MEJCMDE2MjIxNUIKKzoxMERBRjAwMDhBODkyMDJDMDA4MEUwMjJDMDBCQjAwM0Q4MTA4QzA0NEYKKzoxMERCMDAwMDIyNDAwNTkwMDJBQzAwRDg4MDM2NDAwQTkwMDIyMDQwQTYKKzoxMERCMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MjYwMEJCMDAyMjA2NjcKKzoxMERCMjAwMDA4ODAwMjJFMDA4ODIwMjJDMDA5QjAwMkE0MDA5OTAwQkIKKzoxMERCMzAwMDYyQzQwOEIwMDYyQzAwODg4MDIyNDEwOEEwMDIyMDAwQTAKKzoxMERCNDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMEIzMDAyMDQwNkEKKzoxMERCNTAwMDBBMDA4MjBDMDA4MDAwMjBDMDBCMzAyMkEwMDA4MTAwNEYKKzoxMERCNjAwMEEwQzAwOTMwMDI4QzAwOTAwMDI0NDAwQTI4MDIwMjAxNjMKKzoxMERCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENjAwMEZCMDIyMDAwMUIKKzoxMERCODAwMDJDOTIwMzJDMDI4ODAwMzFDMDBCQjUwMkE0MDBEMTA0RjIKKzoxMERCOTAwMDMyNDAwRTkwMDMyQzQwQzkwMDNBNDA4Q0EwMDMwMDAzOTEKKzoxMERCQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERjQwMEZGMDAyRjAwNDYKKzoxMERCQjAwMDBGQzAwM0RDMDBGQzAwM0ZDMTBGRjA0M0YwMDBGRDAwOEMKKzoxMERCQzAwMDNGNDA0RkQwMDNGQzAwRjUwMDNGNDAwRkUwMDNFODA2NjQKKzoxMERCRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RDg4MENDMDBCNzA0MzEKKzoxMERCRTAwMDRFRTEwMzNDMjBERjEwMzE4MDA2RjAwMzdGMDBGRkMwRDAKKzoxMERCRjAwMDNCQzAwRUYyMDM1RTAwRUYxMDMzRDAyQ0YyMDMzMDAwNzYKKzoxMERDMDAwMDcwMDAwMDAwMDAwMDAwMDBDMDEwRTkwMDg4QzYyMDVDMjEKKzoxMERDMTAwMDA4QTQ1NzY1MDA4RjUyMkFGMDA5RkMwMjA0MDBCQjAwREIKKzoxMERDMjAwMDJERDkwOTc0ODM2NDI4ODM0NDIyODQ4ODA2ODIzMDA0QjEKKzoxMERDMzAwMDMwMDAwMDAwMDAwMDAwMDBDODA1QzkwMDgwMTAyMDA4NjYKKzoxMERDNDAwMDA4MzExMjA0QjJBMzAwMjA4NDFCMzQwMjBDODBCMzIwREMKKzoxMERDNTAwMDJDQzcwOTM2MDI4QzgwOTM0MEFDQzgwODMxMjgzMjAxQTkKKzoxMERDNjAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTkwMDg4MDBBMjUwNEMKKzoxMERDNzAwMDA4MzUwMjI0MDA4QjA0MkVDMTA5QjAwMjI0OTRCQjAwOTUKKzoxMERDODAwMDJFQzAwQkIwMDJDQzYwOEIwMDJFODAwODgwMDAzMDA0QzgKKzoxMERDOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDE1RTcwMkNCMThCMjgwMTEKKzoxMERDQTAwMDJDQUMwQTJFMDhFQjAwMzIxMjRFQjAwMzJCODBGQjAwODYKKzoxMERDQjAwMDNBQzAwQUIwMDNBQjA4RUIwNDJFNDgwQ0I4ODMwMDA0NEEKKzoxMERDQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjY4MEZGODAzOUNBNEIKKzoxMERDRDAwMDBERTgwM0Q2NDBFNzA0M0I2NjRFNzAwM0I4MDBGRjAxMzEKKzoxMERDRTAwMDNGQzA2Q0YwMDM3MDA2RTcwMDMxMDQwRkMxNDNGODAwMzkKKzoxMERDRjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwODUwMENCNDAzMjkwMjIKKzoxMEREMDAwMDJGQjAwQjY0ODBGQjA4QkExMDBEQjBBNzJEMDBGQjA0RTgKKzoxMEREMTAwMDNFQzA4RUIwMDM2RDAwREIwMTMyNDA4QzMzMDM5MDA0QjMKKzoxMEREMjAwMDIwMDAwMDAwMDAwMDAwMDBDMDA1MjQwMDgzRTBBMkQwMTUKKzoxMEREMzAwMDQwQjAwMjI1MDRCRjgwQTA1MDA4RjgwMjIwMDA4QjAyRUEKKzoxMERENDAwMDJGRDAwOEYwMDIyNDAwOEY4MDM2MDEwODg0NDIzNjAwNkMKKzoxMERENTAwMDQwMDAwMDAwMDAwMDAwMDBFODA1NDQwMDgzNDgyMEM0QTMKKzoxMERENjAwMDA5MDAwMjQ2MDBCMzAxQTg5MDE5MzAxMjhDMDBBMzA0RTgKKzoxMERENzAwMDJFRTIwQUIwMDIwQzAwODM0OTI4QzAwOTNDMDIzODAwOTgKKzoxMEREODAwMDUwMDAwMDAwMDAwMDAwMDBGMDAxMzYwNDgzODAyMUUxMTMKKzoxMEREOTAwMDA4MzgxMjFFMjhCMzk4MjFBMDE5Mzg4Mjk2MDA4NzgzNkMKKzoxMEREQTAwMDJERTIwODc4MjIzNjhDODc4MDJERTAwOTc5MDIzRTAwMkEKKzoxMEREQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDQwMEMzMzAzMEM4RTQKKzoxMEREQzAwMDREMDAwQjRDODBGMzEyMzhDMDBEM0EwMjhDODBGMzAwRUEKKzoxMERERDAwMDNDQzAwRTMwMEIwRTAwQzMwQzNBQzAwRDMwMDMxMjAyRDMKKzoxMERERTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQjQwNkZGMTAzRkMwMEUKKzoxMERERjAwMDBGQjAxM0JDMDBGRjEwN0ZDMDBFRjFBMzdDMDBGRjEyMTgKKzoxMERFMDAwMDNGQzIwRkY1MjNCQzQxRUYxODM3ODBBRUMwMDM1MDA2NjgKKzoxMERFMTAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTQwMERCMDAzRURBMUUKKzoxMERFMjAwMDBDODAwMzY2MTA4QjAwMzI4MDhDQjYwMzRBMDA0QjgwNTYKKzoxMERFMzAwMDMyQzgwQ0I0MDMwQTEwREIwMDNFQzEwQ0IwNDMyQTAwMDgKKzoxMERFNDAwMDcwMDAwMDAwMDAwMDAwMDBDODExQjQwMDg3MDQyQ0MwNUUKKzoxMERFNTAwMDBENzAwMzFDMDg4NzQ4MjA4MTBENzI4MjVDMDBENzAwN0EKKzoxMERFNjAwMDIxQ0MyOEYwMDIxQzEwODcyMDJDMDAwODQwMEEzMjA0MjQKKzoxMERFNzAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwOTYwMEI3ODEyREUwRTcKKzoxMERFODAwMDA4NDgwMjBFMDQ4NzgwMjFFMDA4NzgwMjNFMDE4NzgwNUUKKzoxMERFOTAwMDIxRTAxODc5MDIzQTAxOTdBMDJENjAwODM4MDIyMDAwOEQKKzoxMERFQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0QzYwMEEzQzYyQ0MwREIKKzoxMERFQjAwMDA5MzAwMjBDMDE4MzAwMjBFMDA5MzAwMjRFMDA5MzAwN0IKKzoxMERFQzAwMDIwQzA0OTMwMjIwRjY0ODMwMjZDRDQyODMwMDIxMjA0MkYKKzoxMERFRDAwMDMwMDAwMDAwMDAwMDAwMDBFODExQUI4MEZBRTAzQzg4NTAKKzoxMERFRTAwMDBDRTAwMjI4MDJDQTAwQjNBOTBDQTAwMzNCMTBDQTAwMzAKKzoxMERFRjAwMEEyODAwQ0EwMEIzODAwREEwMDNGQjAwQ0U2MDMzQTA0MTUKKzoxMERGMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwQzAyMDk4MDgzRTAwQUIKKzoxMERGMTAwMDBGODAwQkUxMDBGODAxM0MxMDRGMDAwM0EwNDBGODAwMTcKKzoxMERGMjAwMDNFMTAwRTgwMDNFMDAwRjgwMDNDMDIyRjA0OTNEMjAwNjQKKzoxMERGMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEMxQzEzMjQwQzEKKzoxMERGNDAwMDBDOTgwMzI2NDBGOTAwMzI0MDBDOTgwMzI0MjRGOTAwNzEKKzoxMERGNTAwMDNDNjAwQzEwMDNBNDAwRjk4MjMyNDAwQzkwMDMwMjA0RDAKKzoxMERGNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDg5MDAyMjUwOUUKKzoxMERGNzAwMDBEOTgwMjI1ODBCOTAwMjI1MjBEOUMwMjI0MDBCOTAwQTAKKzoxMERGODAwMDJFNjAwODkwNDIyNDAwQjk0MDM2NDAwODkwMEEyMDAwRDQKKzoxMERGOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMDhEMDAyMzQwNDAKKzoxMERGQTAwMDA4MTIwMjI0MDBBMTEwQTI2MDA4OTI4QTI0MDBCOTAxN0MKKzoxMERGQjAwMDJFNDYwODkwMDJBNDAwQjE1MDIyNDAyODkwODIwNjAwMEMKKzoxMERGQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4NDg1MjBBMUQ4NUYKKzoxMERGRDAwMDA5MTAwMjA0ODBCMzIwMjA0MDI5MTIwNjA0MDBCMTAxNzgKKzoxMERGRTAwMDJDNDgyODEyMDIwNDAwQjEyMDI0NDgwODEyMDIwMjAxMjEKKzoxMERGRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MjhBMDBCMzAwN0MKKzoxMEUwMDAwMDBDMDUwMzIxNDBFMDUwQjIwMDJDODAwMjIxNDBGMDUwNkEKKzoxMEUwMTAwMDNDMTQwQzg1MTNBMTUwRjg1MDMyMTQwQzg1MjMyRTAzQTgKKzoxMEUwMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQ0MEY5MTAzRTQ0MkMKKzoxMEUwMzAwMDBGRDQwQkY0NDRGOTEwM0Y1MDRGMTEwM0Y0MDBGOTAwRDIKKzoxMEUwNDAwMDNFNDQwRjkxNTNGNDE0RjkxMDNGNDQwRkQxMDNFNjAyRkMKKzoxMEUwNTAwMDcwMDAwMDAwMDAwMDAwMDA5ODA1RTZBMEREODhCMzY2QUYKKzoxMEUwNjAwMDBDREM4MzM2ODhCREEwMzc2QTBDREEwQjI1MDJDOTQwNjgKKzoxMEUwNzAwMDNGNzg0Rjk4QjNFNTA0Q0RBMDcyNzgwQ0Q4OEIyNjE0NjYKKzoxMEUwODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTMwMDg4NDIyMjMxRDgKKzoxMEUwOTAwMDA4MEEwMjIyQTBCOEY5MjIxMDBEODQxMjZBODA4ODgwMzIKKzoxMEUwQTAwMDJFMjAwQjA4MDJFMjgwQThBOEEyMzg0OEE4MDIwRTAwODEKKzoxMEUwQjAwMDMwMDAwMDAwMDAwMDAwMDA0ODA1QzRBMjgxMDAyMDQ4OTQKKzoxMEUwQzAwMDA4MTI0MjQ1MDBCMTAwMjQ0MDA5MTQwMjI0MDA4MTIwQjYKKzoxMEUwRDAwMDJDNTgwQjEwODJDNDA0OTE0MDY0NkMwODMwODIxMjA1RTUKKzoxMEUwRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwMDg5MDAyMjQxMDMKKzoxMEUwRjAwMDA4OTA4QTY0ODBCOTAwMjI1MDA5OTAwNjY0MDg5OTAwNEIKKzoxMEUxMDAwMDJFNDAwQjkwMDZDNDAxQjkwMjI2NjE4ODkwMDIwNjA0RDUKKzoxMEUxMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEM5MDAyMjQwREIKKzoxMEUxMjAwMDJDOTQyMzY0MDBCOTAwMzY0MDA5OTAxMzA1MDBDOTAwRkYKKzoxMEUxMzAwMDNFNDA0RjkwMTNFNUMwRDkwMDI2NDAyQzk0MDMyODAwQTAKKzoxMEUxNDAwMDcwMDAwMDAwMDAwMDAwMDA2ODAxQTQwMkU5MDgzQzQwRTMKKzoxMEUxNTAwMDBGOTAwQkE0MDBGMTAwM0U0MTBGOTA0M0E0ODhFOTA0MDYKKzoxMEUxNjAwMDNFNDAwRjkwMDNFNjAwRTEwMDNBNDA5RjkyNjNEQTAwRTAKKzoxMEUxNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwODAxMEUwMDEzMjAwNjQKKzoxMEUxODAwMDhGODAwMzIwMDBEODA4MzAwMThDMDAwM0UxMDJDODA0MEUKKzoxMEUxOTAwMDNFMDAwQzgwMEIyMTAwQzgwMDc4MDAwRjg2MDMwQTAwQTcKKzoxMEUxQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDhFNDAyQjgyN0YKKzoxMEUxQjAwMDBCQTAwMjNBMDA4RTgwMjM4MjA4RTIwMjI4MTA4QTAwMTcKKzoxMEUxQzAwMDJGOTgyOEEwMTIyODAwOEUyMDJFODA0QkU0MDIwQTAwRUYKKzoxMEUxRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMkEyNDAyMDgwMDIKKzoxMEUxRTAwMDBCQjAwMjRFNDA5M0MwQTAyMDA4MzYwMjhDMDA5MzAwNzIKKzoxMEUxRjAwMDJDRTIwODMwMDY0QzEyOTMwODI4QzAwQkIwMDIwQTAwMkIKKzoxMEUyMDAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUMwODgyNDAyOTQwQ0UKKzoxMEUyMTAwMDBCNzAwMjVFMDg4NDA4MjM0MDA4NzAwNjFDODA4NzAwOEIKKzoxMEUyMjAwMDJEMjAwODc5MTI1QzAwOTQwMDJEQzAwQjMwNDIyODAwOEMKKzoxMEUyMzAwMDQwMDAwMDAwMDAwMDAwMDBBODA4M0UwMEU0ODAzMUExN0EKKzoxMEUyNDAwMDBGNTgxMzc2MDBEMDgwMzFDMDBDMzgwM0JFODBENzgxQzAKKzoxMEUyNTAwMDNGMjA4Qzc5MDM3RjAxRDY4MDM5RTg0RjY4MDMyQTAwN0MKKzoxMEUyNjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQkUwMEZBMDAzRTAwOTMKKzoxMEUyNzAwMDhGOTYwQkE0MDBFQTAwM0NDMDBGOTAwM0FDMjBGQjQwM0IKKzoxMEUyODAwMDJFMDAwRkIyMDNBREEwRUEwMDNFQzAwRkEwMUJDMjA0RDcKKzoxMEUyOTAwMDYwMDAwMDAwMDAwMDAwMDA0MDA1RkUwOERFODEzM0E0OUQKKzoxMEUyQTAwMDBFRkMxMzNFMDBGQzgwMTMyMDBDNjgwMzNFMjBGRkM4QzgKKzoxMEUyQjAwMDNGNjAxREY4MDM3RTAwQzc4MDMzRTIwQ0Q4MDMxMDAwRDYKKzoxMEUyQzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMDg2NDEzMUM0Q0QKKzoxMEUyRDAwMDA4Nzk0MjlDMDBCQzEwMjE0MDg1MzUwMzVDMDBCNzAwRTIKKzoxMEUyRTAwMDJEQzAwODcyMDIyQzAwQTcwMTM3QzAwODUxNDIyQTAwMzUKKzoxMEUyRjAwMDYwMDAwMDAwMDAwMDAwMDAxMDAwOEM0MDgyMDAyNDgxQkIKKzoxMEUzMDAwMDA4RDgwMjE0MjBCNTAwMjA0MDA5NjAwMjFDNDBCNzAwNjQKKzoxMEUzMTAwMDJDNDAwQjMwMjJEQzAwOTcwMDIxQzQwODQwMDI0NDAwNEUKKzoxMEUzMjAwMDIwMDAwMDAwMDAwMDAwMDA2MDE0RUMwMDkyMDYyMDkwMjUKKzoxMEUzMzAwMDM4MTUwMjg2MDBCODAwNjA1MDA5MzAwMjRFMDFCQjAwNUIKKzoxMEUzNDAwMDJFNDAwQjMwMDJDRTIwQjMwMDI0RjA0ODAyMEE1ODA0QkQKKzoxMEUzNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMENBMDBBNjk0MTAKKzoxMEUzNjAwMDJDOTAwMzJFMDBGQjA1QjI4NTBEOTAwMzNGOTBGRjAwMUIKKzoxMEUzNzAwMDdFODAxRkYwNDNGQzIxOUEwMDMzQzgzQ0IyMDM2QTA0M0MKKzoxMEUzODAwMDYwMDAwMDAwMDAwMDAwMDA5MDAwRUMwMkVBNDAzRDgwQzgKKzoxMEUzOTAwMDBGMTA5M0VEMDBGQjQwM0U5MDhGMzAwM0VDODBGQjAwQUMKKzoxMEUzQTAwMDNFOTExQ0IwMDMyQzEwRTgwMDNFQzgxRjkwMDNBNTEwM0UKKzoxMEUzQjAwMDMwMDAwMDAwMDAwMDAwMDA4MDEwRkMwMkU0MDA3M0EwQTgKKzoxMEUzQzAwMDBDRkMwMzdDMDJGRjEwMTNDNDFDQzAwMzNDMDBGRjAwQzQKKzoxMEUzRDAwMDM3RTAwREYwMDNGQzAwRUQ4MDMxQzAwQzMyNjMyMDA0MDcKKzoxMEUzRTAwMDMwMDAwMDAwMDAwMDAwMDA4NDAwNkMwMDhBQzAyMkIxRjAKKzoxMEUzRjAwMDhBQjg0MzRBMTBEQjIwMjBGMDBBOTQwMzZDMDBCQjA3NjQKKzoxMEU0MDAwMDIyQjgwOEIwMDJFQzExRThDMEIyQzAyQTkyMUEyMDAwNkIKKzoxMEU0MTAwMDEwMDAwMDAwMDAwMDAwMDA4MDAxMkMwMEFBODAyMjk4NUIKKzoxMEU0MjAwMDA4OTAwMjJGMDNCQjAxMkE4MzA4QjI0RTJDMDRBQjAyRDIKKzoxMEU0MzAwMDIyQzQyOEIwMjJFQzA5QjM1MDYyQzAwOEIwMDIyMDAwMDgKKzoxMEU0NDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMTgzMDA2MDgwMTAKKzoxMEU0NTAwMDA4MTIwQTQ0MDA5MzAwMkE4MDRBMzAwMjBDMDBCMzAwREMKKzoxMEU0NjAwMDYwQzAwODMwMDJDQzAwQjMwMjYwQzAwODAwNDYwMjAxNjAKKzoxMEU0NzAwMDAwMDAwMDAwMDAwMDAwMDA4MDBENkMwMEU4MDIyMjgwMTcKKzoxMEU0ODAwMDJDRjI0MzJDMDBGQjAwQkFDMDA4QTUwMjNDMDBFRjAwQjAKKzoxMEU0OTAwMDM2QzA0REYwMTNGRDUxRkIwMDMyQzAwQ0IwMDMyMDAxMUIKKzoxMEU0QTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMDdFMDQzRjgwMjIKKzoxMEU0QjAwMDBGMzE0M0YwMDJGRjAwMzdDMDBGRjAwM0ZDMDhGRjAwRUMKKzoxMEU0QzAwMDNGQzAwRkYwMDNGQzAwRUYwMDNCQzAwRkMwMDNFODE2OTUKKzoxMEU0RDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjI0MEZDODAzRjI0RjYKKzoxMEU0RTAwMDBERDg1M0Q2MDRERjMyM0ZDQzRDQzA0M0ZDMDBERjYwNzQKKzoxMEU0RjAwMDM3QzAwRkM0MDM3Q0QwREYyMDMzRDgwREY4NDNGMDAwQzEKKzoxMEU1MDAwMDcwMDAwMDAwMDAwMDAwMDA4MDE4RTg4MEIwMDEyRTA4QjQKKzoxMEU1MTAwMDg4OTAwMkVDMjA4QjcwMkZDQzA4QjM4MkZERTBCRjQwQzYKKzoxMEU1MjAwMDIyRDgwQjkzMDJGREMwQUYxMDI4RjAwOEJDMTJGMDA0RjMKKzoxMEU1MzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzQwMEIwMDAyRTAxN0IKKzoxMEU1NDAwMDBBMTI4MkVDODBCMzAwMkNDODBBMDAzMjhDMDBBMzMwN0YKKzoxMEU1NTAwMDIwRDIwOTAwMDI4QzgwODMwMDI4RDgwQjM0MTJGMjAxRUIKKzoxMEU1NjAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1QUMwMUI4MDIyRTAwRTEKKzoxMEU1NzAwMDBBOTAxMkVDMTA4QjAwMkVDMDBBQjAwMEVDMDBCMzAwMjEKKzoxMEU1ODAwMDIyQzEwQjkyMDJDQzAxQUIwMDJBQzAwMkIwMDJGMDA0RkYKKzoxMEU1OTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RTAwMEZBMEMzRUMwRTIKKzoxMEU1QTAwMDBGQTAxM0VFMjBEQjAwM0VDMDJFODg1M0VDMDBGQjAwRDIKKzoxMEU1QjAwMEIyQzA4RkFDODNBQzA4REIwMDFBQzA0RkIwMDNDMDA0RkMKKzoxMEU1QzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjgwMEZFMDAzRkMwNDUKKzoxMEU1RDAwMDJERTAwM0ZFODA3RjAwM0ZDMDBERDIwM0ZDMDBCRjAxOTEKKzoxMEU1RTAwMDNFQzAwREM4MDNGQzBDRkYwMDNGQzAwOUYwMjNGODAwM0IKKzoxMEU1RjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTQwMEZBNDAzMkMxOUEKKzoxMEU2MDAwMDBGQTAwMzI5MDhEQjAwM0VDMDBFODUwM0VDMjBDQjAwRTEKKzoxMEU2MTAwMDNBQzAwRUE0MDNFQzAwRkIwMDNBQzIwRUIwMDMxMDA0OTMKKzoxMEU2MjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMEJBNjAyMEMwRDcKKzoxMEU2MzAwMDBCQTAwMjA4MDBBRjAwMkZEMDBCQjUwMkZFMDI4RjAwMjYKKzoxMEU2NDAwMDJGQzAwRDgwMEEzQzAwQjcwMDIzQzIwNUYwMjIzNjAwMUYKKzoxMEU2NTAwMDQwMDAwMDAwMDAwMDAwMDBDMDA0NDAwMEIxODgyMDAwMUQKKzoxMEU2NjAwMDBCMTAwMjBDMDA4MzAwMkVDODBCMDgwNjRENDA4MzAwREYKKzoxMEU2NzAwMDIwQzAwODMwMDYwQzA4OTMyMDBBRTA0QTMwMDIzODAwMTcKKzoxMEU2ODAwMDUwMDAwMDAwMDAwMDAwMDAyMDEwNUEwMEI1OTAyMTIwMkEKKzoxMEU2OTAwMDBCNTg0MjNFMDBBNzgwMkRFMDBCNjkwMkRFNDA4NzkyQjYKKzoxMEU2QTAwMDJERTAwOTE4MDI5RTAxQjc4MDI5RTAwMzcwMDIzRTAwQTgKKzoxMEU2QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4NDQwMEYxMDEzMDAwNjQKKzoxMEU2QzAwMDVGMTgwMzBDMTA4MzAwM0NDNDBFMDQwM0VDMDA4MzAwQUQKKzoxMEU2RDAwMDMwQzQwQzMxMDM4QzAwRjMwMDM4QzgwRTMxMDMxMjAyMzEKKzoxMEU2RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDE1QkMwMEZEMDRCRjA0NTUKKzoxMEU2RjAwMDRGNTgwM0Y4MDhFRjA4M0ZDMDBGRjAwMUZDMDBGRjRDMzMKKzoxMEU3MDAwMDNGQzEwRkQwMDMzQzAwRjcwMDM3QzIwRDcyMDNEMDA2QTMKKzoxMEU3MTAwMDYwMDAwMDAwMDAwMDAwMDAwODA1RTIwMERCMDAzMkMwREQKKzoxMEU3MjAwMDREQTgwMzJDMDhGQjAwN0VDODhGQjAwQjZGNDVFQkMyRDEKKzoxMEU3MzAwMDM2QzAwN0EwMDNFRjIwQ0I1MEIyQzAwQzc5MDMyQTAwRUIKKzoxMEU3NDAwMDcwMDAwMDAwMDAwMDAwMDA0ODE5OTgwMDhGMDAyMUMwRjAKKzoxMEU3NTAwMDBCNjAwMzVDMDAzNzAwMkREMjBCMzAwMjBDQTg4NzI0MUQKKzoxMEU3NjAwMDIxRDAwOTcwMDJERDg4ODcyQTIzRTgwODcwMDIzMjA0NkMKKzoxMEU3NzAwMDYwMDAwMDAwMDAwMDAwMDAyMDAwQjYwMDk3ODAyMUUwNEIKKzoxMEU3ODAwMDBCNjgwMjFFMDBCNzgwMkRFODhCNDg4MjFFODBBMzg0OTAKKzoxMEU3OTAwMDI1RTgwQjY4MDJDRTAyODc4MDIxRTAwODdBMDIyMDAwN0IKKzoxMEU3QTAwMDIwMDAwMDAwMDAwMDAwMDA2ODA0Q0MwODgzODIyMEUwMDQKKzoxMEU3QjAwMDhCMkEwMjQ4NDBCMzAwMkNDMDBCMzA4MjBDMDA4MzAwMkYKKzoxMEU3QzAwMDAwQzEwOTMxMDJDQzAwODMwMDIwQzAwODMwMEExMjA0QzUKKzoxMEU3RDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1RTgwMERBQTAzMkE4RDAKKzoxMEU3RTAwMDhEQTgwMzNCMDBGQTAwM0U4MDBGRTQwMzY4MDBFQTAyQjQKKzoxMEU3RjAwMDM2ODAwRkU0MDNFODAwQ0EwMDMyODAyQ0EwMDMzQTA0RkMKKzoxMEU4MDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAxQTAxMEY4MDBCRTIwRDkKKzoxMEU4MTAwMDhGQzEwM0UwMjRGODAwM0UxMDBGODQwM0UwMDBGODAxRUMKKzoxMEU4MjAwMDNFMDAwRjgwMDNFMDAwRjgwMUJFMTAwRjgwMDNEMjAwMEQKKzoxMEU4MzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwQTQwMEY5NDAzMjQwNDEKKzoxMEU4NDAwMENGOTAwM0U0MDBDOTAwMEU1MDBGMUEwMzI2MDBGOTAwMTAKKzoxMEU4NTAwMDNFNDAwRjkwODFFNDAwRjk4MDMyNDAwQzkwMDNDMjA0RTYKKzoxMEU4NjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwNEIxMDQyMjQwNzUKKzoxMEU4NzAwMDBCOTAwMkU0MDBBOTAwMkU1MzBCOTIwQTI2NDhCOTA0MUIKKzoxMEU4ODAwMDJFNDAwQjkwMDJFNDAwQjk4MDAyNTAwODkwMDJFMDAwOTQKKzoxMEU4OTAwMDEwMDAwMDAwMDAwMDAwMDAzODA1MjQwMEJEMDAyMzQwRTcKKzoxMEU4QTAwMDBCRDAxMkM0MDA4OTAyMkU0MDBCOTAyMjI0MDBCOTAwMjQKKzoxMEU4QjAwMDJFNDAwQjkwMDJFNDAwQjEyMDIwNDA2ODkwMjJDNjAwNTgKKzoxMEU4QzAwMDQwMDAwMDAwMDAwMDAwMDAyODE0MTQwMEJGMTJBMTQwMDYKKzoxMEU4RDAwMDBCNTAwMkM0MDBBMTIwMkM0ODBCMTIwMjA0MTBCMTExRUQKKzoxMEU4RTAwMDJDNDgwQjEzMjJDNDAwQjE0MDIwNUEwODEwMDJDMjAxNjgKKzoxMEU4RjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEY4NDAzMjE0MzQKKzoxMEU5MDAwMDBGNDUwM0UxNDBDODUwM0UxNThGODUwMzIxRThGODY4QTQKKzoxMEU5MTAwMDNFMTQwRjg0MDNFMUUwRjAyODMyQThDQzgwMjNFRTAzRkMKKzoxMEU5MjAwMDUwMDAwMDAwMDAwMDAwMDA5ODE1QzQxMEY5MjAzRTQwN0YKKzoxMEU5MzAwMDBGOTAwM0Y0MDBGOTEwM0U0NDBGRDEwM0U0MDBGOTIwRDYKKzoxMEU5NDAwMDNFNDQwRkQzMDNFNDAwRjkwMEJFNDAwRjk0MDNFNjA2RjMKKzoxMEU5NTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1RTQwMEZEMTAzMzQwQjYKKzoxMEU5NjAwMDBDRDAwMzI0MDBEOTAwM0Y0MDRDRDAwM0Y2MDBGRDkwQUEKKzoxMEU5NzAwMDNBNDAwQzkwMDNFNkEwRkRBODM3NjgwQ0Q4ODMyNjAwMjcKKzoxMEU5ODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAwOEM4QTAyMjAwNUQKKzoxMEU5OTAwMDA4ODAwMjIwMDA4ODAwMkUwMDBDODAxMkUwMDBCODgwNjEKKzoxMEU5QTAwMDIyMDAwRDBBMDJFMzgwQjBDMDIwMzQwODg0MDM0RTA0MjQKKzoxMEU5QjAwMDMwMDAwMDAwMDAwMDAwMDA0ODAwODQwOUExMDAyMDQxNTAKKzoxMEU5QzAwMDA4OTAwMjI0MDA5MTAwMkM0MDA4MTAwMkM1MDBCMTYwOUMKKzoxMEU5RDAwMDIwNDAwODEwQTJDNDIwQjEyODI0NEEwODEwMDI1MjAxODUKKzoxMEU5RTAwMDcwMDAwMDAwMDAwMDAwMDAxODE0QTQwMTgxMDBBMjQwODMKKzoxMEU5RjAwMEE4OTAwMDI1NDA4OTAxMkM0MDA4OTQwMkU0MDBCOTAwNDkKKzoxMEVBMDAwMDJBNDAwOTkwMDJFNDAxQjkwNDIyNDE0ODkwMDI0NjA0RDgKKzoxMEVBMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE0QTUyMEU5MDAzMjQwQzIKKzoxMEVBMjAwMDRDMTAwQjI2MDBEOTAwM0U0MDJDOTgwM0U0MDBGOTAwNUUKKzoxMEVBMzAwMEIyNDAwQzkwMDNFNDAwRjkwMDM2NDAyQzkwMDM2ODA0QzcKKzoxMEVBNDAwMDcwMDAwMDAwMDAwMDAwMDA0ODAxQTQwMEU5MDAzRTQwMDIKKzoxMEVBNTAwMDBGOTAwM0U2MDBGOTAwM0U0MDBFOUEwM0U0MDBGOTAwMkYKKzoxMEVBNjAwMDM2NDAwRjkwMDNFNDAwRjkwMDNDNDAwRjkwMDNEQTAwQjkKKzoxMEVBNzAwMDYwMDAwMDAwMDAwMDAwMDAwODEwQTEwMEY4MDAzMjAwNTMKKzoxMEVBODAwMDBGODAxM0EwMDBDODAwMzIwNDhDODAwM0EwQzBGODAwREYKKzoxMEVBOTAwMDNBMDAwRjgwMDMyMDAwQzAwOTMyMDA0QzgwMDEwQTA0QjQKKzoxMEVBQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMEJFMDAyMDgwOTMKKzoxMEVBQjAwMDBCRTAwMjg4MDBBQTAwMDNBMDBBRTYwMkZBMDA4QTAwMUUKKzoxMEVBQzAwMDMyODAwQkEwMDIyODAwOEU4MEEzODAyODIwMDI4QTAwQkEKKzoxMEVBRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NkMwMEIzNDgyMDQwMDIKKzoxMEVBRTAwMDBCMTAwMjBDMDA4MzAwMjBDMDA4MzQ4MjhFMDQ5OTAwQjEKKzoxMEVBRjAwMDBBQzAxQjMwMDIwQzAyOTA1MDIwNjAwODMwMDIwQTAwNEQKKzoxMEVCMDAwMDUwMDAwMDAwMDAwMDAwMDA4MDExMUM4MEJEMEEyMTQ4NTgKKzoxMEVCMTAwMDBCNTIwMjlDNDBBM0EwMjA4MDBBNjAwMkNFMDA4NTIwRjgKKzoxMEVCMjAwMDIxQzQwQjdBMDYxRTgwOTUyMDIxOTAwODcwMDIyODAwQ0YKKzoxMEVCMzAwMDQwMDAwMDAwMDAwMDAwMDA4ODA4MUU4MEY3ODBCMTc5QzYKKzoxMEVCNDAwMDBGREIwMjNFMjBDN0EwQjE2MENDNzgxMzk2MDBGMUYwMzUKKzoxMEVCNTAwMDM5RTIwRjdCMTMwRjAwRDRBMDMxNjAyQzcwMDMyQTAyMUUKKzoxMEVCNjAwMDAwMDAwMDAwMDAwMDAwMDAwODE1QUMwMEY3MDAzRTQwNjcKKzoxMEVCNzAwMDBGOTAwM0VEODBGQjEwM0U0MDBCQjAyM0VDMDBGOTIwMUEKKzoxMEVCODAwMDNBRDgwRkIwMEJFRDgxRUQxMDNFODAwRjMwMDNDMjA2NzYKKzoxMEVCOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA0QkUyMEVFODAzMzYwMzIKKzoxMEVCQTAwMDBDRDg4MzFFMDA2RjgwMzNFMDBGQjgxMTMyMDRGNTgwNUIKKzoxMEVCQjAwMDMzRTAwRkY4ODMyRjQwRkU4MEIzRTAwQ0Y4MDMxMDAwMjEKKzoxMEVCQzAwMDcwMDAwMDAwMDAwMDAwMDBBODE4OUMwMEJDMDBBMTQ0RDgKKzoxMEVCRDAwMDA4MTAwMzVDMDA4RjAwMjE4MDBCRUEyMjFDODBCNTAxMjUKKzoxMEVCRTAwMDIxQzAwQkYwMDIxRTgwQkUwMDIzODAyQTcwMDIyQTA0N0UKKzoxMEVCRjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMyMEE3MDAyMzQwRUYKKzoxMEVDMDAwMDBCNTAwQTNDMDBBNzAwMjVDMDBBNDMwMjEwMDBCNTAwQzMKKzoxMEVDMTAwMDIxQzAwQjcwODIxQzgwQjQwMDIxQzAwODcwMDIwNDAwNjcKKzoxMEVDMjAwMDIwMDAwMDAwMDAwMDAwMDAyMDA0OEUwNEIzMDAyMjQwRjkKKzoxMEVDMzAwMDA5MTQwMjRDMDA4MzAwMjBDMDBCMjQ4MjA0MDBCMTAwQTAKKzoxMEVDNDAwMDIwQzA4QjNBMDIyQzAxQjAwMDIwODAwQTMwMDIxQTA0NDYKKzoxMEVDNTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1OUUwMEVCMDQzMzQwQzcKKzoxMEVDNjAwMDJEREMwMzFENjBFRjAwMzIwMENGOUEwMzI4MDBGRDAwNjkKKzoxMEVDNzAwMDMzQzE4QkZDMEIzQzAwRkMwMDMyODAwQzkwMDMyQTA0NTcKKzoxMEVDODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwQUMxMEY4MDAzRTQwNzIKKzoxMEVDOTAwMDBFOTgyM0FDMDRGQjAwM0MwMDBGODQyMEVEMDBGOTAwMkIKKzoxMEVDQTAwMDNFQzA0RkIwMDNFQzAwRkQwMDNFODAwRjkwMDNFNDAwMzcKKzoxMEVDQjAwMDMwMDAwMDAwMDAwMDAwMDAyMTEwRkMwMENGODAzMzQwMzUKKzoxMEVDQzAwMDBDRDA4M0ZDMDBFRjAwM0Y0MDBDRjE0MTMwMTBDRDAwMzAKKzoxMEVDRDAwMDNGQzAwMDcwMTMzQzAwRTQwMEIxRDAwQzEwMDMyMDA0Q0UKKzoxMEVDRTAwMDMwMDAwMDAwMDAwMDAwMDBBMTA0MkMwMDhBRTQyQTQwNEIKKzoxMEVDRjAwMDI4OTAwMkVDMDA4QjAwM0UwMjBBODAwMjJDODI4OTA0REMKKzoxMEVEMDAwMDJFQzEwQUIwMEEyQzAwODkwMjIyRjIyQTk4MDIyMDAwQTEKKzoxMEVEMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMjgwMTQyQTQwMzIKKzoxMEVEMjAwMDA4OTAwMkVDMDhBQjA0MkU4NDA4MTA4MjgwMTA4OTAzM0UKKzoxMEVEMzAwMDJDQzA0QUIwMjIyQzAwQUEwMDIyODAwODkxMDIyMDAwOTgKKzoxMEVENDAwMDQwMDAwMDAwMDAwMDAwMDAwODE0MkMwMDgwMDAyODQwNTMKKzoxMEVENTAwMDA4MTEwMkVDMDA4MzAwMkM4MTBBMDA1QTg4MDAwMTAwOEYKKzoxMEVENjAwMDJDQzAwQTMwMDIwQzAwODIwMDIwODAwQTEwMDIwMjAxMkUKKzoxMEVENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMEM5MDAzQTQwRDcKKzoxMEVEODAwMDBDRDQwM0ZDMDBFQjAwM0U0MDBDOTIwM0EwMDA0RDAwQUQKKzoxMEVEOTAwMDNGQzAwRUYwMzMzQzgwRTgwMDMyQzAwQzkwMDMyMDAzRUIKKzoxMEVEQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDExRkMwMEZDMDAzRDQwRUQKKzoxMEVEQjAwMDBGNTAwM0ZDMDIzRjA0M0IwMTRGQzQxMzcwMDBGRDAwRTEKKzoxMEVEQzAwMDNGQzAxRkYwMDFGQzQwRkMwMDNGQzAwRkQwMTNFODA2MUQKKzoxMEVERDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjhFMEZGODAzREMwQUEKKzoxMEVERTAwMDBERjM4MkYwODBGRjQwMzFDQjBDRjMwM0ZEMDRFRkMxNDMKKzoxMEVERjAwMDMzRTAwRjc5MDNGRTAwQ0Y0MjMzRjA0Q0Y4MDMzMDAwQ0MKKzoxMEVFMDAwMDcwMDAwMDAwMDAwMDAwMDBFMDEwRTkwOEI5ODEyRkYwNTgKKzoxMEVFMTAwMDA4RjQ1MkU5MjBCRjQwMjNGMDBBRjMwMkZEMDg4QjAwRkEKKzoxMEVFMjAwMDM2RTAwQjgwMjJFODgwOEY0MDIyQzAwOEIwODIzMDA0OTgKKzoxMEVFMzAwMDMwMDAwMDAwMDAwMDAwMDBDODA1Q0MwMEIxODAyQ0M1RTcKKzoxMEVFNDAwMDA5MzI0MkM4QzBCMzMxMjBDMTA4MzIwMkNDRDRCQjIwNDEKKzoxMEVFNTAwMDY4QzAwQjMwMDJDQzIwOTM2MDIwODgwODMyMDIzMjAxNTcKKzoxMEVFNjAwMDcwMDAwMDAwMDAwMDAwMDBFMDE1QTAwMEJCODAyRUMwNzQKKzoxMEVFNzAwMDA4QjAwMkVBMDBCQjAwNjJDMTBBQjAwMkNDMDBBQjAwREQKKzoxMEVFODAwMDJFQzAwQkEwMDBFODAwODMwMDIyQzEwODMwMDIzMDA0MkQKKzoxMEVFOTAwMDYwMDAwMDAwMDAwMDAwMDAwMDE1RTg5MEZCODAzRUMwMEMKKzoxMEVFQTAwMDBEQjAwM0UyMTBGQjAwMzJDMDRDQjAxM0VDMDBFOTU0OEIKKzoxMEVFQjAwMDNBQzAwRkIwMDNFNjAwQ0IwMEIyNDAwQ0IwMDMwNDA0MkMKKzoxMEVFQzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjgwMEZGMDAzRkMwM0IKKzoxMEVFRDAwMDhGRjAwM0YwMDBGNzAyQkZDMTBGRjAyM0ZDMDBERjA2NDQKKzoxMEVFRTAwMDM3QzA4RkM5MDdGQTkyRkYwNDNGNTAyRkYwMDNGODAwOTQKKzoxMEVFRjAwMDYwMDAwMDAwMDAwMDAwMDA1MDEwQUMwMEM5MDAzRUMyREQKKzoxMEVGMDAwMDBFQjAyM0U0MDBFQjAwM0FDODBFQjAwM0VDMDBGOTAwQTkKKzoxMEVGMTAwMDNFQzAwRkI0MDNBNDAwRkIwMDNFODAwRkIwODNEMDA0QkEKKzoxMEVGMjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MjgwMDhCNzQyREMwRTAKKzoxMEVGMzAwMDA4RjAwMkU0MDA4RjAwMjFGMDA4RjAwMkZDMTBEMzAwN0EKKzoxMEVGNDAwMDJFQzAwQjkwMTIyQzAwRUYwMDJFQzAwQkI2MDJGNjAwNjQKKzoxMEVGNTAwMDQwMDAwMDAwMDAwMDAwMDBFODA1NDgwMEEzMDAyQ0M0QTkKKzoxMEVGNjAwMDBBMzAwMkMwMDBBMzAwNjhGMDBBMzAxMkNDMDRBMjAwRUMKKzoxMEVGNzAwMDJDQzAwQjMwMDJFQzAwQjMwMTJFQzAwQjM0MDJGODAwQTEKKzoxMEVGODAwMDUwMDAwMDAwMDAwMDAwMDBCMDAxMEMwMDg3ODAyREU4NTgKKzoxMEVGOTAwMDA4Nzg0MkRBMDA4NzgwMjVFMDA4NzkwMkNFMDA5NjgwNjIKKzoxMEVGQTAwMDJERTAwQkQ5MDJERTAwQTc4MDJERTAwQjc4MDJGQzAwREIKKzoxMEVGQjAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEM0MEUzMTAzQ0MwODYKKzoxMEVGQzAwMDBBMzgwM0U4MDBFQjAwMzhDMjBBMzAwM0NDMDBFMzQwMDMKKzoxMEVGRDAwMDNDQzAwRjM0MDNDRDAwRjMyMDNDODgwRjMwMDNEMjAyMzUKKzoxMEVGRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQjQ4MEZGMDQzRkM4ODYKKzoxMEVGRjAwMDBGRjA4M0Y4NDBGRjE4M0JDMDBGRjQ4M0ZDMDBFRTAyRDMKKzoxMEYwMDAwMDNGQzAwRkYwMDMzQzAwRUYwODNGODAwRkYwMTNEMDA2MjUKKzoxMEYwMTAwMDYwMDAwMDAwMDAwMDAwMDA4ODA1RTgwMENCMDAzRUYyMjAKKzoxMEYwMjAwMDREQjIxM0U4MDRDQjAxMzJGODREQjIxMzZEMjBGODAwNTUKKzoxMEYwMzAwMDNFQzAwRjMwMDMyNDAwRkIwMDNFNDA4RkI4MDMyQTAwN0YKKzoxMEYwNDAwMDcwMDAwMDAwMDAwMDAwMDBDODExOEMwMDg2MDAyQ0MwNzkKKzoxMEYwNTAwMDA4NzMwMkQ4MTI4NzMwMjBDQjA4RjIwMjFEMDVCNTAwRDQKKzoxMEYwNjAwMDJEQzAwQjYwMDM1MDEwQjcwOTJEQzAwQkYwMDIzMjA0MDUKKzoxMEYwNzAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwOUUwMDg3ODAyREU0RkEKKzoxMEYwODAwMDA5N0EwMkNFMDE4NzgwMjFFQzA5NzgwMjVFODBCN0MwNDAKKzoxMEYwOTAwMDJERTAwQkY4MDIxRTAwQjdBMDJENjAwQjc4MDIyMDAwQjcKKzoxMEYwQTAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0RUUwMDgyODAyQ0MwMDgKKzoxMEYwQjAwMDA4MzAwMkVDMDA4MzAwQTBDMDA4MzAwMjBDMDBCMzgwQ0UKKzoxMEYwQzAwMDJDQzEwQjMwMDI0RTAwQjMwMDJDRjEwQjMwMEExMjA0OUQKKzoxMEYwRDAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QkE4MEM2MDAzRTgwNDUKKzoxMEYwRTAwMDBEQTAwM0Y4NDBDQTAwMzI4MDBEQTAxMzY4MDBGRTAyOTQKKzoxMEYwRjAwMDdFODAwRkVEODMzOTEwRkEwMDNGOEMwRkEwMDMzQTA0OTUKKzoxMEYxMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAxMkY4OTAzRTAwOUYKKzoxMEYxMTAwMDBGODAwM0UwMDBGODA1M0UwMDBFMDAwM0UwMDBGODgwRDkKKzoxMEYxMjAwMDNFMDAwRjgwMDNFMDYwRjgwMDdFMDAwRjgwMDNEMjAwRjUKKzoxMEYxMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEM5ODAzMjY0QzQKKzoxMEYxNDAwMDBGOTA0M0U0MDZDMTA0M0E0MDBGOTAwM0U0MDBFOTAwNDUKKzoxMEYxNTAwMDMyNDAwRjkwMDMyNDAwQzEwMTMyNDAwQzkwMDNDMjA0REUKKzoxMEYxNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDg5QzAyMjQwREMKKzoxMEYxNzAwMDBCOTAwMjI0MDA4OTAwMjI1MDFCOTAyMjI0MDA4MTAwNjEKKzoxMEYxODAwMDIyNDAwQjkwMjIyNDA4QzkwMDIwNDAwODk0MDJFMDAwOEQKKzoxMEYxOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMDk5MjAyMjQwMDMKKzoxMEYxQTAwMDBCMTAwMkE0MDA4OTAwMkE1ODBCOTAwMjg0MDBBOTAwQzkKKzoxMEYxQjAwMDIyNDAwQjEwMEEwNDAwOTkwMjIyQzEwODkwODJDNjAwNjYKKzoxMEYxQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMDkxMDJBMEM4RjQKKzoxMEYxRDAwMDBCMTIwMjA0ODA4MTIyMjA0ODlCMTIwMjA0OTA4OTAxQjQKKzoxMEYxRTAwMDIwNDAwQjEwMDIwNDAyODEyMjIyNDAwODEwMDJDMjAxQkEKKzoxMEYxRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MkRBMDEzMjAxOTkKKzoxMEYyMDAwMDBGODUwM0ExNDBDMDUwM0EwMThCODUyM0ExNDRFODUwRUIKKzoxMEYyMTAwMEIyMDAwRjg1MDMyMTQ4RDg1MTMyMTQyQzg1MDNFRTAzMjgKKzoxMEYyMjAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjUwMEVEMDIzRTQ0NzMKKzoxMEYyMzAwMDBGOTEwM0Y0NDBGOTEwM0U0NDBGOTEwM0U0NDBGRDAwQTgKKzoxMEYyNDAwMDNFNDAwRkQwMDNGNDAwRTkxMEJGNDAwRjkwMDM2NjA2NjQKKzoxMEYyNTAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTYyMUM1MDAzMzY4QkEKKzoxMEYyNjAwMDBGOUEwMzZGODhDOUMwMzM2ODBDOUUwMzI3ODBEOTQwNkEKKzoxMEYyNzAwMDNFNDAwRjkwMDNDNTEwRDlFODM2NTAwQ0QwMDNFNjAwOEQKKzoxMEYyODAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTEwODg4MDA4MjAwRDMKKzoxMEYyOTAwMDBCOEU4MkVCQzg4OEUwMjIwMDI4ODg0MkEyODA4QTgwRjgKKzoxMEYyQTAwMDIyMDAwQkFBMDJFMjAwODhDMDIyQTkwODhBMDM4RTA0NjkKKzoxMEYyQjAwMDMwMDAwMDAwMDAwMDAwMDA0ODA1QzQwMDgxMDAyMEQwOUMKKzoxMEYyQzAwMDBCMTEzMjg0ODQ4MTYwNjA1MDA4MTYwNjA1MDA5MTIwN0QKKzoxMEYyRDAwMDIwNDAwQjEwODJFNDA5OTEyMDI0NDAwODEwQzJEMjAxODIKKzoxMEYyRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwNDg5MDQyMjQwRUEKKzoxMEYyRjAwMDBCOTAwMkM0MDBBOTAwMjI0MTAwOTAwMkE0MDA4MTAwRUEKKzoxMEYzMDAwMDIyNDAwQjkyMjJFNTgwOTkwMTIyNjEwODkwMDI4NjA0MzYKKzoxMEYzMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDE0QTU4MjgxOTAzMjQwMkYKKzoxMEYzMjAwMDBGOTAxMzY3MDJDOTAwMzI0MDBDOTAyMzI0MDREOUMwMDcKKzoxMEYzMzAwMEIyNDAwRjlDMDNFNjAwRDkwMDM2NTAwQzkwMDNFODA0NUQKKzoxMEYzNDAwMDcwMDAwMDAwMDAwMDAwMDA2ODAwQTY4MEY5MDAzRTQwNDgKKzoxMEYzNTAwMDBGOTAwM0U3MDBEOTAwQkM0MjBGOTA1M0U0MDRGOTEwNkEKKzoxMEYzNjAwMDNFNDAwRjk4MDNFNjA0RTEwMDNFNDAyRjkwMDNEQTAwOTAKKzoxMEYzNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwODExMDQ4MTAzMjA4RDIKKzoxMEYzODAwMDBDODAwRjIxMDJDODAwM0EwNDBGODAwNzYwMDBGODQwOEIKKzoxMEYzOTAwMEIyMDAwRjg0MEIyMDAwRDgwMDM2MTAwQzgwMDNDQTA0ODIKKzoxMEYzQTAwMDIwMDAwMDAwMDAwMDAwMDAyODA0MjgwNDhFODAyMzgwMzQKKzoxMEYzQjAwMDA4QTA0MjI4MDA4QTAwMjNBMDRCQTAwMkU4MDBCQTAwNUYKKzoxMEYzQzAwMDc2ODAwQkEwMDIwODAwOEEwMDMyODAwOEUwMDNDQTAwQTEKKzoxMEYzRDAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDgyMDAyMEQwMDIKKzoxMEYzRTAwMDA4MzAwMjBDMDA5QjAwMjhDMDFBQjAwMjZDMDBCMzAyNjcKKzoxMEYzRjAwMDIwQzAwQjMwMDIwQzAwQTMwMDIyQzAyODM0ODJDQTAwQjcKKzoxMEY0MDAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUMwMDg3MDAyMEUwRTgKKzoxMEY0MTAwMDA4NzgwMjBDMDA5NzIwMjVDMDBCNzEwMkRDODFCNzIwMTAKKzoxMEY0MjAwMDIxQzAwQjdBNDIzQzgwODcyMDIxQzAwODcwMDJFODAwOEUKKzoxMEY0MzAwMDQwMDAwMDAwMDAwMDAwMDAyODA4MEU4MkM3ODBCMUUwRjQKKzoxMEY0NDAwMDJDRkEwNjFFMDhEM0IxMzk2MDRFNzgxMjVFQTBGRkYwODgKKzoxMEY0NTAwMDIxRTAwRkY4MDMxRjA4RTNBMDMzRTAwQzY4MDNFQTAyODEKKzoxMEY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUM0MEZCMDAzRUMwOTIKKzoxMEY0NzAwMDBGQjIwM0VEQThFQjEwM0E4MDBGQjBDM0VDNDBGQjAwRDUKKzoxMEY0ODAwMDNFQzAwRkIwODNFQzgwRUI3MEJFQzQwRkIwMDM4MjA2QTkKKzoxMEY0OTAwMDYwMDAwMDAwMDAwMDAwMDA0MDA1RkUwMENFODBCMzYwNjgKKzoxMEY0QTAwMDBGRkM4MzdFMjBFRkIwM0JFMDBGQjgwMzNFMDBDRjgxMUUKKzoxMEY0QjAwMDNGRTA4RkY4ODNFRjQwRkZDMjMzRTEwQ0Y4MDNEMDAwNDgKKzoxMEY0QzAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUM4Mjg3MTgyMTgwQjUKKzoxMEY0RDAwMDBCMzAwMjFDNjBENzEwMjFEMDBCN0IwMjNDMDBENzAwMDAKKzoxMEY0RTAwMDJEQzAwQjcwMDJERTAwQkYwMEEzQzQwODcwMDNBQTA0ODUKKzoxMEY0RjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwQkMxMTg3MDAyMUMwNzcKKzoxMEY1MDAwMDBCMzAwMjFDMDA5MzIwNjlDMDBCNzAwMjFDMDA4NzAwQTYKKzoxMEY1MTAwMDJEQzAwQjcxMDJEQzIwQjcxMDIxQzAwODYwMDI4NDAwRUUKKzoxMEY1MjAwMDIwMDAwMDAwMDAwMDAwMDA2MDE0Q0QwMDgzNDAyMEMwRDcKKzoxMEY1MzAwMDRCMzAwMjBDMDE4MzAwMjBDMDBCMzAwMjBDMDA5MzgwODIKKzoxMEY1NDAwMDJDQzAwQjMwMDJDQzAxQjMwMDIwQzAwODMwMjI5ODA0M0MKKzoxMEY1NTAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkYyMENBQzAzMjgwQTMKKzoxMEY1NjAwMDBGRjAwMzNFMDA5RjAwM0E4MDBGRjAwQjNDMDBDRjk4NTUKKzoxMEY1NzAwMDNFQzAwRkY2MDNGRjAwRkYwMDMxRTAyQ0IwMDNBRTA0RTUKKzoxMEY1ODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwQ0M4MEZCMDAzRTUwQzYKKzoxMEY1OTAwMDBGQjAwM0FDMDJGQjAwN0U1MDBGQjAwM0VDMDBGQjAwODkKKzoxMEY1QTAwMDNFQzAwRkIyMDNFQzIwRjMwMDNFQzYwRjkwMDNBMDAwNTQKKzoxMEY1QjAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMkNGOTg3M0M4NkEKKzoxMEY1QzAwMDBGNzAwMzNDMDBGRjAwMzMyODBGQjAwMjFDMDA0RjAwRjcKKzoxMEY1RDAwMDNGQzAwRkYwMDNGQzAwRkYwMTMzQzAwQ0U0MDNFNDA0NjAKKzoxMEY1RTAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NkMwMDgzODBBMkY4NUUKKzoxMEY1RjAwMDBCQjA0MjJDMDBCQjAwMzIxMDBGQjAwMzZDMDRBQjAwMDgKKzoxMEY2MDAwMDJFQzAwQkIwMTJFQzA0RUIwMDIyQzA0QTk0ODJFMDAwNDIKKzoxMEY2MTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1NkMwMDhBMDAyMjAwM0QKKzoxMEY2MjAwMDBCQjAwMjJDMDBCMzAwQTJDMDBCMzAwMkFDMDBBQjA0NDQKKzoxMEY2MzAwMDJFQzAwQkIwNDJFQzAwQkIwMDIyQzAwOEIwMjJFMDAwOUMKKzoxMEY2NDAwMDQwMDAwMDAwMDAwMDAwMDAwODAwMEMwMDhCMDEyMDAwQkEKKzoxMEY2NTAwMDBCMzAwNjBDMDBCMzAwMjBDMDBBMzIwQUNDMDBBMzAwMTUKKzoxMEY2NjAwMDJDQzAwQjMwMDJDQzAwQTMwMDIyQzA0QTAwMTJDMjAxMDEKKzoxMEY2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NkMwMDhCMDQyMkMwQTUKKzoxMEY2ODAwMDBGRjEwMzFDMDBGRjA0MzJDMDBCRjIwM0JDMDBFRjAwQkIKKzoxMEY2OTAwMDNFQzAwN0YwMDNGQzgwRkYwMEIyQzAwQ0EwMDNFMDAzRjMKKzoxMEY2QTAwMDUwMDAwMDAwMDAwMDAwMDBBMDE5REMwMEY1MDAzRkMwODEKKzoxMEY2QjAwMDBGRjAwM0ZDMDFGRjAyM0JDMDBGRjEwMzdDMDBGRjAwRDEKKzoxMEY2QzAwMDNGQzAwRkYwMTNGQzQwRUYwMDNGQzAwRkMwMDNFODA2M0YKKzoxMEY2RDAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1RjI0MENDODAzNzIwMTAKKzoxMEY2RTAwMDBDRDgwM0IwNDRGQzA4M0YwRTBGQzEwM0ZDMDBDQzk0QkYKKzoxMEY2RjAwMDNGMEEyRUM0MDM3RDgwQ0YxMDNGQzAwRkMwODMzMDAwNkYKKzoxMEY3MDAwMDcwMDAwMDAwMDAwMDAwMDA4MDA4RTA5MDg4MDIyMjgxNjQKKzoxMEY3MTAwMDA4OTIxM0E0NDAzQjYwMjIxODBCODEwMkZDRDQ4MTAwQTQKKzoxMEY3MjAwMDNBQjAwQTk0MDIzRDQwQUY2MzJGREYwQjk4MDAyMDA0RUIKKzoxMEY3MzAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1RTAwMDg4MDAyMDQwNDQKKzoxMEY3NDAwMDg4MzA4MkMwMDBCMDA4Mjg4MDBBMTAwMkNDMjA4MDAxRDYKKzoxMEY3NTAwMDJDNDAxQjA2MDI4QzkwOTM2MDY4QzA0QTAwNDIyMjAxMzQKKzoxMEY3NjAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1QTAwMjg4MDAyMkMwNTgKKzoxMEY3NzAwMDA4QjAwMkU0MjBCQjg4MjY5ODBCODA0MkNDMTg4QTAwOEYKKzoxMEY3ODAwMDJFQzIxQjk4MDJBQzAwQUIwMDJFQzAwQjk4ODIzMDA0MzYKKzoxMEY3OTAwMDYwMDAwMDAwMDAwMDAwMDAwMDExRTNDMENCMDIzMjAwNTYKKzoxMEY3QTAwMDJDODAwM0FFMDhCOTAwM0U3MDBGQjkwM0VDMDI0ODQ4NDQKKzoxMEY3QjAwMDNDQzAwRjhDOTNFQzAwREIwMDFBQzAwRUFDMDMxMDA0QUQKKzoxMEY3QzAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjIwMEZGMDBCQjgwRkMKKzoxMEY3RDAwMDBGQzA0M0I2NDBCRDAwM0I2MDBGRTgwM0ZDMDBGRjk0NDAKKzoxMEY3RTAwMDNCRTQwRTYwMEY2QzA4RUYwMTNGQzAwRjYwMDNGODAwQjAKKzoxMEY3RjAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTEwMEZCMDAzRTYwMUYKKzoxMEY4MDAwMDBGQTAwM0VEMDBGOTQwM0EwMDBGOTAwM0VDMDJDOTA0ODkKKzoxMEY4MTAwMDMyRDAwRjkwMDMyQzA4REIwMEI2QzAwREI0MDNEMDA0MjcKKzoxMEY4MjAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MDAwMEIzODkyRUUwQTEKKzoxMEY4MzAwMDBCQTQwM0E0MDFCOTAwMkUwMTBCOTA0MkZDMTA4OTUwQzcKKzoxMEY4NDAwMEEyQzA4REI0MDIzQzQ0OEYwMDIzQzAwOEIwMDJGMjAwNzUKKzoxMEY4NTAwMDQwMDAwMDAwMDAwMDAwMDBDMDA0MEMwMEIwODAyRTAwM0EKKzoxMEY4NjAwMDBCMTIwMkM4MDBCQTAwMkNDMDBCMjAwMkNDMDBBMjAwNzAKKzoxMEY4NzAwMDIwMDAyQjJEOUEyRTQyODMwMDI4QzAwODIwMDJGODAwNzkKKzoxMEY4ODAwMDUwMDAwMDAwMDAwMDAwMDAyMDAwMUUwNEI0ODAyREEwRTUKKzoxMEY4OTAwMDBCNTgwMjkyMDBCNjgwMkRFMDBCNjgwMkRFNDBBNjgwNzUKKzoxMEY4QTAwMDIxMjQyOTQ4MDIxRTgwODc4MDY5RTAwODYxMDJDODAwN0YKKzoxMEY4QjAwMDQwMDAwMDAwMDAwMDAwMDA0ODE4MEMwMEYwMzAzQzRDRjQKKzoxMEY4QzAwMDBGMzIwM0M4ODBCMjAwMzg4MDBGMUIwM0VDMDBFMDMwMTkKKzoxMEY4RDAwMDMwMDQwRkIxMDMwRTg1Q0IwMDNBQzAwQzMxMDNEMjAyQzUKKzoxMEY4RTAwMDAwMDAwMDAwMDAwMDAwMDA0MDFDQkMwMEZDMTEzRkM0RjAKKzoxMEY4RjAwMDBGQjgxM0IwMDRGRTAyM0Y4MDBGQzAwM0ZEMDBERjEyRkIKKzoxMEY5MDAwMDFEMDQwRkQwNDNCQzAxRUYxMDMzQzQwRUYzMDNEMDA2MjcKKzoxMEY5MTAwMDYwMDAwMDAwMDAwMDAwMDAwODA1RUUwMENCMDAzRTAwODMKKzoxMEY5MjAwMDBGODAwMzI4MDBGODAwM0U0MDNEQjAwM0VGMDhDOTAwRjcKKzoxMEY5MzAwMDNBMDAwQ0EwMDNFQzk4RkIyMDMyRDIwQ0E4MDMyQTAyNTgKKzoxMEY5NDAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMDg3MDEyRDgwMUQKKzoxMEY5NTAwMDBCNDA0MjFDMDQzNzAwQTE0MDA4NjAwMkNDODA4NzAwQTUKKzoxMEY5NjAwMDJEODAyRTcwMDJEQ0E5QjcyODIxRDAwODcwMDIxMjAwNjkKKzoxMEY5NzAwMDYwMDAwMDAwMDAwMDAwMDAyMDAwQkUwMjg3ODAyRDYwQjMKKzoxMEY5ODAwMDRCRTgwMjVBMDFCNDg4MjhFMDg4NzhDMkRFNTI4NkMwNkIKKzoxMEY5OTAwMDI5NjAwODY4MDJERTQwQjM5MkUxRTgyODI4MDI3MDAwN0UKKzoxMEY5QTAwMDIwMDAwMDAwMDAwMDAwMDA2ODE0Q0MwMDhCODAyRUMwRjYKKzoxMEY5QjAwMDBCMjAwMjREODA5QjIwMjBFMDA4MzgwMkNDMDA4MzgwODEKKzoxMEY5QzAwMDJDQzAwQUIwMDJDQzA4QjMwMDIwQzAwODMxMDI1MjA0OTcKKzoxMEY5RDAwMDMwMDAwMDAwMDAwMDAwMDBFODA1QTgwMENBRTAzRTgwRkEKKzoxMEY5RTAwMDFGQTQwQjc5MDBGRTAwM0Y4MjFERTAwM0U4MDBDRTQwMUIKKzoxMEY5RjAwMDNCODgyQ0U0MDNFODAxRkEwMDMyODAwQ0U4MDM3QTA0MjcKKzoxMEZBMDAwMDYwMDAwMDAwMDAwMDAwMDA0ODExQTAwMEY4MDkzRTAwNUUKKzoxMEZBMTAwMDhGQzA4M0EwMThGODAwM0MyMDBGODgwM0UwMDBGODA4OEUKKzoxMEZBMjAwMDNFMjAwRTgwODNFMTAxRjAwMDNDMDAwRjgwMEI5MjAwMkQKKzoxMEZBMzAwMDMwMDAwMDAwMDAwMDAwMDAwODEwQTQwMEY5NDIzMjQwMkQKKzoxMEZBNDAwMDRDOTgwMzA0MDBDOTAwM0E0MDBGOTAyMzI0MDBCOTgxNjgKKzoxMEZBNTAwMDNDNDAwQzkyMDMyNDAwRjkwNTMyNDA2QzkwQzNDMjA0NzAKKzoxMEZBNjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0MjQxNEI5MDBBMjU0RkIKKzoxMEZBNzAwMDA4OUIxQTI0MDI4OTAwMjI0MDI4OTAwMkE0MDBCOTkwMTEKKzoxMEZBODAwMDJFNDAyODlDODIyNTA0QjkwMDIyNDAwODk4MTJFMDAwRUMKKzoxMEZBOTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEFEMDAyMzQwMDUKKzoxMEZBQTAwMDA4NTAwMjY0MDA4OTAwMkE0MDA4MTAwMjY0MDBCOTAwNkUKKzoxMEZBQjAwMDZFNDAwODkwMDIyNTAwQTkwMDIyNDAwODkxMDZDNjAwNjkKKzoxMEZBQzAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MTQwMEI1MTBBMTQ0MkMKKzoxMEZBRDAwMDI4NTAwMjQ0ODA4MTMwMjA0ODA4MTIwMjg0NDBCMTgwQkUKKzoxMEZBRTAwMDZDQzgwODEyMDIwNDgwQjEzNDIwNDgwODEyMDJDMjAxMTYKKzoxMEZBRjAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEU4NDAzMjkwQjYKKzoxMEZCMDAwMDBDQzUwMzYxNDBDMDQwM0ExNDBGODUwMzIxQjBGODUwODIKKzoxMEZCMTAwMDNFMDAwQzg1MDMyMTQwRjg0MEIwMTQwQzgwMDNFRTAxMzgKKzoxMEZCMjAwMDUwMDAwMDAwMDAwMDAwMDBCODFEQzQwNEY5MjIwRTQ4NzcKKzoxMEZCMzAwMDBGMTAxM0I0NDBGRDMwM0Y0NDRGRDEwMEU0ODRGRjAxNjcKKzoxMEZCNDAwMDNENDQwRkQxMEJFNDQwRjkzMDNFNDQwRkQxMDNFNjA0QUQKKzoxMEZCNTAwMDcwMDAwMDAwMDAwMDAwMDAzODA1RTQwMERENDAzRjUwNjgKKzoxMEZCNjAwMDBDRDAwMzJDMDBDOTAwMzY0MDBGOTAxMzI3MDRGNTAxNzgKKzoxMEZCNzAwMDM3NDAwQ0YwMDNGNjIwRjlBODMyNjgwQ0QwMDNDNjAwMTkKKzoxMEZCODAwMDcwMDAwMDAwMDAwMDAwMDAxODAwRTAwMDg4QTAyRTI4OEYKKzoxMEZCOTAwMDI4ODAwMjIwMDA4OEEwMjIwMDBCODAwQTYyODBCODAwMjIKKzoxMEZCQTAwMDIyMDAwODgwMDJFMTAwQjhFMDIyM0EwOEEwMDJDRTA0NTgKKzoxMEZCQjAwMDMwMDAwMDAwMDAwMDAwMDA0ODAwODQwMjgxMDAyRTQwNTgKKzoxMEZCQzAwMDA4MTAwQTQ0MDI4MTA4MjQ0MDBBMTAwMjQ1ODBCOTAwNDYKKzoxMEZCRDAwMDI0NDAyOTEwMDJDNDAwQjEwODI0NDQwODEwMDJDMjAxQzQKKzoxMEZCRTAwMDcwMDAwMDAwMDAwMDAwMDAxODE0QTQwNDg5MDEyRTUwQzkKKzoxMEZCRjAwMDQ4QjIwMjY0MDA5MTAwMjI0NjBCOTAwMjY0MDBCOTAxRjEKKzoxMEZDMDAwMDI2QzAwOUIwMTJFNDAwQjEwMDI2NDAwODkwMDJDNjA0RTQKKzoxMEZDMTAwMDYwMDAwMDAwMDAwMDAwMDBBMDA0RTQwMEM5MDAzQzQwQjcKKzoxMEZDMjAwMDBDOTAwMzY0MDBDOTAyMzY1MDBFOTMwMzI0MDBGOTkwMkYKKzoxMEZDMzAwMDM2NDgwRDk0ODNFNDA4RjkwMEI2NDAwQzk0MDNFODA0QjgKKzoxMEZDNDAwMDcwMDAwMDAwMDAwMDAwMDA2ODEwQTQwMEU5MDAzRTQwQzEKKzoxMEZDNTAwMDBGOTAxM0E0MDBFOTAyMkU2MTA1OTAwM0E0MDBGOTAwOUYKKzoxMEZDNjAwMDNBNDAwRTkwNDNFNDEwRjkwMDM4NDAyRjkwMDNDQTAwNDgKKzoxMEZDNzAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEQ4MDEzMjA0M0QKKzoxMEZDODAwMDBGODA0M0MwMDFDODAwQjIwMTBDODAwMzIwMDBDODQwQUYKKzoxMEZDOTAwMDMwMDA4Qzg0ODNFMDAwQzgwMDMyMDA2Qzg0MDNDQTA0MDYKKzoxMEZDQTAwMDIwMDAwMDAwMDAwMDAwMDAwODA0MjgwMEJBMDAyMzgwQTMKKzoxMEZDQjAwMDBCRUEwMkU4MDBBQTAwMjI4MDA4QTAwMjI4MDA4NjIwQTEKKzoxMEZDQzAwMDM3QTA4REU0MDJGODAwREEwMDIyODAwOEEwMDJDQTAwMDIKKzoxMEZDRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA1NkMwMEIzMDAyMEMwRDgKKzoxMEZDRTAwMDBCQjgwMjRDMDQ4MzAwMjBDMDA4QjAwMjBDMDI4MzAwNTEKKzoxMEZDRjAwMDIwNDAyODM0MDJDRTkwODMwMEEwQzAwODMwMDJDQTAwMDEKKzoxMEZEMDAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUNDMEI1ODgyMTQwMDgKKzoxMEZEMTAwMDBCNzAwMkRDODBBMzIwMjFFMDQ4MzI0MjBFOTA4RTAxNUQKKzoxMEZEMjAwMDY1NTAwOTcwMDJERTIwOTMyMTIxQzAwODcwMDJFODAwQUUKKzoxMEZEMzAwMDQwMDAwMDAwMDAwMDAwMDAyODE4MUUwMEZGODBCMUEwNTUKKzoxMEZENDAwMDBGNDgwMjdFMDA4N0EwMzNFMDI4N0EwQjFGMDBDNDgwOTIKKzoxMEZENTAwMDMxNjA4QzU4MDNGRTAwQzdDODMzRTgwQzU4MDNFQTAyMzAKKzoxMEZENjAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEZGMDAzRTAwODUKKzoxMEZENzAwMDBGOTAyM0VDQTBGQjQwM0VDMDhGQjUwM0VEODBGODAwNTAKKzoxMEZEODAwMDNDNDAwRkIwMDNFODAwRkIwMjNFRDAwRjkwMDNDMjA2RDgKKzoxMEZEOTAwMDYwMDAwMDAwMDAwMDAwMDA2MDA0QkUwMEZGODAzRkUwNDMKKzoxMEZEQTAwMDBGRDkwM0ZFMjBDRkM4MzNFQThGRkMwMzNGMDBGRDgwNEMKKzoxMEZEQjAwMDNGNjAwRUU4MDNGMjAwQ0Y4MDJGRkUwQzc4MDMwMDAwQjYKKzoxMEZEQzAwMDcwMDAwMDAwMDAwMDAwMDBBODAwOUMwMEI1MDIyREMwREIKKzoxMEZERDAwMDBCNTg0MkRDODBDRjAwMjFDMTBCMzAxMjFDNDBCNDAyMTIKKzoxMEZERTAwMDJENDYwODcxMTJDODAwRTcwMDJEQzQwODcwMDM2QTA0OEMKKzoxMEZERjAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEI3MDAyRDAyMjEKKzoxMEZFMDAwMDBCNDYwMkRDMDg5NzAwMjFDOTBBMzAyMjFDMDBCNDAwMEUKKzoxMEZFMTAwMDJENDAwQTUwODJDNDAwQjcwMDJDQzgyODUwMDI0MDEwNjAKKzoxMEZFMjAwMDIwMDAwMDAwMDAwMDAwMDA0MDE0OEMxOEIzMDAyRTIwQjkKKzoxMEZFMzAwMDBCMTgwMkNGNEE4M0MyMjBDMTBCMzQyMjBDMDRCODU4REQKKzoxMEZFNDAwMDJDNDAwQjI4MDJDODAwQTMwMDJDQzAwODE0MDI0ODA0NTAKKzoxMEZFNTAwMDMwMDAwMDAwMDAwMDAwMDBBODA1QkMwMEZCMDAzRTgwNTAKKzoxMEZFNjAwMDBGQTAwMkZDMDBERkEwQjNDMDBFRjAwQjNDMDBGQkMwRjMKKzoxMEZFNzAwMDNDQTAwRUJEMDNFQzAwRkYwMDNGQzAwQzMwMDM2QTA0NDEKKzoxMEZFODAwMDYwMDAwMDAwMDAwMDAwMDBBMDEwRUMwMEY5MDAzRTAxM0UKKzoxMEZFOTAwMDhGQjE0M0VDMDBGMzAwM0VDMDRGQjAxM0VDMDBGQjAwMDkKKzoxMEZFQTAwMDNFODAwQzg0MDNFMTAwNzMwMDNFQzEwRkIyNDNFMDAwQ0EKKzoxMEZFQjAwMDMwMDAwMDAwMDAwMDAwMDAwMTUwRkMxMEZGODAzN0MwM0YKKzoxMEZFQzAwMDBDRTAwM0ZDMjBGRjA4MzNDMDBGRjA4M0JDMDBGRjAwRjAKKzoxMEZFRDAwMDMzQzAyRTQwMDMxQzAxQ0YwMDExQzA0Q0QwMDMwMDQ0OUUKKzoxMEZFRTAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMwNEIzMDIyMjcyQTQKKzoxMEZFRjAwMDA4QTExNkVDMDBCQjA0MjJDMDBCQjA0MkVDMDBCQTE5RkEKKzoxMEZGMDAwMEI2RDAwODlDNEEyNjgwREIwMDIyQzAwODkwMDM2MDQwREYKKzoxMEZGMTAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMEI5MTA2MjIwRDUKKzoxMEZGMjAwMDQ4QTAwMkVDMDBCQjAwMjJDMDBCQjAwMkVDMTBCQjAwRUEKKzoxMEZGMzAwMDY2MDgwQUE4MTIyNjEwOUIwMDJBQzAyOEIwMjYyMDAwQjYKKzoxMEZGNDAwMDQwMDAwMDAwMDAwMDAwMDAwODAwMEMwMEI5MDAyMDAwODQKKzoxMEZGNTAwMDA4MzIwMkNDMDRCMzAwMjBDMDRCMzAwMkNDMDBCMzAwMDYKKzoxMEZGNjAwMDIwMDAwODAwMDIwMTAwOTMwMDI4QzAwODMwMDY0MjExNUEKKzoxMEZGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDNkMwMEY5MDBCMjQwMEUKKzoxMEZGODAwMDBDODIwMkRDMDFGRjAwQjJDMDBCRjEwM0JDMDBGOTAwREYKKzoxMEZGOTAwMDI2NDAyRTgwMDMyMTA0Q0YwMEJCQzAwQzkwMDMwMDAzMzkKKzoxMEZGQTAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZEMDAzRjQwQ0MKKzoxMEZGQjAwMDBGODEwM0ZDMDBGRjAwM0ZDMDBGRjAyM0ZDMDBGQzAwOUEKKzoxMEZGQzAwMDJENDAyRkMwMDNGMDg4RkYwMDM3QzA4RkQwMDNFODAyMTgKKzoxMEZGRDAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkU0MEZGODAzM0MyM0EKKzoxMEZGRTAwMDBDRjgwMzdDQTBGRjkwM0ZDNDJDQjQwM0JDODBDRjQwMkUKKzoxMEZGRjAwMDM3RTAwRkYxOTM2RTQ0QkYzMDNGMjAyQ0Y4NjNGMDA0REMKKzoxMDgwMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUMwMEVCMjAyM0YwNTYKKzoxMDgwMjAwMDA4Qjg1MjNEMDBCMzAwMkVEQzA4RjQ0MjFDNDI4QjQwREQKKzoxMDgwMzAwMDIyQzgwQkY2MDM2Qzg4QkIzMDJFMDAwOEIyMDJFMDA0QTUKKzoxMDgwNDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0MwMEJCMDgyMEMwMDQKKzoxMDgwNTAwMDA4MzAwMjRDQTBCMzIwMjY4MDg4MzYwMkNDQTA5MzYwNjIKKzoxMDgwNjAwMEE0QzIwQTMyNDI0QzkwQjMyMDJDMEI4ODMwODJFMjAxMjkKKzoxMDgwNzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwOEJCMjJBMkMwQzgKKzoxMDgwODAwMDA4QjAwMjJDMDBCQjAwMkU5MDA4QjAwMkVDMDA5QjAwNTAKKzoxMDgwOTAwMDIyQzAwQkIwMDI2QzAwQkIwMjJFMjAwOEIwMDJGMDAwMjAKKzoxMDgwQTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMEIxODMzMkMwMDkKKzoxMDgwQjAwMDBDMUEwMzZDMTBGQjAwMzRDMDBDQjAwM0VDMDhEQTAwOUYKKzoxMDgwQzAwMDM2QzAwRUIwMEI2QzAwRkIwMDNFMjgwQ0IwMDJEMDAwOTYKKzoxMDgwRDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkMwMEVEODAzRkMwMjcKKzoxMDgwRTAwMDBGRDQwM0VDMDBGRjAwM0ZDODBGQjAwMzNDMDBFRTQwOEMKKzoxMDgwRjAwMDNGQzAwRjcwMDNGQzAwRkYwMDNGODAwRkYwMDNGODAwNEIKKzoxMDgxMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEZCMjBCMEMwODgKKzoxMDgxMTAwMDBGQjQwM0FDMDJDQjAwMzI5MDBFQjAwMzZDMDBFQjAwNDYKKzoxMDgxMjAwMDNBQzAwQ0IwMDJFQzAwRkIwMDNFOTEwRkIwMDM5MDAwOEYKKzoxMDgxMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMEJCODAyM0Q3RjEKKzoxMDgxNDAwMDBCOTAwMjNDMTQ4QjAwNkEwODI4RjAwMEJDMDA4MzAwRUUKKzoxMDgxNTAwMEJFQzA4OEYwMTMyQzAwRUYwMDJFODAwQkIwMDdCMjAwRDkKKzoxMDgxNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEIzNDAyMEQwQkIKKzoxMDgxNzAwMDBCMjgwMjhDMDA4MzAxMjBDMDFBQjgwMDZDMTBBMTAwRUIKKzoxMDgxODAwMDY4QzAyQTMwMDI4QzAwQjMwMjJFMDA0QjMwMDJGODA0ODMKKzoxMDgxOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwMEI3QTAyMUUwRjgKKzoxMDgxQTAwMDBCRUNDMjFFMDQ4NzgwMjlFNDA4Nzk4MjlFNDBBRjkwQzAKKzoxMDgxQjAwMDI5RTAwQTM4MDAxRTAwQTc5MDJEMjQwQjc4MDI4ODAwQzEKKzoxMDgxQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEM1MEZCMDkzMEMwQ0YKKzoxMDgxRDAwMDBGMjAwMjhDNDBDMzAwMjBDMDBBMzgwMzRDNDRFMTAwNDkKKzoxMDgxRTAwMEFBQzAwRTMxNDM4RTAwRjMwMDNDMDAwRjMwMDNEMjAyRDAKKzoxMDgxRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDREQkMwMEZGMjAzRkQwMDgKKzoxMDgyMDAwMDRGNzAwM0ZDMDBGRjAwM0RDMDBGRjM0M0ZDNDBENzAwNUMKKzoxMDgyMTAwMEJGQzAwREY0QzNGQzQwRkYwMDNGNDAwRkYwMDNEMDA2ODkKKzoxMDgyMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUMwMEZCMDAzMkQwNTgKKzoxMDgyMzAwMDBEOTAwMUVEQzBGQjAwM0VDMDFGQkEwM0FDQzBDODAwRUEKKzoxMDgyNDAwMDMyRTA4REI0NDNFQzAwRkIwMDM2QTAwQ0IwMDM2QTAwQjIKKzoxMDgyNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMEI3MDAyMUM4MTkKKzoxMDgyNjAwMDA4NjAwMkRDMjBCNzAwMkRDMDBGNzRBMjFDMjhENjAwQzUKKzoxMDgyNzAwMDM1QzAwODcyMDI1QzA4Qjc0NEExODA0ODcwMDIxMjAwNDEKKzoxMDgyODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMEI3ODAyMEU0RjUKKzoxMDgyOTAwMDA5NzgyNkRFMDBCNzgwMkRFMjBBNzAxMjhDODg4MTgwNzIKKzoxMDgyQTAwMDIxRTAwOTc4MDJERTAwQjNBMDI1QTAyODc4MDI3MDA0M0UKKzoxMDgyQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMUJCODAyMEMwNUEKKzoxMDgyQzAwMDA4MzA0MkVDMDBCMzAwMkNDMDBBMzAyMjBDMDA5MzAwQUUKKzoxMDgyRDAwMDI0QzEwODMwMDJDQzAwQjMwMDIwRTAwOEIwMDIxMjA0MzAKKzoxMDgyRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMEZBMDhCMjgwODUKKzoxMDgyRjAwMDBERTIwM0U4MDBGQTAwM0Y4MDBBQTAwM0E4MDBDRTUwNzgKKzoxMDgzMDAwMDMyODAwNUEwMDNFODAwRkEwMDM3QTgwQ0EwMDM3QTA0MjUKKzoxMDgzMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwNjAwOEY4MDAzQzAwMTkKKzoxMDgzMjAwMDBGODgwMUUwMDBGODA0M0MwMDRGMDAxM0MwMDBGODAwODMKKzoxMDgzMzAwMDNFMDAwRjgwMDM2MDAwRjgwMjNFMDEwRjgwMDNEMjAwNzAKKzoxMDgzNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEY5OTAxMjQwMjYKKzoxMDgzNTAwMDBDOTAwM0E0MDBDOTAwM0U3MDBFOTQzMzI0MDhDOTAwOTkKKzoxMDgzNjAwMDJBNDAwQjkwMDNFNDAwRjkwMDNBNDAwRjkwMDMwMjA0MDYKKzoxMDgzNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5NDIyMjYwNjgKKzoxMDgzODAwMDA4MTAwMjI0MDA4OTAzMkU0MDA4OTAwMkE0MDE4MTA0RjEKKzoxMDgzOTAwMDNFNDAwQjkwMDJFNDAwQjkwMjIyNDAwRTkwMDIyMDAwMDEKKzoxMDgzQTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEI5NDAyQTRBMEYKKzoxMDgzQjAwMDA4OTEwMkE0MDA4OTAwMkU0MDFBOTAwQTI0MDQ4OTAwMjIKKzoxMDgzQzAwMDJBNDAwQjkwMDJFNDAwQjEwMDJBNDAwQjkwMDIwNjAwMDQKKzoxMDgzRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMEIxMDFBODQ4QUIKKzoxMDgzRTAwMDg4OTAwMjA0ODA4MTQwMkM1MDE4MTQwQTg0MTA4OTQwMUYKKzoxMDgzRjAwMDJDNDAwQjEwMDJDNDAwMzEyMDIwNDAwQTEwMEEwMjAxNTgKKzoxMDg0MDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEYwNTAzQTAwOEMKKzoxMDg0MTAwMDJDQTAwMkExNDJDODAwM0UwMERFMDAyMzIxNDI4ODAwQjkKKzoxMDg0MjAwMDM4MTQwRjg1MDNFMTQwRjg1MDM4MTQwRjA1MDMyRTAxNkUKKzoxMDg0MzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERTQwOEZEMDAzNjQ0RDQKKzoxMDg0NDAwMDBGRDAwMzY0NDBGOTAwM0Q1MDBGOTQwM0U1MDA3RDQwRDgKKzoxMDg0NTAwMDNFNDAwRjk0MDNFNDAwRjkxMDNGNDAwRTkwMDNFNjA0MDEKKzoxMDg0NjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTQwMEZENDAzMzY4QzMKKzoxMDg0NzAwMDBDRDAwM0U3ODFGOTAwMzM3ODBERDgxMzI2QTBDREEwRTYKKzoxMDg0ODAwMDMyNDAwRDlCMDMyNDAwRjlBMDNDNDQyQzkwMDc4NjAwNDkKKzoxMDg0OTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTAwMEI4QTBBMjEwM0EKKzoxMDg0QTAwMDE4ODAwMzgyODRCODgwMzYyQzJFMEYwMkEzQTBEOEUwNTcKKzoxMDg0QjAwMDM2MjI4QjA4MDM0MkEwRjhFMDJFMjgwODg4MDJDRTA0NUEKKzoxMDg0QzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMEIxMDBBMDUwMEEKKzoxMDg0RDAwMDI4MzAwMkM1ODBCMTA4MjA0MDA5MTBBMjQ0MDg4MTQ4MTQKKzoxMDg0RTAwMDIwNDAwQjE0MDIwNDgwQjEzODJDNDgwODEyODI4MjAxMEIKKzoxMDg0RjAwMDcwMDAwMDAwMDAwMDAwMDAxODExQTQwMEIxMDAyMjQwMkMKKzoxMDg1MDAwMDA4OTIwMkU0MDBCOTAyMjY1ODRBOTAwMkU0MDg5OTQwMTEKKzoxMDg1MTAwMDI2NDAwQjkwMDI2NDA4QjkwMTJDNDgwODkwMTJDNjA0NEEKKzoxMDg1MjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5ODAzMjQwNjcKKzoxMDg1MzAwMDA4OTg4M0U0MDRCOTAxMzA0MDBEOTAwQjY0MDJDOTAwMkYKKzoxMDg1NDAwMDMyNDAwRjkwMDMyNDAwRjkwMDFFNTgwQzkwMDNBODA0MzkKKzoxMDg1NTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5MjAzQzQwNDkKKzoxMDg1NjAwMDBGOTgwM0E0MDBCOTAwM0U0MjhFMTA0Qjg0MDRGOTAwMUEKKzoxMDg1NzAwMDNFNDA4RjkwMDNFNDAwRTkwMDNFNDAwRjkwMDNDQTAwQTQKKzoxMDg1ODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEQ4MDAzMjA4QTEKKzoxMDg1OTAwMDBGODQ4M0EwMDRDODA0M0UwMDgzODAwMTIwMDBDMDAwMzMKKzoxMDg1QTAwMDMyMDAwRjAwMDNBMDAwQzgwMDMyMTA0RTgwMTNDQTA0MkUKKzoxMDg1QjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDhFOTBBMzgwMDUKKzoxMDg1QzAwMDBCRTQwMjI4MDBDQTAwMkY4MDRBQTAxM0E4MDBBQTAwQ0EKKzoxMDg1RDAwMDM2ODEwQkEwMDIyODAwOEEwMDIyODAwOEEwMDM4QTAwQUUKKzoxMDg1RTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDkzQzAyMEQwOEYKKzoxMDg1RjAwMDBCMzQwMjhDMDA4QjAwMkNGMDhCMTgwMjRDMDA4MzAwOTMKKzoxMDg2MDAwMDYwQzAwQjMwMDI4QzAyODMwMDI4QzEwQTMwMDJDQTAwMEQKKzoxMDg2MTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUUwMEI0MEI2OUMwNjMKKzoxMDg2MjAwMDA5NTgwNjFFODA5NzEwMkZDMjQ4NzA4MjlDODBBNzA4QTgKKzoxMDg2MzAwMDI1Q0MwQjcwMDIxRTgxODdBMkFCQzQwODczMDJFODAwMzAKKzoxMDg2NDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4M0UxMERDODQyMUUwOEIKKzoxMDg2NTAwMDBGNzg0MjlGMDJDNzg4M0RFMDJGNzEwMzRFMDBDRjgwMDQKKzoxMDg2NjAwMDIxRTIwRjc4ODM5RTQ5Q0ZEMDM5RTgwRTc4MDNFQTAyRTEKKzoxMDg2NzAwMDAwMDAwMDAwMDAwMDAwMDAwODREQUM0MENBMDAzNjAwQjkKKzoxMDg2ODAwMDhGMzAyM0VDQThFQjQwM0NDMDBGOTY0M0VEODBGQjAwRkQKKzoxMDg2OTAwMDNFRDg4RkIxNDNFRDgwRkIyMDM2Q0EwRkIwQTM4MjA2Q0YKKzoxMDg2QTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkU4MEZDODAzMUUwNUEKKzoxMDg2QjAwMDA1QUExMEZFNDRGRjkwM0ZFMUNGRjkxNzNGMjBENzgwNzUKKzoxMDg2QzAwMDhCRTQwRkY4MDMzRTMwRkY4MDM3RTAwRkY4MDA0MDAwRTYKKzoxMDg2RDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEJEMTAyMUMwMjcKKzoxMDg2RTAwMDA4NEEwMkRDQzBCNzAwMkRDMjBDRDMwMjFDODA4NzAwRjAKKzoxMDg2RjAwMDI5QzA0QjcyMDIxQzAwQjcwMTIxQzAwQkYwMTIyQTA0RTIKKzoxMDg3MDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUM5MDM0MDAyMTgwMDgKKzoxMDg3MTAwMDA5NzAwMDVDMENCNzAwMkRDNDA4NTAxQTBDMDA5NzAwQkIKKzoxMDg3MjAwMDIxQzA0QjMwMDIxQzAwQjcwMDI1QzAwQjcwMDI0MDAwNzYKKzoxMDg3MzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MwMEIwMDA2MDAwMDkKKzoxMDg3NDAwMDA4M0UwMkNDMDBCMzAyMENFMDJCQjAwMjBDMDA5MzAwRjgKKzoxMDg3NTAwMDI4QzAwQkIwMDIyQzEwQjMwMDIwRDYwMzMwMDIwODA0NEUKKzoxMDg3NjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMEZCMDBCMjAwQjMKKzoxMDg3NzAwMDA1QkUwMzdDMDBGRjAwM0UyMDBDQjAwMzNDMDBEOTgwMDYKKzoxMDg3ODAwMDMzQzA4QkYwMDMzQzAwRkYwMDM3RTAwRkYwMDM2QTA0QjYKKzoxMDg3OTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEZCMDQzRTAwRDAKKzoxMDg3QTAwMDBGQTQyM0NDMDBGQjAwM0U4MTA4OTAwM0VDMDBFOTE0RTkKKzoxMDg3QjAwMDNFQzAwRkIwMDNFQzEwRkIwMDNFQzAwRkIwMDNFMDAwNjIKKzoxMDg3QzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMEZGMDAzNzgwQjYKKzoxMDg3RDAwMDBGRkEwM0ZDMDBDRjAwM0Y5MDA2REMyMzNDMDBGRDEwQTUKKzoxMDg3RTAwMDMzQzAwRkYwMEIzQzAwNDMwMDMzQzAwRkYwMDNDMDQ0MTQKKzoxMDg3RjAwMDMwMDAwMDAwMDAwMDAwMDA4MTAwNkMwOUJCMTkyMjMyMkIKKzoxMDg4MDAwMDBCQkUwMzZDMDA4QjAwMkM5MDBEQjgwMkFDMDBCMTAwQzUKKzoxMDg4MTAwMEYyQzAwQkIwMTJBQzAwOEIwMDIyQzAwQkIwMDNBMDQwMjIKKzoxMDg4MjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMxMEIzMDAyNjIwN0UKKzoxMDg4MzAwMDBCOTAxMkVDMDE4QjAwMkFDMjBBOTAwMjJDMDBCQjAwQTQKKzoxMDg4NDAwMEEyQzAwQkIwMDIyQzAwQUIwMDJBQzAwQkIwMDJFMDAwQUIKKzoxMDg4NTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMUIzMDAyMDAwRUMKKzoxMDg4NjAwMDBCMDAwMjhDMDA4MzAwMkVDMDBCMzQwMjhDMDBCQjAwNzYKKzoxMDg4NzAwMDIwQzAwQjMwMDIwRDAwQTMwMEEwQzAwQjMwMDI4MjAxMEIKKzoxMDg4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMEJCMDQzNjgwRkEKKzoxMDg4OTAwMDBGQjIwMkZDMDJDRjAyMzhDMDBFRjAwMzNDMDBGQjAwMTYKKzoxMDg4QTAwMDIzQzAwRkYwMDMzRDAyRUYwMDMzQzAwRkYwNDNDMDAzQkQKKzoxMDg4QjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZGMDAzRjAwNzEKKzoxMDg4QzAwMDBGRjQyMzdDMDBGRjAwM0ZDMDBERDAwM0ZDMDBGRjAwMkQKKzoxMDg4RDAwMDNCQzAwRkYwMDNGQzg4REYwMDNGQzAwRkYwMDNBODA2ODkKKzoxMDg4RTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjA1MENFMTIzM0QwMzAKKzoxMDg4RjAwMDRDODY4MzMwODA1RjY4MzNDNDBGRjM4MzNDQzBDQzM4MzAKKzoxMDg5MDAwMEIzMDgwQ0M2MDNGMUEwRkYwMDMzMjQwQ0MyMDNGMDAwMkYKKzoxMDg5MTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUM4MEQyMjAyM0Q4RkUKKzoxMDg5MjAwMDBEOTYwMjg4NjBBRjQwMjNEQzBCRjYwMjNDQzI4ODYwRTMKKzoxMDg5MzAwMDIyNTIwODkxMjJFMTAwQjcyNEEyNDg4QTg0ODI2MDA0NkUKKzoxMDg5NDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzQwMDgxMDBFMEM0ODEKKzoxMDg5NTAwMDBBMDAwMjA0ODBBMzIwQThDMDFCMzAwQTBDMDBBMDAwNUIKKzoxMDg5NjAwMDI4MEMwOTAyMDJDNDgwQjMxQzIyMDgxOTAzMDJFMjExNzgKKzoxMDg5NzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTQwMDk5ODA2MkMwRDMKKzoxMDg5ODAwMDBCQTAzMkE0NTFBQjAwMkFDMDhCQjAwMDBDMDBBOUMwRDAKKzoxMDg5OTAwMDJBMjEwOEI4MjJFMjAwQkIwMDIyODQxQkE4NDI3MDA0RUUKKzoxMDg5QTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RTIwMENCQzkzMkMwQUEKKzoxMDg5QjAwMDBFOEIxMzIyMTBEQjAxMzJDMDBGQjAwQjJDMDA2ODgxMkMKKzoxMDg5QzAwMDNBMjIyQzg4MjNFMzAwRkIwMDMwMzA4RDlDODNEMDA0QjYKKzoxMDg5RDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkE0MEY3MDQzRUMyNTEKKzoxMDg5RTAwMDBERDgyM0Q4MDA3QjAwMzdDMDBGNzAzM0ZDMTBEMjAwQTUKKzoxMDg5RjAwMDM1QzA4RkMwMDNGNDAwRjcwMjNGRTAwRTgwMDNGODAwOUIKKzoxMDhBMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwODEyMEM4MDgzMEMwNTUKKzoxMDhBMTAwMDBDMDA4MzI0NDBDMzg5M0FDMDBFQjAwQjJDMDhDOTQ4MEYKKzoxMDhBMjAwMDcyNTQwRjkxMDNFRDAyRUI4QTNBNjI4QzgwMEIxMDA0QjIKKzoxMDhBMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkIwNDg4NDBBM0MyRUQKKzoxMDhBNDAwMDAyQUUxMjI3NDI4RjQ0MjNDMjBCRjQwMjNEMDAwQTQwQkIKKzoxMDhBNTAwMDIyRTAwQkI1MDJFQzIwOEY0NEEyNDA4REJEMjMzMjAwRjIKKzoxMDhBNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDk0MDgzODEyNEMxNkYKKzoxMDhBNzAwMDA4MjgwMjAxMDA5MzAwQTBFODBBMzA4MjhGNjBCMzkwQkEKKzoxMDhBODAwMDYwQjgwQjI4MTI0QTAwOTMwMDIwOTAwOTIwMDI3ODAwNTkKKzoxMDhBOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwMjg3QTgyNUUwMTEKKzoxMDhBQTAwMDBBN0IwMjFBMDQ4NzgwMjFFNDBCNzg4MjhFMDI5NjkxNTkKKzoxMDhBQjAwMDIxMjEwQjY5NDBEQjQwOTc5MjIzQTA4OTU4ODIwODAwNEUKKzoxMDhBQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MjU4MkMzMDAzNEMwQjgKKzoxMDhBRDAwMDBDOUI0MzA4RDBEMzIwMzhDMDBFQjAwMzhDMDBCMzAwRTkKKzoxMDhBRTAwMDIwODAwNzEwMDNFMDAwRDMxMDM4MTgwRDMwMDM1MjAyMjUKKzoxMDhBRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQjQwMDdGMjAxQkQwREIKKzoxMDhCMDAwMDBGRjEwM0Y4NDBFRjAwM0ZDMDBGQjQwMzdDMjBDRjA0MDcKKzoxMDhCMTAwMEJGNDAwRkYwMDNFNDEwRUYxODNEQzAwRkUwMDNEMDA2OTQKKzoxMDhCMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTgwMEUzMDBCMkM0RjcKKzoxMDhCMzAwMDBDQTAwMzI0MDBEQjY4MzJDODBDQjQwM0VDODBDODgwQUUKKzoxMDhCNDAwMEI2RTAwQ0EwMDMyRTAwQ0JFMEIyNjAwQ0I4MEIyQTAwRkMKKzoxMDhCNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMjg3MDBBMUM4QkUKKzoxMDhCNjAwMDA4NzAwMjFDMDg5NzAyMjFENDA4NzQwMkRDQzAwNzAwQjgKKzoxMDhCNzAwMDIxQzA4ODcwMDIxODAwODMwODIxQzAwODUwMDIxMjA0MjYKKzoxMDhCODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUyMEFEODAyOUUwRDEKKzoxMDhCOTAwMDA4NTgwMjFFMDA5N0IwMjFFODA4NzgwMkRFMTAxNTgwMDAKKzoxMDhCQTAwMDIxQTEwODQ4MDI1RTAwODdBNDY1QTAwODc4MDIzMDAwNzEKKzoxMDhCQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0YxMDgxNzBBOEMwMDEKKzoxMDhCQzAwMDM4MzAwQTBEMDA5MzAwQTBDMTI4MzAwMkNDMDI4Mzg4RkYKKzoxMDhCRDAwMDIwRTAzODM0MEE0RDcyODMwMDI0RTgyODM0ODIxMjA0REQKKzoxMDhCRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QkE0MEVFQzBCQTgwNzYKKzoxMDhCRjAwMDBDRTAwMzM5MTBEQTAwMzI4MDBDQTAwM0U4MDBERUM4NzQKKzoxMDhDMDAwMDMzQTAwQ0UwMDM3QjAwQ0EwMDM3QjEwQ0U0MjMzQTA0MjQKKzoxMDhDMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwQzEwMEY4MDAzNjAwQkQKKzoxMDhDMjAwMDBGODAwM0MwMjAzODAwM0UwMDBGMDAwM0UwMDBGODAyNzAKKzoxMDhDMzAwMDNBMjQwRjgwODNBMDAxRjgwNDNBMDQwRDgwMTNEMjAwNzcKKzoxMDhDNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQ0NEMxMDAzMjQwODEKKzoxMDhDNTAwMDBDOTAzMjI0MENDMTA2Mzg0MDBEOTAwOTA0MDBEOTAwNTQKKzoxMDhDNjAwMDNFNDAwRjE4MDMyNDAwRjkwMTNFNDAwRjkwMDNDMjA0NTgKKzoxMDhDNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwNjg5MDAyQTUwRDMKKzoxMDhDODAwMDA4OTQwQTI0MDA4OTQyMjI1MDBBOTAxMjI1MDA4OTAwODMKKzoxMDhDOTAwMDJFNTAwQjlDMEEyNTEwQjkwMDJFNTAwQjkwMDJFMDAwQkMKKzoxMDhDQTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQyMDg5MDAyMDQyNjgKKzoxMDhDQjAwMDA4MTBDMkFDMTA4OTA4MkE0MjA5OTAwMjI0MjA5OTAwQTkKKzoxMDhDQzAwMDJFNDIwQUIxODIyQzIwQjkwMDZFNDIwQjkwMDJDNjAwREYKKzoxMDhDRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMDgzMDAyODQ4NTEKKzoxMDhDRTAwMDA4MTI2MjhDODA4MTAwMjA0MDAyMTAwMjg0ODA4MTIwNjIKKzoxMDhDRjAwMDJDNDkwQjEyMDYwNDg0QjMwMjZDNDAwQjEyMDJDMjAxMTEKKzoxMDhEMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENDFFMEM4NzgzMDE0RjkKKzoxMDhEMTAwMDRDMDUxM0ExNDJDMDc4MzgxRTBEODc4MzAxNDBEMDUwMDYKKzoxMDhEMjAwMDNDMTQwRTA1MDMwMTQwRjg3ODNDMTQwRjA1MDNFRTAzRDQKKzoxMDhEMzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERkMwMEZGMDAwRTQ0RTEKKzoxMDhENDAwMDJGRjEwMzc0NDBGOTAwM0U0MDBEOTAwMzY0NDBGRDEwODQKKzoxMDhENTAwMDNGNDQwRkQxMDFGNDQwRjkwMTNGQzAwRkQxMDNFNjA2QjMKKzoxMDhENjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RTYyMkU5ODhCMjQwMEIKKzoxMDhENzAwMDBGOTAwMzI0MTZDOThDMzY3QjhGOUM4M0E3OTBDOTAwNjMKKzoxMDhEODAwMDNFNTAwNDk0MTMyNDUwQzlFMDNFNTAwRjkwMDMwNjAwNTcKKzoxMDhEOTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTI4MDg4QTAyMjI4NDcKKzoxMDhEQTAwMDBCOEEwMjJBODA4OEE0MjIzMDA4OEUwQTIyMDI4OEEwMTgKKzoxMDhEQjAwMDJFMjg4OEFBMTIyMjkwODhGNDJFMjAwQkM4MDIwRTA0QjYKKzoxMDhEQzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1RDQyMEE1MDgyMTQyNjIKKzoxMDhERDAwMDBCNTA4MjE0MzE4NTA4MjU0MDBBNTAyMjk0NDA4NTA4QTIKKzoxMDhERTAwMDZENDAwODUwMDI1NDAyOTUwMDJENDgwQjUwODI0MjAxRkMKKzoxMDhERjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1ODQwMDhEMTAyMzQwNTIKKzoxMDhFMDAwMDBCRDAwMDM0MDE4RDAwMjM0MTU4RDAwMjM0MDA4RDA4NkUKKzoxMDhFMTAwMDJGNTAwOEQyMDI3NDgwOUQwMDJGNDgwQkRDMDI0NjA0QkMKKzoxMDhFMjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTc0MEU5QzAzMjQwRUIKKzoxMDhFMzAwMDBGOTAwOTI2MDBDOTA0MzY0MDFGOTAyM0E0MDhDOTQwOUEKKzoxMDhFNDAwMDNFNDAwQzk0MEI2NDIwRDkwMjNFNDEwRjk0MDM2ODA0MDkKKzoxMDhFNTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5ODAzRTQwREUKKzoxMDhFNjAwMDBGMTQwM0M1MDhGOTAwM0U0MDFGOTAyM0U0MDBGOTAwRTkKKzoxMDhFNzAwMDNDNDBBRjk4MDM4NjAwRTkwMDNFNDAwRjEwMEI4QTAwOEIKKzoxMDhFODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQjAwMERDNDBCMzAwQ0IKKzoxMDhFOTAwMDBGQzAwMzMxMDJDNDA0QjEwMDNDNDAwMzEwMDBGQzQwODkKKzoxMDhFQTAwMDMzMDAwQ0M0MDNCMTAwQ0MwMEIzMDAwQ0M0MDNDQTA0RUIKKzoxMDhFQjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDhBODAyMkEwNzEKKzoxMDhFQzAwMDBCQTAwMjJBMDA4QTg0MjJBMTA4QTAwMjI4MDhCQTAxNjUKKzoxMDhFRDAwMDIyODAwOEEwMkIyODAwOEE4MDJBODAwOEUwMDJDQTAwOEQKKzoxMDhFRTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMjlCODEyMEUwQUIKKzoxMDhFRjAwMDhCMzgwNkNFMDA5MzgwMjBDMDA4MzgwMjBDMDBCMzgwNjcKKzoxMDhGMDAwMDZDRTAwQUIwMDI0QzAwOTMwMDIwRTAwODMwMDJDQTAwNzYKKzoxMDhGMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTAwNDgwMDgyMTAyQTEKKzoxMDhGMjAwMDRCNDQwNkQwMjA5MDA4MjEwMjgwNDQwMjEwMDBCNEMwQjcKKzoxMDhGMzAwMDJEMTA0ODQwMDIwMDAwOTQ4OTI5MzAwODQwMDJFODAwQzIKKzoxMDhGNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MzIwMEQ2ODAzMUEwRDgKKzoxMDhGNTAwMDBGRTgwQkNBMDBENjgwMjNBMDA0RjgwQjFBMDBGRjgwOEMKKzoxMDhGNjAwMEJGQTAyRUM4MTNEQTAyNUU4MDczQTAyQzc4MDNFQTAyMzkKKzoxMDhGNzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEY5MDAzRTQwQTkKKzoxMDhGODAwMDBGOTAwMzI0MDBFOTAwM0U0MDBFODAwM0U0MDBGODAwNDcKKzoxMDhGOTAwMDMyNDAwRkIwMDNFNDAxRTkwNDM2NDAwRjgwMDNDMjA2RkIKKzoxMDhGQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMENEODAzMzYwN0UKKzoxMDhGQjAwMDBDRDg0MzM2MDBDRDgwMzM2MDBDRDkyM0JFMDA0RDgwRTEKKzoxMDhGQzAwMDMzNjAwOEY4MEIzRTAwRkQ4NDNGNjAwRkY5MDNDMDAwREEKKzoxMDhGRDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOTAwNERFMDAyMzgwNTMKKzoxMDhGRTAwMDA4NjAwMkI4MjA4RTA0MjM4MDA4NjgwMjEwMDA4RTIwREEKKzoxMDhGRjAwMDIzODIwODQwMDIxMjAwRjYwMDJEODAwQjQxQTBFQTA0RjMKKzoxMDkwMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOTAwMDg0MDAyMTAwQ0IKKzoxMDkwMTAwMDA4NDEwMjUwNDA5NDAwMjEwMDBBNTIwMkQ4MDA4NTAyMDMKKzoxMDkwMjAwMDI1MDQwODQwMjIxODA4QjQwMDJEMTAwQjc4NDBDMDAwMTkKKzoxMDkwMzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0RUUyMjkzMDAyMEMwNTkKKzoxMDkwNDAwMDA4MzgwMkVDMDA5MzAwMjBDMTJBMjAwMjY0MDI4MjEwM0EKKzoxMDkwNTAwMDI0RjAwQTNDNDIyNDI4QjMwMDJDRTAwQjg4ODJDODA0ODgKKzoxMDkwNjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUQwMENCMDBCMkMwMjkKKzoxMDkwNzAwMEFDQkUwMzZFMDJEQjAwQjJDMDFFQTAwM0U0MDBDQTExNDYKKzoxMDkwODAwMEI2RDBBQ0JDMDMyNDAwRkIwMDNFQzBDRjg0MDNFQTA0OEUKKzoxMDkwOTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTA0MEY4MDAzQzAwOUMKKzoxMDkwQTAwMDJGODIwM0EwMDBFODAwM0UwMDFEOTAxM0E4MDBGOTAwRTUKKzoxMDkwQjAwMDNBMDA4MTgzNDNFODAwRTgwMzNFMDQwRkIwMDNFMDAwNzgKKzoxMDkwQzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRTAwMEQ2MDAzNzgwRjIKKzoxMDkwRDAwMDBDQTAwM0Y4MDBDRTAwMzM4MDBEQTAxMzIwMDhDRTAwQjIKKzoxMDkwRTAwMDMzODIwQzQwNzMzMDE4Q0UwMDFGODA0RkMxNDMwMDQ0QzAKKzoxMDkwRjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0N0MwMDhEMDAyMzQwNEYKKzoxMDkxMDAwMDBBRDAwMkY0MDA4RDAwMjM0MDA4RDQ4MDNFNDI4RDQwRjYKKzoxMDkxMTAwMDIzNDAwOEYwMDIzRTQwOEQwMDBGNDAwQkY0MDIyMDQwMzcKKzoxMDkxMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDk5MDBBNjQwRkYKKzoxMDkxMzAwMDA4OTAwNkU0MDA5MTAwMjA0MDg4MDAwMjI0MDg4MDQwNDYKKzoxMDkxNDAwMDIwNDAwQUIwMDIyNDAwODkwMDBFNDAwQjg0MDIyMDAwNTcKKzoxMDkxNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDAwMDgyMDAyMDgwQTEKKzoxMDkxNjAwMDBBMjEwNkM4MDE4MjAwMjA4MDA4MzI4MjA4MDg4MzAwOTQKKzoxMDkxNzAwMDYwODAwQTAwMTIwODgwODIwMDJDODAwQjMwMEEwMjAxRjUKKzoxMDkxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENjAwMEQ4MDAzNjAwNjQKKzoxMDkxOTAwMDBDODQyM0UwMDBDODAwMzIwMDBEODIwQjIwMDJDODAwQkUKKzoxMDkxQTAwMDMyMDAwRTAwMDMyMDAyQzgwMDNFMDAwRjgwMDMwMDAzQkYKKzoxMDkxQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEJGMDAzRkMwRTgKKzoxMDkxQzAwMDBGRjAwM0ZDMDBGRjAwQkZDMDhGQjAwM0ZDMDhGRjAyREMKKzoxMDkxRDAwMDNGQzAwREYwMDNFRDAwRkYwMjNGQzAwRkYwMDNFODA2QjMKKzoxMDkxRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDAxRjA4Q0ZGMDAzRDYwMzYKKzoxMDkxRjAwMDJDQjI4MzdDOTBERjM4MzFFMDBGRjgwMzNDMDBGRjIwNzUKKzoxMDkyMDAwMDNGQzQwRUY0MDM3QzAwRjQ4MDMzMDAwREY4MDNGMDAwM0IKKzoxMDkyMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTEyMEJCNjIyRTQyQzAKKzoxMDkyMjAwMDI4RjQ0MjNFNDA4RjQ0MjJFMDBCQjA4MzdGNDRCRkMxMEMKKzoxMDkyMzAwMDJEREMyQUY2MDIzRjQ1Qjg4MDIyNjE4OEI4MDJFMDA0OUUKKzoxMDkyNDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzU4MEIyMTgyRUM4NUMKKzoxMDkyNTAwMDI5MzAzMjBDMDhCMzIwMjBDMDRCOTIwMjBDMDBCMzQwREUKKzoxMDkyNjAwMDJDQzA4OTM0MTI0QzAwQjAwMDI0QzE0OTMwMDJFMjAxMDQKKzoxMDkyNzAwMDcwMDAwMDAwMDAwMDAwMDBDMDExQTQwMEJBMEMyRUUwMzUKKzoxMDkyODAwMEE5QjAwNjJDMDA4QjAwQTJDMDBCOTAwMDZDMDBCQjAwQTQKKzoxMDkyOTAwMDJFQzAwQjMwMDI2QzAwQkE4MDI2RjAwOEIwMDJGMDA0MzkKKzoxMDkyQTAwMDYwMDAwMDAwMDAwMDAwMDA0MDExRUUwMEZCQzQzRTc4QUEKKzoxMDkyQjAwMDJEQjAwMzZDMDhGQjAwMzJDMDhCMjQ4MzJDMDBGQjAwMTQKKzoxMDkyQzAwMDNFQzA4RkIwMEI2QzA4QjJFMDE2NjA4REIwMjNEMDA0QTYKKzoxMDkyRDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkU5OEZGNDAzRkMwQTkKKzoxMDkyRTAwMDBFNzAwM0RDMDBGRjAwM0ZDMDBGRTAwM0ZDMDBGRjAwMzYKKzoxMDkyRjAwMDNGQzAwRUYwMDNBQzAwRkUwMEI5QzAwRkYwMDNGODAwNTEKKzoxMDkzMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUQwMEZBNDAzRUQwQjgKKzoxMDkzMTAwMDBFQjIwM0VDMDBDMzAwM0VDMDBDQTAwMzJDMDFGQjAwMDYKKzoxMDkzMjAwMDNDQzAwRUI4MDNFQzAwREEwMDNBRDA0RkIwMjNEMDA0QjIKKzoxMDkzMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMEJBMDAyQ0MwNkUKKzoxMDkzNDAwMDA4RjQwN0JDMTRERjAwM0VDMDFBQTA1MkJDMDBCRjA0RTIKKzoxMDkzNTAwMDNGQzA4QUYwMDNCQzAwRkEwMDIyQzgwRkIwMDNGMjAwM0QKKzoxMDkzNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDgwMUIxMDA2Q0MyQjAKKzoxMDkzNzAwMDBBMzA0MkNDMDA4MzA1MkNDMDA4MzAwMjhDMDFCMzA0QjMKKzoxMDkzODAwMDJDQzAwQTMwMjI4QzAwODA4MDI4QzAwQjMwMjJGODAwQ0MKKzoxMDkzOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUUwOEI3ODA2RkUwQjAKKzoxMDkzQTAwMDE4NzgwMjhFNDBCNzgwMkRFMDBBNzgwMjlFMDBCNzgwQzAKKzoxMDkzQjAwMDI5RTEwQTc4MDI5RTAxQkM4MDI5RTQwQjc4MDJDODAwRUEKKzoxMDkzQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDk0MEYxMjAzQ0M0QjMKKzoxMDkzRDAwMDBFMzkwMkNDMDBDMzAwMkNDNDA4OTIwMzhDODhCMzEwNTEKKzoxMDkzRTAwMDJDQzQwRUIwMDc4QzAwQzIwODM4QzAwRjMwNDNEMjAyMjQKKzoxMDkzRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMxMEZDMDA3RkMwMDkKKzoxMDk0MDAwMDBGRjA4M0ZDMjFERjA4M0JDMDhGOTAwMUZDMjFGRjBDOTMKKzoxMDk0MTAwMDNGQzIwRkYxMDNFQzAwRUYwMDc3QzAxRUYwMDM5MDA2OEYKKzoxMDk0MjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTgwMUY5MDAzMkMwNUIKKzoxMDk0MzAwMDBGQjIwM0VFOTBEQkUxM0FDMDREMzgxMzJEMzBGQjAwNDQKKzoxMDk0NDAwMDNFRTA0RkJBNDMyQzQwRkEwMDNGQzA4Q0IwMDNFQTAwMjQKKzoxMDk0NTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMEIxMDAyMUMwMTUKKzoxMDk0NjAwMDBCNzEwMkNDMjBBNzI4MjFDMDBCNzAxMzVDMDhCNzEwMjkKKzoxMDk0NzAwMDJEQzQ0QjM0ODMxQ0MxQjcwMjJEQzAxQTcwMDJEMjA0MTQKKzoxMDk0ODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUEyMEI0QzQyNUEyQzMKKzoxMDk0OTAwMDBCNzgwNkRFMDA4MzgwMjlFMDFCRjgwMjVFODBBN0EwMUYKKzoxMDk0QTAwMDJEQzgwQTcyMDIxRTAwQTY4MDI4RTAwODc4MDJGMDAwOEIKKzoxMDk0QjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0RUQwMEIzNDAyNEMzNjkKKzoxMDk0QzAwMDBCMzA0MkNDMDBBMzAwMjBDMDFCMzQwMjRDMDBCMzAwODAKKzoxMDk0RDAwMDJDQzA0QjMwMDIwQzAwQjM4ODJDRDQwQTMwMDJEMjA0Q0EKKzoxMDk0RTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QjgwMEZFNDBCN0EwMDIKKzoxMDk0RjAwMDBGQTAwM0U4MDBEQTAwM0E4MDBGRTIwMzY4MDBGQTAwRTgKKzoxMDk1MDAwMDNFODAwRkEwMEIyODAwRUVFMDNGQjAwNEEwMDNGQTA0NTkKKzoxMDk1MTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwNEYwMDgzQTEwN0QKKzoxMDk1MjAwMDBGODQwM0UwMTBGODAwM0UwMDRGODA4M0UwMDBGODAwNTUKKzoxMDk1MzAwMDNDMDAwRjgwMDM4MDAwRjg0MDNFMDkwRjgwMDNEMjAwRkEKKzoxMDk1NDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQyMEU5MDAzMjQ0NzAKKzoxMDk1NTAwMDBDOTAwMzI0MDBGOTAwM0U0MDBGOTAxM0U0MDBCOTAwODIKKzoxMDk1NjAwMDFFNDAwQzEwMDMyNDAwQzlBMDNDNjQwQzkwMDM4MjA0MkMKKzoxMDk1NzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDg5MDAyMjY4QzAKKzoxMDk1ODAwMDA4MTMwMjI0MDhGOTAwMkU0ODFCOTAwMkU0MDBCOTAwRDkKKzoxMDk1OTAwMDNFNDAwQzkwMDIyNDA4Rjk0MDJFNjAwQTkwMDZFMDAwM0MKKzoxMDk1QTAwMDEwMDAwMDAwMDAwMDAwMDAxODAxMjQwMEE5MDAyMDQwNjUKKzoxMDk1QjAwMDA4OTAwMjI0MDBCOTAxMkU0MDBCOTAwMkU0MDBCOTAwOEIKKzoxMDk1QzAwMDJFNDAwODkyMjIyNDAwODkwMDJFNDAwODkwMDJDNjAwRjYKKzoxMDk1RDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4MDgxMjFFMDUwRTkKKzoxMDk1RTAwMDI4MTYwQTA0ODBBMTQwMkM0MDRCMTQyMkM0MDBCMTAwNkMKKzoxMDk1RjAwMDJDNTAwOTE0MDIwNDA0QjEwMDJDNDAwQTEwMDJDMjAxQ0MKKzoxMDk2MDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEU4NTAzMjAwOEEKKzoxMDk2MTAwMDhDODAwMjIwMDBCODAwM0UwMDBCODAzM0UwMTBGODAwODAKKzoxMDk2MjAwMDNFMDAwQzgwMDMyMDA4Q0EwMDNFMDAwQzgwMDNBRTAzRkQKKzoxMDk2MzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERkM0MEZEMTAyRjQxNkMKKzoxMDk2NDAwMDRGOTEwM0U0NDBGOTQwM0U0MDRGRDA2M0U1MDBGOTQwQkMKKzoxMDk2NTAwMDNBNTAyRTk0MDM2NTAwRUQwMDNGNTAwRjkwMDNFNjA2NEMKKzoxMDk2NjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1RTYwMEY5RTAzMzUwMUIKKzoxMDk2NzAwMDBDREEwM0E2MDBEOTgwM0Y0MDBGOTEwM0E2MDBGOTg4QjkKKzoxMDk2ODAwMDNFNjgwQ0RFMDM2NjAwRUQwMDNCNjkwQzkwMDNDNjAwRUIKKzoxMDk2OTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTEwOEI4RTAyMDIwNTEKKzoxMDk2QTAwMDE4OEUyNkUxMDA4MEEwMkUwMDRCODg0MkUxNTBCODQwODEKKzoxMDk2QjAwMDJFMkEwRDBBMDIyMDA4QjgwMDJFMTQwRDgwMDJDRTA0QjYKKzoxMDk2QzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzUwMEIxNjAyMDQwMjcKKzoxMDk2RDAwMDA4MzFBMkM1MDA5MTQ4MkM0MDFCMTIwMjg0MDBCMTAwNDEKKzoxMDk2RTAwMDJDNTAwOTE2MDIwNTAwQTMwNDI4NDAwODEwMDJDMjAxRUMKKzoxMDk2RjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1QTQwMEI5MDgyMDcwRTgKKzoxMDk3MDAwMDI4OTAwMkU0MDA4OTAwMkU0MDBCOTAwMkU0MDhCOTAzN0YKKzoxMDk3MTAwMDJDNDAyOTkwMDI2NDAwQjkwMDJFNjIwOTkwMDJDNjA0MTAKKzoxMDk3MjAwMDYwMDAwMDAwMDAwMDAwMDBBMDA1RTUwMEY5RDBCMjcwNjQKKzoxMDk3MzAwMDA4OTAwM0U0MDBEOTA0M0U0MDBGOTAwM0E0MTBGOTAyRkUKKzoxMDk3NDAwMDNFNDAwRDkwMkI2NDAwRTk4RDNBNjAwQzkwMDNFODA0RDQKKzoxMDk3NTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5ODAzRTQyRDMKKzoxMDk3NjAwMDBGOTAwM0U0MDBGOTAwM0U0MDBGOUEwM0U0MDBGOTAwNzMKKzoxMDk3NzAwMDNFNDAyRjEwMDNBNDAwRjkyMjNDNDA0RjkwMDNDQTAwNDIKKzoxMDk3ODAwMDYwMDAwMDAwMDAwMDAwMDAyODAwQTAwMEYwNDAzMjAwNEYKKzoxMDk3OTAwMDBDODAwM0MwMDBGODAwMzIyMDFGODAwM0UwMDBDODAwRTYKKzoxMDk3QTAwMDMyMDAwQzgwMDIyMDAwQzhDMDNFMDAwQzgwMDNDQTA0QjYKKzoxMDk3QjAwMDIwMDAwMDAwMDAwMDAwMDAyODE1MjgxMEJBMDAyM0EwOTcKKzoxMDk3QzAwMDBBRTQwMkU4MDBCQTAwMkJBMTBCQTAwMkU4MDBBQTAwRkMKKzoxMDk3RDAwMDJBODEwQUEwMDNFODA4REUwMDJFODAwQUEwMDJDQTAwM0YKKzoxMDk3RTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMEIzMDRBMEIxQjgKKzoxMDk3RjAwMDA4MzYyMkNDMDBCMzAwMjBFNDBCMzAwMkNDMDA4MzAwRkEKKzoxMDk4MDAwMDIwQzAwODE4MDIwQzAwOTEwMTJDQzAwODMwMDZDQTAwQzQKKzoxMDk4MTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUNDOEIzMjEyMUMyQkMKKzoxMDk4MjAwMDJBNzAwMkRDMDBCN0EwMjlDMDBCNzIwMkNFMDBBNzgxMEIKKzoxMDk4MzAwMDI5QzA0QTc0MDJGRTAwOTcwMTJDQzAwQTcwMTJFODAwODkKKzoxMDk4NDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUU4MEY3QzAzMUUwQzIKKzoxMDk4NTAwMDBDNDgwM0RFMTFGNzgwMjFFMDBCN0EwM0RFMDBDMzgwQTEKKzoxMDk4NjAwMDMzRDg2Qzc4MDMzRTAwRDY4MDNERTAwQzc4MDNFQTAyRTIKKzoxMDk4NzAwMDAwMDAwMDAwMDAwMDAwMDAwODBEQUMwOEZCODAzRUMwQTYKKzoxMDk4ODAwMDBGRDAwM0VDMDRGQjNDM0VDMDBGQjYwNzZDMDFGQjAwOUQKKzoxMDk4OTAwMDNFRDAwRjk0MDdFQzAxRUEwMDNFQzAwRkIwMDNDMjA2QjEKKzoxMDk4QTAwMDYwMDAwMDAwMDAwMDAwMDAwMDAxRkUwMENGQTQzQjYwNEIKKzoxMDk4QjAwMDA4RDkwMzdFMDBDRjgwM0YyNTRGRkM4N0JFMDBDRjgwQjQKKzoxMDk4QzAwMDdGRkMwQ0ZDMDM3QzAwRjY5MDMzRTAwRkY4MDNDMDAwMzMKKzoxMDk4RDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwODhGMjgyMTQwQTMKKzoxMDk4RTAwMDA4RDAwMjFDNDBBNzIwMzEwNDFCNzgwMkRDODBENzAwN0UKKzoxMDk4RjAwMDJGQzQxQUQwMDIxRTQ4QjYwMDYxQzAwQjcwMDZFQTA0REQKKzoxMDk5MDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOEMwMDg3MzA2OTQ0MDcKKzoxMDk5MTAwMDA4NTAyMjBDMDA4NzAxMkQ0NDhCNzAwNjhDMTA4NzAwQTQKKzoxMDk5MjAwMDI5QzkwODUwMDIxQzQ0QTYwMDYxQzAwQjcwMDJDMDAwODcKKzoxMDk5MzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0QwMDgzODg2MDQwNUIKKzoxMDk5NDAwMDAwMTAwMjRDMDAyQjAwMkM0MTFCMzAwMkNDMDA5MzAwNzUKKzoxMDk5NTAwMDJDQzAwQTMwNDIwQzAwQjI0MDIwRjEwQjMwMDJDODA0ODcKKzoxMDk5NjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkQ0MUNGQzBCQUYwRDMKKzoxMDk5NzAwMDI4OTAxQjZDMDhDRjAwMkNDMDBGRjAwM0FDMDA4QjAwQUMKKzoxMDk5ODAwMDNGQzA2Q0IwNEIyQzAxRkI0MDIyQzgwRkIwMDNFQTA0NkYKKzoxMDk5OTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwNEZCMDQzRkQ0RTUKKzoxMDk5QTAwMDBGMTAwM0FDMDBGQjAwMzJDMDVGQjAwM0VDMDBGQjA0RkYKKzoxMDk5QjAwMDNFQzA0RjEwMTNFQzAwRkI4ODNFQzA0RkIwMDNFMDAwRTgKKzoxMDk5QzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwREMwMEM3MDAzMzYyMUUKKzoxMDk5RDAwMDBDQzAwQjNDMDBFRjAwMzNFMDFDRjAxMzNDMDhGNzAwMTgKKzoxMDk5RTAwMDMxQzAwRUQ4MDNCQzAwRkUwMDNEQzYwQ0YwMDNDMDQ0REQKKzoxMDk5RjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMwMENCMDMyMjQ3MEYKKzoxMDlBMDAwMDA4OTg0MjJDMDA5QjAwMkFDMDBBQjAwMjJDMDBCQjA0MUMKKzoxMDlBMTAwMDJBQzAwQUIwMDJBQzA4RkEwMDJFNjAwOEIwMDJFMDQwOEEKKzoxMDlBMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDlCMDAyMDQwN0EKKzoxMDlBMzAwMDA4OTgwMjJDMDBCQjAwMjI4ODA4MzAwMjJDMDBCQjAwRDIKKzoxMDlBNDAwMDIyQzA4QTkyMDJBQzAwQUE4MDJFQzAwOEIwMDZFMDAwQjQKKzoxMDlBNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMDgzMDBBMDQwNEIKKzoxMDlBNjAwMDA4MTAwMjBDMDBCMzAwMjg4MDBBMzIxMjBDMDBCMzA0NjQKKzoxMDlBNzAwMDI4QzAwQTMwMjI4QzIwQjIwMDJDQzAwODMwMDJDMjAxNUIKKzoxMDlBODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMkNCMDAzMDQwMjAKKzoxMDlBOTAwMDFDOTQwMzJDMDBFRjAwMzJDMDg4RjA4QjJDMDBGQjAwREMKKzoxMDlBQTAwMDMzQzBBRUYwMDNBQzgwRUEwMTNFQzAyQ0IwMDNDMDAzNkIKKzoxMDlBQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZGMDAyRjQwMkYKKzoxMDlBQzAwMDA3RDI4M0ZDMDBERjA0M0ZDMDBGQjAwM0ZDMDBGRjAwOUYKKzoxMDlBRDAwMDNGQzAwRkQwMEJFQzAwRUUwMDNGNDAwRkYwMDNFODA2NTQKKzoxMDlBRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjUwMENGMDgzRjQ4RUUKKzoxMDlBRjAwMDBGQzM5MzcwRDBEQzMwM0ZEODBDQjIwMzNDQzBGRjQwQTIKKzoxMDlCMDAwMDMzQzQyQ0YxMDM2MjUwRkMzNDMzMDAwRjVDMDNGMDAwQ0IKKzoxMDlCMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwQzQ4MDhCMDAyRjVBRUQKKzoxMDlCMjAwMDBCQTYxMjIxQzA4OTcwMkZEQzA4RjJDMjNERDBCRjQwQzUKKzoxMDlCMzAwMDM3REM4OEY1MEEyMDgwRTgxMDJBMTYwQjkwMDJFMDA0MzIKKzoxMDlCNDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzAwMDgzMDgyQzQ0OUQKKzoxMDlCNTAwMDBCMDIwMjBDMDA4MDAwMkNDODA4MzM0MjhDOTBCMzMwRkEKKzoxMDlCNjAwMDI4Qzg0QTMyMTI4MDBDQjBBMDI4MjgwQjEyMDJFMjAxNDkKKzoxMDlCNzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTIwMDhCMDAyRTQ4RkQKKzoxMDlCODAwMDBCQTAyMjIwMjA4ODgwMkVDMDI4QjAwQUFDMDBCQjAwODkKKzoxMDlCOTAwMDJFQzAwQUIwMDJBMDAwQUI4MjJBQTAwQkIyMDJGMDA0RDEKKzoxMDlCQTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RTcwMENCMDAzRUMwNTAKKzoxMDlCQjAwMENGOUMwQjIxMDBEODg4M0VDMDBDQjAwM0FDMDBGQjAwNEEKKzoxMDlCQzAwMDNBQzAwRUIwNDNFODQwRjg4MDNBNjAwRjk4MDNEMDA0RTIKKzoxMDlCRDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjQwMEZGMDAwRkUwOTIKKzoxMDlCRTAwMDA3QTEwM0U4MDJGQjAwM0ZDMDBGNzAyMzdDMDBGRjAyQzcKKzoxMDlCRjAwMDM1QzA0REIwMDM3NDIwRkMwMTNGMDAwRkY4MDNGODAwOUUKKzoxMDlDMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTUwMENCMDBCQTQwM0EKKzoxMDlDMTAwMDBDMTQwQjJGMjJDOTQwMzJDMDhFQjAwM0FDMDBGQjAwRTUKKzoxMDlDMjAwMDNFQzAwRUIwMDNFNDAwQzkwMDMyMDAyQzkwMDMxMDA0QzMKKzoxMDlDMzAwMDIwMDAwMDAwMDAwMDAwMDBDODAxMjQwMDhGMDAyMjQwMjYKKzoxMDlDNDAwMDJDQTU0MjI5MDA4QjA0QTNDMTBERjAwQTNDMDBCRjAwRTMKKzoxMDlDNTAwMDNGQzAwOEYwMDE2OTAwREEwNTIyRDAwODk0MDM3MjAwQzEKKzoxMDlDNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NjA0MDgzMDEyMEMwQ0IKKzoxMDlDNzAwMDA5MDAwMjIwMDA4MjYwMjJDMDA4MzA0MjRDMTBCQjAyNjIKKzoxMDlDODAwMDJDQzAwOEIwMTIwNTAwOUIwMDIwODIwOTMyMDIzODAwNjcKKzoxMDlDOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTY5MDg3ODAyMEUwQTYKKzoxMDlDQTAwMDA4NTgwMjE2MTQ4NDgxMjFFMDI5MzkwMjVFMDBCNzgwMjkKKzoxMDlDQjAwMDI4RTAwODc4MDI3QTgwOTY4MTIxRTAwOUY4MDI0ODAwQkQKKzoxMDlDQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDgwOThCMTAzODQ0REMKKzoxMDlDRDAwMDREMjUxMjBDMDBDMjEwMjJDODBBMzgwM0NDMDBGMzEwMjQKKzoxMDlDRTAwMDJDQzAwQzMwMDM4QUMwRDkxMDMyNDAyRDEwMDMxMjAyNTAKKzoxMDlDRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkM4MEZGMDAzRjQwNEQKKzoxMDlEMDAwMDBGRjAwM0Y0NDBFRDAwM0ZDMDBFRjMwM0JDMDRGRjAwNkUKKzoxMDlEMTAwMDNGQzIwRkYwMEJENDAwRkYxMEJGODAwRUYwMDNEMDA2M0YKKzoxMDlEMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RkEwMENCMDIzRUMwNjEKKzoxMDlEMzAwMDBGOTAwM0EwMDBDQjAwM0FDQTBDQjMxM0FGMjRDQjQ4NUEKKzoxMDlENDAwMDFFQzgwRkI2MDMyQzAwRkEwMDNFQzAwRjkwMDNFQTAwQjUKKzoxMDlENTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwODg3MjAyREM0RkUKKzoxMDlENjAwMDBCNTAxMkRDMDQ4NzAwMkNDMDA4NzBBMjFEMDBBNzQwMTUKKzoxMDlENzAwMDI1Q0I4Qjc0ODIxQzAwQjcwMDJEQzEwQjcwMDJEMjA0NUUKKzoxMDlEODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUEwMTg3OTAyREUwRjQKKzoxMDlEOTAwMDBCNzgwMkNFMDA4NjgwMkRFNDI5N0EwMjlFODA4N0EwNkYKKzoxMDlEQTAwMDZERTgwQjc4MDIxRTAwQjU4MDJENjAwQjc4MDJGMDAwODQKKzoxMDlEQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0QwMDgzMDIyQ0UwQzkKKzoxMDlEQzAwMDBCMzAwMkNDMDA4M0UwMkNDMDA4MzAwMjBDMDBBMzAwNTIKKzoxMDlERDAwMDI0QzAwQkIwMDIwRTIwQjMwODJDQzAwQjMwMDJEMjA0RkEKKzoxMDlERTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1Qjg4MkNBMDAzRUE4NUMKKzoxMDlERjAwMDBGRTAwM0Y4MDI4RTgwM0U4MDBEQTA1QkE4MDBDQTAwMzEKKzoxMDlFMDAwMDNFODAwRkEwMDMzQjgwRkU0MjJGODAwRkE4MDNGQTA0ODAKKzoxMDlFMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAyMEY4MDAzRTAwNjQKKzoxMDlFMjAwMDBGMDYwM0MwMDBGODExM0UwMDBGMDAwM0UwMDBGODAwMjkKKzoxMDlFMzAwMDM2MDAwRjgwMEJFMDAwRjgwNDNFMjAwRjgxMDNEMjAwQjMKKzoxMDlFNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMEY5MDAzRTQwNkYKKzoxMDlFNTAwMDBDOUEwMzI0NDBDOUMwM0U0MDRDOTAwMzI0MDBGOTAwRjIKKzoxMDlFNjAwMDM2NDAwNzkwMDMyNDAwQzkwNDMyNjAwRjkwMDNDMjA0RjcKKzoxMDlFNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5MDIyRTQwQTEKKzoxMDlFODAwMDBBOTIwMjI1MDI4OUUwMkU0MDk4OTAwMjI0MDBCOTAwMkYKKzoxMDlFOTAwMDIyNDAwOTkwMDIwNDAwRDkwMDIyNDQwQjlDMDJFMDAwRjkKKzoxMDlFQTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MkMwMEI5MDAyQzQwMzQKKzoxMDlFQjAwMDA4OTAwMjI0Mjg4OTAwMkM0MDY4OTA0MjI0MENCMTA0QTgKKzoxMDlFQzAwMDI2NDAwQjkwMEEyQzgwODEwMDIyNDBDQjkyODJDNjAwNTMKKzoxMDlFRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMEIxMjAyQzQ4RUQKKzoxMDlFRTAwMDBBMTIwMjA0ODA4MTIxMkM0QzA4MTEwMjA0MDhCMTEwQ0UKKzoxMDlFRjAwMDIwNEMwOTEyMDIyNDAxOTEyMEEwNDgwQjEwMDJDMjAxM0IKKzoxMDlGMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENDFFMEY4NTAzRTE0RDEKKzoxMDlGMTAwMDBDODUwMzIxNDBDODUwM0UxMDA4MDY4MzAxRjBGODY4MDQKKzoxMDlGMjAwMDM2MTAwRjA1MDMyOTQwQzg1MDMyOTQwRjg1MDNFRTAzMDUKKzoxMDlGMzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQwMEY5MTAzRjQ0OUMKKzoxMDlGNDAwMDBGRDEwQkY0NDBGRDEyMkU0QzAzOTIwQkU0MDBGOTIwQ0MKKzoxMDlGNTAwMDNFNEMwRjkxMDNGQzAwRkQxMDNGNDQwRkQwMDNFNjA2N0EKKzoxMDlGNjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjYyMEM5MDEzRTQwMDYKKzoxMDlGNzAwMDBGRDAwMzNDMDBCRDAwMzI2MzBDOUU0MzI3MDBFOUMwQjQKKzoxMDlGODAwMDNFNjgwQzk4MDMzNDAwRjkxMDNGNDAwRkQwMDNDNjAwMjAKKzoxMDlGOTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwQzIyMEQ4MDAyRTAwMjEKKzoxMDlGQTAwMDBCODA1MjI4MDRCODAwMjIzODA4ODgwMzYyMDA4OEYwMjkKKzoxMDlGQjAwMDJFM0E0ODhGMEEyMDAwQjA4MDJFMDAwQjgwMDJDRTA0N0IKKzoxMDlGQzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQ4MDgxMDAyQzQwMjMKKzoxMDlGRDAwMDBCMTAwMjA0MDBCMTAwMjA0MjQ4MTQ0MjA1ODBBMTIwNjkKKzoxMDlGRTAwMDJDNDQwODEwODIwNDAwQjEyMDJDNDAwQjEwMDJDMjAxNDYKKzoxMDlGRjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTUwMTk5MDAyRTQwMTcKKzoxMEEwMDAwMDBCOTAwMjI0NDBCQjAxMjI0MTA4OTAxMjI0MDBBOTAwQjkKKzoxMEEwMTAwMDJDNDAwODEwNDAyNDA4Qjk0MDZFNTAwQjkyMDJDNjA0MzAKKzoxMEEwMjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTcxNEM5MDUzRTQxRDMKKzoxMEEwMzAwMDBGOTAwQjI0MDRGOTA4QjI0MDJDOTAwQTI0MDBFOTAwODgKKzoxMEEwNDAwMDNFNDAyQzkwMDMyNzAwRjk4MDNFNjAwRjkwMDNFODA0MDcKKzoxMEEwNTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxODQ4OEY5MDAzRTQ4REMKKzoxMEEwNjAwMDBGOTkwM0U2MDBGOTAyM0M0MEFGMTAwM0U0MTJEOTA0NTMKKzoxMEEwNzAwMDNFNDAwRjkwMDNFNTAwRjlDMDNFNjQwRjkwODNDQTAwOTQKKzoxMEEwODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTEwMEM4MDAzRTAwOTEKKzoxMEEwOTAwMDBGODAwMzIxMDBDODQwQjIwMDBDODAwMzIwMTBDODAwQ0MKKzoxMEEwQTAwMDMyMDAwQzgwMDNFMDgwRjgwNDMyMDAyQzgwMEIwQTA0OUMKKzoxMEEwQjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMENBMDAyRTgwQjMKKzoxMEEwQzAwMDBCRTgwQTM4MTA4RUMwMjI4MDBEQTAwMjI4MDAwQTA0NzYKKzoxMEEwRDAwMDAyODAyOEEwMDJGQjAwQkEwMDM3QjA0OEVBMDIwQTAwNUEKKzoxMEEwRTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMDkzMDEyQ0MwMzcKKzoxMEEwRjAwMDhCQjA0MjBDOTA5QjIwMjBDMDQ4MzA0MjJDMDA4MzAwNDMKKzoxMEExMDAwMDIwQzAwODMwMDJDRDQwQjMwMDI0QzgwODM4MDIwQTAwM0QKKzoxMEExMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTQwMDg3MDAyREMwQzYKKzoxMEExMjAwMDBCMjQwNjE2MDA5MzA4MjFDODA5MzEwMjBDODA4N0EwNzEKKzoxMEExMzAwMDIxQzAxODcyMDJEQzAwQjdCNDI0RTMwODc4MDIyODAwQkEKKzoxMEExNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMjk3QTAzREYwOUIKKzoxMEExNTAwMDBGNDgwMzNFMDBENjgwMzBFMDJDN0EwMjFFODJDM0YwMDYKKzoxMEExNjAwMDMzRUMwQzdDMDNENjAwRjc4MDM1RTAwQ0Q4MDMyQTAyRDAKKzoxMEExNzAwMDAwMDAwMDAwMDAwMDAwMDAwODE5QTVBMEZCMDAzRUNBNzYKKzoxMEExODAwMDBGODAwM0VDMDJFQTAwM0VDNjBGQjQwQkVENDBGQjAwNkIKKzoxMEExOTAwMEJFQzAwRkI2NDNFMDAwRkIwMjNFODAwRjkwMDNDMjA2MzQKKzoxMEExQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMkNGODgzRkUwRDQKKzoxMEExQjAwMDBDQjkwM0ZFMDBERDgxMzNFMDhDRkMwMzNGMDRDRjgwNEIKKzoxMEExQzAwMDMzRTI0RkZDMDMzRTAwQ0ZDMDMzNjQwQ0Y4MDNDMDAwMDEKKzoxMEExRDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOTQ0MDg3MDAyRkMxMEIKKzoxMEExRTAwMDBENjlBMkQwNDBCQzAwMjNDMDA4RjAwMjlDMDA4NzAwOEIKKzoxMEExRjAwMDIxQzAwQjcwMEEzQzA0ODcxMDIxNEMwODYwMDJFQTA0NUQKKzoxMEEyMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUUwMDg3MDAyREMwREMKKzoxMEEyMTAwMDA5NjIwMkQ4MDA5NzAwMjFDNDA4NzAwMjBDNDA5NzAwMjAKKzoxMEEyMjAwMDIxQzQwQjMwMDI1ODAwQTcwODIxODAwODYwODJDMDAwQkEKKzoxMEEyMzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0RTQyNTgzMDAyQ0MwNTIKKzoxMEEyNDAwMDA5MjIwMkNDMjBCMjAwMjBDMDI4QjAwMjhDMDA5MzAwNkEKKzoxMEEyNTAwMDIwQzAwQjMwNDI2QzIwODMwODIwRTIwOEI4MDJDODA0RkEKKzoxMEEyNjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QTQwMENGMDAzRkMwOEYKKzoxMEEyNzAwMDBEOUMwM0U4MDBEQjgwMzNDMDBDRjAwQjNDMDZERjAwRDQKKzoxMEEyODAwMEIzQzAwQkYwMDc2ODAwRUY0MDMyQTgwQ0E4MDNFQTA0NDMKKzoxMEEyOTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEZCMDAyRUMwMDkKKzoxMEEyQTAwMDBGOTQwM0M1NDBGQTMwM0VDMDBGQjAwMzZDMDBFQjAwQzIKKzoxMEEyQjAwMDNFQzAwRjMwMTNBRDQwRkIwMjNFRDAwRkI0MDNFMDAwQjAKKzoxMEEyQzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRTQwMEM3MDAzMUMxQjAKKzoxMEEyRDAwMDhDRDAwMzM0MDBDRDAwM0RDMDBDRjAwMTdDMDBEQjAxQ0MKKzoxMEEyRTAwMDNEQzA0Q0YwMEIzMDAyQzMwMDMyMDAwRkQwMDMwMDQ0REQKKzoxMEEyRjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkU0MDhCMDAyQUMwODYKKzoxMEEzMDAwMDI4ODQ0MjIyODA4ODgwM0FDMDBEQjAwMkFDMDg4QjAwQkQKKzoxMEEzMTAwMDJFQzAwOEIwMDIyMzIwOEIwMDIyMzA4QjhDMDIyMDQwRkMKKzoxMEEzMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MjQwMDhCMDAyMkMwMDcKKzoxMEEzMzAwMDA4Mzg4NjJBMDA4OTgwMkFDMDA4QjAwMkNDMDA5QjAwMTkKKzoxMEEzNDAwMDJFQzAwOEIwNDIyNjAwOEIwMDIyNzEwQjhDMDIyMDAwMjgKKzoxMEEzNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMDgzMDAyOEMwM0EKKzoxMEEzNjAwMDA4MzI0MjAwMDA4MTAwMjhDMDA5MzA1MjhDMDg4MzAwNjYKKzoxMEEzNzAwMDJDQzAxODMwMDYwMDAwODMwMEEwMDAwQjAwMDIwMjAxNzAKKzoxMEEzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENzQwMjhCMDAzM0MwQ0MKKzoxMEEzOTAwMDBDOTIwQjIwMDJDODAwM0JDMDBDRjUwM0ZDMDBERjAxNEYKKzoxMEEzQTAwMDNGQzEwNEYwMzMyMTQwQ0YwMDMyMDAwRjgwMEIwMDAzODcKKzoxMEEzQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDE5RkMwMEZGMDAzRkMwOUEKKzoxMEEzQzAwMDBGQzQwM0YwMDA5QzAwM0JDMDBGRjAwM0ZDMDBGRjAwMzMKKzoxMEEzRDAwMDJGQzAwRkYwMDNGMDgwRkYwMDNGMDAwRkMwMDNFODA2MUUKKzoxMEEzRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjBDMEZGQTAzMTI0OTQKKzoxMEEzRjAwMDBFRjA2MzEwMDRFRjY0M0ZDMDRDRjMwMzFDODBERjA4RDEKKzoxMEE0MDAwMDM3QzAwRkYwMDNGMEEwRkMwMDMxMDgyQ0QyMDNGMDAwOUQKKzoxMEE0MTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTEwMEJCQzEyMjQ4NzUKKzoxMEE0MjAwMDA4RkQwMjJFMDA5NzAwMkZDMjQ4NzEyMzdFNDBCRjAwMTYKKzoxMEE0MzAwMDIxQzU0QkY1MDJFRjAwQkI0MDM2RTAwOEE4MDJFMDA0NUUKKzoxMEE0NDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzU4NEIzMTFBMkM5RDcKKzoxMEE0NTAwMDBBMzAwMjAwMDFCMzMwMjhDNDA4MzI0MjBDMDBBMzA4QkQKKzoxMEE0NjAwMEEwQ0EwQTMyODI4MDEwQjA0MTI0MTEwODMxMDJFMjAxRjAKKzoxMEE0NzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTUwMEJCMDAyMkUxMzQKKzoxMEE0ODAwMDI4QjAwMjJDODA5QjAwMkVDMDA4QjAwMjZDMDBCMzAwRTQKKzoxMEE0OTAwMDIyQzAwQkIwMDBFQzIwQkIwMDI2QzAwODgwMDJGMDA0RjQKKzoxMEE0QTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RTM0MEY3MDQzMkMwRTcKKzoxMEE0QjAwMDRFQjAyMzJFMjBFQjAwMUVDMDBDQjAwMTJDMDBGQjAwODAKKzoxMEE0QzAwMDM2QzAxRkIwMDNFMTQwRkIwMDM2OTgwQzkwMDNEMDA0NjcKKzoxMEE0RDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjYwNEZGMDIzRkMwNzEKKzoxMEE0RTAwMDBGRjAwM0ZFMDBFRjAyM0RDMDBGRjAyM0ZDMDBGRjAwNjEKKzoxMEE0RjAwMDNGQzA0RkYwMDNGQzAwRjQwMDNCNDAwRkEwMTNGODAwRjYKKzoxMEE1MDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUEyMEVCMTAzNkMwRTAKKzoxMEE1MTAwMDBEQjAwN0VDMjBEQjAwMzJDMDBDQjAwMjZDMjBFQjAwNjkKKzoxMEE1MjAwMDNFQzEwREIwMDNFMDIwREJBMDMyOTA0Q0IwMEIxMDA0MTQKKzoxMEE1MzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkQwMDhGODAyMEMxMTEKKzoxMEE1NDAwMDA4NzAxMkNGMDA4RjAwQTNDMDBERjAwMjNDMDA4RjAwRjYKKzoxMEE1NTAwMDM3QzA4OEYwMDJFQzAwODgwMDIwNDAwODgwMDIzMjAwRkEKKzoxMEE1NjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEMwMEEzODAyNDgxQjIKKzoxMEE1NzAwMDA5MzAwNkNDNDA5MzAwMjhDMTA4QjAwMkNGNDBBMzAwQTgKKzoxMEE1ODAwMDJDQzAwOTMwMDJDRDAwOTA0MDYwNDAyODEwMDIzODAwRjUKKzoxMEE1OTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMEUwMDg3ODAyM0UwMzIKKzoxMEE1QTAwMDQ4NzkwMkRFNDE5NzgwMjlFMDE5NzgwNjlFMDA4NzgwNkQKKzoxMEE1QjAwMDI1RTAwODc4MDJEMjAzODM4MDIxQTAwODY4MDIwODAwMDEKKzoxMEE1QzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMwMEEzMDAzNEMwNTgKKzoxMEE1RDAwMDBEMzA0MkNDMDFEMzEwM0FDNTBDMzkwM0NDMDBFMzA0NTIKKzoxMEE1RTAwMDNDQzQwRDMwMDNDRTAwRDAwMDMwNDAwQzMwMDMxMjAyQ0EKKzoxMEE1RjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMwMEY3MDAzRkMwNEMKKzoxMEE2MDAwMDFGRjA1M0ZDMDBFRjA4MzdEMTBGRjA4MzdDMDBGNzQwQjgKKzoxMEE2MTAwMDNGQzEwRkYxMDNEMDAwRkYwMEJGODQwRkM4MDNEMDA2NzUKKzoxMEE2MjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RTAwMEZCMDAzRUUwMjQKKzoxMEE2MzAwMDJDQkU4M0VDMDBFQjQwM0VDMDBGQjQwM0VEMjBGQjEwQkEKKzoxMEE2NDAwMEI2RDIwRkI0ODNFQzAwREI4MDM2QzEwQzkwMjEyQTAwMTcKKzoxMEE2NTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOTQwMEI3MDAyRkMwRjcKKzoxMEE2NjAwMDA4MzYwMjBDMDg4NzMwMkREOThCNzI4NkREMDBCMzIwQTYKKzoxMEE2NzAwMDIxQzgwQjc0MDJEMDAyODQwMEEwMDAyODIwMDIxMjA0MUEKKzoxMEE2ODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUEwMEI3ODAyREUwQ0MKKzoxMEE2OTAwMDA4N0EwMjlEMDBBN0EwMkRFMDBCNzgwMjlFODBBNzgwN0IKKzoxMEE2QTAwMDIxRTQwODdBMjY5RTE4ODMwNDIxRTAwODc4MEE3MDAwQzUKKzoxMEE2QjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMEIzMDAyQ0UwOTMKKzoxMEE2QzAwMDU4MzAxMjBFODI4MzAwMkNDMDBCMzAwMkNDMDFCMzAwMzQKKzoxMEE2RDAwMDIwQzEwQjMwMDJDMDA4ODhEMjIwMjAwODAwMDI1MjA0OUEKKzoxMEE2RTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1Qjg2MEZBMDAzRjgyNkEKKzoxMEE2RjAwMDBDQTAwM0ZBMDBBQTAwMUU4MDhGQTAwM0U4MDBGMjAwNUQKKzoxMEE3MDAwMDMyODAxRkEwMDNFODAwREEwMDM2ODhBQ0UwMDM3QTA0NDgKKzoxMEE3MTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTEwMEY4MDAzRTIwNUEKKzoxMEE3MjAwMDRGODAwM0UxMDBGMDAwM0MwMDBCODAwM0UwMDBGODAyRTIKKzoxMEE3MzAwMDNBMDAwRjgwNDNGMTAwRkMwQTNEMDAwRkMwMDM5MjAwNzUKKzoxMEE3NDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTYwMEM5OTAzRTQwMDQKKzoxMEE3NTAwMDBGOTIwM0U0MDBEOTAwMzI0MDA0OTAwN0U3MDBGOTEwOUIKKzoxMEE3NjAwMDMwNDAwQzkwNDNFNDA5RDk4MDIyNDAyQzEwMEIwMjA0QTUKKzoxMEE3NzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQ2MDg5QzAyRTQwQUEKKzoxMEE3ODAwMDBCOTgyNkM1ODA4OTAwMjI0MDI4OTAxMkU3MTBCOTAwNTYKKzoxMEE3OTAwMDM2NDAyODkwMTJDNTgzQzk4MEI2NDAwODkwMDIyMDAwMzgKKzoxMEE3QTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MDQwMDg5NDAyRTQxNDAKKzoxMEE3QjAwMDRCOTAwMkU0MDA5OTAwQTI0MDBBOTAwMkU1MDBCOTAwMjMKKzoxMEE3QzAwMEUyNDEwODkwNDJFNDAwOUQ1MEFCNEEwOEQwMjYwNjAwQzIKKzoxMEE3RDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4MjgxMjAyQzUwOEEKKzoxMEE3RTAwMDBCMTAwMkU0MDA4MTQwMjA1MDRBMTQzMkM0MDBCMTQwRjIKKzoxMEE3RjAwMDI0NTExODE0MTJENDAwODU0MDJENDAwODUwMDYwMjAxM0YKKzoxMEE4MDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEM4MDAzRTAwREMKKzoxMEE4MTAwMDBGODAwMkUwMDBEODAwMzIwMDBBODAwMkUwMTBGODAwNDkKKzoxMEE4MjAwMDMyMDAwNDgwMDNFMDAwRDgwMDNBMDAwQ0MwMDMyRTAzN0QKKzoxMEE4MzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQ0MEY5MTAzRjQxNTYKKzoxMEE4NDAwMDBGOTQwM0Y1MDBGOTQwM0U1MDBEOTQwM0U1MTBGOTQwRDQKKzoxMEE4NTAwMDNFNTA0Rjk0MDNDNTAwRTk0MTM2NTAwRjk0MDNFNjA2N0QKKzoxMEE4NjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjYwMEZEQTgzQTQwNDYKKzoxMEE4NzAwMDBDRDgyMzM2MDBFOUEwM0U3ODBGOUUwM0I2ODBDREUyQzcKKzoxMEE4ODAwMDMyNjgwQzlCMDMzNjgyNERBMDM3Njg4Qzk4MDMwNjAwMTMKKzoxMEE4OTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRUJBMEI4NDAyMDIwM0QKKzoxMEE4QTAwMDA4ODUwMjIxNTE4OEMwMkUyOTBCOEUwMkUxMDBEOEUwRDQKKzoxMEE4QjAwMDIyMzIwRDhEMjM2MTQ4OThENEEyMTAyODg0MDIwRTA0MDAKKzoxMEE4QzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzUwMEIzMDAyQTRBNUYKKzoxMEE4RDAwMDI4MTA0RUE0MDhBMTY4Mjg0NDBCMTQwMkM1MDA4MTQwMkEKKzoxMEE4RTAwMEEwNTAwODEwMDIwNDAyOTEyQTIwNDQyODE0NEEwMjAxQjAKKzoxMEE4RjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QUM4MEI5MDAyMjQwNzQKKzoxMEE5MDAwMDQ4OTAwNkE0MDBBOTAwMkU0MDBCOTAyMkU0MDA5OTAwNzQKKzoxMEE5MTAwMDIyNDAwOTEwMDI2NDAyOTkwMDIyNDAwODkwMDIwNjA0QjUKKzoxMEE5MjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEY5MDAzODU4QTUKKzoxMEE5MzAwMDBDOTA1Mzg0MTRBOTA0M0U0MDBGOTAwM0U0MDBDOTAwMTYKKzoxMEE5NDAwMDMyNDAwQzkwMDMyNDA0RDkwMEI2NDA0QzkwMEIyODA0RUMKKzoxMEE5NTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwMEY5MDIzRTQ5MzgKKzoxMEE5NjAwMDBGMTA0MzY0MDBEOTAwM0U0MDBGOTAwM0M0MDBGMTAyNzEKKzoxMEE5NzAwMDNFNDAwRjkwMDNDNDAyRTkwNDNDNDAwRjFDMDNDQTAwOTAKKzoxMEE5ODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTE4MEM4MjAzRTAwRTgKKzoxMEE5OTAwMDhDODAwQjIwMDBFODAyM0UwMDBGODAwM0EwODJDODAwREMKKzoxMEE5QTAwMDZDMDAwRjgwMDMyMDEwQzgwMDMyMDIwQzgwMDMwQTA0RTAKKzoxMEE5QjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MzgwMDg2MDAyRTgwREUKKzoxMEE5QzAwMDY4QTg4MDNBMDA4QTAwMkU4MDBCQTAwMkY4MDA4QTAwNTYKKzoxMEE5RDAwMDJFODAwQkEwMEEzQTAwOEUxMDIzODAwOEEwMDMwQTAwRTQKKzoxMEE5RTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEQwMDgzMDAyQ0MwM0UKKzoxMEE5RjAwMDA4MzgwMDBDNjAyMzAwMkNDMDBCMzAwMkNDNDA4MzAwRDAKKzoxMEFBMDAwMDJDQzAwQjMwMDIwQzAyOEE4MEEwRTAyODMwMEE0QTAwRDkKKzoxMEFBMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMTYyMDg3MDIyREMxOTgKKzoxMEFBMjAwMDQ4NzAxMjdDMDBBNzIwMkRDOTBCNzIwMERDMDA4NzA4M0IKKzoxMEFBMzAwMDJEQzQxQjMyMDIxRDAxODc0MjIxQzIwODcwMDIyODAwNkEKKzoxMEFBNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4M0UwMkM3ODAzREVDNjYKKzoxMEFBNTAwMDBDNTgwMzFFMDBFNzgwM0RFQzBGN0YwMzk2MDBDNzgwNzMKKzoxMEFBNjAwMDJERTIwNzc5MDMwQTA2QzM4MDMwMjA4QzM4MDM2QTAyN0UKKzoxMEFBNzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEZCMDAzRUMwMEMKKzoxMEFBODAwMDBGMTA0MzhDMDBEQjM4M0VEODBGQjAwM0NDMDRGQjQ0REUKKzoxMEFBOTAwMDNFQzA4RkI2MTNFQzAyRkYwMjNFMDAwRkIwMDNDMjA2QTkKKzoxMEFBQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkEwMEZGODAzMUUzQjQKKzoxMEFBQjAwMDBFRjgyM0ZFMDJERjgwQjdFMjBFRjgwMzdFMDA2REQwQjEKKzoxMEFBQzAwMDMzRTAwQ0Y4OUI3NkMwREY4NEIzRTAwNEY4MDNDMDAwRTkKKzoxMEFBRDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOTA0MEI3MDIyMUM0REYKKzoxMEFBRTAwMDA4N0I0MkRDMDA4NzAwMjFDNDBCMzAwMDEwODA4RDAwMDEKKzoxMEFBRjAwMDIzQzAwREYyMDIwNDQyOEYwMDI5QzgyODcwMDJFQTA0MjQKKzoxMEFCMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOTQwMEI2MDAyM0MwQjgKKzoxMEFCMTAwMDBBNzIwMjhDMDA4NzAwMjFDMDBBMzAwMjA0MDFBNzAyRDkKKzoxMEFCMjAwMDIxQzAwODcwNDIwMDhBODcwMDIxQzAyODcwMDJDMDAwM0UKKzoxMEFCMzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0QzUwMEIwMDBBMEQwREMKKzoxMEFCNDAwMDA4QjAwMkM5NDI4QjAwMjBDMDBCMzAyMjA0MDA4MzAwRjEKKzoxMEFCNTAwMEEwQzA0OTMwMDI0NTQwOTNDMEE4RDQwMDM1MDJDODA0QzMKKzoxMEFCNjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUMwMEJCMDAzMUMwQTAKKzoxMEFCNzAwMDBFQjAyM0NEMDBERjAwMzdDMDBFRjAwMTY4MDBFMzAwMDcKKzoxMEFCODAwMDMzQzAxQ0YwMDM0NTAwREFDODkyRDQyQ0I0MDNFQTA0QTUKKzoxMEFCOTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTUyMEZCMDAzRUMwRDcKKzoxMEFCQTAwMDBGQjAwM0VDMDBGQjAwM0VDMDRGQjAwM0FEMDBGQjAwNTQKKzoxMEFCQjAwMDdFQzAxRjMwMDNBNDgwRTkyMDNDQzAwRjMyMDNFMDAwQjgKKzoxMEFCQzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwREMwMEM3MDAzM0MyQUMKKzoxMEFCRDAwMDJDRjAwMzNFMjBEQjAwMTNDMDBDNzAwMzNDODBFRjA0MUMKKzoxMEFCRTAwMDczQzEwRkYwMjIzMDAwQzYwMEIyQzAwQ0YwMDMwMDQ0NjUKKzoxMEFCRjAwMDMwMDAwMDAwMDAwMDAwMDA4MTAwNjkwMDhCNDRBMkMxMDkKKzoxMEFDMDAwMDg4QjAwMzZDMDA4QjAwMjJDMDI4QjAwQTJEMDBCQjAwNjYKKzoxMEFDMTAwMDYyQzAwQkIwMDIyNjAyOEI4MDIyQzAwOEIwMDMyMDQwMjUKKzoxMEFDMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MjgwMThBMDgyMkMwRjIKKzoxMEFDMzAwMDA4QjIwMjZDNDA5QjAwMjhDMDQ4QjAxNjI5MDRCOTAxMzQKKzoxMEFDNDAwMDIyQzA0OUIwMDZBRTA5OEI4MDIyRTA0OEIwMDIyMDAwNDUKKzoxMEFDNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDAwMjgyMDAyMkMwNDIKKzoxMEFDNjAwMDg4QjAwMjQ0MDA4MzAwMjhDMDA4MzAwMjA4MDBCMTAwMDgKKzoxMEFDNzAwMDIwQzAwQjMwMDI4QzAwODM4MDIwRTAwODMwMEEwMjAxRTMKKzoxMEFDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENjQwMENBMDAzM0MwOTYKKzoxMEFDOTAwMDBDQjIwMzJDMDBERjAwM0JDMDRDRjUxMzJDMDRFRjAwN0EKKzoxMEFDQTAwMEEzQzAwREYwMDNBODQwQ0IwMEIyMDAyQ0IwMDMwMDAzRkEKKzoxMEFDQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERjAwMEY0MDAzRkMwQTQKKzoxMEFDQzAwMDBGQjEwM0YwMDBGRjAwMzdDMDBGRjAwM0ZDMDBGRjAwREUKKzoxMEFDRDAwMDNGQzAwN0YwMEI3QzA4RkYwMTNGMDAwRkYwMDNBODA2MDAKKzoxMEFDRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjBDNUVEMzMzQkNDNTMKKzoxMEFDRjAwMDBDRjAwMzMwNDBGRjI1M0ZDQzBDRjM4MzNDRDBERjQ4MDEKKzoxMEFEMDAwMDM3MzA0Q0YzMDNGRDgwQ0YyODMzRDgwQ0YxMDMzMDAwRUIKKzoxMEFEMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUNEMEJCMzEyMENDOUYKKzoxMEFEMjAwMDg4RjM0MjIwNTBCRjkwMkZDNDBBRjYwMjdEQzA4RjQwQTYKKzoxMEFEMzAwMDI2NDA4RkY2MDJGRDAwRkYwODM5QzgwOEY2MDJBMDA0N0QKKzoxMEFENDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzQ4MEExMjAyOEM5NTAKKzoxMEFENTAwMDA4MzA5QTAwMDlCMzAwMkNDMDIwMzAwMjRDOTA4MzIwQTgKKzoxMEFENjAwMDAyMDgwQjMzMTJDRDgwOTMyMDI0RDgwODM0MjIyMjAxMEMKKzoxMEFENzAwMDcwMDAwMDAwMDAwMDAwMDBDMDExQUUwMEJCMTAyMkMwMzcKKzoxMEFEODAwMDA4QjAwMjI2MDEzQjAxNkVDMDA4QjAwMjRDMDg4QjAwREYKKzoxMEFEOTAwMEEyODkwQkIwMDJFQzAwQUIwMDZBQzEyOEIwMDJCMDA0N0IKKzoxMEFEQTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1NkUwMEU4QzEzQUMwREQKKzoxMEFEQjAwMDJDQjA0MzI2MDBGQjA2M0VDMTBDQjAwQjJDMDJDQjAwOEUKKzoxMEFEQzAwMDM0MjI5RkIwNDNFQzAwOUIwMjM2QzE4Q0IwMDMxMDA0QzgKKzoxMEFERDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkMwMEZDODAzREQwREQKKzoxMEFERTAwMDJGRjAwM0ZDMDBGQjAwM0RDMDA3MzAwM0JDMDBFRjA0NjQKKzoxMEFERjAwMDNGRTA1RUIwMDFGQzAwRkYwMDFCQzAwRkYwMDNGODAwNTUKKzoxMEFFMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMENCMDEzRUM5MTMKKzoxMEFFMTAwMDBDQjAxNzIwODRFQjAwQjJDMTBEQjAwMzZDMDBDMzAwNkUKKzoxMEFFMjAwMDMyNTAwRkIwMDMwQzQwQzMwMDdFQzAwQzMwMDMxMDA0M0UKKzoxMEFFMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMDhBNTgyRUUwMDkKKzoxMEFFNDAwMDQ4RjAwMjJEMDBFRjAxMjNDMDA4RjAyMjNDMDQ4RjYwN0YKKzoxMEFFNTAwMDM2NTQwQkYwMEEzRDQwOEYwMDJGQzAwOEYwMDM3MjAwRkIKKzoxMEFFNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NDAwMDg5ODAyQzEwMzgKKzoxMEFFNzAwMDA4QjAwMjQ5MDBBM0EwMjRDMDA5MzAwMjRDMDA4M0M5RDUKKzoxMEFFODAwMDIwOTA0MjMwMTI0RDAwODMwMDZBQzAwOTMwMDIzODAwMjEKKzoxMEFFOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTYwMDg1ODA2RDYyNTcKKzoxMEFFQTAwMDA4N0UwMjU2NDAyNzgwMjVFMDE5NzgwNjBFMDA4MzgwMzAKKzoxMEFFQjAwMDYxQTAwQjc4MDI0RTAwODc4MjZERTAwOTc5MDI0ODAwOUMKKzoxMEFFQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MkMwMkMzNjEzQzg4REMKKzoxMEFFRDAwMDJDQkExMjQ5MTBFMzJDMzZDMDBEMzA1MzRDNDRDMzAwMzkKKzoxMEFFRTAwMDIwMDEwRjMxMDM0QzAwQzMwMTNDQzAyREIxMDMxMjAyRkQKKzoxMEFFRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMwMEZGMDAzRjAwRkIKKzoxMEFGMDAwMDRGRjEwOUIwMDBGRjAwM0JDMDBFRjQwMUZEMjRGRjQwRUIKKzoxMEFGMTAwMEJGQzAwN0YwMDNCQzAwNkYxMDNGQzQxRUYxODNEMDA2MTIKKzoxMEFGMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1QzQwMEU4MDQzMjAwMzIKKzoxMEFGMzAwMDBDQjYwM0U4MDJDQjAwMzZDQTBGQjUwM0FEMDBGQjIwMDgKKzoxMEFGNDAwMDNFNDAwRkIzMDNFQzgwRkJBODMyQzY4Q0I2MDMyQTAwNDgKKzoxMEFGNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOTQwMkU2MDAyMDAwOEMKKzoxMEFGNjAwMDA4NzMwMkRDMDA4NzcwMkREMDBCRjAwMjFDODRCNzIwMjAKKzoxMEFGNzAwMDJEQzAwQjcwODJERDI0Qjc0MDM0QzkyODcyODI5MjA0NDAKKzoxMEFGODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwQkUwMkFDODBBMTIwRjQKKzoxMEFGOTAwMDA4NzkwMENFMDQ4NzgwNjVFMDBCN0EwMjlFMDBCNzkwQTYKKzoxMEFGQTAwMDZEQTAwQjc4MDJERTAwQjc4MDIxRTAwODc4MDIzMDAwNDcKKzoxMEFGQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0RUQ4MkFCRTAyMEU0MTcKKzoxMEFGQzAwMDA4MzAwMkVFMDQ4MzAwMkNDMTFCMzAwMjBDMDhCMzAwRDEKKzoxMEFGRDAwMDY0RjYwQkIwMDJDQzA0QjMwMDI2QzAwODMwMDI5MjA0MjEKKzoxMEFGRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QkI4MEVFNDkzMUEwRjEKKzoxMEFGRjAwMDJDQTAwM0ZBMDBDQTAyMzY4MDBGQTAwM0E4MDBGQTAyQjAKKzoxMEIwMDAwMDNGOTAwRkEwNjNFODAwRkEwMDMyODAwQ0EwMjMzQTA0QkUKKzoxMEIwMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwQUU4MDAzRTA4NzAKKzoxMEIwMjAwMDBGODAwM0UzNTBGMDAwM0UwMDBGODAxM0UwMDBGODAwQjMKKzoxMEIwMzAwMDNFMDAwRjgwMDNFMDAxRjgwMTdFMDAwRjgwMDNEMjAwODQKKzoxMEIwNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQ0MEM5QTEzMjQwQjgKKzoxMEIwNTAwMDIwMTEwMUE2NDBDOTg0MzY0MDBEOTAwMzQ0MDA0MTAwRjAKKzoxMEIwNjAwMDMyNDAwRjkwMEIyNDAwRjkwMDNFNDA0QzEwMDMwMjA0QzQKKzoxMEIwNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMDg5ODJBMjQwQ0IKKzoxMEIwODAwMDA4OUMwMjI1MDA4OUM4MjI0MDA4OTA0MjI0MDA4OTIwOUIKKzoxMEIwOTAwMDIyNjAwQjkwMDIyNDEwQjkwMDJFNDAwODkwMDM2MDAwM0IKKzoxMEIwQTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMDg5MDQyMkNBRDYKKzoxMEIwQjAwMDBBOTAwQTI1MDI4OTIwMjA0MDI4MTAwMjY0MDFBOTAwNzQKKzoxMEIwQzAwMDIyNEIwQjkwMDIyNDAxQjkwMDJFNDEyODkwMDIwNjAwNjkKKzoxMEIwRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ5MDgxQTAyMDQ4MDcKKzoxMEIwRTAwMDBBMzIwMjA0ODA4MTAwMjA0NDA4MTEwMjA0RDBBMTIwMDkKKzoxMEIwRjAwMDIwNDAwQjExMDIwNjAwQjEzMTJDNDgwODE0MDI0MjAxMTUKKzoxMEIxMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MkM4NTQzMjE0NzUKKzoxMEIxMTAwMDBFODUwMzIxNDRDODI4QjIxQTRDODY5MzYxMTRFODUwNjYKKzoxMEIxMjAwMDIyMTQwRjg2ODMyMTQwRjA0MDFFMTQwQzAwMDMyRTAzQ0UKKzoxMEIxMzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFENzQ0NEY1MTAzRjQ0Q0EKKzoxMEIxNDAwMDBEOTEwMzc0NDBGOTAwM0U0ODBCOTIwM0U0QzJEOTEwRkMKKzoxMEIxNTAwMEJGNDAwRjkyMDNFNTA0RjkzMDNFNDQwRjk0NDNFNjA2RTYKKzoxMEIxNjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjYyMkNEQTEzMzYxMzgKKzoxMEIxNzAwMDBDRDhEMzM0MTBDREE4M0U2MDhFOUM5M0E3MDhDRDgwMDgKKzoxMEIxODAwMDMzNDAwRTlBRDMzNkEwQzk4MDMyNjAwQzk5MDMwNjAwNzIKKzoxMEIxOTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTM4ODhBQTAyMDI4MUEKKzoxMEIxQTAwMDA4ODAyMjIwMTI4ODQwMkMyODA4OEEwMjIyMDA4ODAwNjkKKzoxMEIxQjAwMDIyMDAwQjhDMDMyMTAwODhEMEEyM0UyODhEMDIwRTA0QjEKKzoxMEIxQzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1Q0UyMEExNDgyMDUyRjkKKzoxMEIxRDAwMDI5MTAwMjI0MDM4MTAwMkM1MjBBMTAxMjg1MTA5MTQwN0MKKzoxMEIxRTAwMEE0NDAwQTEyODI0NDAwOTEyODI0NDAyODEyMDIwMjAxM0QKKzoxMEIxRjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwMEE5MTQyMjQwRUYKKzoxMEIyMDAwMDA5OTAwMkE0MDE4OTA0MkM0MDA4OTAwMjI0MDA5OTAwQUUKKzoxMEIyMTAwMDIyNDQ0QjEwNDIyNDE0OTkwMDI2NDAwODEwMDIwNjA0RDAKKzoxMEIyMjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQ0MEU5NDBCMjc4OTIKKzoxMEIyMzAwMDBEOTAwQjI0MjJDOTAzM0U0MTBFOTAwM0E0MDJEOTAwQjUKKzoxMEIyNDAwMDE2NTgwNjkwMEI2NDAyRDkwMDM2NDAwQzkwMEIyODA0NjcKKzoxMEIyNTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxODQwMEQ5ODAzRTRBRjAKKzoxMEIyNjAwMDBFOTAwMzY0MjBGOTA4M0U0MTBGOTAwM0U0MDBFMTA4Q0EKKzoxMEIyNzAwMDNFNDAwRjkwMDNDNDAwRTEwMDM4NDAwRjkwMDNDQTAwMjUKKzoxMEIyODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwOUYwNDBCMDEwOEQKKzoxMEIyOTAwMDRDMDAwQjIwMDBGODAwM0EwMDFDMDAwM0UwMDBDODAwM0UKKzoxMEIyQTAwMDM2MDAwQzgwMDMyMDAwQzgwMDMyMDAwRjgwMDMwQTA0MUYKKzoxMEIyQjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MjgwMDNFODgyM0EyOEUKKzoxMEIyQzAwMDQ4RTAwMDE5ODBCRTg4MkU4MDBEQTA0MkU4MDA4RTAwNjQKKzoxMEIyRDAwMDIzOTAwOEEwMEEzQTAwREEwMDM2ODAwQkEwMEEwQTAwODAKKzoxMEIyRTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMEIzODAyMEUwNzIKKzoxMEIyRjAwMDI4MzBDMjBGMTBCMzQwMjhDMDBCMzAwMkVDMTE4MzQwM0QKKzoxMEIzMDAwMDI4RDIwQTMwMDIwQ0MwODMwMDIwQzAwQjMwMDIwQTAwOTEKKzoxMEIzMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUMwMEI2MDAyMUMwODkKKzoxMEIzMjAwMDA4MjBDMjFDMTBCNTAwMkRDODBBNzIwMkRDNDA4NTA4MzYKKzoxMEIzMzAwMDI5QTIxQTcyMjIwQzAwOTMzMDA1QzQwQjMyMjIyODAwNzUKKzoxMEIzNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MTYwMEIyODAzMTIwNzQKKzoxMEIzNTAwMDBDNTgwMzFFMDBGNzgwMzlGODBCN0MyMkNFNDBDRjgwQkEKKzoxMEIzNjAwMDlCNjAyRTNCMDMxQTAwQzdBODExRTAwRjc4MDMyQTAyNDYKKzoxMEIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQTQwMEZBMDAzRUMwMEMKKzoxMEIzODAwMDBGOTAyM0U4MDBGQjAwM0VEMDJEQjYwM0VEMDJGOTAwM0MKKzoxMEIzOTAwMDMyNDAwREIwMDdFQzAwRkI2MDNFQzgwRkI1MDNDMjA2OUIKKzoxMEIzQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMEZGODAzM0EwRTgKKzoxMEIzQjAwMDBDRjgwQjMyNDBDRTgxMzdGMDBDQkMwM0ZFMDBGRjg0NEEKKzoxMEIzQzAwMDMzRTAyQ0Y4ODNFNjAyQ0Y4NTMzRjAwQ0ZDMDMwMDE0NDUKKzoxMEIzRDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMEJFMDAzNUM2RUYKKzoxMEIzRTAwMDI4MzAwMjMwNDA4NzAwMjNDMDA4N0EwMkRDMDBCRTAwMEIKKzoxMEIzRjAwMDIzQzAwODcwMTJGRTAwODcwMDIxQzAwOEYwMDIyQTA0NTIKKzoxMEI0MDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOTUyMEI2MDAyMDgwRDEKKzoxMEI0MTAwMDA4MzEwMjVDMDE4NzAwMjVDMDA4NzIwMkRDMDBCNjAwMUEKKzoxMEI0MjAwMDIxRDAwOTcwMDJENDA4OTMwMDIwQzAwODcwMDIwMDAwRTcKKzoxMEI0MzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0QzQwMEIwRTAyNDYwRTAKKzoxMEI0NDAwMDA4MjAwNjQ4MDE4MDAwMjBDMDA4MzAwMkNDMDRCMzAwNjgKKzoxMEI0NTAwMDIwODQwQjMwMDJFODAwOUIwMDIwQzAwODMwMDIwODA0NjIKKzoxMEI0NjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUMwMEI5RTAzMjgwRjgKKzoxMEI0NzAwMDZDQjAyMzZGMDBDMzAwMzdDMTNDRjAwM0ZDMDBGQTAwM0UKKzoxMEI0ODAwMEIwQzAwOUYwMDNFQzEwREYwMDczQzAwQ0YwMEIyQTAwMTEKKzoxMEI0OTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMxMEY4MDAzRTQyNTgKKzoxMEI0QTAwMDBGMjQwM0E4NjBGODAwM0NDMTBGQjAwM0VDMDBGOTQwODIKKzoxMEI0QjAwMDNFODAwNEIwMjNFMTAwRUIwMDNFQzAwRkIwMDNFMDAwOEIKKzoxMEI0QzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRjQwMEVFMDAzRDMwRUMKKzoxMEI0RDAwMDBDQzAwMzE0MDBDQ0EwQjNDMDRDNzAwMzVDMTBERjAwQTAKKzoxMEI0RTAwMDNGMDAwQ0YwMDNGODAwQ0YwMDIzQzAwQ0YwMDMwMDQwMzUKKzoxMEI0RjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NjQwMEJBODEyRTU4NzIKKzoxMEI1MDAwMDA4ODgwMjI3ODA4OTIwMjJDMDI4QjAwMjJDMDA4ODgzNjYKKzoxMEI1MTAwMDJFMjAwNUIwNjJFMzAwOEIwMDJBQzAwOEIwMDM2MDQwMTMKKzoxMEI1MjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MjYwMEI5ODEyRTQwQjgKKzoxMEI1MzAwMDA4OEMwNjI2MDA4ODAwMjJDMDA4QjAxNjZDMDA5ODg4ODcKKzoxMEI1NDAwMDJFMjAwOEIwMDRFMzAxMEIwMDI4QzAwODMwMDIyMDAwQzAKKzoxMEI1NTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMEIwMDAyQ0MwRkYKKzoxMEI1NjAwMDI4MDAwRTAwMTA4MDAwMjBDMDA4MzIwMjBDMDA4MDA0NjkKKzoxMEI1NzAwMDJFMjAwOTMwMDJDNDEyODMwMDI4QzAwODMwMDI0MjAxODQKKzoxMEI1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMEZBMDAzRTAwMEEKKzoxMEI1OTAwMDJDOTEwMzIwMDA4QTAwMzNDMDBDRjAwMzdDMDBEODAwRkIKKzoxMEI1QTAwMDJFNDAwQ0YwMDNFMDgwQ0YwMDNCQzAwQ0YwMDMwMDAzMDIKKzoxMEI1QjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERkMwMEZDMDEzRjQwMDYKKzoxMEI1QzAwMDBGQzAxM0YwMDBGNDAwM0ZDMTBGRjQyM0ZDMDhGQzAwOEYKKzoxMEI1RDAwMDNGMDAwRkYwMDNGMDQwRkYwMDNGQzAwRkYwMDNFODA2MEMKKzoxMEI1RTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkMyMENEMTAzOUM4MkMKKzoxMEI1RjAwMDBEQzEwMzNDODBFRjkwMjNEODBGRjgwMEZFMDBDRjgwRjAKKzoxMEI2MDAwMDFGRDAwRkY5MDNGRjAwRTdDMDMzQzQwRkYwMDNCMDAwRjEKKzoxMEI2MTAwMDcwMDAwMDAwMDAwMDAwMDBDMDEwRkUwMjg5NDAyM0YwMEUKKzoxMEI2MjAwMDA4ODUxMDNDMDA4QjAwQTNEQzRCQjI4MkVDMjA4QjAwMjEKKzoxMEI2MzAwMDI2QzA0QkIwMDJFQzEwQjkwNDJBQzkwQkI1ODBGMDA0NDcKKzoxMEI2NDAwMDMwMDAwMDAwMDAwMDAwMDBDODA1Q0MwMDgxNjQyOEM0NjAKKzoxMEI2NTAwMDA5QjIwQTBDRjBBMzIwMjBDODBCMzIwMkVDMDI4MzA4QzYKKzoxMEI2NjAwMDJDQzgwOTMyMDJDQzgwQUJBMDIwQzgwQjMyMDBCMjAxM0EKKzoxMEI2NzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMxMDg5MDAyMkMwNUUKKzoxMEI2ODAwMDA4QjIxMjJDMDIwQjAwMjJDMDBCQjgwMkVDMDA4QjAwOTcKKzoxMEI2OTAwMDI2QzA0QkIwNDZFQzAwQjkwMDBBQzAwQkIwMDJGMDA0NjMKKzoxMEI2QTAwMDYwMDAwMDAwMDAwMDAwMDBEMDE1RUMxMEM5RTAzQUMwQjYKKzoxMEI2QjAwMDBEMjgwMzJDMDBFQjEwMzJDMDBGODIwM0M0MDBDQjAwMTYKKzoxMEI2QzAwMDNFQzEwRkIwMDZFQzA4RTkwMEIyQzAwRkIwMTM5MDA0MDEKKzoxMEI2RDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxOUMwMEY1QTAzRkMwRTkKKzoxMEI2RTAwMDBGRTgwM0ZDMDhGRjAwM0ZDMDhGQzAwM0ZDMDBGRjAwMTEKKzoxMEI2RjAwMDM3QzAwRkYwMDNGQzAwRkYwNDNFQzAwRkYwMDNGODAwNUEKKzoxMEI3MDAwMDYwMDAwMDAwMDAwMDAwMDA1MDEwQUMwMEY5NDAzNEMwQTAKKzoxMEI3MTAwMDBEQjQwMzJDMDBEQjQwM0VDMDJDODAwMzY0MDhGQjEwRkEKKzoxMEI3MjAwMDNFQzY4RkIwMDNFQzAwRjk4MDMyQzAwQ0IwMEIxNDA0OUQKKzoxMEI3MzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1M0UyMEU5QzgzN0Q0MDIKKzoxMEI3NDAwMDQ4QUEyMjFDMDA4QjAwNkZFMDA4ODU4MkVENDBCQjg0NzQKKzoxMEI3NTAwMDJGQzA0QkI4MDNBRDQwQjMwMDIzRDQwOEY3MDIzMjAwMkEKKzoxMEI3NjAwMDQwMDAwMDAwMDAwMDAwMDBFMDAxNEMwMEIxNjRBNEMwRjMKKzoxMEI3NzAwMDA5MjAwQTBDMDRCODAwNkNDMDA4MzgwMkM4NDBCMzgwMjUKKzoxMEI3ODAwMDJDRDEwQjMwMDJDQzA0QjMwMDI4QzAwODMwMDIzQTAwQTAKKzoxMEI3OTAwMDUwMDAwMDAwMDAwMDAwMDBCMDAxMUUwMEE1ODAyNUUwNjAKKzoxMEI3QTAwMDg4M0ExMjFFMDBBNjkwMkRFMjA4NzkwMkRBMDBCNzgyQ0MKKzoxMEI3QjAwMDJERTAwMzc4ODI5RTAwQkNDMTI5RTAwODc4MDIyQzEwOUQKKzoxMEI3QzAwMDQwMDAwMDAwMDAwMDAwMDA0OTA4MEMwMEYzMDAzNEMwRjUKKzoxMEI3RDAwMDBEM0UwMzBDMDBGMDQwMkVDMDBDMzA0M0M4MDBGMzAwQjcKKzoxMEI3RTAwMDNDQzAwNzMwMDNDQzgwRjIwMDM4QzAwQzMwMDMxMjAyOUEKKzoxMEI3RjAwMDAwMDAwMDAwMDAwMDAwMDA0MDE5QkQyMEY3MDAzRkMyMUIKKzoxMEI4MDAwMDBGRjEwQkRDMjBERTA0M0ZEMjA3RjAxM0Y4NDBGRjAwRkQKKzoxMEI4MTAwMDNGQzAwN0YwMDNGQzAwRkQwMDM3QzAwRjcwMDNEMDA2RTcKKzoxMEI4MjAwMDYwMDAwMDAwMDAwMDAwMDBBQTA1Q0YwMERDMDAzRUNBNTYKKzoxMEI4MzAwMDBGQTAwMEFDOTJDOTAwMzJDMDBGQjAxMUE0MDhGQjAwRTkKKzoxMEI4NDAwMDJFQzA0RkIwMjNFQzAwRjkwMDNFQzQwRkIwMDNFQTAwNTUKKzoxMEI4NTAwMDcwMDAwMDAwMDAwMDAwMDBDODkxOUMwMDg0MDAwMUMwM0UKKzoxMEI4NjAwMDRCNzAyMjFDQzA4NzAwMjFDMDRCNzAwMjFDMDBCNzAxMjYKKzoxMEI4NzAwMDI1RDgwQjcwMjJEQzAwQjYwMDJEQzAwQjcyMjJGMjA0MUEKKzoxMEI4ODAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwOUU4MDk3ODBBOUUwMUEKKzoxMEI4OTAwMDBCRjgwMkNFMDg4NTgwMjlFODBCRkMwMjE3MDBCNzgwNjAKKzoxMEI4QTAwMDJERTA4Qjc4MDJERTAwQjRDMDJERTgwQjc5MDJFMDAwQjkKKzoxMEI4QjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMDgzMDhBMEMwNTUKKzoxMEI4QzAwMDhCM0MwMjRDMDA4MzAwQTBDMDFCM0MwQTBGMjlCMzAwMzQKKzoxMEI4RDAwMDI0QzAwQjMwMDJDQzAwQjM4MDJDQzAwQjMwMDJEMjA0NDkKKzoxMEI4RTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMERFMDAzQTgwRUIKKzoxMEI4RjAwMDBGRUEwMkU4MDBDRTAwM0E4MDBGRTAwMzM4MDBGQTAwQjkKKzoxMEI5MDAwMDNFODAwRkEwMDNFODAwRkUwMDNFODAwQkEwMDNGQTA0NzcKKzoxMEI5MTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwMEY4MDRCQTAxRTgKKzoxMEI5MjAwMDBGODIwQjgwMDRGODgwM0UwMDBGODYwMzYwMDBGODAwNTEKKzoxMEI5MzAwMDM2MDAwRjgwMjNFMTAwRjgwMDNFMDAwRjgwMDNEMjAwQTQKKzoxMEI5NDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMUY5MDAzMjQwNUYKKzoxMEI5NTAwMDBGOTAwM0U0MDA0OTAwMzI0MDBCOTAwMzI0MDA0OTAwOUIKKzoxMEI5NjAwMDNDNDAwRDkwMDNFNDA4QzkwMDNFNjAwQzkwMDMwMjA0QzMKKzoxMEI5NzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwMEI5NDBBMjY0QjAKKzoxMEI5ODAwMDBCMTgwMjI1MDBEMTUwMzY1MDRFOTAwQTI0MDI4OTQwRUYKKzoxMEI5OTAwMDNBNTEwODk0MDJFNTIyODk0NDJFNjAyODkwMEEyMDAwM0EKKzoxMEI5QTAwMDEwMDAwMDAwMDAwMDAwMDAxODAxMjQwMEIxMDgyMjQwMkYKKzoxMEI5QjAwMDRCOTI4MkE1MDBBOTA4MjI1MDBBMTAwMjBDMDBBOTQwNEYKKzoxMEI5QzAwMDZFNTAwQjk0MDJDNDA0ODk0NDZDNDg4ODEwMDI0NjAwRUYKKzoxMEI5RDAwMDQwMDAwMDAwMDAwMDAwMDAwMDA0MDQwMEIxNDBFMDQwMEUKKzoxMEI5RTAwMDFCMTQwQTA0MDBCOTAwMjQ0MDFBMTAyMjA0MDBBMTAwMEMKKzoxMEI5RjAwMDI4NDAwQTEwMTJDNDAwODEwMjZDNDAwODEyMDI0MjAxNjEKKzoxMEJBMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwOEIwMDAzMjAwMjcKKzoxMEJBMTAwMDRGODAwMkExNTBFMDUwMzIxNDBFQTUyMzIxNDBFODUwN0YKKzoxMEJBMjAwMDNFMTQwRjg1MDNFMTQwQzg1MDFFMTQwQzg1NDM2RTAzN0QKKzoxMEJBMzAwMDUwMDAwMDAwMDAwMDAwMDBEODE5RTUwMEZENDAzRTUwMTUKKzoxMEJBNDAwMDBGNzQwM0E1MDA1RDAwM0U1MDBBNTAxM0Y0MDBEOTAwQTYKKzoxMEJBNTAwMDNBNTAwRDkwMTNFNDAwRkYwMDNFNTAwRjkxMDNBNjA2RUMKKzoxMEJBNjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1RjY5MEJERTgyMzZCOTAKKzoxMEJBNzAwMDBCREEwQjM2ODBDOTAwMzI2ODQ2OTA0M0U0MDA0OTAwNzcKKzoxMEJBODAwMDMyNjgwQzkwMDMyNDQwRjkwMDMyNjAwQzlDMDNDNjAxMUMKKzoxMEJBOTAwMDYwMDAwMDAwMDAwMDAwMDA3ODEwRTEwMEI4RTBBMjExOTIKKzoxMEJBQTAwMDBCOEUwQTIzMjI4ODgwMkEzMTI4ODgwMjYyMDA4ODgwMkYKKzoxMEJBQjAwMEEyMzAyODg4OEEyMjAwQjhBOEEyMzkwOENBMDJDRTA0NzcKKzoxMEJBQzAwMDMwMDAwMDAwMDAwMDAwMDA0ODA1QzUwODIxMDAwMDQwQ0IKKzoxMEJBRDAwMDAzMTQ4Mjg1ODBBRDA4MjE1Mjk4NTA4MjM0MjM4NTA4NTIKKzoxMEJBRTAwMDIxNTIwODUwMDY1NDAwQjUyMDIxNUEwOTU0MDJEMjAxQUYKKzoxMEJBRjAwMDMwMDAwMDAwMDAwMDAwMDAxODExQTQwMEI5NjEyMjQwQ0QKKzoxMEJCMDAwMDBCOTAwNjA0MDBBRDAwNjk0MDA4RDAwMjc0MDA4NTAwNjcKKzoxMEJCMTAwMDAxNDAwMDcwMDY3NDA0QjUwMDIzNDAwOUQwMDJDNjA0MzkKKzoxMEJCMjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE0QTQwMEU5MDAzMjQwMDIKKzoxMEJCMzAwMDRGOTUwQkE0MDBFOTAwMzI0MDhDOTAwMzI0MDBDOTAwMEIKKzoxMEJCNDAwMDMyNDAwQzkwMDM2NDA4RjkwMDMyNDAzRDkwMDNFODA0NTEKKzoxMEJCNTAwMDcwMDAwMDAwMDAwMDAwMDA2ODAxQTQwOEY5MDAzRTQwRTkKKzoxMEJCNjAwMDRGOTA4QkU0MDREOTAxM0U0MDBEOTAwMzY0MDBEOTAxNEQKKzoxMEJCNzAwMDNFNDAwRjkwMDNBNDAwRjkwMDNDNDAwRTkwMDNEQTAwMTEKKzoxMEJCODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEY4NDAzNjIwRUYKKzoxMEJCOTAwMDE3ODQwMzIwMjFDODAwN0UwMjJDODA0MzIwMDBFODAyODUKKzoxMEJCQTAwMDNFMDEwRjgwMDNFMDAwQzg0MDFFMDAwRjgwMDNDQTA0NUUKKzoxMEJCQjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MkE4OEI2MDIyM0EwMEIKKzoxMEJCQzAwMDBCRUM0MjJCMDBEMjgwNkVCMTA4QTAyMjA4MDBFQTA0RTAKKzoxMEJCRDAwMDNBODA5RkEwMDNBODAwOEEwNDJFODAwQkE4MDJDQTAwMDYKKzoxMEJCRTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMwMEIyMDBBNEUxNjUKKzoxMEJCRjAwMDhCQjQzMjQ3NDU4MzkwMkNGNDRCMzgxMjBFNDRBMzAxOEEKKzoxMEJDMDAwMDJDQzA0QjMwMDJDRTAwOTMwMDZDQzAwQjM4MDJDQTAwMkYKKzoxMEJDMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUMwMEI3NDQyMUMyMzkKKzoxMEJDMjAwMDBCNTQwMjU0MDU4NzAwMkM0MDlCNkMwMjE4MTBBNzA0OEIKKzoxMEJDMzAwMDI5QzAwQTcwMDI5QjAwOTcwNDBEODAwQjYwODJFODAwMDcKKzoxMEJDNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEYzODAzNUUwNUUKKzoxMEJDNTAwMDBCMzgwMjUyMTA4NDgwMkRBMDBGRjgwQjFFMDBFNjgwRDYKKzoxMEJDNjAwMDFEQTAwQjY4MDNGRTAyRDY4MDNERTAwRjc4MDNFQTAyQjgKKzoxMEJDNzAwMDAwMDAwMDAwMDAwMDAwMDAwQTFEQUMwMEZCMDAzRUMxRjcKKzoxMEJDODAwMDhCOTAwQjgwMEFCODAxMkUwMDBDQjAwM0U4MDBGQTAwN0MKKzoxMEJDOTAwMDNFQzAwRkEwNDNFQzAwRUIwMDNFODAwRkE2MjNDMjAyODMKKzoxMEJDQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkUwMEZFODAzMzIwNjAKKzoxMEJDQjAwMDRFQzkxMkY2NTBFRjkwM0ZFMDBDMTkwMEI2NDJDRjIxNkEKKzoxMEJDQzAwMDNGRTAwRUY5MDJFNkMwRkY4MDNGRTA0Q0RDMDM0MDAwOUQKKzoxMEJDRDAwMDcwMDAwMDAwMDAwMDAwMDBBQTExOTQwMEI3MDA4MTQwMkQKKzoxMEJDRTAwMDA4MDMwMjE0QzQ4NzAxMkRDODA4NkExMjM4NDA4NzAyNkQKKzoxMEJDRjAwMDJEQzAwODcxMTJEMjgwQjcwMDJEODAwODYwMDIyQTA0N0UKKzoxMEJEMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMEI3MTAyMTgwQ0YKKzoxMEJEMTAwMDA4RjQxMjk0MDRBNjAwMkNDMDE4RDIwMjE0NDg4NjEwMEQKKzoxMEJEMjAwMDJEODAwQTYxMzJENDAwQjYxODJEQzQwODU4MDIwMDEwQzQKKzoxMEJEMzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0QzQwMEIzMDAyMEMwNTgKKzoxMEJENDAwMDQwQjAyMjA0MDA4MjgxMENDMDA4MzAwQTBBMDA4QTAwMzgKKzoxMEJENTAwMDJFQzAwOEEwMDJDNDAwQkIwMDJFODAwODIwMDIwODA0RTgKKzoxMEJENjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUMwMEZCMDBBMEMwREYKKzoxMEJENzAwMDI0OTQyM0FDMTBFQkEwMEVDMDBDQjAwMjJFMjBDOTAwRkUKKzoxMEJEODAwMDJFNDAwRTkwMDNFQzAwRjk4MDNFNDA2Q0EwMEIyQTA0N0MKKzoxMEJEOTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwQ0MwMEZCMDAzRUMwRkUKKzoxMEJEQTAwMDg5OTAwMzJDMDBGQjAyM0U0MDRGQTAwMzZEMDFGQjQxMzQKKzoxMEJEQjAwMDNFQzA4RkI0MDNFODAwRkIyMDNFNTAwRkE0MDNFMDAwMTgKKzoxMEJEQzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMEMzMjBCMkMwRTEKKzoxMEJERDAwMDBERDAwMzM4MDBDRDAwM0Y4MDBERjAwM0ZDMDBGRDAyQzQKKzoxMEJERTAwMDM2MDAwQ0QwMDMzRjA4RkMwNDEyQzAwQ0EwMDNDMDQ0NzIKKzoxMEJERjAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NkMwMjhCQzgyMkMwRUMKKzoxMEJFMDAwMDA4OTgwQTJBNDA4OTIwMkUwMThFQjAxMkVDODBCQkYwREYKKzoxMEJFMTAwMDIyRTUwOEJEMDIyRTAwQkI5MDIyRUQwOEEyMDJFMDAwNDAKKzoxMEJFMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMDhCMDEyMjAwQTMKKzoxMEJFMzAwMDQ5QTgxRTA0MDA4QjAxMkVDMDQ5OTAwMkU0MDBCOTAwRkQKKzoxMEJFNDAwMDIyNDAwQTkwMDIyQzAwQjkwMDJBNDAwODgwMDJFMDAwM0IKKzoxMEJFNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQwMDgxMDAyMDQwQjEKKzoxMEJFNjAwMDA4MjAwMjA0MDA4MzAwMkNDMDBBMjA0MkNDMDBCMzAwNEEKKzoxMEJFNzAwMDIwQzAwMjMwMDIwODg0QjMwNDA4NDAwODIwMDJDMjExMjYKKzoxMEJFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMDhCMDBCMjgwN0MKKzoxMEJFOTAwMDBEQjEwMzI0MDJDQjAxM0VDMDREOTA0M0U0MDBGOTAwRjQKKzoxMEJFQTAwMEIyMDAyRTkwMEIyQzgwRjgwMEJBQzAyQzgwMDNDMDAzODcKKzoxMEJFQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERjQwMDdEMDAzRkMwMDUKKzoxMEJFQzAwMDBGNzIwM0Q0MDBGRjAwM0ZDMDBFRjE0N0ZDMDBGRjAwREIKKzoxMEJFRDAwMDNCQzAwREYwMTNGQzUwRkYwMDM3QzAwRkUwMDNFODA2MzUKKzoxMEJFRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjBDNENDMzMzRjA0MjcKKzoxMEJFRjAwMDJDRjYwMzM4NjBDQzkwQjMyMDBGRjEyM0YwNjBGRjAxRTMKKzoxMEJGMDAwMDIzQzgwQ0YyOEEzQzgxREYzMDNGNjQwQ0Q4MDMzMDA0MzQKKzoxMEJGMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTBDMjhBMzAyRTE4N0YKKzoxMEJGMjAwMDA4RjUzMEE1OTQ1ODIyMjIyMTRCRjMwMkUxMDA5RjcwQkUKKzoxMEJGMzAwMDJCRTQwQUY0MTIxRDQwQUY3MjJDNDkyRjMwODJBMDA2NjgKKzoxMEJGNDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzQ4MDgwQTAyQzk4MEMKKzoxMEJGNTAwMDA4MzIyMjA4MDA4MjAwMjgwMDAzMzIwMkMwODRCMzBDOTkKKzoxMEJGNjAwMDIwQzA1ODMyOTI4QzMwQTMyMDJFQzA0ODEyNDI2MjAxNjkKKzoxMEJGNzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QTgwMDhCMDAyRTIwRkIKKzoxMEJGODAwMDA4QjAwQTIwMDE5ODAwMkEyMjBCQjAwMkU2MDA5QjAwQUMKKzoxMEJGOTAwMDIyQzAwQUIwMTJBQzA0QUIwMDJFQzAwM0IwMDJGMDAwMDUKKzoxMEJGQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDE1RTUwMEM4MDAzRUIwODEKKzoxMEJGQjAwMDBDQjAwMzI5MDBDODAwM0EyMDRGQjAwM0UyMjBGQjAxNzcKKzoxMEJGQzAwMEIwQzAwQ0IwMDMyQzAwRkIwMjNDNDEwQzkwNDM0ODA0NzEKKzoxMEJGRDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQTI4MEZFNDAzRTAwNzIKKzoxMEJGRTAwMDBGRjA2M0VDMDBCRkM0MTc0MjBGRjAwM0VDMDBGRjAwM0EKKzoxMEJGRjAwMDFGQzEwRkIwMDM1QzAwRkIwMDNGNDA0RkYwMDBCODAwRDIKKzoxMEMwMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQTUwMkM4MDAzRTkwNDMKKzoxMEMwMTAwMDJDQjAwQjAxMDZDQjAxM0U1MDVGQjAxMzIxMTBDQjAwQkEKKzoxMEMwMjAwMDdFQzAwQ0IwMEIyQzAwQ0IwMDMyQzAwQzkwMDMxMDA0NkYKKzoxMEMwMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MjgwMThCRDAyQzM0MkYKKzoxMEMwNDAwMDQ4RkYwMjMwMDBBQTA0MkU2OTBGRjAwMzY4MTBERjAwRDkKKzoxMEMwNTAwMDJGRDQwREYwMDIzRTAwNUYwNEI2QzAwOEIwMDM3MjAwOUEKKzoxMEMwNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1Njk5MDgxODAyQzAwODUKKzoxMEMwNzAwMDQ4QjgwMjA4MDk5OTAwNENCMDBCMzAwMjBDMDA4QjAwNDQKKzoxMEMwODAwMDJDQzAwOUIwNDAwQzQwODMwMDAwNDAwQTkwMDIzMDAwRjAKKzoxMEMwOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTYwMDg0ODgyREU0RkMKKzoxMEMwQTAwMDQ4MzkwMjE2MDBCNDgwMkRFMDBBN0IwNjVFMDA5NzgwQjYKKzoxMEMwQjAwMDJERTIwOTc4MDIxRTkwOTc4MDI1NjQ4QTc4MDI0ODAwNTQKKzoxMEMwQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEQwMDgxMTAyQzk2ODAKKzoxMEMwRDAwMDA4MzEyMzBDMDA5MDIwM0NDNDFCQjgwMjA4NDBDMzAwNjgKKzoxMEMwRTAwMDJDQzQwRDMwMDMwRTQwQzMxMDMwQzA0RTEwMDcxQTEyN0UKKzoxMEMwRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQkMwMDdEMDUzRkM1QTEKKzoxMEMxMDAwMDBGQjEwQkY0MDBFRjAwMUY0NTBGRjA0M0ZDMDFGRjQwOUYKKzoxMEMxMTAwMDNEQzQxRkYwMDZGQzEwRkYwMDNCQzEyREYxMDNEMDA2MEIKKzoxMEMxMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUMwNENCMDQzRUEwNjUKKzoxMEMxMzAwMDQ0QjYwMzI4MDRDQjgwMzI4MDBGQjM5MzYwMDhGQjIwMDEKKzoxMEMxNDAwMDNFRDIxRkIzMDMyRDgwRkI2MTdFNDA4Qzk4MDMyQTAwRjIKKzoxMEMxNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExODQwQzg2MDUyREMwMEUKKzoxMEMxNjAwMDA4RjQ4MjhDOTA4NTAwQTFDMDBCRjAwMjVDMDAzNzAwQkYKKzoxMEMxNzAwMDJERDAwQjcxMDIxQ0M4Qjc0ODJENDAwQTcwMDIxMjA0NjIKKzoxMEMxODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMDg3ODAyREExMUMKKzoxMEMxOTAwMDYwNzg0QTE2RDBBNzgwMjlFMDBCNzg1Mjk2MDFCNzkwQjQKKzoxMEMxQTAwMDJERTgwQjdBMjI1RTQwQjdBMDJGRTE0ODUwMjIzMDAwRTQKKzoxMEMxQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MxMDgzODQyQ0MwMzQKKzoxMEMxQzAwMDA4MzAwMkE0MTA4M0NCMjhFMDBCMzAyQTRGNDA5MzAwQTQKKzoxMEMxRDAwMDJDQzAwQjMwMDI0QzEwQjMwMjJDQzBBQTMwMDIxMjA0NDcKKzoxMEMxRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QjgwMENFQTAzRjgwM0QKKzoxMEMxRjAwMDRDQTAyQjNBMDBDRTQwM0JCODBGQTAwM0I5MDBCQTAwQzgKKzoxMEMyMDAwMDNFODAwRkEwMDM2ODAwRkEwMDdFODAxQ0EwMEIzQTA0NTkKKzoxMEMyMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwMkY4MDAzRTA0NUEKKzoxMEMyMjAwMDhGMDAwM0UwNEFGODEwMjYxODBGODAwM0EwODBGODAyNjAKKzoxMEMyMzAwMDNFMDA4RjAwMEJBMDAwRjgwMjNFMDAwRjgwMTNEMjAwREEKKzoxMEMyNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQyMEM5MDAzMjQwNjcKKzoxMEMyNTAwMDREOTkwMzI0MDBDOTAyM0U2ODBGOTAwMjI0MDBFOTAwQjIKKzoxMEMyNjAwMDMwNDA4QzkwMDMwNDQwQzkwMDNFNDAwQzkwMDMwMjA0MEYKKzoxMEMyNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQyMDg5MDYyMjUwODUKKzoxMEMyODAwMDhCOUNDMjI0MDBEOTAxMkU0MDBCOTA0MjI0MDhCOTAxOTYKKzoxMEMyOTAwMDIyNDYwRDkwMEEyNjAyODkwMDJDNDAwQTEwMDIyMDAwMzYKKzoxMEMyQTAwMDEwMDAwMDAwMDAwMDAwMDAxODAxMDYwMDkxNDA0MjcwREMKKzoxMEMyQjAwMDBCOTAxMjJDMDI4QjAwMkU0MDBCMTAyMkU0MTBCMTAwQzgKKzoxMEMyQzAwMEEyNDA0ODkwMTIyNDA4OTkwMjJFNDAwODkwMDIwNjAwQ0QKKzoxMEMyRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ5MjkxMjBFMDQ4QTMKKzoxMEMyRTAwMDBCMTIwMjA0MDI5MTEwMkNDMDBCMTAwNjg0QzBCMTEwNzYKKzoxMEMyRjAwMDIwNDg4OTExMDIwNTgwOTE0MDJFNDQyQTk0MDIwMjAxQUYKKzoxMEMzMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjE0MEQ4NTAzMDE0NUIKKzoxMEMzMTAwMDBGODUwQjIxRTA4MDQwM0UwMDBGODc4QkUxMENGODZDMEQKKzoxMEMzMjAwMDMyMDA4NDA2ODMyMDA0RDgyODNFMTAwQzAwMDMyRTAzMUMKKzoxMEMzMzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQ0MEFEMTAzRjQ1ODMKKzoxMEMzNDAwMDBGOTEwM0ZDMTg3RDIwMUY0MTBGOTAwMzc0QzBGOTIxNDkKKzoxMEMzNTAwMDNFNDQwRjkyMDFFNDQwRTkwMDNENDg0RkQwMDNFNjA2MTkKKzoxMEMzNjAwMDcwMDAwMDAwMDAwMDAwMDAxODA1Rjc4MEZERTAzMzcwNDkKKzoxMEMzNzAwMDBDREEwMzI2MjBDOTQwMzE0MDBFOUEwMzI0MDBGOTgwQ0MKKzoxMEMzODAwMDNCNjAwRjlDODMzNkEwRjlBMUIwNDAwRjkxMDNDNjAwMUIKKzoxMEMzOTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTI5MEI4QTAyMjI4RDEKKzoxMEMzQTAwMDI4ODgwQTIyMDI4OEEwMjIwMDA4ODgwMkMyODBCODg4NTEKKzoxMEMzQjAwMDIyMDQwQjhFMDMyMjgwQjhEMDJBMjAwQjg4MDJDRTA0RTAKKzoxMEMzQzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzU4MEIxNjEwMDU4ODEKKzoxMEMzRDAwMDQ4MTY4QTA0QTA4OTAxMjI0MDFBMTQ4ODA0MjBCMTQwMUEKKzoxMEMzRTAwMDI4NDAwQjEwMEEwNDIwQjEyQzIwNEEwQjEyMDJDMjAxNzMKKzoxMEMzRjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTU5MEJCNDAyMDQwMTAKKzoxMEM0MDAwMDA4OTAwMjI0NDA4OTQyNjI1ODA4MTAwMkU1MDBCOTAzRUUKKzoxMEM0MTAwMDIyQzAwQjkwMDJBNDE0MzEwMDJBNDQwQjkwMDJDNjA0REYKKzoxMEM0MjAwMDYwMDAwMDAwMDAwMDAwMDBBMDEwQTUwMEY5MDEzMjQwRUIKKzoxMEM0MzAwMDhDOTAwMzI3MDBDMTk0MzA0MDBFOTAwMzI0MDBGOTAwMzMKKzoxMEM0NDAwMDNBNDAwRjkwMDMyNDAwRjkwMDMyNjAwNzkwMjdFODA1NzYKKzoxMEM0NTAwMDIwMDAwMDAwMDAwMDAwMDAyODAwQTQxOEY5MDBCRTQ0REQKKzoxMEM0NjAwMDBGOTAwM0M0MDBGOTAwQkU2MThGOTAwM0E0MDBGMTAwOTcKKzoxMEM0NzAwMDFFNDAwRjEwMDMyNDA4RjkwMDdFNDAwRjkwMDNDQTAwRUQKKzoxMEM0ODAwMDIwMDAwMDAwMDAwMDAwMDAyODEwQTE4MUY4MDAzMjA0MDQKKzoxMEM0OTAwMDBDMDBEMzIxMDBEODA0M0ExNDlDODAwMzIxMDFDODAwNjkKKzoxMEM0QTAwMDM2MDAwQzgwMTMyMDEwQzgwMDMyMDAyQzgwMDNDQTA0MTAKKzoxMEM0QjAwMDIwMDAwMDAwMDAwMDAwMDAyODA0M0EwMEJFODQyMzg1MEMKKzoxMEM0QzAwMDA4RUM4MzY4MDQ4QTAwMkY5MDREQTAwMjI4MDFEQTAwNEUKKzoxMEM0RDAwMDIzQjAwQUEwMDIyQTA4REEwMTIyODAwRkEwMDJDQTAwQjMKKzoxMEM0RTAwMDAwMDAwMDAwMDAwMDAwMDAyODA1NEMwMEJCRjAyMEMwNDgKKzoxMEM0RjAwMDA4M0MwQTBDMDA5MzAxMjhDODg5MzAwNjRDMDA4MzAyQ0UKKzoxMEM1MDAwMDJDRjYwODMwMDIwNDAwQTMwMDIwQzAwQTMwMDJDQTAwNDIKKzoxMEM1MTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUQxMUIzMDBBMEMwNjkKKzoxMEM1MjAwMDA4NTAwMjVDMTA4NzAxNkQ4MTQ5MzI1MjFFQzM4NzAwOUEKKzoxMEM1MzAwMDI4RTAwQTMyMjYxRjAwMzcwMDIzRTAwQjcyMDJDODAwRjEKKzoxMEM1NDAwMDQwMDAwMDAwMDAwMDAwMDAyODA4MTIwMEI3ODIzMTIwREYKKzoxMEM1NTAwMDA4MDgzNzBGMDhEN0UwMzk2MDE5N0EwQjVFMEM4M0IyRjAKKzoxMEM1NjAwMDdERTAwQzdBMEIzRTAyQUZBMEIxRTAwRTdBMDNDQTAyNjYKKzoxMEM1NzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQTAxMEZCMDAzRUMwRUQKKzoxMEM1ODAwMDZGQjA0M0VDMTFGQjAwM0U0MDBGQjUwM0VDMjBGQjUwQjUKKzoxMEM1OTAwMDM2MDAwRkI1NDNFNUExREI3ODNFQzAwRkI0MDNDMjA2RjkKKzoxMEM1QTAwMDYwMDAwMDAwMDAwMDAwMDA0MDA1RkUwMEZGQTAzRkEwNkEKKzoxMEM1QjAwMDBEQzkxMzNFMDBDRkQwM0RFODAyRkYxMzNFMDBDRjgyRUQKKzoxMEM1QzAwMDNGNjAwQ0ZDMjMzRTEwRUY4MDMzRjIwQ0ZDODMxMDAwMjQKKzoxMEM1RDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUM0MEI1MDEyREQwQTMKKzoxMEM1RTAwMDA4NTgwMjFDNDA1NzEwMkQ1QTI4MzEwMkJDMDE5NzEwRTAKKzoxMEM1RjAwMDJEMDAwQTcwMDI4NDA0Q0YwMDI5QzAwQUYwMDIyQTA0MjgKKzoxMEM2MDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOTAwMEI3MkEyRDgyQUEKKzoxMEM2MTAwMDA4NDIyMjNDMDA4NzExMERDQzg4MzIwMjFEMDA5NzAwOTEKKzoxMEM2MjAwMDJDQzQwODMwMDIxNDAwQTcwMDIzQzAwOTcwODIwMDAwNDcKKzoxMEM2MzAwMDIwMDAwMDAwMDAwMDAwMDA2MDE0QzAyMEIwMjAyQzUwM0EKKzoxMEM2NDAwMDA4MTAwMjJEQzA5M0UyMkMyMTA4MzAwMjBFMDg5MzAwM0UKKzoxMEM2NTAwMDJDNDAwQTMwMDI4QzAwOTMwMDJBQzAwQjMwMDIxODA0RDAKKzoxMEM2NjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUMwMEY4QzAzRTgwQkIKKzoxMEM2NzAwMDJDQTAwQjNGMDBDNzYwM0VEMDBDRjAwQjNDMDBDRjAwNUQKKzoxMEM2ODAwMDNFODAwQ0YwMEIyQzAwRUYwMDMzQzEwREYwMEIyQTA0QTAKKzoxMEM2OTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUM0MEYzNDAzRTUwQ0QKKzoxMEM2QTAwMDhFQjQwM0VDMTBGQjAwM0UwOTBGQjAxM0VDNDJFQjAwMUMKKzoxMEM2QjAwMDNDMDA4RkIwMTNDNDExRTMwMDNFQzAwRUIwMDNFMDAwOTUKKzoxMEM2QzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMEZDODAzMTIyNUUKKzoxMEM2RDAwMDBDQTgwMzNDMDBDRjAwMzNBMDBFRjAwM0RDMDBDRjAwMTkKKzoxMEM2RTAwMDFGRjAwQ0YwMDNGNDAwQ0YwMjMzQzAwQ0YwMDIwMDU0MzIKKzoxMEM2RjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkYwMEJCQzAyMjcwMDkKKzoxMEM3MDAwMDBBQjk0MjJDMTA4QjAwNzYxMTgzQjAwMkVDMTBBQjAwRkEKKzoxMEM3MTAwMDJFQjAwQUIwMDNFQzA0OEIwMEEyQzAyOEIwMDIyMDQwNjcKKzoxMEM3MjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1NjU0MEI4MjAyMjQ0OTEKKzoxMEM3MzAwMDU4MzQwQTJDMDA4QjAwMjI4NDRCQjAwMkVDMDA4QjAwOTIKKzoxMEM3NDAwMDZFQzAwOEIwNDJFNjA0OEIwMDAyQzAwODMwMDJBMDAxQUYKKzoxMEM3NTAwMDQwMDAwMDAwMDAwMDAwMDAwQzAwMDAwMEIxMDAyMEMwRkMKKzoxMEM3NjAwMDBBMzAwQTBDMDA4QjAzMjQ4MDBCMzAwMkNDMDBBMzAwOUIKKzoxMEM3NzAwMDZDMDAwQTMwMDI4RDAwODMwMDIwQzAxODMwMDI4MjAwNTUKKzoxMEM3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NjQwMEY4MDAzMDAwMTUKKzoxMEM3OTAwMDRDQTAwQjJDMDJDRjAwMjI0MDBFRjUwM0ZDMDBDRjAxNzEKKzoxMEM3QTAwMDNFMDAwQ0YwMTJERDAyQ0YwMjMzQzA0Q0YwMEI4MDAzRDAKKzoxMEM3QjAwMDEwMDAwMDAwMDAwMDAwMDBBNDE5RjAwMEZDMDAzRjQwNDEKKzoxMEM3QzAwMDBGQjEwM0RDMDBCRjAxM0YwMDBGRjIyM0ZDMTBGRjAwOUMKKzoxMEM3RDAwMDNGMDAwRkYwMDFGNDg0RkYwMDNEQzA0RkYwMTM2ODA2RTYKKzoxMEM3RTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RkU0MERGODAzM0M4N0MKKzoxMEM3RjAwMDBDRjgwMzNDMEE5RkMwM0ZGMDA4QjgwMjNFMDBGRjgwREYKKzoxMEM4MDAwMDNGRDgwQ0Y5NjEyRTQwNkY5MDNGRTQ4RkYxODMzMDAwRTgKKzoxMEM4MTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRUMwNDhCODAyM0YwMEEKKzoxMEM4MjAwMDA4QjgwMjNENDBBQjAwMEUwODQ4MjI4MjZDMjBCQjAwRDUKKzoxMEM4MzAwMDJGRDA0OEIwMDIyQzAwQkIwMDJFQzEwQkIwMDIzMDA0MzgKKzoxMEM4NDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1Q0MwMjgzMDFBMEM1NzQKKzoxMEM4NTAwMDA4QjA0QTRDQTA4MDI0MjhDODA5MzIwMjRDMDBCMzA4MTIKKzoxMEM4NjAwMDJFRDEyOUIyM0EwQzg0QTMyMTJDQzg0QkIyMEEzMjAxMzIKKzoxMEM4NzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwODhCMDAyMkMwNTIKKzoxMEM4ODAwMDA4QjAwMjRDMDA4ODIxMjQyMTA5QjA0NjZDMDBCQjA2ODgKKzoxMEM4OTAwMDJFQzAwOUIwMDIyQzEwQkIwMDJFQzAwQkIwMDIzMDA0MTkKKzoxMEM4QTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMENCMDAzMkMwMkEKKzoxMEM4QjAwMDBDQjkwMjZDMDBDQkM4M0FDMDJEOTAwQjJDMDhGQjAwQzEKKzoxMEM4QzAwMDNFQzAwRDMwNDIyQzAwRUIwMDNFQzAwRkIwMTMwMDA0MDAKKzoxMEM4RDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQkMwMEVGMDAzREMwNUYKKzoxMEM4RTAwMDBGRjAwM0JDMDZFRjgyM0Y0MDRFQzk4M0JDMDBGRjAwM0YKKzoxMEM4RjAwMDdGQzAxQ0YwMTM3QzAwRkYwNDNGQzAwRkYwMDNGODAwNjIKKzoxMEM5MDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEZCMDIzRUMwRDAKKzoxMEM5MTAwMDBFQjAwM0FDMjBEODQwM0VDMDhDOTAwQjJDMDBGQjAwMjYKKzoxMEM5MjAwMDNFQzkwREIwMzNFQzA4RkIwMjNFQzAwRkIwMEI1NDA0RkYKKzoxMEM5MzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkMwMEIzMDAyRkMwM0MKKzoxMEM5NDAwMDBCMzAxMkZDMDA4OEEwMkU0MDI4OTQwMjJDMTBCQjA0NEYKKzoxMEM5NTAwMDJEQzAyOEIwMDJFQzAwQkIwMDJFQzAwQjcyMDYzMjAwQzYKKzoxMEM5NjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NkMwMEIzMDAyQ0UwNzcKKzoxMEM5NzAwMDBBMTAwMkNEMDA5MzAwMkNDMDA4QjAwMjRDMDBCMzAwOTYKKzoxMEM5ODAwMDI4QzAwODMwMDJDQzAwQjMwMDJDQzAwQjMwMDIzQTAwQTMKKzoxMEM5OTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMUU0MEI3ODAyREUyODIKKzoxMEM5QTAwMDBCNTgwMkRFMDI5NzgxMkZBMDA4NjgwMjVFMDBCNzgxNTMKKzoxMEM5QjAwMDJGRTAwODc5MDJERTAwQjc4MTJERTAwQjc4MDIzQzAwMDEKKzoxMEM5QzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MEMwMEYzMDAzQ0MwREMKKzoxMEM5RDAwMDBFMzIwM0NDODBEMzAwM0NDNDBDMzkwMzRDMDhGMzFBNEMKKzoxMEM5RTAwMDNDQzYwRDMwMDNDRTIwRjMwODNDQzAwRjMwMDM1MjAyOEEKKzoxMEM5RjAwMDAwMDAwMDAwMDAwMDAwMDA0MDFEQUMwMEZCMDAyRUMwNDUKKzoxMENBMDAwMDBCQjAwM0NDMjBFQjAwM0M4MDBGQjA0MUFDMDBGQjAwMkUKKzoxMENBMTAwMDNDQzIwRkIwMDNFQzQwRkIwMDNFQzAwRjMwMDNEMDA2MTkKKzoxMENBMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUUwMkMzODAzMENFQzgKKzoxMENBMzAwMDBEOTgwM0FDQTBDMzgwQjJDMDBGQjAwM0VDMDBGQjAwQTQKKzoxMENBNDAwMDNFRDI0RkIwMDkyRTA4NEIwMTNFQzAyNEIwMDNFQTAwOEQKKzoxMENBNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOUMwMDg3MDEyMUMwMDgKKzoxMENBNjAwMDQ4NTAxMjRDMDA4NzAwMzVDMDRCNjAwMkRDMDRCNzAxMEYKKzoxMENBNzAwMDJEQzAwQjcwMDIxQzAwODcwMDJEQzEwQzcyMDJGMjA0NDUKKzoxMENBODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMDg3ODAyM0UwREUKKzoxMENBOTAwMDA4RjgwMkRFODA4RjgxMjFFMDRCNzgxMkRFMDQzNzgwQjcKKzoxMENBQTAwMDJERTgwQkY4MDIzRTE4ODc4MDJGRTAwOTc5MDJFMDAwOUMKKzoxMENBQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MwMDgzMDBBMEMwNEIKKzoxMENBQzAwMDI4MzA0MjRDMDA4MzAwMjRDMDBCMzgwNkNDMDRCMzAwNEQKKzoxMENBRDAwMDJDQzAwQjMwMDIwQzAyODMwMDJDQzAwODMwMDJEMjA0QTAKKzoxMENBRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QTgwMENBMDAzMTgwRjYKKzoxMENBRjAwMDA4RTAwMjk4MDJDRTAwMzM4NDBCRUEwM0U4MDBCQTAwOTMKKzoxMENCMDAwMDNGODEwRkEwMDMyODAwQ0EwMDNFODAwREUwMDNGQTA0MTUKKzoxMENCMTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTAwMEY4MDAzRTAwNTcKKzoxMENCMjAwMDBFODQyM0EwMDBGODAwM0ExMDBGODAwM0UwMDBGODAwMDQKKzoxMENCMzAwMDNFMTAwRjgwMTNFMDAwRjgwMDNFMDAwRDgwMDNEMjAwOEQKKzoxMENCNDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwRTQwMUY5MDAzRTQwNDEKKzoxMENCNTAwMDBDOUExM0U0MDBDOTAwM0U0MDBDOTgyM0U0ODBGOTAwQ0QKKzoxMENCNjAwMDNFNDAyQzk4MDM2NDAwRjkwMDNFNDAwQzkwMDNDMjA0NDAKKzoxMENCNzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwNEI5MDAyRTQwNzIKKzoxMENCODAwMDY4OUMyMkU0MDI4OTAxN0M1MDhEOTgyMkU0ODBCOTIwQkYKKzoxMENCOTAwMDJFNTA0ODEwMEIyNTAwQjk0NDJDNDAyODkwMDBFMDAwOEUKKzoxMENCQTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEI5MDAyRTUwRkQKKzoxMENCQjAwMDA4OTAwMkU0MDQ4OTAwMkU1MDBBOTIwMkU0MDBCOTAwQjEKKzoxMENCQzAwMDJDNDAwODkxMDIyNDAwQjkwMDJFNDAwODkwMDJDNjAwQjMKKzoxMENCRDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDUwMEIxMDEyQzQwRTYKKzoxMENCRTAwMDQ4MzAwMkU0MDA4MTAwMkE0MDRCMTAwMkM0MDBCMTAwMkEKKzoxMENCRjAwMDBDQzAwODkwMDIwQzAwQjMwMDJFNDA0ODEyMDJDMjAxODMKKzoxMENDMDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjAwMEI4MDEzRTAwMDgKKzoxMENDMTAwMDFDODAwN0UxNTBDODUwMkUxNDFFODUwM0UxNDFGODUwRDYKKzoxMENDMjAwMDNFMTQwQzg1MTMyMTQ4Rjg1MDNFMTQwQzg1NDNFRTAzNDYKKzoxMENDMzAwMDUwMDAwMDAwMDAwMDAwMDA5ODE5QzQwMEY5MDAzRTUxQTcKKzoxMENDNDAwMDBGNTAwM0U1MDBGRDAwM0Y0MDFERDAwM0Y0MTBGOTAwMzQKKzoxMENDNTAwMDNFNTAwRjUwMDA5NDAwRjkwMDNENDAwRjkxMDNFNjA2NEUKKzoxMENDNjAwMDcwMDAwMDAwMDAwMDAwMDAxODAxRTQ1MENEMDAzMTYwQTkKKzoxMENDNzAwMDA0RDAwMzM2ODBDMTQyMkU1MDFGOTQwM0U1MDBFOTAyMjAKKzoxMENDODAwMDJFNzIwQTkwMjIwNTA4RTk0MDNFNTA0MDlDMDMyNjAwN0YKKzoxMENDOTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwQzI4Mjg4MDAyMjE1RDkKKzoxMENDQTAwMDA4ODAwMjIzNTg4OEEwMkUyODBCQUE0MkUyODI4ODgwOUUKKzoxMENDQjAwMDJFMzgyODg4MDIyMjgwQjhBMDNBMjgwOENEMDIwRTA0MTcKKzoxMENDQzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMDgxMDBBNjQwRkMKKzoxMENDRDAwMDI4MTAwQTI0MjY5NTAwMEQ0MDBCNTAwMjc0MDA4NTA4ODgKKzoxMENDRTAwMDJGNDA3OUQyQUExNDAwQTUwMTJGNDAzODUwMDIxMjAxMUEKKzoxMENDRjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwNDg5MDAyNjQwMDAKKzoxMENEMDAwMDA4OTEwMjI0MTA5RDA4MkY0MDBCRDAwMkY0MDA4RDAyRTAKKzoxMENEMTAwMDJGNDAwOUQwMDAzNDAwQkQwMDBCNDAxODcwMDIwNjA0RkIKKzoxMENEMjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1QzQwMEM5MDUzNjQxRTUKKzoxMENEMzAwMDRDOTA2MzI0MDBEOTAwM0U0MDBCOTAwMzQ0MDhDOTAwODYKKzoxMENENDAwMDNFNDAxNTEwMDMyNDAwRTkwMDNDNDAwQzkwMDMyODA0RTkKKzoxMENENTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxQTQwNEY5MDAzQTQwMUYKKzoxMENENjAwMDRGOTgwM0U0MDBFOTk5M0U0MDRGOTAwM0U0MjBGOTBBMEMKKzoxMENENzAwMDNFNDAwRTkwNDM2NDI0RjkwODNBNDIwRjkwOEJEQTAwNEIKKzoxMENEODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEM4MDAxMjAwOTEKKzoxMENEOTAwMDBDODA0M0UwMDBDODQwMzIwMDBGODQ1M0UwMTBGODAwREMKKzoxMENEQTAwMDNFMDAwRDgwMjMyMDAwRDgwMDNFMDAwRjgwMDMwQTA0QkYKKzoxMENEQjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MzgwMjgyMDBBMTg4NDEKKzoxMENEQzAwMDA4NjAyMkM4MDA4QTQwMzZBMTBCQTAwMkU5MTBCQTQ0Q0MKKzoxMENERDAwMDJDODAwQ0E0MTIyOTAyOEE0NDJFOTgwQkE0MDIwQTAwNkIKKzoxMENERTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEMxMDgzMDAyMEUwRjcKKzoxMENERjAwMDE4MzA5MkM0MDg5MzQwMjBFMDBCMzAwMkNEMDBCMzQwQkQKKzoxMENFMDAwMDJDQzAwQjNBNDJDRDAwODM0MDJDRDAwQjM4MDI0QTAwOTQKKzoxMENFMTAwMDUwMDAwMDAwMDAwMDAwMDBBMDQxMUMwMDg3MDAyMUMwNUQKKzoxMENFMjAwMDI4NzAwMkQxMDA5RDgwMjVDMjRCNjAwMkRDMDhCNzAyNDkKKzoxMENFMzAwMDJDQzAwQTc0MDJGRTAwODcwMDJEQzAwQjM0MDI2ODAwNkIKKzoxMENFNDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MUUwMEM3ODQzMUUwNzgKKzoxMENFNTAwMDBDNjgwM0Q2MDA5NzgwMzFBMDBGNTgxM0RFMDhGNzgyQzQKKzoxMENFNjAwMDNEQTAwRkY4MEJERTAwQzc4MDNERTAwRjc4OEI2QTAyMTMKKzoxMENFNzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUQ4MEYzMDAzRUMxNkUKKzoxMENFODAwMDBGQTAyM0MwMDJFOTAwM0U4MTBGODAwM0VDMDBGQjAwRUQKKzoxMENFOTAwMDNFQzAwREIwMTMyQzAwRUIwMDNFQzAwRkIwMDM4MjAyNjkKKzoxMENFQTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkYzMkM3ODAzMzYwMTIKKzoxMENFQjAwMDBGNzgwMzNFQzg0RTgwMjM2NDBDRjgwMzNBMDBDRTgwRkUKKzoxMENFQzAwMDEzRUMwNkQ4MDMzQTAwREU4MDMzQTQwQ0M4MDNEMDAwNkMKKzoxMENFRDAwMDcwMDAwMDAwMDAwMDAwMDBBODExOUMwMDg3MTAwMUMwMzUKKzoxMENFRTAwMDBCNzAwMjE4NTA4NDAwMkI0NDA4NjAxMjk4MDA4NjEzQkYKKzoxMENFRjAwMDIxQzQ4ODUwMDIxODgwODYwMDIxODAwODYxMDJFQTA0NUIKKzoxMENGMDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMDg3MDAyMTQwM0QKKzoxMENGMTAwMDBCRjEwMjVDODAwNjAwMjEwMDg4RDAwMjVDMDA4NzAwRDMKKzoxMENGMjAwMDIwODk4QUYxMDIxQzA4ODcxMDIxODE4ODQ4MDJDNjAwRTYKKzoxMENGMzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MxMDgzMDRBMEMxRDkKKzoxMENGNDAwMDBCMzAwQTQ4MEM4ODA2NjAzODA4MDQ0MkVDMDE4QjA0NTgKKzoxMENGNTAwMDIyQzEwODMwMEEyQzAwOEIwMDIyODAwMDIwMDJEODA0NTUKKzoxMENGNjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QkMwMEMzMDAyMjgwQjMKKzoxMENGNzAwMDhGOTAwMzY0MEFDQjAyQjJGMjIwMzUxMjY0MEFDOTAwMTIKKzoxMENGODAwMEIyNDAwRUEwMDMyNDBBQzkwMEEyNDAyQ0EwMDNFRTA0NjQKKzoxMENGOTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRUMwMEZCMDAzQzgwMEUKKzoxMENGQTAwMDBGOTAwM0E1MDBEQjQwM0VEMDREQjQxM0E0MDhGQjAxNTUKKzoxMENGQjAwMDNFQzAxQ0EwMDM2QzAwRkIwNDNFNTA0RkE0MDNFMDAwRTUKKzoxMENGQzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMEZGMDAzM0MwMzIKKzoxMENGRDAwMDBDRTg0MzI2MDBERjgwQjNFMDBGRjgwMzdDMDBDRDAwQUYKKzoxMENGRTAwMDMzMDQwQ0UwMjMzNDQwQ0QwMDIzNDAwQ0UwMDNFMDA0ODQKKzoxMENGRjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NkMxMEJCMDBBMkQyRDEKKzoxMEQwMDAwMDA4MjgwMjA0NjA4QjE5MjJDNjBFQjE4QTJFNDA4QjkwMkMKKzoxMEQwMTAwMDIyQzEwOEE0ODIyQzAwOEI5MDIyNjQ0OEE0MDJFMDAwNjQKKzoxMEQwMjAwMDEwMDAwMDAwMDAwMDAwMDA4MDA1MkMwMEJCMDAyMjAwNjIKKzoxMEQwMzAwMDA4OTEyRTI0MDA5QjAwMjJDMDhCQjAxMjIwMDQ4ODAwOEYKKzoxMEQwNDAwMDIyNDAwODEwMjIyMDAwODgwMTJBRDAwODgwNDJFMDAwRjcKKzoxMEQwNTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MEMwMEIzMDQyMDgwMjEKKzoxMEQwNjAwMDA4MTAwNjA0MTA4MzAwMjBDMDhCQjAxMjAwMDA4MjAwNUMKKzoxMEQwNzAwMDIwQzAyODEwNDIwOTA2ODIwMDI4QzAwODIwMDJDMjAxRjAKKzoxMEQwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEN0MwMEJCMDAzMjQwRUEKKzoxMEQwOTAwMDJDQjAwMzI0MDBEMzAwMzJDMDVGQjUwMzBDMDJDMTAwRTIKKzoxMEQwQTAwMEIyMDAwQ0IwMEIwNTAwQzEwMEI4QzAyQzgwMTNFMDAzMjcKKzoxMEQwQjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFEREMwMEZGMDAxRkMwQTkKKzoxMEQwQzAwMDg3RjAwMUY0MDBGRjAwM0ZDMDBFNzA0M0ZDMTA3RjAwQUEKKzoxMEQwRDAwMDNGQzAwRjcwMDNGQzAwRkYwMDM3QzAwRkUwMDNFODA2RkQKKzoxMEQwRTAwMDcwMDAwMDAwMDAwMDAwMDBDMDA1RjE4NEZFNjEzMUQ4MkUKKzoxMEQwRjAwMDBDQjJDM0ZDRTBDQzgwN0JDMDBFRjEwMzdDRTBDQzgzOUYKKzoxMEQxMDAwMDNGMjAwRkYwQ0IzMjQ0REM4NDNGMjU0Q0YyNDMzMDAwMEIKKzoxMEQxMTAwMDcwMDAwMDAwMDAwMDAwMDA4MDEwRTQ0OEIwMTAyMkRDMjUKKzoxMEQxMjAwMDA4QjYwMkZEOTI4ODg1MjNGNDQwRjEwMkVEMDA4ODJEQjcKKzoxMEQxMzAwMDBFNjAwQkJDMTIyQzEwQTg4MjJFMDAwQUZDMjJBMDA0NDgKKzoxMEQxNDAwMDMwMDAwMDAwMDAwMDAwMDA4ODA1QzA4MEIzMjIyOEMwMjUKKzoxMEQxNTAwMDA4MzA4MkNDMDE4ODAwMkNDMDRBMzIwMkNDMDAwMTAxODgKKzoxMEQxNjAwMDI4MDA0QkIwMDJBMDAwODAwMDJDMDkwODM0MDI2MjAxQTQKKzoxMEQxNzAwMDcwMDAwMDAwMDAwMDAwMDBDMDE1QUMwNEIyMTAyQUMxMEQKKzoxMEQxODAwMDA4QjAwMkVDMTA4OTgwMjJDMDA4QjAwMkVDMDg4ODAwQzgKKzoxMEQxOTAwMDJFNDA4M0IwMDJBMDQwQjk4MDJDMjEwQUIwMDJGMDA0RDYKKzoxMEQxQTAwMDYwMDAwMDAwMDAwMDAwMDA0MDE1RUMwMEZBMDBCQUMwNkEKKzoxMEQxQjAwMDJDQjA0M0VDMDBDMDgwM0VDMDhFQjAwMzRDMENDODEwQjUKKzoxMEQxQzAwMDNFODA4RkIwMDM4MjEwRDg4MjNFMjgwQ0IwMEI1MDA0RjIKKzoxMEQxRDAwMDcwMDAwMDAwMDAwMDAwMDBFMDAxQjY4MEZEMDIzN0MxRDEKKzoxMEQxRTAwMDBGQjAwM0ZDMDBGRDAwM0VDMDBGQjA1M0ZDMDJGRjAxNzYKKzoxMEQxRjAwMDJGQTQ4QkYwODM3QzAwQUQwMjJGNDAwMzcwMDNCODAwOTYKKzoxMEQyMDAwMDYwMDAwMDAwMDAwMDAwMDA0MDEwQUMwMEZCMDQzMkMwRDEKKzoxMEQyMTAwMDRDQjAyMzJDMDBGODQwM0VDMjBDQjAwMzJDMDBGQjQxNjQKKzoxMEQyMjAwMDMyQzIwRkIwNDMyRDAwQzg1MDNFNDAwQ0IwMEIxMDA0NkEKKzoxMEQyMzAwMDIwMDAwMDAwMDAwMDAwMDBDODA1MkY5MEI5NTAwM0MwNzYKKzoxMEQyNDAwMDE4RjAxQTNDMDBCOTMyMkRFMDM4RjA2MDNDMDRGOTAwQzcKKzoxMEQyNTAwMDNFRjAwQjdDODAyQzAwRDlDMDJFNDAwREYwMDIzMjAwMzUKKzoxMEQyNjAwMDQwMDAwMDAwMDAwMDAwMDBFMDA1NEIyNEIyMTAwMkMxQTUKKzoxMEQyNzAwMDI4MzAwMjZDMDRCMkMxMkNDMDA4MzAwMDBDMDBCMjAwOEYKKzoxMEQyODAwMDI4MjQwMzNDMEEwMDAwODJDODJDQTAwODMwMDIzODAwODEKKzoxMEQyOTAwMDUwMDAwMDAwMDAwMDAwMDAyMDAxMTYwMEI0ODAyMUU0Q0UKKzoxMEQyQTAwMDQ4N0IwMjVFMDBCNjgwNkRFMjQ4NzkyMjFFNDBBQzg0NjUKKzoxMEQyQjAwMDJERTAwQkZBMDA1MjQwOTY4MDJERTgxOTM4MDIwODAwNDQKKzoxMEQyQzAwMDQwMDAwMDAwMDAwMDAwMDA0ODA4MDg0MEYzMTBCMEM0MEYKKzoxMEQyRDAwMDA4M0EwMjRDOTBGMzEwM0NDQzA4MzEwMzBDNDlCMDQwQTIKKzoxMEQyRTAwMDMwMDUwRjMwMDcyMTQwNDMwMTNFQzIxQzMwNDMxMjAyN0IKKzoxMEQyRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDBEQkMxMEZDMTAzRkM1MDUKKzoxMEQzMDAwMDBGRjEwMUJDMDRGRjA0M0ZDNDBGQjE0QkZDNjRGNzAwRjQKKzoxMEQzMTAwMDM3QzAwRjcyNTNBQzQ0RkYwMTNGQzkwRkY0MDNEMDA2NkUKKzoxMEQzMjAwMDYwMDAwMDAwMDAwMDAwMDBBODA1RUMwOEZBMDAzRUUwRTQKKzoxMEQzMzAwMDBDQjAwMzJDMDBDQjAyM0VDQTBGQjIwNzJFMDBEQjAyNUEKKzoxMEQzNDAwMDMyMDgwRjMxMDMyQzAwQ0IwNDNFODAwQzM1MDMyQTAwMzkKKzoxMEQzNTAwMDcwMDAwMDAwMDAwMDAwMDA0ODExOTQwMEI1MDAyREM4QzYKKzoxMEQzNjAwMDA4NzAwQTFDMjI4NzAwMkRDOTBCRjI4MjlDODBBNjAwM0YKKzoxMEQzNzAwMDA5OEIwQjcwMEExQzAyODUwMDJENDAwODcwMDI5MjA0NzQKKzoxMEQzODAwMDYwMDAwMDAwMDAwMDAwMDBDMDAwOUUwMEI3ODAyQ0VDOTAKKzoxMEQzOTAwMDA4N0IwMjVFNDA4NTg5MkRFQzhCN0IwMjRFODQ4RjgwNUEKKzoxMEQzQTAwMDI1NjQwQkZBMDIxMjA4OTc4MDZGRTEwODdBMDIzMDAwQjgKKzoxMEQzQjAwMDIwMDAwMDAwMDAwMDAwMDA0ODE0Q0MyMEIzNjQyQ0MwMDIKKzoxMEQzQzAwMDA4MzAwNjBDMTA4MzhBNkNDMDVCMzA0MkNDMDBBQjEwNzYKKzoxMEQzRDAwMDJDRjIwQjMwMDIwRDAwOTMwNDJDRDUwODMwMEE5MjA0NzUKKzoxMEQzRTAwMDMwMDAwMDAwMDAwMDAwMDBFODE1QkIwMEZFQzAzRTgwRDkKKzoxMEQzRjAwMDJDQTAwMzY4MDBDNjQwM0Y4MDBGQTAwMjY4MDBDRTQ0MDYKKzoxMEQ0MDAwMDM2OTA0RjYwMDMxQjcwREVEODNGQTAwQzIwMDMzQTA0MTcKKzoxMEQ0MTAwMDYwMDAwMDAwMDAwMDAwMDA0ODAwRTA0MEY4MTAzRTAwRkUKKzoxMEQ0MjAwMDBGODAwM0EwMTBGODQyM0UxMDFGODAwM0EwMDBFODBDRkMKKzoxMEQ0MzAwMDNBMDQxRjgwMDNFMDAwRTg0NTdFMDIyRjgwMDNEMjAwRkIKKzoxMEQ0NDAwMDMwMDAwMDAwMDAwMDAwMDAwODEwNjQwMEU5ODAzMjQwNTUKKzoxMEQ0NTAwMDBGOTAwQjA0MDhEOTgwMzY0MDBGMTAxMzI0MDhGOTAwRjAKKzoxMEQ0NjAwMDcyNzAwRjkxMTMyNDEwQzkxMDNFNjkwQzkwMDMwMjA0Q0UKKzoxMEQ0NzAwMDMwMDAwMDAwMDAwMDAwMDA4MDA0NjQwOEI5ODAyMjQwRjEKKzoxMEQ0ODAwMDBCMTAwMjI0MDA4OUM0MjI1MjBCOTA0MjI0MDBCOTAwRTAKKzoxMEQ0OTAwMDIyRTAwQjkwMTIyNDA0RDk0QTJFNjAwODkwMDM2MDAwMDkKKzoxMEQ0QTAwMDEwMDAwMDAwMDAwMDAwMDAxODA1MjQwMEIxMTgyMjQwMDAKKzoxMEQ0QjAwMDBCOTAwMjI0MDA4QjIwMjY0OTBCOTAwMjY0MDBCOTAwRDcKKzoxMEQ0QzAwMEEyNDAwQjkwOEEyNDAwOEIwMDJDNDBBODkwMDIwNjAwRkEKKzoxMEQ0RDAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDQ4NEIxMjBBMDQ4QkYKKzoxMEQ0RTAwMDBCMTEwNjA0MDA4MzAwMDA0MDRCMTEwMjA0NDlCMTEwRTcKKzoxMEQ0RjAwMDI4NDAwQjEwMDIyNDQxOTEwMDJDNTAwODEwMDI0MjAxRDgKKzoxMEQ1MDAwMDAwMDAwMDAwMDAwMDAwMDBCODBENjk0MEU4NTAzMjE0MkYKKzoxMEQ1MTAwMDBGODY5MzIxRTJDODAwMzYwQTBCODY4QjYxQThGODQwN0IKKzoxMEQ1MjAwMDIyODAwRjgyQTMyMTA4QzgwMjNFMDAwQzgwNDMyRTAzRjQKKzoxMEQ1MzAwMDUwMDAwMDAwMDAwMDAwMDA5ODFERjQ0OEZEMTIzRTQ0MTkKKzoxMEQ1NDAwMDBGMTIwM0M0MDA3RDAxMUU0MDBCOTIwM0U0ODBGNTIwRkUKKzoxMEQ1NTAwMDM2NDAwRjkwMDNENDkwN0QwMDNENDAwRjk0MDNFNjA2QzMKKzoxMEQ1NjAwMDcwMDAwMDAwMDAwMDAwMDAxODAxRjZDMUREODgzMjcyNzIKKzoxMEQ1NzAwMDBDOTgwMzI2MjJERDAwM0Y2MjJDOTk4MzQ2QTBDOTQwMDcKKzoxMEQ1ODAwMEIyNDAwRkQ4MDMyNDAwRkQwMDMzNTEyQ0Q4ODMwNjAwOEQKKzoxMEQ1OTAwMDcwMDAwMDAwMDAwMDAwMDAzODEwRTNDMjg4QzAyMjMwOTQKKzoxMEQ1QTAwMDA4OEM0MjIyMTE4QTAxMkUwMDA4ODg1MjIzMDA4MEEzOTEKKzoxMEQ1QjAwMDJBMDA0QjgwNDIyMkEwQjgwMDIyMjgwODg0MDI4RTA0NTAKKzoxMEQ1QzAwMDMwMDAwMDAwMDAwMDAwMDAwODA1QzQwMDgxMkQyMDQ4NDQKKzoxMEQ1RDAwMDY4MTQ4MDA0MjA4MTAwMkU0MDBCMTIxMjA0MjQ4MTIwNDQKKzoxMEQ1RTAwMDIwNDAwQjk0MzIwNDkwQjkwMDIwNDA0ODEwNEEwMjAxQjgKKzoxMEQ1RjAwMDcwMDAwMDAwMDAwMDAwMDAxODE1QTQwMDg5MjAyMjQwREYKKzoxMEQ2MDAwMDA4OTAxMjI0MDA4OTAwMkU0MDA4OTAwMjI0MDg4OTQwQzYKKzoxMEQ2MTAwMDIyNTAwQkIwMDIyNDIwQjkwOUEyNDQwODkwMDI4NjA0Q0IKKzoxMEQ2MjAwMDYwMDAwMDAwMDAwMDAwMDBBMDE1RTQwMEQ5MDhCMjQwMkUKKzoxMEQ2MzAwMDRDMTAyMzA0MDREOUMxM0U0MDhGOTAwQjA0MDhDMTQwMTQKKzoxMEQ2NDAwMDEyNDAwRjkwNDMyNDA0RjE0MTMwNzgwQzkwMDMyODA0RDkKKzoxMEQ2NTAwMDcwMDAwMDAwMDAwMDAwMDAyODAxODY2NEY5ODAzRTQwNTAKKzoxMEQ2NjAwMDBGOTAwQkU0MDBGOTk4M0U0MDJGMTAwM0E0MDJGOTEwMkMKKzoxMEQ2NzAwMDNFNDAwRjkwMEJFNjQwRjk5MDNFNjAwRjkwMDNDQTAwQzkKKzoxMEQ2ODAwMDYwMDAwMDAwMDAwMDAwMDAyODEwQTAwMEM4NDEzMjAwMjcKKzoxMEQ2OTAwMDBDODAwNzIwMTBDODEwM0UwQzBFODAwM0UwMDRDODAwNjgKKzoxMEQ2QTAwMEJBMDAwRjgxNDMyMDAwRjg3MDNFMDAwRjAwMEIwQTA0RkYKKzoxMEQ2QjAwMDIwMDAwMDAwMDAwMDAwMDAyODA1MzkwMjhFMjBBMzgwMTEKKzoxMEQ2QzAwMDI4RTAwQTM4MTBBRTA0M0RBMThFRTAwMkY4MDA4RTAwN0EKKzoxMEQ2RDAwMDc2ODAwQjYwMDM3ODAwQkU0MDJGODIwQkEwMDNDQTAwNDcKKzoxMEQ2RTAwMDQwMDAwMDAwMDAwMDAwMDAyODA1NEQwMDhCODgyMkMwOEIKKzoxMEQ2RjAwMDE4MzAwMjBDMDA4MzQ0MkNEMDFCMzAxMkNDMDY4MzAwNUYKKzoxMEQ3MDAwMDIwQzEwQjMwODIwQzAxQjMwMDJDNDAwQjMwMDIwQTAwMDgKKzoxMEQ3MTAwMDUwMDAwMDAwMDAwMDAwMDBBMDAxMUMwMDg1MDAyMENDOEIKKzoxMEQ3MjAwMDA4NzAwNjFDODRBNzAxMjlDMDBCNzIyMkRDODA4NzM0OTQKKzoxMEQ3MzAwMDYxODAwQjEwMDI1QzAwQjcwMDJEQzAwQjcwMDJFODAwODYKKzoxMEQ3NDAwMDQwMDAwMDAwMDAwMDAwMDBBODA4MEUwMDhDODAzMUUwQkUKKzoxMEQ3NTAwMDBDRkUwMjNGMDBDNTgwMkRFMDBFNzgwM0RGQTBDN0EwQkQKKzoxMEQ3NjAwMDIxNjAwRjc4MDMxRTgwRjc4MDNERTAwRjc4MDMyQTAyQzYKKzoxMEQ3NzAwMDAwMDAwMDAwMDAwMDAwMDAwODFEQUMwMEY5MDAzRUMwRTEKKzoxMEQ3ODAwMDBGQjAwM0VDMDBGQTAwM0VDMDA2QjAwM0VDODBGQjI4QUIKKzoxMEQ3OTAwMDM2RDg0RkEwMDNFQzEwRkEwMDNFNTAwRjMwMDNDMjA2RkIKKzoxMEQ3QTAwMDYwMDAwMDAwMDAwMDAwMDAwMDA1RkEwMENDODBCM0UwM0IKKzoxMEQ3QjAwMDBGRjgwMzNFMDBDRjkwM0Y2MDRGRjhDMzNFMDBFRjgwNkMKKzoxMEQ3QzAwMDMzRjAwQzdBMDMzRTcwQzU5MDMzRjEwQzc4MDMwMDAwRkYKKzoxMEQ3RDAwMDcwMDAwMDAwMDAwMDAwMDBBODExQjgwMDg3MDAyMUMwMDAKKzoxMEQ3RTAwMDBCNzA0QTFDMDA4NzEwMkRDMDRCNzEwQTNDNDQ4RjEyRUQKKzoxMEQ3RjAwMDIxODYwRDcyMDIxRTAwODcwMDIzNDAwODcwMEEyQTA0NDkKKzoxMEQ4MDAwMDYwMDAwMDAwMDAwMDAwMDAwMDAwOUMwMDg0MDAyNUMwQjMKKzoxMEQ4MTAwMDBCNzEwQTBDMDBBNzEyMkQ4NDBCNzAwQTFDMDBCNzA4QUMKKzoxMEQ4MjAwMDIzNDAwOUYzMUE1Qzg2OTcwODI1NDAwODcwMDIwMDAwMUYKKzoxMEQ4MzAwMDIwMDAwMDAwMDAwMDAwMDAyMDE0Q0MyMDgxMjAyNkMwMjEKKzoxMEQ4NDAwMDBCMzAwMjJDMDA4MjQyMkM4MDBCMzAyMjBDMDg5QjgwNzMKKzoxMEQ4NTAwMDIwRTAwOTIwMDI0RDA4OTIwMDI0RTUwODMwMEEwODA0NUYKKzoxMEQ4NjAwMDMwMDAwMDAwMDAwMDAwMDBBODE1QUU4MkNBRTBCN0MwN0EKKzoxMEQ4NzAwMDBGRjAxMzNDMEFDOUM4M0U0MDBGRjAwMzNDMDRGRjg0N0MKKzoxMEQ4ODAwMDMyQzAwRDkwMTM3QzAwRDkwMEY2QzAyQzEwMDMyQTA0N0UKKzoxMEQ4OTAwMDYwMDAwMDAwMDAwMDAwMDA4MDAwRTQwMEYzMDAzQUMxRDYKKzoxMEQ4QTAwMDRGQjAwM0VDMDBGOTA4M0MwMDBGMzAxM0VDMDBFQjA0MjAKKzoxMEQ4QjAwMEJFMTgwRjkwMjNBQzYwRTkwMjNBNDA0RjkwMDNFMDAwOUQKKzoxMEQ4QzAwMDMwMDAwMDAwMDAwMDAwMDAwMTEwRkMwMENBMDAzM0MwNUUKKzoxMEQ4RDAwMDBDRjAwM0ZDMDBDRDAyN0Y0MDBDRjA0MjNDMDBDRjA4NkUKKzoxMEQ4RTAwMDM3MTAwRkQwMDNGQzEwQ0QwODNGNjYyQ0Q5MDMwMDQ0M0QKKzoxMEQ4RjAwMDMwMDAwMDAwMDAwMDAwMDA4MTA0NjM4MDhCRTAyMkMwNDMKKzoxMEQ5MDAwMDA4QjAyMkVDMDBEODgwNkUyMDY4QjAxQTJDMDFGQjAwMTEKKzoxMEQ5MTAwMDIyMTgwQjg4NDM0QzAwODhBMDJDQzAxRDkwMDIyMDQwODgKKzoxMEQ5MjAwMDEwMDAwMDAwMDAwMDAwMDA4MDAxMDg4MDhCMjAyMkMwNTEKKzoxMEQ5MzAwMDA4QjAyMkVDMDA4ODg4MkU2MjQ4QjAxQUNDMDA4QjAwMTgKKzoxMEQ5NDAwMDI2QzA0QTg4MDJFQzAwMDg4NDJFNDAwOTkwMDIyMDAwN0MKKzoxMEQ5NTAwMDQwMDAwMDAwMDAwMDAwMDAwODA0MDAwMDgzMDA2MEMwRDgKKzoxMEQ5NjAwMDA4MzAwMkNDMDA5MDA2NkMwMDA4MzAwMjhDMDBBMzA0NDIKKzoxMEQ5NzAwMDIwMDA4QjAwMDY0QzIxODAwMDZDQzA0OTEwMEEwMjAxNzcKKzoxMEQ5ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENkMwMENBMDBCMkMxRTEKKzoxMEQ5OTAwMDg4QjQwM0VDMTBDODAwMkUwMDBDQjAwQkJDMDg4RjAwM0MKKzoxMEQ5QTAwMDM2MDAwNjgwMDNFQzgwQzgwMjNGQzEwQzkwMDMwMDAzRTAKKzoxMEQ5QjAwMDUwMDAwMDAwMDAwMDAwMDBBMDFERjAwMEZGMDAzRkMwNkMKKzoxMEQ5QzAwMDBGNzI4M0ZDMThGQzAzM0YwMDhGNzAwMzdDMDBGRjAwODQKKzoxMEQ5RDAwMDNEMDAwRkMwMjM4QzA2RkMwMDNGNDAwRUQwMDNFODA2M0MKKzoxMEQ5RTAwMDcwMDAwMDAwMDAwMDAwMDAwMEM1NDEwMzcwNDBEQzEwMjIKKzoxMEQ5RjAwMDM3MDQwREMxMDM3MDQwREMxMDM3MDQwREMxMDE3MDQwQzUKKzoxMERBMDAwMDlDMTAxNzE0MDVDMTAzNzA0MERDMTAxNzA0MERDMDMxQzEKKzoxMERBMTAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDQwNTcxMDE1QzQwRUEKKzoxMERBMjAwMDU3MTAxNUM0MDUyMTAxNUM0MDU3MTAxNUM0MDE3MTAxNDAKKzoxMERBMzAwMDVDNDAxNzEwMDVDNDA1NzEwNTVDNDE1NzEwMTVDMDExRjUKKzoxMERBNDAwMDUwMDAwMDAwMDAwMDAwMDAwMDgwMDIwMTIwODA0ODIwRkIKKzoxMERBNTAwMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwREMKKzoxMERBNjAwMDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MDIwRTcKKzoxMERBNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDYwMDA1ODAwNkUKKzoxMERBODAwMDE2MDAwNTgwMDE2MDAwNTgwMDE2MDAwNTgwMDU2MDAwNDIKKzoxMERBOTAwMDU4MDAxNjE4MDE4MDAxNjAwMDU4MDA1NjAwMDU4MDIwQ0IKKzoxMERBQTAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDgwNTIyMDExQzgwQTUKKzoxMERBQjAwMDQ3MjAxMUM4MDQ3MjAxNUM4MDU3MjAxMUM4MDQ3MjQxQ0MKKzoxMERBQzAwMDVDODA1NzIwMTFDODA0NzIwMTFDODA0NzIwMTVDMDMxQUEKKzoxMERBRDAwMDUwMDAwMDAwMDAwMDAwMDAwMEM1NDAwMDYwMDAxODAwNzkKKzoxMERBRTAwMDA2MDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMDA2MDAwNTAKKzoxMERBRjAwMDE4MDAwNjAwMDE4MDAwNjAwMDE4MDAwNjAwMDE4MDMxNTcKKzoxMERCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDgwNDIyMDEwODgwNTkKKzoxMERCMTAwMDQyMjAxMDg4MDQyMjAxMDg4MDQyMjAxMDgwMDQyMzAxNDIKKzoxMERCMjAwMDA4ODA0MjIwMTA4ODA0MjIwMTA4MDA0MjIwMTA4MDIxMzEKKzoxMERCMzAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NEEwNTQyODE1MEEwMUUKKzoxMERCNDAwMDQ0MkMxMTBCMDQ0MjgxMTBFMDU0MjgxMTAyMDA0MjgxNDAKKzoxMERCNTAwMDEwQTA0NDM4MTEwQjA1NDI4MTEwMjExNDI4MTUwMDMxMDIKKzoxMERCNjAwMDUwMDAwMDAwMDAwMDAwMDAwMDgwMEMwMTU3MDA1NEMwNkQKKzoxMERCNzAwMDE1MzAwNDRDMDExMzAwNTRDMDE1NzAwNTRDMDE1MzAwQkUKKzoxMERCODAwMDU0QzAxNTMwODU0QzAxMTMwMDU0QzAxNTMwMDU0MDIxOTgKKzoxMERCOTAwMDQwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDQwMDAxMDAwNzUKKzoxMERCQTAwMDA0MDAwMDQwMDAxMDAwMTA2MjA0MDAwMTA4MDQ0MTAwNUQKKzoxMERCQjAwMDEwMDA0NDE4MTEwMDAwMTAwMDEwODAwNDAwMDEwMTIwMjIKKzoxMERCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NjAwMjA4MDA4MjAwMjQKKzoxMERCRDAwMDIwODAwODYwMDIxODAwODIwMDIwODAwODIwMDAwODIwQjEKKzoxMERCRTAwMDgyMDAwMDgwODAyMDAyMTgwMDgyMDAyMDgwMDgwMTMxMUQKKzoxMERCRjAwMDUwMDAwMDAwMDAwMDAwMDAwMEM1NDAwNTY0MDE1ODAwMEUKKzoxMERDMDAwMDU2MDAxNTgwMDU2MDAxNTgwMDU2NDAxNTgwMDU2MDAxREEKKzoxMERDMTAwMDU4MDA1NjAwMTU4MDA1NjAwMTU4MDA3NjAwMTU4MDMxQzcKKzoxMERDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDAwMzYwMDBEODAwQjQKKzoxMERDMzAwMDM2MDAwRDgwMDM2MDAwOTgwMDM2MDAxRDg4MDU2MDAwRTYKKzoxMERDNDAwMEQ4MDAxNjAwMEQ4MDAzNjAwMEQ4ODA0NjAwMEQ4MDMxOUEKKzoxMERDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDIwNDMwODEwQzIwREMKKzoxMERDNjAwMDQzMDgxMEMyMDQzMDgxMEMyMjQxMDgxOEMyMDQzMDg5RDQKKzoxMERDNzAwMDBDMjAwMzA4MTBDMjA0MzA4MTBDMjA0MzA4MTBDMDEwOEYKKzoxMERDODAwMDUwMDAwMDAwMDAwMDAwMDAwMDgwMDAwMDMwMDAwQzAwODgKKzoxMERDOTAwMDAzMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDAzMDAwOTIKKzoxMERDQTAwMDBDMDAwMzAwMDBDMDAwMzAwMDBDMDAwMzAwMDBDMDAxQTUKKzoxMERDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDIwMTMwODA0QzIwQzUKKzoxMERDQzAwMDEzMDgwNEMyMDEzMDgwNEMyMDEzMDgwNEMzMDEzMDgwQzMKKzoxMERDRDAwMDRDMjAxMzA4MDRDMjAxMzA4MDRDMzAxMzA4MDRDMDIxQ0EKKzoxMERDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDIwNTYwODE1ODIwQ0YKKzoxMERDRjAwMDU2MDgxMTgyMDU2MDgxNTgyMDU2MDgxMTgzMDA2MDgxMDIKKzoxMEREMDAwMDU4MjA0NjA4MTE4MjA0NjA4MTE4MzA1NjA4MTU4MDMwNkEKKzoxMEREMTAwMDUwMDAwMDAwMDAwMDAwMDAwMEM1NDIwMDIwODAwODIwRTQKKzoxMEREMjAwMDAyMDgwMDgyMDAyMDgwMDgyMDAyMDgwMDgyMDAzMDgwNjMKKzoxMEREMzAwMDA4MjAwMjAwMDA4MjAwMjA4MDA4MjAwMzA4MDA4MDMxQjMKKzoxMERENDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDIwNDYwODExODIwQUYKKzoxMERENTAwMDQ2NDgxMTkyMDQ2MDgxMTkyMDQ2MjgxMTgyMDAzNDgxQkUKKzoxMERENjAwMDE4MjA0NjQ4MTE5MjA0NjA4MTE4MjA0MzA4MTE4MDExNDAKKzoxMERENzAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NjAwNDU4MDE1NjAwQ0IKKzoxMEREODAwMDU1ODAxNTYwMDQ1ODAxMTYwMDU1ODAwMTYwMDQxODAxODMKKzoxMEREOTAwMDU2MDA0NTgwMTE2MDA0NTgwMTE2MDA0MTgwMTE0MDMxNDEKKzoxMEREQTAwMDUwMDAwMDAwMDAwMDAwMDAwMDgwMDYwMTQxODA1MDYwMkIKKzoxMEREQjAwMDE0MTgwNTA2MDE0MTgwNTA2MDA0MTgwNTA2MDA0MTgwRDIKKzoxMEREQzAwMDEwNjAxNDE4MDUwNjAxNDE4MDUwNjAxNDE4MDUwMDIwRTkKKzoxMERERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMTAwODA0MDIwNjAKKzoxMERERTAwMDEwNDgwNDEyMDEwMDgwNDEyMDEwMDgwNDAyMDEwNDgwNDAKKzoxMERERjAwMDQwMjA1MDQ4MDQxMjAxMDA4NDQwMjAxMDA4MDQwMDIwRjQKKzoxMERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDYwMzUxODBENDYwRkYKKzoxMERFMTAwMDMwMTgwRDQ2MDM1MTgwRDU2MDM1MTgwRDQ2MDMwNTgwMzYKKzoxMERFMjAwMEQ0NjAxNTE4MEQ0NjAzMTE4MEQ0NjAzNTE4MEQ0MDMxQUIKKzoxMERFMzAwMDUwMDAwMDAwMDAwMDAwMDAwMEM1NDYwNTcxODA1QzYwRDUKKzoxMERFNDAwMDk3MTgxNUM2MDU3MTgxNUMyMDU3MTgxNUM2MDM3MDgxOTcKKzoxMERFNTAwMDVDNjA1NzE4MTFDNjA1MzE4MTVDNjA3NzE4MTVDMDMxQjgKKzoxMERFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NDYwMzcxODBEQzYwRjcKKzoxMERFNzAwMDM3MTgwREM2MDM3MTgwREQ2MDM3MTgwNUM2MDE3NTgxM0UKKzoxMERFODAwMERDNjAzNzE4MERDNjAzNzE4NDVDNjAxNzE4MTlDMDExNjcKKzoxMERFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NDYwNTcxODE1QzYwNDQKKzoxMERFQTAwMDU3MTgxNDg2MDU3MTgxNUM2MDU3MTgwNUM2MDQzMTgxQzYKKzoxMERFQjAwMDVDNjA1NzE4MTVDNjA1NzE4MDVDNjA0MzE4MTVDMDExNjkKKzoxMERFQzAwMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMTIwODA0ODIwRjcKKzoxMERFRDAwMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDE3MDgwMDgKKzoxMERFRTAwMDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4MjAxNzA4MDQ4MDAwN0UKKzoxMERFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMTYxODA1ODYwODIKKzoxMERGMDAwMDE2MTg0MTg2MDE2MTgwMTg2MDA2M0MwNTg2MDQ2MTgwMTAKKzoxMERGMTAwMDE4NjAxNjE4MDE4NjAwNjE4MDU4NjA1NjE4MTU4MDEwMjgKKzoxMERGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NDAwNTcwMDE1QzAwOUEKKzoxMERGMzAwMDU3MDAxNUMwMDQ3MDAxNUMwMDU3MDAxMEMwMDQ3MDAwNDkKKzoxMERGNDAwMDFDMDA0NzAwMTFDMDA0NzAwMTVDMDA0NzAwMDFDMDExQjMKKzoxMERGNTAwMDUwMDAwMDAwMDAwMDAwMDAwMDQ1NDIwMDYwODAxODIwRDIKKzoxMERGNjAwMDA2MDgwMTgyMDA2MDgwMTgyMDA2MDgwMDgyMDA2MDgwOTgKKzoxMERGNzAwMDE4MjAwNjA4MDE4MjAwNjA4MDE4MjAwNjA4MDE4MDExMjAKKzoxMERGODAwMDQwMDAwMDAwMDAwMDAwMDAwMDA1NDIwNDIwODEwODIwM0QKKzoxMERGOTAwMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDgxMTgyMDQyMDgwNTcKKzoxMERGQTAwMDA4MjA0MjA4MTA4MjA0MjA4MTA4MjA0MjA4MDA4MDExQzUKKzoxMERGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NDIwNTQwODE1MDIwQTQKKzoxMERGQzAwMDU0MDgxNTAyMDU0MDgxMTAyMDU0MEMxNTQyMDA0MDgxNzAKKzoxMERGRDAwMDUwMjA0NDA4MTEwMjA1NDA4MTEwMjAxNDA4MDUwMDExNEEKKzoxMERGRTAwMDUwMDAwMDAwMDAwMDAwMDAwMDAxMDMwMTUwQzA1NDMwNDgKKzoxMERGRjAwMDE1MDgwNTQyMDE1MEMwNTQzMDE1MEMwNTQzMDE1MEMwQUUKKzoxMEUwMDAwMDU0MzAxNTBDMDU0MjAxNTBDMDU0MzAxNTBDMDU0MDEwMTkKKzoxMEUwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwMDQyMDAxMDgwMjYKKzoxMEUwMjAwMDA0MjAwMTg4MDA2MjAwMTA4MDA0MDAxMTA4MDA0MjAwRjIKKzoxMEUwMzAwMDEwODAwNDIwMDEwODAwNDIwMTEwODAwNDIwMDEwMDAwMkIKKzoxMEUwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NDIwMjAwODA4MDIwMjcKKzoxMEUwNTAwMDIwMDgwODAyMDIyMDgwODAyMDIwMjgwMDAyMDIwMDgwODAKKzoxMEUwNjAwMDgwMjAyMDBBMDgwMjAyMDA4MDAwMjAyMDA4MDgwMDExRjkKKzoxMEUwNzAwMDUwMDAwMDAwMDAwMDAwMDAwMDQ1NDAwNTYwMDE1ODAwMEQKKzoxMEUwODAwMDU2MDAwNTgwMDU2MDAxNTgwODU2MDAxNTgwMDc2MDAyOUIKKzoxMEUwOTAwMDU4MDA1NjQwMTU4MDA1NjAwMzE4MDA3NjAwMTU4MDExNjEKKzoxMEUwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1NDAwMzYwMDBEODAwMzAKKzoxMEUwQjAwMDM2MDAwRDgwMDE2MDAwRDgwQTM2MDAwRDgwMDU3MDA5MTkKKzoxMEUwQzAwMEQ4MDEzNjAwMEQ4MDAzNjAwMEQ4MDA1NzAwMEQ4MDAwOTUKKzoxMEUwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMwMDEwQzAwRkYKKzoxMEUwRTAwMDQzMDAxMEMwMDAzMDAxMEMwMDQzMjAxMEMwMDQ2MDAxNDgKKzoxMEUwRjAwMDBDMDA0MzQwNTBDMTA0MzAwMTBDMDA0NjAwMTBDMDAwMjkKKzoxMEUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMDAwQzAwRDMKKzoxMEUxMTAwMDAxMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEQwMDAyMDAwMEYKKzoxMEUxMjAwMDBDMDAwMzQwMDBDMDAwMzAwMDBEMDAwMjAwMDBDMDAwRTEKKzoxMEUxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwMTMxNDA0QzUwQ0MKKzoxMEUxNDAwMDEzMTAwNEM0MDEzMTQwNEM1MDEzMTQwNEM1MTEzMTQxNjMKKzoxMEUxNTAwMDRDNTAxMzE0MDRDNTAxMzE0MDRDNTAxMzE0MDRDMDAwM0EKKzoxMEUxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMwNTY4QzE1QTMwRDQKKzoxMEUxNzAwMDU2OEMxMUEzMDQ2OEMxMUEzMDU2OEMxMUEzMDU2OEMwQ0YKKzoxMEUxODAwMDVBMzA0NjhDMTFBMzA0NjhDMTVBMzAxNjhDMTU4MDAwOTEKKzoxMEUxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwODAwNTcKKzoxMEUxQTAwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMjAwMDkwMDAyMDAwRjMKKzoxMEUxQjAwMDA4MDAwMjQwMDA4MDAwMjAwMDA5MDAwMjAwMDA4MDAwRUEKKzoxMEUxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0NDYyMDExODg0MDQKKzoxMEUxRDAwMDQ2MjExMTg4NDQ2MjExMTg4NDQ2MDExMTg4NDQ2MjEwNTYKKzoxMEUxRTAwMDE4ODQ0NjIxMTE4ODQ0NjIxMTE4ODQwNjIxMTE4MDAwODgKKzoxMEUxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NTUwMTE1NDA0MjEKKzoxMEUyMDAwMDU1MDExMTQwNDU1MDExMTQwMDQ1MDExMTQwNDQ1MDAwODIKKzoxMEUyMTAwMDE0MDQ0NTAwMTU0MDQ0NTAxMTE0MDQ1NTAxMTE0MDAwRTgKKzoxMEUyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyMTQyMDg1MDgyQTkKKzoxMEUyMzAwMDE0MjA4NTA4MjE0MjA4NTA4MjA0MjA4NTA4MjE0MjA4QzQKKzoxMEUyNDAwMDUwODIxNDIwMDUwODIxNDIwODUwODIxNDIwODUwMDAwQzUKKzoxMEUyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEwMTAyODA0MEEwNTEKKzoxMEUyNjAwMDEwMjgwNDBBMDEwMjgwNDBBMDEwMjg0MDBBMDEwMjgwMDAKKzoxMEUyNzAwMDQwQTAxMDI4NDQwQTAxMDI4MDQwQTAxMDI4MDQwMDAwOTkKKzoxMEUyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwMzUzMDBENEMwOTgKKzoxMEUyOTAwMDM1MzAwRDRDMDE1MzAwRDRDMDM1MTAwQzRDMDM1MzAwRTUKKzoxMEUyQTAwMEQ0QzAzNTMwMEQ0QzAzNTMwMEQ0QzAzNTMwMEQ0MDAwODAKKzoxMEUyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwNTcyMDE1QzgwMDIKKzoxMEUyQzAwMDE3MjAwNUM4MDY3MjAxNUM4MDU3MjAxNUM4MDI3MjAxMkMKKzoxMEUyRDAwMDVDODA1NzIwMTVDODA1NzIwMTVDODAzNzIwMTFDMDAwOTIKKzoxMEUyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMxODQwQzYxMjMxQUEKKzoxMEUyRjAwMDg0OEMyMTIzMDg0OEM2MTIzMDg0MEM2MTIzMTA0OEMyNDQKKzoxMEUzMDAwMDEyMzE4NDhDMDEyMzA4NDhDNjEyMzEwNDhDNjEwMDAwNEMKKzoxMEUzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRjRGRkZEM0ZGOUYKKzoxMEUzMjAwMEY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGMjMKKzoxMEUzMzAwMEQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQwMDAwQ0QKKzoxMEUzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMEUzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMEUzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMEUzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkNEQjBGQjZDMkNENDIKKzoxMEUzODAwMEIwQjM2QzJDREIwQjM2QzJERkIwQjM2QzJDREIwQjdFNzYKKzoxMEUzOTAwMEMyQ0RCMEI3RkQyQ0RCMEIzNkMyQ0RCMEIzNkMwMDAwRTQKKzoxMEUzQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMzQzRGQ0YxMzMzOUEKKzoxMEUzQjAwMEM0Q0NGMTMzM0M0Q0NGMTMzRkM0Q0NGMTMzM0M0Q0ZGQzUKKzoxMEUzQzAwMDEzMzNDNENGRkQzMzNDNENDRjEzMzNDNENDRjEwMDAwMjYKKzoxMEUzRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0I3RTRFREY5M0I3MEQKKzoxMEUzRTAwMEU0RUM3OTNCMUU0RURGOTNCRkU0OERGOTNCNzg0RUZGQTIKKzoxMEUzRjAwMDkzQjdFNEVERkQzQjFFNEVERjkzQjc4NEVERjkwMDAwQ0IKKzoxMEU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMjcwNDA5QzEwQUQKKzoxMEU0MTAwMDI3MUMwOUMxMDEzMDQwMUMxMDY3MDQwOUMxMDI3MDQxNkEKKzoxMEU0MjAwMDlDMTEwNzE0MDFDMTAyNzA0MDlDNTAwNzFDMDFDMDAwRTAKKzoxMEU0MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwNTcxMDE1QzQwQzUKKzoxMEU0NDAwMDU3MTA1NUM0MDEzMTAwNUM0MDU3MTAxNUM0MDU3MTAxQzcKKzoxMEU0NTAwMERDNDAxNzE4MURDNDA1NzEwNTVDNDA1NzEwMURDMDAwMzUKKzoxMEU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMTIwODA0ODIwQTEKKzoxMEU0NzAwMDEyMDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwQkEKKzoxMEU0ODAwMDQ4MjAxMjA4MDQ4MjAxMjA4MDQ4NjAxMjA4MDQ4MDAwOUQKKzoxMEU0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDAxODAwMDQKKzoxMEU0QTAwMDA2MDA0MTgwMDA2MDAwMTgwMDQ2MDAwMTgwMDA2MDAwMDYKKzoxMEU0QjAwMDEwMDAwNjEwMDE4MDAwNjAwMDE4MjA0NjEwMDE4MDAwNDYKKzoxMEU0QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwNDcyMDExQzgwMzEKKzoxMEU0RDAwMDQ3MjAxMUM4MDQ3MjAxMUM4MDA3MjAxMUM4MDQ3MzAwNzIKKzoxMEU0RTAwMDFDODA0NzIwMTFDQzA0NzIwMTFDODA0NzIwMTFDMDAwMDEKKzoxMEU0RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwMDAxODAwQTQKKzoxMEU1MDAwMDA2MDAwMTg0MDA2MDAwMTgwMDA2MDAwMTgwMDA2MDQwRTEKKzoxMEU1MTAwMDE4MDAwNjA0MDE4MTAwNjAwMDE4MDAwNjE0MDE4MDAwNDQKKzoxMEU1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwNDIyMDEwODgwMzQKKzoxMEU1MzAwMDQyNzAxMDhDMDQyMjAxMDhDMDAyMjAxMDg4MDQyMjAwQkUKKzoxMEU1NDAwMDA4ODA0MjUwMTAwODA0MjIwMTA5MDA0MjQwMTA4MDAwNTcKKzoxMEU1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUwNDRBODExMkEwMEMKKzoxMEU1NjAwMDQ0QTgxMTJBMDQ0QTgxMTJBMDA0QTgxMTJBMDQ0QjgwNEQKKzoxMEU1NzAwMDEyQTA0NDg4MDEyRTA0NEE4MTEyMjAwNDk4MDEwMDAwNTAKKzoxMEU1ODAwMDAwMDAwMDAwMDAwMDAwMDAwOEMwMEUwMDUzMDAxNEMwOEUKKzoxMEU1OTAwMDA1MzAwMTRDMDA1MzAwMTRFMDA1MzAwMTRDMDA1MzAwREQKKzoxMEU1QTAwMDA0QzAwNTMwMDA0QzAwMDMwMDE0QzAwNTMwMDA0MDEwQ0EKKzoxMEU1QjAwMDAwMDAwMDAwMDAwMDAwMDAwOEMwMDQwMDQwMDAxMDAwM0YKKzoxMEU1QzAwMDA0NTgwMTA0MDA0MDAwMTAwMDA0MDAwMTAwMDA0MTAwNTQKKzoxMEU1RDAwMDA0MDA0NDU4MTA0NDAwMDAwMDExODAwNDUwMTA0MDMwRTIKKzoxMEU1RTAwMDAwMDAwMDAwMDAwMDAwMDAwOEMwNDAwMjAwMDA4MDAwQTEKKzoxMEU1RjAwMDIwMDAwODAwNDAwMDAwMDAwMDIwMDAwODAwMDIwMDAwODkKKzoxMEU2MDAwMDg0MDAwMDAwMDg0MDAyMDAwMDgwMDAyMDAwMDg0MDMwMjQKKzoxMEU2MTAwMDAwMDAwMDAwMDAwMDAwMDAwOEMwNDAwMDYwMDExODAwNzkKKzoxMEU2MjAwMDQ2MDAwMTgwMDY2MDAxOTgwMDQ2MDAxMTgwMDQ2MDAxRTgKKzoxMEU2MzAwMDE4MDA0NjAwMTE4MDA0MjAwMTE4MDA2NjAwMTE4MDMwODcKKzoxMEU2NDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAxNDAwMDYwMDA5ODAwODEKKzoxMEU2NTAwMDI2MDAwOTgwMDI2MDAxOTgwMDA2MDAwQzgwMDI2MDAwMUMKKzoxMEU2NjAwMDE4MDAwNjAwMDE4MDAyNjAwMDk4ODAwNjAwMDE4MjAwMDgKKzoxMEU2NzAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDIwMDMwODEwQzIwRjYKKzoxMEU2ODAwMDQzMDgxMEMyMjQzMDgxOEMyMDAzMDgxMEMyMDQyMDgwNkIKKzoxMEU2OTAwMDBDMjAwMzA4MThDMjA0MzA4MTBDMjA0MzA4MThDMDExNTQKKzoxMEU2QTAwMDUwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDMwMDAwQzAwOUUKKzoxMEU2QjAwMDAzMDAwMEMwNDAzMDAwMEMwMDAzMDAwMDgwMDAzMDAwNjgKKzoxMEU2QzAwMDBDMDAwMzIwMDBDMDAwMzAwMDBDMDAwMzIwMDBDMDAwM0MKKzoxMEU2RDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAxMDIxMDMwODAwQzIwMEIKKzoxMEU2RTAwMDAzMDgwMEMyMDAzMDgwMEMyMDAzMDgwMEMyMDEyMDgwMTMKKzoxMEU2RjAwMDBDMjAwMzJDMDBDMjAwMzA4MDBDMzA0MzJDMDBDMDAwRTIKKzoxMEU3MDAwMDQwMDAwMDAwMDAwMDAwMDA0MDQ1NDIwNDYwODExODIwRTUKKzoxMEU3MTAwMDQ2MDgxMTgyMDQ2MDgwMTgyMDQ2MDgxMTgyMDQ2MDgxMzYKKzoxMEU3MjAwMDE4MjA0NjBDMTFDMjA0NjA4MTE4MzA0NjBDMTFDMDExMkIKKzoxMEU3MzAwMDUwMDAwMDAwMDAwMDAwMDA0MDAxNDIwMDIwODAwODIwM0UKKzoxMEU3NDAwMDAyMjgwMDgyMDAyMDgwMDgyMDAyMDgwMDgyMDAyMDgwMjkKKzoxMEU3NTAwMDA4MjAwMjA4MDE4MjAwMjA4MDA4MjAwMzA4MDE4MDAwQjAKKzoxMEU3NjAwMDAwMDAwMDAwMDAwMDAwMDA1MDAxNDIwNDYwODExODIwRjkKKzoxMEU3NzAwMDQ2MjgxMTgyMDQ2MDgwMTgyMDQ2MDgxMTgyMDQ2MDgxQjYKKzoxMEU3ODAwMDE4MjA0NjA4MTA4MjA0NjA4MTE4MjA0MzA4MTA4MDAwNzkKKzoxMEU3OTAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDAwNDUwMDExNDAwNEIKKzoxMEU3QTAwMDQ1MDAxMTQwMjUwMDAwMTQwMDQ1MDAxMTQwMDQ1MDAxQUYKKzoxMEU3QjAwMDE0MDA0NTAwMDA0MDA0NTAwMTQwMDAwMTAwMDA0MjExRDcKKzoxMEU3QzAwMDUwMDAwMDAwMDAwMDAwMDA0ODAwMDYwMDQxODAxMDYwN0EKKzoxMEU3RDAwMDA0MTgwMTA2MDA0MTgwMTA2MDA0MTgwMTA2MDA0MTgwMDEKKzoxMEU3RTAwMDEwNjAwNDE4MDEwNjAwNDE4MDEwNjAwNDE4MDEwMDAwNDgKKzoxMEU3RjAwMDAwMDAwMDAwMDAwMDAwMDA0ODAwMDIwNTAwODA0MDIxRTkKKzoxMEU4MDAwMDEwMDgwNDAwMDEwMDgwNDAyMDEwMDgwNDAyMDEwMDgwNkMKKzoxMEU4MTAwMDQwMjA1MDA4MTQwMjExMDA4NDQwMjAxMDA4MTQwMDAwMDkKKzoxMEU4MjAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDYwMTUxODBENDYwMTcKKzoxMEU4MzAwMDM1MTgwRDQ2MDM1MTgwRDQ2MDE1MTgwRDQ2MDM1MTgwREMKKzoxMEU4NDAwMDU0NjAxNTE4MEQ0NjAzNTE4MEQ0NjAzNTE4MEQ0MDExRTEKKzoxMEU4NTAwMDUwMDAwMDAwMDAwMDAwMDAwMDAxNDYwNDcxODExQzYwQUYKKzoxMEU4NjAwMDQ1MTgxMUQ2MDQ3MTgxMUM2MDY3MTgxMUM2MDQ3MTgxQTYKKzoxMEU4NzAwMDlDNjA0NzE4MTFDNjA0NzE4MTFDNjA2NzE4MTFDMDAwQTQKKzoxMEU4ODAwMDAwMDAwMDAwMDAwMDAwMDA0MDA1NDYwMjcxODA5QzYwMEUKKzoxMEU4OTAwMDI3MTgwOUM2MDA3MTgwOUM2MDY3MTgwOUM2MDI3MTgwM0MKKzoxMEU4QTAwMDlDNjEyNzE4MDFDNjAyNzE4MDlDNjAwNzE4MDFDMDAwOTYKKzoxMEU4QjAwMDAwMDAwMDAwMDAwMDAwMDA1MDQ1NDYwNTcxODE1QzYwQ0EKKzoxMEU4QzAwMDU3MTg1NUQ2MDE3MTgxNUM2MDU3MTgxNUM2MDU3MTgxQkUKKzoxMEU4RDAwMDVDNjA1NzE4MThDNjA1NzE4MTVDNjA0MzE4MTg4MjExNzYKKzoxMEU4RTAwMDUwMDAwMDAwMDAwMDAwMDA0MDA0NTIwMTIwODA0ODIwMzkKKzoxMEU4RjAwMDEyNDgwNDkwMDEyMDgwNDkyMDEyMDgwNDgyMDEyNDgwREIKKzoxMEU5MDAwMDQ4MjAxMjQ4MDA5MjAxMjA4MDQ4MjAxNzQ4MDQ4MDAxQzYKKzoxMEU5MTAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDYwMDYxODAxODYwNTgKKzoxMEU5MjAwMDA2M0MwMTg2MDA2MTgwMTg2MDQ2MTgwMTg2MDA2MTgwRkYKKzoxMEU5MzAwMDE4NjAwNjE4MDE4NjAwNjE4MDE4NjA0NjE4MDE4MDAxODEKKzoxMEU5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxNjAwNDc4MDExRTAwOEIKKzoxMEU5NTAwMDQ3ODAxMUUwMjQ3ODAxMUUwMDA3ODAxMUUwMDQ3ODAxNEYKKzoxMEU5NjAwMDFFMDA0NzgwMTFFMDA0MzgwMTFFMDA0NzgwMTFDMDExQ0QKKzoxMEU5NzAwMDUwMDAwMDAwMDAwMDAwMDA0MDAxMTIwMDYwODAxODIwREMKKzoxMEU5ODAwMDA2NDgwMTkyMDA2MDgwMTkyMDA2MDgwMTgyMDA2NDgwMTgKKzoxMEU5OTAwMDE4MjAwNjQ4MDE5MzAwMjA4MDE4MjAwNjQ4MDE4MDAwQjYKKzoxMEU5QTAwMDAwMDAwMDAwMDAwMDAwMDA0MDAxNDIwNDIwODEwODIwMTcKKzoxMEU5QjAwMDQyMDgxMDgyMDQyMDgxMDgyMDAyMDgxMDgyMDQyMDgxNkQKKzoxMEU5QzAwMDA4MjA0MjA4MTA4QTA0NjA4MTA4MjA0MjA4MTA4MDAwNTQKKzoxMEU5RDAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDIwNDQwODExMDIwN0IKKzoxMEU5RTAwMDQ0MDgxMTAyMDQ0MDgxMTAyMDA0MDgxMTAyMDQ0MDgxRUYKKzoxMEU5RjAwMDEwMjE0NDA4MDEwMjA0NTA4MTEwMjAwNDA4MDEwMDExNzQKKzoxMEVBMDAwMDUwMDAwMDAwMDAwMDAwMDA0MDAwMDMwMDUwQzAxNDMwMUYKKzoxMEVBMTAwMDA1MEMwMTQzMDA1MEMwMTQzMDA1MEMwMTQzMDA1MDgwMjgKKzoxMEVBMjAwMDE0MzAwNTA4MDE0QTAwNTBDMDE0MzAwNTA4MDE0MDAwQTgKKzoxMEVBMzAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDgwMDQyMDAxMDgwQkMKKzoxMEVBNDAwMDA0MjAwMTA4MDA0MjAwMTA4MDA0MjAwMTA4MDA0MjAwNTgKKzoxMEVBNTAwMDEwODAwNDIwMTEwMDAwNDIwMDEwODAwNDIwMTEwMDEwREEKKzoxMEVBNjAwMDQwMDAwMDAwMDAwMDAwMDA0MDQ1NDIwMjAwODA4MDIwN0QKKzoxMEVBNzAwMDIwMDgwODAyMDAwMDgwODAyMDIwMDgwODAyMDIwMDgwOTAKKzoxMEVBODAwMDgwMjAyMDA4MDgwMjAyMDA4MDgwMjAyMDA4MDgwMDExNTEKKzoxMEVBOTAwMDUwMDAwMDAwMDAwMDAwMDA0MDAxNDAwMDYwMDExODAwMkMKKzoxMEVBQTAwMDQ2MDAxMTgwMDY2MDAxMTgwMDQ2MDAxMTgwMDQ2MDAxRDQKKzoxMEVBQjAwMDE4MDA0NjAwMTE4MDA0NjAwMTE4MDA2NjAwMTE4MDEwRTMKKzoxMEVBQzAwMDAwMDAwMDAwMDAwMDAwMDA0MDAxNDAwMjY0MDA5ODAwQzcKKzoxMEVBRDAwMDI2MDAwOTkwMDY2MDAxOTgwMDI2NDAwOTgwMDI2MDAwMjcKKzoxMEVBRTAwMDk4MDAyNjAwMDA5MDAyNjAwMDk4MDAwNzAwMDE4MDAwNTYKKzoxMEVBRjAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NjAwNDM4MDUwRTAwRTIKKzoxMEVCMDAwMDQzODAxMEUwNDQzODAxMEUwMDQzODAxMEUwMDQzODAxRDcKKzoxMEVCMTAwMDBFMDA0MzgwMThBMDA0MzgwMTBFMDA0NjgwMTg4MDExQjIKKzoxMEVCMjAwMDUwMDAwMDAwMDAwMDAwMDA1MDAwMDEwMDMwNDAwQzEwQjgKKzoxMEVCMzAwMDAzMDQwMEM1MDAzMDQwMEMxMDAzMTQwMEMxMDAzMDQwMzUKKzoxMEVCNDAwMDBDMTAwMzA0MDA4NzQwMzA0MDBDMTAwMjA0MDA4MDAwQzkKKzoxMEVCNTAwMDAwMDAwMDAwMDAwMDAwMDA0MDA0MDUwMDM1NDAwQzUwOUIKKzoxMEVCNjAwMDAzMTQwMEQ1MDQzMTQxMEM1MDAzNUMwMEM1MDAzMTAwOTIKKzoxMEVCNzAwMDBDNTAwMzEwMDA5NDAwMzE0MDBDNTA0MzEwMDBDMjAwQjAKKzoxMEVCODAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDMwNTIwQzExODMwOEYKKzoxMEVCOTAwMDQ2MEMxMTk3MDA2MEMwMTgzMDQ2MUMxMTgzMDQ2MEMxRjgKKzoxMEVCQTAwMDE4MzA1MjBDMTE4NzA0NjBDMTE4MzA0NjBDMTE4MDExQzYKKzoxMEVCQjAwMDUwMDAwMDAwMDAwMDAwMDA0MDAxMDAwMDIxNDAwODAwNUIKKzoxMEVCQzAwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMDAwRjkKKzoxMEVCRDAwMDA4MDAwMjAwMDA4MDAwMjAwMDA4MDAwMjAwMDA4MDAwMDEKKzoxMEVCRTAwMDAwMDAwMDAwMDAwMDAwMDA0MDAxNDg0NDIyMDExODg0OTkKKzoxMEVCRjAwMDQ2MjExMTk4MDA2MjEwMTg4NDQ0MjAxMTg4NDQ2MjExNDMKKzoxMEVDMDAwMDE4ODQ0MjIxMTE4MDQ0NjIxMTE4ODQ0NjIxMTE4MDAwMjkKKzoxMEVDMTAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NDAwNDUwMTExNDA0QjIKKzoxMEVDMjAwMDQ1MDAxMTQxMDA1MDEwMTQwMDQ1MDExMTQwNDQ1MDExOUQKKzoxMEVDMzAwMDE0MDQ0NTAxMDE0MDQ0NTAxMTE0MDQwNTAxMDE0MDExMjAKKzoxMEVDNDAwMDUwMDAwMDAwMDAwMDAwMDA0MDAwMDgyMDQyMDgxMDgyMzAKKzoxMEVDNTAwMDA0MjAwMTA4MjA0MjA4MTA4MjA0MjA4MTA4MjA0MjA4NzQKKzoxMEVDNjAwMDEwODIwNDIyODEwODIwNTIwODEwOEEwNDIyODEwMDAwQTgKKzoxMEVDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MEEwMTAyODQ0MEExMUUKKzoxMEVDODAwMDEwMjgwMDBBMDEwMjgwNDBBMDEwMjgwNDBBMDEwMjgwMTYKKzoxMEVDOTAwMDQwQTAxMDJDMTQwQTAwMDI4MDQwQjAxMDJDMTQwMDAwNzgKKzoxMEVDQTAwMDAwMDAwMDAwMDAwMDAwMDA0MDQ1NEQwMzUzNDBENEQwNTgKKzoxMEVDQjAwMDM1MzAwQzREMDM1MzQwRDREMDM1MzQwRDREMDM1MzQwMDMKKzoxMEVDQzAwMEQ0RDAzNTM0MEQ0RDAyMTM0MEQ0RDAzNTM0MEQ0MDExMUQKKzoxMEVDRDAwMDUwMDAwMDAwMDAwMDAwMDA0MDAxMDgwNDcyMDExQzgwODgKKzoxMEVDRTAwMDQ3MjAxNUM4MDQ3MjAxMUM4MDQ3MjAxMUM4MDQ3MjExMDYKKzoxMEVDRjAwMDFDODA0NzI2MTFDODQ0NzIwMTFDOTA2NzI2MTFDMDAwNzEKKzoxMEVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMwODQwQzYxMjMxOEYKKzoxMEVEMTAwMDg0OEMwMTAzMDg0OEM2MTIzMDg0MEM2MTIzMTg0OEMyNTEKKzoxMEVEMjAwMDEyMzE4NDhDMDEwMzA4NDhDNjEyMzEwNDhDMDEwMDAwQTIKKzoxMEVEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRjRGRkZEM0ZGNzUKKzoxMEVENDAwMEY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRjkKKzoxMEVENTAwMEQzRkZGNEZGRkQzRkZGNEZGRkQzRkZGNEZGRkQwMDAwQTMKKzoxMEVENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMEVENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMEVEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMEVEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkRGQjBGQjZDMkNERjcKKzoxMEVEQTAwMEIwQjdGRDNGRkIwQjM2QzJERkIwRkI2QzJDREIwQjdFM0MKKzoxMEVEQjAwMEMyQ0RCMEI3RkQzRkZCMEIzNkMyQ0RGNEI3RkQwMDAwQUUKKzoxMEVEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzNGQzRGQ0YxMzMzQjAKKzoxMEVERDAwMEM0Q0ZGRDNGRkM0Q0NGMTMzRkM0RkNGMTMzM0M0Q0ZGOTAKKzoxMEVERTAwMDEzMzNDNENGRkQzRkZDNENDRjEzMzNGNENGRkQwMDAwRjEKKzoxMEVERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0I3RTRFREY5M0I3RTMKKzoxMEVFMDAwMEU0RURGOTNGRkU0RURGOTNCN0U0RURGOTNCN0U0RUM3RUMKKzoxMEVFMTAwMDkzQjdFNEVDNjEyMzFFNEVERjkzQjc4NEVDNjEwMDAwRUUKKzoxMEVFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNTI0QTE0QTI0RUEKKzoxMEVFMzAwMDYzMDExNDAyNDQwMDgxMEIyODcxMDIxMDgyNDAzODExRDIKKzoxMEVFNDAwMDQxMDQ1MDA4MTg4Mjg3MzgzMUMzMkM1MjBBMTAwMDAwNDAKKzoxMEVFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0NTEyODE0NDgwMEUKKzoxMEVFNjAwMDcxMjExQzBBMDcxQTgxMDJBMDUyMjAxNDQ4MDcxMjgxM0UKKzoxMEVFNzAwMEM2ODA2MDIwMDg4ODQ3MDIwMTRBODA3MDIwMTAwMDAwODgKKzoxMEVFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDNTJDMDE0QTAwNDQKKzoxMEVFOTAwMDUyMDkxQzgwMDcyNDIxMDgwODcxMDIxMDgwNDUyMEExMTYKKzoxMEVFQTAwMDQ5Mjg1MjAxMTRDMDQ1MDA5MUM0MDA3MjAyMTAwMDAwQUMKKzoxMEVFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwNzIwMDFDMTAwNjcKKzoxMEVFQzAwMDcxMDkxMDgwMDcwMDAxMDEwMDcwMDgxODgwMDcwMDAxMTcKKzoxMEVFRDAwMDg5MjA1MjAxMEM4MDQ2MzA4MTQ1MDQ2MDAwMTAwMDAwRkEKKzoxMEVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDMjAyMjAwMDg4QUUKKzoxMEVFRjAwMDIwMjIwMDA4QzIyMjgwNDA4ODAyMjIwMDA4ODIwQUEwNDQKKzoxMEVGMDAwMDBDQTgwMjIyMDAwODgwMEEwMDgwOEMwMjIyMDAwMDAwNjcKKzoxMEVGMTAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDI0MzAwMDA0MDIwNDQKKzoxMEVGMjAwMDMwMDgwNDQwNDEzMDEwQzgwMDAwMDAwMDAyMDMwMDEwMDcKKzoxMEVGMzAwMEMwMDAxMTA4MDBDMjQzMTA4MEMwMjAwMTA4MDAwMjAwNzgKKzoxMEVGNDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDhDMzBBMjBDMThDNzcKKzoxMEVGNTAwMDEyMjIwNDg4MDEzNjIwQzMwODEyMjgwNDA4MDEwNDAwODQKKzoxMEVGNjAwMDRBQTgyMjAxMDRDODQxMjYzMEMwODgwMjIxMDAwMjAwQkMKKzoxMEVGNzAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDgwMDBBMTBDMTgwMjYKKzoxMEVGODAwMDMyMjEwQzg4NDMwMjgwNDQ4MDEyMjkwNDA4NDIwQTkwRUUKKzoxMEVGOTAwMDhBODAwMDIwMDQ0ODAzMEExMDgyODAwMDIwMDAwMjAwQkEKKzoxMEVGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4NzAyQTE4MEFDMDEKKzoxMEVGQjAwMDQzMjkxNDhBODQwMkExMDBBQzQxMjAxMDA4MDYyNjMxOUUKKzoxMEVGQzAwMDgwQTQ2MDIwMTQ0QTQ0MzI4MTgxQUM2MDJBMTgwMjAwNzcKKzoxMEVGRDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDgwNzIyMDFDNTgwQjIKKzoxMEVGRTAwMDczMjExQ0M4MDcyQTAxMEM4MDcyMjAxMDQ4NDcyNjExODMKKzoxMEVGRjAwMEM1ODA3MzIwMUM4ODA3MkExMTQ5ODA3MDIwMTQwMjAwRTQKKzoxMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDA0NTEwMzFDOTBDOUQKKzoxMEYwMTAwMDczMDIxQ0MwNDcwNDAxMEEwQzUxMEExMDgyNDcyMDMxQjgKKzoxMEYwMjAwMEM4MDA3MjAyMUM0MDA1MzAxMUM0MDA3MjAxMTgwMjAwQjEKKzoxMEYwMzAwMDAwMDAwMDAwMDAwMDAwMDAwODEwMTAwNjI0MDE0NTA0MzQKKzoxMEYwNDAwMDUxODExODkwNDcxNDAxMDQwNDcxODgxMDEyMDUzNDAxOEQKKzoxMEYwNTAwMDQ0MDQ1MTQwMThEMDA3MzgwMUM0MDQ1MjAxMTRDMjA0QkEKKzoxMEYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NzAwMjE4OTBDNjMKKzoxMEYwNzAwMDYwMDExQ0QwNDUyNDAxQzEwQzQyMDEwMDAwQzUyMDMxQjMKKzoxMEYwODAwMDQxMDg0MDAwMTg4MDQ1MDAyMTQxMEM3MDQyMUNDMjAwMUMKKzoxMEYwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMTFDODBDNDIwRUQKKzoxMEYwQTAwMDMxMDgxMDQyNDIwODgwQzYyMDMxMDkwMDIwMDMxQzkwMUMKKzoxMEYwQjAwMEM0MjAwMTQ5MEM0MjQzMTA4MDQ0MjAzMTA4MTAwMDAwNTQKKzoxMEYwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzA4MzIwMzA0ODBDRTkKKzoxMEYwRDAwMDMyNDAxMDkwODEyNDIwQzgwNDMyNDAxMDIwQzMyMDgwODgKKzoxMEYwRTAwMEM4MDAwMjRBMENBMDAxMjQxMEM4MDgzMjQxMTAwMDAwRDgKKzoxMEYwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwOTAwMzAwMDBDOTA0QTAKKzoxMEYxMDAwMDMwNDAwMDkwMDAyMDAwODAwMDEwNDAxMDAwNDAyMDEwOEYKKzoxMEYxMTAwMEMyMDAwMDgwMDgyMDQzMDgxMDgxMDAzMjQwMENDMDA0NjcKKzoxMEYxMjAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDQwMDAwMDAwNEYKKzoxMEYxMzAwMDEwMDAwMEYwMTAyMDAwMDAwMDEwMDAwMEYwMTA4MDQwQ0YKKzoxMEYxNDAwMDAwMDAwMDQwMDBGMDEwOTA4MDAwMDAwMDAwMDBDMDAwQUYKKzoxMEYxNTAwMDAwMDAwMDAwMDAwMDAwMDAzQzNDMTA4MDkwNDAwMDAwRDcKKzoxMEYxNjAwMDAwODAxMDkwQTA5MDAwMDAwMDAwMDAxMDkwODA4MDAwQUYKKzoxMEYxNzAwMDAwMDAwMDAwMTA5MDgwOTAwMDAwMDAwMDQwMTA4RjBGRjEKKzoxMEYxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjRDNkJBMDZDMDFDRjkKKzoxMEYxOTAwMDQ5Mjg2MTE0MkIxQzBFNDAzRkQ5QkZEOUFBQkMxQTVGNjUKKzoxMEYxQTAwMDAwMTBBNjUwM0I2MUIzMjVCQzQwMTlCRkZGRTk4MDAwQTkKKzoxMEYxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA5MjE0OTQ4MDBDNzkKKzoxMEYxQzAwMDA3M0YyQjk0ODYxNDg0ODAyODAwMDA0OTE0MDQ4NjEyN0IKKzoxMEYxRDAwMDgwMDA0MTI3MzREMDkwODQ5MjAwMkQ4QTIxMUU4MDAwMjcKKzoxMEYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEEyNzUKKzoxMEYxRjAwMEIxMDEwMTAwMDAwMDAwMDg4NEIxNzgyODAwMDAwMDAwN0YKKzoxMEYyMDAwMDA4QjEzMjE0MTQwMDAwMDAwMDA4QTgyMzU0MjE0MDAwNjMKKzoxMEYyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwRjIKKzoxMEYyMjAwMDAwMDAwMDJGRkZGRUY3QzAwMDAwMDAwMDJGRDdGRUVGMDgKKzoxMEYyMzAwMEMwMDAwMDAwMDAzRkZGN0ZGRkMwMDAwMDAwMDAwMDAwOTIKKzoxMEYyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwQzIKKzoxMEYyNTAwMDAwMDAwMDBGRUY3N0ZGQzAwMDAwMDAwMDNFRkZGRUVGNTAKKzoxMEYyNjAwMDQwMDAwMDAwMDAzRkZGQkZGRjQwMDAwMDAwMDAwMDAwMjIKKzoxMEYyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwOTIKKzoxMEYyODAwMDAwMDAwMDNGRkZERkZGQzAwMDAwMDAwMDNGRkZGRkZGNjYKKzoxMEYyOTAwMEMwMDAwMDAwMDAzRjdGMkZGRkMwMDAwMDAwMDAwMDAwMDIKKzoxMEYyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwNjIKKzoxMEYyQjAwMDAwMDAwMDFGRkZGRkVGQzAwMDAwMDAwMDFGRUZFRkVGOTYKKzoxMEYyQzAwMEMwMDAwMDAwMDAyRkZGRkZGRkMwMDAwMDAwMDAwMDAwOTIKKzoxMEYyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMzIKKzoxMEYyRTAwMDAwMDAwMDNGRkZFRkZGQzAwMDAwMDAwMDJGQUZERkZGNzYKKzoxMEYyRjAwMEMwMDAwMDAwMDAzRkVGRkZGN0MwMDAwMDAwMDAwMDAwNkEKKzoxMEYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMDEKKzoxMEYzMTAwMDAwMDAwMDNGREZERkZGQzAwMDAwMDAwMDNGRkZGRkZGRjUKKzoxMEYzMjAwMEMwMDAwMDAwMDAxRkZGREZGRkMwMDAwMDAwMDAwMDAwNjEKKzoxMEYzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDNDI0QTEwMDJDMTYKKzoxMEYzNDAwMDUyMEIxOEMyODYyQ0ExODAzODYyMEEwODQwQzQyQ0ExMzYKKzoxMEYzNTAwMDA4Mjg0MjBCMTQwMDg1MTRBMTA4Mjg0MzBBMTAwMDAwNTUKKzoxMEYzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwNDEyMDEwMzgwRkIKKzoxMEYzNzAwMDYxMjAxMDA4MDcxMjQxNDI4MDcwMjAxQzA4MDQxQTAxMDUKKzoxMEYzODAwMDg0ODE0MDIwMTgwODQ2MzY4MTA1ODA2MzIwMTAwMDAxRTIKKzoxMEYzOTAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NDI0MjEwMDBDMTgKKzoxMEYzQTAwMDUyMDIxNDAwODcyODIxODEwODcyMDYxQzgyODQyMDIxQzEKKzoxMEYzQjAwMDQ4MTg0MjAzNTQ4MDQ1MzAyNTRBMTg1MzAyMTAwMDAxNzIKKzoxMEYzQzAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDgwNDIyMDEwMTgwNkQKKzoxMEYzRDAwMDQyMjAxOEM4NDQyMjAxODA4NDQyMjAxQzg4MDQyMjAxNTMKKzoxMEYzRTAwMDAwODA0MDIwMTA4ODQ0MzYwMTQwODA0MTAwMTAwMDAwMTkKKzoxMEYzRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMDA4MjAwMDBDMTkKKzoxMEY0MDAwMDIyMDMwNDQwODEwMDIwODQwODAzMDAwMDgwQzIwMDIwMDEKKzoxMEY0MTAwMEM0MDgwMDAzMDg4ODgyMTZBMDQwODgzMjIyODAwMDAwQjkKKzoxMEY0MjAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDIwMTAwODAwNDIwMkQKKzoxMEY0MzAwMDEwMDgwQ0MyMTIxMDg0QzgyMjEyMDgwNDAyMDMwMDg4QUIKKzoxMEY0NDAwMDAwMjEwMDBDMEM0MDQxMzAwMDg0MjAxMDA4MDAwMjAwMTQKKzoxMEY0NTAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDg4MjA2MjAwODhDNjAKKzoxMEY0NjAwMDMyMjIwQzg4ODEyNjIwNEQ4ODIzMjI4MDg4ODMwNjIwMjIKKzoxMEY0NzAwMDA4ODgwMDIzMDQ4QTgxMzYyMDRCODgzMjIyMDAwMDAwNEQKKzoxMEY0ODAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDgwMjAyMDAwOTgwREYKKzoxMEY0OTAwMDMyMjAwNDg4NjAyMjAwODk4NDAwMjAwODk4MDAwMjAwM0QKKzoxMEY0QTAwMDAwODAwMDIwMDAwODAyM0E4MDQ4ODAzMDIwMDAwMjAwREUKKzoxMEY0QjAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMEFDNDFBQTE4MEE4OTMKKzoxMEY0QzAwMDQxMkExMENBQzcxQUExMDRBRDcxMkExODRBRDQwNkIxM0MKKzoxMEY0RDAwMDAwQTg3MTJBMTAwODg0MjYyOTA2QUM1MjJBMTAwMjAwQkUKKzoxMEY0RTAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDgwNDJBMDE0MTgwMUMKKzoxMEY0RjAwMDQyMjAxQzAwMDQwQTAxMDk4NDUxMjAxQzg4NDQwMjAxOTYKKzoxMEY1MDAwMDA4ODA0MDIwMTA0QTQ3MDIwMTQ4ODA2MzIwMTAwMjAwMTIKKzoxMEY1MTAwMDgwMDAwMDAwMDAwMDAwMDAwODAwMDBDNDEwMjE4MTBDRTEKKzoxMEY1MjAwMDQxMDIwQzAwQzAyMDYxMEQwRTcyMDIxQzQwQzQwODMxNjMKKzoxMEY1MzAwMDA0MTg0MjAyMTA4MDg3MjBCMUM0MEM1MzAyMTAwMDAwNEUKKzoxMEY1NDAwMDAwMDAwMDAwMDAwMDAwMDAwODEwMjAwNzI0MDFDQzAwOEIKKzoxMEY1NTAwMDcyNDAxNDAwMDQyNDAxMDgwMDczNDExMEMwMDczMDExRTgKKzoxMEY1NjAwMENDMDA3MTAxMTAwMjA0MjA4MTQ2MTA0MjQwMTAwMjA0QjgKKzoxMEY1NzAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDBDNTEwMjEwMDA4ODUKKzoxMEY1ODAwMDYyMDIxQzkwQzUyNDIxMDAwQzcwODIxQzEwQzQyMDMxMjIKKzoxMEY1OTAwMDg4MDI0MDA2MUMwMDg1MDBBMTAwMEM0MDQyMDAwMjAwQzkKKzoxMEY1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIwNTE0ODAwMTIwN0YKKzoxMEY1QjAwMDMwMDgwQzQyMDYwMDgwMDEyNDUxMDgwQzAyNDEwMDgwRjIKKzoxMEY1QzAwMDRDMjAwMDA4MEMzMDQyMDQwMDA0MjAwMDA4MDAwMDAwMTkKKzoxMEY1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBDNjI0MjAwMDBDMDUKKzoxMEY1RTAwMDMyQzIwNDgwQzczMDIwMDAwQzUzQzIwNDEwQzIyODcwRkQKKzoxMEY1RjAwMDBDMDkwMjAyNEM4MDgxMDQzMDA5MEMwMjQyMTAwMDAwMDgKKzoxMEY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwODAwMTM4MDAwMjAwMkYKKzoxMEY2MTAwMDEyNDAwQzIwMDczNDA0MDIwMDYzMDEwODEwMDAyNDEwN0IKKzoxMEY2MjAwMDA0MDAwMjAxMDQ4MjAxMDg4MDA5MTAwMjQwMTAwMDA0NTUKKzoxMEY2MzAwMDMwMDAwMDAwMDAwMDAwMDAwMDAwMzAyMDEwODAwMDAwQkEKKzoxMEY2NDAwMDIwODAwMEYwMjAxMDgwMDAwMDIwODAwMEQwODAwMDAwOEEKKzoxMEY2NTAwMDQwMDAwMDAwMDAzMDEwMDA4MDAwMDAwMDAwMDBDQzQwOUUKKzoxMEY2NjAwMDAwMDAwMDAwMDAwMDAwMDAzQzNDMTA4MDgwMDAwMDAwMTIKKzoxMEY2NzAwMDAwMDAxMDkwODA4MDAwMDAwMDAwMDAxMDkwODAwMDkwM0EKKzoxMEY2ODAwMDgwMDAxMDAwMDAxMEEwODAwMDAwMDAyMDAwMTA4QzA4RjYKKzoxMEY2OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQxQUJFMTc4MDAwQzcKKzoxMEY2QTAwMDNFNDAyNjZGQkFFMzI0ODAwMDE2NTlCRDgyODE4MkQ4N0QKKzoxMEY2QjAwMDgwMDAwMDE5OTk4NjgwNjQ4MEMwM0ZEOTk5ODAwMDAxM0MKKzoxMEY2QzAwMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDYxNjAyOTQwMDE2ODIKKzoxMEY2RDAwMEMwMTY5NDgyOTAxNjEwODAyMTE4MjgyODAyMEEwMjA4NjkKKzoxMEY2RTAwMDgwMDAwMDAwMDAwMjgyODAxNDAwMDExNDExQTA0MDAwN0MKKzoxMEY2RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODg0N0UKKzoxMEY3MDAwMDAyODRBODgwMDAwMDAwMDg5MTIyODQ0MUEyMDgyNDAxRkMKKzoxMEY3MTAwMDMwMDAwMDAwMDAwMDAwMDAwMDA4ODQwMTQ0MDEwMDAwRTcKKzoxMEY3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwREQKKzoxMEY3MzAwMDAwMDAwMDNFRjdGRkY3QzAwMDAwMDAwMDJGRTdCN0ZGMTIKKzoxMEY3NDAwMEMwMDAwMDAwMDAyRkZFN0ZGN0MwMDAwMDAwMDAwMDAwOTYKKzoxMEY3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwQUQKKzoxMEY3NjAwMDAwMDAwMDM2QkZGRURGQzAwMDAwMDAwMDBGRjdERkZGMjMKKzoxMEY3NzAwMEMwMDAwMDAwMDAzREI3QjdFRkMwMDAwMDAwMDAwMDAwNkYKKzoxMEY3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwN0QKKzoxMEY3OTAwMDAwMDAwMDFGREZERkZGQzAwMDAwMDAwMDBGREZERkZGMDEKKzoxMEY3QTAwMEMwMDAwMDAwMDAzRkVGRkZGRkMwMDAwMDAwMDAwMDAwQUQKKzoxMEY3QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwNEQKKzoxMEY3QzAwMDAwMDAwMDNGQkY3RkZGQzAwMDAwMDAwMDNGRkY3RkY3NDkKKzoxMEY3RDAwMEMwMDAwMDAwMDAzRkRGRkZGRkMwMDAwMDAwMDAwMDAwOEQKKzoxMEY3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwMUQKKzoxMEY3RjAwMDAwMDAwMDNGN0VGRkZGNDAwMDAwMDAwMDNGRkVGRkZGRDMKKzoxMEY4MDAwMEMwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMDAwMDAwMDAwM0MKKzoxMEY4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZGRkZGRkZDMDAwRUMKKzoxMEY4MjAwMDAwMDAwMDM3RkY2RkZGQzAwMDAwMDAwMDNGRkZGRkZGMzgKKzoxMEY4MzAwMEMwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMDAwMDAwMDAwMEMKKzoxMEY4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgKKzoxMEY4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzoxMEY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTgKKzoxMEY4NzAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwMjAwMTAyMDAwMDAwMzUKKzoxMEY4ODAwMDMwMDA0MzBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjkKKzoxMEY4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzoxMEY4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTgKKzoxMEY4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDgKKzoxMEY4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzgKKzoxMEY4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzoxMEY4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgKKzoxMEY4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAwMDAwMDAwMDMwRTgKKzoxMEY5MDAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzcKKzoxMEY5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzoxMEY5MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDcKKzoxMEY5MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzcKKzoxMEY5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjcKKzoxMEY5NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDAwQzcKKzoxMEY5NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTcKKzoxMEY5NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcKKzoxMEY5ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzcKKzoxMEY5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzoxMEY5QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcKKzoxMEY5QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMzBDMDMwNDcKKzoxMEY5QzAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzcKKzoxMEY5RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzoxMEY5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTcKKzoxMEY5RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcKKzoxMEZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjYKKzoxMEZBMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwMDAwMDAwMDBGQzgKKzoxMEZBMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYKKzoxMEZBMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzYKKzoxMEZBNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjYKKzoxMEZBNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzoxMEZBNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTYKKzoxMEZBNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAwMDAwMDAwMDNGNDgKKzoxMEZBODAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjYKKzoxMEZBOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzoxMEZBQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTYKKzoxMEZBQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDYKKzoxMEZBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzYKKzoxMEZBRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAzMEMwMzBDMDBGMjgKKzoxMEZBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYKKzoxMEZBRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYKKzoxMEZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMEZCMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMEZCMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDUKKzoxMEZCMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzNkIwMEMwMDBDRjJDOEMKKzoxMEZCNDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMEZCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzoxMEZCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMEZCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMEZCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMEZCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDAwNDcKKzoxMEZCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMEZCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMEZCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMEZCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMEZCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMEZCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAwRjAwMEYwMDMwQzcKKzoxMEZDMDAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMEZDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMEZDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMEZDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMEZDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMEZDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwM0ZDMDAwQTYKKzoxMEZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMEZDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMEZDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMEZDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMEZDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMEZDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzRkMwM0ZDMDMwMjYKKzoxMEZDQzAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMEZDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMEZDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMEZDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMEZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMEZEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMEYwMDBGQTcKKzoxMEZEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMEZEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMEZENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMEZENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMEZENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMEZENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAwRjAwMEYwMDNGMjcKKzoxMEZEODAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMEZEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMEZEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMEZEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMEZEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMEZERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAzRkMwM0ZDMDBGMDcKKzoxMEZERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMEZERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjIKKzoxMEZFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTIKKzoxMEZFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMEZFMzAwMDAwMDAwMDAwMDAwMDAwMDAwNjMzNUQ4MEMwMDBGREFDNDMKKzoxMEZFNDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMEZFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMEZFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMEZFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMEZFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMEZFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMEZFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMEZFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMEZFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzoxMEZFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzoxMEZFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIKKzoxMEZFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAwMDAwMDAwMDMwRTIKKzoxMEZGMDAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMEZGMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMEZGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDEKKzoxMEZGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzoxMEZGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMEZGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMEMwMzBDMDAwQzEKKzoxMEZGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMEZGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMEZGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMEZGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMEZGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMEZGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMzBDMDMwNDEKKzoxMEZGQzAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMEZGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMEZGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMEZGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDgwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwMDAwMDAwMDBGMzIKKzoxMDgwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDgwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKKzoxMDgwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDgwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzoxMDgwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAwMDAwMDAwMDNGQjIKKzoxMDgwOTAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDgwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDgwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDgwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDgwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDgwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAzMEMwMzBDMDBGOTIKKzoxMDgwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKKzoxMDgxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDgxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDgxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDgxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzNzRDMEMwMDBGMEVDNEMKKzoxMDgxNTAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDgxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDgxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDgxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDgxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDgxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAwMEYwMDAwQjEKKzoxMDgxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKKzoxMDgxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKKzoxMDgxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKKzoxMDgxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKKzoxMDgxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKKzoxMDgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAwRjAwMEYwMDMwMzAKKzoxMDgyMTAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDgyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDgyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDgyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDgyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDgyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkMwM0ZDMDAwMTAKKzoxMDgyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDgyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDgyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDgyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDgyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDgyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDE5ODYxMDgwMzA4MjNEOTAKKzoxMDgyRDAwMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDgyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDgyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDgzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDgzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMEYwMDBGMTEKKzoxMDgzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDgzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDgzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDgzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDgzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDgzODAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAwRjAwMEYwMDNGOTEKKzoxMDgzOTAwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDgzQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDgzQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDgzQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDgzRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDgzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAzRkMwM0ZDMDBGNzEKKzoxMDgzRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzoxMDg0MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUMKKzoxMDg0MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEMKKzoxMDg0MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0MKKzoxMDg0NDAwMDAwMDAwMDAwMDAwMDAwMDAzNzY1MjVFNDgwMDBCMDg4Q0YKKzoxMDg0NTAwMEFCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMKKzoxMDg0NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkMKKzoxMDg0ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzoxMDg0OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREMKKzoxMDg0QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0MKKzoxMDg0QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkMKKzoxMDg0QzAwMDAwMDAwMDAwMzAwMDIwMDEwMjAyMDAwMDMwMDA0MzAwRTQKKzoxMDg0RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUMKKzoxMDg0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMKKzoxMDg0RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0MKKzoxMDg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzoxMDg1MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUIKKzoxMDg1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEIKKzoxMDg1MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0IKKzoxMDg1NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzoxMDg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUIKKzoxMDg1NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIKKzoxMDg1NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkIKKzoxMDg1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzoxMDg1OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREIKKzoxMDg1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0IKKzoxMDg1QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkIKKzoxMDg1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzoxMDg1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUIKKzoxMDg1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEIKKzoxMDg1RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0IKKzoxMDg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzoxMDg2MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUEKKzoxMDg2MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEEKKzoxMDg2MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0EKKzoxMDg2NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzoxMDg2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDg2NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEKKzoxMDg2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkEKKzoxMDg2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzoxMDg2OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREEKKzoxMDg2QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0EKKzoxMDg2QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkEKKzoxMDg2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzoxMDg2RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUEKKzoxMDg2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEEKKzoxMDg2RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0EKKzoxMDg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzoxMDg3MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTkKKzoxMDg3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDkKKzoxMDg3MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzkKKzoxMDg3NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzoxMDg3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTkKKzoxMDg3NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkKKzoxMDg3NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjkKKzoxMDg3ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzoxMDg3OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDkKKzoxMDg3QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzkKKzoxMDg3QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjkKKzoxMDg3QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzoxMDg3RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTkKKzoxMDg3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODkKKzoxMDg3RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzkKKzoxMDg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzoxMDg4MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTgKKzoxMDg4MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDgKKzoxMDg4MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzgKKzoxMDg4NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzoxMDg4NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTgKKzoxMDg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgKKzoxMDg4NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjgKKzoxMDg4ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzoxMDg4OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDgKKzoxMDg4QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzgKKzoxMDg4QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjgKKzoxMDg4QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzoxMDg4RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTgKKzoxMDg4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODgKKzoxMDg4RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzgKKzoxMDg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzoxMDg5MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcKKzoxMDg5MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDcKKzoxMDg5MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzcKKzoxMDg5NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzoxMDg5NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTcKKzoxMDg5NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcKKzoxMDg5NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjcKKzoxMDg5ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzoxMDg5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDcKKzoxMDg5QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzcKKzoxMDg5QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjcKKzoxMDg5QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzoxMDg5RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTcKKzoxMDg5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODcKKzoxMDg5RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzcKKzoxMDhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzoxMDhBMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTYKKzoxMDhBMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDYKKzoxMDhBMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzYKKzoxMDhBNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzoxMDhBNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTYKKzoxMDhBNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYKKzoxMDhBNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjYKKzoxMDhBODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzoxMDhBOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDYKKzoxMDhBQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzYKKzoxMDhBQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjYKKzoxMDhBQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzoxMDhBRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTYKKzoxMDhBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODYKKzoxMDhBRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzYKKzoxMDhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzoxMDhCMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTUKKzoxMDhCMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDUKKzoxMDhCMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzUKKzoxMDhCNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzoxMDhCNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTUKKzoxMDhCNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUKKzoxMDhCNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjUKKzoxMDhCODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzoxMDhCOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDUKKzoxMDhCQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzUKKzoxMDhCQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjUKKzoxMDhCQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzoxMDhCRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTUKKzoxMDhCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODUKKzoxMDhCRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzUKKzoxMDhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzoxMDhDMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTQKKzoxMDhDMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDQKKzoxMDhDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzQKKzoxMDhDNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDhDNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDhDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDhDNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDhDODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDhDOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDhDQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzQKKzoxMDhDQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjQKKzoxMDhDQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzoxMDhDRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTQKKzoxMDhDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQKKzoxMDhDRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzQKKzoxMDhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzoxMDhEMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTMKKzoxMDhEMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDMKKzoxMDhEMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzoxMDhENDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzoxMDhENTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMKKzoxMDhENjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMKKzoxMDhENzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjMKKzoxMDhEODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzoxMDhEOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDMKKzoxMDhEQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDhEQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDhEQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzoxMDhERDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTMKKzoxMDhERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzoxMDhERjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzoxMDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzoxMDhFMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTIKKzoxMDhFMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDIKKzoxMDhFMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzIKKzoxMDhFNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzoxMDhFNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIKKzoxMDhFNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIKKzoxMDhFNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjIKKzoxMDhFODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTIKKzoxMDhFOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDIKKzoxMDhFQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzIKKzoxMDhFQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjIKKzoxMDhFQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzoxMDhFRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTIKKzoxMDhFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIKKzoxMDhFRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzoxMDhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMDhGMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMDhGMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKKzoxMDhGMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDhGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMDhGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMDhGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDhGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKKzoxMDhGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMDhGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDEKKzoxMDhGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzEKKzoxMDhGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMDhGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTEKKzoxMDhGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMDhGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMDhGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDkwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDkwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDkwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKKzoxMDkwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDkwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDkwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzoxMDkwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKKzoxMDkwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDkwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDkwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDkwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDkwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDkwRDAwMDMwMDAwMDAxMDAwMDQ0NzIzMDAwODAwMTAwMDAwMDAzRjUKKzoxMDkwRTAwMDMwMDA0MDBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDkwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDkxMTAwMDAwMDAwMDAwMzAwMDgwMDEwMDAwMDAwNTMwMDBBMDAxQzgKKzoxMDkxMjAwMDAwMDAwMDAwMzAwMDAwMDEwMDAwRTE1QTAwMDAwMDAwRDMKKzowQzkxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MDAwMDAwMDFGRgorLyoKKyAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKKyAqCisgKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKKyAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAorICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKKyAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KKyAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKyAqIGltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorICogaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKyAqCisgKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKKyAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKKyAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKKyAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCisgKgorLy8vIFZFUlNJT049MS4xLjEuMTMxCisvLyBEQVRFPTIwMDFkZWMwNgorLy8gUFJPRFVDVD1FTUkgMnw2CmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWkyNi9maXJtd2FyZS5IRVggYi9maXJtd2FyZS9lbWkyNi9maXJtd2FyZS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWNhNDAwZQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTI2L2Zpcm13YXJlLkhFWApAQCAtMCwwICsxLDEyNjEgQEAKKzowMzAwMDAwMDAyNDM1NjYyCis6MDMwMDAzMDAwMjRCQ0RFMAorOjAzMDAwQjAwMDI0QkQyRDMKKzowMzAwMTMwMDAyNEI5MjBCCis6MDMwMDFCMDAwMjRCRDVDMAorOjAzMDAyMzAwMDIxQjM5ODQKKzowMzAwMkIwMDAyNDNFMkFCCis6MDMwMDMzMDAwMjNGRjM5NgorOjAzMDAzQjAwMDI0QkMwQjUKKzowMzAwNDMwMDAyNDcwMDcxCis6MDMwMDRCMDAwMjNGRkM3NQorOjAzMDA1MzAwMDIzN0ZBNzcKKzowMzAwNUIwMDAyNEJDNzhFCis6MDMwMDYzMDAwMjQ2RkM1NgorOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwRgorOjEwMDUxMDAwMDAwMTA5MDJCODAxMDMwMTAwODBBMDA5MDQwMDAwMDBFNQorOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQorOjEwMDUzMDAwMDIwMTAxMDEwMDA2MDAwMDAwMDAxNTI0MDYwNTAxMDI2OQorOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk5RgorOjEwMDU1MDAwMjQwMzAyMDQwMzAwMDUwMDBDMjQwMjAzMDEwMjAwMDIyQworOjEwMDU2MDAwMDAwMDAwMDAwRDI0MDYwNjAzMDIwMzAwMDAwMDAwMDA0NgorOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAorOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAorOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAorOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAorOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA2MDAwOTA0MDE4NAorOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAwRTI0MDJDMgorOjEwMDVEMDAwMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDUwQTA1NEM2QworOjEwMDVFMDAwMDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDU4RjAxMDNBQQorOjEwMDVGMDAwMDAwMTA2MDAwOTA0MDEwMzAyMDEwMjAwMDAwNzI0MDFCMgorOjEwMDYwMDAwMDEwMDAxMDAwRTI0MDIwMTA2MDMxODAyNDRBQzAwODAyMAorOjEwMDYxMDAwQkIwMDA5MDUwQTA1NzIwMzAxMDA4RjA3MjUwMTAxMDBDRgorOjEwMDYyMDAwMDAwMDA5MDU4RjAxMDMwMDAxMDYwMDA5MDQwMTA0MDIwRQorOjEwMDYzMDAwMDEwMjAwMDAwNzI0MDEwMTAwMDEwMDBCMjQwMjAxMDI1NQorOjEwMDY0MDAwMDMxODAxMDA3NzAxMDkwNTBBMDU0NjAyMDEwMDhGMDcxQQorOjEwMDY1MDAwMjUwMTAxMDAwMDAwMDkwNThGMDEwMzAwMDEwNjAwMDlDMgorOjEwMDY2MDAwMDQwMjAwMDAwMTAyMDAwMDA5MDQwMjAxMDEwMTAyMDA2RAorOjEwMDY3MDAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMjAxMDIwMjEwMDNGQQorOjEwMDY4MDAwNDRBQzAwODBCQjAwMDA3NzAxMDkwNThDMDU4NDAxMDFBMgorOjEwMDY5MDAwMDAwMDA3MjUwMTAxMDIwMDAwMDkwNDAyMDIwMTAxMDIxNQorOjEwMDZBMDAwMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDEwMjAzMThDNAorOjEwMDZCMDAwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMwNTQ2MDJBRAorOjEwMDZDMDAwMDEwMDAwMDcyNTAxMDEwMjAwMDAwNTBDMDkwMUExMDEzQworOjEwMDZEMDAwMDUwQzA5RTkwNTBDMDlFQTE1MDAyNTAxOTUwMjc1MDFDQgorOjEwMDZFMDAwODE0Mjk1MDE3NTA2ODEwMTA1MEMwOTAwMDUwQzA5MDA4MAorOjEwMDZGMDAwMTUwMDI1MDE5NTAyNzUwMTkxMDY5NTAxNzUwNjkxMDM3NgorOjEwMDcwMDAwQzAwNDAzMDkwNDE4MDM0NTAwNEQwMDQxMDA0NzAwNDk5NworOjEwMDcxMDAwMDA0MzAwMjAwMDQ3MDA2RDAwNjIwMDQ4MDAxRTAzNDVCMgorOjEwMDcyMDAwMDA2RDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NTAwNEQxNgorOjEwMDczMDAwMDA0OTAwMjAwMDMyMDA3QzAwMzYwMDJBMDM0MzAwNkY4RAorOjEwMDc0MDAwMDA2RTAwNjYwMDY5MDA2NzAwNzUwMDcyMDA2MTAwNzQ0OQorOjEwMDc1MDAwMDA2OTAwNkYwMDZFMDAyMDAwNTMwMDc0MDA3MjAwNjk5MQorOjEwMDc2MDAwMDA2RTAwNjcwMDIyMDM0OTAwNkUwMDc0MDA2NTAwNzI4RAorOjEwMDc3MDAwMDA2NjAwNjEwMDYzMDA2NTAwMjAwMDUzMDA3NDAwNzI5MQorOjA5MDc4MDAwMDA2OTAwNkUwMDY3MDAwMDAwMzIKKzoxMDA3ODkwMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5ODMKKzowMTA3OTkwMDIyM0QKKzoxMDA3OUEwMDkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRTkKKzoxMDA3QUEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMDhERTBDMEUwRTUKKzoxMDA3QkEwMDhDRTBDMEUwQzA4MkMwODMwNTg2QzA4NEMwODVFNTE4OEQKKzoxMDA3Q0EwMEI0MDIwMzAyMDdEOUI0MDEwMzAyMDdERTAyMDdGQTdENjUKKzoxMDA3REEwMDAxMDIwODE2RTUxOTE0RjUxOUMzQjUxMzAzMDIwN0Y1NDIKKzoxMDA3RUEwMDUwMDlCNDAwRUE3NTE5MEEwMjA3RDk3RDAwMDIwODE2RjEKKzoxMDA3RkEwMEU1MTkxNEY1MTlDM0I1MTQwMzAyMDgxMTUwMDlCNDAwMTgKKzoxMDA4MEEwMENFNzUxOTBBMDIwN0Q5N0QwMjAyMDgxNjdDMDU5MDdGNjcKKzoxMDA4MUEwMDk5RTA1NDQwREMwMzAyMDg0M0I0MDAxRDkwN0ZFMzc0NUUKKzoxMDA4MkEwMDdCRjBBMzc0ODBGMDkwN0ZFMjc0NDBGMDkwN0ZFNUYwNTMKKzoxMDA4M0EwMDkwN0ZFMjc0MDBGMDAyMDgxODA1ODY5MDdGRTI3NDgwQzcKKzoxMDA4NEEwMEYwOTA3OTY1RTBCNDAxMDMwMjA4OUVCNDAyMDMwMjA4M0QKKzoxMDA4NUEwMDk2QjQwMzAzMDIwODhFQjQwNDAzMDIwODg2QjQwNTAzOUYKKzoxMDA4NkEwMDAyMDg3RUI0MDYwMzAyMDg3NjAyMDhGNDA1ODY5MDdGMjEKKzoxMDA4N0EwMDZDMDIwOEU5MDU4NjkwN0Y2QzAyMDhERDA1ODY5MDdGODgKKzoxMDA4OEEwMDZDMDIwOENGMDU4NjkwN0Y2QzAyMDhDMDA1ODY5MDdGQUYKKzoxMDA4OUEwMDZDMDIwOEIyMDU4NjkwN0Y2Q0YwMDBGMDAwRjAwMEYwNjAKKzoxMDA4QUEwMDBERURCNDJERjQwMjA4RjRGMEYwRjBGMEYwRjAwREVERDcKKzoxMDA4QkEwMEI0MkRGNTAyMDhGNEYwMDBGMDAwRjAwMEYwMERFREI0RUMKKzoxMDA4Q0EwMDMxRjQwMjA4RjRGMEYwRjBGMEYwRjAwREVEQjQzMUY1ODcKKzoxMDA4REEwMDAyMDhGNEYwRjBGMEYwMERFREI0NjFGNzAyMDhGNEYwNUMKKzoxMDA4RUEwMEYwRjBGMEYwRjAwREVEQjQ2MUY1OTA3RkUyNzQwMEYwRjUKKzoxMDA4RkEwMEQwODVEMDg0MDU4NkQwODNEMDgyRDBFMEZDRDBFMEZEQkMKKzowNTA5MEEwMEQwRTBGRUQwRTA4QQorOjA2MDkwRjAwRkZEMEUwRDBEMDIyNzEKKzoxMDA5MTUwMEMwRDBDMEUwQzA4MkMwODM5MDdGNkZFNTBDRjBFNTBEQ0MKKzowRDA5MjUwMEYwRTUwRUYwRDA4M0QwODJEMEUwRDBEMDIyREIKKzoxMDA5MzIwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzRTMKKzoxMDA5NDIwMDA1ODZDMDg0QzA4NTkwNzk3MEUwRkZCRjAwMDMwMjBBNkIKKzoxMDA5NTIwMEI4OTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGQzAKKzoxMDA5NjIwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGMEIKKzoxMDA5NzIwMEYwOTA3RkUyNzQ4MEYwOTA3OTg4RTBCNDAxMDMwMjA5N0MKKzoxMDA5ODIwMEJFQjQwMjAzMDIwOUMzQjQwMzAzMDIwOUFDQjQwNDAzRjQKKzoxMDA5OTIwMDAyMDk5QTA1ODYwMjBBQjJFRjU0MDNGRUVGMDMwMzU0REEKKzoxMDA5QTIwMDNGRkY5MDdGNjMwNTg2MDIwOUM5RUY1NDAzRkVFRjAzMDAKKzoxMDA5QjIwMDAzNTQzRkZGOTA3RjYzMDU4NjAyMEEzNjA1ODYwMjBBQ0EKKzoxMDA5QzIwMEE1MDU4NjAyMEE4RUUwRTBFMEUwRTBFMDA1ODZFMEUwRDAKKzoxMDA5RDIwMEUwMDU4NkUwRTBFMEUwRTBFMDA1ODZFMEUwRTAwNTg2QjQKKzoxMDA5RTIwMEUwRTBFMEUwRTBFMDA1ODZFMEUwRTAwNTg2RTBFMEUwNkYKKzoxMDA5RjIwMEUwRTBFMDA1ODZFMEUwRTAwNTg2REZDQUVFQjQwMDAzNTEKKzoxMDBBMDIwMDAyMEFCMkI0MDEwMzAyMEEyNUUwRTBFMEUwRTBFMDA1RjgKKzoxMDBBMTIwMDg2RTBFMEUwMDU4NkUwRTBFMEUwRTBFMDA1ODZFMEUwOTgKKzoxMDBBMjIwMEUwMDU4NkUwRTBFMEUwRTBFMDA1ODZFMEUwRTAwNTg2NjMKKzoxMDBBMzIwMDAyMEFCMkUwRTBFMEUwMDU4NkUwRTAwNTg2RTBFMEUwMDAKKzowRDBBNDIwMEUwMDU4NkUwRTAwNTg2RTBFMEUwRTAwNTg2RTYKKzoxMDBBNEYwMEUwRTAwNTg2RTBFMEUwRTAwNTg2RTBFMDA1ODZERkQ2NDEKKzoxMDBBNUYwMEVFQjQwMDAzMDIwQUIyQjQwMTAzMDIwQTgwRTBFMEUwNDAKKzoxMDBBNkYwMEUwMDU4NkUwRTAwNTg2RTBFMEUwRTAwNTg2RTBFMDA1RjEKKzoxMDBBN0YwMDg2RTBFMEUwRTAwNTg2RTBFMDA1ODYwMjBBQjJFMEUwMEQKKzoxMDBBOEYwMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwRTBFMEUwNTcKKzoxMDBBOUYwMERGRUMwMjBBQjJFMEUwRTBFMEUwRTBFMEUwRTBFMEUwMUUKKzoxMDBBQUYwMEUwREZGMjkwN0ZFMjc0MDBGMEQwODVEMDg0MDU4NkQwMkQKKzowRTBBQkYwMDgzRDA4MkQwRTBGRUQwRTBGRkQwRTBEMEQwMjI4NQorOjEwMEFDRDAwQzA4MkMwODNDMEUwRThDMEUwNzhEMUU4MTRGODcwRkJDNAorOjBBMEFERDAwRDBFMEY4RDBFMEQwODNEMDgyMjJGMAorOjEwMEFFNzAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBBNQorOjEwMEFGNzAwOENFMEMwRTA3NTg2MDBDMDgyQzA4MzA1ODZDMDg0QzBENAorOjEwMEIwNzAwODU3RTAwOTA3OThFRTBCNDAwMTY3NDAxRjA5MDA2Q0FENQorOjEwMEIxNzAwQTNBM0EzQTNBM0EzQTNFMEZGOTA3OThERjAwMjBCMzlBRQorOjEwMEIyNzAwOTA3OThERTBGRjkwNzk4RkUwRkQ5MDc5OTBFMEZDMDI1RAorOjEwMEIzNzAwMEI0NjkwMDZDQTA1ODY5MDdGMDAwNTg2MDIwQjUxOERFRAorOjEwMEI0NzAwODQ4Qzg1MDU4NjkwN0YwMDA1ODZFMEEzMDU4NkYwQTM0MworOjEwMEI1NzAwMEVFRUI0NDAwMzAyMEI2QzA1ODZERkVFOTA3OThFNzRCRgorOjEwMEI2NzAwMDBGMDAyMEI4MjA1ODZBRDg0QUM4NTkwNzk4RkVERjA5RAorOjEwMEI3NzAwOTA3OTkwRUNGMDkwNzk4RDFGRUZGMDkwN0ZCNUVFRjBDMworOjEwMEI4NzAwRDA4NUQwODQwNTg2RDA4M0QwODJEMEUwRkNEMEUwRkQyQworOjBCMEI5NzAwRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjg0Cis6MTAwQkEyMDBDMEQwQzBFMEMwODJDMDgzOTA3RkFFRTA1NEUwRjA5MDNECis6MTAwQkIyMDA3Rjk2RTA0NDA4NTRGQkYwOTA3Rjk3RTA1NEJGRjA5MDlBCis6MTAwQkMyMDA3RkUzNzQ3QkYwOTA3RkU0NzQ0MEYwOTA3OTc4RTA5MDVBCis6MTAwQkQyMDA3QjQwRjA5MDdGRTI3NDQ4RjA5MDdGRTVFMDkwN0ZFMjA2Cis6MTAwQkUyMDA3NDAwRjA5MDdGOTZFMDU0Rjc0NDA0RjA5MDdGRTM3NDMxCis6MTAwQkYyMDA3QkYwOTA3RkU0NzQ0MEYwOTA3OTc5RTA5MDdCNDBGMDU0Cis6MTAwQzAyMDA5MDdGRTI3NDQ4RjA5MDdGRTVFMDkwN0ZFMjc0MDBGMDFDCis6MTAwQzEyMDA5MDdGOTZFMDU0RjNGMDkwN0ZBRUUwNDQxRkYwRDA4M0QzCis6MDcwQzIyMDBEMDgyRDBFMEQwRDAyMjA3Cis6MTAwQzI5MDBDMEQwQzBFMEMwODNDMDgyOTA3OTJGRTA2NEZGQzMyNEE0Cis6MEIwQzM5MDAwMUYwRDA4MkQwODNEMEUwRDBEMDIyQTgKKzoxMDBDNDQwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyQUUKKzowOTBDNTQwMEUzMjI4OTgyOEE4M0U0OTMyMkUxCis6MTAwQzVEMDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDRDCis6MTAwQzZEMDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMjk2Cis6MEQwQzdEMDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkIwCis6MTAwQzhBMDBCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMTQ5Cis6MDIwQzlBMDBGMzIyNDMKKzoxMDBDOUMwMEY4QkIwMTBERTU4MjI5RjU4MkU1ODMzQUY1ODNFOEYwOEUKKzoxMDBDQUMwMDIyNTAwNkU5MjU4MkM4RjYyMkJCRkUwNUU5MjU4MkM4M0EKKzowMjBDQkMwMEYyMjIyMgorOjEwMENCRTAwQzJENUVDMzBFNzA5QjJENUU0QzM5REZERTQ5Q0ZDRUU1MQorOjEwMENDRTAwMzBFNzE1QjJENUU0QzM5RkZGRTQ5RUZFMTIwRTQwQzM3QgorOjEwMENERTAwRTQ5REZERTQ5Q0ZDODAwMzEyMEU0MDMwRDUwN0MzRTQ3NgorOjA2MENFRTAwOUZGRkU0OUVGRTIyQzAKKzoxMDBDRjQwMEM1RjBGOEEzRTAyOEYwQzVGMEY4RTU4MjE1ODI3MDAyOEIKKzowNjBEMDQwMDE1ODNFMDM4RjAyMjI3Cis6MTAwRDBBMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMDI3Cis6MTAwRDFBMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRTA0Cis6MTAwRDJBMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzRBCis6MDgwRDNBMDBFOTkzRjVGMEEzRTk5MzIyMEYKKzoxMDBENDIwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDNTAKKzoxMDBENTIwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0Q0UKKzoxMDBENjIwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCMkQKKzoxMDBENzIwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5RjIKKzowRjBEODIwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjVGCis6MTAwRDkxMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMEI4Cis6MDEwREExMDAyMjJGCis6MTAwREEyMDBCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4MzAyMEVBMUE2Cis6MTAwREIyMDA1MDA3RTkyNTgyRjgwMjBFOTVCQkZFMDdFOTI1ODJGODY1Cis6MTAwREMyMDAwMjBFQURFNTgyMjlGNTgyRTU4MzNBRjU4MzAyMEVCOTdBCis6MTAwREQyMDBCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4MzAyMEVENTQyCis6MTAwREUyMDA1MDA3RTkyNTgyRjgwMjBFQzlCQkZFMDdFOTI1ODJGODAxCis6MDQwREYyMDAwMjBFRTEyMkVBCis6MTAwREY2MDBCQjAxMERFNTgyMjlGNTgyRTU4MzNBRjU4MzAyMEYwNkVDCis6MTAwRTA2MDA1MDA3RTkyNTgyRjgwMjBFRURCQkZFMDdFOTI1ODJGOEI4Cis6MDQwRTE2MDAwMjBGMzcyMjZFCis6MTAwRTFBMDBEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzY3Cis6MTAwRTJBMDA5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MDdCCis6MDYwRTNBMDBFRkEzQTNBMzgwREY3QgorOjEwMEU0MDAwQkMwMDBCQkUwMDI5RUY4REYwODRGRkFERjAyMkU0Q0M5NgorOjEwMEU1MDAwRjg3NUYwMDhFRjJGRkZFRTMzRkVFQzMzRkNFRTlERUM1RgorOjEwMEU2MDAwOTg0MDA1RkNFRTlERkUwRkQ1RjBFOUU0Q0VGRDIyRURBNQorOjEwMEU3MDAwRjhGNUYwRUU4NDIwRDIxQ0ZFQURGMDc1RjAwOEVGMkZFRgorOjEwMEU4MDAwRkZFRDMzRkQ0MDA3OTg1MDA2RDVGMEYyMjJDMzk4RkRFMAorOjA1MEU5MDAwMEZENUYwRUEyMjdECis6MEMwRTk1MDBFNkZDMDhFNkZEMDhFNkZFMDhFNkZGMjI4OQorOjBDMEVBMTAwRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjIyQzQKKzowQzBFQUQwMEUyRkMwOEUyRkQwOEUyRkUwOEUyRkYyMjgxCis6MTAwRUI5MDBFNDkzRkNBM0U0OTNGREEzRTQ5M0ZFQTNFNDkzRkYyMjRDCis6MEMwRUM5MDBFQ0Y2MDhFREY2MDhFRUY2MDhFRkY2MjI1NQorOjBDMEVENTAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyOTAKKzowQzBFRTEwMEVDRjIwOEVERjIwOEVFRjIwOEVGRjIyMjRECis6MTAwRUVEMDBEMDgzRDA4MkU0OTNGNjA4NzQwMTkzRjYwODc0MDI5M0NDCis6MDkwRUZEMDBGNjA4NzQwMzkzRjY3NDA0NzMwMworOjEwMEYwNjAwQTg4Mjg1ODNGMEQwODNEMDgyMTIwRjFEMTIwRjFEMTI4NgorOjEwMEYxNjAwMEYxRDEyMEYxREU0NzNFNDkzQTNDNTgzQzVGMEM1ODNBQgorOjEwMEYyNjAwQzhDNTgyQzhGMEEzQzU4M0M1RjBDNTgzQzhDNTgyQzgzNQorOjAxMEYzNjAwMjI5OAorOjEwMEYzNzAwRDA4M0QwODJFNDkzRjIwODc0MDE5M0YyMDg3NDAyOTM4OQorOjA5MEY0NzAwRjIwODc0MDM5M0YyNzQwNDczQzAKKzoxMDBGNTAwMEMyQUZEMjJDOTA3RjkzNzQzMEYwOTA3RjlDNzRCRkYwMUUKKzoxMDBGNjAwMDkwN0Y5NkUwNTQzMEYwOTA3Rjk0NzQzMEYwOTA3RjlEQTUKKzoxMDBGNzAwMDc0Q0ZGMDkwN0Y5Nzc0QTBGMDkwN0Y5NTc0Q0NGMEU0REMKKzoxMDBGODAwMDkwN0Y5RUYwQzIyREMyMkFDMjJCQzIyRTkwNzk3NDA0OEIKKzoxMDBGOTAwMEYwMTIyRTk0MTI0OUUyMTI0QkU2MTIzMjBEMTIzQjBENjIKKzoxMDBGQTAwMDEyNDFGRDEyM0U5OUU1MUY3MDE4NzUxRjAxMTIxN0ZGQkYKKzoxMDBGQjAwMDEyMkZGRjEyNDlDODEyNEJEODEyNEJEQTEyNDk2RjEyODYKKzoxMDBGQzAwMDFCNDAxMjM5OEQ5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwN0UKKzoxMDBGRDAwMDQ0MUZGMDkwN0ZBQzc0RkZGMDkwN0ZBREYwOTA3RkRFMDcKKzoxMDBGRTAwMEYwOTA3RkRGRjA5MDdGQUJGMDkwN0ZBOUYwOTA3RkFBMjgKKzoxMDBGRjAwMEYwNTM5MUVGNDNEODIwRDJFODQzRDgyMDQzQTg4MDIyNzEKKzoxMDEwMDAwMDkwNzk2M0UwMTQ2MDQ0MTQ3MDAyMjFEMDE0NzAwMjQxOUUKKzoxMDEwMTAwMEQ5MTQ3MDAyNjFENzI0MDQ2MDAyODE1NkU0OTA3OTc4NzMKKzoxMDEwMjAwMEYwOTA3OTdCRTA5MDc5NzlGMDQ0MDFGMDU0RkRGMDkwRjQKKzoxMDEwMzAwMDc5N0JGMEU0OTA3OTg4RjBBMkFGMzNGNTEyQzJBRjEyNTkKKzoxMDEwNDAwMDBCQTJFNTEyNzAwMjgxNTZEMkFGMjI5MDc5MkRFMDY0OTYKKzoxMDEwNTAwMDAxNzA3OTkwN0ZGMkYwOTA3RkYzNzQzMEYwOTA3RkZGMTEKKzoxMDEwNjAwMDc0RkNGMEU0OTA3OTc4RjA5MDc5N0JFMDkwNzk3OUYwRjUKKzoxMDEwNzAwMDQ0MDFGMDQ0MDJGMDkwNzk3QkYwQTJBRkU0MzNGNTEyMjIKKzoxMDEwODAwMEMyQUYxMjBCQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNEMKKzoxMDEwOTAwMDc5NzlGMDkwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFOTQKKzoxMDEwQTAwMEYwODAwNzkwNzk3OUUwNDQwMUYwOTA3OTc5RTA1NEZEN0YKKzoxMDEwQjAwMEYwNTRGQkYwOTA3OTg0RjAxMjBCQTI5MDc5ODI3NDA0QzIKKzoxMDEwQzAwMEYwOTA3OTg4MTRGMEU1MTI2MDAyRDJBRjkwNzkyREUwQUIKKzoxMDEwRDAwMDY0MDI3MDc5OTA3RkYyRjA5MDdGRjM3NDM0RjA5MDdGMjcKKzoxMDEwRTAwMEZGNzRGQ0YwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5NjYKKzoxMDEwRjAwMEYwNDQwMUYwNDQwMkYwOTA3OTdCRjBBMkFGRTQzM0Y1QzQKKzoxMDExMDAwMDEyQzJBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk4NEUwNDkKKzoxMDExMTAwMDkwNzk3OUYwOTA3OTdGRTBCNDAxMDk5MDc5NzlFMDU0ODEKKzoxMDExMjAwMEZFRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDQ0MEQKKzoxMDExMzAwMDAyRjA1NEZCRjA5MDc5ODRGMDEyMEJBMjkwNzk4Mjc0NDMKKzoxMDExNDAwMDA0RjA5MDc5ODgxNEYwRTUxMjYwMDJEMkFGOTA3OTJEMDYKKzoxMDExNTAwMEUwNjQwMzYwMDI4MTU2OTA3RkYyRjA5MDdGRjM3NDY0NDQKKzoxMDExNjAwMEYwOTA3RkZGNzRGQ0YwRTQ5MDc5NzhGMDkwNzk3QkUwNjgKKzoxMDExNzAwMDkwNzk3OUYwNDQwMUYwNDQwMkYwOTA3OTdCRjBBMkFGQ0QKKzoxMDExODAwMEU0MzNGNTEyQzJBRjEyMEJBMjkwNzk3ODc0MDJGMDkwOUEKKzoxMDExOTAwMDc5ODRFMDkwNzk3OUYwOTA3OTdGRTBCNDAxMDk5MDc5RDEKKzoxMDExQTAwMDc5RTA1NEZFRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5N0QKKzoxMDExQjAwMDc5RTA0NDA0RjA5MDc5ODRGMDEyMEJBMjkwNzk4Mjc0NjMKKzoxMDExQzAwMDA0RjA5MDc5ODgxNEYwRTUxMjcwMDI4MTU2RDJBRjIyQjMKKzoxMDExRDAwMDkwNzkyREUwNjQwMTcwN0E5MDdGRjJGMDkwN0ZGMzc0NDMKKzoxMDExRTAwMDg4RjA5MDdGRkY3NEZDRjBFNDkwNzk3OEYwOTA3OTdCNDAKKzoxMDExRjAwMEUwOTA3OTc5RjA0NDAxRjA1NEZERjA5MDc5N0JGMEEyMTEKKzoxMDEyMDAwMEFGRTQzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwRkEKKzoxMDEyMTAwMDkwNzk4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwMzkKKzoxMDEyMjAwMDc5NzlFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwRkMKKzoxMDEyMzAwMDc5NzlFMDU0RkRGMDU0RkJGMDkwNzk4NEYwMTIwQkEyMjAKKzoxMDEyNDAwMDkwNzk4Mjc0MENGMDkwNzk4ODc0MDFGMEU1MTI2MDAyNTQKKzoxMDEyNTAwMEQyQUY5MDc5MkRFMDY0MDI2MDAyODE1NjkwN0ZGMkYwNjcKKzoxMDEyNjAwMDkwN0ZGMzc0OTRGMDkwN0ZGRjc0RkNGMEU0OTA3OTc4QjEKKzoxMDEyNzAwMEYwOTA3OTdCRTA5MDc5NzlGMDQ0MDFGMDU0RkRGMDkwQTIKKzoxMDEyODAwMDc5N0JGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTI5MDc5RDIKKzoxMDEyOTAwMDc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwMjkKKzoxMDEyQTAwMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNzk3OUUwRjMKKzoxMDEyQjAwMDQ0MDFGMDkwNzk3OUUwNDQwMkYwNTRGQkYwOTA3OTg0OTUKKzoxMDEyQzAwMEYwMTIwQkEyOTA3OTgyNzQwQ0YwOTA3OTg4NzQwMUYwN0UKKzoxMDEyRDAwMEU1MTI3MDAyODE1NkQyQUYyMjkwNzkyREUwNjQwMTcwNDAKKzoxMDEyRTAwMDc3OTA3RkYyRjA5MDdGRjM3NENDRjA5MDdGRkY3NEZDRTYKKzoxMDEyRjAwMEYwRTQ5MDc5NzhGMDkwNzk3QkUwOTA3OTc5RjA1NEZDODMKKzoxMDEzMDAwMEYwOTA3OTdCRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQkEyREEKKzoxMDEzMTAwMDkwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDc5RkUKKzoxMDEzMjAwMDdGRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MDc5NkMKKzoxMDEzMzAwMDc5RTA0NDAxRjA5MDc5NzlFMDU0RkRGMDU0RkJGMDkwQUQKKzoxMDEzNDAwMDc5ODRGMDEyMEJBMjkwNzk4Mjc0MTJGMDkwNzk4ODc0RUIKKzoxMDEzNTAwMDAyRjBFNTEyNjAwMkQyQUY5MDc5MkRFMDY0MDI3MDc3NUUKKzoxMDEzNjAwMDkwN0ZGMkYwOTA3RkYzNzRFMEYwOTA3RkZGNzRGQ0YwRDgKKzoxMDEzNzAwMEU0OTA3OTc4RjA5MDc5N0JFMDkwNzk3OUYwNTRGQ0YwMDIKKzoxMDEzODAwMDkwNzk3QkYwQTJBRkU0MzNGNTEyQzJBRjEyMEJBMjkwQkEKKzoxMDEzOTAwMDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTA3OTdGOEYKKzoxMDEzQTAwMEUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTA3OTc5RjIKKzoxMDEzQjAwMEUwNDQwMUYwOTA3OTc5RTA0NDAyRjA1NEZCRjA5MDc5MzgKKzoxMDEzQzAwMDg0RjAxMjBCQTI5MDc5ODI3NDEyRjA5MDc5ODg3NDAyRTIKKzoxMDEzRDAwMEYwRTUxMjYwMDJEMkFGOTA3OTJERTA2NDAzNzA3NzkwNEYKKzoxMDEzRTAwMDdGRjJGMDkwN0ZGMzc0OTRGMDkwN0ZGRjc0RkNGMEU0NTAKKzoxMDEzRjAwMDkwNzk3OEYwOTA3OTdCRTA5MDc5NzlGMDU0RkVGMDQ0MjAKKzoxMDE0MDAwMDAyRjA5MDc5N0JGMEEyQUZFNDMzRjUxMkMyQUYxMjBCNzkKKzoxMDE0MTAwMEEyOTA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGMDkwRDQKKzoxMDE0MjAwMDc5N0ZFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODAwNzkwNkIKKzoxMDE0MzAwMDc5NzlFMDQ0MDFGMDkwNzk3OUUwNDQwNEYwOTA3OTg0N0UKKzoxMDE0NDAwMEYwMTIwQkEyOTA3OTgyNzQwNkYwOTA3OTg4NzQwNEYwRkYKKzowNzE0NTAwMEU1MTI2MDAyRDJBRjIyOTkKKzoxMDE0NTcwMEMyMjhDMjI5OTA3RkU4RTAxMjBFMUExNDg0MDAxNEUwMTMKKzoxMDE0NjcwMDAxMTRGNjAyMTY3QzIxMTZCRTIyMTU5MTgwMTVEMTgxMzIKKzoxMDE0NzcwMDE2MkU4MjE2Q0ZBMTE3MDVBMjAwMDAxNzBBOTA3RkU5NDIKKzoxMDE0ODcwMEUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM3MDQwQjkKKzoxMDE0OTcwMDEyNEEyQUUxMTYxMjRCRTA0MDAyRTExNjkwN0ZFQUUwNzkKKzoxMDE0QTcwMEI0MDEwNEMyMkFFMTE2OTA3RkI0RTA0NDAxRjBFMTE2Q0EKKzoxMDE0QjcwMDEyNEJFMjkwN0ZFQUUwQjQwMTA0RDIyQUUxMTY5MDdGNTIKKzoxMDE0QzcwMEI0RTA0NDAxRjBFMTE2OTA3RkI0RTA0NDAxRjBFMTE2ODYKKzoxMDE0RDcwMDkwN0ZCNEUwNDQwMUYwRTExNjkwN0ZFOUUwMjRGNTcwRDUKKzoxMDE0RTcwMDA1MTI0NzlDRTExNjkwN0ZCNEUwNDQwMUYwRTExNjkwQTUKKzoxMDE0RjcwMDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDJBMTg4MTI0QkUwREEKKzoxMDE1MDcwMDQwMDJFMTE2OTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0RjcKKzoxMDE1MTcwMDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyNjEKKzoxMDE1MjcwMEU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzRkQKKzoxMDE1MzcwMDEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwQUIKKzoxMDE1NDcwMEUxMTY5MDdGQjRFMDQ0MDFGMEUxMTYxMjRCRTI0MDAyNEQKKzoxMDE1NTcwMEUxMTY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGODIKKzoxMDE1NjcwMEM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0NzgKKzoxMDE1NzcwMDdGRjU4Mzc0MDFGMEUxMTY5MDdGQjRFMDQ0MDFGMEUxNTgKKzoxMDE1ODcwMDE2OTA3RkI0RTA0NDAxRjBFMTE2OTA3RkU5RTA2MDEyMjUKKzoxMDE1OTcwMDI0Rjg2MDA5MjQwMjcwMjkxMjE3MUVFMTE2MTI0QkEwQzUKKzoxMDE1QTcwMEUxMTYxMjRCREVBMjJBRTQzM0ZGMjVFMEZGQTIyQkU0NkIKKzoxMDE1QjcwMDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMEUxMjEKKzoxMDE1QzcwMDE2OTA3RkI0RTA0NDAxRjBFMTE2OTA3RkU5RTA2MDM3QzAKKzoxMDE1RDcwMDI0RjY2MDJFMjQwNDcwNDE5MDdGRUJFMDI0REU2MDBFMzkKKzoxMDE1RTcwMDA0NzAxNkQyMjk5MDdGQjRFMDQ0MDFGMEUxMTZEMjI5QTUKKzoxMDE1RjcwMDkwN0ZCNEUwNDQwMUYwRTExNjkwN0ZCNEUwNDQwMUYwM0QKKzoxMDE2MDcwMEUxMTYxMjQ0NjNFMTE2MTI0QkRFRTQ5MDdGMDBGMEEzNkIKKzoxMDE2MTcwMEYwOTA3RkI1NzQwMkYwRTExNjIwMjkwNzkwN0ZCNEUwQkYKKzoxMDE2MjcwMDQ0MDFGMEMyMjlFMTE2OTA3RkU5RTAyNEY0NjAzNDI0RjQKKzoxMDE2MzcwMDBDNzAzOTEyNEJERTkwN0ZFQ0UwRjQ1NDgwRkZDNDU0RjkKKzoxMDE2NDcwMDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1M0IKKzoxMDE2NTcwMDgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyMUYKKzoxMDE2NjcwMEYwRTExNjkwN0ZCNEUwNDQwMUYwRTExNjkwN0ZCNEUwMUEKKzoxMDE2NzcwMDQ0MDFGMEUxMTY5MDdGRTlFMDI0RjY2MDEyMTQ2MDFBNDUKKzoxMDE2ODcwMDI0MDI3MDFERDIyODkwN0ZCNEUwNDQwMUYwODAxMkQyNkEKKzoxMDE2OTcwMDI4OTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRDQKKzoxMDE2QTcwMEYwMjAyODBGOTA3OTg1NzQwMUYwMTI0OTZGOTA3RkM1NUIKKzoxMDE2QjcwMDc0MDJGMEMyMjg4MDU4OTA3OTg2NzQwMUYwMTI0OTZGM0QKKzoxMDE2QzcwMDkwN0ZDNTc0MDJGMDgwNDc5MDdGRTlFMDI0RkU2MDEyQTYKKzoxMDE2RDcwMDE0NjAxQTI0MDI3MDFERDIyODkwN0ZCNEUwNDQwMUYwRjAKKzoxMDE2RTcwMDgwMTJEMjI4OTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0NDUKKzoxMDE2RjcwMEUwNDQwMUYwMjAyODAzMTIxQTdCQzIyODgwMTExMjJDMjMKKzoxMDE3MDcwMDJCODAwQzEyNEJFNDUwMDc5MDdGQjRFMDQ0MDFGMDkwMUIKKzowNzE3MTcwMDdGQjRFMDQ0MDJGMDIyNjAKKzoxMDE3MUUwMDEyNEJEQzQwMDJFMUUzOTA3RkVCRTAyNEZFNjAxRTE0RUUKKzoxMDE3MkUwMDYwNDYxNDYwNkUxNDcwMDJFMUQ0MjQwNDYwMDJFMURDQTEKKzoxMDE3M0UwMDc0MDU5MDdGRDRGMDc0MDA5MDdGRDVGMDIyOTA3RkVBRUMKKzoxMDE3NEUwMEUwRkYxMjNGQTI4QjMzOEEzNDg5MzVFQTQ5NjAxMUNFMEQKKzoxMDE3NUUwMEVBQ0VFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyOTYKKzoxMDE3NkUwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRUFFMEZGMTI0ODAwM0YKKzoxMDE3N0UwMDhCMzM4QTM0ODkzNUVBNDk2MDExQ0VFQUNFRUU5MDdGRkEKKzoxMDE3OEUwMEQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGQjRFMDQ0MzQKKzoxMDE3OUUwMDAxRjAyMjkwN0ZFQUUwRkY5MDdFQzBFMEZEQTNFMEZCMjcKKzoxMDE3QUUwMDEyNDREMjhCMzM4QTM0ODkzNUVBNDk2MDExQ0VFQUNFOUYKKzoxMDE3QkUwMEVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGREYKKzoxMDE3Q0UwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMTcKKzowNTE3REUwMEI0RTA0NDAxRjAzRAorOjAxMTdFMzAwMjJFMworOjEwMTdFNDAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0Y0NworOjBCMTdGNDAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMjUwCis6MDExN0ZGMDAyMkM3Cis6MTAxODAwMDBFNDkwNzgxNUYwN0IwMTkwNzgxMjA0RjBBMzc0NzhGMERFCis6MTAxODEwMDBBMzc0NThGMDkwNzgxMkUwRkJBM0UwRkFBM0UwRjk5MEVCCis6MTAxODIwMDAwMDAxMTIwQzVERkY5MDc5OUFFMDZGNjAxODkwNzgxNUI2Cis6MTAxODMwMDBFMEMzOTQwNjUwMEZFMDA0RjA5MDc4MTNFNDc1RjAwRkM1Cis6MTAxODQwMDAxMjBDRjQ4MENGOTA3ODE1RTBCNDA2MDg5MDdGQjRFMEQ1Cis6MTAxODUwMDA0NDAxRjAyMjkwNzgxMkUwRkJBM0UwRkFBM0UwRjkxMjMxCis6MTAxODYwMDAwQzQ0RkYyNEJGNzAwMjQxN0EyNEUwNzAwMjQxNEMyNEYyCis6MTAxODcwMDAyMTYwMDI0MTczOTA3OTk3RTAyNEZFNzAwMjIxOUExNDRFCis6MTAxODgwMDA3MDAyMjFFRjI0MDI2MDAyNDE0NDkwNzkyREUwQTNGMDIwCis6MTAxODkwMDA5MDc5MjNFMEZGRTRGQ0ZERkVGQkZBNzkwMUY4MTIwRERDCis6MTAxOEEwMDA0MkM4RUNDOEM5RURDOUNBRUVDQUNCRUZDQjkwNzkyMkM5Cis6MTAxOEIwMDBFMEZFRTRGQ0ZEMkJGQkVBM0VGQUVEMzlGOUVDMzhGOEVBCis6MTAxOEMwMDA5MDc5MjFFMEZGRTRGRUVCMkZGRkVFM0FGRUVEMzlGRENCCis6MTAxOEQwMDBFQzM4RkM5MDc4MTJFMEZCQTNFMEZBQTNFMEY5OTAwMDZBCis6MTAxOEUwMDAwMjEyMEREMjkwMDAwMjEyMERBMjdCNDQ3QUFDNzkwMDU0Cis6MTAxOEYwMDA3ODAwQzMxMjBEOTE3MDA1OTA3OTJEMDRGMDkwNzgxMjQ0Cis6MTAxOTAwMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDAyMTIwREEyN0I4MEI1Cis6MTAxOTEwMDA3QUJCNzkwMDc4MDBDMzEyMEQ5MTcwMDY5MDc5MkQ3NDBFCis6MTAxOTIwMDAwMkYwOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTkwMDAwMjQ1Cis6MTAxOTMwMDAxMjBEQTI3QjAwN0E3Nzc5MDE3ODAwQzMxMjBEOTE3MEE1Cis6MTAxOTQwMDAwNjkwNzkyRDc0MDNGMDkwNzkyREUwRkZCNDAxMDk3NUFDCis6MTAxOTUwMDAwQzY3NzUwRDA2NzUwRTBCRUZCNDAyMDhFNEY1MENGNTc3Cis6MTAxOTYwMDAwRDc1MEUwQ0VGQjQwMzA4RTRGNTBDRjUwRDc1MEUxOEFCCis6MTAxOTcwMDBFRkI0MDMwRDkwNzkyRUUwNjQwMzYwMDVEMjJGMTIzRDgxCis6MTAxOTgwMDA3OTkwNzkyREUwNjQwMzYwMEFBM0UwQjQwMzA1QzIyRkM3Cis6MTAxOTkwMDAxMjNENzkxMjEwMDAxMjI4MDEyMjkwNzkyM0UwRkZFNDExCis6MTAxOUEwMDBGQ0ZERkVGQkZBNzkwMUY4MTIwRDQyQzhFQ0M4QzlFRDQ2Cis6MTAxOUIwMDBDOUNBRUVDQUNCRUZDQjkwNzkyMkUwRkVFNEZDRkQyQjQ2Cis6MTAxOUMwMDBGQkVBM0VGQUVEMzlGOUVDMzhGODkwNzkyMUUwRkZFNEQyCis6MTAxOUQwMDBGRUVCMkZGRkVFM0FGRUVEMzlGREVDMzhGQzkwNzgxMjZECis6MTAxOUUwMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDA2MTIwREQyMjI5MEVBCis6MTAxOUYwMDA3OTIzRTBGRkU0RkNGREZFRkJGQTc5MDFGODEyMEQ0MkM5Cis6MTAxQTAwMDBDOEVDQzhDOUVEQzlDQUVFQ0FDQkVGQ0I5MDc5MjJFMEM5Cis6MTAxQTEwMDBGRUU0RkNGRDJCRkJFQTNFRkFFRDM5RjlFQzM4Rjg5MEQ4Cis6MTAxQTIwMDA3OTIxRTBGRkU0RkVFQjJGRkZFRTNBRkVFRDM5RkRFQzBECis6MTAxQTMwMDAzOEZDOTA3ODEyRTBGQkEzRTBGQUEzRTBGOTkwMDAwQUVBCis6MTAxQTQwMDAxMjBERDIyMjkwN0ZCNEUwNDQwMUYwMjI5MDc5OTdFMDA5Cis6MTAxQTUwMDAxNDcwMTg5MDc5MjFFMEZGOTA3ODEyRTBGQkEzRTBGQTZGCis6MTAxQTYwMDBBM0UwRjk5MDAwMEVFRjEyMEM5QzIyOTA3RkI0RTA0NEFBCis6MEExQTcwMDAwMUYwMjI5MDdGQjRFMDQ0MDFGMDgxCis6MDExQTdBMDAyMjQ5Cis6MTAxQTdCMDBFNEZGRkU3QjAxOTA3ODBGMDRGMEEzNzQ3OEYwQTM3NDVECis6MTAxQThCMDAyQkYwOTA3ODBGRTBGQkEzRTBGQUEzRTBGOTkwMDAwMkIzCis6MTAxQTlCMDAxMjBDNURGRDkwN0ZFQ0UwNkQ2MDEzRUZDMzk0MDU1MDZECis6MTAxQUFCMDAwRDBGOTA3ODEwRTQ3NUYwMDMxMjBDRjQ4MEQ0OEQzMzg1Cis6MTAxQUJCMDA5MDc4MEZFMEZCQTNFMEZBQTNFMEY5OTAwMDAxMTIwQzgxCis6MTAxQUNCMDA1REZEOTA3RkVERTA2RDYwMTNFRUMzOTQwQjUwMEQwRTNBCis6MTAxQURCMDA5MDc4MTBFNDc1RjAwMzEyMENGNDgwRDQ5MDdGRURFMDU1Cis6MTAxQUVCMDBGNTM0RUY2NDA1NjAwM0JFMEIwODkwN0ZCNEUwNDQwMTRFCis6MTAxQUZCMDBGMDIyOTA3ODBGRTBGQkEzRTBGQUEzRTBGOTEyMEM0NDdDCis6MTAxQjBCMDBGRjI0RjA2MDA4MjQwRjcwMEUxMjQ5MkEyMjEyNEI4MzE3Cis6MEUxQjFCMDA5MDc5MjBFNTM0RjAyMjkwN0ZCNEUwNDQwMUYwOTAKKzowMTFCMjkwMDIyOTkKKzowRjFCMkEwMDkwN0ZFQUUwQjRGRjA0MTIzNDE2MjIxMjM4MDAyMjMyCis6MDcxQjM5MDA1Mzk4RkU1Mzk4RkQzMkEyCis6MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzowMjFGM0UwMDAwMDBBMQorOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzowNTI3RkMwMDAwMDAwMDAwMjJCNgorOjEwMjgwMTAwOTA3OTY0RTAxNDYwNDYxNDcwMDI0MTNDMjQwMjYwMDIzNQorOjEwMjgxMTAwODEyQTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0RkNGMDkwNzk1QQorOjEwMjgyMTAwNzg3NDAxRjA5MDc5N0NFMDkwNzk3OUYwNTRGREYwNDQ2RQorOjEwMjgzMTAwMDFGMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzJBRjEyMEIzNAorOjEwMjg0MTAwQTJFNTEyNjAwMkQyQUZFNDkwNzk3QUYwMjI5MDc5MkQ1QworOjEwMjg1MTAwRTA2NDAxNjAwMjAxRjE5MDdGRkM3NENDRjA5MDdGRkY5NQorOjEwMjg2MTAwNzRGQ0YwOTA3OTc4NzQwMUYwOTA3OTdDRTA5MDc5NzkzQQorOjEwMjg3MTAwRjA0NDAxRjA0NDAyRjA5MDc5N0VFMEI0MDEwOTkwNzlDRQorOjEwMjg4MTAwNzlFMDQ0MDRGMDgwMDc5MDc5NzlFMDU0RkJGMDkwNzk4NQorOjEwMjg5MTAwNzlFMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzJBRjEyMEI2QworOjEwMjhBMTAwQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzk3OUYwOTAyRgorOjEwMjhCMTAwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA4MDA3OTBDNgorOjEwMjhDMTAwNzk3OUUwNDQwMUYwOTA3OTc5RTA1NEZERjA1NEZCRjAxRQorOjEwMjhEMTAwOTA3OTg0RjAxMjBCQTI5MDc5N0E3NDAxRjA5MDc5NjU2NQorOjEwMjhFMTAwRjBFNTEyNjAwMkQyQUZFNDkwNzk4Q0YwOTA3OThCRjAzMAorOjEwMjhGMTAwOTA3OTJERTA2NDAyNjAwMjIxOTY5MDdGRkM3NEM4RjAwQgorOjEwMjkwMTAwOTA3RkZGNzRGQ0YwOTA3OTc4NzQwMUYwOTA3OTdDRTAwRAorOjEwMjkxMTAwOTA3OTc5RjA0NDAxRjA0NDAyRjA5MDc5N0VFMEI0MDFCRAorOjEwMjkyMTAwMDk5MDc5NzlFMDQ0MDRGMDgwMDc5MDc5NzlFMDU0RkJDQgorOjEwMjkzMTAwRjA5MDc5NzlFMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzI5RQorOjEwMjk0MTAwQUYxMjBCQTI5MDc5Nzg3NDAyRjA5MDc5ODRFMDkwNzlCQgorOjEwMjk1MTAwNzlGMDkwNzk3RkUwQjQwMTA5OTA3OTc5RTA1NEZFRjA0MworOjEwMjk2MTAwODAwNzkwNzk3OUUwNDQwMUYwOTA3OTc5RTA0NDAyRjBCMAorOjEwMjk3MTAwNTRGQkYwOTA3OTg0RjAxMjBCQTI5MDc5N0E3NDAxRjBGMworOjEwMjk4MTAwOTA3OTY1NzQwM0YwRTUxMjYwMDJEMkFGRTQ5MDc5OEMxRQorOjEwMjk5MTAwRjA5MDc5OEJGMDkwNzkyREUwNjQwMzYwMDI4MTJBOTBBOAorOjEwMjlBMTAwN0ZGQzc0OThGMDkwN0ZGRjc0RkNGMDkwNzk3ODc0MDE0QgorOjEwMjlCMTAwRjA5MDc5N0NFMDkwNzk3OUYwNDQwMUYwNDQwMkYwOTA1NAorOjEwMjlDMTAwNzk3RUUwQjQwMTA5OTA3OTc5RTA0NDA0RjA4MDA3OTBDMAorOjEwMjlEMTAwNzk3OUUwNTRGQkYwOTA3OTc5RTA5MDc5N0NGMEEyQUZCRAorOjEwMjlFMTAwRTQzM0Y1MTJDMkFGMTIwQkEyOTA3OTc4NzQwMkYwOTAyMQorOjEwMjlGMTAwNzk4NEUwOTA3OTc5RjA5MDc5N0ZFMEI0MDEwOTkwNzk1OAorOjEwMkEwMTAwNzlFMDU0RkVGMDgwMDc5MDc5NzlFMDQ0MDFGMDkwNzkwMworOjEwMkExMTAwNzlFMDU0RkRGMDQ0MDRGMDkwNzk4NEYwMTIwQkEyOTAxNworOjEwMkEyMTAwNzk3QTc0MDFGMDkwNzk2NTc0MDVGMEU1MTI2MDAyRDI0QgorOjEwMkEzMTAwQUZFNDkwNzk4Q0YwOTA3OThCRjAyMjkwNzkyREUwNjQ1RAorOjEwMkE0MTAwMDE2MDAyNDFFMDkwN0ZGQzc0QjRGMDkwN0ZGRjc0RkM2MAorOjEwMkE1MTAwRjA5MDc5Nzg3NDAxRjA5MDc5N0NFMDkwNzk3OUYwNTQ3NAorOjEwMkE2MTAwRkVGMDQ0MDJGMDkwNzk3RUUwQjQwMTA5OTA3OTc5RTBCQQorOjEwMkE3MTAwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwOTA3OTc5RTA5MworOjEwMkE4MTAwOTA3OTdDRjBBMkFGRTQzM0Y1MTJDMkFGMTIwQkEyOTBBMQorOjEwMkE5MTAwNzk3ODc0MDJGMDkwNzk4NEUwOTA3OTc5RjA5MDc5N0Y3NworOjEwMkFBMTAwRTBCNDAxMDk5MDc5NzlFMDU0RkVGMDgwMDc5MDc5NzlEQQorOjEwMkFCMTAwRTA0NDAxRjA5MDc5NzlFMDU0RkRGMDU0RkJGMDkwNzkxNQorOjEwMkFDMTAwODRGMDEyMEJBMjkwNzk3QTc0MDFGMDkwNzk2NTA0RjA4OAorOjEwMkFEMTAwRTUxMjYwMDJEMkFGRTQ5MDc5OENGMDkwNzk4QkYwOTA5RQorOjEwMkFFMTAwNzkyREUwNjQwMjYwMDI2MTg1OTA3RkZDNzRCMEYwOTAwMgorOjEwMkFGMTAwN0ZGRjc0RkNGMDkwNzk3ODc0MDFGMDkwNzk3Q0UwOTAxQworOjEwMkIwMTAwNzk3OUYwNTRGRUYwNDQwMkYwOTA3OTdFRTBCNDAxMDk0NQorOjEwMkIxMTAwOTA3OTc5RTA0NDA0RjA4MDA3OTA3OTc5RTA1NEZCRjBGMgorOjEwMkIyMTAwOTA3OTc5RTA5MDc5N0NGMEEyQUZFNDMzRjUxMkMyQUZFRAorOjEwMkIzMTAwMTIwQkEyOTA3OTc4NzQwMkYwOTA3OTg0RTA5MDc5NzlGRgorOjEwMkI0MTAwRjA5MDc5N0ZFMEI0MDEwOTkwNzk3OUUwNTRGRUYwODA0QQorOjEwMkI1MTAwMDc5MDc5NzlFMDQ0MDFGMDkwNzk3OUUwNDQwMkYwNTRFQQorOjEwMkI2MTAwRkJGMDkwNzk4NEYwMTIwQkEyOTA3OTdBNzQwMUYwOTBDNQorOjEwMkI3MTAwNzk2NTc0MDRGMEU1MTI2MDAyRDJBRkU0OTA3OThDRjBDQgorOjEwMkI4MTAwOTA3OThCRjA5MDc5MkRFMDY0MDM2MDAyODEyQTkwN0YyNworOjEwMkI5MTAwRkM3NDY4RjA5MDdGRkY3NEZDRjA5MDc5Nzg3NDAxRjAxOAorOjEwMkJBMTAwOTA3OTdDRTA5MDc5NzlGMDU0RkVGMDQ0MDJGMDkwNzlDQworOjEwMkJCMTAwN0VFMEI0MDEwOTkwNzk3OUUwNDQwNEYwODAwNzkwNzlDRQorOjEwMkJDMTAwNzlFMDU0RkJGMDkwNzk3OUUwOTA3OTdDRjBBMkFGRTQ2MAorOjEwMkJEMTAwMzNGNTEyQzJBRjEyMEJBMjkwNzk3ODc0MDJGMDkwNzk5QQorOjEwMkJFMTAwODRFMDkwNzk3OUYwOTA3OTdGRTBCNDAxMDk5MDc5Nzk2NgorOjEwMkJGMTAwRTA1NEZFRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzkxMgorOjEwMkMwMTAwRTA1NEZERjA0NDA0RjA5MDc5ODRGMDEyMEJBMjkwNzkyNQorOjEwMkMxMTAwN0E3NDAxRjA5MDc5NjU3NDA2RjBFNTEyNjAwMkQyQUYyMgorOjBBMkMyMTAwRTQ5MDc5OENGMDkwNzk4QkYwMjI5QQorOjEwMkMyQjAwRTRGRjdCMDE5MDc4MTYwNEYwQTM3NDc4RjBBMzc0NTgzQQorOjEwMkMzQjAwRjA5MDc4MTZFMEZCQTNFMEZBQTNFMEY5OTAwMDAxMTIwNAorOjEwMkM0QjAwMEM1REZFOTA3RkVDRTA2RTYwMTNFRkMzOTQwNjUwMERBRAorOjEwMkM1QjAwMEY5MDc4MTdFNDc1RjAwRjEyMENGNDgwRDRCRjA2MDhCMAorOjEwMkM2QjAwOTA3RkI0RTA0NDAxRjAyMjkwNzgxNkUwRkJBM0UwRkFFOQorOjEwMkM3QjAwQTNFMEY5MTIwQzQ0RkYyNDlGNzAwMkMxNjYyNDIxNjA2QgorOjEwMkM4QjAwMDJDMThDOTA3RkU5RTAyNDdFNzAwMkExMzAxNDcwMDJBNworOjEwMkM5QjAwQTFDODI0MDI2MDAyQzE1RTkwMDAwMjEyMERBMjdCNDQwNworOjEwMkNBQjAwN0FBQzc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RjAwNzQ4OQorOjEwMkNCQjAwNDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1NzQwM0YwOTBGMAorOjEwMkNDQjAwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMDIxMjBEQTI0NAorOjEwMkNEQjAwN0I4MDdBQkI3OTAwNzgwMEMzMTIwRDkxNzAxMzkwN0ZDMworOjEwMkNFQjAwMDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDM4MQorOjEwMkNGQjAwRjA5MDc4MTZFMEZCQTNFMEZBQTNFMEY5OTAwMDAyMTI0MworOjEwMkQwQjAwMERBMjdCMDA3QTc3NzkwMTc4MDBDMzEyMEQ5MTYwMDJENgorOjEwMkQxQjAwQzE5MzkwN0YwMEYwQTM3NDc3RjBBMzc0MDFGMDkwN0ZDMAorOjEwMkQyQjAwQjU3NDAzRjAyMjkwNzgxNkUwRkJBM0UwRkFBM0UwRjk2OAorOjEwMkQzQjAwOTAwMDA2MTIwREEyN0I0NDdBQUM3OTAwNzgwMEMzMTI4NgorOjEwMkQ0QjAwMEQ5MTcwMTM5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTM2NgorOjEwMkQ1QjAwRjA5MDdGQjU3NDAzRjA5MDc4MTZFMEZCQTNFMEZBQTMzNAorOjEwMkQ2QjAwRTBGOTkwMDAwNjEyMERBMjdCODA3QUJCNzkwMDc4MDAwNworOjEwMkQ3QjAwQzMxMjBEOTE3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjA5RAorOjEwMkQ4QjAwRTRBM0YwOTA3RkI1NzQwM0YwOTA3ODE2RTBGQkEzRTAxQQorOjEwMkQ5QjAwRkFBM0UwRjk5MDAwMDYxMjBEQTI3QjAwN0E3Nzc5MDE3NQorOjEwMkRBQjAwNzgwMEMzMTIwRDkxNjAwMkMxOTM5MDdGMDBGMEEzNzQ2MQorOjEwMkRCQjAwNzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MDc4MTYyRQorOjEwMkRDQjAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwQTEyMERBMjdCNDQwQQorOjEwMkREQjAwN0FBQzc5MDA3ODAwQzMxMjBEOTE3MDEzOTA3RjAwNzQ1OAorOjEwMkRFQjAwNDRGMEEzNzRBQ0YwRTRBM0YwOTA3RkI1NzQwM0YwOTBCRgorOjEwMkRGQjAwNzgxNkUwRkJBM0UwRkFBM0UwRjk5MDAwMEExMjBEQTIwQgorOjEwMkUwQjAwN0I4MDdBQkI3OTAwNzgwMEMzMTIwRDkxNzAxMzkwN0Y5MQorOjEwMkUxQjAwMDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDM0RgorOjEwMkUyQjAwRjA5MDc4MTZFMEZCQTNFMEZBQTNFMEY5OTAwMDBBMTIwOQorOjEwMkUzQjAwMERBMjdCMDA3QTc3NzkwMTc4MDBDMzEyMEQ5MTcwNDg0RgorOjEwMkU0QjAwOTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzRCQQorOjEwMkU1QjAwMDNGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMjQ1QworOjEwMkU2QjAwN0Y3MDE2OTA3ODE2RTBGQkEzRTBGQUEzRTBGOTkwMDBEMAorOjEwMkU3QjAwMEUxMjBDNUQ5MDdGMDBGMDIyOTA3RkI0RTA0NDAxRjBDNQorOjA4MkU4QjAwMjI5MDdGQjRFMDQ0MDFGMDQ1Cis6MDEyRTkzMDAyMjFDCis6MTAyRTk0MDA3NTM2MjU3NTM3MjQ5MDc5NzRFMDY0MDE3MDU0RjBGNTIzCis6MTAyRUE0MDAzNTc1MjIwMUU1MjI2NDAxNzA0ODkwN0ZBNUUwNDQ4MEQ1Cis6MTAyRUI0MDBGMDkwN0ZBNkU1MzZGMDEyNDZDMDc0NEYyNTM1RjU4MkIyCis6MTAyRUM0MDBFNDM0NzlGNTgzRTA5MDdGQTZGMDEyNDZDMDc0MzUyNThBCis6MTAyRUQ0MDAzNUY1ODJFNDM0NzlGNTgzRTA5MDdGQTZGMDEyNDZDMDlDCis6MTAyRUU0MDA5MDdGQTU3NDQwRjAxMjBBQ0QwNTM1RTUzNUMzOTQwREU1Cis6MTAyRUY0MDA0MEIyOTA3OTc1RTA2NDAxNjAwMkUxREVGMDkwNzkyMERGCis6MTAyRjA0MDBFMDY0MDU2MDAyRTE4RDdCMDE5MDc5NUMwNEYwQTM3NEI4Cis6MTAyRjE0MDA3OEYwQTM3NEIyRjA3NTMzMDc5MDc5NUNFMEZCQTNFMDFBCis6MTAyRjI0MDBGQUEzRTBGOTkwMDAwMTEyMEM1RDcwMEY5MDAwMDQxMkY2Cis6MTAyRjM0MDAwQzVEOTA3OTJGRjAxMjBDMjk4MDA2OTA3OTJGNzRGRjg0Cis6MTAyRjQ0MDBGMEU0RjUzNTc1MjIwMTc1MzQwMkU1MjI2NDAxNzAzOTI3Cis6MTAyRjU0MDA5MDdGQTVFMDQ0ODBGMDkwN0ZBNkU1MzZGMDEyNDZDMDRECis6MTAyRjY0MDBBRjM0MDUzNDkwN0ZBNkVGRjAxMjQ2QzA5MDc5MkZFMDdECis6MTAyRjc0MDA5MDdGQTZGMDEyNDZDMDkwN0ZBNTc0NDBGMDEyMEFDRDRGCis6MTAyRjg0MDAwNTM1RTUzNUMzOTQwNjQwQzE5MDc5MjBFMDY0MDY3MEE4Cis6MTAyRjk0MDA0OTdCMDE5MDc5NUYwNEYwQTM3NDc4RjBBMzc0RkZGMDg3Cis6MTAyRkE0MDA3NTMzMDM5MDc5NUZFMEZCQTNFMEZBQTNFMEY5OTAwMEE2Cis6MTAyRkI0MDAwMTEyMEM1RDcwMUM5MDAwMDQxMjBDNUQ5MDc5MzNGMENBCis6MTAyRkM0MDA3MDAzNzRGRkYwOTA3OTMzRTA1NDdGRkZGMDI1RTBGMDU0Cis6MEEyRkQ0MDA4MDA1RTQ5MDc5MzNGMDEyNDdERjI2Cis6MDEyRkRFMDAyMkQwCis6MTAyRkRGMDA5MDc5Nzg3NDAzRjA5MDc5ODNFMDkwNzk3OUYwQTJBRkNCCis6MTAyRkVGMDBFNDMzRjUxMkMyQUYxMjBCQTJFNTEyNjAwMkQyQUYyMjg4Cis6MDEyRkZGMDAyMkFGCis6MTAzMDAwMDBFNEZFOTA3OTIwRTBGREI0MDUxMTkwNzgyNTc0MDFGMDdDCis6MTAzMDEwMDBBMzc0NzhGMEEzNzRCMkYwNzUzNTA3RURCNDA2MTE5MDdGCis6MTAzMDIwMDA3ODI1NzQwMUYwQTM3NDc4RjBBMzc0RkZGMDc1MzUwMzZDCis6MTAzMDMwMDA5MDdGRUJFMDE0NjAxMTE0NjA1QjI0MDI2MDAyNDEwNTk0Cis6MTAzMDQwMDA5MDdGQjRFMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzAzRDVFCis6MTAzMDUwMDBFNEZGRUZDMzk1MzU1MDJGOTA3ODI1RTBGQkEzRTBGQTBECis6MTAzMDYwMDBBM0UwRjk5MDAwMDExMjBDNURGRENDRUVDQzBFNzQwMEQzCis6MTAzMDcwMDAyQ0Y1ODJFNDM0N0ZGNTgzRURGMDkwNzgyNkU0NzVGMDRBCis6MTAzMDgwMDAwQjEyMENGNDBGODBDQjkwN0ZCNUVFRjAyMjkwN0ZCNDQyCis6MTAzMDkwMDBFMDQ0MDFGMDIyOTA3RkU5RTAyNDdFNjA2NDE0NzAwMjM1Cis6MTAzMEEwMDAyMTU1MTQ3MDAyMjFBOTI0MDM2MDAyMjFGREU0RkZFRkUxCis6MTAzMEIwMDBDMzk1MzU1MDQ2OTA3ODI1RTBGQkEzRTBGQUEzRTBGOUVDCis6MTAzMEMwMDA5MDAwMDMxMjBDNURGRENDRUVDQzBFNzQwMDJDRjU4MjRBCis6MTAzMEQwMDBFNDM0N0ZGNTgzRURGMDkwMDAwNDEyMEM1REZEQ0NFRTNFCis6MTAzMEUwMDBDQzBFNzQwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTA3OEZCCis6MTAzMEYwMDAyNkU0NzVGMDBCMTIwQ0Y0MEY4MEI0OTA3RkI1RUVGMDVGCis6MTAzMTAwMDAyMkU0RkZFRkMzOTUzNTUwNDY5MDc4MjVFMEZCQTNFMDFECis6MTAzMTEwMDBGQUEzRTBGOTkwMDAwNTEyMEM1REZEQ0NFRUNDMEU3NDI0Cis6MTAzMTIwMDAwMDJDRjU4MkU0MzQ3RkY1ODNFREYwOTAwMDA2MTIwQzVDCis6MTAzMTMwMDA1REZEQ0NFRUNDMEU3NDAwMkNGNTgyRTQzNDdGRjU4MzdCCis6MTAzMTQwMDBFREYwOTA3ODI2RTQ3NUYwMEIxMjBDRjQwRjgwQjQ5MDNCCis6MTAzMTUwMDA3RkI1RUVGMDIyRTRGRkVGQzM5NTM1NTA0NjkwNzgyNTE5Cis6MTAzMTYwMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDA3MTIwQzVERkRDQ0IwCis6MTAzMTcwMDBFRUNDMEU3NDAwMkNGNTgyRTQzNDdGRjU4M0VERjA5MEY0Cis6MTAzMTgwMDAwMDA4MTIwQzVERkRDQ0VFQ0MwRTc0MDAyQ0Y1ODJFNDMwCis6MTAzMTkwMDAzNDdGRjU4M0VERjA5MDc4MjZFNDc1RjAwQjEyMENGNDkzCis6MTAzMUEwMDAwRjgwQjQ5MDdGQjVFRUYwMjJFNEZGRUZDMzk1MzU1MDY5Cis6MTAzMUIwMDA0NjkwNzgyNUUwRkJBM0UwRkFBM0UwRjk5MDAwMDkxMjFECis6MTAzMUMwMDAwQzVERkRDQ0VFQ0MwRTc0MDAyQ0Y1ODJFNDM0N0ZGNTYyCis6MTAzMUQwMDA4M0VERjA5MDAwMEExMjBDNURGRENDRUVDQzBFNzQwMDc1Cis6MTAzMUUwMDAyQ0Y1ODJFNDM0N0ZGNTgzRURGMDkwNzgyNkU0NzVGMEQ5Cis6MTAzMUYwMDAwQjEyMENGNDBGODBCNDkwN0ZCNUVFRjAyMjkwN0ZCNEU4Cis6MEMzMjAwMDBFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjBCMworOjAxMzIwQzAwMjI5RgorOjEwMzIwRDAwN0IwMTdBNzg3OTJCOTA3ODAwRUJGMEEzRUFGMEEzRTlCMworOjEwMzIxRDAwRjA3NDAxMTIwQzhBOTA3ODAwRTBGQkEzRTBGQUEzRTBCMQorOjEwMzIyRDAwRjk5MDAwMDE3NDAxMTIwQzlDOTAwMDAyRTQxMjBDOUNBOAorOjEwMzIzRDAwOTA3ODAxRTQ3NUYwMDMxMjBDRjQ5MDc4MDBFMEZCQTM5NAorOjEwMzI0RDAwRTBGQUEzRTBGOTc0MTAxMjBDOEE5MDc4MDBFMEZCQTM2OQorOjEwMzI1RDAwRTBGQUEzRTBGOTkwMDAwMTc0MDUxMjBDOUM5MDAwMDJCNQorOjEwMzI2RDAwRTQxMjBDOUM5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzg0NAorOjEwMzI3RDAwMDBFMEZCQTNFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzg0NworOjEwMzI4RDAwMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwMjEyMEMzOAorOjEwMzI5RDAwOUM5MDAwMDJFNDEyMEM5QzkwNzgwMUU0NzVGMDAzMTJFRQorOjEwMzJBRDAwMENGNDkwNzgwMEUwRkJBM0UwRkFBM0UwRjk3NDAxMTJBRQorOjEwMzJCRDAwMEM4QTkwNzgwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDFGRQorOjEwMzJDRDAwNzQwMzEyMEM5QzkwMDAwMkU0MTIwQzlDOTA3ODAxRTRBMworOjEwMzJERDAwNzVGMDAzMTIwQ0Y0OTA3ODAwRTBGQkEzRTBGQUEzRTA4NAorOjEwMzJFRDAwRjk3NDEwMTIwQzhBOTA3ODAwRTBGQkEzRTBGQUEzRTBDOQorOjEwMzJGRDAwRjk5MDAwMDE3NDA2MTIwQzlDOTAwMDAyRTQxMjBDOUNEMworOjEwMzMwRDAwOTA3ODAxRTQ3NUYwMDMxMjBDRjQ5MDc4MDBFMEZCQTNDMworOjEwMzMxRDAwRTBGQUEzRTBGOTc0MDIxMjBDOEE5MDc4MDBFMEZCQTNBNgorOjEwMzMyRDAwRTBGQUEzRTBGOTkwMDAwMTc0MDQxMjBDOUM5MDAwMDJFNQorOjEwMzMzRDAwRTQxMjBDOUM5MDc4MDFFNDc1RjAwMzEyMENGNDkwNzg3MworOjEwMzM0RDAwMDBFMEZCQTNFMEZBQTNFMEY5NzQwMjEyMEM4QTkwNzg3NgorOjEwMzM1RDAwMDBFMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQwNDEyMEM2NQorOjEwMzM2RDAwOUM5MDAwMDI3NDA0MTIwQzlDOTA3ODAxRTQ3NUYwMDM5QgorOjEwMzM3RDAwMTIwQ0Y0OTA3ODAwRTBGQkEzRTBGQUEzRTBGOTc0MDJEQworOjEwMzM4RDAwMTIwQzhBOTA3ODAwRTBGQkEzRTBGQUEzRTBGOTkwMDAxQworOjEwMzM5RDAwMDE3NDAzMTIwQzlDOTAwMDAyNzQwNDEyMEM5QzkwNzgyMgorOjEwMzNBRDAwMDFFNDc1RjAwMzEyMENGNDkwNzgwMEUwRkJBM0UwRkE1MQorOjEwMzNCRDAwQTNFMEY5NzQwMjEyMEM4QTkwNzgwMEUwRkJBM0UwRkEwNgorOjEwMzNDRDAwQTNFMEY5OTAwMDAxNzQwMjEyMEM5QzkwMDAwMjc0MDRBOQorOjEwMzNERDAwMTIwQzlDOTA3ODAxRTQ3NUYwMDMxMjBDRjQ5MDc4MDBCNworOjEwMzNFRDAwRTBGQkEzRTBGQUEzRTBGOTc0MDIxMjBDOEE5MDc4MDBENgorOjEwMzNGRDAwRTBGQkEzRTBGQUEzRTBGOTkwMDAwMTc0MDExMjBDOUMyQworOjA4MzQwRDAwOTAwMDAyNzQwNDEyMEM5Q0YzCis6MDEzNDE1MDAyMjk0Cis6MTAzNDE2MDBFNEZFOTA3OTIwRTBGREI0MDUxMTkwNzgxRjc0MDFGMDY4Cis6MTAzNDI2MDBBMzc0NzhGMEEzNzRCMkYwNzUzNTA3RURCNDA2MTE5MDY1Cis6MTAzNDM2MDA3ODFGNzQwMUYwQTM3NDc4RjBBMzc0RkZGMDc1MzUwMzU4Cis6MTAzNDQ2MDA5MDc5OTlFMDE0NjAxMTE0NjA1QjI0MDI2MDAyQzEwNjUxCis6MTAzNDU2MDA5MDdGQjRFMDQ0MDFGMDIyOTA3OTk3RTAxNDcwM0VFNDQ2Cis6MTAzNDY2MDBGRkVGQzM5NTM1NTAyRkNERUVDRDBFNzQyMTJERjU4MjhECis6MTAzNDc2MDBFNDM0NzlGNTgzRTBGRDkwNzgxRkUwRkJBM0UwRkFBMzNFCis6MTAzNDg2MDBFMEY5OTAwMDAxRUQxMjBDOUM5MDc4MjBFNDc1RjAwQkE5Cis6MTAzNDk2MDAxMjBDRjQwRjgwQ0I5MDc5NzU3NDAxRjAyMjkwN0ZCNEYyCis6MTAzNEE2MDBFMDQ0MDFGMDIyOTA3OTk3RTAyNEZFNjA2MzE0NzAwMkY0Cis6MTAzNEI2MDBBMTY0MTQ3MDAyQTFCMjI0MDM2MDAyQTFGRUU0RkZFRjJFCis6MTAzNEM2MDBDMzk1MzU1MDQ0Q0RFRUNEMEU3NDIxMkRGNTgyRTQzNEVFCis6MTAzNEQ2MDA3OUY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQUEzRTBGOTFECis6MTAzNEU2MDA5MDAwMDNFRDEyMEM5Q0NERUVDRDBFNzQyMTJERjU4MkNECis6MTAzNEY2MDBFNDM0NzlGNTgzRTA5MDAwMDQxMjBDOUM5MDc4MjBFNDgzCis6MTAzNTA2MDA3NUYwMEIxMjBDRjQwRjgwQjY5MDc5NzU3NDAxRjAyMkU5Cis6MTAzNTE2MDBFNEZGRUZDMzk1MzU0MDAyQzEwRENERUVDRDBFNzQyMTBCCis6MTAzNTI2MDAyREY1ODJFNDM0NzlGNTgzRTBGRDkwNzgxRkUwRkJBMzY2Cis6MTAzNTM2MDBFMEZBQTNFMEY5OTAwMDA1RUQxMjBDOUNDREVFQ0QwRTVECis6MTAzNTQ2MDA3NDIxMkRGNTgyRTQzNDc5RjU4M0UwOTAwMDA2MTIwQzlGCis6MTAzNTU2MDA5QzkwNzgyMEU0NzVGMDBCMTIwQ0Y0MEY4MEI0RTRGRjE1Cis6MTAzNTY2MDBFRkMzOTUzNTQwMDJDMTBEQ0RFRUNEMEU3NDIxMkRGNTdDCis6MTAzNTc2MDA4MkU0MzQ3OUY1ODNFMEZEOTA3ODFGRTBGQkEzRTBGQTVFCis6MTAzNTg2MDBBM0UwRjk5MDAwMDdFRDEyMEM5Q0NERUVDRDBFNzQyMTUwCis6MTAzNTk2MDAyREY1ODJFNDM0NzlGNTgzRTA5MDAwMDgxMjBDOUM5MEI2Cis6MTAzNUE2MDA3ODIwRTQ3NUYwMEIxMjBDRjQwRjgwQjRFNEZGRUZDMzNGCis6MTAzNUI2MDA5NTM1NTA1M0NERUVDRDBFNzQyMTJERjU4MkU0MzQ3OTM4Cis6MTAzNUM2MDBGNTgzRTBGRDkwNzgxRkUwRkJBM0UwRkFBM0UwRjk5MDE1Cis6MTAzNUQ2MDAwMDA5RUQxMjBDOUNDREVFQ0QwRTc0MjEyREY1ODJFNDgyCis6MTAzNUU2MDAzNDc5RjU4M0UwOTAwMDBBMTIwQzlDOTA3ODIwRTQ3NUZCCis6MTAzNUY2MDBGMDBCMTIwQ0Y0MEY4MEI2OTA3RkI0RTA0NDAxRjAyMjc5Cis6MDczNjA2MDA5MDdGQjRFMDQ0MDFGMEU1Cis6MDEzNjBEMDAyMjlBCis6MTAzNjBFMDBFNEZFOTA3OTIwRTBGREI0MDUxMDkwNzgyODc0MDFGMDY2Cis6MTAzNjFFMDBBMzc0NzhGMEEzNzRCMkYwN0YwN0VEQjQwNjEwOTA3ODFGCis6MTAzNjJFMDAyODc0MDFGMEEzNzQ3OEYwQTM3NEZGRjA3RjAzOTA3OEYwCis6MTAzNjNFMDAyOEUwRkJBM0UwRkFBM0UwRjkxMjBDNDRGRDkwN0ZFQTI4Cis6MTAzNjRFMDBFMDZENjAxMkVFQzM5RjUwMEQ5MDc4MjlFNDc1RjAwQjdCCis6MTAzNjVFMDAxMjBDRjQwRTgwRDg5MDdGRUJFMDE0NjAxMTE0NjA0NkNCCis6MTAzNjZFMDAyNDAyNjAwMkUxOUE5MDdGQjRFMDQ0MDFGMDIyOTA3RjQwCis6MTAzNjdFMDBFOUUwMjQ3RjcwMjhFRTZGNzAwODkwN0ZCNEUwNDQwMTdCCis6MTAzNjhFMDBGMDIyOTA3ODI4RTBGQkEzRTBGQUEzRTBGOTkwMDAwMTg1Cis6MTAzNjlFMDAxMjBDNUQ5MDdGMDBGMDkwN0ZCNTc0MDFGMDIyOTA3RjQ4Cis6MTAzNkFFMDBCNEUwNDQwMUYwMjI5MDdGRTlFMDI0N0U2MDQwMTQ2MDkzCis6MTAzNkJFMDA2RjE0NzAwMkUxNjAyNDAzNjAwMkUxOTJFRTZGNzAwOEY1Cis6MTAzNkNFMDA5MDdGQjRFMDQ0MDFGMDIyOTA3ODI4RTBGQkEzRTBGQTZBCis6MTAzNkRFMDBBM0UwRjk5MDAwMDMxMjBDNUQ5MDdGMDBGMDkwMDAwNEJGCis6MTAzNkVFMDAxMjBDNUQ5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyRUU2RkE4Cis6MTAzNkZFMDA3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzgyOEUwRkJBMzlDCis6MTAzNzBFMDBFMEZBQTNFMEY5OTAwMDA1MTIwQzVEOTA3RjAwRjA5MEI2Cis6MTAzNzFFMDAwMDA2MTIwQzVEOTA3RjAxRjA5MDdGQjU3NDAyRjAyMkNFCis6MTAzNzJFMDBFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDc4MjhFMEFDCis6MTAzNzNFMDBGQkEzRTBGQUEzRTBGOTkwMDAwNzEyMEM1RDkwN0YwMDY2Cis6MTAzNzRFMDBGMDkwMDAwODEyMEM1RDkwN0YwMUYwOTA3RkI1NzQwMjJFCis6MTAzNzVFMDBGMDIyRUU2RjcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3ODcyCis6MTAzNzZFMDAyOEUwRkJBM0UwRkFBM0UwRjk5MDAwMDkxMjBDNUQ5MEFCCis6MTAzNzdFMDA3RjAwRjA5MDAwMEExMjBDNUQ5MDdGMDFGMDkwN0ZCNUYzCis6MTAzNzhFMDA3NDAyRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDA2Cis6MDMzNzlFMDA0NDAxRjBGMworOjAxMzdBMTAwMjIwNQorOjEwMzdBMjAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTBBMQorOjEwMzdCMjAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUY1QworOjEwMzdDMjAwQzBFMDUzOTFFRjkwN0ZBQjc0MTBGMDkwNzk4M0UwNTQ5NgorOjEwMzdEMjAwRkRGMDEyMkZERkQwRTBGRkQwRTBGRUQwRTBGREQwRTAyMAorOjEwMzdFMjAwRkNEMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDBDNQorOjA4MzdGMjAwODJEMDgzRDBGMEQwRTAzMjU4Cis6MDYzN0ZBMDA1MzkxQkZEMjI2MzJGQworOjEwMzgwMDAwRTRGRTkwNzkyMEUwRkRCNDA1MTA5MDc4MjI3NDAxRjA3OAorOjEwMzgxMDAwQTM3NDc4RjBBMzc0QjJGMDdGMDdFREI0MDYxMDkwNzgyQgorOjEwMzgyMDAwMjI3NDAxRjBBMzc0NzhGMEEzNzRGRkYwN0YwMzkwNzgwMgorOjEwMzgzMDAwMjJFMEZCQTNFMEZBQTNFMEY5MTIwQzQ0RkQ5MDc5OTg5MgorOjEwMzg0MDAwRTA2RDYwMTJFRUMzOUY1MDBEOTA3ODIzRTQ3NUYwMEI4RAorOjEwMzg1MDAwMTIwQ0Y0MEU4MEQ4OTA3OTk5RTAxNDYwMTExNDYwNDgyRAorOjEwMzg2MDAwMjQwMjYwMDIyMTg1OTA3RkI0RTA0NDAxRjAyMjkwNzkyNworOjEwMzg3MDAwOTdFMDE0NzAyQkVFNkY3MDA5OTA3RkI0RTA0NDAxRjA3NAorOjEwMzg4MDAwODAxNzkwNzkyMUUwRkQ5MDc4MjJFMEZCQTNFMEZBQTM3NQorOjEwMzg5MDAwRTBGOTkwMDAwMUVEMTIwQzlDOTA3OTc1NzQwMUYwMjIxMgorOjEwMzhBMDAwOTA3RkI0RTA0NDAxRjAyMjkwNzk5N0UwMjRGRTYwNDNEOQorOjEwMzhCMDAwMTQ2MDZFMTQ3MDAyMjE0RjI0MDM2MDAyMjE3REVFNkZBQworOjEwMzhDMDAwNzAwOTkwN0ZCNEUwNDQwMUYwODAyMTkwNzkyMUUwRkRGRgorOjEwMzhEMDAwOTA3ODIyRTBGQkEzRTBGQUEzRTBGOTkwMDAwM0VEMTI1OAorOjEwMzhFMDAwMEM5QzkwNzkyMkUwOTAwMDA0MTIwQzlDOTA3OTc1NzRFNQorOjEwMzhGMDAwMDFGMDIyRUU2RjcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA1NgorOjEwMzkwMDAwNzkyMUUwRkQ5MDc4MjJFMEZCQTNFMEZBQTNFMEY5OTBCMgorOjEwMzkxMDAwMDAwNUVEMTIwQzlDOTA3OTIyRTA5MDAwMDYxMjBDOUNBMAorOjEwMzkyMDAwMjJFRTZGNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDc5MjE3QworOjEwMzkzMDAwRTBGRDkwNzgyMkUwRkJBM0UwRkFBM0UwRjk5MDAwMDcxNQorOjEwMzk0MDAwRUQxMjBDOUM5MDc5MjJFMDkwMDAwODEyMEM5QzIyRUU2MworOjEwMzk1MDAwNkY3MDA4OTA3RkI0RTA0NDAxRjAyMjkwNzkyMUUwRkU3RQorOjEwMzk2MDAwOTA3ODIyRTBGQkEzRTBGQUEzRTBGOTkwMDAwOUVFMTJDMAorOjEwMzk3MDAwMEM5QzkwNzkyMkUwOTAwMDBBMTIwQzlDMjI5MDdGQjQ1QgorOjBDMzk4MDAwRTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMkMKKzowMTM5OEMwMDIyMTgKKzoxMDM5OEQwMEEyQUZFNDMzRjUxMkU0OTA3OTgzRjAxMjJGREY5MDdGMkMKKzoxMDM5OUQwMEUwNzQ5MEYwOTA3RkUxNzQwNEYwRTQ5MDdGRERGMDkwOUUKKzoxMDM5QUQwMDdGQTFGMDUzOEVGODc1ODgwNTc1QjgyMDc1RjgwMTQzMjEKKzoxMDM5QkQwMDhFMzBGNUM4NzVDQTdGNzVDQkY4NDNBODIwOTA3OTc0MDEKKzoxMDM5Q0QwMDA0RjBDMjIyRTRGNTBGOTA3OTc4RjBBM0YwOTA3OTYyQkIKKzoxMDM5REQwMEYwQTNGMEEzRjA5MDc5NjZGMEEzRjA5MDc5N0JGMEEzQkIKKzoxMDM5RUQwMEYwOTA3OTg0RjA5MDc5N0RGMDkwNzk3NUYwQTNGMEEzNDMKKzoxMDM5RkQwMEYwQzIyM0MyMjRDMjI1QzIyNkMyMjA5MDdGOUJFMEY1Q0YKKzoxMDNBMEQwMDBBNTQyMEY1MEE3MDA2OTA3OTdFRjA4MDA2OTA3OTdFMzIKKzoxMDNBMUQwMDc0MDFGMDkwN0Y5QkUwRjUwQTU0MDJGNTBBNzAwNjkwNTAKKzoxMDNBMkQwMDc5N0ZGMDgwMDY5MDc5N0Y3NDAxRjA5MDc5Nzg3NDAyMzcKKzoxMDNBM0QwMEYwOTA3OTg0RTA5MDc5NzlGMDkwNzk3RkUwQjQwMTA5ODQKKzoxMDNBNEQwMDkwNzk3OUUwNTRGRUYwODAwNzkwNzk3OUUwNDQwMUYwQTcKKzoxMDNBNUQwMDkwNzk3OUUwOTA3OTg0RjAxMjBCQTI5MDc5Nzg3NDAxQzUKKzoxMDNBNkQwMEYwOTA3OTdDRTA5MDc5NzlGMDkwNzk3RUUwQjQwMTA5NUQKKzoxMDNBN0QwMDkwNzk3OUUwNDQwNEYwODAwNzkwNzk3OUUwNTRGQkYwNzcKKzoxMDNBOEQwMDkwNzk3OUUwOTA3OTdDRjAxMjBCQTJFNDkwNzk3OEYwM0UKKzoxMDNBOUQwMEEzMDRGMEU0OTA3OTg4RjAxMjBCQTI5MDdGRkM3NEREMDIKKzoxMDNBQUQwMEYwOTA3RkZGNzRGRkYwOTA3OTc4NzQwMUYwQTNGMDEyMUQKKzoxMDNBQkQwMDBCQTJFNDkwNzk3QUYwOTA3OTgzMDRGMDEyMkZERkU0NzEKKzoxMDNBQ0QwMDkwNzkzMEYwOTA3OTg1RjBBM0YwQTNGMDEyMkU5NDkwQjgKKzoxMDNBREQwMDc5MkQ3NDAyRjA5MDc5ODgxNEYwQzIyRkU0OTA3OTY4RjIKKzoxMDNBRUQwMEYwOTA3OThBRjA5MDc5NkFGMEEzRjA3NTEzMDg3NTE0NDcKKzoxMDNBRkQwMDA4RjUxNkY1MTVGNTE3OTA3OThDRjA5MDc5OEJGMDIyNjUKKzoxMDNCMEQwMDdCMDE3QTc4Nzk1ODkwNzgwM0VCRjBBM0VBRjBBM0U5N0EKKzoxMDNCMUQwMEYwNzQ0MDEyMEM4QTkwNzgwM0UwRkJBM0UwRkFBM0UwNjYKKzoxMDNCMkQwMEY5OTAwMDAxNzQwQTEyMEM5QzkwMDAwMjEyMERGNjAwMUYKKzoxMDNCM0QwMDAwQkI4MDkwMDAwNjEyMERGNjAwMDBBQzQ0OTAwMDBBMDgKKzoxMDNCNEQwMDEyMERGNjAwMDE3NzAwOTA3ODA0RTQ3NUYwMEYxMjBDNTkKKzoxMDNCNUQwMEY0OTA3ODAzRTBGQkEzRTBGQUEzRTBGOTc0NDAxMjBDQjMKKzoxMDNCNkQwMDhBOTA3ODAzRTBGQkEzRTBGQUEzRTBGOTkwMDAwMTc0REEKKzoxMDNCN0QwMDhDMTIwQzlDOTAwMDAyMTIwREY2MDAwMEJCODA5MDAwODAKKzoxMDNCOEQwMDA2MTIwREY2MDAwMEFDNDQ5MDAwMEExMjBERjYwMDAxNkQKKzoxMDNCOUQwMDc3MDA5MDc4MDRFNDc1RjAwRjEyMENGNDkwNzgwM0UwNDAKKzoxMDNCQUQwMEZCQTNFMEZBQTNFMEY5NzQ0MDEyMEM4QTkwNzgwM0UwQ0QKKzoxMDNCQkQwMEZCQTNFMEZBQTNFMEY5OTAwMDAxNzQ4RjEyMEM5QzkwMjYKKzoxMDNCQ0QwMDc4MDRFNDc1RjAwRjEyMENGNDkwNzgwM0UwRkJBM0UwOTkKKzoxMDNCREQwMEZBQTNFMEY5NzQ0MTEyMEM4QTkwNzgwM0UwRkJBM0UwOUMKKzoxMDNCRUQwMEZBQTNFMEY5OTAwMDAxNzQ4NDEyMEM5QzkwNzgwNEU0MUYKKzoxMDNCRkQwMDc1RjAwRjEyMENGNDkwNzgwM0UwRkJBM0UwRkFBM0UwNEMKKzoxMDNDMEQwMEY5NzQ2MTEyMEM4QTkwNzgwM0UwRkJBM0UwRkFBM0UwNEIKKzoxMDNDMUQwMEY5OTAwMDAxNzQ4MTEyMEM5QzkwNzgwNEU0NzVGMDBGRkEKKzoxMDNDMkQwMDEyMENGNDkwNzgwM0UwRkJBM0UwRkFBM0UwRjk3NDYxQzEKKzoxMDNDM0QwMDEyMEM4QTkwNzgwM0UwRkJBM0UwRkFBM0UwRjk5MDAwNjAKKzowNjNDNEQwMDAxNzQwMTEyMEM5QzQxCis6MDEzQzUzMDAyMjRFCis6MTAzQzU0MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMEVBCis6MTAzQzY0MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkE1Cis6MDIzQzc0MDBDMEUwQUUKKzoxMDNDNzYwMDkwN0ZBMkUwRjUwQjkwN0Y3NEUwOTA3OTcwRjA5MDdGRDIKKzoxMDNDODYwMDc1RTA5MDc5NzFGMDkwNzk4M0UwRkZGRTU0MDJGRTcwNDIKKzoxMDNDOTYwMDBERUY0NDAyRjAxMjJGREY5MDc5NzQ3NDAxRjBFNTBCRkEKKzoxMDNDQTYwMDIwRTIyODkwNzk3MEUwRkVBM0UwN0MwMDI0MDBGNTExNjQKKzoxMDNDQjYwMEVDM0VGNTEwOTA3OTgyRTBGREFFMTBBRjExMTIwQ0JFMEQKKzoxMDNDQzYwMDkwNzk3MEVGRjA5MDc5ODk3NDAxRjAxMjQ4NDMxMjQ4QTgKKzoxMDNDRDYwMDc2OTA3OTg5RTA2NDAxNzAzMjEyNDEwODkwNzk4OUU0MUUKKzoxMDNDRTYwMEYwOTA3Rjk4RTA0NDQwRjA5MDdGOUVFMDQ0NDBGMDkwNTIKKzoxMDNDRjYwMDdGOTU3NDgwRjA3NUU4MDExMjA5MzI3NUU4MEQ5MDdGQTIKKzoxMDNEMDYwMDk1NzRDMEYwNzVFODBERDIyMDgwMDU3NUU4MDFDMjIwRDMKKzoxMDNEMTYwMDIwMjAyQjkwNzkyREUwRkZCNDAxMDk3NTBDNjc3NTBERjUKKzoxMDNEMjYwMDA2NzUwRTBCRUZCNDAyMDk3NTBDMDA3NTBEMDA3NTBFQzUKKzoxMDNEMzYwMDBDRUZCNDAzMDk3NTBDMDA3NTBEMDA3NTBFMTg3NUNBRTUKKzoxMDNENDYwMDZGNzVDQkZFRDJDQTUzOTFFRjkwN0ZBQjc0MDJGMEYwNDEKKzoxMDNENTYwMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwMkMKKzoxMDNENjYwMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwMUQKKzowMzNENzYwMEQwRTAzMjY4Cis6MTAzRDc5MDA3NTMzMjU3NTM0MjQ5MDc5NUM3NDAxRjBBMzc0NzhGMDU3Cis6MTAzRDg5MDBBMzc0QjJGMDIwMkYwMkMxMTdFNEY1MzU3NTIyMDE5MDEyCis6MTAzRDk5MDA3OTVDRTBGQkEzRTBGQUEzRTBGOTkwMDAwNDEyMEM1RDYyCis6MTAzREE5MDBGNTM2NzUzNTA2NzQ0MjI1MzVGNTgyRTQzNDc5RjU4MzlGCis6MTAzREI5MDBFNTM2RjAwNTM1RTUzNUI0MENFQkU1MzVDMzk0MEQ0MDMyCis6MTAzREM5MDAwMkMxOThFNTIyNjQwMTYwMDJDMTk4OTA3RkE1RTA0NDkwCis6MTAzREQ5MDA4MEYwOTA3RkE2RTUzM0YwMTI0NkMwNzQ0RjI1MzVGNTgzCis6MTAzREU5MDA4MkU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NkMwNzQ0MkVDCis6MTAzREY5MDAyNTM1RjU4MkU0MzQ3OUY1ODNFMDkwN0ZBNkYwMTI0NjAzCis6MTAzRTA5MDBDMDkwN0ZBNTc0NDBGMDEyMEFDRDA1MzU4MEFDRTRGNTY5Cis6MTAzRTE5MDAzNTc1MjIwMTkwNzk1Q0UwRkJBM0UwRkFBM0UwRjk5MDAzCis6MTAzRTI5MDAwMDA0MTIwQzVERjUzNjc1MzUwNjc0MzUyNTM1RjU4MkI1Cis6MTAzRTM5MDBFNDM0NzlGNTgzRTUzNkYwMDUzNUU1MzVCNDBDRUJFNTgxCis6MTAzRTQ5MDAzNUMzOTQwRDUwNDlFNTIyNjQwMTcwNDM5MDdGQTVFMDg0Cis6MTAzRTU5MDA0NDgwRjA5MDdGQTZFNTMzRjAxMjQ2QzA3NDRGMjUzNUIzCis6MTAzRTY5MDBGNTgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjQ2QzA3NEI4Cis6MTAzRTc5MDAzNTI1MzVGNTgyRTQzNDc5RjU4M0UwOTA3RkE2RjAxMjkzCis6MEYzRTg5MDA0NkMwOTA3RkE1NzQ0MEYwMTIwQUNEMDUzNTgwQjA3OQorOjAxM0U5ODAwMjIwNworOjEwM0U5OTAwOTA3ODA5NzQwMUYwQTM3NDc4RjBBMzc0QjJGMEU0RkY4OAorOjEwM0VBOTAwRkU5MDc4MDlFMEZCQTNFMEZBQTNFMEY5RUYxMjBDOEE4RgorOjEwM0VCOTAwOTA3ODA5RTBGQkEzRTBGQUEzRTBGOTkwMDAwMUU0MTI4RAorOjEwM0VDOTAwMEM5QzkwMDAwMjc0MTUxMjBDOUM5MDAwMDNFNDEyMENENworOjEwM0VEOTAwOUM5MDAwMDQ3NEZGMTIwQzlDOTAwMDA1RTQxMjBDOUM0OQorOjEwM0VFOTAwOTAwMDA2NzRDMzEyMEM5QzkwMDAwN0U0MTIwQzlDOTA3RAorOjEwM0VGOTAwMDAwOEU0MTIwQzlDOTAwMDA5RTQxMjBDOUM5MDAwMEE0MgorOjEwM0YwOTAwNzQwMTEyMEM5QzkwNzgwQUU0NzVGMDBCMTIwQ0Y0MEZGMgorOjEwM0YxOTAwMEVCRTA3OEQ5MDc4MDk3NDAxRjBBMzc0NzhGMEEzNzQyQworOjEwM0YyOTAwRkZGMEU0RkZGRTkwNzgwOUUwRkJBM0UwRkFBM0UwRjlEMworOjEwM0YzOTAwRUYxMjBDOEE5MDc4MDlFMEZCQTNFMEZBQTNFMEY5OTA2QworOjEwM0Y0OTAwMDAwMUU0MTIwQzlDOTAwMDAyNzQxNTEyMEM5QzkwMDA2NAorOjEwM0Y1OTAwMDNFNDEyMEM5QzkwMDAwNDc0ODAxMjBDOUM5MDAwMDVFMAorOjEwM0Y2OTAwRTQxMjBDOUM5MDAwMDY3NEMzMTIwQzlDOTAwMDA3RTRBOAorOjEwM0Y3OTAwMTIwQzlDOTAwMDA4RTQxMjBDOUM5MDAwMDlFNDEyMENBRAorOjEwM0Y4OTAwOUM5MDAwMEE3NDAxMTIwQzlDOTA3ODBBRTQ3NUYwMEI1RAorOjA4M0Y5OTAwMTIwQ0Y0MEYwRUJFMDM4REEzCis6MDEzRkExMDAyMkZECis6MTAzRkEyMDBFNEZFNzUzREZGNzUzRTA1NzUzRjEyQUIzREFBM0VBOTg1Cis6MTAzRkIyMDAzRjkwMDAwMTEyMEM1RDY0MDI3MDJGQ0RFRUNEMEVFRDJDCis6MTAzRkMyMDA2RjcwMDEyMjkwMDAwMjEyMEQwQTg1RjAzQkY1M0M2MkVGCis6MTAzRkQyMDAzQkU1M0I2MjNDRTUzQzYyM0IyOUZERTUzQjNBQzlFREYyCis6MTAzRkUyMDBDOTc1M0RGRkY1M0U4OTNGODBDMTdCMDA3QTAwNzkwMEFCCis6MDEzRkYyMDAyMkFDCis6MDkzRkYzMDA1M0Q4RUY0M0Q4MjBDMjJEMzI0RgorOjA0M0ZGQzAwNTM5MURGMzJDQworOjEwNDAwMDAwOTA3OTg3RTBCNDAxMUQ5MDc5ODVFMEI0MDEwMzEyNDJGNAorOjEwNDAxMDAwQUE5MDc5ODZFMEI0MDEwMzEyMTgwMEU0OTA3OTg1RjA0MworOjEwNDAyMDAwQTNGMEEzRjAxMjJFOTQ5MDdGOUJFMEY1MEE1NDAyRjVDMgorOjEwNDAzMDAwMEE3MDA0OTA3OTdGRjA5MDdGOUJFMEY1MEE1NDAyRkZBQworOjEwNDA0MDAwRjUwQUJGMDIwNjkwNzk3Rjc0MDFGMDkwN0Y5QkUwRjUzRQorOjEwNDA1MDAwMEE1NDIwRjUwQTcwMDQ5MDc5N0VGMDkwN0Y5QkUwRjU3OQorOjEwNDA2MDAwMEE1NDIwRkZGNTBBQkYyMDA2OTA3OTdFNzQwMUYwOTA3MworOjEwNDA3MDAwNzk3RkUwRkY5MDc5ODFFMDZGNjAzODkwNzk3ODc0MDIwMQorOjEwNDA4MDAwRjA5MDc5ODRFMDkwNzk3OUYwRUZCNDAxMDZFMDU0RkU4NQorOjEwNDA5MDAwRjA4MDA3OTA3OTc5RTA0NDAxRjA5MDc5NzlFMDkwNzlBNworOjEwNDBBMDAwODRGMEEyQUZFNDMzRjUxMkMyQUYxMjBCQTJFNTEyNjBBNgorOjEwNDBCMDAwMDJEMkFGOTA3OTdFRTBGRjkwNzk4MEUwNkY2MDM4OTAxNworOjEwNDBDMDAwNzk3ODc0MDFGMDkwNzk3Q0UwOTA3OTc5RjBFRkI0MDExRgorOjEwNDBEMDAwMDZFMDQ0MDRGMDgwMDc5MDc5NzlFMDU0RkJGMDkwNzk5MQorOjEwNDBFMDAwNzlFMDkwNzk3Q0YwQTJBRkU0MzNGNTEyQzJBRjEyMEIwNQorOjEwNDBGMDAwQTJFNTEyNjAwMkQyQUY5MDc5N0ZFMDkwNzk4MUYwOTBEMgorOjA4NDEwMDAwNzk3RUUwOTA3OTgwRjAyMjQ1Cis6MTA0MTA4MDA5MDc5MkRFMDY0MDE3MDM1OTA3OTcwRTBGRkQzOTQyRDlCCis6MTA0MTE4MDA0MDJCOTA3OTY5NzQwMUYwOTA3OTY4RTAwNEYwRTBEMzVECis6MTA0MTI4MDA5NDBGNDAxOUU0RjBFRkQzOTQzMTQwMDg5MDc5MkQ3NDNFCis6MTA0MTM4MDAwM0YwODAwNjkwNzkyRDc0MDJGMDEyMTAwMDkwNzkyRDBBCis6MTA0MTQ4MDBFMEI0MDIyQzkwNzk3MEUwRkZDMzk0MkY1MDIyRUZEMzkzCis6MTA0MTU4MDA5NDJBNDAxQzkwNzk2OTc0MDFGMDkwNzk2OEUwMDRGMDIxCis6MTA0MTY4MDBFMEQzOTQwRjQwMEFFNEYwOTA3OTJEMDRGMDEyMTAwMDg3Cis6MTA0MTc4MDA5MDc5MkRFMEI0MDIyNjkwNzk3MEUwRDM5NDMxNDAxREY3Cis6MTA0MTg4MDA5MDc5Njk3NDAxRjA5MDc5NjhFMDA0RjBFMEQzOTQwRkI1Cis6MTA0MTk4MDA0MDBCRTRGMDkwNzkyRDc0MDNGMDEyMTAwMDkwNzkyRDAzCis6MTA0MUE4MDBFMDY0MDM3MDNGOTA3OTcwRTBGRkMzOTQ1RjUwMzU5MEVFCis6MTA0MUI4MDA3OTY5NzQwMUYwOTA3OTY4RTAwNEYwRTBEMzk0MEY0MEQ1Cis6MTA0MUM4MDAyM0U0RjBFRkMzOTQyRjUwMENFRkQzOTQyQTQwMDY5MEM5Cis6MTA0MUQ4MDA3OTJENzQwMUYwRUZEMzk0MkY0MDA2OTA3OTJENzQwMjU1Cis6MTA0MUU4MDBGMDEyMTAwMDkwNzk2OUUwNzAwNTkwNzk2OEYwMjJFNDg3Cis6MDU0MUY4MDA5MDc5NjlGMDIyM0UKKzoxMDQxRkQwMDdCMDE3QTc4Nzk0QzkwNzgwNkVCRjBBM0VBRjBBM0U5OEQKKzoxMDQyMEQwMEYwRTQxMjBDOEE5MDc4MDZFMEZCQTNFMEZBQTNFMEY5NDMKKzoxMDQyMUQwMDkwMDAwMTc0MDExMjBDOUM5MDc4MDdFNDc1RjAwMzEyNjQKKzoxMDQyMkQwMDBDRjQ5MDc4MDZFMEZCQTNFMEZBQTNFMEY5RTQxMjBDOUQKKzoxMDQyM0QwMDhBOTA3ODA2RTBGQkEzRTBGQUEzRTBGOTkwMDAwMTc0MDAKKzoxMDQyNEQwMDAyMTIwQzlDOTA3ODA3RTQ3NUYwMDMxMjBDRjQ5MDc4MzAKKzoxMDQyNUQwMDA2RTBGQkEzRTBGQUEzRTBGOUU0MTIwQzhBOTA3ODA2REQKKzoxMDQyNkQwMEUwRkJBM0UwRkFBM0UwRjk5MDAwMDE3NDAzMTIwQzlDQUIKKzoxMDQyN0QwMDkwNzgwN0U0NzVGMDAzMTIwQ0Y0OTA3ODA2RTBGQkEzMzgKKzoxMDQyOEQwMEUwRkFBM0UwRjlFNDEyMEM4QTkwNzgwNkUwRkJBM0UwRDMKKzowQzQyOUQwMEZBQTNFMEY5OTAwMDAxNzQwNDEyMEM5Q0RDCis6MDE0MkE5MDAyMkYyCis6MTA0MkFBMDBFNEZGRkU3QjAxOTA3ODBDMDRGMEEzNzQ3OEYwQTM3NDA5Cis6MTA0MkJBMDAyQkYwOTA3ODBDRTBGQkEzRTBGQUEzRTBGOTkwMDAwMjVGCis6MTA0MkNBMDAxMjBDNURGRDkwNzk5QUUwNkQ2MDEzRUZDMzk0MDU1MDZFCis6MTA0MkRBMDAwRDBGOTA3ODBERTQ3NUYwMDMxMjBDRjQ4MEQ0OEQzMzMxCis6MTA0MkVBMDA5MDc4MENFMEZCQTNFMEZBQTNFMEY5OTAwMDAxMTIwQzJECis6MTA0MkZBMDA1REZEOTA3OTlCRTBGQzZENjAxM0VFQzM5NDBCNTAwRDRECis6MTA0MzBBMDAwRTkwNzgwREU0NzVGMDAzMTIwQ0Y0ODBEMzhDMzRFRjIwCis6MTA0MzFBMDA2NDA1NjAwM0JFMEIwODkwN0ZCNEUwNDQwMUYwMjI5MDZDCis6MTA0MzJBMDA3ODBDRTBGQkEzRTBGQUEzRTBGOTEyMEM0NEZGMjRGMEI2Cis6MTA0MzNBMDA2MDA4MjQwRTcwMEUxMjQ5NEQyMjkwNzkyMEU1MzRGMDVGCis6MEI0MzRBMDAxMjFCMkEyMjkwN0ZCNEUwNDQwMUYwMTcKKzowMTQzNTUwMDIyNDUKKzowQzQzNTYwMDc4N0ZFNEY2RDhGRDc1ODEzRjAyNDM5RDlFCis6MTA0MzYyMDAwMjQ4QTlFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjgwCis6MTA0MzcyMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzVDCis6MTA0MzgyMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjJCCis6MTA0MzkyMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTA0NjYxRTQ3RTE0Cis6MTA0M0EyMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzIwCis6MTA0M0IyMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0U3Cis6MTA0M0MyMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTEyCis6MTA0M0QyMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUNBCis6MTA0M0UyMDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDU1Cis6MTA0M0YyMDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRjEwCis6MTA0NDAyMDBDMEUwQzJDQUMyQ0Y5MDc5N0FFMEI0MDExRjEyNEJBRUFCCis6MTA0NDEyMDAxMjQ3NTg1M0E4QTA5MDdGQUVFNEYwMTIwN0FBMTI0QjlECis6MTA0NDIyMDBCNzkwN0ZBRTc0MUZGMDQzQTgwNTgwMDM1M0E4QTA1MzMyCis6MTA0NDMyMDBBOEZBNzVFODAxMTIwOTE1NzVFODBENDNBODA1RDBFMDQwCis6MTA0NDQyMDBGRkQwRTBGRUQwRTBGREQwRTBGQ0QwRTBGQkQwRTBGQTBGCis6MTA0NDUyMDBEMEUwRjlEMEUwRjhEMEQwRDA4MkQwODNEMEYwRDBFMDU0Cis6MDE0NDYyMDAzMjI3Cis6MTA0NDYzMDA5MDdGRUNFMEY1MDkxNDYwMUQxNDYwMkExNDYwMzcxNDgyCis6MTA0NDczMDA2MDQ0MjQwNDcwNTA5MDc5NjJFMDkwN0YwMEYwOTA3RjU0Cis6MTA0NDgzMDBCNTc0MDFGMDgwNDc5MDc5NjNFMDkwN0YwMEYwOTA3RkVFCis6MTA0NDkzMDBCNTc0MDFGMDgwMzc5MDc5NjRFMDkwN0YwMEYwOTA3RkVECis6MTA0NEEzMDBCNTc0MDFGMDgwMjc5MDc5NjZFMDkwN0YwMEYwOTA3RkVCCis6MTA0NEIzMDBCNTc0MDFGMDgwMTc5MDc5NjdFMDkwN0YwMEYwOTA3RkVBCis6MEY0NEMzMDBCNTc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMEQzMjI3QworOjA0NDREMjAwOEQzNjhCMzc2MQorOjEwNDRENjAwMTIzRkEyRUE0OTYwNTcxMjBDNDQ3RTAwMjlGRkVFM0FDOQorOjEwNDRFNjAwQzlFRkM5NzUzOEZGRjUzOTg5M0FBQjM4QUEzOUE5M0FGRgorOjEwNDRGNjAwOTAwMDAxMTIwQzVERkY2NDA0NjAwNUVGNjQwNTcwMkVFOAorOjEwNDUwNjAwRUZCNDA0MTU5MDAwMDIxMjBDNUQ2NTM2NzAwQjkwMDAzNgorOjEwNDUxNjAwMDMxMjBDNUQ2NTM3NzAwMTIyMTIwQzQ0N0UwMDI5RkZFMAorOjEwNDUyNjAwRUUzQUM5RUZDOTc1MzhGRkY1Mzk4OTNBODBCQzdCMDA4OAorOjA0NDUzNjAwN0EwMDc5MDA4RQorOjAxNDUzQTAwMjI1RQorOjEwNDUzQjAwRTRGRjdCMDE5MDc4MUMwNEYwQTM3NDc4RjBBMzc0NEMxNworOjEwNDU0QjAwRjA5MDc4MUNFMEZCQTNFMEZBQTNFMEY5OTAwMDAyMTJENAorOjEwNDU1QjAwMEM1REZFOTA3RkVDRTA2RTYwMTNFRkMzOTQwNDUwMEQ4NgorOjEwNDU2QjAwOTA3ODFERTQ3NUYwMDMxMjBDRjQwRjgwRDRCRjA0MDk4RQorOjEwNDU3QjAwOTA3RkI0RTA0NDAxRjA4MDE0OTA3OTIxRTBGRjkwNzhCMworOjEwNDU4QjAwMUNFMEZCQTNFMEZBQTNFMEY5RUYxMjBDOEE5MDdGQzVDNQorOjAzNDU5QjAwNzQwMUYwQjgKKzowMTQ1OUUwMDIyRkEKKzowRTQ1OUYwMEMwRTBDMDgzQzA4MkMwRDBFRUMwRTBFRkMwRTAzQworOjEwNDVBRDAwOTA3OTg1RTA2NDAxNjAwNUEzRTBCNDAxMkQ5MDc5ODdEMQorOjEwNDVCRDAwNzQwMUYwRTRGRjkwN0ZDNUUwRkVFRkMzOUU1MDFCNzRDNQorOjEwNDVDRDAwQzAyRkY1ODJFNDM0N0VGNTgzRTBGRTc0MjEyRkY1ODI1MQorOjEwNDVERDAwRTQzNDc5RjU4M0VFRjAwRjgwREI1MzkxRUY5MDdGQUFGMQorOjA0NDVFRDAwRTA0NDAxRjBCNQorOjBGNDVGMTAwRDBFMEZGRDBFMEZFRDBEMEQwODJEMDgzRDBFMDMyMzcKKzoxMDQ2MDAwMEU0RkY3QjAxOTA3ODE5MDRGMEEzNzQ3OEYwQTM3NDRDNTQKKzoxMDQ2MTAwMEYwOTA3ODE5RTBGQkEzRTBGQUEzRTBGOTkwMDAwMjEyMTEKKzoxMDQ2MjAwMDBDNURGRTkwN0ZFQ0UwNkU2MDEzRUZDMzk0MDQ1MDBEQzAKKzoxMDQ2MzAwMDkwNzgxQUU0NzVGMDAzMTIwQ0Y0MEY4MEQ0QkYwNDA4Q0MKKzoxMDQ2NDAwMDkwN0ZCNEUwNDQwMUYwMjI5MDc4MTlFMEZCQTNFMEZBRjcKKzoxMDQ2NTAwMEEzRTBGOTEyMEM0NDkwN0YwMEYwOTA3RkI1NzQwMUYwNTQKKzowMTQ2NjAwMDIyMzcKKzoxMDQ2NjEwMDAxMTgwMjAxMTkwQTAxMUMwMEMxMjhDMTI5MDExRjAxRjkKKzowRjQ2NzEwMDQ0Nzk5RjAwMDAwMDAwNDE3OUEzMDA0MTc5QTQwMDIzCis6MDQ0NjgwMDA0MTc5ODkwMEYzCis6MTA0Njg0MDAwMTIyMDE0MTc5MzFGRjQxNzkzNDAwNEQ3OTM1M0YzRkIxCis6MTA0Njk0MDAwMDA4MDAwMTAwMDAwMDAwMDAwMDE1NEQ3OTQyM0YzRjcyCis6MTA0NkE0MDAwNjA4MDQwNzAwMDAwMDAwMDAwMDE1NEQ3OTRGMEEwQUFGCis6MEI0NkI0MDAwOTAwMDEwOTAyMDMwNDA1MDYwNzA4QzUKKzowMTQ2QkYwMDAwRkEKKzoxMDQ2QzAwMDEyMEFDRDkwN0ZBNUUwRjUyMUU1MjE1NDAxRjUyMTY0ODIKKzoxMDQ2RDAwMDAxNjAyOEU1MjI2NDAxNzAyMjkwN0ZBNUUwRjUyMTU0NTUKKzoxMDQ2RTAwMDAyRjUyMTcwMDM3NTIyMDE5MDdGQTVFMEY1MjE1NDA0QTUKKzowQzQ2RjAwMEZGRjUyMUJGMDREMzc1MjIwMTgwQ0UyMjBCCis6MDQ0NkZDMDA1M0Q4RjczMjY2Cis6MTA0NzAwMDAwMjQ5RkEwMDAyM0M1NDAwMDIxN0U0MDAwMjRBMTIwMDc3Cis6MTA0NzEwMDAwMjM3QTIwMDAyNDdGRjAwMDI0QTQxMDAwMjQ1OUYwMDAzCis6MTA0NzIwMDAwMjQ5OEUwMDAyNDlBQjAwMDI0QTU4MDAwMjRBNkYwMDVCCis6MTA0NzMwMDAwMjRBODYwMDAyNEE5RDAwMDI0QUI0MDAwMjRBQ0IwMEE3Cis6MTA0NzQwMDAwMjRBRTIwMDAyNEFGOTAwMDI0QjEwMDAwMjRCMjcwMDI1Cis6MDg0NzUwMDAwMjRCM0UwMDAyNEI1NTAwMzQKKzoxMDQ3NTgwMEU1MTg3MDE0OTA3OThDRTAwNEYwOTA3OThCRTBDMzk0OUMKKzoxMDQ3NjgwMDAwNDAxNUUwMTRGMDgwMTA5MDc5OEJFMDA0RjBBM0UwOEQKKzoxMDQ3NzgwMEMzOTQwMDQwMDNFMDE0RjA5MDc5OEJFMEQzOTQxNDQwODQKKzoxMDQ3ODgwMDA0RTRGNTE4RjA5MDc5OENFMEQzOTQxNDQwMDU3NTE4N0EKKzowNDQ3OTgwMDAxRTRGMDIyMjYKKzoxMDQ3OUMwMDkwN0ZEN0UwRjUzMzkwN0ZFQ0UwRjUwOTE0NjAxMTE0QUQKKzoxMDQ3QUMwMDYwMUIyNDAyNzAyNDkwN0ZFQUUwOTA3OTYyRjA4MDIxRjMKKzoxMDQ3QkMwMDkwN0ZFQUUwOTA3OTYzRjAxMjEwMDA4MDE0OTA3RkVBMDkKKzoxMDQ3Q0MwMEUwOTA3OTY0RjAxMjI4MDE4MDA3OTA3RkI0RTA0NDAxRjYKKzowMjQ3REMwMEYwRDMxOAorOjAxNDdERTAwMjJCOAorOjEwNDdERjAwOTA3OTc4NzQwNEYwOTA3OTMzRTA5MDc5NzlGMEEyQUYwMgorOjEwNDdFRjAwRTQzM0Y1MTJDMkFGMTIwQkEyRTUxMjYwMDJEMkFGMjI3MAorOjAxNDdGRjAwMzI4NworOjAyNDgwMDAwOEYzNkYxCis6MTA0ODAyMDBFNEY1Mzc3NTM4RkY3NTM5MDc3NTNBMDFBQjM4QUEzOUJGCis6MTA0ODEyMDBBOTNBOTAwMDAxMTIwQzVEQjQwMzFGQUYzNzA1MzdFRkMwCis6MTA0ODIyMDA2NTM2NzAwMTIyMTIwQzQ0N0UwMDI5RkZFRTNBQzlFRjcwCis6MTA0ODMyMDBDOTc1MzhGRkY1Mzk4OTNBODBEMjdCMDA3QTAwNzkwMDUwCis6MDE0ODQyMDAyMjUzCis6MTA0ODQzMDAzMDI2MkZDMjI2OTA3OTJERTBGRkI0MDEwOUU0RjUwQzQwCis6MTA0ODUzMDA3NTBERjg3NTBFMEFFRkI0MDIwOUU0RjUwQzc1MERGMDQ5Cis6MTA0ODYzMDA3NTBFMEJFRkI0MDMwOUU0RjUwQzc1MERGODc1MEUxNzBGCis6MDM0ODczMDBEMjIyMjIyQworOjEwNDg3NjAwMzAyNTJGQzIyNTkwNzkyREUwRkZCNDAxMDk3NTBDQzBCMworOjEwNDg4NjAwNzUwRDE0NzUwRTBCRUZCNDAyMDlFNEY1MEM3NTBEMTBEOQorOjEwNDg5NjAwNzUwRTBDRUZCNDAzMDlFNEY1MEM3NTBEMTg3NTBFMThCQQorOjAzNDhBNjAwRDIyMjIyRjkKKzoxMDQ4QTkwMEU0RjUzMjEyMEY1MDIwMkUxMEU1MzJDMzk0MDI1MDA5NUMKKzoxMDQ4QjkwMDA1MzJEMjMwMTI0OTA1ODBFRDMwMkUwNTEyMTQ1N0MyNDcKKzowRjQ4QzkwMDJFMzAyRDA2MTIwNzlBMTI0OEQ5MTI0MDAwODBFQUFECis6MDE0OEQ4MDAyMkJECis6MTA0OEQ5MDA5MDdGRDZFMEY1MUQ1NDgwRjUxRDY0ODA3MDFEQzJBRjMwCis6MTA0OEU5MDBFMDQ0ODBGMEUwNDQwMUYwN0YwQzdFMDAxMjRCNkM5MEI0Cis6MEM0OEY5MDA3RkQ2RTA1NEZFRjA1Mzg3RkVEMkFGMjJDMQorOjEwNDkwNTAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMzAwNEUwNDRGQQorOjEwNDkxNTAwMDJGMDdGREM3RTA1MTI0QjZDOTA3RkQ2RTA1NEY3RjBGOQorOjA1NDkyNTAwRTA0NDA0RjAyMjUzCis6MTA0OTJBMDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjBBCis6MTA0OTNBMDA0NjAwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDI0Cis6MDM0OTRBMDAwMUYwMjI1NworOjEwNDk0RDAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNDUzMgorOjEwNDk1RDAwM0IyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDEwQgorOjAyNDk2RDAwRjAyMjM2Cis6MTA0OTZGMDBFNEZGNzRFODJGRjU4MkU0MzQ3RkY1ODNFMEZFNzQ5NjVDCis6MEU0OTdGMDAyRkY1ODJFNDM0NzlGNTgzRUVGMDBGQkYwOEU0RTMKKzowMTQ5OEQwMDIyMDcKKzoxMDQ5OEUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMkYwNTMKKzowRDQ5OUUwMDkwN0ZCNzc0MDNGMEQwODJEMDgzRDBFMDMyNTgKKzoxMDQ5QUIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwMzUKKzowRDQ5QkIwMDkwN0ZDNzc0MDNGMEQwODJEMDgzRDBFMDMyMkIKKzoxMDQ5QzgwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyQjkKKzowQTQ5RDgwMDRCNkM5MDdGRDZFMDU0RkVGMDIyRjUKKzoxMDQ5RTIwMEU0RjUxQTc1MUIwMTkwNzk5MTA0RjBBM0YwRTRBM0YwQTkKKzowODQ5RjIwMEEzNzQwQUYwRTRBM0YwMjIxMworOjEwNDlGQTAwQzBFMEMwODNDMDgyRDIyRTUzOTFFRjkwN0ZBQjc0MDE4NgorOjA4NEEwQTAwRjBEMDgyRDA4M0QwRTAzMjJECis6MTA0QTEyMDBDMEUwQzA4M0MwODJEMjJENTM5MUVGOTA3RkFCNzQwODY3Cis6MDg0QTIyMDBGMEQwODJEMDgzRDBFMDMyMTUKKzoxMDRBMkEwMDkwN0ZFQUUwRjUwOEU0OTA3OTYyRjBBM0YwQTNGMDkwQjEKKzowNzRBM0EwMDc5NjZGMEEzRjBEMzIyMUUKKzoxMDRBNDEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMUYwQTAKKzowNzRBNTEwMEQwODJEMDgzRDBFMDMyRDcKKzoxMDRBNTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwNEYwODYKKzowNzRBNjgwMEQwODJEMDgzRDBFMDMyQzAKKzoxMDRBNkYwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwNEYwNkUKKzowNzRBN0YwMEQwODJEMDgzRDBFMDMyQTkKKzoxMDRBODYwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwOEYwNTQKKzowNzRBOTYwMEQwODJEMDgzRDBFMDMyOTIKKzoxMDRBOUQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwOEYwM0MKKzowNzRBQUQwMEQwODJEMDgzRDBFMDMyN0IKKzoxMDRBQjQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQxMEYwMUUKKzowNzRBQzQwMEQwODJEMDgzRDBFMDMyNjQKKzoxMDRBQ0IwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQxMEYwMDYKKzowNzRBREIwMEQwODJEMDgzRDBFMDMyNEQKKzoxMDRBRTIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQyMEYwRTAKKzowNzRBRjIwMEQwODJEMDgzRDBFMDMyMzYKKzoxMDRBRjkwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQyMEYwQzgKKzowNzRCMDkwMEQwODJEMDgzRDBFMDMyMUUKKzoxMDRCMTAwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ0MEYwOTEKKzowNzRCMjAwMEQwODJEMDgzRDBFMDMyMDcKKzoxMDRCMjcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ0MEYwNzkKKzowNzRCMzcwMEQwODJEMDgzRDBFMDMyRjAKKzoxMDRCM0UwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ4MEYwMjMKKzowNzRCNEUwMEQwODJEMDgzRDBFMDMyRDkKKzoxMDRCNTUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ4MEYwMEIKKzowNzRCNjUwMEQwODJEMDgzRDBFMDMyQzIKKzoxMDRCNkMwMDhFMzM4RjM0RTUzNDE1MzRBRTMzNzAwMjE1MzM0RTYwMEEKKzowNzRCN0MwMDA1MTIwNzg5ODBFRTIyRkIKKzowRjRCODMwMDkwN0ZFQUUwQjRGRjA0MTIzMDAwMjIxMjM2MEUyMkI3Cis6MEU0QjkyMDBDMEUwQzI4QkQyMjQzMDIzMDJDMjIzRDBFMDMyMTYKKzowRTRCQTAwMDkwN0YwMEU1MDhGMDkwN0ZCNTc0MDFGMEQzMjJGRAorOjA5NEJBRTAwMzAyNDA1QzIyNDc1MTgwMTIyMEYKKzowOTRCQjcwMDMwMjMwNUMyMjNFNEY1MTgyMkE1Cis6MDc0QkMwMDA1M0MwRkU1M0MwRkQzMjlCCis6MDY0QkM3MDA1MzkxN0ZEMjI1MzI1QworOjA1NEJDRDAwQzI4OUQyMjMzMjcxCis6MDM0QkQyMDBDMjhEMzI1RgorOjAzNEJENTAwQzI4RjMyNUEKKzowMjRCRDgwMEQzMjJFNgorOjAyNEJEQTAwRDMyMkU0Cis6MDI0QkRDMDBEMzIyRTIKKzowMjRCREUwMEQzMjJFMAorOjAyNEJFMDAwRDMyMkRFCis6MDI0QkUyMDBEMzIyREMKKzowMjRCRTQwMEMzMjJFQQorOjAxNEJFNjAwMjJBQworOjAwMDAwMDAxRkYKKy8qCisgKiBUaGlzIGZpcm13YXJlIGlzIGZvciB0aGUgRW1hZ2ljIEVNSSAyfDYgQXVkaW8gSW50ZXJmYWNlCisgKgorICogVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMgQ29weXJpZ2h0IChjKSAxOTk5LTIwMDIgRW1hZ2ljCisgKiBhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQKKyAqIG9yIHB1YmxpYyBhY2Nlc3MgdG8gdGhpcyBmaXJtd2FyZSB3aGljaCBpcyBhIHRyYWRlIHNlY3JldCBvZiBFbWFnaWMsCisgKiBhbmQgd2hpY2ggbWF5IG5vdCBiZSByZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvCisgKiBhbnkgdGhpcmQgcGFydHkgd2l0aG91dCBFbWFnaWMncyB3cml0dGVuIGNvbnNlbnQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGggdGhlCisgKiBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UuIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mCisgKiBhbnkgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluIHBhcnQsCisgKiByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LgorICovCisvKgorVkVSU0lPTj0xLjAuMi45MTYKK0RBVEU9MTIuMDIuMjAwMgorKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTI2L2xvYWRlci5IRVggYi9maXJtd2FyZS9lbWkyNi9sb2FkZXIuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzQzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWkyNi9sb2FkZXIuSEVYCkBAIC0wLDAgKzEsMTE2IEBACis6MDMwMDAwMDAwMjAzMUNEQworOjAzMDA0MzAwMDIwNDAwQjQKKzoxMDAxMDAwMDkwN0ZFOUUwMjQ1QjYwNjAyNDAyNjAwMzAyMDFCRTkwRkUKKzoxMDAxMTAwMDdGRUFFMDc1MEEwMEY1MEJBM0UwRkVFNEVFNDIwQTkwRTgKKzoxMDAxMjAwMDdGRUVFMDc1MTUwMEY1MTZBM0UwRkVFNEVFNDIxNUU1NUUKKzoxMDAxMzAwMDE2NDUxNTcwMDMwMjAxQkVFNDkwN0ZDNUYwOTA3RkI0QjAKKzoxMDAxNDAwMEUwMjBFM0Y5OTA3RkM1RTBGNTBDMTIwMjc3QUYwQzdFNUEKKzoxMDAxNTAwMDAwRUYyNTBCRjUwQkVFMzUwQUY1MEFDM0U1MTY5RkY1MDIKKzoxMDAxNjAwMDE2RTUxNTlFRjUxNTgwQzc5MDdGRUFFMDc1MEEwMEY1NDMKKzoxMDAxNzAwMDBCQTNFMEZFRTRFRTQyMEE5MDdGRUVFMDc1MTUwMEY1NzkKKzoxMDAxODAwMDE2QTNFMEZFRTRFRTQyMTVFNTE2NDUxNTYwMzBFNDkwNTYKKzoxMDAxOTAwMDdGQzVGMDkwN0ZCNEUwMjBFM0Y5OTA3RkM1RTBGNTBDRDcKKzoxMDAxQTAwMDEyMDI4RkFGMEM3RTAwRUYyNTBCRjUwQkVFMzUwQUY1MzIKKzowRjAxQjAwMDBBQzNFNTE2OUZGNTE2RTUxNTlFRjUxNTgwQ0FDMzFGCis6MDEwMUJGMDAyMjFECis6MTAwMUMwMDBDMjIwRDJFODQzRDgyMDkwN0ZBQjc0RkZGMDkwN0ZBOTgzCis6MTAwMUQwMDBGMDkwN0ZBQUYwNTM5MUVGOTA3Rjk1RTA0NEMwRjA5MEFCCis6MTAwMUUwMDA3Rjk4RTA0NEMwRjA5MDdGOUVFMDQ0QzBGMEU0OTA3RkIwCis6MTAwMUYwMDA5NEYwOTA3RjlERTA0NDBGRjA5MDdGOTdFMDU0RjBGMEYyCis6MTAwMjAwMDA5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkJDCis6MTAwMjEwMDA5MDdGOTdFMDU0RjBGMDIwMjA0Mjc1MTQwMDc1MTMwMDkxCis6MTAwMjIwMDA3NTEyMDA3NTExMDA3RjQ4N0U5MjdEMDA3QzAwQUIxNDMyCis6MTAwMjMwMDBBQTEzQTkxMkE4MTFDMzEyMDQ5QTUwREIyMDIwRDg3QTVECis6MTAwMjQwMDAwMDc5MDA3ODAwRTUxNDI0MDFGNTE0RUEzNTEzRjUxMzVDCis6MTAwMjUwMDBFOTM1MTJGNTEyRTgzNTExRjUxMTgwQ0EzMDIwRkQxMjhBCis6MTAwMjYwMDAwMTAwNTAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDc3Cis6MDYwMjcwMDAwMkYwQzIyMDgwRTY0RQorOjAxMDI3NjAwMjI2NQorOjEwMDI3NzAwRTUwQ0ZGRTUwQkY1ODJFNTBBRjU4Mzc1OTI3RTc0QzAwMAorOjA4MDI4NzAwRjhFMjA4RjBBM0RGRkEyMkZGCis6MTAwMjhGMDA5MDdGOTY4NTgzOTJBODgyNzkwMjkwMDAwMEUwQjQwMDU3Cis6MTAwMjlGMDAzNzc0MDFGMDkwN0Y5M0UwNTRGQ0YwOTA3Rjk2RTA1NDE4Cis6MTAwMkFGMDBGQ0YwOTA3RjlDRTA0NDAzRjA5MDdGOTRFMDU0N0ZGMDRCCis6MTAwMkJGMDA5MDdGOTdFMDQ0ODBGMDkwN0Y5REUwNDQ4MEYwOTA3RkE2Cis6MTAwMkNGMDA5N0UwNTQ3RkYwNDQ4MEYwRTUwQ0ZGOTA3RUMwRTBGNTlFCis6MTAwMkRGMDAyOEU0QTI0NzMzRjI2OUYyRTRBMjQ2MzNGMjY5RjJFNDZBCis6MTAwMkVGMDBBMjQ1MzNGMjY5RjJFNEEyNDQzM0YyNjlGMkU0QTI0Mzg1Cis6MTAwMkZGMDAzM0YyNjlGMkU0QTI0MjMzRjI2OUYyRTRBMjQxMzNGMjNCCis6MEQwMzBGMDA2OUYyRTRBMjQwMzNGMjY5RjJBM0RGQzIyMkRBCis6MEMwMzFDMDA3ODdGRTRGNkQ4RkQ3NTgxMjkwMjAzNjNBOAorOjEwMDMyODAwMDIwMUMwRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIyQQorOjEwMDMzODAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNENgorOjEwMDM0ODAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZBNQorOjEwMDM1ODAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMDQ4NEU0N0VBRAorOjEwMDM2ODAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTM5QQorOjEwMDM3ODAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM2MQorOjEwMDM4ODAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0E4QworOjEwMDM5ODAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkU0NAorOjEwMDNBODAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0Y5NworOjBCMDNCODAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkEwCis6MTAwM0MzMDBDMEUwQzA4M0MwODJEMjIwNTM5MUVGOTA3RkFCNzQwMTExCis6MDgwM0QzMDBGMEQwODJEMDgzRDBFMDMyQUIKKzoxMDAzREIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMEQwMkEKKzowNjAzRUIwMDgyRDA4M0QwRTAzMjU1Cis6MDEwM0YxMDAzMkQ5Cis6MDEwM0YyMDAzMkQ4Cis6MDEwM0YzMDAzMkQ3Cis6MDEwM0Y0MDAzMkQ2Cis6MDEwM0Y1MDAzMkQ1Cis6MDEwM0Y2MDAzMkQ0Cis6MDEwM0Y3MDAzMkQzCis6MDEwM0Y4MDAzMkQyCis6MDEwM0Y5MDAzMkQxCis6MDEwM0ZBMDAzMkQwCis6MDEwM0ZCMDAzMkNGCis6MDEwM0ZDMDAzMkNFCis6MDEwM0ZEMDAzMkNECis6MDEwM0ZFMDAzMkNDCis6MDEwM0ZGMDAzMkNCCis6MTAwNDAwMDAwMjAzQzMwMDAyMDNEQjAwMDIwM0E4MDAwMjA0NkUwMDIzCis6MTAwNDEwMDAwMjA0NTgwMDAyMDNGMTAwMDIwM0YyMDAwMjAzRjMwMDk5Cis6MTAwNDIwMDAwMjAzRjQwMDAyMDNGNTAwMDIwM0Y2MDAwMjAzRjcwMEUyCis6MTAwNDMwMDAwMjAzRjgwMDAyMDNGOTAwMDIwM0ZBMDAwMjAzRkIwMEMyCis6MTAwNDQwMDAwMjAzRkMwMDAyMDNGRDAwMDIwM0ZFMDAwMjAzRkYwMEEyCis6MDgwNDUwMDAwMjA0QUIwMDAyMDRBQzAwNDEKKzoxMDA0NTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwOUUKKzowNjA0NjgwMDgyRDA4M0QwRTAzMkQ3Cis6MTAwNDZFMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA4RjBEMDkwCis6MDYwNDdFMDA4MkQwODNEMEUwMzJDMQorOjEwMDQ4NDAwMDIwQTAwMEYwMTBDMTEwNDBEMDAwMDAwMDA0MTAwMDBERAorOjAxMDQ5NDAwMDA2NworOjA0MDQ5NTAwMDIxNzAwMDA0QQorOjAxMDQ5OTAwMDA2MgorOjEwMDQ5QTAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjBCOAorOjAxMDRBQTAwMjIyRgorOjAxMDRBQjAwMzIxRQorOjAxMDRBQzAwMzIxRAorOjEwMTEwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwMworOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgorOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QworOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAorOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNworOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQorOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAorOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QworOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQorOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgorOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MworOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMworOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMworOjAyMTFEMDAwMDAwMDFECis6MDAwMDAwMDFGRgorLyoKKyAqIFRoaXMgZmlybXdhcmUgaXMgZm9yIHRoZSBFbWFnaWMgRU1JIDJ8NiBBdWRpbyBJbnRlcmZhY2UKKyAqCisgKiBUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcyBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMiBFbWFnaWMKKyAqIGFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZAorICogb3IgcHVibGljIGFjY2VzcyB0byB0aGlzIGZpcm13YXJlIHdoaWNoIGlzIGEgdHJhZGUgc2VjcmV0IG9mIEVtYWdpYywKKyAqIGFuZCB3aGljaCBtYXkgbm90IGJlIHJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8KKyAqIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0IEVtYWdpYydzIHdyaXR0ZW4gY29uc2VudC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aCB0aGUKKyAqIEVtYWdpYyBFTUkgMnw2IEF1ZGlvIEludGVyZmFjZS4gRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YKKyAqIGFueSBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4gcGFydCwKKyAqIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2VtaTYyL2JpdHN0cmVhbS5IRVggYi9maXJtd2FyZS9lbWk2Mi9iaXRzdHJlYW0uSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjNmVjYzMKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lbWk2Mi9iaXRzdHJlYW0uSEVYCkBAIC0wLDAgKzEsNDM3MiBAQAorOjEwODAxMDAwRkZGRkZGRkZBQTk5NTU2NjMwMDA4MDAxMDAwMDAwMDdBRQorOjEwODAyMDAwMzAwMTYwMDEwMDAwMDAwQjMwMDEyMDAxMDA4MDNGMkQ3NQorOjEwODAzMDAwMzAwMEMwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDk5NQorOjEwODA0MDAwMzAwMDIwMDEwMDAwMDAwMDMwMDA4MDAxMDAwMDAwMDEyRAorOjEwODA1MDAwMzAwMDQwMDA1MDAwM0UwNDA4MTIxMDAwMDAwMDAwMDBGNAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDRCQworOjEwODA4MDAwODAwMDAwMDAwMDAwMDAwMDAwMTIxMDAwMDAwMDAwMDA0RQorOjEwODA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwODQwQworOjEwODBCMDAwODAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAzRQorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDA5OAorOjEwODBFMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDBDRQorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwODAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDBDRAorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzQgorOjEwODE0MDAwODAwMDAwMDAwMDAwMDAwMDA4MTMwMDAwMDAwMDAwMDA5NAorOjEwODE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwOTAwMDAwMDAwMDAwMDAwMDAwMTIwMDAwMDAwMDAwMDA1RAorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1QgorOjEwODFBMDAwOTAwMDAwMDAwMDAwMDAwMEY3MTAwMTE0MDAyNTAwMDVGOQorOjEwODFCMDAwNDAwMTUwMDA5NDAwMTUwMDA3NDAwMUQwMDA5NDAwMjVCNAorOjEwODFDMDAwODAwMTYwMDJEODAwRjYwMDJGODAwMkUwMDREODM3NDQxNgorOjEwODFEMDAwOTAwMDAwMDAwMDAwMDAwMEMwMDVGMjAwQ0M5MDM5MjBBMworOjEwODFFMDAwMEQ5ODAzRDIwMEU3ODAzNzA0MEVGMTgzN0UwMERGOTAwNAorOjEwODFGMDAwMzFFNDhGNzkwMzdDMjBERjIyMzNDMDBDRjAyMjMwMDA4MQorOjEwODIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTA2MjAwODAyNDIyMjAyNgorOjEwODIxMDAwMDg5ODEyRTIwMDhCODEyMDk0MDg3NDAyMkUwMDhBMDFEMworOjEwODIyMDAwMjJDODA4OTIwMjNEODA4QjYwMjI4MDA4QjAwMjIwMDRBMAorOjEwODIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwQTAwMDIwMDBGOQorOjEwODI0MDAwMEIxMDAyQzAwMEExMDAyNDA5NEEzMjAyNDgwMEIxMDAwQworOjEwODI1MDAwNjJDMDA5QTA0NkNDMjQ5MzQ5MkE4MDQ4MzAyMjYyMDE5QQorOjEwODI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEyQTgwMDIyMDA0NQorOjEwODI3MDAwMDg5MDAyRTAwMDg5ODAyMjQ0MDhCMDEyQTgwMEE5NDBCQQorOjEwODI4MDAwMjJDMDA4OTA4MkFDMDA5QjA0MkFDNDA4QjAwMjcwMDQ4QgorOjEwODI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTQ4NDAwRTk4MEIyNjQ2NworOjEwODJBMDAwNERBMDAzRUEyMEU5QzAzNjQwMEVCMDAzNDQwMEZCOTAyNQorOjEwODJCMDAwQjI4ODBEQkMwM0VDMDg1QjAwMzg2MDJDQjA2MzQwMDQ0RQorOjEwODJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDI2REQ5MDM3NDA5RgorOjEwODJEMDAwNEZFMDEzRjI4MEZEMDAzREEwMEQ3MDAzNzUwMDVFMDBCRAorOjEwODJFMDAwM0ZBNDBERjkwMzVDMTBFQjAwMzcyMDBGMzAwM0I4MDBGQQorOjEwODJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRTk4MDMyNDA0NworOjEwODMwMDAwMENBMTgzRTgwMEU5MDAzMjQyMEVCMDAzQUM0OEU5MDA1QQorOjEwODMxMDAwM0E4MDBFQTQwM0VDMDBFQjAwQjIwMzBFQjAwQjEwMDQ4NQorOjEwODMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRTgwODlEMTIwNDBGOAorOjEwODMzMDAwMDhBMDAyQzAwMDgxODAyMjU4MDhGNTAyMkY0MDhCMDA1RgorOjEwODM0MDAwMjBDMDA4MzA0MzdDMDA4NzAwMjI0MDA4RjAwMjMyMDA0MQorOjEwODM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MjAxOUE0NDI4QTIwRAorOjEwODM2MDAwMDgxODAyQzA4MEExODBBMDAwMDgzMDAyOEUwMEFCMDA3NworOjEwODM3MDAwMkM0MDBBMzAwMjBDMDBBMzAwMjA0NDBBMzAwMjM4MDBDRQorOjEwODM4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDEzMjAwOTY4MjJCQTIyNQorOjEwODM5MDAwODg1QTAyRjIwMDA1ODAyOUEwMDg3ODQyQkUwMDhFODQyNworOjEwODNBMDAwMkY2MTBBRDgwMjRFMTBBNzgwMjAyODA4NzgwMjE4MDBGMgorOjEwODNCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwRjIyNDM4ODA1NworOjEwODNDMDAwMkMxQTAzQzQwMEUwNThBMDgwMkUzMDAzODg0MUUzMDIzOQorOjEwODNEMDAwM0M0MDA2MjAwMzhDMDBFMzAwMTAwMDBFMzE0MzEyMDJFMworOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRUUwMTM3ODRFRQorOjEwODNGMDAwOUZEOTAzRjA0OEZEMTAzN0MwMDdCMDAzNUMwMEY2MTBBQQorOjEwODQwMDAwMzNDMDBERTEwM0VEMjBERjEwM0Y0ODBGRjAyM0QwMDYwRAorOjEwODQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAyQ0I4MDMwQzAyRQorOjEwODQyMDAwMENBMDAzRTIwMkM5MDAzQTQwMERCNjAzNjQwMEVCMDA2MQorOjEwODQzMDAwM0VDMDBGQjAwM0VEMDBGQjAxM0VFMDBDQjAwMkVBMDBDRAorOjEwODQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwODcwMDIxQzA2NworOjEwODQ1MDAwMjg2MDAyRDAwMDg1MDAyRDgwNDhGMDgyMUMwMEI3MDAwMworOjEwODQ2MDAwMkQwMDBCNTAwMkRDMDBCN0EwMkY4MDI4N0EwMkQyMDQyNgorOjEwODQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMxMDBCRTAwODc4MDIxRTAxNQorOjEwODQ4MDAwMjg2ODAyRDcwMDg0ODAyREUwNDk3OTA2NTMwOUI1ODAxOQorOjEwODQ5MDAwMkRFMjBCNzgwMkRFODBCNzkwMkRCMDA4NzkwMkYwMDA1MworOjEwODRBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODMwMTI4QzgwMAorOjEwODRCMDAwMDgyMDAyQzIwNjgxMDAyQ0M4ODgzMDYyMEUyMUIzQTBCOQorOjEwODRDMDAwMkNDMTBCQjYwMkNDMDBCMzAwMkNFMDA4MzAwMkQyMDQ2MQorOjEwODREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0E0MEIwODA4RAorOjEwODRFMDAwMEMyQzAyRjgwMEM2MjAzRjkwMERBMDAzN0IwMUVFRTBBQgorOjEwODRGMDAwM0ZCNDBGRUMwM0U4MDBGQTAwM0ZBMDBDQTAwM0ZBMDQxRAorOjEwODUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMzAwRjgwOTI2MDBCOQorOjEwODUxMDAwMEZDMTgzRTAxMEY4NDAzQzAwMEY4MDAzRTAwMUY4MDAzOQorOjEwODUyMDAwM0UwMDBGODEwM0UwMDRGODAwM0UxMDBGODAwM0QyMDBFQworOjEwODUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAyQzkwMDNFNDBDNgorOjEwODU0MDAwNEY5MDYzMjY4NDM5MDJCMjQwMEM5MTAzMjQwMEY5MDA1NQorOjEwODU1MDAwM0U0MDBGOTAwMzI0MDBGMTAwM0E0NDBGOTAwM0MyMDQwMAorOjEwODU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ0NTAwODk0MDJFNDBEQgorOjEwODU3MDAwMDg5MjBBMjQwMEI5MzEyMjYwODg5NDhBMjQyMEI5MDAyNAorOjEwODU4MDAwMkU0MDBCOTAwMjI0MDBCOTAwMjI2ODBCOTAwMkUwMDBGQworOjEwODU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNEEwOEQ4NDJGNDA2QQorOjEwODVBMDAwMEJEMTAyMjQwMEI5MDAyMjRBMDgxMDAyMkM0MEI5MDA2NQorOjEwODVCMDAwMkU0MDBCOTAwMjI0MDBCOTAwMkE0MDBCOTAwMkM2MDAwNgorOjEwODVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwODU4MDJENDBEOQorOjEwODVEMDAwMDg1MDAyMDQwQ0I5MDBBMDUwMDgxNDIyMDQwMEIxMDA5NQorOjEwODVFMDAwMkM0MDBCMTAwMjA0MDBCMTI4MjA0QTBCMTMwMkMyMDFEOAorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzA1MDNFODA4OAorOjEwODYwMDAwMEZDMDQzMjAwMEY4MDAzMDAwMkM4MDIzMjAwMEY4NTFEOAorOjEwODYxMDAwM0UxNDhGODUwQjIxNDBGODcwM0EwODBGODQ4M0VFMDNENworOjEwODYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDAwRjkwNDNFNDAwNgorOjEwODYzMDAwMEY5MDIzRDQwMEZEMDAzRjUwMEY5NDAzRjQwNEZEMDA3RAorOjEwODY0MDAwM0Y0MThGRDA0M0U1MENGOTAyM0Y0QTBGOTIwM0U2MDIwNworOjEwODY1MDAwNzAwMDAwMDAwMDAwMDAwMDg4MDVENDAxRkQwMDNENDBDRQorOjEwODY2MDAwMENEMDEzRjQwMEQ1MDAzMzZBMUNEQzgzMzQwMEQxMDQzMQorOjEwODY3MDAwM0U1MDBDOTEwM0U2QzBEREIwMzM2QTJDOUM4M0U2MDBDQgorOjEwODY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA5Rjg4MDJFMDBBMworOjEwODY5MDAwODg4MDAwRTgwMEJBMDAyMkIwMDg4RTAyMjgwMDg4QTg2RQorOjEwODZBMDAwMjYyODA4OEEyMkUyMDA4OEU0MjIzMDA4OEMwMkNFMDRDMAorOjEwODZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEyODJFNDA3MgorOjEwODZDMDAwMDgxMDAyQzQwMDk5MDAyMDQyNDgxMDAyNjQwMTkxODAwMQorOjEwODZEMDAwMkM0ODA4MTAwMkM0QzA4MTQwMjA0QTA4MTIwMkMyMDE3RQorOjEwODZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDk0QTkwMjJFNDA5QworOjEwODZGMDAwMEE5MDAyNjQwMEI5MDA4MjYwMDg5MDAyNjYwMDg5MTA0NgorOjEwODcwMDAwMjQ2MjA4OTAwMkU0MDA4OTAyMjI0MDE4OTAwMkM2MDQwNAorOjEwODcxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwNDNFNDAyMworOjEwODcyMDAwMEM5MDEzRTQwMEQxQzAxMjUwMjg5MDAzNDQwMEQ5MDBFQgorOjEwODczMDAwM0U0MDI4OTIwM0U0MDJEOTAwMzI0MjhDOTAxMkU4MDRCMQorOjEwODc0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjIwRjkwMDNFNDE1MgorOjEwODc1MDAwMkQ5MDAzRTQwMEY5MjAzRTQwNEY5MDAxQTQwMEY5MDA2MQorOjEwODc2MDAwMzY0MDhGOTIwN0U0MDBGMTAwQkU0MDBGOTAwM0NBMDAyQworOjEwODc3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDNFMjA5QgorOjEwODc4MDAwMEM4MDAzRTA0MEY4MDAzNjEyMkMwMDAzRTBDMEY4MDAzMworOjEwODc5MDAwMzIxMDBEODQwM0EwMDBGODAyM0UwODBGODAwMENBMDRDNgorOjEwODdBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTkwOEUwMDJEQTA1NworOjEwODdCMDAwODBFODAyRkEwMEJFNDAyMzgwMDhFODAyRkEwMDhBMDAzRQorOjEwODdDMDAwMzY4MDA4QTAwMkU4MDBCQTAwMkY4MDBCQTAwMzhBMDBDMAorOjEwODdEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0NjAyODMwMDJDODBCNQorOjEwODdFMDAwMDgyMjQyQzY4MEIxNjAyRUY0MDgzODIyQ0UwMEEzMDBEMQorOjEwODdGMDAwMjBDMDA4MzAwMkFDMDBCMTAwMkU0MDBCMzAwMkNBMDA4RAorOjEwODgwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAyODUwMTJEQzJFMgorOjEwODgxMDAwQTg0NDAyRDQwMEJEMDEyOTQwMTg2OEQyREMwMDhGODAzMgorOjEwODgyMDAwMjVDQzI4NzM0MkRDODBCNTMwMkRDMDFCNzIwMkU4MDBENQorOjEwODgzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTA0QzY4MjNERTBDMQorOjEwODg0MDAwMEM0ODEyRDYxMEY1ODAzQ0EwMEM3MDAzREUwMEU3OTBCNworOjEwODg1MDAwMjNFQTA0N0EwMzlFMDBGNTgwM0RFMDBGN0EwM0VBMDJFMgorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzAwOUMwMDNFQzBBRAorOjEwODg3MDAwMEY4MDAzRTQxMEY5MDAzNjAxMEZBMDAzQzAwMEVCMDBFNQorOjEwODg4MDAwM0VEODRFQjA4M0VDMDBGOTAwM0VDMDBGQjQ0MzgyMDZFMAorOjEwODg5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVERTAwQ0Y4NDMxRTA3MQorOjEwODhBMDAwMEVDODQzRDYwMENEODAzM0UwQ0REOTAzM0EwMEZGODgwRgorOjEwODhCMDAwMzNFMDBGRjkxM0ZFMjRGRDgwM0YyMDBDRjY4MzEwMDBGNworOjEwODhDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODUwMDIxQzQ3OQorOjEwODhEMDAwMjg0MDgyRDAwMEQ1MDAyMzgwNDhDOTAyMUMwMEI3MDA4MAorOjEwODhFMDAwMjFDMDBCNzEwMkRFODBCNTEwMkRDMDI4RjAwMjJBMDREMQorOjEwODhGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwOTYwMDIxQzBGNQorOjEwODkwMDAwMEE0MTAyRjU0MDhEMDAyMTQwMDk1MjAyOTgyMEI3MDAyQgorOjEwODkxMDAwMjFDMDBCNzAwNkRDODBCNTAwMkRDMDA4NzAwMjA0MDA3OQorOjEwODkyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzEwOTgwMDAwQzA3RgorOjEwODkzMDAwODgwNDgyQzAwMDkxMDQyMDAzMDkwMDAyOEEwMEIzMEE1RgorOjEwODk0MDAwMjBDNDhCMzQwMkNDMDBCOTAwMkNDMDAwMzAwMjE4MDRDMworOjEwODk1MDAwMzAwMDAwMDAwMDAwMDAwMEY4MTVBQzAwREIwMEIwQzBFMworOjEwODk2MDAwMEU5QzAyQzUwMEMxMTBCMkMwMERCMDBCQTcwOEZGMDBERAorOjEwODk3MDAwQjNDMDBGRkEwM0ZDMDBGRDAwM0VENDBDRjAwQjJFMDQzNAorOjEwODk4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RUQwMDNFNDBBQworOjEwODk5MDAwMEY4NDAzRTU0MEY5NDAzRTYwQ0VCNDQzNjQwMEZCODBBMQorOjEwODlBMDAwM0VDMjBGQjAxM0VDMDBGOTAyM0VDMDRGQjAwM0UxMDAyRAorOjEwODlCMDAwMzAwMDAwMDAwMDAwMDAwMDkwMTBGRjAwQ0UwMDMzQzAyNworOjEwODlDMDAwMEVDMDA3NzQwNEVDMDAxMTgwMENDQTAzRkU2MEZGMDBBNworOjEwODlEMDAwM0ZDMDBGRjA4MzNDMDBERDAwQjM1MDJDRjAwMzIwMDRCNworOjEwODlFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA0QzA0OEIwQjIyNzA1RQorOjEwODlGMDAwMDgwODAzNjcyMDhBODhBMjAwMjg4NDAyRTcwMEJCMDBEOQorOjEwOEEwMDAwM0VDMDBCQjAwMjJDMDBCOTAwMjI2MTA4QjAwMzYwNDBFOAorOjEwOEExMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIyMDIyRTJFNgorOjEwOEEyMDAwMEE4QzAyMjYwMEE5ODAyQUMwMDhCNDQyRUQwMEJCMDBDRgorOjEwOEEzMDAwMkVDMDBCMzAwMjJDMDBCOTAwMjA4MDA4MzAwMjYwMDBFQworOjEwOEE0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwRTAxODEwMEEwQzBFQQorOjEwOEE1MDAwMDg4MTAyNDQwMDgxMDAyODgxMDgzMjAyQ0MwMEIzMDA2MgorOjEwOEE2MDAwMjhDMDBCMzAwMjBDODBCMTAwMjBDMDA4MzAxMjQyMDEzNworOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzIwMTMyQzA0OAorOjEwOEE4MDAwMkU4MDE2MkMwOEU5MDAzQTQwMEM4MDAzRUMwMEY3MDAxOQorOjEwOEE5MDAwMkZDMDBGRjAwQjJDMDBEOTAwMzA0MDBDRjAwMzYwMDMwNgorOjEwOEFBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMERGODA4RkYwMDNGQzBDQgorOjEwOEFCMDAwMEZDMjE3RkMwMEY3MDAzNzAwMEY4NDAzRkMwMEZGMDAxMworOjEwOEFDMDAwM0ZDMDBGRjAwM0VEMDBGRDAwM0Y0MDBGRjAwM0U4MDY0QworOjEwOEFEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQ0YzMDE3NDgwNworOjEwOEFFMDAwMEM1OTAzQjkwMERGMjgzNTI0MEQ4MkEzN0M4MEZGMDBEOAorOjEwOEFGMDAwM0ZDODBGRjIwM0U0QTBFRjgwM0ZFMThDRDg0MzMwMDA4MQorOjEwOEIwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRDQ4ODkzNEEzNzA2MAorOjEwOEIxMDAwMjhCMDIzNjAwMDhCQzAyMjQwMDhCNDgyMkY0MEJGRDExMAorOjEwOEIyMDAwNkZGNDhFQkQwMkU3MDBCQjgwM0FFMDA4OTgwQTI4MDQ4MworOjEwOEIzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNEIwOTEwMEE4NTA3QgorOjEwOEI0MDAwMDhCMjAyQzg4NDkzMDAyNDQ5MEIwMjAyNEMwMEIzMDQwQgorOjEwOEI1MDAwMkNDMDBCMzA0Mjg0MDBCMzAwMkUwMDBBQjAxMjIyMDE1OAorOjEwOEI2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBQzAyOTkxODJBNDRGNworOjEwOEI3MDAwMDhCODgyQTIwMUJCMDAyODYwMEFBMDEyNkMwMEJCMDBFQQorOjEwOEI4MDAwNkVDMDBBQjAwMkU0MDBCQjAwMkEwMDJBQjAwMjM4MDQxQQorOjEwOEI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDA4REFDMDNBNjAwNAorOjEwOEJBMDAwMEMxODBBRUIwNERCMDAzNkUwMDc4NTgzNkMwMEZCMDA0MQorOjEwOEJCMDAwMkVDMDBGQjA0M0U0MDBFQjAwM0U4ODBFMTgwMzEwMDRGMworOjEwOEJDMDAwNzAwMDAwMDAwMDAwMDAwMEUwNDE5QzEwRTkwMDM3NjBFOAorOjEwOEJEMDAwODdGMDE3NzAwMENGMDEzN0MwNEM5ODAzQkMwMEZCMDAzMgorOjEwOEJFMDAwM0ZDMjBGRjAwM0U0MDBGRjQwM0ZFNDBERDkwM0YwMDA2MworOjEwOEJGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRjQwMDMwNDBCRAorOjEwOEMwMDAwMEZCNDAzOTkwMEZCMDAzRUMwMEQwNDIzMkMwOEZCODgyMQorOjEwOEMxMDAwMzJDMDBGQjAwM0U2MDBEQjEwM0UwMjBGQjA4M0QwMDQ3OQorOjEwOEMyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjk1MEEyNDgzOAorOjEwOEMzMDAwOEJCMDAzMjAwMEQ3ODAyRUQ4MDA4MDAyM0MwMEJGODA3QworOjEwOEM0MDAwMjNFODhCRjAwMkY0NDA4QjQwMEM0MjAzQjYwMkYyMDBBMgorOjEwOEM1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjI0NDAwQzhFNQorOjEwOEM2MDAwMEIzMDEyOEMwMEEzODAyNEM4MEIwMDBBQ0MwMEIzNDQ0NAorOjEwOEM3MDAwMDRDMDFCMzYwMkM1MDE4MzBDMkNBMDBCMzAwMkY4MDA4NworOjEwOEM4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc5MDIxNjQ4MQorOjEwOEM5MDAwMEJGODAyNEEwNDk3ODEyRkU0MEE3ODAyOUUwMEI3ODBGRAorOjEwOENBMDAwMjFFMDhCNzg4MkQ2ODY4Nzg0MkRBMDBCNzgwMkMwMDBDNQorOjEwOENCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwRjIwMDMwQzAzRQorOjEwOENDMDAwMEYzMDAzOEMwMEUzMEEzQ0MwMEYxODAzOEMwMEYzMDI0MgorOjEwOENEMDAwMzBDMDFGMzAwMUM2ODBDMzAwM0NDMDBGMTIwM0RBMDI0RgorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzAwRkYwMDNGNDFGQworOjEwOENGMDAwMEZGMDAzQjgwOEZGMDgzRkMwMERGMDAzM0MyMEZGMDg0OQorOjEwOEQwMDAwM0JEMjBGRjAwM0Y0NDBFRjAwM0ZDNDBGRDAwM0QwMDY3NgorOjEwOEQxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRkUwMDMyQzI3MAorOjEwOEQyMDAwMEMzMDBCMjYwMEZCODAzNkMwMERBMDAzRUMwMEZCRTBFRQorOjEwOEQzMDAwMzJEMDBGQjg0MzY0NDREQjA0M0U4MDBGQjAwM0UyMDAzRQorOjEwOEQ0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMEExQzBBNgorOjEwOEQ1MDAwODg3MDAzMTAwMEI3MjAyMUMwMDg3MDAyREM4MEIzMzA5NworOjEwOEQ2MDAwMzFDODBCNzQwMjE0MDA4NzQwMkRDMDRCNzAwMkQyMDAzMgorOjEwOEQ3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5NjIwQjY4MDIwRTBFNworOjEwOEQ4MDAwMjhGODAyOTQxMEI3ODEyN0UyMDk3ODAyREUwMEI3QTAyNAorOjEwOEQ5MDAwQTlFODBCMzgwMjc2MDA4NzgwMkRBMDBCNTgwMkYwMDA1RQorOjEwOERBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRTEwQjMwMDIwQzREMgorOjEwOERCMDAwMDgyMDAyODAxMEIzMDAyMkM4MDhCMDAyQ0MxMUIzMDIxMAorOjEwOERDMDAwMjhDMDBCMzAwMjA0MDA5MzgwMkNEMjBCMTAwMkQyMDQ3NgorOjEwOEREMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkU0MDMyQTBBRQorOjEwOERFMDAwMENFNDAzOTg4MEZBMDAzN0EwMERFMDgzRTgwMEZFMDA1MQorOjEwOERGMDAwM0E4MDBCQTAwMzY4MDBEOEEwM0Y5MDBGQTAwM0ZBMDRBQworOjEwOEUwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA4RjgwODNFMDA5NAorOjEwOEUxMDAwMEY4MDAzMjAwMEY4NDAzRTAwMEY4MDAzRTAwMEY4MDRCQworOjEwOEUyMDAwMzAxMDBGODAwM0UwMDJFODAwM0UwMDBGODAwM0QyMDAwNAorOjEwOEUzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjEwMDMyNDBBMworOjEwOEU0MDAwMEU5MDgzQTQwMEM5ODAzRTQwMEU5MDAzQTQwMEY5MDA1OAorOjEwOEU1MDAwM0U0MDBDOTAwM0U0MDBDODAwM0U0MDhGOTAwMzAyMDRBMworOjEwOEU2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEwNjJFRgorOjEwOEU3MDAwMDgxMDAyMjQxMDg5MDAyRTQwMDg5MDAyMjQwMEI5MDAzNgorOjEwOEU4MDAwMkU1MjA4OTQwMkM0MDA4OTQwMkU0MDBCMTAwMzYwMTAzQgorOjEwOEU5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxODIyNDQ0QQorOjEwOEVBMDAwMEE5MDAyQUMwMDg5MTAyRUMwMEE5MDAyQTQwMEI5ODA3QQorOjEwOEVCMDAwMkU2MDA4OTgwMkU2MDI4OTA4MkU0MDBCOTAwMjA2MDBGOAorOjEwOEVDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMEEwNDgxOQorOjEwOEVEMDAwMDg5MDAyMjQwODgxMjMyQzUwMDgxMDAyMDQ4MEIxMjAzRAorOjEwOEVFMDAwMkM0ODI4MTIwMkU0ODA4MTIwMkM0MDBCOTgwMjQyMDU3NQorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMDA5MgorOjEwOEYwMDAwMEU4NTAzQTFFMENBMDAzRTAwMEU4NTAzQTAwMEY4MDAxNAorOjEwOEYxMDAwMkUwMDlDQTAwM0UwMDBDODI4M0UwMDBGODAwMzJFMDExNQorOjEwOEYyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjUxMDNGNDQ4MAorOjEwOEYzMDAwMEZEMDAzRjQwMEYxMTAzRDQwOEZENDAzRTQ1MEY5MTAzQQorOjEwOEY0MDAwM0U0NTBGOTEwM0Q0NDBGQzAwM0ZDMDhGRDAyM0U2MDQ4MAorOjEwOEY1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIwQ0RBODMzNDA5NgorOjEwOEY2MDAwOEREMDAzMjY4MENEMDAzRDUwMEM5QTAzNjQwMEY5QTBGQgorOjEwOEY3MDAwN0E2QTBGOUE2M0U2ODBDOTgwM0U0MDBGOTAwMzA2MDAyQworOjEwOEY4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwODhFMDM2MDBBQQorOjEwOEY5MDAwMDg4MDBBMjE0MkM4MDAyRTI5MENBNDQyMjAwMEI4NDBCMworOjEwOEZBMDAwMkUwMDBCODEwMkUxMDA4ODAyM0EwMTBCQzAwMjBFMDQ4MAorOjEwOEZCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwODI0NDBDMQorOjEwOEZDMDAwMDkxMDAyMDQwMDkxMDAyQzQwNEIxNDAyNDQwMEI1MTAxQgorOjEwOEZEMDAwMjk0MDBCNTAwMkY1MDBCNTAwMkQ0MDBCRDAwMjAyMDFENAorOjEwOEZFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNjAxODkwMDI2NDA1MgorOjEwOEZGMDAwMDg5NDAyMjQwMTg5MDAyRTQwMUE5MDAyNkMwMEJGMDJERQorOjEwOTAwMDAwMkY0MDBCRDAwMkY0MDJCRDgwMkI0MDhCRDgzQTA2MDRDRgorOjEwOTAxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwNTM2NDExMgorOjEwOTAyMDAwMEQxQzAzMjQwMEQ5MDAzRTQyMkY5NDAzNjQwMEY5MDA3NAorOjEwOTAzMDAwM0E0MDBGOTAwM0M0MDBGOTAwM0U3MDBGMTAwMzI4MDQ1QgorOjEwOTA0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDA4RjkyNDNFNDA2MAorOjEwOTA1MDAwMEY5MTAzRTQwMEY5MDAzRTQxMEQxMDAzQTQwMEY5MDA1NAorOjEwOTA2MDAwM0U0MDBGOTAwM0U0MDBDOTAwM0U2NDBGOTAwM0NBMDAyNQorOjEwOTA3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA4Qzg4MDMyMDIzNAorOjEwOTA4MDAwMEY4MDAzMDAwMEM4MDgzQTEwQ0U4NDAzRTAwMEZDMDAwMworOjEwOTA5MDAwM0YwMDhGQzAwM0YwODBGQzAwM0YxODBGQzA0M0NBMDQ5QworOjEwOTBBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEUwMEExODA5QworOjEwOTBCMDAwMEJFMDAyMjgwMERFQzIyMzkwMDBBMDAyRTgwMEJBMDAwNAorOjEwOTBDMDAwMkU4MDBCQTAwMkU4MDBGQTAwMkU4MDBCQTAwMkNBMDAzRQorOjEwOTBEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTk4MTYwQzA5RAorOjEwOTBFMDAwMEIxMDAyMEMwMDkwMTAyQUZDMEIzMDAyQ0MwMEIzMDBENQorOjEwOTBGMDAwMkNDMDBCMzAwMkNDMDBCMzAwMkNDMDBCMzAwMkNBMDBENQorOjEwOTEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgyOTU0MDIxQzAxQQorOjEwOTExMDAwMEI1MDAyMUM4MDkwODAyMzAxMDk3MjEyREMwMEI2MDAwMworOjEwOTEyMDAwMkQwMDBCNDAwMkQwMDBCNDA5MkQwMDRCNDA4MkU4MDAxNgorOjEwOTEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTgwREQ4MEIxRTA5MworOjEwOTE0MDAwMEZEQTAzMEY4MEQ0ODAzOUUwMEI3QTAzREUwMEY1ODA1QworOjEwOTE1MDAwM0QyMDBGNDgwM0Q2MTBGNjgxM0RFMDhGNjgwM0VBMDJGOAorOjEwOTE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRUQwMDNFMDAwMworOjEwOTE3MDAwMEY5MTBCRUMxMEY4MDAzRTAwMEVCMDAzRUMwMEY4MDA2RAorOjEwOTE4MDAwM0VDMDRGQjAwM0U4MDBFOTAxM0UwMDBGOTAwM0MyMDY2NQorOjEwOTE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTIwQkY4MTMzQTQzNQorOjEwOTFBMDAwOEMxOTAzM0UwMENEODAzRkUwMEZGODgzM0UwMEVGODAzNgorOjEwOTFCMDAwM0ZFMDBGRjkxM0ZBMTBGRDgwM0ZBNDBGRDgwM0MwMDA2MQorOjEwOTFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkYyMDMxQzIwOAorOjEwOTFEMDAwMDg1QTAyM0MwMjg3MDAyRDk0MEI3MDBBMUM0MDg2MTAyRQorOjEwOTFFMDAwMkQwMDBCNDAwMkQ0MDBGNjAwMkQ0MDRCNjAwMkVBMDQzMworOjEwOTFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTIzODAxOAorOjEwOTIwMDAwMjg1MDAyMUMwMDg0MDAyREMwMEIzMDAyMUMwMEI1MDA0OQorOjEwOTIxMDAwMkQwMDBCNDAwNkQwNDBCNDA4MkQ4MDBCNDgwMkMwMDA0MgorOjEwOTIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjMwOEEwMjBBMworOjEwOTIzMDAwMDgxMThBMEUwMDgwMDAyQzkwMEIzNzAyMEMwMDkwMDA2MQorOjEwOTI0MDAwMkNDMDBCMzA0MkNDMDRBMzgwMkM1MDBCMzAwMkM4MDQzRAorOjEwOTI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRjk4MDMyNjA1QQorOjEwOTI2MDAwMENENDAzM0M4MDg4MDAzRUQwMEZGODAzMjgwMEZBMDA5RAorOjEwOTI3MDAwM0VDMDBGQjAwN0VDMDFCQjgwM0U1NDBGQjAwNkVBMDRCRAorOjEwOTI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRTA4Rjk4MDNBQzA5NQorOjEwOTI5MDAwMEY5MDAzRUMwMEY4NDAzRTU4MEZCMDQzRTkwMEVCNDQ1OAorOjEwOTJBMDAwM0UwMDBGODAwM0UwMERGODAwM0U4MDBGODAwM0UwMDBEOQorOjEwOTJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDMzNDA0RgorOjEwOTJDMDAwMENEMDAzM0MzMENDMDAzQkMwMkRGMDAzRDgwMkNDMDBDNgorOjEwOTJEMDAwM0QwMDBDQzAwM0Y0MDBFRTAyMzc0MDBDRTAwM0MwNDQzNAorOjEwOTJFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzE4ODM4NDIwMDAxRQorOjEwOTJGMDAwNEExMDAyMEMwMEE4NDgyRTYwMDhCMDAyRTkwMDg5NDAxQworOjEwOTMwMDAwMkVDMDA4QjAwMkU4MTBCMTAxMjA4MDBBOTAwM0EwNDBFRQorOjEwOTMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEI4MjIyMDg1NQorOjEwOTMyMDAwMDg5MDAyMkMxNDg4MDQyQzA4MDhCMDEyRTgwMDhBMDA2NworOjEwOTMzMDAwMkVDMDBBQjAwMkU4MDFCOTAwMjYwNDA4OTAwMkUwMDAzRAorOjEwOTM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODM4MEEyQzA2MAorOjEwOTM1MDAwMEE5MjAyMkMwMEEyMDAyQzAwMDgzNDAyQzgwMDgzMDBFQworOjEwOTM2MDAwMkMwMDI4MDAwMkM0MDFCQTAwMjJDMDAyMjAwNkMyMDE1QgorOjEwOTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyMDBGOAorOjEwOTM4MDAwMEM5MjBCMkMwNEM4MDQzQTAwMENCNDAzRTgwMEM4MDA4QgorOjEwOTM5MDAwMkUwMDBDODAzM0UxNDBFODAwMzYwMDBDODAwM0MwMDM0RgorOjEwOTNBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNEMDA3OAorOjEwOTNCMDAwMEZEMTBCRkMwMUZDMDAzRjAwMEZGMDAzRDgwMEZEMDBCMworOjEwOTNDMDAwM0ZDMDBGRjAwM0ZDODBGRjAwM0ZDMDBGRjAwN0E4MDY2RQorOjEwOTNEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMzAwQ0Y4MDM1NjA3MQorOjEwOTNFMDAwNEU2ODQzNUMwMEU3ODAzOUMwMENDMTAzN0UwMENGMzQ3NworOjEwOTNGMDAwMzVFMTRERjIwMzdDMDBERjM4M0ZDODBGRjgwM0YwMDA4MQorOjEwOTQwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMThDODAwREI4NDIyNjA2QgorOjEwOTQxMDAwMDhBQzBBMkMwMDhCODAyMjMwMDg5MTIyMkM5MDI3NjEwNgorOjEwOTQyMDAwMjJDQTg4RkMyMkJGMDA4QjYyMkZEMDA5QjgwM0IwMDQ4NworOjEwOTQzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVFMjgwQTkwMjI0NDBCRQorOjEwOTQ0MDAwODIzNDQyMDQwMEE5MDAyOEM1NDgzMjAyNEMyMDgzMzBFRgorOjEwOTQ1MDAwMjBDMDA4MzEwMjBEMDBCMzIwMkNDNDBCMzAwMkYyMDFGMQorOjEwOTQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQTAyQjkwNDIyNjBEQworOjEwOTQ3MDAwMjhCMjAyMjYwMDg5ODgwMkMwMDgzMTEyRUMwMDhCMDA1NQorOjEwOTQ4MDAwMkFEMDA4QjAwMkFDMDAyQjAwMkVDMDBCQjAwMkIwMDRGMgorOjEwOTQ5MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVFMjAwRTMwMDM2MjA4QworOjEwOTRBMDAwMEVBNDYzNkUwMEUxQzAxQUMxMEM4MDAzNjg3MENCMDA4QgorOjEwOTRCMDAwMzY4MDBEQjAwMzRDMDBGQjA0M0VDMTBGQjAwM0QwMDQ1NgorOjEwOTRDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODA0REYwMDNGMDA3MQorOjEwOTREMDAwMEZFODAzRkMwMEZEMDAzRjAwMkI5ODAzM0EwMDc3MDBFMworOjEwOTRFMDAwMjdFNDBGRjAwM0ZDMDBERjAwM0VDMDBERjA0M0Y4MDA1RQorOjEwOTRGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMDBBNDY4Q0IyMDNBOTBGQgorOjEwOTUwMDAwMEYyNEEzQUMwMEU5NTAzQUMwMEVCNDgzMkMwOEVCMDA0MgorOjEwOTUxMDAwM0E5MDBFQjA4QkVDODBGQjAwM0VDMDBFQjAwMzkwMDQ3RQorOjEwOTUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQTAwOEJBMDIwODA3RAorOjEwOTUzMDAwMERBODAyMkMwNDg5NDAyOEU4MDhCMjAyMkMwMEFGMDBENAorOjEwOTU0MDAwMDI4MDA4N0MwMzNEODAzRjAwMkZDMDA4QjAwMjM2MDAzNworOjEwOTU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTAwMDM0MDI4QzA3MgorOjEwOTU2MDAwMkIyODRBMjgwMEExMDA2OEQyMEEyMDQyQTQwMUEzMDBBNworOjEwOTU3MDAwMDI0MDBBMzQwMjBEMDAzMzAwMkNDMDBBMzAwMEI4MDA0QgorOjEwOTU4MDAwNTAwMDAwMDAwMDAwMDAwMEI4MDExQTAwODc5MDIxRTQ5QworOjEwOTU5MDAwMkJDODEyM0EwMDg1QzAyQjIxMjg2ODAyQjYwMEE3ODQ4OAorOjEwOTVBMDAwMjM2MDA4Mzg4MDFFMDBCNzgwMkRFMDA4NzgwMjJFMDA2NgorOjEwOTVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzEwMDM4NTRDNgorOjEwOTVDMDAwMEYyNjgzODAwMEUwMzQyOEM4MEUyQzBCOEMwMEUzMDBBQgorOjEwOTVEMDAwNzg0NTBFMzAwMzhFODBGMzAwM0NDODBFMzAwMzkyMDJCMworOjEwOTVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCODAwRjUwMjNGNDRFQworOjEwOTVGMDAwMEQ5MDAzRjgwMEJEMTQxRkMwMEZFMTIzNUM0NDlGNDI4RgorOjEwOTYwMDAwM0ZDMDBGRjQ4MjdENDBGRjEwM0ZDMDRGNzAwN0QwMDY2RgorOjEwOTYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAyQ0IwMDM4QzA5MAorOjEwOTYyMDAwM0NBMDAzRUMwMEU5MDAzRUMwMENCMDAzMjAwNEZCMjE4OQorOjEwOTYzMDAwM0U4MDRGQjQwM0NGMDBDQjAwM0VDQzRGQjA0M0VBMDA5NgorOjEwOTY0MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5ODAwODcwMDIxQzA1MQorOjEwOTY1MDAwMDg0MDAyREMwNEI1MDAyRDAwMkQ3MDAyMUMxQ0I3MDI2RQorOjEwOTY2MDAwMkRDMDBCNzIwMkRDMDA4NzQwMkRDQThCNzAwMkYyMDQwMQorOjEwOTY3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBCQTAwODc4ODJCRTAzNgorOjEwOTY4MDAwMTg3ODIyRDYxMUE0ODIyRkUwMDg3ODAyMTIwMEI3OTQyRAorOjEwOTY5MDAwNkQ2MDRCN0EwMkRFNDBCN0EwMkRFMDBCNzgwNkUwMDA0QgorOjEwOTZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDOTEyODM4MjI4RDQ2MgorOjEwOTZCMDAwOTgwMDA2RUYwNUIxOTAyQ0MxMDlCNDAyMEMwNEIzMDE2NworOjEwOTZDMDAwNkNGMDBCMzAwMkNDMDBCQjAwMkVDMDBCMzAwMkQyMDQ3OQorOjEwOTZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODQwQ0E4MDNCQTA0MAorOjEwOTZFMDAwNENFNTAyRjg4MEVFMDAzRDgwMkNFMDBGMzg4MEZBMDA1NworOjEwOTZGMDAwM0ZBOTBGQTAwM0U4MDBCQTAyM0U4MDhCQTAwM0ZBMDQ0MgorOjEwOTcwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjgwMDI2MDJBMQorOjEwOTcxMDAwMEY4NDAzRTAyNEY4MDAzRTAwNEY4MEEzRTAzMEY4MDBGRgorOjEwOTcyMDAwMzYwMjBGODAyM0UwMDQwODAwM0UwMDBGODAwM0QyMDBDMQorOjEwOTczMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMEI2NDEyRAorOjEwOTc0MDAwNEU5OTBCQTQwMDY5MTAzRTQwMEM5MDAzQTQxMEM5MDA3MAorOjEwOTc1MDAwM0U0MDBEOTIwM0U2MDBGOTAwM0E0MDBFOTAwM0MyMDQyOQorOjEwOTc2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODEwMDIwNDJGRQorOjEwOTc3MDAwMDgxNDlBMjQwMDg5MDA2RTUwMDA5MDAyMjQxMEQ5MDIyNworOjEwOTc4MDAwNkU0MDBCOTQwM0E3MDBCOTAwMjI0MDA4OTAwM0UwMDA0QworOjEwOTc5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNjAwOTkwMEE2NDExNgorOjEwOTdBMDAwMEE5MDA2MkMwMEE5MDk2RTUwMDg5MTAyODQwNDg5MDBEMQorOjEwOTdCMDAwMEU0MDBCOTQwMkU1NDlCOTAwMEE0MDBBOTAwMkM2MDAyNworOjEwOTdDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwODEwMDIyNDA2NAorOjEwOTdEMDAwMDgxMjIyMDQ4MUExMDAyQzQwMDgxNjAyMDQwMDkxMjBFNgorOjEwOTdFMDAwMkM0MDBCMTI0Mjg0ODlCMTIwMjA0ODA4MTAwMkMyMDE4QgorOjEwOTdGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDgwMDM2MDBGNQorOjEwOTgwMDAwMEE4MDAzQTE0MEU4MDAyRTAwMEMwMDIzQTE0MEM4NTBBQworOjEwOTgxMDAwMkUxNDBEODAwM0UwMDBGODUwM0EwMDBFODAwM0VFMDM5MgorOjEwOTgyMDAwNTAwMDAwMDAwMDAwMDAwMDg4MURENDAwRjUwMEJGNDA3QgorOjEwOTgzMDAwMEZEMTAzRjQ0NEREMDIzRDUwMkJEMTIzRjQwMEY5MTA4NQorOjEwOTg0MDAwM0Y0MDBEOTEwM0E0NDhGOTEyM0U0RTFGOTAwM0E2MDIxQgorOjEwOTg1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNDAwQzUwNDNCNDAzMworOjEwOTg2MDAwMEZEODAzQTc4MEZEMDBCMzY4MEREODQzQTUxMEM5QTA4OQorOjEwOTg3MDAwMzI1MTRGNUE0MzM2MDBDOUEwN0E2ODBCRDAwM0M2MDE1MworOjEwOTg4MDAwNzAwMDAwMDAwMDAwMDAwMDc4MThDQTg4ODgwMjAyMDBGQQorOjEwOTg5MDAwOEQ4NDIyMjM0MkY4MDAyMjA0Mjg4QUEyQUE5NDg4RTkwRgorOjEwOThBMDAwMjBBODBBODAwQTIxNDA4MEUyMkUyODBCODAwMkNFMDRFNAorOjEwOThCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDIwQTEwNEE4QzAzQQorOjEwOThDMDAwMEIxQzJBMjQwMDM5MDQyMDQwMkExRTAyRTQ4MEIxMTAxNworOjEwOThEMDAwMkE0ODA5MTQ0NjA0MDA4MTM4MkM1QjBCMTAwMkQyMDA4MAorOjEwOThFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MDVBNDEyQTkyNDIyNDA0NgorOjEwOThGMDAwMjk5MDAyMjQwMDM5MDAwMjU4MDgxODEwRTYwMUI5MDAyNgorOjEwOTkwMDAwQUE0NDA4OTAwMjI0MDA4OTAwMEU0MTBCOTAwMkM2MDQ2QworOjEwOTkxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwRTEwMTJBNjRFRQorOjEwOTkyMDAwMkY5NDEzMjQwMjcxNjAxMjYwNEQ5MDAwQzUwMkY5MDA1QgorOjEwOTkzMDAwM0E0MDBGOTAyMzI0MDJDOTAyM0E0MDBGOTAwMkU4MDRGMworOjEwOTk0MDAwNTAwMDAwMDAwMDAwMDAwMDY4MDFBNDAwRDkwMDNFNjA0MworOjEwOTk1MDAwQUY5MDgzNjQ4OEY5MjAzRTYyMDM5MDgzQTQwMEM5MDAxRAorOjEwOTk2MDAwMzY2MDBGMTAwM0M0MDBGOTAwN0U0MDBGOTAwM0RBMDA0OAorOjEwOTk3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMTAwQzg4MjMyMDA0MgorOjEwOTk4MDAwNkYwMDAzQTAwMEQ4NDAzMDAwMEU4MDAzNjAwNEY4MDE4RgorOjEwOTk5MDAwM0UxMDRGODA4QjIyMDBGODAwMzIwMTBFODAwM0NBMDQ3MworOjEwOTlBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDEzODAwMEUwMEE5OTBFRgorOjEwOTlCMDAwMkZFNjIwODgwMDlFODAyMzgwMEFFODAzMjgwMEJBMDA1MgorOjEwOTlDMDAwMTg4MDBERUMwMjM4ODBCQTAwQTI4MDA4QTAwMzhBMDAzQgorOjEwOTlEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAyODM4MDIwQzhDMQorOjEwOTlFMDAwMEIyMDAyMEMwMTkyMTA2OEMwM0EzQzAyQ0MxMDNCMDJFMgorOjEwOTlGMDAwMENDMDI4M0MwMjRFMDBCMzAwMjhDMDI4MzAwMkNBMDAyOAorOjEwOUEwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODc0MjJCQzA5RAorOjEwOUExMDAwMjk3MDIyOUMwMEI2MDAyQkMyMEE2MDg2MUMwMEI3MjE2OAorOjEwOUEyMDAwMjlDMDAwNzQwMjVDMDAzNzkxMDFFMDA4NzQwMkE4MDBBQworOjEwOUEzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4MDIxRTBEMAorOjEwOUE0MDAwMkY3ODAyOUUwMDk2ODAzOUUwMkVGODAzREUzMEY3RDBBMgorOjEwOUE1MDAwMkRGMjAwNzgwMzUyMDBGN0EyM0JFMDBFNzgwN0VBMDJFRAorOjEwOUE2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCNDAwRkIwMDBDQzA1NgorOjEwOUE3MDAwMEYzMDAzRUMxMEQzMDBCNEMwMkY4MDAzNkM0OEZCMDAwMAorOjEwOUE4MDAwM0VDODREOTAwM0E0MDBGQjIwMUVDMDBGQjAwM0MyMDZDOQorOjEwOUE5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0M4MDJCMkNDMAorOjEwOUFBMDAwMkZGODAzN0UwMDZFODAzQkExMEREODQzM0UwMEZGOTA0RgorOjEwOUFCMDAwMzNFMDBGRTkzM0ZFMDBDRkMwM0ZFMjBGRDgwM0MwMDAxMAorOjEwOUFDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCNDQwODcwMDIxMDRDRAorOjEwOUFEMDAwMDg3ODAyMUMwMDg2MDAyMUMwMjg5MDAyREMwMEI3MTAyNAorOjEwOUFFMDAwMjFDMDBGNzMwMkNDMDA4NzAwMkRDMDBCNTAwMkVBMDA4QQorOjEwOUFGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RDAwQTQwMDI5NDg1NAorOjEwOUIwMDAwNkFGMDgyNEMwMEFFMDBBMUM0Mjk3NDAyNUM0MEEzMTAyQworOjEwOUIxMDAwNjFDMjBCNjAwNkM4MDA4NzAwMkRDMDBCNTAwMkMwMDQ1NAorOjEwOUIyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNjAxQTMwMjIwNDBGNQorOjEwOUIzMDAwMjgzQzAyMEMwMDgzNDIyMEM4MDgxMDAyQ0QwMEIzMDA2QworOjEwOUI0MDAwMjhGMDBCMzAwMkNDMDE4MzA0MkNDMDgzMTAwMkM4MDQxRgorOjEwOUI1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQTgwRUIwMDM4QzAwQgorOjEwOUI2MDAwMEE5MDAzN0MyMkEyNDAzMjQ4MERCMDBCM0UwMEZGMDA1OQorOjEwOUI3MDAwMzNGNDBGOTAwM0VDMDA4RjAyM0ZDMDBGOTAwM0VBMDQxMAorOjEwOUI4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDAwRDkwMjNFQzAzQworOjEwOUI5MDAwMEVCNjAzRUMwMEZBMjAzRUMwNEYyNDIzQUM2MEZCMDA1RAorOjEwOUJBMDAwQTZDMDBFOTAwM0U0MDBGQjAwM0NDMTBGOTAwM0UwMDA1MAorOjEwOUJCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAyQ0YwMDMzRTA4OAorOjEwOUJDMDAwMkNGMDEzQkMwMDJFMTBCMTY0MkVGMDAyM0MwMEZGMDJGQQorOjEwOUJEMDAwM0ZDMTRERUM2M0ZFMDBCNzAwM0JDMDBDRDgwM0MwNDQ0RQorOjEwOUJFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzI4ODE4MTIyRTAyOQorOjEwOUJGMDAwMEEzODAyM0MwNEJBQzkzMkUwMjA4NDAyMkMwMEJCMDBCRgorOjEwOUMwMDAwMkVDMDBCOUMwMkU3ODFCQjA0MjJDMDBBOTkwMkUwMDAyRgorOjEwOUMxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODQwODg4MDIyODg5NQorOjEwOUMyMDAwMjhCQzQyQUMwMEJBMDAyQTgwMDg4NDAyQUMwMEJCMDAwOQorOjEwOUMzMDAwMkVDMDBCQjA4MkU4OTBBQjAwNjJDMDA4QjAxMkUwMDAwQQorOjEwOUM0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODkwMDJBODA5NQorOjEwOUM1MDAwMjhCMjAyMEMwMEJBMDAyMEMwMDgwMDAyOEMwMEIzMDAzOQorOjEwOUM2MDAwMkNDMDBCMzAyMDRDMTRCMzAwMjBDMDA4MzAwMkMyMDFCRAorOjEwOUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2ODAwQzgwMEIyQzAzNQorOjEwOUM4MDAwMkNCMjAzQUMwMEZBMDAzQUMwNEVBNTAzQkMwMEZGMDBBMgorOjEwOUM5MDAwM0ZDMDA5QTAwM0U5MDRFRjAwQkFDMDBDQjAwMUMwMDE0NQorOjEwOUNBMDAwMTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDM1QzAwNQorOjEwOUNCMDAwQUYzNDAzRkMwMEY0MDAzOUMwMEZDMjAzN0MwMEZGMDE4NQorOjEwOUNDMDAwM0ZDMDBGRjAwM0ZDQTBGRjAwM0ZDMDBGRjAwM0U4MDUwQQorOjEwOUNEMDAwNjAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwRkYyOTNEMjBERQorOjEwOUNFMDAwOEVDMTAzMzI0OERDODAyMzI1MEVGMjAzM0NDMERGODRBMgorOjEwOUNGMDAwMzNDOTBGRjIwM0ZDMDBDRjgwMzM0MDBDRjIwMzMwMDA3NQorOjEwOUQwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0MwQkI2MDJFMDg1NgorOjEwOUQxMDAwMDg4MTAyMjAwNDg4MjAyMDQ4MDhGMTgyMkRDMDgzMDA5OQorOjEwOUQyMDAwMjJENDA5RjUwMkZDMDg4QjAxMjI0MDI4QjQwMjIwMDQ0OQorOjEwOUQzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzIwQjMwOTJDODIxMAorOjEwOUQ0MDAwMDgxMDE2QTAxMDkwMDgyODQ4MEEzMjAyMEMwMEJCMDAyOAorOjEwOUQ1MDAwMkNDMDBCMzAwMkNDMDI5MzAxMjAwMDhBMzEyMkUyMDE5OAorOjEwOUQ2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QkIwMDJDODA5NworOjEwOUQ3MDAwMDg4NjAyQTAyMEEwMDAyQTYwMEFCMDEwMkMwMEFCMENCQworOjEwOUQ4MDAwNkVDMDA5QjAwMkNDMDA5QjAwMjI2MDBBQjAwMkYwMDQ1MQorOjEwOUQ5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFQzAwQkIwMDNFMzQzNQorOjEwOURBMDAwMDhBMDBCODMwMEQ5MDIzQUUwMkVCMDBCMkMwMEY4ODBGQgorOjEwOURCMDAwM0VDMDRGQjAwM0VDMDBDQTQwQjI3MjBFQjAwQkMwMDRGQworOjEwOURDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzEwRkIwMDNGMDAzQworOjEwOUREMDAwMERGODEzNzA0OERENDAzN0MyOERGMDAzREMwMEREQzg5QworOjEwOURFMDAwMTNDMDBGRjAwM0ZDMDBFRTQwN0Y0MDBENzAwMzM4MDBGRAorOjEwOURGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMTMyQzAxOQorOjEwOUUwMDAwMDQxMDAzMjA0MEU4MTAzQUMwMERCMDAzQUMwOEY4NDAzRAorOjEwOUUxMDAwQjJDMDJDQjAzM0E0ODJEQTQwQkE0MDBGQjAwM0QwMDRGMQorOjEwOUUyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA4QkY4MDIyQzhEOAorOjEwOUUzMDAwMDhCNzAwMjM0NDg4RDAyMkQwMDg3MDgyRkMwMEIyRTAyQQorOjEwOUU0MDAwMDNGNDA4RjUwMjM3MDQ4QkQxMjI2MDRCRkQwMkYyMDBDNworOjEwOUU1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjMxMEE0NDBFQQorOjEwOUU2MDAwMDgwMDAyNDgwMEEwNDIyQUQwMDEzMDAyOEMwMEIzODBEMgorOjEwOUU3MDAwMkNDMDA5MzEwMkNDMDA4OTAwMjJFODAzMzgwMkY4MDAyNgorOjEwOUU4MDAwNTAwMDAwMDAwMDAwMDAwMDYwMDExRTAwQjc4MDI3NjQ0MQorOjEwOUU5MDAwNjg0QTAyNTIwMDhDODAyMUUwMDg3ODAyREUwMEI3ODAxOAorOjEwOUVBMDAwMkRFMjE5MzkwMjVFMzA4NTk4MjFFNDBCNzkwMkQ4MDA0MQorOjEwOUVCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMyMDM0MDBCRgorOjEwOUVDMDAwMENCODAzNDg4MEUyMjIzOEMwMEQzMDAzOEMwMEYzMDA0OAorOjEwOUVEMDAwM0VDMDBEMzEwM0VDMDBDQjAwMzgwNjBGMzA4M0QyMDJCOAorOjEwOUVFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNCMDExRQorOjEwOUVGMDAwMEZEMDAzOTAwMEY2MDAzRkMwMEZGNDAxRkMwMEZGMDFGQgorOjEwOUYwMDAwMzNDMjBFRjUxM0JDMDBFRDAwM0ZDNDBGRjAwM0QwMDZDMgorOjEwOUYxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDNDQzA1MQorOjEwOUYyMDAwMEVBMDAxNjQwMUQ4MDAzMkUwMkNCNTAzMkMwMEYyMDAzMQorOjEwOUYzMDAwN0FDMDBEQjQwMzJEODBDOTAyMzJDMDBDQjAwMzJBMDBEMAorOjEwOUY0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA4OAorOjEwOUY1MDAwMEQ2MDAyRDAwMTg0MDAyMUMwMDgzMDAyMUQwMEI3MDA0RQorOjEwOUY2MDAwMjFDODBCRjQwMzFFQzA4NjAwMjFDMDA4N0MwMzUyMDRFNAorOjEwOUY3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RUMwQjc5MDJERTAwRgorOjEwOUY4MDAwMDg3ODA2RDYwMUI0ODIyMUUwMDg3ODBBMUUwMEI1QzAyMAorOjEwOUY5MDAwMjlFODA5NzgwMjM2QzE5NzgwMjhCMDBBN0EwMjMwMDA5MQorOjEwOUZBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQkIwMDJDRTBBMgorOjEwOUZCMDAwMDkzNTgyQzBDMUEwNTEyMEU0MDgzMDAyOEMwMEJCQzQyNgorOjEwOUZDMDAwMjBDMDBCMzAwMjA2MDA5MzE4QUFCMDJBMzAwQTUyMDRBRgorOjEwOUZEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwMTNEQUNDOAorOjEwOUZFMDAwNENFQzEzNzgxMEY2ODBCMzkwMENBMDAzMjgwMEZFMDAxMAorOjEwOUZGMDAwM0E4MTBEQTAwRjJBODBERTA0M0JBMDBFQTAwMzNBMDQ5NAorOjEwQTAwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA5MgorOjEwQTAxMDAwMEQ4MDAyRTEwMEQ4NDgzRTEyMEY4MDEzNjAwMEY4NjAwNgorOjEwQTAyMDAwM0UwMDA3ODAwM0EwMDJFODA0MjYwODA1ODAwMzkyMDA5MgorOjEwQTAzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwNDNBNDA3RAorOjEwQTA0MDAwMEMxMjAzMjQ4MkM5MDAzNjQ0MEYxMDAzMjQwMEY5MDBDNworOjEwQTA1MDAwMzY0MDA0OTAwMzA0MDBDOTAwMTI0MDBDOTAwMzAyMDQyRgorOjEwQTA2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk4MTIyNDAzQworOjEwQTA3MDAwMDg5MDFBMjQwMDg5MDAyMjY4MEI5OTAyMjQwMEI5MDA3NAorOjEwQTA4MDAwMjI0MDY4OTAwQTI0MDA4OTAwQTI0MDA4OTAwQTIwMDAxQgorOjEwQTA5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkxMDIyRTBBNAorOjEwQTBBMDAwMDg5NDAwMDQwNDhCMDgyNkMwMEI5MDAyMjQwNEI5MEMwOQorOjEwQTBCMDAwMjQ0MDBBMTAwMjI0MDAyMzAyMkE0MEE4MTAwMjA2MDBBRAorOjEwQTBDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwQjEyMDIyNDA3RAorOjEwQTBEMDAwMDgxMjAyMEMxMDgxMDJBMDUwMEIxMjAyMDQ4MEIxMDU3QworOjEwQTBFMDAwMDA0ODBBMTAwMjA0QTBBMTAwMjg0QTA4MTIwMDAyMDEzOAorOjEwQTBGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MEJBMTRFNAorOjEwQTEwMDAwMEM4NTAzMDE0MkM4NTAzNDAwMEY4NTAzMjE0MEY4MDAzQworOjEwQTExMDAwMzYwMDBFODAxMzIwODBFMDAwMUEwODBDMDAwMzJFMDM4NgorOjEwQTEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQ0RjkxMDNGNDA3QQorOjEwQTEzMDAwMkZEMTEzRjQwNEY1MDAzRjQwMEY5MTBCRTQ0MEZGMjhBQQorOjEwQTE0MDAwQkU0RTBEOTY4M0Q0QTJERDI4Mzc0QTBGOTM4M0U2MDZEMAorOjEwQTE1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNDEwQ0QwMDNGNDBCMgorOjEwQTE2MDAwMEZEMDAzMzUwMjVEMDEzMTQ0MEZEMDAzMjQwMEY5MDAwNAorOjEwQTE3MDAwMzI2MDBDOTg4M0U2NDBEOTAwMzY2QTBDOUU4MzI2MDEzMworOjEwQTE4MDAwNjAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwODgwMDJFMDA5MQorOjEwQTE5MDAwMEI4MDQyMDI4MDhBMDAyMjIwODg4MDAzMjAwOEI4ODIzNworOjEwQTFBMDAwMjIyMTA4ODg4MkUyNDI4OEE4MjIyMDA4Q0UwMjBFMDREQQorOjEwQTFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAyODEwMDY4NDA3MworOjEwQTFDMDAwMEIxMDAyODQwMUI5MDAyMDQwNDkxMDBBMDQwMEI1MDhCMAorOjEwQTFEMDAwMjE0NjA4NTAwMkQ0MDA4RDIwMjU0QTBCNTAwMjQyMDEyRQorOjEwQTFFMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwODkwNDZFNTQyMworOjEwQTFGMDAwMEIxMDEyQTQwMUE5MDBBMjQwMTg5MDE2MjQwMEI5MDA2NworOjEwQTIwMDAwMjM0MDE4RDAwMkY0MDA4RDQwMjE0QTBCRDAwMjQ2MDRBRQorOjEwQTIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDNBNTBGMgorOjEwQTIyMDAwOEY5NjBCODQwMkYxMDEzMDQ4OEQ5MDAzMjQxMEY5MDBDMQorOjEwQTIzMDAwQjI0MDJDOTAwM0U2NDBEMUMwMzY1MDJGOTAwQjY4MDRGQQorOjEwQTI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNjAzQQorOjEwQTI1MDAwMEY5OUMzNjQwMEQ5MjgzRTQwMEQ5MDAzQTQwMEY5NDAzMworOjEwQTI2MDAwM0U0MDBGOTAwM0U0MjBGOTQwM0U0MDBDOTAwMzhBMDBFQQorOjEwQTI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMTM2MDA3NworOjEwQTI4MDAwOEY4MDAzRTAwMkY4MDQzMjAwMEQ4MDQzMjAwMkNDMDBFRQorOjEwQTI5MDAwM0YwMDBGQzAxMzkwMDJEQzQwM0YxMDRDQzAyMzBBMDQ2MworOjEwQTJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDIyODBERAorOjEwQTJCMDAwMEJFODIwRjgwMDRFQzAyM0EwMDhBMDAzNjgwMDhBMDAyNQorOjEwQTJDMDAwMkU4MDFGQTAwMjJBMDY4QTAwMkVBMDAyNjAwMzBBMDAyOAorOjEwQTJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjMwMDIwQzAxMgorOjEwQTJFMDAwMEIzRDAyQzAwMzIzMDAyMEUwMDFCMDA2NEMwMDhCMDBCMAorOjEwQTJGMDAwMkVDMDRCMzAwMjhFMDg4MzgwMkNDNDAwMzQ4RTRBMDA1RQorOjEwQTMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzgwQjU4MDYxQzA2QQorOjEwQTMxMDAwMEI0MDAyRDQwMDg0MDgyM0MyMDg1MDAyNUVDMDg0MDFBRQorOjEwQTMyMDAwMkQwMDhBMDgwMjEwMjQ4NDA4NkQwMDBBMDMxMjI4MDBGOAorOjEwQTMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4MjIxNjAxNworOjEwQTM0MDAwMEY3ODAzRDYwNEFFODAzMUUwMEQ1ODIzN0UwMEM2ODAxRQorOjEwQTM1MDAwMkRFMDBCNzgwMzhFMDBENzgyM0RGMDBDN0EwMzZBMDI2MQorOjEwQTM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwMEJBRDg5OQorOjEwQTM3MDAwMEY4MDAzRTQxMkY4MDBCRTgwMEUxMDAzRUMwMEY5MDAxOQorOjEwQTM4MDAwM0UwMDVGODAwM0UwMDhGODA0M0MwMDBGODAwM0MyMDYzMworOjEwQTM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTIwRkY4MDNGRjA0QworOjEwQTNBMDAwMEZGODAzRDIwMEVGODRCMzYxMENCOTAzRkUwMEZGODAwNQorOjEwQTNCMDAwMzNFMDBDRjgxMzIyMTFDRDkwM0Y2MDBDRTgwMzEwMDAzRAorOjEwQTNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwRjUwMDJEQzBFNgorOjEwQTNEMDAwMEIwMDAyRDQwNDg0MjAyMzQwMDg1QTAyREMwMEI0MDA5RAorOjEwQTNFMDAwMjEwMDI4QzIwMjFFMDQ4NjA0MkQ4ODA4RDAwMjJBMDRGNworOjEwQTNGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA5QzAwQjUwMDJENDAyRgorOjEwQTQwMDAwMEI3MDAyRjQyMEE3MDQyMUMwMEE1MDAyREMwMEJFMDAzOQorOjEwQTQxMDAwMjFDMDA4NzAxMjAwMDA4NTAwMkQ0MDg4NjgwQTA0MDBFMQorOjEwQTQyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDQzAwQTEwMDJFQzAzRAorOjEwQTQzMDAwMUIwODA2QzQyMDgwMDAyMDk4MUExMDAyQ0MwMEIxMDgyNgorOjEwQTQ0MDAwMjAwMDA4MDAwMjBDMDE4MkMwMkNBQzI4OTAyMjE4MDRDNQorOjEwQTQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQjMwMDNFNDAyMgorOjEwQTQ2MDAwMEZCQTAzRTUwMkU5MDQzMjkwQUVCMDAzRkMxMEZCNDBFMgorOjEwQTQ3MDAwQjIwMDBDODAwQjJDMDI4MjE4M0ZBMDBDRDAwMzJFMDREQgorOjEwQTQ4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzA0RkIwMTNFNDA3MgorOjEwQTQ5MDAwMEZCNjQzRTQwMEY4MDAzRTgwMDE5MDAzRUMwMEY4ODEyMQorOjEwQTRBMDAwM0VEMDBEQjQ1M0UwMDBGOTQwM0U0MDBGQTAwM0UwMDA2MQorOjEwQTRCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBEQzAyQ0Q4MDMzNjAxRQorOjEwQTRDMDAwMkNEQTAzRkMwMEVDMDAzMzQwMEZGMjAzN0MwNEZFMDBBNgorOjEwQTREMDAwMzIwMDBDQzgwMzNDMDBDRTAwMzE4MDBDRDEwMzI0MDRCMAorOjEwQTRFMDAwMzAwMDAwMDAwMDAwMDAwMDkxMDQ2QzAwMDkwMDJBNjRBNAorOjEwQTRGMDAwMDg4RTAyQzIxMEEwMTAzRTEwMEI5ODAyRUMwMEI5MDBBQQorOjEwQTUwMDAwMDJEODA4QkUyMjIwMDA4OTAwMjI1MDA4QTAwMjIwNDA2NAorOjEwQTUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwMEIyMDIyNDBFRAorOjEwQTUyMDAwMDhBMDAyRTU0MkFCMDQyMjE4MEJCMDAyNkMwMEIzMDA5NQorOjEwQTUzMDAwMjAwNDA4MDEwMjAwMDRBODQwMjIxMDA4ODAwMjIwMDAyNAorOjEwQTU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzA4ODMwMDI4NDBDMAorOjEwQTU1MDAwMDgwNDAyQzQwMkE4MDAyQzAwMEIxMjAyQ0MwMEIwMDBCOAorOjEwQTU2MDAwMjBDMDQwMzAwMjBDMDA4QjAwQThDMDA4MzAwMjAyMTE0RAorOjEwQTU3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwQzkwMDMzNDBBNgorOjEwQTU4MDAwMENCMDAzRUMwMkVCMDAzMjQwMEZCMDAzNkMwMEZBMDA5OQorOjEwQTU5MDAwMzIwMDBDODAwMzIwODBDODAwMzAwMDBDODAwMzIwMDNCMAorOjEwQTVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkQwMDNGNDAyQQorOjEwQTVCMDAwMEZDMjEzRjAwMEY0MDAzRjAwNEZENDAzRkMwMEY1MDA3RAorOjEwQTVDMDAwM0ZDMDhGRjAwM0ZDNDBGRjAwMzdDMDJGRjAwM0U4MDZDOAorOjEwQTVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDAwQ0MwMDMzMDA1NworOjEwQTVFMDAwMEVEMDBCMzMwMENDMDAzM0UwMEZDMDgzN0MwMENGMjBCMworOjEwQTVGMDAwN0IwOThDRjgwM0ZFNTBDRjM4M0ZFMTBEQzIwM0YwMDAxOQorOjEwQTYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMjAwOTgwODIwODAyOAorOjEwQTYxMDAwMDg5ODAyMjAwMDg4RDAyMkUwMEVCNDIyN0QxOTlGNjk5QworOjEwQTYyMDAwMkU5MDA4MzA5MjI4ODFEQjY0MkVFMTg4MTZBMkUwMDQ4NworOjEwQTYzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDODAwOTAyNDIwMDFDMAorOjEwQTY0MDAwMDgxMDE2MDA4MjgzMDEyOEMxMEIwMjgyMENFMEEzMTBCRgorOjEwQTY1MDAwMjgwRTFCOTIwMjg0ODQ5MzIwMkVDMDA4MzEwMkUyMDE0RQorOjEwQTY2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODEwOTgwMDIyODBCMworOjEwQTY3MDAwMDg5MDAyMDA2MDhBMTAyQUMwMEEyMDAyNkMxOEJCMDBGMQorOjEwQTY4MDAwNkU2MDJCOTAwMjQ2MjA4QjAwMkVDMjA4QjE4MkYwMDQyRgorOjEwQTY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFNDAyQ0IwMEIyNDA2NgorOjEwQTZBMDAwMkM5MjAzMjcwMDg4MDBCQUMwMEY4ODAzMkMwMEVCMDQwQgorOjEwQTZCMDAwM0FBMENGMkNBM0VEMDA5QjAwM0NGMDJEOEMzM0QwMDRBRQorOjEwQTZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDA0RUYwMDNGQzA5MworOjEwQTZEMDAwMEQ1MTAzRjAwMEYxODEzN0MwMEVGNDAzOUMxMENGMDA0MAorOjEwQTZFMDAwM0Q4MDBDRUMwN0I4MDhGRjAyMUZDNDBGQzgwM0Y4MDAzOAorOjEwQTZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA5RTAwQzMwMDM4NDBEMQorOjEwQTcwMDAwMEM5MjAzQTQ4MEZCMjAzQUMwMEQ5NDAzMkM0MEZCMDA2NAorOjEwQTcxMDAwM0UwMTBGODAwM0U1MDBFQjAwM0FDMDBEODQwQjEwMDRFRQorOjEwQTcyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzA4OEIwMjIyQzA5OQorOjEwQTczMDAwMDg5MjAzMjEwMDhCNDgyMkMwMEJCNzAyM0Q0MDNGMDEyNQorOjEwQTc0MDAwMjI3NDBCOTAwMjI4MDRCRjAwQjJDMDBCODUwMjMyMDBCNQorOjEwQTc1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAxODAwMDI4MDBFQgorOjEwQTc2MDAwMDgyQzEyODg0MEIwNDAwOEMwMEIxODAyMEUwMEIzMDAzRAorOjEwQTc3MDAwMjgyMDExMzAwMjBDMDBCMzAwMjQwMDA5MDAwNjM4MDAyNAorOjEwQTc4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwODQ4MDIxQTA4MQorOjEwQTc5MDAwMjg2ODEyM0EwMDg0ODAyNUUwOEI1ODAyMUU0MEI3ODI1OAorOjEwQTdBMDAwMjFBNjBCNzgwMjFBMDBCNzgwMjEyMDBCNTgwMjA4MDA1RQorOjEwQTdCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODAwQzgyMTM4MDlENworOjEwQTdDMDAwMEMyODAzODAwMUYxMDAzOEMwMEQ4NTAyMEMwMEZCMDA0RAorOjEwQTdEMDAwMzg4NTBGMTAwMzhDMDBFQjEwM0NDODBEMzAwMzEyMDJCQgorOjEwQTdFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5ODAwRkMwMTNGODBCOAorOjEwQTdGMDAwMEY2ODAzRDA0MEZDMDAzQkMwMERDMDAzRkMyMEZGMDBFRAorOjEwQTgwMDAwM0JDNTBGRjAwQkI0NDBGRjE4M0YwMDBGRjEwM0QwMDYxQgorOjEwQTgxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwRUIwMEIwNDE2QgorOjEwQTgyMDAwMENBMDAzRTAwNENBMDRCMEUwMEVCMDAzRUM4MENCMjAxRgorOjEwQTgzMDAwMzI4MTBDQTAwM0VFMDBEQjAwM0UwMDBFQjAwMzJBMDBDNAorOjEwQTg0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDA0ODcwMDIxQzAzRgorOjEwQTg1MDAwNDg2MDAyRjAwMDg3MDAyMUMwMDg3MDAyRkNBMDgzMjgzNQorOjEwQTg2MDAwQTM4MDA4NjAwMkRDMDA4NzIwMkRDMDBCNzAwMjEyMDQ1OAorOjEwQTg3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QzAyQTM4MDIxNjA3NgorOjEwQTg4MDAwMDg2ODAyRDIwMDg3ODAyMUUwMjk3ODAyREU4MDg3OTA2NAorOjEwQTg5MDAwMjFBMDE5NDgwMkZFMDA5NzgwMkRFMDBBMzg4MjMwMDA3RQorOjEwQThBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxODM4MDIwQzA3QworOjEwQThCMDAwMDgyMDQyQzAzMDgzNzBBMEMwODkzNDAyQ0MwMjgzMDBEQgorOjEwQThDMDAwNjBDMDI5MDAwMkNFMDA4MzAwMkNDODBCQkMwMjEyMDQxOQorOjEwQThEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTAwRUFFMjMyOTAxNAorOjEwQThFMDAwMkNFMDAzRkIwMkNFQzAzMjgwMEZFNDAzRTgwMDhBMDBCNAorOjEwQThGMDAwMzM4ODBENjRDM0ZBMDBEQTAwM0Q5MDBFRTAwQjNBMDQ5MQorOjEwQTkwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDI0RjgwODNFMTI2QgorOjEwQTkxMDAwMEZDMDAzRTA0OEYwMDAzRTAwMEU4MDkzQzAwMEY4MDAzNgorOjEwQTkyMDAwN0UwMTBFODBDMkUwNDBGODAwN0UwMDhGODQwM0QyMDBEQQorOjEwQTkzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwQzEwMTMyNDhBRQorOjEwQTk0MDAwMEM5ODAzRTY0MEM5MDAzMjQwMEY5MDAzNjYwMEM5MDAyRQorOjEwQTk1MDAwMTg2MTBDOTAwMzY0MjBGOTA1M0U0MDBDOTA4MzAyMDRCQQorOjEwQTk2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NjIwODkwMDIwNTJCMgorOjEwQTk3MDAwMjgxMEMyMjYwMkE5MDAyMjQwMEI5MDBBMjcwMEE5MDAzNQorOjEwQTk4MDAwMjI3MDA4OTAwMjI0MDhCOTAwMkU0MDBBOTAwQTIwMDA4NAorOjEwQTk5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAyOEQwMDIzNDA3NAorOjEwQTlBMDAwMDhEMTAyODQyMDg5MDAyMjYwMEIxMUYyMjRCMDgxMDBCQQorOjEwQTlCMDAwMkE0NjA4OTA0MjY0MDhCOTAwMkU0MDA4OTIwMjA2MDAxOAorOjEwQTlDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDgwODUyMDIzNDg5NworOjEwQTlEMDAwMDg1MjAyODQwODgxMDAyMDQwMEIxMjAyMDQ4MEExMjA0QQorOjEwQTlFMDAwMjg0OTI4OTAwMjA0MDAzMTIwMkU0MDA4MzIwMjAyMDEzQQorOjEwQTlGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQzg1MEIyMTQ1NAorOjEwQUEwMDAwMENDMDAzQTE0MEM4MDBCMjAwMDc4NTAzMjE0MEM4NTAxNAorOjEwQUExMDAwM0ExNTBDODUwMzYxNDBGODUxM0UwMDJDODUwMzJFMDM0NgorOjEwQUEyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURDNDQ4RjkxMDNFNDQ4QQorOjEwQUEzMDAwNEY5MTAzNzQwMEY1NDQzRTQwMEZEMTAzRTQ0MEY5MTBGOAorOjEwQUE0MDAwMzc0NDBGRDAwM0Q0MDBGOTEwM0ZDMDBGRDEwM0U2MDZGRQorOjEwQUE1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVGNkEwREQ4QzMzNzhBRgorOjEwQUE2MDAwMEVEQTAzMzUwMENEQTAzMzQwMERGODBCMzY4MUU5ODBCNgorOjEwQUE3MDAwMzM3MDBDOTEwM0U0NDBGOUMwM0VDMDBGREMwM0M2MDAwNAorOjEwQUE4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA0Qjg0MDIwM0NENQorOjEwQUE5MDAwMEM4NTAyMDI4NDhBNDAyMjAwMDg4RjgyMjMwMEI4RThENQorOjEwQUFBMDAwMjIyMDA4ODgwMkUyMDBCOEQwMkUwMDBCOEMwMkNFMDRDRgorOjEwQUFCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwOTEwMDYwNDg1QworOjEwQUFDMDAwNEIxMDAyMDQ4QTgxNDA2MDQwNDkxMDAyOERBMEExNDFEMAorOjEwQUFEMDAwMjA1MDA5MTIyMkM0ODBCMTIwMkM0MDRCM0UwMkMyMDFGQQorOjEwQUFFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA4QjkwNEEwNDA4MAorOjEwQUFGMDAwNDhCMDAyMjQwMDg5MDA4MjQwMDg5MEE2QTQwMEI5MDQ0RQorOjEwQUIwMDAwMjI1NDI5OTUwMkU1NDBCOTAwNkU0MDBCOTIwMkM2MDQxQQorOjEwQUIxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNDAwOTEwMDMyNDA0OQorOjEwQUIyMDAwMEY5MDA5MjQwMDg5OTAzMjQwMEQ5NDAzQTQwMEU5MDI5QgorOjEwQUIzMDAwNzI2MDBEOTQwM0U0MDFGOTAxM0U2MDBGOTAwM0U4MDQ5NAorOjEwQUI0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDQwRjkwMDNFNDAxMQorOjEwQUI1MDAwNEY5MDAzRTcxMEY5ODAzRTQwMEYxMDEzNjQwMEYxMDA5RQorOjEwQUI2MDAwQkU0MDBFOTAwM0U2MDhGOTAxM0U2NDBGOTAwM0NBMDA1MAorOjEwQUI3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjgwMDMyMDg3QgorOjEwQUI4MDAwMEMwMTBCMjA0MEM4NDAzMjAwMEU4NDgzMjAwMEY4MDRFMgorOjEwQUI5MDAwM0UwNDBGODAwMzIxMDBFODAwM0UxMDBGODgwM0NBMDQyMgorOjEwQUJBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwM0UwNDIzODAzQgorOjEwQUJCMDAwMDhFQzEyMzk0NEE2MDAyODgxMDhFMDAwMzgwOEJBMDBFMQorOjEwQUJDMDAwM0Y4MDBCQTAwMkE4MDA4QTAyMkU4MDBCRTAwMkNBMDA4MAorOjEwQUJEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0ODAwMzEwMDI0RDA5QgorOjEwQUJFMDAwMDgzRTEyQUUwODgxQTAyQ0MwMEEzODAwNEMwMEIzMDAwOQorOjEwQUJGMDAwNkVDMDBBMzAwMjBDMDBBMzAwNkNDMDBCMzAwMkNBMDAwOQorOjEwQUMwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExODAwQjUxMDI1QzA5MQorOjEwQUMxMDAwMjg2MDEyOTAxMEE1MDgyREMyMDg2NDIyNTgxOEI3MDBBOQorOjEwQUMyMDAwMkQ4MDBCNzkwMkJFQzA4NzAxNkRDMDBCNjAwMkU4MDA2OQorOjEwQUMzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjU4NDM1MjAzOAorOjEwQUM0MDAwOEMxODAyOTIxMEM1ODAzRDYwMEVDODBCNUEwODc3RjMyRAorOjEwQUM1MDAwM0RBMDBGRjgwMzFFQjBFNzg1M0RFMDBGNzgwM0VBMDI0MAorOjEwQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjEwNEJBMDE2MworOjEwQUM3MDAwMEZBMDQzNjAwOUUxMDAzODQwMEVBMDAzQTgxNEZCMjA5OAorOjEwQUM4MDAwM0E4MDBGQjQxQjRDODBGQjI5M0VDMDBGQjAyM0MyMDY5NAorOjEwQUM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0Q4MDNCRTBFRAorOjEwQUNBMDAwNEVGODAzRjIwMkQ0ODEzQkUwOEU5ODA3M0U0NEVGOTFDOAorOjEwQUNCMDAwM0ZFMDRGRkMwN0VFRDBDRjk4MzNFNDBGRjgwM0MwMDAxRAorOjEwQUNDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDE5ODAwODUxMDJEQzQ0RAorOjEwQUNEMDAwMEQxMTAyRjAwMDg1MjAzMUM0MEI3QjAwMzg0MEQ3MTBFNQorOjEwQUNFMDAwMkQ4MDBCNzA2MkZFRTE4NzE0MzlDMDBCNjAwMkVBMDQwQworOjEwQUNGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTBCQzQwQTUwMDI5NDBEQQorOjEwQUQwMDAwMEI1MDgyREM0MDg0MDQyREMwMEIxMDA2NTg0NEE3MTA2MQorOjEwQUQxMDAwMkQ4MDBCNzEwMkRDMDA4NzA0MjFDMjBCNTAwMkMwMTA5MQorOjEwQUQyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzBBQTEwMTJDNDBFQgorOjEwQUQzMDAwODkxODAyQzEwMEExMDgyMEMwMEIzNDA2NDAwMDkzMDUwOQorOjEwQUQ0MDAwMkMxNDBCM0M4NkNFMTA4MzAxMjhGMTBCMTQwMkM4MDQ4RQorOjEwQUQ1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRUQwMDNBQzA3RgorOjEwQUQ2MDAwMDdCQzYzRUQwMDgxNDAzRUMwMEU4ODAzNjQwMEVGMDAyNQorOjEwQUQ3MDAwN0U1MDBGRjAwMkZENDJDRjAwNzJDMDFGQjQwM0VBMDQwMAorOjEwQUQ4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFODAwOTkwMDNFRTA0NAorOjEwQUQ5MDAwNEZCNDgzRUQ5MDA5NDAzRUMwMEZBMTgzQTgwMUVCMDFBMQorOjEwQURBMDAwM0UwMDBGQjExM0VDMENGQjAwM0FDMDVGMjAyM0UwMDAyMworOjEwQURCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGODAwRkQwNDNGQjA2QQorOjEwQURDMDAwMEQ2MDAzM0UwMENEMDAzM0YwMEZGMjAxRjAwMEZGMDNGMQorOjEwQUREMDAwM0YwMzBGRjAwMUZDMDBGQjAyMzNDMjBGRjBFMzAwNDQxRAorOjEwQURFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QTAwQjkwMjJFQTBCQgorOjEwQURGMDAwNEFBQzAyMEU4MEY5QzAzNkUxMEJBMDAyMkEwOEJCMDA2MworOjEwQUUwMDAwMkUyMDBFQjAwMkVDMDBFQjAwMjJDMDhCQjAwMjIwNDBERQorOjEwQUUxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyMzAwQTkwMDI4QzBFRAorOjEwQUUyMDAwMDlCMjIyNkM0MDg5ODkyQUMwMEIxNDA2MjYwMEFCMDJBNQorOjEwQUUzMDAwNkVFMDA5QjAwNjZDMDBCMzAyMjJDMDBCQjAwMjIwMDAyNQorOjEwQUU0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwODAwQjEwMDJDQzAxMQorOjEwQUU1MDAwMEEzMDAyMkMwMEJCMDA2NEMwMEIzMjBBMDgwMDMzMDAyOQorOjEwQUU2MDAwNkM4MDAyMzA0NkNDMThBMzAwMjBDMDBCMjgwMjAyMTFDRgorOjEwQUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2ODAwRTkwMDM4QzE4MworOjEwQUU4MDAwMERCMTBCMkMwMDg5MDAzQUMwMEI5MDAzNjAwMEZGMDI0QgorOjEwQUU5MDAwM0U4MDBGRjAwM0ZDODBGRjAwMzJDMDhGODAwQjAwMDM2OAorOjEwQUVBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFEODAwRkQwNDNGQzBDOQorOjEwQUVCMDAwMkZGMjAzRkMxMUVGMDAzRkMwMEZGNDQzNzAwMEZGMDBCRQorOjEwQUVDMDAwM0YwMDQ2RjAwM0ZEMDBFRjAwM0ZDMDBGQzAwM0U4MDY1RgorOjEwQUVEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTAwRkY4MDNERTBBMworOjEwQUVFMDAwMENGOTEzREUwMDdGODBCM0UwMEZGQzAzQkU0MENGODA3RgorOjEwQUVGMDAwMzNGMDBGRjgwMzdDMDRDQzgwMzNBMDBDRjAwQjMwMDE0RQorOjEwQUYwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMDIwODgwMDJFMjA2QgorOjEwQUYxMDAwMDg4MjEyRTA4MEE4ODEyMjAyMEI4MDAyMjA4MEE4ODA5MworOjEwQUYyMDAwMjIwODBCODAwMjJDMDI4ODA0QUEyMDA4QjAwMjIwMDQwOAorOjEwQUYzMDAwMjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwQTMwODJDODAyMQorOjEwQUY0MDAwMDgzMjAyQzQyMEEzMDAyODQwMEI5MjAyODQwMEE5MDEwOQorOjEwQUY1MDAwMjhDODFCMTI4MkNDNDBBODAwMjRFMDBBMzA0MjIyMDFGQgorOjEwQUY2MDAwMzAwMDAwMDAwMDAwMDAwMEMwMTFBODgwQTgwMjJFNDBBMAorOjEwQUY3MDAwNjg4MDEwQzgwMEI4NDAyQTkwMEJBMDAwMjgwMEFBMDhEQQorOjEwQUY4MDAwMkEwMjAzMjAwMjhDMDBBODg4MkUyMDBBQjAwMjMwMDQ3NgorOjEwQUY5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFODA0RkEwMDNDNDA5QQorOjEwQUZBMDAwMENBMDAzRTgwMEVCMDAzQUMwMEYyMDUzQTgwMEUzNDBEOAorOjEwQUZCMDAwMkE0MDBGQTAwMzZDMDBBODgwMzQyMDFFQjAwMzEwMDRBOAorOjEwQUZDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwOUQ5MTNGODA4RgorOjEwQUZEMDAwMEZEQTIzRjQwMENDMjAzNzAwMDdEMDEzNzQwMEJDMDAzNAorOjEwQUZFMDAwQjc4MDBCRDA0MzdDMDBEQzA0M0IwMDZERjAwM0Y4MDAxRAorOjEwQUZGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBODAwRkE4MDNBMDA0NQorOjEwQjAwMDAwMkNBMDBCMjAwMkNCNjIzRTUwMEU4ODAzMjAwMEQ5MTBFQQorOjEwQjAxMDAwM0U3MDhDODAzM0VDODBEODQwM0EwMjBEQjAwMzEwMDRBRgorOjEwQjAyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEwQzAwMzk4MDIyQzA5MAorOjEwQjAzMDAwMEM5RDgyMkMxMEQwNDAyRUEwMDhCODAzNEUwMjhBNDBFRQorOjEwQjA0MDAwMEVBMDBEQjAwMzNEMDBEMDkwMzYxMDBCRjAwMkIyMDAwMAorOjEwQjA1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDYwQzBBRQorOjEwQjA2MDAwOEExODAyOEMwODgwNDAwQ0EwMDIzMDAyQ0UwMDgyNDg3MAorOjEwQjA3MDAwMkM4MDJCMzAwNjhDMDA4MTAyMjA5MDA5QjAwMjM4MDAxMQorOjEwQjA4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExMjAwQjY5MEEzMzAyNAorOjEwQjA5MDAwMDhFODIyQjIxNDg3ODAyRDYwMDg0OTEyMTI2MTk1OTA0OQorOjEwQjBBMDAwMkQ2MTBBNDgxNjFFODA5NTgwMjUyMDBCNzgwMjg4MDBBNQorOjEwQjBCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjEwMDI4OEM0RgorOjEwQjBDMDAwOEUxMDAzODQ4MDgwMDAyQzAyMEE5QTAyRTQwMEQwMDBEMworOjEwQjBEMDAwM0U4MDBCOTEwMzhFODBDMjA4Mzg4MDBEQjAwMzEyMDJBRgorOjEwQjBFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCMDAwRjYwMDNGNDREQQorOjEwQjBGMDAwMEYyMTEzNzgwMEZGMDAzREMwMEZFMDAzNzgwMEVGMDQzQworOjEwQjEwMDAwM0Y0MDhERTgwM0RDMDRGNjAwM0YwMDBGRjA4M0QwMDZEQgorOjEwQjExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTg4MDMyNDA2MAorOjEwQjEyMDAwMEY4ODBCMjgwMDc4MDIzRTgwMEUyODAzMjgwMENBODA3MgorOjEwQjEzMDAwMzIwMDBGQTAwM0VDMDBDOTgwMzI4MDBGQjAwMzJBMDA1OAorOjEwQjE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4QzAwOEYwMEExODBGQQorOjEwQjE1MDAwMEI3MDQyMTQwMEI3MDAyRDQxMEI1MDQyMTQwMEE1MDBBMworOjEwQjE2MDAwQTFDMDBCNTAwMkZDODBBNTAwMjEwMDBCRjIwMjEyMDRDQQorOjEwQjE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCQTAwQTQ4MDI5MzA3OAorOjEwQjE4MDAwNEI0ODA2NTIwOEI0ODAyRDIwMEI0ODQyMzIwMDg0ODA4MAorOjEwQjE5MDAwMjEyMDBCNDgxMkRFNDA4NjgxMjlBMDBCNzgwQTMwMDA1RQorOjEwQjFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwNTIwRTBDRgorOjEwQjFCMDAwMEIzNDAyNkMxMEIzMDAyQ0MwMEIzNjRBMEQwREEzMDBFQgorOjEwQjFDMDAwMjBDMDBCMzQ4MkNDMDJBMjAwMjgwMDBCMzAwMjEyMDRGMworOjEwQjFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBOTIwRUE0MDMwQTA3RgorOjEwQjFFMDAwMDdBMDQzNjk0MEZBMDAzQzgwMEZBMDAzMDg0MENBMDA1MgorOjEwQjFGMDAwMzBBMDBGQTQwM0U4MDBDRTAwM0I5ODBGQTAwMzNBMDQ1MAorOjEwQjIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBEMjAwRkMwODNGMDA4MQorOjEwQjIxMDAwMEJDMjAzQjAwMEZDMDAzRjAwMEZDMDAzRjAwMEZDMDBCNQorOjEwQjIyMDAwM0YwNDBGQzAwM0UwMDBGODAwQjYwMjBGODAwM0QyMDAxNQorOjEwQjIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRDkwMDNFNjg2MworOjEwQjI0MDAwNEM5MTAxRTQwOEM5MDAzRTQwMkM5MjAzRTQwMkM5QTBERAorOjEwQjI1MDAwM0U3MDBFOTAwM0M2NDJDOTAwM0U0MDBGMTAwMzAyMDQyOAorOjEwQjI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4NjBFNjA0OQorOjEwQjI3MDAwMDg5ODAyRTQwODg5MTAyRTYwMDg5MDAyRTQwMDg5MEMwNgorOjEwQjI4MDAwMkU2MDA4OTAwMkU2ODg4OTAwMkU0MDBCOTAwMkEwMDBGNAorOjEwQjI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOUQxMDJGNDA0MQorOjEwQjJBMDAwMjhEMDA2RjQwMkFEMDAyRjYwMDhEMDAyRjQwMDhEMDAxMworOjEwQjJCMDAwMkY0MDBBRDAwMkU0MDA4OTAwMkU2MDBCOTAwMjA2MDBBNQorOjEwQjJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQzNDAwODUwMDJENDAwQworOjEwQjJEMDAwMDg1ODAyRDQwMEE1MDIyRDQwMDg1MDAwRDQwMDg1MDA3MworOjEwQjJFMDAwMkQ0MDA4NTQwMkM0ODA4MTAwMkM2MDBCMTQwMjgyMDE5RQorOjEwQjJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MjNFMDA4MAorOjEwQjMwMDAwMEMwNTAzRTE0MEU4MDQzRTE0MEM4NTAzRTE0MEM4MDA0RAorOjEwQjMxMDAwM0UxNDBFQzAwM0UwMDBDMDAyM0UwMDRGODAyMzJFMDMwNworOjEwQjMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkwMTNFNDBBQworOjEwQjMzMDAwNEY5MDEzRTQwMEQ5MDAxRTQwMEY5MDAzQzQxMEYxMDA5OQorOjEwQjM0MDAwMUU0MDBGOTAwM0U0RTBGRDI4M0Y0MDBGOTQwM0U2MDYwMworOjEwQjM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwRkQwMDNGNDA0MAorOjEwQjM2MDAwNEQ1MDAyRTQwMDk1MDQzMzQwMjhEMDAzRjQwMEZEMDA2MgorOjEwQjM3MDAwMzM0MDBGOTEwMzM0MDBDRDQwMzM0MDBGOTg4MTA2MDBENQorOjEwQjM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDEwQjgwMDJFMDAyRgorOjEwQjM5MDAwMEI4MDAyRTAxMEI4MDAyMjAwMDg4MDAyRTAwMEI4MDAzNAorOjEwQjNBMDAwMjIwMDBCODgwM0MyODA4ODgwMjIwMDBCOEMwMjBFMDRDRQorOjEwQjNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDRDNDAwQjEwMDJDQzBGMAorOjEwQjNDMDAwMEIxMDAyQzQwMEJCMDAyMjQwMDgxMDAyQzQwMUI5MDBFNworOjEwQjNEMDAwMjA0MDFCOTAwMjA0MjI4OTAwMjA2MDBCMTI4MjAyMDE4RgorOjEwQjNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDQ0QjkwMDJFQzAzMQorOjEwQjNGMDAwNEI5MDAyRTQxMEI5MDIwMjQwMDg5MTQyRTQwMEI5ODA4NworOjEwQjQwMDAwMjI0MDBCOTIwMkM0MDA5OTQwMjI0MDRCOTAxMjA2MDQ0NQorOjEwQjQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNjAwQjkwMTNFNThFMQorOjEwQjQyMDAwMEQ5MDAzRTYwMEQxMDAzMjYwMEM5ODAyRTY0MEY5MDA2RQorOjEwQjQzMDAwQjI0MDBGMTgwMzI0MDBDOTgwMzI1MDBGOTAyMzI4MDQxMworOjEwQjQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNFNDI0NgorOjEwQjQ1MDAwMEI5MDAzRTcwOEY5MDBCRTQ4MEY5MDAzRTQwMEY5MDBFMQorOjEwQjQ2MDAwM0U0MDBGOTgwM0E0MDBFOUEwQkU0MDBGMTAwQjRBMDAxNQorOjEwQjQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTNFMDA3RAorOjEwQjQ4MDAwMEY4MDhCMjAwMEY4MjAzRTAxMEY4MTAzRTAwMEY4MDhCOAorOjEwQjQ5MDAwM0EwMDBDODAwM0UwMDBEODQwMzIwMDBGODAxMzBBMDQwOQorOjEwQjRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDJGOTE1RAorOjEwQjRCMDAwMEJFRTAyMjgwMUJFMDAyMDgwMEJBMDAyRUE4MEI2NDhGNQorOjEwQjRDMDAwMjI4MDBEQTAwMkZBMDI4NjQxQTNBNjBCQTAwMzBBMDA2NworOjEwQjREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTM4MDJDQzBCNAorOjEwQjRFMDAwMEIzMDAyMEMxMEIzMDAyOEMwMEIzODAyQ0MwMEIzMDBBNAorOjEwQjRGMDAwMjhDMDA5MzAwMkM2MDE4MzYwMjA3MDBCMzAwQTRBMDA2MAorOjEwQjUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDEyRTg4ODUwODJEODA1QQorOjEwQjUxMDAwNEJGODA2MUM4MEI3MDAyMUMwMEI1MDAyRDQwMEI2MDBDNworOjEwQjUyMDAwMjk2MDA5NzAwMkQwQTA4RDAwMjE0MDBCMzIwMjI4MDA1MgorOjEwQjUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDU4MDNERTA4QgorOjEwQjU0MDAwOEY3ODAzMUU4NEI3ODIzRDYwMEY1OTAzREUwMEY3ODBCOQorOjEwQjU1MDAwMjk2MDE1NzgwM0RFMDBDNzgwMzE2MDBGN0MwMzZBMDIyMgorOjEwQjU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRTkwMDNFODAyMworOjEwQjU3MDAwMEZBMDAzRUQzMEZCMDAzNkMxMEY5NjAzRTQwMEIzMDBDQgorOjEwQjU4MDAwMzQ0MDBGQjc4M0VDNDAyMTAwM0U0MDBGQjAwM0MyMDZBOQorOjEwQjU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MTMzRTBCNQorOjEwQjVBMDAwMEZGOTAzREUyMENGODEzRkUwMDc3ODAzM0UwMEZGODBFNAorOjEwQjVCMDAwM0ZFMDA0RjgxM0ZFMDJERTgwMzM2MDBGRjgwMzAwMDA2MgorOjEwQjVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDIxQzQxQQorOjEwQjVEMDAwMEI1QTAyREM0ODg2NTAyREMwMEIzMTAyOTQ2MEI0MTgxRgorOjEwQjVFMDAwMkQ0MDQ4NzAwMkU4MDBBNTEwMjE0MDBCNzEwMjJBMDQ4QQorOjEwQjVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQkQwMDIxNDIyRgorOjEwQjYwMDAwMEI3MDAyRkMwMjg1MDAyNTQwMEI1MDAyOUMwMEI3MDAyNQorOjEwQjYxMDAwMkY0MDI4NzEwMkRDMDBBNjAwMjFDMDBCNzAwMjAwMDA0MAorOjEwQjYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTQ2RDgwQjEyMEEwNTAxOAorOjEwQjYzMDAwMEJCMjA2Q0UwMEEwMzQyRUYwMEIxODAyODUyMEIzNEFDMAorOjEwQjY0MDAwMkM1NDg4MzgwMkNDMTBBMTAwMjBCMDBCMzAwMjA4MDQyMgorOjEwQjY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRTgwRjMwODEwNTQ2MAorOjEwQjY2MDAwMEI4ODEzRkYwMEMwODAzRTY0MEZCNDgzMDcwMEY5QzA0RAorOjEwQjY3MDAwM0VGMDBDRkMxM0Y0MDBFQTAwMzI3MDBGRjAwQjJBMDRDOQorOjEwQjY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFMTBBNworOjEwQjY5MDAwMDc5MTAzRUNDMDU4MDAzRTQ0MEY5MjAzRTQwMEY5MDAwOAorOjEwQjZBMDAwM0VDMDhGQjMwM0UwMDBCQjAwQkU0NDBGQjAwM0UwMDAxOAorOjEwQjZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0QwNDMzRTA2NworOjEwQjZDMDAwMENDMDAzM0MwOEZFMDAzMzYwMkNEMDAyQjQ4MENGMDBENQorOjEwQjZEMDAwM0Y1MjA3RjAxM0ZDMDBDRTEwMzM0MjBDQjAwM0MwNDRCRAorOjEwQjZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwODkwMDJBQjBENgorOjEwQjZGMDAwMDg4ODAyMkMwMEJBMDAzNjQ0MDg5MDAwMjYwMERCQzBGRgorOjEwQjcwMDAwMkU0MDBCQjAwMkVDMDA4M0MwMjg0MDBBQjAwMkUwNDA5QgorOjEwQjcxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDIyMDhCMworOjEwQjcyMDAwMUFBMjAyMkMxMEI5MjAyMjQwMDgzMDAyMkMwNEFBNTQ3QworOjEwQjczMDAwMkVDMDBCQjAxMkNDMDA4QjA4MjI0MDA4QjAwMkUwMDBGMworOjEwQjc0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwNDJBMDBGMAorOjEwQjc1MDAwMEEwODgyMEMwMEI4MDA2NDQwMDgzMDAyQTQwMEIwMDA1RgorOjEwQjc2MDAwMkNDMDhCMzAxMEM4MDI4QjAwMkE0MDBBMzAwMkMyMDE2NAorOjEwQjc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDMyMDA1NQorOjEwQjc4MDAwMUE4MjAzM0MwMEY5MDAzMjQwMENEMTAzQUMwMEVCMDBGQworOjEwQjc5MDAwM0U0MDBGRjAwM0VEMDBDMzAwMzJDMDhDQjAwM0MwMDM4NQorOjEwQjdBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRjUwMDNGMDA2MAorOjEwQjdCMDAwMEQ4MDRCRkMwMDdDMDAzRjQwMEZEMjBCNzQwMERGMDA3QgorOjEwQjdDMDAwMUQ0MDhGRjAwM0ZDQTBGRjAwM0Y4MDBGRjAwM0U4MDY1MAorOjEwQjdEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwREY4NDNCRTBCQQorOjEwQjdFMDAwMEZGODBCM0UwMEVDODAzM0UxMEMzMDAzM0M4MENGNDg3NworOjEwQjdGMDAwMzdDMDBFNDAwM0UwQzBDNzkxQjMwNDBDRjAwMzMwMDAyMworOjEwQjgwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRjA0OEI4MDIyNDFENworOjEwQjgxMDAwMEJCMDgyMkUwMDg4ODBBMkUwMEFBMjkyQUQ4MDg3NDJGRgorOjEwQjgyMDAwMjNEODhBQUQwMkUwQzA4QjAwMjA0QzQ4QTQwMjIwMDQzQgorOjEwQjgzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzU4QkIwMDI4ODBDNAorOjEwQjg0MDAwMEJCMjQyMjQwMEE4MDAyQUMwMEExMDAyMDQ2MEEzMjAwMAorOjEwQjg1MDAwMjREMjA4MDA0MjhDODM5QjAxMjA0OTA4MzNDMjIyMDE3NAorOjEwQjg2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAwQUI4ODIyQTBGMgorOjEwQjg3MDAwMEJCODAyMjYwQ0E4MDAyQUMwMEE5MjAyQTQwMEFCMDY0QworOjEwQjg4MDAwMjJDMDBBQjAwMkU4MDA5QjAwMDI0MDA4QTA0MjMwMDQzNworOjEwQjg5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRDM4MDNBRTA5QQorOjEwQjhBMDAwMEYxODAxMDYwMEU4MzAzODY2MEVCODAzMkE0MEVCMDA5NgorOjEwQjhCMDAwMzZDMTBFOTYwM0UyODBEQTA4MzI4MDJDQkIwMzEwMDRGNgorOjEwQjhDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwREYwMDNGQzBBRAorOjEwQjhEMDAwMEZEMDAzRjQwMERDODAzNzYwMEZFODAzRkEwMERGMDFDQgorOjEwQjhFMDAwM0ZDMDBGQzA0M0U2NENFRkEwM0Y0NDBGQTAwM0Y4MDA1OQorOjEwQjhGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzQwREIwMDM2ODAxQgorOjEwQjkwMDAwMEM5ODAzMjYwMEY4MDAzRUMwMEUxODAzODQwMkUzMDFFMQorOjEwQjkxMDAwMzhDMTBFQjQwM0FDODBDQTE4M0FEMDJDMzAwMzEwMDRERQorOjEwQjkyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRjQwQjk4ODJFODBCQworOjEwQjkzMDAwMDhCQzAyQTMwMEIwMDAwRUMwMDhCMDA2MjAwMDhGMDRBRgorOjEwQjk0MDAwMjNDMTA4QjkxMjJGMDA4MzgwMzY0MDA4QUQwMjMyMDBBRgorOjEwQjk1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjIwMDJDQzBEOAorOjEwQjk2MDAwMDkzMjAyODQwMDMzMDAyQ0IyMEEzNjEyOEMwODkzMDU4NworOjEwQjk3MDAwMjBDMDBCMTgwMkVEMDA5MTgwNkEwMDA4MTAwMjM4MDAwOAorOjEwQjk4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDJERTBFNAorOjEwQjk5MDAwMDk3ODAyOTc0MEI0ODAyRkEwMDhFODAyMEU0MDk3ODJGMQorOjEwQjlBMDAwMjFFMDk4Njg4MjFBMTg5RDkwMkRBMTE4NTgwMjA4MDA2RAorOjEwQjlCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQ0MwRjMwMDNFQzAzQQorOjEwQjlDMDAwMERCMDQzODQ0MEYwMDAzQzgyMEUzODEyOEM0NEYzMzBCQQorOjEwQjlEMDAwQkFDMTFFMTA0NzhFMjJEMTEwMzgxODBDMzA4MzEyMDJDMworOjEwQjlFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzQwRkYwMDNGQzAwMAorOjEwQjlGMDAwMEVFMDAzRjQ0MEZDMDAzREM0MEZEMDAxRjQ0MUVGMTgwOQorOjEwQkEwMDAwM0ZDNDFGRjAwM0Y4NDhFRjE0MzM4MDBGQzEwM0QwMDY4MgorOjEwQkExMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzQwRkIwMDNFQzBFNAorOjEwQkEyMDAwMEY5ODAzMjQwMENCMDAzRTQwMEZCMDAzQTgwMERCMjg5MgorOjEwQkEzMDAwM0VDNDFGOTAyM0VDMDBDQTAwMzJFMDBDOTAwM0VBMDBFMQorOjEwQkE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzgwQjcwMDJEQzA2RAorOjEwQkE1MDAwNEI1MDUyMTQwMEQ0MDEyRDgwMEI2MDAyRDgwMEE3MjA1NworOjEwQkE2MDAwMkRDNTBCNDAxNkRDMDA4NDAwMjNDMDA4NDAwMkQyMDQyMAorOjEwQkE3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTgwQjc4MDJERTA0NAorOjEwQkE4MDAwMEI3ODBBOTYwMDk0ODAyRDYwMUI3ODA2RDIwMEE3ODA2MAorOjEwQkE5MDAwMkRFMDBCNzgyMkRFMDA4NzgyMjFFMDA4NTgwMkYwMDBCQQorOjEwQkFBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjNFNDJDQzBDQgorOjEwQkFCMDAwMUIyMTAyODEwMDkwMDAyQ0M4MEIzOTAyQ0UwMEEzMDA4QworOjEwQkFDMDAwMkNDMDBCMzAwMkNEMDA4QjIwMjBGMDA4QjIwMkQyMDQzMworOjEwQkFEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkVBMDNGODIzMgorOjEwQkFFMDAwMEZFODAzOTgzMEQ2MDAzRkEwMEZFMDAzQkFDMEZBMDA3OQorOjEwQkFGMDAwM0U4MDBGRUMzM0Y4MDJDRTAwQjNCODJDRUM4M0ZBMDQ4RQorOjEwQkIwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDE4Rjg0MDNFMDAxRgorOjEwQkIxMDAwMEY4MDAyNjA4NEY4MDUyRTA0OEY4MDQxRTAwMDc4MDJENworOjEwQkIyMDAwM0UwMDBGODE4M0UwMjBGODAwQkUwMjBGODAwM0QyMDBBOAorOjEwQkIzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjE4RjkyMDNFNDAyOAorOjEwQkI0MDAwMEY5QzAzRTQ0MEM5MDAzMjYxMEM5MDEzQzQwOEM5MDE4MgorOjEwQkI1MDAwM0U0MTBGMTgwMzI0MDBDOUEwMzI0MDBGOTg0MzAyMDQ0RAorOjEwQkI2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NTAwQjFDMDIyNDBFOQorOjEwQkI3MDAwMEI5QzAyRTcxMDg5MDAyODQ0MDg5NDIyRTQxMDg5MDBGNQorOjEwQkI4MDAwMkU0MDBCOUYyMjI2NjA4OTgwMjI0MDBCOTEwQTIwMDBDNAorOjEwQkI5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDgwQjkwMDJFQzAyRAorOjEwQkJBMDAwNEJCNDAyRTQyMDg5MjAyMjQwMDg5NDAyRUMwMDg5MDA3MgorOjEwQkJCMDAwMkU0MTBCOTAwMjA0MDA4OTQwMjI0MDBCOTAwMjA2MDBBNworOjEwQkJDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwNDIwNDAxMAorOjEwQkJEMDAwOEIxMDAyRTQwNTgxMDAyODQwMjgxMjEyQzQ4MjgxMjBDMworOjEwQkJFMDAwMkM0ODBCMTIwQTA0ODI4MTAwMjA0ODBCMTIwMjAyMDEyOQorOjEwQkJGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OEEwRkEwMjNFMTQyQQorOjEwQkMwMDAwMEY4NTAzRTAwMEM4MDAzMjAwMEM4NTAzQzE0MEM4NTMxMworOjEwQkMxMDAwM0UxNDBGODAwMzAxNDhDMDUwQjIxNDBGODUwMzJFMDM1OQorOjEwQkMyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDAwRkQwMEJGNDAyRgorOjEwQkMzMDAwMEY1MDEzRDQwMkZEMDAyRkMwMEZEMTAzRjQ0MEY5MTBCMAorOjEwQkM0MDAwM0U0NDBGRDEwM0Y0NDBGRjAwQkY0NDBGRDEwM0U2MDY4QQorOjEwQkM1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNkEwRkQwMTNFNDQ1MQorOjEwQkM2MDAwMEZEMTAzRDQwMEM1MDAzMzQxMEZEQjAzMjcyMEQ5RTBGNworOjEwQkM3MDAwQjI3MDBEREE4M0Y2NDBDRjEwMzI3ODJEREEwMzA2MDA2OQorOjEwQkM4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTAwQjgwMDJFMjgwRAorOjEwQkM5MDAwMEI4ODQyRTAxMEQ4MDAyMjAwMEI4QzBBMjMwMDg4QzBEOQorOjEwQkNBMDAwMjIyODA4ODQwMkMyODA4MEEwMjIzMDQ4QUE4MjBFMDQ4MgorOjEwQkNCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA2NgorOjEwQkNDMDAwOEIxMjAyQzQwMDk5MDIyODQwOEIxNjAyODQ4MTkxMzBBNQorOjEwQkNEMDAwMjA1ODA5MTAwMkM1MDA4MTAwNjQ0RDA4MzQwMjAyMDE5OQorOjEwQkNFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzBDQjkwNDJFNDhDQworOjEwQkNGMDAwMEI5NDA2RTQwMDk5NDBBQTQwMEI5MjIyQTQwMDg5MDAwQworOjEwQkQwMDAwNjA0MDA4OTQwMkU0MDA4OTgwQTY1MDA4OTIwMjA2MDQ2QworOjEwQkQxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk5ODNFNDgxMworOjEwQkQyMDAwMEY5ODAzRTUyMEQ5MDAzQTY0MEY5NDgzQTRDMEQ5MDI4OAorOjEwQkQzMDAwNzI0MDREOTA0MkU0ODJDOTQwMzY0MDBDOTAwQjI4MDQ3QQorOjEwQkQ0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBQzI4Rjk4ODNFNDA4NworOjEwQkQ1MDAwMEY5OTEzRTcwMEY5QzAzNjYwMEY5MDAzNjYwMEYxMDBGOQorOjEwQkQ2MDAwN0U0MDBGOTkwN0U0NjBGOTAwMzg0MDBGOTgwM0NBMDAzRAorOjEwQkQ3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgxMDMyMDA1MQorOjEwQkQ4MDAwMEY4MjBCMjEwMEU4MDAzNjA0MEM4NjAzRTEwMEQ4MDA4NgorOjEwQkQ5MDAwMzIwMDBGODAwMzYxMDBDODAwMzIwMDBGMDAwMzBBMDQ2NAorOjEwQkRBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwQkUwMDIyODA5RQorOjEwQkRCMDAwMjhFQzAyMTkwNDgyMDAwMzgwMERFNDgyRTgwMDhBMDE2NQorOjEwQkRDMDAwQUE4MDhCRUQ4MjNCODA4RTkwMzY4MDBCRTAwMzRBMDA4OAorOjEwQkREMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0MjAwQjM4MDIwQzBBMQorOjEwQkRFMDAwNkIzNDE2NDBDMDgzMTAyNDcyODhCMDAyRUMwMDgzMDBDQworOjEwQkRGMDAwMjRDMDBCMDQwMjZGMDk5QjAwMjRDMDBCMzAwMjBBMDAxMAorOjEwQkUwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwQjc4MDIzRTRFRgorOjEwQkUxMDAwMjg3ODgyNzQxNDhGMDA2MUUwMDk1MDEyREMwNDg3MjJCNAorOjEwQkUyMDAwMjVDODFCNzgwMjE0MDA5NDQwQTVDMDBCNjAyMjY4MDA0RQorOjEwQkUzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxMjIwQjc4MEIxRTAxOAorOjEwQkU0MDAwOEZGODAzMTIwMkU3ODAzNUUwMEM2ODA2Q0ZDMkNGQjA0RQorOjEwQkU1MDAwMjVGNDBGNTgwMzVBMDJENTgwNzVGQTRGRjgwMzJBMDJDOQorOjEwQkU2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNTkwRjMwMDNEQzA4OAorOjEwQkU3MDAwNEZCMDEzQTgwNEZCMDAzQ0MwMEY4MDQzRUM4MEVCNjA4NAorOjEwQkU4MDAwM0FDOTBGMzAwM0VDMDBFOTAwM0VDODBGQTAwM0MyMDYxOAorOjEwQkU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGNjAwRUU4MDNGRTBCQQorOjEwQkVBMDAwMEQ4OTAzRDI0MEU1ODEzOUUwM0NGOTA3RkUwMENGODhENworOjEwQkVCMDAwM0ZFMDBGRTgwM0YyMDhDRTgwMzNFMDBDRjgwMzAwMDAwNworOjEwQkVDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQ0QzYwMDJGQzBCQworOjEwQkVEMDAwMDg1ODAyRDBDNDg1MjQyMTkwMDg1NDEyREM4MjA3MDAzRgorOjEwQkVFMDAwMkRDMDBCNzAwNkQ0MDA4RTQ4MjFDMDBBNjAwMjJBMDRCRgorOjEwQkVGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQTc0MDJEQzA3MgorOjEwQkYwMDAwMDg0MjAyRDAwMEFEMDAyOUMwMDg3MDIyREMyODg3MDA1QQorOjEwQkYxMDAwMkRDMDBCNDAwMjk4MDA5NzAwQTBDNDA4NzAwMjAwMDBEQQorOjEwQkYyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4OTMwMDJDRTA0QQorOjEwQkYzMDAwMDgzQzIyQzEwMDgxMDAyMDgwODgxNTAyQ0UzMDgzMDA5OQorOjEwQkY0MDAwMkNDMDBCM0MwMkNDMDQ5M0MwMjBGNDRBMEM4MjA4MDRBMQorOjEwQkY1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBMDAwRTNDMDFGRTBCMgorOjEwQkY2MDAwNkMxMDgzRTAwNEVCMDAzQTUyNENCNDAzRkUwMkNGMDBBNQorOjEwQkY3MDAwM0ZDMDBGODQ0M0UxMDJEOEMyMzNDMDBDODQwQjJBMDRCMworOjEwQkY4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFOTAwRUIxMDNFQzRFQgorOjEwQkY5MDAwMEU5NDAzRTQwMEZCMTgzRUMyMEZCNjAzRUMwMEZCMDE1NQorOjEwQkZBMDAwM0VDMDBGMzUwM0M0MjhFQTQyM0VDMDBGODEwM0UwMDBDMworOjEwQkZCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzQwRkYwMDMzQzAxMgorOjEwQkZDMDAwMENDMEEzMzAyOENEQTAzM0MwMENFODAzMEMwMEVGMDU1MworOjEwQkZEMDAwM0RDMDBDQ0E4MzNDMDBDRDA4M0ZDMjBDQTAwM0MwNDQ0NgorOjEwQkZFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzAwQkI4MDIwQzAxQQorOjEwQkZGMDAwMDhBQTAyMDgwMEExMDEzNEQxMDhBNDEyMkMwMDhCMDA2OQorOjEwQzAwMDAwNkVDMDg4QjIwMjJDMDg4OTgwMkVDMDBBQTgwM0EwNDAwNgorOjEwQzAxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkE4MEEyQzBDMworOjEwQzAyMDAwMDhBODBBQTAwMDhCMDBBMkMwNDgxMTAyQUMwNDhCMDAzMworOjEwQzAzMDAwMkVDMDAwODAxMjJBMDg4QjE0MkNDMDA4ODgwMkUwMDA1MQorOjEwQzA0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjIwMDIyQzAwNAorOjEwQzA1MDAwMDhCMjEyODAwMEFCMDEyNEMwMDgwMDAyMEMwNDgzMDA2NworOjEwQzA2MDAwMkNDMDA4MzAwMjA3MDA4MjAwMjRDMDA4MDgwMjgyMDFBOAorOjEwQzA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkIwMDMyQzA1QQorOjEwQzA4MDAwMENBMjAzQTAwMEM5MDAzMkMwMjQ5NDAzM0MwMkNGMDBEQworOjEwQzA5MDAwMkZDMDA0ODAwQjA5MDJDQjAxM0ZDMDJDQTAwM0MwMDNCQQorOjEwQzBBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRkQwMjNGQzBBRAorOjEwQzBCMDAwNEZFNDEzNzAwMEZEMDAzRkMwMEZDMjgzRkMwMEZGMDA3RgorOjEwQzBDMDAwM0ZDMDBGRjAwM0ZDMDBGRjAwM0ZDMDBGQzAwM0E4MDZGNQorOjEwQzBEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwRUYzMDNGMDRBRAorOjEwQzBFMDAwNkM4ODAzM0E0MkU0OTEzRjBEMEQ0ODAzM0NDMEZGMDJDNworOjEwQzBGMDAwMzM0NDBDRjQwM0ZDODJERjMwMzM2MDBERjEwMzMwMDA3NQorOjEwQzEwMDAwNzAwMDAwMDAwMDAwMDAwMEEwMTBFRDAwOEI3MDJFMThFMQorOjEwQzExMDAwODgyMjRBMkM4MkVBMjYyRTBDMEJCODQyM0Q4MEJGOTAyMgorOjEwQzEyMDAwMkE1NDI4QjQwMkNEMDBEQjQwMkE0QTQ4MzAwMkEwMDQzOQorOjEwQzEzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQ0IwQTMwMDZDMTBBNworOjEwQzE0MDAwMDkwMDgyMjA4MkEwMjAyQzg4NEI4MDAwMEM0MEIzMDE4MworOjEwQzE1MDAwMjA0ODBCMzYwMjhDRTA4MzY0MjQ0MDI4MzIwMjIyMDFGRQorOjEwQzE2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTFBQzAwOEIwMDJFMDAwOQorOjEwQzE3MDAwMDk4MDgwQTYwMEJBMTEyRTg4MEJCMDAwMkMwMEJCMDJFQgorOjEwQzE4MDAwMDI0MDA5QjAwMkVDMDA4QjAwMkNDODA4Qjg4MkIwMDQ1MQorOjEwQzE5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRUIwMDNFOTI0MworOjEwQzFBMDAwMEQ4MDAzMEEyMEU5MDAzRTUwNDU4MDAxMkMwNEYzMDA3NQorOjEwQzFCMDAwOTA2MDA5QjAwM0VDMDA4QjAyMjY1MDhEQkMwMzEwMDQ4NAorOjEwQzFDMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFCQzAwRkYwMjNGODBDMgorOjEwQzFEMDAwMEVGOTAyN0MyMkFGMDAzRjYwMDNDMDBCRkMxMEZGMDA5MQorOjEwQzFFMDAwM0Y0QTRFRjAwM0ZDMDBGNzAwMkI2MDBGNzAwM0Y4MDA4RAorOjEwQzFGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMEIwMDAzOAorOjEwQzIwMDAwMEY4MjBCQTkwMEM5MDAzMkQyMEZBMDgzQUMwMENCMTA2MworOjEwQzIxMDAwM0U0MDBDQjAwM0VDMDBEQjAwMzI1MDJDOTUwMzEwMDRDMAorOjEwQzIyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzA0QkYwMjIyODA3RQorOjEwQzIzMDAwMEI5ODAwMjkwMENCNDAyMkMwMEIyNDAyM0MwODhGNTBGMQorOjEwQzI0MDAwMkU1MDBERjAwMkZENDI4RjU4MjJFMDQ4QjUwMjMyMDAxOAorOjEwQzI1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDI0NDAzNgorOjEwQzI2MDAwNEI5NDAwNDkwMDkwODAwNDMwMDkwMDBFNEMwMDgzODBGQworOjEwQzI3MDAwMkNDMDA5MzAyMjZFNDI4MzgwMjA0ODA4MzgwMjM4MDBFMgorOjEwQzI4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjc4MDY1MjA2MworOjEwQzI5MDAwMEI3ODgyN0EwODhDQzAyNUEzNEI3ODAyNUUwNDg3ODREMQorOjEwQzJBMDAwMkQ2MTg5NzgwMkRFMDQ4NzgwRTk2MjA4NzgwMjA4MDAzRgorOjEwQzJCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRkIwMDM0NDg2QgorOjEwQzJDMDAwMEYzQjAzNDgwMDkzNDgzNDUwMEQwMDAzNkMwMEMzMTAyQgorOjEwQzJEMDAwMUNDMjA1MzAwM0NDNDBDQjAwMzI0MDBDMjAwMzEyMDJCQworOjEwQzJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzIwRkYwMTAzNDBEMgorOjEwQzJGMDAwMEZGMDIzMUMwMEZGMDAzQjgwMEZCMDIzM0MwMkZGNTBENworOjEwQzMwMDAwM0RDNDBGRjEwM0VDMDBFRjAwQjdDMDBGRTEwM0QwMDYwRQorOjEwQzMxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFQzAwRkIwMjNFRTAyOQorOjEwQzMyMDAwMEM4MDAzNDgwMkM4ODEzMjAwMEY5MDQyRUNBMEZCMTA0MQorOjEwQzMzMDAwM0VFMDBDQjEwM0VDNDBGQjEwMzI0MDFGRjAwMzJBMDAzQQorOjEwQzM0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcyNDJEODAwMAorOjEwQzM1MDAwMDg3MDQyRDgxMDhDMDIyMTQwMEI1MDAyREQwMEU3MjAwQgorOjEwQzM2MDAwMkY0MDA4NzAwMkRDMDVCNzAwMjFDMDBCRjAwMjEyMDQ1OAorOjEwQzM3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc5MDJGNDA0OQorOjEwQzM4MDAwMEE2ODAyN0EwMDk3ODAyMUUwMEI3ODAyREUwMEI3ODAwRAorOjEwQzM5MDAwMkRFMDA4NzgwNkRFMDBCN0EwMjE2MDBCNzg0MjMwMDA1RgorOjEwQzNBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDQzBBNgorOjEwQzNCMDAwMEEzNDAyQzgwMDgzNEEyMEY4MEIzMTAyQ0MwMEEzMDBFMworOjEwQzNDMDAwMkNDMDA4MzAwMkNDMDBCMzAwMjBCMjBCMjA0MjEyMDQ3MworOjEwQzNEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQkEwMDNGODgwNworOjEwQzNFMDAwMkVFMDQzNTk4OERFMDAzM0IwMEY2QzAzRTgwMEZBMDBGQQorOjEwQzNGMDAwM0U4MDJDQTAwM0U4MDRGQTAwMjNCODBGRTA4QjNBMDQzNworOjEwQzQwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjgwMTNFMDA2OQorOjEwQzQxMDAwMDk4MjIxRTAwMEY4NDBCRTE0MEY4NDgxRTAwMEU4MDBBQQorOjEwQzQyMDAwM0UwMDFGODAwM0UwMDBGODAwQkUwMDBGODgwM0QyMDAyQQorOjEwQzQzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRTEwMDMyNDA3RAorOjEwQzQ0MDAwMEM5MDQzRTQyMEQ5MDAzQzQ0MDg5MDAzMjQwMEY5MDFGNworOjEwQzQ1MDAwM0U0ODBGMTA0MzI1MDBDOTAwQjI0MDBDOTAwMzAyMDQ2RgorOjEwQzQ2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMEEwNDAxQgorOjEwQzQ3MDAwMDg5ODAyRTYwOEE5NjAyRTQ5MDg5NDAyMjQwMEI5MDAzMQorOjEwQzQ4MDAwMkU3MDBCOTAwMjI2MDI4OTAwQTA0MDBBOTAwQTIwMDAxQworOjEwQzQ5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDIyNDAzMAorOjEwQzRBMDAwMDg5ODA0RTYwMDk5ODAyRTQwMEFCMTAyMjQwMEI5MDBFMQorOjEwQzRCMDAwMEU0MDBCOTAwQTA0MDA4MTAxMjJDMDA4MTAwMjA2MDAwMQorOjEwQzRDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwQjEyMDIyNDg2MQorOjEwQzREMDAwMDgxODA2QzQwMEExMDAyQzQ4MkEzMDAyMDQ4MEIxMjJBQQorOjEwQzRFMDAwMkM0ODBCMTIwMjA1ODA4MTYwMjI1MDBBMTQwMjAyMDFCRQorOjEwQzRGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg1MDMyMTQ0OAorOjEwQzUwMDAwMEM4NTAzRTE0MEQ4NTAzRTE0MEU4MDBCMjE0MEZBMDAwOAorOjEwQzUxMDAwM0U5NDBGODUwMzIwMDBDMDAwMzIwMDBDODAwMzJFMDNFMAorOjEwQzUyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQxRjkxMDNENDU1NgorOjEwQzUzMDAwMEZEMDAzRjQwMEZGMDAzRjQ1MEREMDAzRTQ0MEY5MTA5NQorOjEwQzU0MDAwM0Y0NDBGOTEwM0U0NDJGOTEwM0Y0MDBGRDQwM0U2MDY0NQorOjEwQzU1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRjkwMDNFNDBGMworOjEwQzU2MDAwMENEMDAzRjQwODhEMDIzRjQwMEZEMDAzRTQwMENEMDA0RgorOjEwQzU3MDAwMzM0MDBDOTAwMzI0MDBGOTAwMzI0MDRDOTgyMzA2MDAwRAorOjEwQzU4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwRTgwMDJFMDBGRAorOjEwQzU5MDAwNDg4MDAyRTgwMEQwMDAyRTgwMEI4MDEyRTAwMjg4MDA2NAorOjEwQzVBMDAwQTIwMDBBODAxMjIyMDBCODgxMjIyODA4Q0YwMjBFMDRCRAorOjEwQzVCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1RAorOjEwQzVDMDAwMjgxMDAyQzQwMDgxMDAyQzQwMEIxMDAyQzQwMDkxMDAwRQorOjEwQzVEMDAwMjY0MDA5MTAwMjU0QTBCNTJDQTU0MjA4NTA4MjAyMDE0MQorOjEwQzVFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkwMDJFNTBFMworOjEwQzVGMDAwNTg5MDAyRTQ4MDlCMDAyRTQ1OEI5MjAyRTQwMDk5MDA0MworOjEwQzYwMDAwMjY0NDBCOTAwMjY0MDhCNTAwMjU0QTA4NTEwMjA2MDQyRQorOjEwQzYxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDNFNTQ5NgorOjEwQzYyMDAwMEM5MDQzQzQwMEM5OTAzRTcwMEY5ODAzRTQwMEQ5MDBGOQorOjEwQzYzMDAwMzQ2MDREOTAwQTY0MDBGOTAwMzY0MDJDOUUwMzI4MDRCMworOjEwQzY0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMDNDNDAzOAorOjEwQzY1MDAwMEY5QzAzRTYzMEY5MDAzRTYyMEY5MDAzRTQwMEU5MDAwRQorOjEwQzY2MDAwM0E0MDRFOTAwM0E0MDA3OTBDM0E0MDBGOTAxQkNBMDA0OAorOjEwQzY3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjgwMDNFMDA0QworOjEwQzY4MDAwMEM4MTEzRTEwOEM4NDgzMjAwM0M4MDAzQzAwMEYwMTA2MAorOjEwQzY5MDAwM0UwNjBDODAwM0YwMDhDQzAwMzMwNDBDQzAwMzBBMDRFRgorOjEwQzZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkEwMDJFODBBRAorOjEwQzZCMDAwMDhFQzQyRkEyMDhFMDAyM0EwMDhFODQyRTgwMEJFODA4MQorOjEwQzZDMDAwMkY4MDA4QTAwMkU4MDBEQTAwMjI4MDQ4RTAwMjBBMDA3OQorOjEwQzZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwMDJDQzAwMgorOjEwQzZFMDAwMDkzNDgyQzkwMDgzODAyMEYwMDgzMDgyQ0MwMEIzODBGNgorOjEwQzZGMDAwMkNGMDA4QjAwMkMxMjA4MDAwQTAzMjA4MDAwMjBBMDAxRAorOjEwQzcwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0MwQjcwMTJGQzhBRAorOjEwQzcxMDAwODk1MDAyRDgwMjg3QzQyMUUyNDg3MDgyREMwMEI3MDA0OQorOjEwQzcyMDAwMkM0MDA4NzIwMkNFMDA5NzA4MjNDMDA4NzAwMjI4MDAyRgorOjEwQzczMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjdFMTNERThFRQorOjEwQzc0MDAwMkQ2ODAzRjIwMEM3ODBCMEUwMDg2ODAzREY4MEY2ODA0MAorOjEwQzc1MDAwM0RFMDhDN0UwM0RBMDBDQzgwMzEyMDBDQzgwQjJBMDIyRAorOjEwQzc2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzA4RkIwMDNDQzBGOQorOjEwQzc3MDAwMEU4MDAzRTAwOEY5MDAzRTQwMEZCMDAyRUMwMEZBMDAyMgorOjEwQzc4MDAwM0U0MDJGQjAwM0U0MDBGQjAwM0NDMDJGQjAwM0MyMDZDNAorOjEwQzc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY5MjdGRUEzQworOjEwQzdBMDAwMENGODAzRkUwMENDQTAzRjIwMERGOTAzM0UwMENGODAyMworOjEwQzdCMDAwMzM2MDBGRjgwM0Y2MDBFRjg0MzNFMDJDQzgwMzAwMDA2OQorOjEwQzdDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQjcwMDJGQzhGNgorOjEwQzdEMDAwMDg1NDAyRDgwMEQ2MDQyRDAxMDg2OTAyMUMwMDg1MDAwNworOjEwQzdFMDAwMjE0MzBCNzAwMzlBQzA4QzAwQTMwMjA4RjEwMjJBMDRCMworOjEwQzdGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMTJEQ0M4QworOjEwQzgwMDAwMDg3MDAyRDQwMDk0MjgyREMyMDhDMjAyNUMwMDg2MDA4MQorOjEwQzgxMDAwMjE4MDBCNzEwMkRDMDBBNzEwMjFDMDA4NDgwMjQwMDBGMworOjEwQzgyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzA4QjMwMDJDRjAxMQorOjEwQzgzMDAwMDgwNTAyQzAyMDkwODAyRTAwMDgwMDgyNEMwMjgwMDA3MworOjEwQzg0MDAwQTA2MTBCMzAwMkEwMDA4MDAwQTAzMDg4QjEwQTQ4MDQyQgorOjEwQzg1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkYwMDJEQzgzQgorOjEwQzg2MDAwMEMzRDAzRTQwMERCMDIzRUYwMkM5MDRCN0MwMEMxMDA0OQorOjEwQzg3MDAwMzIyMDRGRjAxM0UwMDBFODAxMzIwMDhDQUMwMzZBMDQ3MAorOjEwQzg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFQzJERAorOjEwQzg5MDAwNEZCMDAzRTAwNEZBNDAzRUMyNEU5ODIzQUMxMEY4MDBCQgorOjEwQzhBMDAwM0U1MDA3QjAxM0FDMDBGQjAwM0VDMjBGOTIwM0EwMDA0NQorOjEwQzhCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQ0YwMDNGQzA4RAorOjEwQzhDMDAwMENDODIzMzY4MkNGODAzRjgwMENFMDAzRUMwMEY5MjBCNworOjEwQzhEMDAwMzNDMDBFRjAwM0Y4MTBEQzAwMzMwMDRDRTgyMTAwNDRCNAorOjEwQzhFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQUIwMDJFQzA4RQorOjEwQzhGMDAwNEE4RDQyMjEwMDhCNDIyRUQyMDhCMDAzRUMwMEI4ODg0QQorOjEwQzkwMDAwMzQ2MjBEQjAwMkU0MDA4QjAwMjJDMDA4OTAwQTIwNDA3RgorOjEwQzkxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMDJFQzBERAorOjEwQzkyMDAwMDhBMDAyMEQwMDg5MTAyRTA4Mjg5MjAyRUMwNEJCMDAxQQorOjEwQzkzMDAwMjJBMDA4QjAwMjY0MDJCMzAyMjBDMDA4QTIwMkEwMDAzNAorOjEwQzk0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQTMwMDJFQzBGRQorOjEwQzk1MDAwMEE5MDIyMEMxMDgwMDAyQzAwMTgwMjgyQ0MwMEIwMDAzQgorOjEwQzk2MDAwMjY0MDA5MzAwMkM4MjA4MDAwMjAwMDA4MTAwNjgyMDFGRAorOjEwQzk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0IwMDJFQzA4NQorOjEwQzk4MDAwMENBMTAyMjQwMDg4MDAzQzAwMEM4MDAzRUMwMEZCMDA5QQorOjEwQzk5MDAwMzI4MDBFQjAwM0NDODBEQjAwMzJDMDBDQTAwMzgwMDNEOQorOjEwQzlBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGQzA4MAorOjEwQzlCMDAwNEZDMjEzRDQxMEZDMDAzRjAwMEYwMDAzQkMwMEZDMDA2QQorOjEwQzlDMDAwM0Y0MDBGRjAyM0UwMTJGQzAxQkYwMDBGRDAwMzY4MDJDQworOjEwQzlEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzAwQzc4MDMzQzBFQworOjEwQzlFMDAwOEJCNDAzQjBDMENGMkUxRjBDNEZDMzAzMzA4MEZGMDFBOAorOjEwQzlGMDAwM0YwODBGRjAwMDdDMDBGRjIxMzNFNDBDRTAwMzMwMDAxRgorOjEwQ0EwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFRTAwOEI4MjIzRjAxOAorOjEwQ0ExMDAwMEJCNTEyMEQ4ODg4QzAwRTk4MEI4NjAyMjEwMEJCQzA5MgorOjEwQ0EyMDAwMkVFNDRCRjc4MzJGNDRCRjkwMjJDODQ4QTY4MjIwMDRFRgorOjEwQ0EzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzA5OEEwMDIwNTA2QQorOjEwQ0E0MDAwNEJCMjBBODBDQzgzMDEwQzhDMEIyMzBBMDQ2MEIzMTQxNAorOjEwQ0E1MDAwMjQ0MDRCMzAwMkNDMTBCMzAwMjBDOEU5MTEwNjYyMDExQgorOjEwQ0E2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzAxOEE4MEEyNDRFNAorOjEwQ0E3MDAwMEJCMDAyQTEwNDg4NDAyRUEwMEIyMDAyMjgyMEJCNDA0RQorOjEwQ0E4MDAwMkU0MDBCQjAwMjJDMDhCQjAwMjJDMDA5QjAwMjcwMDQ3QgorOjEwQ0E5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQzM4MzMyRTA5RAorOjEwQ0FBMDAwOEYwMDAzQTAwMkNCQzQzRTI4MDc4QjAzMjEwMEY5QzBFRQorOjEwQ0FCMDAwM0UxMDBGQjAwM0VDMDA3QjAwMzJDMDBEQTAwMzUwMDQwOQorOjEwQ0FDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAyRkYwMDNGRTA1OQorOjEwQ0FEMDAwMEZGNDQzNUU4MEZDOTQzRjAwMEZDMDJCRjI1MEZEMjEwOQorOjEwQ0FFMDAwN0U4NDhGRjAwMzZDMENGRjAwM0ZDMDBFNjIwM0I4MDAyMQorOjEwQ0FGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRUIwMDMyNDA3RAorOjEwQ0IwMDAwMkM4MDAzNjkwMENCMzBCMjAwNEZCMzQzRTUwMENCNDAyQgorOjEwQ0IxMDAwNzIxODJDQjAwM0VDMjhDMzIxM0FDMTBGOTQwMzEwMDRGRgorOjEwQ0IyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzQzAwOEIyMDIyNTBCRgorOjEwQ0IzMDAwMDhCMDAyMjgwMDg4QzAyQTAwOEJCNDAyRTgwMERCMDA5RAorOjEwQ0I0MDAwNjIzMDA4RjAwMkZDMDA4RjgwMjJDMDBCOTU0NzMyMDA1MworOjEwQ0I1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjEwMDIwQzJEMQorOjEwQ0I2MDAwNDgzMDAyNDk4MDgzNDI2MDEyMEIzMDAyQzgwMDgyMDJDMgorOjEwQ0I3MDAwMkMzMDA5QjAwMkNGMDE4MzUwMkFDMDBCMjAwMkI4MDAyQworOjEwQ0I4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwOUQ4MEEwRTA3OQorOjEwQ0I5MDAwMDg3OTIyNUU2MDg3OTAyOUEwMEI3ODAyQzYwMDkyODFGNgorOjEwQ0JBMDAwMDVFMDA5NzgwMkRFNDA4NzgwMjFFMDBCMjkwMjA4MDBCOQorOjEwQ0JCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRjIwMDMwQzBCNworOjEwQ0JDMDAwMDgzQTAzNDQwNEMzMTQzMEMwMEYyMjAzQ0M4MEMyMDBDRgorOjEwQ0JEMDAwQTREMjBEMzAxM0NDMjBDMzAwMzhDNDRGMDQ0MzEyMDIzQQorOjEwQ0JFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRUUwMDNGRTAzRgorOjEwQ0JGMDAwMEY3MDAzQjQwMkY0MTAzRkMwOEZBMDAzRkMwMDdFMDA0RQorOjEwQ0MwMDAwM0JDMDBFRjA4M0VDMDBGNzAwM0ZDMDBGQzAwM0QwMDYxRQorOjEwQ0MxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQzAwRjkwMDNFQzAxNAorOjEwQ0MyMDAwMEZBMDAzQUExMkNCMDEzMjgwMEZCMDEzMjgxNEY5ODA5MQorOjEwQ0MzMDAwM0E0MDAzQjQwM0VDNDJDQjE4M0VDMDBGQjAwMzJBMDBDNQorOjEwQ0M0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5RDAwQjUwMDJEQzREOAorOjEwQ0M1MDAwMEI3MDRCN0MwMDg0MDAyMTgwMEI3MDAyOTQxMEIyMDA5QQorOjEwQ0M2MDAwMjlDMDBCNzI4MkRDMDA4NzIwMkRDMTBFNzAwMjEyMDRENQorOjEwQ0M3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJERTBCMgorOjEwQ0M4MDAwMEI2ODAyOUUwMDgzODAyMUUwNUIzODAyMUUwMEI0QzA2NgorOjEwQ0M5MDAwMjVFMDA5NzgzMkNFMDA5NzgwMkRFMDBCNUM0RTMwMDAwNQorOjEwQ0NBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjM0NDJDQzA1OQorOjEwQ0NCMDAwMEIzQzAyQ0M0MDkzMDgyMEUwMEIzMDAyOEMxMEIzQzAzOAorOjEwQ0NDMDAwMjhEODFCMzAwMkNDMDg5MzAxNkNDMDBBQjg4MjEyMDQyOQorOjEwQ0NEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRjYxMDNFODBCQgorOjEwQ0NFMDAwNEJFRDgzQjgwMENFRTRCM0EzMEZFMDAzMzgwMEZFMDBBMQorOjEwQ0NGMDAwM0I4MDBEQTAwMkU4MDBEQTAwM0U4MDBGRTgwMjNBMDQxMworOjEwQ0QwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEwRjg0MDNFMDAxNQorOjEwQ0QxMDAwMEY4MDEzNjAwMEUwMDAzRTAwNDMwODAzRTAwMEY4MDhDNQorOjEwQ0QyMDAwM0EwMDBGODAwM0UwMDBFODQwM0UwMDBFODAyM0QyMDA2RQorOjEwQ0QzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBDNDAwRDlDMEJFNDA1MAorOjEwQ0Q0MDAwMEY5MDAzRTYwMEY5MDAzMjQwMDE5QTAzMjQwMEY5MDAzNQorOjEwQ0Q1MDAwM0U0MDBGOTAwM0M0NDAwOTEwMEU0MDBGOUEwMzAyMDQ5NgorOjEwQ0Q2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0ODkwNEEyNjAxOAorOjEwQ0Q3MDAwOEI5RDgwQTYwMEI5ODAyMjQwNDg5ODAyMjQwMEI5MDAwQgorOjEwQ0Q4MDAwMkU0MDhCOTAwMkU0OTQ4OTYwMkU0MDBCOTQwQjIwMDA3RgorOjEwQ0Q5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkwOEFFNDhBQgorOjEwQ0RBMDAwNEIxMDAyRTU4MUI5MTAyMDQ0MUI5NDAyMjQxMEI5MDBGNQorOjEwQ0RCMDAwNkU2MDBCOTAwMkU0MDA4OTAwMkU0MDBCOTQwMjA2MDA4NgorOjEwQ0RDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODkwMEEwNjgwMgorOjEwQ0REMDAwMEIxMjAyODQ4OUIxMjAyMDQ4MUExMjEyMDQ4MEIxMjI1OQorOjEwQ0RFMDAwMEM0ODBCMTIwMkM0ODFBMTIwMkM0MDBCMTIwMjAyMDEzQworOjEwQ0RGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRDgwMEJFMDA3OAorOjEwQ0UwMDAwMEYwNTBCRTE0MEY4MDAzMjE0MEY4NTAzMjE0MEY4MDBCNAorOjEwQ0UxMDAwMkU4MDBGODUxM0UwMDJDODAwM0UxNDBGMDUwMTJFMDM3QgorOjEwQ0UyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDQwRkQwMEJGNDREOQorOjEwQ0UzMDAwMEZEMTAzRjQ0MDdEMTBCRjQ0NDVGMTJCRjQ0MEZEMTBBOQorOjEwQ0U0MDAwM0Y0NDBGOTEwM0U0NDBEOTEwM0U0MDBGRDEwM0E2MDZBMgorOjEwQ0U1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkQwMDFGNjJEMQorOjEwQ0U2MDAwMEZEODgyMzYwMEJEQTAzQjY4MENEQzgzMjZDOEQ5QTA1MQorOjEwQ0U3MDAwMzM2MDBEOTk4MzU2MjBENUE4MkU0NDBDRDg4Mzg2MDRBMAorOjEwQ0U4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTQ4QjgwMDJFMDBEQgorOjEwQ0U5MDAwMEIwQTgyMjIyMEI4NTAyMkJBMDg4QTIyMjI4MDg4MDBGNworOjEwQ0VBMDAwMjIwMTA4MEMwMjIwMDA4ODAwMkUyODg4ODgwMkNFMDQ2NworOjEwQ0VCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDJDNDA1NAorOjEwQ0VDMDAwMUIxMDBBODQ0MEIxMDAyODU4MEEzMjAyMDUwMDk5NDAxQworOjEwQ0VEMDAwMjA2NTA5MTA0MkM0MDA5MTAwMkM0MDBBMzA4MkMyMDEzMgorOjEwQ0VFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjkwMDJFNDBERQorOjEwQ0VGMDAwMUI5MDAyQTU4MEI5MTAyMjQ4MDgxMDQyMDQxMDA5MDBCNgorOjEwQ0YwMDAwMjI0MDA4OTAwMkU0MDA5QjAwMkM0MDBBOTQyMkM2MDRCMAorOjEwQ0YxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkyMDNFNDA4MQorOjEwQ0YyMDAwMEY5MDEzQTcxMEY5NjBCQTUwMkU5QzBBMjU4NEQxRjBGNworOjEwQ0YzMDAwQjI2MDBEOTAwM0U0MDBEOTAwM0U0MDBFOTAwM0E4MDBCQgorOjEwQ0Y0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDBDRjk5MDNFNkE2NworOjEwQ0Y1MDAwOEY5MDIzNjYwMEYxMDgzQzQwMEY5QzQzRTQ0MEY5ODAyOQorOjEwQ0Y2MDAwM0E0NDBGOTAwMzI0MDRFOTAyM0U0MDJEOTExM0NBMDA3NQorOjEwQ0Y3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRTgyMDNFMDEzMgorOjEwQ0Y4MDAwMEMwMDAzQTEyMEU4NTAzMjEwMkM4QzAzMjEwMEU4MDA5MworOjEwQ0Y5MDAwMzIwMjBGMDAxMzIwODhDODA4MzIwMDBGOEMwM0NBMDAyOQorOjEwQ0ZBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODIwOEVFMzJGOTBCQworOjEwQ0ZCMDAwMEFFMDA2M0IwMEVFMDQyMzkwMDhFMDAyMjgwODhBMDJGQgorOjEwQ0ZDMDAwNzU5MDhCQTA0MTU4OTA4RTgwMkE4MTBCRTAwMzhBMTBDNworOjEwQ0ZEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RTAwQTMwMDZDNjAyNworOjEwQ0ZFMDAwMDgzODFBOEU0MEEwODAyMENDMDkzMDAyMEMwNUEzMDQxQQorOjEwQ0ZGMDAwMjhDNDBCMzAwMjBEMDE4M0MwMjBDMDBCMzAwMkNBMDBEMAorOjEwRDAwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTA4ODcwMDJENjJGMworOjEwRDAxMDAwMEI3MDkyMUMwOEEwMDA2MUMwMDk2MDA2MUM4MEE3MDA2QworOjEwRDAyMDAwMjFDMDBCNzIwMjU4MDE4Nzg4MjlDMDBCNjAxMkE4MDAyQQorOjEwRDAzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRTY4MDNENjBERgorOjEwRDA0MDAwMEM3ODQyOTYwMEU0ODBBMzYwMEQ3ODAzM0YwMEUzODBGMworOjEwRDA1MDAwMjFFMDBGN0IwMzE2MDhDNzgwMzFFMjRGNzg0M0VBMDJENAorOjEwRDA2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAxRjgwMDNDNDA5QQorOjEwRDA3MDAwMEVCMDAyRUMwMEY4MDEzRTQwNEUzMDMzRUQyMERCMDFGMworOjEwRDA4MDAwQkVDMDBGQjQwM0VDMDBGQjAwM0VEODBGQTAwM0MyMDZFNQorOjEwRDA5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQzc4NDIzNjA1RgorOjEwRDBBMDAwMEM3ODBCQkUwMEZEODAzRkUwMEZFQjAzM0UwMENGODAwRAorOjEwRDBCMDAwM0IyNTBDRjg4MzdFNDBDRDgwMzNFMjBCRjkwMzAwMDA2MgorOjEwRDBDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAyODcwMDE1NDhCNQorOjEwRDBEMDAwMDg3MDAyMTQyMEI2MDAzNTlBNDlDODAzOUM4NEE3MDA0MgorOjEwRDBFMDAwMzlEMDBBNzAwMjFBMDhBNDAwMjFDMDA5NjE0MjJBMDQzQQorOjEwRDBGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDA0QworOjEwRDEwMDAwMDg3MTAyOTQwMEI1MDAyRDQwMEJGMTIyNUMwMjA3MDg2MworOjEwRDExMDAwMkM1MDA4NzAwMjUwMDA4NzAwMkRDNDBCNTA0MjAwMDBCNAorOjEwRDEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwODMwMjI0NDBGNgorOjEwRDEzMDAwMTgzRDBBMDEwMEIwNTgyNDIwMDkzMDAyOEY0MDgzRTBENgorOjEwRDE0MDAwMkNDMTBBMzA0MjA4MDBCMzAxNkNDMDA5MDgxNjA4MDQ1QgorOjEwRDE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU4QzAwOEIwMDMyNDA1OQorOjEwRDE2MDAwMEMyNTAzQTg0OEY4ODEzRTgwMEY4MDYzN0MwMENCODBBQgorOjEwRDE3MDAwM0FDMDBDRjAwMzZDMDBDQTAyQkZDMDBGOTg4QjJBMDQ5RgorOjEwRDE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRjkwMDNFNTA0QworOjEwRDE5MDAwMkZBNDBCQzgwMEYwNDAzRUQwMEZBMDMzRUMyMEZCMDRCRQorOjEwRDFBMDAwN0FFMDBGQjAwM0VEMDhFOTAzMzJDMDBEOTAwM0UwMDAxMAorOjEwRDFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFQzQwRUUwMDNFQzAxNgorOjEwRDFDMDAwMENEQTAzNzAwNENDMDJCMUEwMEVGMDIzRUMwMEZGMDBENworOjEwRDFEMDAwMzcyMENEQjA3M0VDODhGQjgwM0ZDMDBGMzAwMzAwNDQ5NAorOjEwRDFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTAwODg4MDJDRTEwNworOjEwRDFGMDAwMDg5NDBBQTkwMjg4NDAyMkQwMDhCOTQyRUMwNEJCMDA3NgorOjEwRDIwMDAwMkNENDBEQjAwMkVEMjBCQkQwMkVDMDBCQjAwMkEwNDAzQworOjEwRDIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwQUI4MDJFRjAwQworOjEwRDIyMDAwMjlBMDgyNkQwMDg4MDgyMjA0MDg5MDQyRUMwMEJCMDAwRgorOjEwRDIzMDAwMkE4MTA4QjAwMkU0MDlCQTA0MkVDMTRCOTg4MjIwMDA2QQorOjEwRDI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDJDQzAxRgorOjEwRDI1MDAwMEEyMTAyODQxMDgyMDBFMDAwMTgwQTEyQ0MwMEIzMDBGOAorOjEwRDI2MDAwMENDMDA5MzAwMkNDOTBCMDAwMkNDMDBCMTAwMjgyMDExRgorOjEwRDI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwRUIwMDNFMDAxNAorOjEwRDI4MDAwMkNCNDAzNjQwODg4MDBCMjAwMENCMjQzRkMwMEZCMDAxRAorOjEwRDI5MDAwNTYwMDBDRjAwMUU0MDBGQjAwM0ZDMDBGODAwQjAwMDNDMAorOjEwRDJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDNGNDBGRgorOjEwRDJCMDAwMkRGMDYxRjAwMEY0MDAyNzAxMERCMTExRkMwMEZGMDIxOAorOjEwRDJDMDAwMDdDMDBGRjAwM0VDNDBGRjAwM0ZDMDBGQzAwMzY4MDYyQgorOjEwRDJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNjAwRUY5MDNENEMxQgorOjEwRDJFMDAwMkNDMDEzRjQwOEZEMjAzNzRDOEU4MjgzNzQ4NERDQzI3QQorOjEwRDJGMDAwM0ZEODBERjIwM0VDQzBGRjgxM0YwMDBDRjgwM0YwMDBCMworOjEwRDMwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNjAwOEIyNDJFNUNGRQorOjEwRDMxMDAwMDg4RDAyRkY0OEI5OTAyRjU0MEI4NDgyM0U0MEEwODBCNAorOjEwRDMyMDAwMkVDNDBBRkM0MkVEODBCOTgwMkU2MDBBOTgxMkUwMDRGNworOjEwRDMzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFNDAxQTMwMDI4NDgzOAorOjEwRDM0MDAwMEEwMDQyQzQwMEIxMDAyQzQ5MEIwQTQyMDRBMjkxMjFGOAorOjEwRDM1MDAwMkNDOTA4MzEwMjhDQzFBMzAwMkM0MDA4MTgwMkEyMDE3QworOjEwRDM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMDIwOEI4MjJFNDQzOQorOjEwRDM3MDAwNTg4MDAyRTQwMEJCMTAyRTQwMEJBMTEyMEMwMTg5MTA1MgorOjEwRDM4MDAwMkVDMDBBQjAwMkVDMDFCODgwMkVFMjBBQTEwMkYwMDQxRAorOjEwRDM5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQjQwRUI0MDNFNjBFNAorOjEwRDNBMDAwMEU4NzMzRTQwMEI5QTEzNkMwMEVBODBCMjYwMERBQzAwMAorOjEwRDNCMDAwM0VDMDhEQjAwM0VDMDBGQjg1M0VFMTA4QjgwMzkwMDU0QworOjEwRDNDMDAwMjAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMjJGNjAxNAorOjEwRDNEMDAwMDNFODgzRkMxMEZEODAxRjQwMUZEMDEzQkU0MEVFMDQwNQorOjEwRDNFMDAwM0ZDMDBGRjA0M0ZDMDhGRDAwM0NDMDBGRDAxMUY4MDAxNworOjEwRDNGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwREIwMEIyNDAwQworOjEwRDQwMDAwMEU5NDAzMjQwMEQ5MDBCQUMwMEMyMDAzRTQ5MEZCMDA2MgorOjEwRDQxMDAwM0FDMDBDQjAwM0VDMDFGQTAwM0VEMDJDOTgwMzkwMDQwMworOjEwRDQyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMzAwOEIwMDIyNDgxNworOjEwRDQzMDAwMDg4NDIyMkMwMEI5MDAyMkMwMDhBMDAyRUQwMDhCQTBCNQorOjEwRDQ0MDAwMjFDMDA4RjAwMkZDMDBCOTgwMkVDMDA4QTAwMjMyMDAwMgorOjEwRDQ1MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0NTIwOTMwMDIyRjg5NQorOjEwRDQ2MDAwMEIzMDBBODQ0MEIyMDAyMDQwMDgxMDAyQzQwMDgwODBDMworOjEwRDQ3MDAwMjhDMDI4MzkwMjRDMDBCMTAwMkNDMDA4MzAwMkI4MDA4NgorOjEwRDQ4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEzNjAwOUY4MDIxNjA1NQorOjEwRDQ5MDAwMDkzODAyOUUwMEIyQzAyMDYwNDg0ODEyRDZDNjg2RDAyNQorOjEwRDRBMDAwMjFFMDA4NzgwMERFODBCNzgyMkRFMDA4RjgwMjA4MDA0RAorOjEwRDRCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzIwRDMxMDMwQzhENQorOjEwRDRDMDAwMEYzMDAzODQwMEYxMDAzMDQwMjQxOTAzRTRDMEUwNDAzMQorOjEwRDREMDAwM0FDMDBDMzIwM0NFODBCMTI4M0NDMDBDMzAxMzkyMDIwQgorOjEwRDRFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUQ5QzAwRTYwMDdGQzAxRQorOjEwRDRGMDAwMEVGMDIzNzQ0MEZGMTAzRjQwNEZEMDAzRkNEMkNFMDQwNworOjEwRDUwMDAwM0ZDMDBGRjQwM0ZDMDBGRTAwM0ZDMDBGNzEwM0QwMTJCOAorOjEwRDUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAwQ0IwMDE2QzA2RgorOjEwRDUyMDAwMEQ4MDAzMjcyMENCMDAzRUMyMEFCMDUzRTQyOEMxODFGRQorOjEwRDUzMDAwMzJDMTBFQjkwMzJDMDBGMTgwMzVFMDBDQjgwMzJBMDQ4NworOjEwRDU0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcxMDJENDA3MAorOjEwRDU1MDAwMDg3MDAzNUMwMEE3MDAyRDQwMjg3MDAyRDQwNDg3MDRFMworOjEwRDU2MDAwQTFEMDBCNzIwMjFEMDBGNzAwMjFDMDBENTAwMjEyMDQ2MQorOjEwRDU3MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODU4MDI1RTBFMworOjEwRDU4MDAwMDk3ODAyMzcwMzg3ODAyRkUwMDg3ODEyQzYxMDhEODA1MworOjEwRDU5MDAwMjVFODBCMzgwMjFFODBCQzg0MjVFMDA4NTgwMjcwMDA4NAorOjEwRDVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDgwODM4ODJDQzBCQgorOjEwRDVCMDAwMDgzQzAyNEUwMUEzRDIyRUM0MDhCMTAyQ0MwMDgzODBFNQorOjEwRDVDMDAwMjRDMTBCMzAwMjBDMDBCMzQwQTBEMjA5MzAxMjUyMDAyQgorOjEwRDVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTAwQ0FDMDM2ODAyNAorOjEwRDVFMDAwMEQ2NzEzMjgwMENFMDAzRUEwMENFRDAzRTgwMENFRTA0RQorOjEwRDVGMDAwMzY4MDFFQTAwQjI4MDRGRTAwQjdCMjBDRTAwQjdBMDBBOAorOjEwRDYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDJFMTAwQworOjEwRDYxMDAwMEY4MDAzRTAwMUQ4MEEzRTAwMEY4MDAzQzAwMkY4MDgyMworOjEwRDYyMDAwM0EwMDBGODAwM0UwMTBFODIwQkUwMDBGODAxMzkyMDA0NAorOjEwRDYzMDAwMjAwMDAwMDAwMDAwMDAwMDA4MTBFNTAwRkIwMDNFNDA1NAorOjEwRDY0MDAwMEM5MTAzMjYwMDYxODAzMjQwMEM5MDAzMjQwMEM5MDAzNQorOjEwRDY1MDAwMUU0MDBDOUMwM0U0MDFGOTAwM0U0MDBGOTAwM0MyMDAwMQorOjEwRDY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NzAwQjkwMDJDNDA3QQorOjEwRDY3MDAwMDA5QzAyQTYwMDc5MDAyMjQwMjg5MDAyMjQwMDg5MDAyNAorOjEwRDY4MDAwMkM0NDA4OTgwMkU0MDBCOTgwMkU0MDBCOTAwMkUwMDE3RgorOjEwRDY5MDAwMDAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQkIwMDI2NTAxQworOjEwRDZBMDAwMjg5MDgyMjQ4NDk5MjAyMjQwNDk5MDAyMjQwMDg5MDBGNQorOjEwRDZCMDAwMkU0MDA4OTAwMkU0MDBCOTYwMkU0MDBCOTAwMkM2MDQ5MAorOjEwRDZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNjAwQjEwMDJFNDhFMQorOjEwRDZEMDAwMDgxMjAyODQ4MEIxMjBBMDQ4MDkxMjBBMDQ4MDgxMDA0NworOjEwRDZFMDAwMkM0ODI4MTI0MkM0ODgzMTAwMkM0MDBCMTgwMkMyMDE3OQorOjEwRDZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwRjg1MDM2MTQ3MworOjEwRDcwMDAwMEM4MDAzMjAwMEU4MDAzMjE0MEM4NTAzMjE0MEM4NTAyRgorOjEwRDcxMDAwM0UxNDBDODAwM0UxNDAzODAwM0UwMDhGODAwM0VFMDM4RQorOjEwRDcyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURENDAwRkIwNDNENDRBMAorOjEwRDczMDAwMEY1MTIzRDQ0OEVEMTAzRDQ0NEVEMTIzRjQ0MkZEMDA1NworOjEwRDc0MDAwM0U0NDhGOTEwM0U0NThGRDAwM0Y1MDBGNTAwM0U2MDYxRQorOjEwRDc1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNDAwRjkwMDNENDBEMgorOjEwRDc2MDAwMENEMDAzRjQwMEREMDIzRTQwMEM5MDAzRTQ0MEM5MTBFRAorOjEwRDc3MDAwMzc0MDA3RDAwNzI0MDBFNTAwMkY2QTBGNzAwMzA2MDAyQQorOjEwRDc4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjgwMDNBMDAwRgorOjEwRDc5MDAwODA4MDAyRTAwMDg4MDAyRTAwMEE4MDUzQTI4MDJDQTAyNgorOjEwRDdBMDAwMjIwMDBCODAwQTIwMDBCODAwMkUxMDA5ODAwMzBFMDQwRQorOjEwRDdCMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMDZDNDAwQgorOjEwRDdDMDAwMkExMDAyODQwMTgxODAyRTQwMDkxMDAyRjQwMDhEMDQ4OQorOjEwRDdEMDAwMjA0MDBCMTAwMjg0MDBCMTAwMkM0MDBCOTgwMjQyMDE0MworOjEwRDdFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDIwQjkwMDJBNDBCOQorOjEwRDdGMDAwODhCNDAyRTYwMUE5MjAyRTQ4MEE5MDAwQTQ0MEFENDA1QQorOjEwRDgwMDAwMjI0MDBCOTAxMkE0MDRCOTAxMkU0MTBCOTAwMjA2MDQ5MQorOjEwRDgxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjlDMDNFNjBCOAorOjEwRDgyMDAwMEM5NDEzQTYwMkQ5NDIxQzYwMEM5RTAxQzYwNEMxMDBEMAorOjEwRDgzMDAwQjI0MDFGOTAwMkE0MDBFOTA4M0U2ODRGOTgwQjY4MDRBQworOjEwRDg0MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNjQwRjkyMDM4NzA5OAorOjEwRDg1MDAwMEY5MTAzRTQwMEQ5ODAzRTQwMEY5QzEzQTQwMEY5MDAwRgorOjEwRDg2MDAwM0U0MDBGMTAwMzY0MTBGOTBBM0U1MDBEOUEwM0NBMDA5RgorOjEwRDg3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwRDgwNDNFMDA1NQorOjEwRDg4MDAwMEM4MTEzQzAwMkQ4MjAzRTAwMkQ4NDAzRTAwMENDMDg5OAorOjEwRDg5MDAwM0EwMDBGODA0M0UwMDBGODQxMzIwMDA3ODE4QjBBMDQxMAorOjEwRDhBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzQTYwOEEwMDJGQTgzMAorOjEwRDhCMDAwMEFFMDIyRTgwMjdFNDgyRTgwMDhBMDQyRTgwNDhFMDA5QQorOjEwRDhDMDAwMjNBODBCQTg4MkU4MDBFRTAwQTI4MDRCNjAwMjBBMDBBOQorOjEwRDhEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMDZDQzBEMAorOjEwRDhFMDAwMDgzMDAyQ0MwMDEzODEyQ0MwMDgzMDAyQ0U0MDgyNDBBOAorOjEwRDhGMDAwMjhFMDBCMzgwMkNDMDBCMzEwMjRDMDhCMzgwMjBBMDA5OQorOjEwRDkwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwODcyMDJGQzA3MgorOjEwRDkxMDAwMEE3MDAyREMwQUI2MDAyQ0M4ODg3MjA2RDgwMDg2MDA5RAorOjEwRDkyMDAwMjFDMDBCNzAwMkRDODRBRjgwQTVDMDBCRDAwMjI4MDBBMAorOjEwRDkzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRDc4MDNEQTBBNQorOjEwRDk0MDAwMUM3ODEzRDYwMkQ3ODAzREVDMDg3RTIzRkUwMENFODBFMworOjEwRDk1MDAwMzk2MDBGNzgwM0RGMDBGNjgwNzVFMDBGNzgwMzJBMDI0NAorOjEwRDk2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MUQ4QzAwRkIxMDNFODAzRAorOjEwRDk3MDAwMUZBMDIxQ0MwMEZBMDAzRUMwMEVCMDAzRTgwMkZBMDA1RQorOjEwRDk4MDAwM0U0MDBGQjAxM0VDMDBFQTAxM0FDMDBGOTAwM0MyMDYwQworOjEwRDk5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQzAwRkY4MDNGNjAwOAorOjEwRDlBMDAwMDg5OTA3N0UwMEREODAzRkUyMENGODAzRjYwMkRGODA3NQorOjEwRDlCMDAwQjNFMDBDRjgwMzNFNDFDQzgwMzNFNDBGRjgwM0MwMDAyMQorOjEwRDlDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjcwMDJEQzBBRQorOjEwRDlEMDAwMEQ1QTIyREM4MDc1MDAyREMwMDg3MTAyRjAyMDg3MDBFRQorOjEwRDlFMDAwMjFDMDBBNzAwMjFDMDBENDI4MjFDMDBCNzIwMkVBMDQ3NAorOjEwRDlGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzQwQjcwMDJEMDAwNworOjEwREEwMDAwMDg3MjIyRjQwMDg3MDAyREMyMDg3MDAyRDQwMDg3ODBCQgorOjEwREExMDAwMjU0MDA5MzAwMjVDMDFBRDAwMjlEMDRCNzAwMkMwMDBFNgorOjEwREEyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQkJDODJDQTA4NworOjEwREEzMDAwMDkyMDAyQ0UwMEEzMDAyQ0UwQTgzRDQyQzIwMDhCODA0QQorOjEwREE0MDAwMjQ0MDBCMzAwQTZDMDhBMzQwQThFMDBCMzQwMkM4MDQ0MQorOjEwREE1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwRkY0ODNDMjg4MQorOjEwREE2MDAwMENBOTIzNkM4MDhCMDAzRkMwMENGQzAzRUMwMEQ4ODAxOQorOjEwREE3MDAwMzQ0MDBEMzAwMzdDMDJBMzQwMzg2ODBGMjQwM0VBMDRDRAorOjEwREE4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFRDg4RkIwMDNFNTBCOAorOjEwREE5MDAwMEZBMTAzRUMwNDNBQzAzRUMwMEZCMDgzRTgwMkY4MTBCNworOjEwREFBMDAwM0E0MTBFOTAwM0FDMDA5QjA4QjY0MDBGODEwM0UwMDBBMgorOjEwREFCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMEIzMjA1NworOjEwREFDMDAwMEM1MDEzMUMwOUNEODMzM0MwODM3MDAwM0MwMERDMTA2NAorOjEwREFEMDAwMzI2MDBFRjE0MzJDMDBDRTA0M0I3MDBDRjA4MzAwNDQwNgorOjEwREFFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NzgwQkIwMTYyMjE1QgorOjEwREFGMDAwOEE4OTIwMkMwMDgwRTAyMkMwMEJCMDAzRDgxMDhDMDQ0RgorOjEwREIwMDAwMjI0MDA1OTAwMkFDMDBEODgwMzY0MDBBOTAwMjIwNDBBNgorOjEwREIxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQkIwMDIyMDY2NworOjEwREIyMDAwMDg4MDAyMkUwMDg4MjAyMkMwMDlCMDAyQTQwMDk5MDBCQgorOjEwREIzMDAwNjJDNDA4QjAwNjJDMDA4ODgwMjI0MTA4QTAwMjIwMDBBMAorOjEwREI0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwMDIwNDA2QQorOjEwREI1MDAwMEEwMDgyMEMwMDgwMDAyMEMwMEIzMDIyQTAwMDgxMDA0RgorOjEwREI2MDAwQTBDMDA5MzAwMjhDMDA5MDAwMjQ0MDBBMjgwMjAyMDE2MworOjEwREI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRkIwMjIwMDAxQgorOjEwREI4MDAwMkM5MjAzMkMwMjg4MDAzMUMwMEJCNTAyQTQwMEQxMDRGMgorOjEwREI5MDAwMzI0MDBFOTAwMzJDNDBDOTAwM0E0MDhDQTAwMzAwMDM5MQorOjEwREJBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwRkYwMDJGMDA0NgorOjEwREJCMDAwMEZDMDAzREMwMEZDMDAzRkMxMEZGMDQzRjAwMEZEMDA4QworOjEwREJDMDAwM0Y0MDRGRDAwM0ZDMDBGNTAwM0Y0MDBGRTAwM0U4MDY2NAorOjEwREJEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVEODgwQ0MwMEI3MDQzMQorOjEwREJFMDAwNEVFMTAzM0MyMERGMTAzMTgwMDZGMDAzN0YwMEZGQzBEMAorOjEwREJGMDAwM0JDMDBFRjIwMzVFMDBFRjEwMzNEMDJDRjIwMzMwMDA3NgorOjEwREMwMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBFOTAwODhDNjIwNUMyMQorOjEwREMxMDAwMDhBNDU3NjUwMDhGNTIyQUYwMDlGQzAyMDQwMEJCMDBEQgorOjEwREMyMDAwMkREOTA5NzQ4MzY0Mjg4MzQ0MjI4NDg4MDY4MjMwMDRCMQorOjEwREMzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDOTAwODAxMDIwMDg2NgorOjEwREM0MDAwMDgzMTEyMDRCMkEzMDAyMDg0MUIzNDAyMEM4MEIzMjBEQworOjEwREM1MDAwMkNDNzA5MzYwMjhDODA5MzQwQUNDODA4MzEyODMyMDFBOQorOjEwREM2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBOTAwODgwMEEyNTA0QworOjEwREM3MDAwMDgzNTAyMjQwMDhCMDQyRUMxMDlCMDAyMjQ5NEJCMDA5NQorOjEwREM4MDAwMkVDMDBCQjAwMkNDNjA4QjAwMkU4MDA4ODAwMDMwMDRDOAorOjEwREM5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNzAyQ0IxOEIyODAxMQorOjEwRENBMDAwMkNBQzBBMkUwOEVCMDAzMjEyNEVCMDAzMkI4MEZCMDA4NgorOjEwRENCMDAwM0FDMDBBQjAwM0FCMDhFQjA0MkU0ODBDQjg4MzAwMDQ0QQorOjEwRENDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkY4MDM5Q0E0QgorOjEwRENEMDAwMERFODAzRDY0MEU3MDQzQjY2NEU3MDAzQjgwMEZGMDEzMQorOjEwRENFMDAwM0ZDMDZDRjAwMzcwMDZFNzAwMzEwNDBGQzE0M0Y4MDAzOQorOjEwRENGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4NTAwQ0I0MDMyOTAyMgorOjEwREQwMDAwMkZCMDBCNjQ4MEZCMDhCQTEwMERCMEE3MkQwMEZCMDRFOAorOjEwREQxMDAwM0VDMDhFQjAwMzZEMDBEQjAxMzI0MDhDMzMwMzkwMDRCMworOjEwREQyMDAwMjAwMDAwMDAwMDAwMDAwMEMwMDUyNDAwODNFMEEyRDAxNQorOjEwREQzMDAwNDBCMDAyMjUwNEJGODBBMDUwMDhGODAyMjAwMDhCMDJFQQorOjEwREQ0MDAwMkZEMDA4RjAwMjI0MDA4RjgwMzYwMTA4ODQ0MjM2MDA2QworOjEwREQ1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0NDAwODM0ODIwQzRBMworOjEwREQ2MDAwMDkwMDAyNDYwMEIzMDFBODkwMTkzMDEyOEMwMEEzMDRFOAorOjEwREQ3MDAwMkVFMjBBQjAwMjBDMDA4MzQ5MjhDMDA5M0MwMjM4MDA5OAorOjEwREQ4MDAwNTAwMDAwMDAwMDAwMDAwMEYwMDEzNjA0ODM4MDIxRTExMworOjEwREQ5MDAwMDgzODEyMUUyOEIzOTgyMUEwMTkzODgyOTYwMDg3ODM2QworOjEwRERBMDAwMkRFMjA4NzgyMjM2OEM4NzgwMkRFMDA5NzkwMjNFMDAyQQorOjEwRERCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwNDAwQzMzMDMwQzhFNAorOjEwRERDMDAwNEQwMDBCNEM4MEYzMTIzOEMwMEQzQTAyOEM4MEYzMDBFQQorOjEwREREMDAwM0NDMDBFMzAwQjBFMDBDMzBDM0FDMDBEMzAwMzEyMDJEMworOjEwRERFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDA2RkYxMDNGQzAwRQorOjEwRERGMDAwMEZCMDEzQkMwMEZGMTA3RkMwMEVGMUEzN0MwMEZGMTIxOAorOjEwREUwMDAwM0ZDMjBGRjUyM0JDNDFFRjE4Mzc4MEFFQzAwMzUwMDY2OAorOjEwREUxMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFNDAwREIwMDNFREExRQorOjEwREUyMDAwMEM4MDAzNjYxMDhCMDAzMjgwOENCNjAzNEEwMDRCODA1NgorOjEwREUzMDAwMzJDODBDQjQwMzBBMTBEQjAwM0VDMTBDQjA0MzJBMDAwOAorOjEwREU0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTFCNDAwODcwNDJDQzA1RQorOjEwREU1MDAwMEQ3MDAzMUMwODg3NDgyMDgxMEQ3MjgyNUMwMEQ3MDA3QQorOjEwREU2MDAwMjFDQzI4RjAwMjFDMTA4NzIwMkMwMDA4NDAwQTMyMDQyNAorOjEwREU3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5NjAwQjc4MTJERTBFNworOjEwREU4MDAwMDg0ODAyMEUwNDg3ODAyMUUwMDg3ODAyM0UwMTg3ODA1RQorOjEwREU5MDAwMjFFMDE4NzkwMjNBMDE5N0EwMkQ2MDA4MzgwMjIwMDA4RAorOjEwREVBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDNjAwQTNDNjJDQzBEQgorOjEwREVCMDAwMDkzMDAyMEMwMTgzMDAyMEUwMDkzMDAyNEUwMDkzMDA3QgorOjEwREVDMDAwMjBDMDQ5MzAyMjBGNjQ4MzAyNkNENDI4MzAwMjEyMDQyRgorOjEwREVEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTFBQjgwRkFFMDNDODg1MAorOjEwREVFMDAwMENFMDAyMjgwMkNBMDBCM0E5MENBMDAzM0IxMENBMDAzMAorOjEwREVGMDAwQTI4MDBDQTAwQjM4MDBEQTAwM0ZCMDBDRTYwMzNBMDQxNQorOjEwREYwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMDIwOTgwODNFMDBBQgorOjEwREYxMDAwMEY4MDBCRTEwMEY4MDEzQzEwNEYwMDAzQTA0MEY4MDAxNworOjEwREYyMDAwM0UxMDBFODAwM0UwMDBGODAwM0MwMjJGMDQ5M0QyMDA2NAorOjEwREYzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzFDMTMyNDBDMQorOjEwREY0MDAwMEM5ODAzMjY0MEY5MDAzMjQwMEM5ODAzMjQyNEY5MDA3MQorOjEwREY1MDAwM0M2MDBDMTAwM0E0MDBGOTgyMzI0MDBDOTAwMzAyMDREMAorOjEwREY2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNTA5RQorOjEwREY3MDAwMEQ5ODAyMjU4MEI5MDAyMjUyMEQ5QzAyMjQwMEI5MDBBMAorOjEwREY4MDAwMkU2MDA4OTA0MjI0MDBCOTQwMzY0MDA4OTAwQTIwMDBENAorOjEwREY5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOEQwMDIzNDA0MAorOjEwREZBMDAwMDgxMjAyMjQwMEExMTBBMjYwMDg5MjhBMjQwMEI5MDE3QworOjEwREZCMDAwMkU0NjA4OTAwMkE0MDBCMTUwMjI0MDI4OTA4MjA2MDAwQworOjEwREZDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0ODUyMEExRDg1RgorOjEwREZEMDAwMDkxMDAyMDQ4MEIzMjAyMDQwMjkxMjA2MDQwMEIxMDE3OAorOjEwREZFMDAwMkM0ODI4MTIwMjA0MDBCMTIwMjQ0ODA4MTIwMjAyMDEyMQorOjEwREZGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyOEEwMEIzMDA3QworOjEwRTAwMDAwMEMwNTAzMjE0MEUwNTBCMjAwMkM4MDAyMjE0MEYwNTA2QQorOjEwRTAxMDAwM0MxNDBDODUxM0ExNTBGODUwMzIxNDBDODUyMzJFMDNBOAorOjEwRTAyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNFNDQyQworOjEwRTAzMDAwMEZENDBCRjQ0NEY5MTAzRjUwNEYxMTAzRjQwMEY5MDBEMgorOjEwRTA0MDAwM0U0NDBGOTE1M0Y0MTRGOTEwM0Y0NDBGRDEwM0U2MDJGQworOjEwRTA1MDAwNzAwMDAwMDAwMDAwMDAwMDk4MDVFNkEwREQ4OEIzNjZBRgorOjEwRTA2MDAwMENEQzgzMzY4OEJEQTAzNzZBMENEQTBCMjUwMkM5NDA2OAorOjEwRTA3MDAwM0Y3ODRGOThCM0U1MDRDREEwNzI3ODBDRDg4QjI2MTQ2NgorOjEwRTA4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzAwODg0MjIyMzFEOAorOjEwRTA5MDAwMDgwQTAyMjJBMEI4RjkyMjEwMEQ4NDEyNkE4MDg4ODAzMgorOjEwRTBBMDAwMkUyMDBCMDgwMkUyODBBOEE4QTIzODQ4QTgwMjBFMDA4MQorOjEwRTBCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNEEyODEwMDIwNDg5NAorOjEwRTBDMDAwMDgxMjQyNDUwMEIxMDAyNDQwMDkxNDAyMjQwMDgxMjBCNgorOjEwRTBEMDAwMkM1ODBCMTA4MkM0MDQ5MTQwNjQ2QzA4MzA4MjEyMDVFNQorOjEwRTBFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkwMDIyNDEwMworOjEwRTBGMDAwMDg5MDhBNjQ4MEI5MDAyMjUwMDk5MDA2NjQwODk5MDA0QgorOjEwRTEwMDAwMkU0MDBCOTAwNkM0MDFCOTAyMjY2MTg4OTAwMjA2MDRENQorOjEwRTExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwQzkwMDIyNDBEQgorOjEwRTEyMDAwMkM5NDIzNjQwMEI5MDAzNjQwMDk5MDEzMDUwMEM5MDBGRgorOjEwRTEzMDAwM0U0MDRGOTAxM0U1QzBEOTAwMjY0MDJDOTQwMzI4MDBBMAorOjEwRTE0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDAyRTkwODNDNDBFMworOjEwRTE1MDAwMEY5MDBCQTQwMEYxMDAzRTQxMEY5MDQzQTQ4OEU5MDQwNgorOjEwRTE2MDAwM0U0MDBGOTAwM0U2MDBFMTAwM0E0MDlGOTI2M0RBMDBFMAorOjEwRTE3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MDEwRTAwMTMyMDA2NAorOjEwRTE4MDAwOEY4MDAzMjAwMEQ4MDgzMDAxOEMwMDAzRTEwMkM4MDQwRQorOjEwRTE5MDAwM0UwMDBDODAwQjIxMDBDODAwNzgwMDBGODYwMzBBMDBBNworOjEwRTFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU0MDJCODI3RgorOjEwRTFCMDAwMEJBMDAyM0EwMDhFODAyMzgyMDhFMjAyMjgxMDhBMDAxNworOjEwRTFDMDAwMkY5ODI4QTAxMjI4MDA4RTIwMkU4MDRCRTQwMjBBMDBFRgorOjEwRTFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyQTI0MDIwODAwMgorOjEwRTFFMDAwMEJCMDAyNEU0MDkzQzBBMDIwMDgzNjAyOEMwMDkzMDA3MgorOjEwRTFGMDAwMkNFMjA4MzAwNjRDMTI5MzA4MjhDMDBCQjAwMjBBMDAyQgorOjEwRTIwMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzA4ODI0MDI5NDBDRQorOjEwRTIxMDAwMEI3MDAyNUUwODg0MDgyMzQwMDg3MDA2MUM4MDg3MDA4QgorOjEwRTIyMDAwMkQyMDA4NzkxMjVDMDA5NDAwMkRDMDBCMzA0MjI4MDA4QworOjEwRTIzMDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAwRTQ4MDMxQTE3QQorOjEwRTI0MDAwMEY1ODEzNzYwMEQwODAzMUMwMEMzODAzQkU4MEQ3ODFDMAorOjEwRTI1MDAwM0YyMDhDNzkwMzdGMDFENjgwMzlFODRGNjgwMzJBMDA3QworOjEwRTI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURCRTAwRkEwMDNFMDA5MworOjEwRTI3MDAwOEY5NjBCQTQwMEVBMDAzQ0MwMEY5MDAzQUMyMEZCNDAzQgorOjEwRTI4MDAwMkUwMDBGQjIwM0FEQTBFQTAwM0VDMDBGQTAxQkMyMDRENworOjEwRTI5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTA4REU4MTMzQTQ5RAorOjEwRTJBMDAwMEVGQzEzM0UwMEZDODAxMzIwMEM2ODAzM0UyMEZGQzhDOAorOjEwRTJCMDAwM0Y2MDFERjgwMzdFMDBDNzgwMzNFMjBDRDgwMzEwMDBENgorOjEwRTJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODY0MTMxQzRDRAorOjEwRTJEMDAwMDg3OTQyOUMwMEJDMTAyMTQwODUzNTAzNUMwMEI3MDBFMgorOjEwRTJFMDAwMkRDMDA4NzIwMjJDMDBBNzAxMzdDMDA4NTE0MjJBMDAzNQorOjEwRTJGMDAwNjAwMDAwMDAwMDAwMDAwMDEwMDA4QzQwODIwMDI0ODFCQgorOjEwRTMwMDAwMDhEODAyMTQyMEI1MDAyMDQwMDk2MDAyMUM0MEI3MDA2NAorOjEwRTMxMDAwMkM0MDBCMzAyMkRDMDA5NzAwMjFDNDA4NDAwMjQ0MDA0RQorOjEwRTMyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRFQzAwOTIwNjIwOTAyNQorOjEwRTMzMDAwMzgxNTAyODYwMEI4MDA2MDUwMDkzMDAyNEUwMUJCMDA1QgorOjEwRTM0MDAwMkU0MDBCMzAwMkNFMjBCMzAwMjRGMDQ4MDIwQTU4MDRCRAorOjEwRTM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQ0EwMEE2OTQxMAorOjEwRTM2MDAwMkM5MDAzMkUwMEZCMDVCMjg1MEQ5MDAzM0Y5MEZGMDAxQgorOjEwRTM3MDAwN0U4MDFGRjA0M0ZDMjE5QTAwMzNDODNDQjIwMzZBMDQzQworOjEwRTM4MDAwNjAwMDAwMDAwMDAwMDAwMDkwMDBFQzAyRUE0MDNEODBDOAorOjEwRTM5MDAwMEYxMDkzRUQwMEZCNDAzRTkwOEYzMDAzRUM4MEZCMDBBQworOjEwRTNBMDAwM0U5MTFDQjAwMzJDMTBFODAwM0VDODFGOTAwM0E1MTAzRQorOjEwRTNCMDAwMzAwMDAwMDAwMDAwMDAwMDgwMTBGQzAyRTQwMDczQTBBOAorOjEwRTNDMDAwMENGQzAzN0MwMkZGMTAxM0M0MUNDMDAzM0MwMEZGMDBDNAorOjEwRTNEMDAwMzdFMDBERjAwM0ZDMDBFRDgwMzFDMDBDMzI2MzIwMDQwNworOjEwRTNFMDAwMzAwMDAwMDAwMDAwMDAwMDg0MDA2QzAwOEFDMDIyQjFGMAorOjEwRTNGMDAwOEFCODQzNEExMERCMjAyMEYwMEE5NDAzNkMwMEJCMDc2NAorOjEwRTQwMDAwMjJCODA4QjAwMkVDMTFFOEMwQjJDMDJBOTIxQTIwMDA2QgorOjEwRTQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEyQzAwQUE4MDIyOTg1QgorOjEwRTQyMDAwMDg5MDAyMkYwM0JCMDEyQTgzMDhCMjRFMkMwNEFCMDJEMgorOjEwRTQzMDAwMjJDNDI4QjAyMkVDMDlCMzUwNjJDMDA4QjAwMjIwMDAwOAorOjEwRTQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxODMwMDYwODAxMAorOjEwRTQ1MDAwMDgxMjBBNDQwMDkzMDAyQTgwNEEzMDAyMEMwMEIzMDBEQworOjEwRTQ2MDAwNjBDMDA4MzAwMkNDMDBCMzAyNjBDMDA4MDA0NjAyMDE2MAorOjEwRTQ3MDAwMDAwMDAwMDAwMDAwMDAwMDgwMEQ2QzAwRTgwMjIyODAxNworOjEwRTQ4MDAwMkNGMjQzMkMwMEZCMDBCQUMwMDhBNTAyM0MwMEVGMDBCMAorOjEwRTQ5MDAwMzZDMDRERjAxM0ZENTFGQjAwMzJDMDBDQjAwMzIwMDExQgorOjEwRTRBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwN0UwNDNGODAyMgorOjEwRTRCMDAwMEYzMTQzRjAwMkZGMDAzN0MwMEZGMDAzRkMwOEZGMDBFQworOjEwRTRDMDAwM0ZDMDBGRjAwM0ZDMDBFRjAwM0JDMDBGQzAwM0U4MTY5NQorOjEwRTREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMjQwRkM4MDNGMjRGNgorOjEwRTRFMDAwMEREODUzRDYwNERGMzIzRkNDNENDMDQzRkMwMERGNjA3NAorOjEwRTRGMDAwMzdDMDBGQzQwMzdDRDBERjIwMzNEODBERjg0M0YwMDBDMQorOjEwRTUwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMThFODgwQjAwMTJFMDhCNAorOjEwRTUxMDAwODg5MDAyRUMyMDhCNzAyRkNDMDhCMzgyRkRFMEJGNDBDNgorOjEwRTUyMDAwMjJEODBCOTMwMkZEQzBBRjEwMjhGMDA4QkMxMkYwMDRGMworOjEwRTUzMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwQjAwMDJFMDE3QgorOjEwRTU0MDAwMEExMjgyRUM4MEIzMDAyQ0M4MEEwMDMyOEMwMEEzMzA3RgorOjEwRTU1MDAwMjBEMjA5MDAwMjhDODA4MzAwMjhEODBCMzQxMkYyMDFFQgorOjEwRTU2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBQzAxQjgwMjJFMDBFMQorOjEwRTU3MDAwMEE5MDEyRUMxMDhCMDAyRUMwMEFCMDAwRUMwMEIzMDAyMQorOjEwRTU4MDAwMjJDMTBCOTIwMkNDMDFBQjAwMkFDMDAyQjAwMkYwMDRGRgorOjEwRTU5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMDAwRkEwQzNFQzBFMgorOjEwRTVBMDAwMEZBMDEzRUUyMERCMDAzRUMwMkU4ODUzRUMwMEZCMDBEMgorOjEwRTVCMDAwQjJDMDhGQUM4M0FDMDhEQjAwMUFDMDRGQjAwM0MwMDRGQworOjEwRTVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkUwMDNGQzA0NQorOjEwRTVEMDAwMkRFMDAzRkU4MDdGMDAzRkMwMEREMjAzRkMwMEJGMDE5MQorOjEwRTVFMDAwM0VDMDBEQzgwM0ZDMENGRjAwM0ZDMDA5RjAyM0Y4MDAzQgorOjEwRTVGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNDAwRkE0MDMyQzE5QQorOjEwRTYwMDAwMEZBMDAzMjkwOERCMDAzRUMwMEU4NTAzRUMyMENCMDBFMQorOjEwRTYxMDAwM0FDMDBFQTQwM0VDMDBGQjAwM0FDMjBFQjAwMzEwMDQ5MworOjEwRTYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkE2MDIwQzBENworOjEwRTYzMDAwMEJBMDAyMDgwMEFGMDAyRkQwMEJCNTAyRkUwMjhGMDAyNgorOjEwRTY0MDAwMkZDMDBEODAwQTNDMDBCNzAwMjNDMjA1RjAyMjM2MDAxRgorOjEwRTY1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQ0MDAwQjE4ODIwMDAxRAorOjEwRTY2MDAwMEIxMDAyMEMwMDgzMDAyRUM4MEIwODA2NEQ0MDgzMDBERgorOjEwRTY3MDAwMjBDMDA4MzAwNjBDMDg5MzIwMEFFMDRBMzAwMjM4MDAxNworOjEwRTY4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMTA1QTAwQjU5MDIxMjAyQQorOjEwRTY5MDAwMEI1ODQyM0UwMEE3ODAyREUwMEI2OTAyREU0MDg3OTJCNgorOjEwRTZBMDAwMkRFMDA5MTgwMjlFMDFCNzgwMjlFMDAzNzAwMjNFMDBBOAorOjEwRTZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDg0NDAwRjEwMTMwMDA2NAorOjEwRTZDMDAwNUYxODAzMEMxMDgzMDAzQ0M0MEUwNDAzRUMwMDgzMDBBRAorOjEwRTZEMDAwMzBDNDBDMzEwMzhDMDBGMzAwMzhDODBFMzEwMzEyMDIzMQorOjEwRTZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTVCQzAwRkQwNEJGMDQ1NQorOjEwRTZGMDAwNEY1ODAzRjgwOEVGMDgzRkMwMEZGMDAxRkMwMEZGNEMzMworOjEwRTcwMDAwM0ZDMTBGRDAwMzNDMDBGNzAwMzdDMjBENzIwM0QwMDZBMworOjEwRTcxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFMjAwREIwMDMyQzBERAorOjEwRTcyMDAwNERBODAzMkMwOEZCMDA3RUM4OEZCMDBCNkY0NUVCQzJEMQorOjEwRTczMDAwMzZDMDA3QTAwM0VGMjBDQjUwQjJDMDBDNzkwMzJBMDBFQgorOjEwRTc0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTk5ODAwOEYwMDIxQzBGMAorOjEwRTc1MDAwMEI2MDAzNUMwMDM3MDAyREQyMEIzMDAyMENBODg3MjQxRAorOjEwRTc2MDAwMjFEMDA5NzAwMkREODg4NzJBMjNFODA4NzAwMjMyMDQ2QworOjEwRTc3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCNjAwOTc4MDIxRTA0QgorOjEwRTc4MDAwMEI2ODAyMUUwMEI3ODAyREU4OEI0ODgyMUU4MEEzODQ5MAorOjEwRTc5MDAwMjVFODBCNjgwMkNFMDI4NzgwMjFFMDA4N0EwMjIwMDA3QgorOjEwRTdBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MDRDQzA4ODM4MjIwRTAwNAorOjEwRTdCMDAwOEIyQTAyNDg0MEIzMDAyQ0MwMEIzMDgyMEMwMDgzMDAyRgorOjEwRTdDMDAwMDBDMTA5MzEwMkNDMDA4MzAwMjBDMDA4MzAwQTEyMDRDNQorOjEwRTdEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVFODAwREFBMDMyQThEMAorOjEwRTdFMDAwOERBODAzM0IwMEZBMDAzRTgwMEZFNDAzNjgwMEVBMDJCNAorOjEwRTdGMDAwMzY4MDBGRTQwM0U4MDBDQTAwMzI4MDJDQTAwMzNBMDRGQworOjEwRTgwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDFBMDEwRjgwMEJFMjBEOQorOjEwRTgxMDAwOEZDMTAzRTAyNEY4MDAzRTEwMEY4NDAzRTAwMEY4MDFFQworOjEwRTgyMDAwM0UwMDBGODAwM0UwMDBGODAxQkUxMDBGODAwM0QyMDAwRAorOjEwRTgzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MDMyNDA0MQorOjEwRTg0MDAwQ0Y5MDAzRTQwMEM5MDAwRTUwMEYxQTAzMjYwMEY5MDAxMAorOjEwRTg1MDAwM0U0MDBGOTA4MUU0MDBGOTgwMzI0MDBDOTAwM0MyMDRFNgorOjEwRTg2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjEwNDIyNDA3NQorOjEwRTg3MDAwMEI5MDAyRTQwMEE5MDAyRTUzMEI5MjBBMjY0OEI5MDQxQgorOjEwRTg4MDAwMkU0MDBCOTAwMkU0MDBCOTgwMDI1MDA4OTAwMkUwMDA5NAorOjEwRTg5MDAwMTAwMDAwMDAwMDAwMDAwMDM4MDUyNDAwQkQwMDIzNDBFNworOjEwRThBMDAwMEJEMDEyQzQwMDg5MDIyRTQwMEI5MDIyMjQwMEI5MDAyNAorOjEwRThCMDAwMkU0MDBCOTAwMkU0MDBCMTIwMjA0MDY4OTAyMkM2MDA1OAorOjEwRThDMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTQxNDAwQkYxMkExNDAwNgorOjEwRThEMDAwMEI1MDAyQzQwMEExMjAyQzQ4MEIxMjAyMDQxMEIxMTFFRAorOjEwRThFMDAwMkM0ODBCMTMyMkM0MDBCMTQwMjA1QTA4MTAwMkMyMDE2OAorOjEwRThGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjg0MDMyMTQzNAorOjEwRTkwMDAwMEY0NTAzRTE0MEM4NTAzRTE1OEY4NTAzMjFFOEY4NjhBNAorOjEwRTkxMDAwM0UxNDBGODQwM0UxRTBGMDI4MzJBOENDODAyM0VFMDNGQworOjEwRTkyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTVDNDEwRjkyMDNFNDA3RgorOjEwRTkzMDAwMEY5MDAzRjQwMEY5MTAzRTQ0MEZEMTAzRTQwMEY5MjBENgorOjEwRTk0MDAwM0U0NDBGRDMwM0U0MDBGOTAwQkU0MDBGOTQwM0U2MDZGMworOjEwRTk1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNDAwRkQxMDMzNDBCNgorOjEwRTk2MDAwMENEMDAzMjQwMEQ5MDAzRjQwNENEMDAzRjYwMEZEOTBBQQorOjEwRTk3MDAwM0E0MDBDOTAwM0U2QTBGREE4Mzc2ODBDRDg4MzI2MDAyNworOjEwRTk4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDA4QzhBMDIyMDA1RAorOjEwRTk5MDAwMDg4MDAyMjAwMDg4MDAyRTAwMEM4MDEyRTAwMEI4ODA2MQorOjEwRTlBMDAwMjIwMDBEMEEwMkUzODBCMEMwMjAzNDA4ODQwMzRFMDQyNAorOjEwRTlCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDA5QTEwMDIwNDE1MAorOjEwRTlDMDAwMDg5MDAyMjQwMDkxMDAyQzQwMDgxMDAyQzUwMEIxNjA5QworOjEwRTlEMDAwMjA0MDA4MTBBMkM0MjBCMTI4MjQ0QTA4MTAwMjUyMDE4NQorOjEwRTlFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDAxODEwMEEyNDA4MworOjEwRTlGMDAwQTg5MDAwMjU0MDg5MDEyQzQwMDg5NDAyRTQwMEI5MDA0OQorOjEwRUEwMDAwMkE0MDA5OTAwMkU0MDFCOTA0MjI0MTQ4OTAwMjQ2MDREOAorOjEwRUExMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTIwRTkwMDMyNDBDMgorOjEwRUEyMDAwNEMxMDBCMjYwMEQ5MDAzRTQwMkM5ODAzRTQwMEY5MDA1RQorOjEwRUEzMDAwQjI0MDBDOTAwM0U0MDBGOTAwMzY0MDJDOTAwMzY4MDRDNworOjEwRUE0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MDFBNDAwRTkwMDNFNDAwMgorOjEwRUE1MDAwMEY5MDAzRTYwMEY5MDAzRTQwMEU5QTAzRTQwMEY5MDAyRgorOjEwRUE2MDAwMzY0MDBGOTAwM0U0MDBGOTAwM0M0MDBGOTAwM0RBMDBCOQorOjEwRUE3MDAwNjAwMDAwMDAwMDAwMDAwMDA4MTBBMTAwRjgwMDMyMDA1MworOjEwRUE4MDAwMEY4MDEzQTAwMEM4MDAzMjA0OEM4MDAzQTBDMEY4MDBERgorOjEwRUE5MDAwM0EwMDBGODAwMzIwMDBDMDA5MzIwMDRDODAwMTBBMDRCNAorOjEwRUFBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQkUwMDIwODA5MworOjEwRUFCMDAwMEJFMDAyODgwMEFBMDAwM0EwMEFFNjAyRkEwMDhBMDAxRQorOjEwRUFDMDAwMzI4MDBCQTAwMjI4MDA4RTgwQTM4MDI4MjAwMjhBMDBCQQorOjEwRUFEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU2QzAwQjM0ODIwNDAwMgorOjEwRUFFMDAwMEIxMDAyMEMwMDgzMDAyMEMwMDgzNDgyOEUwNDk5MDBCMQorOjEwRUFGMDAwMEFDMDFCMzAwMjBDMDI5MDUwMjA2MDA4MzAwMjBBMDA0RAorOjEwRUIwMDAwNTAwMDAwMDAwMDAwMDAwMDgwMTExQzgwQkQwQTIxNDg1OAorOjEwRUIxMDAwMEI1MjAyOUM0MEEzQTAyMDgwMEE2MDAyQ0UwMDg1MjBGOAorOjEwRUIyMDAwMjFDNDBCN0EwNjFFODA5NTIwMjE5MDA4NzAwMjI4MDBDRgorOjEwRUIzMDAwNDAwMDAwMDAwMDAwMDAwMDg4MDgxRTgwRjc4MEIxNzlDNgorOjEwRUI0MDAwMEZEQjAyM0UyMEM3QTBCMTYwQ0M3ODEzOTYwMEYxRjAzNQorOjEwRUI1MDAwMzlFMjBGN0IxMzBGMDBENEEwMzE2MDJDNzAwMzJBMDIxRQorOjEwRUI2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTVBQzAwRjcwMDNFNDA2NworOjEwRUI3MDAwMEY5MDAzRUQ4MEZCMTAzRTQwMEJCMDIzRUMwMEY5MjAxQQorOjEwRUI4MDAwM0FEODBGQjAwQkVEODFFRDEwM0U4MDBGMzAwM0MyMDY3NgorOjEwRUI5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMDRCRTIwRUU4MDMzNjAzMgorOjEwRUJBMDAwMENEODgzMUUwMDZGODAzM0UwMEZCODExMzIwNEY1ODA1QgorOjEwRUJCMDAwMzNFMDBGRjg4MzJGNDBGRTgwQjNFMDBDRjgwMzEwMDAyMQorOjEwRUJDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTg5QzAwQkMwMEExNDREOAorOjEwRUJEMDAwMDgxMDAzNUMwMDhGMDAyMTgwMEJFQTIyMUM4MEI1MDEyNQorOjEwRUJFMDAwMjFDMDBCRjAwMjFFODBCRTAwMjM4MDJBNzAwMjJBMDQ3RQorOjEwRUJGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzIwQTcwMDIzNDBFRgorOjEwRUMwMDAwMEI1MDBBM0MwMEE3MDAyNUMwMEE0MzAyMTAwMEI1MDBDMworOjEwRUMxMDAwMjFDMDBCNzA4MjFDODBCNDAwMjFDMDA4NzAwMjA0MDA2NworOjEwRUMyMDAwMjAwMDAwMDAwMDAwMDAwMDIwMDQ4RTA0QjMwMDIyNDBGOQorOjEwRUMzMDAwMDkxNDAyNEMwMDgzMDAyMEMwMEIyNDgyMDQwMEIxMDBBMAorOjEwRUM0MDAwMjBDMDhCM0EwMjJDMDFCMDAwMjA4MDBBMzAwMjFBMDQ0NgorOjEwRUM1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTU5RTAwRUIwNDMzNDBDNworOjEwRUM2MDAwMkREQzAzMUQ2MEVGMDAzMjAwQ0Y5QTAzMjgwMEZEMDA2OQorOjEwRUM3MDAwMzNDMThCRkMwQjNDMDBGQzAwMzI4MDBDOTAwMzJBMDQ1NworOjEwRUM4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBBQzEwRjgwMDNFNDA3MgorOjEwRUM5MDAwMEU5ODIzQUMwNEZCMDAzQzAwMEY4NDIwRUQwMEY5MDAyQgorOjEwRUNBMDAwM0VDMDRGQjAwM0VDMDBGRDAwM0U4MDBGOTAwM0U0MDAzNworOjEwRUNCMDAwMzAwMDAwMDAwMDAwMDAwMDIxMTBGQzAwQ0Y4MDMzNDAzNQorOjEwRUNDMDAwMENEMDgzRkMwMEVGMDAzRjQwMENGMTQxMzAxMENEMDAzMAorOjEwRUNEMDAwM0ZDMDAwNzAxMzNDMDBFNDAwQjFEMDBDMTAwMzIwMDRDRQorOjEwRUNFMDAwMzAwMDAwMDAwMDAwMDAwMEExMDQyQzAwOEFFNDJBNDA0QgorOjEwRUNGMDAwMjg5MDAyRUMwMDhCMDAzRTAyMEE4MDAyMkM4Mjg5MDREQworOjEwRUQwMDAwMkVDMTBBQjAwQTJDMDA4OTAyMjJGMjJBOTgwMjIwMDBBMQorOjEwRUQxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAyODAxNDJBNDAzMgorOjEwRUQyMDAwMDg5MDAyRUMwOEFCMDQyRTg0MDgxMDgyODAxMDg5MDMzRQorOjEwRUQzMDAwMkNDMDRBQjAyMjJDMDBBQTAwMjI4MDA4OTEwMjIwMDA5OAorOjEwRUQ0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MTQyQzAwODAwMDI4NDA1MworOjEwRUQ1MDAwMDgxMTAyRUMwMDgzMDAyQzgxMEEwMDVBODgwMDAxMDA4RgorOjEwRUQ2MDAwMkNDMDBBMzAwMjBDMDA4MjAwMjA4MDBBMTAwMjAyMDEyRQorOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQzkwMDNBNDBENworOjEwRUQ4MDAwMENENDAzRkMwMEVCMDAzRTQwMEM5MjAzQTAwMDREMDBBRAorOjEwRUQ5MDAwM0ZDMDBFRjAzMzNDODBFODAwMzJDMDBDOTAwMzIwMDNFQgorOjEwRURBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTFGQzAwRkMwMDNENDBFRAorOjEwRURCMDAwMEY1MDAzRkMwMjNGMDQzQjAxNEZDNDEzNzAwMEZEMDBFMQorOjEwRURDMDAwM0ZDMDFGRjAwMUZDNDBGQzAwM0ZDMDBGRDAxM0U4MDYxRAorOjEwRUREMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGOEUwRkY4MDNEQzBBQQorOjEwRURFMDAwMERGMzgyRjA4MEZGNDAzMUNCMENGMzAzRkQwNEVGQzE0MworOjEwRURGMDAwMzNFMDBGNzkwM0ZFMDBDRjQyMzNGMDRDRjgwMzMwMDBDQworOjEwRUUwMDAwNzAwMDAwMDAwMDAwMDAwMEUwMTBFOTA4Qjk4MTJGRjA1OAorOjEwRUUxMDAwMDhGNDUyRTkyMEJGNDAyM0YwMEFGMzAyRkQwODhCMDBGQQorOjEwRUUyMDAwMzZFMDBCODAyMkU4ODA4RjQwMjJDMDA4QjA4MjMwMDQ5OAorOjEwRUUzMDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwQjE4MDJDQzVFNworOjEwRUU0MDAwMDkzMjQyQzhDMEIzMzEyMEMxMDgzMjAyQ0NENEJCMjA0MQorOjEwRUU1MDAwNjhDMDBCMzAwMkNDMjA5MzYwMjA4ODA4MzIwMjMyMDE1NworOjEwRUU2MDAwNzAwMDAwMDAwMDAwMDAwMEUwMTVBMDAwQkI4MDJFQzA3NAorOjEwRUU3MDAwMDhCMDAyRUEwMEJCMDA2MkMxMEFCMDAyQ0MwMEFCMDBERAorOjEwRUU4MDAwMkVDMDBCQTAwMEU4MDA4MzAwMjJDMTA4MzAwMjMwMDQyRAorOjEwRUU5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFODkwRkI4MDNFQzAwQworOjEwRUVBMDAwMERCMDAzRTIxMEZCMDAzMkMwNENCMDEzRUMwMEU5NTQ4QgorOjEwRUVCMDAwM0FDMDBGQjAwM0U2MDBDQjAwQjI0MDBDQjAwMzA0MDQyQworOjEwRUVDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCODAwRkYwMDNGQzAzQgorOjEwRUVEMDAwOEZGMDAzRjAwMEY3MDJCRkMxMEZGMDIzRkMwMERGMDY0NAorOjEwRUVFMDAwMzdDMDhGQzkwN0ZBOTJGRjA0M0Y1MDJGRjAwM0Y4MDA5NAorOjEwRUVGMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwQzkwMDNFQzJERAorOjEwRUYwMDAwMEVCMDIzRTQwMEVCMDAzQUM4MEVCMDAzRUMwMEY5MDBBOQorOjEwRUYxMDAwM0VDMDBGQjQwM0E0MDBGQjAwM0U4MDBGQjA4M0QwMDRCQQorOjEwRUYyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAwOEI3NDJEQzBFMAorOjEwRUYzMDAwMDhGMDAyRTQwMDhGMDAyMUYwMDhGMDAyRkMxMEQzMDA3QQorOjEwRUY0MDAwMkVDMDBCOTAxMjJDMDBFRjAwMkVDMDBCQjYwMkY2MDA2NAorOjEwRUY1MDAwNDAwMDAwMDAwMDAwMDAwMEU4MDU0ODAwQTMwMDJDQzRBOQorOjEwRUY2MDAwMEEzMDAyQzAwMEEzMDA2OEYwMEEzMDEyQ0MwNEEyMDBFQworOjEwRUY3MDAwMkNDMDBCMzAwMkVDMDBCMzAxMkVDMDBCMzQwMkY4MDBBMQorOjEwRUY4MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDEwQzAwODc4MDJERTg1OAorOjEwRUY5MDAwMDg3ODQyREEwMDg3ODAyNUUwMDg3OTAyQ0UwMDk2ODA2MgorOjEwRUZBMDAwMkRFMDBCRDkwMkRFMDBBNzgwMkRFMDBCNzgwMkZDMDBEQgorOjEwRUZCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzQwRTMxMDNDQzA4NgorOjEwRUZDMDAwMEEzODAzRTgwMEVCMDAzOEMyMEEzMDAzQ0MwMEUzNDAwMworOjEwRUZEMDAwM0NDMDBGMzQwM0NEMDBGMzIwM0M4ODBGMzAwM0QyMDIzNQorOjEwRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDgwRkYwNDNGQzg4NgorOjEwRUZGMDAwMEZGMDgzRjg0MEZGMTgzQkMwMEZGNDgzRkMwMEVFMDJEMworOjEwRjAwMDAwM0ZDMDBGRjAwMzNDMDBFRjA4M0Y4MDBGRjAxM0QwMDYyNQorOjEwRjAxMDAwNjAwMDAwMDAwMDAwMDAwMDg4MDVFODAwQ0IwMDNFRjIyMAorOjEwRjAyMDAwNERCMjEzRTgwNENCMDEzMkY4NERCMjEzNkQyMEY4MDA1NQorOjEwRjAzMDAwM0VDMDBGMzAwMzI0MDBGQjAwM0U0MDhGQjgwMzJBMDA3RgorOjEwRjA0MDAwNzAwMDAwMDAwMDAwMDAwMEM4MTE4QzAwODYwMDJDQzA3OQorOjEwRjA1MDAwMDg3MzAyRDgxMjg3MzAyMENCMDhGMjAyMUQwNUI1MDBENAorOjEwRjA2MDAwMkRDMDBCNjAwMzUwMTBCNzA5MkRDMDBCRjAwMjMyMDQwNQorOjEwRjA3MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTAwODc4MDJERTRGQQorOjEwRjA4MDAwMDk3QTAyQ0UwMTg3ODAyMUVDMDk3ODAyNUU4MEI3QzA0MAorOjEwRjA5MDAwMkRFMDBCRjgwMjFFMDBCN0EwMkQ2MDBCNzgwMjIwMDBCNworOjEwRjBBMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRTAwODI4MDJDQzAwOAorOjEwRjBCMDAwMDgzMDAyRUMwMDgzMDBBMEMwMDgzMDAyMEMwMEIzODBDRQorOjEwRjBDMDAwMkNDMTBCMzAwMjRFMDBCMzAwMkNGMTBCMzAwQTEyMDQ5RAorOjEwRjBEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTgwQzYwMDNFODA0NQorOjEwRjBFMDAwMERBMDAzRjg0MENBMDAzMjgwMERBMDEzNjgwMEZFMDI5NAorOjEwRjBGMDAwN0U4MDBGRUQ4MzM5MTBGQTAwM0Y4QzBGQTAwMzNBMDQ5NQorOjEwRjEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDEyRjg5MDNFMDA5RgorOjEwRjExMDAwMEY4MDAzRTAwMEY4MDUzRTAwMEUwMDAzRTAwMEY4ODBEOQorOjEwRjEyMDAwM0UwMDBGODAwM0UwNjBGODAwN0UwMDBGODAwM0QyMDBGNQorOjEwRjEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwQzk4MDMyNjRDNAorOjEwRjE0MDAwMEY5MDQzRTQwNkMxMDQzQTQwMEY5MDAzRTQwMEU5MDA0NQorOjEwRjE1MDAwMzI0MDBGOTAwMzI0MDBDMTAxMzI0MDBDOTAwM0MyMDRERQorOjEwRjE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODlDMDIyNDBEQworOjEwRjE3MDAwMEI5MDAyMjQwMDg5MDAyMjUwMUI5MDIyMjQwMDgxMDA2MQorOjEwRjE4MDAwMjI0MDBCOTAyMjI0MDhDOTAwMjA0MDA4OTQwMkUwMDA4RAorOjEwRjE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwOTkyMDIyNDAwMworOjEwRjFBMDAwMEIxMDAyQTQwMDg5MDAyQTU4MEI5MDAyODQwMEE5MDBDOQorOjEwRjFCMDAwMjI0MDBCMTAwQTA0MDA5OTAyMjJDMTA4OTA4MkM2MDA2NgorOjEwRjFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwOTEwMkEwQzhGNAorOjEwRjFEMDAwMEIxMjAyMDQ4MDgxMjIyMDQ4OUIxMjAyMDQ5MDg5MDFCNAorOjEwRjFFMDAwMjA0MDBCMTAwMjA0MDI4MTIyMjI0MDA4MTAwMkMyMDFCQQorOjEwRjFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyREEwMTMyMDE5OQorOjEwRjIwMDAwMEY4NTAzQTE0MEMwNTAzQTAxOEI4NTIzQTE0NEU4NTBFQgorOjEwRjIxMDAwQjIwMDBGODUwMzIxNDhEODUxMzIxNDJDODUwM0VFMDMyOAorOjEwRjIyMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNTAwRUQwMjNFNDQ3MworOjEwRjIzMDAwMEY5MTAzRjQ0MEY5MTAzRTQ0MEY5MTAzRTQ0MEZEMDBBOAorOjEwRjI0MDAwM0U0MDBGRDAwM0Y0MDBFOTEwQkY0MDBGOTAwMzY2MDY2NAorOjEwRjI1MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIxQzUwMDMzNjhCQQorOjEwRjI2MDAwMEY5QTAzNkY4OEM5QzAzMzY4MEM5RTAzMjc4MEQ5NDA2QQorOjEwRjI3MDAwM0U0MDBGOTAwM0M1MTBEOUU4MzY1MDBDRDAwM0U2MDA4RAorOjEwRjI4MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4ODgwMDgyMDBEMworOjEwRjI5MDAwMEI4RTgyRUJDODg4RTAyMjAwMjg4ODQyQTI4MDhBODBGOAorOjEwRjJBMDAwMjIwMDBCQUEwMkUyMDA4OEMwMjJBOTA4OEEwMzhFMDQ2OQorOjEwRjJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNDAwODEwMDIwRDA5QworOjEwRjJDMDAwMEIxMTMyODQ4NDgxNjA2MDUwMDgxNjA2MDUwMDkxMjA3RAorOjEwRjJEMDAwMjA0MDBCMTA4MkU0MDk5MTIwMjQ0MDA4MTBDMkQyMDE4MgorOjEwRjJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwNDIyNDBFQQorOjEwRjJGMDAwMEI5MDAyQzQwMEE5MDAyMjQxMDA5MDAyQTQwMDgxMDBFQQorOjEwRjMwMDAwMjI0MDBCOTIyMkU1ODA5OTAxMjI2MTA4OTAwMjg2MDQzNgorOjEwRjMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNTgyODE5MDMyNDAyRgorOjEwRjMyMDAwMEY5MDEzNjcwMkM5MDAzMjQwMEM5MDIzMjQwNEQ5QzAwNworOjEwRjMzMDAwQjI0MDBGOUMwM0U2MDBEOTAwMzY1MDBDOTAwM0U4MDQ1RAorOjEwRjM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDBBNjgwRjkwMDNFNDA0OAorOjEwRjM1MDAwMEY5MDAzRTcwMEQ5MDBCQzQyMEY5MDUzRTQwNEY5MTA2QQorOjEwRjM2MDAwM0U0MDBGOTgwM0U2MDRFMTAwM0U0MDJGOTAwM0RBMDA5MAorOjEwRjM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTA4MTEwNDgxMDMyMDhEMgorOjEwRjM4MDAwMEM4MDBGMjEwMkM4MDAzQTA0MEY4MDA3NjAwMEY4NDA4QgorOjEwRjM5MDAwQjIwMDBGODQwQjIwMDBEODAwMzYxMDBDODAwM0NBMDQ4MgorOjEwRjNBMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQyODA0OEU4MDIzODAzNAorOjEwRjNCMDAwMDhBMDQyMjgwMDhBMDAyM0EwNEJBMDAyRTgwMEJBMDA1RgorOjEwRjNDMDAwNzY4MDBCQTAwMjA4MDA4QTAwMzI4MDA4RTAwM0NBMDBBMQorOjEwRjNEMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwODIwMDIwRDAwMgorOjEwRjNFMDAwMDgzMDAyMEMwMDlCMDAyOEMwMUFCMDAyNkMwMEIzMDI2NworOjEwRjNGMDAwMjBDMDBCMzAwMjBDMDBBMzAwMjJDMDI4MzQ4MkNBMDBCNworOjEwRjQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQzAwODcwMDIwRTBFOAorOjEwRjQxMDAwMDg3ODAyMEMwMDk3MjAyNUMwMEI3MTAyREM4MUI3MjAxMAorOjEwRjQyMDAwMjFDMDBCN0E0MjNDODA4NzIwMjFDMDA4NzAwMkU4MDA4RQorOjEwRjQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgwRTgyQzc4MEIxRTBGNAorOjEwRjQ0MDAwMkNGQTA2MUUwOEQzQjEzOTYwNEU3ODEyNUVBMEZGRjA4OAorOjEwRjQ1MDAwMjFFMDBGRjgwMzFGMDhFM0EwMzNFMDBDNjgwM0VBMDI4MQorOjEwRjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzQwRkIwMDNFQzA5MgorOjEwRjQ3MDAwMEZCMjAzRURBOEVCMTAzQTgwMEZCMEMzRUM0MEZCMDBENQorOjEwRjQ4MDAwM0VDMDBGQjA4M0VDODBFQjcwQkVDNDBGQjAwMzgyMDZBOQorOjEwRjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwQ0U4MEIzNjA2OAorOjEwRjRBMDAwMEZGQzgzN0UyMEVGQjAzQkUwMEZCODAzM0UwMENGODExRQorOjEwRjRCMDAwM0ZFMDhGRjg4M0VGNDBGRkMyMzNFMTBDRjgwM0QwMDA0OAorOjEwRjRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzgyODcxODIxODBCNQorOjEwRjREMDAwMEIzMDAyMUM2MEQ3MTAyMUQwMEI3QjAyM0MwMEQ3MDAwMAorOjEwRjRFMDAwMkRDMDBCNzAwMkRFMDBCRjAwQTNDNDA4NzAwM0FBMDQ4NQorOjEwRjRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDBCQzExODcwMDIxQzA3NworOjEwRjUwMDAwMEIzMDAyMUMwMDkzMjA2OUMwMEI3MDAyMUMwMDg3MDBBNgorOjEwRjUxMDAwMkRDMDBCNzEwMkRDMjBCNzEwMjFDMDA4NjAwMjg0MDBFRQorOjEwRjUyMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDRDAwODM0MDIwQzBENworOjEwRjUzMDAwNEIzMDAyMEMwMTgzMDAyMEMwMEIzMDAyMEMwMDkzODA4MgorOjEwRjU0MDAwMkNDMDBCMzAwMkNDMDFCMzAwMjBDMDA4MzAyMjk4MDQzQworOjEwRjU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRjIwQ0FDMDMyODBBMworOjEwRjU2MDAwMEZGMDAzM0UwMDlGMDAzQTgwMEZGMDBCM0MwMENGOTg1NQorOjEwRjU3MDAwM0VDMDBGRjYwM0ZGMDBGRjAwMzFFMDJDQjAwM0FFMDRFNQorOjEwRjU4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzgwRkIwMDNFNTBDNgorOjEwRjU5MDAwMEZCMDAzQUMwMkZCMDA3RTUwMEZCMDAzRUMwMEZCMDA4OQorOjEwRjVBMDAwM0VDMDBGQjIwM0VDMjBGMzAwM0VDNjBGOTAwM0EwMDA1NAorOjEwRjVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAyQ0Y5ODczQzg2QQorOjEwRjVDMDAwMEY3MDAzM0MwMEZGMDAzMzI4MEZCMDAyMUMwMDRGMDBGNworOjEwRjVEMDAwM0ZDMDBGRjAwM0ZDMDBGRjAxMzNDMDBDRTQwM0U0MDQ2MAorOjEwRjVFMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAwODM4MEEyRjg1RQorOjEwRjVGMDAwMEJCMDQyMkMwMEJCMDAzMjEwMEZCMDAzNkMwNEFCMDAwOAorOjEwRjYwMDAwMkVDMDBCQjAxMkVDMDRFQjAwMjJDMDRBOTQ4MkUwMDA0MgorOjEwRjYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2QzAwOEEwMDIyMDAzRAorOjEwRjYyMDAwMEJCMDAyMkMwMEIzMDBBMkMwMEIzMDAyQUMwMEFCMDQ0NAorOjEwRjYzMDAwMkVDMDBCQjA0MkVDMDBCQjAwMjJDMDA4QjAyMkUwMDA5QworOjEwRjY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwOEIwMTIwMDBCQQorOjEwRjY1MDAwMEIzMDA2MEMwMEIzMDAyMEMwMEEzMjBBQ0MwMEEzMDAxNQorOjEwRjY2MDAwMkNDMDBCMzAwMkNDMDBBMzAwMjJDMDRBMDAxMkMyMDEwMQorOjEwRjY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2QzAwOEIwNDIyQzBBNQorOjEwRjY4MDAwMEZGMTAzMUMwMEZGMDQzMkMwMEJGMjAzQkMwMEVGMDBCQgorOjEwRjY5MDAwM0VDMDA3RjAwM0ZDODBGRjAwQjJDMDBDQTAwM0UwMDNGMworOjEwRjZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlEQzAwRjUwMDNGQzA4MQorOjEwRjZCMDAwMEZGMDAzRkMwMUZGMDIzQkMwMEZGMTAzN0MwMEZGMDBEMQorOjEwRjZDMDAwM0ZDMDBGRjAxM0ZDNDBFRjAwM0ZDMDBGQzAwM0U4MDYzRgorOjEwRjZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVGMjQwQ0M4MDM3MjAxMAorOjEwRjZFMDAwMENEODAzQjA0NEZDMDgzRjBFMEZDMTAzRkMwMENDOTRCRgorOjEwRjZGMDAwM0YwQTJFQzQwMzdEODBDRjEwM0ZDMDBGQzA4MzMwMDA2RgorOjEwRjcwMDAwNzAwMDAwMDAwMDAwMDAwMDgwMDhFMDkwODgwMjIyODE2NAorOjEwRjcxMDAwMDg5MjEzQTQ0MDNCNjAyMjE4MEI4MTAyRkNENDgxMDBBNAorOjEwRjcyMDAwM0FCMDBBOTQwMjNENDBBRjYzMkZERjBCOTgwMDIwMDRFQgorOjEwRjczMDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVFMDAwODgwMDIwNDA0NAorOjEwRjc0MDAwODgzMDgyQzAwMEIwMDgyODgwMEExMDAyQ0MyMDgwMDFENgorOjEwRjc1MDAwMkM0MDFCMDYwMjhDOTA5MzYwNjhDMDRBMDA0MjIyMDEzNAorOjEwRjc2MDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVBMDAyODgwMDIyQzA1OAorOjEwRjc3MDAwMDhCMDAyRTQyMEJCODgyNjk4MEI4MDQyQ0MxODhBMDA4RgorOjEwRjc4MDAwMkVDMjFCOTgwMkFDMDBBQjAwMkVDMDBCOTg4MjMwMDQzNgorOjEwRjc5MDAwNjAwMDAwMDAwMDAwMDAwMDAwMTFFM0MwQ0IwMjMyMDA1NgorOjEwRjdBMDAwMkM4MDAzQUUwOEI5MDAzRTcwMEZCOTAzRUMwMjQ4NDg0NAorOjEwRjdCMDAwM0NDMDBGOEM5M0VDMDBEQjAwMUFDMDBFQUMwMzEwMDRBRAorOjEwRjdDMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCMjAwRkYwMEJCODBGQworOjEwRjdEMDAwMEZDMDQzQjY0MEJEMDAzQjYwMEZFODAzRkMwMEZGOTQ0MAorOjEwRjdFMDAwM0JFNDBFNjAwRjZDMDhFRjAxM0ZDMDBGNjAwM0Y4MDBCMAorOjEwRjdGMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBMTAwRkIwMDNFNjAxRgorOjEwRjgwMDAwMEZBMDAzRUQwMEY5NDAzQTAwMEY5MDAzRUMwMkM5MDQ4OQorOjEwRjgxMDAwMzJEMDBGOTAwMzJDMDhEQjAwQjZDMDBEQjQwM0QwMDQyNworOjEwRjgyMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUwMDAwQjM4OTJFRTBBMQorOjEwRjgzMDAwMEJBNDAzQTQwMUI5MDAyRTAxMEI5MDQyRkMxMDg5NTBDNworOjEwRjg0MDAwQTJDMDhEQjQwMjNDNDQ4RjAwMjNDMDA4QjAwMkYyMDA3NQorOjEwRjg1MDAwNDAwMDAwMDAwMDAwMDAwMEMwMDQwQzAwQjA4MDJFMDAzQQorOjEwRjg2MDAwMEIxMjAyQzgwMEJBMDAyQ0MwMEIyMDAyQ0MwMEEyMDA3MAorOjEwRjg3MDAwMjAwMDJCMkQ5QTJFNDI4MzAwMjhDMDA4MjAwMkY4MDA3OQorOjEwRjg4MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDAxRTA0QjQ4MDJEQTBFNQorOjEwRjg5MDAwMEI1ODAyOTIwMEI2ODAyREUwMEI2ODAyREU0MEE2ODA3NQorOjEwRjhBMDAwMjEyNDI5NDgwMjFFODA4NzgwNjlFMDA4NjEwMkM4MDA3RgorOjEwRjhCMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MTgwQzAwRjAzMDNDNENGNAorOjEwRjhDMDAwMEYzMjAzQzg4MEIyMDAzODgwMEYxQjAzRUMwMEUwMzAxOQorOjEwRjhEMDAwMzAwNDBGQjEwMzBFODVDQjAwM0FDMDBDMzEwM0QyMDJDNQorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMUNCQzAwRkMxMTNGQzRGMAorOjEwRjhGMDAwMEZCODEzQjAwNEZFMDIzRjgwMEZDMDAzRkQwMERGMTJGQgorOjEwRjkwMDAwMUQwNDBGRDA0M0JDMDFFRjEwMzNDNDBFRjMwM0QwMDYyNworOjEwRjkxMDAwNjAwMDAwMDAwMDAwMDAwMDA4MDVFRTAwQ0IwMDNFMDA4MworOjEwRjkyMDAwMEY4MDAzMjgwMEY4MDAzRTQwM0RCMDAzRUYwOEM5MDBGNworOjEwRjkzMDAwM0EwMDBDQTAwM0VDOThGQjIwMzJEMjBDQTgwMzJBMDI1OAorOjEwRjk0MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTJEODAxRAorOjEwRjk1MDAwMEI0MDQyMUMwNDM3MDBBMTQwMDg2MDAyQ0M4MDg3MDBBNQorOjEwRjk2MDAwMkQ4MDJFNzAwMkRDQTlCNzI4MjFEMDA4NzAwMjEyMDA2OQorOjEwRjk3MDAwNjAwMDAwMDAwMDAwMDAwMDIwMDBCRTAyODc4MDJENjBCMworOjEwRjk4MDAwNEJFODAyNUEwMUI0ODgyOEUwODg3OEMyREU1Mjg2QzA2QgorOjEwRjk5MDAwMjk2MDA4NjgwMkRFNDBCMzkyRTFFODI4MjgwMjcwMDA3RQorOjEwRjlBMDAwMjAwMDAwMDAwMDAwMDAwMDY4MTRDQzAwOEI4MDJFQzBGNgorOjEwRjlCMDAwMEIyMDAyNEQ4MDlCMjAyMEUwMDgzODAyQ0MwMDgzODA4MQorOjEwRjlDMDAwMkNDMDBBQjAwMkNDMDhCMzAwMjBDMDA4MzEwMjUyMDQ5NworOjEwRjlEMDAwMzAwMDAwMDAwMDAwMDAwMEU4MDVBODAwQ0FFMDNFODBGQQorOjEwRjlFMDAwMUZBNDBCNzkwMEZFMDAzRjgyMURFMDAzRTgwMENFNDAxQgorOjEwRjlGMDAwM0I4ODJDRTQwM0U4MDFGQTAwMzI4MDBDRTgwMzdBMDQyNworOjEwRkEwMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MTFBMDAwRjgwOTNFMDA1RQorOjEwRkExMDAwOEZDMDgzQTAxOEY4MDAzQzIwMEY4ODAzRTAwMEY4MDg4RQorOjEwRkEyMDAwM0UyMDBFODA4M0UxMDFGMDAwM0MwMDBGODAwQjkyMDAyRAorOjEwRkEzMDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBBNDAwRjk0MjMyNDAyRAorOjEwRkE0MDAwNEM5ODAzMDQwMEM5MDAzQTQwMEY5MDIzMjQwMEI5ODE2OAorOjEwRkE1MDAwM0M0MDBDOTIwMzI0MDBGOTA1MzI0MDZDOTBDM0MyMDQ3MAorOjEwRkE2MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQyNDE0QjkwMEEyNTRGQgorOjEwRkE3MDAwMDg5QjFBMjQwMjg5MDAyMjQwMjg5MDAyQTQwMEI5OTAxMQorOjEwRkE4MDAwMkU0MDI4OUM4MjI1MDRCOTAwMjI0MDA4OTgxMkUwMDBFQworOjEwRkE5MDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQUQwMDIzNDAwNQorOjEwRkFBMDAwMDg1MDAyNjQwMDg5MDAyQTQwMDgxMDAyNjQwMEI5MDA2RQorOjEwRkFCMDAwNkU0MDA4OTAwMjI1MDBBOTAwMjI0MDA4OTEwNkM2MDA2OQorOjEwRkFDMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQxNDAwQjUxMEExNDQyQworOjEwRkFEMDAwMjg1MDAyNDQ4MDgxMzAyMDQ4MDgxMjAyODQ0MEIxODBCRQorOjEwRkFFMDAwNkNDODA4MTIwMjA0ODBCMTM0MjA0ODA4MTIwMkMyMDExNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg0MDMyOTBCNgorOjEwRkIwMDAwMENDNTAzNjE0MEMwNDAzQTE0MEY4NTAzMjFCMEY4NTA4MgorOjEwRkIxMDAwM0UwMDBDODUwMzIxNDBGODQwQjAxNDBDODAwM0VFMDEzOAorOjEwRkIyMDAwNTAwMDAwMDAwMDAwMDAwMEI4MURDNDA0RjkyMjBFNDg3NworOjEwRkIzMDAwMEYxMDEzQjQ0MEZEMzAzRjQ0NEZEMTAwRTQ4NEZGMDE2NworOjEwRkI0MDAwM0Q0NDBGRDEwQkU0NDBGOTMwM0U0NDBGRDEwM0U2MDRBRAorOjEwRkI1MDAwNzAwMDAwMDAwMDAwMDAwMDM4MDVFNDAwREQ0MDNGNTA2OAorOjEwRkI2MDAwMENEMDAzMkMwMEM5MDAzNjQwMEY5MDEzMjcwNEY1MDE3OAorOjEwRkI3MDAwMzc0MDBDRjAwM0Y2MjBGOUE4MzI2ODBDRDAwM0M2MDAxOQorOjEwRkI4MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDBFMDAwODhBMDJFMjg4RgorOjEwRkI5MDAwMjg4MDAyMjAwMDg4QTAyMjAwMEI4MDBBNjI4MEI4MDAyMgorOjEwRkJBMDAwMjIwMDA4ODAwMkUxMDBCOEUwMjIzQTA4QTAwMkNFMDQ1OAorOjEwRkJCMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDA4NDAyODEwMDJFNDA1OAorOjEwRkJDMDAwMDgxMDBBNDQwMjgxMDgyNDQwMEExMDAyNDU4MEI5MDA0NgorOjEwRkJEMDAwMjQ0MDI5MTAwMkM0MDBCMTA4MjQ0NDA4MTAwMkMyMDFDNAorOjEwRkJFMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTRBNDA0ODkwMTJFNTBDOQorOjEwRkJGMDAwNDhCMjAyNjQwMDkxMDAyMjQ2MEI5MDAyNjQwMEI5MDFGMQorOjEwRkMwMDAwMjZDMDA5QjAxMkU0MDBCMTAwMjY0MDA4OTAwMkM2MDRFNAorOjEwRkMxMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDRFNDAwQzkwMDNDNDBCNworOjEwRkMyMDAwMEM5MDAzNjQwMEM5MDIzNjUwMEU5MzAzMjQwMEY5OTAyRgorOjEwRkMzMDAwMzY0ODBEOTQ4M0U0MDhGOTAwQjY0MDBDOTQwM0U4MDRCOAorOjEwRkM0MDAwNzAwMDAwMDAwMDAwMDAwMDY4MTBBNDAwRTkwMDNFNDBDMQorOjEwRkM1MDAwMEY5MDEzQTQwMEU5MDIyRTYxMDU5MDAzQTQwMEY5MDA5RgorOjEwRkM2MDAwM0E0MDBFOTA0M0U0MTBGOTAwMzg0MDJGOTAwM0NBMDA0OAorOjEwRkM3MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMTMyMDQzRAorOjEwRkM4MDAwMEY4MDQzQzAwMUM4MDBCMjAxMEM4MDAzMjAwMEM4NDBBRgorOjEwRkM5MDAwMzAwMDhDODQ4M0UwMDBDODAwMzIwMDZDODQwM0NBMDQwNgorOjEwRkNBMDAwMjAwMDAwMDAwMDAwMDAwMDA4MDQyODAwQkEwMDIzODBBMworOjEwRkNCMDAwMEJFQTAyRTgwMEFBMDAyMjgwMDhBMDAyMjgwMDg2MjBBMQorOjEwRkNDMDAwMzdBMDhERTQwMkY4MDBEQTAwMjI4MDA4QTAwMkNBMDAwMgorOjEwRkNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDU2QzAwQjMwMDIwQzBEOAorOjEwRkNFMDAwMEJCODAyNEMwNDgzMDAyMEMwMDhCMDAyMEMwMjgzMDA1MQorOjEwRkNGMDAwMjA0MDI4MzQwMkNFOTA4MzAwQTBDMDA4MzAwMkNBMDAwMQorOjEwRkQwMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExQ0MwQjU4ODIxNDAwOAorOjEwRkQxMDAwMEI3MDAyREM4MEEzMjAyMUUwNDgzMjQyMEU5MDhFMDE1RAorOjEwRkQyMDAwNjU1MDA5NzAwMkRFMjA5MzIxMjFDMDA4NzAwMkU4MDBBRQorOjEwRkQzMDAwNDAwMDAwMDAwMDAwMDAwMDI4MTgxRTAwRkY4MEIxQTA1NQorOjEwRkQ0MDAwMEY0ODAyN0UwMDg3QTAzM0UwMjg3QTBCMUYwMEM0ODA5MgorOjEwRkQ1MDAwMzE2MDhDNTgwM0ZFMDBDN0M4MzNFODBDNTgwM0VBMDIzMAorOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkYwMDNFMDA4NQorOjEwRkQ3MDAwMEY5MDIzRUNBMEZCNDAzRUMwOEZCNTAzRUQ4MEY4MDA1MAorOjEwRkQ4MDAwM0M0MDBGQjAwM0U4MDBGQjAyM0VEMDBGOTAwM0MyMDZEOAorOjEwRkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDYwMDRCRTAwRkY4MDNGRTA0MworOjEwRkRBMDAwMEZEOTAzRkUyMENGQzgzM0VBOEZGQzAzM0YwMEZEODA0QworOjEwRkRCMDAwM0Y2MDBFRTgwM0YyMDBDRjgwMkZGRTBDNzgwMzAwMDBCNgorOjEwRkRDMDAwNzAwMDAwMDAwMDAwMDAwMEE4MDA5QzAwQjUwMjJEQzBEQgorOjEwRkREMDAwMEI1ODQyREM4MENGMDAyMUMxMEIzMDEyMUM0MEI0MDIxMgorOjEwRkRFMDAwMkQ0NjA4NzExMkM4MDBFNzAwMkRDNDA4NzAwMzZBMDQ4QworOjEwRkRGMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcwMDJEMDIyMQorOjEwRkUwMDAwMEI0NjAyREMwODk3MDAyMUM5MEEzMDIyMUMwMEI0MDAwRQorOjEwRkUxMDAwMkQ0MDBBNTA4MkM0MDBCNzAwMkNDODI4NTAwMjQwMTA2MAorOjEwRkUyMDAwMjAwMDAwMDAwMDAwMDAwMDQwMTQ4QzE4QjMwMDJFMjBCOQorOjEwRkUzMDAwMEIxODAyQ0Y0QTgzQzIyMEMxMEIzNDIyMEMwNEI4NThERAorOjEwRkU0MDAwMkM0MDBCMjgwMkM4MDBBMzAwMkNDMDA4MTQwMjQ4MDQ1MAorOjEwRkU1MDAwMzAwMDAwMDAwMDAwMDAwMEE4MDVCQzAwRkIwMDNFODA1MAorOjEwRkU2MDAwMEZBMDAyRkMwMERGQTBCM0MwMEVGMDBCM0MwMEZCQzBGMworOjEwRkU3MDAwM0NBMDBFQkQwM0VDMDBGRjAwM0ZDMDBDMzAwMzZBMDQ0MQorOjEwRkU4MDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBFQzAwRjkwMDNFMDEzRQorOjEwRkU5MDAwOEZCMTQzRUMwMEYzMDAzRUMwNEZCMDEzRUMwMEZCMDAwOQorOjEwRkVBMDAwM0U4MDBDODQwM0UxMDA3MzAwM0VDMTBGQjI0M0UwMDBDQQorOjEwRkVCMDAwMzAwMDAwMDAwMDAwMDAwMDAxNTBGQzEwRkY4MDM3QzAzRgorOjEwRkVDMDAwMENFMDAzRkMyMEZGMDgzM0MwMEZGMDgzQkMwMEZGMDBGMAorOjEwRkVEMDAwMzNDMDJFNDAwMzFDMDFDRjAwMTFDMDRDRDAwMzAwNDQ5RQorOjEwRkVFMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzA0QjMwMjIyNzJBNAorOjEwRkVGMDAwMDhBMTE2RUMwMEJCMDQyMkMwMEJCMDQyRUMwMEJBMTlGQQorOjEwRkYwMDAwQjZEMDA4OUM0QTI2ODBEQjAwMjJDMDA4OTAwMzYwNDBERgorOjEwRkYxMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQjkxMDYyMjBENQorOjEwRkYyMDAwNDhBMDAyRUMwMEJCMDAyMkMwMEJCMDAyRUMxMEJCMDBFQQorOjEwRkYzMDAwNjYwODBBQTgxMjI2MTA5QjAwMkFDMDI4QjAyNjIwMDBCNgorOjEwRkY0MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDAwQzAwQjkwMDIwMDA4NAorOjEwRkY1MDAwMDgzMjAyQ0MwNEIzMDAyMEMwNEIzMDAyQ0MwMEIzMDAwNgorOjEwRkY2MDAwMjAwMDA4MDAwMjAxMDA5MzAwMjhDMDA4MzAwNjQyMTE1QQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMUM2QzAwRjkwMEIyNDAwRQorOjEwRkY4MDAwMEM4MjAyREMwMUZGMDBCMkMwMEJGMTAzQkMwMEY5MDBERgorOjEwRkY5MDAwMjY0MDJFODAwMzIxMDRDRjAwQkJDMDBDOTAwMzAwMDMzOQorOjEwRkZBMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkQwMDNGNDBDQworOjEwRkZCMDAwMEY4MTAzRkMwMEZGMDAzRkMwMEZGMDIzRkMwMEZDMDA5QQorOjEwRkZDMDAwMkQ0MDJGQzAwM0YwODhGRjAwMzdDMDhGRDAwM0U4MDIxOAorOjEwRkZEMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwRkY4MDMzQzIzQQorOjEwRkZFMDAwMENGODAzN0NBMEZGOTAzRkM0MkNCNDAzQkM4MENGNDAyRQorOjEwRkZGMDAwMzdFMDBGRjE5MzZFNDRCRjMwM0YyMDJDRjg2M0YwMDREQworOjEwODAxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzAwRUIyMDIzRjA1NgorOjEwODAyMDAwMDhCODUyM0QwMEIzMDAyRURDMDhGNDQyMUM0MjhCNDBERAorOjEwODAzMDAwMjJDODBCRjYwMzZDODhCQjMwMkUwMDA4QjIwMkUwMDRBNQorOjEwODA0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAwQkIwODIwQzAwNAorOjEwODA1MDAwMDgzMDAyNENBMEIzMjAyNjgwODgzNjAyQ0NBMDkzNjA2MgorOjEwODA2MDAwQTRDMjBBMzI0MjRDOTBCMzIwMkMwQjg4MzA4MkUyMDEyOQorOjEwODA3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4QkIyMkEyQzBDOAorOjEwODA4MDAwMDhCMDAyMkMwMEJCMDAyRTkwMDhCMDAyRUMwMDlCMDA1MAorOjEwODA5MDAwMjJDMDBCQjAwMjZDMDBCQjAyMkUyMDA4QjAwMkYwMDAyMAorOjEwODBBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQjE4MzMyQzAwOQorOjEwODBCMDAwMEMxQTAzNkMxMEZCMDAzNEMwMENCMDAzRUMwOERBMDA5RgorOjEwODBDMDAwMzZDMDBFQjAwQjZDMDBGQjAwM0UyODBDQjAwMkQwMDA5NgorOjEwODBEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUQ4MDNGQzAyNworOjEwODBFMDAwMEZENDAzRUMwMEZGMDAzRkM4MEZCMDAzM0MwMEVFNDA4QworOjEwODBGMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwM0Y4MDBGRjAwM0Y4MDA0QgorOjEwODEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIyMEIwQzA4OAorOjEwODExMDAwMEZCNDAzQUMwMkNCMDAzMjkwMEVCMDAzNkMwMEVCMDA0NgorOjEwODEyMDAwM0FDMDBDQjAwMkVDMDBGQjAwM0U5MTBGQjAwMzkwMDA4RgorOjEwODEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkI4MDIzRDdGMQorOjEwODE0MDAwMEI5MDAyM0MxNDhCMDA2QTA4MjhGMDAwQkMwMDgzMDBFRQorOjEwODE1MDAwQkVDMDg4RjAxMzJDMDBFRjAwMkU4MDBCQjAwN0IyMDBEOQorOjEwODE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQjM0MDIwRDBCQgorOjEwODE3MDAwMEIyODAyOEMwMDgzMDEyMEMwMUFCODAwNkMxMEExMDBFQgorOjEwODE4MDAwNjhDMDJBMzAwMjhDMDBCMzAyMkUwMDRCMzAwMkY4MDQ4MworOjEwODE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAwQjdBMDIxRTBGOAorOjEwODFBMDAwMEJFQ0MyMUUwNDg3ODAyOUU0MDg3OTgyOUU0MEFGOTBDMAorOjEwODFCMDAwMjlFMDBBMzgwMDFFMDBBNzkwMkQyNDBCNzgwMjg4MDBDMQorOjEwODFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzUwRkIwOTMwQzBDRgorOjEwODFEMDAwMEYyMDAyOEM0MEMzMDAyMEMwMEEzODAzNEM0NEUxMDA0OQorOjEwODFFMDAwQUFDMDBFMzE0MzhFMDBGMzAwM0MwMDBGMzAwM0QyMDJEMAorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNERCQzAwRkYyMDNGRDAwOAorOjEwODIwMDAwNEY3MDAzRkMwMEZGMDAzREMwMEZGMzQzRkM0MEQ3MDA1QworOjEwODIxMDAwQkZDMDBERjRDM0ZDNDBGRjAwM0Y0MDBGRjAwM0QwMDY4OQorOjEwODIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzAwRkIwMDMyRDA1OAorOjEwODIzMDAwMEQ5MDAxRURDMEZCMDAzRUMwMUZCQTAzQUNDMEM4MDBFQQorOjEwODI0MDAwMzJFMDhEQjQ0M0VDMDBGQjAwMzZBMDBDQjAwMzZBMDBCMgorOjEwODI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjcwMDIxQzgxOQorOjEwODI2MDAwMDg2MDAyREMyMEI3MDAyREMwMEY3NEEyMUMyOEQ2MDBDNQorOjEwODI3MDAwMzVDMDA4NzIwMjVDMDhCNzQ0QTE4MDQ4NzAwMjEyMDA0MQorOjEwODI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDIwRTRGNQorOjEwODI5MDAwMDk3ODI2REUwMEI3ODAyREUyMEE3MDEyOEM4ODgxODA3MgorOjEwODJBMDAwMjFFMDA5NzgwMkRFMDBCM0EwMjVBMDI4NzgwMjcwMDQzRQorOjEwODJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAxQkI4MDIwQzA1QQorOjEwODJDMDAwMDgzMDQyRUMwMEIzMDAyQ0MwMEEzMDIyMEMwMDkzMDBBRQorOjEwODJEMDAwMjRDMTA4MzAwMkNDMDBCMzAwMjBFMDA4QjAwMjEyMDQzMAorOjEwODJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwRkEwOEIyODA4NQorOjEwODJGMDAwMERFMjAzRTgwMEZBMDAzRjgwMEFBMDAzQTgwMENFNTA3OAorOjEwODMwMDAwMzI4MDA1QTAwM0U4MDBGQTAwMzdBODBDQTAwMzdBMDQyNQorOjEwODMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDA2MDA4RjgwMDNDMDAxOQorOjEwODMyMDAwMEY4ODAxRTAwMEY4MDQzQzAwNEYwMDEzQzAwMEY4MDA4MworOjEwODMzMDAwM0UwMDBGODAwMzYwMDBGODAyM0UwMTBGODAwM0QyMDA3MAorOjEwODM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjk5MDEyNDAyNgorOjEwODM1MDAwMEM5MDAzQTQwMEM5MDAzRTcwMEU5NDMzMjQwOEM5MDA5OQorOjEwODM2MDAwMkE0MDBCOTAwM0U0MDBGOTAwM0E0MDBGOTAwMzAyMDQwNgorOjEwODM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MjIyNjA2OAorOjEwODM4MDAwMDgxMDAyMjQwMDg5MDMyRTQwMDg5MDAyQTQwMTgxMDRGMQorOjEwODM5MDAwM0U0MDBCOTAwMkU0MDBCOTAyMjI0MDBFOTAwMjIwMDAwMQorOjEwODNBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjk0MDJBNEEwRgorOjEwODNCMDAwMDg5MTAyQTQwMDg5MDAyRTQwMUE5MDBBMjQwNDg5MDAyMgorOjEwODNDMDAwMkE0MDBCOTAwMkU0MDBCMTAwMkE0MDBCOTAwMjA2MDAwNAorOjEwODNEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEwMUE4NDhBQgorOjEwODNFMDAwODg5MDAyMDQ4MDgxNDAyQzUwMTgxNDBBODQxMDg5NDAxRgorOjEwODNGMDAwMkM0MDBCMTAwMkM0MDAzMTIwMjA0MDBBMTAwQTAyMDE1OAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRjA1MDNBMDA4QworOjEwODQxMDAwMkNBMDAyQTE0MkM4MDAzRTAwREUwMDIzMjE0Mjg4MDBCOQorOjEwODQyMDAwMzgxNDBGODUwM0UxNDBGODUwMzgxNDBGMDUwMzJFMDE2RQorOjEwODQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURFNDA4RkQwMDM2NDRENAorOjEwODQ0MDAwMEZEMDAzNjQ0MEY5MDAzRDUwMEY5NDAzRTUwMDdENDBEOAorOjEwODQ1MDAwM0U0MDBGOTQwM0U0MDBGOTEwM0Y0MDBFOTAwM0U2MDQwMQorOjEwODQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNDAwRkQ0MDMzNjhDMworOjEwODQ3MDAwMENEMDAzRTc4MUY5MDAzMzc4MEREODEzMjZBMENEQTBFNgorOjEwODQ4MDAwMzI0MDBEOUIwMzI0MDBGOUEwM0M0NDJDOTAwNzg2MDA0OQorOjEwODQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMDAwQjhBMEEyMTAzQQorOjEwODRBMDAwMTg4MDAzODI4NEI4ODAzNjJDMkUwRjAyQTNBMEQ4RTA1NworOjEwODRCMDAwMzYyMjhCMDgwMzQyQTBGOEUwMkUyODA4ODgwMkNFMDQ1QQorOjEwODRDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwQjEwMEEwNTAwQQorOjEwODREMDAwMjgzMDAyQzU4MEIxMDgyMDQwMDkxMEEyNDQwODgxNDgxNAorOjEwODRFMDAwMjA0MDBCMTQwMjA0ODBCMTM4MkM0ODA4MTI4MjgyMDEwQgorOjEwODRGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjEwMDIyNDAyQworOjEwODUwMDAwMDg5MjAyRTQwMEI5MDIyNjU4NEE5MDAyRTQwODk5NDAxMQorOjEwODUxMDAwMjY0MDBCOTAwMjY0MDhCOTAxMkM0ODA4OTAxMkM2MDQ0QQorOjEwODUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjk4MDMyNDA2NworOjEwODUzMDAwMDg5ODgzRTQwNEI5MDEzMDQwMEQ5MDBCNjQwMkM5MDAyRgorOjEwODU0MDAwMzI0MDBGOTAwMzI0MDBGOTAwMUU1ODBDOTAwM0E4MDQzOQorOjEwODU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkyMDNDNDA0OQorOjEwODU2MDAwMEY5ODAzQTQwMEI5MDAzRTQyOEUxMDRCODQwNEY5MDAxQQorOjEwODU3MDAwM0U0MDhGOTAwM0U0MDBFOTAwM0U0MDBGOTAwM0NBMDBBNAorOjEwODU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRDgwMDMyMDhBMQorOjEwODU5MDAwMEY4NDgzQTAwNEM4MDQzRTAwODM4MDAxMjAwMEMwMDAzMworOjEwODVBMDAwMzIwMDBGMDAwM0EwMDBDODAwMzIxMDRFODAxM0NBMDQyRQorOjEwODVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEU5MEEzODAwNQorOjEwODVDMDAwMEJFNDAyMjgwMENBMDAyRjgwNEFBMDEzQTgwMEFBMDBDQQorOjEwODVEMDAwMzY4MTBCQTAwMjI4MDA4QTAwMjI4MDA4QTAwMzhBMDBBRQorOjEwODVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTNDMDIwRDA4RgorOjEwODVGMDAwMEIzNDAyOEMwMDhCMDAyQ0YwOEIxODAyNEMwMDgzMDA5MworOjEwODYwMDAwNjBDMDBCMzAwMjhDMDI4MzAwMjhDMTBBMzAwMkNBMDAwRAorOjEwODYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExRTAwQjQwQjY5QzA2MworOjEwODYyMDAwMDk1ODA2MUU4MDk3MTAyRkMyNDg3MDgyOUM4MEE3MDhBOAorOjEwODYzMDAwMjVDQzBCNzAwMjFFODE4N0EyQUJDNDA4NzMwMkU4MDAzMAorOjEwODY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTEwREM4NDIxRTA4QgorOjEwODY1MDAwMEY3ODQyOUYwMkM3ODgzREUwMkY3MTAzNEUwMENGODAwNAorOjEwODY2MDAwMjFFMjBGNzg4MzlFNDlDRkQwMzlFODBFNzgwM0VBMDJFMQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4NERBQzQwQ0EwMDM2MDBCOQorOjEwODY4MDAwOEYzMDIzRUNBOEVCNDAzQ0MwMEY5NjQzRUQ4MEZCMDBGRAorOjEwODY5MDAwM0VEODhGQjE0M0VEODBGQjIwMzZDQTBGQjBBMzgyMDZDRgorOjEwODZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTgwRkM4MDMxRTA1QQorOjEwODZCMDAwMDVBQTEwRkU0NEZGOTAzRkUxQ0ZGOTE3M0YyMEQ3ODA3NQorOjEwODZDMDAwOEJFNDBGRjgwMzNFMzBGRjgwMzdFMDBGRjgwMDQwMDBFNgorOjEwODZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkQxMDIxQzAyNworOjEwODZFMDAwMDg0QTAyRENDMEI3MDAyREMyMENEMzAyMUM4MDg3MDBGMAorOjEwODZGMDAwMjlDMDRCNzIwMjFDMDBCNzAxMjFDMDBCRjAxMjJBMDRFMgorOjEwODcwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzkwMzQwMDIxODAwOAorOjEwODcxMDAwMDk3MDAwNUMwQ0I3MDAyREM0MDg1MDFBMEMwMDk3MDBCQgorOjEwODcyMDAwMjFDMDRCMzAwMjFDMDBCNzAwMjVDMDBCNzAwMjQwMDA3NgorOjEwODczMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzAwQjAwMDYwMDAwOQorOjEwODc0MDAwMDgzRTAyQ0MwMEIzMDIwQ0UwMkJCMDAyMEMwMDkzMDBGOAorOjEwODc1MDAwMjhDMDBCQjAwMjJDMTBCMzAwMjBENjAzMzAwMjA4MDQ0RQorOjEwODc2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwRkIwMEIyMDBCMworOjEwODc3MDAwMDVCRTAzN0MwMEZGMDAzRTIwMENCMDAzM0MwMEQ5ODAwNgorOjEwODc4MDAwMzNDMDhCRjAwMzNDMDBGRjAwMzdFMDBGRjAwMzZBMDRCNgorOjEwODc5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwNDNFMDBEMAorOjEwODdBMDAwMEZBNDIzQ0MwMEZCMDAzRTgxMDg5MDAzRUMwMEU5MTRFOQorOjEwODdCMDAwM0VDMDBGQjAwM0VDMTBGQjAwM0VDMDBGQjAwM0UwMDA2MgorOjEwODdDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDM3ODBCNgorOjEwODdEMDAwMEZGQTAzRkMwMENGMDAzRjkwMDZEQzIzM0MwMEZEMTBBNQorOjEwODdFMDAwMzNDMDBGRjAwQjNDMDA0MzAwMzNDMDBGRjAwM0MwNDQxNAorOjEwODdGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2QzA5QkIxOTIyMzIyQgorOjEwODgwMDAwMEJCRTAzNkMwMDhCMDAyQzkwMERCODAyQUMwMEIxMDBDNQorOjEwODgxMDAwRjJDMDBCQjAxMkFDMDA4QjAwMjJDMDBCQjAwM0EwNDAyMgorOjEwODgyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzEwQjMwMDI2MjA3RQorOjEwODgzMDAwMEI5MDEyRUMwMThCMDAyQUMyMEE5MDAyMkMwMEJCMDBBNAorOjEwODg0MDAwQTJDMDBCQjAwMjJDMDBBQjAwMkFDMDBCQjAwMkUwMDBBQgorOjEwODg1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAxQjMwMDIwMDBFQworOjEwODg2MDAwMEIwMDAyOEMwMDgzMDAyRUMwMEIzNDAyOEMwMEJCMDA3NgorOjEwODg3MDAwMjBDMDBCMzAwMjBEMDBBMzAwQTBDMDBCMzAwMjgyMDEwQgorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQkIwNDM2ODBGQQorOjEwODg5MDAwMEZCMjAyRkMwMkNGMDIzOEMwMEVGMDAzM0MwMEZCMDAxNgorOjEwODhBMDAwMjNDMDBGRjAwMzNEMDJFRjAwMzNDMDBGRjA0M0MwMDNCRAorOjEwODhCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDNGMDA3MQorOjEwODhDMDAwMEZGNDIzN0MwMEZGMDAzRkMwMEREMDAzRkMwMEZGMDAyRAorOjEwODhEMDAwM0JDMDBGRjAwM0ZDODhERjAwM0ZDMDBGRjAwM0E4MDY4OQorOjEwODhFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMDUwQ0UxMjMzRDAzMAorOjEwODhGMDAwNEM4NjgzMzA4MDVGNjgzM0M0MEZGMzgzM0NDMENDMzgzMAorOjEwODkwMDAwQjMwODBDQzYwM0YxQTBGRjAwMzMyNDBDQzIwM0YwMDAyRgorOjEwODkxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzgwRDIyMDIzRDhGRQorOjEwODkyMDAwMEQ5NjAyODg2MEFGNDAyM0RDMEJGNjAyM0NDMjg4NjBFMworOjEwODkzMDAwMjI1MjA4OTEyMkUxMDBCNzI0QTI0ODhBODQ4MjYwMDQ2RQorOjEwODk0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDAwODEwMEUwQzQ4MQorOjEwODk1MDAwMEEwMDAyMDQ4MEEzMjBBOEMwMUIzMDBBMEMwMEEwMDA1QgorOjEwODk2MDAwMjgwQzA5MDIwMkM0ODBCMzFDMjIwODE5MDMwMkUyMTE3OAorOjEwODk3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNDAwOTk4MDYyQzBEMworOjEwODk4MDAwMEJBMDMyQTQ1MUFCMDAyQUMwOEJCMDAwMEMwMEE5QzBEMAorOjEwODk5MDAwMkEyMTA4QjgyMkUyMDBCQjAwMjI4NDFCQTg0MjcwMDRFRQorOjEwODlBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMjAwQ0JDOTMyQzBBQQorOjEwODlCMDAwMEU4QjEzMjIxMERCMDEzMkMwMEZCMDBCMkMwMDY4ODEyQworOjEwODlDMDAwM0EyMjJDODgyM0UzMDBGQjAwMzAzMDhEOUM4M0QwMDRCNgorOjEwODlEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQTQwRjcwNDNFQzI1MQorOjEwODlFMDAwMEREODIzRDgwMDdCMDAzN0MwMEY3MDMzRkMxMEQyMDBBNQorOjEwODlGMDAwMzVDMDhGQzAwM0Y0MDBGNzAyM0ZFMDBFODAwM0Y4MDA5QgorOjEwOEEwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTA4MTIwQzgwODMwQzA1NQorOjEwOEExMDAwMEMwMDgzMjQ0MEMzODkzQUMwMEVCMDBCMkMwOEM5NDgwRgorOjEwOEEyMDAwNzI1NDBGOTEwM0VEMDJFQjhBM0E2MjhDODAwQjEwMDRCMgorOjEwOEEzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQjA0ODg0MEEzQzJFRAorOjEwOEE0MDAwMDJBRTEyMjc0MjhGNDQyM0MyMEJGNDAyM0QwMDBBNDBCQgorOjEwOEE1MDAwMjJFMDBCQjUwMkVDMjA4RjQ0QTI0MDhEQkQyMzMyMDBGMgorOjEwOEE2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0OTQwODM4MTI0QzE2RgorOjEwOEE3MDAwMDgyODAyMDEwMDkzMDBBMEU4MEEzMDgyOEY2MEIzOTBCQQorOjEwOEE4MDAwNjBCODBCMjgxMjRBMDA5MzAwMjA5MDA5MjAwMjc4MDA1OQorOjEwOEE5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTAyODdBODI1RTAxMQorOjEwOEFBMDAwMEE3QjAyMUEwNDg3ODAyMUU0MEI3ODgyOEUwMjk2OTE1OQorOjEwOEFCMDAwMjEyMTBCNjk0MERCNDA5NzkyMjNBMDg5NTg4MjA4MDA0RQorOjEwOEFDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyNTgyQzMwMDM0QzBCOAorOjEwOEFEMDAwMEM5QjQzMDhEMEQzMjAzOEMwMEVCMDAzOEMwMEIzMDBFOQorOjEwOEFFMDAwMjA4MDA3MTAwM0UwMDBEMzEwMzgxODBEMzAwMzUyMDIyNQorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCNDAwN0YyMDFCRDBEQgorOjEwOEIwMDAwMEZGMTAzRjg0MEVGMDAzRkMwMEZCNDAzN0MyMENGMDQwNworOjEwOEIxMDAwQkY0MDBGRjAwM0U0MTBFRjE4M0RDMDBGRTAwM0QwMDY5NAorOjEwOEIyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAwRTMwMEIyQzRGNworOjEwOEIzMDAwMENBMDAzMjQwMERCNjgzMkM4MENCNDAzRUM4MEM4ODBBRQorOjEwOEI0MDAwQjZFMDBDQTAwMzJFMDBDQkUwQjI2MDBDQjgwQjJBMDBGQworOjEwOEI1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAyODcwMEExQzhCRQorOjEwOEI2MDAwMDg3MDAyMUMwODk3MDIyMUQ0MDg3NDAyRENDMDA3MDBCOAorOjEwOEI3MDAwMjFDMDg4NzAwMjE4MDA4MzA4MjFDMDA4NTAwMjEyMDQyNgorOjEwOEI4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTIwQUQ4MDI5RTBEMQorOjEwOEI5MDAwMDg1ODAyMUUwMDk3QjAyMUU4MDg3ODAyREUxMDE1ODAwMAorOjEwOEJBMDAwMjFBMTA4NDgwMjVFMDA4N0E0NjVBMDA4NzgwMjMwMDA3MQorOjEwOEJCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRjEwODE3MEE4QzAwMQorOjEwOEJDMDAwMzgzMDBBMEQwMDkzMDBBMEMxMjgzMDAyQ0MwMjgzODhGRgorOjEwOEJEMDAwMjBFMDM4MzQwQTRENzI4MzAwMjRFODI4MzQ4MjEyMDRERAorOjEwOEJFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQTQwRUVDMEJBODA3NgorOjEwOEJGMDAwMENFMDAzMzkxMERBMDAzMjgwMENBMDAzRTgwMERFQzg3NAorOjEwOEMwMDAwMzNBMDBDRTAwMzdCMDBDQTAwMzdCMTBDRTQyMzNBMDQyNAorOjEwOEMxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBDMTAwRjgwMDM2MDBCRAorOjEwOEMyMDAwMEY4MDAzQzAyMDM4MDAzRTAwMEYwMDAzRTAwMEY4MDI3MAorOjEwOEMzMDAwM0EyNDBGODA4M0EwMDFGODA0M0EwNDBEODAxM0QyMDA3NworOjEwOEM0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQ0QzEwMDMyNDA4MQorOjEwOEM1MDAwMEM5MDMyMjQwQ0MxMDYzODQwMEQ5MDA5MDQwMEQ5MDA1NAorOjEwOEM2MDAwM0U0MDBGMTgwMzI0MDBGOTAxM0U0MDBGOTAwM0MyMDQ1OAorOjEwOEM3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA2ODkwMDJBNTBEMworOjEwOEM4MDAwMDg5NDBBMjQwMDg5NDIyMjUwMEE5MDEyMjUwMDg5MDA4MworOjEwOEM5MDAwMkU1MDBCOUMwQTI1MTBCOTAwMkU1MDBCOTAwMkUwMDBCQworOjEwOENBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDIwODkwMDIwNDI2OAorOjEwOENCMDAwMDgxMEMyQUMxMDg5MDgyQTQyMDk5MDAyMjQyMDk5MDBBOQorOjEwOENDMDAwMkU0MjBBQjE4MjJDMjBCOTAwNkU0MjBCOTAwMkM2MDBERgorOjEwOENEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODMwMDI4NDg1MQorOjEwOENFMDAwMDgxMjYyOEM4MDgxMDAyMDQwMDIxMDAyODQ4MDgxMjA2MgorOjEwOENGMDAwMkM0OTBCMTIwNjA0ODRCMzAyNkM0MDBCMTIwMkMyMDExMQorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwQzg3ODMwMTRGOQorOjEwOEQxMDAwNEMwNTEzQTE0MkMwNzgzODFFMEQ4NzgzMDE0MEQwNTAwNgorOjEwOEQyMDAwM0MxNDBFMDUwMzAxNDBGODc4M0MxNDBGMDUwM0VFMDNENAorOjEwOEQzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzAwRkYwMDBFNDRFMQorOjEwOEQ0MDAwMkZGMTAzNzQ0MEY5MDAzRTQwMEQ5MDAzNjQ0MEZEMTA4NAorOjEwOEQ1MDAwM0Y0NDBGRDEwMUY0NDBGOTAxM0ZDMDBGRDEwM0U2MDZCMworOjEwOEQ2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVFNjIyRTk4OEIyNDAwQgorOjEwOEQ3MDAwMEY5MDAzMjQxNkM5OEMzNjdCOEY5QzgzQTc5MEM5MDA2MworOjEwOEQ4MDAwM0U1MDA0OTQxMzI0NTBDOUUwM0U1MDBGOTAwMzA2MDA1NworOjEwOEQ5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjgwODhBMDIyMjg0NworOjEwOERBMDAwMEI4QTAyMkE4MDg4QTQyMjMwMDg4RTBBMjIwMjg4QTAxOAorOjEwOERCMDAwMkUyODg4QUExMjIyOTA4OEY0MkUyMDBCQzgwMjBFMDRCNgorOjEwOERDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVENDIwQTUwODIxNDI2MgorOjEwOEREMDAwMEI1MDgyMTQzMTg1MDgyNTQwMEE1MDIyOTQ0MDg1MDhBMgorOjEwOERFMDAwNkQ0MDA4NTAwMjU0MDI5NTAwMkQ0ODBCNTA4MjQyMDFGQworOjEwOERGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTU4NDAwOEQxMDIzNDA1MgorOjEwOEUwMDAwMEJEMDAwMzQwMThEMDAyMzQxNThEMDAyMzQwMDhEMDg2RQorOjEwOEUxMDAwMkY1MDA4RDIwMjc0ODA5RDAwMkY0ODBCREMwMjQ2MDRCQworOjEwOEUyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzQwRTlDMDMyNDBFQgorOjEwOEUzMDAwMEY5MDA5MjYwMEM5MDQzNjQwMUY5MDIzQTQwOEM5NDA5QQorOjEwOEU0MDAwM0U0MDBDOTQwQjY0MjBEOTAyM0U0MTBGOTQwMzY4MDQwOQorOjEwOEU1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDBERQorOjEwOEU2MDAwMEYxNDAzQzUwOEY5MDAzRTQwMUY5MDIzRTQwMEY5MDBFOQorOjEwOEU3MDAwM0M0MEFGOTgwMzg2MDBFOTAwM0U0MDBGMTAwQjhBMDA4QgorOjEwOEU4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBCMDAwREM0MEIzMDBDQgorOjEwOEU5MDAwMEZDMDAzMzEwMkM0MDRCMTAwM0M0MDAzMTAwMEZDNDA4OQorOjEwOEVBMDAwMzMwMDBDQzQwM0IxMDBDQzAwQjMwMDBDQzQwM0NBMDRFQgorOjEwOEVCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwOEE4MDIyQTA3MQorOjEwOEVDMDAwMEJBMDAyMkEwMDhBODQyMkExMDhBMDAyMjgwOEJBMDE2NQorOjEwOEVEMDAwMjI4MDA4QTAyQjI4MDA4QTgwMkE4MDA4RTAwMkNBMDA4RAorOjEwOEVFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAyOUI4MTIwRTBBQgorOjEwOEVGMDAwOEIzODA2Q0UwMDkzODAyMEMwMDgzODAyMEMwMEIzODA2NworOjEwOEYwMDAwNkNFMDBBQjAwMjRDMDA5MzAwMjBFMDA4MzAwMkNBMDA3NgorOjEwOEYxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExMDA0ODAwODIxMDJBMQorOjEwOEYyMDAwNEI0NDA2RDAyMDkwMDgyMTAyODA0NDAyMTAwMEI0QzBCNworOjEwOEYzMDAwMkQxMDQ4NDAwMjAwMDA5NDg5MjkzMDA4NDAwMkU4MDBDMgorOjEwOEY0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzMjAwRDY4MDMxQTBEOAorOjEwOEY1MDAwMEZFODBCQ0EwMEQ2ODAyM0EwMDRGODBCMUEwMEZGODA4QworOjEwOEY2MDAwQkZBMDJFQzgxM0RBMDI1RTgwNzNBMDJDNzgwM0VBMDIzOQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFNDBBOQorOjEwOEY4MDAwMEY5MDAzMjQwMEU5MDAzRTQwMEU4MDAzRTQwMEY4MDA0NworOjEwOEY5MDAwMzI0MDBGQjAwM0U0MDFFOTA0MzY0MDBGODAwM0MyMDZGQgorOjEwOEZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwQ0Q4MDMzNjA3RQorOjEwOEZCMDAwMENEODQzMzYwMENEODAzMzYwMENEOTIzQkUwMDREODBFMQorOjEwOEZDMDAwMzM2MDA4RjgwQjNFMDBGRDg0M0Y2MDBGRjkwM0MwMDBEQQorOjEwOEZEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDA0REUwMDIzODA1MworOjEwOEZFMDAwMDg2MDAyQjgyMDhFMDQyMzgwMDg2ODAyMTAwMDhFMjBEQQorOjEwOEZGMDAwMjM4MjA4NDAwMjEyMDBGNjAwMkQ4MDBCNDFBMEVBMDRGMworOjEwOTAwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwODQwMDIxMDBDQgorOjEwOTAxMDAwMDg0MTAyNTA0MDk0MDAyMTAwMEE1MjAyRDgwMDg1MDIwMworOjEwOTAyMDAwMjUwNDA4NDAyMjE4MDhCNDAwMkQxMDBCNzg0MEMwMDAxOQorOjEwOTAzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFRTIyOTMwMDIwQzA1OQorOjEwOTA0MDAwMDgzODAyRUMwMDkzMDAyMEMxMkEyMDAyNjQwMjgyMTAzQQorOjEwOTA1MDAwMjRGMDBBM0M0MjI0MjhCMzAwMkNFMDBCODg4MkM4MDQ4OAorOjEwOTA2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRDAwQ0IwMEIyQzAyOQorOjEwOTA3MDAwQUNCRTAzNkUwMkRCMDBCMkMwMUVBMDAzRTQwMENBMTE0NgorOjEwOTA4MDAwQjZEMEFDQkMwMzI0MDBGQjAwM0VDMENGODQwM0VBMDQ4RQorOjEwOTA5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFMDQwRjgwMDNDMDA5QworOjEwOTBBMDAwMkY4MjAzQTAwMEU4MDAzRTAwMUQ5MDEzQTgwMEY5MDBFNQorOjEwOTBCMDAwM0EwMDgxODM0M0U4MDBFODAzM0UwNDBGQjAwM0UwMDA3OAorOjEwOTBDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFMDAwRDYwMDM3ODBGMgorOjEwOTBEMDAwMENBMDAzRjgwMENFMDAzMzgwMERBMDEzMjAwOENFMDBCMgorOjEwOTBFMDAwMzM4MjBDNDA3MzMwMThDRTAwMUY4MDRGQzE0MzAwNDRDMAorOjEwOTBGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ3QzAwOEQwMDIzNDA0RgorOjEwOTEwMDAwMEFEMDAyRjQwMDhEMDAyMzQwMDhENDgwM0U0MjhENDBGNgorOjEwOTExMDAwMjM0MDA4RjAwMjNFNDA4RDAwMEY0MDBCRjQwMjIwNDAzNworOjEwOTEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOTkwMEE2NDBGRgorOjEwOTEzMDAwMDg5MDA2RTQwMDkxMDAyMDQwODgwMDAyMjQwODgwNDA0NgorOjEwOTE0MDAwMjA0MDBBQjAwMjI0MDA4OTAwMEU0MDBCODQwMjIwMDA1NworOjEwOTE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODIwMDIwODBBMQorOjEwOTE2MDAwMEEyMTA2QzgwMTgyMDAyMDgwMDgzMjgyMDgwODgzMDA5NAorOjEwOTE3MDAwNjA4MDBBMDAxMjA4ODA4MjAwMkM4MDBCMzAwQTAyMDFGNQorOjEwOTE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2MDAwRDgwMDM2MDA2NAorOjEwOTE5MDAwMEM4NDIzRTAwMEM4MDAzMjAwMEQ4MjBCMjAwMkM4MDBCRQorOjEwOTFBMDAwMzIwMDBFMDAwMzIwMDJDODAwM0UwMDBGODAwMzAwMDNCRgorOjEwOTFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwQkYwMDNGQzBFOAorOjEwOTFDMDAwMEZGMDAzRkMwMEZGMDBCRkMwOEZCMDAzRkMwOEZGMDJEQworOjEwOTFEMDAwM0ZDMDBERjAwM0VEMDBGRjAyM0ZDMDBGRjAwM0U4MDZCMworOjEwOTFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDFGMDhDRkYwMDNENjAzNgorOjEwOTFGMDAwMkNCMjgzN0M5MERGMzgzMUUwMEZGODAzM0MwMEZGMjA3NQorOjEwOTIwMDAwM0ZDNDBFRjQwMzdDMDBGNDgwMzMwMDBERjgwM0YwMDAzQgorOjEwOTIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTIwQkI2MjJFNDJDMAorOjEwOTIyMDAwMjhGNDQyM0U0MDhGNDQyMkUwMEJCMDgzN0Y0NEJGQzEwQworOjEwOTIzMDAwMkREQzJBRjYwMjNGNDVCODgwMjI2MTg4QjgwMkUwMDQ5RQorOjEwOTI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTgwQjIxODJFQzg1QworOjEwOTI1MDAwMjkzMDMyMEMwOEIzMjAyMEMwNEI5MjAyMEMwMEIzNDBERQorOjEwOTI2MDAwMkNDMDg5MzQxMjRDMDBCMDAwMjRDMTQ5MzAwMkUyMDEwNAorOjEwOTI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBNDAwQkEwQzJFRTAzNQorOjEwOTI4MDAwQTlCMDA2MkMwMDhCMDBBMkMwMEI5MDAwNkMwMEJCMDBBNAorOjEwOTI5MDAwMkVDMDBCMzAwMjZDMDBCQTgwMjZGMDA4QjAwMkYwMDQzOQorOjEwOTJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTFFRTAwRkJDNDNFNzhBQQorOjEwOTJCMDAwMkRCMDAzNkMwOEZCMDAzMkMwOEIyNDgzMkMwMEZCMDAxNAorOjEwOTJDMDAwM0VDMDhGQjAwQjZDMDhCMkUwMTY2MDhEQjAyM0QwMDRBNgorOjEwOTJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCRTk4RkY0MDNGQzBBOQorOjEwOTJFMDAwMEU3MDAzREMwMEZGMDAzRkMwMEZFMDAzRkMwMEZGMDAzNgorOjEwOTJGMDAwM0ZDMDBFRjAwM0FDMDBGRTAwQjlDMDBGRjAwM0Y4MDA1MQorOjEwOTMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBRDAwRkE0MDNFRDBCOAorOjEwOTMxMDAwMEVCMjAzRUMwMEMzMDAzRUMwMENBMDAzMkMwMUZCMDAwNgorOjEwOTMyMDAwM0NDMDBFQjgwM0VDMDBEQTAwM0FEMDRGQjAyM0QwMDRCMgorOjEwOTMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQkEwMDJDQzA2RQorOjEwOTM0MDAwMDhGNDA3QkMxNERGMDAzRUMwMUFBMDUyQkMwMEJGMDRFMgorOjEwOTM1MDAwM0ZDMDhBRjAwM0JDMDBGQTAwMjJDODBGQjAwM0YyMDAzRAorOjEwOTM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0ODAxQjEwMDZDQzJCMAorOjEwOTM3MDAwMEEzMDQyQ0MwMDgzMDUyQ0MwMDgzMDAyOEMwMUIzMDRCMworOjEwOTM4MDAwMkNDMDBBMzAyMjhDMDA4MDgwMjhDMDBCMzAyMkY4MDBDQworOjEwOTM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTA4Qjc4MDZGRTBCMAorOjEwOTNBMDAwMTg3ODAyOEU0MEI3ODAyREUwMEE3ODAyOUUwMEI3ODBDMAorOjEwOTNCMDAwMjlFMTBBNzgwMjlFMDFCQzgwMjlFNDBCNzgwMkM4MDBFQQorOjEwOTNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwOTQwRjEyMDNDQzRCMworOjEwOTNEMDAwMEUzOTAyQ0MwMEMzMDAyQ0M0MDg5MjAzOEM4OEIzMTA1MQorOjEwOTNFMDAwMkNDNDBFQjAwNzhDMDBDMjA4MzhDMDBGMzA0M0QyMDIyNAorOjEwOTNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzEwRkMwMDdGQzAwOQorOjEwOTQwMDAwMEZGMDgzRkMyMURGMDgzQkMwOEY5MDAxRkMyMUZGMEM5MworOjEwOTQxMDAwM0ZDMjBGRjEwM0VDMDBFRjAwNzdDMDFFRjAwMzkwMDY4RgorOjEwOTQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFODAxRjkwMDMyQzA1QgorOjEwOTQzMDAwMEZCMjAzRUU5MERCRTEzQUMwNEQzODEzMkQzMEZCMDA0NAorOjEwOTQ0MDAwM0VFMDRGQkE0MzJDNDBGQTAwM0ZDMDhDQjAwM0VBMDAyNAorOjEwOTQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwQjEwMDIxQzAxNQorOjEwOTQ2MDAwMEI3MTAyQ0MyMEE3MjgyMUMwMEI3MDEzNUMwOEI3MTAyOQorOjEwOTQ3MDAwMkRDNDRCMzQ4MzFDQzFCNzAyMkRDMDFBNzAwMkQyMDQxNAorOjEwOTQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTIwQjRDNDI1QTJDMworOjEwOTQ5MDAwMEI3ODA2REUwMDgzODAyOUUwMUJGODAyNUU4MEE3QTAxRgorOjEwOTRBMDAwMkRDODBBNzIwMjFFMDBBNjgwMjhFMDA4NzgwMkYwMDA4QgorOjEwOTRCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDAwQjM0MDI0QzM2OQorOjEwOTRDMDAwMEIzMDQyQ0MwMEEzMDAyMEMwMUIzNDAyNEMwMEIzMDA4MAorOjEwOTREMDAwMkNDMDRCMzAwMjBDMDBCMzg4MkNENDBBMzAwMkQyMDRDQQorOjEwOTRFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwRkU0MEI3QTAwMgorOjEwOTRGMDAwMEZBMDAzRTgwMERBMDAzQTgwMEZFMjAzNjgwMEZBMDBFOAorOjEwOTUwMDAwM0U4MDBGQTAwQjI4MDBFRUUwM0ZCMDA0QTAwM0ZBMDQ1OQorOjEwOTUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDA0RjAwODNBMTA3RAorOjEwOTUyMDAwMEY4NDAzRTAxMEY4MDAzRTAwNEY4MDgzRTAwMEY4MDA1NQorOjEwOTUzMDAwM0MwMDBGODAwMzgwMDBGODQwM0UwOTBGODAwM0QyMDBGQQorOjEwOTU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwRTkwMDMyNDQ3MAorOjEwOTU1MDAwMEM5MDAzMjQwMEY5MDAzRTQwMEY5MDEzRTQwMEI5MDA4MgorOjEwOTU2MDAwMUU0MDBDMTAwMzI0MDBDOUEwM0M2NDBDOTAwMzgyMDQyQworOjEwOTU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODkwMDIyNjhDMAorOjEwOTU4MDAwMDgxMzAyMjQwOEY5MDAyRTQ4MUI5MDAyRTQwMEI5MDBEOQorOjEwOTU5MDAwM0U0MDBDOTAwMjI0MDhGOTQwMkU2MDBBOTAwNkUwMDAzQworOjEwOTVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQTkwMDIwNDA2NQorOjEwOTVCMDAwMDg5MDAyMjQwMEI5MDEyRTQwMEI5MDAyRTQwMEI5MDA4QgorOjEwOTVDMDAwMkU0MDA4OTIyMjI0MDA4OTAwMkU0MDA4OTAwMkM2MDBGNgorOjEwOTVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgwODEyMUUwNTBFOQorOjEwOTVFMDAwMjgxNjBBMDQ4MEExNDAyQzQwNEIxNDIyQzQwMEIxMDA2QworOjEwOTVGMDAwMkM1MDA5MTQwMjA0MDRCMTAwMkM0MDBBMTAwMkMyMDFDQworOjEwOTYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRTg1MDMyMDA4QQorOjEwOTYxMDAwOEM4MDAyMjAwMEI4MDAzRTAwMEI4MDMzRTAxMEY4MDA4MAorOjEwOTYyMDAwM0UwMDBDODAwMzIwMDhDQTAwM0UwMDBDODAwM0FFMDNGRAorOjEwOTYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGQzQwRkQxMDJGNDE2QworOjEwOTY0MDAwNEY5MTAzRTQ0MEY5NDAzRTQwNEZEMDYzRTUwMEY5NDBCQworOjEwOTY1MDAwM0E1MDJFOTQwMzY1MDBFRDAwM0Y1MDBGOTAwM0U2MDY0QworOjEwOTY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVFNjAwRjlFMDMzNTAxQgorOjEwOTY3MDAwMENEQTAzQTYwMEQ5ODAzRjQwMEY5MTAzQTYwMEY5ODhCOQorOjEwOTY4MDAwM0U2ODBDREUwMzY2MDBFRDAwM0I2OTBDOTAwM0M2MDBFQgorOjEwOTY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMTA4QjhFMDIwMjA1MQorOjEwOTZBMDAwMTg4RTI2RTEwMDgwQTAyRTAwNEI4ODQyRTE1MEI4NDA4MQorOjEwOTZCMDAwMkUyQTBEMEEwMjIwMDhCODAwMkUxNDBEODAwMkNFMDRCNgorOjEwOTZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjE2MDIwNDAyNworOjEwOTZEMDAwMDgzMUEyQzUwMDkxNDgyQzQwMUIxMjAyODQwMEIxMDA0MQorOjEwOTZFMDAwMkM1MDA5MTYwMjA1MDBBMzA0Mjg0MDA4MTAwMkMyMDFFQworOjEwOTZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVBNDAwQjkwODIwNzBFOAorOjEwOTcwMDAwMjg5MDAyRTQwMDg5MDAyRTQwMEI5MDAyRTQwOEI5MDM3RgorOjEwOTcxMDAwMkM0MDI5OTAwMjY0MDBCOTAwMkU2MjA5OTAwMkM2MDQxMAorOjEwOTcyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMDVFNTAwRjlEMEIyNzA2NAorOjEwOTczMDAwMDg5MDAzRTQwMEQ5MDQzRTQwMEY5MDAzQTQxMEY5MDJGRQorOjEwOTc0MDAwM0U0MDBEOTAyQjY0MDBFOThEM0E2MDBDOTAwM0U4MDRENAorOjEwOTc1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjk4MDNFNDJEMworOjEwOTc2MDAwMEY5MDAzRTQwMEY5MDAzRTQwMEY5QTAzRTQwMEY5MDA3MworOjEwOTc3MDAwM0U0MDJGMTAwM0E0MDBGOTIyM0M0MDRGOTAwM0NBMDA0MgorOjEwOTc4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MDBBMDAwRjA0MDMyMDA0RgorOjEwOTc5MDAwMEM4MDAzQzAwMEY4MDAzMjIwMUY4MDAzRTAwMEM4MDBFNgorOjEwOTdBMDAwMzIwMDBDODAwMjIwMDBDOEMwM0UwMDBDODAwM0NBMDRCNgorOjEwOTdCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MTUyODEwQkEwMDIzQTA5NworOjEwOTdDMDAwMEFFNDAyRTgwMEJBMDAyQkExMEJBMDAyRTgwMEFBMDBGQworOjEwOTdEMDAwMkE4MTBBQTAwM0U4MDhERTAwMkU4MDBBQTAwMkNBMDAzRgorOjEwOTdFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjMwNEEwQjFCOAorOjEwOTdGMDAwMDgzNjIyQ0MwMEIzMDAyMEU0MEIzMDAyQ0MwMDgzMDBGQQorOjEwOTgwMDAwMjBDMDA4MTgwMjBDMDA5MTAxMkNDMDA4MzAwNkNBMDBDNAorOjEwOTgxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQ0M4QjMyMTIxQzJCQworOjEwOTgyMDAwMkE3MDAyREMwMEI3QTAyOUMwMEI3MjAyQ0UwMEE3ODEwQgorOjEwOTgzMDAwMjlDMDRBNzQwMkZFMDA5NzAxMkNDMDBBNzAxMkU4MDA4OQorOjEwOTg0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTgwRjdDMDMxRTBDMgorOjEwOTg1MDAwMEM0ODAzREUxMUY3ODAyMUUwMEI3QTAzREUwMEMzODBBMQorOjEwOTg2MDAwMzNEODZDNzgwMzNFMDBENjgwM0RFMDBDNzgwM0VBMDJFMgorOjEwOTg3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MERBQzA4RkI4MDNFQzBBNgorOjEwOTg4MDAwMEZEMDAzRUMwNEZCM0MzRUMwMEZCNjA3NkMwMUZCMDA5RAorOjEwOTg5MDAwM0VEMDBGOTQwN0VDMDFFQTAwM0VDMDBGQjAwM0MyMDZCMQorOjEwOThBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDFGRTAwQ0ZBNDNCNjA0QgorOjEwOThCMDAwMDhEOTAzN0UwMENGODAzRjI1NEZGQzg3QkUwMENGODBCNAorOjEwOThDMDAwN0ZGQzBDRkMwMzdDMDBGNjkwMzNFMDBGRjgwM0MwMDAzMworOjEwOThEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzA4OEYyODIxNDBBMworOjEwOThFMDAwMDhEMDAyMUM0MEE3MjAzMTA0MUI3ODAyREM4MEQ3MDA3RQorOjEwOThGMDAwMkZDNDFBRDAwMjFFNDhCNjAwNjFDMDBCNzAwNkVBMDRERAorOjEwOTkwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwODczMDY5NDQwNworOjEwOTkxMDAwMDg1MDIyMEMwMDg3MDEyRDQ0OEI3MDA2OEMxMDg3MDBBNAorOjEwOTkyMDAwMjlDOTA4NTAwMjFDNDRBNjAwNjFDMDBCNzAwMkMwMDA4NworOjEwOTkzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDRDAwODM4ODYwNDA1QgorOjEwOTk0MDAwMDAxMDAyNEMwMDJCMDAyQzQxMUIzMDAyQ0MwMDkzMDA3NQorOjEwOTk1MDAwMkNDMDBBMzA0MjBDMDBCMjQwMjBGMTBCMzAwMkM4MDQ4NworOjEwOTk2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCRDQxQ0ZDMEJBRjBEMworOjEwOTk3MDAwMjg5MDFCNkMwOENGMDAyQ0MwMEZGMDAzQUMwMDhCMDBBQworOjEwOTk4MDAwM0ZDMDZDQjA0QjJDMDFGQjQwMjJDODBGQjAwM0VBMDQ2RgorOjEwOTk5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzA0RkIwNDNGRDRFNQorOjEwOTlBMDAwMEYxMDAzQUMwMEZCMDAzMkMwNUZCMDAzRUMwMEZCMDRGRgorOjEwOTlCMDAwM0VDMDRGMTAxM0VDMDBGQjg4M0VDMDRGQjAwM0UwMDBFOAorOjEwOTlDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzNjIxRQorOjEwOTlEMDAwMENDMDBCM0MwMEVGMDAzM0UwMUNGMDEzM0MwOEY3MDAxOAorOjEwOTlFMDAwMzFDMDBFRDgwM0JDMDBGRTAwM0RDNjBDRjAwM0MwNDRERAorOjEwOTlGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzAwQ0IwMzIyNDcwRgorOjEwOUEwMDAwMDg5ODQyMkMwMDlCMDAyQUMwMEFCMDAyMkMwMEJCMDQxQworOjEwOUExMDAwMkFDMDBBQjAwMkFDMDhGQTAwMkU2MDA4QjAwMkUwNDA4QQorOjEwOUEyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOUIwMDIwNDA3QQorOjEwOUEzMDAwMDg5ODAyMkMwMEJCMDAyMjg4MDgzMDAyMkMwMEJCMDBEMgorOjEwOUE0MDAwMjJDMDhBOTIwMkFDMDBBQTgwMkVDMDA4QjAwNkUwMDBCNAorOjEwOUE1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMEEwNDA0QgorOjEwOUE2MDAwMDgxMDAyMEMwMEIzMDAyODgwMEEzMjEyMEMwMEIzMDQ2NAorOjEwOUE3MDAwMjhDMDBBMzAyMjhDMjBCMjAwMkNDMDA4MzAwMkMyMDE1QgorOjEwOUE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAyQ0IwMDMwNDAyMAorOjEwOUE5MDAwMUM5NDAzMkMwMEVGMDAzMkMwODhGMDhCMkMwMEZCMDBEQworOjEwOUFBMDAwMzNDMEFFRjAwM0FDODBFQTAxM0VDMDJDQjAwM0MwMDM2QgorOjEwOUFCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkYwMDJGNDAyRgorOjEwOUFDMDAwMDdEMjgzRkMwMERGMDQzRkMwMEZCMDAzRkMwMEZGMDA5RgorOjEwOUFEMDAwM0ZDMDBGRDAwQkVDMDBFRTAwM0Y0MDBGRjAwM0U4MDY1NAorOjEwOUFFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGNTAwQ0YwODNGNDhFRQorOjEwOUFGMDAwMEZDMzkzNzBEMERDMzAzRkQ4MENCMjAzM0NDMEZGNDBBMgorOjEwOUIwMDAwMzNDNDJDRjEwMzYyNTBGQzM0MzMwMDBGNUMwM0YwMDBDQgorOjEwOUIxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBDNDgwOEIwMDJGNUFFRAorOjEwOUIyMDAwMEJBNjEyMjFDMDg5NzAyRkRDMDhGMkMyM0REMEJGNDBDNQorOjEwOUIzMDAwMzdEQzg4RjUwQTIwODBFODEwMkExNjBCOTAwMkUwMDQzMgorOjEwOUI0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDAwODMwODJDNDQ5RAorOjEwOUI1MDAwMEIwMjAyMEMwMDgwMDAyQ0M4MDgzMzQyOEM5MEIzMzBGQQorOjEwOUI2MDAwMjhDODRBMzIxMjgwMENCMEEwMjgyODBCMTIwMkUyMDE0OQorOjEwOUI3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBMjAwOEIwMDJFNDhGRAorOjEwOUI4MDAwMEJBMDIyMjAyMDg4ODAyRUMwMjhCMDBBQUMwMEJCMDA4OQorOjEwOUI5MDAwMkVDMDBBQjAwMkEwMDBBQjgyMkFBMDBCQjIwMkYwMDREMQorOjEwOUJBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFNzAwQ0IwMDNFQzA1MAorOjEwOUJCMDAwQ0Y5QzBCMjEwMEQ4ODgzRUMwMENCMDAzQUMwMEZCMDA0QQorOjEwOUJDMDAwM0FDMDBFQjA0M0U4NDBGODgwM0E2MDBGOTgwM0QwMDRFMgorOjEwOUJEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNDAwRkYwMDBGRTA5MgorOjEwOUJFMDAwMDdBMTAzRTgwMkZCMDAzRkMwMEY3MDIzN0MwMEZGMDJDNworOjEwOUJGMDAwMzVDMDREQjAwMzc0MjBGQzAxM0YwMDBGRjgwM0Y4MDA5RQorOjEwOUMwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAwQ0IwMEJBNDAzQQorOjEwOUMxMDAwMEMxNDBCMkYyMkM5NDAzMkMwOEVCMDAzQUMwMEZCMDBFNQorOjEwOUMyMDAwM0VDMDBFQjAwM0U0MDBDOTAwMzIwMDJDOTAwMzEwMDRDMworOjEwOUMzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDEyNDAwOEYwMDIyNDAyNgorOjEwOUM0MDAwMkNBNTQyMjkwMDhCMDRBM0MxMERGMDBBM0MwMEJGMDBFMworOjEwOUM1MDAwM0ZDMDA4RjAwMTY5MDBEQTA1MjJEMDA4OTQwMzcyMDBDMQorOjEwOUM2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2MDQwODMwMTIwQzBDQgorOjEwOUM3MDAwMDkwMDAyMjAwMDgyNjAyMkMwMDgzMDQyNEMxMEJCMDI2MgorOjEwOUM4MDAwMkNDMDA4QjAxMjA1MDA5QjAwMjA4MjA5MzIwMjM4MDA2NworOjEwOUM5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjkwODc4MDIwRTBBNgorOjEwOUNBMDAwMDg1ODAyMTYxNDg0ODEyMUUwMjkzOTAyNUUwMEI3ODAyOQorOjEwOUNCMDAwMjhFMDA4NzgwMjdBODA5NjgxMjFFMDA5RjgwMjQ4MDBCRAorOjEwOUNDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODA5OEIxMDM4NDREQworOjEwOUNEMDAwNEQyNTEyMEMwMEMyMTAyMkM4MEEzODAzQ0MwMEYzMTAyNAorOjEwOUNFMDAwMkNDMDBDMzAwMzhBQzBEOTEwMzI0MDJEMTAwMzEyMDI1MAorOjEwOUNGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzgwRkYwMDNGNDA0RAorOjEwOUQwMDAwMEZGMDAzRjQ0MEVEMDAzRkMwMEVGMzAzQkMwNEZGMDA2RQorOjEwOUQxMDAwM0ZDMjBGRjAwQkQ0MDBGRjEwQkY4MDBFRjAwM0QwMDYzRgorOjEwOUQyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVGQTAwQ0IwMjNFQzA2MQorOjEwOUQzMDAwMEY5MDAzQTAwMENCMDAzQUNBMENCMzEzQUYyNENCNDg1QQorOjEwOUQ0MDAwMUVDODBGQjYwMzJDMDBGQTAwM0VDMDBGOTAwM0VBMDBCNQorOjEwOUQ1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzA4ODcyMDJEQzRGRQorOjEwOUQ2MDAwMEI1MDEyREMwNDg3MDAyQ0MwMDg3MEEyMUQwMEE3NDAxNQorOjEwOUQ3MDAwMjVDQjhCNzQ4MjFDMDBCNzAwMkRDMTBCNzAwMkQyMDQ1RQorOjEwOUQ4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAxODc5MDJERTBGNAorOjEwOUQ5MDAwMEI3ODAyQ0UwMDg2ODAyREU0Mjk3QTAyOUU4MDg3QTA2RgorOjEwOURBMDAwNkRFODBCNzgwMjFFMDBCNTgwMkQ2MDBCNzgwMkYwMDA4NAorOjEwOURCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDRDAwODMwMjJDRTBDOQorOjEwOURDMDAwMEIzMDAyQ0MwMDgzRTAyQ0MwMDgzMDAyMEMwMEEzMDA1MgorOjEwOUREMDAwMjRDMDBCQjAwMjBFMjBCMzA4MkNDMDBCMzAwMkQyMDRGQQorOjEwOURFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODgyQ0EwMDNFQTg1QworOjEwOURGMDAwMEZFMDAzRjgwMjhFODAzRTgwMERBMDVCQTgwMENBMDAzMQorOjEwOUUwMDAwM0U4MDBGQTAwMzNCODBGRTQyMkY4MDBGQTgwM0ZBMDQ4MAorOjEwOUUxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDIwRjgwMDNFMDA2NAorOjEwOUUyMDAwMEYwNjAzQzAwMEY4MTEzRTAwMEYwMDAzRTAwMEY4MDAyOQorOjEwOUUzMDAwMzYwMDBGODAwQkUwMDBGODA0M0UyMDBGODEwM0QyMDBCMworOjEwOUU0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAwRjkwMDNFNDA2RgorOjEwOUU1MDAwMEM5QTAzMjQ0MEM5QzAzRTQwNEM5MDAzMjQwMEY5MDBGMgorOjEwOUU2MDAwMzY0MDA3OTAwMzI0MDBDOTA0MzI2MDBGOTAwM0MyMDRGNworOjEwOUU3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjkwMjJFNDBBMQorOjEwOUU4MDAwMEE5MjAyMjUwMjg5RTAyRTQwOTg5MDAyMjQwMEI5MDAyRgorOjEwOUU5MDAwMjI0MDA5OTAwMjA0MDBEOTAwMjI0NDBCOUMwMkUwMDBGOQorOjEwOUVBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyQzAwQjkwMDJDNDAzNAorOjEwOUVCMDAwMDg5MDAyMjQyODg5MDAyQzQwNjg5MDQyMjQwQ0IxMDRBOAorOjEwOUVDMDAwMjY0MDBCOTAwQTJDODA4MTAwMjI0MENCOTI4MkM2MDA1MworOjEwOUVEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjEyMDJDNDhFRAorOjEwOUVFMDAwMEExMjAyMDQ4MDgxMjEyQzRDMDgxMTAyMDQwOEIxMTBDRQorOjEwOUVGMDAwMjA0QzA5MTIwMjI0MDE5MTIwQTA0ODBCMTAwMkMyMDEzQgorOjEwOUYwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ0MUUwRjg1MDNFMTREMQorOjEwOUYxMDAwMEM4NTAzMjE0MEM4NTAzRTEwMDgwNjgzMDFGMEY4NjgwNAorOjEwOUYyMDAwMzYxMDBGMDUwMzI5NDBDODUwMzI5NDBGODUwM0VFMDMwNQorOjEwOUYzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDAwRjkxMDNGNDQ5QworOjEwOUY0MDAwMEZEMTBCRjQ0MEZEMTIyRTRDMDM5MjBCRTQwMEY5MjBDQworOjEwOUY1MDAwM0U0QzBGOTEwM0ZDMDBGRDEwM0Y0NDBGRDAwM0U2MDY3QQorOjEwOUY2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIwQzkwMTNFNDAwNgorOjEwOUY3MDAwMEZEMDAzM0MwMEJEMDAzMjYzMEM5RTQzMjcwMEU5QzBCNAorOjEwOUY4MDAwM0U2ODBDOTgwMzM0MDBGOTEwM0Y0MDBGRDAwM0M2MDAyMAorOjEwOUY5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjIwRDgwMDJFMDAyMQorOjEwOUZBMDAwMEI4MDUyMjgwNEI4MDAyMjM4MDg4ODAzNjIwMDg4RjAyOQorOjEwOUZCMDAwMkUzQTQ4OEYwQTIwMDBCMDgwMkUwMDBCODAwMkNFMDQ3QgorOjEwOUZDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDgwODEwMDJDNDAyMworOjEwOUZEMDAwMEIxMDAyMDQwMEIxMDAyMDQyNDgxNDQyMDU4MEExMjA2OQorOjEwOUZFMDAwMkM0NDA4MTA4MjA0MDBCMTIwMkM0MDBCMTAwMkMyMDE0NgorOjEwOUZGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTAxOTkwMDJFNDAxNworOjEwQTAwMDAwMEI5MDAyMjQ0MEJCMDEyMjQxMDg5MDEyMjQwMEE5MDBCOQorOjEwQTAxMDAwMkM0MDA4MTA0MDI0MDhCOTQwNkU1MDBCOTIwMkM2MDQzMAorOjEwQTAyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNzE0QzkwNTNFNDFEMworOjEwQTAzMDAwMEY5MDBCMjQwNEY5MDhCMjQwMkM5MDBBMjQwMEU5MDA4OAorOjEwQTA0MDAwM0U0MDJDOTAwMzI3MDBGOTgwM0U2MDBGOTAwM0U4MDQwNworOjEwQTA1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDg4RjkwMDNFNDhEQworOjEwQTA2MDAwMEY5OTAzRTYwMEY5MDIzQzQwQUYxMDAzRTQxMkQ5MDQ1MworOjEwQTA3MDAwM0U0MDBGOTAwM0U1MDBGOUMwM0U2NDBGOTA4M0NBMDA5NAorOjEwQTA4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTAwQzgwMDNFMDA5MQorOjEwQTA5MDAwMEY4MDAzMjEwMEM4NDBCMjAwMEM4MDAzMjAxMEM4MDBDQworOjEwQTBBMDAwMzIwMDBDODAwM0UwODBGODA0MzIwMDJDODAwQjBBMDQ5QworOjEwQTBCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwQ0EwMDJFODBCMworOjEwQTBDMDAwMEJFODBBMzgxMDhFQzAyMjgwMERBMDAyMjgwMDBBMDQ3NgorOjEwQTBEMDAwMDI4MDI4QTAwMkZCMDBCQTAwMzdCMDQ4RUEwMjBBMDA1QQorOjEwQTBFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwOTMwMTJDQzAzNworOjEwQTBGMDAwOEJCMDQyMEM5MDlCMjAyMEMwNDgzMDQyMkMwMDgzMDA0MworOjEwQTEwMDAwMjBDMDA4MzAwMkNENDBCMzAwMjRDODA4MzgwMjBBMDAzRAorOjEwQTExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNDAwODcwMDJEQzBDNgorOjEwQTEyMDAwMEIyNDA2MTYwMDkzMDgyMUM4MDkzMTAyMEM4MDg3QTA3MQorOjEwQTEzMDAwMjFDMDE4NzIwMkRDMDBCN0I0MjRFMzA4NzgwMjI4MDBCQQorOjEwQTE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAyOTdBMDNERjA5QgorOjEwQTE1MDAwMEY0ODAzM0UwMEQ2ODAzMEUwMkM3QTAyMUU4MkMzRjAwNgorOjEwQTE2MDAwMzNFQzBDN0MwM0Q2MDBGNzgwMzVFMDBDRDgwMzJBMDJEMAorOjEwQTE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTlBNUEwRkIwMDNFQ0E3NgorOjEwQTE4MDAwMEY4MDAzRUMwMkVBMDAzRUM2MEZCNDBCRUQ0MEZCMDA2QgorOjEwQTE5MDAwQkVDMDBGQjY0M0UwMDBGQjAyM0U4MDBGOTAwM0MyMDYzNAorOjEwQTFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAyQ0Y4ODNGRTBENAorOjEwQTFCMDAwMENCOTAzRkUwMEREODEzM0UwOENGQzAzM0YwNENGODA0QgorOjEwQTFDMDAwMzNFMjRGRkMwMzNFMDBDRkMwMzM2NDBDRjgwM0MwMDAwMQorOjEwQTFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5NDQwODcwMDJGQzEwQgorOjEwQTFFMDAwMEQ2OUEyRDA0MEJDMDAyM0MwMDhGMDAyOUMwMDg3MDA4QgorOjEwQTFGMDAwMjFDMDBCNzAwQTNDMDQ4NzEwMjE0QzA4NjAwMkVBMDQ1RAorOjEwQTIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5RTAwODcwMDJEQzBEQworOjEwQTIxMDAwMDk2MjAyRDgwMDk3MDAyMUM0MDg3MDAyMEM0MDk3MDAyMAorOjEwQTIyMDAwMjFDNDBCMzAwMjU4MDBBNzA4MjE4MDA4NjA4MkMwMDBCQQorOjEwQTIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRFNDI1ODMwMDJDQzA1MgorOjEwQTI0MDAwMDkyMjAyQ0MyMEIyMDAyMEMwMjhCMDAyOEMwMDkzMDA2QQorOjEwQTI1MDAwMjBDMDBCMzA0MjZDMjA4MzA4MjBFMjA4QjgwMkM4MDRGQQorOjEwQTI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBNDAwQ0YwMDNGQzA4RgorOjEwQTI3MDAwMEQ5QzAzRTgwMERCODAzM0MwMENGMDBCM0MwNkRGMDBENAorOjEwQTI4MDAwQjNDMDBCRjAwNzY4MDBFRjQwMzJBODBDQTgwM0VBMDQ0MworOjEwQTI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDJFQzAwOQorOjEwQTJBMDAwMEY5NDAzQzU0MEZBMzAzRUMwMEZCMDAzNkMwMEVCMDBDMgorOjEwQTJCMDAwM0VDMDBGMzAxM0FENDBGQjAyM0VEMDBGQjQwM0UwMDBCMAorOjEwQTJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBFNDAwQzcwMDMxQzFCMAorOjEwQTJEMDAwOENEMDAzMzQwMENEMDAzREMwMENGMDAxN0MwMERCMDFDQworOjEwQTJFMDAwM0RDMDRDRjAwQjMwMDJDMzAwMzIwMDBGRDAwMzAwNDRERAorOjEwQTJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RTQwOEIwMDJBQzA4NgorOjEwQTMwMDAwMjg4NDQyMjI4MDg4ODAzQUMwMERCMDAyQUMwODhCMDBCRAorOjEwQTMxMDAwMkVDMDA4QjAwMjIzMjA4QjAwMjIzMDhCOEMwMjIwNDBGQworOjEwQTMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNDAwOEIwMDIyQzAwNworOjEwQTMzMDAwMDgzODg2MkEwMDg5ODAyQUMwMDhCMDAyQ0MwMDlCMDAxOQorOjEwQTM0MDAwMkVDMDA4QjA0MjI2MDA4QjAwMjI3MTBCOEMwMjIwMDAyOAorOjEwQTM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwODMwMDI4QzAzQQorOjEwQTM2MDAwMDgzMjQyMDAwMDgxMDAyOEMwMDkzMDUyOEMwODgzMDA2NgorOjEwQTM3MDAwMkNDMDE4MzAwNjAwMDA4MzAwQTAwMDBCMDAwMjAyMDE3MAorOjEwQTM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3NDAyOEIwMDMzQzBDQworOjEwQTM5MDAwMEM5MjBCMjAwMkM4MDAzQkMwMENGNTAzRkMwMERGMDE0RgorOjEwQTNBMDAwM0ZDMTA0RjAzMzIxNDBDRjAwMzIwMDBGODAwQjAwMDM4NworOjEwQTNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMTlGQzAwRkYwMDNGQzA5QQorOjEwQTNDMDAwMEZDNDAzRjAwMDlDMDAzQkMwMEZGMDAzRkMwMEZGMDAzMworOjEwQTNEMDAwMkZDMDBGRjAwM0YwODBGRjAwM0YwMDBGQzAwM0U4MDYxRQorOjEwQTNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEMwRkZBMDMxMjQ5NAorOjEwQTNGMDAwMEVGMDYzMTAwNEVGNjQzRkMwNENGMzAzMUM4MERGMDhEMQorOjEwQTQwMDAwMzdDMDBGRjAwM0YwQTBGQzAwMzEwODJDRDIwM0YwMDA5RAorOjEwQTQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMTAwQkJDMTIyNDg3NQorOjEwQTQyMDAwMDhGRDAyMkUwMDk3MDAyRkMyNDg3MTIzN0U0MEJGMDAxNgorOjEwQTQzMDAwMjFDNTRCRjUwMkVGMDBCQjQwMzZFMDA4QTgwMkUwMDQ1RQorOjEwQTQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNTg0QjMxMUEyQzlENworOjEwQTQ1MDAwMEEzMDAyMDAwMUIzMzAyOEM0MDgzMjQyMEMwMEEzMDhCRAorOjEwQTQ2MDAwQTBDQTBBMzI4MjgwMTBCMDQxMjQxMTA4MzEwMkUyMDFGMAorOjEwQTQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBNTAwQkIwMDIyRTEzNAorOjEwQTQ4MDAwMjhCMDAyMkM4MDlCMDAyRUMwMDhCMDAyNkMwMEIzMDBFNAorOjEwQTQ5MDAwMjJDMDBCQjAwMEVDMjBCQjAwMjZDMDA4ODAwMkYwMDRGNAorOjEwQTRBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFMzQwRjcwNDMyQzBFNworOjEwQTRCMDAwNEVCMDIzMkUyMEVCMDAxRUMwMENCMDAxMkMwMEZCMDA4MAorOjEwQTRDMDAwMzZDMDFGQjAwM0UxNDBGQjAwMzY5ODBDOTAwM0QwMDQ2NworOjEwQTREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjA0RkYwMjNGQzA3MQorOjEwQTRFMDAwMEZGMDAzRkUwMEVGMDIzREMwMEZGMDIzRkMwMEZGMDA2MQorOjEwQTRGMDAwM0ZDMDRGRjAwM0ZDMDBGNDAwM0I0MDBGQTAxM0Y4MDBGNgorOjEwQTUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQTIwRUIxMDM2QzBFMAorOjEwQTUxMDAwMERCMDA3RUMyMERCMDAzMkMwMENCMDAyNkMyMEVCMDA2OQorOjEwQTUyMDAwM0VDMTBEQjAwM0UwMjBEQkEwMzI5MDRDQjAwQjEwMDQxNAorOjEwQTUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRDAwOEY4MDIwQzExMQorOjEwQTU0MDAwMDg3MDEyQ0YwMDhGMDBBM0MwMERGMDAyM0MwMDhGMDBGNgorOjEwQTU1MDAwMzdDMDg4RjAwMkVDMDA4ODAwMjA0MDA4ODAwMjMyMDBGQQorOjEwQTU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QzAwQTM4MDI0ODFCMgorOjEwQTU3MDAwMDkzMDA2Q0M0MDkzMDAyOEMxMDhCMDAyQ0Y0MEEzMDBBOAorOjEwQTU4MDAwMkNDMDA5MzAwMkNEMDA5MDQwNjA0MDI4MTAwMjM4MDBGNQorOjEwQTU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDEwRTAwODc4MDIzRTAzMgorOjEwQTVBMDAwNDg3OTAyREU0MTk3ODAyOUUwMTk3ODA2OUUwMDg3ODA2RAorOjEwQTVCMDAwMjVFMDA4NzgwMkQyMDM4MzgwMjFBMDA4NjgwMjA4MDAwMQorOjEwQTVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwQTMwMDM0QzA1OAorOjEwQTVEMDAwMEQzMDQyQ0MwMUQzMTAzQUM1MEMzOTAzQ0MwMEUzMDQ1MgorOjEwQTVFMDAwM0NDNDBEMzAwM0NFMDBEMDAwMzA0MDBDMzAwMzEyMDJDQQorOjEwQTVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRjcwMDNGQzA0QworOjEwQTYwMDAwMUZGMDUzRkMwMEVGMDgzN0QxMEZGMDgzN0MwMEY3NDBCOAorOjEwQTYxMDAwM0ZDMTBGRjEwM0QwMDBGRjAwQkY4NDBGQzgwM0QwMDY3NQorOjEwQTYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFMDAwRkIwMDNFRTAyNAorOjEwQTYzMDAwMkNCRTgzRUMwMEVCNDAzRUMwMEZCNDAzRUQyMEZCMTBCQQorOjEwQTY0MDAwQjZEMjBGQjQ4M0VDMDBEQjgwMzZDMTBDOTAyMTJBMDAxNworOjEwQTY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjcwMDJGQzBGNworOjEwQTY2MDAwMDgzNjAyMEMwODg3MzAyREQ5OEI3Mjg2REQwMEIzMjBBNgorOjEwQTY3MDAwMjFDODBCNzQwMkQwMDI4NDAwQTAwMDI4MjAwMjEyMDQxQQorOjEwQTY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5QTAwQjc4MDJERTBDQworOjEwQTY5MDAwMDg3QTAyOUQwMEE3QTAyREUwMEI3ODAyOUU4MEE3ODA3QgorOjEwQTZBMDAwMjFFNDA4N0EyNjlFMTg4MzA0MjFFMDA4NzgwQTcwMDBDNQorOjEwQTZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwQjMwMDJDRTA5MworOjEwQTZDMDAwNTgzMDEyMEU4MjgzMDAyQ0MwMEIzMDAyQ0MwMUIzMDAzNAorOjEwQTZEMDAwMjBDMTBCMzAwMkMwMDg4OEQyMjAyMDA4MDAwMjUyMDQ5QQorOjEwQTZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODYwRkEwMDNGODI2QQorOjEwQTZGMDAwMENBMDAzRkEwMEFBMDAxRTgwOEZBMDAzRTgwMEYyMDA1RAorOjEwQTcwMDAwMzI4MDFGQTAwM0U4MDBEQTAwMzY4OEFDRTAwMzdBMDQ0OAorOjEwQTcxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMTAwRjgwMDNFMjA1QQorOjEwQTcyMDAwNEY4MDAzRTEwMEYwMDAzQzAwMEI4MDAzRTAwMEY4MDJFMgorOjEwQTczMDAwM0EwMDBGODA0M0YxMDBGQzBBM0QwMDBGQzAwMzkyMDA3NQorOjEwQTc0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNjAwQzk5MDNFNDAwNAorOjEwQTc1MDAwMEY5MjAzRTQwMEQ5MDAzMjQwMDQ5MDA3RTcwMEY5MTA5QgorOjEwQTc2MDAwMzA0MDBDOTA0M0U0MDlEOTgwMjI0MDJDMTAwQjAyMDRBNQorOjEwQTc3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDYwODlDMDJFNDBBQQorOjEwQTc4MDAwMEI5ODI2QzU4MDg5MDAyMjQwMjg5MDEyRTcxMEI5MDA1NgorOjEwQTc5MDAwMzY0MDI4OTAxMkM1ODNDOTgwQjY0MDA4OTAwMjIwMDAzOAorOjEwQTdBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUwNDAwODk0MDJFNDE0MAorOjEwQTdCMDAwNEI5MDAyRTQwMDk5MDBBMjQwMEE5MDAyRTUwMEI5MDAyMworOjEwQTdDMDAwRTI0MTA4OTA0MkU0MDA5RDUwQUI0QTA4RDAyNjA2MDBDMgorOjEwQTdEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDgyODEyMDJDNTA4QQorOjEwQTdFMDAwMEIxMDAyRTQwMDgxNDAyMDUwNEExNDMyQzQwMEIxNDBGMgorOjEwQTdGMDAwMjQ1MTE4MTQxMkQ0MDA4NTQwMkQ0MDA4NTAwNjAyMDEzRgorOjEwQTgwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwQzgwMDNFMDBEQworOjEwQTgxMDAwMEY4MDAyRTAwMEQ4MDAzMjAwMEE4MDAyRTAxMEY4MDA0OQorOjEwQTgyMDAwMzIwMDA0ODAwM0UwMDBEODAwM0EwMDBDQzAwMzJFMDM3RAorOjEwQTgzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwRjkxMDNGNDE1NgorOjEwQTg0MDAwMEY5NDAzRjUwMEY5NDAzRTUwMEQ5NDAzRTUxMEY5NDBENAorOjEwQTg1MDAwM0U1MDRGOTQwM0M1MDBFOTQxMzY1MDBGOTQwM0U2MDY3RAorOjEwQTg2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjAwRkRBODNBNDA0NgorOjEwQTg3MDAwMENEODIzMzYwMEU5QTAzRTc4MEY5RTAzQjY4MENERTJDNworOjEwQTg4MDAwMzI2ODBDOUIwMzM2ODI0REEwMzc2ODhDOTgwMzA2MDAxMworOjEwQTg5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFQkEwQjg0MDIwMjAzRAorOjEwQThBMDAwMDg4NTAyMjE1MTg4QzAyRTI5MEI4RTAyRTEwMEQ4RTBENAorOjEwQThCMDAwMjIzMjBEOEQyMzYxNDg5OEQ0QTIxMDI4ODQwMjBFMDQwMAorOjEwQThDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTAwQjMwMDJBNEE1RgorOjEwQThEMDAwMjgxMDRFQTQwOEExNjgyODQ0MEIxNDAyQzUwMDgxNDAyQQorOjEwQThFMDAwQTA1MDA4MTAwMjA0MDI5MTJBMjA0NDI4MTQ0QTAyMDFCMAorOjEwQThGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBQzgwQjkwMDIyNDA3NAorOjEwQTkwMDAwNDg5MDA2QTQwMEE5MDAyRTQwMEI5MDIyRTQwMDk5MDA3NAorOjEwQTkxMDAwMjI0MDA5MTAwMjY0MDI5OTAwMjI0MDA4OTAwMjA2MDRCNQorOjEwQTkyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRjkwMDM4NThBNQorOjEwQTkzMDAwMEM5MDUzODQxNEE5MDQzRTQwMEY5MDAzRTQwMEM5MDAxNgorOjEwQTk0MDAwMzI0MDBDOTAwMzI0MDREOTAwQjY0MDRDOTAwQjI4MDRFQworOjEwQTk1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDAwRjkwMjNFNDkzOAorOjEwQTk2MDAwMEYxMDQzNjQwMEQ5MDAzRTQwMEY5MDAzQzQwMEYxMDI3MQorOjEwQTk3MDAwM0U0MDBGOTAwM0M0MDJFOTA0M0M0MDBGMUMwM0NBMDA5MAorOjEwQTk4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgwQzgyMDNFMDBFOAorOjEwQTk5MDAwOEM4MDBCMjAwMEU4MDIzRTAwMEY4MDAzQTA4MkM4MDBEQworOjEwQTlBMDAwNkMwMDBGODAwMzIwMTBDODAwMzIwMjBDODAwMzBBMDRFMAorOjEwQTlCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAwODYwMDJFODBERQorOjEwQTlDMDAwNjhBODgwM0EwMDhBMDAyRTgwMEJBMDAyRjgwMDhBMDA1NgorOjEwQTlEMDAwMkU4MDBCQTAwQTNBMDA4RTEwMjM4MDA4QTAwMzBBMDBFNAorOjEwQTlFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwODMwMDJDQzAzRQorOjEwQTlGMDAwMDgzODAwMEM2MDIzMDAyQ0MwMEIzMDAyQ0M0MDgzMDBEMAorOjEwQUEwMDAwMkNDMDBCMzAwMjBDMDI4QTgwQTBFMDI4MzAwQTRBMDBEOQorOjEwQUExMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExNjIwODcwMjJEQzE5OAorOjEwQUEyMDAwNDg3MDEyN0MwMEE3MjAyREM5MEI3MjAwREMwMDg3MDgzQgorOjEwQUEzMDAwMkRDNDFCMzIwMjFEMDE4NzQyMjFDMjA4NzAwMjI4MDA2QQorOjEwQUE0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgzRTAyQzc4MDNERUM2NgorOjEwQUE1MDAwMEM1ODAzMUUwMEU3ODAzREVDMEY3RjAzOTYwMEM3ODA3MworOjEwQUE2MDAwMkRFMjA3NzkwMzBBMDZDMzgwMzAyMDhDMzgwMzZBMDI3RQorOjEwQUE3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRkIwMDNFQzAwQworOjEwQUE4MDAwMEYxMDQzOEMwMERCMzgzRUQ4MEZCMDAzQ0MwNEZCNDRERQorOjEwQUE5MDAwM0VDMDhGQjYxM0VDMDJGRjAyM0UwMDBGQjAwM0MyMDZBOQorOjEwQUFBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwRkY4MDMxRTNCNAorOjEwQUFCMDAwMEVGODIzRkUwMkRGODBCN0UyMEVGODAzN0UwMDZERDBCMQorOjEwQUFDMDAwMzNFMDBDRjg5Qjc2QzBERjg0QjNFMDA0RjgwM0MwMDBFOQorOjEwQUFEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5MDQwQjcwMjIxQzRERgorOjEwQUFFMDAwMDg3QjQyREMwMDg3MDAyMUM0MEIzMDAwMTA4MDhEMDAwMQorOjEwQUFGMDAwMjNDMDBERjIwMjA0NDI4RjAwMjlDODI4NzAwMkVBMDQyNAorOjEwQUIwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NDAwQjYwMDIzQzBCOAorOjEwQUIxMDAwMEE3MjAyOEMwMDg3MDAyMUMwMEEzMDAyMDQwMUE3MDJEOQorOjEwQUIyMDAwMjFDMDA4NzA0MjAwOEE4NzAwMjFDMDI4NzAwMkMwMDAzRQorOjEwQUIzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNTAwQjAwMEEwRDBEQworOjEwQUI0MDAwMDhCMDAyQzk0MjhCMDAyMEMwMEIzMDIyMDQwMDgzMDBGMQorOjEwQUI1MDAwQTBDMDQ5MzAwMjQ1NDA5M0MwQThENDAwMzUwMkM4MDRDMworOjEwQUI2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQkIwMDMxQzBBMAorOjEwQUI3MDAwMEVCMDIzQ0QwMERGMDAzN0MwMEVGMDAxNjgwMEUzMDAwNworOjEwQUI4MDAwMzNDMDFDRjAwMzQ1MDBEQUM4OTJENDJDQjQwM0VBMDRBNQorOjEwQUI5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNTIwRkIwMDNFQzBENworOjEwQUJBMDAwMEZCMDAzRUMwMEZCMDAzRUMwNEZCMDAzQUQwMEZCMDA1NAorOjEwQUJCMDAwN0VDMDFGMzAwM0E0ODBFOTIwM0NDMDBGMzIwM0UwMDBCOAorOjEwQUJDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBEQzAwQzcwMDMzQzJBQworOjEwQUJEMDAwMkNGMDAzM0UyMERCMDAxM0MwMEM3MDAzM0M4MEVGMDQxQworOjEwQUJFMDAwNzNDMTBGRjAyMjMwMDBDNjAwQjJDMDBDRjAwMzAwNDQ2NQorOjEwQUJGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDA2OTAwOEI0NEEyQzEwOQorOjEwQUMwMDAwODhCMDAzNkMwMDhCMDAyMkMwMjhCMDBBMkQwMEJCMDA2NgorOjEwQUMxMDAwNjJDMDBCQjAwMjI2MDI4QjgwMjJDMDA4QjAwMzIwNDAyNQorOjEwQUMyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyODAxOEEwODIyQzBGMgorOjEwQUMzMDAwMDhCMjAyNkM0MDlCMDAyOEMwNDhCMDE2MjkwNEI5MDEzNAorOjEwQUM0MDAwMjJDMDQ5QjAwNkFFMDk4QjgwMjJFMDQ4QjAwMjIwMDA0NQorOjEwQUM1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAyODIwMDIyQzA0MgorOjEwQUM2MDAwODhCMDAyNDQwMDgzMDAyOEMwMDgzMDAyMDgwMEIxMDAwOAorOjEwQUM3MDAwMjBDMDBCMzAwMjhDMDA4MzgwMjBFMDA4MzAwQTAyMDFFMworOjEwQUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2NDAwQ0EwMDMzQzA5NgorOjEwQUM5MDAwMENCMjAzMkMwMERGMDAzQkMwNENGNTEzMkMwNEVGMDA3QQorOjEwQUNBMDAwQTNDMDBERjAwM0E4NDBDQjAwQjIwMDJDQjAwMzAwMDNGQQorOjEwQUNCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRjQwMDNGQzBBNAorOjEwQUNDMDAwMEZCMTAzRjAwMEZGMDAzN0MwMEZGMDAzRkMwMEZGMDBERQorOjEwQUNEMDAwM0ZDMDA3RjAwQjdDMDhGRjAxM0YwMDBGRjAwM0E4MDYwMAorOjEwQUNFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM1RUQzMzNCQ0M1MworOjEwQUNGMDAwMENGMDAzMzA0MEZGMjUzRkNDMENGMzgzM0NEMERGNDgwMQorOjEwQUQwMDAwMzczMDRDRjMwM0ZEODBDRjI4MzNEODBDRjEwMzMwMDBFQgorOjEwQUQxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQ0QwQkIzMTIwQ0M5RgorOjEwQUQyMDAwODhGMzQyMjA1MEJGOTAyRkM0MEFGNjAyN0RDMDhGNDBBNgorOjEwQUQzMDAwMjY0MDhGRjYwMkZEMDBGRjA4MzlDODA4RjYwMkEwMDQ3RAorOjEwQUQ0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwQTEyMDI4Qzk1MAorOjEwQUQ1MDAwMDgzMDlBMDAwOUIzMDAyQ0MwMjAzMDAyNEM5MDgzMjBBOAorOjEwQUQ2MDAwMDIwODBCMzMxMkNEODA5MzIwMjREODA4MzQyMjIyMDEwQworOjEwQUQ3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTFBRTAwQkIxMDIyQzAzNworOjEwQUQ4MDAwMDhCMDAyMjYwMTNCMDE2RUMwMDhCMDAyNEMwODhCMDBERgorOjEwQUQ5MDAwQTI4OTBCQjAwMkVDMDBBQjAwNkFDMTI4QjAwMkIwMDQ3QgorOjEwQURBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTU2RTAwRThDMTNBQzBERAorOjEwQURCMDAwMkNCMDQzMjYwMEZCMDYzRUMxMENCMDBCMkMwMkNCMDA4RQorOjEwQURDMDAwMzQyMjlGQjA0M0VDMDA5QjAyMzZDMThDQjAwMzEwMDRDOAorOjEwQUREMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRkM4MDNERDBERAorOjEwQURFMDAwMkZGMDAzRkMwMEZCMDAzREMwMDczMDAzQkMwMEVGMDQ2NAorOjEwQURGMDAwM0ZFMDVFQjAwMUZDMDBGRjAwMUJDMDBGRjAwM0Y4MDA1NQorOjEwQUUwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwQ0IwMTNFQzkxMworOjEwQUUxMDAwMENCMDE3MjA4NEVCMDBCMkMxMERCMDAzNkMwMEMzMDA2RQorOjEwQUUyMDAwMzI1MDBGQjAwMzBDNDBDMzAwN0VDMDBDMzAwMzEwMDQzRQorOjEwQUUzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwOEE1ODJFRTAwOQorOjEwQUU0MDAwNDhGMDAyMkQwMEVGMDEyM0MwMDhGMDIyM0MwNDhGNjA3RgorOjEwQUU1MDAwMzY1NDBCRjAwQTNENDA4RjAwMkZDMDA4RjAwMzcyMDBGQgorOjEwQUU2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0MDAwODk4MDJDMTAzOAorOjEwQUU3MDAwMDhCMDAyNDkwMEEzQTAyNEMwMDkzMDAyNEMwMDgzQzlENQorOjEwQUU4MDAwMjA5MDQyMzAxMjREMDA4MzAwNkFDMDA5MzAwMjM4MDAyMQorOjEwQUU5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODU4MDZENjI1NworOjEwQUVBMDAwMDg3RTAyNTY0MDI3ODAyNUUwMTk3ODA2MEUwMDgzODAzMAorOjEwQUVCMDAwNjFBMDBCNzgwMjRFMDA4NzgyNkRFMDA5NzkwMjQ4MDA5QworOjEwQUVDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgyQzAyQzM2MTNDODhEQworOjEwQUVEMDAwMkNCQTEyNDkxMEUzMkMzNkMwMEQzMDUzNEM0NEMzMDAzOQorOjEwQUVFMDAwMjAwMTBGMzEwMzRDMDBDMzAxM0NDMDJEQjEwMzEyMDJGRAorOjEwQUVGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwRkYwMDNGMDBGQgorOjEwQUYwMDAwNEZGMTA5QjAwMEZGMDAzQkMwMEVGNDAxRkQyNEZGNDBFQgorOjEwQUYxMDAwQkZDMDA3RjAwM0JDMDA2RjEwM0ZDNDFFRjE4M0QwMDYxMgorOjEwQUYyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVDNDAwRTgwNDMyMDAzMgorOjEwQUYzMDAwMENCNjAzRTgwMkNCMDAzNkNBMEZCNTAzQUQwMEZCMjAwOAorOjEwQUY0MDAwM0U0MDBGQjMwM0VDODBGQkE4MzJDNjhDQjYwMzJBMDA0OAorOjEwQUY1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAyRTYwMDIwMDA4QworOjEwQUY2MDAwMDg3MzAyREMwMDg3NzAyREQwMEJGMDAyMUM4NEI3MjAyMAorOjEwQUY3MDAwMkRDMDBCNzA4MkREMjRCNzQwMzRDOTI4NzI4MjkyMDQ0MAorOjEwQUY4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDBCRTAyQUM4MEExMjBGNAorOjEwQUY5MDAwMDg3OTAwQ0UwNDg3ODA2NUUwMEI3QTAyOUUwMEI3OTBBNgorOjEwQUZBMDAwNkRBMDBCNzgwMkRFMDBCNzgwMjFFMDA4NzgwMjMwMDA0NworOjEwQUZCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRFRDgyQUJFMDIwRTQxNworOjEwQUZDMDAwMDgzMDAyRUUwNDgzMDAyQ0MxMUIzMDAyMEMwOEIzMDBEMQorOjEwQUZEMDAwNjRGNjBCQjAwMkNDMDRCMzAwMjZDMDA4MzAwMjkyMDQyMQorOjEwQUZFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjgwRUU0OTMxQTBGMQorOjEwQUZGMDAwMkNBMDAzRkEwMENBMDIzNjgwMEZBMDAzQTgwMEZBMDJCMAorOjEwQjAwMDAwM0Y5MDBGQTA2M0U4MDBGQTAwMzI4MDBDQTAyMzNBMDRCRQorOjEwQjAxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDBBRTgwMDNFMDg3MAorOjEwQjAyMDAwMEY4MDAzRTM1MEYwMDAzRTAwMEY4MDEzRTAwMEY4MDBCMworOjEwQjAzMDAwM0UwMDBGODAwM0UwMDFGODAxN0UwMDBGODAwM0QyMDA4NAorOjEwQjA0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDQwQzlBMTMyNDBCOAorOjEwQjA1MDAwMjAxMTAxQTY0MEM5ODQzNjQwMEQ5MDAzNDQwMDQxMDBGMAorOjEwQjA2MDAwMzI0MDBGOTAwQjI0MDBGOTAwM0U0MDRDMTAwMzAyMDRDNAorOjEwQjA3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwODk4MkEyNDBDQgorOjEwQjA4MDAwMDg5QzAyMjUwMDg5QzgyMjQwMDg5MDQyMjQwMDg5MjA5QgorOjEwQjA5MDAwMjI2MDBCOTAwMjI0MTBCOTAwMkU0MDA4OTAwMzYwMDAzQgorOjEwQjBBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwODkwNDIyQ0FENgorOjEwQjBCMDAwMEE5MDBBMjUwMjg5MjAyMDQwMjgxMDAyNjQwMUE5MDA3NAorOjEwQjBDMDAwMjI0QjBCOTAwMjI0MDFCOTAwMkU0MTI4OTAwMjA2MDA2OQorOjEwQjBEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkwODFBMDIwNDgwNworOjEwQjBFMDAwMEEzMjAyMDQ4MDgxMDAyMDQ0MDgxMTAyMDREMEExMjAwOQorOjEwQjBGMDAwMjA0MDBCMTEwMjA2MDBCMTMxMkM0ODA4MTQwMjQyMDExNQorOjEwQjEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQyQzg1NDMyMTQ3NQorOjEwQjExMDAwMEU4NTAzMjE0NEM4MjhCMjFBNEM4NjkzNjExNEU4NTA2NgorOjEwQjEyMDAwMjIxNDBGODY4MzIxNDBGMDQwMUUxNDBDMDAwMzJFMDNDRQorOjEwQjEzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MUQ3NDQ0RjUxMDNGNDRDQQorOjEwQjE0MDAwMEQ5MTAzNzQ0MEY5MDAzRTQ4MEI5MjAzRTRDMkQ5MTBGQworOjEwQjE1MDAwQkY0MDBGOTIwM0U1MDRGOTMwM0U0NDBGOTQ0M0U2MDZFNgorOjEwQjE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjIyQ0RBMTMzNjEzOAorOjEwQjE3MDAwMENEOEQzMzQxMENEQTgzRTYwOEU5QzkzQTcwOENEODAwOAorOjEwQjE4MDAwMzM0MDBFOUFEMzM2QTBDOTgwMzI2MDBDOTkwMzA2MDA3MgorOjEwQjE5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMzg4OEFBMDIwMjgxQQorOjEwQjFBMDAwMDg4MDIyMjAxMjg4NDAyQzI4MDg4QTAyMjIwMDg4MDA2OQorOjEwQjFCMDAwMjIwMDBCOEMwMzIxMDA4OEQwQTIzRTI4OEQwMjBFMDRCMQorOjEwQjFDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDRTIwQTE0ODIwNTJGOQorOjEwQjFEMDAwMjkxMDAyMjQwMzgxMDAyQzUyMEExMDEyODUxMDkxNDA3QworOjEwQjFFMDAwQTQ0MDBBMTI4MjQ0MDA5MTI4MjQ0MDI4MTIwMjAyMDEzRAorOjEwQjFGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwQTkxNDIyNDBFRgorOjEwQjIwMDAwMDk5MDAyQTQwMTg5MDQyQzQwMDg5MDAyMjQwMDk5MDBBRQorOjEwQjIxMDAwMjI0NDRCMTA0MjI0MTQ5OTAwMjY0MDA4MTAwMjA2MDREMAorOjEwQjIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDQwRTk0MEIyNzg5MgorOjEwQjIzMDAwMEQ5MDBCMjQyMkM5MDMzRTQxMEU5MDAzQTQwMkQ5MDBCNQorOjEwQjI0MDAwMTY1ODA2OTAwQjY0MDJEOTAwMzY0MDBDOTAwQjI4MDQ2NworOjEwQjI1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NDAwRDk4MDNFNEFGMAorOjEwQjI2MDAwMEU5MDAzNjQyMEY5MDgzRTQxMEY5MDAzRTQwMEUxMDhDQQorOjEwQjI3MDAwM0U0MDBGOTAwM0M0MDBFMTAwMzg0MDBGOTAwM0NBMDAyNQorOjEwQjI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDA5RjA0MEIwMTA4RAorOjEwQjI5MDAwNEMwMDBCMjAwMEY4MDAzQTAwMUMwMDAzRTAwMEM4MDAzRQorOjEwQjJBMDAwMzYwMDBDODAwMzIwMDBDODAwMzIwMDBGODAwMzBBMDQxRgorOjEwQjJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyODAwM0U4ODIzQTI4RQorOjEwQjJDMDAwNDhFMDAwMTk4MEJFODgyRTgwMERBMDQyRTgwMDhFMDA2NAorOjEwQjJEMDAwMjM5MDA4QTAwQTNBMDBEQTAwMzY4MDBCQTAwQTBBMDA4MAorOjEwQjJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjM4MDIwRTA3MgorOjEwQjJGMDAwMjgzMEMyMEYxMEIzNDAyOEMwMEIzMDAyRUMxMTgzNDAzRAorOjEwQjMwMDAwMjhEMjBBMzAwMjBDQzA4MzAwMjBDMDBCMzAwMjBBMDA5MQorOjEwQjMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjYwMDIxQzA4OQorOjEwQjMyMDAwMDgyMEMyMUMxMEI1MDAyREM4MEE3MjAyREM0MDg1MDgzNgorOjEwQjMzMDAwMjlBMjFBNzIyMjBDMDA5MzMwMDVDNDBCMzIyMjI4MDA3NQorOjEwQjM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxNjAwQjI4MDMxMjA3NAorOjEwQjM1MDAwMEM1ODAzMUUwMEY3ODAzOUY4MEI3QzIyQ0U0MENGODBCQQorOjEwQjM2MDAwOUI2MDJFM0IwMzFBMDBDN0E4MTFFMDBGNzgwMzJBMDI0NgorOjEwQjM3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBNDAwRkEwMDNFQzAwQworOjEwQjM4MDAwMEY5MDIzRTgwMEZCMDAzRUQwMkRCNjAzRUQwMkY5MDAzQworOjEwQjM5MDAwMzI0MDBEQjAwN0VDMDBGQjYwM0VDODBGQjUwM0MyMDY5QgorOjEwQjNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkY4MDMzQTBFOAorOjEwQjNCMDAwMENGODBCMzI0MENFODEzN0YwMENCQzAzRkUwMEZGODQ0QQorOjEwQjNDMDAwMzNFMDJDRjg4M0U2MDJDRjg1MzNGMDBDRkMwMzAwMTQ0NQorOjEwQjNEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwQkUwMDM1QzZFRgorOjEwQjNFMDAwMjgzMDAyMzA0MDg3MDAyM0MwMDg3QTAyREMwMEJFMDAwQgorOjEwQjNGMDAwMjNDMDA4NzAxMkZFMDA4NzAwMjFDMDA4RjAwMjJBMDQ1MgorOjEwQjQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5NTIwQjYwMDIwODBEMQorOjEwQjQxMDAwMDgzMTAyNUMwMTg3MDAyNUMwMDg3MjAyREMwMEI2MDAxQQorOjEwQjQyMDAwMjFEMDA5NzAwMkQ0MDg5MzAwMjBDMDA4NzAwMjAwMDBFNworOjEwQjQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjBFMDI0NjBFMAorOjEwQjQ0MDAwMDgyMDA2NDgwMTgwMDAyMEMwMDgzMDAyQ0MwNEIzMDA2OAorOjEwQjQ1MDAwMjA4NDBCMzAwMkU4MDA5QjAwMjBDMDA4MzAwMjA4MDQ2MgorOjEwQjQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwQjlFMDMyODBGOAorOjEwQjQ3MDAwNkNCMDIzNkYwMEMzMDAzN0MxM0NGMDAzRkMwMEZBMDAzRQorOjEwQjQ4MDAwQjBDMDA5RjAwM0VDMTBERjAwNzNDMDBDRjAwQjJBMDAxMQorOjEwQjQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzEwRjgwMDNFNDI1OAorOjEwQjRBMDAwMEYyNDAzQTg2MEY4MDAzQ0MxMEZCMDAzRUMwMEY5NDA4MgorOjEwQjRCMDAwM0U4MDA0QjAyM0UxMDBFQjAwM0VDMDBGQjAwM0UwMDA4QgorOjEwQjRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGNDAwRUUwMDNEMzBFQworOjEwQjREMDAwMENDMDAzMTQwMENDQTBCM0MwNEM3MDAzNUMxMERGMDBBMAorOjEwQjRFMDAwM0YwMDBDRjAwM0Y4MDBDRjAwMjNDMDBDRjAwMzAwNDAzNQorOjEwQjRGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2NDAwQkE4MTJFNTg3MgorOjEwQjUwMDAwMDg4ODAyMjc4MDg5MjAyMkMwMjhCMDAyMkMwMDg4ODM2NgorOjEwQjUxMDAwMkUyMDA1QjA2MkUzMDA4QjAwMkFDMDA4QjAwMzYwNDAxMworOjEwQjUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyNjAwQjk4MTJFNDBCOAorOjEwQjUzMDAwMDg4QzA2MjYwMDg4MDAyMkMwMDhCMDE2NkMwMDk4ODg4NworOjEwQjU0MDAwMkUyMDA4QjAwNEUzMDEwQjAwMjhDMDA4MzAwMjIwMDBDMAorOjEwQjU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwQjAwMDJDQzBGRgorOjEwQjU2MDAwMjgwMDBFMDAxMDgwMDAyMEMwMDgzMjAyMEMwMDgwMDQ2OQorOjEwQjU3MDAwMkUyMDA5MzAwMkM0MTI4MzAwMjhDMDA4MzAwMjQyMDE4NAorOjEwQjU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwRkEwMDNFMDAwQQorOjEwQjU5MDAwMkM5MTAzMjAwMDhBMDAzM0MwMENGMDAzN0MwMEQ4MDBGQgorOjEwQjVBMDAwMkU0MDBDRjAwM0UwODBDRjAwM0JDMDBDRjAwMzAwMDMwMgorOjEwQjVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGQzAwRkMwMTNGNDAwNgorOjEwQjVDMDAwMEZDMDEzRjAwMEY0MDAzRkMxMEZGNDIzRkMwOEZDMDA4RgorOjEwQjVEMDAwM0YwMDBGRjAwM0YwNDBGRjAwM0ZDMDBGRjAwM0U4MDYwQworOjEwQjVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGQzIwQ0QxMDM5QzgyQworOjEwQjVGMDAwMERDMTAzM0M4MEVGOTAyM0Q4MEZGODAwRkUwMENGODBGMAorOjEwQjYwMDAwMUZEMDBGRjkwM0ZGMDBFN0MwMzNDNDBGRjAwM0IwMDBGMQorOjEwQjYxMDAwNzAwMDAwMDAwMDAwMDAwMEMwMTBGRTAyODk0MDIzRjAwRQorOjEwQjYyMDAwMDg4NTEwM0MwMDhCMDBBM0RDNEJCMjgyRUMyMDhCMDAyMQorOjEwQjYzMDAwMjZDMDRCQjAwMkVDMTBCOTA0MkFDOTBCQjU4MEYwMDQ0NworOjEwQjY0MDAwMzAwMDAwMDAwMDAwMDAwMEM4MDVDQzAwODE2NDI4QzQ2MAorOjEwQjY1MDAwMDlCMjBBMENGMEEzMjAyMEM4MEIzMjAyRUMwMjgzMDhDNgorOjEwQjY2MDAwMkNDODA5MzIwMkNDODBBQkEwMjBDODBCMzIwMEIyMDEzQQorOjEwQjY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzEwODkwMDIyQzA1RQorOjEwQjY4MDAwMDhCMjEyMkMwMjBCMDAyMkMwMEJCODAyRUMwMDhCMDA5NworOjEwQjY5MDAwMjZDMDRCQjA0NkVDMDBCOTAwMEFDMDBCQjAwMkYwMDQ2MworOjEwQjZBMDAwNjAwMDAwMDAwMDAwMDAwMEQwMTVFQzEwQzlFMDNBQzBCNgorOjEwQjZCMDAwMEQyODAzMkMwMEVCMTAzMkMwMEY4MjAzQzQwMENCMDAxNgorOjEwQjZDMDAwM0VDMTBGQjAwNkVDMDhFOTAwQjJDMDBGQjAxMzkwMDQwMQorOjEwQjZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDE5QzAwRjVBMDNGQzBFOQorOjEwQjZFMDAwMEZFODAzRkMwOEZGMDAzRkMwOEZDMDAzRkMwMEZGMDAxMQorOjEwQjZGMDAwMzdDMDBGRjAwM0ZDMDBGRjA0M0VDMDBGRjAwM0Y4MDA1QQorOjEwQjcwMDAwNjAwMDAwMDAwMDAwMDAwMDUwMTBBQzAwRjk0MDM0QzBBMAorOjEwQjcxMDAwMERCNDAzMkMwMERCNDAzRUMwMkM4MDAzNjQwOEZCMTBGQQorOjEwQjcyMDAwM0VDNjhGQjAwM0VDMDBGOTgwMzJDMDBDQjAwQjE0MDQ5RAorOjEwQjczMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUzRTIwRTlDODM3RDQwMgorOjEwQjc0MDAwNDhBQTIyMUMwMDhCMDA2RkUwMDg4NTgyRUQ0MEJCODQ3NAorOjEwQjc1MDAwMkZDMDRCQjgwM0FENDBCMzAwMjNENDA4RjcwMjMyMDAyQQorOjEwQjc2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDE0QzAwQjE2NEE0QzBGMworOjEwQjc3MDAwMDkyMDBBMEMwNEI4MDA2Q0MwMDgzODAyQzg0MEIzODAyNQorOjEwQjc4MDAwMkNEMTBCMzAwMkNDMDRCMzAwMjhDMDA4MzAwMjNBMDBBMAorOjEwQjc5MDAwNTAwMDAwMDAwMDAwMDAwMEIwMDExRTAwQTU4MDI1RTA2MAorOjEwQjdBMDAwODgzQTEyMUUwMEE2OTAyREUyMDg3OTAyREEwMEI3ODJDQworOjEwQjdCMDAwMkRFMDAzNzg4MjlFMDBCQ0MxMjlFMDA4NzgwMjJDMTA5RAorOjEwQjdDMDAwNDAwMDAwMDAwMDAwMDAwMDQ5MDgwQzAwRjMwMDM0QzBGNQorOjEwQjdEMDAwMEQzRTAzMEMwMEYwNDAyRUMwMEMzMDQzQzgwMEYzMDBCNworOjEwQjdFMDAwM0NDMDA3MzAwM0NDODBGMjAwMzhDMDBDMzAwMzEyMDI5QQorOjEwQjdGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMTlCRDIwRjcwMDNGQzIxQgorOjEwQjgwMDAwMEZGMTBCREMyMERFMDQzRkQyMDdGMDEzRjg0MEZGMDBGRAorOjEwQjgxMDAwM0ZDMDA3RjAwM0ZDMDBGRDAwMzdDMDBGNzAwM0QwMDZFNworOjEwQjgyMDAwNjAwMDAwMDAwMDAwMDAwMEFBMDVDRjAwREMwMDNFQ0E1NgorOjEwQjgzMDAwMEZBMDAwQUM5MkM5MDAzMkMwMEZCMDExQTQwOEZCMDBFOQorOjEwQjg0MDAwMkVDMDRGQjAyM0VDMDBGOTAwM0VDNDBGQjAwM0VBMDA1NQorOjEwQjg1MDAwNzAwMDAwMDAwMDAwMDAwMEM4OTE5QzAwODQwMDAxQzAzRQorOjEwQjg2MDAwNEI3MDIyMUNDMDg3MDAyMUMwNEI3MDAyMUMwMEI3MDEyNgorOjEwQjg3MDAwMjVEODBCNzAyMkRDMDBCNjAwMkRDMDBCNzIyMkYyMDQxQQorOjEwQjg4MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDA5RTgwOTc4MEE5RTAxQQorOjEwQjg5MDAwMEJGODAyQ0UwODg1ODAyOUU4MEJGQzAyMTcwMEI3ODA2MAorOjEwQjhBMDAwMkRFMDhCNzgwMkRFMDBCNEMwMkRFODBCNzkwMkUwMDBCOQorOjEwQjhCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwOEEwQzA1NQorOjEwQjhDMDAwOEIzQzAyNEMwMDgzMDBBMEMwMUIzQzBBMEYyOUIzMDAzNAorOjEwQjhEMDAwMjRDMDBCMzAwMkNDMDBCMzgwMkNDMDBCMzAwMkQyMDQ0OQorOjEwQjhFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwREUwMDNBODBFQgorOjEwQjhGMDAwMEZFQTAyRTgwMENFMDAzQTgwMEZFMDAzMzgwMEZBMDBCOQorOjEwQjkwMDAwM0U4MDBGQTAwM0U4MDBGRTAwM0U4MDBCQTAwM0ZBMDQ3NworOjEwQjkxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwNEJBMDFFOAorOjEwQjkyMDAwMEY4MjBCODAwNEY4ODAzRTAwMEY4NjAzNjAwMEY4MDA1MQorOjEwQjkzMDAwMzYwMDBGODAyM0UxMDBGODAwM0UwMDBGODAwM0QyMDBBNAorOjEwQjk0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDMyNDA1RgorOjEwQjk1MDAwMEY5MDAzRTQwMDQ5MDAzMjQwMEI5MDAzMjQwMDQ5MDA5QgorOjEwQjk2MDAwM0M0MDBEOTAwM0U0MDhDOTAwM0U2MDBDOTAwMzAyMDRDMworOjEwQjk3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDAwQjk0MEEyNjRCMAorOjEwQjk4MDAwMEIxODAyMjUwMEQxNTAzNjUwNEU5MDBBMjQwMjg5NDBFRgorOjEwQjk5MDAwM0E1MTA4OTQwMkU1MjI4OTQ0MkU2MDI4OTAwQTIwMDAzQQorOjEwQjlBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEyNDAwQjEwODIyNDAyRgorOjEwQjlCMDAwNEI5MjgyQTUwMEE5MDgyMjUwMEExMDAyMEMwMEE5NDA0RgorOjEwQjlDMDAwNkU1MDBCOTQwMkM0MDQ4OTQ0NkM0ODg4MTAwMjQ2MDBFRgorOjEwQjlEMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDQwNDAwQjE0MEUwNDAwRQorOjEwQjlFMDAwMUIxNDBBMDQwMEI5MDAyNDQwMUExMDIyMDQwMEExMDAwQworOjEwQjlGMDAwMjg0MDBBMTAxMkM0MDA4MTAyNkM0MDA4MTIwMjQyMDE2MQorOjEwQkEwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDA4QjAwMDMyMDAyNworOjEwQkExMDAwNEY4MDAyQTE1MEUwNTAzMjE0MEVBNTIzMjE0MEU4NTA3RgorOjEwQkEyMDAwM0UxNDBGODUwM0UxNDBDODUwMUUxNDBDODU0MzZFMDM3RAorOjEwQkEzMDAwNTAwMDAwMDAwMDAwMDAwMEQ4MTlFNTAwRkQ0MDNFNTAxNQorOjEwQkE0MDAwMEY3NDAzQTUwMDVEMDAzRTUwMEE1MDEzRjQwMEQ5MDBBNgorOjEwQkE1MDAwM0E1MDBEOTAxM0U0MDBGRjAwM0U1MDBGOTEwM0E2MDZFQworOjEwQkE2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNjkwQkRFODIzNkI5MAorOjEwQkE3MDAwMEJEQTBCMzY4MEM5MDAzMjY4NDY5MDQzRTQwMDQ5MDA3NworOjEwQkE4MDAwMzI2ODBDOTAwMzI0NDBGOTAwMzI2MDBDOUMwM0M2MDExQworOjEwQkE5MDAwNjAwMDAwMDAwMDAwMDAwMDc4MTBFMTAwQjhFMEEyMTE5MgorOjEwQkFBMDAwMEI4RTBBMjMyMjg4ODAyQTMxMjg4ODAyNjIwMDg4ODAyRgorOjEwQkFCMDAwQTIzMDI4ODg4QTIyMDBCOEE4QTIzOTA4Q0EwMkNFMDQ3NworOjEwQkFDMDAwMzAwMDAwMDAwMDAwMDAwMDQ4MDVDNTA4MjEwMDAwNDBDQgorOjEwQkFEMDAwMDMxNDgyODU4MEFEMDgyMTUyOTg1MDgyMzQyMzg1MDg1MgorOjEwQkFFMDAwMjE1MjA4NTAwNjU0MDBCNTIwMjE1QTA5NTQwMkQyMDFBRgorOjEwQkFGMDAwMzAwMDAwMDAwMDAwMDAwMDE4MTFBNDAwQjk2MTIyNDBDRAorOjEwQkIwMDAwMEI5MDA2MDQwMEFEMDA2OTQwMDhEMDAyNzQwMDg1MDA2NworOjEwQkIxMDAwMDE0MDAwNzAwNjc0MDRCNTAwMjM0MDA5RDAwMkM2MDQzOQorOjEwQkIyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTRBNDAwRTkwMDMyNDAwMgorOjEwQkIzMDAwNEY5NTBCQTQwMEU5MDAzMjQwOEM5MDAzMjQwMEM5MDAwQgorOjEwQkI0MDAwMzI0MDBDOTAwMzY0MDhGOTAwMzI0MDNEOTAwM0U4MDQ1MQorOjEwQkI1MDAwNzAwMDAwMDAwMDAwMDAwMDY4MDFBNDA4RjkwMDNFNDBFOQorOjEwQkI2MDAwNEY5MDhCRTQwNEQ5MDEzRTQwMEQ5MDAzNjQwMEQ5MDE0RAorOjEwQkI3MDAwM0U0MDBGOTAwM0E0MDBGOTAwM0M0MDBFOTAwM0RBMDAxMQorOjEwQkI4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwRjg0MDM2MjBFRgorOjEwQkI5MDAwMTc4NDAzMjAyMUM4MDA3RTAyMkM4MDQzMjAwMEU4MDI4NQorOjEwQkJBMDAwM0UwMTBGODAwM0UwMDBDODQwMUUwMDBGODAwM0NBMDQ1RQorOjEwQkJCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUyQTg4QjYwMjIzQTAwQgorOjEwQkJDMDAwMEJFQzQyMkIwMEQyODA2RUIxMDhBMDIyMDgwMEVBMDRFMAorOjEwQkJEMDAwM0E4MDlGQTAwM0E4MDA4QTA0MkU4MDBCQTgwMkNBMDAwNgorOjEwQkJFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQjIwMEE0RTE2NQorOjEwQkJGMDAwOEJCNDMyNDc0NTgzOTAyQ0Y0NEIzODEyMEU0NEEzMDE4QQorOjEwQkMwMDAwMkNDMDRCMzAwMkNFMDA5MzAwNkNDMDBCMzgwMkNBMDAyRgorOjEwQkMxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwQjc0NDIxQzIzOQorOjEwQkMyMDAwMEI1NDAyNTQwNTg3MDAyQzQwOUI2QzAyMTgxMEE3MDQ4QgorOjEwQkMzMDAwMjlDMDBBNzAwMjlCMDA5NzA0MEQ4MDBCNjA4MkU4MDAwNworOjEwQkM0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwRjM4MDM1RTA1RQorOjEwQkM1MDAwMEIzODAyNTIxMDg0ODAyREEwMEZGODBCMUUwMEU2ODBENgorOjEwQkM2MDAwMURBMDBCNjgwM0ZFMDJENjgwM0RFMDBGNzgwM0VBMDJCOAorOjEwQkM3MDAwMDAwMDAwMDAwMDAwMDAwMDBBMURBQzAwRkIwMDNFQzFGNworOjEwQkM4MDAwOEI5MDBCODAwQUI4MDEyRTAwMENCMDAzRTgwMEZBMDA3QworOjEwQkM5MDAwM0VDMDBGQTA0M0VDMDBFQjAwM0U4MDBGQTYyM0MyMDI4MworOjEwQkNBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRTAwRkU4MDMzMjA2MAorOjEwQkNCMDAwNEVDOTEyRjY1MEVGOTAzRkUwMEMxOTAwQjY0MkNGMjE2QQorOjEwQkNDMDAwM0ZFMDBFRjkwMkU2QzBGRjgwM0ZFMDRDREMwMzQwMDA5RAorOjEwQkNEMDAwNzAwMDAwMDAwMDAwMDAwMEFBMTE5NDAwQjcwMDgxNDAyRAorOjEwQkNFMDAwMDgwMzAyMTRDNDg3MDEyREM4MDg2QTEyMzg0MDg3MDI2RAorOjEwQkNGMDAwMkRDMDA4NzExMkQyODBCNzAwMkQ4MDA4NjAwMjJBMDQ3RQorOjEwQkQwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwQjcxMDIxODBDRgorOjEwQkQxMDAwMDhGNDEyOTQwNEE2MDAyQ0MwMThEMjAyMTQ0ODg2MTAwRAorOjEwQkQyMDAwMkQ4MDBBNjEzMkQ0MDBCNjE4MkRDNDA4NTgwMjAwMTBDNAorOjEwQkQzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDNDAwQjMwMDIwQzA1OAorOjEwQkQ0MDAwNDBCMDIyMDQwMDgyODEwQ0MwMDgzMDBBMEEwMDhBMDAzOAorOjEwQkQ1MDAwMkVDMDA4QTAwMkM0MDBCQjAwMkU4MDA4MjAwMjA4MDRFOAorOjEwQkQ2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRkIwMEEwQzBERgorOjEwQkQ3MDAwMjQ5NDIzQUMxMEVCQTAwRUMwMENCMDAyMkUyMEM5MDBGRQorOjEwQkQ4MDAwMkU0MDBFOTAwM0VDMDBGOTgwM0U0MDZDQTAwQjJBMDQ3QworOjEwQkQ5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBDQzAwRkIwMDNFQzBGRQorOjEwQkRBMDAwODk5MDAzMkMwMEZCMDIzRTQwNEZBMDAzNkQwMUZCNDEzNAorOjEwQkRCMDAwM0VDMDhGQjQwM0U4MDBGQjIwM0U1MDBGQTQwM0UwMDAxOAorOjEwQkRDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQzMyMEIyQzBFMQorOjEwQkREMDAwMEREMDAzMzgwMENEMDAzRjgwMERGMDAzRkMwMEZEMDJDNAorOjEwQkRFMDAwMzYwMDBDRDAwMzNGMDhGQzA0MTJDMDBDQTAwM0MwNDQ3MgorOjEwQkRGMDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2QzAyOEJDODIyQzBFQworOjEwQkUwMDAwMDg5ODBBMkE0MDg5MjAyRTAxOEVCMDEyRUM4MEJCRjBERgorOjEwQkUxMDAwMjJFNTA4QkQwMjJFMDBCQjkwMjJFRDA4QTIwMkUwMDA0MAorOjEwQkUyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwOEIwMTIyMDBBMworOjEwQkUzMDAwNDlBODFFMDQwMDhCMDEyRUMwNDk5MDAyRTQwMEI5MDBGRAorOjEwQkU0MDAwMjI0MDBBOTAwMjJDMDBCOTAwMkE0MDA4ODAwMkUwMDAzQgorOjEwQkU1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDAwODEwMDIwNDBCMQorOjEwQkU2MDAwMDgyMDAyMDQwMDgzMDAyQ0MwMEEyMDQyQ0MwMEIzMDA0QQorOjEwQkU3MDAwMjBDMDAyMzAwMjA4ODRCMzA0MDg0MDA4MjAwMkMyMTEyNgorOjEwQkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwOEIwMEIyODA3QworOjEwQkU5MDAwMERCMTAzMjQwMkNCMDEzRUMwNEQ5MDQzRTQwMEY5MDBGNAorOjEwQkVBMDAwQjIwMDJFOTAwQjJDODBGODAwQkFDMDJDODAwM0MwMDM4NworOjEwQkVCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGNDAwN0QwMDNGQzAwNQorOjEwQkVDMDAwMEY3MjAzRDQwMEZGMDAzRkMwMEVGMTQ3RkMwMEZGMDBEQgorOjEwQkVEMDAwM0JDMDBERjAxM0ZDNTBGRjAwMzdDMDBGRTAwM0U4MDYzNQorOjEwQkVFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMEM0Q0MzMzNGMDQyNworOjEwQkVGMDAwMkNGNjAzMzg2MENDOTBCMzIwMEZGMTIzRjA2MEZGMDFFMworOjEwQkYwMDAwMjNDODBDRjI4QTNDODFERjMwM0Y2NDBDRDgwMzMwMDQzNAorOjEwQkYxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFMEMyOEEzMDJFMTg3RgorOjEwQkYyMDAwMDhGNTMwQTU5NDU4MjIyMjIxNEJGMzAyRTEwMDlGNzBCRQorOjEwQkYzMDAwMkJFNDBBRjQxMjFENDBBRjcyMkM0OTJGMzA4MkEwMDY2OAorOjEwQkY0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDNDgwODBBMDJDOTgwQworOjEwQkY1MDAwMDgzMjIyMDgwMDgyMDAyODAwMDMzMjAyQzA4NEIzMEM5OQorOjEwQkY2MDAwMjBDMDU4MzI5MjhDMzBBMzIwMkVDMDQ4MTI0MjYyMDE2OQorOjEwQkY3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBODAwOEIwMDJFMjBGQgorOjEwQkY4MDAwMDhCMDBBMjAwMTk4MDAyQTIyMEJCMDAyRTYwMDlCMDBBQworOjEwQkY5MDAwMjJDMDBBQjAxMkFDMDRBQjAwMkVDMDAzQjAwMkYwMDAwNQorOjEwQkZBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMTVFNTAwQzgwMDNFQjA4MQorOjEwQkZCMDAwMENCMDAzMjkwMEM4MDAzQTIwNEZCMDAzRTIyMEZCMDE3NworOjEwQkZDMDAwQjBDMDBDQjAwMzJDMDBGQjAyM0M0MTBDOTA0MzQ4MDQ3MQorOjEwQkZEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFBMjgwRkU0MDNFMDA3MgorOjEwQkZFMDAwMEZGMDYzRUMwMEJGQzQxNzQyMEZGMDAzRUMwMEZGMDAzQQorOjEwQkZGMDAwMUZDMTBGQjAwMzVDMDBGQjAwM0Y0MDRGRjAwMEI4MDBEMgorOjEwQzAwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBNTAyQzgwMDNFOTA0MworOjEwQzAxMDAwMkNCMDBCMDEwNkNCMDEzRTUwNUZCMDEzMjExMENCMDBCQQorOjEwQzAyMDAwN0VDMDBDQjAwQjJDMDBDQjAwMzJDMDBDOTAwMzEwMDQ2RgorOjEwQzAzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyODAxOEJEMDJDMzQyRgorOjEwQzA0MDAwNDhGRjAyMzAwMEFBMDQyRTY5MEZGMDAzNjgxMERGMDBEOQorOjEwQzA1MDAwMkZENDBERjAwMjNFMDA1RjA0QjZDMDA4QjAwMzcyMDA5QQorOjEwQzA2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2OTkwODE4MDJDMDA4NQorOjEwQzA3MDAwNDhCODAyMDgwOTk5MDA0Q0IwMEIzMDAyMEMwMDhCMDA0NAorOjEwQzA4MDAwMkNDMDA5QjA0MDBDNDA4MzAwMDA0MDBBOTAwMjMwMDBGMAorOjEwQzA5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwODQ4ODJERTRGQworOjEwQzBBMDAwNDgzOTAyMTYwMEI0ODAyREUwMEE3QjA2NUUwMDk3ODBCNgorOjEwQzBCMDAwMkRFMjA5NzgwMjFFOTA5NzgwMjU2NDhBNzgwMjQ4MDA1NAorOjEwQzBDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwRDAwODExMDJDOTY4MAorOjEwQzBEMDAwMDgzMTIzMEMwMDkwMjAzQ0M0MUJCODAyMDg0MEMzMDA2OAorOjEwQzBFMDAwMkNDNDBEMzAwMzBFNDBDMzEwMzBDMDRFMTAwNzFBMTI3RQorOjEwQzBGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURCQzAwN0QwNTNGQzVBMQorOjEwQzEwMDAwMEZCMTBCRjQwMEVGMDAxRjQ1MEZGMDQzRkMwMUZGNDA5RgorOjEwQzExMDAwM0RDNDFGRjAwNkZDMTBGRjAwM0JDMTJERjEwM0QwMDYwQgorOjEwQzEyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA0Q0IwNDNFQTA2NQorOjEwQzEzMDAwNDRCNjAzMjgwNENCODAzMjgwMEZCMzkzNjAwOEZCMjAwMQorOjEwQzE0MDAwM0VEMjFGQjMwMzJEODBGQjYxN0U0MDhDOTgwMzJBMDBGMgorOjEwQzE1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE4NDBDODYwNTJEQzAwRQorOjEwQzE2MDAwMDhGNDgyOEM5MDg1MDBBMUMwMEJGMDAyNUMwMDM3MDBCRgorOjEwQzE3MDAwMkREMDBCNzEwMjFDQzhCNzQ4MkQ0MDBBNzAwMjEyMDQ2MgorOjEwQzE4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDJEQTExQworOjEwQzE5MDAwNjA3ODRBMTZEMEE3ODAyOUUwMEI3ODUyOTYwMUI3OTBCNAorOjEwQzFBMDAwMkRFODBCN0EyMjVFNDBCN0EwMkZFMTQ4NTAyMjMwMDBFNAorOjEwQzFCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzEwODM4NDJDQzAzNAorOjEwQzFDMDAwMDgzMDAyQTQxMDgzQ0IyOEUwMEIzMDJBNEY0MDkzMDBBNAorOjEwQzFEMDAwMkNDMDBCMzAwMjRDMTBCMzAyMkNDMEFBMzAwMjEyMDQ0NworOjEwQzFFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCODAwQ0VBMDNGODAzRAorOjEwQzFGMDAwNENBMDJCM0EwMENFNDAzQkI4MEZBMDAzQjkwMEJBMDBDOAorOjEwQzIwMDAwM0U4MDBGQTAwMzY4MDBGQTAwN0U4MDFDQTAwQjNBMDQ1OQorOjEwQzIxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAyRjgwMDNFMDQ1QQorOjEwQzIyMDAwOEYwMDAzRTA0QUY4MTAyNjE4MEY4MDAzQTA4MEY4MDI2MAorOjEwQzIzMDAwM0UwMDhGMDAwQkEwMDBGODAyM0UwMDBGODAxM0QyMDBEQQorOjEwQzI0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDIwQzkwMDMyNDA2NworOjEwQzI1MDAwNEQ5OTAzMjQwMEM5MDIzRTY4MEY5MDAyMjQwMEU5MDBCMgorOjEwQzI2MDAwMzA0MDhDOTAwMzA0NDBDOTAwM0U0MDBDOTAwMzAyMDQwRgorOjEwQzI3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDIwODkwNjIyNTA4NQorOjEwQzI4MDAwOEI5Q0MyMjQwMEQ5MDEyRTQwMEI5MDQyMjQwOEI5MDE5NgorOjEwQzI5MDAwMjI0NjBEOTAwQTI2MDI4OTAwMkM0MDBBMTAwMjIwMDAzNgorOjEwQzJBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDEwNjAwOTE0MDQyNzBEQworOjEwQzJCMDAwMEI5MDEyMkMwMjhCMDAyRTQwMEIxMDIyRTQxMEIxMDBDOAorOjEwQzJDMDAwQTI0MDQ4OTAxMjI0MDg5OTAyMkU0MDA4OTAwMjA2MDBDRAorOjEwQzJEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDkyOTEyMEUwNDhBMworOjEwQzJFMDAwMEIxMjAyMDQwMjkxMTAyQ0MwMEIxMDA2ODRDMEIxMTA3NgorOjEwQzJGMDAwMjA0ODg5MTEwMjA1ODA5MTQwMkU0NDJBOTQwMjAyMDFBRgorOjEwQzMwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MTQwRDg1MDMwMTQ1QgorOjEwQzMxMDAwMEY4NTBCMjFFMDgwNDAzRTAwMEY4NzhCRTEwQ0Y4NkMwRAorOjEwQzMyMDAwMzIwMDg0MDY4MzIwMDREODI4M0UxMDBDMDAwMzJFMDMxQworOjEwQzMzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQwQUQxMDNGNDU4MworOjEwQzM0MDAwMEY5MTAzRkMxODdEMjAxRjQxMEY5MDAzNzRDMEY5MjE0OQorOjEwQzM1MDAwM0U0NDBGOTIwMUU0NDBFOTAwM0Q0ODRGRDAwM0U2MDYxOQorOjEwQzM2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDVGNzgwRkRFMDMzNzA0OQorOjEwQzM3MDAwMENEQTAzMjYyMEM5NDAzMTQwMEU5QTAzMjQwMEY5ODBDQworOjEwQzM4MDAwM0I2MDBGOUM4MzM2QTBGOUExQjA0MDBGOTEwM0M2MDAxQgorOjEwQzM5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFMjkwQjhBMDIyMjhEMQorOjEwQzNBMDAwMjg4ODBBMjIwMjg4QTAyMjAwMDg4ODAyQzI4MEI4ODg1MQorOjEwQzNCMDAwMjIwNDBCOEUwMzIyODBCOEQwMkEyMDBCODgwMkNFMDRFMAorOjEwQzNDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNTgwQjE2MTAwNTg4MQorOjEwQzNEMDAwNDgxNjhBMDRBMDg5MDEyMjQwMUExNDg4MDQyMEIxNDAxQQorOjEwQzNFMDAwMjg0MDBCMTAwQTA0MjBCMTJDMjA0QTBCMTIwMkMyMDE3MworOjEwQzNGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNTkwQkI0MDIwNDAxMAorOjEwQzQwMDAwMDg5MDAyMjQ0MDg5NDI2MjU4MDgxMDAyRTUwMEI5MDNFRQorOjEwQzQxMDAwMjJDMDBCOTAwMkE0MTQzMTAwMkE0NDBCOTAwMkM2MDRERgorOjEwQzQyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTBBNTAwRjkwMTMyNDBFQgorOjEwQzQzMDAwOEM5MDAzMjcwMEMxOTQzMDQwMEU5MDAzMjQwMEY5MDAzMworOjEwQzQ0MDAwM0E0MDBGOTAwMzI0MDBGOTAwMzI2MDA3OTAyN0U4MDU3NgorOjEwQzQ1MDAwMjAwMDAwMDAwMDAwMDAwMDI4MDBBNDE4RjkwMEJFNDRERAorOjEwQzQ2MDAwMEY5MDAzQzQwMEY5MDBCRTYxOEY5MDAzQTQwMEYxMDA5NworOjEwQzQ3MDAwMUU0MDBGMTAwMzI0MDhGOTAwN0U0MDBGOTAwM0NBMDBFRAorOjEwQzQ4MDAwMjAwMDAwMDAwMDAwMDAwMDI4MTBBMTgxRjgwMDMyMDQwNAorOjEwQzQ5MDAwMEMwMEQzMjEwMEQ4MDQzQTE0OUM4MDAzMjEwMUM4MDA2OQorOjEwQzRBMDAwMzYwMDBDODAxMzIwMTBDODAwMzIwMDJDODAwM0NBMDQxMAorOjEwQzRCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDQzQTAwQkU4NDIzODUwQworOjEwQzRDMDAwMDhFQzgzNjgwNDhBMDAyRjkwNERBMDAyMjgwMURBMDA0RQorOjEwQzREMDAwMjNCMDBBQTAwMjJBMDhEQTAxMjI4MDBGQTAwMkNBMDBCMworOjEwQzRFMDAwMDAwMDAwMDAwMDAwMDAwMDI4MDU0QzAwQkJGMDIwQzA0OAorOjEwQzRGMDAwMDgzQzBBMEMwMDkzMDEyOEM4ODkzMDA2NEMwMDgzMDJDRQorOjEwQzUwMDAwMkNGNjA4MzAwMjA0MDBBMzAwMjBDMDBBMzAwMkNBMDA0MgorOjEwQzUxMDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRDExQjMwMEEwQzA2OQorOjEwQzUyMDAwMDg1MDAyNUMxMDg3MDE2RDgxNDkzMjUyMUVDMzg3MDA5QQorOjEwQzUzMDAwMjhFMDBBMzIyNjFGMDAzNzAwMjNFMDBCNzIwMkM4MDBGMQorOjEwQzU0MDAwNDAwMDAwMDAwMDAwMDAwMDI4MDgxMjAwQjc4MjMxMjBERgorOjEwQzU1MDAwMDgwODM3MEYwOEQ3RTAzOTYwMTk3QTBCNUUwQzgzQjJGMAorOjEwQzU2MDAwN0RFMDBDN0EwQjNFMDJBRkEwQjFFMDBFN0EwM0NBMDI2NgorOjEwQzU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBMDEwRkIwMDNFQzBFRAorOjEwQzU4MDAwNkZCMDQzRUMxMUZCMDAzRTQwMEZCNTAzRUMyMEZCNTBCNQorOjEwQzU5MDAwMzYwMDBGQjU0M0U1QTFEQjc4M0VDMDBGQjQwM0MyMDZGOQorOjEwQzVBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMDVGRTAwRkZBMDNGQTA2QQorOjEwQzVCMDAwMERDOTEzM0UwMENGRDAzREU4MDJGRjEzM0UwMENGODJFRAorOjEwQzVDMDAwM0Y2MDBDRkMyMzNFMTBFRjgwMzNGMjBDRkM4MzEwMDAyNAorOjEwQzVEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzQwQjUwMTJERDBBMworOjEwQzVFMDAwMDg1ODAyMUM0MDU3MTAyRDVBMjgzMTAyQkMwMTk3MTBFMAorOjEwQzVGMDAwMkQwMDBBNzAwMjg0MDRDRjAwMjlDMDBBRjAwMjJBMDQyOAorOjEwQzYwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5MDAwQjcyQTJEODJBQQorOjEwQzYxMDAwMDg0MjIyM0MwMDg3MTEwRENDODgzMjAyMUQwMDk3MDA5MQorOjEwQzYyMDAwMkNDNDA4MzAwMjE0MDBBNzAwMjNDMDA5NzA4MjAwMDA0NworOjEwQzYzMDAwMjAwMDAwMDAwMDAwMDAwMDYwMTRDMDIwQjAyMDJDNTAzQQorOjEwQzY0MDAwMDgxMDAyMkRDMDkzRTIyQzIxMDgzMDAyMEUwODkzMDAzRQorOjEwQzY1MDAwMkM0MDBBMzAwMjhDMDA5MzAwMkFDMDBCMzAwMjE4MDREMAorOjEwQzY2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBQzAwRjhDMDNFODBCQgorOjEwQzY3MDAwMkNBMDBCM0YwMEM3NjAzRUQwMENGMDBCM0MwMENGMDA1RAorOjEwQzY4MDAwM0U4MDBDRjAwQjJDMDBFRjAwMzNDMTBERjAwQjJBMDRBMAorOjEwQzY5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzQwRjM0MDNFNTBDRAorOjEwQzZBMDAwOEVCNDAzRUMxMEZCMDAzRTA5MEZCMDEzRUM0MkVCMDAxQworOjEwQzZCMDAwM0MwMDhGQjAxM0M0MTFFMzAwM0VDMDBFQjAwM0UwMDA5NQorOjEwQzZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkM4MDMxMjI1RQorOjEwQzZEMDAwMENBODAzM0MwMENGMDAzM0EwMEVGMDAzREMwMENGMDAxOQorOjEwQzZFMDAwMUZGMDBDRjAwM0Y0MDBDRjAyMzNDMDBDRjAwMjAwNTQzMgorOjEwQzZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2RjAwQkJDMDIyNzAwOQorOjEwQzcwMDAwMEFCOTQyMkMxMDhCMDA3NjExODNCMDAyRUMxMEFCMDBGQQorOjEwQzcxMDAwMkVCMDBBQjAwM0VDMDQ4QjAwQTJDMDI4QjAwMjIwNDA2NworOjEwQzcyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDU2NTQwQjgyMDIyNDQ5MQorOjEwQzczMDAwNTgzNDBBMkMwMDhCMDAyMjg0NEJCMDAyRUMwMDhCMDA5MgorOjEwQzc0MDAwNkVDMDA4QjA0MkU2MDQ4QjAwMDJDMDA4MzAwMkEwMDFBRgorOjEwQzc1MDAwNDAwMDAwMDAwMDAwMDAwMDBDMDAwMDAwQjEwMDIwQzBGQworOjEwQzc2MDAwMEEzMDBBMEMwMDhCMDMyNDgwMEIzMDAyQ0MwMEEzMDA5QgorOjEwQzc3MDAwNkMwMDBBMzAwMjhEMDA4MzAwMjBDMDE4MzAwMjgyMDA1NQorOjEwQzc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2NDAwRjgwMDMwMDAxNQorOjEwQzc5MDAwNENBMDBCMkMwMkNGMDAyMjQwMEVGNTAzRkMwMENGMDE3MQorOjEwQzdBMDAwM0UwMDBDRjAxMkREMDJDRjAyMzNDMDRDRjAwQjgwMDNEMAorOjEwQzdCMDAwMTAwMDAwMDAwMDAwMDAwMEE0MTlGMDAwRkMwMDNGNDA0MQorOjEwQzdDMDAwMEZCMTAzREMwMEJGMDEzRjAwMEZGMjIzRkMxMEZGMDA5QworOjEwQzdEMDAwM0YwMDBGRjAwMUY0ODRGRjAwM0RDMDRGRjAxMzY4MDZFNgorOjEwQzdFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGRTQwREY4MDMzQzg3QworOjEwQzdGMDAwMENGODAzM0MwQTlGQzAzRkYwMDhCODAyM0UwMEZGODBERgorOjEwQzgwMDAwM0ZEODBDRjk2MTJFNDA2RjkwM0ZFNDhGRjE4MzMwMDBFOAorOjEwQzgxMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFQzA0OEI4MDIzRjAwQQorOjEwQzgyMDAwMDhCODAyM0Q0MEFCMDAwRTA4NDgyMjgyNkMyMEJCMDBENQorOjEwQzgzMDAwMkZEMDQ4QjAwMjJDMDBCQjAwMkVDMTBCQjAwMjMwMDQzOAorOjEwQzg0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDQzAyODMwMUEwQzU3NAorOjEwQzg1MDAwMDhCMDRBNENBMDgwMjQyOEM4MDkzMjAyNEMwMEIzMDgxMgorOjEwQzg2MDAwMkVEMTI5QjIzQTBDODRBMzIxMkNDODRCQjIwQTMyMDEzMgorOjEwQzg3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA4OEIwMDIyQzA1MgorOjEwQzg4MDAwMDhCMDAyNEMwMDg4MjEyNDIxMDlCMDQ2NkMwMEJCMDY4OAorOjEwQzg5MDAwMkVDMDA5QjAwMjJDMTBCQjAwMkVDMDBCQjAwMjMwMDQxOQorOjEwQzhBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwQ0IwMDMyQzAyQQorOjEwQzhCMDAwMENCOTAyNkMwMENCQzgzQUMwMkQ5MDBCMkMwOEZCMDBDMQorOjEwQzhDMDAwM0VDMDBEMzA0MjJDMDBFQjAwM0VDMDBGQjAxMzAwMDQwMAorOjEwQzhEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCQzAwRUYwMDNEQzA1RgorOjEwQzhFMDAwMEZGMDAzQkMwNkVGODIzRjQwNEVDOTgzQkMwMEZGMDAzRgorOjEwQzhGMDAwN0ZDMDFDRjAxMzdDMDBGRjA0M0ZDMDBGRjAwM0Y4MDA2MgorOjEwQzkwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwMjNFQzBEMAorOjEwQzkxMDAwMEVCMDAzQUMyMEQ4NDAzRUMwOEM5MDBCMkMwMEZCMDAyNgorOjEwQzkyMDAwM0VDOTBEQjAzM0VDMDhGQjAyM0VDMDBGQjAwQjU0MDRGRgorOjEwQzkzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyQzAwQjMwMDJGQzAzQworOjEwQzk0MDAwMEIzMDEyRkMwMDg4QTAyRTQwMjg5NDAyMkMxMEJCMDQ0RgorOjEwQzk1MDAwMkRDMDI4QjAwMkVDMDBCQjAwMkVDMDBCNzIwNjMyMDBDNgorOjEwQzk2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU2QzAwQjMwMDJDRTA3NworOjEwQzk3MDAwMEExMDAyQ0QwMDkzMDAyQ0MwMDhCMDAyNEMwMEIzMDA5NgorOjEwQzk4MDAwMjhDMDA4MzAwMkNDMDBCMzAwMkNDMDBCMzAwMjNBMDBBMworOjEwQzk5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExRTQwQjc4MDJERTI4MgorOjEwQzlBMDAwMEI1ODAyREUwMjk3ODEyRkEwMDg2ODAyNUUwMEI3ODE1MworOjEwQzlCMDAwMkZFMDA4NzkwMkRFMDBCNzgxMkRFMDBCNzgwMjNDMDAwMQorOjEwQzlDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwQzAwRjMwMDNDQzBEQworOjEwQzlEMDAwMEUzMjAzQ0M4MEQzMDAzQ0M0MEMzOTAzNEMwOEYzMUE0QworOjEwQzlFMDAwM0NDNjBEMzAwM0NFMjBGMzA4M0NDMDBGMzAwMzUyMDI4QQorOjEwQzlGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMURBQzAwRkIwMDJFQzA0NQorOjEwQ0EwMDAwMEJCMDAzQ0MyMEVCMDAzQzgwMEZCMDQxQUMwMEZCMDAyRQorOjEwQ0ExMDAwM0NDMjBGQjAwM0VDNDBGQjAwM0VDMDBGMzAwM0QwMDYxOQorOjEwQ0EyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFRTAyQzM4MDMwQ0VDOAorOjEwQ0EzMDAwMEQ5ODAzQUNBMEMzODBCMkMwMEZCMDAzRUMwMEZCMDBBNAorOjEwQ0E0MDAwM0VEMjRGQjAwOTJFMDg0QjAxM0VDMDI0QjAwM0VBMDA4RAorOjEwQ0E1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5QzAwODcwMTIxQzAwOAorOjEwQ0E2MDAwNDg1MDEyNEMwMDg3MDAzNUMwNEI2MDAyREMwNEI3MDEwRgorOjEwQ0E3MDAwMkRDMDBCNzAwMjFDMDA4NzAwMkRDMTBDNzIwMkYyMDQ0NQorOjEwQ0E4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwODc4MDIzRTBERQorOjEwQ0E5MDAwMDhGODAyREU4MDhGODEyMUUwNEI3ODEyREUwNDM3ODBCNworOjEwQ0FBMDAwMkRFODBCRjgwMjNFMTg4NzgwMkZFMDA5NzkwMkUwMDA5QworOjEwQ0FCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzAwODMwMEEwQzA0QgorOjEwQ0FDMDAwMjgzMDQyNEMwMDgzMDAyNEMwMEIzODA2Q0MwNEIzMDA0RAorOjEwQ0FEMDAwMkNDMDBCMzAwMjBDMDI4MzAwMkNDMDA4MzAwMkQyMDRBMAorOjEwQ0FFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVBODAwQ0EwMDMxODBGNgorOjEwQ0FGMDAwMDhFMDAyOTgwMkNFMDAzMzg0MEJFQTAzRTgwMEJBMDA5MworOjEwQ0IwMDAwM0Y4MTBGQTAwMzI4MDBDQTAwM0U4MDBERTAwM0ZBMDQxNQorOjEwQ0IxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDAwRjgwMDNFMDA1NworOjEwQ0IyMDAwMEU4NDIzQTAwMEY4MDAzQTEwMEY4MDAzRTAwMEY4MDAwNAorOjEwQ0IzMDAwM0UxMDBGODAxM0UwMDBGODAwM0UwMDBEODAwM0QyMDA4RAorOjEwQ0I0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTBFNDAxRjkwMDNFNDA0MQorOjEwQ0I1MDAwMEM5QTEzRTQwMEM5MDAzRTQwMEM5ODIzRTQ4MEY5MDBDRAorOjEwQ0I2MDAwM0U0MDJDOTgwMzY0MDBGOTAwM0U0MDBDOTAwM0MyMDQ0MAorOjEwQ0I3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA0QjkwMDJFNDA3MgorOjEwQ0I4MDAwNjg5QzIyRTQwMjg5MDE3QzUwOEQ5ODIyRTQ4MEI5MjBCRgorOjEwQ0I5MDAwMkU1MDQ4MTAwQjI1MDBCOTQ0MkM0MDI4OTAwMEUwMDA4RQorOjEwQ0JBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjkwMDJFNTBGRAorOjEwQ0JCMDAwMDg5MDAyRTQwNDg5MDAyRTUwMEE5MjAyRTQwMEI5MDBCMQorOjEwQ0JDMDAwMkM0MDA4OTEwMjI0MDBCOTAwMkU0MDA4OTAwMkM2MDBCMworOjEwQ0JEMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNTAwQjEwMTJDNDBFNgorOjEwQ0JFMDAwNDgzMDAyRTQwMDgxMDAyQTQwNEIxMDAyQzQwMEIxMDAyQQorOjEwQ0JGMDAwMENDMDA4OTAwMjBDMDBCMzAwMkU0MDQ4MTIwMkMyMDE4MworOjEwQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2MDAwQjgwMTNFMDAwOAorOjEwQ0MxMDAwMUM4MDA3RTE1MEM4NTAyRTE0MUU4NTAzRTE0MUY4NTBENgorOjEwQ0MyMDAwM0UxNDBDODUxMzIxNDhGODUwM0UxNDBDODU0M0VFMDM0NgorOjEwQ0MzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MTlDNDAwRjkwMDNFNTFBNworOjEwQ0M0MDAwMEY1MDAzRTUwMEZEMDAzRjQwMUREMDAzRjQxMEY5MDAzNAorOjEwQ0M1MDAwM0U1MDBGNTAwMDk0MDBGOTAwM0Q0MDBGOTEwM0U2MDY0RQorOjEwQ0M2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFFNDUwQ0QwMDMxNjBBOQorOjEwQ0M3MDAwMDREMDAzMzY4MEMxNDIyRTUwMUY5NDAzRTUwMEU5MDIyMAorOjEwQ0M4MDAwMkU3MjBBOTAyMjA1MDhFOTQwM0U1MDQwOUMwMzI2MDA3RgorOjEwQ0M5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBDMjgyODgwMDIyMTVEOQorOjEwQ0NBMDAwMDg4MDAyMjM1ODg4QTAyRTI4MEJBQTQyRTI4Mjg4ODA5RQorOjEwQ0NCMDAwMkUzODI4ODgwMjIyODBCOEEwM0EyODA4Q0QwMjBFMDQxNworOjEwQ0NDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEwMEE2NDBGQworOjEwQ0NEMDAwMjgxMDBBMjQyNjk1MDAwRDQwMEI1MDAyNzQwMDg1MDg4OAorOjEwQ0NFMDAwMkY0MDc5RDJBQTE0MDBBNTAxMkY0MDM4NTAwMjEyMDExQQorOjEwQ0NGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDA0ODkwMDI2NDAwMAorOjEwQ0QwMDAwMDg5MTAyMjQxMDlEMDgyRjQwMEJEMDAyRjQwMDhEMDJFMAorOjEwQ0QxMDAwMkY0MDA5RDAwMDM0MDBCRDAwMEI0MDE4NzAwMjA2MDRGQgorOjEwQ0QyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVDNDAwQzkwNTM2NDFFNQorOjEwQ0QzMDAwNEM5MDYzMjQwMEQ5MDAzRTQwMEI5MDAzNDQwOEM5MDA4NgorOjEwQ0Q0MDAwM0U0MDE1MTAwMzI0MDBFOTAwM0M0MDBDOTAwMzI4MDRFOQorOjEwQ0Q1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDFBNDA0RjkwMDNBNDAxRgorOjEwQ0Q2MDAwNEY5ODAzRTQwMEU5OTkzRTQwNEY5MDAzRTQyMEY5MEEwQworOjEwQ0Q3MDAwM0U0MDBFOTA0MzY0MjRGOTA4M0E0MjBGOTA4QkRBMDA0QgorOjEwQ0Q4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzgwMDEyMDA5MQorOjEwQ0Q5MDAwMEM4MDQzRTAwMEM4NDAzMjAwMEY4NDUzRTAxMEY4MDBEQworOjEwQ0RBMDAwM0UwMDBEODAyMzIwMDBEODAwM0UwMDBGODAwMzBBMDRCRgorOjEwQ0RCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzODAyODIwMEExODg0MQorOjEwQ0RDMDAwMDg2MDIyQzgwMDhBNDAzNkExMEJBMDAyRTkxMEJBNDRDQworOjEwQ0REMDAwMkM4MDBDQTQxMjI5MDI4QTQ0MkU5ODBCQTQwMjBBMDA2QgorOjEwQ0RFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0QzEwODMwMDIwRTBGNworOjEwQ0RGMDAwMTgzMDkyQzQwODkzNDAyMEUwMEIzMDAyQ0QwMEIzNDBCRAorOjEwQ0UwMDAwMkNDMDBCM0E0MkNEMDA4MzQwMkNEMDBCMzgwMjRBMDA5NAorOjEwQ0UxMDAwNTAwMDAwMDAwMDAwMDAwMEEwNDExQzAwODcwMDIxQzA1RAorOjEwQ0UyMDAwMjg3MDAyRDEwMDlEODAyNUMyNEI2MDAyREMwOEI3MDI0OQorOjEwQ0UzMDAwMkNDMDBBNzQwMkZFMDA4NzAwMkRDMDBCMzQwMjY4MDA2QgorOjEwQ0U0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgxRTAwQzc4NDMxRTA3OAorOjEwQ0U1MDAwMEM2ODAzRDYwMDk3ODAzMUEwMEY1ODEzREUwOEY3ODJDNAorOjEwQ0U2MDAwM0RBMDBGRjgwQkRFMDBDNzgwM0RFMDBGNzg4QjZBMDIxMworOjEwQ0U3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBRDgwRjMwMDNFQzE2RQorOjEwQ0U4MDAwMEZBMDIzQzAwMkU5MDAzRTgxMEY4MDAzRUMwMEZCMDBFRAorOjEwQ0U5MDAwM0VDMDBEQjAxMzJDMDBFQjAwM0VDMDBGQjAwMzgyMDI2OQorOjEwQ0VBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGRjMyQzc4MDMzNjAxMgorOjEwQ0VCMDAwMEY3ODAzM0VDODRFODAyMzY0MENGODAzM0EwMENFODBGRQorOjEwQ0VDMDAwMTNFQzA2RDgwMzNBMDBERTgwMzNBNDBDQzgwM0QwMDA2QworOjEwQ0VEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTE5QzAwODcxMDAxQzAzNQorOjEwQ0VFMDAwMEI3MDAyMTg1MDg0MDAyQjQ0MDg2MDEyOTgwMDg2MTNCRgorOjEwQ0VGMDAwMjFDNDg4NTAwMjE4ODA4NjAwMjE4MDA4NjEwMkVBMDQ1QgorOjEwQ0YwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODcwMDIxNDAzRAorOjEwQ0YxMDAwMEJGMTAyNUM4MDA2MDAyMTAwODhEMDAyNUMwMDg3MDBEMworOjEwQ0YyMDAwMjA4OThBRjEwMjFDMDg4NzEwMjE4MTg4NDgwMkM2MDBFNgorOjEwQ0YzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzEwODMwNEEwQzFEOQorOjEwQ0Y0MDAwMEIzMDBBNDgwQzg4MDY2MDM4MDgwNDQyRUMwMThCMDQ1OAorOjEwQ0Y1MDAwMjJDMTA4MzAwQTJDMDA4QjAwMjI4MDAwMjAwMkQ4MDQ1NQorOjEwQ0Y2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVCQzAwQzMwMDIyODBCMworOjEwQ0Y3MDAwOEY5MDAzNjQwQUNCMDJCMkYyMjAzNTEyNjQwQUM5MDAxMgorOjEwQ0Y4MDAwQjI0MDBFQTAwMzI0MEFDOTAwQTI0MDJDQTAwM0VFMDQ2NAorOjEwQ0Y5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFQzAwRkIwMDNDODAwRQorOjEwQ0ZBMDAwMEY5MDAzQTUwMERCNDAzRUQwNERCNDEzQTQwOEZCMDE1NQorOjEwQ0ZCMDAwM0VDMDFDQTAwMzZDMDBGQjA0M0U1MDRGQTQwM0UwMDBFNQorOjEwQ0ZDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwRkYwMDMzQzAzMgorOjEwQ0ZEMDAwMENFODQzMjYwMERGODBCM0UwMEZGODAzN0MwMENEMDBBRgorOjEwQ0ZFMDAwMzMwNDBDRTAyMzM0NDBDRDAwMjM0MDBDRTAwM0UwMDQ4NAorOjEwQ0ZGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2QzEwQkIwMEEyRDJEMQorOjEwRDAwMDAwMDgyODAyMDQ2MDhCMTkyMkM2MEVCMThBMkU0MDhCOTAyQworOjEwRDAxMDAwMjJDMTA4QTQ4MjJDMDA4QjkwMjI2NDQ4QTQwMkUwMDA2NAorOjEwRDAyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDUyQzAwQkIwMDIyMDA2MgorOjEwRDAzMDAwMDg5MTJFMjQwMDlCMDAyMkMwOEJCMDEyMjAwNDg4MDA4RgorOjEwRDA0MDAwMjI0MDA4MTAyMjIwMDA4ODAxMkFEMDA4ODA0MkUwMDBGNworOjEwRDA1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwQzAwQjMwNDIwODAyMQorOjEwRDA2MDAwMDgxMDA2MDQxMDgzMDAyMEMwOEJCMDEyMDAwMDgyMDA1QworOjEwRDA3MDAwMjBDMDI4MTA0MjA5MDY4MjAwMjhDMDA4MjAwMkMyMDFGMAorOjEwRDA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3QzAwQkIwMDMyNDBFQQorOjEwRDA5MDAwMkNCMDAzMjQwMEQzMDAzMkMwNUZCNTAzMEMwMkMxMDBFMgorOjEwRDBBMDAwQjIwMDBDQjAwQjA1MDBDMTAwQjhDMDJDODAxM0UwMDMyNworOjEwRDBCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMUREQzAwRkYwMDFGQzBBOQorOjEwRDBDMDAwODdGMDAxRjQwMEZGMDAzRkMwMEU3MDQzRkMxMDdGMDBBQQorOjEwRDBEMDAwM0ZDMDBGNzAwM0ZDMDBGRjAwMzdDMDBGRTAwM0U4MDZGRAorOjEwRDBFMDAwNzAwMDAwMDAwMDAwMDAwMEMwMDVGMTg0RkU2MTMxRDgyRQorOjEwRDBGMDAwMENCMkMzRkNFMENDODA3QkMwMEVGMTAzN0NFMENDODM5RgorOjEwRDEwMDAwM0YyMDBGRjBDQjMyNDREQzg0M0YyNTRDRjI0MzMwMDAwQgorOjEwRDExMDAwNzAwMDAwMDAwMDAwMDAwMDgwMTBFNDQ4QjAxMDIyREMyNQorOjEwRDEyMDAwMDhCNjAyRkQ5Mjg4ODUyM0Y0NDBGMTAyRUQwMDg4MkRCNworOjEwRDEzMDAwMEU2MDBCQkMxMjJDMTBBODgyMkUwMDBBRkMyMkEwMDQ0OAorOjEwRDE0MDAwMzAwMDAwMDAwMDAwMDAwMDg4MDVDMDgwQjMyMjI4QzAyNQorOjEwRDE1MDAwMDgzMDgyQ0MwMTg4MDAyQ0MwNEEzMjAyQ0MwMDAxMDE4OAorOjEwRDE2MDAwMjgwMDRCQjAwMkEwMDA4MDAwMkMwOTA4MzQwMjYyMDFBNAorOjEwRDE3MDAwNzAwMDAwMDAwMDAwMDAwMEMwMTVBQzA0QjIxMDJBQzEwRAorOjEwRDE4MDAwMDhCMDAyRUMxMDg5ODAyMkMwMDhCMDAyRUMwODg4MDBDOAorOjEwRDE5MDAwMkU0MDgzQjAwMkEwNDBCOTgwMkMyMTBBQjAwMkYwMDRENgorOjEwRDFBMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTVFQzAwRkEwMEJBQzA2QQorOjEwRDFCMDAwMkNCMDQzRUMwMEMwODAzRUMwOEVCMDAzNEMwQ0M4MTBCNQorOjEwRDFDMDAwM0U4MDhGQjAwMzgyMTBEODgyM0UyODBDQjAwQjUwMDRGMgorOjEwRDFEMDAwNzAwMDAwMDAwMDAwMDAwMEUwMDFCNjgwRkQwMjM3QzFEMQorOjEwRDFFMDAwMEZCMDAzRkMwMEZEMDAzRUMwMEZCMDUzRkMwMkZGMDE3NgorOjEwRDFGMDAwMkZBNDhCRjA4MzdDMDBBRDAyMkY0MDAzNzAwM0I4MDA5NgorOjEwRDIwMDAwNjAwMDAwMDAwMDAwMDAwMDQwMTBBQzAwRkIwNDMyQzBEMQorOjEwRDIxMDAwNENCMDIzMkMwMEY4NDAzRUMyMENCMDAzMkMwMEZCNDE2NAorOjEwRDIyMDAwMzJDMjBGQjA0MzJEMDBDODUwM0U0MDBDQjAwQjEwMDQ2QQorOjEwRDIzMDAwMjAwMDAwMDAwMDAwMDAwMEM4MDUyRjkwQjk1MDAzQzA3NgorOjEwRDI0MDAwMThGMDFBM0MwMEI5MzIyREUwMzhGMDYwM0MwNEY5MDBDNworOjEwRDI1MDAwM0VGMDBCN0M4MDJDMDBEOUMwMkU0MDBERjAwMjMyMDAzNQorOjEwRDI2MDAwNDAwMDAwMDAwMDAwMDAwMEUwMDU0QjI0QjIxMDAyQzFBNQorOjEwRDI3MDAwMjgzMDAyNkMwNEIyQzEyQ0MwMDgzMDAwMEMwMEIyMDA4RgorOjEwRDI4MDAwMjgyNDAzM0MwQTAwMDA4MkM4MkNBMDA4MzAwMjM4MDA4MQorOjEwRDI5MDAwNTAwMDAwMDAwMDAwMDAwMDIwMDExNjAwQjQ4MDIxRTRDRQorOjEwRDJBMDAwNDg3QjAyNUUwMEI2ODA2REUyNDg3OTIyMUU0MEFDODQ2NQorOjEwRDJCMDAwMkRFMDBCRkEwMDUyNDA5NjgwMkRFODE5MzgwMjA4MDA0NAorOjEwRDJDMDAwNDAwMDAwMDAwMDAwMDAwMDQ4MDgwODQwRjMxMEIwQzQwRgorOjEwRDJEMDAwMDgzQTAyNEM5MEYzMTAzQ0NDMDgzMTAzMEM0OUIwNDBBMgorOjEwRDJFMDAwMzAwNTBGMzAwNzIxNDA0MzAxM0VDMjFDMzA0MzEyMDI3QgorOjEwRDJGMDAwMDAwMDAwMDAwMDAwMDAwMDQwMERCQzEwRkMxMDNGQzUwNQorOjEwRDMwMDAwMEZGMTAxQkMwNEZGMDQzRkM0MEZCMTRCRkM2NEY3MDBGNAorOjEwRDMxMDAwMzdDMDBGNzI1M0FDNDRGRjAxM0ZDOTBGRjQwM0QwMDY2RQorOjEwRDMyMDAwNjAwMDAwMDAwMDAwMDAwMEE4MDVFQzA4RkEwMDNFRTBFNAorOjEwRDMzMDAwMENCMDAzMkMwMENCMDIzRUNBMEZCMjA3MkUwMERCMDI1QQorOjEwRDM0MDAwMzIwODBGMzEwMzJDMDBDQjA0M0U4MDBDMzUwMzJBMDAzOQorOjEwRDM1MDAwNzAwMDAwMDAwMDAwMDAwMDQ4MTE5NDAwQjUwMDJEQzhDNgorOjEwRDM2MDAwMDg3MDBBMUMyMjg3MDAyREM5MEJGMjgyOUM4MEE2MDAzRgorOjEwRDM3MDAwMDk4QjBCNzAwQTFDMDI4NTAwMkQ0MDA4NzAwMjkyMDQ3NAorOjEwRDM4MDAwNjAwMDAwMDAwMDAwMDAwMEMwMDA5RTAwQjc4MDJDRUM5MAorOjEwRDM5MDAwMDg3QjAyNUU0MDg1ODkyREVDOEI3QjAyNEU4NDhGODA1QQorOjEwRDNBMDAwMjU2NDBCRkEwMjEyMDg5NzgwNkZFMTA4N0EwMjMwMDBCOAorOjEwRDNCMDAwMjAwMDAwMDAwMDAwMDAwMDQ4MTRDQzIwQjM2NDJDQzAwMgorOjEwRDNDMDAwMDgzMDA2MEMxMDgzOEE2Q0MwNUIzMDQyQ0MwMEFCMTA3NgorOjEwRDNEMDAwMkNGMjBCMzAwMjBEMDA5MzA0MkNENTA4MzAwQTkyMDQ3NQorOjEwRDNFMDAwMzAwMDAwMDAwMDAwMDAwMEU4MTVCQjAwRkVDMDNFODBEOQorOjEwRDNGMDAwMkNBMDAzNjgwMEM2NDAzRjgwMEZBMDAyNjgwMENFNDQwNgorOjEwRDQwMDAwMzY5MDRGNjAwMzFCNzBERUQ4M0ZBMDBDMjAwMzNBMDQxNworOjEwRDQxMDAwNjAwMDAwMDAwMDAwMDAwMDQ4MDBFMDQwRjgxMDNFMDBGRQorOjEwRDQyMDAwMEY4MDAzQTAxMEY4NDIzRTEwMUY4MDAzQTAwMEU4MENGQworOjEwRDQzMDAwM0EwNDFGODAwM0UwMDBFODQ1N0UwMjJGODAwM0QyMDBGQgorOjEwRDQ0MDAwMzAwMDAwMDAwMDAwMDAwMDA4MTA2NDAwRTk4MDMyNDA1NQorOjEwRDQ1MDAwMEY5MDBCMDQwOEQ5ODAzNjQwMEYxMDEzMjQwOEY5MDBGMAorOjEwRDQ2MDAwNzI3MDBGOTExMzI0MTBDOTEwM0U2OTBDOTAwMzAyMDRDRQorOjEwRDQ3MDAwMzAwMDAwMDAwMDAwMDAwMDgwMDQ2NDA4Qjk4MDIyNDBGMQorOjEwRDQ4MDAwMEIxMDAyMjQwMDg5QzQyMjUyMEI5MDQyMjQwMEI5MDBFMAorOjEwRDQ5MDAwMjJFMDBCOTAxMjI0MDREOTRBMkU2MDA4OTAwMzYwMDAwOQorOjEwRDRBMDAwMTAwMDAwMDAwMDAwMDAwMDE4MDUyNDAwQjExODIyNDAwMAorOjEwRDRCMDAwMEI5MDAyMjQwMDhCMjAyNjQ5MEI5MDAyNjQwMEI5MDBENworOjEwRDRDMDAwQTI0MDBCOTA4QTI0MDA4QjAwMkM0MEE4OTAwMjA2MDBGQQorOjEwRDREMDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwNDg0QjEyMEEwNDhCRgorOjEwRDRFMDAwMEIxMTA2MDQwMDgzMDAwMDQwNEIxMTAyMDQ0OUIxMTBFNworOjEwRDRGMDAwMjg0MDBCMTAwMjI0NDE5MTAwMkM1MDA4MTAwMjQyMDFEOAorOjEwRDUwMDAwMDAwMDAwMDAwMDAwMDAwMEI4MEQ2OTQwRTg1MDMyMTQyRgorOjEwRDUxMDAwMEY4NjkzMjFFMkM4MDAzNjBBMEI4NjhCNjFBOEY4NDA3QgorOjEwRDUyMDAwMjI4MDBGODJBMzIxMDhDODAyM0UwMDBDODA0MzJFMDNGNAorOjEwRDUzMDAwNTAwMDAwMDAwMDAwMDAwMDk4MURGNDQ4RkQxMjNFNDQxOQorOjEwRDU0MDAwMEYxMjAzQzQwMDdEMDExRTQwMEI5MjAzRTQ4MEY1MjBGRQorOjEwRDU1MDAwMzY0MDBGOTAwM0Q0OTA3RDAwM0Q0MDBGOTQwM0U2MDZDMworOjEwRDU2MDAwNzAwMDAwMDAwMDAwMDAwMDE4MDFGNkMxREQ4ODMyNzI3MgorOjEwRDU3MDAwMEM5ODAzMjYyMkREMDAzRjYyMkM5OTgzNDZBMEM5NDAwNworOjEwRDU4MDAwQjI0MDBGRDgwMzI0MDBGRDAwMzM1MTJDRDg4MzA2MDA4RAorOjEwRDU5MDAwNzAwMDAwMDAwMDAwMDAwMDM4MTBFM0MyODhDMDIyMzA5NAorOjEwRDVBMDAwMDg4QzQyMjIxMThBMDEyRTAwMDg4ODUyMjMwMDgwQTM5MQorOjEwRDVCMDAwMkEwMDRCODA0MjIyQTBCODAwMjIyODA4ODQwMjhFMDQ1MAorOjEwRDVDMDAwMzAwMDAwMDAwMDAwMDAwMDA4MDVDNDAwODEyRDIwNDg0NAorOjEwRDVEMDAwNjgxNDgwMDQyMDgxMDAyRTQwMEIxMjEyMDQyNDgxMjA0NAorOjEwRDVFMDAwMjA0MDBCOTQzMjA0OTBCOTAwMjA0MDQ4MTA0QTAyMDFCOAorOjEwRDVGMDAwNzAwMDAwMDAwMDAwMDAwMDE4MTVBNDAwODkyMDIyNDBERgorOjEwRDYwMDAwMDg5MDEyMjQwMDg5MDAyRTQwMDg5MDAyMjQwODg5NDBDNgorOjEwRDYxMDAwMjI1MDBCQjAwMjI0MjBCOTA5QTI0NDA4OTAwMjg2MDRDQgorOjEwRDYyMDAwNjAwMDAwMDAwMDAwMDAwMEEwMTVFNDAwRDkwOEIyNDAyRQorOjEwRDYzMDAwNEMxMDIzMDQwNEQ5QzEzRTQwOEY5MDBCMDQwOEMxNDAxNAorOjEwRDY0MDAwMTI0MDBGOTA0MzI0MDRGMTQxMzA3ODBDOTAwMzI4MDREOQorOjEwRDY1MDAwNzAwMDAwMDAwMDAwMDAwMDI4MDE4NjY0Rjk4MDNFNDA1MAorOjEwRDY2MDAwMEY5MDBCRTQwMEY5OTgzRTQwMkYxMDAzQTQwMkY5MTAyQworOjEwRDY3MDAwM0U0MDBGOTAwQkU2NDBGOTkwM0U2MDBGOTAwM0NBMDBDOQorOjEwRDY4MDAwNjAwMDAwMDAwMDAwMDAwMDI4MTBBMDAwQzg0MTMyMDAyNworOjEwRDY5MDAwMEM4MDA3MjAxMEM4MTAzRTBDMEU4MDAzRTAwNEM4MDA2OAorOjEwRDZBMDAwQkEwMDBGODE0MzIwMDBGODcwM0UwMDBGMDAwQjBBMDRGRgorOjEwRDZCMDAwMjAwMDAwMDAwMDAwMDAwMDI4MDUzOTAyOEUyMEEzODAxMQorOjEwRDZDMDAwMjhFMDBBMzgxMEFFMDQzREExOEVFMDAyRjgwMDhFMDA3QQorOjEwRDZEMDAwNzY4MDBCNjAwMzc4MDBCRTQwMkY4MjBCQTAwM0NBMDA0NworOjEwRDZFMDAwNDAwMDAwMDAwMDAwMDAwMDI4MDU0RDAwOEI4ODIyQzA4QgorOjEwRDZGMDAwMTgzMDAyMEMwMDgzNDQyQ0QwMUIzMDEyQ0MwNjgzMDA1RgorOjEwRDcwMDAwMjBDMTBCMzA4MjBDMDFCMzAwMkM0MDBCMzAwMjBBMDAwOAorOjEwRDcxMDAwNTAwMDAwMDAwMDAwMDAwMEEwMDExQzAwODUwMDIwQ0M4QgorOjEwRDcyMDAwMDg3MDA2MUM4NEE3MDEyOUMwMEI3MjIyREM4MDg3MzQ5NAorOjEwRDczMDAwNjE4MDBCMTAwMjVDMDBCNzAwMkRDMDBCNzAwMkU4MDA4NgorOjEwRDc0MDAwNDAwMDAwMDAwMDAwMDAwMEE4MDgwRTAwOEM4MDMxRTBCRQorOjEwRDc1MDAwMENGRTAyM0YwMEM1ODAyREUwMEU3ODAzREZBMEM3QTBCRAorOjEwRDc2MDAwMjE2MDBGNzgwMzFFODBGNzgwM0RFMDBGNzgwMzJBMDJDNgorOjEwRDc3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MURBQzAwRjkwMDNFQzBFMQorOjEwRDc4MDAwMEZCMDAzRUMwMEZBMDAzRUMwMDZCMDAzRUM4MEZCMjhBQgorOjEwRDc5MDAwMzZEODRGQTAwM0VDMTBGQTAwM0U1MDBGMzAwM0MyMDZGQgorOjEwRDdBMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDVGQTAwQ0M4MEIzRTAzQgorOjEwRDdCMDAwMEZGODAzM0UwMENGOTAzRjYwNEZGOEMzM0UwMEVGODA2QworOjEwRDdDMDAwMzNGMDBDN0EwMzNFNzBDNTkwMzNGMTBDNzgwMzAwMDBGRgorOjEwRDdEMDAwNzAwMDAwMDAwMDAwMDAwMEE4MTFCODAwODcwMDIxQzAwMAorOjEwRDdFMDAwMEI3MDRBMUMwMDg3MTAyREMwNEI3MTBBM0M0NDhGMTJFRAorOjEwRDdGMDAwMjE4NjBENzIwMjFFMDA4NzAwMjM0MDA4NzAwQTJBMDQ0OQorOjEwRDgwMDAwNjAwMDAwMDAwMDAwMDAwMDAwMDA5QzAwODQwMDI1QzBCMworOjEwRDgxMDAwMEI3MTBBMEMwMEE3MTIyRDg0MEI3MDBBMUMwMEI3MDhBQworOjEwRDgyMDAwMjM0MDA5RjMxQTVDODY5NzA4MjU0MDA4NzAwMjAwMDAxRgorOjEwRDgzMDAwMjAwMDAwMDAwMDAwMDAwMDIwMTRDQzIwODEyMDI2QzAyMQorOjEwRDg0MDAwMEIzMDAyMkMwMDgyNDIyQzgwMEIzMDIyMEMwODlCODA3MworOjEwRDg1MDAwMjBFMDA5MjAwMjREMDg5MjAwMjRFNTA4MzAwQTA4MDQ1RgorOjEwRDg2MDAwMzAwMDAwMDAwMDAwMDAwMEE4MTVBRTgyQ0FFMEI3QzA3QQorOjEwRDg3MDAwMEZGMDEzM0MwQUM5QzgzRTQwMEZGMDAzM0MwNEZGODQ3QworOjEwRDg4MDAwMzJDMDBEOTAxMzdDMDBEOTAwRjZDMDJDMTAwMzJBMDQ3RQorOjEwRDg5MDAwNjAwMDAwMDAwMDAwMDAwMDgwMDBFNDAwRjMwMDNBQzFENgorOjEwRDhBMDAwNEZCMDAzRUMwMEY5MDgzQzAwMEYzMDEzRUMwMEVCMDQyMAorOjEwRDhCMDAwQkUxODBGOTAyM0FDNjBFOTAyM0E0MDRGOTAwM0UwMDA5RAorOjEwRDhDMDAwMzAwMDAwMDAwMDAwMDAwMDAxMTBGQzAwQ0EwMDMzQzA1RQorOjEwRDhEMDAwMENGMDAzRkMwMENEMDI3RjQwMENGMDQyM0MwMENGMDg2RQorOjEwRDhFMDAwMzcxMDBGRDAwM0ZDMTBDRDA4M0Y2NjJDRDkwMzAwNDQzRAorOjEwRDhGMDAwMzAwMDAwMDAwMDAwMDAwMDgxMDQ2MzgwOEJFMDIyQzA0MworOjEwRDkwMDAwMDhCMDIyRUMwMEQ4ODA2RTIwNjhCMDFBMkMwMUZCMDAxMQorOjEwRDkxMDAwMjIxODBCODg0MzRDMDA4OEEwMkNDMDFEOTAwMjIwNDA4OAorOjEwRDkyMDAwMTAwMDAwMDAwMDAwMDAwMDgwMDEwODgwOEIyMDIyQzA1MQorOjEwRDkzMDAwMDhCMDIyRUMwMDg4ODgyRTYyNDhCMDFBQ0MwMDhCMDAxOAorOjEwRDk0MDAwMjZDMDRBODgwMkVDMDAwODg0MkU0MDA5OTAwMjIwMDA3QworOjEwRDk1MDAwNDAwMDAwMDAwMDAwMDAwMDA4MDQwMDAwODMwMDYwQzBEOAorOjEwRDk2MDAwMDgzMDAyQ0MwMDkwMDY2QzAwMDgzMDAyOEMwMEEzMDQ0MgorOjEwRDk3MDAwMjAwMDhCMDAwNjRDMjE4MDAwNkNDMDQ5MTAwQTAyMDE3NworOjEwRDk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2QzAwQ0EwMEIyQzFFMQorOjEwRDk5MDAwODhCNDAzRUMxMEM4MDAyRTAwMENCMDBCQkMwODhGMDAzQworOjEwRDlBMDAwMzYwMDA2ODAwM0VDODBDODAyM0ZDMTBDOTAwMzAwMDNFMAorOjEwRDlCMDAwNTAwMDAwMDAwMDAwMDAwMEEwMURGMDAwRkYwMDNGQzA2QworOjEwRDlDMDAwMEY3MjgzRkMxOEZDMDMzRjAwOEY3MDAzN0MwMEZGMDA4NAorOjEwRDlEMDAwM0QwMDBGQzAyMzhDMDZGQzAwM0Y0MDBFRDAwM0U4MDYzQworOjEwRDlFMDAwNzAwMDAwMDAwMDAwMDAwMDAwQzU0MTAzNzA0MERDMTAyMgorOjEwRDlGMDAwMzcwNDBEQzEwMzcwNDBEQzEwMzcwNDBEQzEwMTcwNDBDNQorOjEwREEwMDAwOUMxMDE3MTQwNUMxMDM3MDQwREMxMDE3MDQwREMwMzFDMQorOjEwREExMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NDA1NzEwMTVDNDBFQQorOjEwREEyMDAwNTcxMDE1QzQwNTIxMDE1QzQwNTcxMDE1QzQwMTcxMDE0MAorOjEwREEzMDAwNUM0MDE3MTAwNUM0MDU3MTA1NUM0MTU3MTAxNUMwMTFGNQorOjEwREE0MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMjA4MDQ4MjBGQgorOjEwREE1MDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBEQworOjEwREE2MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDEyMDgwNDgwMjBFNworOjEwREE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNjAwMDU4MDA2RQorOjEwREE4MDAwMTYwMDA1ODAwMTYwMDA1ODAwMTYwMDA1ODAwNTYwMDA0MgorOjEwREE5MDAwNTgwMDE2MTgwMTgwMDE2MDAwNTgwMDU2MDAwNTgwMjBDQgorOjEwREFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA1MjIwMTFDODBBNQorOjEwREFCMDAwNDcyMDExQzgwNDcyMDE1QzgwNTcyMDExQzgwNDcyNDFDQworOjEwREFDMDAwNUM4MDU3MjAxMUM4MDQ3MjAxMUM4MDQ3MjAxNUMwMzFBQQorOjEwREFEMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDAwNjAwMDE4MDA3OQorOjEwREFFMDAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDAxODAwMDYwMDA1MAorOjEwREFGMDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMDA2MDAwMTgwMzE1NworOjEwREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0ODA0MjIwMTA4ODA1OQorOjEwREIxMDAwNDIyMDEwODgwNDIyMDEwODgwNDIyMDEwODAwNDIzMDE0MgorOjEwREIyMDAwMDg4MDQyMjAxMDg4MDQyMjAxMDgwMDQyMjAxMDgwMjEzMQorOjEwREIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0QTA1NDI4MTUwQTAxRQorOjEwREI0MDAwNDQyQzExMEIwNDQyODExMEUwNTQyODExMDIwMDQyODE0MAorOjEwREI1MDAwMTBBMDQ0MzgxMTBCMDU0MjgxMTAyMTE0MjgxNTAwMzEwMgorOjEwREI2MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwQzAxNTcwMDU0QzA2RAorOjEwREI3MDAwMTUzMDA0NEMwMTEzMDA1NEMwMTU3MDA1NEMwMTUzMDBCRQorOjEwREI4MDAwNTRDMDE1MzA4NTRDMDExMzAwNTRDMDE1MzAwNTQwMjE5OAorOjEwREI5MDAwNDAwMDAwMDAwMDAwMDAwMDAwODAwMDAwNDAwMDEwMDA3NQorOjEwREJBMDAwMDQwMDAwNDAwMDEwMDAxMDYyMDQwMDAxMDgwNDQxMDA1RAorOjEwREJCMDAwMTAwMDQ0MTgxMTAwMDAxMDAwMTA4MDA0MDAwMTAxMjAyMgorOjEwREJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU2MDAyMDgwMDgyMDAyNAorOjEwREJEMDAwMjA4MDA4NjAwMjE4MDA4MjAwMjA4MDA4MjAwMDA4MjBCMQorOjEwREJFMDAwODIwMDAwODA4MDIwMDIxODAwODIwMDIwODAwODAxMzExRAorOjEwREJGMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MDA1NjQwMTU4MDAwRQorOjEwREMwMDAwNTYwMDE1ODAwNTYwMDE1ODAwNTY0MDE1ODAwNTYwMDFEQQorOjEwREMxMDAwNTgwMDU2MDAxNTgwMDU2MDAxNTgwMDc2MDAxNTgwMzFDNworOjEwREMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDBCNAorOjEwREMzMDAwMzYwMDBEODAwMzYwMDA5ODAwMzYwMDFEODgwNTYwMDBFNgorOjEwREM0MDAwRDgwMDE2MDAwRDgwMDM2MDAwRDg4MDQ2MDAwRDgwMzE5QQorOjEwREM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0MzA4MTBDMjBEQworOjEwREM2MDAwNDMwODEwQzIwNDMwODEwQzIyNDEwODE4QzIwNDMwODlENAorOjEwREM3MDAwMEMyMDAzMDgxMEMyMDQzMDgxMEMyMDQzMDgxMEMwMTA4RgorOjEwREM4MDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwMDAwMzAwMDBDMDA4OAorOjEwREM5MDAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDAwQzAwMDMwMDA5MgorOjEwRENBMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDAzMDAwMEMwMDFBNQorOjEwRENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwMjAxMzA4MDRDMjBDNQorOjEwRENDMDAwMTMwODA0QzIwMTMwODA0QzIwMTMwODA0QzMwMTMwODBDMworOjEwRENEMDAwNEMyMDEzMDgwNEMyMDEzMDgwNEMzMDEzMDgwNEMwMjFDQQorOjEwRENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA1NjA4MTU4MjBDRgorOjEwRENGMDAwNTYwODExODIwNTYwODE1ODIwNTYwODExODMwMDYwODEwMgorOjEwREQwMDAwNTgyMDQ2MDgxMTgyMDQ2MDgxMTgzMDU2MDgxNTgwMzA2QQorOjEwREQxMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0MjAwMjA4MDA4MjBFNAorOjEwREQyMDAwMDIwODAwODIwMDIwODAwODIwMDIwODAwODIwMDMwODA2MworOjEwREQzMDAwMDgyMDAyMDAwMDgyMDAyMDgwMDgyMDAzMDgwMDgwMzFCMworOjEwREQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MjA0NjA4MTE4MjBBRgorOjEwREQ1MDAwNDY0ODExOTIwNDYwODExOTIwNDYyODExODIwMDM0ODFCRQorOjEwREQ2MDAwMTgyMDQ2NDgxMTkyMDQ2MDgxMTgyMDQzMDgxMTgwMTE0MAorOjEwREQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU2MDA0NTgwMTU2MDBDQgorOjEwREQ4MDAwNTU4MDE1NjAwNDU4MDExNjAwNTU4MDAxNjAwNDE4MDE4MworOjEwREQ5MDAwNTYwMDQ1ODAxMTYwMDQ1ODAxMTYwMDQxODAxMTQwMzE0MQorOjEwRERBMDAwNTAwMDAwMDAwMDAwMDAwMDAwODAwNjAxNDE4MDUwNjAyQgorOjEwRERCMDAwMTQxODA1MDYwMTQxODA1MDYwMDQxODA1MDYwMDQxODBEMgorOjEwRERDMDAwMTA2MDE0MTgwNTA2MDE0MTgwNTA2MDE0MTgwNTAwMjBFOQorOjEwREREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMDA4MDQwMjA2MAorOjEwRERFMDAwMTA0ODA0MTIwMTAwODA0MTIwMTAwODA0MDIwMTA0ODA0MAorOjEwRERGMDAwNDAyMDUwNDgwNDEyMDEwMDg0NDAyMDEwMDgwNDAwMjBGNAorOjEwREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0NjAzNTE4MEQ0NjBGRgorOjEwREUxMDAwMzAxODBENDYwMzUxODBENTYwMzUxODBENDYwMzA1ODAzNgorOjEwREUyMDAwRDQ2MDE1MTgwRDQ2MDMxMTgwRDQ2MDM1MTgwRDQwMzFBQgorOjEwREUzMDAwNTAwMDAwMDAwMDAwMDAwMDAwQzU0NjA1NzE4MDVDNjBENQorOjEwREU0MDAwOTcxODE1QzYwNTcxODE1QzIwNTcxODE1QzYwMzcwODE5NworOjEwREU1MDAwNUM2MDU3MTgxMUM2MDUzMTgxNUM2MDc3MTgxNUMwMzFCOAorOjEwREU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjAzNzE4MERDNjBGNworOjEwREU3MDAwMzcxODBEQzYwMzcxODBERDYwMzcxODA1QzYwMTc1ODEzRQorOjEwREU4MDAwREM2MDM3MTgwREM2MDM3MTg0NUM2MDE3MTgxOUMwMTE2NworOjEwREU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0NjA1NzE4MTVDNjA0NAorOjEwREVBMDAwNTcxODE0ODYwNTcxODE1QzYwNTcxODA1QzYwNDMxODFDNgorOjEwREVCMDAwNUM2MDU3MTgxNUM2MDU3MTgwNUM2MDQzMTgxNUMwMTE2OQorOjEwREVDMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBGNworOjEwREVEMDAwMTIwODA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTcwODAwOAorOjEwREVFMDAwNDgyMDEyMDgwNDgyMDEyMDgwNDgyMDE3MDgwNDgwMDA3RQorOjEwREVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAxNjE4MDU4NjA4MgorOjEwREYwMDAwMTYxODQxODYwMTYxODAxODYwMDYzQzA1ODYwNDYxODAxMAorOjEwREYxMDAwMTg2MDE2MTgwMTg2MDA2MTgwNTg2MDU2MTgxNTgwMTAyOAorOjEwREYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NzAwMTVDMDA5QQorOjEwREYzMDAwNTcwMDE1QzAwNDcwMDE1QzAwNTcwMDEwQzAwNDcwMDA0OQorOjEwREY0MDAwMUMwMDQ3MDAxMUMwMDQ3MDAxNUMwMDQ3MDAwMUMwMTFCMworOjEwREY1MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MjAwNjA4MDE4MjBEMgorOjEwREY2MDAwMDYwODAxODIwMDYwODAxODIwMDYwODAwODIwMDYwODA5OAorOjEwREY3MDAwMTgyMDA2MDgwMTgyMDA2MDgwMTgyMDA2MDgwMTgwMTEyMAorOjEwREY4MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDU0MjA0MjA4MTA4MjAzRAorOjEwREY5MDAwNDIwODEwODIwNDIwODEwODIwNDIwODExODIwNDIwODA1NworOjEwREZBMDAwMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDgwMDgwMTFDNQorOjEwREZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjA1NDA4MTUwMjBBNAorOjEwREZDMDAwNTQwODE1MDIwNTQwODExMDIwNTQwQzE1NDIwMDQwODE3MAorOjEwREZEMDAwNTAyMDQ0MDgxMTAyMDU0MDgxMTAyMDE0MDgwNTAwMTE0QQorOjEwREZFMDAwNTAwMDAwMDAwMDAwMDAwMDAwMDEwMzAxNTBDMDU0MzA0OAorOjEwREZGMDAwMTUwODA1NDIwMTUwQzA1NDMwMTUwQzA1NDMwMTUwQzBBRQorOjEwRTAwMDAwNTQzMDE1MEMwNTQyMDE1MEMwNTQzMDE1MEMwNTQwMTAxOQorOjEwRTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAwNDIwMDEwODAyNgorOjEwRTAyMDAwMDQyMDAxODgwMDYyMDAxMDgwMDQwMDExMDgwMDQyMDBGMgorOjEwRTAzMDAwMTA4MDA0MjAwMTA4MDA0MjAxMTA4MDA0MjAwMTAwMDAyQgorOjEwRTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDU0MjAyMDA4MDgwMjAyNworOjEwRTA1MDAwMjAwODA4MDIwMjIwODA4MDIwMjAyODAwMDIwMjAwODA4MAorOjEwRTA2MDAwODAyMDIwMEEwODAyMDIwMDgwMDAyMDIwMDgwODAwMTFGOQorOjEwRTA3MDAwNTAwMDAwMDAwMDAwMDAwMDAwNDU0MDA1NjAwMTU4MDAwRAorOjEwRTA4MDAwNTYwMDA1ODAwNTYwMDE1ODA4NTYwMDE1ODAwNzYwMDI5QgorOjEwRTA5MDAwNTgwMDU2NDAxNTgwMDU2MDAzMTgwMDc2MDAxNTgwMTE2MQorOjEwRTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzU0MDAzNjAwMEQ4MDAzMAorOjEwRTBCMDAwMzYwMDBEODAwMTYwMDBEODBBMzYwMDBEODAwNTcwMDkxOQorOjEwRTBDMDAwRDgwMTM2MDAwRDgwMDM2MDAwRDgwMDU3MDAwRDgwMDA5NQorOjEwRTBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MzAwMTBDMDBGRgorOjEwRTBFMDAwNDMwMDEwQzAwMDMwMDEwQzAwNDMyMDEwQzAwNDYwMDE0OAorOjEwRTBGMDAwMEMwMDQzNDA1MEMxMDQzMDAxMEMwMDQ2MDAxMEMwMDAyOQorOjEwRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAwMDBDMDBEMworOjEwRTExMDAwMDEwMDAwQzAwMDMwMDAwQzAwMDMwMDAwRDAwMDIwMDAwRgorOjEwRTEyMDAwMEMwMDAzNDAwMEMwMDAzMDAwMEQwMDAyMDAwMEMwMDBFMQorOjEwRTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAxMzE0MDRDNTBDQworOjEwRTE0MDAwMTMxMDA0QzQwMTMxNDA0QzUwMTMxNDA0QzUxMTMxNDE2MworOjEwRTE1MDAwNEM1MDEzMTQwNEM1MDEzMTQwNEM1MDEzMTQwNEMwMDAzQQorOjEwRTE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA1NjhDMTVBMzBENAorOjEwRTE3MDAwNTY4QzExQTMwNDY4QzExQTMwNTY4QzExQTMwNTY4QzBDRgorOjEwRTE4MDAwNUEzMDQ2OEMxMUEzMDQ2OEMxNUEzMDE2OEMxNTgwMDA5MQorOjEwRTE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDA4MDA1NworOjEwRTFBMDAwMDIwMDAwODAwMDIwMDAwODAwMDIyMDAwOTAwMDIwMDBGMworOjEwRTFCMDAwMDgwMDAyNDAwMDgwMDAyMDAwMDkwMDAyMDAwMDgwMDBFQQorOjEwRTFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ0NjIwMTE4ODQwNAorOjEwRTFEMDAwNDYyMTExODg0NDYyMTExODg0NDYwMTExODg0NDYyMTA1NgorOjEwRTFFMDAwMTg4NDQ2MjExMTg4NDQ2MjExMTg4NDA2MjExMTgwMDA4OAorOjEwRTFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1NTAxMTU0MDQyMQorOjEwRTIwMDAwNTUwMTExNDA0NTUwMTExNDAwNDUwMTExNDA0NDUwMDA4MgorOjEwRTIxMDAwMTQwNDQ1MDAxNTQwNDQ1MDExMTQwNDU1MDExMTQwMDBFOAorOjEwRTIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODIxNDIwODUwODJBOQorOjEwRTIzMDAwMTQyMDg1MDgyMTQyMDg1MDgyMDQyMDg1MDgyMTQyMDhDNAorOjEwRTI0MDAwNTA4MjE0MjAwNTA4MjE0MjA4NTA4MjE0MjA4NTAwMDBDNQorOjEwRTI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAxMDI4MDQwQTA1MQorOjEwRTI2MDAwMTAyODA0MEEwMTAyODA0MEEwMTAyODQwMEEwMTAyODAwMAorOjEwRTI3MDAwNDBBMDEwMjg0NDBBMDEwMjgwNDBBMDEwMjgwNDAwMDA5OQorOjEwRTI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAzNTMwMEQ0QzA5OAorOjEwRTI5MDAwMzUzMDBENEMwMTUzMDBENEMwMzUxMDBDNEMwMzUzMDBFNQorOjEwRTJBMDAwRDRDMDM1MzAwRDRDMDM1MzAwRDRDMDM1MzAwRDQwMDA4MAorOjEwRTJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA1NzIwMTVDODAwMgorOjEwRTJDMDAwMTcyMDA1QzgwNjcyMDE1QzgwNTcyMDE1QzgwMjcyMDEyQworOjEwRTJEMDAwNUM4MDU3MjAxNUM4MDU3MjAxNUM4MDM3MjAxMUMwMDA5MgorOjEwRTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzE4NDBDNjEyMzFBQQorOjEwRTJGMDAwODQ4QzIxMjMwODQ4QzYxMjMwODQwQzYxMjMxMDQ4QzI0NAorOjEwRTMwMDAwMTIzMTg0OEMwMTIzMDg0OEM2MTIzMTA0OEM2MTAwMDA0QworOjEwRTMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY5RgorOjEwRTMyMDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkYyMworOjEwRTMzMDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBDRAorOjEwRTM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwRTM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwRTM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwRTM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQ0RCMEZCNkMyQ0Q0MgorOjEwRTM4MDAwQjBCMzZDMkNEQjBCMzZDMkRGQjBCMzZDMkNEQjBCN0U3NgorOjEwRTM5MDAwQzJDREIwQjdGRDJDREIwQjM2QzJDREIwQjM2QzAwMDBFNAorOjEwRTNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMzNDNEZDRjEzMzM5QQorOjEwRTNCMDAwQzRDQ0YxMzMzQzRDQ0YxMzNGQzRDQ0YxMzMzQzRDRkZDNQorOjEwRTNDMDAwMTMzM0M0Q0ZGRDMzM0M0Q0NGMTMzM0M0Q0NGMTAwMDAyNgorOjEwRTNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjcwRAorOjEwRTNFMDAwRTRFQzc5M0IxRTRFREY5M0JGRTQ4REY5M0I3ODRFRkZBMgorOjEwRTNGMDAwOTNCN0U0RURGRDNCMUU0RURGOTNCNzg0RURGOTAwMDBDQgorOjEwRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAyNzA0MDlDMTBBRAorOjEwRTQxMDAwMjcxQzA5QzEwMTMwNDAxQzEwNjcwNDA5QzEwMjcwNDE2QQorOjEwRTQyMDAwOUMxMTA3MTQwMUMxMDI3MDQwOUM1MDA3MUMwMUMwMDBFMAorOjEwRTQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA1NzEwMTVDNDBDNQorOjEwRTQ0MDAwNTcxMDU1QzQwMTMxMDA1QzQwNTcxMDE1QzQwNTcxMDFDNworOjEwRTQ1MDAwREM0MDE3MTgxREM0MDU3MTA1NUM0MDU3MTAxREMwMDAzNQorOjEwRTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMjA4MDQ4MjBBMQorOjEwRTQ3MDAwMTIwMDA0ODIwMTIwODA0ODIwMTIwODA0ODIwMTIwODBCQQorOjEwRTQ4MDAwNDgyMDEyMDgwNDgyMDEyMDgwNDg2MDEyMDgwNDgwMDA5RAorOjEwRTQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDAwNAorOjEwRTRBMDAwMDYwMDQxODAwMDYwMDAxODAwNDYwMDAxODAwMDYwMDAwNgorOjEwRTRCMDAwMTAwMDA2MTAwMTgwMDA2MDAwMTgyMDQ2MTAwMTgwMDA0NgorOjEwRTRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0NzIwMTFDODAzMQorOjEwRTREMDAwNDcyMDExQzgwNDcyMDExQzgwMDcyMDExQzgwNDczMDA3MgorOjEwRTRFMDAwMUM4MDQ3MjAxMUNDMDQ3MjAxMUM4MDQ3MjAxMUMwMDAwMQorOjEwRTRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAwMDE4MDBBNAorOjEwRTUwMDAwMDYwMDAxODQwMDYwMDAxODAwMDYwMDAxODAwMDYwNDBFMQorOjEwRTUxMDAwMTgwMDA2MDQwMTgxMDA2MDAwMTgwMDA2MTQwMTgwMDA0NAorOjEwRTUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTA4ODAzNAorOjEwRTUzMDAwNDI3MDEwOEMwNDIyMDEwOEMwMDIyMDEwODgwNDIyMDBCRQorOjEwRTU0MDAwMDg4MDQyNTAxMDA4MDQyMjAxMDkwMDQyNDAxMDgwMDA1NworOjEwRTU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRTA0NEE4MTEyQTAwQworOjEwRTU2MDAwNDRBODExMkEwNDRBODExMkEwMDRBODExMkEwNDRCODA0RAorOjEwRTU3MDAwMTJBMDQ0ODgwMTJFMDQ0QTgxMTIyMDA0OTgwMTAwMDA1MAorOjEwRTU4MDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwRTAwNTMwMDE0QzA4RQorOjEwRTU5MDAwMDUzMDAxNEMwMDUzMDAxNEUwMDUzMDAxNEMwMDUzMDBERAorOjEwRTVBMDAwMDRDMDA1MzAwMDRDMDAwMzAwMTRDMDA1MzAwMDQwMTBDQQorOjEwRTVCMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzAwNDAwNDAwMDEwMDAzRgorOjEwRTVDMDAwMDQ1ODAxMDQwMDQwMDAxMDAwMDQwMDAxMDAwMDQxMDA1NAorOjEwRTVEMDAwMDQwMDQ0NTgxMDQ0MDAwMDAwMTE4MDA0NTAxMDQwMzBFMgorOjEwRTVFMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAyMDAwMDgwMDBBMQorOjEwRTVGMDAwMjAwMDA4MDA0MDAwMDAwMDAwMjAwMDA4MDAwMjAwMDA4OQorOjEwRTYwMDAwODQwMDAwMDAwODQwMDIwMDAwODAwMDIwMDAwODQwMzAyNAorOjEwRTYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4QzA0MDAwNjAwMTE4MDA3OQorOjEwRTYyMDAwNDYwMDAxODAwNjYwMDE5ODAwNDYwMDExODAwNDYwMDFFOAorOjEwRTYzMDAwMTgwMDQ2MDAxMTgwMDQyMDAxMTgwMDY2MDAxMTgwMzA4NworOjEwRTY0MDAwMDAwMDAwMDAwMDAwMDAwMDEwMDE0MDAwNjAwMDk4MDA4MQorOjEwRTY1MDAwMjYwMDA5ODAwMjYwMDE5ODAwMDYwMDBDODAwMjYwMDAxQworOjEwRTY2MDAwMTgwMDA2MDAwMTgwMDI2MDAwOTg4MDA2MDAwMTgyMDAwOAorOjEwRTY3MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAwMzA4MTBDMjBGNgorOjEwRTY4MDAwNDMwODEwQzIyNDMwODE4QzIwMDMwODEwQzIwNDIwODA2QgorOjEwRTY5MDAwMEMyMDAzMDgxOEMyMDQzMDgxMEMyMDQzMDgxOEMwMTE1NAorOjEwRTZBMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMzAwMDBDMDA5RQorOjEwRTZCMDAwMDMwMDAwQzA0MDMwMDAwQzAwMDMwMDAwODAwMDMwMDA2OAorOjEwRTZDMDAwMEMwMDAzMjAwMEMwMDAzMDAwMEMwMDAzMjAwMEMwMDAzQworOjEwRTZEMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDEwMjEwMzA4MDBDMjAwQgorOjEwRTZFMDAwMDMwODAwQzIwMDMwODAwQzIwMDMwODAwQzIwMTIwODAxMworOjEwRTZGMDAwMEMyMDAzMkMwMEMyMDAzMDgwMEMzMDQzMkMwMEMwMDBFMgorOjEwRTcwMDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NjA4MTE4MjBFNQorOjEwRTcxMDAwNDYwODExODIwNDYwODAxODIwNDYwODExODIwNDYwODEzNgorOjEwRTcyMDAwMTgyMDQ2MEMxMUMyMDQ2MDgxMTgzMDQ2MEMxMUMwMTEyQgorOjEwRTczMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MjAwMjA4MDA4MjAzRQorOjEwRTc0MDAwMDIyODAwODIwMDIwODAwODIwMDIwODAwODIwMDIwODAyOQorOjEwRTc1MDAwMDgyMDAyMDgwMTgyMDAyMDgwMDgyMDAzMDgwMTgwMDBCMAorOjEwRTc2MDAwMDAwMDAwMDAwMDAwMDAwMDUwMDE0MjA0NjA4MTE4MjBGOQorOjEwRTc3MDAwNDYyODExODIwNDYwODAxODIwNDYwODExODIwNDYwODFCNgorOjEwRTc4MDAwMTgyMDQ2MDgxMDgyMDQ2MDgxMTgyMDQzMDgxMDgwMDA3OQorOjEwRTc5MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAwMTE0MDA0QgorOjEwRTdBMDAwNDUwMDExNDAyNTAwMDAxNDAwNDUwMDExNDAwNDUwMDFBRgorOjEwRTdCMDAwMTQwMDQ1MDAwMDQwMDQ1MDAxNDAwMDAxMDAwMDQyMTFENworOjEwRTdDMDAwNTAwMDAwMDAwMDAwMDAwMDQ4MDAwNjAwNDE4MDEwNjA3QQorOjEwRTdEMDAwMDQxODAxMDYwMDQxODAxMDYwMDQxODAxMDYwMDQxODAwMQorOjEwRTdFMDAwMTA2MDA0MTgwMTA2MDA0MTgwMTA2MDA0MTgwMTAwMDA0OAorOjEwRTdGMDAwMDAwMDAwMDAwMDAwMDAwMDQ4MDAwMjA1MDA4MDQwMjFFOQorOjEwRTgwMDAwMTAwODA0MDAwMTAwODA0MDIwMTAwODA0MDIwMTAwODA2QworOjEwRTgxMDAwNDAyMDUwMDgxNDAyMTEwMDg0NDAyMDEwMDgxNDAwMDAwOQorOjEwRTgyMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0NjAxNTE4MEQ0NjAxNworOjEwRTgzMDAwMzUxODBENDYwMzUxODBENDYwMTUxODBENDYwMzUxODBEQworOjEwRTg0MDAwNTQ2MDE1MTgwRDQ2MDM1MTgwRDQ2MDM1MTgwRDQwMTFFMQorOjEwRTg1MDAwNTAwMDAwMDAwMDAwMDAwMDAwMDE0NjA0NzE4MTFDNjBBRgorOjEwRTg2MDAwNDUxODExRDYwNDcxODExQzYwNjcxODExQzYwNDcxODFBNgorOjEwRTg3MDAwOUM2MDQ3MTgxMUM2MDQ3MTgxMUM2MDY3MTgxMUMwMDBBNAorOjEwRTg4MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDU0NjAyNzE4MDlDNjAwRQorOjEwRTg5MDAwMjcxODA5QzYwMDcxODA5QzYwNjcxODA5QzYwMjcxODAzQworOjEwRThBMDAwOUM2MTI3MTgwMUM2MDI3MTgwOUM2MDA3MTgwMUMwMDA5NgorOjEwRThCMDAwMDAwMDAwMDAwMDAwMDAwMDUwNDU0NjA1NzE4MTVDNjBDQQorOjEwRThDMDAwNTcxODU1RDYwMTcxODE1QzYwNTcxODE1QzYwNTcxODFCRQorOjEwRThEMDAwNUM2MDU3MTgxOEM2MDU3MTgxNUM2MDQzMTgxODgyMTE3NgorOjEwRThFMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDQ1MjAxMjA4MDQ4MjAzOQorOjEwRThGMDAwMTI0ODA0OTAwMTIwODA0OTIwMTIwODA0ODIwMTI0ODBEQgorOjEwRTkwMDAwNDgyMDEyNDgwMDkyMDEyMDgwNDgyMDE3NDgwNDgwMDFDNgorOjEwRTkxMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwNjAwNjE4MDE4NjA1OAorOjEwRTkyMDAwMDYzQzAxODYwMDYxODAxODYwNDYxODAxODYwMDYxODBGRgorOjEwRTkzMDAwMTg2MDA2MTgwMTg2MDA2MTgwMTg2MDQ2MTgwMTgwMDE4MQorOjEwRTk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwNDE2MDA0NzgwMTFFMDA4QgorOjEwRTk1MDAwNDc4MDExRTAyNDc4MDExRTAwMDc4MDExRTAwNDc4MDE0RgorOjEwRTk2MDAwMUUwMDQ3ODAxMUUwMDQzODAxMUUwMDQ3ODAxMUMwMTFDRAorOjEwRTk3MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDExMjAwNjA4MDE4MjBEQworOjEwRTk4MDAwMDY0ODAxOTIwMDYwODAxOTIwMDYwODAxODIwMDY0ODAxOAorOjEwRTk5MDAwMTgyMDA2NDgwMTkzMDAyMDgwMTgyMDA2NDgwMTgwMDBCNgorOjEwRTlBMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MjA0MjA4MTA4MjAxNworOjEwRTlCMDAwNDIwODEwODIwNDIwODEwODIwMDIwODEwODIwNDIwODE2RAorOjEwRTlDMDAwMDgyMDQyMDgxMDhBMDQ2MDgxMDgyMDQyMDgxMDgwMDA1NAorOjEwRTlEMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MjA0NDA4MTEwMjA3QgorOjEwRTlFMDAwNDQwODExMDIwNDQwODExMDIwMDQwODExMDIwNDQwODFFRgorOjEwRTlGMDAwMTAyMTQ0MDgwMTAyMDQ1MDgxMTAyMDA0MDgwMTAwMTE3NAorOjEwRUEwMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwMzAwNTBDMDE0MzAxRgorOjEwRUExMDAwMDUwQzAxNDMwMDUwQzAxNDMwMDUwQzAxNDMwMDUwODAyOAorOjEwRUEyMDAwMTQzMDA1MDgwMTRBMDA1MEMwMTQzMDA1MDgwMTQwMDBBOAorOjEwRUEzMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwODAwNDIwMDEwODBCQworOjEwRUE0MDAwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDAxMDgwMDQyMDA1OAorOjEwRUE1MDAwMTA4MDA0MjAxMTAwMDA0MjAwMTA4MDA0MjAxMTAwMTBEQQorOjEwRUE2MDAwNDAwMDAwMDAwMDAwMDAwMDQwNDU0MjAyMDA4MDgwMjA3RAorOjEwRUE3MDAwMjAwODA4MDIwMDAwODA4MDIwMjAwODA4MDIwMjAwODA5MAorOjEwRUE4MDAwODAyMDIwMDgwODAyMDIwMDgwODAyMDIwMDgwODAwMTE1MQorOjEwRUE5MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDE0MDAwNjAwMTE4MDAyQworOjEwRUFBMDAwNDYwMDExODAwNjYwMDExODAwNDYwMDExODAwNDYwMDFENAorOjEwRUFCMDAwMTgwMDQ2MDAxMTgwMDQ2MDAxMTgwMDY2MDAxMTgwMTBFMworOjEwRUFDMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0MDAyNjQwMDk4MDBDNworOjEwRUFEMDAwMjYwMDA5OTAwNjYwMDE5ODAwMjY0MDA5ODAwMjYwMDAyNworOjEwRUFFMDAwOTgwMDI2MDAwMDkwMDI2MDAwOTgwMDA3MDAwMTgwMDA1NgorOjEwRUFGMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU2MDA0MzgwNTBFMDBFMgorOjEwRUIwMDAwNDM4MDEwRTA0NDM4MDEwRTAwNDM4MDEwRTAwNDM4MDFENworOjEwRUIxMDAwMEUwMDQzODAxOEEwMDQzODAxMEUwMDQ2ODAxODgwMTFCMgorOjEwRUIyMDAwNTAwMDAwMDAwMDAwMDAwMDUwMDAwMTAwMzA0MDBDMTBCOAorOjEwRUIzMDAwMDMwNDAwQzUwMDMwNDAwQzEwMDMxNDAwQzEwMDMwNDAzNQorOjEwRUI0MDAwMEMxMDAzMDQwMDg3NDAzMDQwMEMxMDAyMDQwMDgwMDBDOQorOjEwRUI1MDAwMDAwMDAwMDAwMDAwMDAwMDQwMDQwNTAwMzU0MDBDNTA5QgorOjEwRUI2MDAwMDMxNDAwRDUwNDMxNDEwQzUwMDM1QzAwQzUwMDMxMDA5MgorOjEwRUI3MDAwMEM1MDAzMTAwMDk0MDAzMTQwMEM1MDQzMTAwMEMyMDBCMAorOjEwRUI4MDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MzA1MjBDMTE4MzA4RgorOjEwRUI5MDAwNDYwQzExOTcwMDYwQzAxODMwNDYxQzExODMwNDYwQzFGOAorOjEwRUJBMDAwMTgzMDUyMEMxMTg3MDQ2MEMxMTgzMDQ2MEMxMTgwMTFDNgorOjEwRUJCMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwMDAwMjE0MDA4MDA1QgorOjEwRUJDMDAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDAwODAwMDIwMDBGOQorOjEwRUJEMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAyMDAwMDgwMDAwMQorOjEwRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDE0ODQ0MjIwMTE4ODQ5OQorOjEwRUJGMDAwNDYyMTExOTgwMDYyMTAxODg0NDQyMDExODg0NDYyMTE0MworOjEwRUMwMDAwMTg4NDQyMjExMTgwNDQ2MjExMTg4NDQ2MjExMTgwMDAyOQorOjEwRUMxMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0MDA0NTAxMTE0MDRCMgorOjEwRUMyMDAwNDUwMDExNDEwMDUwMTAxNDAwNDUwMTExNDA0NDUwMTE5RAorOjEwRUMzMDAwMTQwNDQ1MDEwMTQwNDQ1MDExMTQwNDA1MDEwMTQwMTEyMAorOjEwRUM0MDAwNTAwMDAwMDAwMDAwMDAwMDQwMDAwODIwNDIwODEwODIzMAorOjEwRUM1MDAwMDQyMDAxMDgyMDQyMDgxMDgyMDQyMDgxMDgyMDQyMDg3NAorOjEwRUM2MDAwMTA4MjA0MjI4MTA4MjA1MjA4MTA4QTA0MjI4MTAwMDBBOAorOjEwRUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwQTAxMDI4NDQwQTExRQorOjEwRUM4MDAwMTAyODAwMEEwMTAyODA0MEEwMTAyODA0MEEwMTAyODAxNgorOjEwRUM5MDAwNDBBMDEwMkMxNDBBMDAwMjgwNDBCMDEwMkMxNDAwMDA3OAorOjEwRUNBMDAwMDAwMDAwMDAwMDAwMDAwMDQwNDU0RDAzNTM0MEQ0RDA1OAorOjEwRUNCMDAwMzUzMDBDNEQwMzUzNDBENEQwMzUzNDBENEQwMzUzNDAwMworOjEwRUNDMDAwRDREMDM1MzQwRDREMDIxMzQwRDREMDM1MzQwRDQwMTExRAorOjEwRUNEMDAwNTAwMDAwMDAwMDAwMDAwMDQwMDEwODA0NzIwMTFDODA4OAorOjEwRUNFMDAwNDcyMDE1QzgwNDcyMDExQzgwNDcyMDExQzgwNDcyMTEwNgorOjEwRUNGMDAwMUM4MDQ3MjYxMUM4NDQ3MjAxMUM5MDY3MjYxMUMwMDA3MQorOjEwRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMzA4NDBDNjEyMzE4RgorOjEwRUQxMDAwODQ4QzAxMDMwODQ4QzYxMjMwODQwQzYxMjMxODQ4QzI1MQorOjEwRUQyMDAwMTIzMTg0OEMwMTAzMDg0OEM2MTIzMTA0OEMwMTAwMDBBMgorOjEwRUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGNEZGRkQzRkY3NQorOjEwRUQ0MDAwRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZEM0ZGRjRGRkZGOQorOjEwRUQ1MDAwRDNGRkY0RkZGRDNGRkY0RkZGRDNGRkY0RkZGRDAwMDBBMworOjEwRUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwRUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyREZCMEZCNkMyQ0RGNworOjEwRURBMDAwQjBCN0ZEM0ZGQjBCMzZDMkRGQjBGQjZDMkNEQjBCN0UzQworOjEwRURCMDAwQzJDREIwQjdGRDNGRkIwQjM2QzJDREY0QjdGRDAwMDBBRQorOjEwRURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzM0ZDNEZDRjEzMzNCMAorOjEwRUREMDAwQzRDRkZEM0ZGQzRDQ0YxMzNGQzRGQ0YxMzMzQzRDRkY5MAorOjEwRURFMDAwMTMzM0M0Q0ZGRDNGRkM0Q0NGMTMzM0Y0Q0ZGRDAwMDBGMQorOjEwRURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQjdFNEVERjkzQjdFMworOjEwRUUwMDAwRTRFREY5M0ZGRTRFREY5M0I3RTRFREY5M0I3RTRFQzdFQworOjEwRUUxMDAwOTNCN0U0RUM2MTIzMUU0RURGOTNCNzg0RUM2MTAwMDBFRQorOjEwRUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1MjRBMTRBMjRFQQorOjEwRUUzMDAwNjMwMTE0MDI0NDAwODEwQjI4NzEwMjEwODI0MDM4MTFEMgorOjEwRUU0MDAwNDEwNDUwMDgxODgyODczODMxQzMyQzUyMEExMDAwMDA0MAorOjEwRUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODQ1MTI4MTQ0ODAwRQorOjEwRUU2MDAwNzEyMTFDMEEwNzFBODEwMkEwNTIyMDE0NDgwNzEyODEzRQorOjEwRUU3MDAwQzY4MDYwMjAwODg4NDcwMjAxNEE4MDcwMjAxMDAwMDA4OAorOjEwRUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM1MkMwMTRBMDA0NAorOjEwRUU5MDAwNTIwOTFDODAwNzI0MjEwODA4NzEwMjEwODA0NTIwQTExNgorOjEwRUVBMDAwNDkyODUyMDExNEMwNDUwMDkxQzQwMDcyMDIxMDAwMDBBQworOjEwRUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjA3MjAwMUMxMDA2NworOjEwRUVDMDAwNzEwOTEwODAwNzAwMDEwMTAwNzAwODE4ODAwNzAwMDExNworOjEwRUVEMDAwODkyMDUyMDEwQzgwNDYzMDgxNDUwNDYwMDAxMDAwMDBGQQorOjEwRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEMyMDIyMDAwODhBRQorOjEwRUVGMDAwMjAyMjAwMDhDMjIyODA0MDg4MDIyMjAwMDg4MjBBQTA0NAorOjEwRUYwMDAwMENBODAyMjIwMDA4ODAwQTAwODA4QzAyMjIwMDAwMDA2NworOjEwRUYxMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjQzMDAwMDQwMjA0NAorOjEwRUYyMDAwMzAwODA0NDA0MTMwMTBDODAwMDAwMDAwMDIwMzAwMTAwNworOjEwRUYzMDAwQzAwMDExMDgwMEMyNDMxMDgwQzAyMDAxMDgwMDAyMDA3OAorOjEwRUY0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwOEMzMEEyMEMxOEM3NworOjEwRUY1MDAwMTIyMjA0ODgwMTM2MjBDMzA4MTIyODA0MDgwMTA0MDA4NAorOjEwRUY2MDAwNEFBODIyMDEwNEM4NDEyNjMwQzA4ODAyMjEwMDAyMDBCQworOjEwRUY3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAwMEExMEMxODAyNgorOjEwRUY4MDAwMzIyMTBDODg0MzAyODA0NDgwMTIyOTA0MDg0MjBBOTBFRQorOjEwRUY5MDAwOEE4MDAwMjAwNDQ4MDMwQTEwODI4MDAwMjAwMDAyMDBCQQorOjEwRUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTg3MDJBMTgwQUMwMQorOjEwRUZCMDAwNDMyOTE0OEE4NDAyQTEwMEFDNDEyMDEwMDgwNjI2MzE5RQorOjEwRUZDMDAwODBBNDYwMjAxNDRBNDQzMjgxODFBQzYwMkExODAyMDA3NworOjEwRUZEMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA3MjIwMUM1ODBCMgorOjEwRUZFMDAwNzMyMTFDQzgwNzJBMDEwQzgwNzIyMDEwNDg0NzI2MTE4MworOjEwRUZGMDAwQzU4MDczMjAxQzg4MDcyQTExNDk4MDcwMjAxNDAyMDBFNAorOjEwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMDQ1MTAzMUM5MEM5RAorOjEwRjAxMDAwNzMwMjFDQzA0NzA0MDEwQTBDNTEwQTEwODI0NzIwMzFCOAorOjEwRjAyMDAwQzgwMDcyMDIxQzQwMDUzMDExQzQwMDcyMDExODAyMDBCMQorOjEwRjAzMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAxMDA2MjQwMTQ1MDQzNAorOjEwRjA0MDAwNTE4MTE4OTA0NzE0MDEwNDA0NzE4ODEwMTIwNTM0MDE4RAorOjEwRjA1MDAwNDQwNDUxNDAxOEQwMDczODAxQzQwNDUyMDExNEMyMDRCQQorOjEwRjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3MDAyMTg5MEM2MworOjEwRjA3MDAwNjAwMTFDRDA0NTI0MDFDMTBDNDIwMTAwMDBDNTIwMzFCMworOjEwRjA4MDAwNDEwODQwMDAxODgwNDUwMDIxNDEwQzcwNDIxQ0MyMDAxQworOjEwRjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAxMUM4MEM0MjBFRAorOjEwRjBBMDAwMzEwODEwNDI0MjA4ODBDNjIwMzEwOTAwMjAwMzFDOTAxQworOjEwRjBCMDAwQzQyMDAxNDkwQzQyNDMxMDgwNDQyMDMxMDgxMDAwMDA1NAorOjEwRjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDgzMjAzMDQ4MENFOQorOjEwRjBEMDAwMzI0MDEwOTA4MTI0MjBDODA0MzI0MDEwMjBDMzIwODA4OAorOjEwRjBFMDAwQzgwMDAyNEEwQ0EwMDEyNDEwQzgwODMyNDExMDAwMDBEOAorOjEwRjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA5MDAzMDAwMEM5MDRBMAorOjEwRjEwMDAwMzA0MDAwOTAwMDIwMDA4MDAwMTA0MDEwMDA0MDIwMTA4RgorOjEwRjExMDAwQzIwMDAwODAwODIwNDMwODEwODEwMDMyNDAwQ0MwMDQ2NworOjEwRjEyMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAzMDAwNDAwMDAwMDA0RgorOjEwRjEzMDAwMTAwMDAwRjAxMDIwMDAwMDAwMTAwMDAwRjAxMDgwNDBDRgorOjEwRjE0MDAwMDAwMDAwNDAwMEYwMTA5MDgwMDAwMDAwMDAwMEMwMDBBRgorOjEwRjE1MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwOTA0MDAwMDBENworOjEwRjE2MDAwMDA4MDEwOTBBMDkwMDAwMDAwMDAwMDEwOTA4MDgwMDBBRgorOjEwRjE3MDAwMDAwMDAwMDAxMDkwODA5MDAwMDAwMDAwNDAxMDhGMEZGMQorOjEwRjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNEM2QkEwNkMwMUNGOQorOjEwRjE5MDAwNDkyODYxMTQyQjFDMEU0MDNGRDlCRkQ5QUFCQzFBNUY2NQorOjEwRjFBMDAwMDAxMEE2NTAzQjYxQjMyNUJDNDAxOUJGRkZFOTgwMDBBOQorOjEwRjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDkyMTQ5NDgwMEM3OQorOjEwRjFDMDAwMDczRjJCOTQ4NjE0ODQ4MDI4MDAwMDQ5MTQwNDg2MTI3QgorOjEwRjFEMDAwODAwMDQxMjczNEQwOTA4NDkyMDAyRDhBMjExRTgwMDAyNworOjEwRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QTI3NQorOjEwRjFGMDAwQjEwMTAxMDAwMDAwMDAwODg0QjE3ODI4MDAwMDAwMDA3RgorOjEwRjIwMDAwMDhCMTMyMTQxNDAwMDAwMDAwMDhBODIzNTQyMTQwMDA2MworOjEwRjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBGMgorOjEwRjIyMDAwMDAwMDAwMkZGRkZFRjdDMDAwMDAwMDAwMkZEN0ZFRUYwOAorOjEwRjIzMDAwQzAwMDAwMDAwMDNGRkY3RkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBDMgorOjEwRjI1MDAwMDAwMDAwMEZFRjc3RkZDMDAwMDAwMDAwM0VGRkZFRUY1MAorOjEwRjI2MDAwNDAwMDAwMDAwMDNGRkZCRkZGNDAwMDAwMDAwMDAwMDAyMgorOjEwRjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA5MgorOjEwRjI4MDAwMDAwMDAwM0ZGRkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkY2NgorOjEwRjI5MDAwQzAwMDAwMDAwMDNGN0YyRkZGQzAwMDAwMDAwMDAwMDAwMgorOjEwRjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA2MgorOjEwRjJCMDAwMDAwMDAwMUZGRkZGRUZDMDAwMDAwMDAwMUZFRkVGRUY5NgorOjEwRjJDMDAwQzAwMDAwMDAwMDJGRkZGRkZGQzAwMDAwMDAwMDAwMDA5MgorOjEwRjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAzMgorOjEwRjJFMDAwMDAwMDAwM0ZGRkVGRkZDMDAwMDAwMDAwMkZBRkRGRkY3NgorOjEwRjJGMDAwQzAwMDAwMDAwMDNGRUZGRkY3QzAwMDAwMDAwMDAwMDA2QQorOjEwRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAwMQorOjEwRjMxMDAwMDAwMDAwM0ZERkRGRkZDMDAwMDAwMDAwM0ZGRkZGRkZGNQorOjEwRjMyMDAwQzAwMDAwMDAwMDFGRkZERkZGQzAwMDAwMDAwMDAwMDA2MQorOjEwRjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkM0MjRBMTAwMkMxNgorOjEwRjM0MDAwNTIwQjE4QzI4NjJDQTE4MDM4NjIwQTA4NDBDNDJDQTEzNgorOjEwRjM1MDAwMDgyODQyMEIxNDAwODUxNEExMDgyODQzMEExMDAwMDA1NQorOjEwRjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MTIwMTAzODBGQgorOjEwRjM3MDAwNjEyMDEwMDgwNzEyNDE0MjgwNzAyMDFDMDgwNDFBMDEwNQorOjEwRjM4MDAwODQ4MTQwMjAxODA4NDYzNjgxMDU4MDYzMjAxMDAwMDFFMgorOjEwRjM5MDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0MjQyMTAwMEMxOAorOjEwRjNBMDAwNTIwMjE0MDA4NzI4MjE4MTA4NzIwNjFDODI4NDIwMjFDMQorOjEwRjNCMDAwNDgxODQyMDM1NDgwNDUzMDI1NEExODUzMDIxMDAwMDE3MgorOjEwRjNDMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwODA0MjIwMTAxODA2RAorOjEwRjNEMDAwNDIyMDE4Qzg0NDIyMDE4MDg0NDIyMDFDODgwNDIyMDE1MworOjEwRjNFMDAwMDA4MDQwMjAxMDg4NDQzNjAxNDA4MDQxMDAxMDAwMDAxOQorOjEwRjNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMwMDgyMDAwMEMxOQorOjEwRjQwMDAwMjIwMzA0NDA4MTAwMjA4NDA4MDMwMDAwODBDMjAwMjAwMQorOjEwRjQxMDAwQzQwODAwMDMwODg4ODIxNkEwNDA4ODMyMjI4MDAwMDBCOQorOjEwRjQyMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMjAxMDA4MDA0MjAyRAorOjEwRjQzMDAwMTAwODBDQzIxMjEwODRDODIyMTIwODA0MDIwMzAwODhBQgorOjEwRjQ0MDAwMDAyMTAwMEMwQzQwNDEzMDAwODQyMDEwMDgwMDAyMDAxNAorOjEwRjQ1MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODgyMDYyMDA4OEM2MAorOjEwRjQ2MDAwMzIyMjBDODg4MTI2MjA0RDg4MjMyMjgwODg4MzA2MjAyMgorOjEwRjQ3MDAwMDg4ODAwMjMwNDhBODEzNjIwNEI4ODMyMjIwMDAwMDA0RAorOjEwRjQ4MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODAyMDIwMDA5ODBERgorOjEwRjQ5MDAwMzIyMDA0ODg2MDIyMDA4OTg0MDAyMDA4OTgwMDAyMDAzRAorOjEwRjRBMDAwMDA4MDAwMjAwMDA4MDIzQTgwNDg4MDMwMjAwMDAyMDBERQorOjEwRjRCMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwQUM0MUFBMTgwQTg5MworOjEwRjRDMDAwNDEyQTEwQ0FDNzFBQTEwNEFENzEyQTE4NEFENDA2QjEzQworOjEwRjREMDAwMDBBODcxMkExMDA4ODQyNjI5MDZBQzUyMkExMDAyMDBCRQorOjEwRjRFMDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwODA0MkEwMTQxODAxQworOjEwRjRGMDAwNDIyMDFDMDAwNDBBMDEwOTg0NTEyMDFDODg0NDAyMDE5NgorOjEwRjUwMDAwMDg4MDQwMjAxMDRBNDcwMjAxNDg4MDYzMjAxMDAyMDAxMgorOjEwRjUxMDAwODAwMDAwMDAwMDAwMDAwMDA4MDAwMEM0MTAyMTgxMENFMQorOjEwRjUyMDAwNDEwMjBDMDBDMDIwNjEwRDBFNzIwMjFDNDBDNDA4MzE2MworOjEwRjUzMDAwMDQxODQyMDIxMDgwODcyMEIxQzQwQzUzMDIxMDAwMDA0RQorOjEwRjU0MDAwMDAwMDAwMDAwMDAwMDAwMDA4MTAyMDA3MjQwMUNDMDA4QgorOjEwRjU1MDAwNzI0MDE0MDAwNDI0MDEwODAwNzM0MTEwQzAwNzMwMTFFOAorOjEwRjU2MDAwQ0MwMDcxMDExMDAyMDQyMDgxNDYxMDQyNDAxMDAyMDRCOAorOjEwRjU3MDAwMDAwMDAwMDAwMDAwMDAwMDA4MDAwMEM1MTAyMTAwMDg4NQorOjEwRjU4MDAwNjIwMjFDOTBDNTI0MjEwMDBDNzA4MjFDMTBDNDIwMzEyMgorOjEwRjU5MDAwODgwMjQwMDYxQzAwODUwMEExMDAwQzQwNDIwMDAyMDBDOQorOjEwRjVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjA1MTQ4MDAxMjA3RgorOjEwRjVCMDAwMzAwODBDNDIwNjAwODAwMTI0NTEwODBDMDI0MTAwODBGMgorOjEwRjVDMDAwNEMyMDAwMDgwQzMwNDIwNDAwMDQyMDAwMDgwMDAwMDAxOQorOjEwRjVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMEM2MjQyMDAwMEMwNQorOjEwRjVFMDAwMzJDMjA0ODBDNzMwMjAwMDBDNTNDMjA0MTBDMjI4NzBGRAorOjEwRjVGMDAwMEMwOTAyMDI0QzgwODEwNDMwMDkwQzAyNDIxMDAwMDAwOAorOjEwRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTA4MDAxMzgwMDAyMDAyRgorOjEwRjYxMDAwMTI0MDBDMjAwNzM0MDQwMjAwNjMwMTA4MTAwMDI0MTA3QgorOjEwRjYyMDAwMDQwMDAyMDEwNDgyMDEwODgwMDkxMDAyNDAxMDAwMDQ1NQorOjEwRjYzMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMTA4MDAwMDBCQQorOjEwRjY0MDAwMjA4MDAwRjAyMDEwODAwMDAwMjA4MDAwRDA4MDAwMDA4QQorOjEwRjY1MDAwNDAwMDAwMDAwMDMwMTAwMDgwMDAwMDAwMDAwMENDNDA5RQorOjEwRjY2MDAwMDAwMDAwMDAwMDAwMDAwMDNDM0MxMDgwODAwMDAwMDAxMgorOjEwRjY3MDAwMDAwMDEwOTA4MDgwMDAwMDAwMDAwMDEwOTA4MDAwOTAzQQorOjEwRjY4MDAwODAwMDEwMDAwMDEwQTA4MDAwMDAwMDIwMDAxMDhDMDhGNgorOjEwRjY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDFBQkUxNzgwMDBDNworOjEwRjZBMDAwM0U0MDI2NkZCQUUzMjQ4MDAwMTY1OUJEODI4MTgyRDg3RAorOjEwRjZCMDAwODAwMDAwMTk5OTg2ODA2NDgwQzAzRkQ5OTk4MDAwMDEzQworOjEwRjZDMDAwRjAwMDAwMDAwMDAwMDAwMDAwMDAwNjE2MDI5NDAwMTY4MgorOjEwRjZEMDAwQzAxNjk0ODI5MDE2MTA4MDIxMTgyODI4MDIwQTAyMDg2OQorOjEwRjZFMDAwODAwMDAwMDAwMDAyODI4MDE0MDAwMTE0MTFBMDQwMDA3QworOjEwRjZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4ODQ3RQorOjEwRjcwMDAwMDI4NEE4ODAwMDAwMDAwODkxMjI4NDQxQTIwODI0MDFGQworOjEwRjcxMDAwMzAwMDAwMDAwMDAwMDAwMDAwMDg4NDAxNDQwMTAwMDBFNworOjEwRjcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBERAorOjEwRjczMDAwMDAwMDAwM0VGN0ZGRjdDMDAwMDAwMDAwMkZFN0I3RkYxMgorOjEwRjc0MDAwQzAwMDAwMDAwMDJGRkU3RkY3QzAwMDAwMDAwMDAwMDA5NgorOjEwRjc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBBRAorOjEwRjc2MDAwMDAwMDAwMzZCRkZFREZDMDAwMDAwMDAwMEZGN0RGRkYyMworOjEwRjc3MDAwQzAwMDAwMDAwMDNEQjdCN0VGQzAwMDAwMDAwMDAwMDA2RgorOjEwRjc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA3RAorOjEwRjc5MDAwMDAwMDAwMUZERkRGRkZDMDAwMDAwMDAwMEZERkRGRkYwMQorOjEwRjdBMDAwQzAwMDAwMDAwMDNGRUZGRkZGQzAwMDAwMDAwMDAwMDBBRAorOjEwRjdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDA0RAorOjEwRjdDMDAwMDAwMDAwM0ZCRjdGRkZDMDAwMDAwMDAwM0ZGRjdGRjc0OQorOjEwRjdEMDAwQzAwMDAwMDAwMDNGREZGRkZGQzAwMDAwMDAwMDAwMDA4RAorOjEwRjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDAxRAorOjEwRjdGMDAwMDAwMDAwM0Y3RUZGRkY0MDAwMDAwMDAwM0ZGRUZGRkZEMworOjEwRjgwMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAzQworOjEwRjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRkZGRkZGRkMwMDBFQworOjEwRjgyMDAwMDAwMDAwMzdGRjZGRkZDMDAwMDAwMDAwM0ZGRkZGRkYzOAorOjEwRjgzMDAwQzAwMDAwMDAwMDNGRkZGRkZGQzAwMDAwMDAwMDAwMDAwQworOjEwRjg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwRjg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwRjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwRjg3MDAwMDAwMDAwMDAwMDAwMDAwMDMwMDAyMDAxMDIwMDAwMDAzNQorOjEwRjg4MDAwMzAwMDQzMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwRjg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwRjhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwRjhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwRjhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwRjhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwRjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwRjhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFOAorOjEwRjkwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwRjkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwRjkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwRjkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwRjk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwRjk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDNworOjEwRjk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwRjk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwRjk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwRjlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwRjlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0NworOjEwRjlDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwRjlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwRjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwRjlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwRkExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEZDOAorOjEwRkEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwRkEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwRkE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwRkE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwRkE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0Y0OAorOjEwRkE4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwRkE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwRkFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwRkFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwRkFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwRkFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEYyOAorOjEwRkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwRkFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwRkIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwRkIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwRkIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM2QjAwQzAwMENGMkM4QworOjEwRkI0MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwRkI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwRkI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwRkI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwRkI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDA0NworOjEwRkJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwRkJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwRkJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwRkJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwRkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwRkJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzBDNworOjEwRkMwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwRkMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwRkMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwRkMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwRkM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwRkM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDBBNgorOjEwRkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwRkM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwRkM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwRkNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwRkNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDNGQzAzRkMwMzAyNgorOjEwRkNDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwRkNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwRkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwRkNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwRkQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEZBNworOjEwRkQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwRkQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwRkQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwRkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwRkQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0YyNworOjEwRkQ4MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwRkQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwRkRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwRkRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwRkRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwRkREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEYwNworOjEwRkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwRkRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwRkUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwRkUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwRkUzMDAwMDAwMDAwMDAwMDAwMDAwMDA2MzM1RDgwQzAwMEZEQUM0MworOjEwRkU0MDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwRkU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwRkU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwRkU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwRkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwRkU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwRkVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwRkVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwRkVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwRkVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwRkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwRkVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDAwMDAwMDAwMzBFMgorOjEwRkYwMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwRkYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwRkYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwRkYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwRkY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwRkY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwQzAzMEMwMDBDMQorOjEwRkY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwRkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwRkY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwRkZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwRkZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDMwQzAzMEMwMzA0MQorOjEwRkZDMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwRkZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwRkZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwRkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwODAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDAwMDAwMDAwMEYzMgorOjEwODAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwODA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwODA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwODA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwODA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDAwMDAwMDAwM0ZCMgorOjEwODA5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwODBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwODBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwODBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwODBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwODBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDMwQzAzMEMwMEY5MgorOjEwODBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwODExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwODEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwODEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwODE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMTM3NEMwQzAwMEYwRUM0QworOjEwODE1MDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwODE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwODE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwODE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwODFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMDAwRjAwMDBCMQorOjEwODFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwODFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwODFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwODFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwODFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzBDMDBGMDAwRjAwMzAzMAorOjEwODIxMDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwODIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwODIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwODI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwODI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGQzAzRkMwMDAxMAorOjEwODI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwODI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwODI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwODJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwODJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwODJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTk4NjEwODAzMDgyM0Q5MAorOjEwODJEMDAwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwODJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwODJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwODMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwODMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDBGMDAwRjAwMEYxMQorOjEwODMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwODM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwODM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwODM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwODM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwM0ZDMDBGMDAwRjAwM0Y5MQorOjEwODM5MDAwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwODNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwODNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwODNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwODNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwODNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwMDNGQzAzRkMwMEY3MQorOjEwODNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwODQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwODQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwODQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwODQ0MDAwMDAwMDAwMDAwMDAwMDAwMDM3NjUyNUU0ODAwMEIwODhDRgorOjEwODQ1MDAwQUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwODQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwODQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjEwODQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQworOjEwODRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQworOjEwODRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwODRDMDAwMDAwMDAwMDAzMDAwMjAwMTAyMDIwMDAwMzAwMDQzMDBFNAorOjEwODREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwODRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwODRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjEwODUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QgorOjEwODUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwODUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwODU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwODU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwODU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwODU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwODU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwODU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwODVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwODVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwODVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwODVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwODVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwODVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwODYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwODYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwODYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwODY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwODY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwODY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwODY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwODY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwODY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwODZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwODZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQQorOjEwODZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjEwODZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QQorOjEwODZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QQorOjEwODZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjEwODcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OQorOjEwODcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OQorOjEwODczMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOQorOjEwODc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjEwODc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOQorOjEwODc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOQorOjEwODc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwODc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjEwODc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOQorOjEwODdBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOQorOjEwODdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOQorOjEwODdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjEwODdEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OQorOjEwODdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OQorOjEwODdGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OQorOjEwODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwODgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwODgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwODgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwODg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwODg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOAorOjEwODg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOAorOjEwODg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjEwODg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOAorOjEwODhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOAorOjEwODhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwODhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwODhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwODhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OAorOjEwODhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OAorOjEwODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwODkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwODkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NworOjEwODkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwODk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwODk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwODk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwODk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNworOjEwODk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwODk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwODlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwODlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwODlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjEwODlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwODlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwODlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwOEExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwOEEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwOEEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwOEE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjEwOEE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwOEE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwOEE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwOEE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjEwOEE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwOEFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwOEFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwOEFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwOEFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwOEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NgorOjEwOEFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NgorOjEwOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwOEIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwOEIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwOEIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwOEI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwOEI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwOEI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwOEI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwOEI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwOEI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwOEJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNQorOjEwOEJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNQorOjEwOEJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwOEJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwOEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwOEJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwOEMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwOEMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwOEMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwOEM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwOEM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOEM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwOEM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwOEM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwOENBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwOENCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwOENDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwOENEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwOENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwOENGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwOEQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwOEQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwOEQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwOEQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwOEQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwOEQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwOEQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwOEQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwOEQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwOERBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwOERCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwOERDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwOEREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwOERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwOERGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwOEUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwOEUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwOEUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwOEU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwOEU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwOEU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwOEU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwOEU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwOEU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwOEVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwOEVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwOEVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwOEVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwOEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwOEVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwOEYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwOEYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwOEYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwOEY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwOEY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwOEY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwOEY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwOEY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwOEY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwOEZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwOEZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwOEZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwOEZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwOEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwOEZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwOTAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwOTAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwOTAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwOTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwOTA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwOTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwOTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwOTA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwOTA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwOTBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwOTBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwOTBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwOTBEMDAwMzAwMDAwMDEwMDAwNDQ3MjMwMDA4MDAxMDAwMDAwMDNGNQorOjEwOTBFMDAwMzAwMDQwMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwOTBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwOTExMDAwMDAwMDAwMDAzMDAwODAwMTAwMDAwMDA1MzAwMEEwMDFDOAorOjEwOTEyMDAwMDAwMDAwMDAzMDAwMDAwMTAwMDBFMTVBMDAwMDAwMDBEMworOjBDOTEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzMKKzowMDAwMDAwMUZGCisvLyBWRVJTSU9OPSAxLjAuMC4xOTEKKy8vIERBVEU9IDIwMDJvY3QyOApkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pNjIvbG9hZGVyLkhFWCBiL2Zpcm13YXJlL2VtaTYyL2xvYWRlci5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGVkYjJkYwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTYyL2xvYWRlci5IRVgKQEAgLTAsMCArMSwxMDcgQEAKKzowMzAwMDAwMDAyMDI4NzcyCis6MDMwMDQzMDAwMjA0MDBCNAorOjEwMDEwMDAwRTRGRkZFQzIyMEQyRTg0M0Q4MjA5MDdGQUI3NEZGRjAxQQorOjEwMDExMDAwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0Y5NTc0QzBFMworOjEwMDEyMDAwRjA5MDdGOUVGMDkwN0Y5OEYwRTQ5MDdGOTRGMDkwN0YyNQorOjEwMDEzMDAwOUQ3NEZGRjA5MDdGOTc3NEEwRjA5MDdGOTNFMDU0RkM0MworOjEwMDE0MDAwRjA5MDdGOUM3NDAzRjBFNDkwN0Y5NkYwOTA3RkFGRTA5NgorOjEwMDE1MDAwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGMEZCRjAwMDEzQworOjEwMDE2MDAwMEVCRTA3RjhCRjA4RjUyMDIwNDI3NTE0MDA3NTEzMDA3NQorOjEwMDE3MDAwNzUxMjAwNzUxMTAwN0Y0ODdFOTI3RDAwN0MwMEFCMTRFMworOjEwMDE4MDAwQUExM0E5MTJBODExQzMxMjAzRUQ1MERCMjAyMEQ4N0FCQworOjEwMDE5MDAwMDA3OTAwNzgwMEU1MTQyNDAxRjUxNEVBMzUxM0Y1MTMwRAorOjEwMDFBMDAwRTkzNTEyRjUxMkU4MzUxMUY1MTE4MENBMzAyMEZEMTIzQgorOjEwMDFCMDAwMDFDNzUwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQ2MQorOjA2MDFDMDAwMDJGMEMyMjA4MEU2RkYKKzowMTAxQzYwMDIyMTYKKzoxMDAxQzcwMDkwN0ZFOUUwMjQ1QjYwNjAyNDAyNjAwMzAyMDI4NTkwNkYKKzoxMDAxRDcwMDdGRUFFMDc1MEEwMEY1MEJBM0UwRkVFNEVFNDIwQTkwMjEKKzoxMDAxRTcwMDdGRUVFMDc1MTUwMEY1MTZBM0UwRkVFNEVFNDIxNUU1OTcKKzoxMDAxRjcwMDE2NDUxNTcwMDMwMjAyODVFNDkwN0ZDNUYwOTA3RkI0MjEKKzoxMDAyMDcwMEUwMjBFM0Y5OTA3RkM1RTBGNTBDMTIwMzEzQUYwQzdFRjUKKzoxMDAyMTcwMDAwRUYyNTBCRjUwQkVFMzUwQUY1MEFDM0U1MTY5RkY1M0EKKzoxMDAyMjcwMDE2RTUxNTlFRjUxNTgwQzc5MDdGRUFFMDc1MEEwMEY1N0IKKzoxMDAyMzcwMDBCQTNFMEZFRTRFRTQyMEE5MDdGRUVFMDc1MTUwMEY1QjEKKzoxMDAyNDcwMDE2QTNFMEZFRTRFRTQyMTVFNTE2NDUxNTYwMzBFNDkwOEUKKzoxMDAyNTcwMDdGQzVGMDkwN0ZCNEUwMjBFM0Y5OTA3RkM1RTBGNTBDMEYKKzoxMDAyNjcwMDEyMDMyQkFGMEM3RTAwRUYyNTBCRjUwQkVFMzUwQUY1Q0QKKzowRjAyNzcwMDBBQzNFNTE2OUZGNTE2RTUxNTlFRjUxNTgwQ0FDMzU3Cis6MDEwMjg2MDAyMjU1Cis6MEMwMjg3MDA3ODdGRTRGNkQ4RkQ3NTgxMjkwMjAyQ0VENAorOjEwMDI5MzAwMDIwMTAwRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjI4MAorOjEwMDJBMzAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzM2QworOjEwMDJCMzAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REYzQgorOjEwMDJDMzAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMDQ2RUU0N0U1OQorOjEwMDJEMzAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTMzMAorOjEwMDJFMzAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGNworOjEwMDJGMzAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0EyMgorOjEwMDMwMzAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVEOQorOjEwMDMxMzAwRTUwQ0ZGRTUwQkY1ODJFNTBBRjU4Mzc1OTI3RTc0QzA2MworOjA4MDMyMzAwRjhFMjA4RjBBM0RGRkEyMjYyCis6MTAwMzJCMDA5MDdGOTY4NTgzOTJBODgyNzkwMjkwMDAwMEUwQjQwMEJBCis6MTAwMzNCMDAwRDc0MDFGMDkwN0Y5N0UwNTQ3RkYwNDQ4MEYwRTUwQzUyCis6MTAwMzRCMDBGRjkwN0VDMEUwRjUyOEU0QTI0NzMzRjI2OUYyRTRBMjA1Cis6MTAwMzVCMDA0NjMzRjI2OUYyRTRBMjQ1MzNGMjY5RjJFNEEyNDQzMzg0Cis6MTAwMzZCMDBGMjY5RjJFNEEyNDMzM0YyNjlGMkU0QTI0MjMzRjI2OTk2Cis6MTAwMzdCMDBGMkU0QTI0MTMzRjI2OUYyRTRBMjQwMzNGMjY5RjJBMzUwCis6MDMwMzhCMDBERkMyMjJBQworOjEwMDM4RTAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0ZCMQorOjBCMDM5RTAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMkJBCis6MTAwM0E5MDBDMEUwQzA4M0MwODJEMjIwNTM5MUVGOTA3RkFCNzQwMTJCCis6MDgwM0I5MDBGMEQwODJEMDgzRDBFMDMyQzUKKzoxMDAzQzEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDJGMEQwNDQKKzowNjAzRDEwMDgyRDA4M0QwRTAzMjZGCis6MTAwM0Q3MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjBEMDIwCis6MDYwM0U3MDA4MkQwODNEMEUwMzI1OQorOjEwMDNFRDAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA2NgorOjAxMDNGRDAwMjJERAorOjAxMDNGRTAwMzJDQworOjAxMDNGRjAwMzJDQgorOjEwMDQwMDAwMDIwM0E5MDAwMjAzQzEwMDAyMDM4RTAwMDIwNDU4MDA4NworOjEwMDQxMDAwMDIwM0Q3MDAwMjAzRkUwMDAyMDNGRjAwMDIwNDg0MDA2RgorOjEwMDQyMDAwMDIwNDg1MDAwMjA0ODYwMDAyMDQ4NzAwMDIwNDg4MDA5QQorOjEwMDQzMDAwMDIwNDg5MDAwMjA0OEEwMDAyMDQ4QjAwMDIwNDhDMDA3QQorOjEwMDQ0MDAwMDIwNDhEMDAwMjA0OEUwMDAyMDQ4RjAwMDIwNDkwMDA1QQorOjA4MDQ1MDAwMDIwNDkxMDAwMjA0OTIwMDc1Cis6MTAwNDU4MDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDA4RjBEMEE2Cis6MDYwNDY4MDA4MkQwODNEMEUwMzJENworOjEwMDQ2RTAwMDIwQTAwMEYwMTBDMTEwNDBEMDAwMDAwMDA0MTAwMDBGMworOjAxMDQ3RTAwMDA3RAorOjA0MDQ3RjAwMDIxNzAwMDA2MAorOjAxMDQ4MzAwMDA3OAorOjAxMDQ4NDAwMzI0NQorOjAxMDQ4NTAwMzI0NAorOjAxMDQ4NjAwMzI0MworOjAxMDQ4NzAwMzI0MgorOjAxMDQ4ODAwMzI0MQorOjAxMDQ4OTAwMzI0MAorOjAxMDQ4QTAwMzIzRgorOjAxMDQ4QjAwMzIzRQorOjAxMDQ4QzAwMzIzRAorOjAxMDQ4RDAwMzIzQworOjAxMDQ4RTAwMzIzQgorOjAxMDQ4RjAwMzIzQQorOjAxMDQ5MDAwMzIzOQorOjAxMDQ5MTAwMzIzOAorOjAxMDQ5MjAwMzIzNworOjEwMTEwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgwMTAxMDAwMTAxMDIwMworOjEwMTExMDAwMDAwMTA5MDIyMDAwMDEwMTAzQTAwMDA5MDQwMDAwMDJFRgorOjEwMTEyMDAwRkYwMDAwMDQwNzA1ODIwMjQwMDAwMDA3MDUwMjAyNDA5QworOjEwMTEzMDAwMDAwMDA0MDMwOTA0MjYwMzQxMDA2RTAwNjMwMDY4MDBGOAorOjEwMTE0MDAwNkYwMDcyMDAyMDAwNDMwMDY4MDA2OTAwNzAwMDczMDBBNworOjEwMTE1MDAwMkMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjgwMzQ2MDA4QQorOjEwMTE2MDAwNjkwMDcyMDA2RDAwNzcwMDYxMDA3MjAwNjUwMDIwMDA2OAorOjEwMTE3MDAwNDYwMDcyMDA2MTAwNkQwMDY1MDA1NzAwNkYwMDcyMDA0QworOjEwMTE4MDAwNkIwMDczMDAyQTAzNDMwMDZGMDA2RTAwNjYwMDY5MDA2NQorOjEwMTE5MDAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwNkYwMDZFMDBFNgorOjEwMTFBMDAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIyMDM4MworOjEwMTFCMDAwNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNjEwMDYzMDAwMworOjEwMTFDMDAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUwMDY3MDAyMworOjAyMTFEMDAwMDAwMDFECis6MDAwMDAwMDFGRgorLyoKK1NvdXJjZTogRU1JTE9BRC5IRVgKK1ZFUlNJT049MS4wLjIuMDAyCitEQVRFPTEwLjAxLjIwMDIKK0VNSTI2XzYyCisqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZW1pNjIvbWlkaS5IRVggYi9maXJtd2FyZS9lbWk2Mi9taWRpLkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmEwZDY1Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvZW1pNjIvbWlkaS5IRVgKQEAgLTAsMCArMSwxMjY2IEBACis6MDMwMDAwMDAwMjQ2QjlGQworOjAzMDAwMzAwMDIwRkZERUMKKzowMzAwMEIwMDAyNEUwRjkzCis6MDMwMDEzMDAwMjE3RkRENAorOjAzMDAxQjAwMDI0RTEyODAKKzowMzAwMjMwMDAyNERFRjlDCis6MDMwMDJCMDAwMjQ4MDA4OAorOjAzMDAzMzAwMDI0REU2OTUKKzowMzAwM0IwMDAyNERGNjdECis6MDMwMDQzMDAwMjQ5MDA2RgorOjAzMDA0QjAwMDI0RTAzNUYKKzowMzAwNTMwMDAyNDhGQTY2Cis6MDMwMDVCMDAwMjRERkQ1NgorOjAzMDA2MzAwMDI0RTA3NDMKKzoxMDA1MDAwMDEyMDExMDAxMDAwMDAwNDA2QTA4MTEwMTAwMDEwMTAyRkYKKzoxMDA1MTAwMDAwMDEwOTAyMDgwMjA1MDEwMDgwMzIwOTA0MDAwMDAwMDAKKzoxMDA1MjAwMDAxMDEwMDAwMEEyNDAxMDAwMTU2MDAwMjAxMDIwQzI0MEUKKzoxMDA1MzAwMDAyMDEwMTAxMDAwMjAwMDAwMDAwMEQyNDA2MDUwMTAyNzUKKzoxMDA1NDAwMDAzMDAwMDAwMDAwMDAwMDkyNDAzMDIwNDAzMDAwNTAwNkEKKzoxMDA1NTAwMDBDMjQwMjAzMDUwMjAwMDYwMDAwMDAwMDE1MjQwNjA2MTQKKzoxMDA1NjAwMDAzMDIwMDAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMzAwNzQKKzoxMDA1NzAwMDAwMDkyNDAzMDQwMTAxMDAwNjAwMDkwNDAxMDAwMDAxMzAKKzoxMDA1ODAwMDAyMDAwMDA5MDQwMTAxMDIwMTAyMDAwMDA3MjQwMTAxMjgKKzoxMDA1OTAwMDAwMDEwMDExMjQwMjAxMDIwMjEwMDM0NEFDMDA4MEJCRTAKKzoxMDA1QTAwMDAwMDA3NzAxMDkwNTBBMDU4NDAxMDEwMDhGMDcyNTAxNzQKKzoxMDA1QjAwMDAxMDAwMDAwMDkwNThGMDEwMzAwMDEwNTAwMDkwNDAxODUKKzoxMDA1QzAwMDAyMDIwMTAyMDAwMDA3MjQwMTAxMDAwMTAwMTEyNDAyQkYKKzoxMDA1RDAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NDkKKzoxMDA1RTAwMDBBMDU0NjAyMDEwMDhGMDcyNTAxMDEwMDAwMDAwOTA1RTgKKzoxMDA1RjAwMDhGMDEwMzAwMDEwNTAwMDkwNDAyMDAwMDAxMDIwMDAwNTAKKzoxMDA2MDAwMDA5MDQwMjAxMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwQTUKKzoxMDA2MTAwMDBFMjQwMjAxMDYwMjEwMDI0NEFDMDA4MEJCMDAwOTA1NTIKKzoxMDA2MjAwMDhDMDU0QzAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0QUUKKzoxMDA2MzAwMDAyMDIwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAwRTI0NEYKKzoxMDA2NDAwMDAyMDEwNjAzMTgwMjQ0QUMwMDgwQkIwMDA5MDU4QzA1QkEKKzoxMDA2NTAwMDcyMDMwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDQwMjAzRTMKKzoxMDA2NjAwMDAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDExMjQwMjAxMUQKKzoxMDA2NzAwMDAyMDIxMDAzNDRBQzAwODBCQjAwMDA3NzAxMDkwNThDMjYKKzoxMDA2ODAwMDA1ODQwMTAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyQTEKKzoxMDA2OTAwMDA0MDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyRUEKKzoxMDA2QTAwMDAxMDIwMzE4MDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1NzgKKzoxMDA2QjAwMDhDMDU0NjAyMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MjQKKzoxMDA2QzAwMDAzMDAwMDAxMDEwMDAwMDkyNDAxMDAwMTA5MDAwMTA0RTgKKzoxMDA2RDAwMDA5MDQwNDAwMDIwMTAzMDAwMDA3MjQwMTAwMDEyNDAwQjIKKzoxMDA2RTAwMDA2MjQwMjAxMDcwMDA5MjQwMzAyMDgwMTA3MDEwMDA2OEQKKzoxMDA2RjAwMDI0MDIwMjA5MDAwOTI0MDMwMTBBMDEwOTAxMDAwOTA1NzUKKzoxMDA3MDAwMDAxMDIwNDAwMDAwMDAwMDUyNTAxMDEwNzA5MDU4MTAyMUUKKzoxMDA3MTAwMDA0MDAwMDAwMDAwNTI1MDEwMTBBMDQwMzA5MDQxODAzNzAKKzoxMDA3MjAwMDQ1MDA2RDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NzAwMUMKKzoxMDA3MzAwMDZEMDA2MjAwNDgwMDIyMDM0NTAwNkQwMDYxMDA2NzAwMDMKKzoxMDA3NDAwMDY5MDA2MzAwMjAwMDQ1MDA0RDAwNDkwMDIwMDAzNjAwOEMKKzoxMDA3NTAwMDdDMDAzMjAwMjAwMDZEMDAyQTAzNDMwMDZGMDA2RTAwMTEKKzoxMDA3NjAwMDY2MDA2OTAwNjcwMDc1MDA3MjAwNjEwMDc0MDA2OTAwMkUKKzoxMDA3NzAwMDZGMDA2RTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNkMKKzoxMDA3ODAwMDY3MDAyMjAzNDkwMDZFMDA3NDAwNjUwMDcyMDA2NjAwNzUKKzoxMDA3OTAwMDYxMDA2MzAwNjUwMDIwMDA1MzAwNzQwMDcyMDA2OTAwNkUKKzowNjA3QTAwMDZFMDA2NzAwMDAwMDdFCis6MTAwN0E2MDBFNDkwNzY2NkYwMTI0NEFEMjAyNjEzOTA3NjY2RTBDMzk4Cis6MTAwN0I2MDA5NDAyNTAwQUUwMDRGMEQyNDIxMjRCN0Y4MEVBMzAyNkJGCis6MTAwN0M2MDAwNTEyMjgwMUMyMjYzMDI1MkI5MDc2OTZFMDU0RkNGMEJGCis6MTAwN0Q2MDA5MDgwMDNGMDEyMTQ5NjkwNzY5NkUwNDQwM0YwOTA4MDkxCis6MTAwN0U2MDAwM0YwRTQ5MDc2NjdGMDkwNzY2N0UwMDRGMEUwQjQ0QkFGCis6MEEwN0Y2MDBGNjEyNDdGQTEyNDExQjgwQzUyMkRCCis6MTAwODAwMDBFNDkwNzYzMUYwOTA3NjMxRTBGRjc1RjAwM0E0MjQwRjg4Cis6MTAwODEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDRBCis6MTAwODIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjMxRTAwNEYwODBENTUxCis6MTAwODMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0IxCis6MTAwODQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjMzRjAyNDI5Cis6MTAwODUwMDBGMDYwMEEyNDBFNjAwMjgxODcxMjRCQzcyMjkwN0ZFRDYwCis6MTAwODYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM3NzQwMTQ1Cis6MTAwODcwMDBGMDkwNzYzOTc0MDNGMDkwNzYyMUYwRTQ5MDc2MjBGMEQxCis6MTAwODgwMDA5MDdGRUFFMEY0NjAyRjkwNzYyMEUwRkY3NUYwMEFBNEY0Cis6MTAwODkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDVBCis6MTAwOEEwMDBFRTZENjAxMjkwNzYyMUUwRkVFRkMzOUU1MDA4OTA3NkM4Cis6MTAwOEIwMDAyMEUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkU1Cis6MTAwOEMwMDAxODc0MDZGMDkwNzYzNzc0MDRGMDkwNzYzOTc0MEFGMDU0Cis6MTAwOEQwMDA5MDc2MjFGMDkwNzYyMDc0MDNGMDkwN0ZFQUUwRjQ2MDQ3Cis6MTAwOEUwMDAyRjkwNzYyMEUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDY0Cis6MTAwOEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3Njg0Cis6MTAwOTAwMDAyMUUwRkVFRkMzOUU1MDA4OTA3NjIwRTAwNEYwODBEMUY1Cis6MTAwOTEwMDA5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUVECis6MTAwOTIwMDBGNTgzRTA5MDcyMjlGMEU0OTA3NjNCRjA5MDc2MjFFMDM4Cis6MTAwOTMwMDBGRUVGNkU3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkYwCis6MTAwOTQwMDBFMDE0NjAxMzE0NzAwMjIxRTIyNDAyNjAwMjgxN0Y5MDlGCis6MTAwOTUwMDA3RkI0RTA0NDAxRjAyMjkwN0ZFOUUwMTQ3MDdDOTA3RjQ2Cis6MTAwOTYwMDBFQUUwRjQ3MDQ4OTA3NjM3RTA5MDc2MjBGMDkwNzYzOTlGCis6MTAwOTcwMDBFMEZFOTA3NjIwRTBGREMzOUU1MDJCOTA3NjNCRTBGRTlCCis6MTAwOTgwMDAwNEYwNzRDMDJFRjU4MkU0MzQ3RUY1ODNFMEZFRUQ3NTRDCis6MTAwOTkwMDBGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFRUYwOTA3NjhBCis6MTAwOUEwMDAyMEUwMDRGMDgwQzc5MDc2M0Y3NDAxRjAyMjkwN0VDMDcyCis6MTAwOUIwMDBFMEZFRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4MzBDCis6MTAwOUMwMDBFRUYwRTBCNDAxMDg5MDc2M0U3NDAxRjA4MDA1RTQ5MDBBCis6MTAwOUQwMDA3NjNFRjA5MDc2M0Y3NDAxRjAyMjkwN0ZCNEUwNDQwMUJGCis6MTAwOUUwMDBGMDIyOTA3RkU5RTAyNEZFNzAwMjQxQTMxNDcwMDI2MUJFCis6MTAwOUYwMDAzRjE0NzAwMjYxREIyNDAzNjAwMjgxNzc5MDdGRUFFMDlDCis6MTAwQTAwMDBGNDcwNkI5MDc2MzdFMDkwNzYyMEYwOTA3NjM5RTBGRkM2Cis6MTAwQTEwMDA5MDc2MjBFMEZFQzM5RjUwNEU5MDc2M0JFMEZGMDRGMEJFCis6MTAwQTIwMDA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjAwQUEyCis6MTAwQTMwMDBBNDI0QUNGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JFMEM2Cis6MTAwQTQwMDBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRUZFCis6MTAwQTUwMDA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MEM3Cis6MTAwQTYwMDA3NjIwRTAwNEYwODBBNDkwNzY0MDc0MDFGMDIyOTA3RTFECis6MTAwQTcwMDBDMEUwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEFDRjU4Mjc5Cis6MTAwQTgwMDBFNDM0NzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQTc3Cis6MTAwQTkwMDBBNDI0QURGNTgyRTQzNDc1RjU4M0VGRjA5MDc2NDE3NENCCis6MTAwQUEwMDAwMUYwMjI5MDdGRUFFMEY0NzA2NjkwNzYzN0UwOTA3NjZECis6MTAwQUIwMDAyMEYwOTA3NjM5RTBGRjkwNzYyMEUwRkVDMzlGNDAwMjYwCis6MTAwQUMwMDA4MThFOTA3NjNCRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDExCis6MTAwQUQwMDA3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUVGNTgyRTQzNERGCis6MTAwQUUwMDA3NUY1ODNFRkYwOTA3NjNCRTBGRjA0RjA3NEMwMkZGNUNFCis6MTAwQUYwMDA4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBNDI0QUZGNUJFCis6MTAwQjAwMDA4MkU0MzQ3NUY1ODNFRkYwOTA3NjIwRTAwNEYwODBBMjYzCis6MTAwQjEwMDA5MDdFQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBRTNGCis6MTAwQjIwMDBGNTgyRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NTU5Cis6MTAwQjMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDM3Cis6MTAwQjQwMDA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzYyMEYwOTA3NjU5Cis6MTAwQjUwMDAzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI4MThFOTA3NkMwCis6MTAwQjYwMDAzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEFGCis6MTAwQjcwMDBGRkVFNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFRjM2Cis6MTAwQjgwMDBGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUYxCis6MTAwQjkwMDBGNTgzRTBGRkVFNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NTI0Cis6MTAwQkEwMDBGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI5MDdFQzBFMDI0Cis6MTAwQkIwMDBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QjBGNTgyRTQzNEJDCis6MTAwQkMwMDA3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzVGMDBBQTQyNDg2Cis6MTAwQkQwMDBCMUY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkVBRTBGNDFBCis6MTAwQkUwMDA3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkY5MDRFCis6MTAwQkYwMDA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzYzQkUwRkYwNEFBCis6MTAwQzAwMDBGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRkVFNzVGMERBCis6MTAwQzEwMDAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUZGMDkwNzYzQkI0Cis6MTAwQzIwMDBFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBGRjJBCis6MTAwQzMwMDBFRTc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTgzRUZGMDgxCis6MTAwQzQwMDA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTBGRjkwNzYyMEI1Cis6MTAwQzUwMDBFMEZFNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFRjYyCis6MTAwQzYwMDBGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjRCM0Y1ODJFNEIzCis6MTAwQzcwMDAzNDc1RjU4M0VGRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MEM4Cis6MEYwQzgwMDA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjIwMQorOjEwMEM4RjAwNDE3NjY4MDE0MTc2NkEwMjQxNzY2QjBBQzEyMEMxMjEyMworOjAyMEM5RjAwQzEyRjYzCis6MDQwQ0ExMDA0MTc2MjMwMDc1Cis6MTAwQ0E1MDA0MTcyMDEwMTQ1NzIwNTAwMDJDOTAwMDA0NTcyMEEwMDQyCis6MTAwQ0I1MDAwMTAyMDMwNDRENzIwRkQxMDBEMTAwMDAwMDAwMDAwMEI1Cis6MTAwQ0M1MDAyODI4MDkwMDRENzIxQzAxMDAwMTAyMDMwNDA1MDYwN0NFCis6MTAwQ0Q1MDAwODA5MEEwQjQxNzIyRTIyNDE3MjJGMjM0MTcyMzAyMERFCis6MTAwQ0U1MDA0MTcyMzEyMTYyRDI3MjNBMDAwMDAwMDAwMDAwMDAwMDFBCis6MTAwQ0Y1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAwRDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAwRDE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAwRDI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAwRDM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAwRDQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAwRDU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAwRDY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAwRDc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDEwMTAxMDEwMTY4Cis6MTAwRDg1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTRFCis6MTAwRDk1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTNFCis6MTAwREE1MDAwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTJFCis6MTAwREI1MDAwMTAxMDEwMTAxMDEwMTAxMDIwMjAyMDIwMjAyMDIwMjE2Cis6MTAwREM1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkZFCis6MTAwREQ1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkVFCis6MTAwREU1MDAwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMkRFCis6MTAwREY1MDAwMjAyMDIwMjAyMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0MzCis6MTAwRTA1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwM0FECis6MTAwRTE1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzlECis6MTAwRTI1MDAwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzhECis6MTAwRTM1MDAwMzAzMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDZGCis6MTAwRTQ1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDVECis6MTAwRTU1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDRECis6MTAwRTY1MDAwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDNECis6MTAwRTc1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTFECis6MTAwRTg1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTBECis6MTAwRTk1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNUZECis6MTAwRUE1MDAwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDYwNkVCCis6MTAwRUI1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkNECis6MTAwRUM1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkJECis6MTAwRUQ1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNkFECis6MTAwRUU1MDAwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDcwNzA3MDgwODk2Cis6MTAwRUY1MDAwODA5MDkwOTBBMEEwQTBCMEIwQjBDMEMwQzBEMEQwRDQwCis6MTAwRjA1MDAwRTBFMEUwRjBGMEYxMDEwMTAxMTExMTExMjEyMTIxM0Q5Cis6MTAwRjE1MDAxMzEzMTQxNDE0MTUxNTE1MTYxNjE2MTcxNzE3MTgxODc0Cis6MTAwRjI1MDAxODE5MTkxOTE5MUExQTFBMUExQjFCMUIxQjFDMUMxQzE4Cis6MTAwRjM1MDAxQzFEMUQxRDFEMUUxRTFFMUUxRjFGMUYxRjIwMjAyMEM4Cis6MTAwRjQ1MDAyMTIxMjEyMjIyMjIyMzIzMjQyNDI1MjUyNjI2MjcyNzYxCis6MTAwRjU1MDAyODI4MjkyOTJBMkEyQjJCMkMyQzJEMkQyRTJFMkYyRkQ0Cis6MTAwRjY1MDAzMDMwMzEzMTMyMzIzMzMzMzQzNDM1MzUzNjM2MzczNzQ0Cis6MTAwRjc1MDAzODM4MzkzOTNBM0EzQjNDM0QzRTNGNDA0MTQyNDM0NDlCCis6MTAwRjg1MDA0NTQ2NDc0ODQ5NDk0QTRCNEI0QzRENEU0RjUwNTE1MkE3Cis6MTAwRjk1MDA1MzU0NTU1NTU2NTY1NzU3NTg1QTVCNUQ1RTVGNjE2MkI3Cis6MTAwRkE1MDA2MzY0NjU2NjY3Njg2OTZBNkI2QzZENkY3MTcyNzM3NDhCCis6MTAwRkI1MDA3NTc2Nzc3ODc5N0E3QjdDN0U4MDAxMzcwMTAxMzgwMEY4Cis6MDEwRkM1MDAwMDJCCis6MTAwRkM2MDBFNEZGNzQ0NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyMDYwCis6MTAwRkQ2MDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NEUyRkY1ODJFNDJCCis6MTAwRkU2MDAzNDc2RjU4M0UwRkU3NDMwMkZGNTgyRTQzNDgwRjU4M0ExCis6MDYwRkY2MDBFRUYwMEZCRjA4Q0M3NQorOjAxMEZGQzAwMjJEMgorOjAzMEZGRDAwQzI4OTMyNzQKKzoxMDEwMDAwMEU0OTA3NjJDRjA5MDc2MkNFMEZGNzVGMDAzQTQyNDBGOEEKKzoxMDEwMTAwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFREUwRkRFRTZENDIKKzoxMDEwMjAwMDYwMEVFRkMzOTQwQjUwMDg5MDc2MkNFMDA0RjA4MEQ1NEUKKzoxMDEwMzAwMEVGQjQwQjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzQTkKKzoxMDEwNDAwMEE0MjQwRUY1ODJFNDM0NzVGNTgzRTA5MDc2MkVGMDI0MjYKKzoxMDEwNTAwMEYwNjAwQTI0MEY2MDAyODE3RDEyNEJBNDIyOTA3RkVEODQKKzoxMDEwNjAwMEUwNjQwNTcwNTE5MDc2MTg3NDA1RjA5MDc2Mzg3NDAxM0MKKzoxMDEwNzAwMEYwOTA3NjNBNzQwM0YwOTA3NjFDRjBFNDkwNzYxQkYwRDIKKzoxMDEwODAwMDkwN0ZFQUUwRjQ2MDJGOTA3NjFCRTBGRjc1RjAwQUE0RjEKKzoxMDEwOTAwMDI0QUFGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUFFMEZENTIKKzoxMDEwQTAwMEVFNkQ2MDEyOTA3NjFDRTBGRUVGQzM5RTUwMDg5MDc2QzUKKzoxMDEwQjAwMDFCRTAwNEYwODBEMTkwN0ZFREUwNjQwNjcwNTI5MDc2RTIKKzoxMDEwQzAwMDE4NzQwNkYwOTA3NjM4NzQwNEYwOTA3NjNBNzQwQUYwNEEKKzoxMDEwRDAwMDkwNzYxQ0YwOTA3NjFCNzQwM0YwOTA3RkVBRTBGNDYwNDkKKzoxMDEwRTAwMDJGOTA3NjFCRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NjEKKzoxMDEwRjAwMDc1RjU4M0UwRkU5MDdGRUFFMEZERUU2RDYwMTI5MDc2N0MKKzoxMDExMDAwMDFDRTBGRUVGQzM5RTUwMDg5MDc2MUJFMDA0RjA4MEQxRjcKKzoxMDExMTAwMEU0OTA3NjFFRjA5MDc2MUNFMEZGOTA3NjFCRTBGRTZGNjgKKzoxMDExMjAwMDcwMDg5MDdGQjRFMDQ0MDFGMDIyOTA3RkVCRTAxNDYwRkYKKzoxMDExMzAwMDEzMTQ3MDAyMjFCRjI0MDI2MDAyODE3NTkwN0ZCNEUwMTUKKzoxMDExNDAwMDQ0MDFGMDIyOTA3RkU5RTAyNDdGNzA2QjkwN0ZFQUUwMTkKKzoxMDExNTAwMEY0NzA0QTkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTMKKzoxMDExNjAwMDkwNzYxQkUwRkRDMzlGNTAyQkVENzVGMDBBQTQyNEFCRDUKKzoxMDExNzAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkQwNEYwMUYKKzoxMDExODAwMDc0MDAyREY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwNTgKKzoxMDExOTAwMDA0RjA4MEM3OTA3NjFFRTA5MDdGQjVGMDIyRUU3NUYwRTcKKzoxMDExQTAwMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwNjcKKzoxMDExQjAwMDkwN0ZCNTc0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwNUEKKzoxMDExQzAwMDdGRTlFMDI0N0U3MDAyNDE3RTE0NzAwMjYxMjMxNDcwNzYKKzoxMDExRDAwMDAyNjFDODI0MDM2MDAyODE2RDkwN0ZFQUUwRjQ3MDZEQzMKKzoxMDExRTAwMDkwNzYzOEUwOTA3NjFCRjA5MDc2M0FFMEZGOTA3NjFCOTAKKzoxMDExRjAwMEUwQzM5RjUwNEZFMEZGNzVGMDBBQTQyNEFDRjU4MkU0RjEKKzoxMDEyMDAwMDM0NzVGNTgzRTBGRTkwNzYxRUUwRkQwNEYwNzQwMDJENDkKKzoxMDEyMTAwMEY1ODJFNDM0N0ZGNTgzRUVGMEVGNzVGMDBBQTQyNEFEOTcKKzoxMDEyMjAwMEY1ODJFNDM0NzVGNTgzRTBGRjkwNzYxRUUwRkUwNEYwNkQKKzoxMDEyMzAwMDc0MDAyRUY1ODJFNDM0N0ZGNTgzRUZGMDkwNzYxQkUwQTYKKzoxMDEyNDAwMDA0RjA4MEE0OTA3NjFFRTA5MDdGQjVGMDIyOTA3NjFCOEIKKzoxMDEyNTAwMEUwRkY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4M0UwNzAKKzoxMDEyNjAwMDkwN0YwMEYwRUY3NUYwMEFBNDI0QURGNTgyRTQzNDc1QTgKKzoxMDEyNzAwMEY1ODNFMDkwN0YwMUYwOTA3RkI1NzQwMkYwMjI5MDdGQkIKKzoxMDEyODAwMEVBRTBGNDcwNkQ5MDc2MzhFMDkwNzYxQkYwOTA3NjNBNTQKKzoxMDEyOTAwMEUwRkY5MDc2MUJFMEMzOUY1MDRGRTBGRjc1RjAwQUE0N0IKKzoxMDEyQTAwMDI0QUVGNTgyRTQzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMTEKKzoxMDEyQjAwMDA0RjA3NDAwMkRGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RDEKKzoxMDEyQzAwMEYwMEFBNDI0QUZGNTgyRTQzNDc1RjU4M0UwRkY5MDc2NEMKKzoxMDEyRDAwMDFFRTBGRTA0RjA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGMDcKKzoxMDEyRTAwMEYwOTA3NjFCRTAwNEYwODBBNDkwNzYxRUUwOTA3RkI1MkQKKzoxMDEyRjAwMEYwMjI5MDc2MUJFMEZGNzVGMDBBQTQyNEFFRjU4MkU0OUMKKzoxMDEzMDAwMDM0NzVGNTgzRTA5MDdGMDBGMEVGNzVGMDBBQTQyNEFGMDgKKzoxMDEzMTAwMEY1ODJFNDM0NzVGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MzkKKzoxMDEzMjAwMDAyRjAyMjkwN0ZFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2REIKKzoxMDEzMzAwMDFCRjA5MDc2M0FFMEZGOTA3NjFCRTBDMzlGNTA0RkUwQTEKKzoxMDEzNDAwMEZGNzVGMDBBQTQyNEIwRjU4MkU0MzQ3NUY1ODNFMEZFNUQKKzoxMDEzNTAwMDkwNzYxRUUwRkQwNEYwNzQwMDJERjU4MkU0MzQ3RkY1RjQKKzoxMDEzNjAwMDgzRUVGMEVGNzVGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1NEMKKzoxMDEzNzAwMDgzRTBGRjkwNzYxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MTgKKzoxMDEzODAwMDM0N0ZGNTgzRUZGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MzQKKzoxMDEzOTAwMDFFRTA5MDdGQjVGMDIyOTA3NjFCRTBGRjc1RjAwQUE0NjYKKzoxMDEzQTAwMDI0QjBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjBFRjc1QUEKKzoxMDEzQjAwMEYwMEFBNDI0QjFGNTgyRTQzNDc1RjU4M0UwOTA3RjAxNEUKKzoxMDEzQzAwMEYwOTA3RkI1NzQwMkYwMjI5MDdGRUFFMEY0NzA2RDkwQTcKKzoxMDEzRDAwMDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQkUwNEUKKzoxMDEzRTAwMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0QTUKKzoxMDEzRjAwMDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyREY1OTcKKzoxMDE0MDAwMDgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRCM0Y1OUYKKzoxMDE0MTAwMDgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDc0RkMKKzoxMDE0MjAwMDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDA0MjQKKzoxMDE0MzAwMEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQkUwQkQKKzoxMDE0NDAwMEZGNzVGMDBBQTQyNEIyRjU4MkU0MzQ3NUY1ODNFMDkwQzgKKzoxMDE0NTAwMDdGMDBGMEVGNzVGMDBBQTQyNEIzRjU4MkU0MzQ3NUY1NEIKKzoxMDE0NjAwMDgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkI0MEEKKzoxMDE0NzAwMEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0NzgKKzowNTE0ODAwMEUwNDQwMUYwMjIzMAorOjEwMTQ4NTAwNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjk3QQorOjAxMTQ5NTAwMjIzNAorOjEwMTQ5NjAwOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJFMAorOjEwMTRBNjAwQzBEMEMwRTA4RkUwQzBFMDhFRTBDMEUwOERFMEMwRTBEQworOjEwMTRCNjAwOENFMEMwRTBDMDgyQzA4MzA1ODZDMDg0QzA4NTdEMDAwNAorOjEwMTRDNjAwOTA3RkUzNzQ3QkYwQTM3NDgwRjA3QzExOTA3Rjk5RTBBOQorOjEwMTRENjAwNTQ0MERDMDMwMjE0RjNCNDAwMTM5MDdGRTI3NDQwRjAyRQorOjEwMTRFNjAwOTA3RkU1RjA5MDdGRTI3NDAwRjAwMjE0RDI5MDc2OTAzRgorOjEwMTRGNjAwRTBCNDAxMTI5MDc2OEZFMDJERkQ5MDdGRTI3NDgwRjBDQgorOjEwMTUwNjAwOTA3RjZDMDIxNTU3QjQwMjEyOTA3NjhGRTAyREZEOTBGNQorOjEwMTUxNjAwN0ZFMjc0ODBGMDkwN0Y2QzAyMTU5NkI0MDMxMjkwNzY4OQorOjEwMTUyNjAwOEZFMDJERkQ5MDdGRTI3NDgwRjA5MDdGNkMwMjE1RTFENAorOjEwMTUzNjAwQjQwNDEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwOTBENworOjEwMTU0NjAwN0Y2QzAyMTYxMDkwN0ZFMjc0ODBGMDkwN0Y2QzAyMTYxQQorOjEwMTU1NjAwNDBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREYyN0RCOQorOjEwMTU2NjAwMDIwNTg2OTA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjRGRAorOjEwMTU3NjAwMDAwNTA1ODYwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjAyRAorOjEwMTU4NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMERERDQwMjE2NDBGQworOjEwMTU5NjAwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjA0NQorOjEwMTVBNjAwRjBGMERERUM3RDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0YxRQorOjEwMTVCNjAwOUJFMDU0MDRCNDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ1MQorOjEwMTVDNjAwODBGMDA1ODZGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEQQorOjA2MTVENjAwRjBGMEYwRjBGMEYwNkYKKzoxMDE1REMwMEREQ0UwMjE2NDBGMEYwRjBGMERERkE3RDAyMDU4NjkwQ0IKKzoxMDE1RUMwMDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNTg2MDQKKzoxMDE1RkMwMDAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEREOEEKKzoxMDE2MEMwMERDMDIxNjQwRjBGMEYwRjBGMEYwRERGODdEMDIwNTg2MUIKKzoxMDE2MUMwMDkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0MDAwNTA1QzkKKzoxMDE2MkMwMDg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwRjBGMEYwQjAKKzoxMDE2M0MwMEYwRjBERERBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2N0UKKzoxMDE2NEMwMEQwODNEMDgyRDBFMEZDRDBFMEZERDBFMEZFRDBFMEZGMzMKKzowNTE2NUMwMEQwRTBEMEQwMjIxNworOjEwMTY2MTAwQzBEMEMwRTBDMDgyQzA4MzkwNzY3Q0UwOTA3RjZGRjBGNAorOjEwMTY3MTAwOTA3NjdERTA5MDdGNkZGMDkwNzY3RUUwOTA3RjZGRjBDNgorOjA5MTY4MTAwRDA4M0QwODJEMEUwRDBEMDIyNDkKKzoxMDE2OEEwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMEMwODJDMDgzN0UKKzoxMDE2OUEwMDA1ODZDMDg0QzA4NTkwNzY4N0UwRkZCRjAwMDMwMjE3RTUKKzoxMDE2QUEwMDAxOTA3Rjk2RTA0NDgwRjA5MDdGRTI3NDgwRjA5MDdGMTIKKzoxMDE2QkEwMDYyRTAwNTg2OTA3RkUyNzQwMEYwOTA3Rjk2RTA1NDdGQTYKKzoxMDE2Q0EwMEYwOTA3RkUyNzQ4MEYwOTA3NjhFRTBCNDAxMDUwNTg2OTIKKzoxMDE2REEwMDAyMTZGNkI0MDIwNTA1ODYwMjE2RUIwNTg2MDIxNkZCMEIKKzoxMDE2RUEwMEUwRTBFMEUwRTBFMERGRjgwMjE2RkJFMEUwRTBFMERGNjcKKzoxMDE2RkEwMEZBOTA3RkUyNzQwMEYwRDA4NUQwODQwNTg2RDA4M0QwM0EKKzowQzE3MEEwMDgyRDBFMEZFRDBFMEZGRDBFMEQwRDAyMjgyCis6MTAxNzE2MDBDMDgyQzA4M0MwRTBFOEMwRTA3OEQxRTgxNEY4NzBGQjZFCis6MEExNzI2MDBEMEUwRjhEMEUwRDA4M0QwODIyMjlBCis6MTAxNzMwMDBDMDgyQzA4M0MwRTBFOEMwRTA3ODc4RTgxNEY4NzBGQkFECis6MEExNzQwMDBEMEUwRjhEMEUwRDA4M0QwODIyMjgwCis6MDcxNzRBMDA5MDdGQzU3NDAyRjAyMjNDCis6MTAxNzUxMDA5MDdFQzBFMDkwNzY0NUYwOTA3RUMxRTA5MDc2NDRGMEI2Cis6MTAxNzYxMDA5MDdFQzJFMDkwNzY0M0YwQjQwMDAzMDIxNzc4OTA3NjQxCis6MTAxNzcxMDAxOTc0MDNGMDAyMTc4RTkwNzY0NEUwQjRCQjA5OTA3Njk5Cis6MTAxNzgxMDAxOTc0MDJGMDAyMTc4RTkwNzYxOTc0MDFGMDkwNzY0MjY2Cis6MDMxNzkxMDBFNEYwMjI1RgorOjA0MTc5NDAwOEQyOThCMkFFNgorOjEwMTc5ODAwMTI0QTU1RUE0OTYwNTcxMjM2OTI3RTAwMjlGRkVFM0FGRQorOjEwMTdBODAwQzlFRkM5NzUyQkZGRjUyQzg5MkRBQjJCQUEyQ0E5MkRCOAorOjEwMTdCODAwOTAwMDAxMTIzNkFCRkY2NDA0NjAwNUVGNjQwNTcwMkVEQgorOjEwMTdDODAwRUZCNDA0MTU5MDAwMDIxMjM2QUI2NTI5NzAwQjkwMDAzNworOjEwMTdEODAwMDMxMjM2QUI2NTJBNzAwMTIyMTIzNjkyN0UwMDI5RkY2OQorOjEwMTdFODAwRUUzQUM5RUZDOTc1MkJGRkY1MkM4OTJEODBCQzdCMDAxQgorOjA0MTdGODAwN0EwMDc5MDBGQQorOjAxMTdGQzAwMjJDQQorOjAzMTdGRDAwQzI4QjMyNkEKKzoxMDE4MDAwMDkwNzY5MEUwMTQ2MDM3MTQ3MDAyMDFEODE0NzAwMjIxQjEKKzoxMDE4MTAwMDcyMTQ3MDAyNDEzQjI0MDQ2MDAyNjEwMzkwN0ZGQzc0RTcKKzoxMDE4MjAwMENDRjA5MDdGRkY3NEZDRjA5MDc2OTVFMDQ0MDFGMDU0OEEKKzoxMDE4MzAwMDA1RjA5MDgwMDFGMEU0OTA3NjFBRjBDMjJFMjI5MDc2QTYKKzoxMDE4NDAwMDk1RTA0NDAxRjA0NDAyRjAzMDNFMDZFMDQ0MDRGMDgwQUMKKzoxMDE4NTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwN0EKKzoxMDE4NjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyMjkwMjcKKzoxMDE4NzAwMDdGRkM3NDc0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCNzMKKzoxMDE4ODAwMEYwOTA3Njk3RTA1NEZERjBFNDkwNzY4MUYwOTA3NjgwQzkKKzoxMDE4OTAwMEYwRUZCNDAyMjI5MDdGRkM3NDY4RjA5MDdGRkY3NEZDM0MKKzoxMDE4QTAwMEYwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRjBFNDkwRjkKKzoxMDE4QjAwMDc2ODFGMDkwNzY4MEYwMzAzRjA5OTA3Njk3RTA1NEZFODQKKzoxMDE4QzAwMEYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA1NEZCMjMKKzoxMDE4RDAwMEYwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0RkVGMDQ0RjMKKzoxMDE4RTAwMDAyRjAzMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0MjQKKzoxMDE4RjAwMEZCRjA5MDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxQjQKKzoxMDE5MDAwMEYwOTA3NjE5RTBGRkI0MDEyMjkwN0ZGQzc0MzBGMDkwRTMKKzoxMDE5MTAwMDdGRkY3NEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RjQKKzoxMDE5MjAwMEZERjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyMjkwQTIKKzoxMDE5MzAwMDdGRkM3NDFDRjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGMDYKKzoxMDE5NDAwMEYwOTA3Njk3RTA0NDAyRjBFNDkwNzY4MUYwOTA3NjgwMTMKKzoxMDE5NTAwMEYwMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3M0MKKzoxMDE5NjAwMEUwNDQwMUYwOTA3Njk3RTA1NEZCRjA5MDgwMDJGMEQyRDIKKzoxMDE5NzAwMDJFMjI5MDc2OTVFMDQ0MDFGMDQ0MDJGMDQ0MDhGMDMwQzUKKzoxMDE5ODAwMDNFMDZFMDQ0MDRGMDgwMDc5MDc2OTVFMDU0RkJGMDkwMkEKKzoxMDE5OTAwMDc2MUFFMEI0MDEwODkwNzY5NUUwOTA4MDAxRjA5MDc2OTgKKzoxMDE5QTAwMDE5RTBGRkI0MDEyNTkwN0ZGQzc0Q0NGMDkwN0ZGRjc0QTgKKzoxMDE5QjAwMEZDRjA5MDc2OEY3NDJCRjA5MDc2OTdFMDU0RkRGMDU0MDUKKzoxMDE5QzAwMEZCRjBFNDkwNzY4MUYwOTA3NjgwRjBFRkI0MDIyNTkwMDEKKzoxMDE5RDAwMDdGRkM3NEM4RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJGQkEKKzoxMDE5RTAwMEYwOTA3Njk3RTA0NDAyRjA1NEZCRjBFNDkwNzY4MUYwQkEKKzoxMDE5RjAwMDkwNzY4MEYwRUZCNDAzMjU5MDdGRkM3NDk4RjA5MDdGOTAKKzoxMDFBMDAwMEZGNzRGQ0YwOTA3NjhGNzQ1RkYwOTA3Njk3RTA1NEZENTEKKzoxMDFBMTAwMEYwNDQwNEYwRTQ5MDc2ODFGMDkwNzY4MEYwMzAzRjA5NTUKKzoxMDFBMjAwMDkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwQkUKKzoxMDFBMzAwMDkwNzY5N0UwOTA4MDAyRjBEMjJFMjI5MDc2OTVFMDU0MzYKKzoxMDFBNDAwMEZFRjA0NDAyRjA0NDA4RjAzMDNFMDZFMDQ0MDRGMDgwMkEKKzoxMDFBNTAwMDA3OTA3Njk1RTA1NEZCRjA5MDc2MUFFMEI0MDEwODkwNzgKKzoxMDFBNjAwMDc2OTVFMDkwODAwMUYwOTA3NjE5RTBGRkI0MDEyNTkwMjIKKzoxMDFBNzAwMDdGRkM3NEI0RjA5MDdGRkY3NEZDRjA5MDc2OEY3NDJCMzEKKzoxMDFBODAwMEYwOTA3Njk3RTA1NEZERjA1NEZCRjBFNDkwNzY4MUYwMEUKKzoxMDFBOTAwMDkwNzY4MEYwRUZCNDAyMjU5MDdGRkM3NEIwRjA5MDdGRDgKKzoxMDFBQTAwMEZGNzRGQ0YwOTA3NjhGNzQyRkYwOTA3Njk3RTA0NDAyRUMKKzoxMDFBQjAwMEYwNTRGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAzODAKKzoxMDFBQzAwMDI1OTA3RkZDNzQ2OEYwOTA3RkZGNzRGQ0YwOTA3NjhGMTcKKzoxMDFBRDAwMDc0NUZGMDkwNzY5N0UwNTRGREYwNDQwNEYwRTQ5MDc2NjMKKzoxMDFBRTAwMDgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwRDgKKzoxMDFBRjAwMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyMUUKKzowNDFCMDAwMEYwRDIyRTIyQ0YKKzoxMDFCMDQwMDMwMkMzOEMyMkM5MDc2MTlFMEZGQjQwMTBFOTA3NjdDMEMKKzoxMDFCMTQwMDc0QzBGMEEzNzQxNEYwQTM3NDBCRjBFRkI0MDIwREU0REEKKzoxMDFCMjQwMDkwNzY3Q0YwQTM3NDEwRjBBMzc0MENGMEVGQjQwMzBCNjQKKzowQzFCMzQwMEU0OTA3NjdDRjBBMzc0MThGMEEzRjAyMjdCCis6MTAxQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAxQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAxQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAxQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAxQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAxQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAxQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAxQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAxQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAxQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAxQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAxQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAxQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAxQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAxQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAxQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAxQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAxQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAxQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAxQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAxQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAxQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAxQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAxRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAxRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAxRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAxRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAxRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAxRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAxRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAxREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAxREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAxREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAxREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAxREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAxREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAxRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAxRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAxRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAxRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAxRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAxRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAxRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAxRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAxRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAxRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MEUxRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzoxMDFFQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTQKKzoxMDFFQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQKKzoxMDFFREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjQKKzoxMDFFRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzoxMDFFRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDQKKzoxMDFGMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzMKKzoxMDFGMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjMKKzoxMDFGMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzowMjFGM0UwMDAwMDBBMQorOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjBFMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMzdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMzhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMzlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyM0FFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyM0JFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyM0NFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyM0RFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyM0VFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyM0ZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyNDBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyNDFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyNDJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyNDNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyNDRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyNDVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyNDZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyNDdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyNDhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyNDlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyNEFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyNEJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyNENFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyNERFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyNEVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyNEZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyNTBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyNTFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyNTJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyNTNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyNTRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyNTVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyNTZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyNTdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyNThFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyNTlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyNUFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyNUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyNUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyNURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyNUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyNjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MEUyNkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDI2RkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDI3MEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDI3MUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDI3MkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDI3M0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDI3NEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDI3NUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzoxMDI3NkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUQKKzoxMDI3N0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEQKKzoxMDI3OEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0QKKzoxMDI3OUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzoxMDI3QUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDI3QkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQKKzoxMDI3Q0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDI3REMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUQKKzoxMDI3RUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREQKKzowNTI3RkMwMDAwMDAwMDAwMjJCNgorOjEwMjgwMTAwQzIyMEMyMjFDMjJBOTA3RkU4RTAxMjM3RjkyODMwMDBBNQorOjEwMjgxMTAwMjg4QzAxMjhBMjAyMkExRjIxMkE2QTIyMjkzRDgwMjkwNworOjEwMjgyMTAwN0Q4MTI5RDE4MjJBODRBMTJBQkFBMjAwMDAyQUJGOTBERgorOjEwMjgzMTAwN0ZFOUUwMTQ2MDExMjRGRTYwMjgyNEZFNjAzQjI0RkM0MworOjEwMjg0MTAwNzA0MDEyM0ZFNTQxQ0IxMjRFMUQ0MDAyNDFDQjkwN0ZCQgorOjEwMjg1MTAwRUFFMEI0MDEwNEMyMjI0MUNCOTA3RkI0RTA0NDAxRjAyQworOjEwMjg2MTAwNDFDQjEyNEUxRjkwN0ZFQUUwQjQwMTA0RDIyMjQxQ0I0QQorOjEwMjg3MTAwOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA5QgorOjEwMjg4MTAwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwMjQ1QgorOjEwMjg5MTAwRjU3MDA1MTI0ODYzNDFDQjkwN0ZCNEUwNDQwMUYwNDFFQgorOjEwMjhBMTAwQ0I5MDdGRTlFMDI0RkQ2MDU0MjQwMjYwMDIyMTM0MTJDMAorOjEwMjhCMTAwNEUxRDQwMDI0MUNCOTA3RkVBRTA3MDM4OTA3RkVDRTAwMgorOjEwMjhDMTAwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjREMworOjEwMjhEMTAwRjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkZFRgorOjEwMjhFMTAwMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDREOAorOjEwMjhGMTAwMjBGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0IxMjRFMUY1OAorOjEwMjkwMTAwNDAwMjQxQ0I5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTRFQworOjEwMjkxMTAwODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODI1MworOjEwMjkyMTAwRTQzNDdGRjU4Mzc0MDFGMDQxQ0I5MDdGQjRFMDQ0MDEzRQorOjEwMjkzMTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTBERQorOjEwMjk0MTAwNjAxMjI0Rjg2MDA5MjQwMjcwMjkxMjQzRTc0MUNCMTI3NgorOjEwMjk1MTAwNERDQTQxQ0IxMjRFMUJBMjIyRTQzM0ZGMjVFMEZGQTI1OAorOjEwMjk2MTAwMjNFNDMzNEY5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDIyRAorOjEwMjk3MTAwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCOTA3RkU5RTA5RQorOjEwMjk4MTAwNjAzMzI0RjY2MDJBMjQwNDcwM0Q5MDdGRUJFMDI0REU1RQorOjEwMjk5MTAwNjAwQzA0NzAxMjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y1MQorOjEwMjlBMTAwQjRFMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I2RAorOjEwMjlCMTAwMTI0NzQ1NDFDQjEyNEUxQkU0OTA3RjAwRjBBM0YwOTBFQgorOjEwMjlDMTAwN0ZCNTc0MDJGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I3QworOjEwMjlEMTAwOTA3RkU5RTAyNEY0NjAzNDI0MEM3MDM5MTI0RTFCOTA4RQorOjEwMjlFMTAwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjUxRgorOjEwMjlGMTAwRTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDA1OAorOjEwMkEwMTAwRjBFNEEzRjA5MDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA4NQorOjEwMkExMTAwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0Y4MQorOjEwMkEyMTAwRTlFMDI0RjY2MDEyMTQ2MDFBMjQwMjcwMUREMjIwOTA4RAorOjEwMkEzMTAwN0ZCNEUwNDQwMUYwODAxMkQyMjA5MDdGQjRFMDQ0MDFFMQorOjEwMkE0MTAwRjA4MDA3OTA3RkI0RTA0NDAxRjAyMDIwMTg5MDdGRUVFMQorOjEwMkE1MTAwRTA3MDA0QTNFMDYwMEJEMjI5RDIyNzEyMTc0QUQyMkFEMAorOjEwMkE2MTAwODAwMzEyMDgwMEMyMjA4MDYxOTA3RkVFRTA3MDA0QTMxMQorOjEwMkE3MTAwRTA2MDBCRDIyOUQyMjgxMjE3NEFEMjJBODA0QzEyMzg5MAorOjEwMkE4MTAwNzQ4MDQ3OTA3RkU5RTAyNEZFNjAxMjE0NjAxQTI0MDJFQQorOjEwMkE5MTAwNzAxREQyMjE5MDdGQjRFMDQ0MDFGMDgwMTJEMjIxOTBDOAorOjEwMkFBMTAwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwMjA1RQorOjEwMkFCMTAwMjEwMzEyMTAwMEMyMjE4MDExMTIyQUQ2ODAwQzEyNEU1RAorOjEwMkFDMTAwMjE1MDA3OTA3RkI0RTA0NDAxRjAyMDJBMDc5MDdGQjRBMQorOjA1MkFEMTAwRTA0NDAyRjAyMkM4Cis6MTAyQUQ2MDBFNDkwNzYyN0YwOTA3NjI3RTBGRjc1RjAwRkE0MjQ0MjY1Cis6MTAyQUU2MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2RDUzCis6MTAyQUY2MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI3RTAwNEYwODBENTY4Cis6MTAyQjA2MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRkIxCis6MTAyQjE2MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjI4RjAyNDA4Cis6MTAyQjI2MDA5RjcwMDJBMTc0MjQyMTYwMDJBMUExOTA3RkU5RTAyNDk0Cis6MTAyQjM2MDA3RTcwMDI2MUZDMTQ3MDAyODFCNTI0MDI2MDAyQTE2Q0YxCis6MTAyQjQ2MDBFRjc1RjAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0I5Cis6MTAyQjU2MDBBM0UwRkRBM0UwRkVBM0UwRkY3QjQ0N0FBQzc5MDA3ODE2Cis6MTAyQjY2MDAwMEMzMTIzN0FCNzAxMzkwN0YwMDc0NDRGMEEzNzRBQ0FCCis6MTAyQjc2MDBGMEU0QTNGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDRCCis6MTAyQjg2MDAwRkE0MjQ0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGRDRECis6MTAyQjk2MDBBM0UwRkVBM0UwRkY3QjgwN0FCQjc5MDA3ODAwQzMxMjM2Cis6MTAyQkE2MDAzN0FCNzAxMzkwN0YwMDc0ODBGMEEzNzRCQkYwRTRBMzdFCis6MTAyQkI2MDBGMDkwN0ZCNTc0MDNGMDkwNzYyN0UwNzVGMDBGQTQyNEFCCis6MTAyQkM2MDA0M0Y1ODJFNDM0NzVGNTgzRTBGQ0EzRTBGREEzRTBGRTYzCis6MTAyQkQ2MDBBM0UwRkY3QjAwN0E3Nzc5MDE3ODAwQzMxMjM3QUI2MEY4Cis6MTAyQkU2MDAwMkExQTg5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MDdGCis6MTAyQkY2MDA3RkI1NzQwM0YwMjI5MDc2MjdFMDc1RjAwRkE0MjQ0NzgyCis6MTAyQzA2MDBGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0MyCis6MTAyQzE2MDBFMEZGN0I0NDdBQUM3OTAwNzgwMEMzMTIzN0FCNzAxM0JGCis6MTAyQzI2MDA5MDdGMDA3NDQ0RjBBMzc0QUNGMEU0QTNGMDkwN0ZCNUY5Cis6MTAyQzM2MDA3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDNDCis6MTAyQzQ2MDAzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjgzCis6MTAyQzU2MDA4MDdBQkI3OTAwNzgwMEMzMTIzN0FCNzAxMzkwN0YwMDdGCis6MTAyQzY2MDA3NDgwRjBBMzc0QkJGMEU0QTNGMDkwN0ZCNTc0MDNGMDE2Cis6MTAyQzc2MDA5MDc2MjdFMDc1RjAwRkE0MjQ0N0Y1ODJFNDM0NzVGNUM1Cis6MTAyQzg2MDA4M0UwRkNBM0UwRkRBM0UwRkVBM0UwRkY3QjAwN0E3N0YwCis6MTAyQzk2MDA3OTAxNzgwMEMzMTIzN0FCNjAwMkExQTg5MDdGMDBGMERCCis6MTAyQ0E2MDBBMzc0NzdGMEEzNzQwMUYwOTA3RkI1NzQwM0YwMjI5MEJCCis6MTAyQ0I2MDA3NjI3RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4MzhFCis6MTAyQ0M2MDBFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTQxCis6MTAyQ0Q2MDAwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBM0UyCis6MTAyQ0U2MDA3NEFDRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDFGCis6MTAyQ0Y2MDA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBMzRDCis6MTAyRDA2MDBFMEZEQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEJDCis6MTAyRDE2MDBDMzEyMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEJFCis6MTAyRDI2MDBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRjdBCis6MTAyRDM2MDBBNDI0NEJGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0ZGCis6MTAyRDQ2MDBFMEZFQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0IzCis6MTAyRDU2MDBBQjcwNEY5MDdGMDBGMEEzNzQ3N0YwQTM3NDAxRjA5MEVFCis6MTAyRDY2MDA3RkI1NzQwM0YwMjI5MDdGQjRFMDQ0MDFGMDIyOTA3Rjk3Cis6MTAyRDc2MDBFOUUwMjQ3RjcwMUU5MDc2MjdFMDc1RjAwRkE0MjQ0RkJCCis6MTAyRDg2MDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDdGQjU3NEFBCis6MTAyRDk2MDAwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NEY2Cis6MDMyREE2MDAwMUYwMjIxNworOjEwMkRBOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MgorOjEwMkRCOTAwMzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJERgorOjEwMkRDOTAwRTQzNDc1RjU4Mzc0MDFGMEVGNzVGMDAzQTQyNDEwRjU2QworOjEwMkREOTAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkZBMAorOjEwMkRFOTAwNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBBQworOjEwMkRGOTAwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDVBNworOjEwMkUwOTAwRjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzRTQzQQorOjEwMkUxOTAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU5NworOjEwMkUyOTAwODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEY3RQorOjEwMkUzOTAwRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQ4OAorOjEwMkU0OTAwMTBGNTgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjAwOQorOjEwMkU1OTAwRTBGRjc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQ1QworOjEwMkU2OTAwMDFGMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODNCRQorOjEwMkU3OTAwNzQwM0YwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjVCQQorOjEwMkU4OTAwODNFNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjRDMworOjEwMkU5OTAwMEVGNTgyRTQzNDc1RjU4Mzc0MTBGMEVGNzVGMDAzQTQzMAorOjEwMkVBOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwNkYwRUY3NUYwMDNBOQorOjEwMkVCOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTBDNQorOjEwMkVDOTAwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjVFRgorOjEwMkVEOTAwODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVDRQorOjEwMkVFOTAwRjU4Mzc0MDRGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQzQgorOjEwMkVGOTAwNzVGNTgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNCMQorOjEwMkYwOTAwQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjBBQworOjEwMkYxOTAwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDhGMEVGNzU4MgorOjEwMkYyOTAwRjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwOTA1OQorOjEwMkYzOTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQ5MAorOjEwMkY0OTAwMzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MjQwRkY1ODI0QworOjEwMkY1OTAwRTQzNDc1RjU4Mzc0MEFGMEVGNzVGMDAzQTQyNDEwRjVEMQorOjEwMkY2OTAwODJFNDM0NzVGNTgzNzQwNEYwOTA3NjM2RTAwNEYwRTA3OQorOjEwMkY3OTAwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0MDIxOQorOjEwMkY4OTAwRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzNzQyQQorOjEwMkY5OTAwMDlGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1ODM4NAorOjEwMkZBOTAwNzQwNEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQ5MQorOjEwMkZCOTAwMEVGNTgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQxRAorOjEwMkZDOTAwMjQwRkY1ODJFNDM0NzVGNTgzNzQwN0YwRUY3NUYwMDM4NworOjBFMkZEOTAwQTQyNDEwRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMjBDCis6MTAyRkU3MDBDMEUwQzA4M0MwODJEMjI2NTM5MUVGOTA3RkFCNzQwMUJCCis6MDgyRkY3MDBGMEQwODJEMDgzRDBFMDMyNUIKKzowMTJGRkYwMDMyOUYKKzoxMDMwMDAwMDkwN0ZCNkUwMjBFMTAyQzIzREQyMzYyMDM2MDI0MTZFMEEKKzoxMDMwMTAwMDMwM0QwMjQxNkU5MDgwMDdFMDYwMDREMjM2ODAwMkMyRUIKKzoxMDMwMjAwMDM2MjAzNjAyNDEyRUQyMzVFNEY1MUE5MDgwMDRFMEY1QzAKKzoxMDMwMzAwMDE5NzQwODI1MEVGOEE2MTk4NTE5MThFNTE4MjBFNzA0NTMKKzoxMDMwNDAwMEQyMzg4MDAyQzIzODMwMzgwMjIxRDRFNEY1MTZFNTE5QUUKKzoxMDMwNTAwMEI0RjAwQ0QyMzk3NTA4MDQ3NTA5RjAwNTBFODAwMjA1MkMKKzoxMDMwNjAwMDE2RTUxOTY0Rjc3MDNEQzIzOUU1MEUyNEZFNjAxNzE0QTkKKzoxMDMwNzAwMDYwMjIyNDAzNzAyOTc1MDgwNTc1MDlGN0U0RjUwQUY1M0YKKzoxMDMwODAwMDBCNzUwRTA0ODAyMDc1MDgwNjc1MEFGN0U0RjUwQjc1QkMKKzoxMDMwOTAwMDBFMDQ4MDEyNzUwODA3NzUwQkY3NzUwRTA0ODAwNzEyNzEKKzoxMDMwQTAwMDREREE4MDAyMDUxNkU1MTk1NEY4NjRGODcwM0JDMjM1MTQKKzoxMDMwQjAwMEU1MTkyNDA3NjAwQzI0RkM2MDA4MjQwNTI0Rjg1MDA2NTgKKzoxMDMwQzAwMDgwMDhEMjNBODAwNkMyM0E4MDAyRDIzQTc1MUEwMTIwQUMKKzoxMDMwRDAwMDNBMTk5MDdFODA3NDBGRjBBM0U1MTlGMEU0QTNGMEEzRjEKKzoxMDMwRTAwMEYwOTA3RkI3NzQwNEYwODAwMjA1MTYyMDM5NkRFNTE5NjEKKzoxMDMwRjAwMDY0Rjc2MDY3RTUxQTcwNjNFNTE4NTRGMDY0RjA3MDU5N0UKKzoxMDMxMDAwMDg1MTgxOUY1MEVFNTE5MjQwRjYwMUIyNEZFNjAxNzI0OUQKKzoxMDMxMTAwMEZENjAyMjE0NjAxRjI0MDU3MDJGNzUwODAzMDUwRTg1QkQKKzoxMDMxMjAwMDE4MDlEMjM3ODAyODc1MDgwMjA1MEU4NTE4MDk3NTE0MEMKKzoxMDMxMzAwMDAxRDIzNzgwMTk3NTA4MDUwNTBFODUxODA5RTRGNTBBQ0UKKzoxMDMxNDAwMEY1MEI3NTBFMDNEMjM3ODAwNTEyNEREQUMyMzUzMDM1RDYKKzoxMDMxNTAwMDBBODUwODEzODUxODEyODAwMjA1MTY4NTE4MTlFNTE2QzgKKzoxMDMxNjAwMDY0MDQ3MDYyRjUwRUU1MTk1NEYwRjUxOUY1MTU4NTE4MkIKKzoxMDMxNzAwMDE5RTUxNTI0NzA2MDE4MjRGMDYwMTQyNEYwNjAxMDI0MDAKKzoxMDMxODAwMEYwNjAxRTI0RjA2MDFBMjRGMDYwMDQyNDYwNzAyN0U1Q0IKKzoxMDMxOTAwMDE1QzQ1NDBGRjUxOUY1MDgwNTBFODUxODA5RDIzNzgwQTYKKzoxMDMxQTAwMDFBRTUxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOTc1QUIKKzoxMDMxQjAwMDE0MDFEMjM3ODAwNTEyNEREQUMyMzUzMDM1MEE4NTE5MkYKKzoxMDMxQzAwMDEzODUxODEyODAwMjA1MTZFNTE2RDM5NDA1NDA1NzEyOTAKKzoxMDMxRDAwMDREREE4MDUyMzAzOTE3RTUwRTcwMEE4NTA4MDk3NTA4RjYKKzoxMDMxRTAwMDA0MDUwRTgwNDE3NDA4MjUwRUY4QTYxOTgwMzgyMDM3OTIKKzoxMDMxRjAwMDJBRTUwRUI0MDEwRjg1MDgwQTg1MDkwQjg1MTMwODg1OTkKKzoxMDMyMDAwMDEyMDk3NTBFMDRFNTE0QjQwMTFDODUwODBBRTRGNTBCRDcKKzoxMDMyMTAwMDg1MTMwODg1MTIwOTc1MEUwNDgwMEJFNTE0QjQwMTA2QTgKKzoxMDMyMjAwMEU0RjUwQjc1MEUwNEU0RjUxQTMwMzUwMjA1MEVFNTBFRDMKKzoxMDMyMzAwMEQzOTQwMzUwMDIwMTBCQzIzN0U0RjUwRUY1MTBDMjM2RTkKKzoxMDMyNDAwMEQyM0RGNTE0NzQwODI1MTBGOEU2RkY3NDgwMjUxMEY1QkEKKzoxMDMyNTAwMDgyRTQzNDdFRjU4M0VGRjA3NDA4MjUxMEY4RTRGNjA1NzcKKzowRjMyNjAwMDEwRTUxMEI0MDRERTkwN0ZCNzc0MDRGMDAxMEIyMjY4Cis6MTAzMjZGMDA5MDc2MThFMEZGNjQwNTcwNDI5MDc1QUJFMEI0MDExOUQ5Cis6MTAzMjdGMDA5MDcyMzc3NDAxRjBFNDkwODAyMEYwOTA4MDMxRjA5MERDCis6MTAzMjhGMDA4MDI4RjA5MDgwMzlGMDgwMjJFNDkwNzIzN0YwOTA3NUFBCis6MTAzMjlGMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDcxCis6MTAzMkFGMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjUyCis6MTAzMkJGMDA4MTk5OTA3MjM5NzQwNEYwOTA3MjM5RTBGRjI0RkU5MDc2Cis6MTAzMkNGMDA3MjA0RjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNUJGCis6MTAzMkRGMDA4M0UwNjQwMTcwNTQ5MDcyMzYwNEYwOTA3MjA0RTBGRjQyCis6MTAzMkVGMDAyNEZENjAyODI0RkU2MDI0MjQwMzI0RkI1MDA0NjAxQzZBCis6MTAzMkZGMDA4MThDNzQyMDJGRjU4MkU0MzQ4MEY1ODNFNEYwNzQyOEY4Cis6MTAzMzBGMDAyRkY1ODJFNDM0ODBGNTgzRTRGMDgxOEM5MDcyMDRFMDMxCis6MTAzMzFGMDBGRjI0MzBGNTgyRTQzNDgwRjU4M0U0RjA3NDM4MkZGNTIwCis6MTAzMzJGMDA4MkU0MzQ4MEY1ODNFNEYwODE4Q0U0OTA3MjM2RjA5MDdGCis6MTAzMzNGMDA3MjM5RTA3NUYwMEFBNDI0QURGNTgyRTQzNDc1RjU4MzkzCis6MTAzMzRGMDBFMEZGN0UwMDkwNzUwQ0VFRjBBM0VGRjA3MDA2OTA3MjI4Cis6MTAzMzVGMDAwMjc0M0JGMDkwNzUwQ0UwRkVBM0UwRkY2NDgwNEU3MEFBCis6MTAzMzZGMDAwNDkwNzIwMkYwRUY0RTcwMDI4MTM1RUY2NDgwNEU3MDYwCis6MTAzMzdGMDAwMjgxMzVFRkY4RTQ5MDc1MERGMEU4OTA3NTBDRjA5MDQwCis6MTAzMzhGMDA3MjM0RTA3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4MzQ5Cis6MTAzMzlGMDBFMEZGOTA3MjAyRjA5MDc1MERFMDJGRjA5MDc1MENFMDQ5Cis6MTAzM0FGMDAzNDAwRjBFMEZFQTNFMEZGRTRGQ0ZEN0JENjdBQTVGOTQ0Cis6MTAzM0JGMDBGOEQzMTIzNzk1NDAwQTkwNzUwQzc0QTVGMEEzNzRENjA0Cis6MTAzM0NGMDBGMDkwNzUwREUwMjQyQUYwOTA3NTBDRTAzNDVBRjBFMDdGCis6MTAzM0RGMDBGRUEzRTA3ODA1Q0VBMkU3MTNDRTEzRDhGOEZGOTA3NUMxCis6MTAzM0VGMDAwQ0VFRjBBM0VGRjA5MDcyMkNFRUYwQTNFRkYwRDM5NDZECis6MTAzM0ZGMDBEMkVFNjQ4MDk0ODI0MDBBOTA3MjJDNzQwMkYwQTM3NDBGCis6MTAzNDBGMDBEMkYwQzM5MDcyMkNFMDY0ODA5NDgwNTAwNEU0RjBBMzU3Cis6MTAzNDFGMDBGMDkwNzIyQ0UwRkVBM0UwMjQzQUY1ODJFRTM0NzJGNUMwCis6MTAzNDJGMDA4M0UwOTA3MjAyRjA5MDcyMDRFMEZGMjRGRDYwMkQyNDdGCis6MTAzNDNGMDBGRTYwMjkyNDAzMjRGQjUwMDQ2MDIxODA0MDkwNzIwMjE3Cis6MTAzNDRGMDBFMEZFNzQyMDJGRjU4MkU0MzQ4MEY1ODNFRUYwNzQyOENCCis6MTAzNDVGMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDgwMjE5MDcyMDJFMDQ0Cis6MTAzNDZGMDBGRjkwNzIwNEUwRkUyNDMwRjU4MkU0MzQ4MEY1ODNFRkEwCis6MTAzNDdGMDBGMDc0MzgyRUY1ODJFNDM0ODBGNTgzRUZGMDkwNzIzOUQyCis6MEIzNDhGMDBFMDA0RjBFMDY0MEE2MDAyNDFDNzIyODQKKzoxMDM0OUEwMDkwNzYxOEUwRkZCNDA1MjM5MDcyMzdFMDcwMUQ5MDc1OUUKKzoxMDM0QUEwMEFERTA5MDcyMkJGMEUwMjQ4MEYwRTA5MDgwMjBGMDkwNjQKKzoxMDM0QkEwMDgwMzFGMDkwODAyOEYwOTA4MDM5RjBFRjY0MDY2MDAyNDUKKzoxMDM0Q0EwMEMxOTE5MDcyMzZFMDYwMDJDMTkxOTA3NjQwRTA3MDMxMEQKKzoxMDM0REEwMDkwNzIwMzc0MDNGMDkwNzIwM0UwRkY3NUYwMEFBNDI0NUIKKzoxMDM0RUEwMEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3MjI5RTBGREVFRDgKKzoxMDM0RkEwMDZENjAwRUVGQzM5NDBBNTAwODkwNzIwM0UwMDRGMDgwRTYKKzoxMDM1MEEwMEQ1OTA3MjM5NzQwNEYwOTA3NjQwRTA3MDA4OTA3MjAzOTYKKzoxMDM1MUEwMEUwOTA3MjM5RjA5MDcyMzlFMEZEMjRGRTkwNzIyQUYwNDAKKzoxMDM1MkEwMEVENzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFMEZGNjUKKzoxMDM1M0EwMDdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIwMjc0QTQKKzoxMDM1NEEwMDgwRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzAwNDkwNUEKKzoxMDM1NUEwMDcyMDJGMEVGNEU3MDAyQzExQkVGNjQ4MDRFNzAwMkMxMUUKKzoxMDM1NkEwMDFCRUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwRUQ3NUYwMkUKKzoxMDM1N0EwMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMEZGOTA3MjAyNjQKKzoxMDM1OEEwMEYwOTA3NTBERTAyRkYwOTA3NTBDRTAzNDAwRjBFMEZFM0QKKzoxMDM1OUEwMEEzRTBGRkU0RkNGRDdCRDY3QUE1RjlGOEQzMTIzNzk1QjAKKzoxMDM1QUEwMDQwMEE5MDc1MEM3NEE1RjBBMzc0RDZGMDkwNzUwREUwREUKKzoxMDM1QkEwMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTBGRUEzRTA3ODA1NzYKKzoxMDM1Q0EwMENFQTJFNzEzQ0UxM0Q4RjhGRjkwNzUwQ0VFRjBBM0VGNTYKKzoxMDM1REEwMEYwOTA3MjJDRUVGMEEzRUZGMEQzOTREMkVFNjQ4MDk0QzQKKzoxMDM1RUEwMDgyNDAwQTkwNzIyQzc0MDJGMEEzNzREMkYwQzM5MDcyRDMKKzoxMDM1RkEwMDJDRTA2NDgwOTQ4MDUwMDRFNEYwQTNGMDkwNzIyQ0UwRjQKKzoxMDM2MEEwMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjU4M0UwOTA3MjAyNkEKKzoxMDM2MUEwMEYwOTA3MjJBRTBGRjI0RkQ2MDJEMjRGRTYwMjkyNDAzMjUKKzoxMDM2MkEwMDI0RkI1MDA0NjAyMTgwNDA5MDcyMDJFMEZFNzQyMDJGMzcKKzoxMDM2M0EwMEY1ODJFNDM0ODBGNTgzRUVGMDc0MjgyRkY1ODJFNDM0QzEKKzoxMDM2NEEwMDgwRjU4M0VFRjA4MDIxOTA3MjAyRTBGRjkwNzIyQUUwMEEKKzoxMDM2NUEwMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZGMDc0MzgyRUY1RDkKKzoxMDM2NkEwMDgyRTQzNDgwRjU4M0VGRjA5MDc2NDBFMDcwMDY5MDcyNDEKKzoxMDM2N0EwMDM5NzQwQUYwOTA3MjM5RTAwNEYwRTBDMzk0MEE1MDAyRjcKKzowODM2OEEwMEExMTFFNDkwNzY0MEYwMjI0QQorOjEwMzY5MjAwQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDIzNgorOjA5MzZBMjAwRTMyMjg5ODI4QTgzRTQ5MzIyNjkKKzoxMDM2QUIwMEJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwRDQKKzoxMDM2QkIwMDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyMUUKKzowRDM2Q0IwMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyMzgKKzoxMDM2RDgwMEMyRDVFQzMwRTcwOUIyRDVFNEMzOURGREU0OUNGQ0VFMEQKKzoxMDM2RTgwMDMwRTcxNUIyRDVFNEMzOUZGRkU0OUVGRTEyMzgxRkMzMkUKKzoxMDM2RjgwMEU0OURGREU0OUNGQzgwMDMxMjM4MUYzMEQ1MDdDM0U0MjkKKzowNjM3MDgwMDlGRkZFNDlFRkUyMjdCCis6MTAzNzBFMDBCQjAxMTBFNTgyMjlGNTgyRTU4MzNBRjU4M0UwRjVGMEY5Cis6MTAzNzFFMDBBM0UwMjI1MDA5RTkyNTgyRjg4NkYwMDhFNjIyQkJGRUQ2Cis6MTAzNzJFMDAwQUU5MjU4MkY4RTJGNUYwMDhFMjIyRTU4MzJBRjU4MzFDCis6MDgzNzNFMDBFOTkzRjVGMEEzRTk5MzIyRTEKKzoxMDM3NDYwMEU4OEZGMEE0Q0M4QkYwQTQyQ0ZDRTk4RUYwQTQyQ0ZDMjIKKzoxMDM3NTYwMDhBRjBFREE0MkNGQ0VBOEVGMEE0Q0RBOEYwOEJGMEE0QTAKKzoxMDM3NjYwMDJEQ0MzODI1RjBGREU5OEZGMEE0MkNDRDM1RjBGQ0VCRkYKKzoxMDM3NzYwMDhFRjBBNEZFQTlGMEVCOEZGMEE0Q0ZDNUYwMkVDRDM5QzQKKzowRjM3ODYwMEZFRTQzQ0ZDRUFBNDJEQ0UzNUYwRkRFNDNDRkMyMjMxCis6MTAzNzk1MDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFQzY0ODBDOEFCCis6MDYzN0E1MDA2NDgwOTg0NUYwMjI0QgorOjEwMzdBQjAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjA3NAorOjAxMzdCQjAwMjJFQgorOjBDMzdCQzAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyODAKKzoxMDM3QzgwMEE4ODI4NTgzRjBEMDgzRDA4MjEyMzdERjEyMzdERjEyQzgKKzoxMDM3RDgwMDM3REYxMjM3REZFNDczRTQ5M0EzQzU4M0M1RjBDNTgzRUQKKzoxMDM3RTgwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4NEIKKzowMTM3RjgwMDIyQUUKKzoxMDM3RjkwMEQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzNUYKKzoxMDM4MDkwMDkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwNzIKKzowNjM4MTkwMEVGQTNBM0EzODBERjcyCis6MTAzODFGMDBCQzAwMEJCRTAwMjlFRjhERjA4NEZGQURGMDIyRTRDQzhECis6MTAzODJGMDBGODc1RjAwOEVGMkZGRkVFMzNGRUVDMzNGQ0VFOURFQzU2Cis6MTAzODNGMDA5ODQwMDVGQ0VFOURGRTBGRDVGMEU5RTRDRUZEMjJFRDlDCis6MTAzODRGMDBGOEY1RjBFRTg0MjBEMjFDRkVBREYwNzVGMDA4RUYyRkU2Cis6MTAzODVGMDBGRkVEMzNGRDQwMDc5ODUwMDZENUYwRjIyMkMzOThGREQ3Cis6MDUzODZGMDAwRkQ1RjBFQTIyNzQKKzoxMDM4NzQwMEU0OTA3NjI5RjA5MDc2MjlFMEZGNzVGMDBGQTQyNDQyQjUKKzoxMDM4ODQwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQTcKKzoxMDM4OTQwMDYwMEVFRkMzOTQwNjUwMDg5MDc2MjlFMDA0RjA4MEQ1QkEKKzoxMDM4QTQwMEVGQjQwNjA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDBGMDYKKzoxMDM4QjQwMEE0MjQ0MUY1ODJFNDM0NzVGNTgzRTA5MDc2MkFGMDI0NUIKKzoxMDM4QzQwMEJGNzAwMjQxNDEyNEUwNzAwMjQxMTIyNDIxNjAwMjQxOTAKKzoxMDM4RDQwMDNBOTA3RkU5RTAyNEZFNjA3RDE0NzAwMjIxQjIyNDAyNTQKKzoxMDM4RTQwMDYwMDI0MTBBMTIxNzUxOTA3NjQyRTBGQ0EzRTBGREEzNjYKKzoxMDM4RjQwMEUwRkVBM0UwRkY5MDc2MjlFMDc1RjAwRkE0MjQ0M0Y1RTEKKzoxMDM5MDQwMDgyRTQzNDc1RjU4MzEyMzdCQzkwNzYxOUUwRkZCNDAxNzQKKzoxMDM5MTQwMDEyOTA3NjdDNzQ2N0YwOTA3NjdENzQwNkYwOTA3NjdFRDMKKzoxMDM5MjQwMDc0MEJGMEVGQjQwMjBGRTQ5MDc2N0NGMDkwNzY3REYwQTcKKzoxMDM5MzQwMDkwNzY3RTc0MENGMEVGQjQwMzBGRTQ5MDc2N0NGMDkwRjQKKzoxMDM5NDQwMDc2N0RGMDkwNzY3RTc0MThGMDkwNzYxQTc0MDFGMDEyRjkKKzoxMDM5NTQwMDNFOUYxMjE4MDAyMjkwN0VDMkUwRkZFNEZDRkRGRUZCQjUKKzoxMDM5NjQwMEZBNzkwMUY4MTIzNzQ2QzhFQ0M4QzlFREM5Q0FFRUNBREIKKzoxMDM5NzQwMENCRUZDQjkwN0VDMUUwRkVFNEZDRkQyQkZCRUEzRUZBRUMKKzoxMDM5ODQwMEVEMzlGOUVDMzhGODkwN0VDMEUwRkZFNEZFRUIyRkZGNTAKKzoxMDM5OTQwMEVFM0FGRUVEMzlGREVDMzhGQzkwNzYyOUUwNzVGMDBGMzcKKzoxMDM5QTQwMEE0MjQ0N0Y1ODJFNDM0NzVGNTgzMTIzN0JDMjI5MDdFNTMKKzoxMDM5QjQwMEMyRTBGRkU0RkNGREZFRkJGQTc5MDFGODEyMzc0NkM4QzkKKzoxMDM5QzQwMEVDQzhDOUVEQzlDQUVFQ0FDQkVGQ0I5MDdFQzFFMEZFMEMKKzoxMDM5RDQwMEU0RkNGRDJCRkJFQTNFRkFFRDM5RjlFQzM4Rjg5MDdFNzUKKzoxMDM5RTQwMEMwRTBGRkU0RkVFQjJGRkZFRTNBRkVFRDM5RkRFQzM4Q0MKKzoxMDM5RjQwMEZDOTA3NjI5RTA3NUYwMEZBNDI0NEJGNTgyRTQzNDc1MkQKKzoxMDNBMDQwMEY1ODMxMjM3QkMyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMEEKKzoxMDNBMTQwMEU5RTAxNDcwMTk5MDdFQzBFMEZGOTA3NjI5RTA3NUYwMUIKKzoxMDNBMjQwMDBGQTQyNDRGRjU4MkU0MzQ3NUY1ODNFRkYwMjI5MDdGRTAKKzowRTNBMzQwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5RgorOjEwM0E0MjAwRTQ5MDc2MzVGMDkwNzYzNUUwRkZDMzk0MDM0MDAyNDE2RQorOjEwM0E1MjAwRkZFRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVGNTgzRUYyQQorOjEwM0E2MjAwRjBFRjc1RjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTQzMworOjEwM0E3MjAwRjBFRjc1RjAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzNzQ5MgorOjEwM0E4MjAwRjBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODMwNQorOjEwM0E5MjAwNzRGRkYwRUY3NUYwMEFBNDI0QUVGNTgyRTQzNDc1RjVGNAorOjEwM0FBMjAwODNFNEYwRUY3NUYwMEFBNDI0QUZGNTgyRTQzNDc1RjVFRgorOjEwM0FCMjAwODM3NDgwRjBFRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVDMworOjEwM0FDMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVDRAorOjEwM0FEMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVCQworOjEwM0FFMjAwRjU4M0U0RjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVBQgorOjEwM0FGMjAwRjU4Mzc0MDFGMDkwNzYzNUUwMDRGMDQxNDc5MDc2M0MwRQorOjEwM0IwMjAwNzQwQUYwRTRBM0YwOTA3NjM1NzQwM0YwOTA3NjNDRTAwQQorOjEwM0IxMjAwRkY5MDc2MzVFMEZFQzM5RjQwMDI2MUQyOTA3NjNERTA5MQorOjEwM0IyMjAwRkYwNEYwRUU3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjVEOAorOjEwM0IzMjAwODNFRkYwRUU3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU1OAorOjEwM0I0MjAwODNFNEYwRUU3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU1MgorOjEwM0I1MjAwODM3NDVFRjBFRTc1RjAwQUE0MjRBREY1ODJFNDM0NzU0OAorOjEwM0I2MjAwRjU4Mzc0QkFGMEVFNzVGMDBBQTQyNEFFRjU4MkU0MzQ1QgorOjEwM0I3MjAwNzVGNTgzNzQwNUYwRUU3NUYwMEFBNDI0QUZGNTgyRTRCRQorOjEwM0I4MjAwMzQ3NUY1ODM3NDgwRjBFRTc1RjAwQUE0MjRCMEY1ODJFMgorOjEwM0I5MjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMUY1ODJGRAorOjEwM0JBMjAwRTQzNDc1RjU4M0U0RjBFRTc1RjAwQUE0MjRCMkY1ODJFQworOjEwM0JCMjAwRTQzNDc1RjU4Mzc0MTVGMEVFNzVGMDBBQTQyNEIzRjVCOAorOjEwM0JDMjAwODJFNDM0NzVGNTgzRTRGMDkwNzYzNUUwMDRGMDYxMEUxQQorOjAxM0JEMjAwMjJEMAorOjEwM0JEMzAwRTQ5MDc2MzZGMEUwRkI3NUYwMEZBNDI0NDFGNTgyRTQxRgorOjEwM0JFMzAwMzQ3NUY1ODM3NDQwRjBFQjc1RjAwRkE0MjQ0MkY1ODIyRAorOjEwM0JGMzAwRTQzNDc1RjU4Mzc0MEFGMEVCNzVGMDBGQTQyNDQzRjVGMAorOjEwM0MwMzAwODJFNDM0NzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjBEOQorOjEwM0MxMzAwMEZBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDBGNgorOjEwM0MyMzAwQUM0NEVCNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNCMworOjEwM0MzMzAwMTIzN0M4MDAwMTc3MDA5MDc2MzZFMDA0RjBFMEZCNzU5OAorOjEwM0M0MzAwRjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MEYwRUI1RQorOjEwM0M1MzAwNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDhDRjA3NworOjEwM0M2MzAwRUI3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4MzEyMzcyMgorOjEwM0M3MzAwQzgwMDAwQUM0NEVCNzVGMDBGQTQyNDQ3RjU4MkU0MzQ4QworOjEwM0M4MzAwNzVGNTgzMTIzN0M4MDAwMEFDNDRFQjc1RjAwRkE0MjQxQworOjEwM0M5MzAwNEJGNTgyRTQzNDc1RjU4MzEyMzdDODAwMDE3NzAwOTA0MQorOjEwM0NBMzAwNzYzNkUwMDRGMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTREQQorOjEwM0NCMzAwMzQ3NUY1ODM3NDQwRjBFRjc1RjAwRkE0MjQ0MkY1ODI1OAorOjEwM0NDMzAwRTQzNDc1RjU4Mzc0OEZGMDkwNzYzNkUwMDRGMEUwRkYwQQorOjEwM0NEMzAwNzVGMDBGQTQyNDQxRjU4MkU0MzQ3NUY1ODM3NDQxRjA0MworOjEwM0NFMzAwRUY3NUYwMEZBNDI0NDJGNTgyRTQzNDc1RjU4Mzc0ODRGMAorOjEwM0NGMzAwRjA5MDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU3MAorOjEwM0QwMzAwODJFNDM0NzVGNTgzNzQ2MUYwRUY3NUYwMEZBNDI0NDJGNworOjEwM0QxMzAwRjU4MkU0MzQ3NUY1ODM3NDgxRjA5MDc2MzZFMDA0RjAyRgorOjEwM0QyMzAwRTBGRjc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0NAorOjEwM0QzMzAwNjFGMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM0NgorOjA0M0Q0MzAwNzQwMUYwMjJGNQorOjEwM0Q0NzAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTBGNgorOjEwM0Q1NzAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZCMQorOjEwM0Q2NzAwQzBFMDkwN0ZBMkUwOTA3NjdGRjA5MDdGNzRFMDkwNzYzRAorOjEwM0Q3NzAwODdGMDkwN0Y3NUUwOTA3Njg4RjA5MDdGOThFMDQ0MDIxNgorOjEwM0Q4NzAwRjA5MDc2OTZFMEZGMjBFMTBDNDQwMkYwOTA4MDAzRjA3QgorOjEwM0Q5NzAwRDIzMjEyNEIyODkwNzY3RkUwMjBFMjUwOTA3Njg3RTA2RgorOjEwM0RBNzAwRkVBM0UwN0MwMDI0MDBGNTM0RUMzRUY1MzM5MDc2OThEMgorOjEwM0RCNzAwRTBGREFFMzNBRjM0MTIzNkQ4OTA3Njg3RUZGMEQyMkZDRQorOjEwM0RDNzAwMzAzMTI5MjAzRjI2QzIzMTkwN0Y5NEUwNTRDRkYwOTBDNAorOjEwM0RENzAwN0Y5QUUwMzBFNDA0RDIyREMyMkM5MDdGOUFFMDIwRTU1MAorOjEwM0RFNzAwMDRDMjJERDIyQzkwN0Y5NEUwNDQzMEYwMTI0OEJEMTJDQgorOjEwM0RGNzAwMUIwNDMwMkYxMjEyNDIxRkMyMkY3NUU4MDExMjE2OEFCOAorOjEwM0UwNzAwNzVFODBERDIyQjgwMDU3NUU4MDFDMjJCMjAyQjM0OTA2NQorOjEwM0UxNzAwNzYxOUUwRkZCNDAxMEU5MDc2N0M3NDY3RjBBMzc0MDYwMAorOjEwM0UyNzAwRjBBMzc0MEJGMEVGQjQwMjBCOTA3NjdDRTRGMEEzRjBGMAorOjEwM0UzNzAwQTM3NDBDRjBFRkI0MDMwQjkwNzY3Q0U0RjBBM0YwQTMyQgorOjEwM0U0NzAwNzQxOEYwNzVDQUQzNzVDQkZFRDJDQTMwMzQwNEMyMzRBNQorOjEwM0U1NzAwODAwMkQyMzQzMDM0MEQ5MDc2ODlFMEMzOTQwMzQwMDQ1NQorOjEwM0U2NzAwRTAyNEZERjA1MzkxRUY5MDdGQUI3NDAyRjBGMDkwN0Y2OAorOjEwM0U3NzAwOThFMDU0RkRGMEQwRTBGRkQwRTBGRUQwRTBGREQwRTBDOAorOjEwM0U4NzAwRkNEMEUwRkJEMEUwRkFEMEUwRjlEMEUwRjhEMEQwRDAxOQorOjA4M0U5NzAwODJEMDgzRDBGMEQwRTAzMkFDCis6MTAzRTlGMDA5MDc2OTJFMDE0NjAxRDE0NzAwMkUxNTQyNDAyNjAwMkM3Cis6MTAzRUFGMDBFMUU0OTA3Njk0NzQwMUYwOTA4MDAwRjBFNDkwNzY4RUM3Cis6MTAzRUJGMDBGMEQyMzEyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0ZGMjJCCis6MTAzRUNGMDBGMDkwN0ZGMzc0MzBGMDkwN0ZGRjc0RkNGMDkwNzY5NzUyCis6MTAzRURGMDBFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJGMERFCis6MTAzRUVGMDA5MDdGRjM3NDM0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDNFCis6MTAzRUZGMDA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA5MDFCCis6MTAzRjBGMDA3RkYzNzQ2NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0NDM5Cis6MTAzRjFGMDAwNEYwOTA3Njk0RTA0NDAxRjA5MDgwMDBGMDMwM0YwOTc3Cis6MTAzRjJGMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMDhBCis6MTAzRjNGMDA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNEYwOTA3NkU3Cis6MTAzRjRGMDA4RTc0MDFGMDIyOTA3NjE5RTBGRkI0MDExQkU0OTA3RjhDCis6MTAzRjVGMDBGMkYwOTA3RkYzNzQ0NEYwOTA3RkZGNzRGQ0YwOTA3NjUyCis6MTAzRjZGMDA5N0UwNTRGREYwNTRGQkYwRUZCNDAyMUJFNDkwN0ZGMkE2Cis6MTAzRjdGMDBGMDkwN0ZGMzc0NENGMDkwN0ZGRjc0RkNGMDkwNzY5Nzg1Cis6MTAzRjhGMDBFMDQ0MDJGMDU0RkJGMEVGQjQwMzE4RTQ5MDdGRjJGMDNBCis6MTAzRjlGMDA5MDdGRjM3NDk0RjA5MDdGRkY3NEZDRjA5MDc2OTdFMDJECis6MTAzRkFGMDA0NDA0RjA5MDc2OTRFMDU0RkVGMDkwODAwMEYwMzAzRjlGCis6MTAzRkJGMDAwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUUxCis6MTAzRkNGMDBGMDkwNzY5N0UwOTA4MDAyRjA5MDc2OTg3NDA2RjA5MERCCis6MDYzRkRGMDA3NjhFNzQwMkYwMjI1MAorOjEwM0ZFNTAwOTA3RkVBRTA5MDc2ODJGMEU0OTA3NjkxRjA5MDc2OTI3OAorOjBCM0ZGNTAwRjA5MDc2OTBGMDkwNzY5M0YwRDMyMkNECis6MTA0MDAwMDBFNTExRDM5NDAwNTAwMjIxMDY5MDc2ODlFMEMzOTQwODBDCis6MTA0MDEwMDA0MDAyMjEwNjc0NDAyNTBGRjU4MkU0MzQ3RUY1ODNFMEVBCis6MTA0MDIwMDBGNTE3RTUwRDYwMEU5MDgwMDVFNTE3RjA5MDc2ODlFMEI0Cis6MTA0MDMwMDAwNEYwMDFEQUU1MTcxMjM3Rjk0MEMxMDI0MDY3MDU0MDg0Cis6MTA0MDQwMDA3QTA2NDA5ODA3NDBDMTBDNDBDMTBENDBDNzBGNDBDQkQ1Cis6MTA0MDUwMDBGNjQwQ0JGODQwQ0JGQTQwQ0JGQjQwQ0JGQzQwQ0JGRTRDCis6MTA0MDYwMDA0MENCRkYwMDAwNDBEQTkwN0U0MUUwOTA4MDA1RjA5MDY4Cis6MTA0MDcwMDA3Njg5RTAwNEYwNzUxMTAxODA2MDkwN0U0MUUwOTA4MEM3Cis6MTA0MDgwMDAwNUYwOTA3RTQyRTA5MDgwMDVGMDkwNzY4OUUwMDRGMEEzCis6MTA0MDkwMDBFMDA0RjA3NTExMDE4MDQyOTA3RTQxRTA5MDgwMDVGMENGCis6MTA0MEEwMDA5MDdFNDJFMDkwODAwNUYwOTA3RTQzRTA5MDgwMDVGMEE1Cis6MTA0MEIwMDA5MDc2ODlFMDA0RjBFMDA0RjBFMDA0RjA3NTExMDE4MEVFCis6MTA0MEMwMDAxOUQyM0JEMjNDODAxM0QyM0I4MDBGOTA4MDA1RTUxNzdDCis6MTA0MEQwMDBGMDkwNzY4OUUwMDRGMDc1MTEwMTIwM0IwNDA1MEQ4MDE1Cis6MTA0MEUwMDAxRjMwM0MxQzkwN0U0MUUwOTA4MDA1RjA5MDdFNDJFMEM1Cis6MTA0MEYwMDA5MDgwMDVGMDkwNzY4OUUwMDRGMEUwMDRGMDc1MTEwMUZECis6MTA0MTAwMDAwNTBGMTUxMTAxMDBFNTExNzAxMEMyMzNGNTBERjUwRjAzCis6MEI0MTEwMDA5MDdGQzc3NDA0RjBDMjNCQzIzQzIyNDkKKzoxMDQxMUIwMDkwNzY4REUwNjQwMTcwMjczMDI3MDhDMjI3MTIwODAwQzMKKzoxMDQxMkIwMDEyMTc0QTMwMjgwOEMyMjgxMjM4NzQxMjE3NEEzMDJBM0MKKzoxMDQxM0IwMDBFRTQ5MDc2OERGMEMyMkE5MDdGQjRFMDQ0MDJGMDkwQUEKKzoxMDQxNEIwMDc2M0ZFMEI0MDEwNUU0RjAxMjMyNkY5MDc2NDFFMEI0QjMKKzoxMDQxNUIwMDAxMDVFNEYwMTIzNDlBOTA3NjQwRTBCNDAxMDMxMjM0NzYKKzoxMDQxNkIwMDlBMTIzMDAwMzAzMzAzMTI0MDAwOTA3RjlCRTAyMEU0MjIKKzoxMDQxN0IwMDAyQzIzRjkwN0Y5QkUwMzBFNDAyRDIzRjkwN0Y5QkUwRjYKKzoxMDQxOEIwMDIwRTUwMkMyM0U5MDdGOUJFMDMwRTUwMkQyM0VBMjQxODkKKzoxMDQxOUIwMDMwM0YwMUIzNTAxRkEyM0Y5MjQxMzAzRjA5OTA3Njk3QjkKKzoxMDQxQUIwMEUwNTRGRUYwODAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3MEMKKzoxMDQxQkIwMEUwOTA4MDAyRjAzMDNGMzQ5MDc2MTlFMEZGQjQwMTBFQUUKKzoxMDQxQ0IwMDkwNzY3Qzc0NjdGMEEzNzQwNkYwQTM3NDBCRjBFRkI0RDUKKzoxMDQxREIwMDAyMEJFNDkwNzY3Q0YwQTNGMEEzNzQwQ0YwRUZCNDAzMjUKKzoxMDQxRUIwMDBCRTQ5MDc2N0NGMEEzRjBBMzc0MThGMEEyNDAzMDNFNjEKKzoxMDQxRkIwMDAxQjM1MDFGQTIzRTkyNDAzMDNFMDk5MDc2OTVFMDQ0QTkKKzoxMDQyMEIwMDA0RjA4MDA3OTA3Njk1RTA1NEZCRjA5MDc2OTVFMDkwNjMKKzowNDQyMUIwMDgwMDFGMDIyMEMKKzoxMDQyMUYwMDkwNzYxOUUwNjQwMTcwMzU5MDc2ODdFMEZGRDM5NDJEODYKKzoxMDQyMkYwMDQwMkI5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzMTEKKzoxMDQyM0YwMDk0MEY0MDE5RTRGMEVGRDM5NDMxNDAwODkwNzYxOTc0M0QKKzoxMDQyNEYwMDAzRjA4MDA2OTA3NjE5NzQwMkYwMTIzRTlGOTA3NjE5NTMKKzoxMDQyNUYwMEUwQjQwMjJDOTA3Njg3RTBGRkMzOTQyRjUwMjJFRkQzNjcKKzoxMDQyNkYwMDk0MkE0MDFDOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRDUKKzoxMDQyN0YwMEUwRDM5NDBGNDAwQUU0RjA5MDc2MTkwNEYwMTIzRTlGQjkKKzoxMDQyOEYwMDkwNzYxOUUwQjQwMjI2OTA3Njg3RTBEMzk0MzE0MDFERTIKKzoxMDQyOUYwMDkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMEUwRDM5NDBGNjkKKzoxMDQyQUYwMDQwMEJFNEYwOTA3NjE5NzQwM0YwMTIzRTlGOTA3NjE5NEMKKzoxMDQyQkYwMEUwNjQwMzcwM0Y5MDc2ODdFMEZGQzM5NDVGNTAzNTkwQzIKKzoxMDQyQ0YwMDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjQwODkKKzoxMDQyREYwMDIzRTRGMEVGQzM5NDJGNTAwQ0VGRDM5NDJBNDAwNjkwQjEKKzoxMDQyRUYwMDc2MTk3NDAxRjBFRkQzOTQyRjQwMDY5MDc2MTk3NDAyNkIKKzoxMDQyRkYwMEYwMTIzRTlGOTA3Njg2RTA3MDA1OTA3Njg1RjAyMkU0NkUKKzowNTQzMEYwMDkwNzY4NkYwMjIwQgorOjEwNDMxNDAwRTQ5MDc2OTZGMDkwODAwM0YwOTA3RkUwNzQ5MEYwOTBCMworOjEwNDMyNDAwN0ZFMTc0MDRGMEU0OTA3RkRERjA5MDdGQTFGMDUzOEU4MAorOjEwNDMzNDAwRjg3NTg4MDU3NUI4MjA3NUY4MDE0MzhFMzBGNUM4NzU5MQorOjEwNDM0NDAwQ0E3Rjc1Q0JGODQzQTgyMDEyNDU2NUMyMkNDMjJEQzI4MgorOjEwNDM1NDAwMkJDMjJGOTA3RkZDNzREREYwOTA3RkZGNzRGRkYwOTBGMAorOjEwNDM2NDAwN0Y5N0UwNDQwMUYwOTA3NjE5NzQwMUYwRTQ5MDc2ODUyQgorOjEwNDM3NDAwRjBBM0YwOTA3NjgxRjA5MDc2ODBGMDEyNDlBRTEyMEY5RgorOjEwNDM4NDAwQzYxMjRBRjE5MDdGOTdFMDQ0MDhGMEUwNTRCOUYwRDJBNQorOjEwNDM5NDAwMzAyMDMwMTgxMjRBQTYxMjMwMDAxMjQwMDAxMjQyMUY3OAorOjEwNDNBNDAwMTI0OEJEMTIxQjA0MTIxNjYxMTI0MjFGMTI0QUE2QzIwMQorOjEwNDNCNDAwMkZDMjMxQzIzMkMyMzRDMjMzQzIyOUMyMjdDMjI4RTQ1NgorOjEwNDNDNDAwRjUxMTkwNzY4OUYwOTA3NjNGRjA5MDc2NDFGMDkwNzZGMgorOjEwNDNENDAwNDBGMDkwNzY4QUYwQTNGMEEzMDRGMEU0QTNGMDkwNzY4MgorOjAzNDNFNDAwOTlGMDIyMkIKKzoxMDQzRTcwMDEyNEUxOTQwMDI4MUFDOTA3RkVCRTAyNEZFNjAxRTE0NTAKKzoxMDQzRjcwMDYwNDYxNDYwNkUxNDcwMDI4MTlEMjQwNDYwMDI4MUE1REEKKzoxMDQ0MDcwMDc0MDU5MDdGRDRGMDc0MDA5MDdGRDVGMDIyOTA3RkVBRjYKKzoxMDQ0MTcwMEUwRkYxMjRBNTU4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFOTIKKzoxMDQ0MjcwMEVBQ0VFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyQTAKKzoxMDQ0MzcwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRUFFMEZGMTI0N0I3OTMKKzoxMDQ0NDcwMDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFRUU5MDdGM0QKKzoxMDQ0NTcwMEQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGQjRFMDQ0M0UKKzoxMDQ0NjcwMDAxRjAyMjkwN0ZFQUUwRkY5MDdFQzBFMEZEQTNFMEZCMzEKKzoxMDQ0NzcwMDEyMTc5NDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFNEQKKzoxMDQ0ODcwMEVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGRTkKKzoxMDQ0OTcwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMjEKKzowNTQ0QTcwMEI0RTA0NDAxRjA0NworOjAxNDRBQzAwMjJFRAorOjEwNDRBRDAwQzJBRkQyMjQ5MDdGOTM3NDMwRjA5MDdGOUM3NEJCRjA5OAorOjEwNDRCRDAwOTA3Rjk2RTA0NDMwRjBFMDU0MzBGMDkwN0Y5NDc0MzA2QgorOjEwNDRDRDAwRjA5MDdGOUQ3NENGRjA5MDdGOTc3NEEwRjA5MDdGOTVDMgorOjEwNDRERDAwNzRDMEYwOTA3RjlFNzQwM0YwOTA3Rjk5RTAzMEUyMDlGNAorOjEwNDRFRDAwOTAwNTE5NzRBMEYwRTRBM0YwQzIyNUMyMjJDMjIzQzIyNAorOjEwNDRGRDAwMjYxMjRCMjgxMjJEQTkxMjNCRDMxMjQ2MTkxMjNBNDJGRAorOjEwNDUwRDAwOTA3NjY4NzQwMUYwNzAwRjEyNEMyOTEyNEUxNTEyNEVGMAorOjEwNDUxRDAwMTcxMjFCNDAxMjE0OTYxMjQzMTQ5MDdGQUZFMDQ0MDEwMgorOjEwNDUyRDAwRjA5MDdGQUVFMDQ0MUZGMDkwN0ZBQzc0RkZGMDkwN0Y3MQorOjEwNDUzRDAwQURGMDkwN0ZERUYwOTA3RkRGRjA5MDdGQUJGMDkwN0Y1RAorOjEwNDU0RDAwQTlGMDkwN0ZBQUYwNTM5MUVGNDNEODIwRDJFODQzRDgzOQorOjA4NDU1RDAwMjA1M0E4QTA0M0E4ODAyMjBFCis6MTA0NTY1MDA5MDc2OUE3NDAyRjBFNDkwNzY5MUYwQTNGMDkwNzY5MEFDCis6MTA0NTc1MDBGMDkwNzY5M0YwOTA3Njk2NzQwM0YwOTA4MDAzRjBFNEQzCis6MTA0NTg1MDA5MDc2OTdGMDkwODAwMkYwOTA3Njk0MDRGMDkwODAwMEY5Cis6MTA0NTk1MDBGMEU0OTA3NjhFRjA5MDc2MUFGMDkwNzY5NTA0RjBDMjVECis6MTA0NUE1MDAyRTkwN0Y5QkUwRkY1NDEwRkY3MDAyQzIzRjkwN0Y5QkNGCis6MTA0NUI1MDBFMEZGNTQxMEZFRkZCRTEwMDJEMjNGOTA3RjlCRTBGRjRDCis6MTA0NUM1MDA1NDIwRkY3MDAyQzIzRTkwN0Y5QkUwRkY1NDIwRkVGRjA3Cis6MTA0NUQ1MDBCRTIwMDJEMjNFMzAzRjA5OTA3Njk3RTA1NEZFRjA4MDJGCis6MTA0NUU1MDAwNzkwNzY5N0UwNDQwMUYwOTA3Njk3RTA5MDgwMDJGMDhFCis6MTA0NUY1MDAzMDNFMDk5MDc2OTVFMDQ0MDRGMDgwMDc5MDc2OTVFMDhBCis6MTA0NjA1MDA1NEZCRjA5MDc2OTVFMDkwODAwMUYwQTIzRTkyNDBBMjk2Cis6MDM0NjE1MDAzRjkyNDE5MAorOjAxNDYxODAwMjI3RgorOjEwNDYxOTAwRTQ5MDc2MzZGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTRFNQorOjEwNDYyOTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTRERgorOjEwNDYzOTAwMzQ3NUY1ODM3NDAxRjA5MDc2MzZFMDA0RjBFMEZGNzU4NworOjEwNDY0OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzVDMAorOjEwNDY1OTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwMkYwOTBGMQorOjEwNDY2OTAwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0MzJGNTgyRTQyNQorOjEwNDY3OTAwMzQ3NUY1ODNFNEYwRUY3NUYwMDNBNDI0MzNGNTgyRTQ4RgorOjEwNDY4OTAwMzQ3NUY1ODM3NDAzRjA5MDc2MzZFMDA0RjBFMEZGNzUzNQorOjEwNDY5OTAwRjAwM0E0MjQzMkY1ODJFNDM0NzVGNTgzRTRGMEVGNzU3MAorOjEwNDZBOTAwRjAwM0E0MjQzM0Y1ODJFNDM0NzVGNTgzNzQwNEYwMjIwRAorOjBDNDZCOTAwNzg3RkU0RjZEOEZENzU4MTM4MDI0NzAwRDgKKzoxMDQ2QzUwMDAyMDdBNkU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyNUUKKzoxMDQ2RDUwMDA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzRjYKKzoxMDQ2RTUwMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGQzUKKzoxMDQ2RjUwMEU0ODAwQjAxMDIwNDA4MTAyMDQwODA5MDBDOEZFNDdFQkEKKzoxMDQ3MDUwMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQjkKKzoxMDQ3MTUwMEEzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzODAKKzoxMDQ3MjUwMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBQUIKKzoxMDQ3MzUwMEYwQTNDOEM1ODJDOENBQzU4M0NBREZFOURFRTc4MEJFNjMKKzoxMDQ3NDUwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxRDE0NjAyQTE0RUQKKzoxMDQ3NTUwMDYwMzcxNDYwNDQyNDA0NzA1MDkwNzY5MUUwOTA3RjAwOTcKKzoxMDQ3NjUwMEYwOTA3RkI1NzQwMUYwODA0NzkwNzY5MkUwOTA3RjAwREQKKzoxMDQ3NzUwMEYwOTA3RkI1NzQwMUYwODAzNzkwNzY5MEUwOTA3RjAwREYKKzoxMDQ3ODUwMEYwOTA3RkI1NzQwMUYwODAyNzkwNzY4NEUwOTA3RjAwRUIKKzoxMDQ3OTUwMEYwOTA3RkI1NzQwMUYwODAxNzkwNzY5M0UwOTA3RjAwREMKKzoxMDQ3QTUwMEYwOTA3RkI1NzQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOEMKKzowMjQ3QjUwMEQzMjIwRAorOjAyNDdCNzAwOEYyRTQzCis6MTA0N0I5MDBFNEY1MkY3NTMwRkY3NTMxMDc3NTMyMUFBQjMwQUEzMTIwCis6MTA0N0M5MDBBOTMyOTAwMDAxMTIzNkFCQjQwMzFGQUYyRjA1MkZFRkFBCis6MTA0N0Q5MDA2NTJFNzAwMTIyMTIzNjkyN0UwMDI5RkZFRTNBQzlFRjRBCis6MTA0N0U5MDBDOTc1MzBGRkY1MzE4OTMyODBEMjdCMDA3QTAwNzkwMEIyCis6MDE0N0Y5MDAyMjlECis6MDY0N0ZBMDAxMjRCMjhDMjMxMjIxRgorOjEwNDgwMDAwQzBFMEMwRjBDMDgzQzA4MkMwRDBFOEMwRTBFOUMwRTAzMgorOjEwNDgxMDAwRUFDMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZFRAorOjEwNDgyMDAwQzBFMEMyQ0FDMkNGOTA3Rjk4RTA0NDAxRjAzMDJFMDNBRQorOjEwNDgzMDAwMTIxNEE2OTA3Rjk4RTA1NEZFRjA1M0E4RkExMjE2NjE2NQorOjEwNDg0MDAwRDBFMEZGRDBFMEZFRDBFMEZERDBFMEZDRDBFMEZCRDAzNworOjEwNDg1MDAwRTBGQUQwRTBGOUQwRTBGOEQwRDBEMDgyRDA4M0QwRjAyOAorOjAzNDg2MDAwRDBFMDMyNzMKKzoxMDQ4NjMwMDkwN0ZFQ0UwOTA3NjgzRjBFMDE0NjAxNzE0NjAyMTE0REQKKzoxMDQ4NzMwMDYwMkIxNDYwMzIyNDA0NzAzODkwN0ZFQUUwOTA3NjkxQzQKKzoxMDQ4ODMwMEYwODAzNTkwN0ZFQUUwOTA3NjkyRjAxMjNFOUY4MDI4ODgKKzoxMDQ4OTMwMDkwN0ZFQUUwOTA3NjkwRjAxMjE4MDA4MDFCOTA3RkVBRjgKKzoxMDQ4QTMwMEUwOTA3Njg0RjA4MDExOTA3RkVBRTA5MDc2OTNGMDgwMzgKKzowQTQ4QjMwMDA3OTA3RkI0RTA0NDAxRjBEMzIyMjcKKzoxMDQ4QkQwMDMwMkQzOUMyMkQ5MDc2MTlFMEZGQjQwMTBERTQ5MDc2QkMKKzoxMDQ4Q0QwMDdDRjBBMzc0RjhGMEEzNzQwQUYwRUZCNDAyMERFNDkwMzkKKzoxMDQ4REQwMDc2N0NGMEEzNzRGMEYwQTM3NDBCRjBFRkI0MDMwREU0NDkKKzowRDQ4RUQwMDkwNzY3Q0YwQTM3NEY4RjBBMzc0MTdGMDIyMEQKKzowNjQ4RkEwMDUzOTFCRkQyMkQzMkU0Cis6MTA0OTAwMDAwMjJGRTcwMDAyM0Q0NzAwMDI0REI0MDAwMjRDNDMwMDc1Cis6MTA0OTEwMDAwMjRCRTkwMDAyMkZGRjAwMDI0QzVCMDAwMjRDMEEwMDMwCis6MTA0OTIwMDAwMjRDNzIwMDAyNEI1QTAwMDI0Qzg5MDAwMjRDQTAwMDVCCis6MTA0OTMwMDAwMjRDQjcwMDAyNENDRTAwMDI0Q0U1MDAwMjRDRkMwMEQ5Cis6MTA0OTQwMDAwMjREMTMwMDAyNEQyQTAwMDI0RDQxMDAwMjRENTgwMDU1Cis6MDg0OTUwMDAwMjRENkYwMDAyNEQ4NjAwQ0MKKzoxMDQ5NTgwMEU0OTA3NjI2RjA5MDc2MjZFMEZGNzVGMDAzQTQyNDM0RTAKKzoxMDQ5NjgwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEQjIKKzoxMDQ5NzgwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjZFMDA0RjA4MEQ1Q0EKKzoxMDQ5ODgwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMkVGNzVGMDAzMUYKKzoxMDQ5OTgwMEE0MjQzMkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDkwMkEKKzowNjQ5QTgwMDdGQjU3NDAxRjAyMjRFCis6MTA0OUFFMDA5MDc2NDY3NDgwRjBFNEEzRjBBM0YwQTNGMEEzRjBBM0Y2Cis6MTA0OUJFMDBGMEEzRjBBM0YwQTNGMEEzNzQ4MEYwRTRBM0YwQTNGMEFGCis6MTA0OUNFMDBBM0YwQTNGMEEzRjBBM0YwQTM3NDQwRjBFNEEzRjBBMzJDCis6MTA0OURFMDA3NDQwRjBFNEEzRjBBM0YwQTNGMEEzRjBBM0YwQTNGMENGCis6MTA0OUVFMDBBMzc0NDBGMEU0QTNGMEEzNzQ0MEYwRTRBM0YwQTNGMEFBCis6MDU0OUZFMDBBM0YwQTNGMDIyNkMKKzoxMDRBMDMwMEU0OTA3NjI1RjA5MDc2MjVFMEZGNzVGMDAzQTQyNDM0MzYKKzoxMDRBMTMwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZEMDYKKzoxMDRBMjMwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjVFMDA0RjA4MEQ1MUYKKzoxMDRBMzMwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMjkwN0VDMEUwMUMKKzoxMDRBNDMwMEZFRUY3NUYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0VFQUEKKzowMjRBNTMwMEYwMjI0RgorOjEwNEE1NTAwRTRGRTc1MURGRjc1MUUwNTc1MUYxMkFCMURBQTFFQTk2NworOjEwNEE2NTAwMUY5MDAwMDExMjM2QUI2NDAyNzAyRkNERUVDRDBFRUQxNgorOjEwNEE3NTAwNkY3MDAxMjI5MDAwMDIxMjM3MEU4NUYwMUJGNTFDNjI0MworOjEwNEE4NTAwMUJFNTFCNjIxQ0U1MUM2MjFCMjlGREU1MUIzQUM5RURGNAorOjEwNEE5NTAwQzk3NTFERkZGNTFFODkxRjgwQzE3QjAwN0EwMDc5MDA0RAorOjAxNEFBNTAwMjJFRQorOjEwNEFBNjAwRTQ5MDc2OUJGMDkwNzY5QkUwRkYwNEYwRUY2MDA4RTBFMAorOjEwNEFCNjAwMjQwOEY4RTRGNjgwRUU5MDc2OTZFMDQ0MDRGMDQ0MDg4NAorOjEwNEFDNjAwRjA5MDgwMDNGMEU0RjUxOEQyMzVGNTBFRjUxMEQyMzZFNQorOjEwNEFENjAwNzUxMjExNzUxMzIyQzIzN0MyMzlDMjM4RjUxNkY1MTQ4QworOjBCNEFFNjAwRjUxQUY1MERDMjNCQzIzQ0MyM0QyMjk4Cis6MTA0QUYxMDBFNEZGNzQ1NjJGRjU4MkU0MzQ3NkY1ODNFMEZFNzQyOEUyCis6MTA0QjAxMDAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0NUUyRkY1ODJFNEI0Cis6MTA0QjExMDAzNDc2RjU4M0UwRkU3NDM4MkZGNTgyRTQzNDgwRjU4MzMyCis6MDY0QjIxMDBFRUYwMEZCRjA4Q0MwRQorOjAxNEIyNzAwMjI2QgorOjEwNEIyODAwRTQ5MDcyMzZGMEEzRjA5MDdGOTdFMDU0RkJGMEU0OTBBNQorOjEwNEIzODAwNzIzM0YwOTA3MjMyRjA5MDcyMDEwNEYwRTQ5MDcyMzNBNAorOjEwNEI0ODAwRjA5MDcyMzJGMDkwNzIwMTA0RjA5MDdGOTdFMDQ0MDQ4NAorOjAyNEI1ODAwRjAyMjQ5Cis6MTA0QjVBMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDJGMDg0Cis6MTA0QjZBMDA5MDdGQzdFMEY1MTE3NTBGMDA3NTBEMDBEMjMzRDA4MjIyCis6MDU0QjdBMDBEMDgzRDBFMDMyMDEKKzoxMDRCN0YwMDkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDQyMDRFMDQ0NkMKKzoxMDRCOEYwMDAyRjA3RkRDN0UwNTEyNEQ5RDkwN0ZENkUwNTRGN0YwNEEKKzowNTRCOUYwMEUwNDQwNEYwMjJENworOjEwNEJBNDAwOTA3RkVCRTAxNDcwMTQ5MDdGRTlFMDI0N0Y3MDA0MTI4RQorOjEwNEJCNDAwNDk1ODIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQ0RAorOjAzNEJDNDAwMDFGMDIyREIKKzoxMDRCQzcwMDkwN0ZFQkUwMTQ3MDEzOTA3RkU5RTAxNDcwMDQxMjRBQjEKKzoxMDRCRDcwMDAzMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxQzcKKzowMjRCRTcwMEYwMjJCQQorOjEwNEJFOTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQxMEYwOTAwNgorOjEwNEJGOTAwNzY5NkUwNTRGREYwOTA4MDAzRjBEMDgyRDA4M0QwRTAyNworOjAxNEMwOTAwMzI3OAorOjEwNEMwQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDAxRjBENAorOjBGNEMxQTAwQzIyOTkwNzY4RDc0MDFGMEQwODJEMDgzRDBFMDMyMjEKKzoxMDRDMjkwMDkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjE0N0UwMDEyNTUKKzowQTRDMzkwMDREOUQ5MDdGRDZFMDU0RkVGMDIyNUUKKzoxMDRDNDMwMEMwRTBDMDgzQzA4MkQyMjU1MzkxRUY5MDdGQUI3NDA4M0MKKzowODRDNTMwMEYwRDA4MkQwODNEMEUwMzJFMgorOjEwNEM1QjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAxRjA4NAorOjA3NEM2QjAwRDA4MkQwODNEMEUwMzJCQgorOjEwNEM3MjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDAyRjA2QworOjA3NEM4MjAwRDA4MkQwODNEMEUwMzJBNAorOjEwNEM4OTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA0RjA1MworOjA3NEM5OTAwRDA4MkQwODNEMEUwMzI4RAorOjEwNENBMDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA0RjAzQgorOjA3NENCMDAwRDA4MkQwODNEMEUwMzI3NgorOjEwNENCNzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDA4RjAyMQorOjA3NENDNzAwRDA4MkQwODNEMEUwMzI1RgorOjEwNENDRTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDA4RjAwOQorOjA3NENERTAwRDA4MkQwODNEMEUwMzI0OAorOjEwNENFNTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDEwRjBFQgorOjA3NENGNTAwRDA4MkQwODNEMEUwMzIzMQorOjEwNENGQzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDEwRjBEMworOjA3NEQwQzAwRDA4MkQwODNEMEUwMzIxOQorOjEwNEQxMzAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDIwRjBBQworOjA3NEQyMzAwRDA4MkQwODNEMEUwMzIwMgorOjEwNEQyQTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDIwRjA5NAorOjA3NEQzQTAwRDA4MkQwODNEMEUwMzJFQgorOjEwNEQ0MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDQwRjA1RQorOjA3NEQ1MTAwRDA4MkQwODNEMEUwMzJENAorOjEwNEQ1ODAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDQwRjA0NgorOjA3NEQ2ODAwRDA4MkQwODNEMEUwMzJCRAorOjEwNEQ2RjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkE5RTA0NDgwRjBGMAorOjA3NEQ3RjAwRDA4MkQwODNEMEUwMzJBNgorOjEwNEQ4NjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBRTA0NDgwRjBEOAorOjA3NEQ5NjAwRDA4MkQwODNEMEUwMzI4RgorOjEwNEQ5RDAwOEUzNThGMzZFNTM2MTUzNkFFMzU3MDAyMTUzNTRFNjBDQgorOjA3NERBRDAwMDUxMjE0ODU4MEVFMjJCRgorOjEwNERCNDAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwNEYwRDAwNQorOjA2NERDNDAwODJEMDgzRDBFMDMyMzIKKzoxMDREQ0EwMDkwNzY4MkUwOTA3RjAwRjA5MDdGQjU3NDAxRjBEMzIyNTQKKzowQzREREEwMEMyMzdFNEY1MEVGNTEwQzIzNkY1MTQyMkM1Cis6MDk0REU2MDBDMjI1NTNEOEVGNDNEODIwMzI1NgorOjA3NERFRjAwNTM5OEZFNTM5OEZEMzJCQQorOjA3NERGNjAwNTNDMEZFNTNDMEZEMzI2MworOjA2NERGRDAwNTM5MTdGRDIyQzMyMUQKKzowNDRFMDMwMDUzOTFERjMyQjYKKzowNDRFMDcwMDUzRDhGNzMyNTMKKzowNDRFMEIwMDEyMTczMDIyMjgKKzowMzRFMEYwMEMyOEQzMjFGCis6MDM0RTEyMDBDMjhGMzIxQQorOjAyNEUxNTAwRDMyMkE2Cis6MDI0RTE3MDBEMzIyQTQKKzowMjRFMTkwMEQzMjJBMgorOjAyNEUxQjAwRDMyMkEwCis6MDI0RTFEMDBEMzIyOUUKKzowMjRFMUYwMEQzMjI5QworOjAyNEUyMTAwQzMyMkFBCis6MDAwMDAwMDFGRgorLyoKK1NvdXJjZTogRU1JNjJNRlcuSEVYCitWRVJTSU9OPTEuMDQuMDYyCitEQVRFPTE2LjEwLjIwMDIKKyovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9lbWk2Mi9zcGRpZi5IRVggYi9maXJtd2FyZS9lbWk2Mi9zcGRpZi5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzIyZDUwYwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2VtaTYyL3NwZGlmLkhFWApAQCAtMCwwICsxLDEyNTcgQEAKKzowMzAwMDAwMDAyNDVGOUJECis6MDMwMDAzMDAwMjBGRkRFQworOjAzMDAwQjAwMDI0RDlCMDgKKzowMzAwMTMwMDAyMTdGREQ0Cis6MDMwMDFCMDAwMjREOUVGNQorOjAzMDAyMzAwMDI0RDc1MTYKKzowMzAwMkIwMDAyNDZGNzkzCis6MDMwMDMzMDAwMjRENkMwRgorOjAzMDAzQjAwMDI0RDdDRjcKKzowMzAwNDMwMDAyNDkwMDZGCis6MDMwMDRCMDAwMjREOEZENAorOjAzMDA1MzAwMDI0RDgzRDgKKzowMzAwNUIwMDAyNEQ4OUNBCis6MDMwMDYzMDAwMjREOTNCOAorOjEwMDUwMDAwMTIwMTEwMDEwMDAwMDA0MDZBMDgxMTAxMDAwMTAxMDJGRgorOjEwMDUxMDAwMDAwMTA5MDJBQzAxMDMwMTAwODAzMjA5MDQwMDAwMDA1RgorOjEwMDUyMDAwMDEwMTAwMDAwQTI0MDEwMDAxNTYwMDAyMDEwMjBDMjQwRQorOjEwMDUzMDAwMDIwMTAxMDEwMDAyMDAwMDAwMDAwRDI0MDYwNTAxMDI3NQorOjEwMDU0MDAwMDMwMDAwMDAwMDAwMDAwOTI0MDMwMjA0MDMwMDA1MDA2QQorOjEwMDU1MDAwMEMyNDAyMDMwNTAyMDAwNjAwMDAwMDAwMTUyNDA2MDYxNAorOjEwMDU2MDAwMDMwMjAwMDAwMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDA3NAorOjEwMDU3MDAwMDAwOTI0MDMwNDAxMDEwMDA2MDAwOTA0MDEwMDAwMDEzMAorOjEwMDU4MDAwMDIwMDAwMDkwNDAxMDEwMjAxMDIwMDAwMDcyNDAxMDEyOAorOjEwMDU5MDAwMDAwMTAwMTEyNDAyMDEwMjAyMTAwMzQ0QUMwMDgwQkJFMAorOjEwMDVBMDAwMDAwMDc3MDEwOTA1MEEwNTg0MDEwMTAwOEYwNzI1MDE3NAorOjEwMDVCMDAwMDEwMDAwMDAwOTA1OEYwMTAzMDAwMTA1MDAwOTA0MDE4NQorOjEwMDVDMDAwMDIwMjAxMDIwMDAwMDcyNDAxMDEwMDAxMDAxMTI0MDJCRgorOjEwMDVEMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU0OQorOjEwMDVFMDAwMEEwNTQ2MDIwMTAwOEYwNzI1MDEwMTAwMDAwMDA5MDVFOAorOjEwMDVGMDAwOEYwMTAzMDAwMTA1MDAwOTA0MDIwMDAwMDEwMjAwMDA1MAorOjEwMDYwMDAwMDkwNDAyMDEwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDBBNQorOjEwMDYxMDAwMEUyNDAyMDEwNjAyMTAwMjQ0QUMwMDgwQkIwMDA5MDU1MgorOjEwMDYyMDAwOEMwNTRDMDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA5MDRBRQorOjEwMDYzMDAwMDIwMjAxMDEwMjAwMDAwNzI0MDEwNDAwMDEwMDBFMjQ0RgorOjEwMDY0MDAwMDIwMTA2MDMxODAyNDRBQzAwODBCQjAwMDkwNThDMDVCQQorOjEwMDY1MDAwNzIwMzAxMDAwMDA3MjUwMTAwMDIwMDAwMDkwNDAyMDNFMworOjEwMDY2MDAwMDEwMTAyMDAwMDA3MjQwMTA0MDAwMTAwMTEyNDAyMDExRAorOjEwMDY3MDAwMDIwMjEwMDM0NEFDMDA4MEJCMDAwMDc3MDEwOTA1OEMyNgorOjEwMDY4MDAwMDU4NDAxMDEwMDAwMDcyNTAxMDAwMjAwMDAwOTA0MDJBMQorOjEwMDY5MDAwMDQwMTAxMDIwMDAwMDcyNDAxMDQwMDAxMDAxMTI0MDJFQQorOjEwMDZBMDAwMDEwMjAzMTgwMzQ0QUMwMDgwQkIwMDAwNzcwMTA5MDU3OAorOjEwMDZCMDAwOEMwNTQ2MDIwMTAwMDAwNzI1MDEwMDAyMDAwMDA0MDMyQQorOjEwMDZDMDAwMDkwNDE4MDM0NTAwNkQwMDYxMDA2NzAwNjkwMDYzMDBCQworOjEwMDZEMDAwMjAwMDQ3MDA2RDAwNjIwMDQ4MDAyMjAzNDUwMDZEMDBDNQorOjEwMDZFMDAwNjEwMDY3MDA2OTAwNjMwMDIwMDA0NTAwNEQwMDQ5MDA3QgorOjEwMDZGMDAwMjAwMDM2MDA3QzAwMzIwMDIwMDA2RDAwMkEwMzQzMDBGOQorOjEwMDcwMDAwNkYwMDZFMDA2NjAwNjkwMDY3MDA3NTAwNzIwMDYxMDA4RQorOjEwMDcxMDAwNzQwMDY5MDA2RjAwNkUwMDIwMDA1MzAwNzQwMDcyMDBDNgorOjEwMDcyMDAwNjkwMDZFMDA2NzAwMjIwMzQ5MDA2RTAwNzQwMDY1MDBENgorOjEwMDczMDAwNzIwMDY2MDA2MTAwNjMwMDY1MDAyMDAwNTMwMDc0MDBEMQorOjBBMDc0MDAwNzIwMDY5MDA2RTAwNjcwMDAwMDBGRgorOjEwMDc0QTAwOTA3NjlBNzQwMkYwRTQ5MDc2OTFGMEEzRjA5MDc2OTAwNQorOjEwMDc1QTAwRjA5MDc2OTNGMDkwNzY5Njc0MDNGMDkwODAwM0YwRTQyQworOjEwMDc2QTAwOTA3Njk3RjA5MDgwMDJGMDkwNzY5NDA0RjA5MDgwMDA1MgorOjEwMDc3QTAwRjBFNDkwNzY4RUYwOTA3NjFBRjA5MDc2OTUwNEYwQzJCNgorOjEwMDc4QTAwMkU5MDdGOUJFMEZGNTQxMEZGNzAwMkMyM0Y5MDdGOUIyOAorOjEwMDc5QTAwRTBGRjU0MTBGRUZGQkUxMDAyRDIzRjkwN0Y5QkUwRkZBNQorOjEwMDdBQTAwNTQyMEZGNzAwMkMyM0U5MDdGOUJFMEZGNTQyMEZFRkY2MAorOjEwMDdCQTAwQkUyMDAyRDIzRTMwM0YwOTkwNzY5N0UwNTRGRUYwODA4OAorOjEwMDdDQTAwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwOTA4MDAyRjBFNworOjEwMDdEQTAwMzAzRTA5OTA3Njk1RTA0NDA0RjA4MDA3OTA3Njk1RTBFMworOjEwMDdFQTAwNTRGQkYwOTA3Njk1RTA5MDgwMDFGMEEyM0U5MjQwQTJGMAorOjAzMDdGQTAwM0Y5MjQxRUEKKzowMTA3RkQwMDIyRDkKKzowMjA3RkUwMEQzMjIwNAorOjEwMDgwMDAwRTQ5MDc2MzFGMDkwNzYzMUUwRkY3NUYwMDNBNDI0MEY4OAorOjEwMDgxMDAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVERTBGREVFNkQ0QQorOjEwMDgyMDAwNjAwRUVGQzM5NDBCNTAwODkwNzYzMUUwMDRGMDgwRDU1MQorOjEwMDgzMDAwRUZCNDBCMDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMDNCMQorOjEwMDg0MDAwQTQyNDBFRjU4MkU0MzQ3NUY1ODNFMDkwNzYzM0YwMjQyOQorOjEwMDg1MDAwRjA2MDBBMjQwRTYwMDI4MTg3MTI0QjNFMjI5MDdGRURFOQorOjEwMDg2MDAwRTA2NDA1NzA1MTkwNzYxODc0MDVGMDkwNzYzNzc0MDE0NQorOjEwMDg3MDAwRjA5MDc2Mzk3NDAzRjA5MDc2MjFGMEU0OTA3NjIwRjBEMQorOjEwMDg4MDAwOTA3RkVBRTBGNDYwMkY5MDc2MjBFMEZGNzVGMDBBQTRGNAorOjEwMDg5MDAwMjRBQUY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQUUwRkQ1QQorOjEwMDhBMDAwRUU2RDYwMTI5MDc2MjFFMEZFRUZDMzlFNTAwODkwNzZDOAorOjEwMDhCMDAwMjBFMDA0RjA4MEQxOTA3RkVERTA2NDA2NzA1MjkwNzZFNQorOjEwMDhDMDAwMTg3NDA2RjA5MDc2Mzc3NDA0RjA5MDc2Mzk3NDBBRjA1NAorOjEwMDhEMDAwOTA3NjIxRjA5MDc2MjA3NDAzRjA5MDdGRUFFMEY0NjA0NworOjEwMDhFMDAwMkY5MDc2MjBFMEZGNzVGMDBBQTQyNEFBRjU4MkU0MzQ2NAorOjEwMDhGMDAwNzVGNTgzRTBGRTkwN0ZFQUUwRkRFRTZENjAxMjkwNzY4NAorOjEwMDkwMDAwMjFFMEZFRUZDMzlFNTAwODkwNzYyMEUwMDRGMDgwRDFGNQorOjEwMDkxMDAwOTA3NjIwRTBGRjc1RjAwQUE0MjRBQUY1ODJFNDM0NzVFRAorOjEwMDkyMDAwRjU4M0UwOTA3MjI5RjBFNDkwNzYzQkYwOTA3NjIxRTAzOAorOjEwMDkzMDAwRkVFRjZFNzAwODkwN0ZCNEUwNDQwMUYwMjI5MDdGRUJGMAorOjEwMDk0MDAwRTAxNDYwMTMxNDcwMDIyMUUyMjQwMjYwMDI4MTdGOTA5RgorOjEwMDk1MDAwN0ZCNEUwNDQwMUYwMjI5MDdGRTlFMDE0NzA3QzkwN0Y0NgorOjEwMDk2MDAwRUFFMEY0NzA0ODkwNzYzN0UwOTA3NjIwRjA5MDc2Mzk5RgorOjEwMDk3MDAwRTBGRTkwNzYyMEUwRkRDMzlFNTAyQjkwNzYzQkUwRkU5QgorOjEwMDk4MDAwMDRGMDc0QzAyRUY1ODJFNDM0N0VGNTgzRTBGRUVENzU0QworOjEwMDk5MDAwRjAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRUVGMDkwNzY4QQorOjEwMDlBMDAwMjBFMDA0RjA4MEM3OTA3NjNGNzQwMUYwMjI5MDdFQzA3MgorOjEwMDlCMDAwRTBGRUVGNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1ODMwQworOjEwMDlDMDAwRUVGMEUwQjQwMTA4OTA3NjNFNzQwMUYwODAwNUU0OTAwQQorOjEwMDlEMDAwNzYzRUYwOTA3NjNGNzQwMUYwMjI5MDdGQjRFMDQ0MDFCRgorOjEwMDlFMDAwRjAyMjkwN0ZFOUUwMjRGRTcwMDI0MUEzMTQ3MDAyNjFCRQorOjEwMDlGMDAwM0YxNDcwMDI2MURCMjQwMzYwMDI4MTc3OTA3RkVBRTA5QworOjEwMEEwMDAwRjQ3MDZCOTA3NjM3RTA5MDc2MjBGMDkwNzYzOUUwRkZDNgorOjEwMEExMDAwOTA3NjIwRTBGRUMzOUY1MDRFOTA3NjNCRTBGRjA0RjBCRQorOjEwMEEyMDAwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUU3NUYwMEFBMgorOjEwMEEzMDAwQTQyNEFDRjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjNCRTBDNgorOjEwMEE0MDAwRkYwNEYwNzRDMDJGRjU4MkU0MzQ3RUY1ODNFMEZGRUVGRQorOjEwMEE1MDAwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTBDNworOjEwMEE2MDAwNzYyMEUwMDRGMDgwQTQ5MDc2NDA3NDAxRjAyMjkwN0UxRAorOjEwMEE3MDAwQzBFMEZGOTA3NjIwRTBGRTc1RjAwQUE0MjRBQ0Y1ODI3OQorOjEwMEE4MDAwRTQzNDc1RjU4M0VGRjA5MDdFQzFFMEZGRUU3NUYwMEE3NworOjEwMEE5MDAwQTQyNEFERjU4MkU0MzQ3NUY1ODNFRkYwOTA3NjQxNzRDQgorOjEwMEFBMDAwMDFGMDIyOTA3RkVBRTBGNDcwNjY5MDc2MzdFMDkwNzY2RAorOjEwMEFCMDAwMjBGMDkwNzYzOUUwRkY5MDc2MjBFMEZFQzM5RjQwMDI2MAorOjEwMEFDMDAwODE4RTkwNzYzQkUwRkYwNEYwNzRDMDJGRjU4MkU0MzQxMQorOjEwMEFEMDAwN0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFFRjU4MkU0MzRERgorOjEwMEFFMDAwNzVGNTgzRUZGMDkwNzYzQkUwRkYwNEYwNzRDMDJGRjVDRQorOjEwMEFGMDAwODJFNDM0N0VGNTgzRTBGRkVFNzVGMDBBQTQyNEFGRjVCRQorOjEwMEIwMDAwODJFNDM0NzVGNTgzRUZGMDkwNzYyMEUwMDRGMDgwQTI2MworOjEwMEIxMDAwOTA3RUMwRTBGRjkwNzYyMEUwRkU3NUYwMEFBNDI0QUUzRgorOjEwMEIyMDAwRjU4MkU0MzQ3NUY1ODNFRkYwOTA3RUMxRTBGRkVFNzU1OQorOjEwMEIzMDAwRjAwQUE0MjRBRkY1ODJFNDM0NzVGNTgzRUZGMDIyOTAzNworOjEwMEI0MDAwN0ZFQUUwRjQ3MDY2OTA3NjM3RTA5MDc2MjBGMDkwNzY1OQorOjEwMEI1MDAwMzlFMEZGOTA3NjIwRTBGRUMzOUY0MDAyODE4RTkwNzZDMAorOjEwMEI2MDAwM0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGNTgzRTBBRgorOjEwMEI3MDAwRkZFRTc1RjAwQUE0MjRCMEY1ODJFNDM0NzVGNTgzRUYzNgorOjEwMEI4MDAwRjA5MDc2M0JFMEZGMDRGMDc0QzAyRkY1ODJFNDM0N0VGMQorOjEwMEI5MDAwRjU4M0UwRkZFRTc1RjAwQUE0MjRCMUY1ODJFNDM0NzUyNAorOjEwMEJBMDAwRjU4M0VGRjA5MDc2MjBFMDA0RjA4MEEyOTA3RUMwRTAyNAorOjEwMEJCMDAwRkY5MDc2MjBFMEZFNzVGMDBBQTQyNEIwRjU4MkU0MzRCQworOjEwMEJDMDAwNzVGNTgzRUZGMDkwN0VDMUUwRkZFRTc1RjAwQUE0MjQ4NgorOjEwMEJEMDAwQjFGNTgyRTQzNDc1RjU4M0VGRjAyMjkwN0ZFQUUwRjQxQQorOjEwMEJFMDAwNzA2NjkwNzYzN0UwOTA3NjIwRjA5MDc2MzlFMEZGOTA0RQorOjEwMEJGMDAwNzYyMEUwRkVDMzlGNDAwMjgxOEU5MDc2M0JFMEZGMDRBQQorOjEwMEMwMDAwRjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkZFRTc1RjBEQQorOjEwMEMxMDAwMEFBNDI0QjJGNTgyRTQzNDc1RjU4M0VGRjA5MDc2M0JCNAorOjEwMEMyMDAwRTBGRjA0RjA3NEMwMkZGNTgyRTQzNDdFRjU4M0UwRkYyQQorOjEwMEMzMDAwRUU3NUYwMEFBNDI0QjNGNTgyRTQzNDc1RjU4M0VGRjA4MQorOjEwMEM0MDAwOTA3NjIwRTAwNEYwODBBMjkwN0VDMEUwRkY5MDc2MjBCNQorOjEwMEM1MDAwRTBGRTc1RjAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRUY2MgorOjEwMEM2MDAwRjA5MDdFQzFFMEZGRUU3NUYwMEFBNDI0QjNGNTgyRTRCMworOjEwMEM3MDAwMzQ3NUY1ODNFRkYwMjI5MDdGQjRFMDQ0MDFGMDIyOTBDOAorOjBGMEM4MDAwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyMDEKKzoxMDBDOEYwMDQxNzY2ODAxNDE3NjZBMDI0MTc2NkIwQUMxMjBDMTIxMjMKKzowMjBDOUYwMEMxMkY2MworOjA0MENBMTAwNDE3NjIzMDA3NQorOjEwMENBNTAwNDE3MjAxMDE0NTcyMDUwMDAyQzkwMDAwNDU3MjBBMDA0MgorOjEwMENCNTAwMDEwMjAzMDQ0RDcyMEZEMTAwRDEwMDAwMDAwMDAwMDBCNQorOjEwMENDNTAwMjgyODA5MDA0RDcyMUMwMTAwMDEwMjAzMDQwNTA2MDdDRQorOjEwMENENTAwMDgwOTBBMEI0MTcyMkUyMjQxNzIyRjIzNDE3MjMwMjBERQorOjEwMENFNTAwNDE3MjMxMjE2MkQyNzIzQTAwMDAwMDAwMDAwMDAwMDAxQQorOjEwMENGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMEQwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMEQxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMEQyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMEQzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMEQ0NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMEQ1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMEQ2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMEQ3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAxMDEwMTAxMDE2OAorOjEwMEQ4NTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0RQorOjEwMEQ5NTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEzRQorOjEwMERBNTAwMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyRQorOjEwMERCNTAwMDEwMTAxMDEwMTAxMDEwMTAyMDIwMjAyMDIwMjAyMDIxNgorOjEwMERDNTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJGRQorOjEwMERENTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJFRQorOjEwMERFNTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDJERQorOjEwMERGNTAwMDIwMjAyMDIwMjAzMDMwMzAzMDMwMzAzMDMwMzAzMDNDMworOjEwMEUwNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDNBRAorOjEwMEUxNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDM5RAorOjEwMEUyNTAwMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDM4RAorOjEwMEUzNTAwMDMwMzA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ2RgorOjEwMEU0NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ1RAorOjEwMEU1NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQ0RAorOjEwMEU2NTAwMDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQzRAorOjEwMEU3NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUxRAorOjEwMEU4NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwRAorOjEwMEU5NTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDVGRAorOjEwMEVBNTAwMDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA1MDUwNTA2MDZFQgorOjEwMEVCNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZDRAorOjEwMEVDNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZCRAorOjEwMEVENTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA2MDZBRAorOjEwMEVFNTAwMDYwNjA2MDYwNjA2MDYwNjA2MDYwNjA3MDcwNzA4MDg5NgorOjEwMEVGNTAwMDgwOTA5MDkwQTBBMEEwQjBCMEIwQzBDMEMwRDBEMEQ0MAorOjEwMEYwNTAwMEUwRTBFMEYwRjBGMTAxMDEwMTExMTExMTIxMjEyMTNEOQorOjEwMEYxNTAwMTMxMzE0MTQxNDE1MTUxNTE2MTYxNjE3MTcxNzE4MTg3NAorOjEwMEYyNTAwMTgxOTE5MTkxOTFBMUExQTFBMUIxQjFCMUIxQzFDMUMxOAorOjEwMEYzNTAwMUMxRDFEMUQxRDFFMUUxRTFFMUYxRjFGMUYyMDIwMjBDOAorOjEwMEY0NTAwMjEyMTIxMjIyMjIyMjMyMzI0MjQyNTI1MjYyNjI3Mjc2MQorOjEwMEY1NTAwMjgyODI5MjkyQTJBMkIyQjJDMkMyRDJEMkUyRTJGMkZENAorOjEwMEY2NTAwMzAzMDMxMzEzMjMyMzMzMzM0MzQzNTM1MzYzNjM3Mzc0NAorOjEwMEY3NTAwMzgzODM5MzkzQTNBM0IzQzNEM0UzRjQwNDE0MjQzNDQ5QgorOjEwMEY4NTAwNDU0NjQ3NDg0OTQ5NEE0QjRCNEM0RDRFNEY1MDUxNTJBNworOjEwMEY5NTAwNTM1NDU1NTU1NjU2NTc1NzU4NUE1QjVENUU1RjYxNjJCNworOjEwMEZBNTAwNjM2NDY1NjY2NzY4Njk2QTZCNkM2RDZGNzE3MjczNzQ4QgorOjEwMEZCNTAwNzU3Njc3Nzg3OTdBN0I3QzdFODAwMTM3MDEwMTM4MDBGOAorOjAxMEZDNTAwMDAyQgorOjEwMEZDNjAwRTRGRjc0NDYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0MjA2MAorOjEwMEZENjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDRFMkZGNTgyRTQyQgorOjEwMEZFNjAwMzQ3NkY1ODNFMEZFNzQzMDJGRjU4MkU0MzQ4MEY1ODNBMQorOjA2MEZGNjAwRUVGMDBGQkYwOENDNzUKKzowMTBGRkMwMDIyRDIKKzowMzBGRkQwMEMyODkzMjc0Cis6MTAxMDAwMDBFNDkwNzYyQ0YwOTA3NjJDRTBGRjc1RjAwM0E0MjQwRjhBCis6MTAxMDEwMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRURFMEZERUU2RDQyCis6MTAxMDIwMDA2MDBFRUZDMzk0MEI1MDA4OTA3NjJDRTAwNEYwODBENTRFCis6MTAxMDMwMDBFRkI0MEIwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwM0E5Cis6MTAxMDQwMDBBNDI0MEVGNTgyRTQzNDc1RjU4M0UwOTA3NjJFRjAyNDI2Cis6MTAxMDUwMDBGMDYwMEEyNDBGNjAwMjgxN0QxMjRCMUIyMjkwN0ZFRDBECis6MTAxMDYwMDBFMDY0MDU3MDUxOTA3NjE4NzQwNUYwOTA3NjM4NzQwMTNDCis6MTAxMDcwMDBGMDkwNzYzQTc0MDNGMDkwNzYxQ0YwRTQ5MDc2MUJGMEQyCis6MTAxMDgwMDA5MDdGRUFFMEY0NjAyRjkwNzYxQkUwRkY3NUYwMEFBNEYxCis6MTAxMDkwMDAyNEFBRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVBRTBGRDUyCis6MTAxMEEwMDBFRTZENjAxMjkwNzYxQ0UwRkVFRkMzOUU1MDA4OTA3NkM1Cis6MTAxMEIwMDAxQkUwMDRGMDgwRDE5MDdGRURFMDY0MDY3MDUyOTA3NkUyCis6MTAxMEMwMDAxODc0MDZGMDkwNzYzODc0MDRGMDkwNzYzQTc0MEFGMDRBCis6MTAxMEQwMDA5MDc2MUNGMDkwNzYxQjc0MDNGMDkwN0ZFQUUwRjQ2MDQ5Cis6MTAxMEUwMDAyRjkwNzYxQkUwRkY3NUYwMEFBNDI0QUFGNTgyRTQzNDYxCis6MTAxMEYwMDA3NUY1ODNFMEZFOTA3RkVBRTBGREVFNkQ2MDEyOTA3NjdDCis6MTAxMTAwMDAxQ0UwRkVFRkMzOUU1MDA4OTA3NjFCRTAwNEYwODBEMUY3Cis6MTAxMTEwMDBFNDkwNzYxRUYwOTA3NjFDRTBGRjkwNzYxQkUwRkU2RjY4Cis6MTAxMTIwMDA3MDA4OTA3RkI0RTA0NDAxRjAyMjkwN0ZFQkUwMTQ2MEZGCis6MTAxMTMwMDAxMzE0NzAwMjIxQkYyNDAyNjAwMjgxNzU5MDdGQjRFMDE1Cis6MTAxMTQwMDA0NDAxRjAyMjkwN0ZFOUUwMjQ3RjcwNkI5MDdGRUFFMDE5Cis6MTAxMTUwMDBGNDcwNEE5MDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkzCis6MTAxMTYwMDA5MDc2MUJFMEZEQzM5RjUwMkJFRDc1RjAwQUE0MjRBQkQ1Cis6MTAxMTcwMDBGNTgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZEMDRGMDFGCis6MTAxMTgwMDA3NDAwMkRGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMDU4Cis6MTAxMTkwMDAwNEYwODBDNzkwNzYxRUUwOTA3RkI1RjAyMkVFNzVGMEU3Cis6MTAxMUEwMDAwQUE0MjRBQkY1ODJFNDM0NzVGNTgzRTA5MDdGMDBGMDY3Cis6MTAxMUIwMDA5MDdGQjU3NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDVBCis6MTAxMUMwMDA3RkU5RTAyNDdFNzAwMjQxN0UxNDcwMDI2MTIzMTQ3MDc2Cis6MTAxMUQwMDAwMjYxQzgyNDAzNjAwMjgxNkQ5MDdGRUFFMEY0NzA2REMzCis6MTAxMUUwMDA5MDc2MzhFMDkwNzYxQkYwOTA3NjNBRTBGRjkwNzYxQjkwCis6MTAxMUYwMDBFMEMzOUY1MDRGRTBGRjc1RjAwQUE0MjRBQ0Y1ODJFNEYxCis6MTAxMjAwMDAzNDc1RjU4M0UwRkU5MDc2MUVFMEZEMDRGMDc0MDAyRDQ5Cis6MTAxMjEwMDBGNTgyRTQzNDdGRjU4M0VFRjBFRjc1RjAwQUE0MjRBRDk3Cis6MTAxMjIwMDBGNTgyRTQzNDc1RjU4M0UwRkY5MDc2MUVFMEZFMDRGMDZECis6MTAxMjMwMDA3NDAwMkVGNTgyRTQzNDdGRjU4M0VGRjA5MDc2MUJFMEE2Cis6MTAxMjQwMDAwNEYwODBBNDkwNzYxRUUwOTA3RkI1RjAyMjkwNzYxQjhCCis6MTAxMjUwMDBFMEZGNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODNFMDcwCis6MTAxMjYwMDA5MDdGMDBGMEVGNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUE4Cis6MTAxMjcwMDBGNTgzRTA5MDdGMDFGMDkwN0ZCNTc0MDJGMDIyOTA3RkJCCis6MTAxMjgwMDBFQUUwRjQ3MDZEOTA3NjM4RTA5MDc2MUJGMDkwNzYzQTU0Cis6MTAxMjkwMDBFMEZGOTA3NjFCRTBDMzlGNTA0RkUwRkY3NUYwMEFBNDdCCis6MTAxMkEwMDAyNEFFRjU4MkU0MzQ3NUY1ODNFMEZFOTA3NjFFRTBGRDExCis6MTAxMkIwMDAwNEYwNzQwMDJERjU4MkU0MzQ3RkY1ODNFRUYwRUY3NUQxCis6MTAxMkMwMDBGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1ODNFMEZGOTA3NjRDCis6MTAxMkQwMDAxRUUwRkUwNEYwNzQwMDJFRjU4MkU0MzQ3RkY1ODNFRjA3Cis6MTAxMkUwMDBGMDkwNzYxQkUwMDRGMDgwQTQ5MDc2MUVFMDkwN0ZCNTJECis6MTAxMkYwMDBGMDIyOTA3NjFCRTBGRjc1RjAwQUE0MjRBRUY1ODJFNDlDCis6MTAxMzAwMDAzNDc1RjU4M0UwOTA3RjAwRjBFRjc1RjAwQUE0MjRBRjA4Cis6MTAxMzEwMDBGNTgyRTQzNDc1RjU4M0UwOTA3RjAxRjA5MDdGQjU3NDM5Cis6MTAxMzIwMDAwMkYwMjI5MDdGRUFFMEY0NzA2RDkwNzYzOEUwOTA3NkRCCis6MTAxMzMwMDAxQkYwOTA3NjNBRTBGRjkwNzYxQkUwQzM5RjUwNEZFMEExCis6MTAxMzQwMDBGRjc1RjAwQUE0MjRCMEY1ODJFNDM0NzVGNTgzRTBGRTVECis6MTAxMzUwMDA5MDc2MUVFMEZEMDRGMDc0MDAyREY1ODJFNDM0N0ZGNUY0Cis6MTAxMzYwMDA4M0VFRjBFRjc1RjAwQUE0MjRCMUY1ODJFNDM0NzVGNTRDCis6MTAxMzcwMDA4M0UwRkY5MDc2MUVFMEZFMDRGMDc0MDAyRUY1ODJFNDE4Cis6MTAxMzgwMDAzNDdGRjU4M0VGRjA5MDc2MUJFMDA0RjA4MEE0OTA3NjM0Cis6MTAxMzkwMDAxRUUwOTA3RkI1RjAyMjkwNzYxQkUwRkY3NUYwMEFBNDY2Cis6MTAxM0EwMDAyNEIwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwRUY3NUFBCis6MTAxM0IwMDBGMDBBQTQyNEIxRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMTRFCis6MTAxM0MwMDBGMDkwN0ZCNTc0MDJGMDIyOTA3RkVBRTBGNDcwNkQ5MEE3Cis6MTAxM0QwMDA3NjM4RTA5MDc2MUJGMDkwNzYzQUUwRkY5MDc2MUJFMDRFCis6MTAxM0UwMDBDMzlGNTA0RkUwRkY3NUYwMEFBNDI0QjJGNTgyRTQzNEE1Cis6MTAxM0YwMDA3NUY1ODNFMEZFOTA3NjFFRTBGRDA0RjA3NDAwMkRGNTk3Cis6MTAxNDAwMDA4MkU0MzQ3RkY1ODNFRUYwRUY3NUYwMEFBNDI0QjNGNTlGCis6MTAxNDEwMDA4MkU0MzQ3NUY1ODNFMEZGOTA3NjFFRTBGRTA0RjA3NEZDCis6MTAxNDIwMDAwMDJFRjU4MkU0MzQ3RkY1ODNFRkYwOTA3NjFCRTAwNDI0Cis6MTAxNDMwMDBGMDgwQTQ5MDc2MUVFMDkwN0ZCNUYwMjI5MDc2MUJFMEJECis6MTAxNDQwMDBGRjc1RjAwQUE0MjRCMkY1ODJFNDM0NzVGNTgzRTA5MEM4Cis6MTAxNDUwMDA3RjAwRjBFRjc1RjAwQUE0MjRCM0Y1ODJFNDM0NzVGNTRCCis6MTAxNDYwMDA4M0UwOTA3RjAxRjA5MDdGQjU3NDAyRjAyMjkwN0ZCNDBBCis6MTAxNDcwMDBFMDQ0MDFGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0ZCNDc4Cis6MDUxNDgwMDBFMDQ0MDFGMDIyMzAKKzoxMDE0ODUwMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5N0EKKzowMTE0OTUwMDIyMzQKKzoxMDE0OTYwMDkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRTAKKzoxMDE0QTYwMEMwRDBDMEUwOEZFMEMwRTA4RUUwQzBFMDhERTBDMEUwREMKKzoxMDE0QjYwMDhDRTBDMEUwQzA4MkMwODMwNTg2QzA4NEMwODU3RDAwMDQKKzoxMDE0QzYwMDkwN0ZFMzc0N0JGMEEzNzQ4MEYwN0MxMTkwN0Y5OUUwQTkKKzoxMDE0RDYwMDU0NDBEQzAzMDIxNEYzQjQwMDEzOTA3RkUyNzQ0MEYwMkUKKzoxMDE0RTYwMDkwN0ZFNUYwOTA3RkUyNzQwMEYwMDIxNEQyOTA3NjkwM0YKKzoxMDE0RjYwMEUwQjQwMTEyOTA3NjhGRTAyREZEOTA3RkUyNzQ4MEYwQ0IKKzoxMDE1MDYwMDkwN0Y2QzAyMTU1N0I0MDIxMjkwNzY4RkUwMkRGRDkwRjUKKzoxMDE1MTYwMDdGRTI3NDgwRjA5MDdGNkMwMjE1OTZCNDAzMTI5MDc2ODkKKzoxMDE1MjYwMDhGRTAyREZEOTA3RkUyNzQ4MEYwOTA3RjZDMDIxNUUxRDQKKzoxMDE1MzYwMEI0MDQxMjkwNzY4RkUwMkRGRDkwN0ZFMjc0ODBGMDkwRDcKKzoxMDE1NDYwMDdGNkMwMjE2MTA5MDdGRTI3NDgwRjA5MDdGNkMwMjE2MUEKKzoxMDE1NTYwMDQwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRERGMjdEQjkKKzoxMDE1NjYwMDAyMDU4NjkwN0ZFMjc0MDBGMDkwN0Y5QkUwNTQwNEI0RkQKKzoxMDE1NzYwMDAwMDUwNTg2MDIxNjQwOTA3RkUyNzQ4MEYwMDU4NkYwMkQKKzoxMDE1ODYwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBEREQ0MDIxNjQwRkMKKzoxMDE1OTYwMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwNDUKKzoxMDE1QTYwMEYwRjBEREVDN0QwMjA1ODY5MDdGRTI3NDAwRjA5MDdGMUUKKzoxMDE1QjYwMDlCRTA1NDA0QjQwMDA1MDU4NjAyMTY0MDkwN0ZFMjc0NTEKKzoxMDE1QzYwMDgwRjAwNTg2RjBGMEYwRjBGMEYwRjBGMEYwRjBGMEYwREEKKzowNjE1RDYwMEYwRjBGMEYwRjBGMDZGCis6MTAxNURDMDBERENFMDIxNjQwRjBGMEYwRjBEREZBN0QwMjA1ODY5MENCCis6MTAxNUVDMDA3RkUyNzQwMEYwOTA3RjlCRTA1NDA0QjQwMDA1MDU4NjA0Cis6MTAxNUZDMDAwMjE2NDA5MDdGRTI3NDgwRjAwNTg2RjBGMEYwRjBERDhBCis6MTAxNjBDMDBEQzAyMTY0MEYwRjBGMEYwRjBGMERERjg3RDAyMDU4NjFCCis6MTAxNjFDMDA5MDdGRTI3NDAwRjA5MDdGOUJFMDU0MDRCNDAwMDUwNUM5Cis6MTAxNjJDMDA4NjAyMTY0MDkwN0ZFMjc0ODBGMDA1ODZGMEYwRjBGMEIwCis6MTAxNjNDMDBGMEYwREREQTkwN0ZFMjc0MDBGMEQwODVEMDg0MDU4NjdFCis6MTAxNjRDMDBEMDgzRDA4MkQwRTBGQ0QwRTBGREQwRTBGRUQwRTBGRjMzCis6MDUxNjVDMDBEMEUwRDBEMDIyMTcKKzoxMDE2NjEwMEMwRDBDMEUwQzA4MkMwODM5MDc2N0NFMDkwN0Y2RkYwRjQKKzoxMDE2NzEwMDkwNzY3REUwOTA3RjZGRjA5MDc2N0VFMDkwN0Y2RkYwQzYKKzowOTE2ODEwMEQwODNEMDgyRDBFMEQwRDAyMjQ5Cis6MTAxNjhBMDBDMEQwQzBFMDhGRTBDMEUwOEVFMEMwRTBDMDgyQzA4MzdFCis6MTAxNjlBMDAwNTg2QzA4NEMwODU5MDc2ODdFMEZGQkYwMDAzMDIxN0U1Cis6MTAxNkFBMDAwMTkwN0Y5NkUwNDQ4MEYwOTA3RkUyNzQ4MEYwOTA3RjEyCis6MTAxNkJBMDA2MkUwMDU4NjkwN0ZFMjc0MDBGMDkwN0Y5NkUwNTQ3RkE2Cis6MTAxNkNBMDBGMDkwN0ZFMjc0ODBGMDkwNzY4RUUwQjQwMTA1MDU4NjkyCis6MTAxNkRBMDAwMjE2RjZCNDAyMDUwNTg2MDIxNkVCMDU4NjAyMTZGQjBCCis6MTAxNkVBMDBFMEUwRTBFMEUwRTBERkY4MDIxNkZCRTBFMEUwRTBERjY3Cis6MTAxNkZBMDBGQTkwN0ZFMjc0MDBGMEQwODVEMDg0MDU4NkQwODNEMDNBCis6MEMxNzBBMDA4MkQwRTBGRUQwRTBGRkQwRTBEMEQwMjI4MgorOjEwMTcxNjAwQzA4MkMwODNDMEUwRThDMEUwNzhEMUU4MTRGODcwRkI2RQorOjBBMTcyNjAwRDBFMEY4RDBFMEQwODNEMDgyMjI5QQorOjEwMTczMDAwQzA4MkMwODNDMEUwRThDMEUwNzg3OEU4MTRGODcwRkJBRAorOjBBMTc0MDAwRDBFMEY4RDBFMEQwODNEMDgyMjI4MAorOjA3MTc0QTAwOTA3RkM1NzQwMkYwMjIzQworOjEwMTc1MTAwOTA3RUMwRTA5MDc2NDVGMDkwN0VDMUUwOTA3NjQ0RjBCNgorOjEwMTc2MTAwOTA3RUMyRTA5MDc2NDNGMEI0MDAwMzAyMTc3ODkwNzY0MQorOjEwMTc3MTAwMTk3NDAzRjAwMjE3OEU5MDc2NDRFMEI0QkIwOTkwNzY5OQorOjEwMTc4MTAwMTk3NDAyRjAwMjE3OEU5MDc2MTk3NDAxRjA5MDc2NDI2NgorOjAzMTc5MTAwRTRGMDIyNUYKKzowNDE3OTQwMDhEMjk4QjJBRTYKKzoxMDE3OTgwMDEyNDlGRkVBNDk2MDU3MTIzNjkyN0UwMDI5RkZFRTNBNTUKKzoxMDE3QTgwMEM5RUZDOTc1MkJGRkY1MkM4OTJEQUIyQkFBMkNBOTJEQjgKKzoxMDE3QjgwMDkwMDAwMTEyMzZBQkZGNjQwNDYwMDVFRjY0MDU3MDJFREIKKzoxMDE3QzgwMEVGQjQwNDE1OTAwMDAyMTIzNkFCNjUyOTcwMEI5MDAwMzcKKzoxMDE3RDgwMDAzMTIzNkFCNjUyQTcwMDEyMjEyMzY5MjdFMDAyOUZGNjkKKzoxMDE3RTgwMEVFM0FDOUVGQzk3NTJCRkZGNTJDODkyRDgwQkM3QjAwMUIKKzowNDE3RjgwMDdBMDA3OTAwRkEKKzowMTE3RkMwMDIyQ0EKKzowMzE3RkQwMEMyOEIzMjZBCis6MTAxODAwMDA5MDc2OTBFMDE0NjAzNzE0NzAwMjAxRDgxNDcwMDIyMUIxCis6MTAxODEwMDA3MjE0NzAwMjQxM0IyNDA0NjAwMjYxMDM5MDdGRkM3NEU3Cis6MTAxODIwMDBDQ0YwOTA3RkZGNzRGQ0YwOTA3Njk1RTA0NDAxRjA1NDhBCis6MTAxODMwMDAwNUYwOTA4MDAxRjBFNDkwNzYxQUYwQzIyRTIyOTA3NkE2Cis6MTAxODQwMDA5NUUwNDQwMUYwNDQwMkYwMzAzRTA2RTA0NDA0RjA4MEFDCis6MTAxODUwMDAwNzkwNzY5NUUwNTRGQkYwOTA3NjFBRTBCNDAxMDg5MDdBCis6MTAxODYwMDA3Njk1RTA5MDgwMDFGMDkwNzYxOUUwRkZCNDAxMjI5MDI3Cis6MTAxODcwMDA3RkZDNzQ3NEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyQjczCis6MTAxODgwMDBGMDkwNzY5N0UwNTRGREYwRTQ5MDc2ODFGMDkwNzY4MEM5Cis6MTAxODkwMDBGMEVGQjQwMjIyOTA3RkZDNzQ2OEYwOTA3RkZGNzRGQzNDCis6MTAxOEEwMDBGMDkwNzY4Rjc0MkZGMDkwNzY5N0UwNDQwMkYwRTQ5MEY5Cis6MTAxOEIwMDA3NjgxRjA5MDc2ODBGMDMwM0YwOTkwNzY5N0UwNTRGRTg0Cis6MTAxOEMwMDBGMDgwMDc5MDc2OTdFMDQ0MDFGMDkwNzY5N0UwNTRGQjIzCis6MTAxOEQwMDBGMDkwODAwMkYwRDIyRTIyOTA3Njk1RTA1NEZFRjA0NEYzCis6MTAxOEUwMDAwMkYwMzAzRTA2RTA0NDA0RjA4MDA3OTA3Njk1RTA1NDI0Cis6MTAxOEYwMDBGQkYwOTA3NjFBRTBCNDAxMDg5MDc2OTVFMDkwODAwMUI0Cis6MTAxOTAwMDBGMDkwNzYxOUUwRkZCNDAxMjI5MDdGRkM3NDMwRjA5MEUzCis6MTAxOTEwMDA3RkZGNzRGQ0YwOTA3NjhGNzQyQkYwOTA3Njk3RTA1NEY0Cis6MTAxOTIwMDBGREYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAyMjI5MEEyCis6MTAxOTMwMDA3RkZDNzQxQ0YwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyRjA2Cis6MTAxOTQwMDBGMDkwNzY5N0UwNDQwMkYwRTQ5MDc2ODFGMDkwNzY4MDEzCis6MTAxOTUwMDBGMDMwM0YwOTkwNzY5N0UwNTRGRUYwODAwNzkwNzY5NzNDCis6MTAxOTYwMDBFMDQ0MDFGMDkwNzY5N0UwNTRGQkYwOTA4MDAyRjBEMkQyCis6MTAxOTcwMDAyRTIyOTA3Njk1RTA0NDAxRjA0NDAyRjA0NDA4RjAzMEM1Cis6MTAxOTgwMDAzRTA2RTA0NDA0RjA4MDA3OTA3Njk1RTA1NEZCRjA5MDJBCis6MTAxOTkwMDA3NjFBRTBCNDAxMDg5MDc2OTVFMDkwODAwMUYwOTA3Njk4Cis6MTAxOUEwMDAxOUUwRkZCNDAxMjU5MDdGRkM3NENDRjA5MDdGRkY3NEE4Cis6MTAxOUIwMDBGQ0YwOTA3NjhGNzQyQkYwOTA3Njk3RTA1NEZERjA1NDA1Cis6MTAxOUMwMDBGQkYwRTQ5MDc2ODFGMDkwNzY4MEYwRUZCNDAyMjU5MDAxCis6MTAxOUQwMDA3RkZDNzRDOEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyRkJBCis6MTAxOUUwMDBGMDkwNzY5N0UwNDQwMkYwNTRGQkYwRTQ5MDc2ODFGMEJBCis6MTAxOUYwMDA5MDc2ODBGMEVGQjQwMzI1OTA3RkZDNzQ5OEYwOTA3RjkwCis6MTAxQTAwMDBGRjc0RkNGMDkwNzY4Rjc0NUZGMDkwNzY5N0UwNTRGRDUxCis6MTAxQTEwMDBGMDQ0MDRGMEU0OTA3NjgxRjA5MDc2ODBGMDMwM0YwOTU1Cis6MTAxQTIwMDA5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMEJFCis6MTAxQTMwMDA5MDc2OTdFMDkwODAwMkYwRDIyRTIyOTA3Njk1RTA1NDM2Cis6MTAxQTQwMDBGRUYwNDQwMkYwNDQwOEYwMzAzRTA2RTA0NDA0RjA4MDJBCis6MTAxQTUwMDAwNzkwNzY5NUUwNTRGQkYwOTA3NjFBRTBCNDAxMDg5MDc4Cis6MTAxQTYwMDA3Njk1RTA5MDgwMDFGMDkwNzYxOUUwRkZCNDAxMjU5MDIyCis6MTAxQTcwMDA3RkZDNzRCNEYwOTA3RkZGNzRGQ0YwOTA3NjhGNzQyQjMxCis6MTAxQTgwMDBGMDkwNzY5N0UwNTRGREYwNTRGQkYwRTQ5MDc2ODFGMDBFCis6MTAxQTkwMDA5MDc2ODBGMEVGQjQwMjI1OTA3RkZDNzRCMEYwOTA3RkQ4Cis6MTAxQUEwMDBGRjc0RkNGMDkwNzY4Rjc0MkZGMDkwNzY5N0UwNDQwMkVDCis6MTAxQUIwMDBGMDU0RkJGMEU0OTA3NjgxRjA5MDc2ODBGMEVGQjQwMzgwCis6MTAxQUMwMDAyNTkwN0ZGQzc0NjhGMDkwN0ZGRjc0RkNGMDkwNzY4RjE3Cis6MTAxQUQwMDA3NDVGRjA5MDc2OTdFMDU0RkRGMDQ0MDRGMEU0OTA3NjYzCis6MTAxQUUwMDA4MUYwOTA3NjgwRjAzMDNGMDk5MDc2OTdFMDU0RkVGMEQ4Cis6MTAxQUYwMDA4MDA3OTA3Njk3RTA0NDAxRjA5MDc2OTdFMDkwODAwMjFFCis6MDQxQjAwMDBGMEQyMkUyMkNGCis6MTAxQjA0MDAzMDJDMzhDMjJDOTA3NjE5RTBGRkI0MDEwRTkwNzY3QzBDCis6MTAxQjE0MDA3NEMwRjBBMzc0MTRGMEEzNzQwQkYwRUZCNDAyMERFNERBCis6MTAxQjI0MDA5MDc2N0NGMEEzNzQxMEYwQTM3NDBDRjBFRkI0MDMwQjY0Cis6MEMxQjM0MDBFNDkwNzY3Q0YwQTM3NDE4RjBBM0YwMjI3QgorOjEwMUI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwMUI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwMUI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwMUI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwMUI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwMUI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwMUJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwMUJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwMUJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwMUJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwMUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwMUJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMUMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwMUMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwMUMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwMUM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwMUM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwMUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwMUM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwMUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwMUM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwMUNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwMUNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwMUQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwMUQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwMUQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwMUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwMUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwMUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwMUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwMURBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwMURCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwMURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwMUREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwMURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwMURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwMUUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwMUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwMUUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwMUU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwMUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwMUU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwMUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwMUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwMUU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwMUVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjBFMUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAxRUJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAxRUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAxRURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAxRUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAxRUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAxRjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAxRjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAxRjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MDIxRjNFMDAwMDAwQTEKKzoxMDFGNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTEKKzoxMDFGNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODEKKzoxMDFGNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzEKKzoxMDFGNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjEKKzoxMDFGODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTEKKzoxMDFGOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDEKKzoxMDFGQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzEKKzoxMDFGQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjEKKzoxMDFGQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTEKKzoxMDFGRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEKKzoxMDFGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjEKKzoxMDFGRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTEKKzoxMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRDAKKzoxMDIwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQzAKKzoxMDIwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjAKKzoxMDIwMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzoxMDIwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAKKzoxMDIwNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODAKKzoxMDIwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAKKzoxMDIwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzoxMDIwODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTAKKzoxMDIwOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAKKzoxMDIwQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAKKzoxMDIwQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzoxMDIwQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAKKzoxMDIwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzoxMDIwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRjAKKzoxMDIwRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTAKKzoxMDIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDIxMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkYKKzoxMDIxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUYKKzoxMDIxMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUYKKzoxMDIxNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEYKKzoxMDIxNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0YKKzoxMDIxNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkYKKzoxMDIxNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUYKKzoxMDIxODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEYKKzoxMDIxOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0YKKzoxMDIxQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkYKKzoxMDIxQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUYKKzoxMDIxQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYKKzoxMDIxRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkYKKzoxMDIxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUYKKzoxMDIxRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREYKKzoxMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0UKKzoxMDIyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkUKKzoxMDIyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUUKKzoxMDIyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUUKKzoxMDIyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEUKKzoxMDIyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0UKKzoxMDIyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkUKKzoxMDIyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUUKKzoxMDIyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzoxMDIyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0UKKzoxMDIyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkUKKzoxMDIyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUUKKzoxMDIyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUKKzoxMDIyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkUKKzoxMDIyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUUKKzoxMDIyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREUKKzoxMDIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0QKKzoxMDIzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkQKKzoxMDIzMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUQKKzoxMDIzMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUQKKzoxMDIzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEQKKzoxMDIzNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0QKKzoxMDIzNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkQKKzowRTIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjM3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjM4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjM5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjNBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjNCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjNDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjNERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjNFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjNGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjQwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjQxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjQyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjQzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjQ0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjQ1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjQ2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjQ3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjQ4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjQ5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjRBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjRCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjRDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjRERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjRFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjRGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjUwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjUxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjUyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjUzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjU0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjU1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjU2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjU3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjU4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjU5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjVBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjVCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjVDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjVERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjVFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjEwMjVGRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjYwRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwMjYxRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQworOjEwMjYyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwMjYzRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwMjY0RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwMjY1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwMjY2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwMjY3RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwMjY4RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwMjY5RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQworOjEwMjZBRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQworOjEwMjZCRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwMjZDRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwMjZERTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjBFMjZFRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyNkZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyNzBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyNzFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyNzJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyNzNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyNzRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyNzVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyNzZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyNzdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyNzhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyNzlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyN0FDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyN0JDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyN0NDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyN0RDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyN0VDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MDUyN0ZDMDAwMDAwMDAwMDIyQjYKKzoxMDI4MDEwMEMyMjBDMjIxQzIyQTkwN0ZFOEUwMTIzN0Y5MjgzMDAwQTUKKzoxMDI4MTEwMDI4OEMwMTI4QTIwMjJBMUYyMTJBNkEyMjI5M0Q4MDI5MDcKKzoxMDI4MjEwMDdEODEyOUQxODIyQTg0QTEyQUJBQTIwMDAwMkFCRjkwREYKKzoxMDI4MzEwMDdGRTlFMDE0NjAxMTI0RkU2MDI4MjRGRTYwM0IyNEZDNDMKKzoxMDI4NDEwMDcwNDAxMjRCQTA0MUNCMTI0REE3NDAwMjQxQ0I5MDdGNkIKKzoxMDI4NTEwMEVBRTBCNDAxMDRDMjIyNDFDQjkwN0ZCNEUwNDQwMUYwMkMKKzoxMDI4NjEwMDQxQ0IxMjREQTk5MDdGRUFFMEI0MDEwNEQyMjI0MUNCQzEKKzoxMDI4NzEwMDkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZCNEUwNDQwMUYwOUIKKzoxMDI4ODEwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGRTlFMDI0NUIKKzoxMDI4OTEwMEY1NzAwNTEyNDgwMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxNEUKKzoxMDI4QTEwMENCOTA3RkU5RTAyNEZENjA1NDI0MDI2MDAyMjEzNDEyQzAKKzoxMDI4QjEwMDREQTc0MDAyNDFDQjkwN0ZFQUUwNzAzODkwN0ZFQ0UwNzkKKzoxMDI4QzEwMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RDMKKzoxMDI4RDEwMEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGRUYKKzoxMDI4RTEwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0RDgKKzoxMDI4RjEwMDIwRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCMTI0REE5Q0YKKzoxMDI5MDEwMDQwMDI0MUNCOTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0RUMKKzoxMDI5MTEwMDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyNTMKKzoxMDI5MjEwMEU0MzQ3RkY1ODM3NDAxRjA0MUNCOTA3RkI0RTA0NDAxM0UKKzoxMDI5MzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwREUKKzoxMDI5NDEwMDYwMTIyNEY4NjAwOTI0MDI3MDI5MTI0M0RCNDFDQjEyODIKKzoxMDI5NTEwMDRENUM0MUNCMTI0REE1QTIyMkU0MzNGRjI1RTBGRkEyM0QKKzoxMDI5NjEwMDIzRTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyMkQKKzoxMDI5NzEwMEYwNDFDQjkwN0ZCNEUwNDQwMUYwNDFDQjkwN0ZFOUUwOUUKKzoxMDI5ODEwMDYwMzMyNEY2NjAyQTI0MDQ3MDNEOTA3RkVCRTAyNERFNUUKKzoxMDI5OTEwMDYwMEMwNDcwMTI5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGNTEKKzoxMDI5QTEwMEI0RTA0NDAxRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCNkQKKzoxMDI5QjEwMDEyNDY4NTQxQ0IxMjREQTVFNDkwN0YwMEYwQTNGMDkwMjMKKzoxMDI5QzEwMDdGQjU3NDAyRjA0MUNCOTA3RkI0RTA0NDAxRjA0MUNCN0MKKzoxMDI5RDEwMDkwN0ZFOUUwMjRGNDYwMzQyNDBDNzAzOTEyNERBNTkwMDUKKzoxMDI5RTEwMDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1MUYKKzoxMDI5RjEwMEUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwNTgKKzoxMDJBMDEwMEYwRTRBM0YwOTA3RkI1NzQwMkYwNDFDQjkwN0ZCNEUwODUKKzoxMDJBMTEwMDQ0MDFGMDQxQ0I5MDdGQjRFMDQ0MDFGMDQxQ0I5MDdGODEKKzoxMDJBMjEwMEU5RTAyNEY2NjAxMjE0NjAxQTI0MDI3MDFERDIyMDkwOEQKKzoxMDJBMzEwMDdGQjRFMDQ0MDFGMDgwMTJEMjIwOTA3RkI0RTA0NDAxRTEKKzoxMDJBNDEwMEYwODAwNzkwN0ZCNEUwNDQwMUYwMjAyMDE4OTA3RkVFRTEKKzoxMDJBNTEwMEUwNzAwNEEzRTA2MDBCRDIyOUQyMjcxMjE3NEFEMjJBRDAKKzoxMDJBNjEwMDgwMDMxMjA4MDBDMjIwODA2MTkwN0ZFRUUwNzAwNEEzMTEKKzoxMDJBNzEwMEUwNjAwQkQyMjlEMjI4MTIxNzRBRDIyQTgwNEMxMjM4OTAKKzoxMDJBODEwMDc0ODA0NzkwN0ZFOUUwMjRGRTYwMTIxNDYwMUEyNDAyRUEKKzoxMDJBOTEwMDcwMUREMjIxOTA3RkI0RTA0NDAxRjA4MDEyRDIyMTkwQzgKKzoxMDJBQTEwMDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDIwNUUKKzoxMDJBQjEwMDIxMDMxMjEwMDBDMjIxODAxMTEyMkFENjgwMEMxMjRENUUKKzoxMDJBQzEwMEFCNTAwNzkwN0ZCNEUwNDQwMUYwMjAyQTA3OTA3RkI0MTcKKzowNTJBRDEwMEUwNDQwMkYwMjJDOAorOjEwMkFENjAwRTQ5MDc2MjdGMDkwNzYyN0UwRkY3NUYwMEZBNDI0NDI2NQorOjEwMkFFNjAwRjU4MkU0MzQ3NUY1ODNFMEZFOTA3RkVDRTBGREVFNkQ1MworOjEwMkFGNjAwNjAwRUVGQzM5NDA2NTAwODkwNzYyN0UwMDRGMDgwRDU2OAorOjEwMkIwNjAwRUZCNDA2MDg5MDdGQjRFMDQ0MDFGMDIyRUY3NUYwMEZCMQorOjEwMkIxNjAwQTQyNDQxRjU4MkU0MzQ3NUY1ODNFMDkwNzYyOEYwMjQwOAorOjEwMkIyNjAwOUY3MDAyQTE3NDI0MjE2MDAyQTFBMTkwN0ZFOUUwMjQ5NAorOjEwMkIzNjAwN0U3MDAyNjFGQzE0NzAwMjgxQjUyNDAyNjAwMkExNkNGMQorOjEwMkI0NjAwRUY3NUYwMEZBNDI0NDNGNTgyRTQzNDc1RjU4M0UwRkNCOQorOjEwMkI1NjAwQTNFMEZEQTNFMEZFQTNFMEZGN0I0NDdBQUM3OTAwNzgxNgorOjEwMkI2NjAwMDBDMzEyMzdBQjcwMTM5MDdGMDA3NDQ0RjBBMzc0QUNBQgorOjEwMkI3NjAwRjBFNEEzRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjA0QgorOjEwMkI4NjAwMEZBNDI0NDNGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkQ0RAorOjEwMkI5NjAwQTNFMEZFQTNFMEZGN0I4MDdBQkI3OTAwNzgwMEMzMTIzNgorOjEwMkJBNjAwMzdBQjcwMTM5MDdGMDA3NDgwRjBBMzc0QkJGMEU0QTM3RQorOjEwMkJCNjAwRjA5MDdGQjU3NDAzRjA5MDc2MjdFMDc1RjAwRkE0MjRBQgorOjEwMkJDNjAwNDNGNTgyRTQzNDc1RjU4M0UwRkNBM0UwRkRBM0UwRkU2MworOjEwMkJENjAwQTNFMEZGN0IwMDdBNzc3OTAxNzgwMEMzMTIzN0FCNjBGOAorOjEwMkJFNjAwMDJBMUE4OTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTA3RgorOjEwMkJGNjAwN0ZCNTc0MDNGMDIyOTA3NjI3RTA3NUYwMEZBNDI0NDc4MgorOjEwMkMwNjAwRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFQTNDMgorOjEwMkMxNjAwRTBGRjdCNDQ3QUFDNzkwMDc4MDBDMzEyMzdBQjcwMTNCRgorOjEwMkMyNjAwOTA3RjAwNzQ0NEYwQTM3NEFDRjBFNEEzRjA5MDdGQjVGOQorOjEwMkMzNjAwNzQwM0YwOTA3NjI3RTA3NUYwMEZBNDI0NDdGNTgyRTQzQworOjEwMkM0NjAwMzQ3NUY1ODNFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0I4MworOjEwMkM1NjAwODA3QUJCNzkwMDc4MDBDMzEyMzdBQjcwMTM5MDdGMDA3RgorOjEwMkM2NjAwNzQ4MEYwQTM3NEJCRjBFNEEzRjA5MDdGQjU3NDAzRjAxNgorOjEwMkM3NjAwOTA3NjI3RTA3NUYwMEZBNDI0NDdGNTgyRTQzNDc1RjVDNQorOjEwMkM4NjAwODNFMEZDQTNFMEZEQTNFMEZFQTNFMEZGN0IwMDdBNzdGMAorOjEwMkM5NjAwNzkwMTc4MDBDMzEyMzdBQjYwMDJBMUE4OTA3RjAwRjBEQgorOjEwMkNBNjAwQTM3NDc3RjBBMzc0MDFGMDkwN0ZCNTc0MDNGMDIyOTBCQgorOjEwMkNCNjAwNzYyN0UwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODM4RQorOjEwMkNDNjAwRTBGQ0EzRTBGREEzRTBGRUEzRTBGRjdCNDQ3QUFDNzk0MQorOjEwMkNENjAwMDA3ODAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ0NEYwQTNFMgorOjEwMkNFNjAwNzRBQ0YwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTAxRgorOjEwMkNGNjAwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NUY1ODNFMEZDQTM0QworOjEwMkQwNjAwRTBGREEzRTBGRUEzRTBGRjdCODA3QUJCNzkwMDc4MDBCQworOjEwMkQxNjAwQzMxMjM3QUI3MDEzOTA3RjAwNzQ4MEYwQTM3NEJCRjBCRQorOjEwMkQyNjAwRTRBM0YwOTA3RkI1NzQwM0YwOTA3NjI3RTA3NUYwMEY3QQorOjEwMkQzNjAwQTQyNDRCRjU4MkU0MzQ3NUY1ODNFMEZDQTNFMEZEQTNGRgorOjEwMkQ0NjAwRTBGRUEzRTBGRjdCMDA3QTc3NzkwMTc4MDBDMzEyMzdCMworOjEwMkQ1NjAwQUI3MDRGOTA3RjAwRjBBMzc0NzdGMEEzNzQwMUYwOTBFRQorOjEwMkQ2NjAwN0ZCNTc0MDNGMDIyOTA3RkI0RTA0NDAxRjAyMjkwN0Y5NworOjEwMkQ3NjAwRTlFMDI0N0Y3MDFFOTA3NjI3RTA3NUYwMEZBNDI0NEZCQgorOjEwMkQ4NjAwRjU4MkU0MzQ3NUY1ODNFMDkwN0YwMEYwOTA3RkI1NzRBQQorOjEwMkQ5NjAwMDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDRGNgorOjAzMkRBNjAwMDFGMDIyMTcKKzoxMDJEQTkwMEU0OTA3NjM2RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTIKKzoxMDJEQjkwMDM0NzVGNTgzNzQwMUYwRUY3NUYwMDNBNDI0MEZGNTgyREYKKzoxMDJEQzkwMEU0MzQ3NUY1ODM3NDAxRjBFRjc1RjAwM0E0MjQxMEY1NkMKKzoxMDJERDkwMDgyRTQzNDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGQTAKKzoxMDJERTkwMDc1RjAwM0E0MjQwRUY1ODJFNDM0NzVGNTgzNzQxMEYwQUMKKzoxMDJERjkwMEVGNzVGMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA1QTcKKzoxMDJFMDkwMEYwRUY3NUYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4M0U0M0EKKzoxMDJFMTkwMEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQwRUY1OTcKKzoxMDJFMjkwMDgyRTQzNDc1RjU4Mzc0MDJGMEVGNzVGMDAzQTQyNDBGN0UKKzoxMDJFMzkwMEY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0ODgKKzoxMDJFNDkwMDEwRjU4MkU0MzQ3NUY1ODNFNEYwOTA3NjM2RTAwNEYwMDkKKzoxMDJFNTkwMEUwRkY3NUYwMDNBNDI0MEVGNTgyRTQzNDc1RjU4Mzc0NUMKKzoxMDJFNjkwMDAxRjBFRjc1RjAwM0E0MjQwRkY1ODJFNDM0NzVGNTgzQkUKKzoxMDJFNzkwMDc0MDNGMEVGNzVGMDAzQTQyNDEwRjU4MkU0MzQ3NUY1QkEKKzoxMDJFODkwMDgzRTRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0QzMKKzoxMDJFOTkwMDBFRjU4MkU0MzQ3NUY1ODM3NDEwRjBFRjc1RjAwM0E0MzAKKzoxMDJFQTkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDZGMEVGNzVGMDAzQTkKKzoxMDJFQjkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzRTRGMDkwNzYzNkUwQzUKKzoxMDJFQzkwMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1RUYKKzoxMDJFRDkwMDgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1Q0UKKzoxMDJFRTkwMEY1ODM3NDA0RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0M0IKKzoxMDJFRjkwMDc1RjU4M0U0RjA5MDc2MzZFMDA0RjBFMEZGNzVGMDAzQjEKKzoxMDJGMDkwMEE0MjQwRUY1ODJFNDM0NzVGNTgzNzQwMkYwRUY3NUYwQUMKKzoxMDJGMTkwMDAzQTQyNDBGRjU4MkU0MzQ3NUY1ODM3NDA4RjBFRjc1ODIKKzoxMDJGMjkwMEYwMDNBNDI0MTBGNTgyRTQzNDc1RjU4Mzc0MDRGMDkwNTkKKzoxMDJGMzkwMDc2MzZFMDA0RjBFMEZGNzVGMDAzQTQyNDBFRjU4MkU0OTAKKzoxMDJGNDkwMDM0NzVGNTgzNzQwMkYwRUY3NUYwMDNBNDI0MEZGNTgyNEMKKzoxMDJGNTkwMEU0MzQ3NUY1ODM3NDBBRjBFRjc1RjAwM0E0MjQxMEY1RDEKKzoxMDJGNjkwMDgyRTQzNDc1RjU4Mzc0MDRGMDkwNzYzNkUwMDRGMEUwNzkKKzoxMDJGNzkwMEZGNzVGMDAzQTQyNDBFRjU4MkU0MzQ3NUY1ODM3NDAyMTkKKzoxMDJGODkwMEYwRUY3NUYwMDNBNDI0MEZGNTgyRTQzNDc1RjU4Mzc0MkEKKzoxMDJGOTkwMDA5RjBFRjc1RjAwM0E0MjQxMEY1ODJFNDM0NzVGNTgzODQKKzoxMDJGQTkwMDc0MDRGMDkwNzYzNkUwMDRGMEUwRkY3NUYwMDNBNDI0OTEKKzoxMDJGQjkwMDBFRjU4MkU0MzQ3NUY1ODM3NDAyRjBFRjc1RjAwM0E0MUQKKzoxMDJGQzkwMDI0MEZGNTgyRTQzNDc1RjU4Mzc0MDdGMEVGNzVGMDAzODcKKzowRTJGRDkwMEE0MjQxMEY1ODJFNDM0NzVGNTgzNzQwNEYwMjIwQworOjEwMkZFNzAwQzBFMEMwODNDMDgyRDIyNjUzOTFFRjkwN0ZBQjc0MDFCQgorOjA4MkZGNzAwRjBEMDgyRDA4M0QwRTAzMjVCCis6MDEyRkZGMDAzMjlGCis6MTAzMDAwMDA5MDdGQjZFMDIwRTEwMkMyM0REMjM2MjAzNjAyNDE2RTBBCis6MTAzMDEwMDAzMDNEMDI0MTZFOTA4MDA3RTA2MDA0RDIzNjgwMDJDMkVCCis6MTAzMDIwMDAzNjIwMzYwMjQxMkVEMjM1RTRGNTFBOTA4MDA0RTBGNUMwCis6MTAzMDMwMDAxOTc0MDgyNTBFRjhBNjE5ODUxOTE4RTUxODIwRTcwNDUzCis6MTAzMDQwMDBEMjM4ODAwMkMyMzgzMDM4MDIyMUQ0RTRGNTE2RTUxOUFFCis6MTAzMDUwMDBCNEYwMENEMjM5NzUwODA0NzUwOUYwMDUwRTgwMDIwNTJDCis6MTAzMDYwMDAxNkU1MTk2NEY3NzAzREMyMzlFNTBFMjRGRTYwMTcxNEE5Cis6MTAzMDcwMDA2MDIyMjQwMzcwMjk3NTA4MDU3NTA5RjdFNEY1MEFGNTNGCis6MTAzMDgwMDAwQjc1MEUwNDgwMjA3NTA4MDY3NTBBRjdFNEY1MEI3NUJDCis6MTAzMDkwMDAwRTA0ODAxMjc1MDgwNzc1MEJGNzc1MEUwNDgwMDcxMjcxCis6MTAzMEEwMDA0OEYzODAwMjA1MTZFNTE5NTRGODY0Rjg3MDNCQzIzNTAwCis6MTAzMEIwMDBFNTE5MjQwNzYwMEMyNEZDNjAwODI0MDUyNEY4NTAwNjU4Cis6MTAzMEMwMDA4MDA4RDIzQTgwMDZDMjNBODAwMkQyM0E3NTFBMDEyMEFDCis6MTAzMEQwMDAzQTE5OTA3RTgwNzQwRkYwQTNFNTE5RjBFNEEzRjBBM0YxCis6MTAzMEUwMDBGMDkwN0ZCNzc0MDRGMDgwMDIwNTE2MjAzOTZERTUxOTYxCis6MTAzMEYwMDA2NEY3NjA2N0U1MUE3MDYzRTUxODU0RjA2NEYwNzA1OTdFCis6MTAzMTAwMDA4NTE4MTlGNTBFRTUxOTI0MEY2MDFCMjRGRTYwMTcyNDlECis6MTAzMTEwMDBGRDYwMjIxNDYwMUYyNDA1NzAyRjc1MDgwMzA1MEU4NUJECis6MTAzMTIwMDAxODA5RDIzNzgwMjg3NTA4MDIwNTBFODUxODA5NzUxNDBDCis6MTAzMTMwMDAwMUQyMzc4MDE5NzUwODA1MDUwRTg1MTgwOUU0RjUwQUNFCis6MTAzMTQwMDBGNTBCNzUwRTAzRDIzNzgwMDUxMjQ4RjNDMjM1MzAzNUMyCis6MTAzMTUwMDAwQTg1MDgxMzg1MTgxMjgwMDIwNTE2ODUxODE5RTUxNkM4Cis6MTAzMTYwMDA2NDA0NzA2MkY1MEVFNTE5NTRGMEY1MTlGNTE1ODUxODJCCis6MTAzMTcwMDAxOUU1MTUyNDcwNjAxODI0RjA2MDE0MjRGMDYwMTAyNDAwCis6MTAzMTgwMDBGMDYwMUUyNEYwNjAxQTI0RjA2MDA0MjQ2MDcwMjdFNUNCCis6MTAzMTkwMDAxNUM0NTQwRkY1MTlGNTA4MDUwRTg1MTgwOUQyMzc4MEE2Cis6MTAzMUEwMDAxQUU1MTVDNDU0MEZGNTE5RjUwODA1MEU4NTE4MDk3NUFCCis6MTAzMUIwMDAxNDAxRDIzNzgwMDUxMjQ4RjNDMjM1MzAzNTBBODUxOTFCCis6MTAzMUMwMDAxMzg1MTgxMjgwMDIwNTE2RTUxNkQzOTQwNTQwNTcxMjkwCis6MTAzMUQwMDA0OEYzODA1MjMwMzkxN0U1MEU3MDBBODUwODA5NzUwOEUyCis6MTAzMUUwMDAwNDA1MEU4MDQxNzQwODI1MEVGOEE2MTk4MDM4MjAzNzkyCis6MTAzMUYwMDAyQUU1MEVCNDAxMEY4NTA4MEE4NTA5MEI4NTEzMDg4NTk5Cis6MTAzMjAwMDAxMjA5NzUwRTA0RTUxNEI0MDExQzg1MDgwQUU0RjUwQkQ3Cis6MTAzMjEwMDA4NTEzMDg4NTEyMDk3NTBFMDQ4MDBCRTUxNEI0MDEwNkE4Cis6MTAzMjIwMDBFNEY1MEI3NTBFMDRFNEY1MUEzMDM1MDIwNTBFRTUwRUQzCis6MTAzMjMwMDBEMzk0MDM1MDAyMDEwQkMyMzdFNEY1MEVGNTEwQzIzNkU5Cis6MTAzMjQwMDBEMjNERjUxNDc0MDgyNTEwRjhFNkZGNzQ4MDI1MTBGNUJBCis6MTAzMjUwMDA4MkU0MzQ3RUY1ODNFRkYwNzQwODI1MTBGOEU0RjYwNTc3Cis6MEYzMjYwMDAxMEU1MTBCNDA0REU5MDdGQjc3NDA0RjAwMTBCMjI2OAorOjEwMzI2RjAwOTA3NjE4RTBGRjY0MDU3MDQyOTA3NUFCRTBCNDAxMTlEOQorOjEwMzI3RjAwOTA3MjM3NzQwMUYwRTQ5MDgwMjBGMDkwODAzMUYwOTBEQworOjEwMzI4RjAwODAyOEYwOTA4MDM5RjA4MDIyRTQ5MDcyMzdGMDkwNzVBQQorOjEwMzI5RjAwQURFMDkwNzIyQkYwRTAyNDgwRjBFMDkwODAyMEYwOTA3MQorOjEwMzJBRjAwODAzMUYwOTA4MDI4RjA5MDgwMzlGMEVGNjQwNjYwMDI1MgorOjEwMzJCRjAwODE5OTkwNzIzOTc0MDRGMDkwNzIzOUUwRkYyNEZFOTA3NgorOjEwMzJDRjAwNzIwNEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjVCRgorOjEwMzJERjAwODNFMDY0MDE3MDU0OTA3MjM2MDRGMDkwNzIwNEUwRkY0MgorOjEwMzJFRjAwMjRGRDYwMjgyNEZFNjAyNDI0MDMyNEZCNTAwNDYwMUM2QQorOjEwMzJGRjAwODE4Qzc0MjAyRkY1ODJFNDM0ODBGNTgzRTRGMDc0MjhGOAorOjEwMzMwRjAwMkZGNTgyRTQzNDgwRjU4M0U0RjA4MThDOTA3MjA0RTAzMQorOjEwMzMxRjAwRkYyNDMwRjU4MkU0MzQ4MEY1ODNFNEYwNzQzODJGRjUyMAorOjEwMzMyRjAwODJFNDM0ODBGNTgzRTRGMDgxOENFNDkwNzIzNkYwOTA3RgorOjEwMzMzRjAwNzIzOUUwNzVGMDBBQTQyNEFERjU4MkU0MzQ3NUY1ODM5MworOjEwMzM0RjAwRTBGRjdFMDA5MDc1MENFRUYwQTNFRkYwNzAwNjkwNzIyOAorOjEwMzM1RjAwMDI3NDNCRjA5MDc1MENFMEZFQTNFMEZGNjQ4MDRFNzBBQQorOjEwMzM2RjAwMDQ5MDcyMDJGMEVGNEU3MDAyODEzNUVGNjQ4MDRFNzA2MAorOjEwMzM3RjAwMDI4MTM1RUZGOEU0OTA3NTBERjBFODkwNzUwQ0YwOTA0MAorOjEwMzM4RjAwNzIzNEUwNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1ODM0OQorOjEwMzM5RjAwRTBGRjkwNzIwMkYwOTA3NTBERTAyRkYwOTA3NTBDRTA0OQorOjEwMzNBRjAwMzQwMEYwRTBGRUEzRTBGRkU0RkNGRDdCRDY3QUE1Rjk0NAorOjEwMzNCRjAwRjhEMzEyMzc5NTQwMEE5MDc1MEM3NEE1RjBBMzc0RDYwNAorOjEwMzNDRjAwRjA5MDc1MERFMDI0MkFGMDkwNzUwQ0UwMzQ1QUYwRTA3RgorOjEwMzNERjAwRkVBM0UwNzgwNUNFQTJFNzEzQ0UxM0Q4RjhGRjkwNzVDMQorOjEwMzNFRjAwMENFRUYwQTNFRkYwOTA3MjJDRUVGMEEzRUZGMEQzOTQ2RAorOjEwMzNGRjAwRDJFRTY0ODA5NDgyNDAwQTkwNzIyQzc0MDJGMEEzNzQwRgorOjEwMzQwRjAwRDJGMEMzOTA3MjJDRTA2NDgwOTQ4MDUwMDRFNEYwQTM1NworOjEwMzQxRjAwRjA5MDcyMkNFMEZFQTNFMDI0M0FGNTgyRUUzNDcyRjVDMAorOjEwMzQyRjAwODNFMDkwNzIwMkYwOTA3MjA0RTBGRjI0RkQ2MDJEMjQ3RgorOjEwMzQzRjAwRkU2MDI5MjQwMzI0RkI1MDA0NjAyMTgwNDA5MDcyMDIxNworOjEwMzQ0RjAwRTBGRTc0MjAyRkY1ODJFNDM0ODBGNTgzRUVGMDc0MjhDQgorOjEwMzQ1RjAwMkZGNTgyRTQzNDgwRjU4M0VFRjA4MDIxOTA3MjAyRTA0NAorOjEwMzQ2RjAwRkY5MDcyMDRFMEZFMjQzMEY1ODJFNDM0ODBGNTgzRUZBMAorOjEwMzQ3RjAwRjA3NDM4MkVGNTgyRTQzNDgwRjU4M0VGRjA5MDcyMzlEMgorOjBCMzQ4RjAwRTAwNEYwRTA2NDBBNjAwMjQxQzcyMjg0Cis6MTAzNDlBMDA5MDc2MThFMEZGQjQwNTIzOTA3MjM3RTA3MDFEOTA3NTlFCis6MTAzNEFBMDBBREUwOTA3MjJCRjBFMDI0ODBGMEUwOTA4MDIwRjA5MDY0Cis6MTAzNEJBMDA4MDMxRjA5MDgwMjhGMDkwODAzOUYwRUY2NDA2NjAwMjQ1Cis6MTAzNENBMDBDMTkxOTA3MjM2RTA2MDAyQzE5MTkwNzY0MEUwNzAzMTBECis6MTAzNERBMDA5MDcyMDM3NDAzRjA5MDcyMDNFMEZGNzVGMDBBQTQyNDVCCis6MTAzNEVBMDBBQUY1ODJFNDM0NzVGNTgzRTBGRTkwNzIyOUUwRkRFRUQ4Cis6MTAzNEZBMDA2RDYwMEVFRkMzOTQwQTUwMDg5MDcyMDNFMDA0RjA4MEU2Cis6MTAzNTBBMDBENTkwNzIzOTc0MDRGMDkwNzY0MEUwNzAwODkwNzIwMzk2Cis6MTAzNTFBMDBFMDkwNzIzOUYwOTA3MjM5RTBGRDI0RkU5MDcyMkFGMDQwCis6MTAzNTJBMDBFRDc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzRTBGRjY1Cis6MTAzNTNBMDA3RTAwOTA3NTBDRUVGMEEzRUZGMDcwMDY5MDcyMDI3NEE0Cis6MTAzNTRBMDA4MEYwOTA3NTBDRTBGRUEzRTBGRjY0ODA0RTcwMDQ5MDVBCis6MTAzNTVBMDA3MjAyRjBFRjRFNzAwMkMxMUJFRjY0ODA0RTcwMDJDMTFFCis6MTAzNTZBMDAxQkVGRjhFNDkwNzUwREYwRTg5MDc1MENGMEVENzVGMDJFCis6MTAzNTdBMDAwQUE0MjRBQ0Y1ODJFNDM0NzVGNTgzRTBGRjkwNzIwMjY0Cis6MTAzNThBMDBGMDkwNzUwREUwMkZGMDkwNzUwQ0UwMzQwMEYwRTBGRTNECis6MTAzNTlBMDBBM0UwRkZFNEZDRkQ3QkQ2N0FBNUY5RjhEMzEyMzc5NUIwCis6MTAzNUFBMDA0MDBBOTA3NTBDNzRBNUYwQTM3NEQ2RjA5MDc1MERFMERFCis6MTAzNUJBMDAyNDJBRjA5MDc1MENFMDM0NUFGMEUwRkVBM0UwNzgwNTc2Cis6MTAzNUNBMDBDRUEyRTcxM0NFMTNEOEY4RkY5MDc1MENFRUYwQTNFRjU2Cis6MTAzNURBMDBGMDkwNzIyQ0VFRjBBM0VGRjBEMzk0RDJFRTY0ODA5NEM0Cis6MTAzNUVBMDA4MjQwMEE5MDcyMkM3NDAyRjBBMzc0RDJGMEMzOTA3MkQzCis6MTAzNUZBMDAyQ0UwNjQ4MDk0ODA1MDA0RTRGMEEzRjA5MDcyMkNFMEY0Cis6MTAzNjBBMDBGRUEzRTAyNDNBRjU4MkVFMzQ3MkY1ODNFMDkwNzIwMjZBCis6MTAzNjFBMDBGMDkwNzIyQUUwRkYyNEZENjAyRDI0RkU2MDI5MjQwMzI1Cis6MTAzNjJBMDAyNEZCNTAwNDYwMjE4MDQwOTA3MjAyRTBGRTc0MjAyRjM3Cis6MTAzNjNBMDBGNTgyRTQzNDgwRjU4M0VFRjA3NDI4MkZGNTgyRTQzNEMxCis6MTAzNjRBMDA4MEY1ODNFRUYwODAyMTkwNzIwMkUwRkY5MDcyMkFFMDBBCis6MTAzNjVBMDBGRTI0MzBGNTgyRTQzNDgwRjU4M0VGRjA3NDM4MkVGNUQ5Cis6MTAzNjZBMDA4MkU0MzQ4MEY1ODNFRkYwOTA3NjQwRTA3MDA2OTA3MjQxCis6MTAzNjdBMDAzOTc0MEFGMDkwNzIzOUUwMDRGMEUwQzM5NDBBNTAwMkY3Cis6MDgzNjhBMDBBMTExRTQ5MDc2NDBGMDIyNEEKKzoxMDM2OTIwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyMzYKKzowOTM2QTIwMEUzMjI4OTgyOEE4M0U0OTMyMjY5Cis6MTAzNkFCMDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MEQ0Cis6MTAzNkJCMDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMjFFCis6MEQzNkNCMDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMjM4Cis6MTAzNkQ4MDBDMkQ1RUMzMEU3MDlCMkQ1RTRDMzlERkRFNDlDRkNFRTBECis6MTAzNkU4MDAzMEU3MTVCMkQ1RTRDMzlGRkZFNDlFRkUxMjM4MUZDMzJFCis6MTAzNkY4MDBFNDlERkRFNDlDRkM4MDAzMTIzODFGMzBENTA3QzNFNDI5Cis6MDYzNzA4MDA5RkZGRTQ5RUZFMjI3QgorOjEwMzcwRTAwQkIwMTEwRTU4MjI5RjU4MkU1ODMzQUY1ODNFMEY1RjBGOQorOjEwMzcxRTAwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkVENgorOjEwMzcyRTAwMEFFOTI1ODJGOEUyRjVGMDA4RTIyMkU1ODMyQUY1ODMxQworOjA4MzczRTAwRTk5M0Y1RjBBM0U5OTMyMkUxCis6MTAzNzQ2MDBFODhGRjBBNENDOEJGMEE0MkNGQ0U5OEVGMEE0MkNGQzIyCis6MTAzNzU2MDA4QUYwRURBNDJDRkNFQThFRjBBNENEQThGMDhCRjBBNEEwCis6MTAzNzY2MDAyRENDMzgyNUYwRkRFOThGRjBBNDJDQ0QzNUYwRkNFQkZGCis6MTAzNzc2MDA4RUYwQTRGRUE5RjBFQjhGRjBBNENGQzVGMDJFQ0QzOUM0Cis6MEYzNzg2MDBGRUU0M0NGQ0VBQTQyRENFMzVGMEZERTQzQ0ZDMjIzMQorOjEwMzc5NTAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRUM2NDgwQzhBQgorOjA2MzdBNTAwNjQ4MDk4NDVGMDIyNEIKKzoxMDM3QUIwMEVCOUZGNUYwRUE5RTQyRjBFOTlENDJGMEU4OUM0NUYwNzQKKzowMTM3QkIwMDIyRUIKKzowQzM3QkMwMEVDRjBBM0VERjBBM0VFRjBBM0VGRjAyMjgwCis6MTAzN0M4MDBBODgyODU4M0YwRDA4M0QwODIxMjM3REYxMjM3REYxMkM4Cis6MTAzN0Q4MDAzN0RGMTIzN0RGRTQ3M0U0OTNBM0M1ODNDNUYwQzU4M0VECis6MTAzN0U4MDBDOEM1ODJDOEYwQTNDNTgzQzVGMEM1ODNDOEM1ODJDODRCCis6MDEzN0Y4MDAyMkFFCis6MTAzN0Y5MDBEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzVGCis6MTAzODA5MDA5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MDcyCis6MDYzODE5MDBFRkEzQTNBMzgwREY3MgorOjEwMzgxRjAwQkMwMDBCQkUwMDI5RUY4REYwODRGRkFERjAyMkU0Q0M4RAorOjEwMzgyRjAwRjg3NUYwMDhFRjJGRkZFRTMzRkVFQzMzRkNFRTlERUM1NgorOjEwMzgzRjAwOTg0MDA1RkNFRTlERkUwRkQ1RjBFOUU0Q0VGRDIyRUQ5QworOjEwMzg0RjAwRjhGNUYwRUU4NDIwRDIxQ0ZFQURGMDc1RjAwOEVGMkZFNgorOjEwMzg1RjAwRkZFRDMzRkQ0MDA3OTg1MDA2RDVGMEYyMjJDMzk4RkRENworOjA1Mzg2RjAwMEZENUYwRUEyMjc0Cis6MTAzODc0MDBFNDkwNzYyOUYwOTA3NjI5RTBGRjc1RjAwRkE0MjQ0MkI1Cis6MTAzODg0MDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REE3Cis6MTAzODk0MDA2MDBFRUZDMzk0MDY1MDA4OTA3NjI5RTAwNEYwODBENUJBCis6MTAzOEE0MDBFRkI0MDYwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwRjA2Cis6MTAzOEI0MDBBNDI0NDFGNTgyRTQzNDc1RjU4M0UwOTA3NjJBRjAyNDVCCis6MTAzOEM0MDBCRjcwMDI0MTQxMjRFMDcwMDI0MTEyMjQyMTYwMDI0MTkwCis6MTAzOEQ0MDAzQTkwN0ZFOUUwMjRGRTYwN0QxNDcwMDIyMUIyMjQwMjU0Cis6MTAzOEU0MDA2MDAyNDEwQTEyMTc1MTkwNzY0MkUwRkNBM0UwRkRBMzY2Cis6MTAzOEY0MDBFMEZFQTNFMEZGOTA3NjI5RTA3NUYwMEZBNDI0NDNGNUUxCis6MTAzOTA0MDA4MkU0MzQ3NUY1ODMxMjM3QkM5MDc2MTlFMEZGQjQwMTc0Cis6MTAzOTE0MDAxMjkwNzY3Qzc0NjdGMDkwNzY3RDc0MDZGMDkwNzY3RUQzCis6MTAzOTI0MDA3NDBCRjBFRkI0MDIwRkU0OTA3NjdDRjA5MDc2N0RGMEE3Cis6MTAzOTM0MDA5MDc2N0U3NDBDRjBFRkI0MDMwRkU0OTA3NjdDRjA5MEY0Cis6MTAzOTQ0MDA3NjdERjA5MDc2N0U3NDE4RjA5MDc2MUE3NDAxRjAxMkY5Cis6MTAzOTU0MDAzRThGMTIxODAwMjI5MDdFQzJFMEZGRTRGQ0ZERkVGQkM1Cis6MTAzOTY0MDBGQTc5MDFGODEyMzc0NkM4RUNDOEM5RURDOUNBRUVDQURCCis6MTAzOTc0MDBDQkVGQ0I5MDdFQzFFMEZFRTRGQ0ZEMkJGQkVBM0VGQUVDCis6MTAzOTg0MDBFRDM5RjlFQzM4Rjg5MDdFQzBFMEZGRTRGRUVCMkZGRjUwCis6MTAzOTk0MDBFRTNBRkVFRDM5RkRFQzM4RkM5MDc2MjlFMDc1RjAwRjM3Cis6MTAzOUE0MDBBNDI0NDdGNTgyRTQzNDc1RjU4MzEyMzdCQzIyOTA3RTUzCis6MTAzOUI0MDBDMkUwRkZFNEZDRkRGRUZCRkE3OTAxRjgxMjM3NDZDOEM5Cis6MTAzOUM0MDBFQ0M4QzlFREM5Q0FFRUNBQ0JFRkNCOTA3RUMxRTBGRTBDCis6MTAzOUQ0MDBFNEZDRkQyQkZCRUEzRUZBRUQzOUY5RUMzOEY4OTA3RTc1Cis6MTAzOUU0MDBDMEUwRkZFNEZFRUIyRkZGRUUzQUZFRUQzOUZERUMzOENDCis6MTAzOUY0MDBGQzkwNzYyOUUwNzVGMDBGQTQyNDRCRjU4MkU0MzQ3NTJECis6MTAzQTA0MDBGNTgzMTIzN0JDMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RjBBCis6MTAzQTE0MDBFOUUwMTQ3MDE5OTA3RUMwRTBGRjkwNzYyOUUwNzVGMDFCCis6MTAzQTI0MDAwRkE0MjQ0RkY1ODJFNDM0NzVGNTgzRUZGMDIyOTA3RkUwCis6MEUzQTM0MDBCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFGMDIyOUYKKzoxMDNBNDIwMEU0OTA3NjM1RjA5MDc2MzVFMEZGQzM5NDAzNDAwMjQxNkUKKzoxMDNBNTIwMEZGRUY3NUYwMEFBNDI0QUFGNTgyRTQzNDc1RjU4M0VGMkEKKzoxMDNBNjIwMEYwRUY3NUYwMEFBNDI0QUJGNTgyRTQzNDc1RjU4M0U0MzMKKzoxMDNBNzIwMEYwRUY3NUYwMEFBNDI0QUNGNTgyRTQzNDc1RjU4Mzc0OTIKKzoxMDNBODIwMEYwRjBFRjc1RjAwQUE0MjRBREY1ODJFNDM0NzVGNTgzMDUKKzoxMDNBOTIwMDc0RkZGMEVGNzVGMDBBQTQyNEFFRjU4MkU0MzQ3NUY1RjQKKzoxMDNBQTIwMDgzRTRGMEVGNzVGMDBBQTQyNEFGRjU4MkU0MzQ3NUY1RUYKKzoxMDNBQjIwMDgzNzQ4MEYwRUY3NUYwMEFBNDI0QjBGNTgyRTQzNDc1QzMKKzoxMDNBQzIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjFGNTgyRTQzNDc1Q0QKKzoxMDNBRDIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjJGNTgyRTQzNDc1QkMKKzoxMDNBRTIwMEY1ODNFNEYwRUY3NUYwMEFBNDI0QjNGNTgyRTQzNDc1QUIKKzoxMDNBRjIwMEY1ODM3NDAxRjA5MDc2MzVFMDA0RjA0MTQ3OTA3NjNDMEUKKzoxMDNCMDIwMDc0MEFGMEU0QTNGMDkwNzYzNTc0MDNGMDkwNzYzQ0UwMEEKKzoxMDNCMTIwMEZGOTA3NjM1RTBGRUMzOUY0MDAyNjFEMjkwNzYzREUwOTEKKzoxMDNCMjIwMEZGMDRGMEVFNzVGMDBBQTQyNEFBRjU4MkU0MzQ3NUY1RDgKKzoxMDNCMzIwMDgzRUZGMEVFNzVGMDBBQTQyNEFCRjU4MkU0MzQ3NUY1NTgKKzoxMDNCNDIwMDgzRTRGMEVFNzVGMDBBQTQyNEFDRjU4MkU0MzQ3NUY1NTIKKzoxMDNCNTIwMDgzNzQ1RUYwRUU3NUYwMEFBNDI0QURGNTgyRTQzNDc1NDgKKzoxMDNCNjIwMEY1ODM3NEJBRjBFRTc1RjAwQUE0MjRBRUY1ODJFNDM0NUIKKzoxMDNCNzIwMDc1RjU4Mzc0MDVGMEVFNzVGMDBBQTQyNEFGRjU4MkU0QkUKKzoxMDNCODIwMDM0NzVGNTgzNzQ4MEYwRUU3NUYwMEFBNDI0QjBGNTgyRTIKKzoxMDNCOTIwMEU0MzQ3NUY1ODNFNEYwRUU3NUYwMEFBNDI0QjFGNTgyRkQKKzoxMDNCQTIwMEU0MzQ3NUY1ODNFNEYwRUU3NUYwMEFBNDI0QjJGNTgyRUMKKzoxMDNCQjIwMEU0MzQ3NUY1ODM3NDE1RjBFRTc1RjAwQUE0MjRCM0Y1QjgKKzoxMDNCQzIwMDgyRTQzNDc1RjU4M0U0RjA5MDc2MzVFMDA0RjA2MTBFMUEKKzowMTNCRDIwMDIyRDAKKzoxMDNCRDMwMEU0OTA3NjM2RjBFMEZCNzVGMDBGQTQyNDQxRjU4MkU0MUYKKzoxMDNCRTMwMDM0NzVGNTgzNzQ0MEYwRUI3NUYwMEZBNDI0NDJGNTgyMkQKKzoxMDNCRjMwMEU0MzQ3NUY1ODM3NDBBRjBFQjc1RjAwRkE0MjQ0M0Y1RjAKKzoxMDNDMDMwMDgyRTQzNDc1RjU4MzEyMzdDODAwMDBBQzQ0RUI3NUYwRDkKKzoxMDNDMTMwMDBGQTQyNDQ3RjU4MkU0MzQ3NUY1ODMxMjM3QzgwMDAwRjYKKzoxMDNDMjMwMEFDNDRFQjc1RjAwRkE0MjQ0QkY1ODJFNDM0NzVGNTgzQjMKKzoxMDNDMzMwMDEyMzdDODAwMDE3NzAwOTA3NjM2RTAwNEYwRTBGQjc1OTgKKzoxMDNDNDMwMEYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDBGMEVCNUUKKzoxMDNDNTMwMDc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNzQ4Q0YwNzcKKzoxMDNDNjMwMEVCNzVGMDBGQTQyNDQzRjU4MkU0MzQ3NUY1ODMxMjM3MjIKKzoxMDNDNzMwMEM4MDAwMEFDNDRFQjc1RjAwRkE0MjQ0N0Y1ODJFNDM0OEMKKzoxMDNDODMwMDc1RjU4MzEyMzdDODAwMDBBQzQ0RUI3NUYwMEZBNDI0MUMKKzoxMDNDOTMwMDRCRjU4MkU0MzQ3NUY1ODMxMjM3QzgwMDAxNzcwMDkwNDEKKzoxMDNDQTMwMDc2MzZFMDA0RjBFMEZGNzVGMDBGQTQyNDQxRjU4MkU0REEKKzoxMDNDQjMwMDM0NzVGNTgzNzQ0MEYwRUY3NUYwMEZBNDI0NDJGNTgyNTgKKzoxMDNDQzMwMEU0MzQ3NUY1ODM3NDhGRjA5MDc2MzZFMDA0RjBFMEZGMEEKKzoxMDNDRDMwMDc1RjAwRkE0MjQ0MUY1ODJFNDM0NzVGNTgzNzQ0MUYwNDMKKzoxMDNDRTMwMEVGNzVGMDBGQTQyNDQyRjU4MkU0MzQ3NUY1ODM3NDg0RjAKKzoxMDNDRjMwMEYwOTA3NjM2RTAwNEYwRTBGRjc1RjAwRkE0MjQ0MUY1NzAKKzoxMDNEMDMwMDgyRTQzNDc1RjU4Mzc0NjFGMEVGNzVGMDBGQTQyNDQyRjcKKzoxMDNEMTMwMEY1ODJFNDM0NzVGNTgzNzQ4MUYwOTA3NjM2RTAwNEYwMkYKKzoxMDNEMjMwMEUwRkY3NUYwMEZBNDI0NDFGNTgyRTQzNDc1RjU4Mzc0NDQKKzoxMDNEMzMwMDYxRjBFRjc1RjAwRkE0MjQ0MkY1ODJFNDM0NzVGNTgzNDYKKzowNDNENDMwMDc0MDFGMDIyRjUKKzoxMDNENDcwMEMwRTBDMEYwQzA4M0MwODJDMEQwRThDMEUwRTlDMEUwRjYKKzoxMDNENTcwMEVBQzBFMEVCQzBFMEVDQzBFMEVEQzBFMEVFQzBFMEVGQjEKKzoxMDNENjcwMEMwRTA5MDdGQTJFMDkwNzY3RkYwOTA3Rjc0RTA5MDc2M0QKKzoxMDNENzcwMDg3RjA5MDdGNzVFMDkwNzY4OEYwOTA3Rjk4RTA0NDAyMTYKKzoxMDNEODcwMEYwOTA3Njk2RTBGRjIwRTEwQzQ0MDJGMDkwODAwM0YwN0IKKzoxMDNEOTcwMEQyMzIxMjRBQzQ5MDc2N0ZFMDIwRTI1MDkwNzY4N0UwRDQKKzoxMDNEQTcwMEZFQTNFMDdDMDAyNDAwRjUzNEVDM0VGNTMzOTA3Njk4RDIKKzoxMDNEQjcwMEUwRkRBRTMzQUYzNDEyMzZEODkwNzY4N0VGRjBEMjJGQ0UKKzoxMDNEQzcwMDMwMzEyOTIwM0YyNkMyMzE5MDdGOTRFMDU0Q0ZGMDkwQzQKKzoxMDNERDcwMDdGOUFFMDMwRTQwNEQyMkRDMjJDOTA3RjlBRTAyMEU1NTAKKzoxMDNERTcwMDA0QzIyREQyMkM5MDdGOTRFMDQ0MzBGMDEyNEE1MDEyMzYKKzoxMDNERjcwMDFCMDQzMDJGMTIxMjQyMTZDMjJGNzVFODAxMTIxNjhBQzEKKzoxMDNFMDcwMDc1RTgwREQyMkI4MDA1NzVFODAxQzIyQjIwMkIzNDkwNjUKKzoxMDNFMTcwMDc2MTlFMEZGQjQwMTBFOTA3NjdDNzQ2N0YwQTM3NDA2MDAKKzoxMDNFMjcwMEYwQTM3NDBCRjBFRkI0MDIwQjkwNzY3Q0U0RjBBM0YwRjAKKzoxMDNFMzcwMEEzNzQwQ0YwRUZCNDAzMEI5MDc2N0NFNEYwQTNGMEEzMkIKKzoxMDNFNDcwMDc0MThGMDc1Q0FEMzc1Q0JGRUQyQ0EzMDM0MDRDMjM0QTUKKzoxMDNFNTcwMDgwMDJEMjM0NTM5MUVGOTA3RkFCNzQwMkYwRjA5MDdGRTEKKzoxMDNFNjcwMDk4RTA1NEZERjBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRDgKKzoxMDNFNzcwMEZDRDBFMEZCRDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwMjkKKzowODNFODcwMDgyRDA4M0QwRjBEMEUwMzJCQworOjEwM0U4RjAwOTA3NjkyRTAxNDYwMUQxNDcwMDJFMTQ0MjQwMjYwMDJFNworOjEwM0U5RjAwRTFENDkwNzY5NDc0MDFGMDkwODAwMEYwRTQ5MDc2OEVFNworOjEwM0VBRjAwRjBEMjMxMjI5MDc2MTlFMEZGQjQwMTFCRTQ5MDdGRjIzQgorOjEwM0VCRjAwRjA5MDdGRjM3NDMwRjA5MDdGRkY3NEZDRjA5MDc2OTc2MgorOjEwM0VDRjAwRTA1NEZERjA1NEZCRjBFRkI0MDIxQkU0OTA3RkYyRjBFRQorOjEwM0VERjAwOTA3RkYzNzQzNEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTA0RQorOjEwM0VFRjAwNDQwMkYwNTRGQkYwRUZCNDAzMThFNDkwN0ZGMkYwOTAyQgorOjEwM0VGRjAwN0ZGMzc0NjRGMDkwN0ZGRjc0RkNGMDkwNzY5N0UwNDQ0QQorOjEwM0YwRjAwMDRGMDkwNzY5NEUwNDQwMUYwOTA4MDAwRjAzMDNGMDk4NworOjEwM0YxRjAwOTA3Njk3RTA1NEZFRjA4MDA3OTA3Njk3RTA0NDAxRjA5QQorOjEwM0YyRjAwOTA3Njk3RTA5MDgwMDJGMDkwNzY5ODc0MDRGMDkwNzZGNworOjEwM0YzRjAwOEU3NDAxRjAyMjkwNzYxOUUwRkZCNDAxMUJFNDkwN0Y5QworOjEwM0Y0RjAwRjJGMDkwN0ZGMzc0NDRGMDkwN0ZGRjc0RkNGMDkwNzY2MgorOjEwM0Y1RjAwOTdFMDU0RkRGMDU0RkJGMEVGQjQwMjFCRTQ5MDdGRjJCNgorOjEwM0Y2RjAwRjA5MDdGRjM3NDRDRjA5MDdGRkY3NEZDRjA5MDc2OTc5NQorOjEwM0Y3RjAwRTA0NDAyRjA1NEZCRjBFRkI0MDMxOEU0OTA3RkYyRjA0QQorOjEwM0Y4RjAwOTA3RkYzNzQ5NEYwOTA3RkZGNzRGQ0YwOTA3Njk3RTAzRAorOjEwM0Y5RjAwNDQwNEYwOTA3Njk0RTA1NEZFRjA5MDgwMDBGMDMwM0ZBRgorOjEwM0ZBRjAwMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTdFMDQ0MDFGMQorOjEwM0ZCRjAwRjA5MDc2OTdFMDkwODAwMkYwOTA3Njk4NzQwNkYwOTBFQgorOjA2M0ZDRjAwNzY4RTc0MDJGMDIyNjAKKzoxMDNGRDUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwMkYwMTUKKzoxMDNGRTUwMDkwN0ZDN0UwRjUxMTc1MEYwMDc1MEQwMEQyMzNEMDgyQjMKKzowNTNGRjUwMEQwODNEMEUwMzI5MgorOjA2M0ZGQTAwMTI0QUM0QzIzMTIyOEMKKzoxMDQwMDAwMEU1MTFEMzk0MDA1MDAyMjEwNjkwNzY4OUUwQzM5NDA4MEMKKzoxMDQwMTAwMDQwMDIyMTA2NzQ0MDI1MEZGNTgyRTQzNDdFRjU4M0UwRUEKKzoxMDQwMjAwMEY1MTdFNTBENjAwRTkwODAwNUU1MTdGMDkwNzY4OUUwQjQKKzoxMDQwMzAwMDA0RjAwMURBRTUxNzEyMzdGOTQwQzEwMjQwNjcwNTQwODQKKzoxMDQwNDAwMDdBMDY0MDk4MDc0MEMxMEM0MEMxMEQ0MEM3MEY0MENCRDUKKzoxMDQwNTAwMEY2NDBDQkY4NDBDQkZBNDBDQkZCNDBDQkZDNDBDQkZFNEMKKzoxMDQwNjAwMDQwQ0JGRjAwMDA0MERBOTA3RTQxRTA5MDgwMDVGMDkwNjgKKzoxMDQwNzAwMDc2ODlFMDA0RjA3NTExMDE4MDYwOTA3RTQxRTA5MDgwQzcKKzoxMDQwODAwMDA1RjA5MDdFNDJFMDkwODAwNUYwOTA3Njg5RTAwNEYwQTMKKzoxMDQwOTAwMEUwMDRGMDc1MTEwMTgwNDI5MDdFNDFFMDkwODAwNUYwQ0YKKzoxMDQwQTAwMDkwN0U0MkUwOTA4MDA1RjA5MDdFNDNFMDkwODAwNUYwQTUKKzoxMDQwQjAwMDkwNzY4OUUwMDRGMEUwMDRGMEUwMDRGMDc1MTEwMTgwRUUKKzoxMDQwQzAwMDE5RDIzQkQyM0M4MDEzRDIzQjgwMEY5MDgwMDVFNTE3N0MKKzoxMDQwRDAwMEYwOTA3Njg5RTAwNEYwNzUxMTAxMjAzQjA0MDUwRDgwMTUKKzoxMDQwRTAwMDFGMzAzQzFDOTA3RTQxRTA5MDgwMDVGMDkwN0U0MkUwQzUKKzoxMDQwRjAwMDkwODAwNUYwOTA3Njg5RTAwNEYwRTAwNEYwNzUxMTAxRkQKKzoxMDQxMDAwMDA1MEYxNTExMDEwMEU1MTE3MDEwQzIzM0Y1MERGNTBGMDMKKzowQjQxMTAwMDkwN0ZDNzc0MDRGMEMyM0JDMjNDMjI0OQorOjEwNDExQjAwOTA3NjhERTA2NDAxNzAyNzMwMjcwOEMyMjcxMjA4MDBDMworOjEwNDEyQjAwMTIxNzRBMzAyODA4QzIyODEyMzg3NDEyMTc0QTMwMkEzQworOjEwNDEzQjAwMEVFNDkwNzY4REYwQzIyQTkwN0ZCNEUwNDQwMkYwOTBBQQorOjEwNDE0QjAwNzYzRkUwQjQwMTA1RTRGMDEyMzI2RjkwNzY0MUUwQjRCMworOjEwNDE1QjAwMDEwNUU0RjAxMjM0OUE5MDc2NDBFMEI0MDEwMzEyMzQ3NgorOjEwNDE2QjAwOUE5MDdGOUJFMDIwRTQwMkMyM0Y5MDdGOUJFMDMwRTQ3QgorOjEwNDE3QjAwMDJEMjNGOTA3RjlCRTAyMEU1MDJDMjNFOTA3RjlCRTAwNgorOjEwNDE4QjAwMzBFNTAyRDIzRUEyNDEzMDNGMDFCMzUwMUZBMjNGOTIxNQorOjEwNDE5QjAwNDEzMDNGMDk5MDc2OTdFMDU0RkVGMDgwMDc5MDc2OTc3OAorOjEwNDFBQjAwRTA0NDAxRjA5MDc2OTdFMDkwODAwMkYwMzAzRjM0OTAzRAorOjEwNDFCQjAwNzYxOUUwRkZCNDAxMEU5MDc2N0M3NDY3RjBBMzc0MDY1OQorOjEwNDFDQjAwRjBBMzc0MEJGMEVGQjQwMjBCRTQ5MDc2N0NGMEEzRjA0OQorOjEwNDFEQjAwQTM3NDBDRjBFRkI0MDMwQkU0OTA3NjdDRjBBM0YwQTM4NAorOjEwNDFFQjAwNzQxOEYwQTI0MDMwM0UwMUIzNTAxRkEyM0U5MjQwMzBGMworOjEwNDFGQjAwM0UwOTkwNzY5NUUwNDQwNEYwODAwNzkwNzY5NUUwNTQ2NAorOjBCNDIwQjAwRkJGMDkwNzY5NUUwOTA4MDAxRjAyMjFGCis6MTA0MjE2MDA5MDc2MTlFMDY0MDE3MDM1OTA3Njg3RTBGRkQzOTQyRDhGCis6MTA0MjI2MDA0MDJCOTA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzFBCis6MTA0MjM2MDA5NDBGNDAxOUU0RjBFRkQzOTQzMTQwMDg5MDc2MTk3NDQ2Cis6MTA0MjQ2MDAwM0YwODAwNjkwNzYxOTc0MDJGMDEyM0U4RjkwNzYxOTZDCis6MTA0MjU2MDBFMEI0MDIyQzkwNzY4N0UwRkZDMzk0MkY1MDIyRUZEMzcwCis6MTA0MjY2MDA5NDJBNDAxQzkwNzY4Njc0MDFGMDkwNzY4NUUwMDRGMERFCis6MTA0Mjc2MDBFMEQzOTQwRjQwMEFFNEYwOTA3NjE5MDRGMDEyM0U4RkQyCis6MTA0Mjg2MDA5MDc2MTlFMEI0MDIyNjkwNzY4N0UwRDM5NDMxNDAxREVCCis6MTA0Mjk2MDA5MDc2ODY3NDAxRjA5MDc2ODVFMDA0RjBFMEQzOTQwRjcyCis6MTA0MkE2MDA0MDBCRTRGMDkwNzYxOTc0MDNGMDEyM0U4RjkwNzYxOTY1Cis6MTA0MkI2MDBFMDY0MDM3MDNGOTA3Njg3RTBGRkMzOTQ1RjUwMzU5MENCCis6MTA0MkM2MDA3Njg2NzQwMUYwOTA3Njg1RTAwNEYwRTBEMzk0MEY0MDkyCis6MTA0MkQ2MDAyM0U0RjBFRkMzOTQyRjUwMENFRkQzOTQyQTQwMDY5MEJBCis6MTA0MkU2MDA3NjE5NzQwMUYwRUZEMzk0MkY0MDA2OTA3NjE5NzQwMjc0Cis6MTA0MkY2MDBGMDEyM0U4RjkwNzY4NkUwNzAwNTkwNzY4NUYwMjJFNDg3Cis6MDU0MzA2MDA5MDc2ODZGMDIyMTQKKzoxMDQzMEIwMEU0OTA3Njk2RjA5MDgwMDNGMDkwN0ZFMDc0OTBGMDkwQkMKKzoxMDQzMUIwMDdGRTE3NDA0RjBFNDkwN0ZEREYwOTA3RkExRjA1MzhFODkKKzoxMDQzMkIwMEY4NzU4ODA1NzVCODIwNzVGODAxNDM4RTMwRjVDODc1OUEKKzoxMDQzM0IwMENBN0Y3NUNCRjg0M0E4MjAxMjA3NEFDMjJDQzIyREMyRTQKKzoxMDQzNEIwMDJCQzIyRjkwN0ZGQzc0RERGMDkwN0ZGRjc0RkZGMDkwRjkKKzoxMDQzNUIwMDdGOTdFMDQ0MDFGMDkwNzYxOTc0MDFGMEU0OTA3Njg1MzQKKzoxMDQzNkIwMEYwQTNGMDkwNzY4MUYwOTA3NjgwRjAxMjQ5NTgxMjBGRkUKKzoxMDQzN0IwMEM2MTI0QThEOTA3Rjk3RTA0NDA4RjBFMDU0QjlGMEQyMTIKKzoxMDQzOEIwMDMwMjAzMDE4MTI0N0I0MTIzMDAwMTI0MDAwMTI0MjE2N0YKKzoxMDQzOUIwMDEyNEE1MDEyMUIwNDEyMTY2MTEyNDIxNkMyMkZDMjMxNUUKKzoxMDQzQUIwMEMyMzJDMjM0QzIzM0MyMjlDMjI3QzIyOEU0RjUxMTkwRUIKKzoxMDQzQkIwMDc2ODlGMDkwNzYzRkYwOTA3NjQxRjA5MDc2NDBGMDkwRDEKKzoxMDQzQ0IwMDc2OEFGMEEzRjBBMzA0RjBFNEEzRjA5MDc2OTlGMDIyQTAKKzoxMDQzREIwMDEyNERBMzQwMDI4MUEwOTA3RkVCRTAyNEZFNjAxRTE0REYKKzoxMDQzRUIwMDYwNDYxNDYwNkUxNDcwMDI4MTkxMjQwNDYwMDI4MTk5RkUKKzoxMDQzRkIwMDc0MDU5MDdGRDRGMDc0MDA5MDdGRDVGMDIyOTA3RkVBMDMKKzoxMDQ0MEIwMEUwRkYxMjQ5RkY4QjIwOEEyMTg5MjJFQTQ5NjAxMUNFRjUKKzoxMDQ0MUIwMEVBQ0VFRTkwN0ZENEYwQ0ZFOUNGRUY5MDdGRDVGMDIyQUMKKzoxMDQ0MkIwMDkwN0ZCNEUwNDQwMUYwMjI5MDdGRUFFMEZGMTI0OEIwQTUKKzoxMDQ0M0IwMDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFRUU5MDdGNDkKKzoxMDQ0NEIwMEQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGQjRFMDQ0NEEKKzoxMDQ0NUIwMDAxRjAyMjkwN0ZFQUUwRkY5MDdFQzBFMEZEQTNFMEZCM0QKKzoxMDQ0NkIwMDEyMTc5NDhCMjA4QTIxODkyMkVBNDk2MDExQ0VFQUNFNTkKKzoxMDQ0N0IwMEVFOTA3RkQ0RjBDRkU5Q0ZFRjkwN0ZENUYwMjI5MDdGRjUKKzoxMDQ0OEIwMEI0RTA0NDAxRjAyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGMkQKKzowNTQ0OUIwMEI0RTA0NDAxRjA1MworOjAxNDRBMDAwMjJGOQorOjEwNDRBMTAwQzJBRkQyMjQ5MDdGOTM3NDMwRjA5MDdGOUM3NEJCRjBBNAorOjEwNDRCMTAwOTA3Rjk2RTA0NDMwRjBFMDU0MzBGMDkwN0Y5NDc0MzA3NworOjEwNDRDMTAwRjA5MDdGOUQ3NENGRjA5MDdGOTc3NEEwRjA5MDdGOTVDRQorOjEwNDREMTAwNzRDMEYwOTA3RjlFNzQwM0YwOTA3Rjk5RTAzMEUyMDkwMAorOjEwNDRFMTAwOTAwNTE5NzRBMEYwRTRBM0YwQzIyNUMyMjJDMjIzQzIzMAorOjEwNDRGMTAwMjYxMjRBQzQxMjJEQTkxMjNCRDMxMjQ1NTkxMjNBNDIyRgorOjEwNDUwMTAwOTA3NjY4NzQwMUYwNzAwRjEyNEJCQjEyMDdGRTEyNERDQQorOjEwNDUxMTAwQTExMjFCNDAxMjE0OTYxMjQzMEI5MDdGQUZFMDQ0MDE4RAorOjEwNDUyMTAwRjA5MDdGQUVFMDQ0MUZGMDkwN0ZBQzc0RkZGMDkwN0Y3RAorOjEwNDUzMTAwQURGMDkwN0ZERUYwOTA3RkRGRjA5MDdGQUJGMDkwN0Y2OQorOjEwNDU0MTAwQTlGMDkwN0ZBQUYwNTM5MUVGNDNEODIwRDJFODQzRDg0NQorOjA4NDU1MTAwMjA1M0E4QTA0M0E4ODAyMjFBCis6MTA0NTU5MDBFNDkwNzYzNkYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEE2Cis6MTA0NTY5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNEEwCis6MTA0NTc5MDAzNDc1RjU4Mzc0MDFGMDkwNzYzNkUwMDRGMEUwRkY3NTQ4Cis6MTA0NTg5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTgxCis6MTA0NTk5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDAyRjA5MEIyCis6MTA0NUE5MDA3NjM2RTAwNEYwRTBGRjc1RjAwM0E0MjQzMkY1ODJFNEU2Cis6MTA0NUI5MDAzNDc1RjU4M0U0RjBFRjc1RjAwM0E0MjQzM0Y1ODJFNDUwCis6MTA0NUM5MDAzNDc1RjU4Mzc0MDNGMDkwNzYzNkUwMDRGMEUwRkY3NUY2Cis6MTA0NUQ5MDBGMDAzQTQyNDMyRjU4MkU0MzQ3NUY1ODNFNEYwRUY3NTMxCis6MTA0NUU5MDBGMDAzQTQyNDMzRjU4MkU0MzQ3NUY1ODM3NDA0RjAyMkNFCis6MEM0NUY5MDA3ODdGRTRGNkQ4RkQ3NTgxMzgwMjQ2NDA1QQorOjEwNDYwNTAwMDI0NzVBRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIyQQorOjEwNDYxNTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNCNgorOjEwNDYyNTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REY4NQorOjEwNDYzNTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEM4RkU0N0U3QQorOjEwNDY0NTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTM3QQorOjEwNDY1NTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTM0MQorOjEwNDY2NTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0E2QworOjEwNDY3NTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkUyNAorOjEwNDY4NTAwOTA3RkVDRTA5MDc2ODNGMEUwMTQ2MDFEMTQ2MDJBMTRBRQorOjEwNDY5NTAwNjAzNzE0NjA0NDI0MDQ3MDUwOTA3NjkxRTA5MDdGMDA1OAorOjEwNDZBNTAwRjA5MDdGQjU3NDAxRjA4MDQ3OTA3NjkyRTA5MDdGMDA5RQorOjEwNDZCNTAwRjA5MDdGQjU3NDAxRjA4MDM3OTA3NjkwRTA5MDdGMDBBMAorOjEwNDZDNTAwRjA5MDdGQjU3NDAxRjA4MDI3OTA3Njg0RTA5MDdGMDBBQworOjEwNDZENTAwRjA5MDdGQjU3NDAxRjA4MDE3OTA3NjkzRTA5MDdGMDA5RAorOjEwNDZFNTAwRjA5MDdGQjU3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA0RAorOjAyNDZGNTAwRDMyMkNFCis6MTA0NkY3MDBDMEUwQzBGMEMwODNDMDgyQzBEMEU4QzBFMEU5QzBFMDNECis6MTA0NzA3MDBFQUMwRTBFQkMwRTBFQ0MwRTBFREMwRTBFRUMwRTBFRkY3Cis6MTA0NzE3MDBDMEUwQzJDQUMyQ0Y5MDdGOThFMDQ0MDFGMDMwMkUwM0I4Cis6MTA0NzI3MDAxMjE0QTY5MDdGOThFMDU0RkVGMDUzQThGQTEyMTY2MTZGCis6MTA0NzM3MDBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMDQxCis6MTA0NzQ3MDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODJEMDgzRDBGMDMyCis6MDM0NzU3MDBEMEUwMzI3RAorOjEwNDc1QTAwRTQ5MDc2NjZGMDEyNDRBMTIwMjYxMzkwNzY2NkUwQzNCMAorOjEwNDc2QTAwOTQwMjUwMEFFMDA0RjBEMjQyMTI0QUY2ODBFQTMwMjY1NQorOjEwNDc3QTAwMDUxMjI4MDFDMjI2MzAyNTJCOTA3Njk2RTA1NEZDRjBDQgorOjEwNDc4QTAwOTA4MDAzRjAxMjE0OTY5MDc2OTZFMDQ0MDNGMDkwODA5RAorOjEwNDc5QTAwMDNGMEU0OTA3NjY3RjA5MDc2NjdFMDA0RjBFMEI0NEJCQgorOjBBNDdBQTAwRjYxMjNGRkExMjQxMUI4MEM1MjJFRgorOjEwNDdCNDAwRTQ5MDc2OUJGMDkwNzY5QkUwRkYwNEYwRUY2MDA4RTBENQorOjEwNDdDNDAwMjQwOEY4RTRGNjgwRUU5MDc2OTZFMDU0RkJGMDU0Rjc3MworOjEwNDdENDAwRjA5MDgwMDNGMEU0RjUxOEQyMzVGNTBFRjUxMEQyMzZEQQorOjEwNDdFNDAwNzUxMjExNzUxMzIyQzIzN0MyMzlDMjM4RjUxNkY1MTQ4MQorOjBCNDdGNDAwRjUxQUY1MERDMjNCQzIzQ0MyM0QyMjhECis6MTA0ODAwMDA5MDdGRUNFMDkwNzY4M0YwRTAxNDYwMTcxNDYwMjExNDQwCis6MTA0ODEwMDA2MDJCMTQ2MDMyMjQwNDcwMzg5MDdGRUFFMDkwNzY5MTI3Cis6MTA0ODIwMDBGMDgwMzU5MDdGRUFFMDkwNzY5MkYwMTIzRThGODAyOEZCCis6MTA0ODMwMDA5MDdGRUFFMDkwNzY5MEYwMTIxODAwODAxQjkwN0ZFQTVCCis6MTA0ODQwMDBFMDkwNzY4NEYwODAxMTkwN0ZFQUUwOTA3NjkzRjA4MDlCCis6MEE0ODUwMDAwNzkwN0ZCNEUwNDQwMUYwRDMyMjhBCis6MTA0ODVBMDBFNDkwNzYyNkYwOTA3NjI2RTBGRjc1RjAwM0E0MjQzNERGCis6MTA0ODZBMDBGNTgyRTQzNDc1RjU4M0UwRkU5MDdGRUNFMEZERUU2REIxCis6MTA0ODdBMDA2MDBFRUZDMzk0MDQ1MDA4OTA3NjI2RTAwNEYwODBENUM5Cis6MTA0ODhBMDBFRkI0MDQwODkwN0ZCNEUwNDQwMUYwMjJFRjc1RjAwMzFFCis6MTA0ODlBMDBBNDI0MzJGNTgyRTQzNDc1RjU4M0UwOTA3RjAwRjA5MDI5Cis6MDY0OEFBMDA3RkI1NzQwMUYwMjI0RAorOjAyNDhCMDAwOEYyRTQ5Cis6MTA0OEIyMDBFNEY1MkY3NTMwRkY3NTMxMDY3NTMyQkVBQjMwQUEzMTgzCis6MTA0OEMyMDBBOTMyOTAwMDAxMTIzNkFCQjQwMzFGQUYyRjA1MkZFRkIwCis6MTA0OEQyMDA2NTJFNzAwMTIyMTIzNjkyN0UwMDI5RkZFRTNBQzlFRjUwCis6MTA0OEUyMDBDOTc1MzBGRkY1MzE4OTMyODBEMjdCMDA3QTAwNzkwMEI4Cis6MDE0OEYyMDAyMkEzCis6MEM0OEYzMDBDMjM3RTRGNTBFRjUxMEMyMzZGNTE0MjJCMQorOjEwNDkwMDAwMDIyRkU3MDAwMjNENDcwMDAyNEQ0NjAwMDI0QkQ1MDA1MgorOjEwNDkxMDAwMDI0QjYwMDAwMjJGRkYwMDAyNEJFRDAwMDI0QjgxMDBCMgorOjEwNDkyMDAwMDI0QzA0MDAwMjNGRDUwMDAyNEMxQjAwMDI0QzMyMDAzNgorOjEwNDkzMDAwMDI0QzQ5MDAwMjRDNjAwMDAyNEM3NzAwMDI0QzhFMDA5MQorOjEwNDk0MDAwMDI0Q0E1MDAwMjRDQkMwMDAyNENEMzAwMDI0Q0VBMDAxMQorOjA4NDk1MDAwMDI0RDAxMDAwMjREMTgwMEE4Cis6MTA0OTU4MDA5MDc2NDY3NDgwRjBFNEEzRjBBM0YwQTNGMEEzRjBBMzRDCis6MTA0OTY4MDBGMEEzRjBBM0YwQTNGMEEzNzQ4MEYwRTRBM0YwQTNGMDA1Cis6MTA0OTc4MDBBM0YwQTNGMEEzRjBBM0YwQTM3NDQwRjBFNEEzRjBBMzgyCis6MTA0OTg4MDA3NDQwRjBFNEEzRjBBM0YwQTNGMEEzRjBBM0YwQTNGMDI1Cis6MTA0OTk4MDBBMzc0NDBGMEU0QTNGMEEzNzQ0MEYwRTRBM0YwQTNGMDAwCis6MDU0OUE4MDBBM0YwQTNGMDIyQzIKKzoxMDQ5QUQwMEU0OTA3NjI1RjA5MDc2MjVFMEZGNzVGMDAzQTQyNDM0OEQKKzoxMDQ5QkQwMEY1ODJFNDM0NzVGNTgzRTBGRTkwN0ZFQ0UwRkRFRTZENUQKKzoxMDQ5Q0QwMDYwMEVFRkMzOTQwNDUwMDg5MDc2MjVFMDA0RjA4MEQ1NzYKKzoxMDQ5REQwMEVGQjQwNDA4OTA3RkI0RTA0NDAxRjAyMjkwN0VDMEUwNzMKKzoxMDQ5RUQwMEZFRUY3NUYwMDNBNDI0MzJGNTgyRTQzNDc1RjU4M0VFMDEKKzowMjQ5RkQwMEYwMjJBNgorOjEwNDlGRjAwRTRGRTc1MURGRjc1MUUwNTc1MUYxMkFCMURBQTFFQTlCRQorOjEwNEEwRjAwMUY5MDAwMDExMjM2QUI2NDAyNzAyRkNERUVDRDBFRUQ2QworOjEwNEExRjAwNkY3MDAxMjI5MDAwMDIxMjM3MEU4NUYwMUJGNTFDNjI5OQorOjEwNEEyRjAwMUJFNTFCNjIxQ0U1MUM2MjFCMjlGREU1MUIzQUM5RUQ0QQorOjEwNEEzRjAwQzk3NTFERkZGNTFFODkxRjgwQzE3QjAwN0EwMDc5MDBBMworOjAxNEE0RjAwMjI0NAorOjEwNEE1MDAwMzAyRDM5QzIyRDkwNzYxOUUwRkZCNDAxMERFNDkwNzYyNworOjEwNEE2MDAwN0NGMEEzNzRGOEYwQTM3NDBBRjBFRkI0MDIwREU0OTBBNAorOjEwNEE3MDAwNzY3Q0YwQTM3NEYwRjBBMzc0MEJGMEVGQjQwMzBERTRCNAorOjBENEE4MDAwOTA3NjdDRjBBMzc0RjhGMEEzNzQxN0YwMjI3OAorOjEwNEE4RDAwRTRGRjc0NTYyRkY1ODJFNDM0NzZGNTgzRTBGRTc0Mjg0NgorOjEwNEE5RDAwMkZGNTgyRTQzNDgwRjU4M0VFRjA3NDVFMkZGNTgyRTQxOQorOjEwNEFBRDAwMzQ3NkY1ODNFMEZFNzQzODJGRjU4MkU0MzQ4MEY1ODM5NworOjA2NEFCRDAwRUVGMDBGQkYwOENDNzMKKzowMTRBQzMwMDIyRDAKKzoxMDRBQzQwMEU0OTA3MjM2RjBBM0YwOTA3Rjk3RTA1NEZCRjBFNDkwMEEKKzoxMDRBRDQwMDcyMzNGMDkwNzIzMkYwOTA3MjAxMDRGMEU0OTA3MjMzMDkKKzoxMDRBRTQwMEYwOTA3MjMyRjA5MDcyMDEwNEYwOTA3Rjk3RTA0NDA0RTkKKzowMjRBRjQwMEYwMjJBRQorOjEwNEFGNjAwOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwNDIwNEUwNDRGNgorOjEwNEIwNjAwMDJGMDdGREM3RTA1MTI0RDJGOTA3RkQ2RTA1NEY3RjA0MQorOjA1NEIxNjAwRTA0NDA0RjAyMjYwCis6MTA0QjFCMDA5MDdGRUJFMDE0NzAxNDkwN0ZFOUUwMjQ3RjcwMDQxMjE3Cis6MTA0QjJCMDA0ODVBMjI5MDdGQjRFMDQ0MDFGMDIyOTA3RkI0RTA0NEQ1Cis6MDM0QjNCMDAwMUYwMjI2NAorOjEwNEIzRTAwOTA3RkVCRTAxNDcwMTM5MDdGRTlFMDE0NzAwNDEyNDkzQgorOjEwNEI0RTAwQUQyMjkwN0ZCNEUwNDQwMUYwMjI5MDdGQjRFMDQ0MDFBNgorOjAyNEI1RTAwRjAyMjQzCis6MTA0QjYwMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjA5MDhGCis6MTA0QjcwMDA3Njk2RTA1NEZERjA5MDgwMDNGMEQwODJEMDgzRDBFMEIwCis6MDE0QjgwMDAzMjAyCis6MTA0QjgxMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUFFMDQ0MDFGMDVFCis6MEY0QjkxMDBDMjI5OTA3NjhENzQwMUYwRDA4MkQwODNEMEUwMzJBQgorOjEwNEJBMDAwOTA3RkVBRTA5MDc2ODJGMEU0OTA3NjkxRjA5MDc2OTJCMQorOjBCNEJCMDAwRjA5MDc2OTBGMDkwNzY5M0YwRDMyMjA2Cis6MTA0QkJCMDA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDAxMkM0Cis6MEE0QkNCMDA0RDJGOTA3RkQ2RTA1NEZFRjAyMjNCCis6MTA0QkQ1MDBDMEUwQzA4M0MwODJEMjI1NTM5MUVGOTA3RkFCNzQwOEFCCis6MDg0QkU1MDBGMEQwODJEMDgzRDBFMDMyNTEKKzoxMDRCRUQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMUYwRjMKKzowNzRCRkQwMEQwODJEMDgzRDBFMDMyMkEKKzoxMDRDMDQwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwMkYwREEKKzowNzRDMTQwMEQwODJEMDgzRDBFMDMyMTIKKzoxMDRDMUIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwNEYwQzEKKzowNzRDMkIwMEQwODJEMDgzRDBFMDMyRkIKKzoxMDRDMzIwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwNEYwQTkKKzowNzRDNDIwMEQwODJEMDgzRDBFMDMyRTQKKzoxMDRDNDkwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQwOEYwOEYKKzowNzRDNTkwMEQwODJEMDgzRDBFMDMyQ0QKKzoxMDRDNjAwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQwOEYwNzcKKzowNzRDNzAwMEQwODJEMDgzRDBFMDMyQjYKKzoxMDRDNzcwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQxMEYwNTkKKzowNzRDODcwMEQwODJEMDgzRDBFMDMyOUYKKzoxMDRDOEUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQxMEYwNDEKKzowNzRDOUUwMEQwODJEMDgzRDBFMDMyODgKKzoxMDRDQTUwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQyMEYwMUIKKzowNzRDQjUwMEQwODJEMDgzRDBFMDMyNzEKKzoxMDRDQkMwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQyMEYwMDMKKzowNzRDQ0MwMEQwODJEMDgzRDBFMDMyNUEKKzoxMDRDRDMwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ0MEYwQ0QKKzowNzRDRTMwMEQwODJEMDgzRDBFMDMyNDMKKzoxMDRDRUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ0MEYwQjUKKzowNzRDRkEwMEQwODJEMDgzRDBFMDMyMkMKKzoxMDREMDEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBOUUwNDQ4MEYwNUUKKzowNzREMTEwMEQwODJEMDgzRDBFMDMyMTQKKzoxMDREMTgwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQUUwNDQ4MEYwNDYKKzowNzREMjgwMEQwODJEMDgzRDBFMDMyRkQKKzoxMDREMkYwMDhFMzU4RjM2RTUzNjE1MzZBRTM1NzAwMjE1MzU0RTYwMzkKKzowNzREM0YwMDA1MTIxNDg1ODBFRTIyMkQKKzoxMDRENDYwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MDRGMEQwNzMKKzowNjRENTYwMDgyRDA4M0QwRTAzMkEwCis6MTA0RDVDMDA5MDc2ODJFMDkwN0YwMEYwOTA3RkI1NzQwMUYwRDMyMkMyCis6MDk0RDZDMDBDMjI1NTNEOEVGNDNEODIwMzJEMAorOjA3NEQ3NTAwNTM5OEZFNTM5OEZEMzIzNAorOjA3NEQ3QzAwNTNDMEZFNTNDMEZEMzJERAorOjA2NEQ4MzAwNTM5MUJGRDIyRDMyNTYKKzowNjREODkwMDUzOTE3RkQyMkMzMjkxCis6MDQ0RDhGMDA1MzkxREYzMjJCCis6MDQ0RDkzMDA1M0Q4RjczMkM4Cis6MDQ0RDk3MDAxMjE3MzAyMjlECis6MDM0RDlCMDBDMjhEMzI5NAorOjAzNEQ5RTAwQzI4RjMyOEYKKzowMjREQTEwMEQzMjIxQgorOjAyNERBMzAwRDMyMjE5Cis6MDI0REE1MDBEMzIyMTcKKzowMjREQTcwMEQzMjIxNQorOjAyNERBOTAwRDMyMjEzCis6MDI0REFCMDBDMzIyMjEKKzowMDAwMDAwMUZGCisvKgorU291cmNlOiBFTUk2MlNGVy5IRVgKK1ZFUlNJT049MS4wNC4wNjIKK0RBVEU9MTYuMTAuMjAwMgorKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2Vzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdy5paGV4IGIvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3LmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMzYzRjMwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2Vzcy9tYWVzdHJvM19hc3NwX2tlcm5lbC5mdy5paGV4CkBAIC0wLDAgKzEsMTIwIEBACis6MTAwMDAwMDA4MDc5MzAwMDgwNzlCNDAzODA3OUI0MDM4MDc5RkIwMDczCis6MTAwMDEwMDA4MDc5REQwMDgwNzlCNDAzODA3OTMyMDM4MDc5ODcwMkFBCis6MTAwMDIwMDA4MDc5QjQwMzgwNzlCNDAzODA3OUI0MDM4MDc5QjQwMzEwCis6MTAwMDMwMDA4MDc5MUEwMzgwNzlCNDAzODA3OTJGMDI4MDc5QjQwMzIwCis6MTAwMDQwMDA4MDc5QjQwMzgwNzlCNDAzODA3OUI0MDM4MDc5QjQwM0YwCis6MTAwMDUwMDA4MDc5NjMwMDgwNzk2QjAwODA3OUI0MDM4MDc5QjQwMzgwCis6MTAwMDYwMDA4MEJGN0MyQzA2ODgwNDg4NDBCRTIwQkMwOUFFMDAxMEVFCis6MTAwMDcwMDAwQUFFMDEwMDM4NjkwOEVCNTMwMDVBNjkwOEVCRDYwMDU0Cis6MTAwMDgwMDAwOTAwODg4QjgwNjk4OEUzMzYwMDMwQkUyMEJDMDk2OThFCis6MTAwMDkwMDAwMUI4MDk5MDQxQkU0MUJFMjg2OTg4RUI3ODAwNDFCRTk1Cis6MTAwMEEwMDA0MEJFODA3OTM4MDA0MUJFNDFCRTNBOTAzODY5MDhFM0NECis6MTAwMEIwMDA1NjAwM0E5MDQxQkU0MEJFMDBFRjNBOTAzOTY5MDhFM0RECis6MTAwMEMwMDA1RTAwM0E5MDAwRUYwQjY5MEM2NjhDRUYwQTY5MEM2NkQzCis6MTAwMEQwMDAwQjYyMDk2NjAwRUYxMDY5MEY2NjA0RUY4OEUzNzUwMDk0Cis6MTAwMEUwMDAwRTY5MEY2NjEwNjIwRDY2MDBFRjBFNjkwRDY2MDBFRjc3Cis6MTAwMEYwMDA3MEFFMDEwMDIwQkMyN0FFMDEwMDM5NjkwOEVCNUQwMDNECis6MTAwMTAwMDAyNjY5MDFCODI2OTAyNjAwODg4QjgwNjk4OEUzQ0IwMDk5Cis6MTAwMTEwMDAyODkwMjgwRDExNDIwMEUxN0EwMDExNDcwMEUxQTAwMDZCCis6MTAwMTIwMDA4MDdBNjMwMDExQjgwQTY2MDk2MjA0RTM3QTAwMEIwQzU2Cis6MTAwMTMwMDAwNTQwMEExMDAxQkExMjkwMTIwQzAyNDA4MDc5QUYwMEZCCis6MTAwMTQwMDA4MDdBNkIwMDAyQkUwRTYyMEQ2NjEwQkE0NEUzN0EwMDNDCis6MTAwMTUwMDAxMDBDMDU0MDBFMTAwMUJBMTI5MDEyMEMwMjQwMDMxMDUwCis6MTAwMTYwMDAwMkJBMTI5MDEyMEMwMDQwMDMxMDg4RTNCQTAwMDQxMDg3Cis6MTAwMTcwMDA4MDc5QkMwMDA0MTAwMUJBMTI5MDEyMEMwMTQwMDUwQ0U5Cis6MTAwMTgwMDAwMzQwMDYwQzA0NDAxMTEwQjBCRkZGMDExMjkwMTIwQzg2Cis6MTAwMTkwMDAwNjQwMjBCQzAwRUYyNkFFMjgxMDcwNjlEMEJGMDEwMEQ5Cis6MTAwMUEwMDA3MDkwODhFMzdBMDAyOEFFMDAwMDAwRUY3MEFFMDAwMzg0Cis6MTAwMUIwMDA3MDBDMENCMDVBQUUwMDAwMDBFRjgwN0E4QTAzN0Y2OUExCis6MTAwMUMwMDAwMUI4N0Y5MDU2MDA4ODhCQTAwQzA4QjA3MUFGMDBCMENBCis6MTAwMUQwMDA3MTRFMDBFMkYzMDA1NkFFNTcxMDU2MDBBMDBDMDhCMDY2Cis6MTAwMUUwMDA1NjgwODA3OUExMDMxMDA4QTBCRjU5MTAwNEUzQTEwMzMxCis6MTAwMUYwMDA1NjgwODA3OUExMDM4MDdBOEEwMzAxQkY0M0JFNTlCRTJECis6MTAwMjAwMDA3QzkwMzc2OTg4RTMwRDAxMDFCQTA4RTMwQzAxNzFBRUY3Cis6MTAwMjEwMDAwNDAwNzEwQzAwNTAzNjY5Mzc5MDBBQkY5RTEwOEE4QjFCCis6MTAwMjIwMDA4MEFGMTQ4MDgwNEMwQUJGNjAwNTAwRjUwQUJGMjAwNTJFCis6MTAwMjMwMDAwMEI5MTdCQkEwOTAxNzY5ODhFMzQ4MDExNzBEMDBFMUNBCis6MTAwMjQwMDAyNzAxMENCRjc4MDUwREJGN0MwNTgwNzkyQjAxMENCRjAxCis6MTAwMjUwMDAzODA1MERCRjNDMDUwMDY5MDhFMzM1MDE4QzhCNTlCRTlDCis6MTAwMjYwMDAwN0JCQTA5MDIwQkM4MDc5NTcwMTBDMDM4QjhCMDNCOThFCis6MTAwMjcwMDAwOTg4QzZCRTNFMDFBQzY5QUI5MEFENjlBQjkwMTMwODZFCis6MTAwMjgwMDAwQTY2NDRFMzQ0MDEwOTAzMEM4MzIwQkM4MDc5NTcwMUNBCis6MTAwMjkwMDA1NTY5ODhFMzU3MDEzODdDMEJCRjc4MDUwMEY1MEJCRjIzCis6MTAwMkEwMDAzODA1MDdCOTA5ODhDNkJFNTYwMUFCMTBBQTkwNzQ2OTEzCis6MTAwMkIwMDA4OEUzNjMwMTcyQUU0MDA1MDBGNTcyQUUwMDA1NjFBRUUxCis6MTAwMkMwMDAzQjEwODA3QUY2MDI3ODY5ODhFMzgyMDE4QzhCMENCRjQwCis6MTAwMkQwMDA2MDA1MDBFNTQwN0MxNDA4MjBCQTEyODgzRDczODA3QURFCis6MTAwMkUwMDA4MDAzM0U3MzgwN0E4MDAzOEM4QjBDQkY2QzA1MDBFNTI1Cis6MTAwMkYwMDA0MDdDMTQwODJDQkExMjg4M0Y3MzgwN0E4MDAzNDA3M0M0Cis6MTAwMzAwMDA4MDdBODAwMzc1Njk4OEUzOEUwMTcyQUU0ODA1MDBGNTM2Cis6MTAwMzEwMDA3MkFFMDgwNTYxQUU0MTEwODA3QUY2MDI3OTY5ODhFMzExCis6MTAwMzIwMDBBRDAxOEM4QjBDQkY2MDA1MDBFNTQwN0MxNDA4MThCQTQ5Cis6MTAwMzMwMDAxMjg4NDM3MzgwN0E4MDAzNDQ3MzgwN0E4MDAzOEM4QkE1Cis6MTAwMzQwMDAwQ0JGNkMwNTAwRTU0MDdDMTQwODI0QkExMjg4NDU3Mzg0Cis6MTAwMzUwMDA4MDdBODAwMzQ2NzM4MDdBODAwMzc2Njk4OEUzQjkwMUU2Cis6MTAwMzYwMDA3MkFFNTgwNTAwRjU3MkFFMTgwNTYxQUU0NzEwODA3QTdFCis6MTAwMzcwMDBGNjAyN0E2OTg4RTNEODAxOEM4QjBDQkY2MDA1MDBFNTMyCis6MTAwMzgwMDA0MDdDMTQwODA4QkExMjg4NDk3MzgwN0E4MDAzNEE3MzQzCis6MTAwMzkwMDA4MDdBODAwMzhDOEIwQ0JGNkMwNTAwRTU0MDdDMTQwOEQwCis6MTAwM0EwMDAxNEJBMTI4ODRCNzM4MDdBODAwMzRDNzM4MDdBODAwMzZFCis6MTAwM0IwMDAyMUJDMUNBRTkwMTA4QThCMEFCRjYwMDUwMEU1NDA3QzEyCis6MTAwM0MwMDAxMjA4MDRCODEzODg4RDhCMERCRjZDMDUwMEU1NDA3Q0M2Cis6MTAwM0QwMDAxNTA4MDRCODExODg4MDdBNEEwMzhBOEIwQUJGNjAwNTIxCis6MTAwM0UwMDAwMEU1NDA3QzFGNzMwM0I5MDk4OEM2QkVGOTAxOEE1NDMxCis6MTAwM0YwMDAwM0JFQTA5ODIwNzMwM0I5MDk4OEM2QkUwMTAyOEE1NEJGCis6MTAwNDAwMDAwM0JFQTA5ODIwMUYxRjJGMjY5ODIwQkMzNTY5ODhFM0MzCis6MTAwNDEwMDBBMTAzMzM2OTAxQjgzMzkwQTBCRkVFMDIwOEUzQTEwMzQyCis6MTAwNDIwMDAzMzkwMDBCRjUxNjk4OEUzMUYwMjM0NzM4MEJFNjA1NzY4Cis6MTAwNDMwMDAwM0JFN0U5RjU5QkUzNDkwN0U2OTUxMEQxMzkwMjBCQzNGCis6MTAwNDQwMDA1QzY5ODhFM0ExMDM1RTczODBCRTYwNTcwM0JFN0U5RjM0Cis6MTAwNDUwMDA1OUJFNUU5MDdFNjk1QzBEMTM5MDgwNzlBMTAzODA3QTBECis6MTAwNDYwMDA4QTAzMDFCRjQzQkU3NzY5ODhFMzRFMDI2MUFFNEQxMDM3Cis6MTAwNDcwMDA2MTAwODg4QjgwNjk4OEUzNEUwMjcxOTA3MTBEMEIwMERBCis6MTAwNDgwMDBBMEFGMTA4MEEwQUYxMDgwMTAwODBBNjYwOEUzNDkwMkYwCis6MTAwNDkwMDAwOTAwMTAwODBDNjY4OEUzNEUwMjBCODAyMEJDN0I2OUMzCis6MTAwNEEwMDA4OEUzQTEwMzBBQkY5RTEwOEE4QjgwQUYxNDgwODA0QzIyCis6MTAwNEIwMDAwMEUxNjYwMjdDNjk5MEJGNjAwNTcyOTA3MjAzN0M2OUZFCis6MTAwNEMwMDA5MEJGNjQwNTczOTA3MzA0ODA3OTcwMDI3QzY5OTBCRjVCCis6MTAwNEQwMDAyMDA1NzI5MDcyMDM3QzY5OTBCRjI0MDU3MzkwNzMwNEE5Cis6MTAwNEUwMDA3QzY5MDFCODdDOTAwQUJGRkQxMDhBOEI4MEFGMTA4MEI4Cis6MTAwNEYwMDA0RjczOEE1NDAzQkU4MDk4MjFCQzI2NzM4QjU0MDNCRTZECis6MTAwNTAwMDA4QjYxOEM5ODAzQkU4MDYxODA5ODgwNzlBMTAzODA3QThBCis6MTAwNTEwMDA4QTAzMjgwRDExNDcwMEUxQkUwMjEyQUYwNjQwMTI2OTlFCis6MTAwNTIwMDBCMEJGMDAwQzg4RTNCNjAyQTBCRjAwMDg4OEUzQjIwMkE3Cis6MTAwNTMwMDAxMjY5QjBCRjAwMENBMEJGMDAwNDg4RTNBMzAyMDk2OUUwCis6MTAwNTQwMDAwQjkwODA3OUE1MDIwQkFGMDU0MDAxNjkwNTkwMDI2OTA3Cis6MTAwNTUwMDAwNjkwMTE0MzAwRTFFRDAyMTE2OUMwQkYwMDIwMTE5MDI3Cis6MTAwNTYwMDA4MDc5RUQwMjA5NjkwQjkwODA3OUI4MDIwQkFGMDU0MEU0Cis6MTAwNTcwMDAwNUFGMDM0MDA2QUYwNDQwODA3OUVEMDIxMkFGMDY0MDlDCis6MTAwNTgwMDAxMjY5QjBCRjAwMEM4OEUzRTcwMkEwQkYwMDA4ODhFMzRGCis6MTAwNTkwMDBFMzAyMTI2OUIwQkYwMDBDQTBCRjAwMDQ4OEUzRDQwMkRDCis6MTAwNUEwMDAwRDY5MTA5MDgwNzlENjAyMTBBRjA1NDAwMTY5MDU5MDYxCis6MTAwNUIwMDAwMjY5MDY5MDExNDMwMEUxRUQwMjExNjlDMEJGMDAyMEZECis6MTAwNUMwMDAxMTkwODA3OUVEMDIwRDY5MTA5MDgwNzlFOTAyMTBBRkU5Cis6MTAwNUQwMDAwNTQwMDVBRjAzNDAwNkFGMDQ0MDIwQkM3MDY5NzE5MDMwCis6MTAwNUUwMDA4MDdBNzgwMDcxNjk3MDkwODA3OUExMDMyMEJDNjEwM0UyCis6MTAwNUYwMDA4QjhCODA2OTg4RUY3MjAyNzIwMzA0Nzg3MTkwNzEwREExCis6MTAwNjAwMDA4QThCMEIwMDAzQjkwOTg4QzZCRTA5MDNBODY5QUI5MEExCis6MTAwNjEwMDBBODY5QUE5MDEwMDgwQTY2NDRFMzBGMDMwOTAwMTAwOEFECis6MTAwNjIwMDAwQzY2ODhFMzE0MDMwQjgwMjBCQzYxNjkwMUI4NjE5MEZCCis6MTAwNjMwMDA4MDc5RjcwMjgwN0E4QTAzMzU1RDAxMDAzNDY5MDFCODU4Cis6MTAwNjQwMDAzNDkwMEFCRjlFMTA4QThCODBBRjE0ODA4MDQ4NzJBRUFGCis6MTAwNjUwMDA1MDA1MDBGNTcyQUUxMDA1NjFBRTUxMTA4MDdBRjYwMkI5Cis6MTAwNjYwMDA4MDc5QTEwMzgwN0E4QTAzMzU1RDAyMDA1RTY5MDFCODUyCis6MTAwNjcwMDA1RTkwMEFCRjlFMTA4QThCODBBRjE0ODA4MDQ3NzJBRTU2Cis6MTAwNjgwMDA1ODA1MDBGNTcyQUUxODA1NjFBRTVDMTA4MDdBRjYwMjZFCis6MTAwNjkwMDA4MDc5QTEwMzFDMDA4ODhCODA2OTg4RUYxRDkwMUQwRDU3Cis6MTAwNkEwMDAwRjEwMTA2NjhDRTM1ODAzMEU2OTEwNjYwRjYyMEQ2NjFBCis6MTAwNkIwMDAwRkJBMDFFMzdBMDMxMDA0OEE4QjAzQjkwOTg4QzZCRTE2Cis6MTAwNkMwMDA2QzAzOEM2QUFBNjFBQjk4OEM2QUFCNjFBRDk4OEM2QTNBCis6MTAwNkQwMDBBRDYxQTk5ODhDNkFBOTYxQUE5ODA0N0M4QjhCMDQ3QzczCis6MTAwNkUwMDA4RDhCMDQ3Qzg5OEIwNDdDMTQwODBFNjYwOEUzNzkwM0U3Cis6MTAwNkYwMDAwRDA0MTA4NDIxQkMxQzY5MDFCODFDOTA4MDc5NEEwMzQ4Cis6MTAwNzAwMDAwM0I5MDk4ODhBOEJDNkJFODgwM0FDNTQwM0JFOEM2MUNBCis6MTAwNzEwMDBBQTk4MDBFRjIwQkM0NkJFMDkwODZCOTAwQTA4NkM5MEFFCis6MTAwNzIwMDAwQjA4NkQ5MDFBMDg2MjkwMUIwODYzOTAxRTA4NjQ5MDc1Cis6MTAwNzMwMDA1OUJFMUU4ODY1ODA2NjgxNjc4MjY4ODM2OTg0NkE4NTgwCis6MTAwNzQwMDAwMEVGMjBCQzZCNjkwOTg4NkM2OTBBODg2RDY5MEI4OEE5Cis6MTAwNzUwMDA2MjY5MUE4ODYzNjkxQjg4NjQ2OTFFODg2NTAwNjYwMTdFCis6MEEwNzYwMDA2NzAyNjgwMzY5MDQ2QTA1M0FCRUU3Cis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdy5paGV4IGIvZmlybXdhcmUvZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYzAwMzEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9lc3MvbWFlc3RybzNfYXNzcF9taW5pc3JjLmZ3LmloZXgKQEAgLTAsMCArMSw1MSBAQAorOjEwMDAwMDAwODBCRjFFMTA2RTkwNkUwMDg4OEI4MDY5ODhFRjZGOTBBNQorOjEwMDAxMDAwNkYwRDAwNjkwOEVCMTIwNDIwQkM2RTY5MDFCODZFOTA4OAorOjEwMDAyMDAwODA3OTAzMDQwRUI5MDc4ODQzQkUwMUJGNDdCRTQxQkVCNQorOjEwMDAzMDAwODA3QTJBMDA0MEJFMjkzMENDRUY0MUJFODA3QTI4MDA2OQorOjEwMDA0MDAwNDBCRTI4MzBDQ0VGMDc2OTA4RTMyQTA0MDk2OTJDOTBFOAorOjEwMDA1MDAwODA3OTJDMDQwRDY5MkM5MDA5MTAxQTg4MEExMDAxQkFCNQorOjEwMDA2MDAwMUI4ODBEMTAxQzg4MEUxMDAxQkExRDg4ODBCRkVEMDA4MgorOjEwMDA3MDAwMUU4ODBDMDUyNDAxMDRCOTI3OTAxODY5MDhFM0IzMDQwRAorOjEwMDA4MDAwMkQ5MDEzNjlBMEJGOTg3NTA0RjcyREFFRkYwMDhEOEJERQorOjEwMDA5MDAwMTk2OTA4RTM2MzA0MUE2OTA4RTM1NjA0MDdCOTA5ODg3MworOjEwMDBBMDAwQzZCRTUzMDRBOTEwQUQ5MDgwNzk3QzA0MDNCOTA5ODhCOQorOjEwMDBCMDAwQzZCRTYwMDQ4OTE4MjI2Q0FEOTBBOTEwMjM2RTIyNkMxNAorOjEwMDBDMDAwQUQ5MDgwNzk3QzA0MUExMDA4RTM2RjA0MDNCOTA5ODhBNQorOjEwMDBEMDAwQzZCRTZDMDRBOTEwQTA5MEFEOTA4MDc5N0MwNDAxQjlEMworOjEwMDBFMDAwMDk4OEM2QkU3QjA0ODkxODIyNkNBMDkwQUQ5MEE5MTAyNworOjEwMDBGMDAwMjM2RTIyNkNBMDkwQUQ5MDJENjkwOEUzOUMwNDI0MDEyRQorOjEwMDEwMDAwMDNCNzAyQjkxODg4ODk4QjJDMDI4QTEwMDQ3Q0EwOTA0RQorOjEwMDExMDAwMkI2OTFGODg4MDdFNUIwNTJBNjkwOTg4ODk4QkEwOTlENQorOjEwMDEyMDAwOEExMEEwOTAyQjY5MUY4ODgwN0U1QjA1MkE2OTA5ODg0OAorOjEwMDEzMDAwODk4QkFGOTk5OTdCODQwNDI0MDEwRjA2MUIxMDEzMjAyRgorOjEwMDE0MDAwMUI5MEEwQkZGRjdGNDRFM0FDMDQxQjkwODk4QjgwN0E5NworOjEwMDE1MDAwMUEwNTI3NjkwMUJBMjc5MDgwN0EyMzA1Mjc2OTA4RTNFMQorOjEwMDE2MDAwOUUwNDgwNzkwRjA1MjQwNjI2MTAxMzIwMjY5MEEwQkYzOAorOjEwMDE3MDAwRkY3RjA0RTNDMDA0OEQ4QjgwN0ExQTA1ODA3OUI0MDQ3NAorOjEwMDE4MDAwMjY5MDEzMTAyNjMwMUI5MDhEOEI4MDdBMUEwNTgwN0E2QQorOjEwMDE5MDAwMjMwNTI3MTAwMUJBMjc5MDA4RTNCNDA0MjQwMTBGMDZCMQorOjEwMDFBMDAwODk4QjFBNjkwOEUzRUEwNDE5Njk4OEUzRTAwNDAzQjk1MgorOjEwMDFCMDAwMDk4OEM2QkVERDA0QTAxRkFFMkZBOTk4ODA3OTBGMDU1RgorOjEwMDFDMDAwMDFCOTE4ODgwN0I5MDk4OEM2QkVFNzA0RUUxMEE5OTBERQorOjEwMDFEMDAwODA3OTBGMDUxOTY5MDhFM0ZFMDQwM0I5MDk4ODQ2QkU1MgorOjEwMDFFMDAwQzZCRUZBMDRBMDE3MUVCRUFFMUZCRkJGMDBGRjEzQkVERgorOjEwMDFGMDAwREZCRjgwODBBOTk5NDdCRTgwNzkwRjA1MDFCOTA5ODhDMgorOjEwMDIwMDAwQzZCRTBFMDVBMDE2QTAyNkI3QkYwMEZGMUVCRUEwMUVDQworOjEwMDIxMDAwQUUyRUJGQkYwMEZGMTNCRURGQkY4MDgwQTk5OTBDODU0MworOjEwMDIyMDAwMEY4NjA3Njk4OEUzMTYwNTA3MEQxMDg1NTlCRTFFODhERAorOjEwMDIzMDAwNEFCRTAwRUYxRTEwMUM5MDFGMTAxRDkwQTAxMDFFOTBCMworOjEwMDI0MDAwQTAxMDFGOTAwMEVGMUUxMDFDMzAyMDkwMUI3MzIwNTQzNAorOjEwMDI1MDAwMDNCRTI1OTgyNTEwMUMyMDI1OTAyNTczMTQ1NDAzQkUzOQorOjEwMDI2MDAwOEU4QjgwOTgyRjY5ODhFMzM5MDU1OUJFMDdCQjgwNjE2MgorOjEwMDI3MDAwODA5OEEwOEIxRjEwMUQzMDIxOTAxQjczMjE1NDAzQkU0QQorOjEwMDI4MDAwMkU5ODJFMTAxRDIwMkU5MDJFNzMxNTU0MDNCRTgwOTg4QworOjEwMDI5MDAwMkY2OTg4RTM0RjA1NTlCRTA3QkI4MDYxODA5OEEwOEIwQQorOjEwMDJBMDAwMTg2OTA4RUYyNTczMTY1NDAzQkVBMDk4MkU3MzE3NTRDRgorOjEwMDJCMDAwMDNCRUEwOTgwMEVGQTA4QkM2QkU2QjA1NTlCRTA0QkI2MQorOjEwMDJDMDAwOTBBQTA0QkUxRUJFRTA5OUUwOEJBMDY5RDA5MEEwNjkwMAorOjEwMDJEMDAwRDA5MDFGMDgwNUI4MUY4ODkwOEJBMDY5RDA5MEEwNjlBNgorOjEwMDJFMDAwOTA5MEQwOEJEODhCMUZCRTAwRUYwMDAwMDAwMDAwMDA2NAorOjEwMDJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjAyMDMxMDAwMDAwMEVCCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvaWhleDJmdy5jIGIvZmlybXdhcmUvaWhleDJmdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MGIxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9paGV4MmZ3LmMKQEAgLTAsMCArMSwyNjggQEAKKy8qCisgKiBQYXJzZXIvbG9hZGVyIGZvciBJSEVYIGZvcm1hdHRlZCBkYXRhLgorICoKKyAqIENvcHlyaWdodCDCqSAyMDA4IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KKyAqIENvcHlyaWdodCDCqSAyMDA1IEphbiBIYXJrZXMgPGphaGFya2VzQGNzLmNtdS5lZHU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPGdldG9wdC5oPgorCisKK3N0cnVjdCBpaGV4X2JpbnJlYyB7CisJc3RydWN0IGloZXhfYmlucmVjICpuZXh0OyAvKiBub3QgcGFydCBvZiB0aGUgcmVhbCBkYXRhIHN0cnVjdHVyZSAqLworICAgICAgICB1aW50MzJfdCBhZGRyOworICAgICAgICB1aW50MTZfdCBsZW47CisgICAgICAgIHVpbnQ4X3QgZGF0YVtdOworfTsKKworLyoqCisgKiBueWJibGUvaGV4IGFyZSBsaXR0bGUgaGVscGVycyB0byBwYXJzZSBoZXhhZGVjaW1hbCBudW1iZXJzIHRvIGEgYnl0ZSB2YWx1ZQorICoqLworc3RhdGljIHVpbnQ4X3QgbnliYmxlKGNvbnN0IHVpbnQ4X3QgbikKK3sKKyAgICAgICBpZiAgICAgIChuID49ICcwJyAmJiBuIDw9ICc5JykgcmV0dXJuIG4gLSAnMCc7CisgICAgICAgZWxzZSBpZiAobiA+PSAnQScgJiYgbiA8PSAnRicpIHJldHVybiBuIC0gKCdBJyAtIDEwKTsKKyAgICAgICBlbHNlIGlmIChuID49ICdhJyAmJiBuIDw9ICdmJykgcmV0dXJuIG4gLSAoJ2EnIC0gMTApOworICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdWludDhfdCBoZXgoY29uc3QgdWludDhfdCAqZGF0YSwgdWludDhfdCAqY3JjKQoreworICAgICAgIHVpbnQ4X3QgdmFsID0gKG55YmJsZShkYXRhWzBdKSA8PCA0KSB8IG55YmJsZShkYXRhWzFdKTsKKyAgICAgICAqY3JjICs9IHZhbDsKKyAgICAgICByZXR1cm4gdmFsOworfQorCitzdGF0aWMgaW50IHByb2Nlc3NfaWhleCh1aW50OF90ICpkYXRhLCBzc2l6ZV90IHNpemUpOworc3RhdGljIHZvaWQgZmlsZV9yZWNvcmQoc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQpOworc3RhdGljIGludCBvdXRwdXRfcmVjb3JkcyhpbnQgb3V0ZmQpOworCitzdGF0aWMgaW50IHNvcnRfcmVjb3JkcyA9IDA7CitzdGF0aWMgaW50IHdpZGVfcmVjb3JkcyA9IDA7CisKK2ludCB1c2FnZSh2b2lkKQoreworCWZwcmludGYoc3RkZXJyLCAiaWhleDJmdzogQ29udmVydCBpaGV4IGZpbGVzIGludG8gYmluYXJ5ICIKKwkJInJlcHJlc2VudGF0aW9uIGZvciB1c2UgYnkgTGludXgga2VybmVsXG4iKTsKKwlmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiBpaGV4MmZ3IFs8b3B0aW9ucz5dIDxzcmMuSEVYPiA8ZHN0LmZ3PlxuIik7CisJZnByaW50ZihzdGRlcnIsICIgICAgICAgLXc6IHdpZGUgcmVjb3JkcyAoMTYtYml0IGxlbmd0aClcbiIpOworCWZwcmludGYoc3RkZXJyLCAiICAgICAgIC1zOiBzb3J0IHJlY29yZHMgYnkgYWRkcmVzc1xuIik7CisJcmV0dXJuIDE7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlpbnQgaW5mZCwgb3V0ZmQ7CisJc3RydWN0IHN0YXQgc3Q7CisJdWludDhfdCAqZGF0YTsKKwlpbnQgb3B0OworCisJd2hpbGUgKChvcHQgPSBnZXRvcHQoYXJnYywgYXJndiwgIndzIikpICE9IC0xKSB7CisJCXN3aXRjaCAob3B0KSB7CisJCWNhc2UgJ3cnOgorCQkJd2lkZV9yZWNvcmRzID0gMTsKKwkJCWJyZWFrOworCQljYXNlICdzJzoKKwkJCXNvcnRfcmVjb3JkcyA9IDE7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCXJldHVybiB1c2FnZSgpOworCQl9CisJfQorCisJaWYgKG9wdGluZCArIDIgIT0gYXJnYykKKwkJcmV0dXJuIHVzYWdlKCk7CisKKwlpZiAoIXN0cmNtcChhcmd2W29wdGluZF0sICItIikpCisJICAgIGluZmQgPSAwOworCWVsc2UKKwkJaW5mZCA9IG9wZW4oYXJndltvcHRpbmRdLCBPX1JET05MWSk7CisJaWYgKGluZmQgPT0gLTEpIHsKKwkJZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gb3BlbiBzb3VyY2UgZmlsZTogJXMiLAorCQkJc3RyZXJyb3IoZXJybm8pKTsKKwkJcmV0dXJuIHVzYWdlKCk7CisJfQorCWlmIChmc3RhdChpbmZkLCAmc3QpKSB7CisJCXBlcnJvcigic3RhdCIpOworCQlyZXR1cm4gMTsKKwl9CisJZGF0YSA9IG1tYXAoTlVMTCwgc3Quc3Rfc2l6ZSwgUFJPVF9SRUFELCBNQVBfU0hBUkVELCBpbmZkLCAwKTsKKwlpZiAoZGF0YSA9PSBNQVBfRkFJTEVEKSB7CisJCXBlcnJvcigibW1hcCIpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoIXN0cmNtcChhcmd2W29wdGluZCsxXSwgIi0iKSkKKwkgICAgb3V0ZmQgPSAxOworCWVsc2UKKwkJb3V0ZmQgPSBvcGVuKGFyZ3Zbb3B0aW5kKzFdLCBPX1RSVU5DfE9fQ1JFQVR8T19XUk9OTFksIDA2NDQpOworCWlmIChvdXRmZCA9PSAtMSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCB0byBvcGVuIGRlc3RpbmF0aW9uIGZpbGU6ICVzIiwKKwkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiB1c2FnZSgpOworCX0KKwlpZiAocHJvY2Vzc19paGV4KGRhdGEsIHN0LnN0X3NpemUpKQorCQlyZXR1cm4gMTsKKworCW91dHB1dF9yZWNvcmRzKG91dGZkKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBwcm9jZXNzX2loZXgodWludDhfdCAqZGF0YSwgc3NpemVfdCBzaXplKQoreworCXN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjb3JkOworCXVpbnQzMl90IG9mZnNldCA9IDA7CisJdWludDhfdCB0eXBlLCBjcmMgPSAwLCBjcmNieXRlID0gMDsKKwlpbnQgaSwgajsKKwlpbnQgbGluZSA9IDE7CisJaW50IGxlbjsKKworCWkgPSAwOworbmV4dF9yZWNvcmQ6CisJLyogc2VhcmNoIGZvciB0aGUgc3RhcnQgb2YgcmVjb3JkIGNoYXJhY3RlciAqLworCXdoaWxlIChpIDwgc2l6ZSkgeworCQlpZiAoZGF0YVtpXSA9PSAnXG4nKSBsaW5lKys7CisJCWlmIChkYXRhW2krK10gPT0gJzonKSBicmVhazsKKwl9CisKKwkvKiBNaW5pbXVtIHJlY29yZCBsZW5ndGggd291bGQgYmUgYWJvdXQgMTAgY2hhcmFjdGVycyAqLworCWlmIChpICsgMTAgPiBzaXplKSB7CisJCWZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgZmluZCB2YWxpZCByZWNvcmQgYXQgbGluZSAlZFxuIiwgbGluZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWxlbiA9IGhleChkYXRhICsgaSwgJmNyYyk7IGkgKz0gMjsKKwlpZiAod2lkZV9yZWNvcmRzKSB7CisJCWxlbiA8PD0gODsKKwkJbGVuICs9IGhleChkYXRhICsgaSwgJmNyYyk7IGkgKz0gMjsKKwl9CisJcmVjb3JkID0gbWFsbG9jKChzaXplb2YgKCpyZWNvcmQpICsgbGVuICsgMykgJiB+Myk7CisJaWYgKCFyZWNvcmQpIHsKKwkJZnByaW50ZihzdGRlcnIsICJvdXQgb2YgbWVtb3J5IGZvciByZWNvcmRzXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCW1lbXNldChyZWNvcmQsIDAsIChzaXplb2YoKnJlY29yZCkgKyBsZW4gKyAzKSAmIH4zKTsKKwlyZWNvcmQtPmxlbiA9IGxlbjsKKworCS8qIG5vdyBjaGVjayBpZiB3ZSBoYXZlIGVub3VnaCBkYXRhIHRvIHJlYWQgZXZlcnl0aGluZyAqLworCWlmIChpICsgOCArIChyZWNvcmQtPmxlbiAqIDIpID4gc2l6ZSkgeworCQlmcHJpbnRmKHN0ZGVyciwgIk5vdCBlbm91Z2ggZGF0YSB0byByZWFkIGNvbXBsZXRlIHJlY29yZCBhdCBsaW5lICVkXG4iLAorCQkJbGluZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJlY29yZC0+YWRkciAgPSBoZXgoZGF0YSArIGksICZjcmMpIDw8IDg7IGkgKz0gMjsKKwlyZWNvcmQtPmFkZHIgfD0gaGV4KGRhdGEgKyBpLCAmY3JjKTsgaSArPSAyOworCXR5cGUgPSBoZXgoZGF0YSArIGksICZjcmMpOyBpICs9IDI7CisKKwlmb3IgKGogPSAwOyBqIDwgcmVjb3JkLT5sZW47IGorKywgaSArPSAyKQorCQlyZWNvcmQtPmRhdGFbal0gPSBoZXgoZGF0YSArIGksICZjcmMpOworCisJLyogY2hlY2sgQ1JDICovCisJY3JjYnl0ZSA9IGhleChkYXRhICsgaSwgJmNyYyk7IGkgKz0gMjsKKwlpZiAoY3JjICE9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJDUkMgZmFpbHVyZSBhdCBsaW5lICVkOiBnb3QgMHglWCwgZXhwZWN0ZWQgMHglWFxuIiwKKwkJCWxpbmUsIGNyY2J5dGUsICh1bnNpZ25lZCBjaGFyKShjcmNieXRlLWNyYykpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwkvKiBEb25lIHJlYWRpbmcgdGhlIHJlY29yZCAqLworCXN3aXRjaCAodHlwZSkgeworCWNhc2UgMDoKKwkJLyogb2xkIHN0eWxlIEVPRiByZWNvcmQ/ICovCisJCWlmICghcmVjb3JkLT5sZW4pCisJCQlicmVhazsKKworCQlyZWNvcmQtPmFkZHIgKz0gb2Zmc2V0OworCQlmaWxlX3JlY29yZChyZWNvcmQpOworCQlnb3RvIG5leHRfcmVjb3JkOworCisJY2FzZSAxOiAvKiBFbmQtT2YtRmlsZSBSZWNvcmQgKi8KKwkJaWYgKHJlY29yZC0+YWRkciB8fCByZWNvcmQtPmxlbikgeworCQkJZnByaW50ZihzdGRlcnIsICJCYWQgRU9GIHJlY29yZCAodHlwZSAwMSkgZm9ybWF0IGF0IGxpbmUgJWQiLAorCQkJCWxpbmUpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKwkJYnJlYWs7CisKKwljYXNlIDI6IC8qIEV4dGVuZGVkIFNlZ21lbnQgQWRkcmVzcyBSZWNvcmQgKEhFWDg2KSAqLworCWNhc2UgNDogLyogRXh0ZW5kZWQgTGluZWFyIEFkZHJlc3MgUmVjb3JkIChIRVgzODYpICovCisJCWlmIChyZWNvcmQtPmFkZHIgfHwgcmVjb3JkLT5sZW4gIT0gMikgeworCQkJZnByaW50ZihzdGRlcnIsICJCYWQgSEVYODYvSEVYMzg2IHJlY29yZCAodHlwZSAlMDJYKSBhdCBsaW5lICVkXG4iLAorCQkJCXR5cGUsIGxpbmUpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBXZSBzaG91bGRuJ3QgcmVhbGx5IGJlIHVzaW5nIHRoZSBvZmZzZXQgZm9yIEhFWDg2IGJlY2F1c2UKKwkJICogdGhlIHdyYXBhcm91bmQgY2FzZSBpcyBzcGVjaWZpZWQgcXVpdGUgZGlmZmVyZW50bHkuICovCisJCW9mZnNldCA9IHJlY29yZC0+ZGF0YVswXSA8PCA4IHwgcmVjb3JkLT5kYXRhWzFdOworCQlvZmZzZXQgPDw9ICh0eXBlID09IDIgPyA0IDogMTYpOworCQlnb3RvIG5leHRfcmVjb3JkOworCisJY2FzZSAzOiAvKiBTdGFydCBTZWdtZW50IEFkZHJlc3MgUmVjb3JkICovCisJY2FzZSA1OiAvKiBTdGFydCBMaW5lYXIgQWRkcmVzcyBSZWNvcmQgKi8KKwkJaWYgKHJlY29yZC0+YWRkciB8fCByZWNvcmQtPmxlbiAhPSA0KSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIkJhZCBTdGFydCBBZGRyZXNzIHJlY29yZCAodHlwZSAlMDJYKSBhdCBsaW5lICVkXG4iLAorCQkJCXR5cGUsIGxpbmUpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCQkvKiBUaGVzZSByZWNvcmRzIGNvbnRhaW4gdGhlIENTL0lQIG9yIEVJUCB3aGVyZSBleGVjdXRpb24KKwkJICogc3RhcnRzLiBEb24ndCByZWFsbHkga25vdyB3aGF0IHRvIGRvIHdpdGggdGhlbS4gKi8KKwkJZ290byBuZXh0X3JlY29yZDsKKworCWRlZmF1bHQ6CisJCWZwcmludGYoc3RkZXJyLCAiVW5rbm93biByZWNvcmQgKHR5cGUgJTAyWClcbiIsIHR5cGUpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjb3JkczsKKworc3RhdGljIHZvaWQgZmlsZV9yZWNvcmQoc3RydWN0IGloZXhfYmlucmVjICpyZWNvcmQpCit7CisJc3RydWN0IGloZXhfYmlucmVjICoqcCA9ICZyZWNvcmRzOworCisJd2hpbGUgKCgqcCkgJiYgKCFzb3J0X3JlY29yZHMgfHwgKCpwKS0+YWRkciA8IHJlY29yZC0+YWRkcikpCisJCXAgPSAmKCgqcCktPm5leHQpOworCisJcmVjb3JkLT5uZXh0ID0gKnA7CisJKnAgPSByZWNvcmQ7Cit9CisKK3N0YXRpYyBpbnQgb3V0cHV0X3JlY29yZHMoaW50IG91dGZkKQoreworCXVuc2lnbmVkIGNoYXIgemVyb2VzWzVdID0gezAsIDAsIDAsIDAsIDB9OworCXN0cnVjdCBpaGV4X2JpbnJlYyAqcCA9IHJlY29yZHM7CisKKwl3aGlsZSAocCkgeworCQl1aW50MTZfdCB3cml0ZWxlbiA9IChwLT5sZW4gKyA5KSAmIH4zOworCisJCXAtPmFkZHIgPSBodG9ubChwLT5hZGRyKTsKKwkJcC0+bGVuID0gaHRvbmwocC0+bGVuKTsKKwkJd3JpdGUob3V0ZmQsICZwLT5hZGRyLCB3cml0ZWxlbik7CisJCXAgPSBwLT5uZXh0OworCX0KKwkvKiBFT0YgcmVjb3JkIGlzIHplcm8gbGVuZ3RoLCBzaW5jZSB3ZSBkb24ndCBib3RoZXIgdG8gcmVwcmVzZW50CisJICAgdGhlIHR5cGUgZmllbGQgaW4gdGhlIGJpbmFyeSB2ZXJzaW9uICovCisJd3JpdGUob3V0ZmQsIHplcm9lcywgNSk7CisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9maXJtd2FyZS9pbnRlbGxpcG9ydDIuYmluLmloZXggYi9maXJtd2FyZS9pbnRlbGxpcG9ydDIuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTljZmU4YwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2ludGVsbGlwb3J0Mi5iaW4uaWhleApAQCAtMCwwICsxLDIxNDcgQEAKKzoxMDAwMDAwMDNDNDIzNzE4MDIwMTAzMDAwMDAwMDAwMDAwMDAwMDAwMUQKKzoxMDAwMTAwMDU3NjU2NDIwNDQ2NTYzMjAzMDMxMjAzMTMyM0EzMjM0RjAKKzoxMDAwMjAwMDNBMzMzMDIwMzEzOTM5MzkwMDAwMDAwMDAwMDAwMDAwMzcKKzoxMDAwMzAwMEU5NkMwRjQyNjU0NzY5NEU2RTQ5NkU0NzIwNkY0NjIwNTYKKzoxMDAwNDAwMDYzNEY2NDQ1Q0MxMzVBMTVFODE2NzYxODA0MUE5MjFCQjAKKzoxMDAwNTAwMDIwMURBRTFFM0MyMENBMjE1ODIzRTYyNDc0MjYwMjI4MDcKKzoxMDAwNjAwMDkwMjkxRTJCQUMyQzNBMkVDODJGNTYzMUU0MzI3MjM0MTQKKzoxMDAwNzAwMDAwMzY4RTM3MUMzOUFBM0EzODNDQzYzRDU0M0ZFMjQwMjAKKzoxMDAwODAwMDcwNDJGRTQzOEM0NTFBNDdBODQ4MzY0QUM0NEI1MjREMkQKKzoxMDAwOTAwMEUwNEU2RTUwRkM1MThBNTMxODU1QTY1NjM0NThDMjU5M0EKKzoxMDAwQTAwMDUwNUJERTVDNkM1RUZBNUY4ODYxMTY2M0E0NjQzMjY2NDYKKzoxMDAwQjAwMEMwNjc0RTY5REM2QTZBNkNGODZEODY2RjE0NzFBMjcyNTMKKzoxMDAwQzAwMDMwNzRCRTc1NEM3NzZDNzc4Qzc3QUM3NzMzREI4QURDMTkKKzoxMDAwRDAwMDUzMzNEQjI1MDcwMDc1MEE4QTFFMDgwMTgzRTMwQ0VCMDYKKzoxMDAwRTAwMDIwOTAzQzAxNzUwQThBMUUwODAxODBFM0MwRUIxMjkwNDMKKzoxMDAwRjAwMDhBMUUwRDAxM0MwMjc1MDY4MEUzMENFQjA0OTA4MEUzNDAKKzoxMDAxMDAwMEMwNTM1MDhCMUVCQTEzOEVEQkU4NkE2NTU1OEJFQzUzRDcKKzoxMDAxMTAwMDFFMkJDMDhFRDg4QjVFMDRDMUUzMDQwMzVFMDZEMUUzQzAKKzoxMDAxMjAwMDJFOEI5RjQ0MDA4RDQ3MkExRTVBMUY1QjVEQzM1NThCNDMKKzoxMDAxMzAwMEVDNTMxRTJCQzA4RUQ4OEI1RTA0QzFFMzA0MDM1RTA2MTUKKzoxMDAxNDAwMEQxRTMyRThCOUY0NDAwOEQ0NzM0MUU1QTFGNUI1REMzNDUKKzoxMDAxNTAwMEZCNTU4QkVDNTM1MTUyNTY1NzFFMDYxRTA3MzNDMDhFNkIKKzoxMDAxNjAwMEQ4OEI1RTA0MjY4QTQ3NTkyNTAzMDA4QkYwRDFFNjJFRjIKKzoxMDAxNzAwMDhCQjRDNDAwQzFFMDA0MjYwMjQ3MUFEMUUwOEJFODJFRkMKKzoxMDAxODAwMDhCQUU0NDAwODkyQzI2OEE0NzFDODg0NDBGMjY4QTQ3NTgKKzoxMDAxOTAwMDFEODg0NDEwMjY4QTQ3MUU4ODQ0MTEyNjhBNDcxRjg4RDYKKzoxMDAxQTAwMDQ0MTIyNjhBNDcyMDg4NDQxMzI2OEE0NzIzODg0NDE0MDkKKzoxMDAxQjAwMDI2OEE0NzI0ODg0NDE1MjY4QTQ3NUE4ODQ0MEUzM0MwMjUKKzoxMDAxQzAwMDg5NDQwNjg5NDQwODg4NDQwQjg4NDQwQUIwMjFCNDY0RjEKKzoxMDAxRDAwMDg5NDQwNDg5NDQwMkIwNTU4ODQ0MEQ4ODQ0MENFODZBNzcKKzoxMDAxRTAwMDAwNzI1QkU4QzkwMEU4QzExMDg5NDQwODgwN0MwRjAxRjcKKzoxMDAxRjAwMDc0MjlFODJCMDJFODdGMDI4MDdDMEYwMzc0MURFOEE5QjQKKzoxMDAyMDAwMDEwOEJGODJCNDQwODNEQTAwRjcyMTA4OTdDMDgzM0MwNzYKKzoxMDAyMTAwMDg3NDQwNjg1QzA3NTA0QzY0NDBBRkY4QTQ0MEE4NEMwMjAKKzoxMDAyMjAwMDc1MEJCODA4MDBFODZBNEFFOEE5MDE3M0JGRTg0RjAxRjYKKzoxMDAyMzAwMDgxNjY0ODdGRkY4MzY2N0FCRkIwMDJFODA0MEU4QTQ0NzUKKzoxMDAyNDAwMDBBOTgwNzFGNUY1RTVBNTk1QjVEQzM4MTRFNDg4MDAwNjQKKzoxMDAyNTAwMEIwNDBFODNENEFFODg5NDA3MzJBRTg0RDEwOEJEOEIwOTkKKzoxMDAyNjAwMDA1RTgyRTRBRjY0NjI3MDI3NTFBRTgzRDEwMkJDMzNERDUKKzoxMDAyNzAwMDU4MUI3MkVCODE2NjQ4N0ZGRkIwMDJFOEM0MERDNjQ0OEMKKzoxMDAyODAwMDBBMDFGOUMzODM0RTdBNDBGOEMzRkJCMDAxRTgwMjRBODEKKzoxMDAyOTAwMEZBRTg5OTFFRTQwQTg0QzA3NUYwQjA0RUU2MEFGQkIwOTUKKzoxMDAyQTAwMDAxRThFRTQ5RkFFODg1MUVFNDBBODRDMDc1RjBDM0ZBNTUKKzoxMDAyQjAwMEU4N0ExRUU0RUM4ODQ0MTZFNEU0ODg0NDE3RTRGODg4RkQKKzoxMDAyQzAwMDQ0MThFNEYwODg0NDE5RTQxMDg4NDQxQUU0MTI4ODQ0N0QKKzoxMDAyRDAwMDFCRTQxNDg4NDQxQ0U0MzQ4ODQ0MURFNDM2ODg0NDFFMUUKKzoxMDAyRTAwMEU0RDgyNDAxOEFFMEU0REEyNDAyMEFDNDg4NDQxRjhBOUMKKzoxMDAyRjAwMDQ0MTBFOENEMUY4QTQ0MTFFODM1MjE4QTQ0MTJFODg5NjgKKzoxMDAzMDAwMDIxOEE0NDEzRTg0MzIxQzY4NkExMDAwMEU0MTQyNDEwODYKKzoxMDAzMTAwMEU2MTRFNDEyMjQzREU2MTI4QTQ0MTUzQzAxNzIxRTc3NkQKKzoxMDAzMjAwMDE2QjAxMUU2MzRCMDEzRTYzNkU0MTQwQzEwRTYxNEU0MEIKKzoxMDAzMzAwMDEyMEM0MEU2MTJFQjA2RTQxMjBDMDJFNjEyOEE0NDBGOUQKKzoxMDAzNDAwMDNDMDE3NDA2M0MwMjc0MEFFQjBFRTQxMjBDMDhFNjEyM0YKKzoxMDAzNTAwMEVCMDZFNDEyMEMxMEU2MTJFODJGRkY4QTQ0MTQzQzAyNkMKKzoxMDAzNjAwMDc1MDhCMDU1ODg0NDBDODg0NDBEQjAyMUI0NjQ4OTQ0QTQKKzoxMDAzNzAwMDA0ODk0NDAyRTQwQzBDMTBFNjBDRThFRDM5RkJDM0U4RjgKKzoxMDAzODAwMDVGM0Y3MzA4RkJCMDBBRTgwODQ5RUJGM0ZBRTg5RDFERUMKKzoxMDAzOTAwMDhBNjQxNjhBNDQxNzg5ODY5NDAwRTZFNDhBQzRFNkVDRTcKKzoxMDAzQTAwMDhBNjQxODhBNDQxOTg5ODY5NjAwRTZGMDhBQzRFNkY4QjkKKzoxMDAzQjAwMDhBNDQxQUU2MTA4QTQ0MUJFNjEyOEE0NDFDRTYxNDhBMTAKKzoxMDAzQzAwMDQ0MURFNjM0OEE0NDFFRTYzNjhBNDQxRkU2RDhFNkRBM0YKKzoxMDAzRDAwMEU5QjdGRTkwRkE4QTQ0MEVFNkZFRTQwMkE4MDE3NTA1MkMKKzoxMDAzRTAwMDMzQzBGQkY4QzMzM0MwRTQwMEZCRjlDMzhBNjQxNDgwNTQKKzoxMDAzRjAwMEZDMDI3NDJCRkVDMEZFQzc4MEZGNEU3MjFDNzQwOTgwODUKKzoxMDA0MDAwMEZGNTA3MzA4QjAwQUVCMTdCMDBERUIxMzAyREMzMkZGOUMKKzoxMDA0MTAwMDgwRkI3RjdDMDJCMzIxOEFDMzNDN0Y3QzAyQjAyMUMzNzYKKzoxMDA0MjAwMEZBODA3QzBCMDQ3NjAyRkJDMzhCNDYyNDNEMDgwMDcyRTUKKzoxMDA0MzAwMEY2OEU0NjAyOEI3RTIyOEE0NDBDOEI1QzAyQUFFOEFCQzUKKzoxMDA0NDAwMEZGQUFFOEE3RkZBQUU4QTNGRkFBRTg5RkZGODg0NDBDMzkKKzoxMDA0NTAwMDg5NUMwMjgwNDQwQjA0ODk3RTIyODM2RTI0MDQ4MzQ2RDcKKzoxMDA0NjAwMDFBMDQ4MDdFMjYwMjc0MDY4MDY2MjZGREZCQzM2MEIwRjcKKzoxMDA0NzAwMEZERTgwMjNGNjFGQkMzRkE4MDdDMEYwMzc1MDlDNjQ0QTcKKzoxMDA0ODAwMDBCMDBFOEU1MzhGQkMzQzQ3RTE0OEI0RTNBODVDOTc1NzIKKzoxMDA0OTAwMDM1MjY4QjBENDc0N0UzRUEzQjdFMDQ3NjIyQjgwMjAwRkYKKzoxMDA0QTAwMDM5NDYyRTc3MDdDNzQ2MkUwMDAwRUIxMzhCNUUyQzg5NEEKKzoxMDA0QjAwMDVFMDQyNkM3MDcwMDAwNDM0Mzg5NUUyQzI5NDYyRTg1MkIKKzoxMDA0QzAwMEM5NzhDRTg5NEUzQThBNDQwRDhCNUMwNDI2OEEyNTQ3MkEKKzoxMDA0RDAwMDNBQzQ3NTE2RkU0QzBCRkY0NDA2RTgwRkZGRTJFRDg4QTgKKzoxMDA0RTAwMDQ0MEQ4OTVDMDQ4OTRFM0FFQkE3QzY0NDBBRkVFODc5QkMKKzoxMDA0RjAwMDM4RkJDMzkwRThCMzBEOEFFODhBMEVDQjEzQjMwNzhBQTIKKzoxMDA1MDAwMEMxRUVFQjAwRUMzQUMxNzUwOTAyQ0RGRUNCNzVGMEVCMDQKKzoxMDA1MTAwMDBDOTA4ODBFQ0IxMzhBRThCQkZGRkZGOUMzODgwRUNCODMKKzoxMDA1MjAwMDEzRjhDMzkwQkIzRjNGOEE4RTlFMDBCQUZFMDBFQzhBNTAKKzoxMDA1MzAwMEU4MzJDMTIyQzM3NTAyRjhDM0Y5QzM5MEU4RTVGRjczM0UKKzoxMDA1NDAwMDAxQzNCQUQwMDBCQjAzMDM4QThFOUYwMEVDOEFFODMyNTUKKzoxMDA1NTAwMEMxMjJDMzc1MDJGOEMzRjlDMzkwMzNDMDhFRDg4RUMwRDAKKzoxMDA1NjAwMDgwM0VDODEzMDA3NTA3QjAwQUU4MjY0N0VCRjJGQjMzNUMKKzoxMDA1NzAwMERCOEExRUM5MTM0MzQzODNGQjdFNzYwNzMzREJCMDAyNUQKKzoxMDA1ODAwMEU4MEY0NzJFOEJBRjQ0MDA4MzdFMDgwMDc0RTc4ODFFNzcKKzoxMDA1OTAwMEM5MTNCMDAyRThGQjQ2RkFGNzQ2Mzg0MDAwNzQxNEU4ODUKKzoxMDA1QTAwMDk2MUJFODdGRkY3MjFDMzNEMjhBOTY5RjAwODNDMjBFOEYKKzoxMDA1QjAwMEVCMEM5MEU4NzcxQkU4ODNGRjcyMDhCQTQ4MDBFODMzMzkKKzoxMDA1QzAwMEZGNzNBQjIzQ0I4OThFOUEwMDg5OTY5QzAwRkU4NkI1N0IKKzoxMDA1RDAwMDAwQzYwNkM4MTMwMEIwMEFFODY3MEFGQkVCODkxMDE4Q0EKKzoxMDA1RTAwMDA4MjgzM0MwQTAwNTAxOEFDODI0NDA3NTI0QzcwNjdDQUEKKzoxMDA1RjAwMDEyOEU0NUM3MDY0MjEyMDEwMEM2MDY1NDEyMDJCMDA4MDgKKzoxMDA2MDAwMEY2QzEwMTc0MDJCMDA0QTM0NjEyQTI0QzEyQTI5NDEyQzUKKzoxMDA2MTAwMEMzQzcwNjdDMTJCNjQ1QTAwRjAxODRDMDc1MEU2QTAwRTAKKzoxMDA2MjAwMDFGQzYwNjkzMTIxRTlDMEVFOEIxMEM5MEM3MDY0NDEyMUEKKzoxMDA2MzAwMDAxMDBBMzQyMTI4QkQ4QzFFMzA0ODgxRTk0MTJCRUUyQ0IKKzoxMDA2NDAwMDA1MkJGMDhCQzgzM0RCOEJGQjJFQUM4ODg1NDgxMjhBRDgKKzoxMDA2NTAwMEQ4MEMwNUU2RkU4QUUwRUIwMEU0RkUzMkM0QTgzRjc0NDUKKzoxMDA2NjAwMDAzRTk5RTAwRTQwMDg4ODU1MDEyOEFFMDI0MzBCQTEwMjUKKzoxMDA2NzAwMEZGM0MzMDc0MTI4MEZDMDQ3NDBBQkEwNDAzRjYwNjA4QzYKKzoxMDA2ODAwMDAxRkU3NDAzQkEwODBGODg5NTRDMTIwMkZBMzJDMEY2QzQKKzoxMDA2OTAwMEM0MDg3NDAyQjAwMTg4ODU1ODEyOEFDNDNDMzU3NDVCNjIKKzoxMDA2QTAwMDNDMzY3NDU3M0MzNDc0NTMzQzA0NzQ0RjNDMTQ3NDRCQzQKKzoxMDA2QjAwMDNDMTU3NDQ3QTg0MDc0MjVDNjg1NTQxMjA0RDFFN0I0OEMKKzoxMDA2QzAwMDAzOEFDMzg5ODU1QzEyOEFDMzhBRTM4MENDMDE4OTg1NDkKKzoxMDA2RDAwMDY0MTJEMUVGNDdFMjAzRUIxQTkwRTk2Q0ZGQzY4NTU0MzAKKzoxMDA2RTAwMDEyMDJEMUU3OEFFNjhBQzMwQzA0ODk4NTVDMTJEMUVGMzUKKzoxMDA2RjAwMDQ3RTJFNzMzQzA4QUM3QTM0NjEyQzNDNjg1NTQxMjA2MzEKKzoxMDA3MDAwMEVCQkJDNjg1NTQxMjAwMzNDMDg4ODU1MDEyODg4NTRDRDcKKzoxMDA3MTAwMDEyODg4NTU4MTJFQkE2Qzc0NjI2MDIxMjhCNDYxRTg5MDAKKzoxMDA3MjAwMDQ2MDA4OTQ2MjI4QjQ2MjA4OTQ2MjRDNzQ2MUEwMDAwODcKKzoxMDA3MzAwMEMzQzc0NjNDODAwMEM3NDYzODAxMDAxRTU2OEI3NjMwNDIKKzoxMDA3NDAwMDg5NzYwNDg5NzYxNDhFNUUwNjMzQzA4OTA0NDY0Njg5MEMKKzoxMDA3NTAwMDc2MkM4OTQ2M0E4QjQ2MzI0ODQ4ODk0NjJFNUUxRkMzMUUKKzoxMDA3NjAwMDMzQzA4OTQ2NDg4OTQ2NEFDNzQ2NDZBRTAxODk0NjRFNDcKKzoxMDA3NzAwMDhCNDY0NDg5NDY1MDhCNDY0Mjg5NDY0MDg5NDYwOEMzODkKKzoxMDA3ODAwMDMzQzA4OTQ2NzY4OTQ2NzhDNzQ2N0ExMDAwNTYxRThCNTQKKzoxMDA3OTAwMDc2NzA4OTc2MTA4OTc2MEM4RTVFMTJDNzA0MDAwMDhCMDUKKzoxMDA3QTAwMDQ2NzI4OTQ2NzQxRjVFQzM4OTU2MTg4OTU2MDI4OTU2NTcKKzoxMDA3QjAwMDA2ODk1NjBBODk1NjBFODk1NjEyODk1NjE2OEJEODRCQzkKKzoxMDA3QzAwMDRCQzFFMzAyQkYwMjAwODk3RTFFMDNGQjg5N0UzMDAzMUEKKzoxMDA3RDAwMEZCODk3RTQyMDNGQjg5N0U3MDgzRUIwODg5NUUyMDg5NUEKKzoxMDA3RTAwMDVFMzI4OTVFNDQ4OTVFNzI1MEU4MkJGRkU4NzFGRkU4NTMKKzoxMDA3RjAwMDNGRkZFODhCRkY1OEMzQjgzMDc1QzFFODA0MEU1QjAzQjgKKzoxMDA4MDAwMEMzQTNCQTEzODMzRTQyMTIwMDc0MDc4MDNFOTQxMjAwQzEKKzoxMDA4MTAwMDc1MEU2QTAwMUZDNjA2OTMxMjFFOUMwRUU4QkQwQTkwNTQKKzoxMDA4MjAwMEI4MzA3QUMxRTgwNDQwQTNDMDEzMkIwNjEyMDFGN0Q4RjAKKzoxMDA4MzAwMDMzRDI4QkNBOEEwRTk0MTJGN0YxM0Q4MDAwNzcwRTZBOEMKKzoxMDA4NDAwMDAwMUZDNjA2OTMxMjI1OUMwRUU4OTAwQTkwNDgzREZGQjMKKzoxMDA4NTAwMDA3NzIwM0I4RkYwN0EzQzIxMzMzQzk4QTBFOTQxMjMzNzkKKzoxMDA4NjAwMEY2QjgwMDA5MkU4QkFDNDQwMDg5NDY0QzQwNDY0NkUyNUYKKzoxMDA4NzAwMEYzOEEwRTk0MTIzM0Y2OEIxNkMwMTNBMUMyMTMyRThCN0IKKzoxMDA4ODAwMEFDNDQwMEU4MjJGRjAzRDA0NjQ2RTJGMkMzMzNDMDJFNTgKKzoxMDA4OTAwMDhCQUQ0NDAwODk0NjA4NDc0N0UyRjRDMzUxMzNDMDBBOTAKKzoxMDA4QTAwMEMyMkU4QkFENDQwMDg5ODY5RTAwODE0RTM4MDAyMDQ3QzEKKzoxMDA4QjAwMDQ3RkVDNDgwRkMwNDcyMDQzMkU0RkVDMEUyRTM1OTgzQzQKKzoxMDA4QzAwMEU5MTA3NDA1RjdEOUU4QzRGRkMzNTEzM0MwMEFDMjJFM0EKKzoxMDA4RDAwMDhCQUQ0NDAwODk4NjlFMDA4MzRFMzg0MDQ3NDc4MEM0RDQKKzoxMDA4RTAwMDEwNzkwNDMyRTRGRUMwRTJFNjU5ODNFOTEwNzQwNUY3OUEKKzoxMDA4RjAwMEQ5RTg5OUZGQzNFOEQyRkZDMzhEMDg5QzA4Q0EwOEY1NjAKKzoxMDA5MDAwMDA4OEIwRTQyMTIzM0Y2NTE1NjMzREI4QkNCOEE5NDQ4NTgKKzoxMDA5MTAwMDEyOEE4QzRDMTI4QTlDNTQxMjhCRkVDMUU3MDU4NURCMkYKKzoxMDA5MjAwMDc1MDJCMTEwMkVGRjk3RjkwODVFNTk0NkUyRDlDMzAxNEUKKzoxMDA5MzAwMENDMDNEMDAwRTgwMkQwMDBFODAxRDAwMEU4MDBEMDAwRUQKKzoxMDA5NDAwMEU4MDREMEE4REEwMERDMDBERTAxRDgwM0NDMDNDQzAzMzUKKzoxMDA5NTAwMENDMDREMEE4REEyMERDMDBERTAzQ0MwM0NDMDNDQzAwMkUKKzoxMDA5NjAwMEQ4MDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzMDMKKzoxMDA5NzAwMENDMDNDQzAzQ0MwM0NDMDNDQzAzQ0MwM0NDMDNDQzAzRkYKKzoxMDA5ODAwMENDMDREMDAwREEyMERDMDNERTAxRDgwM0NDMDNDQzAzOTYKKzoxMDA5OTAwMENDMDNDQzAwRDgwMENDMDBEMDAwMDA1NjUyMUUwRTFGNTUKKzoxMDA5QTAwMEJFMkYwOTMzRDJGQ0FEODVDMDc0MEQ4QUQ0RUVBRDg1NUYKKzoxMDA5QjAwMEMwNzQwNThBRDRFRUVCRUUxRjVBNUVDM0U0ODA4NEMwOTcKKzoxMDA5QzAwMDc0MTY3ODE0QjAyN0U2RkNCMDExRTYzNEU0RkMzQzI3M0EKKzoxMDA5RDAwMDc1MDZFNDExNzUwMkY4QzNGOUMzODNDMjA2QjBCRkVFMTEKKzoxMDA5RTAwMDgzRUEwMkIwMTBFRTg4ODZBRjAwQjAxMTgzQzIwNEVFMzUKKzoxMDA5RjAwMDgzQzIwMkVFQjAxMzgzQzIwMkVFODNDMjAyRUUyRUExQzYKKzoxMDBBMDAwMDRDMkQ4OTg2OTQwMDgzRUEwRUVFODNDMjAyOEFDNEVFREUKKzoxMDBBMTAwMDgzQzIwNEIwMDNFRTg4ODZBODAwODNFQTA0MzJDMEVFRTUKKzoxMDBBMjAwMDgzQzIwMkIwODlFRTg4ODZBNjAwMEMwNkVFQjA0MEI0MDAKKzoxMDBBMzAwMDM4ODk0NjFDQzc0NjM2MzgwMDgzQzIwNDMyQzBFRTg4NjcKKzoxMDBBNDAwMDg2QTcwMEMzODNDMjA2QjBCRkVFODNFQTAyRUMzQTg2RjMKKzoxMDBBNTAwMEFGMDA3NTI0ODNDMjA0RUMzQzExNzUxQzgzQzIwNkVDMDQKKzoxMDBBNjAwMDNDMTM3NTE0ODNFQTA4OEE4NkE4MDBFRTgzRUEwMkVDMzgKKzoxMDBBNzAwMDI0QzAzQ0MwNzUwMkY4QzNGOUMzMzNDOThCRDE4QkYxRDQKKzoxMDBBODAwMDhBMEU5NDEyQzFFOTAyMkU4QkFDNDQwMEY3NDYzODAwNUUKKzoxMDBBOTAwMDIwNzQwRThBODY5RTAwRTZGRTMyQzBFNjgwNDJFOEZBQTYKKzoxMDBBQTAwMEZFODNDNjA4RTJFMTg1RDI3NDAzRTgwNTA4QzMzM0M5QjIKKzoxMDBBQjAwMDhCRjE4QTBFOTQxMjJFOEJBQzQ0MDBGNzQ2Mzg0MDAwMUUKKzoxMDBBQzAwMDc0MDZFODczMTZFODEyRkY0NjQ2RTJFQUMzMzNDOThCQTAKKzoxMDBBRDAwMEYxOEEwRTk0MTJDMUU5MDIyRThCQUM0NDAwRjc0NjM4MUQKKzoxMDBBRTAwMDAwMjA3NDE2RTg0NjE2RThEMkZFNzMwRTZBMDAxRkM2OTAKKzoxMDBBRjAwMDA2OTMxMjFDOUMwRUU4RTMwNzkwODNDNjA4RTJEOUMzNTQKKzoxMDBCMDAwMDMzQzk4QkYxOEEwRTk0MTIyRThCQUM0NDAwRjc0NjM4MTEKKzoxMDBCMTAwMDQwMDA3NDE2RTgyMTE2RTgyQUZGNzMwRTZBMDAxRkM2MEIKKzoxMDBCMjAwMDA2OTMxMjFDOUMwRUU4QjMwNzkwNDY0NkUyREFDMzBDMEIKKzoxMDBCMzAwMDAwMDAxMDAwMTMxMjAwMDAxNDAwMjgzQzAwMUIzRTAwQUYKKzoxMDBCNDAwMDAwMkEwMDAwMkMwMDAwNDIwMDE0RDgwMDAwREEwMDAwNDcKKzoxMDBCNTAwMDM0MDAxMTM2MDAxMzM4MDAxMTNBMDAxMzAwMDA1NjUwQ0IKKzoxMDBCNjAwMDUyQkUyRjBCMkVBRDg1QzA3NDA2OTIyRUFDRUVFQkY0NjgKKzoxMDBCNzAwMDVBNTg1RUMzNTMyRUExNjAyMkU2RTRFNkYwOEFDNEU2MkEKKzoxMDBCODAwMEVDRTZGOEU4RDhGRkIwNEJFNjEwQjA1MEU2MTJCMDM4MEIKKzoxMDBCOTAwMEU2MTRFOEFFMTVCMDQ2RTYwQUU4QTcxNUIwMUFFNjBBNkMKKzoxMDBCQTAwMEU4QTAxNUIwMjJFNjBBRTg5OTE1RThGRDA2OEJEOEU0MUUKKzoxMDBCQjAwMDE2QTgwNDc1MThFOEYyMDYyQkMzM0QzMjAwNzJGMDZBREQKKzoxMDBCQzAwMDAwMUZDNjA2OTMxMjIzOUMwRUU4MTAwNzkwRThEQTA2NzEKKzoxMDBCRDAwMDJCQzMzRDI0MDA3NzFCQjAzMUU2RkM1NjUxNTVCOTEwQUMKKzoxMDBCRTAwMDAwMkU4QkFDNDQwMDgxNEUzODgwMDA0NjQ2RTJGMjVEMTgKKzoxMDBCRjAwMDU5NUVFODY5RkZFODRCMTVCMDQ2RTYwQUU4NDQxNTVCMjQKKzoxMDBDMDAwMEMzMzNGNjhCMEU0MjEyMkU4QkFDNDQwMEY3NDYzODAwRUQKKzoxMDBDMTAwMDIwNzQwNkU4MTcxNUU4NUJGRjgzQzYyMEUyRTlDMzhCNjIKKzoxMDBDMjAwMEMyMDUwNDAwODk0NjI4MkVBMTRDMkQ4OTg2OEUwMDg5OTQKKzoxMDBDMzAwMDg2OTAwMDg5ODY5MjAwQzY4NkEzMDAwQUM2ODZDMzAwRjUKKzoxMDBDNDAwMDAzNTI4M0MyMDQ4QTg2QTYwMDBDMDZFRTVBODNDMjAyQUYKKzoxMDBDNTAwMEIwMDVFRTg4ODZBNTAwQzNFODAzRkZFOEU1MTRCMDQyQkUKKzoxMDBDNjAwMEU2MEFGNzQ2Mzg4MDAwNzQwNjJFQTE5QzIyRUIwNDJFN0IKKzoxMDBDNzAwMEExNkMyMkM3NDYxQzBDMDA4OTg2OTQwMDg5ODY5NjAwQzgKKzoxMDBDODAwMDg5ODY4RTAwODk4NjkwMDA4OTg2OTIwMEU2RjBFNkU0RTcKKzoxMDBDOTAwMDhBQzRFNkY4RTZFQ0M2ODZDMzAwMDNFOEE1MTRCMDFBRDkKKzoxMDBDQTAwMEU2MEFCMDEwODg4NkE1MDBFNjBDQzMzM0M5OEJGMThBMkEKKzoxMDBDQjAwMDBFOTQxMjJFOEJBQzQ0MDBGNzQ2Mzg0MDAwNzQwNkU4QzAKKzoxMDBDQzAwMDc2MTRFODVBRkY0NjQ2RTJFQUMzMzNDOThCRjE4QTBFMkUKKzoxMDBDRDAwMDk0MTIyRThCQUM0NDAwRjc0NjM4MDAyMDc0MDZFODRDODIKKzoxMDBDRTAwMDE0RTg3NEZGNDY0NkUyRUFDMzkwODMzRTQ0MTIwMDc1NUUKKzoxMDBDRjAwMDE0QjAwMUJBMDYwMUVFMkFDMEVFQjAwMkVFQjAwNEVFNjYKKzoxMDBEMDAwMEI4MDAwMkVCMEZCQTA2MDFCMDQwRUVCODAxMDA4QTBFM0YKKzoxMDBEMTAwMDBFMDFEM0UwQTM4ODEyQzNBMTg4MTJBMzg0MTIyRDIwNTAKKzoxMDBEMjAwMDAwQTM4QTEyMkQyMDAwQTM4MjEyQzcwNjg2MTIyMDAwN0IKKzoxMDBEMzAwMEM3MDY4MDEyMzIwMEMzODMzRTQ0MTIwMDc0NzY4QjBFQzUKKzoxMDBENDAwMDQyMTIzM0Y2OEFBNDU0MTI4NEU0NzQ1RjhBODQ0ODEyRUYKKzoxMDBENTAwMDBDMDRFNkZFRjZDNDA0NzQyNUIwMUJCQTAwMDBFRUVCRUEKKzoxMDBENjAwMDAwMkFDMEJBMDIwMEVFRUIwMEIwMDNFRUVCMDAzMkMwODYKKzoxMDBENzAwMEJBMDIwMEVFRUIwMEJBMDAwMEIwMDBFRUVCMkRCMDFGOUYKKzoxMDBEODAwMEJBMDAwMEVFRUIwMDJBQzBCQTAyMDBFRUVCMDBCMDAzOUUKKzoxMDBEOTAwMEVFRUIwMEQxRTY4QTg0NUQxMkQxRUVGNkQwQkEwMjAwMDUKKzoxMDBEQTAwMEVFRUIwMEJBMDAwMEIwMEFFRUVCMDBFNDA0RUIwMEU0NjYKKzoxMDBEQjAwMDA0NDZFMjkwQzM5MEI4MTQwMEJBM0VGRkVGQjgwNjAwQjQKKzoxMDBEQzAwMEJBMzJGRkVGQjgwRjAwQkEzNEZGRUZCQTM2RkZFRjgzNDUKKzoxMDBERDAwMDNFNDQxMjAwNzUxNkI4MTEwMEJBMzhGRkVGQjgxMjAwODEKKzoxMDBERTAwMEJBM0FGRkVGQjgxQjAwQkEzQ0ZGRUZDM0I4MTEwMEJBMjQKKzoxMDBERjAwMDM4RkZFRkI4MTIwMEJBM0FGRkVGQjgxQjAwQkEzQ0ZGNTkKKzoxMDBFMDAwMEVGQzNCOEZDMDBCQTI4RkZFRkZCODMzRTQ0MTIwMDc0MjYKKzoxMDBFMTAwMDA3QjhDQzAwQkEyOEZGRUZDMzAwRkZGRjIwMjQyOEZGNEIKKzoxMDBFMjAwMDJDRkZGRjMwMzQzOEZGRkYzQzkwM0MwRjc3MEVCQjE5OEUKKzoxMDBFMzAwMDBFMkVENzNDRkY3NDA1OEFEOEY4QzM5MDJBREJGOUMzN0QKKzoxMDBFNDAwMDgzM0U0NDEyMDA3NDI3QTAwNjAxODAyNjA2MDEzMDgwRUMKKzoxMDBFNTAwMDNFMDYwMTMwNzUxOEI5MDIwMEJGQzQxM0JBMDYwMUVDOTIKKzoxMDBFNjAwMEE4MjA3NUY4QkEwNDAxRURBQkUyRjFFQjE2OTBCOTA0RDUKKzoxMDBFNzAwMDAwQkZDNDEzQkEwNjAxRUNBODIwNzVGOEJBMDQwMUVDNEYKKzoxMDBFODAwMEFBRTJGMUZBOTBCRUM0MTNBRDgwRTQzRjgwRkMwMjc0ODQKKzoxMDBFOTAwMDBFNkEwMDFGQzYwNjkzMTIwQTlDMEVFODNFMDQ5MEFEMkYKKzoxMDBFQTAwMDNDMEY3NUVEOEFDNEU4ODFGRjcyRTY4ODFFMUEwMUM2MDAKKzoxMDBFQjAwMDA2OEUxMjAwQjAwMDBBMDYxQTAxQkEwMDAxRUVDNjA2M0MKKzoxMDBFQzAwMDhGMTI0MDgzM0U0NDEyMDA3NTA2QjgwQzAwRUIwNDkwNkMKKzoxMDBFRDAwMEI4NEMwMEJBMjhGRkVGQzM4MzNFNDQxMjAwNzUwMUMzMkIKKzoxMDBFRTAwMEExNTAxMjBCMDY1MjEyMEFDNEE4MDg3NEYyQTAwRjAxRjYKKzoxMDBFRjAwMDJBRTQ1MEZGMzZCQTEzMUZFODUwNTY4M0M0MDI2QTAwMzIKKzoxMDBGMDAwMDFGMzNDMEEzQkMxM0EwMEYwMUEzQkUxMzhCMUVCQzEzQzEKKzoxMDBGMTAwMDhBODc1MDEyRjY4NzUwMTIwODc0MEQyNDA3OEFFMEJFQTMKKzoxMDBGMjAwMENDMDBBMEJDMTNFODk0M0RGRjA2QkMxM0ZGMEVCRTEzMUIKKzoxMDBGMzAwMDc1REFDMzkwMUUzM0MwOEVEOEIwMDFFODU0M0QxRkMzOEMKKzoxMDBGNDAwMDMzQzk4QkYxOEEwRTk0MTIyRThCQUM0NDAwQzc0NjYyRDMKKzoxMDBGNTAwMDM4NDRDNzQ2N0NGQzNCQzc0NjdFRTIzQkM3ODY4MDAwRTAKKzoxMDBGNjAwMEVDM0NFOEFCMTZDNjg2QzAwMDExODM3RTA4MDA3NDA3MEYKKzoxMDBGNzAwMDUxNTZFODMzMzM1RTU5NDY0NkUyQ0RDMzMzQzk4QkYxNEYKKzoxMDBGODAwMDhCRjk4QTBFOTQxMkMxRTkwMkUzMTMyRThCQUM0NDAwNTQKKzoxMDBGOTAwMDhBODY5RTAwODg4NTZDMTI4M0M2MDg0N0UyRURDM0ZBRjQKKzoxMDBGQTAwMEZDQjBDMEJBMDAwMUVFMzNDMDhFRDg4RUMwOEVEMEJGNjgKKzoxMDBGQjAwMDE2MDFCOUNDNzcyQkNGRDFFOUYzQUJCQzQwMTJFOEQ5RkQKKzoxMDBGQzAwMDAyRTg3MDNDQkVDQzBGRThGMjNDRjQ5MDMzQzA4RUQ4RkYKKzoxMDBGRDAwMDhFQzA4RUQwRjYwNjBBMDE4MDc0MEJCRTM1NTVFOERCNTQKKzoxMDBGRTAwMDNDQjAwMUU4QUMzQ0U4QjMwMEU4RjZGNUU4MDhGOEU4MDYKKzoxMDBGRjAwMDBGRjlFODg1RkFFOEI2RkFFOEVGRkNFOEMyMTBFODAzNzIKKzoxMDEwMDAwMDNDRThCMkZERTgzMEZERTg1NDAyQzYwNjhGMTJDMEU4QTUKKzoxMDEwMTAwMEJCRkFFOEVCRkFFOEU5RkJFOEFGRkNFODhERkNFODFGNzcKKzoxMDEwMjAwMEZGRTg1OEZGRThEQkZERTgxNkZFMzNDMEJFNUEwNUU4Q0UKKzoxMDEwMzAwMDhBM0NFOEEzRkVFOEUwRkNGQkJFQTQ0NEU4N0QzQ0U5NzIKKzoxMDEwNDAwMENBMkQ1Njk4OEJGMDhCNDI1Mjg1QzA3NTI3Qzc0MjUyRTUKKzoxMDEwNTAwMDAxMDA1MzM2OEI5QzJDMDFGNkMzMDE3NTBDMzY4OTY4NTAKKzoxMDEwNjAwMDUyMzY4OUFDMkMwMTVCNUVDMzM2ODlBQzJDMDEzNjg5QzMKKzoxMDEwNzAwMEFDMUMwMTVCNUVDMzU2OTg4QkYwMzNFRDM2OEI4NDFDNDEKKzoxMDEwODAwMDAxQTgwMTc1MTU4QkU4MzNDMDg3NDI1MjM2ODk4NDFDNEMKKzoxMDEwOTAwMDAxQTgwMTc0MDUzNjg5ODQyQzAxNUVDMzU2NTEzM0Y2Q0MKKzoxMDEwQTAwMEI4MDEwMEI5MDgwMDg5ODQxQzAxODk4NDJDMDE0NjQ2RDYKKzoxMDEwQjAwMEUyRjQ1OTVFQzM5MEJCMDEwMDhCRThGRjRFNkU3NDBBRTgKKzoxMDEwQzAwMDhCREQ4QjQ2NThBODAxNzRGMEMzOEI0NjQ4QTkwODAwRjUKKzoxMDEwRDAwMDc0NDVGNzQ2Mzg0MDAwNzQyN0U4NUMxMDgwQzIwNjhBRTEKKzoxMDEwRTAwMDg2QTgwMDI0QkY4ODg2QTgwMEVFNjBCMEZFRTg4NjMyOUQKKzoxMDEwRjAwMDYxQjAwMkU4NENGRjhCNDY0ODI0Rjc4OTQ2NDhFQjE3NUQKKzoxMDExMDAwMEU4MkExMDgxNEUyNjAwNDA4QTg2QTUwMDBDMDI4ODg2QjcKKzoxMDExMTAwMEE1MDBFNjBDOEI0NjQ4QTkwNDAwNzQxNEIwMDJFODIxMkYKKzoxMDExMjAwMEZGOEI0NjQ4MjRGQjg5NDY0ODYwQjBERkU4NDczMjYxQzAKKzoxMDExMzAwMDMzQzA4NzQ2NThGNkMzMDE3NTBCMzY4OTQ3NThBODAxNTYKKzoxMDExNDAwMDc1MERFOTc0RkZBMzIyMDFBODAxNzUwM0U5NkFGRjg5RkYKKzoxMDExNTAwMDFFMzIwMUMzQkIwMTAwOEJFOEY3NDYzODQwMDA3NDE1MEUKKzoxMDExNjAwMEU4RDUwRjgwQzIwQUVDQTg0MDc1MEE4QkREOEI0NjU2ODUKKzoxMDExNzAwMEE4MDE3NEUzQzM4QjQ2MjY4MEU0RkU4MENDMDI4OTQ2MzYKKzoxMDExODAwMDI2QjAwMkU4QkNGRTMzQzA4NzQ2NTZGNkMzMDE3NTBBOTYKKzoxMDExOTAwMDM2ODk0NzU2QTgwMTc1MEJFQkJEQTMyMDAxQTgwMTc1NDAKKzoxMDExQTAwMDAyRUJCNDg5MUUzMDAxQzM2MDFFMDYyQkMwOEVEOEEwOEUKKzoxMDExQjAwMDkwMTI4NEMwNzU0OUExMjIwMUE4MDE3NTAzRThGNkZFQ0EKKzoxMDExQzAwMEExMjAwMUE4MDE3NTAzRTg4QUZGQTFBQzEzNDg3ODA1QTYKKzoxMDExRDAwMDc0NDVBM0FDMTNBMUFFMTM0ODc4MDU3NDUxQTNBRTEzQTQKKzoxMDExRTAwMEExQjAxMzQ4NzgwNTc0NjNBM0IwMTNBMTdFMTI0MDc4QjAKKzoxMDExRjAwMDAzQTM3RTEyQjgwMDgwQkEyMkZGRUYwNzFGNjFDRkEwQzEKKzoxMDEyMDAwMDkxMTI0MDNDMDI3MjBCMzNDMEEyOTExMkZGMTY3QzEyNjUKKzoxMDEyMTAwMEVCQTRBMjkxMTJFQjlGQTA4RTEyMzIwNjhGMTJBMjhFMjcKKzoxMDEyMjAwMDEyMEEwNjFBMDFCQTAwMDFFRUI4MkMwMUVCQTQ4MzNFQTMKKzoxMDEyMzAwMDg0MTIxMDcyMTFCQTI4RkZFRDBDODFFRkU4NTMzN0JBMEYKKzoxMDEyNDAwMDI4RkZFRDI0N0VFRkI4MDQwMEVCOTJDNjA2OEQxMjAxNTQKKzoxMDEyNTAwMEU4M0YzN0M2MDY4RDEyMDBBMUIyMTNFQjhCOTA4QTFFQjEKKzoxMDEyNjAwMDBCMDEyQUZGNkJDMzE5QkE2MkZGRUZCODBBMDBCQTYwMUMKKzoxMDEyNzAwMEZGRUZCODAxRTBCQTY2RkZFRkI4RkZGRkJBNTJGRkVGMjkKKzoxMDEyODAwMEI4MDlDMEJBNTZGRkVGQzcwNkFDMTMyQzAxQzcwNkFFQUIKKzoxMDEyOTAwMDEzMDQwMEM2MDY5MTEyMDBDMzkwOEExRTBCMDEyQUZGOTgKKzoxMDEyQTAwMDZCQzMwNUQxRThBMzE4MDFDMzkwNTJCQTUwRkZFRDVBQTEKKzoxMDEyQjAwMEMzOTA1MzUxOEIxRTE4MDFCOTMyMDU5MEUyRkU0Qjc1NTUKKzoxMDEyQzAwMEY3NTk1QkMzQjA4MEJBMDAwMTBBMDYxQTAxRUVDMzkwNTkKKzoxMDEyRDAwMEIwNDBFQkYyQjBDMEVCRUVCMDAwRUJFQUZBNjAwNjFFRjUKKzoxMDEyRTAwMDE2MkJEQjhFREIyRUExQkE0QzJFQTM5MjRDQTA5MzEyQjAKKzoxMDEyRjAwMDk4OEJFODg5MjYyRDdBODAzRUNBMTMwMDc0MDNFOTZCMjcKKzoxMDEzMDAwMDQyRThDMEZGRThBQkZGRThBOEZGQjAyMEM2MDY5MDEyOTUKKzoxMDEzMTAwMDAwRkYxNjdDMTI4QkZEODNGRjBBNzIxMUU4QjlGRkU4MEIKKzoxMDEzMjAwMDkwRkZFOEFCRkZFODhBRkY4M0VGMEFFQkVBMEJGRjc0NUMKKzoxMDEzMzAwMDBGRThBNEZGRTg3QkZGRTg5QUZGRTg3NUZGNEY3NUYxMUYKKzoxMDEzNDAwMEU4OTVGRkU4NkNGRkVCQjk4QTg2QTUwMDI0RkRFRTg4REUKKzoxMDEzNTAwMDg2QTUwMEMzOEE4NkE2MDAwQzAyRUVDMzhCNzYzOEY3RkEKKzoxMDEzNjAwMEM2MDEwMDc0RUY4QjRFMzY4QjQ2MkUzQkMxNzMwMjhCNDkKKzoxMDEzNzAwMEM4MkJDMTg5NDYyRTAxNEUzNEM0N0UwNDI2MDEwRDhCMzQKKzoxMDEzODAwMDdFMkM4M0VBMDRGMzZDOEVDMTg5N0UyQzNCNDYzQzcyMzIKKzoxMDEzOTAwMDEyRjdDNjIwMDA3NTBCODNDRTIwODk3NjM4QjAwMEU4OUUKKzoxMDEzQTAwMEEwRkNDM0Y3QzYwNDAwNzQxQjhCRDg4M0NFMTA4OTc2Q0IKKzoxMDEzQjAwMDM4OEE4NkE3MDAyNEZFODg4NkE3MDA4M0MyMDhFRTgzQTkKKzoxMDEzQzAwMEVBMDg4QkMzM0Q0MDAwNzIwMUMzODE0RTM4MDAwNDgzOUMKKzoxMDEzRDAwMEMyMDI4QTg2QTUwMDI0RkE4ODg2QTUwMEVFQzM4QTg2MDIKKzoxMDEzRTAwMEE2MDAwQzAyRUVDM0Y3NDYzODAxMDA3NEYxOEI0RTJFQjYKKzoxMDEzRjAwMDMyREI4QUJFQTMwMDgzQzIwNkM0NzYwNDhCN0UyQzgzQjQKKzoxMDE0MDAwMEY5MDg3MjJDRUNBODAxNzQxNjhBRTA4M0VBMEFFQzgzQ0UKKzoxMDE0MTAwMEMyMEE4NEU3NzU1MUFBRkVDMzQ5ODNGOTA4NzNFNTMyMEQKKzoxMDE0MjAwMEZGMjYwMTFDMDE1RTM0ODk3NjA0ODk0RTJFODk3RTJDQUMKKzoxMDE0MzAwMDNCNEUzQzcyMTFGNjQ2MzgyMDc0MDFDMzgzNEUzODIwNkYKKzoxMDE0NDAwMEIwMDBFOEZERkJDM0Y2NDYzODA0NzQxNTgzNEUzODEwMkYKKzoxMDE0NTAwMDhBODZBNzAwMjRGRTg4ODZBNzAwODNFQTAyRUU4M0MyNUMKKzoxMDE0NjAwMDAyM0Q0MDAwNzI1REMzMzJGRjI2MDMxQzg1REI3NDA5MTgKKzoxMDE0NzAwMDI2ODkxQzhCRjc0NzQ3NDk0OTgwRTQxRTgwQ0NDMDI2NEIKKzoxMDE0ODAwMDg5MDRGNkM0MTA3NDI3OEI3NjM4RjdDNjAwMTA3NDBCRTUKKzoxMDE0OTAwMDUwRkU4NkIyMDBCMDBBRThBOEZCNThGN0M2MDAwMTc0RjcKKzoxMDE0QTAwMDBERTg4MjI2OEI3NjM4OEI0RTJFOEI3RTA0QUI4QkY3MjUKKzoxMDE0QjAwMDMzQzBBQjMyREI4QUJFQTMwMDQ5NDk4M0Y5MDg3MjE3RjcKKzoxMDE0QzAwMEU5NDFGRjgxNEUzODAwMDQ4M0MyRjg4QTg2QTUwMDI0RDIKKzoxMDE0RDAwMEZBODg4NkE1MDBFRUMzRTk0NUZGODNDMjA4RUM4ODg2M0EKKzoxMDE0RTAwMEFBMDBDMEU4MDQ4QUUwOEFDODg2ODZBOTAwMzJFMDhCOTgKKzoxMDE0RjAwMDVFM0U4NEUzNzQ0RjhBQzE4QjRFMjZGNkM1MDQ3NDBDOUQKKzoxMDE1MDAwMEE4MDg3NDA1ODBFMUJGRUIwMzgwQzk0MEY2QzUwODc0RTQKKzoxMDE1MTAwMDBDQTgwMjc0MDU4MEUxN0ZFQjAzODBDOTgwODg0RTI2MDkKKzoxMDE1MjAwMDhCRjA4QTg2QTUwMDg0Qzk3NDA4QTgwMjc0MTUyNEZENkUKKzoxMDE1MzAwMEVCMDZBODAyNzUwRDBDMDI4ODg2QTUwMDgzRUEwQUVFNjgKKzoxMDE1NDAwMDgzQzIwQThCQzY4NEU3NzUwMUMzQzY4NkJBMDAwMUIwQTAKKzoxMDE1NTAwMDBFRThFRUZBRjc0NjM4MDAwMjc0RUU4MzdFMkUwNjcyMkQKKzoxMDE1NjAwMEU4OEFBNkFBMDBDNDVFMDQ4QjdFMkNCMEZGQUFCMDAyNTMKKzoxMDE1NzAwMEFCMjY4MzA3MDM4MzZFMkUwMzg5N0UyQ0Y2NDYzODIwMjQKKzoxMDE1ODAwMDc0MDFDMzgzNEUzODIwQjAwMEU4QjZGQUMzOTA4M0VBRjIKKzoxMDE1OTAwMDA4RTlCNEZEODNDMjA2OEI1RTI2RjZDM0MwNzVFRjhCRTcKKzoxMDE1QTAwMDRFMUNFQzg4ODZBNDAwODNFQTBBQTgyMDc1MDI4QUNEMjYKKzoxMDE1QjAwMDMyRUQ4QjQ2MUEzQkM4NzMxODAxNEUyQTJCQzE4OTQ2NUYKKzoxMDE1QzAwMDFBQzU3NjAwRjM2RThFRDk4OTc2MDAzRDIwMDA3MjMwMDAKKzoxMDE1RDAwMEMzODVDMDc0MzE4QkM4MDE0NjJBQzU3NjAwRjM2RThFNzAKKzoxMDE1RTAwMEQ5ODBDQjAyODk1RTI2RTgzMkYxRjZDNzAxNzUxNjgzRjEKKzoxMDE1RjAwMEMyMDJFODUzRkRGNkM3MTA3NTBCQjAwMkU4NDNGQUMzMDgKKzoxMDE2MDAwMEY2QzcwMTc0RjBDMzgwQ0IwMjg5NUUyNkY2QzcwMTc0NjkKKzoxMDE2MTAwMERFODNDMjAyRTgzMUZERjY4NkE0MDA0MDc0MEI4MEU3NDkKKzoxMDE2MjAwMEZFODBDRjAyODk1RTI2RUJDQ0IwMDRFODE0RkFDM0MwN0EKKzoxMDE2MzAwMEMyQzhDQUM0QzZDQ0NFRDBEMkQ4REFENEQ2RENERTkwRUEKKzoxMDE2NDAwMEU5MEUwMUU0QzQ4QUUwRTRDNDhCRDA4M0Y5MDg3MkYwQTcKKzoxMDE2NTAwMDI2ODMzRjAwNzQwNDhCREY0OTQ5OEJGQjhBREU4M0UzREEKKzoxMDE2NjAwMDBGMkU4QUE3MkYxNkFCRjZDNDEwNzQyNEY3QzYwMDEwRUQKKzoxMDE2NzAwMDc0MEI1MEZFODZCMjAwQjAwQUU4QzZGOTU4RjdDNjAwRUYKKzoxMDE2ODAwMDAxNzQwREU4QTAyNDhCNzYzODhCNEUyRThCN0UwNEFCMzQKKzoxMDE2OTAwMDg5N0UwNDMzQzBBQjQ5NDk4OTRFMkU4OTdFMkM4QkMxOEIKKzoxMDE2QTAwMEVCNEU5MEVCOUU5MEU0RDY4NEMwNzk2M0U2RDA4QUM4NzYKKzoxMDE2QjAwMDI1MDMwMDAzRDhEMUUzMkU4QkFGNDQwMDg4OEVBRTAwMDMKKzoxMDE2QzAwMDhCNEUyRUM0NUUwNDhCN0UyQzhCNzYzOEU0ODYyNDA3RUEKKzoxMDE2RDAwMDNDMDM3NUNGRTQxQzkxM0JDMTczMDI4QkM4MkJDMTg5QkQKKzoxMDE2RTAwMDQ2MkUwMTRFMzQyNjAxMEZCQUM0MDBGMzZDODk3RTJDQkQKKzoxMDE2RjAwMDNCNDYzQzcyMUNGN0M2MjAwMDc1MEI4M0NFMjA4OTc2RDIKKzoxMDE3MDAwMDM4QjAwMEU4M0NGOThBODZBRTAwMjQzRkU2RDZDM0Y5M0IKKzoxMDE3MTAwMEMzRjdDNjBBMDA3NDM1RjdDNjEwMDA3NTJGODNDRTEwQzQKKzoxMDE3MjAwMDg5NzYzOEY3QzYwMjAwNzQwRTUwRTREODI0RkVFNkQ4NTUKKzoxMDE3MzAwMDU4RjdDNjA4MDA3NDE1NTA1MUI5RTgwM0U0MEE4NEMwOEMKKzoxMDE3NDAwMEUwRkE4NEMwNzUwNEIwMjRFNjBBNTk1ODNENDAwMDczOUQKKzoxMDE3NTAwMEI1OEE4NkE1MDAyNEVGODg4NkE1MDBFNjBDODFDRTEwMDgKKzoxMDE3NjAwMDA0ODk3NjM4RUJBMDAwMDgwNDBDMDEwOTA1MEQwMjBBNzMKKzoxMDE3NzAwMDA2MEUwMzBCMDcwRjAwNDA4MEMwMjA2MEEwRTAxMDUwNTEKKzoxMDE3ODAwMDkwRDAzMDcwQjBGMEU0RDJFNkQwOEFDODI1MDMwMDAzRDAKKzoxMDE3OTAwMEQ4RDFFMzJFOEJBRjQ0MDA4ODhFQUUwMEU0RDhDMEU4RTkKKzoxMDE3QTAwMDA0OEJEODJFOEE4NzY2MTc4QUUwOEFDODg2ODZBOTAwQTUKKzoxMDE3QjAwMDMyRTBFNDk4OEI1RTNFODRFMzc0NTQ4QUMxOEI0RTI2RkIKKzoxMDE3QzAwMEY2QzUwNDc0MENBODA4NzQwNTgwRTFCRkVCMDM4MEM5NUEKKzoxMDE3RDAwMDQwRjZDNTA4NzQwQ0E4MDI3NDA1ODBFMTdGRUIwMzgwMTUKKzoxMDE3RTAwMEM5ODA4ODRFMjY4QkYwOEE4NkE1MDBGNkMxRkQ3NDA4NTQKKzoxMDE3RjAwMEE4MDY3NDE5MjRGOUVCMEZBODA2NzUxMUY2QzUwMTc1MzIKKzoxMDE4MDAwMDA0MEMwNEVCMDIwQzAyODg4NkE1MDBFNjBDOEJDNjg0NEYKKzoxMDE4MTAwMEU3NzUwOThBODZBRTAwMjQzRkU2RDJDM0M2ODZCQTAwQzEKKzoxMDE4MjAwMDAxQjAwRUU4MUNGOEY3NDYzODAwMDI3NEU2ODM3RTJFRkQKKzoxMDE4MzAwMDA2NzJFMDhBODZBOTAwOEFFMDg2ODZBQTAwOEFDODMyRjMKKzoxMDE4NDAwMEM0ODBDOTBCMjJDMUMwRTQwNDBBRTBDNDVFMDQ4QjdFREMKKzoxMDE4NTAwMDJDQjBGRkFBQjAwMkFCMjY4MzA3MDM4MzZFMkUwMzg5NDgKKzoxMDE4NjAwMDdFMkNGNjQ2MzgyMDc1QUI4MzRFMzgyMEIwMDBFOEQxODgKKzoxMDE4NzAwMEY3RUJBMDkwRTQxMjI0REZFNjEyODFFM0ZFOUY4OTVFN0QKKzoxMDE4ODAwMDI2ODM2NjQ4RjdFQjczOTBGNkM3MjA3NUU3RTQxMjBDRTEKKzoxMDE4OTAwMDIwRTYxMjMyQzBFNkM2QjA4M0U2QzY4MENGMjA4OTVFNUQKKzoxMDE4QTAwMDI2OEE4NkE1MDAwQzAyODg4NkE1MDBFNjBDRUI3NDkwQkIKKzoxMDE4QjAwMEY2Qzc0MDc1RDNFNDEyMEMyMEU2MTIzMkMwRTZDNkIwN0IKKzoxMDE4QzAwMDgxRTZDNjgwRTdERjgwQ0IwMTg5NUUyNkIwMDZFODcxM0QKKzoxMDE4RDAwMEY3OTA4QTg2QTUwMDI0RjlFNjBDODg4NkE1MDBFQjQzREMKKzoxMDE4RTAwMEU0RDRFNkQwOEJGODI1MDMwMDAzRDhEMUUzMkU4QkFGRTgKKzoxMDE4RjAwMDQ0MDA4QjVFMjZGNkM3NjA3NUI2RjZDM0MwNzVEM0JBRDIKKzoxMDE5MDAwMEM2MDA4QjRFMUM4QjQ2MUEzQkM4NzMxRTAxNEUyQTJCRjkKKzoxMDE5MTAwMEMxODk0NjFBQzU3NjAwRjM2RThFRDk4OTc2MDAzRDIwQkUKKzoxMDE5MjAwMDAwNzIzRDhCQzcyNDNGRTZENEMzODVDMDc0Mzk4QkM4OTEKKzoxMDE5MzAwMDAxNDYyQUM1NzYwMEYzNkU4RUQ5ODNDQjAyODk1RTI2RDYKKzoxMDE5NDAwMEU4RDlFREY2QzcwMTc1Mzk4QTg2QTUwMDI0RjlFNjBDQjkKKzoxMDE5NTAwMDg4ODZBNTAwRjZDNzEwNzVDQUIwMDJFOEU0RjZFQkMzQTYKKzoxMDE5NjAwMEY2QzcwMTc0RUZFQkJDRjZDNzAxNzREQzhBODZBNTAwRUMKKzoxMDE5NzAwMEE4MDI3NDExODFFM0ZGRkU4MUNCMDAwMjg5NUUyNkVCOTEKKzoxMDE5ODAwMEM3OEE4NkE1MDAyNEZCMEMwMkU2MEM4ODg2QTUwMEVCMUUKKzoxMDE5OTAwMDkyOTBGREY3REY3RkZFRkJFRkJGMDAwNDAwMDQwNTA0MUIKKzoxMDE5QTAwMDA1MDQwMTA0MDAwNDA1MDQwNTA0MDYwNDA2MDQwNTA0RjYKKzoxMDE5QjAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDIwNDAwMDQwNTA0RTUKKzoxMDE5QzAwMDA1MDQwMTA0MDAwNDA1MDQwNTA0MDYwNDA2MDQwNTA0RDYKKzoxMDE5RDAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDcwNDA3MDQwNTA0QjkKKzoxMDE5RTAwMDA1MDQwNzA0MDcwNDA1MDQwNTA0MDYwNDA2MDQwNTA0QTkKKzoxMDE5RjAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDcwNDA3MDQwNTA0OTkKKzoxMDFBMDAwMDA1MDQwNzA0MDcwNDA1MDQwNTA0MDYwNDA2MDQwNTA0ODgKKzoxMDFBMTAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDMwNDAwMDQwNTA0ODMKKzoxMDFBMjAwMDA1MDQwMTA0MDAwNDA1MDQwNTA0MDYwNDA2MDQwNTA0NzUKKzoxMDFBMzAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDIwNDAwMDQwNTA0NjQKKzoxMDFBNDAwMDA1MDQwMTA0MDAwNDA1MDQwNTA0MDYwNDA2MDQwNTA0NTUKKzoxMDFBNTAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDcwNDA3MDQwNTA0MzgKKzoxMDFBNjAwMDA1MDQwNzA0MDcwNDA1MDQwNTA0MDYwNDA2MDQwNTA0MjgKKzoxMDFBNzAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MDcwNDA3MDQwNTA0MTgKKzoxMDFBODAwMDA1MDQwNzA0MDcwNDA1MDQwNTA0MDYwNDA2MDQwNTA0MDgKKzoxMDFBOTAwMDA1MDQwNjA0MDYwNDA1MDQwNTA0MzNEQjhBRDg4QTg3OTYKKzoxMDFBQTAwMDZDMTJFNkZFQzFFMzAyRTRDRUE4MDQ3NTA5QTgwMjc0MzQKKzoxMDFBQjAwMDAzRTkyQ0ZFRjlDMzUwNTNFOENCRkM1QjU4QTgwMjc0MzEKKzoxMDFBQzAwMDAzRTkxQ0ZFRjhDMzMzREI4QUQ4OEE4NzZDMTJFNkZFNzIKKzoxMDFBRDAwMEMxRTMwMkU5RDBGQjlBMUFDNjFBMDAwMDAyMDAwNDAwMTIKKzoxMDFBRTAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwRDgKKzoxMDFBRjAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEEwMDAyMDAwNDAwQzYKKzoxMDFCMDAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwQjcKKzoxMDFCMTAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEMwMDAyMDAwNDAwQTMKKzoxMDFCMjAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwOTcKKzoxMDFCMzAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEEwMDAyMDAwNDAwODUKKzoxMDFCNDAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwNzcKKzoxMDFCNTAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEUwMDAyMDAwNDAwNjEKKzoxMDFCNjAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwNTcKKzoxMDFCNzAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEEwMDAyMDAwNDAwNDUKKzoxMDFCODAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwMzcKKzoxMDFCOTAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEMwMDAyMDAwNDAwMjMKKzoxMDFCQTAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwMTcKKzoxMDFCQjAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMEEwMDAyMDAwNDAwMDUKKzoxMDFCQzAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwMDgwMDAyMDAwNDAwRjcKKzoxMDFCRDAwMDAyMDAwNjAwMDIwMDA0MDAwMjAwQzM5MERBMTQ5NDE1MEIKKzoxMDFCRTAwMDVDMTNFNjEzREExQkRBMUJFNjEzREExQjhCOTQ2NDEyMjAKKzoxMDFCRjAwMEMxRTYwNEE4MDE3NDM1NTAzM0MwOEFDMkU2RkVFNEEwRjEKKzoxMDFDMDAwMDg1QzA3NDI3OEJEODJFOEE5RkRBMUE1MjU2MkU4QkE4M0QKKzoxMDFDMTAwMDQ0MDA4QjU2MjhFQ0E4MDE3NTBEODg4NkFEMDAyNDBFNzMKKzoxMDFDMjAwMDhBRDgyRUZGOTdEQzFCNUU1QUVCQ0Q1OEE4MDI3NDM2N0IKKzoxMDFDMzAwMDgzQzYxMDMzQzA4QUM2RTZGRUU0QTA4NUMwNzQyNzhCMzUKKzoxMDFDNDAwMEQ4MkU4QTlGREExQTUyNTYyRThCQTg0NDAwOEI1NjI4MUIKKzoxMDFDNTAwMEVDQTgwMTc1MEQ4ODg2QUQwMDI0MEU4QUQ4MkVGRjk3NUEKKzoxMDFDNjAwMERDMUI1RTVBRUJDREMzOTAzMkU0OEJEODhCRDAyRThBMkUKKzoxMDFDNzAwMDlGOUExOTJFMjI5NzkyMTk1NjUyOEFDMzI0MDMwM0M2OUIKKzoxMDFDODAwMDgwRTMwNEQwRUIyRUZGOTdENjFBNTg1RUE5NTUwMDc1NTUKKzoxMDFDOTAwMEQ5QzM2MDFFMDYyQkMwOEVEOEExNUMxMkU2RkVFNDAwRkMKKzoxMDFDQTAwMDIyQzQ3NDA4MzNGNkU4QkZGRkVCRUU5MEU0MDQwN0U0QzcKKzoxMDFDQjAwMDA0MUZCODAwODBCQTIyRkZFRjYxQ0Y5MDYwMUUwNjJCOTAKKzoxMDFDQzAwMEMwOEVEOEExNUUxMkU2RkVFNDAwMjJDNDc0MDhCRTA0RjEKKzoxMDFDRDAwMDAwRTg5NEZGRUJFREU0MDQwN0U0MDQxRkI4MDA4MEJBQzkKKzoxMDFDRTAwMDIyRkZFRjYxQ0Y5MDYwMUUwNjJCQzA4RUQ4QTE1QzEyNDAKKzoxMDFDRjAwMEU2RkVFNDAwMjJDNDc0MTgzM0Y2RTg2QkZGQTE2MDEyMUMKKzoxMDFEMDAwMEU2RkVFNDAwMjJDNDc0RTVCRTA4MDBFODVBRkZFQkRERkQKKzoxMDFEMTAwMEExNjAxMkU2RkVFNDAwMjJDNDc1RURFNDA0MDdFNDA0QzkKKzoxMDFEMjAwMEExNUMxMkU2RkVFNDA0MUZFNDA0QjgwMDgwQkEyMkZGQkUKKzoxMDFEMzAwMEVGNjFDRjkwNjAxRTA2MkJDMDhFRDhBMTVFMTJFNkZFMkEKKzoxMDFENDAwMEU0MDAyMkM0NzQxOUJFMDQwMEU4MUNGRkExNjIxMkU2N0MKKzoxMDFENTAwMEZFRTQwMDIyQzQ3NEU0QkUwQzAwRTgwQkZGRUJEQ0ExM0YKKzoxMDFENjAwMDYyMTJFNkZFRTQwMDIyQzQ3NUVERTQwNDA3RTQwNEExNzcKKzoxMDFENzAwMDVFMTJFNkZFRTQwNDFGRTQwNEI4MDA4MEJBMjJGRkVGMUUKKzoxMDFEODAwMDYxQ0Y2MDFFMDYyQkMwOEVEOEExNUMxMkU2RkVFNDgwRjcKKzoxMDFEOTAwMDg0QzQ3NDA4MzNGNkU4NTNGRUVCRUU5MEI4MDA4MEJBQzIKKzoxMDFEQTAwMDIyRkZFRjA3MUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExQzcKKzoxMDFEQjAwMDVFMTJFNkZFRTQ4MDg0QzQ3NDA4QkUwMjAwRTgyQ0ZFRDUKKzoxMDFEQzAwMEVCRURCODAwODBCQTIyRkZFRjA3MUY2MUNGOTA2MDFFRDUKKzoxMDFERDAwMDA2MkJDMDhFRDhBMTYwMTJFNkZFRTQ4MDg0QzQ3NDA4OEQKKzoxMDFERTAwMEJFMDQwMEU4MDZGRUVCRURCODAwODBCQTIyRkZFRjA3NjQKKzoxMDFERjAwMDFGNjFDRjkwNjAxRTA2MkJDMDhFRDhBMTYyMTJFNkZFMzYKKzoxMDFFMDAwMEU0ODA4NEM0NzQwOEJFMDYwMEU4RTBGREVCRURCODAwOTEKKzoxMDFFMTAwMDgwQkEyMkZGRUYwNzFGNjFDRjkwNjAxRTA2MkJDMDhFOTUKKzoxMDFFMjAwMEQ4QTE1QzEyRTZGRUU0MDAyMkM0NzQxODMzRjZFODM3NDkKKzoxMDFFMzAwMEZFQTE2MDEyRTZGRUU0ODA4NEM0NzRFNUJFMDQwMEU4RkUKKzoxMDFFNDAwMEFBRkRFQkREQTE2MDEyRTZGRUU0ODA4NEM0NzVFREExN0QKKzoxMDFFNTAwMDVDMTJFNkZFRTQwNDA3RTQwNDFGQjgwMDgwQkEyMkZGMjcKKzoxMDFFNjAwMEVGNjFDRjkwNjAxRTA2MkJDMDhFRDhBMTVFMTJFNkZFRjkKKzoxMDFFNzAwMEU0MDAyMkM0NzQxOUJFMDQwMEU4RUNGREExNjIxMkU2N0QKKzoxMDFFODAwMEZFRTQ4MDg0QzQ3NEU0QkUwNjAwRTg1RkZERUJEQ0ExRTAKKzoxMDFFOTAwMDYyMTJFNkZFRTQ4MDg0QzQ3NUVEQTE1RTEyRTZGRUU0MDMKKzoxMDFFQTAwMDA0MDdFNDA0MUZCODAwODBCQTIyRkZFRjYxQ0Y2MDFFNzAKKzoxMDFFQjAwMDA2MkJDMDhFRDhBMTVDMTJFNkZFRTQ4MDg0QzQ3NDE4QTAKKzoxMDFFQzAwMDMzRjZFODI3RkRBMTYwMTJFNkZFRTQwMDIyQzQ3NEU1QzMKKzoxMDFFRDAwMEJFMDgwMEU4OTJGREVCRERBMTYwMTJFNkZFRTQwMDIyMDAKKzoxMDFFRTAwMEM0NzVFREU0MDQwN0U0MDQxRkI4MDA4MEJBMjJGRkVGRDQKKzoxMDFFRjAwMDYxQ0Y2MDFFMDYyQkMwOEVEOEExNUUxMkU2RkVFNDgwODQKKzoxMDFGMDAwMDg0QzQ3NDE5QkUwMjAwRThFMkZDQTE2MjEyRTZGRUU0OTkKKzoxMDFGMTAwMDAwMjJDNDc0RTRCRTBDMDBFODRERkRFQkRDQTE2MjEyQUIKKzoxMDFGMjAwMEU2RkVFNDAwMjJDNDc1RURFNDA0MDdFNDA0MUZCODAwRjMKKzoxMDFGMzAwMDgwQkEyMkZGRUY2MUNGOTA2MDFFMDYyQkMwOEVEOEExMjEKKzoxMDFGNDAwMDVDMTJFNkZFRTQ4MDg0QzQ3NDE4MzNGNkU4OURGQ0ExQkMKKzoxMDFGNTAwMDYwMTJFNkZFRTQ4MDg0QzQ3NEU1QkUwNDAwRTg4Q0ZDRjQKKzoxMDFGNjAwMEVCRERBMTYwMTJFNkZFRTQ4MDg0QzQ3NUVEMDcxRkI4QzYKKzoxMDFGNzAwMDAwODBCQTIyRkZFRjYxQ0Y2MDFFMDYyQkMwOEVEOEExNzEKKzoxMDFGODAwMDVFMTJFNkZFRTQ4MDg0QzQ3NDE5QkUwMjAwRTg1Q0ZDQzQKKzoxMDFGOTAwMEExNjIxMkU2RkVFNDgwODRDNDc0RTRCRTA2MDBFODRCNEQKKzoxMDFGQTAwMEZDRUJEQ0ExNjIxMkU2RkVFNDgwODRDNDc1RUQwNzFGNDEKKzoxMDFGQjAwMEI4MDA4MEJBMjJGRkVGNjFDRjkwNjAxRTA2MkJDMDhFNjIKKzoxMDFGQzAwMEQ4OTAyQUMwRTZGRUU0Q0VBODAxNzQxNDMzREJFOEQ1MkQKKzoxMDFGRDAwMEY2RUJFRjkwQjgwMDgwQkEyMkZGRUYwNzFGNjFDRjkwQjkKKzoxMDFGRTAwMEY2MDYwNTAxMDE3NUVEQjAwMUU2RkVFNENFQTgwMTc0MjgKKzoxMDFGRjAwMEUzQkIwNDAwRThBRkY2RUJDOTkwNjAxRTA2MkJDMDhFNzEKKzoxMDIwMDAwMEQ4OTBGQjkwRkEyQUMwRTZGRUU0Q0VBODAyNzQxMzMzRkYKKzoxMDIwMTAwMERCRThDQ0Y4RUJFQ0I4MDA4MEJBMjJGRkVGMDcxRjYxRDkKKzoxMDIwMjAwMENGOTBBODA0NzRGMDMzREJFODVCRjdFQkQ1OTA2MDFFMkIKKzoxMDIwMzAwMDA2MkJDMDhFRDg5MEZCOTBGQUIwMDFFNkZFRTRDRUE4NDUKKzoxMDIwNDAwMDAyNzQxNUJCMDQwMEU4OTdGOEVCRUI5MEI4MDA4MEJBNzcKKzoxMDIwNTAwMDIyRkZFRjA3MUY2MUNGOTBBODA0NzRGMEJCMDQwMEU4RDMKKzoxMDIwNjAwMDI0RjdFQkQyNkEwMDFGQzYwNjkzMTIwOTlDMEVFODZCOTgKKzoxMDIwNzAwMEYyOTA2QTAwMUZDNjA2OTMxMjI5OUMwRUU4NURGMjkwNEEKKzoxMDIwODAwMDcyMjA3MjIwNzIyMENFMUQ5MjFDRTYxQzFBMUU3MjIwMzUKKzoxMDIwOTAwMDgyMURBRTFFMzgxRjcyMjA4MjFENzIyMDcyMjAzODFGRDIKKzoxMDIwQTAwMDcyMjA3MjIwNzIyMEY0MURCQzFDMzQxRDY0MUU3MjIwMkMKKzoxMDIwQjAwMEE4MURGMjFFNzgxRjcyMjBBODFENzIyMDcyMjA3ODFGQTIKKzoxMDIwQzAwMEZDQjk0MDAwOENDQkI4NjQyMDJCRkZBQjkzQUI5M0UyMDAKKzoxMDIwRDAwMEZBQzcwNjRDMDBBODExODMzRTQ0MTIwMDc1MjBDNzA2QkIKKzoxMDIwRTAwMDNDMDAwODRCQzcwNjMwMDBCQTFGQzcwNjM0MDBGQTFGNzEKKzoxMDIwRjAwMEY2MDYwNTAxMDE3NTA2QzcwNjM4MDAyRTIwQzNDNzA2N0YKKzoxMDIxMDAwMDNDMDA1NjRCMzNEQjhBMUU1NDEyQzFFMzAyMDIxRTU2QkEKKzoxMDIxMTAwMDEyMkU4Qjg3ODAyMEEzMzAwMDhBMUU1NTEyQzFFMzAyNDUKKzoxMDIxMjAwMDAyMUU1NzEyMkU4Qjg3QTAyMEEzMzQwMEMzOEI4NjlFREQKKzoxMDIxMzAwMDAwRTZGRTg2QzRFNkQwQzM4Qjg2OUUwMEU2RkUzM0QyNjAKKzoxMDIxNDAwMDhBRDRDMzUxQjkxMDI3RTQwQTkwOTA4NEMwNzQwNUUyODAKKzoxMDIxNTAwMEY2NTlGOUMzNTlGOEMzODRDMDc4MUU1MThBRTg4QUM4NzEKKzoxMDIxNjAwMEI4MDEwMEQzRTAwOTg2OTgwMDNBQUVBMDAwNTk3NTEwNzYKKzoxMDIxNzAwMEU4QTlFNTgzNEUyNjAyRjlDMzk4ODk4Njk4MDBFQkYwMUEKKzoxMDIxODAwMEY4QzM4NEMwNzgxMjUxOEFFMDhBQzhCODAxMDBEM0UwNEQKKzoxMDIxOTAwMDU5RjdEMDIxODY5ODAwQzNDNzg2OTgwMDAwMDBDMzgzRjIKKzoxMDIxQTAwMEMyMDQ4QTg2QTYwMDBDMDRFRTgzRUEwNEMzRTg5M0ZGMDcKKzoxMDIxQjAwMDcyMDRCMDgyRTYwQUMzOEI0NjI2QThGRDc0MTE4QTg2OTMKKzoxMDIxQzAwMEE1MDBBODA2NzQwODI0Rjk4ODg2QTUwMEU2MENDM0Y2QzUKKzoxMDIxRDAwMEM0MDE3NDBBOEE4NkE1MDAyNEZCMEMwMkVCMENBODAyMzkKKzoxMDIxRTAwMDc1MEY4QTg2QTUwMDI0RkQwQzA0M0E4NkE1MDA3NUQ4RDMKKzoxMDIxRjAwMEMzOEE4NkE1MDBFQkNGRTREODMzREI4QUQ4QzBFQjA0RDIKKzoxMDIyMDAwMDJFOEE5RjY2MTc4ODlFQTkwMDhCNUUyNjgwRTMzRkY2ODQKKzoxMDIyMTAwMEM3MDQ3NDA3QTgxMDc1MDM4MENCNDBGNkM3MDg3NDA3N0QKKzoxMDIyMjAwMEE4ODA3NTAzODBDQjQwODg1RTI2OEE4NkE1MDBGNkMzMDkKKzoxMDIyMzAwMEZENzQwREE4MDY3NDA4MjRGOTg4ODZBNTAwRTYwQ0MzNzEKKzoxMDIyNDAwMEY2QzcwMTc0MDQwQzAyRUJGMEY2QzMwMjc1RTkwQzA0NDYKKzoxMDIyNTAwMEVCRTdDNDA0QzQwNDg1MDQ1OTA0NDgwNDQxMDRDMzAzREYKKzoxMDIyNjAwMDgyMDM0MTAzODIwMjU3MDI0MTAyODIwMTQxMDE4MjAwM0UKKzoxMDIyNzAwMDQxMDA0RTAyQUQwMTU3MDEyRDAwMkIwMDI3MDAyMTAwMjcKKzoxMDIyODAwMDE2MDBGNDA0RjQwNEEzMDQ2RjA0NUIwNDUxMDRGNDAzODMKKzoxMDIyOTAwMEEzMDM1MTAzQTMwMjZEMDI1MTAyQTMwMTUxMDFBMzAwNDQKKzoxMDIyQTAwMDUxMDA2MjAyRDkwMTZEMDEzODAwMzYwMDMxMDAyOTAwNjkKKzoxMDIyQjAwMDFCMDA1MTU3QkYwMjAwRUIwRjkwNTE1NkJGMDEwMEVCQkUKKzoxMDIyQzAwMDA3OTA1MTU2QkYwMzAwOTAzQzE5NzYwMkIwMTc5ODhCQzcKKzoxMDIyRDAwMEYwOEE4MkM0MDAyQUU0OEJGMDgzRkUxODczNDZEMUU2QUMKKzoxMDIyRTAwMDJFOEI4QzUyMjJGNzQ2Mzg4MDAwNzQwNTJFOEI4QzgyMDAKKzoxMDIyRjAwMDIyRjdDNzAyMDA3NDEyM0I4RTk0MDA3NDBDODk4RTk0RUUKKzoxMDIzMDAwMDAwOEFDNUU2RUM4QUMxRTZFNEY3QzcwMTAwNzQxMjNCMTcKKzoxMDIzMTAwMDhFOTYwMDc0MEM4OThFOTYwMDhBQzVFNkY4OEFDMUU2MEUKKzoxMDIzMjAwMEYwNUU1OUMzNzcwNjhCOEU4RTAwRUJDNThCOEU5MDAwQzYKKzoxMDIzMzAwMEVCQkZENTAzRjYwMDNFMDAxMDAwMDQwMENBMDQzMzAxRDEKKzoxMDIzNDAwMDREMDAxNDAwMDUwMDAxMDMwNTA3MDkwMDAxMDIwMzA0MDQKKzoxMDIzNTAwMDgwODQxRTAwQTAyNTI2MDAwMDAwNjA4QkYwMzNGRjJFMzUKKzoxMDIzNjAwMEExNTAyMzJFOEIxNjUyMjNCQjMyMjNGNzQ2Mzg4MDAwMTAKKzoxMDIzNzAwMDc0MEMyRUExNTQyMzJFOEIxNjU2MjNCQjNDMjNCOTA1NzcKKzoxMDIzODAwMDAwMkUzQjMxNzMwQTQ3NDdFMkY3QjhGRkZGRUIxRDkwODEKKzoxMDIzOTAwMEQxRUYyRThBOEQ0NjIzMkFFREQxRUFEMUQ4RTJGQUY3ODEKKzoxMDIzQTAwMEY2MDUwMjAwQzFFODAyMkU4QUE1NEIyMzJFQTM1ODIzNkUKKzoxMDIzQjAwMDYxMkVBMTU4MjNDMzA4MDAyMDAwODAwMDAwMDI2MDA5OUMKKzoxMDIzQzAwMDA4MDAyMDAwODAwMDAwMDIwMDA4MDAwMDAxMDAwMjAwNTgKKzoxMDIzRDAwMDAzMDAwNDAwNTI1NjU3ODVDMDc0MDUzRDAxMDk3NjAzNzkKKzoxMDIzRTAwMEI4MDEwOUJGNUIwMUY3NDYzODgwMDA3NDAzQkZCMjAxMzIKKzoxMDIzRjAwMDMzRjYyRTNCODRCNjIzNzYwNDQ2NDZFQkY1RjdFNzJFRkMKKzoxMDI0MDAwMDhCQkNDMDIzMDNDNzgzRDIwMEQxRTdGN0Y3MkU4QUE0ODEKKzoxMDI0MTAwMENBMjM1RjVFNUFDM0U0M0U4MEJFQzMwMDAzNzUwQ0Y3NTcKKzoxMDI0MjAwMDQ2N0EyMDAwNzQwNTBDODBFNjNFQzMyNDdGRTYzRUMzNTYKKzoxMDI0MzAwMDI0MDM4ODg2QzMwMDhBRTBFNDEwMjRGQzBBQzRFNjEwNjIKKzoxMDI0NDAwMDgwOEVBMTAwNDJFOENFRkZDMzkwNTY4QkYwODNFNjA3NTIKKzoxMDI0NTAwMEQxRTYyRUZGQTQ1ODI0OTA2ODI0NkMyNDcwMjQ3NDI0QTAKKzoxMDI0NjAwMDc4MjQ4NzI0ODcyNDg3MjRCNDAwRUIwRUI0QzBFQjBBQjkKKzoxMDI0NzAwMEI0NDBFQjA2QjQyMEVCMDJCNEEwRTQxMDI0MUYwQUM0NUQKKzoxMDI0ODAwMEU2MTA4MDhFQTEwMDQyNUVDMzkwM0MwMjc3MTI4QUUwODMKKzoxMDI0OTAwMEU0MTAyNEYzQzBFNDAyMEFDNEU2MTA4MDhFQTEwMDQyRDYKKzoxMDI0QTAwMEMzOTA4QjVFMzg4NEMwNzQxRjNDMDI3NDIwODNDQjA4QjkKKzoxMDI0QjAwMDhCNDYyRTNCNDYzQzc3MENFODg4RkM3MjA3QjAyNEU2M0UKKzoxMDI0QzAwMDBBODNDQjEwODk1RTM4QzM4M0UzRjdFQkY3RjdDMzEwQjkKKzoxMDI0RDAwMDAwNzRGNUU4NkRGQzcyRUM4QTg2QzAwMEU2MzhCMDIzMjMKKzoxMDI0RTAwMEU2MEFFQkUwOEI1RTM4OEI0NjJFM0I0NjNDRTREODc3MjEKKzoxMDI0RjAwMDBCMjRGRTgwQ0IxMkU2RDg4OTVFMzhDMzBDMDE4MENCNUEKKzoxMDI1MDAwMDAyRUJGMzUwMzNEQkMxRTgwNDI1MEYwRjhBRDgyRThBODMKKzoxMDI1MTAwMDg3NjYxNzhBREMyRThBQTc2NjE3MDk0NjNFNThDMzUwN0QKKzoxMDI1MjAwMDMzREJDMUU4MDQyNTBGMEY4QUQ4MkU4QTg3NjYxNzhBMDUKKzoxMDI1MzAwMERDMkU4QUE3NjYxN0Y3RDAyMTQ2M0U1OEMzOEI0NjNFNEQKKzoxMDI1NDAwMDMzREI4QUQ4MEFEQzJFOEE4Nzc2MTdFNjJDOEFFMEU0MDkKKzoxMDI1NTAwMDJBMjQwRjBBQzRFNjJBOEE4NkE1MDA4NEU0NzUwREE4RjkKKzoxMDI1NjAwMDgwNzQxMTI0N0Y4ODg2QTUwMEU2MENDM0E4ODA3NTA0QkEKKzoxMDI1NzAwMDBDODBFQkYxQzMxRTYwMzNDOTMzRDIzM0Y2OEVEOThEOTQKKzoxMDI1ODAwMEJFRkQwMDU3OEIwNTg0QzA3NDE2OEJEMTQyOEJGRTRGNjUKKzoxMDI1OTAwMDc4MDkzOEEzRTQwMDc0MDg0Rjc5Rjc4OEEyRTQwMDQ2NkMKKzoxMDI1QTAwMDVGODNDNzA5NDE4M0Y5MTA3MkQ5ODlCNjg2MDA4OTk2N0QKKzoxMDI1QjAwMDg0MDA2MTFGQzM1M0M3NDY2NjAwMDA4QjQ2NjRBOTQwNzAKKzoxMDI1QzAwMDAwNzQwREIzMDBBOTgwMDA3NDAyQjM3Rjg4OUVDMTAwMUYKKzoxMDI1RDAwMDMyREJBOTAyMDA3NDAzODBDQjQwQTkwMDQwNzQwMzgwNjEKKzoxMDI1RTAwMENCMDJBOTAwODA3NDAzODBDQjAxQTkzMDFFNzQwMzgwNDQKKzoxMDI1RjAwMENCQkNBOTAwMjA3NDAzODBDQjA4QTkwNDAxNzQwMzgwMUMKKzoxMDI2MDAwMENCMTBBOTA4MDA3NDAzODBDQjIwODg5RUMyMDA1QkMzNTYKKzoxMDI2MTAwMDA2NTE1NzUwMTYwNzhEQkVDNDAwQjkxRjAwMzNDMEFBMUIKKzoxMDI2MjAwMDQwRTJGQzhCODY5MjAwODk4NjhFMDA4OTg2OTAwMDU4NTUKKzoxMDI2MzAwMDVGNTkwN0MzRTREOEMwRTgwNDUzMjUwRjAwOEJEODJFOTgKKzoxMDI2NDAwMDhBODc2NjE3ODg4NkE5MDA1QUMzMDg4NkFDMDBDNjg2QTIKKzoxMDI2NTAwMEJBMDAwMUIwMEVFOEVBRTlDM0FEMzZBM0I0MTNBRDM2NTMKKzoxMDI2NjAwMEEzQjYxM0FEMzZBM0I4MTM4M0U5MDYzNkY3MDZCNjEzM0YKKzoxMDI2NzAwMDBGMDBDMzhBNDYyNkY3NDY0ODgwMDA3NDAyMEMxMDg4NzMKKzoxMDI2ODAwMDg2QkQwMDMyQzA4MzdFMUEwMDc1MEU4QjVFNDA0MzgwOEIKKzoxMDI2OTAwMEUzRkUzQjVFMDg3NTAyMEMwMTgzN0UzQTAwNzUwRDFFNTkKKzoxMDI2QTAwMEM1NUUxNDhCMUYxRjg1REI3NTAyMEMwMkY3NDYzODEwQzAKKzoxMDI2QjAwMDAwNzQwMjBDMDQ4QjVFN0FGN0MzMDIwMDc0MDIwQzA4RUIKKzoxMDI2QzAwMEY3QzMwNDAwNzQwMjBDMTBGN0MzMDgwMDc0MDIwQzIwNTYKKzoxMDI2RDAwMEY3QzM0MDAwNzQwMjBDNDA4ODg2QkYwMEMzOTA2QTAwQjQKKzoxMDI2RTAwMDFGQzYwNjkzMTIwRDlDMEVFOEYxRUI5MEIwMDJFNkRBREQKKzoxMDI2RjAwMEY4QzMzM0MwRTZEQUY4QzNCMDAxRTZEOEY4QzMzM0MwOTQKKzoxMDI3MDAwMEU2RDhGOEMzQjBGRkU4NEVGQUU4QTFGQUY4QzNBQzQ5M0UKKzoxMDI3MTAwMEU4QUZGQkY4QzM5MEFDNDlFODE1RkRGOEMzOTBBQzQ5QUQKKzoxMDI3MjAwMEU4NjdGREY4QzM5MEFDNDlFODFGRkRGOEMzOTBBQzQ5RDkKKzoxMDI3MzAwMEU2MzRGOEMzQUM0OUU2MzZGOEMzQUM0OTNDMDI3NzFGMkYKKzoxMDI3NDAwMDg0QzA3NTFERTQxNDI0RUZFNjE0RTQxMjI0M0ZFNjEyNUQKKzoxMDI3NTAwMEU0MTZBODA0NzQwOUU4RUFGOTcyMDRCMDE4RTYwQUY4NjUKKzoxMDI3NjAwMEMzOEFFMEU0MTQwQzEwRTYxNEU0MTIwQ0MwRjZDNDAxQjEKKzoxMDI3NzAwMDc0MDIyNDdGRTYxMkY4QzNBQzQ5RTgyNUZERjhDMzkwNDMKKzoxMDI3ODAwMEI4MDA0MEU4N0RGREU4QjRGREU4QThGRUIwMDFFOEI5NzYKKzoxMDI3OTAwMEZFRjhDMzkwQjgwMDQwRTg4NUZERThBMEZERjhDMzkwQkUKKzoxMDI3QTAwMEI4MDAxMEU4NURGREU4OTRGREU4ODhGRUIwMDhFODk5RkYKKzoxMDI3QjAwMEZFRjhDMzkwQjgwMDEwRTg2NUZERTg4MEZERjhDMzkwMEUKKzoxMDI3QzAwMEI4MDA4MEU4M0RGREU4NzRGREU4NjhGRUIwMDJFODc5RjUKKzoxMDI3RDAwMEZFRjhDMzkwQjgwMDgwRTg0NUZERTg2MEZERjhDMzkwQkUKKzoxMDI3RTAwMEI4MDAyMEU4MURGREU4NTRGREU4NDhGRUIwMDRFODU5QjMKKzoxMDI3RjAwMEZFRjhDMzkwQjgwMDIwRTgyNUZERTg0MEZERjhDMzkwM0UKKzoxMDI4MDAwMEFDNDlFODQ4MTRFNDNDMjRFNzBBQzRFNjNDRjhDMzkwMjkKKzoxMDI4MTAwMEI4RkMzQjg5NDY3Q0U0M0MwQzE4RTYzQ0Y4QzNFNDEyNjcKKzoxMDI4MjAwMDBDMDJFNjEyRjhDM0U0MTIyNEZERUJGNkU4QjVGQ0Y4NUUKKzoxMDI4MzAwMEMzOTA4MzY2MzhGREY4QzNBQzQ5QTgwMTc0MDY4MzRFODMKKzoxMDI4NDAwMDdBMjBFQjA0ODM2NjdBREZFOENCRkJGOEMzOTA4QTg2QjQKKzoxMDI4NTAwMEE1MDAwQzAyMjRGQjg4ODZBNTAwRTYwQzgxNEUyNjAxMEIKKzoxMDI4NjAwMDIwQUM0OTMyRTQ4OTQ2NkU4MzRFNDgwODQ5NDZGOUMzOTQKKzoxMDI4NzAwMDhBODZBNTAwMEMwMjI0RkI4ODg2QTUwMEU2MEM4MTRFMDIKKzoxMDI4ODAwMDI2MDEyMEFDQjQwQUY2RTRFQkQ4RThGQTEzRTQzQzI0QzEKKzoxMDI4OTAwMEY4MEFDNEU2M0NGOEMzOTBBRDQ5NDk4OTQ2NjRBOTAxRTkKKzoxMDI4QTAwMDAwNzQxQjhCRDg4M0UzRkE3NTFBQTkwNDAwNzQwRkU0MzMKKzoxMDI4QjAwMDNFMEMwMkU2M0VCODM4NDQ4OTQ2NjJGOEMzOTBFNDNFRDYKKzoxMDI4QzAwMDI0RkNFQkVGRTQzRTI0RkNFNjNFRThFOEZDQjhBQTQwM0EKKzoxMDI4RDAwMEVCRTZFODZFRjg3MjA1QjAxOEU2MEFGOEMzOTBBQzQ5NkEKKzoxMDI4RTAwMEU4Q0ZGOUY4QzM5MEFDNDlFOENGRjlGOEMzOTBFODY4QUQKKzoxMDI4RjAwMEZENzUwNjMyQzBFNkRBRjhDM0IwMDJFNkRBMzZBMEI0RjcKKzoxMDI5MDAwMDEzMjQxMDM0MTBFODE2MDEzNkExQjQxM0E5MDEwMDc0ODEKKzoxMDI5MTAwMDA1RThGQ0ZFRUIwRUE5MDIwMDc0MDQzMkMwRUIwMkIwMjUKKzoxMDI5MjAwMDAxRThERUZFMzZBMUI0MTNFOEI1MTNFNDNDMjRGODBBNEUKKzoxMDI5MzAwMEM0RTYzQzM2QTFCNDEzQzFFODA1MjUwMTAwRThGQUZFNUYKKzoxMDI5NDAwMDM2QTBCNTEzMjQxMEU4NTlGQjMyQzAzNjhBMjZCNTEzRDkKKzoxMDI5NTAwMEY2QzQwNDc0MDlGRUMwRjZDNDA4NzQwMkZFQzBFOERCQzUKKzoxMDI5NjAwMEZEMzZBMUI2MTMyNTBGMDBFODU3RjkzNkExQjYxM0MxRkQKKzoxMDI5NzAwMEU4MDQyNTAzMDBFOEI4RkEzNkExQjYxM0MxRTgwNTI1MzYKKzoxMDI5ODAwMDAyMDBFODA1RkIzNkExQjYxM0Y2QzQwMTc1MDQzMkMwOTcKKzoxMDI5OTAwMEVCMDk4MEU0MDJEMEVDQjAwMjJBQzRFOEFDRkEzNkY2QzcKKzoxMDI5QTAwMDA2QjcxMzQwNzQwNUU4ODNGRUVCMDNFODg0RkUzNkY2QjEKKzoxMDI5QjAwMDA2QjcxMzIwNzQwNUU4NjVGRUVCMDNFODY4RkVGOEMzNkMKKzoxMDI5QzAwMEU0MTIwQzAxRTYxMkY4QzNFNDEyMjRGRUVCRjZFNDE0NjAKKzoxMDI5RDAwMDI0RjAwQzA1RTYxNEU0MkEyNEYwMEMwNkU2MkFGOEMzRDkKKzoxMDI5RTAwMEU0MkEyNEYwRTYyQUU0MTQyNEYwMEMwN0U2MTRGOEMzRTEKKzoxMDI5RjAwMEFENDk0OUU4NjRGOTg5ODY4RTAwRjhDM0FENDk0OUU4RDQKKzoxMDJBMDAwMDU4Rjk4OTg2OTAwMEY4QzM4MzRFMjYwNEU4QThGN0Y4QTEKKzoxMDJBMTAwMEMzOTA4MzY2MjZGQkU4OUVGN0Y4QzM5MEFDNDk4NEMwNTgKKzoxMDJBMjAwMDc1MERFNDEwMjRFRkU2MTA4MDhFQTEwMDQyRjhDM0U0OTcKKzoxMDJBMzAwMDEwMEMxMEVCRjE5MEFDNDkzQzAyNzYwMjMyQzBDMEUwQzEKKzoxMDJBNDAwMDA0QTgyMDc0MDIwQzA4MjQxODhBRTBFNDEyMjRFNzBBN0YKKzoxMDJBNTAwMEM0RTYxMjgwOEVBMTAwNDRGOEMzQUM0OTg4ODZDMDAwNDkKKzoxMDJBNjAwMEY4QzNBQzQ5RTYzQUY4QzNBQzQ5ODRDMDc0MDhFNDEyMzAKKzoxMDJBNzAwMDBDMDRFNjEyRjhDM0U0MTIyNEZCRUJGNkFDNDlFOEQ2RUEKKzoxMDJBODAwMEY2NzMwM0U4MjdGN0Y4QzNFNDEyQTgwMjc0MDQyNEZERTAKKzoxMDJBOTAwMEU2MTJCOEYwMDBFODg3RkE4MTY2MjZGRkYzRTg1N0Y3RjgKKzoxMDJBQTAwMEU4OUFGQUY4QzM5MEI4ODAwMEU4NTdGQTgwNEUyNzA4RjEKKzoxMDJBQjAwMEU4NDRGN0U4ODdGQUY4QzNCODgwMDBFODYxRkE4MTY2NkQKKzoxMDJBQzAwMDI2RkZGN0U4MzFGN0U4NzRGQUY4QzM5MEI4MTAwMEU4ODkKKzoxMDJBRDAwMDMxRkE4MDRFMjcwNEU4MUVGN0U4NjFGQUY4QzNCODEwMEYKKzoxMDJBRTAwMDAwRTgzQkZBODE2NjI2RkZGQkU4MEJGN0U4NEVGQUY4QjAKKzoxMDJBRjAwMEMzOTAzM0MwQUM0OTNDMDE3MzA0QjAwMUVCMDYzQzBDRkQKKzoxMDJCMDAwMDc2MDJCMDBDODk0NjFDRjhDMzkwODE0RTI2MDAyMDhBQkMKKzoxMDJCMTAwMDg2QTUwMDBDMDIyNEZCODg4NkE1MDBFNjBDODM0RTI2QzEKKzoxMDJCMjAwMDAxRjhDMzkwODE0RTI2MDA0MDhBODZBNTAwMEMwMjg4RDkKKzoxMDJCMzAwMDg2QTUwMEU2MENGOEMzOTBBQzQ5NTBFODA1RjY1ODcyM0IKKzoxMDJCNDAwMDA4RTYzOEIwMjNFNjBBRjhDM0Y5QzM5MEFDNTBBREU4MDQKKzoxMDJCNTAwMDgyRjg1QUY2QzIwMTc0MTIzOTg2OTYwMDc0MEM4OTg2N0UKKzoxMDJCNjAwMDk2MDBFNkYwODZFMEU2Rjg4NkUwRjZDMjAyNzQxMDM5RDgKKzoxMDJCNzAwMDg2OTQwMDc0MEE4OTg2OTQwMEU2RTQ4NkUwRTZFQzgzOTUKKzoxMDJCODAwMEU5MDNDMzkwRTQxNjg4ODZCQzAwRThFNkZBMzNEQkU0ODgKKzoxMDJCOTAwMDBDQTgwNjc0MDM4MENCMDFBODEwNzQwMzgwQ0IwMkE4OTQKKzoxMDJCQTAwMDgwNzQwMzgwQ0IwNEU0MTI4QUUwMjQxODBBRDhFNERBQTMKKzoxMDJCQjAwMEY2QzQwMjc0MDdBODQwNzUwMzgwQ0IyMEE4MDI3NTA5RUIKKzoxMDJCQzAwMEU0MkFBODBGNzQwMzgwQ0I0MEY3NDYzODAyMDA3NDA5NEEKKzoxMDJCRDAwMEU0RDhBODAxNzUwMzgwQ0I4MDg4OUVCRTAwRkU4NkI0MzEKKzoxMDJCRTAwMDAwQjAwQUU4NUNFNEY4QzNBQzQ5M0MwMjc0NDE3NzFGQ0EKKzoxMDJCRjAwMDUwRTg0RkY1NTg3MjBDODRDMDc0MEFCMDEyRTYwQTgwOEYKKzoxMDJDMDAwMDRFMzgwMUY4QzNCMDExRTYwQTgwNjYzOEZFRjhDMzhCNkYKKzoxMDJDMTAwMDQ2MzgyNUZGRjc4OTQ2MzhBOTAwMDQ3NUU2OEE4NkE1NTcKKzoxMDJDMjAwMDAwQTgxMDc1REUwQzEwODg4NkE1MDBFNjBDRjhDMzgxOUMKKzoxMDJDMzAwMDRFMzgwMDA4OEE4NkE1MDBBODEwNzRDNzI0RUZFQkU3NzkKKzoxMDJDNDAwMEFENDk0OTNDMDE3MjExM0MwQzc3MEQ1MDhBRTBFNDE0MDcKKzoxMDJDNTAwMDI1RjAwRjBBQzRFNjE0NTg4QUM0ODRDMDc0MDJFNjQyMDAKKzoxMDJDNjAwMEY4QzNFOENGRjlGRTg2QjkwMEIwMEVFOEQ0RTNGOEMzQTQKKzoxMDJDNzAwMDNBODZBRjAwNzQxRjg4ODZBRjAwOEFFMDgwQzIwNkIwMzMKKzoxMDJDODAwMEJGRUU4MEVBMDI4QUM0RUU4QTg2QTgwMDgwQzIwMkVFMDUKKzoxMDJDOTAwMDgwRUEwNjhBQzRDMzhCNDYzRTg1QzA4QTg2QTUwMDc0MzYKKzoxMDJDQTAwMDEyQTgwODc1MEQwQzA4ODg4NkE1MDA4MEMyMDJFRTgwNjcKKzoxMDJDQjAwMEVBMDJDM0E4MDg3NEZCMjRGN0VCRUM4QjQ2MjY4NEMwMTkKKzoxMDJDQzAwMDc0MTY4QTg2QTUwMEE4MDI3NDBEMjRGRDg4ODZBNTAwQzYKKzoxMDJDRDAwMDgzQzIwMkVFODNFQTAyQzM4QTg2QTUwMEE4MDI3NUY3QzIKKzoxMDJDRTAwMDBDMDJFQkU4NTI4M0MyMENFQ0MwRTgwNDg4ODZBOTAwMTEKKzoxMDJDRjAwMDhCNUUyNjgwRTMzRkY2QzcwNDc0MDdBODA4NzUwMzgwM0YKKzoxMDJEMDAwMENCNDBGNkM3MDg3NDA3QTgwMjc1MDM4MENCODA4ODVFQTUKKzoxMDJEMTAwMDI2OEE4NkE1MDA4NERCNzQxMEE4MDI3NDBBMjRGRDg4MjQKKzoxMDJEMjAwMDg2QTUwMDgzRUEwQUVFNUFDM0E4MDI3NUZBMEMwMkVCRTQKKzoxMDJEMzAwMEVFOTBGRkZGMDA0ODAwMzBCQTIwQzQxQTAwMTgwMDEyQkQKKzoxMDJENDAwMDAwMEMwMDA2MDAwMzAwMDI4MDAxQzAwMDYwMDAzMDAwOUIKKzoxMDJENTAwMDE4MDBDRDAxMDAwMTgwMDAxMDAwMTAwMDBFMDAwQzAwRDIKKzoxMDJENjAwMDA4MDAwMDAwMDAwMDA2MDAwNDAwMDMwMDAyMDAwMTAwNEIKKzoxMDJENzAwMDUyNTE1NjNDMUU3NzQ3OTg4QkYwOEE4MkM0MDAzMkU0NDkKKzoxMDJEODAwMDgzRkUxODc0M0Q4M0ZFMTk3NDNFODNGRTFFNzcyRkQxOTcKKzoxMDJEOTAwMEU2MkU4QjhDMzIyRDNCOEU5NDAwNzQyMjg5OEU5NDAwMEIKKzoxMDJEQTAwMDgzQzIwNjhBODZBODAwOEFFMDBDODBFRTgzRUEwNjhBM0YKKzoxMDJEQjAwMEMxRUU4M0MyMDI4QUM1RUU4M0MyMDQ4QUM0RUU1RTU5QTQKKzoxMDJEQzAwMDVBQzM4QjhFOEUwMEVCQ0U4QjhFOTAwMEVCQzg1MjUxODcKKzoxMDJERDAwMDNEMDUwMDc3MDNCODA1MDA4QkM4QkEwMjAwQjgwMEQwRTMKKzoxMDJERTAwMEY3RjEwNTAxMDBEMUU4NTk1QUMzOEI0NjdBQTgyMDc0M0YKKzoxMDJERjAwMDBCODBCRUMzMDAwMzc1MDQwQzAxRUIwMjI0RkU4OTQ2NjAKKzoxMDJFMDAwMDdBQzMyNDAzODg4NkMzMDA4QUE2QTgwMDhBREM4MEU0RUIKKzoxMDJFMTAwMEZDMEFDNDNBQzM3NDBCODg4NkE4MDA4M0MyMDZFRTgzRkEKKzoxMDJFMjAwMEVBMDZFOEM1RkZDMzAwMDgxODM4Mjg5MDNDMDQ3NzIzNTkKKzoxMDJFMzAwMDMyRTQ4QkQ4MkU4QTg3MjYyRThBQTZBODAwOEFEQzgwQzgKKzoxMDJFNDAwMEU0QzcwQUM0M0FDMzc0MEI4ODg2QTgwMDgzQzIwNkVFOUUKKzoxMDJFNTAwMDgzRUEwNkMzODRDMDc0MDJCMDA0OEFBNkE4MDA4QURDOTAKKzoxMDJFNjAwMDgwRTRGQjBBQzQzQUMzNzQwQjg4ODZBODAwODNDMjA2QjgKKzoxMDJFNzAwMEVFODNFQTA2QzM5MDhCNUUzODg0QzA3NDM0M0MwMjc0REYKKzoxMDJFODAwMDNCOEE4NkFGMDAwQzA0RThFNkZEOEI0NjJFM0I0NjNDQjEKKzoxMDJFOTAwMDc3MUJGN0MzMDAwNDc1MTU4MUNCMDAwNDgzQzIwMjhBMzcKKzoxMDJFQTAwMDg2QTUwMDI0RkE4ODg2QTUwMEVFODNFQTAyODk1RTM4QUEKKzoxMDJFQjAwMEMzOEE4NkFGMDAyNEZCRThCNkZERUJGMUY3QzMxMDAwMzAKKzoxMDJFQzAwMDc0RUZFQkVEODNDMjBDRUM4M0VBMENDMEU4MDQ4ODg2NTcKKzoxMDJFRDAwMEE5MDBDMzkwOEE4NkE3MDAwQzAxODg4NkE3MDA4QkRBMTgKKzoxMDJFRTAwMDgwQzIwOEVFOEJEM0Y4QzM4QTg2QTcwMDI0RkVFQkVBRTMKKzoxMDJFRjAwMDhBODZBNzAwMEMwMkVCRTI4QTg2QTcwMDI0RkRFQkRBQTMKKzoxMDJGMDAwMEIwRkZFODUyRjJFODk3RjJGOEMzQUM0OUU4NjFGRUY4ODYKKzoxMDJGMTAwMEMzOTBBQzQ5RThFQkZFRjhDMzkwQUM0OUU4MzVGRkY4NDQKKzoxMDJGMjAwMEMzOTBBQzQ5RTgwNUZGRjhDMzkwNTI4M0MyMDZCMEJGMTYKKzoxMDJGMzAwMEVFNTI4M0MyMDJBQzQ5RUU1QThBODZBODAwRUU1QUY4RDUKKzoxMDJGNDAwMEMzOTA1MjgzQzIwNkIwQkZFRTUyODNDMjA2RUJFNjkwMzYKKzoxMDJGNTAwMEFDNDkzQzAyNzcwRDg0QzA3NTBCOEE4NkFGMDAyNEZEMTYKKzoxMDJGNjAwMEU4MERGREY4QzM1MDhBODZBRjAwMEMwMkU4MDFGRDVCNTYKKzoxMDJGNzAwMDgzQzIwODhBODZBNzAwRjZDMzAxNzQwQzI0REY4ODg2MDIKKzoxMDJGODAwMEE3MDBFRTgzRUEwOEY4QzMwQzIwRUJGMkFDNDlFOEU1QjEKKzoxMDJGOTAwMEZFRjhDMzkwQjgwMDQwRTg2OUY1RThGOUZDRTgyNEZGQzIKKzoxMDJGQTAwMEIwMDFFOEE1RjZGOEMzOTBCODAwNDBFODcxRjVFOEU1OEYKKzoxMDJGQjAwMEZDRjhDMzkwQjgwMDEwRTg0OUY1RThEOUZDRTgwNEZGMzQKKzoxMDJGQzAwMEIwMDhFODg1RjZGOEMzOTBCODAwMTBFODUxRjVFOEM1RjgKKzoxMDJGRDAwMEZDRjhDMzkwQjgwMDgwRTgyOUY1RThCOUZDRThFNEZFMDUKKzoxMDJGRTAwMEIwMDJFODY1RjZGOEMzOTBCODAwODBFODMxRjVFOEE1Q0UKKzoxMDJGRjAwMEZDRjhDMzkwQjgwMDIwRTgwOUY1RTg5OUZDRThDNEZFQTUKKzoxMDMwMDAwMEIwMDRFODQ1RjZGOEMzOTBCODAwMjBFODExRjVFODg1NkIKKzoxMDMwMTAwMEZDRjhDMzkwQUM0OUU4MzQwQ0Y4QzM5MEI4RkMzQjg5ODkKKzoxMDMwMjAwMDQ2N0NGOEMzOEE4NkFGMDAwQzgwRTg0M0ZDRjhDMzkwNjYKKzoxMDMwMzAwMDhBODZBRjAwMjQ3RkVCRjI4QTg2QUYwMDBDNDBFODJGMkYKKzoxMDMwNDAwMEZDRjhDMzkwOEE4NkFGMDAyNEJGRUJGMkFDNDlBODAxMUMKKzoxMDMwNTAwMDc0MDc4MzRFN0EyMEVCMDU5MDgzNjY3QURGRTg4QUZENTkKKzoxMDMwNjAwMEY4QzM4M0MyMDY4QTg2QTgwMDBDNDA4ODg2QTgwMEVFQjIKKzoxMDMwNzAwMDgzRUEwNkFDNDkzMkU0ODk0NjZFODM0RTI2MDE4MzRFQ0MKKzoxMDMwODAwMDQ4MDhCMDA2RThCQkRGNDk0NkY5QzM5MDgzQzIwNjhBMDgKKzoxMDMwOTAwMDg2QTgwMDBDNDA4ODg2QTgwMEVFODNFQTA2QUNCNDBBMzUKKzoxMDMwQTAwMEY2RTRFQkQwRThFMDBCRjhDMzkwQUQ0OTQ5ODk0NjY0RkIKKzoxMDMwQjAwMEE5MDEwMDc0MTk4QkQ4ODNFM0ZBNzUwQUE5MDQwMDc0NzYKKzoxMDMwQzAwMDBEQjhFMjNGRUIwQkU4RUNGNEI4QUE0MEVCMDNCODM4REMKKzoxMDMwRDAwMDQ0ODk0NjYyRjhDMzhBODZBRjAwQTgwMjc0MEEyNEZEQjgKKzoxMDMwRTAwMEU4OERGQjBDMDJFODg4RkJGOEMzQUM0OUU4ODFGQ0Y4RUEKKzoxMDMwRjAwMEMzOTBBQzQ5RTg3OUZDRjhDMzkwRTg1Q0Y1NzUwNUU4NDUKKzoxMDMxMDAwMEU2RkRGOEMzRThDREZEMzZBMEI0MTMyNDEwMzQxMEU4NzIKKzoxMDMxMTAwMDI2MDEzNkExQjQxM0E5MDEwMDc0MDVFOEZFRkVFQjBFRUEKKzoxMDMxMjAwMEE5MDIwMDc0MDQzMkMwRUIwMkIwMDFFOEU4RkUzNkExNDcKKzoxMDMxMzAwMEI0MTNFOEFCMEIzNkExQjQxM0MxRTgwNTI1MDEwMEU4RDAKKzoxMDMxNDAwMDBDRkYzNkEwQjUxMzI0MTBFODJCRkQzMkMwMzY4QTI2QkEKKzoxMDMxNTAwMEI1MTNGNkM0MDQ3NDA5RkVDMEY2QzQwODc0MDJGRUMwQjgKKzoxMDMxNjAwMEU4RUZGRDM2QTFCNjEzMjUwRjAwRTgwM0ZDMzZBMUI2NDMKKzoxMDMxNzAwMDEzQzFFODA0MjUwMzAwRTg4OEZDMzZBMUI2MTNDMUU4QjIKKzoxMDMxODAwMDA1MjUwMjAwRThDREZDMzZBMUI2MTNGNkM0MDE3NTA0OEUKKzoxMDMxOTAwMDMyQzBFQjA5ODBFNDAyRDBFQ0IwMDIyQUM0RTg4Q0ZDMTcKKzoxMDMxQTAwMDM2RjYwNkI3MTM0MDc0MDVFODhERkVFQjAzRTg5NEZFOEYKKzoxMDMxQjAwMDM2RjYwNkI3MTMyMDc0MDVFODY5RkVFQjAzRTg3MEZFRTcKKzoxMDMxQzAwMEY4QzNGOEMzOEI0NjM4QTkwNDAwNzUyMzBEMDQwMDg5QTEKKzoxMDMxRDAwMDQ2Mzg4M0MyMDg4QjQ2MkUzQjQ2M0M3MzE0ODM0RTM4RDgKKzoxMDMxRTAwMDEwOEE4NkE3MDAyNEZFODg4NkE3MDBFRTgzRUEwOEY4RTYKKzoxMDMxRjAwMEMzOEE4NkE3MDAwQzAxRUJFRTkwOEI0NjM4QTkwNDAwMjkKKzoxMDMyMDAwMDc0MDYyNUZCRkY4OTQ2MzhGOEMzQUQ0OTQ5RThCRUZCODMKKzoxMDMyMTAwMDg5ODY4RTAwRjhDM0FENDk0OUU4QjJGQjg5ODY5MDAwRTMKKzoxMDMyMjAwMEY4QzM4MzRFMjYwNEU4OTJGQUY4QzM5MDgzNjYyNkZCMUYKKzoxMDMyMzAwMEU4ODhGQUY4QzM5MEFDNDk4NEMwNzUwNzgwOEVBMzAwNzMKKzoxMDMyNDAwMDA0RjhDMzgwQTZBMzAwRkJGOEMzQUM0OTgzQzIwODNDQzIKKzoxMDMyNTAwMDAyNzYwMjMyQzAzQzAxNzQxMjc3MEI4QTg2QTcwMDI0RTIKKzoxMDMyNjAwMEVGODg4NkE3MDBFRTgzRUEwOEY4QzM4QTg2QTcwMDBDRDkKKzoxMDMyNzAwMDEwRUJFRTkwNTI4M0MyMDZCMEJGRUU1MjgzQzIwNEFDOTQKKzoxMDMyODAwMDQ5RUU1QThBODZBODAwRUU1QUY4QzM5MDUyODNDMjA2QzUKKzoxMDMyOTAwMEIwQkZFRTUyODNDMjA4RUJFNjkwQUM0OUY4QzNBQzQ5MkMKKzoxMDMyQTAwMEU4QjRFRTczMDNFOEY3RUVGOEMzOEE4NkFGMDAyNDdGMzQKKzoxMDMyQjAwMEU4QkRGOUI4RjAwMEU4NjZGMjgxNjYyNkZGRjNFODIzN0UKKzoxMDMyQzAwMEZBRThEMkY5RjhDM0I4ODAwMEU4MzdGMjgwNEUyNzA4NTAKKzoxMDMyRDAwMEU4MTFGQUU4QzBGOUY4QzNCODgwMDBFODQxRjI4MTY2NjUKKzoxMDMyRTAwMDI2RkZGN0U4RkVGOUU4QURGOUY4QzM5MEI4MTAwMEU4NUEKKzoxMDMyRjAwMDExRjI4MDRFMjcwNEU4RUJGOUU4OUFGOUY4QzNCODEwMDgKKzoxMDMzMDAwMDAwRThGRkYxODE2NjI2RkZGQkU4RDhGOUY4QzNBQzQ5NzUKKzoxMDMzMTAwMEY4QzM4M0MyMDY4QTg2QTgwMDBDNDA4ODg2QTgwMEVFRkYKKzoxMDMzMjAwMDgzRUEwNkY4QzM5MDgzQzIwNjhBODZBODAwMjRCRkVCMEUKKzoxMDMzMzAwMEVBOTBBQzQ5OEFFMDgwQzIwQUVDODBFQTBBQTgyMDc0Q0MKKzoxMDMzNDAwMDA1OEFDNEVFRjhDMzA2NTE1NzhCNEUyNEUzMzQ0OTg5RUQKKzoxMDMzNTAwMDRFMjRGRjQ2MUE4RTQ2MDI4QjdFMjI4QUM0QUE4OTdFOUMKKzoxMDMzNjAwMDIyOEI0NjI2MjRGRDg5NDYyNjc1Mjk4QTg2QTUwMEE4MzMKKzoxMDMzNzAwMDAyNzUyMTgwQzIwMjBDMDI4ODg2QTUwMEVFODBFQTAyNTYKKzoxMDMzODAwMEVCMTJDNDdFMDAzQjdFMUU3NjBBNEYyNjg4MjU4OTdFN0UKKzoxMDMzOTAwMDAwRkY0NjFBNUY1OTA3RjhDMzkwQUNBRDgzRTkwMzg1NzcKKzoxMDMzQTAwMEMwNzQwNTNEMDAyMDcyMDVCOEZGRkZFQjAzQzFFMDAzQzgKKzoxMDMzQjAwMDNCODY5NDAwNzQyNjg5ODY5NDAwOEJEODUyODNDMjA2N0IKKzoxMDMzQzAwMDhBODZBODAwOEFFMDBDODBFRTgzRUEwNjhBQzNFRTgzMzAKKzoxMDMzRDAwMEMyMDI4QUM3RUU4M0MyMDQ4QUM0RUU1QUY4QzNCMDg4MTgKKzoxMDMzRTAwMDg4ODZCQzAwRTg4Q0YyMzNEQjhBODZBNTAwQTgwMjc0Q0MKKzoxMDMzRjAwMDAzODBDQjAxQTgwNTc0MDM4MENCMDJBODA4NzQwMzgwNjYKKzoxMDM0MDAwMENCMDRGNjg2QTcwMDEwNzQwMzgwQ0IxMDhBODZBOTAwMkYKKzoxMDM0MTAwMEY2QzMwNDc1MEE4M0MyMENFQzgzRUEwQ0MwRTgwNDhBODQKKzoxMDM0MjAwMEUwOEE4NkFGMDBBODgwNzQwOEY2QzQwMTc1MDM4MENCREIKKzoxMDM0MzAwMDIwRjY4NkE3MDAwMjc1MEFGNzQ2MzgwNDAwNzQwMzgwNTgKKzoxMDM0NDAwMENCNDA4ODlFQkUwMEZFODZCNDAwQjAwQUU4RjNEQkY4RUQKKzoxMDM0NTAwMEMzRkU4NkI0MDBCMDBBRThFOERCRjhDM0FDNDkzQzAyMUUKKzoxMDM0NjAwMDc0Mzc3NzEwODRDMDc0MDY4MDRFMzgwMUY4QzM4MDY2QzQKKzoxMDM0NzAwMDM4RkVGOEMzOEI0NjM4MjVGRkY3ODk0NjM4QTkwMDA0ODMKKzoxMDM0ODAwMDc1RUE4QTg2QTUwMEE4MDE3NUUyMEMwNTgzQzIwMjg4NDgKKzoxMDM0OTAwMDg2QTUwMEVFODNFQTAyRjhDMzgxNEUzODAwMDg4QTg2Q0EKKzoxMDM0QTAwMEE1MDBBODAxNzRDNjI0RkFFQkUyQUQ0OTQ5RjhDMzkwMUYKKzoxMDM0QjAwMEU4MTFGQUZFODZCOTAwQjAwRUU4ODZEQkY4QzNCMEZGNkIKKzoxMDM0QzAwMEU4QkZFQ0Y4QzM5MDgzNjY3QUZCQjAwMEU4NzNEQkY4RTIKKzoxMDM0RDAwMEMzOTBBQzQ5RTg1M0Q5NzIxMTM2ODgxRTFBMDEzNkEwNDAKKzoxMDM0RTAwMDhFMTIwQUMzNTJCQTAwMDFFRTVBRjhDM0FDNDkzMkU0NTQKKzoxMDM0RjAwMDM2QTM4NjEyMDUwNjAwMzY4QjFFODgxMjJCRDgzNjg5MTUKKzoxMDM1MDAwMDFFOEExMkY4QzM5MEFEOEJEOEFEODNFOTA0MDNDMzJCOTgKKzoxMDM1MTAwMDQ2NzY4OTQ2NzhGNzQ2N0EwMjAwNzQwQTgzNjY3QUZEMTEKKzoxMDM1MjAwMEI4MDAwMEU4MUNEQkY4QzMwNjE2MDdBQzQ5MjUwRjAwRkQKKzoxMDM1MzAwMDZCQzAwOThEQkVGRDAwMDNGOEFDNDkyNTBGMDBBQTg1QkMKKzoxMDM1NDAwMEMwNzQwODJCQzg1MThCQzhGM0E0NTlFODI3RjBFODQ0OEQKKzoxMDM1NTAwMDAzMDdGOEMzMzNDMEFDNDkzNkEzQjIxMzM2QTNCMDEzODQKKzoxMDM1NjAwMEY4QzM4MzY2N0FFRkU4MkMwM0Y4QzM5MDgzNEU3QTEwOTEKKzoxMDM1NzAwMEVCRjRFODlCRjBGOEMzOTBBRDNDMTk3NzBFM0MxOTc3NUIKKzoxMDM1ODAwMDBBOEJGODgxRTdGRjAwODhBNkM0MDBGOEMzOTA4MzRFMzkKKzoxMDM1OTAwMDI2MjBBQzQ5MzJFNEQxRTA4QkQ4QzFFMzAyMDNDMzg5RDEKKzoxMDM1QTAwMDQ2NkU4MzRFNDgwNEIwMDZFODk3REE0OTQ2RjlDMzkwNjAKKzoxMDM1QjAwMEZFODZCMzAwQjAwQUU4ODlEQUY4QzM5MDMzQzBBQzQ5OUMKKzoxMDM1QzAwMDZCQzAwQTg5ODY4QTAwRjhDMzkwQUM0OTMyRTQzRDBBOTAKKzoxMDM1RDAwMDAwNzcwNUI4MEEwMEVCMDgzRDVBMDA3MjAzQjg1QTAwOUMKKzoxMDM1RTAwMDUxRjdEODA1NjQwMDhCQzg4QjQ2NDRGN0UxQjk2NDAwRjUKKzoxMDM1RjAwMEY3RjE4OTQ2NDY1OUY4QzNBQzQ5RTg4NUVCRjhDMzkwMjIKKzoxMDM2MDAwMEFDNDk4NEMwNzUwNzgxNjYzOEZGRkRGOEMzODE0RTM4MjgKKzoxMDM2MTAwMDAwMDJGNzQ2Mzg0MDAwNzUwODhBODZBOTAwODg4NkFBMDUKKzoxMDM2MjAwMDAwRjhDMzkwNTE1NkU4N0YwQzVFNTlGOEMzOTBGRTg2QUYKKzoxMDM2MzAwMEI2MDBCMDBBRTgwQkRBRjhDMzkwRkU4NkI3MDBCMDBBMEQKKzoxMDM2NDAwMEU4RkZEOUY4QzM5MEZFODZCODAwQjAwQUU4RjNEOUY4Q0QKKzoxMDM2NTAwMEMzOTAwMDkwNTE1NUFDMkVBMjUyMzYzM0M5QUQ4QkY5QjAKKzoxMDM2NjAwMEMxRTcwNUE5MDEwMDc0MjMyRThCQUQ0NDAwODM3RTA4QjkKKzoxMDM2NzAwMDAwNzQxODJFODAzRTUyMzYwMTc0MDk2MEIwMDRFOEJCMTUKKzoxMDM2ODAwMDBDNjFFQjA3NjBCMEZCRThFQzBDNjE0NzQ3RDFFODc1RDMKKzoxMDM2OTAwMEQyNDE4M0Y5MDQ3MkM2NUQ1OTgzRTkwNUY3NDYzODQwODMKKzoxMDM2QTAwMDAwNzQwNUU4ODdFQUY4QzNFODhERUFGOEMzOTAzNkM2RTcKKzoxMDM2QjAwMDA2QzgxMzAxRjhDMzMzQzBBQzQ5MzZBMzgwMTJBQzQ5MjUKKzoxMDM2QzAwMDM2MkIwNjg4MTJGN0Q4MzZBMzgyMTJGOEMzOTBERTI2NkUKKzoxMDM2RDAwMERFMjZFQzI2RjIyNkY4MjZGRTI2MDQyNzBFMjcxNjI3REQKKzoxMDM2RTAwMDFFMjcyNjI3MkUyNzM0MjdCRTM0QzYzNEQyMzQzQTI3NDUKKzoxMDM2RjAwMDc4Mjc4MDI3OTQyN0EwMjdCNDI3QzAyN0Q0MjdFMDI3M0UKKzoxMDM3MDAwMEY0MjcwMDI4MTAyOEVDMzRERTI2MUUyODI2MjgyQzI4MzIKKzoxMDM3MTAwMDMyMjgzODI4NEUyODhBMjgwNjM1MjgzNTk4MjhCRTI4ODkKKzoxMDM3MjAwMEQyMjhERTI4RTYyODU0MzU2MjM1NkMzNUVFMjhDMDI5Q0IKKzoxMDM3MzAwMEM4MjlDRTI5RTAyOTcyMzU3ODM1RjAyOUZDMjk4RTM1NDMKKzoxMDM3NDAwMDA4MkExMjJBMUMyQUIwMzUzNjJBQkMzNTVBMkE2MjJBN0YKKzoxMDM3NTAwMDY4MkFDQTM1N0MyQUY4MzU4ODJBQTYyQUI4MkFDQzJBQUIKKzoxMDM3NjAwMERFMkFGMjJBMDAzNjBBMkIyNDJCMjQzNjM4MkI0QzJCNDcKKzoxMDM3NzAwMDg0MkIyRTM2M0EzNjQ2MzY1NDM2RTgyQkFFMzY0MDJDNUQKKzoxMDM3ODAwMDYyMkNCNjM2NzAyOERFMjZERTI2RDQyRUU4MkVGMDJFRTkKKzoxMDM3OTAwMEY4MkUwMDJGMEEyRjEyMkYxQTJGMjIyRjJBMkY0MjJGRjYKKzoxMDM3QTAwMEJFMzRDNjM0RDIzNDUwMkY4QzJGOTQyRkE4MkZCNDJGNzAKKzoxMDM3QjAwMEM4MkZENDJGRTgyRkY0MkYwODMwMTQzMDFDMzBFQzM0RUQKKzoxMDM3QzAwMERFMjYyNDMwMzAzMDM4MzA0NDMwNEMzMDYyMzBBNDMwODMKKzoxMDM3RDAwMDA2MzUyODM1QUEzMENFMzBENjMwRUEzMEYyMzA1NDM1QUUKKzoxMDM3RTAwMDYyMzU2QzM1RkEzMEMyMzFDMjMxQzQzMUZBMzE3MjM1Q0EKKzoxMDM3RjAwMDc4MzUwQTMyMTYzMjhFMzUyMjMyMkMzMjM2MzJCMDM1RDYKKzoxMDM4MDAwMDRBMzJCQzM1NzQzMjhDMzI5QTMyQ0EzNTlFMzJGODM1MUYKKzoxMDM4MTAwMEFBMzJDNjMyRDgzMkVDMzJGRTMyMEUzMzAwMzYxMjMzQzAKKzoxMDM4MjAwMDI2MzMyNDM2MzIzMzlBMzNERTMzMkUzNjNBMzY0NjM2NTIKKzoxMDM4MzAwMDU0MzY1QzM0QUUzNkFBMzRCMDM0QjYzNjhDMzBFMzI4MTUKKzoxMDM4NDAwMEY3NDYzODQwMDA3NTMyRThFM0U4MzNDMEFDNDkzRDVCRTkKKzoxMDM4NTAwMDAwNzcxOThCRDhEMUUzMkVGRjk3Q0UzNjcyMEI4NUM5MkUKKzoxMDM4NjAwMDc1RTg4QjQ2NDhFODFBMENDMzRFNDFDMzZBMDAxRkM2NzAKKzoxMDM4NzAwMDA2OTMxMjBDOUMwRUU4NjNEQUU4QkNFODMzQzBBQzQ5NEUKKzoxMDM4ODAwMDNENUIwMDc3RTc4QkQ4RDFFMzJFRkY5Nzg2Mzc3MkQ5NUYKKzoxMDM4OTAwMDg1Qzk3NUU4QzNGNzQ2N0ExMDAwNzUwRjgzQkU4NDAwQUEKKzoxMDM4QTAwMDAwNzQwOEI4NDgzQTg5ODY4MDAwQzM4MUJFODAwMEVDNjUKKzoxMDM4QjAwMDNDNzRGNzgzQkU4ODAwMDA3NTA1QjhFQzNDRUJFN0Y3NzUKKzoxMDM4QzAwMDQ2N0EwODAwNzU0MDFFNjA4QjhFODgwMDNCNEU3NDc3RTgKKzoxMDM4RDAwMDMzM0I0RTc4NzcyRUM0N0UxMDhCREYyNjAzM0Q0NzQ3NUYKKzoxMDM4RTAwMDMzQzA4RUQ4OERCNkY0MDA4QkMxRjc0NjdBMDEwMDc1Q0YKKzoxMDM4RjAwMDFERjNBNDI2MDEwNzI5NDY3ODAxNDY3NjI5NDY3NEIwQUYKKzoxMDM5MDAwMDBDRTgzRUQ3NjExRkM3ODY4ODAwMDAwMEVCQUNFM0UzRkMKKzoxMDM5MTAwMDUwOTBBQzI0N0ZBQUUyRkE1OEVCRDg5MDhCOEU4ODAwQTYKKzoxMDM5MjAwMEUzNDY4QjlFOEEwMDg1REI3NDNFQkE1MEZGRUQyQjg2MDIKKzoxMDM5MzAwMDgyMDAzQkMzNzIzNzhEQjZGNDAwQzQ3RTEwOEJERjI2NDUKKzoxMDM5NDAwMDAzM0Q0NzQ3OEJDMTE2MUZGNzQ2N0EwMTAwNzUyNEYzRTQKKzoxMDM5NTAwMEE0MjYwMTA3Mjk0Njc4MDE0Njc2Mjk0Njc0Qzc4Njg4MzkKKzoxMDM5NjAwMDAwMDAwMEIwMENFOERBRDY4MzY2N0FGN0MzQjAwMEU4NEUKKzoxMDM5NzAwMEQwRDZDM0UzREM1MEFDMjQ3RkFBRTJGQTU4RUJEMjkwNTUKKzoxMDM5ODAwMDFFNjAzM0MwOEVEODhEQjZGRDAwOEI4Njg4MDA4Qjk2NjYKKzoxMDM5OTAwMDg0MDAzQTA0NzUxMDhCREU0NjhCQzg4REJFRjQwMEYzQUMKKzoxMDM5QTAwMEE2NzQ2NjhCRjM5MDgzQzYwOTRBNzVFNjhEQjZGRDAwNTIKKzoxMDM5QjAwMDhCOTY4NDAwM0EwNDczMTA4QkRFNDY4QkM4OERCRUY0NjAKKzoxMDM5QzAwMDAwRjNBNjc0NzY4QkYzOTA4M0M2MDk0QTc1RTY4REI2MkMKKzoxMDM5RDAwMEY0MDBBQ0Y3NDY3QTAxMDA3NDAyMjQ3RjFFQzU1RTEwMjUKKzoxMDM5RTAwMDhCMzc4ODQwMDI0Njg5MzdGRjRFNzhGRjQ2NzZGRjRFNzgKKzoxMDM5RjAwMDc0MUY4QjhFODgwMDQ5ODk4RTg4MDBFMzQzOERCNkY0NEUKKzoxMDNBMDAwMDAwOEJGRTQ2RjNBNEU5N0RGRkM1NzYxMDhCMUM4NURCOTkKKzoxMDNBMTAwMDc0MDgwM0YzODNDNjAzODNFNkZFOEI4Njg0MDAyQkMyRkYKKzoxMDNBMjAwMEI0ODA4OTA0NDY0NkM3MDQwMDAwODk3NjEwODM0RTdBMjQKKzoxMDNBMzAwMDA0Qzc4Njg4MDAwMDAwNjExRkY5QzMzM0MwNjExRkMzM0IKKzoxMDNBNDAwMEIwODA4NEMwNjExRkMzOTA4QjRFNzgyQjhFODgwMDc2MjcKKzoxMDNBNTAwMDI3ODlCNjhDMDA4QjVFNzQzQkNCNzIwMjhCQ0IzQkM4NDQKKzoxMDNBNjAwMDcyMDI4QkM4OEJDMUUzNDQzM0QyOEVDMjhCRDE4M0JFMkEKKzoxMDNBNzAwMDg4MDAwMDc0MDZFOThFMDAzM0MwQzM4QjVFMTAwMzFGRkMKKzoxMDNBODAwMDQzNDM1MkY3NDY3QTAxMDA3NTJBQUM4REJFRTQwMDhCQTEKKzoxMDNBOTAwMDhFODYwMEYyQUU3NDM0ODgwNzQzNEE3NUVENTg4QjVFMEIKKzoxMDNBQTAwMDEwMDEwNzI5NDY3ODAxNDY3NjI5NDY3NDhCQzYyQjg2NzUKKzoxMDNBQjAwMDhDMDBDMzkwQUM4REJFRTQwMDhCOEU4NjAwRjJBRTc0OTkKKzoxMDNBQzAwMDBBMjQ3Rjg4MDc0MzRBNzVFQkVCRDI4ODg2RjQwMEM3NDcKKzoxMDNBRDAwMDg2ODgwMDAxMDA1ODJCQzI3NDBFOEI1RTEwMDEwNzI5RTYKKzoxMDNBRTAwMDQ2NzgwMTQ2NzYyOTQ2NzQ0MEU4OTRGRTcyQkU0QTc1Q0YKKzoxMDNBRjAwMDE1ODNCRThBMDAwMDc0QjRCQTUwRkZFRDg5ODY4MjAwMzcKKzoxMDNCMDAwMDgzNEU3QTA4RUJBNjhEQkVGNDAwMDNCRTg4MDBBNEZGQTYKKzoxMDNCMTAwMDg2ODgwMEU4NkFGRTcyOTQ3OTA2NEE3NDhGRTk1QkZGMzIKKzoxMDNCMjAwMDRBNzRDRUVCRTE5MDUwRTgxMUNDOEI0Njc0Mzk0NjcyNjIKKzoxMDNCMzAwMDc0MjcxRTU2NTEzM0M5QzU3NjBDQUQ3NDEwNzgwOTAzMkQKKzoxMDNCNDAwMEM4MDUwMTAwMjRGRTAzRjAzQjc2MTA3NkVEMjk0RTc2ODEKKzoxMDNCNTAwMDAxNEU3OEU4MzdDQzU5NUUxRjU4QzM5MEM0N0UxMDI2QkEKKzoxMDNCNjAwMDhCMUQ4M0MzMDMyNjg5MUQ0QjAzRkJBQjkxQUFCODAzQUUKKzoxMDNCNzAwMDAwMjk0Njc4MDE0Njc2Mjk0Njc0QzM5MEM0N0UxMDI2RjMKKzoxMDNCODAwMDhCMUQ0MzI2ODkxRDQzMDNGQkFBRkY0RTc4RkY0Njc2MTMKKzoxMDNCOTAwMEZGNEU3NEMzRThFNUZGQzM4MDgxODQ4NTgyODM4Njg3RjYKKzoxMDNCQTAwMDUwNTM4QURDODNFMzBFRDFFQjJFOEE4Nzk4M0IwODg2M0MKKzoxMDNCQjAwMEIwMDBGRTg2QjEwMEIwMEFFODg3RDQ1QjU4QzM1MDhBRDMKKzoxMDNCQzAwMEM4QjhGRjAwRTg5NUZGNThDMzkwOEE4NkJCMDBFOEFCRjEKKzoxMDNCRDAwMEZGQzNFOENCRkZFOEYyRkZDMzkwRThDM0ZGRThCNEZGMDAKKzoxMDNCRTAwMEMzOTAzM0MwRTg5NUZGQzNCOEZGMDAzM0M5RTg2Q0ZGNEEKKzoxMDNCRjAwMEMzOTBCOEZGMDFCMTEwRTg2MkZGQzM5MEMzRkMzQkUyODEKKzoxMDNDMDAwMDNCRjIzQkYyM0JGQzNCRTIzQkU4M0JFODNCRkMzQkUyNkMKKzoxMDNDMTAwMDNCRTgzQkU4M0JGQzNCRTIzQkUyM0JFMjNCMDAxMDAwODUKKzoxMDNDMjAwMDAwMDAxMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAxMDAwNTQKKzoxMDNDMzAwMDAwMDAxMDAwMDAwMDEwMDAwMDAwMTAwMDAwMDAwODAwNEMKKzoxMDNDNDAwMDAwMDAwODAwMDAwMDA4MDAwMDAwMDgwMDAwNTE1MzhCMkQKKzoxMDNDNTAwMDRFMzg4MUUxRkZFRUE4MDQ3NDA0ODFDOTAwMDE4QUUwQjYKKzoxMDNDNjAwMDgwRTQwMzI0MThEMEU0MEFDNDMzREI4QUQ4MkU4Qjg3N0YKKzoxMDNDNzAwMEZEM0I4OTQ2N0MyRTBCOEYxRDNDODk0RTM4RDFFQjJFQTcKKzoxMDNDODAwMDhBQTczRDNDNUI1OUMzQUM0OTNDMDE3MjFENzQyMDNDODIKKzoxMDNDOTAwMDAzNzIyMzc0MjgzQzA4NzIyQjc0MzAzQzIwNzIzNzc0RjIKKzoxMDNDQTAwMDNBQkJEQTNCMzJFNDg5NUU3RUMzQkJBMDNCRUJGNUJCOUIKKzoxMDNDQjAwMDk0M0JCNDAxRUJGMEJCRkMzQkI0MDJFQkU5QkJFMjNCNTEKKzoxMDNDQzAwMEI0MDNFQkUyQkJCRTNCQjQwNEVCREJCQkNBM0JBQzQ5ODkKKzoxMDNDRDAwMDg4ODZCQjAwRUJDRUJCRDIzQkVCRjNCQkZDM0JFQkM0MUIKKzoxMDNDRTAwMEE5MDQwMDc1RDFBOTA4MDA3NURBRUJEMThCNUU3NDhCM0QKKzoxMDNDRjAwMDRFNzgzQkNCNzIwMjhCQ0IzQkM4NzIwMjhCQzg4QkMxMTgKKzoxMDNEMDAwMEUzMkNDNDdFMTA4QkRGMjYwMzNENDc0N0Y3NDY3QTAxM0MKKzoxMDNEMTAwMDAwNzUxQ0Y3QzcwMTAwNzQwMjQ5QTREMUU5RjNBNTczMkIKKzoxMDNEMjAwMDAxQTQyNjAxMDcyOTQ2NzgwMTQ2NzYyOTQ2NzRDMzUwMjYKKzoxMDNEMzAwMDUzQkI3RjdGRjdDNzAxMDA3NDA1NDlBQzIyQzNBQUQxRUEKKzoxMDNENDAwMEU5RTMxRDlDQUQyM0MzQUI0OTc0MTRBRDIzQzNBQjQ5NTgKKzoxMDNENTAwMDc0MERBRDIzQzNBQjQ5NzQwNkFEMjNDM0FCRTJFNTlEM0YKKzoxMDNENjAwMDczMDRBQzIyQzNBQjVCNThFQkI4RThDRUM5OEI1RTM4QUEKKzoxMDNENzAwMEY3QzMxMDA0NzUwMUMzRjdDMzQwMDA3NDA1RThCOEUzNDYKKzoxMDNEODAwMEVCMDNFOEE4RTM4MTY2MzhFRkZCRjZDMzEwNzQzQ0Y2NUEKKzoxMDNEOTAwMEMzMDI3NDA2RTREODBDMDFFNkQ4RjZDMzA0NzQxMTgzOTgKKzoxMDNEQTAwMEMyMDg4QTg2QTcwMDBDMDFFRTg4ODZBNzAwODNFQTA4NkQKKzoxMDNEQjAwMEY2QzMwODc0MEZFODhCRTM3MjBBOEE4NkMwMDBFNjM4RkYKKzoxMDNEQzAwMEIwMjNFNjBBRjdDMzAwMDQ3NTAxQzNGN0MzMDAwODc1MDIKKzoxMDNERDAwMEY5OEE4NkE1MDBGNkMzNDA3NTBEQTgxMDc1RUMwQzEwODUKKzoxMDNERTAwMDg4ODZBNTAwRTYwQ0MzQTgwMTc1REY4M0MyMDIwQzA1MTYKKzoxMDNERjAwMEVFODg4NkE1MDBDM0IwMDBFODQ3RDJFQjBGQjAwMkU4MUEKKzoxMDNFMDAwMDkwMEVFQjA4ODM2NjM4REY4MzRFN0EwMjMzQzA4RUQ4N0IKKzoxMDNFMTAwMEZBQTA5MjEyNDBBMjkyMTIzQzA1NzIxRUM2MDY5MjEyOUQKKzoxMDNFMjAwMDAwRkJCMDAxRTg2QjBFRkFBMTI2MDEyMzA2MkEwMUE4QzcKKzoxMDNFMzAwMDAxNzUwN0U4RTIwN0U4NjEwOTkwQjAwMEU4MzdEMkZCQjYKKzoxMDNFNDAwMDg1RUQ3NEI5RkFGNzQ2N0E0NjAwNzVDMDhCNDY3ODNEMjEKKzoxMDNFNTAwMDBBMDA3MkIwOEI0RTc0ODNGOTUwNzI5QTgzNjYzOERGMTEKKzoxMDNFNjAwMEM1NzYxNDhCNDYzQTg1QzA3NTU4QUQ4NUMwNzUwRkU4ODgKKzoxMDNFNzAwMEY4RkVGNzQ2N0EwODAwNzQ5M0U4QTBGQUVCOEUzQjc2REEKKzoxMDNFODAwMDA0NzYyMUI5MDIwMDM5NEUyRTc3MDVDNzQ2MkUwMDAwNzAKKzoxMDNFOTAwMDU2OEI3NjJDODk3NjA0QzcwNDAwMDA0NjQ2ODk3NjJDMUEKKzoxMDNFQTAwMDI5NEUyRTVFODVDMDc5MTdGNkM0MTA3NDA1RkY1NjdDMjYKKzoxMDNFQjAwMEVCMDNGRjU2N0U4OTc2MTRCMDBDRTg4NUQxRUI4Njg5M0EKKzoxMDNFQzAwMDQ2M0FGRjk2ODAwMDI5NDYzQTg5NzYxNEIwMENFODcxOEMKKzoxMDNFRDAwMEQxRTk3MUZGMDAwMDAwMDAwMDAwMDAwMDA4MDQxMDAyOUEKKzoxMDNFRTAwMDAxMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQjEKKzoxMDNFRjAwMDAwMDAwMDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwQzIKKzoxMDNGMDAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwQjEKKzoxMDNGMTAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwQTEKKzoxMDNGMjAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwOTEKKzoxMDNGMzAwMDgwODA4MDgwODBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzEKKzoxMDNGNDAwMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMEMwQzBDMDgwQjEKKzoxMDNGNTAwMDgwODA4MDAwODA4MDgwODA4MDgwODA4MDgwODA4MDgwRTEKKzoxMDNGNjAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwNTEKKzoxMDNGNzAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwNDEKKzoxMDNGODAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwMzEKKzoxMDNGOTAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwMjEKKzoxMDNGQTAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwMTEKKzoxMDNGQjAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwMDEKKzoxMDNGQzAwMDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwODA4MDgwRjEKKzoxMDNGRDAwMDgwODA4MDgwNEU0MTc4NDFEMDQxRjQ0MTA2NDIxODQyQjEKKzoxMDNGRTAwMEMzOTA4RTQ2MDI4QjdFMjI4OTdFNkM4MDY2MjdGRDhCNzUKKzoxMDNGRjAwMDU2MjQ4M0ZBMDQ3MkU5ODNFQTAyOEJEOTNCQ0E3NjAyMUIKKzoxMDQwMDAwMDhCQ0FCMDBBNTc1MThCRkVGMkFFOEJDMTU5NUY3NTFFMzkKKzoxMDQwMTAwMDUwNDAyQkM4NzQwNjJCRDEyQkQ5RjNBNDU5NEI0QTRBRDQKKzoxMDQwMjAwMEIwMERBQUE0M0JDQTc2MDI4QkNBRTMxM0VCRDQyQkQ5RkEKKzoxMDQwMzAwMEY3QzYwMTAwNzQwMkE0NDlEMUU5RjNBNTczMDFBNDg5NkMKKzoxMDQwNDAwMDdFMjIyQjdFNkMyOTdFMjQwMTdFMUE4QkNCODA3RTI2REQKKzoxMDQwNTAwMDAyNzQwNTgwNjYyNkZEQzM2MEIwRkRFODE4MDM2MUMzRTUKKzoxMDQwNjAwMEMzOTBFODdDMDI3MkY5OTA4MzRFMjYyMDhCNDY2QTg5QzEKKzoxMDQwNzAwMDQ2NkU4QjQ2NDgwRDA0MDAyNUJGRkY4OTQ2NDhCMDA2QjIKKzoxMDQwODAwMEU4QkZDRkMzODk3RTIyMkI3RTZDMDE3RTFBMjk3RTI0NTUKKzoxMDQwOTAwMDgwN0UyNjAyNzQwNTgzNjYyNkZEQzM2MEIwRkRFOEQ1RTgKKzoxMDQwQTAwMDAyNjFDMzkwOEFCRUMyMDBFQjI0Rjc0NjQ4NDAwMDc1MDcKKzoxMDQwQjAwMEIxOEU0NjAyOEI3RTIyODk3RTZDOEI1NjI0ODNFQTBBNUYKKzoxMDQwQzAwMDc4OUUwM0Q3ODA2NjI3RkQzM0MwOEFCRUMyMDBFM0I0NjIKKzoxMDQwRDAwMDNCRkE3N0IwQUM0OTkzMkU4QTg3RDQzRTkzMjJERjc1QTIKKzoxMDQwRTAwMDE3QUFFM0EwM0JGQTc3OUNBQzQ5OTMyRThBODdENDNFNkIKKzoxMDQwRjAwMDkzMjJERjc1MDNBQUVCRDZGNkMzN0Y3NTA1RkY0NjY2RUMKKzoxMDQxMDAwMEVCREZGNkMzNDA3NTBDOEJEODgzRUIwOEQxRTMyRUZGQjEKKzoxMDQxMTAwMEE3RDQzRkZGNDY2NjJDMjBFQkM3ODVDMDc0MkM4OTQ2ODgKKzoxMDQxMjAwMDZBODM0RTQ4NDA4OTdFMjIyQjdFNkMwMTdFMUEyOTdFNEUKKzoxMDQxMzAwMDI0ODA3RTI2MDI3NDA4ODM2NjI2RkRFOEEzMDFDMzYwRkUKKzoxMDQxNDAwMEIwRkRFODMxMDI2MUU4OTgwMUMzRTk1N0ZGOTA4QjVFNEEKKzoxMDQxNTAwMDY2NEI3ODAzODk1RTY2QUE4QjVFNjRGN0MzMDAyMDc1QTAKKzoxMDQxNjAwMDAzRTk0MEZGRjdDMzQwMDA3NDA4OEE4NkMxMDBBQUU5NEEKKzoxMDQxNzAwMDMyRkZCODMyMDBFQkEzOTA4QjVFNjY4OTVFNjg4M0MzMjIKKzoxMDQxODAwMDA4ODBFM0Y4ODk1RTY2OEI1RTY0ODFFMzAwMTg4MUZCM0EKKzoxMDQxOTAwMDAwMTg3NDJEQUE4NURCNzQyNUY3NDY2NDQwMDA3NTE4NTUKKzoxMDQxQTAwMDgxRkIwMDEwNzQwQzhCNDY2NjJCNDY2OEMxRTAwNEU5NjUKKzoxMDQxQjAwMDY4RkZCODY0MDBFOTYyRkY4QTg2QzEwMEFBQUFFOUUzNDEKKzoxMDQxQzAwMEZFNTE4QjRFNjYyQjRFNjhCMDIwRjNBQTU5RTlENEZFRkYKKzoxMDQxRDAwMDhCNUU2Njg5NUU2ODhCNUU2NEY3QzMyNDAwNzQxMEM3Q0IKKzoxMDQxRTAwMDQ2NjYwMDAwRjdDMzA0MDA3NDA1QjAwREFBQjAwQUFBMjEKKzoxMDQxRjAwMEVCNDg5MDkwQUFGNzQ2NjQwMDQwNzQwNkI4RDAwN0U5RUYKKzoxMDQyMDAwMDE4RkZFOTlGRkU5MEFBRjc0NjY0MDA4MDc0MDZCOEQwQjQKKzoxMDQyMTAwMDA3RTkwNkZGRTk4REZFOTA4QjVFNjY4OTVFNjg4NURCQTcKKzoxMDQyMjAwMDc1MEM4QjVFNjRGN0MzMTAwMDc0MDZFOTc2RkU4QjVFMzYKKzoxMDQyMzAwMDY0RjdDMzA4MDA3NDI3QjAwQUFBRjdDMzIwMDA3NTFGRUIKKzoxMDQyNDAwMEY3QzMwMDAxNzUwM0U5NUJGRUY3QzM0MDAwNzUwNkI4Q0MKKzoxMDQyNTAwMDY0MDBFOUM1RkU4QTg2QzEwMEFBQUFFOTQ2RkVBQUM3OEIKKzoxMDQyNjAwMDQ2NjYwMDAwRjdDMzAwMDY3NEYxRjdDMzQwMDA3NDE5RjYKKzoxMDQyNzAwMDhBODZDMTAwODFFMzAwMDY4MUZCMDAwNDcyMDY3NjAyOTMKKzoxMDQyODAwMEFBQUFBQUFBQUFBQUU5MUJGRTgxRTMwMDA2ODFGQjAwNEEKKzoxMDQyOTAwMDA0NzIwRTc2MDZCODk2MDBFOTdGRkVCODY0MDBFOTc5RUMKKzoxMDQyQTAwMEZFOEI0NjY4RTk3M0ZFOTAzNjhCMEVEQTEyODNGOTMyODQKKzoxMDQyQjAwMDczMUQxRTA2MzNDMDhFRDg4RUMwOEQ3NjRDQkZEQzEyQTcKKzoxMDQyQzAwMDAzRjlBNUE1QTU4M0MxMDY4OTBFREExMjA3MUZDM0IwOUQKKzoxMDQyRDAwMDA4RTg2RUNEQzM5MDgzNjY0OEZFRTg5M0M0RThDOEZGNDMKKzoxMDQyRTAwMEMzRjY0NjI3MDI3NTBGOUNGQTgzN0UxQTAwNzQwOTgwNzQKKzoxMDQyRjAwMDRFMjcwMTlERjlDM0Y4QzM1MDUyRjc0NjM4NDAwMDc0NjkKKzoxMDQzMDAwMDFERTgzNERFODNDMjBBRUNBODQwNzUyNzgzRUEwODhBRDgKKzoxMDQzMTAwMDg2QTUwMDBDMDI4ODg2QTUwMEVFNUE1OEVCRDFFODBDNjEKKzoxMDQzMjAwMERFOEE4NkE1MDAyNEZCMEMwMjg4ODZBNTAwRTYwQzVBQ0UKKzoxMDQzMzAwMDU4RUJCQzgwNEUyNzAyNUE1ODlERjhDMzA4NDYyNjlDNkQKKzoxMDQzNDAwMEZBOEE4RUE1MDBGNzQ2Mzg0MDAwNzUxNEY2QzEwNjc0NDcKKzoxMDQzNTAwMDIzRThEOUREOEFDMTI0Rjk4ODg2QTUwMEU2MEM5REMzMkYKKzoxMDQzNjAwMEY2QzEwMjc0MEZFOEQwREQ4M0MyMDI4QUMxMjRGRDg4NDEKKzoxMDQzNzAwMDg2QTUwMEVFOURDMzhCNUUyNjIyQzM4ODQ2MjY3NDAxNjcKKzoxMDQzODAwMEMzODA2NjI3RkQ5Q0ZBOEE4RUE1MDBGNzQ2Mzg0MDAwNTgKKzoxMDQzOTAwMDc1MTZGNkMxMDQ3NTBGRTg5M0REOEFDMTI0RkQwQzA0N0YKKzoxMDQzQTAwMDg4ODZBNTAwRTYwQzlEQzNGNkMxMDI3NUY5RTg4OEREOTQKKzoxMDQzQjAwMDgzQzIwQUVDQTgyMDc1MEU4M0VBMDg4QUMxMEMwMjg4MjEKKzoxMDQzQzAwMDg2QTUwMEVFOURDMzgzRUEwQTMzQzk4QTRFMUM4QjQ2M0MKKzoxMDQzRDAwMDFBM0JDODczMUIwMTRFMkEyQkMxODk0NjFBMUVDNTc2OEIKKzoxMDQzRTAwMDAwRjM2RTFGODk3NjAwODNDMjAyOEE4NkE1MDBFQkNEOUEKKzoxMDQzRjAwMDg1QzA3NDEyMDE0NjJBOEJDODFFQzU3NjAwRjM2RTFGNTUKKzoxMDQ0MDAwMDg5NzYwMDg5NEUxQUY2QzcwMTc1MjM4MENCMDI4OTVFMzIKKzoxMDQ0MTAwMDI2RTgwOEMzODNDMjAyOEE4NkE1MDAyNEZERUU4ODg2QUEKKzoxMDQ0MjAwMEE1MDBGNkM3MTA3NTA1QjAwMkU4MTZDQzlEQzM4M0MyN0YKKzoxMDQ0MzAwMDAyOEE4NkE1MDBFQjg2OTA4QkQxOEI0NjI0M0JDODc2RkEKKzoxMDQ0NDAwMDAyOEJDODJCRDEyQkMxOEJEOUUzMjI4MDY2MjdGRDhFMkUKKzoxMDQ0NTAwMDQ2MDI4QjdFMjJGN0M2MDEwMDc0MDJBNDQ5RDFFOUYzMUIKKzoxMDQ0NjAwMEE1NzMwMUE0ODk3RTIyODk0NjI0MDE1RTFBOEJDQTgwMjUKKzoxMDQ0NzAwMDdFMjYwMjc0MDU4MDY2MjZGREMzNjBCMEZERThGNkZFNjgKKzoxMDQ0ODAwMDYxQzM1MEU0MEE4NEMwNzUwQTg2ODZBMTAwODRDMDc0QTIKKzoxMDQ0OTAwMDBBRTYwQTU4MEMyMDg5NDY0OEY5QzM1ODI0REY4OTQ2QTEKKzoxMDQ0QTAwMDQ4RjhDMzkwRkJCMDAyRThFODA3RkFFODJFMDFGQkIwMzkKKzoxMDQ0QjAwMDAxRThERTA3RkFCMDAyRThCQ0NCRkI4NUVENzRFNUZBNTMKKzoxMDQ0QzAwMDhFNUUwQUZCOTBGQThCNDY0ODhCNzY0MEE4OEM3NURFOTAKKzoxMDQ0RDAwMEE4MjA3NDFBNTBFODU1REM1OEU4QTZGRjczMTBCMDAyMDMKKzoxMDQ0RTAwMEU4NUZDQkVCQzk5MDI1RkYwMDhCQzhFQjM2OTBBODAxQTUKKzoxMDQ0RjAwMDc1MjI0NjgzRTZGRTNCNzYwODc0NzlBRDhBRkNCM0YwRkMKKzoxMDQ1MDAwMDIyRkIzQUZCNzRFMDNBQkVBMDAwNzQyRUU4RDJGRDczQTEKKzoxMDQ1MTAwMDc3RUI5QjkwOEFFMDI0RkM4ODQ2NDg4QjRFNEFGNkM0OTEKKzoxMDQ1MjAwMDAyNzQxREU4QkJGRDcyODZFODEzRjM4OTc2NDBFMzkzQkQKKzoxMDQ1MzAwMDgzNEU0ODAzODk0RTRBRTk3NEZGMjVGRjBGOEJDODkwQ0MKKzoxMDQ1NDAwMDhCODY5ODAwODVDMDc0MUE1MThBOEVBMDAwQzBFOTA0MzkKKzoxMDQ1NTAwMEJBMDEwMEQzRTI1OTIzQzI3NDA4MDNGMTg5NzY0MEU5MTUKKzoxMDQ1NjAwMDYxRkZGRjU2NjJFM0Y1ODM0RTQ4MDE4OTRFNEE4OTc2MjIKKzoxMDQ1NzAwMDQwRTkzQUZGODE0RTI2MDAxMDhCNDY1MDNCNDY0Njc3NzUKKzoxMDQ1ODAwMDAzRTg1MkZERTkyN0ZGOTA4OEJFQTAwMEVCQUMwQTA2QzUKKzoxMDQ1OTAwMDkwMTI4QUUwQkEwNjAxQjAwNEVFRUM4NEMwNzUxMkIwNDUKKzoxMDQ1QTAwMDA0RUU4QUM0RUUzMkU0QTg4MDc0MDZDNzA2ODQxMjAwQzIKKzoxMDQ1QjAwMDAwODgyNjkwMTJDMzBBMDY5MDEyOEFFMEJBMDYwMUVDMUYKKzoxMDQ1QzAwMEE4MDE3NUVEQkEwODAxOEFDNEVFMzJFNEE4ODA3NEUxNEUKKzoxMDQ1RDAwMEM3MDY4NDEyMDAwMDg4MjY5MDEyQzM5MDM2RjcwNjI0N0UKKzoxMDQ1RTAwMDAxMDEwMDc1MzAzNjhCMEVEQTEyODBGOTM2NzMyNjMzRUUKKzoxMDQ1RjAwMEMwOEVDMDhFRDhCRkRDMTIwM0Y5QjAwOEU4NzdDQTg1MzgKKzoxMDQ2MDAwMEVENzQwRThENzY0Q0E1QTVBNTgwQzEwNjgwRjkzNjcyOTUKKzoxMDQ2MTAwMEU5ODkwRURBMTJDM0MzOTBGNzA2MjYwMTAxMDA3NUY2ODgKKzoxMDQ2MjAwMDhCMEUyMDEzODVDOTc1RUUzM0MwOEVDMDhFRDhCRjI0ODMKKzoxMDQ2MzAwMDEzQjkzNjAwQjAwQUU4M0RDQTg1RUQ3NTA2RTkxMjAxRTYKKzoxMDQ2NDAwMEU5MEEwMTMzREI4QTQ2NEM4QUE2QjMwMEZFQ0M3ODBFMTkKKzoxMDQ2NTAwMDg4QTZCMzAwMEFEQ0I0MEFBQjgzRTkwMjc2RTI4QUE2MzQKKzoxMDQ2NjAwMEIyMDBGRUNDNzgwRTg4QTZCMjAwMEFEQ0I0MDhBQjgzOTgKKzoxMDQ2NzAwMEU5MDI3NkNDOEFBNkIxMDBGRUNDNzgxODhBQkVCMDAwREEKKzoxMDQ2ODAwMDc1MDQ4OEE2QjAwMDg4QTZCMTAwMEFEQzhBRTdBQjgzNkYKKzoxMDQ2OTAwMEU5MDI3NkFDOEFBNkI0MDBGRUNDNzgxRjg4QTZCNDAwRTYKKzoxMDQ2QTAwMDBBRENCNDBCQUI4QTg2QkMwMDhBQTZCRDAwQUI4Qjg2NDUKKzoxMDQ2QjAwMEJFMDBBQjgzRTkwNjc2ODg4QTQ2NEM4QUE2QjYwMEZFMjEKKzoxMDQ2QzAwMENDNzgxOTg4QTZCNjAwMEFEQ0I0MENBQkU4REJDQkFCMUYKKzoxMDQ2RDAwMDhCNDYyQUFCODNFOTA2NzY3NDhBNDY0QzhBQTZCNzAwRDUKKzoxMDQ2RTAwMEZFQ0M3ODE5ODhBNkI3MDAwQURDQjQwREFCRThCQUNCQ0IKKzoxMDQ2RjAwMEFCOEI0NjM0QUI4M0U5MDY3NjUzOEE0NjRDOEFBNkI4MjAKKzoxMDQ3MDAwMDAwRkVDQzc4MTk4OEE2QjgwMDBBRENCNDBFQUJBMTUwMjQKKzoxMDQ3MTAwMDEyQUJBMTUyMTJBQjgzRTkwNjc2MzI4QTQ2NEM4QUE2QzYKKzoxMDQ3MjAwMEI1MDBGRUNDNzgxODg4QTZCNTAwMEFEQ0I0MEZBQjhCQjgKKzoxMDQ3MzAwMDg2OUEwMEFCOEI4NjlDMDBBQjgzRTkwNjc2MEY4NERCMDAKKzoxMDQ3NDAwMDc1MDNFOUVGRkVCMDBBRThGOEM4RTlFN0ZFQjAwQUU4NDkKKzoxMDQ3NTAwMEYwQzhGN0Q5ODNDMTM2OEJDMTBEODAwMDg2QzRBMzIyNkYKKzoxMDQ3NjAwMDEzNDE0MTg5MEUyMDEzQzNBMTg0MTIyQkMxNzIxMUEzREUKKzoxMDQ3NzAwMDg0MTJCRTIyMTNEMUU5RjM2RjkwODkwRTIwMTNGOEMzN0YKKzoxMDQ3ODAwMEY5QzNDMzgxRUY2QTEzNzRGOThCQzcwRDgwMDA4NkM0MjcKKzoxMDQ3OTAwMEEzNjgxMzQ3NDc4OTNFNjYxM0MzRjcwNjJBMDEwMTAwNDEKKzoxMDQ3QTAwMDc1RTA4QjBFNjYxM0UzMDc4MEY5MjA3N0Q1NDk0OTMzMEUKKzoxMDQ3QjAwMEMwOEVDMDhFRDhCRjZBMTM4QkY3MDNGOTgzQzYzNDNCMTMKKzoxMDQ3QzAwMEZFNzdDMEIwMEVFOEFFQzg4NUVENzRCNzhBNDY0QzhBNTUKKzoxMDQ3RDAwMEI2QjkwMEZFQ0U3ODE1ODhCNkI5MDA4QUE2QTkwMDgwQzEKKzoxMDQ3RTAwMENDQzBBQjg0RjY3NDA1QjAwRUU4NTZDODhBQjZCQTAwRTEKKzoxMDQ3RjAwMEZFQ0U3OENCOEE5RUE5MDA4QUJFQUIwMDhBNTYzRjhBM0QKKzoxMDQ4MDAwMEYzMzJGNzBBQjZBQzAwQzY4NkFDMDAwMDIyRjI3NDRCNTUKKzoxMDQ4MTAwMEY2QzYwODc0MEZCNDAyRjZDMzA4NzUwMkI0MDNBQjgwODEKKzoxMDQ4MjAwMEU2Rjc3NDM3RjZDNjAxNzQwRkI0MDBGNkMzMDE3NTAyREIKKzoxMDQ4MzAwMEI0MDFBQjgwRTZGRTc0MjNGNkM2MDI3NDBGQjQwNEY2MkUKKzoxMDQ4NDAwMEMzMDI3NTAyQjQwNUFCODBFNkZENzQwRkY2QzYwNDc0QUUKKzoxMDQ4NTAwMDBBQjQwNkY2QzMwNDc1MDJCNDA3QUJDNjg2QkEwMDAwRjQKKzoxMDQ4NjAwMDg4OUVBQjAwRTk1OEZGOTBBMTg0MTIyQkMxNzIxMUEzNUUKKzoxMDQ4NzAwMDg0MTJCRTY4MTNEMUU5RjM2RjkwODkwRTY2MTNGOEMzRjIKKzoxMDQ4ODAwMEY5QzNBMTg0MTI0MTQxMkJDMTcyMjNBMzg0MTI4QkMxQUQKKzoxMDQ4OTAwMDQ4NDgzMkU0MEM4MDg2QzRFRjkwOTA5MDkwOTBCRURDNDMKKzoxMDQ4QTAwMDEyNDk0OUQxRTlGMzZGOTA4OTBFREExMkY4QzNGOUMzQkUKKzoxMDQ4QjAwMDhBQzg4QTQ2NENCNDAxODNFQjA2RUY5MDkwOTA5MDkwQTIKKzoxMDQ4QzAwMEI4MDEwMEVGOTA5MDkwOTA5MDhBQzFFRjkwOTA5MDkwRjYKKzoxMDQ4RDAwMDkwRTk5NzAwRTlBQzAwMzNDMDhFRDg4OTFFODQxMkMzREEKKzoxMDQ4RTAwMDM2OEIxRTg0MTJGQjkwRkFCMDBDRTg4OUM3ODVFRDc0RjQKKzoxMDQ4RjAwMEU2QzU3NjBDODNGQjE0NzJEQkZCOTBGQUFEODVDMDc4QkQKKzoxMDQ5MDAwMEFGNzRFMjhCRkUwM0Y4MzY4QjBFODYxMjNCQzE3NzAyNDIKKzoxMDQ5MTAwMDhCQzg4M0VCMDQzQkQ5NzcwMjhCQ0IzM0MwOEE0NjRDRTAKKzoxMDQ5MjAwMEVGOTA5MDkwOTA5MDhCQzFFRjkwOTA5MDkwOTA0MTgwRkMKKzoxMDQ5MzAwMEUxRkUyQkQ5NTFEMUU5RjM2RjkwNTk4QkM3NDAyNEZFOEEKKzoxMDQ5NDAwMDNCQzY3NDI3MkJGRTRFNEU1MzhCNUUxMDNCRjM3MjEzMDcKKzoxMDQ5NTAwMDAzMUY4M0MzMDM4MEUzRkVDNzA3MDAwMDgzNkU3NDAyNTYKKzoxMDQ5NjAwMDg5NUUxMDVCODkzQzg5NzYwQ0VCODk4OTc2MEMzOTc2RjcKKzoxMDQ5NzAwMDEwNzc4MTcyMDg4MzNDMDA3NDAzRTk3N0ZGRTgwREJFNkQKKzoxMDQ5ODAwMEU5NjJGRjM2ODkxRTg0MTJCMDBDRThCNUM2MzNDMDhFQ0EKKzoxMDQ5OTAwMEQ4QzNBMTg0MTIzRDEwMDA3Mjc3QkEwNDAxM0IwNjg4ODcKKzoxMDQ5QTAwMDEyNzUwNkM3MDY3RTEyMDAwMDhCMEVEQTEyRTMwQkU4QzIKKzoxMDQ5QjAwMEQwRkU3MjU3QzcwNjdFMTJGRjdGOEIwRTIwMTNFMzBCQ0IKKzoxMDQ5QzAwMEU4QTVGRDcyNDZDNzA2N0UxMkZGN0Y4QjBFNjYxM0UzRDUKKzoxMDQ5RDAwMDBCRTg5NEZFNzIzNUM3MDY3RTEyRkY3RkExMjgwMUE5NUQKKzoxMDQ5RTAwMDAxMDA3NTAzRThGOUZFODAzRThEMTIwMDc1MURBMTg0NUIKKzoxMDQ5RjAwMDEyM0QyMDAwNzYxNTNCMDY4MjEyNzYwOUExN0UxMjNCRkQKKzoxMDRBMDAwMDA2ODAxMjcyMEM4MDBFOTAxMjgwQzNCMDgwRkYxNjdDNUMKKzoxMDRBMTAwMDEyQzM4MDBFOTAxMjQwQzM2QTAwMUZDNjA2OTMxMjE3N0QKKzoxMDRBMjAwMDlDMEVFOEI3Qzg2QTAwMUZDNjA2OTMxMjIwOUMwRUU4QzkKKzoxMDRBMzAwMEFBQzg2QTAwMUZDNjA2OTMxMjE2OUMwRUU4OURDODkwNkQKKzoxMDRBNDAwMEJBMDYwMUVDQTgyMDc1Q0FGQjkwRkFCQTA0MDFFRDkwRjEKKzoxMDRBNTAwMDkwOTA5MDkwM0EwNjk0MTI3N0JFMzNEQjhBRDhEMUUzRDcKKzoxMDRBNjAwMDJFOEJBRjQ0MDBDNDdFMDg4NUZGNzRCOUY2QzRDMDc1QjAKKzoxMDRBNzAwMDU1MzJDMEMxRTAwMjgwRTRGMDhCRjBFRDkwOTA5MDkwNTAKKzoxMDRBODAwMDkwODVDMDc0QkI4QkM4NDE4MEUxRkUwQkM2OEI1RTUwMjUKKzoxMDRBOTAwMDRCNEIyQkQ5Nzg5Q0FCOEJDMTQwNDAwMTQ2NEVEMUU5QTIKKzoxMDRBQTAwMEYzNkQ5MDg5NUU1MDg5N0UwODhCNDYyNjgwRTRFRjg5RkQKKzoxMDRBQjAwMDQ2MjZGNkM0MDE3NTBDRjc0NjQ4MEMwMDc1MDVCMDAyOTEKKzoxMDRBQzAwMEU4N0ZDNUU5N0FGRjg2QzQ4QkM4ODNFMTNGNDE4MEUxNzYKKzoxMDRBRDAwMEZFRTMwQTNDODA3MjA5MjQzRkI0RjBFQkIwRTk2MEZGQ0EKKzoxMDRBRTAwMDI1M0YwMDMzRkY4RUM3QkY5NjEyOEJGN0QxRTlGMzZERDgKKzoxMDRBRjAwMDkwOEJDOEU4NDhFREU5NDdGRjkwNkEwMDFGQzYwNjkzMEYKKzoxMDRCMDAwMDEyMUI5QzBFRThENUM3OTA2MDFFMDYzM0MwOEVEODhFNEYKKzoxMDRCMTAwMEMwQkEwNjAxRUNBODA0NzRFMUIwMDZFRUVDQTI4QzEyNTcKKzoxMDRCMjAwMEE4NDA3NDExQTE4ODEyQTM4NDEyQzYwNjhEMTIwMEU4NTEKKzoxMDRCMzAwMDYwRkVBMDhDMTJBODgwNzQwM0U4MDRGRkI4MDA4MEJBNUQKKzoxMDRCNDAwMDIyRkZFRjA3MUY2MUNGOTA2QTAwMUZDNjA2OTMxMjFCNUEKKzoxMDRCNTAwMDlDMEVFODg3Qzc5MDYwMUUwNjMzQzA4RUQ4OEVDMEJBMDAKKzoxMDRCNjAwMDA2MDFFQ0E4MDQ3NEUxQkEwODAxRUNBMjhDMTJBODQwN0EKKzoxMDRCNzAwMDc0MTFBMTg4MTJBMzg0MTJDNjA2OEQxMjAwRTgxMkZFRDkKKzoxMDRCODAwMEEwOEMxMkE4ODA3NDAzRThCNkZFQjgwMDgwQkEyMkZGOTkKKzoxMDRCOTAwMEVGMDcxRjYxQ0Y5MEVFODZFMEVFODZFMEVDODZFMEVDNUEKKzoxMDRCQTAwMDg2RTA4MEUxRkVGMzZDOTA4MEUxRkVGMzZFOTAwNTAwRkMKKzoxMDRCQjAwMDc1NDdBODRCMDUwMDc1NDhBODRCMDUwMEEzNDhBODRCQUUKKzoxMDRCQzAwMDA1MDAzNTQ5QTg0QjA2MDA5ODQ4OTY0QjA2MDBCQTQ4QTAKKzoxMDRCRDAwMDk2NEIwNjAwQzM0ODk2NEIwNjAwQ0I0ODk2NEIwNjAwMDIKKzoxMDRCRTAwMDIwNDk5NjRCMDYwMDI4NDk5NjRCMDYwMDRFNEE5QzRCOUUKKzoxMDRCRjAwMDA2MDA3QjRBOUM0QjA1MDA5RTRBQTI0QjA1MDBFQzRBRUUKKzoxMDRDMDAwMEEyNEIwMDAwMUUwNjgzM0U0NDEyMDA3NDA5QTAwNjAxNTgKKzoxMDRDMTAwMDI0MzAzQzMwNzQxQThDQzg4RUQ4OEVDMEJCQUU0QjhCRkYKKzoxMDRDMjAwMDBGRTMwRDhCN0YwMjhCNzcwNEYzQTQ4M0MzMDZFQkVGQjYKKzoxMDRDMzAwMDA3MUZDMzkwMzNDMEEzM0UwMUI5MEMwMUJFNDAwMThCRDYKKzoxMDRDNDAwMEZFODFDNkI0MEY4OTA0OEJDNjJCRjEzQkM3NzdGNkEzNTAKKzoxMDRDNTAwMDNDMDFDMzkwMUUwNjYwMzY4QjJFM0UwMThCNUUwMDNCRUUKKzoxMDRDNjAwMEVCNzQyQjhCNzYwMjg5MUM4OTc3MDIzNkExM0MwMTg5NzMKKzoxMDRDNzAwMDQ2MDAzNjg5MkUzQzAxOEJFQkZGNEUwNjc0MDg4QjZFODYKKzoxMDRDODAwMDAwRkY0RTA2NzVGODM2ODkyRTNFMDE4QjY2MDQ2MTA3REIKKzoxMDRDOTAwMDFGQzMxRTA2NjAzNjhCMkUzRTAxOTg4OTQ2MDY4OTY2MjQKKzoxMDRDQTAwMDA0M0I2RTAwNzQxMDhCNkUwMEZGNEUwNjc1RjgzNjg5NUIKKzoxMDRDQjAwMDJFM0UwMThCNjYwNDYxMDcxRkMzQzM5MDFFMDY2MDlDRDUKKzoxMDRDQzAwMEZBMzNFRDhFREQ4QjJFM0MwMTg1RUQ3NDNEOEI0RTAwNkQKKzoxMDRDRDAwMDg5MEUzQzAxOEJDQzhEQTYwQTAxNTYxRTA2NjA4OTY2QTIKKzoxMDRDRTAwMDA0Qzc0NjA4MEYxQUM3NDYwNjAxMDA4QjFFM0UwMTg1MDEKKzoxMDRDRjAwMERCNzQxRDhCQzU4NzA3ODk0NjAwODk1RTAyOEJEODg5QzYKKzoxMDREMDAwMDZGMDI4QkUxOUQ2MTA3MUZGOEMzOUQ2MTA3MUZGOUMzMDcKKzoxMDREMTAwMDg5MkUzRTAxODk2RTAwODk2RTAyODdFMTlEOEJFMUVCNTEKKzoxMDREMjAwMEU0MDAwRDBBNTQ2NTcyNkQ2OTZFNjE2QzczMjA3Mzc1RDEKKzoxMDREMzAwMDcwNzA2RjcyNzQ2NTY0M0EwRDBBMzEyOTIwNDE0RTUzQzgKKzoxMDRENDAwMDQ5MjA2MzZGNkQ3MDYxNzQ2OTYyNkM2NTBEMEEzMjI5NjgKKzoxMDRENTAwMDIwNTc3OTczNjUyMDMzMzAwRDBBNTA2QzY1NjE3MzY1OTcKKzoxMDRENjAwMDIwNzM2NTZDNjU2Mzc0M0EyMDAwMEQwQTYzNkY2NDY1OTcKKzoxMDRENzAwMDIwNzM2NTY3NkQ2NTZFNzQzRDAwMEQwQTRENkY2RTY5MzkKKzoxMDREODAwMDc0NkY3MjIwNzYzMjJFMzUwQTBEMEEzRTAwMEQwQTUwREQKKzoxMDREOTAwMDYxNzI2NDZGNkUzRjAwMEQwQTRFNkYyMDYxNjQ2NDcyMzEKKzoxMDREQTAwMDY1NzM3MzIwNzM3MDY1NjM2OTY2Njk2NTY0MDAwRDBBRDUKKzoxMDREQjAwMDNBMDAwRDBBMDA0QzZGNjMzRDAwMEQwQTQ2NDE1NDQxMTQKKzoxMDREQzAwMDRDMjA0NTUyNTI0RjUyM0QwMDBEMEE0RDZGNkU2OTc0OTIKKzoxMDRERDAwMDZGNzIyMDYzNkY2RDZENjE2RTY0NzMzQTJEMEQwQTIwRTIKKzoxMDRERTAwMDIwMjA0NDJDNjQ1QjVCNzg3ODc4NzgzQTVENzg3ODc4MUEKKzoxMDRERjAwMDc4NUQyMDJEMjA2NDc1NkQ3MDIwNkQ2NTZENkY3Mjc5MDIKKzoxMDRFMDAwMDBEMEEyMDIwMjA0QzJDNkM1QjVCNzg3ODc4NzgzQTVEMUEKKzoxMDRFMTAwMDc4Nzg3ODc4NUQyMDJEMjA2NDc1NkQ3MDIwNzM2OTZFQzgKKzoxMDRFMjAwMDY3NkM2NTIwNkM2OTZFNjUwRDBBMjAyMDIwNDUyQzY1MzUKKzoxMDRFMzAwMDVCNUI3ODc4Nzg3ODNBNUQ3ODc4Nzg3ODVEMjAyRDIwOUIKKzoxMDRFNDAwMDY1NjQ2OTc0MjA2RDY1NkQ2RjcyNzkwRDBBMjAyMDIwOEMKKzoxMDRFNTAwMDQ2MkM2NjVCNUI3ODc4Nzg3ODIwNUQ3ODc4Nzg3ODVEMkEKKzoxMDRFNjAwMDIwMkQyMDY2Njk2QzZDMjA2RDY1NkQ2RjcyNzkyMDcwRTUKKzoxMDRFNzAwMDYxNzI2MTY3NzI2MTcwNjg3MzBEMEEyMDIwMjA0OTVCNUUKKzoxMDRFODAwMDc4Nzg3ODc4NUQyMDIwMjAyMDIwMjAyMDIwMjAyMDJENzgKKzoxMDRFOTAwMDIwNzc2RjcyNjQyMDY5NkU3MDc1NzQyMDY2NzI2RjZEMTIKKzoxMDRFQTAwMDIwNzA2RjcyNzQwRDBBMjAyMDIwNjk1Qjc4Nzg3ODc4MDIKKzoxMDRFQjAwMDVEMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDIwNjI3OTc0QjkKKzoxMDRFQzAwMDY1MjA2OTZFNzA3NTc0MjA2NjcyNkY2RDIwNzA2RjcyRTgKKzoxMDRFRDAwMDc0MEQwQTIwMjAyMDRGNzg3ODc4NzgyMDc4NzgyMDIwNjgKKzoxMDRFRTAwMDIwMjAyMDIwMjAyMDIwMkQyMDZGNzU3NDcwNzU3NDIwQzQKKzoxMDRFRjAwMDc3NkY3MjY0MjA3NDZGMjA3MDZGNzI3NDBEMEEyMDIwQjcKKzoxMDRGMDAwMDIwNkY3ODc4Nzg3ODIwNzg3ODIwMjAyMDIwMjAyMDIwNDIKKzoxMDRGMTAwMDIwMjAyRDIwNkY3NTc0NzA3NTc0MjA2Mjc5NzQ2NTIwNUYKKzoxMDRGMjAwMDc0NkYyMDcwNkY3Mjc0MEQwQTIwMjAyMDQ3NUI1Qjc4Q0QKKzoxMDRGMzAwMDc4Nzg3ODNBNUQ3ODc4Nzg3ODVEMjAyMDIwMkQyMDY3MjEKKzoxMDRGNDAwMDZGNzQ2RjIwNjE2NDY0NzI2NTczNzMwRDBBMjAyMDIwOTIKKzoxMDRGNTAwMDU3NUI1Qjc4Nzg3ODc4M0E1RDc4Nzg3ODc4NUQyMDIwNTAKKzoxMDRGNjAwMDIwMkQyMDc3NjE3NDYzNjgyMDYxMjA3NzZGNzI2NDBENTMKKzoxMDRGNzAwMDBBMjAyMDIwNDMyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjQKKzoxMDRGODAwMDIwMjAyMDIwMjAyRDIwNjk2RTc0NjU3MjcyNzU3MDc0NDcKKzoxMDRGOTAwMDczMjA2RjY2NjYwRDBBMjAyMDIwNTMyMDIwMjAyMDIwRDkKKzoxMDRGQTAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDIwNjk2RTc0MDkKKzoxMDRGQjAwMDY1NzI3Mjc1NzA3NDczMjA2RjZFMEQwQTIwMjAyMDczRjUKKzoxMDRGQzAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwRTEKKzoxMDRGRDAwMDJEMjA3MzY5NkU2NzZDNjUyMDczNzQ2NTcwMEQwQTIwRUYKKzoxMDRGRTAwMDIwMjA0Mjc4Nzg3ODc4MjAyMDIwMjAyMDIwMjAyMDIwM0YKKzoxMDRGRjAwMDIwMjAyMDJEMjA2MjcyNjU2MTZCNzA2RjY5NkU3NDIwQjUKKzoxMDUwMDAwMDczNjU3NDBEMEEyMDIwMjA2MjIwMjAyMDIwMjAyMDIwOUIKKzoxMDUwMTAwMDIwMjAyMDIwMjAyMDIwMjAyMDJEMjA2MjcyNjU2MTZCMUUKKzoxMDUwMjAwMDcwNkY2OTZFNzQyMDYzNkM2NTYxNzIwRDBBMjAyMDIwQjgKKzoxMDUwMzAwMDUyMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwM0UKKzoxMDUwNDAwMDIwMkQyMDcyNjU3Mzc0NjE3Mjc0MjA2MjcyNjU2MTZCQzkKKzoxMDUwNTAwMDcwNkY2OTZFNzQwRDBBMjAyMDIwNzIyMDIwMjAyMDIwOUQKKzoxMDUwNjAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDIwNzI2NTY3NTUKKzoxMDUwNzAwMDY5NzM3NDY1NzI3MzIwNjE3NDIwNjI3MjZCNzA3NDBENTEKKzoxMDUwODAwMDBBMjAyMDIwNTgyQzc4MjA2RTIwMjAyMDIwMjAyMDIwNEMKKzoxMDUwOTAwMDIwMjAyMDIwMjAyRDIwNjU3ODYxNkQ2OTZFNjUyMDYzQjkKKzoxMDUwQTAwMDY4NjE2RTZFNjU2QzIwNkUwRDBBMjAyMDIwNDgyQzNGRDIKKzoxMDUwQjAwMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyRDIwRTMKKzoxMDUwQzAwMDc0Njg2OTczMjA2RDY1NzM3MzYxNjc2NTAwMUI1QjMyN0IKKzoxMDUwRDAwMDRBMUI1QjMxM0IzMTQ4NDE0RTUzNDkyMDU0NjU3MjZENDgKKzoxMDUwRTAwMDY5NkU2MTZDMEQwQTBBMDAxQjVCNEIwMDFCNUI0QTAwN0EKKzoxMDUwRjAwMDFCNUIzMjRBMUI1QjMxM0IzMTQ4MDAxQjVCNDQyMDFCNkUKKzoxMDUxMDAwMDVCNDQwMDFCNUIzMTNCMzczMjQ4MDAxQjVCMDAzQjAwQkMKKzoxMDUxMTAwMDQ4MDAxQjVCNzMwMDFCNUI3NTAwMUI3QTJCMEI3RjFCMEUKKzoxMDUxMjAwMDdBMkUwQzdGMUI3QTJEMDg3RjFCN0EyQzBBN0YxQjdBMjQKKzoxMDUxMzAwMDIyMDg3RjFBNTc3OTczNjUyMDMzMzAyMDU0NjU3MjZEQzkKKzoxMDUxNDAwMDY5NkU2MTZDMEQwQTAwMUI1NDAwMUI1OTAwMUEwMDFFODkKKzoxMDUxNTAwMDAwMDgyMDA4MDAwMDFCM0QwMDAwMDAxQjQ2MDAwRDAwNTkKKzoxMDUxNjAwMDNGNDQ2NDQ1NjU0NjY2NDc2NzQ4Njg0OTY5NEY2RjQzRjEKKzoxMDUxNzAwMDYzNTM3MzQyNjI1MjcyNTc3NzU4Nzg0QzZDM0M2MEQ0RDgKKzoxMDUxODAwMDU3RDQ1NzUwNTg1MDU4RDY1OUQ2NTlCNDU5QjQ1OTNDOTkKKzoxMDUxOTAwMDYwM0M2MDZDNTc0ODU3MjY1NzA2NTc5MDU3OTA1Nzk4NzEKKzoxMDUxQTAwMDU3NDg1RjBDNUY1ODVGMzM1RjQwNUZBMDU3QTA1N0ZFQzIKKzoxMDUxQjAwMDU5RkU1OURDNTdEQzU3ODg2MTk4NjFDMDYxQ0M2MUQ4RDEKKzoxMDUxQzAwMDYxRjY2MTAyNjIyMjYyRjg1NjRBNjI1ODYyNjA1OTIwQjIKKzoxMDUxRDAwMDIwNjY2QzYxNjc3MzNEMDAyMDIwNjE3ODNEMDAyMDIwQ0YKKzoxMDUxRTAwMDYyNzgzRDAwMjAyMDYzNzgzRDAwMjAyMDY0NzgzRDAwRjcKKzoxMDUxRjAwMDIwMjA2MzczM0QwMDIwMjA2NDczM0QwMDIwMjA2NTczRjAKKzoxMDUyMDAwMDNEMDAyMDIwNzM3MzNEMDAyMDIwNjQ2OTNEMDAyMDIwNzQKKzoxMDUyMTAwMDczNjkzRDAwMjAyMDYyNzAzRDAwMjAyMDczNzAzRDAwQzYKKzoxMDUyMjAwMDIwMjA2OTcwM0QwMDIwNjM2ODYxNkU2NTZDM0QwMDIwNDAKKzoxMDUyMzAwMDIwMjAyMDczNjU2NzNEMDAyMDc0Njk1RjczNzQ3MjNEQTAKKzoxMDUyNDAwMDAwMjA3NDY5NUY3NDZGNzMzRDAwMjA3NDY5NUY2RDYxNDUKKzoxMDUyNTAwMDc4M0QwMDIwNzQ2OTVGNjI2MTczM0QwMDIwNzQ2OTVGNkUKKzoxMDUyNjAwMDczNjk3QTNEMDAyMDc0Njk1RjczNzQ2NjNEMDAyMDc0MzEKKzoxMDUyNzAwMDY5NUY3MjZGNkYzRDAwMjA3NDY5NUY2NjZDNjczRDAwMDcKKzoxMDUyODAwMDIwNzQ2OTVGNzQ2Rjc0M0QwMDIwNzI2OTVGNzA2MzZFOTMKKzoxMDUyOTAwMDNEMDAyMDcyNjk1RjczNzQ3MjNEMDAyMDcyNjk1RjczMTQKKzoxMDUyQTAwMDc0NjYzRDAwMjA3MjY5NUY3MjZGNkYzRDAwMjA3MjY5MDUKKzoxMDUyQjAwMDVGNjI2MTczM0QwMDIwNzI2OTVGNzM2OTdBM0QwMDIwMEYKKzoxMDUyQzAwMDcyNjk1Rjc0NkY3NDNEMDAyMDcyNjk1RjZENjk2RTNEMzUKKzoxMDUyRDAwMDAwMjA3MjY5NUY2NjZDNjczRDAwMjA3MjY5NUY3NDZGQzEKKzoxMDUyRTAwMDczM0QwMDIwNzI2OTVGNzQ2ODcyM0QwMDIwNzQ2ODVGQ0UKKzoxMDUyRjAwMDczNzQ2NjNEMDAyMDc0Njg1RjczNzQ3MjNEMDAyMDc0OUYKKzoxMDUzMDAwMDY4NUY2MjYxNzMzRDAwMjA3NDY4NUY3MzY5N0EzRDAwNzUKKzoxMDUzMTAwMDIwNzQ2ODVGNzQ3MjY3M0QwMDIwNzQ2ODVGNjY2QzY3MTQKKzoxMDUzMjAwMDNEMDAyMDc0Njg1RjYzNkU3NDNEMDAyMDcyNjg1RjczOTcKKzoxMDUzMzAwMDc0NzIzRDAwMjA3MjY4NUY3Mzc0NjYzRDAwMjA3MjY4NkQKKzoxMDUzNDAwMDVGNjI2MTczM0QwMDIwNzI2ODVGNzM2OTdBM0QwMDIwN0YKKzoxMDUzNTAwMDcyNjg1RjczNzA2MTNEMDAyMDcyNjg1RjYxNzM2RjNEQkEKKzoxMDUzNjAwMDAwMjA3MjY4NUY3MjZGNkYzRDAwMjA3MjY4NUY2NjZDMkMKKzoxMDUzNzAwMDY3M0QwMDIwNkQ1RjYzNjE3MjY1M0QwMDIwNzA3NDVGNjIKKzoxMDUzODAwMDY2NkM2RjNEMDAyMDYxNzM1RjY2NkM2RjNEMDAyMDcyM0MKKzoxMDUzOTAwMDZENUY2NjZDNkYzRDAwMjAyMDIwNzE1RjY5NkUzRDAwN0YKKzoxMDUzQTAwMDIwMjA3MTVGNkY3NTc0M0QwMDIwNzE1RjY0NzI2MTZFQzMKKzoxMDUzQjAwMDNEMDAyMDIwNzE1Rjc0Njk2RDNEMDAyMDIwMjA3MTVGRTkKKzoxMDUzQzAwMDY2NjMzRDAwMjA3MTVGNzM3NDYxNzQzRDAwMjA3MTVGRkUKKzoxMDUzRDAwMDY0NjE3NDYxM0QwMDIwNzE1RjZENkY2NDZEM0QwMDIwRkMKKzoxMDUzRTAwMDY4NjE2RTY0NUY2RjNEMDAyMDY4NjE2RTY0NUY2MjNENUUKKzoxMDUzRjAwMDAwMjA2ODYxNkU2NDVGNjUzRDAwMjA2ODYxNkU2NDVGRDcKKzoxMDU0MDAwMDY5M0QwMDIwMjA2RjcwNkY3Mzc0M0QwMDIwMjA3NDY5MjcKKzoxMDU0MTAwMDZENjU2RjNEMDAyMDYzNzU3Mzc0NkQzMTNEMDAyMDYzRDEKKzoxMDU0MjAwMDc1NzM3NDZEMzIzRDAwMjA2Mzc1NzM3NDZENjQzRDAwNTcKKzoxMDU0MzAwMDIwNzQ3ODcyNjE3NDY1M0QwMDIwNzI3ODcyNjE3NDY1QzEKKzoxMDU0NDAwMDNEMDAyMDIwNjM1RjZENjE3MDNEMDAyMDYzNUY2MTY0RkIKKzoxMDU0NTAwMDY0NzIzRDAwMjA2MzVGNjE2OTczNzIzRDAwMjA2MzVGODkKKzoxMDU0NjAwMDc4NzQ2MTY3M0QwMDIwNjM1RjY0NjU2NjcyM0QwMDIwNkIKKzoxMDU0NzAwMDYzNUY2NjZDNzM2ODNEMDAyMDc0Nzg2RDYxNzg3MzNEN0UKKzoxMDU0ODAwMDAwMjA3MjY5NUY2NTZENzMzRDAwMjAyMDYzNUY2QzczNUYKKzoxMDU0OTAwMDcyM0QwMDIwMjA2MzVGNjk2NTcyM0QwMDIwMjA2MzVGREMKKzoxMDU0QTAwMDY2NjM3MjNEMDAyMDIwNjM1RjZENjM3MjNEMDAyMDIwQzMKKzoxMDU0QjAwMDYzNUY2QzYzNzIzRDAwMjAyMDYzNUY2NDczNzMzRDAwMjMKKzoxMDU0QzAwMDIwNjM1RjY0NzM3MzY5M0QwMDIwNjM1RjY0NzM3MzcyNkMKKzoxMDU0RDAwMDNEMDAyMDIwNjM1RjY5NzM3MjNEMDAyMDIwNjM1RjYzOUQKKzoxMDU0RTAwMDYxNzIzRDAwMjAyMDYzNUY2NTY2NzIzRDAwMjA2MzVGNEUKKzoxMDU0RjAwMDY1NzI3Mzc0M0QwMDIwNjM1RjY1NjM2RTc0M0QwMDIwQzgKKzoxMDU1MDAwMDYzNUY2MjcyNkI2MzNEMDAyMDYzNUY2MjZGNkI2MzNEM0MKKzoxMDU1MTAwMDAwMjA2MzVGNzI2NTcwNkMzRDAwMjA2MzVGNjM2MzczOUUKKzoxMDU1MjAwMDcyM0QwMDIwNjM1RjczNzQ3NDMxM0QwMDIwNjM1RjczQ0MKKzoxMDU1MzAwMDc0NzQzMjNEMDAyQkMwOEVEODhFQzBFOEMyMDBFOEU1RkUKKzoxMDU1NDAwMDAwRkFCRjg0MDBDNzA1REM1NjhDNEQwMkJGMEMwMEM3QjMKKzoxMDU1NTAwMDA1NkU1RThDNEQwMkJGMDQwMEM3MDVCQTVFOEM0RDAyMUQKKzoxMDU1NjAwMEU4RjEwMDkwRTg0OTAxRTgxNjAwRjQ5MEU4RTUwMEJFOTMKKzoxMDU1NzAwMEJBNERFODA5MENBMDkzMTJFODVEMENFOEMyMDlFQkU0MEYKKzoxMDU1ODAwMEU4RDUwQ0U4QzQwQzBBQzA3NEY2OEIxRUY4NzkzQzBEMDMKKzoxMDU1OTAwMDc0MkUzQzA4NzQxNzNDN0Y3NDEzODNGQjIwN0ZFMTg4RDIKKzoxMDU1QTAwMDg3RDY3OTQzODkxRUY4NzlFODc3MENFQkQzMEJEQjc0NDcKKzoxMDU1QjAwMENGNEI4OTFFRjg3OThCMzYxNjdBRThDMTBCRUJDMTkwNzgKKzoxMDU1QzAwMEU4MDIwMEVCQkJDNjg3RDY3OTAwMEJEQjc0MUVBMEQ2QzEKKzoxMDU1RDAwMDc5QkY2MDUxQjkxRDAwOEJEOTA2MEUwN0YyQUUwNzc1NzEKKzoxMDU1RTAwMDE3NDEyQkQ5RDFFMzJFRkY5NzdENTE5MDMzQzBBM0Y4RkIKKzoxMDU1RjAwMDc5QkU4OTRERTg4NzBCQzNCRThENERFODgwMEJFQkVDN0YKKzoxMDU2MDAwMEJBMDAwMkIwOTNFRUIwNTVFRUJBMTAwMkIwOTNFRUIwMEQKKzoxMDU2MTAwMEFBRUVCQTAwMDJFQzNDNTU3NTA4QkExMDAyRUMzQ0FBOUUKKzoxMDU2MjAwMDc0MDNFODJGRjZDM0JBMDQwMkIwMUFFRUIwMjBFRUIwNEQKKzoxMDU2MzAwMDMwRUVCMDQwRUVCMDgwRUVCQTAwMDJCMDEzRUVCMDA3MkMKKzoxMDU2NDAwMEVFQkEwODAyQjA4MEVFQkEwMjAyQjBCQkVFQkEwNDAyQjMKKzoxMDU2NTAwMEIwMDVFRUMzQzYwNkNBMTMwMUM3MDZGODc5MDAwMEM2MzYKKzoxMDU2NjAwMDA2RjY3OTAxQzcwNkQwNzkwMDAwQzcwNkQyNzkwMDAwOTYKKzoxMDU2NzAwMEM3MDZENDc5MDAwMEM3MDZGQTc5MDAwMEM3MDZGQzc5OEUKKzoxMDU2ODAwMDAwMDBDNzA2RkU3OTAwMDBDNzA2MDA3QTAwMDBDNzA2QzIKKzoxMDU2OTAwMDAyN0FDRTU5OEMwRTA0N0FDNzA2MDY3QTAwMDBDNzA2MzUKKzoxMDU2QTAwMDI3N0EwMDAwQzYwNjI5N0EwMEM2MDYyQTdBMDBDMzkwMjcKKzoxMDU2QjAwMEJFMjI0REU4QzgwQUU4M0YwMDJDMzEzQzAxNzdGN0U4RUMKKzoxMDU2QzAwMDgxMDk4QjM2MEM3QUU4QjUwQUJFNkE0REU4QUYwQTBFM0UKKzoxMDU2RDAwMDU4RThGODBBQkU3QTRERThBNDBBQzM5MDYwRDFFMzgzODMKKzoxMDU2RTAwMEZCMTg3MzExMUVCQTAwMDA4RURBMkVGRjk3Qjc1MThCOEMKKzoxMDU2RjAwMEVDODk0NjEwMUY2MUNGOTBFODRGMEIwQUMwNzUwNUU4OTIKKzoxMDU3MDAwMDU2MEJFQkY0QzM5MDgzM0VGODc5MDE3NDE2QkVENzc5M0IKKzoxMDU3MTAwMEU4MzEwQThCRDBBQzNDMkM3NDA0M0MyMDc1MDVFODIzOUUKKzoxMDU3MjAwMDBBRUVDM0U5RDJGRTgzM0VGODc5MDE3NEY2QkVENzc5NUEKKzoxMDU3MzAwMEU4MTEwQThCRDBBQzNDMkM3NDA4M0MyMDc0MDRFOUI3MDcKKzoxMDU3NDAwMEZFOTBFOEZGMDlFRkMzOTA4QjE2MDY3QTgzM0VGODc5NDYKKzoxMDU3NTAwMDAxNzQwQkJFRDc3OUU4RUIwOThCRDBBMzA2N0FCMDIwOTEKKzoxMDU3NjAwMEU4NTcwQjhCMTYwNjdBRUNFODZGMEJDMzhCMTYwNjdBOUMKKzoxMDU3NzAwMDgzM0VGODc5MDE3NDBCQkVENzc5RThDNzA5OEJEMEEzQjMKKzoxMDU3ODAwMDA2N0FCMDIwRTgzMzBCOEIxNjA2N0FFREU4NjcwQkMzNzgKKzoxMDU3OTAwMEZBQzYwNkY2NzkwMEMzOTBDNjA2RjY3OTAxRkJDMzkwRjcKKzoxMDU3QTAwMDA2RTg1ODA5QjAyMEU4MTEwQjI2OEIwNUU4NDcwQkIwMzYKKzoxMDU3QjAwMDA4RTgwNjBCRTgwMzBCRTgwMDBCRThGRDBBQjgwMTAwNTcKKzoxMDU3QzAwMEU4Q0ZGNEJBMDIwMkVDMjQwMTc1MDJFQkRDQkEwNjAyNUYKKzoxMDU3RDAwMEVDMDdDMzkwQzcwNjA4N0ExMDAwRUIwNkM3MDYwODdBRTQKKzoxMDU3RTAwMDAxMDAwNjhFMDZGQzc5OEIzRUZBNzlFODBFMDlFODBCN0IKKzoxMDU3RjAwMDAwODkzRUZBNzk4QzA2RkM3OTA3QzM5MEJFQjI0REU4NjkKKzoxMDU4MDAwMDdDMDk4QjE2MDg3QTUyRTgyQTA5RTgwRjBBRTgwQzBBODQKKzoxMDU4MTAwMDMzREJCOTEwMDA5MDI2OEEwMUU4QkMwOUU4RkQwOTQzOTIKKzoxMDU4MjAwMEUyRjRFOEY3MDlFOEY0MDkzM0RCQjkxMDAwOTAyNjhBQkUKKzoxMDU4MzAwMDAxM0MyMDcyMDUzQzdFNzYwMzkwQjAyRUU4RTMwOTQzREMKKzoxMDU4NDAwMEUyRUNCRUIyNERFODM2MDk4M0M3MTA1QTRBNzVCN0MzQjkKKzoxMDU4NTAwMDA2OEUwNjAwN0E4QjNFRkU3OUU4QTAwODg5M0VGRTc5MjYKKzoxMDU4NjAwMDhDMDYwMDdBNTc4QjM2MEU3QUU4MTIwOUM3MDYwODdBM0EKKzoxMDU4NzAwMDEwMDBCQTAwMDJFOEU4MDBFODgxRkY1RkJBMDAwMEU4MjMKKzoxMDU4ODAwMERFMDBCRUI1NERFOEY2MDg4Q0MwRTgzRjA5QjAzQUU4NDYKKzoxMDU4OTAwMDkwMDk4QkM3RTgzNTA5RTg3RTA4RThDMzAwOTBFOEI3QUYKKzoxMDU4QTAwMDA5RThBNjA5MEFDMDc0RjYzQzBCNzUwNjgzRUYxMEVCRjUKKzoxMDU4QjAwMDE5OTAzQzBBNzUwNjgzQzcxMEVCMEY5MDNDMEM3NTA0RDkKKzoxMDU4QzAwMDQ3RUIwNzkwM0MwODc1MjQ0RjkwOEIzNkZFNzk4QkM3QzkKKzoxMDU4RDAwMDJCQzYzRDAwMDE3MkE1M0QxMDAxNzIwNDgzRUUyMDkwOUQKKzoxMDU4RTAwMDgzQzYxMDg5MzZGRTc5NTc4QkZFRUI4MDNDMkU3NTA4RjcKKzoxMDU4RjAwMEJBMDExM0U4NkEwMDA3QzNDNjA2MEE3QTAyMzJDOTkwRTEKKzoxMDU5MDAwMDNDMzA3MjRDM0MzOTc2MEMyNDVGM0M0MTcyNDIzQzQ2NDAKKzoxMDU5MTAwMDc3M0UyQzA3MkMzMDUwRThDQzA4NTgwMkM4RkUwRTBBRkYKKzoxMDU5MjAwMDdBNzQwRkMwRTEwNEU4MkYwOUU4MUUwOTBBQzA3NEY2NzIKKzoxMDU5MzAwMEVCQ0UyNjg4MERFOEUwMDc4QUQwRTgyMzAwOEFDMTNDMzgKKzoxMDU5NDAwMDIwNzIwNTNDN0U3NjAzOTBCMDJFRThENTA4RTk3MEZGMDIKKzoxMDU5NTAwMEU4QzUwN0U4MEEwMDI2OEEwNUU4N0MwOEU5MURGRjkwRUIKKzoxMDU5NjAwMEY2MDYyNjdBMDI3NTAyODZGMjUyOEIzNjFBN0FFODBEMEUKKzoxMDU5NzAwMDA4NUE1MjhBQzYwMjA2MjQ3QUY2MDYyNjdBMDE3NTA2NjUKKzoxMDU5ODAwMEU4OUYwOEVCMEQ5MDMyRTRFODBEMDg4QjM2MUM3QUU4QUUKKzoxMDU5OTAwMEVDMDc1QThBQzIwMjA2MjU3QUY2MDYyNjdBMDE3NTA2QUYKKzoxMDU5QTAwMEU4N0YwOEVCMDY5MDMyRTRFOEVEMDc4QjM2MUU3QUU4RDQKKzoxMDU5QjAwMENDMDdDMzkwMDY4RTA2MDQ3QThCM0UwMjdBRTgzQzA3MzkKKzoxMDU5QzAwMDg5M0UwMjdBOEMwNjA0N0EwN0ZGMUUwMjdBQzNCRTk3Q0MKKzoxMDU5RDAwMDRERThBQTA3Q0I5MDA2NTdCRUQ3NzlFODY2MDc4QkQ4NjMKKzoxMDU5RTAwMEU4NjEwNzhCQzgyQkNCNzgxMThFQzNCRjAwMDBCOEZGQ0UKKzoxMDU5RjAwMEZGNTFCOTA4MDBGM0FCNTlFMkY3NUYwN0MzOTAwNkJFNDkKKzoxMDVBMDAwMEQ3NzlFODNGMDc4QkQ4RDFFMzJFOEI5RjQ0MDBCRTI2ODEKKzoxMDVBMTAwMDUyRThGMTA4OEJDM0U4REQwOEI4MDEwMEU4NzNGMkU4NEEKKzoxMDVBMjAwMEUwMDhCRTJGNTJFOEREMDg4QjQ3MThFOEM4MDhCRTc3QUIKKzoxMDVBMzAwMDUyRThEMTA4OEI0NzI2RThCQzA4QkU1MzUyRThDNTA4OTcKKzoxMDVBNDAwMDhCNDcxRUU4QjAwOEJFNUM1MkU4QjkwODhCNDcyMEU4RDcKKzoxMDVBNTAwMEE0MDhCRTZFNTJFOEFEMDg4QjQ3MjRFODk4MDhCRTgwQzMKKzoxMDVBNjAwMDUyRThBMTA4OEI0NzJBRTg4QzA4RTg5NTA4QkUzODUyMEUKKzoxMDVBNzAwMEU4OTIwODhCMDdFODdFMDhCRTQxNTJFODg3MDg4QjQ3MEEKKzoxMDVBODAwMDFBRTg3MjA4QkU0QTUyRTg3QjA4OEI0NzFDRTg2NjA4OTEKKzoxMDVBOTAwMEJFNjU1MkU4NkYwODhCNDcyMkU4NUEwOEU4NjMwOEJFRTMKKzoxMDVBQTAwMEQxNTJFODYwMDg4QjQ3MzhFODRCMDhCRUFENTJFODU0NDUKKzoxMDVBQjAwMDA4OEI0NzMwRTgzRjA4QkVCNjUyRTg0ODA4OEI0NzMyQUIKKzoxMDVBQzAwMEU4MzMwOEJFQTQ1MkU4M0MwODhCNDcyRUU4MjcwOEJFRkUKKzoxMDVBRDAwMEJGNTJFODMwMDg4QjQ3MzRFODFCMDhFODI0MDhCRTg5MjkKKzoxMDVBRTAwMDUyRTgyMTA4OEI0NzA0RTgwQzA4QkU5MjUyRTgxNTA4REEKKzoxMDVBRjAwMDhCNDcxNEU4MDAwOEJFOUI1MkU4MDkwODhCNDcyQ0U4NDYKKzoxMDVCMDAwMEY0MDdCRUM4NTJFOEZEMDc4QjQ3MzZFOEU4MDdCRURBNUYKKzoxMDVCMTAwMDUyRThGMTA3OEI0NzNBRThEQzA3QkVFMzUyRThFNTA3QjUKKzoxMDVCMjAwMDhCNDczQ0U4RDAwN0U4RDkwN0JFMTk1M0U4RDYwNzhCNjYKKzoxMDVCMzAwMDQ3NDhFOEMxMDdCRUZFNTJFOENBMDc4QjQ3NDJFOEI1QUUKKzoxMDVCNDAwMDA3QkUwNzUzRThCRTA3OEI0NzQ0RThBOTA3QkU3QzUzNEUKKzoxMDVCNTAwMEU4QjIwNzhCNDc0Q0U4OUQwN0JFODU1M0U4QTYwNzhCNDQKKzoxMDVCNjAwMDQ3NEVFODkxMDdCRThFNTNFODlBMDc4QjQ3NTBFODg1NjkKKzoxMDVCNzAwMDA3RTg4RTA3QkUyMjUzRTg4QjA3OEI0NzRBRTg3NjA3NzMKKzoxMDVCODAwMEJFRUM1MkU4N0YwNzhCNDcwOEU4NkEwN0JFRjU1MkU4OEIKKzoxMDVCOTAwMDczMDc4QjQ3NDBFODVFMDdCRTEwNTNFODY3MDc4QjQ3RTMKKzoxMDVCQTAwMDQ2RTg1MjA3RTg1QjA3QkU2QTUzRTg1ODA3OEI0NzdBMTYKKzoxMDVCQjAwMEU4NDMwN0JFM0Q1M0U4NEMwNzhCNDc3MEU4MzcwN0JFMDQKKzoxMDVCQzAwMDQ2NTNFODQwMDc4QjQ3NzJFODJCMDdCRTRGNTNFODM0MzMKKzoxMDVCRDAwMDA3OEI0Nzc0RTgxRjA3RTgyODA3QkUyQjUzRTgyNTA3MDMKKzoxMDVCRTAwMDhCNDcwQ0U4MTAwN0JFMzQ1M0U4MTkwNzhCNDcxMEU4QzEKKzoxMDVCRjAwMDA0MDdCRTU4NTNFODBEMDc4QjQ3NzZFOEY4MDZCRTYxRTgKKzoxMDVDMDAwMDUzRTgwMTA3OEI0Nzc4RThFQzA2QkU3MzUzRThGNTA2QzYKKzoxMDVDMTAwMDhCNDczRUU4RTAwNkU4RTkwNkJFOTc1M0U4RTYwNjhCQzgKKzoxMDVDMjAwMDQ3NTJFOEQxMDZCRUEwNTNFOERBMDY4QjQ3NTRFOEM1RDAKKzoxMDVDMzAwMDA2QkVBOTUzRThDRTA2OEI0NzU2RThCOTA2QkVCMjUzNTYKKzoxMDVDNDAwMEU4QzIwNjhCNDc1OEU4QUQwNkJFQkI1M0U4QjYwNjhCRTQKKzoxMDVDNTAwMDQ3NUFFOEExMDZCRUM0NTNFOEFBMDY4QjQ3NUNFODk1RkMKKzoxMDVDNjAwMDA2RTg5RTA2QkVDRDUzRTg5QjA2OEI0NzVFRTg4NjA2OTcKKzoxMDVDNzAwMEJFRDY1M0U4OEYwNjhCNDc2MEU4N0EwNkJFREY1M0U4NEUKKzoxMDVDODAwMDgzMDY4QjQ3NjJFODZFMDZCRUU4NTNFODc3MDY4QjQ3Q0IKKzoxMDVDOTAwMDdDRTg2MjA2QkVGMTUzRTg2QjA2OEI0NzdFRTg1NjA2NDkKKzoxMDVDQTAwMEJFRkE1M0U4NUYwNjhCODc4MDAwRTg0OTA2RTg1MjA2OTMKKzoxMDVDQjAwMEJFNDI1NEU4NEYwNjhCODc5RTAwRTgzOTA2QkUwMzU0NjcKKzoxMDVDQzAwMEU4NDIwNjhCNDc2NEU4MkQwNkJFMEM1NEU4MzYwNjhCODYKKzoxMDVDRDAwMDQ3NkVFODIxMDZCRTE1NTRFODJBMDY4Qjg3OEUwMEU4MzkKKzoxMDVDRTAwMDE0MDZCRTFFNTRFODFEMDY4Qjg3OTAwMEU4MDcwNkJFMEEKKzoxMDVDRjAwMDI3NTRFODEwMDY4Qjg3OTIwMEU4RkEwNUU4MDMwNkJFRjEKKzoxMDVEMDAwMDMwNTRFODAwMDY4Qjg3OTQwMEU4RUEwNUJFMzk1NEU4NzEKKzoxMDVEMTAwMEYzMDU4Qjg3OTYwMEU4REQwNUJFNkY1NEU4RTYwNThCM0EKKzoxMDVEMjAwMDg3OTgwMEU4RDAwNUJFNUQ1NEU4RDkwNThBODdBMDAwQjEKKzoxMDVEMzAwMEU4QTcwNUJFNTQ1NEU4Q0MwNThBNDcyOEU4OUIwNUJFNzEKKzoxMDVENDAwMDY2NTRFOEMwMDU4QTg3QTEwMEU4OEUwNUU4QjMwNUJFNjEKKzoxMDVENTAwMDc4NTRFOEIwMDU4QTg3QTIwMEU4N0UwNUJFODE1NEU4NDEKKzoxMDVENjAwMEEzMDU4QTg3QTMwMEU4NzEwNUJFOEE1NEU4OTYwNThBRDAKKzoxMDVENzAwMDg3QTQwMEU4NjQwNUJFOTM1NEU4ODkwNThBODdBNTAwRDYKKzoxMDVEODAwMEU4NTcwNUJFOUM1NEU4N0MwNThBODdBNjAwRTg0QTA1Q0EKKzoxMDVEOTAwMEJFQTU1NEU4NkYwNThBODdBNzAwRTgzRDA1QkVBRTU0NEUKKzoxMDVEQTAwMEU4NjIwNThBODdBODAwRTgzMDA1RTg1NTA1QkVCNzU0QzMKKzoxMDVEQjAwMEU4NTIwNThBODdBOTAwRTgyMDA1QkVDMDU0RTg0NTA1RDkKKzoxMDVEQzAwMDhBODdBQTAwRTgxMzA1QkVDOTU0RTgzODA1OEE4N0FCNUMKKzoxMDVERDAwMDAwRTgwNjA1QkVEMjU0RTgyQjA1OEE4N0FEMDBFOEY5MzUKKzoxMDVERTAwMDA0QkVEQjU0RTgxRTA1OEE4N0FFMDBFOEVDMDRCRUU0N0UKKzoxMDVERjAwMDU0RTgxMTA1OEE4N0FGMDBFOERGMDRCRUVENTRFODA0REIKKzoxMDVFMDAwMDA1OEE4N0IwMDBFOEQyMDRFOEY3MDRCRUY2NTRFOEY0NDcKKzoxMDVFMTAwMDA0OEE4N0IxMDBFOEMyMDRCRUZGNTRFOEU3MDQ4QTg3MTkKKzoxMDVFMjAwMEIyMDBFOEI1MDRCRTA4NTVFOERBMDQ4QTg3QjMwMEU4OTIKKzoxMDVFMzAwMEE4MDRCRTExNTVFOENEMDQ4QTg3QkIwMEU4OUIwNEU4OUUKKzoxMDVFNDAwMEMwMDRCRTFBNTVFOEJEMDQ4QTg3QkMwMEU4OEIwNEJFQjYKKzoxMDVFNTAwMDIzNTVFOEIwMDQ4QTg3QkUwMEU4N0UwNEJFMkM1NUU4Q0UKKzoxMDVFNjAwMEEzMDQ4QTg3QkYwMEU4NzEwNEU4OTYwNDA3QzM2MDA2QUMKKzoxMDVFNzAwMDFFMTY4QkVDRkY0RTE2Rjc0NjFBMDAwMjc0MDFGQkI4OTMKKzoxMDVFODAwMDAwMDA4RUQ4OEVDMDg5MkUyRDdBRThDQjAwODE2NjFBNEMKKzoxMDVFOTAwMEZGRkVDNjA2MkE3QTAwRThEODAwQjgwMDVGQTMyQjdBNzYKKzoxMDVFQTAwMEU4NUQwMDgwM0UyQTdBMDA3NDBBODE0RTFBMDAwMUM2MUQKKzoxMDVFQjAwMDA2MkE3QTAwMTcxRjA3NjFDRjkwNjAwNjFFMTY4QkVDMkEKKzoxMDVFQzAwMEY3NDYxQTAwMDI3NDAxRkJCODAwMDA4RUQ4OEVDMDg5MTQKKzoxMDVFRDAwMDJFMkQ3QTgxNjYxQUZGRkVDNjA2MkE3QTAwRTg5MjAwMDUKKzoxMDVFRTAwMEI4MDA1RkEzMkI3QUU4MTcwMDgwM0UyQTdBMDA3NDBBNzQKKzoxMDVFRjAwMDgxNEUxQTAwMDFDNjA2MkE3QTAwMTcxRjA3NjFDRjkwNEIKKzoxMDVGMDAwMEI4RjAwMEU4OENFREZGMjYyQjdBQzM5MDA2NTM1NjgwM0MKKzoxMDVGMTAwMDNFMjk3QTAwNzQwM0U4M0YwMEJFRDc3OUU4MjUwMjhCNUEKKzoxMDVGMjAwMEQ4QTMyNzdBMkU4QTA3QTIyOTdBQjBDQzJFODgwNzVFQkEKKzoxMDVGMzAwMDVCMDdDM0M2MDYyQTdBMDBCODBBNUZBMzJCN0FDMzkwMTAKKzoxMDVGNDAwMDhCMkUyRDdBRTgyQjAwQzNDNjA2MkE3QTAxRTgwODAwQkEKKzoxMDVGNTAwMEI4MEE1RkEzMkI3QUMzOTA1NzgwM0UyOTdBMDA3NDBGNEEKKzoxMDVGNjAwMDhCM0UyNzdBQTAyOTdBMkU4ODA1QzYwNjI5N0EwMDVGRkIKKzoxMDVGNzAwMEMzOTBCRUIyNERFODA2MDJCRUQ4NTFFODAwMDJGRjc2REIKKzoxMDVGODAwMDE0NThFODQ3MDJCRURFNTFFOEYzMDFGRjc2MEU1OEU4RTgKKzoxMDVGOTAwMDNBMDJCRUU0NTFFOEU2MDFGRjc2MTI1OEU4MkQwMkJFNEYKKzoxMDVGQTAwMEVBNTFFOEQ5MDFGRjc2MTA1OEU4MjAwMkJFMTQ1MkU4MDEKKzoxMDVGQjAwMENDMDFGRjc2MEE1OEU4MTMwMkJFMUE1MkU4QkYwMUZGNkYKKzoxMDVGQzAwMDc2MEM1OEU4MDYwMkJFQ0Y1MUU4QjIwMUZGNzYxQTU4QTcKKzoxMDVGRDAwMEU4RjkwMUJFQjI0REU4QTUwMUJFRjA1MUU4OUYwMUZGMEUKKzoxMDVGRTAwMDc2MTg1OEU4RTYwMUJFRjY1MUU4OTIwMUZGNzYwMjU4QUQKKzoxMDVGRjAwMEU4RDkwMUJFRkM1MUU4ODUwMUZGNzYwNDU4RThDQzAxRTAKKzoxMDYwMDAwMEJFMDI1MkU4NzgwMUZGNzYwMDU4RThCRjAxQkUwODUyOTAKKzoxMDYwMTAwMEU4NkIwMUZGNzYwNjU4RThCMjAxQkUwRTUyRTg1RTAxNTkKKzoxMDYwMjAwMEZGNzYwODU4RThBNTAxQkUyMDUyRTg1MTAxRkY3NjE2MTgKKzoxMDYwMzAwMDU4RTg5ODAxQkU4OTRERTg0NDAxQzM5MEJFQzk0REU4QjcKKzoxMDYwNDAwMDNDMDFDMzNDMDA3NDA1M0MwMTc0NTlDM0M3MDYwQzdBN0IKKzoxMDYwNTAwMENENTBDNzA2MEU3QUYwNTBDNzA2MTA3QUU4NTBDNzA2MzIKKzoxMDYwNjAwMDEyN0FFQzUwQzcwNjE0N0FGNDUwQzcwNjE2N0FGQjUwMjEKKzoxMDYwNzAwMEM3MDYxODdBMDM1MUM3MDYxQTdBMEI1MUM3MDYxQzdBNEQKKzoxMDYwODAwMDBFNTFDNzA2MUU3QTEwNTFDNzA2MjA3QTEyNTFDNzA2NTQKKzoxMDYwOTAwMDIyN0ExNjUxQzYwNjI0N0EwMUM2MDYyNTdBMDFDNjA2NUEKKzoxMDYwQTAwMDI2N0EwM0MzQzcwNjBDN0ExQTUxQzcwNjBFN0E0RDUxRDkKKzoxMDYwQjAwMEM3MDYxMDdBNDc1MUM3MDYxMjdBNEE1MUM3MDYxNDdBQTIKKzoxMDYwQzAwMDRGNTFDNzA2MTY3QTUxNTFDNzA2MTg3QTU1NTFDNzA2NUYKKzoxMDYwRDAwMDFBN0E1NjUxQzcwNjFDN0E1OTUxQzcwNjFFN0E1QTUxNjgKKzoxMDYwRTAwMEM3MDYyMDdBNUI1MUM3MDYyMjdBNUU1MUM2MDYyNDdBMUIKKzoxMDYwRjAwMDIwQzYwNjI1N0EyMEM2MDYyNjdBMDJDM0ExRjg3OTQ4NkEKKzoxMDYxMDAwMDc0MTRCRUQ3NzlFODNDMDA4QkY4QUMzQzNBNzUwNzhFMjYKKzoxMDYxMTAwMEM3RTgzMDAwOEJGOEMzOTA4QkM3MkIwNkZFNzk4QUYwNTYKKzoxMDYxMjAwMDI0MEY4QUQwMDJEMDAyRDA4MEMyMEJDMEVFMDQ4MEM2RjkKKzoxMDYxMzAwMDAzMDQzREMzOENDMEU4OTMwMEIwM0FFOEU0MDA4QkM3ODkKKzoxMDYxNDAwMEU4ODkwMEMzNTEzM0M5OTBBQzNDMjA3NEZCOTAwQUMwNkQKKzoxMDYxNTAwMDc0MjYyQzMwNzIyMjNDMDk3NjE0M0MxMTcyMUEyQzA3REEKKzoxMDYxNjAwMDNDMEY3NjBBM0MyQTcyMTAyQzIwM0MwRjc3MEE5OEMxMEIKKzoxMDYxNzAwMEUxMDQwM0M4QUNFQkQ3OTA0RThCQzE1OUMzOTAwNjhDOTkKKzoxMDYxODAwMEM4OEVDMEU4MDIwMDA3QzMyNjhBMDQ0NjBBQzA3NDA2MDcKKzoxMDYxOTAwMEU4OEYwMEVCRjM5MEMzOTAwQkMwNzQ3QTUxMzNEMkI5RkYKKzoxMDYxQTAwMEU4MDNGN0YxOEJDQUU4MDMwMDhCQzE1OUJBNjQwMEY2MjMKKzoxMDYxQjAwMEYyRTgwQzAwOEFDNDk4QjIwQUY2RjJFODAyMDA4QUM0MzcKKzoxMDYxQzAwMDUwMEFGMDc0MDUwNDMwRTg1ODAwNThDMzg2QzRFODA3NDQKKzoxMDYxRDAwMDAwODZDNEU4MDIwMEMzOTBDMUM4MDRFODA4MDBDMUMwM0EKKzoxMDYxRTAwMDA0RTgwMjAwQzM5MDUzNTAyNDBGQkJDQTYyMkVEN0U4QzQKKzoxMDYxRjAwMDMwMDA1ODVCQzM5MDg2QzRFODA3MDA4NkM0RTgwMjAwRkMKKzoxMDYyMDAwMEMzOTA1MEI5MDgwMDhBRTAzMkMwRDFDMDA0MzBFODExMTAKKzoxMDYyMTAwMDAwRTJGNTU4QzM5MEIwMzBFODA3MDBDM0IwMjBFODAxQjEKKzoxMDYyMjAwMDAwQzM1NjhCMzZEMDc5ODg4NEQwNzc0NjgxRTZGRjAxNEIKKzoxMDYyMzAwMEZGMDZENDc5ODkzNkQwNzk4MTNFRDQ3OUZFMDE3NTA4N0MKKzoxMDYyNDAwMDU2RTgxNDAwNUVFQkYxOTA1RUMzQkEwMjAyRUMyNDAxNDIKKzoxMDYyNTAwMDc0MDRCQTA2MDJFQ0MzOTA4MDNFRjY3OTAwNzQwOTYwQkIKKzoxMDYyNjAwMEI4MDEwMEU4MkNFQTYxOTBCQTAyMDJFQ0E4MDQ3NDI4OTQKKzoxMDYyNzAwMDhCMzZEMjc5ODMzRUQ0NzkwMDc0MUQ4QTg0RDA3NzQ2RDgKKzoxMDYyODAwMDgxRTZGRjAxODkzNkQyNzlGRjBFRDQ3OUJBMDYwMkVFOTMKKzoxMDYyOTAwMEJBMDIwMkVDQTgwNDc1RENBMUQ0NzlDMzUyQkEwNjAyOTIKKzoxMDYyQTAwMEVFNUFDMzkwNTI1MEJBMDIwMkVDQTgwNDc0MDg1ODVBMkQKKzoxMDYyQjAwMEU4RTlGRkY5QzM5MDU4NUFGOEMzNTI1MEJBMDIwMkVDMDkKKzoxMDYyQzAwMEE4MDQ3NEZCNTg1QUU4RDNGRkMzMzAzMTMyMzMzNDM1NTUKKzoxMDYyRDAwMDM2MzczODM5NDE0MjQzNDQ0NTQ2NTM1MDhBRTA4MEU0REEKKzoxMDYyRTAwMDBGQkJDQTYyQzBFODA0MkVEN0U4Q0VGRjhBQzQyRUQ3RkYKKzoxMDYyRjAwMEU4QzdGRjU4NUJDMzg2RTBFOERGRkY4NkUwRThEQUZGMjcKKzoxMDYzMDAwMEMzOTBCRUIyNEQ1MDJFQUMzQzAwNzQwNUU4QUJGRkVCMjEKKzoxMDYzMTAwMEY1NThDMzkwQzgwODAwMDA1NjU3OEI3NjA0QkYwNDAwOTgKKzoxMDYzMjAwMEM3NDZGQzAwMDBDNzQ2RkEwMDAwQzc0NkY4MDAwMDgzRDUKKzoxMDYzMzAwMDdFMDYwMDc1MEU1NkU4QjYwRTU5MEJDMDc1MDU4QkM3NjQKKzoxMDYzNDAwMEU5NUIwMThCNDZGQzg5NDZGRTBCRkY3NTA1QjgwMTAwMzEKKzoxMDYzNTAwMEVCMDIzM0MwNTA1NkU4QTQwRDU5NTlCNDAwODk0NkZDRUQKKzoxMDYzNjAwMDhCNUVGQzgzRkIwODc2MDNFOTJCMDFEMUUzMkVGRkE3QUMKKzoxMDYzNzAwMEIyNjRCODAzMDBFOTI2MDE4MzdFRkEwMDc0MTRDNzQ2QUMKKzoxMDYzODAwMEZBMDAwMDhBNDQ1ODk4NTA4QTQ0NTk5ODUwRThDMjBGM0QKKzoxMDYzOTAwMDU5NTk4MzdFRjgwMDc0MEFDNzQ2RjgwMDAwNTZFODlCRjYKKzoxMDYzQTAwMDA4NTk4MzdFMDYwMDc1MDU4QkM3RTlGMTAwODNGRjA0NTkKKzoxMDYzQjAwMDc1MDNFOUU2MDA4QkM3RTlFNDAwODM3RUZFMDA3NTAzMDAKKzoxMDYzQzAwMEJGMDIwMEU5RDUwMDgzN0VGRTAwNzUwM0JGMDEwMEU5MkUKKzoxMDYzRDAwMEM5MDA4QjVFRkU4M0ZCMDc3NjAzRTk4NjAwRDFFMzJFQkUKKzoxMDYzRTAwMEZGQTdBMjY0MzNGRkU5N0YwMEJGMDQwMDgwN0M1ODBGNDEKKzoxMDYzRjAwMDc0MjI4MzdFRjgwMDc1MUNGRTQ0NTg2QTA4NTZFODdFQjUKKzoxMDY0MDAwMDBDNTk1OThBNDQ1ODA0ODA1MDU2RTg3MjBDNTk1OUM3OUYKKzoxMDY0MTAwMDQ2RkEwMTAwODM3RUY4MDA3NDBBQzc0NkY4MDAwMDU2NjkKKzoxMDY0MjAwMEU4MTkwODU5RUI0MkJGMDQwMDgwN0M1ODAwNzQyMjgzQUQKKzoxMDY0MzAwMDdFRjgwMDc1MUNGRTRDNTg2QTA4NTZFODQxMEM1OTU5MDQKKzoxMDY0NDAwMDhBNDQ1ODA0ODA1MDU2RTgzNTBDNTk1OUM3NDZGQTAxMTkKKzoxMDY0NTAwMDAwODM3RUY4MDA3NDBBQzc0NkY4MDAwMDU2RThEQzA3OUYKKzoxMDY0NjAwMDU5RUIwNUJGMDQwMEVCMDBFQjMxQkYwNDAwRUIyQ0M3NzgKKzoxMDY0NzAwMDQ2RjgwMTAwNkEwODU2RTgwNTBDNTk1OTgwN0M1ODA5MEQKKzoxMDY0ODAwMDdEMDRCMDBGRUIwMkIwMDAwNDgwNTA1NkU4RjAwQjU5QzkKKzoxMDY0OTAwMDU5QkYwNDAwRUIwNUJGMDQwMEVCMDBFOUE1RkU1RjVFRjkKKzoxMDY0QTAwMEM5QzNFNDYzNjM2NDYzNjQ2MzY0NjM2NEU5NjMyNjY0MjcKKzoxMDY0QjAwMDUxNjQ3ODYzQkE2M0M2NjM5NjY0RDI2MzZBNjQ2QTY0M0IKKzoxMDY0QzAwMDZGNjQ3MjYzQzgwODAwMDA1NjU3OEI3NjA0OEI3RTA4OTEKKzoxMDY0RDAwMDZBMDE1NkU4QTkwQjU5NTk4QTQ2MDZDMEUwMDYwNDgwQUQKKzoxMDY0RTAwMDUwNTZFODlBMEI1OTU5Qzc0NkZFMDAwMDg5N0VGOEVCRDIKKzoxMDY0RjAwMDAzRkY0NkZFOEI1RUY4RkY0NkY4ODAzRjAwNzVGMjgzOEYKKzoxMDY1MDAwMDdFRkUxMDdEMjVCODEwMDAyQjQ2RkVEMUY4ODk0NkZDOTIKKzoxMDY1MTAwMEM3NDZGQTAwMDBFQjBCNkEyMDU2RTg2MjBCNTk1OUZGOTgKKzoxMDY1MjAwMDQ2RkE4QjQ2RkEzQjQ2RkM3Q0VERUIwQzhCREY0NzhBNDgKKzoxMDY1MzAwMDA3NTA1NkU4NDkwQjU5NTk4MDNEMDA3NUVGNkEwMjU2REQKKzoxMDY1NDAwMEU4M0MwQjU5NTlFQjAwNUY1RUM5QzNDODA0MDAwMDU2MTQKKzoxMDY1NTAwMDU3OEI3RTA0Qzc0NkZFMDAwMEJFMTQwMEU5MDkwMThCN0MKKzoxMDY1NjAwMDVFRkU4M0MzMDQyQkRGOEE4N0FDMEI4ODQ0NUFDNjQ0ODMKKzoxMDY1NzAwMDU4MDg4QTQ2RkU4ODQ0NTlDNzQ0MDYwMDAwQzY0NDE5OTQKKzoxMDY1ODAwMDAwQzY0NDFBMDBDNjQ0MUIwMEM2NDQxRDBEQzY0NDFFNjYKKzoxMDY1OTAwMDAzQzY0NDFGMDBDNjQ0MjAwMEM2NDQyMTAwQzY0NDVCMTUKKzoxMDY1QTAwMDAwQzY0NDVEMDBDNjQ0NUUwMEM2NDQ1RjAwQzY0NDYwNDkKKzoxMDY1QjAwMDAwQzc0NkZDMDAwMEVCMEQ4QjVFRkNEMUUzQzc0MDMwMEEKKzoxMDY1QzAwMDAwMDBGRjQ2RkM4MzdFRkMxMDdDRURDNzQ2RkMwMDAwMEIKKzoxMDY1RDAwMEVCMEE4QjVFRkNDNjQwNTAwMEZGNDZGQzgzN0VGQzA0NDkKKzoxMDY1RTAwMDdDRjBDNzQ0NTQwMDAwQzc0NDU2MDAwMDhBNDQ1QTk4QkYKKzoxMDY1RjAwMEJBRjgwMDIzRDBCODA1MDAwQkMyODk0NkZDOUNGQThBODEKKzoxMDY2MDAwMDQ2RkNCQUZFMDBFRUJBMDAwMEVDOUQyNDA4ODg0NkZDNjkKKzoxMDY2MTAwMDgzN0VGQzAwNzUwMkVCNEFGRjc2RkVFODdBMEM1OTY4MkYKKzoxMDY2MjAwMDM1MDI1NkU4MzIwQTU5NTkwQkMwNzUzNDY4MzgwMjU2OUIKKzoxMDY2MzAwMEU4MjUwQTU5NTkwQkMwNzUyNzY4NDIwMjU2RTgxODBBMUUKKzoxMDY2NDAwMDU5NTkwQkMwNzUxQTY4NEMwMjU2RTgwQjBBNTk1OTBCNzgKKzoxMDY2NTAwMEMwNzUwRDY4NTYwMjU2RThGRTA5NTk1OTBCQzA3NDAyMDAKKzoxMDY2NjAwMEVCMDBGRjQ2RkU4M0M2NjIzOTdFRkU3RDAzRTlFRkZFNDYKKzoxMDY2NzAwMEVCMDA1RjVFQzlDM0M4MDgwMDAwNTY1NzhCNDYwNEJBREEKKzoxMDY2ODAwMDYyMDBGN0VBMDUxNDAwOEJGMDgzN0UwNjAwNzQwNUI4RkIKKzoxMDY2OTAwMDEwMDBFQjAzQjgwODAwODk0NDA0OEE0NjA4ODg0NDVDNkIKKzoxMDY2QTAwMDU2RTg1OTA0NTk4QkY4OEJDNzg5NDQ1Njg5NDQ1NDhBNTMKKzoxMDY2QjAwMDQ0NUQ4ODQ0MkYwQkZGNzUxRDY4QzIwRjZBMDE1NkU4QzAKKzoxMDY2QzAwMDAyRkU4M0M0MDZFQjAwNkEwMTU2RTg0N0ZDNTk1OTBCRTkKKzoxMDY2RDAwMEMwNzVGNEJGMDEwMDg5N0VGQUI5MDUwMEJCRTk2QTJFRDYKKzoxMDY2RTAwMDhCMDczQjQ2RkE3NDA3NDM0M0UyRjRFOUE0MDMyRUZGMDkKKzoxMDY2RjAwMDY3MEFDNzQ0MDYwMjAwQzc0NDA4RjQwODhCNUUwNEQxNDkKKzoxMDY3MDAwMEUzOEI4N0ZDMDg4OTQ0MEEzM0MwOEJGODg5NDQ1NEU5MzkKKzoxMDY3MTAwMDgwMDM1NkU4QkIwNTU5QkYwMTAwOEE0NDVEODg0NDYwODgKKzoxMDY3MjAwMEU5NkYwMzgzN0MwNDA4NzUzMDgwN0M1QzAxNzUxNThBRjEKKzoxMDY3MzAwMDQ0NURCNDAwRDFFMDhCRDhGRkI3RTQwODU2RThGNzA4MTEKKzoxMDY3NDAwMDU5NTlFQjEzOEE0NDVEQjQwMEQxRTA4QkQ4RkZCN0M0MkMKKzoxMDY3NTAwMDA4NTZFOEUyMDg1OTU5RUIyRTgwN0M1QzAxNzUxNThBRDEKKzoxMDY3NjAwMDQ0NURCNDAwRDFFMDhCRDhGRkI3RDQwODU2RThDNzA4MjEKKzoxMDY3NzAwMDU5NTlFQjEzOEE0NDVEQjQwMEQxRTA4QkQ4RkZCN0I0MEMKKzoxMDY3ODAwMDA4NTZFOEIyMDg1OTU5NkEwMTU2RTg4N0ZCNTk1OThCRUYKKzoxMDY3OTAwMEQ4ODNGQjAzNzcyQUQxRTMyRUZGQTdFMTZBQkYwMTAwNkMKKzoxMDY3QTAwMDhBNDQ1RDg4NDQ1RUVCMTg4QTQ0NUQwNEZGMjQwNzg4QjAKKzoxMDY3QjAwMDQ0NURFQjBDOEE0NDVERkVDMDI0MDc4ODQ0NURFQjAwMTkKKzoxMDY3QzAwMEU5Q0YwMjhBNDQ1REI0MDBEMUUwOEJEOEZGQjdGRDAyNjcKKzoxMDY3RDAwMDU2RTg2MzA4NTk1OTY4MUQwMzU2RTg1QTA4NTk1OTZBMUEKKzoxMDY3RTAwMDAxNTZFODJGRkI1OTU5OEJEODgzRkIwMzc3MzZEMUUzNDkKKzoxMDY3RjAwMDJFRkZBN0Q5NkFCRjAxMDA4QTQ0NUQ4ODQ0NUZFQjI0NUQKKzoxMDY4MDAwMDhBNDQ1RDA0RkY4QTU0MDQ4MEMyRkYyMkMyODg0NDVEMkEKKzoxMDY4MTAwMEVCMTI4QTQ0NURGRUMwOEE1NDA0ODBDMkZGMjJDMjg4MDMKKzoxMDY4MjAwMDQ0NURFQjAwRTk2QjAyOEI1QzA2ODNDM0ZFRDFFMzhCMTYKKzoxMDY4MzAwMDQwMDg4OTA0OEIxQ0ZGNzcwNjZBMDA1NkU4ODVGQzgzQjQKKzoxMDY4NDAwMEM0MDY4QjVDMDY0QkQxRTM4QjQwMDg4OTQ0MDI4QjVDMDkKKzoxMDY4NTAwMDAyRkY3NzA2NkEwMTU2RTg2QUZDODNDNDA2NkEwMTU2OUQKKzoxMDY4NjAwMEU4QjFGQTU5NTk4QkQ4ODNGQjAzNzYwM0U5MUYwMkQxQUIKKzoxMDY4NzAwMEUzMkVGRkE3RDE2QThCNUMwMjhCNDcwNDg5NDQwMjhCMEQKKzoxMDY4ODAwMDVDMDI4MDNGNDQ3NTBEOEI1QzAyOEE0NzAxQjQwMDNCN0IKKzoxMDY4OTAwMDQ0MDQ3REUyOEI0NjA0RDFFMDhCMUMwM0Q4OEI0NDAyNzgKKzoxMDY4QTAwMDg5NDcwODhCNUMwNjRCRDFFMzhCNDQwMjg5NDAwOEU5OTkKKzoxMDY4QjAwMERFMDE4QjVDMDI4QjQ3MDI4OTQ0MDI4QjVDMDI4MDNGQzUKKzoxMDY4QzAwMDQ0NzUwRDhCNUMwMjhBNDcwMUI0MDAzQjQ0MDQ3REUyQjEKKzoxMDY4RDAwMDhCNDYwNEQxRTA4QjFDMDNEODhCNDQwMjg5NDcwODhCN0MKKzoxMDY4RTAwMDVDMDY0QkQxRTM4QjQ0MDI4OTQwMDhFOUEyMDFCRjAxNTkKKzoxMDY4RjAwMDAwRTk5QzAxOEI1QzAyOEEwN0I0MDA4OTQ2RjhCOTBDNTgKKzoxMDY5MDAwMDAwQkJBMTZBMkU4QjA3M0I0NkY4NzQwNzQzNDNFMkY0QjEKKzoxMDY5MTAwMEU5NzcwMTJFRkY2NzE4OEI0NjA0RDFFMDhCNUMwMjAzRjgKKzoxMDY5MjAwMEQ4OEI0NzA4OEI1QzA2RkY0NDA2RDFFMzg5NDAwODhCNkYKKzoxMDY5MzAwMDFDODA3RjAxMDA3NDEyOEI1QzAyOEE0NzAxOEIxQzhBQzkKKzoxMDY5NDAwMDU3MDFCNjAwOEJEQTg4NDAxOEU5NDAwMUZGNEMwNkU5OTAKKzoxMDY5NTAwMDNBMDE4QjVDMDI4QTQ3MDE4QjFDOEE1NzAxQjYwMDhCNzcKKzoxMDY5NjAwMERBODg0MDE4RTkyNTAxOEI1QzAyOEE0NzAxOEIxQzhBNzIKKzoxMDY5NzAwMDU3MDFCNjAwOEJEQTg4NDAxOEZGNEMwNkU5MEQwMThCRjEKKzoxMDY5ODAwMDVDMDI4QTQ3MDE4QjFDOEE1NzAxQjYwMDhCREEzMDQwQzMKKzoxMDY5OTAwMDE4RTlGODAwQjhGMDEwOEJGODg5NDQ1NDhBNDQ1Rjg4RUQKKzoxMDY5QTAwMDQ0NURFOUU3MDA4QTQ0MUM5ODNEMDIwMDc0MDczRDAzRkEKKzoxMDY5QjAwMDAwNzQwMkVCMDdDNzQ2RkUwMDAwRUIyQjhBNDQxQzk4Q0MKKzoxMDY5QzAwMEQxRTA4QkQ4RkZCNzY5MDI1NkU4NkIwNjU5NTk2QTAxQzYKKzoxMDY5RDAwMDU2RTg0MEY5NTk1OTg5NDZGRTgzN0VGRTAwNzQwNjgzQzUKKzoxMDY5RTAwMDdFRkUwMzc1RTlFQjAwODM3RUZFMDM3NDYyOEE0NDFDMUQKKzoxMDY5RjAwMDk4RDFFMDhCRDhGRkI3NkQwMjU2RTgzQTA2NTk1OTU2NDAKKzoxMDZBMDAwMEU4NEQ5NzU5ODk0NkZDOEI1RUZDODNFQkZFODNGQjAzQzQKKzoxMDZBMTAwMDc3MzNEMUUzMkVGRkE3OTk2QTY4QUMwMjU2RTgxNzA2RDAKKzoxMDZBMjAwMDU5NTlFQjIzNjg4RjAyNTZFODBDMDY1OTU5RUIxODY4NDAKKzoxMDZBMzAwMDc1MDI1NkU4MDEwNjU5NTlFQjBENjhDNjAyNTZFOEY2OEMKKzoxMDZBNDAwMDA1NTk1OUVCMDJFQjAwNkEwMTU2RThDN0Y4NTk1OUJGREUKKzoxMDZBNTAwMDAxMDBFQjM4NjhERDAyNTZFOERDMDU1OTU5NkEwMTU2MzkKKzoxMDZBNjAwMEU4QjFGODU5NTlCRjAxMDBFQjIyQjhEMDMwOEJGODg5NTIKKzoxMDZBNzAwMDQ0NTQ4QTQ0NjA4ODQ0NURFQjEyQjhFMDIwOEJGODg5NjYKKzoxMDZBODAwMDQ0NTQ4QTQ0NUU4ODQ0NURFQjAyRUIwMEVCMDJFQjAwNjkKKzoxMDZBOTAwMEVCMDBFOTQxRkM1RjVFQzlDMzE5NkEyNDZBMkY2QTNBQjgKKzoxMDZBQTAwMDZBMDAwMDAxMDAwMjAwMDQwMDQxMDA0MjAwNDMwMDQ0NkIKKzoxMDZBQjAwMDAwODAwMDgxMDA4MjAwRkYwMDE3Njk1NDZBN0E2QUE1OEQKKzoxMDZBQzAwMDY5NTI2OTk0Njk2QTZBNjc2OTUyNjk3RjY5Njc2OTRDNDIKKzoxMDZBRDAwMDY5RjQ2ODc2NjhCMjY4RUU2OEY1NjcwMDY4MTI2OEY1NzAKKzoxMDZBRTAwMDY3OUQ2N0E4NjdCNDY3OUQ2NzAwMDAwMTAwRjAxMEUwMkMKKzoxMDZBRjAwMDIwRDAzMDI3NjhGMjY2QzM2NzIzNjcxMjY3QzgwNDAwOTYKKzoxMDZCMDAwMDAwNTY1NzhCNzYwNDhBNDQ1OTk4ODk0NkZDNkEwOThCNEIKKzoxMDZCMTAwMDQ2RkMwNTg0MDE1MEU4OTMwODU5NTk4QkY4OEJDNzI1MkEKKzoxMDZCMjAwMDAwRjAzRDAwMTA3NTU1OEJDNzI1RjAwMDNERjAwMDc1NTUKKzoxMDZCMzAwMDRCOEJDNzI1MDAwRkMxRjgwODg5NDZGRThCNDQwNDNCRTgKKzoxMDZCNDAwMDQ2RkU3RDA1MzNDMEU5RUYwMDhCQzcyNTBGMDBCQTBGNjUKKzoxMDZCNTAwMDAwMkJEMDNCNTZGRTc0MDUzM0MwRTlEQjAwQzc0NDAyNkUKKzoxMDZCNjAwMDA0MDk4QTQ2RkU4ODQ0NUY4ODQ0NUQ4QjVFRkNEMUUzNUQKKzoxMDZCNzAwMEM3ODdGQzA4MDQwOUI4RjAxMEU5QkMwMDhCQzcyNTAwRTIKKzoxMDZCODAwMEYwM0QwMDIwNzU1MjhCQzcyNUYwMDAzREUwMDA3NTQ4QjAKKzoxMDZCOTAwMDhCQzcyNTAwMEZDMUY4MDg4OTQ2RkU4MzdFRkUwODdFNUMKKzoxMDZCQTAwMDA1MzNDMEU5OTIwMDhCQzcyNTBGMDBCQTBGMDAyQkQwMjgKKzoxMDZCQjAwMDNCNTZGRTc0MDUzM0MwRUI3RjkwQzc0NDAyMEMwOThBMzQKKzoxMDZCQzAwMDQ2RkU4ODQ0NUU4ODQ0NUQ4QjVFRkNEMUUzQzc4N0ZDNEIKKzoxMDZCRDAwMDA4MEMwOUI4RTAyMEVCNjA4QkM3MjUwMEYwM0QwMDMwQzEKKzoxMDZCRTAwMDc1NTI4QkM3MjVGMDAwM0REMDAwNzU0ODhCQzcyNTAwMzYKKzoxMDZCRjAwMDBGQzFGODA4ODk0NkZFOEI0NDA0M0I0NkZFN0QwNDMzRjIKKzoxMDZDMDAwMEMwRUIzNThCQzcyNTBGMDBCQTBGMDAyQkQwM0I1NkZFQ0IKKzoxMDZDMTAwMDc0MDQzM0MwRUIyMkM3NDQwMjE0MDk4QTQ2RkU4ODQ0MzgKKzoxMDZDMjAwMDYwODg0NDVEOEI1RUZDRDFFM0M3ODdGQzA4MTQwOUI4MUIKKzoxMDZDMzAwMEQwMzBFQjA0MzNDMEVCMDA1RjVFQzlDM0M4MDYwMDAwNzAKKzoxMDZDNDAwMDU2OEI3NjA0NkEwODU2RTgzNTA0NTk1OThBNDQ1ODA0MjQKKzoxMDZDNTAwMDgwNTA1NkU4MjkwNDU5NTk4QjQ0NTQzQjQ0NTY3NTBBRDAKKzoxMDZDNjAwMDhBNDQ1RDNBNDQyRjc1MDJFQjY0OEI0NDU0ODk0NDU2NDAKKzoxMDZDNzAwMDhCNUMwMjhBNDcwMTg4NDQyRjhBNDQ1REI0MDBDMUUwREUKKzoxMDZDODAwMDA4OEI1NDU0MEJEMDhBNDQ1REI0MDBCQjBGMDAyQkQ4NDIKKzoxMDZDOTAwMDBCRDM4OTU2RkU2QTEwOEE0NDU5OTgwNTA0MDA5OTA1NTkKKzoxMDZDQTAwMDQwMDE4M0QyMDA1MjUwRTg1NDA4ODNDNDA2ODk1NkZDNDAKKzoxMDZDQjAwMDg5NDZGQThCNDZGRTA5NDZGQTgzNEVGQzAwNkExOUZGQTQKKzoxMDZDQzAwMDc2RkNGRjc2RkFFODczMDc4M0M0MDZFOEZFMDc1RUM5MjAKKzoxMDZDRDAwMEMzQzgxQzAwMDA1NjU3OEI1RTA0OEE0NzU5OTg4QkYwMzYKKzoxMDZDRTAwMDhCNUUwNDhBNDc1REI0MDA4OTQ2RTY4MzdFRTYwMDdEQkMKKzoxMDZDRjAwMDBBOEI1RTA0OEI0NzA0NDg4OTQ2RTY4QjVFMDQ4QjQ3MEIKKzoxMDZEMDAwMDA0M0I0NkU2N0YwNUM3NDZFNjAwMDA4QjVFMDQ4QTQ2RTQKKzoxMDZEMTAwMEU2ODg0NzVEOEJERUQxRTM4QjlGNTkwMkM2NDcwMjIwOTAKKzoxMDZEMjAwMDhCREVEMUUzOEI5RjU5MDJDNjQ3MDMzMDhCREVEMUUzNjQKKzoxMDZEMzAwMDhCOUY2MTAyQzY0NzAyMjA4QkRFRDFFMzhCOUY2MTAyRUQKKzoxMDZENDAwMEM2NDcwMzMwOEI0NkU2ODk0NkZBODM3RUZBMDA3NDE4RkMKKzoxMDZENTAwMDhCNDZGQUJCMEEwMDMzRDJGN0YzODBDMjMwOEJERUQxMDgKKzoxMDZENjAwMEUzOEI5RjU5MDI4ODU3MDNCQjBBMDA4QjQ2RkEzM0QyNDQKKzoxMDZENzAwMEY3RjM4OTQ2RkE4MzdFRkEwMDc0MTg4QjQ2RkFCQjBBNDkKKzoxMDZEODAwMDAwMzNEMkY3RjM4MEMyMzA4QkRFRDFFMzhCOUY1OTAyMDAKKzoxMDZEOTAwMDg4NTcwMjhCNDZFNjg5NDZGQTgzN0VGQTAwNzQxODhCODAKKzoxMDZEQTAwMDQ2RkFCQjBBMDAzM0QyRjdGMzgwQzIzMDhCREVEMUUzNjAKKzoxMDZEQjAwMDhCOUY2MTAyODg1NzAzQkIwQTAwOEI0NkZBMzNEMkY3RDgKKzoxMDZEQzAwMEYzODk0NkZBODM3RUZBMDA3NDE4OEI0NkZBQkIwQTAwRjAKKzoxMDZERDAwMDMzRDJGN0YzODBDMjMwOEJERUQxRTM4QjlGNjEwMjg4MjAKKzoxMDZERTAwMDU3MDI4QjVFRTZEMUUzRkZCNzEyMDI2QTAwRkY3NjA0MUEKKzoxMDZERjAwMEU4RDFGNjgzQzQwNjY4RDMwRjZBMDFGRjc2MDRFOEMzQkUKKzoxMDZFMDAwMEY2ODNDNDA2RkY3NkU2NTZFODAxOTM1OTU5ODk1NkYyOEYKKzoxMDZFMTAwMDg5NDZGMEZGNzZFNjU2RTgxNDkzNTk1OTg5NTZFRTg5NkIKKzoxMDZFMjAwMDQ2RUM5Q0ZBQzQ1RUYwMjY4QjA3ODk0NkVBQzQ1RUVDMDkKKzoxMDZFMzAwMDI2OEIwNzg5NDZFOEJBNTBGRkVEODk0NkZFOURDNzQ2NzYKKzoxMDZFNDAwMEU0MDEwMEU4RUVBMEJBNTBGRkVEODk0NkZDOEI0NkZDNTkKKzoxMDZFNTAwMDJCNDZGRTNERTgwMzczMDNFOTgwMDE5Q0ZBQkE1MEZGMUMKKzoxMDZFNjAwMEVEODk0NkZDOEI0NkZDMkI0NkZFODk0NkY4QzQ1RUYwNTUKKzoxMDZFNzAwMDI2OEIwNzJCNDZFQTg5NDZGNkM0NUVGMDI2OEIwNzg5RTcKKzoxMDZFODAwMDQ2RUFDNDVFRUMyNjhCMDcyQjQ2RTg4OTQ2RjRDNDVFQ0UKKzoxMDZFOTAwMEVDMjY4QjA3ODk0NkU4QkE1MEZGRUQ4OTQ2RkU5RDgxQjYKKzoxMDZFQTAwMDdFRjhFODAzNzYxQ0ZGNzZGOEZGNzZGNkU4NzYwMTU5NUYKKzoxMDZFQjAwMDU5ODk0NkY2RkY3NkY4RkY3NkY0RTg2ODAxNTk1OTg5NTIKKzoxMDZFQzAwMDQ2RjRCRjBFMDBFQjE3OEJERUQxRTM4QjlGNTkwMkM2NTEKKzoxMDZFRDAwMDAxMjA4QkRFRDFFMzhCOUY2MTAyQzYwMTIwNDc4M0ZGMzcKKzoxMDZFRTAwMDExNzZFNDhCREVEMUUzOEI5RjU5MDJDNjQ3MEQzMDhCQzAKKzoxMDZFRjAwMERFRDFFMzhCOUY2MTAyQzY0NzBEMzA4MzdFRjYwOTc3QjIKKzoxMDZGMDAwMDA1QjgwRDAwRUIyNjgzN0VGNjYzNzcwNUI4MEUwMEVCMUYKKzoxMDZGMTAwMDFCODE3RUY2RTcwMzc3MDVCODBGMDBFQjBGODE3RUY2NDUKKzoxMDZGMjAwMDBGMjc3NzA1QjgxMDAwRUIwM0I4MTEwMDhCRjhFQjI1OUQKKzoxMDZGMzAwMDhCNDZGNkJCMEEwMDMzRDJGN0YzODBDMjMwOEJERUQxMkEKKzoxMDZGNDAwMEUzOEI5RjU5MDI4ODExNEZCQjBBMDA4QjQ2RjYzM0QyNjAKKzoxMDZGNTAwMEY3RjM4OTQ2RjY4MzdFRjYwMDc1RDU4MzdFRjQwOTc3Q0MKKzoxMDZGNjAwMDA1QjgwRDAwRUIyNjgzN0VGNDYzNzcwNUI4MEUwMEVCQzEKKzoxMDZGNzAwMDFCODE3RUY0RTcwMzc3MDVCODBGMDBFQjBGODE3RUY0RTkKKzoxMDZGODAwMDBGMjc3NzA1QjgxMDAwRUIwM0I4MTEwMDhCRjhFQjI1M0QKKzoxMDZGOTAwMDhCNDZGNEJCMEEwMDMzRDJGN0YzODBDMjMwOEJERUQxQ0MKKzoxMDZGQTAwMEUzOEI5RjYxMDI4ODExNEZCQjBBMDA4QjQ2RjQzM0QyRkEKKzoxMDZGQjAwMEY3RjM4OTQ2RjQ4MzdFRjQwMDc1RDU4QkRFRDFFM0ZGQzkKKzoxMDZGQzAwMEI3NTkwMkZGNzYwNEU4NkUwMDU5NTk4QkRFRDFFM0ZGMTIKKzoxMDZGRDAwMEI3NjEwMkZGNzYwNEU4NUUwMDU5NTk2QTAwRkY3NjA0NDMKKzoxMDZGRTAwMEU4MzFGMzU5NTk4QkQ4ODNGQjA0NzcxRkQxRTMyRUZGODcKKzoxMDZGRjAwMEE3MUI3MEVCMjJDNzQ2RTQwMDAwRkY0RUU2RUIwQ0M3NzAKKzoxMDcwMDAwMDQ2RTQwMDAwRkY0NkU2RUIwMkVCMDA4MzdFRTQwMDc0RkEKKzoxMDcwMTAwMDAzRTkyQUZFRTlENEZDNUY1RUM5QzNGMzZGRjU2RkZGOTUKKzoxMDcwMjAwMDZGRjM2RjA5NzA1NThCRUM4QjQ2MDRCOUU4MDNGN0UxRjkKKzoxMDcwMzAwMDhCNEUwNkY3RjE1REMzNTU4QkVDNTY4Qjc2MDZFQjBFNDcKKzoxMDcwNDAwMDhCREU0NjhBMDc1MEZGNzYwNEU4MzMwMDU5NTk4MDNDQUUKKzoxMDcwNTAwMDAwNzVFREVCMDA1RTVEQzM1NThCRUM1NjhCNzYwNkVCNTEKKzoxMDcwNjAwMDE0OEJERTQ2OEEwNzUwRkY3NjA0RTg0NTAwNTk1OTBCMTkKKzoxMDcwNzAwMEMwNzQwMkVCMDc4MDNDMDA3NUU3RUIwMDVFNURDM0M4OUYKKzoxMDcwODAwMDAyMDAwMDU2OEI3NjA0OEE0NDVBOTg4OTQ2RkU5Q0ZBODAKKzoxMDcwOTAwMDhBNDZGRUJBRkUwMEVFQkEwMjAwRUNBODAyNzQwNjlEMTMKKzoxMDcwQTAwMEU4OTE5RUVCRTlCQTAwMDA4QTQ2MDZFRTlERUIwMDVFOTEKKzoxMDcwQjAwMEM5QzNDODA0MDAwMDU2OEI3NjA0OEE0NDVBOTg4OTQ2OEUKKzoxMDcwQzAwMEZFRThFNkExODk0NkZDRThFMEExMkI0NkZDM0RCODBCQjIKKzoxMDcwRDAwMDc2MDVCODAxMDBFQjIzOUNGQThBNDZGRUJBRkUwMEVFNjQKKzoxMDcwRTAwMEJBMDIwMEVDQTgwMjc0MDY5REU4NDg5RUVCRDlCQTAwRUIKKzoxMDcwRjAwMDAwOEE0NjA2RUU5RDMzQzBFQjAwNUVDOUMzQzgwNDAwOUIKKzoxMDcxMDAwMDAwNTY1NzhCNzYwNDgzN0UwNjAwNzQwNzU2RTgwMzAxMDkKKzoxMDcxMTAwMDU5RUIwNTU2RThBMjAwNTk4ODQ2RkY4MDdFRkYwODc3QTQKKzoxMDcxMjAwMDA2OEE0NkZGRTk4NDAwODA3RUZGMEY3NjAzRUI3OTkwQTQKKzoxMDcxMzAwMDhBNDZGRkI0MDAyRDBBMDA4QkQ4ODNGQjA0Nzc2N0QxMDEKKzoxMDcxNDAwMEUzMkVGRkE3QUY3MUIwMDBFQjYxNTZFODZCMDA1OUI0QjYKKzoxMDcxNTAwMDAwMjUwRjAwODk0NkZDNTZFODVFMDA1OUI0MDA4QkY4MDQKKzoxMDcxNjAwMDU2RTg1NTAwNTlCNDAwQzFFMDA4OEJENzAzRDA4QkZBMUMKKzoxMDcxNzAwMDhCNUVGQ0QxRTM4OTc4MzBFQjJFNTZFODNCMDA1OTg4RDIKKzoxMDcxODAwMDQ0NUJFQjI0NTZFODMxMDA1OTg4NDQ1MDU2RTgyOTAwMDYKKzoxMDcxOTAwMDU5ODg0NDUxNTZFODIxMDA1OTg4NDQ1MjU2RTgxOTAwNEMKKzoxMDcxQTAwMDU5ODg0NDUzRUIwMkVCMDBFOTVCRkY1RjVFQzlDMzQ2QkQKKzoxMDcxQjAwMDcxQTY3MTRBNzE3QTcxODQ3MUM4MDQwMDAwNTY4Qjc2ODkKKzoxMDcxQzAwMDA0OEE0NDVBOTg4OTQ2RkU5Q0ZBOEE0NkZFQkFGRTAwMTIKKzoxMDcxRDAwMEVFQkEwMjAwRUNBODAxNzUwNjlERTg1NzlERUJFOUJBRUUKKzoxMDcxRTAwMDAwMDBFQzg4NDZGRDlEOEE0NkZERUIwMDVFQzlDM0M4RTEKKzoxMDcxRjAwMDAyMDAwMDU2OEI3NjA0OEE0NDVBOTg4OTQ2RkU5Q0ZBMEYKKzoxMDcyMDAwMDhBNDZGRUJBRkUwMEVFQkEwMjAwRUMzMkU0MjQwMTlEOEEKKzoxMDcyMTAwMDVFQzlDM0M4MDYwMDAwNTY4Qjc2MDQ4QTQ0NUE5ODg5MTIKKzoxMDcyMjAwMDQ2RkVFODg1QTA4OTQ2RkFFODdGQTAyQjQ2RkEzREI4REQKKzoxMDcyMzAwMDBCNzYwNEIwMDhFQjI0OUNGQThBNDZGRUJBRkUwMEVFRjgKKzoxMDcyNDAwMEJBMDIwMEVDQTgwMTc1MDY5REU4RTg5Q0VCREFCQTAwRUEKKzoxMDcyNTAwMDAwRUM4ODQ2RkQ5RDhBNDZGREVCMDA1RUM5QzM1NThCNTgKKzoxMDcyNjAwMEVDNTY4QjU2MDQ4QTQ2MDZFRTMzRjZFQjAzNTA1ODQ2MkUKKzoxMDcyNzAwMDgzRkUxNDdDRjg1RTVEQzNDODAyMDAwMDU2OEI1NjA0ODIKKzoxMDcyODAwMEVDODg0NkZGMzNGNkVCMDM1MDU4NDY4M0ZFMTQ3Q0Y4MzcKKzoxMDcyOTAwMDhBNDZGRkVCMDA1RUM5QzNDODAyMDAwMDU2NTc4Qjc2RDIKKzoxMDcyQTAwMDA0ODMzRUIwMEIwMDc1MUZCQTg4MDFCMDAwRUVCQTg2QTkKKzoxMDcyQjAwMDAxQjAwMEVFNkEwOTZBMDA2ODMwMDFFODdEMDE4M0M0MEMKKzoxMDcyQzAwMDA2QzcwNkIwMEIwMTAwNkEwOThCQzYwNTgwMDE1MEU4QUQKKzoxMDcyRDAwMERBMDA1OTU5OEJGODhCQzdDMUU4MEMyNTBGMDA4OTQ2OTUKKzoxMDcyRTAwMEZFOEJDN0MxRTgwODI1MEYwMDhCNTZGRTgzRjIwQzNCQ0UKKzoxMDcyRjAwMEMyNzUyMThCQzdDMUU4MDQyNTBGMDA4QjU2RkU4M0YyQUYKKzoxMDczMDAwMDA2M0JDMjc1MEY4QkM3MjUwRjAwOEI1NkZFODNGMjA5MTMKKzoxMDczMTAwMDNCQzI3NDBENkEwNzU2RTgzODAwNTk1OUM3NDZGRTA3NDQKKzoxMDczMjAwMDAwOEE0NkZFMDQ4MEEyMzMwMjhCQzZCQTYyMDBGN0VBRTYKKzoxMDczMzAwMDhBNTZGRThCRDg4ODk3NkMwMDY4MzIwMjhCQzZCQTYyNzgKKzoxMDczNDAwMDAwRjdFQTA1MTQwMDUwRTgwRUZENTk1OUVCMDA1RjVFQTYKKzoxMDczNTAwMEM5QzNDODAyMDAwMDU2OEI3NjA2ODNFNjBGOEJDNkMxRjAKKzoxMDczNjAwMEUwMEM4QkQ2ODNGMjBDQzFFMjA4MEJDMjhCRDY4M0YyMDEKKzoxMDczNzAwMDA2QzFFMjA0MEJDMjhCRDY4M0YyMDkwQkMyODk0NkZFMUEKKzoxMDczODAwMDZBMTk2QTEwOEI0NjA0OTkwNTQwMDE4M0QyMDA1MjUwNTUKKzoxMDczOTAwMEU4NkIwMTgzQzQwNjBCNDZGRTgzQ0EwMDUyNTBFODlBOEMKKzoxMDczQTAwMDAwODNDNDA2RTgyNTAxRUIwMDVFQzlDMzU1OEJFQzU2OEIKKzoxMDczQjAwMDU3MzNGRjZBMDE2ODg2MDFFOEEzRkU1OTU5QjExMDJBQzQKKzoxMDczQzAwMDRFMDZEMzY2MDQzM0Y2RUIyRTgxN0UwNDAwODA3MjA0RjEKKzoxMDczRDAwMEIwMDFFQjAyQjAwMDUwNjg4ODAxRTg4MUZFNTk1OTZBOUIKKzoxMDczRTAwMDAzNjg4NjAxRTg3N0ZFNTk1OTZBMDE2ODg2MDFFODZERUQKKzoxMDczRjAwMEZFNTk1OUQxNjYwNDQ2M0I3NjA2N0NDRDMzRjZFQjI0MjQKKzoxMDc0MDAwMEQxRTc2QTAzNjg4NjAxRTg1NEZFNTk1OTZBMDE2ODg2MjMKKzoxMDc0MTAwMDAxRTg0QUZFNTk1OTY4ODgwMUU4NUNGRTU5OTgyNTAxM0YKKzoxMDc0MjAwMDAwMEJGODQ2ODNGRTEwN0NENzZBMDA2ODg2MDFFODJEQzEKKzoxMDc0MzAwMEZFNTk1OThCQzdFQjAwNUY1RTVEQzM1NThCRUM1NjU3MDkKKzoxMDc0NDAwMDhCN0UwODZBMDE2ODg2MDFFODEzRkU1OTU5QjgyMDAwNEUKKzoxMDc0NTAwMDJCQzc1MEZGNzYwNkZGNzYwNEU4QTIwMDgzQzQwNjg5OTYKKzoxMDc0NjAwMDU2MDY4OTQ2MDQzM0Y2RUI0NzgxN0UwNjAwODA3MjBDOEYKKzoxMDc0NzAwMDc1MDY4MzdFMDQwMDcyMDRCMDAxRUIwMkIwMDA1MDY4MTAKKzoxMDc0ODAwMDg4MDFFOEQ5RkQ1OTU5NkEwMzY4ODYwMUU4Q0ZGRDU5OUEKKzoxMDc0OTAwMDU5NkEwMTY4ODYwMUU4QzVGRDU5NTk2QTAxRkY3NjA2RjcKKzoxMDc0QTAwMEZGNzYwNEU4NTgwMDgzQzQwNjg5NTYwNjg5NDYwNDQ2RDgKKzoxMDc0QjAwMDNCRjc3Q0I1NkEwMDY4ODYwMUU4QTJGRDU5NTk2QTAwNkQKKzoxMDc0QzAwMDY4ODYwMUU4OThGRDU5NTk1RjVFNURDMzU1OEJFQzU2OUYKKzoxMDc0RDAwMDZBMDE2ODg2MDFFODg2RkQ1OTU5MzNGNkVCMDA2ODg4MzEKKzoxMDc0RTAwMDAxRTg5NEZENTlBODAxNzUwODhCQzY0NjNENjQwMDdDRUYKKzoxMDc0RjAwMEVENkEwMDY4ODYwMUU4NjVGRDU5NTk1RTVEQzNDODA0MDAKKzoxMDc1MDAwMDAwMDA4QjQ2MDQ4QjU2MDY4QjRFMDhFMzA2RDFFMEQxNzMKKzoxMDc1MTAwMEQyRTJGQTg5NDZGQzg5NTZGRThCNTZGRThCNDZGQ0VCN0UKKzoxMDc1MjAwMDAwQzlDMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0YKKzoxMDc1MzAwMDUwNzI2NTc2Njk2Rjc1NzMyMDRENjU2RTc1MDA0MjY1OTIKKzoxMDc1NDAwMDY3Njk2RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkQKKzoxMDc1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzoxMDc1NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUIKKzoxMDc1NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIKKzoxMDc1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkIKKzoxMDc1OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzoxMDc1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREIKKzoxMDc1QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0IKKzoxMDc1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkIKKzoxMDc1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzoxMDc1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUIKKzoxMDc1RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEIKKzoxMDc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0EKKzoxMDc2MTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzoxMDc2MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNUEKKzoxMDc2MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEEKKzoxMDc2NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0EKKzoxMDc2NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzoxMDc2NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUEKKzoxMDc2NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEKKzoxMDc2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkEKKzoxMDc2OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzoxMDc2QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREEKKzoxMDc2QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0EKKzoxMDc2QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwNkY3Mjc0MTUKKzoxMDc2RDAwMDIwMzAwMDUwNkY3Mjc0MjAzMTAwNTA2RjcyNzQyMDMyNkQKKzoxMDc2RTAwMDAwNTA2RjcyNzQyMDMzMDA1MDZGNzI3NDIwMzQwMDUwNTkKKzoxMDc2RjAwMDZGNzI3NDIwMzUwMDUwNkY3Mjc0MjAzNjAwNTA2RjcyQjQKKzoxMDc3MDAwMDc0MjAzNzAwNTA2RjcyNzQyMDM4MDA1MDZGNzI3NDIwRUMKKzoxMDc3MTAwMDM5MDA1MDZGNzI3NDIwMzEzMDAwNTA2RjcyNzQyMDMxMTQKKzoxMDc3MjAwMDMxMDA1MDZGNzI3NDIwMzEzMjAwNTA2RjcyNzQyMDMxMEEKKzoxMDc3MzAwMDMzMDA1MDZGNzI3NDIwMzEzNDAwNTA2RjcyNzQyMDMxRjYKKzoxMDc3NDAwMDM1MDA5QzAxQTMwMUFBMDFCMTAxQjgwMUJGMDFDNjAxMjYKKzoxMDc3NTAwMENEMDFENDAxREIwMUUyMDFFQTAxRjIwMUZBMDEwMjAyRUEKKzoxMDc3NjAwMDBBMDIwODAwMDAwNzgxMDAwMzgwODA4MDlGOTE5NTkxQTQKKzoxMDc3NzAwMDlGMDAwMzgxODQ4RTk1ODQ4NDg0ODQwMDAzODI4NDg0QTIKKzoxMDc3ODAwMDg0ODQ5NThFODQwMDA0ODgwMEIyMEJDNjBCREEwQkVFNUQKKzoxMDc3OTAwMDBCMDIwQzE2MEMyQTBDM0UwQzUyMEM3NzBDOUMwQ0JFRTcKKzoxMDc3QTAwMDBDRTAwQzAyMEQwMTgwMjA1NDY1NzM3NDIwNTA2MTczNEQKKzoxMDc3QjAwMDczNjU2NDIwMUYyMDUwNzI2NTczNzMyMDgwMDIwMDAxN0UKKzoxMDc3QzAwMDgwMjA0RDY5NzM3MzY5NkU2NzIwNTI3ODIwNDQ2MTc0MUMKKzoxMDc3RDAwMDYxMUYyMDUwNzI2NTczNzMyMDgwMDIwMDAxODAyMDQyNzcKKzoxMDc3RTAwMDYxNjQyMDUyNzgyMDQ0NjE3NDYxMjAxRjIwNTA3MjY1Q0EKKzoxMDc3RjAwMDczNzMyMDgwMDIwMDAxODAyMDU4NkQ3NDcyMjA0Mjc1REUKKzoxMDc4MDAwMDczNzkxRjIwNTA3MjY1NzM3MzIwODAwMjAwMDE4MDIwRkQKKzoxMDc4MTAwMDZFNkY3NDIwNjM3NTcyNzI2NTZFNzQ2Qzc5MUYyMDIwQjAKKzoxMDc4MjAwMDY5NkQ3MDZDNjU2RDY1NkU3NDY1NjQwMjAwMjQwRDJGNjIKKzoxMDc4MzAwMDBEM0EwRDQ1MEQ1MDBENUIwRDY2MEQ3MTBEN0MwRDg3REMKKzoxMDc4NDAwMDBEOTIwRDlEMERBODBEQjMwREJFMERDOTBENTM4MDJDQ0QKKzoxMDc4NTAwMDMyNTQ0NDIwNTM4NjJDMzM0NDU0NTIyMDUzODIyQzMzQzgKKzoxMDc4NjAwMDUyNTQ1MzIwMUY1MzgxMkMzMjUyNDQyMDUzODUyQzMyQzIKKzoxMDc4NzAwMDQzNDQyMDUzODMyQzMzNDM1NDUzMjA1Mzg0MkMzMzQ0QTgKKzoxMDc4ODAwMDUzNTIyMDUzODcyQzMyNTI0OTI3MDIwMDAxODAyMDIwNzYKKzoxMDc4OTAwMDQ0NDM0NDIwMkQyMDcwNjk2RTIwMzIzMDFGMjc1Mzg1QzkKKzoxMDc4QTAwMDJFMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5NTYKKzoxMDc4QjAwMDhBOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNDQ1MzUyQUEKKzoxMDc4QzAwMDIwMkQyMDcwNjk2RTIwMzEzMTFGMjc1Mzg0MkUzMTgxODUKKzoxMDc4RDAwMDgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEE4QjhDNjUKKzoxMDc4RTAwMDhEOEU4RjI3MDIwMDAxODAyMDIwNDM1NDUzMjAyRDIwQUQKKzoxMDc4RjAwMDcwNjk2RTIwMzQxRjI3NTM4MzJFMzE4MTgyNjM5MDgwRkMKKzoxMDc5MDAwMDgxODI4Mzg0ODU4Njg3ODg4OThBOEI4QzhEOEU4RjI3NTgKKzoxMDc5MTAwMDAyMDAwMTgwMjAyMDUyNDkyMDJEMjA3MDY5NkUyMDMyMDMKKzoxMDc5MjAwMDMyMUYyNzUzODcyRTMxODE4MjYzOTA4MDgxODI4Mzg0MjYKKzoxMDc5MzAwMDg1ODY4Nzg4ODk4QThCOEM4RDhFOEYyNzAyMDAwMTgwQUYKKzoxMDc5NDAwMDIwMjA0NDU0NTIyMDJEMjA3MDY5NkUyMDM2MkYzODFGN0QKKzoxMDc5NTAwMDI3NTM4NjJFMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2M0QKKzoxMDc5NjAwMDg3ODg4OThBOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNEEKKzoxMDc5NzAwMDUyNTQ1MzIwMkQyMDcwNjk2RTIwMzUxRjI3NTM4MjJFQkMKKzoxMDc5ODAwMDMxODE4MjYzOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBMTkKKzoxMDc5OTAwMDhCOEM4RDhFOEYyNzAyMDAwMTgwMjAyMDUyNzg0NDIwMEUKKzoxMDc5QTAwMDJEMjA3MDY5NkUyMDMyMUYyNzUzODEyRTMwNTM0RDgxNTgKKzoxMDc5QjAwMDgyNjM5MDgwODE4MjgzODQ4NTg2ODc4ODg5OEE4QjhDODQKKzoxMDc5QzAwMDhEOEU4RjI3MDIwMDAxODAyMDIwNTQ3ODQ0MjAyRDIwQTYKKzoxMDc5RDAwMDcwNjk2RTIwMzMxRjI3NTM4MDJFMzA1MzREODE4MjYzOTAKKzoxMDc5RTAwMDkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFMUUKKzoxMDc5RjAwMDhGMjcwMjAwMDE4MDIwMjA0NDQzNDQyMDJEMjA3MDY5RkQKKzoxMDdBMDAwMDZFMjAzNTFGMjc1Mzg1MkUzMTgxODI2MzkwODA4MTgyQkQKKzoxMDdBMTAwMDgzODQ4NTg2ODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwNDgKKzoxMDdBMjAwMDAxODAyMDIwNDQ1MzUyMjAyRDIwNzA2OTZFMjAzNTFGODQKKzoxMDdBMzAwMDI3NTM4NDJFMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2NUUKKzoxMDdBNDAwMDg3ODg4OThBOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwNjkKKzoxMDdBNTAwMDQzNTQ1MzIwMkQyMDcwNjk2RTIwMzExRjI3NTM4MzJFRUQKKzoxMDdBNjAwMDMxODE4MjYzOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBMzgKKzoxMDdBNzAwMDhCOEM4RDhFOEYyNzAyMDAwMTgwMjAyMDUyNDkyMDJENzMKKzoxMDdBODAwMDIwMjg2RTJFNjMyRTI5MUYyNzUzODcyRTMxODE4MjYzNzMKKzoxMDdBOTAwMDkwODA4MTgyODM4NDg1ODY4Nzg4ODk4QThCOEM4RDhFNkQKKzoxMDdBQTAwMDhGMjcwMjAwMDE4MDIwMjA0NDU0NTIyMDJEMjA3MDY5MkQKKzoxMDdBQjAwMDZFMjAzMjFGMjc1Mzg2MkUzMTgxODI2MzkwODA4MTgyMEYKKzoxMDdBQzAwMDgzODQ4NTg2ODc4ODg5OEE4QjhDOEQ4RThGMjcwMjAwOTgKKzoxMDdBRDAwMDAxODAyMDIwNTI1NDUzMjAyRDIwNzA2OTZFMjAzNzFGQzIKKzoxMDdBRTAwMDI3NTM4MjJFMzE4MTgyNjM5MDgwODE4MjgzODQ4NTg2QjAKKzoxMDdBRjAwMDg3ODg4OThBOEI4QzhEOEU4RjI3MDIwMDAxODAyMDIwQjkKKzoxMDdCMDAwMDUyNzg0NDIwMkQyMDcwNjk2RTIwMzYxRjI3NTM4MTJFMTUKKzoxMDdCMTAwMDMwNTM0RDgxODI2MzkwODA4MTgyODM4NDg1ODY4Nzg4RkIKKzoxMDdCMjAwMDg5OEE4QjhDOEQ4RThGMjcwMjAwMDE4MDIwMjA1NDc4Q0IKKzoxMDdCMzAwMDQ0MjAyRDIwNzA2OTZFMjAzMzFGMjc1MzgwMkUzMDUzMzAKKzoxMDdCNDAwMDREODE4MjYzOTA4MDgxODI4Mzg0ODU4Njg3ODg4OThBM0IKKzoxMDdCNTAwMDhCOEM4RDhFOEYyNzAyMDAwMTgwMjAyMDQ0NDM0NDIwOEYKKzoxMDdCNjAwMDJEMjA3MDY5NkUyMDM1MUYyMDIwMjAyMDI3NTM4NTJFNjAKKzoxMDdCNzAwMDMxODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwQTEKKzoxMDdCODAwMDAxODAyMDIwNDQ1MzUyMjAyRDIwNzA2OTZFMjAzNTFGMjMKKzoxMDdCOTAwMDIwMjAyMDIwMjc1Mzg0MkUzMTgxODI2Mzg4ODA4MTgyOTcKKzoxMDdCQTAwMDgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDQzNTQ1MzIwNDgKKzoxMDdCQjAwMDJEMjA3MDY5NkUyMDMxMUYyMDIwMjAyMDI3NTM4MzJFMTYKKzoxMDdCQzAwMDMxODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwNTEKKzoxMDdCRDAwMDAxODAyMDIwNTI0OTIwMkQyMDI4NkUyRTYzMkUyOTFGM0YKKzoxMDdCRTAwMDIwMjAyMDIwMjc1Mzg3MkUzMTgxODI2Mzg4ODA4MTgyNDQKKzoxMDdCRjAwMDgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDQ0NTQ1MjIwRjgKKzoxMDdDMDAwMDJEMjA3MDY5NkUyMDMyMUYyMDIwMjAyMDI3NTM4NjJFQzEKKzoxMDdDMTAwMDMxODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwMDAKKzoxMDdDMjAwMDAxODAyMDIwNTI1NDUzMjAyRDIwNzA2OTZFMjAzNzFGNzAKKzoxMDdDMzAwMDIwMjAyMDIwMjc1MzgyMkUzMTgxODI2Mzg4ODA4MTgyRjgKKzoxMDdDNDAwMDgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDUyNzg0NDIwODMKKzoxMDdDNTAwMDJEMjA3MDY5NkUyMDM2MUYyMDIwMjAyMDI3NTM4MTJFNzIKKzoxMDdDNjAwMDMwNTM0RDgxODI2Mzg4ODA4MTgyODM4NDg1ODY4NzI3MTMKKzoxMDdDNzAwMDAyMDAwMTgwMjAyMDU0Nzg0NDIwMkQyMDcwNjk2RTIwNUQKKzoxMDdDODAwMDMzMUYyMDIwMjAyMDI3NTM4MDJFMzA1MzREODE4MjYzQzQKKzoxMDdDOTAwMDg4ODA4MTgyODM4NDg1ODY4NzI3MDIwMDAxODAyMDIwNTYKKzoxMDdDQTAwMDQ0NDM0NDIwMkQyMDcwNjk2RTIwMzIzMDFGMjAyMDIwNTQKKzoxMDdDQjAwMDIwMjc1Mzg1MkUzMTgxODI2Mzg4ODA4MTgyODM4NDg1NDkKKzoxMDdDQzAwMDg2ODcyNzAyMDAwMTgwMjAyMDQ0NTM1MjIwMkQyMDcwRjcKKzoxMDdDRDAwMDY5NkUyMDMxMzExRjIwMjAyMDIwMjc1Mzg0MkUzMTgxQ0UKKzoxMDdDRTAwMDgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDAwMTgwNjEKKzoxMDdDRjAwMDIwMjA0MzU0NTMyMDJEMjA3MDY5NkUyMDM0MUYyMDIwRjMKKzoxMDdEMDAwMDIwMjAyNzUzODMyRTMxODE4MjYzODg4MDgxODI4Mzg0NUYKKzoxMDdEMTAwMDg1ODY4NzI3MDIwMDAxODAyMDIwNTI0OTIwMkQyMDcwNkYKKzoxMDdEMjAwMDY5NkUyMDMyMzIxRjIwMjAyMDIwMjc1Mzg3MkUzMTgxNzgKKzoxMDdEMzAwMDgyNjM4ODgwODE4MjgzODQ4NTg2ODcyNzAyMDAwMTgwMTAKKzoxMDdENDAwMDIwMjA0NDU0NTIyMDJEMjA3MDY5NkUyMDM2MkYzODFGNzkKKzoxMDdENTAwMDIwMjAyMDIwMjc1Mzg2MkUzMTgxODI2Mzg4ODA4MTgyRDMKKzoxMDdENjAwMDgzODQ4NTg2ODcyNzAyMDAwMTgwMjAyMDUyNTQ1MzIwNzcKKzoxMDdENzAwMDJEMjA3MDY5NkUyMDM1MUYyMDIwMjAyMDI3NTM4MjJFNTEKKzoxMDdEODAwMDMxODE4MjYzODg4MDgxODI4Mzg0ODU4Njg3MjcwMjAwOEYKKzoxMDdEOTAwMDAxODAyMDIwNTI3ODQ0MjAyRDIwNzA2OTZFMjAzMjFGRUYKKzoxMDdEQTAwMDIwMjAyMDIwMjc1MzgxMkUzMDUzNEQ4MTgyNjM4ODgwRUMKKzoxMDdEQjAwMDgxODI4Mzg0ODU4Njg3MjcwMjAwMDE4MDIwMjA1NDc4NzEKKzoxMDdEQzAwMDQ0MjAyRDIwNzA2OTZFMjAzMzFGMjAyMDIwMjAyNzUzNEYKKzoxMDdERDAwMDgwMkUzMDUzNEQ4MTgyNjM4ODgwODE4MjgzODQ4NTg2QTIKKzoxMDdERTAwMDg3MjcwMjAwNjgwNDk2MDRCNjAzM0MwNDBFMDQ4OTAzNDYKKzoxMDdERjAwMDVDMDNFMjAzNjAwODhBMDhCRTA3MzgwODBFMDg5NTA3OEUKKzoxMDdFMDAwMDZDMDdFNjA3MUMwNTc0MDVGQTA1QzQwNEYwMDRDQzA1RUMKKzoxMDdFMTAwMEEwMDU0ODA1NzgwNkM4MDY0MjA3MjgwNjUwMDYxODA3MzgKKzoxMDdFMjAwMEYwMDZBMDA2MDAwMEY0MDhGNDA4RDQwRDA0MDkwNDA5QzMKKzoxMDdFMzAwMDA0MDkwNDA5NDIwMDBDMDkxQzA5RTUwRDAyMDAxNDA5OUIKKzoxMDdFNDAwMDA0MDlGNDBENDMwMDFDMDkwQzA5MDUwRTAwMDQwNDA5ODMKKzoxMDdFNTAwMDE0MDkxMjBFMkMwOTJDMDkyQzA5MkMwOTAwMDAzQzA5Q0MKKzoxMDdFNjAwMDZDMDkxRTBFNzQwOTc0MDk3NDA5NzQwOTAwMDE0QzA5MjcKKzoxMDdFNzAwMDJDMDkyRDBFNzQwOTc0MDk3NDA5NzQwOTAwMDI1QzA5MzcKKzoxMDdFODAwMDNDMDkzRDBFNzQwOTc0MDk3NDA5NzQwOTAwMDM2QzA5RjYKKzoxMDdFOTAwMDRDMDk0RDBFNzQwOTc0MDk3NDA5NzQwOUZGMDAyQzA5MEEKKzoxMDdFQTAwMDVDMDkwMDAwMDAwNTg0MDlFQzA5NUUwRUY0MDlGNDA5ODAKKzoxMDdFQjAwMEY0MDlGNDA5MDAwNjk0MDk3NDA5NjgwRUFDMEFBQzBBQzYKKzoxMDdFQzAwMEFDMEFBQzBBMDAwN0E0MDk4NDA5NzIwRUJDMEFCQzBBRjkKKzoxMDdFRDAwMEJDMEFCQzBBMDAwOEI0MDk5NDA5N0MwRUQ0MEFENDBBNkUKKzoxMDdFRTAwMEQ0MEFENDBBMDAwQkM0MDlBNDA5ODMwRUZDMEFGQzBBQjQKKzoxMDdFRjAwMEZDMEFGQzBBMDAwQ0Q0MDlCNDA5OTAwRTE0MEIxNDBCRjQKKzoxMDdGMDAwMDE0MEIxNDBCMDAwMkU0MDlDNDA5QTAwRTJDMEIyQzBCNUIKKzoxMDdGMTAwMDJDMEIyQzBCMDQwMEVDMDlENDA5MEUwMEZGMDA3NDA5OTMKKzoxMDdGMjAwMEU0MDkwMDAwODIwMUZDMDlBNDBBQUMwRTgyMDIwNDBBRTIKKzoxMDdGMzAwMEY0MDlBRjBFODIwMzBDMEFGQzA5QjIwRTgyMDQxNDBBODMKKzoxMDdGNDAwMDA0MEFCNjBFODIwNTFDMEEwQzBBQkMwRTgyMDYyNDBBMUMKKzoxMDdGNTAwMDE0MEFDMDBFODIwNzJDMEExQzBBQzQwRTgyMDgzNDBBQjYKKzoxMDdGNjAwMDI0MEFDODBFODIwOTNDMEEyQzBBQ0MwRTgyMEE0NDBBNTIKKzoxMDdGNzAwMDM0MEFEMTBFODIxMDRDMEEzQzBBRDYwRTgyMEI1NDBBRTcKKzoxMDdGODAwMDQ0MEFEQjBFODIxMTVDMEE0QzBBRTAwRTgyMEM2NDBBODEKKzoxMDdGOTAwMDU0MEFFNTBFODIxMjZDMEE1QzBBRUEwRTgyMEQ3NDBBMUIKKzoxMDdGQTAwMDY0MEFFRjBFODIwRTdDMEE2QzBBRjQwRTgyMEY4NDBBQjkKKzoxMDdGQjAwMDc0MEFGQjBFODIxMzhDMEE3QzBBMDIwRjgyMTQ5NDBBNDQKKzoxMDdGQzAwMDg0MEEwOTBGODIxNTlDMEE4QzBBMTAwRjgyMTZBNDBBRDMKKzoxMDdGRDAwMDk0MEExNzBGODIxN0Y0MDk5QzBBMUUwRjgyMDJCNDBBMzIKKzoxMDdGRTAwMEI0MEEyNjBGODIwM0FDMEFBQzBBMkQwRjgyMDBDNDBBMjEKKzoxMDdGRjAwMENDMEEzNDBGODIwMUNDMEFCQzBBM0YwRjgyMDJCQzBBQjEKKzoxMDgwMDAwMEM0MEE0RDBGODIwMERDMEFGNDBBNTkwRjgyMDFFNDBBMDcKKzoxMDgwMTAwMEQ0MEE2MzBGODIwMkVDMEFEQzBBNkUwRjgyMDNGNDBBQjAKKzoxMDgwMjAwMEU0MEE3QTBGODIwNEQ0MEFFQzBBODcwRjgyMDAwNDBCNTgKKzoxMDgwMzAwMDBDMEI5MzBGODIwMTBDMEJGQzBBOUIwRjgyMDJGQzBBQjMKKzoxMDgwNDAwMDA0MEJBNzBGODIwMDFDMEIyNDBCQjAwRjgyMDEyNDBCMjIKKzoxMDgwNTAwMDE0MEJCNTBGODIwMjE0MEIxQzBCQkUwRjQ0MDAzNDBCMjMKKzoxMDgwNjAwMEE0MEI5QzAxNDQwMTNDMEIyQzBCQTMwMTQ0MDI0NDBCQzgKKzoxMDgwNzAwMDM0MEJBQTAxNDQwMzRDMEIzQzBCQjEwMTQ0MDQ1NDBCRDgKKzoxMDgwODAwMDQ0MEJCODAxNDQwNTVDMEI0QzBCQkYwMTQ0MDY2NDBCNjgKKzoxMDgwOTAwMDU0MEJDNjAxNDQwNzZDMEI1QzBCQ0QwMTQ0MDg3NDBCRjgKKzoxMDgwQTAwMDY0MEJENDAxNDQwOTdDMEI2QzBCREIwMTQ0MEE4NDBCODgKKzoxMDgwQjAwMDc0MEJFMjAxNDQwQjhDMEI3QzBCRUEwMTQ0MEM5NDBCMTcKKzoxMDgwQzAwMDg0MEJGMjAxNDQwRDlDMEI4QzBCRkEwMTQ0MEVBNDBCQTMKKzoxMDgwRDAwMDk0MEIwMjAyNDQwRjJDMEI5QzBCMEEwMjE3MUYwRjJGNEMKKzoxMDgwRTAwMDAwMDAwMTgwNzg3ODNBMjA3NDc4MjA2MzcwNzMyMDJBMjkKKzoxMDgwRjAwMDJBMkEyQTJBMDIwMDAxODA3ODc4M0EyMDc0NzgyMDYzOUMKKzoxMDgxMDAwMDcwNzMyMDJBMkEyQTJBMkEwMjAwMDE4MDc4NzgzQTIwQ0QKKzoxMDgxMTAwMDc0NzgyMDYzNzA3MzIwMkEyQTJBMkEyQTAyMDAwMTgwOTgKKzoxMDgxMjAwMDc4NzgzQTIwNzQ3ODIwNjM3MDczMjAyQTJBMkEyQTJBQzEKKzoxMDgxMzAwMDAyMDAwMUMwNzg3ODNBMjA3MjYzMjA2MzcwNzMyMDJBQUQKKzoxMDgxNDAwMDJBMkEyQTJBMDIwMDAxQzA3ODc4M0EyMDcyNjMyMDYzMjIKKzoxMDgxNTAwMDcwNzMyMDJBMkEyQTJBMkEwMjAwMDFDMDc4NzgzQTIwM0QKKzoxMDgxNjAwMDcyNjMyMDYzNzA3MzIwMkEyQTJBMkEyQTAyMDAwMUMwMUYKKzoxMDgxNzAwMDc4NzgzQTIwNzI2MzIwNjM3MDczMjAyQTJBMkEyQTJBODgKKzoxMDgxODAwMDAyMDAwMTgwNDk2RTczNzQ2MTZDNkMyMDRDNkY2RjcwREIKKzoxMDgxOTAwMDYyNjE2MzZCMUY1MDcyNjU3MzczMjA4MDIwNzQ2RjIwNUYKKzoxMDgxQTAwMDczNzQ2MTcyNzQwMjAwMDE4MDIwNDM2MTYyNkM2NTIwMDcKKzoxMDgxQjAwMDc0NkYyMDUyNjU2RDZGNzQ2NTFGNTA3MjY1NzM3MzIwMDQKKzoxMDgxQzAwMDgwMjA3NDZGMjA3Mzc0NjE3Mjc0MDIwMDAxODAyMDRDRUYKKzoxMDgxRDAwMDZGNjM2MTZDMjA0QzZGNkY3MDYyNjE2MzZCMjAxRjIwNTYKKzoxMDgxRTAwMDIwNTI3NTZFNkU2OTZFNjcyMDJFMkUyRTAyMDAwMTgwNjEKKzoxMDgxRjAwMDUyNjU2RDZGNzQ2NTIwNEM2RjZGNzA2MjYxNjM2QjIwQTgKKzoxMDgyMDAwMDFGMjAyMDUyNzU2RTZFNjk2RTY3MjAyRTJFMkUwMjAwODIKKzoxMDgyMTAwMDAxODAyMDQ5NkU3NDcyNkU2QzIwNEM2RjZGNzA2MjYxQzkKKzoxMDgyMjAwMDYzNkIxRjIwMjA1Mjc1NkU2RTY5NkU2NzIwMkUyRTJFOTYKKzoxMDgyMzAwMDAyMDAwMTgwNTQ3MjYxNkU3MzZENjk3NDIwNTA2MTc0MjQKKzoxMDgyNDAwMDc0NjU3MjZFMUYyMDIwNTI3NTZFNkU2OTZFNjcyMDJFRTcKKzoxMDgyNTAwMDJFMkUwMjAwMDE4MDIwMjAzMDNBMjAyNzQzODAwMDAxOEEKKzoxMDgyNjAwMDgwMjAyMDMxM0EyMDI3NDM4MTAwMDE4MDIwMjAzMjNBQUIKKzoxMDgyNzAwMDIwMjc0MzgyMDAwMTgwMjAyMDMzM0EyMDI3NDM4MzAwQjcKKzoxMDgyODAwMDAxODAyMDIwMzQzQTIwMjc0Mzg0MDAwMTgwMjAyMDM1QkIKKzoxMDgyOTAwMDNBMjAyNzQzODUwMDAxODAyMDIwMzYzQTIwMjc0Mzg2NTQKKzoxMDgyQTAwMDAwMDE4MDIwMjAzNzNBMjAyNzQzODcwMDAxODAyMDIwQ0EKKzoxMDgyQjAwMDM4M0EyMDI3NDM4ODAwMDE4MDIwMjAzOTNBMjAyNzQzN0MKKzoxMDgyQzAwMDg5MDAwMTgwMjAzMTMwM0EyMDI3NDM4QTAwMDE4MDIwMzQKKzoxMDgyRDAwMDMxMzEzQTIwMjc0MzhCMDAwMTgwMjAzMTMyM0EyMDI3NjgKKzoxMDgyRTAwMDQzOEMwMDAxODAyMDMxMzMzQTIwMjc0MzhEMDAwMTgwRTgKKzoxMDgyRjAwMDIwMzEzNDNBMjAyNzQzOEUwMDAxODAyMDMxMzUzQTIwNDYKKzoxMDgzMDAwMDI3NDM4RjAwMkEyQTIwNEQ2MTY5NkUyMDIwNEQ2NTZFMUIKKzoxMDgzMTAwMDc1MjAyQTJBMDA0RDZGNkU2OTc0NkY3MjIwNjEyMDUwOUIKKzoxMDgzMjAwMDZGNzI3NDAwNEQ2RjZFNjk3NDZGNzIyMDYxMjA1MzY5QjMKKzoxMDgzMzAwMDY3NkU2MTZDMDA0NTczNzQ2OTZENjE3NDY1MjA0MzUwQUMKKzoxMDgzNDAwMDUzMDA0NDY5NjE2NzZFNkY3Mzc0Njk2MzczMDA0QzZGQTcKKzoxMDgzNTAwMDYzNjE2QzIwNEM2RjZGNzA2MjYxNjM2QjAwNTI2NTZEN0UKKzoxMDgzNjAwMDZGNzQ2NTIwNEM2RjZGNzA2MjYxNjM2QjAwNDk2RTc0NEYKKzoxMDgzNzAwMDcyNkU2QzIwNEM2RjZGNzA2MjYxNjM2QjAwNTQ3MjYxM0YKKzoxMDgzODAwMDZFNzM2RDY5NzQyMDUwNjE3NDc0NjU3MjZFMDA0MjYxMjEKKzoxMDgzOTAwMDc1NjQyMDUyNjE3NDY1MDA0NDYxNzQ2MTIwNDI2OTc0OUYKKzoxMDgzQTAwMDczMDA1Mzc0NkY3MDIwNDI2OTc0NzMwMDUwNjE3MjY5NzYKKzoxMDgzQjAwMDc0NzkwMDQ0NjE3NDYxMjA1MDYxNzQ3NDY1NzI2RTAwNTgKKzoxMDgzQzAwMDU0NzgyMDQ2NkM2Rjc3MjA0MzZGNkU3NDcyNkY2QzAwMjgKKzoxMDgzRDAwMDUwNkY3Mjc0MjA0RTc1NkQ2MjY1NzIwMDM1MzAwMDM3RDMKKzoxMDgzRTAwMDM1MDAzMTMxMzAwMDMxMzMzNDJFMzUwMDMxMzUzMDAwMzUKKzoxMDgzRjAwMDMyMzAzMDAwMzMzMDMwMDAzNjMwMzAwMDMxMzIzMDMwRkYKKzoxMDg0MDAwMDAwMzEzODMwMzAwMDMyMzAzMDMwMDAzMjM0MzAzMDAwMUIKKzoxMDg0MTAwMDMzMzYzMDMwMDAzNDM4MzAzMDAwMzczMjMwMzAwMDM5QzUKKzoxMDg0MjAwMDM2MzAzMDAwMzEzOTJDMzIzMDMwMDAzMzM4MkMzNDMwOTMKKzoxMDg0MzAwMDMwMDAzNTM2MkMzMDMwMzAwMDM1MzcyQzM2MzAzMDAwQjcKKzoxMDg0NDAwMDM2MzQyQzMwMzAzMDAwMzczNjJDMzgzMDMwMDAzMTMxNzMKKzoxMDg0NTAwMDM1MkMzMjMwMzAwMDM3MjA2MjY5NzQ3MzAwMzgyMDYyNjYKKzoxMDg0NjAwMDY5NzQ3MzAwMzEyMDczNzQ2RjcwMjA2MjY5NzQwMDMxMTUKKzoxMDg0NzAwMDJFMzUyMDczNzQ2RjcwMjA2MjY5NzQ3MzAwMzIyMDczMUMKKzoxMDg0ODAwMDc0NkY3MDIwNjI2OTc0NzMwMDZFNkYyMDcwNjE3MjY5MUUKKzoxMDg0OTAwMDc0NzkwMDZGNjQ2NDIwNzA2MTcyNjk3NDc5MDA2NTc2MjQKKzoxMDg0QTAwMDY1NkUyMDcwNjE3MjY5NzQ3OTAwNzM3MDYxNjM2NTIwMTQKKzoxMDg0QjAwMDcwNjE3MjY5NzQ3OTAwNkQ2MTcyNkIyMDcwNjE3MjY5QUMKKzoxMDg0QzAwMDc0NzkwMDQzNkY2Qzc1NkQ2RTczMDA0MjYxNzI2MjY1MDIKKzoxMDg0RDAwMDcyMjA1MDZGNkM2NTAwNTU1NTU1NTU1NTJFMkUyRTAwNDcKKzoxMDg0RTAwMDRFNkY2RTY1MDA1ODZGNkUyRjU4NkY2NjY2MDA0MzU0NkUKKzoxMDg0RjAwMDUzMDA1MDcyNjU3MzczMjA4MDIwNjY2RjcyMjA2RDY1MjMKKzoxMDg1MDAwMDZFNzUwMDI4NjM2Rjc1NkU3NDY5NkU2NzJFMkUyRTI5NDYKKzoxMDg1MTAwMDAwMDA2NTRFNjQyMDRGNjYyMDQzNkY0NDY1MDAwMDAwRjQKKzoxMDg1MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEIKKzoxMDg1MzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM0IKKzoxMDg1NDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzoxMDg1NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMUIKKzoxMDg1NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIKKzoxMDg1NzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRkIKKzoxMDg1ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzoxMDg1OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwREIKKzoxMDg1QTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQ0IKKzoxMDg1QjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQkIKKzoxMDg1QzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzoxMDg1RDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOUIKKzoxMDg1RTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOEIKKzoxMDg1RjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN0IKKzowMDAwMDAwMUZGCisvKiAgSW50ZWxsaXBvcnQgSUkgbG9hZHdhcmUgKi8KKy8qIC0zMTIzMiBieXRlcyByZWFkIGZyb20gZmYubG9kICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGUuYmluLmloZXggYi9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGUuYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjkyZDQwZgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2thd2V0aC9uZXdfY29kZS5iaW4uaWhleApAQCAtMCwwICsxLDIwNiBAQAorOjEwMDAwMDAwQjZDM0FBQkJDQ0REOUZDRkRFMDZFNzU3MDAwMEM0MDYwRgorOjEwMDAxMDAwOTdDMUU3NjdGRjFGMjhDMEU3ODcwMDA0MjRDMEU3Njc5MAorOjEwMDAyMDAwRkZGOTIyQzA5N0NGRDcwOTAwQzBFNzA5QTJDMEJFMDZEQQorOjEwMDAzMDAwOUZBRjM2MDBFNzA1MDBDMEE3Q0ZCQzA2OTdDRkU3NTdCNAorOjEwMDA0MDAwMDAwMEI4MDZBN0ExQjgwNjk3Q0ZFNzU3MDAwMDE0MDgyQworOjEwMDA1MDAwMEFDMEU3NTcwMDAwQTRDMEE3QzA3QTA2OUZBRjkyMDc2NgorOjEwMDA2MDAwRTcwNzAwMDAxNDA4RTc1N0ZGRkZCQTA2OUZBMDM4MDAxMworOjEwMDA3MDAwRTc1OUJBMDZCRTA2OUZBMDM4MDBDODA5Q0EwNjA4NjIzQQorOjEwMDA4MDAwOUZBMTM2MDhDMDA5NzYwNjAwNjBBN0MwN0EwNjlGQUYxOAorOjEwMDA5MDAwQ0MwMkU3NTcwMDAwQjgwNkE3QzE3QTA2OUZBRjA0MDA1QworOjEwMDBBMDAwRTc1NzAwMDA4RTA2MEFDMUU3MDkyMEMwMTAwOEU3RDAxNAorOjEwMDBCMDAwMTAwOEU3Njc0MDAwMTAwODlGQUY5MjBDQzAwOUQwMDZGNworOjEwMDBDMDAwMDA2MDA1QzRDMDU5QkUwNjAyQzA5RkFGRUMwMDlGQUZFMAorOjEwMDBEMDAwMzQwMkU3NTcwMDAwQTYwNjlGQTA3QTAyQTdDRjdBMDY0RgorOjEwMDBFMDAwNDgwMkU3MDlCRTA2RDAwNkM4MzcwNDAwOUZBRjA4MDNFMAorOjEwMDBGMDAwOTdDRkU3NTcwMDAwQ0UwNjk3QzBENzA5MDBDMEMxREZGMQorOjEwMDEwMDAwQzgwOUM2MDYwODYyMTRDMDI3MDRDNjA2MTA5NEYwMDc4MgorOjEwMDExMDAwMTAwODAyMDBDMTA3MDEwMDcwMDAwNDAwRjAwNzMwMDE2MAorOjEwMDEyMDAwMDYwMDUwQUZFNzA3RkZGRkQwMDZFNzA3MDAwMENFMDY0NgorOjEwMDEzMDAwRTcwNTAwQzA5N0NGRDcwOTAwQzBDMURGNDgwMkQwMDk0QQorOjEwMDE0MDAwQzYwNjI3MDJDNjA2RTcwNTAwQzA5N0NGNDgwMkM4Mzc5MworOjEwMDE1MDAwMDQwMDAwMEMwQzAwMDA2MDIxQzBDMDM3M0UwMDIzQzkyMQorOjEwMDE2MDAwQzA1N0I0MDUxQkM4QzAxNzNGMDBDMDY3QzBGRjMwMDBCMAorOjEwMDE3MDAwMDgwMEYwMDcwMDAwMDQwMDAwMDJDMDE3NEMwMDMwMDAyNworOjEwMDE4MDAwMDYwMEYwMDdBMDAxMEEwMDQ4MDJDMTA3MDIwMEQ3MDlEMworOjEwMDE5MDAwMDBDMEMxREY1MUFGRTcwNTAwQzA5N0NGOUZBRjA4MDM5NAorOjEwMDFBMDAwOUZBRjdBMDI5N0NGOUZBRjdBMDJDOTM3MDQwMEMxREZCMQorOjEwMDFCMDAwQzgwOUEyMDY1MDAyNjcwMkEyMDZEMTA3MDAwMDI3RDg4QworOjEwMDFDMDAwQUEwNkMwREY5RkFGQzQwMTk3Q0ZFNzU3MDAwMEQyMDY1MQorOjEwMDFEMDAwOTdDMUU3NTcwMTAwQTgwNjk3QzBDODA5QTAwNjA4NjJBMgorOjEwMDFFMDAwOTdDMDAwMDJDMDE3MEUwMDI3MDAzNDAxMjcwQzBDMDAzNgorOjEwMDFGMDAwMzYwMUU3MDc1MEMzMTJDMEU3MDdDQzBCMDIwMEU3MDc0MAorOjEwMDIwMDAwMDEwMEE4MDZFNzA3MDUwMDkwQzA5N0NGQzgwOUE0MDYxQgorOjEwMDIxMDAwMDg2MjAyQzAxMDY0MDdDMUU3MDcwMDAwOUUwNkU3MDdGNgorOjEwMDIyMDAwNzIwNDI0MDA5N0NGMjcwNEE0MDZDODE3MEUwMDI3MDJFMworOjEwMDIzMDAwOUUwNkU3MDc4MDA0MjQwMDk3Q0ZENzA5MDBDMEMxREZERQorOjEwMDI0MDAwRTc1NzAwMDA5MDA2MTNDMTlGQUYwNjAyRTc1NzAwMDA3MgorOjEwMDI1MDAwOUUwNjEzQzBFNzA5OUUwNjMwMDFFNzA3RjIwNTMyMDE0QQorOjEwMDI2MDAwRTcwNzEwMDA5NkMwRTcwOTlFMDY5MDA2MDRDRkU3NTdGRgorOjEwMDI3MDAwMDAwMDlFMDYwMkMxOUZBRjA2MDJFNzA1MDBDMDk3Q0ZBRgorOjEwMDI4MDAwRDcwOTAwQzBDMURGMDg5MkU3NTcwMjAwQUEwNjAyQzNERgorOjEwMDI5MDAwQzgwOUE0MDYyNzAyQTYwNjA4NjIwM0MxRTcwNTAwQzAzNAorOjEwMDJBMDAwOTdDRjI3MDRBNDA2RTcwNTAwQzBGMDA3NDAwMDA4MDAyOAorOjEwMDJCMDAwRjAwNzAwMDAwNDAwMDAwMkMwMTcwQzAwMzAwMDA2MDAyOAorOjEwMDJDMDAwRjAwNzQ2MDEwQTAwQzgxNzA0MDBDMTA3MDIwMDUxQUYzOQorOjEwMDJEMDAwOTdDRkU3NTcwMDAwOTYwNjk3QzBDMURGQzgwOTk2MDY3QQorOjEwMDJFMDAwMjcwNDk2MDYyNzUyOTgwNjAzQzFFNzA3OTYwNjk4MDY0NAorOjEwMDJGMDAwQzBERjE3MDJDODE3MEUwMDlGQUZCQTAzQzgwNTAwNjAyMQorOjEwMDMwMDAwMDNDMDlGQUYyNDAzOTdDRjlGQUYwODAzOTdDRjU3MDIzNworOjEwMDMxMDAwQzkwN0E0MDZENzA5MDBDMEMxREYwODYyMUJDMDUwMDQ4QQorOjEwMDMyMDAwMTEwMkU3MDUwMEMwQzkwNTk3Q0Y5NzAyQ0EwOUQ2MDY5MgorOjEwMDMzMDAwRjIxNzAxMDAwNDAwRjIyNzAwMDAwNjAwQ0ExNzJDMDA4MworOjEwMDM0MDAwRjg3NzAxMDAwRTAwMDZDMENBRDlGODU3RkYwMDBFMDA2QQorOjEwMDM1MDAwMDFDMUNBRDkyMjFDMEMwMEUyMjcwMDAwRTIxNzAxMDBFQgorOjEwMDM2MDAwRTIyNzAwMDBDQTA1MDAwQzBDMDBDMDE3NDEwMEMwNjc1RQorOjEwMDM3MDAwQzBGRjMwMDAwODAwMDAwMkMwMTcwQzAwMzAwMDA2MDA2QgorOjEwMDM4MDAwRjAwN0RBMDAwQTAwRjAwNzAwMDAwNDAwMDAwQzA4MDA4MworOjEwMDM5MDAwNDBEMTAxMDBDMDE5Q0UwNkMwNTlDMjA2MDRDOTQ5QUZGOAorOjEwMDNBMDAwOUZBRkVDMDA0QUFGNjcxMENFMDZDODE3MDQwMEMxMDcyNAorOjEwMDNCMDAwMDEwMEQ3MDkwMEMwQzFERjUwQUZFNzA1MDBDMDk3Q0ZFQgorOjEwMDNDMDAwQzAwNzAxMDBDMTA5QUMwNkMxNzcwMTAwOTdDMUQ4NzcwOQorOjEwMDNEMDAwMDEwMDEyQzBDOTA3NkEwNjlGQUYwODA0MDRDMUMxNzdCMworOjEwMDNFMDAwMDgwMDEzQzA5N0NGQzE3NzAyMDA5N0MxQzE3NzEwMDBGMgorOjEwMDNGMDAwMENDMDlGQUYyQzA0OTdDRkMxNzcwNDAwMDZDMEM5MDc3QgorOjEwMDQwMDAwNzAwNjlGQUYwODA0OTdDMDAwQ0YwMDkwOTdDRjUwNTQ1QworOjEwMDQxMDAwOTdDMTcwNUMwMjAwMDIwMDk3QzE3MDVDMDQwMDA0MDA4OAorOjEwMDQyMDAwOTdDRjgwMDFDMDAwNjAwMDMwMDAxODAwMEMwMDA2MDA2QgorOjEwMDQzMDAwMDAwMENCMDlCMjA2Q0MwOUI0MDYwQjUzMTFDMEM5MDJBNworOjEwMDQ0MDAwQ0EwNzFDMDQ5RkFGMDgwNDk3QzAwQUM4ODIwODBBQ0ZENQorOjEwMDQ1MDAwODIwODlGQUYwODA0OTdDMDA1QzI4OTMwODI2MDc4QzFDNgorOjEwMDQ2MDAwMDA5MDk3Q0Y4OTEwMDk1Mzc5QzI4OTMwODIwODdBQ0ZEQQorOjEwMDQ3MDAwQzBERjk3Q0ZDMERGOTdDRkU3MDk5NkMwOTIwNkU3MDlBNAorOjEwMDQ4MDAwOThDMDk0MDYwRkNGRTcwOTk2QzA5MjA2RTcwOTk4QzA3NgorOjEwMDQ5MDAwOTQwNkU3MDk5RTA2MzAwMUU3MDdGMjA1MzIwMUU3MDdGNworOjEwMDRBMDAwMTAwMDk2QzBENzA5MDBDMDE3MDJDODA5OTAwNkM4MzdDNworOjEwMDRCMDAwMEUwMEU3NzcyQTAwOTIwNjMwQzA5NzAyQ0EwOUQ2MDZENgorOjEwMDRDMDAwRTc3NzIwMDA5MjA2MEVDMEYyMTcwMTAwMTAwMEYyMjcxNQorOjEwMDREMDAwMDAwMDEyMDBFNzc3MEEwMDkyMDZDQTA1MUVDMDk3MDJDNAorOjEwMDRFMDAwQ0EwOUQ2MDZGMjE3MDEwMDBDMDBGMjI3MDAwMDBFMDAyMAorOjEwMDRGMDAwRTc3NzAyMDA5MjA2MDdDMEYyMTcwMTAwNDQwMEYyMjdENgorOjEwMDUwMDAwMDAwMDQ2MDAwNkNGRjIxNzAxMDA2MDAwRjIyNzAwMDA0RAorOjEwMDUxMDAwNjIwMENBMDU5RkFGMDgwMzBGQ0Y1NzAyMDkwMkYxMDkxNQorOjEwMDUyMDAwOTQwNjBDMDBGMURBMEMwMEM4MDk5ODA2NTAwMjY3MDIyNAorOjEwMDUzMDAwOTgwNkQxMDcwMDAwQzkwNUU3MDk5RTA2OTAwNkU3NTcwRgorOjEwMDU0MDAwMDAwMDkwMDYwMkMwOUZBRjA2MDJDODA1RTcwNTAwQzA4NAorOjEwMDU1MDAwQzBERjk3Q0ZENzA5MDBDMDE3MDAxNzAyOTcwMkMwMDk2NAorOjEwMDU2MDAwOTJDMEU3MDcwNDAwOTBDMENBMDlENjA2RTcwNzAwMDA1QQorOjEwMDU3MDAwQTgwNkU3MDc2QTA0MDIwMEMwNzcwMjAwMDhDMEYyMTc2NQorOjEwMDU4MDAwMDEwMDUwMDBGMjI3MDAwMDUyMDA5RkNGMjQwNkMwNzdFMAorOjEwMDU5MDAwMTAwMDA2QzBGMjE3MDEwMDU4MDBGMjI3MDAwMDVBMDBCMAorOjEwMDVBMDAwQzA3NzgwMDAwNkMwRjIxNzAxMDA3MDAwRjIyNzAwMDAzQgorOjEwMDVCMDAwNzIwMEMwNzcwODAwMURDMUYyMTcwMTAwMDgwMEYyMjc4MQorOjEwMDVDMDAwMDAwMDBBMDBDMDc3MDAwMjA2QzBGMjE3MDEwMDY0MDBCNAorOjEwMDVEMDAwRjIyNzAwMDA2NjAwQzA3NzQwMDAwNkMwRjIxNzAxMDA1NQorOjEwMDVFMDAwNUMwMEYyMjcwMDAwNUUwMEMwNzcwMTAwMDFDMDFCQ0Y1NQorOjEwMDVGMDAwMUFDRkYyMTcwMTAwMDAwMEYyMjcwMDAwMDIwMEM4MDkxQworOjEwMDYwMDAwMzQwMUNBMTcxNDAwRDg3NzAxMDAwNUMwQ0FEOUQ4NTdEOQorOjEwMDYxMDAwRkYwMDAxQzBDQUQ5RTIxOTk0QzBFMjI3MDAwMEUyMTcyNgorOjEwMDYyMDAwMDEwMEUyMjcwMDAwOUZBRjQwMDY5RkFGQzQwMUU3NTdEQgorOjEwMDYzMDAwMDAwMEQyMDY5RkExMEUwQUNBMDVDODA1QzAwNUU3MDUzRAorOjEwMDY0MDAwMDBDMEMwREY5N0NGQzgwOUEwMDYwODYyOTdDMDI3MDQ4MgorOjEwMDY1MDAwQTAwNjI3NTJBMjA2MDNDMUU3MDdBMDA2QTIwNjlGQUY4NQorOjEwMDY2MDAwMDgwM0U3NTcwMDAwQUEwNjAyQzAyN0RBQUEwNjk3Q0ZCOAorOjEwMDY3MDAwRkZGRkZGRkZGRkZGMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMDY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwMDY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwMDZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwMDZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwMDZDMDAwMDAwMDAwMDAwMDAwMDAwMDNGMDAwMDAwMDAwMDAwMDBFQgorOjEwMDZEMDAwMDAwMDAwMDAwMDAwRkZGRjAxMDAwMDAwMDAwMDAwMDAxQgorOjEwMDZFMDAwRkZGRkZCMTNFNzU3MDA4MEIyMDAwNkMyRTcwN0VFMEJERgorOjEwMDZGMDAwMTIwMEU3MDczNDBDQjIwMEU3MDdDNjA3RjIwMkM4MDk4OAorOjEwMDcwMDAwQjQwMEY4MDcwMjAwMEQwMEQ3MDkwRUMwRTcwNzAwMDA4QgorOjEwMDcxMDAwMEVDMEM4MDlERTAwQzgxNzA5MDBDOTA3REEwNkMwMDdGRAorOjEwMDcyMDAwMDQwMDY4MEEwMERBN0RDMUU3MDlDMDAwN0MwNkU3MDkxOQorOjEwMDczMDAwQkUwMDc4MDZFNzA5MTAwMEJDMDZDODA3RDYwNzlGQUZDMQorOjEwMDc0MDAwQUUwNzlGQUYwMDBBQzgwOURFMDAwMDBFMEYwMDQxOTBGRgorOjEwMDc1MDAwOUZERTA2MDA0NEFGMjcwMEIyMDYyNzAwQjQwNjI3MDAzQworOjEwMDc2MDAwQjYwNkMwMDc3NDAwNDRBRjI3MDBENjA2MDgwMDAwOTAwNAorOjEwMDc3MDAwQzEwNzNBMDAyMDAwMDFEQTdEQzE5RkFGQkEwOUMwMDc2NgorOjEwMDc4MDAwNDQwMDQ4QUYyNzAwN0EwNjlGQUY5NjBBRTcwNzAxMDBBQQorOjEwMDc5MDAwQzAwNkU3MDUwRUMwOTdDRjQ5QUZFNzg3NDMwMDBFQzBGQworOjEwMDdBMDAwRTcwN0ZGRkZCRTA2OUZBRkFFMEFDMDA3MDEwMDYwQUZCQworOjEwMDdCMDAwNEFBRjk3Q0YwMDA4MDkwODExMDgwMERBN0NDMTk3Q0YyQgorOjEwMDdDMDAwNjcwNENDMDJDMERGNTE5NEIxQUYwNjAwQzFERkM5MDk5NAorOjEwMDdEMDAwQ0MwMjQ5NjI3NUMxQzBERkE3Q0ZENjAyMEUwMDI0MDA0QgorOjEwMDdFMDAwODAwNDIyMDA0RTA1RDAwMDBFMEFBQTAwMzAwOEJFMDA4OAorOjEwMDdGMDAwNEEwQTEwMDAyMDAwMDQwMDZFMDQwMjAwNkEwNDA2MDA4OQorOjEwMDgwMDAwMDAwMDI0QzAwNDA0MjhDMEZFRkIxRUMwMDAwNDIyQzA1NworOjEwMDgxMDAwRkZGNEMwMDA5MDA5MDAwMDAwMDBGRkZGNTYwODYwMDhDOAorOjEwMDgyMDAwRDAwOERBMDgwMDA5MDQwOTA4MDkzMjA5NDIwOTUwMDkwOAorOjEwMDgzMDAwNTIwOTVBMDk1QTA5MjcwMkNBMDY5N0NGRTcwNzAwMDA0QQorOjEwMDg0MDAwQ0EwNjBBMEUwMTAwQ0E1NzBFMDA5RkMzNUEwOUNBMzdDQQorOjEwMDg1MDAwMDAwMDlGQzI1QTA5MEFEMkIyQ0YxNjA4QzgwOURFMDBBQQorOjEwMDg2MDAwMDcwNjlGQ0Y2QzA5MTcwMkM4MDlERTAwMDAwRTBGMDBCMworOjEwMDg3MDAwNDE5MDlGREUwNjAwQzgwNTMwNTAwNjAwOUZDODVBMDkwNworOjEwMDg4MDAwMjcwQzAyMDBCMDA2QzAwOUIyMDYyNzAwQjQwNkU3MDcyRAorOjEwMDg5MDAwMDAwMEFFMDYyNzAwODAwNjAwMUMwNjAwMjcwMEI2MDZGMgorOjEwMDhBMDAwNDE5MDY3NTBCMDA2MERDMDY3MDA3RTA2MjcwQzA2MDAxOQorOjEwMDhCMDAwODIwNkU3MDdCQzA4ODQwNkM4MDc3RTA2NDE5MDUxQUY1MAorOjEwMDhDMDAwOTdDRjlGQUY0ODBDRTcwOUI2MDZCNDA2RTcwOUIwMDYxNAorOjEwMDhEMDAwQUUwNjU5QUY5N0NGMjcwQzAyMDBBQzA2NTlBRjk3Q0ZBMQorOjEwMDhFMDAwMDkwQzAyMDAwOURBNDlEMkM5MTlENjA2QzgwNzdFMDZFMgorOjEwMDhGMDAwRTAwNzAwMDA2MDAyRTAwNzA0MDBEMDA3Q0MwODQ4REJGNgorOjEwMDkwMDAwNDE5MDUwQUY5N0NGNTlBRjk3Q0Y1OUFGOTdDRkYwNTc4RQorOjEwMDkxMDAwMDYwMDA2MDAyNUMxRTcwNzcwMDY4MDA2NDE5MDY3MDBDMworOjEwMDkyMDAwN0UwNjI3MEMwNjAwODIwNkU3MDc4QzA5ODQwNkM4MDdBNgorOjEwMDkzMDAwN0UwNjQxOTA1MUFGOTdDRjA3MEMwNjAwQzc1NzA2MDBCRgorOjEwMDk0MDAwMEZDMUM4MDc3MDA2MTVDRjAwMEMwMjAwMDBEQTQwRDFCNQorOjEwMDk1MDAwMjcwMEMyMDYxRUNGMURDRjI3MEMwMjAwQ0MwNjE5Q0ZFMAorOjEwMDk2MDAwMjcwMjIwMDFFNzA3MDgwMDIyMDFFNzA3MTMwMEIwQzBCMworOjEwMDk3MDAwOTdDRjQxOTA2NzAwN0UwNkU3MDE4MjA2MjcwMjgwMDYzNgorOjEwMDk4MDAwRTcwNzhDMDk4NDA2QzgwNzdFMDZDMTA3MDA4MDUwQUZDMAorOjEwMDk5MDAwOTdDRjU5QUY5N0NGMDA2MDA1QzBFNzA3MDAwMEM0MDZBNgorOjEwMDlBMDAwQTdDRjdDMDY5RkFGMDAwQUU3MDcwMTAwQzQwNjQ5QUY0NgorOjEwMDlCMDAwRDcwOTAwQzAwN0FGRTcwNTAwQzA0QUFGQTdDRjdDMDY0NAorOjEwMDlDMDAwQzAwN0ZFN0Y0NEFGNDAwMEMwMzcwMDAxNDE5MEMwMzdGMAorOjEwMDlEMDAwMDgwMERGREU1MDA2QzA1NzEwMDAwMkMyQzAwNzEwMDAzQQorOjEwMDlFMDAwMjcwMDlBMDY0MTkwOUZERTQwMDY0NEFGMjcwMDlDMDZGMAorOjEwMDlGMDAwQzAwOTlBMDY0MTkwMDBEMjAwRDg5RkRFMDgwMDQ0QUY5QgorOjEwMEEwMDAwMjcwMEM4MDY5N0NGRTc4NzAwODQyOEMwRTc2N0ZGRkI2OQorOjEwMEExMDAwMjRDMDk3Q0ZFNzg3MDEwMEQyMDZFNzU3MDAwMEE4MDY1OQorOjEwMEEyMDAwOTdDMTlGQUYwMDBBRTc4NzAwMDYyMkMwRTcwNzAwMDBEMgorOjEwMEEzMDAwOTBDMEU3NjdGRUZGM0VDMEU3MDcyNjAwMEFDMEU3ODdEMQorOjEwMEE0MDAwMDEwMDNFQzBFNzA3RkZGRkJFMDY5RkFGMTAwQjk3Q0YyOAorOjEwMEE1MDAwMTcwMEE3QUY3ODA2QzAwNTI3MDA3NjA2RTc4NzAxMDBENAorOjEwMEE2MDAwRDIwNjlGQUYwMDBBRTcwNzBDMDA0MEMwOUZBRjEwMEJGMworOjEwMEE3MDAwMDA5MDI3MDBBNjA2MjcwMEFBMDZFNzA5QjIwNkI0MDZEQQorOjEwMEE4MDAwMjcwMEFFMDYyNzAwQUMwNjlGQUZBRTBBQzAwNzAwMDBFNQorOjEwMEE5MDAwMjcwMEIyMDIyNzAwQjQwMjI3MDA4RTA2QzAwNzA2MDAxNgorOjEwMEFBMDAwQzgwOURFMDBDODE3MDMwMEM5MDc3MDA2MjkwQTAwREE2MgorOjEwMEFCMDAwN0RDMTk3Q0ZENzA5MDBDMEMxREYwMDkwMjcwMDk2MDZGRgorOjEwMEFDMDAwRTcwNzk2MDY5ODA2MjcwMEEwMDZFNzA3QTAwNkEyMDZGNQorOjEwMEFEMDAwMjcwMEE2MDYyNzAwOTAwNjI3MDA5RTA2QzgwOTlDMDY0OAorOjEwMEFFMDAwQzEwOTlBMDZDOTA3QTQwNjExMDIwOTAyQzgxNzQwMDZERgorOjEwMEFGMDAwMDFEQTdBQzE1MTk0QzgwOUM4MDZDOTA3QzYwNkMxMDlGNgorOjEwMEIwMDAwOUEwNjExMDIwOTAyQzgxNzA4MDAwMURBN0FDMTUxOTQ0NQorOjEwMEIxMDAwRTcwNTAwQzA5N0NGRTc1NzAwMDA3NjA2OTdDMDlGQUY2NAorOjEwMEIyMDAwMDQwMEU3MDlCRTA2QkEwNkU3NTdGRkZGQkEwNjA0QzE4QworOjEwMEIzMDAwRTcwNzEwMEJCODA2OTdDRkU3MTczMjAwQkEwNkU3Njc0QQorOjEwMEI0MDAwRkYwN0JBMDZFNzA3NDYwQkI4MDY5N0NGRTc1NzAwMDAzRQorOjEwMEI1MDAwQzAwNjIzQzBFNzA3MDQwMDkwQzBFNzA3MDA4MDgwQzBGQworOjEwMEI2MDAwRTcwNzAwMDA4MEMwRTcwNzAwODA4MEMwQzAwNzAwMDBFMgorOjEwMEI3MDAwQzAwNzAwMDBDMDA3MDAwMEU3MDcwMDAwODBDMEU3MDdDQgorOjEwMEI4MDAwMDA4MDgwQzBFNzA3MDA4MDQwQzBDMDA3MDAwMEU3MDc4MgorOjEwMEI5MDAwMDAwMDQwQzBFNzA3MDAwMDgwQzBFNzA3MDQwMDkwQzBFNQorOjEwMEJBMDAwRTcwNzAwMDI0MEMwRTcwNzBDMDI0MEMwRTcwNzAwMDA2QgorOjEwMEJCMDAwQzAwNkU3MDcwMDAwQjgwNkU3MDcwMDAwRDIwNkQ3MDkxRAorOjEwMEJDMDAwMDBDMEMxREY5RkFGMzQwMkU3MDUwMEMwOUZBRkM0MDE4MgorOjEwMEJEMDAwOTdDRkQ3MDkwMEMwMTcwMDE3MDI5NzAyRTc1NzAwMDAwOAorOjEwMEJFMDAwQTgwNjA2QzBDMDA5OTJDMEMwNzcwOTAyOUZDMTVDMDU3MworOjEwMEJGMDAwOUZDRjMyMDZENzA5MEVDMEU3MDcwMDAwMEVDMDlGQUY5NworOjEwMEMwMDAwMDIwQ0U3MDUwRUMwOTdDRkQ3MDkwMEMwMTcwMkM4MDkyQworOjEwMEMxMDAwQjBDMEU3NjdGRTdGQjBDMEM4NzcwMDIwOUZDMTY0RUIxQgorOjEwMEMyMDAwRTc1NzAwMDBDODAyOUZDMTgwRUJDODk5Q0EwMkM4Njc5NQorOjEwMEMzMDAwMDQwMDlGQzE5NkVCOUZDRjRDRUJFNzA3MDAwMEE2QzBENgorOjEwMEM0MDAwRTcwOUIwQzBDODAyRTcwNzAzMDBCMEMwOTdDRkMwMDlFQQorOjEwMEM1MDAwQjAwNkMwMzcwMTAwOTdDOUM5MDlCMjA2MDIwMDQxOTAyOQorOjEwMEM2MDAwNDgwMkM5MTcwNjAwOUZBRjA4MDQ5RkEyNzIwQzAyREE1RgorOjEwMEM3MDAwNzdDMTQxNjA3MUMxOTdDRjE3MDI1NzAyNDMwNDIxMDQyNQorOjEwMEM4MDAwRTAwMDQzMDQyMTA0RTAwMDQzMDQyMTA0RTAwMEMxMDcyNAorOjEwMEM5MDAwMDEwMEM5MDVDODA1OTdDRkU3MDcwMTAwOEUwNkM4MDcwMAorOjEwMENBMDAwODYwNkU3MDcwMDAwODYwNkU3MDcxMDA4ODgwNkU3MDdCQworOjEwMENCMDAwMDQwMDhBMDZFNzA3QkMwQzhDMDZDMTA3MDM4MDUwQUYwRQorOjBDMENDMDAwOTdDRkU3MDcwMDAwOEUwNjk3Q0YwMDAwREEKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rYXdldGgvbmV3X2NvZGVfZml4LmJpbi5paGV4IGIvZmlybXdhcmUva2F3ZXRoL25ld19jb2RlX2ZpeC5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjM1ZDNkCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL25ld19jb2RlX2ZpeC5iaW4uaWhleApAQCAtMCwwICsxLDQwIEBACis6MTAwMDAwMDBCNkMzQUFCQkNDREQwMjAwMDgwMDI4MDAyQzAwMzQwMEQ3Cis6MTAwMDEwMDAzQzAwNDAwMDQ4MDA1NDAwNTgwMDVFMDA2NDAwNjgwMDQ2Cis6MTAwMDIwMDA2RTAwNkMwMDcyMDA3NjAwN0MwMDgwMDA4NjAwOEEwMDAyCis6MTAwMDMwMDA5MDAwOTQwMDk4MDA5RTAwQTYwMEFBMDBCMDAwQjQwMEIyCis6MTAwMDQwMDBCODAwQzAwMEM2MDBDQTAwRDAwMEQ0MDBEODAwRTAwMDRDCis6MTAwMDUwMDBERTAwRTgwMEYwMDBGQzAwMDQwMTBBMDExODAxMjIwMUEyCis6MTAwMDYwMDAyODAxM0EwMTNFMDE3RTAxOTgwMTlDMDFBMjAxQUMwMUU4Cis6MTAwMDcwMDBCMjAxQkEwMUMwMDFDODAxRDAwMUQ2MDFGNDAxRkMwMUVFCis6MTAwMDgwMDAwODAyMTYwMjFBMDIyMjAyMkEwMjJFMDIzRTAyNDQwMjJDCis6MTAwMDkwMDA0QTAyNTAwMjY0MDI2MjAyNkMwMjcyMDI4NjAyOEMwMjAwCis6MTAwMEEwMDA5MDAyOUUwMkJDMDJEMDAyRDgwMkRDMDJFMDAyRTgwMjBBCis6MTAwMEIwMDBFNjAyRjQwMkZFMDIwNDAzMEMwMzI4MDM3QzAzOTAwMzBGCis6MTAwMEMwMDA5NDAzOUMwM0EyMDNDMDAzRDAwM0Q0MDNFRTAzRkEwM0ZBCis6MTAwMEQwMDBGRTAzMkUwNDMyMDQzQzA0NDAwNDRFMDQ3NjA0N0MwNEU3Cis6MTAwMEUwMDA4NDA0OEEwNDhFMDRBNjA0QjAwNEI4MDRCRTA0RDIwNEI2Cis6MTAwMEYwMDBEQzA0RUUwNDEwMDUxQTA1MjQwNTJBMDUzNjA1MzQwNTJFCis6MTAwMTAwMDAzQzA1NDIwNTY0MDU2QTA1NkUwNTg2MDUyMjA2MjYwNjNECis6MTAwMTEwMDAyQzA2MzAwNjQyMDY0QTA2NEUwNjU2MDY1NDA2NUEwNjc1Cis6MTAwMTIwMDA2MDA2NjYwNkU4MDZFRTA2RjQwNjE2MDcyNjA3MkMwN0E0Cis6MTAwMTMwMDAzMjA3MzYwNzNBMDczRTA3NTIwNzU2MDc1QTA3NjQwNzQxCis6MTAwMTQwMDA3NjA3N0EwNzgwMDc4NDA3OEEwNzlFMDdBMjA3REEwN0RGCis6MTAwMTUwMDBERTA3RTIwN0U2MDdFQTA3RUUwN0YyMDdGNjA3MEUwOEYyCis6MTAwMTYwMDAxNjA4MTgwODFBMDgxQzA4MUUwODIwMDgyMjA4MjQwODY3Cis6MTAwMTcwMDAyNjA4MjgwODJBMDgyQzA4MkUwODMyMDgzQTA4NDYwOEJCCis6MTAwMTgwMDA0RTA4NTQwODVFMDg3ODA4N0UwODgyMDg4NjA4OEMwOEE1Cis6MTAwMTkwMDA5MDA4OTgwODlFMDhBNDA4QUEwOEIwMDhBRTA4QjQwOEY5Cis6MTAwMUEwMDBCRTA4QzQwOEMyMDhDQTA4QzgwOEQ0MDhFNDA4RTgwODk5Cis6MTAwMUIwMDBGNjA4MTQwOTEyMDkxQTA5MjAwOTI2MDkyNDA5MkEwOTJFCis6MTAwMUMwMDAzRTA5NEMwOTU2MDk3MDA5NzQwOTc4MDk3RTA5N0MwOUIxCis6MTAwMUQwMDA4MjA5OTgwOTlDMDlBMDA5QTYwOUI4MDlEQzA5RTgwOTVGCis6MTAwMUUwMDBFQzA5RkMwOTEyMEExODBBMUUwQTQyMEE0NjBBNEUwQUJCCis6MTAwMUYwMDA1NDBBNUEwQTVFMEE2ODBBNkUwQTcyMEE3ODBBNzYwQTZECis6MTAwMjAwMDA3QzBBODAwQTg0MEE5NDBBQTQwQUI4MEFCRTBBQkMwQUI0Cis6MTAwMjEwMDBDMjBBQzgwQUM2MEFDQzBBRDAwQUQ0MEFEODBBREMwQTFBCis6MTAwMjIwMDBFMDBBRjIwQUY2MEFGQTBBMTQwQjFBMEIyMDBCMUUwQjRDCis6MTAwMjMwMDAyNjBCMkUwQjJDMEIzNjBCM0MwQjQyMEI0MDBCNEEwQkE4Cis6MTAwMjQwMDBBQTBCQjAwQkI2MEJDMDBCQzgwQkRBMEJFODBCRUMwQjEwCis6MTAwMjUwMDBGQTBCNEEwQzU0MEM2MjBDNjYwQzk2MEM5QTBDQTAwQzBGCis6MEUwMjYwMDBBNjBDQTQwQ0FDMENCMjBDQjAwQ0MwMEMwMDAwMzAKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rYXdldGgvdHJpZ2dlcl9jb2RlLmJpbi5paGV4IGIvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZS5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2UxNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZS5iaW4uaWhleApAQCAtMCwwICsxLDEzIEBACis6MTAwMDAwMDBCNkMzQUFCQkNDRERDODA3QTAwMEYwMDc1RTAwMDYwMDlGCis6MTAwMDEwMDBGMDA3MEEwMDA4MDBGMDA5MDAwMDAyMDBFNzA3MzYwMEI4Cis6MTAwMDIwMDAwMDAwRjAwNzAwMDAwNDAwRTcwNzUwQzMxMEMwRjAwOTBCCis6MTAwMDMwMDAwRUMwMDAwMEU3ODcwMTAwMEVDMDk3Q0ZENzA5MDBDMEFGCis6MTAwMDQwMDAxNzAyQzgwN0EwMDBFNzE3NTBDMzEwQzAzMEQ4MDQwMDNCCis6MTAwMDUwMDAzMDVDMDgwMDA0MDBCMEMwMDYwMEM4MDVFNzA1MDBDMDE5Cis6MTAwMDYwMDBDMERGOTdDRjQ5QUZDMDA3MDAwMDYwQUY0QUFGMDAwQ0I4Cis6MTAwMDcwMDAwQzAwNDBEMjAwMUMwQzAwNDBEMjMwMDAwODAwRjAwN0Y5Cis6MTAwMDgwMDAwMDAwMDQwMEYwMDc4NjAwMDYwMDY3Q0YyNzBDMDIwMDdFCis6MTAwMDkwMDAwMDAwMjcwQzAwMDAwRUMwNDlBRjY0QUZDMDA3MDAwMDhECis6MTAwMEEwMDA0QkFGNEFBRjVBQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MDYwMEIwMDA5NDAwMDUwMDAwMDBCMQorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2thd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbi5paGV4IGIvZmlybXdhcmUva2F3ZXRoL3RyaWdnZXJfY29kZV9maXguYmluLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzcxMmY3MwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2thd2V0aC90cmlnZ2VyX2NvZGVfZml4LmJpbi5paGV4CkBAIC0wLDAgKzEsMyBAQAorOjEwMDAwMDAwQjZDM0FBQkJDQ0REMDIwMDA2MDAxODAwM0UwMDgwMDA4QgorOjA2MDAxMDAwOTgwMEFBMDAwMDAwQTgKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL21wci5IRVggYi9maXJtd2FyZS9rZXlzcGFuL21wci5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUzYmExMAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vbXByLkhFWApAQCAtMCwwICsxLDEwNCBAQAorOjAzMDAzMzAwMDIwMDFBQUUKKzowNDAwMUEwMDUzRDhFRjMyOTYKKzoxMDAwMDMwMDhFNTY4RjU3RTU1NzE1NTdBRTU2NzAwMjE1NTY0RTYwRUMKKzowNzAwMTMwMDA1MTIwRkEyODBFRTIyOEUKKzowMzAwMjMwMDAyMDA0NjkyCis6MTAwMDQ2MDBDMEUwQzA4M0MwODJDMDg2NzU4NjAwQzBEMDc1RDAwODY3Cis6MTAwMDU2MDAzMDk5MEUzMDBCMDdBMjBFOTI5Qjg1MzY5OUMyOTlEMjIzCis6MTAwMDY2MDAxMjIwMTIwMzAyMDJGOUMyMTIzMDAzMTk3RTdFN0Y0MDZCCis6MTAwMDc2MDA3NTFBN0U3NTFCNDA3NTE3MDA3RTdEN0ZDMDc1MTg3RENECis6MTAwMDg2MDA3NTE5QzA4MDE3N0U3RDdGQzA3NTFBN0Q3NTFCQzA3NTdBCis6MTAwMDk2MDAxNzAxN0U3RTdGNDA3NTE4N0U3NTE5NDAyMDBCMDMwMjdFCis6MTAwMEE2MDAwMTg0RTUzQUMzOTU1MzUwM0MyMDBDMzQyMDA5MzE5MDI1Cis6MTAwMEI2MDA3RjlCRTA1NTM4NzAyOTMwMTAxMkFGM0EwNTNBRTUxQkEwCis6MTAwMEM2MDAyRkY1ODJFNDM1MUFGNTgzRTAxMzkyMEVBRjNBMDUzQTFFCis6MTAwMEQ2MDBFNTFCMkZGNTgyRTQzNTFBRjU4M0UwRjUzNjAyMDJGN0MzCis6MTAwMEU2MDBDMjBCMDIwMkY3MzAwMzExOTA3RkM3RTRGMEEzRTA1NDdECis6MTAwMEY2MDAwMkY1MURBM0UwRjUxQzgwMTE5MDdGQzlFNEYwOTA3RjA2Cis6MDMwMDQzMDAwMjBGMDBBOQorOjAzMDAwMDAwMDIwMDI2RDUKKzowQzAwMjYwMDc4N0ZFNEY2RDhGRDc1ODE1QTAyMEEzMzk5Cis6NDAwMTA2MDBDNkUwNTQwMkY1MURBM0UwRjUxQ0U1MTcyNEZGOTIwMzMwMEQwREMyMEQ5MDdGQkI3NDAxRjBDMjBCMDIwMkY3RTUxRDYwMDVDMjBCMDIwMkY3ODUxQzUzODUxOTgyODUxODgzRTAxMzkyMEQ3NTEyRkYyMDBDM0EyMDA5Mzc5MDgyCis6NDAwMTQ2MDA3RjlCRTA1NTM4NzAyRjMwMTAxQzg1MTk4Mjg1MTg4M0EzRTAxMzkyMEU4NTE5ODI4NTE4ODNBM0EzRTBGNTM2NzUzQTAzMDIwMkY3NzUzQTAyODUxOTgyODUxODgzQTNFMEY1MzYwMjAyRjc3NTNBMDFDMjBCMDIwMkY3MzAwM0ZFCis6NDAwMTg2MDAwRTkwN0ZDNkUwNTQwMkY1MURBM0UwRjUxQzgwMEM5MDdGQzhFMDU0MDJGNTFEQTNFMEY1MUNFNTNBQzM5NTUzNTAwMzAyMDI2OEU1MUQ2MDA3QzIxNEMyMDUwMjAyRjc4NTFDNTM4NTFCODI4NTFBODNFMDEzOTIwRDc1MTJGRjYxCis6NDAwMUM2MDAzMDBDMDMwMjAyNjAzMDA5MDMwMjAyNjA5MDdGOUJFMDU1Mzg2MDAzMDIwMjYwMzAxMDFCODUxQjgyODUxQTgzQTNFMDEzOTI5Qjg1MUI4Mjg1MUE4M0EzQTNFMEY1OTk3NTNBMDM4MDBEODUxQjgyODUxQTgzQTNFMEY1OTk3NTc1Cis6NDAwMjA2MDAzQTAyRTUzQUMzOTU1MzQwMjYzMDAzMDc5MDdGQzdFNEYwODAwNTkwN0ZDOUU0RjBFNTE3MjRGRjkyMDMyMDBEMDMwMjAyRjdDMjBEOTA3RkJCNzQwMUYwMDIwMkY3MzAxMDEyQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4Mzk0Cis6NDAwMjQ2MDBFMDEzOTIwRUFGM0EwNTNBRTUxQjJGRjU4MkU0MzUxQUY1ODNFMEY1MzZEMjBCMDIwMkY3NzUzQTAxQzIxNDAyMDJGNzMwMEMwMzAyMDJGNTMwMDkwMzAyMDJGNTkwN0Y5QkUwNTUzODcwNzkzMDEwMTJBRjNBMDUzQUU1MUIyRkYyCis6NDAwMjg2MDBGNTgyRTQzNTFBRjU4M0UwMTM5MjlCQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4M0UwRjU5OUU1M0FDMzk1NTM0MDIyMzAwMzA3OTA3RkM3RTRGMDgwMDU5MDdGQzlFNEYwRTUxNzI0RkY5MjAzMzAwRDM2QzIwRDkwN0ZCQjBFCis6NDAwMkM2MDA3NDAxRjA4MDJDMzAxMDEyQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4M0UwMTM5MjBFQUYzQTA1M0FFNTFCMkZGNTgyRTQzNTFBRjU4M0UwRjUzNkQyMEI4MDAyQzIxNEQyMDEyMDk4MDMwMjA0MzVDMjk4MjAwMjAzMDIwMzgzCis6NDAwMzA2MDBBMjIwMTUyN0FGMzkwNTM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDEwNERBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwODAzQTg1OTk1NUU1NTVCNTQ3MDREMjA5ODAyRUU1NTVCNTQ2MDRDMjA5ODAyNTFDCis6NDAwMzQ2MDBBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTU1NUYwMzAxMDExQUYzOTA1Mzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OThGMEQyMEZFNTM5QzM5NTQzNTAwMzAyMDQzMzkwN0ZCOEUwMzBFMTE2RTUzOUMzOTQ0MDUwMDMwMkY1Cis6NDAwMzg2MDAwNDMzMTUzOTE1MzkwNTJCNDMzNDAxMDIwNDMzOTA3RkI3RTUzOUYwNzUzOTAwQzIwMjAyMDQzMzIwMTUyN0FGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk5RjAzMDEwNERBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTk0Cis6NDAwM0M2MDA4M0U1OThGMDgwM0E4NTk5NTVFNTU1QjU0NzA0RDIwOTgwMkVFNTU1QjU0NjA0QzIwOTgwMjVBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU1NUYwMzAxMDExQUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OThGMEVBCis6NDAwNDA2MDBEMjBGRTUzOUMzOTU0MzQwMjQ5MDdGQjZFMDMwRTExMkU1MzlDMzk0NDA0MDE2MTUzOTE1MzkwNTJCNDMzNDAxODAwQjkwN0ZCOUU1MzlGMDc1MzkwMEQyMDJEMjAxMzAwMTA1QzIwMTAyMDA1NkQwRDBEMDg2RDA4MkQwODNEMDJGCis6NDAwNDQ2MDBFMDMyOTA3RkJDRTAyMEUxNTRFNTM0NjA1MEU1MzE3MDRDRTUzNDMwRTEwQkU0RjUyRjc1MzQwMTc1MzEwMjgwMEVBMjA4RTQzM0Y1MkZDMjA4RTRGNTM0NzUzMTEwRTRGNTU2N0UwMDdCMDA3NDI0MjU1NkY5RUUzNDAwRkExMkQ4Cis6NDAwNDg2MDAwQzc5RkY3NDAwMjU1NkY1ODJFNDM0N0RGNTgzRUZGMDA1NTZFNTU2QjQwQ0RCOTA3RkJENzQwQ0YwOTA3RkNBRTAzMEUxMDMwMjA1RDFFNEY1NTY3NDQwMjU1NkY1ODJFNDM0N0RGNTgzRTBGRkU1NTY3QzAwN0IwMDI0M0JGOTAzCis6NDAwNEM2MDBFQzM0MDBGQUVGMTIwQzkyMDU1NkU1NTZCNDE4REJFNTNCNjAxMTc1QzkyMDc1QzgzNjg1M0NDQTg1M0RDQkU0OTA3RjlGRjBFNTNFMTM5MjEwOTI5Rjg1M0YzOEU1NDAxMzkyMTVFNTQxNjAwOTkwN0Y5OEUwNTRGQkYwODAwNzQ0Cis6NDAwNTA2MDA5MDdGOThFMDQ0MDRGMEU1NDI2MDA5OTA3Rjk4RTA1NDdGRjA4MDA3OTA3Rjk4RTA0NDgwRjBFNTQ4NjAwQkMyMENDMjA5OTA3Rjk1RTA0NDAyRjBFNTQ5NjAwQ0QyMDk0MzM0MDE5MDdGOTVFMDQ0MDJGMEU1NEE2MDBEQzJBRkJCCis6NDAwNTQ2MDBDMjBCRDIwMEU0RjU1M0Y1M0FEMkFGRTU0QjYwMDUzMDE1MDJEMjA5RTU0QzYwMTU5MDdGOTVFMDU0RkRGMDkwN0Y5RUUwNDQwMkYwOTA3Rjk4RTA1NEZERjBFNTRENjAwQUQyOUNDMjk4NzUyQzAxNzUzMTFFRTU0RTYwMDdDMjI3Cis6NDAwNTg2MDA5Q0U0RjUzOUY1MkNFNTRGNjAwM0U0RjUzOUU1NTA2MDAyRDIwN0U1NTE2MDBBRTU0RDcwMDJGNTMxRTU1MTQyMzRFNTUyNjAxRjkwN0ZENzc0MTFGMDc0MzFGMDc0MTJGMDc0MzJGMDc0MTNGMDc0MzNGMDc0MTRGMDc0MzRGMDY3Cis6NDAwNUM2MDBEMjAzRDIwMkQyMDhFNDkwN0ZDQkYwQTIwQ0U0MzNGRjY1Mjk2MDA1OEYyOTQzMzQwMUEyMDlFNDMzRkY2NTJBNjAwNThGMkE0MzM0MDE5MDdGOUJFMEZGNTQwODY0MDhGNTU3NjUyNTYwMDY4NTU3MjU0MzM0MDFFRjU0MTA2NDNBCis6NDAwNjA2MDAxMEY1NTc2NTI2NjAwNjg1NTcyNjQzMzQwMUVGNTQ0MDY0NDBGNTU3NjUyNzYwMDY4NTU3Mjc0MzM0MDFFRjU0MjA2NDIwRjU1NzY1Mjg2MDA2ODU1NzI4NDMzNDAxOTA3RjlBRTA1NDQwNjQ0MEY1NTc2NTJFNjAwNjg1NTcyRTVCCis6NDAwNjQ2MDA0MzM0MDEzMDA3MzVDMkFGMzAwMjE4OTA3RkI4RTAyMEUxMjdFNTM5NjAwOTkwN0ZCN0YwRTRGNTM5QzIwMkMyMDc4MDE2OTA3RkI2RTAyMEUxMEZFNTM5NjAwOTkwN0ZCOUYwRTRGNTM5RDIwMkMyMDdEMkFGMjAwNTNEMzAwM0RCCis6NDAwNjg2MDAxRTkwN0ZDNkUwMjBFMTMzOTA3RTQwRTAxMzkyMEQ3NTNBMDE5MDdGQzdFMEY1NTNEMjA1NzUxMkZGODAxQzkwN0ZDOEUwMjBFMTE1OTA3REMwRTAxMzkyMEQ3NTNBMDE5MDdGQzlFMEY1NTNEMjA1NzUxMkZGMjAxNDMzMjAwMEU2Cis6NDAwNkM2MDAwNkU1M0E2NTUzNzAyQTMwMDUxQTMwMDMwOUU0OTA3RkM3RjBDMjAzODAwN0U0OTA3RkM5RjBEMjAzQzIwNUU0RjU1M0Y1M0EzMDBEMEFDMjBEQzIwMDkwN0ZCQjc0MDFGMDMwMTQwMzAyMDdCRjIwMDUwMzAyMDdCRjMwMEMwMzE0Cis6NDAwNzA2MDAwMjA3QkYzMDA5MDMwMjA3QkY5MDdGOUJFMDU1Mzg2MDAzMDIwN0JGMzAwMzBDN0U3RTdGNDA3NTU4N0U3NTU5NDA4MDBBN0U3RDdGQzA3NTU4N0Q3NTU5QzAzMDEwMTJBRjNBMDUzQUU1NTkyRkY1ODJFNDM1NThGNTgzRTAxMzdDCis6NDAwNzQ2MDA5MjFBQUYzQTA1M0FFNTU5MkZGNTgyRTQzNTU4RjU4M0UwRjU1N0U1M0FDMzk1NTM1MDJBMzAxMDEyQUYzQTA1M0FFNTU5MkZGNTgyRTQzNTU4RjU4M0UwMTM5MjBFQUYzQTA1M0FFNTU5MkZGNTgyRTQzNTU4RjU4M0UwRjUzNjg4Cis6NDAwNzg2MDBEMjBCODAxNUMyMEIzMDAzMDlFNDkwN0ZDN0YwQzIwMzgwMDdFNDkwN0ZDOUYwRDIwMzMwMTAwNEEyMUE5MjlCRDIxNEMyQUY4NTU3OTkyMDBCMEQzMDBEMEFDMjBEQzIwMDkwN0ZCQjc0MDFGMEQyQUYyMjkwN0ZFOUUwMTIwQzcwCis6NDAwN0M2MDBBNDA5MUMwMDA5ODkwMTA5RTYwMzA3RTMwNjA5MEQwODA5MDEwOTA4RTkwQTA4RjgwQjAwMDAwQTI0OTA3RkVCRTAyNEZFNjAxQzE0NzAwMzAyMDg3OTI0MDI2MDAzMDIwQTI0NzQwRDkwN0ZENEYwNzQ4NzkwN0ZENUYwMDIwQUU2Cis6NDAwODA2MDAyQjkwN0ZFQUUwQjQwMTA0N0YwMjgwMDI3RjAzNzU4MkQ4NzU4MzBERUZGMDc1ODJEMTc1ODMwREYwNzU4MkNBNzU4MzBERjA3NTgyQzM3NTgzMERGMDkwN0ZFQUUwMDQ3NTgyOUU3NTgzMERGMDkwN0ZFRkUwRkU5MDdGRUVFMDdCCis6NDAwODQ2MDA3QzAwMjQwMEY1NUFFQzNFRjU1OTc1MTUwRDc1MTY5OTc1ODI5Qjc1ODMwREUwNzUxMzAwRjUxNEQzRTUxNDk1NUFFNTEzOTU1OTQwMDY4NTU5MTM4NTVBMTQxMjBCQkEwMjBBMkI5MDdGRUFFMDcwMEI3NTU2RkY3NTU3MEQ3NTAzCis6NDAwODg2MDA1OERDODAyRDkwN0ZFQUUwQjQwMTBCNzU1NkZGNzU1NzBENzU1OEUwODAxQjkwN0ZFQUUwQjQwMjBCNzU1NkZGNzU1NzBENzU1OEYwODAwOTc1NTZGRjc1NTcwRTc1NTgxRTkwN0ZFRUUwNzU1OTAwRjU1QUFFNTdBRjU4OEUxNTEyCis6NDAwOEM2MDA4RjE2OEY4MjhFODNFMEZFQTNFMDhFMTNGNTE0RDM5NTVBRTUxMzk1NTk0MDA2ODU1OTEzODU1QTE0MTIwQkJBMDIwQTJCOTA3RjAwRTUxMUYwOTA3RkI1NzQwMUYwMDIwQTJCOTA3RkVBRTBGNTExMDIwQTJCMTIwQzI0OTA3Rjg0Cis6NDAwOTA2MDBFQUUwRjUxMDAyMEEyQjkwN0YwMEU1MTBGMDkwN0ZCNTc0MDFGMDAyMEEyQjkwN0ZFOEUwMjQ3RjYwMjcxNDYwMzQyNDAyNjAwMzAyMEEyNEEyMTZFNDMzRkYyNUUwRkZBMjE4RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDU1Cis6NDAwOTQ2MDAwMkYwMDIwQTJCRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjBBMkI5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDBCCis6NDAwOTg2MDAwMjBBMkI5MDdGRThFMDI0RkU2MDE3MjQwMjYwMDMwMjBBMkI5MDdGRUFFMDY0MDE2MDAzMDIwQTI0QzIxNjAyMEEyQjkwN0ZFQUUwNzA3NjkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDhECis6NDAwOUM2MDA3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDQ1OTA3RkU4RTAyNEZFNjAxMDI0MDI3MDM5OTA3RkVBRTA2NDAxNzAyQUQyMTY4MDJEOTA3RkVBRTA3MDIwOTA3Rjc3Cis6NDAwQTA2MDBFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJDMjEwRTRGNTEwRjUzNEMyMDlDMjBDQzIwQkMyMTRDMjBEQzIxNUE1Cis6NDAwQTQ2MDBDMjExQzIwN0MyMTJDMjBGQzIwOEY1MzVGNTM5RjU1M0Y1M0FGNTMzRjUzMEY1MkZGNTJFRjUyREY1MkNGNTJCRjUyQUY1MjlGNTI4RjUyN0Y1MjZGNTI1RjUyNEMyMDVDMjE3QzIxOUMyMTZDMjE4QzIwNEQyMTNDMjA2QzIwMTc4Cis6NDAwQTg2MDA5MDdGOTJFMDU0RkRGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwRkYwOTA3RkFDNzQwRUYwRDJBRkQyQkNEMjQ3Cis6NDAwQUM2MDAxQTEyMEY3REMyMTczMDA0MDMxMjA0NDgzMDA0MkEzMDA2MjdDMjA2RTUxMjYwMTYxNTEyOTA3RkQ4RTAzMEU2MDQ3RjAwODAwMjdGMjA5MDdGOTZFRkYwODAwNjkwN0Y5Njc0MjBGMDEyMEIxNDgwQ0QzMDE3MDdDMjE3MTIwNzQxCis6NDAwQjA2MDBDMDgwQzMzMDE5QzBDMjE5MTIwRURDODBCOTIyRTUzMTYwMDIxNTMxRTUzOTYwNTU2NTM1NzA0QkU1MzNGNDYwMDIwNTMzRTUzM0MzOTU0NDQwNDNDMkFGMzAwMjFCOTA3RkI4RTAyMEUxMkQ5MDdGQjdFNTM5RjBDMjAyRTRGNUFBCis6NDAwQjQ2MDAzOUY1MzNGNTM1NzUxMkZGODAxOTkwN0ZCNkUwMjBFMTEyOTA3RkI5RTUzOUYwRDIwMkU0RjUzOUY1MzNGNTM1NzUxMkZGRDJBRjgwMDY4NTM5MzVFNEY1MzNFNTJDNjAzMDIwMEYwNzkwN0Y5QkUwMzBFMDBGRTUyRDYwMDZFNDk3Cis6NDAwQjg2MDBGNTJENDMzNDAxRTRGNTMwODAxNEU1MzBEMzk1NDU1MDBERTUzMEI1NDUwNjc1MkQwMTQzMzQwMTA1MzBDMjBGMjI5MDdGRDlFMDMwRTIwNDdGMDA4MDAyN0YyMDkwN0Y5NkVGRjAyMkU1MTQ0NTEzNjA1N0FFMTNBRjE0RDNFRjBGCis6NDAwQkM2MDA5NDQwRUU5NDAwNDAwNDdFMDA3RjQwQzNFNTE0OUZGNTE0RTUxMzlFRjUxM0U0RkRFREMzOUZFNDlFNTAxRjg1MTY4Mjg1MTU4M0UwRkM3NDAwMkRGNTgyRTQzNDdGRjU4M0VDRjAwRDA1MTZFNTE2NzAwMjA1MTU4MERBOTA3RkM0Cis6NDAwQzA2MDBBOTc0MDFGMDkwN0ZBQ0UwNDQwMUYwOTA3RkI1RUZGMDIyOTA3RkFDRTA1NEZFRjBFNDkwN0ZCNUYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2NzQyMEYwOTA3Rjk0NzQwMUYwOTA3RjlENzRGRkYwOTA3Rjk3NzQ4NkRGCis6NDAwQzQ2MDBGMDkwN0Y5NTc0MDNGMDkwN0Y5RTc0ODRGMDkwN0Y5OEYwRTQ5MDdGQzdGMDkwN0ZDOUYwOTA3RkNCRjA3NTk4NDA0M0E4MTA5MDdGREU3NDFGRjA5MDdGREY3NDBGRjBEMjA0MjJCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkMzCis6NDAwQzg2MDBCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBMzY3Cis6NDAwQ0M2MDBBM0EzODBERkU0OTA3Rjk1RjA5MDdGOTRGMDkwN0Y5M0YwOTA3RjlERTA0NDAyRjA5MDdGOTdFMDQ0NDJGMDkwN0Y5Qzc0MTBGMEU0OTA3Rjk2RjA5MDdGOUQ3NEJFRjAzMDE2MDQ3RjgwODAwMjdGMDA5MDdGOTdFRkYwRTQ5MDQ1Cis6NDAwRDA2MDA3Rjk1RjA5MDdGOUVGMDkwN0Y5OEYwMjJDMEUwQzBGMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwQzBEMDc1RDAwODUzOTFFRjkwN0ZBOTc0MDFGMDEyMEJCQUQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRjBEMEUwMzJDMDZBCis6NDAwRDQ2MDBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6NDAwRDg2MDAwMDEyMDExMDAxRkZGRkZGNDBDRDA2MUMwMTAxMDAwMTAyMDAwMjA5MDI0MzAwMDEwMTAwODAzMjA5MDQwMDAwMDdGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDU4MTAyNDAwMDAyCis6NDAwREM2MDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA0MDMwOTA0MTAwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyRTAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTAwMEEzCis6NDAwRTA2MDA1MzAwNDgwMDMxMDAzMTAwMzIwMDJEMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMjAzNTUwMDUzMDA0MTAwMkQwMDM1MDAzMzAwMjAwMDMyMDAzMDAwMzAwMDMyMDA2MTAwNzAwMDcyMDAzMjAwMzYwMDAwMDBDMEUwQzA4M0RCCis6NDAwRTQ2MDBDMDgyQzA4NUMwODRDMDg2NzU4NjAwNTM5MUVGOTA3RkFCNzQwMkYwRDIwNkQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxNzUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDFGCis6NDAwRTg2MDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTk1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDg0Cis6NDAwRUM2MDA1MzkxRUY5MDdGQTk3NDAyRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjEyMENDQTEyMEZCMzkwN0ZENkUwMzBFNzEyRTA0NDAxRjA3RjBEN0UwMDEyMDAwMzkwN0ZENkUwNTRGRUYwMTIwQzI0MjIwMDAyMEU2OTAwMDIwRUEzCis6NDAwRjA2MDA0MjAwMDIwRDQ1MDAwMjBFOTAwMDAyMEYxMDAwMDIwRjE0MDAwMjBEMTIwMDAyMEYxQzAwMDIwRUI3MDAwMjBGMjQwMDAyMEYzMzAwMDIwRjJDMDAwMjBGNThDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA1MzkxRUY5MEE5Cis6NDAwRjQ2MDA3RkE5NzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA1MzkxRUY5MDdGQTk3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0ZENkUwNTRGQkYwRTA0NEMxCis6M0QwRjg2MDAwOEYwMzAxQTA0RTA0NDAyRjA3RkY0N0UwMTEyMDAwMzkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjJDCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCisKK3N0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTUzW10gPQorCSIwNC8yNi8yMDAyICAwMjo0N3AgICAgICAgICAgICAgIDExLDU3MCBVU0E1MyI7CisKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTh4LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTh4LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWZmNzBlCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOHguSEVYCkBAIC0wLDAgKzEsMTQxIEBACis6MDMwMDMzMDAwMjEyRjdCRgorOjEwMDAwMzAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjBCRgorOjEwMDAxMzAwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTAzMQorOjBGMDAyMzAwN0Y5NUYwOTA3RjlFNzQwN0YwRTQ5MDdGOThGMDIyMTUKKzoxMDAwNDYwMDMwMDkxODEyMTMxQkVGQzM5NTNDNDAwMzAyMDBEODkwRTkKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjA5QzIwMDgwNzczMDAzM0I5MDdGRjYKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjEzMUJFRkMzOTQ0MDUwNjQ5MDdFRUUKKzoxMDAwNzYwMDQwRTAxMzkyMDk5MDdGQzdFMDE0RjUxOTIwMDAxMTYwNDMKKzoxMDAwODYwMDBGRjUwODdFN0U3RjQxNzUwQzdFNzUwRDQxMTIwQ0JBMDgKKzoxMDAwOTYwMEMyMDNFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyNDgKKzoxMDAwQTYwMDEyMTMxQkVGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjA5QjAKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEQzgKKzoxMDAwQzYwMDdGQzE3NTBDN0Q3NTBEQzExMjBDQkFEMjAzRTQ5MDdGMDkKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE2MDEyMTFENjhGQkQKKzoxMDAwRTYwMDE5MTIxMzI3OEYzNkU1MTlDMzk1M0E1MDBGMTIxMkVCRTIKKzoxMDAwRjYwMEVGMzBFMDA4RTUzNjIwRTcwMzMwMEI1RUMyMEJFNTE5NkEKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjEzMDBBNQorOjAzMDAwMDAwMDIwRTAwRUQKKzo0MDAxMDYwMDYwNThCNDgwMDM0MzM2MDJFNTM2MzBFNzI2RTUxOUQzOTQyMDQwMDM3NTE5MjA4NTE5MDg3RTdFN0Y4MDc1MEM3RTc1MEQ4MEFGMzYxMjBGNEJFNTE5MjVFMDkwN0ZCN0YwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4RDQKKzo0MDAxNDYwMDkwN0U4MEU1MzZGMDdFN0U3RjgxNzUwQzdFNzUwRDgxMTIwQ0RGRTUxOTA0OTA3RkI3RjA5MDdGQ0VFMDMwRTEwNjIwMDUwMzAyMDNDMUMyMDVFNEY1MTg3NDQwMjUxOEY1ODJFNDM0N0NGNTgzRTBGRkU1MTg3QzAwN0IwMTdBRjEKKzo0MDAxODYwMDdFNzkwMDI0MDBGOUVDMzQ3RUZBRUYxMjBFRDIwNTE4RTUxOEI0MjBENzkwN0UwMEUwNjA2ODkwN0UwM0UwNjAyNDdGMDFFNEZEMTIxMUIxN0YwMzdEQ0QxMjExQjE0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjBFNDkwRTAKKzo0MDAxQzYwMDdFMTNGMDgwMzA5MDdFMDFFMEZGMTIxMDM1OTA3RTAyRTBGRjEyMTA1QjdGMDE5MDdFMTFFMEZEMTIxMUIxN0YwMzdEMDcxMjExQjE0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdGOTg3NDEyRjBFNTQwNDQwNjkwM0UKKzo0MDAyMDYwMEMwMDBGMDkwN0UwM0UwNzAwNjkwN0UxM0UwNzAwOEU0OTA3RTEzRjA3NTI1RkY5MDdFMDVFMDYwMTJBM0UwNTQzRkY1NDQ5MDdGOTg3NDEzRjA5MEMwMDBFNTQ0RjA5MDdFMDdFMDYwMkJBM0UwNjAwNTQzNDI4MDgwMDM1MzQyREEKKzo0MDAyNDYwMDdGNTM0MkZDOTA3RTA5RTA2MDExNDM0MjAyQTNFMEZGMTIxMEE3OTA3RTBCRTBGRjEyMTBDREFGNDIxMjEwODE5MDdFMDNFMDYwMDg1MzQyN0ZBRjQyMTIxMDgxOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzQ2MDI4MDAzNTM0NkZEQjQKKzo0MDAyODYwMDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UwRUUwNjAxOEEzRTA2MDA1NDM0NjAxODAwMzUzNDZGRTkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxMkUwRjUzQUEzRTAxMzkyMERBM0UwRjUzQ0EzRTA2MDA1NDM0NjEwOEIKKzo0MDAyQzYwMDgwMDM1MzQ2RUY5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTZFMDYwMzI1MzQ0QkY5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIxMkRGRUY1NEZFOTBDMDAwRjA1MzNFRkRFNEZGQUQzRTEyMEYKKzo0MDAzMDYwMDExQjFFNEY1MkFGNTI5RDIwNzkwN0UxN0UwNjAwRjQzM0UwMkU0RkZBRDNFMTIxMUIxNzUyOTAxRDIwNzkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1NDA0NDA0OTBDMDAwRjBEMjAwOTA3RTE5RTA2MDExNDM0NDQwOTA3Rjk4RjIKKzo0MDAzNDYwMDc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdFMUFFMDYwMEY1MzNFRkVFNEZGQUQzRTEyMTFCMTc1MkIwMUQyMDc5MDdFMUJFMDYwMEY0MzNFMDFFNEZGQUQzRTEyMTFCMUU0RjUyQkQyMDc5MDdFMUNFMDYwMEU5MDdGOTg3NDEyODQKKzo0MDAzODYwMEYwRTU0MDQ0MDI5MEMwMDBGMDkwN0UxREUwNjAwMkQyMEI5MDdFMUVFMDYwMDg3NTJDMDFFNEY1MzhEMjA3OTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwM0U0OTA3RkNGRjAzMDFBNTJFNTM4OTIKKzo0MDAzQzYwMDYwMDIxNTM4MjAxMzQ5RTUxM0QzOTQwMDQwMDQxNTEzODAzRTc1MTMwQTMwMUIwMkQyMTMxMjEyREZFRjU0MDFGNTE5NjUyQTYwMDU4NTE5MkFEMjA3MTIxMzMzRUY1NDgwRjUxOTY1MjY2MDA1ODUxOTI2RDIwNzMwMEQxMTEyN0YKKzo0MDA0MDYwMDEzMzNFRjU0MTBGNTE5NjUyNTYwMDU4NTE5MjVEMjA3MjAxQjAzMDIwN0VDMzAwQTE4MTIxMzZGRUZDMzk1M0Q0MDAzMDIwNEFFOTA3RkMxNzQwMUYwQzIwQUMyMDA4MDc3MzAwNDNCOTA3RkNBRTAyMEUxNkQxMjEzNkZFRkMzNUEKKzo0MDA0NDYwMDk0NDA1MDY0OTA3RDQwRTAxMzkyMEE5MDdGQ0JFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3RDdGNDE3NTBDN0Q3NTBENDExMjBEMDRDMjA0RTQ5MDdGQ0JGMDgwMzk5MDdGQ0NFMDIwRTEzMjEyMTM2RkVGQzM5NDQwNTAyOTkwQkMKKzo0MDA0ODYwMDdDQzBFMDEzOTIwQTkwN0ZDREUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdDN0ZDMTc1MEM3Qzc1MERDMTEyMEQwNEQyMDRFNDkwN0ZDREYwOTA3RkJBRTAzMEUxMDMwMjA1MzYxMjEyMjA4RjE5MTIxMzdCOEYzN0U1MTlDMzk1MkIKKzo0MDA0QzYwMDNCNTAwRjEyMTM1N0VGMzBFMDA4RTUzNzIwRTcwMzMwMEM1RUMyMENFNTE5NjA1OEI0ODAwMzQzMzcwMkU1MzczMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0Q3RjgwNzUwQzdENzUwRDgwQUYzNzEyMEY4NEU1MDMKKzo0MDA1MDYwMDE5MjVFMDkwN0ZCQkYwODAyN0U1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTA4OTA3RDgwRTUzN0YwN0U3RDdGODE3NTBDN0Q3NTBEODExMjBEMjlFNTE5MDQ5MDdGQkJGMDkwN0ZEMEUwMzBFMTA2MjAwNjAzMDIwNzk3QzIwNkU0RjgKKzo0MDA1NDYwMEY1MTg3NEMwMjUxOEY1ODJFNDM0N0JGNTgzRTBGRkU1MTg3QzAwN0IwMTdBN0U3OTIwMjQyMEY5RUMzNDdFRkFFRjEyMEVEMjA1MThFNTE4QjQyMEQ3OTA3RTIwRTA2MDY4OTA3RTIzRTA2MDI0N0YwMUU0RkQxMjExRkI3RjAzMjkKKzo0MDA1ODYwMDdEQ0QxMjExRkI0MzQ3ODA5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBFNDkwN0UzM0YwODAzMDkwN0UyMUUwRkYxMjExMTk5MDdFMjJFMEZGMTIxMTNGN0YwMTkwN0UzMUUwRkQxMjExRkI3RjAzN0QwNzEyMTFGQjQzNDc4MDkwNDgKKzo0MDA1QzYwMDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdGOTg3NDBBRjBFNTQxNDQwNjkwQzAwMEYwOTA3RTIzRTA3MDA2OTA3RTMzRTA3MDA4RTQ5MDdFMzNGMDc1MkVGRjkwN0UyNUUwNjAxMkEzRTA1NDNGRjU0NTkwN0Y5ODc0MEJGMDkwRUIKKzo0MDA2MDYwMEMwMDBFNTQ1RjA5MDdFMjdFMDYwMkJBM0UwNjAwNTQzNDM4MDgwMDM1MzQzN0Y1MzQzRkM5MDdFMjlFMDYwMTE0MzQzMDJBM0UwRkYxMjExNjU5MDdFMkJFMEZGMTIxMThCQUY0MzEyMTBGMzkwN0UyM0UwNjAwODUzNDM3RkFGRkUKKzo0MDA2NDYwMDQzMTIxMEYzOTA3RTJDRTA2MDE4QTNFMDYwMDU0MzQ3MDI4MDAzNTM0N0ZEOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTJFRTA2MDE4QTNFMDYwMDU0MzQ3MDE4MDAzNTM0N0ZFOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwRDQKKzo0MDA2ODYwMDkwN0UzMkUwRjUzQkEzRTAxMzkyMEVBM0UwRjUzREEzRTA2MDA1NDM0NzEwODAwMzUzNDdFRjkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UzNkUwNjAzMjUzNDVCRjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdGNzkKKzo0MDA2QzYwMDk4NzQwOUYwMTIxMzRCRUY1NEZFOTBDMDAwRjA1MzNGRkRFNEZGQUQzRjEyMTFGQkU0RjUzM0Y1MzJEMjA4OTA3RTM3RTA2MDBGNDMzRjAyRTRGRkFEM0YxMjExRkI3NTMyMDFEMjA4OTA3RTM4RTA2MDEwOTA3Rjk4NzQwQUYwNDMKKzo0MDA3MDYwMEU1NDE0NDA0OTBDMDAwRjBEMjAwOTA3RTM5RTA2MDExNDM0NTQwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0UzQUUwNjAwRjUzM0ZGRUU0RkZBRDNGMTIxMUZCNzUzNDAxRDIwODkwN0UzQkUwNjAwRjQzM0YwMUU0RTkKKzo0MDA3NDYwMEZGQUQzRjEyMTFGQkU0RjUzNEQyMDg5MDdFM0NFMDYwMEU5MDdGOTg3NDBBRjBFNTQxNDQwMjkwQzAwMEYwOTA3RTNERTA2MDAyRDIwQzkwN0UzRUUwNjAwODc1MzUwMUU0RjUzOUQyMDg5MDdFM0ZFMDYwMTE5MDdGRDc3NDEzODkKKzo0MDA3ODYwMEYwNzQzM0YwNzQxNkYwNzQzNkYwRDIwNEU0OTA3RkQxRjAzMDFBNTJFNTM5NjAwMjE1MzkzMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyQzIxMzEyMTM0QkVGNTQwMUY1MTk2NTMzNjAwNTg1MTkzM0QyNzkKKzo0MDA3QzYwMDA4MTIxMzg3RUY1NDgwRjUxOTY1MkY2MDA1ODUxOTJGRDIwODMwMEUxMTEyMTM4N0VGNTQxMEY1MTk2NTJFNjAwNTg1MTkyRUQyMDgzMDFBMkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUxNTkwN0I0MkUwRjUxNjkwMzUKKzo0MDA4MDYwMDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA5MjBFNTBBNzA0MDMwMDczOUU1Mzg3MDM1QzIwN0Y1MTg3RTAwN0IwMDc0MjQyNTE4RjlFRTM0MDBGQTEyMEU4Q0ZGNzQ4MDI1QkQKKzo0MDA4NDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM4MTBFNEY1MkM3NTBBMDEyMkU1MEE2NDAxNzA0MDMwMDgzOUU1Mzk3MDM1QzIwOEY1MTg3RTAwN0IwMDc0MkQyNTE4RjlFRTM0MDBGQTEyOTcKKzo0MDA4ODYwMDBFOENGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM5MTBFNEY1MzU3NTBBMDIyMkU1MEE2NDAyNzAzNjMwMTQyRkMyMTRGNTE4N0UwMDdCMDA3NDBFMjUxOEY5RUUzNDAwODMKKzo0MDA4QzYwMEZBMTIwRThDRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwNURCOTA3RkMzNzQwNUYwNzUwQTAzMjJFNTE1NjAzMDE1MTVFNEY1MTg3RTAwN0IwMDc0MTQyNTE4RjlFRTM0MDBGQTEyMEU4Q0ZGNzQ4MDI1RjIKKzo0MDA5MDYwMDE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjBFNEY1MEEyMjkwN0ZFOUUwMTIwRUU0MEEwODAwMEE3QzAxMEFFODAzMDk0NDA2MDlGQjA4MDlGNTA5MDlERDBBMDlFQzBCMDAwMDBCMzc5MDdGM0QKKzo0MDA5NDYwMEVCRTAyNEZFNjAxOTE0NjA2MTI0MDI2MDAzMDIwOUQzNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwQjNFOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3Qjc1ODMxOUYwNzU4Mjc0NzU4MzE5QjIKKzo0MDA5ODYwMEYwNzU4MjY2NzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMEIzRTkwN0ZFQUUwRkYxMjBGMEFFQTQ5NjAwREVBOTA3RkQ0RjBFOTkwN0ZENUYwODUKKzo0MDA5QzYwMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGMDBFNTA5RjA5MDdGQjU3NDAxRjAwMjBCM0U5MDdGRUFFMEY1MDkwMjBCM0UxMjBCNDYwMjBCM0U5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMDUKKzo0MDBBMDYwMDBCM0U5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjEwRTQzM0ZGMjVFMEZGQTIxNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjNFRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGMDQKKzo0MDBBNDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFOEUwMjRGRTYwMUQyNDAyMEYKKzo0MDBBODYwMDYwMDMwMjBCM0U5MDdGRUFFMEI0MDEwNUMyMTAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGQjYKKzo0MDBBQzYwMEVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjEwODAzRjkwN0ZCNEUwNDQwMUYwNDkKKzo0MDBCMDYwMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyRDQKKzo0MDBCNDYwMEU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxOEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MjQ3NTE4MDE3QjAwNzQyNDI1MThGOUU0MzQwMEZBOEIKKzo0MDBCODYwMEU0MTIwRUQyMDUxOEU1MThCNDA5RUE3NTNBMDFFNEY1MzhGNTEzRjUzNkMyMDdDMjBCQzIwNUMyMDBDMjA5QzIxMzkwN0Y5ODc0MTNGMDc1NDQwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUIxN0YxMDhGNDIxMjEwODE5MDdGMDIKKzo0MDBCQzYwMDk4NzQxMkYwN0YwMThGNDBFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MTRGMDc1NDY4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTFCMUU0RkY3RUEzQUQwNjhEM0UxMjExQjE5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExOEUKKzo0MDBDMDYwMEIxN0YwMTEyMTI2QTdGMDM3RDA3MTIxMUIxMjAxQjAzMDIwQ0I3NzUyRDAxNzUxODAxN0IwMDc0MkQyNTE4RjlFNDM0MDBGQUU0MTIwRUQyMDUxOEU1MThCNDA5RUE3NTNCMDFFNEY1MzlGNTEzRjUzN0MyMDhDMjBDQzIwNkMyQ0QKKzo0MDBDNDYwMDAwQzIwQUMyMTM5MDdGOTg3NDBCRjA3NTQ1MDM5MEMwMDA3NDAzRjA3RjBDRTRGRDEyMTFGQjdGMTA4RjQzMTIxMEYzOTA3Rjk4NzQwQUYwN0YwMThGNDFFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MENGMDc1NDc4MDkwQzAwMDc0NEUKKzo0MDBDODYwMDgwRjAwRkU0RkQxMjExRkJFNEZGN0VBM0FEMDY4RDNGMTIxMUZCOTA3Rjk4NzQwOUYwOTBDMDAwRTRGMDdGMDU3RDdGMTIxMUZCN0YwMTEyMTI4QjdGMDM3RDA3MTIxMUZCRDIxMjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyQTUKKzo0MDBDQzYwMEU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGMjAKKzo0MDBEMDYwMDk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1NUMKKzo0MDBENDYwMDg2REZGNzA1ODZEMkFGMjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJEMjE5OTA3RjkyRTA0NDAyRjA5MDdGQUVFMEZGRDM5MjEwRTQzM0ZFRUY0RUYwODkKKzo0MDBEODYwMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyMUExMjEyNDVDMjExRTRGNTBCRjUxM0MyMTdDMjEyRDQKKzo0MDBEQzYwMDkwN0ZBMTA0RjA5MDdGRDhFMDY1MTc2MDEwMzAxMjA1RDIxQTEyMDA0NjkwN0ZEOEUwRjUxNzgwMDgzMDEyMDVDMjFBMTIwMDQ2MzAxMTA3QzIxMTEyMDkyMTgwRDYzMDE4RDNDMjE4MTIxMzkzODBDQzIyNzg3RkU0RjZEOEZEQzcKKzo0MDBFMDYwMDc1ODE0NzAyMEU0NzAyMEQ2RkU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERkU0ODAwQjAxMDIwNDA4MTAyMDQwRjUKKzo0MDBFNDYwMDgwOTAxMkFDRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQUYwQTNDOEM1ODJDOENBQzU4M0NBMUUKKzo0MDBFODYwMERGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1QjgKKzo0MDBFQzYwMDgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQzEKKzo0MDBGMDYwMEEzQTM4MERGOEYxOEU0RjUxOTc1MUFGRjc1MUIxOTc1MUM4NkFCMUFBQTFCQTkxQzkwMDAwMTEyMEVBNUI0MDMxREFGMTkwNTE5RUZCNTE4MDEyMjEyMEU4QzdFMDAyOUZGRUUzQUE5MDc3NTFBRkZGNTFCODkxQzgwRDQ3QjAwQTUKKzo0MDBGNDYwMDdBMDA3OTAwMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIwMDM2MDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTMyNzhGMUFFRjQyMzY4MENBMjI4RjFBRkMKKzo0MDBGODYwMDA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMTMzRjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwMEExMjEzN0I4RjFBRUY0MjM3ODBDQTIyQzBFMEMwODNDMDgyQzA4NUMwODgKKzo0MDBGQzYwMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTE1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwQzYKKzo0MDEwMDYwMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEwOEEKKzo0MDEwNDYwMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTFGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzNDkKKzo0MDEwODYwMEYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTRGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTQ0RDkKKzo0MDEwQzYwMDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEFGMDkwMkEKKzo0MDExMDYwMEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwOEYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQUYKKzo0MDExNDYwMEMwMDA3NEJGRjA5MDdGOTg3NDA5RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQ0YwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU1NDdGRUMKKzo0MDExODYwMDkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBFRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwNzUKKzo0MDExQzYwMEMwMDBFRkYwOTA3Rjk4NzQxNUYwOTBDMDAwRURGMDIyMTIxMzBGOEYxQTEyMTMwRjhGMUJFNTFBNjUxQjYwMTIxMjEzMEY4RjFBRTUxQTY1MUI2MDA3MTIxMzBGOEYxQjgwRThBRjFBMjI5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwOTgKKzo0MDEyMDYwMEMwMDBGMDkwN0Y5ODc0MEZGMDkwQzAwMEVGRjA5MDdGOTg3NDBERjA5MEMwMDBFREYwMjIxMjEzNjM4RjFBMTIxMzYzOEYxQkU1MUE2NTFCNjAxMjEyMTM2MzhGMUFFNTFBNjUxQjYwMDcxMjEzNjM4RjFCODBFOEFGMUEyMjkwQzgKKzo0MDEyNDYwMDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQTA0RTA0NDAyRjA3RkY0N0UwMTEyMTJDODkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMkFFMDdFNEZGRTUzRTU0N0ZGRDEyMTFCMTkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1M0U0NDgwRTgKKzo0MDEyODYwMEZEMTIxMUIxMjJBRTA3RTRGRkU1M0Y1NDdGRkQxMjExRkI5MDdGOTg3NDA5RjA5MEMwMDBFRUYwRTRFNTNGNDQ4MEZEMTIxMUZCMjIwNTBFMDIwMDAwMDAwMDAzMTQwMzAwMDBDMTExQzExOEMxOTVDMTEwQzExNjAxMEEwMEMxOUMKKzo0MDEyQzYwMDFCMDA4RTE4OEYxOUU1MTkxNTE5QUUxODcwMDIxNTE4NEU2MDA1MTIwRDRFODBFRTIyOTA3Rjk4NzQxMUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxMkYwOTBDMDAwRTBGRjIyNTNEOEVGMzIwMDAwMDAwMDAwMDIwRkU3MDAwMjEzMEEKKzo0MDEzMDYwMDA0MDAwMjBGQkQwMDAyMTAwRTkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MDhGMDkwNTAKKzo0MDEzNDYwMEMwMDBFMEZGMjI5MDdGOTg3NDA5RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBBRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBCRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBDRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBERjA5MEMwMDBFMEZGQzUKKzo0MDEzODYwMDIyOTA3Rjk4NzQwRUYwOTBDMDAwRTBGRjIyMTIwMDAzMTIwRDVGMTIwQjQ2MjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODMKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTIwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNzQKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzoxNDFBMDYwMDcyMDAxMDAzMzAwMDMwMDAzMDAwMzAwMDMwMDAzMDAwMzAwMDAwMDBGNworOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2ExOS5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWQxNDk2Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOS5IRVgKQEAgLTAsMCArMSwxMDEgQEAKKzowQTAwMjYwMDEyMERCRjEyMEY0NzEyMEQ2QjIyREUKKzowMzAwMzMwMDAyMDAxQUFFCis6MDQwMDFBMDA1M0Q4RUYzMjk2Cis6MTAwMDAzMDA4RTEzOEYxNEU1MTQxNTE0QUUxMzcwMDIxNTEzNEU2MDdFCis6MDcwMDEzMDAwNTEyMEYzNjgwRUUyMkZBCis6MDMwMDIzMDAwMjAwNDY5MgorOjEwMDA0NjAwQzBFMEMwODNDMDgyQzA4Njc1ODYwMEMwRDA3NUQwMDg2NworOjEwMDA1NjAwMzA5OTBFMzAwODA3QTIwQjkyOUI4NTM1OTlDMjk5RDIyQQorOjEwMDA2NjAwMEYyMDBGMDMwMjA0MzFDMjBGMjAwMjAzMDIwMjU2MjBBMgorOjEwMDA3NjAwMDgwMzAyMDEyN0U1MzdDMzk1NTA1MDNFMjAwOTM2MjA3NAorOjEwMDA4NjAwMDYzMzkwN0Y5QkUwMzBFMzAzMjAwRTI5MzAwRDEyQUYzQworOjEwMDA5NjAwMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTJGQQorOjEwMDBBNjAwMEJBRjM3MDUzNzc0NDAyRkY1ODJFNDM0N0VGNTgzRTBENQorOjEwMDBCNjAwRjUzNTAyMDQyRkMyMDgwMjA0MkY5MDdGQzdFNEYwQzI3MAorOjEwMDBDNjAwMDIzMDBBMENDMjBBOTA3RkJCMDRGMEMyMDgwMjA0MkY1OQorOjEwMDBENjAwOTA3RkM4RTAzMEUxMDVDMjA4MDIwNDJGOTA3RkM5RTA5NgorOjEwMDBFNjAwRjU1MDkwN0RDMEUwMTM5MjBBMjAwOTJEMjAwNjJBOTAzMworOjEwMDBGNjAwN0Y5QkUwMzBFMzAzMjAwRTIwMzAwRDExOTA3REMxRTBBMAorOjAzMDA0MzAwMDIwRjAwQTkKKzowMzAwMDAwMDAyMEM2MThFCis6NDAwMTA2MDAxMzkyMEJBM0UwRjUzNTc1MzcwMzAyMDQyRjc1MzcwMjkwN0RDMUUwRjUzNTAyMDQyRjc1MzcwMUMyMDgwMjA0MkZFNTM3QzM5NTUwNTAwMzAyMDFDRjkwN0ZDNkUwMzBFMTA3QzIxMEMyMDMwMjA0MkY5MDdGQzdFMEY1NTA5MDA0Cis6NDAwMTQ2MDA3RTQwRTAxMzkyMEEzMDA5MDMwMjAxQzcyMDA2NzIyMDAwNkY5MDdGOUJFMDMwRTMwMzIwMEU2NTMwMEQxMDkwN0U0MUUwMTM5MjlCQTNFMEY1OTk3NTM3MDM4MDA5OTA3RTQxRTBGNTk5NzUzNzAyRTUzN0MzOTU1MDQwMTc5MEIxCis6NDAwMTg2MDA3RkM3RTRGMEMyMDIyMDBBMDMwMjA0MkZDMjBBOTA3RkJCMDRGMDAyMDQyRjMwMEQxMkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIwQkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MzVEMjA4MDIwNDVECis6NDAwMUM2MDAyRjc1MzcwMUMyMTAwMjA0MkYzMDA5MDMwMjAyNTEyMDA2Nzk5MDdGOUJFMDMwRTMwMzIwMEU2RjMwMEQxMkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTI5QkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDQ2Cis6NDAwMjA2MDBGNTk5RTUzN0MzOTU1MDQwMTc5MDdGQzdFNEYwQzIwMjIwMEEwMzAyMDQyRkMyMEE5MDdGQkIwNEYwMDIwNDJGMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBCQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDgzCis6NDAwMjQ2MDA3RUY1ODNFMEY1MzVEMjA4MDIwNDJGQzIxMDAyMDQyRjIwMDgwMzAyMDMwOEU1MzdDMzk1NTA1MDNFMjAwOTM2MjAwNjMzOTA3RjlCRTAzMEUzMDMyMDBFMjkzMDBEMTJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxM0RFCis6NDAwMjg2MDA5MjBCQUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUzNTAyMDQyRkMyMDgwMjA0MkY5MDdGQzlFNEYwRDIwMjMwMEEwQ0MyMEE5MDdGQkIwNEYwQzIwODAyMDQyRjkwN0ZDNkUwMzBFMTA1QzIwODAyMDQyRjkwN0ZDNzY1Cis6NDAwMkM2MDBFMEY1NTA5MDdFNDBFMDEzOTIwQTIwMDkyRDIwMDYyQTkwN0Y5QkUwMzBFMzAzMjAwRTIwMzAwRDExOTA3RTQxRTAxMzkyMEJBM0UwRjUzNTc1MzcwMzAyMDQyRjc1MzcwMjkwN0U0MUUwRjUzNTAyMDQyRjc1MzcwMUMyMDgwMkVGCis6NDAwMzA2MDAwNDJGRTUzN0MzOTU1MDUwMDMwMjAzQjA5MDdGQzhFMDMwRTEwN0MyMTBDMjAzMDIwNDJGOTA3RkM5RTBGNTUwOTA3REMwRTAxMzkyMEEzMDA5MDMwMjAzQTgyMDA2NzIyMDAwNkY5MDdGOUJFMDMwRTMwMzIwMEU2NTMwMEQxMDM0Cis6NDAwMzQ2MDA5MDdEQzFFMDEzOTI5QkEzRTBGNTk5NzUzNzAzODAwOTkwN0RDMUUwRjU5OTc1MzcwMkU1MzdDMzk1NTA0MDE3OTA3RkM5RTRGMEQyMDIyMDBBMDMwMjA0MkZDMjBBOTA3RkJCMDRGMDAyMDQyRjMwMEQxMkFGMzcwNTM3NzRDMEY1Cis6NDAwMzg2MDAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMEJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM1RDIwODAyMDQyRjc1MzcwMUMyMTAwMjA0MkYzMDA5MDMwMjA0MkQyMDA2NzQ5MDdGOUJFMDMwRTMwMzIwMEU2QTMwMEQxMjhFCis6NDAwM0M2MDBBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyOUJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTk5RTUzN0MzOTU1MDQwMTM5MDdGQzlFNEYwRDIwMjMwMEEzNUMyMEE5MDdGQkIwNEYwODAyQzMwMEQxMkNDCis6NDAwNDA2MDBBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMEJBRjM3MDUzNzc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM1RDIwODgwMDJDMjEwRDIxMjIwOTgwMzAyMDU2REMyOTgyMDAxMDMwMjA0REEyMDExMjdBRjM2MDUzNkYzCis6NDAwNDQ2MDA3NDgwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMEQ0REFGMzYwNTM2NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTEwRTUxMEI1NDQwNEQyMDY4MDJFRTUxMEI1NDMwNEMyMDY4MDI1QUYzNjA1MzY3NDgwMkZGNUFCCis6NDAwNDg2MDA4MkU0MzQ3RUY1ODNFNTEwRjAzMDBEMTFBRjM2MDUzNjc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwQ0U1MzZDMzk1NDA1MDAzMDIwNTZCOTA3RkI4RTAzMEUxMTZFNTM2QzM5NDQwNTAwMzAyMDU2QjE1MzYxNTM2MDUyQkRECis6NDAwNEM2MDA0MzMzMDEwMjA1NkI5MDdGQjdFNTM2RjA3NTM2MDBDMjAxMDIwNTZCMjAxMTI3QUYzNjA1MzY3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMEQ0REFGMzYwNTM2NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTM3Cis6NDAwNTA2MDAxMEU1MTBCNTQ0MDREMjA2ODAyRUU1MTBCNTQzMDRDMjA2ODAyNUFGMzYwNTM2NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTEwRjAzMDBEMTFBRjM2MDUzNjc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwQ0U1MzZDMzk1NDA0MENFCis6NDAwNTQ2MDAyNDkwN0ZCNkUwMzBFMTEyRTUzNkMzOTQ0MDQwMTYxNTM2MTUzNjA1MkI0MzMzMDE4MDBCOTA3RkI5RTUzNkYwNzUzNjAwRDIwMUQyMTIzMDEyMDVDMjEyMDIwMDU2RDBEMEQwODZEMDgyRDA4M0QwRTAzMjkwN0ZDQUUwMzBFMUNBCis6NDAwNTg2MDAwMzAyMDZBQkU0RjUxMzc0NDAyNTEzRjU4MkU0MzQ3REY1ODNFMEZGRTUxMzdDMDA3QjAwMjQzOEY5RUMzNDAwRkFFRjEyMEQzMzA1MTNFNTEzQjQxOERCRTUzODYwMEM3NUM5MjA3NUM4MzQ4NTM5Q0E4NTNBQ0JFNTNCMTM5MkJGCis6NDAwNUM2MDAwRDkyOUZFNTNDMTM5MjBFRTUzRDEzOTIxMUU1M0U2MDA5OTA3Rjk4RTA1NEZCRjA4MDA3OTA3Rjk4RTA0NDA0RjBFNTNGNjAwOTkwN0Y5OEUwNTQ3RkYwODAwNzkwN0Y5OEUwNDQ4MEYwRTU0NTYwMEJDMjA5QzIwNjkwN0Y5NTBFCis6NDAwNjA2MDBFMDQ0MDJGMEU1NDY2MDBDRDIwNjQzMzMwMTkwN0Y5NUUwNDQwMkYwRTU0NzYwMERDMkFGQzIwOEQyMDBFNEY1NTBGNTM3RDJBRkU1NDg2MDA1MzAxMTAyRDIwNkU1NDk2MDE1OTA3Rjk1RTA1NEZERjA5MDdGOUVFMDQ0MDJGMEFBCis6NDAwNjQ2MDA5MDdGOThFMDU0RkRGMEU1NEE2MDBBRDI5Q0MyOTg3NTJDMDE3NTMxMUVFNTRCNjAwN0MyOUNFNEY1MzZGNTJDRTU0QzYwMDNFNEY1MzZFNTRENjAwMkQyMDRFNTRFNjAwQUU1NEE3MDAyRjUzMUU1NEU0MjMzRTU0RjYwMUY5MDY0Cis6NDAwNjg2MDA3RkQ3NzQxMUYwNzQzMUYwNzQxMkYwNzQzMkYwNzQxM0YwNzQzM0YwNzQxNEYwNzQzNEYwRDIwMkQyMDFEMjA1RTQ5MDdGQ0JGMEEyMDlFNDMzRkY2NTI5NjAwNThGMjk0MzMzMDFBMjA2RTQzM0ZGNjUyQTYwMDU4RjJBNDMzM0JBCis6NDAwNkM2MDAwMTkwN0Y5QkUwNTQwOEI1MjUwQUUwNTQwODY0MDhGNTI1NDMzMzAxOTA3RjlCRTA1NDEwQjUyNjBBRTA1NDEwNjQxMEY1MjY0MzMzMDE5MDdGOUJFMDU0NDBCNTI3MEFFMDU0NDA2NDQwRjUyNzQzMzMwMTkwN0Y5QkUwNTQyMDI2Cis6NDAwNzA2MDBCNTI4MEFFMDU0MjA2NDIwRjUyODQzMzMwMTMwMDQzNUMyQUYzMDAxMTg5MDdGQjhFMDIwRTEyN0U1MzY2MDA5OTA3RkI3RjBFNEY1MzZDMjAxQzIwNDgwMTY5MDdGQjZFMDIwRTEwRkU1MzY2MDA5OTA3RkI5RjBFNEY1MzZEMjM0Cis6NDAwNzQ2MDAwMUMyMDREMkFGMjAwMzM3MzAwMjFCOTA3RkM2RTAyMEUxMkQ5MDdFNDBFMDEzOTIwQTc1MzcwMTkwN0ZDN0UwRjU1MEQyMDM4MDE5OTA3RkM4RTAyMEUxMTI5MDdEQzBFMDEzOTIwQTc1MzcwMTkwN0ZDOUUwRjU1MEQyMDMyMEU5Cis6NDAwNzg2MDAxMDMzMjAwMDA2RTUzNzY1NTA3MDJBMzAwMzFBMzAwMjA5RTQ5MDdGQzdGMEMyMDI4MDA3RTQ5MDdGQzlGMEQyMDJDMjAzRTRGNTUwRjUzNzMwMEEwQUMyMEFDMjAwOTA3RkJCNzQwMUYwMzAxMDAzMDIwOEM1MjAwMzAzMDIwODA1Cis6NDAwN0M2MDBDNTMwMEUwQTkwN0Y5QkUwMzBFMzAzMDIwOEM1MzAwNjAzMDIwOEM1MzAwOTAzMDIwOEM1MzAwMjYyMzAwRDEyQUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjE5QUYzNzA1Mzc3NDQwMkZGNTgyRTQzNDdFRjU4M0NGCis6NDAwODA2MDBFMEY1MTRFNTM3QzM5NTUwNTAyQTMwMEQxMkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIwQkFGMzcwNTM3NzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MzVEMjA4ODA2QkMyMDhFNDkwN0ZDN0YwQzIwMjgwNjAzMDgxCis6NDAwODQ2MDAwRDEyQUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjE5QUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUxNEU1MzdDMzk1NTA1MDJBMzAwRDEyQUYzNzA1Mzc3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjlGCis6NDAwODg2MDAwQkFGMzcwNTM3NzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1MzVEMjA4ODAwOUMyMDhFNDkwN0ZDOUYwRDIwMjMwMEQwNEEyMTk5MjlCRDIxMEMyQUY4NTE0OTkyMDA4MEQzMDBBMEFDMjBBQzIwMDkwN0ZCQjc0MDFGMEQyQUY5MDcyCis6NDAwOEM2MDA3RkJDRTAyMEUxNTFFNTMzNjA0REU1MzE3MDQ5RTUzMzMwRTEwOEU0RjUyRjc1MzMwMTgwMEJBMjA1RTQzM0Y1MkZDMjA1RTRGNTMzRTRGNTEzN0UwMDdCMDA3NDI0MjUxM0Y5RUUzNDAwRkExMjBDRURGRjc0MDAyNTEzRjU4MkQ4Cis6NDAwOTA2MDBFNDM0N0RGNTgzRUZGMDA1MTNFNTEzQjQwQ0RCOTA3RkJENzQwQ0YwNzUzMTEwMjI5MDdGRTlFMDEyMEQ0NTBBMDMwMDBBNzcwMTBBRTMwMzA5NDEwNjA5RjQwODA5RTgwOTA5RDAwQTA5REYwQjAwMDAwQjMyOTA3RkVCRTAyNEVCCis6NDAwOTQ2MDBGRTYwMTYxNDYwNTcyNDAyNzA3Njc0MEY5MDdGRDRGMDc0NjQ5MDdGRDVGMDAyMEIzOTkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODJCNTc1ODMwRkVGRjA3NTgyQUU3NTgzMEZGMDc1ODJBNzc1ODMwRkYwNzU4MkEwNzU4M0JBCis6NDAwOTg2MDAwRkYwOTA3RkVBRTAwNDc1ODI3Qjc1ODMwRkYwNzQwRjkwN0ZENEYwNzQ3NjkwN0ZENUYwMDIwQjM5OTA3RkVBRTBGRjEyMEU0OEVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjAwMjBCMzk5MDdGQjRFMDQ0MDFGMDAyMEIzOUQ0Cis6NDAwOUM2MDA5MDdGQjRFMDQ0MDFGMDAyMEIzOTkwN0YwMEU1MTlGMDkwN0ZCNTc0MDFGMDAyMEIzOTkwN0ZFQUUwRjUxOTAyMEIzOTkwN0ZFQUUwRjUxODEyMEQ2QjAyMEIzOTkwN0YwMEU1MThGMDkwN0ZCNTc0MDFGMDAyMEIzOTkwN0ZFODIyCis6NDAwQTA2MDBFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjEzRTQzM0ZGMjVFMEZGQTIxN0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjM5RTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjBCMzk5MDdGRUNFMEY0NTQ4MEI2Cis6NDAwQTQ2MDBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMzk5MDdGQjRFMDQ0MDFGMDAyMEIzOTkwN0ZFOEUwMjRGRTYwMUQyNDAyNjAwMzAyMEIzOTA0Cis6NDAwQTg2MDA5MDdGRUFFMEI0MDEwNUMyMTMwMjBCMzk5MDdGQjRFMDQ0MDFGMDAyMEIzOTkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRkNDCis6NDAwQUM2MDAxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjEzODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwN0ZFQTM2Cis6NDAwQjA2MDBFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyMjAxNTAzMDIwQjNFCis6NDAwQjQ2MDBEM0U1MzE2MDAyMTUzMUU1MzY2MDRGNjUzNDcwNDVFNTMyRjQ2MDAyMDUzMkU1MzJDMzk1NDE0MDNEQzJBRjMwMDExODkwN0ZCOEUwMjBFMTI3OTA3RkI3RTUzNkYwQzIwMUU0RjUzNkY1MzJGNTM0ODAxNjkwN0ZCNkUwMjBFMTNECis6NDAwQjg2MDAwRjkwN0ZCOUU1MzZGMEQyMDFFNEY1MzZGNTMyRjUzNEQyQUY4MDA2ODUzNjM0RTRGNTMyRTUyQzYwMkYyMDBDMDc5MDdGOUJFMDMwRTAwRkU1MkQ2MDA2RTRGNTJENDMzMzAxRTRGNTMwODAxNEU1MzBEMzk1NDI1MDBERTUzMERCCis6NDAwQkM2MDBCNTQyMDY3NTJEMDE0MzMzMDEwNTMwQzIwQzIyNzUxMjAxQzIxNEMyMThDMjEzQzIxN0MyMTVDMjEyRDIxNkU0RjUxODkwN0Y5MkUwNTRGREYwOTA3RkFFRTBGRkQzOTIxM0U0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NERCCis6NDAwQzA2MDAwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MERGMEQyQUZEMkJDRDIxOTEyMEVEQUMyMTQzMDE1MDMxMjA1ODA5MDdGRDhFMDY1MTE2MDA4RTBGNUNBCis6NDAwQzQ2MDAxMTEyMEI0MTgwRUEzMDE0MDdDMjE0MTIwOTFFODBFMDMwMThEREMyMTgxMjAwMjY4MEQ2MjI3ODdGRTRGNkQ4RkQ3NTgxNTAwMjBDQTgwMjBCRDRFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODNCCis6NDAwQzg2MDA1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMEUwNEU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDhFCis6NDAwQ0M2MDA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMjQyCis6NDAwRDA2MDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMEUxCis6NDAwRDQ2MDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERkU0OTA3RjkzRjA5MDdGOUM3NDMwRjA5MDdGOTY3NDEwRjA5MDdGOTQ3NDAxRjA5MDdGOUQwNEUyCis6NDAwRDg2MDBGMDkwN0Y5Nzc0MjBGMDkwN0Y5NTc0MDNGMDkwN0Y5RTc0ODRGMEU0OTA3Rjk4RjA5MDdGQzdGMDkwN0ZDOUYwOTA3RkNCRjA3NTk4NDA0M0E4MTA5MDdGREU3NDFGRjA5MDdGREY3NDBGRjBEMjE1MjJFNDkwN0Y5NUYwOTA3RkY3Cis6NDAwREM2MDA5NEYwOTA3RjkzRjA5MDdGOURFMDQ0MDJGMDkwN0Y5N0UwNDQwMkYwOTA3RjlERTA1NEZERjA5MDdGOUM3NDIwRjBFNDkwN0Y5NkYwOTA3RjlERTA0NEZERjBFNDkwN0Y5N0YwOTA3RjlFNzRGRkYwRTQ5MDdGOThGMDIyMEMyNEQwCis6NDAwRTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTMwMDAwMTMzMDEwMTMyMDAwMTM3MDAwMTUwMDAwMTM2MDAwMTM0MDBDMTA1QzEwQ0MxMDNDMTBGQzEwNEMxMEVDMTExQzEwQUMxMTBDMTA4QzEwOUMxMDZDMTAwQzEwREMxODFDMTA5Cis6NDAwRTQ2MDA4MjAwOEYxM0U0RjUxNDc1MTVGRjc1MTYwRjc1MTdCOUFCMTVBQTE2QTkxNzkwMDAwMTEyMEQwNkI0MDMxREFGMTQwNTE0RUZCNTEzMDEyMjEyMENFRDdFMDAyOUZGRUUzQUE5MDc3NTE1RkZGNTE2ODkxNzgwRDQ3QjAwN0EwMDZECis6NDAwRTg2MDA3OTAwMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE0NTM5MUM3Cis6NDAwRUM2MDBFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMTkwNEUwNDQwMkYwN0ZGNDdFMDExMjAwMDM5MDdGRDZFMDU0RjdGMEUwNDQwNEYwMjIwMDAyMEVCMzAwMDIwRkMwCis6NDAwRjA2MDAwNDAwMDIwRTg5MDAwMjBGMEZDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOUI5Cis6NDAwRjQ2MDAyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDAwMDQwQ0QwNjA3MDEwMTAwMDEwMjAwMDIwOTAyNDMwMDAxMDEwMDgwMzIwOTA0MDAwMDA3RkYwMDhBCis6NDAwRjg2MDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNDAzMDkwNDEwMDM0QjAwNjUwMDc5MDA3MzMyCis6MTcwRkM2MDAwMDcwMDA2MTAwNkUwMDBFMDM1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAwMDAwNjQKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTlxaS5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cWkuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1M2JmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cWkuSEVYCkBAIC0wLDAgKzEsMTAxIEBACis6MDMwMDMzMDAwMjAwMUFBRQorOjA0MDAxQTAwNTNEOEVGMzI5NgorOjEwMDAwMzAwOEUxMThGMTJFNTEyMTUxMkFFMTE3MDAyMTUxMTRFNjA4QQorOjA3MDAxMzAwMDUxMjBGODQ4MEVFMjJBQworOjAzMDAyMzAwMDIwMDQ2OTIKKzoxMDAwNDYwMEMwRTBDMDgzQzA4MkMwODY3NTg2MDBDMEQwNzVEMDA4NjcKKzoxMDAwNTYwMDMwOTkwRTMwMEIwN0EyMEU5MjlCODUzNjk5QzI5OUQyMjMKKzoxMDAwNjYwMDEyMjAxMjAzMDIwNDFFQzIxMjIwMDMwMzAyMDI0RTIwQjMKKzoxMDAwNzYwMDBCMDMwMjAxMjZFNTNBQzM5NTUzNTAzQzIwMEMzNDIwNkQKKzoxMDAwODYwMDA5MzE5MDdGOUJFMDU1Mzg3MDI5MzAxMDEyQUYzQTA1NDAKKzoxMDAwOTYwMDNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIwRUFGNzYKKzoxMDAwQTYwMDNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTM2NUUKKzoxMDAwQjYwMDAyMDQxQ0MyMEIwMjA0MUM5MDdGQzdFNEYwQzIwMzMwOEEKKzoxMDAwQzYwMDBEMENDMjBEOTA3RkJCMDRGMEMyMEIwMjA0MUM5MDdGODYKKzoxMDAwRDYwMEM4RTAzMEUxMDVDMjBCMDIwNDFDOTA3RkM5RTBGNTUzNkQKKzoxMDAwRTYwMDkwN0RDMEUwMTM5MjBENzUxNkZGMjAwQzJCMjAwOTI4NzkKKzoxMDAwRjYwMDkwN0Y5QkUwNTUzODcwMjAzMDEwMTE5MDdEQzFFMDEzNDEKKzowMzAwNDMwMDAyMEUwMEFBCis6MDMwMDAwMDAwMjAwMjZENQorOjBDMDAyNjAwNzg3RkU0RjZEOEZENzU4MTU0MDIwQjI4QTkKKzo0MDAxMDYwMDkyMEVBM0UwRjUzNjc1M0EwMzAyMDQxQzc1M0EwMjkwN0RDMUUwRjUzNjAyMDQxQzc1M0EwMUMyMEIwMjA0MUNFNTNBQzM5NTUzNTAwMzAyMDFDOTkwN0ZDNkUwMzBFMTA3QzIxNEMyMDUwMjA0MUM5MDdGQzdFMEY1NTM5MDdFQ0IKKzo0MDAxNDYwMDQwRTAxMzkyMEQ3NTE2RkYyMDBDNzAyMDA5NkQ5MDdGOUJFMDU1Mzg3MDY1MzAxMDEwOTA3RTQxRTAxMzkyOUJBM0UwRjU5OTc1M0EwMzgwMDk5MDdFNDFFMEY1OTk3NTNBMDJFNTNBQzM5NTUzNDAxNzkwN0ZDN0U0RjBDMjAzRjYKKzo0MDAxODYwMDIwMEQwMzAyMDQxQ0MyMEQ5MDdGQkIwNEYwMDIwNDFDMzAxMDEyQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MjBFQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRjUzNkQyMEIwMjA0MUM3NTNBMDFDMjE0QTMKKzo0MDAxQzYwMDAyMDQxQzMwMEMwMzAyMDI0OTIwMDk3NzkwN0Y5QkUwNTUzODcwNkYzMDEwMTJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTAxMzkyOUJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzRTBGNTk5RTUzQUMzOTU1MzQwQUIKKzo0MDAyMDYwMDE3OTA3RkM3RTRGMEMyMDMyMDBEMDMwMjA0MUNDMjBEOTA3RkJCMDRGMDAyMDQxQzMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIwRUFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MzZEMjBCNDQKKzo0MDAyNDYwMDAyMDQxQ0MyMTQwMjA0MUMyMDBCMDMwMjAyRkZFNTNBQzM5NTUzNTAzQzIwMEMzNDIwMDkzMTkwN0Y5QkUwNTUzODcwMjkzMDEwMTJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMEVBRjNBMDUzQTc0QzAyRkY1RjkKKzo0MDAyODYwMDgyRTQzNDdERjU4M0UwRjUzNjAyMDQxQ0MyMEIwMjA0MUM5MDdGQzlFNEYwRDIwMzMwMEQwQ0MyMEQ5MDdGQkIwNEYwQzIwQjAyMDQxQzkwN0ZDNkUwMzBFMTA1QzIwQjAyMDQxQzkwN0ZDN0UwRjU1MzkwN0U0MEUwMTM5MjBEQUYKKzo0MDAyQzYwMDc1MTZGRjIwMEMyQjIwMDkyODkwN0Y5QkUwNTUzODcwMjAzMDEwMTE5MDdFNDFFMDEzOTIwRUEzRTBGNTM2NzUzQTAzMDIwNDFDNzUzQTAyOTA3RTQxRTBGNTM2MDIwNDFDNzUzQTAxQzIwQjAyMDQxQ0U1M0FDMzk1NTM1MDAzODEKKzo0MDAzMDYwMDAyMDNBMjkwN0ZDOEUwMzBFMTA3QzIxNEMyMDUwMjA0MUM5MDdGQzlFMEY1NTM5MDdEQzBFMDEzOTIwRDc1MTZGRjIwMEM3MDIwMDk2RDkwN0Y5QkUwNTUzODcwNjUzMDEwMTA5MDdEQzFFMDEzOTI5QkEzRTBGNTk5NzUzQTAzN0EKKzo0MDAzNDYwMDgwMDk5MDdEQzFFMEY1OTk3NTNBMDJFNTNBQzM5NTUzNDAxNzkwN0ZDOUU0RjBEMjAzMjAwRDAzMDIwNDFDQzIwRDkwN0ZCQjA0RjAwMjA0MUMzMDEwMTJBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMEVBRjNBODEKKzo0MDAzODYwMDA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUzNkQyMEIwMjA0MUM3NTNBMDFDMjE0MDIwNDFDMjAwQzc1MjAwOTcyOTA3RjlCRTA1NTM4NzA2QTMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTI5QkFGMDIKKzo0MDAzQzYwMDNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTk5RTUzQUMzOTU1MzQwMTM5MDdGQzlFNEYwRDIwMzMwMEQzNUMyMEQ5MDdGQkIwNEYwODAyQzMwMTAxMkFGM0EwNTNBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIwRUFGM0QKKzo0MDA0MDYwMDNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM2RDIwQjgwMDJDMjE0RDIwMTIwOTgwMzAyMDU1QUMyOTgyMDAyMDMwMjA0QzcyMDE2MjdBRjM5MDUzOTc0ODAyRkY1ODJFNDM0N0VGNTgzRTU5OUYwMzAxMDREQUYzOTA1QzgKKzo0MDA0NDYwMDM5NzQ4MDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTEwRTUxMEI1NDcwNEQyMDk4MDJFRTUxMEI1NDYwNEMyMDk4MDI1QUYzOTA1Mzk3NDgwMkZGNTgyRTQzNDdFRjU4M0U1MTBGMDMwMTAxMUFGMzkwNTM5NzQ4MDJGMTEKKzo0MDA0ODYwMEY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwRkU1MzlDMzk1NDM1MDAzMDIwNTU4OTA3RkI4RTAzMEUxMTZFNTM5QzM5NDQwNTAwMzAyMDU1ODE1MzkxNTM5MDUyQjQzMzQwMTAyMDU1ODkwN0ZCN0U1MzlGMDc1MzkwMEMyMDIwMjA1RDMKKzo0MDA0QzYwMDU4MjAxNjI3QUYzOTA1Mzk3NDAwMkZGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMTA0REFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDNBODU5OTEwRTUxMEI1NDcwNEQyMDk4MDJFRTUxMEI1NDYwNEMyMDk4MDI1NzMKKzo0MDA1MDYwMEFGMzkwNTM5NzQwMDJGRjU4MkU0MzQ3RUY1ODNFNTEwRjAzMDEwMTFBRjM5MDUzOTc0MDAyRkY1ODJFNDM0N0VGNTgzRTU5OEYwRDIwRkU1MzlDMzk1NDM0MDI0OTA3RkI2RTAzMEUxMTJFNTM5QzM5NDQwNDAxNjE1MzkxNTM5MDkKKzo0MDA1NDYwMDA1MkI0MzM0MDE4MDBCOTA3RkI5RTUzOUYwNzUzOTAwRDIwMkQyMDEzMDAxMDVDMjAxMDIwMDU2RDBEMEQwODZEMDgyRDA4M0QwRTAzMjkwN0ZCQ0UwMjBFMTUxRTUzNDYwNERFNTMxNzA0OUU1MzQzMEUxMDhFNEY1MkY3NTM0RDQKKzo0MDA1ODYwMDAxODAwQkEyMDhFNDMzRjUyRkMyMDhFNEY1MzRFNEY1MTE3RTAwN0IwMDc0MjQyNTExRjlFRTM0MDBGQTEyMEQwNkZGNzQwMDI1MTFGNTgyRTQzNDdERjU4M0VGRjAwNTExRTUxMUI0MENEQjkwN0ZCRDc0MENGMDc1MzExMDkwQ0QKKzo0MDA1QzYwMDdGQ0FFMDMwRTEwMzAyMDZGM0U0RjUxMTc0NDAyNTExRjU4MkU0MzQ3REY1ODNFMEZGRTUxMTdDMDA3QjAwMjQzQkY5RUMzNDAwRkFFRjEyMEQxRjA1MTFFNTExQjQxOERCRTUzQjYwMTE3NUM5MjA3NUM4MzY4NTNDQ0E4NTNEOTgKKzo0MDA2MDYwMENCRTQ5MDdGOUZGMEU1M0UxMzkyMTA5MjlGODUzRjM4RTU0MDEzOTIxNkU1NDE2MDA5OTA3Rjk4RTA1NEZCRjA4MDA3OTA3Rjk4RTA0NDA0RjBFNTQyNjAwOTkwN0Y5OEUwNTQ3RkYwODAwNzkwN0Y5OEUwNDQ4MEYwRTU0ODYwQkUKKzo0MDA2NDYwMDBCQzIwQ0MyMDk5MDdGOTVFMDQ0MDJGMEU1NDk2MDBDRDIwOTQzMzQwMTkwN0Y5NUUwNDQwMkYwRTU0QTYwMERDMkFGQzIwQkQyMDBFNEY1NTNGNTNBRDJBRkU1NEI2MDA1MzAxNjAyRDIwOUU1NEM2MDE1OTA3Rjk1RTA1NEZEQjQKKzo0MDA2ODYwMEYwOTA3RjlFRTA0NDAyRjA5MDdGOThFMDU0RkRGMEU1NEQ2MDBBRDI5Q0MyOTg3NTJDMDE3NTMxMUVFNTRFNjAwN0MyOUNFNEY1MzlGNTJDRTU0RjYwMDNFNEY1MzlFNTUwNjAwMkQyMDdFNTUxNjAwQUU1NEQ3MDAyRjUzMUU1NUMKKzo0MDA2QzYwMDUxNDIzNEU1NTI2MDFGOTA3RkQ3NzQxMUYwNzQzMUYwNzQxMkYwNzQzMkYwNzQxM0YwNzQzM0YwNzQxNEYwNzQzNEYwRDIwM0QyMDJEMjA4RTQ5MDdGQ0JGMEEyMENFNDMzRkY2NTI5NjAwNThGMjk0MzM0MDFBMjA5RTQzM0ZGODQKKzo0MDA3MDYwMDY1MkE2MDA1OEYyQTQzMzQwMTkwN0Y5QkUwRkY1NDA4NjQwOEZFNjUyNTYwMDU4RTI1NDMzNDAxRUY1NDEwNjQxMEZFNjUyNjYwMDU4RTI2NDMzNDAxRUY1NDQwNjQ0MEZFNjUyNzYwMDU4RTI3NDMzNDAxRUY1NDIwNjQyMEZFMUMKKzo0MDA3NDYwMDY1Mjg2MDA1OEUyODQzMzQwMTkwN0Y5QUUwNTQ0MDY0NDBGRTY1MkU2MDA1OEUyRTQzMzQwMTMwMDczNUMyQUYzMDAyMTg5MDdGQjhFMDIwRTEyN0U1Mzk2MDA5OTA3RkI3RjBFNEY1MzlDMjAyQzIwNzgwMTY5MDdGQjZFMDIwM0IKKzo0MDA3ODYwMEUxMEZFNTM5NjAwOTkwN0ZCOUYwRTRGNTM5RDIwMkMyMDdEMkFGMjAwNTNEMzAwMzFFOTA3RkM2RTAyMEUxMzM5MDdFNDBFMDEzOTIwRDc1M0EwMTkwN0ZDN0UwRjU1M0QyMDU3NTE2RkY4MDFDOTA3RkM4RTAyMEUxMTU5MDdERDMKKzo0MDA3QzYwMEMwRTAxMzkyMEQ3NTNBMDE5MDdGQzlFMEY1NTNEMjA1NzUxNkZGMjAxNDMzMjAwMDA2RTUzQTY1NTM3MDJBMzAwNTFBMzAwMzA5RTQ5MDdGQzdGMEMyMDM4MDA3RTQ5MDdGQzlGMEQyMDNDMjA1RTRGNTUzRjUzQTMwMEQwQUMyNjUKKzo0MDA4MDYwMDBEQzIwMDkwN0ZCQjc0MDFGMDMwMTQwMzAyMDkxNDIwMDUwMzAyMDkxNDMwMEMwMzAyMDkxNDMwMDkwMzAyMDkxNDkwN0Y5QkUwNTUzODYwMDMwMjA5MTQzMDAzNjEzMDEwMTJBRjNBMDUzQTc0NDAyRkY1ODJFNDM0N0VGNTgzM0YKKzo0MDA4NDYwMEUwMTM5MjFCQUYzQTA1M0E3NDQwMkZGNTgyRTQzNDdFRjU4M0UwRkVFNTNBQzM5NTUzNTAyQTMwMTAxMkFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIwRUFGM0EwNTNBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1NDYKKzo0MDA4ODYwMDM2RDIwQjgwNkFDMjBCRTQ5MDdGQzdGMEMyMDM4MDVGMzAxMDEyQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjFCQUYzQTA1M0E3NEMwMkZGNTgyRTQzNDdERjU4M0UwRkVFNTNBQzM5NTUzNTAyQTMwMTAxMkFGRTcKKzo0MDA4QzYwMDNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTAxMzkyMEVBRjNBMDUzQTc0QzAyRkY1ODJFNDM0N0RGNTgzRTBGNTM2RDIwQjgwMDlDMjBCRTQ5MDdGQzlGMEQyMDMzMDEwMDRBMjFCOTI5QkQyMTRDMkFGOEU5OTIwMEIwRDMwMUQKKzo0MDA5MDYwMDBEMEFDMjBEQzIwMDkwN0ZCQjc0MDFGMEQyQUYyMjkwN0ZFOUUwMTIwRDMxMEExMTAwMEE3RTAxMEFEQjAzMDkzODA2MEEwMjA4MDlGNjA5MDlERTBBMDlFRDBCMDAwMDBCMTk5MDdGRUJFMDI0RkU2MDE5MTQ2MDVBMjQwMjYwNDEKKzo0MDA5NDYwMDAzMDIwQjE5NzQwRDkwN0ZENEYwNzQ4NzkwN0ZENUYwMDIwQjIwOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MkQ4NzU4MzBERUZGMDc1ODJEMTc1ODMwREYwNzU4MkNBNzU4MzBERjA3NTgyQzM3NTgzMERGMDkwN0ZFQUUwNzgKKzo0MDA5ODYwMDA0NzU4MjlFNzU4MzBERjA3NDBEOTA3RkQ0RjA3NDk5OTA3RkQ1RjAwMjBCMjA5MDdGRUFFMDcwMEI3NTExRkY3NTEyMEQ3NTEzREM4MDFCOTA3RkVBRTBCNDAxMEI3NTExRkY3NTEyMEQ3NTEzRTA4MDA5NzUxMUZGNzUxMjBEMTkKKzo0MDA5QzYwMDc1MTNGMEFBMTJBOTEzQUUwMkVFOTA3RkQ0RjBBRjAxRUY5MDdGRDVGMDAyMEIyMDkwN0YwMEU1MTVGMDkwN0ZCNTc0MDFGMDAyMEIyMDkwN0ZFQUUwRjUxNTAyMEIyMDEyMENCMTkwN0ZFQUUwRjUxNDAyMEIyMDkwN0YwMEU1QkYKKzo0MDBBMDYwMDE0RjA5MDdGQjU3NDAxRjAwMjBCMjA5MDdGRThFMDI0N0Y2MDI3MTQ2MDM0MjQwMjYwMDMwMjBCMTlBMjE3RTQzM0ZGMjVFMEZGQTIxOUU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjIwRTQ5MDdGMDBGMEEzQjcKKzo0MDBBNDYwMEYwOTA3RkI1NzQwMkYwMDIwQjIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCMjA5MDdGRThFMDI0RkU2MDE3MjYKKzo0MDBBODYwMDI0MDI2MDAzMDIwQjIwOTA3RkVBRTA2NDAxNjAwMzAyMEIxOUMyMTcwMjBCMjA5MDdGRUFFMDcwNzY5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRDYKKzo0MDBBQzYwMEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGRDdGMEUwNDQyMEYwODA0NTkwN0ZFOEUwMjRGRTYwMTAyNDAyNzAzOTkwN0ZFQUUwNjQwMTcwMkFEMjE3ODAyRDkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTYKKzo0MDBCMDYwMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyQzIxMEU0RjUxNEY1MzRDMjA5QzIwQ0MyMEJDMjE0QzIwREMyMTZDMjExQzIwN0MyMTJDMjBGQzIwOEY1MzgKKzo0MDBCNDYwMDM1RjUzOUY1NTNGNTNBRjUzM0Y1MzBGNTJGRjUyRUY1MkRGNTJDRjUyQkY1MkFGNTI5RjUyOEY1MjdGNTI2RjUyNUY1MjRDMjA1QzIxOEMyMUFDMjE3QzIxOUMyMTVDMjA0RDIxM0MyMDZDMjAxOTA3RjkyRTA1NEZERjBEMkU4MjAKKzo0MDBCODYwMDQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBGRjA5MDdGQUM3NDBFRjBEMkFGRDJCQ0QyMUIxMjBGNUZDMjE4MzAwNDAzMTYKKzo0MDBCQzYwMDEyMDU2RDMwMDQyQTMwMDYyN0MyMDZFNTE2NjAxNjE1MTY5MDdGRDhFMDMwRTYwNDdGMDA4MDAyN0YyMDkwN0Y5NkVGRjA4MDA2OTA3Rjk2NzQyMEYwMTIwQzBCODBDRDMwMTgwN0MyMTgxMjA5MTU4MEMzMzAxQUMwQzIxQTEyOEUKKzo0MDBDMDYwMDBGQkI4MEI5MjJFNTMxNjAwMjE1MzFFNTM5NjA1NTY1MzU3MDRCRTUzM0Y0NjAwMjA1MzNFNTMzQzM5NTQ0NDA0M0MyQUYzMDAyMUI5MDdGQjhFMDIwRTEyRDkwN0ZCN0U1MzlGMEMyMDJFNEY1MzlGNTMzRjUzNTc1MTZGRjgwMkQKKzo0MDBDNDYwMDE5OTA3RkI2RTAyMEUxMTI5MDdGQjlFNTM5RjBEMjAyRTRGNTM5RjUzM0Y1MzU3NTE2RkZEMkFGODAwNjg1MzkzNUU0RjUzM0U1MkM2MDMwMjAwRjA3OTA3RjlCRTAzMEUwMEZFNTJENjAwNkU0RjUyRDQzMzQwMUU0RjUzMDgwMDAKKzo0MDBDODYwMDE0RTUzMEQzOTU0NTUwMERFNTMwQjU0NTA2NzUyRDAxNDMzNDAxMDUzMEMyMEYyMjkwN0ZEOUUwMzBFMjA0N0YwMDgwMDI3RjIwOTA3Rjk2RUZGMDIyRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMDkwN0Y5Njc0MjBGMDkwN0Y5NDc0OEEKKzo0MDBDQzYwMDAxRjA5MDdGOUQ3NEJGRjA5MDdGOTc3NDg2RjA5MDdGOTU3NDAzRjA5MDdGOUU3NDg0RjA5MDdGOThGMEU0OTA3RkM3RjA5MDdGQzlGMDkwN0ZDQkYwNzU5ODQwNDNBODEwOTA3RkRFNzQxRkYwOTA3RkRGNzQwRkYwRDIwNDIyMUEKKzo0MDBEMDYwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRUIKKzo0MDBENDYwMEY1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREZDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzIwMDAwMDAwMDAwN0IKKzo0MDBEODYwMDAwMTIwMTEwMDFGRjAwMDA0MENEMDYwQzAxMDEwMDAxMDIwMDAyMDkwMjQzMDAwMTAxMDA4MDMyMDkwNDAwMDAwN0ZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTgxMDI0MDAwMTAKKzo0MDBEQzYwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDQwMzA5MDQxMDAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDBFMDM1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAwMDAwMDIwRUEyMDAwMjBFNDEKKzo0MDBFMDYwMDdCMDAwMjBENTcwMDAyMEVDOTAwMDIwRTEwMDAwMjBFMTQwMDAyMEUxODAwMDIwRTFDMDAwMjBFRjAwMDAyMEUyNDAwMDIwRjE1MDAwMjBFMkMwMDAyMEYzQUU0OTA3Rjk1RjA5MDdGOTRGMDkwN0Y5M0YwOTA3RjlERTA0NDAyMEEKKzo0MDBFNDYwMEYwOTA3Rjk3RTA0NDAyRjA5MDdGOUM3NDEwRjBFNDkwN0Y5NkYwOTA3RjlENzRGRUYwMzAxNzA0N0Y4MDgwMDI3RjAwOTA3Rjk3RUZGMEU0OTA3Rjk1RjA5MDdGOUVGMDkwN0Y5OEYwMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwMEUKKzo0MDBFODYwMDg2NzU4NjAwNTM5MUVGOTA3RkFCNzQwMkYwRDIwNkQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxODUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRUIKKzo0MDBFQzYwMEQwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMUE1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwN0ZBOTc0QzIKKzo0MDBGMDYwMDAyRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDUzOTFFRjkwN0ZBOTc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2RDcKKzo0MDBGNDYwMDc1ODYwMDUzOTFFRjkwN0ZBOTc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3RkQ2RTA1NEZCRjBFMDQ0MDhGMDMwMUIwNEUwNDQwMkYwN0ZGNDdFMDExMjAwMDM5MDdGRDZFMDU0RjdGMEUwNDQwNEYwMjI3NDAwQjkKKzo0MDBGODYwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyOTA3RkQ2RTA0NDAxRjA3RjBEN0UwMDEyMDAwMzkwN0ZENkUwNTRGRUYwMjIxMjBFMzMxMjBGOTU5MDdGRDZFMDMwRkEKKzowOTBGQzYwMEU3MDMxMjBGQTUxMjBDQjEyMjgxCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTE5cXcuSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXF3LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YTg5MTAyCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXF3LkhFWApAQCAtMCwwICsxLDE0MiBAQAorOjAzMDAzMzAwMDIwMDJEOUIKKzowNDAwMkQwMDUzRDhFRjMyODMKKzoxMDAwNDYwMDMwMTAxOTEyMEUwRkVGQzM5NTE0NDAwMzAyMDBERjkwMTMKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjEwQzIwQjAyMDBERjMwMEQzRTkwNkMKKzoxMDAwNjYwMDdGQzZFMDIwRTE3MzEyMEUwRkVGQzM5NDQwNTA2QTkwRjIKKzoxMDAwNzYwMDdFNDBFMDEzOTIxMDkwN0ZDN0UwMTRGNTM2MjAwQjExRjYKKzoxMDAwODYwMDYwMEZGNTI0N0U3RTdGNDE3NTI5N0U3NTJBNDExMjA5MEYKKzoxMDAwOTYwMDEwQzIwREU0OTA3RkM3RjA3NTI2RkY4MDNDOTA3RkM4QTQKKzoxMDAwQTYwMEUwMjBFMTM1MTIwRTBGRUZDMzk0NDA1MDJDOTA3REMwMzYKKzoxMDAwQjYwMEUwMTM5MjEwOTA3RkM5RTAxNEY1MzYyMDBCMTE2MDBGMDMKKzoxMDAwQzYwMEY1MjQ3RTdEN0ZDMTc1Mjk3RDc1MkFDMTEyMDkxMEQyNUUKKzoxMDAwRDYwMDBERTQ5MDdGQzlGMDc1MjZGRjkwN0ZCNkUwMzBFMTAzMEUKKzoxMDAwRTYwMDAyMDE2ODEyMENGRjhGMzYxMjBFMUI4RjExRTUzNkMzMDQKKzoxMDAwRjYwMDk1MTM1MDBGMTIwRERFRUYzMEUwMDhFNTExMjBFNzAzRUYKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjBFMDBBQQorOjEwMDAwMzAwQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA2RQorOjEwMDAxMzAwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDBBQgorOjBBMDAyMzAwODREMDg1RDA4MkQwODNEMEUwMzI3MworOjAzMDAwMDAwMDIwOUM1MkQKKzo0MDAxMDYwMDMwMTM1RkMyMTNFNTM2NjA1OUI0ODAwMzQzMTEwMkU1MTEzMEU3MjRFNTM2RDM5NDIwNDAwMzc1MzYyMDg1MzYyNDdFN0U3RjgwNzUyOTdFNzUyQTgwMTIwQjlBRTUzNjI1RTA5MDdGQjdGMDgwMkFFNTM2RDM5NDNGNDAwMzc1M0IKKzo0MDAxNDYwMDM2M0Y4NTM2MjQ5MDdFODBFNTExRjA3RTdFN0Y4MTc1Mjk3RTc1MkE4MTEyMDkzNUU1MzYwNDkwN0ZCN0YwNzUyNkZGOTA3RkNFRTAzMEUxMDYyMDBFMDMwMjAzQzRFNEY1MzU3NDQwMjUzNUY1ODJFNDM0N0NGNTgzRTBGRkU1ODkKKzo0MDAxODYwMDM1N0MwMDdCMDE3QTdFNzkwMDI0MDBGOUVDMzQ3RUZBRUYxMjBBOTcwNTM1RTUzNUI0MjBENzkwN0UwMEUwNjA2RTdGMDE5MDdFMTFFMEZEMTIwQ0RBOTA3RTAxRTBGRjEyMEMxQzkwN0UwMkUwRkYxMjBDNDJEMjExRDIxMjc1NjIKKzo0MDAxQzYwMDM2MDQ5MDdFMDNFMDYwMDVDMjEyNDMzNkMwOTA3RTA0RTBCNDAxMDdDMjEyNDMzNjBCODAxMDkwN0UwNEUwNjAwN0MyMTE0MzM2MDk4MDAzNDMzNjAyN0YwM0FEMzYxMjBDREE0MzFBODA5MDdGOTg3NDE0RjA5MEMwMDBFNTFBNzIKKzo0MDAyMDYwMEYwOTA3Rjk4NzQxMkYwRTUxNzQ0MDY5MEMwMDBGMDkwN0UwNUUwNjAxMkEzRTA1NDNGRjUxOTkwN0Y5ODc0MTNGMDkwQzAwMEU1MTlGMDkwN0UwN0UwNjA0MjkwN0UxM0UwNjAwNTQzMTYwNDgwMDM1MzE2RkJFNEZGQUQxNjEyNDcKKzo0MDAyNDYwMDBDREE5MDdFMDhFMDYwMDU0MzE4ODA4MDAzNTMxODdGNTMxOEZDOTA3RTA5RTA2MDExNDMxODAyQTNFMEZGMTIwQzhFOTA3RTBCRTBGRjEyMENCNEFGMTgxMjBDNjg5MDdFMEVFMDYwMThBM0UwNjAwNTQzMUEwMTgwMDM1MzFBRDQKKzo0MDAyODYwMEZFOTA3Rjk4NzQxNEYwOTBDMDAwRTUxQUYwOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzFBMDI4MDAzNTMxQUZEOTA3Rjk4NzQxNEYwOTBDMDAwRTUxQUYwOTA3RTEyRTBGNTEzQTNFMDEzOTIxNEEzRTBGNTE0QTNFMDYwMDU0MzFBQzMKKzo0MDAyQzYwMDEwODAwMzUzMUFFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1MUFGMDkwN0UxNkUwNjAzMjUzMTlCRjkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjBERDJFRjU0RkU5MEMwMDBGMDUzMTZGREU0RkZBRDE2MjEKKzo0MDAzMDYwMDEyMENEQUU0RjUwRUY1MEREMjBGOTA3RTE3RTA2MDBGNDMxNjAyRTRGRkFEMTYxMjBDREE3NTBEMDFEMjBGOTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTUxNzQ0MDQ5MEMwMDBGMEQyMEI5MDdFMTlFMDYwMTE0MzE5NDA5MDdGMEQKKzo0MDAzNDYwMDk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzMTZGRUU0RkZBRDE2MTIwQ0RBNzUwRjAxRDIwRjkwN0UxQkUwNjAwRjQzMTYwMUU0RkZBRDE2MTIwQ0RBRTRGNTBGRDIwRjkwN0UxQ0UwNjAwRTkwN0Y5ODc0QTkKKzo0MDAzODYwMDEyRjBFNTE3NDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIxMzkwN0UxRUUwNjAwODc1MTAwMUU0RjUxMkQyMEY5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjBEQzIwRUU0OTA3RkNGRjAzMDE2NzQKKzo0MDAzQzYwMDcxRTUxMjYwMDIxNTEyRTUzMEQzOTQwMDQwMDQxNTMwODA2MDc1MzAwQTEyMEREMkVGNTQwMUY1MzY2NTBFNjAwNzg1MzYwRUQyMEY4MDExMTIwRTI3RUY1NDEwRjUzNjY1MDk2MDA1ODUzNjA5RDIwRjEyMEUyN0VGNTQ4MEY1QzEKKzo0MDA0MDYwMDM2NjUwQTYwMDU4NTM2MEFEMjBGMTIwRTI3RUY1NDIwRjUzNjY1MEI2MDA4ODUzNjBCMzAxMTAyRDIwRjEyMEUyN0VGNTQ0MEY1MzY2NTBDNjAwODg1MzYwQzMwMTIwMkQyMEYzMDE2MkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwMzUKKzo0MDA0NDYwMDYwMDlFMEY1MzI5MDdCNDJFMEY1MzM5MDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA1MjlFNTI3NzA0MDMwMEYzOUU1MTI3MDM1QzIwRkY1MzU3RTAwN0IwMDc0MDgyNTM1REIKKzo0MDA0ODYwMEY5RUUzNDAwRkExMjBBNTFGRjc0ODAyNTM1RjU4MkU0MzQ3QkY1ODNFRkYwMDUzNUU1MzVCNDA5REI5MDdGQzM3NDA5RjA3NTEyMTBFNEY1MTA3NTI3MDIyMkU1Mjc2NDAyNzAzNjMwMDUyRkMyMDVGNTM1N0UwMDdCMDA3NDJCOTYKKzo0MDA0QzYwMDI1MzVGOUVFMzQwMEZBMTIwQTUxRkY3NDgwMjUzNUY1ODJFNDM0N0JGNTgzRUZGMDA1MzVFNTM1QjQwNURCOTA3RkMzNzQwNUYwNzUyNzAzMjJFNTMyNjAzMzc1MzEwMzE1MzJFNEY1MzU3RTAwN0IwMDc0MzEyNTM1RjlFRTM0Q0QKKzo0MDA1MDYwMDAwRkExMjBBNTFGRjc0ODAyNTM1RjU4MkU0MzQ3QkY1ODNFRkYwMDUzNUU1MzVCNDAzREI5MDdGQzM3NDAzRjBFNEY1MjcyMjkwN0ZFOUUwMTIwQUE5MDYwODAwMDY3QzAxMDZFOTAzMDU0RDA2MDVGOTA4MDVFRDA5MDVENTBBMDIKKzo0MDA1NDYwMDA1RTQwQjAwMDAwNzM5OTA3RkVCRTAyNEZFNjAxNjE0NjA1MDI0MDI3MDZGNzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwNzQwOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3NDc1ODMxOUYwNkUKKzo0MDA1ODYwMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwNzQwOTA3RkVBRTBGRjEyMEIxQ0VBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjAwMjA3NDA5MDdGQjRFMDQ0OUIKKzo0MDA1QzYwMDAxRjAwMjA3NDA5MDdGQjRFMDQ0MDFGMDAyMDc0MDkwN0YwMEU1MjVGMDkwN0ZCNTc0MDFGMDAyMDc0MDkwN0ZFQUUwRjUyNTAyMDc0MDEyMDc0ODkwN0ZFQUUwRjUyMzAyMDc0MDkwN0YwMEU1MjNGMDkwN0ZCNTc0MDFGMDAyMTYKKzo0MDA2MDYwMDA3NDA5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjAxRTQzM0ZGMjVFMEZGQTIwN0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNzQwRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA3NDA5MDdGMkMKKzo0MDA2NDYwMEVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3NDA5MDdGQjRFMDQ0MDFGMDAyMDc0MDkwN0ZFOEUwMjRGRTYwMUUyNDAyMTYKKzo0MDA2ODYwMDYwMDMwMjA3NDA5MDdGRUFFMEI0MDEwNjEyMERGOTAyMDc0MDkwN0ZCNEUwNDQwMUYwMDIwNzQwOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwRjgKKzo0MDA2QzYwMDdGRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNjA5MDdGQjRFMDQ0MDFGMDgwNTc5MDdGRThFMDI0RkU2MDE5MjQwMjcwNEI5MDdGRUFFMEI0MDEwNTEyMERGNjgwM0Y5MDdGQjRFMDQ0ODcKKzo0MDA3MDYwMDAxRjA4MDM2OTA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjkKKzo0MDA3NDYwMEYwMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2NzQyMEYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxMEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MDg3RjAxN0IwMDc0MDgyRkY5RTQzNDAwMjMKKzo0MDA3ODYwMEZBRTQxMjBBOTcwRkJGMDlFRTc1MTMwMUU0RjUxMkY1MzBGNTExQzIwRkMyMTNDMjBFQzIwQkMyMTBDMjA0OTA3Rjk4NzQxM0YwNzUxOTAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjBDREE3RjEwOEYxODEyMEM2ODkwN0Y5ODc0QzIKKzo0MDA3QzYwMDEyRjA3RjAxOEYxN0VGNDQwNjkwQzAwMEYwMEZFNEZEMTIwQ0RBRTRGRjdFQTNBRDA2OEQxNjEyMENEQTkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMENEQTdGMDExMjBENkE3RjAzN0QwNzEyMENEQUU0RkZFNTE2N0IKKzo0MDA4MDYwMDU0N0ZGRDEyMENEQTEyMEUwRjhGMTVFNEZGRTUxNjQ0ODBGRDEyMENEQUU1MTUzMEU3MDRDMjA4ODAwMkQyMDg5MDdGOTg3NDE0RjA3NTFBODA5MEMwMDA3NDgwRjBEMjAzMjJEMjE1OTA3RjkyRTA0NDAyRjAxMjBERjlEMkU4N0MKKzo0MDA4NDYwMDQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFNzQwREYwRDJBRkQyMTYxMjBEMjRDMjAyRTRGNTI4RjUzMEMyMDlGNTIzQzIwMzkwRjcKKzo0MDA4ODYwMDdGQTEwNEYwOTA3RkQ4RTA2NTM0NjA0ODMwMDMwNUQyMTYxMjAwNDZFNTBGNjAyMkU1MjY2MDE2MTUyNjkwN0ZEOEUwMzBFNjA0N0YyMDgwMDI3RjMwOTA3Rjk2RUZGMDgwMUE5MDdGOTY3NDMwRjA4MDEyOTA3RkQ5RTAzMEUyRjgKKzo0MDA4QzYwMDA0N0YzMDgwMDI3RjIwOTA3Rjk2RUZGMDkwN0ZEOEUwRjUzNDgwMjAzMDAzMDdDMjE2MTIwMDQ2ODAxNkU1MEY3MDEyOTA3RkQ5RTAzMEUyMDQ3RjMwODAwMjdGMjA5MDdGOTZFRkYwMzAwMjA3QzIwMjEyMDUyQTgwODYzMDBBRTQKKzo0MDA5MDYwMDgzQzIwQTEyMEI1RDAyMDg4QTIyOTA3Rjk4NzQxMEYwQUYyNEU1MkFGNTgyRTUyOUY1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjI0RTUyQUY1ODJFNTI5RjU4M0MyQTMKKzo0MDA5NDYwMEFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjI0RTUyQUY1ODJFNTI5RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGQ0QKKzo0MDA5ODYwMDI0RTUyQUY1ODJFNTI5RjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjc4NEIKKzo0MDA5QzYwMDdGRTRGNkQ4RkQ3NTgxMzkwMjBBMEMwMjA4MzhFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMTEKKzo0MDBBMDYwMDA0MDgxMDIwNDA4MDkwMEQ4QkU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQjAKKzo0MDBBNDYwMEM4Q0FDNTgzQ0FERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1QkIKKzo0MDBBODYwMDgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOEYKKzo0MDBBQzYwMDkzNjg2MEVGQTNBM0EzODBERkU0OTA3RjkzRjA5MDdGOUM3NDIwRjAzMDAxMDNGRjgwMDI3RjAwOTA3Rjk2RUZGMEU0OTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwMzAwODExOTA3Rjk1RjA5MDdGOUU3NEZGRjA5MDdGMDUKKzo0MDBCMDYwMDk4NzQyMEYwMjJFNDkwN0Y5NUYwOTA3RjlFNzRERkYwRTQ5MDdGOThGMDIyOEYzNUU0RjUzNjc1MzdGRjc1MzgxOTc1Mzk4NkFCMzdBQTM4QTkzOTkwMDAwMTEyMEE2QUI0MDMxREFGMzYwNTM2RUZCNTM1MDEyMjEyMEE1MTdFNUMKKzo0MDBCNDYwMDAwMjlGRkVFM0FBOTA3NzUzN0ZGRjUzODg5Mzk4MEQ0N0IwMDdBMDA3OTAwMjI5MDdGRDhFMEY1MzUxMjBBQ0YyMDA4MDc5MDdGOTJFMDU0RkRGMDkwN0ZENkUwNDQ4MEYwMTIwOUI1OTA3RkQ2RTAzMEU3MEUzMDAxMDUxMjBEOUMKKzo0MDBCODYwMEJDODAwNjEyMEQ0OUVGNjBFMTkwN0Y5MkUwNDQwMkYwMTIwNzQ4MjIwNTJBRTUyQUFFMjk3MDAyMDUyOTE0RjU4MjhFODNFNTExRjAxMjAwMzYwNTJBRTUyQUFDMjk3MDAyMDUyOTE0RjU4MjhDODNFRkYwMTUyNEU1MjQ2MDA3QzcKKzo0MDBCQzYwMDEyMEUxQjhGMTE4MENEMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjAyNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjBBOUYKKzo0MDBDMDYwMDUzOTFFRjkwN0ZBQjc0MDhGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTk1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0RTgKKzo0MDBDNDYwMDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1N0MKKzo0MDBDODYwMDE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxOTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwRkUKKzo0MDBDQzYwMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTE5NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTBDMDAwRUZGMDkwN0Y5ODc0MTVGMDkwQzAwMEVERjAyMjEyMERFQThGMzcxMjBEOTEKKzo0MDBEMDYwMEVBOEYzOEU1Mzc2NTM4NjAxMjEyMERFQThGMzdFNTM3NjUzODYwMDcxMjBERUE4RjM4ODBFOEFGMzcyMjkwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDE2MDRFMDQ0MDJGMDdGRjQ3RTAxMTIwREE1OTA3RkQ2RTA1NEY3RjBFMDQ0NDgKKzo0MDBENDYwMDA0RjAyMjkwN0ZEOEUwRjUzNjEyMDc0ODEyMEUyN0VGMzBFNjBCOTA3RkQ4RTA2NTM2NjBGMTdGMDEyMjEyMEFDRjdGMDAyMkFFMDdFNEZGRTUxNjU0N0ZGRDEyMENEQTkwN0Y5ODc0MTFGMDkwQzAwMEVFRjBFNEU1MTY0NDgwODQKKzo0MDBEODYwMEZEMTIwQ0RBMjIwNTJCMDIwMDAwMDAwMDAzMzEwMzAwMDBDMTg2QzEwMkMxMEFDMTAxQzEwNzAxMjcwMDAwOEUzNjhGMzdFNTM3MTUzN0FFMzY3MDAyMTUzNjRFNjAwNTEyMDlBNDgwRUUyMjkwN0ZENkUwNDQwMUYwN0YwRDdFOEQKKzo0MDBEQzYwMDAwMTIwREE1OTA3RkQ2RTA1NEZFRjAyMjkwN0Y5ODc0MTFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTNGMDkwQzAwMEUwRkYyMkQyMDEyMkMyMDEyMjAwMDAwMDAwMDIwQkNFMDAwMjBFRjEKKzo0MDBFMDYwMDA0MDAwMjAwMDMwMDAyMEJGNTkwN0Y5ODc0MTRGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTVGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MTZGMDkwQzAwMEUwRkYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNEUKKzo0MDBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzo0MDBFODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzo0MDBFQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzo0MDBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzo0MDBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzo0MDBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzo0MDBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzo0MDEwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzo0MDEwNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzo0MDEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzo0MDEwQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzo0MDExMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzo0MDExNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzo0MDExODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzo0MDExQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzo0MDEyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzo0MDEyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzo0MDEyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzo0MDEyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzo0MDEzMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzo0MDEzNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzo0MDEzODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MTkwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwNkQKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMTl3LkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMTl3LkhFWApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hM2I4NDMxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUva2V5c3Bhbi91c2ExOXcuSEVYCkBAIC0wLDAgKzEsMTQxIEBACis6MDMwMDMzMDAwMjBENUM1RgorOjEwMDAwMzAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjBCRgorOjEwMDAxMzAwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwOTAzMQorOjBGMDAyMzAwN0Y5NUYwOTA3RjlFNzQxN0YwRTQ5MDdGOThGMDIyMDUKKzoxMDAwNDYwMDMwMEYxODEyMEQzOEVGQzM5NTE0NDAwMzAyMDBEODkwRjQKKzoxMDAwNTYwMDdGQkY3NDAxRjBDMjBGQzIwQTgwNzczMDBDM0I5MDdGREQKKzoxMDAwNjYwMEM2RTAyMEUxNkQxMjBEMzhFRkMzOTQ0MDUwNjQ5MDdFRDcKKzoxMDAwNzYwMDQwRTAxMzkyMEY5MDdGQzdFMDE0RjUxQzIwMEExMTYwMzAKKzoxMDAwODYwMDBGRjUyMzdFN0U3RjQxNzUyNzdFNzUyODQxMTIwODAxNzQKKzoxMDAwOTYwMEMyMENFNDkwN0ZDN0YwODAzOTkwN0ZDOEUwMjBFMTMyM0YKKzoxMDAwQTYwMDEyMEQzOEVGQzM5NDQwNTAyOTkwN0RDMEUwMTM5MjBGOTMKKzoxMDAwQjYwMDkwN0ZDOUUwMTRGNTFDMjAwQTExNjAwRkY1MjM3RTdEQTAKKzoxMDAwQzYwMDdGQzE3NTI3N0Q3NTI4QzExMjA4MDFEMjBDRTQ5MDdGODcKKzoxMDAwRDYwMEM5RjA5MDdGQjZFMDMwRTEwMzAyMDE1RTEyMEM0MThGNTkKKzoxMDAwRTYwMDFDMTIwRDQ0OEYxMUU1MUNDMzk1MTM1MDBGMTIwRDIwRTEKKzoxMDAwRjYwMEVGMzBFMDA4RTUxMTIwRTcwMzMwMTI1Q0MyMTJFNTFDODAKKzowQzAwMzYwMDkwN0Y5ODc0MTBGMDkwQzAwMEUwRkYyMjUyCis6MDMwMDQzMDAwMjBFMDBBQQorOjAzMDAwMDAwMDIwOEI2M0QKKzo0MDAxMDYwMDYwNTZCNDgwMDM0MzExMDJFNTExMzBFNzI0RTUxQ0QzOTQyMDQwMDM3NTFDMjA4NTFDMjM3RTdFN0Y4MDc1Mjc3RTc1Mjg4MDEyMEE4NkU1MUMyNTFDOTA3RkI3RjA4MDI3RTUxQ0QzOTQzRjQwMDM3NTFDM0Y4NTFDMjM5MDdFMDYKKzo0MDAxNDYwMDgwRTUxMUYwN0U3RTdGODE3NTI3N0U3NTI4ODExMjA4MjZFNTFDMDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwRDAzMDIwM0JBRTRGNTFCNzQ0MDI1MUJGNTgyRTQzNDdDRjU4M0UwRkZFNTFCN0MwMDdCMDE3QTdFNzkwMDI0NEEKKzo0MDAxODYwMDAwRjlFQzM0N0VGQUVGMTIwQTBEMDUxQkU1MUJCNDIwRDc5MDdFMDBFMDYwNkU3RjAxOTA3RTExRTBGRDEyMEMxQzkwN0UwMUUwRkYxMjBCNUU5MDdFMDJFMEZGMTIwQjg0RDIxMEQyMTE3NTFDMDQ5MDdFMDNFMDYwMDVDMjExRDcKKzo0MDAxQzYwMDQzMUNDMDkwN0UwNEUwQjQwMTA3QzIxMTQzMUMwQjgwMTA5MDdFMDRFMDYwMDdDMjEwNDMxQzA5ODAwMzQzMUMwMjdGMDNBRDFDMTIwQzFDNDMxOTgwOTA3Rjk4NzQxNEYwOTBDMDAwRTUxOUYwOTA3Rjk4NzQxMkYwRTUxNjQ0Q0UKKzo0MDAyMDYwMDA2OTBDMDAwRjA5MDdFMDVFMDYwMTJBM0UwNTQzRkY1MTg5MDdGOTg3NDEzRjA5MEMwMDBFNTE4RjA5MDdFMDdFMDYwNDI5MDdFMTNFMDYwMDU0MzE1MDQ4MDAzNTMxNUZCRTRGRkFEMTUxMjBDMUM5MDdFMDhFMDYwMDU0MzE3QkMKKzo0MDAyNDYwMDgwODAwMzUzMTc3RjUzMTdGQzkwN0UwOUUwNjAxMTQzMTcwMkEzRTBGRjEyMEJEMDkwN0UwQkUwRkYxMjBCRjZBRjE3MTIwQkFBOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzE5MDE4MDAzNTMxOUZFOTA3Rjk4NzQxNEYwOTBDMDAwNDYKKzo0MDAyODYwMEU1MTlGMDkwN0UwQ0UwNjAxOEEzRTA2MDA1NDMxOTAyODAwMzUzMTlGRDkwN0Y5ODc0MTRGMDkwQzAwMEU1MTlGMDkwN0UxMkUwRjUxM0EzRTAxMzkyMTNBM0UwRjUxNEEzRTA2MDA1NDMxOTEwODAwMzUzMTlFRjkwN0Y5ODc0MkQKKzo0MDAyQzYwMDE0RjA5MEMwMDBFNTE5RjA5MDdFMTZFMDYwMzI1MzE4QkY5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIwRDE0RUY1NEZFOTBDMDAwRjA1MzE1RkRFNEZGQUQxNTEyMEMxQ0U0RjUwRUY1MEREMjBFRUIKKzo0MDAzMDYwMDkwN0UxN0UwNjAwRjQzMTUwMkU0RkZBRDE1MTIwQzFDNzUwRDAxRDIwRTkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1MTY0NDA0OTBDMDAwRjBEMjBBOTA3RTE5RTA2MDExNDMxODQwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwNjQKKzo0MDAzNDYwMDAwRjA5MDdFMUFFMDYwMEY1MzE1RkVFNEZGQUQxNTEyMEMxQzc1MEYwMUQyMEU5MDdFMUJFMDYwMEY0MzE1MDFFNEZGQUQxNTEyMEMxQ0U0RjUwRkQyMEU5MDdFMUNFMDYwMEU5MDdGOTg3NDEyRjBFNTE2NDQwMjkwQzAwMEYwRDgKKzo0MDAzODYwMDkwN0UxREUwNjAwMkQyMTI5MDdFMUVFMDYwMDg3NTEwMDFFNEY1MTJEMjBFOTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwQ0MyMERFNDkwN0ZDRkYwMzAxNTcxRTUxMjYwMDIxNTEyRTUyRUQzMjYKKzo0MDAzQzYwMDk0MDA0MDA0MTUyRTgwNjA3NTJFMEExMjBEMTRFRjU0MDFGNTFDNjUwRTYwMDc4NTFDMEVEMjBFODAxMTEyMEQ1MEVGNTQxMEY1MUM2NTA5NjAwNTg1MUMwOUQyMEUxMjBENTBFRjU0ODBGNTFDNjUwQTYwMDU4NTFDMEFEMjBFRkIKKzo0MDA0MDYwMDEyMEQ1MEVGNTQyMEY1MUM2NTBCNjAwODg1MUMwQjMwMTAwMkQyMEUxMjBENTBFRjU0NDBGNTFDNjUwQzYwMDg4NTFDMEMzMDExMDJEMjBFMzAxNTJBOTA3RkQyRTAyMEUxMjM5MDdCNDBFMDYwMDlFMEY1MzA5MDdCNDJFMEY1NzIKKzo0MDA0NDYwMDMxOTA3QjQxRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwRTQ5MDdGRDNGMDkwN0ZDMkUwMzBFMTAzMDIwNTFGRTUyNTcwNDAzMDBFMzlFNTEyNzAzNUMyMEVGNTFCN0UwMDdCMDA3NDA4MjUxQkY5RUUzNDAwRkExMjA5QzdGRjc0NDcKKzo0MDA0ODYwMDgwMjUxQkY1ODJFNDM0N0JGNTgzRUZGMDA1MUJFNTFCQjQwOURCOTA3RkMzNzQwOUYwNzUxMjEwRTRGNTEwNzUyNTAyMjJFNTI1NjQwMjcwMzYzMDA1MkZDMjA1RjUxQjdFMDA3QjAwNzQyOTI1MUJGOUVFMzQwMEZBMTIwOUM3QzIKKzo0MDA0QzYwMEZGNzQ4MDI1MUJGNTgyRTQzNDdCRjU4M0VGRjAwNTFCRTUxQkI0MDVEQjkwN0ZDMzc0MDVGMDc1MjUwMzIyRTUzMDYwMzM3NTJGMDMxNTMwRTRGNTFCN0UwMDdCMDA3NDJGMjUxQkY5RUUzNDAwRkExMjA5QzdGRjc0ODAyNTFCMjYKKzo0MDA1MDYwMEY1ODJFNDM0N0JGNTgzRUZGMDA1MUJFNTFCQjQwM0RCOTA3RkMzNzQwM0YwRTRGNTI1MjI5MDdGRTlFMDEyMEExRjA1RjYwMDA2NkEwMTA2RDcwMzA1NDMwNjA1RTkwODA1RTMwOTA1Q0IwQTA1REEwQjAwMDAwNzI3OTA3RkVCQzkKKzo0MDA1NDYwMEUwMjRGRTYwMTYxNDYwNTAyNDAyNzA2Rjc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMDcyRTkwN0ZFQUUwNzAwNDdGMDI4MDAyN0YwMzc1ODI4Mjc1ODMxOUVGRjA3NTgyNzQ3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBNjUKKzo0MDA1ODYwMEUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMDcyRTkwN0ZFQUUwRkYxMjBBNDVFQTQ5NjAwREVBOTA3RkQ0RjBFOTkwN0ZENUYwMDIwNzJFOTA3RkI0RTA0NDAxRjAwMjA3MkU5MDdGQjRFMDQ0RDEKKzo0MDA1QzYwMDAxRjAwMjA3MkU5MDdGMDBFNTI0RjA5MDdGQjU3NDAxRjAwMjA3MkU5MDdGRUFFMEY1MjQwMjA3MkUxMjA3MzYwMjA3MkU5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMDcyRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMjEKKzo0MDA2MDYwMDAxRTQzM0ZGMjVFMEZGQTIwN0U0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwNzJFRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA3MkU5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0Q0QKKzo0MDA2NDYwMEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA3MkU5MDdGQjRFMDQ0MDFGMDAyMDcyRTkwN0ZFOEUwMjRGRTYwMUUyNDAyNjAwMzAyMDcyRTkwN0ZFQUUwQjQwMTA2MTIwRDYzMDIwNzJFNTMKKzo0MDA2ODYwMDkwN0ZCNEUwNDQwMUYwMDIwNzJFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRkZGRTA1NDA3MkY5MDdGNjkKKzo0MDA2QzYwMEQ3RjBFMDQ0MjBGMDgwNjA5MDdGQjRFMDQ0MDFGMDgwNTc5MDdGRThFMDI0RkU2MDE5MjQwMjcwNEI5MDdGRUFFMEI0MDEwNTEyMEQ2MDgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQUQKKzo0MDA3MDYwMEM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMUYwODAxMDkwN0ZCNEUwNDQwMUYwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwNkIKKzo0MDA3NDYwMDkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MThGMEU0RjU4RTkwN0ZERjc0RkZGMDkwN0ZERUYwRTRGNTA4N0YwMTdCMDA3NDA4MkZGOUU0MzQwMEZBRTQxMjBBMEQwRkJGMDlFRTc1MTMwMUU0RjUxMkY1MkVGNTExQTIKKzo0MDA3ODYwMEMyMEVDMjEyQzIwREMyMEFDMjBGQzIwNDkwN0Y5ODc0MTNGMDc1MTgwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIwQzFDN0YxMDhGMTcxMjBCQUE5MDdGOTg3NDEyRjA3RjAxOEYxNkVGNDQwNjkwQzAwMEYwMEZFNEZEMTIwQzFDNzEKKzo0MDA3QzYwMEU0RkY3RUEzQUQwNjhEMTUxMjBDMUM5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjBDMUM3RjAxMTIwQ0FDN0YwMzdEMDcxMjBDMUM5MDdGOTg3NDE0RjA3NTE5ODA5MEMwMDA3NDgwRjBEMjAzMjI5MDdGOTg3NDEwNTkKKzo0MDA4MDYwMEYwQUYyM0U1MjhGNTgyRTUyN0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjIzRTUyOEY1ODJFNTI3RjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3NkYKKzo0MDA4NDYwMDA1ODZEMkFGMjI5MDdGOTg3NDA4RjBBRjIzRTUyOEY1ODJFNTI3RjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMjNFNTI4RjU4MkU1MjdGNTgzQzJBRjA1ODY5MEMwNDUKKzo0MDA4ODYwMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMjc4N0ZFNEY2RDhGRDc1ODEzMTAyMDhGRDAyMDk0MkU0M0IKKzo0MDA4QzYwMDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAwQ0NERTQ3RTAxOTM2MEJDMzYKKzo0MDA5MDYwMEEzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUQyMTQ5MDdGODMKKzo0MDA5NDYwMDkyRTA0NDAyRjAxMjBENjNEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUU3NDBERjBEMkFGRDIxNTEyMEM2NkMyMDJFNEY1NTcKKzo0MDA5ODYwMDI2RjUyRUMyMDhDMjAzOTA3RkExMDRGMDkwN0ZEOEUwNjUxQTYwMTAzMDAzMDVEMjE1MTIwMDQ2OTA3RkQ4RTBGNTFBODAwODMwMDMwNUMyMTUxMjAwNDYzMDAyMDdDMjAyMTIwNTIwODBENjMwMDlEM0MyMDkxMjBBQkE4MENDNDAKKzo0MDA5QzYwMDIyQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1MUYKKzo0MDBBMDYwMDgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjhGNTgKKzo0MDBBNDYwMDFCRTRGNTFDNzUxREZGNzUxRTE5NzUxRjg2QUIxREFBMUVBOTFGOTAwMDAxMTIwOUUwQjQwMzFEQUYxQzA1MUNFRkI1MUIwMTIyMTIwOUM3N0UwMDI5RkZFRTNBQTkwNzc1MURGRkY1MUU4OTFGODBENDdCMDA3QTAwNzkwMDIyRjMKKzo0MDBBODYwMDA1MjhFNTI4QUUyNzcwMDIwNTI3MTRGNTgyOEU4M0U1MTFGMDEyMDAzNjA1MjhFNTI4QUMyNzcwMDIwNTI3MTRGNTgyOEM4M0VGRjAxNTIzRTUyMzYwMDcxMjBENDQ4RjExODBDRDIyOTA3RkQ4RTBGNTFCMTIwMDAzOTA3RkQ2QUIKKzo0MDBBQzYwMEUwNDQ4MEYwMTIwOEE2OTA3RkQ2RTAzMEU3MEUzMDAxMDUxMjBDRkU4MDA2MTIwQzhCRUY2MEUxMTIwNzM2MjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwREYKKzo0MDBCMDYwMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIwMjUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwMjUKKzo0MDBCNDYwMEQyMDk1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTBGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBFNTE4NTQ3RjkwQzAwMEYwMjI5MDdGREIKKzo0MDBCODYwMDk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTJGMDkwQzAwMEVGRjA5MDdGOTg3NDEzMDcKKzo0MDBCQzYwMEYwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1MTg1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0RjIKKzo0MDBDMDYwMDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTUxODU0N0Y5MEMwMDBGMDkwN0Y5ODc0MTdGMDkwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjBEMkM4RjFENDQKKzo0MDBDNDYwMDEyMEQyQzhGMUVFNTFENjUxRTYwMTIxMjBEMkM4RjFERTUxRDY1MUU2MDA3MTIwRDJDOEYxRTgwRThBRjFEMjI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxNTA0RTA0NDAyRjA3RkY0N0UwMTEyMENFNzkwN0ZENkUwNTRGN0YwRDgKKzo0MDBDODYwMEUwNDQwNEYwMjI5MDdGRDhFMEY1MUMxMjA3MzYxMjBENTBFRjMwRTYwQjkwN0ZEOEUwNjUxQzYwRjE3RjAxMjIxMjAwMDM3RjAwMjJBRTA3RTRGRkU1MTU1NDdGRkQxMjBDMUM5MDdGOTg3NDExRjA5MEMwMDBFRUYwRTRFNTE1OTkKKzo0MDBDQzYwMDQ0ODBGRDEyMEMxQzIyMDUyOTAyMDAwMDAwMDAwMzJGMDMwMDAwQzE4NkMxMDJDMTA5QzEwMUMxMDcwMTI1MDAwMDhFMUM4RjFERTUxRDE1MURBRTFDNzAwMjE1MUM0RTYwMDUxMjA4OTU4MEVFMjI5MDdGRDZFMDQ0MDFGMDdGODYKKzo0MDBEMDYwMDBEN0UwMDEyMENFNzkwN0ZENkUwNTRGRUYwMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEzRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE0RjA5MEMwMDBFMEZGMjI5MDdGMkIKKzo0MDBENDYwMDk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyNTNEOEVGMzJEMjAxMjJDMjAxMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzMKKzo0MDBEODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkQKKzo0MDBEQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwQjEwMDAwMjBFQzAKKzo0MDBFMDYwMDA0MDAwMjBBRTYwMDAyMEIzNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzIKKzo0MDBFNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkMKKzo0MDBFODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkMKKzo0MDBFQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUMKKzo0MDBGMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUIKKzo0MDBGNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkIKKzo0MDBGODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkIKKzo0MDBGQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUIKKzo0MDEwMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQUEKKzo0MDEwNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNkEKKzo0MDEwODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMkEKKzo0MDEwQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRUEKKzo0MDExMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTkKKzo0MDExNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjkKKzo0MDExODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjkKKzo0MDExQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTkKKzo0MDEyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTgKKzo0MDEyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjgKKzo0MDEyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgKKzo0MDEyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTgKKzo0MDEzMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTcKKzo0MDEzNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjcKKzo0MDEzODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcKKzo0MDEzQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTcKKzo0MDE0MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTYKKzo0MDE0NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjYKKzo0MDE0ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjYKKzo0MDE0QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTYKKzo0MDE1MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTUKKzo0MDE1NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjUKKzo0MDE1ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUKKzo0MDE1QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTUKKzo0MDE2MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTQKKzo0MDE2NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjQKKzo0MDE2ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjQKKzo0MDE2QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTQKKzo0MDE3MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTMKKzo0MDE3NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjMKKzo0MDE3ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjMKKzo0MDE3QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRTMKKzo0MDE4MDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTIKKzo0MDE4NDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjIKKzo0MDE4ODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjIKKzo0MDE4QzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTIwMTEwMDFGRjAwQkYKKzo0MDE5MDYwMDAwNDBDRDA2MDgwMTAwMDAwMTAyMDAwMjA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwN0UKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA1MzAwNjUwMDcyMDA2OTAwNjEwMDZDMDAyMDAwNDEwMDY0MDA2MTAwNzAwMDc0MDA2NTAwRjkKKzowNDFBMDYwMDcyMDAwMDAwNkEKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAxCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW4vdXNhMjguSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOC5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAwYzk3OAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjguSEVYCkBAIC0wLDAgKzEsMTQ4IEBACis6MEEwMDI2MDAxMjE3REIxMjE4QjUxMjE0QzMyMkUyCis6MDMwMDMzMDAwMjAwMURBQgorOjA0MDAxRDAwNTNEOEVGMzI5MworOjEwMDAwNjAwOEUxMjhGMTNFNTEzMTUxM0FFMTI3MDAyMTUxMjRFNjA4MQorOjA3MDAxNjAwMDUxMjE4QTQ4MEVFMjI4MAorOjAzMDAwMzAwMDIwMDQ2QjIKKzoxMDAwNDYwMEMwRTBDMDgzQzA4MkMwODY3NTg2MDBDMEQwNzVEMDA4NjcKKzoxMDAwNTYwMDMwOTkwRTMwMTEwN0EyMTc5MjlCODU0Njk5QzI5OUQyMDQKKzoxMDAwNjYwMDFGMzBDMTBFMzAxMjA3QTIxODkyQzM4NTQ3QzFDMkMxMDQKKzoxMDAwNzYwMEQyMjAyMDFGMDMwMjA0NDJDMjFGMjAwMzAzMDIwMjY3OEMKKzoxMDAwODYwMDIwMTEwMzAyMDEzOEU1NEFDMzk1N0M1MDNFMjAxMzM2MDEKKzoxMDAwOTYwMDIwMEIzMzkwN0Y5QkUwMjBFMzAzMjAxQzI5MzAxQjEyQUEKKzoxMDAwQTYwMEFFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUY1ODNFMDEzQTkKKzoxMDAwQjYwMDkyMTdBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTMKKzoxMDAwQzYwMEUwRjU0NjAyMDQ0MEMyMTEwMjA0NDA5MDdGQzdFNEYwMDYKKzoxMDAwRDYwMEMyMDMzMDE1MENDMjE1OTA3RkJGMDRGMEMyMTEwMjA0OTIKKzoxMDAwRTYwMDQwOTA3RkM4RTAzMEUxMDVDMjExMDIwNDQwOTA3RkM5MEMKKzoxMDAwRjYwMEUwRjU3QzkwN0RDMEUwMTM5MjE1MjAxMzJEMjAwQjJBOEQKKzowMzAwNDMwMDAyMUIwMDlECis6MDMwMDIzMDAwMjAwNDY5MgorOjAzMDAzQjAwMDIwMDQ2N0EKKzowMzAwMDAwMDAyMTYzREE4Cis6NDAwMTA2MDA5MDdGOUJFMDIwRTMwMzIwMUMyMDMwMUIxMTkwN0RDMUUwMTM5MjE3QTNFMEY1NDY3NTRBMDMwMjA0NDA3NTRBMDI5MDdEQzFFMEY1NDYwMjA0NDA3NTRBMDFDMjExMDIwNDQwRTU0QUMzOTU3QzUwMDMwMjAxRTA5MDdGQzZFMDhBCis6NDAwMTQ2MDAzMEUxMDdDMjIxQzIwNTAyMDQ0MDkwN0ZDN0UwRjU3QzkwN0U0MEUwMTM5MjE1MzAxMzAzMDIwMUQ4MjAwQjcyMjAwMDZGOTA3RjlCRTAyMEUzMDMyMDFDNjUzMDFCMTA5MDdFNDFFMDEzOTI5QkEzRTBGNTk5NzU0QTAzODAwOUJFCis6NDAwMTg2MDA5MDdFNDFFMEY1OTk3NTRBMDJFNTRBQzM5NTdDNDAxNzkwN0ZDN0U0RjBDMjAzMjAxNTAzMDIwNDQwQzIxNTkwN0ZCRjA0RjAwMjA0NDAzMDFCMTJBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTAxMzkyMTdBRTRBMDU0QUE3Cis6NDAwMUM2MDA3NDQwMkVGNTgyRTQzNDdFRjU4M0UwRjU0NkQyMTEwMjA0NDA3NTRBMDFDMjIxMDIwNDQwMzAxMzAzMDIwMjYyMjAwQjc5OTA3RjlCRTAyMEUzMDMyMDFDNkYzMDFCMTJBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTAxM0RDCis6NDAwMjA2MDA5MjlCQUU0QTA1NEE3NDQwMkVGNTgyRTQzNDdFRjU4M0UwRjU5OUU1NEFDMzk1N0M0MDE3OTA3RkM3RTRGMEMyMDMyMDE1MDMwMjA0NDBDMjE1OTA3RkJGMDRGMDAyMDQ0MDMwMUIxMkFFNEEwNTRBNzQ0MDJFRjU4MkU0MzQ3RUI2Cis6NDAwMjQ2MDBGNTgzRTAxMzkyMTdBRTRBMDU0QTc0NDAyRUY1ODJFNDM0N0VGNTgzRTBGNTQ2RDIxMTAyMDQ0MEMyMjEwMjA0NDAyMDExMDMwMjAzMTlFNTRBQzM5NTdDNTAzRTIwMTMzNjIwMEIzMzkwN0Y5QkUwMjBFMzAzMjAxQzI5MzAxQjVGCis6NDAwMjg2MDAxMkFFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMDEzOTIxN0FFNEEwNTRBNzRDMDJFRjU4MkU0MzQ3REY1ODNFMEY1NDYwMjA0NDBDMjExMDIwNDQwOTA3RkM5RTRGMEQyMDMzMDE1MENDMjE1OTA3RkJGMDRGMEMyMTEwMjc2Cis6NDAwMkM2MDAwNDQwOTA3RkM2RTAzMEUxMDVDMjExMDIwNDQwOTA3RkM3RTBGNTdDOTA3RTQwRTAxMzkyMTUyMDEzMkQyMDBCMkE5MDdGOUJFMDIwRTMwMzIwMUMyMDMwMUIxMTkwN0U0MUUwMTM5MjE3QTNFMEY1NDY3NTRBMDMwMjA0NDA3NTlFCis6NDAwMzA2MDA0QTAyOTA3RTQxRTBGNTQ2MDIwNDQwNzU0QTAxQzIxMTAyMDQ0MEU1NEFDMzk1N0M1MDAzMDIwM0MxOTA3RkM4RTAzMEUxMDdDMjIxQzIwNTAyMDQ0MDkwN0ZDOUUwRjU3QzkwN0RDMEUwMTM5MjE1MzAxMzAzMDIwM0I5MjAwQjQ4Cis6NDAwMzQ2MDA3MjIwMDA2RjkwN0Y5QkUwMjBFMzAzMjAxQzY1MzAxQjEwOTA3REMxRTAxMzkyOUJBM0UwRjU5OTc1NEEwMzgwMDk5MDdEQzFFMEY1OTk3NTRBMDJFNTRBQzM5NTdDNDAxNzkwN0ZDOUU0RjBEMjAzMjAxNTAzMDIwNDQwQzIxNTczCis6NDAwMzg2MDA5MDdGQkYwNEYwMDIwNDQwMzAxQjEyQUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjE3QUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwRjU0NkQyMTEwMjA0NDA3NTRBMDFDMjIxMDIwNDQwMzAxMzAzMDIwNDYzCis6NDAwM0M2MDAzRTIwMEI3NDkwN0Y5QkUwMjBFMzAzMjAxQzZBMzAxQjEyQUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjlCQUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwRjU5OUU1NEFDMzk1N0M0MDEzOTA3RkM5RTRGMDlECis6NDAwNDA2MDBEMjAzMzAxNTM1QzIxNTkwN0ZCRjA0RjA4MDJDMzAxQjEyQUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwMTM5MjE3QUU0QTA1NEE3NEMwMkVGNTgyRTQzNDdERjU4M0UwRjU0NkQyMTE4MDAyQzIyMUQyMjUyMDIwMDMwMjMwCis6NDAwNDQ2MDAwODBDQzIyMDIwMDQwMzAyMDYzMTIwMTIwMzAyMDUwMkU1NEJDMzk1N0Q1MDNFMjAxNDM2MjAwRDMzOTA3RjlBRTAyMEU1MDMyMDFFMjkzMDFEMTJBRTRCMDU0Qjc0NDAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyMThBRTRCMDU0Qjk5Cis6NDAwNDg2MDA3NDQwMkVGNTgyRTQzNDdERjU4M0UwRjU0NzAyMDgwQUMyMTIwMjA4MEE5MDdGQ0JFNEYwQzIwNDMwMTYwQ0MyMTY5MDdGQzEwNEYwQzIxMjAyMDgwQTkwN0ZDQ0UwMzBFMTA1QzIxMjAyMDgwQTkwN0ZDREUwRjU3RDkwN0NDMEJCCis6NDAwNEM2MDBFMDEzOTIxNjIwMTQyRDIwMEQyQTkwN0Y5QUUwMjBFNTAzMjAxRTIwMzAxRDExOTA3Q0MxRTAxMzkyMThBM0UwRjU0Nzc1NEIwMzAyMDgwQTc1NEIwMjkwN0NDMUUwRjU0NzAyMDgwQTc1NEIwMUMyMTIwMjA4MEFFNTRCQzM5NTY2Cis6NDAwNTA2MDA3RDUwMDMwMjA1QUE5MDdGQ0FFMDMwRTEwN0MyMjJDMjA2MDIwODBBOTA3RkNCRTBGNTdEOTA3RDQwRTAxMzkyMTYzMDE0MDMwMjA1QTIyMDBENzIyMDAwNkY5MDdGOUFFMDIwRTUwMzIwMUU2NTMwMUQxMDkwN0Q0MUUwMTM5MjBECis6NDAwNTQ2MDBDM0EzRTBGNUMxNzU0QjAzODAwOTkwN0Q0MUUwRjVDMTc1NEIwMkU1NEJDMzk1N0Q0MDE3OTA3RkNCRTRGMEMyMDQyMDE2MDMwMjA4MEFDMjE2OTA3RkMxMDRGMDAyMDgwQTMwMUQxMkFFNEIwNTRCNzQ0MDJFRjU4MkU0MzQ3RDI0Cis6NDAwNTg2MDBGNTgzRTAxMzkyMThBRTRCMDU0Qjc0NDAyRUY1ODJFNDM0N0RGNTgzRTBGNTQ3RDIxMjAyMDgwQTc1NEIwMUMyMjIwMjA4MEEzMDE0MDMwMjA2MkMyMDBENzk5MDdGOUFFMDIwRTUwMzIwMUU2RjMwMUQxMkFFNEIwNTRCNzQ0MEU5Cis6NDAwNUM2MDAyRUY1ODJFNDM0N0RGNTgzRTAxMzkyQzNBRTRCMDU0Qjc0NDAyRUY1ODJFNDM0N0RGNTgzRTBGNUMxRTU0QkMzOTU3RDQwMTc5MDdGQ0JFNEYwQzIwNDIwMTYwMzAyMDgwQUMyMTY5MDdGQzEwNEYwMDIwODBBMzAxRDEyQUU0QjkxCis6NDAwNjA2MDAwNTRCNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMDEzOTIxOEFFNEIwNTRCNzQ0MDJFRjU4MkU0MzQ3REY1ODNFMEY1NDdEMjEyMDIwODBBQzIyMjAyMDgwQTIwMTIwMzAyMDZFM0U1NEJDMzk1N0Q1MDNFMjAxNDM2MjAwRDMzOTA3RjFBCis6NDAwNjQ2MDA5QUUwMjBFNTAzMjAxRTI5MzAxRDEyQUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwMTM5MjE4QUU0QjA1NEI3NEMwMkVGNTgyRTQzNDdDRjU4M0UwRjU0NzAyMDgwQUMyMTIwMjA4MEE5MDdGQ0RFNEYwRDIwNDMwMTYwQzQzCis6NDAwNjg2MDBDMjE2OTA3RkMxMDRGMEMyMTIwMjA4MEE5MDdGQ0FFMDMwRTEwNUMyMTIwMjA4MEE5MDdGQ0JFMEY1N0Q5MDdENDBFMDEzOTIxNjIwMTQyRDIwMEQyQTkwN0Y5QUUwMjBFNTAzMjAxRTIwMzAxRDExOTA3RDQxRTAxMzkyMThBMzUyCis6NDAwNkM2MDBFMEY1NDc3NTRCMDMwMjA4MEE3NTRCMDI5MDdENDFFMEY1NDcwMjA4MEE3NTRCMDFDMjEyMDIwODBBRTU0QkMzOTU3RDUwMDMwMjA3OEI5MDdGQ0NFMDMwRTEwN0MyMjJDMjA2MDIwODBBOTA3RkNERTBGNTdEOTA3Q0MwRTAxM0FDCis6NDAwNzA2MDA5MjE2MzAxNDAzMDIwNzgzMjAwRDcyMjAwMDZGOTA3RjlBRTAyMEU1MDMyMDFFNjUzMDFEMTA5MDdDQzFFMDEzOTJDM0EzRTBGNUMxNzU0QjAzODAwOTkwN0NDMUUwRjVDMTc1NEIwMkU1NEJDMzk1N0Q0MDE3OTA3RkNERTRGMEFFCis6NDAwNzQ2MDBEMjA0MjAxNjAzMDIwODBBQzIxNjkwN0ZDMTA0RjAwMjA4MEEzMDFEMTJBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTAxMzkyMThBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTBGNTQ3RDIxMjAyMDgwQTc1NEIwMTczCis6NDAwNzg2MDBDMjIyMDIwODBBMzAxNDAzMDIwODA4MjAwRDc0OTA3RjlBRTAyMEU1MDMyMDFFNkEzMDFEMTJBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTAxMzkyQzNBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTBGNUMxRTU0QjNGCis6NDAwN0M2MDBDMzk1N0Q0MDEzOTA3RkNERTRGMEQyMDQzMDE2MzVDMjE2OTA3RkMxMDRGMDgwMkMzMDFEMTJBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTAxMzkyMThBRTRCMDU0Qjc0QzAyRUY1ODJFNDM0N0NGNTgzRTBGNTQ3RDIxMjJBCis6NDAwODA2MDA4MDAyQzIyMkQyMjUyMDk4MDMwMjA5M0VDMjk4MjAwMTAzMDIwOEIwMjAyMzI3QUU0ODA1NDg3NDgwMkVGNTgyRTQzNDdFRjU4M0U1OTlGMDMwMUI0OUFFNDgwNTQ4NzQ4MDJFRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDM2QUY5OTZFCis6NDAwODQ2MDBFRkI1NTgwNEQyMEI4MDJDRUZCNTU3MDRDMjBCODAyNEFFNDgwNTQ4NzQ4MDJFRjU4MkU0MzQ3RUY1ODNFRkYwMzAxQjExQUU0ODA1NDg3NDgwMkVGNTgyRTQzNDdFRjU4M0U1OThGMEQyMTlFNTQ4QzM5NTU0NTAwMzAyMDkzQzlGCis6NDAwODg2MDA5MDdGQjhFMDMwRTExNUU1NDhDMzk0NDA1MDAzMDIwOTNDMTU0ODE1NDgwNTJERDIwQzAyMDkzQzkwN0ZCN0U1NDhGMDc1NDgwMEMyMDEwMjA5M0MyMDIzMjdBRTQ4MDU0ODc0MDAyRUY1ODJFNDM0N0VGNTgzRTU5OUYwMzAxQkJGCis6NDAwOEM2MDA0OUFFNDgwNTQ4NzQwMDJFRjU4MkU0MzQ3RUY1ODNFNTk4RjA4MDM2QUY5OUVGQjU1ODA0RDIwQjgwMkNFRkI1NTcwNEMyMEI4MDI0QUU0ODA1NDg3NDAwMkVGNTgyRTQzNDdFRjU4M0VGRjAzMDFCMTFBRTQ4MDU0ODc0MDAyRTUxCis6NDAwOTA2MDBGNTgyRTQzNDdFRjU4M0U1OThGMEQyMTlFNTQ4QzM5NTU0NDAyMzkwN0ZCNkUwMzBFMTExRTU0OEMzOTQ0MDQwMTUxNTQ4MTU0ODA1MkREMjBDODAwQjkwN0ZCOUU1NDhGMDc1NDgwMEQyMDFEMjI1MjBDMDAzMDIwQTcwQzJDMDE2Cis6NDAwOTQ2MDAyMDAyMDMwMjA5RTIyMDI0MjdBRTQ5MDU0OTc0ODAyRUY1ODJFNDM0N0RGNTgzRTVDMUYwMzAxRDQ5QUU0OTA1NDk3NDgwMkVGNTgyRTQzNDdERjU4M0U1QzBGMDgwMzZBRkMxRUZCNTcwMDREMjBEODAyQ0VGQjU2RjA0QzIwREFFCis6NDAwOTg2MDA4MDI0QUU0OTA1NDk3NDgwMkVGNTgyRTQzNDdERjU4M0VGRjAzMDFEMTFBRTQ5MDU0OTc0ODAyRUY1ODJFNDM0N0RGNTgzRTVDMEYwRDIxQUU1NDlDMzk1NkM1MDAzMDIwQTZFOTA3RkJDRTAzMEUxMTVFNTQ5QzM5NDQwNTAwMzUxCis6NDAwOUM2MDAwMjBBNkUxNTQ5MTU0OTA1MzlEMjBFMDIwQTZFOTA3RkJCRTU0OUYwNzU0OTAwQzIwMjAyMEE2RTIwMjQyN0FFNDkwNTQ5NzQwMDJFRjU4MkU0MzQ3REY1ODNFNUMxRjAzMDFENDlBRTQ5MDU0OTc0MDAyRUY1ODJFNDM0N0RGNTU1Cis6NDAwQTA2MDA4M0U1QzBGMDgwMzZBRkMxRUZCNTcwMDREMjBEODAyQ0VGQjU2RjA0QzIwRDgwMjRBRTQ5MDU0OTc0MDAyRUY1ODJFNDM0N0RGNTgzRUZGMDMwMUQxMUFFNDkwNTQ5NzQwMDJFRjU4MkU0MzQ3REY1ODNFNUMwRjBEMjFBRTU0OTgzCis6NDAwQTQ2MDBDMzk1NkM0MDIzOTA3RkJBRTAzMEUxMTFFNTQ5QzM5NDQwNDAxNTE1NDkxNTQ5MDUzOUQyMEU4MDBCOTA3RkJERTU0OUYwNzU0OTAwRDIwMkQyMjUzMDI1MDVDMjI1MDIwMDU2RDBEMEQwODZEMDgyRDA4M0QwRTAzMjkwN0ZDRTk5Cis6NDAwQTg2MDBFMDMwRTEwMzAyMEJBNUU0RjUxMjc0NDAyNTEyRjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxMjdDMDA3QjAwMjQ0Q0Y5RUMzNDAwRkFFRjEyMTVDRDA1MTJFNTEyQjQxOERCRTU0QzYwMEM3NUM5MjA3NUM4MzY4NTREQ0E4NTRFQ0JFNUJDCis6NDAwQUM2MDA0RjEzOTIxQjkyOUZFNTUwMTM5MjFDRTU1MTEzOTIyM0U1NTI2MDA5OTA3Rjk4RTA1NEZCRjA4MDA3OTA3Rjk4RTA0NDA0RjBFNTUzNjAwOTkwN0Y5OEUwNTQ3RkYwODAwNzkwN0Y5OEUwNDQ4MEYwRTU1OTYwMEJDMjEzQzIwQjE4Cis6NDAwQjA2MDA5MDdGOTVFMDQ0MDJGMEU1NUE2MDBCRDIwQkQyMEM5MDdGOTVFMDQ0MDJGMEU1NUI2MDBEQzJBRkMyMTFEMjAwRTRGNTdDRjU0QUQyQUZFNTVDNjAwNTMwMjMwMkQyMEJFNTVENjAxNTkwN0Y5NUUwNTRGREYwOTA3RjlFRTA0NEQ5Cis6NDAwQjQ2MDAwMkYwOTA3Rjk4RTA1NEZERjBFNTVFNjAwQUQyOUNDMjk4NzUyRTAxNzU0MDI4RTU1RjYwMDdDMjlDRTRGNTQ4RjUyRUU1NjA2MDAzRTRGNTQ4RTU2MTYwMDJEMjA3RTU2MjYwMDhFNTVFNzAwMkY1NDBEMjBDRTU2MzYwMTk5MDYwCis6NDAwQjg2MDA3RkQ3NzQxMUYwNzQzMUYwNzQxMkYwNzQzMkYwNzQxNUYwNzQzNUYwRDIwM0QyMDFEMjA5RTQ5MDdGQ0ZGMEEyMTNFNDMzRkY2NTJCNjAwNDhGMkJEMjBDQTIwQkU0MzNGRjY1MkM2MDA0OEYyQ0QyMEM5MDdGOUJFMDU0MDg2NTg5Cis6NDAwQkM2MDAyNzYwMDdFMDU0MDhGNTI3RDIwQzkwN0Y5QkUwNTQ0MEI1MjkwOUUwNTQ0MDY0NDBGNTI5RDIwQzMwMDczNUMyQUYzMDAxMTg5MDdGQjhFMDIwRTEyN0U1NDg2MDA5OTA3RkI3RjBFNEY1NDhDMjAxQzIwNzgwMTY5MDdGQjZFMEU5Cis6NDAwQzA2MDAyMEUxMEZFNTQ4NjAwOTkwN0ZCOUYwRTRGNTQ4RDIwMUMyMDdEMkFGMjAwNTM3MzAwMzFCOTA3RkM2RTAyMEUxMkQ5MDdFNDBFMDEzOTIxNTc1NEEwMTkwN0ZDN0UwRjU3Q0QyMDU4MDE5OTA3RkM4RTAyMEUxMTI5MDdEQzBFMENGCis6NDAwQzQ2MDAxMzkyMTU3NTRBMDE5MDdGQzlFMEY1N0NEMjA1MjAyMTMzMjAwMDA2RTU0QTY1N0M3MDJBMzAwNTFBMzAwMzA5RTQ5MDdGQzdGMEMyMDM4MDA3RTQ5MDdGQzlGMEQyMDNDMjA1RTRGNTdDRjU0QTMwMTUwQUMyMTVDMjAwOTA3RjVDCis6NDAwQzg2MDBCRjc0MDFGMDMwMjEwMzAyMEQ5NDIwMDUwMzAyMEQ5NDMwMUMwQTkwN0Y5QkUwMjBFMzAzMDIwRDk0MzAwQjAzMDIwRDk0MzAxMzAzMDIwRDk0MzAwMzYyMzAxQjEyQUY0QTA1NEE3NDQwMkZGNTgyRTQzNDdFRjU4M0UwMTM5MkNFCis6NDAwQ0M2MDAyREFGNEEwNTRBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1MTNFNTRBQzM5NTdDNTAyQTMwMUIxMkFGNEEwNTRBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMDEzOTIxN0FGNEEwNTRBNzQ0MDJGRjU4MkU0MzQ3RUY1ODNFMEY1NDZEMjY2Cis6NDAwRDA2MDAxMTgwNkJDMjExRTQ5MDdGQzdGMEMyMDM4MDYwMzAxQjEyQUY0QTA1NEE3NEMwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjJEQUY0QTA1NEE3NEMwMkZGNTgyRTQzNDdERjU4M0UwRjUxM0U1NEFDMzk1N0M1MDJBMzAxQjEyQUY0QTY3Cis6NDAwRDQ2MDAwNTRBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMDEzOTIxN0FGNEEwNTRBNzRDMDJGRjU4MkU0MzQ3REY1ODNFMEY1NDZEMjExODAwOUMyMTFFNDkwN0ZDOUYwRDIwMzMwMUIwNEEyMkQ5MjlCRDIyMUMyQUY4NTEzOTkyMDExMEQzMDQzCis6NDAwRDg2MDAxNTBBQzIxNUMyMDA5MDdGQkY3NDAxRjBEMkFGOTA3RkQwRTAzMEUxMDMwMjBFQjVFNEY1MTI3NEMwMjUxMkY1ODJFNDM0N0JGNTgzRTBGRkU1MTI3QzAwN0IwMDI0NjRGOUVDMzQwMEZBRUYxMjE1Q0QwNTEyRTUxMkI0MThEQjUxCis6NDAwREM2MDBFNTY0NjAwQjc1ODk2MDc1ODg0MEQyREY4NTY1OERFNTY3MTM5MjFEOTJDN0U1NjgxMzkyMUVFNTY5MTM5MjI0RTU2QTYwMDk5MDdGOTdFMDU0RUZGMDgwMDc5MDdGOTdFMDQ0MTBGMEU1NkI2MDA5OTA3Rjk3RTA1NDdGRjA4MEE0Cis6NDAwRTA2MDAwNzkwN0Y5N0UwNDQ4MEYwRTU3MTYwMEJDMjE0QzIwRDkwN0Y5NEUwNDQwOEYwRTU3MjYwMEJEMjBERDIwRTkwN0Y5NEUwNDQwOEYwRTU3MzYwMERDMkFGQzIxMkQyMDBFNEY1N0RGNTRCRDJBRkU1NzQ2MDA1MzAyNDAyRDIwRDIwCis6NDAwRTQ2MDBFNTc1NjAxNTkwN0Y5NEUwNTRGN0YwOTA3RjlERTA0NDA4RjA5MDdGOTdFMDU0RjdGMEU1NzY2MDBBRDJDNEMyQzA3NTNBMDE3NTQxMjhFNTc3NjAwN0MyQzRFNEY1NDlGNTNBRTU3ODYwMDNFNEY1NDlFNTc5NjAwMkQyMDhFNUYwCis6NDAwRTg2MDA3QTYwMDhFNTc2NzAwMkY1NDFEMjBFRTU3QjYwMTk5MDdGRDc3NDEzRjA3NDMzRjA3NDE0RjA3NDM0RjA3NDE2RjA3NDM2RjBEMjA0RDIwMkQyMEFFNDkwN0ZEMUYwQTIxNEU0MzNGRjY1Mzc2MDA0OEYzN0QyMEVBMjBERTQzMzA0Cis6NDAwRUM2MDBGRjY1Mzg2MDA0OEYzOEQyMEU5MDdGOUFFMDU0MjA2NTMzNjAwN0UwNTQyMEY1MzNEMjBFOTA3RjlBRTA1NDQwQjUzNTA5RTA1NDQwNjQ0MEY1MzVEMjBFMzAwODM1QzJBRjMwMDIxODkwN0ZCQ0UwMjBFMTI3RTU0OTYwMDk5MDk5Cis6NDAwRjA2MDA3RkJCRjBFNEY1NDlDMjAyQzIwODgwMTY5MDdGQkFFMDIwRTEwRkU1NDk2MDA5OTA3RkJERjBFNEY1NDlEMjAyQzIwOEQyQUYyMDA2MzczMDA0MUI5MDdGQ0FFMDIwRTEyRDkwN0Q0MEUwMTM5MjE2NzU0QjAxOTA3RkNCRTBGNTAzCis6NDAwRjQ2MDA3REQyMDY4MDE5OTA3RkNDRTAyMEUxMTI5MDdDQzBFMDEzOTIxNjc1NEIwMTkwN0ZDREUwRjU3REQyMDYyMDIyMzMyMDAwMDZFNTRCNjU3RDcwMkEzMDA2MUEzMDA0MDlFNDkwN0ZDQkYwQzIwNDgwMDdFNDkwN0ZDREYwRDIwNDJDCis6NDAwRjg2MDBDMjA2RTRGNTdERjU0QjMwMTYwQUMyMTZDMjAwOTA3RkMxNzQwMUYwMzAyMjAzMDIxMEE0MjAwNjAzMDIxMEE0MzAxRTBBOTA3RjlBRTAyMEU1MDMwMjEwQTQzMDBEMDMwMjEwQTQzMDE0MDMwMjEwQTQzMDA0NjIzMDFEMTJBRjhFCis6NDAwRkM2MDA0QjA1NEI3NDQwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjJEQUY0QjA1NEI3NDQwMkZGNTgyRTQzNDdERjU4M0UwRjUxM0U1NEJDMzk1N0Q1MDJBMzAxRDEyQUY0QjA1NEI3NDQwMkZGNTgyRTQzNDdERjU4M0UwMTM5MjE4QUY0Qjc4Cis6NDAxMDA2MDAwNTRCNzQ0MDJGRjU4MkU0MzQ3REY1ODNFMEY1NDdEMjEyODA2QkMyMTJFNDkwN0ZDQkYwQzIwNDgwNjAzMDFEMTJBRjRCMDU0Qjc0QzAyRkY1ODJFNDM0N0NGNTgzRTAxMzkyMkRBRjRCMDU0Qjc0QzAyRkY1ODJFNDM0N0NGNUYyCis6NDAxMDQ2MDA4M0UwRjUxM0U1NEJDMzk1N0Q1MDJBMzAxRDEyQUY0QjA1NEI3NEMwMkZGNTgyRTQzNDdDRjU4M0UwMTM5MjE4QUY0QjA1NEI3NEMwMkZGNTgyRTQzNDdDRjU4M0UwRjU0N0QyMTI4MDA5QzIxMkU0OTA3RkNERjBEMjA0MzAxREY0Cis6NDAxMDg2MDAwNEEyMkQ5MkMzRDIyMkMyQUY4NTEzQzEyMDEyMEQzMDE2MEFDMjE2QzIwMDkwN0ZDMTc0MDFGMEQyQUY5MDdGQzJFMDMwRTEwMzAyMTE3QUU1MUE3MDQ2MzAwQzNGRTU0MDcwM0JBMjA5MzNGNTMxQzIwOUMyMENFNEY1MTI3RTBECis6NDAxMEM2MDAwMDdCMDA3NDI2MjUxMkY5RUUzNDAwRkExMjE1ODdGRjc0ODAyNTEyRjU4MkU0MzQ3QkY1ODNFRkYwMDUxMkU1MTJCNDBDREI5MDdGQzM3NDBDRjA3NTQwMTAyMjc1MUEwMTIyRTUxQTY0MDE3MDQ1MzAwRTNFRTU0MTcwM0FBMkM1Cis6NDAxMTA2MDAwQTMzRjUzREMyMEFDMjBFRTRGNTEyN0UwMDdCMDA3NDMyMjUxMkY5RUUzNDAwRkExMjE1ODdGRjc0ODAyNTEyRjU4MkU0MzQ3QkY1ODNFRkYwMDUxMkU1MTJCNDBDREI5MDdGQzM3NDBDRjA3NTQxMTA3NTFBMDIyMkU1MUM2MENBCis6NDAxMTQ2MDAzMDE1MUNFNEY1MTI3RTAwN0IwMDc0MUIyNTEyRjlFRTM0MDBGQTEyMTU4N0ZGNzQ4MDI1MTJGNTgyRTQzNDdCRjU4M0VGRjAwNTEyRTUxMkI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUxQTIyOTA3RkU5RTAxMjE2MTcxMjQwMDAxMkE3Cis6NDAxMTg2MDBCNDAxMTMyMDAzMTE5RTA2MTIzMzA4MTIyRDA5MTIyMDBBMTM3NjBCMDAwMDEzNkY5MDdGRUJFMDI0RkU2MDE2MTQ2MDQwMjQwMjcwNjk3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjEzNzY5MDdGRUFFMEZGMTIxNzRCOEIxMjYxCis6NDAxMUM2MDA4QTEzODkxNEVBNDk2MDExQUUwMkVFOTA3RkQ0RjBBRjAxRUY5MDdGRDVGMDAyMTM3NjkwN0ZCNEUwNDQwMUYwMDIxMzc2OTA3RkVBRTBGRjEyMTc5QThCMTI4QTEzODkxNEVBNDk2MDExQUUwMkVFOTA3RkQ0RjBBRjAxRUY5MDgzCis6NDAxMjA2MDA3RkQ1RjAwMjEzNzY5MDdGQjRFMDQ0MDFGMDAyMTM3NjkwN0ZCNEUwNDQwMUYwMDIxMzc2OTA3RjAwNzQwMUYwOTA3RkI1RjAwMjEzNzYxMjE0QzMwMjEzNzY5MDdGMDA3NDAxRjA5MDdGQjVGMDAyMTM3NjkwN0ZFOEUwMjQ3RkJGCis6NDAxMjQ2MDA2MDI0MTQ2MDMxMjQwMjcwNUJBMjI2RTQzM0ZGMjVFMEZGQTIyQkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIxMzc2RTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjEzNzY5MDdGRUNFMEY0NTQ4MEZGQzQ1NDI5Cis6NDAxMjg2MDAwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjEzNzY5MDdGQjRFMDQ0MDFGMDAyMTM3NjkwN0ZFOEUwMjRGRTYwMUQyNDAyNjAwMzAyMTM3NjkwN0ZFQTBCCis6NDAxMkM2MDBFMEI0MDEwNUMyMjYwMjEzNzY5MDdGQjRFMDQ0MDFGMDAyMTM3NjkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0U0RjA5MDdGRUNFMDU0ODBGRjEzMTMxM0E3Cis6NDAxMzA2MDA1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjI2ODAzRjkwN0ZCNEUwNDQwMUYwODAzNjkwN0ZFQUUwNzAyMEEzCis6NDAxMzQ2MDA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDQ0MDJGMDIyMjAyODAzMDIxNEMyRTU0MDYzCis6NDAxMzg2MDA2MDAyMTU0MEU1NDg2MDRGNjU0NDcwNDVFNTQyRjQ2MDAyMDU0MkU1NDJDMzk1NTU0MDNEQzJBRjMwMDExODkwN0ZCOEUwMjBFMTI3OTA3RkI3RTU0OEYwQzIwMUU0RjU0OEY1NDJGNTQ0ODAxNjkwN0ZCNkUwMjBFMTBGOTA3RjA3Cis6NDAxM0M2MDBCOUU1NDhGMEQyMDFFNEY1NDhGNTQyRjU0NEQyQUY4MDA2ODU0ODQ0RTRGNTQyRTUyRTYwMkQyMDE5MDc5MDdGOUJFMDMwRTAwRUU1MkY2MDA1RTRGNTJGRDIwQ0U0RjUzRTgwMTNFNTNFRDM5NTU2NTAwQ0U1M0VCNTU2MDU3NTA0Cis6NDAxNDA2MDAyRjAxRDIwQzA1M0VDMjE5RTU0MTYwMDIxNTQxRTU0OTYwNEY2NTQ1NzA0NUU1NDNGNDYwMDIwNTQzRTU0M0MzOTU2RDQwM0RDMkFGMzAwMjE4OTA3RkJDRTAyMEUxMjc5MDdGQkJFNTQ5RjBDMjAyRTRGNTQ5RjU0M0Y1NDU4MEUyCis6NDAxNDQ2MDAxNjkwN0ZCQUUwMjBFMTBGOTA3RkJERTU0OUYwRDIwMkU0RjU0OUY1NDNGNTQ1RDJBRjgwMDY4NTQ5NDVFNEY1NDNFNTNBNjAyRDIwMUEwNzkwN0Y5QUUwMzBFMjBFRTUzQjYwMDVFNEY1M0JEMjBFRTRGNTNGODAxM0U1M0ZEMzVFCis6NDAxNDg2MDA5NTZFNTAwQ0U1M0ZCNTZFMDU3NTNCMDFEMjBFMDUzRkMyMUE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUxQzkwN0I0MkUwRjUxRDkwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjAyMkU0OTA3RkM1Cis6NDAxNEM2MDA5M0YwOTA3RjlDNzQzMEYwOTA3Rjk2RTA0NDEwRjA5MDdGOTQ3NDBERjA5MDdGOUQ3NDlBRjA5MDdGOTdFMDU0RkRGMDkwN0Y5NTc0MjNGMDkwN0Y5RTc0ODRGMEU0OTA3RkM3RjA5MDdGQzlGMDkwN0ZDRkYwNzU5ODQwNDNBODlFCis6NDAxNTA2MDAxMEMyMUJDMjA1QzIyMUMyMEJDMjEzRjU3Q0Y1NEFDMjExQzIxNUY1NDJDMjE5RjU0NEY1NDhDMjIzQzIxQ0Y1MkRGNTJGQzIwN0MyMDBDMjFGRjUzRUMyMDlEMjBDRjUyNjkwN0ZDQkYwOTA3RkNERjA5MDdGRDFGMDc1QzA0MDQzCis6NDAxNTQ2MDA0M0E4NDBDMjFEQzIwNkMyMjJDMjBEQzIxNEY1N0RGNTRCQzIxMkMyMTZGNTQzQzIxQUY1NDVGNTQ5QzIyNEMyMUVGNTM5RjUzQkMyMDhDMjAwQzIyMEY1M0ZDMjBBRDIwRTc1MzIwMTkwN0ZERjc0RkZGMDkwN0ZERUYwRDIyOERFCis6NDAxNTg2MDAyMkJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1ODIyOUY1ODJFNTUzCis6NDAxNUM2MDA4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwQTNFMDIyNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkUwQUU5MjU4MkY4RTJGNTExCis6NDAxNjA2MDBGMDA4RTIyMkU1ODMyQUY1ODNFOTkzRjVGMEEzRTk5MzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjc4N0ZFNEY2RDhGRDc1ODE3RDBFCis6NDAxNjQ2MDAwMjE2ODQwMjE2QzlFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAxODFBCis6NDAxNjg2MDBDNUU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERTM5Cis6NDAxNkM2MDBFNzgwQkU3NTExMDE5MDdGOTJFMDU0RkRGMDkwN0ZBRUUwRkZEMzkyMjZFNDMzRkVFRjRFRjBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NEM1Cis6NDAxNzA2MDAwMUYwOTA3RkFFRTA0NDBERjBEMkFGRDJCQ0QyQkVEMjJEMTIxODdGQzIyN0MyMjVDMjI4MzAyODAzMTIwQTgzOTA3RkQ4RTA2NTEwNjAwOEUwRjUxMDEyMTM3RTgwRUEzMDI3MDdDMjI3MTIxMTdCODBFMDMwMkNEREMyMkMxMkM1Cis6NDAxNzQ2MDAwMDI2ODBENjIyRTRGRTc1MTdGRjc1MTgxOTc1MTkxMkFCMTdBQTE4QTkxOTkwMDAwMTEyMTVBMDY0MDI3MDJEQUQwNjBFRURCNTA3MDEyMjkwMDAwMjEyMTVERjg1RjAxNUY1MTY2MjE1RTUxNTYyMTZFNTE2NjIxNTI5RkRFNTUxCis6NDAxNzg2MDAxNTNBQTkwNTc1MTdGRkY1MTg4OTE5ODBDMzdCMDA3QTAwNzkwMDIyOEYxNUU0RjUxNjc1MTdGRjc1MTgxOTc1MTk4NkFCMTdBQTE4QTkxOTkwMDAwMTEyMTVBMEI0MDMxREFGMTYwNTE2RUZCNTE1MDEyMjEyMTU4NzdFMDAyOUJFCis6NDAxN0M2MDBGRkVFM0FBOTA3NzUxN0ZGRjUxODg5MTk4MEQ0N0IwMDdBMDA3OTAwMjJFNDkwN0Y5M0YwOTA3RjlDRjA5MDdGOTRGMDkwN0Y5RDc0MDJGMDkwN0Y5N0YwRTQ5MDdGOTVGMDkwN0Y5RTc0RkZGMEU0OTA3Rjk4RjA5MDdGOURGMDAzCis6NDAxODA2MDAyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMjc1MzkxRUY5MDI0Cis6NDAxODQ2MDA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjJDNTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGRDZFMDU0RkJGMERECis6NDAxODg2MDBFMDQ0MDhGMDMwMkQwNEUwNDQwMkYwN0ZGNDdFMDExMjAwMDY5MDdGRDZFMDU0RjdGMEUwNDQwNEYwMjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJDMTI1Cis6NDAxOEM2MDBBQTAxMUEwMDAzMUIwMzAwMDBDMTI3QzEyQ0MxMjZDMTJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMDMxCis6NDAxOTA2MDAwMDQwQ0QwNjBGMDEwMDAwMDEwMjAwMDEwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDc4Cis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAxMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUYzCis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAzNjAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTMwMDQyMDAyMDAwNTMwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDQxMDA2NDAwNjEwMDcwMDA3NDAwNjUwMEY5Cis6NDAxQTA2MDA3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6NDAxQTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6NDAxQTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6NDAxQUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMTgzMTAwMDIxQjc4Cis6MDkxQjA2MDAwNDAwMDIxODA3MDAwMjE4NTgzRgorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2EyOHguSEVYIGIvZmlybXdhcmUva2V5c3Bhbi91c2EyOHguSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmMGY3ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTI4eC5IRVgKQEAgLTAsMCArMSwxNDEgQEAKKzowMzAwMzMwMDAyMTJGN0JGCis6MTAwMDAzMDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMEJGCis6MTAwMDEzMDA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDMxCis6MEYwMDIzMDA3Rjk1RjA5MDdGOUU3NDA3RjBFNDkwN0Y5OEYwMjIxNQorOjEwMDA0NjAwMzAwOTE4MTIxMzFCRUZDMzk1M0M0MDAzMDIwMEQ4OTBFOQorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMDlDMjAwODA3NzMwMDMzQjkwN0ZGNgorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMTMxQkVGQzM5NDQwNTA2NDkwN0VFRQorOjEwMDA3NjAwNDBFMDEzOTIwOTkwN0ZDN0UwMTRGNTE5MjAwMDExNjA0MworOjEwMDA4NjAwMEZGNTA4N0U3RTdGNDE3NTBDN0U3NTBENDExMjBDQkEwOAorOjEwMDA5NjAwQzIwM0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzI0OAorOjEwMDBBNjAwMTIxMzFCRUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMDlCMAorOjEwMDBCNjAwOTA3RkM5RTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0RDOAorOjEwMDBDNjAwN0ZDMTc1MEM3RDc1MERDMTEyMENCQUQyMDNFNDkwN0YwOQorOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTYwMTIxMUQ2OEZCRAorOjEwMDBFNjAwMTkxMjEzMjc4RjM2RTUxOUMzOTUzQTUwMEYxMjEyRUJFMgorOjEwMDBGNjAwRUYzMEUwMDhFNTM2MjBFNzAzMzAwQjVFQzIwQkU1MTk2QQorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMTMwMEE1Cis6MDMwMDAwMDAwMjBFMDBFRAorOjQwMDEwNjAwNjA1OEI0ODAwMzQzMzYwMkU1MzYzMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0U3RjgwNzUwQzdFNzUwRDgwQUYzNjEyMEY0QkU1MTkyNUUwOTA3RkI3RjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDhENAorOjQwMDE0NjAwOTA3RTgwRTUzNkYwN0U3RTdGODE3NTBDN0U3NTBEODExMjBDREZFNTE5MDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwNTAzMDIwM0MxQzIwNUU0RjUxODc0NDAyNTE4RjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxODdDMDA3QjAxN0FGMQorOjQwMDE4NjAwN0U3OTAwMjQwMEY5RUMzNDdFRkFFRjEyMEVEMjA1MThFNTE4QjQyMEQ3OTA3RTAwRTA2MDY4OTA3RTAzRTA2MDI0N0YwMUU0RkQxMjExQjE3RjAzN0RDRDEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMEU0OTBFMAorOjQwMDFDNjAwN0UxM0YwODAzMDkwN0UwMUUwRkYxMjEwMzU5MDdFMDJFMEZGMTIxMDVCN0YwMTkwN0UxMUUwRkQxMjExQjE3RjAzN0QwNzEyMTFCMTQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0Y5ODc0MTJGMEU1NDA0NDA2OTAzRQorOjQwMDIwNjAwQzAwMEYwOTA3RTAzRTA3MDA2OTA3RTEzRTA3MDA4RTQ5MDdFMTNGMDc1MjVGRjkwN0UwNUUwNjAxMkEzRTA1NDNGRjU0NDkwN0Y5ODc0MTNGMDkwQzAwMEU1NDRGMDkwN0UwN0UwNjAyQkEzRTA2MDA1NDM0MjgwODAwMzUzNDJEQQorOjQwMDI0NjAwN0Y1MzQyRkM5MDdFMDlFMDYwMTE0MzQyMDJBM0UwRkYxMjEwQTc5MDdFMEJFMEZGMTIxMENEQUY0MjEyMTA4MTkwN0UwM0UwNjAwODUzNDI3RkFGNDIxMjEwODE5MDdFMENFMDYwMThBM0UwNjAwNTQzNDYwMjgwMDM1MzQ2RkRCNAorOjQwMDI4NjAwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzQ2MDE4MDAzNTM0NkZFOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTEyRTBGNTNBQTNFMDEzOTIwREEzRTBGNTNDQTNFMDYwMDU0MzQ2MTA4QgorOjQwMDJDNjAwODAwMzUzNDZFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxNkUwNjAzMjUzNDRCRjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjEyREZFRjU0RkU5MEMwMDBGMDUzM0VGREU0RkZBRDNFMTIwRgorOjQwMDMwNjAwMTFCMUU0RjUyQUY1MjlEMjA3OTA3RTE3RTA2MDBGNDMzRTAyRTRGRkFEM0UxMjExQjE3NTI5MDFEMjA3OTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTU0MDQ0MDQ5MEMwMDBGMEQyMDA5MDdFMTlFMDYwMTE0MzQ0NDA5MDdGOThGMgorOjQwMDM0NjAwNzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzM0VGRUU0RkZBRDNFMTIxMUIxNzUyQjAxRDIwNzkwN0UxQkUwNjAwRjQzM0UwMUU0RkZBRDNFMTIxMUIxRTRGNTJCRDIwNzkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTI4NAorOjQwMDM4NjAwRjBFNTQwNDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIwQjkwN0UxRUUwNjAwODc1MkMwMUU0RjUzOEQyMDc5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjAzRTQ5MDdGQ0ZGMDMwMUE1MkU1Mzg5MgorOjQwMDNDNjAwNjAwMjE1MzgyMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyRDIxMzEyMTJERkVGNTQwMUY1MTk2NTJBNjAwNTg1MTkyQUQyMDcxMjEzMzNFRjU0ODBGNTE5NjUyNjYwMDU4NTE5MjZEMjA3MzAwRDExMTI3RgorOjQwMDQwNjAwMTMzM0VGNTQxMEY1MTk2NTI1NjAwNTg1MTkyNUQyMDcyMDFCMDMwMjA3RUMzMDBBMTgxMjEzNkZFRkMzOTUzRDQwMDMwMjA0QUU5MDdGQzE3NDAxRjBDMjBBQzIwMDgwNzczMDA0M0I5MDdGQ0FFMDIwRTE2RDEyMTM2RkVGQzM1QQorOjQwMDQ0NjAwOTQ0MDUwNjQ5MDdENDBFMDEzOTIwQTkwN0ZDQkUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEN0Y0MTc1MEM3RDc1MEQ0MTEyMEQwNEMyMDRFNDkwN0ZDQkYwODAzOTkwN0ZDQ0UwMjBFMTMyMTIxMzZGRUZDMzk0NDA1MDI5OTBCQworOjQwMDQ4NjAwN0NDMEUwMTM5MjBBOTA3RkNERTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0M3RkMxNzUwQzdDNzUwREMxMTIwRDA0RDIwNEU0OTA3RkNERjA5MDdGQkFFMDMwRTEwMzAyMDUzNjEyMTIyMDhGMTkxMjEzN0I4RjM3RTUxOUMzOTUyQgorOjQwMDRDNjAwM0I1MDBGMTIxMzU3RUYzMEUwMDhFNTM3MjBFNzAzMzAwQzVFQzIwQ0U1MTk2MDU4QjQ4MDAzNDMzNzAyRTUzNzMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RDdGODA3NTBDN0Q3NTBEODBBRjM3MTIwRjg0RTUwMworOjQwMDUwNjAwMTkyNUUwOTA3RkJCRjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDg5MDdEODBFNTM3RjA3RTdEN0Y4MTc1MEM3RDc1MEQ4MTEyMEQyOUU1MTkwNDkwN0ZCQkYwOTA3RkQwRTAzMEUxMDYyMDA2MDMwMjA3OTdDMjA2RTRGOAorOjQwMDU0NjAwRjUxODc0QzAyNTE4RjU4MkU0MzQ3QkY1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5MjAyNDIwRjlFQzM0N0VGQUVGMTIwRUQyMDUxOEU1MThCNDIwRDc5MDdFMjBFMDYwNjg5MDdFMjNFMDYwMjQ3RjAxRTRGRDEyMTFGQjdGMDMyOQorOjQwMDU4NjAwN0RDRDEyMTFGQjQzNDc4MDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEU0OTA3RTMzRjA4MDMwOTA3RTIxRTBGRjEyMTExOTkwN0UyMkUwRkYxMjExM0Y3RjAxOTA3RTMxRTBGRDEyMTFGQjdGMDM3RDA3MTIxMUZCNDM0NzgwOTA0OAorOjQwMDVDNjAwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0Y5ODc0MEFGMEU1NDE0NDA2OTBDMDAwRjA5MDdFMjNFMDcwMDY5MDdFMzNFMDcwMDhFNDkwN0UzM0YwNzUyRUZGOTA3RTI1RTA2MDEyQTNFMDU0M0ZGNTQ1OTA3Rjk4NzQwQkYwOTBFQgorOjQwMDYwNjAwQzAwMEU1NDVGMDkwN0UyN0UwNjAyQkEzRTA2MDA1NDM0MzgwODAwMzUzNDM3RjUzNDNGQzkwN0UyOUUwNjAxMTQzNDMwMkEzRTBGRjEyMTE2NTkwN0UyQkUwRkYxMjExOEJBRjQzMTIxMEYzOTA3RTIzRTA2MDA4NTM0MzdGQUZGRQorOjQwMDY0NjAwNDMxMjEwRjM5MDdFMkNFMDYwMThBM0UwNjAwNTQzNDcwMjgwMDM1MzQ3RkQ5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMkVFMDYwMThBM0UwNjAwNTQzNDcwMTgwMDM1MzQ3RkU5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBENAorOjQwMDY4NjAwOTA3RTMyRTBGNTNCQTNFMDEzOTIwRUEzRTBGNTNEQTNFMDYwMDU0MzQ3MTA4MDAzNTM0N0VGOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTM2RTA2MDMyNTM0NUJGOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y3OQorOjQwMDZDNjAwOTg3NDA5RjAxMjEzNEJFRjU0RkU5MEMwMDBGMDUzM0ZGREU0RkZBRDNGMTIxMUZCRTRGNTMzRjUzMkQyMDg5MDdFMzdFMDYwMEY0MzNGMDJFNEZGQUQzRjEyMTFGQjc1MzIwMUQyMDg5MDdFMzhFMDYwMTA5MDdGOTg3NDBBRjA0MworOjQwMDcwNjAwRTU0MTQ0MDQ5MEMwMDBGMEQyMDA5MDdFMzlFMDYwMTE0MzQ1NDA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3RTNBRTA2MDBGNTMzRkZFRTRGRkFEM0YxMjExRkI3NTM0MDFEMjA4OTA3RTNCRTA2MDBGNDMzRjAxRTRFOQorOjQwMDc0NjAwRkZBRDNGMTIxMUZCRTRGNTM0RDIwODkwN0UzQ0UwNjAwRTkwN0Y5ODc0MEFGMEU1NDE0NDAyOTBDMDAwRjA5MDdFM0RFMDYwMDJEMjBDOTA3RTNFRTA2MDA4NzUzNTAxRTRGNTM5RDIwODkwN0UzRkUwNjAxMTkwN0ZENzc0MTM4OQorOjQwMDc4NjAwRjA3NDMzRjA3NDE2RjA3NDM2RjBEMjA0RTQ5MDdGRDFGMDMwMUE1MkU1Mzk2MDAyMTUzOTMwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJDMjEzMTIxMzRCRUY1NDAxRjUxOTY1MzM2MDA1ODUxOTMzRDI3OQorOjQwMDdDNjAwMDgxMjEzODdFRjU0ODBGNTE5NjUyRjYwMDU4NTE5MkZEMjA4MzAwRTExMTIxMzg3RUY1NDEwRjUxOTY1MkU2MDA1ODUxOTJFRDIwODMwMUEyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTE1OTA3QjQyRTBGNTE2OTAzNQorOjQwMDgwNjAwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDkyMEU1MEE3MDQwMzAwNzM5RTUzODcwMzVDMjA3RjUxODdFMDA3QjAwNzQyNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVCRAorOjQwMDg0NjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzgxMEU0RjUyQzc1MEEwMTIyRTUwQTY0MDE3MDQwMzAwODM5RTUzOTcwMzVDMjA4RjUxODdFMDA3QjAwNzQyRDI1MThGOUVFMzQwMEZBMTI5NworOjQwMDg4NjAwMEU4Q0ZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzkxMEU0RjUzNTc1MEEwMjIyRTUwQTY0MDI3MDM2MzAxNDJGQzIxNEY1MTg3RTAwN0IwMDc0MEUyNTE4RjlFRTM0MDA4MworOjQwMDhDNjAwRkExMjBFOENGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA1REI5MDdGQzM3NDA1RjA3NTBBMDMyMkU1MTU2MDMwMTUxNUU0RjUxODdFMDA3QjAwNzQxNDI1MThGOUVFMzQwMEZBMTIwRThDRkY3NDgwMjVGMgorOjQwMDkwNjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUwQTIyOTA3RkU5RTAxMjBFRTQwQTA4MDAwQTdDMDEwQUU4MDMwOTQ0MDYwOUZCMDgwOUY1MDkwOUREMEEwOUVDMEIwMDAwMEIzNzkwN0YzRAorOjQwMDk0NjAwRUJFMDI0RkU2MDE5MTQ2MDYxMjQwMjYwMDMwMjA5RDM3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjdCNzU4MzE5RjA3NTgyNzQ3NTgzMTlCMgorOjQwMDk4NjAwRjA3NTgyNjY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwQjNFOTA3RkVBRTBGRjEyMEYwQUVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjA4NQorOjQwMDlDNjAwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0YwMEU1MDlGMDkwN0ZCNTc0MDFGMDAyMEIzRTkwN0ZFQUUwRjUwOTAyMEIzRTEyMEI0NjAyMEIzRTkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIwNQorOjQwMEEwNjAwMEIzRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTBFNDMzRkYyNUUwRkZBMjE2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0VFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0YwNAorOjQwMEE0NjAwRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkU4RTAyNEZFNjAxRDI0MDIwRgorOjQwMEE4NjAwNjAwMzAyMEIzRTkwN0ZFQUUwQjQwMTA1QzIxMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZCNgorOjQwMEFDNjAwRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTA4MDNGOTA3RkI0RTA0NDAxRjA0OQorOjQwMEIwNjAwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJENAorOjQwMEI0NjAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDE4RjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUyNDc1MTgwMTdCMDA3NDI0MjUxOEY5RTQzNDAwRkE4QgorOjQwMEI4NjAwRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0EwMUU0RjUzOEY1MTNGNTM2QzIwN0MyMEJDMjA1QzIwMEMyMDlDMjEzOTA3Rjk4NzQxM0YwNzU0NDAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExQjE3RjEwOEY0MjEyMTA4MTkwN0YwMgorOjQwMEJDNjAwOTg3NDEyRjA3RjAxOEY0MEVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQxNEYwNzU0NjgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMUIxRTRGRjdFQTNBRDA2OEQzRTEyMTFCMTkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTE4RQorOjQwMEMwNjAwQjE3RjAxMTIxMjZBN0YwMzdEMDcxMjExQjEyMDFCMDMwMjBDQjc3NTJEMDE3NTE4MDE3QjAwNzQyRDI1MThGOUU0MzQwMEZBRTQxMjBFRDIwNTE4RTUxOEI0MDlFQTc1M0IwMUU0RjUzOUY1MTNGNTM3QzIwOEMyMENDMjA2QzJDRAorOjQwMEM0NjAwMDBDMjBBQzIxMzkwN0Y5ODc0MEJGMDc1NDUwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUZCN0YxMDhGNDMxMjEwRjM5MDdGOTg3NDBBRjA3RjAxOEY0MUVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQwQ0YwNzU0NzgwOTBDMDAwNzQ0RQorOjQwMEM4NjAwODBGMDBGRTRGRDEyMTFGQkU0RkY3RUEzQUQwNjhEM0YxMjExRkI5MDdGOTg3NDA5RjA5MEMwMDBFNEYwN0YwNTdEN0YxMjExRkI3RjAxMTIxMjhCN0YwMzdEMDcxMjExRkJEMjEyMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJBNQorOjQwMENDNjAwRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0YyMAorOjQwMEQwNjAwOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU1QworOjQwMEQ0NjAwODZERkY3MDU4NkQyQUYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDZFMDQ0ODBGMDQzODcwMTAwMDAwMDAwMDAyMkQyMTk5MDdGOTJFMDQ0MDJGMDkwN0ZBRUUwRkZEMzkyMTBFNDMzRkVFRjRFRjA4OQorOjQwMEQ4NjAwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOTA3RkFCNzRGRkYwOTA3RkE5RjA5MDdGQUFGMDUzOTFFRjkwN0ZBRkUwNDQwMUYwOTA3RkFFRTA0NDBERjBEMkFGRDIxQTEyMTI0NUMyMTFFNEY1MEJGNTEzQzIxN0MyMTJENAorOjQwMERDNjAwOTA3RkExMDRGMDkwN0ZEOEUwNjUxNzYwMTAzMDEyMDVEMjFBMTIwMDQ2OTA3RkQ4RTBGNTE3ODAwODMwMTIwNUMyMUExMjAwNDYzMDExMDdDMjExMTIwOTIxODBENjMwMThEM0MyMTgxMjEzOTM4MENDMjI3ODdGRTRGNkQ4RkRDNworOjQwMEUwNjAwNzU4MTQ3MDIwRTQ3MDIwRDZGRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzM0M0NTQwRjQ0MjBDODgzNDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDBGNQorOjQwMEU0NjAwODA5MDEyQUNFNDdFMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTNBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBM0ZBRTQ5M0EzRjhFNDkzQTNDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0ExRQorOjQwMEU4NjAwREZFOURFRTc4MEJFQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTVCOAorOjQwMEVDNjAwODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODJGOEU0OTM3MDEyNzQwMTkzNzAwREEzQTM5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNDMQorOjQwMEYwNjAwQTNBMzgwREY4RjE4RTRGNTE5NzUxQUZGNzUxQjE5NzUxQzg2QUIxQUFBMUJBOTFDOTAwMDAxMTIwRUE1QjQwMzFEQUYxOTA1MTlFRkI1MTgwMTIyMTIwRThDN0UwMDI5RkZFRTNBQTkwNzc1MUFGRkY1MUI4OTFDODBENDdCMDBBNQorOjQwMEY0NjAwN0EwMDc5MDAyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjAwMzYwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxMzI3OEYxQUVGNDIzNjgwQ0EyMjhGMUFGQworOjQwMEY4NjAwMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIxMzNGMDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjAwQTEyMTM3QjhGMUFFRjQyMzc4MENBMjJDMEUwQzA4M0MwODJDMDg1QzA4OAorOjQwMEZDNjAwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIxMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDBDNgorOjQwMTAwNjAwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTA4QQorOjQwMTA0NjAwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMUYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTM0OQorOjQwMTA4NjAwRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDEyRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDREOQorOjQwMTBDNjAwNTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE2RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQUYwOTAyQQorOjQwMTEwNjAwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA4RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBBRgorOjQwMTE0NjAwQzAwMDc0QkZGMDkwN0Y5ODc0MDlGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBDRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0ZFQworOjQwMTE4NjAwOTBDMDAwRjAyMjkwN0Y5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MEVGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxN0YwOTA3NQorOjQwMTFDNjAwQzAwMEVGRjA5MDdGOTg3NDE1RjA5MEMwMDBFREYwMjIxMjEzMEY4RjFBMTIxMzBGOEYxQkU1MUE2NTFCNjAxMjEyMTMwRjhGMUFFNTFBNjUxQjYwMDcxMjEzMEY4RjFCODBFOEFGMUEyMjkwN0Y5ODc0MEJGMEU1NDU1NDdGOTA5OAorOjQwMTIwNjAwQzAwMEYwOTA3Rjk4NzQwRkYwOTBDMDAwRUZGMDkwN0Y5ODc0MERGMDkwQzAwMEVERjAyMjEyMTM2MzhGMUExMjEzNjM4RjFCRTUxQTY1MUI2MDEyMTIxMzYzOEYxQUU1MUE2NTFCNjAwNzEyMTM2MzhGMUI4MEU4QUYxQTIyOTBDOAorOjQwMTI0NjAwN0ZENkUwNTRGQkYwRTA0NDA4RjAzMDFBMDRFMDQ0MDJGMDdGRjQ3RTAxMTIxMkM4OTA3RkQ2RTA1NEY3RjBFMDQ0MDRGMDIyQUUwN0U0RkZFNTNFNTQ3RkZEMTIxMUIxOTA3Rjk4NzQxMUYwOTBDMDAwRUVGMEU0RTUzRTQ0ODBFOAorOjQwMTI4NjAwRkQxMjExQjEyMkFFMDdFNEZGRTUzRjU0N0ZGRDEyMTFGQjkwN0Y5ODc0MDlGMDkwQzAwMEVFRjBFNEU1M0Y0NDgwRkQxMjExRkIyMjA1MEUwMjAwMDAwMDAwMDMxNDAzMDAwMEMxMTFDMTE4QzE5NUMxMTBDMTE2MDEwQTAwQzE5QworOjQwMTJDNjAwOUIwMDhFMTg4RjE5RTUxOTE1MTlBRTE4NzAwMjE1MTg0RTYwMDUxMjBENEU4MEVFMjI5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMDAwMDAwMDAwMjBGRTcwMDAyMTM4QQorOjQwMTMwNjAwMDQwMDAyMEZCRDAwMDIxMDBFOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOEYwOTA1MAorOjQwMTM0NjAwQzAwMEUwRkYyMjkwN0Y5ODc0MDlGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MENGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MERGMDkwQzAwMEUwRkZDNQorOjQwMTM4NjAwMjI5MDdGOTg3NDBFRjA5MEMwMDBFMEZGMjIxMjAwMDMxMjBENUYxMjBCNDYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxMDAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3NgorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMDA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGNAorOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjA0MUEwNjAwNzIwMDAwMDA2QQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhhLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4YS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE0OTMyZQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4YS5IRVgKQEAgLTAsMCArMSwxNDEgQEAKKzowMzAwMzMwMDAyMTJGOUJECis6MTAwMDAzMDBFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMEJGCis6MTAwMDEzMDA5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjA5MDMxCis6MEYwMDIzMDA3Rjk1RjA5MDdGOUU3NDA3RjBFNDkwN0Y5OEYwMjIxNQorOjEwMDA0NjAwMzAwOTE4MTIxMzI3RUZDMzk1M0M0MDAzMDIwMEQ4OTBERAorOjEwMDA1NjAwN0ZCRjc0MDFGMEMyMDlDMjAwODA3NzMwMDMzQjkwN0ZGNgorOjEwMDA2NjAwQzZFMDIwRTE2RDEyMTMyN0VGQzM5NDQwNTA2NDkwN0VFMgorOjEwMDA3NjAwNDBFMDEzOTIwOTkwN0ZDN0UwMTRGNTE5MjAwMDExNjA0MworOjEwMDA4NjAwMEZGNTA4N0U3RTdGNDE3NTBDN0U3NTBENDExMjBDQzhGQQorOjEwMDA5NjAwQzIwM0U0OTA3RkM3RjA4MDM5OTA3RkM4RTAyMEUxMzI0OAorOjEwMDBBNjAwMTIxMzI3RUZDMzk0NDA1MDI5OTA3REMwRTAxMzkyMDlBNAorOjEwMDBCNjAwOTA3RkM5RTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0RDOAorOjEwMDBDNjAwN0ZDMTc1MEM3RDc1MERDMTEyMENDOEQyMDNFNDkwN0ZGQgorOjEwMDBENjAwQzlGMDkwN0ZCNkUwMzBFMTAzMDIwMTYwMTIxMUU0OEZBRgorOjEwMDBFNjAwMTkxMjEzMzM4RjM2RTUxOUMzOTUzQTUwMEYxMjEzMEZCMQorOjEwMDBGNjAwRUYzMEUwMDhFNTM2MjBFNzAzMzAwQjVFQzIwQkU1MTk2QQorOjBDMDAzNjAwOTA3Rjk4NzQxMEYwOTBDMDAwRTBGRjIyNTIKKzowMzAwNDMwMDAyMTMwMEE1Cis6MDMwMDAwMDAwMjBFMEVERgorOjQwMDEwNjAwNjA1OEI0ODAwMzQzMzYwMkU1MzYzMEU3MjZFNTE5RDM5NDIwNDAwMzc1MTkyMDg1MTkwODdFN0U3RjgwNzUwQzdFNzUwRDgwQUYzNjEyMEY1OUU1MTkyNUUwOTA3RkI3RjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDhDNgorOjQwMDE0NjAwOTA3RTgwRTUzNkYwN0U3RTdGODE3NTBDN0U3NTBEODExMjBDRURFNTE5MDQ5MDdGQjdGMDkwN0ZDRUUwMzBFMTA2MjAwNTAzMDIwM0MxQzIwNUU0RjUxODc0NDAyNTE4RjU4MkU0MzQ3Q0Y1ODNFMEZGRTUxODdDMDA3QjAxN0FFMworOjQwMDE4NjAwN0U3OTAwMjQwMEY5RUMzNDdFRkFFRjEyMEVFMDA1MThFNTE4QjQyMEQ3OTA3RTAwRTA2MDY4OTA3RTAzRTA2MDI0N0YwMUU0RkQxMjExQkY3RjAzN0RDRDEyMTFCRjQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMEU0OTBCNgorOjQwMDFDNjAwN0UxM0YwODAzMDkwN0UwMUUwRkYxMjEwNDM5MDdFMDJFMEZGMTIxMDY5N0YwMTkwN0UxMUUwRkQxMjExQkY3RjAzN0QwNzEyMTFCRjQzNDY4MDkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0Y5ODc0MTJGMEU1NDA0NDA2OTAwNgorOjQwMDIwNjAwQzAwMEYwOTA3RTAzRTA3MDA2OTA3RTEzRTA3MDA4RTQ5MDdFMTNGMDc1MjVGRjkwN0UwNUUwNjAxMkEzRTA1NDNGRjU0NDkwN0Y5ODc0MTNGMDkwQzAwMEU1NDRGMDkwN0UwN0UwNjAyQkEzRTA2MDA1NDM0MjgwODAwMzUzNDJEQQorOjQwMDI0NjAwN0Y1MzQyRkM5MDdFMDlFMDYwMTE0MzQyMDJBM0UwRkYxMjEwQjU5MDdFMEJFMEZGMTIxMERCQUY0MjEyMTA4RjkwN0UwM0UwNjAwODUzNDI3RkFGNDIxMjEwOEY5MDdFMENFMDYwMThBM0UwNjAwNTQzNDYwMjgwMDM1MzQ2RkQ3QworOjQwMDI4NjAwOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTBFRTA2MDE4QTNFMDYwMDU0MzQ2MDE4MDAzNTM0NkZFOTA3Rjk4NzQxNEYwOTBDMDAwRTU0NkYwOTA3RTEyRTBGNTNBQTNFMDEzOTIwREEzRTBGNTNDQTNFMDYwMDU0MzQ2MTA4QgorOjQwMDJDNjAwODAwMzUzNDZFRjkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxNkUwNjAzMjUzNDRCRjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDExRjAxMjEyRURFRjU0RkU5MEMwMDBGMDUzM0VGREU0RkZBRDNFMTIwMQorOjQwMDMwNjAwMTFCRkU0RjUyQUY1MjlEMjA3OTA3RTE3RTA2MDBGNDMzRTAyRTRGRkFEM0UxMjExQkY3NTI5MDFEMjA3OTA3RTE4RTA2MDEwOTA3Rjk4NzQxMkYwRTU0MDQ0MDQ5MEMwMDBGMEQyMDA5MDdFMTlFMDYwMTE0MzQ0NDA5MDdGOThENgorOjQwMDM0NjAwNzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDkwN0UxQUUwNjAwRjUzM0VGRUU0RkZBRDNFMTIxMUJGNzUyQjAxRDIwNzkwN0UxQkUwNjAwRjQzM0UwMUU0RkZBRDNFMTIxMUJGRTRGNTJCRDIwNzkwN0UxQ0UwNjAwRTkwN0Y5ODc0MTI2OAorOjQwMDM4NjAwRjBFNTQwNDQwMjkwQzAwMEYwOTA3RTFERTA2MDAyRDIwQjkwN0UxRUUwNjAwODc1MkMwMUU0RjUzOEQyMDc5MDdFMUZFMDYwMTE5MDdGRDc3NDExRjA3NDMxRjA3NDE1RjA3NDM1RjBEMjAzRTQ5MDdGQ0ZGMDMwMUE1MkU1Mzg5MgorOjQwMDNDNjAwNjAwMjE1MzgyMDEzNDlFNTEzRDM5NDAwNDAwNDE1MTM4MDNFNzUxMzBBMzAxQjAyRDIxMzEyMTJFREVGNTQwMUY1MTk2NTJBNjAwNTg1MTkyQUQyMDcxMjEzM0ZFRjU0ODBGNTE5NjUyNjYwMDU4NTE5MjZEMjA3MzAwRDExMTI2NQorOjQwMDQwNjAwMTMzRkVGNTQxMEY1MTk2NTI1NjAwNTg1MTkyNUQyMDcyMDFCMDMwMjA3RUMzMDBBMTgxMjEzN0JFRkMzOTUzRDQwMDMwMjA0QUU5MDdGQzE3NDAxRjBDMjBBQzIwMDgwNzczMDA0M0I5MDdGQ0FFMDIwRTE2RDEyMTM3QkVGQzMzNgorOjQwMDQ0NjAwOTQ0MDUwNjQ5MDdENDBFMDEzOTIwQTkwN0ZDQkUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEN0Y0MTc1MEM3RDc1MEQ0MTEyMEQxMkMyMDRFNDkwN0ZDQkYwODAzOTkwN0ZDQ0UwMjBFMTMyMTIxMzdCRUZDMzk0NDA1MDI5OTBBMgorOjQwMDQ4NjAwN0NDMEUwMTM5MjBBOTA3RkNERTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0M3RkMxNzUwQzdDNzUwREMxMTIwRDEyRDIwNEU0OTA3RkNERjA5MDdGQkFFMDMwRTEwMzAyMDUzNjEyMTIyRThGMTkxMjEzODc4RjM3RTUxOUMzOTUwMworOjQwMDRDNjAwM0I1MDBGMTIxMzYzRUYzMEUwMDhFNTM3MjBFNzAzMzAwQzVFQzIwQ0U1MTk2MDU4QjQ4MDAzNDMzNzAyRTUzNzMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RDdGODA3NTBDN0Q3NTBEODBBRjM3MTIwRjkyRTVFOQorOjQwMDUwNjAwMTkyNUUwOTA3RkJCRjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDg5MDdEODBFNTM3RjA3RTdEN0Y4MTc1MEM3RDc1MEQ4MTEyMEQzN0U1MTkwNDkwN0ZCQkYwOTA3RkQwRTAzMEUxMDYyMDA2MDMwMjA3OTdDMjA2RTRFQQorOjQwMDU0NjAwRjUxODc0QzAyNTE4RjU4MkU0MzQ3QkY1ODNFMEZGRTUxODdDMDA3QjAxN0E3RTc5MjAyNDIwRjlFQzM0N0VGQUVGMTIwRUUwMDUxOEU1MThCNDIwRDc5MDdFMjBFMDYwNjg5MDdFMjNFMDYwMjQ3RjAxRTRGRDEyMTIwOTdGMDMwQworOjQwMDU4NjAwN0RDRDEyMTIwOTQzNDc4MDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEU0OTA3RTMzRjA4MDMwOTA3RTIxRTBGRjEyMTEyNzkwN0UyMkUwRkYxMjExNEQ3RjAxOTA3RTMxRTBGRDEyMTIwOTdGMDM3RDA3MTIxMjA5NDM0NzgwOTBGRgorOjQwMDVDNjAwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0Y5ODc0MEFGMEU1NDE0NDA2OTBDMDAwRjA5MDdFMjNFMDcwMDY5MDdFMzNFMDcwMDhFNDkwN0UzM0YwNzUyRUZGOTA3RTI1RTA2MDEyQTNFMDU0M0ZGNTQ1OTA3Rjk4NzQwQkYwOTBFQgorOjQwMDYwNjAwQzAwMEU1NDVGMDkwN0UyN0UwNjAyQkEzRTA2MDA1NDM0MzgwODAwMzUzNDM3RjUzNDNGQzkwN0UyOUUwNjAxMTQzNDMwMkEzRTBGRjEyMTE3MzkwN0UyQkUwRkYxMjExOTlBRjQzMTIxMTAxOTA3RTIzRTA2MDA4NTM0MzdGQUZEMworOjQwMDY0NjAwNDMxMjExMDE5MDdFMkNFMDYwMThBM0UwNjAwNTQzNDcwMjgwMDM1MzQ3RkQ5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMkVFMDYwMThBM0UwNjAwNTQzNDcwMTgwMDM1MzQ3RkU5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjBDNQorOjQwMDY4NjAwOTA3RTMyRTBGNTNCQTNFMDEzOTIwRUEzRTBGNTNEQTNFMDYwMDU0MzQ3MTA4MDAzNTM0N0VGOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3RTM2RTA2MDMyNTM0NUJGOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y3OQorOjQwMDZDNjAwOTg3NDA5RjAxMjEzNTdFRjU0RkU5MEMwMDBGMDUzM0ZGREU0RkZBRDNGMTIxMjA5RTRGNTMzRjUzMkQyMDg5MDdFMzdFMDYwMEY0MzNGMDJFNEZGQUQzRjEyMTIwOTc1MzIwMUQyMDg5MDdFMzhFMDYwMTA5MDdGOTg3NDBBRjAxOQorOjQwMDcwNjAwRTU0MTQ0MDQ5MEMwMDBGMEQyMDA5MDdFMzlFMDYwMTE0MzQ1NDA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3RTNBRTA2MDBGNTMzRkZFRTRGRkFEM0YxMjEyMDk3NTM0MDFEMjA4OTA3RTNCRTA2MDBGNDMzRjAxRTREQQorOjQwMDc0NjAwRkZBRDNGMTIxMjA5RTRGNTM0RDIwODkwN0UzQ0UwNjAwRTkwN0Y5ODc0MEFGMEU1NDE0NDAyOTBDMDAwRjA5MDdFM0RFMDYwMDJEMjBDOTA3RTNFRTA2MDA4NzUzNTAxRTRGNTM5RDIwODkwN0UzRkUwNjAxMTkwN0ZENzc0MTM3QQorOjQwMDc4NjAwRjA3NDMzRjA3NDE2RjA3NDM2RjBEMjA0RTQ5MDdGRDFGMDMwMUE1MkU1Mzk2MDAyMTUzOTMwMTM0OUU1MTNEMzk0MDA0MDA0MTUxMzgwM0U3NTEzMEEzMDFCMDJDMjEzMTIxMzU3RUY1NDAxRjUxOTY1MzM2MDA1ODUxOTMzRDI2RAorOjQwMDdDNjAwMDgxMjEzOTNFRjU0ODBGNTE5NjUyRjYwMDU4NTE5MkZEMjA4MzAwRTExMTIxMzkzRUY1NDEwRjUxOTY1MkU2MDA1ODUxOTJFRDIwODMwMUEyQTkwN0ZEMkUwMjBFMTIzOTA3QjQwRTA2MDA5RTBGNTE1OTA3QjQyRTBGNTE2OTAxRAorOjQwMDgwNjAwN0I0MUUwNjAwOTkwN0ZENzc0MTdGMDc0MzdGMEU0OTA3RkQzRjA5MDdGQzJFMDMwRTEwMzAyMDkyMEU1MEE3MDQwMzAwNzM5RTUzODcwMzVDMjA3RjUxODdFMDA3QjAwNzQyNDI1MThGOUVFMzQwMEZBMTIwRTlBRkY3NDgwMjVBRgorOjQwMDg0NjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzgxMEU0RjUyQzc1MEEwMTIyRTUwQTY0MDE3MDQwMzAwODM5RTUzOTcwMzVDMjA4RjUxODdFMDA3QjAwNzQyRDI1MThGOUVFMzQwMEZBMTI5NworOjQwMDg4NjAwMEU5QUZGNzQ4MDI1MThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDlEQjkwN0ZDMzc0MDlGMDc1MzkxMEU0RjUzNTc1MEEwMjIyRTUwQTY0MDI3MDM2MzAxNDJGQzIxNEY1MTg3RTAwN0IwMDc0MEUyNTE4RjlFRTM0MDA3NQorOjQwMDhDNjAwRkExMjBFOUFGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA1REI5MDdGQzM3NDA1RjA3NTBBMDMyMkU1MTU2MDMwMTUxNUU0RjUxODdFMDA3QjAwNzQxNDI1MThGOUVFMzQwMEZBMTIwRTlBRkY3NDgwMjVENgorOjQwMDkwNjAwMThGNTgyRTQzNDdCRjU4M0VGRjAwNTE4RTUxOEI0MDNEQjkwN0ZDMzc0MDNGMEU0RjUwQTIyOTA3RkU5RTAxMjBFRjIwQTA4MDAwQTdDMDEwQUU4MDMwOTQ0MDYwOUZCMDgwOUY1MDkwOUREMEEwOUVDMEIwMDAwMEIzNzkwN0YyRgorOjQwMDk0NjAwRUJFMDI0RkU2MDE5MTQ2MDYxMjQwMjYwMDMwMjA5RDM3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjBCM0U5MDdGRUFFMDcwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjdCNzU4MzE5RjA3NTgyNzQ3NTgzMTlCMgorOjQwMDk4NjAwRjA3NTgyNjY3NTgzMTlGMDc1ODI1ODc1ODMxOUYwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwNzQxOTkwN0ZENEYwNzQxMjkwN0ZENUYwMDIwQjNFOTA3RkVBRTBGRjEyMEYxOEVBNDk2MDBERUE5MDdGRDRGMEU5OTA3RkQ1RjA3NworOjQwMDlDNjAwMDIwQjNFOTA3RkI0RTA0NDAxRjAwMjBCM0U5MDdGQjRFMDQ0MDFGMDAyMEIzRTkwN0YwMEU1MDlGMDkwN0ZCNTc0MDFGMDAyMEIzRTkwN0ZFQUUwRjUwOTAyMEIzRTEyMEI0NjAyMEIzRTkwN0YwMDc0MDFGMDkwN0ZCNUYwMDIwNQorOjQwMEEwNjAwMEIzRTkwN0ZFOEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMTBFNDMzRkYyNUUwRkZBMjE2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCM0VFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0YwNAorOjQwMEE0NjAwRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkU4RTAyNEZFNjAxRDI0MDIwRgorOjQwMEE4NjAwNjAwMzAyMEIzRTkwN0ZFQUUwQjQwMTA1QzIxMDAyMEIzRTkwN0ZCNEUwNDQwMUYwMDIwQjNFOTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZCNgorOjQwMEFDNjAwRUNFMDU0ODBGRjEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMTA4MDNGOTA3RkI0RTA0NDAxRjA0OQorOjQwMEIwNjAwODAzNjkwN0ZFQUUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJENAorOjQwMEI0NjAwRTQ5MDdGOTNGMDkwN0Y5Qzc0MzBGMEU0OTA3Rjk2RjA5MDdGOTU3NEMwRjA5MDdGOUU3NDNGRjA5MDdGOTg3NDE4RjBFNEY1OEU5MDdGREY3NEZGRjA5MDdGREVGMEU0RjUyNDc1MTgwMTdCMDA3NDI0MjUxOEY5RTQzNDAwRkE4QgorOjQwMEI4NjAwRTQxMjBFRTAwNTE4RTUxOEI0MDlFQTc1M0EwMUU0RjUzOEY1MTNGNTM2QzIwN0MyMEJDMjA1QzIwMEMyMDlDMjEzOTA3Rjk4NzQxM0YwNzU0NDAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjExQkY3RjEwOEY0MjEyMTA4RjkwN0ZEOAorOjQwMEJDNjAwOTg3NDEyRjA3RjAxOEY0MEVGNDQwNjkwQzAwMEYwOTA3Rjk4NzQxNEYwNzU0NjgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMUJGRTRGRjdFQTNBRDA2OEQzRTEyMTFCRjkwN0Y5ODc0MTFGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTE3MgorOjQwMEMwNjAwQkY3RjAxMTIxMjc4N0YwMzdEMDcxMjExQkY3RjEzN0QwMTEyMTFCRjIwMUIwMzAyMENDNTc1MkQwMTc1MTgwMTdCMDA3NDJEMjUxOEY5RTQzNDAwRkFFNDEyMEVFMDA1MThFNTE4QjQwOUVBNzUzQjAxRTRGNTM5RjUxM0Y1MzdCNworOjQwMEM0NjAwQzIwOEMyMENDMjA2QzIwMEMyMEFDMjEzOTA3Rjk4NzQwQkYwNzU0NTAzOTBDMDAwNzQwM0YwN0YwQ0U0RkQxMjEyMDk3RjEwOEY0MzEyMTEwMTkwN0Y5ODc0MEFGMDdGMDE4RjQxRUY0NDA2OTBDMDAwRjA5MDdGOTg3NDBDRjAwRQorOjQwMEM4NjAwNzU0NzgwOTBDMDAwNzQ4MEYwMEZFNEZEMTIxMjA5RTRGRjdFQTNBRDA2OEQzRjEyMTIwOTkwN0Y5ODc0MDlGMDkwQzAwMEU0RjA3RjA1N0Q3RjEyMTIwOTdGMDExMjEyOTk3RjAzN0QwNzEyMTIwOTdGMTM3RDAxMTIxMjA5RDI4RAorOjQwMENDNjAwMTIyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQxMEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMEUwMDU2OAorOjQwMEQwNjAwODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyOTA3Rjk4NzQwOEYwQUYwOEU1MERGNTgyRTUwQ0Y1ODNDMkFGMDU4NjkwQzAwMDA1ODZFMEEzMDU4NkYwMDU4NkRGRjdEMkFGMjI5MDdGOTg3NDA4RjBBRjA4RTUwREY1ODJFNTBDRjU3NworOjQwMEQ0NjAwODNDMkFGMDU4NjkwQzAwMEUwMDU4NkYwQTMwNTg2REZGNzA1ODZEMkFGMjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjJEMjE5OTA3RjkyRTA0NDAyRjAwQQorOjQwMEQ4NjAwOTA3RkFFRTBGRkQzOTIxMEU0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQwREYwRDJBRkQyMUE1NgorOjQwMERDNjAwMTIxMjUzQzIxMUU0RjUwQkY1MTNDMjE3QzIxMjkwN0ZBMTA0RjA5MDdGRDhFMDY1MTc2MDEwMzAxMjA1RDIxQTEyMDA0NjkwN0ZEOEUwRjUxNzgwMDgzMDEyMDVDMjFBMTIwMDQ2MzAxMTA3QzIxMTEyMDkyMTgwRDYzMDE4RDM4QQorOjQwMEUwNjAwQzIxODEyMTM5RjgwQ0MyMjc4N0ZFNEY2RDhGRDc1ODE0NzAyMEU1NTAyMEQ3REU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAzMQorOjQwMEU0NjAwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAxMkJBRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzgyOAorOjQwMEU4NjAwQ0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU0OAorOjQwMEVDNjAwODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDFERQorOjQwMEYwNjAwOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGOEYxOEU0RjUxOTc1MUFGRjc1MUIxOTc1MUM4NkFCMUFBQTFCQTkxQzkwMDAwMTEyMEVCM0I0MDMxREFGMTkwNTE5RUZCNTE4MDEyMjEyMEU5QTdFMDAyOUZGRUVCNgorOjQwMEY0NjAwM0FBOTA3NzUxQUZGRjUxQjg5MUM4MEQ0N0IwMDdBMDA3OTAwMjI4RjFBMDUwREU1MERBRTBDNzAwMjA1MEMxNEY1ODI4RTgzRTUxQUYwMTIwMDM2MDUwREU1MERBQzBDNzAwMjA1MEMxNEY1ODI4QzgzRUZGMDE1MDhFNTA4NjA3QgorOjQwMEY4NjAwMEExMjEzMzM4RjFBRUY0MjM2ODBDQTIyOEYxQTA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMTM0QjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNTA4RTUwODYwMEExMjEzODc4RjFBRUZGOAorOjQwMEZDNjAwNDIzNzgwQ0EyMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwN0ZDNEU0RjA1MzkxRUY5MDdGQUI3NDA0RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMTEyMworOjQwMTAwNjAwNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwOEYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzI5MDdGOTgzMworOjQwMTA0NjAwNzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTFGMDkwQzAwMEVGRjA5MDdGOTg3NDEzRjBDMAorOjQwMTA4NjAwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MTRCMworOjQwMTBDNjAwRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MEJDQworOjQwMTEwNjAwRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBBRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwOEYwOTBDMDAwRUZGMDkwN0Y5ODc0MEJGMEU1NDU4MgorOjQwMTE0NjAwNTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA5RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3Rjk4NzQwQ0YwOTBDMworOjQwMTE4NjAwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBFRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwRTVDQworOjQwMTFDNjAwNDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDE3RjA5MEMwMDBFRkYwOTA3Rjk4NzQxNUYwOTBDMDAwRURGMDIyMTIxMzFCOEYxQTEyMTMxQjhGMUJFNTFBNjUxQjYwMTIxMjEzMUI4RjFBRTUxQTY1MUI2MDA3MTIxMzFCOEYxQjgwRThFRAorOjQwMTIwNjAwQUYxQTIyOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y5ODc0MEZGMDkwQzAwMEVGRjA5MDdGOTg3NDBERjA5MEMwMDBFREYwMjIxMjEzNkY4RjFBMTIxMzZGOEYxQkU1MUE2NTFCNjAxMjEyMTM2RjhGMUFFNTFBNjVBRAorOjQwMTI0NjAwMUI2MDA3MTIxMzZGOEYxQjgwRThBRjFBMjI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQTA0RTA0NDAyRjA3RkY0N0UwMTEyMTJENjkwN0ZENkUwNTRGN0YwRTA0NDA0RjAyMkFFMDdFNEZGRTUzRTU0N0ZGRDEyMTFCRjkwN0YyRgorOjQwMTI4NjAwOTg3NDExRjA5MEMwMDBFRUYwRTRFNTNFNDQ4MEZEMTIxMUJGMjJBRTA3RTRGRkU1M0Y1NDdGRkQxMjEyMDk5MDdGOTg3NDA5RjA5MEMwMDBFRUYwRTRFNTNGNDQ4MEZEMTIxMjA5MjIwNTBFMDIwMDAwMDAwMDAzMTQwMzAwMDBERgorOjQwMTJDNjAwQzExMUMxMThDMTk1QzExMEMxMTYwMTBBMDBDMTlCMDA4RTE4OEYxOUU1MTkxNTE5QUUxODcwMDIxNTE4NEU2MDA1MTIwRDVDODBFRTIyOTA3Rjk4NzQxMUYwOTBDMDAwRTBGRjIyNTNEOEVGMzIwMDAwMDAwMjBGRjUwMDAyMTM2NworOjQwMTMwNjAwMDQwMDAyMEZDQjAwMDIxMDFDOTA3Rjk4NzQxMkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxM0YwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTAyQQorOjQwMTM0NjAwQzAwMEUwRkYyMjkwN0Y5ODc0MDhGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MDlGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEFGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEJGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MENGMDkwQzAwMEUwRkZDQQorOjQwMTM4NjAwMjI5MDdGOTg3NDBERjA5MEMwMDBFMEZGMjI5MDdGOTg3NDBFRjA5MEMwMDBFMEZGMjIxMjAwMDMxMjBENkQxMjBCNDYyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjQwMTNDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjQwMTQwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjQwMTQ0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjQwMTQ4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjQwMTRDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjQwMTUwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjQwMTU0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjQwMTU4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjQwMTVDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjQwMTYwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjQwMTY0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjQwMTY4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjQwMTZDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjQwMTcwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjQwMTc0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjQwMTc4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjQwMTdDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjQwMTgwNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjQwMTg0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjQwMTg4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjQwMThDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMjAxMTAwMUZGMDBCRgorOjQwMTkwNjAwMDA0MENEMDYxNTAxMDAwMDAxMDIwMDAyMDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA3MQorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMzYwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MjAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDBGOQorOjA0MUEwNjAwNzIwMDAwMDA2QQorOjAwMDAwMDAxRkYKKworCVRoZSBmaXJtd2FyZSBjb250YWluZWQgaGVyZWluIGlzCisKKwkJQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEKKwkJS2V5c3BhbiwgQSBkaXZpc2lvbiBvZiBJbm5vU3lzIEluY29ycG9yYXRlZCAoIktleXNwYW4iKQorCisJYXMgYW4gdW5wdWJsaXNoZWQgd29yay4gVGhpcyBub3RpY2UgZG9lcyBub3QgaW1wbHkgdW5yZXN0cmljdGVkIG9yCisJcHVibGljIGFjY2VzcyB0byB0aGUgc291cmNlIGNvZGUgZnJvbSB3aGljaCB0aGlzIGZpcm13YXJlIGltYWdlIGlzCisJZGVyaXZlZC4gIEV4Y2VwdCBhcyBub3RlZCBiZWxvdyB0aGlzIGZpcm13YXJlIGltYWdlIG1heSBub3QgYmUKKwlyZXByb2R1Y2VkLCB1c2VkLCBzb2xkIG9yIHRyYW5zZmVycmVkIHRvIGFueSB0aGlyZCBwYXJ0eSB3aXRob3V0CisJS2V5c3BhbidzIHByaW9yIHdyaXR0ZW4gY29uc2VudC4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKwlQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkIGZvciB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlybXdhcmUKKwlpbWFnZSBhcyBwYXJ0IG9mIGEgTGludXggb3Igb3RoZXIgT3BlbiBTb3VyY2Ugb3BlcmF0aW5nIHN5c3RlbSBrZXJuZWwKKwlpbiB0ZXh0IG9yIGJpbmFyeSBmb3JtIGFzIHJlcXVpcmVkLgorCisJVGhpcyBmaXJtd2FyZSBtYXkgbm90IGJlIG1vZGlmaWVkIGFuZCBtYXkgb25seSBiZSB1c2VkIHdpdGgKKwlLZXlzcGFuIGhhcmR3YXJlLiAgRGlzdHJpYnV0aW9uIGFuZC9vciBNb2RpZmljYXRpb24gb2YgdGhlCisJa2V5c3Bhbi5jIGRyaXZlciB3aGljaCBpbmNsdWRlcyB0aGlzIGZpcm13YXJlLCBpbiB3aG9sZSBvciBpbgorCXBhcnQsIHJlcXVpcmVzIHRoZSBpbmNsdXNpb24gb2YgdGhpcyBzdGF0ZW1lbnQuIgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva2V5c3Bhbi91c2EyOHhiLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4Yi5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdjYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhMjh4Yi5IRVgKQEAgLTAsMCArMSwxNDIgQEAKKzowMzAwMzMwMDAyMDAyRDlCCis6MDQwMDJEMDA1M0Q4RUYzMjgzCis6MTAwMDQ2MDAzMDA5MTgxMjEzMzNFRkMzOTUzQzQwMDMwMjAwRDg5MEQxCis6MTAwMDU2MDA3RkJGNzQwMUYwQzIwOUMyMDA4MDc3MzAwMzNCOTA3RkY2Cis6MTAwMDY2MDBDNkUwMjBFMTZEMTIxMzMzRUZDMzk0NDA1MDY0OTA3RUQ2Cis6MTAwMDc2MDA0MEUwMTM5MjA5OTA3RkM3RTAxNEY1MTkyMDAwMTE2MDQzCis6MTAwMDg2MDAwRkY1MDg3RTdFN0Y0MTc1MEM3RTc1MEQ0MTEyMENDQ0Y2Cis6MTAwMDk2MDBDMjAzRTQ5MDdGQzdGMDgwMzk5MDdGQzhFMDIwRTEzMjQ4Cis6MTAwMEE2MDAxMjEzMzNFRkMzOTQ0MDUwMjk5MDdEQzBFMDEzOTIwOTk4Cis6MTAwMEI2MDA5MDdGQzlFMDE0RjUxOTIwMDAxMTYwMEZGNTA4N0U3REM4Cis6MTAwMEM2MDA3RkMxNzUwQzdENzUwREMxMTIwQ0NDRDIwM0U0OTA3RkY3Cis6MTAwMEQ2MDBDOUYwOTA3RkI2RTAzMEUxMDMwMjAxNjAxMjExRjU4RjlFCis6MTAwMEU2MDAxOTEyMTMzRjhGMzZFNTE5QzM5NTNBNTAwRjEyMTMxQjk5Cis6MTAwMEY2MDBFRjMwRTAwOEU1MzYyMEU3MDMzMDBCNUVDMjBCRTUxOTZBCis6MEMwMDM2MDA5MDdGOTg3NDEwRjA5MEMwMDBFMEZGMjI1MgorOjAzMDA0MzAwMDIxMzAwQTUKKzoxMDAwMDMwMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMDkwNkUKKzoxMDAwMTMwMDdGQzRFNEYwNTM5MUVGOTA3RkFCNzQwNEYwRDA4NkQwQUIKKzowQTAwMjMwMDg0RDA4NUQwODJEMDgzRDBFMDMyNzMKKzowMzAwMDAwMDAyMEUxMkRCCis6NDAwMTA2MDA2MDU4QjQ4MDAzNDMzNjAyRTUzNjMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RTdGODA3NTBDN0U3NTBEODBBRjM2MTIwRjVERTUxOTI1RTA5MDdGQjdGMDgwMjdFNTE5RDM5NDNGNDAwMzc1MTkzRjg1MTkwOEMyCis6NDAwMTQ2MDA5MDdFODBFNTM2RjA3RTdFN0Y4MTc1MEM3RTc1MEQ4MTEyMENGMUU1MTkwNDkwN0ZCN0YwOTA3RkNFRTAzMEUxMDYyMDA1MDMwMjAzQzFFNEY1MTg3NDQwMjUxOEY1ODJFNDM0N0NGNTgzRTBGRkU1MTg3QzAwN0IwMTdBN0U3OUFGCis6NDAwMTg2MDAwMDI0MDBGOUVDMzQ3RUZBRUYxMjBFRTQwNTE4RTUxOEI0MjBENzkwN0UwMEUwNjA2ODkwN0UwM0UwNjAyNDdGMDFFNEZEMTIxMUQwN0YwMzdEQ0QxMjExRDA0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjBFNDkwN0UxM0Y2Cis6NDAwMUM2MDBGMDgwMzA5MDdFMDFFMEZGMTIxMDU0OTA3RTAyRTBGRjEyMTA3QTdGMDE5MDdFMTFFMEZEMTIxMUQwN0YwMzdEMDcxMjExRDA0MzQ2ODA5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdGOTg3NDEyRjBFNTQwNDQwNjkwQzAwMDkzCis6NDAwMjA2MDBGMDkwN0UwM0UwNzAwNjkwN0UxM0UwNzAwOEU0OTA3RTEzRjA3NTI1RkY5MDdFMDVFMDYwMTJBM0UwNTQzRkY1NDQ5MDdGOTg3NDEzRjA5MEMwMDBFNTQ0RjA5MDdFMDdFMDYwMkJBM0UwNjAwNTQzNDI4MDgwMDM1MzQyN0Y1M0M4Cis6NDAwMjQ2MDA0MkZDOTA3RTA5RTA2MDExNDM0MjAyQTNFMEZGMTIxMEM2OTA3RTBCRTBGRjEyMTBFQ0FGNDIxMjEwQTA5MDdFMDNFMDYwMDg1MzQyN0ZBRjQyMTIxMEEwOTA3RTBDRTA2MDE4QTNFMDYwMDU0MzQ2MDI4MDAzNTM0NkZEOTA3RkZCCis6NDAwMjg2MDA5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UwRUUwNjAxOEEzRTA2MDA1NDM0NjAxODAwMzUzNDZGRTkwN0Y5ODc0MTRGMDkwQzAwMEU1NDZGMDkwN0UxMkUwRjUzQUEzRTAxMzkyMERBM0UwRjUzQ0EzRTA2MDA1NDM0NjEwODAwMzE3Cis6NDAwMkM2MDA1MzQ2RUY5MDdGOTg3NDE0RjA5MEMwMDBFNTQ2RjA5MDdFMTZFMDYwMzI1MzQ0QkY5MDdGOTg3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwOTA3Rjk4NzQxMUYwMTIxMzBGRUY1NEZFOTBDMDAwRjA1MzNFRkRFNEZGQUQzRTEyMTFEMDgwCis6NDAwMzA2MDBFNEY1MkFGNTI5RDIwNzkwN0UxN0UwNjAwRjQzM0UwMkU0RkZBRDNFMTIxMUQwNzUyOTAxRDIwNzkwN0UxOEUwNjAxMDkwN0Y5ODc0MTJGMEU1NDA0NDA0OTBDMDAwRjBEMjAwOTA3RTE5RTA2MDExNDM0NDQwOTA3Rjk4NzQxMzBFCis6NDAwMzQ2MDBGMEU1NDQ1NDdGOTBDMDAwRjA5MDdFMUFFMDYwMEY1MzNFRkVFNEZGQUQzRTEyMTFEMDc1MkIwMUQyMDc5MDdFMUJFMDYwMEY0MzNFMDFFNEZGQUQzRTEyMTFEMEU0RjUyQkQyMDc5MDdFMUNFMDYwMEU5MDdGOTg3NDEyRjBFNUY4Cis6NDAwMzg2MDA0MDQ0MDI5MEMwMDBGMDkwN0UxREUwNjAwMkQyMEI5MDdFMUVFMDYwMDg3NTJDMDFFNEY1MzhEMjA3OTA3RTFGRTA2MDExOTA3RkQ3NzQxMUYwNzQzMUYwNzQxNUYwNzQzNUYwRDIwM0MyMDVFNDkwN0ZDRkYwMzAxQTU0RTUzODlFCis6NDAwM0M2MDA2MDAyMTUzODIwMTM0QkU1MTNEMzk0MDA0MDA0MTUxMzgwNDA3NTEzMEEzMDFCMDJEMjEzMTIxMzBGRUY1NDAxRjUxOTY1MkE2MDA1ODUxOTJBRDIwNzEyMTM0QkVGNTQ4MDY0ODBGNTE5NjUyNjYwMDU4NTE5MjZEMjA3MzAwRDcxCis6NDAwNDA2MDAxMTEyMTM0QkVGNTQxMEY1MTk2NTI1NjAwNTg1MTkyNUQyMDcyMDFCMDMwMjA3RjAzMDBBMTgxMjEzODdFRkMzOTUzRDQwMDMwMjA0QjA5MDdGQzE3NDAxRjBDMjBBQzIwMDgwNzczMDA0M0I5MDdGQ0FFMDIwRTE2RDEyMTM4NzlCCis6NDAwNDQ2MDBFRkMzOTQ0MDUwNjQ5MDdENDBFMDEzOTIwQTkwN0ZDQkUwMTRGNTE5MjAwMDExNjAwRkY1MDg3RTdEN0Y0MTc1MEM3RDc1MEQ0MTEyMEQxNkMyMDRFNDkwN0ZDQkYwODAzOTkwN0ZDQ0UwMjBFMTMyMTIxMzg3RUZDMzk0NDA1MDk5Cis6NDAwNDg2MDAyOTkwN0NDMEUwMTM5MjBBOTA3RkNERTAxNEY1MTkyMDAwMTE2MDBGRjUwODdFN0M3RkMxNzUwQzdDNzUwREMxMTIwRDE2RDIwNEU0OTA3RkNERjA5MDdGQkFFMDMwRTEwMzAyMDUzODEyMTIzRjhGMTkxMjEzOTM4RjM3RTUxOTdGCis6NDAwNEM2MDBDMzk1M0I1MDBGMTIxMzZGRUYzMEUwMDhFNTM3MjBFNzAzMzAwQzVFQzIwQ0U1MTk2MDU4QjQ4MDAzNDMzNzAyRTUzNzMwRTcyNkU1MTlEMzk0MjA0MDAzNzUxOTIwODUxOTA4N0U3RDdGODA3NTBDN0Q3NTBEODBBRjM3MTIwRkZDCis6NDAwNTA2MDA5NkU1MTkyNUUwOTA3RkJCRjA4MDI3RTUxOUQzOTQzRjQwMDM3NTE5M0Y4NTE5MDg5MDdEODBFNTM3RjA3RTdEN0Y4MTc1MEM3RDc1MEQ4MTEyMEQzQkU1MTkwNDkwN0ZCQkYwOTA3RkQwRTAzMEUxMDYyMDA2MDMwMjA3OTlFNDMxCis6NDAwNTQ2MDBGNTE4NzRDMDI1MThGNTgyRTQzNDdCRjU4M0UwRkZFNTE4N0MwMDdCMDE3QTdFNzkyMDI0MjBGOUVDMzQ3RUZBRUYxMjBFRTQwNTE4RTUxOEI0MjBENzkwN0UyMEUwNjA2ODkwN0UyM0UwNjAyNDdGMDFFNEZEMTIxMjFBN0YwM0Y3Cis6NDAwNTg2MDA3RENEMTIxMjFBNDM0NzgwOTA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwRTQ5MDdFMzNGMDgwMzA5MDdFMjFFMEZGMTIxMTM4OTA3RTIyRTBGRjEyMTE1RTdGMDE5MDdFMzFFMEZEMTIxMjFBN0YwMzdEMDcxMjEyMUE0MzQ3ODA5MEFBCis6NDAwNUM2MDA3Rjk4NzQwQ0YwOTBDMDAwRTU0N0YwOTA3Rjk4NzQwQUYwRTU0MTQ0MDY5MEMwMDBGMDkwN0UyM0UwNzAwNjkwN0UzM0UwNzAwOEU0OTA3RTMzRjA3NTJFRkY5MDdFMjVFMDYwMTJBM0UwNTQzRkY1NDU5MDdGOTg3NDBCRjA5MEVCCis6NDAwNjA2MDBDMDAwRTU0NUYwOTA3RTI3RTA2MDJCQTNFMDYwMDU0MzQzODA4MDAzNTM0MzdGNTM0M0ZDOTA3RTI5RTA2MDExNDM0MzAyQTNFMEZGMTIxMTg0OTA3RTJCRTBGRjEyMTFBQUFGNDMxMjExMTI5MDdFMjNFMDYwMDg1MzQzN0ZBRkEwCis6NDAwNjQ2MDA0MzEyMTExMjkwN0UyQ0UwNjAxOEEzRTA2MDA1NDM0NzAyODAwMzUzNDdGRDkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMDkwN0UyRUUwNjAxOEEzRTA2MDA1NDM0NzAxODAwMzUzNDdGRTkwN0Y5ODc0MENGMDkwQzAwMEU1NDdGMEI0Cis6NDAwNjg2MDA5MDdFMzJFMEY1M0JBM0UwMTM5MjBFQTNFMEY1M0RBM0UwNjAwNTQzNDcxMDgwMDM1MzQ3RUY5MDdGOTg3NDBDRjA5MEMwMDBFNTQ3RjA5MDdFMzZFMDYwMzI1MzQ1QkY5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwOTA3Rjc5Cis6NDAwNkM2MDA5ODc0MDlGMDEyMTM2M0VGNTRGRTkwQzAwMEYwNTMzRkZERTRGRkFEM0YxMjEyMUFFNEY1MzNGNTMyRDIwODkwN0UzN0UwNjAwRjQzM0YwMkU0RkZBRDNGMTIxMjFBNzUzMjAxRDIwODkwN0UzOEUwNjAxMDkwN0Y5ODc0MEFGMEVCCis6NDAwNzA2MDBFNTQxNDQwNDkwQzAwMEYwRDIwMDkwN0UzOUUwNjAxMTQzNDU0MDkwN0Y5ODc0MEJGMEU1NDU1NDdGOTBDMDAwRjA5MDdFM0FFMDYwMEY1MzNGRkVFNEZGQUQzRjEyMTIxQTc1MzQwMUQyMDg5MDdFM0JFMDYwMEY0MzNGMDFFNEM5Cis6NDAwNzQ2MDBGRkFEM0YxMjEyMUFFNEY1MzREMjA4OTA3RTNDRTA2MDBFOTA3Rjk4NzQwQUYwRTU0MTQ0MDI5MEMwMDBGMDkwN0UzREUwNjAwMkQyMEM5MDdFM0VFMDYwMDg3NTM1MDFFNEY1MzlEMjA4OTA3RTNGRTA2MDExOTA3RkQ3NzQxMzY5Cis6NDAwNzg2MDBGMDc0MzNGMDc0MTZGMDc0MzZGMEQyMDRDMjA2RTQ5MDdGRDFGMDMwMUE1NEU1Mzk2MDAyMTUzOTMwMTM0QkU1MTNEMzk0MDA0MDA0MTUxMzgwNDA3NTEzMEEzMDFCMDJDMjEzMTIxMzYzRUY1NDAxRjUxOTY1MzM2MDA1ODUxOTk4Cis6NDAwN0M2MDAzM0QyMDgxMjEzOUZFRjU0ODA2NDgwRjUxOTY1MkY2MDA1ODUxOTJGRDIwODMwMEUxMTEyMTM5RkVGNTQxMEY1MTk2NTJFNjAwNTg1MTkyRUQyMDgzMDFBMkE5MDdGRDJFMDIwRTEyMzkwN0I0MEUwNjAwOUUwRjUxNTkwN0I0Mjk3Cis6NDAwODA2MDBFMEY1MTY5MDdCNDFFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjBFNDkwN0ZEM0YwOTA3RkMyRTAzMEUxMDMwMjA5MjRFNTBBNzA0MDMwMDczOUU1Mzg3MDM1QzIwN0Y1MTg3RTAwN0IwMDc0MjQyNTE4RjlFRTM0MDBGQTEyMEU5RTQ0Cis6NDAwODQ2MDBGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM4MTBFNEY1MkM3NTBBMDEyMkU1MEE2NDAxNzA0MDMwMDgzOUU1Mzk3MDM1QzIwOEY1MTg3RTAwN0IwMDc0MkQyNTE4RjlFRUJGCis6NDAwODg2MDAzNDAwRkExMjBFOUVGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDA5REI5MDdGQzM3NDA5RjA3NTM5MTBFNEY1MzU3NTBBMDIyMkU1MEE2NDAyNzAzNjMwMTQyRkMyMTRGNTE4N0UwMDdCMDA3NDBFMjUxODRDCis6NDAwOEM2MDBGOUVFMzQwMEZBMTIwRTlFRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwNURCOTA3RkMzNzQwNUYwNzUwQTAzMjJFNTE1NjAzMDE1MTVFNEY1MTg3RTAwN0IwMDc0MTQyNTE4RjlFRTM0MDBGQTEyMEU5RUNCCis6NDAwOTA2MDBGRjc0ODAyNTE4RjU4MkU0MzQ3QkY1ODNFRkYwMDUxOEU1MThCNDAzREI5MDdGQzM3NDAzRjBFNEY1MEEyMjkwN0ZFOUUwMTIwRUY2MEEwQzAwMEE4MDAxMEFFQzAzMDk0ODA2MDlGRjA4MDlGOTA5MDlFMTBBMDlGMDBCMDAwMDQ0Cis6NDAwOTQ2MDAwQjNCOTA3RkVCRTAyNEZFNjAxOTE0NjA2MTI0MDI2MDAzMDIwOUQ3NzQxOTkwN0ZENEYwNzQwMDkwN0ZENUYwMDIwQjQyOTA3RkVBRTA3MDA0N0YwMjgwMDI3RjAzNzU4MjgyNzU4MzE5RUZGMDc1ODI3Qjc1ODMxOUYwNzU4MkRBCis6NDAwOTg2MDA3NDc1ODMxOUYwNzU4MjY2NzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDc0MTk5MDdGRDRGMDc0MTI5MDdGRDVGMDAyMEI0MjkwN0ZFQUUwRkYxMjBGMUNFQTQ5NjAwREVBOTA3RkQ0RjBFOUJFCis6NDAwOUM2MDA5MDdGRDVGMDAyMEI0MjkwN0ZCNEUwNDQwMUYwMDIwQjQyOTA3RkI0RTA0NDAxRjAwMjBCNDI5MDdGMDBFNTA5RjA5MDdGQjU3NDAxRjAwMjBCNDI5MDdGRUFFMEY1MDkwMjBCNDIxMjBCNEEwMjBCNDI5MDdGMDA3NDAxRjA5MDNCCis6NDAwQTA2MDA3RkI1RjAwMjBCNDI5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjEwRTQzM0ZGMjVFMEZGQTIxNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwQjQyRTQ5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjJFCis6NDAwQTQ2MDAwQjQyOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjBCNDI5MDdGQjRFMDQ0MDFGMDAyMEI0MjkwN0ZFOEUwMjRGRTRFCis6NDAwQTg2MDA2MDFEMjQwMjYwMDMwMjBCNDI5MDdGRUFFMEI0MDEwNUMyMTAwMjBCNDI5MDdGQjRFMDQ0MDFGMDAyMEI0MjkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4M0VBCis6NDAwQUM2MDBFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDAxMDREMjEwODAzRjkwN0ZCNDdCCis6NDAwQjA2MDBFMDQ0MDFGMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkI0RTA0NDAxRjA5MDdGQjRFMDE3Cis6NDAwQjQ2MDA0NDAyRjAyMkU0OTA3RjkzRjA5MDdGOUM3NDMwRjBFNDkwN0Y5NkYwOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxOEYwRTRGNThFOTA3RkRGNzRGRkYwOTA3RkRFRjBFNEY1MjQ3NTE4MDE3QjAwNzQyNDI1MThGOTQ1Cis6NDAwQjg2MDBFNDM0MDBGQUU0MTIwRUU0MDUxOEU1MThCNDA5RUE3NTNBMDFFNEY1MzhGNTEzRjUzNkMyMDdDMjBCQzIwNUMyMDBDMjA5QzIxMzkwN0Y5ODc0MTNGMDc1NDQwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMUQwN0YxMDhGNDIxMjVGCis6NDAwQkM2MDAxMEEwOTA3Rjk4NzQxMkYwN0YwMThGNDBFRjQ0MDY5MEMwMDBGMDkwN0Y5ODc0MTRGMDc1NDY4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTFEMEU0RkY3RUEzQUQwNjhEM0UxMjExRDA5MDdGOTg3NDExRjA5MEMwMDBFNEYwN0YwNUIwCis6NDAwQzA2MDA3RDdGMTIxMUQwN0YwMTEyMTI4OTdGMDM3RDA3MTIxMUQwN0YxMzdEMDkxMjExRDAyMDFCMDMwMjBDQzk3NTJEMDE3NTE4MDE3QjAwNzQyRDI1MThGOUU0MzQwMEZBRTQxMjBFRTQwNTE4RTUxOEI0MDlFQTc1M0IwMUU0RjUzOTc4Cis6NDAwQzQ2MDBGNTEzRjUzN0MyMDhDMjBDQzIwNkMyMDBDMjBBQzIxMzkwN0Y5ODc0MEJGMDc1NDUwMzkwQzAwMDc0MDNGMDdGMENFNEZEMTIxMjFBN0YxMDhGNDMxMjExMTI5MDdGOTg3NDBBRjA3RjAxOEY0MUVGNDQwNjkwQzAwMEYwOTA3RkMwCis6NDAwQzg2MDA5ODc0MENGMDc1NDc4MDkwQzAwMDc0ODBGMDBGRTRGRDEyMTIxQUU0RkY3RUEzQUQwNjhEM0YxMjEyMUE5MDdGOTg3NDA5RjA5MEMwMDBFNEYwN0YwNTdEN0YxMjEyMUE3RjAxMTIxMkFBN0YwMzdEMDcxMjEyMUE3RjEzN0QwOTI3Cis6NDAwQ0M2MDAxMjEyMUFEMjEyMjI5MDdGOTg3NDEwRjBBRjA4RTUwREY1ODJFNTBDRjU4M0MyQUYwNTg2OTBDMDAwMDU4NkUwQTMwNTg2RjAwNTg2REZGN0QyQUYyMjkwN0Y5ODc0MTBGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEZECis6NDAwRDA2MDBDMDAwRTAwNTg2RjBBMzA1ODZERkY3MDU4NkQyQUYyMjkwN0Y5ODc0MDhGMEFGMDhFNTBERjU4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDAwNTg2RTBBMzA1ODZGMDA1ODZERkY3RDJBRjIyOTA3Rjk4NzQwOEYwQUYwOEU1MERGNTNBCis6NDAwRDQ2MDA4MkU1MENGNTgzQzJBRjA1ODY5MEMwMDBFMDA1ODZGMEEzMDU4NkRGRjcwNTg2RDJBRjIyNzQwMEY1ODY5MEZEQTU3QzA1QTNFNTgyNDU4MzcwRjkyMjkwN0ZENkUwNDQ4MEYwNDM4NzAxMDAwMDAwMDAwMDIyRDIxOTkwN0Y5MkI4Cis6NDAwRDg2MDBFMDQ0MDJGMDkwN0ZBRUUwRkZEMzkyMTBFNDMzRkVFRjRFRjBEMkU4NDNEODIwOTA3RkRFNzQwMUYwOTA3RkRGRjA5MDdGQUI3NEZGRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGRTA0NDAxRjA5MDdGQUVFMDQ0MERGMEFECis6NDAwREM2MDBEMkFGRDIxQTEyMTI2NEMyMTFFNEY1MEJGNTEzQzIxN0MyMTI5MDdGQTEwNEYwOTA3RkQ4RTA2NTE3NjAxMDMwMTIwNUQyMUExMjAwNDY5MDdGRDhFMEY1MTc4MDA4MzAxMjA1QzIxQTEyMDA0NjMwMTEwN0MyMTExMjA5MjU4MEY5Cis6NDAwRTA2MDBENjMwMThEM0MyMTgxMjEzQUI4MENDMjI3ODdGRTRGNkQ4RkQ3NTgxNDcwMjBFNTkwMjBEODFFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MEZBCis6NDAwRTQ2MDAwNEY0NTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMTJDQkU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBMzIwCis6NDAwRTg2MDBDOEM1ODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwMkUzMjI4OTgyOEE4M0U0OTMyMkJCMDEwQ0U1ODIyOUY1ODJFNTgzM0FGNTgzRTAyMkQ1Cis6NDAwRUM2MDA1MDA2RTkyNTgyRjhFNjIyQkJGRTA2RTkyNTgyRjhFMjIyRTU4MjI5RjU4MkU1ODMzQUY1ODNFNDkzMjJCQjAxMDY4OTgyOEE4M0YwMjI1MDAyRjcyMkJCRkUwMUYzMjJEMDgzRDA4MkY4RTQ5MzcwMTI3NDAxOTM3MDBEQTNBMzdBCis6NDAwRjA2MDA5M0Y4NzQwMTkzRjU4Mjg4ODNFNDczNzQwMjkzNjg2MEVGQTNBM0EzODBERjhGMThFNEY1MTk3NTFBRkY3NTFCMTk3NTFDODZBQjFBQUExQkE5MUM5MDAwMDExMjBFQjdCNDAzMURBRjE5MDUxOUVGQjUxODAxMjIxMjBFOUU3RUM0Cis6NDAwRjQ2MDAwMDI5RkZFRTNBQTkwNzc1MUFGRkY1MUI4OTFDODBENDdCMDA3QTAwNzkwMDIyOEYxQTA1MERFNTBEQUUwQzcwMDIwNTBDMTRGNTgyOEU4M0U1MUFGMDEyMDAzNjA1MERFNTBEQUMwQzcwMDIwNTBDMTRGNTgyOEM4M0VGRjAxNUJBCis6NDAwRjg2MDAwOEU1MDg2MDBBMTIxMzNGOEYxQUVGNDIzNjgwQ0EyMjhGMUEwNTBERTUwREFFMEM3MDAyMDUwQzE0RjU4MjhFODNFNTFBRjAxMjEzNTcwNTBERTUwREFDMEM3MDAyMDUwQzE0RjU4MjhDODNFRkYwMTUwOEU1MDg2MDBBMTIxM0FBCis6NDAwRkM2MDA5MzhGMUFFRjQyMzc4MENBMjJFNDkwN0Y5M0YwOTA3RjlDNzQzMEYwRTQ5MDdGOTZGMDkwN0Y5NUYwOTA3RjlFNzQyN0YwOTA3Rjk4NzQyMEYwOTA3RjlFNzQwN0YwRTQ5MDdGOTRGMDkwN0Y5RDc0RkZGMEU0OTA3Rjk3RjAyMjdDCis6NDAxMDA2MDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjExNTM5MUVGOTA3RkFCNzQwMUYwRDA4NkQwODREMDg1RDA4MkQwODNEMEUwMzJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBEMjE4NTM5MUVGOTA3RkFCNzQwODdFCis6NDAxMDQ2MDBGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMEYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMDkwQzAwMDc0QkZGMDBDCis6NDAxMDg2MDA5MDdGOTg3NDExRjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxMkYwOTBDMDAwRUZGMDkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjAyMjBBCis6NDAxMEM2MDA5MDdGOTg3NDEzRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDE0RjA5MEMwMDBFRkYwOTA3Rjk4NzQxM0YwRTU0NDU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQxM0YwOTBDMDAwNzRCRkYwOTA3Rjk4NzQxNkYwOTBDMDAwRUZGMDkwN0Y5ODA3Cis6NDAxMTA2MDA3NDEzRjBFNTQ0NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBBRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3Rjk4NzQwQkYwOTBDMDAwNzRCRkYwOTA3RkZBCis6NDAxMTQ2MDA5ODc0MDhGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDA5RjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDIyOTA3RjcxCis6NDAxMTg2MDA5ODc0MEJGMDkwQzAwMDc0QkZGMDkwN0Y5ODc0MENGMDkwQzAwMEVGRjA5MDdGOTg3NDBCRjBFNTQ1NTQ3RjkwQzAwMEYwMjI5MDdGOTg3NDBCRjA5MEMwMDA3NEJGRjA5MDdGOTg3NDBFRjA5MEMwMDBFRkYwOTA3Rjk4NzQwQkZECis6NDAxMUM2MDBGMEU1NDU1NDdGOTBDMDAwRjAyMjkwN0Y5ODc0MTNGMEU1NDQ1NDdGOTBDMDAwRjA5MDdGOTg3NDE3RjA5MEMwMDBFRkYwOTA3Rjk4NzQxNUYwOTBDMDAwRURGMDIyMTIxMzI3OEYxQTEyMTMyNzhGMUJFNTFBNjUxQjYwMTIxMjkyCis6NDAxMjA2MDAxMzI3OEYxQUU1MUE2NTFCNjAwNzEyMTMyNzhGMUI4MEU4QUYxQTIyOTA3Rjk4NzQwQkYwRTU0NTU0N0Y5MEMwMDBGMDkwN0Y5ODc0MEZGMDkwQzAwMEVGRjA5MDdGOTg3NDBERjA5MEMwMDBFREYwMjIxMjEzN0I4RjFBMTIxMzI1Cis6NDAxMjQ2MDA3QjhGMUJFNTFBNjUxQjYwMTIxMjEzN0I4RjFBRTUxQTY1MUI2MDA3MTIxMzdCOEYxQjgwRThBRjFBMjI5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAxQTA0RTA0NDAyRjA3RkY0N0UwMTEyMTJFNzkwN0ZENkUwNTRGN0YwRTA0NEUxCis6NDAxMjg2MDAwNEYwMjJBRTA3RTRGRkU1M0U1NDdGRkQxMjExRDA5MDdGOTg3NDExRjA5MEMwMDBFRUYwRTRFNTNFNDQ4MEZEMTIxMUQwMjJBRTA3RTRGRkU1M0Y1NDdGRkQxMjEyMUE5MDdGOTg3NDA5RjA5MEMwMDBFRUYwRTRFNTNGNDQ4MDk1Cis6NDAxMkM2MDBGRDEyMTIxQTIyMDUwRTAyMDAwMDAwMDAwMzE0MDMwMDAwQzExMUMxMThDMTk1QzExMEMxMTYwMTBBMDBDMTlCMDA4RTE4OEYxOUU1MTkxNTE5QUUxODcwMDIxNTE4NEU2MDA1MTIwRDYwODBFRTIyMDAwMDAyMTAwNjAwMDIxMzdFCis6NDAxMzA2MDAwNDAwMDIwMDAzMDAwMjEwMkQ5MDdGOTg3NDExRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEyRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDEzRjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE0RjA5MEMwMDBFMEZGMjI5MDdGOTg3NDE1RjA5MEY1Cis6NDAxMzQ2MDBDMDAwRTBGRjIyOTA3Rjk4NzQxNkYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOEYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwOUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQUYwOTBDMDAwRTBGRjIyOTA3Rjk4NzQwQkYwOTBDMDAwRTBGRkMwCis6NDAxMzg2MDAyMjkwN0Y5ODc0MENGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MERGMDkwQzAwMEUwRkYyMjkwN0Y5ODc0MEVGMDkwQzAwMEUwRkYyMjEyMEZDRjEyMEQ3MTEyMEI0QTIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6NDAxM0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6NDAxNDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6NDAxNDQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6NDAxNDg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6NDAxNEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6NDAxNTA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6NDAxNTQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6NDAxNTg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6NDAxNUM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6NDAxNjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6NDAxNjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6NDAxNjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6NDAxNkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6NDAxNzA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6NDAxNzQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6NDAxNzg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6NDAxN0M2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6NDAxODA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6NDAxODQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6NDAxODg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6NDAxOEM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyMDExMDAxRkYwMEJGCis6NDAxOTA2MDAwMDQwQ0QwNjEwMDEwMDAwMDEwMjAwMDIwOTAyNzQwMDAxMDEwMEEwMzIwOTA0MDAwMDBFRkYwMDAwMDAwNzA1MDEwMjQwMDAwMDA3MDUwMjAyNDAwMDAwMDcwNTAzMDI0MDAwMDAwNzA1MDQwMjQwMDAwMDA3MDUwNTAyNDAwMDc2Cis6NDAxOTQ2MDAwMDA3MDUwNjAyNDAwMDAwMDcwNTA3MDI0MDAwMDAwNzA1ODEwMjQwMDAwMTA3MDU4MjAyNDAwMDAwMDcwNTgzMDI0MDAwMDEwNzA1ODQwMjQwMDAwMTA3MDU4NTAyNDAwMDAxMDcwNTg2MDI0MDAwMDEwNzA1ODcwMjQwMDAwMUY0Cis6NDAxOTg2MDAwNDAzMDkwNDQ4MDM0QjAwNjUwMDc5MDA3MzAwNzAwMDYxMDA2RTAwMkMwMDIwMDA2MTAwMjAwMDY0MDA2OTAwNzYwMDY5MDA3MzAwNjkwMDZGMDA2RTAwMjAwMDZGMDA2NjAwMjAwMDQ5MDA2RTAwNkUwMDZGMDA1MzAwNzkwMDQwCis6NDAxOUM2MDA3MzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAzNjAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDIwMDA1NTAwNTMwMDQyMDAyMDAwNTMwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDQxMDA2NDAwNjEwMDcwMDA3NDAwNjUwMEY5Cis6MDQxQTA2MDA3MjAwMDAwMDZBCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5dy5IRVggYi9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5dy5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU1YjNkMQotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3LkhFWApAQCAtMCwwICsxLDE0NSBAQAorOjAzMDAzMzAwMDIxOEZCQjUKKzowQzAwMzYwMDkwNzg0MTc0MDFGMDkwQzAwMEUwRkYyMkJGCis6MTAwMDQ2MDBFNEZGNzQ0MDJGRjU4MkU0MzQ3QkY1ODNFMEZFRTUxNThBCis6MTAwMDU2MDAyNDA0RkRFNDM1MTRGQUE5MDU3QjAxRUY3QzAwMjlGOTk3Cis6MTAwMDY2MDBFQzNBRkFFRTEyMTFGMTBGQkYyMkQ3RTUxNTI0MDVGNTg5Cis6MTAwMDc2MDA4MkU0MzUxNEY1ODNFMDcwMDMwMjAxMzRFNTE1MjQwOUEyCis6MTAwMDg2MDBGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDBBRjU4MjUxCis6MTAwMDk2MDBFNDM1MTRGNTgzRTA2MDE4N0YwMUU0RkQxMjE2NDdFNUE4Cis6MTAwMEE2MDAxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRDRkYwODA0MTEwCis6MTAwMEI2MDBFNTE1MjQwNkY1ODJFNDM1MTRGNTgzRTBGRjEyMTY3NjdECis6MTAwMEM2MDBFNTE1MjQwN0Y1ODJFNDM1MTRGNTgzRTBGRjEyMDAwM0Y1Cis6MTAwMEQ2MDA3RjAxRTUxNTI0MDhGNTgyRTQzNTE0RjU4M0UwRkQxMjY5Cis6MTAwMEU2MDAxNjQ3RTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQzMEVFCis6MTAwMEY2MDBGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0ODBGMDAzCis6MTAwMDAzMDA5MDc4NDE3NDAzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NDBECis6MTAwMDEzMDAwMUYwOTBDMDAwRUZGMDkwNzg0MTc0MDNGMEU1MTUyNEVGCis6MTAwMDIzMDAzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjY1Cis6MDMwMDQzMDAwMjFCMDA5RAorOjAzMDAwMDAwMDIxMDk1NTYKKzo0MDAxMDYwMDkwNzg0MTc0MDRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwOTA3ODQxNzQwMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwNDQwNjkwQzAwMEYwRTUxNTI0MEJGNTgyRTQzNTE0RjU4M0UwNjAzMkU1MTUyNDBDMEIKKzo0MDAxNDYwMEY1ODJFNDM1MTRGNTgzRTA1NDNGRkZFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRUZGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MERGNTgyRTQzNTE0RjU4M0UwNzAwMzAyMDI0RkU1ODgKKzo0MDAxODYwMDE1MjQxN0Y1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwNEYwODAwRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkJGMEU0RkZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTBGRDEyMTY0N0U1NUUKKzo0MDAxQzYwMDE1MjQwRUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNDQ4MEYwODAwRkU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDU0N0ZGMEU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFMDU0RkNGMEU1MTUyNDBGRUIKKzo0MDAyMDYwMEY1ODJFNDM1MTRGNTgzRTA2MDJGRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNDQwMkYwRTUxNTI0MTBGNTgyRTQzNTE0RjU4M0UwRkYxMjE1RTdFNTE1MjQxMUY1ODJFNDM1MTRGNTgzRTBGRjEyMTYxN0U1MTUyNDMzRjU4MkU0NUUKKzo0MDAyNDYwMDM1MTRGNTgzRTBGRjEyMTVCN0U1MTUyNDE0RjU4MkU0MzUxNEY1ODNFMDYwNDRFNTE1MjQxNUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQwMUYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1ODEKKzo0MDAyODYwMDgzRTA1NEZFRjA5MDc4NDE3NDA0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDEyRjU4MkU0MzUxNEY1ODNFMDYwNDRFNTE1MjQxM0Y1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RTYKKzo0MDAyQzYwMEY1ODNFMDQ0MDJGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA1NEZERjA5MDc4NDE3NDA0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDE2RjU4MkU0MzUxNEY1ODNFMEZGRTUxNTI0MzVGNTgyMEEKKzo0MDAzMDYwMEU0MzUxNEY1ODNFRkYwRTUxNTI0MTdGNTgyRTQzNTE0RjU4M0UwMzBFMDExRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQ0MEYwODAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0QkZGMEU1MTUyNDE4RjU4MkU0MzUxNEY1NzYKKzo0MDAzNDYwMDgzRTBGRkU1MTUyNDNCRjU4MkU0MzUxNEY1ODNFRkYwRTUxNTI0MTlGNTgyRTQzNTE0RjU4M0UwNjAxMUU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDQ0MTBGMDgwMEZFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA1NEVGRjA5MDc4NjkKKzo0MDAzODYwMDQxNzQwNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQxQUY1ODJFNDM1MTRGNTgzRTA2MDZCRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTRCRkYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RkYKKzo0MDAzQzYwMEY1ODNFMDU0N0Y5MEMwMDBGMDkwNzg0MTc0MDFGMDEyMDAzNkVGNTRGRTkwQzAwMEYwRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGREZGRjBGREU0RkYxMjE2NDdFNTE1MjQyQ0Y1ODJFNDM1MTRGNTgzRTRGMEU1MTUyNDJCQjcKKzo0MDA0MDYwMEY1ODJFNDM1MTRGNTgzRTRGMEU1MTY0MjEzRTUxNTI0MUJGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMjhFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDAyRkZGMEZERTRGRjEyMTY0N0U1NDcKKzo0MDA0NDYwMDE1MjQyQkY1ODJFNDM1MTRGNTgzNzQwMUYwRTUxNjQyMTNFNTE1MjQxQ0Y1ODJFNDM1MTRGNTgzRTBGRjcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDJBOTA3ODQxNzQwMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwQzYKKzo0MDA0ODYwMDQ0MDQ5MEMwMDBGMEVGNjAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDRGMEU1MTUyNDFERjU4MkU0MzUxNEY1ODNFMDYwMjdFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA0NDQwRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1NTAKKzo0MDA0QzYwMDgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwRTUxNTI0MUVGNTgyRTQzNTE0RjU4M0UwNjAyOEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDU0RkVGRkYwRkRFNEZGMTIxNjQ3RTUxNTI0MkRGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1OEYKKzo0MDA1MDYwMDE2NDIxM0U1MTUyNDFGRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDI3RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQwMUZGRjBGREU0RkYxMjE2NDdFNTE1MjQyREY1ODJFNDM1MTRGNTgzOTcKKzo0MDA1NDYwMEU0RjBFNTE2NDIxM0U1MTUyNDIwRjU4MkU0MzUxNEY1ODNFMDcwMEVFNTE1MjQyNUY1ODJFNDM1MTRGNTgzRTA2MDE4OTA3ODQxNzQwMkYwRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0UwNDQwMjkwQzAwMEYwRTUxNTI0MjFGNTgyQTcKKzo0MDA1ODYwMEU0MzUxNEY1ODNFMDYwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDAyRjBFNTE1MjQyMkY1ODJFNDM1MTRGNTgzRTA2MDFGRTUxNTI0MkVGNTgyRTQzNTE0RjU4Mzc0MDFGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFNEYwRjAKKzo0MDA1QzYwMEU1MTY0MjEzRTUxNTI0MjNGNTgyRTQzNTE0RjU4M0UwNjAwMzEyMTg4NUU1MTUyNDI0RjU4MkU0MzUxNEY1ODNFMDYwMUJFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDA4RjA5MDdGOThFMEZGRTUxNkY0RkVFRjVFRjBFNTE1NkMKKzo0MDA2MDYwMDI0MjVGNTgyRTQzNTE0RjU4M0UwNjAxNkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0RjdGMDkwN0Y5OEUwNDUxNkYwMjI5MDdGRTlFMDEyMTIwMzA3ODMwMDA3RjcwMTA4NjMwMzA2NEMwNjA3NzQwODA3NjgwOTA3NTAwQTA3Q0UKKzo0MDA2NDYwMDVGMEIwMDAwMDhCMjkwN0ZFQkUwMjRGRTYwMUMxNDcwMDMwMjA2RkUyNDAyNjAwMzAyMDc0Njc0MTk5MDdGRDRGMDc0MDA5MDdGRDVGMDAyMDhCOTkwN0ZFQUUwMDQ3NTgyMTc3NTgzMTlGMDkwN0ZFQUUwMzBFMDA0N0YwMzgwMkQKKzo0MDA2ODYwMDAyN0YwMjc1ODI4Mjc1ODMxOUVGRjA3NTgyNkQ3NTgzMTlGMDc1ODI2Njc1ODMxOUYwNzU4MjVGNzU4MzE5RjA3NTgyNTg3NTgzMTlGMDkwN0ZFQUUwMzBFMTA0N0Y2NDgwMDI3RjMyNzU4MjFBNzU4MzE5RUZGMDkwN0ZFRkUwRkIKKzo0MDA2QzYwMEZFOTA3RkVFRTA3QzAwMjQwMEY1MTlFQzNFRjUxODc1MzMxOTc1MzQxMjc1ODIxNDc1ODMxOUUwNzUyNzAwRjUyOEQzRTUyODk1MTlFNTI3OTUxODQwMDY4NTE4Mjc4NTE5MjgxMjEzMTIwMjA4Qjk5MDdGRUFFMEZGMTIxNDJCQzkKKzo0MDA3MDYwMEVBNDk2MDMyOTA3RkVFRTA3NTE4MDBGNTE5QUUwMkFGMDE4RTMzOEYzNDhGODI4RTgzRTBGRUEzRTA4RTI3RjUyOEQzOTUxOUU1Mjc5NTE4NDAwNjg1MTgyNzg1MTkyODEyMTMxMjAyMDhCOTkwN0ZCNEUwNDQwMUYwMDIwOEI5OUUKKzo0MDA3NDYwMDkwN0ZCNEUwNDQwMUYwMDIwOEI5OTA3RjAwRTUyNUYwOTA3RkI1NzQwMUYwMDIwOEI5OTA3RkVBRTBGNTI1MDIwOEI5OTA3RkVBRTBGNTIyMTIwQUI4MDIwOEI5OTA3RjAwRTUyMkYwOTA3RkI1NzQwMUYwMDIwOEI5OTA3RkU4QkQKKzo0MDA3ODYwMEUwMjQ3RjYwMjQxNDYwMzEyNDAyNzA1QkEyMDBFNDMzRkYyNUUwRkZBMjA2RTQzMzRGOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA4QjlFNDkwN0YwMEYwQTNGMDkwN0ZCNTc0MDJGMDAyMDhCOTkwN0ZFQ0UwRjQ1NDgwNjMKKzo0MDA3QzYwMEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFMDU0RkQ5MDdGMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDhCOTkwN0ZCNEUwNDQwMUYwMDIwOEI5OTA3RkU4RTAyNEZFNjAxRDI0MDI2MDAzMDIwOEI5MTAKKzo0MDA4MDYwMDkwN0ZFQUUwQjQwMTA1QzIwMDAyMDhCOTkwN0ZCNEUwNDQwMUYwMDIwOEI5OTA3RkVBRTA3MDM4OTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGNjcKKzo0MDA4NDYwMDEzMTMxMzU0MUZGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDdGRThFMDI0RkU2MDE4MjQwMjcwNEE5MDdGRUFFMEI0MDEwNEQyMDA4MDNGOTA3RkI0RTA0NDAxRjA4MDM2OTA3RkVBQ0IKKzo0MDA4ODYwMEUwNzAyMDkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4Mzc0MDFGMDgwMTA5MDdGQjRFMDQ0MDFGMDgwMDc5MDdGQjRFMDQ0MDFGMDkwN0ZCNEUwNDQwMkYwMjJFNTExNTQwRjcwM0QKKzo0MDA4QzYwMDAzMDIwOUIyMTIxNkE1RUYyMEUxNzUxMjE3MDNFRjE0RjUxOTEyMThDQ0VGMjUxOUZGRTQzM0ZFQzNFRjk0ODBFRTY0ODA5NDgwNTA1OTg1MTU4Mjg1MTQ4M0UwRkVBM0UwRkZGNTgyOEU4M0UwMzBFMDExRTUxNTI0MzFGNTgyNTAKKzo0MDA5MDYwMEU0MzUxNEY1ODNFMDQ0ODBGMDgwMEZFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NDdGRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAyMEUyMTJFNTE5NjAwRUY1MjNFRjI0MDFGNTJERTQzRUY1MkMxMjE0QURFNEZGMTIxNEUzQzAKKzo0MDA5NDYwMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTc1RDEyMThDQ0U1MTUyNDNCRjU4MkU0MzUxNEY1ODNFMEZFRUZDMzlFNTA0OEU1MTUyNDJGRjU4MkU0MzUxNEY1ODM3NDAxRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NDdCOTkKKzo0MDA5ODYwMEYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0U0RjBFNTE2NDIxMzkwN0ZDMkUwMzBFMTEwRTUxNTI0MjZGNTgyRTQzNTE0RjU4M0UwRjUyNDgwMDMxMjEyQTExMjE2RDRFRjMwRTEwMzAyMEFCNzEyMTdEMjhGMTkxMjE4RDhFNTE1RDUKKzo0MDA5QzYwMDI0MzhGNTgyRTQzNTE0RjU4M0VGRjBFNTE1MjQzNUY1ODJFNDM1MTRGNTgzRTBGRkU1MTlDMzlGNTAyODEyMThCNEVGMzBFMDIxRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwMjBFNzEyRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwQzAKKzo0MDBBMDYwMDIwRTEwMzAyMEFCN0U1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0RkRGMEU1MTk3MDAzMDIwQUI3QjQ4MDBGRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwNDQwMkYwRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwRkYzMEU3MjlFNTE5Q0YKKzo0MDBBNDYwMEQzOTQyMDQwMDM3NTE5MjA4NTE5MjM4NTE1ODI4NTE0ODNBM0EzRTBGQ0EzRTA4QzJDRjUyRDEyMTNEREU1MTkyNUUwRkYxMjE1MTkyMkU1MTlEMzk0M0Y0MDAzNzUxOTNGODUxOTIzRTUxNTI0MzhGNTgyRTQzNTE0RjU4M0UwNTMKKzo0MDBBODYwMEZGODUxNTgyODUxNDgzQTNBM0UwRkNBM0UwRjU4MjhDODNFRkYwODUxNTgyODUxNDgzQTNBM0UwRkVBM0UwMjQwMUY1MkRFNDNFRjUyQzEyMTQ2Q0U1MTkwNEZGMTIxNTE5MjJFNDkwN0Y5M0YwOTA3RjlDNzRGMEYwOTA3Rjk2NzcKKzo0MDBBQzYwMEYwRTQ5MDdGOTRGMDkwNzg0QTA0RjBGNThFOTA3Rjk1NzRDMEYwOTA3RjlFNzQzRkYwOTA3Rjk4NzQxRkYwOTA3ODQzNzRGRkYwRTQ5MDc4NDFGMDkwN0ZERjc0OUZGMDkwN0ZERUYwOTA3RjkyRTA0NDAyRjA3RTdCN0ZDMDc1ODEKKzo0MDBCMDYwMDE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDExMjBGMTI3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMUU1MTUyNDI2RjU4MkU0MzUxNEY1ODNFNEYwN0U3RTdGNDA4NTE1ODI4NTE0ODM3NDdFRjBBMzc0RjUKKzo0MDBCNDYwMDQwRjA3RTdFN0Y4MDg1MTU4Mjg1MTQ4M0EzQTM3NDdFRjBBMzc0ODBGMDdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyMTIwRjEyN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDJFNTE1MzYKKzo0MDBCODYwMDI0MjZGNTgyRTQzNTE0RjU4Mzc0MDFGMDdFN0Q3RkMwODUxNTgyODUxNDgzNzQ3REYwQTM3NEMwRjA3RTdFN0YwMDg1MTU4Mjg1MTQ4M0EzQTM3NDdFRjBBMzc0MDBGMDdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwMTgKKzo0MDBCQzYwMDc1MTYwNDEyMEYxMjdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwNzUxNjA0RTUxNTI0MjZGNTgyRTQzNTE0RjU4Mzc0MDJGMDdFN0Q3RjQwODUxNTgyODUxNDgzNzQ3REYwQTM3NDQwRjA3RTdEN0Y4MDg1MTU4Mjg1RDMKKzo0MDBDMDYwMDE0ODNBM0EzNzQ3REYwQTM3NDgwRjA3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5Njc0N0ZGMDc1MTYwODEyMEYxMjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk2NzQ3RkYwNzUxNjA4RTUxNTI0MjZGNTgyRTQzNTE0RjU4Mzc0MUMKKzo0MDBDNDYwMDAzRjA3RTdDN0ZDMDg1MTU4Mjg1MTQ4Mzc0N0NGMEEzNzRDMEYwN0U3RDdGMDA4NTE1ODI4NTE0ODNBM0EzNzQ3REYwQTM3NDAwRjBDMjBBQzIwOUQyMDIyMkU1MTAwNDU0MDNGNTEwMTQ2MDFGMTQ2MDMxMTQ2MDQzMjQwMzcwMUIKKzo0MDBDODYwMDUyN0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTY3NEVGRjA3NTE2MDE4MDNEN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDI4MDI4N0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTY3NEJGRjA3NTE2MDQ4MDEzN0UKKzo0MDBDQzYwMDdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk2NzQ3RkYwNzUxNjA4RTUzMjU1MTY3MDAzMDIwRTExRTUxNkY0RkY1MjMyRTUyNjU0N0ZGRTcwMEZFNTJBNTUxNjYwMjQ5MDdGOThFMDQ1MTZGMDgwMUJCRTIwMThFNTE1MjQzMUY1NDMKKzo0MDBEMDYwMDgyRTQzNTE0RjU4M0UwMzBFMzA5RTRGNTJBOTA3Rjk4RTA1RkYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0UwNjAwM0UwMTRGMEU1MTUyNDM0RjU4MkU0MzUxNEY1ODNFMDYwMDNFMDE0RjBFMDYwMDMwMjBFMTE3NDBBRjAxMjAwOUQKKzo0MDBENDYwMDM2RUY1NDAxRkZGNTE5RTUxNTI0MkNGNTgyRTQzNTE0RjU4M0UwNkY2MDA3RTUxOUYwRTUxNjQyMTMxMjE4RTQ4RjE5RTUxNTI0MjdGNTgyRTQzNTE0RjU4M0UwRkZFNTE5NTQxMEZFNkY2MDA2RUVGMEU1MTY0MjEzRTUxNTI0MTUKKzo0MDBEODYwMDI4RjU4MkU0MzUxNEY1ODNFMEZGRTUxOTU0ODBGRTZGNjAwNkVFRjBFNTE2NDIxM0U1MTUyNDI5RjU4MkU0MzUxNEY1ODNFMEZGRTUxOTU0MjBGRTZGNjAxNUVFRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU0MDRFNTE2NjUKKzo0MDBEQzYwMDQyMTNFNTEyNTUxNkZGRjUxOUU1MTUyNDJBRjU4MkU0MzUxNEY1ODNFMDZGNjAxNkU1MTlGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTUwNEU1MTY0MjEzRTUxNzU1MTZGRkY1MTlFNTE1MjQzMEY1ODJFNDM1MTRGNTgzODAKKzo0MDBFMDYwMEUwNkY2MDA3RTUxOUYwRTUxNjQyMTMyMjMwMDkwMzAyMEYxMUU1MjQxNDYwMkExNDYwNDExNDYwNTgxNDYwNkYyNDA0NjAwMzAyMEVDRjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk2NzRFRkYwNzUxNjAxMTIxMkExNzUyNDAxNUEKKzo0MDBFNDYwMDIyN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTY3NERGRjA3NTE2MDIxMjEyQTE3NTI0MDIyMjdFN0M3RjQwNzUxNDdDNzUxNTQwOTA3Rjk2NzRCRkYwNzUxNjA0MTIxMkExNzUyNDAzMjI3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwNTEKKzo0MDBFODYwMDdGOTY3NDdGRjA3NTE2MDgxMjEyQTE3NTI0MDQyMjMwMDQzM0MyMDQ1MzEzREZFNEY1MTk3RTAwN0IwMDc0MkUyNTE5RjlFRTM0MDBGQTEyMTFBQkZGNzQ4MDI1MTlGNTgyRTQzNDdCRjU4M0VGRjAwNTE5RTUxOUI0MDNEQjkwMkQKKzo0MDBFQzYwMDdGQzM3NDAzRjA3NTI0MDUyMkU1MzY2MDNCRDUzNjBBNTMxM0VGMzAwQTA0RDIwOUMyMEFFNEY1MTk3RTAwN0IwMDc0MzUyNTE5RjlFRTM0MDBGQTEyMTFBQkZGNzQ4MDI1MTlGNTgyRTQzNDdCRjU4M0VGRjAwNTE5RTUxOUI0NjcKKzo0MDBGMDYwMDAzREI5MDdGQzM3NDAzRjBFNEY1MjQyMkU0RjUxQTdFMDA3QjAxRTUxNTI1MUFGOUVFMzUxNEZBRTQxMjExRjEwNTFBRTUxQUI0M0NFOEU1MTUyNDM1RjU4MkU0MzUxNEY1ODM3NDAxRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1NjkKKzo0MDBGNDYwMDgyRTQzNTE0RjU4Mzc0MDNGMDkwQzAwMEYwN0YwQ0U0RkQxMjE2NDc3RjEwRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0VGRjAxMjE1Qjc5MDc4NDE3NDAyRjA3RjAxRTUxNTI0MzZGNTgyRTQzNTE0RjU4M0VGRjA0NDA2OTBDMDAwRjEKKzo0MDBGODYwMEYwOTA3ODQxNzQwNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4Mzc0ODBGMDkwQzAwMEYwMEZFNEZEMTIxNjQ3RTRGRjdFQTNFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRUVGMEZEMTIxNjQ3OTA3ODQxNzQwMUYwOTBDMDAwRTRGMDdGODkKKzo0MDBGQzYwMDA1N0Q3RjEyMTY0NzdGMDExMjE1NEY3RjAzN0QwNzEyMTY0NzIyNTMxMzNGOTA3QkYxRTAzMEUzMTY3RTdCN0ZDMDc1MTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMTEyMDhDMTkwN0MzMUUwMzBFMzE2N0U3QzdGMDA3NTE0MTcKKzo0MDEwMDYwMDdDNzUxNTAwOTA3Rjk2NzRERkYwNzUxNjAyMTIwOEMxOTA3QzcxRTAzMEUzMTY3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDc1MTYwNDEyMDhDMTkwN0NCMUUwMzBFMzE2N0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGMzcKKzo0MDEwNDYwMDk2NzQ3RkYwNzUxNjA4MTIwOEMxMDUxMUU1MTE1NDBGRjUxODcwMUY5MDc4NDFFMDU0RjdGMDkwN0Y5OUUwRjUxNzkwNzg0MUUwNDQwOEYwOTA3Rjk5RTBGNEY1MTIxMjExMjEyMkU1MThCNDAxMDQxMjBDNzMyMjkwN0ZDMkUwMTgKKzo0MDEwODYwMDIwRTEwOEU1MTM2MDA0MTIwRTEyMjIxMjBDNzMyMjc4N0ZFNEY2RDhGRDc1ODEzNzAyMTBEQzAyMTIyOUU0OTNBM0Y4RTQ5M0EzNDAwM0Y2ODAwMUYyMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzNDNDU0MEY0NDIwN0UKKzo0MDEwQzYwMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REZFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTAxODUwRTQ3RTAxOTM2MEJDQTNGRjU0M0YzMEU1MDk1NDFGRkVFNDkzQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNGQUU0OTNBM0Y4QTIKKzo0MDExMDYwMEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0FGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRTkwN0ZEMkUwMzBFMTAzMDIxMUFBQzIwOTkwN0I0MEUwMTQ2MDI2MTQ2MDNCMTQ2MDUwMjQ4MzYwNjQyNDgwNzA2MzdFN0I3RkMwMUMKKzo0MDExNDYwMDc1MTQ3Qjc1MTVDMDkwN0Y5Njc0RUZGMDc1MTYwMTEyMDA0NjgwNEI3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5Njc0REZGMDc1MTYwMjEyMDA0NjgwMzM3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5Njc0QkZGMDc1MTYwNDEyRkIKKzo0MDExODYwMDAwNDY4MDFCN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTY3NDdGRjA3NTE2MDgxMjAwNDY4MDAzMTIxNzVDRTQ5MDdGRDNGMDIyQkIwMTA2ODk4MjhBODNFMDIyNTAwMkU3MjJCQkZFMDJFMzIyODk4MjhBODNFNDkzMjJCQjAxODkKKzo0MDExQzYwMDBDRTU4MjI5RjU4MkU1ODMzQUY1ODNFMDIyNTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkU1ODIyOUY1ODJFNTgzM0FGNTgzRTQ5MzIyQkIwMTA2ODk4MjhBODNGMDIyNTAwMkY3MjJCQkZFMDFGMzIyRDA4M0QwODYKKzo0MDEyMDYwMDgyRjhFNDkzNzAxMjc0MDE5MzcwMERBM0EzOTNGODc0MDE5M0Y1ODI4ODgzRTQ3Mzc0MDI5MzY4NjBFRkEzQTNBMzgwREY5MDdGQUVFMEZGRDM5MjAwRTQzM0ZFRUY0RUYwRDJFODQzRDgyMDkwN0ZERTc0MDFGMDkwN0ZERkYwOEUKKzo0MDEyNDYwMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RkFBRjA1MzkxRUY5MDdGQUY3NDAxRjA5MDdGQUU3NDBERjBEMkFGRDIwQjEyMTgxNEMyMDFFNEY1MkJGNTMxQzIwN0MyMDI3NTI5RjA5MDdGRDhFMDY1MjY2MDA2NzUzMjBGRTBGNTI2QzkKKzo0MDEyODYwMDMwMDIwMzEyMEZEOTMwMDEwN0MyMDExMjA2Mjk4MEUyMzAwOERGQzIwODEyMTgzNTgwRDgyMkU1MTM1NTE2NjA2QUU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFMDcwNUNFNTE2RjQ1MjEzRTUxNTI0MjZGRkU0MzUxNEZFRTRGRDBGQTIKKzo0MDEyQzYwMEVGQUEwNjcwMDEwRTE0RjU4MjhBODNFMEZDNzQ4MDJERjU4MkU0MzQ3QkY1ODNFQ0YwMERCRDBCRTI5MDdGQzM3NDBCRjBFNTE1MjQzQUY1ODJFNDM1MTRGNTgzNzQxMEYwRTUxNTI0MkVGNTgyRTQzNTE0RjU4M0U0RjBFNTE1QzEKKzo0MDEzMDYwMDI0MkZGNTgyRTQzNTE0RjU4M0U0RjAyMkU1Mjg0NTI3NjA1N0FFMjdBRjI4RDNFRjk0NDBFRTk0MDA0MDA0N0UwMDdGNDBDM0U1Mjg5RkY1MjhFNTI3OUVGNTI3RTRGREVEQzM5RkU0OUU1MDFGODUzNDgyODUzMzgzRTBGQzc0OTQKKzo0MDEzNDYwMDAwMkRGNTgyRTQzNDdGRjU4M0VDRjAwRDA1MzRFNTM0NzAwMjA1MzM4MERBOTA3RkE5NzQwMUYwOTA3RkFDRTA0NDAxRjA5MDdGQjVFRkYwMjI5MDdGQUNFMDU0RkVGMEU0OTA3RkI1RjAyMkU0OTA3RjkzRjA5MDdGOUM3NEYwQTcKKzo0MDEzODYwMEYwOTA3Rjk2RjBFNDkwNzg0QUYwOTA3Rjk0RjA5MDdGOUQ3NEZGRjBFNDkwN0Y5N0YwMzAwMDA3RTUyOTU0RjBGRjgwMDI3RjAwRUY0NDA4OTA3ODQxRjBFNDkwN0Y5OEYwOTA3Rjk1RjA5MDdGOUU3NEZGRjBFNDkwN0Y5OEYwQzkKKzo0MDEzQzYwMDkwN0Y5M0YwOTA3RjlDNzRGMEYwRTQ5MDdGOTZGMDkwN0Y5MkUwNTRGREYwMjI4RjFBMDUyREU1MkRBRTJDNzAwMjA1MkMxNEY1ODI4RTgzRTUxQUYwMTIxOEYwMDUyREU1MkRBQzJDNzAwMjA1MkMxNEY1ODI4QzgzRUZGMDE1OUQKKzo0MDE0MDYwMDIzRTUyMzYwMUZFNTE1MjQzOEY1ODJFNDM1MTRGNTgzQzA4M0MwODJFMEZFMTIxOEQ4OEYxQUVFNEZEMDgyRDA4M0YwODBCNTIyOEYxQUU0RjUxQjc1MUNGRjc1MUQxOTc1MUU4NkFCMUNBQTFEQTkxRTkwMDAwMTEyMTFDNEI0RTEKKzo0MDE0NDYwMDAzMURBRjFCMDUxQkVGQjUxQTAxMjIxMjExQUI3RTAwMjlGRkVFM0FBOTA3NzUxQ0ZGRjUxRDg5MUU4MEQ0N0IwMDdBMDA3OTAwMjJFNDkwNzg0MUYwOTA3ODRGNzRDMEYwRTQ5MDc4NTBGMEU1MkM5MDc4NTFGMEFFMkNFNTJERjgKKzo0MDE0ODYwMDkwNzg1MkYwOTA3ODU0RTUyM0YwOTA3ODU3NzQwNEYwOTA3RkUyRTA0NDEwRjBFMDU0RjdGMEU0OTA3ODU1RjA5MDc4NTVFMDYwRkEyMkU0OTA3ODQxRjBFNTJDOTA3ODRGRjBBRTJDRTUyRDkwNzg1MEYwOTA3ODUxNzRDMEYwODEKKzo0MDE0QzYwMEU0OTA3ODUyRjA5MDc4NTRFNTIzRjA5MDc4NTc3NDA0RjBFNDkwNzg1NUYwOTA3ODU1RTA2MEZBMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEYxNDYwMTMxNDYwMTc4MDAwOTA3RkM3RUZGMDgwMTM5MDdGQzlFRkYwODEKKzo0MDE1MDYwMDgwMEM5MDdGQ0JFRkYwODAwNTkwN0ZDREVGRjBFNTE2NDIyQTIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBGMTQ2MDEzMTQ2MDE3ODAwMDkwN0ZCN0VGRjA4MDEzOTA3RkI5RUZGMDgwMEM5MDdGQkJFRkYwODAwNTkwM0IKKzo0MDE1NDYwMDdGQkRFRkYwRTUxNjQyMkEyMkFFMDdFNEZGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTQ3RkZEMTIxNjQ3OTA3ODQxNzQwMUYwOTBDMDAwRUVGMEU0RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNDQ4MEZEMTIxNjQ3MjJDMEUwQTAKKzo0MDE1ODYwMEMwRjBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEMwRDA3NUQwMDg1MzkxRUY5MDdGQTk3NDAxRjAxMjEzMTJEMEQwRDA4NkQwODREMDg1RDA4MkQwODNEMEYwRDBFMDMyOTA3ODQxNzQwM0YwOTBDMDAwNzRCRkYwOTA3ODQxRDAKKzo0MDE1QzYwMDc0MDJGMDkwQzAwMEVGRjA5MDc4NDE3NDAzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjkwNzg0MTc0MDNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0MDRGMDkwQzAwMEVGRjA5MDc4NDE3NDAzRjBFNTE1NkQKKzo0MDE2MDYwMDI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI5MDc4NDE3NDAzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NDA2RjA5MEMwMDBFRkYwOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwRkYKKzo0MDE2NDYwMDIyOTA3ODQxNzQwM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwOTA3ODQxNzQwN0YwOTBDMDAwRUZGMDkwNzg0MTc0MDVGMDkwQzAwMEVERjAyMjkwNzg0MTc0MDNGMDkwQzAwMDc0QkZGMEU0OTA3ODQxRkEKKzo0MDE2ODYwMEYwOTBDMDAwRUZGMDkwNzg0MTc0MDNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZDNkUwRkYyMjkwN0ZDOEUwMTUKKzo0MDE2QzYwMEZGMjI5MDdGQ0FFMEZGMjI5MDdGQ0NFMEZGMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkI2RTBGRjIyOTA3RkI4RTBGRjIyOTA3RkJBRTBGRjIyOTA3RkJDRTBGRjIyRTUxNTI0OUUKKzo0MDE3MDYwMDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQzdFMEZGMjI5MDdGQzlFMEZGMjI5MDdGQ0JFMEZGMjI5MDdGQ0RFMEZGMjJDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDA5MDdGQzRFNEYwOTYKKzo0MDE3NDYwMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyOTA3QjQxRTBGNTM2NDMxMzEwQTNFMDYwMDk5MDdGRDc3NDE3RjA3NDM3RjA5MDdCNDNFMEY1MzdBM0UwNTRGMEY1MjlFMDYwMDJEMjBBMjJDMEUwMjQKKzo0MDE3ODYwMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIwMTUzOTFFRjkwN0ZBQjc0MDFGMEQwODZEMDg0RDA4NUQwODJEMDgzRDBFMDMyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwRDIwODUzOTFFRjkwN0ZBQjc0MDhGMEQwRjcKKzo0MDE3QzYwMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjEyMThDMEFFMDcxMjE4QzBBRDA3RUU2RDYwMTAxMjE4QzBBRTA3RUU2RDYwMDcxMjE4QzBBRDA3ODBFQ0FGMDYyMjc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjI5MDdGRDUKKzo0MDE4MDYwMEQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDAwMDAwMjI5MDdGRDZFMDQ0MDRGMEUwNDQwOEYwMzAwQjA0RTA0NDAyRjA3RkY0N0UwMTEyMTg2QjkwN0ZENkUwNTRGN0YwMjIxMjEzN0MxMjE4MDQ5MDdGRDZFMDMwRTcwQTdGMDU3RTAwN0QKKzo0MDE4NDYwMDEyMTg2QjEyMTg5RTEyMEFCODIyMDMzNTgwMDAwMDAzMkU4MTAwMDBDMTg1QzE4MUMxMDhDMTAwQzEwNjAxMjIwMDAxMjQwMDAwOEUxODhGMTlFNTE5MTUxOUFFMTg3MDAyMTUxODRFNjAwODEyMTdGMzEyMTdGMzgwRUIyMkU1NDUKKzo0MDE4ODYwMDE1MjQwNEY1ODJFNDM1MTRGNTgzRTAwNEZGNDQxMDkwN0ZEN0YwRUY0NDMwRjAyMjkwN0ZENkUwNDQwMUYwN0YwRDdFMDAxMjE4NkI5MDdGRDZFMDU0RkVGMDIyOTA3ODQxNzQwMkYwOTBDMDAwRTBGRjIyOTA3ODQxNzQwM0YwRDUKKzo0MDE4QzYwMDkwQzAwMEUwRkYyMjkwNzg0MTc0MDRGMDkwQzAwMEUwRkYyMjkwNzg0MTc0MDVGMDkwQzAwMEUwRkYyMjkwNzg0MTc0MDZGMDkwQzAwMEUwRkYyMkU0OTA3ODQxRjA5MEMwMDBFMEZGMjI1M0Q4RUYzMjAwMTIwMTEwMDFGRjAwQUIKKzo0MDE5MDYwMDAwNDBDRDA2MEEwMTAwMDAwMTAyMDAwNDA5MDI3NDAwMDEwMTAwQTAzMjA5MDQwMDAwMEVGRjAwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1MDMwMjQwMDAwMDA3MDUwNDAyNDAwMDAwMDcwNTA1MDI0MDAwN0EKKzo0MDE5NDYwMDAwMDcwNTA2MDI0MDAwMDAwNzA1MDcwMjQwMDAwMDA3MDU4MTAyNDAwMDAxMDcwNTgyMDI0MDAwMDEwNzA1ODMwMjQwMDAwMTA3MDU4NDAyNDAwMDAxMDcwNTg1MDI0MDAwMDEwNzA1ODYwMjQwMDAwMTA3MDU4NzAyNDAwMDAxRjMKKzo0MDE5ODYwMDA0MDMwOTA0NDgwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyQzAwMjAwMDYxMDAyMDAwNjQwMDY5MDA3NjAwNjkwMDczMDA2OTAwNkYwMDZFMDAyMDAwNkYwMDY2MDAyMDAwNDkwMDZFMDA2RTAwNkYwMDUzMDA3OTAwNDAKKzo0MDE5QzYwMDczMDAyMDAwNDkwMDZFMDA2MzAwMkUwMDM2MDM1NTAwNTMwMDQyMDAyMDAwMzQwMDJEMDA3MDAwNkYwMDcyMDA3NDAwMjAwMDUzMDA2NTAwNzIwMDY5MDA2MTAwNkMwMDIwMDA0MTAwNjQwMDYxMDA3MDAwNzQwMDY1MDA3MjAwM0MKKzo0MDFBMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQTAKKzo0MDFBNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNjAKKzo0MDFBODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAKKzo0MDFBQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxNzg0MDAwMjFCMjYKKzoxNTFCMDYwMDA0MDAwMjE3MzIwMDAyMTdBQjAwMDIxQjEwMDAwMjFCMTQwMDAyMTU4NEJFCis6MDAwMDAwMDFGRgorCisJVGhlIGZpcm13YXJlIGNvbnRhaW5lZCBoZXJlaW4gaXMKKworCQlDb3B5cmlnaHQgKEMpIDE5OTktMjAwMQorCQlLZXlzcGFuLCBBIGRpdmlzaW9uIG9mIElubm9TeXMgSW5jb3Jwb3JhdGVkICgiS2V5c3BhbiIpCisKKwlhcyBhbiB1bnB1Ymxpc2hlZCB3b3JrLiBUaGlzIG5vdGljZSBkb2VzIG5vdCBpbXBseSB1bnJlc3RyaWN0ZWQgb3IKKwlwdWJsaWMgYWNjZXNzIHRvIHRoZSBzb3VyY2UgY29kZSBmcm9tIHdoaWNoIHRoaXMgZmlybXdhcmUgaW1hZ2UgaXMKKwlkZXJpdmVkLiAgRXhjZXB0IGFzIG5vdGVkIGJlbG93IHRoaXMgZmlybXdhcmUgaW1hZ2UgbWF5IG5vdCBiZQorCXJlcHJvZHVjZWQsIHVzZWQsIHNvbGQgb3IgdHJhbnNmZXJyZWQgdG8gYW55IHRoaXJkIHBhcnR5IHdpdGhvdXQKKwlLZXlzcGFuJ3MgcHJpb3Igd3JpdHRlbiBjb25zZW50LiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworCVBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQgZm9yIHRoZSBkaXN0cmlidXRpb24gb2YgdGhpcyBmaXJtd2FyZQorCWltYWdlIGFzIHBhcnQgb2YgYSBMaW51eCBvciBvdGhlciBPcGVuIFNvdXJjZSBvcGVyYXRpbmcgc3lzdGVtIGtlcm5lbAorCWluIHRleHQgb3IgYmluYXJ5IGZvcm0gYXMgcmVxdWlyZWQuCisKKwlUaGlzIGZpcm13YXJlIG1heSBub3QgYmUgbW9kaWZpZWQgYW5kIG1heSBvbmx5IGJlIHVzZWQgd2l0aAorCUtleXNwYW4gaGFyZHdhcmUuICBEaXN0cmlidXRpb24gYW5kL29yIE1vZGlmaWNhdGlvbiBvZiB0aGUKKwlrZXlzcGFuLmMgZHJpdmVyIHdoaWNoIGluY2x1ZGVzIHRoaXMgZmlybXdhcmUsIGluIHdob2xlIG9yIGluCisJcGFydCwgcmVxdWlyZXMgdGhlIGluY2x1c2lvbiBvZiB0aGlzIHN0YXRlbWVudC4iCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5d2xjLkhFWCBiL2Zpcm13YXJlL2tleXNwYW4vdXNhNDl3bGMuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0MDZlYjEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9rZXlzcGFuL3VzYTQ5d2xjLkhFWApAQCAtMCwwICsxLDE1MyBAQAorOjAxN0Y5MjAwMDFFRAorOjAzMDAzMzAwMDIxOEZCQjUKKzowRDAwMzYwMEU1MTEwNDkwNzg0MUYwOTBDMDAwRTBGRjIyMzkKKzoxMDAwNDYwMEU0RkY3NDQwMkZGNTgyRTQzNDdCRjU4M0UwRkVFNTE1OEEKKzoxMDAwNTYwMDI0MDRGREU0MzUxNEZBQTkwNTdCMDFFRjdDMDAyOUY5OTcKKzoxMDAwNjYwMEVDM0FGQUVFMTIxMUVDMEZCRjIyRDdFNTE1MjQwNUY1OEUKKzoxMDAwNzYwMDgyRTQzNTE0RjU4M0UwNzAwMzAyMDEzNEU1MTUyNDA5QTIKKzoxMDAwODYwMEY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MEFGNTgyNTEKKzoxMDAwOTYwMEU0MzUxNEY1ODNFMDYwMTg3RjAxRTRGRDEyMTY2QkU1ODQKKzoxMDAwQTYwMDE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NENGRjA4MDQxMTAKKzoxMDAwQjYwMEU1MTUyNDA2RjU4MkU0MzUxNEY1ODNFMEZGMTIwMDAzMDYKKzoxMDAwQzYwMEU1MTUyNDA3RjU4MkU0MzUxNEY1ODNFMEZGMTIxNUFCMzgKKzoxMDAwRDYwMDdGMDFFNTE1MjQwOEY1ODJFNDM1MTRGNTgzRTBGRDEyNjkKKzoxMDAwRTYwMDE2NkJFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDMwQ0EKKzoxMDAwRjYwMEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQ4MEYwMDMKKzoxMDAwMDMwMDkwNzg0MTc0RjNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0MUQKKzoxMDAwMTMwMEYwRjA5MEMwMDBFRkYwOTA3ODQxNzRGM0YwRTUxNTI0MTAKKzoxMDAwMjMwMDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyNjUKKzowMzAwNDMwMDAyMUIwMDlECis6MDMwMDAwMDAwMjEwOTA1QgorOjQwMDEwNjAwOTA3ODQxNzRGNEYwRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjA5MDc4NDE3NEYyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTA0NDA2OTBDMDAwRjBFNTE1MjQwQkY1ODJFNDM1MTRGNTgzRTA2MDMyRTUxNTI0MEMyQgorOjQwMDE0NjAwRjU4MkU0MzUxNEY1ODNFMDU0M0ZGRkU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFRkYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwOTBDMDAwRjBFNTE1MjQwREY1ODJFNDM1MTRGNTgzRTA3MDAzMDIwMjRGRTU5OAorOjQwMDE4NjAwMTUyNDE3RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDA0RjA4MDBGRTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGQkYwRTRGRkU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMEZEMTIxNjZCRTUzQQorOjQwMDFDNjAwMTUyNDBFRjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA0NDgwRjA4MDBGRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNTQ3RkYwRTUxNTI0MzNGNTgyRTQzNTE0RjU4M0UwNTRGQ0YwRTUxNTI0MEZFQgorOjQwMDIwNjAwRjU4MkU0MzUxNEY1ODNFMDYwMkZFNTE1MjQzM0Y1ODJFNDM1MTRGNTgzRTA0NDAyRjBFNTE1MjQxMEY1ODJFNDM1MTRGNTgzRTBGRjEyMTYwQkU1MTUyNDExRjU4MkU0MzUxNEY1ODNFMEZGMTIxNjNCRTUxNTI0MzNGNTgyRTQxNQorOjQwMDI0NjAwMzUxNEY1ODNFMEZGMTIxNURCRTUxNTI0MTRGNTgyRTQzNTE0RjU4M0UwNjA0NEU1MTUyNDE1RjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA0NDAxRjA4MDBGRTUxNTI0MzlGNTgyRTQzNTE0RjU1RAorOjQwMDI4NjAwODNFMDU0RkVGMDkwNzg0MTc0RjRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MTJGNTgyRTQzNTE0RjU4M0UwNjA0NEU1MTUyNDEzRjU4MkU0MzUxNEY1ODNFMDYwMTFFNTE1MjQzOUY1ODJFNDM1MTRGNgorOjQwMDJDNjAwRjU4M0UwNDQwMkYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDU0RkRGMDkwNzg0MTc0RjRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDkwQzAwMEYwRTUxNTI0MTZGNTgyRTQzNTE0RjU4M0UwRkZFNTE1MjQzNUY1ODIxQQorOjQwMDMwNjAwRTQzNTE0RjU4M0VGRjBFNTE1MjQxN0Y1ODJFNDM1MTRGNTgzRTAzMEUwMTFFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDQwRjA4MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTRCRkYwRTUxNTI0MThGNTgyRTQzNTE0RjU3NgorOjQwMDM0NjAwODNFMEZGRTUxNTI0M0JGNTgyRTQzNTE0RjU4M0VGRjBFNTE1MjQxOUY1ODJFNDM1MTRGNTgzRTA2MDExRTUxNTI0MzlGNTgyRTQzNTE0RjU4M0UwNDQxMEYwODAwRkU1MTUyNDM5RjU4MkU0MzUxNEY1ODNFMDU0RUZGMDkwNzg2OQorOjQwMDM4NjAwNDE3NEY0RjBFNTE1MjQzOUY1ODJFNDM1MTRGNTgzRTA5MEMwMDBGMEU1MTUyNDFBRjU4MkU0MzUxNEY1ODNFMDYwNkJFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NEJGRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTQxRgorOjQwMDNDNjAwRjU4M0UwNTQ3RjkwQzAwMEYwOTA3ODQxNzRGMUYwMTIwMDM2RUY1NEZFOTBDMDAwRjBFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NEZERkZGMEZERTRGRjEyMTY2QkU1MTUyNDJDRjU4MkU0MzUxNEY1ODNFNEYwRTUxNTI0MkJBMworOjQwMDQwNjAwRjU4MkU0MzUxNEY1ODNFNEYwRTUxNjQyMTNFNTE1MjQxQkY1ODJFNDM1MTRGNTgzRTA3MDBFRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyOEU1MTUyNDMyRjU4MkU0MzUxNEY1ODNFMDQ0MDJGRkYwRkRFNEZGMTIxNjZCRTUyMworOjQwMDQ0NjAwMTUyNDJCRjU4MkU0MzUxNEY1ODM3NDAxRjBFNTE2NDIxM0U1MTUyNDFDRjU4MkU0MzUxNEY1ODNFMEZGNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMkE5MDc4NDE3NEYyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTBENgorOjQwMDQ4NjAwNDQwNDkwQzAwMEYwRUY2MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNDQwNEYwRTUxNTI0MURGNTgyRTQzNTE0RjU4M0UwNjAyN0U1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDQ0NDBGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU2MAorOjQwMDRDNjAwODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjBFNTE1MjQxRUY1ODJFNDM1MTRGNTgzRTA2MDI4RTUxNTI0MzJGNTgyRTQzNTE0RjU4M0UwNTRGRUZGRjBGREU0RkYxMjE2NkJFNTE1MjQyREY1ODJFNDM1MTRGNTgzNzQwMUYwRTU2QgorOjQwMDUwNjAwMTY0MjEzRTUxNTI0MUZGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMjdFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDAxRkZGMEZERTRGRjEyMTY2QkU1MTUyNDJERjU4MkU0MzUxNEY1ODM3MworOjQwMDU0NjAwRTRGMEU1MTY0MjEzRTUxNTI0MjBGNTgyRTQzNTE0RjU4M0UwNzAwRUU1MTUyNDI1RjU4MkU0MzUxNEY1ODNFMDYwMTg5MDc4NDE3NEYyRjBFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRTA0NDAyOTBDMDAwRjBFNTE1MjQyMUY1ODJCNworOjQwMDU4NjAwRTQzNTE0RjU4M0UwNjAwRkU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDJGMEU1MTUyNDIyRjU4MkU0MzUxNEY1ODNFMDYwMUZFNTE1MjQyRUY1ODJFNDM1MTRGNTgzNzQwMUYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4M0U0RjBGMAorOjQwMDVDNjAwRTUxNjQyMTNFNTE1MjQyM0Y1ODJFNDM1MTRGNTgzRTA2MDAzMTIxODdBRTUxNTI0MjRGNTgyRTQzNTE0RjU4M0UwNjAyM0U1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDQ0MDhGMEU1MTZDNDU0RjBGRjQyMTE5MDdGOTZFMDRGRjAwMAorOjQwMDYwNjAwOTA3ODQxRTA0RkYwRTUxNTI0MjVGNTgyRTQzNTE0RjU4M0UwNjAyNEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0RjdGMEU1MTZDNDU0RjBGNEZGNTIxMTkwN0Y5NkUwNUZGMDkwNzg0MUUwNUZGMDIyOTA3RkU5RTAxMjExRkU0MworOjQwMDY0NjAwMDc5OTAwMDgwRDAxMDg3OTAzMDY2MjA2MDc4QTA4MDc3RTA5MDc2NjBBMDc3NTBCMDAwMDA4Qzg5MDdGRUJFMDI0RkU2MDFDMTQ3MDAzMDIwNzE0MjQwMjYwMDMwMjA3NUM3NDE5OTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjA4Q0Y0QworOjQwMDY4NjAwOTA3RkVBRTAwNDc1ODIxNzc1ODMxOUYwOTA3RkVBRTAzMEUwMDQ3RjAyODAwMjdGMDM3NTgyODI3NTgzMTlFRkYwNzU4MjZENzU4MzE5RjA3NTgyNjY3NTgzMTlGMDc1ODI1Rjc1ODMxOUYwNzU4MjU4NzU4MzE5RjA5MDdGRUEwQQorOjQwMDZDNjAwRTAzMEUxMDQ3RjY0ODAwMjdGMzI3NTgyMUE3NTgzMTlFRkYwOTA3RkVGRTBGRTkwN0ZFRUUwN0MwMDI0MDBGNTE4RUMzRUY1MTc3NTMzMTk3NTM0MTI3NTgyMTQ3NTgzMTlFMDc1MjcwMEY1MjhEM0U1Mjg5NTE4RTUyNzk1MTdENgorOjQwMDcwNjAwNDAwNjg1MTcyNzg1MTgyODEyMTMwRDAyMDhDRjkwN0ZFQUUwRkYxMjE0NUZFQTQ5NjAzMjkwN0ZFRUUwNzUxNzAwRjUxOEFFMDJBRjAxOEUzMzhGMzQ4RjgyOEU4M0UwRkVBM0UwOEUyN0Y1MjhEMzk1MThFNTI3OTUxNzQwMDY4QgorOjQwMDc0NjAwODUxNzI3ODUxODI4MTIxMzBEMDIwOENGOTA3RkI0RTA0NDAxRjAwMjA4Q0Y5MDdGQjRFMDQ0MDFGMDAyMDhDRjkwN0YwMEU1MjVGMDkwN0ZCNTc0MDFGMDAyMDhDRjkwN0ZFQUUwRjUyNTAyMDhDRjkwN0ZFQUUwRjUyMjEyMEE5QgorOjQwMDc4NjAwQ0UwMjA4Q0Y5MDdGMDBFNTIyRjA5MDdGQjU3NDAxRjAwMjA4Q0Y5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjAwRTQzM0ZGMjVFMEZGQTIwNkU0MzM0RjkwN0YwMEYwRTRBM0YwOTA3RkI1NzQwMkYwMDIwOENGRTRDOQorOjQwMDdDNjAwOTA3RjAwRjBBM0YwOTA3RkI1NzQwMkYwMDIwOENGOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzRTA1NEZEOTA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA4Q0Y5MDdGQjQ1QworOjQwMDgwNjAwRTA0NDAxRjAwMjA4Q0Y5MDdGRThFMDI0RkU2MDFEMjQwMjYwMDMwMjA4Q0Y5MDdGRUFFMEI0MDEwNUMyMDAwMjA4Q0Y5MDdGQjRFMDQ0MDFGMDAyMDhDRjkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDU0MEZGRkUwNTQ5MAorOjQwMDg0NjAwMDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODNFNEYwOTA3RkVDRTA1NDgwRkYxMzEzMTM1NDFGRkZFMDU0MDcyRjkwN0ZEN0YwRTA0NDIwRjA4MDVGOTA3RkI0RTA0NDAxRjA4MDU2OTA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTBDQQorOjQwMDg4NjAwN0ZFQUUwQjQwMTA0RDIwMDgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MDdGRUFFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RkY1ODM3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA0NgorOjQwMDhDNjAwODAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMkU1MTI1NDBGNzAwMzAyMDlDODEyMTY5QUVGMjBFMTc1MTIxNkY4RUYxNEY1MTgxMjE4QzVFRjI1MThGRkU0MzNGRUMzRUY5NDgwRUU2NDgwOTQ4MDUwNTk4NTE1ODIwMQorOjQwMDkwNjAwODUxNDgzRTBGRUEzRTBGRkY1ODI4RTgzRTAzMEUwMTFFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA0NDgwRjA4MDBGRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwNTQ3RkYwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMjBFMjEyRTVDQworOjQwMDk0NjAwMTg2MDBFRjUyM0VGMjQwMUY1MkRFNDNFRjUyQzEyMTRBMEU0RkYxMjE0RDdFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU3NUQxMjE4QzVFNTE1MjQzQkY1ODJFNDM1MTRGNTgzRTBGRUVGQzM5RTUwNDhFNTE1MjQyRkY1ODIwNworOjQwMDk4NjAwRTQzNTE0RjU4Mzc0MDFGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDU0N0JGMEU1MTUyNDNBRjU4MkU0MzUxNEY1ODNFNEYwRTUxNjQyMTM5MDdGQzJFMDMwRTExMEU1MTUyNDI2RjU4MkU0MzUxNEY1ODNFMEY1MjQ4MDAzMTJDNQorOjQwMDlDNjAwMTI5QzEyMTZDOUVGMzBFMTAzMDIwQUNEMTIxN0M3OEYxODEyMThEM0U1MTUyNDM4RjU4MkU0MzUxNEY1ODNFRkYwRTUxNTI0MzVGNTgyRTQzNTE0RjU4M0UwRkZFNTE4QzM5RjUwMjgxMjE4QTlFRjMwRTAyMUU1MTUyNDM4RjUyRQorOjQwMEEwNjAwODJFNDM1MTRGNTgzRTAyMEU3MTJFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAyMEUxMDMwMjBBQ0RFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTA1NEZERjBFNTE4NzAwMzAyMEFDREI0ODAwRkU1MTUyNDM4RjU4MkU0MzUxNEY1ODNERQorOjQwMEE0NjAwRTA0NDAyRjBFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTBGRjMwRTcyOUU1MThEMzk0MjA0MDAzNzUxODIwODUxODIzODUxNTgyODUxNDgzQTNBM0UwRkNBM0UwOEMyQ0Y1MkQxMjEzQ0ZFNTE4MjVFMEZGMTIxNTBEMjJFNTE4RDNDMworOjQwMEE4NjAwOTQzRjQwMDM3NTE4M0Y4NTE4MjNFNTE1MjQzOEY1ODJFNDM1MTRGNTgzRTBGRjg1MTU4Mjg1MTQ4M0EzQTNFMEZDQTNFMEY1ODI4QzgzRUZGMDg1MTU4Mjg1MTQ4M0EzQTNFMEZFQTNFMDI0MDFGNTJERTQzRUY1MkMxMjE0MUQ0RgorOjQwMEFDNjAwRTUxODA0RkYxMjE1MEQyMkU0OTA3RjkzRjA5MDdGOUM3NEZGRjBFNDkwN0Y5NkYwOTA3Rjk0RjA5MDc4NEEwNEYwRjU4RTkwN0Y5NTc0QzBGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0MkZGMDkwNzg0Mzc0RjdGMEU0OTA3ODQxRjAyQworOjQwMEIwNjAwOTA3RkRGNzQ5RkYwOTA3RkRFRjA5MDdGOTJFMDQ0MDJGMDdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk4NzQyRUYwNzUxNjAxMTIwRjI4N0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTg3NDJFRjA3NTE2MDFFNTE1MjQyNkY1ODI5MAorOjQwMEI0NjAwRTQzNTE0RjU4M0U0RjA3RTdFN0Y0MDg1MTU4Mjg1MTQ4Mzc0N0VGMEEzNzQ0MEYwN0U3RTdGODA4NTE1ODI4NTE0ODNBM0EzNzQ3RUYwQTM3NDgwRjA3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1MTYwMjEyMEYwQQorOjQwMEI4NjAwMjg3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1MTYwMkU1MTUyNDI2RjU4MkU0MzUxNEY1ODM3NDAxRjA3RTdEN0ZDMDg1MTU4Mjg1MTQ4Mzc0N0RGMEEzNzRDMEYwN0U3RTdGMDA4NTE1ODI4NTE0ODNBM0EzNzRFRQorOjQwMEJDNjAwN0VGMEEzNzQwMEYwN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCRjA3NTE2MDQxMjBGMjg3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkJGMDc1MTYwNEU1MTUyNDI2RjU4MkU0MzUxNEY1ODM3NDAyRjA3RTdEN0Y1NworOjQwMEMwNjAwNDA4NTE1ODI4NTE0ODM3NDdERjBBMzc0NDBGMDdFN0Q3RjgwODUxNTgyODUxNDgzQTNBMzc0N0RGMEEzNzQ4MEYwN0U3QzdGODA3NTE0N0M3NTE1ODA5MDdGOTg3NDI3RjA3NTE2MDgxMjBGMjg3RTdDN0Y4MDc1MTQ3Qzc1MTU5MAorOjQwMEM0NjAwODA5MDdGOTg3NDI3RjA3NTE2MDhFNTE1MjQyNkY1ODJFNDM1MTRGNTgzNzQwM0YwN0U3QzdGQzA4NTE1ODI4NTE0ODM3NDdDRjBBMzc0QzBGMDdFN0Q3RjAwODUxNTgyODUxNDgzQTNBMzc0N0RGMEEzNzQwMEYwQzIwQUMyMDlEMworOjQwMEM4NjAwRTRGNTExRDIwMjIyRTUxMDA0NTQwM0Y1MTAxNDYwMUYxNDYwMzExNDYwNDMyNDAzNzA1MjdFN0I3RkMwNzUxNDdCNzUxNUMwOTA3Rjk4NzQyRUYwNzUxNjAxODAzRDdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzU2NAorOjQwMENDNjAwMTYwMjgwMjg3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkJGMDc1MTYwNDgwMTM3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5ODc0MjdGMDc1MTYwOEU1MzI1NTE2NzAwMzAyMEUyN0U1MTZGNDUyMzJFNTI2NTQ3RkZGNzA5NQorOjQwMEQwNjAwMTdFNTJBNTUxNjYwMzQ5MDdGOTZFMEZFRTUxNkM0NTRGMEY0RkRFRTVERjA4MDIzQkYyMDIwRTUxNTI0MzFGNTgyRTQzNTE0RjU4M0UwMzBFMzExRTRGNTJBOTA3Rjk2RTBGRkU1MTZDNDU0RjBGRUVGNEVGMEU1MTUyNDNBRjVDMworOjQwMEQ0NjAwODJFNDM1MTRGNTgzRTA2MDAzRTAxNEYwRTUxNTI0MzRGNTgyRTQzNTE0RjU4M0UwNjAwM0UwMTRGMEUwNjAwMzAyMEUyNzc0MEFGMDEyMDAzNkVGNTQwMUZGRjUxOEU1MTUyNDJDRjU4MkU0MzUxNEY1ODNFMDZGNjAwN0U1MThGMQorOjQwMEQ4NjAwRjBFNTE2NDIxMzEyMThFMThGMThFNTE1MjQyN0Y1ODJFNDM1MTRGNTgzRTBGRkU1MTg1NDEwRkU2RjYwMDZFRUYwRTUxNjQyMTNFNTE1MjQyOEY1ODJFNDM1MTRGNTgzRTBGRkU1MTg1NDgwRkU2RjYwMDZFRUYwRTUxNjQyMTM4NgorOjQwMERDNjAwRTUxNTI0MjlGNTgyRTQzNTE0RjU4M0UwRkZFNTE4NTQyMEZFNkY2MDE1RUVGMEU1MTUyNDMxRjU4MkU0MzUxNEY1ODNFMDMwRTQwNEU1MTY0MjEzRTUxNTI0MkFGNTgyRTQzNTE0RjU4M0UwRkZFNTE4NTQ0MEZFNkY2MDE1RUUyMworOjQwMEUwNjAwRjBFNTE1MjQzMUY1ODJFNDM1MTRGNTgzRTAzMEU1MDRFNTE2NDIxM0U1MTUyNDMwRjU4MkU0MzUxNEY1ODNFNEYwMjIzMDA5MDMwMjBGMjdFNTI0MTQ2MDJBMTQ2MDQxMTQ2MDU4MTQ2MDZGMjQwNDYwMDMwMjBFRTU3RTdCN0YzMQorOjQwMEU0NjAwQzA3NTE0N0I3NTE1QzA5MDdGOTg3NDJFRjA3NTE2MDExMjEyOUM3NTI0MDEyMjdFN0M3RjAwNzUxNDdDNzUxNTAwOTA3Rjk4NzQyREYwNzUxNjAyMTIxMjlDNzUyNDAyMjI3RTdDN0Y0MDc1MTQ3Qzc1MTU0MDkwN0Y5ODc0MkIwNQorOjQwMEU4NjAwRjA3NTE2MDQxMjEyOUM3NTI0MDMyMjdFN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk4NzQyN0YwNzUxNjA4MTIxMjlDNzUyNDA0MjIzMDA0MzNDMjA0NTMxM0RGRTRGNTE4N0UwMDdCMDA3NDJFMjUxOEY5RUUzNDAwRkExMjExQTZDQQorOjQwMEVDNjAwRkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwM0RCOTA3RkMzNzQwM0YwNzUyNDA1MjJFNTM2NjAzQkQ1MzYwQTUzMTNFRjMwMEEwNEQyMDlDMjBBRTRGNTE4N0UwMDdCMDA3NDM1MjUxOEY5RUUzNDAwRkFDQworOjQwMEYwNjAwMTIxMUE2RkY3NDgwMjUxOEY1ODJFNDM0N0JGNTgzRUZGMDA1MThFNTE4QjQwM0RCOTA3RkMzNzQwM0YwRTRGNTI0MjJFNEY1MTk3RTAwN0IwMUU1MTUyNTE5RjlFRTM1MTRGQUU0MTIxMUVDMDUxOUU1MTlCNDNDRThFNTE1MjRGQQorOjQwMEY0NjAwMzVGNTgyRTQzNTE0RjU4Mzc0MDFGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODM3NDAzRjA5MEMwMDBGMDdGMENFNEZEMTIxNjZCN0YxMEU1MTUyNDMzRjU4MkU0MzUxNEY1ODNFRkYwMTIxNURCOTA3ODQxNzQ2NAorOjQwMEY4NjAwRjJGMDdGMDFFNTE1MjQzNkY1ODJFNDM1MTRGNTgzRUZGMDQ0MDY5MEMwMDBGMDkwNzg0MTc0RjRGMEU1MTUyNDM5RjU4MkU0MzUxNEY1ODM3NDgwRjA5MEMwMDBGMDBGRTRGRDEyMTY2QkU0RkY3RUEzRTUxNTI0MzJGNTgyRTQ4NgorOjQwMEZDNjAwMzUxNEY1ODNFRUYwRkQxMjE2NkI5MDc4NDE3NEYxRjA5MEMwMDBFNEYwN0YwNTdEN0YxMjE2NkI3RjAxMTIxNTQzN0YwMzdEMDcxMjE2NkIyMjUzMTMzRjkwN0JGMUUwMzBFMzE2N0U3QjdGQzA3NTE0N0I3NTE1QzA5MDdGOTg2QgorOjQwMTAwNjAwNzQyRUYwNzUxNjAxMTIwOEQ3OTA3QzMxRTAzMEUzMTY3RTdDN0YwMDc1MTQ3Qzc1MTUwMDkwN0Y5ODc0MkRGMDc1MTYwMjEyMDhENzkwN0M3MUUwMzBFMzE2N0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCRjA3NTE2MDRDNAorOjQwMTA0NjAwMTIwOEQ3OTA3Q0IxRTAzMEUzMTY3RTdDN0Y4MDc1MTQ3Qzc1MTU4MDkwN0Y5ODc0MjdGMDc1MTYwODEyMDhENzA1MTJFNTEyNTQwRkY1MTc3MDA0MTIxMTFDMjJFNTE3QjQwMTA0MTIwQzhDMjI5MDdGQzJFMDIwRTEwOEU1MTM3MAorOjQwMTA4NjAwNjAwNDEyMEUyODIyMTIwQzhDMjI3ODdGRTRGNkQ4RkQ3NTgxMzcwMjEwRDcwMjEyMjRFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMjA4REZGNDgwMjlFNDkzQTNGODU0MDcyNDBDQzhDMzMzQzQ1NDBGNDQyMEM4ODM0MDA0RjRENworOjQwMTBDNjAwNTY4MDAxNDZGNkRGRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMTg0NUU0N0UwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5M0EzNjAwMTBFQ0Y1NEMwMjVFMDYwQTg0MEI4RTQ5M0EzRkFFNDkzQTNGOEU0OTNBM0M4QzU4OQorOjQwMTEwNjAwODJDOENBQzU4M0NBRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkU5MDdGRDJFMDMwRTEwMzAyMTFBNUMyMDk5MDdCNDBFMDE0NjAyNjE0NjAzQjE0NjA1MDI0ODM2MDY0MjQ4MDcwNjM3RTdCN0ZDMDc1MTQ3Qjc1MTUzQQorOjQwMTE0NjAwQzA5MDdGOTg3NDJFRjA3NTE2MDExMjAwNDY4MDRCN0U3QzdGMDA3NTE0N0M3NTE1MDA5MDdGOTg3NDJERjA3NTE2MDIxMjAwNDY4MDMzN0U3QzdGNDA3NTE0N0M3NTE1NDA5MDdGOTg3NDJCRjA3NTE2MDQxMjAwNDY4MDFCN0UyQgorOjQwMTE4NjAwN0M3RjgwNzUxNDdDNzUxNTgwOTA3Rjk4NzQyN0YwNzUxNjA4MTIwMDQ2ODAwMzEyMTc1MUU0OTA3RkQzRjAyMkJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRTMyMjg5ODI4QTgzRTQ5MzIyQkIwMTBDRTU4MjI5RjVCOAorOjQwMTFDNjAwODJFNTgzM0FGNTgzRTAyMjUwMDZFOTI1ODJGOEU2MjJCQkZFMDZFOTI1ODJGOEUyMjJFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkJCMDEwNjg5ODI4QTgzRjAyMjUwMDJGNzIyQkJGRTAxRjMyMkQwODNEMDgyRjhFNDkzNzBCNgorOjQwMTIwNjAwMTI3NDAxOTM3MDBEQTNBMzkzRjg3NDAxOTNGNTgyODg4M0U0NzM3NDAyOTM2ODYwRUZBM0EzQTM4MERGOTA3RkFFRTBGRkQzOTIwMEU0MzNGRUVGNEVGMEQyRTg0M0Q4MjA5MDdGREU3NDAxRjA5MDdGREZGMDkwN0ZBQjc0RkZDMgorOjQwMTI0NjAwRjA5MDdGQTlGMDkwN0ZBQUYwNTM5MUVGOTA3RkFGNzQwMUYwOTA3RkFFNzQwREYwRDJBRkQyMEIxMjE4MDlDMjAxRTRGNTJCRjUzMUMyMDdDMjAyNzUyOTBGOTA3RkQ4RTA2NTI2NjAwNjc1MzIwRkUwRjUyNjMwMDIwMzEyMEY4QworOjQwMTI4NjAwRUYzMDAxMDdDMjAxMTIwNjNGODBFMjMwMDhERkMyMDgxMjE4MkE4MEQ4MjJFNTEzNTUxNjYwNkFFNTE1MjQzQUY1ODJFNDM1MTRGNTgzRTA3MDVDRTUxNkY0NTIxM0U1MTUyNDI2RkZFNDM1MTRGRUU0RkQwRkVGQUEwNjcwMDFDNworOjQwMTJDNjAwMEUxNEY1ODI4QTgzRTBGQzc0ODAyREY1ODJFNDM0N0JGNTgzRUNGMDBEQkQwQkUyOTA3RkMzNzQwQkYwRTUxNTI0M0FGNTgyRTQzNTE0RjU4Mzc0MTBGMEU1MTUyNDJFRjU4MkU0MzUxNEY1ODNFNEYwRTUxNTI0MkZGNTgyRTQyMworOjQwMTMwNjAwMzUxNEY1ODNFNEYwMjJFNTI4NDUyNzYwNTdBRTI3QUYyOEQzRUY5NDQwRUU5NDAwNDAwNDdFMDA3RjQwQzNFNTI4OUZGNTI4RTUyNzlFRjUyN0U0RkRFREMzOUZFNDlFNTAxRjg1MzQ4Mjg1MzM4M0UwRkM3NDAwMkRGNTgyRTRCQQorOjQwMTM0NjAwMzQ3RkY1ODNFQ0YwMEQwNTM0RTUzNDcwMDIwNTMzODBEQTkwN0ZBOTc0MDFGMDkwN0ZBQ0UwNDQwMUYwOTA3RkI1RUZGMDIyOTA3RkFDRTA1NEZFRjBFNDkwN0ZCNUYwMjI5MDdGOTg3NDBGRjBFNDkwNzg0QUYwOTA3Rjk0RjBFMQorOjQwMTM4NjAwOTA3RjlENzRGRkYwRTQ5MDdGOTdGMDkwNzg0MUYwOTA3RjkzRjA5MDdGOUM3NEZGRjAzMDAwMDdFNTI5NTQwRkZGODAwMjdGMDA5MDdGOTZFRkYwOTA3Rjk4NzQxRkYwRTQ5MDdGOTVGMDkwN0Y5RTc0M0ZGMDkwN0Y5ODc0REZBRAorOjQwMTNDNjAwRjA5MDdGOTJFMDU0RkRGMDIyOEYxOTA1MkRFNTJEQUUyQzcwMDIwNTJDMTRGNTgyOEU4M0U1MTlGMDEyMThFRjA1MkRFNTJEQUMyQzcwMDIwNTJDMTRGNTgyOEM4M0VGRjAxNTIzRTUyMzYwMUZFNTE1MjQzOEY1ODJFNDM1MTQxNgorOjQwMTQwNjAwRjU4M0MwODNDMDgyRTBGRTEyMThEMzhGMTlFRTRGRDA4MkQwODNGMDgwQjUyMjkwNzg0MUU1MTFGMDkwNzg0Rjc0QzBGMEU0OTA3ODUwRjBFNTJDOTA3ODUxRjBBRTJDRTUyRDkwNzg1MkYwOTA3ODU0RTUyM0YwOTA3ODU3NzQ3MAorOjQwMTQ0NjAwMDRGMDkwN0ZFMkUwNDQxMEYwRTA1NEY3RjBFNDkwNzg1NUYwOTA3ODU1RTA2MEZBMjI4RjE5RTRGNTFBNzUxQkZGNzUxQzE5NzUxRDg2QUIxQkFBMUNBOTFEOTAwMDAxMTIxMUJGQjQwMzFEQUYxQTA1MUFFRkI1MTkwMTIyMTJGOQorOjQwMTQ4NjAwMTFBNjdFMDAyOUZGRUUzQUE5MDc3NTFCRkZGNTFDODkxRDgwRDQ3QjAwN0EwMDc5MDAyMjkwNzg0MUU1MTFGMEU1MkM5MDc4NEZGMEFFMkNFNTJEOTA3ODUwRjA5MDc4NTE3NEMwRjBFNDkwNzg1MkYwOTA3ODU0RTUyM0YwOTA3RAorOjQwMTRDNjAwNzg1Nzc0MDRGMEU0OTA3ODU1RjA5MDc4NTVFMDYwRkEyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRjE0NjAxMzE0NjAxNzgwMDA5MDdGQzdFRkYwODAxMzkwN0ZDOUVGRjA4MDBDOTA3RkNCRUZGMDgwMDU5MDdGQ0RFRAorOjQwMTUwNjAwRUZGMEU1MTY0MjJBMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTAxNDYwMEYxNDYwMTMxNDYwMTc4MDAwOTA3RkI3RUZGMDgwMTM5MDdGQjlFRkYwODAwQzkwN0ZCQkVGRjA4MDA1OTA3RkJERUZGMEU1MTY0MjJBMjJBRTA3RTRBNAorOjQwMTU0NjAwRkZFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA1NDdGRkQxMjE2NkI5MDc4NDE3NEYxRjA5MEMwMDBFRUYwRTRFNTE1MjQzMkY1ODJFNDM1MTRGNTgzRTA0NDgwRkQxMjE2NkIyMkMwRTBDMEYwQzA4M0MwODJDMDg1QzA4NEMwODZBMQorOjQwMTU4NjAwNzU4NjAwQzBEMDc1RDAwODUzOTFFRjkwN0ZBOTc0MDFGMDEyMTMwREQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRjBEMEUwMzI5MDc4NDE3NEYzRjA5MEMwMDA3NEJGRjA5MDc4NDE3NEYxRjA5MEMwMDBFRkYwOTA3ODQxNzRBOAorOjQwMTVDNjAwRjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0Y5MEMwMDBGMDIyOTA3ODQxNzRGM0YwOTBDMDAwNzRCRkYwOTA3ODQxNzRGMkYwOTBDMDAwRUZGMDkwNzg0MTc0RjNGMEU1MTUyNDM3RjU4MkU0MzUxNEY1ODNFMDU0N0ZENworOjQwMTYwNjAwOTBDMDAwRjAyMjkwNzg0MTc0RjNGMDkwQzAwMDc0QkZGMDkwNzg0MTc0RjRGMDkwQzAwMEVGRjA5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjAyMjkwNzg0MTc0RjNGMDkwQzAwMDc0QkYxNgorOjQwMTY0NjAwRjA5MDc4NDE3NEY2RjA5MEMwMDBFRkYwOTA3ODQxNzRGM0YwRTUxNTI0MzdGNTgyRTQzNTE0RjU4M0UwNTQ3RjkwQzAwMEYwMjI5MDc4NDE3NEYzRjBFNTE1MjQzN0Y1ODJFNDM1MTRGNTgzRTA1NDdGOTBDMDAwRjA5MDc4NDEyRgorOjQwMTY4NjAwNzRGN0YwOTBDMDAwRUZGMDkwNzg0MTc0RjVGMDkwQzAwMEVERjAyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwRTE0NjAxMTE0NjAxNDgwMDA5MDdGQzZFMEZGMjI5MDdGQzhFMEZGMjI5MDdGQ0FFMEZGMjI5MDdGQ0MxOQorOjQwMTZDNjAwRTBGRjIyRTUxNTI0MDRGNTgyRTQzNTE0RjU4M0UwMTQ2MDBFMTQ2MDExMTQ2MDE0ODAwMDkwN0ZCNkUwRkYyMjkwN0ZCOEUwRkYyMjkwN0ZCQUUwRkYyMjkwN0ZCQ0UwRkYyMkU1MTUyNDA0RjU4MkU0MzUxNEY1ODNFMDE0NjAwMAorOjQwMTcwNjAwMEUxNDYwMTExNDYwMTQ4MDAwOTA3RkM3RTBGRjIyOTA3RkM5RTBGRjIyOTA3RkNCRTBGRjIyOTA3RkNERTBGRjIyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzU4NjAwOTA3RkM0RTRGMDUzOTFFRjkwN0ZBQjc0MDRGMEQwODZCRgorOjQwMTc0NjAwRDA4NEQwODVEMDgyRDA4M0QwRTAzMjkwN0I0MUUwRjUzNjQzMTMxMEEzRTA2MDA5OTA3RkQ3NzQxN0YwNzQzN0YwOTA3QjQzRTBGNTM3QTNFMDU0RjBGNTI5RTA2MDAyRDIwQTIyQzBFMEMwODNDMDgyQzA4NUMwODRDMDg2NzVBNgorOjQwMTc4NjAwODYwMEQyMDE1MzkxRUY5MDdGQUI3NDAxRjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkMwRTBDMDgzQzA4MkMwODVDMDg0QzA4Njc1ODYwMEQyMDg1MzkxRUY5MDdGQUI3NDA4RjBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzQworOjQwMTdDNjAwMzIxMjE4QjdBRTA3MTIxOEI3QUQwN0VFNkQ2MDEwMTIxOEI3QUUwN0VFNkQ2MDA3MTIxOEI3QUQwNzgwRUNBRjA2MjI3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTIyOTA3RkQ2RTA0NDgwRjA0Mzg3MDEwMDAwMDA0OAorOjQwMTgwNjAwMDAwMDIyOTA3RkQ2RTA0NDA0RjBFMDQ0MDhGMDMwMEIwNEUwNDQwMkYwN0ZGNDdFMDExMjE4NjA5MDdGRDZFMDU0RjdGMDIyMTIxMzc3MTIxN0Y5OTA3RkQ2RTAzMEU3MEE3RjA1N0UwMDEyMTg2MDEyMTg5MzEyMEFDRTIyMDM3OAorOjQwMTg0NjAwMzU4MDAwMDAwMzJFODEwMDAwQzE4NUMxODFDMTA4QzEwMEMxMDYwMTIyMDAwMTI0MDAwMDhFMTc4RjE4RTUxODE1MThBRTE3NzAwMjE1MTc0RTYwMDgxMjE3RTgxMjE3RTg4MEVCMjJFNTE1MjQwNEY1ODJFNDM1MTRGNTgzRTA3RQorOjQwMTg4NjAwMDRGRjQ0MTA5MDdGRDdGMEVGNDQzMEYwMjI5MDdGRDZFMDQ0MDFGMDdGMEQ3RTAwMTIxODYwOTA3RkQ2RTA1NEZFRjAyMkU1MTEyNDAyOTA3ODQxRjA5MEMwMDBFMEZGMjJFNTExMjQwMzkwNzg0MUYwOTBDMDAwRTBGRjIyRTU5NworOjQwMThDNjAwMTEyNDA0OTA3ODQxRjA5MEMwMDBFMEZGMjJFNTExMjQwNTkwNzg0MUYwOTBDMDAwRTBGRjIyRTUxMTI0MDY5MDc4NDFGMDkwQzAwMEUwRkYyMjkwNzg0MUU1MTFGMDkwQzAwMEUwRkYyMjUzRDhFRjMyMDAxMjAxMTAwMUZGRkZERQorOjQwMTkwNjAwRkY0MENEMDYyQTAxMDAwMDAxMDIwMDA0MDkwMjc0MDAwMTAxMDBBMDMyMDkwNDAwMDAwRUZGMDAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1MDUwMjQwMDA1QgorOjQwMTk0NjAwMDAwNzA1MDYwMjQwMDAwMDA3MDUwNzAyNDAwMDAwMDcwNTgxMDI0MDAwMDEwNzA1ODIwMjQwMDAwMTA3MDU4MzAyNDAwMDAxMDcwNTg0MDI0MDAwMDEwNzA1ODUwMjQwMDAwMTA3MDU4NjAyNDAwMDAxMDcwNTg3MDI0MDAwMDFGMworOjQwMTk4NjAwMDQwMzA5MDQ0ODAzNEIwMDY1MDA3OTAwNzMwMDcwMDA2MTAwNkUwMDJDMDAyMDAwNjEwMDIwMDA2NDAwNjkwMDc2MDA2OTAwNzMwMDY5MDA2RjAwNkUwMDIwMDA2RjAwNjYwMDIwMDA0OTAwNkUwMDZFMDA2RjAwNTMwMDc5MDA0MAorOjQwMTlDNjAwNzMwMDIwMDA0OTAwNkUwMDYzMDAyRTAwMjQwMzRCMDA2NTAwNzkwMDczMDA3MDAwNjEwMDZFMDAyMDAwNTUwMDUzMDA0MTAwMkQwMDM0MDAzOTAwNTcwMDRDMDA0MzAwMjIwMzU1MDA1MzAwNDEwMDJEMDAzNjAwMzUwMDIwMDBCNQorOjQwMUEwNjAwMzIwMDMwMDAzMDAwMzMwMDZBMDA2MTAwNkUwMDMzMDAzMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjQwMUE0NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjQwMUE4NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjQwMUFDNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjE3NzkwMDAyMUIzMQorOjE1MUIwNjAwMDQwMDAyMTcyNzAwMDIxN0EwMDAwMjFCMTAwMDAyMUIxNDAwMDIxNTc4RTAKKzowMDAwMDAwMUZGCisKKwlUaGUgZmlybXdhcmUgY29udGFpbmVkIGhlcmVpbiBpcworCisJCUNvcHlyaWdodCAoQykgMTk5OS0yMDAzCisJCUtleXNwYW4sIEEgZGl2aXNpb24gb2YgSW5ub1N5cyBJbmNvcnBvcmF0ZWQgKCJLZXlzcGFuIikKKworCWFzIGFuIHVucHVibGlzaGVkIHdvcmsuIFRoaXMgbm90aWNlIGRvZXMgbm90IGltcGx5IHVucmVzdHJpY3RlZCBvcgorCXB1YmxpYyBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGZyb20gd2hpY2ggdGhpcyBmaXJtd2FyZSBpbWFnZSBpcworCWRlcml2ZWQuICBFeGNlcHQgYXMgbm90ZWQgYmVsb3cgdGhpcyBmaXJtd2FyZSBpbWFnZSBtYXkgbm90IGJlCisJcmVwcm9kdWNlZCwgdXNlZCwgc29sZCBvciB0cmFuc2ZlcnJlZCB0byBhbnkgdGhpcmQgcGFydHkgd2l0aG91dAorCUtleXNwYW4ncyBwcmlvciB3cml0dGVuIGNvbnNlbnQuICBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisJUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCBmb3IgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpcm13YXJlCisJaW1hZ2UgYXMgcGFydCBvZiBhIExpbnV4IG9yIG90aGVyIE9wZW4gU291cmNlIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVsCisJaW4gdGV4dCBvciBiaW5hcnkgZm9ybSBhcyByZXF1aXJlZC4KKworCVRoaXMgZmlybXdhcmUgbWF5IG5vdCBiZSBtb2RpZmllZCBhbmQgbWF5IG9ubHkgYmUgdXNlZCB3aXRoCisJS2V5c3BhbiBoYXJkd2FyZS4gIERpc3RyaWJ1dGlvbiBhbmQvb3IgTW9kaWZpY2F0aW9uIG9mIHRoZQorCWtleXNwYW4uYyBkcml2ZXIgd2hpY2ggaW5jbHVkZXMgdGhpcyBmaXJtd2FyZSwgaW4gd2hvbGUgb3IgaW4KKwlwYXJ0LCByZXF1aXJlcyB0aGUgaW5jbHVzaW9uIG9mIHRoaXMgc3RhdGVtZW50LiIKKworc3RhdGljIGNoYXIgdGhlRmlybXdhcmVEYXRlNDlbXSA9CisgICAgICAgICIwMi8xNC8yMDAyICAwMjozN3AgICAgICAgICAgICAgIDE5LDM0NyBVU0E0OSI7CisKK3N0YXRpYyBjaGFyIHRoZUZpcm13YXJlRGF0ZTY1W10gPQorICAgICAgICAiMDEvMzEvMjAwMyAgMDk6MzRhICAgICAgICAgICAgICAxOSwzMzEgVVNBNjUiOworCmRpZmYgLS1naXQgYS9maXJtd2FyZS9rZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5IRVggYi9maXJtd2FyZS9rZXlzcGFuX3BkYS9rZXlzcGFuX3BkYS5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZjZjAyYgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL2tleXNwYW5fcGRhLkhFWApAQCAtMCwwICsxLDgzIEBACis6MDMwMDAwMDAwMjAyMDBGOQorOjA0MDAyMzAwMDIwNTVGMDA3MworOjA0MDA0MzAwMDIwMTAwMDBCNgorOjA1MDAzMDAwMDAwMDAwMDAwMENCCis6MTAwMTAwMDAwMjAyOTYwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMDRGCis6MTAwMTEwMDAwMjAwMDAwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMEQ3Cis6MTAwMTIwMDAwMjAwMDAwMDAyMDAwMDAwMDIwNDYxMDAwMjA0ODkwMEQ1Cis6MTAwMjAwMDA3NTgxNUVFNEY1MzJGNTMzRjUzMEY1MzFGNTM0QzIwMDMxCis6MTAwMjEwMDBDMjAxQTkwMDc0RkU5MDEwMDBGMEEzRDlGQzc0RkQ5MEY3Cis6MTAwMjIwMDAxMTAwRjBBM0Q5RkM3NDAyOTA3RjlERjA3NDAwOTA3RkMwCis6MTAwMjMwMDA5N0YwNzQ4NjkwN0Y5RUYwOTA3Rjk1NzQwM0YwOTA3Rjg2Cis6MTAwMjQwMDBBRkUwRDJFMEYwNzQwMTkwN0ZBQkYwOTA3RkFFRjA5MDIxCis6MTAwMjUwMDA3RkFDNzQwNEYwOTA3RkFENzQwNEYwOTA3RkM5RjA3NEFCCis6MTAwMjYwMDA4NDkwN0Y5OEYwNzQwMEY1OTg3NUM4MzA3QjA1OTEyMEQ0Cis6MTAwMjcwMDBEMkNBNzU5ODUwRDJFOEQyQUZEMkFDNzQwMEY1ODY5MDRECis6MTAwMjgwMDA3RkQ2NzQwMkYwNzkyRTdBMDA3QjAwREJGRURBRkFEOTkxCis6MTAwMjkwMDBGNjc0MDZGMDgwRkVDMDg2QzA4MkMwODNDMDg0QzA4NTJDCis6MTAwMkEwMDBDMEUwRTU5MUMyRTRGNTkxOTA3RkFCNzQwMUYwOTA3RkRFCis6MTAwMkIwMDBFOEUwRjlBM0UwRkFBM0UwRkJBM0UwRkNFOTU0NjBCNEIyCis6MTAwMkMwMDAwMDAzMDIwMzM5QjQ0MDZFQkEwMDBCMTIwNDIwNDAwMzRECis6MTAwMkQwMDAwMjA0MDIwMjA0MEFCQTAxMDMwMjA0MEFCQTAyMDMwMjc3Cis6MTAwMkUwMDAwNDBBQkEwMzAzMDIwNDQ0QkEwNDFFQkIwMDBBOTA3RjQ2Cis6MTAwMkYwMDA5NUUwNDQwMkYwMDIwNDAyOTA3Rjk4RTA1NEZERjA5MEYzCis6MTAwMzAwMDA3Rjk1RTA1NEZERjAwMjA0MDJCQTA1MDMwMjA0MEFCQTI0Cis6MTAwMzEwMDAwNjE5QkIwMDA4RTUzM0QzOTUzMjAyMDNERUJCMDEwOEEyCis6MTAwMzIwMDBFNTMyQzM5NTMzMDIwM0RFMDIwNDBBQkEwNzA1OEIzNEIzCis6MTAwMzMwMDAwMjA0MDIwMjA0MEEwMjA0MEFCQTAwMjBCOTgwMTA5MEUyCis6MTAwMzQwMDA3RjAwRTRGMEEzRjA5MDdGQjU3NDAyRjAwMjA0MDJCOURDCis6MTAwMzUwMDA4MjAyODBFQkI5ODEwMjgwRTYwMjA0MEFCQTAxMEZCQjc3Cis6MTAwMzYwMDAwMDAzMDIwNDBBQkIwMTAzMDIwNDAyMDIwNDBBQkEwM0U2Cis6MTAwMzcwMDAwRkJCMDAwMzAyMDQwQUJCMDEwMzAyMDQwMjAyMDQwQUM5Cis6MTAwMzgwMDBCQTA2NTZCQzAxMEY5MDdGRDQ3NDA2RjA5MDdGRDU3NEU2Cis6MTAwMzkwMDAxMkYwMDIwNDAyQkMwMjEyQkIwMDZGOTA3RkQ0NzQwNkZDCis6MTAwM0EwMDBGMDkwN0ZENTc0MjRGMDAyMDQwMkJDMDMyOTc0MDRDM0M2Cis6MTAwM0IwMDA5QjQwNTc2MDU1RUIyQjkwMDY0NDI1ODJGNTgyNzQwMEQ0Cis6MTAwM0MwMDAzNTgzRjU4M0UwRjlBM0UwRkE5MDdGRDRFOUYwOTA3RkRDCis6MTAwM0QwMDBENUVBRjAwMjA0MDIwMjA0MEFCQTA4MEY3NDAxOTA3RjAxCis6MTAwM0UwMDAwMEYwNzQwMTkwN0ZCNUYwMDIwNDAyQkEwOTAzMDIwNDIwCis6MTAwM0YwMDAwMkJBMEEwNTc0MDAwMjAzREVCQTBCMDMwMjA0MDIwMjA5Cis6MTAwNDAwMDAwNDBBOTA3RkI0NzQwMkYwODAwOTkwN0ZCNEUwNDQwMTQ0Cis6MTAwNDEwMDBGMDgwMDBEMEUwRDA4NUQwODREMDgzRDA4MkQwODYzMkU2Cis6MTAwNDIwMDBFQjIwRTcxRUMzOTQwQTUwMTlFQjIzMjRGRUY1ODI3NEQ3Cis6MTAwNDMwMDAwNTM0MDBGNTgzRTBGNUNCRjVDREEzRTBGNUNBRjVDQ0E2Cis6MTAwNDQwMDBDMzIyRDMyMkI5NDExMUVCNjRGRjU0ODRGQjkwN0Y5OEZGCis6MTAwNDUwMDBFMDU0N0I0QkYwMDIwNDAyOTA3RjlCRTA2NEZGMDIwM0I4Cis6MTAwNDYwMDBERUMwODZDMDgyQzA4M0MwODRDMDg1QzBFMEU1OTFDMjgyCis6MTAwNDcwMDBFNEY1OTE5MDdGQTk3NDA0RjAxMjA1QTBEMEUwRDA4NTM2Cis6MTAwNDgwMDBEMDg0RDA4M0QwODJEMDg2MzJDMDg2QzA4MkMwODNDMDYwCis6MTAwNDkwMDA4NEMwODVDMEUwRTU5MUMyRTRGNTkxOTA3RkFBNzQwNDIwCis6MTAwNEEwMDBGMDkwN0ZDOUUwRjlFNEY1ODY5MDdEQzA3NTg1MTA4NUYwCis6MTAwNEIwMDAzMjg0RTAwNTg2MDU4NEYwRTU4NEI1MzMwMjgwMDkwNUMxCis6MTAwNEMwMDAzMjA1ODZBM0Q5RUM4MDAwOTA3RkM5RjBCMTMxRDBFMDJECis6MTAwNEQwMDBEMDg1RDA4NEQwODNEMDgyRDA4NjMyRTRGNTg2OTA3RkQ4Cis6MTAwNEUwMDBCQ0UwMjBFMTRCOTA3RDAwRTUzMkYwQTNFNTMzRjBBM0MyCis6MTAwNEYwMDBFNTMwRjBBM0U1MzFGMEEzRTQzMDAwMDEwNEYwQTMwNUZBCis6MTAwNTAwMDA4NjkwMTAwMDc5MTBFMEEzMDU4NkYwQTMwNTg2RDlGNjQxCis6MTAwNTEwMDAwNTg2NzRGQ0YwQTMwNTg2OTAxMTAwNzkxMEUwQTMwNTEwCis6MTAwNTIwMDA4NkYwQTMwNTg2RDlGNkU0RjU4NjkwN0ZCRDc0MjZGMEEzCis6MTAwNTMwMDAyMjIwMDAxM0U1MzJCNTMzMDEyMjA1MzM3NTgzMTA4NTdGCis6MTAwNTQwMDAzMzgyRTBGNTk5RDIwMDc0MDBCNTM0MDEyMkU1MzNEMzRCCis6MTAwNTUwMDA5NTMyQzM5NTM0NDBGNTc1MzQwMEQyMDEwMjA1QTBDMDMwCis6MTAwNTYwMDA4NkMwODJDMDgzQzA4NEMwODVDMEUwMzA5OTA3QzI5OTJDCis6MTAwNTcwMDBDMjAwMTIwNTM0MzA5ODA1MTIwNThBQzI5OEQwRTBEMDI2Cis6MTAwNTgwMDA4NUQwODREMDgzRDA4MkQwODYzMjc1ODMxMTg1MzA4MjI1Cis6MTAwNTkwMDAwNTgyRTU5OUYwRTU4MkI1MzEwMTIyMDUzMEIxQTAyMjRFCis6MTAwNUEwMDA5MDdGQjhFMDIwRTEzODIwMDEzNkU1MzBCNTMxMDEyMkY2Cis6MTAwNUIwMDBFNEY1ODY3NTgzMTEwNTg2OTA3RTAwRjBBMzA1ODY3OUEzCis6MTAwNUMwMDAwMUU1MzBCNTMxMDI4MDEwMDUzMTg1MzE4MkUwMDU4NkM0Cis6MTAwNUQwMDBGMEEzMDU4NjA5Qjk0MEU5OTA3RkI5RTk2MDAxRjAyMkVFCis6MTAwNUUwMDBDMjAxRTRGNTg2OTA3RTAwNzQwMUYwQTM3NDAyRjA5MERECis6MTAwNUYwMDA3RkI5RjAyMkMyOTlGNTk5MzA5OUZEQzI5OTIyRTU1RTQyCis6MTAwNjAwMDBGNjNDRkQ4RkZFQzhGRjY0RkZCMkZGRDlGRkVERkZGMzlDCis6MTAwNjEwMDBGRkZBMTIwMTAwMDFGRkZGRkY0MENEMDYwNDAxODlBQjg0Cis6MTAwNjIwMDAwMTAyMDMwMTA5MDIyMDAwMDEwMTAwODAzMjA5MDQwMEQ3Cis6MTAwNjMwMDAwMDAyRkZGRkZGMDAwNzA1ODIwMzQwMDAwMTA3MDUwMkRCCis6MTAwNjQwMDAwMjQwMDAwMDA2NEMwNjUwMDY3MjA2QTAwNDAzMDAwMDlCCis6MTAwNjUwMDAyMjAzNDEwMDQzMDA0RDAwNDUwMDIwMDA3NTAwNzMwMDU3Cis6MTAwNjYwMDA2MjAwMjAwMDc3MDA2OTAwNjQwMDY3MDA2NTAwNzQwMDg0Cis6MTAwNjcwMDA3MzAwMkUwMzQxMDA0MzAwNEQwMDQ1MDAyMDAwNTUwMDRCCis6MTAwNjgwMDA1MzAwNDIwMDIwMDA3MzAwNjUwMDcyMDA2OTAwNjEwMEExCis6MTAwNjkwMDA2QzAwMjAwMDc3MDA2OTAwNjQwMDY3MDA2NTAwNzQwMDRBCis6MDYwNkEwMDAwNjAzMzQwMDM3MDBFMAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9rZXlzcGFuX3BkYS5TIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEva2V5c3Bhbl9wZGEuUwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy91c2Ivc2VyaWFsL2tleXNwYW5fcGRhLlMKcmVuYW1lIHRvIGZpcm13YXJlL2tleXNwYW5fcGRhL2tleXNwYW5fcGRhLlMKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL2tleXNwYW5fcGRhL3hpcmNvbV9wZ3MuSEVYIGIvZmlybXdhcmUva2V5c3Bhbl9wZGEveGlyY29tX3Bncy5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTliMDBkNwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tleXNwYW5fcGRhL3hpcmNvbV9wZ3MuSEVYCkBAIC0wLDAgKzEsODcgQEAKKzowMzAwMDAwMDAyMDIwMEY5Cis6MDQwMDIzMDAwMjA1OUIwMDM3Cis6MDUwMDMwMDAwMDAwMDAwMDAwQ0IKKzowNDAwNDMwMDAyMDEwMDAwQjYKKzoxMDAxMDAwMDAyMDJCQTAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwMkIKKzoxMDAxMTAwMDAyMDAwMDAwMDIwMDAwMDAwMjAwMDAwMDAyMDAwMDAwRDcKKzoxMDAxMjAwMDAyMDAwMDAwMDIwMDAwMDAwMjA0ODUwMDAyMDRCOTAwODEKKzoxMDAyMDAwMDc1ODE1RUU0RjUzMkY1MzNGNTMwRjUzMUY1MzRDMjAwMzEKKzoxMDAyMTAwMEMyMDFBOTAwNzRGRTkwMTAwMEYwQTNEOUZDNzRGRDkwRjcKKzoxMDAyMjAwMDExMDBGMEEzRDlGQzkwN0Y5NDc0QkZGMDkwN0Y5NTc0NzcKKzoxMDAyMzAwMEVGRjA3NDEwOTA3RjlFRjA3NDAwOTA3Rjk4RjA3NDQwRkYKKzoxMDAyNDAwMDkwN0Y5REYwNzQwMDkwN0Y5N0YwNzQ4MjkwN0Y5RUYwNzUKKzoxMDAyNTAwMDkwN0Y5NTc0MDNGMDkwN0ZBRkUwRDJFMEYwNzQwMTkwNEUKKzoxMDAyNjAwMDdGQUJGMDkwN0ZBRUYwOTA3RkFDNzQwNEYwOTA3RkFERTgKKzoxMDAyNzAwMDc0MDRGMDkwN0ZDOUYwNzQwNzkwN0ZBRkYwNzQyMDkwMDEKKzoxMDAyODAwMDdGOUNGMDc0ODA5MDdGOThGMDc0NTNGNTk4NzVDODMwMTcKKzoxMDAyOTAwMDdCMDU5MTQ0RDJDQTc1OTg1MEQyRThEMkFGRDJBQzc0RTMKKzoxMDAyQTAwMDAwRjU4NjkwN0ZENjc0MDJGMDc5MkU3QTAwN0IwMERCMTEKKzoxMDAyQjAwMEZFREFGQUQ5RjY3NDA2RjA4MEZFQzA4NkMwODJDMDgzRUEKKzoxMDAyQzAwMEMwODRDMDg1QzBFMEU1OTFDMkU0RjU5MTkwN0ZBQjc0MzUKKzoxMDAyRDAwMDAxRjA5MDdGRThFMEY5QTNFMEZBQTNFMEZCQTNFMEZDRTMKKzoxMDAyRTAwMEU5NTQ2MEI0MDAwMzAyMDM1REI0NDA2RUJBMDAwQjEyMUYKKzoxMDAyRjAwMDA0NDQ0MDAzMDIwNDI2MDIwNDJFQkEwMTAzMDIwNDJFMjEKKzoxMDAzMDAwMEJBMDIwMzAyMDQyRUJBMDMwMzAyMDQ2OEJBMDQxRUJCMzUKKzoxMDAzMTAwMDAwMEE5MDdGOTVFMDQ0MDJGMDAyMDQyNjkwN0Y5OEUwNjYKKzoxMDAzMjAwMDU0RkRGMDkwN0Y5NUUwNTRGREYwMDIwNDI2QkEwNTAzRDkKKzoxMDAzMzAwMDAyMDQyRUJBMDYxOUJCMDAwOEU1MzNEMzk1MzIwMjA0MzUKKzoxMDAzNDAwMDAyQkIwMTA4RTUzMkMzOTUzMzAyMDQwMjAyMDQyRUJBNEYKKzoxMDAzNTAwMDA3MDU4QjM0MDIwNDI2MDIwNDJFMDIwNDJFQkEwMDIwNjQKKzoxMDAzNjAwMEI5ODAxMDkwN0YwMEU0RjBBM0YwOTA3RkI1NzQwMkYwQTQKKzoxMDAzNzAwMDAyMDQyNkI5ODIwMjgwRUJCOTgxMDI4MEU2MDIwNDJFRDMKKzoxMDAzODAwMEJBMDEwRkJCMDAwMzAyMDQyRUJCMDEwMzAyMDQyNjAyQzQKKzoxMDAzOTAwMDA0MkVCQTAzMEZCQjAwMDMwMjA0MkVCQjAxMDMwMjA0QTgKKzoxMDAzQTAwMDI2MDIwNDJFQkEwNjU2QkMwMTBGOTA3RkQ0NzQwNkYwQzQKKzoxMDAzQjAwMDkwN0ZENTc0NUFGMDAyMDQyNkJDMDIxMkJCMDA2RjkwRTUKKzoxMDAzQzAwMDdGRDQ3NDA2RjA5MDdGRDU3NDZDRjAwMjA0MjZCQzAzRDEKKzoxMDAzRDAwMDI5NzQwNEMzOUI0MDU3NjA1NUVCMkI5MDA2OEMyNTgyRjMKKzoxMDAzRTAwMEY1ODI3NDAwMzU4M0Y1ODNFMEY5QTNFMEZBOTA3RkQ0QjkKKzoxMDAzRjAwMEU5RjA5MDdGRDVFQUYwMDIwNDI2MDIwNDJFQkEwODBGMzUKKzoxMDA0MDAwMDc0MDE5MDdGMDBGMDc0MDE5MDdGQjVGMDAyMDQyNkJBNjkKKzoxMDA0MTAwMDA5MDMwMjA0MjZCQTBBMDU3NDAwMDIwNDAyQkEwQjAzOTcKKzoxMDA0MjAwMDAyMDQyNjAyMDQyRTkwN0ZCNDc0MDJGMDgwMDk5MDdGQUIKKzoxMDA0MzAwMEI0RTA0NDAxRjA4MDAwRDBFMEQwODVEMDg0RDA4M0QwRjcKKzoxMDA0NDAwMDgyRDA4NjMyRUIyMEU3MUVDMzk0MEE1MDE5RUIyMzI0OTYKKzoxMDA0NTAwMDQ2RjU4Mjc0MDYzNDAwRjU4M0UwRjVDQkY1Q0RBM0UwRDQKKzoxMDA0NjAwMEY1Q0FGNUNDQzMyMkQzMjJCOTQxMTFFQjY0RkY1NDgwMDUKKzoxMDA0NzAwMEZCOTA3Rjk4RTA1NDdGNEJGMDAyMDQyNjkwN0Y5QkUwMzYKKzoxMDA0ODAwMDY0RkYwMjA0MDJDMDg2QzA4MkMwODNDMDg0QzA4NUMwRUQKKzoxMDA0OTAwMEUwRTU5MUMyRTRGNTkxOTA3RkE5NzQwNEYwNzQyMDkwOTYKKzoxMDA0QTAwMDdGOUNGMDEyMDVEQzc0MjA5MDdGOUNGMEQwRTBEMDg1MUEKKzoxMDA0QjAwMEQwODREMDgzRDA4MkQwODYzMkMwODZDMDgyQzA4M0MwMzAKKzoxMDA0QzAwMDg0QzA4NUMwRTA3NDEwOTA3RjlDRjBFNTkxQzJFNEY1OTMKKzoxMDA0RDAwMDkxOTA3RkFBNzQwNEYwOTA3RkM5RTBGOUU0RjU4NjkwQ0EKKzoxMDA0RTAwMDdEQzA3NTg1MTA4NTMyODRFMDA1ODYwNTg0RjBFNTg0M0QKKzoxMDA0RjAwMEI1MzMwMjgwMDkwNTMyMDU4NkEzRDlFQzgwMDA5MDdGRDAKKzoxMDA1MDAwMEM5RjBCMTZENzQyMDkwN0Y5Q0YwRDBFMEQwODVEMDg0OEMKKzoxMDA1MTAwMEQwODNEMDgyRDA4NjMyRTRGNTg2OTA3RkJDRTAyMEUxQTMKKzoxMDA1MjAwMDRCOTA3RDAwRTUzMkYwQTNFNTMzRjBBM0U1MzBGMEEzNzYKKzoxMDA1MzAwMEU1MzFGMEEzRTQzMDAwMDEwNEYwQTMwNTg2OTAxMDAwM0IKKzoxMDA1NDAwMDc5MTBFMEEzMDU4NkYwQTMwNTg2RDlGNjA1ODY3NEZDMkMKKzoxMDA1NTAwMEYwQTMwNTg2OTAxMTAwNzkxMEUwQTMwNTg2RjBBMzA1QUQKKzoxMDA1NjAwMDg2RDlGNkU0RjU4NjkwN0ZCRDc0MjZGMDIyMjAwMDEzMkMKKzoxMDA1NzAwMEU1MzJCNTMzMDEyMjA1MzM3NTgzMTA4NTMzODJFMEY1MEEKKzoxMDA1ODAwMDk5RDIwMDc0MDBCNTM0MDEyMkU1MzNEMzk1MzJDMzk1NzYKKzoxMDA1OTAwMDM0NDBGNTc1MzQwMEQyMDEwMjA1RENDMDg2QzA4MkMwNEIKKzoxMDA1QTAwMDgzQzA4NEMwODVDMEUwMzA5OTA3QzI5OUMyMDAxMjA1OUIKKzoxMDA1QjAwMDcwMzA5ODA1MTIwNUM2QzI5OEQwRTBEMDg1RDA4NEQwOUUKKzoxMDA1QzAwMDgzRDA4MkQwODYzMjc1ODMxMTg1MzA4MjA1ODJFNTk5ODkKKzoxMDA1RDAwMEYwRTU4MkI1MzEwMTIyMDUzMEIxREMyMjc0MTA5MDdGNDQKKzoxMDA1RTAwMDlDRjA5MDdGQjhFMDIwRTEzRTIwMDEzQ0U1MzBCNTMxNDEKKzoxMDA1RjAwMDAxMjJFNEY1ODY3NTgzMTEwNTg2OTA3RTAwRjBBMzA1M0YKKzoxMDA2MDAwMDg2NzkwMUU1MzBCNTMxMDI4MDEwMDUzMTg1MzE4MkUwMEYKKzoxMDA2MTAwMDA1ODZGMEEzMDU4NjA5Qjk0MEU5NzQxMDkwN0Y5Q0YwMjcKKzoxMDA2MjAwMDkwN0ZCOUU5NjAwMUYwMjJDMjAxRTRGNTg2OTA3RTAwNzYKKzoxMDA2MzAwMDc0MDFGMEEzNzQwMkYwOTA3RkI5RjAyMkMyOTlGNTk5ODkKKzoxMDA2NDAwMDMwOTlGREMyOTkyMkU1NUVGNjNDRkQ4RkZFQzhGRjY0M0QKKzoxMDA2NTAwMEZGQjJGRkQ5RkZFREZGRjNGRkZBMTIwMTAwMDFGRkZGMjgKKzoxMDA2NjAwMEZGNDBDRDA2MDQwMTg5QUIwMTAyMDMwMTA5MDIyMDAwMEQKKzoxMDA2NzAwMDAxMDEwMDgwMzIwOTA0MDAwMDAyRkZGRkZGMDAwNzA1QUUKKzoxMDA2ODAwMDgyMDM0MDAwMDEwNzA1MDIwMjQwMDAwMDA2OTQwNjk4MUMKKzoxMDA2OTAwMDA2QkEwNkU4MDQwMzAwMDAyMjAzNDEwMDQzMDA0RDAwQUYKKzoxMDA2QTAwMDQ1MDAyMDAwNzUwMDczMDA2MjAwMjAwMDc3MDA2OTAwOUIKKzoxMDA2QjAwMDY0MDA2NzAwNjUwMDc0MDA3MzAwMkUwMzQxMDA0MzAwNkUKKzoxMDA2QzAwMDREMDA0NTAwMjAwMDU1MDA1MzAwNDIwMDIwMDA3MzAwRkIKKzoxMDA2RDAwMDY1MDA3MjAwNjkwMDYxMDA2QzAwMjAwMDc3MDA2OTAwMEQKKzowRTA2RTAwMDY0MDA2NzAwNjUwMDc0MDAwNjAzMzQwMDM3MDBGNAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzLlMgYi9maXJtd2FyZS9rZXlzcGFuX3BkYS94aXJjb21fcGdzLlMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvdXNiL3NlcmlhbC94aXJjb21fcGdzLlMKcmVuYW1lIHRvIGZpcm13YXJlL2tleXNwYW5fcGRhL3hpcmNvbV9wZ3MuUwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUva29yZy9rMTIxMi5kc3AuaWhleCBiL2Zpcm13YXJlL2tvcmcvazEyMTIuZHNwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE1MTk5NwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL2tvcmcvazEyMTIuZHNwLmloZXgKQEAgLTAsMCArMSw5ODcgQEAKKzoxMDAwMDAwMDAxRkYxOEZGRjVGRkNGRkYwMEZGMDBGRkZGRkYwMEZGMUMKKzoxMDAwMTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRUEKKzoxMDAwMjAwMDI2RkYxOEZGRkZGRjBGRkYwMEZGMDBGRkZGRkYwMEZGOEQKKzoxMDAwMzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQ0EKKzoxMDAwNDAwMDAwRkYwQUZGRkZGRjFGRkYwMEZGMDBGRkZGRkYwMEZGOTEKKzoxMDAwNTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQUEKKzoxMDAwNjAwMDAwRkYwQUZGRkZGRjFGRkYwMEZGMDBGRkZGRkYwMEZGNzEKKzoxMDAwNzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOEEKKzoxMDAwODAwMDAwRkYwQUZGRkZGRjFGRkYwMEZGMDBGRkZGRkYwMEZGNTEKKzoxMDAwOTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNkEKKzoxMDAwQTAwMDM4RkYxOEZGRkZGRkRGRkYwMEZGMDBGRkZGRkYwMEZGMkIKKzoxMDAwQjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNEEKKzoxMDAwQzAwMDAwRkYwQUZGRkZGRjFGRkYwMEZGMDBGRkZGRkYwMEZGMTEKKzoxMDAwRDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMkEKKzoxMDAwRTAwMDAzRkYzQ0ZGRkZGRkZDRkY2N0ZGNDBGRkZGRkZDMEZGNzgKKzoxMDAwRjAwMEZGRkY5M0ZGRkZGRkUwRkYwMEZGMENGRkZGRkYwQ0ZGODAKKzoxMDAxMDAwMDBDRkYwQ0ZGRkZGRjAwRkYzMEZGMENGRkZGRkYwMEZGQTUKKzoxMDAxMTAwMDBGRkY0MEZGRkZGRkY0RkY0N0ZGODBGRkZGRkYwQUZGRDUKKzoxMDAxMjAwMDgyRkYyM0ZGRkZGRjBGRkY4REZGOTNGRkZGRkY3QUZGOEIKKzoxMDAxMzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGNzIKKzoxMDAxNDAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGOUIKKzoxMDAxNTAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGM0QKKzoxMDAxNjAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxQ0ZGNTkKKzoxMDAxNzAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxQ0ZGNDkKKzoxMDAxODAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGNTEKKzoxMDAxOTAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGNDEKKzoxMDAxQTAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMzEKKzoxMDAxQjAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMjEKKzoxMDAxQzAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMTEKKzoxMDAxRDAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMDEKKzoxMDAxRTAwMDcyRkYxQ0ZGRkZGRjVGRkYwMkZGNDBGRkZGRkY0MEZGQUEKKzoxMDAxRjAwMDExRkY5MEZGRkZGRjIwRkYwMEZGNDhGRkZGRkYwMEZGMDAKKzoxMDAyMDAwMDhCRkY5M0ZGRkZGRjIwRkYwMEZGNDBGRkZGRkYwMEZGN0EKKzoxMDAyMTAwMDg2RkY5M0ZGRkZGRjcwRkY4QkZGOTNGRkZGRkYzMEZGMTEKKzoxMDAyMjAwMDhERkY5M0ZGRkZGRjQwRkYwMkZGOTFGRkZGRkY4MEZGNjUKKzoxMDAyMzAwMDAyRkY5MUZGRkZGRjkwRkY4REZGOTNGRkZGRkZDMEZGQzUKKzoxMDAyNDAwMDQ2RkY5MEZGRkZGRjIwRkY4REZGOTNGRkZGRkZEMEZGRDIKKzoxMDAyNTAwMDAwRkY0OEZGRkZGRjAwRkY4QkZGOTNGRkZGRkY0MEZGMDIKKzoxMDAyNjAwMEZGRkY0N0ZGRkZGRkYwRkY4REZGOTNGRkZGRkZFMEZGNjIKKzoxMDAyNzAwMDAwRkYzNEZGRkZGRjE3RkYwMEZGMzhGRkZGRkYxN0ZGRUUKKzoxMDAyODAwMDgwRkYzN0ZGRkZGRjAyRkY4NEZGM0JGRkZGRkYwMkZGRkUKKzoxMDAyOTAwMDAyRkYzNEZGRkZGRjRBRkYwMkZGMzhGRkZGRkY0QUZGNjQKKzoxMDAyQTAwMDAxRkYzNEZGRkZGRjJCRkYwMUZGMzhGRkZGRkYyQkZGOTQKKzoxMDAyQjAwMDgwRkY0M0ZGRkZGRjAwRkY4MkZGOTNGRkZGRkY1MEZGMjAKKzoxMDAyQzAwMDgxRkY0M0ZGRkZGRjIwRkY4MkZGOTNGRkZGRkY2MEZGREYKKzoxMDAyRDAwMDg0RkY0M0ZGRkZGRjAwRkY4MkZGOTNGRkZGRkY3MEZGREMKKzoxMDAyRTAwMDg1RkY0M0ZGRkZGRjIwRkY4M0ZGOTNGRkZGRkZDMEZGNUEKKzoxMDAyRjAwMDgyRkYzN0ZGRkZGRjgxRkYwMEZGMzRGRkZGRkY4OUZGMTEKKzoxMDAzMDAwMDg4RkY0M0ZGRkZGRjAwRkYwMEZGNjhGRkZGRkYwN0ZGQkQKKzoxMDAzMTAwMDgyRkY4M0ZGRkZGRjYwRkYwMEZGNjhGRkZGRkYwN0ZGMTMKKzoxMDAzMjAwMDhDRkY0M0ZGRkZGRjAwRkYwMEZGNjhGRkZGRkYwN0ZGOTkKKzoxMDAzMzAwMDgzRkY4M0ZGRkZGRkMwRkYwMEZGNjhGRkZGRkYwN0ZGOTIKKzoxMDAzNDAwMDhBRkY0M0ZGRkZGRjAwRkYwMEZGNjhGRkZGRkYwN0ZGN0IKKzoxMDAzNTAwMDgyRkY4M0ZGRkZGRjUwRkYwMEZGNjhGRkZGRkYwN0ZGRTMKKzoxMDAzNjAwMDhFRkY0M0ZGRkZGRjAwRkYwMEZGNjhGRkZGRkYwN0ZGNTcKKzoxMDAzNzAwMDgyRkY4M0ZGRkZGRjcwRkYwMEZGNjhGRkZGRkYwN0ZGQTMKKzoxMDAzODAwMDgzRkYzN0ZGRkZGRjAxRkYwMEZGMzRGRkZGRkY4OUZGRkYKKzoxMDAzOTAwMDAwRkYzNEZGRkZGRjI2RkYzMEZGMENGRkZGRkYwMEZGRDEKKzoxMDAzQTAwMDAwRkY0MEZGRkZGRjI2RkYyMEZGNDBGRkZGRkYwNEZGOEQKKzoxMDAzQjAwMDgwRkY0MUZGRkZGRjAyRkZFMEZGMjBGRkZGRkYwRkZGNzUKKzoxMDAzQzAwMDAwRkY2OEZGRkZGRkI2RkY2M0ZGMjJGRkZGRkYwRkZGODUKKzoxMDAzRDAwMDYyRkY2QUZGRkZGRkE2RkY2MkZGNkFGRkZGRkZBNkZGNDMKKzoxMDAzRTAwMDAwRkY2OEZGRkZGRkE2RkYwMEZGMDlGRkZGRkYwN0ZGRjkKKzoxMDAzRjAwMDQwRkY0MUZGRkZGRjAyRkZFMEZGMjBGRkZGRkYwRkZGNzUKKzoxMDA0MDAwMDAwRkY2OEZGRkZGRkI2RkY2M0ZGMjJGRkZGRkYwRkZGNDQKKzoxMDA0MTAwMDYyRkY2QUZGRkZGRkE2RkY2MkZGNkFGRkZGRkZBNkZGMDIKKzoxMDA0MjAwMDAwRkY2OEZGRkZGRkE2RkYwNUZGNDFGRkZGRkYwMkZGODAKKzoxMDA0MzAwMEUwRkYyMEZGRkZGRjBGRkY4QkZGOTNGRkZGRkZCQkZGREUKKzoxMDA0NDAwMDAyRkY0MUZGRkZGRjgyRkZFMEZGMjBGRkZGRkYwRkZGRTIKKzoxMDA0NTAwMDhCRkY5M0ZGRkZGRkNCRkYwNUZGNDFGRkZGRkZFMkZGOTUKKzoxMDA0NjAwMEUwRkYyMEZGRkZGRjBGRkY4QkZGOTNGRkZGRkZEQkZGOEUKKzoxMDA0NzAwMDIwRkYwQ0ZGRkZGRjAwRkYzMEZGMENGRkZGRkYwMEZGMUUKKzoxMDA0ODAwMDAwRkY0MEZGRkZGRjI2RkYwMEZGNDFGRkZGRkYwMkZGQ0QKKzoxMDA0OTAwMEUwRkYyMEZGRkZGRjBGRkY4M0ZGOTNGRkZGRkY4MkZGQkYKKzoxMDA0QTAwMDgzRkY5M0ZGRkZGRjlCRkYwM0ZGNDFGRkZGRkYwMkZGNUYKKzoxMDA0QjAwMEUwRkYyMEZGRkZGRjBGRkY4M0ZGOTNGRkZGRkZBMkZGN0YKKzoxMDA0QzAwMDgzRkY5M0ZGRkZGRkJCRkYyMEZGMENGRkZGRkYwMEZGMzkKKzoxMDA0RDAwMDAwRkY0MEZGRkZGRjAwRkY0NEZGOTBGRkZGRkY2MEZGQjIKKzoxMDA0RTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMTYKKzoxMDA0RjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMDYKKzoxMDA1MDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRjUKKzoxMDA1MTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRTUKKzoxMDA1MjAwMDIxRkY0MEZGRkZGRjYwRkY0MEZGOTBGRkZGRkYyMEZGMjQKKzoxMDA1MzAwMDAyRkYzNUZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGNTIKKzoxMDA1NDAwMDAwRkYzQ0ZGRkZGRjg1RkYwQUZGMTRGRkZGRkZBRUZGMjgKKzoxMDA1NTAwMDAwRkZBMEZGRkZGRjAzRkYwMEZGMzVGRkZGRkYwMEZGQ0QKKzoxMDA1NjAwMDAwRkYzNEZGRkZGRjA4RkYwMkZGM0NGRkZGRkYwNUZGMTYKKzoxMDA1NzAwMDBBRkYxNEZGRkZGRkZFRkYwMEZGQTBGRkZGRkYwM0ZGQzYKKzoxMDA1ODAwMDAzRkYzNUZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGMDEKKzoxMDA1OTAwMDAyRkYzQ0ZGRkZGRjA1RkYwQkZGMTRGRkZGRkY0RUZGQjUKKzoxMDA1QTAwMDAwRkZBMEZGRkZGRjAzRkYwMEZGMzVGRkZGRkYwMUZGN0MKKzoxMDA1QjAwMDc4RkYxQ0ZGRkZGRjVGRkYwM0ZGMzVGRkZGRkYwMUZGMTkKKzoxMDA1QzAwMDc4RkYxQ0ZGRkZGRjVGRkY1QkZGNDBGRkZGRkZGMEZGQjcKKzoxMDA1RDAwMEZGRkY5M0ZGRkZGRjMwRkY4MEZGNDJGRkZGRkY3MEZGMzEKKzoxMDA1RTAwMEZGRkY5M0ZGRkZGRjYwRkZERkZGNDBGRkZGRkZGMEZGMTQKKzoxMDA1RjAwMEZFRkY5M0ZGRkZGRkYwRkY4MEZGNDJGRkZGRkY3MEZGNTIKKzoxMDA2MDAwMEZGRkY5M0ZGRkZGRjIwRkZDMUZGNDFGRkZGRkY4MEZGQzAKKzoxMDA2MTAwMEZGRkY5M0ZGRkZGRkYwRkYwM0ZGM0NGRkZGRkZGQ0ZGMjcKKzoxMDA2MjAwMDAwRkYzQ0ZGRkZGRjA0RkYwMkZGM0NGRkZGRkYyM0ZGMzMKKzoxMDA2MzAwMDAwRkY0OEZGRkZGRjAwRkY4QkZGOTNGRkZGRkYyMEZGM0UKKzoxMDA2NDAwMDU5RkYxOEZGRkZGRkRGRkYwMEZGNDhGRkZGRkYwMEZGMUMKKzoxMDA2NTAwMDhCRkY5M0ZGRkZGRjIwRkYxOEZGMjNGRkZGRkYwRkZGMUMKKzoxMDA2NjAwMDBDRkYxNEZGRkZGRkU0RkY4QkZGODNGRkZGRkYyNEZGNUUKKzoxMDA2NzAwMDAwRkYyMkZGRkZGRjBGRkYwREZGMThGRkZGRkYwRkZGMUYKKzoxMDA2ODAwMDhCRkY4M0ZGRkZGRjIwRkYwMEZGNDBGRkZGRkYxNEZGRjIKKzoxMDA2OTAwMEUwRkYyMkZGRkZGRjBGRkYxMEZGMThGRkZGRkZEMEZGNUIKKzoxMDA2QTAwMDhCRkY4M0ZGRkZGRjIwRkYwMEZGNDBGRkZGRkYyNEZGQzIKKzoxMDA2QjAwMEUwRkYyMkZGRkZGRjBGRkYxMEZGMThGRkZGRkYzMEZGREIKKzoxMDA2QzAwMDhCRkY4M0ZGRkZGRjIwRkYwMEZGNDBGRkZGRkY0NEZGODIKKzoxMDA2RDAwMEUwRkYyMkZGRkZGRjBGRkYyMkZGMThGRkZGRkY5MEZGNDkKKzoxMDA2RTAwMDhCRkY4M0ZGRkZGRjIwRkYwMEZGNDBGRkZGRkY4NEZGMjIKKzoxMDA2RjAwMEUwRkYyMkZGRkZGRjBGRkYyMkZGMThGRkZGRkY5MEZGMjkKKzoxMDA3MDAwMDBDRkYxOEZGRkZGRjZGRkYwMEZGNDBGRkZGRkYwMEZGMjAKKzoxMDA3MTAwMDg2RkY5M0ZGRkZGRjcwRkY3NkZGMUNGRkZGRkY5RkZGMjkKKzoxMDA3MjAwMDg2RkY4M0ZGRkZGRjUwRkY4NkZGODNGRkZGRkY2NEZGMEQKKzoxMDA3MzAwMDYwRkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkY4MUZGMjUKKzoxMDA3NDAwMDAwRkYzNUZGRkZGRjAwRkY2MEZGMUNGRkZGRkY3RkZGODMKKzoxMDA3NTAwMDYxRkYxQ0ZGRkZGRkFGRkY3N0ZGMUNGRkZGRkZBRkZGMzUKKzoxMDA3NjAwMDYzRkYxQ0ZGRkZGRjRGRkYwNUZGMzVGRkZGRkYwMEZGOEIKKzoxMDA3NzAwMDkyRkYzQkZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGN0EKKzoxMDA3ODAwMDAwRkYzOEZGRkZGRjA4RkYwMEZGM0NGRkZGRkY2NUZGOTIKKzoxMDA3OTAwMDBGRkYxNEZGRkZGRjZFRkYwMEZGNjBGRkZGRkYwM0ZGNkYKKzoxMDA3QTAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYxM0ZGNTUKKzoxMDA3QjAwMDAwRkY3OEZGRkZGRjAzRkYwNUZGMzVGRkZGRkZFMEZGQUUKKzoxMDA3QzAwMDdGRkYzOEZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGNDAKKzoxMDA3RDAwMDAwRkYzOEZGRkZGRjA4RkYwMEZGM0NGRkZGRkY2NUZGNDIKKzoxMDA3RTAwMDEwRkYxNEZGRkZGRjBFRkYwMEZGNjBGRkZGRkYwM0ZGN0UKKzoxMDA3RjAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNThGRkZGRkYxM0ZGMjUKKzoxMDA4MDAwMDAwRkY1OEZGRkZGRjAzRkY3OUZGMUNGRkZGRkZGRkZGMDMKKzoxMDA4MTAwMDAwRkYwQUZGRkZGRjBGRkYwRUZGMUNGRkZGRkYxRkZGODAKKzoxMDA4MjAwMDhERkY4M0ZGRkZGRkUwRkY3OEZGMjJGRkZGRkYwRkZGMzkKKzoxMDA4MzAwMDE1RkYxQ0ZGRkZGRjg1RkY3NUZGMUNGRkZGRkY4RkZGRUMKKzoxMDA4NDAwMDAwRkY0MEZGRkZGRjQwRkY4QkZGOTNGRkZGRkY4MEZGOTQKKzoxMDA4NTAwMDAyRkY0MEZGRkZGRjYwRkYxMUZGOTBGRkZGRkYyMEZGM0YKKzoxMDA4NjAwMDE2RkYxOEZGRkZGRjFGRkYwRUZGMUNGRkZGRkYxRkZGRkMKKzoxMDA4NzAwMDc1RkYxQ0ZGRkZGRjhGRkY4MEZGMzVGRkZGRkYwMEZGQUQKKzoxMDA4ODAwMDAwRkYzNEZGRkZGRjA4RkYwMEZGNDBGRkZGRkYwMEZGRjYKKzoxMDA4OTAwMDQwRkYzQ0ZGRkZGRjA1RkYxMUZGMTRGRkZGRkY0RUZGNkUKKzoxMDA4QTAwMDAwRkY2OEZGRkZGRjAzRkY4N0ZGODNGRkZGRkZGMEZGRUQKKzoxMDA4QjAwMDg2RkY5M0ZGRkZGRjgwRkY5MEZGMzdGRkZGRkYwMEZGRTIKKzoxMDA4QzAwMDAyRkYzNEZGRkZGRjA4RkYwMEZGNjBGRkZGRkYwM0ZGOTEKKzoxMDA4RDAwMDg5RkY5M0ZGRkZGRjIwRkYwMEZGNjBGRkZGRkYwM0ZGODMKKzoxMDA4RTAwMDg5RkY5M0ZGRkZGRjMwRkYwMEZGNjBGRkZGRkYwM0ZGNjMKKzoxMDA4RjAwMDg5RkY5M0ZGRkZGRjQwRkYwMEZGNjBGRkZGRkYwM0ZGNDMKKzoxMDA5MDAwMDg5RkY5M0ZGRkZGRjUwRkY4NkZGOTdGRkZGRkY5MEZGRDgKKzoxMDA5MTAwMDAzRkYzNUZGRkZGRjAwRkY2MEZGMUNGRkZGRkY3RkZGQUUKKzoxMDA5MjAwMDYzRkYxQ0ZGRkZGRjdGRkYwMEZGNDBGRkZGRkYwMEZGOTMKKzoxMDA5MzAwMDhERkY5M0ZGRkZGRjYwRkY4MkZGOTNGRkZGRkY0MEZGRUMKKzoxMDA5NDAwMDg2RkY5M0ZGRkZGRkEwRkY4M0ZGMzdGRkZGRkY4MEZGQkUKKzoxMDA5NTAwMDc1RkYxQ0ZGRkZGRjFGRkY4M0ZGNDNGRkZGRkYwMEZGMkIKKzoxMDA5NjAwMDg3RkY5M0ZGRkZGRkUwRkY2QUZGMUNGRkZGRkYwRkZGMDIKKzoxMDA5NzAwMDQwRkY0MUZGRkZGRjAwRkY4QkZGOTNGRkZGRkY5MEZGNTIKKzoxMDA5ODAwMDgwRkY0MUZGRkZGRjAwRkY4QkZGOTNGRkZGRkZBMEZGRjIKKzoxMDA5OTAwMDhCRkY4N0ZGRkZGRjkwRkY3RUZGMzhGRkZGRkYwMEZGMDkKKzoxMDA5QTAwMDQwRkYzNEZGRkZGRjA4RkYwMEZGMzhGRkZGRkYwOEZGOTUKKzoxMDA5QjAwMDAwRkYzQ0ZGRkZGRjU1RkYxM0ZGMTRGRkZGRkZCRUZGQ0IKKzoxMDA5QzAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGNUIKKzoxMDA5RDAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGNUIKKzoxMDA5RTAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGM0IKKzoxMDA5RjAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGM0IKKzoxMDBBMDAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGMUEKKzoxMDBBMTAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGMUEKKzoxMDBBMjAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYwM0ZGMEEKKzoxMDBBMzAwMDhCRkY5N0ZGRkZGRjkwRkYwNUZGNDFGRkZGRkYwMEZGQzgKKzoxMDBBNDAwMDkyRkY0M0ZGRkZGRjAxRkY4NkZGOTNGRkZGRkZGMEZGRDEKKzoxMDBBNTAwMDg2RkY5M0ZGRkZGRkUxRkY4REZGODNGRkZGRkZFMEZGQjYKKzoxMDBBNjAwMDc4RkYyMkZGRkZGRjBGRkYxNUZGMUNGRkZGRkY4NUZGMzEKKzoxMDBBNzAwMDc1RkYxQ0ZGRkZGRjhGRkY4REZGODNGRkZGRkY0MEZGMTAKKzoxMDBBODAwMDc4RkYyMkZGRkZGRjBGRkY1M0ZGMThGRkZGRkZCNEZGQTgKKzoxMDBBOTAwMDcyRkYxQ0ZGRkZGRjBGRkYwMEZGNDBGRkZGRkYwMEZGODMKKzoxMDBBQTAwMDhCRkY5M0ZGRkZGRjMwRkYwMkZGNDBGRkZGRkY2MEZGNjAKKzoxMDBBQjAwMDExRkY5MEZGRkZGRjIwRkYxNkZGMThGRkZGRkY0RkZGMDIKKzoxMDBBQzAwMDM4RkY0MkZGRkZGRjUwRkY0OEZGOTBGRkZGRkZBMEZGRUUKKzoxMDBBRDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMjAKKzoxMDBBRTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMTAKKzoxMDBBRjAwMDMwRkY0MEZGRkZGRjAwRkY0N0ZGOTBGRkZGRkY1MEZGNjkKKzoxMDBCMDAwMDAwRkYwQUZGRkZGRjBGRkYxRUZGMUNGRkZGRkYwRkZGOEQKKzoxMDBCMTAwMDIwRkYxQ0ZGRkZGRkNGRkYxNkZGMThGRkZGRkYxRkZGODcKKzoxMDBCMjAwMDAwRkY0MEZGRkZGRjAwRkY0NkZGOTBGRkZGRkY3MEZGNDkKKzoxMDBCMzAwMDE4RkYxQ0ZGRkZGRkVGRkY2QUZGMUNGRkZGRkZCRkZGNTcKKzoxMDBCNDAwMDVDRkYxQ0ZGRkZGRjdGRkYxOEZGMUNGRkZGRkZFRkZGOTUKKzoxMDBCNTAwMDY3RkYxQ0ZGRkZGRjNGRkY1Q0ZGMUNGRkZGRkY3RkZGRTYKKzoxMDBCNjAwMDA4RkY0MEZGRkZGRjAwRkY0NkZGOTBGRkZGRkY3MEZGMDEKKzoxMDBCNzAwMDE4RkYxQ0ZGRkZGRkVGRkY2OUZGMUNGRkZGRkYwRkZGQzgKKzoxMDBCODAwMDVERkYxQ0ZGRkZGRjJGRkYxOEZGMUNGRkZGRkZFRkZGQTQKKzoxMDBCOTAwMDc5RkYxQ0ZGRkZGRjFGRkY1Q0ZGMUNGRkZGRkY3RkZGQjQKKzoxMDBCQTAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGMzUKKzoxMDBCQjAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGMjUKKzoxMDBCQzAwMDE4RkYxQ0ZGRkZGRkVGRkY1REZGMUNGRkZGRkYyRkZGNjQKKzoxMDBCRDAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGMDUKKzoxMDBCRTAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGRjUKKzoxMDBCRjAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGRTUKKzoxMDBDMDAwMDE4RkYxQ0ZGRkZGRkVGRkY1REZGMUNGRkZGRkYyRkZGMjMKKzoxMDBDMTAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGQzQKKzoxMDBDMjAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGQjQKKzoxMDBDMzAwMDE4RkYxQ0ZGRkZGRkVGRkY1Q0ZGMUNGRkZGRkY3RkZGQTQKKzoxMDBDNDAwMDE4RkYxQ0ZGRkZGRkVGRkY1REZGMUNGRkZGRkYyRkZGRTMKKzoxMDBDNTAwMDE4RkYxQ0ZGRkZGRkVGRkY2NkZGMUNGRkZGRkYxRkZGREEKKzoxMDBDNjAwMDVDRkYxQ0ZGRkZGRjdGRkYxNkZGMThGRkZGRkY0RkZGMUEKKzoxMDBDNzAwMDhCRkY4N0ZGRkZGRjYxRkYwMEZGMzRGRkZGRkY4OUZGNEUKKzoxMDBDODAwMDAwRkYzNEZGRkZGRjI2RkYwMEZGNjBGRkZGRkYwNkZGQUUKKzoxMDBDOTAwMDgzRkY5M0ZGRkZGRkQwRkYwMEZGNjBGRkZGRkYwNkZGMTIKKzoxMDBDQTAwMDgzRkY5M0ZGRkZGRkUwRkYzOEZGMjJGRkZGRkYwRkZGRUYKKzoxMDBDQjAwMDE5RkYxNEZGRkZGRjg1RkY4QkZGODNGRkZGRkY1MEZGMkUKKzoxMDBDQzAwMDc4RkYyMkZGRkZGRjBGRkYwMEZGNjBGRkZGRkYwN0ZGMUUKKzoxMDBDRDAwMDA0RkYwREZGRkZGRjMwRkYwMEZGNjBGRkZGRkYwN0ZGNzYKKzoxMDBDRTAwMDgzRkY5M0ZGRkZGRkYwRkYwMEZGNjBGRkZGRkYwN0ZGQTEKKzoxMDBDRjAwMDA4RkYwREZGRkZGRjMwRkYwMEZGNjBGRkZGRkYwN0ZGNTIKKzoxMDBEMDAwMDg2RkY5M0ZGRkZGRjQwRkYwMEZGNDBGRkZGRkYwMUZGNTMKKzoxMDBEMTAwMDhCRkY5M0ZGRkZGRjUxRkYwMEZGMzRGRkZGRkY0NkZGRjQKKzoxMDBEMjAwMDAwRkYwOUZGRkZGRjA2RkY4QkZGOTdGRkZGRkY2MUZGM0IKKzoxMDBEMzAwMDgzRkY4QkZGRkZGRkQwRkY4M0ZGOEJGRkZGRkZFMUZGRjAKKzoxMDBENDAwMDg3RkYzN0ZGRkZGRjAxRkY2RUZGMUNGRkZGRkZCRkZGQTUKKzoxMDBENTAwMDg3RkYzN0ZGRkZGRjAwRkY5MkZGMzdGRkZGRkYwMUZGMTUKKzoxMDBENjAwMDdGRkYzOEZGRkZGRjAwRkY3RUZGMzhGRkZGRkYwMUZGMUYKKzoxMDBENzAwMDIzRkYxQ0ZGRkZGRkZGRkY3RUZGMzhGRkZGRkYwMEZGODkKKzoxMDBEODAwMDgzRkY4N0ZGRkZGRkYxRkY4NkZGOEJGRkZGRkY0MUZGMjAKKzoxMDBEOTAwMDZDRkYxQ0ZGRkZGRjJGRkY4N0ZGMzdGRkZGRkYwMEZGRTgKKzoxMDBEQTAwMDhCRkY4QkZGRkZGRkEwRkYwMEZGMzRGRkZGRkYwOEZGNUIKKzoxMDBEQjAwMDQwRkYzOEZGRkZGRjA4RkYwMEZGM0NGRkZGRkY1NUZGMkMKKzoxMDBEQzAwMDFCRkYxNEZGRkZGRkNFRkYwMEZGNjBGRkZGRkYwM0ZGQ0QKKzoxMDBERDAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYxM0ZGMUYKKzoxMDBERTAwMDAwRkY3OEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYwM0ZGMkYKKzoxMDBERjAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYxM0ZGRkYKKzoxMDBFMDAwMDAwRkY3OEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYwM0ZGMEUKKzoxMDBFMTAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYxM0ZGREUKKzoxMDBFMjAwMDAwRkY3OEZGRkZGRjAzRkY4QkZGODNGRkZGRkZFMUZGNjIKKzoxMDBFMzAwMDhCRkY4M0ZGRkZGRkYwRkYwMEZGNzhGRkZGRkYxM0ZGMzMKKzoxMDBFNDAwMDAwRkY3OEZGRkZGRjAzRkY4QkZGOUJGRkZGRkZBMEZGNkIKKzoxMDBFNTAwMDhCRkY4N0ZGRkZGRjkwRkY3RUZGMzhGRkZGRkYwMEZGNDQKKzoxMDBFNjAwMDQwRkYzNEZGRkZGRjA4RkYwMEZGMzhGRkZGRkYwOEZGRDAKKzoxMDBFNzAwMDAwRkYzQ0ZGRkZGRjU1RkYxREZGMTRGRkZGRkYzRUZGN0MKKzoxMDBFODAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGOTYKKzoxMDBFOTAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGOTYKKzoxMDBFQTAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGNzYKKzoxMDBFQjAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGNzYKKzoxMDBFQzAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGNTYKKzoxMDBFRDAwMDAwRkY1OEZGRkZGRjEzRkYwMEZGNThGRkZGRkYwM0ZGNTYKKzoxMDBFRTAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYwM0ZGNDYKKzoxMDBFRjAwMDhCRkY5N0ZGRkZGRjkwRkYwMEZGMEFGRkZGRkYwRkZGMzEKKzoxMDBGMDAwMDhCRkY4N0ZGRkZGRjYxRkYwMEZGMzRGRkZGRkY4OUZGQkIKKzoxMDBGMTAwMDAwRkYzNEZGRkZGRjI2RkYwMEZGNjBGRkZGRkYwNkZGMUIKKzoxMDBGMjAwMDgzRkY5M0ZGRkZGRkQwRkYwMEZGNjBGRkZGRkYwNkZGN0YKKzoxMDBGMzAwMDgzRkY5M0ZGRkZGRkUwRkY4QkZGODNGRkZGRkY1MUZGNjYKKzoxMDBGNDAwMDc5RkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkZCNEZGQzEKKzoxMDBGNTAwMDM4RkYyMkZGRkZGRjBGRkYxRUZGMTRGRkZGRkZENUZGMkIKKzoxMDBGNjAwMDhCRkY4M0ZGRkZGRjUwRkY3OEZGMjJGRkZGRkYwRkZGODQKKzoxMDBGNzAwMDAwRkY2MEZGRkZGRjA3RkYwNEZGMERGRkZGRkYzMEZGRDMKKzoxMDBGODAwMDAwRkY2MEZGRkZGRjA3RkY4M0ZGOTNGRkZGRkZGMEZGRkUKKzoxMDBGOTAwMDAwRkY2MEZGRkZGRjA3RkYwOEZGMERGRkZGRkYzMEZGQUYKKzoxMDBGQTAwMDAwRkY2MEZGRkZGRjA3RkY4NkZGOTNGRkZGRkY0MEZGOEIKKzoxMDBGQjAwMDAwRkY0MEZGRkZGRjAxRkY4QkZGOTNGRkZGRkY1MUZGOEIKKzoxMDBGQzAwMDAwRkYzNEZGRkZGRjQ2RkYwMEZGMDlGRkZGRkYwNkZGQTIKKzoxMDBGRDAwMDhCRkY5N0ZGRkZGRjYxRkY4M0ZGOEJGRkZGRkZEMEZGQkEKKzoxMDBGRTAwMDgzRkY4QkZGRkZGRkUxRkY4N0ZGMzdGRkZGRkYwMUZGNUQKKzoxMDBGRjAwMDZFRkYxQ0ZGRkZGRkJGRkY4N0ZGMzdGRkZGRkYwMEZGRjQKKzoxMDEwMDAwMDkyRkYzN0ZGRkZGRjAxRkY3RkZGMzhGRkZGRkYwMEZGNjkKKzoxMDEwMTAwMDIzRkYxQ0ZGRkZGRkZGRkY3RUZGMzhGRkZGRkYwMEZGRTYKKzoxMDEwMjAwMDgzRkY4N0ZGRkZGRkYxRkY4NkZGOEJGRkZGRkY0MUZGN0QKKzoxMDEwMzAwMDZDRkYxQ0ZGRkZGRjJGRkYwMEZGMEFGRkZGRkYwRkZGRUEKKzoxMDEwNDAwMDhERkY4RkZGRkZGRkM1RkYyMEZGMTRGRkZGRkZBRUZGRTcKKzoxMDEwNTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGODEKKzoxMDEwNjAwMDhCRkY4M0ZGRkZGRjg0RkYwMEZGMjNGRkZGRkYwRkZGQzYKKzoxMDEwNzAwMDhCRkY5M0ZGRkZGRjhBRkY2NEZGMUNGRkZGRkZFMEZGNzIKKzoxMDEwODAwMDdFRkYzOEZGRkZGRjAwRkYwMEZGMzhGRkZGRkYwOEZGNzQKKzoxMDEwOTAwMDAwRkYzQ0ZGRkZGRkU1RkYyMUZGMTRGRkZGRkY1RUZGQTYKKzoxMDEwQTAwMDAwRkY0MEZGRkZGRjAwRkYwMEZGNThGRkZGRkYwM0ZGQUYKKzoxMDEwQjAwMDAwRkYwQUZGRkZGRjBGRkYwOEZGNDBGRkZGRkYxMEZGQzkKKzoxMDEwQzAwMDQ3RkY5MEZGRkZGRjIwRkYwMEZGMDRGRkZGRkYxQ0ZGMTMKKzoxMDEwRDAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxQ0ZGREEKKzoxMDEwRTAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxMEZGRDYKKzoxMDEwRjAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGRDIKKzoxMDExMDAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGQzEKKzoxMDExMTAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGQjEKKzoxMDExMjAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGQTEKKzoxMDExMzAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGOTEKKzoxMDExNDAwMDAwRkYwNEZGRkZGRjEwRkYwMkZGNDBGRkZGRkY0MEZGMTMKKzoxMDExNTAwMDExRkY5MEZGRkZGRjIwRkY3OEZGNDJGRkZGRkY1MEZGQ0UKKzoxMDExNjAwMDQ4RkY5MEZGRkZGRkEwRkYwMEZGMDBGRkZGRkYwMEZGMTEKKzoxMDExNzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNzkKKzoxMDExODAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNjkKKzoxMDExOTAwMEIwRkY0MEZGRkZGRjAwRkY0N0ZGOTBGRkZGRkY1MEZGNDIKKzoxMDExQTAwMDAwRkY0MEZGRkZGRjAwRkY4REZGOTNGRkZGRkY0MEZGQTkKKzoxMDExQjAwMDhERkY5M0ZGRkZGRjUwRkYwMEZGNDBGRkZGRkYwMUZGODgKKzoxMDExQzAwMDhCRkY5M0ZGRkZGRjUxRkYwMEZGNDBGRkZGRkYwMEZGN0EKKzoxMDExRDAwMDQ2RkY5MEZGRkZGRjcwRkY4REZGODNGRkZGRkZEMEZGRjMKKzoxMDExRTAwMDc4RkYyMkZGRkZGRjBGRkYwQ0ZGMThGRkZGRkY5MEZGQUMKKzoxMDExRjAwMDBDRkYxOEZGRkZGRjZGRkYyMEZGMENGRkZGRkYwMEZGM0EKKzoxMDEyMDAwMDAwRkYzNEZGRkZGRjA5RkYwMEZGMzRGRkZGRkYwOEZGNkYKKzoxMDEyMTAwMDAwRkYzOEZGRkZGRjA4RkYwMEZGMzhGRkZGRkYwOUZGNTcKKzoxMDEyMjAwMDAwRkYzOEZGRkZGRjA2RkYwMEZGMzRGRkZGRkYyNkZGMzAKKzoxMDEyMzAwMDk4RkZDQ0ZGRkZGRjM3RkYwMEZGM0NGRkZGRkZBNUZGM0MKKzoxMDEyNDAwMDI0RkYxNEZGRkZGRkZFRkYwMEZGNjBGRkZGRkY3M0ZGOUYKKzoxMDEyNTAwMDA4RkYwREZGRkZGRjE0RkY5OEZGMjBGRkZGRkYwRkZGQTgKKzoxMDEyNjAwMDAwRkY1MEZGRkZGRkM2RkY2OUZGQ0NGRkZGRkYzN0ZGMDYKKzoxMDEyNzAwMDAwRkYwNUZGRkZGRjAwRkYwMEZGNThGRkZGRkZDNkZGNTUKKzoxMDEyODAwMDk4RkYyMEZGRkZGRjBGRkYwMEZGNjBGRkZGRkY3MkZGQ0YKKzoxMDEyOTAwMDA4RkYwREZGRkZGRjE0RkYwMEZGNTBGRkZGRkZDNkZGMTkKKzoxMDEyQTAwMDY5RkZDQ0ZGRkZGRjM3RkYwMEZGMDVGRkZGRkYwMEZGRDcKKzoxMDEyQjAwMDAwRkY1OEZGRkZGRkM2RkY5OEZGMjBGRkZGRkYwRkZGNTMKKzoxMDEyQzAwMDAwRkY2MEZGRkZGRjczRkYwOEZGMERGRkZGRkYxNEZGMkMKKzoxMDEyRDAwMDAwRkY1MEZGRkZGRkM2RkY2OUZGMjBGRkZGRkYwRkZGNkEKKzoxMDEyRTAwMDAwRkYwNUZGRkZGRjAwRkYwMEZGNThGRkZGRkZDNkZGRTUKKzoxMDEyRjAwMDMwRkYwQ0ZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGQTMKKzoxMDEzMDAwMDAwRkYwQ0ZGRkZGRjMwRkY0N0ZGODBGRkZGRkY1OEZGOEMKKzoxMDEzMTAwMDEwRkYwRkZGRkZGRjAxRkY2NkZGMjNGRkZGRkYwRkZGMUYKKzoxMDEzMjAwMDI2RkYxOEZGRkZGRjk0RkYwMEZGNDhGRkZGRkYwMEZGQUQKKzoxMDEzMzAwMDhCRkY5M0ZGRkZGRjQwRkY4MEZGNDBGRkZGRkYwMEZGOTkKKzoxMDEzNDAwMDQ5RkY5MEZGRkZGRjQwRkYxNkZGMEZGRkZGRkYwMkZGNjcKKzoxMDEzNTAwMDY2RkYyM0ZGRkZGRjBGRkYzOEZGMThGRkZGRkZCNEZGRkIKKzoxMDEzNjAwMDBGRkY0MEZGRkZGRkY0RkY0N0ZGODBGRkZGRkYwQUZGNzMKKzoxMDEzNzAwMDgyRkYyM0ZGRkZGRjBGRkY4REZGOTNGRkZGRkY3QUZGMjkKKzoxMDEzODAwMDdBRkYyNkZGRkZGRjBGRkYxMEZGMjdGRkZGRkYwRkZGNzIKKzoxMDEzOTAwMDM4RkYxOEZGRkZGRkI0RkYyN0ZGMThGRkZGRkZEMkZGNDIKKzoxMDEzQTAwMDAwRkY0OEZGRkZGRjAwRkY4QkZGOTNGRkZGRkYzMEZGQjEKKzoxMDEzQjAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGRTAKKzoxMDEzQzAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGMDkKKzoxMDEzRDAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGQUIKKzoxMDEzRTAwMDAwRkYwQUZGRkZGRjFGRkYxMEZGMjdGRkZGRkYwRkZGOTgKKzoxMDEzRjAwMDI5RkYxOEZGRkZGRjkyRkY0NkZGODBGRkZGRkYwMEZGNUUKKzoxMDE0MDAwMDhCRkY5M0ZGRkZGRjIwRkY4REZGODNGRkZGRkY3MEZGMjgKKzoxMDE0MTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQjMKKzoxMDE0MjAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQjQKKzoxMDE0MzAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMDRGRkZGRkYxQ0ZGNkEKKzoxMDE0NDAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxQ0ZGNjYKKzoxMDE0NTAwMDAwRkYwNEZGRkZGRjFDRkYwMEZGMDRGRkZGRkYxMEZGNjIKKzoxMDE0NjAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGNUUKKzoxMDE0NzAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGNEUKKzoxMDE0ODAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGM0UKKzoxMDE0OTAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMkUKKzoxMDE0QTAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYxMEZGMUUKKzoxMDE0QjAwMDAwRkYwNEZGRkZGRjEwRkYwMEZGMDRGRkZGRkYwM0ZGMUIKKzoxMDE0QzAwMDBERkYxOEZGRkZGRjBGRkYxMEZGMjdGRkZGRkYwRkZGQUMKKzoxMDE0RDAwMDMxRkYxOEZGRkZGRjEyRkYzMEZGMENGRkZGRkYwMEZGN0YKKzoxMDE0RTAwMDA4RkYwQ0ZGRkZGRjAwRkZGRkZGNEZGRkZGRkY4OUZGMUIKKzoxMDE0RjAwMDkwRkYzN0ZGRkZGRjAwRkYwMkZGMzRGRkZGRkYwOEZGRjEKKzoxMDE1MDAwMDAwRkYzNEZGRkZGRjM0RkYwMEZGMzRGRkZGRkY1NUZGRjQKKzoxMDE1MTAwMDQ2RkY4MEZGRkZGRjA4RkYwMEZGMEVGRkZGRkYwRkZGRUEKKzoxMDE1MjAwMDAwRkYwREZGRkZGRjRFRkZBN0ZGMjNGRkZGRkYwRkZGOTEKKzoxMDE1MzAwMDAwRkY2OEZGRkZGRkEzRkYwMEZGMERGRkZGRkY0QUZGNTMKKzoxMDE1NDAwMDQ2RkY4MEZGRkZGRjE4RkYwMEZGMEVGRkZGRkYwRkZGQUEKKzoxMDE1NTAwMDAwRkYwREZGRkZGRjVFRkZBRkZGMjNGRkZGRkYwRkZGNDkKKzoxMDE1NjAwMDAwRkY2OEZGRkZGRkEwRkYwMEZGMERGRkZGRkY1QUZGMTYKKzoxMDE1NzAwMDQ2RkY4MEZGRkZGRjQ4RkYxMEZGMEZGRkZGRkZGRUZGNEEKKzoxMDE1ODAwMDg3RkY5M0ZGRkZGRkZFRkYwMEZGMERGRkZGRkYyRUZGMTIKKzoxMDE1OTAwMDAyRkY0MEZGRkZGRjA2RkZFMEZGMjBGRkZGRkYwRkZGRkUKKzoxMDE1QTAwMDAwRkY0MEZGRkZGRjAxRkY2M0ZGMjJGRkZGRkYwRkZGNzAKKzoxMDE1QjAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGODgKKzoxMDE1QzAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGQjYKKzoxMDE1RDAwMDAwRkYwREZGRkZGRjVBRkY2M0ZGMjJGRkZGRkYwRkZGMUEKKzoxMDE1RTAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGNTgKKzoxMDE1RjAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGODYKKzoxMDE2MDAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGRjkKKzoxMDE2MTAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGMTcKKzoxMDE2MjAwMDAwRkY2OEZGRkZGRkEwRkY2M0ZGMjJGRkZGRkYwRkZGMjgKKzoxMDE2MzAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGMDcKKzoxMDE2NDAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGMzUKKzoxMDE2NTAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGQTkKKzoxMDE2NjAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGQzcKKzoxMDE2NzAwMDAwRkY2OEZGRkZGRkEwRkY2M0ZGMjJGRkZGRkYwRkZGRDgKKzoxMDE2ODAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGQjcKKzoxMDE2OTAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGRTUKKzoxMDE2QTAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGNTkKKzoxMDE2QjAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGNzcKKzoxMDE2QzAwMDAwRkY2OEZGRkZGRkExRkY0NkZGODBGRkZGRkYyOEZGMkQKKzoxMDE2RDAwMDAwRkYwRUZGRkZGRjBGRkYwMEZGMERGRkZGRkY0RUZGOUMKKzoxMDE2RTAwMEE3RkYyM0ZGRkZGRjBGRkYwMEZGNjhGRkZGRkZBM0ZGMjAKKzoxMDE2RjAwMDAwRkYwREZGRkZGRjRBRkY0NkZGODBGRkZGRkYzOEZGOUYKKzoxMDE3MDAwMDAwRkYwRUZGRkZGRjBGRkYwMEZGMERGRkZGRkY1RUZGNUIKKzoxMDE3MTAwMEFGRkYyM0ZGRkZGRjBGRkYwMEZGNjhGRkZGRkZBMEZGRUEKKzoxMDE3MjAwMDAwRkYwREZGRkZGRjVBRkY2M0ZGMjJGRkZGRkYwRkZGQzgKKzoxMDE3MzAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGMDYKKzoxMDE3NDAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGMzQKKzoxMDE3NTAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGQTgKKzoxMDE3NjAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGQzYKKzoxMDE3NzAwMDAwRkY2OEZGRkZGRkEwRkY2M0ZGMjJGRkZGRkYwRkZGRDcKKzoxMDE3ODAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGQjYKKzoxMDE3OTAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGRTQKKzoxMDE3QTAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGNTgKKzoxMDE3QjAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGNzYKKzoxMDE3QzAwMDAwRkY2OEZGRkZGRkEwRkY2M0ZGMjJGRkZGRkYwRkZGODcKKzoxMDE3RDAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGNjYKKzoxMDE3RTAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBMEZGOTQKKzoxMDE3RjAwMDYzRkYyMkZGRkZGRjBGRkYwMEZGMERGRkZGRkY0QUZGMDgKKzoxMDE4MDAwMDQ5RkY2QUZGRkZGRkEzRkYwMEZGMERGRkZGRkY1QUZGMjUKKzoxMDE4MTAwMDAwRkY2OEZGRkZGRkEwRkY2M0ZGMjJGRkZGRkYwRkZGMzYKKzoxMDE4MjAwMDAwRkYwREZGRkZGRjRBRkY0OUZGNkFGRkZGRkZBM0ZGMTUKKzoxMDE4MzAwMDAwRkYwREZGRkZGRjVBRkYwMEZGNjhGRkZGRkZBM0ZGNDAKKzoxMDE4NDAwMEZGRkY0RkZGRkZGRkYwRkY4NkZGOTNGRkZGRkY1MEZGRkIKKzoxMDE4NTAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGM0IKKzoxMDE4NjAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGNjQKKzoxMDE4NzAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGMDYKKzoxMDE4ODAwMDAwRkYwQUZGRkZGRjFGRkYxMEZGMjdGRkZGRkYwRkZGRjMKKzoxMDE4OTAwMDMyRkYxOEZGRkZGRjQyRkY4QkZGODNGRkZGRkZFNEZGRDQKKzoxMDE4QTAwMDhCRkY4M0ZGRkZGRkY1RkY0NkZGOTBGRkZGRkY0NEZGMjUKKzoxMDE4QjAwMDA4RkYyMkZGRkZGRjBGRkZGRkZGNEZGRkZGRkY4OUZGMjIKKzoxMDE4QzAwMDAwRkYwREZGRkZGRjhBRkYwMEZGMEVGRkZGRkYwRkZGNkUKKzoxMDE4RDAwMDAwRkYwREZGRkZGRjRFRkZBN0ZGMjNGRkZGRkYwRkZGREUKKzoxMDE4RTAwMDQ2RkY5MEZGRkZGRjVBRkY4REZGODNGRkZGRkY3MEZGNTIKKzoxMDE4RjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQ0YKKzoxMDE5MDAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQ0YKKzoxMDE5MTAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGN0MKKzoxMDE5MjAwMDEwRkYyN0ZGRkZGRjBGRkYzNUZGMThGRkZGRkZEMkZGNUMKKzoxMDE5MzAwMDAwRkY0Q0ZGRkZGRjAwRkYwMEZGOTNGRkZGRkYwMEZGRDIKKzoxMDE5NDAwMDBCRkY0MEZGRkZGRjgwRkYxMUZGOTBGRkZGRkZGMEZGNDUKKzoxMDE5NTAwMDAwRkY0MEZGRkZGRjEwRkYxMUZGOTBGRkZGRkZFMEZGQzAKKzoxMDE5NjAwMDQ2RkY4MEZGRkZGRjBBRkY3QUZGMjZGRkZGRkYwRkZGMDIKKzoxMDE5NzAwMDM1RkYxQ0ZGRkZGRjI0RkYxMEZGMjdGRkZGRkYwRkZGQjYKKzoxMDE5ODAwMDMzRkYxOEZGRkZGRkM1RkYwMEZGNDBGRkZGRkZDMEZGNTEKKzoxMDE5OTAwMDExRkY5MEZGRkZGRjYwRkY4REZGOTNGRkZGRkZEMEZGNjAKKzoxMDE5QTAwMDAwRkY0OEZGRkZGRjAwRkY4REZGODNGRkZGRkY3MEZGNzkKKzoxMDE5QjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGMEUKKzoxMDE5QzAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGMEYKKzoxMDE5RDAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGQkMKKzoxMDE5RTAwMDEwRkYyN0ZGRkZGRjBGRkYzNEZGMThGRkZGRkY4NUZGRUEKKzoxMDE5RjAwMDAwRkY0MEZGRkZGRjQwRkYxMUZGOTBGRkZGRkY2MEZGNzAKKzoxMDFBMDAwMDhERkY5M0ZGRkZGRkQwRkY4REZGODNGRkZGRkY3MEZGNzAKKzoxMDFBMTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQUQKKzoxMDFBMjAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQUUKKzoxMDFBMzAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGNUIKKzoxMDFBNDAwMDAwRkY0MEZGRkZGRjAwRkYxMUZGOTBGRkZGRkY2MEZGNUYKKzoxMDFBNTAwMDhERkY5M0ZGRkZGRkQwRkY4REZGODNGRkZGRkY3MEZGMjAKKzoxMDFBNjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGNUQKKzoxMDFBNzAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGNUUKKzoxMDFBODAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGMEIKKzoxMDFBOTAwMDAwRkY0OEZGRkZGRjAwRkY4REZGOTNGRkZGRkY4MEZGNjgKKzoxMDFBQTAwMDAwRkY0OEZGRkZGRjAwRkYwMEZGOTNGRkZGRkYwMEZGNjUKKzoxMDFBQjAwMDBERkY0MEZGRkZGRkYwRkYxMUZGOTBGRkZGRkZGMEZGNjIKKzoxMDFBQzAwMDAwRkY0MEZGRkZGRjEwRkYxMUZGOTBGRkZGRkZFMEZGNEYKKzoxMDFBRDAwMEZGRkY0MEZGRkZGRkYwRkY5MEZGMjdGRkZGRkYwRkZGMUIKKzoxMDFBRTAwMDAwRkYwQUZGRkZGRjBGRkYxMEZGMjdGRkZGRkYwRkZGQTEKKzoxMDFBRjAwMDM3RkYxOEZGRkZGRjQyRkY0NkZGODBGRkZGRkYwMEZGOTkKKzoxMDFCMDAwMDg5RkY5M0ZGRkZGRkEwRkY0NkZGODBGRkZGRkYxMEZGNEQKKzoxMDFCMTAwMDg5RkY5M0ZGRkZGRkIwRkY0NkZGODBGRkZGRkYyMEZGMUQKKzoxMDFCMjAwMDg5RkY5M0ZGRkZGRkMwRkY0NkZGODBGRkZGRkYzMEZGRUQKKzoxMDFCMzAwMDg5RkY5M0ZGRkZGRkQwRkY0NkZGODBGRkZGRkY0MEZGQkQKKzoxMDFCNDAwMDg5RkY5M0ZGRkZGRkUwRkY0NkZGODBGRkZGRkY1MEZGOEQKKzoxMDFCNTAwMDg5RkY5M0ZGRkZGRkYwRkYwMEZGNDBGRkZGRkYxMEZGMzMKKzoxMDFCNjAwMDg2RkY5M0ZGRkZGRjYwRkY4REZGODNGRkZGRkY3MEZGODYKKzoxMDFCNzAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGNEMKKzoxMDFCODAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGNEQKKzoxMDFCOTAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGRkEKKzoxMDFCQTAwMDEwRkYyN0ZGRkZGRjBGRkYzOUZGMThGRkZGRkYyMkZGODYKKzoxMDFCQjAwMDQ2RkY4MEZGRkZGRjAwRkY4REZGOTNGRkZGRkYyMEZGMjkKKzoxMDFCQzAwMDQ2RkY4MEZGRkZGRjEwRkY4REZGOTNGRkZGRkYzMEZGRjkKKzoxMDFCRDAwMDQ2RkY4MEZGRkZGRjIwRkY3OEZGMjJGRkZGRkYwRkZGODAKKzoxMDFCRTAwMDM4RkYxQ0ZGRkZGRjg0RkYwMEZGNDBGRkZGRkYwMEZGRTcKKzoxMDFCRjAwMDQ2RkY5MEZGRkZGRjIwRkYwMEZGNDhGRkZGRkYwMEZGQjEKKzoxMDFDMDAwMDhERkY5M0ZGRkZGRjQwRkY4REZGODNGRkZGRkY3MEZGRkUKKzoxMDFDMTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQUIKKzoxMDFDMjAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQUMKKzoxMDFDMzAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGNTkKKzoxMDFDNDAwMDAwRkY0OEZGRkZGRjAwRkY4REZGOTNGRkZGRkY1MEZGRTYKKzoxMDFDNTAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGMENGRkZGRkYyMEZGNDkKKzoxMDFDNjAwMDAwRkYwQUZGRkZGRjFGRkYwMEZGMENGRkZGRkYzMEZGMTkKKzoxMDFDNzAwMDAwRkY0OEZGRkZGRjAwRkY4QkZGOTNGRkZGRkY1MEZGQjgKKzoxMDFDODAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGMDkKKzoxMDFDOTAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZGNEZGOEIKKzoxMDFDQTAwMEUwRkYyMkZGRkZGRjBGRkY0MUZGMThGRkZGRkYzMEZGQTQKKzoxMDFDQjAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZFNEZGN0IKKzoxMDFDQzAwMEUwRkYyMkZGRkZGRjBGRkY0MkZGMThGRkZGRkY0MEZGNzMKKzoxMDFDRDAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZENEZGNkIKKzoxMDFDRTAwMEUwRkYyMkZGRkZGRjBGRkY0N0ZGMThGRkZGRkZBMEZGRUUKKzoxMDFDRjAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZDNEZGNUIKKzoxMDFEMDAwMEUwRkYyMkZGRkZGRjBGRkY0NkZGMThGRkZGRkZEMEZGOUUKKzoxMDFEMTAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZCNEZGNEEKKzoxMDFEMjAwMEUwRkYyMkZGRkZGRjBGRkY0OEZGMThGRkZGRkZFMEZGNkMKKzoxMDFEMzAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkZBNEZGM0EKKzoxMDFENDAwMEUwRkYyMkZGRkZGRjBGRkY0QUZGMThGRkZGRkY2MEZGQ0EKKzoxMDFENTAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkY5NEZGMkEKKzoxMDFENjAwMEUwRkYyMkZGRkZGRjBGRkY0Q0ZGMThGRkZGRkYwMEZGMDgKKzoxMDFENzAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkY4NEZGMUEKKzoxMDFEODAwMEUwRkYyMkZGRkZGRjBGRkY0REZGMThGRkZGRkZFMEZGMDcKKzoxMDFEOTAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkY3NEZGMEEKKzoxMDFEQTAwMEUwRkYyMkZGRkZGRjBGRkY0RkZGMThGRkZGRkYyMEZGQTUKKzoxMDFEQjAwMDhERkY4M0ZGRkZGRjcwRkYwRkZGNDBGRkZGRkY2NEZGRkEKKzoxMDFEQzAwMEUwRkYyMkZGRkZGRjBGRkY0RkZGMThGRkZGRkZGMEZGQjUKKzoxMDFERDAwMDhERkY4M0ZGRkZGRjcwRkYwRUZGNDBGRkZGRkZGNEZGNEIKKzoxMDFERTAwMEUwRkYyMkZGRkZGRjBGRkY0NEZGMThGRkZGRkY0MEZGNTAKKzoxMDFERjAwMDhERkY4M0ZGRkZGRjcwRkYwRUZGNDBGRkZGRkZFNEZGM0IKKzoxMDFFMDAwMEUwRkYyMkZGRkZGRjBGRkY0NUZGMThGRkZGRkY1MEZGMUUKKzoxMDFFMTAwMDhERkY4M0ZGRkZGRjcwRkYwQUZGNDBGRkZGRkYwNEZGRkUKKzoxMDFFMjAwMEUwRkYyMkZGRkZGRjBGRkYzREZGMThGRkZGRkZEMEZGODYKKzoxMDFFMzAwMDhERkY4M0ZGRkZGRjcwRkYwQUZGNDBGRkZGRkYxNEZGQ0UKKzoxMDFFNDAwMEUwRkYyMkZGRkZGRjBGRkYzRkZGMThGRkZGRkYxMEZGMjQKKzoxMDFFNTAwMDhERkY4M0ZGRkZGRjcwRkYwQUZGNDBGRkZGRkYyNEZGOUUKKzoxMDFFNjAwMEUwRkYyMkZGRkZGRjBGRkYzRkZGMThGRkZGRkY4MEZGOTQKKzoxMDFFNzAwMDhERkY4M0ZGRkZGRjcwRkYwQUZGNDBGRkZGRkYzNEZGNkUKKzoxMDFFODAwMEUwRkYyMkZGRkZGRjBGRkYzRkZGMThGRkZGRkZGMEZGMDQKKzoxMDFFOTAwMDhERkY4M0ZGRkZGRjcwRkYwQUZGNDBGRkZGRkY0NEZGM0UKKzoxMDFFQTAwMEUwRkYyMkZGRkZGRjBGRkY0MEZGMThGRkZGRkY2MEZGNzMKKzoxMDFFQjAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGRDUKKzoxMDFFQzAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGRkUKKzoxMDFFRDAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGQTAKKzoxMDFFRTAwMDAwRkYwQUZGRkZGRjFGRkY4REZGODNGRkZGRkY3MEZGNTMKKzoxMDFFRjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQzkKKzoxMDFGMDAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQzkKKzoxMDFGMTAwMDAwRkYwQ0ZGRkZGRjA4RkYwMEZGNDBGRkZGRkYwMEZGNzcKKzoxMDFGMjAwMEZGRkY5M0ZGRkZGRkYwRkYwMEZGNDBGRkZGRkYwMEZGRjkKKzoxMDFGMzAwMDQ0RkY5MEZGRkZGRjYwRkYwMEZGMDBGRkZGRkYwMEZGNzcKKzoxMDFGNDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOUIKKzoxMDFGNTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOEIKKzoxMDFGNjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGN0IKKzoxMDFGNzAwMDAwRkYwMEZGRkZGRjAwRkYyMUZGNDBGRkZGRkY4MEZGOEEKKzoxMDFGODAwMEZGRkY5M0ZGRkZGRkYwRkY4REZGODNGRkZGRkY3MEZGNTkKKzoxMDFGOTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGMjgKKzoxMDFGQTAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGMjkKKzoxMDFGQjAwMDI1RkY0MEZGRkZGRjgwRkZGRkZGOTNGRkZGRkZGMEZGQzQKKzoxMDFGQzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGQzQKKzoxMDFGRDAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGRUQKKzoxMDFGRTAwMDQ2RkY5MEZGRkZGRjZBRkZFOUZGNDFGRkZGRkY4MEZGMTEKKzoxMDFGRjAwMEZGRkY5M0ZGRkZGRkYwRkY4REZGODNGRkZGRkY3MEZGRTkKKzoxMDIwMDAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQjcKKzoxMDIwMTAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQjgKKzoxMDIwMjAwMEVERkY0MUZGRkZGRjgwRkZGRkZGOTNGRkZGRkZGMEZGOEEKKzoxMDIwMzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGNTMKKzoxMDIwNDAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGN0MKKzoxMDIwNTAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGNDBGRkZGRkYwMEZGMEEKKzoxMDIwNjAwMDQ0RkY5MEZGRkZGRjYwRkYwMEZGMDBGRkZGRkYwMEZGNDYKKzoxMDIwNzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNkEKKzoxMDIwODAwMDAwRkYwMEZGRkZGRjAwRkZGMUZGNDFGRkZGRkY4MEZGQTgKKzoxMDIwOTAwMEZGRkY5M0ZGRkZGRkYwRkY0NkZGODRGRkZGRkYwMEZGRkUKKzoxMDIwQTAwMDAwRkYzNEZGRkZGRjA4RkYwMEZGNjBGRkZGRkYwM0ZGOUIKKzoxMDIwQjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMkEKKzoxMDIwQzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMUEKKzoxMDIwRDAwMDQ2RkY5MEZGRkZGRjYwRkZGN0ZGNEZGRkZGRkZGNEZGOUEKKzoxMDIwRTAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGMzAKKzoxMDIwRjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQzcKKzoxMDIxMDAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQzcKKzoxMDIxMTAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGNzQKKzoxMDIxMjAwMDQ2RkY4NEZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGQjMKKzoxMDIxMzAwMDAwRkYzNEZGRkZGRjA2RkYwMEZGMDBGRkZGRkYwMEZGNkYKKzoxMDIxNDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOTkKKzoxMDIxNTAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGODBGRkZGRkYxMEZGQjMKKzoxMDIxNjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNzkKKzoxMDIxNzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNjkKKzoxMDIxODAwMDAwRkY2OEZGRkZGRjAyRkYwMEZGMDBGRkZGRkYwMEZGRUYKKzoxMDIxOTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNDkKKzoxMDIxQTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGNjBGRkZGRkYyMkZGQjcKKzoxMDIxQjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMjkKKzoxMDIxQzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMTkKKzoxMDIxRDAwMDQ2RkY5MEZGRkZGRjYyRkZGN0ZGNEZGRkZGRkZGNEZGOTcKKzoxMDIxRTAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGMkYKKzoxMDIxRjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQzYKKzoxMDIyMDAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQzYKKzoxMDIyMTAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGNzMKKzoxMDIyMjAwMDQ2RkY4OEZGRkZGRjAwRkYwMEZGMzhGRkZGRkYwOEZGQUEKKzoxMDIyMzAwMDAwRkY1MEZGRkZGRjAzRkYwMEZGMDBGRkZGRkYwMEZGNTUKKzoxMDIyNDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOTgKKzoxMDIyNTAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGOTBGRkZGRkY2MEZGNTIKKzoxMDIyNjAwMEY3RkY0RkZGRkZGRkY0RkY0NkZGOTBGRkZGRkY3NEZGRjQKKzoxMDIyNzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGMTEKKzoxMDIyODAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGM0EKKzoxMDIyOTAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGREMKKzoxMDIyQTAwMDAwRkYwQUZGRkZGRjFGRkY0NkZGODhGRkZGRkYwMEZGNDEKKzoxMDIyQjAwMDAwRkYzOEZGRkZGRjA4RkYwMEZGMzhGRkZGRkYwNEZGQUMKKzoxMDIyQzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMTgKKzoxMDIyRDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMDgKKzoxMDIyRTAwMDQ2RkY4MEZGRkZGRjEwRkYwMEZGNThGRkZGRkYwM0ZGQzcKKzoxMDIyRjAwMDAwRkY1MEZGRkZGRjIzRkYwMEZGMDBGRkZGRkYwMEZGNzUKKzoxMDIzMDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRDcKKzoxMDIzMTAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGOTBGRkZGRkY2MkZGOEYKKzoxMDIzMjAwMEY3RkY0RkZGRkZGRkY0RkY0NkZGOTBGRkZGRkY3NEZGMzMKKzoxMDIzMzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGNTAKKzoxMDIzNDAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGNzkKKzoxMDIzNTAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGMUIKKzoxMDIzNjAwMDAwRkYwQUZGRkZGRjFGRkY0NkZGODBGRkZGRkYwMEZGODgKKzoxMDIzNzAwMEZGRkY5M0ZGRkZGRkUwRkZGRkZGODNGRkZGRkZFMkZGOTEKKzoxMDIzODAwMDQ2RkY5MEZGRkZGRjYyRkZGN0ZGNEZGRkZGRkZGNEZGRTUKKzoxMDIzOTAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGN0QKKzoxMDIzQTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGMTQKKzoxMDIzQjAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGMTUKKzoxMDIzQzAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGQzIKKzoxMDIzRDAwMDAzRkYwREZGRkZGRjBGRkYwMEZGMDBGRkZGRkYwMEZGRTgKKzoxMDIzRTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRjcKKzoxMDIzRjAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGOTBGRkZGRkY2MEZGQjEKKzoxMDI0MDAwMDBDRkYwREZGRkZGRkYwRkYwMEZGMDBGRkZGRkYwMEZGQ0QKKzoxMDI0MTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQzYKKzoxMDI0MjAwMDAwRkYwMEZGRkZGRjAwRkZGN0ZGNEZGRkZGRkZGNEZGN0MKKzoxMDI0MzAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGREMKKzoxMDI0NDAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGNzMKKzoxMDI0NTAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGNzQKKzoxMDI0NjAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGMjEKKzoxMDI0NzAwMDQ2RkY4MEZGRkZGRjAyRkYwMEZGMDBGRkZGRkYwMEZGOUUKKzoxMDI0ODAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNTYKKzoxMDI0OTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNDYKKzoxMDI0QTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMzYKKzoxMDI0QjAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGODBGRkZGRkYxM0ZGNEQKKzoxMDI0QzAwMDAwRkY0MEZGRkZGRjAwRkYxMUZGOTBGRkZGRkY2MEZGRDUKKzoxMDI0RDAwMDhERkY5M0ZGRkZGRkQwRkYxMUZGOTBGRkZGRkZGMkZGODMKKzoxMDI0RTAwMDExRkY5MEZGRkZGRkUzRkZGN0ZGNEZGRkZGRkZGNEZGMzgKKzoxMDI0RjAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGMUMKKzoxMDI1MDAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGQjIKKzoxMDI1MTAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGQjMKKzoxMDI1MjAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGNjAKKzoxMDI1MzAwMDQ2RkY4NEZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGOUYKKzoxMDI1NDAwMDAwRkYzNEZGRkZGRjA2RkYwMEZGMDBGRkZGRkYwMEZGNUIKKzoxMDI1NTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGODUKKzoxMDI1NjAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGODBGRkZGRkYxMEZGOUYKKzoxMDI1NzAwMEZGRkY5M0ZGRkZGRkUwRkYwMEZGNjBGRkZGRkYyMkZGNzEKKzoxMDI1ODAwMDY3RkY0MEZGRkZGRjQwRkZGRkZGOTNGRkZGRkZFMEZGRkMKKzoxMDI1OTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNDUKKzoxMDI1QTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGMzUKKzoxMDI1QjAwMDQ2RkY5MEZGRkZGRjYyRkZGN0ZGNEZGRkZGRkZGNEZGQjMKKzoxMDI1QzAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGNEIKKzoxMDI1RDAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGRTIKKzoxMDI1RTAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGRTMKKzoxMDI1RjAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGOTAKKzoxMDI2MDAwMDQ2RkY4NEZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGQ0UKKzoxMDI2MTAwMDAwRkYzNEZGRkZGRjA2RkYwMEZGMDBGRkZGRkYwMEZGOEEKKzoxMDI2MjAwMDAwRkYwMEZGRkZGRjAwRkY0NkZGODBGRkZGRkYxMEZGREUKKzoxMDI2MzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQTQKKzoxMDI2NDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGOTQKKzoxMDI2NTAwMDQ2RkY4MEZGRkZGRjIzRkZGRkZGOTNGRkZGRkZFMEZGMjkKKzoxMDI2NjAwMDAwRkY2OEZGRkZGRjMyRkYwMEZGNjBGRkZGRkY3MkZGMDgKKzoxMDI2NzAwMDY3RkY0MEZGRkZGRjQwRkZGRkZGOTNGRkZGRkZFMEZGMEIKKzoxMDI2ODAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNTQKKzoxMDI2OTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGNDQKKzoxMDI2QTAwMDQ2RkY5MEZGRkZGRjY3RkZGN0ZGNEZGRkZGRkZGNEZGQkQKKzoxMDI2QjAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGNUEKKzoxMDI2QzAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGRjEKKzoxMDI2RDAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGRjIKKzoxMDI2RTAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGOUYKKzoxMDI2RjAwMDQ2RkY4MEZGRkZGRjA1RkYwM0ZGMERGRkZGRkYwRkZGRkEKKzoxMDI3MDAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGRDMKKzoxMDI3MTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQzMKKzoxMDI3MjAwMDBDRkYwREZGRkZGRkY1RkYwMEZGMDBGRkZGRkYwMEZGQTUKKzoxMDI3MzAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQTMKKzoxMDI3NDAwMDAwRkYwMEZGRkZGRjAwRkZGN0ZGNEZGRkZGRkZGNEZGNTkKKzoxMDI3NTAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGQjkKKzoxMDI3NjAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGNTAKKzoxMDI3NzAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGNTEKKzoxMDI3ODAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGRkUKKzoxMDI3OTAwMDQ2RkY4MEZGRkZGRjAwRkY4REZGOTNGRkZGRkZDMEZGOUQKKzoxMDI3QTAwMDhERkY4M0ZGRkZGRkM3RkY0NkZGOTBGRkZGRkY2N0ZGMUYKKzoxMDI3QjAwMEY3RkY0RkZGRkZGRkY0RkY0NkZGOTBGRkZGRkY3NEZGOUYKKzoxMDI3QzAwMDhERkY4M0ZGRkZGRjcwRkY0N0ZGOTBGRkZGRkYwMEZGQkMKKzoxMDI3RDAwMDAwRkY0OEZGRkZGRjA0RkZBMEZGMjNGRkZGRkYwRkZGRTUKKzoxMDI3RTAwMDQ2RkY5MEZGRkZGRjZBRkYwMEZGMENGRkZGRkYyMEZGODcKKzoxMDI3RjAwMDAwRkYwQUZGRkZGRjFGRkY0NkZGODBGRkZGRkYwMEZGRjQKKzoxMDI4MDAwMDhERkY5M0ZGRkZGRkUwRkY4REZGODNGRkZGRkZFN0ZGREIKKzoxMDI4MTAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQzIKKzoxMDI4MjAwMDAwRkYwMEZGRkZGRjAwRkYwMEZGMDBGRkZGRkYwMEZGQjIKKzoxMDI4MzAwMDQ2RkY5MEZGRkZGRjY3RkZGN0ZGNEZGRkZGRkZGNEZGMkIKKzoxMDI4NDAwMDQ2RkY5MEZGRkZGRjc0RkY4REZGODNGRkZGRkY3MEZGQzgKKzoxMDI4NTAwMDQ3RkY5MEZGRkZGRjAwRkYwMEZGNDhGRkZGRkYwNEZGNUYKKzoxMDI4NjAwMEEwRkYyM0ZGRkZGRjBGRkY0NkZGOTBGRkZGRkY2QUZGNjAKKzoxMDI4NzAwMDAwRkYwQ0ZGRkZGRjIwRkYwMEZGMEFGRkZGRkYxRkZGMEQKKzoxMDI4ODAwMDhERkY4M0ZGRkZGRkQwRkYwMEZGNDBGRkZGRkYyNEZGMEUKKzoxMDI4OTAwMEEwRkYyM0ZGRkZGRjBGRkYxMUZGOTBGRkZGRkY2QUZGNjUKKzoxMDI4QTAwMDAwRkY0MEZGRkZGRjE0RkYxOEZGMjNGRkZGRkYwRkZGOTQKKzoxMDI4QjAwMDUxRkYxNEZGRkZGRjgxRkY5MEZGODBGRkZGRkY2MEZGQ0MKKzoxMDI4QzAwMDgwRkYyM0ZGRkZGRjBGRkY4REZGODNGRkZGRkZEMEZGODAKKzoxMDI4RDAwMDAwRkY0MEZGRkZGRjE0RkZBMEZGMjNGRkZGRkYwRkZGREMKKzoxMDI4RTAwMDExRkY5MEZGRkZGRjZBRkYzMEZGMENGRkZGRkYwMEZGQUIKKzoxMDI4RjAwMDAwRkY0MEZGRkZGRjE2RkYxMEZGNDBGRkZGRkYwN0ZGMzUKKzoxMDI5MDAwMDkwRkYzNEZGRkZGRjcxRkYwMEZGMzRGRkZGRkYwOUZGNUYKKzoxMDI5MTAwMDBGRkY0MEZGRkZGRkY1RkYwMEZGNjBGRkZGRkYwN0ZGMTYKKzoxMDI5MjAwMDg4RkY2M0ZGRkZGRjI3RkZFOEZGNjBGRkZGRkYwN0ZGNTAKKzoxMDI5MzAwMDYyRkY2MUZGRkZGRjI3RkY4OEZGMkJGRkZGRkY4QkZGNzkKKzoxMDI5NDAwMEU4RkY2MEZGRkZGRjA3RkY2MkZGNjFGRkZGRkYxN0ZGNjgKKzoxMDI5NTAwMDg4RkYyRkZGRkZGRkZCRkY4OUZGMjNGRkZGRkYwRkZGMTQKKzoxMDI5NjAwMDk4RkYyMEZGRkZGRjBGRkZFQUZGMjBGRkZGRkYwRkZGOTEKKzoxMDI5NzAwMDAwRkYwREZGRkZGRkFCRkYwMEZGMERGRkZGRkZCOEZGRTQKKzoxMDI5ODAwMDAwRkYwREZGRkZGRkNGRkY2MkZGMjFGRkZGRkYwRkZGRTMKKzoxMDI5OTAwMDEwRkYyMkZGRkZGRjBGRkY2MkZGMjFGRkZGRkYwRkZGNkUKKzoxMDI5QTAwMDAwRkY0MEZGRkZGRjI0RkY5MEZGODBGRkZGRkY2MEZGNUQKKzoxMDI5QjAwMDgwRkYyM0ZGRkZGRjBGRkY1MUZGMThGRkZGRkYwMEZGMDYKKzoxMDI5QzAwMDhCRkY5M0ZGRkZGRkVCRkY4QkZGOTNGRkZGRkZGQ0ZGRUUKKzoxMDI5RDAwMDAwRkYwQUZGRkZGRjBGRkY1MUZGMUNGRkZGRkYwRkZGNkMKKzoxMDI5RTAwMDhERkY5M0ZGRkZGRkFDRkY4MkZGM0NGRkZGRkY0NUZGMjIKKzoxMDI5RjAwMDU0RkYxNEZGRkZGRjJFRkZGRkZGM0ZGRkZGRkZGNUZGMTgKKzoxMDJBMDAwMDU0RkYxNEZGRkZGRjFFRkYwMEZGMDBGRkZGRkYwMEZGNEEKKzoxMDJBMTAwMDAwRkYwMEZGRkZGRjAwRkY1MUZGMUNGRkZGRkYwRkZGNDQKKzoxMDJBMjAwMDAwRkYwREZGRkZGRjBDRkY4REZGODNGRkZGRkZBNEZGRTMKKzoxMDJBMzAwMEUwRkYyMkZGRkZGRjBGRkY1M0ZGMThGRkZGRkZCM0ZGNzEKKzoxMDJBNDAwMDhERkY4M0ZGRkZGRkQwRkYwMEZGNDBGRkZGRkYyNEZGNEMKKzoxMDJBNTAwMEEwRkYyM0ZGRkZGRjBGRkYwMEZGMERGRkZGRkZCQUZGRTcKKzoxMDJBNjAwMDhCRkY4M0ZGRkZGRkY1RkYxMUZGOTBGRkZGRkY2QkZGNjEKKzoxMDJBNzAwMDAwRkY0MEZGRkZGRjE0RkYxOEZGMjNGRkZGRkYwRkZGQzIKKzoxMDJBODAwMDU1RkYxNEZGRkZGRjIxRkY5MEZGODBGRkZGRkY2MEZGNTYKKzoxMDJBOTAwMDgwRkYyM0ZGRkZGRjBGRkYwMEZGNDBGRkZGRkYyMEZGMkUKKzoxMDJBQTAwMDAwRkY0MEZGRkZGRjAxRkY4QkZGODNGRkZGRkZFNEZGRkQKKzoxMDJBQjAwMDhCRkY4M0ZGRkZGRkY1RkYwOEZGMENGRkZGRkYwMEZGMDkKKzoxMDJBQzAwMDYwRkYyMkZGRkZGRjBGRkY0OUZGMkFGRkZGRkZFQUZGMjIKKzoxMDJBRDAwMDAwRkYwREZGRkZGRjRFRkY4QkZGOTNGRkZGRkZFRUZGOTkKKzoxMDJBRTAwMDAwRkYwREZGRkZGRjVBRkY4QkZGOTNGRkZGRkZGQUZGNzEKKzoxMDJBRjAwMDhERkY4M0ZGRkZGRjIwRkY4REZGODNGRkZGRkYzMUZGNkYKKzoxMDJCMDAwMEUwRkYyMkZGRkZGRjBGRkZDOUZGMkFGRkZGRkZFQUZGRTEKKzoxMDJCMTAwMDU0RkYxOEZGRkZGRkQ1RkYwMEZGMERGRkZGRkY0RUZGMjMKKzoxMDJCMjAwMDAwRkYwREZGRkZGRjVBRkY4MkZGNEZGRkZGRkZGMEZGODcKKzoxMDJCMzAwMEZGRkY0RkZGRkZGRkYxRkZFMEZGMjJGRkZGRkYwRkZGNEYKKzoxMDJCNDAwMEM5RkYyQUZGRkZGRkVBRkY1NkZGMThGRkZGRkZCNEZGOTAKKzoxMDJCNTAwMDU0RkYxOEZGRkZGRkRGRkYwMEZGNDBGRkZGRkYyMEZGRDQKKzoxMDJCNjAwMDQ3RkY5MEZGRkZGRjIwRkYwQ0ZGMENGRkZGRkYwMEZGNjAKKzoxMDJCNzAwMDAyRkY0MEZGRkZGRjYwRkYxMUZGOTBGRkZGRkYyMEZGRkMKKzoxMDJCODAwMDE2RkYxOEZGRkZGRjRGRkY4REZGODNGRkZGRkZEMEZGRjIKKzoxMDJCOTAwMDAwRkY0MEZGRkZGRjI0RkZBMEZGMjNGRkZGRkYwRkZGMDkKKzoxMDJCQTAwMDExRkY5MEZGRkZGRjZBRkYwMEZGNDBGRkZGRkYxNEZGRDAKKzoxMDJCQjAwMDE4RkYyM0ZGRkZGRjBGRkY1N0ZGMTRGRkZGRkY5MUZGRDkKKzoxMDJCQzAwMDkwRkY4MEZGRkZGRjYwRkY4MEZGMjNGRkZGRkYwRkZGRUQKKzoxMDJCRDAwMDhERkY4M0ZGRkZGRkQwRkYwMEZGNDBGRkZGRkYxNEZGQ0IKKzoxMDJCRTAwMEEwRkYyM0ZGRkZGRjBGRkYxMUZGOTBGRkZGRkY2QUZGMTIKKzoxMDJCRjAwMDMwRkYwQ0ZGRkZGRjAwRkYwMEZGNDBGRkZGRkYxNkZGNEQKKzoxMDJDMDAwMDEwRkY0MEZGRkZGRjA3RkY5MEZGMzRGRkZGRkY3MUZGNDIKKzoxMDJDMTAwMDAwRkYzNEZGRkZGRjA5RkYwRkZGNDBGRkZGRkZGNUZGM0QKKzoxMDJDMjAwMDAwRkY2MEZGRkZGRjA3RkY4OEZGNjNGRkZGRkYyN0ZGMzUKKzoxMDJDMzAwMEU4RkY2MEZGRkZGRjA3RkY2MkZGNjFGRkZGRkYyN0ZGNjUKKzoxMDJDNDAwMDg4RkYyQkZGRkZGRjhCRkZFOEZGNjBGRkZGRkYwN0ZGMDEKKzoxMDJDNTAwMDYyRkY2MUZGRkZGRjE3RkY4OEZGMkZGRkZGRkZGQkZGRjIKKzoxMDJDNjAwMDg5RkYyM0ZGRkZGRjBGRkY5OEZGMjBGRkZGRkYwRkZGRUMKKzoxMDJDNzAwMEVBRkYyMEZGRkZGRjBGRkYwMEZGMERGRkZGRkZBQkZGOEQKKzoxMDJDODAwMDAwRkYwREZGRkZGRkI4RkYwMEZGMERGRkZGRkZDRkZGQUQKKzoxMDJDOTAwMDYyRkYyMUZGRkZGRjBGRkYxMEZGMjJGRkZGRkYwRkZGNkIKKzoxMDJDQTAwMDYyRkYyMUZGRkZGRjBGRkYwMEZGNDBGRkZGRkYyNEZGMzgKKzoxMDJDQjAwMDkwRkY4MEZGRkZGRjYwRkY4MEZGMjNGRkZGRkYwRkZGRkMKKzoxMDJDQzAwMDU3RkYxOEZGRkZGRjEwRkY4QkZGOTNGRkZGRkZFQkZGODYKKzoxMDJDRDAwMDhCRkY5M0ZGRkZGRkZDRkY1Q0ZGMUNGRkZGRkYzRkZGMkQKKzoxMDJDRTAwMDAwRkYwQUZGRkZGRjBGRkY1N0ZGMUNGRkZGRkYxRkZGNDMKKzoxMDJDRjAwMDhERkY5M0ZGRkZGRkFDRkY4MkZGM0NGRkZGRkY0NUZGMEYKKzoxMDJEMDAwMDVBRkYxNEZGRkZGRjRFRkZGRkZGM0ZGRkZGRkZGNUZGREUKKzoxMDJEMTAwMDVBRkYxNEZGRkZGRjNFRkYwMEZGMDBGRkZGRkYwMEZGMTEKKzoxMDJEMjAwMDAwRkYwMEZGRkZGRjAwRkY1N0ZGMUNGRkZGRkYxRkZGMUIKKzoxMDJEMzAwMDAwRkYwREZGRkZGRjBDRkY4REZGODNGRkZGRkZBNEZGRDAKKzoxMDJENDAwMEUwRkYyMkZGRkZGRjBGRkY1OUZGMThGRkZGRkZEM0ZGMzgKKzoxMDJENTAwMDVDRkYxQ0ZGRkZGRjNGRkY4REZGODNGRkZGRkZEMEZGRTYKKzoxMDJENjAwMDAwRkY0MEZGRkZGRjI0RkZBMEZGMjNGRkZGRkYwRkZGMzcKKzoxMDJENzAwMDAwRkYwREZGRkZGRkJBRkY4QkZGODNGRkZGRkZGNUZGOTMKKzoxMDJEODAwMDVDRkYxQ0ZGRkZGRjNGRkYxMUZGOTBGRkZGRkY2QkZGOEEKKzoxMDJEOTAwMDAwRkY0MEZGRkZGRjE0RkYxOEZGMjNGRkZGRkYwRkZGOUYKKzoxMDJEQTAwMDVCRkYxNEZGRkZGRjYxRkY5MEZGODBGRkZGRkY2MEZGRUQKKzoxMDJEQjAwMDgwRkYyM0ZGRkZGRjBGRkYwMEZGNDBGRkZGRkYyMEZGMEIKKzoxMDJEQzAwMDAwRkY0MEZGRkZGRjAxRkY4QkZGODNGRkZGRkZFNEZGREEKKzoxMDJERDAwMDhCRkY4M0ZGRkZGRkY1RkYwOEZGMENGRkZGRkYwMEZGRTYKKzoxMDJERTAwMDYwRkYyMkZGRkZGRjBGRkY0OUZGMkFGRkZGRkZFQUZGRkYKKzoxMDJERjAwMDAwRkYwREZGRkZGRjRFRkY4QkZGOTNGRkZGRkZFRUZGNzYKKzoxMDJFMDAwMDhCRkY5M0ZGRkZGRkZBRkY1RUZGMUNGRkZGRkYwRkZGMkIKKzoxMDJFMTAwMDVCRkYxOEZGRkZGRjBGRkY4QkZGODNGRkZGRkYyMEZGMEMKKzoxMDJFMjAwMDc4RkYyMkZGRkZGRjBGRkYwREZGMThGRkZGRkYwNUZGRDkKKzoxMDJFMzAwMDAwRkYwQUZGRkZGRjBGRkYwOEZGMENGRkZGRkYwMEZGNkYKKzoxMDJFNDAwMDAwRkY0MEZGRkZGRjE0RkYwMEZGNDBGRkZGRkYwNUZGRjMKKzoxMDJFNTAwMDhCRkY4M0ZGRkZGRkUwRkY4QkZGODNGRkZGRkZGMUZGOEYKKzoxMDJFNjAwMDYwRkYyMkZGRkZGRjBGRkY0OUZGMkFGRkZGRkZFQUZGN0UKKzoxMDJFNzAwMDhCRkY5M0ZGRkZGRkZBRkY4QkZGOTNGRkZGRkZFRUZGMzgKKzoxMDJFODAwMDBDRkYwQ0ZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGMUIKKzoxMDJFOTAwMDA4RkYwQ0ZGRkZGRjAwRkYwMEZGNDBGRkZGRkYxNEZGRDQKKzoxMDJFQTAwMDAwRkY0MEZGRkZGRjA1RkY4QkZGODNGRkZGRkZFMEZGRjkKKzoxMDJFQjAwMDhCRkY4M0ZGRkZGRkYxRkY2MEZGMjJGRkZGRkYwRkZGOEMKKzoxMDJFQzAwMDQ5RkYyQUZGRkZGRkVBRkY4QkZGOTNGRkZGRkZGQUZGOTcKKzoxMDJFRDAwMDhCRkY5M0ZGRkZGRkVFRkYwQ0ZGMENGRkZGRkYwMEZGRDgKKzoxMDJFRTAwMDhERkY4M0ZGRkZGRjQwRkY3OEZGMjJGRkZGRkYwRkZGRjMKKzoxMDJFRjAwMDVFRkYxQ0ZGRkZGRjA0RkYwMEZGMEFGRkZGRkYwRkZGNDUKKzoxMDJGMDAwMDA4RkYwQ0ZGRkZGRjAwRkY4REZGODNGRkZGRkY1MEZGNTcKKzoxMDJGMTAwMDc4RkYyMkZGRkZGRjBGRkY1RkZGMUNGRkZGRkY1NEZGNDMKKzoxMDJGMjAwMDBGRkY0MEZGRkZGRkY1RkY5MEZGODBGRkZGRkZBOEZGQUYKKzoxMDJGMzAwMDEwRkYwRkZGRkZGRjA4RkY5MEZGODBGRkZGRkY5MEZGRDQKKzoxMDJGNDAwMDg4RkYyN0ZGRkZGRjBGRkZCNkZGMjdGRkZGRkYwRkZGRTEKKzoxMDJGNTAwMDhCRkY4M0ZGRkZGRkZBRkZGMkZGMjJGRkZGRkYwRkZGNTAKKzoxMDJGNjAwMDAwRkYwREZGRkZGRjBBRkYwMEZGNDBGRkZGRkYxNEZGMDAKKzoxMDJGNzAwMEUyRkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkZFMkZGREEKKzoxMDJGODAwMDM4RkYyM0ZGRkZGRjBGRkYwMEZGNDBGRkZGRkYyNEZGN0QKKzoxMDJGOTAwMEUyRkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkZFMkZGQkEKKzoxMDJGQTAwMDAwRkYwQUZGRkZGRjBGRkYwRkZGNDBGRkZGRkZGNUZGQ0UKKzoxMDJGQjAwMDkwRkY4MEZGRkZGRjgwRkY4QkZGODNGRkZGRkZFMkZGOUIKKzoxMDJGQzAwMDg4RkYyN0ZGRkZGRjBGRkY5OEZGMjBGRkZGRkYwRkZGODYKKzoxMDJGRDAwMDEwRkY0MEZGRkZGRjA3RkZFOEZGMjBGRkZGRkYwRkZGOEQKKzoxMDJGRTAwMDAwRkYwREZGRkZGRkFDRkZGMkZGMjJGRkZGRkYwRkZGMEYKKzoxMDJGRjAwMDAwRkYwREZGRkZGRjBBRkYwMUZGNDBGRkZGRkYwNEZGN0YKKzoxMDMwMDAwMEUyRkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkZFMkZGNDkKKzoxMDMwMTAwMDM4RkYyM0ZGRkZGRjBGRkYwMkZGNDBGRkZGRkYwNEZGMEEKKzoxMDMwMjAwMEUyRkYyMkZGRkZGRjBGRkY3NEZGMThGRkZGRkZFMkZGMjkKKzoxMDMwMzAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGMzRGRkZGRkYwOEZGNDUKKzoxMDMwNDAwMDAwRkYzNEZGRkZGRkQ0RkYwMEZGMzRGRkZGRkY4NUZGQzkKKzoxMDMwNTAwMEZGRkY0RkZGRkZGRjg5RkYwMEZGMDlGRkZGRkYwMUZGOTkKKzoxMDMwNjAwMDg5RkY4M0ZGRkZGRkI4RkYwMEZGMEVGRkZGRkYwRkZGODkKKzoxMDMwNzAwMDAwRkYwREZGRkZGRjRFRkZBN0ZGMjNGRkZGRkYwRkZGMjYKKzoxMDMwODAwMDAwRkY2OEZGRkZGRkEzRkY4OUZGODNGRkZGRkZBOEZGOEIKKzoxMDMwOTAwMDAwRkYwRUZGRkZGRjBGRkYwMEZGMERGRkZGRkY0RUZGQzIKKzoxMDMwQTAwMEE3RkYyM0ZGRkZGRjBGRkYwMEZGNjhGRkZGRkZBM0ZGNDYKKzoxMDMwQjAwMDAwRkYwOUZGRkZGRjAzRkY4QkZGODNGRkZGRkZCMEZGNTAKKzoxMDMwQzAwMDAwRkY2OEZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGODkKKzoxMDMwRDAwMDAyRkYzNUZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGODcKKzoxMDMwRTAwMDAwRkYzNEZGRkZGRjI2RkY4OUZGODNGRkZGRkZEOEZGQUMKKzoxMDMwRjAwMDAwRkYwRUZGRkZGRjBGRkYwMEZGMERGRkZGRkY0RUZGNjIKKzoxMDMxMDAwMEE3RkYyM0ZGRkZGRjBGRkYwMEZGNjhGRkZGRkZBM0ZGRTUKKzoxMDMxMTAwMDg5RkY4M0ZGRkZGRkM4RkYwMEZGMEVGRkZGRkYwRkZGQzgKKzoxMDMxMjAwMDAwRkYwREZGRkZGRjRFRkZBN0ZGMjNGRkZGRkYwRkZGNzUKKzoxMDMxMzAwMDAwRkY2OEZGRkZGRkEzRkYwMEZGMDlGRkZGRkYwM0ZGODIKKzoxMDMxNDAwMDhCRkY4M0ZGRkZGRkQwRkYwMEZGNjhGRkZGRkYwMkZGNDEKKzoxMDMxNTAwMDAxRkY0MEZGRkZGRjgwRkYwMEZGNjhGRkZGRkYwMkZGNEUKKzoxMDMxNjAwMDAwRkY0MEZGRkZGRjIwRkYwMEZGNjhGRkZGRkYwM0ZGOUUKKzoxMDMxNzAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGNDBGRkZGRkYxMEZGRjAKKzoxMDMxODAwMDhCRkY5M0ZGRkZGRjQwRkYzMEZGNDBGRkZGRkYwMEZGN0IKKzoxMDMxOTAwMDQ5RkY5MEZGRkZGRjQwRkYwMEZGMEFGRkZGRkYwRkZGMDcKKzoxMDMxQTAwMDAwRkY0MEZGRkZGRjYwRkYwMEZGOTFGRkZGRkZGMEZGMDgKKzoxMDMxQjAwMDAwRkYwQUZGRkZGRjBGRkYwMUZGNDJGRkZGRkY4MEZGM0QKKzoxMDMxQzAwMDAwRkY5MUZGRkZGRjcwRkYwN0ZGNDJGRkZGRkY4MEZGM0YKKzoxMDMxRDAwMDAzRkY5MUZGRkZGRjcwRkYwMkZGNDJGRkZGRkYwMEZGQjEKKzoxMDMxRTAwMDAwRkY5MUZGRkZGRkYwRkYwOEZGNDJGRkZGRkYwMEZGMUUKKzoxMDMxRjAwMDAzRkY5MUZGRkZGRkYwRkYwMEZGNDBGRkZGRkYyMEZGRjUKKzoxMDMyMDAwMDAxRkY5MUZGRkZGRjcwRkYwMEZGNDBGRkZGRkYyMEZGNjYKKzoxMDMyMTAwMDA0RkY5MUZGRkZGRjcwRkYwMEZGMEFGRkZGRkYwRkZGOUEKKzoxMDMyMjAwMDA0RkY0MkZGRkZGRjAwRkY0OUZGOTBGRkZGRkYyMEZGNjkKKzoxMDMyMzAwMDYyRkYxQ0ZGRkZGRkZGRkYwMEZGMEFGRkZGRkYwRkZGMDIKKzoxMDMyNDAwMDAwRkY0MEZGRkZGRjIwRkYwMEZGOTFGRkZGRkZGMEZGQTcKKzoxMDMyNTAwMDAxRkY0MkZGRkZGRjAwRkY0OUZGOTBGRkZGRkYyMEZGM0MKKzoxMDMyNjAwMDYyRkYxQ0ZGRkZGRkZGRkYwMEZGMEFGRkZGRkYwRkZGRDIKKzoxMDMyNzAwMDAwRkY0MEZGRkZGRjQwRkY4QkZGOTNGRkZGRkY4MEZGM0EKKzoxMDMyODAwMDA1RkYzNUZGRkZGRjAwRkY5MkZGM0JGRkZGRkYwMEZGNDEKKzoxMDMyOTAwMDAwRkYzNEZGRkZGRjA4RkYwMEZGMzhGRkZGRkYwOEZGQkMKKzoxMDMyQTAwMDAwRkYzQ0ZGRkZGRjY1RkY2NUZGMTRGRkZGRkY5RUZGNzAKKzoxMDMyQjAwMDAwRkY2MEZGRkZGRjAzRkYwMEZGNjBGRkZGRkYxM0ZGNDIKKzoxMDMyQzAwMDAwRkY3OEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYwM0ZGMDIKKzoxMDMyRDAwMDAxRkY0MkZGRkZGRjAwRkY0OUZGOTBGRkZGRkYyMEZGQkMKKzoxMDMyRTAwMDYyRkYxQ0ZGRkZGRkZGRkYwNUZGODFGRkZGRkZDMEZGMjUKKzoxMDMyRjAwMDc4RkYyMkZGRkZGRjBGRkYyMUZGMThGRkZGRkY3MUZGODUKKzoxMDMzMDAwMDAwRkYwQUZGRkZGRjBGRkY0OUZGODBGRkZGRkY0OEZGOUQKKzoxMDMzMTAwMDEwRkYwRkZGRkZGRjAzRkY2NkZGMjNGRkZGRkYwRkZGRkQKKzoxMDMzMjAwMDc0RkYxOEZGRkZGRjU0RkY4NkZGODNGRkZGRkZDMEZGRkUKKzoxMDMzMzAwMDQ5RkY5MEZGRkZGRjIwRkY2MkZGMUNGRkZGRkZGRkZGMjEKKzoxMDMzNDAwMDg2RkY4M0ZGRkZGRjgwRkYwMUZGNDBGRkZGRkYwNEZGQjkKKzoxMDMzNTAwMEUwRkYyMkZGRkZGRjBGRkY4NkZGOTNGRkZGRkY4QUZGQzMKKzoxMDMzNjAwMDY3RkYxQ0ZGRkZGRjAwRkY4NkZGODdGRkZGRkZEMEZGMDcKKzoxMDMzNzAwMDc1RkYxQ0ZGRkZGRjFGRkYwMEZGMEFGRkZGRkYwRkZGOEUKKzoxMDMzODAwMDAwRkY0OEZGRkZGRjAwRkY4MkZGOTNGRkZGRkY0MEZGQUEKKzoxMDMzOTAwMDAwRkYwQUZGRkZGRjBGRkYwOEZGMENGRkZGRkYwMEZGMEEKKzoxMDMzQTAwMDg2RkY4QkZGRkZGRkIwRkYwMEZGMzhGRkZGRkYwOEZGMjYKKzoxMDMzQjAwMDAwRkYzOEZGRkZGRkY0RkZGRkZGNEZGRkZGRkY4OUZGMTQKKzoxMDMzQzAwMDhERkY4M0ZGRkZGRjYwRkY4OUZGODNGRkZGRkY0NEZGNDcKKzoxMDMzRDAwMDAwRkY0MEZGRkZGRjAxRkY4OUZGODNGRkZGRkY1NUZGNTUKKzoxMDMzRTAwMDYwRkYyNkZGRkZGRjBGRkY0OUZGMjJGRkZGRkYwRkZGRDgKKzoxMDMzRjAwMDAwRkY3OEZGRkZGRkEzRkYxMEZGMjJGRkZGRkYwRkZGN0IKKzoxMDM0MDAwMDAwRkY3OEZGRkZGRkEwRkY4REZGODNGRkZGRkY2MEZGM0UKKzoxMDM0MTAwMDg5RkY4M0ZGRkZGRjI0RkYwMEZGNDBGRkZGRkYwMUZGNDUKKzoxMDM0MjAwMDg5RkY4M0ZGRkZGRjM1RkY2MEZGMjZGRkZGRkYwRkZGRDAKKzoxMDM0MzAwMDQ5RkYyMkZGRkZGRjBGRkYwMEZGNzhGRkZGRkZBM0ZGMDEKKzoxMDM0NDAwMDEwRkYyMkZGRkZGRjBGRkYwMEZGNzhGRkZGRkZBM0ZGMkEKKzoxMDM0NTAwMDhERkY4M0ZGRkZGRjYwRkYyMEZGNDBGRkZGRkYwNEZGQTIKKzoxMDM0NjAwMDYwRkYyMkZGRkZGRjBGRkY4REZGOTNGRkZGRkY2QUZGNEIKKzoxMDM0NzAwMDBDRkYwQ0ZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGMjUKKzoxMDM0ODAwMDA4RkYwQ0ZGRkZGRjAwRkY4NkZGODdGRkZGRkZCMEZGNzUKKzoxMDM0OTAwMDAwRkYzNEZGRkZGRjA4RkYwMUZGMzRGRkZGRkYwNEZGQzEKKzoxMDM0QTAwMDAwRkYzNEZGRkZGRjM1RkZGRkZGNEZGRkZGRkY4OUZGRTYKKzoxMDM0QjAwMDAwRkYwOUZGRkZGRjAxRkY4N0ZGOEJGRkZGRkZFMEZGMUEKKzoxMDM0QzAwMDAwRkYzOEZGRkZGRjg4RkYwMEZGNzBGRkZGRkYwM0ZGRDMKKzoxMDM0RDAwMDAwRkY2OEZGRkZGRjAwRkYwMEZGNzBGRkZGRkYwM0ZGMUIKKzoxMDM0RTAwMDAwRkY2OEZGRkZGRjAzRkY4N0ZGOUJGRkZGRkZFMEZGNzkKKzoxMDM0RjAwMDBDRkYwQ0ZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGQTUKKzoxMDM1MDAwMDAxRkYzQ0ZGRkZGRjA1RkY2QUZGMTRGRkZGRkY5RUZGNjcKKzoxMDM1MTAwMDY3RkYxQ0ZGRkZGRjNGRkY2OUZGMUNGRkZGRkYwRkZGNUYKKzoxMDM1MjAwMDY2RkYxQ0ZGRkZGRjFGRkYzOEZGMjJGRkZGRkYwRkZGOUIKKzoxMDM1MzAwMDZBRkYxNEZGRkZGRjg1RkY4QkZGODNGRkZGRkY0MEZGNDQKKzoxMDM1NDAwMDc4RkYyMkZGRkZGRjBGRkYwMEZGMDBGRkZGRkYwMEZGREMKKzoxMDM1NTAwMDAwRkYwQUZGRkZGRjBGRkY4MkZGODNGRkZGRkY0MEZGMTcKKzoxMDM1NjAwMDc4RkYyMkZGRkZGRjBGRkY2QUZGMUNGRkZGRkZGNEZGNDIKKzoxMDM1NzAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGNDBGRkZGRkYxMEZGRUMKKzoxMDM1ODAwMDQ3RkY5MEZGRkZGRjIwRkY4N0ZGODNGRkZGRkZGMEZGNTQKKzoxMDM1OTAwMDg2RkY5M0ZGRkZGRjgwRkYwMEZGNDBGRkZGRkYwMEZGNUMKKzoxMDM1QTAwMDhERkY5M0ZGRkZGRjYwRkY4MkZGOTNGRkZGRkY0MEZGNTAKKzoxMDM1QjAwMDg2RkY4N0ZGRkZGRjkwRkYwMkZGMzRGRkZGRkYwOEZGM0EKKzoxMDM1QzAwMDAwRkY2MEZGRkZGRjAzRkY4OUZGOTNGRkZGRkYyMEZGNjYKKzoxMDM1RDAwMDAwRkY2MEZGRkZGRjAzRkY4OUZGOTNGRkZGRkYzMEZGNDYKKzoxMDM1RTAwMDAwRkY2MEZGRkZGRjAzRkY4OUZGOTNGRkZGRkY0MEZGMjYKKzoxMDM1RjAwMDAwRkY2MEZGRkZGRjAzRkY4OUZGOTNGRkZGRkY1MEZGMDYKKzoxMDM2MDAwMDg2RkY5N0ZGRkZGRjkwRkYwMEZGMEFGRkZGRkYwRkZGRkUKKzoxMDM2MTAwMDAwRkYzNEZGRkZGRjY0RkYwMEZGMzRGRkZGRkYzNUZGQjMKKzoxMDM2MjAwMDAxRkYzNEZGRkZGRjk2RkYwMEZGMzhGRkZGRkYzNEZGNkQKKzoxMDM2MzAwMDAwRkYzOEZGRkZGRjY1RkYwMUZGMzhGRkZGRkY5NkZGMjgKKzoxMDM2NDAwMDAwRkYzOEZGRkZGRjA4RkYwMkZGMzRGRkZGRkY0OUZGQzUKKzoxMDM2NTAwMDAyRkYzOEZGRkZGRjQ5RkYxMEZGNDBGRkZGRkYwNkZGOUIKKzoxMDM2NjAwMDEwRkY0MEZGRkZGRjAyRkYzMEZGMENGRkZGRkYwMEZGRDYKKzoxMDM2NzAwMDAwRkYzQ0ZGRkZGRjI1RkY2REZGMTRGRkZGRkZCRUZGQjQKKzoxMDM2ODAwMDk4RkY1MEZGRkZGRjczRkY4OEZGNTBGRkZGRkY3M0ZGOUUKKzoxMDM2OTAwMDgzRkY2OEZGRkZGRkM1RkY4OEZGNjhGRkZGRkZDNEZGRDAKKzoxMDM2QTAwMDgzRkY2OEZGRkZGRkM1RkYwMEZGNjhGRkZGRkZDNkZGNDYKKzoxMDM2QjAwMDk4RkY1MEZGRkZGRjczRkY4OEZGNTBGRkZGRkY3M0ZGNkUKKzoxMDM2QzAwMDgzRkY3OEZGRkZGRkM0RkY4OEZGNzhGRkZGRkZDNUZGODAKKzoxMDM2RDAwMDgzRkY3OEZGRkZGRkM0RkYwMEZGNzhGRkZGRkZDNkZGRjcKKzoxMDM2RTAwMDk4RkY1MEZGRkZGRjczRkY4OEZGNTBGRkZGRkY3M0ZGM0UKKzoxMDM2RjAwMDgzRkY2OEZGRkZGRkM1RkY4OEZGNjhGRkZGRkZDNEZGNzAKKzoxMDM3MDAwMDgzRkY2OEZGRkZGRkM1RkYwMEZGNjhGRkZGRkZDNkZGRTUKKzoxMDM3MTAwMDAwRkYzQ0ZGRkZGRjI1RkY2RUZGMTRGRkZGRkY4RUZGNDIKKzoxMDM3MjAwMDk4RkY1MEZGRkZGRjczRkY4OEZGNTBGRkZGRkY3M0ZGRkQKKzoxMDM3MzAwMDgzRkY3OEZGRkZGRkM0RkY4OEZGNzhGRkZGRkZDNEZGMTAKKzoxMDM3NDAwMDAwRkY3OEZGRkZGRkM0RkYyMEZGMENGRkZGRkYwMEZGMUIKKzoxMDM3NTAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGMzRGRkZGRkZFOUZGM0QKKzoxMDM3NjAwMDAxRkYzOEZGRkZGRjI4RkYwMUZGMzhGRkZGRkYyOUZGQTAKKzoxMDM3NzAwMDAwRkYzOEZGRkZGRjY2RkYwMEZGMzhGRkZGRkYzNEZGNDkKKzoxMDM3ODAwMDAwRkYzOEZGRkZGRjc1RkYxMEZGNDBGRkZGRkYwNkZGNDAKKzoxMDM3OTAwMDAwRkY0MUZGRkZGRjA3RkYzMEZGMENGRkZGRkYwMEZGQUYKKzoxMDM3QTAwMDk4RkY3MEZGRkZGRjIwRkYwMEZGM0NGRkZGRkYyNUZGOUEKKzoxMDM3QjAwMDcwRkYxNEZGRkZGRjJFRkY4MEZGNzBGRkZGRkY0MkZGMkYKKzoxMDM3QzAwMDYzRkY3MkZGRkZGRjIwRkY4MEZGNjhGRkZGRkZBN0ZGN0YKKzoxMDM3RDAwMDAwRkY3MEZGRkZGRjQxRkY2M0ZGNzJGRkZGRkYyNEZGNDkKKzoxMDM3RTAwMDgwRkY2OEZGRkZGRkE3RkYwMEZGNzBGRkZGRkY0NkZGOUUKKzoxMDM3RjAwMDYzRkY3MkZGRkZGRjI0RkY4MEZGNjhGRkZGRkZBN0ZGNEIKKzoxMDM4MDAwMDAwRkY3MEZGRkZGRjQ1RkY2M0ZGNzJGRkZGRkYyMEZGMTgKKzoxMDM4MTAwMDAwRkY2OEZGRkZGRkE3RkY4MEZGNzBGRkZGRkY0MkZGNzEKKzoxMDM4MjAwMDYzRkY3MkZGRkZGRjIwRkY4MEZGNzBGRkZGRkY0MUZGN0MKKzoxMDM4MzAwMDYzRkY2QUZGRkZGRkE3RkYwMEZGNzBGRkZGRkYyNEZGOEEKKzoxMDM4NDAwMDgwRkY2OEZGRkZGRkE3RkYwMEZGNzBGRkZGRkY0NEZGM0YKKzoxMDM4NTAwMDYzRkY3MkZGRkZGRjI0RkY4MEZGNjhGRkZGRkZBN0ZGRUEKKzoxMDM4NjAwMEYwRkY0MEZGRkZGRjA1RkYwMEZGNEZGRkZGRkYwNEZGREEKKzoxMDM4NzAwMDAwRkYwREZGRkZGRjBCRkY4MEZGMjdGRkZGRkYwRkZGODQKKzoxMDM4ODAwMDg4RkYyM0ZGRkZGRjBGRkZFQUZGMjBGRkZGRkYwRkZGNkYKKzoxMDM4OTAwMDc0RkYyMkZGRkZGRjBGRkYwMEZGNjhGRkZGRkZBN0ZGN0UKKzoxMDM4QTAwMDAwRkY3MEZGRkZGRjI0RkY4MEZGNzBGRkZGRkY0NEZGNUEKKzoxMDM4QjAwMDYzRkY3MkZGRkZGRjI0RkY4MEZGNjhGRkZGRkZBN0ZGOEEKKzoxMDM4QzAwMDAwRkY0RkZGRkZGRjA0RkYwMEZGMERGRkZGRkYwQkZGOTcKKzoxMDM4RDAwMDgwRkYyN0ZGRkZGRjBGRkY4OEZGMjNGRkZGRkYwRkZGODIKKzoxMDM4RTAwMEVBRkYyMEZGRkZGRjBGRkY3NEZGMjJGRkZGRkYwRkZGMjQKKzoxMDM4RjAwMDAwRkY2OEZGRkZGRkE3RkYwMEZGMEFGRkZGRkYwRkZGQUEKKzoxMDM5MDAwMDM4RkYyMkZGRkZGRjBGRkY3MkZGMTRGRkZGRkYzNUZGOUQKKzoxMDM5MTAwMDhCRkY4M0ZGRkZGRjMwRkY3OEZGMjJGRkZGRkYwRkZGQ0EKKzoxMDM5MjAwMDAwRkYwQUZGRkZGRjBGRkYwRUZGNDBGRkZGRkYwMEZGM0EKKzoxMDM5MzAwMDEwRkY5MEZGRkZGRjEwRkYwOEZGNDBGRkZGRkYwMEZGOTkKKzoxMDM5NDAwMDEwRkY5MEZGRkZGRjkwRkYwMkZGNDBGRkZGRkY0MEZGQ0YKKzoxMDM5NTAwMDExRkY5MEZGRkZGRjIwRkYwMEZGNDBGRkZGRkYwMEZGNzAKKzoxMDM5NjAwMDEwRkY5MEZGRkZGRkIwRkZCMEZGNDBGRkZGRkYwMEZGMjEKKzoxMDM5NzAwMDQ3RkY5MEZGRkZGRjUwRkYzMEZGNDBGRkZGRkYwMEZGQkEKKzoxMDM5ODAwMDQ3RkY5MEZGRkZGRjQwRkY3OEZGNDJGRkZGRkY1MEZGMjAKKzoxMDM5OTAwMDQ4RkY5MEZGRkZGRkEwRkY0MEZGNDBGRkZGRkYwMEZGMzkKKzoxMDM5QTAwMDQ5RkY5MEZGRkZGRjcwRkYxOEZGNDBGRkZGRkYwMEZGODAKKzoxMDM5QjAwMDQ3RkY5MEZGRkZGRjcwRkYxOEZGNDBGRkZGRkYxMEZGNjIKKzoxMDM5QzAwMDQ3RkY5MEZGRkZGRjcwRkYxOEZGNDBGRkZGRkYwMEZGNjIKKzoxMDM5RDAwMDQ3RkY5MEZGRkZGRjcwRkYwMEZGNDBGRkZGRkYwMEZGNkEKKzoxMDM5RTAwMDExRkY5MEZGRkZGRjYwRkY4REZGOTNGRkZGRkZEMEZGRjAKKzoxMDM5RjAwMDBCRkY0MEZGRkZGRjgwRkYxMUZGOTBGRkZGRkZGMEZGNzUKKzoxMDNBMDAwMDAwRkY0MEZGRkZGRjEwRkYxMUZGOTBGRkZGRkZFMEZGRUYKKzoxMDNBMTAwMDAwRkY0OEZGRkZGRjAwRkYwMEZGOTNGRkZGRkYwMEZGRDUKKzoxMDNBMjAwMDAwRkYwQUZGRkZGRjBGRkYwOEZGNDBGRkZGRkYwMEZGM0YKKzoxMDNBMzAwMDQ3RkY5MEZGRkZGRjIwRkYyMkZGMThGRkZGRkY5RkZGQzAKKzoxMDNBNDAwMDAwRkY0OEZGRkZGRjEwRkY4NkZGOTNGRkZGRkY3MEZGOUYKKzoxMDNBNTAwMDIyRkYxOEZGRkZGRjlGRkYwMEZGNDhGRkZGRkYwMEZGNEYKKzoxMDNBNjAwMDg2RkY5M0ZGRkZGRjcwRkYyMkZGMThGRkZGRkY5RkZGRkUKKzoxMDNBNzAwMDAwRkY0OEZGRkZGRjIwRkY4NkZGOTNGRkZGRkY3MEZGNUYKKzoxMDNBODAwMDIyRkYxOEZGRkZGRjlGRkYwMEZGMzRGRkZGRkY0OEZGRUIKKzoxMDNBOTAwMDAwRkY2MEZGRkZGRjAzRkY4NkZGOTNGRkZGRkZCMEZGMDQKKzoxMDNBQTAwMDAwRkY2MEZGRkZGRjAzRkY4NkZGOTNGRkZGRkZDMEZGRTQKKzoxMDNBQjAwMDg2RkY5N0ZGRkZGRkQwRkYwMEZGMEFGRkZGRkYwRkZGMEEKKzoxMDNBQzAwMDgwRkYzN0ZGRkZGRjAyRkY4NEZGM0JGRkZGRkYwMkZGODYKKzoxMDNBRDAwMDAwRkY2MEZGRkZGRjBCRkYwQ0ZGMERGRkZGRkY5MEZGREMKKzoxMDNBRTAwMDAwRkY3MEZGRkZGRjBCRkYwQ0ZGMERGRkZGRkZCMEZGOUMKKzoxMDNBRjAwMDg4RkYzN0ZGRkZGRjAzRkY4Q0ZGM0JGRkZGRkYwM0ZGNDQKKzoxMDNCMDAwMDAwRkY0MEZGRkZGRjAxRkY4QkZGOTNGRkZGRkY1MUZGMEYKKzoxMDNCMTAwMDgyRkY0M0ZGRkZGRjgwRkY4QkZGOTNGRkZGRkY2MEZGRUMKKzoxMDNCMjAwMDAwRkYzNEZGRkZGRjg5RkYwMEZGNDBGRkZGRkYwMEZGQTIKKzoxMDNCMzAwMDBDRkYwREZGRkZGRjgwRkYwQ0ZGMERGRkZGRkZBMEZGM0QKKzoxMDNCNDAwMDAwRkYwQUZGRkZGRjBGRkY4MEZGMzdGRkZGRkYwMEZGQUYKKzoxMDNCNTAwMDAwRkYzNEZGRkZGRjA4RkYwMkZGM0NGRkZGRkY0NUZGQjAKKzoxMDNCNjAwMDc2RkYxNEZGRkZGRkRFRkYwMEZGQTBGRkZGRkYwM0ZGNTQKKzoxMDNCNzAwMDg0RkYzN0ZGRkZGRjAwRkYwMEZGMzRGRkZGRkYwOEZGNTgKKzoxMDNCODAwMDAyRkYzQ0ZGRkZGRjQ1RkY3N0ZGMTRGRkZGRkYyRUZGMDMKKzoxMDNCOTAwMDAwRkZBMEZGRkZGRjAzRkY3RUZGMzhGRkZGRkYwMEZGRDYKKzoxMDNCQTAwMDAwRkYzOEZGRkZGRjA4RkYwMEZGM0NGRkZGRkZFNUZGQkUKKzoxMDNCQjAwMDc3RkYxNEZGRkZGRjhFRkYwMEZGNDBGRkZGRkYwMEZGQjYKKzoxMDNCQzAwMDAwRkY1OEZGRkZGRjAzRkYwMEZGMEFGRkZGRkYwRkZGOEIKKzoxMDNCRDAwMDY0RkYxQ0ZGRkZGRjRGRkYzOEZGMjJGRkZGRkYwRkZGQjcKKzoxMDNCRTAwMDc3RkYxNEZGRkZGRkU1RkY4QkZGODNGRkZGRkY0MEZGMjEKKzoxMDNCRjAwMDc4RkYyMkZGRkZGRjBGRkY2NEZGMUNGRkZGRkY4RkZGMTcKKzoxMDNDMDAwMDM4RkYyMkZGRkZGRjBGRkY3OEZGMTRGRkZGRkYzNUZGOTQKKzoxMDNDMTAwMDhCRkY4M0ZGRkZGRjQwRkY3OEZGMjJGRkZGRkYwRkZGQjcKKzoxMDNDMjAwMDAwRkYwQUZGRkZGRjBGRkYwMEZGMzRGRkZGRkYwOUZGNDgKKzoxMDNDMzAwMDAwRkYzNEZGRkZGRjg1RkYwMEZGMzRGRkZGRkY1NkZGNEIKKzoxMDNDNDAwMDAwRkYwOUZGRkZGRjA2RkYyMEZGNDBGRkZGRkYwMEZGMEYKKzoxMDNDNTAwMDAxRkY0MEZGRkZGRkMxRkYwMEZGNDBGRkZGRkY0NEZGRTgKKzoxMDNDNjAwMDAwRkY2OEZGRkZGRjA1RkYwMEZGNjhGRkZGRkYxNUZGNzQKKzoxMDNDNzAwMDAwRkY2OEZGRkZGRjA1RkYwMEZGNjhGRkZGRkY0NUZGMzQKKzoxMDNDODAwMDAwRkYwQUZGRkZGRjBGRkY4NkZGODdGRkZGRkZGMEZGMjgKKzoxMDNDOTAwMDg2RkY4QkZGRkZGRkUwRkYwMEZGMzRGRkZGRkZDOEZGNDEKKzoxMDNDQTAwMDAwRkYzOEZGRkZGRkM4RkYwMEZGNjBGRkZGRkYwM0ZGQkIKKzoxMDNDQjAwMDAwRkY2MEZGRkZGRjEzRkYwMEZGNzhGRkZGRkYxM0ZGMTAKKzoxMDNDQzAwMDAwRkY3OEZGRkZGRjAzRkY4NkZGOTdGRkZGRkZGMEZGNzYKKzoxMDNDRDAwMDg2RkY5QkZGRkZGRkUwRkYwNUZGODFGRkZGRkZDMEZGQTcKKzoxMDNDRTAwMDc4RkYyMkZGRkZGRjBGRkYyMUZGMThGRkZGRkY3MUZGOEIKKzoxMDNDRjAwMDAwRkYwQUZGRkZGRjBGRkY3RkZGMzhGRkZGRkYwMUZGRkQKKzoxMDNEMDAwMDAwRkYzOEZGRkZGRjA5RkYwMEZGMzhGRkZGRkYwNkZGM0UKKzoxMDNEMTAwMDdFRkY0MEZGRkZGRjAwRkYwMEZGNDBGRkZGRkZCMUZGRkUKKzoxMDNEMjAwMDA4RkYwQ0ZGRkZGRjAwRkYwMEZGM0NGRkZGRkZDNUZGODgKKzoxMDNEMzAwMDdBRkYxNEZGRkZGRkJFRkYwMEZGNTBGRkZGRkY0NkZGQUIKKzoxMDNENDAwMEUxRkYyMkZGRkZGRjBGRkY3QUZGMUNGRkZGRkZFMEZGRjUKKzoxMDNENTAwMDYwRkYyMkZGRkZGRjBGRkYwMEZGNThGRkZGRkZBN0ZGREQKKzoxMDNENjAwMDBDRkYwQ0ZGRkZGRjAwRkYwMEZGMEFGRkZGRkYwRkZGMkMKKzoxMDNENzAwMDAwRkY0MEZGRkZGRkM0RkYwMEZGMEFGRkZGRkYwRkZGMzAKKzoxMDNEODAwMEZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGNDMKKzowNDNEOTAwMEZGRkZGRkZGMzMKKzowMDAwMDAwMUZGCmRpZmYgLS1naXQgYS9maXJtd2FyZS9zYjE2L2FsYXdfbWFpbi5jc3AuaWhleCBiL2Zpcm13YXJlL3NiMTYvYWxhd19tYWluLmNzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0NTAyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9zYjE2L2FsYXdfbWFpbi5jc3AuaWhleApAQCAtMCwwICsxLDg3IEBACis6MTAwMDAwMDAwMDEwMDA0NDA4MDAwMDQ0MDBCMTAwNDQwMDYxMDA0NEI2Cis6MTAwMDEwMDAwODUwMDA0NDBERjI2MUE4NDQwNDA0MTkwMDAwNDA0NTUyCis6MTAwMDIwMDA0MDQ5MzlBQzU1NTU3MThCNTAwNTYzODAwMDAwMDYzOTQ1Cis6MTAwMDMwMDBGRjJFMjE0OUZGMEZENDQ5MjAwMTA5MEUyMDAwNzE4QkFBCis6MTAwMDQwMDBBODAxQTg4MDg4MDFBODgwQTgwMDAwODBEMjAwNzE4QjM4Cis6MTAwMDUwMDA4ODAwQTg4MEE4MDRCMzgwMjAwN0IzODA4ODAzQjE4MEZCCis6MTAwMDYwMDBDMDAwMDk1Q0MyMDEwMDgyQTEwMDcxOEJDRDAwMDQxOTlGCis6MTAwMDcwMDAyMTIwNzE4QkNGMDAwNDE5MDAwMEIxODBDMjAwMDQxOTQ3Cis6MTAwMDgwMDAwMDQwMDAxNDA4NDAwNDI0MDAwMDM0NDkwQzQwMDA0NDlGCis6MTAwMDkwMDA0NDA0MDQzOTAwMDA0MDQ1MzIwMDA5NUMwMDAwMEMzOTdBCis6MTAwMEEwMDAwMDAwNDA0NTQwNDAwOUVGRkYyMDA5Q0YwMDA0NjNBMTU0Cis6MTAwMEIwMDA1MDAzMzM4MDAwMDRBMzgwMDBGRkMyOEIwMEQwMDQ1NDlGCis6MTAwMEMwMDAwNEUwMDBDNDIwMDM4MEMwMzAwMDAwODgwMDAwN0EwQUU5Cis6MTAwMEQwMDBEMDAxMDA4MjAwNjAwMDQ0QzAwMDAwOTkwMDYwMDA0NDJDCis6MTAwMEUwMDAwMEZGQzI4QjIwMDAwMDgwMDAwRDQyOEIwODMyMDBDNDRDCis6MTAwMEYwMDAwMDBFNDI4QjAwQTIwMEM0MDAxRTQyOEIwQ0IyMDBDNDUyCis6MTAwMTAwMDAwMDhFNDI4QjAwNjIwMEM0MDA5RTQyOEIwODUyMDBDNEU1Cis6MTAwMTEwMDAwMEJFNDI4QjA4NTIwMEM0MDAwNDQyOEIwNDcyMDBDNDJCCis6MTAwMTIwMDAwMDI0NDI4QjAwRDIwMEM0MDA1NTQyOEIwMDYwMDBDNDAyCis6MTAwMTMwMDAwMDAwNDA0NTIwMDE3OTgwMDAzMDQyOEIwODgyMDBDNEQ1Cis6MTAwMTQwMDAwMDAwNDA0NTAwMDA3MThCNDAwMTAwODAwMDYwMDA0NEM5Cis6MTAwMTUwMDBGRjAwRTJBQjAwQjIwMEM0MEZGMkE4QTgyMDAwQjE4OEYzCis6MTAwMTYwMDAwMDAwNDEwMjRERjIwMDM5QzAwMTAwODIwMDYwMDA0NEVECis6MTAwMTcwMDAwREYyQTNBODRERjIwMDM5MDA2MDAwNDRGRjAwRTJBQjhECis6MTAwMTgwMDAyMDAwMDA4ODAwMDA2MTAyNERGMjA0MTkwMDYwMDA0NDY0Cis6MTAwMTkwMDBGRjAwRTJBQkEwMDAwMDg4MDAwMDYxMTA0REYyMDQxOURFCis6MTAwMUEwMDAwMDYwMDA0NEZGMjBFMkFCNjAwMDAwODgwMDAwNzFDMEU2Cis6MTAwMUIwMDA0REYyMDQxOTAwNjAwMDQ0MDAwMDc5ODAwMEUyMDA4NEUwCis6MTAwMUMwMDAwMzAzMDQ0OTA0QzIwMDU0MDA2MDA0NjQwMDYwMDA0NDU2Cis6MTAwMUQwMDAwMDAwNjM4MDAwMDAwNjE5MDMwMDA0NDkwMDYwMDA0NDI5Cis6MTAwMUUwMDAyMDAxNjM4MDAwMDAwNjE5MDAyMEUyOEIwQ0YyMDA4NERECis6MTAwMUYwMDBCRTAwNTE4QkMwMjAwMDM5MDgwMTAwNDRFQzAwNTE4QjM3Cis6MTAwMjAwMDBDMDIwMDAzOTAwMDJFMjhCMDQyMTAwODQzRjAwNTE4QkEyCis6MTAwMjEwMDBDMjIwMDAzOTAwMTEwMDQ0M0QwMDUxOEJDMjIwMDAzOTNBCis6MTAwMjIwMDBFNTAwNzE4QkNEMDAwMDM5MDAwMEIxODBDOTIwMDQxOUIwCis6MTAwMjMwMDBDQjIwMDQxOUMxMjAwNDE5QzMyMDA0MTkxMDAwNzE4QkFDCis6MTAwMjQwMDBDNzIwMDQxOURFMDA1MThCQ0YwMDAwMzkwMDAxQjE4MEI2Cis6MTAwMjUwMDBDNDIwMDQxOUM2MjAwNDE5QzgyMDA0MTlDQTIwMDQxOThFCis6MTAwMjYwMDAyMDAwNzE4QkNDMjAwNDE5MDMwMDA0NDkwMDYwMDA0NDc1Cis6MTAwMjcwMDAwOTA0NjFBOEMxMDAwNDE5MEIwNDYxQThDQTAwMDQxOThCCis6MTAwMjgwMDAwNDYwMDBENDBEMDA2MTBBOTA0MDA5OEYwMDAxMDA0NTEwCis6MTAwMjkwMDAwRjAwNjEwQTAwNDAwOThGMDAwMTAwNDU4MjAwMDkyRTBECis6MTAwMkEwMDA4MDQwMDlDRjAyMDA2MTIyNDMyNTYxMjI0MDMzMDA4MDUzCis6MTAwMkIwMDAwODQ4MDA0NDIwQjE0OTVDOTIwMDA5NEUwMjAzMDkyRTBGCis6MTAwMkMwMDAwMDAwQTMwMkMwMDA3MUMwMjAwMEVCODAwMDA0QzI4QkJDCis6MTAwMkQwMDAyMDA0NjE4MDAwMDQ3QTAyQzAwMDAwODIwQ0MzMDg0OTM3Cis6MTAwMkUwMDBCMDAxRjM4MDAwMDAxMDM5MjAwMDBDODkwQzg4MDg0OTA3Cis6MTAwMkYwMDAwMzAwQTgxODAwMDAxMDM5QkRGRjYyOEIyMDAxMDA4MEE4Cis6MTAwMzAwMDAwMDAwNjNDQjAwMDA3QTAyNDAwMDAxNUIyMDAwMDA4MDA3Cis6MTAwMzEwMDAwMDAwNEFDQjIwMDAxMzgwMjAwMDdBODBFMDIxMDBDMDNBCis6MTAwMzIwMDAwODAwMDg0OTEwNDEwOThFQUVBRTYyOEIwMDA0NjEyMkJDCis6MTAwMzMwMDAwMDAzMDA0NTIyMDEzMzgwMjAwMUEzMDIwMDAwN0E4MERGCis6MTAwMzQwMDBDMDAwMDA4MjA3MjA0MDBBMDhBMzAwODQ0MDIxMDA4MEVBCis6MTAwMzUwMDA0MDA1OTMxMEM3MjAwMDM5MDAwMDQwNDUwNzIwNDAwQTlGCis6MTAwMzYwMDAwQzkzMDA4NDA4MDAwMDgyMEMyNDYxNTA0MDAxMDA4MDNFCis6MTAwMzcwMDBDNzIwMDAzOTAwMDA0MDQ1MDAwNDYzODAwMDAwMDYzOUIyCis6MTAwMzgwMDA0MjAxMDkwRTAyMjA2MTBBMDAwMTAwNDUwQzIwNjAwQUFBCis6MTAwMzkwMDAwMEMzMDA4NDAwMDRCMTgwMDAwMDA2MzkwQzYxMDRENDVECis6MTAwM0EwMDAwMDI0NzFDMDIwMzMzM0MwRTAwMUEzODIyMjAzN0EwMjBCCis6MTAwM0IwMDBDMzAxQTM4MjIwMDEzMzgwMDAwMDdBODBDMjAxQjM1MEMwCis6MTAwM0MwMDBDQzIwMDAzOTAwMDA3MTgwMDAwODAwNDQwQzIwNjAwQTM1Cis6MTAwM0QwMDAwMEYzMDA4NDAwMDRCMTgwMDAwMDA2MzkwQzYxMDRENEVECis6MTAwM0UwMDAwMDAwNzFDMDAwMDA5MzEwQ0MyMDAwMzkwMDA4MDA0NEM4Cis6MTAwM0YwMDBDQzIwMDAzOTAwMjAwMEMwMDAzMDcxQzAwMDA4MDA0NDRCCis6MTAwNDAwMDAyMDAxMDA4MEFFQUU2MjhCMjAwMTMzODAwMDAwODM4MDJCCis6MTAwNDEwMDAyMDAwN0E4MDIwQTE0OTVDODIwMDA5NkU4MDRBMDk4RTAyCis6MTAwNDIwMDBFMDAxQjM4MjIwMDRBMzgwMDAwMDdBQ0IyODA0RUExMDA0Cis6MTAwNDMwMDAwQzA0N0ExMDcwMDBDMDhCMDAwMDEwMzk5MDAzMDA4MDBCCis6MTAwNDQwMDA0MDAwMjE1QjkwMDA2MTgwMEM4QTA4NDkwMDAwMUMxOTYzCis6MTAwNDUwMDA0MDAwMDg1QjA4MDAwODQ5MjAwMjAwODAwMzAwQTgxODNCCis6MTAwNDYwMDAwMDAwMTQxOTQwMDAyMUNCMDAwMDQxMDIwMDAwRUI4MDg1Cis6MTAwNDcwMDBGMjAxMDA4MjQwMjEzMzAyMDgyMDYxMEFDNDAwMDQxOUZECis6MTAwNDgwMDBDNzAwMDA5OTAyMDA2MTBBMEMwQTA0MTQwMTAwNjEwQTA1Cis6MTAwNDkwMDAwMzAwNDgwQTAwNTgwNDU0QzMwMDA0MTkwQzU4MDA0NENGCis6MTAwNEEwMDAwODAwQzgwQTBDNTgwNDU0QzgwMDA0MTkwQTAwNjEwQTVDCis6MTAwNEIwMDAwOTAwNDgwQTAwQzgwNDU0QzkwMDA0MTkwQ0M4MDA0NEMzCis6MTAwNEMwMDAwQjAwQzgwQTBDQzgwNDU0Q0IwMDA0MTkwNDAwNjEwQUNDCis6MTAwNEQwMDAwNjAwNDgwQTAwRDgwNDU0QzYwMDA0MTkwQ0Q4MDA0NDg5Cis6MTAwNEUwMDAwNTAwQzgwQTBDRDgwNDU0QzUwMDA0MTkwNzAwNjEwQUE1Cis6MTAwNEYwMDAwQzAwNDgwQTAwMEEwNDU0Q0MwMDA0MTkwQzBBMDA0NEY5Cis6MTAwNTAwMDAwRTAwQzgwQTBDMEEwNDU0Q0UwMDA0MTkwMDAwNDA0NTJECis6MDgwNTEwMDAyMDEwNzE4QjA4NDIwNjAwNjcKKzowMDAwMDAwMUZGCisvKgorICogIENvcHlyaWdodCAoYykgMTk5NCBDcmVhdGl2ZSBUZWNobm9sb2d5IEx0ZC4KKyAqICBNaWNyb2NvZGUgZmlsZXMgZm9yIFNCMTYgQWR2YW5jZWQgU2lnbmFsIFByb2Nlc3NvcgorICovCmRpZmYgLS1naXQgYS9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcC5paGV4IGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fY2FwdHVyZS5jc3AuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTUwYTU4Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fY2FwdHVyZS5jc3AuaWhleApAQCAtMCwwICsxLDEyMSBAQAorOjEwMDAwMDAwMDAxMDAwNDQwODAwMDA0NDAwNzAwMDQ0MDhEMDAwNDQ4MAorOjEwMDAxMDAwMDBGMDAwNDQwREYyNjFBODQ0MDQwNDE5MDAwMDQwNDVCQQorOjEwMDAyMDAwMDAwNDYzODAwMDAwMDYzOUZGMkUyMTQ5RkYwQ0Q0NDlFQgorOjEwMDAzMDAwNDA0OTM5QUM1NTU1NzE4QjUwMDFCMTgwMDAwMDcxOEIyRQorOjEwMDA0MDAwQzIzMDA0MTlDMEEwMDQxOUMyQTAwNDE5ODkwMDcxOEIyMAorOjEwMDA1MDAwQzgzMDA0MTk3MTAwNzE4QkNEMDAwNDE5Q0YwMDA0MTk0OAorOjEwMDA2MDAwODAwMDcxOEJDQjIwMDQxOTIwMDA3MThCQzQyMDA0MTlFRgorOjEwMDA3MDAwNDcwMDUxOEJDMDIwMDAzOTAwMDA2MzgwQzFBMDA0MTlFMworOjEwMDA4MDAwOTMwMDAxNEZDRDMwMDAwOUNGMzAwMDA5MEM0MDAwMTQxRgorOjEwMDA5MDAwMDA2MDAwMTQwMDA0NjFBODAyMDQ2MUE4MEM2MDA0MjQzQworOjEwMDBBMDAwMDAwMDM0NDkwODUwMDA0NDQ0MDQwNDM5MDAwMDQwNDUyRAorOjEwMDBCMDAwMDgzMDYxMEEwNUIwRTgxODBDQzAwNDU0QzgzMDA0MTlBRgorOjEwMDBDMDAwMDkwNDAwQTgwQjA0MDBBODAwMDA0MDQ1MDkwNDYxQTgyOQorOjEwMDBEMDAwQzEwMDA0MTkwQjA0NjFBOENBMDAwNDE5MEQwMDYxMEFDQgorOjEwMDBFMDAwMDAwMTAwNDUwRjAwNjEwQTAwNDAwOThGMDAwMTAwNDUzMgorOjEwMDBGMDAwNDA0MDA5RUZGRjIwMDlDRjAwMDQ2M0ExNTAwMzMzODA4MworOjEwMDEwMDAwMDAwNEEzODAwMEZGQzI4QjBDMTIwNDU0MDgxMjAwQzQyOAorOjEwMDExMDAwMjAwMzgwQzAzMDAwMDA4ODAwMDA3QTBBRDAwMTAwODJFRAorOjEwMDEyMDAwMDQ1MDAwNDRDMDAwMDA5OTA0NTAwMDQ0MDBGRkMyOEJGQQorOjEwMDEzMDAwMjAwMDAwODAwMDBENDI4QjA0NDIwMEM0MDAwRTQyOEI2MAorOjEwMDE0MDAwMDg1MjAwQzQwMDFFNDI4QjAwRTIwMEM0MDA4RTQyOEJBNQorOjEwMDE1MDAwMDhEMjAwQzQwMDlFNDI4QjA0RjIwMEM0MDBCRTQyOEI1MQorOjEwMDE2MDAwMDRGMjAwQzQwMDA0NDI4QjA0MTEwMEM0MDAyNDQyOEIzQQorOjEwMDE3MDAwMEM2MTAwQzQwMDU1NDI4QjA0NTAwMEM0MDAzRjQyOEIwOAorOjEwMDE4MDAwMEMwMTAwQzQwMDAwNDA0NTIwMDE3OTgwMDAzMDQyOEIwMgorOjEwMDE5MDAwMDQ2MjAwQzQwMDAwNDA0NTAwMDA3MThCNDAwMTAwODBGMworOjEwMDFBMDAwMDQ1MDAwNDRGRjAwRTJBQjA4QzIwMEM0MEZGMkE4QTg0QworOjEwMDFCMDAwMjAwMEIxODgwMDAwNDEwMjRERjIwMDM5QzAwMTAwODJFOAorOjEwMDFDMDAwMDQ1MDAwNDQwREYyQTNBODRERjIwMDM5MDQ1MDAwNDQzRAorOjEwMDFEMDAwRkYwMEUyQUIyMDAwMDA4ODAwMDA2MTAyNERGMjA0MTkyQworOjEwMDFFMDAwMDQ1MDAwNDRGRjAwRTJBQkEwMDAwMDg4MDAwMDYxMTA1MgorOjEwMDFGMDAwNERGMjA0MTkwNDUwMDA0NEZGMjBFMkFCNjAwMDAwODg3NworOjEwMDIwMDAwMDAwMDcxQzA0REYyMDQxOTA0NTAwMDQ0MDAwMDdBMEE0NQorOjEwMDIxMDAwMjAwMUYwODAwMUEwNDEwQTAwMTEwMEM0MjAwMUYwODBGQgorOjEwMDIyMDAwQzEzMDA0MTkwNDUwMDA0NDAwMDA3OTgwMEM0MTAwODQ1RQorOjEwMDIzMDAwODkwMDcxOEJDODMwMDQxOTk3MDA3MThCQ0QwMDAwMzk4QgorOjEwMDI0MDAwMDAwMUIxODA4MDAwMDQxOTgyMDAwNDE5QzEyMDA0MTk0MgorOjEwMDI1MDAwQzMyMDA0MTlDMjMwMDQxOUNEMTAwNDE5Q0YxMDA0MTk5OQorOjEwMDI2MDAwQjAwMDcxOEI4NDAwMDQxOTg2MDAwNDE5ODAwMDcxOEIyMgorOjEwMDI3MDAwQ0IyMDA0MTk5MzAwMDE0RkNEMzAwMDA5Q0YzMDAwMDk4NQorOjEwMDI4MDAwMDMwMjA0NDkwODQxMDAxNDA0NTAwMDQ0MDAwMDYzODA0NAorOjEwMDI5MDAwMDAwMDA2MTkwMzAwMDQ0OTA0NTAwMDQ0MjAwMTYzODA1MworOjEwMDJBMDAwMDAwMDA2MTkwMDIwRTI4QjAwQzEwMDg0NDcwMDUxOEIzQQorOjEwMDJCMDAwQzAyMDAwMzkwMDAwNjM4MEMxQTAwNDE5MDBFMTAwNDQ5RgorOjEwMDJDMDAwQkQwMDUxOEJDMDIwMDAzOTAwMDBCMTgwQzFBMDA0MTlDRAorOjEwMDJEMDAwMDMwMDA0NDkwNDUwMDA0NDAwMjA2MTBBMDAwMTAwNDU2NQorOjEwMDJFMDAwMDIzMDYxMEEwQzgzMDBDNDBDNzgwODQ0MDQ1QTA4NDRBNAorOjEwMDJGMDAwQjIwMDA5NEYxMDQyMDk4RTA1QjBFMDE4MDQyMzAwODRCMworOjEwMDMwMDAwMEMwMTAwMTEwODA1NjExMDAwNDkwODQ0MDA0ODA4NDQyOAorOjEwMDMxMDAwQjIwMDA5NEY4MDAwNzE4QkMwMDAwMDgyMEMwMTMzMTBDNQorOjEwMDMyMDAwMjgwMUEzMTAwMDAxN0E4MDhDMDEwMDgwMDIzMDYxMEE0QworOjEwMDMzMDAwMjAwMDA0MTkwQzgzMDBDNDA1QjBDODE4MDg0MzAwQzQ4OQorOjEwMDM0MDAwMDEzMEM4MEEwQzM4MDBDNDA4ODgwMDQ0MEM3ODA4NDRGRQorOjEwMDM1MDAwMDQ1QTA4NDQwMDAwQTMxODgwMDAwNDE5MEIwNDYxQTg4MworOjEwMDM2MDAwQzMyMDAwMzlDMzMwMDQxOTBGMTA2MTBBQ0EzMDA0MTlDMAorOjEwMDM3MDAwMDkwNDQxQThFMTIwMDAzOUQxMDAwOTRGMDAwNDYxMDJCRAorOjEwMDM4MDAwMDg2MzAwNDQwMzMwNDEwQTIwMDAwMDM5QTMwMDA5NEZFQworOjEwMDM5MDAwMDAwNDYxMDIwMDQ4MDg0NDA4ODgwMDQ0MDIzMDYxMEFGMQorOjEwMDNBMDAwMDAwODAwQzQwQzc4MDg0NDA0NUEwODQ0QjIwMDA5MEYzRAorOjEwMDNCMDAwMTA0MDA5OEUwMDAwNjg1QjIwMDRCMTgwMDIwMDYxNUI4MAorOjEwMDNDMDAwODgwMzdBODBBQzAxMDA4MDA1QjBFMDE4MDBEMzAwODQ3NworOjEwMDNEMDAwMDA0OTA4NDQwMDQ4MDg0NEIyMDAwOTBGODAwMDcxOEJBRQorOjEwMDNFMDAwQzAwMDAwODIwMjMwNjEwQTAwMDgwMEM0MDVCMEM4MThDRAorOjEwMDNGMDAwMEMxODAwQzQwMTMwQzgwQTBDMzgwMEM0MDg4ODAwNDQzNgorOjEwMDQwMDAwMEM3ODA4NDQwMDAwNjExODIwMDVCMTgwMDAwMDY4Q0IxQQorOjEwMDQxMDAwODAwMDA0MTkwRDEwNjEwQUMzMzAwNDE5MEIwNDQxQThBRgorOjEwMDQyMDAwMDkwNDQxQThFMTIwMDAzOTA4MzgwMDQ0MDMzMDQxMEE5QQorOjEwMDQzMDAwMjAwNEIxODAwMDQ4MDg0NDA4ODgwMDQ0MDAwMEIxODBDRQorOjEwMDQ0MDAwQzIzMDA0MTkwQ0I4MDBENDBGMzA2MTBBMEQzMEM4MEE0QworOjEwMDQ1MDAwMENCODAwQzQ5MzAwMDE0RkU3MDAwMTZGMEYzMDYxMEEzMAorOjEwMDQ2MDAwMjAwMDAwODgwMjAwNjEwMjQxMDQwNDE5MDIwNDYxMDJCNAorOjEwMDQ3MDAwNDMwNDA0MzlDRjMwMDAwOTIwMDAwOTQ5MDA1OTAwNDRFMQorOjEwMDQ4MDAwOTMwMDAxNEZFNzAwMDE2RjBEMzA2MTBBMjAwMDYxODg4MQorOjEwMDQ5MDAwQzIwMDAwODJDMjAzMDA4MkNEMzAwMDA5MjAwMDA5NDk1OQorOjEwMDRBMDAwMEYzMDYxMEEwRDMwQzgwQTBDNTgwMDg0MDIzMDYxMEEwRQorOjEwMDRCMDAwMDVCMEE4MThDMjMwMDQxOTAwMDAwMDQ2OTA0MDA5OEYwQQorOjEwMDRDMDAwMTIwNDA5NkUwMzAwMDkwRTAwMDE3MTgyMjAwMTAwODBGMAorOjEwMDREMDAwMDAwMDYxQ0I4MDA0QjE4MDAwMDFFMDYwMENEODA0MTRGRQorOjEwMDRFMDAwMDAwMUVCODA0MDAwNTIxQjgwMDA3OTgwQzAwMTcxQzI4NgorOjEwMDRGMDAwMjAwMEMwODAwODBBMDQ1NEMwMDRBODgyODAwMDcyMUIzNworOjEwMDUwMDAwODAwMDAwODAwMDAxRjA4MDIwMDBDMDgwMEMyQTA0NTQ4QworOjEwMDUxMDAwQzAwNEE4ODIxMDAwNzIxQjgwMDAwMDgwMDAwMUYwODBERgorOjEwMDUyMDAwMjAwMEMwODAwODNBMDQ1NEMwMDRBODgyMjAwMDcyMUIzNgorOjEwMDUzMDAwODAwMDAwODBDMDAzRjA4MjIwMDBBMDgwMDAwMTAwMTEzNAorOjEwMDU0MDAwNDAwMEMyOEIwMEFBMDBDNDAwMDBFOTgwMDVCMEE4MThEMgorOjEwMDU1MDAwMDAwMUE4MjJEMDAxMDA4MkYwMDBFMjFCMDYyMEE4MEFCOAorOjEwMDU2MDAwMkQxMDYxMEFEMTAwMDkyRTAwMDFBODAyMEUxMEM4MEE0MAorOjEwMDU3MDAwMENCQTA0MTQwRTEwNjEwQTA0NEEwMDQ0MEMxMEM4MEE5NAorOjEwMDU4MDAwMDQ0QTA0NTQwQzEwNjEwQUQwMDEwMDgyMDAxMEE4MTgxQgorOjEwMDU5MDAwQTAwMDAwODgwMDAxNzE4MjAzMDAwOTBFOUEwMTAwNjAyQQorOjEwMDVBMDAwMzIwMDA5MkUwMDAwMDA0NjAwMDE3MTgyMjAwMTAwODAwNworOjEwMDVCMDAwMDAwMDYxQ0I4MDI0QjFDMDAwMzFFMDYwMENDQTA0MTQ5QgorOjEwMDVDMDAwMDAwMUVCODA0MDAwNTIxQjgwMDA3OTgwQzAwMTcxQzJBNQorOjEwMDVEMDAwMjAwMEMwODAwOERBMDQ1NEMwMDRBODgyODAwMDcyMUI4NgorOjEwMDVFMDAwODAwMDAwODAwMDAxRjA4MDIwMDBDMDgwMENGQTA0NTREQworOjEwMDVGMDAwQzAwNEE4ODIxMDAwNzIxQjgwMDAwMDgwMDAwMUYwODBGRgorOjEwMDYwMDAwMjAwMEMwODAwODI5MDQ1NEMwMDRBODgyMjAwMDcyMUI2NgorOjEwMDYxMDAwODAwMDAwODBDMDAzRjA4MjIwMDBBMDgwMDAwMTAwMTE1MworOjEwMDYyMDAwNDAwMEMyOEIwMDM5MDBDNDAwMDBFOTgwMDVCMEE4MTg2MgorOjEwMDYzMDAwMDAwMUE4MjJEMDAxMDA4MkIwMDBFMjFCMDYyMEE4MEExNworOjEwMDY0MDAwMkYxMDYxMEFGMTAwMDkyRTAwMDFBODAyMEUxMEM4MEEzRAorOjEwMDY1MDAwMENBOTA0MTQwRTEwNjEwQTA0OTkwMDQ0MEMxMEM4MEE3NQorOjEwMDY2MDAwMDQ5OTA0NTQwQzEwNjEwQUQwMDEwMDgyMDAxMEE4MThFQgorOjEwMDY3MDAwQTAwMDAwODgwMDAxNzE4MjlGMDEwMDYwMDAwMDAwNDYxOAorOjEwMDY4MDAwMDAwMDMzODAwMDAwODM4MDIwMDA3QTgwMjAwNzMzODBDMAorOjEwMDY5MDAwMDAwMDgzODAyMDA0N0E4MDIwMDEwMDgwMDAwMDAwNDY1MgorOjEwMDZBMDAwMDIwMDYxMEEwNDFCMDQxNDAxMDA2MTBBMDMwMDQ4MEFFNQorOjEwMDZCMDAwMEM3OTA0NTRDMzAwMDQxOTA0QzkwMDQ0MDgwMEM4MEE5MgorOjEwMDZDMDAwMDRDOTA0NTRDODAwMDQxOTBBMDA2MTBBMDkwMDQ4MEE1MAorOjEwMDZEMDAwMENFOTA0NTRDOTAwMDQxOTA0RDkwMDQ0MEIwMEM4MEFFOQorOjEwMDZFMDAwMDREOTA0NTRDQjAwMDQxOTA0MDA2MTBBMDYwMDQ4MEEyNgorOjEwMDZGMDAwMENGOTA0NTRDNjAwMDQxOTA0MEIwMDQ0MDUwMEM4MEE5MAorOjEwMDcwMDAwMDQwQjA0NTRDNTAwMDQxOTA3MDA2MTBBMEMwMDQ4MEFEMAorOjEwMDcxMDAwMEMyQjA0NTRDQzAwMDQxOTA0MUIwMDQ0MEUwMEM4MEExRQorOjEwMDcyMDAwMDQxQjA0NTRDRTAwMDQxOTAwMDA0MDQ1OTIyMDcxOEIzNAorOjA0MDczMDAwQTZDNTExMDA0OQorOjAwMDAwMDAxRkYKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX2luaXQuY3NwLmloZXggYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9pbml0LmNzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4OTlhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9zYjE2L2ltYV9hZHBjbV9pbml0LmNzcC5paGV4CkBAIC0wLDAgKzEsNzAgQEAKKzoxMDAwMDAwMDAwMTAwMDQ0MDAwMDQwNDUwMDAwNDA0NTAwMDA0MDQ1MEQKKzoxMDAwMTAwMDAwMDA0MDQ1QUFBQTcxOEI0NDA0MDQxOTAwMDA0MDQ1MjEKKzoxMDAwMjAwMEZGNkUyMTQ5RkYwRkQ0NDk0MDQ5MzlBQzU1NTU3MThCQkEKKzoxMDAwMzAwMDUwMDVCMTgwNjIwMDE5MEUyMTAwNzE4Qjg4MDAwMDgwOEMKKzoxMDAwNDAwMEIwMDA3MThCODgwMDAwODA0MDAwNzE4Qjg4MDAwMDgwQjgKKzoxMDAwNTAwMDYwMDA3MThCODgwMDAwODA1MDAwNzE4Qjg4MDAwMDgwRTgKKzoxMDAwNjAwMDcwMDA3MThCODgwMDAwODBDMDAwNzE4Qjg4MDAwMDgwNTgKKzoxMDAwNzAwMEUwMDA3MThCODgwMDAwODBEMDAwNzE4Qjg4MDAwMDgwQzgKKzoxMDAwODAwMDAyMDA3MThCODgwMDAwODAyMjAwNzE4Qjg4MDAwMDgwNDQKKzoxMDAwOTAwMDMyMDA3MThCODgwMDAwODBBMjAwNzE4Qjg4MDAwMDgwODQKKzoxMDAwQTAwMEIyMDA3MThCODgwMDAwODA2MjAwNzE4Qjg4MDAwMDgwMzQKKzoxMDAwQjAwMEMyMDA3MThCODgwMDAwODBGMjAwNzE4Qjg4MDAwMDgwODQKKzoxMDAwQzAwMDExMDA3MThCODgwMDAwODBBMTAwNzE4Qjg4MDAwMDgwNzYKKzoxMDAwRDAwMDYxMDA3MThCODgwMDAwODBFMTAwNzE4Qjg4MDAwMDgwRDYKKzoxMDAwRTAwMDEzMDA3MThCODgwMDAwODBCMzAwNzE4Qjg4MDAwMDgwNDIKKzoxMDAwRjAwMEMzMDA3MThCODgwMDAwODAxODAwNzE4Qjg4MDAwMDgwMUQKKzoxMDAxMDAwMDY4MDA3MThCODgwMDAwODAwQTAwNzE4Qjg4MDAwMDgwNzUKKzoxMDAxMTAwMDRBMDA3MThCODgwMDAwODAyOTAwNzE4Qjg4MDAwMDgwNjQKKzoxMDAxMjAwMDc5MDA3MThCODgwMDAwODA5QjAwNzE4Qjg4MDAwMDgwQjMKKzoxMDAxMzAwMDE0MDA3MThCODgwMDAwODBGNDAwNzE4Qjg4MDAwMDgwQUYKKzoxMDAxNDAwMEU2MDA3MThCODgwMDAwODBFNTAwNzE4Qjg4MDAwMDgwREMKKzoxMDAxNTAwMEQ3MDA3MThCODgwMDAwODAyRTAwNzE4Qjg4MDAwMDgwOTIKKzoxMDAxNjAwMDlEMDA3MThCODgwMDAwODBFRjAwNzE4Qjg4MDAwMDgwRkIKKzoxMDAxNzAwMEIyMjA3MThCODgwMDAwODAzMzIwNzE4Qjg4MDAwMDgwNTIKKzoxMDAxODAwMDJBMjA3MThCODgwMDAwODAzQjIwNzE4Qjg4MDAwMDgwQzIKKzoxMDAxOTAwMDQ2MjA3MThCODgwMDAwODAyQzIwNzE4Qjg4MDAwMDgwQTUKKzoxMDAxQTAwMEREMjA3MThCODgwMDAwODAwMTEwNzE4Qjg4MDAwMDgwMzkKKzoxMDAxQjAwMDlBMTA3MThCODgwMDAwODAxNjEwNzE4Qjg4MDAwMDgwNjcKKzoxMDAxQzAwMDhFMTA3MThCODgwMDAwODBDMjMwNzE4Qjg4MDAwMDgwOTcKKzoxMDAxRDAwMEM5MzA3MThCODgwMDAwODAzQzMwNzE4Qjg4MDAwMDgwQjIKKzoxMDAxRTAwMDgxODA3MThCODgwMDAwODBENDgwNzE4Qjg4MDAwMDgwQjIKKzoxMDAxRjAwMDEwQTA3MThCODgwMDAwODAzNEEwNzE4Qjg4MDAwMDgwNzMKKzoxMDAyMDAwMDAyOTA3MThCODgwMDAwODA3NTkwNzE4Qjg4MDAwMDgwNEYKKzoxMDAyMTAwMDlBQjA3MThCODgwMDAwODAxMjQwNzE4Qjg4MDAwMDgwM0EKKzoxMDAyMjAwMDBENDA3MThCODgwMDAwODAzQzYwNzE4Qjg4MDAwMDgwREQKKzoxMDAyMzAwMEU3NTA3MThCODgwMDAwODAwRTcwNzE4Qjg4MDAwMDgwMDEKKzoxMDAyNDAwMEZGQzA3MThCODgwMDAwODBDOEQwNzE4Qjg4MDAwMDgwNEYKKzoxMDAyNTAwMDU3RjA3MThCODgwMDAwODBDODIyNzE4Qjg4MDAwMDgwNjUKKzoxMDAyNjAwMEIwMzI3MThCODgwMDAwODBERDgyNzE4Qjg4MDAwMDgwNDUKKzoxMDAyNzAwMDkwQjI3MThCODgwMDAwODA4QTYyNzE4Qjg4MDAwMDgwNDgKKzoxMDAyODAwMENFNzI3MThCODgwMDAwODBBNUQyNzE4Qjg4MDAwMDgwQUYKKzoxMDAyOTAwMDk3MjE3MThCODgwMDAwODBBMkExNzE4Qjg4MDAwMDgwNUIKKzoxMDAyQTAwMDVDNDE3MThCODgwMDAwODBGRUMxNzE4Qjg4MDAwMDgwRUEKKzoxMDAyQjAwMDdBMjM3MThCODgwMDAwODA3ODkzNzE4Qjg4MDAwMDgwOEUKKzoxMDAyQzAwMDY3NzM3MThCODgwMDAwODAxNzI4NzE4Qjg4MDAwMDgwMEQKKzoxMDAyRDAwMDg4NDg3MThCODgwMDAwODBEQkY4NzE4Qjg4MDAwMDgwNzMKKzoxMDAyRTAwMDJCQkE3MThCODgwMDAwODBGMTA5NzE4Qjg4MDAwMDgwMjcKKzoxMDAyRjAwMERDNjk3MThCODgwMDAwODAxOThCNzE4Qjg4MDAwMDgwMEQKKzoxMDAzMDAwMEZGRkI3MThCODgwMDAwODAyMDAwNzE4Qjg4MDAwMDgwQ0IKKzoxMDAzMTAwMDUyMDA3MThCQzIwMDAwODJGRkZGNzE4QkMyMDAwMDgyMEQKKzoxMDAzMjAwMEMyMDAwMDgyQzIwMDAwODJDMjAwMDA4MjEwMDA3MThCRjUKKzoxMDAzMzAwMEMyMDAwMDgyODAwMDcxOEJDMjAwMDA4MjkwMDA3MThCMkQKKzoxMDAzNDAwMEMyMDAwMDgyNDAwMDcxOEJDMjAwMDA4MkZGRkY3MThCRUYKKzoxMDAzNTAwMEMyMDAwMDgyQzIwMDAwODJDMjAwMDA4MkMyMDAwMDgyOEQKKzoxMDAzNjAwMDEwMDA3MThCQzIwMDAwODI4MDAwNzE4QkMyMDAwMDgyN0QKKzoxMDAzNzAwMDkwMDA3MThCQzIwMDAwODI0MDAwNzE4QkMyMDAwMDgyMkQKKzoxMDAzODAwMEZGRkI3MThCQzIwMDAwODIwMDA0NzE4QkMyMDAwMDgyRUYKKzoxMDAzOTAwMDRBMDA3MThCQzIwMDAwODIwMDAwNzE4QkMyMDAwMDgyOTMKKzoxMDAzQTAwMDAwMDA3MThCQzIwMDAwODJDMjAwMDA4MkMyMzAwNDE5QkEKKzoxMDAzQjAwMDEwMDAwOTRGQzIwMTAwODJDMjAxMDA4MkMyMDEwMDgyMDYKKzoxMDAzQzAwMEMyMDEwMDgyQzIwMTAwODJDMjAxMDA4MkMyMDEwMDgyMTkKKzoxMDAzRDAwMEMyMDEwMDgyQzIwMTAwODJDMjAxMDA4MkMyMDEwMDgyMDkKKzoxMDAzRTAwMEMyMDEwMDgyQzIwMTAwODIwMDEwNzE4QkMxMzAwNDE5NjkKKzoxMDAzRjAwMDkzMDAwMTRGQ0QzMDAwMDlDRjMwMDAwOTAwMDAzNDQ5OEYKKzowODA0MDAwMDAwMDgwMDQ0Qzg1NDExMDA3QgorOjAwMDAwMDAxRkYKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgorICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCisgKi8KZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcC5paGV4IGIvZmlybXdhcmUvc2IxNi9pbWFfYWRwY21fcGxheWJhY2suY3NwLmloZXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5ZjE4YwotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3NiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcC5paGV4CkBAIC0wLDAgKzEsMTIyIEBACis6MTAwMDAwMDAwMDEwMDA0NDA4MDAwMDQ0MEM1MDAwNDQwMDcwMDA0NEZDCis6MTAwMDEwMDAwNDcwMDA0NDBERjI2MUE4NDQwNDA0MTkwMDAwNDA0NTM2Cis6MTAwMDIwMDAwMDA0NjM4MDAwMDAwNjM5RkYyRTIxNDlGRjBERDQ0OUVBCis6MTAwMDMwMDA0MDQ5MzlBQzU1NTU3MThCNTAwMUIxODAwMDAxQjE4MEY4Cis6MTAwMDQwMDBDOTIwMDQxOTUxMDA3MThCQ0QwMDA0MTlFNDIwNzE4QjczCis6MTAwMDUwMDBDRjAwMDQxOTgwMDA3MThCQ0IyMDA0MTkxMDAwNzE4QjI0Cis6MTAwMDYwMDBDNDIwMDQxOTY1MDA1MThCQzIyMDAwMzkwMDAwQjE4MDAyCis6MTAwMDcwMDBDMjMwMDQxOTAwMDA2MzgwQzFBMDA0MTk5MzAwMDE0RjJECis6MTAwMDgwMDBDRDMwMDAwOUNGMzAwMDA5MDQ0MDAwMTQwQzQwMDAxNEFBCis6MTAwMDkwMDAwMDA0NjFBODAyMDQ2MUE4MDQ2MDA0MjQwMDAwMzQ0OTNCCis6MTAwMEEwMDAwMDUwMDA0NDQ0MDQwNDM5MDAwMDQwNDUwMDAwNDA0NTJECis6MTAwMEIwMDAwRjAwNjEwQTAwMDEwMDQ1NDA0MDA5RUZGRjIwMDlDRjExCis6MTAwMEMwMDAwMDA0NjNBMTUwMDMzMzgwMDAwNEEzODAwMEZGQzI4QkFGCis6MTAwMEQwMDAwOEYwMDQ1NDBDRDAwMEM0MjAwMzgwQzAzMDAwMDA4ODE1Cis6MTAwMEUwMDAwMDAwN0EwQUQwMDEwMDgyMDg1MDAwNDRDMDAwMDA5OTQ0Cis6MTAwMEYwMDAwODUwMDA0NDAwRkZDMjhCMjAwMDAwODAwMDBENDI4QjlFCis6MTAwMTAwMDAwMEEyMDBDNDAwMEU0MjhCMEM5MjAwQzQwMDFFNDI4QjYxCis6MTAwMTEwMDAwNDYyMDBDNDAwOEU0MjhCMEM1MjAwQzQwMDlFNDI4QkNECis6MTAwMTIwMDAwMEMyMDBDNDAwQkU0MjhCMDBDMjAwQzQwMDA0NDI4QjY3Cis6MTAwMTMwMDAwMEYyMDBDNDAwMjQ0MjhCMDA5MTAwQzQwMDU1NDI4QkExCis6MTAwMTQwMDAwODUwMDBDNDAwM0Y0MjhCMDhFMjAwQzQwMDAwNDA0NTU0Cis6MTAwMTUwMDAyMDAxNzk4MDAwMzA0MjhCMDA5MjAwQzQwMDAwNDA0NUFECis6MTAwMTYwMDAwMDAwNzE4QjQwMDEwMDgwMDg1MDAwNDRGRjAwRTJBQkFBCis6MTAwMTcwMDAwQzQyMDBDNDBGRjJBOEE4MjAwMEIxODgwMDAwNDEwMjgwCis6MTAwMTgwMDA0REYyMDAzOUMwMDEwMDgyMDg1MDAwNDQwREYyQTNBOENFCis6MTAwMTkwMDA0REYyMDAzOTA4NTAwMDQ0RkYwMEUyQUIyMDAwMDA4ODE3Cis6MTAwMUEwMDAwMDAwNjEwMjRERjIwNDE5MDg1MDAwNDRGRjAwRTJBQjY4Cis6MTAwMUIwMDBBMDAwMDA4ODAwMDA2MTEwNERGMjA0MTkwODUwMDA0NEFFCis6MTAwMUMwMDBGRjIwRTJBQjYwMDAwMDg4MDAwMDcxQzA0REYyMDQxOTBFCis6MTAwMUQwMDAwODUwMDA0NDAwMDA3QTBBMjAwMUYwODAwMUEwNDEwQTgyCis6MTAwMUUwMDAwNEQyMDBDNDIwMDFGMDgwQzEzMDA0MTkwODUwMDA0NDNBCis6MTAwMUYwMDAwMDAwNzk4MDAwQTEwMDg0QjUwMDUxOEJDRjAwMDAzOTQ4Cis6MTAwMjAwMDAwMDAxQjE4MDg4MDAwNDE5OEEwMDA0MTlDODIwMDQxOTZCCis6MTAwMjEwMDBDQTIwMDQxOUMyMzAwNDE5Q0QxMDA0MTlDRjEwMDQxOUQyCis6MTAwMjIwMDBCMDAwNzE4QjhDMDAwNDE5OEUwMDA0MTkxMDAwNzE4QkMyCis6MTAwMjMwMDBDNDIwMDQxOTkzMDAwMTRGQ0QzMDAwMDlDRjMwMDAwOUNDCis6MTAwMjQwMDAwMzAzMDQ0OTA0ODEwMDU0MDg1MDA0NjQwODUwMDA0NDI2Cis6MTAwMjUwMDAwMDAwNjM4MDAwMDAwNjE5MDMwMDA0NDkwODUwMDA0NEIwCis6MTAwMjYwMDAyMDAxNjM4MDAwMDAwNjE5MDAwMkUyOEIwODQxMDA4NDJGCis6MTAwMjcwMDA2NTAwNTE4QkMyMjAwMDM5MDAwMDYzODBDMUEwMDQxOUMxCis6MTAwMjgwMDAwODYxMDA0NDJEMDA1MThCQzIyMDAwMzkwMDAwQjE4MDZDCis6MTAwMjkwMDBDMUEwMDQxOTAzMDAwNDQ5MDg1MDAwNDQwMjIwNjEwQTY3Cis6MTAwMkEwMDAwMDAxMDA0NTAyMzA2MTBBMDQwMzAwQzQwNUIwQzgxODBCCis6MTAwMkIwMDAwNDcxMDBDNDAwMTMwMDQ0MDA3OTA4NDQwMDA0Nzk4MEVDCis6MTAwMkMwMDAwMDQ5MDBDNENBMjAwNDE5NEEwNDA0MTlGRjAwRTI4QjQzCis6MTAwMkQwMDAwQ0Y5MDg0NENGMTAwNDE5MEMyQjA4NDQ4RTAwMDQxOUEzCis6MTAwMkUwMDAwMzMwNjEwQUM4MjAwMDM5NDgwNDAwMzkwQTMwNjEwQTI1Cis6MTAwMkYwMDAwQ0Y5MDg0NENEMTAwNDE5MEMyQjA4NDQ4QzAwMDQxOTg3Cis6MTAwMzAwMDAwQ0Q5MDg0NDBDNUEwMDQ0MDA3OTA4NDQwMDA0Nzk4MDUwCis6MTAwMzEwMDAwMDQ5MDBDNEMzMzAwNDE5Q0EzMDAwOTkwQ0Q5MDg0NEZDCis6MTAwMzIwMDA0MjBBMDkwRTAwMDEzMzExOEMwMUEzODAwMDAxN0ExMEVBCis6MTAwMzMwMDA4MDA1QjE4MDA1QjBFMDE4MDA5MzAwODQwMDc5MDg0NDdFCis6MTAwMzQwMDAwMDA0Nzk4MDAwNDkwMEM0MEMxQjA4NDQ4ODAwMDQxOThCCis6MTAwMzUwMDA4QTAwMDA5OTBDRDkwODQ0NDIwQTA5MEU4MDAwNzE4QjZBCis6MTAwMzYwMDBDMDA0QjE4MjEwMDBFMDBCMDA0MzAwODQwMjMwNjEwQTM3Cis6MTAwMzcwMDAwMTMwQzgwQTAwNDMwMDg0MDAwMEIxODBDMjMwMDQxOTczCis6MTAwMzgwMDAwQ0E4MDA0NDAyMzA2MTBBMDBEMzAwQzQwNUIwQzgxOEFDCis6MTAwMzkwMDAwNDYzMDBDNDA4RjMwMDQ0MDA3OTA4NDQwMDA0Nzk4MDMxCis6MTAwM0EwMDAwMDQ5MDBDNDIwMDAwNDE5RkYwMEUyOEIwQ0Y5MDg0NDQ2Cis6MTAwM0IwMDBDRDEwMDQxOUNGMTAwNDE5MEMyQjA4NDQ4QzAwMDQxOTFCCis6MTAwM0MwMDA4RTAwMDQxOTAzMzA2MTBBQzgyMDAwMzlDQTIwMDAzOUEwCis6MTAwM0QwMDA0ODA0MDAzOTRBMDQwMDM5MENEOTA4NDQwQzVBMDA0NDM2Cis6MTAwM0UwMDAwMDc5MDg0NDAwMDQ3OTgwMDA0OTAwQzRDMzMwMDQxOTJFCis6MTAwM0YwMDAwQ0Q5MDg0NDQyMEEwOTBFMDVCMEUwMTgwMDE4MDA4NDIwCis6MTAwNDAwMDAwMDc5MDg0NDAwMDQ3OTgwMDA0OTAwQzQwQzFCMDg0NEFBCis6MTAwNDEwMDA4MDAxMDA4MDBDRDkwODQ0NDIwQTA5MEU4MDAwNzE4QkNCCis6MTAwNDIwMDBDMDA0QjE4MjEwMDBFMDBCMDA4ODAwODQwMjMwNjEwQTMxCis6MTAwNDMwMDAwMTMwQzgwQTAwODgwMDg0MDAwMEIxODBDMjMwMDQxOTZECis6MTAwNDQwMDAwMDAxMDAxMTAwMEZFMjhCMDAwMDQxQ0I4QzAwMDA4MDA2Cis6MTAwNDUwMDAwMDAwNDhDQjIwMDA3QTgwODAwMTAwODA4MjBDMDk2RTY5Cis6MTAwNDYwMDAwMzA4MDkwRTgwNDAwOUNGMDAwMTcxQzIwMDA4QzIxQkI5Cis6MTAwNDcwMDAwNEI4MDBDNDIwMDVBODgwMjAwMUYwODAwMDAxQzIxQjQwCis6MTAwNDgwMDAwNDQ4MDBDNDIwMDVBODgwMjAwMUYwODAwMDAyQzIxQjlGCis6MTAwNDkwMDAwNDY4MDBDNDIwMDVBODgwMjAwMUYwODAyMDAzQTg4MDAzCis6MTAwNEEwMDAwMDAxMDAxMTAwMDRDMjhCMDg3ODAwQzQwMDAwRTk4MDNDCis6MTAwNEIwMDAwNUIwQTgxODAwMDA0QUNCMjAwMEE4MjJEMDAxMDA4Mjc1Cis6MTAwNEMwMDA0MDAxMDA4MEM0MDAwNDE5QjAwMEUyOEIwNjIwQTgwQTk1Cis6MTAwNEQwMDAyRDEwNjEwQUQxMDgwOTJFMDAwMUE4MDIwQ0Y5MDg0NDY4Cis6MTAwNEUwMDBDRDEwMDQxOTBDMkIwODQ0MDMwODA5MEU5QTI1QjE2MDlECis6MTAwNEYwMDBBMjBFMDk2RTAzMDAwOTBGMDAwMTcxODIyMDAxMDA4MDI1Cis6MTAwNTAwMDAwMDAwNjFDQjgwMDEwMDgwMDMwMDA5MEYwMDAxNzFDMjZGCis6MTAwNTEwMDAwMDA4QzIxQjBDMkEwMEM0MjAwNUE4ODAyMDAxRjA4MDFFCis6MTAwNTIwMDAwMDAxQzIxQjBDMUEwMEM0MjAwNUE4ODAyMDAxRjA4MDI1Cis6MTAwNTMwMDAwMDAyQzIxQjBDM0EwMEM0MjAwNUE4ODAyMDAxRjA4MEY0Cis6MTAwNTQwMDAyMDAzQTg4MDAwMDEwMDExMDAwNEMyOEIwNEFBMDBDNDhCCis6MTAwNTUwMDAwMDAwRTk4MDA1QjBBODE4MDAwMDRBQ0IyMDAwQTgyMkJFCis6MTAwNTYwMDBEMDAxMDA4MjQwMDEwMDgwQzcwMDA0MTlCMDAwRTI4Qjc2Cis6MTAwNTcwMDAwNjIwQTgwQTJGMTA2MTBBRjEwODA5MkUwMDAxQTgwMjFFCis6MTAwNTgwMDAwQ0Y5MDg0NENGMTAwNDE5MEMyQjA4NDQ5RjM1QjE2MEI2Cis6MTAwNTkwMDAwMzA4MDkwRTAwMDE3MTgyMjAwMTAwODAwMDAwNjFDQjc4Cis6MTAwNUEwMDA4MDAxMDA4MEU0MjA3MThCMDAwMTAwNDU5MDQwMDk4RjlDCis6MTAwNUIwMDAwMDA1NjM4MDAwMDAwNjM5MDgxOTA0RDQ5MzAwMDE0RjM4Cis6MTAwNUMwMDBFNzAwMDE2RjBEMzA2MTBBMjAwNDYxQThDMjAwMDA4MkJCCis6MTAwNUQwMDAwMjA0NjFBOEMyMDAwMDgyQ0QzMDAwMDkwMjAwMDAwMkJFCis6MTAwNUUwMDAwMjAwMDAwMkMwODAwMDA5MjAwMDA5NDkwRjMwNjEwQUEyCis6MTAwNUYwMDAwRDMwQzgwQTAwMjkwMEM0MDA4MEM4MEEwMDI5MDBDNEMwCis6MTAwNjAwMDAwMDA0QjE4MDAwMDAwNjM5QzkyMDA0MzkwMDM5MDA0NEQzCis6MTAwNjEwMDAwMDA0NjM4MDAwMDAwNjM5MDAwNEIxODBDOTIwMDQzOTU5Cis6MTAwNjIwMDAwMDM5MDA0NDA5MjAyMzBBMDAwMDA2MTlDOTIwMDQxOUQyCis6MTAwNjMwMDAwMDAwNDA0NTAyMDA2MTBBMENCOTA0MTQwNDAwNjEwQTdDCis6MTAwNjQwMDAwNjAwNDgwQTAwQTkwNDU0QzYwMDA0MTkwQ0E5MDA0NDc1Cis6MTAwNjUwMDAwNTAwQzgwQTBDQTkwNDU0QzUwMDA0MTkwNzAwNjEwQTYyCis6MTAwNjYwMDAwQzAwNDgwQTAwQjkwNDU0Q0MwMDA0MTkwQ0I5MDA0NDI5Cis6MTAwNjcwMDAwRTAwQzgwQTBDQjkwNDU0Q0UwMDA0MTkwQzVBMDA0NEU4Cis6MTAwNjgwMDA4MjBEMDkyRTgwNDAwOUNGMDBERjcxOEI4MDAxMDA4MDMwCis6MTAwNjkwMDAwMkMxMDAyMjAzQzEwMDIyMDAwMTY1ODBEMjA1NjU4MkVCCis6MTAwNkEwMDA0MDIxMDA4MEQzMDMwMDgyNDAzMzAwODAwQzVBMDA0NDc0Cis6MTAwNkIwMDAwRjMwNjEwQTBEMzBDODBBMDhEOTAwQzQ5MzAwMDE0RkY5Cis6MTAwNkMwMDBFNzAwMDE2RjBGMzA2MTBBMjAwMDAwODgwMjAwNjEwMjFDCis6MTAwNkQwMDAwMjAwMDAwM0NGMzAwMDA5MjAwMDA5NDkwMDA0NjM4MEI0Cis6MTAwNkUwMDAwNEQ5MDA0NDAwMDRCMTgwMDAwMDAwNDYwMjMwNjEwQUQxCis6MTAwNkYwMDAwNUIwQTgxOEMyMzAwNDE5MDAwMDAwNDYwRTEwQzgwQTQwCis6MTAwNzAwMDAwQzBCMDQxNDBFMTA2MTBBMDQyQjAwNDQwQzEwQzgwQUQwCis6MTAwNzEwMDAwNDJCMDQ1NDBDMTA2MTBBMDAwMDAwNDYwMDEwQTgxOEI1Cis6MTAwNzIwMDBBMDAwMDA4ODAwMDE3MTgyMDAwMDAwNDYwMDA0MzM4MEIwCis6MTAwNzMwMDAwMDAwODM4MDIwMDQ3QTgwMjAwMTMzODAwMDAwODM4MEMxCis6MTAwNzQwMDAyMDAwN0E4MDIwMDMwMDgwMDAwMDAwNDYxNkNFMTEwMEIxCis6MDAwMDAwMDFGRgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvc2IxNi9tdWxhd19tYWluLmNzcC5paGV4IGIvZmlybXdhcmUvc2IxNi9tdWxhd19tYWluLmNzcC5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NGI1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS9zYjE2L211bGF3X21haW4uY3NwLmloZXgKQEAgLTAsMCArMSw4NCBAQAorOjEwMDAwMDAwMDAxMDAwNDQwODAwMDA0NDAwQjEwMDQ0MDA2MTAwNDRCNgorOjEwMDAxMDAwMDg1MDAwNDQwREYyNjFBODQ0MDQwNDE5MDAwMDQwNDU1MgorOjEwMDAyMDAwNDA0OTM5QUM1NTU1NzE4QjUwMDU2MzgwMDAwMDA2Mzk0NQorOjEwMDAzMDAwRkYyRTIxNDlGRjBGRDQ0OTIwMDEwOTBFMjAwMDcxOEJBQQorOjEwMDA0MDAwQTgwMUE4ODA4ODAxQTg4MEE4MDAwMDgwRDIwMDcxOEIzOAorOjEwMDA1MDAwODgwMEE4ODBBODA0QjM4MDIwMDdCMzgwODgwM0IxODBGQgorOjEwMDA2MDAwQzAwMDA5NUNDMjAxMDA4MkExMDA3MThCQ0QwMDA0MTk5RgorOjEwMDA3MDAwQTIyMDcxOEJDRjAwMDQxOTAwMDBCMTgwQzIwMDA0MTlDNgorOjEwMDA4MDAwMDA0MDAwMTQwODQwMDQyNDAwMDAzNDQ5MEM0MDAwNDQ5RgorOjEwMDA5MDAwNDQwNDA0MzkwMDAwNDA0NTMyMDAwOTVDMDAwMDBDMzk3QQorOjEwMDBBMDAwMDAwMDQwNDU0MDQwMDlFRkZGMjAwOUNGMDAwNDYzQTE1NAorOjEwMDBCMDAwNTAwMzMzODAwMDA0QTM4MDAwRkZDMjhCMDBEMDA0NTQ5RgorOjEwMDBDMDAwMDRFMDAwQzQyMDAzODBDMDMwMDAwMDg4MDAwMDdBMEFFOQorOjEwMDBEMDAwRDAwMTAwODIwMDYwMDA0NEMwMDAwMDk5MDA2MDAwNDQyQworOjEwMDBFMDAwMDBGRkMyOEIyMDAwMDA4MDAwMEQ0MjhCMDgzMjAwQzQ0QworOjEwMDBGMDAwMDAwRTQyOEIwMEEyMDBDNDAwMUU0MjhCMENCMjAwQzQ1MgorOjEwMDEwMDAwMDA4RTQyOEIwMDYyMDBDNDAwOUU0MjhCMDg1MjAwQzRFNQorOjEwMDExMDAwMDBCRTQyOEIwODUyMDBDNDAwMDQ0MjhCMDQ3MjAwQzQyQgorOjEwMDEyMDAwMDAyNDQyOEIwMEQyMDBDNDAwNTU0MjhCMDA2MDAwQzQwMgorOjEwMDEzMDAwMDAwMDQwNDUyMDAxNzk4MDAwMzA0MjhCMDg4MjAwQzRENQorOjEwMDE0MDAwMDAwMDQwNDUwMDAwNzE4QjQwMDEwMDgwMDA2MDAwNDRDOQorOjEwMDE1MDAwRkYwMEUyQUIwMEIyMDBDNDBGRjJBOEE4MjAwMEIxODhGMworOjEwMDE2MDAwMDAwMDQxMDI0REYyMDAzOUMwMDEwMDgyMDA2MDAwNDRFRAorOjEwMDE3MDAwMERGMkEzQTg0REYyMDAzOTAwNjAwMDQ0RkYwMEUyQUI4RAorOjEwMDE4MDAwMjAwMDAwODgwMDAwNjEwMjRERjIwNDE5MDA2MDAwNDQ2NAorOjEwMDE5MDAwRkYwMEUyQUJBMDAwMDA4ODAwMDA2MTEwNERGMjA0MTlERQorOjEwMDFBMDAwMDA2MDAwNDRGRjIwRTJBQjYwMDAwMDg4MDAwMDcxQzBFNgorOjEwMDFCMDAwNERGMjA0MTkwMDYwMDA0NDAwMDA3OTgwMDBFMjAwODRFMAorOjEwMDFDMDAwMDMwMzA0NDkwOEMyMDA1NDAwNjAwNDY0MDA2MDAwNDQ1MgorOjEwMDFEMDAwMDAwMDYzODAwMDAwMDYxOTAzMDAwNDQ5MDA2MDAwNDQyOQorOjEwMDFFMDAwMjAwMTYzODAwMDAwMDYxOTAwMjBFMjhCMENGMjAwODRERAorOjEwMDFGMDAwM0UwMDUxOEJDMDIwMDAzOTA4MDEwMDQ0NkMwMDUxOEIzNworOjEwMDIwMDAwQzAyMDAwMzkwMDAyRTI4QjA0MjEwMDg0RkQwMDUxOEJFNAorOjEwMDIxMDAwQzIyMDAwMzkwMDExMDA0NEZFMDA1MThCQzIyMDAwMzk3OQorOjEwMDIyMDAwRTUwMDcxOEJDRDAwMDAzOTAwMDBCMTgwQzkyMDA0MTlCMAorOjEwMDIzMDAwQ0IyMDA0MTlDMTIwMDQxOUMzMjAwNDE5MTAwMDcxOEJBQworOjEwMDI0MDAwQzcyMDA0MTk1RTAwNzE4QkNGMDAwMDM5MDAwMEIxODAxNworOjEwMDI1MDAwQzQyMDA0MTlDNjIwMDQxOUM4MjAwNDE5Q0EyMDA0MTk4RQorOjEwMDI2MDAwMjAwMDcxOEJDQzIwMDQxOTAzMDAwNDQ5MDA2MDAwNDQ3NQorOjEwMDI3MDAwMDkwNDYxQThDMTAwMDQxOTBCMDQ2MUE4Q0EwMDA0MTk4QgorOjEwMDI4MDAwMDQ2MDAwRDQwRDAwNjEwQTkwNDAwOThGMDAwMTAwNDUxMAorOjEwMDI5MDAwMEYwMDYxMEEwMDQwMDk4RjAwMDEwMDQ1ODIwMDA5MkUwRAorOjEwMDJBMDAwODA0MDA5Q0YwMjAwNjEyMjQzMjU2MTIyNDAzMzAwODA1MworOjEwMDJCMDAwMDhBODAwNDQyMDMxNDk1QzkyMDAwOTRFMDIwMzA5MkUyRgorOjEwMDJDMDAwMDAwMEEzMDJDMDAwNzFDMDIwMDBFQjgwMDAwNEMyOEJCQworOjEwMDJEMDAwMjAwNDYxODAwMDA0N0EwMkNCMDBBODU4QjAwNUYzODBBNgorOjEwMDJFMDAwMjAwNEE4MTAwMDAwMTAzOUIwMDBFMDhCMjAwMTAwODAyRAorOjEwMDJGMDAwMDAwMDYzQ0IwMDAwN0EwMjQwMDAwMTVCMjAwMDAwODAxOAorOjEwMDMwMDAwMDAwMDRBQ0IyMDAwMTM4MDIwMDA3QTgwRTAyMTAwQzA0QQorOjEwMDMxMDAwMDgwMDA4NDkxMDQxMDk4RUZGRkY2MjhCMDAwNDYxMjIyQQorOjEwMDMyMDAwMDAwMzAwNDUyMjAxMzM4MDIwMDFBMzAyMDAwMDdBODBFRgorOjEwMDMzMDAwQzAwMDAwODIwNzIwNDAwQTA4ODMwMDg0NDAyMTAwODAxQQorOjEwMDM0MDAwNDAwNTkzMTBDNzIwMDAzOTAwMDA0MDQ1MDcyMDQwMEFBRgorOjEwMDM1MDAwMENBMzAwODQwODAwMDA4MjBDMjQ2MTUwNDAwMTAwODAzRQorOjEwMDM2MDAwQzcyMDAwMzkwMDAwNDA0NTAwMDQ2MzgwMDAwMDA2MzlDMgorOjEwMDM3MDAwNDIwMTA5MEUwMjIwNjEwQTAwMDEwMDQ1MEMyMDYwMEFCQQorOjEwMDM4MDAwMDA3MzAwODQwMDA0QjE4MDAwMDAwNjM5MEM2MTA0RDRCRAorOjEwMDM5MDAwMDAyNDcxQzAyMDMzMzNDMEUwMDFBMzgyMjIwMzdBMDIxQgorOjEwMDNBMDAwQzMwMUEzODIyMDAxMzM4MDAwMDA3QTgwQzIwMUIzNTBEMAorOjEwMDNCMDAwQ0MyMDAwMzkwMDAwNzE4MDAwRjMwMDQ0MEMyMDYwMEE1QQorOjEwMDNDMDAwMDBEMzAwODQwMDA0QjE4MDAwMDAwNjM5MEM2MTA0RDQxRAorOjEwMDNEMDAwMDAwMEIzMTBDQzIwMDAzOTAwMDA3MUMwMDBGMzAwNDRDRAorOjEwMDNFMDAwQ0MyMDAwMzkwMDIwNzFDMDAwMzA3MUMwMDBGMzAwNDRGRgorOjEwMDNGMDAwMjAwMTAwODBGRkZGNjI4QjIwMDEzMzgwMDAwMDgzODA5QQorOjEwMDQwMDAwMjAwMDdBODAyMEUxMDk1QzgyMDAwOTJGODA0QTA5OEU1MQorOjEwMDQxMDAwRTAwMUIzODIyMDA0QTM4MDAwMDA3QUNCMDMwMEE4MTg3NworOjEwMDQyMDAwMDAwMDEwMzkwODA0RUExMDA4MDQ3QTEwMjAwMDAwODA0NworOjEwMDQzMDAwNDAwMDIxQ0IwQzAwRTgxMDAwMDA0MTAyMEMwMEVCMTA0MgorOjEwMDQ0MDAwRjIwMTAwODI0MDIxMzMwMjA4MjA2MTBBQzQwMDA0MTkyRAorOjEwMDQ1MDAwQzcwMDAwOTkwMjAwNjEwQTBDRTgwNDE0MDEwMDYxMEE1NworOjEwMDQ2MDAwMDMwMDQ4MEEwMEI4MDQ1NEMzMDAwNDE5MENCODAwNDQzRgorOjEwMDQ3MDAwMDgwMEM4MEEwQ0I4MDQ1NEM4MDAwNDE5MEEwMDYxMEEyQworOjEwMDQ4MDAwMDkwMDQ4MEEwMDY4MDQ1NEM5MDAwNDE5MEM2ODAwNDRCMworOjEwMDQ5MDAwMEIwMEM4MEEwQzY4MDQ1NENCMDAwNDE5MDQwMDYxMEE1QworOjEwMDRBMDAwMDYwMDQ4MEEwMDc4MDQ1NEM2MDAwNDE5MEM3ODAwNDQ3OQorOjEwMDRCMDAwMDUwMEM4MEEwQzc4MDQ1NEM1MDAwNDE5MDcwMDYxMEEzNQorOjEwMDRDMDAwMEMwMDQ4MEEwMEU4MDQ1NENDMDAwNDE5MENFODAwNDQ2RAorOjEwMDREMDAwMEUwMEM4MEEwQ0U4MDQ1NENFMDAwNDE5MDAwMDQwNDU4MAorOjA4MDRFMDAwMjAxMDcxOEIwOTNGMDcwMDk5Cis6MDAwMDAwMDFGRgorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTQgQ3JlYXRpdmUgVGVjaG5vbG9neSBMdGQuCisgKiAgTWljcm9jb2RlIGZpbGVzIGZvciBTQjE2IEFkdmFuY2VkIFNpZ25hbCBQcm9jZXNzb3IKKyAqLwpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdGlfMzQxMC5mdy5paGV4IGIvZmlybXdhcmUvdGlfMzQxMC5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMmMwNDIKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS90aV8zNDEwLmZ3LmloZXgKQEAgLTAsMCArMSw4NjIgQEAKKzoxMDAwMDAwMEMyMzUwMDAyMDAxRTAyMUFEQkZGRkZGRkZGRkYwMjMyQjMKKzoxMDAwMTAwMENCRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkYwMjMzRUQKKzoxMDAwMjAwMDc2NzU4MUNFOTBGREU4ODU4M0EwMTIzNEVBRUM0RDYwQjAKKzoxMDAwMzAwMDZBNzhBQjgwMDM3NjAwMThCODlDRkE3ODdGODAwMzc2RTQKKzoxMDAwNDAwMDAwMThCODY1RkE3ODIwODAwMzc2MDAxOEI4MjBGQTkwNzYKKzoxMDAwNTAwMEZERERBRTgzQUY4MjkwRkJGODEyMDBBMTYwMDVFNEYwRjUKKzoxMDAwNjAwMEEzODBGNjkwRkRFOEE4ODI5MEZERThBOTgyRThDMzk5RjQKKzoxMDAwNzAwMDUwMDU3NjAwMDg4MEY2OTAwMEZGMTIwMEFBOTAwMTAzNTgKKzoxMDAwODAwMDEyMDBBQTkwMDEwNzEyMDBBQTkwMDEwQjEyMDBDODkwNUEKKzoxMDAwOTAwMDAxMTExMjAwQzg5MDAxMTcxMjAwQzg3NUQwMDAxMjMzNjgKKzoxMDAwQTAwMEM4MDIwMTFERUY2NTgyNzAwM0VFNjU4MzIyRTQ5M0Y4QjgKKzoxMDAwQjAwMDc0MDE5M0Y5NzQwMjkzRkU3NDAzOTNGNTgyOEU4M0U4QkUKKzoxMDAwQzAwMDY5NzAwMTIyRTQ5M0Y2QTMwODgwRjRFNDkzRkM3NDAxQzAKKzoxMDAwRDAwMDkzRkQ3NDAyOTNGRTc0MDM5M0ZGNzQwNDkzRjg3NDA1MDQKKzoxMDAwRTAwMDkzRjU4Mjg4ODMxMjAwQTE3MDAxMjJFNDkzQTNBODgzNzAKKzoxMDAwRjAwMEE5ODI4QzgzOEQ4MkYwQTNBQzgzQUQ4Mjg4ODM4OTgyQjAKKzoxMDAxMDAwMDgwRTMyMTIxMDQ5MjgwODAwNDkyQUNBRTA0OTJGREU4NDkKKzoxMDAxMTAwMDA0OTQwNDk0RkJGMzA0OTkwNDk0RkJGMzA0RjkwNEY5QTQKKzoxMDAxMjAwMDgwRkVEMEYwMzBGMDA5MjBGMzAzRjY4MDEwRjc4MDBENDgKKzoxMDAxMzAwMDMwRjEwOTIwRjMwM0YyODAwNEYzODAwMUYwMjBGNDA0OEQKKzoxMDAxNDAwMEZDRDBFMENDMjJDQ0MwRTAxMjAxNUEwMjAxNEJCQzAwMzIKKzoxMDAxNTAwMDA1RDBGMEFDRjAyMkMzMTNEQ0ZDMDIwMTIxQkYwMDA5ODIKKzoxMDAxNjAwMEVEMjU4Mjc1RjAwMUY4RTYyMkJGMDEwRkVEMjU4MkY1M0QKKzoxMDAxNzAwMDgyRUUzNTgzRjU4Mzc1RjAwNEUwMjJFRDI1ODI3NUYwN0IKKzoxMDAxODAwMDAyRjhFMjIyRDA4M0QwODJGNUYwQzNFNDkzQTNDNUYwNTUKKzoxMDAxOTAwMDk1RjBDMEUwQzNEMEYwRTQ5M0EzOTVGMDQwMTJBM0EzODAKKzoxMDAxQTAwMEMzRTVGMDMzNTAwMjA1ODMyNTgyRjU4MjUwMDIwNTgzQjIKKzoxMDAxQjAwMDc0MDE5M0MwRTBFNDkzQzBFMDIyRDA4M0QwODJGNUYwRDQKKzoxMDAxQzAwMEU0OTM3MDA5NzQwMTkzNzAwNEEzQTM4MDBDNzQwMjkzRTgKKzoxMDAxRDAwMDY1RjA2MDA1QTNBM0EzODBFNzc0MDE5M0MwRTBFNDkzRjYKKzoxMDAxRTAwMEMwRTAyMjEyMDI1QjAyMDFGMjEyMDJBRjAyMDFGMjEyMUYKKzoxMDAxRjAwMDAyRDMwMjAxRjIzMEUwMDcyMEUzMDJFNjIyRTcyMjMwRDgKKzoxMDAyMDAwMEUxMDcyMEUzMDJFMjIyRTMyMjMwRTIwMkUwMjJFNDkzNkIKKzoxMDAyMTAwMDIyMTIwMkQzMDIwMjFBMTIwMkFGMDIwMjFBQUJGMDEyMjkKKzoxMDAyMjAwMDAyMjRDQkM1RjBDQjIyMzBFMDEwMjBFMzA2RTZGNUYwNDcKKzoxMDAyMzAwMDA4RTYyMkU3RjVGMDA5RTcxOTIyMzBFMTEwMjBFMzA2OEQKKzoxMDAyNDAwMEUyRjVGMDA4RTIyMkUzRjVGMDA5RTMxOTIyMzBFMjA2RDQKKzoxMDAyNTAwMEUwRjVGMEEzRTAyMkU0OTNGNUYwNzQwMTkzMjJCQjAwRjMKKzoxMDAyNjAwMDAzNzQwOTIyQkIwMTA3ODk4MjhBODM3NDA0MjJCQjAyQkEKKzoxMDAyNzAwMDA3ODk4MjhBODM3NDEwMjI3NDBBMjIwMjAyN0JCQjAwREYKKzoxMDAyODAwMDA3RTkyNTgyRjg3NDAxMjJCQjAxMERFOTI1ODJGNTgyNzgKKzoxMDAyOTAwMEVBMzU4M0Y1ODM3NDA0MjJCQjAyMERFOTI1ODJGNTgyRDkKKzoxMDAyQTAwMEVBMzU4M0Y1ODM3NDEwMjJFOTI1ODJGODc0MDIyMjAyNkMKKzoxMDAyQjAwMDAyQUZCRjAwMDVFREY4NzQwMTIyQkYwMTA3OEQ4MjhFRTkKKzoxMDAyQzAwMDgzNzQwNDIyQkYwMjA3OEQ4MjhFODM3NDEwMjJFREY4OUUKKzoxMDAyRDAwMDc0MDIyMjAyMDJEM0JGMDAwN0VEMjU4MkY4NzQwMTIyQzYKKzoxMDAyRTAwMEJGMDEwREVEMjU4MkY1ODJFRTM1ODNGNTgzNzQwNDIyN0UKKzoxMDAyRjAwMEJGMDIwREVEMjU4MkY1ODJFRTM1ODNGNTgzNzQxMDIyNjEKKzoxMDAzMDAwMEVEMjU4MkY4NzQwMjIyMDIwMzA3QzBFMDEyMDI1QjAyQUMKKzoxMDAzMTAwMDAzMUZDMEUwMTIwMkFGMDIwMzFGQzBFMDEyMDJEMzAyQUIKKzoxMDAzMjAwMDAzMUYzMEUwMEIyMEUzMDREMEUwRjYyMkQwRTBGNzIyRjgKKzoxMDAzMzAwMDMwRTEwQjIwRTMwNEQwRTBGMjIyRDBFMEYzMjJEMEUwNjEKKzoxMDAzNDAwMEYwMjJDOUNEQzlDQUNFQ0FDQkNGQ0IxMjAzNTJFREY5MjgKKzoxMDAzNTAwMEVFRkFFRkZCMjJCQjAwMkZCRjAwMEFGQUVERjhFN0Y2M0EKKzoxMDAzNjAwMDA4MDlEQUZBMjJCRjAxMTI4RDgyOEU4M0Y4MDIwMzZGMjgKKzoxMDAzNzAwMDA5QTNFN0YwRDhGQTIyMDIwMzdBRkFFREY4RTdGMjA4QzcKKzoxMDAzODAwMDA5REFGQTIyMDIwMzg0QkIwMTREQkYwMDE0ODk4MjhBNzQKKzoxMDAzOTAwMDgzRjlFREY4MDIwMzk2MDhBM0UwRjZEOUZBMjIwMjAzRTYKKzoxMDAzQTAwMEE3QkYwMTIyOEQ4MjhFODNGQjA4QzlDNTgyQzlDQUM1MzkKKzoxMDAzQjAwMDgzQ0FFMEEzQzlDNTgyQzlDQUM1ODNDQUYwQTNEQkVBNjAKKzoxMDAzQzAwMEQ4RTgyMjAyMDNDQThEODI4RTgzRjlFREY4RTBGMjA4QTQKKzoxMDAzRDAwMEEzRDlGQTIyMDIwM0Q0QkIwMjREQkYwMDEyODk4MjhBM0MKKzoxMDAzRTAwMDgzRjlFREY4MDIwM0U2MDhBM0U0OTNGNkQ5RjkyMkJGRjYKKzoxMDAzRjAwMDAxMjM4RDgyOEU4M0ZCMDhDOUM1ODJDOUNBQzU4M0NBMDEKKzoxMDA0MDAwMEU0OTNBM0M5QzU4MkM5Q0FDNTgzQ0FGMEEzREJFOUQ4RUUKKzoxMDA0MTAwMEU3MjIwMjA0MTk4OTgyOEE4M0Y5RURGOEU0OTNGMjA4NEQKKzoxMDA0MjAwMEEzRDlGOTIyMDIwNDJBQkYwMDBERkFFREY4RTNGNjA4NzkKKzoxMDA0MzAwMDA5REFGQTIyMDIwNDM0QkYwMTEyOEQ4MjhFODNGODAyOTcKKzoxMDA0NDAwMDA0NDEwOUEzRTNGMEQ4RkEyMjAyMDQ0Q0ZBRURGOEUzRTAKKzoxMDA0NTAwMEYyMDgwOURBRkEyMjAyMDQ1NkU2RkIwOEU2RkEwOEU2OTAKKzoxMDA0NjAwMEY5MDRGNjE4NzAwMTA2MjJFNkZGMDhFNkZFMDhFNkZEMkMKKzoxMDA0NzAwMDIyRUZGMEEzRUVGMEEzRURGMDIyRUJGMEEzRUFGMEEzNUQKKzoxMDA0ODAwMEU5RjAyMkUwRkZBM0UwRkVBM0UwRkQyMkUwRkJBM0UwMTEKKzoxMDA0OTAwMEZBQTNFMEY5MjIwMDAwMDAwMDAwMDAwMDA0RjkwMDYxNjYKKzoxMDA0QTAwMDA1NjgwMDI2MDU4RjAwMzMwQTAwMDA2MTBBNkMwMDY2QUIKKzoxMDA0QjAwMDE1MUQwMDYxMENGMDAwNjEwOUEwMDA2MTA5RDcwMDYxMDEKKzoxMDA0QzAwMDBEQjcwMDYxMEJFODAwNjEwQTEzMDA2MTBBNDgwMDYxODIKKzoxMDA0RDAwMDE3MTUwMDMzMTcyODAwMzQxREY2MDA0MzFFQTEwMDQ0RjEKKzoxMDA0RTAwMDIwMEUwMDQ0MUZGQzAwNDcxRUM4MDA0NzFGNkQwMDREMzIKKzoxMDA0RjAwMDFGQkUwMDRGMUVFQTAwNTgzMjU2MDA2MTdDQ0M3REZGQzMKKzoxMDA1MDAwMDEyMUNBNzIyOTBGRkZDRTAyMEU3MkRDMkFGQUU1OUFGMkUKKzoxMDA1MTAwMDU4NzU1QTIwRTU1QTE0QzU1QTYwMTlFNEZFN0YwNUVFNTUKKzoxMDA1MjAwMDRGQ0UyNEZGQ0VDRjM0RkZDRjYwMDdFNDkwRkY5MkYwOTAKKzoxMDA1MzAwMDgwRUQ4MEUwOEU1OThGNTgyMjEyMDUwMTdEMDc3Q0I3MkYKKzoxMDA1NDAwMDEyMzI3MjdEMEY3QzZFMTIzMjhDNzg5RDdBMDZFNEY2NDAKKzoxMDA1NTAwMDA4REFGQzdBMDYxMjA1QzQ3QzAzMTIwRTRDMTIyMTRBRkEKKzoxMDA1NjAwMEU0RkVGRjdDMEYxMjMxRkJEMkE4MjIxMjMwRTZFNDkwQTkKKzoxMDA1NzAwMEZDMzhGMDkwRkZGMEUwMzBFNDA4NzQwMTkwRkMzOUYwQjIKKzoxMDA1ODAwMDgwMDVFNDkwRkMzOUYwN0QwQTdDMDAxMjI1MjYxMjMxQUEKKzoxMDA1OTAwMDY5MjIxMjMwRTY5MEZDMzlFMDE0NzAwRTkwRkZGMEUwMTIKKzoxMDA1QTAwMDQ0MTBGMDdDMDAxMjI1QkY4MDE5OTBGQzM5RTA3MDBFRDkKKzoxMDA1QjAwMDkwRkZGMEUwNTRFRkYwN0MwMDEyMjVCRjgwMDU3QzE3MUYKKzoxMDA1QzAwMDEyMjVCRjEyMzE2OTIyOTBGRkYwRTA1NEFCRjA5MEZGOEEKKzoxMDA1RDAwMEYwRTA0NDIwRjAyMjhDMzc4RDM2Nzg4MkVERjYwOEVDN0UKKzoxMDA1RTAwMEY2RURGRUVDRkQ3RjAxOTAwMDA1MTIwMUVDNzg4MEY2M0YKKzoxMDA1RjAwMDc4ODJFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA0NEMKKzoxMDA2MDAwMDEyMDFFQzU0MEZGQzdEODAxMjE3NDY3ODgwRTY3MDBEQzUKKzoxMDA2MTAwMEFEM0FBRTM5QUYzOEU0MTIwMzBGN0MwODIyOTBGRkYwRjgKKzoxMDA2MjAwMEUwNTRGRUYwOTBGRkYwRTA1NEZERjA4MDFFNzg4MkU2OEEKKzoxMDA2MzAwMEZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFQzUKKzoxMDA2NDAwMDI1RTA0NDAxOTBGRkYzRjAwMjA2RDA3ODgyRTZGRDA4MzEKKzoxMDA2NTAwMEU2RkNFREZFRUNGRDdGMDE5MDAwMDYxMjAyMEU1NEZFNUEKKzoxMDA2NjAwMDkwRkZGM0YwODAyQjc4ODJFNkZEMDhFNkZDRURGRUVDQ0YKKzoxMDA2NzAwMEZEN0YwMTkwMDAwODEyMDIwRUZBRUI5MEZGRjFGMDEyREMKKzoxMDA2ODAwMDA4QkY0MDBEQUQzQUFFMzlBRjM4RTQxMjAzMEY3QzE4MDUKKzoxMDA2OTAwMDIyNzg4MkU2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwOEQKKzoxMDA2QTAwMDA4MTIwMjBFOTBGRkYxRjAxMjA4QkY0MDBEQUQzQUFFRjUKKzoxMDA2QjAwMDM5QUYzOEU0MTIwMzBGN0MxODIyNzg4MkU2RkQwOEU2OTEKKzoxMDA2QzAwMEZDRURGRUVDRkQ3RjAxOTAwMDA2MTIwMjBFNDQwMTkwNEQKKzoxMDA2RDAwMEZGRjNGMDc4ODNFNjI0MDNGNjE4RTYzNDAwRjY3ODgwMUEKKzoxMDA2RTAwMEU2MjRGRTUwMDk5MEZGRjBFMDU0RkRGMDgwMDc5MEZGRjMKKzoxMDA2RjAwMEYwRTA0NDAyRjBFNDkwRkZGMUYwNzg4MTc2MDA3ODgwMzkKKzoxMDA3MDAwMEU2MjRGRkZDRTQzNEZGRkQ3ODgxRTY3RjAwRkVFQ0QzQjUKKzoxMDA3MTAwMDlFRUY2NDgwQ0Q2NDgwOUQ0MDJGMTIwOEE0NDAwRjc4MjYKKzoxMDA3MjAwMDgxRTZBRDNBQUUzOUFGMzgxMjAzMEY3QzE4MjI5MEZGNDQKKzoxMDA3MzAwMEYyRTBGQzc4ODI4NjgzMDg4NjgyRUNGMDc4ODEwNkEzNUEKKzoxMDA3NDAwMDc4ODJBNjgzMDhBNjgyODBCNTEyMDhBNDQwMEY3ODgxMUIKKzoxMDA3NTAwMEU2QUQzQUFFMzlBRjM4MTIwMzBGN0MxODIyOTBGRkYyQTMKKzoxMDA3NjAwMEUwRkM3ODgyODY4MzA4ODY4MkVDRjA3ODgwRTZBRDNBRjkKKzoxMDA3NzAwMEFFMzlBRjM4MTIwMzBGN0MwMDIyOEMzNzhEMzY3ODgyNjkKKzoxMDA3ODAwMEVERjYwOEVDRjZFREZFRUNGRDdGMDE5MDAwMDUxMjAxQTAKKzoxMDA3OTAwMEVDNzg4MUY2Nzg4MkU2RkQwOEU2RkNFREZFRUNGRDdGNjQKKzoxMDA3QTAwMDAxOTAwMDA0MTIwMUVDNTQwRkZDN0Q4MTEyMTc0Njc4NzEKKzoxMDA3QjAwMDgxRTY3MDAzN0MwODIyOTBGRkYwRTA1NEZFRjA5MEZGODkKKzoxMDA3QzAwMEYwRTA1NEZERjA4MDFCNzg4MkU2RkQwOEU2RkNFREZFQ0IKKzoxMDA3RDAwMEVDRkQ3RjAxOTAwMDA4MTIwMjBFMjVFMDkwRkZGM0YwN0YKKzoxMDA3RTAwMDgwNUI3ODgyRTZGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwODMKKzoxMDA3RjAwMDAwMDYxMjAyMEU1NEZFOTBGRkYzRjA4MDIxNzg4MkU2OEMKKzoxMDA4MDAwMEZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFRjMKKzoxMDA4MTAwMEZBRUI5MEZGRjFGMDEyMDhCRjQwMDM3QzE4MjI3ODgyQjcKKzoxMDA4MjAwMEU2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDgxMjAyRkIKKzoxMDA4MzAwMDBFOTBGRkYxRjAxMjA4QkY0MDAzN0MxODIyNzg4M0U2ODcKKzoxMDA4NDAwMDI0MEFGNjE4RTYzNDAwRjY3ODgwNzYwMDc4ODFFNjI0RUIKKzoxMDA4NTAwMEZGRkNFNDM0RkZGRDc4ODBFNjdGMDBGRUVDRDM5RUVGRTIKKzoxMDA4NjAwMDY0ODBDRDY0ODA5RDQwMjE3ODgyODY4MzA4ODY4MkUwMDIKKzoxMDA4NzAwMDkwRkZGMUYwMTIwOEJGNDAwMzdDMTgyMjc4ODAwNjc4QzAKKzoxMDA4ODAwMDgzMDZFNjE4NzAwMTA2ODBDMzkwRkZGMEUwNDQwMUYwOTMKKzoxMDA4OTAwMDc4ODI4NjgzMDg4NjgyRTA5MEZGRjFGMDEyMDhCRjQwREMKKzoxMDA4QTAwMDAzN0MxODIyN0MwMDIyOTBGRkYwRTAyMEU3MTI5MEZGRUEKKzoxMDA4QjAwMEYwRTAzMEU1MDk5MEZGRjBFMDQ0MjBGMEMzMjI4MEU3NEIKKzoxMDA4QzAwMEQzMjI5MEZGRjBFMDIwRTMxMjkwRkZGMEUwMzBFNTA5NDIKKzoxMDA4RDAwMDkwRkZGMEUwNDQyMEYwQzMyMjgwRTdEMzIyOEM0MjhEQzkKKzoxMDA4RTAwMDQxN0MwMEVENTRGMEZERUM3MDAzRUQ2NDMwNzAwNTc1NTMKKzoxMDA4RjAwMDNFMDM4MDAzNzUzRTA0QUMzRTEyMEY2OTc1ODMwMDg1OEMKKzoxMDA5MDAwMDgzNDBFNTQxNTQwRkY1M0ZFNTQwNzAwNEU1M0Y2NDAzNDMKKzoxMDA5MTAwMDcwMzVFNTNFMjRGRDc1RjAwQUE0MjQwMkY1ODJFNDM0MjYKKzoxMDA5MjAwMEZDRjU4M0UwMzBFNjA1MTIxMDRCODAxOUU1M0UyNDlENkUKKzoxMDA5MzAwMEY4QzY1NEZCRjY3OEE5RTYyNDA1RjU4MjE4RTYzNDAwREIKKzoxMDA5NDAwMEY1ODM3NDBGRjA4MDU5RTU0MDcwMDRFNTNGNjQwNDcwNEUKKzoxMDA5NTAwMDQ4RTUzRTI0RkQ3NUYwMEFBNDI0MDJGNTgyRTQzNEZDNDcKKzoxMDA5NjAwMEY1ODNFMDMwRTUwN0FDNDJBRDQxMTIxQzNDRTU0MjMwNzYKKzoxMDA5NzAwMEUyMTU3OEFERTYzMEUwMEY3OEFERTYzMEUxMDlFNEZGNEUKKzoxMDA5ODAwMDA0RkU3QzA0MTIzMUZCNzhBOUU2MjQwNkY1ODIxOEU2MDEKKzoxMDA5OTAwMDM0MDBGNTgzNzQwRkYwODAwN0U0RkM3REVFMTIxQzNDRkMKKzoxMDA5QTAwMEMyMDMyMjEyMzBFNjEyMEY2OTc4QTlFNjI0MDZGNTgyMDYKKzoxMDA5QjAwMDE4RTYzNDAwRjU4M0UwOTBGQzM4RjA3OEE5RTYyNDA1QzkKKzoxMDA5QzAwMEY1ODIxOEU2MzQwMEY1ODNFMDkwRkMzOUYwQzIwMzdEMkYKKzoxMDA5RDAwMDAyN0MwMDEyMjUyNjEyMzE2OTIyMTIzMEU2Nzg5NUVDNEQKKzoxMDA5RTAwMEY2RUMyNDlERjhFNjMwRTEwNzdDMTMxMjI1QkY4MDBGNUEKKzoxMDA5RjAwMDkwRkMzOUUwRkQ3ODk1RTZGQzEyMTNDODEyMjVCRjEyNzEKKzoxMDBBMDAwMDMxNjkyMjEyMzBFNjc4OTVFQ0Y2N0QwMDEyMEYwOTEyNUEKKzoxMDBBMTAwMDI1QkYxMjMxNjkyMjEyMzBFNjc4OTVFQ0Y2RUMyNDlENjAKKzoxMDBBMjAwMEY4RTYzMEUyMDc3QzEzMTIyNUJGODAxQjc4OTVFNjI0OTgKKzoxMDBBMzAwMDlERjhFNjIwRTEwNzdDMTIxMjI1QkY4MDBBNzg5NUU2MzIKKzoxMDBBNDAwMEZDMTIxM0VDMTIyNUJGMTIzMTY5MjIxMjMwRTY3ODk1QTAKKzoxMDBBNTAwMEVDRjZFQzI0OURGOEU2MjBFMjA3N0MxMTEyMjVCRjgwMUQKKzoxMDBBNjAwMDBBNzg5NUU2RkMxMjE0RUQxMjI1QkYxMjMxNjkyMjEyQTQKKzoxMDBBNzAwMDMwRTY3ODk1RUNGNjEyMEY2OTc4QTlFNjI0MDlGNTgyM0MKKzoxMDBBODAwMDE4RTYzNDAwRjU4M0UwOTBGQzNGRjA3OEE5RTYyNDBBRUMKKzoxMDBBOTAwMEY1ODIxOEU2MzQwMEY1ODNFMDkwRkM0MEYwNzhBOUU2OTIKKzoxMDBBQTAwMDI0MDNGNTgyMThFNjM0MDBGNTgzRTBGQzc4QTlFNjI0RjcKKzoxMDBBQjAwMDA0RjU4MjE4RTYzNDAwRjU4M0UwRjU2Mjc4QTlFNjI0QUYKKzoxMDBBQzAwMDAyRjU4MjE4RTYzNDAwRjU4M0UwRjU2MzhDNjFFNEVDMEUKKzoxMDBBRDAwMDMzMzM1NDAxNzg5NUY2NjAwOEU1NjIzMEUxMDM3ODk1ODgKKzoxMDBBRTAwMDA2Nzg5NUU2OTBGQzQxRjA3OEE3RTYyNDAyRjU4MjE4OTYKKzoxMDBBRjAwMEU2MzQwMEY1ODNFMEZEQTNFMDU0MENGQ0VENTRFNjhDRjUKKzoxMDBCMDAwMDY1RjU2NEU1NjEzMEU1MDM0MzY1MDFFNTYyMjBFNTBFQzYKKzoxMDBCMTAwMEU1NjE1NDdGNzAwOEU1NjEyMEU3MDM0MzY1MDJFNTYxMDQKKzoxMDBCMjAwMDMwRTMwMzQzNjUxMEU1NjEzMEUyMDM0MzY1MjBFNTYxOEUKKzoxMDBCMzAwMDU0MDM2MDAzNDM2NTQwRTU2MTMwRTEwMzQzNjU4MEU1QUMKKzoxMDBCNDAwMDYxMzBFNDAzNDM2NDAxRTU2MTMwRTYwMzQzNjQwOEU1OTIKKzoxMDBCNTAwMDYyMjBFNDBFRTU2MTU0N0Y3MDA4RTU2MTIwRTcwMzQzRkQKKzoxMDBCNjAwMDY0MTA1MzY1RkI1MzY0NzlBRDY0RTU2NTkwRkMzQUNENDAKKzoxMDBCNzAwMEYwQTNDREYwRTU2MzMwRTMwREU1NjM1NDMwQzQ1NDBGQ0EKKzoxMDBCODAwMDkwRkMzREYwODAwNUU0OTBGQzNERjBFNTYzNTQwMzkwNUIKKzoxMDBCOTAwMEZDM0NGMEU1NjM1NDA0QzMxMzkwRkMzRUYwOTBGQzNDMzUKKzoxMDBCQTAwMEUwNzAwRTdEMzU3RUZDN0YwMTc0MDE5MDAwMDkxMjAxMUEKKzoxMDBCQjAwMDQyNzhBOUU2MjQwOEY1ODIxOEU2MzQwMEY1ODNFMDdDNDMKKzoxMDBCQzAwMDAwRkQ3OEE5RTYyNDA3RjU4MjE4RTYzNDAwRjU4M0UwRjUKKzoxMDBCRDAwMDdGMDA0Q0ZFRUY0RDkwRkMzOEYwQTNDRUYwQ0VDMjAzNjgKKzoxMDBCRTAwMDdEMEE3QzAwMTIyNTI2MTIzMTY5MjIxMjMwRTY3ODk1QTIKKzoxMDBCRjAwMEVDRjY3ODlBNzYwMTA4NzZGQzA4NzYzODc4OTc3NjBDQzkKKzoxMDBDMDAwMDc4OUExMjA0NjUxMjAyMTQ3ODk4Q0JGNkNCMDhGNjdGMTYKKzoxMDBDMTAwMDAwRUYyNEVBNDAxRkU0RUYyNUUwOTAzNTJDRkQ5M0NENTIKKzoxMDBDMjAwMDA0OTM3ODk5NjY3MDAzRUQxODY2NzAwNjc4OTc3NjAwREQKKzoxMDBDMzAwMDgwMDMwRjgwREM3ODk2RUZGNjc4OUExMjA0NjU5MDAwQjYKKzoxMDBDNDAwMDAyMTIwMjBFNzg5OENCRjZDQjA4RjY1NDA0Q0I1NDg2RTkKKzoxMDBDNTAwMDRCNjAwNDc4OTc3NjBCNzg5OUU2MzBFMzEzNzg5QTEyMTQKKzoxMDBDNjAwMDA0NjU5MDAwMDUxMjAxRUMyNEZCNTAwNDc4OTc3NjBEODIKKzoxMDBDNzAwMDc4OTlFNjU0QzA3RDAwNjRDMDRENzAwNDc4OTc3NjBCNzcKKzoxMDBDODAwMDc4OUExMjA0NjU5MDAwMDQxMjAxRUMyNEZDNTAwNDc4NTgKKzoxMDBDOTAwMDk3NzYwRjc4OUExMjA0NjU5MDAwMDYxMjAxRUMyNEZERjUKKzoxMDBDQTAwMDUwMDQ3ODk3NzYwRTc4OUExMjA0NjU5MDAwMDkxMjAxMjQKKzoxMDBDQjAwMEVDMjRGRDUwMDQ3ODk3NzYwQTc4OTdFNjcwMkE3ODk1QTgKKzoxMDBDQzAwMEU2RkMxMjBGNjk3ODlBMTIwNDY1NzhBN0U2Rjk3OEE2MEYKKzoxMDBDRDAwMEU2RkE3QjAxNzQwQTc4MDAxMjAzM0ZDMjAzNzg5NUU2QjYKKzoxMDBDRTAwMEZDMTIxMTA3Nzg5N0VDRjY3ODk3RTZGQzEyMjVCRjEyRjQKKzoxMDBDRjAwMDMxNjkyMjEyMzBFNjc4OTVFQ0Y2MTIwRjY5Nzg5NUU2QTQKKzoxMDBEMDAwMDI0RkQ3NUYwMEFBNDI0MTRGNTgyRTQzNEZDRjU4M0FDQzgKKzoxMDBEMTAwMDgyQUQ4Mzc4QTY4NjgzMDg4NjgyRUNGOUVERkE3QjBBOTkKKzoxMDBEMjAwMDc4MDExMjAzQTdDMjAzNzg5NUU2RkMxMjExMDcxMjMxNkQKKzoxMDBEMzAwMDY5MjI4RDJCOEMyQUVENjA0MDc1MjcwMTc1Mjk0ODc1MzUKKzoxMDBENDAwMDI4RkZFNTJBMjRGREZDRTQzNEZGRkRFQzdDMDMyNUUwQ0MKKzoxMDBENTAwMENEMzNDRERDRjlGQ0U1MjkyQ0Y1MjlFNTI4M0RGNTI4MzYKKzoxMDBENjAwMEFEMjlBRTI4QUYyNzc0ODA5MDAwMDYxMjAzMTc3NDgwNTcKKzoxMDBENzAwMDkwMDAwMjEyMDMxNzEyMEZCN0U1MkIxNDYwM0I3NTI3ODIKKzoxMDBEODAwMDAxNzUyOTA4NzUyOEZGRTUyQTI0RkRGQ0U0MzRGRkZERTAKKzoxMDBEOTAwMEVDN0MwMzI1RTBDRDMzQ0REQ0Y5RkNFNTI5MkNGNTI5RUQKKzoxMDBEQTAwMEU1MjgzREY1MjhBRDI5QUUyOEFGMjdFNDkwMDAwNjEyQ0UKKzoxMDBEQjAwMDAzMTdFNDkwMDAwMjEyMDMxNzIyMTIzMEU2Nzg5NUVDMzQKKzoxMDBEQzAwMEY2RUMyNDlERjhFNjMwRTIwOTc4OTVFNkZDMTIxNEVEODUKKzoxMDBERDAwMEQyMDA3ODk1RTZGQzEyMEY2OTc4OTY3NjAwOTBGQzM5N0YKKzoxMDBERTAwMEUwMzBFNzA0Nzg5Njc2MDE3ODk2RTZGRDc4OTVFNkZDQTMKKzoxMDBERjAwMDEyMEQyRkMyMDMzMDAwMDc3ODk1RTZGQzEyMTNFQzdDMkQKKzoxMDBFMDAwMDAwMTIyNUJGMTIzMTY5MjI3OEE5RTYyNDA0RjU4MjE4NjAKKzoxMDBFMTAwMEU2MzQwMEY1ODNFMDQ0MDFGMDc4QTlFNjI0MDRGNTgyODUKKzoxMDBFMjAwMDE4RTYzNDAwRjU4M0UwMzBFMDAyODBFRDc4QTlFNjI0OEUKKzoxMDBFMzAwMDBCRjU4MjE4RTYzNDAwRjU4M0UwNTRGOEYwNzhBOUU2NjMKKzoxMDBFNDAwMDI0MDJGNTgyMThFNjM0MDBGNTgzRTA0NDgwRjAyMkMyRTMKKzoxMDBFNTAwMDAzOEM1ODEyMEY2OTc4QTY4NjgzMDg4NjgyNzk1RDdBOUEKKzoxMDBFNjAwMDM1N0IwQTc4MDExMjAzRjUxMjBFMDVBQzU4N0QwMjEyOEIKKzoxMDBFNzAwMDBEMkZDMjAzQUM1ODEyMTEwNzIyOEQ1MzhFNTI4RjUxODEKKzoxMDBFODAwMDhDNTAxMjBGNjk3NTRGMDA3OEE5RTYyNDA1RjU4MjE4NzkKKzoxMDBFOTAwMEU2MzQwMEY1ODNFMDIwRTQxRkU1NEYyNEY2NDAxOTA1MTEKKzoxMDBFQTAwMDRGQzIwMzdDMTgxMjMyQTk5MEZGOTNFMDQ0MDFGMEIyQzQKKzoxMDBFQjAwMEIzQUM1MDEyMEY2OTgwRDA3OEE5RTYyNDA1RjU4MjE4RUEKKzoxMDBFQzAwMEU2MzQwMEY1ODNFMDIwRTQwNUMyMDM3QzAyMjI3OEE5MjEKKzoxMDBFRDAwMEU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDU0MEY2MDE2MjkKKzoxMDBFRTAwMDc4QTlFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTA1NDBGNkUKKzoxMDBFRjAwMEYwQzIwMzdDMDEyMjc4QTg4NjgzMDg4NjgyRTBBRDUzODUKKzoxMDBGMDAwMEFFNTJBRjUxMTIwMzBGQzIwMzdDMDAyMjhEMzE4QzMwRTAKKzoxMDBGMTAwMDEyMTRFREU1MzE2MDBGRTUzMEI0MDMwQTdDMDExMjI0QjAKKzoxMDBGMjAwMEVFN0M4MTEyMjRFRUFDMzAxMjBGNjlFNTMxNjAxQTc4NDQKKzoxMDBGMzAwMEFBODY4MzA4ODY4MkUwNTRFN0YwQTNBM0EzQTNFMDU0MjMKKzoxMDBGNDAwMEU3RjBBQzMwN0QwMjEyMEQyRjc4QTY4NjgzMDg4NjgyRUEKKzoxMDBGNTAwMDc5Njc3QTM1N0IwQTc4MDExMjAzRjVDMjAzRTUzMDI0RkMKKzoxMDBGNjAwMDlERjhDNjU0RkRGNkFDMzAxMjExMDcyMjhDMjYzMDAzRDIKKzoxMDBGNzAwMDA1MTIzMjQ4ODBGODdDMEExMjMxNUJEMjAzRTUyNjI0NDAKKzoxMDBGODAwMEZENzhBM0Y2NzAwNzc4QUE3NkZGMDg3NkUwNzhBM0U2RTYKKzoxMDBGOTAwMDc1RjAxMEE0QURGMEZDMjRBMDc4QTlGNkVEMzRGRjE4OEMKKzoxMDBGQTAwMEY2NzhBM0U2NzVGMDBBQTQyNDAwRkNFNDM0RkNGRDc4OEUKKzoxMDBGQjAwMEE2RURGNjA4RUNGNjEyMzFGNDIyNzhBOUU2MjQwMkY1NDMKKzoxMDBGQzAwMDgyMThFNjM0MDBGNTgzRTAzMEU3MjI3OEE5RTYyNDAyQUYKKzoxMDBGRDAwMEY1ODIxOEU2MzQwMEY1ODNFMDU0N0ZGMDc4QTlFNjI0MjIKKzoxMDBGRTAwMDAyRjU4MjE4RTYzNDAwRjU4M0UwNDQ4MEYwMjI3OEFBMDYKKzoxMDBGRjAwMDg2ODMwODg2ODJFMDU0N0ZGMEFEODNFNTgyMjQwNEZDN0EKKzoxMDEwMDAwMEU0M0Q4QzgyRjU4M0UwNTQ3RkYwNzhBOUU2MjQwQkY1NkIKKzoxMDEwMTAwMDgyMThFNjM0MDBGNTgzRTA1NEY4RjA3OEFCRTYyNDAxNUEKKzoxMDEwMjAwMEY1ODIxOEU2MzQwMEY1ODNFMDQ0MDNGMDc4QUJFNjI0NUIKKzoxMDEwMzAwMDA1RjU4MjE4RTYzNDAwRjU4M0UwNDQwM0YwNzhBOUU2NkMKKzoxMDEwNDAwMDI0MDVGNTgyMThFNjM0MDBGNTgzNzQwRkYwMjI3OEFBOUYKKzoxMDEwNTAwMDg2ODMwODg2ODJFMDU0M0ZGMEFEODNFNTgyMjQwNEZDNTkKKzoxMDEwNjAwMEU0M0Q4QzgyRjU4M0UwNTQzRkYwNzhBM0U2MjRBNEY4QjUKKzoxMDEwNzAwMEU2RkM3OEFCRTYyNDAxRjU4MjE4RTYzNDAwRjU4M0VDNTMKKzoxMDEwODAwMEYwNzhBM0U2MjRBNEY4RTZGQzc4QUJFNjI0MDVGNTgyMjQKKzoxMDEwOTAwMDE4RTYzNDAwRjU4M0VDRjA3OEE5RTYyNDBCRjU4MjE4MDUKKzoxMDEwQTAwMEU2MzQwMEY1ODNFMDU0RkI0NDAyRjUyNjc4QTdFNjI0RjUKKzoxMDEwQjAwMDAyRjU4MjE4RTYzNDAwRjU4M0UwMzBFNTAzNDMyNjAxQUIKKzoxMDEwQzAwMDc4QTlFNjI0MDVGNTgyMThFNjM0MDBGNTgzRTAzMEUwREYKKzoxMDEwRDAwMDAzMTIwRkI3RTUyNkZDNzhBOUU2MjQwQkY1ODIxOEU2ODMKKzoxMDEwRTAwMDM0MDBGNTgzRUNGMDc4QTlFNjI0MDVGNTgyMThFNjM0OUYKKzoxMDEwRjAwMDAwRjU4Mzc0MEZGMDc4QUE4NjgzMDg4NjgyRTA0NDgwMjYKKzoxMDExMDAwMEYwQTNBM0EzQTNFMDQ0ODBGMDIyOEMyQTEyMEY2OTc4RjUKKzoxMDExMTAwMEE3RTYyNDA4RjU4MjE4RTYzNDAwRjU4M0UwRkM3OEE5RjgKKzoxMDExMjAwMEU2MjQwQUY1ODIxOEU2MzQwMEY1ODNFQ0YwNzhBN0U2QTkKKzoxMDExMzAwMDI0MDdGNTgyMThFNjM0MDBGNTgzRTBGQzc4QTlFNjI0NUMKKzoxMDExNDAwMDA5RjU4MjE4RTYzNDAwRjU4M0VDRjA3OEE2ODY4MzA4NkEKKzoxMDExNTAwMDg2ODJFMEZEQTNFMEZDRURGRTc4QTlFNjI0MDhGNTgyOTYKKzoxMDExNjAwMDE4RTYzNDAwRjU4M0VFRjBFQ0ZFNzhBOUU2MjQwN0Y1RTYKKzoxMDExNzAwMDgyMThFNjM0MDBGNTgzRUVGMDhDMjk4RDI4QzNFQzk0QjgKKzoxMDExODAwMDA1RUQ5NDBDNDAwNTc1Mjc3QzgwMzNEM0U1Mjk5NDAxNDcKKzoxMDExOTAwMEU1Mjg5NDAzNDAwNTc1MjczQzgwMjNEM0U1Mjk5NDgxRjUKKzoxMDExQTAwMEU1Mjg5NDAxNDAwNTc1MjcxODgwMTNEM0U1Mjk5NDYwM0MKKzoxMDExQjAwMEU1Mjg5NDAwNDAwNTc1MjcwQzgwMDM3NTI3MDhBRjI3QTQKKzoxMDExQzAwMEU0RUY1NDdDNDQ4M0ZGOEYyN0U1MjdGQzc4QUJFNjI0Q0IKKzoxMDExRDAwMDAxRjU4MjE4RTYzNDAwRjU4M0VDRjBFNTI3RkM3OEFCRTYKKzoxMDExRTAwMEU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFQ0YwRTUyN0ZDRUIKKzoxMDExRjAwMDc4QTNFNjI0QTRGOEVDRjY3OEE5RTYyNDAyRjU4MjE4OTAKKzoxMDEyMDAwMEU2MzQwMEY1ODNFMEY1Mjc3OEE3RTYyNDAyRjU4MjE4OTYKKzoxMDEyMTAwMEU2MzQwMEY1ODNBM0UwMzBFMzE3NTMyN0M3NzhBN0U2NDkKKzoxMDEyMjAwMDI0MDVGNTgyMThFNjM0MDBGNTgzRTA5MDM1NTg5MzQyQTIKKzoxMDEyMzAwMDI3NTMyN0ZCNzhBN0U2MjQwNkY1ODIxOEU2MzQwMEY1NDUKKzoxMDEyNDAwMDgzRTA2MDAzNDMyNzA0NTMyN0ZDNzhBN0U2MjQwNEY1RDIKKzoxMDEyNTAwMDgyMThFNjM0MDBGNTgzRTA0MjI3NDMyNzgwRTUyN0ZDMjcKKzoxMDEyNjAwMDc4QTlFNjI0MDJGNTgyMThFNjM0MDBGNTgzRUNGMDc4REMKKzoxMDEyNzAwMEE5RTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwRjUyNzc4MjIKKzoxMDEyODAwMEE3RTYyNDAyRjU4MjE4RTYzNDAwRjU4M0EzRTAzMEUxRjYKKzoxMDEyOTAwMDA1NTMyN0RGODAwMzQzMjcyMDc4QTdFNjI0MDJGNTgyNDEKKzoxMDEyQTAwMDE4RTYzNDAwRjU4M0UwMzBFNDA1NTMyN0VGODAwMzQzNkMKKzoxMDEyQjAwMDI3MTA3OEE3RTYyNDA5RjU4MjE4RTYzNDAwRjU4M0UwQzQKKzoxMDEyQzAwMEI0MDIwMzQzMjcwMkU1MjdGQzc4QTlFNjI0MDRGNTgyNEIKKzoxMDEyRDAwMDE4RTYzNDAwRjU4M0VDRjA3OEE5RTYyNDAzRjU4MjE4Q0IKKzoxMDEyRTAwMEU2MzQwMEY1ODNFMEY1Mjc3OEE3RTYyNDA5RjU4MjE4QUYKKzoxMDEyRjAwMEU2MzQwMEY1ODNFMDcwMDU1MzI3N0Y4MDAzNDMyNzgwQTEKKzoxMDEzMDAwMDc4QTdFNjI0MDJGNTgyMThFNjM0MDBGNTgzQTNFMDMwREUKKzoxMDEzMTAwMEUwMDU0MzI3MjA4MDAzNTMyN0RGNzhBN0U2MjQwMkY1NjIKKzoxMDEzMjAwMDgyMThFNjM0MDBGNTgzRTAzMEUzMDU0MzI3NDA4MDAzNkMKKzoxMDEzMzAwMDUzMjdCRjc4QTdFNjI0MDJGNTgyMThFNjM0MDBGNTgzMjgKKzoxMDEzNDAwMEUwMzBFMDA1NDMyNzEwODAwMzUzMjdFRjc4QTdFNjI0MTkKKzoxMDEzNTAwMDAyRjU4MjE4RTYzNDAwRjU4M0EzRTAzMEU0MDU0MzI3NjQKKzoxMDEzNjAwMDA4ODAwMzUzMjdGNzc4QTdFNjI0MDJGNTgyMThFNjM0QUQKKzoxMDEzNzAwMDAwRjU4M0EzRTAzMEU1MDU0MzI3MDQ4MDAzNTMyN0ZCRjIKKzoxMDEzODAwMDc4QTdFNjI0MDJGNTgyMThFNjM0MDBGNTgzQTNFMDMwNUUKKzoxMDEzOTAwMEU2MDU0MzI3MDE4MDAzNTMyN0ZFNzhBN0U2MjQwMkY1REMKKzoxMDEzQTAwMDgyMThFNjM0MDBGNTgzQTNFMDMwRTcwNTQzMjcwMjgwODYKKzoxMDEzQjAwMDAzNTMyN0ZERTUyN0ZDNzhBOUU2MjQwM0Y1ODIxOEU2MDgKKzoxMDEzQzAwMDM0MDBGNTgzRUNGMEMyMDM3QzAwMjI4RDI3OEMyNkVEREYKKzoxMDEzRDAwMDU0MDMxNDYwMDM3QzEwMjJFNTI3NTQ3QzI0RkM0MDAzNTIKKzoxMDEzRTAwMDdDMEIyMkU1MjYyNDlERjhDNjQ0MDJGNjdDMDAyMjhDNjQKKzoxMDEzRjAwMDMwMTIwRjY5RTUzMDI0OURGOEU2MjBFMjRGQUMzMDdERDUKKzoxMDE0MDAwMDAyMTIwRDJGRTUzMDI0RkU0NDI4RkM3OEFBODY4MzA4QkEKKzoxMDE0MTAwMDg2ODJFQ0YwQUY4M0U1ODIyNDA0RkVFNDNGRkZFQzhFOEQKKzoxMDE0MjAwMDgyOEY4M0YwN0MwMzhDMkNFNTJDRkM3OEFCRTYyNDAxQzYKKzoxMDE0MzAwMEY1ODIxOEU2MzQwMEY1ODNFQ0YwRTUyQ0ZDNzhBQkU2OTkKKzoxMDE0NDAwMDI0MDVGNTgyMThFNjM0MDBGNTgzRUNGMDc1MkQwMTc1NUUKKzoxMDE0NTAwMDJGNDg3NTJFRkZFNTMwMjRGREZDRTQzNEZGRkRFQzdDQzUKKzoxMDE0NjAwMDAzMjVFMENEMzNDRERDRjlGQ0U1MkYyQ0Y1MkZFNTJFNUYKKzoxMDE0NzAwMDNERjUyRTc4QUJFNjI0MDRGNTgyMThFNjM0MDBGNTgzQkEKKzoxMDE0ODAwMEUwNTRFN0Y1MkNBRDJGQUUyRUFGMkRFNDkwMDAwMjEyMDQKKzoxMDE0OTAwMDAzMTdFNDkwMDAwNjEyMDMxNzEyMDFFNjMwRTUwMzQzMzgKKzoxMDE0QTAwMDJDMTBFNTJDRkM3OEFCRTYyNDA0RjU4MjE4RTYzNDAwMTkKKzoxMDE0QjAwMEY1ODNFQ0YwMTIxMDRCNzhBOUU2MjQwNkY1ODIxOEU2QzUKKzoxMDE0QzAwMDM0MDBGNTgzRTBDMjAzRkNFNTMwMjQ5REY4QzY0NDA0RjMKKzoxMDE0RDAwMEY2OEMyQ0U1MzA1NDBGQzQ1NEYwN0UwMEZGRUVFRjQ0NDAKKzoxMDE0RTAwMDA0N0QwMEZGRUM0RUZDRUQ0RkZEMTIxQ0E3N0MwMDIyOUEKKzoxMDE0RjAwMDhDMkYxMjBGNjkxMjBGRUI3OEFBODY4MzA4ODY4MkUwODAKKzoxMDE1MDAwMDU0MDhGMEEzQTNBM0EzRTA1NDA4RjBBQzJGN0QwMjEyNkIKKzoxMDE1MTAwMDBEMkZDMjAzRTUyRjI0OURGOEM2NTRGQkY2N0MwMDIyNTQKKzoxMDE1MjAwMDEyMzBFNjc4OTZFQ0Y2RUMyNDlERjhFNjMwRTEwQTdEODAKKzoxMDE1MzAwMDAwN0MxMzEyMjUyNjEyMzE2OTc4OTZFNjI0OURGOEM2QTAKKzoxMDE1NDAwMDQ0MDFGNjc4OTZFNkZDMTIwRjY5Nzg5NkU2MjRGRDc1NUMKKzoxMDE1NTAwMEYwMEFBNDI0MTRGNTgyRTQzNEZDRjU4Mzc4QTZFNkZBQjQKKzoxMDE1NjAwMDA4RTZGOTdCMEE3ODAxMTIwM0E3NzhBNjg2ODMwODg2MjUKKzoxMDE1NzAwMDgyNzk2NzdBMzU3QjBBNzgwMTEyMDNGNTEyMEZCN0MyQjgKKzoxMDE1ODAwMDAzNzg5NkU2RkMxMjExMDc3ODk1RUNGNkVDNjAwQTdEN0MKKzoxMDE1OTAwMDAwN0MwODEyMjUyNjEyMzE2OTc4OTZFNkZDMTIwRjY5NDQKKzoxMDE1QTAwMDc4QTlFNjI0MDRGNTgyMThFNjM0MDBGNTgzRTA0NDEwQjcKKzoxMDE1QjAwMDU0REZGQzc4QTlFNjI0MDRGNTgyMThFNjM0MDBGNTgzQUMKKzoxMDE1QzAwMEVDRjA3ODk1RUNGNkMyMDM3Q0M4MTIzMkE5Nzg5NkU2NjYKKzoxMDE1RDAwMEZDMTIwRjY5NzhBOUU2MjQwNEY1ODIxOEU2MzQwMEY1QjgKKzoxMDE1RTAwMDgzRTA1NEVGRjBDMjAzN0NDODEyMzJBOTc4OTZFNkZDN0YKKzoxMDE1RjAwMDEyMEY2OTc4QTlFNjI0MDRGNTgyMThFNjM0MDBGNTgzMTEKKzoxMDE2MDAwMEUwNDQxMEYwQzIwMzdDQzgxMjMyQTk3ODk2RTZGQzEyQkUKKzoxMDE2MTAwMDBGNjk3OEE5RTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwMjIKKzoxMDE2MjAwMDQ0MjBGMEMyMDM3Q0YwMTIzMkE5Nzg5NkU2RkMxMjBGMzcKKzoxMDE2MzAwMDY5NzhBOUU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDMwRTAKKzoxMDE2NDAwMEU0MTVDMjAzNzg5NkU2NDQxMDdGMDBGRTdDMDcxMjMxNTEKKzoxMDE2NTAwMEZCMTIzMTY5MDIxNzE0NzhBOUU2MjQwNEY1ODIxOEU2MTIKKzoxMDE2NjAwMDM0MDBGNTgzRTA1NENGRjBDMjAzN0NDODEyMzJBOTc4NkQKKzoxMDE2NzAwMDk2RTZGQzEyMEY2OTc4QTlFNjI0MDRGNTgyMThFNjM0OTAKKzoxMDE2ODAwMDAwRjU4M0UwNDQzMEYwQzIwMzdDRjAxMjMyQTk3ODk2NzIKKzoxMDE2OTAwMEU2RkMxMjBGNjk3OEE5RTYyNDA1RjU4MjE4RTYzNDAwMDUKKzoxMDE2QTAwMEY1ODNFMDMwRTQxNEMyMDM3ODk2RTY0NDEwN0YwMEZFMzAKKzoxMDE2QjAwMDdDMDcxMjMxRkIxMjMxNjk4MDVENzhBOUU2MjQwNEY1QkMKKzoxMDE2QzAwMDgyMThFNjM0MDBGNTgzRTA1NEVGRjA3OEE5RTYyNDA0QUMKKzoxMDE2RDAwMEY1ODIxOEU2MzQwMEY1ODNFMDU0REZGMDc4OTZFNjI0Q0UKKzoxMDE2RTAwMEZENzVGMDBBQTQyNDE0RjU4MkU0MzRGQ0Y1ODNBQzgyODEKKzoxMDE2RjAwMEFEODM3OEE2ODY4MzA4ODY4MkVDRjlFREZBN0IwQTc4QkEKKzoxMDE3MDAwMDAxMTIwM0E3QzIwMzc4OTZFNkZDMTIxMTA3N0QwMDdDNDQKKzoxMDE3MTAwMDBCMTIyNTI2MTIzMTY5MjIxMjMwRTZFNDkwRkMzOUYwRDIKKzoxMDE3MjAwMDdEMDI3QzAwMTIyNTI2MTIzMTY5MjIxMjMwRTY3QzAwRUYKKzoxMDE3MzAwMDEyMjVCRjEyMzE2OTIyNzQzQzkwRkJFMEYwNzQzRTkwOTgKKzoxMDE3NDAwMEZCRTBGMEU0OTBGQzI4RjAyMjhEMzU4QzM0RUNCNDAxMDEKKzoxMDE3NTAwMDAyODAwM0QzNDAwMjgwMjhCNDAyMDI4MDAzRDM0MDA4RjEKKzoxMDE3NjAwMEE4MzVDNjI1RTBGNjgwMThCNDA0MDI4MDAzRDM0MDBBRTkKKzoxMDE3NzAwMEE4MzVDNjI1RTAyNUUwRjY4MDA2QTgzNTc2MDA4MDAwNkQKKzoxMDE3ODAwMDIyOEMzQzhEM0JFREZFRUNGRDdGMDE3NTY2MDY3NTY3OTYKKzoxMDE3OTAwMDAwOTBGQzI5MTIwNDZFMTIwMUU2QjQ4MDAyODAwNkQzODgKKzoxMDE3QTAwMDUwMDMwMjE4NDc5MEZDMjkxMjA0ODA5MDAwMDMxMjAxOTQKKzoxMDE3QjAwMEVDNTRGMEI0MzAwMjgwMDNEMzQwNUY5MEZDMjkxMjA0NTMKKzoxMDE3QzAwMDgwOTAwMDA4MTIwMjBFRkFGREVCRkU3RjAxOTBGQzJDQzcKKzoxMDE3RDAwMDEyMDQ2RUVFQ0Q5MDM1NzFGQ0U0OTNGRjc0MDE5M0ZFMUMKKzoxMDE3RTAwMEY5RUZGQTdCMDFFQUZGRTlGRUVDQzM5RUVEOUY0MDI1OEQKKzoxMDE3RjAwMDkwMzU3M0U0OTNGRDc0MDE5M0ZDRURGRUVDRkQ3RjAxRTUKKzoxMDE4MDAwMEVFQ0RGQzkwRkMyRUUwRDM5QzkwRkMyREUwOUQ1MDA1OEQKKzoxMDE4MTAwMDc1NjY4MDgwMzMxMjE5NjU4MDJFQjQ2MDAyODAwM0QzMTAKKzoxMDE4MjAwMDQwMEJBQzNDQUQzQjEyMDc3NzhDNjY4MDFCQjQxMDAzQjkKKzoxMDE4MzAwMEIzNDAxMEMzQjQyMDAzQjM0MDA5QzNCNDQwMDI4MDAzRDMKKzoxMDE4NDAwMEQzNDAwMDc1NjY4MTgwMDA4MDc1QjQ4MTAyODAwM0QzMjcKKzoxMDE4NTAwMDQwNkI5MEZDMjkxMjA0ODA5MDAwMDMxMjAxRUM1NEYwQkMKKzoxMDE4NjAwMEI0MzAwMjgwMDNEMzQwMUQ5MEZDMjkxMjA0ODA5MDAwMDQKKzoxMDE4NzAwMDA4MTIwMjBFRkFGREVCRkU3RjAxOTBGQzJGMTIwNDZFOUYKKzoxMDE4ODAwMDEyMThDRjgwMzZCNDYwMDI4MDAzRDM0MDEzNzUzQTY3RDQKKzoxMDE4OTAwMEU0RjUzOUY1MzhBQzNDQUQzQjEyMDVEMzhDNjY4MDFCQzIKKzoxMDE4QTAwMEI0MTAwM0IzNDAxMEMzQjQyMDAzQjM0MDA5QzNCNDQwMjEKKzoxMDE4QjAwMDAyODAwM0QzNDAwMDc1NjY4MTgwMDA4MDAyODAwMEU1Q0QKKzoxMDE4QzAwMDY2RkM5MEZDMjkxMjA0ODBFQzkwMDAwMjEyMDMxN0FDMTUKKzoxMDE4RDAwMDY3MjI5MEZDMjkxMjA0ODA5MDAwMDQxMjAxRUM2MDA0M0QKKzoxMDE4RTAwMDc0MDE4MDAxRTRBMkUwOTIwMTkwRkMyOTEyMDQ4MEVERDEKKzoxMDE4RjAwMDI0MDNGRDUwMDEwRTkwRkMyQzEyMDQ2RTkwRkMyOTEyNjIKKzoxMDE5MDAwMDA0ODA5MDAwMDUxMjAxRUNGNTY3OTAwMDA0MTIwMUVDRDAKKzoxMDE5MTAwMDU0MEZGQzdENjcxMjE3NDZFNTY3NzAwNDc1NjYwODIyNTAKKzoxMDE5MjAwMDc1NjYwMDc4ODQ3NjAwNzg4NEU2QzM5NTY3NTAzODkwQjEKKzoxMDE5MzAwMEZDMkYxMjA0ODAxMjAxRTZGQzkwRkMyQzEyMDQ4MEVDQjcKKzoxMDE5NDAwMDEyMDMwRjMwMDEwRTkwRkMzMUUwMDRGMDkwRkMzMDcwNzcKKzoxMDE5NTAwMDAzRTAwNEYwNzg4NDA2OTBGQzJFRTAwNEYwOTBGQzJENjcKKzoxMDE5NjAwMDcwMDNFMDA0RjA4MEMwMjI5MEZDMkFFMEZEQTNFMEZDQkMKKzoxMDE5NzAwMEVERkVFQ0ZEN0YwMUVEMjQwQUZENTAwMTBFOTBGQzMyREUKKzoxMDE5ODAwMDEyMDQ2RTkwRkMyOTEyMDQ4MDkwMDAwNDEyMDFFQzU0QTEKKzoxMDE5OTAwMDBGQjQwMTAyODAwM0QzNDAxNzkwRkMzMjEyMDQ4MDBENzMKKzoxMDE5QTAwMEVENzAwMTBFOTBGQzJGMTIwNDZFNzg4ODc2MDE4MDRFNDcKKzoxMDE5QjAwMEI0MDIwMjgwMDNEMzQwMTk5MEZDMzIxMjA0ODBFRDI0NUIKKzoxMDE5QzAwMDAyRkQ1MDAxMEU5MEZDMkYxMjA0NkU3ODg4NzYwMjgwODIKKzoxMDE5RDAwMDJEQjQwNDAyODAwM0QzNDAxOTkwRkMzMjEyMDQ4MEVEMzAKKzoxMDE5RTAwMDI0MDRGRDUwMDEwRTkwRkMyRjEyMDQ2RTc4ODg3NjA0QkEKKzoxMDE5RjAwMDgwMENCNDAwMDI4MDAzRDM0MDAwNzU2NjA4MjI5MEZDN0UKKzoxMDFBMDAwMDI5MTIwNDgwOTAwMDA1MTIwMUVDRjU2Nzc4ODU3NjAwQjQKKzoxMDFBMTAwMDc4ODVFNkMzOTU2NzQwMDMwMjFBQ0Q3ODg2NzYwMDc4MEMKKzoxMDFBMjAwMDg2RTZDMzc4ODg5NjUwNzY5MEZDMkMxMjA0ODAxMjAxQ0EKKzoxMDFBMzAwMEU2RkM5MEZDMzIxMjA0ODkxMjAxRTBGNDVDRkMxMjAxMTUKKzoxMDFBNDAwMEUwRjg5MEZDMkYxMjA0ODBFOEMwRTAxMjAxRTZDOEQwNTQKKzoxMDFBNTAwMEUwQzg1ODRDRkM5MEZDMkMxMjA0ODBFQzEyMDMwRjc4NjgKKzoxMDFBNjAwMDg3RUNGNjkwRkMzMUUwMDRGMDkwRkMzMDcwMDNFMDA0NjkKKzoxMDFBNzAwMEYwMDlFOTcwMDEwQTkwRkMzMjEyMDQ3NzkwRkMyOTEyRjcKKzoxMDFBODAwMDA0ODA5MDAwMDQxMjAxRUMzMEU0MEU5MEZDMkVFMDA0N0YKKzoxMDFBOTAwMEYwOTBGQzJENzAwM0UwMDRGMDc4ODYwNjgwODE3ODg4NTEKKzoxMDFBQTAwMEU2RkRFNEZFRkZFRUNERkM5MEZDMzFFMDJDRjA5MEZDNzYKKzoxMDFBQjAwMDMwRTAzREYwNzg4OEU2RkRFNEZFRkZFRUNERkM5MEZDRTIKKzoxMDFBQzAwMDM0RTAyQ0YwOTBGQzMzRTAzREYwNzg4NTA2MDIxQTBERUUKKzoxMDFBRDAwMDc1NjYwMDIyRTUzRDA1M0QwNDcwMDJCMkIwMjJDMEUwMEIKKzoxMDFBRTAwMEMwRjBDMDgyQzA4M0MwRDBFOEMwRTBFOUMwRTBFQUMwNzYKKzoxMDFBRjAwMEUwRUJDMEUwRUNDMEUwRURDMEUwRUVDMEUwRUZDMEUwNDUKKzoxMDFCMDAwMDkwRkY5MkUwMTIwMUI3MUIyOTMwMUIyOTMyMUIzODM4OTUKKzoxMDFCMTAwMDFCNEEzQTFCNUMzRTFCNzQ0NDFCNjg0NjFCODA1MDFCQ0YKKzoxMDFCMjAwMEMyNTIxQkExNTQxQkUzNTYwMDAwMUMwNDkwRkY5MkUwMUMKKzoxMDFCMzAwMDdGMDBGRTdDMDExMjMxRkIwMjFDMTRFNEZGMDRGRTdDREEKKzoxMDFCNDAwMDAzMTIzMUZCNzQyMDkwRkZGRUYwMDIxQzE0RTRGRjA0MkEKKzoxMDFCNTAwMEZFN0MwMjEyMzFGQjc0NDA5MEZGRkVGMDAyMUMxNEU0ODQKKzoxMDFCNjAwMEZGMDRGRTdDMDQxMjMxRkIwMjFDMTRFNEZGMDRGRTdDMjMKKzoxMDFCNzAwMDA1MTIzMUZCMDIxQzE0RTRGRjA0RkU3QzA2MTIzMUZCNEIKKzoxMDFCODAwMDAyMUMxNDkwRkZBNUUwN0QwMDkwRkJGOENERjBBM0NERTIKKzoxMDFCOTAwMEYwOTBGQkY5RTBGQ0Y1ODM5MEZCRjhFMDQ0MzNGRDEyOTQKKzoxMDFCQTAwMDFDQTc4MDczOTBGRkI1RTA3RDAwOTBGQkZBQ0RGMEEzRjkKKzoxMDFCQjAwMENERjA5MEZCRkJFMEZDRjU4MzkwRkJGQUUwNDQ0M0ZEQTUKKzoxMDFCQzAwMDEyMUNBNzgwNTI5MEZGQTZFMDdEMDA5MEZCRkNDREYwOTgKKzoxMDFCRDAwMEEzQ0RGMDkwRkJGREUwRkNGNTgzOTBGQkZDRTA0NDM0RUEKKzoxMDFCRTAwMEZEMTIxQ0E3ODAzMTkwRkZCNkUwN0QwMDkwRkJGRUNEN0EKKzoxMDFCRjAwMEYwQTNDREYwOTBGQkZGRTBGQ0Y1ODM5MEZCRkVFMDQ0MEEKKzoxMDFDMDAwMDQ0RkQxMjFDQTc4MDEwOTBGRjkyRTA3RDAwRkNFRDQ0ODMKKzoxMDFDMTAwMEFBRkQxMjFDQTc4MDAwRTQ5MEZGOTJGMEQwRTBGRkQwNTQKKzoxMDFDMjAwMEUwRkVEMEUwRkREMEUwRkNEMEUwRkJEMEUwRkFEMEUwNzgKKzoxMDFDMzAwMEY5RDBFMEY4RDBEMEQwODNEMDgyRDBGMEQwRTAzMjA1MTcKKzoxMDFDNDAwMDgxMDU4MTA1ODEwNTgxQTg4MTE4MTgxOEVERjYwOEVDMzkKKzoxMDFDNTAwMEY2OTBGRjVBRTAyMEU3MDI4MEY3OTBGRjU5RTA3RDAwMDAKKzoxMDFDNjAwMEE4ODExOENERjZDRDA4RjY3RDAzQTg4MUU2MThGQ0U2MUMKKzoxMDFDNzAwMENDMjVFMENDMzNDQ0RERjlDQ0Y2Q0MwOEY2QTg4MTE4MjUKKzoxMDFDODAwMEU2NDRGOEY2QTg4MTE4MTgxOEU2RkQwOEU2RkNBODgxRDUKKzoxMDFDOTAwMDE4ODY4MzA4ODY4MkVERjBBM0VDRjA3NDAyOTBGRjVBNTgKKzoxMDFDQTAwMEYwMTU4MTE1ODExNTgxMTU4MTIyRTU4MTI0MDVGNTgxQzUKKzoxMDFDQjAwMEU0QTg4MTE4RjZBODgxMTgxODE4MThFREY2MDhFQ0Y2QjMKKzoxMDFDQzAwMDkwRkJGNUUwMjRGODUwMDMwMjFEQzhFNEE4ODExODE4MjEKKzoxMDFDRDAwMEY2QTg4MTE4RTZGRUE4ODExODE4MTgxOEU2RkQwOEU2OEYKKzoxMDFDRTAwMEZDN0YwMEVGMjRGODQwNERFNEVGMjVFMDI0N0RGNTgyRjEKKzoxMDFDRjAwMEU0MzRGQ0Y1ODNFMEZCQTNFMDZDNzAwM0ZBRUI2RDcwNTkKKzoxMDFEMDAwMDA5NzQwMUE4ODExODE4RjY4MDJCRTRFRjI1RTAyNDdERTIKKzoxMDFEMTAwMEY1ODJFNDM0RkNGNTgzN0EwMEUwNTRGMENDRjhDQ0NEQzUKKzoxMDFEMjAwMEY5Q0RGQjc4MDBFOTU0RjBGOUVBNjg3MDAyRUI2OTcwQ0MKKzoxMDFEMzAwMDAxMEUwRjgwQUVBODgxMThFRUY2QTg4MTE4MTgxODE4QTkKKzoxMDFENDAwMEVERjYwOEVDRjZBODgxRUZGNkE4ODExODE4RTY3MDc5OTAKKzoxMDFENTAwMEE4ODExOEU2MjRGNzQwNzFBODgxMTgxODE4MThFNjU0Q0QKKzoxMDFENjAwMDBGQTg4MUY2NjQwNDYwMTdBODgxRTY2NDAzNjAxMEE4RDgKKzoxMDFENzAwMDgxMTgxODE4MThFNkZEMDhFNkZDMTIxQzNDODA0QTdDMDUKKzoxMDFEODAwMDBBMTIzMTVCQTg4MTE4MTgxODE4RTZGRDA4RTZGQzkwQzUKKzoxMDFEOTAwMEZCRjRFMDI1RTAyNDdERjU4MkU0MzRGQ0Y1ODNFREYwRUUKKzoxMDFEQTAwMEEzRUNGMDkwRkJGNEUwRkZFNEVGMDQ1NDA3RkY5MEZCOUEKKzoxMDFEQjAwMEY0RjA5MEZCRjVFMDA0RjAxMjMxRjQ5MEZCRjZFMDcwRTMKKzoxMDFEQzAwMDA4RTRGRUZGN0MwRjEyMzFGQjgwMjc5MEZCRjdFMDA0NTQKKzoxMDFERDAwMEYwNTQzRjcwMUQ5MEZCRjdFMDQ0RkU3RDAwRkM5MEZCNEIKKzoxMDFERTAwMEY0RTAyNUUwMjQ3REY1ODJFNDM0RkNGNTgzRURGMEEzRjYKKzoxMDFERjAwMEVDRjBFNTgxMjRGQkY1ODEyMjc4OEI3NjAwNzg4Qzc2RjcKKzoxMDFFMDAwMDAwNzQwMTkwRkJGNkYwMTIzMEU2OTBGQkY1RTA2MDU3QUQKKzoxMDFFMTAwMDdDMEExMjMxNUI5MEZCRjNFMDI1RTAyNDdERjU4MkU0M0YKKzoxMDFFMjAwMDM0RkNGNTgzRTBGREEzRTBGQzkwRkJGM0UwMjVFMDI0MjcKKzoxMDFFMzAwMDdERjU4MkU0MzRGQ0Y1ODNFNEYwQTNGMDkwRkJGM0UwNUQKKzoxMDFFNDAwMEZGRTRFRjA0NTQwN0ZGOTBGQkYzRjA5MEZCRjVFMDE0ODAKKzoxMDFFNTAwMEYwNzg4OUVERjYwOEVDRjYxMjMxRjQ3ODg5RTZGRDA4QTEKKzoxMDFFNjAwMEU2RkMxMjA4REE4MEEzMTIzMjQ4OTBGRjkzRTA0NDAxQTYKKzoxMDFFNzAwMEYwQjJCMzc4OEIwNkI2MDAxMTc4OEI3NjAwNzg4Q0U2REEKKzoxMDFFODAwMEY0MDQwNEEyRTA5MkI0Nzg4Q0Y2MDIxRTA3RTQ5MEZCRkUKKzoxMDFFOTAwMEY2RjA5MEZCRjVFMDdEMDBGQ0VENDRDRkZEMTIxQzNDMUMKKzoxMDFFQTAwMDEyMzE2OTIyMTIzMEU2RTU3MDY0NDk0NTZGNjAxNTkwODEKKzoxMDFFQjAwMEZGODNFMDU0MEY3RDAwRDM5NTcwRUQ5NTZGNTAwNTEyQjAKKzoxMDFFQzAwMDJGMkY4MDAzMTIyRkZGMTIzMTY5MjIxMjMwRTZFNTcwQTYKKzoxMDFFRDAwMDY0NDk0NTZGNjAwNTEyMzAzOTgwMEU5MEZGODBFMDQ0MDAKKzoxMDFFRTAwMDA4RjA5MEZGODNFMDU0N0ZGMDEyMzE2OTIyMTIzMEU2NEYKKzoxMDFFRjAwMDhDNTRFQzU0RjBCNDEwMTU3NTZBMzU3NTY5RkM3NTY4MkUKKzoxMDFGMDAwMDAxRTU2QTI0MDNGNTZBRTU2OTM0MDBGNTY5RTRGNTU3RUIKKzoxMDFGMTAwMEY1NTZFNTU2QzM5NDAxNTAyN0U1NTQ1NDBGRkNBRDZBQkQKKzoxMDFGMjAwMEFFNjlBRjY4MTIwRTc3OEM1NUVDNjAwMjgwMTIwNTZBQkMKKzoxMDFGMzAwMEU1NkE3MDAyMDU2OTA1NTdFNTU3NzAwMjA1NTY4MEQyQkIKKzoxMDFGNDAwMEU1NTQ1NDBGMjQ5REY4QzY1NEZFRjZFNTU0NTQwRjdGMTMKKzoxMDFGNTAwMDAwRkU3QzEyMTIzMUZCRTU1NTE0NzAwOTdEMDA3QzA5RUUKKzoxMDFGNjAwMDEyMjUyNjgwMDdBRDU3N0MwMDEyMjUyNjEyMzE2OTIyRTIKKzoxMDFGNzAwMDEyMzBFNjkwRkZGQ0UwNDQwMkYwOTBGRjAwRTAzMEU3MTIKKzoxMDFGODAwMDEzOTBGRjgzRTA0NDgwRjA0MzZEODA5MEZGRkNFMDQ0QjkKKzoxMDFGOTAwMDAxRjA4MDExOTBGRjgyRTA0NDA4RjA1MzZEN0Y5MEZGQzQKKzoxMDFGQTAwMEZDRTA1NEZFRjA5MEZGODFFMDQ0ODBGMDEyMjVEOTkwQ0YKKzoxMDFGQjAwMEZGRkVFMDQ0MDVGMDkwRkZGQ0UwNTRGREYwMTIzMTY5QjMKKzoxMDFGQzAwMDIyMTIzMEU2N0MwMTEyMzJBOTc4QURFNjQ0MDJGNjc0QTIKKzoxMDFGRDAwMEZFRkMwNEZEMTIxQ0E3OTBGRjVBRTAzMEU3MDI4MEY3RDgKKzoxMDFGRTAwMEU0RjU0RTc1NEQxMEFDNEVBRDRERTU0RTE1NEU3MDAyRkMKKzoxMDFGRjAwMDE1NERFQzRENjAwMjgwRUU0Mzg3MDExMjMxNjkyMjEyQ0IKKzoxMDIwMDAwMDMwRTY3QzAyMTIzMTc1NzhBREU2NTRGREY2MTIzMTY5ODYKKzoxMDIwMTAwMDIyMTIzMEU2NzhBREU2MzBFMDJDNzhBREU2MzBFMTI2RUQKKzoxMDIwMjAwMDc4QURFNkZDRjU4MzE4RTY0NEYwRkQxMjFDM0M5MEZGMDkKKzoxMDIwMzAwMEZDRTA0NDIwRjA3QzAyMTIzMkE5NzhBREU2NTRGREY2QjMKKzoxMDIwNDAwMDc0MUE5MEZGRkVGMDc4QURFNkZDRjU4MzE4RTY0NEYxRDMKKzoxMDIwNTAwMEZEMTIxQzNDMTIzMTY5MjI3NTZEMDA5MEZGRkZFMDYwOUIKKzoxMDIwNjAwMDAzNDM2RDAxNzU2RTAwRTRGNTZDRjU2QkU0RjU2Rjc1NzcKKzoxMDIwNzAwMDcwNDk3NDg0OTBGRjgyRjA3NDg0OTBGRjgwRjA3NDgwQzMKKzoxMDIwODAwMDkwRkY1OEYwNzQ4MDkwRkY1QUYwQUQ0NkFGNDU3RTAwNDcKKzoxMDIwOTAwMEVFMjRGRTUwMDMwMjIxMjRFNEVFNzVGMDA3QTQyNDdGMTEKKzoxMDIwQTAwMEY1ODJFNDM0RjhGNTgzRTBGRkU0RUY1NDgwRkRFNEVGREIKKzoxMDIwQjAwMDU0MEYxNEZGRUQ2MDM4RTRFRjc1RjAwOEE0MjQ0OEY1RTAKKzoxMDIwQzAwMDgyRTQzNEZGRjU4Mzc0OTBGMEU0RUY3NUYwMDhBNDI0MDMKKzoxMDIwRDAwMDRBRjU4MkU0MzRGRkY1ODM3NDgwRjBFNEVGNzVGMDA4OEMKKzoxMDIwRTAwMEE0MjQ0RUY1ODJFNDM0RkZGNTgzNzQ4MEYwODAzNEU0NTgKKzoxMDIwRjAwMEVGNzVGMDA4QTQyNDA4RjU4MkU0MzRGRkY1ODM3NDkwQUEKKzoxMDIxMDAwMEYwRTRFRjc1RjAwOEE0MjQwQUY1ODJFNDM0RkZGNTgzQzcKKzoxMDIxMTAwMEU0RjBFNEVGNzVGMDA4QTQyNDBFRjU4MkU0MzRGRkY1NTIKKzoxMDIxMjAwMDgzRTRGMDBFMDIyMDhEOEQ0NjhFNDQ4RjQ1NzQ3RjkwOUYKKzoxMDIxMzAwMEZGRkRGMDc0OTA5MEZGRkNGMDIyOEM1OEVDMjRGNjUwRDgKKzoxMDIxNDAwMDA2RTU1ODI0MzdGQzIyRTU1ODI0MzBGQzIyMTIyNTIzQ0EKKzoxMDIxNTAwMEVDNzAwMzAyMjI1RTc1NUMwM0FFNUI3RjAwRTU1QzE1RUMKKzoxMDIxNjAwMDVDNjQ4MDI0N0Y1MDM1RUYyNDAwRjU4MkU0MzRGQkY1NzUKKzoxMDIxNzAwMDgzRTBGRTI0RkU1MDFFRUY3RDAwRkNFNEZCNzQ3NEMzN0MKKzoxMDIxODAwMDlDRkFFQjlERkJFRTdEMDBGQ0VBQzM5Q0VENjQ4MENCRUEKKzoxMDIxOTAwMDY0ODA5QjUwMDI4MDA1RUYyRUZGODBDMThFNUI4RjVBQkEKKzoxMDIxQTAwMEU1NUM2NDgwMjQ3RjUwMDMwMjIyNUVFNTVBMjQ4RTUwNTEKKzoxMDIxQjAwMDAzMDIyMjVFODU1QTVENzU1QjAwQUU1QUFGNUI5MDM1QjcKKzoxMDIxQzAwMDlDRTQ5M0Y1NUNFNTVDMTU1QzY0ODAyNDdGNTAxOEVFMUMKKzoxMDIxRDAwMDI0MDBGNTgyRTQzNEZCRjU4M0UwRkNFRjkwMzU5QzkzMUEKKzoxMDIxRTAwMDZDNzAwNDBFMEY4MERFOEU1QThGNUJFNTVDNjQ4MDI0NzkKKzoxMDIxRjAwMDdGNDA2RTc1NUUwMTc1NjBFODc1NUZGRkU1NUQyNDAyRTYKKzoxMDIyMDAwMEY1NUE3NTVDMDdFNTVDMzM0MDU3QUQ2MEFFNUZBRjVFNzUKKzoxMDIyMTAwMEU1NUNGNTgyMzM5NUUwRjU4MzEyMDFFQ0M0NTQwRkZDQzQKKzoxMDIyMjAwMDEyMjEzN0U1NUEyNDAwRjU4MkU0MzRGQkY1ODNFQ0YwMDMKKzoxMDIyMzAwMDA1NUEwNTVBQUQ2MEFFNUZBRjVFRTU1Q0Y1ODIzMzk1MzkKKzoxMDIyNDAwMEUwRjU4MzEyMDFFQzU0MEZGQzEyMjEzN0U1NUEyNDAwMEIKKzoxMDIyNTAwMEY1ODJFNDM0RkJGNTgzRUNGMDA1NUEwNTVBMTU1QzgwRjEKKzoxMDIyNjAwMEE0NzQwMjkwRjg1MUYwOTBGODZCNzk3NTdBMzU3QjI3NTkKKzoxMDIyNzAwMDc4MDExMjAzRjU3NTZBMzU3NTY5RkM3NTY4MDFFNDkwOUIKKzoxMDIyODAwMEZGODNGMDc0ODA5MEZGODFGMDc1NTkwMkU1NTk3NUYwNzUKKzoxMDIyOTAwMDA3QTQyNDdGRjU4MkU0MzRGOEY1ODNFMDc4OEZGNkZDMTgKKzoxMDIyQTAwMDU0MEYxNEZDNzg4RkVDRjZFNTU5NzVGMDA3QTQyNDgxREYKKzoxMDIyQjAwMEY1ODJFNDM0RjhGNTgzRTA3ODkyNzZGRDA4NzZFOEZDNjAKKzoxMDIyQzAwMDc4OEZFNjc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzOUUKKzoxMDIyRDAwMEU0RjA3ODhGRTY3NUYwMDhBNDI0NEZGNTgyRTQzNEZGMkIKKzoxMDIyRTAwMEY1ODNFQ0YwNzg5MkU2RkYwOEU2N0UwM0NGQzMxM0NGQzgKKzoxMDIyRjAwMDEzREVGOUZFNzg4RkU2NzVGMDA4QTQyNDQ5RjU4MkU0MzAKKzoxMDIzMDAwMDM0RkZGNTgzRUVGMDc4OEZFNjc1RjAwOEE0MjQ0QUY1RTMKKzoxMDIzMTAwMDgyRTQzNEZGRjU4Mzc0ODBGMDc4OTBFQ0Y2N0QwMDc4RTkKKzoxMDIzMjAwMDkzRTYyQ0Y2MThFNjNERjY3ODkyRTZGRDA4RTY3QzAzODcKKzoxMDIzMzAwMENEQzMxM0NEMTNEQ0Y5RkM3ODhGRTY3NUYwMDhBNDI0MjcKKzoxMDIzNDAwMDRERjU4MkU0MzRGRkY1ODNFQ0YwNzg4RkU2NzVGMDA4MDQKKzoxMDIzNTAwMEE0MjQ0RUY1ODJFNDM0RkZGNTgzRTRGMDc4OTJFNkZEQTAKKzoxMDIzNjAwMDA4RTZGQzc4OEZFNkZGN0UwMEVFMjRGRTUwMDMwMjI0OTAKKzoxMDIzNzAwMERERTRFRTc1RjAwN0E0MjQ3RkY1ODJFNDM0RjhGNTgzRkMKKzoxMDIzODAwMEUwRkZFNEVGNTQ4MEZBRTRFRjU0MEYxNEZGRTRFRTc1M0QKKzoxMDIzOTAwMEYwMDdBNDI0ODFGNTgyRTQzNEY4RjU4M0UwNzg5MEY2MjAKKzoxMDIzQTAwMEU0RUUxMzEzNTQ4MDI0RjBGOEU0MzRGREY5RThGQ0U5N0EKKzoxMDIzQjAwMEZEOEE1QUVBNzAwMzAyMjQ0QUU0RUY3NUYwMDhBNDI0NjcKKzoxMDIzQzAwMDQ4RjU4MkU0MzRGRkY1ODNFNEYwNzg5MEU2RkFFNEVGMzAKKzoxMDIzRDAwMDc1RjAwOEE0MjQ0RkY1ODJFNDM0RkZGNTgzRUFGMEVEQUMKKzoxMDIzRTAwMEZCRUM3QTAzQ0JDMzEzQ0IxM0RBRjlGQUU0RUY3NUYwMDUKKzoxMDIzRjAwMDA4QTQyNDQ5RjU4MkU0MzRGRkY1ODNFQUYwNzg5MEU2RjYKKzoxMDI0MDAwMDdCMDBGQUVDMkFGQ0VEM0JGREZCRUM3QTAzQ0JDMzEzMUIKKzoxMDI0MTAwMENCMTNEQUY5RkFFNEVGNzVGMDA4QTQyNDRERjU4MkU0NjEKKzoxMDI0MjAwMDM0RkZGNTgzRUFGMEU0RUY3NUYwMDhBNDI0NEFGNTgyNUUKKzoxMDI0MzAwMEU0MzRGRkY1ODM3NDgwRjBFNEVGNzVGMDA4QTQyNDRFRDMKKzoxMDI0NDAwMEY1ODJFNDM0RkZGNTgzNzQ4MEYwMDIyNEQ5RTRFRjc1NUIKKzoxMDI0NTAwMEYwMDhBNDI0MDhGNTgyRTQzNEZGRjU4M0U0RjA3ODkwRDIKKzoxMDI0NjAwMEU2RkFFNEVGNzVGMDA4QTQyNDBGRjU4MkU0MzRGRkY1RjIKKzoxMDI0NzAwMDgzRUFGMEVERkJFQzdBMDNDQkMzMTNDQjEzREFGOUZBNjIKKzoxMDI0ODAwMEU0RUY3NUYwMDhBNDI0MDlGNTgyRTQzNEZGRjU4M0VBNEIKKzoxMDI0OTAwMEYwNzg5MEU2N0IwMEZBRUMyQUZDRUQzQkZERkJFQzdBNTEKKzoxMDI0QTAwMDAzQ0JDMzEzQ0IxM0RBRjlGQUU0RUY3NUYwMDhBNDI0RDUKKzoxMDI0QjAwMDBERjU4MkU0MzRGRkY1ODNFQUYwRTRFRjc1RjAwOEE0NEIKKzoxMDI0QzAwMDI0MEFGNTgyRTQzNEZGRjU4M0U0RjBFNEVGNzVGMDA4QzQKKzoxMDI0RDAwMEE0MjQwRUY1ODJFNDM0RkZGNTgzRTRGMDBFMDIyMzY2QjMKKzoxMDI0RTAwMDhFNTk3ODkyRURGNjA4RUNGNjc4OEZFRkY2MTIyMDU1QkIKKzoxMDI0RjAwMDIyOEMyNkVDMzBFNzE4RTUyNjU0MEYxNDc1RjAwOEE0NUEKKzoxMDI1MDAwMDI0NDhGNTgyRTQzNEZGRjU4M0UwNTRERkYwODAxNkU1REIKKzoxMDI1MTAwMDI2NTQwRjE0NzVGMDA4QTQyNDA4RjU4MkU0MzRGRkY1NUUKKzoxMDI1MjAwMDgzRTA1NERGRjAyMjdDMDAyMkVDOTBGQzM3RjA4QzI0MTYKKzoxMDI1MzAwMEVEMjQwM0Y1MjU3RDAwRDM5NTcyRUQ5NTcxNDAwMzg1NUIKKzoxMDI1NDAwMDcyMjVFNTI1MjRCNzUwMDk3NTI1MDM3NDAyOTBGQzM3RTAKKzoxMDI1NTAwMEYwQUMyNTEyMzAyNDIyRTRGNTZDRjU2QjEyMjU1RDIyRDcKKzoxMDI1NjAwMDkwRkMzNUUwNjU3MzYwMEU3NDA0OTBGQzM3RjBFNEY1ODAKKzoxMDI1NzAwMDZCNzU2QzAzODA0NjdENzNFNEZFRkY3OTM1N0FGQzdCRDYKKzoxMDI1ODAwMDAxNzQwNTc4MDAxMjAzM0ZFNTZDMjQwM0Y1NkNFNTZCREMKKzoxMDI1OTAwMDM0MDBGNTZCRTU2Q0QzOTU3MkU1NkI5NTcxNDAwNjg1NUIKKzoxMDI1QTAwMDcyNkM4NTcxNkJEM0U1NkM5NDQ4RTU2Qjk0MDA0MDBDQkMKKzoxMDI1QjAwMDc0MDI5MEZDMzdGMEU0RjU2Qjc1NkMwM0FDNkMxMjMwNzAKKzoxMDI1QzAwMDI0MjJFQzkwRkMzN0YwRTRGNTZDRjU2QjhDMzJFQzYwNzcKKzoxMDI1RDAwMDA1MTIzMDE1ODAwNTdDMDAxMjMwMjQyMjkwRkY5M0UwMTQKKzoxMDI1RTAwMDQ0MDFGMEIyQjM5MEZGMDRFMEY1NEE5MEZGMDZFMEZEMkQKKzoxMDI1RjAwMEEzRTBFRDdEMDBGQzdEMDBGQzkwRkYwNkUwRkZBM0UwODIKKzoxMDI2MDAwMDdFMDBGRkU0RkVFQzRFRkNFRDRGRkRDM0VDOTQ0OEVEODQKKzoxMDI2MTAwMDk0MDA1MDIyOTBGRjA2RTBGREEzRTBFRDdEMDBGQzdEREMKKzoxMDI2MjAwMDAwRkM5MEZGMDZFMEZGQTNFMDdFMDBGRkU0RkVFQzRFMUUKKzoxMDI2MzAwMEZDRUQ0RkZEODAwNEU0RkQ3QzQ4OEM3MjhENzE5MEZGQjEKKzoxMDI2NDAwMDAyRTBGREEzRTBFRDdEMDBGQzdEMDBGQzkwRkYwMkUwRDgKKzoxMDI2NTAwMEZGQTNFMDdFMDBGRkU0RkVFQzRFRjU0Q0VENEZGNTRCQTIKKzoxMDI2NjAwMDc1NkEzNTc1NjlGQzc1NjgwMTdEMzU3RUZDN0YwMTc5NzkKKzoxMDI2NzAwMDczRTRGQUZCNzQwNTc4MDAxMjAzM0Y3NTQ5MDBFNTQ5REQKKzoxMDI2ODAwMDI0RkU0MDE5QUQ2QUFFNjlBRjY4RTQxMjAzMEYwNTQ5MzQKKzoxMDI2OTAwMDBERUQ3MDAxMEU4RDZBOEU2OThGNjg4MEUxNzU2QTM1NjcKKzoxMDI2QTAwMDc1NjlGQzc1NjgwMTkwRkYwMEUwNTQ2MEI0MDAwMjgwMTkKKzoxMDI2QjAwMDA2RDM1MDAzMDIyQzZERTU0QTU0MEZGNTQ5RTU0QTU0MDAKKzoxMDI2QzAwMDgwQTJFMDkyMDI5MEZGMDFFMDEyMDE4MTAwMEIyQzY4RDEKKzoxMDI2RDAwMDI2RTUyODAzMkM2ODI5MEYyQzY4MjlGMjJBMjYyQjhENDEKKzoxMDI2RTAwMDJCOTAyQkQwMkMxMTJDM0ZFNTZEMzBFNzBFRTU0QzQ1OUYKKzoxMDI2RjAwMDRCNzAwOEU1NzI2NDAyNDU3MTYwMDMwMjJDNkE5MEZGMUEKKzoxMDI3MDAwMDAwRTA1NDFGQjQwMDAyODAwM0QzNDAyOUU1NEE2MDAzNkYKKzoxMDI3MTAwMDAyMjgwMEFENkFBRTY5QUY2ODc0MDExMjAzMEY3OEFEOEMKKzoxMDI3MjAwMEU2MzBFMDBCQUQ2QUFFNjlBRjY4NzQwMjEyMDMwRjdDNEQKKzoxMDI3MzAwMDAyMTIzMDI0MjJCNDAxMDI4MDAzRDM0MDFCRTU2RDIwMzUKKzoxMDI3NDAwMEUxMDdFNTRBNjAwMzAyMjgwMEU1NEEyNEZFNTAwMzAyM0YKKzoxMDI3NTAwMDI4MDA3QzAyMTIzMDI0MjJCNDAyMDI4MDA2RDM1MDAzRTcKKzoxMDI3NjAwMDAyMjdGRUU1NkQyMEUxMERFNTRBNjAwOUU1NEE2NDgwMzcKKzoxMDI3NzAwMDYwMDMwMjI4MDBBQzRBMTIzMEFCNDAwMzAyMjgwMEU1OTcKKzoxMDI3ODAwMDQ5NzAyNTMwMDIxMTkwRkY4MEUwNTQwOEFENkFBRTY5QUYKKzoxMDI3OTAwMEFGNjgxMjAzMEY4MDBGOTBGRjgyRTA1NDA4QUQ2QUFFNUQKKzoxMDI3QTAwMDY5QUY2ODEyMDMwRjgwM0QxNTQ5MzAwMjFERTU0OTc1NzgKKzoxMDI3QjAwMEYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0UwNTQwOEFEMjIKKzoxMDI3QzAwMDZBQUU2OUFGNjgxMjAzMEY4MDFCRTU0OTc1RjAwOEE0NzMKKzoxMDI3RDAwMDI0MDhGNTgyRTQzNEZGRjU4M0UwNTQwOEFENkFBRTY5NUQKKzoxMDI3RTAwMEFGNjgxMjAzMEZBRDZBQUU2OUFGNjgxMjAxRTY2MDBCMDUKKzoxMDI3RjAwMEFENkFBRTY5QUY2ODc0MDExMjAzMEY3QzAyMTIzMDI0MTcKKzoxMDI4MDAwMDIyODAwMDAyMkM2QUU1NkQyMEU3MDZFNTcyNDU3MTYwQzIKKzoxMDI4MTAwMDAzMDIyQzZBOTBGRjAwRTA1NDFGQjQwMDAyODAwM0QzMkYKKzoxMDI4MjAwMDQwMUFFNTRDMTQ0NTRCNzAwNEU1NEE2MDAzMDIyOTBDM0MKKzoxMDI4MzAwMDc4QURFNjU0RkVGNjdDMDAxMjMwMjQyMkI0MDEwMjgwMEEKKzoxMDI4NDAwMDAzRDM0MDJBRTU2RDIwRTEwOEU1NkQyMEUwMDMwMjI5NkQKKzoxMDI4NTAwMDBDRTU2RDMwRTAwNEU1NEE3MDBCRTU2RDMwRTEwOUU1MEIKKzoxMDI4NjAwMDRBMjRGRTUwMDMwMjI5MEM3QzAwMTIzMDI0MjJCNDAyQjgKKzoxMDI4NzAwMDAyODAwNkQzNTAwMzAyMjkwQUU1NEM0NTRCNjAwMzAyNEYKKzoxMDI4ODAwMDI5MENBQzRBMTIzMEFCNDAwMzAyMjkwQ0U1NkQyMEUxNjMKKzoxMDI4OTAwMDA3RTU2RDIwRTAwMjgwNzdFNTZEMzBFMDA2RTU0OTYwRjAKKzoxMDI4QTAwMDAyODA2Q0U1NDk3MDBGOTBGRjgyRTA1NEY3RjA5MEZGRDIKKzoxMDI4QjAwMDgwRTA1NEY3RjAyMkU1NDlCNDAxMDI4MDAzRDM0MDA5RDcKKzoxMDI4QzAwMDdEMDE3QzAzMTIwRjA5ODAxMUI0MDIwMjgwMDNEMzQwMDIKKzoxMDI4RDAwMDA5N0QwMTdDMDQxMjBGMDk4MDAwMTU0OTMwMDIxNUU1QkQKKzoxMDI4RTAwMDQ5NzVGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODNFMDU0RTgKKzoxMDI4RjAwMEY3RjA4MDEzRTU0OTc1RjAwOEE0MjQwOEY1ODJFNDM0NjQKKzoxMDI5MDAwMEZGRjU4M0UwNTRGN0YwN0MwMDEyMzAyNDIyODAwMDAyQUYKKzoxMDI5MTAwMDJDNkFFNTZEMjBFNzA2RTU3MjQ1NzE2MDAzMDIyQzZBQkEKKzoxMDI5MjAwMDkwRkYwMEUwNTQxRkI0MDAwMjgwMDNEMzQwMUFFNTRDMkUKKzoxMDI5MzAwMDE0NDU0QjcwMDRFNTRBNjAwMzAyMjlFRjc4QURFNjQ0ODQKKzoxMDI5NDAwMDAxRjY3QzAwMTIzMDI0MjJCNDAxMDI4MDAzRDM0MDI5MTYKKzoxMDI5NTAwMEU1NkQyMEUxMDhFNTZEMjBFMDAzMDIyOUVGRTU2RDMwMkIKKzoxMDI5NjAwMEUwMDRFNTQ5NzAwQkU1NkQzMEUxMDhFNTQ5MjRGRTUwQ0YKKzoxMDI5NzAwMDAyODA3RjdDMDAxMjMwMjQyMkI0MDIwMjgwMDNEMzQwMDQKKzoxMDI5ODAwMDZGRTU0QzQ1NEI2MDAyODA2OUFDNEExMjMwQUI0MDAyQTcKKzoxMDI5OTAwMDgwNjBFNTZEMjBFMTA3RTU2RDIwRTAwMjgwNTRFNTQ5QTcKKzoxMDI5QTAwMDcwMTQzMDAyMDk5MEZGODBFMDQ0MDhGMDgwMDc5MEZGMjcKKzoxMDI5QjAwMDgyRTA0NDA4RjAyMkU1NkQzMEUxMzMxNTQ5MzAwMjE1MUMKKzoxMDI5QzAwMEU1NDk3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0UwNzYKKzoxMDI5RDAwMDQ0MDhGMDgwMTNFNTQ5NzVGMDA4QTQyNDA4RjU4MkU0NjIKKzoxMDI5RTAwMDM0RkZGNTgzRTA0NDA4RjA3QzAwMTIzMDI0MjI4MDAyOUEKKzoxMDI5RjAwMDgwMDAwMjJDNkFFNTZEMjBFNzEyRTU3MjQ1NzE3MDBDQ0IKKzoxMDJBMDAwMEU1NEE3MDA4OTBGRjAwRTA1NDFGNjAwMzAyMkM2QUU1NUQKKzoxMDJBMTAwMDRDOTBGRkZGRjA5MEZGRkZFMDYwMDU0MzZEMDE4MDAzRTUKKzoxMDJBMjAwMDUzNkRGRTdDMDAxMjMwMjQyMkU1NkQzMEU3MEVFNTcyMTYKKzoxMDJBMzAwMDQ1NzE2MDA4OTBGRjAwRTA1NDFGNjAwMzAyMkM2QUFERUUKKzoxMDJBNDAwMDRCRTU0Q0VEN0QwMEZDN0QwMEZDQkQwMDAyODAwMzAyRTcKKzoxMDJBNTAwMDJCODhCNDAxMDI4MDAzRDM0MDMyRTU0QTcwMDVFNTRDNkYKKzoxMDJBNjAwMEZDNjAwMzAyMkI4QTc1NkE0MDc1NjlGODc1NjgwMUQzQUEKKzoxMDJBNzAwMEU1NzI5NDEyRTU3MTk0MDA0MDA2RTRGRDdDMTI4MDA0MzYKKzoxMDJBODAwMEFDNzJBRDcxOEM3MDhENkYxMjMwMzkyMkI0MDIwMjgwM0QKKzoxMDJBOTAwMDAzRDM0MDU5RTU0QTYwMDMwMjJCOEFFNTRDRkM3MDI3QkEKKzoxMDJBQTAwMDc1NkE1Mjc1NjlGODc1NjgwMUQzRTU3Mjk0MTlFNTcxMTQKKzoxMDJBQjAwMDk0MDA0MDA2RTRGRDdDMTk4MDA0QUM3MkFENzE4QzcwMEEKKzoxMDJBQzAwMDhENkYxMjMwMzk4MDI1NzU2QTZCNzU2OUY4NzU2ODAxRUMKKzoxMDJBRDAwMEQzRTU3Mjk0MjdFNTcxOTQwMDQwMDZFNEZEN0MyNzgwREQKKzoxMDJBRTAwMDA0QUM3MkFENzE4QzcwOEQ2RjEyMzAzOTIyQjQwMzAyNTgKKzoxMDJBRjAwMDgwMDZEMzUwMDMwMjJCODhFNTRDRjU0OTcwMEY5MEZGRjgKKzoxMDJCMDAwMDA0RTBGREEzRTA0RDYwMDMwMjJCOEE4MDE4OTBGQjAyRDUKKzoxMDJCMTAwMEUwRkRBM0UwRkM5MEZGMDVFMDZDNzAwNzkwRkYwNEUwOEYKKzoxMDJCMjAwMDZENjAwMjgwNjhFNEY1NzBGNTZGN0YwMEU1NDkxNEM1QkIKKzoxMDJCMzAwMDQ5NjAwRkVGMjQwMEY1ODJFNDM0RkJGNTgzRTAyRkZGQkEKKzoxMDJCNDAwMDgwRUE4RjRBRTU0QTI0MDBGNTgyRTQzNEZCRjU4M0UwMEQKKzoxMDJCNTAwMDdEMDBEMzk1NzJFRDk1NzE0MDA2QUM3MkFENzE4MDBGMUEKKzoxMDJCNjAwMEU1NEEyNDAwRjU4MkU0MzRGQkY1ODNFMDdEMDBGQzhDMkIKKzoxMDJCNzAwMDcwOEQ2RkU1NEEyNDAwRkNFNDM0RkJGREZFRUNGRDdGMjQKKzoxMDJCODAwMDAxOEQ2QThFNjk4RjY4MTIzMDM5MjI4MDAwMDIyQzZBQUEKKzoxMDJCOTAwMDAyMkM2QUU1NkQzMEU3MTlFNTcyMTQ0NTcxNzAxMkU1OTMKKzoxMDJCQTAwMDRBNzAwRUU1NEM0NTRCNzAwODkwRkYwMEUwNTQxRjYwRTIKKzoxMDJCQjAwMDAzMDIyQzZBRTU2RDIwRTAwOEU1NkQyMEUxMDMwMjJDOUMKKzoxMDJCQzAwMDZBNzU2QTZFRTRGNTY5RjU2OEU0RjU2RjA0RjU3MDEyRUMKKzoxMDJCRDAwMDMwMzkyMkU1NkQyMEU3MTJFNTcyNDU3MTcwMENFNTRBNDcKKzoxMDJCRTAwMDcwMDg5MEZGMDBFMDU0MUY2MDAzMDIyQzZBRTU2RDIwMUUKKzoxMDJCRjAwMEUwMDdFNTZEMjBFMTAyODA3NDg1NEM2RUU1NkU3MDA4OUIKKzoxMDJDMDAwMDQzNkQwMTUzNkRGRDgwMDY1MzZERkU0MzZEMDI3QzAwRTQKKzoxMDJDMTAwMDEyMzAyNDIyRTU2RDMwRTcxQUU1NzIxNDQ1NzE3MDEzMDUKKzoxMDJDMjAwMEU1NEE3MDBGRTU0QzQ1NEI3MDA5OTBGRjAwRTA1NDFGREEKKzoxMDJDMzAwMDE0NjAwMjgwMzhFNTZEMjBFMTAyODAzMTdDMDExMjMwQTEKKzoxMDJDNDAwMDI0MjJFNTZEMjBFNzE1RTU3MjQ1NzE3MDBGRTU0QzQ1Q0UKKzoxMDJDNTAwMDRCNzAwOTkwRkYwMEUwNTQxRjE0NjAwMjgwMEZFNTZENzcKKzoxMDJDNjAwMDIwRTEwMjgwMDg3QzAwMTIzMDI0MjI4MDAwMDIyRjJCRjkKKzoxMDJDNzAwMEI0NDAwMjgwMDZEMzUwMDMwMjJGMjE5MEZGMDFFMDkwNjAKKzoxMDJDODAwMEZDMzVGMEU1NEE5MEZDMzZGMEU0OTBGQzM3RjBFNTZBNUMKKzoxMDJDOTAwMDI0MDNGNTZBRTU2OTM0MDBGNTY5QUQ0QkU1NEM4NTZBQjYKKzoxMDJDQTAwMDgyODU2OTgzQ0RGMEEzQ0RGMDkwRkYwMUUwMTIwMUI3REEKKzoxMDJDQjAwMDJDRDgwMTJDRkUwMjJEMjgwMzJENTIwNDJEQTAwNTJEMDkKKzoxMDJDQzAwMEREMDYyRTAzMDcyRTI5MDgyRTU1MDkyRTdCMEIyRUExN0IKKzoxMDJDRDAwMDBDMkVCMDgwMkVCMDgxMDAwMDJGMEVFNTZEMjBFNzA2OEYKKzoxMDJDRTAwMDdDMDUxMjI1QkYyMjdEMjQ3RTM1N0YwMjc5Mzg3QUZDNEYKKzoxMDJDRjAwMDdCMDE3NDA4NzgwMDEyMDMzRjdEMDg3QzAwMTIyNTI2QjIKKzoxMDJEMDAwMDIyRTU2RDIwRTcwNjdDMDUxMjI1QkYyMkU1NEFCNDAzQzMKKzoxMDJEMTAwMDAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxMDEyMDUKKzoxMDJEMjAwMDMxRkIyMjdEMDA3QzA3MTIyNTI2MjJFNTZEMjBFNzA2NzcKKzoxMDJEMzAwMDdDMDUxMjI1QkYyMkU1NEFCNDAzMDA0MDEwQjQwNTAwMEIKKzoxMDJENDAwMDUwMEJFNTRBN0YwMEZFN0MxMTEyMzFGQjIyN0QwMDdDOTYKKzoxMDJENTAwMDA3MTIyNTI2MjJFNTZEMjBFNzA2N0MwNTEyMjVCRjIyRjUKKzoxMDJENjAwMEU1NEFCNDA1MDI4MDAzRDM0MDBBRTRGRjA0RkU3QzBBNkUKKzoxMDJENzAwMDEyMzFGQjIyQjQwMTAyODAwM0QzNDAwQUU0RkYwNEZFQjcKKzoxMDJEODAwMDdDMDgxMjMxRkIyMkI0MDMwMDQwMTBCNDA1MDA1MDBCNDQKKzoxMDJEOTAwMEU1NEE3RjAwRkU3QzEzMTIzMUZCMjI3RDAwN0MwNzEyODYKKzoxMDJEQTAwMDI1MjYyMkU1NkQyMEU3MzREM0U1NzI5NDQ4RTU3MTk0MzkKKzoxMDJEQjAwMDAwNTAwNkU1NzI0NTcxNzAwNjdDMDIxMjI1QkYyMkU1QkYKKzoxMDJEQzAwMDRBQjQwMTAzQjM0MDBCQzNCNDAzMDA0MDA5QjQwNjAwODYKKzoxMDJERDAwMDUwMDQxMjMwRDEyMjdDMDcxMjI1QkYyMjEyMjU1RDIyMTkKKzoxMDJERTAwMEU1NkQyMEU3MURFNTRBQjQwMzAwNDAxMEI0MDUwMDUwMkUKKzoxMDJERjAwMDBCRTU0QTdGMDBGRTdDMTYxMjMxRkIyMjdDMDcxMjI1NzAKKzoxMDJFMDAwMEJGMjIxMjI1NUQyMkU1NkQyMEU3MURFNTRBQjQwMzAwQ0YKKzoxMDJFMTAwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTkxMjMxQ0EKKzoxMDJFMjAwMEZCMjI3QzA3MTIyNUJGMjIxMjI1NUQyMkU1NkQyMEU3REIKKzoxMDJFMzAwMDIzNzQ4MTkwRkY5M0YwRTU0QUI0MDMwMDQwMTBCNDA1NzkKKzoxMDJFNDAwMDAwNTAwQkU1NEE3RjAwRkU3QzE3MTIzMUZCMjI3QzA3MDUKKzoxMDJFNTAwMDEyMjVCRjIyMTIyNTVEMjJFNTZEMjBFNzFERTU0QUI0NEIKKzoxMDJFNjAwMDAzMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzE4QkIKKzoxMDJFNzAwMDEyMzFGQjIyN0MwNzEyMjVCRjIyMTIyNTVEMjJFNTZENEYKKzoxMDJFODAwMDIwRTcxREU1NEFCNDAzMDA0MDEwQjQwNTAwNTAwQkU1RUYKKzoxMDJFOTAwMDRBN0YwMEZFN0MxNTEyMzFGQjIyN0MwNzEyMjVCRjIyREYKKzoxMDJFQTAwMDEyMjU1RDIyRTU2RDIwRTcwNjdDMDcxMjI1QkYyMjEyNjAKKzoxMDJFQjAwMDI1NUQyMkU1NkQzMEU3MjA5MEZGMDBFMDU0MUY3MDEwODMKKzoxMDJFQzAwMDkwRkYwMUUwQjQ4MDA1MTIyNTU0ODAwMzEyMjU1RDIyOTUKKzoxMDJFRDAwMDdEMDA3QzA1MTIyNTI2MjI5MEZGMDBFMDU0MUY2MDA2MkQKKzoxMDJFRTAwMDdDMDUxMjI1QkYyMkQzRTU3Mjk0NDhFNTcxOTQwMDUwMDkKKzoxMDJFRjAwMDBCQzNFNTcyOTQwN0U1NzE5NDAwNTAwNjdDMDMxMjI1MUMKKzoxMDJGMDAwMEJGMjJFNTRBQjQwNTA0MTIzMEQxMjI3QzA3MTIyNUJGNDYKKzoxMDJGMTAwMDIyRTU2RDMwRTcwODdEMDA3QzA1MTIyNTI2MjI3QzA1MjAKKzoxMDJGMjAwMDEyMjVCRjIyQjQyMDAyODAwM0QzNDAwMDgwMDAxMjJGNUMKKzoxMDJGMzAwMEZGMjI3NTQzMDA5MEZGODNFMDU0MEZEMzk1NDM0MDI0NTQKKzoxMDJGNDAwMEU1NDMyNEYwRjU4MkU0MzRGRUY1ODNFMEFENkFBRTY5MzIKKzoxMDJGNTAwMEFGNjgxMjAzMEYwNTQzMERFRDcwMDEwRThENkE4RTY5ODcKKzoxMDJGNjAwMDhGNjg4MEQxRTU0MzdEMDBGQ0MzRTU3MDlDRjU3MEU1N0EKKzoxMDJGNzAwMDZGOURGNTZGRTU3MDQ1NkY2MDA2RTQ5MEZGODNGMDIyNkEKKzoxMDJGODAwMDkwRkY4MkUwNDQwOEYwRTRGNTZGNzU3MDQ5OTBGQzM1REQKKzoxMDJGOTAwMEUwQjQwNTAyODAwM0QzNDA0MDkwRkMzNkUwRjU0M0I0MzIKKzoxMDJGQTAwMDA1MDI4MDAzRDM0MDBBRTRGRjA0RkU3QzBCMTIzMUZCRDAKKzoxMDJGQjAwMDIyQjQwMTAyODAwM0QzNDAwQUU0RkYwNEZFN0MwOTEyMUMKKzoxMDJGQzAwMDMxRkIyMkI0MDMwMDQwMTBCNDA1MDA1MDBCRTU0MzdGRjEKKzoxMDJGRDAwMDAwRkU3QzE0MTIzMUZCMjIyMkI0ODAwMDQwMjNCNDgyMTQKKzoxMDJGRTAwMDAwNTAxRTdDMzU3REZDMTIxNzdFN0QwMDhDNkM4RDZCMzUKKzoxMDJGRjAwMDkwRkMzN0UwNjAwNTEyMkZGRjgwMDU3QzAwMTIzMDI0MjIKKzoxMDMwMDAwMDIyMjI5MEZGODNFMDU0N0ZGMDkwRkY4MkUwNDQwOEYwOUEKKzoxMDMwMTAwMDkwRkY4MEUwNDQwOEYwMjI5MEZGODJFMDQ0MDhGMDkwQTYKKzoxMDMwMjAwMEZGODBFMDQ0MDhGMDIyOEMyMzdEMDA4QzcwOEQ2Rjc1NEEKKzoxMDMwMzAwMDZBMzU3NTY5RkM3NTY4MDExMjMwMzkyMjkwRkY4M0UwQUEKKzoxMDMwNDAwMDU0N0ZGMEU1NzA2NDQ5NDU2RjcwMDEyMkMzRTU3MDk0QzgKKzoxMDMwNTAwMDA4RTU2Rjk0MDA0MDE1NzUyMTA4RTUyMTdEMDBGQ0MzNEIKKzoxMDMwNjAwMEU1NzA5Q0Y1NzBFNTZGOURGNTZGODAwOTg1NzAyMUU0MzIKKzoxMDMwNzAwMEY1NkY3NTcwNDk3NTIyMDBFNTIyQzM5NTIxNTAyNkFEODQKKzoxMDMwODAwMDZBQUU2OUFGNjgxMjAxRTZGQ0U1MjIyNEY4RjU4MkU0MzUKKzoxMDMwOTAwMDM0RkVGNTgzRUNGMDA1MjIwREVENzAwMTBFOEQ2QThFODUKKzoxMDMwQTAwMDY5OEY2ODgwRDNFNTIxNTQ3RjkwRkY4MUYwMjI4QzQ4OUUKKzoxMDMwQjAwMDdGMDBFRjI0RkQ0MDE5RTRFRjc1RjAwN0E0MjQ3RkY1QUQKKzoxMDMwQzAwMDgyRTQzNEY4RjU4M0UwNjU0ODcwMDJEMzIyMEY4MEUyOTEKKzoxMDMwRDAwMDhGNDdDMzIyODU3MjcwODU3MTZGOTBGRjgyRTA1NEY3MkQKKzoxMDMwRTAwMEYwOTBGRjgzRTA1NDdGRjAyMkMwMDBDMDAxQzAwMkMwMTYKKzoxMDMwRjAwMDA2QzAwN0U1NzgyNDA4Rjg4NjA2NTMwNjdGN0NGRjEyOTEKKzoxMDMxMDAwMDMxNUI3QzAwN0QwMEU1N0I2MDQ2RkY5MEZEOTVFMDU0REYKKzoxMDMxMTAwMDdGNkU3MDBGQzA4M0MwODJBM0UwRkRBM0UwRkNBMzE1MDcKKzoxMDMxMjAwMDdCODAwN0EzQTNBM0RGRTY4MDI2REYwNkQwODJEMDgzQkYKKzoxMDMxMzAwMDgwMUVFMEY4QTNFMEY5QTNFMEZBRDA4MkQwODNFOEYwQTMKKzoxMDMxNDAwMEEzRTlGMEEzRUFGMEEzQzA4M0MwODJBM0EzQTM4MERBMUIKKzoxMDMxNTAwMDEyMzFGNEQwMDdEMDA2RDAwMkQwMDFEMDAwMjI4NUE4QzkKKzoxMDMxNjAwMDdBNzVBODg4RUM3MDAyN0MzRjhDNzkyMkU1NzgyNDA4NzcKKzoxMDMxNzAwMEY4NzYwMDEyMzI0ODgwRkJDMDAwQzAwMUMwMDJDMDA2RDEKKzoxMDMxODAwMEMwMDdBRTA0N0NGRjEyMzE1QkU1N0I2MDQyRkY5MEZEMUYKKzoxMDMxOTAwMDk1RTA1NDdGNkU3MDBCQzA4M0MwODJBM0EzQTMxNTdCMDAKKzoxMDMxQTAwMDgwMDdBM0EzQTNERkVBODAyNkRGMDZEMDgyRDA4MzgwMzYKKzoxMDMxQjAwMEQ4RTBGOEEzRTBGOUEzRTBGQUQwODJEMDgzRThGMEEzNDYKKzoxMDMxQzAwMEU5RjBBM0VBRjBBM0MwODNDMDgyQTNBM0EzODBEQTc4QzYKKzoxMDMxRDAwMDA4MDg3OTE4MDk3QzAxRTY1NDdGNkU3MDA2NzYwMDc3M0UKKzoxMDMxRTAwMDAwODAwNjA4MDkwQ0JDMDhFRTEyMzFGNEQwMDdEMDA2QTYKKzoxMDMxRjAwMEQwMDJEMDAxRDAwMDIyNzU3OTAwODU3QUE4MjJDMEYwRDMKKzoxMDMyMDAwMEMwODJDMDgzQzNFNTdCMjRFODUwMDUxMjMyNDg4MEY0QjUKKzoxMDMyMTAwMEVDNjAzMTkwMzUyM0U0OTNDMzlDNDAyOEMwMDQ3Q0ZGQ0MKKzoxMDMyMjAwMDEyMzE1QkQwMDQ0MzA0ODBFNTdCNzVGMDAzQTQyNDk1NDAKKzoxMDMyMzAwMEY1ODJFNDM0RkRGNTgzRUNGMEVGQTNGMEVFQTNGMDA1QTYKKzoxMDMyNDAwMDdCMTIzMUY0RDA4M0QwODJEMEYwMjJDMDA0N0MyMEQyMTMKKzoxMDMyNTAwMDhDRDI4REQ1MDRGREQwMDQyMjc1QTgwMDc1ODgwMDc1MjgKKzoxMDMyNjAwMEI4MDA3NUYwMDA3NUQwMDBFNEY4OTAwMDAwRjYwOEI4REEKKzoxMDMyNzAwMDAwRkIwMjAwMDBDM0VEOTQwMjUwMDQ3RDAzN0NFOEVDRTcKKzoxMDMyODAwMEY0RkNFREY0RkQwQ0JDMDAwMTBEOEM3RjhEN0UyMkMzOUYKKzoxMDMyOTAwMEVDOTRCQ0VEOTQwMjUwMDQ3RDA3N0NEMEVDRjRGQ0VEODIKKzoxMDMyQTAwMEY0RkQwQ0JDMDAwMTBEOEM3RDhEN0MyMkVDNzAwMTIyQTQKKzoxMDMyQjAwMEMwMDBFNTc4MjQxOEY4QTYwNEU1NzgyNDA4RjhDNjU0NzgKKzoxMDMyQzAwMDdGRjZFNjMwRTcwM0QwMDAyMjEyMzI0ODgwRjRDMjhDNDkKKzoxMDMyRDAwMDg1N0M4Qzg1N0Q4QUQyOENDMEUwQzBEMEMwRjBDMDgyNTUKKzoxMDMyRTAwMEMwODNDMDAwQzAwMUMwMDJDMDAzQzAwNEMwMDVDMDA2NDYKKzoxMDMyRjAwMEMwMDcxMjFBRDFFNTc4MjQwOEY4RTY2MDI0RTU3ODI0OUUKKzoxMDMzMDAwMDEwRjhBNjgxRTU3ODc1RjAyMUE0MjQ4REY1ODJFNDM0QzcKKzoxMDMzMTAwMEZDRjU4Mzc4QUVFNTgxMDRDMzk4RjlFNkYwMDhBM0Q5RkIKKzoxMDMzMjAwMEZBNzQwODI1NzhGODA1NzgwOEU2NTQ4MDcwMENFNTc4N0EKKzoxMDMzMzAwMEI0MDdGMzc4MDg3NTc4MDA4MEVGRTU3ODI0MTBGODg2RjQKKzoxMDMzNDAwMDgxRTU3ODc1RjAyMUE0MjQ4REY1ODJFNDM0RkNGNTgzQzEKKzoxMDMzNTAwMDc4QUVFNTgxMDRDMzk4RjlFMEY2MDhBM0Q5RkFEMDA3NUUKKzoxMDMzNjAwMEQwMDZEMDA1RDAwNEQwMDNEMDAyRDAwMUQwMDBEMDgzNDUKKzoxMDMzNzAwMEQwODJEMEYwRDBEMEQwRTAzMkMwRTBDMEQwQzAwMEMwMDkKKzoxMDMzODAwMDAxQzAwMkMyOEU4NTdFOEQ4NTdGOEJEMjhFNzgxOTc5QTEKKzoxMDMzOTAwMDA5N0EwN0U3NzAwNEE2MDA4MDBCRTY2MDA4MTZFNjcwNUQKKzoxMDMzQTAwMDA0RTc0NDgwRjcwODA5REFFQUU1Nzk2MDEzMTRGNTc5NEYKKzoxMDMzQjAwMDcwMEVFNTc4MjQwOEY4NzYwMDEyMzFGNEQyOENEMjhEQTQKKzoxMDMzQzAwMEQwMDJEMDAxRDAwMEQwRDBEMEUwMzI3NTgxQUQ3NDJBQzcKKzoxMDMzRDAwMDkwRkY5M0YwNzU3RjMwNzU3RUY4NzU3RDYwNzU3Q0YwOTkKKzoxMDMzRTAwMDEyMDUzNjEyMzQ3QzEyMTczNDkwRkY5M0UwNDQwMUYwM0EKKzoxMDMzRjAwMEIyQjMxMjM0QTYxMjMyNTY4MERBMjJDMDAwN0MwMUVDM0QKKzoxMDM0MDAwMDI0MDhGOEU2NjAwOTBDQkMwOEY1MTIzMjQ4ODBFRUQwQkEKKzoxMDM0MTAwMDAwMjJDMEYwQzA4MkMwODNDMDAwQzAwNkMwMDdFRDI0RjcKKzoxMDM0MjAwMDEwRjg3NkJDRUQ3NUYwMjFBNDI0OERGNTgyRTQzNEZDMEYKKzoxMDM0MzAwMEY1ODNDMDgyQzA4M0EzQTNFNDc4MERGMEEzRDhGQ0VDOEQKKzoxMDM0NDAwMDU0N0Y3NUYwMDJBNDI0RUZGNTgyRTVGMDM0MzRGNTgzNUYKKzoxMDM0NTAwMEU0OTNGRTc0MDE5M0Y1ODI4RTgzRTQ5M0ZFNzQwMTkzRUEKKzoxMDM0NjAwMEZGRDA4M0QwODJFRkYwQTNFRUYwRUQyNDA4RjhFQzQ0MTcKKzoxMDM0NzAwMDgwRjZEMDA3RDAwNkQwMDBEMDgzRDA4MkQwRjAyMjc1NUQKKzoxMDM0ODAwMDc4MDA3NTdCMDA3QTA4NzkxODc4MDg3NjAwNzcwMDA4NEMKKzoxMDM0OTAwMDA5REFGOEU0NzgwODc0ODA0NDdGRjY3NDAxNDQxMEY1ODIKKzoxMDM0QTAwMDg5NzVCODA4RDJBQkQyQTkyMjc1ODFBREQyOEVEMjhDRTMKKzoxMDM0QjAwMEQyQUZFNTdCNjAzMkZGOTBGRDk1RTA1NDgwNjAyNDc4QzgKKzoxMDM0QzAwMDA4NzkwOEUwNTQ3RkZBN0IwMEU2NTQ3RkI1MDIwMjdCNUUKKzoxMDM0RDAwMEZGMDhEOUY1RUI3MDBDRUFGMDEyMzNGOEFEMDRBQzAyM0EKKzoxMDM0RTAwMDEyMzQwRkEzQTNBM0RGRDIxMjMyNDg4MEM1N0MwMTdEMjIKKzoxMDM0RjAwMDAwMjIwNEY1MDRFOTA0RUQwNEUxMDRERDA0RDkwNEU1NDcKKzoxMDM1MDAwMDA0RjEwNDlEMDRBMTA0Q0QwNEQxMDQ5OTA0OTkwNDk5MDMKKzoxMDM1MTAwMDA0RDUwNEI1MDRBRDA0QjEwNEE5MDRDMTA0QkQwNEI5QzMKKzoxMDM1MjAwMDA0QzUwNEM5MDRBNTE5MDEwMzAwMjIwMDQ4MDIwMDQ4OEIKKzoxMDM1MzAwMDBFMzAxNDIwQzgxQUQwMTgwQTBDMDUwNjAyMDMwMTAyMjYKKzoxMDM1NDAwMDAwMDFDRTAxODEwMTAwMDBDMDAwODAwMDYwMDAzMDAwNTkKKzoxMDM1NTAwMDE4MDAxMDAwMDgwMDA0MDAwMjAwMDEwMDA4MTgzODI4QjQKKzoxMDM1NjAwMDBDMDUxMDBBMDIwMDAwMDAwMDAwMDMwMTEwMEEwMjAwMEUKKzoxMDM1NzAwMDAwMDAwMDAwRkJFMEZCRjIwOTAyMjcwMDAxMDIwMEEwQUUKKzoxMDM1ODAwMDMyMDkwNDAwMDAwM0ZGMDAwMDAwMDcwNTgxMDI0MDAwMkIKKzoxMDM1OTAwMDAwMDcwNTAxMDI0MDAwMDAwNzA1ODMwMzAyMDAwMTIyMjUKKzoxMDM1QTAwMDAzNTQwMDU1MDA1MzAwNDIwMDMzMDAzNDAwMzEwMDMwMTIKKzoxMDM1QjAwMDAwMjAwMDIwMDAyMDAwMjAwMDIwMDAyMDAwMjAwMDIwMEIKKzowNTM1QzAwMDAwMDAwMDAwMDAwNgorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3RpXzUwNTIuZncuaWhleCBiL2Zpcm13YXJlL3RpXzUwNTIuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTI5ZTA3Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvdGlfNTA1Mi5mdy5paGV4CkBAIC0wLDAgKzEsODYyIEBACis6MTAwMDAwMDBDMTM1MDAwMjAwMUUwMjFCMzJGRkZGRkZGRkZGMDIzMjVDCis6MTAwMDEwMDA2QUZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGMDIzMzRFCis6MTAwMDIwMDAxNTc1ODFDODkwRkVGMDg1ODNBMDEyMzQ3REVDNEQ2MDdCCis6MTAwMDMwMDA2QTc4QTU4MDAzNzYwMDE4Qjg5NkZBNzg3OTgwMDM3NkY2Cis6MTAwMDQwMDAwMDE4Qjg1RkZBNzgyMDgwMDM3NjAwMThCODIwRkE5MDdDCis6MTAwMDUwMDBGRUU1QUU4M0FGODI5MEZEMDAxMjAwQTE2MDA1RTRGMEUyCis6MTAwMDYwMDBBMzgwRjY5MEZFRjBBODgyOTBGRUYwQTk4MkU4QzM5OUUyCis6MTAwMDcwMDA1MDA1NzYwMDA4ODBGNjkwMDBGRjEyMDBBQTkwMDEwMzU4Cis6MTAwMDgwMDAxMjAwQUE5MDAxMDcxMjAwQUE5MDAxMEIxMjAwQzg5MDVBCis6MTAwMDkwMDAwMTExMTIwMEM4OTAwMTE3MTIwMEM4NzVEMDAwMTIzMzY4Cis6MTAwMEEwMDA2NzAyMDExREVGNjU4MjcwMDNFRTY1ODMyMkU0OTNGODE5Cis6MTAwMEIwMDA3NDAxOTNGOTc0MDI5M0ZFNzQwMzkzRjU4MjhFODNFOEJFCis6MTAwMEMwMDA2OTcwMDEyMkU0OTNGNkEzMDg4MEY0RTQ5M0ZDNzQwMUMwCis6MTAwMEQwMDA5M0ZENzQwMjkzRkU3NDAzOTNGRjc0MDQ5M0Y4NzQwNTA0Cis6MTAwMEUwMDA5M0Y1ODI4ODgzMTIwMEExNzAwMTIyRTQ5M0EzQTg4MzcwCis6MTAwMEYwMDBBOTgyOEM4MzhEODJGMEEzQUM4M0FEODI4ODgzODk4MkIwCis6MTAwMTAwMDA4MEUzMjEyMTA0OTI3QTdBMDQ5MkE2QTgwNDkyRkVGMDU4Cis6MTAwMTEwMDAwNDk0MDQ5NEZCRkIwNDk5MDQ5NEZCRkIwNEY5MDRGOTk0Cis6MTAwMTIwMDA4MEZFRDBGMDMwRjAwOTIwRjMwM0Y2ODAxMEY3ODAwRDQ4Cis6MTAwMTMwMDAzMEYxMDkyMEYzMDNGMjgwMDRGMzgwMDFGMDIwRjQwNDhECis6MTAwMTQwMDBGQ0QwRTBDQzIyQ0NDMEUwMTIwMTVBMDIwMTRCQkMwMDMyCis6MTAwMTUwMDAwNUQwRjBBQ0YwMjJDMzEzRENGQzAyMDEyMUJGMDAwOTgyCis6MTAwMTYwMDBFRDI1ODI3NUYwMDFGOEU2MjJCRjAxMEZFRDI1ODJGNTNECis6MTAwMTcwMDA4MkVFMzU4M0Y1ODM3NUYwMDRFMDIyRUQyNTgyNzVGMDdCCis6MTAwMTgwMDAwMkY4RTIyMkQwODNEMDgyRjVGMEMzRTQ5M0EzQzVGMDU1Cis6MTAwMTkwMDA5NUYwQzBFMEMzRDBGMEU0OTNBMzk1RjA0MDEyQTNBMzgwCis6MTAwMUEwMDBDM0U1RjAzMzUwMDIwNTgzMjU4MkY1ODI1MDAyMDU4M0IyCis6MTAwMUIwMDA3NDAxOTNDMEUwRTQ5M0MwRTAyMkQwODNEMDgyRjVGMEQ0Cis6MTAwMUMwMDBFNDkzNzAwOTc0MDE5MzcwMDRBM0EzODAwQzc0MDI5M0U4Cis6MTAwMUQwMDA2NUYwNjAwNUEzQTNBMzgwRTc3NDAxOTNDMEUwRTQ5M0Y2Cis6MTAwMUUwMDBDMEUwMjIxMjAyNUIwMjAxRjIxMjAyQUYwMjAxRjIxMjFGCis6MTAwMUYwMDAwMkQzMDIwMUYyMzBFMDA3MjBFMzAyRTYyMkU3MjIzMEQ4Cis6MTAwMjAwMDBFMTA3MjBFMzAyRTIyMkUzMjIzMEUyMDJFMDIyRTQ5MzZCCis6MTAwMjEwMDAyMjEyMDJEMzAyMDIxQTEyMDJBRjAyMDIxQUFCRjAxMjI5Cis6MTAwMjIwMDAwMjI0Q0JDNUYwQ0IyMjMwRTAxMDIwRTMwNkU2RjVGMDQ3Cis6MTAwMjMwMDAwOEU2MjJFN0Y1RjAwOUU3MTkyMjMwRTExMDIwRTMwNjhECis6MTAwMjQwMDBFMkY1RjAwOEUyMjJFM0Y1RjAwOUUzMTkyMjMwRTIwNkQ0Cis6MTAwMjUwMDBFMEY1RjBBM0UwMjJFNDkzRjVGMDc0MDE5MzIyQkIwMEYzCis6MTAwMjYwMDAwMzc0MDkyMkJCMDEwNzg5ODI4QTgzNzQwNDIyQkIwMkJBCis6MTAwMjcwMDAwNzg5ODI4QTgzNzQxMDIyNzQwQTIyMDIwMjdCQkIwMERGCis6MTAwMjgwMDAwN0U5MjU4MkY4NzQwMTIyQkIwMTBERTkyNTgyRjU4Mjc4Cis6MTAwMjkwMDBFQTM1ODNGNTgzNzQwNDIyQkIwMjBERTkyNTgyRjU4MkQ5Cis6MTAwMkEwMDBFQTM1ODNGNTgzNzQxMDIyRTkyNTgyRjg3NDAyMjIwMjZDCis6MTAwMkIwMDAwMkFGQkYwMDA1RURGODc0MDEyMkJGMDEwNzhEODI4RUU5Cis6MTAwMkMwMDA4Mzc0MDQyMkJGMDIwNzhEODI4RTgzNzQxMDIyRURGODlFCis6MTAwMkQwMDA3NDAyMjIwMjAyRDNCRjAwMDdFRDI1ODJGODc0MDEyMkM2Cis6MTAwMkUwMDBCRjAxMERFRDI1ODJGNTgyRUUzNTgzRjU4Mzc0MDQyMjdFCis6MTAwMkYwMDBCRjAyMERFRDI1ODJGNTgyRUUzNTgzRjU4Mzc0MTAyMjYxCis6MTAwMzAwMDBFRDI1ODJGODc0MDIyMjAyMDMwN0MwRTAxMjAyNUIwMkFDCis6MTAwMzEwMDAwMzFGQzBFMDEyMDJBRjAyMDMxRkMwRTAxMjAyRDMwMkFCCis6MTAwMzIwMDAwMzFGMzBFMDBCMjBFMzA0RDBFMEY2MjJEMEUwRjcyMkY4Cis6MTAwMzMwMDAzMEUxMEIyMEUzMDREMEUwRjIyMkQwRTBGMzIyRDBFMDYxCis6MTAwMzQwMDBGMDIyQzlDREM5Q0FDRUNBQ0JDRkNCMTIwMzUyRURGOTI4Cis6MTAwMzUwMDBFRUZBRUZGQjIyQkIwMDJGQkYwMDBBRkFFREY4RTdGNjNBCis6MTAwMzYwMDAwODA5REFGQTIyQkYwMTEyOEQ4MjhFODNGODAyMDM2RjI4Cis6MTAwMzcwMDAwOUEzRTdGMEQ4RkEyMjAyMDM3QUZBRURGOEU3RjIwOEM3Cis6MTAwMzgwMDAwOURBRkEyMjAyMDM4NEJCMDE0REJGMDAxNDg5ODI4QTc0Cis6MTAwMzkwMDA4M0Y5RURGODAyMDM5NjA4QTNFMEY2RDlGQTIyMDIwM0U2Cis6MTAwM0EwMDBBN0JGMDEyMjhEODI4RTgzRkIwOEM5QzU4MkM5Q0FDNTM5Cis6MTAwM0IwMDA4M0NBRTBBM0M5QzU4MkM5Q0FDNTgzQ0FGMEEzREJFQTYwCis6MTAwM0MwMDBEOEU4MjIwMjAzQ0E4RDgyOEU4M0Y5RURGOEUwRjIwOEE0Cis6MTAwM0QwMDBBM0Q5RkEyMjAyMDNENEJCMDI0REJGMDAxMjg5ODI4QTNDCis6MTAwM0UwMDA4M0Y5RURGODAyMDNFNjA4QTNFNDkzRjZEOUY5MjJCRkY2Cis6MTAwM0YwMDAwMTIzOEQ4MjhFODNGQjA4QzlDNTgyQzlDQUM1ODNDQTAxCis6MTAwNDAwMDBFNDkzQTNDOUM1ODJDOUNBQzU4M0NBRjBBM0RCRTlEOEVFCis6MTAwNDEwMDBFNzIyMDIwNDE5ODk4MjhBODNGOUVERjhFNDkzRjIwODRECis6MTAwNDIwMDBBM0Q5RjkyMjAyMDQyQUJGMDAwREZBRURGOEUzRjYwODc5Cis6MTAwNDMwMDAwOURBRkEyMjAyMDQzNEJGMDExMjhEODI4RTgzRjgwMjk3Cis6MTAwNDQwMDAwNDQxMDlBM0UzRjBEOEZBMjIwMjA0NENGQUVERjhFM0UwCis6MTAwNDUwMDBGMjA4MDlEQUZBMjIwMjA0NTZFNkZCMDhFNkZBMDhFNjkwCis6MTAwNDYwMDBGOTA0RjYxODcwMDEwNjIyRTZGRjA4RTZGRTA4RTZGRDJDCis6MTAwNDcwMDAyMkVGRjBBM0VFRjBBM0VERjAyMkVCRjBBM0VBRjBBMzVECis6MTAwNDgwMDBFOUYwMjJFMEZGQTNFMEZFQTNFMEZEMjJFMEZCQTNFMDExCis6MTAwNDkwMDBGQUEzRTBGOTIyMDAwMDAwMDAwMDAwMDAwNEY5MDA1QjZDCis6MTAwNEEwMDAwNTczMDAyNjA1OUEwMDMzMEEwQjAwNUIwQTc3MDA2MDhCCis6MTAwNEIwMDAxNTUyMDA1QjBDRkIwMDVCMDlBQjAwNUIwOUUyMDA1QkMzCis6MTAwNEMwMDAwREMyMDA1QjBCRjMwMDVCMEExRTAwNUIwQTUzMDA1QjZFCis6MTAwNEQwMDAxNzRBMDAzMzE3NjAwMDM0MUU0RDAwNDMxRUYwMDA0NERECis6MTAwNEUwMDAyMDVEMDA0NDIwNEIwMDQ3MUYxNzAwNDcxRkJDMDA0REY0Cis6MTAwNEYwMDAyMDBEMDA0RjFGMzkwMDU4MzFGNTAwNUI3Q0NDN0RGRjhCCis6MTAwNTAwMDAxMjFDRkUyMjc0OTA5MEZGOTFGMDkwRkZGQ0UwMjBFNzE3Cis6MTAwNTEwMDAyREMyQUZBRTU5QUY1ODc1NUEyMEU1NUExNEM1NUE2MDZFCis6MTAwNTIwMDAxOUU0RkU3RjA1RUU0RkNFMjRGRkNFQ0YzNEZGQ0Y2MDFGCis6MTAwNTMwMDAwN0U0OTBGRjkyRjA4MEVEODBFMDhFNTk4RjU4MjIxMkYwCis6MTAwNTQwMDAwNTAxN0QwNzdDQjcxMjMyMTE3RDBGN0M2RTEyMzIyQkI0Cis6MTAwNTUwMDA3ODk3N0EwNkU0RjYwOERBRkM3QTA2MTIwNUNGN0MwMzZGCis6MTAwNTYwMDAxMjBFNTc3QzA0MTIwRTU3MTIyMThCRTRGRUZGN0MwRkYzCis6MTAwNTcwMDAxMjMxOUFEMkE4MjIxMjMwODVFNDkwRkQ0MEYwOTBGRjBCCis6MTAwNTgwMDBGMEUwMzBFNDA4NzQwMTkwRkQ0MUYwODAwNUU0OTBGRDU2Cis6MTAwNTkwMDA0MUYwN0QwQTdDMDAxMjI0QjExMjMxMDgyMjEyMzA4NTBDCis6MTAwNUEwMDA5MEZENDFFMDE0NzAwRTkwRkZGMEUwNDQxMEYwN0MwMEVDCis6MTAwNUIwMDAxMjI1NEE4MDE5OTBGRDQxRTA3MDBFOTBGRkYwRTA1NDQyCis6MTAwNUMwMDBFRkYwN0MwMDEyMjU0QTgwMDU3QzE3MTIyNTRBMTIzMTczCis6MTAwNUQwMDAwODIyOTBGRkYwRTA1NEFCRjA5MEZGRjBFMDQ0MjBGMEYwCis6MTAwNUUwMDAyMjhDMzc4RDM2Nzg3Q0VERjYwOEVDRjZFREZFRUNGRENFCis6MTAwNUYwMDA3RjAxOTAwMDA1MTIwMUVDNzg3QUY2Nzg3Q0U2RkQwODIwCis6MTAwNjAwMDBFNkZDRURGRUVDRkQ3RjAxOTAwMDA0MTIwMUVDNTQwRkJFCis6MTAwNjEwMDBGQzdEN0ExMjE3OUQ3ODdBRTY3MDBEQUQzQUFFMzlBRjRGCis6MTAwNjIwMDAzOEU0MTIwMzBGN0MwODIyOTBGRkYwRTA1NEZFRjA5MEIzCis6MTAwNjMwMDBGRkYwRTA1NEZERjA4MDFFNzg3Q0U2RkQwOEU2RkNFRDVFCis6MTAwNjQwMDBGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFMjVFMDQ0MDE5MEFGCis6MTAwNjUwMDBGRkYzRjAwMjA2REI3ODdDRTZGRDA4RTZGQ0VERkVFQzNECis6MTAwNjYwMDBGRDdGMDE5MDAwMDYxMjAyMEU1NEZFOTBGRkYzRjA4MDExCis6MTAwNjcwMDAyQjc4N0NFNkZEMDhFNkZDRURGRUVDRkQ3RjAxOTAwMEFBCis6MTAwNjgwMDAwODEyMDIwRUZBRUI5MEZGRjFGMDEyMDhDQTQwMERBRDBECis6MTAwNjkwMDAzQUFFMzlBRjM4RTQxMjAzMEY3QzE4MjI3ODdDRTZGREJECis6MTAwNkEwMDAwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDgxMjAyMEU5MEMyCis6MTAwNkIwMDBGRkYxRjAxMjA4Q0E0MDBEQUQzQUFFMzlBRjM4RTQxMjdFCis6MTAwNkMwMDAwMzBGN0MxODIyNzg3Q0U2RkQwOEU2RkNFREZFRUNGRENECis6MTAwNkQwMDA3RjAxOTAwMDA2MTIwMjBFNDQwMTkwRkZGM0YwNzg3RDM2Cis6MTAwNkUwMDBFNjI0MDNGNjE4RTYzNDAwRjY3ODdBRTYyNEZFNTAwOThDCis6MTAwNkYwMDA5MEZGRjBFMDU0RkRGMDgwMDc5MEZGRjBFMDQ0MDJGMDNFCis6MTAwNzAwMDBFNDkwRkZGMUYwNzg3Qjc2MDA3ODdBRTYyNEZGRkNFNDUxCis6MTAwNzEwMDAzNEZGRkQ3ODdCRTY3RjAwRkVFQ0QzOUVFRjY0ODBDRDU2Cis6MTAwNzIwMDA2NDgwOUQ0MDJGMTIwOEFGNDAwRjc4N0JFNkFEM0FBRTUzCis6MTAwNzMwMDAzOUFGMzgxMjAzMEY3QzE4MjI5MEZGRjJFMEZDNzg3QzZFCis6MTAwNzQwMDA4NjgzMDg4NjgyRUNGMDc4N0IwNkEzNzg3Q0E2ODMwOEYzCis6MTAwNzUwMDBBNjgyODBCNTEyMDhBRjQwMEY3ODdCRTZBRDNBQUUzOTdECis6MTAwNzYwMDBBRjM4MTIwMzBGN0MxODIyOTBGRkYyRTBGQzc4N0M4NkYxCis6MTAwNzcwMDA4MzA4ODY4MkVDRjA3ODdBRTZBRDNBQUUzOUFGMzgxMjZCCis6MTAwNzgwMDAwMzBGN0MwMDIyOEMzNzhEMzY3ODdDRURGNjA4RUNGNjcyCis6MTAwNzkwMDBFREZFRUNGRDdGMDE5MDAwMDUxMjAxRUM3ODdCRjY3ODEwCis6MTAwN0EwMDA3Q0U2RkQwOEU2RkNFREZFRUNGRDdGMDE5MDAwMDQxMjA2Cis6MTAwN0IwMDAwMUVDNTQwRkZDN0Q3QjEyMTc5RDc4N0JFNjcwMDM3QzY3Cis6MTAwN0MwMDAwODIyOTBGRkYwRTA1NEZFRjA5MEZGRjBFMDU0RkRGMEJFCis6MTAwN0QwMDA4MDFCNzg3Q0U2RkQwOEU2RkNFREZFRUNGRDdGMDE5MEQ5Cis6MTAwN0UwMDAwMDA4MTIwMjBFMjVFMDkwRkZGM0YwODA1Qjc4N0NFNkIzCis6MTAwN0YwMDBGRDA4RTZGQ0VERkVFQ0ZEN0YwMTkwMDAwNjEyMDIwRTA2Cis6MTAwODAwMDA1NEZFOTBGRkYzRjA4MDIxNzg3Q0U2RkQwOEU2RkNFREQ1Cis6MTAwODEwMDBGRUVDRkQ3RjAxOTAwMDA4MTIwMjBFRkFFQjkwRkZGMTUyCis6MTAwODIwMDBGMDEyMDhDQTQwMDM3QzE4MjI3ODdDRTZGRDA4RTZGQzNBCis6MTAwODMwMDBFREZFRUNGRDdGMDE5MDAwMDgxMjAyMEU5MEZGRjFGMDNBCis6MTAwODQwMDAxMjA4Q0E0MDAzN0MxODIyNzg3REU2MjQwQUY2MThFNkNFCis6MTAwODUwMDAzNDAwRjY3ODdBNzYwMDc4N0JFNjI0RkZGQ0U0MzRGRkY3Cis6MTAwODYwMDBGRDc4N0FFNjdGMDBGRUVDRDM5RUVGNjQ4MENENjQ4MDU1Cis6MTAwODcwMDA5RDQwMjE3ODdDODY4MzA4ODY4MkUwOTBGRkYxRjAxMjBCCis6MTAwODgwMDAwOENBNDAwMzdDMTgyMjc4N0EwNjc4N0QwNkU2MTg3MDNDCis6MTAwODkwMDAwMTA2ODBDMzkwRkZGMEUwNDQwMUYwNzg3Qzg2ODMwODc1Cis6MTAwOEEwMDA4NjgyRTA5MEZGRjFGMDEyMDhDQTQwMDM3QzE4MjI3Qzk3Cis6MTAwOEIwMDAwMDIyOTBGRkYwRTAyMEU3MTI5MEZGRjBFMDMwRTUwOTIxCis6MTAwOEMwMDA5MEZGRjBFMDQ0MjBGMEMzMjI4MEU3RDMyMjkwRkZGMEI1Cis6MTAwOEQwMDBFMDIwRTMxMjkwRkZGMEUwMzBFNTA5OTBGRkYwRTA0NDAzCis6MTAwOEUwMDAyMEYwQzMyMjgwRTdEMzIyOEM0MjhENDE3QzAwRUQ1NDVFCis6MTAwOEYwMDBGMEZERUM3MDAzRUQ2NDMwNzAwNTc1M0UwMzgwMDM3NTA4Cis6MTAwOTAwMDAzRTA0QUMzRTEyMEY3Qzc1ODMwMDg1ODM0MEU1NDE1NDY0Cis6MTAwOTEwMDAwRkY1M0ZFNTQwNzAwNEU1M0Y2NDAzNzAzNUU1M0UyNDg0Cis6MTAwOTIwMDBGRDc1RjAwQUE0MjQwQUY1ODJFNDM0RkRGNTgzRTAzMDc1Cis6MTAwOTMwMDBFNjA1MTIxMDY3ODAxOUU1M0UyNDk3RjhDNjU0RkJGNkM5Cis6MTAwOTQwMDA3OEEzRTYyNDA1RjU4MjE4RTYzNDAwRjU4Mzc0MEZGMEU5Cis6MTAwOTUwMDA4MDU5RTU0MDcwMDRFNTNGNjQwNDcwNDhFNTNFMjRGRDlECis6MTAwOTYwMDA3NUYwMEFBNDI0MEFGNTgyRTQzNEZERjU4M0UwMzBFNTRECis6MTAwOTcwMDAwN0FDNDJBRDQxMTIxQzkzRTU0MjMwRTIxNTc4QTdFNjgwCis6MTAwOTgwMDAzMEUwMEY3OEE3RTYzMEUxMDlFNEZGMDRGRTdDMDQxMkIyCis6MTAwOTkwMDAzMTlBNzhBM0U2MjQwNkY1ODIxOEU2MzQwMEY1ODM3NENDCis6MTAwOUEwMDAwRkYwODAwN0U0RkM3REVFMTIxQzkzQzIwMzIyMTIzMDhDCis6MTAwOUIwMDA4NTEyMEY3Qzc4QTNFNjI0MDZGNTgyMThFNjM0MDBGNTRDCis6MTAwOUMwMDA4M0UwOTBGRDQwRjA3OEEzRTYyNDA1RjU4MjE4RTYzNDM0Cis6MTAwOUQwMDAwMEY1ODNFMDkwRkQ0MUYwQzIwMzdEMDI3QzAwMTIyNDBCCis6MTAwOUUwMDBCMTEyMzEwODIyMTIzMDg1Nzg4RkVDRjZFQzI0OTdGODlBCis6MTAwOUYwMDBFNjMwRTEwNzdDMTMxMjI1NEE4MDBGOTBGRDQxRTBGREFGCis6MTAwQTAwMDA3ODhGRTZGQzEyMTNGRDEyMjU0QTEyMzEwODIyMTIzMEFCCis6MTAwQTEwMDA4NTc4OEZFQ0Y2N0QwMDEyMEYwQjEyMjU0QTEyMzEwOEYzCis6MTAwQTIwMDAyMjEyMzA4NTc4OEZFQ0Y2RUMyNDk3RjhFNjMwRTIwNzU2Cis6MTAwQTMwMDA3QzEzMTIyNTRBODAxQjc4OEZFNjI0OTdGOEU2MjBFMTg0Cis6MTAwQTQwMDAwNzdDMTIxMjI1NEE4MDBBNzg4RkU2RkMxMjE0MjExMkM0Cis6MTAwQTUwMDAyNTRBMTIzMTA4MjIxMjMwODU3ODhGRUNGNkVDMjQ5NzYzCis6MTAwQTYwMDBGOEU2MjBFMjA3N0MxMTEyMjU0QTgwMEE3ODhGRTZGQzFFCis6MTAwQTcwMDAxMjE1MjIxMjI1NEExMjMxMDgyMjEyMzA4NTc4OEZFQzg1Cis6MTAwQTgwMDBGNjEyMEY3Qzc4QTNFNjI0MDlGNTgyMThFNjM0MDBGNTA3Cis6MTAwQTkwMDA4M0UwOTBGRDQ3RjA3OEEzRTYyNDBBRjU4MjE4RTYzNDU3Cis6MTAwQUEwMDAwMEY1ODNFMDkwRkQ0OEYwNzhBM0U2MjQwM0Y1ODIxODcyCis6MTAwQUIwMDBFNjM0MDBGNTgzRTBGQzc4QTNFNjI0MDRGNTgyMThFNjJBCis6MTAwQUMwMDAzNDAwRjU4M0UwRjU1Qzc4QTNFNjI0MDJGNTgyMThFNkFECis6MTAwQUQwMDAzNDAwRjU4M0UwRjU1RDhDNUJFNEVDMzMzMzU0MDE3ODRFCis6MTAwQUUwMDA4RkY2NjAwOEU1NUMzMEUxMDM3ODhGMDY3ODhGRTY5MDNBCis6MTAwQUYwMDBGRDQ5RjA3OEExRTYyNDAyRjU4MjE4RTYzNDAwRjU4MzdBCis6MTAwQjAwMDBFMEZEQTNFMDU0MENGQ0VENTRFNjhDNUZGNTVFRTU1Qjg0Cis6MTAwQjEwMDAzMEU1MDM0MzVGMDFFNTVDMjBFNTBFRTU1QjU0N0Y3MDQzCis6MTAwQjIwMDAwOEU1NUIyMEU3MDM0MzVGMDJFNTVCMzBFMzAzNDM1RkQ3Cis6MTAwQjMwMDAxMEU1NUIzMEUyMDM0MzVGMjBFNTVCNTQwMzYwMDM0MzUxCis6MTAwQjQwMDA1RjQwRTU1QjMwRTEwMzQzNUY4MEU1NUIzMEU0MDM0M0Y2Cis6MTAwQjUwMDA1RTAxRTU1QjMwRTYwMzQzNUUwOEU1NUMyMEU0MEVFNUZDCis6MTAwQjYwMDA1QjU0N0Y3MDA4RTU1QjIwRTcwMzQzNUUxMDUzNUZGQjM3Cis6MTAwQjcwMDA1MzVFRjlBRDVFRTU1RjkwRkQ0MkNERjBBM0NERjBFNUFCCis6MTAwQjgwMDA1RDMwRTMwREU1NUQ1NDMwQzQ1NDBGOTBGRDQ1RjA4MEI5Cis6MTAwQjkwMDAwNUU0OTBGRDQ1RjBFNTVENTQwMzkwRkQ0NEYwRTU1RDBFCis6MTAwQkEwMDA1NDA0QzMxMzkwRkQ0NkYwOTBGRDQ0RTA3MDBFN0QzRDZCCis6MTAwQkIwMDA3RUZEN0YwMTc0MDE5MDAwMDkxMjAxNDI3OEEzRTYyNEIyCis6MTAwQkMwMDAwOEY1ODIxOEU2MzQwMEY1ODNFMDdDMDBGRDc4QTNFNkEyCis6MTAwQkQwMDAyNDA3RjU4MjE4RTYzNDAwRjU4M0UwN0YwMDRDRkVFRjMxCis6MTAwQkUwMDA0RDkwRkQ0MEYwQTNDRUYwQ0VDMjAzN0QwQTdDMDAxMkYyCis6MTAwQkYwMDAyNEIxMTIzMTA4MjIxMjMwODU3ODhGRUNGNjc4OTQ3NjgxCis6MTAwQzAwMDAwMTA4NzZGRDA4NzY0MDc4OTE3NjBDNzg5NDEyMDQ2NTk4Cis6MTAwQzEwMDAxMjAyMTQ3ODkyQ0JGNkNCMDhGNjdGMDBFRjI0RUI0MDVCCis6MTAwQzIwMDAxRkU0RUYyNUUwOTAzNEJGRkQ5M0NEMDQ5Mzc4OTM2NkU1Cis6MTAwQzMwMDA3MDAzRUQxODY2NzAwNjc4OTE3NjAwODAwMzBGODBEQ0YzCis6MTAwQzQwMDA3ODkwRUZGNjc4OTQxMjA0NjU5MDAwMDIxMjAyMEU3ODA0Cis6MTAwQzUwMDA5MkNCRjZDQjA4RjY1NDA0Q0I1NDA2NEI2MDA0Nzg5MTQzCis6MTAwQzYwMDA3NjBCNzg5M0U2MzBFMzEzNzg5NDEyMDQ2NTkwMDAwNUQwCis6MTAwQzcwMDAxMjAxRUMyNEZCNTAwNDc4OTE3NjBENzg5M0U2NTRDMDcxCis6MTAwQzgwMDA3RDAwNjRDMDRENzAwNDc4OTE3NjBCNzg5NDEyMDQ2NUYxCis6MTAwQzkwMDA5MDAwMDQxMjAxRUMyNEZDNTAwNDc4OTE3NjBGNzg5NEIzCis6MTAwQ0EwMDAxMjA0NjU5MDAwMDYxMjAxRUMyNEZENTAwNDc4OTE3NjQwCis6MTAwQ0IwMDAwRTc4OTQxMjA0NjU5MDAwMDkxMjAxRUMyNEZENTAwNDkyCis6MTAwQ0MwMDA3ODkxNzYwQTc4OTFFNjcwMkE3ODhGRTZGQzEyMEY3QzhDCis6MTAwQ0QwMDA3ODk0MTIwNDY1NzhBMUU2Rjk3OEEwRTZGQTdCMDE3NEFECis6MTAwQ0UwMDAwQTc4MDAxMjAzM0ZDMjAzNzg4RkU2RkMxMjExMjM3OEMyCis6MTAwQ0YwMDA5MUVDRjY3ODkxRTZGQzEyMjU0QTEyMzEwODIyMTIzMDY2Cis6MTAwRDAwMDA4NTc4OEZFQ0Y2MTIwRjdDNzg4RkU2MjRGRDc1RjAwQTVCCis6MTAwRDEwMDBBNDI0MUNGNTgyRTQzNEZERjU4M0FDODJBRDgzNzhBMDc1Cis6MTAwRDIwMDA4NjgzMDg4NjgyRUNGOUVERkE3QjBBNzgwMTEyMDNBNzI0Cis6MTAwRDMwMDBDMjAzNzg4RkU2RkMxMjExMjMxMjMxMDgyMjhEMkI4QzBFCis6MTAwRDQwMDAyQUVENjA0MDc1MjcwMTc1Mjk0ODc1MjhGRkU1MkEyNDlBCis6MTAwRDUwMDBGREZDRTQzNEZGRkRFQzdDMDMyNUUwQ0QzM0NERENGOTc0Cis6MTAwRDYwMDBGQ0U1MjkyQ0Y1MjlFNTI4M0RGNTI4QUQyOUFFMjhBRjZECis6MTAwRDcwMDAyNzc0ODA5MDAwMDYxMjAzMTc3NDgwOTAwMDAyMTIwM0ZCCis6MTAwRDgwMDAxNzEyMEZEM0U1MkIxNDYwM0I3NTI3MDE3NTI5MDg3NUUxCis6MTAwRDkwMDAyOEZGRTUyQTI0RkRGQ0U0MzRGRkZERUM3QzAzMjVFMDdDCis6MTAwREEwMDBDRDMzQ0REQ0Y5RkNFNTI5MkNGNTI5RTUyODNERjUyOEU2Cis6MTAwREIwMDBBRDI5QUUyOEFGMjdFNDkwMDAwNjEyMDMxN0U0OTAwMDk3Cis6MTAwREMwMDAwMjEyMDMxNzIyMTIzMDg1Nzg4RkVDRjZFQzI0OTdGODg0Cis6MTAwREQwMDBFNjMwRTIwOTc4OEZFNkZDMTIxNTIyRDIwMDc4OEZFNjIxCis6MTAwREUwMDBGQzEyMEY3Qzc4OTA3NjAwOTBGRDQxRTAzMEU3MDQ3OEFCCis6MTAwREYwMDA5MDc2MDE3ODkwRTZGRDc4OEZFNkZDMTIwRDNBQzIwM0ZBCis6MTAwRTAwMDAzMDAwMDc3ODhGRTZGQzEyMTQyMTdDMDAxMjI1NEExMjZDCis6MTAwRTEwMDAzMTA4MjI3OEEzRTYyNDA0RjU4MjE4RTYzNDAwRjU4MzJECis6MTAwRTIwMDBFMDQ0MDFGMDc4QTNFNjI0MDRGNTgyMThFNjM0MDBGNUU2Cis6MTAwRTMwMDA4M0UwMzBFMDAyODBFRDc4QTNFNjI0MEJGNTgyMThFNjJCCis6MTAwRTQwMDAzNDAwRjU4M0UwNTRGOEYwNzhBM0U2MjQwMkY1ODIxODI0Cis6MTAwRTUwMDBFNjM0MDBGNTgzRTA0NDgwRjAyMkMyMDM4QzU4MTIwRjgwCis6MTAwRTYwMDA3Qzc4QTA4NjgzMDg4NjgyNzlFRTdBMzQ3QjBBNzgwMUMyCis6MTAwRTcwMDAxMjAzRjUxMjBFMTBBQzU4N0QwMjEyMEQzQUMyMDNBQ0VCCis6MTAwRTgwMDA1ODEyMTEyMzIyOEQ1MzhFNTI4RjUxOEM1MDEyMEY3Qzg5Cis6MTAwRTkwMDA3NTRGMDA3OEEzRTYyNDA1RjU4MjE4RTYzNDAwRjU4MzQzCis6MTAwRUEwMDBFMDIwRTQxNkU1NEYyNEY2NDAxMDA1NEZDMjAzN0MxOEZECis6MTAwRUIwMDAxMjMyNDhBQzUwMTIwRjdDODBEOTc4QTNFNjI0MDVGNTk1Cis6MTAwRUMwMDA4MjE4RTYzNDAwRjU4M0UwMjBFNDA1QzIwMzdDMDIyMkE4Cis6MTAwRUQwMDA3OEEzRTYyNDA1RjU4MjE4RTYzNDAwRjU4M0UwNTQwRjg0Cis6MTAwRUUwMDA2MDE2NzhBM0U2MjQwNUY1ODIxOEU2MzQwMEY1ODNFMDYxCis6MTAwRUYwMDA1NDBGRjBDMjAzN0MwMTIyNzhBMjg2ODMwODg2ODJFMDI4Cis6MTAwRjAwMDBBRDUzQUU1MkFGNTExMjAzMEZDMjAzN0MwMDIyOEQzMTlDCis6MTAwRjEwMDA4QzMwMTIxNTIyRTUzMTYwMjBFNTMwQjQwMzBDN0MwMUUxCis6MTAwRjIwMDAxMjI0N0M3QzgxMTIyNDdDODAwRkU1MzBCNDA0MEE3QzdFCis6MTAwRjMwMDAwMjEyMjQ3QzdDODIxMjI0N0NBQzMwMTIwRjdDRTUzMUJFCis6MTAwRjQwMDA2MDFBNzhBNDg2ODMwODg2ODJFMDU0RTdGMEEzQTNBM0ZFCis6MTAwRjUwMDBBM0UwNTRFN0YwQUMzMDdEMDIxMjBEM0E3OEEwODY4MzBFCis6MTAwRjYwMDAwODg2ODI3OUY4N0EzNDdCMEE3ODAxMTIwM0Y1QzIwMzg1Cis6MTAwRjcwMDBFNTMwMjQ5N0Y4QzY1NEZERjZBQzMwMTIxMTIzMjI4Q0NDCis6MTAwRjgwMDAyNjMwMDMwNTEyMzFFNzgwRjg3QzBBMTIzMEZBRDIwM0NBCis6MTAwRjkwMDBFNTI2MjRGRDc4OURGNjcwMDk3OEE0NzZGRjA4NzZFMEIyCis6MTAwRkEwMDA4MDA3NzhBNDc2RkYwODc2RTI3ODlERTY3NUYwMTBBNEI1Cis6MTAwRkIwMDBBREYwRkMyNEEwNzhBM0Y2RUQzNEZGMThGNjc4OURFNjlBCis6MTAwRkMwMDA3NUYwMEFBNDI0MDhGQ0U0MzRGREZENzhBMEVERjYwOEQxCis6MTAwRkQwMDBFQ0Y2MTIzMTkzMjI3OEEzRTYyNDAyRjU4MjE4RTYzNDY3Cis6MTAwRkUwMDAwMEY1ODNFMDMwRTcyMjc4QTNFNjI0MDJGNTgyMThFNkQ0Cis6MTAwRkYwMDAzNDAwRjU4M0UwNTQ3RkYwNzhBM0U2MjQwMkY1ODIxOEVDCis6MTAxMDAwMDBFNjM0MDBGNTgzRTA0NDgwRjAyMjc4QTQ4NjgzMDg4NkU1Cis6MTAxMDEwMDA4MkUwNTQ3RkYwQUQ4M0U1ODIyNDA0RkNFNDNEOEM4MkMxCis6MTAxMDIwMDBGNTgzRTA1NDdGRjA3OEEzRTYyNDBCRjU4MjE4RTYzNENDCis6MTAxMDMwMDAwMEY1ODNFMDU0RjhGMDc4QTVFNjI0MDFGNTgyMThFNjdGCis6MTAxMDQwMDAzNDAwRjU4M0UwNDQwM0YwNzhBNUU2MjQwNUY1ODIxODIyCis6MTAxMDUwMDBFNjM0MDBGNTgzRTA0NDAzRjA3OEEzRTYyNDA1RjU4MjQ2Cis6MTAxMDYwMDAxOEU2MzQwMEY1ODM3NDBGRjAyMjc4QTQ4NjgzMDg4NjhFCis6MTAxMDcwMDA4MkUwNTQzRkYwQUQ4M0U1ODIyNDA0RkNFNDNEOEM4MkExCis6MTAxMDgwMDBGNTgzRTA1NDNGRjA3ODlERTYyNDlFRjhFNkZDNzhBNUQxCis6MTAxMDkwMDBFNjI0MDFGNTgyMThFNjM0MDBGNTgzRUNGMDc4OURFNjRECis6MTAxMEEwMDAyNDlFRjhFNkZDNzhBNUU2MjQwNUY1ODIxOEU2MzQwMENGCis6MTAxMEIwMDBGNTgzRUNGMDc4QTNFNjI0MEJGNTgyMThFNjM0MDBGNTBFCis6MTAxMEMwMDA4M0UwNTRGQjQ0MDJGNTI2NzhBMUU2MjQwMkY1ODIxODU5Cis6MTAxMEQwMDBFNjM0MDBGNTgzRTAzMEU1MDM0MzI2MDE3OEEzRTYyNEY3Cis6MTAxMEUwMDAwNUY1ODIxOEU2MzQwMEY1ODNFMDMwRTAwMzEyMEZEM0YzCis6MTAxMEYwMDBFNTI2RkM3OEEzRTYyNDBCRjU4MjE4RTYzNDAwRjU4Mzk4Cis6MTAxMTAwMDBFQ0YwNzhBM0U2MjQwNUY1ODIxOEU2MzQwMEY1ODM3NDQ0Cis6MTAxMTEwMDAwRkYwNzhBNDg2ODMwODg2ODJFMDQ0ODBGMEEzQTNBMzFFCis6MTAxMTIwMDBBM0UwNDQ4MEYwMjI4QzJBMTIwRjdDNzhBMUU2MjQwOEU4Cis6MTAxMTMwMDBGNTgyMThFNjM0MDBGNTgzRTBGQzc4QTNFNjI0MEFGNThFCis6MTAxMTQwMDA4MjE4RTYzNDAwRjU4M0VDRjA3OEExRTYyNDA3RjU4MkY2Cis6MTAxMTUwMDAxOEU2MzQwMEY1ODNFMEZDNzhBM0U2MjQwOUY1ODIxODRDCis6MTAxMTYwMDBFNjM0MDBGNTgzRUNGMDc4QTA4NjgzMDg4NjgyRTBGRDAzCis6MTAxMTcwMDBBM0UwRkNFREZFNzhBM0U2MjQwOEY1ODIxOEU2MzQwMDJGCis6MTAxMTgwMDBGNTgzRUVGMEVDRkU3OEEzRTYyNDA3RjU4MjE4RTYzNDRBCis6MTAxMTkwMDAwMEY1ODNFRUYwOEMyOThEMjhDM0VDOTQwMkVEOTQwNkMzCis6MTAxMUEwMDA0MDA1NzUyNzdDODAzM0QzRTUyOTk0ODFFNTI4OTQwMTk3Cis6MTAxMUIwMDA0MDA1NzUyNzNDODAyM0QzRTUyOTk0QzBFNTI4OTQwMDk5Cis6MTAxMUMwMDA0MDA1NzUyNzE4ODAxM0QzRTUyOTk0MzBFNTI4OTQwMDRECis6MTAxMUQwMDA0MDA1NzUyNzBDODAwMzc1MjcwOEFGMjdFNEVGNTQ3QzgyCis6MTAxMUUwMDA0NDgzRkY4RjI3RTUyN0ZDNzhBNUU2MjQwMUY1ODIxOEM0Cis6MTAxMUYwMDBFNjM0MDBGNTgzRUNGMEU1MjdGQzc4QTVFNjI0MDVGNTU4Cis6MTAxMjAwMDA4MjE4RTYzNDAwRjU4M0VDRjBFNTI3RkM3ODlERTYyNEFGCis6MTAxMjEwMDA5RUY4RUNGNjc4QTNFNjI0MDJGNTgyMThFNjM0MDBGNTkxCis6MTAxMjIwMDA4M0UwRjUyNzc4QTFFNjI0MDJGNTgyMThFNjM0MDBGNTdDCis6MTAxMjMwMDA4M0EzRTAzMEUzMTc1MzI3Qzc3OEExRTYyNDA1RjU4MjlFCis6MTAxMjQwMDAxOEU2MzQwMEY1ODNFMDkwMzRFOTkzNDIyNzc4QTFFNjZDCis6MTAxMjUwMDAyNDAyRjU4MjE4RTYzNDAwRjU4M0UwMzBFNzA1NDMyN0UxCis6MTAxMjYwMDA0MDgwMDM1MzI3QkY1MzI3RkI3OEExRTYyNDA2RjU4MjZECis6MTAxMjcwMDAxOEU2MzQwMEY1ODNFMDYwMDM0MzI3MDQ1MzI3RkM3ODI1Cis6MTAxMjgwMDBBMUU2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMDQyMjc0MzAyCis6MTAxMjkwMDAyNzgwRTUyN0ZDNzhBM0U2MjQwMkY1ODIxOEU2MzQwMENGCis6MTAxMkEwMDBGNTgzRUNGMDc4QTNFNjI0MDRGNTgyMThFNjM0MDBGNTIzCis6MTAxMkIwMDA4M0UwRjUyNzc4QTFFNjI0MDJGNTgyMThFNjM0MDBGNUVDCis6MTAxMkMwMDA4M0EzRTAzMEUxMDU1MzI3REY4MDAzNDMyNzIwNzhBMTgzCis6MTAxMkQwMDBFNjI0MDJGNTgyMThFNjM0MDBGNTgzRTAzMEU0MDU1Mzk1Cis6MTAxMkUwMDAyN0VGODAwMzQzMjcxMDc4QTFFNjI0MDlGNTgyMThFNjRBCis6MTAxMkYwMDAzNDAwRjU4M0UwQjQwMjAzNDMyNzAyRTUyN0ZDNzhBMzFBCis6MTAxMzAwMDBFNjI0MDRGNTgyMThFNjM0MDBGNTgzRUNGMDc4QTNFNkQxCis6MTAxMzEwMDAyNDAzRjU4MjE4RTYzNDAwRjU4M0UwRjUyNzc4QTFFNjhBCis6MTAxMzIwMDAyNDA5RjU4MjE4RTYzNDAwRjU4M0UwNzAwNTUzMjc3RjIxCis6MTAxMzMwMDA4MDAzNDMyNzgwNzhBMUU2MjQwMkY1ODIxOEU2MzQwMDcyCis6MTAxMzQwMDBGNTgzQTNFMDMwRTAwNTQzMjcyMDgwMDM1MzI3REY3OEFGCis6MTAxMzUwMDBBMUU2MjQwMkY1ODIxOEU2MzQwMEY1ODNFMDMwRTMwNUM3Cis6MTAxMzYwMDA0MzI3NDA4MDAzNTMyN0JGNzhBMUU2MjQwMkY1ODIxODYzCis6MTAxMzcwMDBFNjM0MDBGNTgzRTAzMEUwMDU0MzI3MTA4MDAzNTMyNzZGCis6MTAxMzgwMDBFRjc4QTFFNjI0MDJGNTgyMThFNjM0MDBGNTgzQTNFMEE1Cis6MTAxMzkwMDAzMEU0MDU0MzI3MDg4MDAzNTMyN0Y3NzhBMUU2MjQwMkE5Cis6MTAxM0EwMDBGNTgyMThFNjM0MDBGNTgzQTNFMDMwRTUwNTQzMjcwNDExCis6MTAxM0IwMDA4MDAzNTMyN0ZCNzhBMUU2MjQwMkY1ODIxOEU2MzQwMDY3Cis6MTAxM0MwMDBGNTgzQTNFMDMwRTYwNTQzMjcwMTgwMDM1MzI3RkU3ODI5Cis6MTAxM0QwMDBBMUU2MjQwMkY1ODIxOEU2MzQwMEY1ODNBM0UwMzBFN0E1Cis6MTAxM0UwMDAwNTQzMjcwMjgwMDM1MzI3RkRFNTI3RkM3OEEzRTYyNDY1Cis6MTAxM0YwMDAwM0Y1ODIxOEU2MzQwMEY1ODNFQ0YwQzIwMzdDMDAyMjhBCis6MTAxNDAwMDA4RDI3OEMyNkVENTQwMzE0NjAwMzdDMTAyMkU1Mjc1NEFECis6MTAxNDEwMDA3QzI0RkM0MDAzN0MwQjIyRTUyNjI0OTdGOEM2NDQwMjdBCis6MTAxNDIwMDBGNjdDMDAyMjhDMzAxMjBGN0NFNTMwMjQ5N0Y4RTYyMDAxCis6MTAxNDMwMDBFMjRGQUMzMDdEMDIxMjBEM0FFNTMwMjRGRTQ0MjhGQzI4Cis6MTAxNDQwMDA3OEE0ODY4MzA4ODY4MkVDRjBBRjgzRTU4MjI0MDRGRUNDCis6MTAxNDUwMDBFNDNGRkZFQzhFODI4RjgzRjA3QzAzOEMyQ0U1MkNGQzI4Cis6MTAxNDYwMDA3OEE1RTYyNDAxRjU4MjE4RTYzNDAwRjU4M0VDRjBFNTcyCis6MTAxNDcwMDAyQ0ZDNzhBNUU2MjQwNUY1ODIxOEU2MzQwMEY1ODNFQzBCCis6MTAxNDgwMDBGMDc1MkQwMTc1MkY0ODc1MkVGRkU1MzAyNEZERkNFNDI1Cis6MTAxNDkwMDAzNEZGRkRFQzdDMDMyNUUwQ0QzM0NERENGOUZDRTUyRkZBCis6MTAxNEEwMDAyQ0Y1MkZFNTJFM0RGNTJFNzhBNUU2MjQwNEY1ODIxOEJGCis6MTAxNEIwMDBFNjM0MDBGNTgzRTA1NEU3RjUyQ0FEMkZBRTJFQUYyRENBCis6MTAxNEMwMDBFNDkwMDAwMjEyMDMxN0U0OTAwMDA2MTIwMzE3MTIwMUMxCis6MTAxNEQwMDBFNjMwRTUwMzQzMkMxMEU1MkNGQzc4QTVFNjI0MDRGNTYyCis6MTAxNEUwMDA4MjE4RTYzNDAwRjU4M0VDRjAxMjEwNjc3OEEzRTYyNDQ2Cis6MTAxNEYwMDAwNkY1ODIxOEU2MzQwMEY1ODNFMEMyMDNGQ0U1MzAyNEVCCis6MTAxNTAwMDA5N0Y4QzY0NDA0RjY4QzJDRTUzMDU0MEZDNDU0RjA3RTkyCis6MTAxNTEwMDAwMEZGRUVFRjQ0MDQ3RDAwRkZFQzRFRkNFRDRGRkQxMkFBCis6MTAxNTIwMDAxQ0ZFN0MwMDIyOEMyRjEyMEY3QzEyMTAwNzc4QTQ4NkUwCis6MTAxNTMwMDA4MzA4ODY4MkUwNTQwOEYwQTNBM0EzQTNFMDU0MDhGMDM0Cis6MTAxNTQwMDBBQzJGN0QwMjEyMEQzQUMyMDNFNTJGMjQ5N0Y4QzY1NDQyCis6MTAxNTUwMDBGQkY2N0MwMDIyMTIzMDg1Nzg5MEVDRjZFQzI0OTdGOEFDCis6MTAxNTYwMDBFNjMwRTEwQTdEMDA3QzEzMTIyNEIxMTIzMTA4Nzg5MDM0Cis6MTAxNTcwMDBFNjI0OTdGOEM2NDQwMUY2Nzg5MEU2RkMxMjBGN0M3OEQyCis6MTAxNTgwMDA5MEU2MjRGRDc1RjAwQUE0MjQxQ0Y1ODJFNDM0RkRGNUYwCis6MTAxNTkwMDA4Mzc4QTBFNkZBMDhFNkY5N0IwQTc4MDExMjAzQTc3OEI3Cis6MTAxNUEwMDBBMDg2ODMwODg2ODI3OUY4N0EzNDdCMEE3ODAxMTIwMzUwCis6MTAxNUIwMDBGNTEyMEZEM0MyMDM3ODkwRTZGQzEyMTEyMzc4OEZFQzVBCis6MTAxNUMwMDBGNkVDNjAwQTdEMDA3QzA4MTIyNEIxMTIzMTA4Nzg5MDk0Cis6MTAxNUQwMDBFNkZDMTIwRjdDNzhBM0U2MjQwNEY1ODIxOEU2MzQwMEJBCis6MTAxNUUwMDBGNTgzRTA0NDEwNTRERkZDNzhBM0U2MjQwNEY1ODIxODY4Cis6MTAxNUYwMDBFNjM0MDBGNTgzRUNGMDc4OEZFQ0Y2QzIwMzdDQzgxMjc5Cis6MTAxNjAwMDAzMjQ4Nzg5MEU2RkMxMjBGN0M3OEEzRTYyNDA0RjU4MjM5Cis6MTAxNjEwMDAxOEU2MzQwMEY1ODNFMDU0RUZGMEMyMDM3Q0M4MTIzMkMwCis6MTAxNjIwMDA0ODc4OTBFNkZDMTIwRjdDNzhBM0U2MjQwNEY1ODIxODMzCis6MTAxNjMwMDBFNjM0MDBGNTgzRTA0NDEwRjBDMjAzN0NDODEyMzI0ODVGCis6MTAxNjQwMDA3ODkwRTZGQzEyMEY3Qzc4QTNFNjI0MDRGNTgyMThFNjc1Cis6MTAxNjUwMDAzNDAwRjU4M0UwNDQyMEYwQzIwMzdDRjAxMjMyNDg3ODc1Cis6MTAxNjYwMDA5MEU2RkMxMjBGN0M3OEEzRTYyNDA1RjU4MjE4RTYzNDk4Cis6MTAxNjcwMDAwMEY1ODNFMDMwRTQxNUMyMDM3ODkwRTY0NDEwN0YwMDYzCis6MTAxNjgwMDBGRTdDMDcxMjMxOUExMjMxMDgwMjE3NDk3OEEzRTYyNDJBCis6MTAxNjkwMDAwNEY1ODIxOEU2MzQwMEY1ODNFMDU0Q0ZGMEMyMDM3Q0YxCis6MTAxNkEwMDBDODEyMzI0ODc4OTBFNkZDMTIwRjdDNzhBM0U2MjQwNDM2Cis6MTAxNkIwMDBGNTgyMThFNjM0MDBGNTgzRTA0NDMwRjBDMjAzN0NGMDk0Cis6MTAxNkMwMDAxMjMyNDg3ODkwRTZGQzEyMEY3Qzc4QTNFNjI0MDVGNUU4Cis6MTAxNkQwMDA4MjE4RTYzNDAwRjU4M0UwMzBFNDE0QzIwMzc4OTBFNjIzCis6MTAxNkUwMDA0NDEwN0YwMEZFN0MwNzEyMzE5QTEyMzEwODgwNUQ3ODI5Cis6MTAxNkYwMDBBM0U2MjQwNEY1ODIxOEU2MzQwMEY1ODNFMDU0RUZGMDA1Cis6MTAxNzAwMDA3OEEzRTYyNDA0RjU4MjE4RTYzNDAwRjU4M0UwNTRERjdDCis6MTAxNzEwMDBGMDc4OTBFNjI0RkQ3NUYwMEFBNDI0MUNGNTgyRTQzNEU4Cis6MTAxNzIwMDBGREY1ODNBQzgyQUQ4Mzc4QTA4NjgzMDg4NjgyRUNGOUQwCis6MTAxNzMwMDBFREZBN0IwQTc4MDExMjAzQTdDMjAzNzg5MEU2RkMxMjQ3Cis6MTAxNzQwMDAxMTIzN0QwMDdDMEIxMjI0QjExMjMxMDgyMjEyMzA4NTQ2Cis6MTAxNzUwMDA5MEZGOTFFMDkwRkQ0MUYwN0QwMjdDMDAxMjI0QjExMkQ3Cis6MTAxNzYwMDAzMTA4MjIxMjMwODU5MEZENDBFMEY0RkM5MEZGOTFFMEJBCis6MTAxNzcwMDA1Q0Y1MzM5MEZENDFFMEZDOTBGRDQwRTA1QzQyMzNFNUQ4Cis6MTAxNzgwMDAzMzkwRkY5MUYwN0MwMDEyMjU0QTEyMzEwODIyNzQzQ0ZDCis6MTAxNzkwMDA5MEZCRThGMDc0M0U5MEZCRThGMEU0OTBGRDMwRjAyMjFFCis6MTAxN0EwMDA4RDM1OEMzNEVDQjQwMTAyODAwM0QzNDAwMjgwMjhCNDIwCis6MTAxN0IwMDAwMjAyODAwM0QzNDAwOEE4MzVDNjI1RTBGNjgwMThCNDlECis6MTAxN0MwMDAwNDAyODAwM0QzNDAwQUE4MzVDNjI1RTAyNUUwRjY4MDUwCis6MTAxN0QwMDAwNkE4MzU3NjAwODAwMDIyOEMzQzhEM0JFREZFRUNGREFBCis6MTAxN0UwMDA3RjAxNzU2MDA2NzU2MTAwOTBGRDMxMTIwNDZFMTIwMTczCis6MTAxN0YwMDBFNkI0ODAwMjgwMDZEMzUwMDMwMjE4OUU5MEZEMzExMjk5Cis6MTAxODAwMDAwNDgwOTAwMDAzMTIwMUVDNTRGMEI0MzAwMjgwMDNEMzQyCis6MTAxODEwMDA0MDVGOTBGRDMxMTIwNDgwOTAwMDA4MTIwMjBFRkFGRDI0Cis6MTAxODIwMDBFQkZFN0YwMTkwRkQzNDEyMDQ2RUVFQ0Q5MDM1MDJGQzhDCis6MTAxODMwMDBFNDkzRkY3NDAxOTNGRUY5RUZGQTdCMDFFQUZGRTlGRUZFCis6MTAxODQwMDBFQ0MzOUVFRDlGNDAyNTkwMzUwNEU0OTNGRDc0MDE5MzE1Cis6MTAxODUwMDBGQ0VERkVFQ0ZEN0YwMUVFQ0RGQzkwRkQzNkUwRDM5QzZGCis6MTAxODYwMDA5MEZEMzVFMDlENTAwNTc1NjA4MDgwMzMxMjE5QkM4MDc1Cis6MTAxODcwMDAyRUI0NjAwMjgwMDNEMzQwMEJBQzNDQUQzQjEyMDc4MjE4Cis6MTAxODgwMDA4QzYwODAxQkI0MTAwM0IzNDAxMEMzQjQyMDAzQjM0MDdBCis6MTAxODkwMDAwOUMzQjQ0MDAyODAwM0QzNDAwMDc1NjA4MTgwMDA4MDlBCis6MTAxOEEwMDA3NUI0ODEwMjgwMDNEMzQwNkI5MEZEMzExMjA0ODA5MEE3Cis6MTAxOEIwMDAwMDAzMTIwMUVDNTRGMEI0MzAwMjgwMDNEMzQwMUQ5MEI5Cis6MTAxOEMwMDBGRDMxMTIwNDgwOTAwMDA4MTIwMjBFRkFGREVCRkU3RjNCCis6MTAxOEQwMDAwMTkwRkQzNzEyMDQ2RTEyMTkyNjgwMzZCNDYwMDI4MDIyCis6MTAxOEUwMDAwM0QzNDAxMzc1M0E2MUU0RjUzOUY1MzhBQzNDQUQzQkIwCis6MTAxOEYwMDAxMjA1REU4QzYwODAxQkI0MTAwM0IzNDAxMEMzQjQyMDBCCis6MTAxOTAwMDAwM0IzNDAwOUMzQjQ0MDAyODAwM0QzNDAwMDc1NjA4MTMzCis6MTAxOTEwMDA4MDAwODAwMjgwMDBFNTYwRkM5MEZEMzExMjA0ODBFQ0M0Cis6MTAxOTIwMDA5MDAwMDIxMjAzMTdBQzYxMjI5MEZEMzExMjA0ODA5MEU2Cis6MTAxOTMwMDAwMDA0MTIwMUVDNjAwNDc0MDE4MDAxRTRBMkUwOTIwMTUxCis6MTAxOTQwMDA5MEZEMzExMjA0ODBFRDI0MDNGRDUwMDEwRTkwRkQzNDEyCis6MTAxOTUwMDAxMjA0NkU5MEZEMzExMjA0ODA5MDAwMDUxMjAxRUNGNTI2Cis6MTAxOTYwMDA2MTkwMDAwNDEyMDFFQzU0MEZGQzdENjExMjE3OURFNTlCCis6MTAxOTcwMDA2MTcwMDQ3NTYwMDgyMjc1NjAwMDc4N0U3NjAwNzg3RTVDCis6MTAxOTgwMDBFNkMzOTU2MTUwMzg5MEZEMzcxMjA0ODAxMjAxRTZGQ0UxCis6MTAxOTkwMDA5MEZEMzQxMjA0ODBFQzEyMDMwRjMwMDEwRTkwRkQzOURCCis6MTAxOUEwMDBFMDA0RjA5MEZEMzg3MDAzRTAwNEYwNzg3RTA2OTBGRENFCis6MTAxOUIwMDAzNkUwMDRGMDkwRkQzNTcwMDNFMDA0RjA4MEMwMjI5MDIyCis6MTAxOUMwMDBGRDMyRTBGREEzRTBGQ0VERkVFQ0ZEN0YwMUVEMjQwQTFECis6MTAxOUQwMDBGRDUwMDEwRTkwRkQzQTEyMDQ2RTkwRkQzMTEyMDQ4MDBDCis6MTAxOUUwMDA5MDAwMDQxMjAxRUM1NDBGQjQwMTAyODAwM0QzNDAxNzlECis6MTAxOUYwMDA5MEZEM0ExMjA0ODAwREVENzAwMTBFOTBGRDM3MTIwNDM3Cis6MTAxQTAwMDA2RTc4ODI3NjAxODA0RUI0MDIwMjgwMDNEMzQwMTk5MDMyCis6MTAxQTEwMDBGRDNBMTIwNDgwRUQyNDAyRkQ1MDAxMEU5MEZEMzcxMkI0Cis6MTAxQTIwMDAwNDZFNzg4Mjc2MDI4MDJEQjQwNDAyODAwM0QzNDAxOUJDCis6MTAxQTMwMDA5MEZEM0ExMjA0ODBFRDI0MDRGRDUwMDEwRTkwRkQzNzE0Cis6MTAxQTQwMDAxMjA0NkU3ODgyNzYwNDgwMENCNDAwMDI4MDAzRDM0MEM2Cis6MTAxQTUwMDAwMDc1NjAwODIyOTBGRDMxMTIwNDgwOTAwMDA1MTIwMThCCis6MTAxQTYwMDBFQ0Y1NjE3ODdGNzYwMDc4N0ZFNkMzOTU2MTQwMDMwMkVDCis6MTAxQTcwMDAxQjI0Nzg4MDc2MDA3ODgwRTZDMzc4ODI5NjUwNzY5MDMyCis6MTAxQTgwMDBGRDM0MTIwNDgwMTIwMUU2RkM5MEZEM0ExMjA0ODkxMjIyCis6MTAxQTkwMDAwMUUwRjQ1Q0ZDMTIwMUUwRjg5MEZEMzcxMjA0ODBFOEVDCis6MTAxQUEwMDBDMEUwMTIwMUU2QzhEMEUwQzg1ODRDRkM5MEZEMzQxMkVBCis6MTAxQUIwMDAwNDgwRUMxMjAzMEY3ODgxRUNGNjkwRkQzOUUwMDRGMDFECis6MTAxQUMwMDA5MEZEMzg3MDAzRTAwNEYwMDlFOTcwMDEwQTkwRkQzQUQ2Cis6MTAxQUQwMDAxMjA0Nzc5MEZEMzExMjA0ODA5MDAwMDQxMjAxRUMzMDYyCis6MTAxQUUwMDBFNDBFOTBGRDM2RTAwNEYwOTBGRDM1NzAwM0UwMDRGMDY0Cis6MTAxQUYwMDA3ODgwMDY4MDgxNzg4MkU2RkRFNEZFRkZFRUNERkM5MEUyCis6MTAxQjAwMDBGRDM5RTAyQ0YwOTBGRDM4RTAzREYwNzg4MkU2RkRFNDEwCis6MTAxQjEwMDBGRUZGRUVDREZDOTBGRDNDRTAyQ0YwOTBGRDNCRTAzRDY3Cis6MTAxQjIwMDBGMDc4N0YwNjAyMUE2NDc1NjAwMDIyRTUzRDA1M0QwNEU5Cis6MTAxQjMwMDA3MDAyQjJCMDIyQzBFMEMwRjBDMDgyQzA4M0MwRDBFODYyCis6MTAxQjQwMDBDMEUwRTlDMEUwRUFDMEUwRUJDMEUwRUNDMEUwRURDMDFFCis6MTAxQjUwMDBFMEVFQzBFMEVGQzBFMDkwRkY5MkUwMTIwMUI3MUI4MDIyCis6MTAxQjYwMDAzMDFCODAzMjFCOEYzODFCQTEzQTFCQjMzRTFCQ0I0NDZBCis6MTAxQjcwMDAxQkJGNDYxQkQ3NTAxQzE5NTIxQkY4NTQxQzNBNTYwMDY5Cis6MTAxQjgwMDAwMDFDNUI5MEZGOTJFMDdGMDBGRTdDMDExMjMxOUEwMjA0Cis6MTAxQjkwMDAxQzZCRTRGRjA0RkU3QzAzMTIzMTlBNzQyMDkwRkZGRTVDCis6MTAxQkEwMDBGMDAyMUM2QkU0RkYwNEZFN0MwMjEyMzE5QTc0NDA5MDM4Cis6MTAxQkIwMDBGRkZFRjAwMjFDNkJFNEZGMDRGRTdDMDQxMjMxOUEwMjZCCis6MTAxQkMwMDAxQzZCRTRGRjA0RkU3QzA1MTIzMTlBMDIxQzZCRTRGRkRGCis6MTAxQkQwMDAwNEZFN0MwNjEyMzE5QTAyMUM2QjkwRkZBNUUwN0QwMDhBCis6MTAxQkUwMDA5MEZEMDBDREYwQTNDREYwOTBGRDAxRTBGQ0Y1ODM5MEQ5Cis6MTAxQkYwMDBGRDAwRTA0NDMzRkQxMjFDRkU4MDczOTBGRkI1RTA3REQ0Cis6MTAxQzAwMDAwMDkwRkQwMkNERjBBM0NERjA5MEZEMDNFMEZDRjU4MzQ0Cis6MTAxQzEwMDA5MEZEMDJFMDQ0NDNGRDEyMUNGRTgwNTI5MEZGQTZFMEJFCis6MTAxQzIwMDA3RDAwOTBGRDA0Q0RGMEEzQ0RGMDkwRkQwNUUwRkNGNTI2Cis6MTAxQzMwMDA4MzkwRkQwNEUwNDQzNEZEMTIxQ0ZFODAzMTkwRkZCNjE5Cis6MTAxQzQwMDBFMDdEMDA5MEZEMDZDREYwQTNDREYwOTBGRDA3RTBGQzE3Cis6MTAxQzUwMDBGNTgzOTBGRDA2RTA0NDQ0RkQxMjFDRkU4MDEwOTBGRkM5Cis6MTAxQzYwMDA5MkUwN0QwMEZDRUQ0NEFBRkQxMjFDRkU4MDAwRTQ5MDkxCis6MTAxQzcwMDBGRjkyRjBEMEUwRkZEMEUwRkVEMEUwRkREMEUwRkNEMDVECis6MTAxQzgwMDBFMEZCRDBFMEZBRDBFMEY5RDBFMEY4RDBEMEQwODNEMEJCCis6MTAxQzkwMDA4MkQwRjBEMEUwMzIwNTgxMDU4MTA1ODEwNTgxQTg4MURGCis6MTAxQ0EwMDAxODE4MThFREY2MDhFQ0Y2OTBGRjZBRTAyMEU3MDI4MEJECis6MTAxQ0IwMDBGNzkwRkY2OUUwN0QwMEE4ODExOENERjZDRDA4RjY3RDhDCis6MTAxQ0MwMDAwM0E4ODFFNjE4RkNFNkNDMjVFMENDMzNDQ0RERjlDQ0NBCis6MTAxQ0QwMDBGNkNDMDhGNkE4ODExOEU2NDRGOEY2QTg4MTE4MTgxODdBCis6MTAxQ0UwMDBFNkZEMDhFNkZDQTg4MTE4ODY4MzA4ODY4MkVERjBBMzRECis6MTAxQ0YwMDBFQ0YwNzQwMjkwRkY2QUYwMTU4MTE1ODExNTgxMTU4MTUxCis6MTAxRDAwMDAyMkU1ODEyNDA1RjU4MUU0QTg4MTE4RjZBODgxMTgxODM4Cis6MTAxRDEwMDAxODE4RURGNjA4RUNGNjkwRkJGREUwMjRGODUwMDMwMkVECis6MTAxRDIwMDAxRTFGRTRBODgxMTgxOEY2QTg4MTE4RTZGRUE4ODExOERECis6MTAxRDMwMDAxODE4MThFNkZEMDhFNkZDN0YwMEVGMjRGODQwNERFNDkzCis6MTAxRDQwMDBFRjI1RTAyNDg1RjU4MkU0MzRGREY1ODNFMEZCQTNFMDk0Cis6MTAxRDUwMDA2QzcwMDNGQUVCNkQ3MDA5NzQwMUE4ODExODE4RjY4MDk1Cis6MTAxRDYwMDAyQkU0RUYyNUUwMjQ4NUY1ODJFNDM0RkRGNTgzN0EwMDQ5Cis6MTAxRDcwMDBFMDU0RjBDQ0Y4Q0NDREY5Q0RGQjc4MDBFOTU0RjBGOTgzCis6MTAxRDgwMDBFQTY4NzAwMkVCNjk3MDAxMEUwRjgwQUVBODgxMThFRTUwCis6MTAxRDkwMDBGNkE4ODExODE4MTgxOEVERjYwOEVDRjZBODgxRUZGNkU5Cis6MTAxREEwMDBBODgxMTgxOEU2NzA3OUE4ODExOEU2MjRGNzQwNzFBODcwCis6MTAxREIwMDA4MTE4MTgxODE4RTY1NDBGQTg4MUY2NjQwNDYwMTdBODUzCis6MTAxREMwMDA4MUU2NjQwMzYwMTBBODgxMTgxODE4MThFNkZEMDhFNjdCCis6MTAxREQwMDBGQzEyMUM5MzgwNEE3QzBBMTIzMEZBQTg4MTE4MTgxODQ5Cis6MTAxREUwMDAxOEU2RkQwOEU2RkM5MEZCRkNFMDI1RTAyNDg1RjU4MjgyCis6MTAxREYwMDBFNDM0RkRGNTgzRURGMEEzRUNGMDkwRkJGQ0UwRkZFNEIwCis6MTAxRTAwMDBFRjA0NTQwN0ZGOTBGQkZDRjA5MEZCRkRFMDA0RjAxMkEwCis6MTAxRTEwMDAzMTkzOTBGQkZFRTA3MDA4RTRGRUZGN0MwRjEyMzE5QUQ0Cis6MTAxRTIwMDA4MDI3OTBGQkZGRTAwNEYwNTQzRjcwMUQ5MEZCRkZFMDIzCis6MTAxRTMwMDA0NEZFN0QwMEZDOTBGQkZDRTAyNUUwMjQ4NUY1ODJFNDc3Cis6MTAxRTQwMDAzNEZERjU4M0VERjBBM0VDRjBFNTgxMjRGQkY1ODEyMjcwCis6MTAxRTUwMDA3ODg1NzYwMDc4ODY3NjAwNzQwMTkwRkJGRUYwMTIzMDZCCis6MTAxRTYwMDA4NTkwRkJGREUwNjA1OTdDMEExMjMwRkE5MEZCRkJFMEE0Cis6MTAxRTcwMDAyNUUwMjQ4NUY1ODJFNDM0RkRGNTgzRTBGREEzRTBGQzU0Cis6MTAxRTgwMDA5MEZCRkJFMDI1RTAyNDg1RjU4MkU0MzRGREY1ODNFNDU2Cis6MTAxRTkwMDBGMEEzRjA5MEZCRkJFMEZGRTRFRjA0NTQwN0ZGOTBGQjlFCis6MTAxRUEwMDBGQkYwOTBGQkZERTAxNEYwNzg4M0VERjYwOEVDRjYxMjAxCis6MTAxRUIwMDAzMTkzQjJCMzc4ODNFNkZEMDhFNkZDMTIwOEU1ODBBMTExCis6MTAxRUMwMDAxMjMxRTc3ODg1MDZCNjAwMTE3ODg1NzYwMDc4ODZFNkM3Cis6MTAxRUQwMDBGNDA0MDRBMkUwOTJCNDc4ODZGNjgwODVFNDkwRkJGRUQ4Cis6MTAxRUUwMDBGMDkwRkJGREUwN0QwMEZDRUQ0NENGRkQxMjFDOTMxMjUxCis6MTAxRUYwMDAzMTA4MjIxMjMwODVFNTZBNjQ0OTQ1Njk2MDE1OTBGRjEyCis6MTAxRjAwMDA4M0UwNTQwRjdEMDBEMzk1NkFFRDk1Njk1MDA1MTIyRTNDCis6MTAxRjEwMDBDRTgwMDMxMjJGOUUxMjMxMDgyMjEyMzA4NUU1NkE2NEFBCis6MTAxRjIwMDA0OTQ1Njk2MDA1MTIyRkQ4ODAwRTkwRkY4MEUwNDQwODczCis6MTAxRjMwMDBGMDkwRkY4M0UwNTQ3RkYwMTIzMTA4MjIxMjMwODU4QzNDCis6MTAxRjQwMDA1NEVDNTRGMEI0MTAxNTc1NjQzRDc1NjNGRDc1NjIwMTcxCis6MTAxRjUwMDBFNTY0MjQwM0Y1NjRFNTYzMzQwMEY1NjNFNEY1NTdGNUJGCis6MTAxRjYwMDA1NkU1NTZDMzk0MDE1MDI3RTU1NDU0MEZGQ0FENjRBRUJBCis6MTAxRjcwMDA2M0FGNjIxMjBFODI4QzU1RUM2MDAyODAxMjA1NjRFNTNDCis6MTAxRjgwMDA2NDcwMDIwNTYzMDU1N0U1NTc3MDAyMDU1NjgwRDJFNTc3Cis6MTAxRjkwMDA1NDU0MEYyNDk3RjhDNjU0RkVGNkU1NTQ1NDBGN0YwMEFFCis6MTAxRkEwMDBGRTdDMTIxMjMxOUFFNTU1MTQ3MDA5N0QwMDdDMDkxMkVECis6MTAxRkIwMDAyNEIxODAwN0FENTc3QzAwMTIyNEIxMTIzMTA4MjIxMkRGCis6MTAxRkMwMDAzMDg1OTBGRkZDRTA0NDAyRjA5MEZGMDBFMDMwRTcxMzIyCis6MTAxRkQwMDA5MEZGODNFMDQ0ODBGMDQzNjc4MDkwRkZGQ0UwNDQwMTgxCis6MTAxRkUwMDBGMDgwMTE5MEZGODJFMDQ0MDhGMDUzNjc3RjkwRkZGQzdGCis6MTAxRkYwMDBFMDU0RkVGMDkwRkY4MUUwNDQ4MEYwMTIyNTY0OTBGRkYxCis6MTAyMDAwMDBGRUUwNDQwNUYwOTBGRkZDRTA1NEZERjAxMjMxMDgyMkEwCis6MTAyMDEwMDAxMjMwODU3QzAxMTIzMjQ4NzhBN0U2NDQwMkY2NzRGRTNECis6MTAyMDIwMDBGQzA0RkQxMjFDRkU5MEZGNkFFMDMwRTcwMjgwRjdFNDNBCis6MTAyMDMwMDBGNTRFNzU0RDEwQUM0RUFENERFNTRFMTU0RTcwMDIxNTdBCis6MTAyMDQwMDA0REVDNEQ2MDAyODBFRTQzODcwMTEyMzEwODIyMTIzMEMwCis6MTAyMDUwMDA4NTdDMDIxMjMxMTQ3OEE3RTY1NEZERjYxMjMxMDgyMjZECis6MTAyMDYwMDAxMjMwODU3OEE3RTYzMEUwMkM3OEE3RTYzMEUxMjY3OEI0Cis6MTAyMDcwMDBBN0U2RkNGNTgzMThFNjQ0RjBGRDEyMUM5MzkwRkZGQ0U0Cis6MTAyMDgwMDBFMDQ0MjBGMDdDMDIxMjMyNDg3OEE3RTY1NEZERjY3NDUyCis6MTAyMDkwMDAxQTkwRkZGRUYwNzhBN0U2RkNGNTgzMThFNjQ0RjFGRDAwCis6MTAyMEEwMDAxMjFDOTMxMjMxMDgyMjc1NjcwMDc1NjgwMEU0RjU2NjBBCis6MTAyMEIwMDBGNTY1RTRGNTY5NzU2QTQ5NzQ4NDkwRkY4MkYwNzQ4NDZCCis6MTAyMEMwMDA5MEZGODBGMDc0ODA5MEZGNjhGMDc0ODA5MEZGNkFGMDU5Cis6MTAyMEQwMDBBRDQ2QUY0NTdFMDBFRTI0RkM1MDAzMDIyMTZBRTRFRURCCis6MTAyMEUwMDA3NUYwMDdBNDI0M0ZGNTgyRTQzNEZDRjU4M0UwRkZFNEI3Cis6MTAyMEYwMDBFRjU0ODBGREU0RUY1NDBGMTRGRkVENjAzOEU0RUY3NTBBCis6MTAyMTAwMDBGMDA4QTQyNDQ4RjU4MkU0MzRGRkY1ODM3NDkwRjBFNEU5Cis6MTAyMTEwMDBFRjc1RjAwOEE0MjQ0QUY1ODJFNDM0RkZGNTgzNzQ4MDU3Cis6MTAyMTIwMDBGMEU0RUY3NUYwMDhBNDI0NEVGNTgyRTQzNEZGRjU4MzYzCis6MTAyMTMwMDA3NDgwRjA4MDM0RTRFRjc1RjAwOEE0MjQwOEY1ODJFNDlDCis6MTAyMTQwMDAzNEZGRjU4Mzc0OTBGMEU0RUY3NUYwMDhBNDI0MEFGNUU5Cis6MTAyMTUwMDA4MkU0MzRGRkY1ODNFNEYwRTRFRjc1RjAwOEE0MjQwRTg0Cis6MTAyMTYwMDBGNTgyRTQzNEZGRjU4M0U0RjAwRTAyMjBEMzhENDY4RTMxCis6MTAyMTcwMDA0NDhGNDU3NDdGOTBGRkZERjA3NDkwOTBGRkZDRjA5MEM5Cis6MTAyMTgwMDBGQzE5RTAzMEU2MDc5MEZGRkNFMDQ0MDRGMDIyOTBGQ0VDCis6MTAyMTkwMDAwREUwMTQ3MDA0OTBGQzBDRTA3MDM5OTBGQzAwNzkwNjlFCis6MTAyMUEwMDA3QTM1N0IxMjc4MDExMjAzRjU3RjAwRUYzMzQwMTVFRjhCCis6MTAyMUIwMDA5MDM1NEQ5M0ZDRUYyNDgwRjU4MkU0MzRGQ0Y1ODNFQ0ZDCis6MTAyMUMwMDBGMDBGODBFNzhGNTk5MEZDMkI3OTE4N0EzNTdCMzU3OEEyCis6MTAyMUQwMDAwMTEyMDNGNUU0OTBGRkZGRjA3NDUxOTBGRkZBRjA3NEUwCis6MTAyMUUwMDAwNDkwRkZGQkYwNzQ1MzkwRkZGOEYwNzQ1MTkwRkZGOUU2Cis6MTAyMUYwMDBGMDc0NTU5MEZGRjdGMDc0OTM5MEZGRjZGMDc0MzI5MEZFCis6MTAyMjAwMDBGRkY1RjA3NTY0M0Q3NTYzRkQ3NTYyMDFFNDkwRkY4MzMxCis6MTAyMjEwMDBGMDc0ODA5MEZGODFGMDc1NTgwNEU1NTg3NUYwMDdBNEJDCis6MTAyMjIwMDAyNDNGRjU4MkU0MzRGQ0Y1ODNFMDc4ODlGNkZDNTQwRjEyCis6MTAyMjMwMDAxNEZDNzg4OUVDRjZFNTU4NzVGMDA3QTQyNDQxRjU4MjgyCis6MTAyMjQwMDBFNDM0RkNGNTgzRTA3ODhDNzZGODA4NzYwMEZDNzg4OTM1Cis6MTAyMjUwMDBFNjc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzRTRGMDQxCis6MTAyMjYwMDA3ODg5RTY3NUYwMDhBNDI0NEZGNTgyRTQzNEZGRjU4M0ZECis6MTAyMjcwMDBFQ0YwNzg4Q0U2RkYwOEU2N0UwM0NGQzMxM0NGMTNERUM1Cis6MTAyMjgwMDBGOUZFNzg4OUU2NzVGMDA4QTQyNDQ5RjU4MkU0MzRGRjY0Cis6MTAyMjkwMDBGNTgzRUVGMDc4ODlFNjc1RjAwOEE0MjQ0QUY1ODJFNDI3Cis6MTAyMkEwMDAzNEZGRjU4Mzc0ODBGMDc4OEFFQ0Y2N0QwMDc4OERFNjUzCis6MTAyMkIwMDAyQ0Y2MThFNjNERjY3ODhDRTZGRDA4RTY3QzAzQ0RDM0U3Cis6MTAyMkMwMDAxM0NEMTNEQ0Y5RkM3ODg5RTY3NUYwMDhBNDI0NERGNUVDCis6MTAyMkQwMDA4MkU0MzRGRkY1ODNFQ0YwNzg4OUU2NzVGMDA4QTQyNEY1Cis6MTAyMkUwMDA0RUY1ODJFNDM0RkZGNTgzRTRGMDc4OENFNkZEMDhFNkYxCis6MTAyMkYwMDBGQzc4ODlFNkZGN0UwMEVFMjRGQzUwMDMwMjI0NkJFNEE4Cis6MTAyMzAwMDBFRTc1RjAwN0E0MjQzRkY1ODJFNDM0RkNGNTgzRTBGRjhBCis6MTAyMzEwMDBFNEVGNTQ4MEZBRTRFRjU0MEYxNEZGRTRFRTc1RjAwNzk1Cis6MTAyMzIwMDBBNDI0NDFGNTgyRTQzNEZDRjU4M0UwNzg4QUY2RUU3NTY2Cis6MTAyMzMwMDBGMDgwQTQyNDA4RjhFNUYwMzRGOEY5RThGQ0U5RkQ4QTE3Cis6MTAyMzQwMDA1OUVBNzAwMzAyMjNEOEU0RUY3NUYwMDhBNDI0NDhGNTk1Cis6MTAyMzUwMDA4MkU0MzRGRkY1ODNFNEYwNzg4QUU2RkFFNEVGNzVGMDdFCis6MTAyMzYwMDAwOEE0MjQ0RkY1ODJFNDM0RkZGNTgzRUFGMEVERkJFQzlBCis6MTAyMzcwMDA3QTAzQ0JDMzEzQ0IxM0RBRjlGQUU0RUY3NUYwMDhBNEIwCis6MTAyMzgwMDAyNDQ5RjU4MkU0MzRGRkY1ODNFQUYwNzg4QUU2N0IwMDlECis6MTAyMzkwMDBGQUVDMkFGQ0VEM0JGREZCRUM3QTAzQ0JDMzEzQ0IxMzI5Cis6MTAyM0EwMDBEQUY5RkFFNEVGNzVGMDA4QTQyNDRERjU4MkU0MzRGRjdECis6MTAyM0IwMDBGNTgzRUFGMEU0RUY3NUYwMDhBNDI0NEFGNTgyRTQzNEVBCis6MTAyM0MwMDBGRkY1ODM3NDgwRjBFNEVGNzVGMDA4QTQyNDRFRjU4MkU1Cis6MTAyM0QwMDBFNDM0RkZGNTgzNzQ4MEYwMDIyNDY3RTRFRjc1RjAwOEJECis6MTAyM0UwMDBBNDI0MDhGNTgyRTQzNEZGRjU4M0U0RjA3ODhBRTZGQTYxCis6MTAyM0YwMDBFNEVGNzVGMDA4QTQyNDBGRjU4MkU0MzRGRkY1ODNFQUQ2Cis6MTAyNDAwMDBGMEVERkJFQzdBMDNDQkMzMTNDQjEzREFGOUZBRTRFRjZDCis6MTAyNDEwMDA3NUYwMDhBNDI0MDlGNTgyRTQzNEZGRjU4M0VBRjA3ODI2Cis6MTAyNDIwMDA4QUU2N0IwMEZBRUMyQUZDRUQzQkZERkJFQzdBMDNDQjYxCis6MTAyNDMwMDBDMzEzQ0IxM0RBRjlGQUU0RUY3NUYwMDhBNDI0MERGNTExCis6MTAyNDQwMDA4MkU0MzRGRkY1ODNFQUYwRTRFRjc1RjAwOEE0MjQwQThGCis6MTAyNDUwMDBGNTgyRTQzNEZGRjU4M0U0RjBFNEVGNzVGMDA4QTQyNDlBCis6MTAyNDYwMDAwRUY1ODJFNDM0RkZGNTgzRTRGMDBFMDIyMkY0OEU1ODc4Cis6MTAyNDcwMDA3ODhDRURGNjA4RUNGNjc4ODlFRkY2MTIyMEE0MjI4QzIxCis6MTAyNDgwMDAyNkVDMzBFNzE4RTUyNjU0MEYxNDc1RjAwOEE0MjQ0ODBDCis6MTAyNDkwMDBGNTgyRTQzNEZGRjU4M0UwNTRERkYwODAxNkU1MjY1NDNFCis6MTAyNEEwMDAwRjE0NzVGMDA4QTQyNDA4RjU4MkU0MzRGRkY1ODNFMEU2Cis6MTAyNEIwMDA1NERGRjAyMkVDOTBGRDNGRjA4QzI0RUQyNDAzRjUyNTUxCis6MTAyNEMwMDA3RDAwRDM5NTZDRUQ5NTZCNDAwMzg1NkMyNUU1MjUyNDQ3Cis6MTAyNEQwMDBCNzUwMDk3NTI1MDM3NDAyOTBGRDNGRjBBQzI1MTIyRjBCCis6MTAyNEUwMDBDMzIyRTRGNTY2RjU2NTEyMjRFODIyOTBGRDNERTA2NTFGCis6MTAyNEYwMDA2RDYwMEU3NDA0OTBGRDNGRjBFNEY1NjU3NTY2MDM4MDMxCis6MTAyNTAwMDA0NjdENkRFNEZFRkY3OTNEN0FGRDdCMDE3NDA1NzgwMDIwCis6MTAyNTEwMDAxMjAzM0ZFNTY2MjQwM0Y1NjZFNTY1MzQwMEY1NjVFNURECis6MTAyNTIwMDA2NkQzOTU2Q0U1NjU5NTZCNDAwNjg1NkM2Njg1NkI2NTM1Cis6MTAyNTMwMDBEM0U1NjY5NDQ4RTU2NTk0MDA0MDBDNzQwMjkwRkQzRjM1Cis6MTAyNTQwMDBGMEU0RjU2NTc1NjYwM0FDNjYxMjJGQzMyMkVDOTBGRENFCis6MTAyNTUwMDAzRkYwRTRGNTY2RjU2NThDMzJFQzYwMDUxMjJGQjQ4MDJGCis6MTAyNTYwMDAwNTdDMDAxMjJGQzMyMjkwRkYwNEUwRjU0QTkwRkYwNjdECis6MTAyNTcwMDBFMEZEQTNFMEVEN0QwMEZDN0QwMEZDOTBGRjA2RTBGRkE4Cis6MTAyNTgwMDBBM0UwN0UwMEZGRTRGRUVDNEVGQ0VENEZGREMzRUM5NEI3Cis6MTAyNTkwMDA0OEVEOTQwMDUwMjI5MEZGMDZFMEZEQTNFMEVEN0QwMEExCis6MTAyNUEwMDBGQzdEMDBGQzkwRkYwNkUwRkZBM0UwN0UwMEZGRTRGRTYwCis6MTAyNUIwMDBFQzRFRkNFRDRGRkQ4MDA0RTRGRDdDNDg4QzZDOEQ2QjkzCis6MTAyNUMwMDA5MEZGMDJFMEZEQTNFMEVEN0QwMEZDN0QwMEZDOTBGRkFDCis6MTAyNUQwMDAwMkUwRkZBM0UwN0UwMEZGRTRGRUVDNEVGNTRDRUQ0RjgxCis6MTAyNUUwMDBGNTRCNzU2NDNENzU2M0ZENzU2MjAxN0QzRDdFRkQ3RjM0Cis6MTAyNUYwMDAwMTc5NkRFNEZBRkI3NDA1NzgwMDEyMDMzRjc1NDkwMDE4Cis6MTAyNjAwMDBFNTQ5MjRGRTQwMTlBRDY0QUU2M0FGNjJFNDEyMDMwRkU2Cis6MTAyNjEwMDAwNTQ5MERFRDcwMDEwRThENjQ4RTYzOEY2MjgwRTE3NTRBCis6MTAyNjIwMDA2NDNENzU2M0ZENzU2MjAxOTBGRjAwRTA1NDYwQjQwMDg1Cis6MTAyNjMwMDAwMjgwMDZEMzUwMDMwMjJDMTJFNTRBNTQwRkY1NDlFNUY3Cis6MTAyNjQwMDA0QTU0ODBBMkUwOTIwMjkwRkYwMUUwMTIwMTgxMDAwQjQ3Cis6MTAyNjUwMDAyQzBEMjY2NzI3ODUyQzBEMjg5MTJDMEQyOTc0MjlBODZGCis6MTAyNjYwMDAyQjBGMkIxMjJCNTIyQkI2MkJFNEU1NjczMEU3MEVFNTMwCis6MTAyNjcwMDA0QzQ1NEI3MDA4RTU2QzY0MDI0NTZCNjAwMzAyMkMwRkZGCis6MTAyNjgwMDA5MEZGMDBFMDU0MUZCNDAwMDI4MDAzRDM0MDI5RTU0QUM0Cis6MTAyNjkwMDA2MDAzMDIyNzgyQUQ2NEFFNjNBRjYyNzQwMTEyMDMwRjYwCis6MTAyNkEwMDA3OEE3RTYzMEUwMEJBRDY0QUU2M0FGNjI3NDAyMTIwMzRDCis6MTAyNkIwMDAwRjdDMDIxMjJGQzMyMkI0MDEwMjgwMDNEMzQwMUJFNTFBCis6MTAyNkMwMDA2NzIwRTEwN0U1NEE2MDAzMDIyNzgyRTU0QTI0RkU1MEJECis6MTAyNkQwMDAwMzAyMjc4MjdDMDIxMjJGQzMyMkI0MDIwMjgwMDZEMzk3Cis6MTAyNkUwMDA1MDAzMDIyNzgwRTU2NzIwRTEwREU1NEE2MDA5RTU0QUNECis6MTAyNkYwMDA2NDgwNjAwMzAyMjc4MkFDNEExMjMwNEE0MDAzMDIyN0ZBCis6MTAyNzAwMDA4MkU1NDk3MDI1MzAwMjExOTBGRjgwRTA1NDA4QUQ2NEU1Cis6MTAyNzEwMDBBRTYzQUY2MjEyMDMwRjgwMEY5MEZGODJFMDU0MDhBREVBCis6MTAyNzIwMDA2NEFFNjNBRjYyMTIwMzBGODAzRDE1NDkzMDAyMURFNUIwCis6MTAyNzMwMDA0OTc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTgzRTA1NDk5Cis6MTAyNzQwMDAwOEFENjRBRTYzQUY2MjEyMDMwRjgwMUJFNTQ5NzVGMEZDCis6MTAyNzUwMDAwOEE0MjQwOEY1ODJFNDM0RkZGNTgzRTA1NDA4QUQ2NDRFCis6MTAyNzYwMDBBRTYzQUY2MjEyMDMwRkFENjRBRTYzQUY2MjEyMDFFNkY3Cis6MTAyNzcwMDA2MDBCQUQ2NEFFNjNBRjYyNzQwMTEyMDMwRjdDMDIxMjkyCis6MTAyNzgwMDAyRkMzMjI4MDAwMDIyQzBGRTU2NzIwRTcwNkU1NkM0NTg5Cis6MTAyNzkwMDA2QjYwMDMwMjJDMEY5MEZGMDBFMDU0MUZCNDAwMDI4MDE2Cis6MTAyN0EwMDAwM0QzNDAxQUU1NEMxNDQ1NEI3MDA0RTU0QTYwMDMwMjFDCis6MTAyN0IwMDAyODhFNzhBN0U2NTRGRUY2N0MwMDEyMkZDMzIyQjQwMUJGCis6MTAyN0MwMDAwMjgwMDNEMzQwMkFFNTY3MjBFMTA4RTU2NzIwRTAwM0EzCis6MTAyN0QwMDAwMjI4OEVFNTY3MzBFMDA0RTU0QTcwMEJFNTY3MzBFMURBCis6MTAyN0UwMDAwOUU1NEEyNEZFNTAwMzAyMjg4RTdDMDAxMjJGQzMyMkUyCis6MTAyN0YwMDBCNDAyMDI4MDA2RDM1MDAzMDIyODhDRTU0QzQ1NEI2MDlFCis6MTAyODAwMDAwMzAyMjg4RUFDNEExMjMwNEE0MDAzMDIyODhFRTU2NzQ0Cis6MTAyODEwMDAyMEUxMDdFNTY3MjBFMDAyODA3N0U1NjczMEUwMDZFNTI0Cis6MTAyODIwMDA0OTYwMDI4MDZDRTU0OTcwMEY5MEZGODJFMDU0RjdGMDM4Cis6MTAyODMwMDA5MEZGODBFMDU0RjdGMDIyRTU0OUI0MDEwMjgwMDNEMzExCis6MTAyODQwMDA0MDA5N0QwMTdDMDMxMjBGMEI4MDExQjQwMjAyODAwMzRBCis6MTAyODUwMDBEMzQwMDk3RDAxN0MwNDEyMEYwQjgwMDAxNTQ5MzAwMjIyCis6MTAyODYwMDAxNUU1NDk3NUYwMDhBNDI0NDhGNTgyRTQzNEZGRjU4M0EyCis6MTAyODcwMDBFMDU0RjdGMDgwMTNFNTQ5NzVGMDA4QTQyNDA4RjU4MkM4Cis6MTAyODgwMDBFNDM0RkZGNTgzRTA1NEY3RjA3QzAwMTIyRkMzMjI4MDdDCis6MTAyODkwMDAwMDAyMkMwRkU1NjcyMEU3MDZFNTZDNDU2QjYwMDMwMjNDCis6MTAyOEEwMDAyQzBGOTBGRjAwRTA1NDFGQjQwMDAyODAwM0QzNDAxQUE1Cis6MTAyOEIwMDBFNTRDMTQ0NTRCNzAwNEU1NEE2MDAzMDIyOTcxNzhBNzgyCis6MTAyOEMwMDBFNjQ0MDFGNjdDMDAxMjJGQzMyMkI0MDEwMjgwMDNEMzM4Cis6MTAyOEQwMDA0MDI5RTU2NzIwRTEwOEU1NjcyMEUwMDMwMjI5NzFFNTZBCis6MTAyOEUwMDA2NzMwRTAwNEU1NDk3MDBCRTU2NzMwRTEwOEU1NDkyNDBECis6MTAyOEYwMDBGRTUwMDI4MDdGN0MwMDEyMkZDMzIyQjQwMjAyODAwM0FDCis6MTAyOTAwMDBEMzQwNkZFNTRDNDU0QjYwMDI4MDY5QUM0QTEyMzA0QUI3Cis6MTAyOTEwMDA0MDAyODA2MEU1NjcyMEUxMDdFNTY3MjBFMDAyODA1NDFGCis6MTAyOTIwMDBFNTQ5NzAxNDMwMDIwOTkwRkY4MEUwNDQwOEYwODAwNzA4Cis6MTAyOTMwMDA5MEZGODJFMDQ0MDhGMDIyRTU2NzMwRTEzMzE1NDkzMDJBCis6MTAyOTQwMDAwMjE1RTU0OTc1RjAwOEE0MjQ0OEY1ODJFNDM0RkZGNTQyCis6MTAyOTUwMDA4M0UwNDQwOEYwODAxM0U1NDk3NUYwMDhBNDI0MDhGNUU1Cis6MTAyOTYwMDA4MkU0MzRGRkY1ODNFMDQ0MDhGMDdDMDAxMjJGQzMyMjk4Cis6MTAyOTcwMDA4MDAyODAwMDAyMkMwRkU1NjcyMEU3MTJFNTZDNDU2QkIyCis6MTAyOTgwMDA3MDBDRTU0QTcwMDg5MEZGMDBFMDU0MUY2MDAzMDIyQ0IxCis6MTAyOTkwMDAwRkU1NEM5MEZGRkZGMDkwRkZGRkUwNjAwNTQzNjcwMUZCCis6MTAyOUEwMDA4MDAzNTM2N0ZFN0MwMDEyMkZDMzIyRTU2NzMwRTcwRUQ5Cis6MTAyOUIwMDBFNTZDNDU2QjYwMDg5MEZGMDBFMDU0MUY2MDAzMDIyQzNCCis6MTAyOUMwMDAwRkFENEJFNTRDRUQ3RDAwRkM3RDAwRkNCRDAwMDI4MEIxCis6MTAyOUQwMDAwMzAyMkIwQUI0MDEwMjgwMDNEMzQwMzJFNTRBNzAwNTlBCis6MTAyOUUwMDBFNTRDRkM2MDAzMDIyQjBDNzU2NDAwNzU2M0ZDNzU2MjlBCis6MTAyOUYwMDAwMUQzRTU2Qzk0MTJFNTZCOTQwMDQwMDZFNEZEN0MxMjczCis6MTAyQTAwMDA4MDA0QUM2Q0FENkI4QzZBOEQ2OTEyMkZEODIyQjQwMjM1Cis6MTAyQTEwMDAwMjgwMDNEMzQwNTlFNTRBNjAwMzAyMkIwQ0U1NENGQ0NECis6MTAyQTIwMDA3MDI3NzU2NDEyNzU2M0ZDNzU2MjAxRDNFNTZDOTQxOUE3Cis6MTAyQTMwMDBFNTZCOTQwMDQwMDZFNEZEN0MxOTgwMDRBQzZDQUQ2QjQyCis6MTAyQTQwMDA4QzZBOEQ2OTEyMkZEODgwMjU3NTY0MkI3NTYzRkM3NThGCis6MTAyQTUwMDA2MjAxRDNFNTZDOTQzNUU1NkI5NDAwNDAwNkU0RkQ3QzlGCis6MTAyQTYwMDAzNTgwMDRBQzZDQUQ2QjhDNkE4RDY5MTIyRkQ4MjJCNEEyCis6MTAyQTcwMDAwMzAyODAwNkQzNTAwMzAyMkIwQUU1NENGNTQ5NzAwRjgwCis6MTAyQTgwMDA5MEZGMDRFMEZEQTNFMDRENjAwMzAyMkIwQzgwMTg5MDQyCis6MTAyQTkwMDBGQzgyRTBGREEzRTBGQzkwRkYwNUUwNkM3MDA3OTBGRjc2Cis6MTAyQUEwMDAwNEUwNkQ2MDAyODA2OEU0RjU2QUY1Njk3RjAwRTU0OTNECis6MTAyQUIwMDAxNEM1NDk2MDBGRUYyNDgwRjU4MkU0MzRGQ0Y1ODNFMDBGCis6MTAyQUMwMDAyRkZGODBFQThGNEFFNTRBMjQ4MEY1ODJFNDM0RkNGNTQyCis6MTAyQUQwMDA4M0UwN0QwMEQzOTU2Q0VEOTU2QjQwMDZBQzZDQUQ2QkRGCis6MTAyQUUwMDA4MDBGRTU0QTI0ODBGNTgyRTQzNEZDRjU4M0UwN0QwMDI0Cis6MTAyQUYwMDBGQzhDNkE4RDY5RTU0QTI0ODBGQ0U0MzRGQ0ZERkVFQzI0Cis6MTAyQjAwMDBGRDdGMDE4RDY0OEU2MzhGNjIxMjJGRDgyMjgwMDAwMkI4Cis6MTAyQjEwMDAyQzBGMDIyQzBGRTU2NzMwRTcxOUU1NkMxNDQ1NkI3MDNDCis6MTAyQjIwMDAxMkU1NEE3MDBFRTU0QzQ1NEI3MDA4OTBGRjAwRTA1NEVBCis6MTAyQjMwMDAxRjYwMDMwMjJDMEZFNTY3MjBFMDA4RTU2NzIwRTEwMzMyCis6MTAyQjQwMDAwMjJDMEY3NTY0NjhFNEY1NjNGNTYyRTRGNTY5MDRGNTM5Cis6MTAyQjUwMDA2QTEyMkZEODIyRTU2NzIwRTcyN0U1NkM0NTZCNzAyMUM0Cis6MTAyQjYwMDBFNTRBNzAxREU1NEM2NDAyNDU0QjYwMERFNTRDMTQ0NThCCis6MTAyQjcwMDA0QjYwMDZFNTRDNDU0QjcwMDg5MEZGMDBFMDU0MUY2MDI5Cis6MTAyQjgwMDAwMzAyMkMwRkU1NjcyMEUwMDhFNTY3MjBFMTAzMDIyQzMzCis6MTAyQjkwMDAwRjg1NEM2OEU1Njg3MDA4NDM2NzAxNTM2N0ZEODAxMzMzCis6MTAyQkEwMDBFNTY4NjQwMjYwMDdFNTY4MTQ2MDAyODA2NTUzNjdGRUFCCis6MTAyQkIwMDA0MzY3MDI3QzAwMTIyRkMzMjJFNTY3MzBFNzFBRTU2Q0Y5Cis6MTAyQkMwMDAxNDQ1NkI3MDEzRTU0QTcwMEZFNTRDNDU0QjcwMDk5MDQ2Cis6MTAyQkQwMDBGRjAwRTA1NDFGMTQ2MDAyODAzOEU1NjcyMEUxMDI4MEE2Cis6MTAyQkUwMDAzMTdDMDExMjJGQzMyMkU1NjcyMEU3MTVFNTZDNDU2QkE4Cis6MTAyQkYwMDA3MDBGRTU0QzQ1NEI3MDA5OTBGRjAwRTA1NDFGMTQ2MEM2Cis6MTAyQzAwMDAwMjgwMEZFNTY3MjBFMTAyODAwODdDMDAxMjJGQzMyMkJBCis6MTAyQzEwMDA4MDAwMDIyRUNBQjQ0MDAyODAwNkQzNTAwMzAyMkVDMEE4Cis6MTAyQzIwMDA5MEZGMDFFMDkwRkQzREYwRTU0QTkwRkQzRUYwRTQ5MDFDCis6MTAyQzMwMDBGRDNGRjBFNTY0MjQwM0Y1NjRFNTYzMzQwMEY1NjNBRDFFCis6MTAyQzQwMDA0QkU1NEM4NTY0ODI4NTYzODNDREYwQTNDREYwOTBGRjg2Cis6MTAyQzUwMDAwMUUwMTIwMUI3MkM3RDAxMkNBMzAyMkNDRDAzMkNGNzJGCis6MTAyQzYwMDAwNDJENDUwNTJEODIwNjJEQTgwNzJEQ0UwODJERjQwOTJCCis6MTAyQzcwMDAyRTFBMEIyRTQwMEMyRTRGODAyRTRGODEwMDAwMkVBREIxCis6MTAyQzgwMDBFNTY3MjBFNzA2N0MwNTEyMjU0QTIyN0RCNzdFMzQ3RjYyCis6MTAyQzkwMDAwMjc5NDA3QUZEN0IwMTc0MDg3ODAwMTIwMzNGN0QwOEI5Cis6MTAyQ0EwMDA3QzAwMTIyNEIxMjJFNTY3MjBFNzA2N0MwNTEyMjU0QTQ0Cis6MTAyQ0IwMDAyMkU1NEFCNDAzMDA0MDEwQjQwNTAwNTAwQkU1NEE3RkZBCis6MTAyQ0MwMDAwMEZFN0MxMDEyMzE5QTIyN0QwMDdDMDcxMjI0QjEyMjcyCis6MTAyQ0QwMDBFNTY3MjBFNzA2N0MwNTEyMjU0QTIyRTU0QUI0MDMwMDkxCis6MTAyQ0UwMDA0MDEwQjQwNTAwNTAwQkU1NEE3RjAwRkU3QzExMTIzMTA0Cis6MTAyQ0YwMDA5QTIyN0QwMDdDMDcxMjI0QjEyMkU1NjcyMEU3MDY3QzNBCis6MTAyRDAwMDAwNTEyMjU0QTIyRTU0QUI0MDUwMjgwMDNEMzQwMEFFNEFECis6MTAyRDEwMDBGRjA0RkU3QzBBMTIzMTlBMjJCNDAxMDI4MDAzRDM0MEUwCis6MTAyRDIwMDAwQUU0RkYwNEZFN0MwODEyMzE5QTIyQjQwMzAwNDAxMDJBCis6MTAyRDMwMDBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTMxMjMxOUEyMjQ1Cis6MTAyRDQwMDA3RDAwN0MwNzEyMjRCMTIyRTU2NzIwRTczNEQzRTU2Q0NGCis6MTAyRDUwMDA5NDQ4RTU2Qjk0MDA1MDA2RTU2QzQ1NkI3MDA2N0MwMjY4Cis6MTAyRDYwMDAxMjI1NEEyMkU1NEFCNDAxMDNCMzQwMEJDM0I0MDMwMDYxCis6MTAyRDcwMDA0MDA5QjQwNjAwNTAwNDEyMzA3MDIyN0MwNzEyMjU0QTI0Cis6MTAyRDgwMDAyMjEyMjRFODIyRTU2NzIwRTcxREU1NEFCNDAzMDA0MDRCCis6MTAyRDkwMDAxMEI0MDUwMDUwMEJFNTRBN0YwMEZFN0MxNjEyMzE5QUY0Cis6MTAyREEwMDAyMjdDMDcxMjI1NEEyMjEyMjRFODIyRTU2NzIwRTcxRDJCCis6MTAyREIwMDBFNTRBQjQwMzAwNDAxMEI0MDUwMDUwMEJFNTRBN0YwMDFCCis6MTAyREMwMDBGRTdDMTkxMjMxOUEyMjdDMDcxMjI1NEEyMjEyMjRFODJECis6MTAyREQwMDAyMkU1NjcyMEU3MURFNTRBQjQwMzAwNDAxMEI0MDUwMDcyCis6MTAyREUwMDA1MDBCRTU0QTdGMDBGRTdDMTcxMjMxOUEyMjdDMDcxMkI1Cis6MTAyREYwMDAyNTRBMjIxMjI0RTgyMkU1NjcyMEU3MURFNTRBQjQwM0FDCis6MTAyRTAwMDAwMDQwMTBCNDA1MDA1MDBCRTU0QTdGMDBGRTdDMTgxMjBDCis6MTAyRTEwMDAzMTlBMjI3QzA3MTIyNTRBMjIxMjI0RTgyMkU1NjcyMEYzCis6MTAyRTIwMDBFNzFERTU0QUI0MDMwMDQwMTBCNDA1MDA1MDBCRTU0QTI1Cis6MTAyRTMwMDA3RjAwRkU3QzE1MTIzMTlBMjI3QzA3MTIyNTRBMjIxMjRECis6MTAyRTQwMDAyNEU4MjJFNTY3MjBFNzA2N0MwNzEyMjU0QTIyMTIyNDlGCis6MTAyRTUwMDBFODIyRTU2NzMwRTcyMDkwRkYwMEUwNTQxRjcwMTA5MEYzCis6MTAyRTYwMDBGRjAxRTBCNDgwMDUxMjI0REY4MDAzMTIyNEU4MjI3REY0Cis6MTAyRTcwMDAwMDdDMDUxMjI0QjEyMjkwRkYwMEUwNTQxRjYwMDY3QzA0Cis6MTAyRTgwMDAwNTEyMjU0QTIyRDNFNTZDOTQ0OEU1NkI5NDAwNTAwQjVCCis6MTAyRTkwMDBDM0U1NkM5NDA3RTU2Qjk0MDA1MDA2N0MwMzEyMjU0QTQ5Cis6MTAyRUEwMDAyMkU1NEFCNDA1MDQxMjMwNzAyMjdDMDcxMjI1NEEyMjFBCis6MTAyRUIwMDBFNTY3MzBFNzA4N0QwMDdDMDUxMjI0QjEyMjdDMDUxMjBECis6MTAyRUMwMDAyNTRBMjJCNDIwMDI4MDAzRDM0MDAwODAwMDEyMkY5RUE2Cis6MTAyRUQwMDAyMjc1NDMwMDkwRkY4M0UwNTQwRkQzOTU0MzQwMjRFNUNGCis6MTAyRUUwMDA0MzI0RjBGNTgyRTQzNEZFRjU4M0UwQUQ2NEFFNjNBRkQ1Cis6MTAyRUYwMDA2MjEyMDMwRjA1NDMwREVENzAwMTBFOEQ2NDhFNjM4RjFBCis6MTAyRjAwMDA2MjgwRDFFNTQzN0QwMEZDQzNFNTZBOUNGNTZBRTU2OTEyCis6MTAyRjEwMDA5REY1NjlFNTZBNDU2OTYwMDZFNDkwRkY4M0YwMjI5MEJCCis6MTAyRjIwMDBGRjgyRTA0NDA4RjBFNEY1Njk3NTZBNDk5MEZEM0RFMEYwCis6MTAyRjMwMDBCNDA1MDI4MDAzRDM0MDQwOTBGRDNFRTBGNTQzQjQwNTY0Cis6MTAyRjQwMDAwMjgwMDNEMzQwMEFFNEZGMDRGRTdDMEIxMjMxOUEyMjc0Cis6MTAyRjUwMDBCNDAxMDI4MDAzRDM0MDBBRTRGRjA0RkU3QzA5MTIzMTZECis6MTAyRjYwMDA5QTIyQjQwMzAwNDAxMEI0MDUwMDUwMEJFNTQzN0YwMEUzCis6MTAyRjcwMDBGRTdDMTQxMjMxOUEyMjIyQjQ4MDAwNDAyM0I0ODIwMEQ1Cis6MTAyRjgwMDA1MDFFN0MzRDdERkQxMjE3RDU3RDAwOEM2NjhENjU5MEIxCis6MTAyRjkwMDBGRDNGRTA2MDA1MTIyRjlFODAwNTdDMDAxMjJGQzMyMkFBCis6MTAyRkEwMDAyMjkwRkY4M0UwNTQ3RkYwOTBGRjgyRTA0NDA4RjA5MDhECis6MTAyRkIwMDBGRjgwRTA0NDA4RjAyMjkwRkY4MkUwNDQwOEYwOTBGRjk4Cis6MTAyRkMwMDA4MEUwNDQwOEYwMjI4QzIzN0QwMDhDNkE4RDY5NzU2NDUyCis6MTAyRkQwMDAzRDc1NjNGRDc1NjIwMTEyMkZEODIyOTBGRjgzRTA1NDg2Cis6MTAyRkUwMDA3RkYwRTU2QTY0NDk0NTY5NzAwMTIyQzNFNTZBOTQwODg3Cis6MTAyRkYwMDBFNTY5OTQwMDQwMTU3NTIxMDhFNTIxN0QwMEZDQzNFNUQ1Cis6MTAzMDAwMDA2QTlDRjU2QUU1Njk5REY1Njk4MDA5ODU2QTIxRTRGNUEwCis6MTAzMDEwMDA2OTc1NkE0OTc1MjIwMEU1MjJDMzk1MjE1MDI2QUQ2NDgxCis6MTAzMDIwMDBBRTYzQUY2MjEyMDFFNkZDRTUyMjI0RjhGNTgyRTQzNEQ3Cis6MTAzMDMwMDBGRUY1ODNFQ0YwMDUyMjBERUQ3MDAxMEU4RDY0OEU2M0JDCis6MTAzMDQwMDA4RjYyODBEM0U1MjE1NDdGOTBGRjgxRjAyMjhDNDg3RkVFCis6MTAzMDUwMDAwMEVGMjRGQjQwMTlFNEVGNzVGMDA3QTQyNDNGRjU4MjRDCis6MTAzMDYwMDBFNDM0RkNGNTgzRTA2NTQ4NzAwMkQzMjIwRjgwRTI4RkUwCis6MTAzMDcwMDA0N0MzMjI4NTZDNkE4NTZCNjk5MEZGODJFMDU0RjdGMDQ0Cis6MTAzMDgwMDA5MEZGODNFMDU0N0ZGMDIyQzAwMEMwMDFDMDAyQzAwNjYwCis6MTAzMDkwMDBDMDA3RTU3MjI0MDhGODg2MDY1MzA2N0Y3Q0ZGMTIzMENECis6MTAzMEEwMDBGQTdDMDA3RDAwRTU3NTYwNDZGRjkwRkU5REUwNTQ3RjUwCis6MTAzMEIwMDA2RTcwMEZDMDgzQzA4MkEzRTBGREEzRTBGQ0EzMTU3NTcyCis6MTAzMEMwMDA4MDA3QTNBM0EzREZFNjgwMjZERjA2RDA4MkQwODM4MDFCCis6MTAzMEQwMDAxRUUwRjhBM0UwRjlBM0UwRkFEMDgyRDA4M0U4RjBBM0UxCis6MTAzMEUwMDBFOUYwQTNFQUYwQTNDMDgzQzA4MkEzQTNBMzgwREExMjBECis6MTAzMEYwMDAzMTkzRDAwN0QwMDZEMDAyRDAwMUQwMDAyMjg1QTg3NDI5Cis6MTAzMTAwMDA3NUE4ODhFQzcwMDI3QzNGOEM3MzIyRTU3MjI0MDhGODY1Cis6MTAzMTEwMDA3NjAwMTIzMUU3ODBGQkMwMDBDMDAxQzAwMkMwMDZDMENCCis6MTAzMTIwMDAwN0FFMDQ3Q0ZGMTIzMEZBRTU3NTYwNDJGRjkwRkU5RDA5Cis6MTAzMTMwMDBFMDU0N0Y2RTcwMEJDMDgzQzA4MkEzQTNBMzE1NzU4MDdCCis6MTAzMTQwMDAwN0EzQTNBM0RGRUE4MDI2REYwNkQwODJEMDgzODBEODNFCis6MTAzMTUwMDBFMEY4QTNFMEY5QTNFMEZBRDA4MkQwODNFOEYwQTNFOTk1Cis6MTAzMTYwMDBGMEEzRUFGMEEzQzA4M0MwODJBM0EzQTM4MERBNzgwODA3Cis6MTAzMTcwMDAwODc5MTgwOTdDMDFFNjU0N0Y2RTcwMDY3NjAwNzcwMEE2Cis6MTAzMTgwMDA4MDA2MDgwOTBDQkMwOEVFMTIzMTkzRDAwN0QwMDZEMDk3Cis6MTAzMTkwMDAwMkQwMDFEMDAwMjI3NTczMDA4NTc0QTgyMkMwRjBDMDRGCis6MTAzMUEwMDA4MkMwODNDM0U1NzUyNEU4NTAwNTEyMzFFNzgwRjRFQzUyCis6MTAzMUIwMDA2MDMxOTAzNEI2RTQ5M0MzOUM0MDI4QzAwNDdDRkYxMjc1Cis6MTAzMUMwMDAzMEZBRDAwNDQzMDQ4MEU1NzU3NUYwMDNBNDI0OURGNTFFCis6MTAzMUQwMDA4MkU0MzRGRUY1ODNFQ0YwRUZBM0YwRUVBM0YwMDU3NTg2Cis6MTAzMUUwMDAxMjMxOTNEMDgzRDA4MkQwRjAyMkMwMDQ3QzIwRDI4Q0M0Cis6MTAzMUYwMDBEMjhERDUwNEZERDAwNDIyNzVBODAwNzU4ODAwNzVCODVECis6MTAzMjAwMDAwMDc1RjAwMDc1RDAwMEU0Rjg5MDAwMDBGNjA4QjgwMEYyCis6MTAzMjEwMDBGQjAyMDAwMEMzRUQ5NDAyNTAwNDdEMDM3Q0U4RUNGNDUzCis6MTAzMjIwMDBGQ0VERjRGRDBDQkMwMDAxMEQ4Qzc5OEQ3ODIyQzNFQzEzCis6MTAzMjMwMDA5NEJDRUQ5NDAyNTAwNDdEMDc3Q0QwRUNGNEZDRURGNERBCis6MTAzMjQwMDBGRDBDQkMwMDAxMEQ4Qzc3OEQ3NjIyRUM3MDAxMjJDMDQ0Cis6MTAzMjUwMDAwMEU1NzIyNDE4RjhBNjA0RTU3MjI0MDhGOEM2NTQ3RjI1Cis6MTAzMjYwMDBGNkU2MzBFNzAzRDAwMDIyMTIzMUU3ODBGNEMyOEM4NTA1Cis6MTAzMjcwMDA3NjhDODU3NzhBRDI4Q0MwRTBDMEQwQzBGMEMwODJDMDg2Cis6MTAzMjgwMDA4M0MwMDBDMDAxQzAwMkMwMDNDMDA0QzAwNUMwMDZDMEE2Cis6MTAzMjkwMDAwNzEyMUIyOEU1NzIyNDA4RjhFNjYwMjRFNTcyMjQxMDYyCis6MTAzMkEwMDBGOEE2ODFFNTcyNzVGMDIxQTQyNDk1RjU4MkU0MzRGRDM5Cis6MTAzMkIwMDBGNTgzNzhBOEU1ODEwNEMzOThGOUU2RjAwOEEzRDlGQTY0Cis6MTAzMkMwMDA3NDA4MjU3MkY4MDU3MjA4RTY1NDgwNzAwQ0U1NzJCNDMzCis6MTAzMkQwMDAwN0YzNzgwODc1NzIwMDgwRUZFNTcyMjQxMEY4ODY4MTk0Cis6MTAzMkUwMDBFNTcyNzVGMDIxQTQyNDk1RjU4MkU0MzRGREY1ODM3ODI4Cis6MTAzMkYwMDBBOEU1ODEwNEMzOThGOUUwRjYwOEEzRDlGQUQwMDdEMDZECis6MTAzMzAwMDAwNkQwMDVEMDA0RDAwM0QwMDJEMDAxRDAwMEQwODNEMEE1Cis6MTAzMzEwMDA4MkQwRjBEMEQwRDBFMDMyQzBFMEMwRDBDMDAwQzAwMTM4Cis6MTAzMzIwMDBDMDAyQzI4RTg1Nzg4RDg1Nzk4QkQyOEU3ODE5NzkwOTA1Cis6MTAzMzMwMDA3QTA3RTc3MDA0QTYwMDgwMEJFNjYwMDgxNkU2NzAwNEMyCis6MTAzMzQwMDBFNzQ0ODBGNzA4MDlEQUVBRTU3MzYwMTMxNEY1NzM3MDRGCis6MTAzMzUwMDAwRUU1NzIyNDA4Rjg3NjAwMTIzMTkzRDI4Q0QyOEREMDBCCis6MTAzMzYwMDAwMkQwMDFEMDAwRDBEMEQwRTAzMjc1ODFBNzc1OTAwMDk2Cis6MTAzMzcwMDA3NTc5MzA3NTc4Rjg3NTc3NjA3NTc2RjAxMjA1M0MxMkJFCis6MTAzMzgwMDAzNDBGMTIxNzhCMTIzNDM5MTIzMUY1ODBFMzIyQzAwMDRBCis6MTAzMzkwMDA3QzAxRUMyNDA4RjhFNjYwMDkwQ0JDMDhGNTEyMzFFNzYyCis6MTAzM0EwMDA4MEVFRDAwMDIyQzBGMEMwODJDMDgzQzAwMEMwMDZDMDQyCis6MTAzM0IwMDAwN0VEMjQxMEY4NzZCNkVENzVGMDIxQTQyNDk1RjU4MjdBCis6MTAzM0MwMDBFNDM0RkRGNTgzQzA4MkMwODNBM0EzRTQ3ODBERjBBM0E5Cis6MTAzM0QwMDBEOEZDRUM1NDdGNzVGMDAyQTQyNDgyRjU4MkU1RjAzNDI5Cis6MTAzM0UwMDAzNEY1ODNFNDkzRkU3NDAxOTNGNTgyOEU4M0U0OTNGRUI3Cis6MTAzM0YwMDA3NDAxOTNGRkQwODNEMDgyRUZGMEEzRUVGMEVEMjQwOEE4Cis6MTAzNDAwMDBGOEVDNDQ4MEY2RDAwN0QwMDZEMDAwRDA4M0QwODJEMDJDCis6MTAzNDEwMDBGMDIyNzU3MjAwNzU3NTAwN0EwODc5MTg3ODA4NzYwMEMwCis6MTAzNDIwMDA3NzAwMDgwOURBRjhFNDc4MDg3NDgwNDQ3RkY2NzQwMUJDCis6MTAzNDMwMDA0NDEwRjU4OTc1QjgwOEQyQUJEMkE5MjI3NTgxQTdEMkZDCis6MTAzNDQwMDA4RUQyOENEMkFGRTU3NTYwMzJGRjkwRkU5REUwNTQ4MDQ1Cis6MTAzNDUwMDA2MDI0NzgwODc5MDhFMDU0N0ZGQTdCMDBFNjU0N0ZCNTUxCis6MTAzNDYwMDAwMjAyN0JGRjA4RDlGNUVCNzAwQ0VBRjAxMjMzOEJBRDRBCis6MTAzNDcwMDAwNEFDMDIxMjMzQTJBM0EzQTNERkQyMTIzMUU3ODBDNUFBCis6MTAzNDgwMDA3QzAxN0QwMDIyMDRGNTA0RTkwNEVEMDRFMTA0REQwNDdGCis6MTAzNDkwMDBEOTA0RTUwNEYxMDQ5RDA0QTEwNENEMDREMTA0OTkwNEU4Cis6MTAzNEEwMDA5OTA0OTkwNEQ1MDRCNTA0QUQwNEIxMDRBOTA0QzEwNDc4Cis6MTAzNEIwMDBCRDA0QjkwNEM1MDRDOTA0QTUxOTAxMDMwMDIyMDA0OENDCis6MTAzNEMwMDAwMjAwMjQwRjE4MEExMDY0MEQ2ODBDMDUwNjAyMDMwMTlGCis6MTAzNEQwMDAwMTgxMDEwMDAwRTcwMEMwMDA4MDAwNjAwMDQwMDAzMDcyCis6MTAzNEUwMDAwMDE4MDAwQzAwMDgwMDA0MDAwMjAwMDEwMDA4MTgzODUxCis6MTAzNEYwMDAyODA2MDIxMDBBMDIwMDAwMDAwMDAwMDE4MTEwMEEwMkUyCis6MTAzNTAwMDAwMDAwMDAwMDAwRkJFOEZCRkExMjAxMTAwMUZGMDAwMEMwCis6MTAzNTEwMDAwODUxMDQ1RjUwMTYwMTAxMDIwMDAyMDkwMjM1MDAwMTQyCis6MTAzNTIwMDAwMjAwRTAwMDA5MDQwMDAwMDVGRjAwMDAwMDA3MDU4MTFCCis6MTAzNTMwMDAwMjQwMDAwMDA3MDUwMTAyNDAwMDAwMDcwNTgyMDI0MDJBCis6MTAzNTQwMDAwMDAwMDcwNTAyMDI0MDAwMDAwNzA1ODUwMzAyMDAwMTk0Cis6MTAzNTUwMDAwNDAzMDkwNDI0MDM1NDAwNjUwMDc4MDA2MTAwNzMwMDJCCis6MTAzNTYwMDAyMDAwNDkwMDZFMDA3MzAwNzQwMDcyMDA3NTAwNkQwMDQ5Cis6MTAzNTcwMDA2NTAwNkUwMDc0MDA3MzAwMkEwMzU0MDA1NTAwNTMwMDY4Cis6MTAzNTgwMDA0MjAwMzUwMDMwMDAzNTAwMzIwMDIwMDA1MzAwNjUwMDU1Cis6MTAzNTkwMDA3MjAwNjkwMDYxMDA2QzAwMjAwMDUwMDA2RjAwNzIwMDMyCis6MTAzNUEwMDA3NDAwMjIwMzU0MDA1NTAwNTMwMDQyMDAzNTAwMzAwMERGCis6MTAzNUIwMDAzNTAwMzIwMDIwMDAyMDAwMjAwMDIwMDAyMDAwMjAwMEU0Cis6MDQzNUMwMDAyMDAwMjAwMEM3Cis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdHJfc21jdHIuYmluLmloZXggYi9maXJtd2FyZS90cl9zbWN0ci5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Nzk3NDUxCi0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvdHJfc21jdHIuYmluLmloZXgKQEAgLTAsMCArMSw0NzcgQEAKKzoxMDAwMDAwMEJDMUQxMjNCNjNCNEU5MDAwMDFGMDAwMTAxMDAwMjA1QTIKKzoxMDAwMTAwMDAxMDAwNjAzMDEwMDA0MDkwMTAwMEEwNzAxMDAwODBCQTIKKzoxMDAwMjAwMDAxMDAwQzAwMDAwMDAwMEYwMTAwMTAwRDAxMDAwRTEzNzQKKzoxMDAwMzAwMDAxMDAxNDExMDEwMDEyMDAwMDA1MDAxNTAxMDAxNjE5M0QKKzoxMDAwNDAwMDAxMDAxQTE3MDEwMDE4MDAwMDBFMDAwMDAwMDEwMDAwNTYKKzoxMDAwNTAwMDAwMDQwMDFCMDEwMDFDMDAwMDA3MDAwMDAwMEYwMDAwNEUKKzoxMDAwNjAwMDAwMEIwMDFEMDEwMDFFMDAwMDA4MDAwMDAwMDIwMDAwM0YKKzoxMDAwNzAwMDAwMEMwMDAwMDAwNjAwMDAwMDBEMDAwMDAwMDMwMDAwNUUKKzoxMDAwODAwMDAwMEEwMDAwMDAwOTAwMDQ3OEM2QkMwMTk0MDQ5MzgwQjMKKzoxMDAwOTAwMEM4NDA2MkU5REExQzJDMTU1NTU1NTU1NTU1NTU1NTU4MkIKKzoxMDAwQTAwMDBCRTlFNUQ1OTVDMTlENzdDRUJCQTA2RTFDMDVGNjc3MTMKKzoxMDAwQjAwMEM2MDJGQTk2NzBFODFEQzAxNzBFMDJGQTU4N0RDMDVGOUUKKzoxMDAwQzAwMDcyQ0VFQ0E0QzM4NDkwN0EzMENEOEQ3OTE5RTc2QzI0N0MKKzoxMDAwRDAwMDI3OUMwODM5MDczOEE4NEE0Q0VBNEQ5ODlCMjQ0Q0MwMDUKKzoxMDAwRTAwMDI2RDNFNzU0NUE0REYyNEMwQzEzMjM0OTkwMzI2RUE0OTgKKzoxMDAwRjAwMERGOTM3MTEzNzcyNkUxMjZGODI2MEM0QzEyMjYwODA5QTcKKzoxMDAxMDAwMDgyODI2MEE5MzA3OTM2QjBCMkE4QTc3MjY0OEY5QjMzMUYKKzoxMDAxMTAwMDMzRjlCODM5RDUxMTczQUE3NTI2NUQyNjUxOTMyQTQ5NEEKKzoxMDAxMjAwMDk0Qzk5NTg5QkM0REM4OUI4MDlCQTA5OTA2NEM4NjI2OTYKKzoxMDAxMzAwMDU4OUJBNDlCOTkzNzYyNkM2NzlCMzMzMEJGMzY2NjYxQ0UKKzoxMDAxNDAwMEJGMzZFQ0M1QkQ2NjgyNUE1MDMxRDU5RDk4MTgyOTNDMDIKKzoxMDAxNTAwMDk4ODY0QzE3MjYzRTJDQjg2OTNCNDkyRUI0MDg0MzFBQTIKKzoxMDAxNjAwMEE0RjlCMzUxRjExMEYzNDNDRDA4NkY2Mzc5QjMzMzBFQTMKKzoxMDAxNzAwMDEzOTg0OTk4MDREQTdDRTA1Mjc5MzEwQzk4MkU0REFDRjIKKzoxMDAxODAwMDJDODQxNEVFNENGRTY3NUVFNDlBNzUyOUQ3QTkzNTNBQTMKKzoxMDAxOTAwMDk0NUJENTlCNThCNEFGNzU2NkFGMTRBOUVGNDA5NTI1MTUKKzoxMDAxQTAwMDA4QjlBRDQyRkNEOEQ5OEMzMzBFMTM5ODY2MUU0NUFDMDUKKzoxMDAxQjAwMEIwMEM0MkQzQ0NBNjEyNjJERUI0QjE4MDQ5N0RBMkRFN0YKKzoxMDAxQzAwMEI0MThDMDI0ODRFNjU0RjU4MzQ2MDE2ODFBNjMwQ0M2NEIKKzoxMDAxRDAwMDEyNjRGQTRDMzUxQzJDMEVBQUFBQUFBQUFBQUFBQUFBODgKKzoxMDAxRTAwMEFBQUFBQUFBQUFBREQ3MDI3MEUwNENGM0ExQzFENUMwQjEKKzoxMDAxRjAwMDNDQjk2OTM5NjA0RTU4NzcwMjY3OTMzQzk5RTRDRjM4MkYKKzoxMDAyMDAwMDFDOTcyRTQwMUI5MDMxNDZBMzVFMEU4ODM0NkEzNUUwNjEKKzoxMDAyMTAwMEU4QUEzNTFBQTlGNTE1NDZBM0VBN0Q0QUEzNTFBQTlGNzMKKzoxMDAyMjAwMDcwNTRBNjU3MkVCNENEQzhBMzBDQzFEQUM2RTFDQjdBNjAKKzoxMDAyMzAwMEQ0MUM2OEZGQ0Y1NUE4QzAyRDg1MTExNzQ0MkEzMDBCNTgKKzoxMDAyNDAwMDRBODhDMjREQjUyMEQ1MjYwMTY5NTE2OTUyMTk1MjYwQkMKKzoxMDAyNTAwMDE2OTUxNjgyOTY1NDk4MDVBNTQ1RjNERDZBRjkyODE4NzcKKzoxMDAyNjAwMEVGMDAzMDMwNTE0RTQ0NUQxMkQxNDNFNjEyNkY5RUJBMUEKKzoxMDAyNzAwMENDREYyNTAzMURFMDA2MDYwQTMwQ0NBOUVCMkQwMDg2NTUKKzoxMDAyODAwMEE2MTI2NTRGNTZENjY1NDk1RjNERTgzN0M5NDBDNzc4MjUKKzoxMDAyOTAwMDAxODE4MjhDMzMxODQ5ODBBRTQwQzUxODA1OUM2RDE4QzkKKzoxMDAyQTAwMDY2MEVGM0EwQzYxMjYyREVGNTA0QjRBQzZCQzYxOTkxRkIKKzoxMDAyQjAwMDczMDU0ODJFNzI5NDgwNzNBMUM4NDczNjY2NjQyRjM2NDIKKzoxMDAyQzAwMDY2NjQwNzk5MDI5MThFNzJEMTBGOUQwNjMxNzNBMEMzQTcKKzoxMDAyRDAwMDUxNkExQTIwQkYzQTBDMkM3Mzg3NDM1RTYwMDIyM0ZDREMKKzoxMDAyRTAwMEUwRDYzNUVGOUVGNUVGOTI4MThFRjAwMzAzMDUxODY2OTgKKzoxMDAyRjAwMDQ1Q0MwQjQ4MkU3MDBBNDAzOUQwRTQyMzlCMzMzMjE3OEIKKzoxMDAzMDAwMDlCMzMzMjAzQ0M4NTQ4QzczODE0QTVDRTI5N0VEMjgwRDIKKzoxMDAzMTAwMEExQThCNDQ4ODgyRkNFODMwQjFDRTFEMEQ3OTgwNDg4QkQKKzoxMDAzMjAwMDg3Q0U5NjMxNzNBNThGRjM4MzU4RDdCRTdCODJBRjkyNjkKKzoxMDAzMzAwMDgxOEVGMDAzMDMwNTE4NjY0NUNDMTUyMEI5QzgyOTAwNDUKKzoxMDAzNDAwMEU3NDM5MDhFNkNDQ0M4NUU2Q0NDQzgwRjMyMDUyMzFDODIKKzoxMDAzNTAwMEU0NTBENDVBMTc4ODJGQ0U4MzEwRjlEMDIzMTczQTA0Q0IKKzoxMDAzNjAwMDM1RTYwMDIyMTYzOUMzQTNGQ0UwRDYzNUUwQkZGNDE4MDkKKzoxMDAzNzAwMEYyMkQ0RDQzNTE2RTVBMjIxRjMwRDQxN0U3NDE5MTczMkQKKzoxMDAzODAwMDA1NDgyRTc3NjkwMEU3NDM5MDhFNkNDQ0M4NUU2Q0NDMzQKKzoxMDAzOTAwMEM4MEYzMjA1MjMxQ0VGNEM0RTA2MDRDOTlFMEJGRjQxQ0IKKzoxMDAzQTAwMDhGMjJENEQ0MzUxNkU1QTIyMUYzNUE4MkZDRTgzMjJFRUUKKzoxMDAzQjAwMDYwQTkwNUNFMTM0ODA3M0ExQzg0NzM2NjY2NDJGMzY2NEIKKzoxMDAzQzAwMDY2NDA3OTkwMjkxOEU3MEE5ODlDMEE5RUI1MTI1QzdDRDEKKzoxMDAzRDAwMEMzMzE4Qjk4MkE3Q0QzRUQzOEU5RDM0RTc0RUQ0OTlFMTYKKzoxMDAzRTAwMDBCRkY0MThGMjJENEQ0MzUxNkU1QTIyREVCNDUzMzhGNzgKKzoxMDAzRjAwMEZDRjdBMDVGMjUwMzFERTQwRTA2MEEzMENDMENGM0VCREUKKzoxMDA0MDAwMDQwREU2MUE4NzA5MjBBMDBFMTI0MUUwMEUxMjQxRTAwNzMKKzoxMDA0MTAwMEUxMjQxRTAwRTEyNDFFMDBFMTI0MUUwMTBGOTgyQTBCOTYKKzoxMDA0MjAwMEYzQTBDOEI5QTJBNDE3M0E2OTAwRTc0MzkwOEU3NTQ4QjMKKzoxMDA0MzAwMDVFNzA2OTAxRTYwMDUyMzFDQzE4MTRBNUNDMDk4Mjk0OTMKKzoxMDA0NDAwMDczMENBMDkxRjUyNUNDMDcwNjg0ODQ5RjMwQTJBNDdENkYKKzoxMDA0NTAwMDUwNzVBNjY1MDE0QThFQjRDQ0M0MzU1NDc1NjZBNDk3MTAKKzoxMDA0NjAwMDdBODk1MDUzMTM4MDE5RTM0OTVDNkRDRUE5NDAzNTA2NTMKKzoxMDA0NzAwMDc4RDI1NzA2RjFCMzJBOEQ5NzIzNjI5MjVENjk5OTFDNTEKKzoxMDA0ODAwMDZBMzZFNkNENDYxMjZGOUVFMUFCRTRBMzBDQzBERUFDNEIKKzoxMDA0OTAwMEQ0MEQyODFCRDAxMkE1MDBGODRCQUQzMzI4MDZBMERFRTIKKzoxMDA0QTAwMDE0OTczQTg5NURDMDBERTMwNjkwOTI1RDY5OTg2NkI5MkMKKzoxMDA0QjAwMDE5OTVFNEE4Q0Y5RDMzMTg0OUJFN0I4NkFGOTI4QzMzNDMKKzoxMDA0QzAwMDI0MTQwQ0Y0ODMyNDIxQzI3MEJGRjQxOEYyMkQ0RDQzODAKKzoxMDA0RDAwMDUxNkU1QTIyMUYzMkE4MkZDRTgzMjJFNjA1QTQxNzNBNjYKKzoxMDA0RTAwMDY5MDBFNzQzOTA4RTc1NDg1RTcwNjkwMUU2NDJBNDYzMzcKKzoxMDA0RjAwMDk4MDIyOTRCOUEyOTc4RTk0MDUzMTM4MTgxMzI2NzgyMDcKKzoxMDA1MDAwMEZGRDA2M0M4QjUzNTBENDVBRTUwMDg3Q0UwRDA1RjlEODcKKzoxMDA1MTAwMDA2NDVDQzAxQTQxNzNBNjkwMEU3NDM5MDhFNzU0ODVFMDIKKzoxMDA1MjAwMDcwNjkwMUU2NTlBNDYzOTgxQzUyOTczQjMwNTI4RTdENDYKKzoxMDA1MzAwMDJBMDkxRjUxRUJBNEE0MEFCOTk0ODdBRUM1MzEzODAyMjkKKzoxMDA1NDAwMEZGRDA2M0M4QjUzNTBENDVBRTUwMDg3Q0VBMjBCRjNBRjAKKzoxMDA1NTAwMDBDOEI5QTE2OTA1Q0U5QTQwMzlEMEU0MjM5RDUyMTc5NDMKKzoxMDA1NjAwMDk1NDgwRjMwMEE5MThFNjBFQjI5NzMwMDA5NTQwNENBMzQKKzoxMDA1NzAwMDgyNjU1MjY1RTRDQTIyNjU3MjY1MDkzMkUwOTk3MjRDNUYKKzoxMDA1ODAwMEM0RTAwQkZGNDE4RjIyRDRENDM1MTZCOTQwMjFGMzhBNDEKKzoxMDA1OTAwMDgyRkNFODMyMkU2MEE5MDVDRTlBNDAzOUQwRTQyMzlEMzIKKzoxMDA1QTAwMDUyMTc5OTU0NjE5OTAxRTY0MEE0NjM5ODA0QjE4NDk4NjQKKzoxMDA1QjAwMDE4RUYyRDAzMDUzMTM4MDJGRkQwNjNDOEI1MzUwRDQ1NUUKKzoxMDA1QzAwMEI5Njg4ODdDRTA1MDVGOUQwNjQ1Q0M4MTQ4MkU3MTM0MjcKKzoxMDA1RDAwMDhGNDgwMTQ4MTUyMTA1MjFFOTBBNTIwM0NFNUE0NjM5QjAKKzoxMDA1RTAwMENGNDc4RTYwQUIxQUYzNTM0M0VCMzUyNEI4MUIzMDA3NkIKKzoxMDA1RjAwMDA5OEE3NDJGN0U0MTc0MUUxRDBEODc0NjQ5RDU5NUQxRjkKKzoxMDA2MDAwMEQ1RDVCQkE5NEU4MjlEMDUzQTBBNzQxNEU4MjlEMDQyN0IKKzoxMDA2MTAwMDc0NUJDRTUwQzQwNzQ1QkNFMjBDNDA3NDVCQ0U4MzA0Q0YKKzoxMDA2MjAwMEY5OTU0RDEzNjM1RTZGMzEzQkEwOEJBMkM1Mzk4RDc4NzAKKzoxMDA2MzAwMDNBMjJBMDAwNkJDMUQxNTQ2MDE2RDk5MUEyRTc0MzhDMzUKKzoxMDA2NDAwMDI0REMxQ0UwNTExNzM5NkIzQkNDNEI0MjJFNkI1MEJGNjYKKzoxMDA2NTAwMDM2MzY2NTRGN0ExODU1MjU3ODk4MjNFNzUwM0VGMzgxNTIKKzoxMDA2NjAwMDRDMDI2RDNFNzE1M0FGNzhBOUQ0QTYyOUIxQkNEOTk5N0IKKzoxMDA2NzAwMEIyOEU2MjhGMjIyRTc1MTZCMEIyQUIyMzI4MTY1NDUyNUEKKzoxMDA2ODAwMDMxQkNEOTk5QjI4RTY2MTkwMjJFNzUxNjUwMkNBOUM4QTQKKzoxMDA2OTAwMEM2RjUyMEQzRTQ3RjRGOUMwQUQ2MTY3RjkwRUU0Q0VCMzQKKzoxMDA2QTAwMENGRTI4OEJBMkY0Mjg2QUVCREU1QTc1MjlGOTM2Mzc5MDkKKzoxMDA2QjAwMEVCMzMwOEY5OTQ1MjQ3Q0Q5OTI1NkYzQTBDMTNFNjU1NjAKKzoxMDA2QzAwMDM0NEM1QTREQjUyMzk1QTU0ODExNUEwQTQzOTVBQzJDODQKKzoxMDA2RDAwMEJBMjQwNTQ5QjFCQ0NBQTc3MjZDNkJDNUJERTgzMTY5QzMKKzoxMDA2RTAwMDUyNUQwNjEyNjUzRUIxNTA0QzdENEZBQzBBMzAwQjM2NjAKKzoxMDA2RjAwMDY0MTE3MzhBODM4RTc1MTI5RjdCRDI5OTU4RUU4MjJFNzUKKzoxMDA3MDAwMDc3QTBFMzlENUQ0RkJDMkE1MzI5NTNERTkzMjRCQUIzRUYKKzoxMDA3MTAwMDM2QUE0QUM2NzlENEI5REU2MjVBMTE3MzUwNTBCRjM3MkYKKzoxMDA3MjAwMDM2NkYxMzIzQkEwQzI0Q0VCREUyQTc1MkIyOEU2QjYwOTMKKzoxMDA3MzAwMDYyMkU3NTEzMzBBQ0EwNTlDQTY0NjM3OUIzMzM2NTFDNUIKKzoxMDA3NDAwMENDMzIwNDVDRUEyQ0EwNTlERjIzMUJENDgzNTI0N0RENTIKKzoxMDA3NTAwMDc5OTZENDlFQjM1MjRCQTI1QTFBOEQ1RDdCODJBNzUyRDIKKzoxMDA3NjAwMEIyOEU2NjE5MDIyRTc1MTY1MDJDOEMzMjFEN0I4RUE3MDgKKzoxMDA3NzAwMDUyQjFCQ0Q5OTk5ODA0REE3Q0UyQUNGRTY2MTkwMjJFMUIKKzoxMDA3ODAwMDY1NTBCRjMzNjY2NEZFNzQxODg2NEMxNzI2RDYxNjUyMjEKKzoxMDA3OTAwMDM5MThERTdBQ0NDMjNFNjUxNDkxRjM2NjQ5MDg2RTgzM0YKKzoxMDA3QTAwMDA5MzNBRjMxRUQwRDlEMDYxMjYyMkEzMThENkRFNzQxOUYKKzoxMDA3QjAwMDgyN0NDQUE2ODk4NzA5MkUyOUIxQUYxMDM5RDY2NDk3RTEKKzoxMDA3QzAwMDMwMUQ0Mjc1OTM0NDAyOEMyNEQyN0FCMzUwRjY4OTA1QzkKKzoxMDA3RDAwMDQzNUU2MTk4QzAyQzkyMjUzQzhCMjQ4OTQ5MDU0OUU3RUEKKzoxMDA3RTAwMDBDQjk4NDk4QjdBRDMzNDRBRTVBNTE4NjYwOUYzOEE5OEUKKzoxMDA3RjAwMEEyNkM2QkM0OEVGNDVFNDk0NjEyNjJERUI0Q0QyMTVDRkQKKzoxMDA4MDAwMEI0QTMwQ0MxM0U3MjI5QTI2QzZCQzYxMjYyNDdGMEU4MTkKKzoxMDA4MTAwMEMzMzIwNDM1NDA5MkE0ODI4ODEwOTI3Q0NCRDQyRkE0OUEKKzoxMDA4MjAwMDAyMTE4NDk4QjdBRDMzNDRBRTVBNTE4NjYwOUYzOEE5RkYKKzoxMDA4MzAwMEEyNkM2QkM0OEVGNDVFNDk0NDA4NDkzRTY1RUExN0QyNDcKKzoxMDA4NDAwMDAxMDhDMjRDNUJENjk5QTQyQjk2OTQ2MTk4MjdDRTQ1OUIKKzoxMDA4NTAwMDM0NEQ4RDc4ODEwOTI3Q0NCRDEyMjg2QzU4QUZCNkYzODIKKzoxMDA4NjAwMEEwQzEzRTY1NTM0NEQ4RDc5MjhFN0Q0QkMyRkE2MTI2MTMKKzoxMDA4NzAwMDA2M0FCMzZCMDMwNTQ5RTcwQ0I5NkY1QTY2OTU1Q0I0NDkKKzoxMDA4ODAwMEEzMENDMTNFNzAyOUEyNkVBNERGOTM3MTEzNzcyNkUxRjkKKzoxMDA4OTAwMDI2RjgyNkM2QkM5NDczRjkyRjBCRTk4NDk4MThFQUNDODUKKzoxMDA4QTAwMEVDMEMxNTI3OUMzMkZGM0Q1NkFGOTI4QjdBRDMzNUQ1OTEKKzoxMDA4QjAwMENCNEEzMENDMTNFNzAyOUEyNkM2QkM5NDczNDE5NzkxNzkKKzoxMDA4QzAwMEY0ODNDRTA0MjA2MjhCMDUxNjQ5OEMyNEMwQzc1NjkwNTEKKzoxMDA4RDAwMEMwQzE1Mjc5QzMyRTVCRDVBNjcyRDI5NEZBQUQ1OEM4NjYKKzoxMDA4RTAwMEZBOUY1NEIzMzI0QkI5NTRBNjUxODY2Qjc5RDA2MDlGQUUKKzoxMDA4RjAwMDMyMDUzNDREOEQ3QTREMUU3QUIzNTEwMEE5M0Q1OUE4NjkKKzoxMDA5MDAwMDdCNDQ4MkExQUY0QThENTJBOTUyNDE0OTRGM0EyRTQwQjEKKzoxMDA5MTAwMEE0OTk1MEJFOTAwODUyNzlDMzJFNjEyNjJERUI0Q0QwN0QKKzoxMDA5MjAwMDE1Q0I0QTMwQ0MxM0U3MDI5QTI2QzZCQzQ4RkUxRDI1REIKKzoxMDA5MzAwMDQ2QTk1NEE5MjBBNEE3OUQxNzIwNTI0Q0E4NUY0ODA0OUIKKzoxMDA5NDAwMDIzMDkzMTZGNUE2NjgwQUU1QTUxODY2MDlGMzgxNEQxQTAKKzoxMDA5NTAwMDM2MzVFNEE3OUQxNzIwNTI0Q0EyNDUwRDhCMTVGNDkxMTYKKzoxMDA5NjAwMERFOEJDOTI4QzI0QzVCRDY5OUE5NUNCNEEzMENENkYzMjQKKzoxMDA5NzAwMEEwQzEzRTY0MEE2ODlCMUFGMTZENENBQTkyRTAzNjk0QkQKKzoxMDA5ODAwMDcwOUIyOTc4MTNBRUIzQUE4NUQ0NDM3NTA5M0FDOUVCOTUKKzoxMDA5OTAwMDM1MjRCODFCMzI4RTEzNDg3RTRFRkQ0MEZENDBGRDQwOEQKKzoxMDA5QTAwMEZENDBGRDQwRkMxM0Y0MjFGOTE3NDU4QTMwMEIzMzVGRkQKKzoxMDA5QjAwMDgzQTIyQTMwMEIzMzVGODNBMkE4QzAyREIzMjA3MDkyOEMKKzoxMDA5QzAwMDEzOUFERTc0MTgyN0NDQUE2ODlCMUFGNzA3NDU1MTgwNDIKKzoxMDA5RDAwMDVCNjY0NzA3MzhBODIzRTc1MTExM0ZFMEU4ODU0NjAxRTkKKzoxMDA5RTAwMDZEOTkwNjEyNjU0RjdBMjAyNEJBQjMzMjE1MjU3QkFENzYKKzoxMDA5RjAwMDMzNzhBRTBFNzNEMDQ3Q0VBNzMwQ0M0NEZGODNBMkE4ODUKKzoxMDBBMDAwMEMwMkNEOTkxQzFEMTE1MTgwNTlCMzIwOEJBMkM1MTgwNDAKKzoxMDBBMTAwMDU5QjMyMDcwOTJFMjk4ODlGREJDRUUxODkwRkM4QkEyMkQKKzoxMDBBMjAwMEM1MkIwRDc4M0EyMkE1NjFBRjA3NDU1MTgwNUI2NjQ0MUUKKzoxMDBBMzAwMDlFQjM1MjRCODNBREM3MDlCRTFGOUY3NDY1NUQwQTE3RjUKKzoxMDBBNDAwMDdDQUJBMEMyNEMzODQ5MTIyRTM4NDkwN0EzMENDMTNFREEKKzoxMDBBNTAwMDY1NTM0NEQ4RDdBREU3MDAzMjRCOUIzMzM0NEEwMzAwOEIKKzoxMDBBNjAwMDlEMjVDRTgzMjRCODE5OTk4QzAyMTI0QkExOTlEOEMwMjgKKzoxMDBBNzAwMDI3NDk3M0NGRjkzQ0Y0N0NFNzk4MDRFOTJFN0YzOUUzRUEKKzoxMDBBODAwMDRGNDY1M0MwNjAxM0E0QjlFNTNDMDNERThGOUNGMzAwQ0UKKzoxMDBBOTAwMDlDNkZDRjNFODVGOUEzMzYwMjFFNjAzODkyM0U2MzFBRTIKKzoxMDBBQTAwMDEwOUZDRjE4MTA5MkJDRDBBNDBDRENDMDBGOUM5NzM0QzAKKzoxMDBBQjAwMDYyQjZFN0YzRjNBNUNGMTg0MjM0MUNDMkNBRkE4RTY4QjcKKzoxMDBBQzAwMDUyMDZBRjNDQTMwREJGOUU1MEUxRDE3M0NBRTAzQUZDODEKKzoxMDBBRDAwMEMxMDkxQTFFNkE1QzVCOEU2MzRFNzc3M0NDNjE2N0RENTkKKzoxMDBBRTAwMEU2NkM0OEQxRjMxQjI0Njk1MTA4RDQ0MjFCRjQ2N0QxNEEKKzoxMDBBRjAwMDgwNEUyRkQwOENEODMwMDlDMjFFODAxQzQ2MDEzQTQ3NDgKKzoxMDBCMDAwMEQwMzFBMTA2MDEzQTdGNDYzMDIxMTgwNEU5NUU4NDI5REMKKzoxMDBCMTAwMDAwQzAyN0NERDAwMDdDOTgwNEY5MkU4NDYyOEMwMjdEMjEKKzoxMDBCMjAwMEJBM0U3RTRDMDI3RDJFOEM2MTA4MzAwOUY0MUQwMTY1QjEKKzoxMDBCMzAwMDczMDA5RjUxRDA4NTIwMTgwNEZBQkQxOTQ2MThDMDI3QUMKKzoxMDBCNDAwMERGRDE5NDM4NEMwMjdEMTc0NjU3MDEzMDA5RjVGQTAxODAKKzoxMDBCNTAwMDA5MDYwMTNFODdBMTRCODhDMDI3REM3NDBEMzlEMzAwRkMKKzoxMDBCNjAwMDlGNzNEMDMwQjM5ODA0RkJCRDA2QzQ4MzAwOUY0N0QwNjkKKzoxMDBCNzAwMDM2NDhDQzAyNzFCRjNGOUExN0U2M0YwODIxRTY5MkE0OUYKKzoxMDBCODAwMDhGOUExMDMxQTdGMzEwQjE4NEFGM0FBQ0RDRjc3M0YyNEYKKzoxMDBCOTAwMDVDQzYyQURCOUU3RTdFOTczMTA4NjNEMDczN0I0M0E4QjgKKzoxMDBCQTAwMEU2M0QzNEVBRjNFMzE1QkY5RjE4NUY0NUNGRTg5RjVGNEEKKzoxMDBCQjAwMDlBNUIwM0QwRjNEM0NFMzcxQ0QwMEZCQjlFNjg3ODNCMzMKKzoxMDBCQzAwMEJDQ0EzMUU4RjlBMjAyMTJBMjczNTEwODZGRDFGMzQ2RjAKKzoxMDBCRDAwMDAxMzhCRjQwRkMyMzAwOUMyMUU4NDk1MTgwNEU5MUY0MkMKKzoxMDBCRTAwMDIxMDMxOTgwNEU5RkQwMjE2MzA2MDEzQTU2OEMwMjc0NkUKKzoxMDBCRjAwMEZFNzU0OTVFNjNEMzRBNTQ0MjM1MTNBN0QxODA0RTk1QTIKKzoxMDBDMDAwMEU4MUU5QTRDMDI3Q0REMUJCOUU2MDEzRTRCQTA2MkEzQjQKKzoxMDBDMTAwMDAwOUY2RThDRkNGMzAwOUY0QkEwNDIxOENDMDI3RDA3MTYKKzoxMDBDMjAwMDQzREExMzAwOUY1MUQwM0QzNDk4MDRGQUJEMUM2MjhDMDYKKzoxMDBDMzAwMDAyN0RGRDFDNjE3MzAwOUY0NUQxRjQ0RTYwMTNFQkY0RkYKKzoxMDBDNDAwMDI1QjAzMzAwOUY0M0QxQTc5QzE4MDRGQjhFODQwM0U5OTEKKzoxMDBDNTAwMDgwNEZCOUU4NDNDMTMwMDlGNzdBMEEzMTk4MDRGQTNFNjcKKzoxMDBDNjAwMDg0NDA0MTgwNEU4MkU3NDE4NzA5MjMwNDIzMDA5RDA1OEIKKzoxMDBDNzAwMENFOTYxQzI0OEMxMDhDMDI3NDE3M0EwNDM4NDkxODIxMjMKKzoxMDBDODAwMDE4MDRFODJFNzQ1MEUxMjQ2MDg0NjAxM0EwQjlENDExRDQKKzoxMDBDOTAwMEMyNDhDMTA4QzAyNzQxNzNBODIzODQ5MTgyMTE4MDRFQTUKKzoxMDBDQTAwMDgyRTc1MjhFMTI0NjA4NDYwMTNBMEI5RDQwMUMyNDhDNjYKKzoxMDBDQjAwMDEwOEMwMjc0MTczQTA5MEUxMjQ2MDg0NjAxM0EwQjk4MzYKKzoxMDBDQzAwMDZBMUMyNEIwRTExODA0RTgyRTZCNTBFMTI1ODcwOEMwQTcKKzoxMDBDRDAwMDI3NDE3MzA1NDM4NDk2MUMyMzAwOUQwNUNDQUExQzI0NDAKKzoxMDBDRTAwMEIwRTExODA0RTgyRTcwNjg3MDkyQzM4NDYwMTNFNTQ0ODQKKzoxMDBDRjAwMEY5NDA5RDA1Q0U1QTFDMjRCMEUxMTgwNEY5RDEzRTcwOEMKKzoxMDBEMDAwMDI3Q0YxM0U1NDQyQ0EwNDJDQjg5RjIyMTNBMEI5QzBBNTEKKzoxMDBEMTAwMDFDMjRCMEUxMTgwNEY5RDEwQjM4MTBCM0M0MjEzOTM2QzIKKzoxMDBEMjAwMDVDNDJDODg0MkI3OUQwNjFDMjc0MTUyNEJBRDMzMUU1RjIKKzoxMDBEMzAwMDU5MDgyOTA4RTA2NjYzNDI5NTEyODEwMDI5MEJDMTUxQzgKKzoxMDBENDAwMDI0QjgxOTk5OTAyMjkwQjQxOEEwOTE0MTAxNDE0MTQxRDEKKzoxMDBENTAwMDUyODNDQTQwMjg2ODI5MDhCQTE2MTA5Qzk5MEI1Njk0RTkKKzoxMDBENjAwMDkwNTIxNTc0QzAyNzFBMkFEMjkwMjVEMzAwOUQyOEFCMjMKKzoxMDBENzAwMDRBNDIxNzRDMDI3MEQ0ODQyRTk4MDRFMTJBNDIxNzRDNDAKKzoxMDBEODAwMDAyNzA4MjkwNEJBNjAxMzg1MTQ4NDJFOTgwNEUxNUE0NkEKKzoxMDBEOTAwMDIxNzRDMDI3MEZBNDEyRTk4MDRFODJBQzgwQUNBMEFDQjUKKzoxMDBEQTAwMEE5NTlFNTY0NDU2NUNBQzg0QUNFMEFDRTRBQ0U5NTkxOEUKKzoxMDBEQjAwMDk1OTQ5NTkzMjkyNUMwQ0NDQzg4QTQ5NzU2MzY2NDcyMTcKKzoxMDBEQzAwMDkwNTQ4QTlDNDUwOEI5Qjc2NjEyOTMwOUM5QjI3NDhFQ0IKKzoxMDBERDAwMEJBNjAxM0U1MzQ4RUJBNjAxM0U0NzQ4RUJBNjAxM0U1MUEKKzoxMDBERTAwMDY5MUQ3NEMwMjdDQTI5MUQ3NEMwMjdDRUQyMjVEMzAwMUYKKzoxMDBERjAwMDlGMzhBNDRCQTYwMTNFNUU5MTJFOTgwNEY5MTUyMjVEMDIKKzoxMDBFMDAwMDMwMDlGM0U5MTJFOTgwNEY5MDUyMjVEMzAwOURDNTQ4N0YKKzoxMDBFMTAwMDI1RDMwMDlDNDVDRUNEMDlDOUIyMUE0NEJBNjAxM0U3NjgKKzoxMDBFMjAwMDM0ODk3NEMwMjcxQzI3Qjc5QzgwQzJENzc2NTk5QjkzRkUKKzoxMDBFMzAwMDBDNjRDMzFEMUJGNDQ1NEJDN0M2M0EzN0U4ODE0QkM3NEEKKzoxMDBFNDAwMEM2M0EzN0U4OTE0QkM3QzYzMjYxOEVCM0JDQzM0QTIyNUIKKzoxMDBFNTAwMEU2QjUyNDk3NzFDOTg3QjQzMUFFNzNBMkNGMzlEMjVEOUMKKzoxMDBFNjAwMDA0NDQ0MkMwRDZERTcxMDYxNkJCREJDRTgzMEM2NEMzREQKKzoxMDBFNzAwMDFEMzExMzA0Rjk5NTREMTMzMjkzNjM1RTY2MTRDQzI5MkEKKzoxMDBFODAwMDJBNTMzMEE2NjE0Q0MyOTk4NTNBNzJDQ0MyOTk4NTA2MjQKKzoxMDBFOTAwMDFCQjMwQTY2MTQxNDI0OTk4NTMzMEEwOEIxODY2MTRDODEKKzoxMDBFQTAwMEMyODQyMTY4NzMzQjMwQTY2MTQxNEVBNTk4NTMzMEFDOTMKKzoxMDBFQjAwMDU5NzY2MTRDQzJCMDhERDY2MTRDQzJCMDJDRjY2MTRDRjMKKzoxMDBFQzAwMEMyQjE4Q0E1OTg1MzMwQUMwRjI0Q0MyOTk4NTYwRjI4NkEKKzoxMDBFRDAwMDY2MTU5MjFBMTk4NTMzMEFDQTg1MENDMjk5ODU2NUMzQUQKKzoxMDBFRTAwMEQ5ODUzMzBBQ0U3MDg2NjE0Q0MyQjM5NzcxMEM5OTNCOTkKKzoxMDBFRjAwMENDODM1ODBCRUE3NzlEMDY0QUJFMDQ3NDYwRTBEMTRFNUQKKzoxMDBGMDAwMDM4NEMzRUVFM0VFRTNFRUUzRUVFMzBCQkNBRTExRjc3ODEKKzoxMDBGMTAwMDFGNzcxRjc3MUY3NzI3NzA4RkJCODAwRTExRjc3MUY3MzAKKzoxMDBGMjAwMDdDNkYzQ0IzMzYwMkZCOERFNjU1NzA3RjJEMjQ2OTU1RUUKKzoxMDBGMzAwMDRGNThBOTIzMUY1NEY3OEE5NTI1MkI3NTBDQ0NBQzU2MTYKKzoxMDBGNDAwMDUxQ0M1MUU0NDVDRUEyMTIzOUMwQTBBRjU2NkE0OTdGQjgKKzoxMDBGNTAwMDAyOEMwOUY4MEJFQkFGNTY3NjY3NTJCMjhFNjlBNzExNzcKKzoxMDBGNjAwMDczQThCMUJDQ0FBMEE5MzY1MDJDOThFNzBBRjU2NkE0QUMKKzoxMDBGNzAwMDk3RTI1QTMwMjdCQUY3ODM0RUE1MzMwQTY2MTU4REU2RjUKKzoxMDBGODAwMDU1MzlEMkE3QUM1NDYwMTY3MDFCNzI4RTYyOEYyMjJFMTgKKzoxMDBGOTAwMDc1MTYwMkZCOERFNjBBOTUzRDYyQTMwMEI3MDFCNTUzQjUKKzoxMDBGQTAwMERFMkE1NDk0QURENDMzMzJCMTU5NDczMTQ3OTExNzNBQzAKKzoxMDBGQjAwMDg4NDhFNzAyQjAxN0RDNjc5RDRCOERFNzUyQUE3QkQ0QzcKKzoxMDBGQzAwMEFBOTJCREQ2OTlCQzU2MDJGQjhDRjM2NjY2QzZGMzY2NDAKKzoxMDBGRDAwMDY2NjI5OTJBRjgxODY4NzBCMDhBMEQ1NTU1NTU1NTUyQjEKKzoxMDBGRTAwMDMyRTE0MDVDMzgwQkVBOUI4NzAxN0RDMDVGNzAxN0RDMDMKKzoxMDBGRjAwMDA1RjVEQzlCMDE3RDYxNEQ4MEJFQTc3OTgyQTIxRjUwNjMKKzoxMDEwMDAwMDE1MkE4RjhCMUNFNUE1MTM4NDU4RTcwMjkxNTQwNTAyMUQKKzoxMDEwMTAwMDRCQkQyMjFBOTQ3RjlDMUFDMDVGNDIxQTIxRDE4MDU5N0QKKzoxMDEwMjAwMEMwNkQxQzJDMEE4MzU1NTU1NTU1NTU1NTU1NTU1NTU1NkMKKzoxMDEwMzAwMDU1NTQxQ0I4NUM2RTE3OUMyRjM4NUU3MEU3Qjg1RTcwMTQKKzoxMDEwNDAwMEJDRTE3OUMyRjM4NUU3MEJDRTE3OUMyOTlDMjk5QzI5MkEKKzoxMDEwNTAwMDlDMjMwRjU4MTRFRTM1NzcyNjIxOTMwNUM5QjAxN0QyN0IKKzoxMDEwNjAwMDFEMTg4QTIxOTMwNUM5QjAxN0QxODdBQzBBNzQwRkFFMzkKKzoxMDEwNzAwMEY1NUE4MkEzRTQzQTMxMTRCQkQ3NTk5OTc0QTIxOTMwQjYKKzoxMDEwODAwMDVDOUIwMTdEMTg3QUMwQTc0MEY4NDNENDYzODkyNUQwQzIKKzoxMDEwOTAwMDEwRDYxQzZBMTBGNTU1ODkyNUQxNTE2NjFGNTFGNTkxNUUKKzoxMDEwQTAwMDQ5MkU4OTE1OTg2QUEzRTA4QTk0NjU2NDBFMTMxNzM4NEYKKzoxMDEwQjAwMEE4ODY0QzE3MjZDMDVGNDYxRUIwMjg2MzFGMDg3QThDOEUKKzoxMDEwQzAwMDcxMjRCQTAyMUFEMDBENDIxRUFBQjEyNEJBMkEyRDMxQjcKKzoxMDEwRDAwMEY1MUY1ODc0OTJFODg3NUE2MzUyREVGNDUxNjk0QTNFMEMKKzoxMDEwRTAwMDA5Njk0NjUwRjBFMTMxNzMwNTQ1QkQ1OThEOEI0QTdDNDUKKzoxMDEwRjAwMEQzRUQzOEU5RDM0RTc0RUQ0NDMyNjBCOTM2MDJGQTVCNzEKKzoxMDExMDAwMERFOEEyRDI5RDBFMTIxRjVBMzkyMjFGMjE5MzA1QzlCRDIKKzoxMDExMTAwMDAxN0QyMUY1QTBDNjAxNjcwMUI0NDVDRUE1MTIzOUQ0RTEKKzoxMDExMjAwMDFDMDVGNDQwQTFDMkMzNTA2QUFBQUFBQUFBQUFBQUFBRTQKKzoxMDExMzAwMEFBQUFBQUFBQUFBQTgxQUY4NjlGMTkxQkU3ODFGMzY1NkEKKzoxMDExNDAwMEYyODBCRTcwMTdERkRGMzgwQkVCMERDMzgwQkVBNzBGMzgKKzoxMDExNTAwMDk1NEY1QTk0QzAyQ0Q4QjFBN0NFNUExMTczQTgzQUMyNTEKKzoxMDExNjAwMENDQjYzMDE3REM2RjM1QTk4MDREQTdDRTJBMTg3OUM1Q0IKKzoxMDExNzAwMDQ5REU2MUE4MjJFNzUwMzNGOTk4NjQwOEI5OTU0MkZDMkEKKzoxMDExODAwMENDRDk5NTNENjJBMjQ4RDQ0OEU3MDI4OEI5QzFBMEUzMTIKKzoxMDExOTAwMDlENEU2MkU2Q0NDNjZCQ0U4MzEwQzk4MkU0REFDMkM4MkIKKzoxMDExQTAwMDFFQzNCOTM2MDJGQUE5RUI0RTMwMzBGQTBERjBBOUVCQTYKKzoxMDExQjAwMDQwQjkwRkFBN0FEMkMyQzhGQUE3QUQ0MTBBNDdENTNEQjUKKzoxMDExQzAwMDY4QUNGMUY1NEY1QTk3NTQ3RDRGQThBQTU1MUYxMTczN0IKKzoxMDExRDAwMDVBQjAxN0RFNUQ1OUE5MjVEMDU1MkE0NkJDQjgyMkFFQjMKKzoxMDExRTAwMDQ1MjkzRTE0RkFFMTk5OTRDQTRBQkUzREQ2OTk5MjVEQ0EKKzoxMDExRjAwMDE1MTdDOEQ3REMxNTE3OEE0MDFGMEE5RUFDQzk2NTQ5NjgKKzoxMDEyMDAwMDVDMUQxMDY4NEEzRTVCREU4MzE2OTU4MEJFOTE3NDU4NjMKKzoxMDEyMTAwMEE0MDA3QzM4RTc1NjMwMTdERjc1QTY2NDk3NDUyMDlERkIKKzoxMDEyMjAwMDAzNUY3MDU0NUUyOTFERjBBOUVBQ0M4NjU0OTVDMUQxQTQKKzoxMDEyMzAwMDA2ODMwRkFBN0JEMDY1NDk0NUJERTk2MkQyOTFERjA0RTAKKzoxMDEyNDAwMDVEMTYyOTFDN0Q0RkFDMUE0NzFBQTlGNTY3NjY1MzI4MEQKKzoxMDEyNTAwMEI3QkQyQzVBNTIzQkUzREQ1OUE5MjVEMUE4QUMwODZCODgKKzoxMDEyNjAwMEVFMDhBQkM1MjAyRjg1NEY1NjY2NzU0OTVDMUMxODFEQ0UKKzoxMDEyNzAwMDgxQzI2NDA1RjA4MEJFMzU1Q0QwMTdDMjU1RjA5NTdDMDQKKzoxMDEyODAwMDI1NUYwODBCRTEwMTdDN0JBQjM1MjRCQTEwNTU5MzFBMUUKKzoxMDEyOTAwMEZCODIyQUYxNDhEN0MyQTdBQjMxQjJBNEFDNjM5RDRBMDYKKzoxMDEyQTAwMDhEN0M3QkFCMzUyNEJBMTA1NDMwOEQ3REMxMTU3OEFDNjQKKzoxMDEyQjAwMDZGNUE5NDYwMUFFMzc5RDRBQTRGODU0RjU2NjZENTQ5ODAKKzoxMDEyQzAwMDU4QzczQTk1NDlGMDQ1RDE2Mjk0ODZCQzFEMTNEMjkwMTcKKzoxMDEyRDAwMEZGQ0Y3QTgzRjI1MDMxREUwMDYwNjBBMTE3MzVBODVGM0UKKzoxMDEyRTAwMDlCMUIzNzA3NDQxQTMwMEIzODBEQkMxQ0UwRDA0N0NFOEYKKzoxMDEyRjAwMEEwQUE3QUExOTg2QTkyOTUzRDY4MzE4MDVCODBEQUE5QUMKKzoxMDEzMDAwMEVGNDE5NTI1MTZGN0E1OEI0QUM2NzlCMzMzNjAyRkFBMEUKKzoxMDEzMTAwMDlFQjE1MTgwNTk5RUNBQTdBQzBBMzAwQjY3QjJBREQ1QjkKKzoxMDEzMjAwMERBOTI1RDE3QTMwMEIzMkQ5NTZFMDhBOTU4QTExNzNBNUMKKzoxMDEzMzAwMDhCMDE3RDU0Rjc4RTk1MjUwODFDRTA1NjAyRkJDMUQxMjgKKzoxMDEzNDAwMDE1MTgwNTkyNkIzQzFEMTIyOEMwMkNBNTZDMTE3MDE3NDYKKzoxMDEzNTAwMEIyMzg0RDgwQkVFMDJGQjRFQzRBRURCMzlFMDJGQjgwNjQKKzoxMDEzNjAwMEJFRTAyRkIxMzk5MzNFNkRFNzEwNjA5RjMyQTlBMjZDQTkKKzoxMDEzNzAwMDA1RjQ0MEU2MEE5NTNENkEyMzAwQjM4MERBQTdENjJBMzEKKzoxMDEzODAwMDAzMEQ3MDE3RDIyRTc2Mjk0RkJDNTRBNjUxNkY3QTU4OTAKKzoxMDEzOTAwMEI0QUMwNUY0OEJBMkY0MEUzNTBENDkyRUI0Q0MxOEE1Q0YKKzoxMDEzQTAwMEM4Rjg0QTk3MjNFMTA1MkU0N0MyOEE1QzhGODU2OTcyODcKKzoxMDEzQjAwMDNFMUY0QUMzNTUxRjU2NDMzMjhDQTM1RTYwQTg0NUNFREMKKzoxMDEzQzAwMDBENjAyRkEzODQ5REQ4RjAxN0QyMkUwRTFCMjM4NEQ4MzYKKzoxMDEzRDAwMDBCRUI4OUYzODBCRUUwMkZCQjM5ODVERjIyMDNFNzAxRTkKKzoxMDEzRTAwMDdEQzA1RjcwMTdEMTE3MzgxNDVCRDZBMjc0MEQ0QjdBOEQKKzoxMDEzRjAwMEIzMzE5Njk0NkJDQzM1MjNENzQ5NDgxNTczMjkwRjVEQ0IKKzoxMDE0MDAwMDhBQzA1RjRENzk4NDM1ODBCRTg4MUNDMzUyOUY1OTY4NUQKKzoxMDE0MTAwMEMwMkNFMDM2QUE3QkNENEE5MkJFRjM4MTRBN0Q1QjU5NEYKKzoxMDE0MjAwMDk0Q0ExQzI0RUVDNzgwQkU4ODFDQzM1MjlGNTk2OEMwNTIKKzoxMDE0MzAwMDJDRTAzNkFBN0JDRDRBOTJCRUYzODE0Mzg0OUM3QjM4NTQKKzoxMDE0NDAwMDBCRUJBRjcwRDRFQTUzMDA5QjRGOUM1NDMwRjM4QTk0NUIKKzoxMDE0NTAwMEZBQjZCMzI5OTQyMkU2MUE4NUY5QjA1OTkzRjlEMkM0QTEKKzoxMDE0NjAwMDMyNjBCOTM2QjBCMzkwRDk3NzI2MUMyNzIyRTg5NkI0RkIKKzoxMDE0NzAwMDIzRUE5RUI1MTE4MDU5NjU4NjIwNzM5NjhENzlBRDU4MDMKKzoxMDE0ODAwMDBCRTkxNzQ0OEE0QTA3RDc3QTgyQTE5MEZBRUYwMTU0RjAKKzoxMDE0OTAwMEJBNTBENDU5MUUyQ0U5RjM4QTk5ODU2QjBCMjMxNTk3MDIKKzoxMDE0QTAwMDcyNjExNzMwRDQyQzczODc0OEFBMDI4MTI1REU5MTBEMTIKKzoxMDE0QjAwMDRBQzA1RjdFRDI4MEE1M0VCMkQwQzg2QjgwQkU4ODFDNzkKKzoxMDE0QzAwMEVBMDkxNzQ0MUEzNzFBOTE3NDU4QTM3MUFGMDc0NDU0QTQKKzoxMDE0RDAwMDZFMzVFMEU4QUE2NDBGOTBGQUQwNjMwMEIzODBEQTJDOEUKKzoxMDE0RTAwMDczODc0OEFBMDI4MTI1REU5MTBENEFDMDVGNDhCQTI3NUEKKzoxMDE0RjAwMEEzMDBCNzAxQjc0RjlDQjQ2QkNDMzUxNkY1NjY2MzJEQ0UKKzoxMDE1MDAwMDI5MUVCQTRBNDBBQjk5NDg3QUVDNTA4QjlDMDgyMkZDQzEKKzoxMDE1MTAwMEY5QjI1NTNENjJBOTIzNTEyMzlDMEEzQzczMEQ0NDVDRUEKKzoxMDE1MjAwMEUxNTA3MUNFQTExRkU3MTU2QjBCMjVFRDBCOTM2MDJGREEKKzoxMDE1MzAwMEFBOUVBQzM2NjU0OTVGN0EyMDUwMDg3RkVGMzkxNDQ5N0UKKzoxMDE1NDAwMDAxMTE4MTA0NjA0MENDNTlDMEFEMjNFQjQxQjA4MUYyNjAKKzoxMDE1NTAwMDNBNDFBQTUwNDNFNEQ0ODY1NEEwODdDMTUyQ0E5MzAxQTkKKzoxMDE1NjAwMDMyNTQ5RDI0MDIwMDAwNTJBRjE2NDZBNzkxNjcwOEI0N0EKKzoxMDE1NzAwMDA0NTFGMTY1MTlCNDZFMkRDMEFENDkwMDkyNTcxQjc0MkEKKzoxMDE1ODAwMDQ1NUYyMzUxQjc0NDBBMTAwNkEzNkU4QjZCMDgxRjE5RTEKKzoxMDE1OTAwMEQxRTY4MDgyODA1NDA0MkE0NTkxQTlFNDU5QzIyRDAxRTQKKzoxMDE1QTAwMDE0MDQ1MEQzRkM1NTg0NjFEOTgwNTEyRkUyMUY0NjVGNEIKKzoxMDE1QjAwMDQwRTAyMDE1NEFCQzU5MUE5RTQ1OUMyMkQwMTE0OENCQzgKKzoxMDE1QzAwMEU4MTQwODAxNTQxNUUyQzhENEYyMkNFMTE2ODA4QTQ2Q0EKKzoxMDE1RDAwMDVGNTI3Q0Q5QThGODg4RDA1QTNDRDI1QzVCODBEQUE3RUQKKzoxMDE1RTAwMEQ2NUEwODg2QTQ1RDE3QTBDMzUyMkU4OEE4MjIxRjUzN0UKKzoxMDE1RjAwMEVBREFDQ0E2NTBFMTI3NzYzQzA1RjU0RkFCNkIzMjk5ODEKKzoxMDE2MDAwMDQzODQ5QzdCMzgwQkU5MjdBQ0Q0OTJFMDBFREEzODRENEEKKzoxMDE2MTAwMDgwQkVFNjdENTBCQTUxQUU2NkVGQkNEQzdCODcxRTAyMTEKKzoxMDE2MjAwMEZBOTNFNkNENDdDNDQzQ0QwRjM0OURBMzAwQjA1NTAxRDYKKzoxMDE2MzAwMEFFMDM4NDA0Q0UwMUQwRTE3MDAyODAwRTg5RTkyMjFGM0UKKzoxMDE2NDAwMEUwRTg5NkIwMTFGNEMyQ0UwMzZBNDQyREMwNkQ0ODA1OUYKKzoxMDE2NTAwMEI4MERBMzAwQjc3NkQ1REVCMTUwREM3RDc3QkM1NEJBQTcKKzoxMDE2NjAwMDUyN0Y1ODE0MzQwRjlBRjM4MTU4MEJFQUVGNTgxNDYwRTQKKzoxMDE2NzAwMDE2QTU2QzJFRjc4MTRCQTU2RjdENURFRUI1MkU5NTgwN0UKKzoxMDE2ODAwMEJFRjA3M0JEMDQ3Q0VBRkVFQjRDREUyOTUzREQ2QTU0RTgKKzoxMDE2OTAwMDk0QTlFQTBBOEMwMkQ2NEMzQzA1RjQwMEVBQ0Q1NkFGNzgKKzoxMDE2QTAwMEMwNDdEMjlDOEQyOUNBRTAyRkFFQkQ3NTk5OUQ0QUY5REQKKzoxMDE2QjAwMEVGNTE3Qzk0MEM3NzgwMTgxODI5MkFGOEUwRThBQTMwQkEKKzoxMDE2QzAwMDBCMkE5ODdDMUQxMTUxODA1OTU0QzM1MUY1MUIzMzI0QUEKKzoxMDE2RDAwMEJCODJBNTE5NUMxRDEwMjhDMDJDOUFDN0MxRDEyMjhDRDEKKzoxMDE2RTAwMDAyQzk5NDY0NUMwQ0Q2OEUxMzYwMkZCODBCRUEzMEUzMDkKKzoxMDE2RjAwMEMwNUY0OERDNzgwQkU4MDBFM0MwNUY2QzM4RDUyRTM1NUUKKzoxMDE3MDAwMDRGNUE4QTYxQUE5RjU2MUIzMjk5NDY0MkM4MDEwQzQ1MUUKKzoxMDE3MTAwMENFQTUxN0U2QzZDRUE5RUIxNTE2NDZBMjQ3MzgxNDQzNDgKKzoxMDE3MjAwMDI2MjJFNzNENjAyRkFBOUVCNTEyRTA3RjAxN0RFM0U3MDgKKzoxMDE3MzAwMDAyOTNGOTk1NDQ1Q0U1QTBFMzlENEE3RjlDNTRBOUVCOTQKKzoxMDE3NDAwMDUxMDU0NkI5RkNDMDFCMjIyRTY0NTQyRkNENDZDQ0E3QjAKKzoxMDE3NTAwMEQ1ODZDQ0E2NTA1NUM2NDVDRTVBMEUzOUQ0QTdGOUM1NjQKKzoxMDE3NjAwMDRBOUVCNTExODA1OUMwNkRDRkU2MDBEOTExNzMyMkExRjAKKzoxMDE3NzAwMDdFNkEzNjY1M0VBQzM2NjUzMkIwMTdERDNFNzJEMjc5OTAKKzoxMDE3ODAwMDMxMEM5ODJFNEMyMDczMkE4RkYzOEFBREU3NDE4MjdDNkUKKzoxMDE3OTAwMENBQTY4OUI1ODU5RkIwRjAxN0Q1MUY1NDU0MjUxQUE4M0QKKzoxMDE3QTAwMEZGMkE5NDY1MTFENzQ5NDRENUNDQTA1NUQ4QUUwRTg4RjAKKzoxMDE3QjAwMDE0NjAxNjRENjMyMkUwNzI4NjM4NEQ4MEJFRTAyRkI4NkIKKzoxMDE3QzAwMDBCRUUwMkZCODEzOEYwMTdEN0Q3MUUwMkZBRkFFM0MwRkUKKzoxMDE3RDAwMDVGNEM4NTkwMDIxOEM4NUI4MERBMzAwQjcwMUI0QzIyN0UKKzoxMDE3RTAwMEQzNEMzMzAzOEMyRTRDNDMyNkQwRjU2MzY2RDA5NUE3OUIKKzoxMDE3RjAwMENFNDUzMzBBRDYxNjQyMzg2RUU0Q0VCRDU5MkNEMkFCNTQKKzoxMDE4MDAwMEJBOTQ5REU2MUFCMDE3RDU0RjVBOEIwOTFBODhCOUM1RjQKKzoxMDE4MTAwMDQyNDczMEQ0MzIxNjcyODg2NUJENTk5OTI1QTU2MDJGOEMKKzoxMDE4MjAwMEI4NjBGMzA4Qjc0QTFBOEZBQjBEOTk0NjUxQUYzOEE4ODQKKzoxMDE4MzAwMDhFOTA2NTEzNTIxOEEwNTRCMTQyMkU2MUE4NDhFNzJEMkUKKzoxMDE4NDAwMDE2RjdBODA1QTU2MDJGQTQ3NUQyNTEzNTczMjgxNTc2MTMKKzoxMDE4NTAwMDJCODNBMjA1MTgwNTkzNThDOEI4MDYyODYzODREODBCQjMKKzoxMDE4NjAwMEVFMDJGQjgwQkVFMDJGQTA0M0E3MDE3RDRDRTNDMDVGRUEKKzoxMDE4NzAwMDcwMTdEQzA1RjQ2NDJEQzA2RDE4MDVCODBEQTVCRDZBQTAKKzoxMDE4ODAwMDIzODZBQTlFQjUxMUE0NkFBM0VBOEE4RDIzRTExNzM4OUMKKzoxMDE4OTAwMDM0Njk3MTk4NDVBNjk4NkEzRUFDMzY2NTE5NDZCQ0UyMzMKKzoxMDE4QTAwMEEyM0E0MTk0NEQ0ODYyODE1MkM1MTZGN0E4OEI0QTU0MUEKKzoxMDE4QjAwMEY1QTg4QzAyREMwNkQxMDM5Q0I0QTlFRTBBOTUyNTJBNzIKKzoxMDE4QzAwMDdBQUQ0NjAxNjcwMUI1RDdBQzBBMzAwQjZDNDkzNUU2RjUKKzoxMDE4RDAwMEI1NjdGMzAwNkM4OEI5OTE1MEJGMzExQjMyQTdCODY4NjcKKzoxMDE4RTAwMDk1MjU3QkFEMzM3OEE3Q0QzRUQzOEU5RDM0RTc0RUQ0N0UKKzoxMDE4RjAwMDIyRTcwNjg0OEU2MEE4RkYzOEFCODM5QzJBMDhGOUQ0QkYKKzoxMDE5MDAwMDIwNjNCQzFBMDYwQUMwNUY0NjQyREMwNkQxODA1QjgwQjkKKzoxMDE5MTAwMERBMjJFNjFBODQ4RTcyRDE2RjVBODA4NzFBQUE3QUQ0OTQKKzoxMDE5MjAwMDQ4QzhENTQ3RDUxNTIzMjNFMTE3MzgzNDhDQkE0QjdCRUIKKzoxMDE5MzAwMEQ0MDJEMjhDMjJEQzA2RDUxRjU2MUIzMjhDQTM1RTcxREEKKzoxMDE5NDAwMDUxMUQyMENBMjZBNDMxNDBBOTYyQjAxN0RGOUVGNEI3MEEKKzoxMDE5NTAwMEM5NDBDNzc4MDE4MTgyQjgzODM5NDkxQzI2QzA1RjcwRjgKKzoxMDE5NjAwMDE3RDRBQkUxMkFGODRBQkUxMkFGOEY5NzRGQ0JBNzAxMkQKKzoxMDE5NzAwMDdEREE4MEFBOTE2NDdGNEE4MUQ1MjJDOEZFODI4MDI1QzMKKzoxMDE5ODAwMDQ4QjIzRUJCREMzNTJFOTQwN0U4OEE5QzAzRTI0QkE1QTcKKzoxMDE5OTAwMDc3QUJCMzMyRTk0QkJENTk4Njg0OTc3QTA0QkE1M0UxRTkKKzoxMDE5QTAwMDMyRUY1MEQ0RTYzNTUzRUIwMjlDQzdENzdBQjMzMEQyMkUKKzoxMDE5QjAwMDVERUEwMkU5NDQ1RDE2MjhDMDJDRTAzNjkxNzQ0NTU5NzEKKzoxMDE5QzAwMDE4RDU0RkFDMEFDNDM1MzA4QjM4NjkyQkJENTk5ODY5OEUKKzoxMDE5RDAwMDJFRjUxMkU5NTg2NzRBRUY1MEQ1OEUzRTFDQTRCMENFQzIKKzoxMDE5RTAwMDkzMjE2RTFBNDgxRkEyMkFDMzBENTc3QUIzMEQwOTJFRjAKKzoxMDE5RjAwMEY0NDM1RDI4OEI4MzIwOTIzODREODBCRUUwMkZBQzE3RDYKKzoxMDFBMDAwMDQ5QjNBNTgyRTkzRUU5MzY3NEUwMkZBNkNFOUMwNUY0RTEKKzoxMDFBMTAwMEMyMkM4QzUyNTc3QUQ0OEQ0OEZBRUY1MEQ1QUUzNTUzM0MKKzoxMDFBMjAwMEVCMDI4NjIxQUFFRjU2NjYxQTRCQkQ0NEJBNTBDNEU5QjAKKzoxMDFBMzAwMDUzRUIwMjg2ODFGNURFQTFBODYyMUY1REZFQTI1RDI5M0YKKzoxMDFBNDAwMDc3QTg2QTYxOEQ0MEZEMTE1MzBDNkFBN0Q2MDUzMEM3OEYKKzoxMDFBNTAwMEQ3N0ZBOTU3NEE1REVCNDgxQjBDN0M4QjlEOEE1M0VGQkYKKzoxMDFBNjAwMDY2OTRDQTU0RjVBMEM2MDE2RTAzNkE5RjU2NzY2NTMyMjUKKzoxMDFBNzAwMDhCN0JEMkM1QTU2MDJGQUE3RDY1QTMwMEI3MDFCNEM4MzIKKzoxMDFBODAwMDVBMDc4RkVEMDFENTI3OTE2NzAxQjQ4QjlDNTQxQzczQzUKKzoxMDFBOTAwMEE4ODQ1Q0MxNTBCRjM2NTY2MEFCOEM4QjlDNTQxQzczQzEKKzoxMDFBQTAwMEE4ODQ1Q0MxNTBCRjM2NTY2QzA1RjU1M0Q2QTIzMDBCRTYKKzoxMDFBQjAwMDI5NUIxOUZDRjY5NDQ1Q0YxNTBCRjMzQ0IzMkE3QUM1ODQKKzoxMDFBQzAwMDQ2MDE2NDhBMzEyMzlDMEE1REVBMzQzMzJFOTVDN0NFRTEKKzoxMDFBRDAwMDJBNEZFNjUwMjBCOTMxMEM5QkVGMzkxNDQ1Q0U0NTA3MEIKKzoxMDFBRTAwMDFDRUE0Njg3QUIxQjM2ODRBNzVFQUM5NjY3NTJCMDE3REMKKzoxMDFBRjAwMERDRkU3QjRBMjJFNzhBODVGOTlFNTk5NzdBOEQwQ0NCQ0EKKzoxMDFCMDAwMEE1MjdGM0EwNDQzMjYwQjkzN0RFNzIyODhCOUM4QTBFNzkKKzoxMDFCMTAwMDM5RDQ4QzA1RjdFN0I4MkFGOTI4MThFRjAwMzAzMDU3ODgKKzoxMDFCMjAwMDA3NDQwQTUwOEZGMDczOTE0MTFGM0E5MDQ1QzBCQjE4OEIKKzoxMDFCMzAwMEUxMzYwMkZCRkI5RTAyRkFFRUU3RjVDRjAxN0QxMDVDNzkKKzoxMDFCNDAwMEYwMTdEMTA1Q0YwMTdENTNFQjJEMTgwNUI4MERBNjQyMzYKKzoxMDFCNTAwMERDMDZEMzE3MzVBODhCOUMwQTBFMzlENDBDRkU3QjRBQzEKKzoxMDFCNjAwMDIyRTY1NTBCRjMzMUIzNjAyRkJDN0NFMkE0RkU2NTUxMzUKKzoxMDFCNzAwMDE3MzgxNDFDNzNBODE5RkNGNjk0NDVDQ0FBMTdFNjYzMTEKKzoxMDFCODAwMDY2MEFCOENDODVBMTU4RjZBMjM1NDg0ODdGNEE4OTk1OUYKKzoxMDFCOTAwMDIxMjFGRDA1MDI1NDlFNDU5MTBFM0MwNUY1MDc0MDU1NTcKKzoxMDFCQTAwMDQ4NTIzRTg2QTA3NTQ4NTIzRUI1MDA0QTlDMDA2QkM3MUQKKzoxMDFCQjAwMENFNDUyN0YzMkE4NDM3MzVERUEwQUIyMzFBQUVGNTgzNTIKKzoxMDFCQzAwMDU5MThENzQzREUyQUQwOTRFQkRFMDUzQTk1OUZDQ0MzNTMKKzoxMDFCRDAwMDIwNDVDQ0FBMTdFNjY2Q0M0MzI2NEZFNzQxMjIyRTcwNUIKKzoxMDFCRTAwMDY4MzhFNzUzRTAyRkFCQkMxMkQyRTk1ODBCRUFBN0FEMzcKKzoxMDFCRjAwMDQ1QTExRkMwNUY3ODM5QzhBMDhGOUQ0ODFDMjRFRUM3M0YKKzoxMDFDMDAwMDgwQkVCQUY1NkQ2NjQ5NzcwRDRFQTUzMDA5QjRGOUM1QTkKKzoxMDFDMTAwMDQzMEYzOEE5M0Y5RDAyRkJDRTQ1MTE3MzkxNDFDNzNBNEUKKzoxMDFDMjAwMDkxOUZDRjY5NDQ1Q0YxNTBCRjMzQ0IzMkE3QUM1NDkwNDUKKzoxMDFDMzAwMDhENDQ4RTcwMjk3N0E4RDBDQ0JBNTZCMEIyOUQ4Qzg2RDAKKzoxMDFDNDAwMDRDMTcyNjc3MjYxQzI3MUMyNDlFMjM2MUJFOEUxMjRGMUMKKzoxMDFDNTAwMDExODcxQ0VBNUMwNUY1RDdCODZBNzUyOTc3QUIwRDk5MzEKKzoxMDFDNjAwMDc0QTU0RjcyQTBBQTRBQzZGMzY2NjZDNjM5ODJBRjc1REMKKzoxMDFDNzAwMEE2NkYxNDZCQ0UwNTcwNzM5NjgyM0U3NTI4RTEzQUE3NjUKKzoxMDFDODAwMEFENDQ2MDE2NTJCNjFEN0FCNkIzMjRCQjg2QTc1Mjk4RUYKKzoxMDFDOTAwMDA0REE3Q0UyQTE4NzlDNTVGNzlDQjVBQzJDOTUzM0I5NEUKKzoxMDFDQTAwMDMxMDVEOTUzRDZBMjMwMEIyOTVCMDIyRTYxNUExN0U2QjMKKzoxMDFDQjAwMDlDQjMyQTdBQzU0MDIxQTg5MUNFMDUyN0YzQTU4ODY0NTQKKzoxMDFDQzAwMEMxNzI2NTRGNTgxNDBDOEQ3RUYzODE0NDVDRUY0MUM3OUYKKzoxMDFDRDAwMDNBQkUwMkZBQTlFQUNFQ0NBOTI5NTNENkEyNDY0N0REREMKKzoxMDFDRTAwMDdBQzBBMzAwODZFMjlCMjk3ODhCODEwOTk4NzA5QjI5OTIKKzoxMDFDRjAwMDc5NUREOTcyRUQ5NEJDQjk3NjEzM0IyQTVEQjI5Nzk1QTQKKzoxMDFEMDAwMDJFRDk0QkNBN0Q1QjU5OTRDQTFDMjRFRUM3OTRCQ0MwMjMKKzoxMDFEMTAwMDI2RDNFNzE1MEMzQ0UyQUNGRTdCNEEyMkU3OEE4NUY5MjQKKzoxMDFEMjAwMDlFNTk5NzdBOEQwQ0NCQTUyN0YzQTA0MTcyNjIxOTM3ODMKKzoxMDFEMzAwMERFNzAyODhCOUM4QTBFMzlENDhEMEY1NjM2NkQwOTRFNzUKKzoxMDFENDAwMEJENTkyQ0NFQTU2QjBCMjJEOTlEQzlCMjk3QkVGMzgxOEMKKzoxMDFENTAwMDRBN0Q2NUEzMDA5MzhGNjcyOTc4QzI0REMxRDEwNjgyNjEKKzoxMDFENjAwMDMxQUYwNzM4MzQxMUYzQTgyQTlFQTg2NjFBQTRBNTRGRUMKKzoxMDFENzAwMDVBMEMxMThGQUE3QkQwNjU0OTQ1QkRFOTYyRDJCMTlFNEMKKzoxMDFEODAwMDZDQ0NDNjE5ODcwOUMzOEU3NTQxMUYzQUE1MTNENTU1NkEKKzoxMDFEOTAwMDU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1RjMKKzoxMDFEQTAwMDU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1RTMKKzowRTFEQjAwMDU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1QUNDOTBDOAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3R0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4uaWhleCBiL2Zpcm13YXJlL3R0dXNiLWJ1ZGdldC9kc3Bib290Y29kZS5iaW4uaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGIyMjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUvdHR1c2ItYnVkZ2V0L2RzcGJvb3Rjb2RlLmJpbi5paGV4CkBAIC0wLDAgKzEsODIwIEBACis6MTAwMDAwMDAwOEFBMDAxODAwMDMwODAwMDAxMDAwMDAwMTgwMTg1RjEzCis6MTAwMDEwMDAwMDAwMDE4MDc3MTgyQUVCNkJGODAwMTgwM0ZGNjhGOERFCis6MTAwMDIwMDAwMDE4RkZGRUY3QjhGN0JFRjZCOUY0QTBGNkI3RjZCNUJDCis6MTAwMDMwMDBGNkI2RjAyMDE5REZGMTAwMDAwMUY4NEQwMUFCRjZCODdCCis6MTAwMDQwMDBGMDIwMTlERkYwNzMwMUE1N0VGODAwMTJGMDAwMDAwMTI2Cis6MTAwMDUwMDA0N0Y4MDAxMTdFOTIwMEY4MDAxMUYwMDAwMDAxN0VGOEQwCis6MTAwMDYwMDAwMDExRjAwMDAwMDE2Qzg5MDE5QUY3QjhFRUZDRjAyMDU1Cis6MTAwMDcwMDBGRkZGRjEwMDAwMDFGODREMDFCRkYyNzMwMUI5NEUwMjFDCis6MTAwMDgwMDBGNDk1RjVFMzU2MDI3RTAwMTEwMEZBNEMwMUI3NkIwM0JDCis6MTAwMDkwMDAwMDAxRjZCOEVFMDRGMDc0MERBN0YwNzQwMUM1NEExMTIyCis6MTAwMEEwMDA0QTE2NzIxMTJBRTYxMEY4MDAxMUZBNDUwMURCRjQ5NUEwCis6MTAwMEIwMDBFRUZGNDgxMUYwMDAyQUM2ODgxNkY0OTVGNDk1MTBFRTZDCis6MTAwMEMwMDBGRkZGRjRFMzZDRTlGRkZGMDFENTEwRjgyQUU3Rjg0NURDCis6MTAwMEQwMDAwMUUyMTBGODJBRTdGNEUzRjA3NDAxRkZFRTAxOEExNjVBCis6MTAwMEUwMDA4QTExRkMwMEY3QjhFOTIwNEExMTA5RjgyQUU2Rjg0RTBGCis6MTAwMEYwMDAwMUYzRjI3MzAxRkRGNDk1RTgwMTcyMTEyQUU2NDkxMTRBCis6MTAwMTAwMDA4MEUxMkFDNkYzMDAwMDAxRTgwMDgxRjgyQUU2OEExMTlFCis6MTAwMTEwMDBGQzAwRjQ5NUYwNzMwMjAwMTBGODJBMEZGQzAwNEExMTVECis6MTAwMTIwMDBGMDc0MDIwMjgwRjgyQTEwNzMwODAwMDk0MEY4MkExNUJBCis6MTAwMTMwMDA4MkY4MDAxMUY0OTU3NzEwMDNFOEY1QTlGODMwMDIyMTUwCis6MTAwMTQwMDA3MUY4MkExMDJBMTU1NkY4MkEwQ0YwRTM0RUY4MkExNkYwCis6MTAwMTUwMDBFODAwNEVGODJBMEM4QTExRkMwMDRBMDY0QTA3NEExRDlDCis6MTAwMTYwMDA2OEY4MDAwNzdEM0Y2OUY4MDAwNzQwMDA2OEY4MDAxRDQ3Cis6MTAwMTcwMDBGRkZDNkJGODJBMEYwMDAxOEExRDhBMDc4QTA2RjRFQjQwCis6MTAwMTgwMDBFRUZENzZGODJBMEYwMDAwNzYwMDAwMDBGQjgwMTk0Qzg3Cis6MTAwMTkwMDBGNDk1RTgwMDgwRjgyQTExRjk4MDE5MDc4MEY4MkEwRUYyCis6MTAwMUEwMDBGOTgwMTY2Njc2MDAyQTEyMTBGODJBMTFGOTgwMThFM0YxCis6MTAwMUIwMDAxMEY4MkEwRUY5ODAxNjY2MTBGODJBMEVGOTgwMTY4N0I0Cis6MTAwMUMwMDBFRTAzRkMwMDRBMTFGNkI4RjQ5NUYwMjA4MDAwMTFGODE3Cis6MTAwMUQwMDAyQTVBRjg0RDAyOTMxMUY4MkE5RkY4NEMwMjdDNzcxMkE0Cis6MTAwMUUwMDAyQTM5NDkxMjAxRjgyQTlGODkxMUY0OTVGNDk1NzE4MUYxCis6MTAwMUYwMDAwMDExNkNFMUZGQUIwMjkzNkJGODJBOUYwMDAxRTkwNTQ3Cis6MTAwMjAwMDAwMUUyMDAwMzgxRjgyQUEwRjA3MzAyOTU3MjExMkE5RjdGCis6MTAwMjEwMDBGNDk1MTBFMTJBMzk2QkY4MkE5RjAwMDExMUY4MkE5RjAyCis6MTAwMjIwMDAwOUY4MkFBMEY4NEMwMjkzNzZGODJBNUEwMDAwNzZGOENBCis6MTAwMjMwMDAyQTlGMDAwMDc2RjgyQUEwMDAwMDg4MTFGNDk1NDgxMTQyCis6MTAwMjQwMDA4QTExRkMwMDRBMTFFRUZFMTBGODJBNUFGODQ0MDJCMjU0Cis6MTAwMjUwMDA3NkY4MkE1QTAwMDFGMDc0MDI1ODg4MTFGNDk1NzcxMDQ0Cis6MTAwMjYwMDA4MDAwRjRBOUY4MzAwMkIyNDgxMUYwMzAwMEZGODAwMDlECis6MTAwMjcwMDAxMEY4MkE1QkY5ODAxOEQ2RUUwMjhBMTFGQzAwRjQ5NTdBCis6MTAwMjgwMDA0QTA4NEEwOTRBMEE0QTBCNEEwQzRBMEQ0QTEwNEExMUJFCis6MTAwMjkwMDA0QTEyNEExMzRBMTQ0QTE1NEExNjRBMTc0QTE3NEExOTYzCis6MTAwMkEwMDA0QTBFNEEwNjRBMDc0QTFBNEExRDRBMUI0QTFDNjhGODVGCis6MTAwMkIwMDAwMDA3N0QzRjY5RjgwMDA3NDAwMDY4RjgwMDFERkZGQzVCCis6MTAwMkMwMDA0ODE4NjhGODAwMThGRkZFRjQ5NUY0OTU0QTA4RUVGRDBBCis6MTAwMkQwMDBGMDc0MDI1ODg4MTFGNDk1NzcxMDgwMDBGNEE5RjgzMDcyCis6MTAwMkUwMDAwMkVGNDgxMUYwMzAwMEZGODAwMDEwRjgyQTVCRjk4MDFGCis6MTAwMkYwMDAxOEQ2RUUwMzhBMThGNDk1OEExQzhBMUI4QTFEOEExQTVFCis6MTAwMzAwMDA4QTA3OEEwNjhBMEU4QTE5OEExNzhBMTc4QTE2OEExNTEwCis6MTAwMzEwMDA4QTE0OEExMzhBMTI4QTExOEExMDhBMEQ4QTBDOEEwQjBGCis6MTAwMzIwMDA4QTBBOEEwOThBMDhGNEVCNEExMTc3MTEyQTM5NzY4MUY4Cis6MTAwMzMwMDAwMDU1NzcxMjJBMTgxMEUyMDAwMTgwRTEwMDAxMTBFMjU2Cis6MTAwMzQwMDAwMDAyODBFMTAwMDI3NkUxMDAwMzAwMDA3NkUxMDAwNDkzCis6MTAwMzUwMDAwMEFBRjA3NDAyOTg4QTExRkMwMDRBMTE4ODExRjQ5NUUxCis6MTAwMzYwMDBGNDk1MTA4MTZGRjgyQTlFMEM4OEU4RkYxOEUxMDAwMUNGCis6MTAwMzcwMDAxQUY4MkE5RUYwMzAxRkZGODBGODJBOUU4QTExRkMwMDhFCis6MTAwMzgwMDA0QTExNzcxMTJBMzk3NjgxMDA1NTc3MTIyQTE4MTFFMjFECis6MTAwMzkwMDAwMDAxODFFMTAwMDExMUUyMDAwMjgxRTEwMDAyNzZFMTQ5Cis6MTAwM0EwMDAwMDAzMDAwMjQ4MDg2RkUxMDAwNDBDOThGMDMwMDBGRkUxCis6MTAwM0IwMDA4MEUxMDAwNTc2RTEwMDA2MDBBQUYwNzQwMjk4OEExMTM3Cis6MTAwM0MwMDBGQzAwNEExMTc3MTEyQTM5NzY4MTAwNTU3NzEyMkExOEQ0Cis6MTAwM0QwMDAxMEUyMDAwMTgwRTEwMDAxMTBFMjAwMDI4MEUxMDAwMjcxCis6MTAwM0UwMDA3NkUxMDAwMzAwMDQ0ODExRjAwMDAwMDQ4ODEyRjQ5NTNGCis6MTAwM0YwMDA3NzEzMkE3NkU5MDBFNTk4RjMwMDAwMDFGNkI4NDgwQjc4Cis6MTAwNDAwMDAwOEY4MkEzQ0Y4NDMwMzcxNzY4MjAwQUFGMDc0MDI5ODM3Cis6MTAwNDEwMDA4QTExRkMwMDRBMTFFRUYwODgxMUY0OTVGNDk1NzE4MTZGCis6MTAwNDIwMDAwMDE0NzFFMTAwMDEwMDE1NDkxMUYzMDAwMDAyODkxMTY3Cis6MTAwNDMwMDBFNzgyNkRFQTAwMDRFNzgzNkRFQjAwMEE3NzFBMDAwNTk2Cis6MTAwNDQwMDBGMDcyMDNBQTExODFGMkU4ODA4MkU5RkYxOUUxMDAwMTRDCis6MTAwNDUwMDBGMUEwODE5MjExRTEwMDBDRjJFODgwODNFOUZGMTlFMTNCCis6MTAwNDYwMDAwMDBERjFBMDgxOTM2REU5MDAwMjQ4MTg0OTE4NzAwMDUxCis6MTAwNDcwMDAwMDE1RjAwMDAwMDRGMzAwMDAwQTgwMDE4MTAyRjI3NDBDCis6MTAwNDgwMDAwRTU0RjQ5NTQ4MTRFRTEwOEExMUZDMDA0QTExRjA3NEQxCis6MTAwNDkwMDAwQzVFODBGODJBNUM3NzEyMkEzOTc2ODIwMDU1NzcxMTMzCis6MTAwNEEwMDAyQTE4MTBFMTAwMDE4MEUyMDAwMTEwRTEwMDAyODBFMjYwCis6MTAwNEIwMDAwMDAyNzZFMjAwMDMwMDFDRjZCODU2RjgyQTE2RjBGMEE3Cis6MTAwNEMwMDBGMEY4ODBFMjAwMDc1NkY4MkExNkYxRjBFOEZGRjI4MDEzCis6MTAwNEQwMDA4MEUyMDAwNjU2RjgyQTE2RjFGOEU4RkZGMjgwODBFMjgyCis6MTAwNEUwMDAwMDA1NTdGODJBMTZFOEZGRjI4MDgwRTIwMDA0NTZGODZCCis6MTAwNEYwMDAyNzZDRjBGMEYwRjg4MEUyMDAwQjU2RjgyNzZDRjFGMDcyCis6MTAwNTAwMDBFOEZGRjI4MDgwRTIwMDBBNTZGODI3NkNGMUY4RThGRjc1Cis6MTAwNTEwMDBGMjgwODBFMjAwMDlFOEZGNTdGODI3NkNGMjgwODBFMjYxCis6MTAwNTIwMDAwMDA4NTZGODI3NkFGMEYwRjBGODgwRTIwMDBGNTZGODVECis6MTAwNTMwMDAyNzZBRjFGMEU4RkZGMjgwODBFMjAwMEU1NkY4Mjc2QUExCis6MTAwNTQwMDBGMUY4RThGRkYyODA4MEUyMDAwRDU3RjgyNzZBRThGRjMzCis6MTAwNTUwMDBGMjgwODBFMjAwMEM3NkUyMDAxMzAwMDA3NkUyMDAxMkU2Cis6MTAwNTYwMDAwMDAwNkZGODJBNUMwQzU4ODBFMjAwMTFFOEZGMThGOEQwCis6MTAwNTcwMDAyQTVDODBFMjAwMTA3NkUyMDAxNzAwMDA3NkUyMDAxNkE2Cis6MTAwNTgwMDAwMDAwNkZGODJBOUUwQzU4ODBFMjAwMTVFOEZGMThGODZBCis6MTAwNTkwMDAyQTlFODBFMjAwMTQ3NkUyMDAxQjAwMDA3NkUyMDAxQTM4Cis6MTAwNUEwMDAwMDAwNzZFMjAwMTkwMDAwNzBFMjAwMTgyNzZFNzZFMjgzCis6MTAwNUIwMDAwMDFGMDAwMDc2RTIwMDFFMDAwMDc2RTIwMDFEMDAwMDMxCis6MTAwNUMwMDA3NkUyMDAxQzAwMDA3NkUyMDAyMDAwQUFGMDc0MDI5ODk3Cis6MTAwNUQwMDA4QTExRkMwMDRBMTFFRUZFMTBGODJBMzhGODQ1MDRFREE1Cis6MTAwNUUwMDA3NzEyMkExODEwRTIwMDAyODgxMUY0OTU3NzEwMDAwODlCCis6MTAwNUYwMDA2REU5RkZERkY2QTlGODIwMDQ3NUYwNzMwNDdERjAxMEIzCis6MTAwNjAwMDAwMDIxRjAwMDFBODM0ODA4N0VGODAwMDhGNEUyRjA3NDM0Cis6MTAwNjEwMDAwMzBBRjA3MzA0RUE0ODEyRjI3NDAzMjNGMDAwMDAwNEEyCis6MTAwNjIwMDBGMjc0MDMzNkY0OTVFODAwRjA3MzA0RUE3NzExMkExODlGCis6MTAwNjMwMDBFOEZGNkZFMTAwMDQwRDQ4MThFMTAwMDVGMjc0MDk2OTU0Cis6MTAwNjQwMDBGNDk1RjJBMEYwNzQwMzM2RjA3MzA0RUE3NzExMkExOEQ3Cis6MTAwNjUwMDBFOEZGNkZFMTAwMDQwRDQ4MThFMTAwMDVGMjc0MDk0MTVDCis6MTAwNjYwMDBGNDk1RjJBMEYwNzQwMzM2RjA3MzA0RUFGMDc0MDM1N0MzCis6MTAwNjcwMDBGMDczMDRFQTEwRjgyQTFDRjA3NDEyQTRGMjc0MDMzNjIyCis6MTAwNjgwMDBGNDk1RTgwMEYwNzMwNEVBNDgxMkYyNzQwMzgwRjAwMDc1Cis6MTAwNjkwMDAwMDA0RjI3NDAzMzZGNDk1RTgwMEYwNzMwNEVBMTBGOEVECis6MTAwNkEwMDAyQTFDRjA3NDEyQzVGMjc0MDMzNkY0OTVFODAwRjA3MzU2Cis6MTAwNkIwMDAwNEVBNzcxMTJBMThFOEZGNkZFMTAwMDYwRDQ4MThFMUY3Cis6MTAwNkMwMDAwMDA3NzFFMTAwMDUwMDEyRjJBMDcwMDAwMDEyODAwMTI1Cis6MTAwNkQwMDAxMEUxMDAwNEYwNzQwRTdBRjI3NDAzMzZGNDk1RTgwMDI5Cis6MTAwNkUwMDBGMDczMDRFQUYwNzQwM0JDNzZGODJBMzgwMDAwRUUwMkQ2Cis6MTAwNkYwMDA4QTExRkMwMDRBMTE3NzExMkEzOTc2ODEwMDU1NzcxMjQ4Cis6MTAwNzAwMDAyQTE4MTBFMjAwMDE4MEUxMDAwMTEwRTIwMDAyODBFMUZECis6MTAwNzEwMDAwMDAyNzZFMTAwMDMwMDA5NDgxMUYwMDAwMDA0ODgxMjhECis6MTAwNzIwMDBGNDk1NzcxMzJBODZFOTAwRTU5OEYzMDAwMDAxRjZCOEZFCis6MTAwNzMwMDA0ODBCMDhGODJBM0NGODQzMDUwQTc2ODIwMEFBRjA3NEIwCis6MTAwNzQwMDAwMjk4OEExMUZDMDA0QTExNzcxMTJBMzk3NjgxMDA1NUU2Cis6MTAwNzUwMDA3NzEzMkExODEwRTMwMDAxODBFMTAwMDExMEUzMDAwMjgyCis6MTAwNzYwMDA4MEUxMDAwMjEzRTMwMDAzODFFMTAwMDM0ODExNzcxMUU3Cis6MTAwNzcwMDAwMDAwRjg0RDA1NDRGMDAwMDAwNDg4MTI0ODEzRjAwMDEyCis6MTAwNzgwMDAwMDA0ODgxM0Y0OTVGNDk1RTU5ODZEOTFGNkI4NDgxMTM2Cis6MTAwNzkwMDAwOEY4MkEzQ0Y4NDMwNTNBRjAyMDJBMzk0OTExRjUwMEI3Cis6MTAwN0EwMDA4OTExRjQ5NUY0OTU3NkUxMDAwNDAwQUFGMDc0MDI5ODlBCis6MTAwN0IwMDA4QTExRkMwMDRBMTE3NzExMkEzOTc2ODEwMDU1NzcxMjg3Cis6MTAwN0MwMDAyQTE4MTBFMjAwMDE4MEUxMDAwMTEwRTIwMDAyODBFMTNECis6MTAwN0QwMDAwMDAyNzZFMTAwMDMwMDBDNDgxMUYwMDAwMDA0ODgxMkNBCis6MTAwN0UwMDBGNDk1NzcxMzJBN0FFOTAwRTU5OEYzMDAwMDAxRjZCODRBCis6MTAwN0YwMDA0ODBCMDhGODJBM0NGODQzMDU2QTc2ODIwMEFBRjA3NDkwCis6MTAwODAwMDAwMjk4OEExMUZDMDA0QTExNzcxMTJBMzk3NjgxMDA1NTI1Cis6MTAwODEwMDA3NzEyMkExODEwRTIwMDAxODBFMTAwMDExMEUyMDAwMkM0Cis6MTAwODIwMDA4MEUxMDAwMjc2RTEwMDAzMDAxOTQ4MTFGMDAwMDAwNEE1Cis6MTAwODMwMDA4ODEyRjQ5NTc3MTMyQTVERTkwMEU1OThGMzAwMDAwMTJBCis6MTAwODQwMDBGNkI4NDgwQjA4RjgyQTNDRjg0MzA1OTM3NjgyMDBBQUNDCis6MTAwODUwMDBGMDc0MDI5ODhBMTFGQzAwNEExMTg4MTExMEY4MkEzOEE1Cis6MTAwODYwMDBGODQ0MDVFMzEwRjgyQUExRjg0NDA1QkE2Q0UxRkY1NkY0Cis6MTAwODcwMDAwNUUzNzIxMjJBQTFGNDk1NzBFMjJBMTgwMDExNkJGOEIwCis6MTAwODgwMDAyQUExMDAwMUYwNzMwNUUzNzIxMjJBQTFGNDk1NzBFMjI3Cis6MTAwODkwMDAyQTE4MDAxMTEwRjgyQUExRjAwMDAwMDE4ODEyRjQ5NTFFCis6MTAwOEEwMDBGNDk1NkVFMkZGRkMwNUQxNzMxMjJBQTE0ODExRjAwMDA1Cis6MTAwOEIwMDAwMDA1ODBGODJBQTIxMEY4MkFBMTA4RjgyQUEyRjg0NDE0Cis6MTAwOEMwMDAwNUUzNkNFMUZGQUIwNURENzZGODJBMzgwMDAxNzZGODI4Cis6MTAwOEQwMDAyQUExMDAwMDc2RjgyQUEyMDAwMDhBMTFGQzAwRjQ5NUYzCis6MTAwOEUwMDA0QTA4NEEwOTRBMEE0QTBCNEEwQzRBMEQ0QTEwNEExMTU4Cis6MTAwOEYwMDA0QTEyNEExMzRBMTQ0QTE1NEExNjRBMTc0QTE3NEExOUZECis6MTAwOTAwMDA0QTBFNEEwNjRBMDc0QTFBNEExRDRBMUI0QTFDNjhGOEY4Cis6MTAwOTEwMDAwMDA3N0QzRjY5RjgwMDA3NDAwMDY4RjgwMDFERkZGQ0Y0Cis6MTAwOTIwMDA0ODE4NjhGODAwMThGRkZFRjQ5NUY0OTU0QTA4RUVGRkExCis6MTAwOTMwMDAxMEY4MkE1QkY5ODAxODA0RjA3NDA1QTJFRTAxOEExOEY5Cis6MTAwOTQwMDBGNDk1OEExQzhBMUI4QTFEOEExQThBMDc4QTA2OEEwRUNGCis6MTAwOTUwMDA4QTE5OEExNzhBMTc4QTE2OEExNThBMTQ4QTEzOEExMjlDCis6MTAwOTYwMDA4QTExOEExMDhBMEQ4QTBDOEEwQjhBMEE4QTA5OEEwOEQ3Cis6MTAwOTcwMDBGNEVCRUVGRDc2RjgyQTM4MDAwMDc2RjgyQTVBMDAwMEVCCis6MTAwOTgwMDBFODAxNEUwMEZCODAxN0Q2RjQ5NUU4MDE4MEY4MkE1QjU5Cis6MTAwOTkwMDA3NjAwMkE4RkY5ODAxNkFBMTBGODJBNUJGOTgwMTc1Qzc2Cis6MTAwOUEwMDAxMEY4MkE1QkY5ODAxNzZGRkI4MDE2NjZGNDk1RTgxQTM5Cis6MTAwOUIwMDBGQjgwMTY4N0Y0OTVFODFBRkI4MDE2NjZGNDk1RTgxQjExCis6MTAwOUMwMDBGQjgwMTY4N0Y0OTVFODFCRUUwM0ZDMDA0QTExRjQ5NUIyCis6MTAwOUQwMDAxMzAyODgxMUU4MDBGODREMDY2QUYzMTAwMDAxODkxQTI1Cis6MTAwOUUwMDBGNDk1RjA3MjA2NjkxQzkxOEExMUZDMDA0QTExODgxMTc1Cis6MTAwOUYwMDAxMjAzMTEwMkY4NDUwNjc5RjAxMDAwMDE4ODFBRjQ5NUU3Cis6MTAwQTAwMDBGMDcyMDY3ODgxOTE4QTExRkMwMDRBMTFGNDk1NzEwMjA2Cis6MTAwQTEwMDAwMDExMTEwMzYxRjgwMDExMDAwMUY4MzAwNjkxRjZCOEQ5Cis6MTAwQTIwMDA2RkY4MDAxMTBDMUY4ODExRjNFOEU4RkYxODgxRjFBMDlFCis6MTAwQTMwMDA4MTgxRjA3MzA2OURGNkI4NkZGODAwMTEwQzFGODgxMUM0Cis6MTAwQTQwMDBGMzMwMDBGRkYwMjBGRjAwMTg4MUYxQTA4MTgxOEExMUFFCis6MTAwQTUwMDBGQzAwNEExMUY0OTUxMTAyNjFGODAwMEIwMDAxRjgyMDI2Cis6MTAwQTYwMDAwNkIxNDkwQkY2MUY4ODExRjQ5NUY0OTUxMDgxRjI3M0M1Cis6MTAwQTcwMDAwNkI4RjAzMDAwRkY0OTBCRjYxRjg4MTFGNDk1RjQ5NTg1Cis6MTAwQTgwMDAxMjgxRjQ3ODhBMTFGQzAwNEExMUY0OTU3MTAyMDAxMjY3Cis6MTAwQTkwMDAxMzAzODgxMUU4MDBGODREMDZDQ0YzMTAwMDAxODkxQTAxCis6MTAwQUEwMDBGNDk1RjA3MjA2Q0IxMTkyRjJDMDgxOTE4QTExRkMwMDhDCis6MTAwQUIwMDA4ODEyMTIwMjcxMDEwMDEzRjg0NTA2REJGMDEwMDAwMUU0Cis6MTAwQUMwMDA4ODFBRjQ5NUYwNzIwNkRBRTU5OEZDMDA0QTExRUVGRUY5Cis6MTAwQUQwMDA4ODExMTEwNDEwMDY3MTA1MDAxMjYxRjgwMDEyMDAwMTVFCis6MTAwQUUwMDBGODIwMDZFQUYwMDAwMDAxRjZCOEYwMDAwMDAxNkZGODA3Cis6MTAwQUYwMDAwMDEyMEYxRjQ4MDg4MTAwRjQ3RjgwMDFGMjc0MDZCQUNCCis6MTAwQjAwMDBGNDk1NDgxMUVFMDI4QTExRkMwMDRBMTFFRUZFODgxMjlCCis6MTAwQjEwMDAxMTA0MTAwNjcxMDUwMDEzNjFGODAwMTMwMDAxRjgyMDlDCis6MTAwQjIwMDAwNzA5RjAwMDAwMDFGMDAwMDAwMTg4MTFGNkI4NkZGODI1Cis6MTAwQjMwMDAwMDEzMEYxRjgxMDA0ODExRjQ3RjgwMDFGMjc0MDZDRTZDCis6MTAwQjQwMDBGNDk1NDgxMjQ4MTFGMDMwRkZGRUVFMDI4QTExRkMwMEM1Cis6MTAwQjUwMDA0QTExNEExNjRBMTdFRUZDRjQ5NTgwMDI3MTA4MDAxNkY1Cis6MTAwQjYwMDAxMDA5NzEwQjAwMTc4MDAzNzEwQTAwMTE0ODE3Rjg0NTJFCis6MTAwQjcwMDAwNzNGNzAwMDAwMTExMDAzRjA3NDA2OUY4MDAxNzAwMEExCis6MTAwQjgwMDAwMDE2MTAwMkYwNzQwNjdCNkQ5MTZEOTY2Q0VGRkZGRkZFCis6MTAwQjkwMDAwNzJGRUUwNDhBMTc4QTE2OEExMUZDMDA0QTExRUVGRTBFCis6MTAwQkEwMDAxMEY4MkFFODA4RjgyQUU5Rjg0NTA3NjQ3NjAwMDAwMUY5Cis6MTAwQkIwMDA2MkY4MkFFOTAwNUVGMjc0MTIwQkYwMDAzMDQwNzIxMTA0Cis6MTAwQkMwMDAyQUU5NzcxMDAwMEZGNUE5RjgyMDA3NjE2QkY4MkFFOUU4Cis6MTAwQkQwMDAwMDAxRjA3MzA3NjQ3NkY4MkFFOTAwMDBFRTAyOEExMTNBCis6MTAwQkUwMDBGQzAwNEExMTg4MTFFODAwNzVGODAwMDgwMDA4RTgwMEM4Cis6MTAwQkYwMDA3NUY4MDAwODAwMDlGNkI4RjQ5NUYwMjBGQzNGNzVGODg4Cis6MTAwQzAwMDAwMDA4MDAwREYwMjAwQzMwNzVGODAwMDgwMDBDNzZGODk0Cis6MTAwQzEwMDAyQUU4MDAwMDc2RjgyQUU5MDAwMDZDODEwNzkyNzZGODRECis6MTAwQzIwMDAyQUVBMDAwMEZCODAxNjc2RjQ5NUU4MTBFODAwNzVGOEQzCis6MTAwQzMwMDAwMDA4MDAwMEYwNzMwN0E4NzZGODJBRUEwMDAxRkI4MDlDCis6MTAwQzQwMDAxNjY2RjQ5NUU4MTBGQjgwMTY4N0Y0OTVFODEwRTgwMDI2Cis6MTAwQzUwMDA3NUY4MDAwODAwMDBGNkI4RjQ5NUYwMjBGRkZGNzVGODZECis6MTAwQzYwMDAwMDA4MDAwMDhBMTFGQzAwRjQ5NTRBMDg0QTA5NEEwQTYzCis6MTAwQzcwMDA0QTA2NEEwNzRBMUQ2OEY4MDAwNzdEM0Y2OUY4MDAwN0UxCis6MTAwQzgwMDA0MDAwNjhGODAwMURGRkZDMTBGODJBRUFGODQ1MDdFMTZCCis6MTAwQzkwMDAxMEY4MkFFOEYwMDAwMDAxRjAzMDAwMEY4MEY4MkFFODkwCis6MTAwQ0EwMDAxMEY4MkFFOEY4NDQwN0Q2RjZCOEY0OTVGMDIwRkMzRjhGCis6MTAwQ0IwMDA3NUY4MDAwODAwMERGMDIwMEMzMDc1RjgwMDA4MDAwQ0U1Cis6MTAwQ0MwMDBFODAwNzVGODAwMDgwMDAwRjZCOEY0OTVGMDIwRkZGRjgyCis6MTAwQ0QwMDA3NUY4MDAwODAwMDA4QTFEOEEwNzhBMDY4QTBBOEEwOUIwCis6MTAwQ0UwMDA4QTA4RjRFQkVFRkZGMjc0MDc2N0Y0OTVFODAxRUUwMTcxCis6MTAwQ0YwMDBGQzAwNEEwNzRBMUQ2OEY4MDAwNzdEM0Y2OUY4MDAwN0I1Cis6MTAwRDAwMDA0MDAwNjhGODAwMURGRkZDOEExRDhBMDdGNEVCNEExMUI5Cis6MTAwRDEwMDA3NzExMDAyODc2ODEyNDAwRTgwMDc1RjgwMDA4MDAwMUFBCis6MTAwRDIwMDBGMjc0MDc2N0Y0OTVFODAwNzcxMTAwMUQ2ODgxMDA3RjcxCis6MTAwRDMwMDBGNkI4RjQ5NUYwMjBGRjgwNzcxMTAwMURGMDMwMDEwMDI3Cis6MTAwRDQwMDAxQTgxODA4MUYwNzQwQTMzRjA3NDExQUNGOTgwMTMyNTk0Cis6MTAwRDUwMDBGOTgwMTY1M0Y5ODAxNzgyRjA3NDA2MkZGOTgwMTRCMkM3Cis6MTAwRDYwMDBGOTgwMTkxMEYwNzQwREUzRjA3NDA3RThGMDc0MDIzNjlFCis6MTAwRDcwMDA4QTExRkMwMDRBMTE2MEY4Mjc3QkZGRkZGODMwMDgzOTIwCis6MTAwRDgwMDA3MUY4Mjc3QjI3Nzk2MEY4Mjc3OUZGRkZGODMwMDhCMkUwCis6MTAwRDkwMDAxMEY4Mjk4NjA4RjgyNzc5RjAzMDdGRkY4ODExRjQ5NTNDCis6MTAwREEwMDA3NzEwNDAwMEY2QTlGODMwMDg1ODEwRjgyNzc5MDhGOEFECis6MTAwREIwMDAyNzdBRjAzMDdGRkY4ODExRjQ5NTc3MTA0MDAwRjZBOTZDCis6MTAwREMwMDBGODIwMDg2Mzc2RjgyNzc5RkZGRjc2RjgyNzdCRkZGRjg2Cis6MTAwREQwMDBGN0I4RjI3MzA4RDlGMDIwRkZGRkY2Qjg1NkY4Mjc3NDc5Cis6MTAwREUwMDBGMEY5ODgxMTU2RjgyNzcyRjBGOTg4MTJGNDk1RjQ5NTA1Cis6MTAwREYwMDBFNzIwRjRBOUY4MzAwODhGRjEyMDI3N0M0ODExRjYwMDhECis6MTAwRTAwMDA4ODEzRjQ5NUY0OTUxMDgzMDhGODI3NzlGMDMwN0ZGRjY0Cis6MTAwRTEwMDA4ODEzRjQ5NTc3MTA0MDAwRjVBQkY4MzAwODhGNkQ5MThBCis6MTAwRTIwMDA0ODExRjAzMDAxRkY4ODExRjQ5NUU3MjBGN0E5RjgzMDU4Cis6MTAwRTMwMDAwODc0NkQ4OTQ4MTFGMDMwMDFGRkYwRTdGNDk1NDgwODE3Cis6MTAwRTQwMDA0RUY4Mjc3NDQ4MDhGMUY5ODkxMUY0OTVGNDk1NzFFMTg5Cis6MTAwRTUwMDAyNzdDMjc3QTYwRjgyNzdCRkZGRkY4MzAwOEFCNDgwODJCCis6MTAwRTYwMDA0RUY4Mjc3Mjc2RjgyNzdCRkZGRjc2RjgyNzc5RkZGRjg5Cis6MTAwRTcwMDBGMjczMDhEOUY0OTVFODAwNDRGODI3NzM0MEY4Mjc3NTExCis6MTAwRTgwMDA4MkY4MDAxMUY0OTU3NzEwODAwMEY2QTlGODIwMDhEOEIwCis6MTAwRTkwMDBGNkI4MTBGODI3NzNGMDAwODAwMDQ4MDg0RUY4Mjc3NDYxCis6MTAwRUEwMDA0ODA4RjBGOTg4MTFGNDk1RjQ5NTcxRTEyNzdDMjc3QUM4Cis6MTAwRUIwMDBGN0I4NTdGODI3NzRGMDYyRkZGRkYwNDBGRjgwRjI4MDI4Cis6MTAwRUMwMDA0RUY4Mjc3NEU4MDA4QTExRkMwMDRBMTE0QTE2RUVGQjFFCis6MTAwRUQwMDAxMUY4Mjc3MTA5RjgyNzczODkxMTg4MTBGNDk1RjQ5NTkyCis6MTAwRUUwMDBGNkE5RjgyMDA4RURGMjczMDkwRUY0OTVFODAwRjYyMDUzCis6MTAwRUYwMDA3NjAwMDA0MUYwNzQxMkVFODgxNkY0OTVGN0I4NkQ5NkZFCis6MTAwRjAwMDAxMEY4MDAxNkY4NDcwOTBBRTc2MTc2MDAwMDAwNzYwMTNDCis6MTAwRjEwMDAwMDgwNzYwMjAwRkY3NjAzMDAwMEYyNzQwQ0I5RjQ5NUFECis6MTAwRjIwMDBFODAwNkNFOUZGRkYwOEZCNzMxNjAwMEVGMDY2MDA0MTU1Cis6MTAwRjMwMDBFRTA1OEExNjhBMTFGQzAwNEExMUY0OTU3MTAyMDAxMzFECis6MTAwRjQwMDBGNkI4NzcxMTdGRkY1N0Y4Mjc3MjQ4MTFGMjgwRjAwMDRBCis6MTAwRjUwMDA4MDAwODgxMUY2NDBGMEUwRjFGMUU4MDFGMjgwODBGOEJECis6MTAwRjYwMDAyNzc4NzcxMjgwMDA1N0Y4Mjc3MjQ4MTJGMjgwODgxMjhCCis6MTAwRjcwMDBGNDk1RjQ5NTZDODIwOTM4RTgwMDc1RjgwMDA4MDAwMUQyCis6MTAwRjgwMDBGMDczMDkzREYwMjA4MDAxNzVGODAwMDgwMDAxNzA4MUMwCis6MTAwRjkwMDAwMDEzOEExMUZDMDA0QTExRjAzMDdGRkYxMUY4Mjk4NkY2Cis6MTAwRkEwMDBGNTIwRjMzMDdGRkY4OTExRjQ5NTc3MTA0MDAwRjZBOTAyCis6MTAwRkIwMDBGODIwMDk1NEYyNzMwOTY3RjQ5NUU4MDI2RkY4Mjc3QTZDCis6MTAwRkMwMDAwRDIwRjMzMDdGRkY4OTExRjQ5NTc3MTA0MDAwRjZBOUNBCis6MTAwRkQwMDBGODIwMDk2NEYyNzMwOTY3RjQ5NUU4MDE4MEY4Mjc3QjJCCis6MTAwRkUwMDBFODAwOEExMUZDMDA0QTExMTFGODI5ODZGNTIwRjMzMDM3Cis6MTAwRkYwMDA3RkZGODkxMUY0OTU3NzEwNDAwMEY2QTlGODIwMDk3QTRGCis6MTAxMDAwMDBGMjczMDk4REY0OTVFODAyNkZGODI3N0EwRDIwRjMzMDFBCis6MTAxMDEwMDA3RkZGODkxMUY0OTU3NzEwNDAwMEY2QTlGODIwMDk4QTFFCis6MTAxMDIwMDBGMjczMDk4REY0OTVFODAxODBGODI3NzlFODAwOEExMUI4Cis6MTAxMDMwMDBGQzAwNEExMUY0OTU3MTAyMDAxMjg4MTFGNkI4NTdGOEI1Cis6MTAxMDQwMDAyNzcyRjAyMDdGRkZGMjgwRjAwMDgwMDA4MDgxNTdGODQ3Cis6MTAxMDUwMDAyNzcyRTgwMUYzRjFGMjgwODBGODI3Nzg3NzExODAwMDk5Cis6MTAxMDYwMDA0ODExNTdGODI3NzJGMjgwODgxMUY0OTVGNDk1NkM4MTM1Cis6MTAxMDcwMDAwOUI1RTgwMDc1RjgwMDA4MDAwMUYwNzMwOUJBRjAyMDFFCis6MTAxMDgwMDA4MDAxNzVGODAwMDgwMDAxNDVGODI3NzE0M0Y4Mjc3M0JGCis6MTAxMDkwMDA4M0Y4MDAxMUY0OTVFNzIwRjZBOUY4MzAwOUM5RjI3MzM2Cis6MTAxMEEwMDAwOUU0NzcxMjAwMDA1N0Y4Mjc3MkYwMjA3RkZGRjI4MEUyCis6MTAxMEIwMDA0OTEyRjUwMEYzMDA4MDAwNjFGODAwMEI4MDAwRjgzMDYxCis6MTAxMEMwMDAwOURDRjEyMDgwMDBGNTIwODkxMkY0OTU0ODEyNkZGOEIwCis6MTAxMEQwMDAyNzczMEQwMEY0OTU0OTBCNEZGODI3NzI4QTExRkUwMDEzCis6MTAxMEUwMDA0ODEyRjQ5NTRBMTE0QTE2NEExN0VFRkNGNDk1NzEwODE1Cis6MTAxMEYwMDAwMDE2ODgxN0YwNzQwODMwNDgxODcwMDAwMDE2RjI3NDUzCis6MTAxMTAwMDAwOThGRjAwMDAwMDI4ODExRjQ5NUY0OTU2QzgxMEEwQUE5Cis6MTAxMTEwMDBGMjc0MDhEQkY0OTU0ODE2NDgxODcwMDAwMDE2RjI3NDUzCis6MTAxMTIwMDAwOThGRjAwMDAwMDI4ODExMTAwMjcwMDEwMDExODAwMDg4Cis6MTAxMTMwMDBGMjc0MDZDRUY0OTU0ODE3NDkxMTQ4MTdGNjAwODgxNzNGCis6MTAxMTQwMDBFNzYwRjVBOUY4MjAwQTJENDgxNkY2MjA4ODExNDgxOEZFCis6MTAxMTUwMDA3MDAwMDAxMUYyNzQwOThGRjAwMDAwMDI4ODExNzAwMTE0Cis6MTAxMTYwMDAwMDExMTAwMjgwMDBGMjc0MDZDRUY0OTU0ODE3RUUwNEM4Cis6MTAxMTcwMDA0ODE2OEExNzhBMTY4QTExRkMwMEVFRkRFODAwNEVGODIwCis6MTAxMTgwMDAyNzcwRTgwMDRFRjgyNzcyRTgwMDRFRjgyNzc0RTgwMDUwCis6MTAxMTkwMDA0RUY4Mjc3Njc2RjgyNzc5RkZGRjc2RjgyNzdBMDAwMDUxCis6MTAxMUEwMDA3NkY4Mjc3QkZGRkY3NkY4Mjc3ODAwMDBFODAwNzVGOENGCis6MTAxMUIwMDAwMDA4MDAwMTc2MDAwMDAwNzYwMTAyMDBGMjc0MTJEQ0UzCis6MTAxMUMwMDBGMDIwMjc3Q0VFMDNGQzAwNEExMUVFRkNGNDk1NEUwMDYzCis6MTAxMUQwMDA3NzEyN0ZGRkY2Qjg0OTEyRjE4MEYzMDA4MDAwODkxMjgwCis6MTAxMUUwMDBGMEUwRjFGMTRGMDJFOTAxRjQ5NTQ4MEJGNTQwNTYwMkE5Cis6MTAxMUYwMDBGMTgwODFGODI3Nzg3NzExODAwMDU2MDA0OTExRjE4MDNECis6MTAxMjAwMDA4OTExRjQ5NUY0OTU2QzgxMEE4MUU4MDA3NUY4MDAwODVECis6MTAxMjEwMDAwMDAxRjA3MzBBODZGMDIwODAwMTc1RjgwMDA4MDAwMUQzCis6MTAxMjIwMDAxMDgyRUUwNDhBMTFGQzAwNEExMUVFRkVGNDk1NEUwMDg1Cis6MTAxMjMwMDA3NzExN0ZGRkY2Qjg0OTExRjE4MEYzMDA4MDAwODkxMTIyCis6MTAxMjQwMDBGMEUwRjFGMUU4MDFGMjgwODBGODI3Nzg1NjAwRjEyMDEzCis6MTAxMjUwMDA4MDAwRjE4MEY0OTU0OTBCRjg0RDBBQUJGMDIwODAwMTM1Cis6MTAxMjYwMDA3NUY4MDAwODAwMDFGMDczMEFBRkU4MDA3NUY4MDAwODhGCis6MTAxMjcwMDAwMDAxRUUwMjQ4MTE4QTExRkMwMDRBMTE4ODEyMTMwMjgzCis6MTAxMjgwMDA3NzExMDAwMEY4NEQwQUNCRjMxMDAwMDE4OTFBRjQ5NThDCis6MTAxMjkwMDBGMDcyMEFDQTQ4MTExQ0Y4Mjk3RTg4MTExMUY4Mjk3RUJCCis6MTAxMkEwMDBGMjAwMDAwMTgwRjgyOTdFODE5MjQ4MTE4QTExRkMwMDI5Cis6MTAxMkIwMDA0QTExRjQ5NTcxMDIwMDExODgxMkY2QjhGMDIwN0ZGRkYwCis6MTAxMkMwMDA1N0Y4Mjc3MEYyODBGMDAwODAwMDgwODI1N0Y4Mjc3MDZFCis6MTAxMkQwMDBFODAxRjNGMUYyODA4MEY4Mjc3ODc3MTI4MDAwNDgxMjU1Cis6MTAxMkUwMDA1N0Y4Mjc3MEYyODA4ODEyRjQ5NUY0OTU2QzgyMEFGNDBFCis6MTAxMkYwMDBFODAwNzVGODAwMDgwMDAxRjA3MzBBRjlGMDIwODAwMTk5Cis6MTAxMzAwMDA3NUY4MDAwODAwMDE0NUY4Mjc3NUU3MTA0M0Y4Mjc3MUM0Cis6MTAxMzEwMDA4M0Y4MDAxMjZERTgwMDA0NkQ4QUY2QUFGODMwMEIwQTEzCis6MTAxMzIwMDBGMjczMEIyNTc3MTEwMDAwNTdGODI3NzBGMDIwN0ZGRjJDCis6MTAxMzMwMDBGMjgwNDkxMUY1MDBGMzAwODAwMDYxRjgwMDBCODAwMDk1Cis6MTAxMzQwMDBGODMwMEIxREYxMjA4MDAwRjUyMDg5MTFGNDk1NDgxMTJCCis6MTAxMzUwMDA2RkY4Mjc3MTBEMDBGNDk1NDkwQjRGRjgyNzcwNDgxMTZECis6MTAxMzYwMDA4QTExRkMwMDRBMTE0QTE2NEExN0VFRjA4ODE3MTAxNzI2Cis6MTAxMzcwMDA4MDA1MTAxNjgwMDYxMDE1ODAwNzcxMTQwMDExMTAwNUU1Cis6MTAxMzgwMDBGMDMwMDAwMTg4MTAxMDA2RjAzMDAwMDE4MDA4NDkxMThCCis6MTAxMzkwMDAxMDA1RjYwMTgwMDkxMDA2NjFGODAwMDgwMDAxRjgyMDI4Cis6MTAxM0EwMDAwQjRCMTAwOUYwMDAwMDAxODAwOTcxMDgwMDEyRjRBQTJCCis6MTAxM0IwMDBGODMwMEI1NDEwMDlGMDAwMDAwMTgwMDkxMjA5NDkxMTlFCis6MTAxM0MwMDBGNDdGODAwOUY2MjA4MDBBNTZGODI3NzA0RTBDMTAwOTI5Cis6MTAxM0QwMDA4MDAwNDgxOEYyNzQwQUNFRjAwMDAwMDQ4ODE2RjQ5NUQ0Cis6MTAxM0UwMDBGNDk1NkM4NjBCNkRGMjczMEM1OUY0OTVFODAwRjZCODIxCis6MTAxM0YwMDBGNDk1NTYwQ0YwRjk4ODEyRjQ5NUY0OTU3MEUyMjc3Qzc4Cis6MTAxNDAwMDAyOTg2RTgwMDgwMEU0ODExRjg0NTBCQ0M3NzEwMDAwMUMyCis6MTAxNDEwMDBGNEE5RjgzMDBCODk2Q0UxRkZGRDBCOEIxMEU3MDAwMjlCCis6MTAxNDIwMDA4MDBFRjA3MzBCOEIxMDg3ODAwRUU3MTBGNUFFRjgyMDVFCis6MTAxNDMwMDAwQkIyNzAwMDAwMTc3MDAxMDAxNjEwMDRGMDc0MDZDRTk1Cis6MTAxNDQwMDA0ODE3NDkxNkY2MDA4ODE3NDgxMUY2MjA4ODExMTAwOTI4Cis6MTAxNDUwMDBGNjIwODAwMDQ4MThGMjc0MEFDRUYwMDAwMDA0ODgxNkM2Cis6MTAxNDYwMDAxMDA0NzAwMDAwMTc3MDAxMDAxMUYwNzQwNkNFNDgxMUNFCis6MTAxNDcwMDAwMDA0ODAwNEYwNzMwQkJDNzAwMDAwMTc3MDAxMDAxMUIxCis6MTAxNDgwMDAxMDA0RjA3NDA2Q0U0ODExMDAwNDgwMDQ0OTExNDgxNjc3Cis6MTAxNDkwMDBGNjIwODgxNkY0OTVGNDk1NkM4NjBCQ0MxMDBBODAwMDIzCis6MTAxNEEwMDA0ODE4RjI3NDBBQ0VGMDAwMDAwNDg4MTYxMjBBRjg0NUIzCis6MTAxNEIwMDAwQzMzNzEwQTAwMTBGNEFFRjgzMDBDMUM0ODE2RjBFMTQxCis6MTAxNEMwMDA4ODExMTIwOEY4NDUwQkRCNkQ4OTEyMDdGODQ1MEJFOTA2Cis6MTAxNEQwMDAxMDA3ODAwMDcwMDIwMDExMTAwNjgwMDExMDA0RjA3NEUzCis6MTAxNEUwMDAwNkRDRjA3MzBCRUY0ODExNkYwMDBDOUYxMDA0RjA3NEQyCis6MTAxNEYwMDAwQUIzMTEwRUYxQzA4MTBFMTAwNjQ5MTFGNjAwODAwNkU0Cis6MTAxNTAwMDAxMDA1RjYyMDg4MTFGMDAwMDAwMTQ4MDg2RjAwMEM5RkJDCis6MTAxNTEwMDA0ODE4RjI3NDBBQ0VGMDAwMDAwNDEyMDdGODQ1MEMxMUM2Cis6MTAxNTIwMDAxMDA3ODAwMDcwMDIwMDExMTAwNjgwMDExMDA0RjA3NDkyCis6MTAxNTMwMDAwNkRDRjA3MzBDMTc0ODExNkYwMDBDOUYxMDA0RjA3NDU4Cis6MTAxNTQwMDAwQUIzMTEwRUYxQzA4MTBFRjA3MzBDMzMxMjA3Rjg0NTg3Cis6MTAxNTUwMDAwQzJBMTAwNzgwMDAxMDA2ODAwMTEwMDU4MDAyMTAwNDdDCis6MTAxNTYwMDBGMDc0MDZEQ0YwNzMwQzMwMTIwNTZGMDAwQzlGMTAwNDUxCis6MTAxNTcwMDBGMDc0MEFCMzExMEVGMUMwODEwRTc2MDAwMDAxNDgxODE0Cis6MTAxNTgwMDBGMjc0MEFDRUYwMDAwMDA0NzEwNDAwMTE3MDgxMjk4NjAzCis6MTAxNTkwMDAxMDBFMUNGODI5ODY4MDBFNzYwMDAwMDE0ODE4RjI3NDlGCis6MTAxNUEwMDAwQUNFRjAwMDAwMDQxMDBFNzEwNDAwMTE4MDgxMTBGOEMyCis6MTAxNUIwMDAyOTg2RjAwMDAwMDFGMDMwN0ZGRjgwRjgyOTg2MTAwOUFECis6MTAxNUMwMDBGMDAwMDAwMjgwMDlFRTEwOEExNzhBMTY4QTExRkMwMENBCis6MTAxNUQwMDAxMEY4Mjc3NTA4RjgyNzcxRjAxMDAwMDE0ODA4RkMwMDgyCis6MTAxNUUwMDA0QTExNEExNkVFRkZGNDk1NzEwNDAwMTZGMDAwMDAwMTRFCis6MTAxNUYwMDA0ODA4NEVGODI5N0M2REVFRkZGRDQ4MTZGODQ1MEM5OTE5Cis6MTAxNjAwMDA1NkY4Mjk3Q0YwNzQwQTVBODgxMTEwRjgyOTdERjAwMEU4Cis6MTAxNjEwMDAwMDAxNDgwODRFRjgyOTdDMTBGODI5ODJGMDAwMDAwMUVBCis6MTAxNjIwMDA4ODEwRjQ5NUY0OTVGNEE5RkEzMDBDOTY4MEY4Mjk4Mjg0Cis6MTAxNjMwMDA1NkY4Mjk4MEYwMDAwMDAxNEVGODI5ODA3MzExMjk4MkE0Cis6MTAxNjQwMDA2Q0VFRkZGRjBDNzZFRTAxOEExNjhBMTFGQzAwNEExMTNGCis6MTAxNjUwMDA3NkY4Mjk4NDAwMDA3NkY4Mjk4NTAwMDFFODAwNEVGODI0Cis6MTAxNjYwMDAyQTBDNzZGODI5ODYwMDAwNzZGODI5ODcwMDAwNzcxMTgxCis6MTAxNjcwMDAyOTg4NzY4MUFBQUE3NkUxMDAwMUFBQUE3NkUxMDAwMjY5Cis6MTAxNjgwMDAwMDAwOEExMUZDMDA0QTExRUVGQ0Y0OTU3MTA2MDAxNDZBCis6MTAxNjkwMDA3MTA3MDAxMzcxMDgwMDEyNzEwOTAwMTU3NzEwMDBGRjFGCis6MTAxNkEwMDBGNEFBRjgzMDBENDQ0OTEzNTNGODJBMEM0RkY4MkEwQ0M5Cis6MTAxNkIwMDA3MzEyMDAwRUYxNjYwMDBEODkxMUY0OTU3NzEwMDAwMTg4Cis6MTAxNkMwMDA3MUUxMjQwMDAwMTFGNEE5RjgzMDBEMTc3NzEwMDAwMjIxCis6MTAxNkQwMDBGNEE5RjgzMDBDRUM3NzExMjk4QTc2ODEwMDAwRTgwMDMzCis6MTAxNkUwMDA3NzE0MDAwMDc3MTMwMDAwRjA3MzBENDg2QzgzMENGQTM4Cis6MTAxNkYwMDA3NzExMjk4QTQ4MTJGMEU4RjA0MDgwMDA4MDgxRTgwMEU0Cis6MTAxNzAwMDA3NzE0MDAwMEYwNzMwRDQ4NDkxM0YzNDA4MDAwODFGODBFCis6MTAxNzEwMDAyOThBNjFGODAwMTUwMDAxRjgyMDBEMDc2OUY4Mjk4QTY3Cis6MTAxNzIwMDA0MDAwNjFGODAwMTQwMDAxRjgyMDBEMEY2OUY4Mjk4QUMzCis6MTAxNzMwMDAyMDAwNzcxMTI5OEE0OTEyRjNFODFCODE4MTgxRjA3MzE3Cis6MTAxNzQwMDAwRDQ4MTFGODI5ODRGODRDMEQzNzc3MTEyOTg4NzY4MUQ2Cis6MTAxNzUwMDBBQUFBMTFGODI5ODVGMzEwMDAwMUYzNDBBQTAwODFFMTNCCis6MTAxNzYwMDAwMDAxNzYwMDAwMDI4MDAxNzAwMjAwMTQ3MDAzMDAxMzczCis6MTAxNzcwMDBGMjc0MEIyOEY0OTU0ODExNzFGODI5ODUyOTg0RjA3M0M3Cis6MTAxNzgwMDAwRDczNzYwMDAwMDA4MDAxNzYwMjAwMDA3MDAzMDAxM0U0Cis6MTAxNzkwMDBGMjc0MEIyOEY0OTVFODAwRjA3MzBENzM3NzExMjk4QTIxCis6MTAxN0EwMDA3MDgxMDAxMzExRjgyOTg0Rjg0QzBENjg3NzExMjk4ODhECis6MTAxN0IwMDA3NjgxQUFBQTExRjgyOTg1RjMxMDAwMDFGMzQwQUEwMDQ2Cis6MTAxN0MwMDA4MUUxMDAwMTc2MDAwMDAzODAwMTcwMDIwMDE0NzAwM0MzCis6MTAxN0QwMDAwMDEzRjI3NDBCMjhGNDk1NDgxMTcxRjgyOTg1Mjk4NEI3Cis6MTAxN0UwMDBGMDczMEQ3Mzc2MDAwMDAxODAwMTcwMDIwMDE0NzAwMzI1Cis6MTAxN0YwMDAwMDEzRjI3NDBCMjhGNDk1NDgxMTZCRjgyOTg0RkZGRjRECis6MTAxODAwMDBFRTA0OEExMUZDMDA0QTExRjU0MEY0OTU0ODBCRjQ3ODc3Cis6MTAxODEwMDA4ODExRjQ5NUY0OTU2Q0UxRkZCOTBEODhGMjczMERBNTZDCis6MTAxODIwMDBGNDk1RTg2MEYyMDAwMDA2NjFGODAwMTEwMDIwRjgzMDNECis6MTAxODMwMDAwRDk4NjFGODAwMEIwMDAxRjgyMDBEQTNGMjAwMDAwN0RECis6MTAxODQwMDBGMDczMERBMzYxRjgwMDBCMDAwMUY4MjAwREExRjI3M0Y1Cis6MTAxODUwMDAwREEzRjAwMDAwMDFGMDAwMDAwMjQ4MDhGNDdGOEExMTk3Cis6MTAxODYwMDBGQzAwRUVGRkYwNzQwN0ZERjA3NDA3NDRGMDc0MERCNDUzCis6MTAxODcwMDBGMDc0MDIwNUYwNzQwNDYwRjA3MzBEQUFFRUZEMTBGODI4Cis6MTAxODgwMDAyQUEzRjg0NDBEQ0IxMEY4MkFBNEY4NDUwREQ3NzYwMDBBCis6MTAxODkwMDAwMjAwRjI3NDA5RThGMDIwMjIwMDc2RjgyQUE0MDAwMDgxCis6MTAxOEEwMDA3NkY4MkFBNzAwMDBGMDczMERENzc2MDAwMjAwRjI3NEQ0Cis6MTAxOEIwMDAwOUU4RjAyMDIwMDA3NkY4MkFBMzAwMDA3NkY4MkFBNzhECis6MTAxOEMwMDAwMDAxRjA3NDBDNUVGMEUwRjAxMDNBOThGODQ3MERFMTdBCis6MTAxOEQwMDA3NkY4Mjc2RTAwMDBFRTAzRkMwMDRBMTFFRUZFNzcxMTQ5Cis6MTAxOEUwMDAyMDAwNzYwMEFBQUE3NjAxMDIwMEYyNzQwNjZDRjQ5NTM0Cis6MTAxOEYwMDA0ODExNzYwMDU1NTU3NjAxMDIwMDQ4MTFGMjc0MDY2Q0M1Cis6MTAxOTAwMDBGMDAwMDIwMDc2RjgyQUEzMDAwMDc2RjgyQUE0MDAwMDZFCis6MTAxOTEwMDBFODAwNEUwMEZCODAxNTNFRjQ5NUU4MDQ4MEY4MkFBNTA3Cis6MTAxOTIwMDA3NjAwMkFBOEY5ODAxNDg3NzYwMDJBQURGQjgwMTM2MjFFCis6MTAxOTMwMDBGNDk1RTgwMjEwRjgyQUE1Rjk4MDE0NjNGQjgwMTY2Njc2Cis6MTAxOTQwMDBGNDk1RTgxQ0ZCODAxNjg3RjQ5NUU4MUNFODAxNEUwMDJFCis6MTAxOTUwMDBGQjgwMTdENkY0OTVFODAwODBGODJBQTY3NjAwMkFCNzBGCis6MTAxOTYwMDBGOTgwMTZBQTEwRjgyQUE2Rjk4MDE3NUMxMEY4MkFBNkEyCis6MTAxOTcwMDBGOTgwMTc2RkVFMDI4QTExRkMwMEY0OTU0QTA4NEEwOUIzCis6MTAxOTgwMDA0QTBBNEEwNzRBMUQ2OEY4MDAwNzdEM0Y2OUY4MDAwN0MwCis6MTAxOTkwMDA0MDAwNjhGODAwMURGRkZDMTBGODJBQTdGODQ0MEU0QjIxCis6MTAxOUEwMDA3NkY4MkFBMzAwMDFGMDczMEU0RTc2RjgyQUE0MDAwMUZGCis6MTAxOUIwMDA4QTFEOEEwNzhBMEE4QTA5OEEwOEY0RUI0QTExNEExNjlDCis6MTAxOUMwMDA0QTE3RUVGRTg4MEU3MTA4MDAxNjcxMDYwMDE3MTEwN0ZGCis6MTAxOUQwMDBGMDY2MDAwREYwMDAyNUEwODgxMTc2MDEwMDA2ODEwMDU4Cis6MTAxOUUwMDBGMjc0MDZDRUYwMDAwMDAxNzYwMTAwMDY3MDAwMDAxNkM5Cis6MTAxOUYwMDA0ODExRjI3NDA2Q0VGMDAwMDAwNzcwODEwMDE3RUUwMjY1Cis6MTAxQTAwMDA4QTE3OEExNjhBMTFGQzAwNEExMTg4MEU3MTAyMDAxMjg4Cis6MTAxQTEwMDAxMTAzRjA2NjAwMERGMDAwMjQwMDg4MTFGNDk1NzA4MTI4Cis6MTAxQTIwMDAwMDEyNkVFMkZGRkUwRThERjQ5NUU4MDBFODAxODBFMTAxCis6MTAxQTMwMDAwMDAyNzZFMTAwMDMwMEZGNzZFMTAwMDQwMDAwNzZFMTk5Cis6MTAxQTQwMDAwMDBCMDAwMDc2RTEwMDBDMDAwMDgxRTEwMDAxOEExMTJBCis6MTAxQTUwMDBGQzAwNEExMUVFRkM4ODBFRjQ5NUYxNjYwMDBERjMwMENGCis6MTAxQTYwMDAyNDAwODkxMUY0OTVGNDk1NzZFMTAwMEMwMDAwNzZFMUVDCis6MTAxQTcwMDAwMDBCMDAwMDc2RTEwMDAyMDAwMTc2MDAwMDAwNzYwMTE0Cis6MTAxQTgwMDAwMDAwODAwMjc2MDMwMDAwRjI3NDBDQjlGNDk1RTgwMEJGCis6MTAxQTkwMDBFRTA0OEExMUZDMDA0QTExODgxOUY0OTU3MzE5MDAwRTlFCis6MTAxQUEwMDBGMTY2MDAwREYyMDAyNDAwNzcxNTI1QTA3NzE0MDAwMEUwCis6MTAxQUIwMDA3NzFBMDAxRkYwNzIwRjE0RjZCODQ5MTkwOTg1Rjg0QzBGCis6MTAxQUMwMDAwRjEzRjEwMDAwMDU4OTExNDkxNUYzMDAwMDAxODkxMzc2Cis6MTAxQUQwMDA0OTE1RjMwMDAwMDc4OTEyMTE5MzFEOTExOTkyODkxMDdECis6MTAxQUUwMDBGNDk1RjQ5NTZDODAwRjEzMTE5MzFEOTExOTkyODkxMDQwCis6MTAxQUYwMDBGNDk1RjQ5NTZDODAwRjEzMTE5MzFEOTExOTkyODkxMDMwCis6MTAxQjAwMDBGNDk1RjQ5NTZDODAwRjEzMTE5MzFEOTExOTkyODkxMDFGCis6MTAxQjEwMDBGNDk1RjQ5NTZDODAwRjEzMTE5MzFEOTExOTkyODkxMDBGCis6MTAxQjIwMDBGNDk1RjQ5NTZDODAwRjEzMTE5MzFEOTExOTkyODkxMUZFCis6MTAxQjMwMDBGNDk1RjQ5NTZDODEwRjEzNkQ5NDZERUQwMDBENDgxNEMwCis6MTAxQjQwMDA4QTExRkMwMDRBMTE0QTE2NEExN0VFRjg4ODE3MTAwRDQwCis6MTAxQjUwMDA4MDA0MTAwQzgwMDU3MTBFMDAxNjczMTcwMDBFRjA2NkRECis6MTAxQjYwMDAwMDBERjAwMDI0MDA4ODExMTBGODI3NjNGODQ1MEYzMkFCCis6MTAxQjcwMDBGMjc0MEU5RkY0OTU0ODE3MTBGODI3NjBGODQ0MEYzRDUzCis6MTAxQjgwMDA2MEUxMDAwMjAwMDFGODIwMEY2REYwNzMxMTMzMTAwNEMyCis6MTAxQjkwMDA4MDAwMTAwNUYwNzQwNjlGMTEwNEYzMDAwMDAxODEwNDE5Cis6MTAxQkEwMDA2RDhFNzcxMDAwMDE3MUUxMDAwMjAwMTJGNEFBRjgzMDg2Cis6MTAxQkIwMDAwRjYyNzcxMDAwMDJGNEFBRjgzMDBGNkQ0NUUxMDAwQkI4Cis6MTAxQkMwMDA4ODEwNDNFMTAwMEM4M0Y4MDAxMkY0OTVGNDk1RjRBQTEwCis6MTAxQkQwMDBGODMwMEY2REYwNzMwRjk2RjUwMDgxMDQ0OTE2RjUyMDZCCis6MTAxQkUwMDA4OTE2NzZFMTAwMEMwMDAwNzZFMTAwMDQwMDAwNDgxNjNBCis6MTAxQkYwMDBGODQ1MTEzM0Y3Qjg3MUUxMDAwMjAwMTIxMEY4MDAxMjM1Cis6MTAxQzAwMDBGMDEwMDAwM0Y4NDYwRjhDMTBGODAwMTJGMDEwMDAwM0RCCis6MTAxQzEwMDBGODQ1MTAxNjc3MTAwMDAxRjRBQUY4MzAwRjlDNzcxMEUxCis6MTAxQzIwMDAwMDAyRjRBQUY4MzAwRkE4RjA3MzBGOTY3NzEwMDAwNEEyCis6MTAxQzMwMDBGNEFBRjgzMDEwQjc3NzEwMDAwNUY0QUFGODMwMTBCQ0Y5Cis6MTAxQzQwMDBGMjc0MEU5RkY0OTU0ODE3RjA3MzExMzE3NkUxMDAwQzkxCis6MTAxQzUwMDAwMDAwNzZFMTAwMEIwMDAwNzZFMTAwMDQwMDAwNzZFMTcwCis6MTAxQzYwMDAwMDAyMDAwMjExRTEwMDBDRTgwM0Y2MjA4OTEyRjQ5NTRECis6MTAxQzcwMDA3NzEwMDAwM0Y1QUFGODMwMEZCNjZCRjgyNzZGMDAwMTU0Cis6MTAxQzgwMDA4ODEwRjQ5NUY0OTVGNUFFRjgyMDBGQkQ0ODE2ODAwNjNGCis6MTAxQzkwMDA4ODEzRjQ5NTc3MTAwMDAzRjZBQkY4MjAwRkM4NkJGOEEzCis6MTAxQ0EwMDAyNzZGMDAwMTEyMDZGODQ1MTAwMDEwRTEwMDA0ODAwMEMzCis6MTAxQ0IwMDAxMDA1ODAwMTEwMDQ4MDAyMTAwNjgwMDM0ODExRjI3NEEwCis6MTAxQ0MwMDAwNzFFRjAwMDAwMDUxMDA2MDBFMTAwMDQ4MEUxMDAwNDlBCis6MTAxQ0QwMDAxMDA2MDBFMTAwMEM4MEUxMDAwQzg4MTIxMTA2MTAwNENGCis6MTAxQ0UwMDBGNjAwODAwNDQ4MTZGNjIwODgxNjg5MTNGNDk1NzcxMEJDCis6MTAxQ0YwMDAwMDAzRjZBQkY4MjAwRkY1NkJGODI3NkYwMDAxNzcxMEEzCis6MTAxRDAwMDAwMDBDNzFFMTAwMDQwMDEzRjZBQkY4MjAxMDAwNkJGODMyCis6MTAxRDEwMDAyNzZGMDAwMTZDRTJGRkZEMTEzMUY2Qjg2RkUxMDAwNTlECis6MTAxRDIwMDAwQzQ4NkZFMTAwMDYwQzE4RjAzMDBGRkZGMDAwMDAwM0M0Cis6MTAxRDMwMDA4MEUxMDAwQjc2RTEwMDAyMDAwMzQ4MTZGODQ1MTEzM0ZDCis6MTAxRDQwMDA3MUUxMDAwQzAwMTIxMEUxMDAwQjQ5MTJGNjIwODgxMzFCCis6MTAxRDUwMDBFODBDRjYyMDg4MTBGNDk1RjQ5NUY1QUJGODIwMTAyN0UwCis6MTAxRDYwMDA0ODEzODAwNjg4MTBGNDk1RjQ5NUY1QUVGODIwMTAzMEVECis6MTAxRDcwMDA3MDA2MDAxNjEyMDZGODQ1MTA1RjEwRTEwMDA0ODAwMDlFCis6MTAxRDgwMDAxMDA1ODAwMTEwMDQ4MDAyMTAwNjgwMDM0ODExRjI3NENGCis6MTAxRDkwMDAwNzFFRjAwMDAwMDUxMDA2MDBFMTAwMDQ4MEUxMDAwNEM5Cis6MTAxREEwMDAxMDA2MDBFMTAwMEM4MEUxMDAwQzg4MTIxMTA2MTAwNEZFCis6MTAxREIwMDBGNjAwODAwNDQ4MTZGNjIwODgxNkY0OTU3NzEwMDAwQzdCCis6MTAxREMwMDA3MUUxMDAwNDAwMTNGNkFCRjgyMDEwNUY2QkY4Mjc2Rjg5Cis6MTAxREQwMDAwMDAxNzcxMDAwMENGNkFBRjgyMDEwNkJGMjc0MEU5RjI5Cis6MTAxREUwMDBGNDk1NDgxNzcxRTEwMDBDMDAxMjc3MTAwMDBDRjRBQTZBCis6MTAxREYwMDBGODMwMTA3Qzc3MTAwMDBDNzFFMTAwMEIwMDEzRjZBQjhCCis6MTAxRTAwMDBGODMwMTBCNEU3MzBGN0FBRjgzMDEwQjRGMjc0MEVDMTBECis6MTAxRTEwMDBGNDk1NDgxNzg4MTJGNDk1RjQ5NTZDODIxMDhENzZFMTRDCis6MTAxRTIwMDAwMDA0MDAwMDc2RTEwMDAyMDAwNUYwNzMxMEI0NzZFMUQyCis6MTAxRTMwMDAwMDAyMDAwNDc3MTAwMDBDNzFFMTAwMEIwMDEyRjVBQUZCCis6MTAxRTQwMDBGODIwMTA5QUYwNzMxMDlDNzcxMjAwMEM3NjAwMDAwMEI2Cis6MTAxRTUwMDA3MDAxMDAxMjcwMDIwMDE3NzYwMzAwMDE0ODExRjI3NDNECis6MTAxRTYwMDAwQ0I5RjAwMDAwMDU3NkUxMDAwNDAwMDA3NzEwMDAwQ0NBCis6MTAxRTcwMDA3MUUxMDAwQjAwMTJGNkFBRjgyMDExMUM0ODE2Rjg0NTczCis6MTAxRTgwMDAxMTMzNjBFMTAwMDIwMDA1RjgyMDEwREYxMEUxMDAwQkMzCis6MTAxRTkwMDAwOEUxMDAwQzExRTEwMDA0Rjg0RDEwQzc2QkY4Mjc2RjQyCis6MTAxRUEwMDAwMDAxODgxMEY0OTVGNDk1RjVBRUY4MjAxMENGNDgxNjhGCis6MTAxRUIwMDBGNDk1NDgwOEY4NDUxMTE2NkZFMTAwMEMwRDAwODFFMTFBCis6MTAxRUMwMDAwMDBDMTEwNEY1MDA4MTA0NDkxNkY1MjA4OTE2RjA3MzAxCis6MTAxRUQwMDAxMTBFMTBFMTAwMEI3MUUxMDAwQzAwMTI4ODEwRjQ5NTU2Cis6MTAxRUUwMDBGNDk1RjZBQUY4MzAxMTE2NDkxMkY2MjA4ODEwRjQ5NUU4Cis6MTAxRUYwMDBGNDk1RjVBRUY4MjAxMEYzNDgxNjgwMDY0ODA4Rjg0NTJBCis6MTAxRjAwMDAxMTE2MTAwNDcwMDIwMDE3ODAwMDc2MDMwMDAwMTAwNkZFCis6MTAxRjEwMDA4MDAxMTAwNUYwNzQwQ0I5MTAwNjAwRTEwMDBDODBFMTlFCis6MTAxRjIwMDAwMDBDMTEwNjEwMDRGNjAwODAwNDQ4MTZGNjIwODgxNkVFCis6MTAxRjMwMDAxMEUxMDAwQzA4RTEwMDBCRjg0NTExMUNGMDczMTEzMUExCis6MTAxRjQwMDBGMjc0MEU5RkY0OTU0ODE3RjA3MzExMzM3NkUxMDAwQzhDCis6MTAxRjUwMDAwMDAwNzZFMTAwMEIwMDAwNzZFMTAwMDIwMDAxMTAwNEIxCis6MTAxRjYwMDA4MDAwMTAwNUYwNzQwNjlGODgxMkY0OTU3NzEwMDBGRjJBCis6MTAxRjcwMDBGNEFBRjgzMDExMzM2Qzg2MEY3MEVFMDg4QTE3OEExNkFGCis6MTAxRjgwMDA4QTExRkMwMDRBMTFFRUZDRjQ5NTcxMDYwMDEyODgxMUNBCis6MTAxRjkwMDA3MzEyMDAwRUYxNjYwMDBERjMwMDI0MDA4OTE0MTM4MTAyCis6MTAxRkEwMDBGNzdBRjMzMDAwMDE4MUY4Mjc2MDEzRTEwMDAxRjc3QzM0Cis6MTAxRkIwMDBGMzMwMDAwMzgxRjgyNzYxRTkwRjE5RTEwMDAxODFGODhFCis6MTAxRkMwMDAyNzYyNzFFNDAwMDMwMDEzRjZCODQ5MTNGMzAwMDAwMTFGCis6MTAxRkQwMDBGMzMwMDAwRjQ5MEIwOUY4Mjc2MkY4NEQxMTc1NzcxMDlGCis6MTAxRkUwMDAwMEZGRjRBQkY4MzAxMTc1NTdGODI3NkNGMzAwMDAwMUNGCis6MTAxRkYwMDA0RkY4Mjc2Qzc2RjgyNzYzMDAwMUYwNzMxMTc4NzZGOEI0Cis6MTAyMDAwMDAyNzYzMDAwMDcwRTQwMDAzMjc2Mjc2RjgyNzY0MDAwMDZECis6MTAyMDEwMDAxMUY4Mjc2MTYxRjgwMDBCMDAwMkY4MjAxMThERTkwMTI5Cis6MTAyMDIwMDA2RkUxMDAwMjBGMTg4MUY4Mjc2NDExRjgyNzYxNjFGODQ5Cis6MTAyMDMwMDAwMDBCMDAwMUY4MjAxMUE5MTBGODI3NjRGMTAwMDAwNDNBCis6MTAyMDQwMDA4OTEzRTlCOEY1MjA4MUY4Mjc2NTYwODQwMDAyRjgyMDNCCis6MTAyMDUwMDAxMUE5NzAwMDAwMTE3MDAxMDAxMzcwMDIyNzY1RjI3NDVECis6MTAyMDYwMDAwRjE4RjQ5NTQ4MTJFRTA0OEExMUZDMDA0QTExNEExNjIyCis6MTAyMDcwMDA0QTE3RUVGQ0U4MDA0RUY4Mjc2NkU4MDA0RUY4Mjc2ODlECis6MTAyMDgwMDBFODAwNEVGODI3NkNFODAwNEVGODI3NkE3NzEyMjc0MEUwCis6MTAyMDkwMDA3NzExMjQwMDc3MUEwMDFGRjA3MjExREI3MDkyMDAxMTgzCis6MTAyMEEwMDA3NkUxMDAwMUZGRkY3NjgxMDAwMDc2RTEwMDAyMDAwMDhBCis6MTAyMEIwMDA3NkUxMDAwMzAwRkY3NkUxMDAwQzAwMDA3NkUxMDAwQjAyCis6MTAyMEMwMDAwMDAwNzZFMTAwMDQwMDAwNkRFOTAwMERGMDIwMjVBMDdECis6MTAyMEQwMDBGMTAwMDAwNzg5MTFGMTAwMDAwMTgxMDI4ODE2RjQ5NUQyCis6MTAyMEUwMDA3NzE3MDAyMDc2ODYwMEZGNzYwMDAwMDA3NjAxMDAwNjU0Cis6MTAyMEYwMDAxMDAyRjA3NDA2NkM3NjAwMDAwMDc2MDEwMDA2RjI3NDlGCis6MTAyMTAwMDAwNjZDRjQ5NTQ4MTExMDAyRjAwMDAwMEQ4MDAyNkRFOTk0Cis6MTAyMTEwMDAwMDBENkRFRTAwMEQ2Q0VGRkZGRjExRThGMDc0MEM5REVCCis6MTAyMTIwMDBFRTA0OEExNzhBMTY4QTExRkMwMDRBMTE0QTE2NEExN0M5Cis6MTAyMTMwMDBFRUZBODgxMTEwMEE0OTExRjg0RDEyOUY0ODA4Rjg0NTI3Cis6MTAyMTQwMDAxMjlGODAwNDEyODFGNTc4ODkxMkY0OTVGNDk1NkNFMjVGCis6MTAyMTUwMDBGRkI5MTI4QTYxRjgwMDA4MDA4MEY4MzAxMjhBMTNFMTkyCis6MTAyMTYwMDAwMDAxRjBFOEY3NzhGMUEwRjIzMDFGRkY4ODE3RjQ5NTJFCis6MTAyMTcwMDA3NzEyMjQwMDc3MTYwMDAwNzcxMzAwMjBGNkI4NDgxNzZFCis6MTAyMTgwMDAwOEUyMDAwMUY4NDUxMjQyNkRFQTAwMEQ2RDk2NkNFQjE1Cis6MTAyMTkwMDBGRkZGMTIzNEYwNzMxMjkwNTZGODI3NkFGMDAwMDAwMTI2Cis6MTAyMUEwMDA0RUY4Mjc2QTYwODIwMDAxRjgzMDEyNTQ3MDAwMDAxNjYxCis6MTAyMUIwMDBGMjc0MTEzOEY0OTU0ODExRjA3MzEyOTA3MDAwMDAxNjAzCis6MTAyMUMwMDBGMjc0MTEzOEY0OTU0ODExNzIxMDJBOUVGNDk1RjRBRjA4Cis6MTAyMUQwMDBGODMwMTI2RTc2MDAwMDAwNzYwMTAwQkM3MDAyMDAxNjI2Cis6MTAyMUUwMDA3NjAzMDAwMEYyNzQwQ0I5RjQ5NTQ4MTFGMDczMTI5MDY0Cis6MTAyMUYwMDAxMEY4Mjc2RUY4NDQxMjkwNzYwMDAwMDA3NjAxMDBCQ0JCCis6MTAyMjAwMDA3MDAyMDAxNjc2MDMwMDAwRjI3NDBDQjlGNDk1NDgxMUMwCis6MTAyMjEwMDBGMDc0MEM1RUYwRTBGMDEwMTM4OEY4NDIxMjkwNzZGODNCCis6MTAyMjIwMDAyNzZFMDAwMUYwNzMxMjkwNTZGODI3NjZGMDAwMDAwMTQ3Cis6MTAyMjMwMDA0RUY4Mjc2NjZERTkwMDVFNTZGODI3NjhGMDAwMDAwMTQ5Cis6MTAyMjQwMDA0RUY4Mjc2ODcxMDQwMDEyNkVFQUZGRkYxMjE4NzAwNDNFCis6MTAyMjUwMDAwMDEyRUUwNjhBMTc4QTE2OEExMUZDMDA0QTExRUVGRTU5Cis6MTAyMjYwMDA4ODBFRjQ5NUYwNjYwMDBERjAwMDI1QTA4ODExRjQ5NTE1Cis6MTAyMjcwMDBGNDk1NzY4MTAwRkY3NjAwMDAwMDc2MDEwMDA2RjI3NDg2Cis6MTAyMjgwMDAwNjZDRjAwMDAwMDE3NjAwMDAwMDc2MDEwMDA2NDgxMTlGCis6MTAyMjkwMDBGMjc0MDY2Q0YwMDAwMDA3RUUwMjhBMTFGQzAwNEExMThECis6MTAyMkEwMDA4ODBFRjQ5NUYwNjYwMDBERjAwMDI0MDA4ODExRjQ5NTc2Cis6MTAyMkIwMDBGNDk1NzZFMTAwMDFGRkZGNzY4MTAwMDA3NkUxMDAwMkVGCis6MTAyMkMwMDAwMDAwNzZFMTAwMDMwMEZGOEExMUZDMDA0QTExRjQ5NTNBCis6MTAyMkQwMDAxMzAzODgxMUZBNEQxMkVDNzEwMjAwMTJGMzEwMDAwMTgxCis6MTAyMkUwMDA4OTFBRjQ5NUYwNzIxMkVCNzA5MTAwMTI4QTExRkMwMEI5Cis6MTAyMkYwMDBGNDk1NEEwQjRBMEM0QTBERjdCOEVFRkUxMEY4MDAwOEE4Cis6MTAyMzAwMDAxMTA2RjFDMDgzMDBGNDg1MTEwNkY3ODU4MTA2RjZCODQxCis6MTAyMzEwMDBFQzBGMUUwNjYxMDA4MDAwRjgyMDEzMDVGNDg0RUUwMjI1Cis6MTAyMzIwMDA4QTBEOEEwQzhBMEJGQzAwRjQ5NTRBMEI0QTBDNEEwRDY0Cis6MTAyMzMwMDBFRUZFRjdCODgwMDAxMEY4MDAwOEY0ODUxMTA2Rjc4NTY2Cis6MTAyMzQwMDA4MTA2RjZCOEVDMEYxRTA2RjBGMDYxMDA4MDAwRjgyMDYwCis6MTAyMzUwMDAxMzIwRjQ4NEVFMDI4QTBEOEEwQzhBMEJGQzAwNEExMUM5Cis6MTAyMzYwMDA3NzExMDA3Qjc2ODEyRUVDNzcxMTAwN0JFRUZGNzE4MTc3Cis6MTAyMzcwMDAwMDExRUUwMTc2RTEwMDAxMDAwMDc2RTEwMDA0MDAwMEFBCis6MTAyMzgwMDA3NkUxMDAwNjAwMDA3NkUxMDA2MjAwMDA3NkUxMDA3NjZBCis6MTAyMzkwMDAwMDAwNzZFMTAwOTIwMDAwNzZFMTAwOTQwMDAwNzZFMTEyCis6MTAyM0EwMDAwMEIwMDAwMDc2RTEwMEIzMDAwMDc2RTEwMEJFMDAwMDVFCis6MTAyM0IwMDA3NkUxMDBCRjAwMDA3NkUxMDBDMTAwMDA3NkUxMDBDM0Q1Cis6MTAyM0MwMDAwMDAwNzZFMTAwQzUwMDAwNzZFMTAwQzcwMDAwNzY4MURDCis6MTAyM0QwMDAwMDAwOEExMUY0OTVGNEU0NEExMTRBMTY0QTE3RUVGRkY4Cis6MTAyM0UwMDBGNDk1NzEwNjAwMTZGQjgwMTZBMjg4MTdGNDk1RjdCOENECis6MTAyM0YwMDAxMEY4MDAxN0YwMTAwMDAyRkE0NjEzODg3NzExMDAwMDU5Cis6MTAyNDAwMDAxMEY4MDAxN0YwMTAwMDAyRjg0NTEzRjkxMEY4MDAxNzQzCis6MTAyNDEwMDBGODQ1MTQzOTEwRjgwMDE3RjAxMDAwMDFGODQ1MTQxRkEyCis6MTAyNDIwMDBGMDczMTQ1MjEwRjgwMDE3RjAxMDAwMDNGODQ1MTNEMzlFCis6MTAyNDMwMDAxMEY4MDAxN0YwMTAwMDA2Rjg0NDE0NTI3NzEyMDA3QkQxCis6MTAyNDQwMDA3MTgyMDAxNDYxRTQwMDA3MDA0MEY4MzAxNDUyNDkxNDBFCis6MTAyNDUwMDA0ODE3RjYwMDg4MTJGNDk1NzcxMzAwNTU3NzExMDA1NzQ2Cis6MTAyNDYwMDA2REVBMDAzQkU1MDExMEU2MDAwNjgwODE0ODE0MDBGOEEzCis6MTAyNDcwMDAwMDE3ODgxMkY0OTU3NzExMDA1NTEwRTIwMDQwODA4MTEyCis6MTAyNDgwMDA3NzExMDA1NzEwRTYwMDA3ODA4MTc3MTEwMDU1MTBFMkEwCis6MTAyNDkwMDAwMDQ1ODA4MTEwRTYwMDA4NzcxMTAwNTc4MDgxNzcxMTkwCis6MTAyNEEwMDAwMDU1MTBFMjAwNEE4MDgxNzcxMTAwNTcxMEU2MDAwOUJDCis6MTAyNEIwMDA4MDgxRjI3MzE0NTI3NzExMDNDMDc3MTIwMDdCMTA4MjZGCis6MTAyNEMwMDBGMDAwMDAwNzg4MTNGNDk1RjQ5NTk2MUJGODMwMTQ1MjI5Cis6MTAyNEQwMDAxMEUzMDAzNTc3MTIwMDU1ODA4Mjc3MTIwMDU3MTBFNjFFCis6MTAyNEUwMDAwMDA0ODA4Mjc3MTIwMDU1MTBFMzAwMzc4MDgyNzcxMjUzCis6MTAyNEYwMDAwMDU3MTBFNjAwMDU4MDgyNDgxMUYwNDAwMDEwRjI3MzhBCis6MTAyNTAwMDAxNDUwRjA0MDAwMjA3NzEyMDA3QjEwODJGMDAwMDAwNzhBCis6MTAyNTEwMDA4ODEyRjQ5NUY0OTU5NjBERjgzMDE0NTIxMEUyMDAzNEI4Cis6MTAyNTIwMDA3NzEzMDA1NTgwODM3NzEzMDA1NzEwRTYwMDAyODA4M0VECis6MTAyNTMwMDAxMEUyMDAzNjc3MTIwMDU1ODA4Mjc3MTIwMDU3MTBFNkJECis6MTAyNTQwMDAwMDAzODA4MjQ4MTFGMDQwMDAwNEYyNzMxNDUwRjA0MDAwCis6MTAyNTUwMDAwMDA4NzcxMjAwN0IxMDgyRjAwMDAwMDc4ODEyRjQ5NUMzCis6MTAyNTYwMDBGNDk1OTYwRUY4MzAxNDUyMTBFMjAwMzM3NzEyMDA1NUFECis6MTAyNTcwMDA4MDgyNzcxMjAwNTcxMEU2MDAwMTgwODI0ODExRjI3M0MyCis6MTAyNTgwMDAxNDUwRjA0MDAwMDI3NzEyMDA3QjEwODJGMDAwMDAwNzI4Cis6MTAyNTkwMDA4ODEyRjQ5NUY0OTU5NjBGRjgzMDE0NTIxMEUyMDAzMjM4Cis6MTAyNUEwMDA3NzEyMDA1NTc3MTMwMDU3ODA4MjQ4MTFFNzYyRjA0MDk4Cis6MTAyNUIwMDAwMDAxRTUwMTg4MTFGNDk1NzcxMjAwN0I0ODExNzE4MkMyCis6MTAyNUMwMDAwMDEyMUFFMjAwMDc4MEUyMDAwN0Y5ODAxNjlBRUUwMTc1Cis6MTAyNUQwMDA4QTE3NDgxMThBMTY4QTExRjRFNDRBMTE4ODExNzcwRTc1Cis6MTAyNUUwMDAwMDA1NzcxMjAwNTVFODA0RjZCODI4RTEwMDAyRUVGRjc2Cis6MTAyNUYwMDA4MDgyNzcxMjAwNTdGMDIwODAwMEVFMDExQTgyNzcxMjU1Cis6MTAyNjAwMDAwMDU3ODA4MkU4MDEzMkUxMDAwMkY1ODI3NzExMDA1NDIwCis6MTAyNjEwMDBGNjkzMTg4MTc3MTEwMDU0RjJBMDgwODE4QTExRjQ5NTA1Cis6MTAyNjIwMDBGNEU0NEExMTRBMTZGNDk1NzEwNDAwMTFGQjgwMTZBMkQ1Cis6MTAyNjMwMDA4ODE2RjQ5NTc3MTIwMDU1MTBFNjAwMDM4MDgyNzcxMjExCis6MTAyNjQwMDAwMDU2MTBFMTAwMDI3NzEzMDA1NjgwODI3NzEyMDA1NjgwCis6MTAyNjUwMDAxMEUxMDAwMzgwODIxMEUxMDAwNDc3MTIwMDU2ODA4MkFFCis6MTAyNjYwMDA3NzEyMDA1NjEwRTEwMDAxODA4MkU3MTJFNTAxRjk4MDNGCis6MTAyNjcwMDAxNjlBOEExNjhBMTFGNEU0NEExMTRBMTY0QTE3RUVGOTk0Cis6MTAyNjgwMDA3NzExMDA3Qjc2MDAwMDE2NzYwMTAwMTc3NjAyMDAxQTlCCis6MTAyNjkwMDA3NjAzMDAxQjc2MDQwMDFDNzYwNTAwMUQ3MTgxMDAxNzZGCis6MTAyNkEwMDA3MUU3MDAwNjAwMTExMDgxRjg0NDE0REZGOTgwMTY1MzE5Cis6MTAyNkIwMDBGNkI4RkI4MDE1ODVGMDIwRkZGRkY2QjhGQjgwMTYwODAyCis6MTAyNkMwMDBGMDIwRkZGRjc3MTEwMDdCNzE4MTAwMTc3NkU3MDAwNjhECis6MTAyNkQwMDAwMDAxNDgxNzc3MTYwMDAwNzcxMDAwMDQ3NzE1MDAwM0YzCis6MTAyNkUwMDA3NzE0MDAwMjc3MTMwMDAxRjAwMDAwMzk3NkU3MDAwODQ0Cis6MTAyNkYwMDAwMDFGNzZFNzAwMDcwMDAwODgwRTc3MUEwMDA1NDgxN0NDCis6MTAyNzAwMDBGMDAwMDAwOTg4MTI0ODE4ODgxOUU4MDBGMDcyMTUyQ0FBCis6MTAyNzEwMDA3MzE5MDAxMTc2ODIwMDAwMTE5MTczMTEwMDE5NzBFMjkzCis6MTAyNzIwMDAwMDAzMDAxNjcwRTIwMDA0MDAxMzcwRTIwMDA1MDAxNEJDCis6MTAyNzMwMDA4MUUyMDAwMTcwRTIwMDA2MDAxNTcwRTIwMDA3MDAxMDVGCis6MTAyNzQwMDA4MEUyMDAwMjczMEUwMDExRjEwMDAwMUU2REVFMDAwNTI0Cis6MTAyNzUwMDA2REVCMDAwNTZERUMwMDA1NkRFRDAwMDU2REU4MDAwNTA1Cis6MTAyNzYwMDBGMDAwMDAwMTgxOTE2REVBMDAwODczMTEwMDBFRUUwNzgwCis6MTAyNzcwMDA3NkU3MDA0MTAwMjQ3NkU3MDA0NjAwMjU3NkU3MDA0QjI3Cis6MTAyNzgwMDAwMDI2NzZFNzAwNTAwMDI3OEExNzhBMTY4QTExRjRFNDlCCis6MTAyNzkwMDA0QTExNEExNkVFRkU4ODExNTYwNjRFMDBGOTgwMTZBMjFFCis6MTAyN0EwMDBGN0I4MTBGODAwMTFGMDEwRkZGRkZBNDUxNTYwNzcxNjIyCis6MTAyN0IwMDBGRkZGNzcxMjAwN0I0OTExMTA4MkY2MDNGMDAwMDAwOTM5Cis6MTAyN0MwMDA4ODExRjQ5NUY0OTUxMDgxRjg0NDE1NzFGMjczMTU3MTIwCis6MTAyN0QwMDBGNDk1RTcxNjc3MTEwMDdCMTA4MUYwMDAwMDA5ODgxMTRECis6MTAyN0UwMDBGNDk1NzcxMjAwMDYxMDgxRjg0NTE1NUM2RUVBRkZGRjNDCis6MTAyN0YwMDAxNTY5NkRFOTAwMDg3Njg2MDAwMUU5MDE1NjAwRjE4MDRGCis6MTAyODAwMDAxMEY4MDAwQkY4NDUxNTdFRkI4MDE1ODVGNDk1NDgxNkU5Cis6MTAyODEwMDBGOTgwMTY5QUVFMDI0ODE2OEExNjhBMTFGNEU0NEExMUQzCis6MTAyODIwMDBFRUZGRkI4MDE2QTI4ODExRjQ5NTc3MTBGRkZGRjRBOTQ0Cis6MTAyODMwMDBGODMwMTVDNDEwRTEwMDAzNzcxMjAwNTU4MDgyNzcxMjNBCis6MTAyODQwMDAwMDU2NzY4MjAwMDA3NzEyMDA1Njc2ODIwMDAwNzcxMkRBCis6MTAyODUwMDAwMDU2NzY4MjAwMDA3NzEyMDA1Njc2ODIwMDAwNzcxMkNBCis6MTAyODYwMDAwMDU2NzY4MjAwMDAxMEUxMDAwMkYwMDAwMDA4MzJGODA1Cis6MTAyODcwMDAwMDA4NzcxMjAwNTRFODAxRjQ4MkY0OTMxODgyNzcxMjZBCis6MTAyODgwMDAwMDU0RjA0MDAwMDA4MDgyMTBFMTAwMDFGOTgwMTY3NkNCCis6MTAyODkwMDAxMEUxMDAwMUY5ODAxNjY2RjA3MzE2MDM3NzExMDA3QkQyCis6MTAyOEEwMDA3MTgxMDAxMTcxRTEwMDA3MDAxMjc2ODIwMDAwMTBFMUQxCis6MTAyOEIwMDAwMDA5Rjk4MDE1ODU3NzExMDA3QjcxODEwMDExMTBFMTA1Cis6MTAyOEMwMDAwMDA5RkI4MDE1ODVGMDAwMDAwODc3MTEwMDdCNzE4MUZECis6MTAyOEQwMDAwMDExMTBFMTAwMDlGQjgwMTU4NUYwMDAwMDEwNzcxMTUwCis6MTAyOEUwMDAwMDdCNzE4MTAwMTExMEUxMDAwOUZCODAxNTg1RjAwMDZCCis6MTAyOEYwMDAwMDE4NzcxMTAwN0I3MTgxMDAxMTEwRTEwMDA5RkI4MDQ1Cis6MTAyOTAwMDAxNTg1RjAwMDAwMjA3NzExMDA3QjcxODEwMDExMTBFMTI2Cis6MTAyOTEwMDAwMDA5RkI4MDE1ODVGMDAwMDAyOEY5ODAxNjlBRUUwMTY5Cis6MTAyOTIwMDA4QTExRjRFNDRBMTFFRUZGRkI4MDE2QTI4ODExRjQ5NTk3Cis6MTAyOTMwMDA3NzEwRkZGRkY0QTlGODMwMTY0MTc3MTEwMDU1NzY4MTIyCis6MTAyOTQwMDAwMDFFNzcxMTAwNTY3NjgxMDAwMDc3MTEwMDU2NzY4MUJGCis6MTAyOTUwMDAwMDAwNzcxMTAwNTY3NjgxMDAwMDc3MTEwMDU2NzY4MUNECis6MTAyOTYwMDAwMDAwNzcxMTAwNTY3NjgxMDAwMDc3MTEwMDU2NzY4MUJECis6MTAyOTcwMDAwMDAwNzcxMTAwNTY3NjgxMDAwMDc3MTEwMDU2NzY4MUFECis6MTAyOTgwMDAwMDAwNzcxMTAwNTY3NjgxMDAwMDc3MTEwMDU2RjI3MzJGCis6MTAyOTkwMDAxNjRFNzY4MTAwMDA3NzExMDA3QjcxODEwMDExNzFFMTg0Cis6MTAyOUEwMDAwMDA3MDAxMjc2ODIwMDAwMTBFMTAwMzlGOTgwMTYwODU1Cis6MTAyOUIwMDBGOTgwMTY5QUVFMDE4QTExRjRFNDRBMTE3NzExMDA3QjJFCis6MTAyOUMwMDAxMDgxRjAwMDAwMDQ4ODExRjQ5NUY0OTUxMDgxRkE0NDA4Cis6MTAyOUQwMDAxNjYzRjQ5NUVFRkY3NjgxMDAwMUVFMDE4QTExRjRFNEFFCis6MTAyOUUwMDBGMDEwMDAxMDRBMTEzMkY4MDAwOEVFRkY3NzExMDAwMUQ0Cis6MTAyOUYwMDBFODAxRUUwMUY0ODIxQTgxODA4MThBMTFGNDk1RjRFNEYxCis6MTAyQTAwMDBGMDEwMDAxMDRBMTEzMkY4MDAwOEVFRkZFODAxNzcxMUNCCis6MTAyQTEwMDAwMDAwRjQ4MkVFMDFGNDkzMTg4MTgwODE4QTExRjQ5NTBDCis6MTAyQTIwMDBGNEU0NEExMUYwMTAwMDEwNzcxMTAwMDAzMkY4MDAwOEE5Cis6MTAyQTMwMDBFRUZGMTE4MUU4MDFFRTAxNzcxMTAwMDBGNDgyRjJBMEFGCis6MTAyQTQwMDA4MDgxOEExMUY0OTVGNEU0RjI3MzE2OUVGNkJCRjQ5NTM2Cis6MTAyQTUwMDBGNDk1RjQ5NUY0OTVGNEU0RjI3MzE2QTZGN0JCRjQ5NUE3Cis6MTAyQTYwMDBGNDk1RjQ5NUY0OTVGNEU0NEExMTRBMTZGNDk1NzEwNDNBCis6MTAyQTcwMDAwMDE2RkI4MDE2QTI4ODExRjQ5NTcxRTEwMDA1MDAxMjgyCis6MTAyQTgwMDA3NjgyMDAwRTEwRTYwMDBFNzFFMTAwMDYwMDEyODA4MkQwCis6MTAyQTkwMDA3MUUxMDAwNTAwMTI3NjgyMDAwRDcxRTEwMDA2MDAxMjVFCis6MTAyQUEwMDAxMEU2MDAwRDgwODI3MUUxMDAwNTAwMTI3NjgyMDAwQ0I0Cis6MTAyQUIwMDAxMEU2MDAwQzcxRTEwMDA2MDAxMjgwODI3MUUxMDAwNTUxCis6MTAyQUMwMDAwMDEyNzY4MjAwMEIxMEU2MDAwQjcxRTEwMDA2MDAxMjg2Cis6MTAyQUQwMDA4MDgyNzFFMTAwMDUwMDEyNzY4MjAwMEE3MUUxMDAwNjMxCis6MTAyQUUwMDAwMDEyMTBFNjAwMEE4MDgyNzFFMTAwMDUwMDEyNzY4MjcxCis6MTAyQUYwMDAwMDA5MTBFNjAwMDk3MUUxMDAwNjAwMTI4MDgyNzFFMTEwCis6MTAyQjAwMDAwMDA1MDAxMjc2ODIwMDA4NzFFMTAwMDYwMDEyMTBFNjRFCis6MTAyQjEwMDAwMDA4ODA4MjcxRTEwMDA1MDAxMjc2ODIwMDA3MTBFNjRECis6MTAyQjIwMDAwMDA3NzFFMTAwMDYwMDEyODA4MjcxRTEwMDA1MDAxMkM5Cis6MTAyQjMwMDA3NjgyMDAwNjcxRTEwMDA2MDAxMjEwRTYwMDA2ODA4MjJGCis6MTAyQjQwMDA3MUUxMDAwNTAwMTI3NjgyMDAwNTcxRTEwMDA2MDAxMkI1Cis6MTAyQjUwMDAxMEU2MDAwNTgwODI3MUUxMDAwNTAwMTI3NjgyMDAwNDEzCis6MTAyQjYwMDA3MUUxMDAwNjAwMTIxMEU2MDAwNDgwODI3MUUxMDAwNUE4Cis6MTAyQjcwMDAwMDEyNzY4MjAwMDM3MUUxMDAwNjAwMTIxMEU2MDAwM0U1Cis6MTAyQjgwMDA4MDgyNzFFMTAwMDUwMDEyNzY4MjAwMDIxMEU2MDAwMkU4Cis6MTAyQjkwMDA3MUUxMDAwNjAwMTI4MDgyNzFFMTAwMDUwMDEyNzY4MjY4Cis6MTAyQkEwMDAwMDAxMTBFNjAwMDE3MUUxMDAwNjAwMTI4MDgyNzFFMTZGCis6MTAyQkIwMDAwMDA1MDAxMjc2ODIwMDAwNzFFMTAwMDYwMDEzRTc2MjUyCis6MTAyQkMwMDBFNTAxRjk4MDE2OUE4QTE2OEExMUY0RTQ0QTExODgxMUVGCis6MTAyQkQwMDBGNDk1RjQ5NTcxRTEwMDA1MDAxMkVFRkY3NjgyMDAwMDk1Cis6MTAyQkUwMDBFRTAxNzFFMTAwMDYwMDExNjk4MTAwMDE4QTExRjQ5NTdFCis6MTAyQkYwMDBGNEU0NEExMTg4MTFGNDk1RjQ5NTcxRTEwMDA1MDAxMjhFCis6MTAyQzAwMDBFRUZGNzY4MjAwMDFFRTAxNzFFMTAwMDYwMDExNjk4MTlDCis6MTAyQzEwMDAwMDAxOEExMUY0OTVGNEU0NEExMTc3MTEwMDdCMTA4MUM4Cis6MTAyQzIwMDBGMDAwMDA5NDg4MTFGNDk1RjQ5NTEwODFGQTQ0MTc5Q0YzCis6MTAyQzMwMDBGNDk1RUVGRkY5ODAxNjUzNzcxMTAwN0IxMDgxRjAwMEI4Cis6MTAyQzQwMDAwMDk0ODgxMUY0OTVGNDk1NzY4MTAwMDFFRTAxNzZFMTA3Cis6MTAyQzUwMDAwMDAxMDAwMDc2RTEwMDAyMDAyMTc2RTEwMDAzMDAyMDdGCis6MTAyQzYwMDA3NkUxMDAwNDAwMjM3NkUxMDAwNTAwMjI3NkUxMDAwNjBCCis6MTAyQzcwMDAwMDM4NzZFMTAwMDcwMDM5NzZFMTAwMDgwMDE1NzZFMUJBCis6MTAyQzgwMDAwMDA5MDAxNDc2RTEwMDBBMDAwMDc2RTEwMDBCMDA0MTIzCis6MTAyQzkwMDA3NkUxMDAwQzAwNDA3NkUxMDAwRDAwNDM3NkUxMDAwRTg1Cis6MTAyQ0EwMDAwMDQyNzZFMTAwMEYwMDQ4NzZFMTAwMTAwMDQ5NzZFMTJECis6MTAyQ0IwMDAwMDExMDAxQjc2RTEwMDEyMDAxQThBMTFGNDk1RjRFNDY5Cis6MTAyQ0MwMDA0QTExRUVGRDg4MTE1NjA2NEUwMEY5ODAxNkEyNzcxMkMxCis6MTAyQ0QwMDAwMDdCNzcwRTAwMDkxMDgyMjhGODAwMTFGMDAwMDA5NUEzCis6MTAyQ0UwMDA4ODExRjQ5NUY0OTUxMDgxRjg0NTE3RjBGMjczMTdGREVCCis6MTAyQ0YwMDA3NzExRkZGRjc2ODEwMDAxRTkwMTU2MDBGMTgwMTBGODlECis6MTAyRDAwMDAwMDBCRjg0NTE3RkRGQjgwMTgxMEY0OTU0ODExRjk4MDY5Cis6MTAyRDEwMDAxNjlBRUUwMzQ4MTE4QTExRjQ5NUY0RTQ0QTExODgxMUM5Cis6MTAyRDIwMDBGNDk1RUVGRjcxRTEwMDAxMDAxMUVFMDExMDgxOEExMUFFCis6MTAyRDMwMDBGNDk1RjRFNDRBMTFFRUZGRkI4MDE2QTI4ODExRjQ5NTk1Cis6MTAyRDQwMDA3NzEwRkZGRkY0QTlGODMwMThDMzcxRTEwMDA1MDAxMkY1Cis6MTAyRDUwMDA3NjgyMDAwMDcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMUM3Cis6MTAyRDYwMDAwMDA1MDAxMjc2ODIwMDAxNzFFMTAwMDYwMDEyNzY4MkYxCis6MTAyRDcwMDAwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMDI3MUUxMDAwNjk4Cis6MTAyRDgwMDAwMDEyNzY4MjAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwM0Q1Cis6MTAyRDkwMDA3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTEwMDA1MDAxMjY4Cis6MTAyREEwMDA3NjgyMDAwNDcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMTczCis6MTAyREIwMDAwMDA1MDAxMjc2ODIwMDA1NzFFMTAwMDYwMDEyNzY4MjlECis6MTAyREMwMDAwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMDY3MUUxMDAwNjQ0Cis6MTAyREQwMDAwMDEyNzY4MjAwMDE3MUUxMDAwNTAwMTI3NjgyMDAwNzgwCis6MTAyREUwMDA3MUUxMDAwNjAwMTI3NjgyMjAwMDcxRTEwMDA1MDAxMkY4Cis6MTAyREYwMDA3NjgyMDAwODcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMTFGCis6MTAyRTAwMDAwMDA1MDAxMjc2ODIwMDA5NzFFMTAwMDYwMDEyNzY4MjQ4Cis6MTAyRTEwMDAwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMEE3MUUxMDAwNkVGCis6MTAyRTIwMDAwMDEyNzY4MjAwMDA3MUUxMDAwNTAwMTI3NjgyMDAwQjJDCis6MTAyRTMwMDA3MUUxMDAwNjAwMTI3NjgyMDAwMDcxRTEwMDA1MDAxMkM3Cis6MTAyRTQwMDA3NjgyMDAwQzcxRTEwMDA2MDAxMjc2ODIwMDAwNzFFMUNBCis6MTAyRTUwMDAwMDA1MDAxMjc2ODIwMDBENzFFMTAwMDYwMDEyNzY4MkY0Cis6MTAyRTYwMDAwMDAwNzFFMTAwMDUwMDEyNzY4MjAwMEU3MUUxMDAwNjlCCis6MTAyRTcwMDAwMDEyNzY4MjAwMDAxMEUxMDAwN0Y5ODAxNjc2MTBFMTVBCis6MTAyRTgwMDAwMDA4Rjk4MDE2NzYxMEUxMDAwN0Y5ODAxNjY2MTBFMTU3Cis6MTAyRTkwMDAwMDA4Rjk4MDE2NjZGMDczMThEMTc3MTEwMDdCMTA4MTU1Cis6MTAyRUEwMDBGQjgwMTgxMEYwMDAwMDk1NzcxMTAwN0IxMDgxRkI4MEVCCis6MTAyRUIwMDAxODEwRjAwMDAwOUVGOTgwMTY5QUVFMDE4QTExRjRFNEQxCis6MTAyRUMwMDA0QTExODgxMUVFRkZGNDk1MTAwNDcxRTEwMDAzMDAxMTFFCis6MTAyRUQwMDBFRTAxODA4MThBMTFGNDk1RjRFNDRBMTE0QTE2RjQ5NUMyCis6MTAyRUUwMDA3MTA0MDAxNkZCODAxNkEyODgxMUY0OTU3MUUxMDAwMkFFCis6MTAyRUYwMDAwMDEyNzY4MjAwMTAxMEU2MDAwMTcxRTEwMDAzMDAxMjVBCis6MTAyRjAwMDA4MDgyNzFFMTAwMDQwMDEyMTBFNjAwMDI4MDgyRTc2MjE0Cis6MTAyRjEwMDA3MUUxMDAwMjAwMTNFNTAxRjk4MDE2OUE4QTE2OEExMTAwCis6MTAyRjIwMDBGNEU0NEExMTg4MTFFRUZGRUUwMTEwRTEwMDAxOEExMTZDCis6MTAyRjMwMDBGNDk1RjRFNDRBMTE3NzExMDA3QjEwODFGMDAwMDBCMzlFCis6MTAyRjQwMDA4ODExRjQ5NUY0OTUxMDgxRkE0NDE5MkFGNDk1RUVGRjRFCis6MTAyRjUwMDBGOTgwMTY1Mzc3MTEwMDdCMTA4MUYwMDAwMEIzODgxMUJGCis6MTAyRjYwMDBGNDk1RjQ5NTc2ODEwMDAxRUUwMTc2RTEwMDAxMDAwMDEwCis6MTAyRjcwMDA3NkUxMDAwMjAwMTM3NkUxMDAwMzAwMjY3NkUxMDAwNDBBCis6MTAyRjgwMDAwMDI1NzZFMTAwMDUwMDI0NzZFMTAwMDYwMDAwNzZFMUU4Cis6MTAyRjkwMDAwMDA3MDAxNzc2RTEwMDA4MDAzMjc2RTEwMDA5MDAzMUYxCis6MTAyRkEwMDA3NkUxMDAwQTAwMzA4QTExRjQ5NUY0RTQ0QTExNEExNkQ5Cis6MTAyRkIwMDA0QTE3RUVGRkY0OTU3MTA2MDAxN0ZCODAxNkEyODgxMUUwCis6MTAyRkMwMDBGNDk1RjdCODEwRjgwMDExRjAxMEZGRkZGQTQ1MTk3M0U3Cis6MTAyRkQwMDA3NzE2RkZGRjc3MTIwMDdCNzcwRTAwMDUxMDgyMjhGODI2Cis6MTAyRkUwMDAwMDExRjAwMDAwQjQ4ODExRjQ5NUY0OTUxMDgxRjg0NEI0Cis6MTAyRkYwMDAxOTg0RjI3MzE5ODRGNDk1RTcxNjc3MTEwMDdCMTA4MTE4Cis6MTAzMDAwMDBGMDAwMDBCNDg4MTFGNDk1NzcxMjAwMDIxMDgxRjg0NUExCis6MTAzMDEwMDAxOTZGNkVFQUZGRkYxOTdDNkRFOTAwMDU2MUY4MDAxNzcyCis6MTAzMDIwMDAwMDAxRkEyMDE5OEY3Njg2MDAwMUZCODAxOTk3RjQ5NTJDCis6MTAzMDMwMDA0ODE2Rjk4MDE2OUFFRTAxOEExNzQ4MTY4QTE2OEExMUUwCis6MTAzMDQwMDBGNEU0NEExMUVFRkZGQjgwMTZBMjg4MTFGNDk1NzcxMDg0Cis6MTAzMDUwMDBGRkZGRjRBOUY4MzAxOUNDNzFFMTAwMDIwMDEyNjk4Mjc3Cis6MTAzMDYwMDAwMDEwNzFFMTAwMDIwMDEyNjg4MkY3RkY3MUUxMDAwMkI2Cis6MTAzMDcwMDAwMDEyNjg4MkZCRkY3MUUxMDAwMjAwMTI2ODgyRkZGMDFCCis6MTAzMDgwMDA3MUUxMDAwMzAwMTI3NjgyRkZGRjcxRTEwMDA0MDAxMjdCCis6MTAzMDkwMDA3NjgyRkZGRjcxRTEwMDAyMDAxMjY5ODIwMDIwNzFFMTc3Cis6MTAzMEEwMDAwMDAyMDAxMUYyNzMxOURBNjg4MUZGRUY3NzExMDA3QkRCCis6MTAzMEIwMDAxMDgxRkI4MDE5OTdGMDAwMDBCNDc3MTEwMDdCMTA4MTFDCis6MTAzMEMwMDBGQjgwMTk5N0YwMDAwMEI5Rjk4MDE2OUFFRTAxOEExMTc5Cis6MTAzMEQwMDBGNEU0MDBBNDAwMDAxOURGMDAwMTJBRTYwMDAwMDAwMTZBCis6MTAzMEUwMDAyQUU3MDAwMDAwMDMyQTEyMEMwMUMzNEYwMDAwMDAwMTcwCis6MTAzMEYwMDAyQTE1MDAwMDAwMDIyQTE2MDAwMDAwMDAwMDE5MkE1REFGCis6MTAzMTAwMDAwMDQzMDA2RjAwNzAwMDc5MDA3MjAwNjkwMDY3MDA2ODdBCis6MTAzMTEwMDAwMDc0MDAyMDAwNTQwMDY1MDA2MzAwNjgwMDZFMDA2RkJBCis6MTAzMTIwMDAwMDU0MDA3MjAwNjUwMDZFMDA2NDAwMjAwMDQxMDA0N0ZBCis6MTAzMTMwMDAwMDAwMDAwNDJBNzYwMDMwMDAyRTAwMzAwMDAwMDAwQzUxCis6MTAzMTQwMDAyQTdBMDA0NjAwNjUwMDYyMDAyMDAwMzIwMDM3MDAyMDI1Cis6MTAzMTUwMDAwMDMyMDAzMDAwMzAwMDMxMDAwMDAwMDkyQTg2MDAzMUMyCis6MTAzMTYwMDAwMDM0MDAzQTAwMzMwMDM1MDAzQTAwMzMwMDMzMDAwMEU5Cis6MTAzMTcwMDAwMDBGMkE4RjAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMTg1Cis6MTAzMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAzMTkwMDAwMDAwMDAwMTJBOUUwMDAwMDAwMTJBOUYwMDAwMDAwMTlCCis6MTAzMUEwMDAyQUEwMDAwMDAwMDEyQUExMDAwMDAwMDEyQUEyMDAwMEJDCis6MTAzMUIwMDAwMDAxMjk3RTAwMDAwMDAyMjk4MDAwMDAwMDAwMDAwMUJCCis6MTAzMUMwMDAyOTgyRkZGRjAwMDEyQUE3MDAwMDAwMDUyQUE4NzE0MUZCCis6MTAzMUQwMDAyMDAwMjAwMDAwMjMwNDAwMDAwQTJBQUQwMDAwMDAwMEE3Cis6MTAzMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAzMUYwMDAwMDBGMkFCNzAwMDAwMDAwMDAwMDAwNDAwMEEwODI0MDNECis6MTAzMjAwMDAwMDA4MzA3RjAwODAwMTgwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTAzMjEwMDAwMDAwMDAwMTI3NkUwMDAwMDAwMTI3NkYwMDAwMDAwMDgxCis6MTAzMjIwMDAwMDA5MDAwMDFBODMwNEU4MDRDRjA0QzUwNEJBMDRCMEZFCis6MTAzMjMwMDAwNEFDMDQ5QzA0OEMwNDgxMDA3ODAwMDAwMTAwRjI3MzRCCis6MTAzMjQwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3M0E0Cis6MTAzMjUwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3Mzk0Cis6MTAzMjYwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3Mzg0Cis6MTAzMjcwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3Mzc0Cis6MTAzMjgwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzY0Cis6MTAzMjkwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzU0Cis6MTAzMkEwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzQ0Cis6MTAzMkIwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzM0Cis6MTAzMkMwMDAwN0FBRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzY5Cis6MTAzMkQwMDAwN0VGRjQ5NUY0OTVGMjczMDIyM0Y0OTVGNDk1RjI3M0U1Cis6MTAzMkUwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3MzA0Cis6MTAzMkYwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3M0Y0Cis6MTAzMzAwMDAwN0VGRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1RjI3M0UzCis6MTAzMzEwMDAwNUU1RjQ5NUY0OTVGMjczMDJCNUY0OTVGNDk1RjI3MzFFCis6MTAzMzIwMDAwRTMzRjQ5NUY0OTVGMjczMDdFRkY0OTVGNDk1MDAwMERECis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvdmljYW0vZmlybXdhcmUuSDE2IGIvZmlybXdhcmUvdmljYW0vZmlybXdhcmUuSDE2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhYzBjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS92aWNhbS9maXJtd2FyZS5IMTYKQEAgLTAsMCArMSw3IEBACis6MDAyNjAwMDAwMEI2QzMxRjAwMDI2NEU3NjdGREZGMEVDMEU3MDlERTAwOEUwMEMwMDk0MDAzQzAxNzQ0MDM0QkFGQzAwNzAwMDA0QkFGOTdDRjAwMDAxRAorOjAwMEEwMDAwMDBCNkMzMDMwMDAzNjQxODAwMDAwMEZCCis6MDAwODAwMDAwMEI2QzMwMTAwMDY2NDAwMDAxNAorOjA2OTYwMDAwMDBCNkMzOEYwNjAyNjRFNzA3MDAwMDA4QzBFNzA3MDAwMDNFQzBFNzA3NTQwMUFBMDBFNzA3QzgwNUI2MDBFNzA3NDIwMUQyMDBFNzA3N0MwMDE2MDBFNzA3NTYwMDE4MDBFNzA3MDYwMDkyQzBFNzA3MDAwMDFFQzBFNzA3RkZGRjIyQzBFNzA3MDQwMDI0QzBFNzA3RUMyNzI4QzBFNzA3MTYwMThFMDBFNzg3MDEwMDBFQzA5N0NGRDcwOTAwQzBFNzc3MDEwMDkyQzAwOUMxRTcwOUZFMDUyNDAxRTcwOTA0MDYyNjAxRTcwNzA3MDA5MkMwRTcwNTAwQzBDMERGOTdDRjE3MDA1NzAwMTcwMkQ3MDkwMEMwRTc3NzAxMDA5MkMwMEFDMUU3NTdGRkZGRkEwNTBEQzBFNzU3MDAwMEZBMDUwRkMwOUZBRkM2MDBFNzA1MDBDMEM4MDVDMTA1QzAwNUMwREY5N0NGMjdEQUZBMDVFRjA3MDEwMDBCMDY3M0NGOUZBRjc4MDE5RkFGMUEwMzZFQ0ZFNzA5RkMwNTI0MDFFNzA5MDIwNjI2MDFFNzA3MDcwMDkyQzBFNzA5RkMwNUZFMDVFNzA5MDIwNjA0MDZFNzA5MDAwNkZDMDVFNzA5RkUwNTAwMDYyN0RBRkEwNUU3NTcwMTAwRkEwNTAyQ0EwNEMwOTdDRjlGQUY2NjA1OTdDRkU3MDc0MDAwMDIwNkM4MDlGQzA1OUZBRkRBMDI5N0NGQ0YxNzAyMDBFRjU3ODEwMDA5MDY5RkEwQjYwMUVGNTc4MDAwMDkwNjlGQTA0MDAyRUY1NzAxMDAwQjA2OUZBMDQ2MDNFNzA3MDEwMDBBQzA0NkFGNDdBRjlGQUY0MDAyRTcwNzJFMDAwQUMwRUY4NzgwMDAwOTA2OTdDRjAwMEUwMTAwQzA1NzUxMDA5RkMwOUUwMkMwNTc1MDAwMjBDMEMwNTc1NTAwMTJDMEMwNTc1NjAwOUZDMDcyMDI5RkNGRDYwMkMxMEIwODA2MDFEMDZGOTAwODA2QzAwNzA4MDBDMTBCMDgwNjlGQUYyODA1OTdDRjJGMEUwMjAwMDgwNkMwMDcwODAwQzEwQjA4MDY5RkFGMjgwNTlGQ0ZENjAyMkYwRTAyMDAwOTA2RUY4NzgwMDAwOTA2OUZDRkQ2MDJFRjY3N0ZGRjA5MDZFNzY3RkZGRDIyQzBFNzY3RUZGRjI0QzBFNzg3MTAwMDI4QzA5RkFGQjgwNUU3ODdFMDIxMjRDMDlGQUZBODA1RTc4NzA4MDAyNEMwRTc2N0RGRkYyNEMwQzgwNzBBMDBDMDA3MDAwMEMxMDcwMTAwOUZBRjI4MDU5RkFGQjgwNUMwMDc5RTAwOUZBRjQ0MDVFNzY3RkZGRTI0QzBDMDA5MjBDMEU3ODcwMDAxMjRDMEMwNzcwMDAyMEZDMUU3NjdGN0ZGMjRDMEU3NjdGN0ZGMjRDMEU3ODcwODAwMjRDMDA4REE1RUMxRUYwNzgwMDAwOTA2OTdDRkVGMDcwMTAwMEEwNjk3Q0ZFRjA3MDAwMDBCMDZFRjA3MDAwMDBBMDZFRjY3N0ZGRjA5MDZFRjA3MDAwMDBEMDZFNzY3RUZGRjI4QzBFNzY3MTdEODI0QzBFNzA3MDAwMDFFQzBFNzA3RkZGRjIyQzA5N0NGQzgwNzBFMDY5RkFGREEwMkU3MDcwMDAwRjIwNUU3MDcxMDAwRjYwNUU3MDcwRTA2RjQwNUU3MDdENjAyRjgwNUM4MDdGMjA1QzEwNzAwODA1MEFGOTdDRjJGMEMwMjAwMDcwNjJGMEMwNDAwMDYwNkU3MDcwMDAwRjIwNUU3MDcxMDAwRjYwNUU3MDdFMjA1RjQwNUU3MDdDRTAyRjgwNUM4MDdGMjA1QzEwNzAwODA1MUFGOTdDRjlGQUY2NjA0OUZBRjFBMDM1OUFGOTdDRkMwMDcwRTAwQzEwQjBDMDY0MUQxOUZBRjI4MDVDMDA3M0MwMDlGQUY0NDA1NjgwMEMwMDczQjAwOUZBRjQ0MDU2RjAwMEMwNjY4MDBFMDA3MDQwMUU4MEIwQTA2RTgwNzAwMDBFMDA3MDAwMkUwMDdFQzAxRTAwN0ZDRkY5N0NGRTcwN0ZGRkZGQTA1RUYwNzAwMDAwQjA2RTcwNzBFMDYyNDAxRTcwNzBFMDZGRTA1RTcwNzQwMDAyNjAxRTcwNzQwMDAwNDA2RTcwNzA3MDA5MkMwOTdDRkVGMDcwMjAwMEIwNjlGQUY3ODAxRUY3NzgwMDAwNzA2OUZDMDE0MDRFRjc3MDEwMDA3MDYzN0MwRUY3NzAxMDAwRDA2MEZDMUVGMDcwMTAwMEQwNkMwMDcwMjAwQzEwNzMwMDA5RkFGMjgwNUMwMDcwMTAwQzEwNzAyMDA5RkFGMjgwNUM4MDdGRjRGOUZBRkE4MDVDMDA3MzgwMDlGQUY0NDA1QzE3NzAzMDAwMkMxMDhEQTc1QzFDMTc3MDEwMDBBQzFDMDA3MDEwMEMxMDcwMjAwOUZBRjI4MDVFRjA3MDEwMDA2MDYyQ0NGQzAwNzAxMDBDMTA3MDQwMDlGQUYyODA1RUYwNzAwMDAwNjA2MjJDRkVGMDcwMDAwMEQwNkVGNTcwMTAwMDYwNjFCQzBDMDA3MDEwMEMxMDcwMTAwOUZBRjI4MDVDMDA3MDIwMEMxMDczMDAwOUZBRjI4MDVDODA3RkY0RjlGQUZBODA1QzAwNzM4MDA5RkFGNDQwNUMxNjcwMzAwQzE1NzAzMDAwMkMwMDhEQTczQzFDMDA3MDIwMEMxMDcxMjAwRUY1NzAwMDAwNjA2MDJDMEMxMDcyMzAwOUZBRjI4MDVDMDA3MTQwMEMxMEJFQTA1OUZBRjI4MDVDMDA3M0UwMDlGQUYwQTA1RTcwOUU0MDVGQTA1MjdEOEZBMDVFNzA3MEUwNkZDMDVFNzA3NEUwNjAwMDZFNzA3NDAwMDAyMDY5RkFGNjYwNTlGQUZDNjAwOTdDRkMxMEJFMjA1NDFEMDAxRDJDMTE3MjMwMDlGQUZEQzA0QzAwNzA0MDBDMTBCRTMwNTlGQUYyODA1QzAwNzA2MDBDMTA5RTYwNTlGQUYyODA1QzAwNzA3MDBDMTA5RTYwNUMxRDE5RkFGMjgwNUMwMDcwQjAwQzEwOUU4MDU5RkFGMjgwNUMwMDcwQzAwQzEwOUU4MDVDMUQxOUZBRjI4MDVDMDA3MEQwMEMxMDcwOTAwOUZBRjI4MDVDMDA3MDMwMEMxMDczMjAwOUZBRjI4MDVDMDA3MEYwMEMxMDcwMDAwOUZBRjI4MDU5N0NGRTc2N0ZGRDkyNEMwQzgwNzBBMDA0MDAwQzA2NzAwMDIyNzgwMjRDMEU3ODcwMDA0MjRDMEU3NjdGRkY5MjRDMDAxRDIwOERBNzJDMUU3ODcwMDIwMjRDMDk3Q0YyNzAwMUVDMEU3ODdGRjAwMjJDMEU3Njc3RkZGMjRDMEU3ODc4MDAwMjRDMEU3ODc4MDAwMjRDMDk3Q0Y5RkFGMEEwNTY3MDAxRUMwRTc2N0JGRkYyNEMwRTc4NzQwMDAyNEMwRTc4NzQwMDAyNEMwOTdDRjlGQUYwQTA1RTc2NzAwRkYyMkMwRTc2N0ZGRkUyNEMwRTc2N0ZGRkUyNEMwQzEwOTIwQzBFNzg3MDAwMTI0QzA5N0NGQzAwNzQwMDBDODA5RkMwNUU3NjcwMEZGMjJDMEU3NjdGRkZFMjRDMEU3NjdCRkZGMjRDMEU3NjdCRkZGMjRDMDAwREFFODA5MjBDMEU3ODc0MDAwMjRDMEU3ODc0MDAwMjRDMDAwREFFODA5MjBDMDZEQzFFNzg3MDAwMTI0QzA5N0NGRTcwNzMyMDAxMkMwRTc3NzAwODAxMkMwN0NDMDk3Q0ZFNzA3MjA0RTEyQzBFNzc3MDA4MDEyQzA3Q0MwOTdDRjA5MDIxOTAwMDEwMTAwODA5NjA5MDQwMDAwMDEwMDAwMDAwMDA3MDU4MTAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjAxMzYwMDAwMDBCNkMzMkYwMTAzNjQwRTAwMTQwMDFBMDAyMDAwMjYwMDRBMDA2NDAwNkEwMDkyMDA5QTAwQTAwMEIyMDBCODAwQkUwMEMyMDBDODAwQ0UwMERDMDBEQTAwRTIwMEUwMDBFODAwRTYwMEVFMDBFQzAwRjIwMEY4MDAwMjAxMEEwMTBFMDExMjAxMUUwMTIyMDEyODAxMkMwMTMyMDEzNjAxNDQwMTUwMDE1RTAxNzIwMTc2MDE3QTAxODAwMTg4MDE4QzAxOTQwMTlDMDFBMDAxQTQwMUFBMDFCMDAxQjQwMUJBMDFEMDAxREEwMUY2MDFGQTAxMDIwMjM0MDIzQzAyNDQwMjRBMDI1MDAyNTYwMjc0MDI3ODAyN0UwMjg0MDI4QTAyODgwMjkwMDI4RTAyOTQwMkEyMDJBODAyQUUwMkI0MDJCQTAyQjgwMkMwMDJCRTAyQzQwMkQwMDJENDAyRTAwMkU2MDJFRTAyRjgwMkZDMDIwNjAzMUUwMzI0MDMyODAzMzAwMzJFMDMzQzAzNEEwMzRFMDM1NDAzNTgwMzVFMDM2NjAzNkUwMzdBMDM4NjAzOEUwMzk2MDNCMjAzQjgwM0M2MDNDQzAzRDQwM0RBMDNFODAzRjQwM0ZDMDMwNDA0MjAwNDJBMDQzMjA0MzYwNDNFMDQ0NDA0NDIwNDQ4MDQ0RTA0NEMwNDU0MDQ1MjA0NUEwNDVFMDQ2MjA0NjgwNDc0MDQ3QzA0ODAwNDg4MDQ4QzA0OTQwNDlBMDRBMjA0QTYwNEFFMDRCNDA0QzAwNENDMDREODA0MkEwNTQ2MDU2QzA1MDAwMDVFCis6MDAwODAwMDAwMEI2QzMwMTAwMDY2NDAwMDAxNAorOjAwMDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZmlybXdhcmUvd2hpdGVoZWF0LkhFWCBiL2Zpcm13YXJlL3doaXRlaGVhdC5IRVgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRhZTYwMgotLS0gL2Rldi9udWxsCisrKyBiL2Zpcm13YXJlL3doaXRlaGVhdC5IRVgKQEAgLTAsMCArMSwxMDk3IEBACis6MDMwMDAwMDAwMjk3RTM4MQorOjAzMDAwMzAwMDIxMzEyRDMKKzowMzAwMEIwMDAyMEJCNTMwCis6MDMwMDMzMDAwMjA4MUNBNAorOjAzMDA0MzAwMDIwQTAwQUUKKzowMzAwNUIwMDAyODMzQkUyCis6MTAwMzcwMDA5MDdGRTlFMDcwMDMwMjA0NzMxNDcwMDMwMjA0RTcyNDIxCis6MTAwMzgwMDBGRTcwMDMwMjA1NEYyNEZCNzAwMzAyMDQ2NDE0NzAwMzIzCis6MTAwMzkwMDAwMjA0NTIxNDcwMDMwMjA0M0ExNDcwMDMwMjA0NDkyNDQ0Cis6MTAwM0EwMDAwNTYwMDMwMjA1OUU5MDdGRUJFMDI0RkU2MDE2MTQ2MDVBCis6MTAwM0IwMDAzNjI0MDI3MDdCNzQxMjkwN0ZENEYwNzQwMDkwN0ZENTQ1Cis6MTAwM0MwMDBGMDAyMDVBNTkwN0ZFQUUwRkYxMjBBOTlFQTQ5NjAwRDY0Cis6MTAwM0QwMDBFQTkwN0ZENEYwRTk5MDdGRDVGMDAyMDVBNTkwN0ZCNDM0Cis6MTAwM0UwMDBFMDQ0MDFGMDAyMDVBNTkwN0ZFQUUwRkYxMjBBNThFQTE2Cis6MTAwM0YwMDA0OTYwMzMxMkEyM0JGNTRFOTA3RkVFRTBGRkU1NEVEMzBECis6MTAwNDAwMDA5RjQwMDNFMEY1NEVFNTRFRDM5NDQwNDAwMzc1NEU0MEM3Cis6MTAwNDEwMDBBRTAyQUYwMTdDN0Y3RDAwQUI0RTEyOTEzNzkwN0ZCNTZECis6MTAwNDIwMDBFNTRFRjAwMjA1QTU5MDdGQjRFMDQ0MDFGMDAyMDVBNTc5Cis6MTAwNDMwMDA5MDdGQjRFMDQ0MDFGMDAyMDVBNTkwN0YwMEU1MjFGMDMzCis6MTAwNDQwMDA5MDdGQjU3NDAxRjAwMjA1QTU5MDdGRUFFMEY1MjEwMkU2Cis6MTAwNDUwMDAwNUE1OTA3RkVBRTBGNTM1RDIwMjQzODgxMEQyRUJEMkIxCis6MTAwNDYwMDBBODAyMDVBNTkwN0YwMEU1MzVGMDkwN0ZCNTc0MDFGMEY2Cis6MTAwNDcwMDAwMjA1QTU5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjA3Cis6MTAwNDgwMDA3MDVCQTIwMEU0MzNGRjI1RTBGRkEyMDVFNDMzNEY5MDQ4Cis6MTAwNDkwMDA3RjAwRjBFNEEzRjA5MDdGQjU3NDAyRjAwMjA1QTVFNEJDCis6MTAwNEEwMDA5MDdGMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA1QTU5MDU0Cis6MTAwNEIwMDA3RkVDRTBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNTc1Cis6MTAwNEMwMDBFMDI0QjRGNTgyRTQzNDdGRjU4M0UwNTQwMTkwN0YwMEFBCis6MTAwNEQwMDBGMEU0QTNGMDkwN0ZCNTc0MDJGMDAyMDVBNTkwN0ZCNDFDCis6MTAwNEUwMDBFMDQ0MDFGMDAyMDVBNTkwN0ZFOEUwMjRGRTYwMUQyNEIxCis6MTAwNEYwMDAwMjYwMDMwMjA1QTU5MDdGRUFFMEI0MDEwNUMyMDAwMjk0Cis6MTAwNTAwMDAwNUE1OTA3RkI0RTA0NDAxRjAwMjA1QTU5MDdGRUFFMEU0Cis6MTAwNTEwMDA3MDM0OTA3RkVDRTBGRjU0MDdGRUY1NEVFRjMwRTcwM0I4Cis6MTAwNTIwMDA0MzRFMTA5MDdGRDdFNTRFRjBFNTRFNDQyMEYwRUZGNEI3Cis6MTAwNTMwMDA1NDgwRkRDNDU0MEYyRTI1RTAyNEI0RjU4MkU0MzQ3RkFBCis6MTAwNTQwMDBGNTgzRTRGMDgwNUY5MDdGQjRFMDQ0MDFGMDgwNTY5MDQyCis6MTAwNTUwMDA3RkU4RTAyNEZFNjAxODI0MDI3MDRBOTA3RkVBRTBCNDRECis6MTAwNTYwMDAwMTA0RDIwMDgwM0Y5MDdGQjRFMDQ0MDFGMDgwMzY5MEQ3Cis6MTAwNTcwMDA3RkVBRTA3MDIwOTA3RkVDRTBGNDU0ODBGRkM0NTQwRkQ5Cis6MTAwNTgwMDBGRkUwNTQwNzJGMjVFMDI0QjRGNTgyRTQzNDdGRjU4MzlGCis6MTAwNTkwMDA3NDAxRjA4MDEwOTA3RkI0RTA0NDAxRjA4MDA3OTA3RkY4Cis6MEMwNUEwMDBCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjBBRAorOjAxMDVBQzAwMjIyQworOjEwMDVBRDAwNzU0QUZGNzU0OUZGNzU0ODBGNzU0NzAwRDIwM0MyMDY5RQorOjEwMDVCRDAwQzIwMkMyMDBDMjA1QzIwMTkwMDMwMDc0MTlGMEU0OTA5QQorOjEwMDVDRDAwMDFCQ0YwQzIwNDkwMDFDMEYwQTNGMEMyQUZDMkE4MTJFQQorOjEwMDVERDAwMEMyMkU0OTAwMkFGRjA5MDAxQkRGMDkwMDEwMEYwQTM2OQorOjEwMDVFRDAwRjBBM0YwQTNGMEEzRjBBMzc0MTBGMEEzNzQwMUYwQTM5MworOjEwMDVGRDAwNzQwOEYwN0UwMTdGMDAxMjE5QzE3NTRDMTI3NTREMEFGOQorOjEwMDYwRDAwOTAwMTBCRTBGRjA1NERFNTREQUM0QzcwMDIwNTRDMTQwRgorOjEwMDYxRDAwRjU4MjhDODNFRkYwOTAwMTBDRTA0NDgwRkYwNTRERTVGMQorOjEwMDYyRDAwNERBQzRDNzAwMjA1NEMxNEY1ODI4QzgzRUZGMDkwMDFBQgorOjEwMDYzRDAwMERFMEZGMDU0REU1NERBQzRDNzAwMjA1NEMxNEY1ODJGNworOjEwMDY0RDAwOEM4M0VGRjA5MDAxMEVFMEZGMDU0REU1NERBQzRDNzA0NQorOjEwMDY1RDAwMDIwNTRDMTRGNTgyOEM4M0VGRjA5MDEyMEFFNDkzRkY5RgorOjEwMDY2RDAwNzQwMTkzOTAwMTFDQ0ZGMEEzRUZGMDkwMDExQ0UwRkZGQgorOjEwMDY3RDAwQTNFMEZFRUY2RUZGOTAwMTFDRjBBM0UwNkZGRkYwOTA4MgorOjEwMDY4RDAwMDExQ0UwNkZGMEUwRkVBM0UwRkZFNEZDRkQ3NTUyMTBFRAorOjEwMDY5RDAwNzU1MzAyNzU1NDEyNzU1NUFDMTI5NDI2NzU0QzEyNzUxRQorOjEwMDZBRDAwNERCMjkwMDEwREUwRkYwNTRERTU0REFDNEM3MDAyMDVDRQorOjEwMDZCRDAwNEMxNEY1ODI4QzgzRUZGMDkwMDEwRUUwRkYwNTRERTVCMworOjEwMDZDRDAwNERBQzRDNzAwMjA1NEMxNEY1ODI4QzgzRUZGMDkwN0Y4RAorOjEwMDZERDAwOTJFMEZGQzQ1NDBGMjQ0MUZGMDU0REU1NERBQzRDNzAyNQorOjEwMDZFRDAwMDIwNTRDMTRGNTgyOEM4M0VGRjAwNTRERTU0REFFNENCMworOjEwMDZGRDAwNzAwMjA1NEMxNEY1ODI4RTgzRTRGMDc1ODIxMDc1ODNCQgorOjEwMDcwRDAwMDFFMEZDQTNFMEZEQTNFMEZFQTNFMEZGOTAwMTE4MTJDMQorOjEwMDcxRDAwQTNFRTdFMDE3RjE4MTI4NkJFOTAwMTE4RTBGQ0EzRTBDNworOjEwMDcyRDAwRkRBM0UwRkVBM0UwRkY3NTUyMEE3NTUzMDY3NTU0MTI0MgorOjEwMDczRDAwNzU1NUI4MTI5NDI2RDJFODQzRDgyMDkwN0ZBQjc0RkYzQworOjEwMDc0RDAwRjA1MzkxRUY5MDdGQUZFMDQ0MDFGMDkwN0ZBRUUwNDQyNQorOjEwMDc1RDAwMUZGMEQyQUYyMDAxMkUyMDAxMkJBMjAzOTIwNzEyMDkwOAorOjEwMDc2RDAwQzU3NTQ2NTA3NTQ1NkQ3NTQ0MzM3NTQzMDAyMDAxRTREQworOjEwMDc3RDAwN0ZGRjdFRkY3REZGN0NGRjc4NDMxMkEzRDdFQzRENEVBQworOjEwMDc4RDAwNEY2MEQxODBFODMwMDEwNTEyMDM3MEMyMDEzMDA2MEFCNgorOjEwMDc5RDAwMTIwOUZCNTAwMzEyMEFFOEMyMDYxMjk2NUU5MDAxQkRDMworOjEwMDdBRDAwRTA2MDBDMTI5MjAxRTQ5MDAxQkRGMDkwN0ZEM0YwOTBDNworOjEwMDdCRDAwMDJBRkUwQjQwRjAzMTI5OUI5MTJBMDk1RTRGRjc0MDFEMgorOjEwMDdDRDAwQTgwNzA4ODAwMkMzMzNEOEZDRkU5MDAxQkNFMDVFNjAzMAorOjEwMDdERDAwMTQ3NDI4MkZGOEU2RDM5NDBBNDAwNDdFMDE4MDAyN0UxQgorOjEwMDdFRDAwMDA4RTRCODAwMzc1NEIwMTc0NjgyRkY1ODJFNDM0MjAyNQorOjEwMDdGRDAwRjU4M0U1NEJGMDBGQkYwNEM1RTUyQ0QzOTQwQTQwMDRGNworOjBFMDgwRDAwN0YwMTgwMDI3RjAwOTAyMDZDRUZGMDAyMDc5MkM2Cis6MDEwODFCMDAyMkJBCis6MDQwODFDMDA1M0Q4RUYzMjhDCis6MTAwODIwMDBFNTMzQzM5NDAxNDAwRTkwN0Y5M0UwNDQzMEYwOTA3RjE1Cis6MTAwODMwMDA5NUUwNDRDMEYwN0ZGNDdFMDExMjA5QUU5MDdGOTZFMDBGCis6MTAwODQwMDA1NEZFRjA3RjBBN0UwMDEyMDlBRTkwN0Y5NkUwNDQwOEM1Cis6MTAwODUwMDBGMDdGMDU3RTAwMTIwOUFFOTA3Rjk2RTA1NEZCRjA3RjlBCis6MTAwODYwMDAwNTdFMDAxMjA5QUVFNTMzQzM5NDAxNTAwRTdGMDI3RDcwCis6MTAwODcwMDBGRjEyODJFQTdGMDU3RTAwMTIwOUFFOTA3Rjk2RTA0NDY3Cis6MTAwODgwMDAwMkYwRTA1NDdGRjA3RjA1N0UwMDEyMDlBRTkwN0Y5NjYzCis6MTAwODkwMDBFMDQ0NDBGMDdGMDU3RTAwMTIwOUFFOTA3Rjk2RTA1NDYwCis6MTAwOEEwMDBCRkYwN0YzMjdFMDAxMjA5QUU5MDdGOTZFMDQ0NDBGMEE4Cis6MDgwOEIwMDA3RjMyN0UwMDEyMDlBRTIyMjYKKzoxMDA4QjgwMDkwN0Y5NkUwNTRGREYwRTA0NDgwRjA3RjBBN0UwMDEyQkQKKzoxMDA4QzgwMDA5QUVFNTMzQzM5NDAxNTAwRTdGMDJFNEZEMTI4MkVBQkIKKzoxMDA4RDgwMDdGMDU3RTAwMTIwOUFFOTA3Rjk2RTA1NEJGRjA3RjA1MzkKKzoxMDA4RTgwMDdFMDAxMjA5QUU5MDdGOTZFMDQ0MDRGMDdGMDU3RTAwRkEKKzoxMDA4RjgwMDEyMDlBRTkwN0Y5NkUwNTRGN0YwN0YwNTdFMDAxMjA5NEEKKzoxMDA5MDgwMEFFOTA3Rjk2RTA0NDAxRjA3RjA1N0UwMDEyMDlBRUU1QzcKKzoxMDA5MTgwMDMzQzM5NDAxNDAwRTkwN0Y5M0UwNTRDRkYwOTA3Rjk1QkQKKzowODA5MjgwMEUwNTQzRkYwMTIwQjAwMjIyNQorOjEwMDkzMDAwOTAwQUY0RTQ5MzcwNzY5MDdGOTM3NDMwRjA5MDdGOTRGMworOjEwMDk0MDAwNzQzQ0YwOTA3Rjk1NzRDNkYwN0YwQTdFMDAxMjA5QUU2OQorOjEwMDk1MDAwRTQ5MDdGOUNGMDkwN0Y5Njc0MDhGMDkwN0Y5Qzc0Q0YxOQorOjEwMDk2MDAwRjA3RjBBN0UwMDEyMDlBRTkwMjA3MEUwRkZDNDU0MEZBMQorOjEwMDk3MDAwRjUzM0MzOTQwMTUwMDc5MDdGOTZFMDQ0ODBGMEU0OTBGMworOjEwMDk4MDAwN0Y5N0YwOTA3RjlENzQwMkYwRTUzM0MzOTQwMTQwMEI5NAorOjEwMDk5MDAwRTQ5MDdGOThGMDkwN0Y5RTc0QzBGMDkwN0ZFMjc0MTI5NAorOjBFMDlBMDAwRjAxMjA4MjA3NTgyRjQ3NTgzMEE3NEZGRjAyMkFECis6MTAwOUFFMDA4RTVEOEY1RUU1NUUxNTVFQUU1RDcwMDIxNTVENEU2MDBFCis6MDcwOUJFMDAwNTEyMDlFQTgwRUUyMjk4Cis6MTAwOUM1MDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAwNzA0RTA0NEEzCis6MTAwOUQ1MDAwMkYwN0ZEMDdFMDcxMjA5QUU5MDdGRDZFMDU0RjdGMDgzCis6MDUwOUU1MDBFMDQ0MDRGMDIyRDMKKzoxMDA5RUEwMDc0MDBGNTg2OTBGREE1N0MwNUEzRTU4MjQ1ODM3MEY5MjAKKzowMTA5RkEwMDIyREEKKzowNTA5RkIwMDEyMDhCOEQzMjIzMAorOjEwMEEwMDAwMDIwQzRFMDAwMjBDODEwMDAyMEM2NjAwMDIwQ0MwMDBCOQorOjEwMEExMDAwMDIwQ0FBMDAwMjBBRUQwMDAyMEFFRTAwMDIwQUVGMDAzMAorOjEwMEEyMDAwMDIwQ0RCMDAwMjBEQ0IwMDAyMEQxNzAwMDIwRTJCMDBBMgorOjEwMEEzMDAwMDIwRDUzMDAwMjBFOEIwMDAyMEQ4RjAwMDIwRUVCMDAyMAorOjEwMEE0MDAwMDIwQUYwMDAwMjBBRjIwMDAyMEFGMTAwMDIwQUYzMDBCMAorOjA4MEE1MDAwMDIwRjRCMDAwMjBGNjEwMEQwCis6MDIwQTU4MDA4RjRGQkUKKzoxMDBBNUEwMEU0RjU1MDc1NTFGRjc1NTIxMjc1NTM2QUFCNTFBQTUyOUIKKzoxMDBBNkEwMEE5NTM5MDAwMDExMkEyNTRCNDAzMURBRjUwMDU1MEVGRDAKKzoxMDBBN0EwMEI1NEYwMTIyMTJBMjNCN0UwMDI5RkZFRTNBQTkwNzc1NjMKKzowRTBBOEEwMDUxRkZGNTUyODk1MzgwRDQ3QjAwN0EwMDc5MDAyOQorOjAxMEE5ODAwMjIzQgorOjEwMEE5OTAwRTRGRTc1NTFGRjc1NTIxMjc1NTMxMkFCNTFBQTUyQTk1MgorOjEwMEFBOTAwNTM5MDAwMDExMkEyNTQ2NDAyNzAyREFEMDYwRUVEQjVFQgorOjEwMEFCOTAwMDcwMTIyOTAwMDAyMTJBMkFEODVGMDRGRjU1MDYyNEY1NgorOjEwMEFDOTAwRTU0RjYyNTBFNTUwNjI0RjI5RkRFNTRGM0FBOTA1NzU5QQorOjBFMEFEOTAwNTFGRkY1NTI4OTUzODBDMzdCMDA3QTAwNzkwMEVCCis6MDEwQUU3MDAyMkVDCis6MDUwQUU4MDAxMjA4MjBEMzIyREEKKzowMTBBRUQwMDMyRDYKKzowMTBBRUUwMDMyRDUKKzowMTBBRUYwMDMyRDQKKzowMTBBRjAwMDMyRDMKKzowMTBBRjEwMDMyRDIKKzowMTBBRjIwMDMyRDEKKzowMTBBRjMwMDMyRDAKKzowMzBBRjQwMDAwMDQwN0Y0Cis6MDkwQjAwMDA5MDdGRDZFMDQ0ODBGMDgwNzQ3RgorOjEwMEI3RDAwNDM4NzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjI3QgorOjEwMEI4RDAwNTM4RUY3RTU4OTU0RjE0NDAxRjU4OTc1OENCMUQyQTlERAorOjEwMEI5RDAwNzU5ODQwNzVDQkZGNzVDQUYzNzVDODM0RTRGRjdGMDVCMgorOjA3MEJBRDAwNzgyOEU0RjYwOERGRkNFNAorOjAxMEJCNDAwMjIxRQorOjEwMEJCNTAwQzBFMEMwODNDMDgyQzBEMDc1RDAwMEMwMDBDMDA2QzBGMAorOjAxMEJDNTAwMDcyOAorOjEwMEJDNjAwMzAwNDE2NzU4Q0Y4NzU4QTMwN0YyRkFFMDcxRkVFNjBERAorOjEwMEJENjAwM0M5MDIwMDA3NDU1RjA4MEYyNzU4Q0IxN0YyOEVGRDNERAorOjEwMEJFNjAwOTQyQzUwMDlBODA3RTY2MDAxMTYwRjgwRjE5MDAzMDBDNworOjEwMEJGNjAwRTA2MDAyMTRGMDkwMDFDMEUwNzAwMkEzRTA2MDBFOTA4NQorOjBEMEMwNjAwMDFDMUUwMjRGRkYwOTAwMUMwRTAzNEZGRjBEOAorOjBGMEMxMzAwRDAwN0QwMDZEMDAwRDBEMEQwODJEMDgzRDBFMDMyMkUKKzoxMDBDMjIwMEQyMDA3NThFMTAxMjA5MzBFNTMzQzM5NDAxNDAwODkwNEEKKzoxMDBDMzIwMDdGOTI3NDAyRjA4MDA1RTQ5MDdGOTJGMDEyODAwMDEyOUQKKzowQzBDNDIwMDBGN0QxMjk0RjcxMjFCMEMxMjBCOEQyMjc4Cis6MTAwQzRFMDBDMEUwQzA4M0MwODJEMjAxNTM5MUVGOTA3RkFCNzQwMTlDCis6MDgwQzVFMDBGMEQwODJEMDgzRDBFMDMyMTcKKzoxMDBDNjYwMEMwRTBDMDgzQzA4MjkwN0ZDNEU0RjA1MzkxRUY5MDdGRDAKKzowQjBDNzYwMEFCNzQwNEYwRDA4MkQwODNEMEUwMzJEOQorOjEwMEM4MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwOTBCQgorOjEwMEM5MTAwN0ZEOEUwNzAwRDkwN0ZEOUUwNzAwN0U1MkM3MDAzNzU2NworOjA5MENBMTAwMkMxNEQwODJEMDgzRDBFMDMyODMKKzoxMDBDQUEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwNDQKKzowNjBDQkEwMDgyRDA4M0QwRTAzMjdECis6MTAwQ0MwMDBDMEUwQzA4M0MwODIzMDAyMDJEMjA2NTM5MUVGOTA3RjExCis6MEIwQ0QwMDBBQjc0MDhGMEQwODJEMDgzRDBFMDMyN0IKKzoxMDBDREIwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMTA1MzkxRUY5MDdGMUQKKzoxMDBDRUIwMEE5NzQwMkYwRTUzNDMwRTAxM0U1MzIzMEUwMDc5MDIwRDAKKzoxMDBDRkIwMDA0RTA0NDAxRjA5MDIwMDFFMDQ0MDFGMEU1MkM3MDAzODYKKzowQzBEMEIwMDc1MkMxNEQwRDBEMDgyRDA4M0QwRTAzMjAwCis6MTAwRDE3MDBDMEUwQzA4M0MwODJDMEQwNzVEMDEwNTM5MUVGOTA3RkUwCis6MTAwRDI3MDBBOTc0MDRGMEU1MzQzMEUxMTNFNTMyMzBFMTA3OTAyMDhGCis6MTAwRDM3MDAwQ0UwNDQwMUYwOTAyMDA5RTA0NDAxRjBFNTJDNzAwMzM5Cis6MEMwRDQ3MDA3NTJDMTREMEQwRDA4MkQwODNEMEUwMzJDNAorOjEwMEQ1MzAwQzBFMEMwODNDMDgyQzBEMDc1RDAxMDUzOTFFRjkwN0ZBNAorOjEwMEQ2MzAwQTk3NDA4RjBFNTM0MzBFMjEzRTUzMjMwRTIwNzkwMjA0RAorOjEwMEQ3MzAwMTRFMDQ0MDFGMDkwMjAxMUUwNDQwMUYwRTUyQzcwMDNFRAorOjBDMEQ4MzAwNzUyQzE0RDBEMEQwODJEMDgzRDBFMDMyODgKKzoxMDBEOEYwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMTA1MzkxRUY5MDdGNjgKKzoxMDBEOUYwMEE5NzQxMEYwRTUzNDMwRTMxM0U1MzIzMEUzMDc5MDIwMDcKKzoxMDBEQUYwMDFDRTA0NDAxRjA5MDIwMTlFMDQ0MDFGMEU1MkM3MDAzQTEKKzowQzBEQkYwMDc1MkMxNEQwRDBEMDgyRDA4M0QwRTAzMjRDCis6MTAwRENCMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMDY5Cis6MTAwRERCMDBEMDc1RDAxMDUzOTFFRjkwN0ZBQTc0MDJGMEU1MzQyMEI4Cis6MTAwREVCMDBFMDA2OTA3RkM3RjA4MDIyRTUzMTMwRTAwQTkwN0ZDN0E0Cis6MTAwREZCMDBFMDkwMDJGOEYwODAxM0U1MjIzMEUwMDc5MDIwMDRFMDQ5Cis6MTAwRTBCMDA0NDAyRjA5MDIwMDFFMDQ0MDJGMEU1MkM3MDAzNzUyQ0I1Cis6MTAwRTFCMDAxNEQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjhECis6MTAwRTJCMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMDA4Cis6MTAwRTNCMDBEMDc1RDAxMDUzOTFFRjkwN0ZBQTc0MDRGMEU1MzQyMDU1Cis6MTAwRTRCMDBFMTA2OTA3RkM5RjA4MDIyRTUzMTMwRTEwQTkwN0ZDOTNECis6MTAwRTVCMDBFMDkwMDJGOUYwODAxM0U1MjIzMEUxMDc5MDIwMENFMERFCis6MTAwRTZCMDA0NDAyRjA5MDIwMDlFMDQ0MDJGMEU1MkM3MDAzNzUyQzRECis6MTAwRTdCMDAxNEQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjJECis6MTAwRThCMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMEE4Cis6MTAwRTlCMDBEMDc1RDAxMDUzOTFFRjkwN0ZBQTc0MDhGMEU1MzQyMEYxCis6MTAwRUFCMDBFMjA2OTA3RkNCRjA4MDIyRTUzMTMwRTIwQTkwN0ZDQkQ3Cis6MTAwRUJCMDBFMDkwMDJGQUYwODAxM0U1MjIzMEUyMDc5MDIwMTRFMDc0Cis6MTAwRUNCMDA0NDAyRjA5MDIwMTFFMDQ0MDJGMEU1MkM3MDAzNzUyQ0U1Cis6MTAwRURCMDAxNEQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMkNECis6MTAwRUVCMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMDQ4Cis6MTAwRUZCMDBEMDc1RDAxMDUzOTFFRjkwN0ZBQTc0MTBGMEU1MzQyMDg5Cis6MTAwRjBCMDBFMzA2OTA3RkNERjA4MDIyRTUzMTMwRTMwQTkwN0ZDRDcwCis6MTAwRjFCMDBFMDkwMDJGQkYwODAxM0U1MjIzMEUzMDc5MDIwMUNFMDA5Cis6MTAwRjJCMDA0NDAyRjA5MDIwMTlFMDQ0MDJGMEU1MkM3MDAzNzUyQzdDCis6MTAwRjNCMDAxNEQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRTAzMjZDCis6MTAwRjRCMDBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQTk3NDgwRjBEMDMyCis6MDYwRjVCMDA4MkQwODNEMEUwMzJEOQorOjEwMEY2MTAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFBNzQ4MEYwOTA1QgorOjBDMEY3MTAwMDFCRDc0RkZGMEQwODJEMDgzRDBFMDMyQ0MKKzoxMDBGN0QwMDkwMDEyMDEyQTNGQTAwMDAyNTgwOTAwMTI0NzQwOEYwM0UKKzoxMDBGOEQwMEEzNzQwMUYwQTM3NDZFRjBBM0YwQTM3NDEzRjBBMzc0MTMKKzoxMDBGOUQwMDExRjBFNEEzRjBBM0YwOTAwMTFFRjA5MDAxMUVFMEZGMEMKKzoxMDBGQUQwMDA0QTNGMEVGNzVGMDBEQTQyNDAxRjk3NDAzMzVGMEE4MzYKKzoxMDBGQkQwMDAxRkM3RDAxN0IwMTdBMDE3OTFGN0UwMDdGMEQxMkEyNUMKKzoxMDBGQ0QwMDEyN0UwMTdGMUYxMjg3QTY5MDAxMUVFMDA0RjBFMEMzODAKKzoxMDBGREQwMDk0MDQ0MEM3RTRGNTI3OTAwMTFFRjA5MDAxMUVFMEZGMzgKKzoxMDBGRUQwMEMzOTQwNDUwMUE3NEY4MkZGNTgyRTQzNDAyRjU4M0U0QTcKKzoxMDBGRkQwMEYwNzQyMzJGRjhFNEY2OTAwMTFFRTAwNEYwODBEQ0U0OTkKKzoxMDEwMEQwMEY1MzRFNUMwNjAyRjkwMDExRTc0MDFGMDkwMDExRUUwRDMKKzoxMDEwMUQwMEZGRDM5NDA0NTAxRkVGMTRGRjc0MDFBODA3MDg4MDAyM0EKKzoxMDEwMkQwMEMzMzNEOEZDNDIzNDdFMDE3RjFFMTI4NDQxOTAwMTFFRDEKKzoxMDEwM0QwMEUwMDRGMDgwRDdFNEY1M0VGNTIyRjUzMUY1MzI5MDAxNkMKKzoxMDEwNEQwMDFFRjA5MDAxMUVFMEZGNzVGMDA4QTQyNDA2RjU4MkU0NjEKKzoxMDEwNUQwMDM0MjBGNTgzRTA1NEYwRkU3NEM1MkZGNTgyRTQzNDAxOUQKKzoxMDEwNkQwMEY1ODNFRUYwNzQzQTJGRjhBNjA2NzQzNjJGRjhFNEY2RjEKKzoxMDEwN0QwMDc0MkQyRkY4RTRGNjc0RkMyRkY1ODJFNDM0MDJGNTgzMTkKKzoxMDEwOEQwMEU0RjA5MDAxMUVFMDA0RjBFMEI0MDRCNjkwMjA2MEUwQkUKKzowNDEwOUQwMDU0MEZGNTRFQTkKKzoxMDEwQTEwMDcwMDMwMjExMjZFNDkwMDExRUYwOTAwMTFFRTBGRkMzQkYKKzoxMDEwQjEwMDk0MDQ1MEU0NzQwMUE4MDcwODgwMDJDMzMzRDhGQzU1OTYKKzoxMDEwQzEwMDRFNjA1QTkwMDExRUUwRkU3NUYwMDhBNDI0MDJGNTgyREMKKzoxMDEwRDEwMEU0MzQyMEY1ODNFMEZGRUU3NUYwMDhBNDI0MDVGNTgyRTEKKzoxMDEwRTEwMEU0MzQyMEY1ODNFMEVFNzVGMDA4QTQyNDA2RjU4MkU0RUIKKzoxMDEwRjEwMDM0MjBGNTgzRTBGRkFGMDZFRTc1RjAwREE0MjQwMkY1NzAKKzoxMDExMDEwMDgyRTQzNDAzRjU4M0UwRkNBM0UwRkRBM0UwRkVBM0UwNjkKKzoxMDExMTEwMEY1NjY4RTY1OEQ2NDhDNjM3RDA2MTI4M0RGOTAwMTFFRkEKKzowNjExMjEwMEUwMDRGMDgwODUyMkNECis6MDIxMTI3MDBBQzA3MTMKKzoxMDExMjkwMDkwN0ZBNUUwNDQ4MEYwRUMyNUUwNDQ0MTkwN0ZBNkYwNTMKKzoxMDExMzkwMDdCM0NBRjAzMUJFRjcwMTY5MDdGQTVFMDQ0NDBGMDkwMTUKKzoxMDExNDkwMDdGQTZFMEZEN0QzMkFGMDUxREVGNjBENDgwRjg5MDdGNkEKKzoxMDExNTkwMEE1RTBGRDMwRTBEQzIwRTEwOUUwNDQ0MEYwN0VGRjdGQkUKKzoxMDExNjkwMEY5MjJFRDMwRTIwQzkwN0ZBNUUwNDQ0MEYwN0VGRjdGNEMKKzoxMDExNzkwMEZBMjI5MDdGQTVFMDQ0MjBGMDkwN0ZBNkUwRkQ3QjFFMzcKKzoxMDExODkwMEFGMDMxQkVGNzAxNjkwN0ZBNUUwNDQ0MEYwOTA3RkE2NTcKKzoxMDExOTkwMEUwRkQ3RDMyQUYwNTFERUY2MDg2ODBGODkwN0ZBNUUwMDgKKzoxMDExQTkwMEZEMjBFMERDN0IzQ0FGMDMxQkVGNzAxOTkwN0ZBNUUwQ0QKKzoxMDExQjkwMDQ0NDBGMDkwN0ZBNkUwRkQ3RDMyQUYwNTFERUY3MDAzM0UKKzoxMDExQzkwMDAyMTEyOTgwRjU5MDdGQTVFMEZEMzBFMEQ5MzBFMjA5RDAKKzoxMDExRDkwMEUwNDQ0MEYwN0VGRjdGRkEyMkMyQUY5MDdGQTVFMDQ0NTEKKzowQzExRTkwMDQwRjA5MDdGQTZFMEZERDJBRkZGN0UwMDNBCis6MDExMUY1MDAyMkQ3Cis6MTAxMjAwMDAxMjAxMDAwMUZGRkZGRjQwMTAwNzAxODA0MjAwMDEwMkIwCis6MTAxMjEwMDAwMzAxMDkwMjU4MDAwMTAxMDQ4MDNDMDkwNDAwMDAwQThFCis6MTAxMjIwMDBGRkZGRkYwNTA3MDU4MTAyNDAwMDAwMDcwNTAxMDI0MDlFCis6MTAxMjMwMDAwMDAwMDcwNTgyMDI0MDAwMDAwNzA1MDIwMjQwMDAwMDhFCis6MTAxMjQwMDAwNzA1ODMwMjQwMDAwMDA3MDUwMzAyNDAwMDAwMDcwNTcwCis6MTAxMjUwMDA4NDAyNDAwMDAwMDcwNTA0MDI0MDAwMDAwNzA1ODcwMkUxCis6MTAxMjYwMDA0MDAwMDAwNzA1MDcwMjQwMDAwMDA0MDMwOTA0MjQwM0FFCis6MTAxMjcwMDA0MzAwNkYwMDZFMDA2RTAwNjUwMDYzMDA3NDAwMjAwMDg0Cis6MTAxMjgwMDA1NDAwNjUwMDYzMDA2ODAwMjAwMDQ5MDA2RTAwNjMwMEEwCis6MTAxMjkwMDAyRTAwMTgwMzU3MDA2ODAwNjkwMDc0MDA2NTAwNDgwMEJDCis6MTAxMkEwMDA0NTAwNDEwMDU0MDAyRDAwMzQwMDFBMDM1ODAwNTgwMDM2Cis6MTAxMkIwMDAyRDAwNTgwMDU4MDAyRDAwNTgwMDU4MDA1ODAwNTgwMEM0Cis6MTAxMkMwMDA1ODAwNTgwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDUyCis6MTAxMkQwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEE1Cis6MTAxMkUwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzQyCis6MTAxMkYwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMEMyCis6MTAxMzAwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMEUxCis6MDIxMzEwMDAwMDAwREIKKzoxMDEzMTIwMEMwRTBDMEYwQzA4M0MwODJDMDg1QzA4NEMwODZDMEQwOTcKKzoxMDEzMjIwMDc1ODYwMDc1RDAxODkwMjA2MEUwNTQwRkY1RjA3MDExQUEKKzoxMDEzMzIwMEQwRDBEMDg2RDA4NEQwODVEMDgyRDA4M0QwRjBEMEUwRjcKKzoxMDEzNDIwMDMyNzU4NjAwMTBGMDBCMTBGMTEyMTBGMjE5MTBGMzIwMTIKKzoxMDEzNTIwMDgwRDRFNTI4NzAwMzc1MjgxNDAyMTM3Q0U1Mjk3MDAzRjQKKzoxMDEzNjIwMDc1MjkxNDAyMTUwREU1MkE3MDAzNzUyQTE0MDIxNjlFQkEKKzoxMDEzNzIwMEU1MkI3MDAzNzUyQjE0MDIxODJGOTAyMDAyRTA1NDNGQzYKKzoxMDEzODIwMDIwRTIzQTIwRTEwQjIwRTQwQjIwRTUxNDYwMDkwMjEzNkQKKzoxMDEzOTIwMDQzMDIxNDY1MDIxMzQzNDM4MjA0RTBGNTNBMDIxMzQzMDUKKzoxMDEzQTIwMDQzODIwNEUwNDMyRDAxMDIxMzQzNTM4MkY4NDM4MjA1MzIKKzoxMDEzQjIwMEUwNDIzNjUzODJGQkUwNTRGQkYwMDIxMzQzMzBFMTAyNzkKKzoxMDEzQzIwMDgwRThGNTg1RTUzMjMwRTAwQTUzODJGODQzODIwNEUwOTIKKzoxMDEzRDIwMDU0RkVGMEU1ODUyMEUzNTY5MDIwNTA3NDAwRjA5MDIwRjIKKzoxMDEzRTIwMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjA5MDdGRTMwNTg2N0MKKzoxMDEzRjIwMDkwN0U4MDA1ODZFNTg1RjBBM0U1ODRGMDA1ODY5MDdGRTIKKzoxMDE0MDIwMEU1RTUzRkZEMDMwMzAzRkVGMEYwRjBGMEYwRjBGMEYwNEQKKzoxMDE0MTIwMERFRjY5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDkwMjYKKzoxMDE0MjIwMDdGQjdFREYwOTAyMDAxRTA1NEZFRjAwMjEzNDM3RjQwQkQKKzoxMDE0MzIwMDkwN0U4MDA1ODY5MDIwMDBFNTg0RkUyNDA1RkQ4RDg0NDMKKzoxMDE0NDIwMEUwOEU4NDMwRTAwOUUwMDU4NkYwQTMwNTg2REZFRjA1MzMKKzoxMDE0NTIwMDg2QzM3NDQwOUY5MDdGQjdGMDA1ODZBM0UwNTRGRUYwRTgKKzoxMDE0NjIwMDAyMTM0MzUzMkRGQUU1MjM2MDA4NzUyMzAwRDJFN0ZFRTkKKzoxMDE0NzIwMDgwMEE5MDdGQzdFMEZFNzAwMzAyMTRGRjkwMjA1MDc0MzAKKzoxMDE0ODIwMDAwRjA5MDIwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMDkwMjgKKzoxMDE0OTIwMDdGRTMwNTg2OTA3RTQwMDU4NkU1ODVGMEEzRTU4NEYwMkUKKzoxMDE0QTIwMDA1ODY5MDdGRTVFRTMwRTcwODA1ODZFMDI0MzhGMDA1RjIKKzoxMDE0QjIwMDg2RUU1NDdGRkU1NDA3RkJFRTU0Nzg2MDMwMDMwMzAzM0MKKzoxMDE0QzIwMDMwRTMwNDc0MDc3QjA4RkRGQ0UwRTBFMEUwRTBFMEUwRUMKKzoxMDE0RDIwMEUwRERGNkVCRkU2MDE5RUM2NDA3NzAxMThCMjM5MDdGNjAKKzoxMDE0RTIwMEUyRTA1NEJGRjA5MDIwNTg3NDAwRjA4MDFCRTBERUZENzMKKzoxMDE0RjIwMDkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwOTAyMDAxRjkKKzoxMDE1MDIwMEUwNTRGREYwOTA3RkM3RjAwMjEzNDM5MDIwMEFFMDU0QUMKKzoxMDE1MTIwMDNGMjBFMjNBMjBFMTBCMjBFNDBCMjBFNTE0NjAwOTAyQUYKKzoxMDE1MjIwMDEzNDMwMjE1RjYwMjEzNDM0MzgyMDRFMEY1M0IwMjEzMTAKKzoxMDE1MzIwMDQzNDM4MjA0RTA0MzJFMDEwMjEzNDM1MzgyRjg0MzgyNjEKKzoxMDE1NDIwMDA1RTA0MjM3NTM4MkZCRTA1NEZCRjAwMjEzNDMzMEUxRTMKKzoxMDE1NTIwMDAyODBFOEY1ODVFNTMyMzBFMTBBNTM4MkY4NDM4MjA0REQKKzoxMDE1NjIwMEUwNTRGRUYwRTU4NTIwRTM1NjkwMjA1MDc0MDFGMDkwOUYKKzoxMDE1NzIwMDIwNTg3NDAxRjA5MDdGRTJFMDQ0NDBGMDkwN0ZFMzA1NTAKKzoxMDE1ODIwMDg2OTA3RTAwMDU4NkU1ODVGMEEzRTU4NEYwMDU4NjkwQzkKKzoxMDE1OTIwMDdGRTVFNTQwRkQwMzAzMDNGRUYwRjBGMEYwRjBGMEYwMkMKKzoxMDE1QTIwMEYwREVGNjkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwMzUKKzoxMDE1QjIwMDkwN0ZCOUVERjA5MDIwMDlFMDU0RkVGMDAyMTM0MzdGRDIKKzoxMDE1QzIwMDQwOTA3RTAwMDU4NjkwMjAwOEU1ODRGRTI0MDVGRDhENkUKKzoxMDE1RDIwMDg0RTA4RTg0MzBFMDA5RTAwNTg2RjBBMzA1ODZERkVGMjMKKzoxMDE1RTIwMDA1ODZDMzc0NDA5RjkwN0ZCOUYwMDU4NkEzRTA1NEZFNDAKKzoxMDE1RjIwMEYwMDIxMzQzNTMyRUZBRTUyNDYwMDg3NTI0MDBEMkU3NjMKKzoxMDE2MDIwMEZFODAwQTkwN0ZDOUUwRkU3MDAzMDIxNjkwOTAyMDUwN0YKKzoxMDE2MTIwMDc0MDFGMDkwMjA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwQjEKKzoxMDE2MjIwMDkwN0ZFMzA1ODY5MDdEQzAwNTg2RTU4NUYwQTNFNTg0N0QKKzoxMDE2MzIwMEYwMDU4NjkwN0ZFNUVFMzBFNzA4MDU4NkUwMjQzOEYwNzUKKzoxMDE2NDIwMDA1ODZFRTU0N0ZGRTU0MDdGQkVFNTQ3ODYwMzAwMzAzQTgKKzoxMDE2NTIwMDAzMzBFMzA0NzQwNzdCMDhGREZDRTBFMEUwRTBFMEUwMzcKKzoxMDE2NjIwMEUwRTBEREY2RUJGRTYwMTlFQzY0MDc3MDExOEIyNDkwNkMKKzoxMDE2NzIwMDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBGMDgwMUJFMERFNUYKKzowRTE2ODIwMEZEOTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjAxRAorOjEwMTY5MDAwOTAyMDA5RTA1NEZERjA5MDdGQzlGMDAyMTM0MzkwMjBBMAorOjEwMTZBMDAwMTJFMDU0M0YyMEUyM0EyMEUxMEIyMEU0MEIyMEU1MTQ0NQorOjEwMTZCMDAwNjAwOTAyMTM0MzAyMTc4NzAyMTM0MzQzODIwNEUwRjVEMworOjEwMTZDMDAwM0MwMjEzNDM0MzgyMDRFMDQzMkYwMTAyMTM0MzUzODIzRAorOjEwMTZEMDAwRjg0MzgyMDVFMDQyMzg1MzgyRkJFMDU0RkJGMDAyMTNFQQorOjEwMTZFMDAwNDMzMEUxMDI4MEU4RjU4NUU1MzIzMEUyMEE1MzgyRjhDMgorOjEwMTZGMDAwNDM4MjA0RTA1NEZFRjBFNTg1MjBFMzU2OTAyMDUwNzRDOAorOjEwMTcwMDAwMDJGMDkwMjA1ODc0MDFGMDkwN0ZFMkUwNDQ0MEYwOTBBNQorOjEwMTcxMDAwN0ZFMzA1ODY5MDdEODAwNTg2RTU4NUYwQTNFNTg0RjA2RQorOjEwMTcyMDAwMDU4NjkwN0ZFNUU1NDFGRDAzMDMwM0ZFRjBGMEYwRjA1MAorOjEwMTczMDAwRjBGMEYwRjBERUY2OTA3RkUyRTA1NEJGRjA5MDIwNTgzOQorOjEwMTc0MDAwNzQwMEYwOTA3RkJCRURGMDkwMjAxMUUwNTRGRUYwMDJBOQorOjEwMTc1MDAwMTM0MzdGNDA5MDdEODAwNTg2OTAyMDEwRTU4NEZFMjQxMQorOjEwMTc2MDAwMDVGRDhEODRFMDhFODQzMEUwMDlFMDA1ODZGMEEzMDU1OAorOjEwMTc3MDAwODZERkVGMDU4NkMzNzQ0MDlGOTA3RkJCRjAwNTg2QTM4QworOjEwMTc4MDAwRTA1NEZFRjAwMjEzNDM1MzJGRkFFNTI1NjAwODc1MjU1NworOjEwMTc5MDAwMDBEMkU3RkU4MDBBOTA3RkNCRTBGRTcwMDMwMjE4MjFBMgorOjEwMTdBMDAwOTAyMDUwNzQwMkYwOTAyMDU4NzQwMUYwOTA3RkUyRTA5NQorOjEwMTdCMDAwNDQ0MEYwOTA3RkUzMDU4NjkwN0Q0MDA1ODZFNTg1RjAwNgorOjEwMTdDMDAwQTNFNTg0RjAwNTg2OTA3RkU1RUUzMEU3MDgwNTg2RTAyNgorOjEwMTdEMDAwMjQzOEYwMDU4NkVFNTQ3RkZFNTQwN0ZCRUU1NDc4NjAwMworOjEwMTdFMDAwMzAwMzAzMDMzMEUzMDQ3NDA3N0IwOEZERkNFMEUwRTAxMgorOjEwMTdGMDAwRTBFMEUwRTBFMERERjZFQkZFNjAxOUVDNjQwNzcwMTE3QworOjEwMTgwMDAwOEIyNTkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQwMEYwODA2OAorOjEwMTgxMDAwMUJFMERFRkQ5MDdGRTJFMDU0QkZGMDkwMjA1ODc0MDBBMgorOjEwMTgyMDAwRjA5MDIwMTFFMDU0RkRGMDkwN0ZDQkYwMDIxMzQzOTAzNAorOjEwMTgzMDAwMjAxQUUwNTQzRjIwRTIzQTIwRTEwQjIwRTQwQjIwRTU5RgorOjEwMTg0MDAwMTQ2MDA5MDIxMzQzMDIxOTE4MDIxMzQzNDM4MjA0RTA4RgorOjEwMTg1MDAwRjUzRDAyMTM0MzQzODIwNEUwNDMzMDAxMDIxMzQzNTMzNgorOjEwMTg2MDAwODJGODQzODIwNUUwNDIzOTUzODJGQkUwNTRGQkYwMDJFOAorOjEwMTg3MDAwMTM0MzMwRTEwMjgwRThGNTg1RTUzMjMwRTMwQTUzODIxNAorOjEwMTg4MDAwRjg0MzgyMDRFMDU0RkVGMEU1ODUyMEUzNTY5MDIwNTBCMgorOjEwMTg5MDAwNzQwM0YwOTAyMDU4NzQwMUYwOTA3RkUyRTA0NDQwRjAyRgorOjEwMThBMDAwOTA3RkUzMDU4NjkwN0QwMDA1ODZFNTg1RjBBM0U1ODRCRAorOjEwMThCMDAwRjAwNTg2OTA3RkU1RTU0MkZEMDMwMzAzRkVGMEYwRjBCRQorOjEwMThDMDAwRjBGMEYwRjBGMERFRjY5MDdGRTJFMDU0QkZGMDkwMjAxMAorOjEwMThEMDAwNTg3NDAwRjA5MDdGQkRFREYwOTAyMDE5RTA1NEZFRjBCOAorOjEwMThFMDAwMDIxMzQzN0Y0MDkwN0QwMDA1ODY5MDIwMThFNTg0RkUxQQorOjEwMThGMDAwMjQwNUZEOEQ4NEUwOEU4NDMwRTAwOUUwMDU4NkYwQTNBOAorOjEwMTkwMDAwMDU4NkRGRUYwNTg2QzM3NDQwOUY5MDdGQkRGMDA1ODY5NgorOjEwMTkxMDAwQTNFMDU0RkVGMDAyMTM0MzUzMzBGQUU1MjY2MDA4NzU0NQorOjEwMTkyMDAwMjYwMEQyRTdGRTgwMEE5MDdGQ0RFMEZFNzAwMzAyMTkwOAorOjEwMTkzMDAwQjI5MDIwNTA3NDAzRjA5MDIwNTg3NDAxRjA5MDdGRTIzMAorOjEwMTk0MDAwRTA0NDQwRjA5MDdGRTMwNTg2OTA3Q0MwMDU4NkU1ODUwNQorOjEwMTk1MDAwRjBBM0U1ODRGMDA1ODY5MDdGRTVFRTMwRTcwODA1ODY4NAorOjEwMTk2MDAwRTAyNDM4RjAwNTg2RUU1NDdGRkU1NDA3RkJFRTU0NzhGMQorOjEwMTk3MDAwNjAzMDAzMDMwMzMwRTMwNDc0MDc3QjA4RkRGQ0UwRTAwMAorOjEwMTk4MDAwRTBFMEUwRTBFMEUwRERGNkVCRkU2MDE5RUM2NDA3NzAxQgorOjEwMTk5MDAwMTE4QjI2OTA3RkUyRTA1NEJGRjA5MDIwNTg3NDAwRjA0NQorOjEwMTlBMDAwODAxQkUwREVGRDkwN0ZFMkUwNTRCRkYwOTAyMDU4NzQ5MQorOjEwMTlCMDAwMDBGMDkwMjAxOUUwNTRGREYwOTA3RkNERjAwMjEzNDMyOQorOjAxMTlDMDAwMzJGNAorOjA0MTlDMTAwQUQwN0FDMDZCQworOjEwMTlDNTAwNzkwNkVEMjQwNEY1ODJFNDNDRjU4M0UwRkFBM0UwRkIxNworOjEwMTlENTAwNEE3MDAzMDIxQjA5RTlCNDA3MDA0MDAzMDIxQURCOTBCMQorOjEwMTlFNTAwMTlFQkY4MjgyODczMDIxQUI5MDIxQTcxMDIxQTVBMDI1OQorOjEwMTlGNTAwMUE0MDAyMUEyRjAyMUExQTAyMUEwMDkwN0ZBNUUwNDQxMworOjEwMUEwNTAwODBGMDhEODI4QzgzQTNFMEZGMjVFMDQ0QTA5MDdGQTYyMworOjEwMUExNTAwRjAxOTAyMUFEQjE5OEQ4MjhDODNFMEMzOTQyMDQwMEFFOQorOjEwMUEyNTAwQTNBM0UwOTA3RkE2RjAwMjFBREI4RDgyOEM4M0EzQTM4QgorOjEwMUEzNTAwRTBBM0UwOTA3RkE2RjAxOTAyMUFEQjkwN0ZBNUUwNDRCMQorOjEwMUE0NTAwODBGMDhEODI4QzgzQTNFMEZGMjVFMDQ0QTE5MDdGQTZFMgorOjEwMUE1NTAwRjAxOTAyMUFEQkVCNjQwMTRBNzAwODkwN0ZBNUUwNDQ5NworOjEwMUE2NTAwMjBGMDE5OTA3RkE2RTBGNTU5MTk4MDZBRUQyNDA0RjU1OAorOjEwMUE3NTAwODJFNDNDRjU4M0UwRkVBM0UwNjQwMjRFNzAwODkwN0ZBQgorOjEwMUE4NTAwQTVFMDQ0MjBGMDE5OTA3RkE2RTBGRkVEMjQwNkY1ODIzRAorOjEwMUE5NTAwRTQzQ0Y1ODNFNDc1RjAwMTEyQTI5Nzg1RjA4MkY1ODNBNQorOjEwMUFBNTAwRUZGMEVEMjQwNEY1ODJFNDNDRjU4Mzc0RkZGNUYwMTJDNAorOjEwMUFCNTAwQTI4MTgwMjI5MDdGQTVFMDQ0NDBGMDkwN0ZBNkUwRkZDMAorOjEwMUFDNTAwRUQyNDA2RjU4MkU0M0NGNTgzRTBGQUEzRTBGNTgyOEE4RAorOjEwMUFENTAwODNFRkYwN0YwODIyOTA3RkE1RTBGNTU5MzBFMEY3MzBERAorOjEwMUFFNTAwRTIwN0UwNDQ0MEYwN0YwNjIyRTlEMzk0MDI1MDAzMDI2NgorOjEwMUFGNTAwMTlDN0U1NTkzMEUxMDMwMjE5Qzc5MDdGQTVFMDQ0NDBCNQorOjA2MUIwNTAwRjA3RjA3MjI3RjA4QkIKKzowMTFCMEIwMDIyQjcKKzoxMDFCMEMwMEU1MzNDMzk0MDE1MDFDN0YwNTdFMDAxMjA5QUU3RjAyQTEKKzoxMDFCMUMwMDdERkYxMjgyRUE3RjA1N0UwMDEyMDlBRTdGMDM3REZGRjYKKzowNDFCMkMwMDEyODJFQTIyMTUKKzoxMDgwMDAwMDdCRkY3QTEyNzkxQjkwMDAwNDEyQTI1NEZEOEI1MDc1RUQKKzoxMDgwMTAwMDUxMTI3NTUyMjRFNDkwN0ZFMUYwOTA3RkUwRjBGNTRFMkMKKzoxMDgwMjAwMEY1NEY5MDAyQUVGMDkwN0ZERkYwOTA3RkRFRjA5MDdGMTIKKzoxMDgwMzAwMEE5NzRGRkYwOTA3RkFBRjBFNEZDRUMyNUUwMjRCNEY1RUQKKzoxMDgwNDAwMDgyRTQzNDdGRjU4M0U0RjAwQ0JDMTBFRUU0OTA3RkREMzUKKzoxMDgwNTAwMEYwQUYwNTFERUY3MDAzMDI4MUM2QUI1MEFBNTFBOTUyQzMKKzoxMDgwNjAwMDkwMDAwMTEyQTI1NDY0MDU2MDAzMDI4MUI1OTAwMDAzRTAKKzoxMDgwNzAwMDEyQTI1NDY0MDE2MDAzMDI4MTNDOTAwMDAyMTJBMjU0RDcKKzoxMDgwODAwMEZGNTQ3RkZDRDM5NDA3NTAwMzAyODExNkVDQzM5NDEwNzUKKzoxMDgwOTAwMDQwMDMwMjgxMTZFRjMwRTc0MkU1NEZBRTRFNzgwMkNFNDQKKzoxMDgwQTAwMEMzMTNDRTEzRDhGOUZGNzRGMDJDRjU4MkU0MzQ3RkY1QjYKKzoxMDgwQjAwMDgzRUZGMDkwN0ZFMEUwRkZFQzI0RjhGRTc0MDFBODA2NjcKKzoxMDgwQzAwMDA4ODAwMkMzMzNEOEZDNEY5MDdGRTBGMDkwMDJBRUUwMEUKKzoxMDgwRDAwMDA0RjA5MDdGRERFMDQ0ODBGMDgwM0VFNTRGQUU0RTc4QzYKKzoxMDgwRTAwMDAyQ0VDMzEzQ0UxM0Q4RjlGRjc0RTgyQ0Y1ODJFNDM0MjIKKzoxMDgwRjAwMDdGRjU4M0VGRjA5MDdGRTFFMEZGRUMyNEY4RkU3NDAxNjAKKzoxMDgxMDAwMEE4MDYwODgwMDJDMzMzRDhGQzRGOTA3RkUxRjA5MDAyQUMKKzoxMDgxMTAwMEFFRTAwNEYwODAwMzdGRkYyMjkwMDAwNDEyQTI1NDI1RjkKKzoxMDgxMjAwMDRGRjU0RkU0MzU0RUY1NEU5MDAwMDUxMkEyNTRGRUU0OTMKKzoxMDgxMzAwMDI1NEZGNTRGRUUzNTRFRjU0RTAyODFCOEFCNTBBQTUxQTIKKzoxMDgxNDAwMEE5NTI5MDAwMDMxMkEyNTRGRjY0MDI2MDA1RUY2NDAzNzkKKzoxMDgxNTAwMDcwNjA5MDAwMDIxMkEyNTRGRjU0N0ZGQ0QzOTQwNzUwMjkKKzoxMDgxNjAwMDRFRUYzMEU3MUU5MDdGREVFMEZGNzQwMUE4MDQwODgwMjgKKzoxMDgxNzAwMDAyQzMzM0Q4RkNGRTRGOTA3RkRFRjA5MDdGQUNFMDRFMjAKKzoxMDgxODAwMEYwODAzNTkwN0ZERkUwRkY3NDAxQTgwNDA4ODAwMkMzMEYKKzoxMDgxOTAwMDMzRDhGQ0ZFNEY5MDdGREZGMDkwN0ZBREUwNEVGMEVDRTcKKzoxMDgxQTAwMDI1RTAyNEM1RjU4MkU0MzQ3RkY1ODNFQ0YwODAwOTdGNzcKKzoxMDgxQjAwMEZGMjI3RkZGMjI3RkZGMjI3NDA3MjU1MkY1NTJFNDM1MEMKKzoxMDgxQzAwMDUxRjU1MTAyODA1MTIwMDMwRDkwMDJBRUUwNjAwNzkwRkUKKzowODgxRDAwMDdGQUVFMDQ0MDJGMDdGMDBFNQorOjAxODFEODAwMjI4NAorOjA0ODFEOTAwOEU1OThGNUFEMgorOjEwODFERDAwNzU1QjAzRTU1QTI0MDRGNTgyRTQzNTU5RjU4M0UwRkUxOQorOjEwODFFRDAwQTNFMDRFNzAwMzAyODJFN0U1NUI2MDRFMTQ2MDM4MTQyNQorOjEwODFGRDAwNjAyMDE0NjAwMzAyODI4QjkwN0ZBNUUwNDQ4MEYwODU5RgorOjEwODIwRDAwNUE4Mjg1NTk4M0EzRTBGRjI1RTA0NEEwOTA3RkE2RjAxNAorOjEwODIxRDAwODA2Qzg1NUE4Mjg1NTk4M0UwQzM5NDIwNDAwOUEzQTNCRAorOjEwODIyRDAwRTA5MDdGQTZGMDgwNTcxNTVCODU1QTgyODU1OTgzQTMxMAorOjEwODIzRDAwQTNFMEEzRTA5MDdGQTZGMDgwNDRFNTVBMjQwNkY1ODJFMgorOjEwODI0RDAwRTQzNTU5RjU4M0U0NzVGMDAxMTJBMjk3ODVGMDgyRjVCNgorOjEwODI1RDAwODNFMDkwN0ZBNkYwOTA3RkE1RTA0NDQwRjBFNTVBMjQ5RQorOjEwODI2RDAwMDRGNTgyRTQzNTU5RjU4Mzc0RkZGNUYwMTJBMjgxODU4QQorOjEwODI3RDAwNUE4Mjg1NTk4M0EzQTNFNDc1RjAwMTEyQTI4MTkwN0ZFMAorOjEwODI4RDAwQTVFMEY1NUMzMEUwRjczMEUyMDdFMDQ0NDBGMDdGMDYxMgorOjEwODI5RDAwMjJFNTVDMjBFMTBBOTA3RkE1RTA0NDQwRjA3RjA3MjJCMworOjEwODJBRDAwRTU1QjcwMzE3RjAxN0UwMDEyMDlBRTkwN0ZBNUUwNDQ0MQorOjEwODJCRDAwODBGMDg1NUE4Mjg1NTk4M0EzRTBGRjI1RTA0NEEwOTA4NAorOjEwODJDRDAwN0ZBNkYwOTA3RkE1RTBGNTVDMzBFMEY3MzBFMUQ1NzU0NQorOjBDODJERDAwNUIwMzAyODFFMDE1NUIwMjgxRTA3RjA4N0EKKzowMTgyRTkwMDIyNzIKKzowMjgyRUEwMEFFMDdERAorOjEwODJFQzAwN0MwMkVDMTQ2MDE1MTQ3MDFFOTA3RkE1RTA0NDgwRjBBNQorOjEwODJGQzAwRUUyNUUwNDQ0MDkwN0ZBNkYwODAwQzkwN0ZBNkVERjAzOAorOjEwODMwQzAwOTA3RkE1RTA0NDQwRjA5MDdGQTVFMEZCMzBFMEY4QkMwNgorOjEwODMxQzAwMDIwQTIwRTEwN0UwNDQ0MEYwN0YwNzIyRUIzMEUyMEEzQQorOjBFODMyQzAwOTA3RkE1RTA0NDQwRjA3RjA2MjJEQ0I2N0YwODdCCis6MDE4MzNBMDAyMjIwCis6MTA4MzNCMDBDMEUwQzA4M0MwODJDMkE5OTAwMzAwNzQxOUYwRDJBOTE3Cis6MEY4MzRCMDA1MzkxN0Y5MDAxQzRFNEYwRDA4MkQwODNEMEUwMzIxMAorOjEwODM1QTAwRUY3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUI4MkZBRjUyNAorOjEwODM2QTAwODNBM0U0RjA4QjgyOEE4M0EzQTNBM0UwRjU2MTc0QkY5RAorOjEwODM3QTAwRjA4QjgyOEE4M0EzQTNFMDQ0MTBGMDhCODI4QTgzQTNDMgorOjEwODM4QTAwQTNBM0U0RjA4QjgyOEE4M0EzRjBGOUVENjAxRDc0MDE0NAorOjEwODM5QTAwN0UwMEE4MDcwODgwMDVDMzMzQ0UzM0NFRDhGOUZGRTRBMAorOjEwODNBQTAwRUY1NTMxNjAwNDc5MDk4MDAyNzkwRDhCODI4QTgzQTNBMworOjEwODNCQTAwQTNBMzc0QkZGMDhCODI4QTgzQTNBM0UwNTRFRkYwOEI0QworOjEwODNDQTAwODI4QTgzQTNBM0EzRTU2MUYwQUUwMkFGMDM4RjgyOEVGNAorOjA0ODNEQTAwODNBM0U5RjBBMAorOjAxODNERTAwMjI3QworOjA0ODNERjAwOEY2MThENjJCQgorOjEwODNFMzAwRTRGNTY3NzQzRjJGRjg3NjA4N0Y4MDdFMjU3RDAwN0M1NworOjEwODNGMzAwMDBBQjY2QUE2NUE5NjRBODYzRDMxMkEzQjM0MDI2N0YyMgorOjEwODQwMzAwMDA3RTk2N0QwMDdDMDBBODYzRDMxMkEzQjM1MDBDNzU0NQorOjEwODQxMzAwNjc0MDc0M0YyNTYxRjg3NjEwODAwQTc1Njc4MDc0M0Y2MgorOjEwODQyMzAwMjU2MUY4NzYzOEU1Njc0NTYyNDQwMUZGRTU2MTc1RjAzQgorOjBEODQzMzAwMDhBNDI0MDJGNTgyRTQzNDIwRjU4M0VGRjA2NAorOjAxODQ0MDAwMjIxOQorOjEwODQ0MTAwOEY4MjhFODNFMDE0RjU1N0MzOTQwNDQwMDM3RkZGMjI4QgorOjEwODQ1MTAwRTU1Nzc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRjgyRjVENQorOjEwODQ2MTAwNTg4RjU5RTU1NzI1RTAyNEM2RjU4MkU0MzQ3RkY1ODMxQQorOjEwODQ3MTAwRTAyMEUxMEZFNTU3MjVFMDI0QzdGNTgyRTQzNDdGRjVEQworOjEwODQ4MTAwODNFNEYwNzQyMzI1NTdGOEU0RjZFNTU5MjQwNEY1ODJEMgorOjEwODQ5MTAwRTQzNTU4RjU4M0UwNDQwM0YwRTU1Nzc1RjAwREE0MjQ2NQorOjEwODRBMTAwMDJGNTgyRTQzNDAzRjU4M0UwRkNBM0UwRkRBM0UwRkVFMgorOjEwODRCMTAwQTNFMEY1NjY4RTY1OEQ2NDhDNjM3RDA2QUY1NzEyODNFQworOjEwODRDMTAwREZBRjU3N0QwMTEyODM1QTg1NTk4Mjg1NTg4M0EzQTM1MworOjEwODREMTAwRTAyMEUwNDNFMEZGRTU1OTI0MDVGNTgyRTQzNTU4RjU1NQorOjEwODRFMTAwODNFMEU1NTkyNDA2RjU4MkU0MzU1OEY1ODNFMEZGRTU5QworOjEwODRGMTAwNTc3NUYwMERBNDI0MDJGNTgyRTQzNDAzRjU4M0UwRkMwMgorOjEwODUwMTAwQTNFMEZEQTNFMEZFQTNFMEY1NjY4RTY1OEQ2NDhDNjNCOAorOjEwODUxMTAwN0QwNkFGNTcxMjgzREY3NEY4MjU1N0Y1ODJFNDM0MDJFNAorOjEwODUyMTAwRjU4M0U0RjBFNTU3MjVFMEZGQzM3NDBDOUY3NUYwNDAzNworOjEwODUzMTAwQTQyNDQwRjU4MkU1RjAzNDdCQUY4MkZFRTU1NzI1RTBDNworOjEwODU0MTAwMjRFRkY1ODJFNDM0MDJGNTgzRUVGMEEzRUZGMEFGNTdBOAorOjBGODU1MTAwNzQwMUE4MDcwODgwMDJDMzMzRDhGQzQyMzQ3RjAwQUUKKzowMTg1NjAwMDIyRjgKKzoxMDg1NjEwMDhGODI4RTgzRTAxNEY1NTdDMzk0MDQ0MDAzN0ZGRjIyNkEKKzoxMDg1NzEwMEFGNTdFNEZEMTI4MzVBNzRGODI1NTdGNTgyRTQzNDAyQUIKKzoxMDg1ODEwMEY1ODNFNEYwRTU1Nzc1RjAwOEE0MjQwMEY1ODJFNDM0OUUKKzoxMDg1OTEwMDIwQUY4MkY1NTk4RjVBRjU4M0U1ODIyNDA0RjU4MkU0RjAKKzoxMDg1QTEwMDM1ODNGNTgzRTA1NEZDRjBFNTU3NzVGMDBEQTQyNDBDRjgKKzoxMDg1QjEwMEY1ODJFNDM0MDNGNTgzRTRGMEU1NTc3NUYwMERBNDI0NjYKKzoxMDg1QzEwMDAyRjU4MkU0MzQwM0Y1ODNFMEZDQTNFMEZEQTNFMEZFQzEKKzoxMDg1RDEwMEEzRTBGNTY2OEU2NThENjQ4QzYzN0QwNkFGNTcxMjgzQ0IKKzoxMDg1RTEwMERGRTU1QTI0MDVGNTgyRTQzNTU5RjU4M0UwMzBFMDA5RTkKKzoxMDg1RjEwMDg1NUE4Mjg1NTk4M0UwRjU1OEFGNTc3NDAxQTgwNzA4NTkKKzoxMDg2MDEwMDgwMDJDMzMzRDhGQ0Y0NTIzNEU1NTcyNUUwMjRDNkY1ODMKKzoxMDg2MTEwMDgyRTQzNDdGRjU4M0UwMjBFMTBGRTU1NzI1RTAyNEM3QUMKKzowQjg2MjEwMEY1ODJFNDM0N0ZGNTgzRTRGMDdGMDA3NQorOjAxODYyQzAwMjIyQgorOjA0ODYyRDAwOEU1NzhGNTg3RAorOjEwODYzMTAwOEY4MjhFODNFMDE0RjU1OUMzOTQwNDQwMDM3RkZGMjI5NworOjEwODY0MTAwRTU1OTc1RjAwOEE0MjQwMUY1ODJFNDM0MjBGNTgzRTBBRQorOjEwODY1MTAwNTQwMzcwNjY4NTU4ODI4NTU3ODNBM0UwMzBFMDI4RTU4RQorOjEwODY2MTAwNTk3NUYwMERBNDI0MDJGNTgyRTQzNDAzRjU4M0UwRkM4RQorOjEwODY3MTAwQTNFMEZEQTNFMEZFQTNFMEY1NjY4RTY1OEQ2NDhDNjM0NworOjEwODY4MTAwN0QwMkFGNTkxMjgzREY4NTU4ODI4NTU3ODNBM0UwMzA3RAorOjEwODY5MTAwRTEyOEU1NTk3NUYwMERBNDI0MDJGNTgyRTQzNDAzRjVDRgorOjEwODZBMTAwODNFMEZDQTNFMEZEQTNFMEZFQTNFMEY1NjY4RTY1OEQwQgorOjBDODZCMTAwNjQ4QzYzN0QwNEFGNTkxMjgzREY3RjAwRUUKKzowMTg2QkQwMDIyOUEKKzoxMDg2QkUwMDhGODI4RTgzQzA4M0MwODJFMEZEQTNBM0EzRTBGQ0VENzYKKzoxMDg2Q0UwMDZDRDA4MkQwODNGMDhGODI4RTgzQTNBM0EzQzA4M0MwOEQKKzoxMDg2REUwMDgyRTBGRDhGODI4RTgzRTBGQ0VENkNEMDgyRDA4M0YwNDEKKzoxMDg2RUUwMDhGODI4RTgzQzA4M0MwODJBM0EzQTNFMEZERUM2REQwRTYKKzoxMDg2RkUwMDgyRDA4M0YwOEY4MjhFODNBM0MwODNDMDgyRTBGRDhGRjEKKzoxMDg3MEUwMDgyOEU4M0EzQTNFMEZDRUQ2Q0QwODJEMDgzRjA4RjgyQTcKKzoxMDg3MUUwMDhFODNBM0EzQzA4M0MwODJFMEZEOEY4MjhFODNBM0UwRUQKKzoxMDg3MkUwMEZDRUQ2Q0QwODJEMDgzRjA4RjgyOEU4M0EzQzA4M0MwODkKKzoxMDg3M0UwMDgyRTBGRDhGODI4RTgzQTNBM0UwRkZFRDZGRDA4MkQwMDcKKzowMzg3NEUwMDgzRjAyMjkzCis6MDQ4NzUxMDBBRDA3QUMwNkJFCis6MTA4NzU1MDA3OTBEOEQ4MjhDODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjYyCis6MTA4NzY1MDAyMjhDNTc4RDU4RUU3NUYwMERBNDI0MDFGNTgyRTQzNDYyCis6MTA4Nzc1MDAwM0FGODJGRUFEMDExOUVENjAyNDBGRUZBQzA2NzAwMTY5Cis6MTA4Nzg1MDAwRTE0RjU4MjhDODNFMEZEMDU1OEU1NThBQTU3NzAwMjUyCis6MTA4Nzk1MDAwNTU3MTRGNTgyOEE4M0UwNkQ2MEQ5N0YwMTIyN0YwMDM5Cis6MDE4N0E1MDAyMkIxCis6MDQ4N0E2MDA4RTU3OEY1ODAzCis6MTA4N0FBMDA4RjgyOEU4M0UwMTRGNTVFQzM5NDA0NDAwMzdGRkYyMjE4Cis6MTA4N0JBMDBFNTVFNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFGODJGNTYyCis6MTA4N0NBMDA1RjhGNjA4NTU4ODI4NTU3ODNBM0UwRkNBM0UwRkRBM0YxCis6MTA4N0RBMDBFMEZFQTNFMEZGN0IwODdBMDA3OTAwNzgwMEQzMTJBM0I5Cis6MTA4N0VBMDBCMzQwMTA4NTU4ODI4NTU3ODNBMzEyQTNGQTAwMDAwMDZDCis6MTA4N0ZBMDAwODgwMkU4NTU4ODI4NTU3ODNBM0UwRkNBM0UwRkRBMzU5Cis6MTA4ODBBMDBFMEZFQTNFMEZGN0IwMDdBMDg3OTA3NzgwMEMzMTJBMzkxCis6MTA4ODFBMDBCMzUwMEU4NTU4ODI4NTU3ODNBMzEyQTNGQTAwMDcwODFFCis6MTA4ODJBMDAwMDg1NTg4Mjg1NTc4M0EzRTBGOEEzRTBGOUEzRTBGQTBDCis6MTA4ODNBMDBBM0UwRkI3RjAwN0U1MDdENDY3QzAwMTJBMzIxOEY1QzYzCis6MTA4ODRBMDA4RTVCOEQ1QThDNTk3QjBBN0EwMDc5MDA3ODAwMTJBM0M0Cis6MTA4ODVBMDAyMUFGMDM4RjVEQUY1Q0FFNUJBRDVBQUM1OTdCMEE3QTMwCis6MTA4ODZBMDAwMDc5MDA3ODAwMTJBMzIxOEY1QzhFNUI4RDVBOEM1OTk3Cis6MTA4ODdBMDBFNTVEQzM5NDA1NDAxNUU1NUMyNDAxRjU1Q0U0MzU1QkQwCis6MTA4ODhBMDBGNTVCRTQzNTVBRjU1QUU0MzU1OUY1NTk4NTYwODI4NTIwCis6MTA4ODlBMDA1RjgzQTNFNEYwODU2MDgyODU1RjgzQTNBM0EzRTA0NDlBCis6MTA4OEFBMDA4MEYwODU2MDgyODU1RjgzRTU1Q0YwQUY1Q0FFNUJBRDhFCis6MTA4OEJBMDA1QUFDNTk3ODA4MTJBM0M0ODU2MDgyODU1RjgzQTNFRkY2Cis6MTA4OENBMDBGMDg1NjA4Mjg1NUY4M0EzQTNBM0UwNTQ3RkYwRTRGNTdCCis6MTA4OERBMDA1REU1NTgyNDBCRjU4MkU0MzU1N0Y1ODNFMEZGMzBFMDc3Cis6MTA4OEVBMDAyMzU0MDFGMEU1NjAyNDA0RjU4MkU0MzU1RkY1ODNFMDYyCis6MTA4OEZBMDA1NEZERjBBRjVFNzQwMUE4MDcwODgwMDJDMzMzRDhGQ0E4Cis6MTA4OTBBMDA0MjIyODAzNjc0MDE3RTAwQTg1RTA4ODAwNUMzMzNDRUY5Cis6MTA4OTFBMDAzM0NFRDhGOUZGRTRFRjU1MjI2MDFGRTU2MDI0MDRGNTUxCis6MTA4OTJBMDA4MkU0MzU1RkY1ODNFMDQ0MDJGMEFGNUU3NDAxQTgwNzg0Cis6MTA4OTNBMDAwODgwMDJDMzMzRDhGQ0Y0NTIyMkU1NTgyNDA4RjU4MjkxCis6MTA4OTRBMDBFNDM1NTdGNTgzRTBGRkI0NjIwNTQzNUQwQTgwMUFFRjA4Cis6MTA4OTVBMDBCNDcyMDU0MzVEMDg4MDExRUZCNDc0MDU0MzVEMDI4MDZCCis6MTA4OTZBMDAwOEVGNjQ2RTYwMDM3RkZGMjJFNTU4MjQwQkY1ODJFNDZBCis6MTA4OTdBMDAzNTU3RjU4M0UwRkYzMEUzMDM0MzVEODBFRjMwRTcxMkJDCis6MTA4OThBMDA0MzVENDBFNTYwMjQwNEY1ODJFNDM1NUZGNTgzRTA0NDA1Cis6MTA4OTlBMDAwMkYwRTU1ODI0MEJGNTgyRTQzNTU3RjU4M0UwMzBFMTFGCis6MTA4OUFBMDAyMEFGNUU3NDAxQTgwNzA4ODAwMkMzMzNEOEZDNDIzMkE0Cis6MTA4OUJBMDBFNTYwMjQwNEY1ODJFNDM1NUZGNTgzRTA0NDAxRjA4MDQ0Cis6MTA4OUNBMDAxMEFGNUU3NDAxQTgwNzA4ODAwMkMzMzNEOEZDRjQ1MkMyCis6MTA4OURBMDAzMkU1NTgyNDBCRjU4MkU0MzU1N0Y1ODNFMEZGMzBFNDlECis6MTA4OUVBMDAxMUFFNUU3NDAxQTgwNjA4ODAwMkMzMzNEOEZDNDIzMTc2Cis6MTA4OUZBMDA4MDEwQUU1RTc0MDFBODA2MDg4MDAyQzMzM0Q4RkNGNDY2Cis6MTA4QTBBMDA1MjMxRUYyMEUxMDMzMEU0MDNFNEY1NUQ4NTYwODI4NUFECis6MTA4QTFBMDA1RjgzQTNBM0EzNzRCRkYwODU2MDgyODU1RjgzQTNBMzRBCis6MTA4QTJBMDBFNEYwRTU1REYwRTU1ODI0MEFGNTgyRTQzNTU3RjU4MzZDCis6MTA4QTNBMDBFMEZGRTU2MDI0MDRGNTgyRTQzNTVGRjU4M0VGRjBFNUI1Cis6MTA4QTRBMDA1ODI0MEFGNTgyRTQzNTU3RjU4M0UwRkZFNTYwMjQwNUVBCis6MTA4QTVBMDBGNTgyRTQzNTVGRjU4M0VGRjBFNTU4MjQwOUY1ODJFNDAxCis6MTA4QTZBMDAzNTU3RjU4M0UwRkZFNTYwMjQwNkY1ODJFNDM1NUZGNUM2Cis6MTA4QTdBMDA4M0VGRjBFNTU4MjQwOUY1ODJFNDM1NTdGNTgzRTBGRkUyCis6MTA4QThBMDBFNTYwMjQwN0Y1ODJFNDM1NUZGNTgzRUZGMDg1NjA4MkJGCis6MTA4QTlBMDA4NTVGODNBM0EzQTNFNEYwODU2MDgyODU1RjgzQTNBMzk0Cis6MTA4QUFBMDBGMDg1NTg4Mjg1NTc4M0EzRTBGQ0EzRTBGREEzRTBGRThFCis6MTA4QUJBMDBBM0UwRjU2NjhFNjU4RDY0OEM2MzdEMDZBRjVFMTI4M0Q2Cis6MTA4QUNBMDBERjc1NUQwOEU1NTgyNDBDRjU4MkU0MzU1N0Y1ODNFMDM3Cis6MTA4QURBMDA2MDAzNDM1RDEwRTU2MDI0MDRGNTgyRTQzNTVGRjU4M0E1Cis6MTA4QUVBMDBFMDU0MDM0NTVERjBFNTU4MjQwNUY1ODJFNDM1NTdGNTcxCis6MTA4QUZBMDA4M0UwRkVDMzk0MDU0MDA2RUVEMzk0MDg0MDAzN0ZGRjRCCis6MTA4QjBBMDAyMkU1NTgyNDA2RjU4MkU0MzU1N0Y1ODNFMEZEQzM5NDNGCis6MTA4QjFBMDAwMTQwMDZFREQzOTQwMjQwMDM3RkZGMjJFRDE0RkYyNUE2Cis6MTA4QjJBMDBFMDI1RTBGRkVFMjRGQjRGRjU1REU1NTgyNDA3RjU4MkNBCis6MTA4QjNBMDBFNDM1NTdGNTgzRTAyNEQwNjAxODE0NjAxQTI0QzM2MDIyCis6MTA4QjRBMDAxRTE0NjAwOTI0MEE3MDE0NDM1RDE4ODAxMjQzNUQwOERDCis6MTA4QjVBMDA4MDBENDM1RDM4ODAwODQzNUQyODgwMDM3RkZGMjI4NUFFCis6MTA4QjZBMDA2MDgyODU1RjgzQTNBM0EzRTU1REYwNzQwMTdFMDBBOEZDCis6MTA4QjdBMDA1RTA4ODAwNUMzMzNDRTMzQ0VEOEY5RkZFNEVGNTUzNDBGCis6MTA4QjhBMDA2MDA3QUY1RTdEMDExMjgzNUFBQTU3QTk1ODdCMDFDMEJDCis6MTA4QjlBMDAwM0MwMDFFNTVFNzVGMDBEQTQyNDAxRjk3NDAzMzVGMEY0Cis6MTA4QkFBMDBBODAxRkNBRDAzRDAwMUQwMDM3RTAwN0YwRDEyQTIxMkYyCis6MDI4QkJBMDA3RjAwM0EKKzowMThCQkMwMDIyOTYKKzoxMDhCQkQwMDhGODI4RTgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkVFNjgKKzoxMDhCQ0QwMDc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRDgyRkM5MDAxRjgKKzoxMDhCREQwMDJDNzQwOEYwRUUwNEEzRjBFNEEzRjA4RDgyOEM4M0U1RjEKKzoxMDhCRUQwMDgyMjQwNkY1ODJFNDM1ODNGNTgzRTA5MDAxMkZGMDhEMjQKKzoxMDhCRkQwMDgyOEM4M0U1ODIyNDA1RjU4MkU0MzU4M0Y1ODNFMDU0ODgKKzoxMDhDMEQwMDFFOTAwMTMwRjA3NDJEMkVGOEU2QTNGMEFGMDY3NDAxMUUKKzoxMDhDMUQwMEE4MDcwODgwMDJDMzMzRDhGQ0Y1NTdFNTMzQzM5NDAxODgKKzoxMDhDMkQwMDQwMEQ5MDIwNzhFMDU0MEY3NTU4MDBGNTU5ODAwOTdGNUMKKzoxMDhDM0QwMDAyMTIxMTI3OEU1ODhGNTlDM0U1NTg2NDgwOTQ4MDQwRDUKKzoxMDhDNEQwMERBRTU1NzU1NTk5MDAxMzJGMDdFMDE3RjJDN0QwNzEyRTAKKzowNDhDNUQwMDkxNkE3RjAwOTkKKzowMThDNjEwMDIyRjAKKzoxMDhDNjIwMDhGODI4RTgzRTAxNEZFQzM5NDA0NDAwMzdGRkYyMkVFQzIKKzoxMDhDNzIwMDc1RjAwOEE0MjQwMEY1ODJFNDM0MjBBRjgyRkU5MDAxNEUKKzoxMDhDODIwMDMzNzQwQUYwOEY4MjhFODNFNTgyMjQwNEY1ODJFNDM1MDAKKzoxMDhDOTIwMDgzRjU4M0UwOTAwMTM0RjA3RTAxN0YzMzdEMDIxMjkxRUYKKzowMzhDQTIwMDZBN0YwMEU2Cis6MDE4Q0E1MDAyMkFDCis6MDQ4Q0E2MDA4RTU3OEY1OEZFCis6MTA4Q0FBMDA4RjgyOEU4M0UwMTRGRUMzOTQwNDQwMDM3RkZGMjJFRTdBCis6MTA4Q0JBMDA3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUQ4MkZDODU1OEJFCis6MTA4Q0NBMDA4Mjg1NTc4M0EzRTA2MDBGRUQyNDA0RjU4MkU0M0NGNTI2Cis6MTA4Q0RBMDA4M0UwNDQwMkYwODA0M0VFNzVGMDBEQTQyNDBDRjU4MjgzCis6MTA4Q0VBMDBFNDM0MDNGNTgzRTAzMEUwMjBFRTI1RTAyNEM2RjU4MjgzCis6MTA4Q0ZBMDBFNDM0N0ZGNTgzRTAzMEUxRjA3RjYwRUQyNDA1RjU4MjBFCis6MTA4RDBBMDBFNDNDRjU4M0UwNUZCNTA3RjJBRTA0QUYwNUVGMjQwNDU3Cis6MEM4RDFBMDBGNTgyRTQzRUY1ODNFMDU0RkRGMDdGMDA5QworOjAxOEQyNjAwMjIyQQorOjA0OEQyNzAwQUQwN0FDMDZFMgorOjEwOEQyQjAwOEQ4MjhDODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyRUVGQworOjEwOEQzQjAwNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFGODJGRThEODIwNgorOjEwOEQ0QjAwOEM4M0EzRTA2MDBGRUYyNDA0RjU4MkU0M0VGNTgzRTAwRgorOjEwOEQ1QjAwNDQwMUYwODAwREVGMjQwNEY1ODJFNDNFRjU4M0UwNTRFQQorOjA0OEQ2QjAwRkVGMDdGMDA5NworOjAxOEQ2RjAwMjJFMQorOjA0OEQ3MDAwQUQwN0FDMDY5OQorOjEwOEQ3NDAwOEQ4MjhDODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyRUVCMworOjEwOEQ4NDAwNzVGMDA4QTQyNDAwRjU4MkU0MzQyMEFGODJGRThEODJCRAorOjEwOEQ5NDAwOEM4M0EzRTA2MDBEOEY4MjhFODNBM0EzQTNFMDQ0NDA2MQorOjEwOERBNDAwRjA4MDBCOEY4MjhFODNBM0EzQTNFMDU0QkZGMDdGMDBENworOjAxOERCNDAwMjI5QworOjEwOERCNTAwOEY4MjhFODNFMDE0RkVDMzk0MDQ0MDAzN0ZGRjIyQUZBRAorOjEwOERDNTAwMDY3NDAxQTgwNzA4ODAwMkMzMzNEOEZDNDIzRTdGMDAyMQorOjAxOERENTAwMjI3QgorOjA0OERENjAwOEU1NzhGNThDRAorOjEwOEREQTAwOEY4MjhFODNBM0UwRjU1QzhGODI4RTgzRTBGNTU5RDM3MAorOjEwOERFQTAwOTQwNDQwMDM3RkZGMjJFNTU5MjRGRTYwMTYxNDYwMUY5NQorOjEwOERGQTAwMTQ2MDI4MjQwMzcwMkU3RTdFN0Y4MDc1NUE3RTc1NUJGMAorOjEwOEUwQTAwODA4MDIyN0U3RTdGMDA3NTVBN0U3NTVCMDA4MDE2N0U4QQorOjEwOEUxQTAwN0Q3RjgwNzU1QTdENzU1QjgwODAwQTdFN0Q3RjAwNzVCNworOjEwOEUyQTAwNUE3RDc1NUIwMEU1NUM3MDFCODU1QjgyODU1QTgzNzQ4RAorOjEwOEUzQTAwRkZGMEU1NTkyNUUwMjRCNUY1ODJFNDM0N0ZGNTgzNzQyMworOjEwOEU0QTAwMDFGMDgwNDhFNTU4MjQwMkZGRTQzNTU3RkVFNTVDNjBFRQorOjEwOEU1QTAwMjMwRkVGQUMwNjcwMDEwRTE0RjU4MjhDODNFMEZEMDUzQQorOjEwOEU2QTAwNUJFNTVCQUE1QTcwMDIwNTVBMTRGNTgyOEE4M0VERjAxMworOjEwOEU3QTAwMTU1QzgwRDk4NTU4ODI4NTU3ODNBM0UwRkZFNTU5MjU3QgorOjBFOEU4QTAwRTAyNEI1RjU4MkU0MzQ3RkY1ODNFRkYwN0YwMDNECis6MDE4RTk4MDAyMkI3Cis6MTA4RTk5MDBFRjI0MDVGNTU4RTQzRUY1NTc5MDAxMzU3NDA3RjA5MDM1Cis6MTA4RUE5MDAwMTdBNzQwMUYwQTM3NDM2RjA4NTU4ODI4NTU3ODNBMzNCCis6MTA4RUI5MDBBM0EzRTBGRUEzRTA4RTU5RjU1QTg1NTg4Mjg1NTc4MzBFCis6MTA4RUM5MDBFMDI0OUU2MDYxMjRGOTYwMEUyNEYxNzAwMzAyOEY3QTE4Cis6MTA4RUQ5MDAyNDE0NjAwMzAyOEZDODg1NTg4Mjg1NTc4M0EzRTBGRTU2Cis6MTA4RUU5MDBBM0UwRkZDM0U0OUZGNTVDNzQwMTlFRjU1QkQzRTU1Q0U5Cis6MTA4RUY5MDA5NDNGRTU1Qjk0MDA0MDA2NzU1QjAwNzU1QzNGRDNFNUU0Cis6MTA4RjA5MDA1QTk1NUNFNTU5OTU1QjUwMDMwMjhGQ0JBRTVCQUY1QzFDCis6MTA4RjE5MDA4NTU4ODI4NTU3ODNBM0EzQTNFRUYwRkVBM0VGRjA4RUI1Cis6MTA4RjI5MDA1OUY1NUEwMjhGQ0I4NTU4ODI4NTU3ODNBM0UwRkVBMzUyCis6MTA4RjM5MDBFMEZGQzM3NDMwOUZGNTVDRTQ5RUY1NUJEM0U1NUM5NDc4Cis6MTA4RjQ5MDAxMEU1NUI5NDAwNDAwNjc1NUIwMDc1NUMxMEQzRTU1QTJCCis6MTA4RjU5MDA5NTVDRTU1OTk1NUI0MDZBQUU1QkFGNUM4NTU4ODI4NTQ3Cis6MTA4RjY5MDA1NzgzQTNBM0EzRUVGMEZFQTNFRkYwOEU1OUY1NUE4MDIxCis6MTA4Rjc5MDA1MTg1NTg4Mjg1NTc4M0EzRTBGRUEzRTBGRkMzRTQ5RjkwCis6MTA4Rjg5MDBGNTVDRTQ5RUY1NUI0NTVDNjAwQkQzRTU1Qzk0M0ZFNURECis6MTA4Rjk5MDA1Qjk0MDA0MDA2NzU1QjAwNzU1QzNGRDNFNTVBOTU1Q0IwCis6MTA4RkE5MDBFNTU5OTU1QjQwMUNBRTVCQUY1Qzg1NTg4Mjg1NTc4MzVDCis6MTA4RkI5MDBBM0EzQTNFRUYwRkVBM0VGRjA4RTU5RjU1QTgwMDM3RjI5Cis6MTA4RkM5MDAwMTIyODU1ODgyODU1NzgzRTAyNDlFNzAwMzAyOTA4Qjg1Cis6MTA4RkQ5MDAyNEY5NjA1ODI0RjE3MDAzMDI5MERCMjQxNDYwMDMwMjIxCis6MTA4RkU5MDA5MTFGODU1ODgyODU1NzgzQTNFMEZFQTNFMEZGRDM5NEEwCis6MTA4RkY5MDBGRkVFOTQwMDQwMDMwMjkxMUY5MDAxNzVFRkYwRTU1QUNFCis6MTA5MDA5MDAxNTVBQUU1OTcwMDIxNTU5NEU3MDAzMDI5MTFGOTAwMUZECis6MTA5MDE5MDA3NUUwRkYwNEYwQTgwN0U2RkY5MDAxN0FFNDc1RjAwMTE2Cis6MTA5MDI5MDAxMkEyOTc4NUYwODJGNTgzRUZGMDgwRDI4NTU4ODI4NTY4Cis6MTA5MDM5MDA1NzgzQTNFMEZFQTNFMEZGQzM5NDgwRUU5NDAwNTAwMzlFCis6MTA5MDQ5MDAwMjkxMUZEM0VGOTRGRkVFOTQwMDQwMDMwMjkxMUY5MDA5Cis6MTA5MDU5MDAwMTc2RUZGMEU1NUExNTVBQUU1OTcwMDIxNTU5NEU3MDVFCis6MTA5MDY5MDAwMzAyOTExRjkwMDE3NkUwRkYwNEYwQTgwN0U2RkY5MDQ0Cis6MTA5MDc5MDAwMTdBRTQ3NUYwMDExMkEyOTc4NUYwODJGNTgzRUZGMDg5Cis6MTA5MDg5MDA4MEQyODU1ODgyODU1NzgzQTNFMEZFQTNFMEZGQzM5NDZECis6MTA5MDk5MDAyMEVFOTQwMDUwMDMwMjkxMUZEM0VGOTQyRkVFOTQwMDE5Cis6MTA5MEE5MDA1MDc0OTAwMTc3RUZGMEU1NUExNTVBQUU1OTcwMDIxNUQwCis6MTA5MEI5MDA1OTRFNjA2MjkwMDE3N0UwRkYwNEYwQTgwN0U2RkY5MDNGCis6MTA5MEM5MDAwMTdBRTQ3NUYwMDExMkEyOTc4NUYwODJGNTgzRUZGMDM5Cis6MTA5MEQ5MDA4MEQ1ODU1ODgyODU1NzgzQTNFMEZGQTNFMDkwMDE3ODY2Cis6MTA5MEU5MDBDRkYwQTNFRkYwRTU1QTE1NUFBRTU5NzAwMjE1NTk0RTUzCis6MTA5MEY5MDA2MDI0OTAwMTc4RTQ3NUYwMDExMkEyOTc4NUYwODJGNTU5Cis6MTA5MTA5MDA4M0UwRkY5MDAxN0FFNDc1RjAwMTEyQTI5Nzg1RjA4MjVECis6MTA5MTE5MDBGNTgzRUZGMDgwQ0Y3RTAxN0YzNTg1NTg4Mjg1NTc4M0FGCis6MEQ5MTI5MDBBM0EzQTNFMEEzRTAwNEZEMTI5MTZBN0YwMDYwCis6MDE5MTM2MDAyMjE2Cis6MTA5MTM3MDA4RTYyOEY2MzhDNjQ4RDY1QUYwMzFCRUY2MDI0MDU2M0JDCis6MTA5MTQ3MDBFNTYzQUU2MjcwMDIwNTYyMTRGNTgyOEU4M0UwRkYwNTY3Cis6MTA5MTU3MDA2NUU1NjVBQzY0NzAwMjA1NjQxNEY1ODI4QzgzRUZGMEY1Cis6MDM5MTY3MDA4MEQ2MjI4RAorOjA2OTE2QTAwOEQ1REFCMDdBQTA2QjMKKzoxMDkxNzAwMDc1NjE0MDc1NjAwRDc1NUYwMzc1NUUwMDkwN0ZDMkUwOUMKKzoxMDkxODAwMDIwRTFGOUFGNjFBRTYwQUQ1RkFDNUVFQzRENEU0RjcwNkIKKzoxMDkxOTAwMDA4OTA3RkMyNzQwMkYwODBENzkwN0ZDMkUwMjBFMTE2NzEKKzoxMDkxQTAwMEFGMDNBRTAyN0M3QjdEODBBQjVEMTI5MTM3OTA3RkMzQjUKKzowODkxQjAwMEU1NURGMDdGMDEyMjdGMDA2NAorOjAxOTFCODAwMjI5NAorOjEwOTFCOTAwOTAwMTg0NzQwQkYwQTNFNTMzRjA5MDBBRjVFNDkzOTBFMQorOjEwOTFDOTAwMDE4NkYwOTAwQUY2RTQ5MzkwMDE4N0YwRTQ5MDAxN0MxRgorOjEwOTFEOTAwRjBBM0YwQTNGMEEzRjBBM0YwQTM3NDEwRjBBMzc0MDExQgorOjEwOTFFOTAwRjBBMzc0ODhGMDdFMDE3RjdDMTIxOUMxN0UwMTdGODQwRgorOjA3OTFGOTAwN0QxNDEyOTE2QTdGMDA1MgorOjAxOTIwMDAwMjI0QgorOjEwOTIwMTAwN0U3QjdGNDA3NTRFN0I3NTRGNDA5MDdGRDNFMEZGODUxRAorOjEwOTIxMTAwNEU1MTg1NEY1MkU1NTIyNDAxRjU1NkU0MzU1MUY1NTUyRAorOjEwOTIyMTAwRTRGNTUwODU1MjgyODU1MTgzRTBGRTE0QjQwQzAwNTA2MAorOjEwOTIzMTAwNUI5MDkyMzlGODI4Mjg3MzAyOTI1RDAyOTI1RDAyOTI0NgorOjEwOTI0MTAwNjcwMjkyNzEwMjkyNzEwMjkyNzEwMjkyODUwMjkyNUQ5RAorOjEwOTI1MTAwMDI5MjdCMDI5MjVEMDI5MjhEMDI5MjVERUY2NDAyNjA0NgorOjEwOTI2MTAwMkI3NTUwRkY4MDI2RUY2NDBFNjAyMTc1NTBGRjgwMUMyNgorOjEwOTI3MTAwRUY2NDAzNjAxNzc1NTBGRjgwMTJFRjY0MDM2MDBENzU5MgorOjEwOTI4MTAwNTBGRjgwMDhFRjY0MDY2MDAzNzU1MEZGRTU1MDYwMTVEQworOjEwOTI5MTAwOTAwMTk4NzQxMUYwQTNFRUYwN0UwMTdGOTg3RDAyMTI4NworOjEwOTJBMTAwOTE2QUFGNTAyMkU0RjU1MDg1NTI4Mjg1NTE4M0UwMTREMgorOjEwOTJCMTAwQjQwRjAwNDAwMzAyOTNDRjkwOTJDMEY4MjgyODczMDJBNAorOjEwOTJDMTAwOTJFRDAyOTJGOTAyOTMwNTAyOTM1MzAyOTM1RTAyOTM4NworOjEwOTJEMTAwNjkwMjkzNzQwMjkzN0YwMjkzOEEwMjkzOTUwMjkzQTA4OQorOjEwOTJFMTAwMDI5M0E3MDI5M0NGMDI5M0IyMDI5M0JEQUY1NkFFNTUzQworOjEwOTJGMTAwMTI4NDQxOEY1MDAyOTNEMkFGNTZBRTU1MTI4NTYxOEZDMQorOjEwOTMwMTAwNTAwMjkzRDI4NTU1NTM4NTU2NTRFNTU0MjQwMUZGRTQwOAorOjEwOTMxMTAwMzU1M0ZFMTI4NkJFQUY1NEFFNTMxMjg3NTE4RjUwRUZCNAorOjEwOTMyMTAwNjQwMTYwMDMwMjkzRDJBRjU0QUU1MzEyODdBNjhGNTBFQgorOjEwOTMzMTAwRTU1MDcwMDMwMjkzRDI4NTU0ODI4NTUzODNFMDc1RjAyMgorOjEwOTM0MTAwMERBNDI0RjRGNTgyRTQzNDAyQUY4MkZFMTI4N0E2MDI1MgorOjEwOTM1MTAwOTNEMkFGNTZBRTU1MTI4Q0E2OEY1MDgwNzRBRjU2QUVENQorOjEwOTM2MTAwNTUxMjhEMjc4RjUwODA2OUFGNTZBRTU1MTI4RDcwOEY3MworOjEwOTM3MTAwNTA4MDVFQUY0RkFFNEUxMjhFOTk4RjUwODA1M0FGNTZENAorOjEwOTM4MTAwQUU1NTEyOEJCRDhGNTA4MDQ4QUY1NkFFNTUxMjg2MkQwQgorOjEwOTM5MTAwOEY1MDgwM0RBRjU2QUU1NTEyOEM2MjhGNTA4MDMyMTI4NQorOjEwOTNBMTAwOTFCOThGNTA4MDJCQUY1NkFFNTUxMjhEQjU4RjUwODAyRAorOjEwOTNCMTAwMjBBRjU2QUU1NTEyOERENjhGNTA4MDE1QUY0RkFFNEVBMQorOjEwOTNDMTAwN0MwMjdEQUY3QjQwMTI5MTM3RTRGNTUwODAwMzc1NTBFQworOjEwOTNEMTAwRkZFNTUwNjAxRDkwMDE5ODc0MTFGMDg1NTI4Mjg1NTEwRQorOjEwOTNFMTAwODNFMDkwMDE5OUYwN0UwMTdGOTg3RDAyMTI5MTZBQUYyRQorOjEwOTNGMTAwNTAyMjg1NTI4Mjg1NTE4M0UwRkYxNDI0RkE1MDA0MjRCRgorOjEwOTQwMTAwRkU3MDFGOTAwMTk4NzQxMEYwQTNFRkYwODU1NjgyODVDRAorOjEwOTQxMTAwNTU4M0UwOTAwMTlBRjA3RTAxN0Y5ODdEMDMxMjkxNkE1NQorOjA0OTQyMTAwOEY1MEFGNTA2OQorOjAxOTQyNTAwMjIyNAorOjA4OTQyNjAwOEY1MThFNTA4RDRGOEM0RUNBCis6MTA5NDJFMDA3NTU4MDE3NTU5OUNFNEY1NTdBRjUzMTU1M0VGNzAwM0ZBCis6MTA5NDNFMDAwMjk0QzRBRjUyRTRGQ0ZERkVGOEY5RkFBQjA3QUY1MTRCCis6MTA5NDRFMDBBRTUwQUQ0RkFDNEUxMkEzMjFBRjAzOEY1NkFGNTFBRUZGCis6MTA5NDVFMDA1MEFENEZBQzRFQzAwNEMwMDVDMDA2QzAwN0FGNTJFNEJECis6MTA5NDZFMDBGQ0ZERkVGOEY5RkFBQjA3RDAwN0QwMDZEMDA1RDAwNDA0Cis6MTA5NDdFMDAxMkEzMjE4RjUxOEU1MDhENEY4QzRFRTU1NjI0MzBGNTEwCis6MTA5NDhFMDA1NkQzOTQzOTQwMDY3NDA3MjU1NkY1NTYwNTU5RTU1OUI1Cis6MTA5NDlFMDBBRTU4NzAwMjA1NTgxNEY1ODI4RTgzRTRGMDA1NTlFNTM2Cis6MTA5NEFFMDA1OUFFNTg3MDAyMDU1ODE0RjU4MjhFODNFNTU2RjAwNUI0Cis6MTA5NEJFMDA1NzA1NTcwMjk0MzdFNTU5MTU1OTcwMDIxNTU4QUY1NzhECis6MTA5NENFMDAxNTU3RUY2MDIzRTU1OTE1NTlBRTU4NzAwMjE1NThGNTJBCis6MTA5NERFMDA4MjhFODNFMEZGMDU1NUU1NTVBQzU0NzAwMjA1NTQxNDk5Cis6MDg5NEVFMDBGNTgyOEM4M0VGRjA4MEQ2QkIKKzowMTk0RjYwMDIyNTMKKzoxMDk0RjcwMEU0OTAwMUM5RjA3RTAxN0ZDQTkwMDFCRUVFRjBBM0VGQjAKKzowQTk1MDcwMEYwOTAwMUMyRUVGMEEzRUZGMDIyOTUKKzoxMDk1MTEwMEFBMDdBOTA1OTAwMUM5RTBDMzk0NDA1MDYxQUMwMjc0NDcKKzoxMDk1MjEwMDAxN0UwMEE4MDQwODgwMDVDMzMzQ0UzM0NFRDhGOUZGRUQKKzoxMDk1MzEwMEU0RUY1NTM0NjA0NUVBMDRGRjkwMDFDMkUwRkNBM0UwOEEKKzoxMDk1NDEwMEZERjU4MjhDODNFRkYwQTNFOUYwOEQ4MjhDODNBM0EzRDgKKzoxMDk1NTEwMEVCRjA5MDAxQzJFNDc1RjAwMzEyQTI4MUZDRDNFNUYwQjcKKzoxMDk1NjEwMDk0ODdFQzk0MDI0MDBBOTAwMUMyNzQwMUYwQTM3NENBN0EKKzoxMDk1NzEwMEYwQzJBRjkwMDFDOUUwMDRGMEQyQUY3RjAxMjI3RjAwQjkKKzowMTk1ODEwMDIyQzcKKzoxMDk1ODIwMDkwMDFDOUUwRDM5NDAwNDA1NTkwMDFCRUUwRkNBM0UwRjUKKzoxMDk1OTIwMEFBMDRGOTdCMDFDMDAzQzAwMkMwMDFBQTA2QTkwN0E4NTgKKzoxMDk1QTIwMDAxQUMwMkFEMDNEMDAxRDAwMkQwMDM3RTAwN0YwMzEyRDIKKzoxMDk1QjIwMEEyMTI5MDAxQkVFNDc1RjAwMzEyQTI4MUZDRDNFNUYwODEKKzoxMDk1QzIwMDk0ODdFQzk0MDI0MDBBOTAwMUJFNzQwMUYwQTM3NENBMUQKKzoxMDk1RDIwMEYwQzJBRjkwMDFDOUUwMTRGMEQyQUY3RjAxMjI3RjAwNDgKKzowMTk1RTIwMDIyNjYKKzoxMDk1RTMwMDkwN0ZDMkUwMjBFMTczN0U3QjdGODA3NTUzN0I3NTU0NEYKKzoxMDk1RjMwMDgwRTU1NDI0MDFGRkU0MzU1M0E5MDc3QjAxOEI1NUY1MUUKKzoxMDk2MDMwMDU2ODk1N0ZFMTI5NTgyRUY2MDUwQUI1NUFBNTZBOTU3NUIKKzoxMDk2MTMwMDEyQTIzQjE0RkY5MDAwMDExMkEyNTRCNDAyMTZDMkFGNkYKKzoxMDk2MjMwMEVGNzVGMDA4QTQyNDAxRjU4MkU0MzQyMEY1ODNFMDQ0QzcKKzoxMDk2MzMwMDA0RjBEMkFGNzQwMTdFMDBBODA3MDg4MDA1QzMzM0NFQkYKKzoxMDk2NDMwMDMzQ0VEOEY5RkZFNEVGNTUzNDYwMEY4NTU0ODI4NTUzNDgKKzowQTk2NTMwMDgzNzQwREYwOTA3RkMzNzQwNEYwREYKKzowMTk2NUQwMDIyRUEKKzoxMDk2NUUwMDEyOTVFM0U0RjU0RTc0M0EyNTRFRjhFNjU0RjBGNTRGQzQKKzoxMDk2NkUwMDc0QzUyNTRFRjU4MkU0MzQwMUY1ODNFMDY1NEZGRkM0RTEKKzoxMDk2N0UwMDU0MEZGNTUwNjAyMjc0QzUyNTRFRjU4MkU0MzQwMUY1ODEKKzoxMDk2OEUwMDgzRTU0RkYwQUY0RTdEMDFFNTRGNDU1MEZCMTI5NTExMkUKKzoxMDk2OUUwMEVGNzAwNTEyOTVFMzgwRUMwNTRFRTU0RUMzOTQwNDQwNDEKKzoxMDk2QUUwMEI1MTI5NUUzRTUzRTYwNDhFNEY1NEVBRjRFNzQwMUE4NjEKKzoxMDk2QkUwMDA3MDg4MDAyQzMzM0Q4RkNGNTRGNTUzRTYwMjlFNTRFQUUKKzoxMDk2Q0UwMDc1RjAwOEE0MjQwNUY1ODJFNDM0MjBGNTgzRTAzMEU2MzUKKzoxMDk2REUwMDE2QUY0RTdEMDQ3QjgwMTI5NTExRUY3MDA1MTI5NUUzNDcKKzoxMDk2RUUwMDgwRUZFNTRGRjQ1MjNFMDU0RUU1NEVDMzk0MDQ0MEJCNjkKKzoxMDk2RkUwMDkwMDMwMEUwNjAwMzAyOTdERjc0MTlGMEU1MzNDMzk0MjIKKzoxMDk3MEUwMDAxNDAwRDkwMjA3OEUwNTQwRjc1NTEwMEY1NTI4MDA5RkMKKzoxMDk3MUUwMDdGMDIxMjExMjc4RTUxOEY1MkMzRTU1MTY0ODA5NDgwQkYKKzoxMDk3MkUwMDQwREE5MDAxQkNFMDY1NTJGMDYwMzdFNEY1NEVBRjRFODIKKzoxMDk3M0UwMDc0MDFBODA3MDg4MDAyQzMzM0Q4RkNGNTRGOTAwMUJDMTIKKzoxMDk3NEUwMEUwNTU0RjYwMTRBRjRFN0QwOEU1NEY1NTUyRkIxMjk1MTQKKzoxMDk3NUUwMDExRUY3MDA1MTI5NUUzODBFQzA1NEVFNTRFQzM5NDA0QUYKKzoxMDk3NkUwMDQwQ0M5MDAxQkNFNTUyRjBFNEY1NEVDMkFGNzQzNjI1MDQKKzoxMDk3N0UwMDRFRjhFNkY1NEZFNEY2RDJBRjUzNEYxRUU1NEY2MDExQUIKKzoxMDk3OEUwMEFGNEU3RDAyQUI0RjEyOTUxMUVGNzAwNTEyOTVFMzgwMkYKKzoxMDk3OUUwMEVGNzQyRDI1NEVGOEU2RjU0Rjc0RkMyNTRFRjU4MkU0NTgKKzoxMDk3QUUwMDM0MDJGNTgzRTA2NTRGNjAxMUFGNEU3RDA0QUI0RjEyNkUKKzoxMDk3QkUwMDk1MTFFRjcwMDUxMjk1RTM4MEVGNzRGQzI1NEVGNTgyM0UKKzoxMDk3Q0UwMEU0MzQwMkY1ODNFNTRGRjAwNTRFRTU0RUMzOTQwNDQwQjQKKzowNDk3REUwMDlBMTI5NUUzNjMKKzowMTk3RTIwMDIyNjQKKzowQzk3RTMwMDc4N0ZFNEY2RDhGRDc1ODE2NzAyOTgyQUIzCis6MTA5N0VGMDAwMjA1QURFNDkzQTNGOEU0OTNBMzQwMDNGNjgwMDFGMkRFCis6MTA5N0ZGMDAwOERGRjQ4MDI5RTQ5M0EzRjg1NDA3MjQwQ0M4QzMzMzdCCis6MTA5ODBGMDBDNDU0MEY0NDIwQzg4MzQwMDRGNDU2ODAwMTQ2RjZERjQ5Cis6MTA5ODFGMDBFNDgwMEIwMTAyMDQwODEwMjA0MDgwOTA5ODZGRTQ3RUQyCis6MTA5ODJGMDAwMTkzNjBCQ0EzRkY1NDNGMzBFNTA5NTQxRkZFRTQ5MzNFCis6MTA5ODNGMDBBMzYwMDEwRUNGNTRDMDI1RTA2MEE4NDBCOEU0OTNBMzA1Cis6MTA5ODRGMDBGQUU0OTNBM0Y4RTQ5M0EzQzhDNTgyQzhDQUM1ODNDQTMwCis6MTA5ODVGMDBGMEEzQzhDNTgyQzhDQUM1ODNDQURGRTlERUU3ODBCRUU4Cis6MTA5ODZGMDA2MDI0MDI4QTAxMDIwNDA4MTAyMDQwODA4MTgyODQ4OENCCis6MTA5ODdGMDA5MEEwQzBDMUMyQzRDOEQwRTBFMUUyRTRFOEYwRjFGMkM4Cis6MDg5ODhGMDBGNEY4RjlGQUZDRkRGRUZGRkMKKzowMTk4OTcwMDAwRDAKKzowODk4OTgwMDhCNTk4QTVBODk1QjhENUMzMworOjEwOThBMDAwRTRGNTVERjU1RUFGNUMxNTVDRUY2MDM2QUI1OTA1NUJDQQorOjEwOThCMDAwRTU1QkFBNUE3MDAyMDU1QTE0RjkxMkEyM0JGRkU1NUQ1NgorOjEwOThDMDAwRTU1RTZGMjVFMEZGRTQzM0ZFNzQ5NTJGRjU4MkVFMzRGQworOjEwOThEMDAwOUVGNTgzRTU1REZGRTQ5M0Y1NUQ3NDAxOTM2RkY1NUU5RQorOjA2OThFMDAwODBDM0FFNURBRjVFMjcKKzowMTk4RTYwMDIyNUYKKzowQjk4RTcwMEMwRTBDMDgzQzA4MkMwRDA3NUQwMTg2NAorOjEwOThGMjAwOTAyMDYwRTA1NDBGRkUzMEUwMDU5MDIwMDJFMEZGRUU4MQorOjEwOTkwMjAwMzBFMTA1OTAyMDBBRTBGRkVFMzBFMjA1OTAyMDEyRTBGRgorOjEwOTkxMjAwRkZFRTMwRTMwNTkwMjAxQUUwRkY5MDAxQzRFMEI1MUU4RgorOjBBOTkyMjAwMDRFNEYwODAwNTkwMDFDNEVFRjBBQgorOjA5OTkyQzAwRDBEMEQwODJEMDgzRDBFMDMyMEIKKzowMjk5MzUwMEE5MDM4NAorOjEwOTkzNzAwRUY3NUYwMDhBNDI0MDBGNTgyRTQzNDIwQUI4MkZBRTU0MQorOjEwOTk0NzAwNUM0NTVERjU1RUU5NjAxNDhBODNFNTgyMjQwNEY1ODI0RgorOjEwOTk1NzAwRTQzNTgzRjU4M0UwNERGMEU0RkU4MDEzRUIyNDA0RjU1MgorOjEwOTk2NzAwODJFNDNBRjU4M0UwRkZFREY0RkNFRjVDRjBBRTVFRUJFQQorOjEwOTk3NzAwMjQwNkY1ODJFNDNBRjU4M0UwNTU1RUZDQjUwNjAzQUZBRAorOjEwOTk4NzAwMDUyMkU1NUM1Q0ZFRTU1RDVDRkRFOTYwMTZFRTcwMDRCMgorOjEwOTk5NzAwN0YwMTgwMDI3RjAwQUUwN0VENzAwNDdGMDE4MDAyN0ZBOAorOjEwOTlBNzAwMDBBRDA3RUU2MDAzQUY1QzIyRUQ2MDAzQUY1RDIyN0Y4MQorOjAxOTlCNzAwMDBBRgorOjAxOTlCODAwMjI4QworOjEwOTlCOTAwNzU1NTAyNzU1NkIwOTAwMzM1NzQwRkYwODU1NjgyODUzQQorOjEwOTlDOTAwNTU4M0EzRTBGRjkwMDMzN0YwODU1NjgyODU1NTgzRTBFMAorOjEwOTlEOTAwOTAwMzM2RjA5MDAzMzg3NEZGRjA3NTU3MDM3NTU4MzlDMgorOjEwOTlFOTAwRUYxNEI0MEIwMDQwMDMwMjlFNUQ5MDk5RkFGODI4MjgwMQorOjEwOTlGOTAwNzMwMjlBMUIwMjlBQkEwMjlCQkYwMjlCREUwMjlCREU4QworOjEwOUEwOTAwMDI5Qzk0MDI5Q0NGMDI5Q0Y0MDI5REIyMDI5REUyMDI0OAorOjEwOUExOTAwOUUwRUU0RjU0RUU1NEU3NUYwMDhBNDI0MDBGNTgyRTRBNworOjEwOUEyOTAwMzQyMEFGODJGNTUzOEY1NEU0RkZFNEZFRUY2MDEwNzRFNQorOjEwOUEzOTAwOEEyRUY1ODJFNDM0MDJGNTgzRTBGNEY1NEY4MDBENzQ0MworOjEwOUE0OTAwOEEyRUY1ODJFNDM0MDJGNTgzRTBGNTRGRTU1NDI0MDdDNAorOjEwOUE1OTAwRjU4MkU0MzU1M0Y1ODNFNTRGRjBFMEY1NTA2NTRGNjA0NQorOjEwOUE2OTAwMzhFNDkwMDMzOEYwRTU0RTA0RkQwNTU4RTU1OEFBNTc0NworOjEwOUE3OTAwNzAwMjA1NTcxNEY1ODI4QTgzRURGMDA1NThFNTU4QUM1NAorOjEwOUE4OTAwNTc3MDAyMDU1NzE0RjU4MjhDODNFNTRGRjA4NTU4ODI4QgorOjEwOUE5OTAwODU1NzgzRTU1MEYwMDI5RTYzMEVCRTI0OEYwRkVGNjQ1NQorOjEwOUFBOTAwMDI3MDg3MDU0RUU1NEU2NDA0NjAwMzAyOUExRTAyOUUwOQorOjEwOUFCOTAwNjNFNEY1NEVBRjRFRTRGRDEyODM1QTA1NEVFNTRFRDNFRAorOjEwOUFDOTAwOTQwMzQwRjA5MDAwMDQ3NDk4RjBBMzc0RTdGMEU0RjU2RgorOjEwOUFEOTAwNTA3RTIwN0YwMDc1NTMyMDc1NTQwMEY1NEVBRjRFNzRBQgorOjEwOUFFOTAwMDFBODA3MDg4MDAyQzMzM0Q4RkNGNTRGOTAwMUM0RjBFMAorOjEwOUFGOTAwOTAwMUMwRTRGMEEzNzQwQUYwODU1NDgyODU1MzgzQTNDRQorOjEwOUIwOTAwNzQwMkYwOTAwMUM0RTBCNTRGMzQ5MDAxQzBFMDcwMDJENgorOjEwOUIxOTAwQTNFMDcwRUY5MDAzMzhGMEU1NEUwNEZGMDU1OEU1NThDRgorOjEwOUIyOTAwQUM1NzcwMDIwNTU3MTRGNTgyOEM4M0VGRjA4NTU4ODI4MworOjEwOUIzOTAwODU1NzgzNzRGRkYwRTQ5MDAxQzRGMDc1NTBGRjkwMDFEQworOjEwOUI0OTAwQzRFMEZGNjAzN0U0OTAwMzM4RjBFNTRFMDRGRTA1NThBMQorOjEwOUI1OTAwRTU1OEFDNTc3MDAyMDU1NzE0RjU4MjhDODNFRUYwMDU3MQorOjEwOUI2OTAwNThFNTU4QUM1NzcwMDIwNTU3MTRGNTgyOEM4M0VGRjAwRAorOjEwOUI3OTAwODU1ODgyODU1NzgzRTU0RkYwNzU1MEZGRTU1MDcwMTY3QgorOjEwOUI4OTAwNzQwODI1NTRGNTU0RTQzNTUzRjU1MzA1NEVFNTRFNjRGMAorOjEwOUI5OTAwMDQ2MDAzMDI5QUU2RTRGNTRFQUY0RTdEMDExMjgzNUE0MgorOjEwOUJBOTAwMDU0RUU1NEVEMzk0MDM0MEYwOTAwMDA0NzQxM0YwQTNERQorOjEwOUJCOTAwNzQxMkYwMDI5RTYzODU1NjgyODU1NTgzRTAxNEZGNzQwMgorOjEwOUJDOTAwMDFBODA3MDg4MDAyQzMzM0Q4RkM5MDAyRjdGMDkwMDE3RQorOjEwOUJEOTAwQzRGMDAyOUU2MzkwMDFDMDc0MDNGMEEzNzRFOEYwRTQzQQorOjEwOUJFOTAwRjU1MDkwMDJGN0UwRkY5MDAxQzRFMEI1MDcxOTkwMDEyNAorOjEwOUJGOTAwQzBFMDcwMDJBM0UwNzBFQTkwMDMzOEYwODU1ODgyODVDRQorOjEwOUMwOTAwNTc4Mzc0RkZGMEY1NTBFNTUwNjAwMzAyOUU2MzkwMDE5RAorOjEwOUMxOTAwQzBGMEEzNzQ5NkYwOTAwMUMwRTA3MDAyQTNFMDcwRjY2MgorOjEwOUMyOTAwRTUzM0MzOTQwMTQwMEQ5MDIwNzhFMDU0MEY3NTUxMDAzRAorOjEwOUMzOTAwRjU1MjgwMDk3RjAyMTIxMTI3OEU1MThGNTJDM0U1NTFDNworOjEwOUM0OTAwNjQ4MDk0ODA0MERBRTU1MjU0MEZGNTUwOTAwMkY3RTBCMQorOjEwOUM1OTAwNTU1MDcwMDQ3RjAxODAwMjdGMDA4RjRGODU1NjgyODVBMQorOjEwOUM2OTAwNTU4M0EzRTBCNDA1MENFNTRGNzAwNDdGMDE4MDAyN0ZBMgorOjEwOUM3OTAwMDA4RjRGRTU0RjcwMDMwMjlFNjNFNDkwMDMzOEYwODUyRgorOjEwOUM4OTAwNTg4Mjg1NTc4M0U1NTBGMDAyOUU2M0U0RkZGRDEyODNGNQorOjEwOUM5OTAwNUE3RTIwN0YwMDc1NTMyMDc1NTQwMDg1NTQ4Mjg1NTM2MAorOjEwOUNBOTAwODNBM0EzQTNFMDQ0ODBGMDg1NTQ4Mjg1NTM4Mzc0MDE4MAorOjEwOUNCOTAwRjBBM0U0RjA4NTU0ODI4NTUzODNBM0EzQTNFMDU0N0ZFMgorOjEwOUNDOTAwRjBEMjA0MDI5RTYzQzIwNDdFMjA3RjAwNzU1MzIwNzU4MgorOjEwOUNEOTAwNTQwMEU1NTQyNDA1RjU4MkU0MzU1M0Y1ODNFMDMwRTY3NAorOjEwOUNFOTAwRjFFNEZGN0QwMTEyODM1QTAyOUU2M0U0RjU1MEY1NEVCQgorOjEwOUNGOTAwQUY0RUU0RkQxMjgzNUFFNTRFNzVGMDA4QTQyNDAwRjUzMQorOjEwOUQwOTAwODJFNDM0MjBBRjgyRjU1MzhGNTRGNTgzRTU4MjI0MDQyRAorOjEwOUQxOTAwRjU4MkU0MzU4M0Y1ODNFMDU0RkNGMEFGNEU3RDAxN0I5OQorOjEwOUQyOTAwMDE3NTVDODA3NTVENDAxMjk5MzU4RjUwRTU1MDcwMTE1MQorOjEwOUQzOTAwQUY0RTdEMDI3QjAxNzU1QzEwNzU1RDIwMTI5OTM1OEZFMAorOjEwOUQ0OTAwNTBFNTUwNzAxMEFGNEU3RDAxRkI3NTVDODA3NTVENDAyQworOjEwOUQ1OTAwMTI5OTM1OEY1MEU1NTA3MDEwQUY0RTdEMDJGQjc1NUMzRQorOjEwOUQ2OTAwMTA3NTVEMjAxMjk5MzU4RjUwQUY0RTdEMDExMjgzNUFCRgorOjEwOUQ3OTAwRTU1MDYwMjZFNDkwMDMzOEYwRTU0RTA0RkYwNTU4RTUwOAorOjEwOUQ4OTAwNThBQzU3NzAwMjA1NTcxNEY1ODI4QzgzRUZGMDg1NTg0QgorOjEwOUQ5OTAwODI4NTU3ODNFNTUwRjAwMjlFNjMwNTRFRTU0RUQzOTRDNAorOjEwOURBOTAwMDM1MDAzMDI5Q0Y5MDI5RTYzRTQ5MDAzNTlGMEEzRjA2NworOjEwOURCOTAwQTNGMEEzRjBBM0YwQTM3NDEwRjBBMzc0OUVGMEEzNzQwRQorOjEwOURDOTAwODVGMDdFMDM3RjU5MTI4MUQ5RUY2NDA4NzAwMzAyOUVFMgorOjEwOUREOTAwNjNFNDkwMDMzOEYwMDI5RTYzRTQ5MDAzNTlGMEEzRjAyMgorOjEwOURFOTAwQTNGMEEzRjBBM0YwQTM3NDEwRjBBM0U1NTdGMEEzRTU0MworOjEwOURGOTAwNThGMDdFMDM3RjU5MTIxOUMxRUY2NDA4NjA1Q0U0OTA0MgorOjEwOUUwOTAwMDMzOEYwODA1NUU1NTYyNDAyRkZFNDM1NTVGQUE5MDdEMQorOjEwOUUxOTAwN0IwMTdEMTAxMjk4OThFRjRFNzAzMjkwMDM1OUYwQTM5MAorOjEwOUUyOTAwRjBBM0YwQTNGMEEzRjBBMzc0MTBGMEU1NTYyNDAyOTA3OAorOjEwOUUzOTAwMDM2MEYwRTQzNTU1OTAwMzVGRjA3RTAzN0Y1OTEyODE4QQorOjEwOUU0OTAwRDlFRjY0MDg2MDE0RTQ5MDAzMzhGMDgwMERFNDkwMDNCRQorOjEwOUU1OTAwMzhGMDgwMDY5MDAzMzg3NDAxRjA5MDAxQzBFNEYwQTM1MworOjEwOUU2OTAwNzQwQUYwOTAwMUMwRTA3MDAyQTNFMDcwRjY3RTAzN0ZFRgorOjBCOUU3OTAwMzU3RDI0MTI5MTZBRTQ5MDAyQUZGMEU2Cis6MDE5RTg0MDAyMkJCCis6MTA5RTg1MDBGRkZFRkNGOEYwRTBDMDgwMDAwMTAzMDcwRjFGM0Y3RkQ1Cis6MTA5RTk1MDAwMDAwQzBDMUMxODEwMTQwQzMwMTAzQzAwMjgwQzI0MUFECis6MTA5RUE1MDBDNjAxMDZDMDA3ODBDNzQxMDUwMEM1QzFDNDgxMDQ0MDdECis6MTA5RUI1MDBDQzAxMENDMDBEODBDRDQxMEYwMENGQzFDRTgxMEU0MDJECis6MTA5RUM1MDAwQTAwQ0FDMUNCODEwQjQwQzkwMTA5QzAwODgwQzg0MTNECis6MTA5RUQ1MDBEODAxMThDMDE5ODBEOTQxMUIwMERCQzFEQTgxMUE0MEFECis6MTA5RUU1MDAxRTAwREVDMURGODExRjQwREQwMTFEQzAxQzgwREM0MTdECis6MTA5RUY1MDAxNDAwRDRDMUQ1ODExNTQwRDcwMTE3QzAxNjgwRDY0MUFECis6MTA5RjA1MDBEMjAxMTJDMDEzODBEMzQxMTEwMEQxQzFEMDgxMTA0MEJDCis6MTA5RjE1MDBGMDAxMzBDMDMxODBGMTQxMzMwMEYzQzFGMjgxMzI0MEFDCis6MTA5RjI1MDAzNjAwRjZDMUY3ODEzNzQwRjUwMTM1QzAzNDgwRjQ0MTdDCis6MTA5RjM1MDAzQzAwRkNDMUZEODEzRDQwRkYwMTNGQzAzRTgwRkU0MTJDCis6MTA5RjQ1MDBGQTAxM0FDMDNCODBGQjQxMzkwMEY5QzFGODgxMzg0MDNDCis6MTA5RjU1MDAyODAwRThDMUU5ODEyOTQwRUIwMTJCQzAyQTgwRUE0MUFDCis6MTA5RjY1MDBFRTAxMkVDMDJGODBFRjQxMkQwMEVEQzFFQzgxMkM0MDdDCis6MTA5Rjc1MDBFNDAxMjRDMDI1ODBFNTQxMjcwMEU3QzFFNjgxMjY0MEFDCis6MTA5Rjg1MDAyMjAwRTJDMUUzODEyMzQwRTEwMTIxQzAyMDgwRTA0MUJDCis6MTA5Rjk1MDBBMDAxNjBDMDYxODBBMTQxNjMwMEEzQzFBMjgxNjI0MEFDCis6MTA5RkE1MDA2NjAwQTZDMUE3ODE2NzQwQTUwMTY1QzA2NDgwQTQ0MTdDCis6MTA5RkI1MDA2QzAwQUNDMUFEODE2RDQwQUYwMTZGQzA2RTgwQUU0MTJDCis6MTA5RkM1MDBBQTAxNkFDMDZCODBBQjQxNjkwMEE5QzFBODgxNjg0MDNDCis6MTA5RkQ1MDA3ODAwQjhDMUI5ODE3OTQwQkIwMTdCQzA3QTgwQkE0MUFDCis6MTA5RkU1MDBCRTAxN0VDMDdGODBCRjQxN0QwMEJEQzFCQzgxN0M0MDdDCis6MTA5RkY1MDBCNDAxNzRDMDc1ODBCNTQxNzcwMEI3QzFCNjgxNzY0MEFDCis6MTBBMDA1MDA3MjAwQjJDMUIzODE3MzQwQjEwMTcxQzA3MDgwQjA0MUJCCis6MTBBMDE1MDA1MDAwOTBDMTkxODE1MTQwOTMwMTUzQzA1MjgwOTI0MUFCCis6MTBBMDI1MDA5NjAxNTZDMDU3ODA5NzQxNTUwMDk1QzE5NDgxNTQ0MDdCCis6MTBBMDM1MDA5QzAxNUNDMDVEODA5RDQxNUYwMDlGQzE5RTgxNUU0MDJCCis6MTBBMDQ1MDA1QTAwOUFDMTlCODE1QjQwOTkwMTU5QzA1ODgwOTg0MTNCCis6MTBBMDU1MDA4ODAxNDhDMDQ5ODA4OTQxNEIwMDhCQzE4QTgxNEE0MEFCCis6MTBBMDY1MDA0RTAwOEVDMThGODE0RjQwOEQwMTREQzA0QzgwOEM0MTdCCis6MTBBMDc1MDA0NDAwODRDMTg1ODE0NTQwODcwMTQ3QzA0NjgwODY0MUFCCis6MTBBMDg1MDA4MjAxNDJDMDQzODA4MzQxNDEwMDgxQzE4MDgxNDA0MEJCCis6MTBBMDk1MDBFNEZGNzRGODJGRjU4MkU0MzQwMkY1ODNFMDcwMDMwMkRGCis6MTBBMEE1MDBBMTM4NzQzQTJGRjhFNjIwRTUwMzAyQTEzOEVGNzVGMEUwCis6MTBBMEI1MDAwOEE0MjQwMEY1ODJFNDM0MjBBRDgyRkNGNTgzRTU4MjEyCis6MTBBMEM1MDAyNDA1RjU4MkU0MzU4M0Y1ODNFMDU0NjA2NDYwNzA2M0FDCis6MTBBMEQ1MDBFRjI1RTAyNEVGRjU4MkU0MzQwMkY1ODNFNDc1RjAwMTIxCis6MTBBMEU1MDAxMkEyOTc4NUYwODJGNTgzRTA4RDgyOEM4M0YwNzRGODU3Cis6MTBBMEY1MDAyRkY1ODJFNDM0MDJGNTgzRTAxNEYwNzAzNkVGMjVFMEE1Cis6MTBBMTA1MDAyNEM3RjU4MkU0MzQ3RkY1ODNFNEYwRUYyNUUwRkVDMzUwCis6MTBBMTE1MDA3NDBDOUU3NUYwNDBBNDI0NDBGNTgyRTVGMDM0N0JBREM3Cis6MTBBMTI1MDA4MkZDRUYyNUUwMjRFRkY1ODJFNDM0MDJGNTgzRUNGMEMwCis6MENBMTM1MDBBM0VERjAwRkVGNjQwNDYwMDMwMkEwOTc5QworOjAxQTE0MTAwMjJGQgorOjEwQTE0MjAwRTcwOUY2MDhERkZBODA0NkU3MDlGMjA4REZGQTgwM0VGRgorOjEwQTE1MjAwODg4MjhDODNFNzA5RjBBM0RGRkE4MDMyRTMwOUY2MDhFQworOjEwQTE2MjAwREZGQTgwNzhFMzA5RjIwOERGRkE4MDcwODg4MjhDODM1NAorOjEwQTE3MjAwRTMwOUYwQTNERkZBODA2NDg5ODI4QTgzRTBBM0Y2MDgwOAorOjEwQTE4MjAwREZGQTgwNTg4OTgyOEE4M0UwQTNGMjA4REZGQTgwNENFMgorOjEwQTE5MjAwODBEMjgwRkE4MEM2ODBENDgwNjk4MEYyODAzMzgwMTBCOQorOjEwQTFBMjAwODBBNjgwRUE4MDlBODBBODgwREE4MEUyODBDQTgwMzMyMgorOjEwQTFCMjAwODk4MjhBODNFQ0ZBRTQ5M0EzQzhDNTgyQzhDQ0M1ODM5QQorOjEwQTFDMjAwQ0NGMEEzQzhDNTgyQzhDQ0M1ODNDQ0RGRTlERUU3ODA2QQorOjEwQTFEMjAwMEQ4OTgyOEE4M0U0OTNBM0Y2MDhERkY5RUNGQUE5RjBFOQorOjEwQTFFMjAwRURGQjIyODk4MjhBODNFQ0ZBRTBBM0M4QzU4MkM4Q0MzRgorOjEwQTFGMjAwQzU4M0NDRjBBM0M4QzU4MkM4Q0NDNTgzQ0NERkVBREU1OAorOjEwQTIwMjAwRTg4MERCODk4MjhBODNFNDkzQTNGMjA4REZGOTgwQ0NCOQorOjEwQTIxMjAwODhGMEVEMjQwMkI0MDQwMDUwQzJGNTgyRUIyNDAyQjRBQgorOjEwQTIyMjAwMDQwMDUwQjgyMzIzNDU4MkY1ODJFRjRFNjBBRUVGNjAwMgorOjA5QTIzMjAwMDEwRUU1ODIyMzkwQTE5MjczNTQKKzoxMEEyM0IwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyMjEKKzowOUEyNEIwMEUzMjI4OTgyOEE4M0U0OTMyMjU0Cis6MTBBMjU0MDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MEJGCis6MTBBMjY0MDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMjA5Cis6MERBMjc0MDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMjIzCis6MTBBMjgxMDBDNUYwRjhBM0UwMjhGMEM1RjBGOEU1ODIxNTgyNzAwMjY4Cis6MDZBMjkxMDAxNTgzRTAzOEYwMjIwNQorOjEwQTI5NzAwQTNGOEUwQzVGMDI1RjBGMEU1ODIxNTgyNzAwMjE1ODM3QQorOjA2QTJBNzAwRTBDODM4RjBFODIyRDcKKzoxMEEyQUQwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwRUYKKzoxMEEyQkQwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFQ0MKKzoxMEEyQ0QwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzMTIKKzowOEEyREQwMEU5OTNGNUYwQTNFOTkzMjJENworOjEwQTJFNTAwNzVGMDA4NzU4MjAwRUYyRkZGRUUzM0ZFQ0QzM0NEQ0MzMAorOjEwQTJGNTAwMzNDQ0M1ODIzM0M1ODI5QkVEOUFFQzk5RTU4Mjk4NDBCMworOjEwQTMwNTAwMENGNTgyRUU5QkZFRUQ5QUZERUM5OUZDMEZENUYwRDY4RgorOjEwQTMxNTAwRTRDRUZCRTRDREZBRTRDQ0Y5QTg4MjIyQjgwMEMxQjlCOQorOjEwQTMyNTAwMDA1OUJBMDAyREVDOEJGMDg0Q0ZDRUNERkNFNUYwQ0JGNworOjEwQTMzNTAwRjk3ODE4RUYyRkZGRUUzM0ZFRUQzM0ZERUMzM0ZDRUIzMAorOjEwQTM0NTAwMzNGQjEwRDcwMzk5NDAwNEVCOTlGQjBGRDhFNUU0RjlFQgorOjEwQTM1NTAwRkEyMjc4MThFRjJGRkZFRTMzRkVFRDMzRkRFQzMzRkNEOAorOjEwQTM2NTAwQzkzM0M5MTBENzA1OUJFOTlBNDAwN0VDOUJGQ0U5OUFDQworOjEwQTM3NTAwRjkwRkQ4RTBFNEM5RkFFNENDRkIyMjc1RjAxMEVGMkYxMQorOjEwQTM4NTAwRkZFRTMzRkVFRDMzRkRDQzMzQ0NDODMzQzgxMEQ3MDcxMQorOjEwQTM5NTAwOUJFQzlBRTg5OTQwMEFFRDlCRkRFQzlBRkNFODk5Rjg0QworOjBFQTNBNTAwMEZENUYwREFFNENERkJFNENDRkFFNEM4RjkyMkRGCis6MTBBM0IzMDBFQjlGRjVGMEVBOUU0MkYwRTk5RDQyRjBFODlDNDVGMDAwCis6MDFBM0MzMDAyMjc3Cis6MTBBM0M0MDBFODYwMEZFQ0MzMTNGQ0VEMTNGREVFMTNGRUVGMTNGRjc3Cis6MDNBM0Q0MDBEOEYxMjI5QgorOjEwQTNENzAwMDgwODA4RTZDRjJGRjYxOEU2Q0UzRUY2MThFNkNEM0Q3QworOjA3QTNFNzAwRjYxOEU2Q0MzQ0Y2MjI1QgorOjBDQTNFRTAwRUNGMEEzRURGMEEzRUVGMEEzRUZGMDIyRTIKKzoxMEEzRkEwMEE4ODI4NTgzRjBEMDgzRDA4MjEyQTQxMTEyQTQxMTEyRUMKKzoxMEE0MEEwMEE0MTExMkE0MTFFNDczRTQ5M0EzQzU4M0M1RjBDNTgzMTAKKzoxMEE0MUEwMEM4QzU4MkM4RjBBM0M1ODNDNUYwQzU4M0M4QzU4MkM4QUMKKzowMUE0MkEwMDIyMEYKKzowMDAwMDAwMUZGCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgIHdoaXRlaGVhdC5oICAtLSAgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIEZpcm13YXJlLgorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgIENvbm5lY3RUZWNoIEluYyAoaHR0cDovL3d3dy5jb25uZWN0dGVjaC5jb20vKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogICAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogICAgICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiAoMTAvMDkvMjAwMikgU3R1YXJ0IE1hY0RvbmFsZAorICoJRmlybXdhcmUgNC4wNgorICoKKyAqICgwNC8wOS8yMDAwKSBna2gKKyAqCVVwZGF0ZWQgdGhlIGZpcm13YXJlIHdpdGggdGhlIGxhdGVzdCBwcm92aWRlZCBieSBDb25uZWN0VGVjaC4KKyAqCisgKiAoMDEvMTYvMjAwMCkgZ2toCisgKglGaXhlZCBteSBpbnRlbCBoZXggcHJvY2Vzc2luZyB0b29sLCBzbyBub3cgdGhlIGZpcm13YXJlIGFjdHVhbGx5CisgKgltYXRjaGVzIHRoZSBvcmlnaW5hbCBmaWxlICh0aGlzIHdhcyBjYXVzaW5nIGEgZmV3IHByb2JsZW1zLi4uKQorICoKKyAqICgwMS8xNS8yMDAwKSBna2gKKyAqCUFkZGVkIGRlYnVnIGxvYWRlciBmaXJtd2FyZSBpZiBERUJVRyBpcyAjZGVmaW5lZDoKKyAqCQlQb3J0IDEgTEVEIGZsYXNoZXMgd2hlbiB0aGUgdmVuZF9heCBwcm9ncmFtIGlzIHJ1bm5pbmcKKyAqCQlQb3J0IDIgTEVEIGZsYXNoZXMgd2hlbiBhbnkgU0VUVVAgY29tbWFuZCBhcnJpdmVzCisgKgkJUG9ydCAzIExFRCBmbGFzaGVzIHdoZW4gYW55IHZhbGlkIFZFTkRPUiByZXF1ZXN0IG9jY3VycworICoJCVBvcnQgNCBMRUQgZmxhc2hlcyB3aGVuIHRoZSBFWFRFUk5BTCBSQU0gRE9XTkxPQUQgcmVxdWVzdCBvY2N1cnMKKyAqCisgKiB2ZXJzaW9uIDEuMCAoMDEvMDkvMjAwMCkgZ2toCisgKglPcmlnaW5hbCBmaXJtd2FyZSBmcm9tIENvbm5lY3RUZWNoIG1hc3NhZ2VkIGEgbGl0dGxlIHRvIGJlIHByb2dyYW0KKyAqCXJlYWRhYmxlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSB3aGl0ZWhlYXRfREFURSAiMjAwMDAxMDYiCmRpZmYgLS1naXQgYS9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyLkhFWCBiL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXIuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNjYzZjYKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyLkhFWApAQCAtMCwwICsxLDMxNCBAQAorOjAzMDAwMDAwMDIwOThENjUKKzowMzAwMzMwMDAyMDhGQkM1Cis6MDMwMDQzMDAwMjBCMDBBRAorOjAzMDA0QjAwMDIwNUFBMDEKKzoxMDAxMDAwMDkwN0ZBNUUwNTQxMEZGQzQ1NDBGNDQ1MEY1MEYxM0U0NDIKKzoxMDAxMTAwMDMzRjUxMTkwN0ZFOUUwMjQ1RUI0MDcwMDQwMDMwMjAzNDkKKzoxMDAxMjAwMDc4OTAwMTI4RjgyODI4NzMwMjAxQkMwMjAxQkMwMjAxNjIKKzoxMDAxMzAwMDkxMDIwMTNEMDIwMTUzMDIwMTZGMDIwMTlBOTA3RjAwN0EKKzoxMDAxNDAwMEU1MTFGMDkwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQwMkYwQzcKKzoxMDAxNTAwMDAyMDM3ODkwN0Y5MkUwRkZDNDU0MEY5MDdGMDBGMDkwRUMKKzoxMDAxNjAwMDdGQjU3NDAxRjA5MDdGQjRFMDQ0MDJGMDAyMDM3ODEyOEUKKzoxMDAxNzAwMDBBODk1MDA3RTQ5MDdGMDBGMDgwMDY5MDdGMDA3NDBGOUEKKzoxMDAxODAwMEYwOTA3RkI1NzQwMUYwOTA3RkI0RTA0NDAyRjAwMjAzNzgKKzoxMDAxOTAwMDc4OTA3RkVBRTBGNTBGMDIwMzc4OTA3RjAwNzQwN0YwMTMKKzoxMDAxQTAwMDkwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQwMkYwN0ZFODdFNjgKKzoxMDAxQjAwMDAzMTIwRDk0RDIwNjEyMENDQzAyMDM3ODkwN0ZFQUUwNzEKKzoxMDAxQzAwMDc1MjgwMEY1MjlBM0UwRkVFNEVFNDIyODkwN0ZFRUUwREEKKzoxMDAxRDAwMDc1MkEwMEY1MkJBM0UwRkVFNEVFNDIyQTkwN0ZFOEUwQ0EKKzoxMDAxRTAwMDY0QzA2MDAzMDIwMkM5RTUyQjQ1MkE3MDAzMDIwMzc4NEMKKzoxMDAxRjAwMEMzRTUyQjk0NDBFNTJBOTQwMDUwMDg4NTJBMkM4NTJCRDIKKzoxMDAyMDAwMDJEODAwNjc1MkMwMDc1MkQ0MDkwN0ZFOUUwNjRBMzcwNjkKKzoxMDAyMTAwMDM0RjUzMEY1MzFDM0U1MzE5NTJERTUzMDk1MkM1MDVDNDIKKzoxMDAyMjAwMEU1MjkyNTMxRjU4MkU1MzAzNTI4RjU4M0UwRkY3NDAwQjYKKzoxMDAyMzAwMDI1MzFGNTgyRTQzNDdGRjU4M0VGRjAwNTMxRTUzMTcwNDcKKzoxMDAyNDAwMDAyMDUzMDgwRDBFNEY1MzBGNTMxQzNFNTMxOTUyREU1NzgKKzoxMDAyNTAwMDMwOTUyQzUwMTg3NDAwMjUzMUY1ODJFNDM0N0ZGNTgzRjUKKzoxMDAyNjAwMDc0Q0RGMDA1MzFFNTMxNzAwMjA1MzA4MEREQUYyOUFFODcKKzoxMDAyNzAwMDI4QUQyRDdBN0Y3OTAwN0IwMDEyMEJGNDkwN0ZCNUU1RDUKKzoxMDAyODAwMDJERjBFNTJEMjUyOUY1MjlFNTJDMzUyOEY1MjhDM0U1QTAKKzoxMDAyOTAwMDJCOTUyREY1MkJFNTJBOTUyQ0Y1MkE5MDdGOTJFMEZGRTIKKzoxMDAyQTAwMEM0NTQwRjc1MkUwMEY1MkZEMzk0MDBFNTJFOTQwMDUwMDIKKzoxMDAyQjAwMDBDOTA3RkI0RTAyMEUxMDMwMjAxRTc4MEY0OTA3RkI0NkEKKzoxMDAyQzAwMEUwMjBFMjAzMDIwMUU3ODBGNDkwN0ZFOEUwNjQ0MDYwMTAKKzoxMDAyRDAwMDAzMDIwMzc4RTUyQjQ1MkE3MDAzMDIwMzc4RTQ5MDdGM0MKKzoxMDAyRTAwMEM1RjA5MDdGOTJFMEZGQzQ1NDBGNzUyRTAwRjUyRkQzMTgKKzoxMDAyRjAwMDk0MDBFNTJFOTQwMDUwMDk5MDdGQzRFMDMwRTEwOTgwMUQKKzoxMDAzMDAwMEY3OTA3RkI0RTAyMEUzRjk5MDdGQzVFMDc1MkMwMEY1MEQKKzoxMDAzMTAwMDJEOTA3RkU5RTA2NEEzNzAzNEY1MzBGNTMxQzNFNTMxMDkKKzoxMDAzMjAwMDk1MkRFNTMwOTUyQzUwMzQ3NEMwMjUzMUY1ODJFNDM0OTgKKzowMTAzMzAwMDdFNEUKKzoxMDAzMzEwMEY1ODNFMEZGRTUyOTI1MzFGNTgyRTUzMDM1MjhGNTgzQTAKKzoxMDAzNDEwMEVGRjAwNTMxRTUzMTcwMDIwNTMwODBEMEFGMjlBRTI4REMKKzoxMDAzNTEwMEFEMkQ3QTdFNzlDMDdCQzAxMjBDM0ZFNTJEMjUyOUY1QTQKKzoxMDAzNjEwMDI5RTUyQzM1MjhGNTI4QzNFNTJCOTUyREY1MkJFNTJBMTQKKzowOTAzNzEwMDk1MkNGNTJBMDIwMkQ0QzMyMkU2Cis6MTAwMzdBMDA5MDdGRTlFMDcwMDMwMjA0NTIxNDcwMDMwMjA0Q0UyNDUxCis6MTAwMzhBMDBGRTcwMDMwMjA1NDIyNEZCNzAwMzAyMDQ0QzE0NzAwMzNFCis6MTAwMzlBMDAwMjA0NDYxNDcwMDMwMjA0M0ExNDcwMDMwMjA0NDAyNDRGCis6MTAwM0FBMDAwNTYwMDMwMjA1OTYxMjBFNDQ0MDAzMDIwNUEyOTA3RkRGCis6MTAwM0JBMDBFQkUwMjRGRTYwMTYxNDYwNDAyNDAyNzA2OTc0MTE5MDA4Cis6MTAwM0NBMDA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjA1QTI5MDdGRUFFMDE2Cis6MTAwM0RBMDBGRjEyMEI1ODhCMjU4QTI2ODkyN0VBNDk2MDExQUUwMjNCCis6MTAwM0VBMDBFRTkwN0ZENEYwQUYwMUVGOTA3RkQ1RjAwMjA1QTI5MDk2Cis6MTAwM0ZBMDA3RkI0RTA0NDAxRjAwMjA1QTI5MDdGRUFFMEZGMTIwODEwCis6MTAwNDBBMDBCQThCMjU4QTI2ODkyN0VBNDk2MDExQUUwMkVFOTA3RkM3Cis6MTAwNDFBMDBENEYwQUYwMUVGOTA3RkQ1RjAwMjA1QTI5MDdGQjRFMDRGCis6MTAwNDJBMDA0NDAxRjAwMjA1QTI5MDdGQjRFMDQ0MDFGMDAyMDVBMjYzCis6MTAwNDNBMDAxMjBFMUYwMjA1QTIxMjBFMkQwMjA1QTIxMjBBRjcwMkJGCis6MTAwNDRBMDAwNUEyMTIwRTExMDIwNUEyMTIwRTQ2NDAwMzAyMDVBMkNGCis6MTAwNDVBMDA5MDdGRThFMDI0N0Y2MDI0MTQ2MDMxMjQwMjcwNUJBMjVDCis6MTAwNDZBMDAwMEU0MzNGRjI1RTBGRkEyMDJFNDMzNEY5MDdGMDBGMDVGCis6MTAwNDdBMDBFNEEzRjA5MDdGQjU3NDAyRjAwMjA1QTJFNDkwN0YwMDM1Cis6MTAwNDhBMDBGMEEzRjA5MDdGQjU3NDAyRjAwMjA1QTI5MDdGRUNFMDMxCis6MTAwNDlBMDBGNDU0ODBGRkM0NTQwRkZGRTA1NDA3MkYyNUUwMjRCNDFFCis6MTAwNEFBMDBGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTRBMzA1Cis6MTAwNEJBMDBGMDkwN0ZCNTc0MDJGMDAyMDVBMjkwN0ZCNEUwNDQwMTg3Cis6MTAwNENBMDBGMDAyMDVBMjEyMEU0ODQwMDMwMjA1QTI5MDdGRThFMDVFCis6MTAwNERBMDAyNEZFNjAxRDI0MDI2MDAzMDIwNUEyOTA3RkVBRTBCNEI0Cis6MTAwNEVBMDAwMTA1QzIwMDAyMDVBMjkwN0ZCNEUwNDQwMUYwMDIwNUIyCis6MTAwNEZBMDBBMjkwN0ZFQUUwNzAzODkwN0ZFQ0UwRjQ1NDgwRkZDNDY5Cis6MTAwNTBBMDA1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ3RjJBCis6MTAwNTFBMDBGNTgzRTRGMDkwN0ZFQ0UwNTQ4MEZGMTMxMzEzNTQxRjJCCis6MTAwNTJBMDBGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNjk5MEQ1Cis6MTAwNTNBMDA3RkI0RTA0NDAxRjA4MDYwMTIwRTRBNTA1QjkwN0ZFODdECis6MTAwNTRBMDBFMDI0RkU2MDE4MjQwMjcwNEY5MDdGRUFFMEI0MDEwNEIwCis6MTAwNTVBMDBEMjAwODA0NDkwN0ZCNEUwNDQwMUYwODAzQjkwN0ZFQTZGCis6MTAwNTZBMDBFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZFMDY5Cis6MTAwNTdBMDA1NDA3MkYyNUUwMjRCNEY1ODJFNDM0N0ZGNTgzNzQwMTBGCis6MTAwNThBMDBGMDgwMTU5MDdGQjRFMDQ0MDFGMDgwMEMxMjAxMDA1MDE1Cis6MTAwNTlBMDAwNzkwN0ZCNEUwNDQwMUYwOTA3RkI0RTA0NDAyRjAyMjc3Cis6MTAwNUFBMDBDMEUwQzA4M0MwODJDMDg1QzA4NEMwODY3NTg2MDBDMDkyCis6MTAwNUJBMDBEMEMwMDBDMDAxQzAwMkMwMDNDMDA2QzAwNzkwN0ZBNTFBCis6MTAwNUNBMDBFMDMwRTIwNjc1MEQwNjAyMDY3NjkwN0ZBNUUwMjBFMThFCis6MTAwNURBMDAwQ0U1MEQ2NDAyNjAwNjc1MEQwNzAyMDY3NkFGMERFRjk1Cis6MTAwNUVBMDAyNEZFNjA0ODE0NjAyQzI0RkU2MDc3MjQwNDYwMDMwMjExCis6MTAwNUZBMDAwNjc2QUIwOUFBMEFBOTBCQUYwQzA1MEM4RjgyNzU4Mzg0Cis6MTAwNjBBMDAwMDEyMDgyMjkwN0ZBNkYwRTUwQzY1MDg3MDVFNzUwRDUxCis6MTAwNjFBMDAwNTgwNTk5MDdGQTZFMEFCMDlBQTBBQTkwQkFFMEM4RUY5Cis6MTAwNjJBMDA4Mjc1ODMwMDEyMDg0Rjc1MEQwMjgwNDBFNTA4MjRGRThBCis6MTAwNjNBMDBCNTBDMDc5MDdGQTVFMDQ0MjBGMEU1MDgxNEI1MEMwQTM0Cis6MTAwNjRBMDA5MDdGQTVFMDQ0NDBGMEU0RjUwRDkwN0ZBNkUwQUIwOTY5Cis6MTAwNjVBMDBBQTBBQTkwQkFFMEM4RTgyNzU4MzAwMTIwODRGMDUwQ0VDCis6MTAwNjZBMDA4MDBBOTA3RkE1RTA0NDQwRjBFNEY1MEQ1MzkxREZEMDc1Cis6MTAwNjdBMDAwN0QwMDZEMDAzRDAwMkQwMDFEMDAwRDBEMEQwODZEMDg3Cis6MEEwNjhBMDA4NEQwODVEMDgyRDA4M0QwRTAzMjA2Cis6MTAwNjk0MDA4QzMzOEQzNDkwN0Y5NUUwNDRDMEYwRTRGNTM1RjUzNjI1Cis6MTAwNkE0MDBDM0U1MzY5NTM0RTUzNTk1MzM1MDY5RUYyNTM2RjU4MjQzCis6MTAwNkI0MDBFNTM1M0VGNTgzNzRGRkYwRjQ2MDAyQzMyMkVGMjUzNjdFCis6MTAwNkM0MDBGNTgyRTUzNTNFRjU4M0U0RjA2MDAyQzMyMkVGMjUzNjdBCis6MTAwNkQ0MDBGNTgyRTUzNTNFRjU4Mzc0QUFGMDY0QUE2MDAyQzMyMjZDCis6MTAwNkU0MDBFRjI1MzZGNTgyRTUzNTNFRjU4Mzc0NTVGMDY0NTU2MEEzCis6MTAwNkY0MDAwMkMzMjJBRDM2RTUzNjJGRjU4MkU1MzUzRUY1ODNFREFFCis6MTAwNzA0MDBGMEZDQUMwNUVENkM2MDAyQzMyMjA1MzZFNTM2NzAwMkUwCis6MTAwNzE0MDAwNTM1ODA4Q0U0RjUzNUY1MzZDM0U1MzY5NTM0RTUzNTk1Cis6MTAwNzI0MDA5NTMzNTAyN0VGMjUzNkY1ODJFNTM1M0VGNTgzRTA2NUIwCis6MTAwNzM0MDAzNjYwMDJDMzIyRUYyNTM2RjU4MkU1MzUzRUY1ODNFNEMzCis6MEQwNzQ0MDBGMDA1MzZFNTM2NzAwMjA1MzU4MENFRDMyMjczCis6MTAwNzUxMDBDMjA0RDIwNUMyMDNDMjAwQzIwMkMyMDExMjBFM0REMkJFCis6MTAwNzYxMDBFODQzRDgyMDkwN0ZBQjc0RkZGMDkwN0ZBOUYwOTA3RjkxCis6MTAwNzcxMDBBQUYwNTM5MUVGOTA3Rjk1RTA0NEMwRjA5MDdGOTM3NDdECis6MTAwNzgxMDAzMEYwMTIwQTE5OTA3RkFGRTA0NDAxRjA5MDdGQUVFMEEzCis6MTAwNzkxMDA0NDBERjBEMkFGMTIwRTM1MjAwMTQyNzUyNDAwNzUyM0FECis6MTAwN0ExMDAwMDc1MjIwMDc1MjEwMDdGNDg3RTkyN0QwMDdDMDBBQkEwCis6MTAwN0IxMDAyNEFBMjNBOTIyQTgyMUMzMTIwOEE5NTBEQjIwMDFEODA5Cis6MTAwN0MxMDA3QTAwNzkwMDc4MDBFNTI0MjQwMUY1MjRFQTM1MjNGNTNGCis6MTAwN0QxMDAyM0U5MzUyMkY1MjJFODM1MjFGNTIxODBDQTMwMDEwNUNBCis6MTAwN0UxMDAxMjAzN0FDMjAxMzAwNDFBMTIwRTQwNTAxMzEyMDkwMDhBCis6MTAwN0YxMDAzMDAwMDc5MDdGRDZFMDMwRTdGMzEyMEQ0QTEyMEU0MjI3Cis6MDgwODAxMDBDMjAzMTIwOEZGODBENjIyOTkKKzoxMDA4MDkwMEJCMDEwNjg5ODI4QTgzRTAyMjUwMDJFNzIyQkJGRTAyRUQKKzowOTA4MTkwMEUzMjI4OTgyOEE4M0U0OTMyMjIwCis6MTAwODIyMDBCQjAxMENFNTgyMjlGNTgyRTU4MzNBRjU4M0UwMjI1MDhCCis6MTAwODMyMDAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTIyMkQ1Cis6MEQwODQyMDBFNTgyMjlGNTgyRTU4MzNBRjU4M0U0OTMyMkVGCis6MTAwODRGMDBGOEJCMDEwREU1ODIyOUY1ODJFNTgzM0FGNTgzRThGMERGCis6MTAwODVGMDAyMjUwMDZFOTI1ODJDOEY2MjJCQkZFMDVFOTI1ODJDODhCCis6MDIwODZGMDBGMjIyNzMKKzoxMDA4NzEwMEJCMDExMEU1ODIyOUY1ODJFNTgzM0FGNTgzRTBGNUYwQzUKKzoxMDA4ODEwMEEzRTAyMjUwMDlFOTI1ODJGODg2RjAwOEU2MjJCQkZFQTIKKzoxMDA4OTEwMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJFNTgzMkFGNTgzRTgKKzowODA4QTEwMEU5OTNGNUYwQTNFOTkzMjJBRAorOjEwMDhBOTAwRUI5RkY1RjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjBBNQorOjAxMDhCOTAwMjIxQworOjAyMDhCQTAwOEYyODg1Cis6MTAwOEJDMDBFNEY1Mjk3NTJBRkY3NTJCMTE3NTJDMzJBQjJBQUEyQjVFCis6MTAwOENDMDBBOTJDOTAwMDAxMTIwODIyQjQwMzFEQUYyOTA1MjlFRkIxCis6MTAwOERDMDBCNTI4MDEyMjEyMDgwOTdFMDAyOUZGRUUzQUE5MDc3NUY2Cis6MEUwOEVDMDAyQUZGRjUyQjg5MkM4MEQ0N0IwMDdBMDA3OTAwM0UKKzowMTA4RkEwMDIyREIKKzowNDA4RkIwMDUzRDhFRjMyQUQKKzowMTA4RkYwMDIyRDYKKzowOTA5MDAwMDkwN0ZENkUwNDQ4MEYwODA3NDgxCis6MTAwOTdEMDA0Mzg3MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMjdECis6MEMwOThEMDA3ODdGRTRGNkQ4RkQ3NTgxMzkwMjA5RDRBQQorOjEwMDk5OTAwMDIwNzUxRTQ5M0EzRjhFNDkzQTM0MDAzRjY4MDAxRjIxQworOjEwMDlBOTAwMDhERkY0ODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzM1RgorOjEwMDlCOTAwQzQ1NDBGNDQyMEM4ODM0MDA0RjQ1NjgwMDE0NkY2REYyRQorOjEwMDlDOTAwRTQ4MDBCMDEwMjA0MDgxMDIwNDA4MDkwMERFQ0U0N0VDNQorOjEwMDlEOTAwMDE5MzYwQkNBM0ZGNTQzRjMwRTUwOTU0MUZGRUU0OTMyMworOjEwMDlFOTAwQTM2MDAxMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTNFQQorOjEwMDlGOTAwRkFFNDkzQTNGOEU0OTNBM0M4QzU4MkM4Q0FDNTgzQ0ExNQorOjEwMEEwOTAwRjBBM0M4QzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkVDQworOjEwMEExOTAwRTQ5MDdGOUNGMDdGMEFGRTEyMEQ5NDkwN0Y5Njc0ODk3MgorOjEwMEEyOTAwRjA5MDdGOUM3NENGRjA3RkY0N0UwMTEyMEQ5NDkwN0YzQgorOjEwMEEzOTAwOTZFMDU0RkVGMDdGMEE3RTAwMTIwRDk0N0YwNTdFMDAzOQorOjEwMEE0OTAwMTIwRDk0OTA3Rjk2RTA0NDAyRjBFMDU0N0ZGMDdGMDUwOAorOjEwMEE1OTAwN0UwMDEyMEQ5NDkwN0Y5NkUwNDQ0MEYwN0YwNTdFMDA2MQorOjEwMEE2OTAwMTIwRDk0OTA3Rjk2RTA1NEJGRjA3RjMyN0UwMDEyMERGNAorOjEwMEE3OTAwOTQ5MDdGOTZFMDQ0NDBGMDdGMzI3RTAwMTIwRDk0MjJEQworOjEwMEE4OTAwNzUzMjAxRTUzMjYwMUI3RjAxMTIwREQ3N0YwMDdFMEVBMgorOjEwMEE5OTAwN0QwMDdDMDExMjA2OTRFNDMzRjUzMjcwMDU3RjBGMTI1NAorOjEwMEFBOTAwMEREN0U1MzI2MDFCN0YwMjEyMERENzdGMDA3RTgwN0Q1NgorOjEwMEFCOTAwMDA3QzgwMTIwNjk0RTQzM0Y1MzI3MDA1N0YwRjEyMEQyNQorOjEwMEFDOTAwRDdFNTMyNjAxQjdGMDMxMjBERDc3RjAwN0UyMDdENDA2MgorOjEwMEFEOTAwN0M1QjEyMDY5NEU0MzNGNTMyNzAwNTdGMEYxMjBERDc1MworOjBFMEFFOTAwRTUzMjYwMDVFNEZGMTIwREQ3RTUzMjI0RkYyMjRFCis6MDgwQUY3MDA5MDdGRUFFMEY1MTBEMzIyMjQKKzowMTBBRkYwMDMyQzQKKzoxMDBCMDAwMDAyMEQ2NDAwMDIwREFCMDAwMjBEMkYwMDAyMEQ3QzAwRUYKKzoxMDBCMTAwMDAyMERDMTAwMDIwQUZGMDAwMjBFNEMwMDAyMEU0RDAwNDEKKzoxMDBCMjAwMDAyMEU0RTAwMDIwRTRGMDAwMjBFNTAwMDAyMEU1MTAwNDcKKzoxMDBCMzAwMDAyMEU1MjAwMDIwRTUzMDAwMjBFNTQwMDAyMEU1NTAwMjcKKzoxMDBCNDAwMDAyMEU1NjAwMDIwRTU3MDAwMjBFNTgwMDAyMEU1OTAwMDcKKzowODBCNTAwMDAyMEU1QTAwMDIwRTVCMDBDOAorOjEwMEI1ODAwRTRGRTc1MkFGRjc1MkIxMTc1MkMxMkFCMkFBQTJCQTk1NgorOjEwMEI2ODAwMkM5MDAwMDExMjA4MjI2NDAyNzAyREFEMDYwRUVEQjUxRQorOjEwMEI3ODAwMDcwMTIyOTAwMDAyMTIwODcxODVGMDI4RjUyOTYyMjhFMQorOjEwMEI4ODAwRTUyODYyMjlFNTI5NjIyODI5RkRFNTI4M0FBOTA1NzU5RAorOjBFMEI5ODAwMkFGRkY1MkI4OTJDODBDMzdCMDA3QTAwNzkwMEEwCis6MDEwQkE2MDAyMjJDCis6MTAwQkE3MDBBQjA3QUEwNkFDMDVFNEZERTUxMTYwMTFFQUZGQUUwNTQ3Cis6MTAwQkI3MDAwREVFMjQxMEY1ODJFNDM0MEZGNTgzRUZGMEVCQUUwNTZDCis6MTAwQkM3MDAwRDc0MTAyRUY1ODJFNDM0MEZGNTgzRUJGMEFGMDUwREFECis6MTAwQkQ3MDA3NDEwMkZGNTgyRTQzNDBGRjU4M0VDRjBBRjBGN0EwRjIyCis6MEQwQkU3MDA3QjEwMTIwRDEwN0YwQTdFMDAxMjBEOTQyMjZCCis6MTAwQkY0MDA4RTMyOEYzMzhEMzQ4QTM1OEIzNkU0RkRGNTM3RTUxMTJCCis6MTAwQzA0MDA2MDEyRTUzMkZGQUUwNTBERUUyNDEzRjU4MkU0MzQwRkQ1Cis6MTAwQzE0MDBGNTgzRUZGMEU1MzNBRTA1MEQ3NDEzMkVGNTgyRTQzNDVECis6MTAwQzI0MDAwRkY1ODNFNTMzRjBBRjBGN0EwRjdCMTMxMjBEMTBBRjdFCis6MEIwQzM0MDAwRkFEMzRBQjM2QUEzNTEyMENGMTIyRDQKKzoxMDBDM0YwMDhFMzI4RjMzOEQzNDhBMzU4QjM2RTRGNTM3RTUzN0MzRjMKKzoxMDBDNEYwMDk1MzQ1MDIwMDUzM0U1MzNBRTMyNzAwMjA1MzIxNEZGNzAKKzoxMDBDNUYwMEU1MzYyNTM3RjU4MkU0MzUzNUY1ODNFMEZEMTIwQkE3MzAKKzowNTBDNkYwMDA1Mzc4MEQ5MjJDOQorOjEwMEM3NDAwQTkwN0U1MEQ3MDI1OTA3RkE1RTA0NDgwRjBFOTI1RTAwMworOjEwMEM4NDAwNDQwMTkwN0ZBNkYwOEQwOEFGMDNBOTA3NzUwOTAxOEE3NgorOjBEMEM5NDAwMEE4OTBCRTRGNTBDNzUwRDAzRDMyMkMzMjI3MQorOjEwMENBMTAwQTkwN0U1MEQ3MDIzOTA3RkE1RTA0NDgwRjBFOTI1RTBEOAorOjEwMENCMTAwOTA3RkE2RjA4RDA4QUYwM0E5MDc3NTA5MDE4QTBBODlGQgorOjBCMENDMTAwMEJFNEY1MEM3NTBEMDFEMzIyQzMyMkRCCis6MTAwQ0NDMDA5MDdGRDZFMDU0RkJGMEUwNDQwOEYwMzAwNjA0RTA0NDlBCis6MTAwQ0RDMDAwMkYwN0ZEMDdFMDcxMjBEOTQ5MDdGRDZFMDU0RjdGMDhGCis6MDUwQ0VDMDBFMDQ0MDRGMDIyQzkKKzoxMDBDRjEwMDEyMEM3NEU1MEQyNEZBNjAxMDE0NjAwNzI0MDc3MEYzRDgKKzowRjBEMDEwMDdGMDgyMkU0RjUwRDdGMDcyMkU0RjUwRDdGMDYyMjFGCis6MTAwRDEwMDAxMjBDQTFFNTBEMjRGQTYwMTAxNDYwMDcyNDA3NzBGMzhCCis6MEYwRDIwMDA3RjA4MjJFNEY1MEQ3RjA3MjJFNEY1MEQ3RjA2MjIwMAorOjEwMEQyRjAwQzBFMEMwODNDMDgyOTA3RkM0RTRGMDUzOTFFRjkwN0YwNgorOjBCMEQzRjAwQUI3NDA0RjBEMDgyRDA4M0QwRTAzMjBGCis6MTAwRDRBMDA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDAxMjczCis6MEEwRDVBMDAwRDk0OTA3RkQ2RTA1NEZFRjAyMkM1Cis6MTAwRDY0MDBDMEUwQzA4M0MwODJEMjAxNTM5MUVGOTA3RkFCNzQwMTg1Cis6MDgwRDc0MDBGMEQwODJEMDgzRDBFMDMyMDAKKzoxMDBEN0MwMEMwRTBDMDgzQzA4MkQyMDM1MzkxRUY5MDdGQUI3NDA4NjQKKzowODBEOEMwMEYwRDA4MkQwODNEMEUwMzJFOAorOjEwMEQ5NDAwOEUzODhGMzlFNTM5MTUzOUFFMzg3MDAyMTUzODRFNjAwMgorOjA3MERBNDAwMDUxMjBFMDA4MEVFMjI5MworOjEwMERBQjAwQzBFMEMwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDA1MAorOjA2MERCQjAwODJEMDgzRDBFMDMyN0IKKzoxMDBEQzEwMEMwRTBDMDgzQzA4MjUzOTFFRjkwN0ZBQjc0MTBGMEQwMkMKKzowNjBERDEwMDgyRDA4M0QwRTAzMjY1Cis6MTAwREQ3MDBBRTA3N0YyMTdEMDE3NDAwMkVGNTgyRTQzNDBGQUI4MkNDCis6MDUwREU3MDBGQTEyMEQxMDIyQkMKKzoxMDBERUMwMDUwMEYwMEMwRjlBNEIwOTk5MjgyRjg4MDk4ODg4M0M2RkQKKzowMzBERkMwMEExODY4RTNGCis6MDEwREZGMDAwMEYzCis6MTAwRTAwMDA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBGOTA1Cis6MDEwRTEwMDAyMkJGCis6MEUwRTExMDA5MDdGMDBFNTEwRjA5MDdGQjU3NDAxRjBEMzIyQzEKKzowRTBFMUYwMDkwN0YwMEU1MEVGMDkwN0ZCNTc0MDFGMEQzMjJCNQorOjA4MEUyRDAwOTA3RkVBRTBGNTBFRDMyMkVDCis6MDgwRTM1MDBFNEY1MEREMkU5RDJBRjIyNzEKKzowMzBFM0QwMEQyMDAyMkJFCis6MDIwRTQwMDBEMzIyQkIKKzowMjBFNDIwMEQzMjJCOQorOjAyMEU0NDAwRDMyMkI3Cis6MDIwRTQ2MDBEMzIyQjUKKzowMjBFNDgwMEQzMjJCMworOjAyMEU0QTAwRDMyMkIxCis6MDEwRTRDMDAzMjczCis6MDEwRTREMDAzMjcyCis6MDEwRTRFMDAzMjcxCis6MDEwRTRGMDAzMjcwCis6MDEwRTUwMDAzMjZGCis6MDEwRTUxMDAzMjZFCis6MDEwRTUyMDAzMjZECis6MDEwRTUzMDAzMjZDCis6MDEwRTU0MDAzMjZCCis6MDEwRTU1MDAzMjZBCis6MDEwRTU2MDAzMjY5Cis6MDEwRTU3MDAzMjY4Cis6MDEwRTU4MDAzMjY3Cis6MDEwRTU5MDAzMjY2Cis6MDEwRTVBMDAzMjY1Cis6MDEwRTVCMDAzMjY0Cis6MTAxMTAwMDAxMjAxMDAwMTAwMDAwMDQwNDcwNTEwMjcwMTAwMDEwMjA0Cis6MTAxMTEwMDAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDAwMkVGCis6MTAxMTIwMDBGRjAwMDAwNDA3MDU4MjAyNDAwMDAwMDcwNTAyMDI0MDlDCis6MTAxMTMwMDAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjgwMEY4Cis6MTAxMTQwMDA2RjAwNzIwMDIwMDA0MzAwNjgwMDY5MDA3MDAwNzMwMEE3Cis6MTAxMTUwMDAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYwMDhBCis6MTAxMTYwMDA2OTAwNzIwMDZEMDA3NzAwNjEwMDcyMDA2NTAwMjAwMDY4Cis6MTAxMTcwMDA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzIwMDRDCis6MTAxMTgwMDA2QjAwNzMwMDJBMDM0MzAwNkYwMDZFMDA2NjAwNjkwMDY1Cis6MTAxMTkwMDA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkUwMEU2Cis6MTAxMUEwMDAyMDAwNTMwMDc0MDA3MjAwNjkwMDZFMDA2NzAwMjIwMzgzCis6MTAxMUIwMDA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjMwMDAzCis6MTAxMUMwMDA2NTAwMjAwMDUzMDA3NDAwNzIwMDY5MDA2RTAwNjcwMDIzCis6MDIxMUQwMDAwMDAwMUQKKzowMDAwMDAwMUZGCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgIHdoaXRlaGVhdC5oICAtLSAgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIEZpcm13YXJlLgorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgIENvbm5lY3RUZWNoIEluYyAoaHR0cDovL3d3dy5jb25uZWN0dGVjaC5jb20vKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogICAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogICAgICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiAoMTAvMDkvMjAwMikgU3R1YXJ0IE1hY0RvbmFsZAorICoJRmlybXdhcmUgNC4wNgorICoKKyAqICgwNC8wOS8yMDAwKSBna2gKKyAqCVVwZGF0ZWQgdGhlIGZpcm13YXJlIHdpdGggdGhlIGxhdGVzdCBwcm92aWRlZCBieSBDb25uZWN0VGVjaC4KKyAqCisgKiAoMDEvMTYvMjAwMCkgZ2toCisgKglGaXhlZCBteSBpbnRlbCBoZXggcHJvY2Vzc2luZyB0b29sLCBzbyBub3cgdGhlIGZpcm13YXJlIGFjdHVhbGx5CisgKgltYXRjaGVzIHRoZSBvcmlnaW5hbCBmaWxlICh0aGlzIHdhcyBjYXVzaW5nIGEgZmV3IHByb2JsZW1zLi4uKQorICoKKyAqICgwMS8xNS8yMDAwKSBna2gKKyAqCUFkZGVkIGRlYnVnIGxvYWRlciBmaXJtd2FyZSBpZiBERUJVRyBpcyAjZGVmaW5lZDoKKyAqCQlQb3J0IDEgTEVEIGZsYXNoZXMgd2hlbiB0aGUgdmVuZF9heCBwcm9ncmFtIGlzIHJ1bm5pbmcKKyAqCQlQb3J0IDIgTEVEIGZsYXNoZXMgd2hlbiBhbnkgU0VUVVAgY29tbWFuZCBhcnJpdmVzCisgKgkJUG9ydCAzIExFRCBmbGFzaGVzIHdoZW4gYW55IHZhbGlkIFZFTkRPUiByZXF1ZXN0IG9jY3VycworICoJCVBvcnQgNCBMRUQgZmxhc2hlcyB3aGVuIHRoZSBFWFRFUk5BTCBSQU0gRE9XTkxPQUQgcmVxdWVzdCBvY2N1cnMKKyAqCisgKiB2ZXJzaW9uIDEuMCAoMDEvMDkvMjAwMCkgZ2toCisgKglPcmlnaW5hbCBmaXJtd2FyZSBmcm9tIENvbm5lY3RUZWNoIG1hc3NhZ2VkIGEgbGl0dGxlIHRvIGJlIHByb2dyYW0KKyAqCXJlYWRhYmxlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSB3aGl0ZWhlYXRfREFURSAiMjAwMDAxMDYiCmRpZmYgLS1naXQgYS9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyX2RlYnVnLkhFWCBiL2Zpcm13YXJlL3doaXRlaGVhdF9sb2FkZXJfZGVidWcuSEVYCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2MzNkNTgKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS93aGl0ZWhlYXRfbG9hZGVyX2RlYnVnLkhFWApAQCAtMCwwICsxLDQwMyBAQAorOjEwMDAwMDAwMDAwMDAwMDAwMzAyMDk4RDAwMDAwMDMzMDMwMjBFNzA5RgorOjEwMDAxMDAwMDAwMDAwNDMwMzAyMEIwMDAwMDAwMDRCMDMwMjA1QjM4NQorOjEwMDAyMDAwMDAwMDAxMDAxMDkwN0ZBNUUwNTQxMEZGQzQ1NDBGNDQ1RAorOjEwMDAzMDAwNTBGNTBGMTNFNDAwMDExMDAwMDAwMTEwMTAzM0Y1MTEwQQorOjEwMDA0MDAwOTA3RkU5RTAyNDVFQjQwNzAwNDAwMzAyMDMwMDAxMjAzMgorOjEwMDA1MDAwMDAwMDAxMjAxMDdDOTAwMTI4RjgyODI4NzMwMjAxQkNDMAorOjEwMDA2MDAwMDIwMUJDMDIwMTAwMDEzMDAwMDAwMTMwMTA5MTAyMDFDOAorOjEwMDA3MDAwM0QwMjAxNTMwMjAxNkYwMjAxOUE5MDdGMDAwMDAxNDA4RQorOjEwMDA4MDAwMDAwMDAxNDAxMEU1MTFGMDkwN0ZCNTc0MDFGMDkwN0YwMQorOjEwMDA5MDAwQjRFMDQ0MDJGMDAwMDE1MDAwMDAwMTUwMTAwMjAzN0M2MworOjEwMDBBMDAwOTA3RjkyRTBGRkM0NTQwRjkwN0YwMEYwOTAwMDAxNjBCOQorOjEwMDBCMDAwMDAwMDAxNjAxMDdGQjU3NDAxRjA5MDdGQjRFMDQ0MDI0RAorOjEwMDBDMDAwRjAwMjAzN0MxMjAwMDE3MDAwMDAwMTcwMTAwQTg5NTBEOAorOjEwMDBEMDAwMDdFNDkwN0YwMEYwODAwNjkwN0YwMDc0MEYwMDAxODA5RAorOjEwMDBFMDAwMDAwMDAxODAxMEYwOTA3RkI1NzQwMUYwOTA3RkI0RTBDMworOjEwMDBGMDAwNDQwMkYwMDIwMzAwMDE5MDAwMDAwMTkwMTA3QzkwN0YwOAorOjEwMDEwMDAwRUFFMEY1MEYwMjAzN0M5MDdGMDA3NDA3RjAwMDAxQTA4NQorOjEwMDExMDAwMDAwMDAxQTAxMDkwN0ZCNTc0MDFGMDkwN0ZCNEUwNDQxRQorOjEwMDEyMDAwMDJGMDdGRTg3RTAwMDFCMDAwMDAwMUIwMTAwMzEyMEQ2NAorOjEwMDEzMDAwRDVEMjA2MTIwRDBEMDIwMzdDOTA3RkVBRTAwMDAxQzBDQgorOjEwMDE0MDAwMDAwMDAxQzAxMDc1MjkwMEY1MkFBM0UwRkVFNEVFNDI4QworOjEwMDE1MDAwMjk5MDdGRUVFMDAwMDFEMDAwMDAwMUQwMTA3NTJCMDA0NworOjEwMDE2MDAwRjUyQ0EzRTBGRUU0RUU0MjJCOTA3RkU4RTAwMDAxRTBGNgorOjEwMDE3MDAwMDAwMDAxRTAxMDY0QzA2MDAzMDIwMkM5RTUyQzQ1MkJCOQorOjEwMDE4MDAwNzAwMzAyMDM3QzAwMDFGMDAwMDAwMUYwMTBDM0U1MkNCNQorOjEwMDE5MDAwOTQ0MEU1MkI5NDAwNTAwODg1MkIyRDg1MkMwMDAyMDBGRgorOjEwMDFBMDAwMDAwMDAyMDAxMDJFODAwNjc1MkQwMDc1MkU0MDkwN0ZGNQorOjEwMDFCMDAwRTlFMDY0QTM3MDAwMDIxMDAwMDAwMjEwMTAzNEY1MzE3MQorOjEwMDFDMDAwRjUzMkMzRTUzMjk1MkVFNTMxOTUyRDUwNUMwMDAyMjBDNQorOjEwMDFEMDAwMDAwMDAyMjAxMEU1MkEyNTMyRjU4MkU1MzEzNTI5RjVBNworOjEwMDFFMDAwODNFMEZGNzQwMDAwMDIzMDAwMDAwMjMwMTAyNTMyRjU3OQorOjEwMDFGMDAwODJFNDM0N0ZGNTgzRUZGMDA1MzJFNTMyNzAwMDAyNDA4RgorOjEwMDIwMDAwMDAwMDAyNDAxMDAyMDUzMTgwRDBFNEY1MzFGNTMyQzMyMAorOjEwMDIxMDAwRTUzMjk1MkVFNTAwMDI1MDAwMDAwMjUwMTAzMTk1MkQ3OAorOjEwMDIyMDAwNTAxODc0MDAyNTMyRjU4MkU0MzQ3RkY1ODMwMDAyNjBCMworOjEwMDIzMDAwMDAwMDAyNjAxMDc0Q0RGMDA1MzJFNTMyNzAwMjA1MzEyNQorOjEwMDI0MDAwODBEREFGMkFBRTAwMDI3MDAwMDAwMjcwMTAyOUFEMkVEMgorOjEwMDI1MDAwN0E3Rjc5MDA3QjAwMTIwQkY0OTA3RkI1RTUwMDAyODA3NQorOjEwMDI2MDAwMDAwMDAyODAxMDJFRjBFNTJFMjUyQUY1MkFFNTJEMzUxNgorOjEwMDI3MDAwMjlGNTI5QzNFNTAwMDI5MDAwMDAwMjkwMTAyQzk1MkU2QworOjEwMDI4MDAwRjUyQ0U1MkI5NTJERjUyQjkwN0Y5MkUwRkYwMDAyQTAzOQorOjEwMDI5MDAwMDAwMDAyQTAxMEM0NTQwRjc1MkYwMEY1MzBEMzk0MDA1NQorOjEwMDJBMDAwRTUyRjk0MDA1MDAwMDJCMDAwMDAwMkIwMTAwQzkwN0ZDNworOjEwMDJCMDAwQjRFMDIwRTEwMzAyMDFFNzgwRjQ5MDdGQjQwMDAyQzBDMworOjEwMDJDMDAwMDAwMDAyQzAxMEUwMjBFMjAzMDIwMUU3ODBGNDkwN0YwQQorOjEwMDJEMDAwRThFMDY0NDA2MDAwMDJEMDAwMDAwMkQwMTAwMzAyMDM5NgorOjEwMDJFMDAwN0NFNTJDNDUyQjcwMDMwMjAzN0NFNDkwN0YwMDAyRTA0OAorOjEwMDJGMDAwMDAwMDAyRTAxMEM1RjA5MDdGOTJFMEZGQzQ1NDBGNzUzQgorOjEwMDMwMDAwMkYwMEY1MzBEMzAwMDJGMDAwMDAwMkYwMTA5NDAwRTU1OQorOjEwMDMxMDAwMkY5NDAwNTAwOTkwN0ZDNEUwMzBFMTA5ODAwMDAzMDA3MQorOjEwMDMyMDAwMDAwMDAzMDAxMEY3OTA3RkI0RTAyMEUzRjk5MDdGQzU1MAorOjEwMDMzMDAwRTA3NTJEMDBGNTAwMDMxMDAwMDAwMzEwMTAyRTkwN0ZEMworOjEwMDM0MDAwRTlFMDY0QTM3MDM4OTAyMDZCRjBGNTMxRjUwMDAzMjBFQworOjEwMDM1MDAwMDAwMDAzMjAxMDMyQzNFNTMyOTUyRUU1MzE5NTJENTA3MworOjEwMDM2MDAwMzQ3NEMwMjUzMjAwMDMzMDAwMDAwMzMwMTBGNTgyRTRGRAorOjEwMDM3MDAwMzQ3RUY1ODNFMEZGRTUyQTI1MzJGNTgyRTUwMDAzNDA2RgorOjEwMDM4MDAwMDAwMDAzNDAxMDMxMzUyOUY1ODNFRkYwMDUzMkU1MzJFNgorOjEwMDM5MDAwNzAwMjA1MzE4MDAwMDM1MDAwMDAwMzUwMTBEMEFGMkFENgorOjEwMDNBMDAwQUUyOUFEMkU3QTdFNzlDMDdCQzAxMjBDODAwMDAzNjAyRQorOjEwMDNCMDAwMDAwMDAzNjAxMEU1MkUyNTJBRjUyQUU1MkQzNTI5RjVFNAorOjEwMDNDMDAwMjlDM0U1MkM5NTAwMDM3MDAwMDAwMzcwMEQyRUY1MkM1OQorOjEwMDNEMDAwRTUyQjk1MkRGNTJCMDIwMkQ0QzMwMDAwMDAwMDAzN0QxMAorOjEwMDNFMDAwMDEyMjAwMDAwMDAwMDM3RTEwOTA3RkU5RTA3MDAzMDIwQworOjEwMDNGMDAwMDQ1NjE0NzAwMzAyMDREMjI0MDAwMzhFMDAwMDAzOEVGRQorOjEwMDQwMDAwMTBGRTcwMDMwMjA1NDYyNEZCNzAwMzAyMDQ1MDE0NzBCMgorOjEwMDQxMDAwMDMwMDAzOUUwMDAwMDM5RTEwMDIwNDRBMTQ3MDAzMDJBRQorOjEwMDQyMDAwMDQzRTE0NzAwMzAyMDQ0NDI0MDAwM0FFMDAwMDAzQUUzMworOjEwMDQzMDAwMTAwNTYwMDMwMjA1OUExMjBFN0I0MDAzMDIwNUFCOTA4MworOjEwMDQ0MDAwN0YwMDAzQkUwMDAwMDNCRTEwRUJFMDI0RkU2MDE2MTQyNAorOjEwMDQ1MDAwNjA0MDI0MDI3MDY5NzQxMTkwMDAwM0NFMDAwMDAzQ0U0NgorOjEwMDQ2MDAwMTA3RkQ0RjA3NDAwOTA3RkQ1RjAwMjA1QUI5MDdGRUE0NgorOjEwMDQ3MDAwRTAwMDAzREUwMDAwMDNERTEwRkYxMjBCNTg4QjI2OEExQgorOjEwMDQ4MDAwMjc4OTI4RUE0OTYwMTFBRTAyMDAwM0VFMDAwMDAzRUU1RQorOjEwMDQ5MDAwMTBFRTkwN0ZENEYwQUYwMUVGOTA3RkQ1RjAwMjA1QUI2NgorOjEwMDRBMDAwOTAwMDAzRkUwMDAwMDNGRTEwN0ZCNEUwNDQwMUYwMDI2MAorOjEwMDRCMDAwMDVBQjkwN0ZFQUUwRkYxMjBDMDAwNDBFMDAwMDA0MEU3MgorOjEwMDRDMDAwMTAzRjhCMjY4QTI3ODkyOEVBNDk2MDExQUUwMkVFOTBGOAorOjEwMDREMDAwN0YwMDA0MUUwMDAwMDQxRTEwRDRGMEFGMDFFRjkwN0ZENworOjEwMDRFMDAwRDVGMDAyMDVBQjkwN0ZCNEUwMDAwNDJFMDAwMDA0MkU4RQorOjEwMDRGMDAwMTA0NDAxRjAwMjA1QUI5MDdGQjRFMDQ0MDFGMDAyMDUyNgorOjEwMDUwMDAwQUIwMDA0M0UwMDAwMDQzRTEwMTIwRTUyMDIwNUFCMTI3NgorOjEwMDUxMDAwMEU2MDAyMDVBQjEyMEFGNzAyMDAwNDRFMDAwMDA0NEUwMgorOjEwMDUyMDAwMTAwNUFCMTIwOEYxMDIwNUFCMTIwRTdENDAwMzAyMDU2NworOjEwMDUzMDAwQUIwMDA0NUUwMDAwMDQ1RTEwOTA3RkU4RTAyNDdGNjA2MgorOjEwMDU0MDAwMjQxNDYwMzEyNDAyNzA1QkEyMDAwNDZFMDAwMDA0NkU2QgorOjEwMDU1MDAwMTAwMEU0MzNGRjI1RTBGRkEyMDJFNDMzNEY5MDdGMDA1OAorOjEwMDU2MDAwRjAwMDA0N0UwMDAwMDQ3RTEwRTRBM0YwOTA3RkI1NzREOAorOjEwMDU3MDAwMDJGMDAyMDVBQkU0OTA3RjAwMDAwNDhFMDAwMDA0OEVDMAorOjEwMDU4MDAwMTBGMEEzRjA5MDdGQjU3NDAyRjAwMjA1QUI5MDdGRUMwMQorOjEwMDU5MDAwRTAwMDA0OUUwMDAwMDQ5RTEwRjQ1NDgwRkZDNDU0MEYzOQorOjEwMDVBMDAwRkZFMDU0MDcyRjI1RTAyNEI0MDAwNEFFMDAwMDA0QUVBMQorOjEwMDVCMDAwMTBGNTgyRTQzNDdGRjU4M0UwNTRGRDkwN0YwMEYwRTQ5MQorOjEwMDVDMDAwQTMwMDA0QkUwMDAwMDRCRTEwRjA5MDdGQjU3NDAyRjBEQQorOjEwMDVEMDAwMDIwNUFCOTA3RkI0RTA0NDAxMDAwNENFMDAwMDA0Q0VERAorOjEwMDVFMDAwMTBGMDAyMDVBQjEyMEU3RjQwMDMwMjA1QUI5MDdGRThDRQorOjEwMDVGMDAwRTAwMDA0REUwMDAwMDRERTEwMjRGRTYwMUQyNDAyNjAyMgorOjEwMDYwMDAwMDMwMjA1QUI5MDdGRUFFMEI0MDAwNEVFMDAwMDA0RUVDNAorOjEwMDYxMDAwMTAwMTA1QzIwMDAyMDVBQjkwN0ZCNEUwNDQwMUYwMDI3NgorOjEwMDYyMDAwMDUwMDA0RkUwMDAwMDRGRTEwQUI5MDdGRUFFMDcwMzg4NQorOjEwMDYzMDAwOTA3RkVDRTBGNDU0ODBGRkM0MDAwNTBFMDAwMDA1MEUyRQorOjEwMDY0MDAwMTA1NDBGRkZFMDU0MDcyRjI1RTAyNEI0RjU4MkU0MzQ2MgorOjEwMDY1MDAwN0YwMDA1MUUwMDAwMDUxRTEwRjU4M0U0RjA5MDdGRUM3RQorOjEwMDY2MDAwRTA1NDgwRkYxMzEzMTM1NDFGMDAwNTJFMDAwMDA1MkVDNQorOjEwMDY3MDAwMTBGRkUwNTQwNzJGOTA3RkQ3RjBFMDQ0MjBGMDgwNkUwOQorOjEwMDY4MDAwOTAwMDA1M0UwMDAwMDUzRTEwN0ZCNEUwNDQwMUYwODA3QworOjEwMDY5MDAwNjUxMjBFODE1MDYwOTA3RkU4MDAwNTRFMDAwMDA1NEUwNworOjEwMDZBMDAwMTBFMDI0RkU2MDE4MjQwMjcwNTQ5MDdGRUFFMEI0MDE0OAorOjEwMDZCMDAwMDQwMDA1NUUwMDAwMDU1RTEwRDIwMDgwNDk5MDdGQjQwMgorOjEwMDZDMDAwRTA0NDAxRjA4MDQwOTA3RkVBMDAwNTZFMDAwMDA1NkU3NgorOjEwMDZEMDAwMTBFMDcwMjA5MDdGRUNFMEY0NTQ4MEZGQzQ1NDBGRkZEMgorOjEwMDZFMDAwRTAwMDA1N0UwMDAwMDU3RTEwNTQwNzJGMjVFMDI0QjRBRAorOjEwMDZGMDAwRjU4MkU0MzQ3RkY1ODM3NDAxMDAwNThFMDAwMDA1OEVEOQorOjEwMDcwMDAwMTBGMDgwMUE5MDdGQjRFMDQ0MDFGMDgwMTFFNDkwMjA1MgorOjEwMDcxMDAwNkEwMDA1OUUwMDAwMDU5RTEwRjAxMjAxMDA1MDA3OTAyRgorOjEwMDcyMDAwN0ZCNEUwNDQwMUYwOTA3RkI0MDAwNUFFMDAwMDA1QUU1OAorOjEwMDczMDAwMDRFMDQ0MDJGMDAwMDAwMDAwMDAwNUIyMDEyMjAwMDBDNQorOjEwMDc0MDAwMDAwMDA1QjMxMEMwRTBDMDgzQzA4MkMwODVDMDg0QzA3MworOjEwMDc1MDAwODY3NTg2MDBDMDAwMDVDMzAwMDAwNUMzMTBEMEMwMDAyOAorOjEwMDc2MDAwQzAwMUMwMDJDMDAzQzAwNkMwMDc5MDdGQTUwMDA1RDMyQQorOjEwMDc3MDAwMDAwMDA1RDMxMEUwMzBFMjA2NzUwRDA2MDIwNjdGOTBGQQorOjEwMDc4MDAwN0ZBNUUwMjBFMTAwMDVFMzAwMDAwNUUzMTAwQ0U1MEQ4NgorOjEwMDc5MDAwNjQwMjYwMDY3NTBEMDcwMjA2N0ZBRjBERUYwMDA1RjNEQQorOjEwMDdBMDAwMDAwMDA1RjMxMDI0RkU2MDQ4MTQ2MDJDMjRGRTYwNzdERQorOjEwMDdCMDAwMjQwNDYwMDMwMjAwMDYwMzAwMDAwNjAzMTAwNjdGQUI1QQorOjEwMDdDMDAwMDlBQTBBQTkwQkFGMEMwNTBDOEY4Mjc1ODMwMDA2MTNDQQorOjEwMDdEMDAwMDAwMDA2MTMxMDAwMTIwNzg1OTA3RkE2RjBFNTBDNjU1NworOjEwMDdFMDAwMDg3MDVFNzUwRDAwMDYyMzAwMDAwNjIzMTAwNTgwNTk3MQorOjEwMDdGMDAwOTA3RkE2RTBBQjA5QUEwQUE5MEJBRTBDOEUwMDA2MzNDNworOjEwMDgwMDAwMDAwMDA2MzMxMDgyNzU4MzAwMTIwN0IyNzUwRDAyODA1NgorOjEwMDgxMDAwNDBFNTA4MjRGRTAwMDY0MzAwMDAwNjQzMTBCNTBDMDcxRgorOjEwMDgyMDAwOTA3RkE1RTA0NDIwRjBFNTA4MTRCNTBDMEEwMDA2NTNCQgorOjEwMDgzMDAwMDAwMDA2NTMxMDkwN0ZBNUUwNDQ0MEYwRTRGNTBEOTBEMQorOjEwMDg0MDAwN0ZBNkUwQUIwOTAwMDY2MzAwMDAwNjYzMTBBQTBBQTlCMAorOjEwMDg1MDAwMEJBRTBDOEU4Mjc1ODMwMDEyMDdCMjA1MEMwMDA2NzM3NgorOjEwMDg2MDAwMDAwMDA2NzMxMDgwMEE5MDdGQTVFMDQ0NDBGMEU0RjU5NAorOjEwMDg3MDAwMEQ1MzkxREZEMDAwMDY4MzAwMDAwNjgzMTAwN0QwMDZEOQorOjEwMDg4MDAwRDAwM0QwMDJEMDAxRDAwMEQwRDBEMDg2RDAwMDA2OTNDMworOjEwMDg5MDAwMDAwMDA2OTMwQTg0RDA4NUQwODJEMDgzRDBFMDMyMDA1NQorOjEwMDhBMDAwMDAwMDA2OUQxMEMyMDREMjA1RTRGNTI1QzIwM0MyMDA3MworOjEwMDhCMDAwQzIwMkMyMDExMjAwMDZBRDAwMDAwNkFEMTAwRTc0RDJENQorOjEwMDhDMDAwRTg0M0Q4MjA5MDdGQUI3NEZGRjA5MDdGQTkwMDA2QkQ2RAorOjEwMDhEMDAwMDAwMDA2QkQxMEYwOTA3RkFBRjA1MzkxRUY5MDdGOTUzNQorOjEwMDhFMDAwRTA0NEMwRjA5MDAwMDZDRDAwMDAwNkNEMTA3RjkzNzQ2OAorOjEwMDhGMDAwMzBGMDEyMEExOTc1MjQ0ODc1MjM5Mjc1MjIwMDA2REQxRQorOjEwMDkwMDAwMDAwMDA2REQxMDAwNzUyMTAwRTRGRkZFN0UwNTkwMjA0QQorOjEwMDkxMDAwNjg3NDAxRjBBMzAwMDZFRDAwMDAwNkVEMTBERUZDN0UxOQorOjEwMDkyMDAwMDA3RjA1OTA3RkFGRTA0NDAxRjA5MDdGQUUwMDA2RkRCMAorOjEwMDkzMDAwMDAwMDA2RkQxMEUwNDQwREYwRDJBRjEyMEU2ODMwMDE0OQorOjEwMDk0MDAwMEFFNDkwMjA2OTAwMDcwRDAwMDAwNzBEMTBGMDEyMDM2MworOjEwMDk1MDAwN0VDMjAxMzAwNDFBMTIwRTc3NTAxMzEyMDkwMDA3MURDRgorOjEwMDk2MDAwMDAwMDA3MUQxMDAwMzAwMDA3OTA3RkQ2RTAzMEU3RjM0RAorOjEwMDk3MDAwMTIwRDhCMTIwRTAwMDcyRDAwMDAwNzJEMTA3OUMyMDNGNworOjEwMDk4MDAwN0ZGRjdFRkY3REZGN0NGRjc4MjExMjA4MUQwMDA3M0Q2MQorOjEwMDk5MDAwMDAwMDA3M0QxMDdCMDA3QTAwNzkwMDc4MDBDMzEyMDg0MAorOjEwMDlBMDAwMEM3MDFCNzUyNDAwMDc0RDAwMDAwNzREMTA0ODc1MjM3RgorOjEwMDlCMDAwOTJGNTIyRjUyMTYzMjVGRjkwMjA2OEU1MjUwMDA3NUQ2QgorOjEwMDlDMDAwMDAwMDA3NUQwRUYwQTM3NDAxRjBBM0YwQTNGMDEyMDg3RAorOjEwMDlEMDAwRkY4MDlCMDAwMDAwMDc2QjAxMjIwMDAwMDAwMDA3NkNGNQorOjEwMDlFMDAwMTBCQjAxMDY4OTgyOEE4M0UwMjI1MDAyRTcyMkJCRkUwNworOjEwMDlGMDAwMDIwMDA3N0MwMDAwMDc3QzA5RTMyMjg5ODI4QTgzRTRFNQorOjEwMEEwMDAwOTMyMjAwMDAwMDAwMDc4NTEwQkIwMTBDRTU4MjI5RjU0OAorOjEwMEExMDAwODJFNTgzM0FGNTgzRTAyMjUwMDAwNzk1MDAwMDA3OTVCMAorOjEwMEEyMDAwMTAwNkU5MjU4MkY4RTYyMkJCRkUwNkU5MjU4MkY4RTJGNworOjEwMEEzMDAwMjIwMDA3QTUwMDAwMDdBNTBERTU4MjI5RjU4MkU1ODNDMAorOjEwMEE0MDAwM0FGNTgzRTQ5MzIyMDAwMDAwMDAwN0IyMTBGOEJCMDFERQorOjEwMEE1MDAwMERFNTgyMjlGNTgyRTU4MzNBRjU4M0U4RjAwMDA3QzJDNworOjEwMEE2MDAwMDAwMDA3QzIxMDIyNTAwNkU5MjU4MkM4RjYyMkJCRkUwQworOjEwMEE3MDAwMDVFOTI1ODJDODAwMDdEMjAwMDAwN0QyMDJGMjIyMDA1MQorOjEwMEE4MDAwMDAwMDA3RDQxMEJCMDExMEU1ODIyOUY1ODJFNTgzM0EwNgorOjEwMEE5MDAwRjU4M0UwRjVGMDAwMDdFNDAwMDAwN0U0MTBBM0UwMjI4RQorOjEwMEFBMDAwNTAwOUU5MjU4MkY4ODZGMDA4RTYyMkJCRkUwMDA3RjQyQgorOjEwMEFCMDAwMDAwMDA3RjQxMDBBRTkyNTgyRjhFMkY1RjAwOEUyMjJDNgorOjEwMEFDMDAwRTU4MzJBRjU4MzAwMDgwNDAwMDAwODA0MDhFOTkzRjU4QgorOjEwMEFEMDAwRjBBM0U5OTMyMjAwMDAwMDAwMDAwODBDMTBFQjlGRjU0MgorOjEwMEFFMDAwRjBFQTlFNDJGMEU5OUQ0MkYwRTg5QzQ1RjAwMDA4MUNDNworOjEwMEFGMDAwMDAwMDA4MUMwMTIyMDAwMDAwMDAwODFEMTAwODA4MDg2MgorOjEwMEIwMDAwRTYyRkZGRjYxOEU2M0VGRUY2MThFNjNERkQwMDA4MkQzRQorOjEwMEIxMDAwMDAwMDA4MkQwN0Y2MThFNjNDRkNGNjIyMDAwMDA4MzQxOQorOjEwMEIyMDAwMDQ4QzM0OEQzNTAwMDAwMDAwMDAwODM4MTA5MDdGOTU0QgorOjEwMEIzMDAwRTA0NEMwRjBFNEY1MzZGNTM3QzNFNTM3OTUwMDA4NDhFMgorOjEwMEI0MDAwMDAwMDA4NDgxMDM1RTUzNjk1MzQ1MDY5RUYyNTM3RjUzMworOjEwMEI1MDAwODJFNTM2M0VGNTAwMDg1ODAwMDAwODU4MTA4Mzc0RkZGRgorOjEwMEI2MDAwRjBGNDYwMDJDMzIyRUYyNTM3RjU4MkU1MzYwMDA4NjgwRAorOjEwMEI3MDAwMDAwMDA4NjgxMDNFRjU4M0U0RjA2MDAyQzMyMkVGMjUxMAorOjEwMEI4MDAwMzdGNTgyRTUzNjAwMDg3ODAwMDAwODc4MTAzRUY1ODNENgorOjEwMEI5MDAwNzRBQUYwNjRBQTYwMDJDMzIyRUYyNTM3RjUwMDA4ODgyMgorOjEwMEJBMDAwMDAwMDA4ODgxMDgyRTUzNjNFRjU4Mzc0NTVGMDY0NTVFMAorOjEwMEJCMDAwNjAwMkMzMjJBRDAwMDg5ODAwMDAwODk4MTAzN0U1Mzc5RQorOjEwMEJDMDAwMkZGNTgyRTUzNjNFRjU4M0VERjBGQ0FDMDUwMDA4QTg3NAorOjEwMEJEMDAwMDAwMDA4QTgxMEVENkM2MDAyQzMyMjA1MzdFNTM3NzBFRAorOjEwMEJFMDAwMDIwNTM2ODA4QzAwMDhCODAwMDAwOEI4MTBFNEY1MzYxRAorOjEwMEJGMDAwRjUzN0MzRTUzNzk1MzVFNTM2OTUzNDUwMjcwMDA4QzhGNQorOjEwMEMwMDAwMDAwMDA4QzgxMEVGMjUzN0Y1ODJFNTM2M0VGNTgzRTA5MQorOjEwMEMxMDAwNjUzNzYwMDJDMzAwMDhEODAwMDAwOEQ4MTAyMkVGMjUwRAorOjEwMEMyMDAwMzdGNTgyRTUzNjNFRjU4M0U0RjAwNTM3RTUwMDA4RTg2MAorOjEwMEMzMDAwMDAwMDA4RTgwODM3NzAwMjA1MzY4MENFRDMwMDAwMDBCNworOjEwMEM0MDAwMDAwMDA4RjAwMTIyMDAwMDAwMDAwOEYxMEU5MDdGMDA3MworOjEwMEM1MDAwRTUxMEYwOTA3RkI1NzQwMUYwRDMyMjAwMDAwMDA4RkY4QQorOjEwMEM2MDAwMDEyMjAwMDAwMDAwMDkwMDA5OTA3RkQ2RTA0NDgwRjBENgorOjEwMEM3MDAwODA3NDAwMDAwMDAwMDk3RDEwNDM4NzAxMDAwMDAwMDAxRgorOjEwMEM4MDAwMDAwMDAwMDAwMDAwMDAwMDIyMDAwOThEMDAwMDA5OEQxNgorOjEwMEM5MDAwMEM3ODdGRTRGNkQ4RkQ3NTgxM0EwMjA5RDQwMDAwMDA5MworOjEwMENBMDAwMDAwMDA5OTkxMDAyMDY5REU0OTNBM0Y4RTQ5M0EzNDA4MQorOjEwMENCMDAwMDNGNjgwMDFGMjAwMDlBOTAwMDAwOUE5MTAwOERGRjQ3OQorOjEwMENDMDAwODAyOUU0OTNBM0Y4NTQwNzI0MENDOEMzMzMwMDA5Qjk1RQorOjEwMENEMDAwMDAwMDA5QjkxMEM0NTQwRjQ0MjBDODgzNDAwNEY0NTZERQorOjEwMENFMDAwODAwMTQ2RjZERjAwMDlDOTAwMDAwOUM5MTBFNDgwMEI0NQorOjEwMENGMDAwMDEwMjA0MDgxMDIwNDA4MDkwMEUyREU0N0UwMDA5RDlFNgorOjEwMEQwMDAwMDAwMDA5RDkxMDAxOTM2MEJDQTNGRjU0M0YzMEU1MDlFRQorOjEwMEQxMDAwNTQxRkZFRTQ5MzAwMDlFOTAwMDAwOUU5MTBBMzYwMDFGMworOjEwMEQyMDAwMEVDRjU0QzAyNUUwNjBBODQwQjhFNDkzQTMwMDA5RjlCMQorOjEwMEQzMDAwMDAwMDA5RjkxMEZBRTQ5M0EzRjhFNDkzQTNDOEM1ODI2QworOjEwMEQ0MDAwQzhDQUM1ODNDQTAwMEEwOTAwMDAwQTA5MTBGMEEzQzg2RQorOjEwMEQ1MDAwQzU4MkM4Q0FDNTgzQ0FERkU5REVFNzgwQkUwMDBBMTlCQQorOjEwMEQ2MDAwMDAwMDBBMTkxMEU0OTA3RjlDRjA3RjBBRkUxMjBERDU1NgorOjEwMEQ3MDAwOTA3Rjk2NzQ4OTAwMEEyOTAwMDAwQTI5MTBGMDkwN0Y1QworOjEwMEQ4MDAwOUM3NENGRjA3RkY0N0UwMTEyMERENTkwN0YwMDBBMzk1QworOjEwMEQ5MDAwMDAwMDBBMzkxMDk2RTA1NEZFRjA3RjBBN0UwMDEyMEQyMgorOjEwMERBMDAwRDU3RjA1N0UwMDAwMEE0OTAwMDAwQTQ5MTAxMjBERDVDMgorOjEwMERCMDAwOTA3Rjk2RTA0NDAyRjBFMDU0N0ZGMDdGMDUwMDBBNTlFRQorOjEwMERDMDAwMDAwMDBBNTkxMDdFMDAxMjBERDU5MDdGOTZFMDQ0NDAzNQorOjEwMEREMDAwRjA3RjA1N0UwMDAwMEE2OTAwMDAwQTY5MTAxMjBERDUzNworOjEwMERFMDAwOTA3Rjk2RTA1NEJGRjA3RjMyN0UwMDEyMEQwMDBBNzlBQQorOjEwMERGMDAwMDAwMDBBNzkxMEQ1OTA3Rjk2RTA0NDQwRjA3RjMyN0U2MworOjEwMEUwMDAwMDAxMjBERDUyMjAwMEE4OTAwMDAwQTg5MTA3NTMzMDFFRAorOjEwMEUxMDAwRTUzMzYwMUI3RjAxMTIwRTE4N0YwMDdFMEUwMDBBOTlEOQorOjEwMEUyMDAwMDAwMDBBOTkxMDdEMDA3QzAxMTIwODM0RTQzM0Y1MzM4OAorOjEwMEUzMDAwNzAwNTdGMEYxMjAwMEFBOTAwMDAwQUE5MTAwRTE4RTUxQworOjEwMEU0MDAwMzM2MDFCN0YwMjEyMEUxODdGMDA3RTgwN0QwMDBBQjk3RQorOjEwMEU1MDAwMDAwMDBBQjkxMDAwN0M4MDEyMDgzNEU0MzNGNTMzNzBDNgorOjEwMEU2MDAwMDU3RjBGMTIwRTAwMEFDOTAwMDAwQUM5MTAxOEU1MzNFOQorOjEwMEU3MDAwNjAxQjdGMDMxMjBFMTg3RjAwN0UyMDdENDAwMDBBRDk4MAorOjEwMEU4MDAwMDAwMDBBRDkxMDdDNUIxMjA4MzRFNDMzRjUzMzcwMDU5NgorOjEwMEU5MDAwN0YwRjEyMEUxODAwMEFFOTAwMDAwQUU5MERFNTMzNjAyMQorOjEwMEVBMDAwMDVFNEZGMTIwRTE4RTUzMzI0RkYwMDAwMDAwMDBBRjZFNworOjEwMEVCMDAwMDEyMjAwMDAwMDAwMEFGNzA4OTA3RkVBRTBGNTEwRDM1NQorOjEwMEVDMDAwMjIwMDAwMDAwMDAwMEFGRjAxMzIwMDAwMDAwMDBCMDBCOQorOjEwMEVEMDAwMTAwMjBEQTUwMDAyMERFQzAwMDIwRDcwMDAwMjBEQkQwOAorOjEwMEVFMDAwMDAwMDBCMTAwMDAwMEIxMDEwMDIwRTAyMDAwMjBBRkY5RgorOjEwMEVGMDAwMDAwMjBFODMwMDAyMEU4NDAwMDAwQjIwMDAwMDBCMjA3NQorOjEwMEYwMDAwMTAwMjBFODUwMDAyMEU4NjAwMDIwRTg3MDAwMjBFODg3NworOjEwMEYxMDAwMDAwMDBCMzAwMDAwMEIzMDEwMDIwRTg5MDAwMjBFOEExOAorOjEwMEYyMDAwMDAwMjBFOEIwMDAyMEU4QzAwMDAwQjQwMDAwMDBCNDBGNAorOjEwMEYzMDAwMTAwMjBFOEQwMDAyMEU4RTAwMDIwRThGMDAwMjBFOTAyNworOjEwMEY0MDAwMDAwMDBCNTAwMDAwMEI1MDA4MDIwRTkxMDAwMjBFOTJBMAorOjEwMEY1MDAwMDAwMDAwMDAwMDAwMEI1ODEwRTRGRTc1MkJGRjc1MkNGQworOjEwMEY2MDAwMTE3NTJEMTJBQjJCQUEyQ0E5MDAwQjY4MDAwMDBCNjg4MQorOjEwMEY3MDAwMTAyRDkwMDAwMTEyMDc4NTY0MDI3MDJEQUQwNjBFRUQ1NAorOjEwMEY4MDAwQjUwMDBCNzgwMDAwMEI3ODEwMDcwMTIyOTAwMDAyMTJDOAorOjEwMEY5MDAwMDdENDg1RjAyOUY1MkE2MjI5MDAwQjg4MDAwMDBCODgwOAorOjEwMEZBMDAwMTBFNTI5NjIyQUU1MkE2MjI5MjlGREU1MjkzQUE5MDVFMQorOjEwMEZCMDAwNzUwMDBCOTgwMDAwMEI5ODBFMkJGRkY1MkM4OTJEODBFNworOjEwMEZDMDAwQzM3QjAwN0EwMDc5MDAwMDAwMDAwQkE2MDEyMjAwMDAxQworOjEwMEZEMDAwMDAwMDBCQTcwNkFCMDdBQTA2QUMwNTAwMDAwMDBCQUQ4RQorOjEwMEZFMDAwMTBFNEZERTUxMTYwMTFFQUZGQUUwNTBERUUyNDEwRjVFOQorOjEwMEZGMDAwODIwMDBCQkQwMDAwMEJCRDEwRTQzNDBGRjU4M0VGRjA1MQorOjEwMTAwMDAwRUJBRTA1MEQ3NDEwMkVGNTgyMDAwQkNEMDAwMDBCQ0Q1QworOjEwMTAxMDAwMTBFNDM0MEZGNTgzRUJGMEFGMDUwRDc0MTAyRkY1ODI1QgorOjEwMTAyMDAwRTQwMDBCREQwMDAwMEJERDEwMzQwRkY1ODNFQ0YwQUZCNgorOjEwMTAzMDAwMEY3QTBGN0IxMDEyMEQ1MTdGMDAwQkVEMDAwMDBCRURBRQorOjEwMTA0MDAwMDYwQTdFMDAxMjBERDUwMDAwMDAwQkYzMDEyMjAwMDBGRAorOjEwMTA1MDAwMDAwMDBCRjQwQThFMzM4RjM0OEQzNThBMzY4QjM3MDBCRgorOjEwMTA2MDAwMDAwMDBCRkUxMEU0RkRGNTM4RTUxMTYwMTJFNTMzRkZEQQorOjEwMTA3MDAwQUUwNTBERUUyNDAwMEMwRTAwMDAwQzBFMTAxM0Y1ODJEMAorOjEwMTA4MDAwRTQzNDBGRjU4M0VGRjBFNTM0QUUwNTBENzQwMDBDMUU2QgorOjEwMTA5MDAwMDAwMDBDMUUxMDEzMkVGNTgyRTQzNDBGRjU4M0U1MzRBNgorOjEwMTBBMDAwRjBBRjBGN0EwRjAwMEMyRTAwMDAwQzJFMTA3QjEzMTJFNQorOjEwMTBCMDAwMEQ1MUFGMEZBRDM1QUIzN0FBMzYxMjBEMzIwMDBDM0VENQorOjEwMTBDMDAwMDAwMDBDM0UwMTIyMDAwMDAwMDAwQzNGMDI4RjI5MDBBRQorOjEwMTBEMDAwMDAwMDBDNDExMEU0RjUyQTc1MkJGRjc1MkMxMTc1MkRCRAorOjEwMTBFMDAwMzJBQjJCQUEyQzAwMEM1MTAwMDAwQzUxMTBBOTJEOTBGMgorOjEwMTBGMDAwMDAwMTEyMDc4NUI0MDMxREFGMkEwNTJBRUYwMDBDNjExOQorOjEwMTEwMDAwMDAwMDBDNjExMEI1MjkwMTIyMTIwNzZDN0UwMDI5RkYzNgorOjEwMTExMDAwRUUzQUE5MDc3NTAwMEM3MTAwMDAwQzcxMEUyQkZGRjU1QgorOjEwMTEyMDAwMkM4OTJEODBENDdCMDA3QTAwNzkwMDAwMDAwMDBDN0Y5MAorOjEwMTEzMDAwMDEyMjAwMDAwMDAwMEM4MDBBOEUzMzhGMzQ4RDM1OEEyNgorOjEwMTE0MDAwMzY4QjM3MDAwMDAwMEM4QTEwRTRGNTM4RTUzOEMzOTU3QgorOjEwMTE1MDAwMzU1MDIwMDUzNEU1MzRBRTMzMDAwQzlBMDAwMDBDOUE2QgorOjEwMTE2MDAwMTA3MDAyMDUzMzE0RkZFNTM3MjUzOEY1ODJFNDM1MzY3MworOjEwMTE3MDAwRjUwMDBDQUEwMDAwMENBQTBBODNFMEZEMTIwQkE3MDVEQgorOjEwMTE4MDAwMzg4MEQ5MDAwMDAwMENCNDAxMjIwMDAwMDAwMDBDQjUyQQorOjEwMTE5MDAwMTBBOTA3RTUwRDcwMjU5MDdGQTVFMDQ0ODBGMEU5MjVCMgorOjEwMTFBMDAwRTAwMDBDQzUwMDAwMENDNTEwNDQwMTkwN0ZBNkYwOEQzNgorOjEwMTFCMDAwMDhBRjAzQTkwNzc1MDkwMThBMDAwQ0Q1MDAwMDBDRDVGQQorOjEwMTFDMDAwMEQwQTg5MEJFNEY1MEM3NTBEMDNEMzIyQzMyMjAwMDAzMAorOjEwMTFEMDAwMDAwMDBDRTIxMEE5MDdFNTBENzAyMzkwN0ZBNUUwNDQwNAorOjEwMTFFMDAwODBGMEU5MjVFMDAwMENGMjAwMDAwQ0YyMTA5MDdGQTZFMAorOjEwMTFGMDAwRjA4RDA4QUYwM0E5MDc3NTA5MDE4QTBBODkwMDBEMDI1RAorOjEwMTIwMDAwMDAwMDBEMDIwQjBCRTRGNTBDNzUwRDAxRDMyMkMzMjI3NworOjEwMTIxMDAwMDAwMDBEMEQxMDkwN0ZENkUwNTRGQkYwRTA0NDA4RjA4NAorOjEwMTIyMDAwMzAwNjA0RTA0NDAwMEQxRDAwMDAwRDFEMTAwMkYwN0Y4QgorOjEwMTIzMDAwRDA3RTA3MTIwREQ1OTA3RkQ2RTA1NEY3RjAwMDBEMkQyQgorOjEwMTI0MDAwMDAwMDBEMkQwNUUwNDQwNEYwMjIwMDAwMDAwMDBEMzJFNgorOjEwMTI1MDAwMTAxMjBDQjVFNTBEMjRGQTYwMTAxNDYwMDcyNDA3NzAxNQorOjEwMTI2MDAwRjMwMDBENDIwMDAwMEQ0MjBGN0YwODIyRTRGNTBEN0ZEMAorOjEwMTI3MDAwMDcyMkU0RjUwRDdGMDYyMjAwMDAwRDUxMTAxMjBDRTI0QQorOjEwMTI4MDAwRTUwRDI0RkE2MDEwMTQ2MDA3MjQwNzcwRjMwMDBENjE2NworOjEwMTI5MDAwMDAwMDBENjEwRjdGMDgyMkU0RjUwRDdGMDcyMkU0RjVDMQorOjEwMTJBMDAwMEQ3RjA2MjIwMDAwMEQ3MDEwQzBFMEMwODNDMDgyOTA0OAorOjEwMTJCMDAwN0ZDNEU0RjA1MzkxRUY5MDdGMDAwRDgwMDAwMDBEODAxQgorOjEwMTJDMDAwMEJBQjc0MDRGMEQwODJEMDgzRDBFMDMyMDAwMDBEOEJFMQorOjEwMTJEMDAwMTA5MDdGRDZFMDMwRTcxMkUwNDQwMUYwN0YxNDdFMDBFQQorOjEwMTJFMDAwMTIwMDBEOUIwMDAwMEQ5QjBBMERENTkwN0ZENkUwNTQ5NworOjEwMTJGMDAwRkVGMDIyMDAwMDAwMERBNTEwQzBFMEMwODNDMDgyRDIyNQorOjEwMTMwMDAwMDE1MzkxRUY5MDdGQUI3NDAxMDAwREI1MDAwMDBEQjU1NgorOjEwMTMxMDAwMDhGMEQwODJEMDgzRDBFMDMyMDAwMDAwMDAwMDBEQkQ4NAorOjEwMTMyMDAwMTBDMEUwQzA4M0MwODJEMjAzNTM5MUVGOTA3RkFCNzRCMgorOjEwMTMzMDAwMDgwMDBEQ0QwMDAwMERDRDA4RjBEMDgyRDA4M0QwRTBBNAorOjEwMTM0MDAwMzIwMDAwMDAwMDAwMERENTEwOEUzOThGM0FFNTNBMTVCNQorOjEwMTM1MDAwM0FBRTM5NzAwMjE1Mzk0RTYwMDAwREU1MDAwMDBERTUxQQorOjEwMTM2MDAwMDcwNTEyMEU0MTgwRUUyMjAwMDAwREVDMTBDMEUwQzAxNworOjEwMTM3MDAwODNDMDgyNTM5MUVGOTA3RkFCNzQwMkYwRDAwMDBERkNEQworOjEwMTM4MDAwMDAwMDBERkMwNjgyRDA4M0QwRTAzMjAwMDAwMDBFMDI4NworOjEwMTM5MDAwMTBDMEUwQzA4M0MwODI1MzkxRUY5MDdGQUI3NDEwRjAxNworOjEwMTNBMDAwRDAwMDBFMTIwMDAwMEUxMjA2ODJEMDgzRDBFMDMyMDA3MAorOjEwMTNCMDAwMDAwMDBFMTgxMEFFMDc3RjIxN0QwMTc0MDAyRUY1ODIwQgorOjEwMTNDMDAwRTQzNDBGQUI4MjAwMEUyODAwMDAwRTI4MDVGQTEyMEQzRgorOjEwMTNEMDAwNTEyMjAwMDAwMDAwMEUyRDEwNTAwRjAwQzBGOUE0QjBFMworOjEwMTNFMDAwOTk5MjgyRjg4MDk4ODg4M0M2MDAwRTNEMDAwMDBFM0REOQorOjEwMTNGMDAwMDNBMTg2OEUwMDAwMEU0MDAxMDAwMDAwMDAwMDBFNDE5NworOjEwMTQwMDAwMTA3NDAwRjU4NjkwRkRBNTdDMDVBM0U1ODI0NTgzNzBFOAorOjEwMTQxMDAwRjkwMDBFNTEwMDAwMEU1MTAxMjIwMDAwMDAwMDBFNTI5MgorOjEwMTQyMDAwMEU5MDdGMDBFNTBFRjA5MDdGQjU3NDAxRjBEMzIyMDA5RQorOjEwMTQzMDAwMDAwMDBFNjAwODkwN0ZFQUUwRjUwRUQzMjIwMDAwMDA2NQorOjEwMTQ0MDAwMDAwMDBFNjgwOEU0RjUwREQyRTlEMkFGMjIwMDAwMDBEQQorOjEwMTQ1MDAwMDAwMDBFNzAwNDUzRDhFRjMyMDAwMDAwMDAwMDBFNzQzQworOjEwMTQ2MDAwMDNEMjAwMjIwMDAwMEU3NzAyRDMyMjAwMDAwMDBFNzk4MgorOjEwMTQ3MDAwMDJEMzIyMDAwMDAwMEU3QjAyRDMyMjAwMDAwMDBFN0Q2QQorOjEwMTQ4MDAwMDJEMzIyMDAwMDAwMEU3RjAyRDMyMjAwMDAwMDBFODE1MgorOjEwMTQ5MDAwMDJEMzIyMDAwMDAwMEU4MzAxMzIwMDAwMDAwMDBFODRGRgorOjEwMTRBMDAwMDEzMjAwMDAwMDAwMEU4NTAxMzIwMDAwMDAwMDBFODZBRgorOjEwMTRCMDAwMDEzMjAwMDAwMDAwMEU4NzAxMzIwMDAwMDAwMDBFODg5QgorOjEwMTRDMDAwMDEzMjAwMDAwMDAwMEU4OTAxMzIwMDAwMDAwMDBFOEE4NworOjEwMTREMDAwMDEzMjAwMDAwMDAwMEU4QjAxMzIwMDAwMDAwMDBFOEM3MworOjEwMTRFMDAwMDEzMjAwMDAwMDAwMEU4RDAxMzIwMDAwMDAwMDBFOEU1RgorOjEwMTRGMDAwMDEzMjAwMDAwMDAwMEU4RjAxMzIwMDAwMDAwMDBFOTA0QgorOjEwMTUwMDAwMDEzMjAwMDAwMDAwMEU5MTAxMzIwMDAwMDAwMDBFOTIzNgorOjEwMTUxMDAwMDEzMjAwMDAwMDAwMTEwMDEwMTIwMTAwMDEwMDAwMDA2MworOjEwMTUyMDAwNDA0NzA1MTAyNzAxMDAwMTAyMDAxMTEwMDAwMDExMTBCMgorOjEwMTUzMDAwMTAwMDAxMDkwMjIwMDAwMTAxMDNBMDAwMDkwNDAwMDBCRAorOjEwMTU0MDAwMDIwMDExMjAwMDAwMTEyMDEwRkYwMDAwMDQwNzA1ODI5NgorOjEwMTU1MDAwMDI0MDAwMDAwNzA1MDIwMjQwMDAxMTMwMDAwMDExMzA3NworOjEwMTU2MDAwMTAwMDAwMDQwMzA5MDQyNjAzNDEwMDZFMDA2MzAwNjhCNAorOjEwMTU3MDAwMDAwMDExNDAwMDAwMTE0MDEwNkYwMDcyMDAyMDAwNDM3NQorOjEwMTU4MDAwMDA2ODAwNjkwMDcwMDA3MzAwMDAxMTUwMDAwMDExNTBFNQorOjEwMTU5MDAwMTAyQzAwMjAwMDQ5MDA2RTAwNjMwMDJFMDAyODAzNDYzNgorOjEwMTVBMDAwMDAwMDExNjAwMDAwMTE2MDEwNjkwMDcyMDA2RDAwNzc4QQorOjEwMTVCMDAwMDA2MTAwNzIwMDY1MDAyMDAwMDAxMTcwMDAwMDExNzBEMQorOjEwMTVDMDAwMTA0NjAwNzIwMDYxMDA2RDAwNjUwMDU3MDA2RjAwNzJFOAorOjEwMTVEMDAwMDAwMDExODAwMDAwMTE4MDEwNkIwMDczMDAyQTAzNDM4QgorOjEwMTVFMDAwMDA2RjAwNkUwMDY2MDA2OTAwMDAxMTkwMDAwMDExOTAwRAorOjEwMTVGMDAwMTA2NzAwNzUwMDcyMDA2MTAwNzQwMDY5MDA2RjAwNkU3MgorOjEwMTYwMDAwMDAwMDExQTAwMDAwMTFBMDEwMjAwMDUzMDA3NDAwNzIwRgorOjEwMTYxMDAwMDA2OTAwNkUwMDY3MDAyMjAzMDAxMUIwMDAwMDExQjBFNQorOjEwMTYyMDAwMTA0OTAwNkUwMDc0MDA2NTAwNzIwMDY2MDA2MTAwNjM3RQorOjEwMTYzMDAwMDAwMDExQzAwMDAwMTFDMDEwNjUwMDIwMDA1MzAwNzRBQworOjEwMTY0MDAwMDA3MjAwNjkwMDZFMDA2NzAwMDAxMUQwMDAwMDExRDAyOAorOjA5MTY1MDAwMDIwMDAwMDAwMDAwMDAwMDAwOEYKKzowMDAwMDAwMUZGCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiAgICAgIHdoaXRlaGVhdC5oICAtLSAgQ29ubmVjdFRlY2ggV2hpdGVIRUFUIEZpcm13YXJlLgorICoKKyAqICAgICAgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgIENvbm5lY3RUZWNoIEluYyAoaHR0cDovL3d3dy5jb25uZWN0dGVjaC5jb20vKQorICoKKyAqICAgICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICAgICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAgICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogICAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogICAgICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKiAoMTAvMDkvMjAwMikgU3R1YXJ0IE1hY0RvbmFsZAorICoJRmlybXdhcmUgNC4wNgorICoKKyAqICgwNC8wOS8yMDAwKSBna2gKKyAqCVVwZGF0ZWQgdGhlIGZpcm13YXJlIHdpdGggdGhlIGxhdGVzdCBwcm92aWRlZCBieSBDb25uZWN0VGVjaC4KKyAqCisgKiAoMDEvMTYvMjAwMCkgZ2toCisgKglGaXhlZCBteSBpbnRlbCBoZXggcHJvY2Vzc2luZyB0b29sLCBzbyBub3cgdGhlIGZpcm13YXJlIGFjdHVhbGx5CisgKgltYXRjaGVzIHRoZSBvcmlnaW5hbCBmaWxlICh0aGlzIHdhcyBjYXVzaW5nIGEgZmV3IHByb2JsZW1zLi4uKQorICoKKyAqICgwMS8xNS8yMDAwKSBna2gKKyAqCUFkZGVkIGRlYnVnIGxvYWRlciBmaXJtd2FyZSBpZiBERUJVRyBpcyAjZGVmaW5lZDoKKyAqCQlQb3J0IDEgTEVEIGZsYXNoZXMgd2hlbiB0aGUgdmVuZF9heCBwcm9ncmFtIGlzIHJ1bm5pbmcKKyAqCQlQb3J0IDIgTEVEIGZsYXNoZXMgd2hlbiBhbnkgU0VUVVAgY29tbWFuZCBhcnJpdmVzCisgKgkJUG9ydCAzIExFRCBmbGFzaGVzIHdoZW4gYW55IHZhbGlkIFZFTkRPUiByZXF1ZXN0IG9jY3VycworICoJCVBvcnQgNCBMRUQgZmxhc2hlcyB3aGVuIHRoZSBFWFRFUk5BTCBSQU0gRE9XTkxPQUQgcmVxdWVzdCBvY2N1cnMKKyAqCisgKiB2ZXJzaW9uIDEuMCAoMDEvMDkvMjAwMCkgZ2toCisgKglPcmlnaW5hbCBmaXJtd2FyZSBmcm9tIENvbm5lY3RUZWNoIG1hc3NhZ2VkIGEgbGl0dGxlIHRvIGJlIHByb2dyYW0KKyAqCXJlYWRhYmxlLgorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSB3aGl0ZWhlYXRfREFURSAiMjAwMDAxMDYiCmRpZmYgLS1naXQgYS9maXJtd2FyZS95YW1haGEvZHMxX2N0cmwuZncuaWhleCBiL2Zpcm13YXJlL3lhbWFoYS9kczFfY3RybC5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhOWIxZDcKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS95YW1haGEvZHMxX2N0cmwuZncuaWhleApAQCAtMCwwICsxLDc2OSBAQAorOjEwMDAwMDAwMDcwMDAwMDAwNzAwMjQwMDA3MDAwQzAwMDcwMDFDMDA4OAorOjEwMDAxMDAwMDcwMDA2MDAwMjAwNzAwMDIwMDAwMDAwNDAwMDAzMDBGRQorOjEwMDAyMDAwMDQ3MTAwMDA4NjQyMDAwMDQwMDAwMzAwMEQwRjAwMDAzNAorOjEwMDAzMDAwMTAwODAwMDAzQTA0MjAwMDgyMDIwMDAwMEQwMjAwMDBCNworOjEwMDA0MDAwMTAwODAwMDAzQTA0MjAwMDgyMTIwMDAwODIwRTIwMDBGNgorOjEwMDA1MDAwODIxQTAwMDAwRDJEMDMwMDEwMDgwMDAwM0EwNDEwMDA2MQorOjEwMDA2MDAwOEREMzAyMDAxMDA4MDAwMDNBMDQxODAwMEQwMTAwMDBCMgorOjEwMDA3MDAwMTUwMDAyMDBGRDAwMDAwMDIwMDAwMDAwNjA4ODAzMDA2MQorOjEwMDA4MDAwNjA5MDAzMDA2MDgwMDMwMDQwODAwMzAwNDA4MDAzMDAxNAorOjEwMDA5MDAwNDA4MDAzMDA0MDgwMDEwMDdEMEEwMDAwNDA4MDAzMDA5MgorOjEwMDBBMDAwNDA4MDAzMDA0MDgwMDEwMDAyMDQyMDAwODIwODAwMDAxQworOjEwMDBCMDAwMUEwMDA4MDAwNDA5MDAwMDg2NTkwMTAwMDcwMDAwMDAyQQorOjEwMDBDMDAwMDcwMDI2MDAwNzAwMDAwMDA3MDAwMDAwMDY4QTAxMDA2NAorOjEwMDBEMDAwMDcwMDAwMDA4RDBDMDMwMDEwMDgwMDAwM0EwNDE4MDAwRgorOjEwMDBFMDAwMDcwMDI2MDA3RDA4MDAwMDQyODAwMTAwMEExNjAwMDA3QgorOjEwMDBGMDAwMDZBMjA0MDAwNzAwMDAwMDhEMjEwMDAwMTAwODAwMDA4NworOjEwMDEwMDAwM0EwNDA4MDAwNkMyMjEwMDA3MDAwMDAwRkQwNzAwMDBCNQorOjEwMDExMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODY5MzAyMDBFMgorOjEwMDEyMDAwOTUwMTAwMDAwNDBEMDkwMDA3MDAwMDAwMjAwODAwMDBGMAorOjEwMDEzMDAwRjUwMDAwMDA3RDBCMDAwMDYwRjAwMTAwRkQwMDAwMDBGNAorOjEwMDE0MDAwMDYyMjAzMDA0MDgwMDEwMDdEMEEwMDAwNDI4MDAzMDA3NworOjEwMDE1MDAwNEE4MDEzMDAwQTAwMTgwMDIwMTgwMDAwNjA5MDA1MDA3MworOjEwMDE2MDAwNjA4ODA1MDA0MDgwMDEwMEZEMDAwMDAwNDI4MDAxMDAyMQorOjEwMDE3MDAwMEEwMDcwMDAxNTAxMDAwMDQ0MTEwNzAwODYyMzAzMDBFNworOjEwMDE4MDAwMDAwMDAzMDAyMDcwMDAwMDA2NEEwMzAwNDA4MDAxMDBDOAorOjEwMDE5MDAwOEQzNDAwMDAxMDA4MDAwMDNBMDQwODAwMDZFQTIxMDAyRgorOjEwMDFBMDAwMDcwMDAwMDA4REQzMDIwMDEwMDgwMDAwM0EwNDE4MDA3OAorOjEwMDFCMDAwMDY4MjAxMDAwNzAwMDAwMDA3MDAyNDAwOEQwRjAwMDBFOAorOjEwMDFDMDAwMTAwODAwMDAzQTE2MDAwMDAyMjQwMDAwMDI1QzAwMDA0MworOjEwMDFEMDAwRkQyODAwMDAyMDAwMDAwMDQwODAwMTAwMEQwMDA4MDAwNAorOjEwMDFFMDAwMTUwODAwMDA4NDA5NTEwMDA3MDAwMDAwNEQwMDAwMDBDMAorOjEwMDFGMDAwNUQwRTAwMDAwMjBFMDAwMDhENDEwMDAwMTAwODAwMDA5RQorOjEwMDIwMDAwM0EwNDA4MDAwNjhBMkMwMDA3MDAwMDAwOEQwMDAwMDA1OAorOjEwMDIxMDAwMjQwOTAwMDAwMjBGMDAwMDhENDUwMDAwMTAwODAwMDBCNgorOjEwMDIyMDAwM0EwNDA4MDAwNjhBMkMwMDA3MDAwMDAwN0QzODAwMDAxMAorOjEwMDIzMDAwNDI4MDAxMDAwQTAwMDgwMDE1MTAwMDAwODQwOTAxMDAzNgorOjEwMDI0MDAwODY4MzAxMDAwNzAwMDAwMDA2QUEwMTAwMDcwMDAwMDBFNQorOjEwMDI1MDAwRkQwODAwMDA0MjgwMDEwMDBBMDAxODAwMDQxOTAwMDA5NworOjEwMDI2MDAwODY4MDIxMDAwNzAwMjgwMDEwMTgwMDAwM0EwNDI4MDBBQQorOjEwMDI3MDAwMDIwQzI4MDAwRDAwMDAwMDEwMDgwMDAwM0ExNDI4MDBBRAorOjEwMDI4MDAwOEQ4MDA4MDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDA3MQorOjEwMDI5MDAwMDcwMDIwMDAwRDAyMDAwMDA0OTkxODAwMDcwMDAwMDA2QworOjEwMDJBMDAwMkQ0MDAwMDBCRDAwMDAwMEZEMDIwMDAwNDI4MDAxMDA2MgorOjEwMDJCMDAwMEEwMDA4MDAwNDA5MDAwMDg2NUEwNTAwMDcwMDAwMDAzMworOjEwMDJDMDAwMDAwMTAwMDAyMDBBMDAwMDdEMDQwMDAwNDA4MDAxMDBDMQorOjEwMDJEMDAwNDI4MDAxMDAwQTAwMjAwMDE1MzAwMDAwNDQyMTAxMDA4NgorOjEwMDJFMDAwODY0OTAzMDAwNzAwMDAwMDA0MjEwMDAwODY0OTAzMDAzRQorOjEwMDJGMDAwMDcwMDAwMDA4RDBGMDAwMDEwMDgwMDAwM0EwQzI4MDBENQorOjEwMDMwMDAwNDQzOTAyMDA4NkM5MDYwMDA3MDAwMDAwMTAxODAwMDBFQQorOjEwMDMxMDAwM0EwNDI4MDAwRDgxMDgwMDIwMDgwMDAwRkQwMjAwMDBCQQorOjEwMDMyMDAwNDA4MDAxMDAwNzAwMjAwMDEwMjgwMDAwM0EwMDc4MDBGQgorOjEwMDMzMDAwOEQ2ODAwMDAxMDA4MDAwMDNBMDQwODAwMDY4QTI4MDBCMgorOjEwMDM0MDAwMDcwMDAwMDAwRDQwMDAwMDE1MTAwMDAwMDQ5OTE4MDA3RgorOjEwMDM1MDAwMDQyOTI5MDAwNDM5MzkwMDA3MDAwMDAwMDYwMjA2MDBCQworOjEwMDM2MDAwMDcwMDAwMDBGNTA0MDAwMDdEMDAwMDAwMjAwMDAwMDBGMAorOjEwMDM3MDAwOEQwMDAwMDA2MDA4MDEwMDQwODAwMTAwN0QwNDAwMDA0NQorOjEwMDM4MDAwNDI4MDAzMDA0QTgwMjEwMDBBMDAxODAwNDQxOTAyMDAzQworOjEwMDM5MDAwODY1ODIxMDAwNzAwMDAwMDc1NDAwMDAwMDRGMTcxMDAzQworOjEwMDNBMDAwMDcwMDAwMDA0MjAwMDEwMDBBMDAyODAwMDQyOTAwMDBBNAorOjEwMDNCMDAwODYyMDIxMDAwNzAwMDAwMDBEM0MwMDAwMDRBOTMwMDA0OQorOjEwMDNDMDAwMDcwMDAwMDA3RDA3MDAwMDQyODAwMTAwMEEwMDA4MDBDRAorOjEwMDNEMDAwMDQwOTAwMDA4NkRBMDcwMDdEMDUwMDAwMjAyODAwMDBERgorOjEwMDNFMDAwNjBCMDAzMDAwNkYyMDcwMDQwODAwMTAwMjAzMDAwMDBFQQorOjEwMDNGMDAwNjBBODAzMDA0MDgwMDEwMEZEMDIwMDAwNDI4MDAxMDA2RgorOjEwMDQwMDAwMEEwMDA4MDAwNDA5MDAwMDg2RkEwNzAwMDcwMDAwMDAzRgorOjEwMDQxMDAwN0QwNTAwMDA0MjgwMDEwMDBBMDQyODAwOEQwRTAwMDBDNgorOjEwMDQyMDAwMTAwODAwMDAzQTBDMjgwMDBEMDAwMDAwMTAwODAwMDAyMQorOjEwMDQzMDAwM0ExNDI4MDAwRDAwMDkwMDIwMDgwMDAwRkQwMjAwMDAwOQorOjEwMDQ0MDAwNDA4MDAxMDAwNzAwMjAwMEZEM0QwMDAwMjAwMDAwMDA2QQorOjEwMDQ1MDAwNDA4MDAxMDA3RDEwMDAwMDhEOEQwMDAwMTAwODAwMDAxQworOjEwMDQ2MDAwM0EwNDA4MDAwNjhBMjgwMDA3MDAwMDAwMTUwODAwMDA2QQorOjEwMDQ3MDAwMUEwMDA4MDA4NDA5MDEwMDg2NTEwOTAwN0QxMzAwMDA1QworOjEwMDQ4MDAwMDAwNTIwMDAyMDBGMjgwMDYwOEYzMzAwNjA4RjNCMDBBNAorOjEwMDQ5MDAwNjA4RjQzMDA2MDhGNEIwMDYwOEY1MzAwNjA4RjVCMDA2NAorOjEwMDRBMDAwNjA4QTAzMDA0MDgwMDEwMEJEN0YwMDAwQzQzRDM4MDAyOQorOjEwMDRCMDAwMDcwMDAwMDA3RDFBMDAwMDc1MTMwMDAwNDI4MDAxMDA1MworOjEwMDRDMDAwNEEwMDA5MDAwQTAwMTAwMDA0OEQwQjAwMDQ5NTEzMDA3NworOjEwMDREMDAwMDcwMDAwMDAyMDA4MDAwMDYwOTAwMTAwMDQxMTAwMDBFNworOjEwMDRFMDAwODYyMDIxMDA0MDAwMDEwMEZEMTcwMDAwNDI4MDAxMDAyRAorOjEwMDRGMDAwMEEwMDA4MDAwNDA5MDAwMDg2MjIyMTAwMDcwMDAwMDAwRAorOjEwMDUwMDAwN0QxOTAwMDA0MjgwMDMwMDRBODAwOTAwMEEwMDEwMDBBMworOjEwMDUxMDAwMjQwOTAwMDA2NDE2MDAwMEZEMTEwMDAwNDI4MDAzMDA2MQorOjEwMDUyMDAwNEE4MDJCMDA0QTgwMTkwMDhEMDAwMDAwNDQ4OTIxMDA3OAorOjEwMDUzMDAwMDcwMDAwMDA0NDIyMDAwMDg2RTEwQTAwMDcwMDAwMDBENgorOjEwMDU0MDAwNjQxQTAwMDAyNDJBMDAwMDdEMTkwMDAwMDIwMTA4MDAzRQorOjEwMDU1MDAwMjIwMTEwMDAyMDA4MDAwMDYwOTAwMzAwNDA4MDAxMDA4QworOjEwMDU2MDAwRkQzRDAwMDA4RDAwMDAwMDIwMDgwMDAwNDA4MDAxMDBEQgorOjEwMDU3MDAwNzUxMzAwMDA3RDFBMDAwMDQyMDAwMTAwNEE4MDA5MDA0NgorOjEwMDU4MDAwMEEwMDEwMDAxRDAyMDAwMEU0ODkwMTAwRTQ5MjI5MDAyNQorOjEwMDU5MDAwNDQ5MTMwMDAwNzAwMDAwMDBEMDYwMDAwMTUwQTAwMDAxRAorOjEwMDVBMDAwMUQwQzAwMDAyNTEwMDAwMEU0QTkwMDAwRTQyQjAxMDA1MAorOjEwMDVCMDAwNjQwNDAwMDBFNEIzMDEwMEU0MzIwMjAwNjQwNDAwMDBCQgorOjEwMDVDMDAwNjQwNDAwMDA2NDA0MDAwMDY0MDQwMDAwMEQwNDAwMDBFMgorOjEwMDVEMDAwQzRCMTA4MDAwNzAwMDAwMDIwMDgwMDAwRjUwQjAwMDA2RgorOjEwMDVFMDAwNDAwMDAzMDA3RDE5MDAwMDQyODAwMzAwNEE4MDA5MDA5QQorOjEwMDVGMDAwMjQwQTAwMDAwQTAwMDgwMDY0MEUwODAwMDcwMDAwMDAzQQorOjEwMDYwMDAwMjIwMTEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAxMDBEQgorOjEwMDYxMDAwQUM2NDAwMDA3RDAyMDAwMDIwMDAwMDAwNDA4MDAxMDA2QQorOjEwMDYyMDAwN0QxMDAwMDA0MjgwMDEwMEZEMTEwMDAwNEE4MDNCMDA2NworOjEwMDYzMDAwNEE4MDA5MDAwQTAwMjAwMDk1MDAwMDAwNDQxMTFBMDBCOQorOjEwMDY0MDAwNDRBMTAwMDA4NjIwMEQwMDBEMDQwMDAwODRCOTAwMDBDNAorOjEwMDY1MDAwODYyMTBEMDBGRDE4MDAwMDQyODAwMTAwRkQxMDAwMDAwMQorOjEwMDY2MDAwNEE4MDA5MDAwQTAwMjgwMDk1MDAwMDAwMjQwOTAxMDBDMgorOjEwMDY3MDAwNjQyQTAwMDA4NjExMEQwMDA3MDAwMDAwMDQyOTAwMDAxNAorOjEwMDY4MDAwODYyMjBEMDAwNzAwMDAwMDA2MkEwRDAwMDIwMDA4MDA2NworOjEwMDY5MDAwOEQwMDAwMDA3RDM4MDAwMDIwMDgwMDAwNDA4MDAxMDAyRgorOjEwMDZBMDAwN0QxMjAwMDA0MjgwMDEwMDBBMDAxMDAwMDQzOTAwMDBBMQorOjEwMDZCMDAwODZEMTBEMDAwRDA4MDAwMEI1RkY3RjAwODRCOTAwMDA1MQorOjEwMDZDMDAwODZBMTBEMDAyNTAwMDAwMDA2N0EwRTAwMkQwMDAwMDAxNgorOjEwMDZEMDAwMTUwMDAwMDAyRDA4MDAwMDhEQzcwMjAwMjAwODAwMDA1MgorOjEwMDZFMDAwMDZDMjBFMDAwRDAwMDAwMDM1ODA3RjAwODRCOTAwMDBCNgorOjEwMDZGMDAwODY3MTBFMDAyNTAwNDAwMDhEMDAwMDAwNDQwOTExMDBBNQorOjEwMDcwMDAwMDcwMDAwMDA4RDAxMDAwMDA0OTUxMDAwMDcwMDAwMDBBNAorOjEwMDcxMDAwNjQ5MTAwMDAyNDA0MDAwMDI0MDQwMDAwMjQwNDAwMDA2QworOjEwMDcyMDAwMDIwMTEwMDAwMjAwMjgwMDhEQzYwMjAwMjAwODAwMDAwRgorOjEwMDczMDAwMDZDMjBFMDA4RDAxMDAwMDJEMDQwMDAwOEQwMDAwMDA5NworOjEwMDc0MDAwMDQ5NTEwMDAwNzAwMDAwMDBEMDIwMDAwODQ5MTEwMDBDNQorOjEwMDc1MDAwMDcwMDAwMDAwREM3MDIwMDIwMDgwMDAwOEQwMDAwMDAwNworOjEwMDc2MDAwRkQzODAwMDA0MDgwMDEwMEZEM0IwMDAwMjAxMDAwMDAyQgorOjEwMDc3MDAwNjBBODAzMDAxNTA4MDAwMDg0MzEzMTAwODQyMTIxMDBBNQorOjEwMDc4MDAwMDcwMDAwMDA2MEIwMDMwMDYwQTAwMzAwNDA4MDAxMDA4QgorOjEwMDc5MDAwRkQyMjAwMDA5NTAwMDAwMDI0MDkwMTAwMjQwNDAwMDA0RgorOjEwMDdBMDAwMjQwNDAwMDA2NDEyMDAwMDAyMDExMDAwMjAwODAwMDA3MAorOjEwMDdCMDAwNjA5MDAzMDA0MDgwMDEwMDI0MTkwMDAwOERGQjAwMDBDMAorOjEwMDdDMDAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDBDMQorOjEwMDdEMDAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwMjQwNDAwMDBGOAorOjEwMDdFMDAwMjQwNDAwMDA3RDExMDAwMDQyODAwMTAwMEEwMDA4MDA3RQorOjEwMDdGMDAwMjQwQTAwMDAwMjA1MjgwMDAyMEMyODAwMEQ4MDA5MDBEMAorOjEwMDgwMDAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwMDcwMDIwMDBEOQorOjEwMDgxMDAwRkQyMjAwMDA0MjgwMDEwMDBBMDAwODAwOTUwMDAwMDA0RgorOjEwMDgyMDAwQzQwRDI4MDAyNDE5MDEwMDdEMTkwMDAwNDI4MDAxMDAzOAorOjEwMDgzMDAwRkQxMTAwMDA0QTgwMDkwMDBBMDAxMDAwQjUwMDAwMDAwOAorOjEwMDg0MDAwNDQzMTExMDAwNDhEMEEwMDA3MDAwMDAwNDQwQTA4MDAyQQorOjEwMDg1MDAwMDQ5NTEyMDAwNzAwMDAwMEZEMjMwMDAwMjAxMDAwMDA5NgorOjEwMDg2MDAwNDA4MDAzMDA0NDEyMTAwMDA3MDAwMDAwMjAwODAwMDAzMAorOjEwMDg3MDAwNjA5MDAzMDA0MDgwMDEwMEZEMDIwMDAwNDI4MDAxMDAwMgorOjEwMDg4MDAwMEEwMDA4MDAwNDA5MDAwMDg2RkExMDAwMDcwMDAwMDBCMgorOjEwMDg5MDAwRkQzQjAwMDAwMDAxMDAwMDEwMEEwMDAwN0E4MDBCMDAwMAorOjEwMDhBMDAwNEE4MDEzMDA4NDA5MDkwMDA3MDAwMDAwOTUwMDAwMDAzOQorOjEwMDhCMDAwMDQzRDAxMDA4NjgwMTEwMDBBMDAxMDAwMDIwMDEwMDBCMworOjEwMDhDMDAwODQwOTA5MDAwNzAwMDAwMDQyODAwMzAwNEE4MDExMDBFQgorOjEwMDhEMDAwMDQwRDA5MDAwNzAwMDAwMDBBMDAxMDAwODQwRDA5MDA0MworOjEwMDhFMDAwMDcwMDAwMDA3RDI1MDAwMDIwMDgwMDAwNDA4MDAxMDA3NgorOjEwMDhGMDAwMEQwMTAwMDAxMDA4MDAwMDNBMTQyODAwN0QxMjAwMDBDRAorOjEwMDkwMDAwNDI4MDAxMDAwQTAwMjAwMDdEMTkwMDAwNDI4MDAxMDBBMQorOjEwMDkxMDAwN0QxMTAwMDA0QTgwMzEwMDBBMDAxMDAwMjQzMTAwMDBERgorOjEwMDkyMDAwMEQyODAxMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDBFRQorOjEwMDkzMDAwNDI4MDAzMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDBGOQorOjEwMDk0MDAwMDIwMTMwMDAyNDMxMDAwMDI0MDQwMDAwMjQwNDAwMDBDRgorOjEwMDk1MDAwMjQxMjAwMDAwMjA1MjgwMDRDMUEwMDAwODYwMTEzMDAzMgorOjEwMDk2MDAwMDIwMDcwMDAyRDAwMDAwMDAwMDAwMzAwN0QzODAwMDAzMAorOjEwMDk3MDAwNDI4MDAxMDAwQTAwMTAwMDA2MkExMzAwMjQyMTAwMDAxMgorOjEwMDk4MDAwQUQwMDAwMDAwMjAwMTAwMDBEMDEwMDAwMjQwOTAwMDA2RAorOjEwMDk5MDAwMjQ2QjAwMDA4RDM2MDEwMDdEMzkwMDAwMjAwODAwMDAyNgorOjEwMDlBMDAwNDA4MDA1MDA0MjgwMDMwMDRBODQwOTAwMDYwNjAwMDBEQQorOjEwMDlCMDAwMEEwNDA4MDA2NDMyMDAwMDhEMDAwMDAwMjQwQTAwMDBEMAorOjEwMDlDMDAwMjAxMDAwMDA3RDIyMDAwMDQwODAwMTAwMEQzQzAxMDA0RAorOjEwMDlEMDAwMTAwODAwMDAzQTA0MDgwMDA2RDIyOTAwMDcwMDAwMDBCMQorOjEwMDlFMDAwMjAyODAwMDA3RDIwMDAwMDQwODAwMTAwN0QxMTAwMDBEMworOjEwMDlGMDAwNDI4MDAzMDA0QTgwMTMwMDBBODAzMzAwN0QzODAwMDBFMworOjEwMEEwMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODYzQTE2MDAyRQorOjEwMEExMDAwMDcwMDAwMDA4RDAwMDAwMDY0MDkwMzAwOEQ0NzAxMDBGRAorOjEwMEEyMDAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDA1RQorOjEwMEEzMDAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwMDIwMTM4MDA4MgorOjEwMEE0MDAwMjQwNDAwMDAyNDA0MDAwMDI0MTIwMDAwRkQwMjAwMDAyMQorOjEwMEE1MDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODZBMjE0MDA3OAorOjEwMEE2MDAwMDcwMDAwMDAwMjA1MjgwMDRDMUEwMDAwODYzOTE2MDAxNQorOjEwMEE3MDAwMDcwMDAwMDA2NDIxMDMwMDJDNjMwMDAwRkQzRDAwMDAxRQorOjEwMEE4MDAwNDI4MDAxMDAwQTAwMDgwMDk1MDAwMDAwMDQwOTA5MDBFNgorOjEwMEE5MDAwMDcwMDAwMDAyMDA4MDAwMDRDMUEwMDAwODY2MTE1MDBDNQorOjEwMEFBMDAwNDA4MDAxMDAwMDAwMDMwMDA2N0ExNTAwMjQyMTAwMDBBOAorOjEwMEFCMDAwMEQwMTAwMDAyNDA5MDAwMDI0NkIwMDAwOEQ1QjAxMDA4MworOjEwMEFDMDAwN0QzOTAwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDBCRQorOjEwMEFEMDAwNEE4NDA5MDAwNjA2MDAwMDBBMDQwODAwNjQzQTAwMDA3RgorOjEwMEFFMDAwOTUwMDAwMDAyNDEyMDAwMEZEMDIwMDAwNDI4MDAxMDA3OQorOjEwMEFGMDAwMEEwMDA4MDAwNDA5MDAwMDg2REExNTAwMDcwMDAwMDA1QgorOjEwMEIwMDAwOEQ2MjAxMDAxMDA4MDAwMDNBMDQwODAwMDZEMjI5MDA5NgorOjEwMEIxMDAwMDcwMDAwMDAwNkQyMTQwMDA3MDAwMDAwMjA3MDAwMDA0QgorOjEwMEIyMDAwMEEwMTA4MDAyQTAxMTAwMEZEMjAwMDAwNjA4ODAzMDA2RgorOjEwMEIzMDAwNjA5MDAzMDA0MDgwMDEwMDdEMjIwMDAwNDI4MDAxMDA5RgorOjEwMEI0MDAwRkQzRDAwMDAwQTAwMDgwMDRBODQzMTAwMDQwOTAwMDA0RAorOjEwMEI1MDAwODZEODE2MDA4QjAwMTgwMDhEMDAwMDAwMDQ5OTE4MDAzQworOjEwMEI2MDAwMkMzMTAwMDAwNkFBMTcwMDA3MDAwMDAwNEMzMjAwMDBEQworOjEwMEI3MDAwODYzMzE3MDAwNzAwMDAwMDA0MTkwMDAwODYzMDE3MDBCNAorOjEwMEI4MDAwMDcwMDAwMDA5NTAwMDAwMDQ0OTExOTAwMkMyMjAwMDA4RAorOjEwMEI5MDAwMjQzMTAwMDA2QzYzMDAwMDNEMEUwMDAwNzUxMzAwMDA1RQorOjEwMEJBMDAwRkQwQjAwMDA0MjAwMDEwMDRBODAwOTAwMEEwMDEwMDAwRAorOjEwMEJCMDAwRUM4QTAzMDBFQzkzMDMwMDRDMjIwMDAwODZBOTE3MDA4NgorOjEwMEJDMDAwMDcwMDAwMDA4RDAwMDAwMDA0OTkxODAwNkMyMjAwMDA0RQorOjEwMEJEMDAwMkMzMjAwMDAwQTA1MzAwMEFCMUQzMDAwODMyMDAwMDBERAorOjEwMEJFMDAwRkQxODAwMDA0MjgwMDEwMDBBMDAwODAwMjQ4OTAxMDA2RAorOjEwMEJGMDAwMDIwNTMwMDA4MzEwMDAwMDc1MTgwMDAwNDIwMDAxMDA1QgorOjEwMEMwMDAwMEEwMDEwMDA4RDAwMDAwMDI0MDkwMTAwNzUxMzAwMDA4NworOjEwMEMxMDAwNDIwNTMzMDBDQjBDMzMwMENCMkMzMzAwQ0IzNDMzMDBGNAorOjEwMEMyMDAwQ0IzQzMzMDBDQjQ0MzMwMENCNEMzMzAwQ0I1NDMzMDBBQworOjEwMEMzMDAwOEI1QzMwMDA4MzYwMDAwMEY1MDIwMDAwNDIwMDAxMDA4MAorOjEwMEM0MDAwMEEwMDA4MDAwNDA5MDAwMDg2N0ExODAwMDcwMDAwMDA2NgorOjEwMEM1MDAwMkQxRTAwMDBGRDA1MDAwMDQyODAwMTAwMEEwMDA4MDA3MgorOjEwMEM2MDAwMjQ4OTAyMDAwMjA1MjgwMDBEMDYwMDAwMTAwODAwMDA3QgorOjEwMEM3MDAwM0EwQzI4MDA4RDAwMDAwMDEwMDgwMDAwM0ExNDI4MDBFQgorOjEwMEM4MDAwOEQ4MDBBMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDBFRAorOjEwMEM5MDAwMDcwMDIyMDA3NTEyMDAwMDQyMDAwMzAwNEEwMDIxMDBGNAorOjEwMENBMDAwOEQwMDAwMDA0NDA5MUEwMDA3MDAwMDAwMEQ5ODAxMDBBMworOjEwMENCMDAwMTAwODAwMDAzQTA0MDgwMDA2MjIyQjAwMDcwMDAwMDA3QworOjEwMENDMDAwRjUwMTAwMDA0MjAwMDMwMDRBMDAwRDAwMEEwMDEwMDA3OAorOjEwMENEMDAwNDQ5MTA4MDAwNzAwMDAwMDIwMDgwMDAwNDAwMDAxMDBDNworOjEwMENFMDAwRjUyNTAwMDA0NDMxMEEwMDA3MDAwMDAwMjAwODAwMDAzQworOjEwMENGMDAwNjAyODAzMDA0MDAwMDMwMDdEMjEwMDAwNDI4MDAzMDBDMworOjEwMEQwMDAwNEE4MDBCMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDA1OQorOjEwMEQxMDAwNDAwMDAzMDA4RDAwMDAwMDI0MDEwMDAwMkMwMTAwMDBCMQorOjEwMEQyMDAwNjQwRTAwMDA2NDFBMDAwMDZDNjMwMDAwMEEwMTA4MDBGMQorOjEwMEQzMDAwMkEwMTEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDA5QQorOjEwMEQ0MDAwRkQyMDAwMDA0MjgwMDEwMDBBMDAwODAwN0QyMjAwMDAxMgorOjEwMEQ1MDAwNDI4MDAxMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDAxQgorOjEwMEQ2MDAwNDAwMDAzMDA3RDE5MDAwMDQyODAwMTAwMEEwMDA4MDBENQorOjEwMEQ3MDAwRkQyMjAwMDA0MjgwMDMwMDBBMDAxMDAwMjAwODAwMDA0RAorOjEwMEQ4MDAwNjAxMDAzMDA0MDAwMDMwMDA0MEQwOTAwMDcwMDAwMDA4QworOjEwMEQ5MDAwMjAwODAwMDA0MDAwMDMwMDQyODAwMzAwNEE4MDBCMDA0RQorOjEwMERBMDAwMEEwMDEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDA0QgorOjEwMERCMDAwNDI4MDAzMDA0QTgwMTMwMDRBODAxOTAwMDQwRDExMDA4QworOjEwMERDMDAwMDQ4RDE5MDAwNzAwMDAwMDBBMDAwODAwMjAxMDAwMDAzMAorOjEwMEREMDAwNjAxODAzMDA2MDA4MDMwMDQwMDAwMzAwOEQwMDAwMDA1RAorOjEwMERFMDAwNDQwOTBCMDAwNzAwMDAwMDIwMDgwMDAwNDAwMDAxMDAzQgorOjEwMERGMDAwRjUwNTAwMDA0MjAwMDMwMDBBMDAwODAwMjAwODAwMDA3QQorOjEwMEUwMDAwNDAwMDAxMDBGNTAwMDAwMDQyMDAwMTAwMEEwMDA4MDA1NworOjEwMEUxMDAwMDQwOTAwMDA4NjYwMUMwMDc1MUUwMDAwNDIwMDAzMDBFQgorOjEwMEUyMDAwNEEwNDAxMDAwQTBDMDAwMDA2NzIxQzAwMDcwMDAwMDBDMgorOjEwMEUzMDAwMDIwNDAwMDAwMjBDMDAwMDdEMTcwMDAwRjUxQTAwMDBGQgorOjEwMEU0MDAwNDI4MDAxMDA0QTE0MDMwMDRBMUMwMzAwNEEyNDAzMDBBNAorOjEwMEU1MDAwNEEyQzAzMDA0QTM0MDMwMDRBM0MwMzAwNEE0NDAzMDA3RQorOjEwMEU2MDAwMEE0QzAwMDAzRDA0MDAwMEY1MTMwMDAwRkQxQTAwMDBDQworOjEwMEU3MDAwNDIwMDAzMDA0QTAwMEIwMDRBODAxQjAwNEE4MDEzMDAxNgorOjEwMEU4MDAwMEEwMDIwMDA0NDkxMDgwMDQ0QTExOTAwRTQ4OTAzMDBFRAorOjEwMEU5MDAwRUM5OTAzMDAwMjU1MDAwMDBBNUQwMDAwNDIwMDAzMDBDNworOjEwMEVBMDAwNEEwMDBCMDA0QTgwMUIwMDRBODAxMzAwMEEwMDIwMDAwMQorOjEwMEVCMDAwNDQ5MTA4MDA0NEExMTkwMEU0ODkwMzAwRUM5OTAzMDA1RgorOjEwMEVDMDAwMDI2NTAwMDAwQTZEMDAwMDQyMDAwMzAwNEEwMDBCMDBBQQorOjEwMEVEMDAwNEEwMDE5MDA0QTgwMkIwMDRBODAxMzAwNEE4MDIxMDBGMgorOjEwMEVFMDAwMEEwMDMwMDA0NDkxMDgwMDQ0QTExOTAwNDRCMTJBMDBDRQorOjEwMEVGMDAwRTQ4OTAzMDBFQzk5MDMwMDAyNzUwMDAwMEE3RDAwMDBGQworOjEwMEYwMDAwRTRBOTAzMDAwMjA3MDAwMDdEMTAwMDAwMTUwNDAwMDBBMgorOjEwMEYxMDAwNDI4MDAxMDAwQTAwMDgwMEU0MDkwMTAwMDIwRjAwMDBGRAorOjEwMEYyMDAwRjUyQTAwMDBGRDE5MDAwMDQyMDAwMTAwNEE4MDA5MDA3NgorOjEwMEYzMDAwMEEwMDEwMDAzNDA5MDAwMDc0MTYwMDAwRjUyOTAwMDBCMgorOjEwMEY0MDAwNDIwMDAxMDAwQTAwMTAwMDdDOTEwMDAwNzUyMDAwMDBBMgorOjEwMEY1MDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwODZEMjFFMDBCOQorOjEwMEY2MDAwRjUyNjAwMDBGNTI3MDAwMDQyMDAwMzAwNEEwMDA5MDBCMgorOjEwMEY3MDAwMEEwMDEwMDAzQzBBMDAwMDdDMTYwMDAwNzUxQTAwMDBGMAorOjEwMEY4MDAwRkQwQjAwMDA0MjAwMDEwMDRBODA1MTAwMEEwMDQ4MDBBOQorOjEwMEY5MDAwMDcwMDE2MDA3NTEwMDAwMDQyMDAwMTAwMEEyQzI4MDAwRQorOjEwMEZBMDAwMTIxRDI4MDAxMjI1MjgwMDMyMUYwMDAwMDcwMDFFMDAxNQorOjEwMEZCMDAwMDcwMDBFMDA3NTE5MDAwMDQyMDAwMTAwRjUyRDAwMDAyOQorOjEwMEZDMDAwNEEwMDBEMDAwQTAwMTAwMDQ0OTEwMDAwODZCMjFGMDA4NAorOjEwMEZEMDAwNDIwMDAxMDAwQTM0MjgwMDVEMEUwMDAwOEQwMDAwMDA3MAorOjEwMEZFMDAwNzUwMzAwMDAyMDA4MDAwMDQwMDAwMTAwRjREMjA1MDA1NQorOjEwMEZGMDAwMDREMTU0MDA1QzczMDAwMDg2NTMyMDAwMDcwMDAwMDBGOQorOjEwMTAwMDAwMDcwMDBDMDAwNzAwMDgwMDA3MDAwQTAwMEQwNDAyMDA5QQorOjEwMTAxMDAwMTAwODAwMDAzQTA0MDgwMDA2MjIzMzAwMDcwMDAwMDAxMAorOjEwMTAyMDAwMDY1QTIwMDAwNzAwMDAwMDA3MDAwODAwNzUyMjAwMDA5MworOjEwMTAzMDAwNDIwMDAxMDAwQTAwMjAwMDA0MjEwMDAwODYyMDIxMDA1NworOjEwMTA0MDAwMkQxRTAwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwOQorOjEwMTA1MDAwMDQwOTAwMDA4NjkyMjAwMDA3MDAwMDAwMTAyMDAwMDAxNAorOjEwMTA2MDAwM0EwNDMwMDA3RDA1MDAwMEMzODAwMTAwMEEwMDA4MDAzQQorOjEwMTA3MDAwMjQ4OTAyMDAwMjA1MjgwMDAyMEMyODAwMEQ4MTBBMDBDNAorOjEwMTA4MDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMDcwMDIyMDBENworOjEwMTA5MDAwRkQwNDAwMDA0MjgwMDEwMDBBMDA3MDAwMDAwMDAzMDAwRgorOjEwMTBBMDAwMjA3MDAwMDAwNkZBMDYwMDQwODAwMTAwMEQxODAyMDBDMgorOjEwMTBCMDAwMTAwODAwMDAzQTA0MDgwMDA2MjIyQjAwMDcwMDAwMDA3OAorOjEwMTBDMDAwRkQwMjAwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDAzRgorOjEwMTBEMDAwODY4QTIxMDAwNzAwMDAwMDA2RjIwMTAwMDcwMDAwMDBEOAorOjEwMTBFMDAwNzUwODAwMDBGRDA5MDAwMDBEMDEwMDAwMDYwQTIyMDAzRAorOjEwMTBGMDAwOTUwMjAwMDA3NTBCMDAwMDdEMDkwMDAwMEQwMDAwMDA0NgorOjEwMTEwMDAwMTUwNTAwMDA0MjAwMDEwMDBBMDAxODAwMDQxOTAwMDA0MworOjEwMTExMDAwODY3ODI4MDBGNTA2MDAwMDIwMTAwMDAwNDAwMDAxMDAzRAorOjEwMTEyMDAwRjUwNDAwMDAyMDA4MDAwMDQwMDAwMTAwNzUwNzAwMDBFMQorOjEwMTEzMDAwNDIwMDAxMDA0QTgwMDkwMDBBMDAxMDAwMjQxMTAwMDA0QQorOjEwMTE0MDAwMDQwOTAwMDA4NkJBMjIwMDE1MDgwMDAwMDIwMTA4MDAwOAorOjEwMTE1MDAwMDQxMjEwMDAwNkRBMjIwMDc1MDUwMDAwMDQxMjA4MDBDRgorOjEwMTE2MDAwMDcwMDAwMDAwMjAxMTAwMDc1MDUwMDAwMjUwNDAwMDBDMgorOjEwMTE3MDAwMjQxMTAyMDAwMjAxMTAwMDIwMDgwMDAwNjAxMDAzMDA4QQorOjEwMTE4MDAwNDAwMDAxMDAyNDE5MDAwMDg2NzgyODAwOEQwMDAwMDAyRQorOjEwMTE5MDAwNjQwNDAwMDAwNDlEMDAwMDg2ODgyNzAwMDIwMTE4MDBGNgorOjEwMTFBMDAwNzUwNTAwMDA0MjAwMDEwMDBBMDQyODAwOEQwMTAwMDBCRQorOjEwMTFCMDAwMjQwOTAwMDAwMjBEMjgwMDBEMDAwMDAwMjQwOTAwMDA5MQorOjEwMTFDMDAwMDIxNTI4MDAwRDAwMTAwMDIwMDgwMDAwRjUwMjAwMDBBNAorOjEwMTFEMDAwNDAwMDAxMDAwNzAwMjAwMDc1MTEwMDAwRkQwMjAwMDAyMgorOjEwMTFFMDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODZDMjIzMDBCMgorOjEwMTFGMDAwMDcwMDAwMDAwMDAxMDAwMDIwMEIwODAwNjAwQjEzMDAzNgorOjEwMTIwMDAwNjAwQjFCMDA2MDBBMDMwMDQwMDAwMTAwNDIwMDA1MDA2MworOjEwMTIxMDAwNEEwMDNEMDA0QTAwMzUwMDRBMDAyRDAwMEEwMDIwMDAyNworOjEwMTIyMDAwRjUwNjAwMDA0MjAwMDEwMDBBMTQyODAwRjUwNDAwMDA0MQorOjEwMTIzMDAwNDIwMDAxMDAwQTAwMDgwMDE1MDMwMDAwMDQwRDAxMDAyRgorOjEwMTI0MDAwODZDQTI0MDAxNTQwMDAwMDk1MDAwMDAwMDQwRDAxMDAyRQorOjEwMTI1MDAwODZCODI0MDAyMjAwMTAwMDJBMDAxMDAwMDZFMjI0MDBCNAorOjEwMTI2MDAwMDcwMDAwMDAwNDMxMzMwMDA0QTkyQTAwMDcwMDAwMDAzMQorOjEwMTI3MDAwMjQyMTAzMDAwMjA1MjgwMDI0MTEwMDAwMjQwNDAwMDA5QQorOjEwMTI4MDAwMjQwNDAwMDAyNDMyMDAwMDJDMjkwMDAwNkM2MzAwMDBCQworOjEwMTI5MDAwODZGMzI1MDAwNzAwMDAwMDY0QjEwMjAwNjQwNDAwMDAyQQorOjEwMTJBMDAwNjQwNDAwMDA4RDAwMDAwMDY0MEEwMDAwMDIwRDI4MDBBNAorOjEwMTJCMDAwOEQwMDEwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAzMQorOjEwMTJDMDAwMDcwMDIyMDA4RDAwMDAwMDA0QjkzODAwMDcwMDAwMDA2QworOjEwMTJEMDAwNkMyOTAzMDAwQTAxMzAwMEY1MDIwMDAwNDIwMDAxMDAwMQorOjEwMTJFMDAwMEEwMDA4MDAwNDA5MDAwMDg2QkEyNTAwMDcwMDAwMDA3MworOjEwMTJGMDAwMkMzMTAyMDAwQTA1MjgwMDhEMDAwMDAwNkMwOTAxMDA1NQorOjEwMTMwMDAwMEEwRDI4MDAwRDAxMTAwMDIwMDgwMDAwRjUwMjAwMDA2MQorOjEwMTMxMDAwNDAwMDAxMDAwNzAwMjIwMDI0MTEwMDAwMjQwNDAwMDAwNgorOjEwMTMyMDAwMjQwNDAwMDAyNDMyMDAwMDAyMDEzMDAwNDQyOTAzMDA5QworOjEwMTMzMDAwODY3QTI2MDAwNzAwMDAwMDAyMDAzMDAwRjUwNDAwMDA1NQorOjEwMTM0MDAwNDIwMDAxMDAwQTAwMDgwMDE1MDMwMDAwMDQwRDAxMDAxRQorOjEwMTM1MDAwODZDMDI2MDAyNDMxMDAwMDY0MDQwMDAwMDIwMTMwMDAzMQorOjEwMTM2MDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDAyNAorOjEwMTM3MDAwODZDQTI2MDAwNzAwMDAwMDI0MzEwMDAwMDIwNTMwMDA2NAorOjEwMTM4MDAwMjQzOTAwMDA4MzA1MzAwMDgzMDgwMDAwRjUwNTAwMDBDMworOjEwMTM5MDAwNDIwMDAxMDAwQTA0MjgwMDhEMDAwMDAwMjQ4MTAwMDBBMgorOjEwMTNBMDAwMDIwRDI4MDA4RDAwMDAwMDI0ODEwMDAwMDIxNTI4MDA5NQorOjEwMTNCMDAwOEQwMTEwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAyRgorOjEwMTNDMDAwMDcwMDIyMDAyNTEwMDAwMDc1MDUwMDAwNDIwMDAzMDAwMAorOjEwMTNEMDAwNEEwMDA5MDAwQTAwMTAwMDA0MDkwQTAwMDQxMTEyMDA2MgorOjEwMTNFMDAwMDcwMDAwMDAyMDEwMDAwMDYwMDgwNTAwNDAwMDA1MDAxNAorOjEwMTNGMDAwRkQwNjAwMDA0MjgwMDEwMDRBMDAwOTAwMEEwMDEwMDBCQQorOjEwMTQwMDAwQTUwMDAwMDAwNDA5MEEwMDA0MTExMjAwMDcwMDAwMDBGMgorOjEwMTQxMDAwMjAwODAwMDA2MDkwMDEwMDQwMDAwMTAwRjUwMjAwMDA3QgorOjEwMTQyMDAwNDIwMDAxMDAwQTAwMDgwMDA0MDkwMDAwODY0MjI4MDA2QQorOjEwMTQzMDAwMDcwMDAwMDAwNjBBMjMwMDA3MDAwMDAwMDYwNjAwMDA1RgorOjEwMTQ0MDAwMDcwMDAwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDA0OQorOjEwMTQ1MDAwMDQwOTAwMDA4NjkyMjgwMDA3MDAwMDAwMDAwMTAwMDAzNworOjEwMTQ2MDAwMjAwQjA4MDA2MDhCMTMwMDYwOEIxQjAwNjA4QjIzMDAzNworOjEwMTQ3MDAwNjA4QjJCMDA2MDhCMzMwMDYwOEIzQjAwNjA4QjQzMDBFNAorOjEwMTQ4MDAwNjA4QjRCMDA2MDhCNTMwMDYwOEI1QjAwNjA4QjYzMDA1NAorOjEwMTQ5MDAwNjA4QjZCMDA2MDhCNzMwMDYwOEI3QjAwNjA4RjAzMDA0MAorOjEwMTRBMDAwNjA4RjBCMDA2MDhGMTMwMDYwOEYxQjAwNjA4RjIzMDAyNAorOjEwMTRCMDAwNjA4RjJCMDA2MDhGMzMwMDYwOEYzQjAwNjA4RjQzMDA5NAorOjEwMTRDMDAwNjA4RjRCMDA2MDhGNTMwMDYwOEY1QjAwNjA4RjYzMDAwNAorOjEwMTREMDAwNjA4RjZCMDA2MDhGNzMwMDYwOEY3QjAwNjA4QTAzMDBGOQorOjEwMTRFMDAwMDYwNjAwMDA0MDgwMDEwMDhEMDAwMDAwNjQwQTAwMDAzNAorOjEwMTRGMDAwMDIwRDI4MDAyNDBBMDAwMDdEMDIwMDAwNDI4MDAxMDA0NQorOjEwMTUwMDAwMEEwMDEwMDAyNDEyMDAwMEZEMDMwMDAwNDI4MDAxMDBDOAorOjEwMTUxMDAwMEEwMDA4MDAwNDA5MDAwMDg2ODIyQTAwMDcwMDAwMDA3MworOjEwMTUyMDAwOEQwMTAwMDAyNDBBMDAwMDY0MDQwMDAwNjQwNDAwMDAyRgorOjEwMTUzMDAwMDIwMTA4MDAyNDA5MDAwMDI0MDQwMDAwMjQwNDAwMDAyMworOjEwMTU0MDAwMDIwMTEwMDAwRDAwMDIwMDQ0OTEwMDAwODZEOTJBMDAxQgorOjEwMTU1MDAwMDcwMDAwMDBGRDAxMDAwMDQyODAwMTAwMEEwMDA4MDBCMQorOjEwMTU2MDAwNDQwQTAwMDA4NkJCMkEwMDQyODAwMTAwMEQwMDBBMDBFOAorOjEwMTU3MDAwMjAwODAwMDBGRDAyMDAwMDQwODAwMTAwMDcwMDIwMDA1QworOjEwMTU4MDAwN0QwMjAwMDAyMDEwMDAwMDA2MDYwMDAwNDA4MDAxMDBERgorOjEwMTU5MDAwRjUwMjAwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDBGMgorOjEwMTVBMDAwODYyQTJCMDAwNzAwMDAwMDdEMDMwMDAwNDI4MDAxMDAxNgorOjEwMTVCMDAwMEEwMDA4MDAwNDA5MDAwMDg2NUEyQjAwMDcwMDAwMDBGQQorOjEwMTVDMDAwNzUwMDAwMDA3RDJFMDAwMDQyMDAwMTAwNEE4MDBCMDBFMworOjEwMTVEMDAwMjAwMDAwMDAwNDA5MDAwMDg2MDYwMDAwNDAwMDAxMDAxMQorOjEwMTVFMDAwNEE4NDMxMDA4QjA0MzAwMDgzMDgwMDAwOEQwMDAwMDAyNQorOjEwMTVGMDAwMTAwODAwMDAzQTE0MjgwMDhEMDAwMDAwMTAwODAwMDBCOAorOjEwMTYwMDAwM0EwQzI4MDA3NTA2MDAwMDQyMDAwMTAwMEEwMDA4MDA5QworOjEwMTYxMDAwMTUzODAwMDAyNDA5MDEwMDAyMDUyODAwMEQwMDBCMDAwOAorOjEwMTYyMDAwMjAwODAwMDBGNTAyMDAwMDQwMDAwMTAwMDYwNjAwMDA0RQorOjEwMTYzMDAwMDcwMDIyMDA2NDA0MDAwMDY0MDQwMDAwMDYwNjAwMDBBNQorOjEwMTY0MDAwMDcwMDAwMDAzNDAxMDAwMDhEN0YwMDAwM0MwOTAwMDAwRAorOjEwMTY1MDAwMTIxRDI4MDAxMjI1MjgwMDMyMUYwMDAwMDcwMDBFMDA2RQorOjEwMTY2MDAwMEQwMTAwMDA3RDAzMDAwMDIwMDgwMDAwNDA4MDAxMDAwMworOjEwMTY3MDAwRjREMjA1MDAwNzAwMDAwMDA3MDAwODAwN0QwMzAwMDAwOQorOjEwMTY4MDAwNDI4MDAxMDAwQTAwMDgwMDA0MDkwMDAwODYwMjJEMDBDMworOjEwMTY5MDAwMDcwMDAwMDAwNjA2MDAwMDA3MDAwMDAwMDcwMDAwMDAyOQorOjEwMTZBMDAwMTIwMDAwMDAwNzAwMTAwMDA3MDAzMjAwMDcwMDYwMDA3MQorOjEwMTZCMDAwODAwMDEwMDAxQTAwNDgwMDA0NDkwMDAwODY2MTJEMDBENworOjEwMTZDMDAwMDcwMDAwMDAxMDEyMDAwMDNBMDA1ODAwNDUwMTAwMDAxOQorOjEwMTZEMDAwMDQ1RDVDMDAwNzAwMDAwMDgwMDAwMDAwMUEwMDQ4MDA2NAorOjEwMTZFMDAwMDQ0OTAwMDA4NkIxMkQwMDA3MDAwMDAwMTAxMjAwMDAyMAorOjEwMTZGMDAwM0EwMDUwMDAwNDU5MDAwMDg2MDgyRTAwNDUwMDAwMDAwMgorOjEwMTcwMDAwQzUwMDAwMDBGNUZGN0YwMDdERkY3RjAwMjRENTA3MDBBNgorOjEwMTcxMDAwMjQ0MjAwMDAwMjAxNTAwMDAyMDUyMDAwODIwMDAwMDA2NworOjEwMTcyMDAwMUEwMDQwMDAwNDQxMDAwMDg2MzkyRTAwMDcwMDAwMDAyNgorOjEwMTczMDAwNjUzODAwMDAxQTAwNDAwMDIwNDAwMDAwNEQxMDAwMDBGNQorOjEwMTc0MDAwODRDMTA0MDA4NjFCMzAwMDQwMDAwMDAwMDcwMDA0MDAzNAorOjEwMTc1MDAwNjUwMTAwMDA0NTAxMDAwMDIwNDAwMDAwNDAwMDAwMDAzRAorOjEwMTc2MDAwNjUwNzAwMDA4MDAwMDgwMDFBMDA0MDAwMDQ0MTAwMDBFNgorOjEwMTc3MDAwODZDOTJFMDAwNzAwMDAwMDEwMTIwMDAwM0EwMDQwMDA0OQorOjEwMTc4MDAwMDQ0MTAwMDA4NjIyMkYwMDREMDAwMDAwQ0QwMDAwMDAyMworOjEwMTc5MDAwMTA0ODAwMDAzQTA0MjAwMDgyMDgwMDAwMUEwMDQwMDBBRgorOjEwMTdBMDAwMDQ0MTAwMDA4NjMxMkYwMDA3MDAwMDAwMjA0ODAwMDA5RgorOjEwMTdCMDAwMDQ1OTAwMDA4NjA4MzAwMDQwMDAwMDAwRTUwNzAwMDBFMgorOjEwMTdDMDAwODAwNDIwMDBBMDE2MjgwMEUwMTYzMjAwRTAxNjNBMDAzRgorOjEwMTdEMDAwRTAxNjQyMDA2MDEyMDIwMDQwMDAwMDAwMzIwMDAwMDBFQgorOjEwMTdFMDAwNzUwMDQwMDA3RDAwMDAwMDc0RDUwNzAwMTIwNTIwMDA0MAorOjEwMTdGMDAwODIwMDAwMDAxQTAwNDAwMDA0NDEwMDAwODZFMTJGMDAzMgorOjEwMTgwMDAwMDcwMDAwMDAwNjcyMDMwMDA3MDA2NDAwMDcwMDA2MDBERQorOjEwMTgxMDAwRTUwMDAwMDAyMDAwMDAwMDQwMDAwMDAwNjUwQTAwMDAxNAorOjEwMTgyMDAwMjAwMDAwMDA0MDAwMDIwMDQwMDAwMjAwNDAwMDAwMDBENAorOjEwMTgzMDAwNjUwMTAwMDA0MjAwMDAwMDBBMDA3MDAwMDQ3MTAwMDAxMQorOjEwMTg0MDAwODZBMjMwMDAwNzAwMDAwMDA2ODIwMTAwMDcwMDY0MDA0NQorOjEwMTg1MDAwMDAwMDA1MDAyMDcwMDAwMDQwMDAwMDAwMDY3MjAzMDAzOAorOjEwMTg2MDAwMDcwMDY0MDAwNzAwMDAwMDZEMzAwMDAwNjA4ODAyMDA3RgorOjEwMTg3MDAwNjA5MDAyMDAwQTAwMDgwMDYwODgwMjAwNDA4MDAwMDBCQQorOjEwMTg4MDAwMTIwMDEwMDAwRDEwMDAwMDg0OTEwMDAwODY0MTMxMDAwQworOjEwMTg5MDAwMEQwRTAwMDA4NDkxMDAwMDg2NTEzMjAwMDcwMDAwMDAwOAorOjEwMThBMDAwMDcwMDMwMDAyMDEwMDAwMDZEM0IwMDAwNDA4MDAwMDA2OQorOjEwMThCMDAwODAwMDAwMDAxQTAwMDgwMDA0MDkwMDAwODY2MTMxMDA2MQorOjEwMThDMDAwMDcwMDAwMDAyMDEyMDAwMEVEMEQwMDAwNDA4MDAwMDAyNQorOjEwMThEMDAwNDI4MDAwMDAwQTAwMTAwMDBEMDA0MDAwNDQ5NTEwMDBGNgorOjEwMThFMDAwMDcwMDAwMDAyMDEwMDAwMEVEMEQwMDAwNDA4MDAwMDAwNworOjEwMThGMDAwNDI4MDAwMDAwQTA0MjAwMDgyMDAwMDAwMUEwMDA4MDA1NAorOjEwMTkwMDAwMDQwOTAwMDA4NkYxMzEwMDA3MDAwMDAwNkQzQjAwMDA3MworOjEwMTkxMDAwNDI4MDAwMDAwQTAwMDgwMDE1MEUwMDAwODQwOTAxMDA0MgorOjEwMTkyMDAwODY5QjMyMDAwNzAwNjAwMDFBMDAwODAwMTUwQzAwMDBCQQorOjEwMTkzMDAwODQwOTAxMDA4NjgzMzIwMDIwMDAwMDAwMDcwMDFBMDA5RAorOjEwMTk0MDAwRUQwMjAwMDA0MDgwMDAwMDA3MDA2MjAwNkQzMDAwMDBFMgorOjEwMTk1MDAwNDI4MDAyMDA0QTgwMEEwMDIwMDgwMDAwNEE4MDBBMDBGMworOjEwMTk2MDAwMDYwNjAwMDA0QTgwMTAwMDA3MDAwMDAwMTIyNTI4MDAyQgorOjEwMTk3MDAwMzIxRjAwMDBGNEQyMDUwMDA0RDE1NDAwNUM3MzAwMDA1MworOjEwMTk4MDAwODYwNzAwMDAwNzAwMDAwMDA3MDAwQzAwMDcwMDBBMDA5RgorOjEwMTk5MDAwMDcwMDFDMDA2NTM0MDAwMDQwMDAwMjAwMjA0ODAwMDBFMQorOjEwMTlBMDAwNjA1MDAyMDAwQTAwNDAwMDYwNDAwMjAwNDAwMDAwMDA1OQorOjEwMTlCMDAwNDQ0OTQ1MDAwNzAwMDAwMDIwNDAwMDAwRTUzQTAwMDBDRgorOjEwMTlDMDAwNDAwMDAwMDBFNTI4MDAwMDQyMDAwMDAwMEEwMDQ4MDAzNgorOjEwMTlEMDAwMDQ0OTAwMDA4NjY4MzgwMDY1MkMwMDAwNDIwMDAwMDBDMQorOjEwMTlFMDAwMEEwMDQwMDBENTAwMDAwMDA0NDE0NTAwMDcwMDAwMDA0NworOjEwMTlGMDAwNTUwNjAwMDAwNDQ1MDUwMDg2RjIzNDAwRDUwMTAwMDBCQworOjEwMUEwMDAwMDQ0NTA1MDA4NkYwMzQwMDY1MkIwMDAwNDIwMDAwMDAwQworOjEwMUExMDAwRTUzQTAwMDA0QTAwNTAwMDBBMDA0MDAwRDRDMzQ1MDBFNworOjEwMUEyMDAwMDcwMDAwMDAwNDQ1NDUwMDA3MDAwMDAwQ0QwMDAwMDA0RAorOjEwMUEzMDAwNDQ0OTQ0MDAwNzAwMDAwMDA0NDU0NTAwMDcwMDAwMDAzOQorOjEwMUE0MDAwNEQwMTAwMDA0NDQ5NTUwMDA3MDAwMDAwNDQ1MTA0MDBDNgorOjEwMUE1MDAwODZFOTM0MDA2NTJDMDAwMDQyMDAwMDAwMEEwMDQ4MDBCRQorOjEwMUE2MDAwMDREMTRDMDAwNzAwMDAwMDQ0QzEwNDAwODZGMzM0MDA5OAorOjEwMUE3MDAwMDcwMDAwMDAwNzAwMTYwMEU1MkMwMDAwNDIwMDA0MDBFQgorOjEwMUE4MDAwMEEwMDQwMDAyMDQwMDAwMDQwMDAwMDAwNjUyOTAwMDBERQorOjEwMUE5MDAwNDIwMDAwMDAwQTAwNDAwMDA0NDEwMDAwODY2MDM1MDA1QQorOjEwMUFBMDAwMDcwMDAwMDAwMjI0MDAwMDA2QTIzNjAwMDI1QzAwMDBDRAorOjEwMUFCMDAwRTUyNTAwMDA0MjAwMDAwMDBBMDA0MDAwNzQ0MjAwMDBEQQorOjEwMUFDMDAwRTUyQTAwMDA0MjAwMDAwMDBBMDA0MDAwNzQ0MjAwMDBDNQorOjEwMUFEMDAwMTIwMTUwMDBFNTI5MDAwMDQyMDAwMDAwMEEwMDQwMDAwOQorOjEwMUFFMDAwMzQ0MjAwMDAwNDQxNDUwMDA3MDAwMDAwMjA0MDAwMDA4RgorOjEwMUFGMDAwNDAwMDAwMDBFNTNFMDAwMDIwMDAwMDAwNDAwMDAwMDAyMworOjEwMUIwMDAwRTUyRDAwMDA1MjAxNDAwMDBBMDA1MDAwNDQ1MTA0MDAzRAorOjEwMUIxMDAwODY0QTM2MDBDNTAwMDAwMEU1M0UwMDAwMjA0MDAwMDA3NworOjEwMUIyMDAwNDAwMDAwMDBFNTJCMDAwMDQyMDAwMDAwMEEwMDQwMDBEOQorOjEwMUIzMDAwNTQ0MjQwMDAwNzAwMDAwMEU1MkEwMDAwMjA0MDAwMDA1OQorOjEwMUI0MDAwNDAwMDAwMDAzMjAxNTAwMDM0MDEwNDAwNzQ1NjAwMDBDRgorOjEwMUI1MDAwRTUyOTAwMDA0MjAwMDIwMDBBMDA0MjAwNDIwMDAwMDBBNQorOjEwMUI2MDAwMEEwMDUwMDA3QzQxMDUwMEU1MjgwMDAwNDIwMDAwMDAwQQorOjEwMUI3MDAwMEEwMDQ4MDBDNTAwMDAwMDQ0QzE0QzAwODYxMDM3MDAzMAorOjEwMUI4MDAwRTUyNjAwMDBFNTI3MDAwMDQyMDAwMjAwNEEwMDQwMDA3MAorOjEwMUI5MDAwMEEwMDUwMDAzQzQyMDAwMDdDNTYwMDAwRTUyODAwMDA4RQorOjEwMUJBMDAwMjA0ODAwMDA0MDAwMDAwMDEyMUQyODAwMTIyNTI4MDBENworOjEwMUJCMDAwNzIxRjAwMDA2NTI5MDAwMDQyMDAwMDAwMEEwMDQwMDA3QQorOjEwMUJDMDAwMDQ0MTAwMDA4NkFBMzcwMDA3MDAwRTAwMDcwMDE2MDAzNworOjEwMUJEMDAwMDcwMDFFMDBFNTNFMDAwMDQyMDAwMDAwMEEwMDQwMDAzMQorOjEwMUJFMDAwMDQ0MTAwMDA4NkU4MzcwMDY1MkQwMDAwNDIwMDAwMDAzNworOjEwMUJGMDAwMEEzNDI4MDA2NTM0MDAwMDQyMDAwMjAwNEEwMDQyMDAxNgorOjEwMUMwMDAwMjA0MDAwMDA0QTAwNEEwMDRBMDA1MDAwRjREMjA1MDA3QgorOjEwMUMxMDAwMDREMTU0MDA1QzczMDAwMDg2NTEzODAwMDcwMDAwMDBCNgorOjEwMUMyMDAwMDYwNjAwMDAwNzAwMDgwMDA3MDAwQzAwMDcwMDA4MDA3NworOjEwMUMzMDAwMDcwMDBBMDBFNTAxMDAwMDQ1MDAwMjAwMjA0MDAwMDAwNgorOjEwMUM0MDAwNjAwMDAwMDA2NTAzMDAwMDQwMDAwMDAwNjUyRTAwMDBGOQorOjEwMUM1MDAwMjAxQTAwMDA2MDFBMEEwMDQwMDAwMDAwNjUzNDAwMDBFRAorOjEwMUM2MDAwNDIwMDAyMDA0QTAwNDIwMDIwNDAwMDAwNEEwMDRBMDBCMAorOjEwMUM3MDAwMDYwNjAwMDA0QTAwNTAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMUM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwMUM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwMUNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwMUNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMUNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMUNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMUNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMUNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwMUQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMUQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMUQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwMUQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwMUQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwMUQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwMUQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwMUQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwMUQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwMURBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwMURCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwMURDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwMUREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwMURFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwMURGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwMUUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwMUUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwMUUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwMUU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwMUU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwMUU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwMUU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwMUU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwMUU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwMUVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwMUVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwMUVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwMUVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwMUVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwMUVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjEwMUYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwMUYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwMUYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwMUY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMUY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMUY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMUY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMUY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMUY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMUZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMUZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMUZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMUZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMUZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMUZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMAorOjEwMjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMAorOjEwMjAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMjAzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMjA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMjA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjEwMjA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MAorOjEwMjA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MAorOjEwMjA4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MAorOjEwMjA5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MAorOjEwMjBBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMAorOjEwMjBCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMAorOjEwMjBDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMAorOjEwMjBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorOjEwMjBFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMAorOjEwMjBGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMAorOjEwMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRgorOjEwMjExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRgorOjEwMjEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRgorOjEwMjEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RgorOjEwMjE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RgorOjEwMjE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RgorOjEwMjE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RgorOjEwMjE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RgorOjEwMjE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RgorOjEwMjE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRgorOjEwMjFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRgorOjEwMjFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRgorOjEwMjFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRgorOjEwMjFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRgorOjEwMjFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRgorOjEwMjFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERgorOjEwMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRQorOjEwMjIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRQorOjEwMjIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRQorOjEwMjIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RQorOjEwMjI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RQorOjEwMjI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RQorOjEwMjI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RQorOjEwMjI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RQorOjEwMjI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RQorOjEwMjI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRQorOjEwMjJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRQorOjEwMjJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRQorOjEwMjJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRQorOjEwMjJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRQorOjEwMjJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRQorOjEwMjJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERQorOjEwMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDRAorOjEwMjMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCRAorOjEwMjMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBRAorOjEwMjMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5RAorOjEwMjM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4RAorOjEwMjM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3RAorOjEwMjM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2RAorOjEwMjM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1RAorOjEwMjM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0RAorOjEwMjM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzRAorOjEwMjNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyRAorOjEwMjNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxRAorOjEwMjNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRAorOjEwMjNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGRAorOjEwMjNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFRAorOjEwMjNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBERAorOjEwMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQworOjEwMjQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQworOjEwMjQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQworOjEwMjQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QworOjEwMjQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QworOjEwMjQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QworOjEwMjQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QworOjEwMjQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QworOjEwMjQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QworOjEwMjQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQworOjEwMjRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQworOjEwMjRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQworOjEwMjRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQworOjEwMjREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQworOjEwMjRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQworOjEwMjRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQworOjEwMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQgorOjEwMjUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQgorOjEwMjUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQgorOjEwMjUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QgorOjEwMjU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QgorOjEwMjU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QgorOjEwMjU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QgorOjEwMjU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QgorOjEwMjU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QgorOjEwMjU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQgorOjEwMjVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQgorOjEwMjVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQgorOjEwMjVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQgorOjEwMjVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQgorOjEwMjVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQgorOjEwMjVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQgorOjEwMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDQQorOjEwMjYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCQQorOjEwMjYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBQQorOjEwMjYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5QQorOjEwMjY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4QQorOjEwMjY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3QQorOjEwMjY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2QQorOjEwMjY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1QQorOjEwMjY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0QQorOjEwMjY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzQQorOjEwMjZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyQQorOjEwMjZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxQQorOjEwMjZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwQQorOjEwMjZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGQQorOjEwMjZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFQQorOjEwMjZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEQQorOjEwMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOQorOjEwMjcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOQorOjEwMjcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOQorOjEwMjczMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OQorOjEwMjc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OQorOjEwMjc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OQorOjEwMjc2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OQorOjEwMjc3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OQorOjEwMjc4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OQorOjEwMjc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOQorOjEwMjdBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOQorOjEwMjdCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOQorOjEwMjdDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOQorOjEwMjdEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOQorOjEwMjdFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOQorOjEwMjdGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOQorOjEwMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDOAorOjEwMjgxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCOAorOjEwMjgyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBOAorOjEwMjgzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5OAorOjEwMjg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4OAorOjEwMjg1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3OAorOjEwMjg2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2OAorOjEwMjg3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1OAorOjEwMjg4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0OAorOjEwMjg5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzOAorOjEwMjhBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyOAorOjEwMjhCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxOAorOjEwMjhDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOAorOjEwMjhEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGOAorOjEwMjhFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFOAorOjEwMjhGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEOAorOjEwMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNworOjEwMjkxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNworOjEwMjkyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNworOjEwMjkzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NworOjEwMjk0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NworOjEwMjk1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NworOjEwMjk2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NworOjEwMjk3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NworOjEwMjk4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NworOjEwMjk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNworOjEwMjlBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNworOjEwMjlCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNworOjEwMjlDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNworOjEwMjlEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNworOjEwMjlFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNworOjEwMjlGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENworOjEwMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNgorOjEwMkExMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNgorOjEwMkEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNgorOjEwMkEzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NgorOjEwMkE0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NgorOjEwMkE1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NgorOjEwMkE2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NgorOjEwMkE3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NgorOjEwMkE4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NgorOjEwMkE5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNgorOjEwMkFBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNgorOjEwMkFCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNgorOjEwMkFDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNgorOjEwMkFEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNgorOjEwMkFFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNgorOjEwMkFGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENgorOjEwMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNQorOjEwMkIxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNQorOjEwMkIyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNQorOjEwMkIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NQorOjEwMkI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NQorOjEwMkI1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NQorOjEwMkI2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NQorOjEwMkI3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NQorOjEwMkI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NQorOjEwMkI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNQorOjEwMkJBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNQorOjEwMkJCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNQorOjEwMkJDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNQorOjEwMkJEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNQorOjEwMkJFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNQorOjEwMkJGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENQorOjEwMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDNAorOjEwMkMxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCNAorOjEwMkMyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBNAorOjEwMkMzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5NAorOjEwMkM0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4NAorOjEwMkM1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3NAorOjEwMkM2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2NAorOjEwMkM3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NAorOjEwMkM4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NAorOjEwMkM5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNAorOjEwMkNBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNAorOjEwMkNCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNAorOjEwMkNDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNAorOjEwMkNEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGNAorOjEwMkNFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFNAorOjEwMkNGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBENAorOjEwMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMworOjEwMkQxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMworOjEwMkQyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMworOjEwMkQzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MworOjEwMkQ0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MworOjEwMkQ1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MworOjEwMkQ2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MworOjEwMkQ3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MworOjEwMkQ4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MworOjEwMkQ5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMworOjEwMkRBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMworOjEwMkRCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMworOjEwMkRDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMworOjEwMkREMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMworOjEwMkRFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMworOjEwMkRGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMworOjEwMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMgorOjEwMkUxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMgorOjEwMkUyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMgorOjEwMkUzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MgorOjEwMkU0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MgorOjEwMkU1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MgorOjEwMkU2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MgorOjEwMkU3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MgorOjEwMkU4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MgorOjEwMkU5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMgorOjEwMkVBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMgorOjEwMkVCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMgorOjEwMkVDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMgorOjEwMkVEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMgorOjEwMkVFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMgorOjEwMkVGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMgorOjEwMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDMQorOjEwMkYxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMQorOjEwMkYyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMQorOjEwMkYzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MQorOjEwMkY0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MQorOjEwMkY1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MQorOjEwMkY2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2MQorOjEwMkY3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MQorOjEwMkY4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MQorOjEwMkY5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMQorOjEwMkZBMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMQorOjEwMkZCMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMQorOjEwMkZDMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMQorOjEwMkZEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGMQorOjEwMkZFMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFMQorOjEwMkZGMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBEMQorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3lhbWFoYS9kczFfZHNwLmZ3LmloZXggYi9maXJtd2FyZS95YW1haGEvZHMxX2RzcC5mdy5paGV4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjYjBiYTQKLS0tIC9kZXYvbnVsbAorKysgYi9maXJtd2FyZS95YW1haGEvZHMxX2RzcC5mdy5paGV4CkBAIC0wLDAgKzEsOSBAQAorOjEwMDAwMDAwODEwMDAwMDBBNDAxMDAwMDBBMDAwMDAwMkYwMDAwMDA5MQorOjEwMDAxMDAwNTMwMjA4MDAxNzAzODAwMTdCNDAwMDAwM0Y4NDAwMDA2QQorOjEwMDAyMDAwM0M0ODAxMDAzQzk0MDEwMDNDRDgwNTAwM0MxQzAwMDAwOQorOjEwMDAzMDAwN0JDMDAwMDAzRjBDMDUwMDNDNTAyMTAxMDAwMDAwMDA4NworOjEwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCMAorOjEwMDA1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBMAorOjEwMDA2MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MAorOjEwMDA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MAorOjAwMDAwMDAxRkYKZGlmZiAtLWdpdCBhL2Zpcm13YXJlL3lhbWFoYS9kczFlX2N0cmwuZncuaWhleCBiL2Zpcm13YXJlL3lhbWFoYS9kczFlX2N0cmwuZncuaWhleApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTdmNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvZmlybXdhcmUveWFtYWhhL2RzMWVfY3RybC5mdy5paGV4CkBAIC0wLDAgKzEsNzY5IEBACis6MTAwMDAwMDAwNzAwMDAwMDA3MDAyNDAwMDcwMDBDMDAwNzAwMUMwMDg4Cis6MTAwMDEwMDAwNzAwMDYwMDAyMDA3MDAwMjAwMDAwMDA0MDAwMDMwMEZFCis6MTAwMDIwMDAwNDcxMDAwMDg2NDIwMDAwNDAwMDAzMDAwRDBGMDAwMDM0Cis6MTAwMDMwMDAxMDA4MDAwMDNBMDQyMDAwODIwMjAwMDAwRDAyMDAwMEI3Cis6MTAwMDQwMDAxMDA4MDAwMDNBMDQyMDAwODIxMjAwMDA4MjBFMjAwMEY2Cis6MTAwMDUwMDAwRDgwMDAwMDEwMDgwMDAwM0EwNDIwMDA4MjFBMDAwMDAxCis6MTAwMDYwMDAwRDQ2MDMwMDEwMDgwMDAwM0EwNDEwMDAwREVDMDIwMEQ5Cis6MTAwMDcwMDAxMDA4MDAwMDNBMDQxODAwMEQwMTAwMDAxNTAwMDIwMEVECis6MTAwMDgwMDBGRDAwMDAwMDIwMDAwMDAwNjA4ODAzMDA2MDkwMDMwMDc1Cis6MTAwMDkwMDA2MDgwMDMwMDQwODAwMzAwNDA4MDAzMDA0MDgwMDMwMDM0Cis6MTAwMEEwMDA0MDgwMDEwMDdEMEEwMDAwNDA4MDAzMDA0MDgwMDMwMDgyCis6MTAwMEIwMDA0MDgwMDEwMDAyMDQyMDAwODIwODAwMDAxQTAwMDgwMEFECis6MTAwMEMwMDAwNDA5MDAwMDg2NzEwMTAwMDcwMDAwMDAwNzAwMjYwMEY3Cis6MTAwMEQwMDAwNzAwNDAwMDA3MDAwMDAwOEQyNTAzMDAxMDA4MDAwMDA1Cis6MTAwMEUwMDAzQTA0MTgwMDA3MDAyNjAwMDI0NDI4MDA3RDA4MDAwMDlBCis6MTAwMEYwMDA0MjgwMDEwMDBBMTYwMDAwMDZBMjA1MDAwNzAwMDAwMDY5Cis6MTAwMTAwMDAwNzAwNDQwMDBEMjMwMDAwMTAwODAwMDAzQTA0MDgwMDE2Cis6MTAwMTEwMDAwNkZBMjIwMDA3MDAwMDAwRkQwNzAwMDA0MjgwMDEwMEVGCis6MTAwMTIwMDAwQTAwMDgwMDA0MDkwMDAwODZBQjAyMDA5NTAxMDAwMEU3Cis6MTAwMTMwMDAwNDBEMDkwMDA3MDAwMDAwMjAwODAwMDBGNTAwMDAwMDgxCis6MTAwMTQwMDA3RDBCMDAwMDYwRjAwMTAwRkQwMDAwMDAwNjNBMDMwMDk2Cis6MTAwMTUwMDA0MDgwMDEwMDdEMEEwMDAwNDI4MDAzMDA0QTgwMTMwMEI1Cis6MTAwMTYwMDAwQTAwMTgwMDIwMTgwMDAwNjA5MDA1MDA2MDg4MDUwMDUzCis6MTAwMTcwMDA0MDgwMDEwMEZEMDAwMDAwNDI4MDAxMDAwQTAwNzAwMDg0Cis6MTAwMTgwMDAxNTAxMDAwMDQ0MTEwNzAwODYzQjAzMDAwMDAwMDMwMDM2Cis6MTAwMTkwMDAyMDcwMDAwMDA2NjIwMzAwNDA4MDAxMDAwRDM2MDAwMDYwCis6MTAwMUEwMDAxMDA4MDAwMDNBMDQwODAwMDYyMjIzMDAwNzAwMDAwMDlGCis6MTAwMUIwMDAwREVDMDIwMDEwMDgwMDAwM0EwNDE4MDAwNjlBMDEwMDM1Cis6MTAwMUMwMDAwNzAwMDAwMDA3MDAyNDAwOEQwRjAwMDAxMDA4MDAwMDQ5Cis6MTAwMUQwMDAzQTE2MDAwMDAyMjQwMDAwMDI1QzAwMDBGRDI4MDAwMDI2Cis6MTAwMUUwMDAyMDAwMDAwMDQwODAwMTAwMEQwMDA4MDAxNTA4MDAwMEZDCis6MTAwMUYwMDA4NDA5NTEwMDA3MDAwMDAwNEQwMDAwMDA1RDBFMDAwMDYyCis6MTAwMjAwMDAwMjBFMDAwMDBENDMwMDAwMTAwODAwMDAzQTA0MDgwMDMwCis6MTAwMjEwMDAwNjEyMkUwMDA3MDAwMDAwOEQwMDAwMDAyNDA5MDAwMEQ3Cis6MTAwMjIwMDAwMjBGMDAwMDBENDcwMDAwMTAwODAwMDAzQTA0MDgwMDBCCis6MTAwMjMwMDAwNjEyMkUwMDA3MDAwMDAwODAwNDQ4MDAxMDEyMDAwMDgzCis6MTAwMjQwMDAzQTA0MjgwMDhENzcwMDAwMTAwODAwMDAzQTBDMjgwMEJFCis6MTAwMjUwMDA4RDA2MDAwMDEwMDgwMDAwM0ExNDI4MDAwMjQ0MjgwMDBGCis6MTAwMjYwMDA4RDI1MDMwMDEwMDgwMDAwM0EwNDE4MDA4REZGMDcwMEQ4Cis6MTAwMjcwMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDAwNzAwMjYwMDY5Cis6MTAwMjgwMDAwNzAwMjAwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDczCis6MTAwMjkwMDAwNDA5MDAwMDg2MTIwNTAwMDcwMDAwMDAwNzAwMjQwMDgyCis6MTAwMkEwMDAwREVDMDIwMDEwMDgwMDAwM0EwNDE4MDA3RDM4MDAwMDMwCis6MTAwMkIwMDA0MjgwMDEwMDBBMDAwODAwMTUxMDAwMDA4NDA5MDEwMEI2Cis6MTAwMkMwMDA4NjlCMDEwMDA3MDAwMDAwMDZCMjAxMDAwNzAwMDAwMDQ1Cis6MTAwMkQwMDBGRDA4MDAwMDQyODAwMTAwMEEwMDE4MDAwNDE5MDAwMDE3Cis6MTAwMkUwMDA4NkI4MjIwMDA3MDAyODAwMTAxODAwMDAzQTA0MjgwMEYxCis6MTAwMkYwMDAwMjBDMjgwMDBEMDAwMDAwMTAwODAwMDAzQTE0MjgwMDJECis6MTAwMzAwMDA4RDgwMDgwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMEYwCis6MTAwMzEwMDAwNzAwMjAwMDBEMDIwMDAwMDQ5OTE4MDAwNzAwMDAwMEVCCis6MTAwMzIwMDAyRDQwMDAwMEJEMDAwMDAwRkQwMjAwMDA0MjgwMDEwMEUxCis6MTAwMzMwMDAwQTAwMDgwMDA0MDkwMDAwODY1QTA2MDAwNzAwMDAwMEIxCis6MTAwMzQwMDAwMDAxMDAwMDIwMEEwMDAwN0QwNDAwMDA0MDgwMDEwMDQwCis6MTAwMzUwMDA0MjgwMDEwMDBBMDAyMDAwMTUzMDAwMDA0NDIxMDEwMDA1Cis6MTAwMzYwMDA4NjYxMDMwMDA3MDAwMDAwMDQyMTAwMDA4NjYxMDMwMDhECis6MTAwMzcwMDAwNzAwMDAwMDhEMEYwMDAwMTAwODAwMDAzQTBDMjgwMDU0Cis6MTAwMzgwMDA0NDM5MDIwMDg2QzkwNzAwMDcwMDAwMDAxMDE4MDAwMDY5Cis6MTAwMzkwMDAzQTA0MjgwMDBEODEwODAwMjAwODAwMDBGRDAyMDAwMDNBCis6MTAwM0EwMDA0MDgwMDEwMDA3MDAyMDAwMTAyODAwMDAzQTAwNzgwMDdCCis6MTAwM0IwMDA4RDc4MDAwMDEwMDgwMDAwM0EwNDA4MDAwNjEyMkEwMDk4Cis6MTAwM0MwMDAwNzAwMDAwMDBENDAwMDAwMTUxMDAwMDAwNDk5MTgwMEZGCis6MTAwM0QwMDAwNDI5MjkwMDA0MzkzOTAwMDcwMDAwMDAwNjAyMDcwMDNCCis6MTAwM0UwMDAwNzAwMDAwMEY1MDQwMDAwN0QwMDAwMDAyMDAwMDAwMDcwCis6MTAwM0YwMDA4RDAwMDAwMDYwMDgwMTAwNDA4MDAxMDA3RDA0MDAwMEM1Cis6MTAwNDAwMDA0MjgwMDMwMDRBODAyMTAwMEEwMDE4MDA0NDE5MDIwMEJCCis6MTAwNDEwMDA4NjkwMjIwMDA3MDAwMDAwNzU0MDAwMDAwNEYxNzEwMDgyCis6MTAwNDIwMDAwNzAwMDAwMDQyMDAwMTAwMEEwMDI4MDAwNDI5MDAwMDIzCis6MTAwNDMwMDA4NjU4MjIwMDA3MDAwMDAwMEQzQzAwMDAwNEE5MzAwMDhGCis6MTAwNDQwMDAwNzAwMDAwMDdEMDcwMDAwNDI4MDAxMDAwQTAwMDgwMDRDCis6MTAwNDUwMDAwNDA5MDAwMDg2REEwODAwN0QwNTAwMDAyMDI4MDAwMDVECis6MTAwNDYwMDA2MEIwMDMwMDA2RjIwODAwNDA4MDAxMDAyMDMwMDAwMDY4Cis6MTAwNDcwMDA2MEE4MDMwMDQwODAwMTAwRkQwMjAwMDA0MjgwMDEwMEVFCis6MTAwNDgwMDAwQTAwMDgwMDA0MDkwMDAwODZGQTA4MDAwNzAwMDAwMEJFCis6MTAwNDkwMDA3RDA1MDAwMDQyODAwMTAwMEEwNDI4MDA4RDBFMDAwMDQ2Cis6MTAwNEEwMDAxMDA4MDAwMDNBMEMyODAwMEQwMDAwMDAxMDA4MDAwMEExCis6MTAwNEIwMDAzQTE0MjgwMDBEMDAwOTAwMjAwODAwMDBGRDAyMDAwMDg5Cis6MTAwNEMwMDA0MDgwMDEwMDA3MDAyMDAwRkQzRDAwMDAyMDAwMDAwMEVBCis6MTAwNEQwMDA0MDgwMDEwMDdEMTAwMDAwOEQ5RDAwMDAxMDA4MDAwMDhDCis6MTAwNEUwMDAzQTA0MDgwMDA2MTIyQTAwMDcwMDAwMDAxNTA4MDAwMDYwCis6MTAwNEYwMDAxQTAwMDgwMDg0MDkwMTAwODY1MTBBMDA3RDEzMDAwMERCCis6MTAwNTAwMDAwMDA1MjAwMDIwMEYyODAwNjA4RjMzMDA2MDhGM0IwMDIzCis6MTAwNTEwMDA2MDhGNDMwMDYwOEY0QjAwNjA4RjUzMDA2MDhGNUIwMEUzCis6MTAwNTIwMDA2MDhBMDMwMDQwODAwMTAwN0QxMDAwMDA0MjgwMDEwMENECis6MTAwNTMwMDAwQTAwMDgwMDE1MDIwMDAwODQwOTAxMDA4NjgxM0EwMEMzCis6MTAwNTQwMDAwNzAwMDAwMEJEN0YwMDAwQzQzRDM4MDAwNzAwMDAwMDI4Cis6MTAwNTUwMDA3RDFBMDAwMDc1MTMwMDAwNDI4MDAxMDA0QTAwMDkwMDY2Cis6MTAwNTYwMDAwQTAwMTAwMDA0OEQwQjAwMDQ5NTEzMDAwNzAwMDAwMDIyCis6MTAwNTcwMDAyMDA4MDAwMDYwOTAwMTAwMDQxMTAwMDA4NjU4MjIwMDRECis6MTAwNTgwMDA0MDAwMDEwMEZEMTcwMDAwNDI4MDAxMDAwQTAwMDgwMDQxCis6MTAwNTkwMDAwNDA5MDAwMDg2NUEyMjAwMDcwMDAwMDA3RDE5MDAwMEFGCis6MTAwNUEwMDA0MjgwMDMwMDRBODAwOTAwMEEwMDEwMDAyNDA5MDAwMDZDCis6MTAwNUIwMDA2NDE2MDAwMEZEMTEwMDAwNDI4MDAzMDA0QTgwMkIwMEY5Cis6MTAwNUMwMDA0QTgwMTkwMDhEMDAwMDAwNDQ4OTIxMDAwNzAwMDAwMEM2Cis6MTAwNUQwMDA0NDIyMDAwMDg2MTkwQzAwMDcwMDAwMDA2NDFBMDAwMDg1Cis6MTAwNUUwMDAyNDJBMDAwMDdEMTkwMDAwMDIwMTA4MDAyMjAxMTAwMEU5Cis6MTAwNUYwMDAyMDA4MDAwMDYwOTAwMzAwNDA4MDAxMDBGRDNEMDAwMEU1Cis6MTAwNjAwMDA4RDAwMDAwMDIwMDgwMDAwNDA4MDAxMDA3NTEzMDAwMEVDCis6MTAwNjEwMDA3RDFBMDAwMDQyMDAwMTAwNEE4MDA5MDAwQTAwMTAwMDEzCis6MTAwNjIwMDAxRDAyMDAwMEU0ODkwMTAwRTQ5MjI5MDA0NDkxMzAwMDk5Cis6MTAwNjMwMDAwNzAwMDAwMDBEMDYwMDAwMTUwQTAwMDAxRDBDMDAwMDU4Cis6MTAwNjQwMDAyNTEwMDAwMEU0QTkwMDAwRTQyQjAxMDA2NDA0MDAwMDcwCis6MTAwNjUwMDBFNEIzMDEwMEU0MzIwMjAwNjQwNDAwMDA2NDA0MDAwMDFBCis6MTAwNjYwMDA2NDA0MDAwMDY0MDQwMDAwMEQwNDAwMDBDNEIxMDgwMDJDCis6MTAwNjcwMDAwNzAwMDAwMDIwMDgwMDAwRjUwQjAwMDA0MDAwMDMwMDA4Cis6MTAwNjgwMDA3RDE5MDAwMDQyODAwMzAwNEE4MDA5MDAyNDBBMDAwMDBFCis6MTAwNjkwMDAwQTAwMDgwMDY0MEUwODAwMDcwMDAwMDAyMjAxMTAwMDk0Cis6MTAwNkEwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAxMDBBQzY0MDAwMDVFCis6MTAwNkIwMDA3RDAyMDAwMDIwMDAwMDAwNDA4MDAxMDA3RDEwMDAwMDRECis6MTAwNkMwMDA0MjgwMDEwMEZEMTEwMDAwNEE4MDNCMDA0QTgwMDkwMDgxCis6MTAwNkQwMDAwQTAwMjAwMDk1MDAwMDAwNDQxMTFBMDA0NEExMDAwMDA3Cis6MTAwNkUwMDA4NjU4MEUwMDBEMDQwMDAwODRCOTAwMDA4NjU5MEUwMEUzCis6MTAwNkYwMDBGRDE4MDAwMDQyODAwMTAwRkQxMDAwMDA0QTgwMDkwMDQyCis6MTAwNzAwMDAwQTAwMjgwMDk1MDAwMDAwMjQwOTAxMDA2NDJBMDAwMDY2Cis6MTAwNzEwMDA4NjQ5MEUwMDA3MDAwMDAwMDQyOTAwMDA4NjVBMEUwMERBCis6MTAwNzIwMDAwNzAwMDAwMDA2NjIwRTAwMDIwMDA4MDA4RDAwMDAwMEI1Cis6MTAwNzMwMDA3RDM4MDAwMDIwMDgwMDAwNDA4MDAxMDA3RDEyMDAwMDhDCis6MTAwNzQwMDA0MjgwMDEwMDBBMDAxMDAwMDQzOTAwMDA4NjA5MEYwMEYxCis6MTAwNzUwMDAwRDA4MDAwMEI1RkY3RjAwODRCOTAwMDA4NkQ5MEUwMEE3Cis6MTAwNzYwMDAyNTAwMDAwMDA2QjIwRjAwMkQwMDAwMDAxNTAwMDAwMDVCCis6MTAwNzcwMDAyRDA4MDAwMDBERTAwMjAwMjAwODAwMDAwNkZBMEYwMDFFCis6MTAwNzgwMDAwRDAwMDAwMDM1ODA3RjAwODRCOTAwMDA4NkE5MEYwMEFECis6MTAwNzkwMDAyNTAwNDAwMDhEMDAwMDAwNDQwOTExMDAwNzAwMDAwMDAyCis6MTAwN0EwMDA4RDAxMDAwMDA0OTUxMDAwMDcwMDAwMDA2NDkxMDAwMDE2Cis6MTAwN0IwMDAyNDA0MDAwMDI0MDQwMDAwMjQwNDAwMDAwMjAxMTAwMEFFCis6MTAwN0MwMDAwMjAwMjgwMDBEREYwMjAwMjAwODAwMDAwNkZBMEYwMERBCis6MTAwN0QwMDA4RDAxMDAwMDJEMDQwMDAwOEQwMDAwMDAwNDk1MTAwMDI0Cis6MTAwN0UwMDAwNzAwMDAwMDBEMDIwMDAwODQ5MTEwMDAwNzAwMDAwMEM3Cis6MTAwN0YwMDA4RERGMDIwMDIwMDgwMDAwOEQwMDAwMDBGRDM4MDAwMEExCis6MTAwODAwMDA0MDgwMDEwMEZEM0IwMDAwMjAxMDAwMDA2MEE4MDMwMEI0Cis6MTAwODEwMDAxNTA4MDAwMDg0MzEzMTAwODQyMTIxMDAwNzAwMDAwMDA4Cis6MTAwODIwMDA2MEIwMDMwMDYwQTAwMzAwNDA4MDAxMDBGRDIyMDAwMEQyCis6MTAwODMwMDA5NTAwMDAwMDI0MDkwMTAwMjQwNDAwMDAyNDA0MDAwMEE1Cis6MTAwODQwMDA2NDEyMDAwMDAyMDExMDAwMjAwODAwMDA2MDkwMDMwMDA0Cis6MTAwODUwMDA0MDgwMDEwMDI0MTkwMDAwMEQwRjAxMDA3RDM5MDAwMEM3Cis6MTAwODYwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDA0QTg0MDkwMEZGCis6MTAwODcwMDAwNjA2MDAwMDBBMDQwODAwMjQwNDAwMDAyNDA0MDAwMDA2Cis6MTAwODgwMDA3RDExMDAwMDQyODAwMTAwMEEwMDA4MDAyNDBBMDAwMEQ3Cis6MTAwODkwMDAwMjA1MjgwMDAyMEMyODAwMEQ4MDA5MDAyMDA4MDAwMDM1Cis6MTAwOEEwMDBGRDAyMDAwMDQwODAwMTAwMDcwMDIwMDBGRDIyMDAwMDQyCis6MTAwOEIwMDA0MjgwMDEwMDBBMDAwODAwOTUwMDAwMDBDNDBEMjgwMEQ1Cis6MTAwOEMwMDAyNDE5MDEwMDdEMTkwMDAwNDI4MDAxMDBGRDExMDAwMDgzCis6MTAwOEQwMDA0QTgwMDkwMDBBMDAxMDAwQjUwMDAwMDA0NDMxMTEwMEYwCis6MTAwOEUwMDAwNDhEMEEwMDA3MDAwMDAwNDQwQTA4MDAwNDk1MTIwMDY1Cis6MTAwOEYwMDAwNzAwMDAwMEZEMjMwMDAwMjAxMDAwMDA0MDgwMDMwMERFCis6MTAwOTAwMDA0NDEyMTAwMDA3MDAwMDAwMjAwODAwMDA2MDkwMDMwMDVGCis6MTAwOTEwMDA0MDgwMDEwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDQyCis6MTAwOTIwMDAwNDA5MDAwMDg2MzIxMjAwMDcwMDAwMDBGRDNCMDAwMEIxCis6MTAwOTMwMDAwMDAxMDAwMDEwMEEwMDAwN0E4MDBCMDA0QTgwMTMwMEJBCis6MTAwOTQwMDA4NDA5MDkwMDA3MDAwMDAwOTUwMDAwMDAwNDNEMDEwMDMzCis6MTAwOTUwMDA4NkI4MTIwMDBBMDAxMDAwMDIwMDEwMDA4NDA5MDkwMDg1Cis6MTAwOTYwMDAwNzAwMDAwMDQyODAwMzAwNEE4MDExMDAwNDBEMDkwMEM2Cis6MTAwOTcwMDAwNzAwMDAwMDBBMDAxMDAwODQwRDA5MDAwNzAwMDAwMEI1Cis6MTAwOTgwMDA3RDI1MDAwMDIwMDgwMDAwNDA4MDAxMDAwRDAxMDAwMENFCis6MTAwOTkwMDAxMDA4MDAwMDNBMTQyODAwN0QxMjAwMDA0MjgwMDEwMDc3Cis6MTAwOUEwMDAwQTAwMjAwMDdEMTkwMDAwNDI4MDAxMDA3RDExMDAwMDM2Cis6MTAwOUIwMDA0QTgwMzEwMDBBMDAxMDAwMjQzMTAwMDA4RDNCMDEwMDA0Cis6MTAwOUMwMDA3RDM5MDAwMDIwMDgwMDAwNDA4MDA1MDA0MjgwMDMwMEJGCis6MTAwOUQwMDA0QTg0MDkwMDA2MDYwMDAwMEEwNDA4MDAwMjAxMzAwMEVCCis6MTAwOUUwMDAyNDMxMDAwMDI0MDQwMDAwMjQwNDAwMDAyNDEyMDAwMDJDCis6MTAwOUYwMDAwMjA1MjgwMDRDMUEwMDAwODYzOTE0MDAwMjAwNzAwMDFECis6MTAwQTAwMDAyRDAwMDAwMDAwMDAwMzAwN0QzODAwMDA0MjgwMDEwMDNFCis6MTAwQTEwMDAwQTAwMTAwMDA2NjIxNDAwMjQyMTAwMDBBRDAwMDAwMDRFCis6MTAwQTIwMDAwMjAwMTAwMDBEMDEwMDAwMjQwOTAwMDAyNDZCMDAwMEVBCis6MTAwQTMwMDAwRDRBMDEwMDdEMzkwMDAwMjAwODAwMDA0MDgwMDUwMEJCCis6MTAwQTQwMDA0MjgwMDMwMDRBODQwOTAwMDYwNjAwMDAwQTA0MDgwMEU4Cis6MTAwQTUwMDA2NDMyMDAwMDhEMDAwMDAwMjQwQTAwMDAyMDEwMDAwMDE1Cis6MTAwQTYwMDA3RDIyMDAwMDQwODAwMTAwOEQ0RjAxMDAxMDA4MDAwMDMxCis6MTAwQTcwMDAzQTA0MDgwMDA2NUEyQjAwMDcwMDAwMDAyMDI4MDAwMDU2Cis6MTAwQTgwMDA3RDIwMDAwMDQwODAwMTAwN0QxMTAwMDA0MjgwMDMwMEI1Cis6MTAwQTkwMDA0QTgwMTMwMDBBODAzMzAwN0QzODAwMDA0MjgwMDEwMDQ0Cis6MTAwQUEwMDAwQTAwMDgwMDA0MDkwMDAwODY3MjE3MDAwNzAwMDAwMDExCis6MTAwQUIwMDA4RDAwMDAwMDY0MDkwMzAwMEQ1QjAxMDA3RDM5MDAwMDFBCis6MTAwQUMwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDA0QTg0MDkwMDlECis6MTAwQUQwMDAwNjA2MDAwMDBBMDQwODAwMDIwMTM4MDAyNDA0MDAwMDkxCis6MTAwQUUwMDAyNDA0MDAwMDI0MTIwMDAwRkQwMjAwMDA0MjgwMDEwMEU2Cis6MTAwQUYwMDAwQTAwMDgwMDA0MDkwMDAwODZEQTE1MDAwNzAwMDAwMDVCCis6MTAwQjAwMDAwMjA1MjgwMDRDMUEwMDAwODY3MTE3MDAwNzAwMDAwMDNCCis6MTAwQjEwMDA2NDIxMDMwMDJDNjMwMDAwRkQzRDAwMDA0MjgwMDEwMEMxCis6MTAwQjIwMDAwQTAwMDgwMDk1MDAwMDAwMDQwOTA5MDAwNzAwMDAwMDAxCis6MTAwQjMwMDAyMDA4MDAwMDRDMUEwMDAwODY5OTE2MDA0MDgwMDEwMDMxCis6MTAwQjQwMDAwMDAwMDMwMDA2QjIxNjAwMjQyMTAwMDAwRDAxMDAwMDgxCis6MTAwQjUwMDAyNDA5MDAwMDI0NkIwMDAwMEQ2RjAxMDA3RDM5MDAwMEE2Cis6MTAwQjYwMDAyMDA4MDAwMDQwODAwNTAwNDI4MDAzMDA0QTg0MDkwMEZDCis6MTAwQjcwMDAwNjA2MDAwMDBBMDQwODAwNjQzQTAwMDA5NTAwMDAwMDIwCis6MTAwQjgwMDAyNDEyMDAwMEZEMDIwMDAwNDI4MDAxMDAwQTAwMDgwMDVCCis6MTAwQjkwMDAwNDA5MDAwMDg2MTIxNzAwMDcwMDAwMDAwRDc2MDEwMDBFCis6MTAwQkEwMDAxMDA4MDAwMDNBMDQwODAwMDY1QTJCMDAwNzAwMDAwMDU1Cis6MTAwQkIwMDAwNjBBMTYwMDA3MDAwMDAwMjA3MDAwMDAwQTAxMDgwMDY1Cis6MTAwQkMwMDAyQTAxMTAwMEZEMjAwMDAwNjA4ODAzMDA2MDkwMDMwMEVGCis6MTAwQkQwMDA0MDgwMDEwMDdEMjIwMDAwNDI4MDAxMDBGRDNEMDAwMEI4Cis6MTAwQkUwMDAwQTAwMDgwMDRBODQzMTAwMDQwOTAwMDA4NjEwMTgwMDM5Cis6MTAwQkYwMDA4QjAwMTgwMDhEMDAwMDAwMDQ5OTE4MDAyQzMxMDAwMEIzCis6MTAwQzAwMDAwNkUyMTgwMDA3MDAwMDAwNEMzMjAwMDA4NjZCMTgwMDU2Cis6MTAwQzEwMDAwNzAwMDAwMDA0MTkwMDAwODY2ODE4MDAwNzAwMDAwMEEzCis6MTAwQzIwMDA5NTAwMDAwMDQ0OTExOTAwMkMyMjAwMDAyNDMxMDAwMDlFCis6MTAwQzMwMDA2QzYzMDAwMDNEMEUwMDAwNzUxMzAwMDBGRDBCMDAwMDBBCis6MTAwQzQwMDA0MjAwMDEwMDRBODAwOTAwMEEwMDEwMDBFQzhBMDMwMEZCCis6MTAwQzUwMDBFQzkzMDMwMDRDMjIwMDAwODZFMTE4MDAwNzAwMDAwMDFFCis6MTAwQzYwMDA4RDAwMDAwMDA0OTkxODAwNkMyMjAwMDAyQzMyMDAwMDU2Cis6MTAwQzcwMDAwQTA1MzAwMEFCMUQzMDAwODMyMDAwMDBGRDE4MDAwMDg1Cis6MTAwQzgwMDA0MjgwMDEwMDBBMDAwODAwMjQ4OTAxMDAwMjA1MzAwMEFBCis6MTAwQzkwMDA4MzEwMDAwMDc1MTgwMDAwNDIwMDAxMDAwQTAwMTAwMEQ3Cis6MTAwQ0EwMDA4RDAwMDAwMDI0MDkwMTAwNzUxMzAwMDA0MjA1MzMwMDg3Cis6MTAwQ0IwMDBDQjBDMzMwMENCMkMzMzAwQ0IzNDMzMDBDQjNDMzMwMDk0Cis6MTAwQ0MwMDBDQjQ0MzMwMENCNEMzMzAwQ0I1NDMzMDA4QjVDMzAwMDJGCis6MTAwQ0QwMDA4MzYwMDAwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMEU1Cis6MTAwQ0UwMDAwNDA5MDAwMDg2QjIxOTAwMDcwMDAwMDAyRDFFMDAwMDU0Cis6MTAwQ0YwMDBGRDA1MDAwMDQyODAwMTAwMEEwMDA4MDAyNDg5MDIwMDZFCis6MTAwRDAwMDAwMjA1MjgwMDBEMDYwMDAwMTAwODAwMDAzQTBDMjgwMDFCCis6MTAwRDEwMDA4RDAwMDAwMDEwMDgwMDAwM0ExNDI4MDA4RDgwMEEwMEExCis6MTAwRDIwMDAyMDA4MDAwMEY1MDIwMDAwNDAwMDAxMDAwNzAwMjIwMDNBCis6MTAwRDMwMDA3NTEyMDAwMDQyMDAwMzAwNEEwMDIxMDA4RDAwMDAwMEVGCis6MTAwRDQwMDA0NDA5MUEwMDA3MDAwMDAwOERBQjAxMDAxMDA4MDAwMEU0Cis6MTAwRDUwMDAzQTA0MDgwMDA2QUEyQzAwMDcwMDAwMDBGNTAxMDAwMDc0Cis6MTAwRDYwMDA0MjAwMDMwMDRBMDAwRDAwMEEwMDEwMDA0NDkxMDgwMEYwCis6MTAwRDcwMDAwNzAwMDAwMDIwMDgwMDAwNDAwMDAxMDBGNTI1MDAwMEU5Cis6MTAwRDgwMDA0NDMxMEEwMDA3MDAwMDAwMjAwODAwMDA2MDI4MDMwMDJBCis6MTAwRDkwMDA0MDAwMDMwMDdEMjEwMDAwNDI4MDAzMDA0QTgwMEIwMEQ4Cis6MTAwREEwMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMDRCCis6MTAwREIwMDA4RDAwMDAwMDI0MDEwMDAwMkMwMTAwMDA2NDBFMDAwMEUyCis6MTAwREMwMDA2NDFBMDAwMDZDNjMwMDAwMEEwMTA4MDAyQTAxMTAwMDg4Cis6MTAwREQwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDBGRDIwMDAwMDE4Cis6MTAwREUwMDA0MjgwMDEwMDBBMDAwODAwN0QyMjAwMDA0MjgwMDEwMENDCis6MTAwREYwMDAwQTAwMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDMwMEZCCis6MTAwRTAwMDA3RDE5MDAwMDQyODAwMTAwMEEwMDA4MDBGRDIyMDAwMDU4Cis6MTAwRTEwMDA0MjgwMDMwMDBBMDAxMDAwMjAwODAwMDA2MDEwMDMwMDU4Cis6MTAwRTIwMDA0MDAwMDMwMDA0MEQwOTAwMDcwMDAwMDAyMDA4MDAwMDM2Cis6MTAwRTMwMDA0MDAwMDMwMDQyODAwMzAwNEE4MDBCMDAwQTAwMTAwMEJCCis6MTAwRTQwMDAyMDA4MDAwMDYwMTAwMzAwNDAwMDAzMDA0MjgwMDMwMEZGCis6MTAwRTUwMDA0QTgwMTMwMDRBODAxOTAwMDQwRDExMDAwNDhEMTkwMDA2Cis6MTAwRTYwMDAwNzAwMDAwMDBBMDAwODAwMjAxMDAwMDA2MDE4MDMwMEJFCis6MTAwRTcwMDA2MDA4MDMwMDQwMDAwMzAwOEQwMDAwMDA0NDA5MEIwMERGCis6MTAwRTgwMDAwNzAwMDAwMDIwMDgwMDAwNDAwMDAxMDBGNTA1MDAwMEY4Cis6MTAwRTkwMDA0MjAwMDMwMDBBMDAwODAwMjAwODAwMDA0MDAwMDEwMDkyCis6MTAwRUEwMDBGNTAwMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMEVCCis6MTAwRUIwMDA4Njk4MUQwMDc1MUUwMDAwNDIwMDAzMDA0QTA0MDEwMEQwCis6MTAwRUMwMDAwQTBDMDAwMDA2QUExRDAwMDcwMDAwMDAwMjA0MDAwMDMyCis6MTAwRUQwMDAwMjBDMDAwMDdEMTcwMDAwRjUxQTAwMDA0MjgwMDEwMDlFCis6MTAwRUUwMDA0QTE0MDMwMDRBMUMwMzAwNEEyNDAzMDA0QTJDMDMwMDRFCis6MTAwRUYwMDA0QTM0MDMwMDRBM0MwMzAwNEE0NDAzMDAwQTRDMDAwMDAxCis6MTAwRjAwMDAzRDA0MDAwMEY1MTMwMDAwRkQxQTAwMDA0MjAwMDMwMDNDCis6MTAwRjEwMDA0QTAwMEIwMDRBODAxQjAwNEE4MDEzMDAwQTAwMjAwMDkwCis6MTAwRjIwMDA0NDkxMDgwMDQ0QTExOTAwRTQ4OTAzMDBFQzk5MDMwMEVFCis6MTAwRjMwMDAwMjU1MDAwMDBBNUQwMDAwNDIwMDAzMDA0QTAwMEIwMDU5Cis6MTAwRjQwMDA0QTgwMUIwMDRBODAxMzAwMEEwMDIwMDA0NDkxMDgwMEQ4Cis6MTAwRjUwMDA0NEExMTkwMEU0ODkwMzAwRUM5OTAzMDAwMjY1MDAwMDM0Cis6MTAwRjYwMDAwQTZEMDAwMDQyMDAwMzAwNEEwMDBCMDA0QTAwMTkwMDBECis6MTAwRjcwMDA0QTgwMkIwMDRBODAxMzAwNEE4MDIxMDAwQTAwMzAwMDdBCis6MTAwRjgwMDA0NDkxMDgwMDQ0QTExOTAwNDRCMTJBMDBFNDg5MDMwMEY3Cis6MTAwRjkwMDBFQzk5MDMwMDAyNzUwMDAwMEE3RDAwMDBFNEE5MDMwMDNCCis6MTAwRkEwMDAwMjA3MDAwMDdEMTAwMDAwMTUwNDAwMDA0MjgwMDEwMENGCis6MTAwRkIwMDAwQTAwMDgwMEU0MDkwMTAwMDIwRjAwMDBGNTJBMDAwMDAxCis6MTAwRkMwMDBGRDE5MDAwMDQyMDAwMTAwNEE4MDA5MDAwQTAwMTAwMERCCis6MTAwRkQwMDAzNDA5MDAwMDc0MTYwMDAwRjUyOTAwMDA0MjAwMDEwMEU5Cis6MTAwRkUwMDAwQTAwMTAwMDdDOTEwMDAwNzUyMDAwMDA0MjAwMDEwMDAyCis6MTAwRkYwMDAwQTAwMDgwMDA0MDkwMDAwODYwQTIwMDBGNTI2MDAwMDA3Cis6MTAxMDAwMDBGNTI3MDAwMDQyMDAwMzAwNEEwMDA5MDAwQTAwMTAwMDEyCis6MTAxMDEwMDAzQzBBMDAwMDdDMTYwMDAwNzUxQTAwMDBGRDBCMDAwMDYxCis6MTAxMDIwMDA0MjAwMDEwMDRBODA1MTAwMEEwMDQ4MDAwNzAwMTYwMEYzCis6MTAxMDMwMDA3NTEwMDAwMDQyMDAwMTAwMEEyQzI4MDAxMjFEMjgwMDMzCis6MTAxMDQwMDAxMjI1MjgwMDMyMUYwMDAwMDcwMDFFMDAwNzAwMEUwMEI2Cis6MTAxMDUwMDA3NTE5MDAwMDQyMDAwMTAwRjUyRDAwMDA0QTAwMEQwMDQ2Cis6MTAxMDYwMDAwQTAwMTAwMDQ0OTEwMDAwODZFQTIwMDA0MjAwMDEwMEJFCis6MTAxMDcwMDAwQTM0MjgwMDVEMEUwMDAwOEQwMDAwMDA3NTAzMDAwMDlBCis6MTAxMDgwMDAyMDA4MDAwMDQwMDAwMTAwRjREMjA1MDAwNEQxNTQwMDAzCis6MTAxMDkwMDA1QzczMDAwMDg2OEIyMTAwMDcwMDAwMDAwNzAwMEMwMDM1Cis6MTAxMEEwMDAwNzAwMDgwMDA3MDAwQTAwOEQxNzAyMDAxMDA4MDAwMDYyCis6MTAxMEIwMDAzQTA0MDgwMDA2QjIzNDAwMDcwMDAwMDAwNjkyMjEwMDNFCis6MTAxMEMwMDAwNzAwMDAwMDA3MDAwODAwNzUyMjAwMDA0MjAwMDEwMDMwCis6MTAxMEQwMDAwQTAwMjAwMDA0MjEwMDAwODY1ODIyMDAyRDFFMDAwMDc2Cis6MTAxMEUwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMEE3Cis6MTAxMEYwMDA4NkNBMjEwMDA3MDAwMDAwMTAyMDAwMDAzQTA0MzAwMERBCis6MTAxMTAwMDA3RDA1MDAwMEMzODAwMTAwMEEwMDA4MDAyNDg5MDIwMDU4Cis6MTAxMTEwMDAwMjA1MjgwMDAyMEMyODAwMEQ4MTBBMDAyMDA4MDAwMEFBCis6MTAxMTIwMDBGNTAyMDAwMDQwMDAwMTAwMDcwMDIyMDBGRDA0MDAwMDVECis6MTAxMTMwMDA0MjgwMDEwMDBBMDA3MDAwMDAwMDAzMDAyMDcwMDAwMERGCis6MTAxMTQwMDAwNkZBMDcwMDQwODAwMTAwOEQyQjAyMDAxMDA4MDAwMDA1Cis6MTAxMTUwMDAzQTA0MDgwMDA2QUEyQzAwMDcwMDAwMDBGRDAyMDAwMDY3Cis6MTAxMTYwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NkMyMjIwMDMzCis6MTAxMTcwMDAwNzAwMDAwMDA2MDIwMjAwMDcwMDAwMDA3NTA4MDAwMERBCis6MTAxMTgwMDBGRDA5MDAwMDBEMDEwMDAwMDY0MjIzMDA5NTAyMDAwMDQ5Cis6MTAxMTkwMDA3NTBCMDAwMDdEMDkwMDAwMEQwMDAwMDAxNTA1MDAwMDIyCis6MTAxMUEwMDA0MjAwMDEwMDBBMDAxODAwMDQxOTAwMDA4NjAwMkEwMDBECis6MTAxMUIwMDBGNTA2MDAwMDIwMTAwMDAwNDAwMDAxMDBGNTA0MDAwMENBCis6MTAxMUMwMDAyMDA4MDAwMDQwMDAwMTAwNzUwNzAwMDA0MjAwMDEwMEY3Cis6MTAxMUQwMDA0QTgwMDkwMDBBMDAxMDAwMjQxMTAwMDAwNDA5MDAwMEUwCis6MTAxMUUwMDA4NkYyMjMwMDE1MDgwMDAwMDIwMTA4MDAwNDEyMTAwMDE2Cis6MTAxMUYwMDAwNjEyMjQwMDc1MDUwMDAwMDQxMjA4MDAwNzAwMDAwMDE0Cis6MTAxMjAwMDAwMjAxMTAwMDc1MDUwMDAwMjUwNDAwMDAyNDExMDIwMEYxCis6MTAxMjEwMDAwMjAxMTAwMDIwMDgwMDAwNjAxMDAzMDA0MDAwMDEwMERGCis6MTAxMjIwMDAyNDE5MDAwMDg2MDAyQTAwOEQwMDAwMDA2NDA0MDAwMERDCis6MTAxMjMwMDAwNDlEMDAwMDg2MTAyOTAwMDIwMTE4MDA3NTA1MDAwMEI5Cis6MTAxMjQwMDA0MjAwMDEwMDBBMDQyODAwOEQwMTAwMDAyNDA5MDAwMDZBCis6MTAxMjUwMDAwMjBEMjgwMDBEMDAwMDAwMjQwOTAwMDAwMjE1MjgwMERFCis6MTAxMjYwMDAwRDAwMTAwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDAxCis6MTAxMjcwMDAwNzAwMjAwMDc1MTEwMDAwRkQwMjAwMDA0MjgwMDEwMEZGCis6MTAxMjgwMDAwQTAwMDgwMDA0MDkwMDAwODZGQTI0MDAwNzAwMDAwMDk0Cis6MTAxMjkwMDAwMDAxMDAwMDIwMEIwODAwNjAwQjEzMDA2MDBCMUIwMDE2Cis6MTAxMkEwMDA2MDBBMDMwMDQwMDAwMTAwNDIwMDA1MDA0QTAwM0QwMEMyCis6MTAxMkIwMDA0QTAwMzUwMDRBMDAyRDAwMEEwMDIwMDBGNTA2MDAwMDEzCis6MTAxMkMwMDA0MjAwMDEwMDBBMTQyODAwRjUwNDAwMDA0MjAwMDEwMDU5Cis6MTAxMkQwMDAwQTAwMDgwMDE1MDMwMDAwMDQwRDAxMDA4NjAyMjYwMDI0Cis6MTAxMkUwMDAxNTQwMDAwMDk1MDAwMDAwMDQwRDAxMDA4NkYwMjUwMDY3Cis6MTAxMkYwMDAyMjAwMTAwMDJBMDAxMDAwMDYxQTI2MDAwNzAwMDAwMDM1Cis6MTAxMzAwMDAwNDMxMzMwMDA0QTkyQTAwMDcwMDAwMDAyNDIxMDMwMDRGCis6MTAxMzEwMDAwMjA1MjgwMDAyNDQyODAwMjQxMTAwMDAwMjAxNDAwMEI4Cis6MTAxMzIwMDAyNDA0MDAwMDI0MDQwMDAwMjQzMjAwMDAyQzI5MDAwMEMyCis6MTAxMzMwMDA2QzYzMDAwMDg2NzMyNzAwMDcwMDAwMDA2NEIxMDIwMEEwCis6MTAxMzQwMDA2NDA0MDAwMDY0MDQwMDAwOEQwMDAwMDA2NDBBMDAwMEQyCis6MTAxMzUwMDAwMjBEMjgwMDhEMDAxMDAwMjAwODAwMDBGNTAyMDAwMDlBCis6MTAxMzYwMDA0MDAwMDEwMDA3MDAyMjAwOEQwMDAwMDAwNEI5MzgwMDkxCis6MTAxMzcwMDAwNzAwMDAwMDZDMjkwMzAwMEEwMTMwMDBGNTAyMDAwMDlDCis6MTAxMzgwMDA0MjAwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjAyMjcwMDRDCis6MTAxMzkwMDAwNzAwMDAwMDJDMjEwMDAwMEEwNTI4MDA2QzMxMDAwMDI1Cis6MTAxM0EwMDA2QzA0MDAwMDZDMDQwMDAwMEE0NTI4MDAyNDExMDAwMEIxCis6MTAxM0IwMDA2NDZCMDAwMDAyMDExMDAwOEQwMDAwMDA2QzA5MDEwMDQ4Cis6MTAxM0MwMDAwQTBEMjgwMDBEMDExMDAwMjAwODAwMDBGNTAyMDAwMEExCis6MTAxM0QwMDA0MDAwMDEwMDA3MDAyMjAwMjQ0MTAwMDAyNDA0MDAwMDE2Cis6MTAxM0UwMDAyNDA0MDAwMDI0MzIwMDAwMDIwMTMwMDA0NDI5MDMwMERDCis6MTAxM0YwMDA4NkZBMjcwMDA3MDAwMDAwMDIwMDMwMDBGNTA0MDAwMDE0Cis6MTAxNDAwMDA0MjAwMDEwMDBBMDAwODAwMTUwMzAwMDAwNDBEMDEwMDVECis6MTAxNDEwMDA4NjQwMjgwMDI0MzEwMDAwNjQwNDAwMDAwMjAxMzAwMEVFCis6MTAxNDIwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMDYzCis6MTAxNDMwMDA4NjRBMjgwMDA3MDAwMDAwMDI0NDI4MDAyNDMxMDAwMEVBCis6MTAxNDQwMDAwMjA1MzAwMDI0MzkwMDAwODMwNTMwMDA4MzA4MDAwMEM1Cis6MTAxNDUwMDBGNTA1MDAwMDQyMDAwMTAwMEEwNDI4MDA4RDAwMDAwMDhDCis6MTAxNDYwMDAyNDgxMDAwMDAyMEQyODAwOEQwMDAwMDAyNDgxMDAwMDZFCis6MTAxNDcwMDAwMjE1MjgwMDhEMDExMDAwMjAwODAwMDBGNTAyMDAwMDcwCis6MTAxNDgwMDA0MDAwMDEwMDA3MDAyMjAwMjUxMDAwMDA3NTA1MDAwMDQzCis6MTAxNDkwMDA0MjAwMDMwMDRBMDAwOTAwMEEwMDEwMDAwNDA5MEEwMDgzCis6MTAxNEEwMDAwNDExMTIwMDA3MDAwMDAwMjAxMDAwMDA2MDA4MDUwMDcxCis6MTAxNEIwMDA0MDAwMDUwMEZEMDYwMDAwNDI4MDAxMDA0QTAwMDkwMENFCis6MTAxNEMwMDAwQTAwMTAwMEE1MDAwMDAwMDQwOTBBMDAwNDExMTIwMDFGCis6MTAxNEQwMDAwNzAwMDAwMDIwMDgwMDAwNjA5MDAxMDA0MDAwMDEwMEFCCis6MTAxNEUwMDBGNTAyMDAwMDQyMDAwMTAwMEEwMDA4MDAwNDA5MDAwMEEzCis6MTAxNEYwMDA4NkNBMjkwMDA3MDAwMDAwMDY0MjI0MDAwNzAwMDAwMEY5Cis6MTAxNTAwMDAwNjA2MDAwMDA3MDAwMDAwRjUwMjAwMDA0MjAwMDEwMDhFCis6MTAxNTEwMDAwQTAwMDgwMDA0MDkwMDAwODYxQTJBMDAwNzAwMDAwMERCCis6MTAxNTIwMDAwMDAxMDAwMDIwMEIwODAwNjA4QjEzMDA2MDhCMUIwMDgzCis6MTAxNTMwMDA2MDhCMjMwMDYwOEIyQjAwNjA4QjMzMDA2MDhCM0IwMDQzCis6MTAxNTQwMDA2MDhCNDMwMDYwOEI0QjAwNjA4QjUzMDA2MDhCNUIwMEIzCis6MTAxNTUwMDA2MDhCNjMwMDYwOEI2QjAwNjA4QjczMDA2MDhCN0IwMDIzCis6MTAxNTYwMDA2MDhGMDMwMDYwOEYwQjAwNjA4RjEzMDA2MDhGMUIwMDgzCis6MTAxNTcwMDA2MDhGMjMwMDYwOEYyQjAwNjA4RjMzMDA2MDhGM0IwMEYzCis6MTAxNTgwMDA2MDhGNDMwMDYwOEY0QjAwNjA4RjUzMDA2MDhGNUIwMDYzCis6MTAxNTkwMDA2MDhGNjMwMDYwOEY2QjAwNjA4RjczMDA2MDhGN0IwMEQzCis6MTAxNUEwMDA2MDhBMDMwMDA2MDYwMDAwNDA4MDAxMDA4RDAwMDAwMEY0Cis6MTAxNUIwMDA2NDBBMDAwMDAyMEQyODAwMjQwQTAwMDA3RDAyMDAwMEQ5Cis6MTAxNUMwMDA0MjgwMDEwMDBBMDAxMDAwMjQxMjAwMDBGRDAzMDAwMDA4Cis6MTAxNUQwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjBBMkMwMDZECis6MTAxNUUwMDAwNzAwMDAwMDhEMDEwMDAwMjQwQTAwMDA2NDA0MDAwMEQwCis6MTAxNUYwMDA2NDA0MDAwMDAyMDEwODAwMjQwOTAwMDAyNDA0MDAwMDIzCis6MTAxNjAwMDAyNDA0MDAwMDAyMDExMDAwMEQwMDAyMDA0NDkxMDAwMEJCCis6MTAxNjEwMDA4NjYxMkMwMDA3MDAwMDAwRkQwMTAwMDA0MjgwMDEwMEVGCis6MTAxNjIwMDAwQTAwMDgwMDQ0MEEwMDAwODY0MzJDMDA0MjgwMDEwMEEyCis6MTAxNjMwMDAwRDAwMEEwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMEFCCis6MTAxNjQwMDAwNzAwMjAwMDdEMDIwMDAwMjAxMDAwMDAwNjA2MDAwMEI4Cis6MTAxNjUwMDA0MDgwMDEwMEY1MDIwMDAwNDIwMDAxMDAwQTAwMDgwMDdECis6MTAxNjYwMDAwNDA5MDAwMDg2QjIyQzAwMDcwMDAwMDA3RDAzMDAwMDgyCis6MTAxNjcwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NkUyMkMwMEY0Cis6MTAxNjgwMDAwNzAwMDAwMDc1MDAwMDAwN0QyRTAwMDA0MjAwMDEwMEYwCis6MTAxNjkwMDA0QTgwMEIwMDIwMDAwMDAwMDQwOTAwMDA4NjA2MDAwMEJDCis6MTAxNkEwMDA0MDAwMDEwMDRBODQzMTAwOEIwNDMwMDA4MzA4MDAwMEIwCis6MTAxNkIwMDA4RDAwMDAwMDEwMDgwMDAwM0ExNDI4MDA4RDAwMDAwMDgyCis6MTAxNkMwMDAxMDA4MDAwMDNBMEMyODAwNzUwNjAwMDA0MjAwMDEwMEQ2Cis6MTAxNkQwMDAwQTAwMDgwMDE1MzgwMDAwMjQwOTAxMDAwMjA1MjgwMDRFCis6MTAxNkUwMDAwRDAwMEIwMDIwMDgwMDAwRjUwMjAwMDA0MDAwMDEwMDgyCis6MTAxNkYwMDAwNjA2MDAwMDA3MDAyMjAwNjQwNDAwMDA2NDA0MDAwMEU1Cis6MTAxNzAwMDAwNjA2MDAwMDA3MDAwMDAwMzQwMTAwMDA4RDdGMDAwMDg1Cis6MTAxNzEwMDAzQzA5MDAwMDEyMUQyODAwMTIyNTI4MDAzMjFGMDAwMDdECis6MTAxNzIwMDAwNzAwMEUwMDBEMDEwMDAwN0QwMzAwMDAyMDA4MDAwMEVFCis6MTAxNzMwMDA0MDgwMDEwMEY0RDIwNTAwMDcwMDAwMDAwNzAwMDgwMDA3Cis6MTAxNzQwMDA3RDAzMDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDM3Cis6MTAxNzUwMDA4NjhBMkUwMDA3MDAwMDAwMDYwNjAwMDAwNzAwMDAwMDMxCis6MTAxNzYwMDAwNzAwMDAwMDEyMDAwMDAwMDcwMDEwMDAwNzAwMzIwMDEwCis6MTAxNzcwMDAwNzAwNjAwMDA3MDA0NjAwODAwMDEwMDAxQTAwNDgwMEMzCis6MTAxNzgwMDAwNDQ5MDAwMDg2RjEyRTAwMDcwMDAwMDAxMDEyMDAwMDNFCis6MTAxNzkwMDAzQTAwNTgwMDQ1MDEwMDAwMDQ1RDVDMDAwNzAwMDAwMEFECis6MTAxN0EwMDA4MDAwMDAwMDFBMDA0ODAwMDQ0OTAwMDA4NjQxMkYwMDE0Cis6MTAxN0IwMDAwNzAwMDAwMDEwMTIwMDAwM0EwMDUwMDAwNDU5MDAwMDE5Cis6MTAxN0MwMDA4Njk4MkYwMDQ1MDAwMDAwQzUwMDAwMDBGNUZGN0YwMDRGCis6MTAxN0QwMDA3REZGN0YwMDI0RDUwNzAwMjQ0MjAwMDAwMjAxNTAwMDU1Cis6MTAxN0UwMDAwMjA1MjAwMDgyMDAwMDAwMUEwMDQwMDAwNDQxMDAwMEIxCis6MTAxN0YwMDA4NkM5MkYwMDA3MDAwMDAwNjUzODAwMDAxQTAwNDAwMDZECis6MTAxODAwMDAyMDQwMDAwMDREMTAwMDAwODRDMTA0MDA4NkFCMzEwMDcwCis6MTAxODEwMDA0MDAwMDAwMDA3MDAwNDAwNjUwMTAwMDA0NTAxMDAwMEQxCis6MTAxODIwMDAyMDQwMDAwMDQwMDAwMDAwNjUwNzAwMDA4MDAwMDgwMDI0Cis6MTAxODMwMDAxQTAwNDAwMDA0NDEwMDAwODY1OTMwMDAwNzAwMDAwMEYzCis6MTAxODQwMDAxMDEyMDAwMDNBMDA0MDAwMDQ0MTAwMDA4NkIyMzAwMDRGCis6MTAxODUwMDA0RDAwMDAwMENEMDAwMDAwMTA0ODAwMDAzQTA0MjAwMEI4Cis6MTAxODYwMDA4MjA4MDAwMDFBMDA0MDAwMDQ0MTAwMDA4NkMxMzAwMEQ4Cis6MTAxODcwMDAwNzAwMDAwMDIwNDgwMDAwMDQ1OTAwMDA4Njk4MzEwMDRECis6MTAxODgwMDA0MDAwMDAwMEU1MDcwMDAwODAwNDIwMDBBMDE2MjgwMEFBCis6MTAxODkwMDBFMDE2MzIwMEUwMTYzQTAwRTAxNjQyMDA2MDEyMDIwMDQ0Cis6MTAxOEEwMDA0MDAwMDAwMDMyMDAwMDAwNzUwMDQwMDA3RDAwMDAwMDk0Cis6MTAxOEIwMDA3NEQ1MDcwMDEyMDUyMDAwODIwMDAwMDAxQTAwNDAwMEM1Cis6MTAxOEMwMDAwNDQxMDAwMDg2NzEzMTAwMDcwMDAwMDAwNjhBMDMwMDExCis6MTAxOEQwMDAwNzAwNjQwMEU1MDAwMDAwMjAwMDAwMDA0MDAwMDAwMDU4Cis6MTAxOEUwMDA2NTBBMDAwMDIwMDAwMDAwNDAwMDAyMDA0MDAwMDIwMEU1Cis6MTAxOEYwMDA0MDAwMDAwMDY1MDEwMDAwNDIwMDAwMDAwQTAwNzAwMDg2Cis6MTAxOTAwMDAwNDcxMDAwMDg2MzIzMjAwMDcwMDAwMDAwNzAwMDYwMDY0Cis6MTAxOTEwMDAwNjlBMDEwMDA3MDA2NDAwMDAwMDA1MDAyMDcwMDAwMDI2Cis6MTAxOTIwMDA0MDAwMDAwMDA2OEEwMzAwMDcwMDY0MDAwNzAwMDAwMDcyCis6MTAxOTMwMDA2RDMwMDAwMDYwODgwMjAwNjA5MDAyMDAwQTAwMDgwMDFDCis6MTAxOTQwMDA2MDg4MDIwMDQwODAwMDAwMTIwMDEwMDAwRDEwMDAwMEFFCis6MTAxOTUwMDA4NDkxMDAwMDg2RDEzMjAwMEQwRTAwMDA4NDkxMDAwMEI5Cis6MTAxOTYwMDA4NkUxMzMwMDA3MDAwMDAwMDcwMDMwMDAyMDEwMDAwMDZGCis6MTAxOTcwMDA2RDNCMDAwMDQwODAwMDAwODAwMDAwMDAxQTAwMDgwMDVECis6MTAxOTgwMDAwNDA5MDAwMDg2RjEzMjAwMDcwMDAwMDAyMDEyMDAwMDY4Cis6MTAxOTkwMDBFRDBEMDAwMDQwODAwMDAwNDI4MDAwMDAwQTAwMTAwMEIxCis6MTAxOUEwMDAwRDAwNDAwMDQ0OTUxMDAwMDcwMDAwMDAyMDEwMDAwMENBCis6MTAxOUIwMDBFRDBEMDAwMDQwODAwMDAwNDI4MDAwMDAwQTA0MjAwMDdECis6MTAxOUMwMDA4MjAwMDAwMDFBMDAwODAwMDQwOTAwMDA4NjgxMzMwMDJDCis6MTAxOUQwMDAwNzAwMDAwMDZEM0IwMDAwNDI4MDAwMDAwQTAwMDgwMDg0Cis6MTAxOUUwMDAxNTBFMDAwMDg0MDkwMTAwODYyQjM0MDAwNzAwNjAwMEZBCis6MTAxOUYwMDAxQTAwMDgwMDE1MEMwMDAwODQwOTAxMDA4NjEzMzQwMDQ5Cis6MTAxQTAwMDAyMDAwMDAwMDA3MDAxQTAwRUQwMjAwMDA0MDgwMDAwMEU2Cis6MTAxQTEwMDAwNzAwNjIwMDZEMzAwMDAwNDI4MDAyMDA0QTgwMEEwMDI4Cis6MTAxQTIwMDAyMDA4MDAwMDRBODAwQTAwMDYwNjAwMDA0QTgwMTAwMEQ0Cis6MTAxQTMwMDAwNzAwMDAwMDEyMjUyODAwMzIxRjAwMDBGNEQyMDUwMDI0Cis6MTAxQTQwMDAwNEQxNTQwMDVDNzMwMDAwODYwNzAwMDAwNzAwMDAwMDBBCis6MTAxQTUwMDAwNzAwMEMwMDA3MDAwQTAwMDcwMDFDMDA2NTM0MDAwMEE2Cis6MTAxQTYwMDA0MDAwMDIwMDIwNDgwMDAwNjA1MDAyMDAwQTAwNDAwMEQwCis6MTAxQTcwMDA2MDQwMDIwMDQwMDAwMDAwNDQ0OTQ1MDAwNzAwMDAwMEFCCis6MTAxQTgwMDAyMDQwMDAwMEU1M0EwMDAwNDAwMDAwMDBFNTI4MDAwMDhBCis6MTAxQTkwMDA0MjAwMDAwMDBBMDA0ODAwMDQ0OTAwMDA4NkY4MzkwMEFFCis6MTAxQUEwMDA2NTJDMDAwMDQyMDAwMDAwMEEwMDQwMDBENTAwMDAwMDQ0Cis6MTAxQUIwMDAwNDQxNDUwMDA3MDAwMDAwNTUwNjAwMDAwNDQ1MDUwMEVDCis6MTAxQUMwMDA4NjgyMzYwMEQ1MDEwMDAwMDQ0NTA1MDA4NjgwMzYwMDc4Cis6MTAxQUQwMDA2NTJCMDAwMDQyMDAwMDAwRTUzQTAwMDA0QTAwNTAwMDdCCis6MTAxQUUwMDAwQTAwNDAwMEQ0QzM0NTAwMDcwMDAwMDAwNDQ1NDUwMDNCCis6MTAxQUYwMDAwNzAwMDAwMENEMDAwMDAwNDQ0OTQ0MDAwNzAwMDAwMDNBCis6MTAxQjAwMDAwNDQ1NDUwMDA3MDAwMDAwNEQwMTAwMDA0NDQ5NTUwMDEwCis6MTAxQjEwMDAwNzAwMDAwMDQ0NTEwNDAwODY3OTM2MDA2NTJDMDAwMDVGCis6MTAxQjIwMDA0MjAwMDAwMDBBMDA0ODAwMDREMTRDMDAwNzAwMDAwMEY5Cis6MTAxQjMwMDA0NEMxMDQwMDg2ODMzNjAwMDcwMDAwMDAwNzAwMTYwMDM5Cis6MTAxQjQwMDBFNTJDMDAwMDQyMDAwNDAwMEEwMDQwMDAyMDQwMDAwMDk0Cis6MTAxQjUwMDA0MDAwMDAwMDY1MjkwMDAwNDIwMDAwMDAwQTAwNDAwMDJCCis6MTAxQjYwMDAwNDQxMDAwMDg2RjAzNjAwMDcwMDAwMDAwMjI0MDAwMDU3Cis6MTAxQjcwMDAwNjMyMzgwMDAyNUMwMDAwRTUyNTAwMDA0MjAwMDAwMDRCCis6MTAxQjgwMDAwQTAwNDAwMDc0NDIwMDAwRTUyQTAwMDA0MjAwMDAwMDA0Cis6MTAxQjkwMDAwQTAwNDAwMDc0NDIwMDAwMTIwMTUwMDBFNTI5MDAwMEQ0Cis6MTAxQkEwMDA0MjAwMDAwMDBBMDA0MDAwMzQ0MjAwMDAwNDQxNDUwMEE5Cis6MTAxQkIwMDAwNzAwMDAwMDIwNDAwMDAwNDAwMDAwMDBFNTNFMDAwMDVCCis6MTAxQkMwMDAyMDAwMDAwMDQwMDAwMDAwRTUyRDAwMDA1MjAxNDAwMDEwCis6MTAxQkQwMDAwQTAwNTAwMDQ0NTEwNDAwODZEQTM3MDBDNTAwMDAwMEI2Cis6MTAxQkUwMDBFNTNFMDAwMDIwNDAwMDAwNDAwMDAwMDBFNTJCMDAwMDIyCis6MTAxQkYwMDA0MjAwMDAwMDBBMDA0MDAwNTQ0MjQwMDAwNzAwMDAwMDdDCis6MTAxQzAwMDBFNTJBMDAwMDIwNDAwMDAwNDAwMDAwMDAzMjAxNTAwMEEyCis6MTAxQzEwMDAzNDAxMDQwMDc0NTYwMDAwRTUyOTAwMDA0MjAwMDIwMDZGCis6MTAxQzIwMDAwQTAwNDIwMDQyMDAwMDAwMEEwMDUwMDA3QzQxMDUwMDBBCis6MTAxQzMwMDBFNTI4MDAwMDQyMDAwMDAwMEEwMDQ4MDBDNTAwMDAwMDNFCis6MTAxQzQwMDA0NEMxNEMwMDg2QTAzODAwRTUyNjAwMDBFNTI3MDAwMENFCis6MTAxQzUwMDA0MjAwMDIwMDRBMDA0MDAwMEEwMDUwMDAzQzQyMDAwMERFCis6MTAxQzYwMDA3QzU2MDAwMEU1MjgwMDAwMjA0ODAwMDA0MDAwMDAwMEVECis6MTAxQzcwMDAxMjFEMjgwMDEyMjUyODAwNzIxRjAwMDA2NTI5MDAwMDhGCis6MTAxQzgwMDA0MjAwMDAwMDBBMDA0MDAwMDQ0MTAwMDA4NjNBMzkwMDhBCis6MTAxQzkwMDAwNzAwMEUwMDA3MDAxNjAwMDcwMDFFMDBFNTNFMDAwMENBCis6MTAxQ0EwMDA0MjAwMDAwMDBBMDA0MDAwMDQ0MTAwMDA4Njc4MzkwMDJDCis6MTAxQ0IwMDA2NTJEMDAwMDQyMDAwMDAwMEEzNDI4MDA2NTM0MDAwMDUxCis6MTAxQ0MwMDA0MjAwMDIwMDRBMDA0MjAwMjA0MDAwMDA0QTAwNEEwMDUwCis6MTAxQ0QwMDA0QTAwNTAwMEY0RDIwNTAwMDREMTU0MDA1QzczMDAwMEE3Cis6MTAxQ0UwMDA4NkUxMzkwMDA3MDAwMDAwMDYwNjAwMDAwNzAwMDgwMDMyCis6MTAxQ0YwMDAwNzAwMEMwMDA3MDAwODAwMDcwMDBBMDBFNTAxMDAwMENCCis6MTAxRDAwMDA0NTAwMDIwMDIwNDAwMDAwNjAwMDAwMDA2NTAzMDAwMDY0Cis6MTAxRDEwMDA0MDAwMDAwMDY1MkUwMDAwMjAxQTAwMDA2MDFBMEEwMDMyCis6MTAxRDIwMDA0MDAwMDAwMDY1MzQwMDAwNDIwMDAyMDA0QTAwNDIwMDBBCis6MTAxRDMwMDAyMDQwMDAwMDRBMDA0QTAwMDYwNjAwMDA0QTAwNTAwMDA5Cis6MTAxRDQwMDBGRDE3MDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDlECis6MTAxRDUwMDA4NjVBMjIwMDA3MDAwMDAwN0QxMDAwMDA0MjgwMDEwMDJBCis6MTAxRDYwMDBGRDExMDAwMDRBODAzMzAwNEE4MDE5MDAwQTAwMjAwMDVCCis6MTAxRDcwMDA5NTAwMDAwMDQ0MTEyQTAwNDRBMTAxMDA4NjkwM0IwMDE4Cis6MTAxRDgwMDAwRDA0MDAwMDg0QjEwMDAwODY5MTNCMDBGRDE4MDAwMEE2Cis6MTAxRDkwMDA0MjgwMDEwMEZEMTAwMDAwNEE4MDA5MDAwQTAwMzgwMDVFCis6MTAxREEwMDA5NTAwMDAwMDI0MDkwMTAwNjQzQTAwMDA4NjgxM0IwMDkwCis6MTAxREIwMDAwNzAwMDAwMDA0MzkwMDAwODY5MjNCMDAwNzAwMDAwMDg1Cis6MTAxREMwMDAwNjlBM0IwMDBEMDAwMDAwOEQwMDAwMDAyMDA4MDAwMDc2Cis6MTAxREQwMDA3RDM4MDAwMDQwODAwMTAwMDIwMDcwMDA3RDExMDAwMDhECis6MTAxREUwMDA0MjgwMDEwMDdEMTkwMDAwNEE4MDI5MDAwQTAwMzAwMDZECis6MTAxREYwMDAwMjAwMzgwMDI0MzEwMDAwMjQwNDAwMDAyNDA0MDAwMDA0Cis6MTAxRTAwMDAyNDJBMDAwMDAyMDUyODAwOEQwNjAwMDAxMDA4MDAwMEFBCis6MTAxRTEwMDAzQTE0MjgwMDBENzUwMDAwMjRCMTAwMDA2NDIyMDAwMDZGCis6MTAxRTIwMDA4NjAzM0QwMDAyNDQyODAwMTAwODAwMDAzQTBDMjgwMEY4Cis6MTAxRTMwMDAwRDgwMEIwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDIyCis6MTAxRTQwMDAwNzAwMjAwMDhENzUwMDAwMjRCMTAwMDAwMjAxMTAwMDgxCis6MTAxRTUwMDA0NDIxMDEwMDg2NDkzRTAwMTAxODAwMDAzQTAwMTAwMDlECis6MTAxRTYwMDA3RDM4MDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMERCCis6MTAxRTcwMDA4NjQ4M0UwMDAwMDAwMzAwMDY0QTNFMDBCRDAwMDAwMDA4Cis6MTAxRTgwMDA4RDAwMDAwMDY0MzEwMjAwNjQwQTAwMDAwMjBEMjgwMDg5Cis6MTAxRTkwMDA4RDgwMEIwMDIwMDgwMDAwRkQwMjAwMDA0MDgwMDEwMDQyCis6MTAxRUEwMDAwNzAwMjAwMDdEMzgwMDAwNDI4MDAxMDAwQTAwMDgwMDgxCis6MTAxRUIwMDAwNDA5MDAwMDg2MzIzRTAwMDAwMDAzMDBGRDAyMDAwMDFECis6MTAxRUMwMDA0MjgwMDEwMDBBMDAwODAwMDQwOTAwMDA4NjgyM0QwMEVCCis6MTAxRUQwMDAwNzAwMDAwMDEwMjgwMDAwM0EwNDI4MDAwRDc1MDAwMERCCis6MTAxRUUwMDAyNDA5MDMwMDY0MjIwMDAwMDIwRDI4MDA2QzMxMDIwMDY2Cis6MTAxRUYwMDAwQTQ1MjgwMDBEODEwQjAwMjAwODAwMDBGRDAyMDAwMEFCCis6MTAxRjAwMDA0MDgwMDEwMDA3MDAyMDAwOEQwMDAwMDAyNDBBMDAwMDJFCis6MTAxRjEwMDAwNjRBM0UwMDAyMDExMDAwMTAxODAwMDAzQTAwMTAwMEFFCis6MTAxRjIwMDBCRDAwMDAwMDEwMzgwMDAwM0EwNDMwMDA3RDE4MDAwMEE5Cis6MTAxRjMwMDA0MjgwMDEwMEZEMTgwMDAwNEE4MDA5MDAwQTAwMjAwMENDCis6MTAxRjQwMDBBRDAwMDAwMDI0ODkwMjAwMkMyMTA3MDAxMDEwMDAwMEMxCis6MTAxRjUwMDA4MzA1MzAwMDhCMEQzMDAwQkIxNDMwMDA4MzFDMzAwMDMzCis6MTAxRjYwMDA4MzIwMDAwMDdEMTMwMDAwNDI4MDAzMDA0QTg0MzMwMDc4Cis6MTAxRjcwMDBDQkFDMzMwMENCQjQzMzAwQ0JCQzMzMDBDQkM0MzMwMDg5Cis6MTAxRjgwMDBDQkNDMzMwMENCRDQzMzAwOEI1QzMwMDA4MzYwMDAwMEJCCis6MTAxRjkwMDAwRDFFMDAwMEZEMDUwMDAwNDI4MDAxMDAwQTAwMjAwMDI3Cis6MTAxRkEwMDAyNDA5MDIwMDhEMDYwMDAwNkNBOTAwMDA5RDAwMDAwMEJECis6MTAxRkIwMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMDQwCis6MTAxRkMwMDA4NjZBM0YwMDA3MDAwMDAwMDIwNTI4MDAwQTBEMjgwMDZECis6MTAxRkQwMDAwMjQ0MjgwMDEwMTgwMDAwM0ExNDI4MDA4RDAwMEMwMDVDCis6MTAxRkUwMDAyMDA4MDAwMEZEMDIwMDAwNDA4MDAxMDAwNzAwMjIwMEUwCis6MTAxRkYwMDAwNDM5MDAwMDg2NTgyMjAwMEQxRTAwMDA3RDA1MDAwMEY3Cis6MTAyMDAwMDA0MjgwMDEwMDBBMDAyMDAwMjQwOTAyMDBBNTAwMDAwMDBGCis6MTAyMDEwMDBGRDAyMDAwMDQyODAwMTAwMEEwMDA4MDAwNDA5MDAwMERGCis6MTAyMDIwMDA4NjJBNDAwMDA3MDAwMDAwMDIwNTI4MDAwMjBDMjgwMDU0Cis6MTAyMDMwMDAxMDIwMDAwMDNBMTQyODAwMEQwMTBDMDAyMDA4MDAwMEI4Cis6MTAyMDQwMDBGRDAyMDAwMDQwODAwMTAwMDY1QTIyMDAwNzAwMjIwMDI1Cis6MTAyMDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgwCis6MTAyMDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcwCis6MTAyMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYwCis6MTAyMDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUwCis6MTAyMDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwCis6MTAyMEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwCis6MTAyMEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwCis6MTAyMEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwCis6MTAyMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCis6MTAyMEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYwCis6MTAyMEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUwCis6MTAyMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENGCis6MTAyMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJGCis6MTAyMTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFGCis6MTAyMTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlGCis6MTAyMTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhGCis6MTAyMTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdGCis6MTAyMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZGCis6MTAyMTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVGCis6MTAyMTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRGCis6MTAyMTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNGCis6MTAyMUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJGCis6MTAyMUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFGCis6MTAyMUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBGCis6MTAyMUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZGCis6MTAyMUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVGCis6MTAyMUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERGCis6MTAyMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENFCis6MTAyMjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJFCis6MTAyMjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFFCis6MTAyMjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlFCis6MTAyMjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhFCis6MTAyMjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdFCis6MTAyMjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZFCis6MTAyMjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVFCis6MTAyMjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRFCis6MTAyMjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNFCis6MTAyMkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJFCis6MTAyMkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFCis6MTAyMkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBFCis6MTAyMkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZFCis6MTAyMkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVFCis6MTAyMkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERFCis6MTAyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENECis6MTAyMzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJECis6MTAyMzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFECis6MTAyMzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlECis6MTAyMzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhECis6MTAyMzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdECis6MTAyMzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZECis6MTAyMzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVECis6MTAyMzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRECis6MTAyMzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNECis6MTAyM0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJECis6MTAyM0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFECis6MTAyM0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBECis6MTAyM0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZECis6MTAyM0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVECis6MTAyM0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERECis6MTAyNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENDCis6MTAyNDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJDCis6MTAyNDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFDCis6MTAyNDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlDCis6MTAyNDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhDCis6MTAyNDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdDCis6MTAyNDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZDCis6MTAyNDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVDCis6MTAyNDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRDCis6MTAyNDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNDCis6MTAyNEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJDCis6MTAyNEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFDCis6MTAyNEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBDCis6MTAyNEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZDCis6MTAyNEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVDCis6MTAyNEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERDCis6MTAyNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENCCis6MTAyNTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJCCis6MTAyNTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFCCis6MTAyNTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlCCis6MTAyNTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhCCis6MTAyNTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdCCis6MTAyNTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZCCis6MTAyNTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVCCis6MTAyNTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRCCis6MTAyNTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNCCis6MTAyNUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJCCis6MTAyNUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFCCis6MTAyNUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBCCis6MTAyNUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZCCis6MTAyNUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVCCis6MTAyNUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERCCis6MTAyNjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMENBCis6MTAyNjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEJBCis6MTAyNjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEFBCis6MTAyNjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDlBCis6MTAyNjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDhBCis6MTAyNjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDdBCis6MTAyNjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDZBCis6MTAyNjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVBCis6MTAyNjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDRBCis6MTAyNjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDNBCis6MTAyNkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJBCis6MTAyNkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFBCis6MTAyNkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBBCis6MTAyNkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEZBCis6MTAyNkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEVBCis6MTAyNkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMERBCis6MTAyNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM5Cis6MTAyNzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI5Cis6MTAyNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE5Cis6MTAyNzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk5Cis6MTAyNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg5Cis6MTAyNzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc5Cis6MTAyNzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY5Cis6MTAyNzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU5Cis6MTAyNzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ5Cis6MTAyNzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM5Cis6MTAyN0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI5Cis6MTAyN0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE5Cis6MTAyN0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5Cis6MTAyN0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY5Cis6MTAyN0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU5Cis6MTAyN0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ5Cis6MTAyODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM4Cis6MTAyODEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI4Cis6MTAyODIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE4Cis6MTAyODMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk4Cis6MTAyODQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg4Cis6MTAyODUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc4Cis6MTAyODYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY4Cis6MTAyODcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU4Cis6MTAyODgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ4Cis6MTAyODkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM4Cis6MTAyOEEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4Cis6MTAyOEIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE4Cis6MTAyOEMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4Cis6MTAyOEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY4Cis6MTAyOEUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU4Cis6MTAyOEYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ4Cis6MTAyOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM3Cis6MTAyOTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI3Cis6MTAyOTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE3Cis6MTAyOTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk3Cis6MTAyOTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg3Cis6MTAyOTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc3Cis6MTAyOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY3Cis6MTAyOTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3Cis6MTAyOTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ3Cis6MTAyOTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM3Cis6MTAyOUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3Cis6MTAyOUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3Cis6MTAyOUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3Cis6MTAyOUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY3Cis6MTAyOUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU3Cis6MTAyOUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ3Cis6MTAyQTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM2Cis6MTAyQTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI2Cis6MTAyQTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE2Cis6MTAyQTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk2Cis6MTAyQTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg2Cis6MTAyQTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc2Cis6MTAyQTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY2Cis6MTAyQTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU2Cis6MTAyQTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ2Cis6MTAyQTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM2Cis6MTAyQUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI2Cis6MTAyQUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE2Cis6MTAyQUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA2Cis6MTAyQUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY2Cis6MTAyQUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU2Cis6MTAyQUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ2Cis6MTAyQjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM1Cis6MTAyQjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI1Cis6MTAyQjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE1Cis6MTAyQjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk1Cis6MTAyQjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg1Cis6MTAyQjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc1Cis6MTAyQjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY1Cis6MTAyQjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU1Cis6MTAyQjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ1Cis6MTAyQjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM1Cis6MTAyQkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1Cis6MTAyQkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1Cis6MTAyQkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Cis6MTAyQkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY1Cis6MTAyQkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU1Cis6MTAyQkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ1Cis6MTAyQzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEM0Cis6MTAyQzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEI0Cis6MTAyQzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEE0Cis6MTAyQzMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDk0Cis6MTAyQzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDg0Cis6MTAyQzUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDc0Cis6MTAyQzYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDY0Cis6MTAyQzcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU0Cis6MTAyQzgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQ0Cis6MTAyQzkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDM0Cis6MTAyQ0EwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI0Cis6MTAyQ0IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE0Cis6MTAyQ0MwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0Cis6MTAyQ0QwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEY0Cis6MTAyQ0UwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEU0Cis6MTAyQ0YwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQ0Cis6MTAyRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMzCis6MTAyRDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIzCis6MTAyRDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEzCis6MTAyRDMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkzCis6MTAyRDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgzCis6MTAyRDUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDczCis6MTAyRDYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYzCis6MTAyRDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzCis6MTAyRDgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQzCis6MTAyRDkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMzCis6MTAyREEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIzCis6MTAyREIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEzCis6MTAyREMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzCis6MTAyREQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYzCis6MTAyREUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUzCis6MTAyREYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQzCis6MTAyRTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMyCis6MTAyRTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIyCis6MTAyRTIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEEyCis6MTAyRTMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkyCis6MTAyRTQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgyCis6MTAyRTUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcyCis6MTAyRTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYyCis6MTAyRTcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUyCis6MTAyRTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQyCis6MTAyRTkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMyCis6MTAyRUEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIyCis6MTAyRUIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEyCis6MTAyRUMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyCis6MTAyRUQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYyCis6MTAyRUUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUyCis6MTAyRUYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQyCis6MTAyRjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEMxCis6MTAyRjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEIxCis6MTAyRjIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEExCis6MTAyRjMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkxCis6MTAyRjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxCis6MTAyRjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDcxCis6MTAyRjYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDYxCis6MTAyRjcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUxCis6MTAyRjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQxCis6MTAyRjkwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMxCis6MTAyRkEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIxCis6MTAyRkIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExCis6MTAyRkMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxCis6MTAyRkQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEYxCis6MTAyRkUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEUxCis6MTAyRkYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMEQxCis6MDAwMDAwMDFGRgpkaWZmIC0tZ2l0IGEvZnMvOXAvdjlmc192ZnMuaCBiL2ZzLzlwL3Y5ZnNfdmZzLmgKaW5kZXggZmQwMWQ5MC4uNTc5OTdmYSAxMDA2NDQKLS0tIGEvZnMvOXAvdjlmc192ZnMuaAorKysgYi9mcy85cC92OWZzX3Zmcy5oCkBAIC01MSw0ICs1MSw0IEBACiBpbnQgdjlmc19maWxlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpOwogdm9pZCB2OWZzX2lub2RlMnN0YXQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHA5X3N0YXQgKnN0YXQpOwogdm9pZCB2OWZzX2RlbnRyeV9yZWxlYXNlKHN0cnVjdCBkZW50cnkgKik7Ci1pbnQgdjlmc191ZmxhZ3Myb21vZGUoaW50IHVmbGFncyk7CitpbnQgdjlmc191ZmxhZ3Myb21vZGUoaW50IHVmbGFncywgaW50IGV4dGVuZGVkKTsKZGlmZiAtLWdpdCBhL2ZzLzlwL3Zmc19maWxlLmMgYi9mcy85cC92ZnNfZmlsZS5jCmluZGV4IDBkNTVhZmYuLjUyOTQ0ZDIgMTAwNjQ0Ci0tLSBhL2ZzLzlwL3Zmc19maWxlLmMKKysrIGIvZnMvOXAvdmZzX2ZpbGUuYwpAQCAtNTksNyArNTksNyBAQAogCiAJUDlfRFBSSU5USyhQOV9ERUJVR19WRlMsICJpbm9kZTogJXAgZmlsZTogJXAgXG4iLCBpbm9kZSwgZmlsZSk7CiAJdjlzZXMgPSB2OWZzX2lub2RlMnY5c2VzKGlub2RlKTsKLQlvbW9kZSA9IHY5ZnNfdWZsYWdzMm9tb2RlKGZpbGUtPmZfZmxhZ3MpOworCW9tb2RlID0gdjlmc191ZmxhZ3Myb21vZGUoZmlsZS0+Zl9mbGFncywgdjlmc19leHRlbmRlZCh2OXNlcykpOwogCWZpZCA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlpZiAoIWZpZCkgewogCQlmaWQgPSB2OWZzX2ZpZF9jbG9uZShmaWxlLT5mX3BhdGguZGVudHJ5KTsKQEAgLTc1LDYgKzc1LDggQEAKIAkJCWlub2RlLT5pX3NpemUgPSAwOwogCQkJaW5vZGUtPmlfYmxvY2tzID0gMDsKIAkJfQorCQlpZiAoKGZpbGUtPmZfZmxhZ3MgJiBPX0FQUEVORCkgJiYgKCF2OWZzX2V4dGVuZGVkKHY5c2VzKSkpCisJCQlnZW5lcmljX2ZpbGVfbGxzZWVrKGZpbGUsIDAsIFNFRUtfRU5EKTsKIAl9CiAKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBmaWQ7CmRpZmYgLS1naXQgYS9mcy85cC92ZnNfaW5vZGUuYyBiL2ZzLzlwL3Zmc19pbm9kZS5jCmluZGV4IDQwZmE4MDcuLmM5NTI5NWMgMTAwNjQ0Ci0tLSBhL2ZzLzlwL3Zmc19pbm9kZS5jCisrKyBiL2ZzLzlwL3Zmc19pbm9kZS5jCkBAIC0xMzIsMTAgKzEzMiwxMCBAQAogLyoqCiAgKiB2OWZzX3VmbGFnczJvbW9kZS0gY29udmVydCBwb3NpeCBvcGVuIGZsYWdzIHRvIHBsYW4gOSBtb2RlIGJpdHMKICAqIEB1ZmxhZ3M6IGZsYWdzIHRvIGNvbnZlcnQKLSAqCisgKiBAZXh0ZW5kZWQ6IGlmIC51IGV4dGVuc2lvbnMgYXJlIGFjdGl2ZQogICovCiAKLWludCB2OWZzX3VmbGFnczJvbW9kZShpbnQgdWZsYWdzKQoraW50IHY5ZnNfdWZsYWdzMm9tb2RlKGludCB1ZmxhZ3MsIGludCBleHRlbmRlZCkKIHsKIAlpbnQgcmV0OwogCkBAIC0xNTUsMTQgKzE1NSwxNiBAQAogCQlicmVhazsKIAl9CiAKLQlpZiAodWZsYWdzICYgT19FWENMKQotCQlyZXQgfD0gUDlfT0VYQ0w7Ci0KIAlpZiAodWZsYWdzICYgT19UUlVOQykKIAkJcmV0IHw9IFA5X09UUlVOQzsKIAotCWlmICh1ZmxhZ3MgJiBPX0FQUEVORCkKLQkJcmV0IHw9IFA5X09BUFBFTkQ7CisJaWYgKGV4dGVuZGVkKSB7CisJCWlmICh1ZmxhZ3MgJiBPX0VYQ0wpCisJCQlyZXQgfD0gUDlfT0VYQ0w7CisKKwkJaWYgKHVmbGFncyAmIE9fQVBQRU5EKQorCQkJcmV0IHw9IFA5X09BUFBFTkQ7CisJfQogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTUwNiw3ICs1MDgsNyBAQAogCQlmbGFncyA9IE9fUkRXUjsKIAogCWZpZCA9IHY5ZnNfY3JlYXRlKHY5c2VzLCBkaXIsIGRlbnRyeSwgTlVMTCwgcGVybSwKLQkJCQkJCXY5ZnNfdWZsYWdzMm9tb2RlKGZsYWdzKSk7CisJCQkJdjlmc191ZmxhZ3Myb21vZGUoZmxhZ3MsIHY5ZnNfZXh0ZW5kZWQodjlzZXMpKSk7CiAJaWYgKElTX0VSUihmaWQpKSB7CiAJCWVyciA9IFBUUl9FUlIoZmlkKTsKIAkJZmlkID0gTlVMTDsKZGlmZiAtLWdpdCBhL2ZzL0tjb25maWcgYi9mcy9LY29uZmlnCmluZGV4IGNmMTJjNDAuLjMxM2IyZTAgMTAwNjQ0Ci0tLSBhL2ZzL0tjb25maWcKKysrIGIvZnMvS2NvbmZpZwpAQCAtODMwLDcgKzgzMCw3IEBACiAJICBmcm9tIHRoZSBwcm9qZWN0IHdlYiBzaXRlLgogCiAJICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgPGZpbGU6RG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9udGZzLnR4dD4KLQkgIGFuZCA8aHR0cDovL2xpbnV4LW50ZnMuc291cmNlZm9yZ2UubmV0Lz4uCisJICBhbmQgPGh0dHA6Ly93d3cubGludXgtbnRmcy5vcmcvPi4KIAogCSAgVG8gY29tcGlsZSB0aGlzIGZpbGUgc3lzdGVtIHN1cHBvcnQgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZQogCSAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIG50ZnMuCkBAIC05MzAsNyArOTMwLDcgQEAKIAogY29uZmlnIFBST0NfVk1DT1JFCiAgICAgICAgIGJvb2wgIi9wcm9jL3ZtY29yZSBzdXBwb3J0IChFWFBFUklNRU5UQUwpIgotICAgICAgICBkZXBlbmRzIG9uIFBST0NfRlMgJiYgRVhQRVJJTUVOVEFMICYmIENSQVNIX0RVTVAKKyAgICAgICAgZGVwZW5kcyBvbiBQUk9DX0ZTICYmIENSQVNIX0RVTVAKIAlkZWZhdWx0IHkKICAgICAgICAgaGVscAogICAgICAgICBFeHBvcnRzIHRoZSBkdW1wIGltYWdlIG9mIGNyYXNoZWQga2VybmVsIGluIEVMRiBmb3JtYXQuCmRpZmYgLS1naXQgYS9mcy9LY29uZmlnLmJpbmZtdCBiL2ZzL0tjb25maWcuYmluZm10CmluZGV4IDU1ZThlZTEuLjMyNjMwODQgMTAwNjQ0Ci0tLSBhL2ZzL0tjb25maWcuYmluZm10CisrKyBiL2ZzL0tjb25maWcuYmluZm10CkBAIC00Miw3ICs0Miw3IEBACiAKIGNvbmZpZyBCSU5GTVRfRkxBVAogCWJvb2wgIktlcm5lbCBzdXBwb3J0IGZvciBmbGF0IGJpbmFyaWVzIgotCWRlcGVuZHMgb24gIU1NVQorCWRlcGVuZHMgb24gIU1NVSAmJiAoIUZSViB8fCBCUk9LRU4pCiAJaGVscAogCSAgU3VwcG9ydCB1Q2xpbnV4IEZMQVQgZm9ybWF0IGJpbmFyaWVzLgogCmRpZmYgLS1naXQgYS9mcy9NYWtlZmlsZSBiL2ZzL01ha2VmaWxlCmluZGV4IDFlN2ExMWIuLjI3N2IwNzkgMTAwNjQ0Ci0tLSBhL2ZzL01ha2VmaWxlCisrKyBiL2ZzL01ha2VmaWxlCkBAIC0xOSw2ICsxOSw3IEBACiBvYmoteSArPQluby1ibG9jay5vCiBlbmRpZgogCitvYmotJChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpICs9IGJpby1pbnRlZ3JpdHkubwogb2JqLSQoQ09ORklHX0lOT1RJRlkpCQkrPSBpbm90aWZ5Lm8KIG9iai0kKENPTkZJR19JTk9USUZZX1VTRVIpCSs9IGlub3RpZnlfdXNlci5vCiBvYmotJChDT05GSUdfRVBPTEwpCQkrPSBldmVudHBvbGwubwpkaWZmIC0tZ2l0IGEvZnMvYWZzL2NhbGxiYWNrLmMgYi9mcy9hZnMvY2FsbGJhY2suYwppbmRleCBhNzhkNWIyLi41ODdlZjUxIDEwMDY0NAotLS0gYS9mcy9hZnMvY2FsbGJhY2suYworKysgYi9mcy9hZnMvY2FsbGJhY2suYwpAQCAtOCw3ICs4LDcgQEAKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KICAqCi0gKiBBdXRob3JzOiBEYXZpZCBXb29kaG91c2UgPGR3bXcyQGNhbWJyaWRnZS5yZWRoYXQuY29tPgorICogQXV0aG9yczogRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgogICogICAgICAgICAgRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVkaGF0LmNvbT4KICAqCiAgKi8KZGlmZiAtLWdpdCBhL2ZzL2Fmcy9pbm9kZS5jIGIvZnMvYWZzL2lub2RlLmMKaW5kZXggMDhkYjgyZS4uYmI0NzIxNyAxMDA2NDQKLS0tIGEvZnMvYWZzL2lub2RlLmMKKysrIGIvZnMvYWZzL2lub2RlLmMKQEAgLTgsNyArOCw3IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKgotICogQXV0aG9yczogRGF2aWQgV29vZGhvdXNlIDxkd213MkBjYW1icmlkZ2UucmVkaGF0LmNvbT4KKyAqIEF1dGhvcnM6IERhdmlkIFdvb2Rob3VzZSA8ZHdtdzJAaW5mcmFkZWFkLm9yZz4KICAqICAgICAgICAgIERhdmlkIEhvd2VsbHMgPGRob3dlbGxzQHJlZGhhdC5jb20+CiAgKgogICovCmRpZmYgLS1naXQgYS9mcy9hZnMvc3VwZXIuYyBiL2ZzL2Fmcy9zdXBlci5jCmluZGV4IDRiNTcyYjguLjdlM2ZhZWUgMTAwNjQ0Ci0tLSBhL2ZzL2Fmcy9zdXBlci5jCisrKyBiL2ZzL2Fmcy9zdXBlci5jCkBAIC0xMCw3ICsxMCw3IEBACiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KICAqCiAgKiBBdXRob3JzOiBEYXZpZCBIb3dlbGxzIDxkaG93ZWxsc0ByZWRoYXQuY29tPgotICogICAgICAgICAgRGF2aWQgV29vZGhvdXNlIDxkd213MkByZWRoYXQuY29tPgorICogICAgICAgICAgRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgogICoKICAqLwogCmRpZmYgLS1naXQgYS9mcy9haW8uYyBiL2ZzL2Fpby5jCmluZGV4IGI1MjUzZTcuLjBmYjMxMTcgMTAwNjQ0Ci0tLSBhL2ZzL2Fpby5jCisrKyBiL2ZzL2Fpby5jCkBAIC01OTEsMTAgKzU5MSw2IEBACiAJYXRvbWljX2luYygmbW0tPm1tX2NvdW50KTsKIAl0c2stPm1tID0gbW07CiAJdHNrLT5hY3RpdmVfbW0gPSBtbTsKLQkvKgotCSAqIE5vdGUgdGhhdCBvbiBVTUwgdGhpcyAqcmVxdWlyZXMqIFBGX0JPUlJPV0VEX01NIHRvIGJlIHNldCwgb3RoZXJ3aXNlCi0JICogaXQgd29uJ3Qgd29yay4gVXBkYXRlIGl0IGFjY29yZGluZ2x5IGlmIHlvdSBjaGFuZ2UgaXQgaGVyZQotCSAqLwogCXN3aXRjaF9tbShhY3RpdmVfbW0sIG1tLCB0c2spOwogCXRhc2tfdW5sb2NrKHRzayk7CiAKZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGYuYyBiL2ZzL2JpbmZtdF9lbGYuYwppbmRleCAwZmE5NWIxLi5kNDhmZjVmMyAxMDA2NDQKLS0tIGEvZnMvYmluZm10X2VsZi5jCisrKyBiL2ZzL2JpbmZtdF9lbGYuYwpAQCAtMTYsNyArMTYsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9hLm91dC5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAjaW5jbHVkZSA8bGludXgvc2lnbmFsLmg+CiAjaW5jbHVkZSA8bGludXgvYmluZm10cy5oPgpAQCAtNTQ4LDcgKzU0Nyw2IEBACiAJc3RydWN0IHsKIAkJc3RydWN0IGVsZmhkciBlbGZfZXg7CiAJCXN0cnVjdCBlbGZoZHIgaW50ZXJwX2VsZl9leDsKLSAgCQlzdHJ1Y3QgZXhlYyBpbnRlcnBfZXg7CiAJfSAqbG9jOwogCiAJbG9jID0ga21hbGxvYyhzaXplb2YoKmxvYyksIEdGUF9LRVJORUwpOwpAQCAtNjgwLDcgKzY3OCw2IEBACiAJCQl9CiAKIAkJCS8qIEdldCB0aGUgZXhlYyBoZWFkZXJzICovCi0JCQlsb2MtPmludGVycF9leCA9ICooKHN0cnVjdCBleGVjICopYnBybS0+YnVmKTsKIAkJCWxvYy0+aW50ZXJwX2VsZl9leCA9ICooKHN0cnVjdCBlbGZoZHIgKilicHJtLT5idWYpOwogCQkJYnJlYWs7CiAJCX0KZGlmZiAtLWdpdCBhL2ZzL2JpbmZtdF9lbGZfZmRwaWMuYyBiL2ZzL2JpbmZtdF9lbGZfZmRwaWMuYwppbmRleCBkZGQzNWQ4Li5kMDUxYTMyIDEwMDY0NAotLS0gYS9mcy9iaW5mbXRfZWxmX2ZkcGljLmMKKysrIGIvZnMvYmluZm10X2VsZl9mZHBpYy5jCkBAIC0zOTAsNyArMzkwLDcgQEAKIAl9CiAKIAkvKiBleHBhbmQgdGhlIHN0YWNrIG1hcHBpbmcgdG8gdXNlIHVwIHRoZSBlbnRpcmUgYWxsb2NhdGlvbiBncmFudWxlICovCi0JZnVsbHNpemUgPSBrc2l6ZSgoY2hhciAqKSBjdXJyZW50LT5tbS0+c3RhcnRfYnJrKTsKKwlmdWxsc2l6ZSA9IGtvYmpzaXplKChjaGFyICopIGN1cnJlbnQtPm1tLT5zdGFydF9icmspOwogCWlmICghSVNfRVJSX1ZBTFVFKGRvX21yZW1hcChjdXJyZW50LT5tbS0+c3RhcnRfYnJrLCBzdGFja19zaXplLAogCQkJCSAgICBmdWxsc2l6ZSwgMCwgMCkpKQogCQlzdGFja19zaXplID0gZnVsbHNpemU7CmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfZmxhdC5jIGIvZnMvYmluZm10X2ZsYXQuYwppbmRleCAzYjQwZDQ1Li4yY2IxYWNkIDEwMDY0NAotLS0gYS9mcy9iaW5mbXRfZmxhdC5jCisrKyBiL2ZzL2JpbmZtdF9mbGF0LmMKQEAgLTU0OCw3ICs1NDgsNyBAQAogCQkJUFJPVF9SRUFEfFBST1RfV1JJVEV8UFJPVF9FWEVDLCBNQVBfUFJJVkFURSwgMCk7CiAJCS8qIFJlbWFwIHRvIHVzZSBhbGwgYXZhaWxhYmUgc2xhY2sgcmVnaW9uIHNwYWNlICovCiAJCWlmIChyZWFsZGF0YXN0YXJ0ICYmIChyZWFsZGF0YXN0YXJ0IDwgKHVuc2lnbmVkIGxvbmcpLTQwOTYpKSB7Ci0JCQlyZWFsbGVuID0ga3NpemUoKHZvaWQgKilyZWFsZGF0YXN0YXJ0KTsKKwkJCXJlYWxsZW4gPSBrb2Jqc2l6ZSgodm9pZCAqKXJlYWxkYXRhc3RhcnQpOwogCQkJaWYgKHJlYWxsZW4gPiBsZW4pIHsKIAkJCQlyZWFsZGF0YXN0YXJ0ID0gZG9fbXJlbWFwKHJlYWxkYXRhc3RhcnQsIGxlbiwKIAkJCQkJcmVhbGxlbiwgTVJFTUFQX0ZJWEVELCByZWFsZGF0YXN0YXJ0KTsKQEAgLTYwMCw3ICs2MDAsNyBAQAogCQkJUFJPVF9SRUFEIHwgUFJPVF9FWEVDIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUsIDApOwogCQkvKiBSZW1hcCB0byB1c2UgYWxsIGF2YWlsYWJlIHNsYWNrIHJlZ2lvbiBzcGFjZSAqLwogCQlpZiAodGV4dHBvcyAmJiAodGV4dHBvcyA8ICh1bnNpZ25lZCBsb25nKSAtNDA5NikpIHsKLQkJCXJlYWxsZW4gPSBrc2l6ZSgodm9pZCAqKXRleHRwb3MpOworCQkJcmVhbGxlbiA9IGtvYmpzaXplKCh2b2lkICopdGV4dHBvcyk7CiAJCQlpZiAocmVhbGxlbiA+IGxlbikgewogCQkJCXRleHRwb3MgPSBkb19tcmVtYXAodGV4dHBvcywgbGVuLCByZWFsbGVuLAogCQkJCQlNUkVNQVBfRklYRUQsIHRleHRwb3MpOwpAQCAtNjgzLDcgKzY4Myw3IEBACiAJCSAqLwogCQljdXJyZW50LT5tbS0+c3RhcnRfYnJrID0gZGF0YXBvcyArIGRhdGFfbGVuICsgYnNzX2xlbjsKIAkJY3VycmVudC0+bW0tPmJyayA9IChjdXJyZW50LT5tbS0+c3RhcnRfYnJrICsgMykgJiB+MzsKLQkJY3VycmVudC0+bW0tPmNvbnRleHQuZW5kX2JyayA9IG1lbXAgKyBrc2l6ZSgodm9pZCAqKSBtZW1wKSAtIHN0YWNrX2xlbjsKKwkJY3VycmVudC0+bW0tPmNvbnRleHQuZW5kX2JyayA9IG1lbXAgKyBrb2Jqc2l6ZSgodm9pZCAqKSBtZW1wKSAtIHN0YWNrX2xlbjsKIAl9CiAKIAlpZiAoZmxhZ3MgJiBGTEFUX0ZMQUdfS1RSQUNFKQpAQCAtNzkwLDcgKzc5MCw3IEBACiAKIAkvKiB6ZXJvIHRoZSBCU1MsICBCUksgYW5kIHN0YWNrIGFyZWFzICovCiAJbWVtc2V0KCh2b2lkKikoZGF0YXBvcyArIGRhdGFfbGVuKSwgMCwgYnNzX2xlbiArIAotCQkJKG1lbXAgKyBrc2l6ZSgodm9pZCAqKSBtZW1wKSAtIHN0YWNrX2xlbiAtCS8qIGVuZCBicmsgKi8KKwkJCShtZW1wICsga29ianNpemUoKHZvaWQgKikgbWVtcCkgLSBzdGFja19sZW4gLQkvKiBlbmQgYnJrICovCiAJCQlsaWJpbmZvLT5saWJfbGlzdFtpZF0uc3RhcnRfYnJrKSArCQkvKiBzdGFydCBicmsgKi8KIAkJCXN0YWNrX2xlbik7CiAKZGlmZiAtLWdpdCBhL2ZzL2Jpby1pbnRlZ3JpdHkuYyBiL2ZzL2Jpby1pbnRlZ3JpdHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2UyZWU2Ci0tLSAvZGV2L251bGwKKysrIGIvZnMvYmlvLWludGVncml0eS5jCkBAIC0wLDAgKzEsNzE5IEBACisvKgorICogYmlvLWludGVncml0eS5jIC0gYmlvIGRhdGEgaW50ZWdyaXR5IGV4dGVuc2lvbnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggT3JhY2xlIENvcnBvcmF0aW9uCisgKiBXcml0dGVuIGJ5OiBNYXJ0aW4gSy4gUGV0ZXJzZW4gPG1hcnRpbi5wZXRlcnNlbkBvcmFjbGUuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24KKyAqIDIgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LAorICogVVNBLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvYmxrZGV2Lmg+CisjaW5jbHVkZSA8bGludXgvbWVtcG9vbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Jpby5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorCitzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKmJpb19pbnRlZ3JpdHlfc2xhYiBfX3JlYWRfbW9zdGx5Oworc3RhdGljIHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICpraW50ZWdyaXR5ZF93cTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jX2Jpb3NldCAtIEFsbG9jYXRlIGludGVncml0eSBwYXlsb2FkIGFuZCBhdHRhY2ggaXQgdG8gYmlvCisgKiBAYmlvOgliaW8gdG8gYXR0YWNoIGludGVncml0eSBtZXRhZGF0YSB0bworICogQGdmcF9tYXNrOglNZW1vcnkgYWxsb2NhdGlvbiBtYXNrCisgKiBAbnJfdmVjczoJTnVtYmVyIG9mIGludGVncml0eSBtZXRhZGF0YSBzY2F0dGVyLWdhdGhlciBlbGVtZW50cworICogQGJzOgkJYmlvX3NldCB0byBhbGxvY2F0ZSBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoc3RydWN0IGJpbyAqYmlvLAorCQkJCQkJCSBnZnBfdCBnZnBfbWFzaywKKwkJCQkJCQkgdW5zaWduZWQgaW50IG5yX3ZlY3MsCisJCQkJCQkJIHN0cnVjdCBiaW9fc2V0ICpicykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisJc3RydWN0IGJpb192ZWMgKml2OworCXVuc2lnbmVkIGxvbmcgaWR4OworCisJQlVHX09OKGJpbyA9PSBOVUxMKTsKKworCWJpcCA9IG1lbXBvb2xfYWxsb2MoYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCwgZ2ZwX21hc2spOworCWlmICh1bmxpa2VseShiaXAgPT0gTlVMTCkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICIlczogY291bGQgbm90IGFsbG9jIGJpcFxuIiwgX19mdW5jX18pOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwltZW1zZXQoYmlwLCAwLCBzaXplb2YoKmJpcCkpOworCisJaXYgPSBidmVjX2FsbG9jX2JzKGdmcF9tYXNrLCBucl92ZWNzLCAmaWR4LCBicyk7CisJaWYgKHVubGlrZWx5KGl2ID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IGNvdWxkIG5vdCBhbGxvYyBiaXBfdmVjXG4iLCBfX2Z1bmNfXyk7CisJCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwliaXAtPmJpcF9wb29sID0gaWR4OworCWJpcC0+YmlwX3ZlYyA9IGl2OworCWJpcC0+YmlwX2JpbyA9IGJpbzsKKwliaW8tPmJpX2ludGVncml0eSA9IGJpcDsKKworCXJldHVybiBiaXA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2FsbG9jIC0gQWxsb2NhdGUgaW50ZWdyaXR5IHBheWxvYWQgYW5kIGF0dGFjaCBpdCB0byBiaW8KKyAqIEBiaW86CWJpbyB0byBhdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhIHRvCisgKiBAZ2ZwX21hc2s6CU1lbW9yeSBhbGxvY2F0aW9uIG1hc2sKKyAqIEBucl92ZWNzOglOdW1iZXIgb2YgaW50ZWdyaXR5IG1ldGFkYXRhIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnRzCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gcHJlcGFyZXMgYSBiaW8gZm9yIGF0dGFjaGluZyBpbnRlZ3JpdHkKKyAqIG1ldGFkYXRhLiAgbnJfdmVjcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHBhZ2VzIGNvbnRhaW5pbmcKKyAqIGludGVncml0eSBtZXRhZGF0YSB0aGF0IGNhbiBiZSBhdHRhY2hlZC4KKyAqLworc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlvX2ludGVncml0eV9hbGxvYyhzdHJ1Y3QgYmlvICpiaW8sCisJCQkJCQkgIGdmcF90IGdmcF9tYXNrLAorCQkJCQkJICB1bnNpZ25lZCBpbnQgbnJfdmVjcykKK3sKKwlyZXR1cm4gYmlvX2ludGVncml0eV9hbGxvY19iaW9zZXQoYmlvLCBnZnBfbWFzaywgbnJfdmVjcywgZnNfYmlvX3NldCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWxsb2MpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZnJlZSAtIEZyZWUgYmlvIGludGVncml0eSBwYXlsb2FkCisgKiBAYmlvOgliaW8gY29udGFpbmluZyBiaXAgdG8gYmUgZnJlZWQKKyAqIEBiczoJCWJpb19zZXQgdGhpcyBiaW8gd2FzIGFsbG9jYXRlZCBmcm9tCisgKgorICogRGVzY3JpcHRpb246IFVzZWQgdG8gZnJlZSB0aGUgaW50ZWdyaXR5IHBvcnRpb24gb2YgYSBiaW8uIFVzdWFsbHkKKyAqIGNhbGxlZCBmcm9tIGJpb19mcmVlKCkuCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9mcmVlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IGJpb19zZXQgKmJzKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKworCS8qIEEgY2xvbmVkIGJpbyBkb2Vzbid0IG93biB0aGUgaW50ZWdyaXR5IG1ldGFkYXRhICovCisJaWYgKCFiaW9fZmxhZ2dlZChiaW8sIEJJT19DTE9ORUQpICYmIGJpcC0+YmlwX2J1ZiAhPSBOVUxMKQorCQlrZnJlZShiaXAtPmJpcF9idWYpOworCisJbWVtcG9vbF9mcmVlKGJpcC0+YmlwX3ZlYywgYnMtPmJ2ZWNfcG9vbHNbYmlwLT5iaXBfcG9vbF0pOworCW1lbXBvb2xfZnJlZShiaXAsIGJzLT5iaW9faW50ZWdyaXR5X3Bvb2wpOworCisJYmlvLT5iaV9pbnRlZ3JpdHkgPSBOVUxMOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X2ZyZWUpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UgLSBBdHRhY2ggaW50ZWdyaXR5IG1ldGFkYXRhCisgKiBAYmlvOgliaW8gdG8gdXBkYXRlCisgKiBAcGFnZToJcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YQorICogQGxlbjoJbnVtYmVyIG9mIGJ5dGVzIG9mIGludGVncml0eSBtZXRhZGF0YSBpbiBwYWdlCisgKiBAb2Zmc2V0OglzdGFydCBvZmZzZXQgd2l0aGluIHBhZ2UKKyAqCisgKiBEZXNjcmlwdGlvbjogQXR0YWNoIGEgcGFnZSBjb250YWluaW5nIGludGVncml0eSBtZXRhZGF0YSB0byBiaW8uCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKHN0cnVjdCBiaW8gKmJpbywgc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkgICB1bnNpZ25lZCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgb2Zmc2V0KQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBiaW9fdmVjICppdjsKKworCWlmIChiaXAtPmJpcF92Y250ID49IGJ2ZWNfbnJfdmVjcyhiaXAtPmJpcF9wb29sKSkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzOiBiaXBfdmVjIGZ1bGxcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIDA7CisJfQorCisJaXYgPSBiaXBfdmVjX2lkeChiaXAsIGJpcC0+YmlwX3ZjbnQpOworCUJVR19PTihpdiA9PSBOVUxMKTsKKwlCVUdfT04oaXYtPmJ2X3BhZ2UgIT0gTlVMTCk7CisKKwlpdi0+YnZfcGFnZSA9IHBhZ2U7CisJaXYtPmJ2X2xlbiA9IGxlbjsKKwlpdi0+YnZfb2Zmc2V0ID0gb2Zmc2V0OworCWJpcC0+YmlwX3ZjbnQrKzsKKworCXJldHVybiBsZW47Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfYWRkX3BhZ2UpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZW5hYmxlZCAtIENoZWNrIHdoZXRoZXIgaW50ZWdyaXR5IGNhbiBiZSBwYXNzZWQKKyAqIEBiaW86CWJpbyB0byBjaGVjaworICoKKyAqIERlc2NyaXB0aW9uOiBEZXRlcm1pbmVzIHdoZXRoZXIgYmlvX2ludGVncml0eV9wcmVwKCkgY2FuIGJlIGNhbGxlZAorICogb24gdGhpcyBiaW8gb3Igbm90LgliaW8gZGF0YSBkaXJlY3Rpb24gYW5kIHRhcmdldCBkZXZpY2UgbXVzdCBiZQorICogc2V0IHByaW9yIHRvIGNhbGxpbmcuICBUaGUgZnVuY3Rpb25zIGhvbm9ycyB0aGUgd3JpdGVfZ2VuZXJhdGUgYW5kCisgKiByZWFkX3ZlcmlmeSBmbGFncyBpbiBzeXNmcy4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZW5hYmxlZChzdHJ1Y3QgYmlvICpiaW8pCit7CisJLyogQWxyZWFkeSBwcm90ZWN0ZWQ/ICovCisJaWYgKGJpb19pbnRlZ3JpdHkoYmlvKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gYmRldl9pbnRlZ3JpdHlfZW5hYmxlZChiaW8tPmJpX2JkZXYsIGJpb19kYXRhX2RpcihiaW8pKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9lbmFibGVkKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2h3X3NlY3RvcnMgLSBDb252ZXJ0IDUxMmIgc2VjdG9ycyB0byBoYXJkd2FyZSBkaXR0bworICogQGJpOgkJYmxrX2ludGVncml0eSBwcm9maWxlIGZvciBkZXZpY2UKKyAqIEBzZWN0b3JzOglOdW1iZXIgb2YgNTEyIHNlY3RvcnMgdG8gY29udmVydAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGUgYmxvY2sgbGF5ZXIgY2FsY3VsYXRlcyBldmVyeXRoaW5nIGluIDUxMiBieXRlCisgKiBzZWN0b3JzIGJ1dCBpbnRlZ3JpdHkgbWV0YWRhdGEgaXMgZG9uZSBpbiB0ZXJtcyBvZiB0aGUgaGFyZHdhcmUKKyAqIHNlY3RvciBzaXplIG9mIHRoZSBzdG9yYWdlIGRldmljZS4gIENvbnZlcnQgdGhlIGJsb2NrIGxheWVyIHNlY3RvcnMKKyAqIHRvIHBoeXNpY2FsIHNlY3RvcnMuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmksCisJCQkJCQkgICAgdW5zaWduZWQgaW50IHNlY3RvcnMpCit7CisJLyogQXQgdGhpcyBwb2ludCB0aGVyZSBhcmUgb25seSA1MTJiIG9yIDQwOTZiIERJRi9FUFAgZGV2aWNlcyAqLworCWlmIChiaS0+c2VjdG9yX3NpemUgPT0gNDA5NikKKwkJcmV0dXJuIHNlY3RvcnMgPj49IDM7CisKKwlyZXR1cm4gc2VjdG9yczsKK30KKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplIC0gUmV0cmlldmUgaW50ZWdyaXR5IHRhZyBzcGFjZQorICogQGJpbzoJYmlvIHRvIGluc3BlY3QKKyAqCisgKiBEZXNjcmlwdGlvbjogUmV0dXJucyB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGFnIGJ5dGVzIHRoYXQgY2FuIGJlCisgKiBhdHRhY2hlZCB0byB0aGlzIGJpby4gRmlsZXN5c3RlbXMgY2FuIHVzZSB0aGlzIHRvIGRldGVybWluZSBob3cKKyAqIG11Y2ggbWV0YWRhdGEgdG8gYXR0YWNoIHRvIGFuIEkvTy4KKyAqLwordW5zaWduZWQgaW50IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCisJQlVHX09OKGJpby0+Ymlfc2l6ZSA9PSAwKTsKKworCXJldHVybiBiaS0+dGFnX3NpemUgKiAoYmlvLT5iaV9zaXplIC8gYmktPnNlY3Rvcl9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV90YWdfc2l6ZSk7CisKK2ludCBiaW9faW50ZWdyaXR5X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4sIGludCBzZXQpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlCVUdfT04oYmlwLT5iaXBfYnVmID09IE5VTEwpOworCisJaWYgKGJpLT50YWdfc2l6ZSA9PSAwKQorCQlyZXR1cm4gLTE7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLAorCQkJCQlESVZfUk9VTkRfVVAobGVuLCBiaS0+dGFnX3NpemUpKTsKKworCWlmIChucl9zZWN0b3JzICogYmktPnR1cGxlX3NpemUgPiBiaXAtPmJpcF9zaXplKSB7CisJCXByaW50ayhLRVJOX0VSUiAiJXM6IHRhZyB0b28gYmlnIGZvciBiaW86ICV1ID4gJXVcbiIsCisJCSAgICAgICBfX2Z1bmNfXywgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplLCBiaXAtPmJpcF9zaXplKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChzZXQpCisJCWJpLT5zZXRfdGFnX2ZuKGJpcC0+YmlwX2J1ZiwgdGFnX2J1ZiwgbnJfc2VjdG9ycyk7CisJZWxzZQorCQliaS0+Z2V0X3RhZ19mbihiaXAtPmJpcF9idWYsIHRhZ19idWYsIG5yX3NlY3RvcnMpOworCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9zZXRfdGFnIC0gQXR0YWNoIGEgdGFnIGJ1ZmZlciB0byBhIGJpbworICogQGJpbzoJYmlvIHRvIGF0dGFjaCBidWZmZXIgdG8KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgaW5jbHVkZWQgYnVmZmVyCisgKgorICogRGVzY3JpcHRpb246IFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHRhZyBhIGJpbyBieSBsZXZlcmFnaW5nIHRoZSBleHRyYQorICogc3BhY2UgcHJvdmlkZWQgYnkgZGV2aWNlcyBmb3JtYXR0ZWQgd2l0aCBpbnRlZ3JpdHkgcHJvdGVjdGlvbi4gIFRoZQorICogc2l6ZSBvZiB0aGUgaW50ZWdyaXR5IGJ1ZmZlciBtdXN0IGJlIDw9IHRvIHRoZSBzaXplIHJlcG9ydGVkIGJ5CisgKiBiaW9faW50ZWdyaXR5X3RhZ19zaXplKCkuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3NldF90YWcoc3RydWN0IGJpbyAqYmlvLCB2b2lkICp0YWdfYnVmLCB1bnNpZ25lZCBpbnQgbGVuKQoreworCUJVR19PTihiaW9fZGF0YV9kaXIoYmlvKSAhPSBXUklURSk7CisKKwlyZXR1cm4gYmlvX2ludGVncml0eV90YWcoYmlvLCB0YWdfYnVmLCBsZW4sIDEpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3NldF90YWcpOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyAtIFJldHJpZXZlIGEgdGFnIGJ1ZmZlciBmcm9tIGEgYmlvCisgKiBAYmlvOgliaW8gdG8gcmV0cmlldmUgYnVmZmVyIGZyb20KKyAqIEB0YWdfYnVmOglQb2ludGVyIHRvIGEgYnVmZmVyIGZvciB0aGUgdGFnIGRhdGEKKyAqIEBsZW46CUxlbmd0aCBvZiB0aGUgdGFyZ2V0IGJ1ZmZlcgorICoKKyAqIERlc2NyaXB0aW9uOiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgdGFnIGJ1ZmZlciBmcm9tIGEKKyAqIGNvbXBsZXRlZCBJL08uIFRoZSBzaXplIG9mIHRoZSBpbnRlZ3JpdHkgYnVmZmVyIG11c3QgYmUgPD0gdG8gdGhlCisgKiBzaXplIHJlcG9ydGVkIGJ5IGJpb19pbnRlZ3JpdHlfdGFnX3NpemUoKS4KKyAqLworaW50IGJpb19pbnRlZ3JpdHlfZ2V0X3RhZyhzdHJ1Y3QgYmlvICpiaW8sIHZvaWQgKnRhZ19idWYsIHVuc2lnbmVkIGludCBsZW4pCit7CisJQlVHX09OKGJpb19kYXRhX2RpcihiaW8pICE9IFJFQUQpOworCisJcmV0dXJuIGJpb19pbnRlZ3JpdHlfdGFnKGJpbywgdGFnX2J1ZiwgbGVuLCAwKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9nZXRfdGFnKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X2dlbmVyYXRlIC0gR2VuZXJhdGUgaW50ZWdyaXR5IG1ldGFkYXRhIGZvciBhIGJpbworICogQGJpbzoJYmlvIHRvIGdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBmb3IKKyAqCisgKiBEZXNjcmlwdGlvbjogR2VuZXJhdGVzIGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8gYnkgY2FsbGluZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGdlbmVyYXRpb24gY2FsbGJhY2sgZnVuY3Rpb24uICBUaGUgYmlvIG11c3QgaGF2ZSBhCisgKiBiaXAgYXR0YWNoZWQgd2l0aCBlbm91Z2ggcm9vbSB0byBhY2NvbW1vZGF0ZSB0aGUgZ2VuZXJhdGVkCisgKiBpbnRlZ3JpdHkgbWV0YWRhdGEuCisgKi8KK3N0YXRpYyB2b2lkIGJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnIGJpeDsKKwlzdHJ1Y3QgYmlvX3ZlYyAqYnY7CisJc2VjdG9yX3Qgc2VjdG9yID0gYmlvLT5iaV9zZWN0b3I7CisJdW5zaWduZWQgaW50IGksIHNlY3RvcnMsIHRvdGFsOworCXZvaWQgKnByb3RfYnVmID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9idWY7CisKKwl0b3RhbCA9IDA7CisJYml4LmRpc2tfbmFtZSA9IGJpby0+YmlfYmRldi0+YmRfZGlzay0+ZGlza19uYW1lOworCWJpeC5zZWN0b3Jfc2l6ZSA9IGJpLT5zZWN0b3Jfc2l6ZTsKKworCWJpb19mb3JfZWFjaF9zZWdtZW50KGJ2LCBiaW8sIGkpIHsKKwkJdm9pZCAqa2FkZHIgPSBrbWFwX2F0b21pYyhidi0+YnZfcGFnZSwgS01fVVNFUjApOworCQliaXguZGF0YV9idWYgPSBrYWRkciArIGJ2LT5idl9vZmZzZXQ7CisJCWJpeC5kYXRhX3NpemUgPSBidi0+YnZfbGVuOworCQliaXgucHJvdF9idWYgPSBwcm90X2J1ZjsKKwkJYml4LnNlY3RvciA9IHNlY3RvcjsKKworCQliaS0+Z2VuZXJhdGVfZm4oJmJpeCk7CisKKwkJc2VjdG9ycyA9IGJ2LT5idl9sZW4gLyBiaS0+c2VjdG9yX3NpemU7CisJCXNlY3RvciArPSBzZWN0b3JzOworCQlwcm90X2J1ZiArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCXRvdGFsICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwkJQlVHX09OKHRvdGFsID4gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zaXplKTsKKworCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfcHJlcCAtIFByZXBhcmUgYmlvIGZvciBpbnRlZ3JpdHkgSS9PCisgKiBAYmlvOgliaW8gdG8gcHJlcGFyZQorICoKKyAqIERlc2NyaXB0aW9uOiBBbGxvY2F0ZXMgYSBidWZmZXIgZm9yIGludGVncml0eSBtZXRhZGF0YSwgbWFwcyB0aGUKKyAqIHBhZ2VzIGFuZCBhdHRhY2hlcyB0aGVtIHRvIGEgYmlvLiAgVGhlIGJpbyBtdXN0IGhhdmUgZGF0YQorICogZGlyZWN0aW9uLCB0YXJnZXQgZGV2aWNlIGFuZCBzdGFydCBzZWN0b3Igc2V0IHByaW90IHRvIGNhbGxpbmcuICBJbgorICogdGhlIFdSSVRFIGNhc2UsIGludGVncml0eSBtZXRhZGF0YSB3aWxsIGJlIGdlbmVyYXRlZCB1c2luZyB0aGUKKyAqIGJsb2NrIGRldmljZSdzIGludGVncml0eSBmdW5jdGlvbi4gIEluIHRoZSBSRUFEIGNhc2UsIHRoZSBidWZmZXIKKyAqIHdpbGwgYmUgcHJlcGFyZWQgZm9yIERNQSBhbmQgYSBzdWl0YWJsZSBlbmRfaW8gaGFuZGxlciBzZXQgdXAuCisgKi8KK2ludCBiaW9faW50ZWdyaXR5X3ByZXAoc3RydWN0IGJpbyAqYmlvKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcDsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IHJlcXVlc3RfcXVldWUgKnE7CisJdm9pZCAqYnVmOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKKwl1bnNpZ25lZCBpbnQgbGVuLCBucl9wYWdlczsKKwl1bnNpZ25lZCBpbnQgYnl0ZXMsIG9mZnNldCwgaTsKKwl1bnNpZ25lZCBpbnQgc2VjdG9yczsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJcSA9IGJkZXZfZ2V0X3F1ZXVlKGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaW9faW50ZWdyaXR5KGJpbykpOworCisJc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgYmlvX3NlY3RvcnMoYmlvKSk7CisKKwkvKiBBbGxvY2F0ZSBrZXJuZWwgYnVmZmVyIGZvciBwcm90ZWN0aW9uIGRhdGEgKi8KKwlsZW4gPSBzZWN0b3JzICogYmxrX2ludGVncml0eV90dXBsZV9zaXplKGJpKTsKKwlidWYgPSBrbWFsbG9jKGxlbiwgR0ZQX05PSU8gfCBfX0dGUF9OT0ZBSUwgfCBxLT5ib3VuY2VfZ2ZwKTsKKwlpZiAodW5saWtlbHkoYnVmID09IE5VTEwpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiY291bGQgbm90IGFsbG9jYXRlIGludGVncml0eSBidWZmZXJcbiIpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwllbmQgPSAoKCh1bnNpZ25lZCBsb25nKSBidWYpICsgbGVuICsgUEFHRV9TSVpFIC0gMSkgPj4gUEFHRV9TSElGVDsKKwlzdGFydCA9ICgodW5zaWduZWQgbG9uZykgYnVmKSA+PiBQQUdFX1NISUZUOworCW5yX3BhZ2VzID0gZW5kIC0gc3RhcnQ7CisKKwkvKiBBbGxvY2F0ZSBiaW8gaW50ZWdyaXR5IHBheWxvYWQgYW5kIGludGVncml0eSB2ZWN0b3JzICovCisJYmlwID0gYmlvX2ludGVncml0eV9hbGxvYyhiaW8sIEdGUF9OT0lPLCBucl9wYWdlcyk7CisJaWYgKHVubGlrZWx5KGJpcCA9PSBOVUxMKSkgeworCQlwcmludGsoS0VSTl9FUlIgImNvdWxkIG5vdCBhbGxvY2F0ZSBkYXRhIGludGVncml0eSBiaW9zZXRcbiIpOworCQlrZnJlZShidWYpOworCQlyZXR1cm4gLUVJTzsKKwl9CisKKwliaXAtPmJpcF9idWYgPSBidWY7CisJYmlwLT5iaXBfc2l6ZSA9IGxlbjsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaW8tPmJpX3NlY3RvcjsKKworCS8qIE1hcCBpdCAqLworCW9mZnNldCA9IG9mZnNldF9pbl9wYWdlKGJ1Zik7CisJZm9yIChpID0gMCA7IGkgPCBucl9wYWdlcyA7IGkrKykgeworCQlpbnQgcmV0OworCQlieXRlcyA9IFBBR0VfU0laRSAtIG9mZnNldDsKKworCQlpZiAobGVuIDw9IDApCisJCQlicmVhazsKKworCQlpZiAoYnl0ZXMgPiBsZW4pCisJCQlieXRlcyA9IGxlbjsKKworCQlyZXQgPSBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKGJpbywgdmlydF90b19wYWdlKGJ1ZiksCisJCQkJCSAgICAgYnl0ZXMsIG9mZnNldCk7CisKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0dXJuIDA7CisKKwkJaWYgKHJldCA8IGJ5dGVzKQorCQkJYnJlYWs7CisKKwkJYnVmICs9IGJ5dGVzOworCQlsZW4gLT0gYnl0ZXM7CisJCW9mZnNldCA9IDA7CisJfQorCisJLyogSW5zdGFsbCBjdXN0b20gSS9PIGNvbXBsZXRpb24gaGFuZGxlciBpZiByZWFkIHZlcmlmeSBpcyBlbmFibGVkICovCisJaWYgKGJpb19kYXRhX2RpcihiaW8pID09IFJFQUQpIHsKKwkJYmlwLT5iaXBfZW5kX2lvID0gYmlvLT5iaV9lbmRfaW87CisJCWJpby0+YmlfZW5kX2lvID0gYmlvX2ludGVncml0eV9lbmRpbzsKKwl9CisKKwkvKiBBdXRvLWdlbmVyYXRlIGludGVncml0eSBtZXRhZGF0YSBpZiB0aGlzIGlzIGEgd3JpdGUgKi8KKwlpZiAoYmlvX2RhdGFfZGlyKGJpbykgPT0gV1JJVEUpCisJCWJpb19pbnRlZ3JpdHlfZ2VuZXJhdGUoYmlvKTsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3ByZXApOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfdmVyaWZ5IC0gVmVyaWZ5IGludGVncml0eSBtZXRhZGF0YSBmb3IgYSBiaW8KKyAqIEBiaW86CWJpbyB0byB2ZXJpZnkKKyAqCisgKiBEZXNjcmlwdGlvbjogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gdmVyaWZ5IHRoZSBpbnRlZ3JpdHkgb2YgYQorICogYmlvLgkgVGhlIGRhdGEgaW4gdGhlIGJpbyBpb192ZWMgaXMgY29tcGFyZWQgdG8gdGhlIGludGVncml0eQorICogbWV0YWRhdGEgcmV0dXJuZWQgYnkgdGhlIEhCQS4KKyAqLworc3RhdGljIGludCBiaW9faW50ZWdyaXR5X3ZlcmlmeShzdHJ1Y3QgYmlvICpiaW8pCit7CisJc3RydWN0IGJsa19pbnRlZ3JpdHkgKmJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJc3RydWN0IGJsa19pbnRlZ3JpdHlfZXhjaGcgYml4OworCXN0cnVjdCBiaW9fdmVjICpidjsKKwlzZWN0b3JfdCBzZWN0b3IgPSBiaW8tPmJpX2ludGVncml0eS0+YmlwX3NlY3RvcjsKKwl1bnNpZ25lZCBpbnQgaSwgc2VjdG9ycywgdG90YWwsIHJldDsKKwl2b2lkICpwcm90X2J1ZiA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfYnVmOworCisJcmV0ID0gdG90YWwgPSAwOworCWJpeC5kaXNrX25hbWUgPSBiaW8tPmJpX2JkZXYtPmJkX2Rpc2stPmRpc2tfbmFtZTsKKwliaXguc2VjdG9yX3NpemUgPSBiaS0+c2VjdG9yX3NpemU7CisKKwliaW9fZm9yX2VhY2hfc2VnbWVudChidiwgYmlvLCBpKSB7CisJCXZvaWQgKmthZGRyID0ga21hcF9hdG9taWMoYnYtPmJ2X3BhZ2UsIEtNX1VTRVIwKTsKKwkJYml4LmRhdGFfYnVmID0ga2FkZHIgKyBidi0+YnZfb2Zmc2V0OworCQliaXguZGF0YV9zaXplID0gYnYtPmJ2X2xlbjsKKwkJYml4LnByb3RfYnVmID0gcHJvdF9idWY7CisJCWJpeC5zZWN0b3IgPSBzZWN0b3I7CisKKwkJcmV0ID0gYmktPnZlcmlmeV9mbigmYml4KTsKKworCQlpZiAocmV0KSB7CisJCQlrdW5tYXBfYXRvbWljKGthZGRyLCBLTV9VU0VSMCk7CisJCQlicmVhazsKKwkJfQorCisJCXNlY3RvcnMgPSBidi0+YnZfbGVuIC8gYmktPnNlY3Rvcl9zaXplOworCQlzZWN0b3IgKz0gc2VjdG9yczsKKwkJcHJvdF9idWYgKz0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCQl0b3RhbCArPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisJCUJVR19PTih0b3RhbCA+IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2l6ZSk7CisKKwkJa3VubWFwX2F0b21pYyhrYWRkciwgS01fVVNFUjApOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV92ZXJpZnlfZm4gLSBJbnRlZ3JpdHkgSS9PIGNvbXBsZXRpb24gd29ya2VyCisgKiBAd29yazoJV29yayBzdHJ1Y3Qgc3RvcmVkIGluIGJpbyB0byBiZSB2ZXJpZmllZAorICoKKyAqIERlc2NyaXB0aW9uOiBUaGlzIHdvcmtxdWV1ZSBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gY29tcGxldGUgYSBSRUFECisgKiByZXF1ZXN0LiAgVGhlIGZ1bmN0aW9uIHZlcmlmaWVzIHRoZSB0cmFuc2ZlcnJlZCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIGFuZCB0aGVuIGNhbGxzIHRoZSBvcmlnaW5hbCBiaW8gZW5kX2lvIGZ1bmN0aW9uLgorICovCitzdGF0aWMgdm9pZCBiaW9faW50ZWdyaXR5X3ZlcmlmeV9mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQsIGJpcF93b3JrKTsKKwlzdHJ1Y3QgYmlvICpiaW8gPSBiaXAtPmJpcF9iaW87CisJaW50IGVycm9yID0gYmlwLT5iaXBfZXJyb3I7CisKKwlpZiAoYmlvX2ludGVncml0eV92ZXJpZnkoYmlvKSkgeworCQljbGVhcl9iaXQoQklPX1VQVE9EQVRFLCAmYmlvLT5iaV9mbGFncyk7CisJCWVycm9yID0gLUVJTzsKKwl9CisKKwkvKiBSZXN0b3JlIG9yaWdpbmFsIGJpbyBjb21wbGV0aW9uIGhhbmRsZXIgKi8KKwliaW8tPmJpX2VuZF9pbyA9IGJpcC0+YmlwX2VuZF9pbzsKKworCWlmIChiaW8tPmJpX2VuZF9pbykKKwkJYmlvLT5iaV9lbmRfaW8oYmlvLCBlcnJvcik7Cit9CisKKy8qKgorICogYmlvX2ludGVncml0eV9lbmRpbyAtIEludGVncml0eSBJL08gY29tcGxldGlvbiBmdW5jdGlvbgorICogQGJpbzoJUHJvdGVjdGVkIGJpbworICogQGVycm9yOglQb2ludGVyIHRvIGVycm5vCisgKgorICogRGVzY3JpcHRpb246IENvbXBsZXRpb24gZm9yIGludGVncml0eSBJL08KKyAqCisgKiBOb3JtYWxseSBJL08gY29tcGxldGlvbiBpcyBkb25lIGluIGludGVycnVwdCBjb250ZXh0LiAgSG93ZXZlciwKKyAqIHZlcmlmeWluZyBJL08gaW50ZWdyaXR5IGlzIGEgdGltZS1jb25zdW1pbmcgdGFzayB3aGljaCBtdXN0IGJlIHJ1bgorICogaW4gcHJvY2VzcyBjb250ZXh0LglUaGlzIGZ1bmN0aW9uIHBvc3Rwb25lcyBjb21wbGV0aW9uCisgKiBhY2NvcmRpbmdseS4KKyAqLwordm9pZCBiaW9faW50ZWdyaXR5X2VuZGlvKHN0cnVjdCBiaW8gKmJpbywgaW50IGVycm9yKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCisJQlVHX09OKGJpcC0+YmlwX2JpbyAhPSBiaW8pOworCisJYmlwLT5iaXBfZXJyb3IgPSBlcnJvcjsKKwlJTklUX1dPUksoJmJpcC0+YmlwX3dvcmssIGJpb19pbnRlZ3JpdHlfdmVyaWZ5X2ZuKTsKKwlxdWV1ZV93b3JrKGtpbnRlZ3JpdHlkX3dxLCAmYmlwLT5iaXBfd29yayk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb19pbnRlZ3JpdHlfZW5kaW8pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya19oZWFkIC0gQWR2YW5jZSBiaXBfdmVjIHNraXAgYnl0ZXMKKyAqIEBiaXA6CUludGVncml0eSB2ZWN0b3IgdG8gYWR2YW5jZQorICogQHNraXA6CU51bWJlciBvZiBieXRlcyB0byBhZHZhbmNlIGl0CisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX2hlYWQoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgc2tpcCkKK3sKKwlzdHJ1Y3QgYmlvX3ZlYyAqaXY7CisJdW5zaWduZWQgaW50IGk7CisKKwliaXBfZm9yX2VhY2hfdmVjKGl2LCBiaXAsIGkpIHsKKwkJaWYgKHNraXAgPT0gMCkgeworCQkJYmlwLT5iaXBfaWR4ID0gaTsKKwkJCXJldHVybjsKKwkJfSBlbHNlIGlmIChza2lwID49IGl2LT5idl9sZW4pIHsKKwkJCXNraXAgLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogc2tpcCA8IGl2LT5idl9sZW4pICovCisJCQlpdi0+YnZfb2Zmc2V0ICs9IHNraXA7CisJCQlpdi0+YnZfbGVuIC09IHNraXA7CisJCQliaXAtPmJpcF9pZHggPSBpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfbWFya190YWlsIC0gVHJ1bmNhdGUgYmlwX3ZlYyB0byBiZSBsZW4gYnl0ZXMgbG9uZworICogQGJpcDoJSW50ZWdyaXR5IHZlY3RvciB0byB0cnVuY2F0ZQorICogQGxlbjoJTmV3IGxlbmd0aCBvZiBpbnRlZ3JpdHkgdmVjdG9yCisgKi8KK3ZvaWQgYmlvX2ludGVncml0eV9tYXJrX3RhaWwoc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwLAorCQkJICAgICB1bnNpZ25lZCBpbnQgbGVuKQoreworCXN0cnVjdCBiaW9fdmVjICppdjsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWJpcF9mb3JfZWFjaF92ZWMoaXYsIGJpcCwgaSkgeworCQlpZiAobGVuID09IDApIHsKKwkJCWJpcC0+YmlwX3ZjbnQgPSBpOworCQkJcmV0dXJuOworCQl9IGVsc2UgaWYgKGxlbiA+PSBpdi0+YnZfbGVuKSB7CisJCQlsZW4gLT0gaXYtPmJ2X2xlbjsKKwkJfSBlbHNlIHsgLyogbGVuIDwgaXYtPmJ2X2xlbikgKi8KKwkJCWl2LT5idl9sZW4gPSBsZW47CisJCQlsZW4gPSAwOworCQl9CisJfQorfQorCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfYWR2YW5jZSAtIEFkdmFuY2UgaW50ZWdyaXR5IHZlY3RvcgorICogQGJpbzoJYmlvIHdob3NlIGludGVncml0eSB2ZWN0b3IgdG8gdXBkYXRlCisgKiBAYnl0ZXNfZG9uZToJbnVtYmVyIG9mIGRhdGEgYnl0ZXMgdGhhdCBoYXZlIGJlZW4gY29tcGxldGVkCisgKgorICogRGVzY3JpcHRpb246IFRoaXMgZnVuY3Rpb24gY2FsY3VsYXRlcyBob3cgbWFueSBpbnRlZ3JpdHkgYnl0ZXMgdGhlCisgKiBudW1iZXIgb2YgY29tcGxldGVkIGRhdGEgYnl0ZXMgY29ycmVzcG9uZCB0byBhbmQgYWR2YW5jZXMgdGhlCisgKiBpbnRlZ3JpdHkgdmVjdG9yIGFjY29yZGluZ2x5LgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBieXRlc19kb25lKQoreworCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpcCA9IGJpby0+YmlfaW50ZWdyaXR5OworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiaW8tPmJpX2JkZXYpOworCXVuc2lnbmVkIGludCBucl9zZWN0b3JzOworCisJQlVHX09OKGJpcCA9PSBOVUxMKTsKKwlCVUdfT04oYmkgPT0gTlVMTCk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBieXRlc19kb25lID4+IDkpOworCWJpb19pbnRlZ3JpdHlfbWFya19oZWFkKGJpcCwgbnJfc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9hZHZhbmNlKTsKKworLyoqCisgKiBiaW9faW50ZWdyaXR5X3RyaW0gLSBUcmltIGludGVncml0eSB2ZWN0b3IKKyAqIEBiaW86CWJpbyB3aG9zZSBpbnRlZ3JpdHkgdmVjdG9yIHRvIHVwZGF0ZQorICogQG9mZnNldDoJb2Zmc2V0IHRvIGZpcnN0IGRhdGEgc2VjdG9yCisgKiBAc2VjdG9yczoJbnVtYmVyIG9mIGRhdGEgc2VjdG9ycworICoKKyAqIERlc2NyaXB0aW9uOiBVc2VkIHRvIHRyaW0gdGhlIGludGVncml0eSB2ZWN0b3IgaW4gYSBjbG9uZWQgYmlvLgorICogVGhlIGl2ZWMgd2lsbCBiZSBhZHZhbmNlZCBjb3JyZXNwb25kaW5nIHRvICdvZmZzZXQnIGRhdGEgc2VjdG9ycworICogYW5kIHRoZSBsZW5ndGggd2lsbCBiZSB0cnVuY2F0ZWQgY29ycmVzcG9uZGluZyB0byAnbGVuJyBkYXRhCisgKiBzZWN0b3JzLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfdHJpbShzdHJ1Y3QgYmlvICpiaW8sIHVuc2lnbmVkIGludCBvZmZzZXQsCisJCQl1bnNpZ25lZCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXAgPSBiaW8tPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmlvLT5iaV9iZGV2KTsKKwl1bnNpZ25lZCBpbnQgbnJfc2VjdG9yczsKKworCUJVR19PTihiaXAgPT0gTlVMTCk7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTighYmlvX2ZsYWdnZWQoYmlvLCBCSU9fQ0xPTkVEKSk7CisKKwlucl9zZWN0b3JzID0gYmlvX2ludGVncml0eV9od19zZWN0b3JzKGJpLCBzZWN0b3JzKTsKKwliaXAtPmJpcF9zZWN0b3IgPSBiaXAtPmJpcF9zZWN0b3IgKyBvZmZzZXQ7CisJYmlvX2ludGVncml0eV9tYXJrX2hlYWQoYmlwLCBvZmZzZXQgKiBiaS0+dHVwbGVfc2l6ZSk7CisJYmlvX2ludGVncml0eV9tYXJrX3RhaWwoYmlwLCBzZWN0b3JzICogYmktPnR1cGxlX3NpemUpOworfQorRVhQT1JUX1NZTUJPTChiaW9faW50ZWdyaXR5X3RyaW0pOworCisvKioKKyAqIGJpb19pbnRlZ3JpdHlfc3BsaXQgLSBTcGxpdCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CVByb3RlY3RlZCBiaW8KKyAqIEBicDoJCVJlc3VsdGluZyBiaW9fcGFpcgorICogQHNlY3RvcnM6CU9mZnNldAorICoKKyAqIERlc2NyaXB0aW9uOiBTcGxpdHMgYW4gaW50ZWdyaXR5IHBhZ2UgaW50byBhIGJpb19wYWlyLgorICovCit2b2lkIGJpb19pbnRlZ3JpdHlfc3BsaXQoc3RydWN0IGJpbyAqYmlvLCBzdHJ1Y3QgYmlvX3BhaXIgKmJwLCBpbnQgc2VjdG9ycykKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmk7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwID0gYmlvLT5iaV9pbnRlZ3JpdHk7CisJdW5zaWduZWQgaW50IG5yX3NlY3RvcnM7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pID09IDApCisJCXJldHVybjsKKworCWJpID0gYmRldl9nZXRfaW50ZWdyaXR5KGJpby0+YmlfYmRldik7CisJQlVHX09OKGJpID09IE5VTEwpOworCUJVR19PTihiaXAtPmJpcF92Y250ICE9IDEpOworCisJbnJfc2VjdG9ycyA9IGJpb19pbnRlZ3JpdHlfaHdfc2VjdG9ycyhiaSwgc2VjdG9ycyk7CisKKwlicC0+YmlvMS5iaV9pbnRlZ3JpdHkgPSAmYnAtPmJpcDE7CisJYnAtPmJpbzIuYmlfaW50ZWdyaXR5ID0gJmJwLT5iaXAyOworCisJYnAtPml2MSA9IGJpcC0+YmlwX3ZlY1swXTsKKwlicC0+aXYyID0gYmlwLT5iaXBfdmVjWzBdOworCisJYnAtPmJpcDEuYmlwX3ZlYyA9ICZicC0+aXYxOworCWJwLT5iaXAyLmJpcF92ZWMgPSAmYnAtPml2MjsKKworCWJwLT5pdjEuYnZfbGVuID0gc2VjdG9ycyAqIGJpLT50dXBsZV9zaXplOworCWJwLT5pdjIuYnZfb2Zmc2V0ICs9IHNlY3RvcnMgKiBiaS0+dHVwbGVfc2l6ZTsKKwlicC0+aXYyLmJ2X2xlbiAtPSBzZWN0b3JzICogYmktPnR1cGxlX3NpemU7CisKKwlicC0+YmlwMS5iaXBfc2VjdG9yID0gYmlvLT5iaV9pbnRlZ3JpdHktPmJpcF9zZWN0b3I7CisJYnAtPmJpcDIuYmlwX3NlY3RvciA9IGJpby0+YmlfaW50ZWdyaXR5LT5iaXBfc2VjdG9yICsgbnJfc2VjdG9yczsKKworCWJwLT5iaXAxLmJpcF92Y250ID0gYnAtPmJpcDIuYmlwX3ZjbnQgPSAxOworCWJwLT5iaXAxLmJpcF9pZHggPSBicC0+YmlwMi5iaXBfaWR4ID0gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9zcGxpdCk7CisKKy8qKgorICogYmlvX2ludGVncml0eV9jbG9uZSAtIENhbGxiYWNrIGZvciBjbG9uaW5nIGJpb3Mgd2l0aCBpbnRlZ3JpdHkgbWV0YWRhdGEKKyAqIEBiaW86CU5ldyBiaW8KKyAqIEBiaW9fc3JjOglPcmlnaW5hbCBiaW8KKyAqIEBiczoJCWJpb19zZXQgdG8gYWxsb2NhdGUgYmlwIGZyb20KKyAqCisgKiBEZXNjcmlwdGlvbjoJQ2FsbGVkIHRvIGFsbG9jYXRlIGEgYmlwIHdoZW4gY2xvbmluZyBhIGJpbworICovCitpbnQgYmlvX2ludGVncml0eV9jbG9uZShzdHJ1Y3QgYmlvICpiaW8sIHN0cnVjdCBiaW8gKmJpb19zcmMsCisJCQlzdHJ1Y3QgYmlvX3NldCAqYnMpCit7CisJc3RydWN0IGJpb19pbnRlZ3JpdHlfcGF5bG9hZCAqYmlwX3NyYyA9IGJpb19zcmMtPmJpX2ludGVncml0eTsKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaXA7CisKKwlCVUdfT04oYmlwX3NyYyA9PSBOVUxMKTsKKworCWJpcCA9IGJpb19pbnRlZ3JpdHlfYWxsb2NfYmlvc2V0KGJpbywgR0ZQX05PSU8sIGJpcF9zcmMtPmJpcF92Y250LCBicyk7CisKKwlpZiAoYmlwID09IE5VTEwpCisJCXJldHVybiAtRUlPOworCisJbWVtY3B5KGJpcC0+YmlwX3ZlYywgYmlwX3NyYy0+YmlwX3ZlYywKKwkgICAgICAgYmlwX3NyYy0+YmlwX3ZjbnQgKiBzaXplb2Yoc3RydWN0IGJpb192ZWMpKTsKKworCWJpcC0+YmlwX3NlY3RvciA9IGJpcF9zcmMtPmJpcF9zZWN0b3I7CisJYmlwLT5iaXBfdmNudCA9IGJpcF9zcmMtPmJpcF92Y250OworCWJpcC0+YmlwX2lkeCA9IGJpcF9zcmMtPmJpcF9pZHg7CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9jbG9uZSk7CisKK2ludCBiaW9zZXRfaW50ZWdyaXR5X2NyZWF0ZShzdHJ1Y3QgYmlvX3NldCAqYnMsIGludCBwb29sX3NpemUpCit7CisJYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCA9IG1lbXBvb2xfY3JlYXRlX3NsYWJfcG9vbChwb29sX3NpemUsCisJCQkJCQkJICBiaW9faW50ZWdyaXR5X3NsYWIpOworCWlmICghYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCkKKwkJcmV0dXJuIC0xOworCisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfY3JlYXRlKTsKKwordm9pZCBiaW9zZXRfaW50ZWdyaXR5X2ZyZWUoc3RydWN0IGJpb19zZXQgKmJzKQoreworCWlmIChicy0+YmlvX2ludGVncml0eV9wb29sKQorCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19pbnRlZ3JpdHlfcG9vbCk7Cit9CitFWFBPUlRfU1lNQk9MKGJpb3NldF9pbnRlZ3JpdHlfZnJlZSk7CisKK3ZvaWQgX19pbml0IGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKHZvaWQpCit7CisJYmlvX2ludGVncml0eV9zbGFiID0gS01FTV9DQUNIRShiaW9faW50ZWdyaXR5X3BheWxvYWQsCisJCQkJCVNMQUJfSFdDQUNIRV9BTElHTnxTTEFCX1BBTklDKTsKK30KK0VYUE9SVF9TWU1CT0woYmlvX2ludGVncml0eV9pbml0X3NsYWIpOworCitzdGF0aWMgaW50IF9faW5pdCBpbnRlZ3JpdHlfaW5pdCh2b2lkKQoreworCWtpbnRlZ3JpdHlkX3dxID0gY3JlYXRlX3dvcmtxdWV1ZSgia2ludGVncml0eWQiKTsKKworCWlmICgha2ludGVncml0eWRfd3EpCisJCXBhbmljKCJGYWlsZWQgdG8gY3JlYXRlIGtpbnRlZ3JpdHlkXG4iKTsKKworCXJldHVybiAwOworfQorc3Vic3lzX2luaXRjYWxsKGludGVncml0eV9pbml0KTsKZGlmZiAtLWdpdCBhL2ZzL2Jpby5jIGIvZnMvYmlvLmMKaW5kZXggNzg1NjI1Ny4uODgzMjJiMCAxMDA2NDQKLS0tIGEvZnMvYmlvLmMKKysrIGIvZnMvYmlvLmMKQEAgLTI4LDI1ICsyOCwxMCBAQAogI2luY2x1ZGUgPGxpbnV4L2Jsa3RyYWNlX2FwaS5oPgogI2luY2x1ZGUgPHNjc2kvc2cuaD4JCS8qIGZvciBzdHJ1Y3Qgc2dfaW92ZWMgKi8KIAotI2RlZmluZSBCSU9fUE9PTF9TSVpFIDIKLQogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hlICpiaW9fc2xhYiBfX3JlYWRfbW9zdGx5OwogCi0jZGVmaW5lIEJJT1ZFQ19OUl9QT09MUyA2Ci0KLS8qCi0gKiBhIHNtYWxsIG51bWJlciBvZiBlbnRyaWVzIGlzIGZpbmUsIG5vdCBnb2luZyB0byBiZSBwZXJmb3JtYW5jZSBjcml0aWNhbC4KLSAqIGJhc2ljYWxseSB3ZSBqdXN0IG5lZWQgdG8gc3Vydml2ZQotICovCi0jZGVmaW5lIEJJT19TUExJVF9FTlRSSUVTIDIKIG1lbXBvb2xfdCAqYmlvX3NwbGl0X3Bvb2wgX19yZWFkX21vc3RseTsKIAotc3RydWN0IGJpb3ZlY19zbGFiIHsKLQlpbnQgbnJfdmVjczsKLQljaGFyICpuYW1lOyAKLQlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYjsKLX07Ci0KIC8qCiAgKiBpZiB5b3UgY2hhbmdlIHRoaXMgbGlzdCwgYWxzbyBjaGFuZ2UgYnZlY19hbGxvYyBvciB0aGluZ3Mgd2lsbAogICogYnJlYWsgYmFkbHkhIGNhbm5vdCBiZSBiaWdnZXIgdGhhbiB3aGF0IHlvdSBjYW4gZml0IGludG8gYW4KQEAgLTYwLDIzICs0NSwxNyBAQAogI3VuZGVmIEJWCiAKIC8qCi0gKiBiaW9fc2V0IGlzIHVzZWQgdG8gYWxsb3cgb3RoZXIgcG9ydGlvbnMgb2YgdGhlIElPIHN5c3RlbSB0bwotICogYWxsb2NhdGUgdGhlaXIgb3duIHByaXZhdGUgbWVtb3J5IHBvb2xzIGZvciBiaW8gYW5kIGlvdmVjIHN0cnVjdHVyZXMuCi0gKiBUaGVzZSBtZW1vcnkgcG9vbHMgaW4gdHVybiBhbGwgYWxsb2NhdGUgZnJvbSB0aGUgYmlvX3NsYWIKLSAqIGFuZCB0aGUgYnZlY19zbGFic1tdLgotICovCi1zdHJ1Y3QgYmlvX3NldCB7Ci0JbWVtcG9vbF90ICpiaW9fcG9vbDsKLQltZW1wb29sX3QgKmJ2ZWNfcG9vbHNbQklPVkVDX05SX1BPT0xTXTsKLX07Ci0KLS8qCiAgKiBmc19iaW9fc2V0IGlzIHRoZSBiaW9fc2V0IGNvbnRhaW5pbmcgYmlvIGFuZCBpb3ZlYyBtZW1vcnkgcG9vbHMgdXNlZCBieQogICogSU8gY29kZSB0aGF0IGRvZXMgbm90IG5lZWQgcHJpdmF0ZSBtZW1vcnkgcG9vbHMuCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgYmlvX3NldCAqZnNfYmlvX3NldDsKK3N0cnVjdCBiaW9fc2V0ICpmc19iaW9fc2V0OwogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBiaW9fdmVjICpidmVjX2FsbG9jX2JzKGdmcF90IGdmcF9tYXNrLCBpbnQgbnIsIHVuc2lnbmVkIGxvbmcgKmlkeCwgc3RydWN0IGJpb19zZXQgKmJzKQordW5zaWduZWQgaW50IGJ2ZWNfbnJfdmVjcyh1bnNpZ25lZCBzaG9ydCBpZHgpCit7CisJcmV0dXJuIGJ2ZWNfc2xhYnNbaWR4XS5ucl92ZWNzOworfQorCitzdHJ1Y3QgYmlvX3ZlYyAqYnZlY19hbGxvY19icyhnZnBfdCBnZnBfbWFzaywgaW50IG5yLCB1bnNpZ25lZCBsb25nICppZHgsIHN0cnVjdCBiaW9fc2V0ICpicykKIHsKIAlzdHJ1Y3QgYmlvX3ZlYyAqYnZsOwogCkBAIC0xMTcsNiArOTYsOSBAQAogCQltZW1wb29sX2ZyZWUoYmlvLT5iaV9pb192ZWMsIGJpb19zZXQtPmJ2ZWNfcG9vbHNbcG9vbF9pZHhdKTsKIAl9CiAKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKQorCQliaW9faW50ZWdyaXR5X2ZyZWUoYmlvLCBiaW9fc2V0KTsKKwogCW1lbXBvb2xfZnJlZShiaW8sIGJpb19zZXQtPmJpb19wb29sKTsKIH0KIApAQCAtMjc1LDkgKzI1NywxOSBAQAogewogCXN0cnVjdCBiaW8gKmIgPSBiaW9fYWxsb2NfYmlvc2V0KGdmcF9tYXNrLCBiaW8tPmJpX21heF92ZWNzLCBmc19iaW9fc2V0KTsKIAotCWlmIChiKSB7Ci0JCWItPmJpX2Rlc3RydWN0b3IgPSBiaW9fZnNfZGVzdHJ1Y3RvcjsKLQkJX19iaW9fY2xvbmUoYiwgYmlvKTsKKwlpZiAoIWIpCisJCXJldHVybiBOVUxMOworCisJYi0+YmlfZGVzdHJ1Y3RvciA9IGJpb19mc19kZXN0cnVjdG9yOworCV9fYmlvX2Nsb25lKGIsIGJpbyk7CisKKwlpZiAoYmlvX2ludGVncml0eShiaW8pKSB7CisJCWludCByZXQ7CisKKwkJcmV0ID0gYmlvX2ludGVncml0eV9jbG9uZShiLCBiaW8sIGZzX2Jpb19zZXQpOworCisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIE5VTEw7CiAJfQogCiAJcmV0dXJuIGI7CkBAIC0zMzMsMTAgKzMyNSwxOSBAQAogCQlpZiAocGFnZSA9PSBwcmV2LT5idl9wYWdlICYmCiAJCSAgICBvZmZzZXQgPT0gcHJldi0+YnZfb2Zmc2V0ICsgcHJldi0+YnZfbGVuKSB7CiAJCQlwcmV2LT5idl9sZW4gKz0gbGVuOwotCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4gJiYKLQkJCSAgICBxLT5tZXJnZV9idmVjX2ZuKHEsIGJpbywgcHJldikgPCBsZW4pIHsKLQkJCQlwcmV2LT5idl9sZW4gLT0gbGVuOwotCQkJCXJldHVybiAwOworCisJCQlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQkJCXN0cnVjdCBidmVjX21lcmdlX2RhdGEgYnZtID0geworCQkJCQkuYmlfYmRldiA9IGJpby0+YmlfYmRldiwKKwkJCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJCQkuYmlfc2l6ZSA9IGJpby0+Ymlfc2l6ZSwKKwkJCQkJLmJpX3J3ID0gYmlvLT5iaV9ydywKKwkJCQl9OworCisJCQkJaWYgKHEtPm1lcmdlX2J2ZWNfZm4ocSwgJmJ2bSwgcHJldikgPCBsZW4pIHsKKwkJCQkJcHJldi0+YnZfbGVuIC09IGxlbjsKKwkJCQkJcmV0dXJuIDA7CisJCQkJfQogCQkJfQogCiAJCQlnb3RvIGRvbmU7CkBAIC0zNzcsMTEgKzM3OCwxOCBAQAogCSAqIHF1ZXVlIHRvIGdldCBmdXJ0aGVyIGNvbnRyb2wKIAkgKi8KIAlpZiAocS0+bWVyZ2VfYnZlY19mbikgeworCQlzdHJ1Y3QgYnZlY19tZXJnZV9kYXRhIGJ2bSA9IHsKKwkJCS5iaV9iZGV2ID0gYmlvLT5iaV9iZGV2LAorCQkJLmJpX3NlY3RvciA9IGJpby0+Ymlfc2VjdG9yLAorCQkJLmJpX3NpemUgPSBiaW8tPmJpX3NpemUsCisJCQkuYmlfcncgPSBiaW8tPmJpX3J3LAorCQl9OworCiAJCS8qCiAJCSAqIG1lcmdlX2J2ZWNfZm4oKSByZXR1cm5zIG51bWJlciBvZiBieXRlcyBpdCBjYW4gYWNjZXB0CiAJCSAqIGF0IHRoaXMgb2Zmc2V0CiAJCSAqLwotCQlpZiAocS0+bWVyZ2VfYnZlY19mbihxLCBiaW8sIGJ2ZWMpIDwgbGVuKSB7CisJCWlmIChxLT5tZXJnZV9idmVjX2ZuKHEsICZidm0sIGJ2ZWMpIDwgbGVuKSB7CiAJCQlidmVjLT5idl9wYWdlID0gTlVMTDsKIAkJCWJ2ZWMtPmJ2X2xlbiA9IDA7CiAJCQlidmVjLT5idl9vZmZzZXQgPSAwOwpAQCAtMTI0OSw2ICsxMjU3LDkgQEAKIAlicC0+YmlvMS5iaV9wcml2YXRlID0gYmk7CiAJYnAtPmJpbzIuYmlfcHJpdmF0ZSA9IHBvb2w7CiAKKwlpZiAoYmlvX2ludGVncml0eShiaSkpCisJCWJpb19pbnRlZ3JpdHlfc3BsaXQoYmksIGJwLCBmaXJzdF9zZWN0b3JzKTsKKwogCXJldHVybiBicDsKIH0KIApAQCAtMTI5MCw2ICsxMzAxLDcgQEAKIAlpZiAoYnMtPmJpb19wb29sKQogCQltZW1wb29sX2Rlc3Ryb3koYnMtPmJpb19wb29sKTsKIAorCWJpb3NldF9pbnRlZ3JpdHlfZnJlZShicyk7CiAJYmlvdmVjX2ZyZWVfcG9vbHMoYnMpOwogCiAJa2ZyZWUoYnMpOwpAQCAtMTMwNiw2ICsxMzE4LDkgQEAKIAlpZiAoIWJzLT5iaW9fcG9vbCkKIAkJZ290byBiYWQ7CiAKKwlpZiAoYmlvc2V0X2ludGVncml0eV9jcmVhdGUoYnMsIGJpb19wb29sX3NpemUpKQorCQlnb3RvIGJhZDsKKwogCWlmICghYmlvdmVjX2NyZWF0ZV9wb29scyhicywgYnZlY19wb29sX3NpemUpKQogCQlyZXR1cm4gYnM7CiAKQEAgLTEzMzIsNiArMTM0Nyw3IEBACiB7CiAJYmlvX3NsYWIgPSBLTUVNX0NBQ0hFKGJpbywgU0xBQl9IV0NBQ0hFX0FMSUdOfFNMQUJfUEFOSUMpOwogCisJYmlvX2ludGVncml0eV9pbml0X3NsYWIoKTsKIAliaW92ZWNfaW5pdF9zbGFicygpOwogCiAJZnNfYmlvX3NldCA9IGJpb3NldF9jcmVhdGUoQklPX1BPT0xfU0laRSwgMik7CmRpZmYgLS1naXQgYS9mcy9ibG9ja19kZXYuYyBiL2ZzL2Jsb2NrX2Rldi5jCmluZGV4IDdkODIyZmEuLjEwZDhhMGEgMTAwNjQ0Ci0tLSBhL2ZzL2Jsb2NrX2Rldi5jCisrKyBiL2ZzL2Jsb2NrX2Rldi5jCkBAIC0xMiw2ICsxMiw3IEBACiAjaW5jbHVkZSA8bGludXgva21vZC5oPgogI2luY2x1ZGUgPGxpbnV4L21ham9yLmg+CiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2VfY2dyb3VwLmg+CiAjaW5jbHVkZSA8bGludXgvaGlnaG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L2Jsa2Rldi5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtOTI4LDkgKzkyOSwyMiBAQAogewogCXN0cnVjdCBtb2R1bGUgKm93bmVyID0gTlVMTDsKIAlzdHJ1Y3QgZ2VuZGlzayAqZGlzazsKLQlpbnQgcmV0ID0gLUVOWElPOworCWludCByZXQ7CiAJaW50IHBhcnQ7CisJaW50IHBlcm0gPSAwOwogCisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpCisJCXBlcm0gfD0gTUFZX1JFQUQ7CisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKQorCQlwZXJtIHw9IE1BWV9XUklURTsKKwkvKgorCSAqIGhvb2tzOiAvbi8sIHNlZSAibGF5ZXJpbmcgdmlvbGF0aW9ucyIuCisJICovCisJcmV0ID0gZGV2Y2dyb3VwX2lub2RlX3Blcm1pc3Npb24oYmRldi0+YmRfaW5vZGUsIHBlcm0pOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKworCXJldCA9IC1FTlhJTzsKIAlmaWxlLT5mX21hcHBpbmcgPSBiZGV2LT5iZF9pbm9kZS0+aV9tYXBwaW5nOwogCWxvY2tfa2VybmVsKCk7CiAJZGlzayA9IGdldF9nZW5kaXNrKGJkZXYtPmJkX2RldiwgJnBhcnQpOwpkaWZmIC0tZ2l0IGEvZnMvYnVmZmVyLmMgYi9mcy9idWZmZXIuYwppbmRleCBhMDczZjNmLi41ZmExNTEyIDEwMDY0NAotLS0gYS9mcy9idWZmZXIuYworKysgYi9mcy9idWZmZXIuYwpAQCAtODIxLDcgKzgyMSw3IEBACiAJCQkJICogY29udGVudHMgLSBpdCBpcyBhIG5vb3AgaWYgSS9PIGlzIHN0aWxsIGluCiAJCQkJICogZmxpZ2h0IG9uIHBvdGVudGlhbGx5IG9sZGVyIGNvbnRlbnRzLgogCQkJCSAqLwotCQkJCWxsX3J3X2Jsb2NrKFNXUklURSwgMSwgJmJoKTsKKwkJCQlsbF9yd19ibG9jayhTV1JJVEVfU1lOQywgMSwgJmJoKTsKIAkJCQlicmVsc2UoYmgpOwogCQkJCXNwaW5fbG9jayhsb2NrKTsKIAkJCX0KQEAgLTE2OTEsMTEgKzE2OTEsMTMgQEAKIAkJCSAqLwogCQkJY2xlYXJfYnVmZmVyX2RpcnR5KGJoKTsKIAkJCXNldF9idWZmZXJfdXB0b2RhdGUoYmgpOwotCQl9IGVsc2UgaWYgKCFidWZmZXJfbWFwcGVkKGJoKSAmJiBidWZmZXJfZGlydHkoYmgpKSB7CisJCX0gZWxzZSBpZiAoKCFidWZmZXJfbWFwcGVkKGJoKSB8fCBidWZmZXJfZGVsYXkoYmgpKSAmJgorCQkJICAgYnVmZmVyX2RpcnR5KGJoKSkgewogCQkJV0FSTl9PTihiaC0+Yl9zaXplICE9IGJsb2Nrc2l6ZSk7CiAJCQllcnIgPSBnZXRfYmxvY2soaW5vZGUsIGJsb2NrLCBiaCwgMSk7CiAJCQlpZiAoZXJyKQogCQkJCWdvdG8gcmVjb3ZlcjsKKwkJCWNsZWFyX2J1ZmZlcl9kZWxheShiaCk7CiAJCQlpZiAoYnVmZmVyX25ldyhiaCkpIHsKIAkJCQkvKiBibG9ja2RldiBtYXBwaW5ncyBuZXZlciBjb21lIGhlcmUgKi8KIAkJCQljbGVhcl9idWZmZXJfbmV3KGJoKTsKQEAgLTE3NzQsNyArMTc3Niw4IEBACiAJYmggPSBoZWFkOwogCS8qIFJlY292ZXJ5OiBsb2NrIGFuZCBzdWJtaXQgdGhlIG1hcHBlZCBidWZmZXJzICovCiAJZG8gewotCQlpZiAoYnVmZmVyX21hcHBlZChiaCkgJiYgYnVmZmVyX2RpcnR5KGJoKSkgeworCQlpZiAoYnVmZmVyX21hcHBlZChiaCkgJiYgYnVmZmVyX2RpcnR5KGJoKSAmJgorCQkgICAgIWJ1ZmZlcl9kZWxheShiaCkpIHsKIAkJCWxvY2tfYnVmZmVyKGJoKTsKIAkJCW1hcmtfYnVmZmVyX2FzeW5jX3dyaXRlKGJoKTsKIAkJfSBlbHNlIHsKQEAgLTIwNjEsNiArMjA2NCw3IEBACiAJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OworCWludCBpX3NpemVfY2hhbmdlZCA9IDA7CiAKIAljb3BpZWQgPSBibG9ja193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgcGFnZSwgZnNkYXRhKTsKIApAQCAtMjA3MywxMiArMjA3NywyMSBAQAogCSAqLwogCWlmIChwb3MrY29waWVkID4gaW5vZGUtPmlfc2l6ZSkgewogCQlpX3NpemVfd3JpdGUoaW5vZGUsIHBvcytjb3BpZWQpOwotCQltYXJrX2lub2RlX2RpcnR5KGlub2RlKTsKKwkJaV9zaXplX2NoYW5nZWQgPSAxOwogCX0KIAogCXVubG9ja19wYWdlKHBhZ2UpOwogCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKIAorCS8qCisJICogRG9uJ3QgbWFyayB0aGUgaW5vZGUgZGlydHkgdW5kZXIgcGFnZSBsb2NrLiBGaXJzdCwgaXQgdW5uZWNlc3NhcmlseQorCSAqIG1ha2VzIHRoZSBob2xkaW5nIHRpbWUgb2YgcGFnZSBsb2NrIGxvbmdlci4gU2Vjb25kLCBpdCBmb3JjZXMgbG9jaworCSAqIG9yZGVyaW5nIG9mIHBhZ2UgbG9jayBhbmQgdHJhbnNhY3Rpb24gc3RhcnQgZm9yIGpvdXJuYWxpbmcKKwkgKiBmaWxlc3lzdGVtcy4KKwkgKi8KKwlpZiAoaV9zaXplX2NoYW5nZWQpCisJCW1hcmtfaW5vZGVfZGlydHkoaW5vZGUpOworCiAJcmV0dXJuIGNvcGllZDsKIH0KIEVYUE9SVF9TWU1CT0woZ2VuZXJpY193cml0ZV9lbmQpOwpAQCAtMjk0MCwxNiArMjk1MywxOSBAQAogCWZvciAoaSA9IDA7IGkgPCBucjsgaSsrKSB7CiAJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmggPSBiaHNbaV07CiAKLQkJaWYgKHJ3ID09IFNXUklURSkKKwkJaWYgKHJ3ID09IFNXUklURSB8fCBydyA9PSBTV1JJVEVfU1lOQykKIAkJCWxvY2tfYnVmZmVyKGJoKTsKIAkJZWxzZSBpZiAodGVzdF9zZXRfYnVmZmVyX2xvY2tlZChiaCkpCiAJCQljb250aW51ZTsKIAotCQlpZiAocncgPT0gV1JJVEUgfHwgcncgPT0gU1dSSVRFKSB7CisJCWlmIChydyA9PSBXUklURSB8fCBydyA9PSBTV1JJVEUgfHwgcncgPT0gU1dSSVRFX1NZTkMpIHsKIAkJCWlmICh0ZXN0X2NsZWFyX2J1ZmZlcl9kaXJ0eShiaCkpIHsKIAkJCQliaC0+Yl9lbmRfaW8gPSBlbmRfYnVmZmVyX3dyaXRlX3N5bmM7CiAJCQkJZ2V0X2JoKGJoKTsKLQkJCQlzdWJtaXRfYmgoV1JJVEUsIGJoKTsKKwkJCQlpZiAocncgPT0gU1dSSVRFX1NZTkMpCisJCQkJCXN1Ym1pdF9iaChXUklURV9TWU5DLCBiaCk7CisJCQkJZWxzZQorCQkJCQlzdWJtaXRfYmgoV1JJVEUsIGJoKTsKIAkJCQljb250aW51ZTsKIAkJCX0KIAkJfSBlbHNlIHsKQEAgLTI5NzgsNyArMjk5NCw3IEBACiAJaWYgKHRlc3RfY2xlYXJfYnVmZmVyX2RpcnR5KGJoKSkgewogCQlnZXRfYmgoYmgpOwogCQliaC0+Yl9lbmRfaW8gPSBlbmRfYnVmZmVyX3dyaXRlX3N5bmM7Ci0JCXJldCA9IHN1Ym1pdF9iaChXUklURSwgYmgpOworCQlyZXQgPSBzdWJtaXRfYmgoV1JJVEVfU1lOQywgYmgpOwogCQl3YWl0X29uX2J1ZmZlcihiaCk7CiAJCWlmIChidWZmZXJfZW9wbm90c3VwcChiaCkpIHsKIAkJCWNsZWFyX2J1ZmZlcl9lb3Bub3RzdXBwKGJoKTsKZGlmZiAtLWdpdCBhL2ZzL2NoYXJfZGV2LmMgYi9mcy9jaGFyX2Rldi5jCmluZGV4IDY4ZTUxMGIuLjNjYjdjZGEgMTAwNjQ0Ci0tLSBhL2ZzL2NoYXJfZGV2LmMKKysrIGIvZnMvY2hhcl9kZXYuYwpAQCAtMzczLDYgKzM3Myw4IEBACiAJCQlyZXR1cm4gLUVOWElPOwogCQluZXcgPSBjb250YWluZXJfb2Yoa29iaiwgc3RydWN0IGNkZXYsIGtvYmopOwogCQlzcGluX2xvY2soJmNkZXZfbG9jayk7CisJCS8qIENoZWNrIGlfY2RldiBhZ2FpbiBpbiBjYXNlIHNvbWVib2R5IGJlYXQgdXMgdG8gaXQgd2hpbGUKKwkJICAgd2UgZHJvcHBlZCB0aGUgbG9jay4gKi8KIAkJcCA9IGlub2RlLT5pX2NkZXY7CiAJCWlmICghcCkgewogCQkJaW5vZGUtPmlfY2RldiA9IHAgPSBuZXc7CkBAIC0zOTIsMTEgKzM5NCw4IEBACiAJCWNkZXZfcHV0KHApOwogCQlyZXR1cm4gLUVOWElPOwogCX0KLQlpZiAoZmlscC0+Zl9vcC0+b3BlbikgewotCQlsb2NrX2tlcm5lbCgpOworCWlmIChmaWxwLT5mX29wLT5vcGVuKQogCQlyZXQgPSBmaWxwLT5mX29wLT5vcGVuKGlub2RlLGZpbHApOwotCQl1bmxvY2tfa2VybmVsKCk7Ci0JfQogCWlmIChyZXQpCiAJCWNkZXZfcHV0KHApOwogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9mcy9jaWZzL0NIQU5HRVMgYi9mcy9jaWZzL0NIQU5HRVMKaW5kZXggMjhlM2Q1Yy4uMWYzNDY1MiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9DSEFOR0VTCisrKyBiL2ZzL2NpZnMvQ0hBTkdFUwpAQCAtMiw2ICsyLDExIEBACiAtLS0tLS0tLS0tLS0KIERGUyBzdXBwb3J0IGFkZGVkIChNaWNyb3NvZnQgRGlzdHJpYnV0ZWQgRmlsZSBTeXN0ZW0gY2xpZW50IHN1cHBvcnQgbmVlZGVkCiBmb3IgcmVmZXJyYWxzIHdoaWNoIGVuYWJsZSBhIGhpZXJhcmNoaWNhbCBuYW1lIHNwYWNlIGFtb25nIHNlcnZlcnMpLgorRGlzYWJsZSB0ZW1wb3JhcnkgY2FjaGluZyBvZiBtb2RlIGJpdHMgdG8gc2VydmVycyB3aGljaCBkbyBub3Qgc3VwcG9ydAorc3RvcmluZyBvZiBtb2RlIChlLmcuIFdpbmRvd3Mgc2VydmVycywgd2hlbiBjbGllbnQgbW91bnRzIHdpdGhvdXQgY2lmc2FjbAorbW91bnQgb3B0aW9uKSBhbmQgYWRkIG5ldyAiZHlucGVybSIgbW91bnQgb3B0aW9uIHRvIGVuYWJsZSB0ZW1wb3JhcnkgY2FjaGluZworb2YgbW9kZSAoZW5hYmxlIG9sZCBiZWhhdmlvcikuICBGaXggaGFuZyBvbiBtb3VudCBjYXVzZWQgd2hlbiBzZXJ2ZXIgY3Jhc2hlcwordGNwIHNlc3Npb24gZHVyaW5nIG5lZ290aWF0ZSBwcm90b2NvbC4KIAogVmVyc2lvbiAxLjUyCiAtLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvYXNuMS5jIGIvZnMvY2lmcy9hc24xLmMKaW5kZXggY2I1MmNiYi4uZjU4ZTQxZCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9hc24xLmMKKysrIGIvZnMvY2lmcy9hc24xLmMKQEAgLTE4Niw2ICsxODYsMTEgQEAKIAkJCX0KIAkJfQogCX0KKworCS8qIGRvbid0IHRydXN0IGxlbiBiaWdnZXIgdGhhbiBjdHggYnVmZmVyICovCisJaWYgKCpsZW4gPiBjdHgtPmVuZCAtIGN0eC0+cG9pbnRlcikKKwkJcmV0dXJuIDA7CisKIAlyZXR1cm4gMTsKIH0KIApAQCAtMjAzLDYgKzIwOCwxMCBAQAogCWlmICghYXNuMV9sZW5ndGhfZGVjb2RlKGN0eCwgJmRlZiwgJmxlbikpCiAJCXJldHVybiAwOwogCisJLyogcHJpbWl0aXZlIHNoYWxsIGJlIGRlZmluaXRlLCBpbmRlZmluaXRlIHNoYWxsIGJlIGNvbnN0cnVjdGVkICovCisJaWYgKCpjb24gPT0gQVNOMV9QUkkgJiYgIWRlZikKKwkJcmV0dXJuIDA7CisKIAlpZiAoZGVmKQogCQkqZW9jID0gY3R4LT5wb2ludGVyICsgbGVuOwogCWVsc2UKQEAgLTM4OSw2ICszOTgsMTEgQEAKIAl1bnNpZ25lZCBsb25nICpvcHRyOwogCiAJc2l6ZSA9IGVvYyAtIGN0eC0+cG9pbnRlciArIDE7CisKKwkvKiBmaXJzdCBzdWJpZCBhY3R1YWxseSBlbmNvZGVzIGZpcnN0IHR3byBzdWJpZHMgKi8KKwlpZiAoc2l6ZSA8IDIgfHwgc2l6ZSA+IFVMT05HX01BWC9zaXplb2YodW5zaWduZWQgbG9uZykpCisJCXJldHVybiAwOworCiAJKm9pZCA9IGttYWxsb2Moc2l6ZSAqIHNpemVvZih1bnNpZ25lZCBsb25nKSwgR0ZQX0FUT01JQyk7CiAJaWYgKCpvaWQgPT0gTlVMTCkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNhY2wuYyBiL2ZzL2NpZnMvY2lmc2FjbC5jCmluZGV4IDM0OTAyY2YuLjBlOWZjMmIgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvY2lmc2FjbC5jCisrKyBiL2ZzL2NpZnMvY2lmc2FjbC5jCkBAIC0zNCwxMSArMzQsMTEgQEAKIHN0YXRpYyBzdHJ1Y3QgY2lmc193a3NpZCB3a3NpZGFycltOVU1fV0tfU0lEU10gPSB7CiAJe3sxLCAwLCB7MCwgMCwgMCwgMCwgMCwgMH0sIHswLCAwLCAwLCAwLCAwfSB9LCAibnVsbCB1c2VyIn0sCiAJe3sxLCAxLCB7MCwgMCwgMCwgMCwgMCwgMX0sIHswLCAwLCAwLCAwLCAwfSB9LCAibm9ib2R5In0sCi0Je3sxLCAxLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtjcHVfdG9fbGUzMigxMSksIDAsIDAsIDAsIDB9IH0sICJuZXQtdXNlcnMifSwKLQl7ezEsIDEsIHswLCAwLCAwLCAwLCAwLCA1fSwge2NwdV90b19sZTMyKDE4KSwgMCwgMCwgMCwgMH0gfSwgInN5cyJ9LAotCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7Y3B1X3RvX2xlMzIoMzIpLCBjcHVfdG9fbGUzMig1NDQpLCAwLCAwLCAwfSB9LCAicm9vdCJ9LAotCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7Y3B1X3RvX2xlMzIoMzIpLCBjcHVfdG9fbGUzMig1NDUpLCAwLCAwLCAwfSB9LCAidXNlcnMifSwKLQl7ezEsIDIsIHswLCAwLCAwLCAwLCAwLCA1fSwge2NwdV90b19sZTMyKDMyKSwgY3B1X3RvX2xlMzIoNTQ2KSwgMCwgMCwgMH0gfSwgImd1ZXN0In0gfQorCXt7MSwgMSwgezAsIDAsIDAsIDAsIDAsIDV9LCB7X19jb25zdGFudF9jcHVfdG9fbGUzMigxMSksIDAsIDAsIDAsIDB9IH0sICJuZXQtdXNlcnMifSwKKwl7ezEsIDEsIHswLCAwLCAwLCAwLCAwLCA1fSwge19fY29uc3RhbnRfY3B1X3RvX2xlMzIoMTgpLCAwLCAwLCAwLCAwfSB9LCAic3lzIn0sCisJe3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtfX2NvbnN0YW50X2NwdV90b19sZTMyKDMyKSwgX19jb25zdGFudF9jcHVfdG9fbGUzMig1NDQpLCAwLCAwLCAwfSB9LCAicm9vdCJ9LAorCXt7MSwgMiwgezAsIDAsIDAsIDAsIDAsIDV9LCB7X19jb25zdGFudF9jcHVfdG9fbGUzMigzMiksIF9fY29uc3RhbnRfY3B1X3RvX2xlMzIoNTQ1KSwgMCwgMCwgMH0gfSwgInVzZXJzIn0sCisJe3sxLCAyLCB7MCwgMCwgMCwgMCwgMCwgNX0sIHtfX2NvbnN0YW50X2NwdV90b19sZTMyKDMyKSwgX19jb25zdGFudF9jcHVfdG9fbGUzMig1NDYpLCAwLCAwLCAwfSB9LCAiZ3Vlc3QifSB9CiA7CiAKIApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzZnMuYyBiL2ZzL2NpZnMvY2lmc2ZzLmMKaW5kZXggNWRmOTNmZC4uMjI4NTdjNiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzZnMuYworKysgYi9mcy9jaWZzL2NpZnNmcy5jCkBAIC05Nyw5ICs5Nyw2IEBACiB7CiAJc3RydWN0IGlub2RlICppbm9kZTsKIAlzdHJ1Y3QgY2lmc19zYl9pbmZvICpjaWZzX3NiOwotI2lmZGVmIENPTkZJR19DSUZTX0RGU19VUENBTEwKLQlpbnQgbGVuOwotI2VuZGlmCiAJaW50IHJjID0gMDsKIAogCS8qIEJCIHNob3VsZCB3ZSBtYWtlIHRoaXMgY29udGluZ2VudCBvbiBtb3VudCBwYXJtPyAqLwpAQCAtMTE3LDE1ICsxMTQsMTcgQEAKIAkgKiBjb21wbGV4IG9wZXJhdGlvbiAobW91bnQpLCBhbmQgaW4gY2FzZSBvZiBmYWlsCiAJICoganVzdCBleGl0IGluc3RlYWQgb2YgZG9pbmcgbW91bnQgYW5kIGF0dGVtcHRpbmcKIAkgKiB1bmRvIGl0IGlmIHRoaXMgY29weSBmYWlscz8qLwotCWxlbiA9IHN0cmxlbihkYXRhKTsKLQljaWZzX3NiLT5tb3VudGRhdGEgPSBremFsbG9jKGxlbiArIDEsIEdGUF9LRVJORUwpOwotCWlmIChjaWZzX3NiLT5tb3VudGRhdGEgPT0gTlVMTCkgewotCQlrZnJlZShzYi0+c19mc19pbmZvKTsKLQkJc2ItPnNfZnNfaW5mbyA9IE5VTEw7Ci0JCXJldHVybiAtRU5PTUVNOworCWlmIChkYXRhKSB7CisJCWludCBsZW4gPSBzdHJsZW4oZGF0YSk7CisJCWNpZnNfc2ItPm1vdW50ZGF0YSA9IGt6YWxsb2MobGVuICsgMSwgR0ZQX0tFUk5FTCk7CisJCWlmIChjaWZzX3NiLT5tb3VudGRhdGEgPT0gTlVMTCkgeworCQkJa2ZyZWUoc2ItPnNfZnNfaW5mbyk7CisJCQlzYi0+c19mc19pbmZvID0gTlVMTDsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCXN0cm5jcHkoY2lmc19zYi0+bW91bnRkYXRhLCBkYXRhLCBsZW4gKyAxKTsKKwkJY2lmc19zYi0+bW91bnRkYXRhW2xlbl0gPSAnXDAnOwogCX0KLQlzdHJuY3B5KGNpZnNfc2ItPm1vdW50ZGF0YSwgZGF0YSwgbGVuICsgMSk7Ci0JY2lmc19zYi0+bW91bnRkYXRhW2xlbl0gPSAnXDAnOwogI2VuZGlmCiAKIAlyYyA9IGNpZnNfbW91bnQoc2IsIGNpZnNfc2IsIGRhdGEsIGRldm5hbWUpOwpAQCAtNjEzLDcgKzYxMiw3IEBACiAJCWlmIChyZXR2YWwgPCAwKQogCQkJcmV0dXJuIChsb2ZmX3QpcmV0dmFsOwogCX0KLQlyZXR1cm4gcmVtb3RlX2xsc2VlayhmaWxlLCBvZmZzZXQsIG9yaWdpbik7CisJcmV0dXJuIGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOwogfQogCiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSBjaWZzX2ZzX3R5cGUgPSB7CmRpZmYgLS1naXQgYS9mcy9jaWZzL2NpZnNnbG9iLmggYi9mcy9jaWZzL2NpZnNnbG9iLmgKaW5kZXggMDg5MTQwNS4uOWNmY2YzMiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzZ2xvYi5oCisrKyBiL2ZzL2NpZnMvY2lmc2dsb2IuaApAQCAtMzMzLDcgKzMzMyw2IEBACiAJYm9vbCBtZXNzYWdlTW9kZToxOwkvKiBmb3IgcGlwZXM6IG1lc3NhZ2UgdnMgYnl0ZSBtb2RlICovCiAJYXRvbWljX3Qgd3J0UGVuZGluZzsgICAvKiBoYW5kbGUgaW4gdXNlIC0gZGVmZXIgY2xvc2UgKi8KIAlzdHJ1Y3Qgc2VtYXBob3JlIGZoX3NlbTsgLyogcHJldmVudHMgcmVvcGVuIHJhY2UgYWZ0ZXIgZGVhZCBzZXMqLwotCWNoYXIgKnNlYXJjaF9yZXN1bWVfbmFtZTsgLyogQkIgcmVtb3ZlbWUgQkIgKi8KIAlzdHJ1Y3QgY2lmc19zZWFyY2hfaW5mbyBzcmNoX2luZjsKIH07CiAKQEAgLTYyNiw3ICs2MjUsNyBAQAogR0xPQkFMX0VYVEVSTiBhdG9taWNfdCB0Y3BTZXNSZWNvbm5lY3RDb3VudDsKIEdMT0JBTF9FWFRFUk4gYXRvbWljX3QgdGNvbkluZm9SZWNvbm5lY3RDb3VudDsKIAotLyogVmFyaW91cyBEZWJ1ZyBjb3VudGVycyB0byByZW1vdmUgc29tZWRheSAoQkIpICovCisvKiBWYXJpb3VzIERlYnVnIGNvdW50ZXJzICovCiBHTE9CQUxfRVhURVJOIGF0b21pY190IGJ1ZkFsbG9jQ291bnQ7ICAgIC8qIGN1cnJlbnQgbnVtYmVyIGFsbG9jYXRlZCAgKi8KICNpZmRlZiBDT05GSUdfQ0lGU19TVEFUUzIKIEdMT0JBTF9FWFRFUk4gYXRvbWljX3QgdG90QnVmQWxsb2NDb3VudDsgLyogdG90YWwgYWxsb2NhdGVkIG92ZXIgYWxsIHRpbWUgKi8KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY2lmc3BkdS5oIGIvZnMvY2lmcy9jaWZzcGR1LmgKaW5kZXggNjVkNThiNC4uMGYzMjdjMiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jaWZzcGR1LmgKKysrIGIvZnMvY2lmcy9jaWZzcGR1LmgKQEAgLTc5LDYgKzc5LDE5IEBACiAjZGVmaW5lIFRSQU5TMl9HRVRfREZTX1JFRkVSUkFMICAgICAgIDB4MTAKICNkZWZpbmUgVFJBTlMyX1JFUE9SVF9ERlNfSU5DT1NJU1RFTkNZIDB4MTEKIAorLyogU01CIFRyYW5zYWN0IChOYW1lZCBQaXBlKSBzdWJjb21tYW5kIGNvZGVzICovCisjZGVmaW5lIFRSQU5TX1NFVF9OTVBJUEVfU1RBVEUgICAgICAweDAwMDEKKyNkZWZpbmUgVFJBTlNfUkFXX1JFQURfTk1QSVBFICAgICAgIDB4MDAxMQorI2RlZmluZSBUUkFOU19RVUVSWV9OTVBJUEVfU1RBVEUgICAgMHgwMDIxCisjZGVmaW5lIFRSQU5TX1FVRVJZX05NUElQRV9JTkZPICAgICAweDAwMjIKKyNkZWZpbmUgVFJBTlNfUEVFS19OTVBJUEUgICAgICAgICAgIDB4MDAyMworI2RlZmluZSBUUkFOU19UUkFOU0FDVF9OTVBJUEUgICAgICAgMHgwMDI2CisjZGVmaW5lIFRSQU5TX1JBV19XUklURV9OTVBJUEUgICAgICAweDAwMzEKKyNkZWZpbmUgVFJBTlNfUkVBRF9OTVBJUEUgICAgICAgICAgIDB4MDAzNgorI2RlZmluZSBUUkFOU19XUklURV9OTVBJUEUgICAgICAgICAgMHgwMDM3CisjZGVmaW5lIFRSQU5TX1dBSVRfTk1QSVBFICAgICAgICAgICAweDAwNTMKKyNkZWZpbmUgVFJBTlNfQ0FMTF9OTVBJUEUgICAgICAgICAgIDB4MDA1NAorCiAvKiBOVCBUcmFuc2FjdCBzdWJjb21tYW5kIGNvZGVzICovCiAjZGVmaW5lIE5UX1RSQU5TQUNUX0NSRUFURSAgICAgICAgICAgIDB4MDEKICNkZWZpbmUgTlRfVFJBTlNBQ1RfSU9DVEwgICAgICAgICAgICAgMHgwMgpAQCAtMzI4LDEyICszNDEsMTMgQEAKICNkZWZpbmUgQ1JFQVRFX0NPTVBMRVRFX0lGX09QTEsgMHgwMDAwMDEwMAkvKiBzaG91bGQgYmUgemVybyAqLwogI2RlZmluZSBDUkVBVEVfTk9fRUFfS05PV0xFREdFICAweDAwMDAwMjAwCiAjZGVmaW5lIENSRUFURV9FSUdIVF9ET1RfVEhSRUUgIDB4MDAwMDA0MDAJLyogZG9jIHNheXMgdGhpcyBpcyBvYnNvbGV0ZQotCQkJCQkJIG9wZW4gZm9yIHJlY292ZXJ5IGZsYWcgLSBzaG91bGQKLQkJCQkJCSBiZSB6ZXJvICovCisJCQkJCQkgIm9wZW4gZm9yIHJlY292ZXJ5IiBmbGFnIC0gc2hvdWxkCisJCQkJCQkgYmUgemVybyBpbiBhbnkgY2FzZSAqLworI2RlZmluZSBDUkVBVEVfT1BFTl9GT1JfUkVDT1ZFUlkgMHgwMDAwMDQwMAogI2RlZmluZSBDUkVBVEVfUkFORE9NX0FDQ0VTUwkweDAwMDAwODAwCiAjZGVmaW5lIENSRUFURV9ERUxFVEVfT05fQ0xPU0UJMHgwMDAwMTAwMAogI2RlZmluZSBDUkVBVEVfT1BFTl9CWV9JRCAgICAgICAweDAwMDAyMDAwCi0jZGVmaW5lIENSRUFURV9PUEVOX0JBQ0tVUF9JTlROIDB4MDAwMDQwMDAKKyNkZWZpbmUgQ1JFQVRFX09QRU5fQkFDS1VQX0lOVEVOVCAweDAwMDA0MDAwCiAjZGVmaW5lIENSRUFURV9OT19DT01QUkVTU0lPTiAgIDB4MDAwMDgwMDAKICNkZWZpbmUgQ1JFQVRFX1JFU0VSVkVfT1BGSUxURVIgMHgwMDEwMDAwMAkvKiBzaG91bGQgYmUgemVybyAqLwogI2RlZmluZSBPUEVOX1JFUEFSU0VfUE9JTlQJMHgwMDIwMDAwMApAQCAtNzIyLDcgKzczNiw2IEBACiAjZGVmaW5lIFNNQl9DU0NfQ0FDSEVfQVVUT19SRUlOVCAgIDB4MDAwNAogI2RlZmluZSBTTUJfQ1NDX0NBQ0hFX1ZETyAgICAgICAgICAweDAwMDgKICNkZWZpbmUgU01CX0NTQ19OT19DQUNISU5HICAgICAgICAgMHgwMDBDCi0KICNkZWZpbmUgU01CX1VOSVFVRV9GSUxFX05BTUUgICAgMHgwMDEwCiAjZGVmaW5lIFNNQl9FWFRFTkRFRF9TSUdOQVRVUkVTIDB4MDAyMAogCkBAIC04MDYsNyArODE5LDcgQEAKICNkZWZpbmUgSUNPVU5UX01BU0sJCTB4MDBGRgogI2RlZmluZSBQSVBFX1JFQURfTU9ERQkJMHgwMTAwCiAjZGVmaW5lIE5BTUVEX1BJUEVfVFlQRQkJMHgwNDAwCi0jZGVmaW5lIFBJUEVfRU5EX1BPSU5UCQkweDA4MDAKKyNkZWZpbmUgUElQRV9FTkRfUE9JTlQJCTB4NDAwMAogI2RlZmluZSBCTE9DS0lOR19OQU1FRF9QSVBFCTB4ODAwMAogCiB0eXBlZGVmIHN0cnVjdCBzbWJfY29tX29wZW5fcmVxIHsJLyogYWxzbyBoYW5kbGVzIGNyZWF0ZSAqLwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9jaWZzc21iLmMgYi9mcy9jaWZzL2NpZnNzbWIuYwppbmRleCA5YjhiNGNmLi40NTExYjcwIDEwMDY0NAotLS0gYS9mcy9jaWZzL2NpZnNzbWIuYworKysgYi9mcy9jaWZzL2NpZnNzbWIuYwpAQCAtMTcyOCw3ICsxNzI4LDcgQEAKIHsKIAlpbnQgcmMgPSAwOwogCUxPQ0tfUkVRICpwU01CID0gTlVMTDsKLQlMT0NLX1JTUCAqcFNNQnIgPSBOVUxMOworLyoJTE9DS19SU1AgKnBTTUJyID0gTlVMTDsgKi8gLyogTm8gcmVzcG9uc2UgZGF0YSBvdGhlciB0aGFuIHJjIHRvIHBhcnNlICovCiAJaW50IGJ5dGVzX3JldHVybmVkOwogCWludCB0aW1lb3V0ID0gMDsKIAlfX3UxNiBjb3VudDsKQEAgLTE3MzksOCArMTczOSw2IEBACiAJaWYgKHJjKQogCQlyZXR1cm4gcmM7CiAKLQlwU01CciA9IChMT0NLX1JTUCAqKXBTTUI7IC8qIEJCIHJlbW92ZW1lIEJCICovCi0KIAlpZiAobG9ja1R5cGUgPT0gTE9DS0lOR19BTkRYX09QTE9DS19SRUxFQVNFKSB7CiAJCXRpbWVvdXQgPSBDSUZTX0FTWU5DX09QOyAvKiBubyByZXNwb25zZSBleHBlY3RlZCAqLwogCQlwU01CLT5UaW1lb3V0ID0gMDsKQEAgLTE3NzQsNyArMTc3Miw3IEBACiAKIAlpZiAod2FpdEZsYWcpIHsKIAkJcmMgPSBTZW5kUmVjZWl2ZUJsb2NraW5nTG9jayh4aWQsIHRjb24sIChzdHJ1Y3Qgc21iX2hkciAqKSBwU01CLAotCQkJKHN0cnVjdCBzbWJfaGRyICopIHBTTUJyLCAmYnl0ZXNfcmV0dXJuZWQpOworCQkJKHN0cnVjdCBzbWJfaGRyICopIHBTTUIsICZieXRlc19yZXR1cm5lZCk7CiAJCWNpZnNfc21hbGxfYnVmX3JlbGVhc2UocFNNQik7CiAJfSBlbHNlIHsKIAkJcmMgPSBTZW5kUmVjZWl2ZU5vUnNwKHhpZCwgdGNvbi0+c2VzLCAoc3RydWN0IHNtYl9oZHIgKilwU01CLApAQCAtMzkyNyw5ICszOTI1LDkgQEAKIAl9CiAKIAlyZWYgPSAoc3RydWN0IGRmc19yZWZlcnJhbF9sZXZlbF8zICopICYocFNNQnItPnJlZmVycmFscyk7Ci0JaWYgKHJlZi0+VmVyc2lvbk51bWJlciAhPSAzKSB7CisJaWYgKHJlZi0+VmVyc2lvbk51bWJlciAhPSBjcHVfdG9fbGUxNigzKSkgewogCQljRVJST1IoMSwgKCJSZWZlcnJhbHMgb2YgViVkIHZlcnNpb24gYXJlIG5vdCBzdXBwb3J0ZWQsIgotCQkJInNob3VsZCBiZSBWMyIsIHJlZi0+VmVyc2lvbk51bWJlcikpOworCQkJInNob3VsZCBiZSBWMyIsIGxlMTZfdG9fY3B1KHJlZi0+VmVyc2lvbk51bWJlcikpKTsKIAkJcmMgPSAtRUlOVkFMOwogCQlnb3RvIHBhcnNlX0RGU19yZWZlcnJhbHNfZXhpdDsKIAl9CkBAIC0zOTc3LDcgKzM5NzUsNyBAQAogCQlpZiAocmMpCiAJCQlnb3RvIHBhcnNlX0RGU19yZWZlcnJhbHNfZXhpdDsKIAotCQlyZWYgKz0gcmVmLT5TaXplOworCQlyZWYgKz0gbGUxNl90b19jcHUocmVmLT5TaXplKTsKIAl9CiAKIHBhcnNlX0RGU19yZWZlcnJhbHNfZXhpdDoKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvY29ubmVjdC5jIGIvZnMvY2lmcy9jb25uZWN0LmMKaW5kZXggMDIzNDM0Zi4uZThmYTQ2YyAxMDA2NDQKLS0tIGEvZnMvY2lmcy9jb25uZWN0LmMKKysrIGIvZnMvY2lmcy9jb25uZWN0LmMKQEAgLTY1Myw2ICs2NTMsNyBAQAogCXNwaW5fbG9jaygmR2xvYmFsTWlkX0xvY2spOwogCXNlcnZlci0+dGNwU3RhdHVzID0gQ2lmc0V4aXRpbmc7CiAJc3Bpbl91bmxvY2soJkdsb2JhbE1pZF9Mb2NrKTsKKwl3YWtlX3VwX2FsbCgmc2VydmVyLT5yZXNwb25zZV9xKTsKIAogCS8qIGRvbid0IGV4aXQgdW50aWwga3RocmVhZF9zdG9wIGlzIGNhbGxlZCAqLwogCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKQEAgLTIxMjAsNiArMjEyMSwxMCBAQAogCQkJY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgfD0gQ0lGU19NT1VOVF9ESVJFQ1RfSU87CiAJCX0KIAorCQlpZiAoKHZvbHVtZV9pbmZvLmNpZnNfYWNsKSAmJiAodm9sdW1lX2luZm8uZHlucGVybSkpCisJCQljRVJST1IoMSwgKCJtb3VudCBvcHRpb24gZHlucGVybSBpZ25vcmVkIGlmIGNpZnNhY2wgIgorCQkJCSAgICJtb3VudCBvcHRpb24gc3VwcG9ydGVkIikpOworCiAJCXRjb24gPQogCQkgICAgZmluZF91bmMoc2luX3NlcnZlci5zaW5fYWRkci5zX2FkZHIsIHZvbHVtZV9pbmZvLlVOQywKIAkJCSAgICAgdm9sdW1lX2luZm8udXNlcm5hbWUpOwpkaWZmIC0tZ2l0IGEvZnMvY2lmcy9kaXIuYyBiL2ZzL2NpZnMvZGlyLmMKaW5kZXggZjBiNWI1Zi4uZmI2OWMxZiAxMDA2NDQKLS0tIGEvZnMvY2lmcy9kaXIuYworKysgYi9mcy9jaWZzL2Rpci5jCkBAIC0yNjAsNyArMjYwLDkgQEAKIAkJCQkJCSBidWYsIGlub2RlLT5pX3NiLCB4aWQsCiAJCQkJCQkgJmZpbGVIYW5kbGUpOwogCQkJaWYgKG5ld2lub2RlKSB7Ci0JCQkJbmV3aW5vZGUtPmlfbW9kZSA9IG1vZGU7CisJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKKwkJCQkgICAgQ0lGU19NT1VOVF9EWU5QRVJNKQorCQkJCQluZXdpbm9kZS0+aV9tb2RlID0gbW9kZTsKIAkJCQlpZiAoKG9wbG9jayAmIENJRlNfQ1JFQVRFX0FDVElPTikgJiYKIAkJCQkgICAgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkgICAgIENJRlNfTU9VTlRfU0VUX1VJRCkpIHsKZGlmZiAtLWdpdCBhL2ZzL2NpZnMvZmlsZS5jIGIvZnMvY2lmcy9maWxlLmMKaW5kZXggODYzNmNlYy4uMGFhYzgyNCAxMDA2NDQKLS0tIGEvZnMvY2lmcy9maWxlLmMKKysrIGIvZnMvY2lmcy9maWxlLmMKQEAgLTU0Niw3ICs1NDYsNiBAQAogCQkJbXNsZWVwKHRpbWVvdXQpOwogCQkJdGltZW91dCAqPSA4OwogCQl9Ci0JCWtmcmVlKHBTTUJGaWxlLT5zZWFyY2hfcmVzdW1lX25hbWUpOwogCQlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOwogCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCX0gZWxzZQpAQCAtNjA1LDEyICs2MDQsNiBAQAogCQkJZWxzZQogCQkJCWNpZnNfYnVmX3JlbGVhc2UocHRtcCk7CiAJCX0KLQkJcHRtcCA9IHBDRmlsZVN0cnVjdC0+c2VhcmNoX3Jlc3VtZV9uYW1lOwotCQlpZiAocHRtcCkgewotCQkJY0ZZSSgxLCAoImNsb3NlZGlyIGZyZWUgcmVzdW1lIG5hbWUiKSk7Ci0JCQlwQ0ZpbGVTdHJ1Y3QtPnNlYXJjaF9yZXN1bWVfbmFtZSA9IE5VTEw7Ci0JCQlrZnJlZShwdG1wKTsKLQkJfQogCQlrZnJlZShmaWxlLT5wcml2YXRlX2RhdGEpOwogCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCX0KZGlmZiAtLWdpdCBhL2ZzL2NpZnMvaW5vZGUuYyBiL2ZzL2NpZnMvaW5vZGUuYwppbmRleCAxMjlkYmZlLi4yZTkwNGJkIDEwMDY0NAotLS0gYS9mcy9jaWZzL2lub2RlLmMKKysrIGIvZnMvY2lmcy9pbm9kZS5jCkBAIC0yMTksMTUgKzIxOSwxNSBAQAogCXJjID0gQ0lGU1NNQlVuaXhRUGF0aEluZm8oeGlkLCBwVGNvbiwgZnVsbF9wYXRoLCAmZmluZF9kYXRhLAogCQkJCSAgY2lmc19zYi0+bG9jYWxfbmxzLCBjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmCiAJCQkJCUNJRlNfTU9VTlRfTUFQX1NQRUNJQUxfQ0hSKTsKLQlpZiAocmMpIHsKLQkJaWYgKHJjID09IC1FUkVNT1RFICYmICFpc19kZnNfcmVmZXJyYWwpIHsKLQkJCWlzX2Rmc19yZWZlcnJhbCA9IHRydWU7Ci0JCQljRllJKERCRzIsICgiREZTIHJlZiIpKTsKLQkJCS8qIGZvciBERlMsIHNlcnZlciBkb2VzIG5vdCBnaXZlIHVzIHJlYWwgaW5vZGUgZGF0YSAqLwotCQkJZmlsbF9mYWtlX2ZpbmRkYXRhdW5peCgmZmluZF9kYXRhLCBzYik7Ci0JCQlyYyA9IDA7Ci0JCX0KLQl9CisJaWYgKHJjID09IC1FUkVNT1RFICYmICFpc19kZnNfcmVmZXJyYWwpIHsKKwkJaXNfZGZzX3JlZmVycmFsID0gdHJ1ZTsKKwkJY0ZZSShEQkcyLCAoIkRGUyByZWYiKSk7CisJCS8qIGZvciBERlMsIHNlcnZlciBkb2VzIG5vdCBnaXZlIHVzIHJlYWwgaW5vZGUgZGF0YSAqLworCQlmaWxsX2Zha2VfZmluZGRhdGF1bml4KCZmaW5kX2RhdGEsIHNiKTsKKwkJcmMgPSAwOworCX0gZWxzZSBpZiAocmMpCisJCWdvdG8gY2dpaXVfZXhpdDsKKwogCW51bV9vZl9ieXRlcyA9IGxlNjRfdG9fY3B1KGZpbmRfZGF0YS5OdW1PZkJ5dGVzKTsKIAllbmRfb2ZfZmlsZSA9IGxlNjRfdG9fY3B1KGZpbmRfZGF0YS5FbmRPZkZpbGUpOwogCkBAIC0yMzYsNyArMjM2LDcgQEAKIAkJKnBpbm9kZSA9IG5ld19pbm9kZShzYik7CiAJCWlmICgqcGlub2RlID09IE5VTEwpIHsKIAkJCXJjID0gLUVOT01FTTsKLQkJZ290byBjZ2lpdV9leGl0OworCQkJZ290byBjZ2lpdV9leGl0OwogCQl9CiAJCS8qIElzIGFuIGlfaW5vIG9mIHplcm8gbGVnYWw/ICovCiAJCS8qIG5vdGUgaW5vIGluY3JlbWVudGVkIHRvIHVuaXF1ZSBudW0gaW4gbmV3X2lub2RlICovCkBAIC00MTgsNiArNDE4LDcgQEAKIAljaGFyICpidWYgPSBOVUxMOwogCWJvb2wgYWRqdXN0VFogPSBmYWxzZTsKIAlib29sIGlzX2Rmc19yZWZlcnJhbCA9IGZhbHNlOworCXVtb2RlX3QgZGVmYXVsdF9tb2RlOwogCiAJcFRjb24gPSBjaWZzX3NiLT50Y29uOwogCWNGWUkoMSwgKCJHZXR0aW5nIGluZm8gb24gJXMiLCBmdWxsX3BhdGgpKTsKQEAgLTUzMCw0NyArNTMxLDQyIEBACiAJCWlub2RlLT5pX210aW1lLnR2X3NlYyArPSBwVGNvbi0+c2VzLT5zZXJ2ZXItPnRpbWVBZGo7CiAJfQogCi0JLyogc2V0IGRlZmF1bHQgbW9kZS4gd2lsbCBvdmVycmlkZSBmb3IgZGlycyBiZWxvdyAqLwotCWlmIChhdG9taWNfcmVhZCgmY2lmc0luZm8tPmluVXNlKSA9PSAwKQotCQkvKiBuZXcgaW5vZGUsIGNhbiBzYWZlbHkgc2V0IHRoZXNlIGZpZWxkcyAqLwotCQlpbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2ZpbGVfbW9kZTsKLQllbHNlIC8qIHNpbmNlIHdlIHNldCB0aGUgaW5vZGUgdHlwZSBiZWxvdyB3ZSBuZWVkIHRvIG1hc2sgb2ZmCi0JICAgICB0byBhdm9pZCBzdHJhbmdlIHJlc3VsdHMgaWYgdHlwZSBjaGFuZ2VzIGFuZCBib3RoCi0JICAgICBnZXQgb3JyZWQgaW4gKi8KLQkJaW5vZGUtPmlfbW9kZSAmPSB+U19JRk1UOwotLyoJaWYgKGF0dHIgJiBBVFRSX1JFUEFSU0UpICAqLwotCS8qIFdlIG5vIGxvbmdlciBoYW5kbGUgdGhlc2UgYXMgc3ltbGlua3MgYmVjYXVzZSB3ZSBjb3VsZCBub3QKLQkgICBmb2xsb3cgdGhlbSBkdWUgdG8gdGhlIGFic29sdXRlIHBhdGggd2l0aCBkcml2ZSBsZXR0ZXIgKi8KLQlpZiAoYXR0ciAmIEFUVFJfRElSRUNUT1JZKSB7Ci0JLyogb3ZlcnJpZGUgZGVmYXVsdCBwZXJtcyBzaW5jZSB3ZSBkbyBub3QgZG8gYnl0ZSByYW5nZSBsb2NraW5nCi0JICAgb24gZGlycyAqLwotCQlpbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2Rpcl9tb2RlOwotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7Ci0JfSBlbHNlIGlmICgoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSAmJgotCQkgICAoY2lmc0luZm8tPmNpZnNBdHRycyAmIEFUVFJfU1lTVEVNKSAmJgotCQkgICAvKiBObyBuZWVkIHRvIGxlNjQgY29udmVydCBzaXplIG9mIHplcm8gKi8KLQkJICAgKHBmaW5kRGF0YS0+RW5kT2ZGaWxlID09IDApKSB7Ci0JCWlub2RlLT5pX21vZGUgPSBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlOwotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZJRk87Ci0vKiBCQiBGaW5pc2ggZm9yIFNGVSBzdHlsZSBzeW1saW5rcyBhbmQgZGV2aWNlcyAqLwotCX0gZWxzZSBpZiAoKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9VTlhfRU1VTCkgJiYKLQkJICAgKGNpZnNJbmZvLT5jaWZzQXR0cnMgJiBBVFRSX1NZU1RFTSkpIHsKLQkJaWYgKGRlY29kZV9zZnVfaW5vZGUoaW5vZGUsIGxlNjRfdG9fY3B1KHBmaW5kRGF0YS0+RW5kT2ZGaWxlKSwKLQkJCQkgICAgIGZ1bGxfcGF0aCwgY2lmc19zYiwgeGlkKSkKLQkJCWNGWUkoMSwgKCJVbnJlY29nbml6ZWQgc2Z1IGlub2RlIHR5cGUiKSk7CisJLyogZ2V0IGRlZmF1bHQgaW5vZGUgbW9kZSAqLworCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpCisJCWRlZmF1bHRfbW9kZSA9IGNpZnNfc2ItPm1udF9kaXJfbW9kZTsKKwllbHNlCisJCWRlZmF1bHRfbW9kZSA9IGNpZnNfc2ItPm1udF9maWxlX21vZGU7CiAKLQkJY0ZZSSgxLCAoInNmdSBtb2RlIDAlbyIsIGlub2RlLT5pX21vZGUpKTsKKwkvKiBzZXQgcGVybWlzc2lvbiBiaXRzICovCisJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDAgfHwKKwkgICAgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9EWU5QRVJNKSA9PSAwKQorCQlpbm9kZS0+aV9tb2RlID0gZGVmYXVsdF9tb2RlOworCWVsc2UgeworCQkvKiBqdXN0IHJlZW5hYmxlIHdyaXRlIGJpdHMgaWYgIUFUVFJfUkVBRE9OTFkgKi8KKwkJaWYgKChpbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCAmJgorCQkgICAgKGF0dHIgJiBBVFRSX1JFQURPTkxZKSA9PSAwKQorCQkJaW5vZGUtPmlfbW9kZSB8PSAoU19JV1VHTyAmIGRlZmF1bHRfbW9kZSk7CisJCQlpbm9kZS0+aV9tb2RlICY9IH5TX0lGTVQ7CisJfQorCS8qIGNsZWFyIHdyaXRlIGJpdHMgaWYgQVRUUl9SRUFET05MWSBpcyBzZXQgKi8KKwlpZiAoYXR0ciAmIEFUVFJfUkVBRE9OTFkpCisJCWlub2RlLT5pX21vZGUgJj0gflNfSVdVR087CisKKwkvKiBzZXQgaW5vZGUgdHlwZSAqLworCWlmICgoYXR0ciAmIEFUVFJfU1lTVEVNKSAmJgorCSAgICAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSkgeworCQkvKiBubyBuZWVkIHRvIGZpeCBlbmRpYW5uZXNzIG9uIDAgKi8KKwkJaWYgKHBmaW5kRGF0YS0+RW5kT2ZGaWxlID09IDApCisJCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZJRk87CisJCWVsc2UgaWYgKGRlY29kZV9zZnVfaW5vZGUoaW5vZGUsCisJCQkJbGU2NF90b19jcHUocGZpbmREYXRhLT5FbmRPZkZpbGUpLAorCQkJCWZ1bGxfcGF0aCwgY2lmc19zYiwgeGlkKSkKKwkJCWNGWUkoMSwgKCJ1bmtub3duIFNGVSBmaWxlIHR5cGVcbiIpKTsKIAl9IGVsc2UgewotCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZSRUc7Ci0JCS8qIHRyZWF0IGRvcyBhdHRyaWJ1dGUgb2YgcmVhZC1vbmx5IGFzIHJlYWQtb25seSBtb2RlIGVnIDU1NSAqLwotCQlpZiAoY2lmc0luZm8tPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpCi0JCQlpbm9kZS0+aV9tb2RlICY9IH4oU19JV1VHTyk7Ci0JCWVsc2UgaWYgKChpbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCkKLQkJCS8qIHRoZSBBVFRSX1JFQURPTkxZIGZsYWcgbWF5IGhhdmUgYmVlbgkqLwotCQkJLyogY2hhbmdlZCBvbiBzZXJ2ZXIgLS0gc2V0IGFueSB3IGJpdHMJKi8KLQkJCS8qIGFsbG93ZWQgYnkgbW50X2ZpbGVfbW9kZQkJKi8KLQkJCWlub2RlLT5pX21vZGUgfD0gKFNfSVdVR08gJiBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlKTsKLQkvKiBCQiBhZGQgY29kZSB0byB2YWxpZGF0ZSBpZiBkZXZpY2Ugb3Igd2VpcmQgc2hhcmUgb3IgZGV2aWNlIHR5cGU/ICovCisJCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpCisJCQlpbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCWVsc2UKKwkJCWlub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKIAl9CiAKIAlzcGluX2xvY2soJmlub2RlLT5pX2xvY2spOwpAQCAtMTAxOSw4ICsxMDE1LDExIEBACiAJCQkJCQlDSUZTX01PVU5UX01BUF9TUEVDSUFMX0NIUik7CiAJCQl9CiAJCQlpZiAoZGlyZW50cnktPmRfaW5vZGUpIHsKLQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlID0gbW9kZTsKLQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKKwkJCQkgICAgIENJRlNfTU9VTlRfRFlOUEVSTSkKKwkJCQkJZGlyZW50cnktPmRfaW5vZGUtPmlfbW9kZSA9CisJCQkJCQkobW9kZSB8IFNfSUZESVIpOworCiAJCQkJaWYgKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYKIAkJCQkgICAgIENJRlNfTU9VTlRfU0VUX1VJRCkgewogCQkJCQlkaXJlbnRyeS0+ZF9pbm9kZS0+aV91aWQgPQpAQCAtMTU0NywxMyArMTU0NiwyNiBAQAogCQl9IGVsc2UKIAkJCWdvdG8gY2lmc19zZXRhdHRyX2V4aXQ7CiAJfQotCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX1VJRCkgewotCQljRllJKDEsICgiVUlEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfdWlkKSk7Ci0JCXVpZCA9IGF0dHJzLT5pYV91aWQ7Ci0JfQotCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgewotCQljRllJKDEsICgiR0lEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfZ2lkKSk7Ci0JCWdpZCA9IGF0dHJzLT5pYV9naWQ7CisKKwkvKgorCSAqIFdpdGhvdXQgdW5peCBleHRlbnNpb25zIHdlIGNhbid0IHNlbmQgb3duZXJzaGlwIGNoYW5nZXMgdG8gdGhlCisJICogc2VydmVyLCBzbyBzaWxlbnRseSBpZ25vcmUgdGhlbS4gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggaG93CisJICogbG9jYWwgRE9TL1dpbmRvd3MgZmlsZXN5c3RlbXMgYmVoYXZlIChWRkFULCBOVEZTLCBldGMpLiBXaXRoCisJICogQ0lGU0FDTCBzdXBwb3J0ICsgcHJvcGVyIFdpbmRvd3MgdG8gVW5peCBpZG1hcHBpbmcsIHdlIG1heSBiZQorCSAqIGFibGUgdG8gc3VwcG9ydCB0aGlzIGluIHRoZSBmdXR1cmUuCisJICovCisJaWYgKCFwVGNvbi0+dW5peF9leHQgJiYKKwkgICAgIShjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfU0VUX1VJRCkpIHsKKwkJYXR0cnMtPmlhX3ZhbGlkICY9IH4oQVRUUl9VSUQgfCBBVFRSX0dJRCk7CisJfSBlbHNlIHsKKwkJaWYgKGF0dHJzLT5pYV92YWxpZCAmIEFUVFJfVUlEKSB7CisJCQljRllJKDEsICgiVUlEIGNoYW5nZWQgdG8gJWQiLCBhdHRycy0+aWFfdWlkKSk7CisJCQl1aWQgPSBhdHRycy0+aWFfdWlkOworCQl9CisJCWlmIChhdHRycy0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgeworCQkJY0ZZSSgxLCAoIkdJRCBjaGFuZ2VkIHRvICVkIiwgYXR0cnMtPmlhX2dpZCkpOworCQkJZ2lkID0gYXR0cnMtPmlhX2dpZDsKKwkJfQogCX0KIAogCXRpbWVfYnVmLkF0dHJpYnV0ZXMgPSAwOwpAQCAtMTU2Myw3ICsxNTc1LDcgQEAKIAkJYXR0cnMtPmlhX3ZhbGlkICY9IH5BVFRSX01PREU7CiAKIAlpZiAoYXR0cnMtPmlhX3ZhbGlkICYgQVRUUl9NT0RFKSB7Ci0JCWNGWUkoMSwgKCJNb2RlIGNoYW5nZWQgdG8gMHgleCIsIGF0dHJzLT5pYV9tb2RlKSk7CisJCWNGWUkoMSwgKCJNb2RlIGNoYW5nZWQgdG8gMCVvIiwgYXR0cnMtPmlhX21vZGUpKTsKIAkJbW9kZSA9IGF0dHJzLT5pYV9tb2RlOwogCX0KIApAQCAtMTU3OCwxOCArMTU5MCwxOCBAQAogI2lmZGVmIENPTkZJR19DSUZTX0VYUEVSSU1FTlRBTAogCQlpZiAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0NJRlNfQUNMKQogCQkJcmMgPSBtb2RlX3RvX2FjbChpbm9kZSwgZnVsbF9wYXRoLCBtb2RlKTsKLQkJZWxzZSBpZiAoKG1vZGUgJiBTX0lXVUdPKSA9PSAwKSB7Ci0jZWxzZQotCQlpZiAoKG1vZGUgJiBTX0lXVUdPKSA9PSAwKSB7CisJCWVsc2UKICNlbmRpZgotCQkJLyogbm90IHdyaXRlYWJsZSAqLwotCQkJaWYgKChjaWZzSW5vZGUtPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpID09IDApIHsKLQkJCQlzZXRfZG9zYXR0ciA9IHRydWU7Ci0JCQkJdGltZV9idWYuQXR0cmlidXRlcyA9Ci0JCQkJCWNwdV90b19sZTMyKGNpZnNJbm9kZS0+Y2lmc0F0dHJzIHwKLQkJCQkJCSAgICBBVFRSX1JFQURPTkxZKTsKLQkJCX0KLQkJfSBlbHNlIGlmIChjaWZzSW5vZGUtPmNpZnNBdHRycyAmIEFUVFJfUkVBRE9OTFkpIHsKKwkJaWYgKCgobW9kZSAmIFNfSVdVR08pID09IDApICYmCisJCSAgICAoY2lmc0lub2RlLT5jaWZzQXR0cnMgJiBBVFRSX1JFQURPTkxZKSA9PSAwKSB7CisJCQlzZXRfZG9zYXR0ciA9IHRydWU7CisJCQl0aW1lX2J1Zi5BdHRyaWJ1dGVzID0gY3B1X3RvX2xlMzIoY2lmc0lub2RlLT5jaWZzQXR0cnMgfAorCQkJCQkJCSAgQVRUUl9SRUFET05MWSk7CisJCQkvKiBmaXggdXAgbW9kZSBpZiB3ZSdyZSBub3QgdXNpbmcgZHlucGVybSAqLworCQkJaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRFlOUEVSTSkgPT0gMCkKKwkJCQlhdHRycy0+aWFfbW9kZSA9IGlub2RlLT5pX21vZGUgJiB+U19JV1VHTzsKKwkJfSBlbHNlIGlmICgobW9kZSAmIFNfSVdVR08pICYmCisJCQkgICAoY2lmc0lub2RlLT5jaWZzQXR0cnMgJiBBVFRSX1JFQURPTkxZKSkgewogCQkJLyogSWYgZmlsZSBpcyByZWFkb25seSBvbiBzZXJ2ZXIsIHdlIHdvdWxkCiAJCQlub3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdCAtIHNvIGlmIGFueSB3cml0ZQogCQkJYml0IGlzIGVuYWJsZWQgZm9yIHVzZXIgb3IgZ3JvdXAgb3Igb3RoZXIgd2UKQEAgLTE2MDAsNiArMTYxMiwyMCBAQAogCQkJLyogV2luZG93cyBpZ25vcmVzIHNldCB0byB6ZXJvICovCiAJCQlpZiAodGltZV9idWYuQXR0cmlidXRlcyA9PSAwKQogCQkJCXRpbWVfYnVmLkF0dHJpYnV0ZXMgfD0gY3B1X3RvX2xlMzIoQVRUUl9OT1JNQUwpOworCisJCQkvKiByZXNldCBsb2NhbCBpbm9kZSBwZXJtaXNzaW9ucyB0byBub3JtYWwgKi8KKwkJCWlmICghKGNpZnNfc2ItPm1udF9jaWZzX2ZsYWdzICYgQ0lGU19NT1VOVF9EWU5QRVJNKSkgeworCQkJCWF0dHJzLT5pYV9tb2RlICY9IH4oU19JQUxMVUdPKTsKKwkJCQlpZiAoU19JU0RJUihpbm9kZS0+aV9tb2RlKSkKKwkJCQkJYXR0cnMtPmlhX21vZGUgfD0KKwkJCQkJCWNpZnNfc2ItPm1udF9kaXJfbW9kZTsKKwkJCQllbHNlCisJCQkJCWF0dHJzLT5pYV9tb2RlIHw9CisJCQkJCQljaWZzX3NiLT5tbnRfZmlsZV9tb2RlOworCQkJfQorCQl9IGVsc2UgaWYgKCEoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX0RZTlBFUk0pKSB7CisJCQkvKiBpZ25vcmUgbW9kZSBjaGFuZ2UgLSBBVFRSX1JFQURPTkxZIGhhc24ndCBjaGFuZ2VkICovCisJCQlhdHRycy0+aWFfdmFsaWQgJj0gfkFUVFJfTU9ERTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvZnMvY2lmcy9taXNjLmMgYi9mcy9jaWZzL21pc2MuYwppbmRleCAxZDY5YjgwLi40YjE3ZjhmIDEwMDY0NAotLS0gYS9mcy9jaWZzL21pc2MuYworKysgYi9mcy9jaWZzL21pc2MuYwpAQCAtNTE5LDggKzUxOSw3IEBACiAJCQlwbm90aWZ5ID0gKHN0cnVjdCBmaWxlX25vdGlmeV9pbmZvcm1hdGlvbiAqKQogCQkJCSgoY2hhciAqKSZwU01Cci0+aGRyLlByb3RvY29sICsgZGF0YV9vZmZzZXQpOwogCQkJY0ZZSSgxLCAoImRub3RpZnkgb24gJXMgQWN0aW9uOiAweCV4IiwKLQkJCQkgcG5vdGlmeS0+RmlsZU5hbWUsCi0JCQkJcG5vdGlmeS0+QWN0aW9uKSk7ICAvKiBCQiByZW1vdmVtZSBCQiAqLworCQkJCSBwbm90aWZ5LT5GaWxlTmFtZSwgcG5vdGlmeS0+QWN0aW9uKSk7CiAJCQkvKiAgIGNpZnNfZHVtcF9tZW0oIlJjdmQgbm90aWZ5IERhdGE6ICIsYnVmLAogCQkJCXNpemVvZihzdHJ1Y3Qgc21iX2hkcikrNjApOyAqLwogCQkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9mcy9jaWZzL3JlYWRkaXIuYyBiL2ZzL2NpZnMvcmVhZGRpci5jCmluZGV4IDcxM2MyNTEuLjgzZjMwNjkgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvcmVhZGRpci5jCisrKyBiL2ZzL2NpZnMvcmVhZGRpci5jCkBAIC0xMzIsNiArMTMyLDcgQEAKIAlfX3UzMiBhdHRyOwogCV9fdTY0IGFsbG9jYXRpb25fc2l6ZTsKIAlfX3U2NCBlbmRfb2ZfZmlsZTsKKwl1bW9kZV90IGRlZmF1bHRfbW9kZTsKIAogCS8qIHNhdmUgbXRpbWUgYW5kIHNpemUgKi8KIAlsb2NhbF9tdGltZSA9IHRtcF9pbm9kZS0+aV9tdGltZTsKQEAgLTE4Nyw0OCArMTg4LDU0IEBACiAJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApIHsKIAkJdG1wX2lub2RlLT5pX3VpZCA9IGNpZnNfc2ItPm1udF91aWQ7CiAJCXRtcF9pbm9kZS0+aV9naWQgPSBjaWZzX3NiLT5tbnRfZ2lkOwotCQkvKiBzZXQgZGVmYXVsdCBtb2RlLiB3aWxsIG92ZXJyaWRlIGZvciBkaXJzIGJlbG93ICovCi0JCXRtcF9pbm9kZS0+aV9tb2RlID0gY2lmc19zYi0+bW50X2ZpbGVfbW9kZTsKLQl9IGVsc2UgewotCQkvKiBtYXNrIG9mZiB0aGUgdHlwZSBiaXRzIHNpbmNlIGl0IGdldHMgc2V0Ci0JCWJlbG93IGFuZCB3ZSBkbyBub3Qgd2FudCB0byBnZXQgdHdvIHR5cGUKLQkJYml0cyBzZXQgKi8KKwl9CisKKwlpZiAoYXR0ciAmIEFUVFJfRElSRUNUT1JZKQorCQlkZWZhdWx0X21vZGUgPSBjaWZzX3NiLT5tbnRfZGlyX21vZGU7CisJZWxzZQorCQlkZWZhdWx0X21vZGUgPSBjaWZzX3NiLT5tbnRfZmlsZV9tb2RlOworCisJLyogc2V0IGluaXRpYWwgcGVybWlzc2lvbnMgKi8KKwlpZiAoKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApIHx8CisJICAgIChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfRFlOUEVSTSkgPT0gMCkKKwkJdG1wX2lub2RlLT5pX21vZGUgPSBkZWZhdWx0X21vZGU7CisJZWxzZSB7CisJCS8qIGp1c3QgcmVlbmFibGUgd3JpdGUgYml0cyBpZiAhQVRUUl9SRUFET05MWSAqLworCQlpZiAoKHRtcF9pbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCAmJgorCQkgICAgKGF0dHIgJiBBVFRSX1JFQURPTkxZKSA9PSAwKQorCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gKFNfSVdVR08gJiBkZWZhdWx0X21vZGUpOworCiAJCXRtcF9pbm9kZS0+aV9tb2RlICY9IH5TX0lGTVQ7CiAJfQogCi0JaWYgKGF0dHIgJiBBVFRSX0RJUkVDVE9SWSkgewotCQkqcG9iamVjdF90eXBlID0gRFRfRElSOwotCQkvKiBvdmVycmlkZSBkZWZhdWx0IHBlcm1zIHNpbmNlIHdlIGRvIG5vdCBsb2NrIGRpcnMgKi8KLQkJaWYgKGF0b21pY19yZWFkKCZjaWZzSW5mby0+aW5Vc2UpID09IDApCi0JCQl0bXBfaW5vZGUtPmlfbW9kZSA9IGNpZnNfc2ItPm1udF9kaXJfbW9kZTsKLQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRkRJUjsKLQl9IGVsc2UgaWYgKChjaWZzX3NiLT5tbnRfY2lmc19mbGFncyAmIENJRlNfTU9VTlRfVU5YX0VNVUwpICYmCi0JCSAgIChhdHRyICYgQVRUUl9TWVNURU0pKSB7CisJLyogY2xlYXIgd3JpdGUgYml0cyBpZiBBVFRSX1JFQURPTkxZIGlzIHNldCAqLworCWlmIChhdHRyICYgQVRUUl9SRUFET05MWSkKKwkJdG1wX2lub2RlLT5pX21vZGUgJj0gflNfSVdVR087CisKKwkvKiBzZXQgaW5vZGUgdHlwZSAqLworCWlmICgoYXR0ciAmIEFUVFJfU1lTVEVNKSAmJgorCSAgICAoY2lmc19zYi0+bW50X2NpZnNfZmxhZ3MgJiBDSUZTX01PVU5UX1VOWF9FTVVMKSkgewogCQlpZiAoZW5kX29mX2ZpbGUgPT0gMCkgIHsKLQkJCSpwb2JqZWN0X3R5cGUgPSBEVF9GSUZPOwogCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRklGTzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9GSUZPOwogCQl9IGVsc2UgewotCQkJLyogcmF0aGVyIHRoYW4gZ2V0IHRoZSB0eXBlIGhlcmUsIHdlIG1hcmsgdGhlCi0JCQlpbm9kZSBhcyBuZWVkaW5nIHJldmFsaWRhdGUgYW5kIGdldCB0aGUgcmVhbCB0eXBlCi0JCQkoYmxrIHZzIGNociB2cy4gc3ltbGluaykgbGF0ZXIgaWUgaW4gbG9va3VwICovCi0JCQkqcG9iamVjdF90eXBlID0gRFRfUkVHOworCQkJLyoKKwkJCSAqIHRyeWluZyB0byBnZXQgdGhlIHR5cGUgY2FuIGJlIHNsb3csIHNvIGp1c3QgY2FsbAorCQkJICogdGhpcyBhIHJlZ3VsYXIgZmlsZSBmb3Igbm93LCBhbmQgbWFyayBmb3IgcmV2YWwKKwkJCSAqLwogCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9SRUc7CiAJCQljaWZzSW5mby0+dGltZSA9IDA7CiAJCX0KLS8qIHdlIG5vIGxvbmdlciBtYXJrIHRoZXNlIGJlY2F1c2Ugd2UgY291bGQgbm90IGZvbGxvdyB0aGVtICovCi0vKiAgICAgICAgfSBlbHNlIGlmIChhdHRyICYgQVRUUl9SRVBBUlNFKSB7Ci0JCSpwb2JqZWN0X3R5cGUgPSBEVF9MTks7Ci0JCXRtcF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZMTks7ICovCiAJfSBlbHNlIHsKLQkJKnBvYmplY3RfdHlwZSA9IERUX1JFRzsKLQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKLQkJaWYgKGF0dHIgJiBBVFRSX1JFQURPTkxZKQotCQkJdG1wX2lub2RlLT5pX21vZGUgJj0gfihTX0lXVUdPKTsKLQkJZWxzZSBpZiAoKHRtcF9pbm9kZS0+aV9tb2RlICYgU19JV1VHTykgPT0gMCkKLQkJCS8qIHRoZSBBVFRSX1JFQURPTkxZIGZsYWcgbWF5IGhhdmUgYmVlbiBjaGFuZ2VkIG9uICAgKi8KLQkJCS8qIHNlcnZlciAtLSBzZXQgYW55IHcgYml0cyBhbGxvd2VkIGJ5IG1udF9maWxlX21vZGUgKi8KLQkJCXRtcF9pbm9kZS0+aV9tb2RlIHw9IChTX0lXVUdPICYgY2lmc19zYi0+bW50X2ZpbGVfbW9kZSk7Ci0JfSAvKiBjb3VsZCBhZGQgY29kZSBoZXJlIC0gdG8gdmFsaWRhdGUgaWYgZGV2aWNlIG9yIHdlaXJkIHNoYXJlIHR5cGU/ICovCisJCWlmIChhdHRyICYgQVRUUl9ESVJFQ1RPUlkpIHsKKwkJCXRtcF9pbm9kZS0+aV9tb2RlIHw9IFNfSUZESVI7CisJCQkqcG9iamVjdF90eXBlID0gRFRfRElSOworCQl9IGVsc2UgeworCQkJdG1wX2lub2RlLT5pX21vZGUgfD0gU19JRlJFRzsKKwkJCSpwb2JqZWN0X3R5cGUgPSBEVF9SRUc7CisJCX0KKwl9CiAKIAkvKiBjYW4gbm90IGZpbGwgaW4gbmxpbmsgaGVyZSBhcyBpbiBxcGF0aGluZm8gdmVyc2lvbiBhbmQgVW54IHNlYXJjaCAqLwogCWlmIChhdG9taWNfcmVhZCgmY2lmc0luZm8tPmluVXNlKSA9PSAwKQpAQCAtNjc1LDggKzY4Miw2IEBACiAJCQljaWZzRmlsZS0+aW52YWxpZEhhbmRsZSA9IHRydWU7CiAJCQlDSUZTRmluZENsb3NlKHhpZCwgcFRjb24sIGNpZnNGaWxlLT5uZXRmaWQpOwogCQl9Ci0JCWtmcmVlKGNpZnNGaWxlLT5zZWFyY2hfcmVzdW1lX25hbWUpOwotCQljaWZzRmlsZS0+c2VhcmNoX3Jlc3VtZV9uYW1lID0gTlVMTDsKIAkJaWYgKGNpZnNGaWxlLT5zcmNoX2luZi5udHdya19idWZfc3RhcnQpIHsKIAkJCWNGWUkoMSwgKCJmcmVlaW5nIFNNQiBmZiBjYWNoZSBidWYgb24gc2VhcmNoIHJld2luZCIpKTsKIAkJCWlmIChjaWZzRmlsZS0+c3JjaF9pbmYuc21hbGxCdWYpCkBAIC0xMDQzLDkgKzEwNDgsNyBAQAogCQl9IC8qIGVsc2UgewogCQkJY2lmc0ZpbGUtPmludmFsaWRIYW5kbGUgPSB0cnVlOwogCQkJQ0lGU0ZpbmRDbG9zZSh4aWQsIHBUY29uLCBjaWZzRmlsZS0+bmV0ZmlkKTsKLQkJfQotCQlrZnJlZShjaWZzRmlsZS0+c2VhcmNoX3Jlc3VtZV9uYW1lKTsKLQkJY2lmc0ZpbGUtPnNlYXJjaF9yZXN1bWVfbmFtZSA9IE5VTEw7ICovCisJCX0gKi8KIAogCQlyYyA9IGZpbmRfY2lmc19lbnRyeSh4aWQsIHBUY29uLCBmaWxlLAogCQkJCSZjdXJyZW50X2VudHJ5LCAmbnVtX3RvX2ZpbGwpOwpkaWZmIC0tZ2l0IGEvZnMvZGNhY2hlLmMgYi9mcy9kY2FjaGUuYwppbmRleCAzZWU1ODhkNS4uNjA2OGMyNSAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMvZGNhY2hlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPgogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvZnNub3RpZnkuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CkBAIC0xMDYsOSArMTA3LDEwIEBACiAvKgogICogUmVsZWFzZSB0aGUgZGVudHJ5J3MgaW5vZGUsIHVzaW5nIHRoZSBmaWxlc3lzdGVtCiAgKiBkX2lwdXQoKSBvcGVyYXRpb24gaWYgZGVmaW5lZC4KLSAqIENhbGxlZCB3aXRoIGRjYWNoZV9sb2NrIGFuZCBwZXIgZGVudHJ5IGxvY2sgaGVsZCwgZHJvcHMgYm90aC4KICAqLwogc3RhdGljIHZvaWQgZGVudHJ5X2lwdXQoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKKwlfX3JlbGVhc2VzKGRlbnRyeS0+ZF9sb2NrKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKIAlpZiAoaW5vZGUpIHsKQEAgLTEzMiwxMiArMTM0LDEzIEBACiAgKiBkX2tpbGwgLSBraWxsIGRlbnRyeSBhbmQgcmV0dXJuIHBhcmVudAogICogQGRlbnRyeTogZGVudHJ5IHRvIGtpbGwKICAqCi0gKiBDYWxsZWQgd2l0aCBkY2FjaGVfbG9jayBhbmQgZF9sb2NrLCByZWxlYXNlcyBib3RoLiAgVGhlIGRlbnRyeSBtdXN0Ci0gKiBhbHJlYWR5IGJlIHVuaGFzaGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIExSVS4KKyAqIFRoZSBkZW50cnkgbXVzdCBhbHJlYWR5IGJlIHVuaGFzaGVkIGFuZCByZW1vdmVkIGZyb20gdGhlIExSVS4KICAqCiAgKiBJZiB0aGlzIGlzIHRoZSByb290IG9mIHRoZSBkZW50cnkgdHJlZSwgcmV0dXJuIE5VTEwuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpkX2tpbGwoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQorCV9fcmVsZWFzZXMoZGVudHJ5LT5kX2xvY2spCisJX19yZWxlYXNlcyhkY2FjaGVfbG9jaykKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQ7CiAKQEAgLTM4MywxMSArMzg2LDExIEBACiAgKiBUcnkgdG8gcHJ1bmUgYW5jZXN0b3JzIGFzIHdlbGwuICBUaGlzIGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50CiAgKiBxdWFkcmF0aWMgYmVoYXZpb3Igb2Ygc2hyaW5rX2RjYWNoZV9wYXJlbnQoKSwgYnV0IGlzIGFsc28gZXhwZWN0ZWQKICAqIHRvIGJlIGJlbmVmaWNpYWwgaW4gcmVkdWNpbmcgZGVudHJ5IGNhY2hlIGZyYWdtZW50YXRpb24uCi0gKgotICogQ2FsbGVkIHdpdGggZGNhY2hlX2xvY2ssIGRyb3BzIGl0IGFuZCB0aGVuIHJlZ2FpbnMuCi0gKiBDYWxsZWQgd2l0aCBkZW50cnktPmRfbG9jayBoZWxkLCBkcm9wcyBpdC4KICAqLwogc3RhdGljIHZvaWQgcHJ1bmVfb25lX2RlbnRyeShzdHJ1Y3QgZGVudHJ5ICogZGVudHJ5KQorCV9fcmVsZWFzZXMoZGVudHJ5LT5kX2xvY2spCisJX19yZWxlYXNlcyhkY2FjaGVfbG9jaykKKwlfX2FjcXVpcmVzKGRjYWNoZV9sb2NrKQogewogCV9fZF9kcm9wKGRlbnRyeSk7CiAJZGVudHJ5ID0gZF9raWxsKGRlbnRyeSk7CkBAIC0xNjA0LDEwICsxNjA3LDkgQEAKICAqCiAgKiBOb3RlOiBJZiBldmVyIHRoZSBsb2NraW5nIGluIGxvY2tfcmVuYW1lKCkgY2hhbmdlcywgdGhlbiBwbGVhc2UKICAqIHJlbWVtYmVyIHRvIHVwZGF0ZSB0aGlzIHRvby4uLgotICoKLSAqIE9uIHJldHVybiwgZGNhY2hlX2xvY2sgd2lsbCBoYXZlIGJlZW4gdW5sb2NrZWQuCiAgKi8KIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpfX2RfdW5hbGlhcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBkZW50cnkgKmFsaWFzKQorCV9fcmVsZWFzZXMoZGNhY2hlX2xvY2spCiB7CiAJc3RydWN0IG11dGV4ICptMSA9IE5VTEwsICptMiA9IE5VTEw7CiAJc3RydWN0IGRlbnRyeSAqcmV0OwpAQCAtMTc0MywxMSArMTc0NSw5IEBACiBzaG91bGRudF9iZV9oYXNoZWQ6CiAJc3Bpbl91bmxvY2soJmRjYWNoZV9sb2NrKTsKIAlCVUcoKTsKLQlnb3RvIHNob3VsZG50X2JlX2hhc2hlZDsKIH0KIAotc3RhdGljIGludCBwcmVwZW5kKGNoYXIgKipidWZmZXIsIGludCAqYnVmbGVuLCBjb25zdCBjaGFyICpzdHIsCi0JCQkgIGludCBuYW1lbGVuKQorc3RhdGljIGludCBwcmVwZW5kKGNoYXIgKipidWZmZXIsIGludCAqYnVmbGVuLCBjb25zdCBjaGFyICpzdHIsIGludCBuYW1lbGVuKQogewogCSpidWZsZW4gLT0gbmFtZWxlbjsKIAlpZiAoKmJ1ZmxlbiA8IDApCkBAIC0xNzU3LDggKzE3NTcsMTMgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBwcmVwZW5kX25hbWUoY2hhciAqKmJ1ZmZlciwgaW50ICpidWZsZW4sIHN0cnVjdCBxc3RyICpuYW1lKQoreworCXJldHVybiBwcmVwZW5kKGJ1ZmZlciwgYnVmbGVuLCBuYW1lLT5uYW1lLCBuYW1lLT5sZW4pOworfQorCiAvKioKLSAqIGRfcGF0aCAtIHJldHVybiB0aGUgcGF0aCBvZiBhIGRlbnRyeQorICogX19kX3BhdGggLSByZXR1cm4gdGhlIHBhdGggb2YgYSBkZW50cnkKICAqIEBwYXRoOiB0aGUgZGVudHJ5L3Zmc21vdW50IHRvIHJlcG9ydAogICogQHJvb3Q6IHJvb3QgdmZzbW50L2RlbnRyeSAobWF5IGJlIG1vZGlmaWVkIGJ5IHRoaXMgZnVuY3Rpb24pCiAgKiBAYnVmZmVyOiBidWZmZXIgdG8gcmV0dXJuIHZhbHVlIGluCkBAIC0xNzc5LDkgKzE3ODQsMTAgQEAKIHsKIAlzdHJ1Y3QgZGVudHJ5ICpkZW50cnkgPSBwYXRoLT5kZW50cnk7CiAJc3RydWN0IHZmc21vdW50ICp2ZnNtbnQgPSBwYXRoLT5tbnQ7Ci0JY2hhciAqIGVuZCA9IGJ1ZmZlcitidWZsZW47Ci0JY2hhciAqIHJldHZhbDsKKwljaGFyICplbmQgPSBidWZmZXIgKyBidWZsZW47CisJY2hhciAqcmV0dmFsOwogCisJc3Bpbl9sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAlwcmVwZW5kKCZlbmQsICZidWZsZW4sICJcMCIsIDEpOwogCWlmICghSVNfUk9PVChkZW50cnkpICYmIGRfdW5oYXNoZWQoZGVudHJ5KSAmJgogCQkocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCAiIChkZWxldGVkKSIsIDEwKSAhPSAwKSkKQEAgLTE4MDAsMzggKzE4MDYsMzcgQEAKIAkJCWJyZWFrOwogCQlpZiAoZGVudHJ5ID09IHZmc21udC0+bW50X3Jvb3QgfHwgSVNfUk9PVChkZW50cnkpKSB7CiAJCQkvKiBHbG9iYWwgcm9vdD8gKi8KLQkJCXNwaW5fbG9jaygmdmZzbW91bnRfbG9jayk7CiAJCQlpZiAodmZzbW50LT5tbnRfcGFyZW50ID09IHZmc21udCkgewotCQkJCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAkJCQlnb3RvIGdsb2JhbF9yb290OwogCQkJfQogCQkJZGVudHJ5ID0gdmZzbW50LT5tbnRfbW91bnRwb2ludDsKIAkJCXZmc21udCA9IHZmc21udC0+bW50X3BhcmVudDsKLQkJCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXBhcmVudCA9IGRlbnRyeS0+ZF9wYXJlbnQ7CiAJCXByZWZldGNoKHBhcmVudCk7Ci0JCWlmICgocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCBkZW50cnktPmRfbmFtZS5uYW1lLAotCQkJCWRlbnRyeS0+ZF9uYW1lLmxlbikgIT0gMCkgfHwKKwkJaWYgKChwcmVwZW5kX25hbWUoJmVuZCwgJmJ1ZmxlbiwgJmRlbnRyeS0+ZF9uYW1lKSAhPSAwKSB8fAogCQkgICAgKHByZXBlbmQoJmVuZCwgJmJ1ZmxlbiwgIi8iLCAxKSAhPSAwKSkKIAkJCWdvdG8gRWxvbmc7CiAJCXJldHZhbCA9IGVuZDsKIAkJZGVudHJ5ID0gcGFyZW50OwogCX0KIAorb3V0OgorCXNwaW5fdW5sb2NrKCZ2ZnNtb3VudF9sb2NrKTsKIAlyZXR1cm4gcmV0dmFsOwogCiBnbG9iYWxfcm9vdDoKIAlyZXR2YWwgKz0gMTsJLyogaGl0IHRoZSBzbGFzaCAqLwotCWlmIChwcmVwZW5kKCZyZXR2YWwsICZidWZsZW4sIGRlbnRyeS0+ZF9uYW1lLm5hbWUsCi0JCSAgICBkZW50cnktPmRfbmFtZS5sZW4pICE9IDApCisJaWYgKHByZXBlbmRfbmFtZSgmcmV0dmFsLCAmYnVmbGVuLCAmZGVudHJ5LT5kX25hbWUpICE9IDApCiAJCWdvdG8gRWxvbmc7CiAJcm9vdC0+bW50ID0gdmZzbW50OwogCXJvb3QtPmRlbnRyeSA9IGRlbnRyeTsKLQlyZXR1cm4gcmV0dmFsOworCWdvdG8gb3V0OworCiBFbG9uZzoKLQlyZXR1cm4gRVJSX1BUUigtRU5BTUVUT09MT05HKTsKKwlyZXR2YWwgPSBFUlJfUFRSKC1FTkFNRVRPT0xPTkcpOworCWdvdG8gb3V0OwogfQogCiAvKioKQEAgLTE4NDUsOSArMTg1MCw5IEBACiAgKgogICogUmV0dXJucyB0aGUgYnVmZmVyIG9yIGFuIGVycm9yIGNvZGUgaWYgdGhlIHBhdGggd2FzIHRvbyBsb25nLgogICoKLSAqICJidWZsZW4iIHNob3VsZCBiZSBwb3NpdGl2ZS4gQ2FsbGVyIGhvbGRzIHRoZSBkY2FjaGVfbG9jay4KKyAqICJidWZsZW4iIHNob3VsZCBiZSBwb3NpdGl2ZS4KICAqLwotY2hhciAqZF9wYXRoKHN0cnVjdCBwYXRoICpwYXRoLCBjaGFyICpidWYsIGludCBidWZsZW4pCitjaGFyICpkX3BhdGgoY29uc3Qgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKmJ1ZiwgaW50IGJ1ZmxlbikKIHsKIAljaGFyICpyZXM7CiAJc3RydWN0IHBhdGggcm9vdDsKQEAgLTE5MTUsMTYgKzE5MjAsMTEgQEAKIAlyZXR2YWwgPSBlbmQtMTsKIAkqcmV0dmFsID0gJy8nOwogCi0JZm9yICg7OykgewotCQlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQ7Ci0JCWlmIChJU19ST09UKGRlbnRyeSkpCi0JCQlicmVhazsKKwl3aGlsZSAoIUlTX1JPT1QoZGVudHJ5KSkgeworCQlzdHJ1Y3QgZGVudHJ5ICpwYXJlbnQgPSBkZW50cnktPmRfcGFyZW50OwogCi0JCXBhcmVudCA9IGRlbnRyeS0+ZF9wYXJlbnQ7CiAJCXByZWZldGNoKHBhcmVudCk7Ci0KLQkJaWYgKChwcmVwZW5kKCZlbmQsICZidWZsZW4sIGRlbnRyeS0+ZF9uYW1lLm5hbWUsCi0JCQkJZGVudHJ5LT5kX25hbWUubGVuKSAhPSAwKSB8fAorCQlpZiAoKHByZXBlbmRfbmFtZSgmZW5kLCAmYnVmbGVuLCAmZGVudHJ5LT5kX25hbWUpICE9IDApIHx8CiAJCSAgICAocHJlcGVuZCgmZW5kLCAmYnVmbGVuLCAiLyIsIDEpICE9IDApKQogCQkJZ290byBFbG9uZzsKIApAQCAtMTk3NSw3ICsxOTc1LDcgQEAKIAllcnJvciA9IC1FTk9FTlQ7CiAJLyogSGFzIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBoYXMgYmVlbiB1bmxpbmtlZD8gKi8KIAlzcGluX2xvY2soJmRjYWNoZV9sb2NrKTsKLQlpZiAocHdkLmRlbnRyeS0+ZF9wYXJlbnQgPT0gcHdkLmRlbnRyeSB8fCAhZF91bmhhc2hlZChwd2QuZGVudHJ5KSkgeworCWlmIChJU19ST09UKHB3ZC5kZW50cnkpIHx8ICFkX3VuaGFzaGVkKHB3ZC5kZW50cnkpKSB7CiAJCXVuc2lnbmVkIGxvbmcgbGVuOwogCQlzdHJ1Y3QgcGF0aCB0bXAgPSByb290OwogCQljaGFyICogY3dkOwpkaWZmIC0tZ2l0IGEvZnMvZGxtL3VzZXIuYyBiL2ZzL2RsbS91c2VyLmMKaW5kZXggZWJiY2YzOC4uZjk3NmYzMCAxMDA2NDQKLS0tIGEvZnMvZGxtL3VzZXIuYworKysgYi9mcy9kbG0vdXNlci5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NpZ25hbC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kbG0uaD4KICNpbmNsdWRlIDxsaW51eC9kbG1fZGV2aWNlLmg+CiAKQEAgLTYxOCwxMyArNjE5LDE3IEBACiAJc3RydWN0IGRsbV91c2VyX3Byb2MgKnByb2M7CiAJc3RydWN0IGRsbV9scyAqbHM7CiAKKwlsb2NrX2tlcm5lbCgpOwogCWxzID0gZGxtX2ZpbmRfbG9ja3NwYWNlX2RldmljZShpbWlub3IoaW5vZGUpKTsKLQlpZiAoIWxzKQorCWlmICghbHMpIHsKKwkJdW5sb2NrX2tlcm5lbCgpOwogCQlyZXR1cm4gLUVOT0VOVDsKKwl9CiAKIAlwcm9jID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRsbV91c2VyX3Byb2MpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXByb2MpIHsKIAkJZGxtX3B1dF9sb2Nrc3BhY2UobHMpOworCQl1bmxvY2tfa2VybmVsKCk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KIApAQCAtNjM2LDYgKzY0MSw3IEBACiAJc3Bpbl9sb2NrX2luaXQoJnByb2MtPmxvY2tzX3NwaW4pOwogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnByb2MtPndhaXQpOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHByb2M7CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC04NzAsNiArODc2LDcgQEAKIAogc3RhdGljIGludCBjdGxfZGV2aWNlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CisJY3ljbGVfa2VybmVsX2xvY2soKTsKIAlmaWxlLT5wcml2YXRlX2RhdGEgPSBOVUxMOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0ZnMvY3J5cHRvLmMgYi9mcy9lY3J5cHRmcy9jcnlwdG8uYwppbmRleCBjZDYyZDc1Li5lMjgzMmJjIDEwMDY0NAotLS0gYS9mcy9lY3J5cHRmcy9jcnlwdG8uYworKysgYi9mcy9lY3J5cHRmcy9jcnlwdG8uYwpAQCAtMTkwNiw5ICsxOTA2LDkgQEAKIAkJCWdvdG8gb3V0OwogCQl9CiAJfQotCW11dGV4X3VubG9jaygma2V5X3RmbV9saXN0X211dGV4KTsKIAkoKnRmbSkgPSBrZXlfdGZtLT5rZXlfdGZtOwogCSgqdGZtX211dGV4KSA9ICZrZXlfdGZtLT5rZXlfdGZtX211dGV4Owogb3V0OgorCW11dGV4X3VubG9jaygma2V5X3RmbV9saXN0X211dGV4KTsKIAlyZXR1cm4gcmM7CiB9CmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9lY3J5cHRmc19rZXJuZWwuaCBiL2ZzL2VjcnlwdGZzL2VjcnlwdGZzX2tlcm5lbC5oCmluZGV4IDk1MWVlMzMuLmMxNWMyNTcgMTAwNjQ0Ci0tLSBhL2ZzL2VjcnlwdGZzL2VjcnlwdGZzX2tlcm5lbC5oCisrKyBiL2ZzL2VjcnlwdGZzL2VjcnlwdGZzX2tlcm5lbC5oCkBAIC02NjAsOCArNjYwLDYgQEAKIGludCBlY3J5cHRmc19rZXlyaW5nX2F1dGhfdG9rX2Zvcl9zaWcoc3RydWN0IGtleSAqKmF1dGhfdG9rX2tleSwKIAkJCQkgICAgICBzdHJ1Y3QgZWNyeXB0ZnNfYXV0aF90b2sgKiphdXRoX3RvaywKIAkJCQkgICAgICBjaGFyICpzaWcpOwotaW50IGVjcnlwdGZzX3dyaXRlX3plcm9zKHN0cnVjdCBmaWxlICpmaWxlLCBwZ29mZl90IGluZGV4LCBpbnQgc3RhcnQsCi0JCQkgaW50IG51bV96ZXJvcyk7CiBpbnQgZWNyeXB0ZnNfd3JpdGVfbG93ZXIoc3RydWN0IGlub2RlICplY3J5cHRmc19pbm9kZSwgY2hhciAqZGF0YSwKIAkJCSBsb2ZmX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSk7CiBpbnQgZWNyeXB0ZnNfd3JpdGVfbG93ZXJfcGFnZV9zZWdtZW50KHN0cnVjdCBpbm9kZSAqZWNyeXB0ZnNfaW5vZGUsCmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9maWxlLmMgYi9mcy9lY3J5cHRmcy9maWxlLmMKaW5kZXggMjI1OGI4Zi4uMjQ3NDliZiAxMDA2NDQKLS0tIGEvZnMvZWNyeXB0ZnMvZmlsZS5jCisrKyBiL2ZzL2VjcnlwdGZzL2ZpbGUuYwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGF0Lmg+CiAjaW5jbHVkZSA8bGludXgvZnNfc3RhY2suaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgImVjcnlwdGZzX2tlcm5lbC5oIgogCiAvKioKQEAgLTI3Nyw5ICsyNzgsMTEgQEAKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBmaWxlICpsb3dlcl9maWxlID0gTlVMTDsKIAorCWxvY2tfa2VybmVsKCk7CiAJbG93ZXJfZmlsZSA9IGVjcnlwdGZzX2ZpbGVfdG9fbG93ZXIoZmlsZSk7CiAJaWYgKGxvd2VyX2ZpbGUtPmZfb3AgJiYgbG93ZXJfZmlsZS0+Zl9vcC0+ZmFzeW5jKQogCQlyYyA9IGxvd2VyX2ZpbGUtPmZfb3AtPmZhc3luYyhmZCwgbG93ZXJfZmlsZSwgZmxhZyk7CisJdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0ZnMvbWlzY2Rldi5jIGIvZnMvZWNyeXB0ZnMvbWlzY2Rldi5jCmluZGV4IDUwYzk5NGEuLjA5YTQ1MjIgMTAwNjQ0Ci0tLSBhL2ZzL2VjcnlwdGZzL21pc2NkZXYuYworKysgYi9mcy9lY3J5cHRmcy9taXNjZGV2LmMKQEAgLTU3NSwxMyArNTc1LDExIEBACiAJaW50IHJjOwogCiAJYXRvbWljX3NldCgmZWNyeXB0ZnNfbnVtX21pc2NkZXZfb3BlbnMsIDApOwotCW11dGV4X2xvY2soJmVjcnlwdGZzX2RhZW1vbl9oYXNoX211eCk7CiAJcmMgPSBtaXNjX3JlZ2lzdGVyKCZlY3J5cHRmc19taXNjZGV2KTsKIAlpZiAocmMpCiAJCXByaW50ayhLRVJOX0VSUiAiJXM6IEZhaWxlZCB0byByZWdpc3RlciBtaXNjZWxsYW5lb3VzIGRldmljZSAiCiAJCSAgICAgICAiZm9yIGNvbW11bmljYXRpb25zIHdpdGggdXNlcnNwYWNlIGRhZW1vbnM7IHJjID0gWyVkXVxuIiwKIAkJICAgICAgIF9fZnVuY19fLCByYyk7Ci0JbXV0ZXhfdW5sb2NrKCZlY3J5cHRmc19kYWVtb25faGFzaF9tdXgpOwogCXJldHVybiByYzsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0ZnMvcmVhZF93cml0ZS5jIGIvZnMvZWNyeXB0ZnMvcmVhZF93cml0ZS5jCmluZGV4IGViZjU1MTUuLjc1YzJlYTkgMTAwNjQ0Ci0tLSBhL2ZzL2VjcnlwdGZzL3JlYWRfd3JpdGUuYworKysgYi9mcy9lY3J5cHRmcy9yZWFkX3dyaXRlLmMKQEAgLTE1NywyMCArMTU3LDYgQEAKIAkJCSAgICAgICBlY3J5cHRmc19wYWdlX2lkeCwgcmMpOwogCQkJZ290byBvdXQ7CiAJCX0KLQkJaWYgKHN0YXJ0X29mZnNldF9pbl9wYWdlKSB7Ci0JCQkvKiBSZWFkIGluIHRoZSBwYWdlIGZyb20gdGhlIGxvd2VyCi0JCQkgKiBpbnRvIHRoZSBlQ3J5cHRmcyBpbm9kZSBwYWdlIGNhY2hlLAotCQkJICogZGVjcnlwdGluZyAqLwotCQkJcmMgPSBlY3J5cHRmc19kZWNyeXB0X3BhZ2UoZWNyeXB0ZnNfcGFnZSk7Ci0JCQlpZiAocmMpIHsKLQkJCQlwcmludGsoS0VSTl9FUlIgIiVzOiBFcnJvciBkZWNyeXB0aW5nICIKLQkJCQkgICAgICAgInBhZ2U7IHJjID0gWyVkXVxuIiwKLQkJCQkgICAgICAgX19mdW5jX18sIHJjKTsKLQkJCQlDbGVhclBhZ2VVcHRvZGF0ZShlY3J5cHRmc19wYWdlKTsKLQkJCQlwYWdlX2NhY2hlX3JlbGVhc2UoZWNyeXB0ZnNfcGFnZSk7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCX0KIAkJZWNyeXB0ZnNfcGFnZV92aXJ0ID0ga21hcF9hdG9taWMoZWNyeXB0ZnNfcGFnZSwgS01fVVNFUjApOwogCiAJCS8qCkBAIC0zNDksMTQgKzMzNSw2IEBACiAJCQkgICAgICAgZWNyeXB0ZnNfcGFnZV9pZHgsIHJjKTsKIAkJCWdvdG8gb3V0OwogCQl9Ci0JCXJjID0gZWNyeXB0ZnNfZGVjcnlwdF9wYWdlKGVjcnlwdGZzX3BhZ2UpOwotCQlpZiAocmMpIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiJXM6IEVycm9yIGRlY3J5cHRpbmcgIgotCQkJICAgICAgICJwYWdlOyByYyA9IFslZF1cbiIsIF9fZnVuY19fLCByYyk7Ci0JCQlDbGVhclBhZ2VVcHRvZGF0ZShlY3J5cHRmc19wYWdlKTsKLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShlY3J5cHRmc19wYWdlKTsKLQkJCWdvdG8gb3V0OwotCQl9CiAJCWVjcnlwdGZzX3BhZ2VfdmlydCA9IGttYXBfYXRvbWljKGVjcnlwdGZzX3BhZ2UsIEtNX1VTRVIwKTsKIAkJbWVtY3B5KChkYXRhICsgZGF0YV9vZmZzZXQpLAogCQkgICAgICAgKChjaGFyICopZWNyeXB0ZnNfcGFnZV92aXJ0ICsgc3RhcnRfb2Zmc2V0X2luX3BhZ2UpLApkaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jCmluZGV4IDNjMmJhN2MuLmZkOTIzNDMgMTAwNjQ0Ci0tLSBhL2ZzL2V4ZWMuYworKysgYi9mcy9leGVjLmMKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlIDxsaW51eC9maWxlLmg+CiAjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9hLm91dC5oPgogI2luY2x1ZGUgPGxpbnV4L3N0YXQuaD4KICNpbmNsdWRlIDxsaW51eC9mY250bC5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CkBAIC02MSw2ICs2MCwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L2ttb2QuaD4KICNlbmRpZgogCisjaWZkZWYgX19hbHBoYV9fCisvKiBmb3IgL3NiaW4vbG9hZGVyIGhhbmRsaW5nIGluIHNlYXJjaF9iaW5hcnlfaGFuZGxlcigpICovCisjaW5jbHVkZSA8bGludXgvYS5vdXQuaD4KKyNlbmRpZgorCiBpbnQgY29yZV91c2VzX3BpZDsKIGNoYXIgY29yZV9wYXR0ZXJuW0NPUkVOQU1FX01BWF9TSVpFXSA9ICJjb3JlIjsKIGludCBzdWlkX2R1bXBhYmxlID0gMDsKQEAgLTYwNiw3ICs2MTAsNyBAQAogCWJwcm0tPmV4ZWMgLT0gc3RhY2tfc2hpZnQ7CiAKIAlkb3duX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwotCXZtX2ZsYWdzID0gdm1hLT52bV9mbGFnczsKKwl2bV9mbGFncyA9IFZNX1NUQUNLX0ZMQUdTOwogCiAJLyoKIAkgKiBBZGp1c3Qgc3RhY2sgZXhlY3V0ZSBwZXJtaXNzaW9uczsgZXhwbGljaXRseSBlbmFibGUgZm9yCkBAIC04NjAsNiArODY0LDcgQEAKIAogbm9fdGhyZWFkX2dyb3VwOgogCWV4aXRfaXRpbWVycyhzaWcpOworCWZsdXNoX2l0aW1lcl9zaWduYWxzKCk7CiAJaWYgKGxlYWRlcikKIAkJcmVsZWFzZV90YXNrKGxlYWRlcik7CiAKQEAgLTExNTQsNyArMTE1OSw3IEBACiB7CiAJaW50IHRyeSxyZXR2YWw7CiAJc3RydWN0IGxpbnV4X2JpbmZtdCAqZm10OwotI2lmIGRlZmluZWQoX19hbHBoYV9fKSAmJiBkZWZpbmVkKENPTkZJR19BUkNIX1NVUFBPUlRTX0FPVVQpCisjaWZkZWYgX19hbHBoYV9fCiAJLyogaGFuZGxlIC9zYmluL2xvYWRlci4uICovCiAJewogCSAgICBzdHJ1Y3QgZXhlYyAqIGVoID0gKHN0cnVjdCBleGVjICopIGJwcm0tPmJ1ZjsKZGlmZiAtLWdpdCBhL2ZzL2V4dDMvcmVzaXplLmMgYi9mcy9leHQzL3Jlc2l6ZS5jCmluZGV4IDI4Y2ZkMGIuLjc3Mjc4ZTkgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDMvcmVzaXplLmMKKysrIGIvZnMvZXh0My9yZXNpemUuYwpAQCAtNTgwLDcgKzU4MCw4IEBACiAJfQogCiAJYmxrID0gRVhUM19TQihzYiktPnNfc2JoLT5iX2Jsb2NrbnIgKyAxICsgRVhUM19TQihzYiktPnNfZ2RiX2NvdW50OwotCWRhdGEgPSAoX19sZTMyICopZGluZC0+Yl9kYXRhICsgRVhUM19TQihzYiktPnNfZ2RiX2NvdW50OworCWRhdGEgPSAoX19sZTMyICopZGluZC0+Yl9kYXRhICsgKEVYVDNfU0Ioc2IpLT5zX2dkYl9jb3VudCAlCisJCQkJCSBFWFQzX0FERFJfUEVSX0JMT0NLKHNiKSk7CiAJZW5kID0gKF9fbGUzMiAqKWRpbmQtPmJfZGF0YSArIEVYVDNfQUREUl9QRVJfQkxPQ0soc2IpOwogCiAJLyogR2V0IGVhY2ggcmVzZXJ2ZWQgcHJpbWFyeSBHRFQgYmxvY2sgYW5kIHZlcmlmeSBpdCBob2xkcyBiYWNrdXBzICovCmRpZmYgLS1naXQgYS9mcy9leHQzL3N1cGVyLmMgYi9mcy9leHQzL3N1cGVyLmMKaW5kZXggZmUzMTE5YS4uMjg0NTQyNSAxMDA2NDQKLS0tIGEvZnMvZXh0My9zdXBlci5jCisrKyBiL2ZzL2V4dDMvc3VwZXIuYwpAQCAtMjg3NSw4ICsyODc1LDEwIEBACiAJCWJsaysrOwogCX0KIG91dDoKLQlpZiAobGVuID09IHRvd3JpdGUpCisJaWYgKGxlbiA9PSB0b3dyaXRlKSB7CisJCW11dGV4X3VubG9jaygmaW5vZGUtPmlfbXV0ZXgpOwogCQlyZXR1cm4gZXJyOworCX0KIAlpZiAoaW5vZGUtPmlfc2l6ZSA8IG9mZitsZW4tdG93cml0ZSkgewogCQlpX3NpemVfd3JpdGUoaW5vZGUsIG9mZitsZW4tdG93cml0ZSk7CiAJCUVYVDNfSShpbm9kZSktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9iYWxsb2MuYyBiL2ZzL2V4dDQvYmFsbG9jLmMKaW5kZXggMzA0OTRjNS4uNDk1YWIyMSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9iYWxsb2MuYworKysgYi9mcy9leHQ0L2JhbGxvYy5jCkBAIC00Myw2ICs0Myw0NiBAQAogCiB9CiAKK3N0YXRpYyBpbnQgZXh0NF9ibG9ja19pbl9ncm91cChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2ZzYmxrX3QgYmxvY2ssCisJCQlleHQ0X2dyb3VwX3QgYmxvY2tfZ3JvdXApCit7CisJZXh0NF9ncm91cF90IGFjdHVhbF9ncm91cDsKKwlleHQ0X2dldF9ncm91cF9ub19hbmRfb2Zmc2V0KHNiLCBibG9jaywgJmFjdHVhbF9ncm91cCwgTlVMTCk7CisJaWYgKGFjdHVhbF9ncm91cCA9PSBibG9ja19ncm91cCkKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZXh0NF9ncm91cF91c2VkX21ldGFfYmxvY2tzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCQkJZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQoreworCWV4dDRfZnNibGtfdCB0bXA7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJLyogYmxvY2sgYml0bWFwLCBpbm9kZSBiaXRtYXAsIGFuZCBpbm9kZSB0YWJsZSBibG9ja3MgKi8KKwlpbnQgdXNlZF9ibG9ja3MgPSBzYmktPnNfaXRiX3Blcl9ncm91cCArIDI7CisKKwlpZiAoRVhUNF9IQVNfSU5DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0lOQ09NUEFUX0ZMRVhfQkcpKSB7CisJCXN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmdkcDsKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKworCQlnZHAgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBibG9ja19ncm91cCwgJmJoKTsKKwkJaWYgKCFleHQ0X2Jsb2NrX2luX2dyb3VwKHNiLCBleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSwKKwkJCQkJYmxvY2tfZ3JvdXApKQorCQkJdXNlZF9ibG9ja3MtLTsKKworCQlpZiAoIWV4dDRfYmxvY2tfaW5fZ3JvdXAoc2IsIGV4dDRfaW5vZGVfYml0bWFwKHNiLCBnZHApLAorCQkJCQlibG9ja19ncm91cCkpCisJCQl1c2VkX2Jsb2Nrcy0tOworCisJCXRtcCA9IGV4dDRfaW5vZGVfdGFibGUoc2IsIGdkcCk7CisJCWZvciAoOyB0bXAgPCBleHQ0X2lub2RlX3RhYmxlKHNiLCBnZHApICsKKwkJCQlzYmktPnNfaXRiX3Blcl9ncm91cDsgdG1wKyspIHsKKwkJCWlmICghZXh0NF9ibG9ja19pbl9ncm91cChzYiwgdG1wLCBibG9ja19ncm91cCkpCisJCQkJdXNlZF9ibG9ja3MgLT0gMTsKKwkJfQorCX0KKwlyZXR1cm4gdXNlZF9ibG9ja3M7Cit9CiAvKiBJbml0aWFsaXplcyBhbiB1bmluaXRpYWxpemVkIGJsb2NrIGJpdG1hcCBpZiBnaXZlbiwgYW5kIHJldHVybnMgdGhlCiAgKiBudW1iZXIgb2YgYmxvY2tzIGZyZWUgaW4gdGhlIGdyb3VwLiAqLwogdW5zaWduZWQgZXh0NF9pbml0X2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLApAQCAtODEsMTIgKzEyMSw3IEBACiAJCQkJbGUxNl90b19jcHUoc2JpLT5zX2VzLT5zX3Jlc2VydmVkX2dkdF9ibG9ja3MpOwogCQl9CiAJfSBlbHNlIHsgLyogRm9yIE1FVEFfQkdfQkxPQ0tfR1JPVVBTICovCi0JCWludCBncm91cF9yZWwgPSAoYmxvY2tfZ3JvdXAgLQotCQkJCSBsZTMyX3RvX2NwdShzYmktPnNfZXMtPnNfZmlyc3RfbWV0YV9iZykpICUKLQkJCQlFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKTsKLQkJaWYgKGdyb3VwX3JlbCA9PSAwIHx8IGdyb3VwX3JlbCA9PSAxIHx8Ci0JCSAgICAoZ3JvdXBfcmVsID09IEVYVDRfREVTQ19QRVJfQkxPQ0soc2IpIC0gMSkpCi0JCQliaXRfbWF4ICs9IDE7CisJCWJpdF9tYXggKz0gZXh0NF9iZ19udW1fZ2RiKHNiLCBibG9ja19ncm91cCk7CiAJfQogCiAJaWYgKGJsb2NrX2dyb3VwID09IHNiaS0+c19ncm91cHNfY291bnQgLSAxKSB7CkBAIC0xMDUsMjAgKzE0MCwzNCBAQAogCWZyZWVfYmxvY2tzID0gZ3JvdXBfYmxvY2tzIC0gYml0X21heDsKIAogCWlmIChiaCkgewotCQlleHQ0X2ZzYmxrX3Qgc3RhcnQ7CisJCWV4dDRfZnNibGtfdCBzdGFydCwgdG1wOworCQlpbnQgZmxleF9iZyA9IDA7CiAKIAkJZm9yIChiaXQgPSAwOyBiaXQgPCBiaXRfbWF4OyBiaXQrKykKIAkJCWV4dDRfc2V0X2JpdChiaXQsIGJoLT5iX2RhdGEpOwogCiAJCXN0YXJ0ID0gZXh0NF9ncm91cF9maXJzdF9ibG9ja19ubyhzYiwgYmxvY2tfZ3JvdXApOwogCi0JCS8qIFNldCBiaXRzIGZvciBibG9jayBhbmQgaW5vZGUgYml0bWFwcywgYW5kIGlub2RlIHRhYmxlICovCi0JCWV4dDRfc2V0X2JpdChleHQ0X2Jsb2NrX2JpdG1hcChzYiwgZ2RwKSAtIHN0YXJ0LCBiaC0+Yl9kYXRhKTsKLQkJZXh0NF9zZXRfYml0KGV4dDRfaW5vZGVfYml0bWFwKHNiLCBnZHApIC0gc3RhcnQsIGJoLT5iX2RhdGEpOwotCQlmb3IgKGJpdCA9IChleHQ0X2lub2RlX3RhYmxlKHNiLCBnZHApIC0gc3RhcnQpLAotCQkgICAgIGJpdF9tYXggPSBiaXQgKyBzYmktPnNfaXRiX3Blcl9ncm91cDsgYml0IDwgYml0X21heDsgYml0KyspCi0JCQlleHQ0X3NldF9iaXQoYml0LCBiaC0+Yl9kYXRhKTsKKwkJaWYgKEVYVDRfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoc2IsCisJCQkJCSAgICAgIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9GTEVYX0JHKSkKKwkJCWZsZXhfYmcgPSAxOwogCisJCS8qIFNldCBiaXRzIGZvciBibG9jayBhbmQgaW5vZGUgYml0bWFwcywgYW5kIGlub2RlIHRhYmxlICovCisJCXRtcCA9IGV4dDRfYmxvY2tfYml0bWFwKHNiLCBnZHApOworCQlpZiAoIWZsZXhfYmcgfHwgZXh0NF9ibG9ja19pbl9ncm91cChzYiwgdG1wLCBibG9ja19ncm91cCkpCisJCQlleHQ0X3NldF9iaXQodG1wIC0gc3RhcnQsIGJoLT5iX2RhdGEpOworCisJCXRtcCA9IGV4dDRfaW5vZGVfYml0bWFwKHNiLCBnZHApOworCQlpZiAoIWZsZXhfYmcgfHwgZXh0NF9ibG9ja19pbl9ncm91cChzYiwgdG1wLCBibG9ja19ncm91cCkpCisJCQlleHQ0X3NldF9iaXQodG1wIC0gc3RhcnQsIGJoLT5iX2RhdGEpOworCisJCXRtcCA9IGV4dDRfaW5vZGVfdGFibGUoc2IsIGdkcCk7CisJCWZvciAoOyB0bXAgPCBleHQ0X2lub2RlX3RhYmxlKHNiLCBnZHApICsKKwkJCQlzYmktPnNfaXRiX3Blcl9ncm91cDsgdG1wKyspIHsKKwkJCWlmICghZmxleF9iZyB8fAorCQkJCWV4dDRfYmxvY2tfaW5fZ3JvdXAoc2IsIHRtcCwgYmxvY2tfZ3JvdXApKQorCQkJCWV4dDRfc2V0X2JpdCh0bXAgLSBzdGFydCwgYmgtPmJfZGF0YSk7CisJCX0KIAkJLyoKIAkJICogQWxzbyBpZiB0aGUgbnVtYmVyIG9mIGJsb2NrcyB3aXRoaW4gdGhlIGdyb3VwIGlzCiAJCSAqIGxlc3MgdGhhbiB0aGUgYmxvY2tzaXplICogOCAoIHdoaWNoIGlzIHRoZSBzaXplCkBAIC0xMjYsOCArMTc1LDcgQEAKIAkJICovCiAJCW1hcmtfYml0bWFwX2VuZChncm91cF9ibG9ja3MsIHNiLT5zX2Jsb2Nrc2l6ZSAqIDgsIGJoLT5iX2RhdGEpOwogCX0KLQotCXJldHVybiBmcmVlX2Jsb2NrcyAtIHNiaS0+c19pdGJfcGVyX2dyb3VwIC0gMjsKKwlyZXR1cm4gZnJlZV9ibG9ja3MgLSBleHQ0X2dyb3VwX3VzZWRfbWV0YV9ibG9ja3Moc2IsIGJsb2NrX2dyb3VwKTsKIH0KIAogCkBAIC0yNDIsNyArMjkwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIC8qKgotICogcmVhZF9ibG9ja19iaXRtYXAoKQorICogZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcCgpCiAgKiBAc2I6CQkJc3VwZXIgYmxvY2sKICAqIEBibG9ja19ncm91cDoJZ2l2ZW4gYmxvY2sgZ3JvdXAKICAqCkBAIC0yNTIsNyArMzAwLDcgQEAKICAqIFJldHVybiBidWZmZXJfaGVhZCBvbiBzdWNjZXNzIG9yIE5VTEwgaW4gY2FzZSBvZiBmYWlsdXJlLgogICovCiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKgotcmVhZF9ibG9ja19iaXRtYXAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKQorZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgYmxvY2tfZ3JvdXApCiB7CiAJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqIGRlc2M7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICogYmggPSBOVUxMOwpAQCAtMzU2LDggKzQwNCw3IEBACiAJCXByZXYgPSByc3Y7CiAJfQogCXByaW50aygiV2luZG93IG1hcCBjb21wbGV0ZS5cbiIpOwotCWlmIChiYWQpCi0JCUJVRygpOworCUJVR19PTihiYWQpOwogfQogI2RlZmluZSByc3Zfd2luZG93X2R1bXAocm9vdCwgdmVyYm9zZSkgXAogCV9fcnN2X3dpbmRvd19kdW1wKChyb290KSwgKHZlcmJvc2UpLCBfX2Z1bmNfXykKQEAgLTY0MSw3ICs2ODgsNyBAQAogCQljb3VudCAtPSBvdmVyZmxvdzsKIAl9CiAJYnJlbHNlKGJpdG1hcF9iaCk7Ci0JYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGJsb2NrX2dyb3VwKTsKKwliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBibG9ja19ncm91cCk7CiAJaWYgKCFiaXRtYXBfYmgpCiAJCWdvdG8gZXJyb3JfcmV0dXJuOwogCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjIChzYiwgYmxvY2tfZ3JvdXAsICZnZF9iaCk7CkBAIC03NTcsNiArODA0LDEzIEBACiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBibG9ja19ncm91cCkpOwogCXBlcmNwdV9jb3VudGVyX2FkZCgmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgY291bnQpOwogCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgYmxvY2tfZ3JvdXApOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyArPSBjb3VudDsKKwkJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJfQorCiAJLyogV2UgZGlydGllZCB0aGUgYml0bWFwIGJsb2NrICovCiAJQlVGRkVSX1RSQUNFKGJpdG1hcF9iaCwgImRpcnRpZWQgYml0bWFwIGJsb2NrIik7CiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYml0bWFwX2JoKTsKQEAgLTE1NDUsMjMgKzE1OTksMzUgQEAKIAogLyoqCiAgKiBleHQ0X2hhc19mcmVlX2Jsb2NrcygpCi0gKiBAc2JpOgkJaW4tY29yZSBzdXBlciBibG9jayBzdHJ1Y3R1cmUuCisgKiBAc2JpOglpbi1jb3JlIHN1cGVyIGJsb2NrIHN0cnVjdHVyZS4KKyAqIEBuYmxvY2tzOgludW1iZXIgb2YgbmVlZWQgYmxvY2tzCiAgKgotICogQ2hlY2sgaWYgZmlsZXN5c3RlbSBoYXMgYXQgbGVhc3QgMSBmcmVlIGJsb2NrIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbi4KKyAqIENoZWNrIGlmIGZpbGVzeXN0ZW0gaGFzIGZyZWUgYmxvY2tzIGF2YWlsYWJsZSBmb3IgYWxsb2NhdGlvbi4KKyAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGJsb2NrcyBhdmFpYmxlIGZvciBhbGxvY2F0aW9uIGZvciB0aGlzIHJlcXVlc3QKKyAqIE9uIHN1Y2Nlc3MsIHJldHVybiBuYmxvY2tzCiAgKi8KLXN0YXRpYyBpbnQgZXh0NF9oYXNfZnJlZV9ibG9ja3Moc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpKQorZXh0NF9mc2Jsa190IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSwKKwkJCQkJCWV4dDRfZnNibGtfdCBuYmxvY2tzKQogewotCWV4dDRfZnNibGtfdCBmcmVlX2Jsb2Nrcywgcm9vdF9ibG9ja3M7CisJZXh0NF9mc2Jsa190IGZyZWVfYmxvY2tzOworCWV4dDRfZnNibGtfdCByb290X2Jsb2NrcyA9IDA7CiAKIAlmcmVlX2Jsb2NrcyA9IHBlcmNwdV9jb3VudGVyX3JlYWRfcG9zaXRpdmUoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOwotCXJvb3RfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChzYmktPnNfZXMpOwotCWlmIChmcmVlX2Jsb2NrcyA8IHJvb3RfYmxvY2tzICsgMSAmJiAhY2FwYWJsZShDQVBfU1lTX1JFU09VUkNFKSAmJgorCisJaWYgKCFjYXBhYmxlKENBUF9TWVNfUkVTT1VSQ0UpICYmCiAJCXNiaS0+c19yZXN1aWQgIT0gY3VycmVudC0+ZnN1aWQgJiYKLQkJKHNiaS0+c19yZXNnaWQgPT0gMCB8fCAhaW5fZ3JvdXBfcCAoc2JpLT5zX3Jlc2dpZCkpKSB7Ci0JCXJldHVybiAwOwotCX0KLQlyZXR1cm4gMTsKLX0KKwkJKHNiaS0+c19yZXNnaWQgPT0gMCB8fCAhaW5fZ3JvdXBfcChzYmktPnNfcmVzZ2lkKSkpCisJCXJvb3RfYmxvY2tzID0gZXh0NF9yX2Jsb2Nrc19jb3VudChzYmktPnNfZXMpOworI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoZnJlZV9ibG9ja3MgLSByb290X2Jsb2NrcyA8IEZCQ19CQVRDSCkKKwkJZnJlZV9ibG9ja3MgPQorCQkJcGVyY3B1X2NvdW50ZXJfc3VtX2FuZF9zZXQoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOworI2VuZGlmCisJaWYgKGZyZWVfYmxvY2tzIC0gcm9vdF9ibG9ja3MgPCBuYmxvY2tzKQorCQlyZXR1cm4gZnJlZV9ibG9ja3MgLSByb290X2Jsb2NrczsKKwlyZXR1cm4gbmJsb2NrczsKKyB9CisKIAogLyoqCiAgKiBleHQ0X3Nob3VsZF9yZXRyeV9hbGxvYygpCkBAIC0xNTc3LDcgKzE2NDMsNyBAQAogICovCiBpbnQgZXh0NF9zaG91bGRfcmV0cnlfYWxsb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpyZXRyaWVzKQogewotCWlmICghZXh0NF9oYXNfZnJlZV9ibG9ja3MoRVhUNF9TQihzYikpIHx8ICgqcmV0cmllcykrKyA+IDMpCisJaWYgKCFleHQ0X2hhc19mcmVlX2Jsb2NrcyhFWFQ0X1NCKHNiKSwgMSkgfHwgKCpyZXRyaWVzKSsrID4gMykKIAkJcmV0dXJuIDA7CiAKIAlqYmRfZGVidWcoMSwgIiVzOiByZXRyeWluZyBvcGVyYXRpb24gYWZ0ZXIgRU5PU1BDXG4iLCBzYi0+c19pZCk7CkBAIC0xNTg2LDIwICsxNjUyLDI0IEBACiB9CiAKIC8qKgotICogZXh0NF9uZXdfYmxvY2tzX29sZCgpIC0tIGNvcmUgYmxvY2socykgYWxsb2NhdGlvbiBmdW5jdGlvbgorICogZXh0NF9vbGRfbmV3X2Jsb2NrcygpIC0tIGNvcmUgYmxvY2sgYml0bWFwIGJhc2VkIGJsb2NrIGFsbG9jYXRpb24gZnVuY3Rpb24KKyAqCiAgKiBAaGFuZGxlOgkJaGFuZGxlIHRvIHRoaXMgdHJhbnNhY3Rpb24KICAqIEBpbm9kZToJCWZpbGUgaW5vZGUKICAqIEBnb2FsOgkJZ2l2ZW4gdGFyZ2V0IGJsb2NrKGZpbGVzeXN0ZW0gd2lkZSkKICAqIEBjb3VudDoJCXRhcmdldCBudW1iZXIgb2YgYmxvY2tzIHRvIGFsbG9jYXRlCiAgKiBAZXJycDoJCWVycm9yIGNvZGUKICAqCi0gKiBleHQ0X25ld19ibG9ja3MgdXNlcyBhIGdvYWwgYmxvY2sgdG8gYXNzaXN0IGFsbG9jYXRpb24uICBJdCB0cmllcyB0bwotICogYWxsb2NhdGUgYmxvY2socykgZnJvbSB0aGUgYmxvY2sgZ3JvdXAgY29udGFpbnMgdGhlIGdvYWwgYmxvY2sgZmlyc3QuIElmIHRoYXQKLSAqIGZhaWxzLCBpdCB3aWxsIHRyeSB0byBhbGxvY2F0ZSBibG9jayhzKSBmcm9tIG90aGVyIGJsb2NrIGdyb3VwcyB3aXRob3V0Ci0gKiBhbnkgc3BlY2lmaWMgZ29hbCBibG9jay4KKyAqIGV4dDRfb2xkX25ld19ibG9ja3MgdXNlcyBhIGdvYWwgYmxvY2sgdG8gYXNzaXN0IGFsbG9jYXRpb24gYW5kIGxvb2sgdXAKKyAqIHRoZSBibG9jayBiaXRtYXAgZGlyZWN0bHkgdG8gZG8gYmxvY2sgYWxsb2NhdGlvbi4gIEl0IHRyaWVzIHRvCisgKiBhbGxvY2F0ZSBibG9jayhzKSBmcm9tIHRoZSBibG9jayBncm91cCBjb250YWlucyB0aGUgZ29hbCBibG9jayBmaXJzdC4gSWYKKyAqIHRoYXQgZmFpbHMsIGl0IHdpbGwgdHJ5IHRvIGFsbG9jYXRlIGJsb2NrKHMpIGZyb20gb3RoZXIgYmxvY2sgZ3JvdXBzCisgKiB3aXRob3V0IGFueSBzcGVjaWZpYyBnb2FsIGJsb2NrLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gLW8gbm9tYmFsbG9jIG1vdW50IG9wdGlvbiBpcyBlbmFibGVkCiAgKgogICovCi1leHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0NF9mc2Jsa190IGV4dDRfb2xkX25ld19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCWV4dDRfZnNibGtfdCBnb2FsLCB1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKQogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqYml0bWFwX2JoID0gTlVMTDsKQEAgLTE2MjMsMTMgKzE2OTMsMjYgQEAKIAlleHQ0X2dyb3VwX3Qgbmdyb3VwczsKIAl1bnNpZ25lZCBsb25nIG51bSA9ICpjb3VudDsKIAotCSplcnJwID0gLUVOT1NQQzsKIAlzYiA9IGlub2RlLT5pX3NiOwogCWlmICghc2IpIHsKKwkJKmVycnAgPSAtRU5PREVWOwogCQlwcmludGsoImV4dDRfbmV3X2Jsb2NrOiBub25leGlzdGVudCBkZXZpY2UiKTsKIAkJcmV0dXJuIDA7CiAJfQogCisJc2JpID0gRVhUNF9TQihzYik7CisJaWYgKCFFWFQ0X0koaW5vZGUpLT5pX2RlbGFsbG9jX3Jlc2VydmVkX2ZsYWcpIHsKKwkJLyoKKwkJICogV2l0aCBkZWxhbGxvYyB3ZSBhbHJlYWR5IHJlc2VydmVkIHRoZSBibG9ja3MKKwkJICovCisJCSpjb3VudCA9IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHNiaSwgKmNvdW50KTsKKwl9CisJaWYgKCpjb3VudCA9PSAwKSB7CisJCSplcnJwID0gLUVOT1NQQzsKKwkJcmV0dXJuIDA7CS8qcmV0dXJuIHdpdGggRU5PU1BDIGVycm9yICovCisJfQorCW51bSA9ICpjb3VudDsKKwogCS8qCiAJICogQ2hlY2sgcXVvdGEgZm9yIGFsbG9jYXRpb24gb2YgdGhpcyBibG9jay4KIAkgKi8KQEAgLTE2NTMsMTEgKzE3MzYsNiBAQAogCWlmIChibG9ja19pICYmICgod2luZG93c3ogPSBibG9ja19pLT5yc3Zfd2luZG93X25vZGUucnN2X2dvYWxfc2l6ZSkgPiAwKSkKIAkJbXlfcnN2ID0gJmJsb2NrX2ktPnJzdl93aW5kb3dfbm9kZTsKIAotCWlmICghZXh0NF9oYXNfZnJlZV9ibG9ja3Moc2JpKSkgewotCQkqZXJycCA9IC1FTk9TUEM7Ci0JCWdvdG8gb3V0OwotCX0KLQogCS8qCiAJICogRmlyc3QsIHRlc3Qgd2hldGhlciB0aGUgZ29hbCBibG9jayBpcyBmcmVlLgogCSAqLwpAQCAtMTY4MSw3ICsxNzU5LDcgQEAKIAkJbXlfcnN2ID0gTlVMTDsKIAogCWlmIChmcmVlX2Jsb2NrcyA+IDApIHsKLQkJYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwX25vKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXBfbm8pOwogCQlpZiAoIWJpdG1hcF9iaCkKIAkJCWdvdG8gaW9fZXJyb3I7CiAJCWdycF9hbGxvY19ibGsgPSBleHQ0X3RyeV90b19hbGxvY2F0ZV93aXRoX3JzdihzYiwgaGFuZGxlLApAQCAtMTcxNyw3ICsxNzk1LDcgQEAKIAkJCWNvbnRpbnVlOwogCiAJCWJyZWxzZShiaXRtYXBfYmgpOwotCQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXBfbm8pOworCQliaXRtYXBfYmggPSBleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHNiLCBncm91cF9ubyk7CiAJCWlmICghYml0bWFwX2JoKQogCQkJZ290byBpb19lcnJvcjsKIAkJLyoKQEAgLTE4MjksNyArMTkwNywxNSBAQAogCWxlMTZfYWRkX2NwdSgmZ2RwLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCwgLW51bSk7CiAJZ2RwLT5iZ19jaGVja3N1bSA9IGV4dDRfZ3JvdXBfZGVzY19jc3VtKHNiaSwgZ3JvdXBfbm8sIGdkcCk7CiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBncm91cF9ubykpOwotCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgbnVtKTsKKwlpZiAoIUVYVDRfSShpbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZykKKwkJcGVyY3B1X2NvdW50ZXJfc3ViKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLCBudW0pOworCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgZ3JvdXBfbm8pOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyAtPSBudW07CisJCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCX0KIAogCUJVRkZFUl9UUkFDRShnZHBfYmgsICJqb3VybmFsX2RpcnR5X21ldGFkYXRhIGZvciBncm91cCBkZXNjcmlwdG9yIik7CiAJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgZ2RwX2JoKTsKQEAgLTE4NjIsNDYgKzE5NDgsMTA0IEBACiAJcmV0dXJuIDA7CiB9CiAKLWV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQlleHQ0X2ZzYmxrX3QgZ29hbCwgaW50ICplcnJwKQorI2RlZmluZSBFWFQ0X01FVEFfQkxPQ0sgMHgxCisKK3N0YXRpYyBleHQ0X2ZzYmxrX3QgZG9fYmxrX2FsbG9jKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwLCBpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IGFyOwogCWV4dDRfZnNibGtfdCByZXQ7CiAKIAlpZiAoIXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBNQkFMTE9DKSkgewotCQl1bnNpZ25lZCBsb25nIGNvdW50ID0gMTsKLQkJcmV0ID0gZXh0NF9uZXdfYmxvY2tzX29sZChoYW5kbGUsIGlub2RlLCBnb2FsLCAmY291bnQsIGVycnApOwotCQlyZXR1cm4gcmV0OworCQlyZXR1cm4gZXh0NF9vbGRfbmV3X2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBnb2FsLCBjb3VudCwgZXJycCk7CiAJfQogCiAJbWVtc2V0KCZhciwgMCwgc2l6ZW9mKGFyKSk7Ci0JYXIuaW5vZGUgPSBpbm9kZTsKLQlhci5nb2FsID0gZ29hbDsKLQlhci5sZW4gPSAxOwotCXJldCA9IGV4dDRfbWJfbmV3X2Jsb2NrcyhoYW5kbGUsICZhciwgZXJycCk7Ci0JcmV0dXJuIHJldDsKLX0KKwkvKiBGaWxsIHdpdGggbmVpZ2hib3VyIGFsbG9jYXRlZCBibG9ja3MgKi8KIAotZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQlleHQ0X2ZzYmxrX3QgZ29hbCwgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKLXsKLQlzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7Ci0JZXh0NF9mc2Jsa190IHJldDsKLQotCWlmICghdGVzdF9vcHQoaW5vZGUtPmlfc2IsIE1CQUxMT0MpKSB7Ci0JCXJldCA9IGV4dDRfbmV3X2Jsb2Nrc19vbGQoaGFuZGxlLCBpbm9kZSwgZ29hbCwgY291bnQsIGVycnApOwotCQlyZXR1cm4gcmV0OwotCX0KLQotCW1lbXNldCgmYXIsIDAsIHNpemVvZihhcikpOwogCWFyLmlub2RlID0gaW5vZGU7CiAJYXIuZ29hbCA9IGdvYWw7CiAJYXIubGVuID0gKmNvdW50OworCWFyLmxvZ2ljYWwgPSBpYmxvY2s7CisKKwlpZiAoU19JU1JFRyhpbm9kZS0+aV9tb2RlKSAmJiAhKGZsYWdzICYgRVhUNF9NRVRBX0JMT0NLKSkKKwkJLyogZW5hYmxlIGluLWNvcmUgcHJlYWxsb2NhdGlvbiBmb3IgZGF0YSBibG9jayBhbGxvY2F0aW9uICovCisJCWFyLmZsYWdzID0gRVhUNF9NQl9ISU5UX0RBVEE7CisJZWxzZQorCQkvKiBkaXNhYmxlIGluLWNvcmUgcHJlYWxsb2NhdGlvbiBmb3Igbm9uLXJlZ3VsYXIgZmlsZXMgKi8KKwkJYXIuZmxhZ3MgPSAwOworCiAJcmV0ID0gZXh0NF9tYl9uZXdfYmxvY2tzKGhhbmRsZSwgJmFyLCBlcnJwKTsKIAkqY291bnQgPSBhci5sZW47CiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIGV4dDRfbmV3X21ldGFfYmxvY2tzKCkgLS0gYWxsb2NhdGUgYmxvY2sgZm9yIG1ldGEgZGF0YSAoaW5kZXhpbmcpIGJsb2NrcworICoKKyAqIEBoYW5kbGU6ICAgICAgICAgICAgIGhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCisgKiBAaW5vZGU6ICAgICAgICAgICAgICBmaWxlIGlub2RlCisgKiBAZ29hbDogICAgICAgICAgICAgICBnaXZlbiB0YXJnZXQgYmxvY2soZmlsZXN5c3RlbSB3aWRlKQorICogQGNvdW50OgkJdG90YWwgbnVtYmVyIG9mIGJsb2NrcyBuZWVkCisgKiBAZXJycDogICAgICAgICAgICAgICBlcnJvciBjb2RlCisgKgorICogUmV0dXJuIDFzdCBhbGxvY2F0ZWQgYmxvY2sgbnVtYmVyb24gc3VjY2VzcywgKmNvdW50IHN0b3JlcyB0b3RhbCBhY2NvdW50CisgKiBlcnJvciBzdG9yZXMgaW4gZXJycCBwb2ludGVyCisgKi8KK2V4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQlleHQ0X2ZzYmxrX3QgZ29hbCwgdW5zaWduZWQgbG9uZyAqY291bnQsIGludCAqZXJycCkKK3sKKwlleHQ0X2ZzYmxrX3QgcmV0OworCXJldCA9IGRvX2Jsa19hbGxvYyhoYW5kbGUsIGlub2RlLCAwLCBnb2FsLAorCQkJCWNvdW50LCBlcnJwLCBFWFQ0X01FVEFfQkxPQ0spOworCS8qCisJICogQWNjb3VudCBmb3IgdGhlIGFsbG9jYXRlZCBtZXRhIGJsb2NrcworCSAqLworCWlmICghKCplcnJwKSkgeworCQlzcGluX2xvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJCUVYVDRfSShpbm9kZSktPmlfYWxsb2NhdGVkX21ldGFfYmxvY2tzICs9ICpjb3VudDsKKwkJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJfQorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBleHQ0X25ld19tZXRhX2Jsb2NrKCkgLS0gYWxsb2NhdGUgYmxvY2sgZm9yIG1ldGEgZGF0YSAoaW5kZXhpbmcpIGJsb2NrcworICoKKyAqIEBoYW5kbGU6ICAgICAgICAgICAgIGhhbmRsZSB0byB0aGlzIHRyYW5zYWN0aW9uCisgKiBAaW5vZGU6ICAgICAgICAgICAgICBmaWxlIGlub2RlCisgKiBAZ29hbDogICAgICAgICAgICAgICBnaXZlbiB0YXJnZXQgYmxvY2soZmlsZXN5c3RlbSB3aWRlKQorICogQGVycnA6ICAgICAgICAgICAgICAgZXJyb3IgY29kZQorICoKKyAqIFJldHVybiBhbGxvY2F0ZWQgYmxvY2sgbnVtYmVyIG9uIHN1Y2Nlc3MKKyAqLworZXh0NF9mc2Jsa190IGV4dDRfbmV3X21ldGFfYmxvY2soaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKKwkJZXh0NF9mc2Jsa190IGdvYWwsIGludCAqZXJycCkKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50ID0gMTsKKwlyZXR1cm4gZXh0NF9uZXdfbWV0YV9ibG9ja3MoaGFuZGxlLCBpbm9kZSwgZ29hbCwgJmNvdW50LCBlcnJwKTsKK30KKworLyoKKyAqIGV4dDRfbmV3X2Jsb2NrcygpIC0tIGFsbG9jYXRlIGRhdGEgYmxvY2tzCisgKgorICogQGhhbmRsZTogICAgICAgICAgICAgaGFuZGxlIHRvIHRoaXMgdHJhbnNhY3Rpb24KKyAqIEBpbm9kZTogICAgICAgICAgICAgIGZpbGUgaW5vZGUKKyAqIEBnb2FsOiAgICAgICAgICAgICAgIGdpdmVuIHRhcmdldCBibG9jayhmaWxlc3lzdGVtIHdpZGUpCisgKiBAY291bnQ6CQl0b3RhbCBudW1iZXIgb2YgYmxvY2tzIG5lZWQKKyAqIEBlcnJwOiAgICAgICAgICAgICAgIGVycm9yIGNvZGUKKyAqCisgKiBSZXR1cm4gMXN0IGFsbG9jYXRlZCBibG9jayBudW1iZXJvbiBzdWNjZXNzLCAqY291bnQgc3RvcmVzIHRvdGFsIGFjY291bnQKKyAqIGVycm9yIHN0b3JlcyBpbiBlcnJwIHBvaW50ZXIKKyAqLworCitleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKQoreworCXJldHVybiBkb19ibGtfYWxsb2MoaGFuZGxlLCBpbm9kZSwgaWJsb2NrLCBnb2FsLCBjb3VudCwgZXJycCwgMCk7Cit9CiAKIC8qKgogICogZXh0NF9jb3VudF9mcmVlX2Jsb2NrcygpIC0tIGNvdW50IGZpbGVzeXN0ZW0gZnJlZSBibG9ja3MKQEAgLTE5MzMsNyArMjA3Nyw3IEBACiAJCQljb250aW51ZTsKIAkJZGVzY19jb3VudCArPSBsZTE2X3RvX2NwdShnZHAtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKIAkJYnJlbHNlKGJpdG1hcF9iaCk7Ci0JCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBpKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgaSk7CiAJCWlmIChiaXRtYXBfYmggPT0gTlVMTCkKIAkJCWNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9mcy9leHQ0L2Rpci5jIGIvZnMvZXh0NC9kaXIuYwppbmRleCAyYmYwMzMxLi5kM2QyM2Q3IDEwMDY0NAotLS0gYS9mcy9leHQ0L2Rpci5jCisrKyBiL2ZzL2V4dDQvZGlyLmMKQEAgLTEyOSw3ICsxMjksOCBAQAogCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKIAogCQltYXBfYmguYl9zdGF0ZSA9IDA7Ci0JCWVyciA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKE5VTEwsIGlub2RlLCBibGssIDEsICZtYXBfYmgsIDAsIDApOworCQllcnIgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChOVUxMLCBpbm9kZSwgYmxrLCAxLCAmbWFwX2JoLAorCQkJCQkJMCwgMCwgMCk7CiAJCWlmIChlcnIgPiAwKSB7CiAJCQlwZ29mZl90IGluZGV4ID0gbWFwX2JoLmJfYmxvY2tuciA+PgogCQkJCQkoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOwpAQCAtMjcyLDcgKzI3Myw3IEBACiAKIAl3aGlsZSAobikgewogCQkvKiBEbyB0aGUgbm9kZSdzIGNoaWxkcmVuIGZpcnN0ICovCi0JCWlmICgobiktPnJiX2xlZnQpIHsKKwkJaWYgKG4tPnJiX2xlZnQpIHsKIAkJCW4gPSBuLT5yYl9sZWZ0OwogCQkJY29udGludWU7CiAJCX0KQEAgLTMwMSwyNCArMzAyLDE4IEBACiAJCQlwYXJlbnQtPnJiX3JpZ2h0ID0gTlVMTDsKIAkJbiA9IHBhcmVudDsKIAl9Ci0Jcm9vdC0+cmJfbm9kZSA9IE5VTEw7CiB9CiAKIAotc3RhdGljIHN0cnVjdCBkaXJfcHJpdmF0ZV9pbmZvICpjcmVhdGVfZGlyX2luZm8obG9mZl90IHBvcykKK3N0YXRpYyBzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqZXh0NF9odHJlZV9jcmVhdGVfZGlyX2luZm8obG9mZl90IHBvcykKIHsKIAlzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyAqcDsKIAotCXAgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyksIEdGUF9LRVJORUwpOworCXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgZGlyX3ByaXZhdGVfaW5mbyksIEdGUF9LRVJORUwpOwogCWlmICghcCkKIAkJcmV0dXJuIE5VTEw7Ci0JcC0+cm9vdC5yYl9ub2RlID0gTlVMTDsKLQlwLT5jdXJyX25vZGUgPSBOVUxMOwotCXAtPmV4dHJhX2ZuYW1lID0gTlVMTDsKLQlwLT5sYXN0X3BvcyA9IDA7CiAJcC0+Y3Vycl9oYXNoID0gcG9zMm1hal9oYXNoKHBvcyk7CiAJcC0+Y3Vycl9taW5vcl9oYXNoID0gcG9zMm1pbl9oYXNoKHBvcyk7Ci0JcC0+bmV4dF9oYXNoID0gMDsKIAlyZXR1cm4gcDsKIH0KIApAQCAtNDMzLDcgKzQyOCw3IEBACiAJaW50CXJldDsKIAogCWlmICghaW5mbykgewotCQlpbmZvID0gY3JlYXRlX2Rpcl9pbmZvKGZpbHAtPmZfcG9zKTsKKwkJaW5mbyA9IGV4dDRfaHRyZWVfY3JlYXRlX2Rpcl9pbmZvKGZpbHAtPmZfcG9zKTsKIAkJaWYgKCFpbmZvKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJCWZpbHAtPnByaXZhdGVfZGF0YSA9IGluZm87CmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDQuaCBiL2ZzL2V4dDQvZXh0NC5oCmluZGV4IDgxNTgwODMuLjMwM2U0MWMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZXh0NC5oCisrKyBiL2ZzL2V4dDQvZXh0NC5oCkBAIC0yMiw3ICsyMiw3IEBACiAjaW5jbHVkZSAiZXh0NF9pLmgiCiAKIC8qCi0gKiBUaGUgc2Vjb25kIGV4dGVuZGVkIGZpbGVzeXN0ZW0gY29uc3RhbnRzL3N0cnVjdHVyZXMKKyAqIFRoZSBmb3VydGggZXh0ZW5kZWQgZmlsZXN5c3RlbSBjb25zdGFudHMvc3RydWN0dXJlcwogICovCiAKIC8qCkBAIC00NSw3ICs0NSw3IEBACiAjZGVmaW5lIGV4dDRfZGVidWcoZiwgYS4uLikJCQkJCQlcCiAJZG8gewkJCQkJCQkJXAogCQlwcmludGsgKEtFUk5fREVCVUcgIkVYVDQtZnMgREVCVUcgKCVzLCAlZCk6ICVzOiIsCVwKLQkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsJCVwKKwkJCV9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18pOwkJCVwKIAkJcHJpbnRrIChLRVJOX0RFQlVHIGYsICMjIGEpOwkJCQlcCiAJfSB3aGlsZSAoMCkKICNlbHNlCkBAIC03NCw2ICs3NCw5IEBACiAjZGVmaW5lIEVYVDRfTUJfSElOVF9HT0FMX09OTFkJCTI1NgogLyogZ29hbCBpcyBtZWFuaW5nZnVsICovCiAjZGVmaW5lIEVYVDRfTUJfSElOVF9UUllfR09BTAkJNTEyCisvKiBibG9ja3MgYWxyZWFkeSBwcmUtcmVzZXJ2ZWQgYnkgZGVsYXllZCBhbGxvY2F0aW9uICovCisjZGVmaW5lIEVYVDRfTUJfREVMQUxMT0NfUkVTRVJWRUQgICAgICAxMDI0CisKIAogc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9yZXF1ZXN0IHsKIAkvKiB0YXJnZXQgaW5vZGUgZm9yIGJsb2NrIHdlJ3JlIGFsbG9jYXRpbmcgKi8KQEAgLTE3MCw2ICsxNzMsMTUgQEAKIAlfX3UzMgliZ19yZXNlcnZlZDJbM107CiB9OwogCisvKgorICogU3RydWN0dXJlIG9mIGEgZmxleCBibG9jayBncm91cCBpbmZvCisgKi8KKworc3RydWN0IGZsZXhfZ3JvdXBzIHsKKwlfX3UzMiBmcmVlX2lub2RlczsKKwlfX3UzMiBmcmVlX2Jsb2NrczsKK307CisKICNkZWZpbmUgRVhUNF9CR19JTk9ERV9VTklOSVQJMHgwMDAxIC8qIElub2RlIHRhYmxlL2JpdG1hcCBub3QgaW4gdXNlICovCiAjZGVmaW5lIEVYVDRfQkdfQkxPQ0tfVU5JTklUCTB4MDAwMiAvKiBCbG9jayBiaXRtYXAgbm90IGluIHVzZSAqLwogI2RlZmluZSBFWFQ0X0JHX0lOT0RFX1pFUk9FRAkweDAwMDQgLyogT24tZGlzayBpdGFibGUgaW5pdGlhbGl6ZWQgdG8gemVybyAqLwpAQCAtNTI3LDYgKzUzOSw3IEBACiAjZGVmaW5lIEVYVDRfTU9VTlRfSk9VUk5BTF9BU1lOQ19DT01NSVQJMHgxMDAwMDAwIC8qIEpvdXJuYWwgQXN5bmMgQ29tbWl0ICovCiAjZGVmaW5lIEVYVDRfTU9VTlRfSV9WRVJTSU9OICAgICAgICAgICAgMHgyMDAwMDAwIC8qIGlfdmVyc2lvbiBzdXBwb3J0ICovCiAjZGVmaW5lIEVYVDRfTU9VTlRfTUJBTExPQwkJMHg0MDAwMDAwIC8qIEJ1ZGR5IGFsbG9jYXRpb24gc3VwcG9ydCAqLworI2RlZmluZSBFWFQ0X01PVU5UX0RFTEFMTE9DCQkweDgwMDAwMDAgLyogRGVsYWxsb2Mgc3VwcG9ydCAqLwogLyogQ29tcGF0aWJpbGl0eSwgZm9yIGhhdmluZyBib3RoIGV4dDJfZnMuaCBhbmQgZXh0NF9mcy5oIGluY2x1ZGVkIGF0IG9uY2UgKi8KICNpZm5kZWYgX0xJTlVYX0VYVDJfRlNfSAogI2RlZmluZSBjbGVhcl9vcHQobywgb3B0KQkJbyAmPSB+RVhUNF9NT1VOVF8jI29wdApAQCAtNjQ3LDcgKzY2MCwxMCBAQAogCV9fbGUxNiAgc19tbXBfaW50ZXJ2YWw7ICAgICAgICAgLyogIyBzZWNvbmRzIHRvIHdhaXQgaW4gTU1QIGNoZWNraW5nICovCiAJX19sZTY0ICBzX21tcF9ibG9jazsgICAgICAgICAgICAvKiBCbG9jayBmb3IgbXVsdGktbW91bnQgcHJvdGVjdGlvbiAqLwogCV9fbGUzMiAgc19yYWlkX3N0cmlwZV93aWR0aDsgICAgLyogYmxvY2tzIG9uIGFsbCBkYXRhIGRpc2tzIChOKnN0cmlkZSkqLwotCV9fdTMyICAgc19yZXNlcnZlZFsxNjNdOyAgICAgICAgLyogUGFkZGluZyB0byB0aGUgZW5kIG9mIHRoZSBibG9jayAqLworCV9fdTgJc19sb2dfZ3JvdXBzX3Blcl9mbGV4OyAgLyogRkxFWF9CRyBncm91cCBzaXplICovCisJX191OAlzX3Jlc2VydmVkX2NoYXJfcGFkMjsKKwlfX2xlMTYgIHNfcmVzZXJ2ZWRfcGFkOworCV9fdTMyICAgc19yZXNlcnZlZFsxNjJdOyAgICAgICAgLyogUGFkZGluZyB0byB0aGUgZW5kIG9mIHRoZSBibG9jayAqLwogfTsKIAogI2lmZGVmIF9fS0VSTkVMX18KQEAgLTk1OCwxMiArOTc0LDE3IEBACiBleHRlcm4gaW50IGV4dDRfYmdfaGFzX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBncm91cCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBleHQ0X2JnX251bV9nZGIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCWV4dDRfZ3JvdXBfdCBncm91cCk7Ci1leHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCQlleHQ0X2ZzYmxrX3QgZ29hbCwgaW50ICplcnJwKTsKLWV4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9uZXdfYmxvY2tzIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19tZXRhX2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApOwotZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X25ld19ibG9ja3Nfb2xkKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCitleHRlcm4gZXh0NF9mc2Jsa190IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJCQlleHQ0X2xibGtfdCBpYmxvY2ssIGV4dDRfZnNibGtfdCBnb2FsLAorCQkJCQl1bnNpZ25lZCBsb25nICpjb3VudCwgaW50ICplcnJwKTsKK2V4dGVybiBleHQ0X2ZzYmxrX3QgZXh0NF9vbGRfbmV3X2Jsb2NrcyhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGdvYWwsIHVuc2lnbmVkIGxvbmcgKmNvdW50LCBpbnQgKmVycnApOworZXh0ZXJuIGV4dDRfZnNibGtfdCBleHQ0X2hhc19mcmVlX2Jsb2NrcyhzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksCisJCQkJCQlleHQ0X2ZzYmxrX3QgbmJsb2Nrcyk7CiBleHRlcm4gdm9pZCBleHQ0X2ZyZWVfYmxvY2tzIChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJZXh0NF9mc2Jsa190IGJsb2NrLCB1bnNpZ25lZCBsb25nIGNvdW50LCBpbnQgbWV0YWRhdGEpOwogZXh0ZXJuIHZvaWQgZXh0NF9mcmVlX2Jsb2Nrc19zYiAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKQEAgLTEwMTYsOSArMTAzNywxNCBAQAogZXh0ZXJuIHZvaWQgZXhpdF9leHQ0X21iYWxsb2Modm9pZCk7CiBleHRlcm4gdm9pZCBleHQ0X21iX2ZyZWVfYmxvY2tzKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqLAogCQl1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBpbnQsIHVuc2lnbmVkIGxvbmcgKik7CitleHRlcm4gaW50IGV4dDRfbWJfYWRkX21vcmVfZ3JvdXBpbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCWV4dDRfZ3JvdXBfdCBpLCBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjKTsKK2V4dGVybiB2b2lkIGV4dDRfbWJfdXBkYXRlX2dyb3VwX2luZm8oc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqZ3JwLAorCQlleHQ0X2dycGJsa190IGFkZCk7CiAKIAogLyogaW5vZGUuYyAqLwordm9pZCBleHQ0X2RhX3JlbGVhc2Vfc3BhY2Uoc3RydWN0IGlub2RlICppbm9kZSwgaW50IHVzZWQsIGludCB0b19mcmVlKTsKIGludCBleHQ0X2ZvcmdldChoYW5kbGVfdCAqaGFuZGxlLCBpbnQgaXNfbWV0YWRhdGEsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAJCXN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIGV4dDRfZnNibGtfdCBibG9ja25yKTsKIHN0cnVjdCBidWZmZXJfaGVhZCAqZXh0NF9nZXRibGsoaGFuZGxlX3QgKiwgc3RydWN0IGlub2RlICosCkBAIC0xMDMzLDE5ICsxMDU5LDIzIEBACiBleHRlcm4gc3RydWN0IGlub2RlICpleHQ0X2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIHVuc2lnbmVkIGxvbmcpOwogZXh0ZXJuIGludCAgZXh0NF93cml0ZV9pbm9kZSAoc3RydWN0IGlub2RlICosIGludCk7CiBleHRlcm4gaW50ICBleHQ0X3NldGF0dHIgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOworZXh0ZXJuIGludCAgZXh0NF9nZXRhdHRyKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCisJCQkJc3RydWN0IGtzdGF0ICpzdGF0KTsKIGV4dGVybiB2b2lkIGV4dDRfZGVsZXRlX2lub2RlIChzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gaW50ICBleHQ0X3N5bmNfaW5vZGUgKGhhbmRsZV90ICosIHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZGlzY2FyZF9yZXNlcnZhdGlvbiAoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIHZvaWQgZXh0NF9kaXJ0eV9pbm9kZShzdHJ1Y3QgaW5vZGUgKik7CiBleHRlcm4gaW50IGV4dDRfY2hhbmdlX2lub2RlX2pvdXJuYWxfZmxhZyhzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKIGV4dGVybiBpbnQgZXh0NF9nZXRfaW5vZGVfbG9jKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZXh0NF9pbG9jICopOworZXh0ZXJuIGludCBleHQ0X2Nhbl90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKIGV4dGVybiB2b2lkIGV4dDRfdHJ1bmNhdGUgKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfc2V0X2lub2RlX2ZsYWdzKHN0cnVjdCBpbm9kZSAqKTsKIGV4dGVybiB2b2lkIGV4dDRfZ2V0X2lub2RlX2ZsYWdzKHN0cnVjdCBleHQ0X2lub2RlX2luZm8gKik7CiBleHRlcm4gdm9pZCBleHQ0X3NldF9hb3BzKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogZXh0ZXJuIGludCBleHQ0X3dyaXRlcGFnZV90cmFuc19ibG9ja3Moc3RydWN0IGlub2RlICopOwotZXh0ZXJuIGludCBleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsCitleHRlcm4gaW50IGV4dDRfYmxvY2tfdHJ1bmNhdGVfcGFnZShoYW5kbGVfdCAqaGFuZGxlLAogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IGZyb20pOworZXh0ZXJuIGludCBleHQ0X3BhZ2VfbWt3cml0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UpOwogCiAvKiBpb2N0bC5jICovCiBleHRlcm4gbG9uZyBleHQ0X2lvY3RsKHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CkBAIC0xMTU5LDEwICsxMTg5LDIxIEBACiB9CiAKIAorc3RhdGljIGlubGluZSBleHQ0X2dyb3VwX3QgZXh0NF9mbGV4X2dyb3VwKHN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSwKKwkJCQkJICAgICBleHQ0X2dyb3VwX3QgYmxvY2tfZ3JvdXApCit7CisJcmV0dXJuIGJsb2NrX2dyb3VwID4+IHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBleHQ0X2ZsZXhfYmdfc2l6ZShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkpCit7CisJcmV0dXJuIDEgPDwgc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXg7Cit9CisKICNkZWZpbmUgZXh0NF9zdGRfZXJyb3Ioc2IsIGVycm5vKQkJCQlcCiBkbyB7CQkJCQkJCQlcCiAJaWYgKChlcnJubykpCQkJCQkJXAotCQlfX2V4dDRfc3RkX2Vycm9yKChzYiksIF9fRlVOQ1RJT05fXywgKGVycm5vKSk7CVwKKwkJX19leHQ0X3N0ZF9lcnJvcigoc2IpLCBfX2Z1bmNfXywgKGVycm5vKSk7CVwKIH0gd2hpbGUgKDApCiAKIC8qCkBAIC0xMTkxLDcgKzEyMzIsNyBAQAogCQkJZXh0NF9sYmxrX3QgaWJsb2NrLAogCQkJdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3VsdCwKIAkJCWludCBjcmVhdGUsIGludCBleHRlbmRfZGlza3NpemUpOwotZXh0ZXJuIHZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICosIHN0cnVjdCBwYWdlICopOworZXh0ZXJuIHZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICopOwogZXh0ZXJuIHZvaWQgZXh0NF9leHRfaW5pdChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CiBleHRlcm4gdm9pZCBleHQ0X2V4dF9yZWxlYXNlKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKIGV4dGVybiBsb25nIGV4dDRfZmFsbG9jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LApAQCAtMTE5OSw3ICsxMjQwLDcgQEAKIGV4dGVybiBpbnQgZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKIAkJCXNlY3Rvcl90IGJsb2NrLCB1bnNpZ25lZCBsb25nIG1heF9ibG9ja3MsCiAJCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQgY3JlYXRlLAotCQkJaW50IGV4dGVuZF9kaXNrc2l6ZSk7CisJCQlpbnQgZXh0ZW5kX2Rpc2tzaXplLCBpbnQgZmxhZyk7CiAjZW5kaWYJLyogX19LRVJORUxfXyAqLwogCiAjZW5kaWYJLyogX0VYVDRfSCAqLwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2V4dGVudHMuaCBiL2ZzL2V4dDQvZXh0NF9leHRlbnRzLmgKaW5kZXggNzUzMzNiNS4uNmMxNjZjMCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X2V4dGVudHMuaAorKysgYi9mcy9leHQ0L2V4dDRfZXh0ZW50cy5oCkBAIC0yMTIsNiArMjEyLDcgQEAKIAkJKGxlMTZfdG9fY3B1KGV4dC0+ZWVfbGVuKSAtIEVYVF9JTklUX01BWF9MRU4pKTsKIH0KIAorZXh0ZXJuIGludCBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKTsKIGV4dGVybiBleHQ0X2ZzYmxrX3QgaWR4X3BibG9jayhzdHJ1Y3QgZXh0NF9leHRlbnRfaWR4ICopOwogZXh0ZXJuIHZvaWQgZXh0NF9leHRfc3RvcmVfcGJsb2NrKHN0cnVjdCBleHQ0X2V4dGVudCAqLCBleHQ0X2ZzYmxrX3QpOwogZXh0ZXJuIGludCBleHQ0X2V4dGVudF90cmVlX2luaXQoaGFuZGxlX3QgKiwgc3RydWN0IGlub2RlICopOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2kuaCBiL2ZzL2V4dDQvZXh0NF9pLmgKaW5kZXggMjZhNGFlMi4uZWY3NDA5ZiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X2kuaAorKysgYi9mcy9leHQ0L2V4dDRfaS5oCkBAIC03OSw3ICs3OSw3IEBACiB9OwogCiAvKgotICogdGhpcmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0gaW5vZGUgZGF0YSBpbiBtZW1vcnkKKyAqIGZvdXJ0aCBleHRlbmRlZCBmaWxlIHN5c3RlbSBpbm9kZSBkYXRhIGluIG1lbW9yeQogICovCiBzdHJ1Y3QgZXh0NF9pbm9kZV9pbmZvIHsKIAlfX2xlMzIJaV9kYXRhWzE1XTsJLyogdW5jb252ZXJ0ZWQgKi8KQEAgLTE1MCw2ICsxNTAsNyBAQAogCSAqLwogCXN0cnVjdCByd19zZW1hcGhvcmUgaV9kYXRhX3NlbTsKIAlzdHJ1Y3QgaW5vZGUgdmZzX2lub2RlOworCXN0cnVjdCBqYmQyX2lub2RlIGppbm9kZTsKIAogCXVuc2lnbmVkIGxvbmcgaV9leHRfZ2VuZXJhdGlvbjsKIAlzdHJ1Y3QgZXh0NF9leHRfY2FjaGUgaV9jYWNoZWRfZXh0ZW50OwpAQCAtMTYyLDYgKzE2MywxMyBAQAogCS8qIG1iYWxsb2MgKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGlfcHJlYWxsb2NfbGlzdDsKIAlzcGlubG9ja190IGlfcHJlYWxsb2NfbG9jazsKKworCS8qIGFsbG9jYXRpb24gcmVzZXJ2YXRpb24gaW5mbyBmb3IgZGVsYWxsb2MgKi8KKwl1bnNpZ25lZCBsb25nIGlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3M7CisJdW5zaWduZWQgbG9uZyBpX3Jlc2VydmVkX21ldGFfYmxvY2tzOworCXVuc2lnbmVkIGxvbmcgaV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3M7CisJdW5zaWduZWQgc2hvcnQgaV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnOworCXNwaW5sb2NrX3QgaV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrOwogfTsKIAogI2VuZGlmCS8qIF9FWFQ0X0kgKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9qYmQyLmggYi9mcy9leHQ0L2V4dDRfamJkMi5oCmluZGV4IDkyNTVhN2QyLi5lYjhiYzNhIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5oCisrKyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmgKQEAgLTE0MiwxOSArMTQyLDE3IEBACiAJCQkJaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCk7CiAKICNkZWZpbmUgZXh0NF9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChiaCkpCisJX19leHQ0X2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKICNkZWZpbmUgZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKICNkZWZpbmUgZXh0NF9qb3VybmFsX3Jldm9rZShoYW5kbGUsIGJsb2NrbnIsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfcmV2b2tlKF9fRlVOQ1RJT05fXywgKGhhbmRsZSksIChibG9ja25yKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9yZXZva2UoX19mdW5jX18sIChoYW5kbGUpLCAoYmxvY2tuciksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyhoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZ2V0X2NyZWF0ZV9hY2Nlc3MoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyhfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJoKSBcCi0JX19leHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoX19GVU5DVElPTl9fLCAoaGFuZGxlKSwgKGJoKSkKKwlfX2V4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShfX2Z1bmNfXywgKGhhbmRsZSksIChiaCkpCiAjZGVmaW5lIGV4dDRfam91cm5hbF9mb3JnZXQoaGFuZGxlLCBiaCkgXAotCV9fZXh0NF9qb3VybmFsX2ZvcmdldChfX0ZVTkNUSU9OX18sIChoYW5kbGUpLCAoYmgpKQotCi1pbnQgZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCk7CisJX19leHQ0X2pvdXJuYWxfZm9yZ2V0KF9fZnVuY19fLCAoaGFuZGxlKSwgKGJoKSkKIAogaGFuZGxlX3QgKmV4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbmJsb2Nrcyk7CiBpbnQgX19leHQ0X2pvdXJuYWxfc3RvcChjb25zdCBjaGFyICp3aGVyZSwgaGFuZGxlX3QgKmhhbmRsZSk7CkBAIC0xNjUsNyArMTYzLDcgQEAKIH0KIAogI2RlZmluZSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpIFwKLQlfX2V4dDRfam91cm5hbF9zdG9wKF9fRlVOQ1RJT05fXywgKGhhbmRsZSkpCisJX19leHQ0X2pvdXJuYWxfc3RvcChfX2Z1bmNfXywgKGhhbmRsZSkpCiAKIHN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKmV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSh2b2lkKQogewpAQCAtMTkyLDYgKzE5MCwxMSBAQAogCXJldHVybiBqYmQyX2pvdXJuYWxfZm9yY2VfY29tbWl0KGpvdXJuYWwpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCXJldHVybiBqYmQyX2pvdXJuYWxfZmlsZV9pbm9kZShoYW5kbGUsICZFWFQ0X0koaW5vZGUpLT5qaW5vZGUpOworfQorCiAvKiBzdXBlci5jICovCiBpbnQgZXh0NF9mb3JjZV9jb21taXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CiAKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9zYi5oIGIvZnMvZXh0NC9leHQ0X3NiLmgKaW5kZXggNTgwMmU2OS4uNjMwMDIyNiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHQ0X3NiLmgKKysrIGIvZnMvZXh0NC9leHQ0X3NiLmgKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlIDxsaW51eC9yYnRyZWUuaD4KIAogLyoKLSAqIHRoaXJkIGV4dGVuZGVkLWZzIHN1cGVyLWJsb2NrIGRhdGEgaW4gbWVtb3J5CisgKiBmb3VydGggZXh0ZW5kZWQtZnMgc3VwZXItYmxvY2sgZGF0YSBpbiBtZW1vcnkKICAqLwogc3RydWN0IGV4dDRfc2JfaW5mbyB7CiAJdW5zaWduZWQgbG9uZyBzX2Rlc2Nfc2l6ZTsJLyogU2l6ZSBvZiBhIGdyb3VwIGRlc2NyaXB0b3IgaW4gYnl0ZXMgKi8KQEAgLTE0Myw2ICsxNDMsOSBAQAogCiAJLyogbG9jYWxpdHkgZ3JvdXBzICovCiAJc3RydWN0IGV4dDRfbG9jYWxpdHlfZ3JvdXAgKnNfbG9jYWxpdHlfZ3JvdXBzOworCisJdW5zaWduZWQgaW50IHNfbG9nX2dyb3Vwc19wZXJfZmxleDsKKwlzdHJ1Y3QgZmxleF9ncm91cHMgKnNfZmxleF9ncm91cHM7CiB9OwogCiAjZW5kaWYJLyogX0VYVDRfU0IgKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0ZW50cy5jIGIvZnMvZXh0NC9leHRlbnRzLmMKaW5kZXggNDc5MjljNC4uNDJjNGMwYyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9leHRlbnRzLmMKKysrIGIvZnMvZXh0NC9leHRlbnRzLmMKQEAgLTkyLDE3ICs5MiwxNiBAQAogCWl4LT5laV9sZWFmX2hpID0gY3B1X3RvX2xlMTYoKHVuc2lnbmVkIGxvbmcpICgocGIgPj4gMzEpID4+IDEpICYgMHhmZmZmKTsKIH0KIAotc3RhdGljIGhhbmRsZV90ICpleHQ0X2V4dF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlX3QgKmhhbmRsZSwgaW50IG5lZWRlZCkKK3N0YXRpYyBpbnQgZXh0NF9leHRfam91cm5hbF9yZXN0YXJ0KGhhbmRsZV90ICpoYW5kbGUsIGludCBuZWVkZWQpCiB7CiAJaW50IGVycjsKIAogCWlmIChoYW5kbGUtPmhfYnVmZmVyX2NyZWRpdHMgPiBuZWVkZWQpCi0JCXJldHVybiBoYW5kbGU7Ci0JaWYgKCFleHQ0X2pvdXJuYWxfZXh0ZW5kKGhhbmRsZSwgbmVlZGVkKSkKLQkJcmV0dXJuIGhhbmRsZTsKLQllcnIgPSBleHQ0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIG5lZWRlZCk7Ci0KLQlyZXR1cm4gaGFuZGxlOworCQlyZXR1cm4gMDsKKwllcnIgPSBleHQ0X2pvdXJuYWxfZXh0ZW5kKGhhbmRsZSwgbmVlZGVkKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiBleHQ0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIG5lZWRlZCk7CiB9CiAKIC8qCkBAIC0xODAsMTUgKzE3OSwxOCBAQAogCXJldHVybiBiZ19zdGFydCArIGNvbG91ciArIGJsb2NrOwogfQogCisvKgorICogQWxsb2NhdGlvbiBmb3IgYSBtZXRhIGRhdGEgYmxvY2sKKyAqLwogc3RhdGljIGV4dDRfZnNibGtfdAotZXh0NF9leHRfbmV3X2Jsb2NrKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBpbm9kZSAqaW5vZGUsCitleHQ0X2V4dF9uZXdfbWV0YV9ibG9jayhoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAogCQkJc3RydWN0IGV4dDRfZXh0X3BhdGggKnBhdGgsCiAJCQlzdHJ1Y3QgZXh0NF9leHRlbnQgKmV4LCBpbnQgKmVycikKIHsKIAlleHQ0X2ZzYmxrX3QgZ29hbCwgbmV3YmxvY2s7CiAKIAlnb2FsID0gZXh0NF9leHRfZmluZF9nb2FsKGlub2RlLCBwYXRoLCBsZTMyX3RvX2NwdShleC0+ZWVfYmxvY2spKTsKLQluZXdibG9jayA9IGV4dDRfbmV3X2Jsb2NrKGhhbmRsZSwgaW5vZGUsIGdvYWwsIGVycik7CisJbmV3YmxvY2sgPSBleHQ0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIGdvYWwsIGVycik7CiAJcmV0dXJuIG5ld2Jsb2NrOwogfQogCkBAIC0yNDYsNiArMjQ4LDM2IEBACiAJcmV0dXJuIHNpemU7CiB9CiAKKy8qCisgKiBDYWxjdWxhdGUgdGhlIG51bWJlciBvZiBtZXRhZGF0YSBibG9ja3MgbmVlZGVkCisgKiB0byBhbGxvY2F0ZSBAYmxvY2tzCisgKiBXb3JzZSBjYXNlIGlzIG9uZSBibG9jayBwZXIgZXh0ZW50CisgKi8KK2ludCBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKQoreworCWludCBsY2FwLCBpY2FwLCByY2FwLCBsZWFmcywgaWR4cywgbnVtOworCWludCBuZXdleHRlbnRzID0gYmxvY2tzOworCisJcmNhcCA9IGV4dDRfZXh0X3NwYWNlX3Jvb3RfaWR4KGlub2RlKTsKKwlsY2FwID0gZXh0NF9leHRfc3BhY2VfYmxvY2soaW5vZGUpOworCWljYXAgPSBleHQ0X2V4dF9zcGFjZV9ibG9ja19pZHgoaW5vZGUpOworCisJLyogbnVtYmVyIG9mIG5ldyBsZWFmIGJsb2NrcyBuZWVkZWQgKi8KKwludW0gPSBsZWFmcyA9IChuZXdleHRlbnRzICsgbGNhcCAtIDEpIC8gbGNhcDsKKworCS8qCisJICogV29yc2UgY2FzZSwgd2UgbmVlZCBzZXBhcmF0ZSBpbmRleCBibG9jayhzKQorCSAqIHRvIGxpbmsgYWxsIG5ldyBsZWFmIGJsb2NrcworCSAqLworCWlkeHMgPSAobGVhZnMgKyBpY2FwIC0gMSkgLyBpY2FwOworCWRvIHsKKwkJbnVtICs9IGlkeHM7CisJCWlkeHMgPSAoaWR4cyArIGljYXAgLSAxKSAvIGljYXA7CisJfSB3aGlsZSAoaWR4cyA+IHJjYXApOworCisJcmV0dXJuIG51bTsKK30KKwogc3RhdGljIGludAogZXh0NF9leHRfbWF4X2VudHJpZXMoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGRlcHRoKQogewpAQCAtNTI0LDYgKzU1Niw3IEBACiAJCWFsbG9jID0gMTsKIAl9CiAJcGF0aFswXS5wX2hkciA9IGVoOworCXBhdGhbMF0ucF9iaCA9IE5VTEw7CiAKIAlpID0gZGVwdGg7CiAJLyogd2FsayB0aHJvdWdoIHRoZSB0cmVlICovCkBAIC01NTIsMTIgKzU4NSwxNCBAQAogCX0KIAogCXBhdGhbcHBvc10ucF9kZXB0aCA9IGk7Ci0JcGF0aFtwcG9zXS5wX2hkciA9IGVoOwogCXBhdGhbcHBvc10ucF9leHQgPSBOVUxMOwogCXBhdGhbcHBvc10ucF9pZHggPSBOVUxMOwogCiAJLyogZmluZCBleHRlbnQgKi8KIAlleHQ0X2V4dF9iaW5zZWFyY2goaW5vZGUsIHBhdGggKyBwcG9zLCBibG9jayk7CisJLyogaWYgbm90IGFuIGVtcHR5IGxlYWYgKi8KKwlpZiAocGF0aFtwcG9zXS5wX2V4dCkKKwkJcGF0aFtwcG9zXS5wX2Jsb2NrID0gZXh0X3BibG9jayhwYXRoW3Bwb3NdLnBfZXh0KTsKIAogCWV4dDRfZXh0X3Nob3dfcGF0aChpbm9kZSwgcGF0aCk7CiAKQEAgLTY4OCw3ICs3MjMsOCBAQAogCS8qIGFsbG9jYXRlIGFsbCBuZWVkZWQgYmxvY2tzICovCiAJZXh0X2RlYnVnKCJhbGxvY2F0ZSAlZCBibG9ja3MgZm9yIGluZGV4ZXMvbGVhZlxuIiwgZGVwdGggLSBhdCk7CiAJZm9yIChhID0gMDsgYSA8IGRlcHRoIC0gYXQ7IGErKykgewotCQluZXdibG9jayA9IGV4dDRfZXh0X25ld19ibG9jayhoYW5kbGUsIGlub2RlLCBwYXRoLCBuZXdleHQsICZlcnIpOworCQluZXdibG9jayA9IGV4dDRfZXh0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIHBhdGgsCisJCQkJCQkgICBuZXdleHQsICZlcnIpOwogCQlpZiAobmV3YmxvY2sgPT0gMCkKIAkJCWdvdG8gY2xlYW51cDsKIAkJYWJsb2Nrc1thXSA9IG5ld2Jsb2NrOwpAQCAtODg0LDcgKzkyMCw3IEBACiAJZXh0NF9mc2Jsa190IG5ld2Jsb2NrOwogCWludCBlcnIgPSAwOwogCi0JbmV3YmxvY2sgPSBleHQ0X2V4dF9uZXdfYmxvY2soaGFuZGxlLCBpbm9kZSwgcGF0aCwgbmV3ZXh0LCAmZXJyKTsKKwluZXdibG9jayA9IGV4dDRfZXh0X25ld19tZXRhX2Jsb2NrKGhhbmRsZSwgaW5vZGUsIHBhdGgsIG5ld2V4dCwgJmVycik7CiAJaWYgKG5ld2Jsb2NrID09IDApCiAJCXJldHVybiBlcnI7CiAKQEAgLTk4MSw2ICsxMDE3LDggQEAKIAkJLyogaWYgd2UgZm91bmQgaW5kZXggd2l0aCBmcmVlIGVudHJ5LCB0aGVuIHVzZSB0aGF0CiAJCSAqIGVudHJ5OiBjcmVhdGUgYWxsIG5lZWRlZCBzdWJ0cmVlIGFuZCBhZGQgbmV3IGxlYWYgKi8KIAkJZXJyID0gZXh0NF9leHRfc3BsaXQoaGFuZGxlLCBpbm9kZSwgcGF0aCwgbmV3ZXh0LCBpKTsKKwkJaWYgKGVycikKKwkJCWdvdG8gb3V0OwogCiAJCS8qIHJlZmlsbCBwYXRoICovCiAJCWV4dDRfZXh0X2Ryb3BfcmVmcyhwYXRoKTsKQEAgLTE4ODMsMTEgKzE5MjEsOSBAQAogCQljcmVkaXRzICs9IDIgKiBFWFQ0X1FVT1RBX1RSQU5TX0JMT0NLUyhpbm9kZS0+aV9zYik7CiAjZW5kaWYKIAotCQloYW5kbGUgPSBleHQ0X2V4dF9qb3VybmFsX3Jlc3RhcnQoaGFuZGxlLCBjcmVkaXRzKTsKLQkJaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCQllcnIgPSBQVFJfRVJSKGhhbmRsZSk7CisJCWVyciA9IGV4dDRfZXh0X2pvdXJuYWxfcmVzdGFydChoYW5kbGUsIGNyZWRpdHMpOworCQlpZiAoZXJyKQogCQkJZ290byBvdXQ7Ci0JCX0KIAogCQllcnIgPSBleHQ0X2V4dF9nZXRfYWNjZXNzKGhhbmRsZSwgaW5vZGUsIHBhdGggKyBkZXB0aCk7CiAJCWlmIChlcnIpCkBAIC0yNTI5LDYgKzI1NjUsNyBAQAogCWludCBlcnIgPSAwLCBkZXB0aCwgcmV0OwogCXVuc2lnbmVkIGxvbmcgYWxsb2NhdGVkID0gMDsKIAlzdHJ1Y3QgZXh0NF9hbGxvY2F0aW9uX3JlcXVlc3QgYXI7CisJbG9mZl90IGRpc2tzaXplOwogCiAJX19jbGVhcl9iaXQoQkhfTmV3LCAmYmhfcmVzdWx0LT5iX3N0YXRlKTsKIAlleHRfZGVidWcoImJsb2NrcyAldS8lbHUgcmVxdWVzdGVkIGZvciBpbm9kZSAldVxuIiwKQEAgLTI2MTYsOCArMjY1Myw3IEBACiAJCQkJICovCiAJCQkJaWYgKGFsbG9jYXRlZCA+IG1heF9ibG9ja3MpCiAJCQkJCWFsbG9jYXRlZCA9IG1heF9ibG9ja3M7Ci0JCQkJLyogbWFyayB0aGUgYnVmZmVyIHVud3JpdHRlbiAqLwotCQkJCV9fc2V0X2JpdChCSF9VbndyaXR0ZW4sICZiaF9yZXN1bHQtPmJfc3RhdGUpOworCQkJCXNldF9idWZmZXJfdW53cml0dGVuKGJoX3Jlc3VsdCk7CiAJCQkJZ290byBvdXQyOwogCQkJfQogCkBAIC0yNzE2LDE0ICsyNzUyLDE5IEBACiAJCWdvdG8gb3V0MjsKIAl9CiAKLQlpZiAoZXh0ZW5kX2Rpc2tzaXplICYmIGlub2RlLT5pX3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQotCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gaW5vZGUtPmlfc2l6ZTsKLQogCS8qIHByZXZpb3VzIHJvdXRpbmUgY291bGQgdXNlIGJsb2NrIHdlIGFsbG9jYXRlZCAqLwogCW5ld2Jsb2NrID0gZXh0X3BibG9jaygmbmV3ZXgpOwogCWFsbG9jYXRlZCA9IGV4dDRfZXh0X2dldF9hY3R1YWxfbGVuKCZuZXdleCk7CiBvdXRuZXc6Ci0JX19zZXRfYml0KEJIX05ldywgJmJoX3Jlc3VsdC0+Yl9zdGF0ZSk7CisJaWYgKGV4dGVuZF9kaXNrc2l6ZSkgeworCQlkaXNrc2l6ZSA9ICgobG9mZl90KSBpYmxvY2sgKyBhci5sZW4pIDw8IGlub2RlLT5pX2Jsa2JpdHM7CisJCWlmIChkaXNrc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkKKwkJCWRpc2tzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQorCQkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IGRpc2tzaXplOworCX0KKworCXNldF9idWZmZXJfbmV3KGJoX3Jlc3VsdCk7CiAKIAkvKiBDYWNoZSBvbmx5IHdoZW4gaXQgaXMgX25vdF8gYW4gdW5pbml0aWFsaXplZCBleHRlbnQgKi8KIAlpZiAoY3JlYXRlICE9IEVYVDRfQ1JFQVRFX1VOSU5JVElBTElaRURfRVhUKQpAQCAtMjczMyw3ICsyNzc0LDcgQEAKIAlpZiAoYWxsb2NhdGVkID4gbWF4X2Jsb2NrcykKIAkJYWxsb2NhdGVkID0gbWF4X2Jsb2NrczsKIAlleHQ0X2V4dF9zaG93X2xlYWYoaW5vZGUsIHBhdGgpOwotCV9fc2V0X2JpdChCSF9NYXBwZWQsICZiaF9yZXN1bHQtPmJfc3RhdGUpOworCXNldF9idWZmZXJfbWFwcGVkKGJoX3Jlc3VsdCk7CiAJYmhfcmVzdWx0LT5iX2JkZXYgPSBpbm9kZS0+aV9zYi0+c19iZGV2OwogCWJoX3Jlc3VsdC0+Yl9ibG9ja25yID0gbmV3YmxvY2s7CiBvdXQyOgpAQCAtMjc0NCw3ICsyNzg1LDcgQEAKIAlyZXR1cm4gZXJyID8gZXJyIDogYWxsb2NhdGVkOwogfQogCi12b2lkIGV4dDRfZXh0X3RydW5jYXRlKHN0cnVjdCBpbm9kZSAqIGlub2RlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKK3ZvaWQgZXh0NF9leHRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGlub2RlLT5pX21hcHBpbmc7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGlub2RlLT5pX3NiOwpAQCAtMjc1NywxOCArMjc5OCwxNCBAQAogCSAqLwogCWVyciA9IGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkgKyAzOwogCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgZXJyKTsKLQlpZiAoSVNfRVJSKGhhbmRsZSkpIHsKLQkJaWYgKHBhZ2UpIHsKLQkJCWNsZWFyX2hpZ2hwYWdlKHBhZ2UpOwotCQkJZmx1c2hfZGNhY2hlX3BhZ2UocGFnZSk7Ci0JCQl1bmxvY2tfcGFnZShwYWdlKTsKLQkJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKLQkJfQorCWlmIChJU19FUlIoaGFuZGxlKSkKIAkJcmV0dXJuOwotCX0KIAotCWlmIChwYWdlKQotCQlleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlLCBwYWdlLCBtYXBwaW5nLCBpbm9kZS0+aV9zaXplKTsKKwlpZiAoaW5vZGUtPmlfc2l6ZSAmIChzYi0+c19ibG9ja3NpemUgLSAxKSkKKwkJZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CisKKwlpZiAoZXh0NF9vcnBoYW5fYWRkKGhhbmRsZSwgaW5vZGUpKQorCQlnb3RvIG91dF9zdG9wOwogCiAJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CiAJZXh0NF9leHRfaW52YWxpZGF0ZV9jYWNoZShpbm9kZSk7CkBAIC0yNzgwLDggKzI4MTcsNiBAQAogCSAqIFByb2JhYmx5IHdlIG5lZWQgbm90IHNjYW4gYXQgYWxsLAogCSAqIGJlY2F1c2UgcGFnZSB0cnVuY2F0aW9uIGlzIGVub3VnaC4KIAkgKi8KLQlpZiAoZXh0NF9vcnBoYW5fYWRkKGhhbmRsZSwgaW5vZGUpKQotCQlnb3RvIG91dF9zdG9wOwogCiAJLyogd2UgaGF2ZSB0byBrbm93IHdoZXJlIHRvIHRydW5jYXRlIGZyb20gaW4gY3Jhc2ggY2FzZSAqLwogCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwpAQCAtMjc5OCw2ICsyODMzLDcgQEAKIAkJaGFuZGxlLT5oX3N5bmMgPSAxOwogCiBvdXRfc3RvcDoKKwl1cF93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CiAJLyoKIAkgKiBJZiB0aGlzIHdhcyBhIHNpbXBsZSBmdHJ1bmNhdGUoKSBhbmQgdGhlIGZpbGUgd2lsbCByZW1haW4gYWxpdmUsCiAJICogdGhlbiB3ZSBuZWVkIHRvIGNsZWFyIHVwIHRoZSBvcnBoYW4gcmVjb3JkIHdoaWNoIHdlIGNyZWF0ZWQgYWJvdmUuCkBAIC0yODA4LDcgKzI4NDQsNiBAQAogCWlmIChpbm9kZS0+aV9ubGluaykKIAkJZXh0NF9vcnBoYW5fZGVsKGhhbmRsZSwgaW5vZGUpOwogCi0JdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOwogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfY3RpbWUgPSBleHQ0X2N1cnJlbnRfdGltZShpbm9kZSk7CiAJZXh0NF9tYXJrX2lub2RlX2RpcnR5KGhhbmRsZSwgaW5vZGUpOwogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CkBAIC0yOTExLDcgKzI5NDYsNyBAQAogCQl9CiAJCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGJsb2NrLAogCQkJCQkgIG1heF9ibG9ja3MsICZtYXBfYmgsCi0JCQkJCSAgRVhUNF9DUkVBVEVfVU5JTklUSUFMSVpFRF9FWFQsIDApOworCQkJCQkgIEVYVDRfQ1JFQVRFX1VOSU5JVElBTElaRURfRVhULCAwLCAwKTsKIAkJaWYgKHJldCA8PSAwKSB7CiAjaWZkZWYgRVhUNEZTX0RFQlVHCiAJCQlXQVJOX09OKHJldCA8PSAwKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZmlsZS5jIGIvZnMvZXh0NC9maWxlLmMKaW5kZXggNDE1OWJlNi4uNDMwZWI3OSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9maWxlLmMKKysrIGIvZnMvZXh0NC9maWxlLmMKQEAgLTEyMyw2ICsxMjMsMjMgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IGV4dDRfZmlsZV92bV9vcHMgPSB7CisJLmZhdWx0CQk9IGZpbGVtYXBfZmF1bHQsCisJLnBhZ2VfbWt3cml0ZSAgID0gZXh0NF9wYWdlX21rd3JpdGUsCit9OworCitzdGF0aWMgaW50IGV4dDRfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsKKworCWlmICghbWFwcGluZy0+YV9vcHMtPnJlYWRwYWdlKQorCQlyZXR1cm4gLUVOT0VYRUM7CisJZmlsZV9hY2Nlc3NlZChmaWxlKTsKKwl2bWEtPnZtX29wcyA9ICZleHQ0X2ZpbGVfdm1fb3BzOworCXZtYS0+dm1fZmxhZ3MgfD0gVk1fQ0FOX05PTkxJTkVBUjsKKwlyZXR1cm4gMDsKK30KKwogY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBleHQ0X2ZpbGVfb3BlcmF0aW9ucyA9IHsKIAkubGxzZWVrCQk9IGdlbmVyaWNfZmlsZV9sbHNlZWssCiAJLnJlYWQJCT0gZG9fc3luY19yZWFkLApAQCAtMTMzLDcgKzE1MCw3IEBACiAjaWZkZWYgQ09ORklHX0NPTVBBVAogCS5jb21wYXRfaW9jdGwJPSBleHQ0X2NvbXBhdF9pb2N0bCwKICNlbmRpZgotCS5tbWFwCQk9IGdlbmVyaWNfZmlsZV9tbWFwLAorCS5tbWFwCQk9IGV4dDRfZmlsZV9tbWFwLAogCS5vcGVuCQk9IGdlbmVyaWNfZmlsZV9vcGVuLAogCS5yZWxlYXNlCT0gZXh0NF9yZWxlYXNlX2ZpbGUsCiAJLmZzeW5jCQk9IGV4dDRfc3luY19maWxlLApAQCAtMTQ0LDYgKzE2MSw3IEBACiBjb25zdCBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBleHQ0X2ZpbGVfaW5vZGVfb3BlcmF0aW9ucyA9IHsKIAkudHJ1bmNhdGUJPSBleHQ0X3RydW5jYXRlLAogCS5zZXRhdHRyCT0gZXh0NF9zZXRhdHRyLAorCS5nZXRhdHRyCT0gZXh0NF9nZXRhdHRyLAogI2lmZGVmIENPTkZJR19FWFQ0REVWX0ZTX1hBVFRSCiAJLnNldHhhdHRyCT0gZ2VuZXJpY19zZXR4YXR0ciwKIAkuZ2V0eGF0dHIJPSBnZW5lcmljX2dldHhhdHRyLApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9mc3luYy5jIGIvZnMvZXh0NC9mc3luYy5jCmluZGV4IDFjOGJhNDguLmE0NWMzNzMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvZnN5bmMuYworKysgYi9mcy9leHQ0L2ZzeW5jLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPgogI2luY2x1ZGUgPGxpbnV4L2piZDIuaD4KKyNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4KICNpbmNsdWRlICJleHQ0LmgiCiAjaW5jbHVkZSAiZXh0NF9qYmQyLmgiCiAKQEAgLTQ1LDYgKzQ2LDcgQEAKIGludCBleHQ0X3N5bmNfZmlsZShzdHJ1Y3QgZmlsZSAqIGZpbGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgaW50IGRhdGFzeW5jKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CisJam91cm5hbF90ICpqb3VybmFsID0gRVhUNF9TQihpbm9kZS0+aV9zYiktPnNfam91cm5hbDsKIAlpbnQgcmV0ID0gMDsKIAogCUpfQVNTRVJUKGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpID09IE5VTEwpOwpAQCAtODUsNiArODcsOCBAQAogCQkJLm5yX3RvX3dyaXRlID0gMCwgLyogc3lzX2ZzeW5jIGRpZCB0aGlzICovCiAJCX07CiAJCXJldCA9IHN5bmNfaW5vZGUoaW5vZGUsICZ3YmMpOworCQlpZiAoam91cm5hbCAmJiAoam91cm5hbC0+al9mbGFncyAmIEpCRDJfQkFSUklFUikpCisJCQlibGtkZXZfaXNzdWVfZmx1c2goaW5vZGUtPmlfc2ItPnNfYmRldiwgTlVMTCk7CiAJfQogb3V0OgogCXJldHVybiByZXQ7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2dyb3VwLmggYi9mcy9leHQ0L2dyb3VwLmgKaW5kZXggN2ViMDYwNC4uYzJjMGE4ZCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9ncm91cC5oCisrKyBiL2ZzL2V4dDQvZ3JvdXAuaApAQCAtMTMsNyArMTMsNyBAQAogCQkJCSAgIHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmdkcCk7CiBleHRlcm4gaW50IGV4dDRfZ3JvdXBfZGVzY19jc3VtX3ZlcmlmeShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksIF9fdTMyIGdyb3VwLAogCQkJCSAgICAgICBzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHApOwotc3RydWN0IGJ1ZmZlcl9oZWFkICpyZWFkX2Jsb2NrX2JpdG1hcChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAorc3RydWN0IGJ1ZmZlcl9oZWFkICpleHQ0X3JlYWRfYmxvY2tfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJICAgICAgZXh0NF9ncm91cF90IGJsb2NrX2dyb3VwKTsKIGV4dGVybiB1bnNpZ25lZCBleHQ0X2luaXRfYmxvY2tfYml0bWFwKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAJCQkJICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCmRpZmYgLS1naXQgYS9mcy9leHQ0L2lhbGxvYy5jIGIvZnMvZXh0NC9pYWxsb2MuYwppbmRleCBjNmVmYmFiMC4uYTkyZWIzMCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pYWxsb2MuYworKysgYi9mcy9leHQ0L2lhbGxvYy5jCkBAIC0xNTcsNiArMTU3LDcgQEAKIAlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqIGVzOwogCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaTsKIAlpbnQgZmF0YWwgPSAwLCBlcnI7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXA7CiAKIAlpZiAoYXRvbWljX3JlYWQoJmlub2RlLT5pX2NvdW50KSA+IDEpIHsKIAkJcHJpbnRrICgiZXh0NF9mcmVlX2lub2RlOiBpbm9kZSBoYXMgY291bnQ9JWRcbiIsCkBAIC0yMzIsNiArMjMzLDEyIEBACiAJCQlpZiAoaXNfZGlyZWN0b3J5KQogCQkJCXBlcmNwdV9jb3VudGVyX2RlYygmc2JpLT5zX2RpcnNfY291bnRlcik7CiAKKwkJCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQkJCWZsZXhfZ3JvdXAgPSBleHQ0X2ZsZXhfZ3JvdXAoc2JpLCBibG9ja19ncm91cCk7CisJCQkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQkJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2lub2RlcysrOworCQkJCXNwaW5fdW5sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQkJfQogCQl9CiAJCUJVRkZFUl9UUkFDRShiaDIsICJjYWxsIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YSIpOwogCQllcnIgPSBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCBiaDIpOwpAQCAtMjg2LDYgKzI5Myw4MCBAQAogCXJldHVybiByZXQ7CiB9CiAKKyNkZWZpbmUgZnJlZV9ibG9ja19yYXRpbyAxMAorCitzdGF0aWMgaW50IGZpbmRfZ3JvdXBfZmxleChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgaW5vZGUgKnBhcmVudCwKKwkJCSAgIGV4dDRfZ3JvdXBfdCAqYmVzdF9ncm91cCkKK3sKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjOworCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisJc3RydWN0IGZsZXhfZ3JvdXBzICpmbGV4X2dyb3VwID0gc2JpLT5zX2ZsZXhfZ3JvdXBzOworCWV4dDRfZ3JvdXBfdCBwYXJlbnRfZ3JvdXAgPSBFWFQ0X0kocGFyZW50KS0+aV9ibG9ja19ncm91cDsKKwlleHQ0X2dyb3VwX3QgcGFyZW50X2ZiZ19ncm91cCA9IGV4dDRfZmxleF9ncm91cChzYmksIHBhcmVudF9ncm91cCk7CisJZXh0NF9ncm91cF90IG5ncm91cHMgPSBzYmktPnNfZ3JvdXBzX2NvdW50OworCWludCBmbGV4X3NpemUgPSBleHQ0X2ZsZXhfYmdfc2l6ZShzYmkpOworCWV4dDRfZ3JvdXBfdCBiZXN0X2ZsZXggPSBwYXJlbnRfZmJnX2dyb3VwOworCWludCBibG9ja3NfcGVyX2ZsZXggPSBzYmktPnNfYmxvY2tzX3Blcl9ncm91cCAqIGZsZXhfc2l6ZTsKKwlpbnQgZmxleGJnX2ZyZWVfYmxvY2tzOworCWludCBmbGV4X2ZyZWViX3JhdGlvOworCWV4dDRfZ3JvdXBfdCBuX2ZiZ19ncm91cHM7CisJZXh0NF9ncm91cF90IGk7CisKKwluX2ZiZ19ncm91cHMgPSAoc2JpLT5zX2dyb3Vwc19jb3VudCArIGZsZXhfc2l6ZSAtIDEpID4+CisJCXNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworCitmaW5kX2Nsb3NlX3RvX3BhcmVudDoKKwlmbGV4YmdfZnJlZV9ibG9ja3MgPSBmbGV4X2dyb3VwW2Jlc3RfZmxleF0uZnJlZV9ibG9ja3M7CisJZmxleF9mcmVlYl9yYXRpbyA9IGZsZXhiZ19mcmVlX2Jsb2NrcyAqIDEwMCAvIGJsb2Nrc19wZXJfZmxleDsKKwlpZiAoZmxleF9ncm91cFtiZXN0X2ZsZXhdLmZyZWVfaW5vZGVzICYmCisJICAgIGZsZXhfZnJlZWJfcmF0aW8gPiBmcmVlX2Jsb2NrX3JhdGlvKQorCQlnb3RvIGZvdW5kX2ZsZXhiZzsKKworCWlmIChiZXN0X2ZsZXggJiYgYmVzdF9mbGV4ID09IHBhcmVudF9mYmdfZ3JvdXApIHsKKwkJYmVzdF9mbGV4LS07CisJCWdvdG8gZmluZF9jbG9zZV90b19wYXJlbnQ7CisJfQorCisJZm9yIChpID0gMDsgaSA8IG5fZmJnX2dyb3VwczsgaSsrKSB7CisJCWlmIChpID09IHBhcmVudF9mYmdfZ3JvdXAgfHwgaSA9PSBwYXJlbnRfZmJnX2dyb3VwIC0gMSkKKwkJCWNvbnRpbnVlOworCisJCWZsZXhiZ19mcmVlX2Jsb2NrcyA9IGZsZXhfZ3JvdXBbaV0uZnJlZV9ibG9ja3M7CisJCWZsZXhfZnJlZWJfcmF0aW8gPSBmbGV4YmdfZnJlZV9ibG9ja3MgKiAxMDAgLyBibG9ja3NfcGVyX2ZsZXg7CisKKwkJaWYgKGZsZXhfZnJlZWJfcmF0aW8gPiBmcmVlX2Jsb2NrX3JhdGlvICYmCisJCSAgICBmbGV4X2dyb3VwW2ldLmZyZWVfaW5vZGVzKSB7CisJCQliZXN0X2ZsZXggPSBpOworCQkJZ290byBmb3VuZF9mbGV4Ymc7CisJCX0KKworCQlpZiAoYmVzdF9mbGV4IDwgMCB8fAorCQkgICAgKGZsZXhfZ3JvdXBbaV0uZnJlZV9ibG9ja3MgPgorCQkgICAgIGZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2Jsb2NrcyAmJgorCQkgICAgIGZsZXhfZ3JvdXBbaV0uZnJlZV9pbm9kZXMpKQorCQkJYmVzdF9mbGV4ID0gaTsKKwl9CisKKwlpZiAoIWZsZXhfZ3JvdXBbYmVzdF9mbGV4XS5mcmVlX2lub2RlcyB8fAorCSAgICAhZmxleF9ncm91cFtiZXN0X2ZsZXhdLmZyZWVfYmxvY2tzKQorCQlyZXR1cm4gLTE7CisKK2ZvdW5kX2ZsZXhiZzoKKwlmb3IgKGkgPSBiZXN0X2ZsZXggKiBmbGV4X3NpemU7IGkgPCBuZ3JvdXBzICYmCisJCSAgICAgaSA8IChiZXN0X2ZsZXggKyAxKSAqIGZsZXhfc2l6ZTsgaSsrKSB7CisJCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBpLCAmYmgpOworCQlpZiAobGUxNl90b19jcHUoZGVzYy0+YmdfZnJlZV9pbm9kZXNfY291bnQpKSB7CisJCQkqYmVzdF9ncm91cCA9IGk7CisJCQlnb3RvIG91dDsKKwkJfQorCX0KKworCXJldHVybiAtMTsKK291dDoKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIE9ybG92J3MgYWxsb2NhdG9yIGZvciBkaXJlY3Rvcmllcy4KICAqCkBAIC01MDEsNiArNTgyLDcgQEAKIAlzdHJ1Y3QgaW5vZGUgKnJldDsKIAlleHQ0X2dyb3VwX3QgaTsKIAlpbnQgZnJlZSA9IDA7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXA7CiAKIAkvKiBDYW5ub3QgY3JlYXRlIGZpbGVzIGluIGEgZGVsZXRlZCBkaXJlY3RvcnkgKi8KIAlpZiAoIWRpciB8fCAhZGlyLT5pX25saW5rKQpAQCAtNTE0LDYgKzU5NiwxMiBAQAogCiAJc2JpID0gRVhUNF9TQihzYik7CiAJZXMgPSBzYmktPnNfZXM7CisKKwlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJcmV0MiA9IGZpbmRfZ3JvdXBfZmxleChzYiwgZGlyLCAmZ3JvdXApOworCQlnb3RvIGdvdF9ncm91cDsKKwl9CisKIAlpZiAoU19JU0RJUihtb2RlKSkgewogCQlpZiAodGVzdF9vcHQgKHNiLCBPTERBTExPQykpCiAJCQlyZXQyID0gZmluZF9ncm91cF9kaXIoc2IsIGRpciwgJmdyb3VwKTsKQEAgLTUyMiw2ICs2MTAsNyBAQAogCX0gZWxzZQogCQlyZXQyID0gZmluZF9ncm91cF9vdGhlcihzYiwgZGlyLCAmZ3JvdXApOwogCitnb3RfZ3JvdXA6CiAJZXJyID0gLUVOT1NQQzsKIAlpZiAocmV0MiA9PSAtMSkKIAkJZ290byBvdXQ7CkBAIC02MDAsNyArNjg5LDcgQEAKIAkvKiBXZSBtYXkgaGF2ZSB0byBpbml0aWFsaXplIHRoZSBibG9jayBiaXRtYXAgaWYgaXQgaXNuJ3QgYWxyZWFkeSAqLwogCWlmIChFWFQ0X0hBU19ST19DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX1JPX0NPTVBBVF9HRFRfQ1NVTSkgJiYKIAkgICAgZ2RwLT5iZ19mbGFncyAmIGNwdV90b19sZTE2KEVYVDRfQkdfQkxPQ0tfVU5JTklUKSkgewotCQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJsb2NrX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICpibG9ja19iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKIAogCQlCVUZGRVJfVFJBQ0UoYmxvY2tfYmgsICJnZXQgYmxvY2sgYml0bWFwIGFjY2VzcyIpOwogCQllcnIgPSBleHQ0X2pvdXJuYWxfZ2V0X3dyaXRlX2FjY2VzcyhoYW5kbGUsIGJsb2NrX2JoKTsKQEAgLTY3Niw2ICs3NjUsMTMgQEAKIAkJcGVyY3B1X2NvdW50ZXJfaW5jKCZzYmktPnNfZGlyc19jb3VudGVyKTsKIAlzYi0+c19kaXJ0ID0gMTsKIAorCWlmIChzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCkgeworCQlmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgZ3JvdXApOworCQlzcGluX2xvY2soc2JfYmdsX2xvY2soc2JpLCBmbGV4X2dyb3VwKSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2lub2Rlcy0tOworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CisKIAlpbm9kZS0+aV91aWQgPSBjdXJyZW50LT5mc3VpZDsKIAlpZiAodGVzdF9vcHQgKHNiLCBHUlBJRCkpCiAJCWlub2RlLT5pX2dpZCA9IGRpci0+aV9naWQ7CkBAIC03NDAsMTQgKzgzNiwxMCBAQAogCQlnb3RvIGZhaWxfZnJlZV9kcm9wOwogCiAJaWYgKHRlc3Rfb3B0KHNiLCBFWFRFTlRTKSkgewotCQkvKiBzZXQgZXh0ZW50IGZsYWcgb25seSBmb3IgZGlyZXRvcnksIGZpbGUgYW5kIG5vcm1hbCBzeW1saW5rKi8KKwkJLyogc2V0IGV4dGVudCBmbGFnIG9ubHkgZm9yIGRpcmVjdG9yeSwgZmlsZSBhbmQgbm9ybWFsIHN5bWxpbmsqLwogCQlpZiAoU19JU0RJUihtb2RlKSB8fCBTX0lTUkVHKG1vZGUpIHx8IFNfSVNMTksobW9kZSkpIHsKIAkJCUVYVDRfSShpbm9kZSktPmlfZmxhZ3MgfD0gRVhUNF9FWFRFTlRTX0ZMOwogCQkJZXh0NF9leHRfdHJlZV9pbml0KGhhbmRsZSwgaW5vZGUpOwotCQkJZXJyID0gZXh0NF91cGRhdGVfaW5jb21wYXRfZmVhdHVyZShoYW5kbGUsIHNiLAotCQkJCQlFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRVhURU5UUyk7Ci0JCQlpZiAoZXJyKQotCQkJCWdvdG8gZmFpbF9mcmVlX2Ryb3A7CiAJCX0KIAl9CiAKQEAgLTgxNyw2ICs5MDksMTQgQEAKIAlpZiAoSVNfRVJSKGlub2RlKSkKIAkJZ290byBpZ2V0X2ZhaWxlZDsKIAorCS8qCisJICogSWYgdGhlIG9ycGhhbnMgaGFzIGlfbmxpbmtzID4gMCB0aGVuIGl0IHNob3VsZCBiZSBhYmxlIHRvIGJlCisJICogdHJ1bmNhdGVkLCBvdGhlcndpc2UgaXQgd29uJ3QgYmUgcmVtb3ZlZCBmcm9tIHRoZSBvcnBoYW4gbGlzdAorCSAqIGR1cmluZyBwcm9jZXNzaW5nIGFuZCBhbiBpbmZpbml0ZSBsb29wIHdpbGwgcmVzdWx0LgorCSAqLworCWlmIChpbm9kZS0+aV9ubGluayAmJiAhZXh0NF9jYW5fdHJ1bmNhdGUoaW5vZGUpKQorCQlnb3RvIGJhZF9vcnBoYW47CisKIAlpZiAoTkVYVF9PUlBIQU4oaW5vZGUpID4gbWF4X2lubykKIAkJZ290byBiYWRfb3JwaGFuOwogCWJyZWxzZShiaXRtYXBfYmgpOwpAQCAtODM4LDYgKzkzOCw3IEBACiAJCXByaW50ayhLRVJOX05PVElDRSAiTkVYVF9PUlBIQU4oaW5vZGUpPSV1XG4iLAogCQkgICAgICAgTkVYVF9PUlBIQU4oaW5vZGUpKTsKIAkJcHJpbnRrKEtFUk5fTk9USUNFICJtYXhfaW5vPSVsdVxuIiwgbWF4X2lubyk7CisJCXByaW50ayhLRVJOX05PVElDRSAiaV9ubGluaz0ldVxuIiwgaW5vZGUtPmlfbmxpbmspOwogCQkvKiBBdm9pZCBmcmVlaW5nIGJsb2NrcyBpZiB3ZSBnb3QgYSBiYWQgZGVsZXRlZCBpbm9kZSAqLwogCQlpZiAoaW5vZGUtPmlfbmxpbmsgPT0gMCkKIAkJCWlub2RlLT5pX2Jsb2NrcyA9IDA7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMKaW5kZXggOGQ5NzA3Ny4uOGNhMjc2MyAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbm9kZS5jCisrKyBiL2ZzL2V4dDQvaW5vZGUuYwpAQCAtMzIsMTIgKzMyLDIzIEBACiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CiAjaW5jbHVkZSA8bGludXgvYnVmZmVyX2hlYWQuaD4KICNpbmNsdWRlIDxsaW51eC93cml0ZWJhY2suaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdldmVjLmg+CiAjaW5jbHVkZSA8bGludXgvbXBhZ2UuaD4KICNpbmNsdWRlIDxsaW51eC91aW8uaD4KICNpbmNsdWRlIDxsaW51eC9iaW8uaD4KICNpbmNsdWRlICJleHQ0X2piZDIuaCIKICNpbmNsdWRlICJ4YXR0ci5oIgogI2luY2x1ZGUgImFjbC5oIgorI2luY2x1ZGUgImV4dDRfZXh0ZW50cy5oIgorCitzdGF0aWMgaW5saW5lIGludCBleHQ0X2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSwKKwkJCQkJICAgICAgbG9mZl90IG5ld19zaXplKQoreworCXJldHVybiBqYmQyX2pvdXJuYWxfYmVnaW5fb3JkZXJlZF90cnVuY2F0ZSgmRVhUNF9JKGlub2RlKS0+amlub2RlLAorCQkJCQkJICAgbmV3X3NpemUpOworfQorCitzdGF0aWMgdm9pZCBleHQ0X2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAKIC8qCiAgKiBUZXN0IHdoZXRoZXIgYW4gaW5vZGUgaXMgYSBmYXN0IHN5bWxpbmsuCkBAIC0xODEsNiArMTkyLDggQEAKIHsKIAloYW5kbGVfdCAqaGFuZGxlOwogCisJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQorCQlleHQ0X2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoaW5vZGUsIDApOwogCXRydW5jYXRlX2lub2RlX3BhZ2VzKCZpbm9kZS0+aV9kYXRhLCAwKTsKIAogCWlmIChpc19iYWRfaW5vZGUoaW5vZGUpKQpAQCAtNTA4LDExICs1MjEsMTIgQEAKICAqCQlkaXJlY3QgYmxvY2tzCiAgKi8KIHN0YXRpYyBpbnQgZXh0NF9hbGxvY19ibG9ja3MoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCWV4dDRfZnNibGtfdCBnb2FsLCBpbnQgaW5kaXJlY3RfYmxrcywgaW50IGJsa3MsCi0JCQlleHQ0X2ZzYmxrX3QgbmV3X2Jsb2Nrc1s0XSwgaW50ICplcnIpCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBleHQ0X2ZzYmxrX3QgZ29hbCwKKwkJCQlpbnQgaW5kaXJlY3RfYmxrcywgaW50IGJsa3MsCisJCQkJZXh0NF9mc2Jsa190IG5ld19ibG9ja3NbNF0sIGludCAqZXJyKQogewogCWludCB0YXJnZXQsIGk7Ci0JdW5zaWduZWQgbG9uZyBjb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyBjb3VudCA9IDAsIGJsa19hbGxvY2F0ZWQgPSAwOwogCWludCBpbmRleCA9IDA7CiAJZXh0NF9mc2Jsa190IGN1cnJlbnRfYmxvY2sgPSAwOwogCWludCByZXQgPSAwOwpAQCAtNTI1LDEyICs1MzksMTMgQEAKIAkgKiB0aGUgZmlyc3QgZGlyZWN0IGJsb2NrIG9mIHRoaXMgYnJhbmNoLiAgVGhhdCdzIHRoZQogCSAqIG1pbmltdW0gbnVtYmVyIG9mIGJsb2NrcyBuZWVkIHRvIGFsbG9jYXRlKHJlcXVpcmVkKQogCSAqLwotCXRhcmdldCA9IGJsa3MgKyBpbmRpcmVjdF9ibGtzOwotCi0Jd2hpbGUgKDEpIHsKKwkvKiBmaXJzdCB3ZSB0cnkgdG8gYWxsb2NhdGUgdGhlIGluZGlyZWN0IGJsb2NrcyAqLworCXRhcmdldCA9IGluZGlyZWN0X2Jsa3M7CisJd2hpbGUgKHRhcmdldCA+IDApIHsKIAkJY291bnQgPSB0YXJnZXQ7CiAJCS8qIGFsbG9jYXRpbmcgYmxvY2tzIGZvciBpbmRpcmVjdCBibG9ja3MgYW5kIGRpcmVjdCBibG9ja3MgKi8KLQkJY3VycmVudF9ibG9jayA9IGV4dDRfbmV3X2Jsb2NrcyhoYW5kbGUsaW5vZGUsZ29hbCwmY291bnQsZXJyKTsKKwkJY3VycmVudF9ibG9jayA9IGV4dDRfbmV3X21ldGFfYmxvY2tzKGhhbmRsZSwgaW5vZGUsCisJCQkJCQkJZ29hbCwgJmNvdW50LCBlcnIpOwogCQlpZiAoKmVycikKIAkJCWdvdG8gZmFpbGVkX291dDsKIApAQCAtNTQwLDE2ICs1NTUsNDggQEAKIAkJCW5ld19ibG9ja3NbaW5kZXgrK10gPSBjdXJyZW50X2Jsb2NrKys7CiAJCQljb3VudC0tOwogCQl9Ci0KLQkJaWYgKGNvdW50ID4gMCkKKwkJaWYgKGNvdW50ID4gMCkgeworCQkJLyoKKwkJCSAqIHNhdmUgdGhlIG5ldyBibG9jayBudW1iZXIKKwkJCSAqIGZvciB0aGUgZmlyc3QgZGlyZWN0IGJsb2NrCisJCQkgKi8KKwkJCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKKwkJCXByaW50ayhLRVJOX0lORk8gIiVzIHJldHVybmVkIG1vcmUgYmxvY2tzIHRoYW4gIgorCQkJCQkJInJlcXVlc3RlZFxuIiwgX19mdW5jX18pOworCQkJV0FSTl9PTigxKTsKIAkJCWJyZWFrOworCQl9CiAJfQogCi0JLyogc2F2ZSB0aGUgbmV3IGJsb2NrIG51bWJlciBmb3IgdGhlIGZpcnN0IGRpcmVjdCBibG9jayAqLwotCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKLQorCXRhcmdldCA9IGJsa3MgLSBjb3VudCA7CisJYmxrX2FsbG9jYXRlZCA9IGNvdW50OworCWlmICghdGFyZ2V0KQorCQlnb3RvIGFsbG9jYXRlZDsKKwkvKiBOb3cgYWxsb2NhdGUgZGF0YSBibG9ja3MgKi8KKwljb3VudCA9IHRhcmdldDsKKwkvKiBhbGxvY2F0aW5nIGJsb2NrcyBmb3IgZGF0YSBibG9ja3MgKi8KKwljdXJyZW50X2Jsb2NrID0gZXh0NF9uZXdfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGlibG9jaywKKwkJCQkJCWdvYWwsICZjb3VudCwgZXJyKTsKKwlpZiAoKmVyciAmJiAodGFyZ2V0ID09IGJsa3MpKSB7CisJCS8qCisJCSAqIGlmIHRoZSBhbGxvY2F0aW9uIGZhaWxlZCBhbmQgd2UgZGlkbid0IGFsbG9jYXRlCisJCSAqIGFueSBibG9ja3MgYmVmb3JlCisJCSAqLworCQlnb3RvIGZhaWxlZF9vdXQ7CisJfQorCWlmICghKmVycikgeworCQlpZiAodGFyZ2V0ID09IGJsa3MpIHsKKwkJLyoKKwkJICogc2F2ZSB0aGUgbmV3IGJsb2NrIG51bWJlcgorCQkgKiBmb3IgdGhlIGZpcnN0IGRpcmVjdCBibG9jaworCQkgKi8KKwkJCW5ld19ibG9ja3NbaW5kZXhdID0gY3VycmVudF9ibG9jazsKKwkJfQorCQlibGtfYWxsb2NhdGVkICs9IGNvdW50OworCX0KK2FsbG9jYXRlZDoKIAkvKiB0b3RhbCBudW1iZXIgb2YgYmxvY2tzIGFsbG9jYXRlZCBmb3IgZGlyZWN0IGJsb2NrcyAqLwotCXJldCA9IGNvdW50OworCXJldCA9IGJsa19hbGxvY2F0ZWQ7CiAJKmVyciA9IDA7CiAJcmV0dXJuIHJldDsKIGZhaWxlZF9vdXQ6CkBAIC01ODQsOCArNjMxLDkgQEAKICAqCWFzIGRlc2NyaWJlZCBhYm92ZSBhbmQgcmV0dXJuIDAuCiAgKi8KIHN0YXRpYyBpbnQgZXh0NF9hbGxvY19icmFuY2goaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCWludCBpbmRpcmVjdF9ibGtzLCBpbnQgKmJsa3MsIGV4dDRfZnNibGtfdCBnb2FsLAotCQkJZXh0NF9sYmxrX3QgKm9mZnNldHMsIEluZGlyZWN0ICpicmFuY2gpCisJCQkJZXh0NF9sYmxrX3QgaWJsb2NrLCBpbnQgaW5kaXJlY3RfYmxrcywKKwkJCQlpbnQgKmJsa3MsIGV4dDRfZnNibGtfdCBnb2FsLAorCQkJCWV4dDRfbGJsa190ICpvZmZzZXRzLCBJbmRpcmVjdCAqYnJhbmNoKQogewogCWludCBibG9ja3NpemUgPSBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemU7CiAJaW50IGksIG4gPSAwOwpAQCAtNTk1LDcgKzY0Myw3IEBACiAJZXh0NF9mc2Jsa190IG5ld19ibG9ja3NbNF07CiAJZXh0NF9mc2Jsa190IGN1cnJlbnRfYmxvY2s7CiAKLQludW0gPSBleHQ0X2FsbG9jX2Jsb2NrcyhoYW5kbGUsIGlub2RlLCBnb2FsLCBpbmRpcmVjdF9ibGtzLAorCW51bSA9IGV4dDRfYWxsb2NfYmxvY2tzKGhhbmRsZSwgaW5vZGUsIGlibG9jaywgZ29hbCwgaW5kaXJlY3RfYmxrcywKIAkJCQkqYmxrcywgbmV3X2Jsb2NrcywgJmVycik7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKQEAgLTc5OSw2ICs4NDcsNyBAQAogCXN0cnVjdCBleHQ0X2lub2RlX2luZm8gKmVpID0gRVhUNF9JKGlub2RlKTsKIAlpbnQgY291bnQgPSAwOwogCWV4dDRfZnNibGtfdCBmaXJzdF9ibG9jayA9IDA7CisJbG9mZl90IGRpc2tzaXplOwogCiAKIAlKX0FTU0VSVCghKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpKTsKQEAgLTg1NSw4ICs5MDQsOSBAQAogCS8qCiAJICogQmxvY2sgb3V0IGV4dDRfdHJ1bmNhdGUgd2hpbGUgd2UgYWx0ZXIgdGhlIHRyZWUKIAkgKi8KLQllcnIgPSBleHQ0X2FsbG9jX2JyYW5jaChoYW5kbGUsIGlub2RlLCBpbmRpcmVjdF9ibGtzLCAmY291bnQsIGdvYWwsCi0JCQkJb2Zmc2V0cyArIChwYXJ0aWFsIC0gY2hhaW4pLCBwYXJ0aWFsKTsKKwllcnIgPSBleHQ0X2FsbG9jX2JyYW5jaChoYW5kbGUsIGlub2RlLCBpYmxvY2ssIGluZGlyZWN0X2Jsa3MsCisJCQkJCSZjb3VudCwgZ29hbCwKKwkJCQkJb2Zmc2V0cyArIChwYXJ0aWFsIC0gY2hhaW4pLCBwYXJ0aWFsKTsKIAogCS8qCiAJICogVGhlIGV4dDRfc3BsaWNlX2JyYW5jaCBjYWxsIHdpbGwgZnJlZSBhbmQgZm9yZ2V0IGFueSBidWZmZXJzCkBAIC04NzMsOCArOTIzLDEzIEBACiAJICogcHJvdGVjdCBpdCBpZiB5b3UncmUgYWJvdXQgdG8gaW1wbGVtZW50IGNvbmN1cnJlbnQKIAkgKiBleHQ0X2dldF9ibG9jaygpIC1ienp6CiAJKi8KLQlpZiAoIWVyciAmJiBleHRlbmRfZGlza3NpemUgJiYgaW5vZGUtPmlfc2l6ZSA+IGVpLT5pX2Rpc2tzaXplKQotCQllaS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7CisJaWYgKCFlcnIgJiYgZXh0ZW5kX2Rpc2tzaXplKSB7CisJCWRpc2tzaXplID0gKChsb2ZmX3QpIGlibG9jayArIGNvdW50KSA8PCBpbm9kZS0+aV9ibGtiaXRzOworCQlpZiAoZGlza3NpemUgPiBpX3NpemVfcmVhZChpbm9kZSkpCisJCQlkaXNrc2l6ZSA9IGlfc2l6ZV9yZWFkKGlub2RlKTsKKwkJaWYgKGRpc2tzaXplID4gZWktPmlfZGlza3NpemUpCisJCQllaS0+aV9kaXNrc2l6ZSA9IGRpc2tzaXplOworCX0KIAlpZiAoZXJyKQogCQlnb3RvIGNsZWFudXA7CiAKQEAgLTkzNCw3ICs5ODksNyBAQAogICovCiBpbnQgZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGlub2RlICppbm9kZSwgc2VjdG9yX3QgYmxvY2ssCiAJCQl1bnNpZ25lZCBsb25nIG1heF9ibG9ja3MsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsCi0JCQlpbnQgY3JlYXRlLCBpbnQgZXh0ZW5kX2Rpc2tzaXplKQorCQkJaW50IGNyZWF0ZSwgaW50IGV4dGVuZF9kaXNrc2l6ZSwgaW50IGZsYWcpCiB7CiAJaW50IHJldHZhbDsKIApAQCAtOTc1LDYgKzEwMzAsMTUgQEAKIAkgKiB3aXRoIGNyZWF0ZSA9PSAxIGZsYWcuCiAJICovCiAJZG93bl93cml0ZSgoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pKTsKKworCS8qCisJICogaWYgdGhlIGNhbGxlciBpcyBmcm9tIGRlbGF5ZWQgYWxsb2NhdGlvbiB3cml0ZW91dCBwYXRoCisJICogd2UgaGF2ZSBhbHJlYWR5IHJlc2VydmVkIGZzIGJsb2NrcyBmb3IgYWxsb2NhdGlvbgorCSAqIGxldCB0aGUgdW5kZXJseWluZyBnZXRfYmxvY2soKSBmdW5jdGlvbiBrbm93IHRvCisJICogYXZvaWQgZG91YmxlIGFjY291bnRpbmcKKwkgKi8KKwlpZiAoZmxhZykKKwkJRVhUNF9JKGlub2RlKS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnID0gMTsKIAkvKgogCSAqIFdlIG5lZWQgdG8gY2hlY2sgZm9yIEVYVDQgaGVyZSBiZWNhdXNlIG1pZ3JhdGUKIAkgKiBjb3VsZCBoYXZlIGNoYW5nZWQgdGhlIGlub2RlIHR5cGUgaW4gYmV0d2VlbgpAQCAtOTk2LDYgKzEwNjAsMTggQEAKIAkJCQkJCQl+RVhUNF9FWFRfTUlHUkFURTsKIAkJfQogCX0KKworCWlmIChmbGFnKSB7CisJCUVYVDRfSShpbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZyA9IDA7CisJCS8qCisJCSAqIFVwZGF0ZSByZXNlcnZlZCBibG9ja3MvbWV0YWRhdGEgYmxvY2tzCisJCSAqIGFmdGVyIHN1Y2Nlc3NmdWwgYmxvY2sgYWxsb2NhdGlvbgorCQkgKiB3aGljaCB3ZXJlIGRlZmVycmVkIHRpbGwgbm93CisJCSAqLworCQlpZiAoKHJldHZhbCA+IDApICYmIGJ1ZmZlcl9kZWxheShiaCkpCisJCQlleHQ0X2RhX3JlbGVhc2Vfc3BhY2UoaW5vZGUsIHJldHZhbCwgMCk7CisJfQorCiAJdXBfd3JpdGUoKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKSk7CiAJcmV0dXJuIHJldHZhbDsKIH0KQEAgLTEwMjEsNyArMTA5Nyw3IEBACiAJfQogCiAJcmV0ID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoaGFuZGxlLCBpbm9kZSwgaWJsb2NrLAotCQkJCQltYXhfYmxvY2tzLCBiaF9yZXN1bHQsIGNyZWF0ZSwgMCk7CisJCQkJCW1heF9ibG9ja3MsIGJoX3Jlc3VsdCwgY3JlYXRlLCAwLCAwKTsKIAlpZiAocmV0ID4gMCkgewogCQliaF9yZXN1bHQtPmJfc2l6ZSA9IChyZXQgPDwgaW5vZGUtPmlfYmxrYml0cyk7CiAJCXJldCA9IDA7CkBAIC0xMDQ3LDcgKzExMjMsNyBAQAogCWR1bW15LmJfYmxvY2tuciA9IC0xMDAwOwogCWJ1ZmZlcl90cmFjZV9pbml0KCZkdW1teS5iX2hpc3RvcnkpOwogCWVyciA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGJsb2NrLCAxLAotCQkJCQkmZHVtbXksIGNyZWF0ZSwgMSk7CisJCQkJCSZkdW1teSwgY3JlYXRlLCAxLCAwKTsKIAkvKgogCSAqIGV4dDRfZ2V0X2Jsb2Nrc19oYW5kbGUoKSByZXR1cm5zIG51bWJlciBvZiBibG9ja3MKIAkgKiBtYXBwZWQuIDAgaW4gY2FzZSBvZiBhIEhPTEUuCkBAIC0xMjAzLDE5ICsxMjc5LDIwIEBACiAgCXRvID0gZnJvbSArIGxlbjsKIAogcmV0cnk6Ci0gCXBhZ2UgPSBfX2dyYWJfY2FjaGVfcGFnZShtYXBwaW5nLCBpbmRleCk7Ci0gCWlmICghcGFnZSkKLSAJCXJldHVybiAtRU5PTUVNOwotIAkqcGFnZXAgPSBwYWdlOwotCiAgIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIG5lZWRlZF9ibG9ja3MpOwogICAJaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0gCQl1bmxvY2tfcGFnZShwYWdlKTsKLSAJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKICAgCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7CiAgIAkJZ290byBvdXQ7CiAJfQogCisJcGFnZSA9IF9fZ3JhYl9jYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4KTsKKwlpZiAoIXBhZ2UpIHsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQorCSpwYWdlcCA9IHBhZ2U7CisKIAlyZXQgPSBibG9ja193cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZmxhZ3MsIHBhZ2VwLCBmc2RhdGEsCiAJCQkJCQkJZXh0NF9nZXRfYmxvY2spOwogCkBAIC0xMjI1LDggKzEzMDIsOCBAQAogCX0KIAogCWlmIChyZXQpIHsKLQkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKICAJCXVubG9ja19wYWdlKHBhZ2UpOworCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogIAkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOwogCX0KIApAQCAtMTIzNiwxNSArMTMxMyw2IEBACiAJcmV0dXJuIHJldDsKIH0KIAotaW50IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCi17Ci0JaW50IGVyciA9IGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZSwgYmgpOwotCWlmIChlcnIpCi0JCWV4dDRfam91cm5hbF9hYm9ydF9oYW5kbGUoX19mdW5jX18sIF9fZnVuY19fLAotCQkJCQkJYmgsIGhhbmRsZSwgZXJyKTsKLQlyZXR1cm4gZXJyOwotfQotCiAvKiBGb3Igd3JpdGVfZW5kKCkgaW4gZGF0YT1qb3VybmFsIG1vZGUgKi8KIHN0YXRpYyBpbnQgd3JpdGVfZW5kX2ZuKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiB7CkBAIC0xMjU1LDI5ICsxMzIzLDYgQEAKIH0KIAogLyoKLSAqIEdlbmVyaWMgd3JpdGVfZW5kIGhhbmRsZXIgZm9yIG9yZGVyZWQgYW5kIHdyaXRlYmFjayBleHQ0IGpvdXJuYWwgbW9kZXMuCi0gKiBXZSBjYW4ndCB1c2UgZ2VuZXJpY193cml0ZV9lbmQsIGJlY2F1c2UgdGhhdCB1bmxvY2tzIHRoZSBwYWdlIGFuZCB3ZSBuZWVkIHRvCi0gKiB1bmxvY2sgdGhlIHBhZ2UgYWZ0ZXIgZXh0NF9qb3VybmFsX3N0b3AsIGJ1dCBleHQ0X2pvdXJuYWxfc3RvcCBtdXN0IHJ1bgotICogYWZ0ZXIgYmxvY2tfd3JpdGVfZW5kLgotICovCi1zdGF0aWMgaW50IGV4dDRfZ2VuZXJpY193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsCi0JCQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCi0JCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsCi0JCQkJc3RydWN0IHBhZ2UgKnBhZ2UsIHZvaWQgKmZzZGF0YSkKLXsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OwotCi0JY29waWVkID0gYmxvY2tfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIHBhZ2UsIGZzZGF0YSk7Ci0KLQlpZiAocG9zK2NvcGllZCA+IGlub2RlLT5pX3NpemUpIHsKLQkJaV9zaXplX3dyaXRlKGlub2RlLCBwb3MrY29waWVkKTsKLQkJbWFya19pbm9kZV9kaXJ0eShpbm9kZSk7Ci0JfQotCi0JcmV0dXJuIGNvcGllZDsKLX0KLQotLyoKICAqIFdlIG5lZWQgdG8gcGljayB1cCB0aGUgbmV3IGlub2RlIHNpemUgd2hpY2ggZ2VuZXJpY19jb21taXRfd3JpdGUgZ2F2ZSB1cwogICogYGZpbGUnIGNhbiBiZSBOVUxMIC0gZWcsIHdoZW4gY2FsbGVkIGZyb20gcGFnZV9zeW1saW5rKCkuCiAgKgpAQCAtMTI5MCwxNSArMTMzNSwxNCBAQAogCQkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCiB7CiAJaGFuZGxlX3QgKmhhbmRsZSA9IGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpOwotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxlLT5mX21hcHBpbmctPmhvc3Q7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJdW5zaWduZWQgZnJvbSwgdG87CiAJaW50IHJldCA9IDAsIHJldDI7CiAKIAlmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOwogCXRvID0gZnJvbSArIGxlbjsKIAotCXJldCA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLAotCQlmcm9tLCB0bywgTlVMTCwgZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEpOworCXJldCA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwgaW5vZGUpOwogCiAJaWYgKHJldCA9PSAwKSB7CiAJCS8qCkBAIC0xMzExLDcgKzEzNTUsNyBAQAogCQluZXdfaV9zaXplID0gcG9zICsgY29waWVkOwogCQlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpCiAJCQlFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplID0gbmV3X2lfc2l6ZTsKLQkJcmV0MiA9IGV4dDRfZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwKKwkJcmV0MiA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsCiAJCQkJCQkJcGFnZSwgZnNkYXRhKTsKIAkJY29waWVkID0gcmV0MjsKIAkJaWYgKHJldDIgPCAwKQpAQCAtMTMyMCw4ICsxMzY0LDYgQEAKIAlyZXQyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gcmV0MjsKLQl1bmxvY2tfcGFnZShwYWdlKTsKLQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQpAQCAtMTMzMiw3ICsxMzc0LDcgQEAKIAkJCQlzdHJ1Y3QgcGFnZSAqcGFnZSwgdm9pZCAqZnNkYXRhKQogewogCWhhbmRsZV90ICpoYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCWludCByZXQgPSAwLCByZXQyOwogCWxvZmZfdCBuZXdfaV9zaXplOwogCkBAIC0xMzQwLDcgKzEzODIsNyBAQAogCWlmIChuZXdfaV9zaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkKIAkJRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSA9IG5ld19pX3NpemU7CiAKLQlyZXQyID0gZXh0NF9nZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAorCXJldDIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAogCQkJCQkJCXBhZ2UsIGZzZGF0YSk7CiAJY29waWVkID0gcmV0MjsKIAlpZiAocmV0MiA8IDApCkBAIC0xMzQ5LDggKzEzOTEsNiBAQAogCXJldDIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogCWlmICghcmV0KQogCQlyZXQgPSByZXQyOwotCXVubG9ja19wYWdlKHBhZ2UpOwotCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKIAogCXJldHVybiByZXQgPyByZXQgOiBjb3BpZWQ7CiB9CkBAIC0xMzg5LDE0ICsxNDI5LDk2NSBAQAogCQkJcmV0ID0gcmV0MjsKIAl9CiAKKwl1bmxvY2tfcGFnZShwYWdlKTsKIAlyZXQyID0gZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKIAlpZiAoIXJldCkKIAkJcmV0ID0gcmV0MjsKLQl1bmxvY2tfcGFnZShwYWdlKTsKIAlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAKIAlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOwogfQorLyoKKyAqIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIG1ldGFkYXRhIGJsb2NrcyBuZWVkIHRvIHJlc2VydmUKKyAqIHRvIGFsbG9jYXRlIEBibG9ja3MgZm9yIG5vbiBleHRlbnQgZmlsZSBiYXNlZCBmaWxlCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9pbmRpcmVjdF9jYWxjX21ldGFkYXRhX2Ftb3VudChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgYmxvY2tzKQoreworCWludCBpY2FwID0gRVhUNF9BRERSX1BFUl9CTE9DSyhpbm9kZS0+aV9zYik7CisJaW50IGluZF9ibGtzLCBkaW5kX2Jsa3MsIHRpbmRfYmxrczsKKworCS8qIG51bWJlciBvZiBuZXcgaW5kaXJlY3QgYmxvY2tzIG5lZWRlZCAqLworCWluZF9ibGtzID0gKGJsb2NrcyArIGljYXAgLSAxKSAvIGljYXA7CisKKwlkaW5kX2Jsa3MgPSAoaW5kX2Jsa3MgKyBpY2FwIC0gMSkgLyBpY2FwOworCisJdGluZF9ibGtzID0gMTsKKworCXJldHVybiBpbmRfYmxrcyArIGRpbmRfYmxrcyArIHRpbmRfYmxrczsKK30KKworLyoKKyAqIENhbGN1bGF0ZSB0aGUgbnVtYmVyIG9mIG1ldGFkYXRhIGJsb2NrcyBuZWVkIHRvIHJlc2VydmUKKyAqIHRvIGFsbG9jYXRlIGdpdmVuIG51bWJlciBvZiBibG9ja3MKKyAqLworc3RhdGljIGludCBleHQ0X2NhbGNfbWV0YWRhdGFfYW1vdW50KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBibG9ja3MpCit7CisJaWYgKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpCisJCXJldHVybiBleHQ0X2V4dF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgYmxvY2tzKTsKKworCXJldHVybiBleHQ0X2luZGlyZWN0X2NhbGNfbWV0YWRhdGFfYW1vdW50KGlub2RlLCBibG9ja3MpOworfQorCitzdGF0aWMgaW50IGV4dDRfZGFfcmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbnJibG9ja3MpCit7CisgICAgICAgc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisgICAgICAgdW5zaWduZWQgbG9uZyBtZF9uZWVkZWQsIG1kYmxvY2tzLCB0b3RhbCA9IDA7CisKKwkvKgorCSAqIHJlY2FsY3VsYXRlIHRoZSBhbW91bnQgb2YgbWV0YWRhdGEgYmxvY2tzIHRvIHJlc2VydmUKKwkgKiBpbiBvcmRlciB0byBhbGxvY2F0ZSBucmJsb2NrcworCSAqIHdvcnNlIGNhc2UgaXMgb25lIGV4dGVudCBwZXIgYmxvY2sKKwkgKi8KKwlzcGluX2xvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisJdG90YWwgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzICsgbnJibG9ja3M7CisJbWRibG9ja3MgPSBleHQ0X2NhbGNfbWV0YWRhdGFfYW1vdW50KGlub2RlLCB0b3RhbCk7CisJQlVHX09OKG1kYmxvY2tzIDwgRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisKKwltZF9uZWVkZWQgPSBtZGJsb2NrcyAtIEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3M7CisJdG90YWwgPSBtZF9uZWVkZWQgKyBucmJsb2NrczsKKworCWlmIChleHQ0X2hhc19mcmVlX2Jsb2NrcyhzYmksIHRvdGFsKSA8IHRvdGFsKSB7CisJCXNwaW5fdW5sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCQlyZXR1cm4gLUVOT1NQQzsKKwl9CisKKwkvKiByZWR1Y2UgZnMgZnJlZSBibG9ja3MgY291bnRlciAqLworCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgdG90YWwpOworCisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyArPSBucmJsb2NrczsKKwlFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzID0gbWRibG9ja3M7CisKKwlzcGluX3VubG9jaygmRVhUNF9JKGlub2RlKS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKTsKKwlyZXR1cm4gMDsgICAgICAgLyogc3VjY2VzcyAqLworfQorCit2b2lkIGV4dDRfZGFfcmVsZWFzZV9zcGFjZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgdXNlZCwgaW50IHRvX2ZyZWUpCit7CisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihpbm9kZS0+aV9zYik7CisJaW50IHRvdGFsLCBtZGIsIG1kYl9mcmVlLCByZWxlYXNlOworCisJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCS8qIHJlY2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgbWV0YWJsb2NrcyBzdGlsbCBuZWVkIHRvIGJlIHJlc2VydmVkICovCisJdG90YWwgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzIC0gdXNlZCAtIHRvX2ZyZWU7CisJbWRiID0gZXh0NF9jYWxjX21ldGFkYXRhX2Ftb3VudChpbm9kZSwgdG90YWwpOworCisJLyogZmlndXJlIG91dCBob3cgbWFueSBtZXRhYmxvY2tzIHRvIHJlbGVhc2UgKi8KKwlCVUdfT04obWRiID4gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisJbWRiX2ZyZWUgPSBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX21ldGFfYmxvY2tzIC0gbWRiOworCisJLyogQWNjb3VudCBmb3IgYWxsb2NhdGVkIG1ldGFfYmxvY2tzICovCisJbWRiX2ZyZWUgLT0gRVhUNF9JKGlub2RlKS0+aV9hbGxvY2F0ZWRfbWV0YV9ibG9ja3M7CisKKwlyZWxlYXNlID0gdG9fZnJlZSArIG1kYl9mcmVlOworCisJLyogdXBkYXRlIGZzIGZyZWUgYmxvY2tzIGNvdW50ZXIgZm9yIHRydW5jYXRlIGNhc2UgKi8KKwlwZXJjcHVfY291bnRlcl9hZGQoJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIsIHJlbGVhc2UpOworCisJLyogdXBkYXRlIHBlci1pbm9kZSByZXNlcnZhdGlvbnMgKi8KKwlCVUdfT04odXNlZCArIHRvX2ZyZWUgPiBFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzKTsKKwlFWFQ0X0koaW5vZGUpLT5pX3Jlc2VydmVkX2RhdGFfYmxvY2tzIC09ICh1c2VkICsgdG9fZnJlZSk7CisKKwlCVUdfT04obWRiID4gRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2Nrcyk7CisJRVhUNF9JKGlub2RlKS0+aV9yZXNlcnZlZF9tZXRhX2Jsb2NrcyA9IG1kYjsKKwlFWFQ0X0koaW5vZGUpLT5pX2FsbG9jYXRlZF9tZXRhX2Jsb2NrcyA9IDA7CisJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIGV4dDRfZGFfcGFnZV9yZWxlYXNlX3Jlc2VydmF0aW9uKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJaW50IHRvX3JlbGVhc2UgPSAwOworCXN0cnVjdCBidWZmZXJfaGVhZCAqaGVhZCwgKmJoOworCXVuc2lnbmVkIGludCBjdXJyX29mZiA9IDA7CisKKwloZWFkID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCWJoID0gaGVhZDsKKwlkbyB7CisJCXVuc2lnbmVkIGludCBuZXh0X29mZiA9IGN1cnJfb2ZmICsgYmgtPmJfc2l6ZTsKKworCQlpZiAoKG9mZnNldCA8PSBjdXJyX29mZikgJiYgKGJ1ZmZlcl9kZWxheShiaCkpKSB7CisJCQl0b19yZWxlYXNlKys7CisJCQljbGVhcl9idWZmZXJfZGVsYXkoYmgpOworCQl9CisJCWN1cnJfb2ZmID0gbmV4dF9vZmY7CisJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwlleHQ0X2RhX3JlbGVhc2Vfc3BhY2UocGFnZS0+bWFwcGluZy0+aG9zdCwgMCwgdG9fcmVsZWFzZSk7Cit9CisKKy8qCisgKiBEZWxheWVkIGFsbG9jYXRpb24gc3R1ZmYKKyAqLworCitzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSB7CisJc3RydWN0IGlub2RlICppbm9kZTsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgbGJoOwkJCS8qIGV4dGVudCBvZiBibG9ja3MgKi8KKwl1bnNpZ25lZCBsb25nIGZpcnN0X3BhZ2UsIG5leHRfcGFnZTsJLyogZXh0ZW50IG9mIHBhZ2VzICovCisJZ2V0X2Jsb2NrX3QgKmdldF9ibG9jazsKKwlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYzsKK307CisKKy8qCisgKiBtcGFnZV9kYV9zdWJtaXRfaW8gLSB3YWxrcyB0aHJvdWdoIGV4dGVudCBvZiBwYWdlcyBhbmQgdHJ5IHRvIHdyaXRlCisgKiB0aGVtIHdpdGggX19tcGFnZV93cml0ZXBhZ2UoKQorICoKKyAqIEBtcGQtPmlub2RlOiBpbm9kZQorICogQG1wZC0+Zmlyc3RfcGFnZTogZmlyc3QgcGFnZSBvZiB0aGUgZXh0ZW50CisgKiBAbXBkLT5uZXh0X3BhZ2U6IHBhZ2UgYWZ0ZXIgdGhlIGxhc3QgcGFnZSBvZiB0aGUgZXh0ZW50CisgKiBAbXBkLT5nZXRfYmxvY2s6IHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgbWFwcGVyIGZ1bmN0aW9uCisgKgorICogQnkgdGhlIHRpbWUgbXBhZ2VfZGFfc3VibWl0X2lvKCkgaXMgY2FsbGVkIHdlIGV4cGVjdCBhbGwgYmxvY2tzCisgKiB0byBiZSBhbGxvY2F0ZWQuIHRoaXMgbWF5IGJlIHdyb25nIGlmIGFsbG9jYXRpb24gZmFpbGVkLgorICoKKyAqIEFzIHBhZ2VzIGFyZSBhbHJlYWR5IGxvY2tlZCBieSB3cml0ZV9jYWNoZV9wYWdlcygpLCB3ZSBjYW4ndCB1c2UgaXQKKyAqLworc3RhdGljIGludCBtcGFnZV9kYV9zdWJtaXRfaW8oc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IG1wZC0+aW5vZGUtPmlfbWFwcGluZzsKKwlzdHJ1Y3QgbXBhZ2VfZGF0YSBtcGRfcHAgPSB7CisJCS5iaW8gPSBOVUxMLAorCQkubGFzdF9ibG9ja19pbl9iaW8gPSAwLAorCQkuZ2V0X2Jsb2NrID0gbXBkLT5nZXRfYmxvY2ssCisJCS51c2Vfd3JpdGVwYWdlID0gMSwKKwl9OworCWludCByZXQgPSAwLCBlcnIsIG5yX3BhZ2VzLCBpOworCXVuc2lnbmVkIGxvbmcgaW5kZXgsIGVuZDsKKwlzdHJ1Y3QgcGFnZXZlYyBwdmVjOworCisJQlVHX09OKG1wZC0+bmV4dF9wYWdlIDw9IG1wZC0+Zmlyc3RfcGFnZSk7CisKKwlwYWdldmVjX2luaXQoJnB2ZWMsIDApOworCWluZGV4ID0gbXBkLT5maXJzdF9wYWdlOworCWVuZCA9IG1wZC0+bmV4dF9wYWdlIC0gMTsKKworCXdoaWxlIChpbmRleCA8PSBlbmQpIHsKKwkJLyogWFhYOiBvcHRpbWl6ZSB0YWlsICovCisJCW5yX3BhZ2VzID0gcGFnZXZlY19sb29rdXAoJnB2ZWMsIG1hcHBpbmcsIGluZGV4LCBQQUdFVkVDX1NJWkUpOworCQlpZiAobnJfcGFnZXMgPT0gMCkKKwkJCWJyZWFrOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgeworCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwdmVjLnBhZ2VzW2ldOworCisJCQlpbmRleCA9IHBhZ2UtPmluZGV4OworCQkJaWYgKGluZGV4ID4gZW5kKQorCQkJCWJyZWFrOworCQkJaW5kZXgrKzsKKworCQkJZXJyID0gX19tcGFnZV93cml0ZXBhZ2UocGFnZSwgbXBkLT53YmMsICZtcGRfcHApOworCisJCQkvKgorCQkJICogSW4gZXJyb3IgY2FzZSwgd2UgaGF2ZSB0byBjb250aW51ZSBiZWNhdXNlCisJCQkgKiByZW1haW5pbmcgcGFnZXMgYXJlIHN0aWxsIGxvY2tlZAorCQkJICogWFhYOiB1bmxvY2sgYW5kIHJlLWRpcnR5IHRoZW0/CisJCQkgKi8KKwkJCWlmIChyZXQgPT0gMCkKKwkJCQlyZXQgPSBlcnI7CisJCX0KKwkJcGFnZXZlY19yZWxlYXNlKCZwdmVjKTsKKwl9CisJaWYgKG1wZF9wcC5iaW8pCisJCW1wYWdlX2Jpb19zdWJtaXQoV1JJVEUsIG1wZF9wcC5iaW8pOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIG1wYWdlX3B1dF9ibnJfdG9fYmhzIC0gd2FsayBibG9ja3MgYW5kIGFzc2lnbiB0aGVtIGFjdHVhbCBudW1iZXJzCisgKgorICogQG1wZC0+aW5vZGUgLSBpbm9kZSB0byB3YWxrIHRocm91Z2gKKyAqIEBleGJoLT5iX2Jsb2NrbnIgLSBmaXJzdCBibG9jayBvbiBhIGRpc2sKKyAqIEBleGJoLT5iX3NpemUgLSBhbW91bnQgb2Ygc3BhY2UgaW4gYnl0ZXMKKyAqIEBsb2dpY2FsIC0gZmlyc3QgbG9naWNhbCBibG9jayB0byBzdGFydCBhc3NpZ25tZW50IHdpdGgKKyAqCisgKiB0aGUgZnVuY3Rpb24gZ29lcyB0aHJvdWdoIGFsbCBwYXNzZWQgc3BhY2UgYW5kIHB1dCBhY3R1YWwgZGlzaworICogYmxvY2sgbnVtYmVycyBpbnRvIGJ1ZmZlciBoZWFkcywgZHJvcHBpbmcgQkhfRGVsYXkKKyAqLworc3RhdGljIHZvaWQgbXBhZ2VfcHV0X2Jucl90b19iaHMoc3RydWN0IG1wYWdlX2RhX2RhdGEgKm1wZCwgc2VjdG9yX3QgbG9naWNhbCwKKwkJCQkgc3RydWN0IGJ1ZmZlcl9oZWFkICpleGJoKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtcGQtPmlub2RlOworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsKKwlpbnQgYmxvY2tzID0gZXhiaC0+Yl9zaXplID4+IGlub2RlLT5pX2Jsa2JpdHM7CisJc2VjdG9yX3QgcGJsb2NrID0gZXhiaC0+Yl9ibG9ja25yLCBjdXJfbG9naWNhbDsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmhlYWQsICpiaDsKKwl1bnNpZ25lZCBsb25nIGluZGV4LCBlbmQ7CisJc3RydWN0IHBhZ2V2ZWMgcHZlYzsKKwlpbnQgbnJfcGFnZXMsIGk7CisKKwlpbmRleCA9IGxvZ2ljYWwgPj4gKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKKwllbmQgPSAobG9naWNhbCArIGJsb2NrcyAtIDEpID4+IChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfYmxrYml0cyk7CisJY3VyX2xvZ2ljYWwgPSBpbmRleCA8PCAoUEFHRV9DQUNIRV9TSElGVCAtIGlub2RlLT5pX2Jsa2JpdHMpOworCisJcGFnZXZlY19pbml0KCZwdmVjLCAwKTsKKworCXdoaWxlIChpbmRleCA8PSBlbmQpIHsKKwkJLyogWFhYOiBvcHRpbWl6ZSB0YWlsICovCisJCW5yX3BhZ2VzID0gcGFnZXZlY19sb29rdXAoJnB2ZWMsIG1hcHBpbmcsIGluZGV4LCBQQUdFVkVDX1NJWkUpOworCQlpZiAobnJfcGFnZXMgPT0gMCkKKwkJCWJyZWFrOworCQlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgeworCQkJc3RydWN0IHBhZ2UgKnBhZ2UgPSBwdmVjLnBhZ2VzW2ldOworCisJCQlpbmRleCA9IHBhZ2UtPmluZGV4OworCQkJaWYgKGluZGV4ID4gZW5kKQorCQkJCWJyZWFrOworCQkJaW5kZXgrKzsKKworCQkJQlVHX09OKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKwkJCUJVR19PTihQYWdlV3JpdGViYWNrKHBhZ2UpKTsKKwkJCUJVR19PTighcGFnZV9oYXNfYnVmZmVycyhwYWdlKSk7CisKKwkJCWJoID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCQkJaGVhZCA9IGJoOworCisJCQkvKiBza2lwIGJsb2NrcyBvdXQgb2YgdGhlIHJhbmdlICovCisJCQlkbyB7CisJCQkJaWYgKGN1cl9sb2dpY2FsID49IGxvZ2ljYWwpCisJCQkJCWJyZWFrOworCQkJCWN1cl9sb2dpY2FsKys7CisJCQl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCisJCQlkbyB7CisJCQkJaWYgKGN1cl9sb2dpY2FsID49IGxvZ2ljYWwgKyBibG9ja3MpCisJCQkJCWJyZWFrOworCQkJCWlmIChidWZmZXJfZGVsYXkoYmgpKSB7CisJCQkJCWJoLT5iX2Jsb2NrbnIgPSBwYmxvY2s7CisJCQkJCWNsZWFyX2J1ZmZlcl9kZWxheShiaCk7CisJCQkJfSBlbHNlIGlmIChidWZmZXJfbWFwcGVkKGJoKSkKKwkJCQkJQlVHX09OKGJoLT5iX2Jsb2NrbnIgIT0gcGJsb2NrKTsKKworCQkJCWN1cl9sb2dpY2FsKys7CisJCQkJcGJsb2NrKys7CisJCQl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCQl9CisJCXBhZ2V2ZWNfcmVsZWFzZSgmcHZlYyk7CisJfQorfQorCisKKy8qCisgKiBfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzIC0ganVzdCBhIGhlbHBlciBmdW5jdGlvbiB0byB1bm1hcAorICogc2V0IG9mIGJsb2NrcyBkZXNjcmliZWQgYnkgQGJoCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsCisJCQkJCSAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwlzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2ID0gaW5vZGUtPmlfc2ItPnNfYmRldjsKKwlpbnQgYmxvY2tzLCBpOworCisJYmxvY2tzID0gYmgtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCWZvciAoaSA9IDA7IGkgPCBibG9ja3M7IGkrKykKKwkJdW5tYXBfdW5kZXJseWluZ19tZXRhZGF0YShiZGV2LCBiaC0+Yl9ibG9ja25yICsgaSk7Cit9CisKKy8qCisgKiBtcGFnZV9kYV9tYXBfYmxvY2tzIC0gZ28gdGhyb3VnaCBnaXZlbiBzcGFjZQorICoKKyAqIEBtcGQtPmxiaCAtIGJoIGRlc2NyaWJpbmcgc3BhY2UKKyAqIEBtcGQtPmdldF9ibG9jayAtIHRoZSBmaWxlc3lzdGVtJ3MgYmxvY2sgbWFwcGVyIGZ1bmN0aW9uCisgKgorICogVGhlIGZ1bmN0aW9uIHNraXBzIHNwYWNlIHdlIGtub3cgaXMgYWxyZWFkeSBtYXBwZWQgdG8gZGlzayBibG9ja3MuCisgKgorICogVGhlIGZ1bmN0aW9uIGlnbm9yZXMgZXJyb3JzIC0+Z2V0X2Jsb2NrKCkgcmV0dXJucywgdGh1cyByZWFsCisgKiBlcnJvciBoYW5kbGluZyBpcyBwb3N0cG9uZWQgdG8gX19tcGFnZV93cml0ZXBhZ2UoKQorICovCitzdGF0aWMgdm9pZCBtcGFnZV9kYV9tYXBfYmxvY2tzKHN0cnVjdCBtcGFnZV9kYV9kYXRhICptcGQpCit7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpsYmggPSAmbXBkLT5sYmg7CisJaW50IGVyciA9IDAsIHJlbWFpbiA9IGxiaC0+Yl9zaXplOworCXNlY3Rvcl90IG5leHQgPSBsYmgtPmJfYmxvY2tucjsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgbmV3OworCisJLyoKKwkgKiBXZSBjb25zaWRlciBvbmx5IG5vbi1tYXBwZWQgYW5kIG5vbi1hbGxvY2F0ZWQgYmxvY2tzCisJICovCisJaWYgKGJ1ZmZlcl9tYXBwZWQobGJoKSAmJiAhYnVmZmVyX2RlbGF5KGxiaCkpCisJCXJldHVybjsKKworCXdoaWxlIChyZW1haW4pIHsKKwkJbmV3LmJfc3RhdGUgPSBsYmgtPmJfc3RhdGU7CisJCW5ldy5iX2Jsb2NrbnIgPSAwOworCQluZXcuYl9zaXplID0gcmVtYWluOworCQllcnIgPSBtcGQtPmdldF9ibG9jayhtcGQtPmlub2RlLCBuZXh0LCAmbmV3LCAxKTsKKwkJaWYgKGVycikgeworCQkJLyoKKwkJCSAqIFJhdGhlciB0aGFuIGltcGxlbWVudCBvd24gZXJyb3IgaGFuZGxpbmcKKwkJCSAqIGhlcmUsIHdlIGp1c3QgbGVhdmUgcmVtYWluaW5nIGJsb2NrcworCQkJICogdW5hbGxvY2F0ZWQgYW5kIHRyeSBhZ2FpbiB3aXRoIC0+d3JpdGVwYWdlKCkKKwkJCSAqLworCQkJYnJlYWs7CisJCX0KKwkJQlVHX09OKG5ldy5iX3NpemUgPT0gMCk7CisKKwkJaWYgKGJ1ZmZlcl9uZXcoJm5ldykpCisJCQlfX3VubWFwX3VuZGVybHlpbmdfYmxvY2tzKG1wZC0+aW5vZGUsICZuZXcpOworCisJCS8qCisJCSAqIElmIGJsb2NrcyBhcmUgZGVsYXllZCBtYXJrZWQsIHdlIG5lZWQgdG8KKwkJICogcHV0IGFjdHVhbCBibG9ja25yIGFuZCBkcm9wIGRlbGF5ZWQgYml0CisJCSAqLworCQlpZiAoYnVmZmVyX2RlbGF5KGxiaCkpCisJCQltcGFnZV9wdXRfYm5yX3RvX2JocyhtcGQsIG5leHQsICZuZXcpOworCisJCS8qIGdvIGZvciB0aGUgcmVtYWluaW5nIGJsb2NrcyAqLworCQluZXh0ICs9IG5ldy5iX3NpemUgPj4gbXBkLT5pbm9kZS0+aV9ibGtiaXRzOworCQlyZW1haW4gLT0gbmV3LmJfc2l6ZTsKKwl9Cit9CisKKyNkZWZpbmUgQkhfRkxBR1MgKCgxIDw8IEJIX1VwdG9kYXRlKSB8ICgxIDw8IEJIX01hcHBlZCkgfCAoMSA8PCBCSF9EZWxheSkpCisKKy8qCisgKiBtcGFnZV9hZGRfYmhfdG9fZXh0ZW50IC0gdHJ5IHRvIGFkZCBvbmUgbW9yZSBibG9jayB0byBleHRlbnQgb2YgYmxvY2tzCisgKgorICogQG1wZC0+bGJoIC0gZXh0ZW50IG9mIGJsb2NrcworICogQGxvZ2ljYWwgLSBsb2dpY2FsIG51bWJlciBvZiB0aGUgYmxvY2sgaW4gdGhlIGZpbGUKKyAqIEBiaCAtIGJoIG9mIHRoZSBibG9jayAodXNlZCB0byBhY2Nlc3MgYmxvY2sncyBzdGF0ZSkKKyAqCisgKiB0aGUgZnVuY3Rpb24gaXMgdXNlZCB0byBjb2xsZWN0IGNvbnRpZy4gYmxvY2tzIGluIHNhbWUgc3RhdGUKKyAqLworc3RhdGljIHZvaWQgbXBhZ2VfYWRkX2JoX3RvX2V4dGVudChzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBkLAorCQkJCSAgIHNlY3Rvcl90IGxvZ2ljYWwsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCit7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpsYmggPSAmbXBkLT5sYmg7CisJc2VjdG9yX3QgbmV4dDsKKworCW5leHQgPSBsYmgtPmJfYmxvY2tuciArIChsYmgtPmJfc2l6ZSA+PiBtcGQtPmlub2RlLT5pX2Jsa2JpdHMpOworCisJLyoKKwkgKiBGaXJzdCBibG9jayBpbiB0aGUgZXh0ZW50CisJICovCisJaWYgKGxiaC0+Yl9zaXplID09IDApIHsKKwkJbGJoLT5iX2Jsb2NrbnIgPSBsb2dpY2FsOworCQlsYmgtPmJfc2l6ZSA9IGJoLT5iX3NpemU7CisJCWxiaC0+Yl9zdGF0ZSA9IGJoLT5iX3N0YXRlICYgQkhfRkxBR1M7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIENhbiB3ZSBtZXJnZSB0aGUgYmxvY2sgdG8gb3VyIGJpZyBleHRlbnQ/CisJICovCisJaWYgKGxvZ2ljYWwgPT0gbmV4dCAmJiAoYmgtPmJfc3RhdGUgJiBCSF9GTEFHUykgPT0gbGJoLT5iX3N0YXRlKSB7CisJCWxiaC0+Yl9zaXplICs9IGJoLT5iX3NpemU7CisJCXJldHVybjsKKwl9CisKKwkvKgorCSAqIFdlIGNvdWxkbid0IG1lcmdlIHRoZSBibG9jayB0byBvdXIgZXh0ZW50LCBzbyB3ZQorCSAqIG5lZWQgdG8gZmx1c2ggY3VycmVudCAgZXh0ZW50IGFuZCBzdGFydCBuZXcgb25lCisJICovCisJbXBhZ2VfZGFfbWFwX2Jsb2NrcyhtcGQpOworCisJLyoKKwkgKiBOb3cgc3RhcnQgYSBuZXcgZXh0ZW50CisJICovCisJbGJoLT5iX3NpemUgPSBiaC0+Yl9zaXplOworCWxiaC0+Yl9zdGF0ZSA9IGJoLT5iX3N0YXRlICYgQkhfRkxBR1M7CisJbGJoLT5iX2Jsb2NrbnIgPSBsb2dpY2FsOworfQorCisvKgorICogX19tcGFnZV9kYV93cml0ZXBhZ2UgLSBmaW5kcyBleHRlbnQgb2YgcGFnZXMgYW5kIGJsb2NrcworICoKKyAqIEBwYWdlOiBwYWdlIHRvIGNvbnNpZGVyCisgKiBAd2JjOiBub3QgdXNlZCwgd2UganVzdCBmb2xsb3cgcnVsZXMKKyAqIEBkYXRhOiBjb250ZXh0CisgKgorICogVGhlIGZ1bmN0aW9uIGZpbmRzIGV4dGVudHMgb2YgcGFnZXMgYW5kIHNjYW4gdGhlbSBmb3IgYWxsIGJsb2Nrcy4KKyAqLworc3RhdGljIGludCBfX21wYWdlX2RhX3dyaXRlcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwKKwkJCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywgdm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBkID0gZGF0YTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbXBkLT5pbm9kZTsKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCAqaGVhZCwgZmFrZTsKKwlzZWN0b3JfdCBsb2dpY2FsOworCisJLyoKKwkgKiBDYW4gd2UgbWVyZ2UgdGhpcyBwYWdlIHRvIGN1cnJlbnQgZXh0ZW50PworCSAqLworCWlmIChtcGQtPm5leHRfcGFnZSAhPSBwYWdlLT5pbmRleCkgeworCQkvKgorCQkgKiBOb3BlLCB3ZSBjYW4ndC4gU28sIHdlIG1hcCBub24tYWxsb2NhdGVkIGJsb2NrcworCQkgKiBhbmQgc3RhcnQgSU8gb24gdGhlbSB1c2luZyBfX21wYWdlX3dyaXRlcGFnZSgpCisJCSAqLworCQlpZiAobXBkLT5uZXh0X3BhZ2UgIT0gbXBkLT5maXJzdF9wYWdlKSB7CisJCQltcGFnZV9kYV9tYXBfYmxvY2tzKG1wZCk7CisJCQltcGFnZV9kYV9zdWJtaXRfaW8obXBkKTsKKwkJfQorCisJCS8qCisJCSAqIFN0YXJ0IG5leHQgZXh0ZW50IG9mIHBhZ2VzIC4uLgorCQkgKi8KKwkJbXBkLT5maXJzdF9wYWdlID0gcGFnZS0+aW5kZXg7CisKKwkJLyoKKwkJICogLi4uIGFuZCBibG9ja3MKKwkJICovCisJCW1wZC0+bGJoLmJfc2l6ZSA9IDA7CisJCW1wZC0+bGJoLmJfc3RhdGUgPSAwOworCQltcGQtPmxiaC5iX2Jsb2NrbnIgPSAwOworCX0KKworCW1wZC0+bmV4dF9wYWdlID0gcGFnZS0+aW5kZXggKyAxOworCWxvZ2ljYWwgPSAoc2VjdG9yX3QpIHBhZ2UtPmluZGV4IDw8CisJCSAgKFBBR0VfQ0FDSEVfU0hJRlQgLSBpbm9kZS0+aV9ibGtiaXRzKTsKKworCWlmICghcGFnZV9oYXNfYnVmZmVycyhwYWdlKSkgeworCQkvKgorCQkgKiBUaGVyZSBpcyBubyBhdHRhY2hlZCBidWZmZXIgaGVhZHMgeWV0IChtbWFwPykKKwkJICogd2UgdHJlYXQgdGhlIHBhZ2UgYXNmdWxsIG9mIGRpcnR5IGJsb2NrcworCQkgKi8KKwkJYmggPSAmZmFrZTsKKwkJYmgtPmJfc2l6ZSA9IFBBR0VfQ0FDSEVfU0laRTsKKwkJYmgtPmJfc3RhdGUgPSAwOworCQlzZXRfYnVmZmVyX2RpcnR5KGJoKTsKKwkJc2V0X2J1ZmZlcl91cHRvZGF0ZShiaCk7CisJCW1wYWdlX2FkZF9iaF90b19leHRlbnQobXBkLCBsb2dpY2FsLCBiaCk7CisJfSBlbHNlIHsKKwkJLyoKKwkJICogUGFnZSB3aXRoIHJlZ3VsYXIgYnVmZmVyIGhlYWRzLCBqdXN0IGFkZCBhbGwgZGlydHkgb25lcworCQkgKi8KKwkJaGVhZCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwkJYmggPSBoZWFkOworCQlkbyB7CisJCQlCVUdfT04oYnVmZmVyX2xvY2tlZChiaCkpOworCQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkpCisJCQkJbXBhZ2VfYWRkX2JoX3RvX2V4dGVudChtcGQsIGxvZ2ljYWwsIGJoKTsKKwkJCWxvZ2ljYWwrKzsKKwkJfSB3aGlsZSAoKGJoID0gYmgtPmJfdGhpc19wYWdlKSAhPSBoZWFkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIG1wYWdlX2RhX3dyaXRlcGFnZXMgLSB3YWxrIHRoZSBsaXN0IG9mIGRpcnR5IHBhZ2VzIG9mIHRoZSBnaXZlbgorICogYWRkcmVzcyBzcGFjZSwgYWxsb2NhdGVzIG5vbi1hbGxvY2F0ZWQgYmxvY2tzLCBtYXBzIG5ld2x5LWFsbG9jYXRlZAorICogYmxvY2tzIHRvIGV4aXN0aW5nIGJocyBhbmQgaXNzdWUgSU8gdGhlbQorICoKKyAqIEBtYXBwaW5nOiBhZGRyZXNzIHNwYWNlIHN0cnVjdHVyZSB0byB3cml0ZQorICogQHdiYzogc3VidHJhY3QgdGhlIG51bWJlciBvZiB3cml0dGVuIHBhZ2VzIGZyb20gKkB3YmMtPm5yX3RvX3dyaXRlCisgKiBAZ2V0X2Jsb2NrOiB0aGUgZmlsZXN5c3RlbSdzIGJsb2NrIG1hcHBlciBmdW5jdGlvbi4KKyAqCisgKiBUaGlzIGlzIGEgbGlicmFyeSBmdW5jdGlvbiwgd2hpY2ggaW1wbGVtZW50cyB0aGUgd3JpdGVwYWdlcygpCisgKiBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbi4KKyAqCisgKiBJbiBvcmRlciB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZiBsb2dpYyB0aGF0IGRlYWxzIHdpdGggcGFydGlhbCBwYWdlcywKKyAqIG11bHRpcGxlIGJpbyBwZXIgcGFnZSwgZXRjLCB3ZSBmaW5kIG5vbi1hbGxvY2F0ZWQgYmxvY2tzLCBhbGxvY2F0ZQorICogdGhlbSB3aXRoIG1pbmltYWwgY2FsbHMgdG8gLT5nZXRfYmxvY2soKSBhbmQgcmUtdXNlIF9fbXBhZ2Vfd3JpdGVwYWdlKCkKKyAqCisgKiBJdCdzIGltcG9ydGFudCB0aGF0IHdlIGNhbGwgX19tcGFnZV93cml0ZXBhZ2UoKSBvbmx5IG9uY2UgZm9yIGVhY2gKKyAqIGludm9sdmVkIHBhZ2UsIG90aGVyd2lzZSB3ZSdkIGhhdmUgdG8gaW1wbGVtZW50IG1vcmUgY29tcGxpY2F0ZWQgbG9naWMKKyAqIHRvIGRlYWwgd2l0aCBwYWdlcyB3L28gUEdfbG9jayBvciB3LyBQR193cml0ZWJhY2sgYW5kIHNvIG9uLgorICoKKyAqIFNlZSBjb21tZW50cyB0byBtcGFnZV93cml0ZXBhZ2VzKCkKKyAqLworc3RhdGljIGludCBtcGFnZV9kYV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJICAgICAgIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAorCQkJICAgICAgIGdldF9ibG9ja190IGdldF9ibG9jaykKK3sKKwlzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSBtcGQ7CisJaW50IHJldDsKKworCWlmICghZ2V0X2Jsb2NrKQorCQlyZXR1cm4gZ2VuZXJpY193cml0ZXBhZ2VzKG1hcHBpbmcsIHdiYyk7CisKKwltcGQud2JjID0gd2JjOworCW1wZC5pbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJbXBkLmxiaC5iX3NpemUgPSAwOworCW1wZC5sYmguYl9zdGF0ZSA9IDA7CisJbXBkLmxiaC5iX2Jsb2NrbnIgPSAwOworCW1wZC5maXJzdF9wYWdlID0gMDsKKwltcGQubmV4dF9wYWdlID0gMDsKKwltcGQuZ2V0X2Jsb2NrID0gZ2V0X2Jsb2NrOworCisJcmV0ID0gd3JpdGVfY2FjaGVfcGFnZXMobWFwcGluZywgd2JjLCBfX21wYWdlX2RhX3dyaXRlcGFnZSwgJm1wZCk7CisKKwkvKgorCSAqIEhhbmRsZSBsYXN0IGV4dGVudCBvZiBwYWdlcworCSAqLworCWlmIChtcGQubmV4dF9wYWdlICE9IG1wZC5maXJzdF9wYWdlKSB7CisJCW1wYWdlX2RhX21hcF9ibG9ja3MoJm1wZCk7CisJCW1wYWdlX2RhX3N1Ym1pdF9pbygmbXBkKTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisvKgorICogdGhpcyBpcyBhIHNwZWNpYWwgY2FsbGJhY2sgZm9yIC0+d3JpdGVfYmVnaW4oKSBvbmx5CisgKiBpdCdzIGludGVudGlvbiBpcyB0byByZXR1cm4gbWFwcGVkIGJsb2NrIG9yIHJlc2VydmUgc3BhY2UKKyAqLworc3RhdGljIGludCBleHQ0X2RhX2dldF9ibG9ja19wcmVwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGlibG9jaywKKwkJCQkgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmhfcmVzdWx0LCBpbnQgY3JlYXRlKQoreworCWludCByZXQgPSAwOworCisJQlVHX09OKGNyZWF0ZSA9PSAwKTsKKwlCVUdfT04oYmhfcmVzdWx0LT5iX3NpemUgIT0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplKTsKKworCS8qCisJICogZmlyc3QsIHdlIG5lZWQgdG8ga25vdyB3aGV0aGVyIHRoZSBibG9jayBpcyBhbGxvY2F0ZWQgYWxyZWFkeQorCSAqIHByZWFsbG9jYXRlZCBibG9ja3MgYXJlIHVubWFwcGVkIGJ1dCBzaG91bGQgdHJlYXRlZAorCSAqIHRoZSBzYW1lIGFzIGFsbG9jYXRlZCBibG9ja3MuCisJICovCisJcmV0ID0gZXh0NF9nZXRfYmxvY2tzX3dyYXAoTlVMTCwgaW5vZGUsIGlibG9jaywgMSwgIGJoX3Jlc3VsdCwgMCwgMCwgMCk7CisJaWYgKChyZXQgPT0gMCkgJiYgIWJ1ZmZlcl9kZWxheShiaF9yZXN1bHQpKSB7CisJCS8qIHRoZSBibG9jayBpc24ndCAocHJlKWFsbG9jYXRlZCB5ZXQsIGxldCdzIHJlc2VydmUgc3BhY2UgKi8KKwkJLyoKKwkJICogWFhYOiBfX2Jsb2NrX3ByZXBhcmVfd3JpdGUoKSB1bm1hcHMgcGFzc2VkIGJsb2NrLAorCQkgKiBpcyBpdCBPSz8KKwkJICovCisJCXJldCA9IGV4dDRfZGFfcmVzZXJ2ZV9zcGFjZShpbm9kZSwgMSk7CisJCWlmIChyZXQpCisJCQkvKiBub3QgZW5vdWdoIHNwYWNlIHRvIHJlc2VydmUgKi8KKwkJCXJldHVybiByZXQ7CisKKwkJbWFwX2JoKGJoX3Jlc3VsdCwgaW5vZGUtPmlfc2IsIDApOworCQlzZXRfYnVmZmVyX25ldyhiaF9yZXN1bHQpOworCQlzZXRfYnVmZmVyX2RlbGF5KGJoX3Jlc3VsdCk7CisJfSBlbHNlIGlmIChyZXQgPiAwKSB7CisJCWJoX3Jlc3VsdC0+Yl9zaXplID0gKHJldCA8PCBpbm9kZS0+aV9ibGtiaXRzKTsKKwkJcmV0ID0gMDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorI2RlZmluZQkJRVhUNF9ERUxBTExPQ19SU1ZFRAkxCitzdGF0aWMgaW50IGV4dDRfZGFfZ2V0X2Jsb2NrX3dyaXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90IGlibG9jaywKKwkJCQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3VsdCwgaW50IGNyZWF0ZSkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIG1heF9ibG9ja3MgPSBiaF9yZXN1bHQtPmJfc2l6ZSA+PiBpbm9kZS0+aV9ibGtiaXRzOworCWxvZmZfdCBkaXNrc2l6ZSA9IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemU7CisJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7CisKKwloYW5kbGUgPSBleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKTsKKwlpZiAoIWhhbmRsZSkgeworCQlyZXQgPSBleHQ0X2dldF9ibG9ja3Nfd3JhcChoYW5kbGUsIGlub2RlLCBpYmxvY2ssIG1heF9ibG9ja3MsCisJCQkJICAgYmhfcmVzdWx0LCAwLCAwLCAwKTsKKwkJQlVHX09OKCFyZXQpOworCX0gZWxzZSB7CisJCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKGhhbmRsZSwgaW5vZGUsIGlibG9jaywgbWF4X2Jsb2NrcywKKwkJCQkgICBiaF9yZXN1bHQsIGNyZWF0ZSwgMCwgRVhUNF9ERUxBTExPQ19SU1ZFRCk7CisJfQorCisJaWYgKHJldCA+IDApIHsKKwkJYmhfcmVzdWx0LT5iX3NpemUgPSAocmV0IDw8IGlub2RlLT5pX2Jsa2JpdHMpOworCisJCS8qCisJCSAqIFVwZGF0ZSBvbi1kaXNrIHNpemUgYWxvbmcgd2l0aCBibG9jayBhbGxvY2F0aW9uCisJCSAqIHdlIGRvbid0IHVzZSAnZXh0ZW5kX2Rpc2tzaXplJyBhcyBzaXplIG1heSBjaGFuZ2UKKwkJICogd2l0aGluIGFscmVhZHkgYWxsb2NhdGVkIGJsb2NrIC1ienp6CisJCSAqLworCQlkaXNrc2l6ZSA9ICgobG9mZl90KSBpYmxvY2sgKyByZXQpIDw8IGlub2RlLT5pX2Jsa2JpdHM7CisJCWlmIChkaXNrc2l6ZSA+IGlfc2l6ZV9yZWFkKGlub2RlKSkKKwkJCWRpc2tzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKSB7CisJCQkvKgorCQkJICogWFhYOiByZXBsYWNlIHdpdGggc3BpbmxvY2sgaWYgc2VlbiBjb250ZW5kZWQgLWJ6enoKKwkJCSAqLworCQkJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CisJCQlpZiAoZGlza3NpemUgPiBFWFQ0X0koaW5vZGUpLT5pX2Rpc2tzaXplKQorCQkJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBkaXNrc2l6ZTsKKwkJCXVwX3dyaXRlKCZFWFQ0X0koaW5vZGUpLT5pX2RhdGFfc2VtKTsKKworCQkJaWYgKEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPT0gZGlza3NpemUpIHsKKwkJCQlyZXQgPSBleHQ0X21hcmtfaW5vZGVfZGlydHkoaGFuZGxlLCBpbm9kZSk7CisJCQkJcmV0dXJuIHJldDsKKwkJCX0KKwkJfQorCQlyZXQgPSAwOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKK3sKKwkvKgorCSAqIHVubWFwcGVkIGJ1ZmZlciBpcyBwb3NzaWJsZSBmb3IgaG9sZXMuCisJICogZGVsYXkgYnVmZmVyIGlzIHBvc3NpYmxlIHdpdGggZGVsYXllZCBhbGxvY2F0aW9uCisJICovCisJcmV0dXJuICgoIWJ1ZmZlcl9tYXBwZWQoYmgpIHx8IGJ1ZmZlcl9kZWxheShiaCkpICYmIGJ1ZmZlcl9kaXJ0eShiaCkpOworfQorCitzdGF0aWMgaW50IGV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBpYmxvY2ssCisJCQkJICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaF9yZXN1bHQsIGludCBjcmVhdGUpCit7CisJaW50IHJldCA9IDA7CisJdW5zaWduZWQgbWF4X2Jsb2NrcyA9IGJoX3Jlc3VsdC0+Yl9zaXplID4+IGlub2RlLT5pX2Jsa2JpdHM7CisKKwkvKgorCSAqIHdlIGRvbid0IHdhbnQgdG8gZG8gYmxvY2sgYWxsb2NhdGlvbiBpbiB3cml0ZXBhZ2UKKwkgKiBzbyBjYWxsIGdldF9ibG9ja193cmFwIHdpdGggY3JlYXRlID0gMAorCSAqLworCXJldCA9IGV4dDRfZ2V0X2Jsb2Nrc193cmFwKE5VTEwsIGlub2RlLCBpYmxvY2ssIG1heF9ibG9ja3MsCisJCQkJICAgYmhfcmVzdWx0LCAwLCAwLCAwKTsKKwlpZiAocmV0ID4gMCkgeworCQliaF9yZXN1bHQtPmJfc2l6ZSA9IChyZXQgPDwgaW5vZGUtPmlfYmxrYml0cyk7CisJCXJldCA9IDA7CisJfQorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBnZXQgY2FsbGVkIHZpIGV4dDRfZGFfd3JpdGVwYWdlcyBhZnRlciB0YWtpbmcgcGFnZSBsb2NrIChoYXZlIGpvdXJuYWwgaGFuZGxlKQorICogZ2V0IGNhbGxlZCB2aWEgam91cm5hbF9zdWJtaXRfaW5vZGVfZGF0YV9idWZmZXJzIChubyBqb3VybmFsIGhhbmRsZSkKKyAqIGdldCBjYWxsZWQgdmlhIHNocmlua19wYWdlX2xpc3QgdmlhIHBkZmx1c2ggKG5vIGpvdXJuYWwgaGFuZGxlKQorICogb3IgZ3JhYl9wYWdlX2NhY2hlIHdoZW4gZG9pbmcgd3JpdGVfYmVnaW4gKGhhdmUgam91cm5hbCBoYW5kbGUpCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9kYV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCit7CisJaW50IHJldCA9IDA7CisJbG9mZl90IHNpemU7CisJdW5zaWduZWQgbG9uZyBsZW47CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpwYWdlX2J1ZnM7CisJc3RydWN0IGlub2RlICppbm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7CisKKwlzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJcGFnZV9idWZzID0gcGFnZV9idWZmZXJzKHBhZ2UpOworCQlpZiAod2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZzLCAwLCBsZW4sIE5VTEwsCisJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKSB7CisJCQkvKgorCQkJICogV2UgZG9uJ3Qgd2FudCB0byBkbyAgYmxvY2sgYWxsb2NhdGlvbgorCQkJICogU28gcmVkaXJ0eSB0aGUgcGFnZSBhbmQgcmV0dXJuCisJCQkgKiBXZSBtYXkgcmVhY2ggaGVyZSB3aGVuIHdlIGRvIGEgam91cm5hbCBjb21taXQKKwkJCSAqIHZpYSBqb3VybmFsX3N1Ym1pdF9pbm9kZV9kYXRhX2J1ZmZlcnMuCisJCQkgKiBJZiB3ZSBkb24ndCBoYXZlIG1hcHBpbmcgYmxvY2sgd2UganVzdCBpZ25vcmUKKwkJCSAqIHRoZW0uIFdlIGNhbiBhbHNvIHJlYWNoIGhlcmUgdmlhIHNocmlua19wYWdlX2xpc3QKKwkJCSAqLworCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgdGVzdCBmb3IgcGFnZV9oYXNfYnVmZmVycygpIGlzIHN1YnRsZToKKwkJICogV2Uga25vdyB0aGUgcGFnZSBpcyBkaXJ0eSBidXQgaXQgbG9zdCBidWZmZXJzLiBUaGF0IG1lYW5zCisJCSAqIHRoYXQgYXQgc29tZSBtb21lbnQgaW4gdGltZSBhZnRlciB3cml0ZV9iZWdpbigpL3dyaXRlX2VuZCgpCisJCSAqIGhhcyBiZWVuIGNhbGxlZCBhbGwgYnVmZmVycyBoYXZlIGJlZW4gY2xlYW4gYW5kIHRodXMgdGhleQorCQkgKiBtdXN0IGhhdmUgYmVlbiB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIFNvIHRoZXkgYXJlIGFsbAorCQkgKiBtYXBwZWQgYW5kIHdlIGNhbiBoYXBwaWx5IHByb2NlZWQgd2l0aCBtYXBwaW5nIHRoZW0KKwkJICogYW5kIHdyaXRpbmcgdGhlIHBhZ2UuCisJCSAqCisJCSAqIFRyeSB0byBpbml0aWFsaXplIHRoZSBidWZmZXJfaGVhZHMgYW5kIGNoZWNrIHdoZXRoZXIKKwkJICogYWxsIGFyZSBtYXBwZWQgYW5kIG5vbiBkZWxheS4gV2UgZG9uJ3Qgd2FudCB0bworCQkgKiBkbyBibG9jayBhbGxvY2F0aW9uIGhlcmUuCisJCSAqLworCQlyZXQgPSBibG9ja19wcmVwYXJlX3dyaXRlKHBhZ2UsIDAsIFBBR0VfQ0FDSEVfU0laRSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSk7CisJCWlmICghcmV0KSB7CisJCQlwYWdlX2J1ZnMgPSBwYWdlX2J1ZmZlcnMocGFnZSk7CisJCQkvKiBjaGVjayB3aGV0aGVyIGFsbCBhcmUgbWFwcGVkIGFuZCBub24gZGVsYXkgKi8KKwkJCWlmICh3YWxrX3BhZ2VfYnVmZmVycyhOVUxMLCBwYWdlX2J1ZnMsIDAsIGxlbiwgTlVMTCwKKwkJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKSB7CisJCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCQlyZXR1cm4gMDsKKwkJCX0KKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBXZSBjYW4ndCBkbyBibG9jayBhbGxvY2F0aW9uIGhlcmUKKwkJCSAqIHNvIGp1c3QgcmVkaXR5IHRoZSBwYWdlIGFuZCB1bmxvY2sKKwkJCSAqIGFuZCByZXR1cm4KKwkJCSAqLworCQkJcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJcmV0dXJuIDA7CisJCX0KKwl9CisKKwlpZiAodGVzdF9vcHQoaW5vZGUtPmlfc2IsIE5PQkgpICYmIGV4dDRfc2hvdWxkX3dyaXRlYmFja19kYXRhKGlub2RlKSkKKwkJcmV0ID0gbm9iaF93cml0ZXBhZ2UocGFnZSwgZXh0NF9ub3JtYWxfZ2V0X2Jsb2NrX3dyaXRlLCB3YmMpOworCWVsc2UKKwkJcmV0ID0gYmxvY2tfd3JpdGVfZnVsbF9wYWdlKHBhZ2UsCisJCQkJCQlleHQ0X25vcm1hbF9nZXRfYmxvY2tfd3JpdGUsCisJCQkJCQl3YmMpOworCisJcmV0dXJuIHJldDsKK30KKworLyoKKyAqIEZvciBub3cganVzdCBmb2xsb3cgdGhlIERJTyB3YXkgdG8gZXN0aW1hdGUgdGhlIG1heCBjcmVkaXRzCisgKiBuZWVkZWQgdG8gd3JpdGUgb3V0IEVYVDRfTUFYX1dSSVRFQkFDS19QQUdFUy4KKyAqIHRvZG86IG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBtYXggY3JlZGl0cyBuZWVkIGZvcgorICogZXh0ZW50IGJhc2VkIGZpbGVzLCBjdXJyZW50bHkgdGhlIERJTyBjcmVkaXRzIGlzIGJhc2VkIG9uCisgKiBpbmRpcmVjdC1ibG9ja3MgbWFwcGluZyB3YXkuCisgKgorICogUHJvYmFibHkgc2hvdWxkIGhhdmUgYSBnZW5lcmljIHdheSB0byBjYWxjdWxhdGUgY3JlZGl0cworICogZm9yIERJTywgd3JpdGVwYWdlcywgYW5kIHRydW5jYXRlCisgKi8KKyNkZWZpbmUgRVhUNF9NQVhfV1JJVEVCQUNLX1BBR0VTICAgICAgRElPX01BWF9CTE9DS1MKKyNkZWZpbmUgRVhUNF9NQVhfV1JJVEVCQUNLX0NSRURJVFMgICAgRElPX0NSRURJVFMKKworc3RhdGljIGludCBleHQ0X2RhX3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCisJCQkJc3RydWN0IHdyaXRlYmFja19jb250cm9sICp3YmMpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaGFuZGxlX3QgKmhhbmRsZSA9IE5VTEw7CisJaW50IG5lZWRlZF9ibG9ja3M7CisJaW50IHJldCA9IDA7CisJbG9uZyB0b193cml0ZTsKKwlsb2ZmX3QgcmFuZ2Vfc3RhcnQgPSAwOworCisJLyoKKwkgKiBObyBwYWdlcyB0byB3cml0ZT8gVGhpcyBpcyBtYWlubHkgYSBrbHVkZ2UgdG8gYXZvaWQgc3RhcnRpbmcKKwkgKiBhIHRyYW5zYWN0aW9uIGZvciBzcGVjaWFsIGlub2RlcyBsaWtlIGpvdXJuYWwgaW5vZGUgb24gbGFzdCBpcHV0KCkKKwkgKiBiZWNhdXNlIHRoYXQgY291bGQgdmlvbGF0ZSBsb2NrIG9yZGVyaW5nIG9uIHVtb3VudAorCSAqLworCWlmICghbWFwcGluZy0+bnJwYWdlcykKKwkJcmV0dXJuIDA7CisKKwkvKgorCSAqIEVzdGltYXRlIHRoZSB3b3JzZSBjYXNlIG5lZWRlZCBjcmVkaXRzIHRvIHdyaXRlIG91dAorCSAqIEVYVDRfTUFYX0JVRl9CTE9DS1MgcGFnZXMKKwkgKi8KKwluZWVkZWRfYmxvY2tzID0gRVhUNF9NQVhfV1JJVEVCQUNLX0NSRURJVFM7CisKKwl0b193cml0ZSA9IHdiYy0+bnJfdG9fd3JpdGU7CisJaWYgKCF3YmMtPnJhbmdlX2N5Y2xpYykgeworCQkvKgorCQkgKiBJZiByYW5nZV9jeWNsaWMgaXMgbm90IHNldCBmb3JjZSByYW5nZV9jb250CisJCSAqIGFuZCBzYXZlIHRoZSBvbGQgd3JpdGViYWNrX2luZGV4CisJCSAqLworCQl3YmMtPnJhbmdlX2NvbnQgPSAxOworCQlyYW5nZV9zdGFydCA9ICB3YmMtPnJhbmdlX3N0YXJ0OworCX0KKworCXdoaWxlICghcmV0ICYmIHRvX3dyaXRlKSB7CisJCS8qIHN0YXJ0IGEgbmV3IHRyYW5zYWN0aW9uKi8KKwkJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCBuZWVkZWRfYmxvY2tzKTsKKwkJaWYgKElTX0VSUihoYW5kbGUpKSB7CisJCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7CisJCQlnb3RvIG91dF93cml0ZXBhZ2VzOworCQl9CisJCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkgeworCQkJLyoKKwkJCSAqIFdpdGggb3JkZXJlZCBtb2RlIHdlIG5lZWQgdG8gYWRkCisJCQkgKiB0aGUgaW5vZGUgdG8gdGhlIGpvdXJuYWwgaGFuZGxlCisJCQkgKiB3aGVuIHdlIGRvIGJsb2NrIGFsbG9jYXRpb24uCisJCQkgKi8KKwkJCXJldCA9IGV4dDRfamJkMl9maWxlX2lub2RlKGhhbmRsZSwgaW5vZGUpOworCQkJaWYgKHJldCkgeworCQkJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCQkJZ290byBvdXRfd3JpdGVwYWdlczsKKwkJCX0KKworCQl9CisJCS8qCisJCSAqIHNldCB0aGUgbWF4IGRpcnR5IHBhZ2VzIGNvdWxkIGJlIHdyaXRlIGF0IGEgdGltZQorCQkgKiB0byBmaXQgaW50byB0aGUgcmVzZXJ2ZWQgdHJhbnNhY3Rpb24gY3JlZGl0cworCQkgKi8KKwkJaWYgKHdiYy0+bnJfdG9fd3JpdGUgPiBFWFQ0X01BWF9XUklURUJBQ0tfUEFHRVMpCisJCQl3YmMtPm5yX3RvX3dyaXRlID0gRVhUNF9NQVhfV1JJVEVCQUNLX1BBR0VTOworCisJCXRvX3dyaXRlIC09IHdiYy0+bnJfdG9fd3JpdGU7CisJCXJldCA9IG1wYWdlX2RhX3dyaXRlcGFnZXMobWFwcGluZywgd2JjLAorCQkJCQkJZXh0NF9kYV9nZXRfYmxvY2tfd3JpdGUpOworCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOworCQlpZiAod2JjLT5ucl90b193cml0ZSkgeworCQkJLyoKKwkJCSAqIFRoZXJlIGlzIG5vIG1vcmUgd3JpdGVvdXQgbmVlZGVkCisJCQkgKiBvciB3ZSByZXF1ZXN0ZWQgZm9yIGEgbm9ibG9ja2luZyB3cml0ZW91dAorCQkJICogYW5kIHdlIGZvdW5kIHRoZSBkZXZpY2UgY29uZ2VzdGVkCisJCQkgKi8KKwkJCXRvX3dyaXRlICs9IHdiYy0+bnJfdG9fd3JpdGU7CisJCQlicmVhazsKKwkJfQorCQl3YmMtPm5yX3RvX3dyaXRlID0gdG9fd3JpdGU7CisJfQorCitvdXRfd3JpdGVwYWdlczoKKwl3YmMtPm5yX3RvX3dyaXRlID0gdG9fd3JpdGU7CisJaWYgKHJhbmdlX3N0YXJ0KQorCQl3YmMtPnJhbmdlX3N0YXJ0ID0gcmFuZ2Vfc3RhcnQ7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKKwkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGZsYWdzLAorCQkJCXN0cnVjdCBwYWdlICoqcGFnZXAsIHZvaWQgKipmc2RhdGEpCit7CisJaW50IHJldCwgcmV0cmllcyA9IDA7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJcGdvZmZfdCBpbmRleDsKKwl1bnNpZ25lZCBmcm9tLCB0bzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsKKwloYW5kbGVfdCAqaGFuZGxlOworCisJaW5kZXggPSBwb3MgPj4gUEFHRV9DQUNIRV9TSElGVDsKKwlmcm9tID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOworCXRvID0gZnJvbSArIGxlbjsKKworcmV0cnk6CisJLyoKKwkgKiBXaXRoIGRlbGF5ZWQgYWxsb2NhdGlvbiwgd2UgZG9uJ3QgbG9nIHRoZSBpX2Rpc2tzaXplIHVwZGF0ZQorCSAqIGlmIHRoZXJlIGlzIGRlbGF5ZWQgYmxvY2sgYWxsb2NhdGlvbi4gQnV0IHdlIHN0aWxsIG5lZWQKKwkgKiB0byBqb3VybmFsbGluZyB0aGUgaV9kaXNrc2l6ZSB1cGRhdGUgaWYgd3JpdGVzIHRvIHRoZSBlbmQKKwkgKiBvZiBmaWxlIHdoaWNoIGhhcyBhbiBhbHJlYWR5IG1hcHBlZCBidWZmZXIuCisJICovCisJaGFuZGxlID0gZXh0NF9qb3VybmFsX3N0YXJ0KGlub2RlLCAxKTsKKwlpZiAoSVNfRVJSKGhhbmRsZSkpIHsKKwkJcmV0ID0gUFRSX0VSUihoYW5kbGUpOworCQlnb3RvIG91dDsKKwl9CisKKwlwYWdlID0gX19ncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgaW5kZXgpOworCWlmICghcGFnZSkKKwkJcmV0dXJuIC1FTk9NRU07CisJKnBhZ2VwID0gcGFnZTsKKworCXJldCA9IGJsb2NrX3dyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBmbGFncywgcGFnZXAsIGZzZGF0YSwKKwkJCQkJCQlleHQ0X2RhX2dldF9ibG9ja19wcmVwKTsKKwlpZiAocmV0IDwgMCkgeworCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCWlmIChyZXQgPT0gLUVOT1NQQyAmJiBleHQ0X3Nob3VsZF9yZXRyeV9hbGxvYyhpbm9kZS0+aV9zYiwgJnJldHJpZXMpKQorCQlnb3RvIHJldHJ5Oworb3V0OgorCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBDaGVjayBpZiB3ZSBzaG91bGQgdXBkYXRlIGlfZGlza3NpemUKKyAqIHdoZW4gd3JpdGUgdG8gdGhlIGVuZCBvZiBmaWxlIGJ1dCBub3QgcmVxdWlyZSBibG9jayBhbGxvY2F0aW9uCisgKi8KK3N0YXRpYyBpbnQgZXh0NF9kYV9zaG91bGRfdXBkYXRlX2lfZGlza3NpemUoc3RydWN0IHBhZ2UgKnBhZ2UsCisJCQkJCSB1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCXVuc2lnbmVkIGludCBpZHg7CisJaW50IGk7CisKKwliaCA9IHBhZ2VfYnVmZmVycyhwYWdlKTsKKwlpZHggPSBvZmZzZXQgPj4gaW5vZGUtPmlfYmxrYml0czsKKworCWZvciAoaT0wOyBpIDwgaWR4OyBpKyspCisJCWJoID0gYmgtPmJfdGhpc19wYWdlOworCisJaWYgKCFidWZmZXJfbWFwcGVkKGJoKSB8fCAoYnVmZmVyX2RlbGF5KGJoKSkpCisJCXJldHVybiAwOworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IGV4dDRfZGFfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLAorCQkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLAorCQkJCXN0cnVjdCBwYWdlICpwYWdlLCB2b2lkICpmc2RhdGEpCit7CisJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJaW50IHJldCA9IDAsIHJldDI7CisJaGFuZGxlX3QgKmhhbmRsZSA9IGV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpOworCWxvZmZfdCBuZXdfaV9zaXplOworCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKKworCXN0YXJ0ID0gcG9zICYgKFBBR0VfQ0FDSEVfU0laRSAtIDEpOworCWVuZCA9IHN0YXJ0ICsgY29waWVkIC0xOworCisJLyoKKwkgKiBnZW5lcmljX3dyaXRlX2VuZCgpIHdpbGwgcnVuIG1hcmtfaW5vZGVfZGlydHkoKSBpZiBpX3NpemUKKwkgKiBjaGFuZ2VzLiAgU28gbGV0J3MgcGlnZ3liYWNrIHRoZSBpX2Rpc2tzaXplIG1hcmtfaW5vZGVfZGlydHkKKwkgKiBpbnRvIHRoYXQuCisJICovCisKKwluZXdfaV9zaXplID0gcG9zICsgY29waWVkOworCWlmIChuZXdfaV9zaXplID4gRVhUNF9JKGlub2RlKS0+aV9kaXNrc2l6ZSkgeworCQlpZiAoZXh0NF9kYV9zaG91bGRfdXBkYXRlX2lfZGlza3NpemUocGFnZSwgZW5kKSkgeworCQkJZG93bl93cml0ZSgmRVhUNF9JKGlub2RlKS0+aV9kYXRhX3NlbSk7CisJCQlpZiAobmV3X2lfc2l6ZSA+IEVYVDRfSShpbm9kZSktPmlfZGlza3NpemUpIHsKKwkJCQkvKgorCQkJCSAqIFVwZGF0aW5nIGlfZGlza3NpemUgd2hlbiBleHRlbmRpbmcgZmlsZQorCQkJCSAqIHdpdGhvdXQgbmVlZGluZyBibG9jayBhbGxvY2F0aW9uCisJCQkJICovCisJCQkJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpKQorCQkJCQlyZXQgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsCisJCQkJCQkJCSAgIGlub2RlKTsKKworCQkJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBuZXdfaV9zaXplOworCQkJfQorCQkJdXBfd3JpdGUoJkVYVDRfSShpbm9kZSktPmlfZGF0YV9zZW0pOworCQl9CisJfQorCXJldDIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLAorCQkJCQkJCXBhZ2UsIGZzZGF0YSk7CisJY29waWVkID0gcmV0MjsKKwlpZiAocmV0MiA8IDApCisJCXJldCA9IHJldDI7CisJcmV0MiA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJaWYgKCFyZXQpCisJCXJldCA9IHJldDI7CisKKwlyZXR1cm4gcmV0ID8gcmV0IDogY29waWVkOworfQorCitzdGF0aWMgdm9pZCBleHQ0X2RhX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9mZnNldCkKK3sKKwkvKgorCSAqIERyb3AgcmVzZXJ2ZWQgYmxvY2tzCisJICovCisJQlVHX09OKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKwlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpCisJCWdvdG8gb3V0OworCisJZXh0NF9kYV9wYWdlX3JlbGVhc2VfcmVzZXJ2YXRpb24ocGFnZSwgb2Zmc2V0KTsKKworb3V0OgorCWV4dDRfaW52YWxpZGF0ZXBhZ2UocGFnZSwgb2Zmc2V0KTsKKworCXJldHVybjsKK30KKwogCiAvKgogICogYm1hcCgpIGlzIHNwZWNpYWwuICBJdCBnZXRzIHVzZWQgYnkgYXBwbGljYXRpb25zIHN1Y2ggYXMgbGlsbyBhbmQgYnkKQEAgLTE0MTgsNiArMjQwOSwxNiBAQAogCWpvdXJuYWxfdCAqam91cm5hbDsKIAlpbnQgZXJyOwogCisJaWYgKG1hcHBpbmdfdGFnZ2VkKG1hcHBpbmcsIFBBR0VDQUNIRV9UQUdfRElSVFkpICYmCisJCQl0ZXN0X29wdChpbm9kZS0+aV9zYiwgREVMQUxMT0MpKSB7CisJCS8qCisJCSAqIFdpdGggZGVsYWxsb2Mgd2Ugd2FudCB0byBzeW5jIHRoZSBmaWxlCisJCSAqIHNvIHRoYXQgd2UgY2FuIG1ha2Ugc3VyZSB3ZSBhbGxvY2F0ZQorCQkgKiBibG9ja3MgZm9yIGZpbGUKKwkJICovCisJCWZpbGVtYXBfd3JpdGVfYW5kX3dhaXQobWFwcGluZyk7CisJfQorCiAJaWYgKEVYVDRfSShpbm9kZSktPmlfc3RhdGUgJiBFWFQ0X1NUQVRFX0pEQVRBKSB7CiAJCS8qCiAJCSAqIFRoaXMgaXMgYSBSRUFMTFkgaGVhdnl3ZWlnaHQgYXBwcm9hY2gsIGJ1dCB0aGUgdXNlIG9mCkBAIC0xNDYyLDIxICsyNDYzLDE3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgamJkMl9qb3VybmFsX2RpcnR5X2RhdGFfZm4oaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKLXsKLQlpZiAoYnVmZmVyX21hcHBlZChiaCkpCi0JCXJldHVybiBleHQ0X2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGUsIGJoKTsKLQlyZXR1cm4gMDsKLX0KLQogLyoKLSAqIE5vdGUgdGhhdCB3ZSBhbHdheXMgc3RhcnQgYSB0cmFuc2FjdGlvbiBldmVuIGlmIHdlJ3JlIG5vdCBqb3VybmFsbGluZwotICogZGF0YS4gIFRoaXMgaXMgdG8gcHJlc2VydmUgb3JkZXJpbmc6IGFueSBob2xlIGluc3RhbnRpYXRpb24gd2l0aGluCi0gKiBfX2Jsb2NrX3dyaXRlX2Z1bGxfcGFnZSAtPiBleHQ0X2dldF9ibG9jaygpIHNob3VsZCBiZSBqb3VybmFsbGVkCi0gKiBhbG9uZyB3aXRoIHRoZSBkYXRhIHNvIHdlIGRvbid0IGNyYXNoIGFuZCB0aGVuIGdldCBtZXRhZGF0YSB3aGljaAotICogcmVmZXJzIHRvIG9sZCBkYXRhLgorICogTm90ZSB0aGF0IHdlIGRvbid0IG5lZWQgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiB1bmxlc3Mgd2UncmUgam91cm5hbGluZyBkYXRhCisgKiBiZWNhdXNlIHdlIHNob3VsZCBoYXZlIGhvbGVzIGZpbGxlZCBmcm9tIGV4dDRfcGFnZV9ta3dyaXRlKCkuIFdlIGV2ZW4gZG9uJ3QKKyAqIG5lZWQgdG8gZmlsZSB0aGUgaW5vZGUgdG8gdGhlIHRyYW5zYWN0aW9uJ3MgbGlzdCBpbiBvcmRlcmVkIG1vZGUgYmVjYXVzZSBpZgorICogd2UgYXJlIHdyaXRpbmcgYmFjayBkYXRhIGFkZGVkIGJ5IHdyaXRlKCksIHRoZSBpbm9kZSBpcyBhbHJlYWR5IHRoZXJlIGFuZCBpZgorICogd2UgYXJlIHdyaXRpbmcgYmFjayBkYXRhIG1vZGlmaWVkIHZpYSBtbWFwKCksIG5vb25lIGd1YXJhbnRlZXMgaW4gd2hpY2gKKyAqIHRyYW5zYWN0aW9uIHRoZSBkYXRhIHdpbGwgaGl0IHRoZSBkaXNrLiBJbiBjYXNlIHdlIGFyZSBqb3VybmFsaW5nIGRhdGEsIHdlCisgKiBjYW5ub3Qgc3RhcnQgdHJhbnNhY3Rpb24gZGlyZWN0bHkgYmVjYXVzZSB0cmFuc2FjdGlvbiBzdGFydCByYW5rcyBhYm92ZSBwYWdlCisgKiBsb2NrIHNvIHdlIGhhdmUgdG8gZG8gc29tZSBtYWdpYy4KICAqCi0gKiBJbiBhbGwgam91cm5hbGxpbmcgbW9kZXMgYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgd2lsbCBzdGFydCB0aGUgSS9PLgorICogSW4gYWxsIGpvdXJuYWxpbmcgbW9kZXMgYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgd2lsbCBzdGFydCB0aGUgSS9PLgogICoKICAqIFByb2JsZW06CiAgKgpAQCAtMTUxOCwxMDUgKzI1MTUsMTAzIEBACiAgKiBkaXNhc3Ryb3VzLiAgQW55IHdyaXRlKCkgb3IgbWV0YWRhdGEgb3BlcmF0aW9uIHdpbGwgc3luYyB0aGUgZnMgZm9yCiAgKiB1cy4KICAqCi0gKiBBS1BNMjogaWYgYWxsIHRoZSBwYWdlJ3MgYnVmZmVycyBhcmUgbWFwcGVkIHRvIGRpc2sgYW5kICFkYXRhPWpvdXJuYWwsCi0gKiB3ZSBkb24ndCBuZWVkIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiBoZXJlLgogICovCi1zdGF0aWMgaW50IGV4dDRfb3JkZXJlZF93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsCitzdGF0aWMgaW50IF9fZXh0NF9ub3JtYWxfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAogCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCisJaWYgKHRlc3Rfb3B0KGlub2RlLT5pX3NiLCBOT0JIKSkKKwkJcmV0dXJuIG5vYmhfd3JpdGVwYWdlKHBhZ2UsCisJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwgd2JjKTsKKwllbHNlCisJCXJldHVybiBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwKKwkJCQkJCXdiYyk7Cit9CisKK3N0YXRpYyBpbnQgZXh0NF9ub3JtYWxfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OworCWxvZmZfdCBzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWxvZmZfdCBsZW47CisKKwlKX0FTU0VSVChQYWdlTG9ja2VkKHBhZ2UpKTsKKwlpZiAocGFnZS0+aW5kZXggPT0gc2l6ZSA+PiBQQUdFX0NBQ0hFX1NISUZUKQorCQlsZW4gPSBzaXplICYgflBBR0VfQ0FDSEVfTUFTSzsKKwllbHNlCisJCWxlbiA9IFBBR0VfQ0FDSEVfU0laRTsKKworCWlmIChwYWdlX2hhc19idWZmZXJzKHBhZ2UpKSB7CisJCS8qIGlmIHBhZ2UgaGFzIGJ1ZmZlcnMgaXQgc2hvdWxkIGFsbCBiZSBtYXBwZWQKKwkJICogYW5kIGFsbG9jYXRlZC4gSWYgdGhlcmUgYXJlIG5vdCBidWZmZXJzIGF0dGFjaGVkCisJCSAqIHRvIHRoZSBwYWdlIHdlIGtub3cgdGhlIHBhZ2UgaXMgZGlydHkgYnV0IGl0IGxvc3QKKwkJICogYnVmZmVycy4gVGhhdCBtZWFucyB0aGF0IGF0IHNvbWUgbW9tZW50IGluIHRpbWUKKwkJICogYWZ0ZXIgd3JpdGVfYmVnaW4oKSAvIHdyaXRlX2VuZCgpIGhhcyBiZWVuIGNhbGxlZAorCQkgKiBhbGwgYnVmZmVycyBoYXZlIGJlZW4gY2xlYW4gYW5kIHRodXMgdGhleSBtdXN0IGhhdmUgYmVlbgorCQkgKiB3cml0dGVuIGF0IGxlYXN0IG9uY2UuIFNvIHRoZXkgYXJlIGFsbCBtYXBwZWQgYW5kIHdlIGNhbgorCQkgKiBoYXBwaWx5IHByb2NlZWQgd2l0aCBtYXBwaW5nIHRoZW0gYW5kIHdyaXRpbmcgdGhlIHBhZ2UuCisJCSAqLworCQlCVUdfT04od2Fsa19wYWdlX2J1ZmZlcnMoTlVMTCwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLCBsZW4sIE5VTEwsCisJCQkJCWV4dDRfYmhfdW5tYXBwZWRfb3JfZGVsYXkpKTsKKwl9CisKKwlpZiAoIWV4dDRfam91cm5hbF9jdXJyZW50X2hhbmRsZSgpKQorCQlyZXR1cm4gX19leHQ0X25vcm1hbF93cml0ZXBhZ2UocGFnZSwgd2JjKTsKKworCXJlZGlydHlfcGFnZV9mb3Jfd3JpdGVwYWdlKHdiYywgcGFnZSk7CisJdW5sb2NrX3BhZ2UocGFnZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19leHQ0X2pvdXJuYWxsZWRfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAorCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQoreworCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gcGFnZS0+bWFwcGluZzsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKnBhZ2VfYnVmczsKIAloYW5kbGVfdCAqaGFuZGxlID0gTlVMTDsKIAlpbnQgcmV0ID0gMDsKIAlpbnQgZXJyOwogCi0JSl9BU1NFUlQoUGFnZUxvY2tlZChwYWdlKSk7CisJcmV0ID0gYmxvY2tfcHJlcGFyZV93cml0ZShwYWdlLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCisJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSk7CisJaWYgKHJldCAhPSAwKQorCQlnb3RvIG91dF91bmxvY2s7CiAKLQkvKgotCSAqIFdlIGdpdmUgdXAgaGVyZSBpZiB3ZSdyZSByZWVudGVyZWQsIGJlY2F1c2UgaXQgbWlnaHQgYmUgZm9yIGEKLQkgKiBkaWZmZXJlbnQgZmlsZXN5c3RlbS4KLQkgKi8KLQlpZiAoZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCkpCi0JCWdvdG8gb3V0X2ZhaWw7Ci0KLQloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwotCi0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKLQkJZ290byBvdXRfZmFpbDsKLQl9Ci0KLQlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKLQkJY3JlYXRlX2VtcHR5X2J1ZmZlcnMocGFnZSwgaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplLAotCQkJCSgxIDw8IEJIX0RpcnR5KXwoMSA8PCBCSF9VcHRvZGF0ZSkpOwotCX0KIAlwYWdlX2J1ZnMgPSBwYWdlX2J1ZmZlcnMocGFnZSk7Ci0Jd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCi0JCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJnZXRfb25lKTsKLQotCXJldCA9IGJsb2NrX3dyaXRlX2Z1bGxfcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKLQotCS8qCi0JICogVGhlIHBhZ2UgY2FuIGJlY29tZSB1bmxvY2tlZCBhdCBhbnkgcG9pbnQgbm93LCBhbmQKLQkgKiB0cnVuY2F0ZSBjYW4gdGhlbiBjb21lIGluIGFuZCBjaGFuZ2UgdGhpbmdzLiAgU28gd2UKLQkgKiBjYW4ndCB0b3VjaCAqcGFnZSBmcm9tIG5vdyBvbi4gIEJ1dCAqcGFnZV9idWZzIGlzCi0JICogc2FmZSBkdWUgdG8gZWxldmF0ZWQgcmVmY291bnQuCi0JICovCi0KLQkvKgotCSAqIEFuZCBhdHRhY2ggdGhlbSB0byB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4gIEJ1dCBvbmx5IGlmCi0JICogYmxvY2tfd3JpdGVfZnVsbF9wYWdlKCkgc3VjY2VlZGVkLiAgT3RoZXJ3aXNlIHRoZXkgYXJlIHVubWFwcGVkLAotCSAqIGFuZCBnZW5lcmFsbHkganVuay4KLQkgKi8KLQlpZiAocmV0ID09IDApIHsKLQkJZXJyID0gd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsIFBBR0VfQ0FDSEVfU0laRSwKLQkJCQkJTlVMTCwgamJkMl9qb3VybmFsX2RpcnR5X2RhdGFfZm4pOwotCQlpZiAoIXJldCkKLQkJCXJldCA9IGVycjsKLQl9Ci0Jd2Fsa19wYWdlX2J1ZmZlcnMoaGFuZGxlLCBwYWdlX2J1ZnMsIDAsCi0JCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJwdXRfb25lKTsKLQllcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwotCWlmICghcmV0KQotCQlyZXQgPSBlcnI7Ci0JcmV0dXJuIHJldDsKLQotb3V0X2ZhaWw6Ci0JcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwl3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwgUEFHRV9DQUNIRV9TSVpFLCBOVUxMLAorCQkJCQkJCQliZ2V0X29uZSk7CisJLyogQXMgc29vbiBhcyB3ZSB1bmxvY2sgdGhlIHBhZ2UsIGl0IGNhbiBnbyBhd2F5LCBidXQgd2UgaGF2ZQorCSAqIHJlZmVyZW5jZXMgdG8gYnVmZmVycyBzbyB3ZSBhcmUgc2FmZSAqLwogCXVubG9ja19wYWdlKHBhZ2UpOwotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBpbnQgZXh0NF93cml0ZWJhY2tfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLAotCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQotewotCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OwotCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwotCWludCByZXQgPSAwOwotCWludCBlcnI7Ci0KLQlpZiAoZXh0NF9qb3VybmFsX2N1cnJlbnRfaGFuZGxlKCkpCi0JCWdvdG8gb3V0X2ZhaWw7CiAKIAloYW5kbGUgPSBleHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIGV4dDRfd3JpdGVwYWdlX3RyYW5zX2Jsb2Nrcyhpbm9kZSkpOwogCWlmIChJU19FUlIoaGFuZGxlKSkgewogCQlyZXQgPSBQVFJfRVJSKGhhbmRsZSk7Ci0JCWdvdG8gb3V0X2ZhaWw7CisJCWdvdG8gb3V0OwogCX0KIAotCWlmICh0ZXN0X29wdChpbm9kZS0+aV9zYiwgTk9CSCkgJiYgZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpKQotCQlyZXQgPSBub2JoX3dyaXRlcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKLQllbHNlCi0JCXJldCA9IGJsb2NrX3dyaXRlX2Z1bGxfcGFnZShwYWdlLCBleHQ0X2dldF9ibG9jaywgd2JjKTsKKwlyZXQgPSB3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwKKwkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgZG9fam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKTsKIAorCWVyciA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZzLCAwLAorCQkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgd3JpdGVfZW5kX2ZuKTsKKwlpZiAocmV0ID09IDApCisJCXJldCA9IGVycjsKIAllcnIgPSBleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwogCWlmICghcmV0KQogCQlyZXQgPSBlcnI7Ci0JcmV0dXJuIHJldDsKIAotb3V0X2ZhaWw6Ci0JcmVkaXJ0eV9wYWdlX2Zvcl93cml0ZXBhZ2Uod2JjLCBwYWdlKTsKKwl3YWxrX3BhZ2VfYnVmZmVycyhoYW5kbGUsIHBhZ2VfYnVmcywgMCwKKwkJCQlQQUdFX0NBQ0hFX1NJWkUsIE5VTEwsIGJwdXRfb25lKTsKKwlFWFQ0X0koaW5vZGUpLT5pX3N0YXRlIHw9IEVYVDRfU1RBVEVfSkRBVEE7CisJZ290byBvdXQ7CisKK291dF91bmxvY2s6CiAJdW5sb2NrX3BhZ2UocGFnZSk7CitvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtMTYyNCw1OSArMjYxOSw1MyBAQAogCQkJCXN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjKQogewogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBwYWdlLT5tYXBwaW5nLT5ob3N0OwotCWhhbmRsZV90ICpoYW5kbGUgPSBOVUxMOwotCWludCByZXQgPSAwOwotCWludCBlcnI7CisJbG9mZl90IHNpemUgPSBpX3NpemVfcmVhZChpbm9kZSk7CisJbG9mZl90IGxlbjsKKworCUpfQVNTRVJUKFBhZ2VMb2NrZWQocGFnZSkpOworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJLyogaWYgcGFnZSBoYXMgYnVmZmVycyBpdCBzaG91bGQgYWxsIGJlIG1hcHBlZAorCQkgKiBhbmQgYWxsb2NhdGVkLiBJZiB0aGVyZSBhcmUgbm90IGJ1ZmZlcnMgYXR0YWNoZWQKKwkJICogdG8gdGhlIHBhZ2Ugd2Uga25vdyB0aGUgcGFnZSBpcyBkaXJ0eSBidXQgaXQgbG9zdAorCQkgKiBidWZmZXJzLiBUaGF0IG1lYW5zIHRoYXQgYXQgc29tZSBtb21lbnQgaW4gdGltZQorCQkgKiBhZnRlciB3cml0ZV9iZWdpbigpIC8gd3JpdGVfZW5kKCkgaGFzIGJlZW4gY2FsbGVkCisJCSAqIGFsbCBidWZmZXJzIGhhdmUgYmVlbiBjbGVhbiBhbmQgdGh1cyB0aGV5IG11c3QgaGF2ZSBiZWVuCisJCSAqIHdyaXR0ZW4gYXQgbGVhc3Qgb25jZS4gU28gdGhleSBhcmUgYWxsIG1hcHBlZCBhbmQgd2UgY2FuCisJCSAqIGhhcHBpbHkgcHJvY2VlZCB3aXRoIG1hcHBpbmcgdGhlbSBhbmQgd3JpdGluZyB0aGUgcGFnZS4KKwkJICovCisJCUJVR19PTih3YWxrX3BhZ2VfYnVmZmVycyhOVUxMLCBwYWdlX2J1ZmZlcnMocGFnZSksIDAsIGxlbiwgTlVMTCwKKwkJCQkJZXh0NF9iaF91bm1hcHBlZF9vcl9kZWxheSkpOworCX0KIAogCWlmIChleHQ0X2pvdXJuYWxfY3VycmVudF9oYW5kbGUoKSkKIAkJZ290byBub193cml0ZTsKIAotCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgZXh0NF93cml0ZXBhZ2VfdHJhbnNfYmxvY2tzKGlub2RlKSk7Ci0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGFuZGxlKTsKLQkJZ290byBub193cml0ZTsKLQl9Ci0KLQlpZiAoIXBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkgfHwgUGFnZUNoZWNrZWQocGFnZSkpIHsKKwlpZiAoUGFnZUNoZWNrZWQocGFnZSkpIHsKIAkJLyoKIAkJICogSXQncyBtbWFwcGVkIHBhZ2VjYWNoZS4gIEFkZCBidWZmZXJzIGFuZCBqb3VybmFsIGl0LiAgVGhlcmUKIAkJICogZG9lc24ndCBzZWVtIG11Y2ggcG9pbnQgaW4gcmVkaXJ0eWluZyB0aGUgcGFnZSBoZXJlLgogCQkgKi8KIAkJQ2xlYXJQYWdlQ2hlY2tlZChwYWdlKTsKLQkJcmV0ID0gYmxvY2tfcHJlcGFyZV93cml0ZShwYWdlLCAwLCBQQUdFX0NBQ0hFX1NJWkUsCi0JCQkJCWV4dDRfZ2V0X2Jsb2NrKTsKLQkJaWYgKHJldCAhPSAwKSB7Ci0JCQlleHQ0X2pvdXJuYWxfc3RvcChoYW5kbGUpOwotCQkJZ290byBvdXRfdW5sb2NrOwotCQl9Ci0JCXJldCA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLAotCQkJUEFHRV9DQUNIRV9TSVpFLCBOVUxMLCBkb19qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MpOwotCi0JCWVyciA9IHdhbGtfcGFnZV9idWZmZXJzKGhhbmRsZSwgcGFnZV9idWZmZXJzKHBhZ2UpLCAwLAotCQkJCVBBR0VfQ0FDSEVfU0laRSwgTlVMTCwgd3JpdGVfZW5kX2ZuKTsKLQkJaWYgKHJldCA9PSAwKQotCQkJcmV0ID0gZXJyOwotCQlFWFQ0X0koaW5vZGUpLT5pX3N0YXRlIHw9IEVYVDRfU1RBVEVfSkRBVEE7Ci0JCXVubG9ja19wYWdlKHBhZ2UpOworCQlyZXR1cm4gX19leHQ0X2pvdXJuYWxsZWRfd3JpdGVwYWdlKHBhZ2UsIHdiYyk7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogSXQgbWF5IGJlIGEgcGFnZSBmdWxsIG9mIGNoZWNrcG9pbnQtbW9kZSBidWZmZXJzLiAgV2UgZG9uJ3QKIAkJICogcmVhbGx5IGtub3cgdW5sZXNzIHdlIGdvIHBva2UgYXJvdW5kIGluIHRoZSBidWZmZXJfaGVhZHMuCiAJCSAqIEJ1dCBibG9ja193cml0ZV9mdWxsX3BhZ2Ugd2lsbCBkbyB0aGUgcmlnaHQgdGhpbmcuCiAJCSAqLwotCQlyZXQgPSBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwgZXh0NF9nZXRfYmxvY2ssIHdiYyk7CisJCXJldHVybiBibG9ja193cml0ZV9mdWxsX3BhZ2UocGFnZSwKKwkJCQkJCWV4dDRfbm9ybWFsX2dldF9ibG9ja193cml0ZSwKKwkJCQkJCXdiYyk7CiAJfQotCWVyciA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7Ci0JaWYgKCFyZXQpCi0JCXJldCA9IGVycjsKLW91dDoKLQlyZXR1cm4gcmV0OwotCiBub193cml0ZToKIAlyZWRpcnR5X3BhZ2VfZm9yX3dyaXRlcGFnZSh3YmMsIHBhZ2UpOwotb3V0X3VubG9jazoKIAl1bmxvY2tfcGFnZShwYWdlKTsKLQlnb3RvIG91dDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBleHQ0X3JlYWRwYWdlKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAgLTE4MTksNyArMjgwOCw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBleHQ0X29yZGVyZWRfYW9wcyA9IHsKIAkucmVhZHBhZ2UJPSBleHQ0X3JlYWRwYWdlLAogCS5yZWFkcGFnZXMJPSBleHQ0X3JlYWRwYWdlcywKLQkud3JpdGVwYWdlCT0gZXh0NF9vcmRlcmVkX3dyaXRlcGFnZSwKKwkud3JpdGVwYWdlCT0gZXh0NF9ub3JtYWxfd3JpdGVwYWdlLAogCS5zeW5jX3BhZ2UJPSBibG9ja19zeW5jX3BhZ2UsCiAJLndyaXRlX2JlZ2luCT0gZXh0NF93cml0ZV9iZWdpbiwKIAkud3JpdGVfZW5kCT0gZXh0NF9vcmRlcmVkX3dyaXRlX2VuZCwKQEAgLTE4MzMsNyArMjgyMiw3IEBACiBzdGF0aWMgY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBleHQ0X3dyaXRlYmFja19hb3BzID0gewogCS5yZWFkcGFnZQk9IGV4dDRfcmVhZHBhZ2UsCiAJLnJlYWRwYWdlcwk9IGV4dDRfcmVhZHBhZ2VzLAotCS53cml0ZXBhZ2UJPSBleHQ0X3dyaXRlYmFja193cml0ZXBhZ2UsCisJLndyaXRlcGFnZQk9IGV4dDRfbm9ybWFsX3dyaXRlcGFnZSwKIAkuc3luY19wYWdlCT0gYmxvY2tfc3luY19wYWdlLAogCS53cml0ZV9iZWdpbgk9IGV4dDRfd3JpdGVfYmVnaW4sCiAJLndyaXRlX2VuZAk9IGV4dDRfd3JpdGViYWNrX3dyaXRlX2VuZCwKQEAgLTE4NTcsMTAgKzI4NDYsMzEgQEAKIAkucmVsZWFzZXBhZ2UJPSBleHQ0X3JlbGVhc2VwYWdlLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgZXh0NF9kYV9hb3BzID0geworCS5yZWFkcGFnZQk9IGV4dDRfcmVhZHBhZ2UsCisJLnJlYWRwYWdlcwk9IGV4dDRfcmVhZHBhZ2VzLAorCS53cml0ZXBhZ2UJPSBleHQ0X2RhX3dyaXRlcGFnZSwKKwkud3JpdGVwYWdlcwk9IGV4dDRfZGFfd3JpdGVwYWdlcywKKwkuc3luY19wYWdlCT0gYmxvY2tfc3luY19wYWdlLAorCS53cml0ZV9iZWdpbgk9IGV4dDRfZGFfd3JpdGVfYmVnaW4sCisJLndyaXRlX2VuZAk9IGV4dDRfZGFfd3JpdGVfZW5kLAorCS5ibWFwCQk9IGV4dDRfYm1hcCwKKwkuaW52YWxpZGF0ZXBhZ2UJPSBleHQ0X2RhX2ludmFsaWRhdGVwYWdlLAorCS5yZWxlYXNlcGFnZQk9IGV4dDRfcmVsZWFzZXBhZ2UsCisJLmRpcmVjdF9JTwk9IGV4dDRfZGlyZWN0X0lPLAorCS5taWdyYXRlcGFnZQk9IGJ1ZmZlcl9taWdyYXRlX3BhZ2UsCit9OworCiB2b2lkIGV4dDRfc2V0X2FvcHMoc3RydWN0IGlub2RlICppbm9kZSkKIHsKLQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpCisJaWYgKGV4dDRfc2hvdWxkX29yZGVyX2RhdGEoaW5vZGUpICYmCisJCXRlc3Rfb3B0KGlub2RlLT5pX3NiLCBERUxBTExPQykpCisJCWlub2RlLT5pX21hcHBpbmctPmFfb3BzID0gJmV4dDRfZGFfYW9wczsKKwllbHNlIGlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKIAkJaW5vZGUtPmlfbWFwcGluZy0+YV9vcHMgPSAmZXh0NF9vcmRlcmVkX2FvcHM7CisJZWxzZSBpZiAoZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpICYmCisJCSB0ZXN0X29wdChpbm9kZS0+aV9zYiwgREVMQUxMT0MpKQorCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZleHQ0X2RhX2FvcHM7CiAJZWxzZSBpZiAoZXh0NF9zaG91bGRfd3JpdGViYWNrX2RhdGEoaW5vZGUpKQogCQlpbm9kZS0+aV9tYXBwaW5nLT5hX29wcyA9ICZleHQ0X3dyaXRlYmFja19hb3BzOwogCWVsc2UKQEAgLTE4NzMsNyArMjg4Myw3IEBACiAgKiBUaGlzIHJlcXVpcmVkIGR1cmluZyB0cnVuY2F0ZS4gV2UgbmVlZCB0byBwaHlzaWNhbGx5IHplcm8gdGhlIHRhaWwgZW5kCiAgKiBvZiB0aGF0IGJsb2NrIHNvIGl0IGRvZXNuJ3QgeWllbGQgb2xkIGRhdGEgaWYgdGhlIGZpbGUgaXMgbGF0ZXIgZ3Jvd24uCiAgKi8KLWludCBleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlX3QgKmhhbmRsZSwgc3RydWN0IHBhZ2UgKnBhZ2UsCitpbnQgZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZV90ICpoYW5kbGUsCiAJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgZnJvbSkKIHsKIAlleHQ0X2ZzYmxrX3QgaW5kZXggPSBmcm9tID4+IFBBR0VfQ0FDSEVfU0hJRlQ7CkBAIC0xODgyLDggKzI4OTIsMTMgQEAKIAlleHQ0X2xibGtfdCBpYmxvY2s7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKwlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAlpbnQgZXJyID0gMDsKIAorCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywgZnJvbSA+PiBQQUdFX0NBQ0hFX1NISUZUKTsKKwlpZiAoIXBhZ2UpCisJCXJldHVybiAtRUlOVkFMOworCiAJYmxvY2tzaXplID0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplOwogCWxlbmd0aCA9IGJsb2Nrc2l6ZSAtIChvZmZzZXQgJiAoYmxvY2tzaXplIC0gMSkpOwogCWlibG9jayA9IGluZGV4IDw8IChQQUdFX0NBQ0hFX1NISUZUIC0gaW5vZGUtPmlfc2ItPnNfYmxvY2tzaXplX2JpdHMpOwpAQCAtMTk1Niw3ICsyOTcxLDcgQEAKIAkJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgYmgpOwogCX0gZWxzZSB7CiAJCWlmIChleHQ0X3Nob3VsZF9vcmRlcl9kYXRhKGlub2RlKSkKLQkJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9kYXRhKGhhbmRsZSwgYmgpOworCQkJZXJyID0gZXh0NF9qYmQyX2ZpbGVfaW5vZGUoaGFuZGxlLCBpbm9kZSk7CiAJCW1hcmtfYnVmZmVyX2RpcnR5KGJoKTsKIAl9CiAKQEAgLTIxNzksNyArMzE5NCwyMSBAQAogCiAJaWYgKHRoaXNfYmgpIHsKIAkJQlVGRkVSX1RSQUNFKHRoaXNfYmgsICJjYWxsIGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YSIpOwotCQlleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCB0aGlzX2JoKTsKKworCQkvKgorCQkgKiBUaGUgYnVmZmVyIGhlYWQgc2hvdWxkIGhhdmUgYW4gYXR0YWNoZWQgam91cm5hbCBoZWFkIGF0IHRoaXMKKwkJICogcG9pbnQuIEhvd2V2ZXIsIGlmIHRoZSBkYXRhIGlzIGNvcnJ1cHRlZCBhbmQgYW4gaW5kaXJlY3QKKwkJICogYmxvY2sgcG9pbnRlZCB0byBpdHNlbGYsIGl0IHdvdWxkIGhhdmUgYmVlbiBkZXRhY2hlZCB3aGVuCisJCSAqIHRoZSBibG9jayB3YXMgY2xlYXJlZC4gQ2hlY2sgZm9yIHRoaXMgaW5zdGVhZCBvZiBPT1BTaW5nLgorCQkgKi8KKwkJaWYgKGJoMmpoKHRoaXNfYmgpKQorCQkJZXh0NF9qb3VybmFsX2RpcnR5X21ldGFkYXRhKGhhbmRsZSwgdGhpc19iaCk7CisJCWVsc2UKKwkJCWV4dDRfZXJyb3IoaW5vZGUtPmlfc2IsIF9fZnVuY19fLAorCQkJCSAgICJjaXJjdWxhciBpbmRpcmVjdCBibG9jayBkZXRlY3RlZCwgIgorCQkJCSAgICJpbm9kZT0lbHUsIGJsb2NrPSVsbHUiLAorCQkJCSAgIGlub2RlLT5pX2lubywKKwkJCQkgICAodW5zaWduZWQgbG9uZyBsb25nKSB0aGlzX2JoLT5iX2Jsb2NrbnIpOwogCX0KIH0KIApAQCAtMjMwNSw2ICszMzM0LDE5IEBACiAJfQogfQogCitpbnQgZXh0NF9jYW5fdHJ1bmNhdGUoc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlpZiAoSVNfQVBQRU5EKGlub2RlKSB8fCBJU19JTU1VVEFCTEUoaW5vZGUpKQorCQlyZXR1cm4gMDsKKwlpZiAoU19JU1JFRyhpbm9kZS0+aV9tb2RlKSkKKwkJcmV0dXJuIDE7CisJaWYgKFNfSVNESVIoaW5vZGUtPmlfbW9kZSkpCisJCXJldHVybiAxOworCWlmIChTX0lTTE5LKGlub2RlLT5pX21vZGUpKQorCQlyZXR1cm4gIWV4dDRfaW5vZGVfaXNfZmFzdF9zeW1saW5rKGlub2RlKTsKKwlyZXR1cm4gMDsKK30KKwogLyoKICAqIGV4dDRfdHJ1bmNhdGUoKQogICoKQEAgLTIzNDcsNTEgKzMzODksMjUgQEAKIAlpbnQgbjsKIAlleHQ0X2xibGtfdCBsYXN0X2Jsb2NrOwogCXVuc2lnbmVkIGJsb2Nrc2l6ZSA9IGlub2RlLT5pX3NiLT5zX2Jsb2Nrc2l6ZTsKLQlzdHJ1Y3QgcGFnZSAqcGFnZTsKIAotCWlmICghKFNfSVNSRUcoaW5vZGUtPmlfbW9kZSkgfHwgU19JU0RJUihpbm9kZS0+aV9tb2RlKSB8fAotCSAgICBTX0lTTE5LKGlub2RlLT5pX21vZGUpKSkKKwlpZiAoIWV4dDRfY2FuX3RydW5jYXRlKGlub2RlKSkKIAkJcmV0dXJuOwotCWlmIChleHQ0X2lub2RlX2lzX2Zhc3Rfc3ltbGluayhpbm9kZSkpCi0JCXJldHVybjsKLQlpZiAoSVNfQVBQRU5EKGlub2RlKSB8fCBJU19JTU1VVEFCTEUoaW5vZGUpKQotCQlyZXR1cm47Ci0KLQkvKgotCSAqIFdlIGhhdmUgdG8gbG9jayB0aGUgRU9GIHBhZ2UgaGVyZSwgYmVjYXVzZSBsb2NrX3BhZ2UoKSBuZXN0cwotCSAqIG91dHNpZGUgamJkMl9qb3VybmFsX3N0YXJ0KCkuCi0JICovCi0JaWYgKChpbm9kZS0+aV9zaXplICYgKGJsb2Nrc2l6ZSAtIDEpKSA9PSAwKSB7Ci0JCS8qIEJsb2NrIGJvdW5kYXJ5PyBOb3RoaW5nIHRvIGRvICovCi0JCXBhZ2UgPSBOVUxMOwotCX0gZWxzZSB7Ci0JCXBhZ2UgPSBncmFiX2NhY2hlX3BhZ2UobWFwcGluZywKLQkJCQlpbm9kZS0+aV9zaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpOwotCQlpZiAoIXBhZ2UpCi0JCQlyZXR1cm47Ci0JfQogCiAJaWYgKEVYVDRfSShpbm9kZSktPmlfZmxhZ3MgJiBFWFQ0X0VYVEVOVFNfRkwpIHsKLQkJZXh0NF9leHRfdHJ1bmNhdGUoaW5vZGUsIHBhZ2UpOworCQlleHQ0X2V4dF90cnVuY2F0ZShpbm9kZSk7CiAJCXJldHVybjsKIAl9CiAKIAloYW5kbGUgPSBzdGFydF90cmFuc2FjdGlvbihpbm9kZSk7Ci0JaWYgKElTX0VSUihoYW5kbGUpKSB7Ci0JCWlmIChwYWdlKSB7Ci0JCQljbGVhcl9oaWdocGFnZShwYWdlKTsKLQkJCWZsdXNoX2RjYWNoZV9wYWdlKHBhZ2UpOwotCQkJdW5sb2NrX3BhZ2UocGFnZSk7Ci0JCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7Ci0JCX0KKwlpZiAoSVNfRVJSKGhhbmRsZSkpCiAJCXJldHVybjsJCS8qIEFLUE06IHJldHVybiB3aGF0PyAqLwotCX0KIAogCWxhc3RfYmxvY2sgPSAoaW5vZGUtPmlfc2l6ZSArIGJsb2Nrc2l6ZS0xKQogCQkJCQk+PiBFWFQ0X0JMT0NLX1NJWkVfQklUUyhpbm9kZS0+aV9zYik7CiAKLQlpZiAocGFnZSkKLQkJZXh0NF9ibG9ja190cnVuY2F0ZV9wYWdlKGhhbmRsZSwgcGFnZSwgbWFwcGluZywgaW5vZGUtPmlfc2l6ZSk7CisJaWYgKGlub2RlLT5pX3NpemUgJiAoYmxvY2tzaXplIC0gMSkpCisJCWlmIChleHQ0X2Jsb2NrX3RydW5jYXRlX3BhZ2UoaGFuZGxlLCBtYXBwaW5nLCBpbm9kZS0+aV9zaXplKSkKKwkJCWdvdG8gb3V0X3N0b3A7CiAKIAluID0gZXh0NF9ibG9ja190b19wYXRoKGlub2RlLCBsYXN0X2Jsb2NrLCBvZmZzZXRzLCBOVUxMKTsKIAlpZiAobiA9PSAwKQpAQCAtMjQxMCw2ICszNDI2LDExIEBACiAJCWdvdG8gb3V0X3N0b3A7CiAKIAkvKgorCSAqIEZyb20gaGVyZSB3ZSBibG9jayBvdXQgYWxsIGV4dDRfZ2V0X2Jsb2NrKCkgY2FsbGVycyB3aG8gd2FudCB0bworCSAqIG1vZGlmeSB0aGUgYmxvY2sgYWxsb2NhdGlvbiB0cmVlLgorCSAqLworCWRvd25fd3JpdGUoJmVpLT5pX2RhdGFfc2VtKTsKKwkvKgogCSAqIFRoZSBvcnBoYW4gbGlzdCBlbnRyeSB3aWxsIG5vdyBwcm90ZWN0IHVzIGZyb20gYW55IGNyYXNoIHdoaWNoCiAJICogb2NjdXJzIGJlZm9yZSB0aGUgdHJ1bmNhdGUgY29tcGxldGVzLCBzbyBpdCBpcyBub3cgc2FmZSB0byBwcm9wYWdhdGUKIAkgKiB0aGUgbmV3LCBzaG9ydGVyIGlub2RlIHNpemUgKGhlbGQgZm9yIG5vdyBpbiBpX3NpemUpIGludG8gdGhlCkBAIC0yNDE4LDEyICszNDM5LDYgQEAKIAkgKi8KIAllaS0+aV9kaXNrc2l6ZSA9IGlub2RlLT5pX3NpemU7CiAKLQkvKgotCSAqIEZyb20gaGVyZSB3ZSBibG9jayBvdXQgYWxsIGV4dDRfZ2V0X2Jsb2NrKCkgY2FsbGVycyB3aG8gd2FudCB0bwotCSAqIG1vZGlmeSB0aGUgYmxvY2sgYWxsb2NhdGlvbiB0cmVlLgotCSAqLwotCWRvd25fd3JpdGUoJmVpLT5pX2RhdGFfc2VtKTsKLQogCWlmIChuID09IDEpIHsJCS8qIGRpcmVjdCBibG9ja3MgKi8KIAkJZXh0NF9mcmVlX2RhdGEoaGFuZGxlLCBpbm9kZSwgTlVMTCwgaV9kYXRhK29mZnNldHNbMF0sCiAJCQkgICAgICAgaV9kYXRhICsgRVhUNF9ORElSX0JMT0NLUyk7CkBAIC0zMTA3LDcgKzQxMjIsMTQgQEAKICAqIGJlIGZyZWVkLCBzbyB3ZSBoYXZlIGEgc3Ryb25nIGd1YXJhbnRlZSB0aGF0IG5vIGZ1dHVyZSBjb21taXQgd2lsbAogICogbGVhdmUgdGhlc2UgYmxvY2tzIHZpc2libGUgdG8gdGhlIHVzZXIuKQogICoKLSAqIENhbGxlZCB3aXRoIGlub2RlLT5zZW0gZG93bi4KKyAqIEFub3RoZXIgdGhpbmcgd2UgaGF2ZSB0byBhc3N1cmUgaXMgdGhhdCBpZiB3ZSBhcmUgaW4gb3JkZXJlZCBtb2RlCisgKiBhbmQgaW5vZGUgaXMgc3RpbGwgYXR0YWNoZWQgdG8gdGhlIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24sIHdlIG11c3QKKyAqIHdlIHN0YXJ0IHdyaXRlb3V0IG9mIGFsbCB0aGUgZGlydHkgcGFnZXMgd2hpY2ggYXJlIGJlaW5nIHRydW5jYXRlZC4KKyAqIFRoaXMgd2F5IHdlIGFyZSBzdXJlIHRoYXQgYWxsIHRoZSBkYXRhIHdyaXR0ZW4gaW4gdGhlIHByZXZpb3VzCisgKiB0cmFuc2FjdGlvbiBhcmUgYWxyZWFkeSBvbiBkaXNrICh0cnVuY2F0ZSB3YWl0cyBmb3IgcGFnZXMgdW5kZXIKKyAqIHdyaXRlYmFjaykuCisgKgorICogQ2FsbGVkIHdpdGggaW5vZGUtPmlfbXV0ZXggZG93bi4KICAqLwogaW50IGV4dDRfc2V0YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpYXR0ciAqYXR0cikKIHsKQEAgLTMxNzMsNiArNDE5NSwyMiBAQAogCQlpZiAoIWVycm9yKQogCQkJZXJyb3IgPSByYzsKIAkJZXh0NF9qb3VybmFsX3N0b3AoaGFuZGxlKTsKKworCQlpZiAoZXh0NF9zaG91bGRfb3JkZXJfZGF0YShpbm9kZSkpIHsKKwkJCWVycm9yID0gZXh0NF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKGlub2RlLAorCQkJCQkJCSAgICBhdHRyLT5pYV9zaXplKTsKKwkJCWlmIChlcnJvcikgeworCQkJCS8qIERvIGFzIG11Y2ggZXJyb3IgY2xlYW51cCBhcyBwb3NzaWJsZSAqLworCQkJCWhhbmRsZSA9IGV4dDRfam91cm5hbF9zdGFydChpbm9kZSwgMyk7CisJCQkJaWYgKElTX0VSUihoYW5kbGUpKSB7CisJCQkJCWV4dDRfb3JwaGFuX2RlbChOVUxMLCBpbm9kZSk7CisJCQkJCWdvdG8gZXJyX291dDsKKwkJCQl9CisJCQkJZXh0NF9vcnBoYW5fZGVsKGhhbmRsZSwgaW5vZGUpOworCQkJCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7CisJCQkJZ290byBlcnJfb3V0OworCQkJfQorCQl9CiAJfQogCiAJcmMgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKQEAgLTMxOTMsNiArNDIzMSwzMiBAQAogCXJldHVybiBlcnJvcjsKIH0KIAoraW50IGV4dDRfZ2V0YXR0cihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkgc3RydWN0IGtzdGF0ICpzdGF0KQoreworCXN0cnVjdCBpbm9kZSAqaW5vZGU7CisJdW5zaWduZWQgbG9uZyBkZWxhbGxvY19ibG9ja3M7CisKKwlpbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlnZW5lcmljX2ZpbGxhdHRyKGlub2RlLCBzdGF0KTsKKworCS8qCisJICogV2UgY2FuJ3QgdXBkYXRlIGlfYmxvY2tzIGlmIHRoZSBibG9jayBhbGxvY2F0aW9uIGlzIGRlbGF5ZWQKKwkgKiBvdGhlcndpc2UgaW4gdGhlIGNhc2Ugb2Ygc3lzdGVtIGNyYXNoIGJlZm9yZSB0aGUgcmVhbCBibG9jaworCSAqIGFsbG9jYXRpb24gaXMgZG9uZSwgd2Ugd2lsbCBoYXZlIGlfYmxvY2tzIGluY29uc2lzdGVudCB3aXRoCisJICogb24tZGlzayBmaWxlIGJsb2Nrcy4KKwkgKiBXZSBhbHdheXMga2VlcCBpX2Jsb2NrcyB1cGRhdGVkIHRvZ2V0aGVyIHdpdGggcmVhbAorCSAqIGFsbG9jYXRpb24uIEJ1dCB0byBub3QgY29uZnVzZSB3aXRoIHVzZXIsIHN0YXQKKwkgKiB3aWxsIHJldHVybiB0aGUgYmxvY2tzIHRoYXQgaW5jbHVkZSB0aGUgZGVsYXllZCBhbGxvY2F0aW9uCisJICogYmxvY2tzIGZvciB0aGlzIGZpbGUuCisJICovCisJc3Bpbl9sb2NrKCZFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX3Jlc2VydmF0aW9uX2xvY2spOworCWRlbGFsbG9jX2Jsb2NrcyA9IEVYVDRfSShpbm9kZSktPmlfcmVzZXJ2ZWRfZGF0YV9ibG9ja3M7CisJc3Bpbl91bmxvY2soJkVYVDRfSShpbm9kZSktPmlfYmxvY2tfcmVzZXJ2YXRpb25fbG9jayk7CisKKwlzdGF0LT5ibG9ja3MgKz0gKGRlbGFsbG9jX2Jsb2NrcyA8PCBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemVfYml0cyk+Pjk7CisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBIb3cgbWFueSBibG9ja3MgZG90aCBtYWtlIGEgd3JpdGVwYWdlKCk/CkBAIC0zNTA2LDMgKzQ1NzAsNjQgQEAKIAogCXJldHVybiBlcnI7CiB9CisKK3N0YXRpYyBpbnQgZXh0NF9iaF91bm1hcHBlZChoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQoreworCXJldHVybiAhYnVmZmVyX21hcHBlZChiaCk7Cit9CisKK2ludCBleHQ0X3BhZ2VfbWt3cml0ZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UpCit7CisJbG9mZl90IHNpemU7CisJdW5zaWduZWQgbG9uZyBsZW47CisJaW50IHJldCA9IC1FSU5WQUw7CisJc3RydWN0IGZpbGUgKmZpbGUgPSB2bWEtPnZtX2ZpbGU7CisJc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGUtPmZfcGF0aC5kZW50cnktPmRfaW5vZGU7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBpbm9kZS0+aV9tYXBwaW5nOworCisJLyoKKwkgKiBHZXQgaV9hbGxvY19zZW0gdG8gc3RvcCB0cnVuY2F0ZXMgbWVzc2luZyB3aXRoIHRoZSBpbm9kZS4gV2UgY2Fubm90CisJICogZ2V0IGlfbXV0ZXggYmVjYXVzZSB3ZSBhcmUgYWxyZWFkeSBob2xkaW5nIG1tYXBfc2VtLgorCSAqLworCWRvd25fcmVhZCgmaW5vZGUtPmlfYWxsb2Nfc2VtKTsKKwlzaXplID0gaV9zaXplX3JlYWQoaW5vZGUpOworCWlmIChwYWdlLT5tYXBwaW5nICE9IG1hcHBpbmcgfHwgc2l6ZSA8PSBwYWdlX29mZnNldChwYWdlKQorCSAgICB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCS8qIHBhZ2UgZ290IHRydW5jYXRlZCBmcm9tIHVuZGVyIHVzPyAqLworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCXJldCA9IDA7CisJaWYgKFBhZ2VNYXBwZWRUb0Rpc2socGFnZSkpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWlmIChwYWdlLT5pbmRleCA9PSBzaXplID4+IFBBR0VfQ0FDSEVfU0hJRlQpCisJCWxlbiA9IHNpemUgJiB+UEFHRV9DQUNIRV9NQVNLOworCWVsc2UKKwkJbGVuID0gUEFHRV9DQUNIRV9TSVpFOworCisJaWYgKHBhZ2VfaGFzX2J1ZmZlcnMocGFnZSkpIHsKKwkJLyogcmV0dXJuIGlmIHdlIGhhdmUgYWxsIHRoZSBidWZmZXJzIG1hcHBlZCAqLworCQlpZiAoIXdhbGtfcGFnZV9idWZmZXJzKE5VTEwsIHBhZ2VfYnVmZmVycyhwYWdlKSwgMCwgbGVuLCBOVUxMLAorCQkJCSAgICAgICBleHQ0X2JoX3VubWFwcGVkKSkKKwkJCWdvdG8gb3V0X3VubG9jazsKKwl9CisJLyoKKwkgKiBPSywgd2UgbmVlZCB0byBmaWxsIHRoZSBob2xlLi4uIERvIHdyaXRlX2JlZ2luIHdyaXRlX2VuZAorCSAqIHRvIGRvIGJsb2NrIGFsbG9jYXRpb24vcmVzZXJ2YXRpb24uV2UgYXJlIG5vdCBob2xkaW5nCisJICogaW5vZGUuaV9fbXV0ZXggaGVyZS4gVGhhdCBhbGxvdyAqIHBhcmFsbGVsIHdyaXRlX2JlZ2luLAorCSAqIHdyaXRlX2VuZCBjYWxsLiBsb2NrX3BhZ2UgcHJldmVudCB0aGlzIGZyb20gaGFwcGVuaW5nCisJICogb24gdGhlIHNhbWUgcGFnZSB0aG91Z2gKKwkgKi8KKwlyZXQgPSBtYXBwaW5nLT5hX29wcy0+d3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywgcGFnZV9vZmZzZXQocGFnZSksCisJCQlsZW4sIEFPUF9GTEFHX1VOSU5URVJSVVBUSUJMRSwgJnBhZ2UsIE5VTEwpOworCWlmIChyZXQgPCAwKQorCQlnb3RvIG91dF91bmxvY2s7CisJcmV0ID0gbWFwcGluZy0+YV9vcHMtPndyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwYWdlX29mZnNldChwYWdlKSwKKwkJCWxlbiwgbGVuLCBwYWdlLCBOVUxMKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXRfdW5sb2NrOworCXJldCA9IDA7CitvdXRfdW5sb2NrOgorCXVwX3JlYWQoJmlub2RlLT5pX2FsbG9jX3NlbSk7CisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbWJhbGxvYy5jIGIvZnMvZXh0NC9tYmFsbG9jLmMKaW5kZXggODczYWQ5Yi4uOGQxNDFhMiAxMDA2NDQKLS0tIGEvZnMvZXh0NC9tYmFsbG9jLmMKKysrIGIvZnMvZXh0NC9tYmFsbG9jLmMKQEAgLTM4MSwyMiArMzgxLDI4IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IG1iX2ZpbmRfbmV4dF96ZXJvX2JpdCh2b2lkICphZGRyLCBpbnQgbWF4LCBpbnQgc3RhcnQpCiB7Ci0JaW50IGZpeCA9IDA7CisJaW50IGZpeCA9IDAsIHJldCwgdG1wbWF4OwogCWFkZHIgPSBtYl9jb3JyZWN0X2FkZHJfYW5kX2JpdCgmZml4LCBhZGRyKTsKLQltYXggKz0gZml4OworCXRtcG1heCA9IG1heCArIGZpeDsKIAlzdGFydCArPSBmaXg7CiAKLQlyZXR1cm4gZXh0NF9maW5kX25leHRfemVyb19iaXQoYWRkciwgbWF4LCBzdGFydCkgLSBmaXg7CisJcmV0ID0gZXh0NF9maW5kX25leHRfemVyb19iaXQoYWRkciwgdG1wbWF4LCBzdGFydCkgLSBmaXg7CisJaWYgKHJldCA+IG1heCkKKwkJcmV0dXJuIG1heDsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW5saW5lIGludCBtYl9maW5kX25leHRfYml0KHZvaWQgKmFkZHIsIGludCBtYXgsIGludCBzdGFydCkKIHsKLQlpbnQgZml4ID0gMDsKKwlpbnQgZml4ID0gMCwgcmV0LCB0bXBtYXg7CiAJYWRkciA9IG1iX2NvcnJlY3RfYWRkcl9hbmRfYml0KCZmaXgsIGFkZHIpOwotCW1heCArPSBmaXg7CisJdG1wbWF4ID0gbWF4ICsgZml4OwogCXN0YXJ0ICs9IGZpeDsKIAotCXJldHVybiBleHQ0X2ZpbmRfbmV4dF9iaXQoYWRkciwgbWF4LCBzdGFydCkgLSBmaXg7CisJcmV0ID0gZXh0NF9maW5kX25leHRfYml0KGFkZHIsIHRtcG1heCwgc3RhcnQpIC0gZml4OworCWlmIChyZXQgPiBtYXgpCisJCXJldHVybiBtYXg7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgKm1iX2ZpbmRfYnVkZHkoc3RydWN0IGV4dDRfYnVkZHkgKmU0YiwgaW50IG9yZGVyLCBpbnQgKm1heCkKQEAgLTgwMyw2ICs4MDksNyBAQAogCQlpZiAoIWJ1ZmZlcl91cHRvZGF0ZShiaFtpXSkpCiAJCQlnb3RvIG91dDsKIAorCWVyciA9IDA7CiAJZmlyc3RfYmxvY2sgPSBwYWdlLT5pbmRleCAqIGJsb2Nrc19wZXJfcGFnZTsKIAlmb3IgKGkgPSAwOyBpIDwgYmxvY2tzX3Blcl9wYWdlOyBpKyspIHsKIAkJaW50IGdyb3VwOwpAQCAtODgzLDYgKzg5MCw3IEBACiAJaW50IHBudW07CiAJaW50IHBvZmY7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CisJaW50IHJldDsKIAogCW1iX2RlYnVnKCJsb2FkIGdyb3VwICVsdVxuIiwgZ3JvdXApOwogCkBAIC05MTQsMTUgKzkyMiwyMSBAQAogCQlpZiAocGFnZSkgewogCQkJQlVHX09OKHBhZ2UtPm1hcHBpbmcgIT0gaW5vZGUtPmlfbWFwcGluZyk7CiAJCQlpZiAoIVBhZ2VVcHRvZGF0ZShwYWdlKSkgewotCQkJCWV4dDRfbWJfaW5pdF9jYWNoZShwYWdlLCBOVUxMKTsKKwkJCQlyZXQgPSBleHQ0X21iX2luaXRfY2FjaGUocGFnZSwgTlVMTCk7CisJCQkJaWYgKHJldCkgeworCQkJCQl1bmxvY2tfcGFnZShwYWdlKTsKKwkJCQkJZ290byBlcnI7CisJCQkJfQogCQkJCW1iX2NtcF9iaXRtYXBzKGU0YiwgcGFnZV9hZGRyZXNzKHBhZ2UpICsKIAkJCQkJICAgICAgIChwb2ZmICogc2ItPnNfYmxvY2tzaXplKSk7CiAJCQl9CiAJCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJfQogCX0KLQlpZiAocGFnZSA9PSBOVUxMIHx8ICFQYWdlVXB0b2RhdGUocGFnZSkpCisJaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCXJldCA9IC1FSU87CiAJCWdvdG8gZXJyOworCX0KIAllNGItPmJkX2JpdG1hcF9wYWdlID0gcGFnZTsKIAllNGItPmJkX2JpdG1hcCA9IHBhZ2VfYWRkcmVzcyhwYWdlKSArIChwb2ZmICogc2ItPnNfYmxvY2tzaXplKTsKIAltYXJrX3BhZ2VfYWNjZXNzZWQocGFnZSk7CkBAIC05MzgsMTQgKzk1MiwyMCBAQAogCQlwYWdlID0gZmluZF9vcl9jcmVhdGVfcGFnZShpbm9kZS0+aV9tYXBwaW5nLCBwbnVtLCBHRlBfTk9GUyk7CiAJCWlmIChwYWdlKSB7CiAJCQlCVUdfT04ocGFnZS0+bWFwcGluZyAhPSBpbm9kZS0+aV9tYXBwaW5nKTsKLQkJCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKQotCQkJCWV4dDRfbWJfaW5pdF9jYWNoZShwYWdlLCBlNGItPmJkX2JpdG1hcCk7Ci0KKwkJCWlmICghUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCQkJcmV0ID0gZXh0NF9tYl9pbml0X2NhY2hlKHBhZ2UsIGU0Yi0+YmRfYml0bWFwKTsKKwkJCQlpZiAocmV0KSB7CisJCQkJCXVubG9ja19wYWdlKHBhZ2UpOworCQkJCQlnb3RvIGVycjsKKwkJCQl9CisJCQl9CiAJCQl1bmxvY2tfcGFnZShwYWdlKTsKIAkJfQogCX0KLQlpZiAocGFnZSA9PSBOVUxMIHx8ICFQYWdlVXB0b2RhdGUocGFnZSkpCisJaWYgKHBhZ2UgPT0gTlVMTCB8fCAhUGFnZVVwdG9kYXRlKHBhZ2UpKSB7CisJCXJldCA9IC1FSU87CiAJCWdvdG8gZXJyOworCX0KIAllNGItPmJkX2J1ZGR5X3BhZ2UgPSBwYWdlOwogCWU0Yi0+YmRfYnVkZHkgPSBwYWdlX2FkZHJlc3MocGFnZSkgKyAocG9mZiAqIHNiLT5zX2Jsb2Nrc2l6ZSk7CiAJbWFya19wYWdlX2FjY2Vzc2VkKHBhZ2UpOwpAQCAtOTYyLDcgKzk4Miw3IEBACiAJCXBhZ2VfY2FjaGVfcmVsZWFzZShlNGItPmJkX2J1ZGR5X3BhZ2UpOwogCWU0Yi0+YmRfYnVkZHkgPSBOVUxMOwogCWU0Yi0+YmRfYml0bWFwID0gTlVMTDsKLQlyZXR1cm4gLUVJTzsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgdm9pZCBleHQ0X21iX3JlbGVhc2VfZGVzYyhzdHJ1Y3QgZXh0NF9idWRkeSAqZTRiKQpAQCAtMTAzMSw3ICsxMDUxLDcgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgbWJfZnJlZV9ibG9ja3Moc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGV4dDRfYnVkZHkgKmU0YiwKK3N0YXRpYyB2b2lkIG1iX2ZyZWVfYmxvY2tzKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X2J1ZGR5ICplNGIsCiAJCQkgIGludCBmaXJzdCwgaW50IGNvdW50KQogewogCWludCBibG9jayA9IDA7CkBAIC0xMDcxLDExICsxMDkxLDEyIEBACiAJCQlibG9ja25yICs9IGJsb2NrOwogCQkJYmxvY2tuciArPQogCQkJICAgIGxlMzJfdG9fY3B1KEVYVDRfU0Ioc2IpLT5zX2VzLT5zX2ZpcnN0X2RhdGFfYmxvY2spOwotCisJCQlleHQ0X3VubG9ja19ncm91cChzYiwgZTRiLT5iZF9ncm91cCk7CiAJCQlleHQ0X2Vycm9yKHNiLCBfX2Z1bmNfXywgImRvdWJsZS1mcmVlIG9mIGlub2RlIgogCQkJCSAgICIgJWx1J3MgYmxvY2sgJWxsdShiaXQgJXUgaW4gZ3JvdXAgJWx1KVxuIiwKIAkJCQkgICBpbm9kZSA/IGlub2RlLT5pX2lubyA6IDAsIGJsb2NrbnIsIGJsb2NrLAogCQkJCSAgIGU0Yi0+YmRfZ3JvdXApOworCQkJZXh0NF9sb2NrX2dyb3VwKHNiLCBlNGItPmJkX2dyb3VwKTsKIAkJfQogCQltYl9jbGVhcl9iaXQoYmxvY2ssIEVYVDRfTUJfQklUTUFQKGU0YikpOwogCQllNGItPmJkX2luZm8tPmJiX2NvdW50ZXJzW29yZGVyXSsrOwpAQCAtMTExMyw4ICsxMTM0LDYgQEAKIAkJfSB3aGlsZSAoMSk7CiAJfQogCW1iX2NoZWNrX2J1ZGR5KGU0Yik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBtYl9maW5kX2V4dGVudChzdHJ1Y3QgZXh0NF9idWRkeSAqZTRiLCBpbnQgb3JkZXIsIGludCBibG9jaywKQEAgLTE3MzAsMTAgKzE3NDksNiBAQAogCQlhYy0+YWNfZ19leC5mZV9zdGFydCA9IHNiaS0+c19tYl9sYXN0X3N0YXJ0OwogCQlzcGluX3VubG9jaygmc2JpLT5zX21kX2xvY2spOwogCX0KLQotCS8qIHNlYXJjaGluZyBmb3IgdGhlIHJpZ2h0IGdyb3VwIHN0YXJ0IGZyb20gdGhlIGdvYWwgdmFsdWUgc3BlY2lmaWVkICovCi0JZ3JvdXAgPSBhYy0+YWNfZ19leC5mZV9ncm91cDsKLQogCS8qIExldCdzIGp1c3Qgc2NhbiBncm91cHMgdG8gZmluZCBtb3JlLWxlc3Mgc3VpdGFibGUgYmxvY2tzICovCiAJY3IgPSBhYy0+YWNfMm9yZGVyID8gMCA6IDE7CiAJLyoKQEAgLTE3NDMsNiArMTc1OCwxMiBAQAogcmVwZWF0OgogCWZvciAoOyBjciA8IDQgJiYgYWMtPmFjX3N0YXR1cyA9PSBBQ19TVEFUVVNfQ09OVElOVUU7IGNyKyspIHsKIAkJYWMtPmFjX2NyaXRlcmlhID0gY3I7CisJCS8qCisJCSAqIHNlYXJjaGluZyBmb3IgdGhlIHJpZ2h0IGdyb3VwIHN0YXJ0CisJCSAqIGZyb20gdGhlIGdvYWwgdmFsdWUgc3BlY2lmaWVkCisJCSAqLworCQlncm91cCA9IGFjLT5hY19nX2V4LmZlX2dyb3VwOworCiAJCWZvciAoaSA9IDA7IGkgPCBFWFQ0X1NCKHNiKS0+c19ncm91cHNfY291bnQ7IGdyb3VwKyssIGkrKykgewogCQkJc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqZ3JwOwogCQkJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKQEAgLTE5NjMsNiArMTk4NCw4IEBACiAJaW50IHJjOwogCWludCBzaXplOwogCisJaWYgKHVubGlrZWx5KHNiaS0+c19tYl9oaXN0b3J5ID09IE5VTEwpKQorCQlyZXR1cm4gLUVOT01FTTsKIAlzID0ga21hbGxvYyhzaXplb2YoKnMpLCBHRlBfS0VSTkVMKTsKIAlpZiAocyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTIxNjUsOSArMjE4OCw3IEBACiAJc2JpLT5zX21iX2hpc3RvcnlfY3VyID0gMDsKIAlzcGluX2xvY2tfaW5pdCgmc2JpLT5zX21iX2hpc3RvcnlfbG9jayk7CiAJaSA9IHNiaS0+c19tYl9oaXN0b3J5X21heCAqIHNpemVvZihzdHJ1Y3QgZXh0NF9tYl9oaXN0b3J5KTsKLQlzYmktPnNfbWJfaGlzdG9yeSA9IGttYWxsb2MoaSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKGxpa2VseShzYmktPnNfbWJfaGlzdG9yeSAhPSBOVUxMKSkKLQkJbWVtc2V0KHNiaS0+c19tYl9oaXN0b3J5LCAwLCBpKTsKKwlzYmktPnNfbWJfaGlzdG9yeSA9IGt6YWxsb2MoaSwgR0ZQX0tFUk5FTCk7CiAJLyogaWYgd2UgY2FuJ3QgYWxsb2NhdGUgaGlzdG9yeSwgdGhlbiB3ZSBzaW1wbGUgd29uJ3QgdXNlIGl0ICovCiB9CiAKQEAgLTIyMTUsMjEgKzIyMzYsMTkyIEBACiAjZGVmaW5lIGV4dDRfbWJfaGlzdG9yeV9pbml0KHNiKQogI2VuZGlmCiAKKworLyogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGV4dDRfZ3JvdXBfaW5mbyBkYXRhIGZvciB0aGUgZ2l2ZW4gZ3JvdXAuICovCitpbnQgZXh0NF9tYl9hZGRfZ3JvdXBpbmZvKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGV4dDRfZ3JvdXBfdCBncm91cCwKKwkJCSAgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYykKK3sKKwlpbnQgaSwgbGVuOworCWludCBtZXRhbGVuID0gMDsKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvICoqbWV0YV9ncm91cF9pbmZvOworCisJLyoKKwkgKiBGaXJzdCBjaGVjayBpZiB0aGlzIGdyb3VwIGlzIHRoZSBmaXJzdCBvZiBhIHJlc2VydmVkIGJsb2NrLgorCSAqIElmIGl0J3MgdHJ1ZSwgd2UgaGF2ZSB0byBhbGxvY2F0ZSBhIG5ldyB0YWJsZSBvZiBwb2ludGVycworCSAqIHRvIGV4dDRfZ3JvdXBfaW5mbyBzdHJ1Y3R1cmVzCisJICovCisJaWYgKGdyb3VwICUgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgPT0gMCkgeworCQltZXRhbGVuID0gc2l6ZW9mKCptZXRhX2dyb3VwX2luZm8pIDw8CisJCQlFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpOworCQltZXRhX2dyb3VwX2luZm8gPSBrbWFsbG9jKG1ldGFsZW4sIEdGUF9LRVJORUwpOworCQlpZiAobWV0YV9ncm91cF9pbmZvID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgbWVtIGZvciBhICIKKwkJCSAgICAgICAiYnVkZHkgZ3JvdXBcbiIpOworCQkJZ290byBleGl0X21ldGFfZ3JvdXBfaW5mbzsKKwkJfQorCQlzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXSA9CisJCQltZXRhX2dyb3VwX2luZm87CisJfQorCisJLyoKKwkgKiBjYWxjdWxhdGUgbmVlZGVkIHNpemUuIGlmIGNoYW5nZSBiYl9jb3VudGVycyBzaXplLAorCSAqIGRvbid0IGZvcmdldCBhYm91dCBleHQ0X21iX2dlbmVyYXRlX2J1ZGR5KCkKKwkgKi8KKwlsZW4gPSBvZmZzZXRvZih0eXBlb2YoKiptZXRhX2dyb3VwX2luZm8pLAorCQkgICAgICAgYmJfY291bnRlcnNbc2ItPnNfYmxvY2tzaXplX2JpdHMgKyAyXSk7CisKKwltZXRhX2dyb3VwX2luZm8gPQorCQlzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXTsKKwlpID0gZ3JvdXAgJiAoRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKTsKKworCW1ldGFfZ3JvdXBfaW5mb1tpXSA9IGt6YWxsb2MobGVuLCBHRlBfS0VSTkVMKTsKKwlpZiAobWV0YV9ncm91cF9pbmZvW2ldID09IE5VTEwpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBjYW4ndCBhbGxvY2F0ZSBidWRkeSBtZW1cbiIpOworCQlnb3RvIGV4aXRfZ3JvdXBfaW5mbzsKKwl9CisJc2V0X2JpdChFWFQ0X0dST1VQX0lORk9fTkVFRF9JTklUX0JJVCwKKwkJJihtZXRhX2dyb3VwX2luZm9baV0tPmJiX3N0YXRlKSk7CisKKwkvKgorCSAqIGluaXRpYWxpemUgYmJfZnJlZSB0byBiZSBhYmxlIHRvIHNraXAKKwkgKiBlbXB0eSBncm91cHMgd2l0aG91dCBpbml0aWFsaXphdGlvbgorCSAqLworCWlmIChkZXNjLT5iZ19mbGFncyAmIGNwdV90b19sZTE2KEVYVDRfQkdfQkxPQ0tfVU5JTklUKSkgeworCQltZXRhX2dyb3VwX2luZm9baV0tPmJiX2ZyZWUgPQorCQkJZXh0NF9mcmVlX2Jsb2Nrc19hZnRlcl9pbml0KHNiLCBncm91cCwgZGVzYyk7CisJfSBlbHNlIHsKKwkJbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9mcmVlID0KKwkJCWxlMTZfdG9fY3B1KGRlc2MtPmJnX2ZyZWVfYmxvY2tzX2NvdW50KTsKKwl9CisKKwlJTklUX0xJU1RfSEVBRCgmbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9wcmVhbGxvY19saXN0KTsKKworI2lmZGVmIERPVUJMRV9DSEVDSworCXsKKwkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKKwkJbWV0YV9ncm91cF9pbmZvW2ldLT5iYl9iaXRtYXAgPQorCQkJa21hbGxvYyhzYi0+c19ibG9ja3NpemUsIEdGUF9LRVJORUwpOworCQlCVUdfT04obWV0YV9ncm91cF9pbmZvW2ldLT5iYl9iaXRtYXAgPT0gTlVMTCk7CisJCWJoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOworCQlCVUdfT04oYmggPT0gTlVMTCk7CisJCW1lbWNweShtZXRhX2dyb3VwX2luZm9baV0tPmJiX2JpdG1hcCwgYmgtPmJfZGF0YSwKKwkJCXNiLT5zX2Jsb2Nrc2l6ZSk7CisJCXB1dF9iaChiaCk7CisJfQorI2VuZGlmCisKKwlyZXR1cm4gMDsKKworZXhpdF9ncm91cF9pbmZvOgorCS8qIElmIGEgbWV0YV9ncm91cF9pbmZvIHRhYmxlIGhhcyBiZWVuIGFsbG9jYXRlZCwgcmVsZWFzZSBpdCBub3cgKi8KKwlpZiAoZ3JvdXAgJSBFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKSA9PSAwKQorCQlrZnJlZShzYmktPnNfZ3JvdXBfaW5mb1tncm91cCA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXSk7CitleGl0X21ldGFfZ3JvdXBfaW5mbzoKKwlyZXR1cm4gLUVOT01FTTsKK30gLyogZXh0NF9tYl9hZGRfZ3JvdXBpbmZvICovCisKKy8qCisgKiBBZGQgYSBncm91cCB0byB0aGUgZXhpc3RpbmcgZ3JvdXBzLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciBvbmxpbmUgcmVzaXplCisgKi8KK2ludCBleHQ0X21iX2FkZF9tb3JlX2dyb3VwaW5mbyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBleHQ0X2dyb3VwX3QgZ3JvdXAsCisJCQkgICAgICAgc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYykKK3sKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc2JpLT5zX2J1ZGR5X2NhY2hlOworCWludCBibG9ja3NfcGVyX3BhZ2U7CisJaW50IGJsb2NrOworCWludCBwbnVtOworCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBlcnI7CisKKwkvKiBBZGQgZ3JvdXAgYmFzZWQgb24gZ3JvdXAgZGVzY3JpcHRvciovCisJZXJyID0gZXh0NF9tYl9hZGRfZ3JvdXBpbmZvKHNiLCBncm91cCwgZGVzYyk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKworCS8qCisJICogQ2FjaGUgcGFnZXMgY29udGFpbmluZyBkeW5hbWljIG1iX2FsbG9jIGRhdGFzIChidWRkeSBhbmQgYml0bWFwCisJICogZGF0YXMpIGFyZSBzZXQgbm90IHVwIHRvIGRhdGUgc28gdGhhdCB0aGV5IHdpbGwgYmUgcmUtaW5pdGlsYWl6ZWQKKwkgKiBkdXJpbmcgdGhlIG5leHQgY2FsbCB0byBleHQ0X21iX2xvYWRfYnVkZHkKKwkgKi8KKworCS8qIFNldCBidWRkeSBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJYmxvY2tzX3Blcl9wYWdlID0gUEFHRV9DQUNIRV9TSVpFIC8gc2ItPnNfYmxvY2tzaXplOworCWJsb2NrID0gZ3JvdXAgKiAyOworCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwlwYWdlID0gZmluZF9nZXRfcGFnZShpbm9kZS0+aV9tYXBwaW5nLCBwbnVtKTsKKwlpZiAocGFnZSAhPSBOVUxMKSB7CisJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CisJfQorCisJLyogU2V0IGJpdG1hcCBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJYmxvY2srKzsKKwlwbnVtID0gYmxvY2sgLyBibG9ja3NfcGVyX3BhZ2U7CisJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJaWYgKHBhZ2UgIT0gTlVMTCkgeworCQlDbGVhclBhZ2VVcHRvZGF0ZShwYWdlKTsKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogVXBkYXRlIGFuIGV4aXN0aW5nIGdyb3VwLgorICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciBvbmxpbmUgcmVzaXplCisgKi8KK3ZvaWQgZXh0NF9tYl91cGRhdGVfZ3JvdXBfaW5mbyhzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvICpncnAsIGV4dDRfZ3JwYmxrX3QgYWRkKQoreworCWdycC0+YmJfZnJlZSArPSBhZGQ7Cit9CisKIHN0YXRpYyBpbnQgZXh0NF9tYl9pbml0X2JhY2tlbmQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlleHQ0X2dyb3VwX3QgaTsKLQlpbnQgaiwgbGVuLCBtZXRhbGVuOworCWludCBtZXRhbGVuOwogCXN0cnVjdCBleHQ0X3NiX2luZm8gKnNiaSA9IEVYVDRfU0Ioc2IpOwotCWludCBudW1fbWV0YV9ncm91cF9pbmZvcyA9Ci0JCShzYmktPnNfZ3JvdXBzX2NvdW50ICsgRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKSA+PgotCQkJRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKTsKKwlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqZXMgPSBzYmktPnNfZXM7CisJaW50IG51bV9tZXRhX2dyb3VwX2luZm9zOworCWludCBudW1fbWV0YV9ncm91cF9pbmZvc19tYXg7CisJaW50IGFycmF5X3NpemU7CiAJc3RydWN0IGV4dDRfZ3JvdXBfaW5mbyAqKm1ldGFfZ3JvdXBfaW5mbzsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpkZXNjOwogCisJLyogVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJsb2NrcyB1c2VkIGJ5IEdEVCAqLworCW51bV9tZXRhX2dyb3VwX2luZm9zID0gKHNiaS0+c19ncm91cHNfY291bnQgKyBFWFQ0X0RFU0NfUEVSX0JMT0NLKHNiKSAtCisJCQkJMSkgPj4gRVhUNF9ERVNDX1BFUl9CTE9DS19CSVRTKHNiKTsKKworCS8qCisJICogVGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIGJsb2NrcyB1c2VkIGJ5IEdEVCBpbmNsdWRpbmcKKwkgKiB0aGUgbnVtYmVyIG9mIHJlc2VydmVkIGJsb2NrcyBmb3IgR0RULgorCSAqIFRoZSBzX2dyb3VwX2luZm8gYXJyYXkgaXMgYWxsb2NhdGVkIHdpdGggdGhpcyB2YWx1ZQorCSAqIHRvIGFsbG93IGEgY2xlYW4gb25saW5lIHJlc2l6ZSB3aXRob3V0IGEgY29tcGxleAorCSAqIG1hbmlwdWxhdGlvbiBvZiBwb2ludGVyLgorCSAqIFRoZSBkcmF3YmFjayBpcyB0aGUgdW51c2VkIG1lbW9yeSB3aGVuIG5vIHJlc2l6ZQorCSAqIG9jY3VycyBidXQgaXQncyB2ZXJ5IGxvdyBpbiB0ZXJtcyBvZiBwYWdlcworCSAqIChzZWUgY29tbWVudHMgYmVsb3cpCisJICogTmVlZCB0byBoYW5kbGUgdGhpcyBwcm9wZXJseSB3aGVuIE1FVEFfQkcgcmVzaXppbmcgaXMgYWxsb3dlZAorCSAqLworCW51bV9tZXRhX2dyb3VwX2luZm9zX21heCA9IG51bV9tZXRhX2dyb3VwX2luZm9zICsKKwkJCQlsZTE2X3RvX2NwdShlcy0+c19yZXNlcnZlZF9nZHRfYmxvY2tzKTsKKworCS8qCisJICogYXJyYXlfc2l6ZSBpcyB0aGUgc2l6ZSBvZiBzX2dyb3VwX2luZm8gYXJyYXkuIFdlIHJvdW5kIGl0CisJICogdG8gdGhlIG5leHQgcG93ZXIgb2YgdHdvIGJlY2F1c2UgdGhpcyBhcHByb3hpbWF0aW9uIGlzIGRvbmUKKwkgKiBpbnRlcm5hbGx5IGJ5IGttYWxsb2Mgc28gd2UgY2FuIGhhdmUgc29tZSBtb3JlIG1lbW9yeQorCSAqIGZvciBmcmVlIGhlcmUgKGUuZy4gbWF5IGJlIHVzZWQgZm9yIE1FVEFfQkcgcmVzaXplKS4KKwkgKi8KKwlhcnJheV9zaXplID0gMTsKKwl3aGlsZSAoYXJyYXlfc2l6ZSA8IHNpemVvZigqc2JpLT5zX2dyb3VwX2luZm8pICoKKwkgICAgICAgbnVtX21ldGFfZ3JvdXBfaW5mb3NfbWF4KQorCQlhcnJheV9zaXplID0gYXJyYXlfc2l6ZSA8PCAxOwogCS8qIEFuIDhUQiBmaWxlc3lzdGVtIHdpdGggNjQtYml0IHBvaW50ZXJzIHJlcXVpcmVzIGEgNDA5NiBieXRlCiAJICoga21hbGxvYy4gQSAxMjhrYiBtYWxsb2Mgc2hvdWxkIHN1ZmZpY2UgZm9yIGEgMjU2VEIgZmlsZXN5c3RlbS4KIAkgKiBTbyBhIHR3byBsZXZlbCBzY2hlbWUgc3VmZmljZXMgZm9yIG5vdy4gKi8KLQlzYmktPnNfZ3JvdXBfaW5mbyA9IGttYWxsb2Moc2l6ZW9mKCpzYmktPnNfZ3JvdXBfaW5mbykgKgotCQkJCSAgICBudW1fbWV0YV9ncm91cF9pbmZvcywgR0ZQX0tFUk5FTCk7CisJc2JpLT5zX2dyb3VwX2luZm8gPSBrbWFsbG9jKGFycmF5X3NpemUsIEdGUF9LRVJORUwpOwogCWlmIChzYmktPnNfZ3JvdXBfaW5mbyA9PSBOVUxMKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgYWxsb2NhdGUgYnVkZHkgbWV0YSBncm91cFxuIik7CiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjI1Niw2MyArMjQ0OCwxNSBAQAogCQlzYmktPnNfZ3JvdXBfaW5mb1tpXSA9IG1ldGFfZ3JvdXBfaW5mbzsKIAl9CiAKLQkvKgotCSAqIGNhbGN1bGF0ZSBuZWVkZWQgc2l6ZS4gaWYgY2hhbmdlIGJiX2NvdW50ZXJzIHNpemUsCi0JICogZG9uJ3QgZm9yZ2V0IGFib3V0IGV4dDRfbWJfZ2VuZXJhdGVfYnVkZHkoKQotCSAqLwotCWxlbiA9IHNpemVvZihzdHJ1Y3QgZXh0NF9ncm91cF9pbmZvKTsKLQlsZW4gKz0gc2l6ZW9mKHVuc2lnbmVkIHNob3J0KSAqIChzYi0+c19ibG9ja3NpemVfYml0cyArIDIpOwogCWZvciAoaSA9IDA7IGkgPCBzYmktPnNfZ3JvdXBzX2NvdW50OyBpKyspIHsKLQkJc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqZGVzYzsKLQotCQltZXRhX2dyb3VwX2luZm8gPQotCQkJc2JpLT5zX2dyb3VwX2luZm9baSA+PiBFWFQ0X0RFU0NfUEVSX0JMT0NLX0JJVFMoc2IpXTsKLQkJaiA9IGkgJiAoRVhUNF9ERVNDX1BFUl9CTE9DSyhzYikgLSAxKTsKLQotCQltZXRhX2dyb3VwX2luZm9bal0gPSBremFsbG9jKGxlbiwgR0ZQX0tFUk5FTCk7Ci0JCWlmIChtZXRhX2dyb3VwX2luZm9bal0gPT0gTlVMTCkgewotCQkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBjYW4ndCBhbGxvY2F0ZSBidWRkeSBtZW1cbiIpOwotCQkJZ290byBlcnJfZnJlZWJ1ZGR5OwotCQl9CiAJCWRlc2MgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBpLCBOVUxMKTsKIAkJaWYgKGRlc2MgPT0gTlVMTCkgewogCQkJcHJpbnRrKEtFUk5fRVJSCiAJCQkJIkVYVDQtZnM6IGNhbid0IHJlYWQgZGVzY3JpcHRvciAlbHVcbiIsIGkpOwotCQkJaSsrOwogCQkJZ290byBlcnJfZnJlZWJ1ZGR5OwogCQl9Ci0JCW1lbXNldChtZXRhX2dyb3VwX2luZm9bal0sIDAsIGxlbik7Ci0JCXNldF9iaXQoRVhUNF9HUk9VUF9JTkZPX05FRURfSU5JVF9CSVQsCi0JCQkmKG1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfc3RhdGUpKTsKLQotCQkvKgotCQkgKiBpbml0aWFsaXplIGJiX2ZyZWUgdG8gYmUgYWJsZSB0byBza2lwCi0JCSAqIGVtcHR5IGdyb3VwcyB3aXRob3V0IGluaXRpYWxpemF0aW9uCi0JCSAqLwotCQlpZiAoZGVzYy0+YmdfZmxhZ3MgJiBjcHVfdG9fbGUxNihFWFQ0X0JHX0JMT0NLX1VOSU5JVCkpIHsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfZnJlZSA9Ci0JCQkJZXh0NF9mcmVlX2Jsb2Nrc19hZnRlcl9pbml0KHNiLCBpLCBkZXNjKTsKLQkJfSBlbHNlIHsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfZnJlZSA9Ci0JCQkJbGUxNl90b19jcHUoZGVzYy0+YmdfZnJlZV9ibG9ja3NfY291bnQpOwotCQl9Ci0KLQkJSU5JVF9MSVNUX0hFQUQoJm1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfcHJlYWxsb2NfbGlzdCk7Ci0KLSNpZmRlZiBET1VCTEVfQ0hFQ0sKLQkJewotCQkJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKLQkJCW1ldGFfZ3JvdXBfaW5mb1tqXS0+YmJfYml0bWFwID0KLQkJCQlrbWFsbG9jKHNiLT5zX2Jsb2Nrc2l6ZSwgR0ZQX0tFUk5FTCk7Ci0JCQlCVUdfT04obWV0YV9ncm91cF9pbmZvW2pdLT5iYl9iaXRtYXAgPT0gTlVMTCk7Ci0JCQliaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBpKTsKLQkJCUJVR19PTihiaCA9PSBOVUxMKTsKLQkJCW1lbWNweShtZXRhX2dyb3VwX2luZm9bal0tPmJiX2JpdG1hcCwgYmgtPmJfZGF0YSwKLQkJCQkJc2ItPnNfYmxvY2tzaXplKTsKLQkJCXB1dF9iaChiaCk7Ci0JCX0KLSNlbmRpZgotCisJCWlmIChleHQ0X21iX2FkZF9ncm91cGluZm8oc2IsIGksIGRlc2MpICE9IDApCisJCQlnb3RvIGVycl9mcmVlYnVkZHk7CiAJfQogCiAJcmV0dXJuIDA7CkBAIC0yMzM2LDYgKzI0ODAsNyBAQAogCXVuc2lnbmVkIGk7CiAJdW5zaWduZWQgb2Zmc2V0OwogCXVuc2lnbmVkIG1heDsKKwlpbnQgcmV0OwogCiAJaWYgKCF0ZXN0X29wdChzYiwgTUJBTExPQykpCiAJCXJldHVybiAwOwpAQCAtMjM3MCwxMiArMjUxNSwxMiBAQAogCX0gd2hpbGUgKGkgPD0gc2ItPnNfYmxvY2tzaXplX2JpdHMgKyAxKTsKIAogCS8qIGluaXQgZmlsZSBmb3IgYnVkZHkgZGF0YSAqLwotCWkgPSBleHQ0X21iX2luaXRfYmFja2VuZChzYik7Ci0JaWYgKGkpIHsKKwlyZXQgPSBleHQ0X21iX2luaXRfYmFja2VuZChzYik7CisJaWYgKHJldCAhPSAwKSB7CiAJCWNsZWFyX29wdChzYmktPnNfbW91bnRfb3B0LCBNQkFMTE9DKTsKIAkJa2ZyZWUoc2JpLT5zX21iX29mZnNldHMpOwogCQlrZnJlZShzYmktPnNfbWJfbWF4cyk7Ci0JCXJldHVybiBpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXNwaW5fbG9ja19pbml0KCZzYmktPnNfbWRfbG9jayk7CkBAIC0yNTQ4LDggKzI2OTMsNyBAQAogCQlleHQ0X2xvY2tfZ3JvdXAoc2IsIG1kLT5ncm91cCk7CiAJCWZvciAoaSA9IDA7IGkgPCBtZC0+bnVtOyBpKyspIHsKIAkJCW1iX2RlYnVnKCIgJXUiLCBtZC0+YmxvY2tzW2ldKTsKLQkJCWVyciA9IG1iX2ZyZWVfYmxvY2tzKE5VTEwsICZlNGIsIG1kLT5ibG9ja3NbaV0sIDEpOwotCQkJQlVHX09OKGVyciAhPSAwKTsKKwkJCW1iX2ZyZWVfYmxvY2tzKE5VTEwsICZlNGIsIG1kLT5ibG9ja3NbaV0sIDEpOwogCQl9CiAJCW1iX2RlYnVnKCJcbiIpOwogCQlleHQ0X3VubG9ja19ncm91cChzYiwgbWQtPmdyb3VwKTsKQEAgLTI1NzUsMjUgKzI3MTksMjQgQEAKIAogCiAKLSNkZWZpbmUgTUJfUFJPQ19WQUxVRV9SRUFEKG5hbWUpCQkJCVwKLXN0YXRpYyBpbnQgZXh0NF9tYl9yZWFkXyMjbmFtZShjaGFyICpwYWdlLCBjaGFyICoqc3RhcnQsCVwKLQkJb2ZmX3Qgb2ZmLCBpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKQlcCisjZGVmaW5lIE1CX1BST0NfRk9QUyhuYW1lKQkJCQkJXAorc3RhdGljIGludCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCVwKIHsJCQkJCQkJCVwKLQlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBkYXRhOwkJCVwKLQlpbnQgbGVuOwkJCQkJCVwKLQkqZW9mID0gMTsJCQkJCQlcCi0JaWYgKG9mZiAhPSAwKQkJCQkJCVwKLQkJcmV0dXJuIDA7CQkJCQlcCi0JbGVuID0gc3ByaW50ZihwYWdlLCAiJWxkXG4iLCBzYmktPnNfbWJfIyNuYW1lKTsJCVwKLQkqc3RhcnQgPSBwYWdlOwkJCQkJCVwKLQlyZXR1cm4gbGVuOwkJCQkJCVwKLX0KLQotI2RlZmluZSBNQl9QUk9DX1ZBTFVFX1dSSVRFKG5hbWUpCQkJCVwKLXN0YXRpYyBpbnQgZXh0NF9tYl93cml0ZV8jI25hbWUoc3RydWN0IGZpbGUgKmZpbGUsCQlcCi0JCWNvbnN0IGNoYXIgX191c2VyICpidWYsIHVuc2lnbmVkIGxvbmcgY250LCB2b2lkICpkYXRhKQlcCisJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gbS0+cHJpdmF0ZTsJCQlcCisJCQkJCQkJCVwKKwlzZXFfcHJpbnRmKG0sICIlbGRcbiIsIHNiaS0+c19tYl8jI25hbWUpOwkJXAorCXJldHVybiAwOwkJCQkJCVwKK30JCQkJCQkJCVwKKwkJCQkJCQkJXAorc3RhdGljIGludCBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSlcCiB7CQkJCQkJCQlcCi0Jc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gZGF0YTsJCQlcCisJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUsIGV4dDRfbWJfIyNuYW1lIyNfcHJvY19zaG93LCBQREUoaW5vZGUpLT5kYXRhKTtcCit9CQkJCQkJCQlcCisJCQkJCQkJCVwKK3N0YXRpYyBzc2l6ZV90IGV4dDRfbWJfIyNuYW1lIyNfcHJvY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwJXAorCQljb25zdCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCVwKK3sJCQkJCQkJCVwKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBQREUoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSktPmRhdGE7XAogCWNoYXIgc3RyWzMyXTsJCQkJCQlcCiAJbG9uZyB2YWx1ZTsJCQkJCQlcCiAJaWYgKGNudCA+PSBzaXplb2Yoc3RyKSkJCQkJCVwKQEAgLTI2MDUsMzEgKzI3NDgsMzIgQEAKIAkJcmV0dXJuIC1FUkFOR0U7CQkJCQlcCiAJc2JpLT5zX21iXyMjbmFtZSA9IHZhbHVlOwkJCQlcCiAJcmV0dXJuIGNudDsJCQkJCQlcCi19Cit9CQkJCQkJCQlcCisJCQkJCQkJCVwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGV4dDRfbWJfIyNuYW1lIyNfcHJvY19mb3BzID0gewlcCisJLm93bmVyCQk9IFRISVNfTU9EVUxFLAkJCQlcCisJLm9wZW4JCT0gZXh0NF9tYl8jI25hbWUjI19wcm9jX29wZW4sCQlcCisJLnJlYWQJCT0gc2VxX3JlYWQsCQkJCVwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywJCQkJXAorCS5yZWxlYXNlCT0gc2luZ2xlX3JlbGVhc2UsCQkJXAorCS53cml0ZQkJPSBleHQ0X21iXyMjbmFtZSMjX3Byb2Nfd3JpdGUsCQlcCit9OwogCi1NQl9QUk9DX1ZBTFVFX1JFQUQoc3RhdHMpOwotTUJfUFJPQ19WQUxVRV9XUklURShzdGF0cyk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQobWF4X3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9XUklURShtYXhfdG9fc2Nhbik7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQobWluX3RvX3NjYW4pOwotTUJfUFJPQ19WQUxVRV9XUklURShtaW5fdG9fc2Nhbik7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQob3JkZXIyX3JlcXMpOwotTUJfUFJPQ19WQUxVRV9XUklURShvcmRlcjJfcmVxcyk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQoc3RyZWFtX3JlcXVlc3QpOwotTUJfUFJPQ19WQUxVRV9XUklURShzdHJlYW1fcmVxdWVzdCk7Ci1NQl9QUk9DX1ZBTFVFX1JFQUQoZ3JvdXBfcHJlYWxsb2MpOwotTUJfUFJPQ19WQUxVRV9XUklURShncm91cF9wcmVhbGxvYyk7CitNQl9QUk9DX0ZPUFMoc3RhdHMpOworTUJfUFJPQ19GT1BTKG1heF90b19zY2FuKTsKK01CX1BST0NfRk9QUyhtaW5fdG9fc2Nhbik7CitNQl9QUk9DX0ZPUFMob3JkZXIyX3JlcXMpOworTUJfUFJPQ19GT1BTKHN0cmVhbV9yZXF1ZXN0KTsKK01CX1BST0NfRk9QUyhncm91cF9wcmVhbGxvYyk7CiAKICNkZWZpbmUJTUJfUFJPQ19IQU5ETEVSKG5hbWUsIHZhcikJCQkJCVwKIGRvIHsJCQkJCQkJCQlcCi0JcHJvYyA9IGNyZWF0ZV9wcm9jX2VudHJ5KG5hbWUsIG1vZGUsIHNiaS0+c19tYl9wcm9jKTsJCVwKKwlwcm9jID0gcHJvY19jcmVhdGVfZGF0YShuYW1lLCBtb2RlLCBzYmktPnNfbWJfcHJvYywJCVwKKwkJCQkmZXh0NF9tYl8jI3ZhciMjX3Byb2NfZm9wcywgc2JpKTsJXAogCWlmIChwcm9jID09IE5VTEwpIHsJCQkJCQlcCiAJCXByaW50ayhLRVJOX0VSUiAiRVhUNC1mczogY2FuJ3QgdG8gY3JlYXRlICVzXG4iLCBuYW1lKTsJXAogCQlnb3RvIGVycl9vdXQ7CQkJCQkJXAogCX0JCQkJCQkJCVwKLQlwcm9jLT5kYXRhID0gc2JpOwkJCQkJCVwKLQlwcm9jLT5yZWFkX3Byb2MgID0gZXh0NF9tYl9yZWFkXyMjdmFyIDsJCQkJXAotCXByb2MtPndyaXRlX3Byb2MgPSBleHQ0X21iX3dyaXRlXyMjdmFyOwkJCQlcCiB9IHdoaWxlICgwKQogCiBzdGF0aWMgaW50IGV4dDRfbWJfaW5pdF9wZXJfZGV2X3Byb2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTI2MzksNiArMjc4MywxMCBAQAogCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcHJvYzsKIAljaGFyIGRldm5hbWVbNjRdOwogCisJaWYgKHByb2Nfcm9vdF9leHQ0ID09IE5VTEwpIHsKKwkJc2JpLT5zX21iX3Byb2MgPSBOVUxMOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAJYmRldm5hbWUoc2ItPnNfYmRldiwgZGV2bmFtZSk7CiAJc2JpLT5zX21iX3Byb2MgPSBwcm9jX21rZGlyKGRldm5hbWUsIHByb2Nfcm9vdF9leHQ0KTsKIApAQCAtMjc0NSwxMSArMjg5Myw5IEBACiAJc2JpID0gRVhUNF9TQihzYik7CiAJZXMgPSBzYmktPnNfZXM7CiAKLQlleHQ0X2RlYnVnKCJ1c2luZyBibG9jayBncm91cCAlbHUoJWQpXG4iLCBhYy0+YWNfYl9leC5mZV9ncm91cCwKLQkJCWdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQpOwogCiAJZXJyID0gLUVJTzsKLQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgYWMtPmFjX2JfZXguZmVfZ3JvdXApOworCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGFjLT5hY19iX2V4LmZlX2dyb3VwKTsKIAlpZiAoIWJpdG1hcF9iaCkKIAkJZ290byBvdXRfZXJyOwogCkBAIC0yNzYyLDYgKzI5MDgsOSBAQAogCWlmICghZ2RwKQogCQlnb3RvIG91dF9lcnI7CiAKKwlleHQ0X2RlYnVnKCJ1c2luZyBibG9jayBncm91cCAlbHUoJWQpXG4iLCBhYy0+YWNfYl9leC5mZV9ncm91cCwKKwkJCWdkcC0+YmdfZnJlZV9ibG9ja3NfY291bnQpOworCiAJZXJyID0gZXh0NF9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MoaGFuZGxlLCBnZHBfYmgpOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X2VycjsKQEAgLTI4MTUsNyArMjk2NCwyMyBAQAogCWxlMTZfYWRkX2NwdSgmZ2RwLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCwgLWFjLT5hY19iX2V4LmZlX2xlbik7CiAJZ2RwLT5iZ19jaGVja3N1bSA9IGV4dDRfZ3JvdXBfZGVzY19jc3VtKHNiaSwgYWMtPmFjX2JfZXguZmVfZ3JvdXAsIGdkcCk7CiAJc3Bpbl91bmxvY2soc2JfYmdsX2xvY2soc2JpLCBhYy0+YWNfYl9leC5mZV9ncm91cCkpOwotCXBlcmNwdV9jb3VudGVyX3N1Yigmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlciwgYWMtPmFjX2JfZXguZmVfbGVuKTsKKworCS8qCisJICogZnJlZSBibG9ja3MgYWNjb3VudCBoYXMgYWxyZWFkeSBiZSByZWR1Y2VkL3Jlc2VydmVkCisJICogYXQgd3JpdGVfYmVnaW4oKSB0aW1lIGZvciBkZWxheWVkIGFsbG9jYXRpb24KKwkgKiBkbyBub3QgZG91YmxlIGFjY291bnRpbmcKKwkgKi8KKwlpZiAoIShhYy0+YWNfZmxhZ3MgJiBFWFQ0X01CX0RFTEFMTE9DX1JFU0VSVkVEKSkKKwkJcGVyY3B1X2NvdW50ZXJfc3ViKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLAorCQkJCQlhYy0+YWNfYl9leC5mZV9sZW4pOworCisJaWYgKHNiaS0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4KSB7CisJCWV4dDRfZ3JvdXBfdCBmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwKKwkJCQkJCQkgIGFjLT5hY19iX2V4LmZlX2dyb3VwKTsKKwkJc3Bpbl9sb2NrKHNiX2JnbF9sb2NrKHNiaSwgZmxleF9ncm91cCkpOworCQlzYmktPnNfZmxleF9ncm91cHNbZmxleF9ncm91cF0uZnJlZV9ibG9ja3MgLT0gYWMtPmFjX2JfZXguZmVfbGVuOworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CiAKIAllcnIgPSBleHQ0X2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoaGFuZGxlLCBiaXRtYXBfYmgpOwogCWlmIChlcnIpCkBAIC0zMDk0LDggKzMyNTksNyBAQAogc3RhdGljIHZvaWQgZXh0NF9tYl91c2VfZ3JvdXBfcGEoc3RydWN0IGV4dDRfYWxsb2NhdGlvbl9jb250ZXh0ICphYywKIAkJCQlzdHJ1Y3QgZXh0NF9wcmVhbGxvY19zcGFjZSAqcGEpCiB7Ci0JdW5zaWduZWQgbGVuID0gYWMtPmFjX29fZXguZmVfbGVuOwotCisJdW5zaWduZWQgaW50IGxlbiA9IGFjLT5hY19vX2V4LmZlX2xlbjsKIAlleHQ0X2dldF9ncm91cF9ub19hbmRfb2Zmc2V0KGFjLT5hY19zYiwgcGEtPnBhX3BzdGFydCwKIAkJCQkJJmFjLT5hY19iX2V4LmZlX2dyb3VwLAogCQkJCQkmYWMtPmFjX2JfZXguZmVfc3RhcnQpOwpAQCAtMzQ3Myw4ICszNjM3LDYgQEAKIAkJaWYgKGJpdCA+PSBlbmQpCiAJCQlicmVhazsKIAkJbmV4dCA9IG1iX2ZpbmRfbmV4dF9iaXQoYml0bWFwX2JoLT5iX2RhdGEsIGVuZCwgYml0KTsKLQkJaWYgKG5leHQgPiBlbmQpCi0JCQluZXh0ID0gZW5kOwogCQlzdGFydCA9IGdyb3VwICogRVhUNF9CTE9DS1NfUEVSX0dST1VQKHNiKSArIGJpdCArCiAJCQkJbGUzMl90b19jcHUoc2JpLT5zX2VzLT5zX2ZpcnN0X2RhdGFfYmxvY2spOwogCQltYl9kZWJ1ZygiICAgIGZyZWUgcHJlYWxsb2NhdGVkICV1LyV1IGluIGdyb3VwICV1XG4iLApAQCAtMzU2OSw3ICszNzMxLDcgQEAKIAlpZiAobGlzdF9lbXB0eSgmZ3JwLT5iYl9wcmVhbGxvY19saXN0KSkKIAkJcmV0dXJuIDA7CiAKLQliaXRtYXBfYmggPSByZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOworCWJpdG1hcF9iaCA9IGV4dDRfcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKIAlpZiAoYml0bWFwX2JoID09IE5VTEwpIHsKIAkJLyogZXJyb3IgaGFuZGxpbmcgaGVyZSAqLwogCQlleHQ0X21iX3JlbGVhc2VfZGVzYygmZTRiKTsKQEAgLTM3NDMsNyArMzkwNSw3IEBACiAJCWVyciA9IGV4dDRfbWJfbG9hZF9idWRkeShzYiwgZ3JvdXAsICZlNGIpOwogCQlCVUdfT04oZXJyICE9IDApOyAvKiBlcnJvciBoYW5kbGluZyBoZXJlICovCiAKLQkJYml0bWFwX2JoID0gcmVhZF9ibG9ja19iaXRtYXAoc2IsIGdyb3VwKTsKKwkJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgZ3JvdXApOwogCQlpZiAoYml0bWFwX2JoID09IE5VTEwpIHsKIAkJCS8qIGVycm9yIGhhbmRsaW5nIGhlcmUgKi8KIAkJCWV4dDRfbWJfcmVsZWFzZV9kZXNjKCZlNGIpOwpAQCAtNDAxMSwxMCArNDE3MywyMSBAQAogCXNiaSA9IEVYVDRfU0Ioc2IpOwogCiAJaWYgKCF0ZXN0X29wdChzYiwgTUJBTExPQykpIHsKLQkJYmxvY2sgPSBleHQ0X25ld19ibG9ja3Nfb2xkKGhhbmRsZSwgYXItPmlub2RlLCBhci0+Z29hbCwKKwkJYmxvY2sgPSBleHQ0X29sZF9uZXdfYmxvY2tzKGhhbmRsZSwgYXItPmlub2RlLCBhci0+Z29hbCwKIAkJCQkJICAgICYoYXItPmxlbiksIGVycnApOwogCQlyZXR1cm4gYmxvY2s7CiAJfQorCWlmICghRVhUNF9JKGFyLT5pbm9kZSktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZykgeworCQkvKgorCQkgKiBXaXRoIGRlbGFsbG9jIHdlIGFscmVhZHkgcmVzZXJ2ZWQgdGhlIGJsb2NrcworCQkgKi8KKwkJYXItPmxlbiA9IGV4dDRfaGFzX2ZyZWVfYmxvY2tzKHNiaSwgYXItPmxlbik7CisJfQorCisJaWYgKGFyLT5sZW4gPT0gMCkgeworCQkqZXJycCA9IC1FTk9TUEM7CisJCXJldHVybiAwOworCX0KIAogCXdoaWxlIChhci0+bGVuICYmIERRVU9UX0FMTE9DX0JMT0NLKGFyLT5pbm9kZSwgYXItPmxlbikpIHsKIAkJYXItPmZsYWdzIHw9IEVYVDRfTUJfSElOVF9OT1BSRUFMTE9DOwpAQCAtNDAyNiwxMCArNDE5OSwxNCBAQAogCX0KIAlpbnF1b3RhID0gYXItPmxlbjsKIAorCWlmIChFWFQ0X0koYXItPmlub2RlKS0+aV9kZWxhbGxvY19yZXNlcnZlZF9mbGFnKQorCQlhci0+ZmxhZ3MgfD0gRVhUNF9NQl9ERUxBTExPQ19SRVNFUlZFRDsKKwogCWFjID0ga21lbV9jYWNoZV9hbGxvYyhleHQ0X2FjX2NhY2hlcCwgR0ZQX05PRlMpOwogCWlmICghYWMpIHsKKwkJYXItPmxlbiA9IDA7CiAJCSplcnJwID0gLUVOT01FTTsKLQkJcmV0dXJuIDA7CisJCWdvdG8gb3V0MTsKIAl9CiAKIAlleHQ0X21iX3BvbGxfbmV3X3RyYW5zYWN0aW9uKHNiLCBoYW5kbGUpOwpAQCAtNDAzNywxMiArNDIxNCwxMSBAQAogCSplcnJwID0gZXh0NF9tYl9pbml0aWFsaXplX2NvbnRleHQoYWMsIGFyKTsKIAlpZiAoKmVycnApIHsKIAkJYXItPmxlbiA9IDA7Ci0JCWdvdG8gb3V0OworCQlnb3RvIG91dDI7CiAJfQogCiAJYWMtPmFjX29wID0gRVhUNF9NQl9ISVNUT1JZX1BSRUFMTE9DOwogCWlmICghZXh0NF9tYl91c2VfcHJlYWxsb2NhdGVkKGFjKSkgewotCiAJCWFjLT5hY19vcCA9IEVYVDRfTUJfSElTVE9SWV9BTExPQzsKIAkJZXh0NF9tYl9ub3JtYWxpemVfcmVxdWVzdChhYywgYXIpOwogcmVwZWF0OgpAQCAtNDA4NSwxMSArNDI2MSwxMiBAQAogCiAJZXh0NF9tYl9yZWxlYXNlX2NvbnRleHQoYWMpOwogCi1vdXQ6CitvdXQyOgorCWttZW1fY2FjaGVfZnJlZShleHQ0X2FjX2NhY2hlcCwgYWMpOworb3V0MToKIAlpZiAoYXItPmxlbiA8IGlucXVvdGEpCiAJCURRVU9UX0ZSRUVfQkxPQ0soYXItPmlub2RlLCBpbnF1b3RhIC0gYXItPmxlbik7CiAKLQlrbWVtX2NhY2hlX2ZyZWUoZXh0NF9hY19jYWNoZXAsIGFjKTsKIAlyZXR1cm4gYmxvY2s7CiB9CiBzdGF0aWMgdm9pZCBleHQ0X21iX3BvbGxfbmV3X3RyYW5zYWN0aW9uKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCkBAIC00MjQyLDcgKzQ0MTksNyBAQAogCQlvdmVyZmxvdyA9IGJpdCArIGNvdW50IC0gRVhUNF9CTE9DS1NfUEVSX0dST1VQKHNiKTsKIAkJY291bnQgLT0gb3ZlcmZsb3c7CiAJfQotCWJpdG1hcF9iaCA9IHJlYWRfYmxvY2tfYml0bWFwKHNiLCBibG9ja19ncm91cCk7CisJYml0bWFwX2JoID0gZXh0NF9yZWFkX2Jsb2NrX2JpdG1hcChzYiwgYmxvY2tfZ3JvdXApOwogCWlmICghYml0bWFwX2JoKQogCQlnb3RvIGVycm9yX3JldHVybjsKIAlnZHAgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCBibG9ja19ncm91cCwgJmdkX2JoKTsKQEAgLTQzMDksMTAgKzQ0ODYsOSBAQAogCQlleHQ0X21iX2ZyZWVfbWV0YWRhdGEoaGFuZGxlLCAmZTRiLCBibG9ja19ncm91cCwgYml0LCBjb3VudCk7CiAJfSBlbHNlIHsKIAkJZXh0NF9sb2NrX2dyb3VwKHNiLCBibG9ja19ncm91cCk7Ci0JCWVyciA9IG1iX2ZyZWVfYmxvY2tzKGlub2RlLCAmZTRiLCBiaXQsIGNvdW50KTsKKwkJbWJfZnJlZV9ibG9ja3MoaW5vZGUsICZlNGIsIGJpdCwgY291bnQpOwogCQlleHQ0X21iX3JldHVybl90b19wcmVhbGxvY2F0aW9uKGlub2RlLCAmZTRiLCBibG9jaywgY291bnQpOwogCQlleHQ0X3VubG9ja19ncm91cChzYiwgYmxvY2tfZ3JvdXApOwotCQlCVUdfT04oZXJyICE9IDApOwogCX0KIAogCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGJsb2NrX2dyb3VwKSk7CkBAIC00MzIxLDYgKzQ0OTcsMTMgQEAKIAlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGJsb2NrX2dyb3VwKSk7CiAJcGVyY3B1X2NvdW50ZXJfYWRkKCZzYmktPnNfZnJlZWJsb2Nrc19jb3VudGVyLCBjb3VudCk7CiAKKwlpZiAoc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXAgPSBleHQ0X2ZsZXhfZ3JvdXAoc2JpLCBibG9ja19ncm91cCk7CisJCXNwaW5fbG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwkJc2JpLT5zX2ZsZXhfZ3JvdXBzW2ZsZXhfZ3JvdXBdLmZyZWVfYmxvY2tzICs9IGNvdW50OworCQlzcGluX3VubG9jayhzYl9iZ2xfbG9jayhzYmksIGZsZXhfZ3JvdXApKTsKKwl9CisKIAlleHQ0X21iX3JlbGVhc2VfZGVzYygmZTRiKTsKIAogCSpmcmVlZCArPSBjb3VudDsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvbmFtZWkuYyBiL2ZzL2V4dDQvbmFtZWkuYwppbmRleCBhYjE2YmVhLi4zODdhZDk4IDEwMDY0NAotLS0gYS9mcy9leHQ0L25hbWVpLmMKKysrIGIvZnMvZXh0NC9uYW1laS5jCkBAIC0xODMsNiArMTgzLDE2IEBACiAJCQkgICAgIHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogCiAvKgorICogcCBpcyBhdCBsZWFzdCA2IGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHBhZ2UKKyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqCitleHQ0X25leHRfZW50cnkoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKnApCit7CisJcmV0dXJuIChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKSgoY2hhciAqKXAgKworCQlleHQ0X3JlY19sZW5fZnJvbV9kaXNrKHAtPnJlY19sZW4pKTsKK30KKworLyoKICAqIEZ1dHVyZTogdXNlIGhpZ2ggZm91ciBiaXRzIG9mIGJsb2NrIGZvciBjb2FsZXNjZS1vbi1kZWxldGUgZmxhZ3MKICAqIE1hc2sgdGhlbSBvZmYgZm9yIG5vdy4KICAqLwpAQCAtMjMxLDEzICsyNDEsMTMgQEAKIHsKIAl1bnNpZ25lZCBlbnRyeV9zcGFjZSA9IGRpci0+aV9zYi0+c19ibG9ja3NpemUgLSBFWFQ0X0RJUl9SRUNfTEVOKDEpIC0KIAkJRVhUNF9ESVJfUkVDX0xFTigyKSAtIGluZm9zaXplOwotCXJldHVybiAwPyAyMDogZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKKwlyZXR1cm4gZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBkeF9ub2RlX2xpbWl0IChzdHJ1Y3QgaW5vZGUgKmRpcikKIHsKIAl1bnNpZ25lZCBlbnRyeV9zcGFjZSA9IGRpci0+aV9zYi0+c19ibG9ja3NpemUgLSBFWFQ0X0RJUl9SRUNfTEVOKDApOwotCXJldHVybiAwPyAyMjogZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKKwlyZXR1cm4gZW50cnlfc3BhY2UgLyBzaXplb2Yoc3RydWN0IGR4X2VudHJ5KTsKIH0KIAogLyoKQEAgLTU1NCwxNSArNTY0LDYgQEAKIAogCiAvKgotICogcCBpcyBhdCBsZWFzdCA2IGJ5dGVzIGJlZm9yZSB0aGUgZW5kIG9mIHBhZ2UKLSAqLwotc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqZXh0NF9uZXh0X2VudHJ5KHN0cnVjdCBleHQ0X2Rpcl9lbnRyeV8yICpwKQotewotCXJldHVybiAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikoKGNoYXIgKilwICsKLQkJZXh0NF9yZWNfbGVuX2Zyb21fZGlzayhwLT5yZWNfbGVuKSk7Ci19Ci0KLS8qCiAgKiBUaGlzIGZ1bmN0aW9uIGZpbGxzIGEgcmVkLWJsYWNrIHRyZWUgd2l0aCBpbmZvcm1hdGlvbiBmcm9tIGEKICAqIGRpcmVjdG9yeSBibG9jay4gIEl0IHJldHVybnMgdGhlIG51bWJlciBkaXJlY3RvcnkgZW50cmllcyBsb2FkZWQKICAqIGludG8gdGhlIHRyZWUuICBJZiB0aGVyZSBpcyBhbiBlcnJvciBpdCBpcyByZXR1cm5lZCBpbiBlcnIuCkBAIC05OTMsMTkgKzk5NCwyMSBAQAogCQlkZSA9IChzdHJ1Y3QgZXh0NF9kaXJfZW50cnlfMiAqKSBiaC0+Yl9kYXRhOwogCQl0b3AgPSAoc3RydWN0IGV4dDRfZGlyX2VudHJ5XzIgKikgKChjaGFyICopIGRlICsgc2ItPnNfYmxvY2tzaXplIC0KIAkJCQkgICAgICAgRVhUNF9ESVJfUkVDX0xFTigwKSk7Ci0JCWZvciAoOyBkZSA8IHRvcDsgZGUgPSBleHQ0X25leHRfZW50cnkoZGUpKQotCQlpZiAoZXh0NF9tYXRjaCAobmFtZWxlbiwgbmFtZSwgZGUpKSB7Ci0JCQlpZiAoIWV4dDRfY2hlY2tfZGlyX2VudHJ5KCJleHQ0X2ZpbmRfZW50cnkiLAotCQkJCQkJICBkaXIsIGRlLCBiaCwKLQkJCQkgIChibG9jazw8RVhUNF9CTE9DS19TSVpFX0JJVFMoc2IpKQotCQkJCQkgICsoKGNoYXIgKilkZSAtIGJoLT5iX2RhdGEpKSkgewotCQkJCWJyZWxzZSAoYmgpOworCQlmb3IgKDsgZGUgPCB0b3A7IGRlID0gZXh0NF9uZXh0X2VudHJ5KGRlKSkgeworCQkJaW50IG9mZiA9IChibG9jayA8PCBFWFQ0X0JMT0NLX1NJWkVfQklUUyhzYikpCisJCQkJICArICgoY2hhciAqKSBkZSAtIGJoLT5iX2RhdGEpOworCisJCQlpZiAoIWV4dDRfY2hlY2tfZGlyX2VudHJ5KF9fZnVuY19fLCBkaXIsIGRlLCBiaCwgb2ZmKSkgeworCQkJCWJyZWxzZShiaCk7CiAJCQkJKmVyciA9IEVSUl9CQURfRFhfRElSOwogCQkJCWdvdG8gZXJyb3V0OwogCQkJfQotCQkJKnJlc19kaXIgPSBkZTsKLQkJCWR4X3JlbGVhc2UgKGZyYW1lcyk7Ci0JCQlyZXR1cm4gYmg7CisKKwkJCWlmIChleHQ0X21hdGNoKG5hbWVsZW4sIG5hbWUsIGRlKSkgeworCQkJCSpyZXNfZGlyID0gZGU7CisJCQkJZHhfcmVsZWFzZShmcmFtZXMpOworCQkJCXJldHVybiBiaDsKKwkJCX0KIAkJfQogCQlicmVsc2UgKGJoKTsKIAkJLyogQ2hlY2sgdG8gc2VlIGlmIHdlIHNob3VsZCBjb250aW51ZSB0byBzZWFyY2ggKi8KZGlmZiAtLWdpdCBhL2ZzL2V4dDQvcmVzaXplLmMgYi9mcy9leHQ0L3Jlc2l6ZS5jCmluZGV4IDlmMDg2YTYuLmYwMDBmYmUgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvcmVzaXplLmMKKysrIGIvZnMvZXh0NC9yZXNpemUuYwpAQCAtNTYzLDcgKzU2Myw4IEBACiAJfQogCiAJYmxrID0gRVhUNF9TQihzYiktPnNfc2JoLT5iX2Jsb2NrbnIgKyAxICsgRVhUNF9TQihzYiktPnNfZ2RiX2NvdW50OwotCWRhdGEgPSAoX19sZTMyICopZGluZC0+Yl9kYXRhICsgRVhUNF9TQihzYiktPnNfZ2RiX2NvdW50OworCWRhdGEgPSAoX19sZTMyICopZGluZC0+Yl9kYXRhICsgKEVYVDRfU0Ioc2IpLT5zX2dkYl9jb3VudCAlCisJCQkJCSBFWFQ0X0FERFJfUEVSX0JMT0NLKHNiKSk7CiAJZW5kID0gKF9fbGUzMiAqKWRpbmQtPmJfZGF0YSArIEVYVDRfQUREUl9QRVJfQkxPQ0soc2IpOwogCiAJLyogR2V0IGVhY2ggcmVzZXJ2ZWQgcHJpbWFyeSBHRFQgYmxvY2sgYW5kIHZlcmlmeSBpdCBob2xkcyBiYWNrdXBzICovCkBAIC04NTQsNyArODU1LDggQEAKIAkgKi8KIAogCS8qIFVwZGF0ZSBncm91cCBkZXNjcmlwdG9yIGJsb2NrIGZvciBuZXcgZ3JvdXAgKi8KLQlnZHAgPSAoc3RydWN0IGV4dDRfZ3JvdXBfZGVzYyAqKXByaW1hcnktPmJfZGF0YSArIGdkYl9vZmY7CisJZ2RwID0gKHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKikoKGNoYXIgKilwcmltYXJ5LT5iX2RhdGEgKworCQkJCQkgZ2RiX29mZiAqIEVYVDRfREVTQ19TSVpFKHNiKSk7CiAKIAlleHQ0X2Jsb2NrX2JpdG1hcF9zZXQoc2IsIGdkcCwgaW5wdXQtPmJsb2NrX2JpdG1hcCk7IC8qIExWIEZJWE1FICovCiAJZXh0NF9pbm9kZV9iaXRtYXBfc2V0KHNiLCBnZHAsIGlucHV0LT5pbm9kZV9iaXRtYXApOyAvKiBMViBGSVhNRSAqLwpAQCAtODY0LDYgKzg2NiwxNSBAQAogCWdkcC0+YmdfY2hlY2tzdW0gPSBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzYmksIGlucHV0LT5ncm91cCwgZ2RwKTsKIAogCS8qCisJICogV2UgY2FuIGFsbG9jYXRlIG1lbW9yeSBmb3IgbWJfYWxsb2MgYmFzZWQgb24gdGhlIG5ldyBncm91cAorCSAqIGRlc2NyaXB0b3IKKwkgKi8KKwlpZiAodGVzdF9vcHQoc2IsIE1CQUxMT0MpKSB7CisJCWVyciA9IGV4dDRfbWJfYWRkX21vcmVfZ3JvdXBpbmZvKHNiLCBpbnB1dC0+Z3JvdXAsIGdkcCk7CisJCWlmIChlcnIpCisJCQlnb3RvIGV4aXRfam91cm5hbDsKKwl9CisJLyoKIAkgKiBNYWtlIHRoZSBuZXcgYmxvY2tzIGFuZCBpbm9kZXMgdmFsaWQgbmV4dC4gIFdlIGRvIHRoaXMgYmVmb3JlCiAJICogaW5jcmVhc2luZyB0aGUgZ3JvdXAgY291bnQgc28gdGhhdCBvbmNlIHRoZSBncm91cCBpcyBlbmFibGVkLAogCSAqIGFsbCBvZiBpdHMgYmxvY2tzIGFuZCBpbm9kZXMgYXJlIGFscmVhZHkgdmFsaWQuCkBAIC05NTUsNiArOTY2LDggQEAKIAloYW5kbGVfdCAqaGFuZGxlOwogCWludCBlcnI7CiAJdW5zaWduZWQgbG9uZyBmcmVlZF9ibG9ja3M7CisJZXh0NF9ncm91cF90IGdyb3VwOworCXN0cnVjdCBleHQ0X2dyb3VwX2luZm8gKmdycDsKIAogCS8qIFdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgbG9ja2luZyB3cnQgb3RoZXIgcmVzaXplcnMganVzdAogCSAqIHlldDogd2UncmUgZ29pbmcgdG8gcmV2YWxpZGF0ZSBlcy0+c19ibG9ja3NfY291bnQgYWZ0ZXIKQEAgLTk4Niw3ICs5OTksNyBAQAogCX0KIAogCS8qIEhhbmRsZSB0aGUgcmVtYWluaW5nIGJsb2NrcyBpbiB0aGUgbGFzdCBncm91cCBvbmx5LiAqLwotCWV4dDRfZ2V0X2dyb3VwX25vX2FuZF9vZmZzZXQoc2IsIG9fYmxvY2tzX2NvdW50LCBOVUxMLCAmbGFzdCk7CisJZXh0NF9nZXRfZ3JvdXBfbm9fYW5kX29mZnNldChzYiwgb19ibG9ja3NfY291bnQsICZncm91cCwgJmxhc3QpOwogCiAJaWYgKGxhc3QgPT0gMCkgewogCQlleHQ0X3dhcm5pbmcoc2IsIF9fZnVuY19fLApAQCAtMTA1OCw2ICsxMDcxLDQ1IEBACiAJCSAgIG9fYmxvY2tzX2NvdW50ICsgYWRkKTsKIAlpZiAoKGVyciA9IGV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSkpKQogCQlnb3RvIGV4aXRfcHV0OworCisJLyoKKwkgKiBNYXJrIG1iYWxsb2MgcGFnZXMgYXMgbm90IHVwIHRvIGRhdGUgc28gdGhhdCB0aGV5IHdpbGwgYmUgdXBkYXRlZAorCSAqIG5leHQgdGltZSB0aGV5IGFyZSBsb2FkZWQgYnkgZXh0NF9tYl9sb2FkX2J1ZGR5LgorCSAqLworCWlmICh0ZXN0X29wdChzYiwgTUJBTExPQykpIHsKKwkJc3RydWN0IGV4dDRfc2JfaW5mbyAqc2JpID0gRVhUNF9TQihzYik7CisJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBzYmktPnNfYnVkZHlfY2FjaGU7CisJCWludCBibG9ja3NfcGVyX3BhZ2U7CisJCWludCBibG9jazsKKwkJaW50IHBudW07CisJCXN0cnVjdCBwYWdlICpwYWdlOworCisJCS8qIFNldCBidWRkeSBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJCWJsb2Nrc19wZXJfcGFnZSA9IFBBR0VfQ0FDSEVfU0laRSAvIHNiLT5zX2Jsb2Nrc2l6ZTsKKwkJYmxvY2sgPSBncm91cCAqIDI7CisJCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwkJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJCWlmIChwYWdlICE9IE5VTEwpIHsKKwkJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCQl9CisKKwkJLyogU2V0IGJpdG1hcCBwYWdlIGFzIG5vdCB1cCB0byBkYXRlICovCisJCWJsb2NrKys7CisJCXBudW0gPSBibG9jayAvIGJsb2Nrc19wZXJfcGFnZTsKKwkJcGFnZSA9IGZpbmRfZ2V0X3BhZ2UoaW5vZGUtPmlfbWFwcGluZywgcG51bSk7CisJCWlmIChwYWdlICE9IE5VTEwpIHsKKwkJCUNsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpOworCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCQl9CisKKwkJLyogR2V0IHRoZSBpbmZvIG9uIHRoZSBsYXN0IGdyb3VwICovCisJCWdycCA9IGV4dDRfZ2V0X2dyb3VwX2luZm8oc2IsIGdyb3VwKTsKKworCQkvKiBVcGRhdGUgZnJlZSBibG9ja3MgaW4gZ3JvdXAgaW5mbyAqLworCQlleHQ0X21iX3VwZGF0ZV9ncm91cF9pbmZvKGdycCwgYWRkKTsKKwl9CisKIAlpZiAodGVzdF9vcHQoc2IsIERFQlVHKSkKIAkJcHJpbnRrKEtFUk5fREVCVUcgIkVYVDQtZnM6IGV4dGVuZGVkIGdyb3VwIHRvICVsbHUgYmxvY2tzXG4iLAogCQkgICAgICAgZXh0NF9ibG9ja3NfY291bnQoZXMpKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvc3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCAwOWQ5MzU5Li4xY2IzNzFkIDEwMDY0NAotLS0gYS9mcy9leHQ0L3N1cGVyLmMKKysrIGIvZnMvZXh0NC9zdXBlci5jCkBAIC01MDYsNiArNTA2LDcgQEAKIAlleHQ0X2V4dF9yZWxlYXNlKHNiKTsKIAlleHQ0X3hhdHRyX3B1dF9zdXBlcihzYik7CiAJamJkMl9qb3VybmFsX2Rlc3Ryb3koc2JpLT5zX2pvdXJuYWwpOworCXNiaS0+c19qb3VybmFsID0gTlVMTDsKIAlpZiAoIShzYi0+c19mbGFncyAmIE1TX1JET05MWSkpIHsKIAkJRVhUNF9DTEVBUl9JTkNPTVBBVF9GRUFUVVJFKHNiLCBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfUkVDT1ZFUik7CiAJCWVzLT5zX3N0YXRlID0gY3B1X3RvX2xlMTYoc2JpLT5zX21vdW50X3N0YXRlKTsKQEAgLTUxNyw2ICs1MTgsNyBAQAogCWZvciAoaSA9IDA7IGkgPCBzYmktPnNfZ2RiX2NvdW50OyBpKyspCiAJCWJyZWxzZShzYmktPnNfZ3JvdXBfZGVzY1tpXSk7CiAJa2ZyZWUoc2JpLT5zX2dyb3VwX2Rlc2MpOworCWtmcmVlKHNiaS0+c19mbGV4X2dyb3Vwcyk7CiAJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2ZyZWVibG9ja3NfY291bnRlcik7CiAJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2ZyZWVpbm9kZXNfY291bnRlcik7CiAJcGVyY3B1X2NvdW50ZXJfZGVzdHJveSgmc2JpLT5zX2RpcnNfY291bnRlcik7CkBAIC01NzEsNiArNTczLDEyIEBACiAJbWVtc2V0KCZlaS0+aV9jYWNoZWRfZXh0ZW50LCAwLCBzaXplb2Yoc3RydWN0IGV4dDRfZXh0X2NhY2hlKSk7CiAJSU5JVF9MSVNUX0hFQUQoJmVpLT5pX3ByZWFsbG9jX2xpc3QpOwogCXNwaW5fbG9ja19pbml0KCZlaS0+aV9wcmVhbGxvY19sb2NrKTsKKwlqYmQyX2pvdXJuYWxfaW5pdF9qYmRfaW5vZGUoJmVpLT5qaW5vZGUsICZlaS0+dmZzX2lub2RlKTsKKwllaS0+aV9yZXNlcnZlZF9kYXRhX2Jsb2NrcyA9IDA7CisJZWktPmlfcmVzZXJ2ZWRfbWV0YV9ibG9ja3MgPSAwOworCWVpLT5pX2FsbG9jYXRlZF9tZXRhX2Jsb2NrcyA9IDA7CisJZWktPmlfZGVsYWxsb2NfcmVzZXJ2ZWRfZmxhZyA9IDA7CisJc3Bpbl9sb2NrX2luaXQoJihlaS0+aV9ibG9ja19yZXNlcnZhdGlvbl9sb2NrKSk7CiAJcmV0dXJuICZlaS0+dmZzX2lub2RlOwogfQogCkBAIC02MzUsNiArNjQzLDggQEAKIAlFWFQ0X0koaW5vZGUpLT5pX2Jsb2NrX2FsbG9jX2luZm8gPSBOVUxMOwogCWlmICh1bmxpa2VseShyc3YpKQogCQlrZnJlZShyc3YpOworCWpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9pbm9kZShFWFQ0X1NCKGlub2RlLT5pX3NiKS0+c19qb3VybmFsLAorCQkJCSAgICAgICAmRVhUNF9JKGlub2RlKS0+amlub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGV4dDRfc2hvd19xdW90YV9vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqc2VxLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQpAQCAtNzI5LDggKzczOSwxNSBAQAogCQlzZXFfcHJpbnRmKHNlcSwgIixjb21taXQ9JXUiLAogCQkJICAgKHVuc2lnbmVkKSAoc2JpLT5zX2NvbW1pdF9pbnRlcnZhbCAvIEhaKSk7CiAJfQotCWlmICh0ZXN0X29wdChzYiwgQkFSUklFUikpCi0JCXNlcV9wdXRzKHNlcSwgIixiYXJyaWVyPTEiKTsKKwkvKgorCSAqIFdlJ3JlIGNoYW5naW5nIHRoZSBkZWZhdWx0IG9mIGJhcnJpZXIgbW91bnQgb3B0aW9uLCBzbworCSAqIGxldCdzIGFsd2F5cyBkaXNwbGF5IGl0cyBtb3VudCBzdGF0ZSBzbyBpdCdzIGNsZWFyIHdoYXQgaXRzCisJICogc3RhdHVzIGlzLgorCSAqLworCXNlcV9wdXRzKHNlcSwgIixiYXJyaWVyPSIpOworCXNlcV9wdXRzKHNlcSwgdGVzdF9vcHQoc2IsIEJBUlJJRVIpID8gIjEiIDogIjAiKTsKKwlpZiAodGVzdF9vcHQoc2IsIEpPVVJOQUxfQVNZTkNfQ09NTUlUKSkKKwkJc2VxX3B1dHMoc2VxLCAiLGpvdXJuYWxfYXN5bmNfY29tbWl0Iik7CiAJaWYgKHRlc3Rfb3B0KHNiLCBOT0JIKSkKIAkJc2VxX3B1dHMoc2VxLCAiLG5vYmgiKTsKIAlpZiAoIXRlc3Rfb3B0KHNiLCBFWFRFTlRTKSkKQEAgLTczOSw2ICs3NTYsOSBAQAogCQlzZXFfcHV0cyhzZXEsICIsbm9tYmFsbG9jIik7CiAJaWYgKHRlc3Rfb3B0KHNiLCBJX1ZFUlNJT04pKQogCQlzZXFfcHV0cyhzZXEsICIsaV92ZXJzaW9uIik7CisJaWYgKCF0ZXN0X29wdChzYiwgREVMQUxMT0MpKQorCQlzZXFfcHV0cyhzZXEsICIsbm9kZWxhbGxvYyIpOworCiAKIAlpZiAoc2JpLT5zX3N0cmlwZSkKIAkJc2VxX3ByaW50ZihzZXEsICIsc3RyaXBlPSVsdSIsIHNiaS0+c19zdHJpcGUpOwpAQCAtODg2LDcgKzkwNiw3IEBACiAJT3B0X2pxZm10X3Zmc29sZCwgT3B0X2pxZm10X3Zmc3YwLCBPcHRfcXVvdGEsIE9wdF9ub3F1b3RhLAogCU9wdF9pZ25vcmUsIE9wdF9iYXJyaWVyLCBPcHRfZXJyLCBPcHRfcmVzaXplLCBPcHRfdXNycXVvdGEsCiAJT3B0X2dycHF1b3RhLCBPcHRfZXh0ZW50cywgT3B0X25vZXh0ZW50cywgT3B0X2lfdmVyc2lvbiwKLQlPcHRfbWJhbGxvYywgT3B0X25vbWJhbGxvYywgT3B0X3N0cmlwZSwKKwlPcHRfbWJhbGxvYywgT3B0X25vbWJhbGxvYywgT3B0X3N0cmlwZSwgT3B0X2RlbGFsbG9jLCBPcHRfbm9kZWxhbGxvYywKIH07CiAKIHN0YXRpYyBtYXRjaF90YWJsZV90IHRva2VucyA9IHsKQEAgLTk0NSw2ICs5NjUsOCBAQAogCXtPcHRfbm9tYmFsbG9jLCAibm9tYmFsbG9jIn0sCiAJe09wdF9zdHJpcGUsICJzdHJpcGU9JXUifSwKIAl7T3B0X3Jlc2l6ZSwgInJlc2l6ZSJ9LAorCXtPcHRfZGVsYWxsb2MsICJkZWxhbGxvYyJ9LAorCXtPcHRfbm9kZWxhbGxvYywgIm5vZGVsYWxsb2MifSwKIAl7T3B0X2VyciwgTlVMTH0sCiB9OwogCkBAIC05ODIsNiArMTAwNCw3IEBACiAJaW50IHF0eXBlLCBxZm10OwogCWNoYXIgKnFuYW1lOwogI2VuZGlmCisJZXh0NF9mc2Jsa190IGxhc3RfYmxvY2s7CiAKIAlpZiAoIW9wdGlvbnMpCiAJCXJldHVybiAxOwpAQCAtMTMwMSwxNSArMTMyNCwzOSBAQAogCQkJY2xlYXJfb3B0KHNiaS0+c19tb3VudF9vcHQsIE5PQkgpOwogCQkJYnJlYWs7CiAJCWNhc2UgT3B0X2V4dGVudHM6CisJCQlpZiAoIUVYVDRfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoc2IsCisJCQkJCUVYVDRfRkVBVFVSRV9JTkNPTVBBVF9FWFRFTlRTKSkgeworCQkJCWV4dDRfd2FybmluZyhzYiwgX19mdW5jX18sCisJCQkJCSJleHRlbnRzIGZlYXR1cmUgbm90IGVuYWJsZWQgIgorCQkJCQkib24gdGhpcyBmaWxlc3lzdGVtLCB1c2UgdHVuZTJmc1xuIik7CisJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQlzZXRfb3B0IChzYmktPnNfbW91bnRfb3B0LCBFWFRFTlRTKTsKIAkJCWJyZWFrOwogCQljYXNlIE9wdF9ub2V4dGVudHM6CisJCQkvKgorCQkJICogV2hlbiBlMmZzcHJvZ3Mgc3VwcG9ydCByZXNpemluZyBhbiBhbHJlYWR5IGV4aXN0aW5nCisJCQkgKiBleHQzIGZpbGUgc3lzdGVtIHRvIGdyZWF0ZXIgdGhhbiAyKiozMiB3ZSBuZWVkIHRvCisJCQkgKiBhZGQgc3VwcG9ydCB0byBibG9jayBhbGxvY2F0b3IgdG8gaGFuZGxlIGdyb3dpbmcKKwkJCSAqIGFscmVhZHkgZXhpc3RpbmcgYmxvY2sgIG1hcHBlZCBpbm9kZSBzbyB0aGF0IGJsb2NrcworCQkJICogYWxsb2NhdGVkIGZvciB0aGVtIGZhbGwgd2l0aGluIDIqKjMyCisJCQkgKi8KKwkJCWxhc3RfYmxvY2sgPSBleHQ0X2Jsb2Nrc19jb3VudChzYmktPnNfZXMpIC0gMTsKKwkJCWlmIChsYXN0X2Jsb2NrICA+IDB4ZmZmZmZmZmZVTEwpIHsKKwkJCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IEZpbGVzeXN0ZW0gdG9vICIKKwkJCQkJCSJsYXJnZSB0byBtb3VudCB3aXRoICIKKwkJCQkJCSItbyBub2V4dGVudHMgb3B0aW9uc1xuIik7CisJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQljbGVhcl9vcHQgKHNiaS0+c19tb3VudF9vcHQsIEVYVEVOVFMpOwogCQkJYnJlYWs7CiAJCWNhc2UgT3B0X2lfdmVyc2lvbjoKIAkJCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgSV9WRVJTSU9OKTsKIAkJCXNiLT5zX2ZsYWdzIHw9IE1TX0lfVkVSU0lPTjsKIAkJCWJyZWFrOworCQljYXNlIE9wdF9ub2RlbGFsbG9jOgorCQkJY2xlYXJfb3B0KHNiaS0+c19tb3VudF9vcHQsIERFTEFMTE9DKTsKKwkJCWJyZWFrOwogCQljYXNlIE9wdF9tYmFsbG9jOgogCQkJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBNQkFMTE9DKTsKIAkJCWJyZWFrOwpAQCAtMTMyMyw2ICsxMzcwLDkgQEAKIAkJCQlyZXR1cm4gMDsKIAkJCXNiaS0+c19zdHJpcGUgPSBvcHRpb247CiAJCQlicmVhazsKKwkJY2FzZSBPcHRfZGVsYWxsb2M6CisJCQlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIERFTEFMTE9DKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJcHJpbnRrIChLRVJOX0VSUgogCQkJCSJFWFQ0LWZzOiBVbnJlY29nbml6ZWQgbW91bnQgb3B0aW9uIFwiJXNcIiAiCkBAIC0xNDM1LDYgKzE0ODUsNTQgQEAKIAlyZXR1cm4gcmVzOwogfQogCitzdGF0aWMgaW50IGV4dDRfZmlsbF9mbGV4X2luZm8oc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9ncm91cF9kZXNjICpnZHAgPSBOVUxMOworCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXBfY291bnQ7CisJZXh0NF9ncm91cF90IGZsZXhfZ3JvdXA7CisJaW50IGdyb3Vwc19wZXJfZmxleCA9IDA7CisJX191NjQgYmxvY2tfYml0bWFwID0gMDsKKwlpbnQgaTsKKworCWlmICghc2JpLT5zX2VzLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXgpIHsKKwkJc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXggPSAwOworCQlyZXR1cm4gMTsKKwl9CisKKwlzYmktPnNfbG9nX2dyb3Vwc19wZXJfZmxleCA9IHNiaS0+c19lcy0+c19sb2dfZ3JvdXBzX3Blcl9mbGV4OworCWdyb3Vwc19wZXJfZmxleCA9IDEgPDwgc2JpLT5zX2xvZ19ncm91cHNfcGVyX2ZsZXg7CisKKwlmbGV4X2dyb3VwX2NvdW50ID0gKHNiaS0+c19ncm91cHNfY291bnQgKyBncm91cHNfcGVyX2ZsZXggLSAxKSAvCisJCWdyb3Vwc19wZXJfZmxleDsKKwlzYmktPnNfZmxleF9ncm91cHMgPSBrbWFsbG9jKGZsZXhfZ3JvdXBfY291bnQgKgorCQkJCSAgICAgc2l6ZW9mKHN0cnVjdCBmbGV4X2dyb3VwcyksIEdGUF9LRVJORUwpOworCWlmIChzYmktPnNfZmxleF9ncm91cHMgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IG5vdCBlbm91Z2ggbWVtb3J5XG4iKTsKKwkJZ290byBmYWlsZWQ7CisJfQorCW1lbXNldChzYmktPnNfZmxleF9ncm91cHMsIDAsIGZsZXhfZ3JvdXBfY291bnQgKgorCSAgICAgICBzaXplb2Yoc3RydWN0IGZsZXhfZ3JvdXBzKSk7CisKKwlnZHAgPSBleHQ0X2dldF9ncm91cF9kZXNjKHNiLCAxLCAmYmgpOworCWJsb2NrX2JpdG1hcCA9IGV4dDRfYmxvY2tfYml0bWFwKHNiLCBnZHApIC0gMTsKKworCWZvciAoaSA9IDA7IGkgPCBzYmktPnNfZ3JvdXBzX2NvdW50OyBpKyspIHsKKwkJZ2RwID0gZXh0NF9nZXRfZ3JvdXBfZGVzYyhzYiwgaSwgJmJoKTsKKworCQlmbGV4X2dyb3VwID0gZXh0NF9mbGV4X2dyb3VwKHNiaSwgaSk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2lub2RlcyArPQorCQkJbGUxNl90b19jcHUoZ2RwLT5iZ19mcmVlX2lub2Rlc19jb3VudCk7CisJCXNiaS0+c19mbGV4X2dyb3Vwc1tmbGV4X2dyb3VwXS5mcmVlX2Jsb2NrcyArPQorCQkJbGUxNl90b19jcHUoZ2RwLT5iZ19mcmVlX2Jsb2Nrc19jb3VudCk7CisJfQorCisJcmV0dXJuIDE7CitmYWlsZWQ6CisJcmV0dXJuIDA7Cit9CisKIF9fbGUxNiBleHQ0X2dyb3VwX2Rlc2NfY3N1bShzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmksIF9fdTMyIGJsb2NrX2dyb3VwLAogCQkJICAgIHN0cnVjdCBleHQ0X2dyb3VwX2Rlc2MgKmdkcCkKIHsKQEAgLTE4MDIsOCArMTkwMCw4IEBACiB9CiAKIHN0YXRpYyBpbnQgZXh0NF9maWxsX3N1cGVyIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhLCBpbnQgc2lsZW50KQotCQkJCV9fcmVsZWFzZXMoa2VybmVsX3NlbSkKLQkJCQlfX2FjcXVpcmVzKGtlcm5lbF9zZW0pCisJCQkJX19yZWxlYXNlcyhrZXJuZWxfbG9jaykKKwkJCQlfX2FjcXVpcmVzKGtlcm5lbF9sb2NrKQogCiB7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICogYmg7CkBAIC0xODQzLDExICsxOTQxLDYgQEAKIAkJZ290byBvdXRfZmFpbDsKIAl9CiAKLQlpZiAoIXNiX3NldF9ibG9ja3NpemUoc2IsIGJsb2Nrc2l6ZSkpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJFWFQ0LWZzOiBiYWQgYmxvY2tzaXplICVkLlxuIiwgYmxvY2tzaXplKTsKLQkJZ290byBvdXRfZmFpbDsKLQl9Ci0KIAkvKgogCSAqIFRoZSBleHQ0IHN1cGVyYmxvY2sgd2lsbCBub3QgYmUgYnVmZmVyIGFsaWduZWQgZm9yIG90aGVyIHRoYW4gMWtCCiAJICogYmxvY2sgc2l6ZXMuICBXZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgb2Zmc2V0IGZyb20gYnVmZmVyIHN0YXJ0LgpAQCAtMTkwNywxOCArMjAwMCwzMiBAQAogCXNiaS0+c19yZXNnaWQgPSBsZTE2X3RvX2NwdShlcy0+c19kZWZfcmVzZ2lkKTsKIAogCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgUkVTRVJWQVRJT04pOworCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgQkFSUklFUik7CiAKIAkvKgogCSAqIHR1cm4gb24gZXh0ZW50cyBmZWF0dXJlIGJ5IGRlZmF1bHQgaW4gZXh0NCBmaWxlc3lzdGVtCi0JICogVXNlciAtbyBub2V4dGVudHMgdG8gdHVybiBpdCBvZmYKKwkgKiBvbmx5IGlmIGZlYXR1cmUgZmxhZyBhbHJlYWR5IHNldCBieSBta2ZzIG9yIHR1bmUyZnMuCisJICogVXNlIC1vIG5vZXh0ZW50cyB0byB0dXJuIGl0IG9mZgogCSAqLwotCXNldF9vcHQoc2JpLT5zX21vdW50X29wdCwgRVhURU5UUyk7CisJaWYgKEVYVDRfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoc2IsIEVYVDRfRkVBVFVSRV9JTkNPTVBBVF9FWFRFTlRTKSkKKwkJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBFWFRFTlRTKTsKKwllbHNlCisJCWV4dDRfd2FybmluZyhzYiwgX19mdW5jX18sCisJCQkiZXh0ZW50cyBmZWF0dXJlIG5vdCBlbmFibGVkIG9uIHRoaXMgZmlsZXN5c3RlbSwgIgorCQkJInVzZSB0dW5lMmZzLlxuIik7CiAJLyoKLQkgKiB0dXJuIG9uIG1iYWxsb2MgZmVhdHVyZSBieSBkZWZhdWx0IGluIGV4dDQgZmlsZXN5c3RlbQotCSAqIFVzZXIgLW8gbm9tYmFsbG9jIHRvIHR1cm4gaXQgb2ZmCisJICogdHVybiBvbiBtYmFsbG9jIGNvZGUgYnkgZGVmYXVsdCBpbiBleHQ0IGZpbGVzeXN0ZW0KKwkgKiBVc2UgLW8gbm9tYmFsbG9jIHRvIHR1cm4gaXQgb2ZmCiAJICovCiAJc2V0X29wdChzYmktPnNfbW91bnRfb3B0LCBNQkFMTE9DKTsKIAorCS8qCisJICogZW5hYmxlIGRlbGF5ZWQgYWxsb2NhdGlvbiBieSBkZWZhdWx0CisJICogVXNlIC1vIG5vZGVsYWxsb2MgdG8gdHVybiBpdCBvZmYKKwkgKi8KKwlzZXRfb3B0KHNiaS0+c19tb3VudF9vcHQsIERFTEFMTE9DKTsKKworCiAJaWYgKCFwYXJzZV9vcHRpb25zICgoY2hhciAqKSBkYXRhLCBzYiwgJmpvdXJuYWxfaW51bSwgJmpvdXJuYWxfZGV2bnVtLAogCQkJICAgIE5VTEwsIDApKQogCQlnb3RvIGZhaWxlZF9tb3VudDsKQEAgLTIxMjksNiArMjIzNiwxNCBAQAogCQlwcmludGsoS0VSTl9FUlIgIkVYVDQtZnM6IGdyb3VwIGRlc2NyaXB0b3JzIGNvcnJ1cHRlZCFcbiIpOwogCQlnb3RvIGZhaWxlZF9tb3VudDI7CiAJfQorCWlmIChFWFQ0X0hBU19JTkNPTVBBVF9GRUFUVVJFKHNiLCBFWFQ0X0ZFQVRVUkVfSU5DT01QQVRfRkxFWF9CRykpCisJCWlmICghZXh0NF9maWxsX2ZsZXhfaW5mbyhzYikpIHsKKwkJCXByaW50ayhLRVJOX0VSUgorCQkJICAgICAgICJFWFQ0LWZzOiB1bmFibGUgdG8gaW5pdGlhbGl6ZSAiCisJCQkgICAgICAgImZsZXhfYmcgbWV0YSBpbmZvIVxuIik7CisJCQlnb3RvIGZhaWxlZF9tb3VudDI7CisJCX0KKwogCXNiaS0+c19nZGJfY291bnQgPSBkYl9jb3VudDsKIAlnZXRfcmFuZG9tX2J5dGVzKCZzYmktPnNfbmV4dF9nZW5lcmF0aW9uLCBzaXplb2YodTMyKSk7CiAJc3Bpbl9sb2NrX2luaXQoJnNiaS0+c19uZXh0X2dlbl9sb2NrKTsKQEAgLTIxODksNiArMjMwNCwyOSBAQAogCSAgICBFWFQ0X0hBU19DT01QQVRfRkVBVFVSRShzYiwgRVhUNF9GRUFUVVJFX0NPTVBBVF9IQVNfSk9VUk5BTCkpIHsKIAkJaWYgKGV4dDRfbG9hZF9qb3VybmFsKHNiLCBlcywgam91cm5hbF9kZXZudW0pKQogCQkJZ290byBmYWlsZWRfbW91bnQzOworCQlpZiAoIShzYi0+c19mbGFncyAmIE1TX1JET05MWSkgJiYKKwkJICAgIEVYVDRfU0Ioc2IpLT5zX2pvdXJuYWwtPmpfZmFpbGVkX2NvbW1pdCkgeworCQkJcHJpbnRrKEtFUk5fQ1JJVCAiRVhUNC1mcyBlcnJvciAoZGV2aWNlICVzKTogIgorCQkJICAgICAgICJleHQ0X2ZpbGxfc3VwZXI6IEpvdXJuYWwgdHJhbnNhY3Rpb24gIgorCQkJICAgICAgICIldSBpcyBjb3JydXB0XG4iLCBzYi0+c19pZCwgCisJCQkgICAgICAgRVhUNF9TQihzYiktPnNfam91cm5hbC0+al9mYWlsZWRfY29tbWl0KTsKKwkJCWlmICh0ZXN0X29wdCAoc2IsIEVSUk9SU19STykpIHsKKwkJCQlwcmludGsgKEtFUk5fQ1JJVAorCQkJCQkiTW91bnRpbmcgZmlsZXN5c3RlbSByZWFkLW9ubHlcbiIpOworCQkJCXNiLT5zX2ZsYWdzIHw9IE1TX1JET05MWTsKKwkJCQlFWFQ0X1NCKHNiKS0+c19tb3VudF9zdGF0ZSB8PSBFWFQ0X0VSUk9SX0ZTOworCQkJCWVzLT5zX3N0YXRlIHw9IGNwdV90b19sZTE2KEVYVDRfRVJST1JfRlMpOworCQkJfQorCQkJaWYgKHRlc3Rfb3B0KHNiLCBFUlJPUlNfUEFOSUMpKSB7CisJCQkJRVhUNF9TQihzYiktPnNfbW91bnRfc3RhdGUgfD0gRVhUNF9FUlJPUl9GUzsKKwkJCQllcy0+c19zdGF0ZSB8PSBjcHVfdG9fbGUxNihFWFQ0X0VSUk9SX0ZTKTsKKwkJCQlleHQ0X2NvbW1pdF9zdXBlcihzYiwgZXMsIDEpOworCQkJCXByaW50ayhLRVJOX0NSSVQKKwkJCQkgICAgICAgIkVYVDQtZnMgKGRldmljZSAlcyk6IG1vdW50IGZhaWxlZFxuIiwKKwkJCQkgICAgICBzYi0+c19pZCk7CisJCQkJZ290byBmYWlsZWRfbW91bnQ0OworCQkJfQorCQl9CiAJfSBlbHNlIGlmIChqb3VybmFsX2ludW0pIHsKIAkJaWYgKGV4dDRfY3JlYXRlX2pvdXJuYWwoc2IsIGVzLCBqb3VybmFsX2ludW0pKQogCQkJZ290byBmYWlsZWRfbW91bnQzOwpAQCAtMjMyNiw2ICsyNDY0LDEzIEBACiAJCXRlc3Rfb3B0KHNiLERBVEFfRkxBR1MpID09IEVYVDRfTU9VTlRfT1JERVJFRF9EQVRBID8gIm9yZGVyZWQiOgogCQkid3JpdGViYWNrIik7CiAKKwlpZiAodGVzdF9vcHQoc2IsIERBVEFfRkxBR1MpID09IEVYVDRfTU9VTlRfSk9VUk5BTF9EQVRBKSB7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgIkVYVDQtZnM6IElnbm9yaW5nIGRlbGFsbG9jIG9wdGlvbiAtICIKKwkJCQkicmVxdWVzdGVkIGRhdGEgam91cm5hbGluZyBtb2RlXG4iKTsKKwkJY2xlYXJfb3B0KHNiaS0+c19tb3VudF9vcHQsIERFTEFMTE9DKTsKKwl9IGVsc2UgaWYgKHRlc3Rfb3B0KHNiLCBERUxBTExPQykpCisJCXByaW50ayhLRVJOX0lORk8gIkVYVDQtZnM6IGRlbGF5ZWQgYWxsb2NhdGlvbiBlbmFibGVkXG4iKTsKKwogCWV4dDRfZXh0X2luaXQoc2IpOwogCWV4dDRfbWJfaW5pdChzYiwgbmVlZHNfcmVjb3ZlcnkpOwogCkBAIC0yMzQwLDYgKzI0ODUsNyBAQAogCiBmYWlsZWRfbW91bnQ0OgogCWpiZDJfam91cm5hbF9kZXN0cm95KHNiaS0+c19qb3VybmFsKTsKKwlzYmktPnNfam91cm5hbCA9IE5VTEw7CiBmYWlsZWRfbW91bnQzOgogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlYmxvY2tzX2NvdW50ZXIpOwogCXBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koJnNiaS0+c19mcmVlaW5vZGVzX2NvdW50ZXIpOwpAQCAtMzI5Myw3ICszNDM5LDcgQEAKIAkJCWVyciA9IGV4dDRfam91cm5hbF9kaXJ0eV9tZXRhZGF0YShoYW5kbGUsIGJoKTsKIAkJZWxzZSB7CiAJCQkvKiBBbHdheXMgZG8gYXQgbGVhc3Qgb3JkZXJlZCB3cml0ZXMgZm9yIHF1b3RhcyAqLwotCQkJZXJyID0gZXh0NF9qb3VybmFsX2RpcnR5X2RhdGEoaGFuZGxlLCBiaCk7CisJCQllcnIgPSBleHQ0X2piZDJfZmlsZV9pbm9kZShoYW5kbGUsIGlub2RlKTsKIAkJCW1hcmtfYnVmZmVyX2RpcnR5KGJoKTsKIAkJfQogCQlicmVsc2UoYmgpOwpAQCAtMzMwNSw4ICszNDUxLDEwIEBACiAJCWJsaysrOwogCX0KIG91dDoKLQlpZiAobGVuID09IHRvd3JpdGUpCisJaWYgKGxlbiA9PSB0b3dyaXRlKSB7CisJCW11dGV4X3VubG9jaygmaW5vZGUtPmlfbXV0ZXgpOwogCQlyZXR1cm4gZXJyOworCX0KIAlpZiAoaW5vZGUtPmlfc2l6ZSA8IG9mZitsZW4tdG93cml0ZSkgewogCQlpX3NpemVfd3JpdGUoaW5vZGUsIG9mZitsZW4tdG93cml0ZSk7CiAJCUVYVDRfSShpbm9kZSktPmlfZGlza3NpemUgPSBpbm9kZS0+aV9zaXplOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0ci5jIGIvZnMvZXh0NC94YXR0ci5jCmluZGV4IGZmMDg2MzMuLjkzYzVmZGMgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQveGF0dHIuYworKysgYi9mcy9leHQ0L3hhdHRyLmMKQEAgLTgxMCw3ICs4MTAsNyBAQAogCQkJLyogV2UgbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyBibG9jayAqLwogCQkJZXh0NF9mc2Jsa190IGdvYWwgPSBleHQ0X2dyb3VwX2ZpcnN0X2Jsb2NrX25vKHNiLAogCQkJCQkJRVhUNF9JKGlub2RlKS0+aV9ibG9ja19ncm91cCk7Ci0JCQlleHQ0X2ZzYmxrX3QgYmxvY2sgPSBleHQ0X25ld19ibG9jayhoYW5kbGUsIGlub2RlLAorCQkJZXh0NF9mc2Jsa190IGJsb2NrID0gZXh0NF9uZXdfbWV0YV9ibG9jayhoYW5kbGUsIGlub2RlLAogCQkJCQkJCWdvYWwsICZlcnJvcik7CiAJCQlpZiAoZXJyb3IpCiAJCQkJZ290byBjbGVhbnVwOwpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0cl90cnVzdGVkLmMgYi9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYwppbmRleCBmZmYzMzM4Li5hYzFhNTJjIDEwMDY0NAotLS0gYS9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYworKysgYi9mcy9leHQ0L3hhdHRyX3RydXN0ZWQuYwpAQCAtMTMsMTMgKzEzLDExIEBACiAjaW5jbHVkZSAiZXh0NC5oIgogI2luY2x1ZGUgInhhdHRyLmgiCiAKLSNkZWZpbmUgWEFUVFJfVFJVU1RFRF9QUkVGSVggInRydXN0ZWQuIgotCiBzdGF0aWMgc2l6ZV90CiBleHQ0X3hhdHRyX3RydXN0ZWRfbGlzdChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpsaXN0LCBzaXplX3QgbGlzdF9zaXplLAogCQkJY29uc3QgY2hhciAqbmFtZSwgc2l6ZV90IG5hbWVfbGVuKQogewotCWNvbnN0IHNpemVfdCBwcmVmaXhfbGVuID0gc2l6ZW9mKFhBVFRSX1RSVVNURURfUFJFRklYKS0xOworCWNvbnN0IHNpemVfdCBwcmVmaXhfbGVuID0gWEFUVFJfVFJVU1RFRF9QUkVGSVhfTEVOOwogCWNvbnN0IHNpemVfdCB0b3RhbF9sZW4gPSBwcmVmaXhfbGVuICsgbmFtZV9sZW4gKyAxOwogCiAJaWYgKCFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC94YXR0cl91c2VyLmMgYi9mcy9leHQ0L3hhdHRyX3VzZXIuYwppbmRleCA2N2JlNzIzLi5kOTFhYTYxIDEwMDY0NAotLS0gYS9mcy9leHQ0L3hhdHRyX3VzZXIuYworKysgYi9mcy9leHQ0L3hhdHRyX3VzZXIuYwpAQCAtMTIsMTMgKzEyLDExIEBACiAjaW5jbHVkZSAiZXh0NC5oIgogI2luY2x1ZGUgInhhdHRyLmgiCiAKLSNkZWZpbmUgWEFUVFJfVVNFUl9QUkVGSVggInVzZXIuIgotCiBzdGF0aWMgc2l6ZV90CiBleHQ0X3hhdHRyX3VzZXJfbGlzdChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpsaXN0LCBzaXplX3QgbGlzdF9zaXplLAogCQkgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBuYW1lX2xlbikKIHsKLQljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IHNpemVvZihYQVRUUl9VU0VSX1BSRUZJWCktMTsKKwljb25zdCBzaXplX3QgcHJlZml4X2xlbiA9IFhBVFRSX1VTRVJfUFJFRklYX0xFTjsKIAljb25zdCBzaXplX3QgdG90YWxfbGVuID0gcHJlZml4X2xlbiArIG5hbWVfbGVuICsgMTsKIAogCWlmICghdGVzdF9vcHQoaW5vZGUtPmlfc2IsIFhBVFRSX1VTRVIpKQpkaWZmIC0tZ2l0IGEvZnMvZmF0L2NhY2hlLmMgYi9mcy9mYXQvY2FjaGUuYwppbmRleCBmZGEyNTQ3OS4uM2E5ZWNhYzggMTAwNjQ0Ci0tLSBhL2ZzL2ZhdC9jYWNoZS5jCisrKyBiL2ZzL2ZhdC9jYWNoZS5jCkBAIC02MSw3ICs2MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGZhdF9jYWNoZSAqZmF0X2NhY2hlX2FsbG9jKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX0tFUk5FTCk7CisJcmV0dXJuIGttZW1fY2FjaGVfYWxsb2MoZmF0X2NhY2hlX2NhY2hlcCwgR0ZQX05PRlMpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgZmF0X2NhY2hlX2ZyZWUoc3RydWN0IGZhdF9jYWNoZSAqY2FjaGUpCmRpZmYgLS1naXQgYS9mcy9mYXQvZGlyLmMgYi9mcy9mYXQvZGlyLmMKaW5kZXggNDg2NzI1ZS4uMzQ1NDFkMCAxMDA2NDQKLS0tIGEvZnMvZmF0L2Rpci5jCisrKyBiL2ZzL2ZhdC9kaXIuYwpAQCAtNDcyLDcgKzQ3Miw3IEBACiAJbG9mZl90IGNwb3M7CiAJaW50IHJldCA9IDA7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJY3BvcyA9IGZpbHAtPmZfcG9zOwogCS8qIEZha2UgLiBhbmQgLi4gZm9yIHRoZSByb290IGRpcmVjdG9yeS4gKi8KQEAgLTY1NCw3ICs2NTQsNyBAQAogCWlmICh1bmljb2RlKQogCQlfX3B1dG5hbWUodW5pY29kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZmF0L2ZpbGUuYyBiL2ZzL2ZhdC9maWxlLmMKaW5kZXggMjdjYzExNi4uYzY3MmRmNCAxMDA2NDQKLS0tIGEvZnMvZmF0L2ZpbGUuYworKysgYi9mcy9mYXQvZmlsZS5jCkBAIC0xMSw3ICsxMSw2IEBACiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvbXNkb3NfZnMuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L2J1ZmZlcl9oZWFkLmg+CiAjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+CiAjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KQEAgLTI0Miw5ICsyNDEsNyBAQAogCiAJbnJfY2x1c3RlcnMgPSAoaW5vZGUtPmlfc2l6ZSArIChjbHVzdGVyX3NpemUgLSAxKSkgPj4gc2JpLT5jbHVzdGVyX2JpdHM7CiAKLQlsb2NrX2tlcm5lbCgpOwogCWZhdF9mcmVlKGlub2RlLCBucl9jbHVzdGVycyk7Ci0JdW5sb2NrX2tlcm5lbCgpOwogCWZhdF9mbHVzaF9pbm9kZXMoaW5vZGUtPmlfc2IsIGlub2RlLCBOVUxMKTsKIH0KIApAQCAtMjU3LDI2ICsyNTQsMzQgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKGZhdF9nZXRhdHRyKTsKIAotc3RhdGljIGludCBmYXRfY2hlY2tfbW9kZShjb25zdCBzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpLCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAotCQkJICBtb2RlX3QgbW9kZSkKK3N0YXRpYyBpbnQgZmF0X3Nhbml0aXplX21vZGUoY29uc3Qgc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSwKKwkJCSAgICAgc3RydWN0IGlub2RlICppbm9kZSwgdW1vZGVfdCAqbW9kZV9wdHIpCiB7Ci0JbW9kZV90IG1hc2ssIHJlcSA9IG1vZGUgJiB+U19JRk1UOworCW1vZGVfdCBtYXNrLCBwZXJtOwogCi0JaWYgKFNfSVNSRUcobW9kZSkpCisJLyoKKwkgKiBOb3RlLCB0aGUgYmFzaWMgY2hlY2sgaXMgYWxyZWFkeSBkb25lIGJ5IGEgY2FsbGVyIG9mCisJICogKGF0dHItPmlhX21vZGUgJiB+TVNET1NfVkFMSURfTU9ERSkKKwkgKi8KKworCWlmIChTX0lTUkVHKGlub2RlLT5pX21vZGUpKQogCQltYXNrID0gc2JpLT5vcHRpb25zLmZzX2ZtYXNrOwogCWVsc2UKIAkJbWFzayA9IHNiaS0+b3B0aW9ucy5mc19kbWFzazsKIAorCXBlcm0gPSAqbW9kZV9wdHIgJiB+KFNfSUZNVCB8IG1hc2spOworCiAJLyoKIAkgKiBPZiB0aGUgciBhbmQgeCBiaXRzLCBhbGwgKHN1YmplY3QgdG8gdW1hc2spIG11c3QgYmUgcHJlc2VudC4gT2YgdGhlCiAJICogdyBiaXRzLCBlaXRoZXIgYWxsIChzdWJqZWN0IHRvIHVtYXNrKSBvciBub25lIG11c3QgYmUgcHJlc2VudC4KIAkgKi8KLQlyZXEgJj0gfm1hc2s7Ci0JaWYgKChyZXEgJiAoU19JUlVHTyB8IFNfSVhVR08pKSAhPSAoaW5vZGUtPmlfbW9kZSAmIChTX0lSVUdPfFNfSVhVR08pKSkKKwlpZiAoKHBlcm0gJiAoU19JUlVHTyB8IFNfSVhVR08pKSAhPSAoaW5vZGUtPmlfbW9kZSAmIChTX0lSVUdPfFNfSVhVR08pKSkKIAkJcmV0dXJuIC1FUEVSTTsKLQlpZiAoKHJlcSAmIFNfSVdVR08pICYmICgocmVxICYgU19JV1VHTykgIT0gKFNfSVdVR08gJiB+bWFzaykpKQorCWlmICgocGVybSAmIFNfSVdVR08pICYmICgocGVybSAmIFNfSVdVR08pICE9IChTX0lXVUdPICYgfm1hc2spKSkKIAkJcmV0dXJuIC1FUEVSTTsKIAorCSptb2RlX3B0ciAmPSBTX0lGTVQgfCBwZXJtOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTI5OSwxMSArMzA0LDkgQEAKIHsKIAlzdHJ1Y3QgbXNkb3Nfc2JfaW5mbyAqc2JpID0gTVNET1NfU0IoZGVudHJ5LT5kX3NiKTsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZGVudHJ5LT5kX2lub2RlOwotCWludCBtYXNrLCBlcnJvciA9IDA7CisJaW50IGVycm9yID0gMDsKIAl1bnNpZ25lZCBpbnQgaWFfdmFsaWQ7CiAKLQlsb2NrX2tlcm5lbCgpOwotCiAJLyoKIAkgKiBFeHBhbmQgdGhlIGZpbGUuIFNpbmNlIGlub2RlX3NldGF0dHIoKSB1cGRhdGVzIC0+aV9zaXplCiAJICogYmVmb3JlIGNhbGxpbmcgdGhlIC0+dHJ1bmNhdGUoKSwgYnV0IEZBVCBuZWVkcyB0byBmaWxsIHRoZQpAQCAtMzMyLDEyICszMzUsMTMgQEAKIAkJCWVycm9yID0gMDsKIAkJZ290byBvdXQ7CiAJfQorCiAJaWYgKCgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX1VJRCkgJiYKIAkgICAgIChhdHRyLT5pYV91aWQgIT0gc2JpLT5vcHRpb25zLmZzX3VpZCkpIHx8CiAJICAgICgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX0dJRCkgJiYKIAkgICAgIChhdHRyLT5pYV9naWQgIT0gc2JpLT5vcHRpb25zLmZzX2dpZCkpIHx8CiAJICAgICgoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX01PREUpICYmCi0JICAgICBmYXRfY2hlY2tfbW9kZShzYmksIGlub2RlLCBhdHRyLT5pYV9tb2RlKSA8IDApKQorCSAgICAgKGF0dHItPmlhX21vZGUgJiB+TVNET1NfVkFMSURfTU9ERSkpKQogCQllcnJvciA9IC1FUEVSTTsKIAogCWlmIChlcnJvcikgewpAQCAtMzQ2LDE3ICszNTAsMTcgQEAKIAkJZ290byBvdXQ7CiAJfQogCi0JZXJyb3IgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKLQlpZiAoZXJyb3IpCi0JCWdvdG8gb3V0OworCS8qCisJICogV2UgZG9uJ3QgcmV0dXJuIC1FUEVSTSBoZXJlLiBZZXMsIHN0cmFuZ2UsIGJ1dCB0aGlzIGlzIHRvbworCSAqIG9sZCBiZWhhdmlvci4KKwkgKi8KKwlpZiAoYXR0ci0+aWFfdmFsaWQgJiBBVFRSX01PREUpIHsKKwkJaWYgKGZhdF9zYW5pdGl6ZV9tb2RlKHNiaSwgaW5vZGUsICZhdHRyLT5pYV9tb2RlKSA8IDApCisJCQlhdHRyLT5pYV92YWxpZCAmPSB+QVRUUl9NT0RFOworCX0KIAotCWlmIChTX0lTRElSKGlub2RlLT5pX21vZGUpKQotCQltYXNrID0gc2JpLT5vcHRpb25zLmZzX2RtYXNrOwotCWVsc2UKLQkJbWFzayA9IHNiaS0+b3B0aW9ucy5mc19mbWFzazsKLQlpbm9kZS0+aV9tb2RlICY9IFNfSUZNVCB8IChTX0lSV1hVR08gJiB+bWFzayk7CisJZXJyb3IgPSBpbm9kZV9zZXRhdHRyKGlub2RlLCBhdHRyKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIGVycm9yOwogfQogRVhQT1JUX1NZTUJPTF9HUEwoZmF0X3NldGF0dHIpOwpkaWZmIC0tZ2l0IGEvZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYwppbmRleCA0ZTBhM2RkLi40NmE0NTA4IDEwMDY0NAotLS0gYS9mcy9mYXQvaW5vZGUuYworKysgYi9mcy9mYXQvaW5vZGUuYwpAQCAtNDQwLDE0ICs0NDAsMTMgQEAKIAogc3RhdGljIHZvaWQgZmF0X2NsZWFyX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpCiB7Ci0Jc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKGlub2RlLT5pX3NiKTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gaW5vZGUtPmlfc2I7CisJc3RydWN0IG1zZG9zX3NiX2luZm8gKnNiaSA9IE1TRE9TX1NCKHNiKTsKIAotCWxvY2tfa2VybmVsKCk7CiAJc3Bpbl9sb2NrKCZzYmktPmlub2RlX2hhc2hfbG9jayk7CiAJZmF0X2NhY2hlX2ludmFsX2lub2RlKGlub2RlKTsKIAlobGlzdF9kZWxfaW5pdCgmTVNET1NfSShpbm9kZSktPmlfZmF0X2hhc2gpOwogCXNwaW5fdW5sb2NrKCZzYmktPmlub2RlX2hhc2hfbG9jayk7Ci0JdW5sb2NrX2tlcm5lbCgpOwogfQogCiBzdGF0aWMgdm9pZCBmYXRfd3JpdGVfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKQEAgLTQ4NSw3ICs0ODQsNyBAQAogc3RhdGljIHN0cnVjdCBpbm9kZSAqZmF0X2FsbG9jX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RydWN0IG1zZG9zX2lub2RlX2luZm8gKmVpOwotCWVpID0ga21lbV9jYWNoZV9hbGxvYyhmYXRfaW5vZGVfY2FjaGVwLCBHRlBfS0VSTkVMKTsKKwllaSA9IGttZW1fY2FjaGVfYWxsb2MoZmF0X2lub2RlX2NhY2hlcCwgR0ZQX05PRlMpOwogCWlmICghZWkpCiAJCXJldHVybiBOVUxMOwogCXJldHVybiAmZWktPnZmc19pbm9kZTsKQEAgLTU2Nyw3ICs1NjYsNyBAQAogCWlmIChpbm9kZS0+aV9pbm8gPT0gTVNET1NfUk9PVF9JTk8gfHwgIWlfcG9zKQogCQlyZXR1cm4gMDsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAJYmggPSBzYl9icmVhZChzYiwgaV9wb3MgPj4gc2JpLT5kaXJfcGVyX2Jsb2NrX2JpdHMpOwogCWlmICghYmgpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJGQVQ6IHVuYWJsZSB0byByZWFkIGlub2RlIGJsb2NrICIKQEAgLTU3OSw3ICs1NzgsNyBAQAogCWlmIChpX3BvcyAhPSBNU0RPU19JKGlub2RlKS0+aV9wb3MpIHsKIAkJc3Bpbl91bmxvY2soJnNiaS0+aW5vZGVfaGFzaF9sb2NrKTsKIAkJYnJlbHNlKGJoKTsKLQkJdW5sb2NrX2tlcm5lbCgpOworCQl1bmxvY2tfc3VwZXIoc2IpOwogCQlnb3RvIHJldHJ5OwogCX0KIApAQCAtNjA2LDcgKzYwNSw3IEBACiAJCWVyciA9IHN5bmNfZGlydHlfYnVmZmVyKGJoKTsKIAlicmVsc2UoYmgpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTczNiw2ICs3MzUsNyBAQAogCiBzdGF0aWMgc3RydWN0IGRlbnRyeSAqZmF0X2dldF9wYXJlbnQoc3RydWN0IGRlbnRyeSAqY2hpbGQpCiB7CisJc3RydWN0IHN1cGVyX2Jsb2NrICpzYiA9IGNoaWxkLT5kX3NiOwogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGU7CiAJbG9mZl90IGlfcG9zOwpAQCAtNzQzLDE0ICs3NDMsMTQgQEAKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gZmF0X2dldF9kb3Rkb3RfZW50cnkoY2hpbGQtPmRfaW5vZGUsICZiaCwgJmRlLCAmaV9wb3MpOwogCWlmIChlcnIpIHsKIAkJcGFyZW50ID0gRVJSX1BUUihlcnIpOwogCQlnb3RvIG91dDsKIAl9Ci0JaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoY2hpbGQtPmRfc2IsIGRlLCBpX3Bvcyk7CisJaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoc2IsIGRlLCBpX3Bvcyk7CiAJYnJlbHNlKGJoKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewogCQlwYXJlbnQgPSBFUlJfQ0FTVChpbm9kZSk7CkBAIC03NjIsNyArNzYyLDcgQEAKIAkJcGFyZW50ID0gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAKIAlyZXR1cm4gcGFyZW50OwogfQpAQCAtMTE3Miw2ICsxMTcyLDEyIEBACiAJbG9uZyBlcnJvcjsKIAljaGFyIGJ1Zls1MF07CiAKKwkvKgorCSAqIEdGUF9LRVJORUwgaXMgb2sgaGVyZSwgYmVjYXVzZSB3aGlsZSB3ZSBkbyBob2xkIHRoZQorCSAqIHN1cGVibG9jayBsb2NrLCBtZW1vcnkgcHJlc3N1cmUgY2FuJ3QgY2FsbCBiYWNrIGludG8KKwkgKiB0aGUgZmlsZXN5c3RlbSwgc2luY2Ugd2UncmUgb25seSBqdXN0IGFib3V0IHRvIG1vdW50CisJICogaXQgYW5kIGhhdmUgbm8gaW5vZGVzIGV0YyBhY3RpdmUhCisJICovCiAJc2JpID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IG1zZG9zX3NiX2luZm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNiaSkKIAkJcmV0dXJuIC1FTk9NRU07CmRpZmYgLS1naXQgYS9mcy9mY250bC5jIGIvZnMvZmNudGwuYwppbmRleCBiZmQ3NzY1Li4zMzBhN2Q3IDEwMDY0NAotLS0gYS9mcy9mY250bC5jCisrKyBiL2ZzL2ZjbnRsLmMKQEAgLTEyLDcgKzEyLDYgQEAKICNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgogI2luY2x1ZGUgPGxpbnV4L2Rub3RpZnkuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgpAQCAtMjI3LDcgKzIyNiw2IEBACiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAKLQlsb2NrX2tlcm5lbCgpOwogCWlmICgoYXJnIF4gZmlscC0+Zl9mbGFncykgJiBGQVNZTkMpIHsKIAkJaWYgKGZpbHAtPmZfb3AgJiYgZmlscC0+Zl9vcC0+ZmFzeW5jKSB7CiAJCQllcnJvciA9IGZpbHAtPmZfb3AtPmZhc3luYyhmZCwgZmlscCwgKGFyZyAmIEZBU1lOQykgIT0gMCk7CkBAIC0yMzgsNyArMjM2LDYgQEAKIAogCWZpbHAtPmZfZmxhZ3MgPSAoYXJnICYgU0VURkxfTUFTSykgfCAoZmlscC0+Zl9mbGFncyAmIH5TRVRGTF9NQVNLKTsKICBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOwogCXJldHVybiBlcnJvcjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvZnVzZS9pbm9kZS5jIGIvZnMvZnVzZS9pbm9kZS5jCmluZGV4IGZiNzdlMDkuLjMxNDE2OTAgMTAwNjQ0Ci0tLSBhL2ZzL2Z1c2UvaW5vZGUuYworKysgYi9mcy9mdXNlL2lub2RlLmMKQEAgLTQ4OCw3ICs0ODgsMTIgQEAKIAkJZXJyID0gYmRpX2luaXQoJmZjLT5iZGkpOwogCQlpZiAoZXJyKQogCQkJZ290byBlcnJvcl9rZnJlZTsKLQkJZXJyID0gYmRpX3JlZ2lzdGVyX2RldigmZmMtPmJkaSwgZmMtPmRldik7CisJCWlmIChzYi0+c19iZGV2KSB7CisJCQllcnIgPSBiZGlfcmVnaXN0ZXIoJmZjLT5iZGksIE5VTEwsICIldToldS1mdXNlYmxrIiwKKwkJCQkJICAgTUFKT1IoZmMtPmRldiksIE1JTk9SKGZjLT5kZXYpKTsKKwkJfSBlbHNlIHsKKwkJCWVyciA9IGJkaV9yZWdpc3Rlcl9kZXYoJmZjLT5iZGksIGZjLT5kZXYpOworCQl9CiAJCWlmIChlcnIpCiAJCQlnb3RvIGVycm9yX2JkaV9kZXN0cm95OwogCQkvKgpAQCAtNTg2LDcgKzU5MSw3IEBACiAJCWZjLT5iZGkucmFfcGFnZXMgPSBtaW4oZmMtPmJkaS5yYV9wYWdlcywgcmFfcGFnZXMpOwogCQlmYy0+bWlub3IgPSBhcmctPm1pbm9yOwogCQlmYy0+bWF4X3dyaXRlID0gYXJnLT5taW5vciA8IDUgPyA0MDk2IDogYXJnLT5tYXhfd3JpdGU7Ci0JCWZjLT5tYXhfd3JpdGUgPSBtaW5fdCh1bnNpZ25lZCwgNDA5NiwgZmMtPm1heF93cml0ZSk7CisJCWZjLT5tYXhfd3JpdGUgPSBtYXhfdCh1bnNpZ25lZCwgNDA5NiwgZmMtPm1heF93cml0ZSk7CiAJCWZjLT5jb25uX2luaXQgPSAxOwogCX0KIAlmdXNlX3B1dF9yZXF1ZXN0KGZjLCByZXEpOwpAQCAtNjYyLDcgKzY2Nyw3IEBACiAJZmMtPmZsYWdzID0gZC5mbGFnczsKIAlmYy0+dXNlcl9pZCA9IGQudXNlcl9pZDsKIAlmYy0+Z3JvdXBfaWQgPSBkLmdyb3VwX2lkOwotCWZjLT5tYXhfcmVhZCA9IG1pbl90KHVuc2lnbmVkLCA0MDk2LCBkLm1heF9yZWFkKTsKKwlmYy0+bWF4X3JlYWQgPSBtYXhfdCh1bnNpZ25lZCwgNDA5NiwgZC5tYXhfcmVhZCk7CiAKIAkvKiBVc2VkIGJ5IGdldF9yb290X2lub2RlKCkgKi8KIAlzYi0+c19mc19pbmZvID0gZmM7CmRpZmYgLS1naXQgYS9mcy9nZnMyL2JtYXAuYyBiL2ZzL2dmczIvYm1hcC5jCmluZGV4IGMxOTE4NGYuLmJlYzc2YjEgMTAwNjQ0Ci0tLSBhL2ZzL2dmczIvYm1hcC5jCisrKyBiL2ZzL2dmczIvYm1hcC5jCkBAIC0yNDYsMTUgKzI0NiwxMSBAQAogCiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHplcm9fbWV0YXBhdGhfbGVuZ3RoKGNvbnN0IHN0cnVjdCBtZXRhcGF0aCAqbXAsCi0JCQkJCQl1bnNpZ25lZCBoZWlnaHQpCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBtZXRhcGF0aF9icmFuY2hfc3RhcnQoY29uc3Qgc3RydWN0IG1ldGFwYXRoICptcCkKIHsKLQl1bnNpZ25lZCBpbnQgaTsKLQlmb3IgKGkgPSAwOyBpIDwgaGVpZ2h0IC0gMTsgaSsrKSB7Ci0JCWlmIChtcC0+bXBfbGlzdFtpXSAhPSAwKQotCQkJcmV0dXJuIGk7Ci0JfQotCXJldHVybiBoZWlnaHQ7CisJaWYgKG1wLT5tcF9saXN0WzBdID09IDApCisJCXJldHVybiAyOworCXJldHVybiAxOwogfQogCiAvKioKQEAgLTQzNiw3ICs0MzIsNyBAQAogCXN0cnVjdCBnZnMyX3NiZCAqc2RwID0gR0ZTMl9TQihpbm9kZSk7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpkaWJoID0gbXAtPm1wX2JoWzBdOwogCXU2NCBibiwgZGJsb2NrID0gMDsKLQl1bnNpZ25lZCBuLCBpLCBibGtzLCBhbGxvY2VkID0gMCwgaWJsa3MgPSAwLCB6bXBsID0gMDsKKwl1bnNpZ25lZCBuLCBpLCBibGtzLCBhbGxvY2VkID0gMCwgaWJsa3MgPSAwLCBicmFuY2hfc3RhcnQgPSAwOwogCXVuc2lnbmVkIGRibGtzID0gMDsKIAl1bnNpZ25lZCBwdHJzX3Blcl9ibGs7CiAJY29uc3QgdW5zaWduZWQgZW5kX29mX21ldGFkYXRhID0gaGVpZ2h0IC0gMTsKQEAgLTQ3MSw5ICs0NjcsOCBAQAogCQkJLyogQnVpbGRpbmcgdXAgdHJlZSBoZWlnaHQgKi8KIAkJCXN0YXRlID0gQUxMT0NfR1JPV19IRUlHSFQ7CiAJCQlpYmxrcyA9IGhlaWdodCAtIGlwLT5pX2hlaWdodDsKLQkJCXptcGwgPSB6ZXJvX21ldGFwYXRoX2xlbmd0aChtcCwgaGVpZ2h0KTsKLQkJCWlibGtzIC09IHptcGw7Ci0JCQlpYmxrcyArPSBoZWlnaHQ7CisJCQlicmFuY2hfc3RhcnQgPSBtZXRhcGF0aF9icmFuY2hfc3RhcnQobXApOworCQkJaWJsa3MgKz0gKGhlaWdodCAtIGJyYW5jaF9zdGFydCk7CiAJCX0KIAl9CiAKQEAgLTUwOSwxMyArNTA0LDEzIEBACiAJCQkJCXNpemVvZihzdHJ1Y3QgZ2ZzMl9tZXRhX2hlYWRlcikpOwogCQkJCSpwdHIgPSB6ZXJvX2JuOwogCQkJCXN0YXRlID0gQUxMT0NfR1JPV19ERVBUSDsKLQkJCQlmb3IoaSA9IHptcGw7IGkgPCBoZWlnaHQ7IGkrKykgeworCQkJCWZvcihpID0gYnJhbmNoX3N0YXJ0OyBpIDwgaGVpZ2h0OyBpKyspIHsKIAkJCQkJaWYgKG1wLT5tcF9iaFtpXSA9PSBOVUxMKQogCQkJCQkJYnJlYWs7CiAJCQkJCWJyZWxzZShtcC0+bXBfYmhbaV0pOwogCQkJCQltcC0+bXBfYmhbaV0gPSBOVUxMOwogCQkJCX0KLQkJCQlpID0gem1wbDsKKwkJCQlpID0gYnJhbmNoX3N0YXJ0OwogCQkJfQogCQkJaWYgKG4gPT0gMCkKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL2ZzL2dmczIvb3BzX2ZpbGUuYyBiL2ZzL2dmczIvb3BzX2ZpbGUuYwppbmRleCBlMWI3ZDUyLi4yNGRkNTk0IDEwMDY0NAotLS0gYS9mcy9nZnMyL29wc19maWxlLmMKKysrIGIvZnMvZ2ZzMi9vcHNfZmlsZS5jCkBAIC02MiwxMSArNjIsMTEgQEAKIAkJZXJyb3IgPSBnZnMyX2dsb2NrX25xX2luaXQoaXAtPmlfZ2wsIExNX1NUX1NIQVJFRCwgTE1fRkxBR19BTlksCiAJCQkJCSAgICZpX2doKTsKIAkJaWYgKCFlcnJvcikgewotCQkJZXJyb3IgPSByZW1vdGVfbGxzZWVrKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwkJCWVycm9yID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxlLCBvZmZzZXQsIG9yaWdpbik7CiAJCQlnZnMyX2dsb2NrX2RxX3VuaW5pdCgmaV9naCk7CiAJCX0KIAl9IGVsc2UKLQkJZXJyb3IgPSByZW1vdGVfbGxzZWVrKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwkJZXJyb3IgPSBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKIAogCXJldHVybiBlcnJvcjsKIH0KZGlmZiAtLWdpdCBhL2ZzL2dmczIvcmdycC5jIGIvZnMvZ2ZzMi9yZ3JwLmMKaW5kZXggNjM4NzUyMy4uMzQwMTYyOCAxMDA2NDQKLS0tIGEvZnMvZ2ZzMi9yZ3JwLmMKKysrIGIvZnMvZ2ZzMi9yZ3JwLmMKQEAgLTE5NSw3ICsxOTUsNyBAQAogCSAgIGRlcGVuZGluZyBvbiBhcmNoaXRlY3R1cmUuICBJJ3ZlIGV4cGVyaW1lbnRlZCB3aXRoIHNldmVyYWwgd2F5cwogCSAgIG9mIHdyaXRpbmcgdGhpcyBzZWN0aW9uIHN1Y2ggYXMgdXNpbmcgYW4gZWxzZSBiZWZvcmUgdGhlIGdvdG8KIAkgICBidXQgdGhpcyBvbmUgc2VlbXMgdG8gYmUgdGhlIGZhc3Rlc3QuICovCi0Jd2hpbGUgKCh1bnNpZ25lZCBjaGFyICopcGxvbmcgPCBlbmQgLSAxKSB7CisJd2hpbGUgKCh1bnNpZ25lZCBjaGFyICopcGxvbmcgPCBlbmQgLSBzaXplb2YodW5zaWduZWQgbG9uZykpIHsKIAkJcHJlZmV0Y2gocGxvbmcgKyAxKTsKIAkJaWYgKCgoKnBsb25nKSAmIExCSVRNQVNLKSAhPSBsc2tpcHZhbCkKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvZnMvamJkMi9jaGVja3BvaW50LmMgYi9mcy9qYmQyL2NoZWNrcG9pbnQuYwppbmRleCA2OTE0NTk4Li45MTM4OWM4IDEwMDY0NAotLS0gYS9mcy9qYmQyL2NoZWNrcG9pbnQuYworKysgYi9mcy9qYmQyL2NoZWNrcG9pbnQuYwpAQCAtNjg4LDcgKzY4OCw2IEBACiAKIAlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9zdGF0ZSA9PSBUX0ZJTklTSEVEKTsKIAlKX0FTU0VSVCh0cmFuc2FjdGlvbi0+dF9idWZmZXJzID09IE5VTEwpOwotCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3QgPT0gTlVMTCk7CiAJSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfZm9yZ2V0ID09IE5VTEwpOwogCUpfQVNTRVJUKHRyYW5zYWN0aW9uLT50X2lvYnVmX2xpc3QgPT0gTlVMTCk7CiAJSl9BU1NFUlQodHJhbnNhY3Rpb24tPnRfc2hhZG93X2xpc3QgPT0gTlVMTCk7CmRpZmYgLS1naXQgYS9mcy9qYmQyL2NvbW1pdC5jIGIvZnMvamJkMi9jb21taXQuYwppbmRleCA0ZDk5Njg1Li5mOGIzYmU4IDEwMDY0NAotLS0gYS9mcy9qYmQyL2NvbW1pdC5jCisrKyBiL2ZzL2piZDIvY29tbWl0LmMKQEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CiAjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgogI2luY2x1ZGUgPGxpbnV4L2NyYzMyLmg+CisjaW5jbHVkZSA8bGludXgvd3JpdGViYWNrLmg+CisjaW5jbHVkZSA8bGludXgvYmFja2luZy1kZXYuaD4KIAogLyoKICAqIERlZmF1bHQgSU8gZW5kIGhhbmRsZXIgZm9yIHRlbXBvcmFyeSBCSl9JTyBidWZmZXJfaGVhZHMuCkBAIC0zNyw4ICszOSw4IEBACiB9CiAKIC8qCi0gKiBXaGVuIGFuIGV4dDMtb3JkZXJlZCBmaWxlIGlzIHRydW5jYXRlZCwgaXQgaXMgcG9zc2libGUgdGhhdCBtYW55IHBhZ2VzIGFyZQotICogbm90IHN1Y2Vzc2Z1bGx5IGZyZWVkLCBiZWNhdXNlIHRoZXkgYXJlIGF0dGFjaGVkIHRvIGEgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4KKyAqIFdoZW4gYW4gZXh0NCBmaWxlIGlzIHRydW5jYXRlZCwgaXQgaXMgcG9zc2libGUgdGhhdCBzb21lIHBhZ2VzIGFyZSBub3QKKyAqIHN1Y2Nlc3NmdWxseSBmcmVlZCwgYmVjYXVzZSB0aGV5IGFyZSBhdHRhY2hlZCB0byBhIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uCiAgKiBBZnRlciB0aGUgdHJhbnNhY3Rpb24gY29tbWl0cywgdGhlc2UgcGFnZXMgYXJlIGxlZnQgb24gdGhlIExSVSwgd2l0aCBubwogICogLT5tYXBwaW5nLCBhbmQgd2l0aCBhdHRhY2hlZCBidWZmZXJzLiAgVGhlc2UgcGFnZXMgYXJlIHRyaXZpYWxseSByZWNsYWltYWJsZQogICogYnkgdGhlIFZNLCBidXQgdGhlaXIgYXBwYXJlbnQgYWJzZW5jZSB1cHNldHMgdGhlIFZNIGFjY291bnRpbmcsIGFuZCBpdCBtYWtlcwpAQCAtODAsMjEgKzgyLDYgQEAKIH0KIAogLyoKLSAqIFRyeSB0byBhY3F1aXJlIGpiZF9sb2NrX2JoX3N0YXRlKCkgYWdhaW5zdCB0aGUgYnVmZmVyLCB3aGVuIGpfbGlzdF9sb2NrIGlzCi0gKiBoZWxkLiAgRm9yIHJhbmtpbmcgcmVhc29ucyB3ZSBtdXN0IHRyeWxvY2suICBJZiB3ZSBsb3NlLCBzY2hlZHVsZSBhd2F5IGFuZAotICogcmV0dXJuIDAuICBqX2xpc3RfbG9jayBpcyBkcm9wcGVkIGluIHRoaXMgY2FzZS4KLSAqLwotc3RhdGljIGludCBpbnZlcnRlZF9sb2NrKGpvdXJuYWxfdCAqam91cm5hbCwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKLXsKLQlpZiAoIWpiZF90cnlsb2NrX2JoX3N0YXRlKGJoKSkgewotCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOwotCQlzY2hlZHVsZSgpOwotCQlyZXR1cm4gMDsKLQl9Ci0JcmV0dXJuIDE7Ci19Ci0KLS8qCiAgKiBEb25lIGl0IGFsbDogbm93IHN1Ym1pdCB0aGUgY29tbWl0IHJlY29yZC4gIFdlIHNob3VsZCBoYXZlCiAgKiBjbGVhbmVkIHVwIG91ciBwcmV2aW91cyBidWZmZXJzIGJ5IG5vdywgc28gaWYgd2UgYXJlIGluIGFib3J0CiAgKiBtb2RlIHdlIGNhbiBub3cganVzdCBza2lwIHRoZSByZXN0IG9mIHRoZSBqb3VybmFsIHdyaXRlCkBAIC0xMTIsNiArOTksNyBAQAogCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7CiAJaW50IHJldDsKIAlpbnQgYmFycmllcl9kb25lID0gMDsKKwlzdHJ1Y3QgdGltZXNwZWMgbm93ID0gY3VycmVudF9rZXJuZWxfdGltZSgpOwogCiAJaWYgKGlzX2pvdXJuYWxfYWJvcnRlZChqb3VybmFsKSkKIAkJcmV0dXJuIDA7CkBAIC0xMjYsNiArMTE0LDggQEAKIAl0bXAtPmhfbWFnaWMgPSBjcHVfdG9fYmUzMihKQkQyX01BR0lDX05VTUJFUik7CiAJdG1wLT5oX2Jsb2NrdHlwZSA9IGNwdV90b19iZTMyKEpCRDJfQ09NTUlUX0JMT0NLKTsKIAl0bXAtPmhfc2VxdWVuY2UgPSBjcHVfdG9fYmUzMihjb21taXRfdHJhbnNhY3Rpb24tPnRfdGlkKTsKKwl0bXAtPmhfY29tbWl0X3NlYyA9IGNwdV90b19iZTY0KG5vdy50dl9zZWMpOworCXRtcC0+aF9jb21taXRfbnNlYyA9IGNwdV90b19iZTMyKG5vdy50dl9uc2VjKTsKIAogCWlmIChKQkQyX0hBU19DT01QQVRfRkVBVFVSRShqb3VybmFsLAogCQkJCSAgICBKQkQyX0ZFQVRVUkVfQ09NUEFUX0NIRUNLU1VNKSkgewpAQCAtMTY4LDYgKzE1OCw3IEBACiAJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOwogCiAJCS8qIEFuZCB0cnkgYWdhaW4sIHdpdGhvdXQgdGhlIGJhcnJpZXIgKi8KKwkJbG9ja19idWZmZXIoYmgpOwogCQlzZXRfYnVmZmVyX3VwdG9kYXRlKGJoKTsKIAkJc2V0X2J1ZmZlcl9kaXJ0eShiaCk7CiAJCXJldCA9IHN1Ym1pdF9iaChXUklURSwgYmgpOwpAQCAtMTk2LDE1OSArMTg3LDEwNCBAQAogfQogCiAvKgotICogV2FpdCBmb3IgYWxsIHN1Ym1pdHRlZCBJTyB0byBjb21wbGV0ZS4KKyAqIHdyaXRlIHRoZSBmaWxlbWFwIGRhdGEgdXNpbmcgd3JpdGVwYWdlKCkgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zLgorICogV2UgZG9uJ3QgZG8gYmxvY2sgYWxsb2NhdGlvbiBoZXJlIGV2ZW4gZm9yIGRlbGFsbG9jLiBXZSBkb24ndAorICogdXNlIHdyaXRlcGFnZXMoKSBiZWNhdXNlIHdpdGggZGVhbHllZCBhbGxvY2F0aW9uIHdlIG1heSBiZSBkb2luZworICogYmxvY2sgYWxsb2NhdGlvbiBpbiB3cml0ZXBhZ2VzKCkuCiAgKi8KLXN0YXRpYyBpbnQgam91cm5hbF93YWl0X29uX2xvY2tlZF9saXN0KGpvdXJuYWxfdCAqam91cm5hbCwKLQkJCQkgICAgICAgdHJhbnNhY3Rpb25fdCAqY29tbWl0X3RyYW5zYWN0aW9uKQorc3RhdGljIGludCBqb3VybmFsX3N1Ym1pdF9pbm9kZV9kYXRhX2J1ZmZlcnMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpCiB7Ci0JaW50IHJldCA9IDA7Ci0Jc3RydWN0IGpvdXJuYWxfaGVhZCAqamg7CisJaW50IHJldDsKKwlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgd2JjID0geworCQkuc3luY19tb2RlID0gIFdCX1NZTkNfQUxMLAorCQkubnJfdG9fd3JpdGUgPSBtYXBwaW5nLT5ucnBhZ2VzICogMiwKKwkJLnJhbmdlX3N0YXJ0ID0gMCwKKwkJLnJhbmdlX2VuZCA9IGlfc2l6ZV9yZWFkKG1hcHBpbmctPmhvc3QpLAorCQkuZm9yX3dyaXRlcGFnZXMgPSAxLAorCX07CiAKLQl3aGlsZSAoY29tbWl0X3RyYW5zYWN0aW9uLT50X2xvY2tlZF9saXN0KSB7Ci0JCXN0cnVjdCBidWZmZXJfaGVhZCAqYmg7Ci0KLQkJamggPSBjb21taXRfdHJhbnNhY3Rpb24tPnRfbG9ja2VkX2xpc3QtPmJfdHByZXY7Ci0JCWJoID0gamgyYmgoamgpOwotCQlnZXRfYmgoYmgpOwotCQlpZiAoYnVmZmVyX2xvY2tlZChiaCkpIHsKLQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQl3YWl0X29uX2J1ZmZlcihiaCk7Ci0JCQlpZiAodW5saWtlbHkoIWJ1ZmZlcl91cHRvZGF0ZShiaCkpKQotCQkJCXJldCA9IC1FSU87Ci0JCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJfQotCQlpZiAoIWludmVydGVkX2xvY2soam91cm5hbCwgYmgpKSB7Ci0JCQlwdXRfYmgoYmgpOwotCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAoYnVmZmVyX2piZChiaCkgJiYgamgtPmJfamxpc3QgPT0gQkpfTG9ja2VkKSB7Ci0JCQlfX2piZDJfam91cm5hbF91bmZpbGVfYnVmZmVyKGpoKTsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoYmgpOwotCQkJcHV0X2JoKGJoKTsKLQkJfSBlbHNlIHsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQl9Ci0JCXB1dF9iaChiaCk7Ci0JCWNvbmRfcmVzY2hlZF9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JfQorCXJldCA9IGdlbmVyaWNfd3JpdGVwYWdlcyhtYXBwaW5nLCAmd2JjKTsKIAlyZXR1cm4gcmV0OwotICB9Ci0KLXN0YXRpYyB2b2lkIGpvdXJuYWxfZG9fc3VibWl0X2RhdGEoc3RydWN0IGJ1ZmZlcl9oZWFkICoqd2J1ZiwgaW50IGJ1ZnMpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgYnVmczsgaSsrKSB7Ci0JCXdidWZbaV0tPmJfZW5kX2lvID0gZW5kX2J1ZmZlcl93cml0ZV9zeW5jOwotCQkvKiBXZSB1c2UtdXAgb3VyIHNhZmV0eSByZWZlcmVuY2UgaW4gc3VibWl0X2JoKCkgKi8KLQkJc3VibWl0X2JoKFdSSVRFLCB3YnVmW2ldKTsKLQl9CiB9CiAKIC8qCi0gKiAgU3VibWl0IGFsbCB0aGUgZGF0YSBidWZmZXJzIHRvIGRpc2sKKyAqIFN1Ym1pdCBhbGwgdGhlIGRhdGEgYnVmZmVycyBvZiBpbm9kZSBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYW5zYWN0aW9uIHRvCisgKiBkaXNrLgorICoKKyAqIFdlIGFyZSBpbiBhIGNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uIFRoZXJlZm9yZSBubyBuZXcgaW5vZGUgY2FuIGJlIGFkZGVkIHRvCisgKiBvdXIgaW5vZGUgbGlzdC4gV2UgdXNlIEpJX0NPTU1JVF9SVU5OSU5HIGZsYWcgdG8gcHJvdGVjdCBpbm9kZSB3ZSBjdXJyZW50bHkKKyAqIG9wZXJhdGUgb24gZnJvbSBiZWluZyByZWxlYXNlZCB3aGlsZSB3ZSB3cml0ZSBvdXQgcGFnZXMuCiAgKi8KLXN0YXRpYyB2b2lkIGpvdXJuYWxfc3VibWl0X2RhdGFfYnVmZmVycyhqb3VybmFsX3QgKmpvdXJuYWwsCi0JCQkJdHJhbnNhY3Rpb25fdCAqY29tbWl0X3RyYW5zYWN0aW9uKQorc3RhdGljIGludCBqb3VybmFsX3N1Ym1pdF9kYXRhX2J1ZmZlcnMoam91cm5hbF90ICpqb3VybmFsLAorCQl0cmFuc2FjdGlvbl90ICpjb21taXRfdHJhbnNhY3Rpb24pCiB7Ci0Jc3RydWN0IGpvdXJuYWxfaGVhZCAqamg7Ci0Jc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKLQlpbnQgbG9ja2VkOwotCWludCBidWZzID0gMDsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKip3YnVmID0gam91cm5hbC0+al93YnVmOworCXN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGU7CisJaW50IGVyciwgcmV0ID0gMDsKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZzsKIAotCS8qCi0JICogV2hlbmV2ZXIgd2UgdW5sb2NrIHRoZSBqb3VybmFsIGFuZCBzbGVlcCwgdGhpbmdzIGNhbiBnZXQgYWRkZWQKLQkgKiBvbnRvIC0+dF9zeW5jX2RhdGFsaXN0LCBzbyB3ZSBoYXZlIHRvIGtlZXAgbG9vcGluZyBiYWNrIHRvCi0JICogd3JpdGVfb3V0X2RhdGEgdW50aWwgd2UgKmtub3cqIHRoYXQgdGhlIGxpc3QgaXMgZW1wdHkuCi0JICoKLQkgKiBDbGVhbnVwIGFueSBmbHVzaGVkIGRhdGEgYnVmZmVycyBmcm9tIHRoZSBkYXRhIGxpc3QuICBFdmVuIGluCi0JICogYWJvcnQgbW9kZSwgd2Ugd2FudCB0byBmbHVzaCB0aGlzIG91dCBhcyBzb29uIGFzIHBvc3NpYmxlLgotCSAqLwotd3JpdGVfb3V0X2RhdGE6Ci0JY29uZF9yZXNjaGVkKCk7CiAJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0KLQl3aGlsZSAoY29tbWl0X3RyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3QpIHsKLQkJamggPSBjb21taXRfdHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdDsKLQkJYmggPSBqaDJiaChqaCk7Ci0JCWxvY2tlZCA9IDA7Ci0KLQkJLyogR2V0IHJlZmVyZW5jZSBqdXN0IHRvIG1ha2Ugc3VyZSBidWZmZXIgZG9lcyBub3QgZGlzYXBwZWFyCi0JCSAqIHdoZW4gd2UgYXJlIGZvcmNlZCB0byBkcm9wIHZhcmlvdXMgbG9ja3MgKi8KLQkJZ2V0X2JoKGJoKTsKLQkJLyogSWYgdGhlIGJ1ZmZlciBpcyBkaXJ0eSwgd2UgbmVlZCB0byBzdWJtaXQgSU8gYW5kIGhlbmNlCi0JCSAqIHdlIG5lZWQgdGhlIGJ1ZmZlciBsb2NrLiBXZSB0cnkgdG8gbG9jayB0aGUgYnVmZmVyIHdpdGhvdXQKLQkJICogYmxvY2tpbmcuIElmIHdlIGZhaWwsIHdlIG5lZWQgdG8gZHJvcCBqX2xpc3RfbG9jayBhbmQgZG8KLQkJICogYmxvY2tpbmcgbG9ja19idWZmZXIoKS4KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGppbm9kZSwgJmNvbW1pdF90cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0LCBpX2xpc3QpIHsKKwkJbWFwcGluZyA9IGppbm9kZS0+aV92ZnNfaW5vZGUtPmlfbWFwcGluZzsKKwkJamlub2RlLT5pX2ZsYWdzIHw9IEpJX0NPTU1JVF9SVU5OSU5HOworCQlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQkvKgorCQkgKiBzdWJtaXQgdGhlIGlub2RlIGRhdGEgYnVmZmVycy4gV2UgdXNlIHdyaXRlcGFnZQorCQkgKiBpbnN0ZWFkIG9mIHdyaXRlcGFnZXMuIEJlY2F1c2Ugd3JpdGVwYWdlcyBjYW4gZG8KKwkJICogYmxvY2sgYWxsb2NhdGlvbiAgd2l0aCBkZWxhbGxvYy4gV2UgbmVlZCB0byB3cml0ZQorCQkgKiBvbmx5IGFsbG9jYXRlZCBibG9ja3MgaGVyZS4KIAkJICovCi0JCWlmIChidWZmZXJfZGlydHkoYmgpKSB7Ci0JCQlpZiAodGVzdF9zZXRfYnVmZmVyX2xvY2tlZChiaCkpIHsKLQkJCQlCVUZGRVJfVFJBQ0UoYmgsICJuZWVkcyBibG9ja2luZyBsb2NrIik7Ci0JCQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCQkvKiBXcml0ZSBvdXQgYWxsIGRhdGEgdG8gcHJldmVudCBkZWFkbG9ja3MgKi8KLQkJCQlqb3VybmFsX2RvX3N1Ym1pdF9kYXRhKHdidWYsIGJ1ZnMpOwotCQkJCWJ1ZnMgPSAwOwotCQkJCWxvY2tfYnVmZmVyKGJoKTsKLQkJCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCX0KLQkJCWxvY2tlZCA9IDE7Ci0JCX0KLQkJLyogV2UgaGF2ZSB0byBnZXQgYmhfc3RhdGUgbG9jay4gQWdhaW4gb3V0IG9mIG9yZGVyLCBzaWdoLiAqLwotCQlpZiAoIWludmVydGVkX2xvY2soam91cm5hbCwgYmgpKSB7Ci0JCQlqYmRfbG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJfQotCQkvKiBTb21lb25lIGFscmVhZHkgY2xlYW5lZCB1cCB0aGUgYnVmZmVyPyAqLwotCQlpZiAoIWJ1ZmZlcl9qYmQoYmgpCi0JCQl8fCBqaC0+Yl90cmFuc2FjdGlvbiAhPSBjb21taXRfdHJhbnNhY3Rpb24KLQkJCXx8IGpoLT5iX2psaXN0ICE9IEJKX1N5bmNEYXRhKSB7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCWlmIChsb2NrZWQpCi0JCQkJdW5sb2NrX2J1ZmZlcihiaCk7Ci0JCQlCVUZGRVJfVFJBQ0UoYmgsICJhbHJlYWR5IGNsZWFuZWQgdXAiKTsKLQkJCXB1dF9iaChiaCk7Ci0JCQljb250aW51ZTsKLQkJfQotCQlpZiAobG9ja2VkICYmIHRlc3RfY2xlYXJfYnVmZmVyX2RpcnR5KGJoKSkgewotCQkJQlVGRkVSX1RSQUNFKGJoLCAibmVlZHMgd3JpdGVvdXQsIGFkZGluZyB0byBhcnJheSIpOwotCQkJd2J1ZltidWZzKytdID0gYmg7Ci0JCQlfX2piZDJfam91cm5hbF9maWxlX2J1ZmZlcihqaCwgY29tbWl0X3RyYW5zYWN0aW9uLAotCQkJCQkJQkpfTG9ja2VkKTsKLQkJCWpiZF91bmxvY2tfYmhfc3RhdGUoYmgpOwotCQkJaWYgKGJ1ZnMgPT0gam91cm5hbC0+al93YnVmc2l6ZSkgewotCQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJam91cm5hbF9kb19zdWJtaXRfZGF0YSh3YnVmLCBidWZzKTsKLQkJCQlidWZzID0gMDsKLQkJCQlnb3RvIHdyaXRlX291dF9kYXRhOwotCQkJfQotCQl9IGVsc2UgaWYgKCFsb2NrZWQgJiYgYnVmZmVyX2xvY2tlZChiaCkpIHsKLQkJCV9famJkMl9qb3VybmFsX2ZpbGVfYnVmZmVyKGpoLCBjb21taXRfdHJhbnNhY3Rpb24sCi0JCQkJCQlCSl9Mb2NrZWQpOwotCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQlwdXRfYmgoYmgpOwotCQl9IGVsc2UgewotCQkJQlVGRkVSX1RSQUNFKGJoLCAid3JpdGVvdXQgY29tcGxldGU6IHVuZmlsZSIpOwotCQkJX19qYmQyX2pvdXJuYWxfdW5maWxlX2J1ZmZlcihqaCk7Ci0JCQlqYmRfdW5sb2NrX2JoX3N0YXRlKGJoKTsKLQkJCWlmIChsb2NrZWQpCi0JCQkJdW5sb2NrX2J1ZmZlcihiaCk7Ci0JCQlqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZChiaCk7Ci0JCQkvKiBPbmNlIGZvciBvdXIgc2FmZXR5IHJlZmVyZW5jZSwgb25jZSBmb3IKLQkJCSAqIGpiZDJfam91cm5hbF9yZW1vdmVfam91cm5hbF9oZWFkKCkgKi8KLQkJCXB1dF9iaChiaCk7Ci0JCQlwdXRfYmgoYmgpOwotCQl9CisJCWVyciA9IGpvdXJuYWxfc3VibWl0X2lub2RlX2RhdGFfYnVmZmVycyhtYXBwaW5nKTsKKwkJaWYgKCFyZXQpCisJCQlyZXQgPSBlcnI7CisJCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCQlKX0FTU0VSVChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gY29tbWl0X3RyYW5zYWN0aW9uKTsKKwkJamlub2RlLT5pX2ZsYWdzICY9IH5KSV9DT01NSVRfUlVOTklORzsKKwkJd2FrZV91cF9iaXQoJmppbm9kZS0+aV9mbGFncywgX19KSV9DT01NSVRfUlVOTklORyk7CisJfQorCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJcmV0dXJuIHJldDsKK30KIAotCQlpZiAobmVlZF9yZXNjaGVkKCkgfHwgc3Bpbl9uZWVkYnJlYWsoJmpvdXJuYWwtPmpfbGlzdF9sb2NrKSkgewotCQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJCWdvdG8gd3JpdGVfb3V0X2RhdGE7CisvKgorICogV2FpdCBmb3IgZGF0YSBzdWJtaXR0ZWQgZm9yIHdyaXRlb3V0LCByZWZpbGUgaW5vZGVzIHRvIHByb3BlcgorICogdHJhbnNhY3Rpb24gaWYgbmVlZGVkLgorICoKKyAqLworc3RhdGljIGludCBqb3VybmFsX2ZpbmlzaF9pbm9kZV9kYXRhX2J1ZmZlcnMoam91cm5hbF90ICpqb3VybmFsLAorCQl0cmFuc2FjdGlvbl90ICpjb21taXRfdHJhbnNhY3Rpb24pCit7CisJc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSwgKm5leHRfaTsKKwlpbnQgZXJyLCByZXQgPSAwOworCisJLyogRm9yIGxvY2tpbmcsIHNlZSB0aGUgY29tbWVudCBpbiBqb3VybmFsX3N1Ym1pdF9kYXRhX2J1ZmZlcnMoKSAqLworCXNwaW5fbG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCWxpc3RfZm9yX2VhY2hfZW50cnkoamlub2RlLCAmY29tbWl0X3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QsIGlfbGlzdCkgeworCQlqaW5vZGUtPmlfZmxhZ3MgfD0gSklfQ09NTUlUX1JVTk5JTkc7CisJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCWVyciA9IGZpbGVtYXBfZmRhdGF3YWl0KGppbm9kZS0+aV92ZnNfaW5vZGUtPmlfbWFwcGluZyk7CisJCWlmICghcmV0KQorCQkJcmV0ID0gZXJyOworCQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkJamlub2RlLT5pX2ZsYWdzICY9IH5KSV9DT01NSVRfUlVOTklORzsKKwkJd2FrZV91cF9iaXQoJmppbm9kZS0+aV9mbGFncywgX19KSV9DT01NSVRfUlVOTklORyk7CisJfQorCisJLyogTm93IHJlZmlsZSBpbm9kZSB0byBwcm9wZXIgbGlzdHMgKi8KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoamlub2RlLCBuZXh0X2ksCisJCQkJICZjb21taXRfdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCwgaV9saXN0KSB7CisJCWxpc3RfZGVsKCZqaW5vZGUtPmlfbGlzdCk7CisJCWlmIChqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbikgeworCQkJamlub2RlLT5pX3RyYW5zYWN0aW9uID0gamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb247CisJCQlqaW5vZGUtPmlfbmV4dF90cmFuc2FjdGlvbiA9IE5VTEw7CisJCQlsaXN0X2FkZCgmamlub2RlLT5pX2xpc3QsCisJCQkJJmppbm9kZS0+aV90cmFuc2FjdGlvbi0+dF9pbm9kZV9saXN0KTsKKwkJfSBlbHNlIHsKKwkJCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IE5VTEw7CiAJCX0KIAl9CiAJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQlqb3VybmFsX2RvX3N1Ym1pdF9kYXRhKHdidWYsIGJ1ZnMpOworCisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIF9fdTMyIGpiZDJfY2hlY2tzdW1fZGF0YShfX3UzMiBjcmMzMl9zdW0sIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCkBAIC01MjMsMjEgKzQ1OSw3IEBACiAJICogTm93IHN0YXJ0IGZsdXNoaW5nIHRoaW5ncyB0byBkaXNrLCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIKIAkgKiBvbiB0aGUgdHJhbnNhY3Rpb24gbGlzdHMuICBEYXRhIGJsb2NrcyBnbyBmaXJzdC4KIAkgKi8KLQllcnIgPSAwOwotCWpvdXJuYWxfc3VibWl0X2RhdGFfYnVmZmVycyhqb3VybmFsLCBjb21taXRfdHJhbnNhY3Rpb24pOwotCi0JLyoKLQkgKiBXYWl0IGZvciBhbGwgcHJldmlvdXNseSBzdWJtaXR0ZWQgSU8gdG8gY29tcGxldGUgaWYgY29tbWl0Ci0JICogcmVjb3JkIGlzIHRvIGJlIHdyaXR0ZW4gc3luY2hyb25vdXNseS4KLQkgKi8KLQlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQlpZiAoIUpCRDJfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoam91cm5hbCwKLQkJSkJEMl9GRUFUVVJFX0lOQ09NUEFUX0FTWU5DX0NPTU1JVCkpCi0JCWVyciA9IGpvdXJuYWxfd2FpdF9vbl9sb2NrZWRfbGlzdChqb3VybmFsLAotCQkJCQkJY29tbWl0X3RyYW5zYWN0aW9uKTsKLQotCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0KKwllcnIgPSBqb3VybmFsX3N1Ym1pdF9kYXRhX2J1ZmZlcnMoam91cm5hbCwgY29tbWl0X3RyYW5zYWN0aW9uKTsKIAlpZiAoZXJyKQogCQlqYmQyX2pvdXJuYWxfYWJvcnQoam91cm5hbCwgZXJyKTsKIApAQCAtNTQ2LDE2ICs0NjgsNiBAQAogCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgMlxuIik7CiAKIAkvKgotCSAqIElmIHdlIGZvdW5kIGFueSBkaXJ0eSBvciBsb2NrZWQgYnVmZmVycywgdGhlbiB3ZSBzaG91bGQgaGF2ZQotCSAqIGxvb3BlZCBiYWNrIHVwIHRvIHRoZSB3cml0ZV9vdXRfZGF0YSBsYWJlbC4gIElmIHRoZXJlIHdlcmVuJ3QKLQkgKiBhbnkgdGhlbiBqb3VybmFsX2NsZWFuX2RhdGFfbGlzdCBzaG91bGQgaGF2ZSB3aXBlZCB0aGUgbGlzdAotCSAqIGNsZWFuIGJ5IG5vdywgc28gY2hlY2sgdGhhdCBpdCBpcyBpbiBmYWN0IGVtcHR5LgotCSAqLwotCUpfQVNTRVJUIChjb21taXRfdHJhbnNhY3Rpb24tPnRfc3luY19kYXRhbGlzdCA9PSBOVUxMKTsKLQotCWpiZF9kZWJ1ZyAoMywgIkpCRDogY29tbWl0IHBoYXNlIDNcbiIpOwotCi0JLyoKIAkgKiBXYXkgdG8gZ286IHdlIGhhdmUgbm93IHdyaXR0ZW4gb3V0IGFsbCBvZiB0aGUgZGF0YSBmb3IgYQogCSAqIHRyYW5zYWN0aW9uISAgTm93IGNvbWVzIHRoZSB0cmlja3kgcGFydDogd2UgbmVlZCB0byB3cml0ZSBvdXQKIAkgKiBtZXRhZGF0YS4gIExvb3Agb3ZlciB0aGUgdHJhbnNhY3Rpb24ncyBlbnRpcmUgYnVmZmVyIGxpc3Q6CkBAIC01NzMsNiArNDg1LDcgQEAKIAlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfbnJfYnVmZmVycyA8PQogCQkgY29tbWl0X3RyYW5zYWN0aW9uLT50X291dHN0YW5kaW5nX2NyZWRpdHMpOwogCisJZXJyID0gMDsKIAlkZXNjcmlwdG9yID0gTlVMTDsKIAlidWZzID0gMDsKIAl3aGlsZSAoY29tbWl0X3RyYW5zYWN0aW9uLT50X2J1ZmZlcnMpIHsKQEAgLTc0NywxNSArNjYwLDE5IEBACiAJCQkJCQkgJmNiaCwgY3JjMzJfc3VtKTsKIAkJaWYgKGVycikKIAkJCV9famJkMl9qb3VybmFsX2Fib3J0X2hhcmQoam91cm5hbCk7Ci0KLQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCWVyciA9IGpvdXJuYWxfd2FpdF9vbl9sb2NrZWRfbGlzdChqb3VybmFsLAotCQkJCQkJY29tbWl0X3RyYW5zYWN0aW9uKTsKLQkJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQkJaWYgKGVycikKLQkJCV9famJkMl9qb3VybmFsX2Fib3J0X2hhcmQoam91cm5hbCk7CiAJfQogCisJLyoKKwkgKiBUaGlzIGlzIHRoZSByaWdodCBwbGFjZSB0byB3YWl0IGZvciBkYXRhIGJ1ZmZlcnMgYm90aCBmb3IgQVNZTkMKKwkgKiBhbmQgIUFTWU5DIGNvbW1pdC4gSWYgY29tbWl0IGlzIEFTWU5DLCB3ZSBuZWVkIHRvIHdhaXQgb25seSBhZnRlcgorCSAqIHRoZSBjb21taXQgYmxvY2sgd2VudCB0byBkaXNrICh3aGljaCBoYXBwZW5zIGFib3ZlKS4gSWYgY29tbWl0IGlzCisJICogU1lOQywgd2UgbmVlZCB0byB3YWl0IGZvciBkYXRhIGJ1ZmZlcnMgYmVmb3JlIHdlIHN0YXJ0IHdyaXRpbmcKKwkgKiBjb21taXQgYmxvY2ssIHdoaWNoIGhhcHBlbnMgYmVsb3cgaW4gc3VjaCBzZXR0aW5nLgorCSAqLworCWVyciA9IGpvdXJuYWxfZmluaXNoX2lub2RlX2RhdGFfYnVmZmVycyhqb3VybmFsLCBjb21taXRfdHJhbnNhY3Rpb24pOworCWlmIChlcnIpCisJCWpiZDJfam91cm5hbF9hYm9ydChqb3VybmFsLCBlcnIpOworCiAJLyogTG8gYW5kIGJlaG9sZDogd2UgaGF2ZSBqdXN0IG1hbmFnZWQgdG8gc2VuZCBhIHRyYW5zYWN0aW9uIHRvCiAgICAgICAgICAgIHRoZSBsb2cuICBCZWZvcmUgd2UgY2FuIGNvbW1pdCBpdCwgd2FpdCBmb3IgdGhlIElPIHNvIGZhciB0bwogICAgICAgICAgICBjb21wbGV0ZS4gIENvbnRyb2wgYnVmZmVycyBiZWluZyB3cml0dGVuIGFyZSBvbiB0aGUKQEAgLTc2Nyw3ICs2ODQsNyBAQAogCSAgIHNvIHdlIGluY3VyIGxlc3Mgc2NoZWR1bGluZyBsb2FkLgogCSovCiAKLQlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDRcbiIpOworCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgM1xuIik7CiAKIAkvKgogCSAqIGFrcG06IHRoZXNlIGFyZSBCSl9JTywgYW5kIGpfbGlzdF9sb2NrIGlzIG5vdCBuZWVkZWQuCkBAIC04MjYsNyArNzQzLDcgQEAKIAogCUpfQVNTRVJUIChjb21taXRfdHJhbnNhY3Rpb24tPnRfc2hhZG93X2xpc3QgPT0gTlVMTCk7CiAKLQlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDVcbiIpOworCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNFxuIik7CiAKIAkvKiBIZXJlIHdlIHdhaXQgZm9yIHRoZSByZXZva2UgcmVjb3JkIGFuZCBkZXNjcmlwdG9yIHJlY29yZCBidWZmZXJzICovCiAgd2FpdF9mb3JfY3RsYnVmOgpAQCAtODUzLDcgKzc3MCw3IEBACiAJCS8qIEFLUE06IGJmb3JnZXQgaGVyZSAqLwogCX0KIAotCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgNlxuIik7CisJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA1XG4iKTsKIAogCWlmICghSkJEMl9IQVNfSU5DT01QQVRfRkVBVFVSRShqb3VybmFsLAogCQlKQkQyX0ZFQVRVUkVfSU5DT01QQVRfQVNZTkNfQ09NTUlUKSkgewpAQCAtODczLDkgKzc5MCw5IEBACiAgICAgICAgICAgIHRyYW5zYWN0aW9uIGNhbiBiZSByZW1vdmVkIGZyb20gYW55IGNoZWNrcG9pbnQgbGlzdCBpdCB3YXMgb24KICAgICAgICAgICAgYmVmb3JlLiAqLwogCi0JamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA3XG4iKTsKKwlqYmRfZGVidWcoMywgIkpCRDogY29tbWl0IHBoYXNlIDZcbiIpOwogCi0JSl9BU1NFUlQoY29tbWl0X3RyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3QgPT0gTlVMTCk7CisJSl9BU1NFUlQobGlzdF9lbXB0eSgmY29tbWl0X3RyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QpKTsKIAlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfYnVmZmVycyA9PSBOVUxMKTsKIAlKX0FTU0VSVChjb21taXRfdHJhbnNhY3Rpb24tPnRfY2hlY2twb2ludF9saXN0ID09IE5VTEwpOwogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9pb2J1Zl9saXN0ID09IE5VTEwpOwpAQCAtOTk2LDcgKzkxMyw3IEBACiAKIAkvKiBEb25lIHdpdGggdGhpcyB0cmFuc2FjdGlvbiEgKi8KIAotCWpiZF9kZWJ1ZygzLCAiSkJEOiBjb21taXQgcGhhc2UgOFxuIik7CisJamJkX2RlYnVnKDMsICJKQkQ6IGNvbW1pdCBwaGFzZSA3XG4iKTsKIAogCUpfQVNTRVJUKGNvbW1pdF90cmFuc2FjdGlvbi0+dF9zdGF0ZSA9PSBUX0NPTU1JVCk7CiAKZGlmZiAtLWdpdCBhL2ZzL2piZDIvam91cm5hbC5jIGIvZnMvamJkMi9qb3VybmFsLmMKaW5kZXggMmUyNDU2Ny4uYjI2YzZkOSAxMDA2NDQKLS0tIGEvZnMvamJkMi9qb3VybmFsLmMKKysrIGIvZnMvamJkMi9qb3VybmFsLmMKQEAgLTUwLDcgKzUwLDYgQEAKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2dldF93cml0ZV9hY2Nlc3MpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZ2V0X2NyZWF0ZV9hY2Nlc3MpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZ2V0X3VuZG9fYWNjZXNzKTsKLUVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2RpcnR5X2RhdGEpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZGlydHlfbWV0YWRhdGEpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfcmVsZWFzZV9idWZmZXIpOwogRVhQT1JUX1NZTUJPTChqYmQyX2pvdXJuYWxfZm9yZ2V0KTsKQEAgLTgyLDYgKzgxLDEwIEBACiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9pbnZhbGlkYXRlcGFnZSk7CiBFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXJzKTsKIEVYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2ZvcmNlX2NvbW1pdCk7CitFWFBPUlRfU1lNQk9MKGpiZDJfam91cm5hbF9maWxlX2lub2RlKTsKK0VYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2luaXRfamJkX2lub2RlKTsKK0VYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX3JlbGVhc2VfamJkX2lub2RlKTsKK0VYUE9SVF9TWU1CT0woamJkMl9qb3VybmFsX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUpOwogCiBzdGF0aWMgaW50IGpvdXJuYWxfY29udmVydF9zdXBlcmJsb2NrX3YxKGpvdXJuYWxfdCAqLCBqb3VybmFsX3N1cGVyYmxvY2tfdCAqKTsKIHN0YXRpYyB2b2lkIF9fam91cm5hbF9hYm9ydF9zb2Z0IChqb3VybmFsX3QgKmpvdXJuYWwsIGludCBlcnJubyk7CkBAIC0yMTk1LDYgKzIxOTgsNTQgQEAKIH0KIAogLyoKKyAqIEluaXRpYWxpemUgamJkIGlub2RlIGhlYWQKKyAqLwordm9pZCBqYmQyX2pvdXJuYWxfaW5pdF9qYmRfaW5vZGUoc3RydWN0IGpiZDJfaW5vZGUgKmppbm9kZSwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKKwlqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPSBOVUxMOworCWppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID0gTlVMTDsKKwlqaW5vZGUtPmlfdmZzX2lub2RlID0gaW5vZGU7CisJamlub2RlLT5pX2ZsYWdzID0gMDsKKwlJTklUX0xJU1RfSEVBRCgmamlub2RlLT5pX2xpc3QpOworfQorCisvKgorICogRnVuY3Rpb24gdG8gYmUgY2FsbGVkIGJlZm9yZSB3ZSBzdGFydCByZW1vdmluZyBpbm9kZSBmcm9tIG1lbW9yeSAoaS5lLiwKKyAqIGNsZWFyX2lub2RlKCkgaXMgYSBmaW5lIHBsYWNlIHRvIGJlIGNhbGxlZCBmcm9tKS4gSXQgcmVtb3ZlcyBpbm9kZSBmcm9tCisgKiB0cmFuc2FjdGlvbidzIGxpc3RzLgorICovCit2b2lkIGpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9pbm9kZShqb3VybmFsX3QgKmpvdXJuYWwsCisJCQkJICAgIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpCit7CisJaW50IHdyaXRlb3V0ID0gMDsKKworCWlmICgham91cm5hbCkKKwkJcmV0dXJuOworcmVzdGFydDoKKwlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKKwkvKiBJcyBjb21taXQgd3JpdGluZyBvdXQgaW5vZGUgLSB3ZSBoYXZlIHRvIHdhaXQgKi8KKwlpZiAoamlub2RlLT5pX2ZsYWdzICYgSklfQ09NTUlUX1JVTk5JTkcpIHsKKwkJd2FpdF9xdWV1ZV9oZWFkX3QgKndxOworCQlERUZJTkVfV0FJVF9CSVQod2FpdCwgJmppbm9kZS0+aV9mbGFncywgX19KSV9DT01NSVRfUlVOTklORyk7CisJCXdxID0gYml0X3dhaXRxdWV1ZSgmamlub2RlLT5pX2ZsYWdzLCBfX0pJX0NPTU1JVF9SVU5OSU5HKTsKKwkJcHJlcGFyZV90b193YWl0KHdxLCAmd2FpdC53YWl0LCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7CisJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisJCXNjaGVkdWxlKCk7CisJCWZpbmlzaF93YWl0KHdxLCAmd2FpdC53YWl0KTsKKwkJZ290byByZXN0YXJ0OworCX0KKworCS8qIERvIHdlIG5lZWQgdG8gd2FpdCBmb3IgZGF0YSB3cml0ZWJhY2s/ICovCisJaWYgKGpvdXJuYWwtPmpfY29tbWl0dGluZ190cmFuc2FjdGlvbiA9PSBqaW5vZGUtPmlfdHJhbnNhY3Rpb24pCisJCXdyaXRlb3V0ID0gMTsKKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uKSB7CisJCWxpc3RfZGVsKCZqaW5vZGUtPmlfbGlzdCk7CisJCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IE5VTEw7CisJfQorCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Cit9CisKKy8qCiAgKiBkZWJ1Z2ZzIHR1bmFibGVzCiAgKi8KICNpZmRlZiBDT05GSUdfSkJEMl9ERUJVRwpkaWZmIC0tZ2l0IGEvZnMvamJkMi9yZWNvdmVyeS5jIGIvZnMvamJkMi9yZWNvdmVyeS5jCmluZGV4IDVkMDQwNWEuLjA1OGY1MGYgMTAwNjQ0Ci0tLSBhL2ZzL2piZDIvcmVjb3ZlcnkuYworKysgYi9mcy9qYmQyL3JlY292ZXJ5LmMKQEAgLTM0NCw2ICszNDQsNyBAQAogCQkJKmNyYzMyX3N1bSA9IGNyYzMyX2JlKCpjcmMzMl9zdW0sICh2b2lkICopb2JoLT5iX2RhdGEsCiAJCQkJICAgICBvYmgtPmJfc2l6ZSk7CiAJCX0KKwkJcHV0X2JoKG9iaCk7CiAJfQogCXJldHVybiAwOwogfQpAQCAtNjEwLDkgKzYxMSw4IEBACiAJCQkJY2hrc3VtX2VyciA9IGNoa3N1bV9zZWVuID0gMDsKIAogCQkJCWlmIChpbmZvLT5lbmRfdHJhbnNhY3Rpb24pIHsKLQkJCQkJcHJpbnRrKEtFUk5fRVJSICJKQkQ6IFRyYW5zYWN0aW9uICV1ICIKLQkJCQkJCSJmb3VuZCB0byBiZSBjb3JydXB0LlxuIiwKLQkJCQkJCW5leHRfY29tbWl0X0lEIC0gMSk7CisJCQkJCWpvdXJuYWwtPmpfZmFpbGVkX2NvbW1pdCA9CisJCQkJCQlpbmZvLT5lbmRfdHJhbnNhY3Rpb247CiAJCQkJCWJyZWxzZShiaCk7CiAJCQkJCWJyZWFrOwogCQkJCX0KQEAgLTY0MywxMCArNjQzLDggQEAKIAogCQkJCQlpZiAoIUpCRDJfSEFTX0lOQ09NUEFUX0ZFQVRVUkUoam91cm5hbCwKIAkJCQkJICAgSkJEMl9GRUFUVVJFX0lOQ09NUEFUX0FTWU5DX0NPTU1JVCkpewotCQkJCQkJcHJpbnRrKEtFUk5fRVJSCi0JCQkJCQkgICAgICAgIkpCRDogVHJhbnNhY3Rpb24gJXUgIgotCQkJCQkJICAgICAgICJmb3VuZCB0byBiZSBjb3JydXB0LlxuIiwKLQkJCQkJCSAgICAgICBuZXh0X2NvbW1pdF9JRCk7CisJCQkJCQlqb3VybmFsLT5qX2ZhaWxlZF9jb21taXQgPQorCQkJCQkJCW5leHRfY29tbWl0X0lEOwogCQkJCQkJYnJlbHNlKGJoKTsKIAkJCQkJCWJyZWFrOwogCQkJCQl9CmRpZmYgLS1naXQgYS9mcy9qYmQyL3RyYW5zYWN0aW9uLmMgYi9mcy9qYmQyL3RyYW5zYWN0aW9uLmMKaW5kZXggZDZlMDA2ZS4uNGY3Y2FkYiAxMDA2NDQKLS0tIGEvZnMvamJkMi90cmFuc2FjdGlvbi5jCisrKyBiL2ZzL2piZDIvdHJhbnNhY3Rpb24uYwpAQCAtNDEsNyArNDEsNiBAQAogICoJbmV3IHRyYW5zYWN0aW9uCWFuZCB3ZSBjYW4ndCBibG9jayB3aXRob3V0IHByb3RlY3RpbmcgYWdhaW5zdCBvdGhlcgogICoJcHJvY2Vzc2VzIHRyeWluZyB0byB0b3VjaCB0aGUgam91cm5hbCB3aGlsZSBpdCBpcyBpbiB0cmFuc2l0aW9uLgogICoKLSAqIENhbGxlZCB1bmRlciBqX3N0YXRlX2xvY2sKICAqLwogCiBzdGF0aWMgdHJhbnNhY3Rpb25fdCAqCkBAIC01Miw2ICs1MSw3IEBACiAJdHJhbnNhY3Rpb24tPnRfdGlkID0gam91cm5hbC0+al90cmFuc2FjdGlvbl9zZXF1ZW5jZSsrOwogCXRyYW5zYWN0aW9uLT50X2V4cGlyZXMgPSBqaWZmaWVzICsgam91cm5hbC0+al9jb21taXRfaW50ZXJ2YWw7CiAJc3Bpbl9sb2NrX2luaXQoJnRyYW5zYWN0aW9uLT50X2hhbmRsZV9sb2NrKTsKKwlJTklUX0xJU1RfSEVBRCgmdHJhbnNhY3Rpb24tPnRfaW5vZGVfbGlzdCk7CiAKIAkvKiBTZXQgdXAgdGhlIGNvbW1pdCB0aW1lciBmb3IgdGhlIG5ldyB0cmFuc2FjdGlvbi4gKi8KIAlqb3VybmFsLT5qX2NvbW1pdF90aW1lci5leHBpcmVzID0gcm91bmRfamlmZmllcyh0cmFuc2FjdGlvbi0+dF9leHBpcmVzKTsKQEAgLTk0MywxODMgKzk0Myw2IEBACiB9CiAKIC8qKgotICogaW50IGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKCkgLSAgbWFyayBhIGJ1ZmZlciBhcyBjb250YWluaW5nIGRpcnR5IGRhdGEgd2hpY2gKLSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkcyB0byBiZSBmbHVzaGVkIGJlZm9yZSB3ZSBjYW4gY29tbWl0IHRoZQotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgdHJhbnNhY3Rpb24uCi0gKiBAaGFuZGxlOiB0cmFuc2FjdGlvbgotICogQGJoOiBidWZmZXJoZWFkIHRvIG1hcmsKLSAqCi0gKiBUaGUgYnVmZmVyIGlzIHBsYWNlZCBvbiB0aGUgdHJhbnNhY3Rpb24ncyBkYXRhIGxpc3QgYW5kIGlzIG1hcmtlZCBhcwotICogYmVsb25naW5nIHRvIHRoZSB0cmFuc2FjdGlvbi4KLSAqCi0gKiBSZXR1cm5zIGVycm9yIG51bWJlciBvciAwIG9uIHN1Y2Nlc3MuCi0gKgotICogamJkMl9qb3VybmFsX2RpcnR5X2RhdGEoKSBjYW4gYmUgY2FsbGVkIHZpYSBwYWdlX2xhdW5kZXItPmV4dDNfd3JpdGVwYWdlCi0gKiBieSBrc3dhcGQuCi0gKi8KLWludCBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YShoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKQotewotCWpvdXJuYWxfdCAqam91cm5hbCA9IGhhbmRsZS0+aF90cmFuc2FjdGlvbi0+dF9qb3VybmFsOwotCWludCBuZWVkX2JyZWxzZSA9IDA7Ci0Jc3RydWN0IGpvdXJuYWxfaGVhZCAqamg7Ci0KLQlpZiAoaXNfaGFuZGxlX2Fib3J0ZWQoaGFuZGxlKSkKLQkJcmV0dXJuIDA7Ci0KLQlqaCA9IGpiZDJfam91cm5hbF9hZGRfam91cm5hbF9oZWFkKGJoKTsKLQlKQlVGRkVSX1RSQUNFKGpoLCAiZW50cnkiKTsKLQotCS8qCi0JICogVGhlIGJ1ZmZlciBjb3VsZCAqYWxyZWFkeSogYmUgZGlydHkuICBXcml0ZW91dCBjYW4gc3RhcnQKLQkgKiBhdCBhbnkgdGltZS4KLQkgKi8KLQlqYmRfZGVidWcoNCwgImpoOiAlcCwgdGlkOiVkXG4iLCBqaCwgaGFuZGxlLT5oX3RyYW5zYWN0aW9uLT50X3RpZCk7Ci0KLQkvKgotCSAqIFdoYXQgaWYgdGhlIGJ1ZmZlciBpcyBhbHJlYWR5IHBhcnQgb2YgYSBydW5uaW5nIHRyYW5zYWN0aW9uPwotCSAqCi0JICogVGhlcmUgYXJlIHR3byBjYXNlczoKLQkgKiAxKSBJdCBpcyBwYXJ0IG9mIHRoZSBjdXJyZW50IHJ1bm5pbmcgdHJhbnNhY3Rpb24uICBSZWZpbGUgaXQsCi0JICogICAganVzdCBpbiBjYXNlIHdlIGhhdmUgYWxsb2NhdGVkIGl0IGFzIG1ldGFkYXRhLCBkZWFsbG9jYXRlZAotCSAqICAgIGl0LCB0aGVuIHJlYWxsb2NhdGVkIGl0IGFzIGRhdGEuCi0JICogMikgSXQgaXMgcGFydCBvZiB0aGUgcHJldmlvdXMsIHN0aWxsLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb24uCi0JICogICAgSWYgYWxsIHdlIHdhbnQgdG8gZG8gaXMgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGJ1ZmZlciB3aWxsIGJlCi0JICogICAgd3JpdHRlbiB0byBkaXNrIGJlZm9yZSB0aGlzIG5ldyB0cmFuc2FjdGlvbiBjb21taXRzLCB0aGVuCi0JICogICAgYmVpbmcgc3VyZSB0aGF0IHRoZSAqcHJldmlvdXMqIHRyYW5zYWN0aW9uIGhhcyB0aGlzIHNhbWUKLQkgKiAgICBwcm9wZXJ0eSBpcyBzdWZmaWNpZW50IGZvciB1cyEgIEp1c3QgbGVhdmUgaXQgb24gaXRzIG9sZAotCSAqICAgIHRyYW5zYWN0aW9uLgotCSAqCi0JICogSW4gY2FzZSAoMiksIHRoZSBidWZmZXIgbXVzdCBub3QgYWxyZWFkeSBleGlzdCBhcyBtZXRhZGF0YQotCSAqIC0tLSB0aGF0IHdvdWxkIHZpb2xhdGUgd3JpdGUgb3JkZXJpbmcgKGEgdHJhbnNhY3Rpb24gaXMgZnJlZQotCSAqIHRvIHdyaXRlIGl0cyBkYXRhIGF0IGFueSBwb2ludCwgZXZlbiBiZWZvcmUgdGhlIHByZXZpb3VzCi0JICogY29tbWl0dGluZyB0cmFuc2FjdGlvbiBoYXMgY29tbWl0dGVkKS4gIFRoZSBjYWxsZXIgbXVzdAotCSAqIG5ldmVyLCBldmVyIGFsbG93IHRoaXMgdG8gaGFwcGVuOiB0aGVyZSdzIG5vdGhpbmcgd2UgY2FuIGRvCi0JICogYWJvdXQgaXQgaW4gdGhpcyBsYXllci4KLQkgKi8KLQlqYmRfbG9ja19iaF9zdGF0ZShiaCk7Ci0Jc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0KLQkvKiBOb3cgdGhhdCB3ZSBoYXZlIGJoX3N0YXRlIGxvY2tlZCwgYXJlIHdlIHJlYWxseSBzdGlsbCBtYXBwZWQ/ICovCi0JaWYgKCFidWZmZXJfbWFwcGVkKGJoKSkgewotCQlKQlVGRkVSX1RSQUNFKGpoLCAidW5tYXBwZWQgYnVmZmVyLCBiYWlsaW5nIG91dCIpOwotCQlnb3RvIG5vX2pvdXJuYWw7Ci0JfQotCi0JaWYgKGpoLT5iX3RyYW5zYWN0aW9uKSB7Ci0JCUpCVUZGRVJfVFJBQ0UoamgsICJoYXMgdHJhbnNhY3Rpb24iKTsKLQkJaWYgKGpoLT5iX3RyYW5zYWN0aW9uICE9IGhhbmRsZS0+aF90cmFuc2FjdGlvbikgewotCQkJSkJVRkZFUl9UUkFDRShqaCwgImJlbG9uZ3MgdG8gb2xkZXIgdHJhbnNhY3Rpb24iKTsKLQkJCUpfQVNTRVJUX0pIKGpoLCBqaC0+Yl90cmFuc2FjdGlvbiA9PQotCQkJCQlqb3VybmFsLT5qX2NvbW1pdHRpbmdfdHJhbnNhY3Rpb24pOwotCi0JCQkvKiBAQEAgSVMgVEhJUyBUUlVFICA/ICovCi0JCQkvKgotCQkJICogTm90IGFueSBtb3JlLiAgU2NlbmFyaW86IHNvbWVvbmUgZG9lcyBhIHdyaXRlKCkKLQkJCSAqIGluIGRhdGE9am91cm5hbCBtb2RlLiAgVGhlIGJ1ZmZlcidzIHRyYW5zYWN0aW9uIGhhcwotCQkJICogbW92ZWQgaW50byBjb21taXQuICBUaGVuIHNvbWVvbmUgZG9lcyBhbm90aGVyCi0JCQkgKiB3cml0ZSgpIHRvIHRoZSBmaWxlLiAgV2UgZG8gdGhlIGZyb3plbiBkYXRhIGNvcHlvdXQKLQkJCSAqIGFuZCBzZXQgYl9uZXh0X3RyYW5zYWN0aW9uIHRvIHBvaW50IHRvIGpfcnVubmluZ190LgotCQkJICogQW5kIHdoaWxlIHdlJ3JlIGluIHRoYXQgc3RhdGUsIHNvbWVvbmUgZG9lcyBhCi0JCQkgKiB3cml0ZXBhZ2UoKSBpbiBhbiBhdHRlbXB0IHRvIHBhZ2VvdXQgdGhlIHNhbWUgYXJlYQotCQkJICogb2YgdGhlIGZpbGUgdmlhIGEgc2hhcmVkIG1hcHBpbmcuICBBdCBwcmVzZW50IHRoYXQKLQkJCSAqIGNhbGxzIGpiZDJfam91cm5hbF9kaXJ0eV9kYXRhKCksIGFuZCB3ZSBnZXQgcmlnaHQgaGVyZS4KLQkJCSAqIEl0IG1heSBiZSB0b28gbGF0ZSB0byBqb3VybmFsIHRoZSBkYXRhLiAgU2ltcGx5Ci0JCQkgKiBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIG5leHQgdGVzdCB3aWxsIHN1ZmZpY2U6IHRoZQotCQkJICogZGF0YSB3aWxsIGJlIGRpcnR5IGFuZCB3aWwgYmUgY2hlY2twb2ludGVkLiAgVGhlCi0JCQkgKiBvcmRlcmluZyBjb21tZW50cyBpbiB0aGUgbmV4dCBjb21tZW50IGJsb2NrIHN0aWxsCi0JCQkgKiBhcHBseS4KLQkJCSAqLwotCQkJLy9KX0FTU0VSVF9KSChqaCwgamgtPmJfbmV4dF90cmFuc2FjdGlvbiA9PSBOVUxMKTsKLQotCQkJLyoKLQkJCSAqIElmIHdlJ3JlIGpvdXJuYWxsaW5nIGRhdGEsIGFuZCB0aGlzIGJ1ZmZlciB3YXMKLQkJCSAqIHN1YmplY3QgdG8gYSB3cml0ZSgpLCBpdCBjb3VsZCBiZSBtZXRhZGF0YSwgZm9yZ2V0Ci0JCQkgKiBvciBzaGFkb3cgYWdhaW5zdCB0aGUgY29tbWl0dGluZyB0cmFuc2FjdGlvbi4gIE5vdywKLQkJCSAqIHNvbWVvbmUgaGFzIGRpcnRpZWQgdGhlIHNhbWUgZGFybiBwYWdlIHZpYSBhIG1hcHBpbmcKLQkJCSAqIGFuZCBpdCBpcyBiZWluZyB3cml0ZXBhZ2UoKSdkLgotCQkJICogV2UgKmNvdWxkKiBqdXN0IHN0ZWFsIHRoZSBwYWdlIGZyb20gY29tbWl0LCB3aXRoIHNvbWUKLQkJCSAqIGZhbmN5IGxvY2tpbmcgdGhlcmUuICBJbnN0ZWFkLCB3ZSBqdXN0IHNraXAgaXQgLQotCQkJICogZG9uJ3QgdGllIHRoZSBwYWdlJ3MgYnVmZmVycyB0byB0aGUgbmV3IHRyYW5zYWN0aW9uCi0JCQkgKiBhdCBhbGwuCi0JCQkgKiBJbXBsaWNhdGlvbjogaWYgd2UgY3Jhc2ggYmVmb3JlIHRoZSB3cml0ZXBhZ2UoKSBkYXRhCi0JCQkgKiBpcyB3cml0dGVuIGludG8gdGhlIGZpbGVzeXN0ZW0sIHJlY292ZXJ5IHdpbGwgcmVwbGF5Ci0JCQkgKiB0aGUgd3JpdGUoKSBkYXRhLgotCQkJICovCi0JCQlpZiAoamgtPmJfamxpc3QgIT0gQkpfTm9uZSAmJgotCQkJCQlqaC0+Yl9qbGlzdCAhPSBCSl9TeW5jRGF0YSAmJgotCQkJCQlqaC0+Yl9qbGlzdCAhPSBCSl9Mb2NrZWQpIHsKLQkJCQlKQlVGRkVSX1RSQUNFKGpoLCAiTm90IHN0ZWFsaW5nIik7Ci0JCQkJZ290byBub19qb3VybmFsOwotCQkJfQotCi0JCQkvKgotCQkJICogVGhpcyBidWZmZXIgbWF5IGJlIHVuZGVyZ29pbmcgd3JpdGVvdXQgaW4gY29tbWl0LiAgV2UKLQkJCSAqIGNhbid0IHJldHVybiBmcm9tIGhlcmUgYW5kIGxldCB0aGUgY2FsbGVyIGRpcnR5IGl0Ci0JCQkgKiBhZ2FpbiBiZWNhdXNlIHRoYXQgY2FuIGNhdXNlIHRoZSB3cml0ZS1vdXQgbG9vcCBpbgotCQkJICogY29tbWl0IHRvIG5ldmVyIHRlcm1pbmF0ZS4KLQkJCSAqLwotCQkJaWYgKGJ1ZmZlcl9kaXJ0eShiaCkpIHsKLQkJCQlnZXRfYmgoYmgpOwotCQkJCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JCQkJbmVlZF9icmVsc2UgPSAxOwotCQkJCXN5bmNfZGlydHlfYnVmZmVyKGJoKTsKLQkJCQlqYmRfbG9ja19iaF9zdGF0ZShiaCk7Ci0JCQkJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JCQkJLyogU2luY2Ugd2UgZHJvcHBlZCB0aGUgbG9jay4uLiAqLwotCQkJCWlmICghYnVmZmVyX21hcHBlZChiaCkpIHsKLQkJCQkJSkJVRkZFUl9UUkFDRShqaCwgImJ1ZmZlciBnb3QgdW5tYXBwZWQiKTsKLQkJCQkJZ290byBub19qb3VybmFsOwotCQkJCX0KLQkJCQkvKiBUaGUgYnVmZmVyIG1heSBiZWNvbWUgbG9ja2VkIGFnYWluIGF0IGFueQotCQkJCSAgIHRpbWUgaWYgaXQgaXMgcmVkaXJ0aWVkICovCi0JCQl9Ci0KLQkJCS8qIGpvdXJuYWxfY2xlYW5fZGF0YV9saXN0KCkgbWF5IGhhdmUgZ290IHRoZXJlIGZpcnN0ICovCi0JCQlpZiAoamgtPmJfdHJhbnNhY3Rpb24gIT0gTlVMTCkgewotCQkJCUpCVUZGRVJfVFJBQ0UoamgsICJ1bmZpbGUgZnJvbSBjb21taXQiKTsKLQkJCQlfX2piZDJfam91cm5hbF90ZW1wX3VubGlua19idWZmZXIoamgpOwotCQkJCS8qIEl0IHN0aWxsIHBvaW50cyB0byB0aGUgY29tbWl0dGluZwotCQkJCSAqIHRyYW5zYWN0aW9uOyBtb3ZlIGl0IHRvIHRoaXMgb25lIHNvCi0JCQkJICogdGhhdCB0aGUgcmVmaWxlIGFzc2VydCBjaGVja3MgYXJlCi0JCQkJICogaGFwcHkuICovCi0JCQkJamgtPmJfdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247Ci0JCQl9Ci0JCQkvKiBUaGUgYnVmZmVyIHdpbGwgYmUgcmVmaWxlZCBiZWxvdyAqLwotCi0JCX0KLQkJLyoKLQkJICogU3BlY2lhbCBjYXNlIC0tLSB0aGUgYnVmZmVyIG1pZ2h0IGFjdHVhbGx5IGhhdmUgYmVlbgotCQkgKiBhbGxvY2F0ZWQgYW5kIHRoZW4gaW1tZWRpYXRlbHkgZGVhbGxvY2F0ZWQgaW4gdGhlIHByZXZpb3VzLAotCQkgKiBjb21taXR0aW5nIHRyYW5zYWN0aW9uLCBzbyBtaWdodCBzdGlsbCBiZSBsZWZ0IG9uIHRoYXQKLQkJICogdHJhbnNhY3Rpb24ncyBtZXRhZGF0YSBsaXN0cy4KLQkJICovCi0JCWlmIChqaC0+Yl9qbGlzdCAhPSBCSl9TeW5jRGF0YSAmJiBqaC0+Yl9qbGlzdCAhPSBCSl9Mb2NrZWQpIHsKLQkJCUpCVUZGRVJfVFJBQ0UoamgsICJub3Qgb24gY29ycmVjdCBkYXRhIGxpc3Q6IHVuZmlsZSIpOwotCQkJSl9BU1NFUlRfSkgoamgsIGpoLT5iX2psaXN0ICE9IEJKX1NoYWRvdyk7Ci0JCQlfX2piZDJfam91cm5hbF90ZW1wX3VubGlua19idWZmZXIoamgpOwotCQkJamgtPmJfdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247Ci0JCQlKQlVGRkVSX1RSQUNFKGpoLCAiZmlsZSBhcyBkYXRhIik7Ci0JCQlfX2piZDJfam91cm5hbF9maWxlX2J1ZmZlcihqaCwgaGFuZGxlLT5oX3RyYW5zYWN0aW9uLAotCQkJCQkJQkpfU3luY0RhdGEpOwotCQl9Ci0JfSBlbHNlIHsKLQkJSkJVRkZFUl9UUkFDRShqaCwgIm5vdCBvbiBhIHRyYW5zYWN0aW9uIik7Ci0JCV9famJkMl9qb3VybmFsX2ZpbGVfYnVmZmVyKGpoLCBoYW5kbGUtPmhfdHJhbnNhY3Rpb24sIEJKX1N5bmNEYXRhKTsKLQl9Ci1ub19qb3VybmFsOgotCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7Ci0JamJkX3VubG9ja19iaF9zdGF0ZShiaCk7Ci0JaWYgKG5lZWRfYnJlbHNlKSB7Ci0JCUJVRkZFUl9UUkFDRShiaCwgImJyZWxzZSIpOwotCQlfX2JyZWxzZShiaCk7Ci0JfQotCUpCVUZGRVJfVFJBQ0UoamgsICJleGl0Iik7Ci0JamJkMl9qb3VybmFsX3B1dF9qb3VybmFsX2hlYWQoamgpOwotCXJldHVybiAwOwotfQotCi0vKioKICAqIGludCBqYmQyX2pvdXJuYWxfZGlydHlfbWV0YWRhdGEoKSAtICBtYXJrIGEgYnVmZmVyIGFzIGNvbnRhaW5pbmcgZGlydHkgbWV0YWRhdGEKICAqIEBoYW5kbGU6IHRyYW5zYWN0aW9uIHRvIGFkZCBidWZmZXIgdG8uCiAgKiBAYmg6IGJ1ZmZlciB0byBtYXJrCkBAIC0xNTQxLDEwICsxMzY0LDEwIEBACiAgKiBSZW1vdmUgYSBidWZmZXIgZnJvbSB0aGUgYXBwcm9wcmlhdGUgdHJhbnNhY3Rpb24gbGlzdC4KICAqCiAgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBjYW4gKmNoYW5nZSogdGhlIHZhbHVlIG9mCi0gKiBiaC0+Yl90cmFuc2FjdGlvbi0+dF9zeW5jX2RhdGFsaXN0LCB0X2J1ZmZlcnMsIHRfZm9yZ2V0LAotICogdF9pb2J1Zl9saXN0LCB0X3NoYWRvd19saXN0LCB0X2xvZ19saXN0IG9yIHRfcmVzZXJ2ZWRfbGlzdC4gIElmIHRoZSBjYWxsZXIKLSAqIGlzIGhvbGRpbmcgb250byBhIGNvcHkgb2Ygb25lIG9mIHRoZWUgcG9pbnRlcnMsIGl0IGNvdWxkIGdvIGJhZC4KLSAqIEdlbmVyYWxseSB0aGUgY2FsbGVyIG5lZWRzIHRvIHJlLXJlYWQgdGhlIHBvaW50ZXIgZnJvbSB0aGUgdHJhbnNhY3Rpb25fdC4KKyAqIGJoLT5iX3RyYW5zYWN0aW9uLT50X2J1ZmZlcnMsIHRfZm9yZ2V0LCB0X2lvYnVmX2xpc3QsIHRfc2hhZG93X2xpc3QsCisgKiB0X2xvZ19saXN0IG9yIHRfcmVzZXJ2ZWRfbGlzdC4gIElmIHRoZSBjYWxsZXIgaXMgaG9sZGluZyBvbnRvIGEgY29weSBvZiBvbmUKKyAqIG9mIHRoZXNlIHBvaW50ZXJzLCBpdCBjb3VsZCBnbyBiYWQuICBHZW5lcmFsbHkgdGhlIGNhbGxlciBuZWVkcyB0byByZS1yZWFkCisgKiB0aGUgcG9pbnRlciBmcm9tIHRoZSB0cmFuc2FjdGlvbl90LgogICoKICAqIENhbGxlZCB1bmRlciBqX2xpc3RfbG9jay4gIFRoZSBqb3VybmFsIG1heSBub3QgYmUgbG9ja2VkLgogICovCkBAIC0xNTY2LDkgKzEzODksNiBAQAogCXN3aXRjaCAoamgtPmJfamxpc3QpIHsKIAljYXNlIEJKX05vbmU6CiAJCXJldHVybjsKLQljYXNlIEJKX1N5bmNEYXRhOgotCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3Q7Ci0JCWJyZWFrOwogCWNhc2UgQkpfTWV0YWRhdGE6CiAJCXRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMtLTsKIAkJSl9BU1NFUlRfSkgoamgsIHRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMgPj0gMCk7CkBAIC0xNTg5LDkgKzE0MDksNiBAQAogCWNhc2UgQkpfUmVzZXJ2ZWQ6CiAJCWxpc3QgPSAmdHJhbnNhY3Rpb24tPnRfcmVzZXJ2ZWRfbGlzdDsKIAkJYnJlYWs7Ci0JY2FzZSBCSl9Mb2NrZWQ6Ci0JCWxpc3QgPSAmdHJhbnNhY3Rpb24tPnRfbG9ja2VkX2xpc3Q7Ci0JCWJyZWFrOwogCX0KIAogCV9fYmxpc3RfZGVsX2J1ZmZlcihsaXN0LCBqaCk7CkBAIC0xNjM0LDE1ICsxNDUxLDcgQEAKIAkJZ290byBvdXQ7CiAKIAlzcGluX2xvY2soJmpvdXJuYWwtPmpfbGlzdF9sb2NrKTsKLQlpZiAoamgtPmJfdHJhbnNhY3Rpb24gIT0gTlVMTCAmJiBqaC0+Yl9jcF90cmFuc2FjdGlvbiA9PSBOVUxMKSB7Ci0JCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9TeW5jRGF0YSB8fCBqaC0+Yl9qbGlzdCA9PSBCSl9Mb2NrZWQpIHsKLQkJCS8qIEEgd3JpdHRlbi1iYWNrIG9yZGVyZWQgZGF0YSBidWZmZXIgKi8KLQkJCUpCVUZGRVJfVFJBQ0UoamgsICJyZWxlYXNlIGRhdGEiKTsKLQkJCV9famJkMl9qb3VybmFsX3VuZmlsZV9idWZmZXIoamgpOwotCQkJamJkMl9qb3VybmFsX3JlbW92ZV9qb3VybmFsX2hlYWQoYmgpOwotCQkJX19icmVsc2UoYmgpOwotCQl9Ci0JfSBlbHNlIGlmIChqaC0+Yl9jcF90cmFuc2FjdGlvbiAhPSBOVUxMICYmIGpoLT5iX3RyYW5zYWN0aW9uID09IE5VTEwpIHsKKwlpZiAoamgtPmJfY3BfdHJhbnNhY3Rpb24gIT0gTlVMTCAmJiBqaC0+Yl90cmFuc2FjdGlvbiA9PSBOVUxMKSB7CiAJCS8qIHdyaXR0ZW4tYmFjayBjaGVja3BvaW50ZWQgbWV0YWRhdGEgYnVmZmVyICovCiAJCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9Ob25lKSB7CiAJCQlKQlVGRkVSX1RSQUNFKGpoLCAicmVtb3ZlIGZyb20gY2hlY2twb2ludCBsaXN0Iik7CkBAIC0xNjU2LDEyICsxNDY1LDQzIEBACiAJcmV0dXJuOwogfQogCisvKgorICogamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoKSBjb3VsZCByYWNlIHdpdGgKKyAqIGpiZDJfam91cm5hbF9jb21taXRfdHJhbnNhY3Rpb24oKS4gVGhlIGxhdGVyIG1pZ2h0IHN0aWxsIGhvbGQgdGhlCisgKiByZWZlcmVuY2UgY291bnQgdG8gdGhlIGJ1ZmZlcnMgd2hlbiBpbnNwZWN0aW5nIHRoZW0gb24KKyAqIHRfc3luY2RhdGFfbGlzdCBvciB0X2xvY2tlZF9saXN0LgorICoKKyAqIGpiZDJfam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXJzKCkgd2lsbCBjYWxsIHRoaXMgZnVuY3Rpb24gdG8KKyAqIHdhaXQgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHRvIGZpbmlzaCBzeW5jaW5nIGRhdGEgYnVmZmVycywgYmVmb3JlCisgKiB0cnkgdG8gZnJlZSB0aGF0IGJ1ZmZlci4KKyAqCisgKiBDYWxsZWQgd2l0aCBqb3VybmFsLT5qX3N0YXRlX2xvY2sgaG9sZC4KKyAqLworc3RhdGljIHZvaWQgamJkMl9qb3VybmFsX3dhaXRfZm9yX3RyYW5zYWN0aW9uX3N5bmNfZGF0YShqb3VybmFsX3QgKmpvdXJuYWwpCit7CisJdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb247CisJdGlkX3QgdGlkOworCisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX3N0YXRlX2xvY2spOworCXRyYW5zYWN0aW9uID0gam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uOworCisJaWYgKCF0cmFuc2FjdGlvbikgeworCQlzcGluX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwkJcmV0dXJuOworCX0KKworCXRpZCA9IHRyYW5zYWN0aW9uLT50X3RpZDsKKwlzcGluX3VubG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwlqYmQyX2xvZ193YWl0X2NvbW1pdChqb3VybmFsLCB0aWQpOworfQogCiAvKioKICAqIGludCBqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycygpIC0gdHJ5IHRvIGZyZWUgcGFnZSBidWZmZXJzLgogICogQGpvdXJuYWw6IGpvdXJuYWwgZm9yIG9wZXJhdGlvbgogICogQHBhZ2U6IHRvIHRyeSBhbmQgZnJlZQotICogQHVudXNlZF9nZnBfbWFzazogdW51c2VkCisgKiBAZ2ZwX21hc2s6IHdlIHVzZSB0aGUgbWFzayB0byBkZXRlY3QgaG93IGhhcmQgc2hvdWxkIHdlIHRyeSB0byByZWxlYXNlCisgKiBidWZmZXJzLiBJZiBfX0dGUF9XQUlUIGFuZCBfX0dGUF9GUyBpcyBzZXQsIHdlIHdhaXQgZm9yIGNvbW1pdCBjb2RlIHRvCisgKiByZWxlYXNlIHRoZSBidWZmZXJzLgogICoKICAqCiAgKiBGb3IgYWxsIHRoZSBidWZmZXJzIG9uIHRoaXMgcGFnZSwKQEAgLTE2OTAsOSArMTUzMCwxMSBAQAogICogam91cm5hbF90cnlfdG9fZnJlZV9idWZmZXIoKSBpcyBjaGFuZ2luZyBpdHMgc3RhdGUuICBCdXQgdGhhdAogICogY2Fubm90IGhhcHBlbiBiZWNhdXNlIHdlIG5ldmVyIHJlYWxsb2NhdGUgZnJlZWQgZGF0YSBhcyBtZXRhZGF0YQogICogd2hpbGUgdGhlIGRhdGEgaXMgcGFydCBvZiBhIHRyYW5zYWN0aW9uLiAgWWVzPworICoKKyAqIFJldHVybiAwIG9uIGZhaWx1cmUsIDEgb24gc3VjY2VzcwogICovCiBpbnQgamJkMl9qb3VybmFsX3RyeV90b19mcmVlX2J1ZmZlcnMoam91cm5hbF90ICpqb3VybmFsLAotCQkJCXN0cnVjdCBwYWdlICpwYWdlLCBnZnBfdCB1bnVzZWRfZ2ZwX21hc2spCisJCQkJc3RydWN0IHBhZ2UgKnBhZ2UsIGdmcF90IGdmcF9tYXNrKQogewogCXN0cnVjdCBidWZmZXJfaGVhZCAqaGVhZDsKIAlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoOwpAQCAtMTcwOCw3ICsxNTUwLDggQEAKIAkJLyoKIAkJICogV2UgdGFrZSBvdXIgb3duIHJlZiBhZ2FpbnN0IHRoZSBqb3VybmFsX2hlYWQgaGVyZSB0byBhdm9pZAogCQkgKiBoYXZpbmcgdG8gYWRkIHRvbnMgb2YgbG9ja2luZyBhcm91bmQgZWFjaCBpbnN0YW5jZSBvZgotCQkgKiBqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZCgpIGFuZCBqYmQyX2pvdXJuYWxfcHV0X2pvdXJuYWxfaGVhZCgpLgorCQkgKiBqYmQyX2pvdXJuYWxfcmVtb3ZlX2pvdXJuYWxfaGVhZCgpIGFuZAorCQkgKiBqYmQyX2pvdXJuYWxfcHV0X2pvdXJuYWxfaGVhZCgpLgogCQkgKi8KIAkJamggPSBqYmQyX2pvdXJuYWxfZ3JhYl9qb3VybmFsX2hlYWQoYmgpOwogCQlpZiAoIWpoKQpAQCAtMTcyMSw3ICsxNTY0LDI4IEBACiAJCWlmIChidWZmZXJfamJkKGJoKSkKIAkJCWdvdG8gYnVzeTsKIAl9IHdoaWxlICgoYmggPSBiaC0+Yl90aGlzX3BhZ2UpICE9IGhlYWQpOworCiAJcmV0ID0gdHJ5X3RvX2ZyZWVfYnVmZmVycyhwYWdlKTsKKworCS8qCisJICogVGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZSBqYmQyX2pvdXJuYWxfdHJ5X3RvX2ZyZWVfYnVmZmVycygpCisJICogY291bGQgcmFjZSB3aXRoIGpiZDJfam91cm5hbF9jb21taXRfdHJhbnNhY3Rpb24oKSwgdGhlIGxhdGVyIHN0aWxsCisJICogaG9sZHMgdGhlIHJlZmVyZW5jZSB0byB0aGUgYnVmZmVycyB0byBmcmVlIHdoaWxlIHByb2Nlc3NpbmcgdGhlbS4KKwkgKiB0cnlfdG9fZnJlZV9idWZmZXJzKCkgZmFpbGVkIHRvIGZyZWUgdGhvc2UgYnVmZmVycy4gU29tZSBvZiB0aGUKKwkgKiBjYWxsZXIgb2YgcmVsZWFzZXBhZ2UoKSByZXF1ZXN0IHBhZ2UgYnVmZmVycyB0byBiZSBkcm9wcGVkLCBvdGhlcndpc2UKKwkgKiB0cmVhdCB0aGUgZmFpbC10by1mcmVlIGFzIGVycm9ycyAoc3VjaCBhcyBnZW5lcmljX2ZpbGVfZGlyZWN0X0lPKCkpCisJICoKKwkgKiBTbywgaWYgdGhlIGNhbGxlciBvZiB0cnlfdG9fcmVsZWFzZV9wYWdlKCkgd2FudHMgdGhlIHN5bmNocm9ub3VzCisJICogYmVoYXZpb3VyKGkuZSBtYWtlIHN1cmUgYnVmZmVycyBhcmUgZHJvcHBlZCB1cG9uIHJldHVybiksCisJICogbGV0J3Mgd2FpdCBmb3IgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gdG8gZmluaXNoIGZsdXNoIG9mCisJICogZGlydHkgZGF0YSBidWZmZXJzLCB0aGVuIHRyeSB0byBmcmVlIHRob3NlIGJ1ZmZlcnMgYWdhaW4sCisJICogd2l0aCB0aGUgam91cm5hbCBsb2NrZWQuCisJICovCisJaWYgKHJldCA9PSAwICYmIChnZnBfbWFzayAmIF9fR0ZQX1dBSVQpICYmIChnZnBfbWFzayAmIF9fR0ZQX0ZTKSkgeworCQlqYmQyX2pvdXJuYWxfd2FpdF9mb3JfdHJhbnNhY3Rpb25fc3luY19kYXRhKGpvdXJuYWwpOworCQlyZXQgPSB0cnlfdG9fZnJlZV9idWZmZXJzKHBhZ2UpOworCX0KKwogYnVzeToKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTgyMyw2ICsxNjg3LDcgQEAKIAlpZiAoIWJ1ZmZlcl9qYmQoYmgpKQogCQlnb3RvIHphcF9idWZmZXJfdW5sb2NrZWQ7CiAKKwkvKiBPSywgd2UgaGF2ZSBkYXRhIGJ1ZmZlciBpbiBqb3VybmFsZWQgbW9kZSAqLwogCXNwaW5fbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKIAlqYmRfbG9ja19iaF9zdGF0ZShiaCk7CiAJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CkBAIC0xODg2LDE1ICsxNzUxLDYgQEAKIAkJfQogCX0gZWxzZSBpZiAodHJhbnNhY3Rpb24gPT0gam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uKSB7CiAJCUpCVUZGRVJfVFJBQ0UoamgsICJvbiBjb21taXR0aW5nIHRyYW5zYWN0aW9uIik7Ci0JCWlmIChqaC0+Yl9qbGlzdCA9PSBCSl9Mb2NrZWQpIHsKLQkJCS8qCi0JCQkgKiBUaGUgYnVmZmVyIGlzIG9uIHRoZSBjb21taXR0aW5nIHRyYW5zYWN0aW9uJ3MgbG9ja2VkCi0JCQkgKiBsaXN0LiAgV2UgaGF2ZSB0aGUgYnVmZmVyIGxvY2tlZCwgc28gSS9PIGhhcwotCQkJICogY29tcGxldGVkLiAgU28gd2UgY2FuIG5haWwgdGhlIGJ1ZmZlciBub3cuCi0JCQkgKi8KLQkJCW1heV9mcmVlID0gX19kaXNwb3NlX2J1ZmZlcihqaCwgdHJhbnNhY3Rpb24pOwotCQkJZ290byB6YXBfYnVmZmVyOwotCQl9CiAJCS8qCiAJCSAqIElmIGl0IGlzIGNvbW1pdHRpbmcsIHdlIHNpbXBseSBjYW5ub3QgdG91Y2ggaXQuICBXZQogCQkgKiBjYW4gcmVtb3ZlIGl0J3MgbmV4dF90cmFuc2FjdGlvbiBwb2ludGVyIGZyb20gdGhlCkBAIC0yMDI3LDkgKzE4ODMsNiBAQAogCQlKX0FTU0VSVF9KSChqaCwgIWpoLT5iX2NvbW1pdHRlZF9kYXRhKTsKIAkJSl9BU1NFUlRfSkgoamgsICFqaC0+Yl9mcm96ZW5fZGF0YSk7CiAJCXJldHVybjsKLQljYXNlIEJKX1N5bmNEYXRhOgotCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3N5bmNfZGF0YWxpc3Q7Ci0JCWJyZWFrOwogCWNhc2UgQkpfTWV0YWRhdGE6CiAJCXRyYW5zYWN0aW9uLT50X25yX2J1ZmZlcnMrKzsKIAkJbGlzdCA9ICZ0cmFuc2FjdGlvbi0+dF9idWZmZXJzOwpAQCAtMjA0OSw5ICsxOTAyLDYgQEAKIAljYXNlIEJKX1Jlc2VydmVkOgogCQlsaXN0ID0gJnRyYW5zYWN0aW9uLT50X3Jlc2VydmVkX2xpc3Q7CiAJCWJyZWFrOwotCWNhc2UgQkpfTG9ja2VkOgotCQlsaXN0ID0gICZ0cmFuc2FjdGlvbi0+dF9sb2NrZWRfbGlzdDsKLQkJYnJlYWs7CiAJfQogCiAJX19ibGlzdF9hZGRfYnVmZmVyKGxpc3QsIGpoKTsKQEAgLTIxNDEsMyArMTk5MSw4OCBAQAogCXNwaW5fdW5sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CiAJX19icmVsc2UoYmgpOwogfQorCisvKgorICogRmlsZSBpbm9kZSBpbiB0aGUgaW5vZGUgbGlzdCBvZiB0aGUgaGFuZGxlJ3MgdHJhbnNhY3Rpb24KKyAqLworaW50IGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpCit7CisJdHJhbnNhY3Rpb25fdCAqdHJhbnNhY3Rpb24gPSBoYW5kbGUtPmhfdHJhbnNhY3Rpb247CisJam91cm5hbF90ICpqb3VybmFsID0gdHJhbnNhY3Rpb24tPnRfam91cm5hbDsKKworCWlmIChpc19oYW5kbGVfYWJvcnRlZChoYW5kbGUpKQorCQlyZXR1cm4gLUVJTzsKKworCWpiZF9kZWJ1Zyg0LCAiQWRkaW5nIGlub2RlICVsdSwgdGlkOiVkXG4iLCBqaW5vZGUtPmlfdmZzX2lub2RlLT5pX2lubywKKwkJCXRyYW5zYWN0aW9uLT50X3RpZCk7CisKKwkvKgorCSAqIEZpcnN0IGNoZWNrIHdoZXRoZXIgaW5vZGUgaXNuJ3QgYWxyZWFkeSBvbiB0aGUgdHJhbnNhY3Rpb24ncworCSAqIGxpc3RzIHdpdGhvdXQgdGFraW5nIHRoZSBsb2NrLiBOb3RlIHRoYXQgdGhpcyBjaGVjayBpcyBzYWZlCisJICogd2l0aG91dCB0aGUgbG9jayBhcyB3ZSBjYW5ub3QgcmFjZSB3aXRoIHNvbWVib2R5IHJlbW92aW5nIGlub2RlCisJICogZnJvbSB0aGUgdHJhbnNhY3Rpb24uIFRoZSByZWFzb24gaXMgdGhhdCB3ZSByZW1vdmUgaW5vZGUgZnJvbSB0aGUKKwkgKiB0cmFuc2FjdGlvbiBvbmx5IGluIGpvdXJuYWxfcmVsZWFzZV9qYmRfaW5vZGUoKSBhbmQgd2hlbiB3ZSBjb21taXQKKwkgKiB0aGUgdHJhbnNhY3Rpb24uIFdlIGFyZSBndWFyZGVkIGZyb20gdGhlIGZpcnN0IGNhc2UgYnkgaG9sZGluZworCSAqIGEgcmVmZXJlbmNlIHRvIHRoZSBpbm9kZS4gV2UgYXJlIHNhZmUgYWdhaW5zdCB0aGUgc2Vjb25kIGNhc2UKKwkgKiBiZWNhdXNlIGlmIGppbm9kZS0+aV90cmFuc2FjdGlvbiA9PSB0cmFuc2FjdGlvbiwgY29tbWl0IGNvZGUKKwkgKiBjYW5ub3QgdG91Y2ggdGhlIHRyYW5zYWN0aW9uIGJlY2F1c2Ugd2UgaG9sZCByZWZlcmVuY2UgdG8gaXQsCisJICogYW5kIGlmIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uLCBjb21taXQgY29kZQorCSAqIHdpbGwgb25seSBmaWxlIHRoZSBpbm9kZSB3aGVyZSB3ZSB3YW50IGl0LgorCSAqLworCWlmIChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24gfHwKKwkgICAgamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24pCisJCXJldHVybiAwOworCisJc3Bpbl9sb2NrKCZqb3VybmFsLT5qX2xpc3RfbG9jayk7CisKKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uIHx8CisJICAgIGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IHRyYW5zYWN0aW9uKQorCQlnb3RvIGRvbmU7CisKKwkvKiBPbiBzb21lIGRpZmZlcmVudCB0cmFuc2FjdGlvbidzIGxpc3QgLSBzaG91bGQgYmUKKwkgKiB0aGUgY29tbWl0dGluZyBvbmUgKi8KKwlpZiAoamlub2RlLT5pX3RyYW5zYWN0aW9uKSB7CisJCUpfQVNTRVJUKGppbm9kZS0+aV9uZXh0X3RyYW5zYWN0aW9uID09IE5VTEwpOworCQlKX0FTU0VSVChqaW5vZGUtPmlfdHJhbnNhY3Rpb24gPT0KKwkJCQkJam91cm5hbC0+al9jb21taXR0aW5nX3RyYW5zYWN0aW9uKTsKKwkJamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjsKKwkJZ290byBkb25lOworCX0KKwkvKiBOb3Qgb24gYW55IHRyYW5zYWN0aW9uIGxpc3QuLi4gKi8KKwlKX0FTU0VSVCghamlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24pOworCWppbm9kZS0+aV90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uOworCWxpc3RfYWRkKCZqaW5vZGUtPmlfbGlzdCwgJnRyYW5zYWN0aW9uLT50X2lub2RlX2xpc3QpOworZG9uZToKKwlzcGluX3VubG9jaygmam91cm5hbC0+al9saXN0X2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoZW4gaW5vZGUgaXMgam91cm5hbGVkIGluIG9yZGVyZWQgbW9kZQorICogYmVmb3JlIHRydW5jYXRpb24gaGFwcGVucy4gSXQgc3RhcnRzIHdyaXRlb3V0IG9mIHRydW5jYXRlZCBwYXJ0IGluCisgKiBjYXNlIGl0IGlzIGluIHRoZSBjb21taXR0aW5nIHRyYW5zYWN0aW9uIHNvIHRoYXQgd2Ugc3RhbmQgdG8gb3JkZXJlZAorICogbW9kZSBjb25zaXN0ZW5jeSBndWFyYW50ZWVzLgorICovCitpbnQgamJkMl9qb3VybmFsX2JlZ2luX29yZGVyZWRfdHJ1bmNhdGUoc3RydWN0IGpiZDJfaW5vZGUgKmlub2RlLAorCQkJCQlsb2ZmX3QgbmV3X3NpemUpCit7CisJam91cm5hbF90ICpqb3VybmFsOworCXRyYW5zYWN0aW9uX3QgKmNvbW1pdF90cmFuczsKKwlpbnQgcmV0ID0gMDsKKworCWlmICghaW5vZGUtPmlfdHJhbnNhY3Rpb24gJiYgIWlub2RlLT5pX25leHRfdHJhbnNhY3Rpb24pCisJCWdvdG8gb3V0OworCWpvdXJuYWwgPSBpbm9kZS0+aV90cmFuc2FjdGlvbi0+dF9qb3VybmFsOworCXNwaW5fbG9jaygmam91cm5hbC0+al9zdGF0ZV9sb2NrKTsKKwljb21taXRfdHJhbnMgPSBqb3VybmFsLT5qX2NvbW1pdHRpbmdfdHJhbnNhY3Rpb247CisJc3Bpbl91bmxvY2soJmpvdXJuYWwtPmpfc3RhdGVfbG9jayk7CisJaWYgKGlub2RlLT5pX3RyYW5zYWN0aW9uID09IGNvbW1pdF90cmFucykgeworCQlyZXQgPSBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2UoaW5vZGUtPmlfdmZzX2lub2RlLT5pX21hcHBpbmcsCisJCQluZXdfc2l6ZSwgTExPTkdfTUFYKTsKKwkJaWYgKHJldCkKKwkJCWpiZDJfam91cm5hbF9hYm9ydChqb3VybmFsLCByZXQpOworCX0KK291dDoKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEvZnMvbGliZnMuYyBiL2ZzL2xpYmZzLmMKaW5kZXggYjAwNGRmYS4uYmFlYjcxZSAxMDA2NDQKLS0tIGEvZnMvbGliZnMuYworKysgYi9mcy9saWJmcy5jCkBAIC01MTIsNiArNTEyLDIwIEBACiAJbW50cHV0KG1udCk7CiB9CiAKKy8qKgorICogc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIgLSBjb3B5IGRhdGEgZnJvbSB0aGUgYnVmZmVyIHRvIHVzZXIgc3BhY2UKKyAqIEB0bzogdGhlIHVzZXIgc3BhY2UgYnVmZmVyIHRvIHJlYWQgdG8KKyAqIEBjb3VudDogdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHJlYWQKKyAqIEBwcG9zOiB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgYnVmZmVyCisgKiBAZnJvbTogdGhlIGJ1ZmZlciB0byByZWFkIGZyb20KKyAqIEBhdmFpbGFibGU6IHRoZSBzaXplIG9mIHRoZSBidWZmZXIKKyAqCisgKiBUaGUgc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIoKSBmdW5jdGlvbiByZWFkcyB1cCB0byBAY291bnQgYnl0ZXMgZnJvbSB0aGUKKyAqIGJ1ZmZlciBAZnJvbSBhdCBvZmZzZXQgQHBwb3MgaW50byB0aGUgdXNlciBzcGFjZSBhZGRyZXNzIHN0YXJ0aW5nIGF0IEB0by4KKyAqCisgKiBPbiBzdWNjZXNzLCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHJlYWQgaXMgcmV0dXJuZWQgYW5kIHRoZSBvZmZzZXQgQHBwb3MgaXMKKyAqIGFkdmFuY2VkIGJ5IHRoaXMgbnVtYmVyLCBvciBuZWdhdGl2ZSB2YWx1ZSBpcyByZXR1cm5lZCBvbiBlcnJvci4KKyAqKi8KIHNzaXplX3Qgc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodm9pZCBfX3VzZXIgKnRvLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcywKIAkJCQljb25zdCB2b2lkICpmcm9tLCBzaXplX3QgYXZhaWxhYmxlKQogewpAQCAtNTI4LDYgKzU0MiwzNyBAQAogCXJldHVybiBjb3VudDsKIH0KIAorLyoqCisgKiBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlciAtIGNvcHkgZGF0YSBmcm9tIHRoZSBidWZmZXIKKyAqIEB0bzogdGhlIGtlcm5lbCBzcGFjZSBidWZmZXIgdG8gcmVhZCB0bworICogQGNvdW50OiB0aGUgbWF4aW11bSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZAorICogQHBwb3M6IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSBidWZmZXIKKyAqIEBmcm9tOiB0aGUgYnVmZmVyIHRvIHJlYWQgZnJvbQorICogQGF2YWlsYWJsZTogdGhlIHNpemUgb2YgdGhlIGJ1ZmZlcgorICoKKyAqIFRoZSBtZW1vcnlfcmVhZF9mcm9tX2J1ZmZlcigpIGZ1bmN0aW9uIHJlYWRzIHVwIHRvIEBjb3VudCBieXRlcyBmcm9tIHRoZQorICogYnVmZmVyIEBmcm9tIGF0IG9mZnNldCBAcHBvcyBpbnRvIHRoZSBrZXJuZWwgc3BhY2UgYWRkcmVzcyBzdGFydGluZyBhdCBAdG8uCisgKgorICogT24gc3VjY2VzcywgdGhlIG51bWJlciBvZiBieXRlcyByZWFkIGlzIHJldHVybmVkIGFuZCB0aGUgb2Zmc2V0IEBwcG9zIGlzCisgKiBhZHZhbmNlZCBieSB0aGlzIG51bWJlciwgb3IgbmVnYXRpdmUgdmFsdWUgaXMgcmV0dXJuZWQgb24gZXJyb3IuCisgKiovCitzc2l6ZV90IG1lbW9yeV9yZWFkX2Zyb21fYnVmZmVyKHZvaWQgKnRvLCBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcywKKwkJCQljb25zdCB2b2lkICpmcm9tLCBzaXplX3QgYXZhaWxhYmxlKQoreworCWxvZmZfdCBwb3MgPSAqcHBvczsKKworCWlmIChwb3MgPCAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAocG9zID49IGF2YWlsYWJsZSkKKwkJcmV0dXJuIDA7CisJaWYgKGNvdW50ID4gYXZhaWxhYmxlIC0gcG9zKQorCQljb3VudCA9IGF2YWlsYWJsZSAtIHBvczsKKwltZW1jcHkodG8sIGZyb20gKyBwb3MsIGNvdW50KTsKKwkqcHBvcyA9IHBvcyArIGNvdW50OworCisJcmV0dXJuIGNvdW50OworfQorCiAvKgogICogVHJhbnNhY3Rpb24gYmFzZWQgSU8uCiAgKiBUaGUgZmlsZSBleHBlY3RzIGEgc2luZ2xlIHdyaXRlIHdoaWNoIHRyaWdnZXJzIHRoZSB0cmFuc2FjdGlvbiwgYW5kIHRoZW4KQEAgLTgwMCw2ICs4NDUsNyBAQAogRVhQT1JUX1NZTUJPTChzaW1wbGVfc3luY19maWxlKTsKIEVYUE9SVF9TWU1CT0woc2ltcGxlX3VubGluayk7CiBFWFBPUlRfU1lNQk9MKHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKTsKK0VYUE9SVF9TWU1CT0wobWVtb3J5X3JlYWRfZnJvbV9idWZmZXIpOwogRVhQT1JUX1NZTUJPTChzaW1wbGVfdHJhbnNhY3Rpb25fZ2V0KTsKIEVYUE9SVF9TWU1CT0woc2ltcGxlX3RyYW5zYWN0aW9uX3JlYWQpOwogRVhQT1JUX1NZTUJPTChzaW1wbGVfdHJhbnNhY3Rpb25fcmVsZWFzZSk7CmRpZmYgLS1naXQgYS9mcy9sb2Nrcy5jIGIvZnMvbG9ja3MuYwppbmRleCAxMWRiZjA4Li5kY2U4Yzc0NyAxMDA2NDQKLS0tIGEvZnMvbG9ja3MuYworKysgYi9mcy9sb2Nrcy5jCkBAIC01NjEsOSArNTYxLDYgQEAKIAkvKiBpbnNlcnQgaW50byBmaWxlJ3MgbGlzdCAqLwogCWZsLT5mbF9uZXh0ID0gKnBvczsKIAkqcG9zID0gZmw7Ci0KLQlpZiAoZmwtPmZsX29wcyAmJiBmbC0+Zmxfb3BzLT5mbF9pbnNlcnQpCi0JCWZsLT5mbF9vcHMtPmZsX2luc2VydChmbCk7CiB9CiAKIC8qCkBAIC01ODYsOSArNTgzLDYgQEAKIAkJZmwtPmZsX2Zhc3luYyA9IE5VTEw7CiAJfQogCi0JaWYgKGZsLT5mbF9vcHMgJiYgZmwtPmZsX29wcy0+ZmxfcmVtb3ZlKQotCQlmbC0+Zmxfb3BzLT5mbF9yZW1vdmUoZmwpOwotCiAJaWYgKGZsLT5mbF9uc3BpZCkgewogCQlwdXRfcGlkKGZsLT5mbF9uc3BpZCk7CiAJCWZsLT5mbF9uc3BpZCA9IE5VTEw7CmRpZmYgLS1naXQgYS9mcy9tcGFnZS5jIGIvZnMvbXBhZ2UuYwppbmRleCAyMzVlNGQzLi5kYmNjN2FmIDEwMDY0NAotLS0gYS9mcy9tcGFnZS5jCisrKyBiL2ZzL21wYWdlLmMKQEAgLTgyLDcgKzgyLDcgQEAKIAliaW9fcHV0KGJpbyk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYmlvICptcGFnZV9iaW9fc3VibWl0KGludCBydywgc3RydWN0IGJpbyAqYmlvKQorc3RydWN0IGJpbyAqbXBhZ2VfYmlvX3N1Ym1pdChpbnQgcncsIHN0cnVjdCBiaW8gKmJpbykKIHsKIAliaW8tPmJpX2VuZF9pbyA9IG1wYWdlX2VuZF9pb19yZWFkOwogCWlmIChydyA9PSBXUklURSkKQEAgLTkwLDYgKzkwLDcgQEAKIAlzdWJtaXRfYmlvKHJ3LCBiaW8pOwogCXJldHVybiBOVUxMOwogfQorRVhQT1JUX1NZTUJPTChtcGFnZV9iaW9fc3VibWl0KTsKIAogc3RhdGljIHN0cnVjdCBiaW8gKgogbXBhZ2VfYWxsb2Moc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwKQEAgLTQzNSwxNSArNDM2LDkgQEAKICAqIHdyaXR0ZW4sIHNvIGl0IGNhbiBpbnRlbGxpZ2VudGx5IGFsbG9jYXRlIGEgc3VpdGFibHktc2l6ZWQgQklPLiAgRm9yIG5vdywKICAqIGp1c3QgYWxsb2NhdGUgZnVsbC1zaXplICgxNi1wYWdlKSBCSU9zLgogICovCi1zdHJ1Y3QgbXBhZ2VfZGF0YSB7Ci0Jc3RydWN0IGJpbyAqYmlvOwotCXNlY3Rvcl90IGxhc3RfYmxvY2tfaW5fYmlvOwotCWdldF9ibG9ja190ICpnZXRfYmxvY2s7Ci0JdW5zaWduZWQgdXNlX3dyaXRlcGFnZTsKLX07CiAKLXN0YXRpYyBpbnQgX19tcGFnZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAotCQkJICAgICB2b2lkICpkYXRhKQoraW50IF9fbXBhZ2Vfd3JpdGVwYWdlKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywKKwkJICAgICAgdm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgbXBhZ2VfZGF0YSAqbXBkID0gZGF0YTsKIAlzdHJ1Y3QgYmlvICpiaW8gPSBtcGQtPmJpbzsKQEAgLTY1MSw2ICs2NDYsNyBAQAogCW1wZC0+YmlvID0gYmlvOwogCXJldHVybiByZXQ7CiB9CitFWFBPUlRfU1lNQk9MKF9fbXBhZ2Vfd3JpdGVwYWdlKTsKIAogLyoqCiAgKiBtcGFnZV93cml0ZXBhZ2VzIC0gd2FsayB0aGUgbGlzdCBvZiBkaXJ0eSBwYWdlcyBvZiB0aGUgZ2l2ZW4gYWRkcmVzcyBzcGFjZSAmIHdyaXRlcGFnZSgpIGFsbCBvZiB0aGVtCmRpZmYgLS1naXQgYS9mcy9tc2Rvcy9uYW1laS5jIGIvZnMvbXNkb3MvbmFtZWkuYwppbmRleCAwNWZmNGYxLi4xZjdmMjk1IDEwMDY0NAotLS0gYS9mcy9tc2Rvcy9uYW1laS5jCisrKyBiL2ZzL21zZG9zL25hbWVpLmMKQEAgLTIxNCw3ICsyMTQsNyBAQAogCiAJZGVudHJ5LT5kX29wID0gJm1zZG9zX2RlbnRyeV9vcGVyYXRpb25zOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAlyZXMgPSBtc2Rvc19maW5kKGRpciwgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5LT5kX25hbWUubGVuLCAmc2luZm8pOwogCWlmIChyZXMgPT0gLUVOT0VOVCkKIAkJZ290byBhZGQ7CkBAIC0yMzIsNyArMjMyLDcgQEAKIAlpZiAoZGVudHJ5KQogCQlkZW50cnktPmRfb3AgPSAmbXNkb3NfZGVudHJ5X29wZXJhdGlvbnM7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJaWYgKCFyZXMpCiAJCXJldHVybiBkZW50cnk7CiAJcmV0dXJuIEVSUl9QVFIocmVzKTsKQEAgLTI4Niw3ICsyODYsNyBAQAogCXVuc2lnbmVkIGNoYXIgbXNkb3NfbmFtZVtNU0RPU19OQU1FXTsKIAlpbnQgZXJyLCBpc19oaWQ7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gbXNkb3NfZm9ybWF0X25hbWUoZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5LT5kX25hbWUubGVuLAogCQkJCW1zZG9zX25hbWUsICZNU0RPU19TQihzYiktPm9wdGlvbnMpOwpAQCAtMzE1LDcgKzMxNSw3IEBACiAKIAlkX2luc3RhbnRpYXRlKGRlbnRyeSwgaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWlmICghZXJyKQogCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKHNiLCBkaXIsIGlub2RlKTsKIAlyZXR1cm4gZXJyOwpAQCAtMzI0LDExICszMjQsMTIgQEAKIC8qKioqKiBSZW1vdmUgYSBkaXJlY3RvcnkgKi8KIHN0YXRpYyBpbnQgbXNkb3Nfcm1kaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBkZW50cnktPmRfaW5vZGU7CiAJc3RydWN0IGZhdF9zbG90X2luZm8gc2luZm87CiAJaW50IGVycjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAJLyoKIAkgKiBDaGVjayB3aGV0aGVyIHRoZSBkaXJlY3RvcnkgaXMgbm90IGluIHVzZSwgdGhlbiBjaGVjawogCSAqIHdoZXRoZXIgaXQgaXMgZW1wdHkuCkBAIC0zNDksOSArMzUwLDkgQEAKIAlpbm9kZS0+aV9jdGltZSA9IENVUlJFTlRfVElNRV9TRUM7CiAJZmF0X2RldGFjaChpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJaWYgKCFlcnIpCi0JCWVyciA9IGZhdF9mbHVzaF9pbm9kZXMoaW5vZGUtPmlfc2IsIGRpciwgaW5vZGUpOworCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKHNiLCBkaXIsIGlub2RlKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC0zNjYsNyArMzY3LDcgQEAKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CiAJaW50IGVyciwgaXNfaGlkLCBjbHVzdGVyOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAogCWVyciA9IG1zZG9zX2Zvcm1hdF9uYW1lKGRlbnRyeS0+ZF9uYW1lLm5hbWUsIGRlbnRyeS0+ZF9uYW1lLmxlbiwKIAkJCQltc2Rvc19uYW1lLCAmTVNET1NfU0Ioc2IpLT5vcHRpb25zKTsKQEAgLTQwNCwxNCArNDA1LDE0IEBACiAKIAlkX2luc3RhbnRpYXRlKGRlbnRyeSwgaW5vZGUpOwogCi0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJZmF0X2ZsdXNoX2lub2RlcyhzYiwgZGlyLCBpbm9kZSk7CiAJcmV0dXJuIDA7CiAKIG91dF9mcmVlOgogCWZhdF9mcmVlX2NsdXN0ZXJzKGRpciwgY2x1c3Rlcik7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtNDE5LDEwICs0MjAsMTEgQEAKIHN0YXRpYyBpbnQgbXNkb3NfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiPSBpbm9kZS0+aV9zYjsKIAlzdHJ1Y3QgZmF0X3Nsb3RfaW5mbyBzaW5mbzsKIAlpbnQgZXJyOwogCi0JbG9ja19rZXJuZWwoKTsKKwlsb2NrX3N1cGVyKHNiKTsKIAllcnIgPSBtc2Rvc19maW5kKGRpciwgZGVudHJ5LT5kX25hbWUubmFtZSwgZGVudHJ5LT5kX25hbWUubGVuLCAmc2luZm8pOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwpAQCAtNDM0LDkgKzQzNiw5IEBACiAJaW5vZGUtPmlfY3RpbWUgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWZhdF9kZXRhY2goaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWlmICghZXJyKQotCQllcnIgPSBmYXRfZmx1c2hfaW5vZGVzKGlub2RlLT5pX3NiLCBkaXIsIGlub2RlKTsKKwkJZXJyID0gZmF0X2ZsdXNoX2lub2RlcyhzYiwgZGlyLCBpbm9kZSk7CiAKIAlyZXR1cm4gZXJyOwogfQpAQCAtNjE4LDEwICs2MjAsMTEgQEAKIHN0YXRpYyBpbnQgbXNkb3NfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2Rpciwgc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwKIAkJCXN0cnVjdCBpbm9kZSAqbmV3X2Rpciwgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkKIHsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gb2xkX2Rpci0+aV9zYjsKIAl1bnNpZ25lZCBjaGFyIG9sZF9tc2Rvc19uYW1lW01TRE9TX05BTUVdLCBuZXdfbXNkb3NfbmFtZVtNU0RPU19OQU1FXTsKIAlpbnQgZXJyLCBpc19oaWQ7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gbXNkb3NfZm9ybWF0X25hbWUob2xkX2RlbnRyeS0+ZF9uYW1lLm5hbWUsCiAJCQkJb2xkX2RlbnRyeS0+ZF9uYW1lLmxlbiwgb2xkX21zZG9zX25hbWUsCkBAIC02NDAsOSArNjQzLDkgQEAKIAllcnIgPSBkb19tc2Rvc19yZW5hbWUob2xkX2Rpciwgb2xkX21zZG9zX25hbWUsIG9sZF9kZW50cnksCiAJCQkgICAgICBuZXdfZGlyLCBuZXdfbXNkb3NfbmFtZSwgbmV3X2RlbnRyeSwgaXNfaGlkKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAlpZiAoIWVycikKLQkJZXJyID0gZmF0X2ZsdXNoX2lub2RlcyhvbGRfZGlyLT5pX3NiLCBvbGRfZGlyLCBuZXdfZGlyKTsKKwkJZXJyID0gZmF0X2ZsdXNoX2lub2RlcyhzYiwgb2xkX2RpciwgbmV3X2Rpcik7CiAJcmV0dXJuIGVycjsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvbmFtZWkuYyBiL2ZzL25hbWVpLmMKaW5kZXggYzdlNDM1My4uMDFlNjdkZCAxMDA2NDQKLS0tIGEvZnMvbmFtZWkuYworKysgYi9mcy9uYW1laS5jCkBAIC01ODEsMTUgKzU4MSwxMyBAQAogCWludCByZXN1bHQ7CiAKIAkvKiBtYWtlIHN1cmUgdGhlIHN0dWZmIHdlIHNhdmVkIGRvZXNuJ3QgZ28gYXdheSAqLwotCWRnZXQoc2F2ZS5kZW50cnkpOwotCW1udGdldChzYXZlLm1udCk7CisJcGF0aF9nZXQoJnNhdmUpOwogCiAJcmVzdWx0ID0gX19saW5rX3BhdGhfd2FsayhuYW1lLCBuZCk7CiAJaWYgKHJlc3VsdCA9PSAtRVNUQUxFKSB7CiAJCS8qIG5kLT5wYXRoIGhhZCBiZWVuIGRyb3BwZWQgKi8KIAkJbmQtPnBhdGggPSBzYXZlOwotCQlkZ2V0KG5kLT5wYXRoLmRlbnRyeSk7Ci0JCW1udGdldChuZC0+cGF0aC5tbnQpOworCQlwYXRoX2dldCgmbmQtPnBhdGgpOwogCQluZC0+ZmxhZ3MgfD0gTE9PS1VQX1JFVkFMOwogCQlyZXN1bHQgPSBfX2xpbmtfcGF0aF93YWxrKG5hbWUsIG5kKTsKIAl9CkBAIC0xMjE2LDggKzEyMTQsOSBAQAogCW5kLT5mbGFncyA9IGZsYWdzOwogCW5kLT5kZXB0aCA9IDA7CiAKLQluZC0+cGF0aC5tbnQgPSBtbnRnZXQobW50KTsKLQluZC0+cGF0aC5kZW50cnkgPSBkZ2V0KGRlbnRyeSk7CisJbmQtPnBhdGguZGVudHJ5ID0gZGVudHJ5OworCW5kLT5wYXRoLm1udCA9IG1udDsKKwlwYXRoX2dldCgmbmQtPnBhdGgpOwogCiAJcmV0dmFsID0gcGF0aF93YWxrKG5hbWUsIG5kKTsKIAlpZiAodW5saWtlbHkoIXJldHZhbCAmJiAhYXVkaXRfZHVtbXlfY29udGV4dCgpICYmIG5kLT5wYXRoLmRlbnRyeSAmJgpAQCAtMjg1NywxNiArMjg1NiwxNyBAQAogewogCXN0cnVjdCBuYW1laWRhdGEgbmQ7CiAJdm9pZCAqY29va2llOworCWludCByZXM7CiAKIAluZC5kZXB0aCA9IDA7CiAJY29va2llID0gZGVudHJ5LT5kX2lub2RlLT5pX29wLT5mb2xsb3dfbGluayhkZW50cnksICZuZCk7Ci0JaWYgKCFJU19FUlIoY29va2llKSkgewotCQlpbnQgcmVzID0gdmZzX3JlYWRsaW5rKGRlbnRyeSwgYnVmZmVyLCBidWZsZW4sIG5kX2dldF9saW5rKCZuZCkpOwotCQlpZiAoZGVudHJ5LT5kX2lub2RlLT5pX29wLT5wdXRfbGluaykKLQkJCWRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+cHV0X2xpbmsoZGVudHJ5LCAmbmQsIGNvb2tpZSk7Ci0JCWNvb2tpZSA9IEVSUl9QVFIocmVzKTsKLQl9Ci0JcmV0dXJuIFBUUl9FUlIoY29va2llKTsKKwlpZiAoSVNfRVJSKGNvb2tpZSkpCisJCXJldHVybiBQVFJfRVJSKGNvb2tpZSk7CisKKwlyZXMgPSB2ZnNfcmVhZGxpbmsoZGVudHJ5LCBidWZmZXIsIGJ1ZmxlbiwgbmRfZ2V0X2xpbmsoJm5kKSk7CisJaWYgKGRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+cHV0X2xpbmspCisJCWRlbnRyeS0+ZF9pbm9kZS0+aV9vcC0+cHV0X2xpbmsoZGVudHJ5LCAmbmQsIGNvb2tpZSk7CisJcmV0dXJuIHJlczsKIH0KIAogaW50IHZmc19mb2xsb3dfbGluayhzdHJ1Y3QgbmFtZWlkYXRhICpuZCwgY29uc3QgY2hhciAqbGluaykKZGlmZiAtLWdpdCBhL2ZzL25hbWVzcGFjZS5jIGIvZnMvbmFtZXNwYWNlLmMKaW5kZXggNGZjMzAyYy4uNGY2Zjc2MyAxMDA2NDQKLS0tIGEvZnMvbmFtZXNwYWNlLmMKKysrIGIvZnMvbmFtZXNwYWNlLmMKQEAgLTc1MCw3ICs3NTAsNyBAQAogCWNvbnN0IGNoYXIgKnN0cjsKIH07CiAKLXN0YXRpYyB2b2lkIHNob3dfc2Jfb3B0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCitzdGF0aWMgaW50IHNob3dfc2Jfb3B0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7CiAJc3RhdGljIGNvbnN0IHN0cnVjdCBwcm9jX2ZzX2luZm8gZnNfaW5mb1tdID0gewogCQl7IE1TX1NZTkNIUk9OT1VTLCAiLHN5bmMiIH0sCkBAIC03NjQsNiArNzY0LDggQEAKIAkJaWYgKHNiLT5zX2ZsYWdzICYgZnNfaW5mb3AtPmZsYWcpCiAJCQlzZXFfcHV0cyhtLCBmc19pbmZvcC0+c3RyKTsKIAl9CisKKwlyZXR1cm4gc2VjdXJpdHlfc2Jfc2hvd19vcHRpb25zKG0sIHNiKTsKIH0KIAogc3RhdGljIHZvaWQgc2hvd19tbnRfb3B0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB2ZnNtb3VudCAqbW50KQpAQCAtODA2LDExICs4MDgsMTQgQEAKIAlzZXFfcHV0YyhtLCAnICcpOwogCXNob3dfdHlwZShtLCBtbnQtPm1udF9zYik7CiAJc2VxX3B1dHMobSwgX19tbnRfaXNfcmVhZG9ubHkobW50KSA/ICIgcm8iIDogIiBydyIpOwotCXNob3dfc2Jfb3B0cyhtLCBtbnQtPm1udF9zYik7CisJZXJyID0gc2hvd19zYl9vcHRzKG0sIG1udC0+bW50X3NiKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dDsKIAlzaG93X21udF9vcHRzKG0sIG1udCk7CiAJaWYgKG1udC0+bW50X3NiLT5zX29wLT5zaG93X29wdGlvbnMpCiAJCWVyciA9IG1udC0+bW50X3NiLT5zX29wLT5zaG93X29wdGlvbnMobSwgbW50KTsKIAlzZXFfcHV0cyhtLCAiIDAgMFxuIik7CitvdXQ6CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtODY1LDEwICs4NzAsMTMgQEAKIAlzZXFfcHV0YyhtLCAnICcpOwogCW1hbmdsZShtLCBtbnQtPm1udF9kZXZuYW1lID8gbW50LT5tbnRfZGV2bmFtZSA6ICJub25lIik7CiAJc2VxX3B1dHMobSwgc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkgPyAiIHJvIiA6ICIgcnciKTsKLQlzaG93X3NiX29wdHMobSwgc2IpOworCWVyciA9IHNob3dfc2Jfb3B0cyhtLCBzYik7CisJaWYgKGVycikKKwkJZ290byBvdXQ7CiAJaWYgKHNiLT5zX29wLT5zaG93X29wdGlvbnMpCiAJCWVyciA9IHNiLT5zX29wLT5zaG93X29wdGlvbnMobSwgbW50KTsKIAlzZXFfcHV0YyhtLCAnXG4nKTsKK291dDoKIAlyZXR1cm4gZXJyOwogfQogCmRpZmYgLS1naXQgYS9mcy9uY3Bmcy9maWxlLmMgYi9mcy9uY3Bmcy9maWxlLmMKaW5kZXggMmIxNDVkZS4uNmE3ZDkwMSAxMDA2NDQKLS0tIGEvZnMvbmNwZnMvZmlsZS5jCisrKyBiL2ZzL25jcGZzL2ZpbGUuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogCiAjaW5jbHVkZSA8bGludXgvbmNwX2ZzLmg+CiAjaW5jbHVkZSAibmNwbGliX2tlcm5lbC5oIgpAQCAtMjgxLDkgKzI4MiwxOCBAQAogCXJldHVybiAwOwogfQogCitzdGF0aWMgbG9mZl90IG5jcF9yZW1vdGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQoreworCWxvZmZfdCByZXQ7CisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBnZW5lcmljX2ZpbGVfbGxzZWVrX3VubG9ja2VkKGZpbGUsIG9mZnNldCwgb3JpZ2luKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKK30KKwogY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBuY3BfZmlsZV9vcGVyYXRpb25zID0KIHsKLQkubGxzZWVrCQk9IHJlbW90ZV9sbHNlZWssCisJLmxsc2VlayAJPSBuY3BfcmVtb3RlX2xsc2VlaywKIAkucmVhZAkJPSBuY3BfZmlsZV9yZWFkLAogCS53cml0ZQkJPSBuY3BfZmlsZV93cml0ZSwKIAkuaW9jdGwJCT0gbmNwX2lvY3RsLApkaWZmIC0tZ2l0IGEvZnMvbmZzL2Rpci5jIGIvZnMvbmZzL2Rpci5jCmluZGV4IDU4ZDQzZGEuLjk4MmEyMDYgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9kaXIuYworKysgYi9mcy9uZnMvZGlyLmMKQEAgLTIwNCw3ICsyMDQsNyBAQAogCSAqIE5vdGU6IGFzc3VtZXMgd2UgaGF2ZSBleGNsdXNpdmUgYWNjZXNzIHRvIHRoaXMgbWFwcGluZyBlaXRoZXIKIAkgKgkgdGhyb3VnaCBpbm9kZS0+aV9tdXRleCBvciBzb21lIG90aGVyIG1lY2hhbmlzbS4KIAkgKi8KLQlpZiAocGFnZS0+aW5kZXggPT0gMCAmJiBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMl9yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCBQQUdFX0NBQ0hFX1NJWkUsIC0xKSA8IDApIHsKKwlpZiAoaW52YWxpZGF0ZV9pbm9kZV9wYWdlczJfcmFuZ2UoaW5vZGUtPmlfbWFwcGluZywgcGFnZS0+aW5kZXggKyAxLCAtMSkgPCAwKSB7CiAJCS8qIFNob3VsZCBuZXZlciBoYXBwZW4gKi8KIAkJbmZzX3phcF9tYXBwaW5nKGlub2RlLCBpbm9kZS0+aV9tYXBwaW5nKTsKIAl9CmRpZmYgLS1naXQgYS9mcy9uZnMvZmlsZS5jIGIvZnMvbmZzL2ZpbGUuYwppbmRleCBkODRhM2Q4Li40ZTk4YTU2IDEwMDY0NAotLS0gYS9mcy9uZnMvZmlsZS5jCisrKyBiL2ZzL25mcy9maWxlLmMKQEAgLTE3MCw2ICsxNzAsNyBAQAogCiBzdGF0aWMgbG9mZl90IG5mc19maWxlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlscCwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKIHsKKwlsb2ZmX3QgbG9mZjsKIAkvKiBvcmlnaW4gPT0gU0VFS19FTkQgPT4gd2UgbXVzdCByZXZhbGlkYXRlIHRoZSBjYWNoZWQgZmlsZSBsZW5ndGggKi8KIAlpZiAob3JpZ2luID09IFNFRUtfRU5EKSB7CiAJCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxwLT5mX21hcHBpbmctPmhvc3Q7CkBAIC0xNzcsNyArMTc4LDEwIEBACiAJCWlmIChyZXR2YWwgPCAwKQogCQkJcmV0dXJuIChsb2ZmX3QpcmV0dmFsOwogCX0KLQlyZXR1cm4gcmVtb3RlX2xsc2VlayhmaWxwLCBvZmZzZXQsIG9yaWdpbik7CisJbG9ja19rZXJuZWwoKTsJLyogQktMIG5lZWRlZD8gKi8KKwlsb2ZmID0gZ2VuZXJpY19maWxlX2xsc2Vla191bmxvY2tlZChmaWxwLCBvZmZzZXQsIG9yaWdpbik7CisJdW5sb2NrX2tlcm5lbCgpOworCXJldHVybiBsb2ZmOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZnMvbmZzL21vdW50X2NsbnQuYyBiL2ZzL25mcy9tb3VudF9jbG50LmMKaW5kZXggNDljN2NkMC4uNzc5ZDJlYiAxMDA2NDQKLS0tIGEvZnMvbmZzL21vdW50X2NsbnQuYworKysgYi9mcy9uZnMvbW91bnRfY2xudC5jCkBAIC0xMzAsMTAgKzEzMCwxMSBAQAogCQkJCXN0cnVjdCBtbnRfZmhzdGF0dXMgKnJlcykKIHsKIAlzdHJ1Y3QgbmZzX2ZoICpmaCA9IHJlcy0+Zmg7CisJdW5zaWduZWQgc2l6ZTsKIAogCWlmICgocmVzLT5zdGF0dXMgPSBudG9obCgqcCsrKSkgPT0gMCkgewotCQlpbnQgc2l6ZSA9IG50b2hsKCpwKyspOwotCQlpZiAoc2l6ZSA8PSBORlMzX0ZIU0laRSkgeworCQlzaXplID0gbnRvaGwoKnArKyk7CisJCWlmIChzaXplIDw9IE5GUzNfRkhTSVpFICYmIHNpemUgIT0gMCkgewogCQkJZmgtPnNpemUgPSBzaXplOwogCQkJbWVtY3B5KGZoLT5kYXRhLCBwLCBzaXplKTsKIAkJfSBlbHNlCmRpZmYgLS1naXQgYS9mcy9uZnMvc3VwZXIuYyBiL2ZzL25mcy9zdXBlci5jCmluZGV4IDJhNGEwMjQuLjYxNGVmZWUgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9zdXBlci5jCisrKyBiL2ZzL25mcy9zdXBlci5jCkBAIC0xMjE2LDggKzEyMTYsNiBAQAogewogCXN0cnVjdCBuZnNfbW91bnRfZGF0YSAqZGF0YSA9IChzdHJ1Y3QgbmZzX21vdW50X2RhdGEgKilvcHRpb25zOwogCi0JbWVtc2V0KGFyZ3MsIDAsIHNpemVvZigqYXJncykpOwotCiAJaWYgKGRhdGEgPT0gTlVMTCkKIAkJZ290byBvdXRfbm9fZGF0YTsKIApAQCAtMTI1MSwxMyArMTI0OSwxMyBAQAogCWNhc2UgNToKIAkJbWVtc2V0KGRhdGEtPmNvbnRleHQsIDAsIHNpemVvZihkYXRhLT5jb250ZXh0KSk7CiAJY2FzZSA2OgotCQlpZiAoZGF0YS0+ZmxhZ3MgJiBORlNfTU9VTlRfVkVSMykKKwkJaWYgKGRhdGEtPmZsYWdzICYgTkZTX01PVU5UX1ZFUjMpIHsKKwkJCWlmIChkYXRhLT5yb290LnNpemUgPiBORlMzX0ZIU0laRSB8fCBkYXRhLT5yb290LnNpemUgPT0gMCkKKwkJCQlnb3RvIG91dF9pbnZhbGlkX2ZoOwogCQkJbW50ZmgtPnNpemUgPSBkYXRhLT5yb290LnNpemU7Ci0JCWVsc2UKKwkJfSBlbHNlCiAJCQltbnRmaC0+c2l6ZSA9IE5GUzJfRkhTSVpFOwogCi0JCWlmIChtbnRmaC0+c2l6ZSA+IHNpemVvZihtbnRmaC0+ZGF0YSkpCi0JCQlnb3RvIG91dF9pbnZhbGlkX2ZoOwogCiAJCW1lbWNweShtbnRmaC0+ZGF0YSwgZGF0YS0+cm9vdC5kYXRhLCBtbnRmaC0+c2l6ZSk7CiAJCWlmIChtbnRmaC0+c2l6ZSA8IHNpemVvZihtbnRmaC0+ZGF0YSkpCkBAIC0xNTg1LDI0ICsxNTgzLDI5IEBACiB7CiAJc3RydWN0IG5mc19zZXJ2ZXIgKnNlcnZlciA9IE5VTEw7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzOwotCXN0cnVjdCBuZnNfZmggbW50Zmg7Ci0Jc3RydWN0IG5mc19wYXJzZWRfbW91bnRfZGF0YSBkYXRhOworCXN0cnVjdCBuZnNfcGFyc2VkX21vdW50X2RhdGEgKmRhdGE7CisJc3RydWN0IG5mc19maCAqbW50Zmg7CiAJc3RydWN0IGRlbnRyeSAqbW50cm9vdDsKIAlpbnQgKCpjb21wYXJlX3N1cGVyKShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqKSA9IG5mc19jb21wYXJlX3N1cGVyOwogCXN0cnVjdCBuZnNfc2JfbW91bnRkYXRhIHNiX21udGRhdGEgPSB7CiAJCS5tbnRmbGFncyA9IGZsYWdzLAogCX07Ci0JaW50IGVycm9yOworCWludCBlcnJvciA9IC1FTk9NRU07CiAKLQlzZWN1cml0eV9pbml0X21udF9vcHRzKCZkYXRhLmxzbV9vcHRzKTsKKwlkYXRhID0ga3phbGxvYyhzaXplb2YoKmRhdGEpLCBHRlBfS0VSTkVMKTsKKwltbnRmaCA9IGt6YWxsb2Moc2l6ZW9mKCptbnRmaCksIEdGUF9LRVJORUwpOworCWlmIChkYXRhID09IE5VTEwgfHwgbW50ZmggPT0gTlVMTCkKKwkJZ290byBvdXRfZnJlZV9maDsKKworCXNlY3VyaXR5X2luaXRfbW50X29wdHMoJmRhdGEtPmxzbV9vcHRzKTsKIAogCS8qIFZhbGlkYXRlIHRoZSBtb3VudCBkYXRhICovCi0JZXJyb3IgPSBuZnNfdmFsaWRhdGVfbW91bnRfZGF0YShyYXdfZGF0YSwgJmRhdGEsICZtbnRmaCwgZGV2X25hbWUpOworCWVycm9yID0gbmZzX3ZhbGlkYXRlX21vdW50X2RhdGEocmF3X2RhdGEsIGRhdGEsIG1udGZoLCBkZXZfbmFtZSk7CiAJaWYgKGVycm9yIDwgMCkKIAkJZ290byBvdXQ7CiAKIAkvKiBHZXQgYSB2b2x1bWUgcmVwcmVzZW50YXRpb24gKi8KLQlzZXJ2ZXIgPSBuZnNfY3JlYXRlX3NlcnZlcigmZGF0YSwgJm1udGZoKTsKKwlzZXJ2ZXIgPSBuZnNfY3JlYXRlX3NlcnZlcihkYXRhLCBtbnRmaCk7CiAJaWYgKElTX0VSUihzZXJ2ZXIpKSB7CiAJCWVycm9yID0gUFRSX0VSUihzZXJ2ZXIpOwogCQlnb3RvIG91dDsKQEAgLTE2MzAsMTYgKzE2MzMsMTYgQEAKIAogCWlmICghcy0+c19yb290KSB7CiAJCS8qIGluaXRpYWwgc3VwZXJibG9jay9yb290IGNyZWF0aW9uICovCi0JCW5mc19maWxsX3N1cGVyKHMsICZkYXRhKTsKKwkJbmZzX2ZpbGxfc3VwZXIocywgZGF0YSk7CiAJfQogCi0JbW50cm9vdCA9IG5mc19nZXRfcm9vdChzLCAmbW50ZmgpOworCW1udHJvb3QgPSBuZnNfZ2V0X3Jvb3QocywgbW50ZmgpOwogCWlmIChJU19FUlIobW50cm9vdCkpIHsKIAkJZXJyb3IgPSBQVFJfRVJSKG1udHJvb3QpOwogCQlnb3RvIGVycm9yX3NwbGF0X3N1cGVyOwogCX0KIAotCWVycm9yID0gc2VjdXJpdHlfc2Jfc2V0X21udF9vcHRzKHMsICZkYXRhLmxzbV9vcHRzKTsKKwllcnJvciA9IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzLCAmZGF0YS0+bHNtX29wdHMpOwogCWlmIChlcnJvcikKIAkJZ290byBlcnJvcl9zcGxhdF9yb290OwogCkBAIC0xNjQ5LDkgKzE2NTIsMTIgQEAKIAllcnJvciA9IDA7CiAKIG91dDoKLQlrZnJlZShkYXRhLm5mc19zZXJ2ZXIuaG9zdG5hbWUpOwotCWtmcmVlKGRhdGEubW91bnRfc2VydmVyLmhvc3RuYW1lKTsKLQlzZWN1cml0eV9mcmVlX21udF9vcHRzKCZkYXRhLmxzbV9vcHRzKTsKKwlrZnJlZShkYXRhLT5uZnNfc2VydmVyLmhvc3RuYW1lKTsKKwlrZnJlZShkYXRhLT5tb3VudF9zZXJ2ZXIuaG9zdG5hbWUpOworCXNlY3VyaXR5X2ZyZWVfbW50X29wdHMoJmRhdGEtPmxzbV9vcHRzKTsKK291dF9mcmVlX2ZoOgorCWtmcmVlKG1udGZoKTsKKwlrZnJlZShkYXRhKTsKIAlyZXR1cm4gZXJyb3I7CiAKIG91dF9lcnJfbm9zYjoKQEAgLTE4MDAsOCArMTgwNiw2IEBACiAJc3RydWN0IG5mczRfbW91bnRfZGF0YSAqZGF0YSA9IChzdHJ1Y3QgbmZzNF9tb3VudF9kYXRhICopb3B0aW9uczsKIAljaGFyICpjOwogCi0JbWVtc2V0KGFyZ3MsIDAsIHNpemVvZigqYXJncykpOwotCiAJaWYgKGRhdGEgPT0gTlVMTCkKIAkJZ290byBvdXRfbm9fZGF0YTsKIApAQCAtMTk1OSwyNiArMTk2MywzMSBAQAogc3RhdGljIGludCBuZnM0X2dldF9zYihzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwKIAlpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKmRldl9uYW1lLCB2b2lkICpyYXdfZGF0YSwgc3RydWN0IHZmc21vdW50ICptbnQpCiB7Ci0Jc3RydWN0IG5mc19wYXJzZWRfbW91bnRfZGF0YSBkYXRhOworCXN0cnVjdCBuZnNfcGFyc2VkX21vdW50X2RhdGEgKmRhdGE7CiAJc3RydWN0IHN1cGVyX2Jsb2NrICpzOwogCXN0cnVjdCBuZnNfc2VydmVyICpzZXJ2ZXI7Ci0Jc3RydWN0IG5mc19maCBtbnRmaDsKKwlzdHJ1Y3QgbmZzX2ZoICptbnRmaDsKIAlzdHJ1Y3QgZGVudHJ5ICptbnRyb290OwogCWludCAoKmNvbXBhcmVfc3VwZXIpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB2b2lkICopID0gbmZzX2NvbXBhcmVfc3VwZXI7CiAJc3RydWN0IG5mc19zYl9tb3VudGRhdGEgc2JfbW50ZGF0YSA9IHsKIAkJLm1udGZsYWdzID0gZmxhZ3MsCiAJfTsKLQlpbnQgZXJyb3I7CisJaW50IGVycm9yID0gLUVOT01FTTsKIAotCXNlY3VyaXR5X2luaXRfbW50X29wdHMoJmRhdGEubHNtX29wdHMpOworCWRhdGEgPSBremFsbG9jKHNpemVvZigqZGF0YSksIEdGUF9LRVJORUwpOworCW1udGZoID0ga3phbGxvYyhzaXplb2YoKm1udGZoKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGRhdGEgPT0gTlVMTCB8fCBtbnRmaCA9PSBOVUxMKQorCQlnb3RvIG91dF9mcmVlX2ZoOworCisJc2VjdXJpdHlfaW5pdF9tbnRfb3B0cygmZGF0YS0+bHNtX29wdHMpOwogCiAJLyogVmFsaWRhdGUgdGhlIG1vdW50IGRhdGEgKi8KLQllcnJvciA9IG5mczRfdmFsaWRhdGVfbW91bnRfZGF0YShyYXdfZGF0YSwgJmRhdGEsIGRldl9uYW1lKTsKKwllcnJvciA9IG5mczRfdmFsaWRhdGVfbW91bnRfZGF0YShyYXdfZGF0YSwgZGF0YSwgZGV2X25hbWUpOwogCWlmIChlcnJvciA8IDApCiAJCWdvdG8gb3V0OwogCiAJLyogR2V0IGEgdm9sdW1lIHJlcHJlc2VudGF0aW9uICovCi0Jc2VydmVyID0gbmZzNF9jcmVhdGVfc2VydmVyKCZkYXRhLCAmbW50ZmgpOworCXNlcnZlciA9IG5mczRfY3JlYXRlX3NlcnZlcihkYXRhLCBtbnRmaCk7CiAJaWYgKElTX0VSUihzZXJ2ZXIpKSB7CiAJCWVycm9yID0gUFRSX0VSUihzZXJ2ZXIpOwogCQlnb3RvIG91dDsKQEAgLTIwMDksMTMgKzIwMTgsMTMgQEAKIAkJbmZzNF9maWxsX3N1cGVyKHMpOwogCX0KIAotCW1udHJvb3QgPSBuZnM0X2dldF9yb290KHMsICZtbnRmaCk7CisJbW50cm9vdCA9IG5mczRfZ2V0X3Jvb3QocywgbW50ZmgpOwogCWlmIChJU19FUlIobW50cm9vdCkpIHsKIAkJZXJyb3IgPSBQVFJfRVJSKG1udHJvb3QpOwogCQlnb3RvIGVycm9yX3NwbGF0X3N1cGVyOwogCX0KIAotCWVycm9yID0gc2VjdXJpdHlfc2Jfc2V0X21udF9vcHRzKHMsICZkYXRhLmxzbV9vcHRzKTsKKwllcnJvciA9IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzLCAmZGF0YS0+bHNtX29wdHMpOwogCWlmIChlcnJvcikKIAkJZ290byBlcnJvcl9zcGxhdF9yb290OwogCkBAIC0yMDI1LDEwICsyMDM0LDEzIEBACiAJZXJyb3IgPSAwOwogCiBvdXQ6Ci0Ja2ZyZWUoZGF0YS5jbGllbnRfYWRkcmVzcyk7Ci0Ja2ZyZWUoZGF0YS5uZnNfc2VydmVyLmV4cG9ydF9wYXRoKTsKLQlrZnJlZShkYXRhLm5mc19zZXJ2ZXIuaG9zdG5hbWUpOwotCXNlY3VyaXR5X2ZyZWVfbW50X29wdHMoJmRhdGEubHNtX29wdHMpOworCWtmcmVlKGRhdGEtPmNsaWVudF9hZGRyZXNzKTsKKwlrZnJlZShkYXRhLT5uZnNfc2VydmVyLmV4cG9ydF9wYXRoKTsKKwlrZnJlZShkYXRhLT5uZnNfc2VydmVyLmhvc3RuYW1lKTsKKwlzZWN1cml0eV9mcmVlX21udF9vcHRzKCZkYXRhLT5sc21fb3B0cyk7CitvdXRfZnJlZV9maDoKKwlrZnJlZShtbnRmaCk7CisJa2ZyZWUoZGF0YSk7CiAJcmV0dXJuIGVycm9yOwogCiBvdXRfZnJlZToKZGlmZiAtLWdpdCBhL2ZzL25mcy93cml0ZS5jIGIvZnMvbmZzL3dyaXRlLmMKaW5kZXggNmQ4YWNlMy4uZjMzMzg0OCAxMDA2NDQKLS0tIGEvZnMvbmZzL3dyaXRlLmMKKysrIGIvZnMvbmZzL3dyaXRlLmMKQEAgLTczOSwxMiArNzM5LDEzIEBACiAJfQogCiAJc3RhdHVzID0gbmZzX3dyaXRlcGFnZV9zZXR1cChjdHgsIHBhZ2UsIG9mZnNldCwgY291bnQpOwotCV9fc2V0X3BhZ2VfZGlydHlfbm9idWZmZXJzKHBhZ2UpOworCWlmIChzdGF0dXMgPCAwKQorCQluZnNfc2V0X3BhZ2VlcnJvcihwYWdlKTsKKwllbHNlCisJCV9fc2V0X3BhZ2VfZGlydHlfbm9idWZmZXJzKHBhZ2UpOwogCiAgICAgICAgIGRwcmludGsoIk5GUzogICAgICBuZnNfdXBkYXRlcGFnZSByZXR1cm5zICVkIChpc2l6ZSAlTGQpXG4iLAogCQkJc3RhdHVzLCAobG9uZyBsb25nKWlfc2l6ZV9yZWFkKGlub2RlKSk7Ci0JaWYgKHN0YXR1cyA8IDApCi0JCW5mc19zZXRfcGFnZWVycm9yKHBhZ2UpOwogCXJldHVybiBzdGF0dXM7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL250ZnMvdXBjYXNlLmMgYi9mcy9udGZzL3VwY2FzZS5jCmluZGV4IDkxMDE4MDcuLmUyZjcyY2EgMTAwNjQ0Ci0tLSBhL2ZzL250ZnMvdXBjYXNlLmMKKysrIGIvZnMvbnRmcy91cGNhc2UuYwpAQCAtNzcsMTEgKzc3LDEwIEBACiAJCXVjW2ldID0gY3B1X3RvX2xlMTYoaSk7CiAJZm9yIChyID0gMDsgdWNfcnVuX3RhYmxlW3JdWzBdOyByKyspCiAJCWZvciAoaSA9IHVjX3J1bl90YWJsZVtyXVswXTsgaSA8IHVjX3J1bl90YWJsZVtyXVsxXTsgaSsrKQotCQkJdWNbaV0gPSBjcHVfdG9fbGUxNihsZTE2X3RvX2NwdSh1Y1tpXSkgKwotCQkJCQl1Y19ydW5fdGFibGVbcl1bMl0pOworCQkJbGUxNl9hZGRfY3B1KCZ1Y1tpXSwgdWNfcnVuX3RhYmxlW3JdWzJdKTsKIAlmb3IgKHIgPSAwOyB1Y19kdXBfdGFibGVbcl1bMF07IHIrKykKIAkJZm9yIChpID0gdWNfZHVwX3RhYmxlW3JdWzBdOyBpIDwgdWNfZHVwX3RhYmxlW3JdWzFdOyBpICs9IDIpCi0JCQl1Y1tpICsgMV0gPSBjcHVfdG9fbGUxNihsZTE2X3RvX2NwdSh1Y1tpICsgMV0pIC0gMSk7CisJCQlsZTE2X2FkZF9jcHUoJnVjW2kgKyAxXSwgLTEpOwogCWZvciAociA9IDA7IHVjX3dvcmRfdGFibGVbcl1bMF07IHIrKykKIAkJdWNbdWNfd29yZF90YWJsZVtyXVswXV0gPSBjcHVfdG9fbGUxNih1Y193b3JkX3RhYmxlW3JdWzFdKTsKIAlyZXR1cm4gdWM7CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmMgYi9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmMKaW5kZXggY2Y5NDAxZS4uY2ZkYjA4YiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvY2x1c3Rlci9ub2RlbWFuYWdlci5jCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvbm9kZW1hbmFnZXIuYwpAQCAtMjEsNyArMjEsNiBAQAogCiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvY29uZmlnZnMuaD4KIAogI2luY2x1ZGUgInRjcC5oIgpAQCAtMzYsNjUgKzM1LDYgQEAKICAqIGNsdXN0ZXIgcmVmZXJlbmNlcyB0aHJvdWdob3V0IHdoZXJlIG5vZGVzIGFyZSBsb29rZWQgdXAgKi8KIHN0cnVjdCBvMm5tX2NsdXN0ZXIgKm8ybm1fc2luZ2xlX2NsdXN0ZXIgPSBOVUxMOwogCi0jZGVmaW5lIE9DRlMyX01BWF9IQl9DVExfUEFUSCAyNTYKLXN0YXRpYyBjaGFyIG9jZnMyX2hiX2N0bF9wYXRoW09DRlMyX01BWF9IQl9DVExfUEFUSF0gPSAiL3NiaW4vb2NmczJfaGJfY3RsIjsKLQotc3RhdGljIGN0bF90YWJsZSBvY2ZzMl9ubV90YWJsZVtdID0gewotCXsKLQkJLmN0bF9uYW1lCT0gMSwKLQkJLnByb2NuYW1lCT0gImhiX2N0bF9wYXRoIiwKLQkJLmRhdGEJCT0gb2NmczJfaGJfY3RsX3BhdGgsCi0JCS5tYXhsZW4JCT0gT0NGUzJfTUFYX0hCX0NUTF9QQVRILAotCQkubW9kZQkJPSAwNjQ0LAotCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9zdHJpbmcsCi0JCS5zdHJhdGVneQk9ICZzeXNjdGxfc3RyaW5nLAotCX0sCi0JeyAuY3RsX25hbWUgPSAwIH0KLX07Ci0KLXN0YXRpYyBjdGxfdGFibGUgb2NmczJfbW9kX3RhYmxlW10gPSB7Ci0JewotCQkuY3RsX25hbWUJPSBGU19PQ0ZTMl9OTSwKLQkJLnByb2NuYW1lCT0gIm5tIiwKLQkJLmRhdGEJCT0gTlVMTCwKLQkJLm1heGxlbgkJPSAwLAotCQkubW9kZQkJPSAwNTU1LAotCQkuY2hpbGQJCT0gb2NmczJfbm1fdGFibGUKLQl9LAotCXsgLmN0bF9uYW1lID0gMH0KLX07Ci0KLXN0YXRpYyBjdGxfdGFibGUgb2NmczJfa2Vybl90YWJsZVtdID0gewotCXsKLQkJLmN0bF9uYW1lCT0gRlNfT0NGUzIsCi0JCS5wcm9jbmFtZQk9ICJvY2ZzMiIsCi0JCS5kYXRhCQk9IE5VTEwsCi0JCS5tYXhsZW4JCT0gMCwKLQkJLm1vZGUJCT0gMDU1NSwKLQkJLmNoaWxkCQk9IG9jZnMyX21vZF90YWJsZQotCX0sCi0JeyAuY3RsX25hbWUgPSAwfQotfTsKLQotc3RhdGljIGN0bF90YWJsZSBvY2ZzMl9yb290X3RhYmxlW10gPSB7Ci0JewotCQkuY3RsX25hbWUJPSBDVExfRlMsCi0JCS5wcm9jbmFtZQk9ICJmcyIsCi0JCS5kYXRhCQk9IE5VTEwsCi0JCS5tYXhsZW4JCT0gMCwKLQkJLm1vZGUJCT0gMDU1NSwKLQkJLmNoaWxkCQk9IG9jZnMyX2tlcm5fdGFibGUKLQl9LAotCXsgLmN0bF9uYW1lID0gMCB9Ci19OwotCi1zdGF0aWMgc3RydWN0IGN0bF90YWJsZV9oZWFkZXIgKm9jZnMyX3RhYmxlX2hlYWRlciA9IE5VTEw7Ci0KLWNvbnN0IGNoYXIgKm8ybm1fZ2V0X2hiX2N0bF9wYXRoKHZvaWQpCi17Ci0JcmV0dXJuIG9jZnMyX2hiX2N0bF9wYXRoOwotfQotRVhQT1JUX1NZTUJPTF9HUEwobzJubV9nZXRfaGJfY3RsX3BhdGgpOwogCiBzdHJ1Y3QgbzJubV9ub2RlICpvMm5tX2dldF9ub2RlX2J5X251bSh1OCBub2RlX251bSkKIHsKQEAgLTk0MSw5ICs4ODEsNiBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgZXhpdF9vMm5tKHZvaWQpCiB7Ci0JaWYgKG9jZnMyX3RhYmxlX2hlYWRlcikKLQkJdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfdGFibGVfaGVhZGVyKTsKLQogCS8qIFhYWCBzeW5jIHdpdGggaGIgY2FsbGJhY2tzIGFuZCBzaHV0IGRvd24gaGI/ICovCiAJbzJuZXRfdW5yZWdpc3Rlcl9oYl9jYWxsYmFja3MoKTsKIAljb25maWdmc191bnJlZ2lzdGVyX3N1YnN5c3RlbSgmbzJubV9jbHVzdGVyX2dyb3VwLmNzX3N1YnN5cyk7CkBAIC05NjQsMTYgKzkwMSw5IEBACiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQlvY2ZzMl90YWJsZV9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfcm9vdF90YWJsZSk7Ci0JaWYgKCFvY2ZzMl90YWJsZV9oZWFkZXIpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJub2RlbWFuYWdlcjogdW5hYmxlIHRvIHJlZ2lzdGVyIHN5c2N0bFxuIik7Ci0JCXJldCA9IC1FTk9NRU07IC8qIG9yIHNvbWV0aGluZy4gKi8KLQkJZ290byBvdXRfbzJuZXQ7Ci0JfQotCiAJcmV0ID0gbzJuZXRfcmVnaXN0ZXJfaGJfY2FsbGJhY2tzKCk7CiAJaWYgKHJldCkKLQkJZ290byBvdXRfc3lzY3RsOworCQlnb3RvIG91dF9vMm5ldDsKIAogCWNvbmZpZ19ncm91cF9pbml0KCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzLnN1X2dyb3VwKTsKIAltdXRleF9pbml0KCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzLnN1X211dGV4KTsKQEAgLTk5MCw4ICs5MjAsNiBAQAogCWNvbmZpZ2ZzX3VucmVnaXN0ZXJfc3Vic3lzdGVtKCZvMm5tX2NsdXN0ZXJfZ3JvdXAuY3Nfc3Vic3lzKTsKIG91dF9jYWxsYmFja3M6CiAJbzJuZXRfdW5yZWdpc3Rlcl9oYl9jYWxsYmFja3MoKTsKLW91dF9zeXNjdGw6Ci0JdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUob2NmczJfdGFibGVfaGVhZGVyKTsKIG91dF9vMm5ldDoKIAlvMm5ldF9leGl0KCk7CiBvdXQ6CmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmggYi9mcy9vY2ZzMi9jbHVzdGVyL25vZGVtYW5hZ2VyLmgKaW5kZXggN2M4NjAzNi4uYzk5MmVhMCAxMDA2NDQKLS0tIGEvZnMvb2NmczIvY2x1c3Rlci9ub2RlbWFuYWdlci5oCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvbm9kZW1hbmFnZXIuaApAQCAtMzMsMTAgKzMzLDYgQEAKICNpbmNsdWRlIDxsaW51eC9jb25maWdmcy5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5oPgogCi0jZGVmaW5lIEZTX09DRlMyX05NCQkxCi0KLWNvbnN0IGNoYXIgKm8ybm1fZ2V0X2hiX2N0bF9wYXRoKHZvaWQpOwotCiBzdHJ1Y3QgbzJubV9ub2RlIHsKIAlzcGlubG9ja190CQluZF9sb2NrOwogCXN0cnVjdCBjb25maWdfaXRlbQluZF9pdGVtOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvY2x1c3Rlci90Y3AuYyBiL2ZzL29jZnMyL2NsdXN0ZXIvdGNwLmMKaW5kZXggMWU0NGFkMS4uYTI3ZDYxNSAxMDA2NDQKLS0tIGEvZnMvb2NmczIvY2x1c3Rlci90Y3AuYworKysgYi9mcy9vY2ZzMi9jbHVzdGVyL3RjcC5jCkBAIC0xNDIsNTMgKzE0Miw0MyBAQAogc3RhdGljIHZvaWQgbzJuZXRfc2NfcG9zdHBvbmVfaWRsZShzdHJ1Y3QgbzJuZXRfc29ja19jb250YWluZXIgKnNjKTsKIHN0YXRpYyB2b2lkIG8ybmV0X3NjX3Jlc2V0X2lkbGVfdGltZXIoc3RydWN0IG8ybmV0X3NvY2tfY29udGFpbmVyICpzYyk7CiAKLXN0YXRpYyB2b2lkIG8ybmV0X2luaXRfbnN0KHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsIHUzMiBtc2d0eXBlLAotCQkJICAgdTMyIG1zZ2tleSwgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCB1OCBub2RlKQotewogI2lmZGVmIENPTkZJR19ERUJVR19GUwordm9pZCBvMm5ldF9pbml0X25zdChzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0LCB1MzIgbXNndHlwZSwKKwkJICAgIHUzMiBtc2drZXksIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdTggbm9kZSkKK3sKIAlJTklUX0xJU1RfSEVBRCgmbnN0LT5zdF9uZXRfZGVidWdfaXRlbSk7CiAJbnN0LT5zdF90YXNrID0gdGFzazsKIAluc3QtPnN0X21zZ190eXBlID0gbXNndHlwZTsKIAluc3QtPnN0X21zZ19rZXkgPSBtc2drZXk7CiAJbnN0LT5zdF9ub2RlID0gbm9kZTsKLSNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBvMm5ldF9zZXRfbnN0X3NvY2tfdGltZShzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQordm9pZCBvMm5ldF9zZXRfbnN0X3NvY2tfdGltZShzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQogewotI2lmZGVmIENPTkZJR19ERUJVR19GUwogCWRvX2dldHRpbWVvZmRheSgmbnN0LT5zdF9zb2NrX3RpbWUpOwotI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIG8ybmV0X3NldF9uc3Rfc2VuZF90aW1lKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QpCit2b2lkIG8ybmV0X3NldF9uc3Rfc2VuZF90aW1lKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QpCiB7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCiAJZG9fZ2V0dGltZW9mZGF5KCZuc3QtPnN0X3NlbmRfdGltZSk7Ci0jZW5kaWYKIH0KIAotc3RhdGljIHZvaWQgbzJuZXRfc2V0X25zdF9zdGF0dXNfdGltZShzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQordm9pZCBvMm5ldF9zZXRfbnN0X3N0YXR1c190aW1lKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QpCiB7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCiAJZG9fZ2V0dGltZW9mZGF5KCZuc3QtPnN0X3N0YXR1c190aW1lKTsKLSNlbmRpZgogfQogCi1zdGF0aWMgdm9pZCBvMm5ldF9zZXRfbnN0X3NvY2tfY29udGFpbmVyKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsCit2b2lkIG8ybmV0X3NldF9uc3Rfc29ja19jb250YWluZXIoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCwKIAkJCQkJIHN0cnVjdCBvMm5ldF9zb2NrX2NvbnRhaW5lciAqc2MpCiB7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCiAJbnN0LT5zdF9zYyA9IHNjOwotI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIG8ybmV0X3NldF9uc3RfbXNnX2lkKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsIHUzMiBtc2dfaWQpCit2b2lkIG8ybmV0X3NldF9uc3RfbXNnX2lkKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsIHUzMiBtc2dfaWQpCiB7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCiAJbnN0LT5zdF9pZCA9IG1zZ19pZDsKLSNlbmRpZgogfQorI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqLwogCiBzdGF0aWMgaW5saW5lIGludCBvMm5ldF9yZWNvbm5lY3RfZGVsYXkodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2NsdXN0ZXIvdGNwLmggYi9mcy9vY2ZzMi9jbHVzdGVyL3RjcC5oCmluZGV4IGE3MDVkNWQuLmZkNjE3OWUgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2NsdXN0ZXIvdGNwLmgKKysrIGIvZnMvb2NmczIvY2x1c3Rlci90Y3AuaApAQCAtMTI4LDIzICsxMjgsMjMgQEAKIHZvaWQgbzJuZXRfZGVidWdfYWRkX3NjKHN0cnVjdCBvMm5ldF9zb2NrX2NvbnRhaW5lciAqc2MpOwogdm9pZCBvMm5ldF9kZWJ1Z19kZWxfc2Moc3RydWN0IG8ybmV0X3NvY2tfY29udGFpbmVyICpzYyk7CiAjZWxzZQotc3RhdGljIGludCBvMm5ldF9kZWJ1Z2ZzX2luaXQodm9pZCkKK3N0YXRpYyBpbmxpbmUgaW50IG8ybmV0X2RlYnVnZnNfaW5pdCh2b2lkKQogewogCXJldHVybiAwOwogfQotc3RhdGljIHZvaWQgbzJuZXRfZGVidWdmc19leGl0KHZvaWQpCitzdGF0aWMgaW5saW5lIHZvaWQgbzJuZXRfZGVidWdmc19leGl0KHZvaWQpCiB7CiB9Ci1zdGF0aWMgdm9pZCBvMm5ldF9kZWJ1Z19hZGRfbnN0KHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QpCitzdGF0aWMgaW5saW5lIHZvaWQgbzJuZXRfZGVidWdfYWRkX25zdChzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQogewogfQotc3RhdGljIHZvaWQgbzJuZXRfZGVidWdfZGVsX25zdChzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQorc3RhdGljIGlubGluZSB2b2lkIG8ybmV0X2RlYnVnX2RlbF9uc3Qoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCkKIHsKIH0KLXN0YXRpYyB2b2lkIG8ybmV0X2RlYnVnX2FkZF9zYyhzdHJ1Y3QgbzJuZXRfc29ja19jb250YWluZXIgKnNjKQorc3RhdGljIGlubGluZSB2b2lkIG8ybmV0X2RlYnVnX2FkZF9zYyhzdHJ1Y3QgbzJuZXRfc29ja19jb250YWluZXIgKnNjKQogewogfQotc3RhdGljIHZvaWQgbzJuZXRfZGVidWdfZGVsX3NjKHN0cnVjdCBvMm5ldF9zb2NrX2NvbnRhaW5lciAqc2MpCitzdGF0aWMgaW5saW5lIHZvaWQgbzJuZXRfZGVidWdfZGVsX3NjKHN0cnVjdCBvMm5ldF9zb2NrX2NvbnRhaW5lciAqc2MpCiB7CiB9CiAjZW5kaWYJLyogQ09ORklHX0RFQlVHX0ZTICovCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9jbHVzdGVyL3RjcF9pbnRlcm5hbC5oIGIvZnMvb2NmczIvY2x1c3Rlci90Y3BfaW50ZXJuYWwuaAppbmRleCA4ZDU4Y2ZlLi4xODMwN2ZmIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9jbHVzdGVyL3RjcF9pbnRlcm5hbC5oCisrKyBiL2ZzL29jZnMyL2NsdXN0ZXIvdGNwX2ludGVybmFsLmgKQEAgLTIyNCwxMCArMjI0LDQyIEBACiAJc3RydWN0IHRpbWV2YWwJCQlzdF9zZW5kX3RpbWU7CiAJc3RydWN0IHRpbWV2YWwJCQlzdF9zdGF0dXNfdGltZTsKIH07CisKK3ZvaWQgbzJuZXRfaW5pdF9uc3Qoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCwgdTMyIG1zZ3R5cGUsCisJCSAgICB1MzIgbXNna2V5LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHU4IG5vZGUpOwordm9pZCBvMm5ldF9zZXRfbnN0X3NvY2tfdGltZShzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KTsKK3ZvaWQgbzJuZXRfc2V0X25zdF9zZW5kX3RpbWUoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCk7Cit2b2lkIG8ybmV0X3NldF9uc3Rfc3RhdHVzX3RpbWUoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCk7Cit2b2lkIG8ybmV0X3NldF9uc3Rfc29ja19jb250YWluZXIoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCwKKwkJCQkgIHN0cnVjdCBvMm5ldF9zb2NrX2NvbnRhaW5lciAqc2MpOwordm9pZCBvMm5ldF9zZXRfbnN0X21zZ19pZChzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0LCB1MzIgbXNnX2lkKTsKKwogI2Vsc2UKIHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nIHsKIAl1MzIJZHVtbXk7CiB9OworCitzdGF0aWMgaW5saW5lIHZvaWQgbzJuZXRfaW5pdF9uc3Qoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCwgdTMyIG1zZ3R5cGUsCisJCQkJICB1MzIgbXNna2V5LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHU4IG5vZGUpCit7Cit9CitzdGF0aWMgaW5saW5lIHZvaWQgbzJuZXRfc2V0X25zdF9zb2NrX3RpbWUoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCkKK3sKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCBvMm5ldF9zZXRfbnN0X3NlbmRfdGltZShzdHJ1Y3QgbzJuZXRfc2VuZF90cmFja2luZyAqbnN0KQoreworfQorc3RhdGljIGlubGluZSB2b2lkIG8ybmV0X3NldF9uc3Rfc3RhdHVzX3RpbWUoc3RydWN0IG8ybmV0X3NlbmRfdHJhY2tpbmcgKm5zdCkKK3sKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCBvMm5ldF9zZXRfbnN0X3NvY2tfY29udGFpbmVyKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsCisJCQkJCQlzdHJ1Y3QgbzJuZXRfc29ja19jb250YWluZXIgKnNjKQoreworfQorc3RhdGljIGlubGluZSB2b2lkIG8ybmV0X3NldF9uc3RfbXNnX2lkKHN0cnVjdCBvMm5ldF9zZW5kX3RyYWNraW5nICpuc3QsCisJCQkJCXUzMiBtc2dfaWQpCit7Cit9CiAjZW5kaWYJLyogQ09ORklHX0RFQlVHX0ZTICovCiAKICNlbmRpZiAvKiBPMkNMVVNURVJfVENQX0lOVEVSTkFMX0ggKi8KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2RsbS9kbG1kZWJ1Zy5oIGIvZnMvb2NmczIvZGxtL2RsbWRlYnVnLmgKaW5kZXggZDM0YTYyYS4uOGM2ODZkMiAxMDA2NDQKLS0tIGEvZnMvb2NmczIvZGxtL2RsbWRlYnVnLmgKKysrIGIvZnMvb2NmczIvZGxtL2RsbWRlYnVnLmgKQEAgLTYwLDI1ICs2MCwyNSBAQAogCiAjZWxzZQogCi1zdGF0aWMgaW50IGRsbV9kZWJ1Z19pbml0KHN0cnVjdCBkbG1fY3R4dCAqZGxtKQorc3RhdGljIGlubGluZSBpbnQgZGxtX2RlYnVnX2luaXQoc3RydWN0IGRsbV9jdHh0ICpkbG0pCiB7CiAJcmV0dXJuIDA7CiB9Ci1zdGF0aWMgdm9pZCBkbG1fZGVidWdfc2h1dGRvd24oc3RydWN0IGRsbV9jdHh0ICpkbG0pCitzdGF0aWMgaW5saW5lIHZvaWQgZGxtX2RlYnVnX3NodXRkb3duKHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogewogfQotc3RhdGljIGludCBkbG1fY3JlYXRlX2RlYnVnZnNfc3Vicm9vdChzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKK3N0YXRpYyBpbmxpbmUgaW50IGRsbV9jcmVhdGVfZGVidWdmc19zdWJyb290KHN0cnVjdCBkbG1fY3R4dCAqZGxtKQogewogCXJldHVybiAwOwogfQotc3RhdGljIHZvaWQgZGxtX2Rlc3Ryb3lfZGVidWdmc19zdWJyb290KHN0cnVjdCBkbG1fY3R4dCAqZGxtKQorc3RhdGljIGlubGluZSB2b2lkIGRsbV9kZXN0cm95X2RlYnVnZnNfc3Vicm9vdChzdHJ1Y3QgZGxtX2N0eHQgKmRsbSkKIHsKIH0KLXN0YXRpYyBpbnQgZGxtX2NyZWF0ZV9kZWJ1Z2ZzX3Jvb3Qodm9pZCkKK3N0YXRpYyBpbmxpbmUgaW50IGRsbV9jcmVhdGVfZGVidWdmc19yb290KHZvaWQpCiB7CiAJcmV0dXJuIDA7CiB9Ci1zdGF0aWMgdm9pZCBkbG1fZGVzdHJveV9kZWJ1Z2ZzX3Jvb3Qodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBkbG1fZGVzdHJveV9kZWJ1Z2ZzX3Jvb3Qodm9pZCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jIGIvZnMvb2NmczIvZGxtL2RsbW1hc3Rlci5jCmluZGV4IGVmYzAxNWMuLjQ0Zjg3Y2EgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbS9kbG1tYXN0ZXIuYworKysgYi9mcy9vY2ZzMi9kbG0vZGxtbWFzdGVyLmMKQEAgLTYwNiw3ICs2MDYsOSBAQAogCiAJcmVzLT5sYXN0X3VzZWQgPSAwOwogCisJc3Bpbl9sb2NrKCZkbG0tPnNwaW5sb2NrKTsKIAlsaXN0X2FkZF90YWlsKCZyZXMtPnRyYWNraW5nLCAmZGxtLT50cmFja2luZ19saXN0KTsKKwlzcGluX3VubG9jaygmZGxtLT5zcGlubG9jayk7CiAKIAltZW1zZXQocmVzLT5sdmIsIDAsIERMTV9MVkJfTEVOKTsKIAltZW1zZXQocmVzLT5yZWZtYXAsIDAsIHNpemVvZihyZXMtPnJlZm1hcCkpOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvZGxtZ2x1ZS5jIGIvZnMvb2NmczIvZGxtZ2x1ZS5jCmluZGV4IDM5NGQyNWEuLjgwZTIwZDkgMTAwNjQ0Ci0tLSBhL2ZzL29jZnMyL2RsbWdsdWUuYworKysgYi9mcy9vY2ZzMi9kbG1nbHVlLmMKQEAgLTE1NTQsOCArMTU1NCw4IEBACiAgKi8KIGludCBvY2ZzMl9maWxlX2xvY2soc3RydWN0IGZpbGUgKmZpbGUsIGludCBleCwgaW50IHRyeWxvY2spCiB7Ci0JaW50IHJldCwgbGV2ZWwgPSBleCA/IExLTV9FWE1PREUgOiBMS01fUFJNT0RFOwotCXVuc2lnbmVkIGludCBsa21fZmxhZ3MgPSB0cnlsb2NrID8gTEtNX05PUVVFVUUgOiAwOworCWludCByZXQsIGxldmVsID0gZXggPyBETE1fTE9DS19FWCA6IERMTV9MT0NLX1BSOworCXVuc2lnbmVkIGludCBsa21fZmxhZ3MgPSB0cnlsb2NrID8gRExNX0xLRl9OT1FVRVVFIDogMDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXN0cnVjdCBvY2ZzMl9maWxlX3ByaXZhdGUgKmZwID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwogCXN0cnVjdCBvY2ZzMl9sb2NrX3JlcyAqbG9ja3JlcyA9ICZmcC0+ZnBfZmxvY2s7CkBAIC0xNTgyLDcgKzE1ODIsNyBAQAogCQkgKiBHZXQgdGhlIGxvY2sgYXQgTkxNT0RFIHRvIHN0YXJ0IC0gdGhhdCB3YXkgd2UKIAkJICogY2FuIGNhbmNlbCB0aGUgdXBjb252ZXJ0IHJlcXVlc3QgaWYgbmVlZCBiZS4KIAkJICovCi0JCXJldCA9IG9jZnMyX2xvY2tfY3JlYXRlKG9zYiwgbG9ja3JlcywgTEtNX05MTU9ERSwgMCk7CisJCXJldCA9IG9jZnMyX2xvY2tfY3JlYXRlKG9zYiwgbG9ja3JlcywgRExNX0xPQ0tfTkwsIDApOwogCQlpZiAocmV0IDwgMCkgewogCQkJbWxvZ19lcnJubyhyZXQpOwogCQkJZ290byBvdXQ7CkBAIC0xNTk3LDcgKzE1OTcsNyBAQAogCX0KIAogCWxvY2tyZXMtPmxfYWN0aW9uID0gT0NGUzJfQVNUX0NPTlZFUlQ7Ci0JbGttX2ZsYWdzIHw9IExLTV9DT05WRVJUOworCWxrbV9mbGFncyB8PSBETE1fTEtGX0NPTlZFUlQ7CiAJbG9ja3Jlcy0+bF9yZXF1ZXN0ZWQgPSBsZXZlbDsKIAlsb2NrcmVzX29yX2ZsYWdzKGxvY2tyZXMsIE9DRlMyX0xPQ0tfQlVTWSk7CiAKQEAgLTE2NjQsNyArMTY2NCw3IEBACiAJaWYgKCEobG9ja3Jlcy0+bF9mbGFncyAmIE9DRlMyX0xPQ0tfQVRUQUNIRUQpKQogCQlyZXR1cm47CiAKLQlpZiAobG9ja3Jlcy0+bF9sZXZlbCA9PSBMS01fTkxNT0RFKQorCWlmIChsb2NrcmVzLT5sX2xldmVsID09IERMTV9MT0NLX05MKQogCQlyZXR1cm47CiAKIAltbG9nKDAsICJVbmxvY2s6IFwiJXNcIiBmbGFnczogMHglbHgsIGxldmVsOiAlZCwgYWN0OiAlZFxuIiwKQEAgLTE2NzgsMTEgKzE2NzgsMTEgQEAKIAlsb2NrcmVzX29yX2ZsYWdzKGxvY2tyZXMsIE9DRlMyX0xPQ0tfQkxPQ0tFRCk7CiAJbG9ja3Jlcy0+bF9ibG9ja2luZyA9IERMTV9MT0NLX0VYOwogCi0JZ2VuID0gb2NmczJfcHJlcGFyZV9kb3duY29udmVydChsb2NrcmVzLCBMS01fTkxNT0RFKTsKKwlnZW4gPSBvY2ZzMl9wcmVwYXJlX2Rvd25jb252ZXJ0KGxvY2tyZXMsIERMTV9MT0NLX05MKTsKIAlsb2NrcmVzX2FkZF9tYXNrX3dhaXRlcihsb2NrcmVzLCAmbXcsIE9DRlMyX0xPQ0tfQlVTWSwgMCk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbG9ja3Jlcy0+bF9sb2NrLCBmbGFncyk7CiAKLQlyZXQgPSBvY2ZzMl9kb3duY29udmVydF9sb2NrKG9zYiwgbG9ja3JlcywgTEtNX05MTU9ERSwgMCwgZ2VuKTsKKwlyZXQgPSBvY2ZzMl9kb3duY29udmVydF9sb2NrKG9zYiwgbG9ja3JlcywgRExNX0xPQ0tfTkwsIDAsIGdlbik7CiAJaWYgKHJldCkgewogCQltbG9nX2Vycm5vKHJldCk7CiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3N0YWNrX28yY2IuYyBiL2ZzL29jZnMyL3N0YWNrX28yY2IuYwppbmRleCBiYmQxNjY3Li5mY2QxMjBmIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9zdGFja19vMmNiLmMKKysrIGIvZnMvb2NmczIvc3RhY2tfbzJjYi5jCkBAIC0zMTcsOCArMzE3LDcgQEAKIAlyZXR1cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgbzJjYl9jbHVzdGVyX2Rpc2Nvbm5lY3Qoc3RydWN0IG9jZnMyX2NsdXN0ZXJfY29ubmVjdGlvbiAqY29ubiwKLQkJCQkgICBpbnQgaGFuZ3VwX3BlbmRpbmcpCitzdGF0aWMgaW50IG8yY2JfY2x1c3Rlcl9kaXNjb25uZWN0KHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4pCiB7CiAJc3RydWN0IGRsbV9jdHh0ICpkbG0gPSBjb25uLT5jY19sb2Nrc3BhY2U7CiAJc3RydWN0IG8yZGxtX3ByaXZhdGUgKnByaXYgPSBjb25uLT5jY19wcml2YXRlOwpAQCAtMzMzLDQzICszMzIsNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBvMmhiX3N0b3AoY29uc3QgY2hhciAqZ3JvdXApCi17Ci0JaW50IHJldDsKLQljaGFyICphcmd2WzVdLCAqZW52cFszXTsKLQotCWFyZ3ZbMF0gPSAoY2hhciAqKW8ybm1fZ2V0X2hiX2N0bF9wYXRoKCk7Ci0JYXJndlsxXSA9ICItSyI7Ci0JYXJndlsyXSA9ICItdSI7Ci0JYXJndlszXSA9IChjaGFyICopZ3JvdXA7Ci0JYXJndls0XSA9IE5VTEw7Ci0KLQltbG9nKDAsICJSdW46ICVzICVzICVzICVzXG4iLCBhcmd2WzBdLCBhcmd2WzFdLCBhcmd2WzJdLCBhcmd2WzNdKTsKLQotCS8qIG1pbmltYWwgY29tbWFuZCBlbnZpcm9ubWVudCB0YWtlbiBmcm9tIGNwdV9ydW5fc2Jpbl9ob3RwbHVnICovCi0JZW52cFswXSA9ICJIT01FPS8iOwotCWVudnBbMV0gPSAiUEFUSD0vc2JpbjovYmluOi91c3Ivc2JpbjovdXNyL2JpbiI7Ci0JZW52cFsyXSA9IE5VTEw7Ci0KLQlyZXQgPSBjYWxsX3VzZXJtb2RlaGVscGVyKGFyZ3ZbMF0sIGFyZ3YsIGVudnAsIFVNSF9XQUlUX1BST0MpOwotCWlmIChyZXQgPCAwKQotCQltbG9nX2Vycm5vKHJldCk7Ci19Ci0KLS8qCi0gKiBIYW5ndXAgaXMgYSBoYWNrIGZvciB0b29scyBjb21wYXRpYmlsaXR5LiAgT2xkZXIgb2NmczItdG9vbHMgc29mdHdhcmUKLSAqIGV4cGVjdHMgdGhlIGZpbGVzeXN0ZW0gdG8gY2FsbCAib2NmczJfaGJfY3RsIiBkdXJpbmcgdW5tb3VudC4gIFRoaXMKLSAqIGhhcHBlbnMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBETE0gZ290IHN0YXJ0ZWQsIHNvIHdlIGNhbid0IGRvIGl0Ci0gKiBpbiBvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QoKS4gIFdlIGJyaW5nIHRoZSBvMmhiX3N0b3AoKSBmdW5jdGlvbiBpbnRvCi0gKiB0aGUgZ2x1ZSBhbmQgcHJvdmlkZSBhICJoYW5ndXAiIEFQSSBmb3Igc3VwZXIuYyB0byBjYWxsLgotICoKLSAqIE90aGVyIHN0YWNrcyB3aWxsIGV2ZW50dWFsbHkgcHJvdmlkZSBhIE5VTEwgLT5oYW5ndXAoKSBwb2ludGVyLgotICovCi1zdGF0aWMgdm9pZCBvMmNiX2NsdXN0ZXJfaGFuZ3VwKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pCi17Ci0JbzJoYl9zdG9wKGdyb3VwKTsKLX0KLQogc3RhdGljIGludCBvMmNiX2NsdXN0ZXJfdGhpc19ub2RlKHVuc2lnbmVkIGludCAqbm9kZSkKIHsKIAlpbnQgbm9kZV9udW07CkBAIC0zODgsNyArMzUwLDYgQEAKIHN0YXRpYyBzdHJ1Y3Qgb2NmczJfc3RhY2tfb3BlcmF0aW9ucyBvMmNiX3N0YWNrX29wcyA9IHsKIAkuY29ubmVjdAk9IG8yY2JfY2x1c3Rlcl9jb25uZWN0LAogCS5kaXNjb25uZWN0CT0gbzJjYl9jbHVzdGVyX2Rpc2Nvbm5lY3QsCi0JLmhhbmd1cAkJPSBvMmNiX2NsdXN0ZXJfaGFuZ3VwLAogCS50aGlzX25vZGUJPSBvMmNiX2NsdXN0ZXJfdGhpc19ub2RlLAogCS5kbG1fbG9jawk9IG8yY2JfZGxtX2xvY2ssCiAJLmRsbV91bmxvY2sJPSBvMmNiX2RsbV91bmxvY2ssCmRpZmYgLS1naXQgYS9mcy9vY2ZzMi9zdGFja191c2VyLmMgYi9mcy9vY2ZzMi9zdGFja191c2VyLmMKaW5kZXggYjUwMzc3Mi4uYmQ3ZTBmMyAxMDA2NDQKLS0tIGEvZnMvb2NmczIvc3RhY2tfdXNlci5jCisrKyBiL2ZzL29jZnMyL3N0YWNrX3VzZXIuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPgogCkBAIC02MSw3ICs2Miw3IEBACiAgKiBuZWdvdGlhdGVkIGJ5IHRoZSBjbGllbnQuICBUaGUgY2xpZW50IG5lZ290aWF0ZXMgYmFzZWQgb24gdGhlIG1heGltdW0KICAqIHZlcnNpb24gYWR2ZXJ0aXNlZCBpbiAvc3lzL2ZzL29jZnMyL21heF9sb2NraW5nX3Byb3RvY29sLiAgVGhlIG1ham9yCiAgKiBudW1iZXIgZnJvbSB0aGUgIlNFVFYiIG1lc3NhZ2UgbXVzdCBtYXRjaAotICogdXNlcl9zdGFjay5zcF9wcm90by0+bHBfbWF4X3ZlcnNpb24ucHZfbWFqb3IsIGFuZCB0aGUgbWlub3IgbnVtYmVyCisgKiBvY2ZzMl91c2VyX3BsdWdpbi5zcF9wcm90by0+bHBfbWF4X3ZlcnNpb24ucHZfbWFqb3IsIGFuZCB0aGUgbWlub3IgbnVtYmVyCiAgKiBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAuLi4tPmxwX21heF92ZXJzaW9uLnB2X21pbm9yLgogICoKICAqIE9uY2UgdGhpcyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBzZXQsIG1vdW50cyB3aWxsIGJlIGFsbG93ZWQuICBGcm9tIHRoaXMKQEAgLTE1Myw3ICsxNTQsNyBAQAogCXN0cnVjdCBvY2ZzMl9jb250cm9sX21lc3NhZ2VfZG93bgl1X2Rvd247CiB9OwogCi1zdGF0aWMgc3RydWN0IG9jZnMyX3N0YWNrX3BsdWdpbiB1c2VyX3N0YWNrOworc3RhdGljIHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gb2NmczJfdXNlcl9wbHVnaW47CiAKIHN0YXRpYyBhdG9taWNfdCBvY2ZzMl9jb250cm9sX29wZW5lZDsKIHN0YXRpYyBpbnQgb2NmczJfY29udHJvbF90aGlzX25vZGUgPSAtMTsKQEAgLTM5OSw3ICs0MDAsNyBAQAogCWNoYXIgKnB0ciA9IE5VTEw7CiAJc3RydWN0IG9jZnMyX2NvbnRyb2xfcHJpdmF0ZSAqcCA9IGZpbGUtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3Qgb2NmczJfcHJvdG9jb2xfdmVyc2lvbiAqbWF4ID0KLQkJJnVzZXJfc3RhY2suc3BfcHJvdG8tPmxwX21heF92ZXJzaW9uOworCQkmb2NmczJfdXNlcl9wbHVnaW4uc3BfcHJvdG8tPmxwX21heF92ZXJzaW9uOwogCiAJaWYgKG9jZnMyX2NvbnRyb2xfZ2V0X2hhbmRzaGFrZV9zdGF0ZShmaWxlKSAhPQogCSAgICBPQ0ZTMl9DT05UUk9MX0hBTkRTSEFLRV9QUk9UT0NPTCkKQEAgLTYxOSwxMCArNjIwLDEyIEBACiAJCXJldHVybiAtRU5PTUVNOwogCXAtPm9wX3RoaXNfbm9kZSA9IC0xOwogCisJbG9ja19rZXJuZWwoKTsKIAltdXRleF9sb2NrKCZvY2ZzMl9jb250cm9sX2xvY2spOwogCWZpbGUtPnByaXZhdGVfZGF0YSA9IHA7CiAJbGlzdF9hZGQoJnAtPm9wX2xpc3QsICZvY2ZzMl9jb250cm9sX3ByaXZhdGVfbGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZvY2ZzMl9jb250cm9sX2xvY2spOworCXVubG9ja19rZXJuZWwoKTsKIAogCXJldHVybiAwOwogfQpAQCAtNjgwLDcgKzY4Myw3IEBACiAJc3RydWN0IGRsbV9sa3NiICpsa3NiID0gZnNkbG1fYXN0YXJnX3RvX2xrc2IoYXN0YXJnKTsKIAlpbnQgc3RhdHVzID0gbGtzYi0+c2Jfc3RhdHVzOwogCi0JQlVHX09OKHVzZXJfc3RhY2suc3BfcHJvdG8gPT0gTlVMTCk7CisJQlVHX09OKG9jZnMyX3VzZXJfcGx1Z2luLnNwX3Byb3RvID09IE5VTEwpOwogCiAJLyoKIAkgKiBGb3Igbm93IHdlJ3JlIHB1bnRpbmcgb24gdGhlIGlzc3VlIG9mIG90aGVyIG5vbi1zdGFuZGFyZCBlcnJvcnMKQEAgLTY5MywxNiArNjk2LDE2IEBACiAJICovCiAKIAlpZiAoc3RhdHVzID09IC1ETE1fRVVOTE9DSyB8fCBzdGF0dXMgPT0gLURMTV9FQ0FOQ0VMKQotCQl1c2VyX3N0YWNrLnNwX3Byb3RvLT5scF91bmxvY2tfYXN0KGFzdGFyZywgMCk7CisJCW9jZnMyX3VzZXJfcGx1Z2luLnNwX3Byb3RvLT5scF91bmxvY2tfYXN0KGFzdGFyZywgMCk7CiAJZWxzZQotCQl1c2VyX3N0YWNrLnNwX3Byb3RvLT5scF9sb2NrX2FzdChhc3RhcmcpOworCQlvY2ZzMl91c2VyX3BsdWdpbi5zcF9wcm90by0+bHBfbG9ja19hc3QoYXN0YXJnKTsKIH0KIAogc3RhdGljIHZvaWQgZnNkbG1fYmxvY2tpbmdfYXN0X3dyYXBwZXIodm9pZCAqYXN0YXJnLCBpbnQgbGV2ZWwpCiB7Ci0JQlVHX09OKHVzZXJfc3RhY2suc3BfcHJvdG8gPT0gTlVMTCk7CisJQlVHX09OKG9jZnMyX3VzZXJfcGx1Z2luLnNwX3Byb3RvID09IE5VTEwpOwogCi0JdXNlcl9zdGFjay5zcF9wcm90by0+bHBfYmxvY2tpbmdfYXN0KGFzdGFyZywgbGV2ZWwpOworCW9jZnMyX3VzZXJfcGx1Z2luLnNwX3Byb3RvLT5scF9ibG9ja2luZ19hc3QoYXN0YXJnLCBsZXZlbCk7CiB9CiAKIHN0YXRpYyBpbnQgdXNlcl9kbG1fbG9jayhzdHJ1Y3Qgb2NmczJfY2x1c3Rlcl9jb25uZWN0aW9uICpjb25uLApAQCAtODE2LDggKzgxOSw3IEBACiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IHVzZXJfY2x1c3Rlcl9kaXNjb25uZWN0KHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4sCi0JCQkJICAgaW50IGhhbmd1cF9wZW5kaW5nKQorc3RhdGljIGludCB1c2VyX2NsdXN0ZXJfZGlzY29ubmVjdChzdHJ1Y3Qgb2NmczJfY2x1c3Rlcl9jb25uZWN0aW9uICpjb25uKQogewogCWRsbV9yZWxlYXNlX2xvY2tzcGFjZShjb25uLT5jY19sb2Nrc3BhY2UsIDIpOwogCWNvbm4tPmNjX2xvY2tzcGFjZSA9IE5VTEw7CkBAIC04MzgsNyArODQwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHN0cnVjdCBvY2ZzMl9zdGFja19vcGVyYXRpb25zIHVzZXJfc3RhY2tfb3BzID0geworc3RhdGljIHN0cnVjdCBvY2ZzMl9zdGFja19vcGVyYXRpb25zIG9jZnMyX3VzZXJfcGx1Z2luX29wcyA9IHsKIAkuY29ubmVjdAk9IHVzZXJfY2x1c3Rlcl9jb25uZWN0LAogCS5kaXNjb25uZWN0CT0gdXNlcl9jbHVzdGVyX2Rpc2Nvbm5lY3QsCiAJLnRoaXNfbm9kZQk9IHVzZXJfY2x1c3Rlcl90aGlzX25vZGUsCkBAIC04NDksMjAgKzg1MSwyMCBAQAogCS5kdW1wX2xrc2IJPSB1c2VyX2RsbV9kdW1wX2xrc2IsCiB9OwogCi1zdGF0aWMgc3RydWN0IG9jZnMyX3N0YWNrX3BsdWdpbiB1c2VyX3N0YWNrID0geworc3RhdGljIHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gb2NmczJfdXNlcl9wbHVnaW4gPSB7CiAJLnNwX25hbWUJPSAidXNlciIsCi0JLnNwX29wcwkJPSAmdXNlcl9zdGFja19vcHMsCisJLnNwX29wcwkJPSAmb2NmczJfdXNlcl9wbHVnaW5fb3BzLAogCS5zcF9vd25lcgk9IFRISVNfTU9EVUxFLAogfTsKIAogCi1zdGF0aWMgaW50IF9faW5pdCB1c2VyX3N0YWNrX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IG9jZnMyX3VzZXJfcGx1Z2luX2luaXQodm9pZCkKIHsKIAlpbnQgcmM7CiAKIAlyYyA9IG9jZnMyX2NvbnRyb2xfaW5pdCgpOwogCWlmICghcmMpIHsKLQkJcmMgPSBvY2ZzMl9zdGFja19nbHVlX3JlZ2lzdGVyKCZ1c2VyX3N0YWNrKTsKKwkJcmMgPSBvY2ZzMl9zdGFja19nbHVlX3JlZ2lzdGVyKCZvY2ZzMl91c2VyX3BsdWdpbik7CiAJCWlmIChyYykKIAkJCW9jZnMyX2NvbnRyb2xfZXhpdCgpOwogCX0KQEAgLTg3MCwxNCArODcyLDE0IEBACiAJcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgdm9pZCBfX2V4aXQgdXNlcl9zdGFja19leGl0KHZvaWQpCitzdGF0aWMgdm9pZCBfX2V4aXQgb2NmczJfdXNlcl9wbHVnaW5fZXhpdCh2b2lkKQogewotCW9jZnMyX3N0YWNrX2dsdWVfdW5yZWdpc3RlcigmdXNlcl9zdGFjayk7CisJb2NmczJfc3RhY2tfZ2x1ZV91bnJlZ2lzdGVyKCZvY2ZzMl91c2VyX3BsdWdpbik7CiAJb2NmczJfY29udHJvbF9leGl0KCk7CiB9CiAKIE1PRFVMRV9BVVRIT1IoIk9yYWNsZSIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJvY2ZzMiBkcml2ZXIgZm9yIHVzZXJzcGFjZSBjbHVzdGVyIHN0YWNrcyIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotbW9kdWxlX2luaXQodXNlcl9zdGFja19pbml0KTsKLW1vZHVsZV9leGl0KHVzZXJfc3RhY2tfZXhpdCk7Cittb2R1bGVfaW5pdChvY2ZzMl91c2VyX3BsdWdpbl9pbml0KTsKK21vZHVsZV9leGl0KG9jZnMyX3VzZXJfcGx1Z2luX2V4aXQpOwpkaWZmIC0tZ2l0IGEvZnMvb2NmczIvc3RhY2tnbHVlLmMgYi9mcy9vY2ZzMi9zdGFja2dsdWUuYwppbmRleCAxMTlmNjBjLi4xMGUxNDlhIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9zdGFja2dsdWUuYworKysgYi9mcy9vY2ZzMi9zdGFja2dsdWUuYwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGludXgva29iamVjdC5oPgogI2luY2x1ZGUgPGxpbnV4L3N5c2ZzLmg+CisjaW5jbHVkZSA8bGludXgvc3lzY3RsLmg+CiAKICNpbmNsdWRlICJvY2ZzMl9mcy5oIgogCkBAIC0zMywxMSArMzQsMTMgQEAKIAogI2RlZmluZSBPQ0ZTMl9TVEFDS19QTFVHSU5fTzJDQgkJIm8yY2IiCiAjZGVmaW5lIE9DRlMyX1NUQUNLX1BMVUdJTl9VU0VSCQkidXNlciIKKyNkZWZpbmUgT0NGUzJfTUFYX0hCX0NUTF9QQVRICQkyNTYKIAogc3RhdGljIHN0cnVjdCBvY2ZzMl9sb2NraW5nX3Byb3RvY29sICpscHJvdG87CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG9jZnMyX3N0YWNrX2xvY2spOwogc3RhdGljIExJU1RfSEVBRChvY2ZzMl9zdGFja19saXN0KTsKIHN0YXRpYyBjaGFyIGNsdXN0ZXJfc3RhY2tfbmFtZVtPQ0ZTMl9TVEFDS19MQUJFTF9MRU4gKyAxXTsKK3N0YXRpYyBjaGFyIG9jZnMyX2hiX2N0bF9wYXRoW09DRlMyX01BWF9IQl9DVExfUEFUSF0gPSAiL3NiaW4vb2NmczJfaGJfY3RsIjsKIAogLyoKICAqIFRoZSBzdGFjayBjdXJyZW50bHkgaW4gdXNlLiAgSWYgbm90IG51bGwsIGFjdGl2ZV9zdGFjay0+c3BfY291bnQgPiAwLApAQCAtMzQ5LDcgKzM1Miw3IEBACiAKIAlCVUdfT04oY29ubiA9PSBOVUxMKTsKIAotCXJldCA9IGFjdGl2ZV9zdGFjay0+c3Bfb3BzLT5kaXNjb25uZWN0KGNvbm4sIGhhbmd1cF9wZW5kaW5nKTsKKwlyZXQgPSBhY3RpdmVfc3RhY2stPnNwX29wcy0+ZGlzY29ubmVjdChjb25uKTsKIAogCS8qIFhYWCBTaG91bGQgd2UgZnJlZSBpdCBhbnl3YXk/ICovCiAJaWYgKCFyZXQpIHsKQEAgLTM2MiwxMyArMzY1LDQ4IEBACiB9CiBFWFBPUlRfU1lNQk9MX0dQTChvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QpOwogCisvKgorICogTGVhdmUgdGhlIGdyb3VwIGZvciB0aGlzIGZpbGVzeXN0ZW0uICBUaGlzIGlzIGV4ZWN1dGVkIGJ5IGEgdXNlcnNwYWNlCisgKiBwcm9ncmFtIChzdG9yZWQgaW4gb2NmczJfaGJfY3RsX3BhdGgpLgorICovCitzdGF0aWMgdm9pZCBvY2ZzMl9sZWF2ZV9ncm91cChjb25zdCBjaGFyICpncm91cCkKK3sKKwlpbnQgcmV0OworCWNoYXIgKmFyZ3ZbNV0sICplbnZwWzNdOworCisJYXJndlswXSA9IG9jZnMyX2hiX2N0bF9wYXRoOworCWFyZ3ZbMV0gPSAiLUsiOworCWFyZ3ZbMl0gPSAiLXUiOworCWFyZ3ZbM10gPSAoY2hhciAqKWdyb3VwOworCWFyZ3ZbNF0gPSBOVUxMOworCisJLyogbWluaW1hbCBjb21tYW5kIGVudmlyb25tZW50IHRha2VuIGZyb20gY3B1X3J1bl9zYmluX2hvdHBsdWcgKi8KKwllbnZwWzBdID0gIkhPTUU9LyI7CisJZW52cFsxXSA9ICJQQVRIPS9zYmluOi9iaW46L3Vzci9zYmluOi91c3IvYmluIjsKKwllbnZwWzJdID0gTlVMTDsKKworCXJldCA9IGNhbGxfdXNlcm1vZGVoZWxwZXIoYXJndlswXSwgYXJndiwgZW52cCwgVU1IX1dBSVRfUFJPQyk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSCisJCSAgICAgICAib2NmczI6IEVycm9yICVkIHJ1bm5pbmcgdXNlciBoZWxwZXIgIgorCQkgICAgICAgIlwiJXMgJXMgJXMgJXNcIlxuIiwKKwkJICAgICAgIHJldCwgYXJndlswXSwgYXJndlsxXSwgYXJndlsyXSwgYXJndlszXSk7CisJfQorfQorCisvKgorICogSGFuZ3VwIGlzIGEgcmVxdWlyZWQgcG9zdC11bW91bnQuICBvY2ZzMi10b29scyBzb2Z0d2FyZSBleHBlY3RzIHRoZQorICogZmlsZXN5c3RlbSB0byBjYWxsICJvY2ZzMl9oYl9jdGwiIGR1cmluZyB1bm1vdW50LiAgVGhpcyBoYXBwZW5zCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIERMTSBnb3Qgc3RhcnRlZCwgc28gd2UgY2FuJ3QgZG8gaXQKKyAqIGluIG9jZnMyX2NsdXN0ZXJfZGlzY29ubmVjdCgpLiAgVGhlIG9jZnMyX2xlYXZlX2dyb3VwKCkgZnVuY3Rpb24gZG9lcworICogdGhlIGFjdHVhbCB3b3JrLgorICovCiB2b2lkIG9jZnMyX2NsdXN0ZXJfaGFuZ3VwKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pCiB7CiAJQlVHX09OKGdyb3VwID09IE5VTEwpOwogCUJVR19PTihncm91cFtncm91cGxlbl0gIT0gJ1wwJyk7CiAKLQlpZiAoYWN0aXZlX3N0YWNrLT5zcF9vcHMtPmhhbmd1cCkKLQkJYWN0aXZlX3N0YWNrLT5zcF9vcHMtPmhhbmd1cChncm91cCwgZ3JvdXBsZW4pOworCW9jZnMyX2xlYXZlX2dyb3VwKGdyb3VwKTsKIAogCS8qIGNsdXN0ZXJfZGlzY29ubmVjdCgpIHdhcyBjYWxsZWQgd2l0aCBoYW5ndXBfcGVuZGluZz09MSAqLwogCW9jZnMyX3N0YWNrX2RyaXZlcl9wdXQoKTsKQEAgLTU0OCwxMCArNTg2LDgzIEBACiAJcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqIFN5c2N0bCBiaXRzCisgKgorICogVGhlIHN5c2N0bCBsaXZlcyBhdCAvcHJvYy9zeXMvZnMvb2NmczIvbm0vaGJfY3RsX3BhdGguICBUaGUgJ25tJyBkb2Vzbid0CisgKiBtYWtlIGFzIG11Y2ggc2Vuc2UgaW4gYSBtdWx0aXBsZSBjbHVzdGVyIHN0YWNrIHdvcmxkLCBidXQgaXQncyBzYWZlcgorICogYW5kIGVhc2llciB0byBwcmVzZXJ2ZSB0aGUgbmFtZS4KKyAqLworCisjZGVmaW5lIEZTX09DRlMyX05NCQkxCisKK3N0YXRpYyBjdGxfdGFibGUgb2NmczJfbm1fdGFibGVbXSA9IHsKKwl7CisJCS5jdGxfbmFtZQk9IDEsCisJCS5wcm9jbmFtZQk9ICJoYl9jdGxfcGF0aCIsCisJCS5kYXRhCQk9IG9jZnMyX2hiX2N0bF9wYXRoLAorCQkubWF4bGVuCQk9IE9DRlMyX01BWF9IQl9DVExfUEFUSCwKKwkJLm1vZGUJCT0gMDY0NCwKKwkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2Rvc3RyaW5nLAorCQkuc3RyYXRlZ3kJPSAmc3lzY3RsX3N0cmluZywKKwl9LAorCXsgLmN0bF9uYW1lID0gMCB9Cit9OworCitzdGF0aWMgY3RsX3RhYmxlIG9jZnMyX21vZF90YWJsZVtdID0geworCXsKKwkJLmN0bF9uYW1lCT0gRlNfT0NGUzJfTk0sCisJCS5wcm9jbmFtZQk9ICJubSIsCisJCS5kYXRhCQk9IE5VTEwsCisJCS5tYXhsZW4JCT0gMCwKKwkJLm1vZGUJCT0gMDU1NSwKKwkJLmNoaWxkCQk9IG9jZnMyX25tX3RhYmxlCisJfSwKKwl7IC5jdGxfbmFtZSA9IDB9Cit9OworCitzdGF0aWMgY3RsX3RhYmxlIG9jZnMyX2tlcm5fdGFibGVbXSA9IHsKKwl7CisJCS5jdGxfbmFtZQk9IEZTX09DRlMyLAorCQkucHJvY25hbWUJPSAib2NmczIiLAorCQkuZGF0YQkJPSBOVUxMLAorCQkubWF4bGVuCQk9IDAsCisJCS5tb2RlCQk9IDA1NTUsCisJCS5jaGlsZAkJPSBvY2ZzMl9tb2RfdGFibGUKKwl9LAorCXsgLmN0bF9uYW1lID0gMH0KK307CisKK3N0YXRpYyBjdGxfdGFibGUgb2NmczJfcm9vdF90YWJsZVtdID0geworCXsKKwkJLmN0bF9uYW1lCT0gQ1RMX0ZTLAorCQkucHJvY25hbWUJPSAiZnMiLAorCQkuZGF0YQkJPSBOVUxMLAorCQkubWF4bGVuCQk9IDAsCisJCS5tb2RlCQk9IDA1NTUsCisJCS5jaGlsZAkJPSBvY2ZzMl9rZXJuX3RhYmxlCisJfSwKKwl7IC5jdGxfbmFtZSA9IDAgfQorfTsKKworc3RhdGljIHN0cnVjdCBjdGxfdGFibGVfaGVhZGVyICpvY2ZzMl90YWJsZV9oZWFkZXIgPSBOVUxMOworCisKKy8qCisgKiBJbml0aWFsaXphdGlvbgorICovCisKIHN0YXRpYyBpbnQgX19pbml0IG9jZnMyX3N0YWNrX2dsdWVfaW5pdCh2b2lkKQogewogCXN0cmNweShjbHVzdGVyX3N0YWNrX25hbWUsIE9DRlMyX1NUQUNLX1BMVUdJTl9PMkNCKTsKIAorCW9jZnMyX3RhYmxlX2hlYWRlciA9IHJlZ2lzdGVyX3N5c2N0bF90YWJsZShvY2ZzMl9yb290X3RhYmxlKTsKKwlpZiAoIW9jZnMyX3RhYmxlX2hlYWRlcikgeworCQlwcmludGsoS0VSTl9FUlIKKwkJICAgICAgICJvY2ZzMiBzdGFjayBnbHVlOiB1bmFibGUgdG8gcmVnaXN0ZXIgc3lzY3RsXG4iKTsKKwkJcmV0dXJuIC1FTk9NRU07IC8qIG9yIHNvbWV0aGluZy4gKi8KKwl9CisKIAlyZXR1cm4gb2NmczJfc3lzZnNfaW5pdCgpOwogfQogCkBAIC01NTksNiArNjcwLDggQEAKIHsKIAlscHJvdG8gPSBOVUxMOwogCW9jZnMyX3N5c2ZzX2V4aXQoKTsKKwlpZiAob2NmczJfdGFibGVfaGVhZGVyKQorCQl1bnJlZ2lzdGVyX3N5c2N0bF90YWJsZShvY2ZzMl90YWJsZV9oZWFkZXIpOwogfQogCiBNT0RVTEVfQVVUSE9SKCJPcmFjbGUiKTsKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL3N0YWNrZ2x1ZS5oIGIvZnMvb2NmczIvc3RhY2tnbHVlLmgKaW5kZXggMDA1ZTRmMS4uZGI1NjI4MSAxMDA2NDQKLS0tIGEvZnMvb2NmczIvc3RhY2tnbHVlLmgKKysrIGIvZnMvb2NmczIvc3RhY2tnbHVlLmgKQEAgLTEzNCwyMiArMTM0LDEwIEBACiAJICogYmUgZnJlZWQuICBUaHVzLCBhIHN0YWNrIG11c3Qgbm90IHJldHVybiBmcm9tIC0+ZGlzY29ubmVjdCgpCiAJICogdW50aWwgaXQgd2lsbCBubyBsb25nZXIgcmVmZXJlbmNlIHRoZSBjb25uIHBvaW50ZXIuCiAJICoKLQkgKiBJZiBoYW5ndXBfcGVuZGluZyBpcyB6ZXJvLCBvY2ZzMl9jbHVzdGVyX2Rpc2Nvbm5lY3QoKSB3aWxsIGFsc28KLQkgKiBiZSBkcm9wcGluZyB0aGUgcmVmZXJlbmNlIG9uIHRoZSBtb2R1bGUuCisJICogT25jZSB0aGlzIGNhbGwgcmV0dXJucywgdGhlIHN0YWNrIGdsdWUgd2lsbCBiZSBkcm9wcGluZyB0aGlzCisJICogY29ubmVjdGlvbidzIHJlZmVyZW5jZSBvbiB0aGUgbW9kdWxlLgogCSAqLwotCWludCAoKmRpc2Nvbm5lY3QpKHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4sCi0JCQkgIGludCBoYW5ndXBfcGVuZGluZyk7Ci0KLQkvKgotCSAqIG9jZnMyX2NsdXN0ZXJfaGFuZ3VwKCkgZXhpc3RzIGZvciBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIKLQkgKiBvY2ZzMiB0b29scy4gIE9ubHkgdGhlIGNsYXNzaWMgc3RhY2sgcmVhbGx5IG5lZWRzIGl0LiAgQXMgc3VjaAotCSAqIC0+aGFuZ3VwKCkgaXMgbm90IHJlcXVpcmVkIG9mIGFsbCBzdGFja3MuICBTZWUgdGhlIGNvbW1lbnQgYnkKLQkgKiBvY2ZzMl9jbHVzdGVyX2hhbmd1cCgpIGZvciBtb3JlIGRldGFpbHMuCi0JICoKLQkgKiBOb3RlIHRoYXQgb2NmczJfY2x1c3Rlcl9oYW5ndXAoKSBjYW4gb25seSBiZSBjYWxsZWQgaWYKLQkgKiBoYW5ndXBfcGVuZGluZyB3YXMgcGFzc2VkIHRvIG9jZnMyX2NsdXN0ZXJfZGlzY29ubmVjdCgpLgotCSAqLwotCXZvaWQgKCpoYW5ndXApKGNvbnN0IGNoYXIgKmdyb3VwLCBpbnQgZ3JvdXBsZW4pOworCWludCAoKmRpc2Nvbm5lY3QpKHN0cnVjdCBvY2ZzMl9jbHVzdGVyX2Nvbm5lY3Rpb24gKmNvbm4pOwogCiAJLyoKIAkgKiAtPnRoaXNfbm9kZSgpIHJldHVybnMgdGhlIGNsdXN0ZXIncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlCkBAIC0yNTgsNCArMjQ2LDUgQEAKIC8qIFVzZWQgYnkgc3RhY2sgcGx1Z2lucyAqLwogaW50IG9jZnMyX3N0YWNrX2dsdWVfcmVnaXN0ZXIoc3RydWN0IG9jZnMyX3N0YWNrX3BsdWdpbiAqcGx1Z2luKTsKIHZvaWQgb2NmczJfc3RhY2tfZ2x1ZV91bnJlZ2lzdGVyKHN0cnVjdCBvY2ZzMl9zdGFja19wbHVnaW4gKnBsdWdpbik7CisKICNlbmRpZiAgLyogU1RBQ0tHTFVFX0ggKi8KZGlmZiAtLWdpdCBhL2ZzL29wZW4uYyBiL2ZzL29wZW4uYwppbmRleCBhMTQ1MDA4Li5hOTlhZDA5IDEwMDY0NAotLS0gYS9mcy9vcGVuLmMKKysrIGIvZnMvb3Blbi5jCkBAIC0xNiw2ICsxNiw3IEBACiAjaW5jbHVkZSA8bGludXgvbmFtZWkuaD4KICNpbmNsdWRlIDxsaW51eC9iYWNraW5nLWRldi5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cmViaXRzLmg+CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgogI2luY2x1ZGUgPGxpbnV4L3Zmcy5oPgpAQCAtNDI1LDcgKzQyNiw3IEBACiB7CiAJc3RydWN0IG5hbWVpZGF0YSBuZDsKIAlpbnQgb2xkX2ZzdWlkLCBvbGRfZnNnaWQ7Ci0Ja2VybmVsX2NhcF90IG9sZF9jYXA7CisJa2VybmVsX2NhcF90IHVuaW5pdGlhbGl6ZWRfdmFyKG9sZF9jYXApOyAgLyogIVNFQ1VSRV9OT19TRVRVSURfRklYVVAgKi8KIAlpbnQgcmVzOwogCiAJaWYgKG1vZGUgJiB+U19JUldYTykJLyogd2hlcmUncyBGX09LLCBYX09LLCBXX09LLCBSX09LPyAqLwpAQCAtNDMzLDIzICs0MzQsMjcgQEAKIAogCW9sZF9mc3VpZCA9IGN1cnJlbnQtPmZzdWlkOwogCW9sZF9mc2dpZCA9IGN1cnJlbnQtPmZzZ2lkOwotCW9sZF9jYXAgPSBjdXJyZW50LT5jYXBfZWZmZWN0aXZlOwogCiAJY3VycmVudC0+ZnN1aWQgPSBjdXJyZW50LT51aWQ7CiAJY3VycmVudC0+ZnNnaWQgPSBjdXJyZW50LT5naWQ7CiAKLQkvKgotCSAqIENsZWFyIHRoZSBjYXBhYmlsaXRpZXMgaWYgd2Ugc3dpdGNoIHRvIGEgbm9uLXJvb3QgdXNlcgotCSAqCi0JICogRklYTUU6IFRoZXJlIGlzIGEgcmFjZSBoZXJlIGFnYWluc3Qgc3lzX2NhcHNldC4gIFRoZQotCSAqIGNhcGFiaWxpdGllcyBjYW4gY2hhbmdlIHlldCB3ZSB3aWxsIHJlc3RvcmUgdGhlIG9sZAotCSAqIHZhbHVlIGJlbG93LiAgV2Ugc2hvdWxkIGhvbGQgdGFza19jYXBhYmlsaXRpZXNfbG9jaywKLQkgKiBidXQgd2UgY2Fubm90IGJlY2F1c2UgdXNlcl9wYXRoX3dhbGsgY2FuIHNsZWVwLgotCSAqLwotCWlmIChjdXJyZW50LT51aWQpCi0JCWNhcF9jbGVhcihjdXJyZW50LT5jYXBfZWZmZWN0aXZlKTsKLQllbHNlCi0JCWN1cnJlbnQtPmNhcF9lZmZlY3RpdmUgPSBjdXJyZW50LT5jYXBfcGVybWl0dGVkOworCWlmICghaXNzZWN1cmUoU0VDVVJFX05PX1NFVFVJRF9GSVhVUCkpIHsKKwkJLyoKKwkJICogQ2xlYXIgdGhlIGNhcGFiaWxpdGllcyBpZiB3ZSBzd2l0Y2ggdG8gYSBub24tcm9vdCB1c2VyCisJCSAqLworI2lmbmRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMKKwkJLyoKKwkJICogRklYTUU6IFRoZXJlIGlzIGEgcmFjZSBoZXJlIGFnYWluc3Qgc3lzX2NhcHNldC4gIFRoZQorCQkgKiBjYXBhYmlsaXRpZXMgY2FuIGNoYW5nZSB5ZXQgd2Ugd2lsbCByZXN0b3JlIHRoZSBvbGQKKwkJICogdmFsdWUgYmVsb3cuICBXZSBzaG91bGQgaG9sZCB0YXNrX2NhcGFiaWxpdGllc19sb2NrLAorCQkgKiBidXQgd2UgY2Fubm90IGJlY2F1c2UgdXNlcl9wYXRoX3dhbGsgY2FuIHNsZWVwLgorCQkgKi8KKyNlbmRpZiAvKiBuZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyAqLworCQlpZiAoY3VycmVudC0+dWlkKQorCQkJb2xkX2NhcCA9IGNhcF9zZXRfZWZmZWN0aXZlKF9fY2FwX2VtcHR5X3NldCk7CisJCWVsc2UKKwkJCW9sZF9jYXAgPSBjYXBfc2V0X2VmZmVjdGl2ZShjdXJyZW50LT5jYXBfcGVybWl0dGVkKTsKKwl9CiAKIAlyZXMgPSBfX3VzZXJfd2Fsa19mZChkZmQsIGZpbGVuYW1lLCBMT09LVVBfRk9MTE9XfExPT0tVUF9BQ0NFU1MsICZuZCk7CiAJaWYgKHJlcykKQEAgLTQ3OCw3ICs0ODMsOSBAQAogb3V0OgogCWN1cnJlbnQtPmZzdWlkID0gb2xkX2ZzdWlkOwogCWN1cnJlbnQtPmZzZ2lkID0gb2xkX2ZzZ2lkOwotCWN1cnJlbnQtPmNhcF9lZmZlY3RpdmUgPSBvbGRfY2FwOworCisJaWYgKCFpc3NlY3VyZShTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQKSkKKwkJY2FwX3NldF9lZmZlY3RpdmUob2xkX2NhcCk7CiAKIAlyZXR1cm4gcmVzOwogfQpkaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jCmluZGV4IGVjMjI4YmMuLjcwMGY0ZTAgMTAwNjQ0Ci0tLSBhL2ZzL3BpcGUuYworKysgYi9mcy9waXBlLmMKQEAgLTEwMDMsOCArMTAwMyw3IEBACiB2b2lkIGZyZWVfd3JpdGVfcGlwZShzdHJ1Y3QgZmlsZSAqZikKIHsKIAlmcmVlX3BpcGVfaW5mbyhmLT5mX2RlbnRyeS0+ZF9pbm9kZSk7Ci0JZHB1dChmLT5mX3BhdGguZGVudHJ5KTsKLQltbnRwdXQoZi0+Zl9wYXRoLm1udCk7CisJcGF0aF9wdXQoJmYtPmZfcGF0aCk7CiAJcHV0X2ZpbHAoZik7CiB9CiAKQEAgLTEwMTUsOCArMTAxNCw4IEBACiAJCXJldHVybiBFUlJfUFRSKC1FTkZJTEUpOwogCiAJLyogR3JhYiBwaXBlIGZyb20gdGhlIHdyaXRlciAqLwotCWYtPmZfcGF0aC5tbnQgPSBtbnRnZXQod3JmLT5mX3BhdGgubW50KTsKLQlmLT5mX3BhdGguZGVudHJ5ID0gZGdldCh3cmYtPmZfcGF0aC5kZW50cnkpOworCWYtPmZfcGF0aCA9IHdyZi0+Zl9wYXRoOworCXBhdGhfZ2V0KCZ3cmYtPmZfcGF0aCk7CiAJZi0+Zl9tYXBwaW5nID0gd3JmLT5mX3BhdGguZGVudHJ5LT5kX2lub2RlLT5pX21hcHBpbmc7CiAKIAlmLT5mX3BvcyA9IDA7CkBAIC0xMDY4LDggKzEwNjcsNyBAQAogIGVycl9mZHI6CiAJcHV0X3VudXNlZF9mZChmZHIpOwogIGVycl9yZWFkX3BpcGU6Ci0JZHB1dChmci0+Zl9kZW50cnkpOwotCW1udHB1dChmci0+Zl92ZnNtbnQpOworCXBhdGhfcHV0KCZmci0+Zl9wYXRoKTsKIAlwdXRfZmlscChmcik7CiAgZXJyX3dyaXRlX3BpcGU6CiAJZnJlZV93cml0ZV9waXBlKGZ3KTsKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvYXJyYXkuYyBiL2ZzL3Byb2MvYXJyYXkuYwppbmRleCA5ZTNiOGMzLi43OTdkNzc1IDEwMDY0NAotLS0gYS9mcy9wcm9jL2FycmF5LmMKKysrIGIvZnMvcHJvYy9hcnJheS5jCkBAIC0yODgsNyArMjg4LDcgQEAKIAlzZXFfcHJpbnRmKG0sICIlcyIsIGhlYWRlcik7CiAJQ0FQX0ZPUl9FQUNIX1UzMihfX2NhcGkpIHsKIAkJc2VxX3ByaW50ZihtLCAiJTA4eCIsCi0JCQkgICBhLT5jYXBbKF9MSU5VWF9DQVBBQklMSVRZX1UzMlMtMSkgLSBfX2NhcGldKTsKKwkJCSAgIGEtPmNhcFsoX0tFUk5FTF9DQVBBQklMSVRZX1UzMlMtMSkgLSBfX2NhcGldKTsKIAl9CiAJc2VxX3ByaW50ZihtLCAiXG4iKTsKIH0KZGlmZiAtLWdpdCBhL2ZzL3Byb2MvYmFzZS5jIGIvZnMvcHJvYy9iYXNlLmMKaW5kZXggYzQ0N2UwNy4uNThjM2U2YSAxMDA2NDQKLS0tIGEvZnMvcHJvYy9iYXNlLmMKKysrIGIvZnMvcHJvYy9iYXNlLmMKQEAgLTEyNyw2ICsxMjcsMjUgQEAKIAkJTlVMTCwgJnByb2Nfc2luZ2xlX2ZpbGVfb3BlcmF0aW9ucywJXAogCQl7IC5wcm9jX3Nob3cgPSAmcHJvY18jI09UWVBFIH0gKQogCisvKgorICogQ291bnQgdGhlIG51bWJlciBvZiBoYXJkbGlua3MgZm9yIHRoZSBwaWRfZW50cnkgdGFibGUsIGV4Y2x1ZGluZyB0aGUgLgorICogYW5kIC4uIGxpbmtzLgorICovCitzdGF0aWMgdW5zaWduZWQgaW50IHBpZF9lbnRyeV9jb3VudF9kaXJzKGNvbnN0IHN0cnVjdCBwaWRfZW50cnkgKmVudHJpZXMsCisJdW5zaWduZWQgaW50IG4pCit7CisJdW5zaWduZWQgaW50IGk7CisJdW5zaWduZWQgaW50IGNvdW50OworCisJY291bnQgPSAwOworCWZvciAoaSA9IDA7IGkgPCBuOyArK2kpIHsKKwkJaWYgKFNfSVNESVIoZW50cmllc1tpXS5tb2RlKSkKKwkJCSsrY291bnQ7CisJfQorCisJcmV0dXJuIGNvdW50OworfQorCiBpbnQgbWFwc19wcm90ZWN0OwogRVhQT1JUX1NZTUJPTChtYXBzX3Byb3RlY3QpOwogCkBAIC0yMTQsNyArMjMzLDcgQEAKIAkgKi8KIAlpZiAodGFzay0+cGFyZW50ID09IGN1cnJlbnQgJiYgKHRhc2stPnB0cmFjZSAmIFBUX1BUUkFDRUQpICYmCiAJICAgIHRhc2tfaXNfc3RvcHBlZF9vcl90cmFjZWQodGFzaykgJiYKLQkgICAgcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJICAgIHB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSCkpCiAJCXJldHVybiAwOwogCiAJLyoKQEAgLTIzMiw3ICsyNTEsOCBAQAogCXRhc2tfbG9jayh0YXNrKTsKIAlpZiAodGFzay0+bW0gIT0gbW0pCiAJCWdvdG8gb3V0OwotCWlmICh0YXNrLT5tbSAhPSBjdXJyZW50LT5tbSAmJiBfX3B0cmFjZV9tYXlfYXR0YWNoKHRhc2spIDwgMCkKKwlpZiAodGFzay0+bW0gIT0gY3VycmVudC0+bW0gJiYKKwkgICAgX19wdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSA8IDApCiAJCWdvdG8gb3V0OwogCXRhc2tfdW5sb2NrKHRhc2spOwogCXJldHVybiBtbTsKQEAgLTQ5OSw3ICs1MTksNyBAQAogCSAqLwogCXRhc2sgPSBnZXRfcHJvY190YXNrKGlub2RlKTsKIAlpZiAodGFzaykgewotCQlhbGxvd2VkID0gcHRyYWNlX21heV9hdHRhY2godGFzayk7CisJCWFsbG93ZWQgPSBwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKTsKIAkJcHV0X3Rhc2tfc3RydWN0KHRhc2spOwogCX0KIAlyZXR1cm4gYWxsb3dlZDsKQEAgLTg4NSw3ICs5MDUsNyBAQAogCWlmICghdGFzaykKIAkJZ290byBvdXRfbm9fdGFzazsKIAotCWlmICghcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKCFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSAtRU5PTUVNOwpAQCAtMjU4NSwxMCArMjYwNSw5IEBACiAJaW5vZGUtPmlfb3AgPSAmcHJvY190Z2lkX2Jhc2VfaW5vZGVfb3BlcmF0aW9uczsKIAlpbm9kZS0+aV9mb3AgPSAmcHJvY190Z2lkX2Jhc2Vfb3BlcmF0aW9uczsKIAlpbm9kZS0+aV9mbGFnc3w9U19JTU1VVEFCTEU7Ci0JaW5vZGUtPmlfbmxpbmsgPSA1OwotI2lmZGVmIENPTkZJR19TRUNVUklUWQotCWlub2RlLT5pX25saW5rICs9IDE7Ci0jZW5kaWYKKworCWlub2RlLT5pX25saW5rID0gMiArIHBpZF9lbnRyeV9jb3VudF9kaXJzKHRnaWRfYmFzZV9zdHVmZiwKKwkJQVJSQVlfU0laRSh0Z2lkX2Jhc2Vfc3R1ZmYpKTsKIAogCWRlbnRyeS0+ZF9vcCA9ICZwaWRfZGVudHJ5X29wZXJhdGlvbnM7CiAKQEAgLTI4MTYsMTAgKzI4MzUsOSBAQAogCWlub2RlLT5pX29wID0gJnByb2NfdGlkX2Jhc2VfaW5vZGVfb3BlcmF0aW9uczsKIAlpbm9kZS0+aV9mb3AgPSAmcHJvY190aWRfYmFzZV9vcGVyYXRpb25zOwogCWlub2RlLT5pX2ZsYWdzfD1TX0lNTVVUQUJMRTsKLQlpbm9kZS0+aV9ubGluayA9IDQ7Ci0jaWZkZWYgQ09ORklHX1NFQ1VSSVRZCi0JaW5vZGUtPmlfbmxpbmsgKz0gMTsKLSNlbmRpZgorCisJaW5vZGUtPmlfbmxpbmsgPSAyICsgcGlkX2VudHJ5X2NvdW50X2RpcnModGlkX2Jhc2Vfc3R1ZmYsCisJCUFSUkFZX1NJWkUodGlkX2Jhc2Vfc3R1ZmYpKTsKIAogCWRlbnRyeS0+ZF9vcCA9ICZwaWRfZGVudHJ5X29wZXJhdGlvbnM7CiAKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvaW5vZGUuYyBiL2ZzL3Byb2MvaW5vZGUuYwppbmRleCA2ZjRlOGRjLi5iMDhkMTAwIDEwMDY0NAotLS0gYS9mcy9wcm9jL2lub2RlLmMKKysrIGIvZnMvcHJvYy9pbm9kZS5jCkBAIC00MjUsNyArNDI1LDggQEAKIAkJCX0KIAkJfQogCQl1bmxvY2tfbmV3X2lub2RlKGlub2RlKTsKLQl9CisJfSBlbHNlCisJICAgICAgIG1vZHVsZV9wdXQoZGUtPm93bmVyKTsKIAlyZXR1cm4gaW5vZGU7CiAKIG91dF9pbm86CmRpZmYgLS1naXQgYS9mcy9wcm9jL3Byb2NfbWlzYy5jIGIvZnMvcHJvYy9wcm9jX21pc2MuYwppbmRleCA3NGEzMjNkLi5jNjUyZDQ2IDEwMDY0NAotLS0gYS9mcy9wcm9jL3Byb2NfbWlzYy5jCisrKyBiL2ZzL3Byb2MvcHJvY19taXNjLmMKQEAgLTEyMyw2ICsxMjMsMTEgQEAKIAlyZXR1cm4gcHJvY19jYWxjX21ldHJpY3MocGFnZSwgc3RhcnQsIG9mZiwgY291bnQsIGVvZiwgbGVuKTsKIH0KIAoraW50IF9fYXR0cmlidXRlX18oKHdlYWspKSBhcmNoX3JlcG9ydF9tZW1pbmZvKGNoYXIgKnBhZ2UpCit7CisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgbWVtaW5mb19yZWFkX3Byb2MoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBvZmYsCiAJCQkJIGludCBjb3VudCwgaW50ICplb2YsIHZvaWQgKmRhdGEpCiB7CkBAIC0xMzksNyArMTQ0LDcgQEAKICNkZWZpbmUgSyh4KSAoKHgpIDw8IChQQUdFX1NISUZUIC0gMTApKQogCXNpX21lbWluZm8oJmkpOwogCXNpX3N3YXBpbmZvKCZpKTsKLQljb21taXR0ZWQgPSBhdG9taWNfcmVhZCgmdm1fY29tbWl0dGVkX3NwYWNlKTsKKwljb21taXR0ZWQgPSBhdG9taWNfbG9uZ19yZWFkKCZ2bV9jb21taXR0ZWRfc3BhY2UpOwogCWFsbG93ZWQgPSAoKHRvdGFscmFtX3BhZ2VzIC0gaHVnZXRsYl90b3RhbF9wYWdlcygpKQogCQkqIHN5c2N0bF9vdmVyY29tbWl0X3JhdGlvIC8gMTAwKSArIHRvdGFsX3N3YXBfcGFnZXM7CiAKQEAgLTIyMSw2ICsyMjYsOCBAQAogCiAJCWxlbiArPSBodWdldGxiX3JlcG9ydF9tZW1pbmZvKHBhZ2UgKyBsZW4pOwogCisJbGVuICs9IGFyY2hfcmVwb3J0X21lbWluZm8ocGFnZSArIGxlbik7CisKIAlyZXR1cm4gcHJvY19jYWxjX21ldHJpY3MocGFnZSwgc3RhcnQsIG9mZiwgY291bnQsIGVvZiwgbGVuKTsKICN1bmRlZiBLCiB9CkBAIC00NzIsNiArNDc5LDEzIEBACiB9OwogI2VuZGlmCiAKKyNpZm5kZWYgYXJjaF9pcnFfc3RhdF9jcHUKKyNkZWZpbmUgYXJjaF9pcnFfc3RhdF9jcHUoY3B1KSAwCisjZW5kaWYKKyNpZm5kZWYgYXJjaF9pcnFfc3RhdAorI2RlZmluZSBhcmNoX2lycV9zdGF0KCkgMAorI2VuZGlmCisKIHN0YXRpYyBpbnQgc2hvd19zdGF0KHN0cnVjdCBzZXFfZmlsZSAqcCwgdm9pZCAqdikKIHsKIAlpbnQgaTsKQEAgLTUwOSw3ICs1MjMsOSBAQAogCQkJc3VtICs9IHRlbXA7CiAJCQlwZXJfaXJxX3N1bVtqXSArPSB0ZW1wOwogCQl9CisJCXN1bSArPSBhcmNoX2lycV9zdGF0X2NwdShpKTsKIAl9CisJc3VtICs9IGFyY2hfaXJxX3N0YXQoKTsKIAogCXNlcV9wcmludGYocCwgImNwdSAgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHUgJWxsdSAlbGx1ICVsbHVcbiIsCiAJCSh1bnNpZ25lZCBsb25nIGxvbmcpY3B1dGltZTY0X3RvX2Nsb2NrX3QodXNlciksCkBAIC03MTYsNyArNzMyLDcgQEAKIAlwZm4gPSBzcmMgLyBLUE1TSVpFOwogCWNvdW50ID0gbWluX3Qoc2l6ZV90LCBjb3VudCwgKG1heF9wZm4gKiBLUE1TSVpFKSAtIHNyYyk7CiAJaWYgKHNyYyAmIEtQTU1BU0sgfHwgY291bnQgJiBLUE1NQVNLKQotCQlyZXR1cm4gLUVJTzsKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAl3aGlsZSAoY291bnQgPiAwKSB7CiAJCXBwYWdlID0gTlVMTDsKQEAgLTcyNiw3ICs3NDIsNyBAQAogCQlpZiAoIXBwYWdlKQogCQkJcGNvdW50ID0gMDsKIAkJZWxzZQotCQkJcGNvdW50ID0gYXRvbWljX3JlYWQoJnBwYWdlLT5fY291bnQpOworCQkJcGNvdW50ID0gcGFnZV9tYXBjb3VudChwcGFnZSk7CiAKIAkJaWYgKHB1dF91c2VyKHBjb3VudCwgb3V0KyspKSB7CiAJCQlyZXQgPSAtRUZBVUxUOwpAQCAtNzgyLDcgKzc5OCw3IEBACiAJcGZuID0gc3JjIC8gS1BNU0laRTsKIAljb3VudCA9IG1pbl90KHVuc2lnbmVkIGxvbmcsIGNvdW50LCAobWF4X3BmbiAqIEtQTVNJWkUpIC0gc3JjKTsKIAlpZiAoc3JjICYgS1BNTUFTSyB8fCBjb3VudCAmIEtQTU1BU0spCi0JCXJldHVybiAtRUlPOworCQlyZXR1cm4gLUVJTlZBTDsKIAogCXdoaWxlIChjb3VudCA+IDApIHsKIAkJcHBhZ2UgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvZnMvcHJvYy90YXNrX21tdS5jIGIvZnMvcHJvYy90YXNrX21tdS5jCmluZGV4IDg4NzE3YzAuLjE2NGJkOWYgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2MvdGFza19tbXUuYworKysgYi9mcy9wcm9jL3Rhc2tfbW11LmMKQEAgLTIxMCw3ICsyMTAsNyBAQAogCWRldl90IGRldiA9IDA7CiAJaW50IGxlbjsKIAotCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKQorCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlyZXR1cm4gLUVBQ0NFUzsKIAogCWlmIChmaWxlKSB7CkBAIC0zMTUsOSArMzE1LDkgQEAKIH07CiAKIHN0YXRpYyBpbnQgc21hcHNfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB2b2lkICpwcml2YXRlKQorCQkJICAgc3RydWN0IG1tX3dhbGsgKndhbGspCiB7Ci0Jc3RydWN0IG1lbV9zaXplX3N0YXRzICptc3MgPSBwcml2YXRlOworCXN0cnVjdCBtZW1fc2l6ZV9zdGF0cyAqbXNzID0gd2Fsay0+cHJpdmF0ZTsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IG1zcy0+dm1hOwogCXB0ZV90ICpwdGUsIHB0ZW50OwogCXNwaW5sb2NrX3QgKnB0bDsKQEAgLTM2NSwxOSArMzY1LDIxIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgbW1fd2FsayBzbWFwc193YWxrID0geyAucG1kX2VudHJ5ID0gc21hcHNfcHRlX3JhbmdlIH07Ci0KIHN0YXRpYyBpbnQgc2hvd19zbWFwKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKIHsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHY7CiAJc3RydWN0IG1lbV9zaXplX3N0YXRzIG1zczsKIAlpbnQgcmV0OworCXN0cnVjdCBtbV93YWxrIHNtYXBzX3dhbGsgPSB7CisJCS5wbWRfZW50cnkgPSBzbWFwc19wdGVfcmFuZ2UsCisJCS5tbSA9IHZtYS0+dm1fbW0sCisJCS5wcml2YXRlID0gJm1zcywKKwl9OwogCiAJbWVtc2V0KCZtc3MsIDAsIHNpemVvZiBtc3MpOwogCW1zcy52bWEgPSB2bWE7CiAJaWYgKHZtYS0+dm1fbW0gJiYgIWlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKQotCQl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9tbSwgdm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQsCi0JCQkJJnNtYXBzX3dhbGssICZtc3MpOworCQl3YWxrX3BhZ2VfcmFuZ2Uodm1hLT52bV9zdGFydCwgdm1hLT52bV9lbmQsICZzbWFwc193YWxrKTsKIAogCXJldCA9IHNob3dfbWFwKG0sIHYpOwogCWlmIChyZXQpCkBAIC00MjYsOSArNDI4LDkgQEAKIH07CiAKIHN0YXRpYyBpbnQgY2xlYXJfcmVmc19wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkJCXVuc2lnbmVkIGxvbmcgZW5kLCB2b2lkICpwcml2YXRlKQorCQkJCXVuc2lnbmVkIGxvbmcgZW5kLCBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKLQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IHByaXZhdGU7CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEgPSB3YWxrLT5wcml2YXRlOwogCXB0ZV90ICpwdGUsIHB0ZW50OwogCXNwaW5sb2NrX3QgKnB0bDsKIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKQEAgLTQ1Miw4ICs0NTQsNiBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0IG1tX3dhbGsgY2xlYXJfcmVmc193YWxrID0geyAucG1kX2VudHJ5ID0gY2xlYXJfcmVmc19wdGVfcmFuZ2UgfTsKLQogc3RhdGljIHNzaXplX3QgY2xlYXJfcmVmc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZiwKIAkJCQlzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKIHsKQEAgLTQ3NiwxMSArNDc2LDE3IEBACiAJCXJldHVybiAtRVNSQ0g7CiAJbW0gPSBnZXRfdGFza19tbSh0YXNrKTsKIAlpZiAobW0pIHsKKwkJc3RydWN0IG1tX3dhbGsgY2xlYXJfcmVmc193YWxrID0geworCQkJLnBtZF9lbnRyeSA9IGNsZWFyX3JlZnNfcHRlX3JhbmdlLAorCQkJLm1tID0gbW0sCisJCX07CiAJCWRvd25fcmVhZCgmbW0tPm1tYXBfc2VtKTsKLQkJZm9yICh2bWEgPSBtbS0+bW1hcDsgdm1hOyB2bWEgPSB2bWEtPnZtX25leHQpCisJCWZvciAodm1hID0gbW0tPm1tYXA7IHZtYTsgdm1hID0gdm1hLT52bV9uZXh0KSB7CisJCQljbGVhcl9yZWZzX3dhbGsucHJpdmF0ZSA9IHZtYTsKIAkJCWlmICghaXNfdm1faHVnZXRsYl9wYWdlKHZtYSkpCi0JCQkJd2Fsa19wYWdlX3JhbmdlKG1tLCB2bWEtPnZtX3N0YXJ0LCB2bWEtPnZtX2VuZCwKLQkJCQkJCSZjbGVhcl9yZWZzX3dhbGssIHZtYSk7CisJCQkJd2Fsa19wYWdlX3JhbmdlKHZtYS0+dm1fc3RhcnQsIHZtYS0+dm1fZW5kLAorCQkJCQkJJmNsZWFyX3JlZnNfd2Fsayk7CisJCX0KIAkJZmx1c2hfdGxiX21tKG1tKTsKIAkJdXBfcmVhZCgmbW0tPm1tYXBfc2VtKTsKIAkJbW1wdXQobW0pOwpAQCAtNDk2LDcgKzUwMiw3IEBACiB9OwogCiBzdHJ1Y3QgcGFnZW1hcHJlYWQgewotCWNoYXIgX191c2VyICpvdXQsICplbmQ7CisJdTY0IF9fdXNlciAqb3V0LCAqZW5kOwogfTsKIAogI2RlZmluZSBQTV9FTlRSWV9CWVRFUyAgICAgIHNpemVvZih1NjQpCkBAIC01MTksMjggKzUyNSwxOCBAQAogc3RhdGljIGludCBhZGRfdG9fcGFnZW1hcCh1bnNpZ25lZCBsb25nIGFkZHIsIHU2NCBwZm4sCiAJCQkgIHN0cnVjdCBwYWdlbWFwcmVhZCAqcG0pCiB7Ci0JLyoKLQkgKiBNYWtlIHN1cmUgdGhlcmUncyByb29tIGluIHRoZSBidWZmZXIgZm9yIGFuCi0JICogZW50aXJlIGVudHJ5LiAgT3RoZXJ3aXNlLCBvbmx5IGNvcHkgcGFydCBvZgotCSAqIHRoZSBwZm4uCi0JICovCi0JaWYgKHBtLT5vdXQgKyBQTV9FTlRSWV9CWVRFUyA+PSBwbS0+ZW5kKSB7Ci0JCWlmIChjb3B5X3RvX3VzZXIocG0tPm91dCwgJnBmbiwgcG0tPmVuZCAtIHBtLT5vdXQpKQotCQkJcmV0dXJuIC1FRkFVTFQ7Ci0JCXBtLT5vdXQgPSBwbS0+ZW5kOwotCQlyZXR1cm4gUE1fRU5EX09GX0JVRkZFUjsKLQl9Ci0KIAlpZiAocHV0X3VzZXIocGZuLCBwbS0+b3V0KSkKIAkJcmV0dXJuIC1FRkFVTFQ7Ci0JcG0tPm91dCArPSBQTV9FTlRSWV9CWVRFUzsKKwlwbS0+b3V0Kys7CisJaWYgKHBtLT5vdXQgPj0gcG0tPmVuZCkKKwkJcmV0dXJuIFBNX0VORF9PRl9CVUZGRVI7CiAJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQgcGFnZW1hcF9wdGVfaG9sZSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQl2b2lkICpwcml2YXRlKQorCQkJCXN0cnVjdCBtbV93YWxrICp3YWxrKQogewotCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSBwcml2YXRlOworCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSB3YWxrLT5wcml2YXRlOwogCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAlpbnQgZXJyID0gMDsKIAlmb3IgKGFkZHIgPSBzdGFydDsgYWRkciA8IGVuZDsgYWRkciArPSBQQUdFX1NJWkUpIHsKQEAgLTU1NywyNCArNTUzLDQ1IEBACiAJcmV0dXJuIHN3cF90eXBlKGUpIHwgKHN3cF9vZmZzZXQoZSkgPDwgTUFYX1NXQVBGSUxFU19TSElGVCk7CiB9CiAKLXN0YXRpYyBpbnQgcGFnZW1hcF9wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgICAgdm9pZCAqcHJpdmF0ZSkKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHB0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZV90IHB0ZSkKIHsKLQlzdHJ1Y3QgcGFnZW1hcHJlYWQgKnBtID0gcHJpdmF0ZTsKKwl1bnNpZ25lZCBsb25nIHBtZSA9IDA7CisJaWYgKGlzX3N3YXBfcHRlKHB0ZSkpCisJCXBtZSA9IFBNX1BGUkFNRShzd2FwX3B0ZV90b19wYWdlbWFwX2VudHJ5KHB0ZSkpCisJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1NXQVA7CisJZWxzZSBpZiAocHRlX3ByZXNlbnQocHRlKSkKKwkJcG1lID0gUE1fUEZSQU1FKHB0ZV9wZm4ocHRlKSkKKwkJCXwgUE1fUFNISUZUKFBBR0VfU0hJRlQpIHwgUE1fUFJFU0VOVDsKKwlyZXR1cm4gcG1lOworfQorCitzdGF0aWMgaW50IHBhZ2VtYXBfcHRlX3JhbmdlKHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCQkgICAgIHN0cnVjdCBtbV93YWxrICp3YWxrKQoreworCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hOworCXN0cnVjdCBwYWdlbWFwcmVhZCAqcG0gPSB3YWxrLT5wcml2YXRlOwogCXB0ZV90ICpwdGU7CiAJaW50IGVyciA9IDA7CiAKKwkvKiBmaW5kIHRoZSBmaXJzdCBWTUEgYXQgb3IgYWJvdmUgJ2FkZHInICovCisJdm1hID0gZmluZF92bWEod2Fsay0+bW0sIGFkZHIpOwogCWZvciAoOyBhZGRyICE9IGVuZDsgYWRkciArPSBQQUdFX1NJWkUpIHsKIAkJdTY0IHBmbiA9IFBNX05PVF9QUkVTRU5UOwotCQlwdGUgPSBwdGVfb2Zmc2V0X21hcChwbWQsIGFkZHIpOwotCQlpZiAoaXNfc3dhcF9wdGUoKnB0ZSkpCi0JCQlwZm4gPSBQTV9QRlJBTUUoc3dhcF9wdGVfdG9fcGFnZW1hcF9lbnRyeSgqcHRlKSkKLQkJCQl8IFBNX1BTSElGVChQQUdFX1NISUZUKSB8IFBNX1NXQVA7Ci0JCWVsc2UgaWYgKHB0ZV9wcmVzZW50KCpwdGUpKQotCQkJcGZuID0gUE1fUEZSQU1FKHB0ZV9wZm4oKnB0ZSkpCi0JCQkJfCBQTV9QU0hJRlQoUEFHRV9TSElGVCkgfCBQTV9QUkVTRU5UOwotCQkvKiB1bm1hcCBzbyB3ZSdyZSBub3QgaW4gYXRvbWljIHdoZW4gd2UgY29weSB0byB1c2Vyc3BhY2UgKi8KLQkJcHRlX3VubWFwKHB0ZSk7CisKKwkJLyogY2hlY2sgdG8gc2VlIGlmIHdlJ3ZlIGxlZnQgJ3ZtYScgYmVoaW5kCisJCSAqIGFuZCBuZWVkIGEgbmV3LCBoaWdoZXIgb25lICovCisJCWlmICh2bWEgJiYgKGFkZHIgPj0gdm1hLT52bV9lbmQpKQorCQkJdm1hID0gZmluZF92bWEod2Fsay0+bW0sIGFkZHIpOworCisJCS8qIGNoZWNrIHRoYXQgJ3ZtYScgYWN0dWFsbHkgY292ZXJzIHRoaXMgYWRkcmVzcywKKwkJICogYW5kIHRoYXQgaXQgaXNuJ3QgYSBodWdlIHBhZ2Ugdm1hICovCisJCWlmICh2bWEgJiYgKHZtYS0+dm1fc3RhcnQgPD0gYWRkcikgJiYKKwkJICAgICFpc192bV9odWdldGxiX3BhZ2Uodm1hKSkgeworCQkJcHRlID0gcHRlX29mZnNldF9tYXAocG1kLCBhZGRyKTsKKwkJCXBmbiA9IHB0ZV90b19wYWdlbWFwX2VudHJ5KCpwdGUpOworCQkJLyogdW5tYXAgYmVmb3JlIHVzZXJzcGFjZSBjb3B5ICovCisJCQlwdGVfdW5tYXAocHRlKTsKKwkJfQogCQllcnIgPSBhZGRfdG9fcGFnZW1hcChhZGRyLCBwZm4sIHBtKTsKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CkBAIC01ODUsMTEgKzYwMiw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RhdGljIHN0cnVjdCBtbV93YWxrIHBhZ2VtYXBfd2FsayA9IHsKLQkucG1kX2VudHJ5ID0gcGFnZW1hcF9wdGVfcmFuZ2UsCi0JLnB0ZV9ob2xlID0gcGFnZW1hcF9wdGVfaG9sZQotfTsKLQogLyoKICAqIC9wcm9jL3BpZC9wYWdlbWFwIC0gYW4gYXJyYXkgbWFwcGluZyB2aXJ0dWFsIHBhZ2VzIHRvIHBmbnMKICAqCkBAIC02MjQsMTcgKzYzNiwyMiBAQAogCXN0cnVjdCBwYWdlbWFwcmVhZCBwbTsKIAlpbnQgcGFnZWNvdW50OwogCWludCByZXQgPSAtRVNSQ0g7CisJc3RydWN0IG1tX3dhbGsgcGFnZW1hcF93YWxrOworCXVuc2lnbmVkIGxvbmcgc3JjOworCXVuc2lnbmVkIGxvbmcgc3ZwZm47CisJdW5zaWduZWQgbG9uZyBzdGFydF92YWRkcjsKKwl1bnNpZ25lZCBsb25nIGVuZF92YWRkcjsKIAogCWlmICghdGFzaykKIAkJZ290byBvdXQ7CiAKIAlyZXQgPSAtRUFDQ0VTOwotCWlmICghcHRyYWNlX21heV9hdHRhY2godGFzaykpCisJaWYgKCFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJZ290byBvdXRfdGFzazsKIAogCXJldCA9IC1FSU5WQUw7CiAJLyogZmlsZSBwb3NpdGlvbiBtdXN0IGJlIGFsaWduZWQgKi8KLQlpZiAoKnBwb3MgJSBQTV9FTlRSWV9CWVRFUykKKwlpZiAoKCpwcG9zICUgUE1fRU5UUllfQllURVMpIHx8IChjb3VudCAlIFBNX0VOVFJZX0JZVEVTKSkKIAkJZ290byBvdXRfdGFzazsKIAogCXJldCA9IDA7CkBAIC02NDIsMTEgKzY1OSwxNSBAQAogCWlmICghbW0pCiAJCWdvdG8gb3V0X3Rhc2s7CiAKLQlyZXQgPSAtRU5PTUVNOworCiAJdWFkZHIgPSAodW5zaWduZWQgbG9uZylidWYgJiBQQUdFX01BU0s7CiAJdWVuZCA9ICh1bnNpZ25lZCBsb25nKShidWYgKyBjb3VudCk7CiAJcGFnZWNvdW50ID0gKFBBR0VfQUxJR04odWVuZCkgLSB1YWRkcikgLyBQQUdFX1NJWkU7Ci0JcGFnZXMgPSBrbWFsbG9jKHBhZ2Vjb3VudCAqIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gMDsKKwlpZiAocGFnZWNvdW50ID09IDApCisJCWdvdG8gb3V0X21tOworCXBhZ2VzID0ga2NhbGxvYyhwYWdlY291bnQsIHNpemVvZihzdHJ1Y3QgcGFnZSAqKSwgR0ZQX0tFUk5FTCk7CisJcmV0ID0gLUVOT01FTTsKIAlpZiAoIXBhZ2VzKQogCQlnb3RvIG91dF9tbTsKIApAQCAtNjY0LDM2ICs2ODUsMzYgQEAKIAkJZ290byBvdXRfcGFnZXM7CiAJfQogCi0JcG0ub3V0ID0gYnVmOwotCXBtLmVuZCA9IGJ1ZiArIGNvdW50OworCXBtLm91dCA9ICh1NjQgKilidWY7CisJcG0uZW5kID0gKHU2NCAqKShidWYgKyBjb3VudCk7CiAKLQlpZiAoIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKSB7Ci0JCXJldCA9IC1FSU87Ci0JfSBlbHNlIHsKLQkJdW5zaWduZWQgbG9uZyBzcmMgPSAqcHBvczsKLQkJdW5zaWduZWQgbG9uZyBzdnBmbiA9IHNyYyAvIFBNX0VOVFJZX0JZVEVTOwotCQl1bnNpZ25lZCBsb25nIHN0YXJ0X3ZhZGRyID0gc3ZwZm4gPDwgUEFHRV9TSElGVDsKLQkJdW5zaWduZWQgbG9uZyBlbmRfdmFkZHIgPSBUQVNLX1NJWkVfT0YodGFzayk7CisJcGFnZW1hcF93YWxrLnBtZF9lbnRyeSA9IHBhZ2VtYXBfcHRlX3JhbmdlOworCXBhZ2VtYXBfd2Fsay5wdGVfaG9sZSA9IHBhZ2VtYXBfcHRlX2hvbGU7CisJcGFnZW1hcF93YWxrLm1tID0gbW07CisJcGFnZW1hcF93YWxrLnByaXZhdGUgPSAmcG07CiAKLQkJLyogd2F0Y2ggb3V0IGZvciB3cmFwYXJvdW5kICovCi0JCWlmIChzdnBmbiA+IFRBU0tfU0laRV9PRih0YXNrKSA+PiBQQUdFX1NISUZUKQotCQkJc3RhcnRfdmFkZHIgPSBlbmRfdmFkZHI7CisJc3JjID0gKnBwb3M7CisJc3ZwZm4gPSBzcmMgLyBQTV9FTlRSWV9CWVRFUzsKKwlzdGFydF92YWRkciA9IHN2cGZuIDw8IFBBR0VfU0hJRlQ7CisJZW5kX3ZhZGRyID0gVEFTS19TSVpFX09GKHRhc2spOwogCi0JCS8qCi0JCSAqIFRoZSBvZGRzIGFyZSB0aGF0IHRoaXMgd2lsbCBzdG9wIHdhbGtpbmcgd2F5Ci0JCSAqIGJlZm9yZSBlbmRfdmFkZHIsIGJlY2F1c2UgdGhlIGxlbmd0aCBvZiB0aGUKLQkJICogdXNlciBidWZmZXIgaXMgdHJhY2tlZCBpbiAicG0iLCBhbmQgdGhlIHdhbGsKLQkJICogd2lsbCBzdG9wIHdoZW4gd2UgaGl0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KLQkJICovCi0JCXJldCA9IHdhbGtfcGFnZV9yYW5nZShtbSwgc3RhcnRfdmFkZHIsIGVuZF92YWRkciwKLQkJCQkJJnBhZ2VtYXBfd2FsaywgJnBtKTsKLQkJaWYgKHJldCA9PSBQTV9FTkRfT0ZfQlVGRkVSKQotCQkJcmV0ID0gMDsKLQkJLyogZG9uJ3QgbmVlZCBtbWFwX3NlbSBmb3IgdGhlc2UsIGJ1dCB0aGlzIGxvb2tzIGNsZWFuZXIgKi8KLQkJKnBwb3MgKz0gcG0ub3V0IC0gYnVmOwotCQlpZiAoIXJldCkKLQkJCXJldCA9IHBtLm91dCAtIGJ1ZjsKLQl9CisJLyogd2F0Y2ggb3V0IGZvciB3cmFwYXJvdW5kICovCisJaWYgKHN2cGZuID4gVEFTS19TSVpFX09GKHRhc2spID4+IFBBR0VfU0hJRlQpCisJCXN0YXJ0X3ZhZGRyID0gZW5kX3ZhZGRyOworCisJLyoKKwkgKiBUaGUgb2RkcyBhcmUgdGhhdCB0aGlzIHdpbGwgc3RvcCB3YWxraW5nIHdheQorCSAqIGJlZm9yZSBlbmRfdmFkZHIsIGJlY2F1c2UgdGhlIGxlbmd0aCBvZiB0aGUKKwkgKiB1c2VyIGJ1ZmZlciBpcyB0cmFja2VkIGluICJwbSIsIGFuZCB0aGUgd2FsaworCSAqIHdpbGwgc3RvcCB3aGVuIHdlIGhpdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCisJICovCisJcmV0ID0gd2Fsa19wYWdlX3JhbmdlKHN0YXJ0X3ZhZGRyLCBlbmRfdmFkZHIsICZwYWdlbWFwX3dhbGspOworCWlmIChyZXQgPT0gUE1fRU5EX09GX0JVRkZFUikKKwkJcmV0ID0gMDsKKwkvKiBkb24ndCBuZWVkIG1tYXBfc2VtIGZvciB0aGVzZSwgYnV0IHRoaXMgbG9va3MgY2xlYW5lciAqLworCSpwcG9zICs9IChjaGFyICopcG0ub3V0IC0gYnVmOworCWlmICghcmV0KQorCQlyZXQgPSAoY2hhciAqKXBtLm91dCAtIGJ1ZjsKIAogb3V0X3BhZ2VzOgogCWZvciAoOyBwYWdlY291bnQ7IHBhZ2Vjb3VudC0tKSB7CkBAIC03MjYsNyArNzQ3LDcgQEAKIAlzdHJ1Y3QgcHJvY19tYXBzX3ByaXZhdGUgKnByaXYgPSBtLT5wcml2YXRlOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayA9IHByaXYtPnRhc2s7CiAKLQlpZiAobWFwc19wcm90ZWN0ICYmICFwdHJhY2VfbWF5X2F0dGFjaCh0YXNrKSkKKwlpZiAobWFwc19wcm90ZWN0ICYmICFwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9SRUFEKSkKIAkJcmV0dXJuIC1FQUNDRVM7CiAKIAlyZXR1cm4gc2hvd19udW1hX21hcChtLCB2KTsKZGlmZiAtLWdpdCBhL2ZzL3Byb2MvdGFza19ub21tdS5jIGIvZnMvcHJvYy90YXNrX25vbW11LmMKaW5kZXggNGI0ZjljYy4uNWQ4NGU3MSAxMDA2NDQKLS0tIGEvZnMvcHJvYy90YXNrX25vbW11LmMKKysrIGIvZnMvcHJvYy90YXNrX25vbW11LmMKQEAgLTExMyw3ICsxMTMsNyBAQAogCXN0cnVjdCBwcm9jX21hcHNfcHJpdmF0ZSAqcHJpdiA9IG0tPnByaXZhdGU7CiAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrID0gcHJpdi0+dGFzazsKIAotCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYXR0YWNoKHRhc2spKQorCWlmIChtYXBzX3Byb3RlY3QgJiYgIXB0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX1JFQUQpKQogCQlyZXR1cm4gLUVBQ0NFUzsKIAogCXJldHVybiBub21tdV92bWFfc2hvdyhtLCB2bWwtPnZtYSk7CmRpZmYgLS1naXQgYS9mcy9yYW1mcy9maWxlLW1tdS5jIGIvZnMvcmFtZnMvZmlsZS1tbXUuYwppbmRleCA5NTkwYjkwLi43OGY2MTNjIDEwMDY0NAotLS0gYS9mcy9yYW1mcy9maWxlLW1tdS5jCisrKyBiL2ZzL3JhbWZzL2ZpbGUtbW11LmMKQEAgLTQ1LDYgKzQ1LDcgQEAKIAkubW1hcAkJPSBnZW5lcmljX2ZpbGVfbW1hcCwKIAkuZnN5bmMJCT0gc2ltcGxlX3N5bmNfZmlsZSwKIAkuc3BsaWNlX3JlYWQJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCisJLnNwbGljZV93cml0ZQk9IGdlbmVyaWNfZmlsZV9zcGxpY2Vfd3JpdGUsCiAJLmxsc2VlawkJPSBnZW5lcmljX2ZpbGVfbGxzZWVrLAogfTsKIApkaWZmIC0tZ2l0IGEvZnMvcmFtZnMvZmlsZS1ub21tdS5jIGIvZnMvcmFtZnMvZmlsZS1ub21tdS5jCmluZGV4IDA5ODliYzIuLjUyMzEyZWMgMTAwNjQ0Ci0tLSBhL2ZzL3JhbWZzL2ZpbGUtbm9tbXUuYworKysgYi9mcy9yYW1mcy9maWxlLW5vbW11LmMKQEAgLTQzLDYgKzQzLDcgQEAKIAkuYWlvX3dyaXRlCQk9IGdlbmVyaWNfZmlsZV9haW9fd3JpdGUsCiAJLmZzeW5jCQkJPSBzaW1wbGVfc3luY19maWxlLAogCS5zcGxpY2VfcmVhZAkJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3JlYWQsCisJLnNwbGljZV93cml0ZQkJPSBnZW5lcmljX2ZpbGVfc3BsaWNlX3dyaXRlLAogCS5sbHNlZWsJCQk9IGdlbmVyaWNfZmlsZV9sbHNlZWssCiB9OwogCmRpZmYgLS1naXQgYS9mcy9yZWFkX3dyaXRlLmMgYi9mcy9yZWFkX3dyaXRlLmMKaW5kZXggZjBkMTI0MC4uOWJhNDk1ZCAxMDA2NDQKLS0tIGEvZnMvcmVhZF93cml0ZS5jCisrKyBiL2ZzL3JlYWRfd3JpdGUuYwpAQCAtMzEsMTIgKzMxLDEyIEBACiAKIEVYUE9SVF9TWU1CT0woZ2VuZXJpY19yb19mb3BzKTsKIAotbG9mZl90IGdlbmVyaWNfZmlsZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCitsb2ZmX3QKK2dlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCiB7CiAJbG9mZl90IHJldHZhbDsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZS0+Zl9tYXBwaW5nLT5ob3N0OwogCi0JbXV0ZXhfbG9jaygmaW5vZGUtPmlfbXV0ZXgpOwogCXN3aXRjaCAob3JpZ2luKSB7CiAJCWNhc2UgU0VFS19FTkQ6CiAJCQlvZmZzZXQgKz0gaW5vZGUtPmlfc2l6ZTsKQEAgLTQ2LDQyICs0NiwyNiBAQAogCX0KIAlyZXR2YWwgPSAtRUlOVkFMOwogCWlmIChvZmZzZXQ+PTAgJiYgb2Zmc2V0PD1pbm9kZS0+aV9zYi0+c19tYXhieXRlcykgeworCQkvKiBTcGVjaWFsIGxvY2sgbmVlZGVkIGhlcmU/ICovCiAJCWlmIChvZmZzZXQgIT0gZmlsZS0+Zl9wb3MpIHsKIAkJCWZpbGUtPmZfcG9zID0gb2Zmc2V0OwogCQkJZmlsZS0+Zl92ZXJzaW9uID0gMDsKIAkJfQogCQlyZXR2YWwgPSBvZmZzZXQ7CiAJfQotCW11dGV4X3VubG9jaygmaW5vZGUtPmlfbXV0ZXgpOwogCXJldHVybiByZXR2YWw7CiB9CitFWFBPUlRfU1lNQk9MKGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQpOwogCi1FWFBPUlRfU1lNQk9MKGdlbmVyaWNfZmlsZV9sbHNlZWspOwotCi1sb2ZmX3QgcmVtb3RlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbikKK2xvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKQogewotCWxvZmZfdCByZXR2YWw7Ci0KLQlsb2NrX2tlcm5lbCgpOwotCXN3aXRjaCAob3JpZ2luKSB7Ci0JCWNhc2UgU0VFS19FTkQ6Ci0JCQlvZmZzZXQgKz0gaV9zaXplX3JlYWQoZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZSk7Ci0JCQlicmVhazsKLQkJY2FzZSBTRUVLX0NVUjoKLQkJCW9mZnNldCArPSBmaWxlLT5mX3BvczsKLQl9Ci0JcmV0dmFsID0gLUVJTlZBTDsKLQlpZiAob2Zmc2V0Pj0wICYmIG9mZnNldDw9ZmlsZS0+Zl9wYXRoLmRlbnRyeS0+ZF9pbm9kZS0+aV9zYi0+c19tYXhieXRlcykgewotCQlpZiAob2Zmc2V0ICE9IGZpbGUtPmZfcG9zKSB7Ci0JCQlmaWxlLT5mX3BvcyA9IG9mZnNldDsKLQkJCWZpbGUtPmZfdmVyc2lvbiA9IDA7Ci0JCX0KLQkJcmV0dmFsID0gb2Zmc2V0OwotCX0KLQl1bmxvY2tfa2VybmVsKCk7Ci0JcmV0dXJuIHJldHZhbDsKKwlsb2ZmX3QgbjsKKwltdXRleF9sb2NrKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV9tdXRleCk7CisJbiA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCW11dGV4X3VubG9jaygmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfbXV0ZXgpOworCXJldHVybiBuOwogfQotRVhQT1JUX1NZTUJPTChyZW1vdGVfbGxzZWVrKTsKK0VYUE9SVF9TWU1CT0woZ2VuZXJpY19maWxlX2xsc2Vlayk7CiAKIGxvZmZfdCBub19sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCiB7CmRpZmYgLS1naXQgYS9mcy9yZWlzZXJmcy9pbm9kZS5jIGIvZnMvcmVpc2VyZnMvaW5vZGUuYwppbmRleCA1NzkxNzkzLi4xOTIyNjk2IDEwMDY0NAotLS0gYS9mcy9yZWlzZXJmcy9pbm9kZS5jCisrKyBiL2ZzL3JlaXNlcmZzL2lub2RlLmMKQEAgLTQ1LDYgKzQ1LDggQEAKIAkJCWdvdG8gb3V0OwogCQlyZWlzZXJmc191cGRhdGVfaW5vZGVfdHJhbnNhY3Rpb24oaW5vZGUpOwogCisJCXJlaXNlcmZzX2Rpc2NhcmRfcHJlYWxsb2MoJnRoLCBpbm9kZSk7CisKIAkJZXJyID0gcmVpc2VyZnNfZGVsZXRlX29iamVjdCgmdGgsIGlub2RlKTsKIAogCQkvKiBEbyBxdW90YSB1cGRhdGUgaW5zaWRlIGEgdHJhbnNhY3Rpb24gZm9yIGpvdXJuYWxlZCBxdW90YXMuIFdlIG11c3QgZG8gdGhhdApkaWZmIC0tZ2l0IGEvZnMvcmVpc2VyZnMvc3VwZXIuYyBiL2ZzL3JlaXNlcmZzL3N1cGVyLmMKaW5kZXggZWQ0MjRkNy4uMWQ0MGYyYiAxMDA2NDQKLS0tIGEvZnMvcmVpc2VyZnMvc3VwZXIuYworKysgYi9mcy9yZWlzZXJmcy9zdXBlci5jCkBAIC0yMTY1LDggKzIxNjUsMTAgQEAKIAkJYmxrKys7CiAJfQogb3V0OgotCWlmIChsZW4gPT0gdG93cml0ZSkKKwlpZiAobGVuID09IHRvd3JpdGUpIHsKKwkJbXV0ZXhfdW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7CiAJCXJldHVybiBlcnI7CisJfQogCWlmIChpbm9kZS0+aV9zaXplIDwgb2ZmICsgbGVuIC0gdG93cml0ZSkKIAkJaV9zaXplX3dyaXRlKGlub2RlLCBvZmYgKyBsZW4gLSB0b3dyaXRlKTsKIAlpbm9kZS0+aV92ZXJzaW9uKys7CmRpZmYgLS1naXQgYS9mcy9zZWxlY3QuYyBiL2ZzL3NlbGVjdC5jCmluZGV4IDhkZGE5NjkuLmRhMGU4ODIgMTAwNjQ0Ci0tLSBhL2ZzL3NlbGVjdC5jCisrKyBiL2ZzL3NlbGVjdC5jCkBAIC0yNDksNyArMjQ5LDYgQEAKIAkJCQkJCXJldHZhbCsrOwogCQkJCQl9CiAJCQkJfQotCQkJCWNvbmRfcmVzY2hlZCgpOwogCQkJfQogCQkJaWYgKHJlc19pbikKIAkJCQkqcmlucCA9IHJlc19pbjsKQEAgLTI1Nyw2ICsyNTYsNyBAQAogCQkJCSpyb3V0cCA9IHJlc19vdXQ7CiAJCQlpZiAocmVzX2V4KQogCQkJCSpyZXhwID0gcmVzX2V4OworCQkJY29uZF9yZXNjaGVkKCk7CiAJCX0KIAkJd2FpdCA9IE5VTEw7CiAJCWlmIChyZXR2YWwgfHwgISp0aW1lb3V0IHx8IHNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKQpkaWZmIC0tZ2l0IGEvZnMvc21iZnMvZmlsZS5jIGIvZnMvc21iZnMvZmlsZS5jCmluZGV4IGVmYmUyOWEuLjIyOTQ3ODMgMTAwNjQ0Ci0tLSBhL2ZzL3NtYmZzL2ZpbGUuYworKysgYi9mcy9zbWJmcy9maWxlLmMKQEAgLTQyMiw5ICs0MjIsMTggQEAKIAlyZXR1cm4gZXJyb3I7CiB9CiAKK3N0YXRpYyBsb2ZmX3Qgc21iX3JlbW90ZV9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCit7CisJbG9mZl90IHJldDsKKwlsb2NrX2tlcm5lbCgpOworCXJldCA9IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCXVubG9ja19rZXJuZWwoKTsKKwlyZXR1cm4gcmV0OworfQorCiBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHNtYl9maWxlX29wZXJhdGlvbnMgPQogewotCS5sbHNlZWsJCT0gcmVtb3RlX2xsc2VlaywKKwkubGxzZWVrIAk9IHNtYl9yZW1vdGVfbGxzZWVrLAogCS5yZWFkCQk9IGRvX3N5bmNfcmVhZCwKIAkuYWlvX3JlYWQJPSBzbWJfZmlsZV9haW9fcmVhZCwKIAkud3JpdGUJCT0gZG9fc3luY193cml0ZSwKZGlmZiAtLWdpdCBhL2ZzL3NwbGljZS5jIGIvZnMvc3BsaWNlLmMKaW5kZXggNzgxNTAwMy4uMzk5NDQyMSAxMDA2NDQKLS0tIGEvZnMvc3BsaWNlLmMKKysrIGIvZnMvc3BsaWNlLmMKQEAgLTU4LDggKzU4LDggQEAKIAkJICovCiAJCXdhaXRfb25fcGFnZV93cml0ZWJhY2socGFnZSk7CiAKLQkJaWYgKFBhZ2VQcml2YXRlKHBhZ2UpKQotCQkJdHJ5X3RvX3JlbGVhc2VfcGFnZShwYWdlLCBHRlBfS0VSTkVMKTsKKwkJaWYgKFBhZ2VQcml2YXRlKHBhZ2UpICYmICF0cnlfdG9fcmVsZWFzZV9wYWdlKHBhZ2UsIEdGUF9LRVJORUwpKQorCQkJZ290byBvdXRfdW5sb2NrOwogCiAJCS8qCiAJCSAqIElmIHdlIHN1Y2NlZWRlZCBpbiByZW1vdmluZyB0aGUgbWFwcGluZywgc2V0IExSVSBmbGFnCkBAIC03NSw2ICs3NSw3IEBACiAJICogUmFjZWQgd2l0aCB0cnVuY2F0ZSBvciBmYWlsZWQgdG8gcmVtb3ZlIHBhZ2UgZnJvbSBjdXJyZW50CiAJICogYWRkcmVzcyBzcGFjZSwgdW5sb2NrIGFuZCByZXR1cm4gZmFpbHVyZS4KIAkgKi8KK291dF91bmxvY2s6CiAJdW5sb2NrX3BhZ2UocGFnZSk7CiAJcmV0dXJuIDE7CiB9CkBAIC0zNzgsMTMgKzM3OSwyMiBAQAogCQkJCWxvY2tfcGFnZShwYWdlKTsKIAogCQkJLyoKLQkJCSAqIHBhZ2Ugd2FzIHRydW5jYXRlZCwgc3RvcCBoZXJlLiBpZiB0aGlzIGlzbid0IHRoZQotCQkJICogZmlyc3QgcGFnZSwgd2UnbGwganVzdCBjb21wbGV0ZSB3aGF0IHdlIGFscmVhZHkKLQkJCSAqIGFkZGVkCisJCQkgKiBQYWdlIHdhcyB0cnVuY2F0ZWQsIG9yIGludmFsaWRhdGVkIGJ5IHRoZQorCQkJICogZmlsZXN5c3RlbS4gIFJlZG8gdGhlIGZpbmQvY3JlYXRlLCBidXQgdGhpcyB0aW1lIHRoZQorCQkJICogcGFnZSBpcyBrZXB0IGxvY2tlZCwgc28gdGhlcmUncyBubyBjaGFuY2Ugb2YgYW5vdGhlcgorCQkJICogcmFjZSB3aXRoIHRydW5jYXRlL2ludmFsaWRhdGUuCiAJCQkgKi8KIAkJCWlmICghcGFnZS0+bWFwcGluZykgewogCQkJCXVubG9ja19wYWdlKHBhZ2UpOwotCQkJCWJyZWFrOworCQkJCXBhZ2UgPSBmaW5kX29yX2NyZWF0ZV9wYWdlKG1hcHBpbmcsIGluZGV4LAorCQkJCQkJbWFwcGluZ19nZnBfbWFzayhtYXBwaW5nKSk7CisKKwkJCQlpZiAoIXBhZ2UpIHsKKwkJCQkJZXJyb3IgPSAtRU5PTUVNOworCQkJCQlicmVhazsKKwkJCQl9CisJCQkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2VzW3BhZ2VfbnJdKTsKKwkJCQlwYWdlc1twYWdlX25yXSA9IHBhZ2U7CiAJCQl9CiAJCQkvKgogCQkJICogcGFnZSB3YXMgYWxyZWFkeSB1bmRlciBpbyBhbmQgaXMgbm93IGRvbmUsIGdyZWF0CkBAIC05ODMsNyArOTkzLDcgQEAKIAogCXdoaWxlIChsZW4pIHsKIAkJc2l6ZV90IHJlYWRfbGVuOwotCQlsb2ZmX3QgcG9zID0gc2QtPnBvczsKKwkJbG9mZl90IHBvcyA9IHNkLT5wb3MsIHByZXZfcG9zID0gcG9zOwogCiAJCXJldCA9IGRvX3NwbGljZV90byhpbiwgJnBvcywgcGlwZSwgbGVuLCBmbGFncyk7CiAJCWlmICh1bmxpa2VseShyZXQgPD0gMCkpCkBAIC05OTgsMTUgKzEwMDgsMTkgQEAKIAkJICogY291bGQgZ2V0IHN0dWNrIGRhdGEgaW4gdGhlIGludGVybmFsIHBpcGU6CiAJCSAqLwogCQlyZXQgPSBhY3RvcihwaXBlLCBzZCk7Ci0JCWlmICh1bmxpa2VseShyZXQgPD0gMCkpCisJCWlmICh1bmxpa2VseShyZXQgPD0gMCkpIHsKKwkJCXNkLT5wb3MgPSBwcmV2X3BvczsKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CisJCX0KIAogCQlieXRlcyArPSByZXQ7CiAJCWxlbiAtPSByZXQ7CiAJCXNkLT5wb3MgPSBwb3M7CiAKLQkJaWYgKHJldCA8IHJlYWRfbGVuKQorCQlpZiAocmV0IDwgcmVhZF9sZW4pIHsKKwkJCXNkLT5wb3MgPSBwcmV2X3BvcyArIHJldDsKIAkJCWdvdG8gb3V0X3JlbGVhc2U7CisJCX0KIAl9CiAKIGRvbmU6CkBAIC0xMDcyLDcgKzEwODYsNyBAQAogCiAJcmV0ID0gc3BsaWNlX2RpcmVjdF90b19hY3RvcihpbiwgJnNkLCBkaXJlY3Rfc3BsaWNlX2FjdG9yKTsKIAlpZiAocmV0ID4gMCkKLQkJKnBwb3MgKz0gcmV0OworCQkqcHBvcyA9IHNkLnBvczsKIAogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9mcy91ZGYvc3VwZXIuYyBiL2ZzL3VkZi9zdXBlci5jCmluZGV4IDdhNWY2OWIuLjQ0Y2M3MDIgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi9zdXBlci5jCisrKyBiL2ZzL3VkZi9zdXBlci5jCkBAIC02ODIsMzggKzY4MiwyNiBAQAogLyoKICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYW4gYW5jaG9yIGJsb2NrIGluIHRoZSBnaXZlbiBibG9jawogICovCi1zdGF0aWMgaW50IHVkZl9jaGVja19hbmNob3JfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgYmxvY2ssCi0JCQkJCWJvb2wgdmFyY29udikKK3N0YXRpYyBpbnQgdWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzZWN0b3JfdCBibG9jaykKIHsKLQlzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gTlVMTDsKLQl0YWcgKnQ7CisJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaDsKIAl1aW50MTZfdCBpZGVudDsKLQl1aW50MzJfdCBsb2NhdGlvbjsKIAotCWlmICh2YXJjb252KSB7Ci0JCWlmICh1ZGZfZml4ZWRfdG9fdmFyaWFibGUoYmxvY2spID49Ci0JCSAgICBzYi0+c19iZGV2LT5iZF9pbm9kZS0+aV9zaXplID4+IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKQotCQkJcmV0dXJuIDA7Ci0JCWJoID0gc2JfYnJlYWQoc2IsIHVkZl9maXhlZF90b192YXJpYWJsZShibG9jaykpOwotCX0KLQllbHNlCi0JCWJoID0gc2JfYnJlYWQoc2IsIGJsb2NrKTsKKwlpZiAoVURGX1FVRVJZX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpICYmCisJICAgIHVkZl9maXhlZF90b192YXJpYWJsZShibG9jaykgPj0KKwkgICAgc2ItPnNfYmRldi0+YmRfaW5vZGUtPmlfc2l6ZSA+PiBzYi0+c19ibG9ja3NpemVfYml0cykKKwkJcmV0dXJuIDA7CiAKKwliaCA9IHVkZl9yZWFkX3RhZ2dlZChzYiwgYmxvY2ssIGJsb2NrLCAmaWRlbnQpOwogCWlmICghYmgpCiAJCXJldHVybiAwOwotCi0JdCA9ICh0YWcgKiliaC0+Yl9kYXRhOwotCWlkZW50ID0gbGUxNl90b19jcHUodC0+dGFnSWRlbnQpOwotCWxvY2F0aW9uID0gbGUzMl90b19jcHUodC0+dGFnTG9jYXRpb24pOwogCWJyZWxzZShiaCk7Ci0JaWYgKGlkZW50ICE9IFRBR19JREVOVF9BVkRQKQotCQlyZXR1cm4gMDsKLQlyZXR1cm4gbG9jYXRpb24gPT0gYmxvY2s7CisKKwlyZXR1cm4gaWRlbnQgPT0gVEFHX0lERU5UX0FWRFA7CiB9CiAKIC8qIFNlYXJjaCBmb3IgYW4gYW5jaG9yIHZvbHVtZSBkZXNjcmlwdG9yIHBvaW50ZXIgKi8KLXN0YXRpYyBzZWN0b3JfdCB1ZGZfc2Nhbl9hbmNob3JzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGJvb2wgdmFyY29udiwKLQkJCQkJc2VjdG9yX3QgbGFzdGJsb2NrKQorc3RhdGljIHNlY3Rvcl90IHVkZl9zY2FuX2FuY2hvcnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc2VjdG9yX3QgbGFzdGJsb2NrKQogewogCXNlY3Rvcl90IGxhc3RbNl07CiAJaW50IGk7CkBAIC03MzksNyArNzI3LDcgQEAKIAkJCQlzYi0+c19ibG9ja3NpemVfYml0cykKIAkJCWNvbnRpbnVlOwogCi0JCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBsYXN0W2ldLCB2YXJjb252KSkgeworCQlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgbGFzdFtpXSkpIHsKIAkJCXNiaS0+c19hbmNob3JbMF0gPSBsYXN0W2ldOwogCQkJc2JpLT5zX2FuY2hvclsxXSA9IGxhc3RbaV0gLSAyNTY7CiAJCQlyZXR1cm4gbGFzdFtpXTsKQEAgLTc0OCwxNyArNzM2LDE3IEBACiAJCWlmIChsYXN0W2ldIDwgMjU2KQogCQkJY29udGludWU7CiAKLQkJaWYgKHVkZl9jaGVja19hbmNob3JfYmxvY2soc2IsIGxhc3RbaV0gLSAyNTYsIHZhcmNvbnYpKSB7CisJCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBsYXN0W2ldIC0gMjU2KSkgewogCQkJc2JpLT5zX2FuY2hvclsxXSA9IGxhc3RbaV0gLSAyNTY7CiAJCQlyZXR1cm4gbGFzdFtpXTsKIAkJfQogCX0KIAotCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBzYmktPnNfc2Vzc2lvbiArIDI1NiwgdmFyY29udikpIHsKKwlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyAyNTYpKSB7CiAJCXNiaS0+c19hbmNob3JbMF0gPSBzYmktPnNfc2Vzc2lvbiArIDI1NjsKIAkJcmV0dXJuIGxhc3RbMF07CiAJfQotCWlmICh1ZGZfY2hlY2tfYW5jaG9yX2Jsb2NrKHNiLCBzYmktPnNfc2Vzc2lvbiArIDUxMiwgdmFyY29udikpIHsKKwlpZiAodWRmX2NoZWNrX2FuY2hvcl9ibG9jayhzYiwgc2JpLT5zX3Nlc3Npb24gKyA1MTIpKSB7CiAJCXNiaS0+c19hbmNob3JbMF0gPSBzYmktPnNfc2Vzc2lvbiArIDUxMjsKIAkJcmV0dXJuIGxhc3RbMF07CiAJfQpAQCAtNzgwLDIzICs3NjgsMjQgQEAKIAlpbnQgaTsKIAlzdHJ1Y3QgdWRmX3NiX2luZm8gKnNiaSA9IFVERl9TQihzYik7CiAKLQlsYXN0YmxvY2sgPSB1ZGZfc2Nhbl9hbmNob3JzKHNiLCAwLCBzYmktPnNfbGFzdF9ibG9jayk7CisJbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgc2JpLT5zX2xhc3RfYmxvY2spOwogCWlmIChsYXN0YmxvY2spCiAJCWdvdG8gY2hlY2tfYW5jaG9yOwogCiAJLyogTm8gYW5jaG9yIGZvdW5kPyBUcnkgVkFSQ09OViBjb252ZXJzaW9uIG9mIGJsb2NrIG51bWJlcnMgKi8KKwlVREZfU0VUX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOwogCS8qIEZpcnN0bHksIHdlIHRyeSB0byBub3QgY29udmVydCBudW1iZXIgb2YgdGhlIGxhc3QgYmxvY2sgKi8KLQlsYXN0YmxvY2sgPSB1ZGZfc2Nhbl9hbmNob3JzKHNiLCAxLAorCWxhc3RibG9jayA9IHVkZl9zY2FuX2FuY2hvcnMoc2IsCiAJCQkJdWRmX3ZhcmlhYmxlX3RvX2ZpeGVkKHNiaS0+c19sYXN0X2Jsb2NrKSk7Ci0JaWYgKGxhc3RibG9jaykgewotCQlVREZfU0VUX0ZMQUcoc2IsIFVERl9GTEFHX1ZBUkNPTlYpOworCWlmIChsYXN0YmxvY2spCiAJCWdvdG8gY2hlY2tfYW5jaG9yOwotCX0KIAogCS8qIFNlY29uZGx5LCB3ZSB0cnkgd2l0aCBjb252ZXJ0ZWQgbnVtYmVyIG9mIHRoZSBsYXN0IGJsb2NrICovCi0JbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgMSwgc2JpLT5zX2xhc3RfYmxvY2spOwotCWlmIChsYXN0YmxvY2spCi0JCVVERl9TRVRfRkxBRyhzYiwgVURGX0ZMQUdfVkFSQ09OVik7CisJbGFzdGJsb2NrID0gdWRmX3NjYW5fYW5jaG9ycyhzYiwgc2JpLT5zX2xhc3RfYmxvY2spOworCWlmICghbGFzdGJsb2NrKSB7CisJCS8qIFZBUkNPTlYgZGlkbid0IGhlbHAuIENsZWFyIGl0LiAqLworCQlVREZfQ0xFQVJfRkxBRyhzYiwgVURGX0ZMQUdfVkFSQ09OVik7CisJfQogCiBjaGVja19hbmNob3I6CiAJLyoKZGlmZiAtLWdpdCBhL2ZzL3VkZi91ZGZkZWNsLmggYi9mcy91ZGYvdWRmZGVjbC5oCmluZGV4IDhmYTljMmQuLjhlYzg2NWQgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi91ZGZkZWNsLmgKKysrIGIvZnMvdWRmL3VkZmRlY2wuaApAQCAtMTYsNyArMTYsNyBAQAogI2RlZmluZSBVREZfUFJFQUxMT0NBVEUKICNkZWZpbmUgVURGX0RFRkFVTFRfUFJFQUxMT0NfQkxPQ0tTCTgKIAotI2RlZmluZSBVREZGU19ERUJVRworI3VuZGVmIFVERkZTX0RFQlVHCiAKICNpZmRlZiBVREZGU19ERUJVRwogI2RlZmluZSB1ZGZfZGVidWcoZiwgYS4uLikgXApkaWZmIC0tZ2l0IGEvZnMvdXRpbWVzLmMgYi9mcy91dGltZXMuYwppbmRleCBhZjA1OWQ1Li5iNmI2NjRlIDEwMDY0NAotLS0gYS9mcy91dGltZXMuYworKysgYi9mcy91dGltZXMuYwpAQCAtNDAsMTQgKzQwLDkgQEAKIAogI2VuZGlmCiAKLXN0YXRpYyBib29sIG5zZWNfc3BlY2lhbChsb25nIG5zZWMpCi17Ci0JcmV0dXJuIG5zZWMgPT0gVVRJTUVfT01JVCB8fCBuc2VjID09IFVUSU1FX05PVzsKLX0KLQogc3RhdGljIGJvb2wgbnNlY192YWxpZChsb25nIG5zZWMpCiB7Ci0JaWYgKG5zZWNfc3BlY2lhbChuc2VjKSkKKwlpZiAobnNlYyA9PSBVVElNRV9PTUlUIHx8IG5zZWMgPT0gVVRJTUVfTk9XKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBuc2VjID49IDAgJiYgbnNlYyA8PSA5OTk5OTk5OTk7CkBAIC0xMDIsNyArOTcsMTEgQEAKIAlpZiAoZXJyb3IpCiAJCWdvdG8gZHB1dF9hbmRfb3V0OwogCi0JLyogRG9uJ3Qgd29ycnksIHRoZSBjaGVja3MgYXJlIGRvbmUgaW4gaW5vZGVfY2hhbmdlX29rKCkgKi8KKwlpZiAodGltZXMgJiYgdGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9OT1cgJiYKKwkJICAgICB0aW1lc1sxXS50dl9uc2VjID09IFVUSU1FX05PVykKKwkJdGltZXMgPSBOVUxMOworCisJLyogSW4gbW9zdCBjYXNlcywgdGhlIGNoZWNrcyBhcmUgZG9uZSBpbiBpbm9kZV9jaGFuZ2Vfb2soKSAqLwogCW5ld2F0dHJzLmlhX3ZhbGlkID0gQVRUUl9DVElNRSB8IEFUVFJfTVRJTUUgfCBBVFRSX0FUSU1FOwogCWlmICh0aW1lcykgewogCQllcnJvciA9IC1FUEVSTTsKQEAgLTEyNCwyOCArMTIzLDM0IEBACiAJCQluZXdhdHRycy5pYV9tdGltZS50dl9uc2VjID0gdGltZXNbMV0udHZfbnNlYzsKIAkJCW5ld2F0dHJzLmlhX3ZhbGlkIHw9IEFUVFJfTVRJTUVfU0VUOwogCQl9Ci0JfQogCi0JLyoKLQkgKiBJZiB0aW1lcyBpcyBOVUxMIG9yIGJvdGggdGltZXMgYXJlIGVpdGhlciBVVElNRV9PTUlUIG9yCi0JICogVVRJTUVfTk9XLCB0aGVuIG5lZWQgdG8gY2hlY2sgcGVybWlzc2lvbnMsIGJlY2F1c2UKLQkgKiBpbm9kZV9jaGFuZ2Vfb2soKSB3b24ndCBkbyBpdC4KLQkgKi8KLQlpZiAoIXRpbWVzIHx8IChuc2VjX3NwZWNpYWwodGltZXNbMF0udHZfbnNlYykgJiYKLQkJICAgICAgIG5zZWNfc3BlY2lhbCh0aW1lc1sxXS50dl9uc2VjKSkpIHsKKwkJLyoKKwkJICogRm9yIHRoZSBVVElNRV9PTUlUL1VUSU1FX05PVyBhbmQgVVRJTUVfTk9XL1VUSU1FX09NSVQKKwkJICogY2FzZXMsIHdlIG5lZWQgdG8gbWFrZSBhbiBleHRyYSBjaGVjayB0aGF0IGlzIG5vdCBkb25lIGJ5CisJCSAqIGlub2RlX2NoYW5nZV9vaygpLgorCQkgKi8KKwkJaWYgKCgodGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9OT1cgJiYKKwkJCSAgICB0aW1lc1sxXS50dl9uc2VjID09IFVUSU1FX09NSVQpCisJCSAgICAgfHwKKwkJICAgICAodGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9PTUlUICYmCisJCQkgICAgdGltZXNbMV0udHZfbnNlYyA9PSBVVElNRV9OT1cpKQorCQkgICAgJiYgIWlzX293bmVyX29yX2NhcChpbm9kZSkpCisJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2FuZF9vdXQ7CisJfSBlbHNlIHsKKworCQkvKgorCQkgKiBJZiB0aW1lcyBpcyBOVUxMIChvciBib3RoIHRpbWVzIGFyZSBVVElNRV9OT1cpLAorCQkgKiB0aGVuIHdlIG5lZWQgdG8gY2hlY2sgcGVybWlzc2lvbnMsIGJlY2F1c2UKKwkJICogaW5vZGVfY2hhbmdlX29rKCkgd29uJ3QgZG8gaXQuCisJCSAqLwogCQllcnJvciA9IC1FQUNDRVM7CiAgICAgICAgICAgICAgICAgaWYgKElTX0lNTVVUQUJMRShpbm9kZSkpCiAJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2FuZF9vdXQ7CiAKIAkJaWYgKCFpc19vd25lcl9vcl9jYXAoaW5vZGUpKSB7Ci0JCQlpZiAoZikgewotCQkJCWlmICghKGYtPmZfbW9kZSAmIEZNT0RFX1dSSVRFKSkKLQkJCQkJZ290byBtbnRfZHJvcF93cml0ZV9hbmRfb3V0OwotCQkJfSBlbHNlIHsKLQkJCQllcnJvciA9IHZmc19wZXJtaXNzaW9uKCZuZCwgTUFZX1dSSVRFKTsKLQkJCQlpZiAoZXJyb3IpCi0JCQkJCWdvdG8gbW50X2Ryb3Bfd3JpdGVfYW5kX291dDsKLQkJCX0KKwkJCWVycm9yID0gcGVybWlzc2lvbihpbm9kZSwgTUFZX1dSSVRFLCBOVUxMKTsKKwkJCWlmIChlcnJvcikKKwkJCQlnb3RvIG1udF9kcm9wX3dyaXRlX2FuZF9vdXQ7CiAJCX0KIAl9CiAJbXV0ZXhfbG9jaygmaW5vZGUtPmlfbXV0ZXgpOwpAQCAtMTY5LDE0ICsxNzQsNiBAQAogCWlmICh1dGltZXMpIHsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZ0c3RpbWVzLCB1dGltZXMsIHNpemVvZih0c3RpbWVzKSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKLQkJaWYgKCh0c3RpbWVzWzBdLnR2X25zZWMgPT0gVVRJTUVfT01JVCB8fAotCQkgICAgIHRzdGltZXNbMF0udHZfbnNlYyA9PSBVVElNRV9OT1cpICYmCi0JCSAgICB0c3RpbWVzWzBdLnR2X3NlYyAhPSAwKQotCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCWlmICgodHN0aW1lc1sxXS50dl9uc2VjID09IFVUSU1FX09NSVQgfHwKLQkJICAgICB0c3RpbWVzWzFdLnR2X25zZWMgPT0gVVRJTUVfTk9XKSAmJgotCQkgICAgdHN0aW1lc1sxXS50dl9zZWMgIT0gMCkKLQkJCXJldHVybiAtRUlOVkFMOwogCiAJCS8qIE5vdGhpbmcgdG8gZG8sIHdlIG11c3Qgbm90IGV2ZW4gY2hlY2sgdGhlIHBhdGguICAqLwogCQlpZiAodHN0aW1lc1swXS50dl9uc2VjID09IFVUSU1FX09NSVQgJiYKZGlmZiAtLWdpdCBhL2ZzL3ZmYXQvbmFtZWkuYyBiL2ZzL3ZmYXQvbmFtZWkuYwppbmRleCBhMzUyMjcyNy4uYjU0NmJhNiAxMDA2NDQKLS0tIGEvZnMvdmZhdC9uYW1laS5jCisrKyBiL2ZzL3ZmYXQvbmFtZWkuYwpAQCAtNjQ1LDcgKzY0NSw3IEBACiAJaWYgKGxlbiA9PSAwKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCXNsb3RzID0ga21hbGxvYyhzaXplb2YoKnNsb3RzKSAqIE1TRE9TX1NMT1RTLCBHRlBfS0VSTkVMKTsKKwlzbG90cyA9IGttYWxsb2Moc2l6ZW9mKCpzbG90cykgKiBNU0RPU19TTE9UUywgR0ZQX05PRlMpOwogCWlmIChzbG90cyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIApAQCAtNjg3LDcgKzY4Nyw3IEBACiAJc3RydWN0IGRlbnRyeSAqYWxpYXM7CiAJaW50IGVyciwgdGFibGU7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCXRhYmxlID0gKE1TRE9TX1NCKHNiKS0+b3B0aW9ucy5uYW1lX2NoZWNrID09ICdzJykgPyAyIDogMDsKIAlkZW50cnktPmRfb3AgPSAmdmZhdF9kZW50cnlfb3BzW3RhYmxlXTsKIApAQCAtNjk5LDcgKzY5OSw3IEBACiAJaW5vZGUgPSBmYXRfYnVpbGRfaW5vZGUoc2IsIHNpbmZvLmRlLCBzaW5mby5pX3Bvcyk7CiAJYnJlbHNlKHNpbmZvLmJoKTsKIAlpZiAoSVNfRVJSKGlub2RlKSkgewotCQl1bmxvY2tfa2VybmVsKCk7CisJCXVubG9ja19zdXBlcihzYik7CiAJCXJldHVybiBFUlJfQ0FTVChpbm9kZSk7CiAJfQogCWFsaWFzID0gZF9maW5kX2FsaWFzKGlub2RlKTsKQEAgLTcwOCwxMyArNzA4LDEzIEBACiAJCQlkcHV0KGFsaWFzKTsKIAkJZWxzZSB7CiAJCQlpcHV0KGlub2RlKTsKLQkJCXVubG9ja19rZXJuZWwoKTsKKwkJCXVubG9ja19zdXBlcihzYik7CiAJCQlyZXR1cm4gYWxpYXM7CiAJCX0KIAogCX0KIGVycm9yOgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCWRlbnRyeS0+ZF9vcCA9ICZ2ZmF0X2RlbnRyeV9vcHNbdGFibGVdOwogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRlbnRyeSA9IGRfc3BsaWNlX2FsaWFzKGlub2RlLCBkZW50cnkpOwpAQCAtNzM0LDcgKzczNCw3IEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJdHMgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWVyciA9IHZmYXRfYWRkX2VudHJ5KGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAwLCAwLCAmdHMsICZzaW5mbyk7CkBAIC03NTUsMTcgKzc1NSwxOCBAQAogCWRlbnRyeS0+ZF90aW1lID0gZGVudHJ5LT5kX3BhcmVudC0+ZF9pbm9kZS0+aV92ZXJzaW9uOwogCWRfaW5zdGFudGlhdGUoZGVudHJ5LCBpbm9kZSk7CiBvdXQ6Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAJcmV0dXJuIGVycjsKIH0KIAogc3RhdGljIGludCB2ZmF0X3JtZGlyKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gZmF0X2Rpcl9lbXB0eShpbm9kZSk7CiAJaWYgKGVycikKQEAgLTc4Myw3ICs3ODQsNyBAQAogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfYXRpbWUgPSBDVVJSRU5UX1RJTUVfU0VDOwogCWZhdF9kZXRhY2goaW5vZGUpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCiAJcmV0dXJuIGVycjsKIH0KQEAgLTc5MSwxMCArNzkyLDExIEBACiBzdGF0aWMgaW50IHZmYXRfdW5saW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKKwlzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gZGlyLT5pX3NiOwogCXN0cnVjdCBmYXRfc2xvdF9pbmZvIHNpbmZvOwogCWludCBlcnI7CiAKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCiAJZXJyID0gdmZhdF9maW5kKGRpciwgJmRlbnRyeS0+ZF9uYW1lLCAmc2luZm8pOwogCWlmIChlcnIpCkBAIC04MDcsNyArODA5LDcgQEAKIAlpbm9kZS0+aV9tdGltZSA9IGlub2RlLT5pX2F0aW1lID0gQ1VSUkVOVF9USU1FX1NFQzsKIAlmYXRfZGV0YWNoKGlub2RlKTsKIG91dDoKLQl1bmxvY2tfa2VybmVsKCk7CisJdW5sb2NrX3N1cGVyKHNiKTsKIAogCXJldHVybiBlcnI7CiB9CkBAIC04MjAsNyArODIyLDcgQEAKIAlzdHJ1Y3QgdGltZXNwZWMgdHM7CiAJaW50IGVyciwgY2x1c3RlcjsKIAotCWxvY2tfa2VybmVsKCk7CisJbG9ja19zdXBlcihzYik7CiAKIAl0cyA9IENVUlJFTlRfVElNRV9TRUM7CiAJY2x1c3RlciA9IGZhdF9hbGxvY19uZXdfZGlyKGRpciwgJnRzKTsKQEAgLTg0OSwxMyArODUxLDEzIEBACiAJZGVudHJ5LT5kX3RpbWUgPSBkZW50cnktPmRfcGFyZW50LT5kX2lub2RlLT5pX3ZlcnNpb247CiAJZF9pbnN0YW50aWF0ZShkZW50cnksIGlub2RlKTsKIAotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiAwOwogCiBvdXRfZnJlZToKIAlmYXRfZnJlZV9jbHVzdGVycyhkaXIsIGNsdXN0ZXIpOwogb3V0OgotCXVubG9ja19rZXJuZWwoKTsKKwl1bmxvY2tfc3VwZXIoc2IpOwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTg2OSwxMSArODcxLDEyIEBACiAJc3RydWN0IHRpbWVzcGVjIHRzOwogCWxvZmZfdCBkb3Rkb3RfaV9wb3MsIG5ld19pX3BvczsKIAlpbnQgZXJyLCBpc19kaXIsIHVwZGF0ZV9kb3Rkb3QsIGNvcnJ1cHQgPSAwOworCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBvbGRfZGlyLT5pX3NiOwogCiAJb2xkX3NpbmZvLmJoID0gc2luZm8uYmggPSBkb3Rkb3RfYmggPSBOVUxMOwogCW9sZF9pbm9kZSA9IG9sZF9kZW50cnktPmRfaW5vZGU7CiAJbmV3X2lub2RlID0gbmV3X2RlbnRyeS0+ZF9pbm9kZTsKLQlsb2NrX2tlcm5lbCgpOworCWxvY2tfc3VwZXIoc2IpOwogCWVyciA9IHZmYXRfZmluZChvbGRfZGlyLCAmb2xkX2RlbnRyeS0+ZF9uYW1lLCAmb2xkX3NpbmZvKTsKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKQEAgLTk1MSw3ICs5NTQsNyBAQAogCWJyZWxzZShzaW5mby5iaCk7CiAJYnJlbHNlKGRvdGRvdF9iaCk7CiAJYnJlbHNlKG9sZF9zaW5mby5iaCk7Ci0JdW5sb2NrX2tlcm5lbCgpOworCXVubG9ja19zdXBlcihzYik7CiAKIAlyZXR1cm4gZXJyOwogCmRpZmYgLS1naXQgYS9mcy94ZnMvbGludXgtMi42L3hmc19idWYuYyBiL2ZzL3hmcy9saW51eC0yLjYveGZzX2J1Zi5jCmluZGV4IDUxMDUwMTUuLjk4ZTBlODYgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy9saW51eC0yLjYveGZzX2J1Zi5jCisrKyBiL2ZzL3hmcy9saW51eC0yLjYveGZzX2J1Zi5jCkBAIC0zODcsNiArMzg3LDggQEAKIAkJaWYgKHVubGlrZWx5KHBhZ2UgPT0gTlVMTCkpIHsKIAkJCWlmIChmbGFncyAmIFhCRl9SRUFEX0FIRUFEKSB7CiAJCQkJYnAtPmJfcGFnZV9jb3VudCA9IGk7CisJCQkJZm9yIChpID0gMDsgaSA8IGJwLT5iX3BhZ2VfY291bnQ7IGkrKykKKwkJCQkJdW5sb2NrX3BhZ2UoYnAtPmJfcGFnZXNbaV0pOwogCQkJCXJldHVybiAtRU5PTUVNOwogCQkJfQogCkBAIC00MTYsMTcgKzQxOCwyNCBAQAogCQlBU1NFUlQoIVBhZ2VQcml2YXRlKHBhZ2UpKTsKIAkJaWYgKCFQYWdlVXB0b2RhdGUocGFnZSkpIHsKIAkJCXBhZ2VfY291bnQtLTsKLQkJCWlmIChibG9ja3NpemUgPCBQQUdFX0NBQ0hFX1NJWkUgJiYgIVBhZ2VQcml2YXRlKHBhZ2UpKSB7CisJCQlpZiAoYmxvY2tzaXplID49IFBBR0VfQ0FDSEVfU0laRSkgeworCQkJCWlmIChmbGFncyAmIFhCRl9SRUFEKQorCQkJCQlicC0+Yl9mbGFncyB8PSBfWEJGX1BBR0VfTE9DS0VEOworCQkJfSBlbHNlIGlmICghUGFnZVByaXZhdGUocGFnZSkpIHsKIAkJCQlpZiAodGVzdF9wYWdlX3JlZ2lvbihwYWdlLCBvZmZzZXQsIG5ieXRlcykpCiAJCQkJCXBhZ2VfY291bnQrKzsKIAkJCX0KIAkJfQogCi0JCXVubG9ja19wYWdlKHBhZ2UpOwogCQlicC0+Yl9wYWdlc1tpXSA9IHBhZ2U7CiAJCW9mZnNldCA9IDA7CiAJfQogCisJaWYgKCEoYnAtPmJfZmxhZ3MgJiBfWEJGX1BBR0VfTE9DS0VEKSkgeworCQlmb3IgKGkgPSAwOyBpIDwgYnAtPmJfcGFnZV9jb3VudDsgaSsrKQorCQkJdW5sb2NrX3BhZ2UoYnAtPmJfcGFnZXNbaV0pOworCX0KKwogCWlmIChwYWdlX2NvdW50ID09IGJwLT5iX3BhZ2VfY291bnQpCiAJCWJwLT5iX2ZsYWdzIHw9IFhCRl9ET05FOwogCkBAIC03NDYsNiArNzU1LDcgQEAKIAlicC0+Yl9jb3VudF9kZXNpcmVkID0gbGVuOwogCWJwLT5iX2J1ZmZlcl9sZW5ndGggPSBidWZsZW47CiAJYnAtPmJfZmxhZ3MgfD0gWEJGX01BUFBFRDsKKwlicC0+Yl9mbGFncyAmPSB+X1hCRl9QQUdFX0xPQ0tFRDsKIAogCXJldHVybiAwOwogfQpAQCAtMTA5Myw4ICsxMTAzLDEwIEBACiAJeGZzX2J1Zl90CQkqYnAsCiAJaW50CQkJc2NoZWR1bGUpCiB7Ci0JaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmJwLT5iX2lvX3JlbWFpbmluZykgPT0gMSkKKwlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmYnAtPmJfaW9fcmVtYWluaW5nKSA9PSAxKSB7CisJCWJwLT5iX2ZsYWdzICY9IH5fWEJGX1BBR0VfTE9DS0VEOwogCQl4ZnNfYnVmX2lvZW5kKGJwLCBzY2hlZHVsZSk7CisJfQogfQogCiBTVEFUSUMgdm9pZApAQCAtMTEyNSw2ICsxMTM3LDkgQEAKIAogCQlpZiAoLS1idmVjID49IGJpby0+YmlfaW9fdmVjKQogCQkJcHJlZmV0Y2h3KCZidmVjLT5idl9wYWdlLT5mbGFncyk7CisKKwkJaWYgKGJwLT5iX2ZsYWdzICYgX1hCRl9QQUdFX0xPQ0tFRCkKKwkJCXVubG9ja19wYWdlKHBhZ2UpOwogCX0gd2hpbGUgKGJ2ZWMgPj0gYmlvLT5iaV9pb192ZWMpOwogCiAJX3hmc19idWZfaW9lbmQoYnAsIDEpOwpAQCAtMTE2Myw3ICsxMTc4LDggQEAKIAkgKiBmaWxlc3lzdGVtIGJsb2NrIHNpemUgaXMgbm90IHNtYWxsZXIgdGhhbiB0aGUgcGFnZSBzaXplLgogCSAqLwogCWlmICgoYnAtPmJfYnVmZmVyX2xlbmd0aCA8IFBBR0VfQ0FDSEVfU0laRSkgJiYKLQkgICAgKGJwLT5iX2ZsYWdzICYgWEJGX1JFQUQpICYmCisJICAgICgoYnAtPmJfZmxhZ3MgJiAoWEJGX1JFQUR8X1hCRl9QQUdFX0xPQ0tFRCkpID09CisJICAgICAgKFhCRl9SRUFEfF9YQkZfUEFHRV9MT0NLRUQpKSAmJgogCSAgICAoYmxvY2tzaXplID49IFBBR0VfQ0FDSEVfU0laRSkpIHsKIAkJYmlvID0gYmlvX2FsbG9jKEdGUF9OT0lPLCAxKTsKIApkaWZmIC0tZ2l0IGEvZnMveGZzL2xpbnV4LTIuNi94ZnNfYnVmLmggYi9mcy94ZnMvbGludXgtMi42L3hmc19idWYuaAppbmRleCA4NDFkNzg4Li5mOTQ4ZWM3IDEwMDY0NAotLS0gYS9mcy94ZnMvbGludXgtMi42L3hmc19idWYuaAorKysgYi9mcy94ZnMvbGludXgtMi42L3hmc19idWYuaApAQCAtNjYsNiArNjYsMjUgQEAKIAlfWEJGX1BBR0VTID0gKDEgPDwgMTgpLAkgICAgLyogYmFja2VkIGJ5IHJlZmNvdW50ZWQgcGFnZXMJICAgKi8KIAlfWEJGX1JVTl9RVUVVRVMgPSAoMSA8PCAxOSksLyogcnVuIGJsb2NrIGRldmljZSB0YXNrIHF1ZXVlCSAgICovCiAJX1hCRl9ERUxXUklfUSA9ICgxIDw8IDIxKSwgICAvKiBidWZmZXIgb24gZGVsd3JpIHF1ZXVlCQkgICAqLworCisJLyoKKwkgKiBTcGVjaWFsIGZsYWcgZm9yIHN1cHBvcnRpbmcgbWV0YWRhdGEgYmxvY2tzIHNtYWxsZXIgdGhhbiBhIEZTQi4KKwkgKgorCSAqIEluIHRoaXMgY2FzZSB3ZSBjYW4gaGF2ZSBtdWx0aXBsZSB4ZnNfYnVmX3Qgb24gYSBzaW5nbGUgcGFnZSBhbmQKKwkgKiBuZWVkIHRvIGxvY2sgb3V0IGNvbmN1cnJlbnQgeGZzX2J1Zl90IHJlYWRlcnMgYXMgdGhleSBvbmx5CisJICogc2VyaWFsaXNlIGFjY2VzcyB0byB0aGUgYnVmZmVyLgorCSAqCisJICogSWYgdGhlIEZTQiBzaXplID49IFBBR0VfQ0FDSEVfU0laRSBjYXNlLCB3ZSBoYXZlIG5vIHNlcmlhbGlzYXRpb24KKwkgKiBiZXR3ZWVuIHJlYWRzIG9mIHRoZSBwYWdlLiBIZW5jZSB3ZSBjYW4gaGF2ZSBvbmUgdGhyZWFkIHJlYWQgdGhlCisJICogcGFnZSBhbmQgbW9kaWZ5IGl0LCBidXQgdGhlbiByYWNlIHdpdGggYW5vdGhlciB0aHJlYWQgdGhhdCB0aGlua3MKKwkgKiB0aGUgcGFnZSBpcyBub3QgdXAtdG8tZGF0ZSBhbmQgaGVuY2UgcmVhZHMgaXQgYWdhaW4uCisJICoKKwkgKiBUaGUgcmVzdWx0IGlzIHRoYXQgdGhlIGZpcnN0IG1vZGlmY2F0aW9uIHRvIHRoZSBwYWdlIGlzIGxvc3QuCisJICogVGhpcyBzb3J0IG9mIEFHRi9BR0kgcmVhZGluZyByYWNlIGNhbiBoYXBwZW4gd2hlbiB1bmxpbmtpbmcgaW5vZGVzCisJICogdGhhdCByZXF1aXJlIHRydW5jYXRpb24gYW5kIHJlc3VsdHMgaW4gdGhlIEFHSSB1bmxpbmtlZCBsaXN0CisJICogbW9kaWZpY2F0aW9ucyBiZWluZyBsb3N0LgorCSAqLworCV9YQkZfUEFHRV9MT0NLRUQgPSAoMSA8PCAyMiksCiB9IHhmc19idWZfZmxhZ3NfdDsKIAogdHlwZWRlZiBlbnVtIHsKZGlmZiAtLWdpdCBhL2ZzL3hmcy9saW51eC0yLjYveGZzX2ZpbGUuYyBiL2ZzL3hmcy9saW51eC0yLjYveGZzX2ZpbGUuYwppbmRleCA2NWU3OGMxLi41ZjYwMzYzIDEwMDY0NAotLS0gYS9mcy94ZnMvbGludXgtMi42L3hmc19maWxlLmMKKysrIGIvZnMveGZzL2xpbnV4LTIuNi94ZnNfZmlsZS5jCkBAIC0xODQsMTkgKzE4NCwyNCBAQAogCXJldHVybiAteGZzX3JlbGVhc2UoWEZTX0koaW5vZGUpKTsKIH0KIAorLyoKKyAqIFdlIGlnbm9yZSB0aGUgZGF0YXN5bmMgZmxhZyBoZXJlIGJlY2F1c2UgYSBkYXRhc3luYyBpcyBlZmZlY3RpdmVseQorICogaWRlbnRpY2FsIHRvIGFuIGZzeW5jLiBUaGF0IGlzLCBkYXRhc3luYyBpbXBsaWVzIHRoYXQgd2UgbmVlZCB0byB3cml0ZQorICogb25seSB0aGUgbWV0YWRhdGEgbmVlZGVkIHRvIGJlIGFibGUgdG8gYWNjZXNzIHRoZSBkYXRhIHRoYXQgaXMgd3JpdHRlbgorICogaWYgd2UgY3Jhc2ggYWZ0ZXIgdGhlIGNhbGwgY29tcGxldGVzLiBIZW5jZSBpZiB3ZSBhcmUgd3JpdGluZyBiZXlvbmQKKyAqIEVPRiB3ZSBoYXZlIHRvIGxvZyB0aGUgaW5vZGUgc2l6ZSBjaGFuZ2UgYXMgd2VsbCwgd2hpY2ggbWFrZXMgaXQgYQorICogZnVsbCBmc3luYy4gSWYgd2UgZG9uJ3Qgd3JpdGUgYmV5b25kIEVPRiwgdGhlIGlub2RlIGNvcmUgd2lsbCBiZQorICogY2xlYW4gaW4gbWVtb3J5IGFuZCBzbyB3ZSBkb24ndCBuZWVkIHRvIGxvZyB0aGUgaW5vZGUsIGp1c3QgbGlrZQorICogZnN5bmMuCisgKi8KIFNUQVRJQyBpbnQKIHhmc19maWxlX2ZzeW5jKAogCXN0cnVjdCBmaWxlCSpmaWxwLAogCXN0cnVjdCBkZW50cnkJKmRlbnRyeSwKIAlpbnQJCWRhdGFzeW5jKQogewotCWludAkJZmxhZ3MgPSBGU1lOQ19XQUlUOwotCi0JaWYgKGRhdGFzeW5jKQotCQlmbGFncyB8PSBGU1lOQ19EQVRBOwogCXhmc19pZmxhZ3NfY2xlYXIoWEZTX0koZGVudHJ5LT5kX2lub2RlKSwgWEZTX0lUUlVOQ0FURUQpOwotCXJldHVybiAteGZzX2ZzeW5jKFhGU19JKGRlbnRyeS0+ZF9pbm9kZSksIGZsYWdzLAotCQkJKHhmc19vZmZfdCkwLCAoeGZzX29mZl90KS0xKTsKKwlyZXR1cm4gLXhmc19mc3luYyhYRlNfSShkZW50cnktPmRfaW5vZGUpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL2ZzL3hmcy9saW51eC0yLjYveGZzX3Zub2RlLmggYi9mcy94ZnMvbGludXgtMi42L3hmc192bm9kZS5oCmluZGV4IDlkNzNjYjUuLjI1ZWIyYTkgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy9saW51eC0yLjYveGZzX3Zub2RlLmgKKysrIGIvZnMveGZzL2xpbnV4LTIuNi94ZnNfdm5vZGUuaApAQCAtMjMwLDE0ICsyMzAsNiBAQAogI2RlZmluZSBBVFRSX05PU0laRVRPSwkweDQwMAkvKiBEb24ndCBnZXQgdGhlIFNJWkUgdG9rZW4gKi8KIAogLyoKLSAqIEZsYWdzIHRvIHZvcF9mc3luYy9yZWNsYWltLgotICovCi0jZGVmaW5lIEZTWU5DX05PV0FJVAkwCS8qIGFzeW5jaHJvbm91cyBmbHVzaCAqLwotI2RlZmluZSBGU1lOQ19XQUlUCTB4MQkvKiBzeW5jaHJvbm91cyBmc3luYyBvciBmb3JjZWQgcmVjbGFpbSAqLwotI2RlZmluZSBGU1lOQ19JTlZBTAkweDIJLyogZmx1c2ggYW5kIGludmFsaWRhdGUgY2FjaGVkIGRhdGEgKi8KLSNkZWZpbmUgRlNZTkNfREFUQQkweDQJLyogc3luY2hyb25vdXMgZnN5bmMgb2YgZGF0YSBvbmx5ICovCi0KLS8qCiAgKiBUcmFja2luZyB2bm9kZSBhY3Rpdml0eS4KICAqLwogI2lmIGRlZmluZWQoWEZTX0lOT0RFX1RSQUNFKQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19pbm9kZS5jIGIvZnMveGZzL3hmc19pbm9kZS5jCmluZGV4IGNmMGJiOWMuLmU1NjliZjUgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfaW5vZGUuYworKysgYi9mcy94ZnMveGZzX2lub2RlLmMKQEAgLTI5NzQsNiArMjk3NCw3IEBACiAJeGZzX21vdW50X3QJCSptcCA9IGlwLT5pX21vdW50OwogCXhmc19wZXJhZ190CQkqcGFnID0geGZzX2dldF9wZXJhZyhtcCwgaXAtPmlfaW5vKTsKIAl1bnNpZ25lZCBsb25nCQlmaXJzdF9pbmRleCwgbWFzazsKKwl1bnNpZ25lZCBsb25nCQlpbm9kZXNfcGVyX2NsdXN0ZXI7CiAJaW50CQkJaWxpc3Rfc2l6ZTsKIAl4ZnNfaW5vZGVfdAkJKippbGlzdDsKIAl4ZnNfaW5vZGVfdAkJKmlxOwpAQCAtMjk4NSw4ICsyOTg2LDkgQEAKIAlBU1NFUlQocGFnLT5wYWdpX2lub2Rlb2spOwogCUFTU0VSVChwYWctPnBhZ19pY2lfaW5pdCk7CiAKLQlpbGlzdF9zaXplID0gWEZTX0lOT0RFX0NMVVNURVJfU0laRShtcCkgKiBzaXplb2YoeGZzX2lub2RlX3QgKik7Ci0JaWxpc3QgPSBrbWVtX2FsbG9jKGlsaXN0X3NpemUsIEtNX01BWUZBSUwpOworCWlub2Rlc19wZXJfY2x1c3RlciA9IFhGU19JTk9ERV9DTFVTVEVSX1NJWkUobXApID4+IG1wLT5tX3NiLnNiX2lub2RlbG9nOworCWlsaXN0X3NpemUgPSBpbm9kZXNfcGVyX2NsdXN0ZXIgKiBzaXplb2YoeGZzX2lub2RlX3QgKik7CisJaWxpc3QgPSBrbWVtX2FsbG9jKGlsaXN0X3NpemUsIEtNX01BWUZBSUx8S01fTk9GUyk7CiAJaWYgKCFpbGlzdCkKIAkJcmV0dXJuIDA7CiAKQEAgLTI5OTUsOCArMjk5Nyw3IEBACiAJcmVhZF9sb2NrKCZwYWctPnBhZ19pY2lfbG9jayk7CiAJLyogcmVhbGx5IG5lZWQgYSBnYW5nIGxvb2t1cCByYW5nZSBjYWxsIGhlcmUgKi8KIAlucl9mb3VuZCA9IHJhZGl4X3RyZWVfZ2FuZ19sb29rdXAoJnBhZy0+cGFnX2ljaV9yb290LCAodm9pZCoqKWlsaXN0LAotCQkJCQlmaXJzdF9pbmRleCwKLQkJCQkJWEZTX0lOT0RFX0NMVVNURVJfU0laRShtcCkpOworCQkJCQlmaXJzdF9pbmRleCwgaW5vZGVzX3Blcl9jbHVzdGVyKTsKIAlpZiAobnJfZm91bmQgPT0gMCkKIAkJZ290byBvdXRfZnJlZTsKIApkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19sb2cuYyBiL2ZzL3hmcy94ZnNfbG9nLmMKaW5kZXggYWZhZWUzMC4uYWQzZDI2ZCAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19sb2cuYworKysgYi9mcy94ZnMveGZzX2xvZy5jCkBAIC0yNDI3LDEzICsyNDI3LDIwIEBACiAJaWYgKGljbG9nLT5pY19zaXplIC0gaWNsb2ctPmljX29mZnNldCA8IDIqc2l6ZW9mKHhsb2dfb3BfaGVhZGVyX3QpKSB7CiAJCXhsb2dfc3RhdGVfc3dpdGNoX2ljbG9ncyhsb2csIGljbG9nLCBpY2xvZy0+aWNfc2l6ZSk7CiAKLQkJLyogSWYgSSdtIHRoZSBvbmx5IG9uZSB3cml0aW5nIHRvIHRoaXMgaWNsb2csIHN5bmMgaXQgdG8gZGlzayAqLwotCQlpZiAoYXRvbWljX3JlYWQoJmljbG9nLT5pY19yZWZjbnQpID09IDEpIHsKKwkJLyoKKwkJICogSWYgSSdtIHRoZSBvbmx5IG9uZSB3cml0aW5nIHRvIHRoaXMgaWNsb2csIHN5bmMgaXQgdG8gZGlzay4KKwkJICogV2UgbmVlZCB0byBkbyBhbiBhdG9taWMgY29tcGFyZSBhbmQgZGVjcmVtZW50IGhlcmUgdG8gYXZvaWQKKwkJICogcmFjaW5nIHdpdGggY29uY3VycmVudCBhdG9taWNfZGVjX2FuZF9sb2NrKCkgY2FsbHMgaW4KKwkJICogeGxvZ19zdGF0ZV9yZWxlYXNlX2ljbG9nKCkgd2hlbiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lCisJCSAqIHJlZmVyZW5jZSB0byB0aGUgaWNsb2cuCisJCSAqLworCQlpZiAoIWF0b21pY19hZGRfdW5sZXNzKCZpY2xvZy0+aWNfcmVmY250LCAtMSwgMSkpIHsKKwkJCS8qIHdlIGFyZSB0aGUgb25seSBvbmUgKi8KIAkJCXNwaW5fdW5sb2NrKCZsb2ctPmxfaWNsb2dsb2NrKTsKLQkJCWlmICgoZXJyb3IgPSB4bG9nX3N0YXRlX3JlbGVhc2VfaWNsb2cobG9nLCBpY2xvZykpKQorCQkJZXJyb3IgPSB4bG9nX3N0YXRlX3JlbGVhc2VfaWNsb2cobG9nLCBpY2xvZyk7CisJCQlpZiAoZXJyb3IpCiAJCQkJcmV0dXJuIGVycm9yOwogCQl9IGVsc2UgewotCQkJYXRvbWljX2RlYygmaWNsb2ctPmljX3JlZmNudCk7CiAJCQlzcGluX3VubG9jaygmbG9nLT5sX2ljbG9nbG9jayk7CiAJCX0KIAkJZ290byByZXN0YXJ0OwpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc192bm9kZW9wcy5jIGIvZnMveGZzL3hmc192bm9kZW9wcy5jCmluZGV4IDcwNzAyYTYuLmU0NzVlMzcgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfdm5vZGVvcHMuYworKysgYi9mcy94ZnMveGZzX3Zub2Rlb3BzLmMKQEAgLTg1NiwxOCArODU2LDE0IEBACiAvKgogICogeGZzX2ZzeW5jCiAgKgotICogVGhpcyBpcyBjYWxsZWQgdG8gc3luYyB0aGUgaW5vZGUgYW5kIGl0cyBkYXRhIG91dCB0byBkaXNrLgotICogV2UgbmVlZCB0byBob2xkIHRoZSBJL08gbG9jayB3aGlsZSBmbHVzaGluZyB0aGUgZGF0YSwgYW5kCi0gKiB0aGUgaW5vZGUgbG9jayB3aGlsZSBmbHVzaGluZyB0aGUgaW5vZGUuICBUaGUgaW5vZGUgbG9jayBDQU5OT1QKLSAqIGJlIGhlbGQgd2hpbGUgZmx1c2hpbmcgdGhlIGRhdGEsIHNvIGFjcXVpcmUgYWZ0ZXIgd2UncmUgZG9uZQotICogd2l0aCB0aGF0LgorICogVGhpcyBpcyBjYWxsZWQgdG8gc3luYyB0aGUgaW5vZGUgYW5kIGl0cyBkYXRhIG91dCB0byBkaXNrLiAgV2UgbmVlZCB0byBob2xkCisgKiB0aGUgSS9PIGxvY2sgd2hpbGUgZmx1c2hpbmcgdGhlIGRhdGEsIGFuZCB0aGUgaW5vZGUgbG9jayB3aGlsZSBmbHVzaGluZyB0aGUKKyAqIGlub2RlLiAgVGhlIGlub2RlIGxvY2sgQ0FOTk9UIGJlIGhlbGQgd2hpbGUgZmx1c2hpbmcgdGhlIGRhdGEsIHNvIGFjcXVpcmUKKyAqIGFmdGVyIHdlJ3JlIGRvbmUgd2l0aCB0aGF0LgogICovCiBpbnQKIHhmc19mc3luYygKLQl4ZnNfaW5vZGVfdAkqaXAsCi0JaW50CQlmbGFnLAotCXhmc19vZmZfdAlzdGFydCwKLQl4ZnNfb2ZmX3QJc3RvcCkKKwl4ZnNfaW5vZGVfdAkqaXApCiB7CiAJeGZzX3RyYW5zX3QJKnRwOwogCWludAkJZXJyb3I7CkBAIC04NzUsMTAzICs4NzEsNzkgQEAKIAogCXhmc19pdHJhY2VfZW50cnkoaXApOwogCi0JQVNTRVJUKHN0YXJ0ID49IDAgJiYgc3RvcCA+PSAtMSk7Ci0KIAlpZiAoWEZTX0ZPUkNFRF9TSFVURE9XTihpcC0+aV9tb3VudCkpCiAJCXJldHVybiBYRlNfRVJST1IoRUlPKTsKIAotCWlmIChmbGFnICYgRlNZTkNfREFUQSkKLQkJZmlsZW1hcF9mZGF0YXdhaXQodm5fdG9faW5vZGUoWEZTX0lUT1YoaXApKS0+aV9tYXBwaW5nKTsKKwkvKiBjYXB0dXJlIHNpemUgdXBkYXRlcyBpbiBJL08gY29tcGxldGlvbiBiZWZvcmUgd3JpdGluZyB0aGUgaW5vZGUuICovCisJZXJyb3IgPSBmaWxlbWFwX2ZkYXRhd2FpdCh2bl90b19pbm9kZShYRlNfSVRPVihpcCkpLT5pX21hcHBpbmcpOworCWlmIChlcnJvcikKKwkJcmV0dXJuIFhGU19FUlJPUihlcnJvcik7CiAKIAkvKgotCSAqIFdlIGFsd2F5cyBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXF1aXJlZCBpbm9kZSBzdGF0ZQotCSAqIGlzIHNhZmUgb24gZGlzay4gIFRoZSB2bm9kZSBtaWdodCBiZSBjbGVhbiBidXQgYmVjYXVzZQotCSAqIG9mIGNvbW1pdHRlZCB0cmFuc2FjdGlvbnMgdGhhdCBoYXZlbid0IGhpdCB0aGUgZGlzayB5ZXQuCi0JICogTGlrZXdpc2UsIHRoZXJlIGNvdWxkIGJlIHVuZmx1c2hlZCBub24tdHJhbnNhY3Rpb25hbAotCSAqIGNoYW5nZXMgdG8gdGhlIGlub2RlIGNvcmUgdGhhdCBoYXZlIHRvIGdvIHRvIGRpc2suCisJICogV2UgYWx3YXlzIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIHJlcXVpcmVkIGlub2RlIHN0YXRlIGlzIHNhZmUgb24KKwkgKiBkaXNrLiAgVGhlIHZub2RlIG1pZ2h0IGJlIGNsZWFuIGJ1dCB3ZSBzdGlsbCBtaWdodCBuZWVkIHRvIGZvcmNlIHRoZQorCSAqIGxvZyBiZWNhdXNlIG9mIGNvbW1pdHRlZCB0cmFuc2FjdGlvbnMgdGhhdCBoYXZlbid0IGhpdCB0aGUgZGlzayB5ZXQuCisJICogTGlrZXdpc2UsIHRoZXJlIGNvdWxkIGJlIHVuZmx1c2hlZCBub24tdHJhbnNhY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZQorCSAqIGlub2RlIGNvcmUgdGhhdCBoYXZlIHRvIGdvIHRvIGRpc2sgYW5kIHRoaXMgcmVxdWlyZXMgdXMgdG8gaXNzdWUKKwkgKiBhIHN5bmNocm9ub3VzIHRyYW5zYWN0aW9uIHRvIGNhcHR1cmUgdGhlc2UgY2hhbmdlcyBjb3JyZWN0bHkuCiAJICoKLQkgKiBUaGUgZm9sbG93aW5nIGNvZGUgZGVwZW5kcyBvbiBvbmUgYXNzdW1wdGlvbjogIHRoYXQKLQkgKiBhbnkgdHJhbnNhY3Rpb24gdGhhdCBjaGFuZ2VzIGFuIGlub2RlIGxvZ3MgdGhlIGNvcmUKLQkgKiBiZWNhdXNlIGl0IGhhcyB0byBjaGFuZ2Ugc29tZSBmaWVsZCBpbiB0aGUgaW5vZGUgY29yZQotCSAqICh0eXBpY2FsbHkgbmV4dGVudHMgb3IgbmJsb2NrcykuICBUaGF0IGFzc3VtcHRpb24KLQkgKiBpbXBsaWVzIHRoYXQgYW55IHRyYW5zYWN0aW9ucyBhZ2FpbnN0IGFuIGlub2RlIHdpbGwKLQkgKiBjYXRjaCBhbnkgbm9uLXRyYW5zYWN0aW9uYWwgdXBkYXRlcy4gIElmIGlub2RlLWFsdGVyaW5nCi0JICogdHJhbnNhY3Rpb25zIGV4aXN0IHRoYXQgdmlvbGF0ZSB0aGlzIGFzc3VtcHRpb24sIHRoZQotCSAqIGNvZGUgYnJlYWtzLiAgUmlnaHQgbm93LCBpdCBmaWd1cmVzIHRoYXQgaWYgdGhlIGludm9sdmVkCi0JICogdXBkYXRlXyogZmllbGQgaXMgY2xlYXIgYW5kIHRoZSBpbm9kZSBpcyB1bnBpbm5lZCwgdGhlCi0JICogaW5vZGUgaXMgY2xlYW4uICBFaXRoZXIgaXQncyBiZWVuIGZsdXNoZWQgb3IgaXQncyBiZWVuCi0JICogY29tbWl0dGVkIGFuZCB0aGUgY29tbWl0IGhhcyBoaXQgdGhlIGRpc2sgdW5waW5uaW5nIHRoZSBpbm9kZS4KLQkgKiAoTm90ZSB0aGF0IHhmc19pbm9kZV9pdGVtX2Zvcm1hdCgpIGNhbGxlZCBhdCBjb21taXQgY2xlYXJzCi0JICogdGhlIHVwZGF0ZV8qIGZpZWxkcy4pCisJICogVGhpcyBjb2RlIHJlbGllcyBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGlmIHRoZSB1cGRhdGVfKiBmaWVsZHMKKwkgKiBvZiB0aGUgaW5vZGUgYXJlIGNsZWFyIGFuZCB0aGUgaW5vZGUgaXMgdW5waW5uZWQgdGhlbiBpdCBpcyBjbGVhbgorCSAqIGFuZCBubyBhY3Rpb24gaXMgcmVxdWlyZWQuCiAJICovCiAJeGZzX2lsb2NrKGlwLCBYRlNfSUxPQ0tfU0hBUkVEKTsKIAotCS8qIElmIHdlIGFyZSBmbHVzaGluZyBkYXRhIHRoZW4gd2UgY2FyZSBhYm91dCB1cGRhdGVfc2l6ZQotCSAqIGJlaW5nIHNldCwgb3RoZXJ3aXNlIHdlIGNhcmUgYWJvdXQgdXBkYXRlX2NvcmUKLQkgKi8KLQlpZiAoKGZsYWcgJiBGU1lOQ19EQVRBKSA/Ci0JCQkoaXAtPmlfdXBkYXRlX3NpemUgPT0gMCkgOgotCQkJKGlwLT5pX3VwZGF0ZV9jb3JlID09IDApKSB7CisJaWYgKCEoaXAtPmlfdXBkYXRlX3NpemUgfHwgaXAtPmlfdXBkYXRlX2NvcmUpKSB7CiAJCS8qCi0JCSAqIFRpbWVzdGFtcHMvc2l6ZSBoYXZlbid0IGNoYW5nZWQgc2luY2UgbGFzdCBpbm9kZQotCQkgKiBmbHVzaCBvciBpbm9kZSB0cmFuc2FjdGlvbiBjb21taXQuICBUaGF0IG1lYW5zCi0JCSAqIGVpdGhlciBub3RoaW5nIGdvdCB3cml0dGVuIG9yIGEgdHJhbnNhY3Rpb24KLQkJICogY29tbWl0dGVkIHdoaWNoIGNhdWdodCB0aGUgdXBkYXRlcy4JSWYgdGhlCi0JCSAqIGxhdHRlciBoYXBwZW5lZCBhbmQgdGhlIHRyYW5zYWN0aW9uIGhhc24ndAotCQkgKiBoaXQgdGhlIGRpc2sgeWV0LCB0aGUgaW5vZGUgd2lsbCBiZSBzdGlsbAotCQkgKiBiZSBwaW5uZWQuICBJZiBpdCBpcywgZm9yY2UgdGhlIGxvZy4KKwkJICogVGltZXN0YW1wcy9zaXplIGhhdmVuJ3QgY2hhbmdlZCBzaW5jZSBsYXN0IGlub2RlIGZsdXNoIG9yCisJCSAqIGlub2RlIHRyYW5zYWN0aW9uIGNvbW1pdC4gIFRoYXQgbWVhbnMgZWl0aGVyIG5vdGhpbmcgZ290CisJCSAqIHdyaXR0ZW4gb3IgYSB0cmFuc2FjdGlvbiBjb21taXR0ZWQgd2hpY2ggY2F1Z2h0IHRoZSB1cGRhdGVzLgorCQkgKiBJZiB0aGUgbGF0dGVyIGhhcHBlbmVkIGFuZCB0aGUgdHJhbnNhY3Rpb24gaGFzbid0IGhpdCB0aGUKKwkJICogZGlzayB5ZXQsIHRoZSBpbm9kZSB3aWxsIGJlIHN0aWxsIGJlIHBpbm5lZC4gIElmIGl0IGlzLAorCQkgKiBmb3JjZSB0aGUgbG9nLgogCQkgKi8KIAogCQl4ZnNfaXVubG9jayhpcCwgWEZTX0lMT0NLX1NIQVJFRCk7CiAKIAkJaWYgKHhmc19pcGluY291bnQoaXApKSB7Ci0JCQlfeGZzX2xvZ19mb3JjZShpcC0+aV9tb3VudCwgKHhmc19sc25fdCkwLAotCQkJCSAgICAgIFhGU19MT0dfRk9SQ0UgfAotCQkJCSAgICAgICgoZmxhZyAmIEZTWU5DX1dBSVQpCi0JCQkJICAgICAgID8gWEZTX0xPR19TWU5DIDogMCksCisJCQllcnJvciA9IF94ZnNfbG9nX2ZvcmNlKGlwLT5pX21vdW50LCAoeGZzX2xzbl90KTAsCisJCQkJICAgICAgWEZTX0xPR19GT1JDRSB8IFhGU19MT0dfU1lOQywKIAkJCQkgICAgICAmbG9nX2ZsdXNoZWQpOwogCQl9IGVsc2UgewogCQkJLyoKLQkJCSAqIElmIHRoZSBpbm9kZSBpcyBub3QgcGlubmVkIGFuZCBub3RoaW5nCi0JCQkgKiBoYXMgY2hhbmdlZCB3ZSBkb24ndCBuZWVkIHRvIGZsdXNoIHRoZQotCQkJICogY2FjaGUuCisJCQkgKiBJZiB0aGUgaW5vZGUgaXMgbm90IHBpbm5lZCBhbmQgbm90aGluZyBoYXMgY2hhbmdlZAorCQkJICogd2UgZG9uJ3QgbmVlZCB0byBmbHVzaCB0aGUgY2FjaGUuCiAJCQkgKi8KIAkJCWNoYW5nZWQgPSAwOwogCQl9Ci0JCWVycm9yID0gMDsKIAl9IGVsc2UJewogCQkvKgotCQkgKiBLaWNrIG9mZiBhIHRyYW5zYWN0aW9uIHRvIGxvZyB0aGUgaW5vZGUKLQkJICogY29yZSB0byBnZXQgdGhlIHVwZGF0ZXMuICBNYWtlIGl0Ci0JCSAqIHN5bmMgaWYgRlNZTkNfV0FJVCBpcyBwYXNzZWQgaW4gKHdoaWNoCi0JCSAqIGlzIGRvbmUgYnkgZXZlcnlib2R5IGJ1dCBzcGVjZnMpLiAgVGhlCi0JCSAqIHN5bmMgdHJhbnNhY3Rpb24gd2lsbCBhbHNvIGZvcmNlIHRoZSBsb2cuCisJCSAqIEtpY2sgb2ZmIGEgdHJhbnNhY3Rpb24gdG8gbG9nIHRoZSBpbm9kZSBjb3JlIHRvIGdldCB0aGUKKwkJICogdXBkYXRlcy4gIFRoZSBzeW5jIHRyYW5zYWN0aW9uIHdpbGwgYWxzbyBmb3JjZSB0aGUgbG9nLgogCQkgKi8KIAkJeGZzX2l1bmxvY2soaXAsIFhGU19JTE9DS19TSEFSRUQpOwogCQl0cCA9IHhmc190cmFuc19hbGxvYyhpcC0+aV9tb3VudCwgWEZTX1RSQU5TX0ZTWU5DX1RTKTsKLQkJaWYgKChlcnJvciA9IHhmc190cmFuc19yZXNlcnZlKHRwLCAwLAotCQkJCVhGU19GU1lOQ19UU19MT0dfUkVTKGlwLT5pX21vdW50KSwKLQkJCQkwLCAwLCAwKSkpICB7CisJCWVycm9yID0geGZzX3RyYW5zX3Jlc2VydmUodHAsIDAsCisJCQkJWEZTX0ZTWU5DX1RTX0xPR19SRVMoaXAtPmlfbW91bnQpLCAwLCAwLCAwKTsKKwkJaWYgKGVycm9yKSB7CiAJCQl4ZnNfdHJhbnNfY2FuY2VsKHRwLCAwKTsKIAkJCXJldHVybiBlcnJvcjsKIAkJfQogCQl4ZnNfaWxvY2soaXAsIFhGU19JTE9DS19FWENMKTsKIAogCQkvKgotCQkgKiBOb3RlIC0gaXQncyBwb3NzaWJsZSB0aGF0IHdlIG1pZ2h0IGhhdmUgcHVzaGVkCi0JCSAqIG91cnNlbHZlcyBvdXQgb2YgdGhlIHdheSBkdXJpbmcgdHJhbnNfcmVzZXJ2ZQotCQkgKiB3aGljaCB3b3VsZCBmbHVzaCB0aGUgaW5vZGUuCSBCdXQgdGhlcmUncyBubwotCQkgKiBndWFyYW50ZWUgdGhhdCB0aGUgaW5vZGUgYnVmZmVyIGhhcyBhY3R1YWxseQotCQkgKiBnb25lIG91dCB5ZXQgKGl0J3MgZGVsd3JpKS4JUGx1cyB0aGUgYnVmZmVyCi0JCSAqIGNvdWxkIGJlIHBpbm5lZCBhbnl3YXkgaWYgaXQncyBwYXJ0IG9mIGFuCi0JCSAqIGlub2RlIGluIGFub3RoZXIgcmVjZW50IHRyYW5zYWN0aW9uLgkgU28gd2UKLQkJICogcGxheSBpdCBzYWZlIGFuZCBmaXJlIG9mZiB0aGUgdHJhbnNhY3Rpb24gYW55d2F5LgorCQkgKiBOb3RlIC0gaXQncyBwb3NzaWJsZSB0aGF0IHdlIG1pZ2h0IGhhdmUgcHVzaGVkIG91cnNlbHZlcyBvdXQKKwkJICogb2YgdGhlIHdheSBkdXJpbmcgdHJhbnNfcmVzZXJ2ZSB3aGljaCB3b3VsZCBmbHVzaCB0aGUgaW5vZGUuCisJCSAqIEJ1dCB0aGVyZSdzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBpbm9kZSBidWZmZXIgaGFzIGFjdHVhbGx5CisJCSAqIGdvbmUgb3V0IHlldCAoaXQncyBkZWx3cmkpLglQbHVzIHRoZSBidWZmZXIgY291bGQgYmUgcGlubmVkCisJCSAqIGFueXdheSBpZiBpdCdzIHBhcnQgb2YgYW4gaW5vZGUgaW4gYW5vdGhlciByZWNlbnQKKwkJICogdHJhbnNhY3Rpb24uCSBTbyB3ZSBwbGF5IGl0IHNhZmUgYW5kIGZpcmUgb2ZmIHRoZQorCQkgKiB0cmFuc2FjdGlvbiBhbnl3YXkuCiAJCSAqLwogCQl4ZnNfdHJhbnNfaWpvaW4odHAsIGlwLCBYRlNfSUxPQ0tfRVhDTCk7CiAJCXhmc190cmFuc19paG9sZCh0cCwgaXApOwogCQl4ZnNfdHJhbnNfbG9nX2lub2RlKHRwLCBpcCwgWEZTX0lMT0dfQ09SRSk7Ci0JCWlmIChmbGFnICYgRlNZTkNfV0FJVCkKLQkJCXhmc190cmFuc19zZXRfc3luYyh0cCk7CisJCXhmc190cmFuc19zZXRfc3luYyh0cCk7CiAJCWVycm9yID0gX3hmc190cmFuc19jb21taXQodHAsIDAsICZsb2dfZmx1c2hlZCk7CiAKIAkJeGZzX2l1bmxvY2soaXAsIFhGU19JTE9DS19FWENMKTsKZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfdm5vZGVvcHMuaCBiL2ZzL3hmcy94ZnNfdm5vZGVvcHMuaAppbmRleCA4YWJlOGYxLi41NzMzNWJhIDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX3Zub2Rlb3BzLmgKKysrIGIvZnMveGZzL3hmc192bm9kZW9wcy5oCkBAIC0xOCw4ICsxOCw3IEBACiBpbnQgeGZzX3NldGF0dHIoc3RydWN0IHhmc19pbm9kZSAqaXAsIHN0cnVjdCBiaHZfdmF0dHIgKnZhcCwgaW50IGZsYWdzLAogCQlzdHJ1Y3QgY3JlZCAqY3JlZHApOwogaW50IHhmc19yZWFkbGluayhzdHJ1Y3QgeGZzX2lub2RlICppcCwgY2hhciAqbGluayk7Ci1pbnQgeGZzX2ZzeW5jKHN0cnVjdCB4ZnNfaW5vZGUgKmlwLCBpbnQgZmxhZywgeGZzX29mZl90IHN0YXJ0LAotCQl4ZnNfb2ZmX3Qgc3RvcCk7CitpbnQgeGZzX2ZzeW5jKHN0cnVjdCB4ZnNfaW5vZGUgKmlwKTsKIGludCB4ZnNfcmVsZWFzZShzdHJ1Y3QgeGZzX2lub2RlICppcCk7CiBpbnQgeGZzX2luYWN0aXZlKHN0cnVjdCB4ZnNfaW5vZGUgKmlwKTsKIGludCB4ZnNfbG9va3VwKHN0cnVjdCB4ZnNfaW5vZGUgKmRwLCBzdHJ1Y3QgeGZzX25hbWUgKm5hbWUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL0tidWlsZCBiL2luY2x1ZGUvS2J1aWxkCmluZGV4IGI1MjI4ODcuLmJkY2ExNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvS2J1aWxkCisrKyBiL2luY2x1ZGUvS2J1aWxkCkBAIC00LDUgKzQsNiBAQAogaGVhZGVyLXkgKz0gbXRkLwogaGVhZGVyLXkgKz0gcmRtYS8KIGhlYWRlci15ICs9IHZpZGVvLworaGVhZGVyLXkgKz0gZHJtLwogCiBoZWFkZXIteSArPSBhc20tJChBUkNIKS8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYWNwaS9wcm9jZXNzb3IuaCBiL2luY2x1ZGUvYWNwaS9wcm9jZXNzb3IuaAppbmRleCAwNjQ4MGJjLi4wNmViYjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FjcGkvcHJvY2Vzc29yLmgKKysrIGIvaW5jbHVkZS9hY3BpL3Byb2Nlc3Nvci5oCkBAIC0zMTksNiArMzE5LDcgQEAKICNlbmRpZgkJCQkvKiBDT05GSUdfQ1BVX0ZSRVEgKi8KIAogLyogaW4gcHJvY2Vzc29yX3Rocm90dGxpbmcuYyAqLworaW50IGFjcGlfcHJvY2Vzc29yX3RzdGF0ZV9oYXNfY2hhbmdlZChzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByKTsKIGludCBhY3BpX3Byb2Nlc3Nvcl9nZXRfdGhyb3R0bGluZ19pbmZvKHN0cnVjdCBhY3BpX3Byb2Nlc3NvciAqcHIpOwogZXh0ZXJuIGludCBhY3BpX3Byb2Nlc3Nvcl9zZXRfdGhyb3R0bGluZyhzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByLCBpbnQgc3RhdGUpOwogZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgYWNwaV9wcm9jZXNzb3JfdGhyb3R0bGluZ19mb3BzOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV9tY3BjaWEuaCBiL2luY2x1ZGUvYXNtLWFscGhhL2NvcmVfbWNwY2lhLmgKaW5kZXggNTI1YjRmNi4uYWNmNTViNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV9tY3BjaWEuaAorKysgYi9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX21jcGNpYS5oCkBAIC0yNjEsNyArMjYxLDcgQEAKIAl9CiAjZW5kaWYKIAotc3RhdGljIGlubGluZSBpbnQgX19tY3BjaWFfaXNfbW1pbyh1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIGludCBfX21jcGNpYV9pc19tbWlvKHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlyZXR1cm4gKGFkZHIgJiAweDgwMDAwMDAwVUwpID09IDA7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX3QyLmggYi9pbmNsdWRlL2FzbS1hbHBoYS9jb3JlX3QyLmgKaW5kZXggOTBlNmI1ZC4uNDZiZmZmNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvY29yZV90Mi5oCisrKyBiL2luY2x1ZGUvYXNtLWFscGhhL2NvcmVfdDIuaApAQCAtMzU2LDEzICszNTYsMTMgQEAKICNkZWZpbmUgdmlwCXZvbGF0aWxlIGludCAqCiAjZGVmaW5lIHZ1aXAJdm9sYXRpbGUgdW5zaWduZWQgaW50ICoKIAotc3RhdGljIGlubGluZSB1OCB0Ml9pbmIodW5zaWduZWQgbG9uZyBhZGRyKQorZXh0ZXJuIGlubGluZSB1OCB0Ml9pbmIodW5zaWduZWQgbG9uZyBhZGRyKQogewogCWxvbmcgcmVzdWx0ID0gKih2aXApICgoYWRkciA8PCA1KSArIFQyX0lPICsgMHgwMCk7CiAJcmV0dXJuIF9fa2VybmVsX2V4dGJsKHJlc3VsdCwgYWRkciAmIDMpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdDJfb3V0Yih1OCBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIHZvaWQgdDJfb3V0Yih1OCBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJdW5zaWduZWQgbG9uZyB3OwogCkBAIC0zNzEsMTMgKzM3MSwxMyBAQAogCW1iKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdTE2IHQyX2ludyh1bnNpZ25lZCBsb25nIGFkZHIpCitleHRlcm4gaW5saW5lIHUxNiB0Ml9pbncodW5zaWduZWQgbG9uZyBhZGRyKQogewogCWxvbmcgcmVzdWx0ID0gKih2aXApICgoYWRkciA8PCA1KSArIFQyX0lPICsgMHgwOCk7CiAJcmV0dXJuIF9fa2VybmVsX2V4dHdsKHJlc3VsdCwgYWRkciAmIDMpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdDJfb3V0dyh1MTYgYiwgdW5zaWduZWQgbG9uZyBhZGRyKQorZXh0ZXJuIGlubGluZSB2b2lkIHQyX291dHcodTE2IGIsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAl1bnNpZ25lZCBsb25nIHc7CiAKQEAgLTM4NiwxMiArMzg2LDEyIEBACiAJbWIoKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgdDJfaW5sKHVuc2lnbmVkIGxvbmcgYWRkcikKK2V4dGVybiBpbmxpbmUgdTMyIHQyX2lubCh1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJcmV0dXJuICoodnVpcCkgKChhZGRyIDw8IDUpICsgVDJfSU8gKyAweDE4KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHQyX291dGwodTMyIGIsIHVuc2lnbmVkIGxvbmcgYWRkcikKK2V4dGVybiBpbmxpbmUgdm9pZCB0Ml9vdXRsKHUzMiBiLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJKih2dWlwKSAoKGFkZHIgPDwgNSkgKyBUMl9JTyArIDB4MTgpID0gYjsKIAltYigpOwpAQCAtNDM1LDcgKzQzNSw3IEBACiAJc2V0X2hhZShtc2IpOyBcCiB9CiAKLXN0YXRpYyBERUZJTkVfU1BJTkxPQ0sodDJfaGFlX2xvY2spOworZXh0ZXJuIHNwaW5sb2NrX3QgdDJfaGFlX2xvY2s7CiAKIC8qCiAgKiBOT1RFOiB0YWtlIFQyX0RFTlNFX01FTSBvZmYgaW4gZWFjaCByZWFkWC93cml0ZVggcm91dGluZSwgc2luY2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL2lvLmggYi9pbmNsdWRlL2FzbS1hbHBoYS9pby5oCmluZGV4IDM4ZjE4Y2YuLmU5NzFhYjAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL2lvLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvaW8uaApAQCAtMzUsNyArMzUsNyBAQAogICogcmVnaXN0ZXIgbm90IGJlaW5nIHVwLXRvLWRhdGUgd2l0aCByZXNwZWN0IHRvIHRoZSBoYXJkd2FyZQogICogdmFsdWUuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9oYWUodW5zaWduZWQgbG9uZyBuZXdfaGFlKQorZXh0ZXJuIGlubGluZSB2b2lkIF9fc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CkBAIC00OSw3ICs0OSw3IEBACiAJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCitleHRlcm4gaW5saW5lIHZvaWQgc2V0X2hhZSh1bnNpZ25lZCBsb25nIG5ld19oYWUpCiB7CiAJaWYgKG5ld19oYWUgIT0gYWxwaGFfbXYuaGFlX2NhY2hlKQogCQlfX3NldF9oYWUobmV3X2hhZSk7CkBAIC0xNzYsNyArMTc2LDcgQEAKICN1bmRlZiBSRU1BUDEKICN1bmRlZiBSRU1BUDIKIAotc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKmdlbmVyaWNfaW9wb3J0bWFwKHVuc2lnbmVkIGxvbmcgYSkKK2V4dGVybiBpbmxpbmUgdm9pZCBfX2lvbWVtICpnZW5lcmljX2lvcG9ydG1hcCh1bnNpZ25lZCBsb25nIGEpCiB7CiAJcmV0dXJuIGFscGhhX212Lm12X2lvcG9ydG1hcChhKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL21tdV9jb250ZXh0LmggYi9pbmNsdWRlL2FzbS1hbHBoYS9tbXVfY29udGV4dC5oCmluZGV4IDZhNWJlMWYuLjg2YzA4YTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL21tdV9jb250ZXh0LmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvbW11X2NvbnRleHQuaApAQCAtMjMsNyArMjMsNyBAQAogI2VuZGlmCiAKIAotZXh0ZXJuIGlubGluZSB1bnNpZ25lZCBsb25nCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKIF9fcmVsb2FkX3RocmVhZChzdHJ1Y3QgcGNiX3N0cnVjdCAqcGNiKQogewogCXJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgYTAgX19hc21fXygiJDE2Iik7CkBAIC0xMTQsNyArMTE0LDcgQEAKICNkZWZpbmUgX19NTVVfRVhURVJOX0lOTElORQogI2VuZGlmCiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZworZXh0ZXJuIGlubGluZSB1bnNpZ25lZCBsb25nCiBfX2dldF9uZXdfbW1fY29udGV4dChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgbG9uZyBjcHUpCiB7CiAJdW5zaWduZWQgbG9uZyBhc24gPSBjcHVfbGFzdF9hc24oY3B1KTsKQEAgLTIyNiw3ICsyMjYsNyBAQAogIyBlbmRpZgogI2VuZGlmCiAKLWV4dGVybiBpbmxpbmUgaW50CitzdGF0aWMgaW5saW5lIGludAogaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJaW50IGk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hbHBoYS9wZXJjcHUuaCBiL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCmluZGV4IDQ4MzQ4ZmUuLjM0OTVlOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCisrKyBiL2luY2x1ZGUvYXNtLWFscGhhL3BlcmNwdS5oCkBAIC0xLDYgKzEsNzggQEAKICNpZm5kZWYgX19BTFBIQV9QRVJDUFVfSAogI2RlZmluZSBfX0FMUEhBX1BFUkNQVV9ICisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+CiAKLSNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZXJjcHUuaD4KKy8qCisgKiBEZXRlcm1pbmUgdGhlIHJlYWwgdmFyaWFibGUgbmFtZSBmcm9tIHRoZSBuYW1lIHZpc2libGUgaW4gdGhlCisgKiBrZXJuZWwgc291cmNlcy4KKyAqLworI2RlZmluZSBwZXJfY3B1X3Zhcih2YXIpIHBlcl9jcHVfXyMjdmFyCisKKyNpZmRlZiBDT05GSUdfU01QCisKKy8qCisgKiBwZXJfY3B1X29mZnNldCgpIGlzIHRoZSBvZmZzZXQgdGhhdCBoYXMgdG8gYmUgYWRkZWQgdG8gYQorICogcGVyY3B1IHZhcmlhYmxlIHRvIGdldCB0byB0aGUgaW5zdGFuY2UgZm9yIGEgY2VydGFpbiBwcm9jZXNzb3IuCisgKi8KK2V4dGVybiB1bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZzZXRbTlJfQ1BVU107CisKKyNkZWZpbmUgcGVyX2NwdV9vZmZzZXQoeCkgKF9fcGVyX2NwdV9vZmZzZXRbeF0pCisKKyNkZWZpbmUgX19teV9jcHVfb2Zmc2V0IHBlcl9jcHVfb2Zmc2V0KHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpCisjaWZkZWYgQ09ORklHX0RFQlVHX1BSRUVNUFQKKyNkZWZpbmUgbXlfY3B1X29mZnNldCBwZXJfY3B1X29mZnNldChzbXBfcHJvY2Vzc29yX2lkKCkpCisjZWxzZQorI2RlZmluZSBteV9jcHVfb2Zmc2V0IF9fbXlfY3B1X29mZnNldAorI2VuZGlmCisKKyNpZm5kZWYgTU9EVUxFCisjZGVmaW5lIFNISUZUX1BFUkNQVV9QVFIodmFyLCBvZmZzZXQpIFJFTE9DX0hJREUoJnBlcl9jcHVfdmFyKHZhciksIChvZmZzZXQpKQorI2RlZmluZSBQRVJfQ1BVX0FUVFJJQlVURVMKKyNlbHNlCisvKgorICogVG8gY2FsY3VsYXRlIGFkZHJlc3NlcyBvZiBsb2NhbGx5IGRlZmluZWQgdmFyaWFibGVzLCBHQ0MgdXNlcyAzMi1iaXQKKyAqIGRpc3BsYWNlbWVudCBmcm9tIHRoZSBHUC4gV2hpY2ggZG9lc24ndCB3b3JrIGZvciBwZXIgY3B1IHZhcmlhYmxlcyBpbgorICogbW9kdWxlcywgYXMgYW4gb2Zmc2V0IHRvIHRoZSBrZXJuZWwgcGVyIGNwdSBhcmVhIGlzIHdheSBhYm92ZSA0Ry4KKyAqCisgKiBUaGlzIGZvcmNlcyBhbGxvY2F0aW9uIG9mIGEgR09UIGVudHJ5IGZvciBwZXIgY3B1IHZhcmlhYmxlIHVzaW5nCisgKiBsZHEgaW5zdHJ1Y3Rpb24gd2l0aCBhICdsaXRlcmFsJyByZWxvY2F0aW9uLgorICovCisjZGVmaW5lIFNISUZUX1BFUkNQVV9QVFIodmFyLCBvZmZzZXQpICh7CQlcCisJZXh0ZXJuIGludCBzaW1wbGVfaWRlbnRpZmllcl8jI3Zhcih2b2lkKTsJXAorCXVuc2lnbmVkIGxvbmcgX19wdHIsIHRtcF9ncDsJCQlcCisJYXNtICggICJicgklMSwgMWYJCSAgCSAgICAgIFxuXAorCTE6CWxkZ3AJJTEsIDAoJTEpCSAgICAJICAgICAgXG5cCisJCWxkcSAlMCwgcGVyX2NwdV9fIiAjdmFyIiglMSlcdCFsaXRlcmFsIgkJXAorCQk6ICI9JnIiKF9fcHRyKSwgIj0mciIodG1wX2dwKSk7CQlcCisJKHR5cGVvZigmcGVyX2NwdV92YXIodmFyKSkpKF9fcHRyICsgKG9mZnNldCkpOyB9KQorCisjZGVmaW5lIFBFUl9DUFVfQVRUUklCVVRFUwlfX3VzZWQKKworI2VuZGlmIC8qIE1PRFVMRSAqLworCisvKgorICogQSBwZXJjcHUgdmFyaWFibGUgbWF5IHBvaW50IHRvIGEgZGlzY2FyZGVkIHJlZ2lvbnMuIFRoZSBmb2xsb3dpbmcgYXJlCisgKiBlc3RhYmxpc2hlZCB3YXlzIHRvIHByb2R1Y2UgYSB1c2FibGUgcG9pbnRlciBmcm9tIHRoZSBwZXJjcHUgdmFyaWFibGUKKyAqIG9mZnNldC4KKyAqLworI2RlZmluZSBwZXJfY3B1KHZhciwgY3B1KSBcCisJKCpTSElGVF9QRVJDUFVfUFRSKHZhciwgcGVyX2NwdV9vZmZzZXQoY3B1KSkpCisjZGVmaW5lIF9fZ2V0X2NwdV92YXIodmFyKSBcCisJKCpTSElGVF9QRVJDUFVfUFRSKHZhciwgbXlfY3B1X29mZnNldCkpCisjZGVmaW5lIF9fcmF3X2dldF9jcHVfdmFyKHZhcikgXAorCSgqU0hJRlRfUEVSQ1BVX1BUUih2YXIsIF9fbXlfY3B1X29mZnNldCkpCisKKyNlbHNlIC8qICEgU01QICovCisKKyNkZWZpbmUgcGVyX2NwdSh2YXIsIGNwdSkJCSgqKCh2b2lkKShjcHUpLCAmcGVyX2NwdV92YXIodmFyKSkpCisjZGVmaW5lIF9fZ2V0X2NwdV92YXIodmFyKQkJcGVyX2NwdV92YXIodmFyKQorI2RlZmluZSBfX3Jhd19nZXRfY3B1X3Zhcih2YXIpCQlwZXJfY3B1X3Zhcih2YXIpCisKKyNkZWZpbmUgUEVSX0NQVV9BVFRSSUJVVEVTCisKKyNlbmRpZiAvKiBTTVAgKi8KKworI2RlZmluZSBERUNMQVJFX1BFUl9DUFUodHlwZSwgbmFtZSkgZXh0ZXJuIF9fdHlwZW9mX18odHlwZSkgcGVyX2NwdV92YXIobmFtZSkKIAogI2VuZGlmIC8qIF9fQUxQSEFfUEVSQ1BVX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKaW5kZXggZWQyMjFkNi4uYWZlMjBmYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgKQEAgLTE4NCw3ICsxODQsNyBAQAogICAgX19hbWFzazsgfSkKIAogI2RlZmluZSBfX0NBTExfUEFMX1IwKE5BTUUsIFRZUEUpCQkJCVwKLXN0YXRpYyBpbmxpbmUgVFlQRSBOQU1FKHZvaWQpCQkJCQlcCitleHRlcm4gaW5saW5lIFRZUEUgTkFNRSh2b2lkKQkJCQkJXAogewkJCQkJCQkJXAogCXJlZ2lzdGVyIFRZUEUgX19yMCBfX2FzbV9fKCIkMCIpOwkJCVwKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygJCQkJCVwKQEAgLTE5Niw3ICsxOTYsNyBAQAogfQogCiAjZGVmaW5lIF9fQ0FMTF9QQUxfVzEoTkFNRSwgVFlQRTApCQkJCVwKLXN0YXRpYyBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzApCQkJCVwKK2V4dGVybiBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzApCQkJCVwKIHsJCQkJCQkJCVwKIAlyZWdpc3RlciBUWVBFMCBfX3IxNiBfX2FzbV9fKCIkMTYiKSA9IGFyZzA7CQlcCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oCQkJCQlcCkBAIC0yMDcsNyArMjA3LDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1cyKE5BTUUsIFRZUEUwLCBUWVBFMSkJCQlcCi1zdGF0aWMgaW5saW5lIHZvaWQgTkFNRShUWVBFMCBhcmcwLCBUWVBFMSBhcmcxKQkJCVwKK2V4dGVybiBpbmxpbmUgdm9pZCBOQU1FKFRZUEUwIGFyZzAsIFRZUEUxIGFyZzEpCQkJXAogewkJCQkJCQkJXAogCXJlZ2lzdGVyIFRZUEUwIF9fcjE2IF9fYXNtX18oIiQxNiIpID0gYXJnMDsJCVwKIAlyZWdpc3RlciBUWVBFMSBfX3IxNyBfX2FzbV9fKCIkMTciKSA9IGFyZzE7CQlcCkBAIC0yMTksNyArMjE5LDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1JXMShOQU1FLCBSVFlQRSwgVFlQRTApCQkJXAotc3RhdGljIGlubGluZSBSVFlQRSBOQU1FKFRZUEUwIGFyZzApCQkJCVwKK2V4dGVybiBpbmxpbmUgUlRZUEUgTkFNRShUWVBFMCBhcmcwKQkJCQlcCiB7CQkJCQkJCQlcCiAJcmVnaXN0ZXIgUlRZUEUgX19yMCBfX2FzbV9fKCIkMCIpOwkJCVwKIAlyZWdpc3RlciBUWVBFMCBfX3IxNiBfX2FzbV9fKCIkMTYiKSA9IGFyZzA7CQlcCkBAIC0yMzIsNyArMjMyLDcgQEAKIH0KIAogI2RlZmluZSBfX0NBTExfUEFMX1JXMihOQU1FLCBSVFlQRSwgVFlQRTAsIFRZUEUxKQkJXAotc3RhdGljIGlubGluZSBSVFlQRSBOQU1FKFRZUEUwIGFyZzAsIFRZUEUxIGFyZzEpCQlcCitleHRlcm4gaW5saW5lIFJUWVBFIE5BTUUoVFlQRTAgYXJnMCwgVFlQRTEgYXJnMSkJCVwKIHsJCQkJCQkJCVwKIAlyZWdpc3RlciBSVFlQRSBfX3IwIF9fYXNtX18oIiQwIik7CQkJXAogCXJlZ2lzdGVyIFRZUEUwIF9fcjE2IF9fYXNtX18oIiQxNiIpID0gYXJnMDsJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFscGhhL3ZnYS5oIGIvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKaW5kZXggZThkZjFlNy4uYzAwMTA2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKKysrIGIvaW5jbHVkZS9hc20tYWxwaGEvdmdhLmgKQEAgLTEzLDcgKzEzLDcgQEAKICNkZWZpbmUgVlRfQlVGX0hBVkVfTUVNU0VUVwogI2RlZmluZSBWVF9CVUZfSEFWRV9NRU1DUFlXCiAKLWV4dGVybiBpbmxpbmUgdm9pZCBzY3Jfd3JpdGV3KHUxNiB2YWwsIHZvbGF0aWxlIHUxNiAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY3Jfd3JpdGV3KHUxNiB2YWwsIHZvbGF0aWxlIHUxNiAqYWRkcikKIHsKIAlpZiAoX19pc19pb2FkZHIoYWRkcikpCiAJCV9fcmF3X3dyaXRldyh2YWwsICh2b2xhdGlsZSB1MTYgX19pb21lbSAqKSBhZGRyKTsKQEAgLTIxLDcgKzIxLDcgQEAKIAkJKmFkZHIgPSB2YWw7CiB9CiAKLWV4dGVybiBpbmxpbmUgdTE2IHNjcl9yZWFkdyh2b2xhdGlsZSBjb25zdCB1MTYgKmFkZHIpCitzdGF0aWMgaW5saW5lIHUxNiBzY3JfcmVhZHcodm9sYXRpbGUgY29uc3QgdTE2ICphZGRyKQogewogCWlmIChfX2lzX2lvYWRkcihhZGRyKSkKIAkJcmV0dXJuIF9fcmF3X3JlYWR3KCh2b2xhdGlsZSBjb25zdCB1MTYgX19pb21lbSAqKSBhZGRyKTsKQEAgLTI5LDcgKzI5LDcgQEAKIAkJcmV0dXJuICphZGRyOwogfQogCi1leHRlcm4gaW5saW5lIHZvaWQgc2NyX21lbXNldHcodTE2ICpzLCB1MTYgYywgdW5zaWduZWQgaW50IGNvdW50KQorc3RhdGljIGlubGluZSB2b2lkIHNjcl9tZW1zZXR3KHUxNiAqcywgdTE2IGMsIHVuc2lnbmVkIGludCBjb3VudCkKIHsKIAlpZiAoX19pc19pb2FkZHIocykpCiAJCW1lbXNldHdfaW8oKHUxNiBfX2lvbWVtICopIHMsIGMsIGNvdW50KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MV9wbWMuaAppbmRleCBjMmIxM2MyLi4yMDAxZTgxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFfcG1jLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxX3BtYy5oCkBAIC0zOSwxMCArMzksMTQgQEAKICNkZWZpbmUJQVQ5MV9QTUNfUENTUgkJKEFUOTFfUE1DICsgMHgxOCkJLyogUGVyaXBoZXJhbCBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KIAogI2RlZmluZQlBVDkxX0NLR1JfVUNLUgkJKEFUOTFfUE1DICsgMHgxQykJLyogVVRNSSBDbG9jayBSZWdpc3RlciBbU0FNOVJMLCBDQVA5XSAqLworI2RlZmluZQkJQVQ5MV9QTUNfVVBMTEVOCQkoMSAgIDw8IDE2KQkJLyogVVRNSSBQTEwgRW5hYmxlICovCisjZGVmaW5lCQlBVDkxX1BNQ19VUExMQ09VTlQJKDB4ZiA8PCAyMCkJCS8qIFVUTUkgUExMIFN0YXJ0LXVwIFRpbWUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNFTgkJKDEgICA8PCAyNCkJCS8qIFVUTUkgQklBUyBFbmFibGUgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0JJQVNDT1VOVAkoMHhmIDw8IDI4KQkJLyogVVRNSSBQTEwgU3RhcnQtdXAgVGltZSAqLwogCiAjZGVmaW5lCUFUOTFfQ0tHUl9NT1IJCShBVDkxX1BNQyArIDB4MjApCS8qIE1haW4gT3NjaWxsYXRvciBSZWdpc3RlciBbbm90IG9uIFNBTTlSTF0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX01PU0NFTgkJKDEgICAgPDwgMCkJCS8qIE1haW4gT3NjaWxsYXRvciBFbmFibGUgKi8KLSNkZWZpbmUJCUFUOTFfUE1DX09TQ0JZUEFTUwkoMSAgICA8PCAxKQkJLyogT3NjaWxsYXRvciBCeXBhc3MgW0FUOTFTQU05MjZ4IG9ubHldICovCisjZGVmaW5lCQlBVDkxX1BNQ19PU0NCWVBBU1MJKDEgICAgPDwgMSkJCS8qIE9zY2lsbGF0b3IgQnlwYXNzIFtTQU05eCwgQ0FQOV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX09TQ09VTlQJKDB4ZmYgPDwgOCkJCS8qIE1haW4gT3NjaWxsYXRvciBTdGFydC11cCBUaW1lICovCiAKICNkZWZpbmUJQVQ5MV9DS0dSX01DRlIJCShBVDkxX1BNQyArIDB4MjQpCS8qIE1haW4gQ2xvY2sgRnJlcXVlbmN5IFJlZ2lzdGVyICovCkBAIC05Nyw2ICsxMDEsNyBAQAogI2RlZmluZQkJQVQ5MV9QTUNfTE9DS0EJCSgxIDw8ICAxKQkJLyogUExMQSBMb2NrICovCiAjZGVmaW5lCQlBVDkxX1BNQ19MT0NLQgkJKDEgPDwgIDIpCQkvKiBQTExCIExvY2sgKi8KICNkZWZpbmUJCUFUOTFfUE1DX01DS1JEWQkJKDEgPDwgIDMpCQkvKiBNYXN0ZXIgQ2xvY2sgKi8KKyNkZWZpbmUJCUFUOTFfUE1DX0xPQ0tVCQkoMSA8PCAgNikJCS8qIFVQTEwgTG9jayBbQVQ5MUNBUDkgb25seV0gKi8KICNkZWZpbmUJCUFUOTFfUE1DX1BDSzBSRFkJKDEgPDwgIDgpCQkvKiBQcm9ncmFtbWFibGUgQ2xvY2sgMCAqLwogI2RlZmluZQkJQVQ5MV9QTUNfUENLMVJEWQkoMSA8PCAgOSkJCS8qIFByb2dyYW1tYWJsZSBDbG9jayAxICovCiAjZGVmaW5lCQlBVDkxX1BNQ19QQ0syUkRZCSgxIDw8IDEwKQkJLyogUHJvZ3JhbW1hYmxlIENsb2NrIDIgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDkuaAppbmRleCBiYWM4M2FkLi42ZjE0ZDkwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOS5oCkBAIC0xMTgsNyArMTE4LDcgQEAKICNkZWZpbmUgQVQ5MUNBUDlfUk9NX1NJWkUJKDMyICogU1pfMUspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFDQVA5X0xDRENfQkFTRQkweDAwNTAwMDAwCS8qIExDRCBDb250cm9sbGVyICovCi0jZGVmaW5lIEFUOTFDQVA5X1VEUEhTX0JBU0UJMHgwMDYwMDAwMAkvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgUG9ydCAqLworI2RlZmluZSBBVDkxQ0FQOV9VRFBIU19GSUZPCTB4MDA2MDAwMDAJLyogVVNCIEhpZ2ggU3BlZWQgRGV2aWNlIFBvcnQgKi8KICNkZWZpbmUgQVQ5MUNBUDlfVUhQX0JBU0UJMHgwMDcwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNkZWZpbmUgQ09ORklHX0RSQU1fQkFTRQlBVDkxX0NISVBTRUxFQ1RfNgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MWNhcDlfbWF0cml4LmgKaW5kZXggYTY0MTY4Ni4uZGRiZDQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxY2FwOV9tYXRyaXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFjYXA5X21hdHJpeC5oCkBAIC0xMDYsNiArMTA2LDExIEBACiAjZGVmaW5lIEFUOTFfTVBCUzBfU0ZSCQkoQVQ5MV9NQVRSSVggKyAweDExNCkJLyogTVBCbG9jayBTbGF2ZSAwIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXIgKi8KICNkZWZpbmUgQVQ5MV9NUEJTMV9TRlIJCShBVDkxX01BVFJJWCArIDB4MTFDKQkvKiBNUEJsb2NrIFNsYXZlIDEgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlciAqLwogCisjZGVmaW5lIEFUOTFfTUFUUklYX1VEUEhTCShBVDkxX01BVFJJWCArIDB4MTE4KQkvKiBVU0JIUyBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVyIFtBVDkxQ0FQOSBvbmx5XSAqLworI2RlZmluZQkJQVQ5MV9NQVRSSVhfU0VMRUNUX1VEUEhTCSgwIDw8IDMxKQkvKiBzZWxlY3QgSGlnaCBTcGVlZCBVRFAgKi8KKyNkZWZpbmUJCUFUOTFfTUFUUklYX1NFTEVDVF9VRFAJCSgxIDw8IDMxKQkvKiBzZWxlY3Qgc3RhbmRhcmQgVURQICovCisjZGVmaW5lCQlBVDkxX01BVFJJWF9VRFBIU19CWVBBU1NfTE9DSwkoMSA8PCAzMCkJLyogYnlwYXNzIGxvY2sgYml0ICovCisKICNkZWZpbmUgQVQ5MV9NQVRSSVhfRUJJQ1NBCShBVDkxX01BVFJJWCArIDB4MTIwKQkvKiBFQkkgQ2hpcCBTZWxlY3QgQXNzaWdubWVudCBSZWdpc3RlciAqLwogI2RlZmluZQkJQVQ5MV9NQVRSSVhfRUJJX0NTMUEJCSgxIDw8IDEpCS8qIENoaXAgU2VsZWN0IDEgQXNzaWdubWVudCAqLwogI2RlZmluZQkJCUFUOTFfTUFUUklYX0VCSV9DUzFBX1NNQwkJKDAgPDwgMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYXQ5MXNhbTkyNjAuaAppbmRleCBjODkzNGZlLi44ODk4NzJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05MjYwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOTI2MC5oCkBAIC02LDYgKzYsOCBAQAogICogQ29tbW9uIGRlZmluaXRpb25zLgogICogQmFzZWQgb24gQVQ5MVNBTTkyNjAgZGF0YXNoZWV0IHJldmlzaW9uIEEgKFByZWxpbWluYXJ5KS4KICAqCisgKiBJbmNsdWRlcyBhbHNvIGRlZmluaXRpb25zIGZvciBBVDkxU0FNOVhFIGFuZCBBVDkxU0FNOUcgZmFtaWxpZXMKKyAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCkBAIC0xMjMsNSArMTI1LDE0IEBACiAjZGVmaW5lIEFUOTFTQU05WEVfRkxBU0hfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIEZMQVNIIGJhc2UgYWRkcmVzcyAqLwogI2RlZmluZSBBVDkxU0FNOVhFX1NSQU1fQkFTRQkweDAwMzAwMDAwCS8qIEludGVybmFsIFNSQU0gYmFzZSBhZGRyZXNzICovCiAKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfUk9NX0JBU0UJMHgwMDEwMDAwMAkvKiBJbnRlcm5hbCBST00gYmFzZSBhZGRyZXNzICovCisjZGVmaW5lIEFUOTFTQU05RzIwX1JPTV9TSVpFCVNaXzMySwkJLyogSW50ZXJuYWwgUk9NIHNpemUgKDMyS2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfQkFTRQkweDAwMjAwMDAwCS8qIEludGVybmFsIFNSQU0gMCBiYXNlIGFkZHJlc3MgKi8KKyNkZWZpbmUgQVQ5MVNBTTlHMjBfU1JBTTBfU0laRQlTWl8xNksJCS8qIEludGVybmFsIFNSQU0gMCBzaXplICgxNktiKSAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9CQVNFCTB4MDAzMDAwMDAJLyogSW50ZXJuYWwgU1JBTSAxIGJhc2UgYWRkcmVzcyAqLworI2RlZmluZSBBVDkxU0FNOUcyMF9TUkFNMV9TSVpFCVNaXzE2SwkJLyogSW50ZXJuYWwgU1JBTSAxIHNpemUgKDE2S2IpICovCisKKyNkZWZpbmUgQVQ5MVNBTTlHMjBfVUhQX0JBU0UJMHgwMDUwMDAwMAkvKiBVU0IgSG9zdCBjb250cm9sbGVyICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9hdDkxc2FtOXJsLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAppbmRleCAxNmQyODMyLi42MjJlNTZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2F0OTFzYW05cmwuaApAQCAtMTEwLDYgKzExMCw2IEBACiAjZGVmaW5lIEFUOTFTQU05UkxfUk9NX1NJWkUJKDIgKiBTWl8xNkspCS8qIEludGVybmFsIFJPTSBzaXplICgzMktiKSAqLwogCiAjZGVmaW5lIEFUOTFTQU05UkxfTENEQ19CQVNFCTB4MDA1MDAwMDAJLyogTENEIENvbnRyb2xsZXIgKi8KLSNkZWZpbmUgQVQ5MVNBTTlSTF9VRFBIU19CQVNFCTB4MDA2MDAwMDAJLyogVVNCIERldmljZSBIUyBjb250cm9sbGVyICovCisjZGVmaW5lIEFUOTFTQU05UkxfVURQSFNfRklGTwkweDAwNjAwMDAwCS8qIFVTQiBEZXZpY2UgSFMgY29udHJvbGxlciAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvYm9hcmQuaAppbmRleCBkYzE4OWYwLi45NGRlNzg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2JvYXJkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9ib2FyZC5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8bGludXgvaTJjLmg+CiAjaW5jbHVkZSA8bGludXgvbGVkcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC91c2IvYXRtZWxfdXNiYV91ZGMuaD4KIAogIC8qIFVTQiBEZXZpY2UgKi8KIHN0cnVjdCBhdDkxX3VkY19kYXRhIHsKQEAgLTQ1LDYgKzQ2LDkgQEAKIH07CiBleHRlcm4gdm9pZCBfX2luaXQgYXQ5MV9hZGRfZGV2aWNlX3VkYyhzdHJ1Y3QgYXQ5MV91ZGNfZGF0YSAqZGF0YSk7CiAKKyAvKiBVU0IgSGlnaCBTcGVlZCBEZXZpY2UgKi8KK2V4dGVybiB2b2lkIF9faW5pdCBhdDkxX2FkZF9kZXZpY2VfdXNiYShzdHJ1Y3QgdXNiYV9wbGF0Zm9ybV9kYXRhICpkYXRhKTsKKwogIC8qIENvbXBhY3QgRmxhc2ggKi8KIHN0cnVjdCBhdDkxX2NmX2RhdGEgewogCXU4CWlycV9waW47CQkvKiBJL08gSVJRICovCkBAIC03Myw3ICs3Nyw3IEBACiB9OwogZXh0ZXJuIHZvaWQgX19pbml0IGF0OTFfYWRkX2RldmljZV9ldGgoc3RydWN0IGF0OTFfZXRoX2RhdGEgKmRhdGEpOwogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MykgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxQ0FQOSkKKyNpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFDQVA5KQogI2RlZmluZSBldGhfcGxhdGZvcm1fZGF0YQlhdDkxX2V0aF9kYXRhCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvY3B1LmgKaW5kZXggNzE0NTE2Ni4uNTJkZjc5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9jcHUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2NwdS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTkyNjAJMHgwMTk4MDNhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05MjYxCTB4MDE5NzAzYTAKICNkZWZpbmUgQVJDSF9JRF9BVDkxU0FNOTI2MwkweDAxOTYwN2EwCisjZGVmaW5lIEFSQ0hfSURfQVQ5MVNBTTlHMjAJMHgwMTk5MDVhMAogI2RlZmluZSBBUkNIX0lEX0FUOTFTQU05Ukw2NAkweDAxOWIwM2EwCiAjZGVmaW5lIEFSQ0hfSURfQVQ5MUNBUDkJMHgwMzlBMDNBMAogCkBAIC02Myw2ICs2NCwxMiBAQAogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjAoKQkoMCkKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0FSQ0hfQVQ5MVNBTTlHMjAKKyNkZWZpbmUgY3B1X2lzX2F0OTFzYW05ZzIwKCkJKGF0OTFfY3B1X2lkZW50aWZ5KCkgPT0gQVJDSF9JRF9BVDkxU0FNOUcyMCkKKyNlbHNlCisjZGVmaW5lIGNwdV9pc19hdDkxc2FtOWcyMCgpCSgwKQorI2VuZGlmCisKICNpZmRlZiBDT05GSUdfQVJDSF9BVDkxU0FNOTI2MQogI2RlZmluZSBjcHVfaXNfYXQ5MXNhbTkyNjEoKQkoYXQ5MV9jcHVfaWRlbnRpZnkoKSA9PSBBUkNIX0lEX0FUOTFTQU05MjYxKQogI2Vsc2UKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaAppbmRleCAyYzgyNmQ4Mi4uMDE2YTNhMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaGFyZHdhcmUuaApAQCAtMTgsNyArMTgsNyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxUk05MjAwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFybTkyMDAuaD4KLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYwLmg+CiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQogI2luY2x1ZGUgPGFzbS9hcmNoL2F0OTFzYW05MjYxLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1hdDkxL2lvLmgKaW5kZXggODAwNzNmZC4uZjhiZWFhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS9pby5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvaW8uaApAQCAtMjEsOCArMjEsNiBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX0lPX0gKICNkZWZpbmUgX19BU01fQVJDSF9JT19ICiAKLSNpbmNsdWRlIDxhc20vaW8uaD4KLQogI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhGRkZGRkZGRgogCiAjZGVmaW5lIF9faW8oYSkJCQkoKHZvaWQgX19pb21lbSAqKShhKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvdGltZXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvdGltZXguaAppbmRleCBmMTkzM2IwLi4yOThkODMxMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtYXQ5MS90aW1leC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWF0OTEvdGltZXguaApAQCAtMjcsMTQgKzI3LDI5IEBACiAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MV9TTE9XX0NMT0NLKQogCi0jZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYwKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYxKQorI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkKKworI2lmIGRlZmluZWQoQ09ORklHX01BQ0hfVVNCX0E5MjYwKSB8fCBkZWZpbmVkKENPTkZJR19NQUNIX1FJTF9BOTI2MCkKKyNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTkwMDAwMDAwCisjZWxzZQorI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJOTkzMDAwMDAKKyNlbmRpZgorCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKEFUOTFTQU05X01BU1RFUl9DTE9DSy8xNikKKworI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MSkKIAogI2RlZmluZSBBVDkxU0FNOV9NQVNURVJfQ0xPQ0sJOTkzMDAwMDAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQogCiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05MjYzKQogCisjaWYgZGVmaW5lZChDT05GSUdfTUFDSF9VU0JfQTkyNjMpCisjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwk5MDAwMDAwMAorI2Vsc2UKICNkZWZpbmUgQVQ5MVNBTTlfTUFTVEVSX0NMT0NLCTk5OTU5NTAwCisjZW5kaWYKKwogI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCShBVDkxU0FNOV9NQVNURVJfQ0xPQ0svMTYpCiAKICNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTlSTCkKQEAgLTQyLDYgKzU3LDExIEBACiAjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwkxMDAwMDAwMDAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQogCisjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFTQU05RzIwKQorCisjZGVmaW5lIEFUOTFTQU05X01BU1RFUl9DTE9DSwkxMzIwOTYwMDAKKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoQVQ5MVNBTTlfTUFTVEVSX0NMT0NLLzE2KQorCiAjZWxpZiBkZWZpbmVkKENPTkZJR19BUkNIX0FUOTFDQVA5KQogCiAjZGVmaW5lIEFUOTFDQVA5X01BU1RFUl9DTE9DSwkxMDAwMDAwMDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvaGFyZHdhcmUuaAppbmRleCBkYWFkOGVlLi43NDYxMGMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9oYXJkd2FyZS5oCkBAIC0xNCw3ICsxNCw2IEBACiAKICNpbmNsdWRlIDxhc20vYXJjaC9tZW1vcnkuaD4KIAotI2lmZGVmIENPTkZJR19BUkNIX0ZPT1RCUklER0UKIC8qICAgVmlydHVhbCAgICAgIFBoeXNpY2FsCVNpemUKICAqIDB4ZmY4MDAwMDAJMHg0MDAwMDAwMAkxTUIJWC1CdXMKICAqIDB4ZmYwMDAwMDAJMHg3YzAwMDAwMAkxTUIJUENJIEkvTyBzcGFjZQpAQCAtNTAsMzEgKzQ5LDYgQEAKICNkZWZpbmUgUENJTUVNX1NJWkUJCTB4MDEwMDAwMDAKICNkZWZpbmUgUENJTUVNX0JBU0UJCTB4ZjAwMDAwMDAKIAotI2VsaWYgZGVmaW5lZChDT05GSUdfQVJDSF9DTzI4NSkKLS8qCi0gKiBUaGlzIGlzIHRoZSBDT0VCU0EyODUgY3V0LWRvd24gbWFwcGluZwotICovCi0jZGVmaW5lIFBDSU1FTV9TSVpFCQkweDgwMDAwMDAwCi0jZGVmaW5lIFBDSU1FTV9CQVNFCQkweDgwMDAwMDAwCi0KLSNkZWZpbmUgV0ZMVVNIX1NJWkUJCTB4MDEwMDAwMDAKLSNkZWZpbmUgV0ZMVVNIX0JBU0UJCTB4N2QwMDAwMDAKLQotI2RlZmluZSBBUk1DU1JfU0laRQkJMHgwMDEwMDAwMAotI2RlZmluZSBBUk1DU1JfQkFTRQkJMHg3Y2YwMDAwMAotCi0jZGVmaW5lIFhCVVNfU0laRQkJMHgwMDAyMDAwMAotI2RlZmluZSBYQlVTX0JBU0UJCTB4N2NlZTAwMDAKLQotI2RlZmluZSBQQ0lPX1NJWkUJCTB4MDAwMTAwMDAKLSNkZWZpbmUgUENJT19CQVNFCQkweDdjZWQwMDAwCi0KLSNlbHNlCi0KLSNlcnJvciAiVW5kZWZpbmVkIGZvb3RicmlkZ2UgYXJjaGl0ZWN0dXJlIgotCi0jZW5kaWYKLQogI2RlZmluZSBYQlVTX0xFRFMJCSgodm9sYXRpbGUgdW5zaWduZWQgY2hhciAqKShYQlVTX0JBU0UgKyAweDEyMDAwKSkKICNkZWZpbmUgWEJVU19MRURfQU1CRVIJCSgxIDw8IDApCiAjZGVmaW5lIFhCVVNfTEVEX0dSRUVOCQkoMSA8PCAxKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9tZW1vcnkuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWVic2EyODUvbWVtb3J5LmgKaW5kZXggY2JkN2FlNi4uOTAxOWEzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS9tZW1vcnkuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L21lbW9yeS5oCkBAIC00Miw4ICs0Miw2IEBACiAKICNlbmRpZgogCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9GT09UQlJJREdFKQotCiAvKiBUYXNrIHNpemUgYW5kIHBhZ2Ugb2Zmc2V0IGF0IDNHQiAqLwogI2RlZmluZSBUQVNLX1NJWkUJCVVMKDB4YmYwMDAwMDApCiAjZGVmaW5lIFBBR0VfT0ZGU0VUCQlVTCgweGMwMDAwMDAwKQpAQCAtNTMsMjMgKzUxLDYgQEAKICAqLwogI2RlZmluZSBGTFVTSF9CQVNFCQkweGY5MDAwMDAwCiAKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfQ08yODUpCi0KLS8qIFRhc2sgc2l6ZSBhbmQgcGFnZSBvZmZzZXQgYXQgMS41R0IgKi8KLSNkZWZpbmUgVEFTS19TSVpFCQlVTCgweDVmMDAwMDAwKQotI2RlZmluZSBQQUdFX09GRlNFVAkJVUwoMHg2MDAwMDAwMCkKLQotLyoKLSAqIENhY2hlIGZsdXNoaW5nIGFyZWEuCi0gKi8KLSNkZWZpbmUgRkxVU0hfQkFTRQkJMHg3ZTAwMDAwMAotCi0jZWxzZQotCi0jZXJyb3IgIlVuZGVmaW5lZCBmb290YnJpZGdlIGFyY2hpdGVjdHVyZSIKLQotI2VuZGlmCi0KIC8qCiAgKiBQaHlzaWNhbCBEUkFNIG9mZnNldC4KICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtZWJzYTI4NS92bWFsbG9jLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaAppbmRleCAwMjU5ODIwLi5lNDg3ZDdlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1lYnNhMjg1L3ZtYWxsb2MuaApAQCAtNyw4ICs3LDQgQEAKICAqLwogCiAKLSNpZmRlZiBDT05GSUdfQVJDSF9GT09UQlJJREdFCiAjZGVmaW5lIFZNQUxMT0NfRU5EICAgICAgIChQQUdFX09GRlNFVCArIDB4MzAwMDAwMDApCi0jZWxzZQotI2RlZmluZSBWTUFMTE9DX0VORCAgICAgICAoUEFHRV9PRkZTRVQgKyAweDIwMDAwMDAwKQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCmluZGV4IGFkZmZiNmEuLjY1NDJjYTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9oYXJkd2FyZS5oCkBAIC03MywxNCArNzMsNiBAQAogICovCiBleHRlcm4gdm9pZCBpbXhfZ3Bpb19tb2RlKCBpbnQgZ3Bpb19tb2RlICk7CiAKLS8qIGdldCBmcmVxdWVuY2llcyBpbiBIeiAqLwotZXh0ZXJuIHVuc2lnbmVkIGludCBpbXhfZ2V0X3N5c3RlbV9jbGsodm9pZCk7Ci1leHRlcm4gdW5zaWduZWQgaW50IGlteF9nZXRfbWN1X2Nsayh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsxKHZvaWQpOyAvKiBVQVJUWzEyXSwgVGltZXJbMTJdLCBQV00gKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGsyKHZvaWQpOyAvKiBMQ0QsIFNELCBTUElbMTJdICAgICAgICAgKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9wZXJjbGszKHZvaWQpOyAvKiBTU0kgICAgICAgICAgICAgICAgICAgICAgKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgaW14X2dldF9oY2xrKHZvaWQpOyAgICAvKiBTRFJBTSwgQ1NJLCBNZW1vcnkgU3RpY2ssKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMsIERNQSAgICAgICAgICAgICAgICAgKi8KICNlbmRpZgogCiAjZGVmaW5lIE1BWElSUU5VTSAgICAgICAgICAgICAgICAgICAgICAgNjIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LWRtYS5oCmluZGV4IDViMTA2NmQuLjQ0ZDg5YzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlteC9pbXgtZG1hLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC1kbWEuaApAQCAtODgsNyArODgsNyBAQAogCiB2b2lkIGlteF9kbWFfZnJlZShpbXhfZG1hY2hfdCBkbWFfY2gpOwogCi1pbnQgaW14X2RtYV9yZXF1ZXN0X2J5X3ByaW8oaW14X2RtYWNoX3QgKnBkbWFfY2gsIGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKTsKK2lteF9kbWFjaF90IGlteF9kbWFfcmVxdWVzdF9ieV9wcmlvKGNvbnN0IGNoYXIgKm5hbWUsIGlteF9kbWFfcHJpbyBwcmlvKTsKIAogCiAjZW5kaWYJLyogX0FTTV9BUkNIX0lNWF9ETUFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW14L2lteC11YXJ0LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaAppbmRleCAzYTY4NWUxLi5kNTRlYjFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvaW14LXVhcnQuaApAQCAtNCw2ICs0LDggQEAKICNkZWZpbmUgSU1YVUFSVF9IQVZFX1JUU0NUUyAoMTw8MCkKIAogc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSB7CisJaW50ICgqaW5pdCkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CisJdm9pZCAoKmV4aXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwogCXVuc2lnbmVkIGludCBmbGFnczsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDEzeHgvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oCmluZGV4IDJlMTVkYTUzLi5kNzk4NDZmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AxM3h4L2RtYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDEzeHgvZG1hLmgKQEAgLTEsMyArMSwzIEBACiAjaWZuZGVmIF9JT1AxM1hYX0RNQV9ICi0jZGVmaW5lIF9JT1AxM1hYX0RNQV9IXworI2RlZmluZSBfSU9QMTNYWF9ETUFfSAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pb3AzMngvZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzJ4L2dwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDhmNGVjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzJ4L2dwaW8uaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgX19BU01fQVJDSF9JT1AzMlhfR1BJT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9QMzJYX0dQSU9fSAorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmg+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtaW9wMzN4L2dwaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMzeC9ncGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRkNTViYgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWlvcDMzeC9ncGlvLmgKQEAgLTAsMCArMSw2IEBACisjaWZuZGVmIF9fQVNNX0FSQ0hfSU9QMzNYX0dQSU9fSAorI2RlZmluZSBfX0FTTV9BUkNIX0lPUDMzWF9HUElPX0gKKworI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oPgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9mc2cuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9mc2cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDEwMGNjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2ZzZy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvZnNnLmgKKyAqCisgKiBGcmVlY29tIEZTRy0zIHBsYXRmb3JtIHNwZWNpZmljIGRlZmluaXRpb25zCisgKgorICogQXV0aG9yOiBSb2QgV2hpdGJ5IDxyb2RAd2hpdGJ5LmlkLmF1PgorICogQXV0aG9yOiBUb21hc3ogQ2htaWVsZXdza2kgPG1hbmdvb0B3cGtnLm9yZz4KKyAqIE1haW50YWluZXJzOiBodHRwOi8vd3d3Lm5zbHUyLWxpbnV4Lm9yZworICoKKyAqIEJhc2VkIG9uIGNveW90ZS5oIGJ5CisgKiBDb3B5cmlnaHQgMjAwNCAoYykgTW9udGFWaXN0YSwgU29mdHdhcmUsIEluYy4KKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSF9fCisjZXJyb3IgIkRvIG5vdCBpbmNsdWRlIHRoaXMgZGlyZWN0bHksIGluc3RlYWQgI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPiIKKyNlbmRpZgorCisjZGVmaW5lIEZTR19TREFfUElOCQkxMgorI2RlZmluZSBGU0dfU0NMX1BJTgkJMTMKKworLyoKKyAqIEZTRyBQQ0kgSVJRcworICovCisjZGVmaW5lIEZTR19QQ0lfTUFYX0RFVgkJMworI2RlZmluZSBGU0dfUENJX0lSUV9MSU5FUwkzCisKKworLyogUENJIGNvbnRyb2xsZXIgR1BJTyB0byBJUlEgcGluIG1hcHBpbmdzICovCisjZGVmaW5lIEZTR19QQ0lfSU5UQV9QSU4JNgorI2RlZmluZSBGU0dfUENJX0lOVEJfUElOCTcKKyNkZWZpbmUgRlNHX1BDSV9JTlRDX1BJTgk1CisKKy8qIEJ1dHRvbnMgKi8KKworI2RlZmluZSBGU0dfU0JfR1BJTwkJNAkvKiBzeW5jIGJ1dHRvbiAqLworI2RlZmluZSBGU0dfUkJfR1BJTwkJOQkvKiByZXNldCBidXR0b24gKi8KKyNkZWZpbmUgRlNHX1VCX0dQSU8JCTEwCS8qIHVzYiBidXR0b24gKi8KKworLyogTEVEcyAqLworCisjZGVmaW5lIEZTR19MRURfV0xBTl9CSVQJMAorI2RlZmluZSBGU0dfTEVEX1dBTl9CSVQJCTEKKyNkZWZpbmUgRlNHX0xFRF9TQVRBX0JJVAkyCisjZGVmaW5lIEZTR19MRURfVVNCX0JJVAkJNAorI2RlZmluZSBGU0dfTEVEX1JJTkdfQklUCTUKKyNkZWZpbmUgRlNHX0xFRF9TWU5DX0JJVAk3CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCmluZGV4IDczZThkYzMuLmZhNzIzYTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9oYXJkd2FyZS5oCkBAIC00NSw1ICs0NSw2IEBACiAjaW5jbHVkZSAibnNsdTIuaCIKICNpbmNsdWRlICJuYXMxMDBkLmgiCiAjaW5jbHVkZSAiZHNtZzYwMC5oIgorI2luY2x1ZGUgImZzZy5oIgogCiAjZW5kaWYgIC8qIF9BU01fQVJDSF9IQVJEV0FSRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtaXhwNHh4L2lycXMuaAppbmRleCAxMTgwMTYwLi42NzRhZjRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1peHA0eHgvaXJxcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWl4cDR4eC9pcnFzLmgKQEAgLTEyOCw0ICsxMjgsMTEgQEAKICNkZWZpbmUgICAgICAgIElSUV9EU01HNjAwX1BDSV9JTlRFICAgIElSUV9JWFA0WFhfR1BJTzcKICNkZWZpbmUgICAgICAgIElSUV9EU01HNjAwX1BDSV9JTlRGICAgIElSUV9JWFA0WFhfR1BJTzYKIAorLyoKKyAqIEZyZWVjb20gRlNHLTMgQm9hcmQgSVJRcworICovCisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRBICAgICAgICBJUlFfSVhQNFhYX0dQSU82CisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRCICAgICAgICBJUlFfSVhQNFhYX0dQSU83CisjZGVmaW5lICAgICAgICBJUlFfRlNHX1BDSV9JTlRDICAgICAgICBJUlFfSVhQNFhYX0dQSU81CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjU1ZmI4YQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2RlYnVnLW1hY3JvLlMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisKKwkubWFjcm8JYWRkcnVhcnQscngKKwltcmMJcDE1LCAwLCBccngsIGMxLCBjMAorCXRzdAlccngsICMxCQkJCQlAIE1NVSBlbmFibGVkPworCWxkcmVxCVxyeCwgPUtJUktXT09EX1JFR1NfUEhZU19CQVNFCisJbGRybmUJXHJ4LCA9S0lSS1dPT0RfUkVHU19WSVJUX0JBU0UKKwlvcnIJXHJ4LCBccngsICMweDAwMDEyMDAwCisJLmVuZG0KKworI2RlZmluZSBVQVJUX1NISUZUCTIKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvZGVidWctODI1MC5TPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9kbWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE4YzE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvZG1hLmgKQEAgLTAsMCArMSBAQAorLyogZW1wdHkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2VudHJ5LW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNmE0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9lbnRyeS1tYWNyby5TCisgKgorICogTG93LWxldmVsIElSUSBoZWxwZXIgbWFjcm9zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIHBsYXRmb3JtcworICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9raXJrd29vZC5oPgorCisJLm1hY3JvICBkaXNhYmxlX2ZpcQorCS5lbmRtCisKKwkubWFjcm8gIGFyY2hfcmV0X3RvX3VzZXIsIHRtcDEsIHRtcDIKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfcHJlYW1ibGUsIGJhc2UsIHRtcAorCWxkcglcYmFzZSwgPUlSUV9WSVJUX0JBU0UKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfYW5kX2Jhc2UsIGlycW5yLCBpcnFzdGF0LCBiYXNlLCB0bXAKKwlAIGNoZWNrIGxvdyBpbnRlcnJ1cHRzCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfTE9XX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfTE9XX09GRl0KKwltb3YJXGlycW5yLCAjMzEKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCWJuZQkxMDAxZgorCisJQCBpZiBubyBsb3cgaW50ZXJydXB0cyBzZXQsIGNoZWNrIGhpZ2ggaW50ZXJydXB0cworCWxkcglcaXJxc3RhdCwgW1xiYXNlLCAjSVJRX0NBVVNFX0hJR0hfT0ZGXQorCWxkcglcdG1wLCBbXGJhc2UsICNJUlFfTUFTS19ISUdIX09GRl0KKwltb3YJXGlycW5yLCAjNjMKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCisJQCBmaW5kIGZpcnN0IGFjdGl2ZSBpbnRlcnJ1cHQgc291cmNlCisxMDAxOgljbHpuZQlcaXJxc3RhdCwgXGlycXN0YXQKKwlzdWJuZQlcaXJxbnIsIFxpcnFuciwgXGlycXN0YXQKKwkuZW5kbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5NTcxOQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9IQVJEV0FSRV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorCisjaW5jbHVkZSAia2lya3dvb2QuaCIKKworI2RlZmluZSBwY2liaW9zX2Fzc2lnbl9hbGxfYnVzc2VzKCkJMQorCisjZGVmaW5lIFBDSUJJT1NfTUlOX0lPCQkJMHgwMDAwMTAwMAorI2RlZmluZSBQQ0lCSU9TX01JTl9NRU0JCQkweDAxMDAwMDAwCisjZGVmaW5lIFBDSU1FTV9CQVNFCQkJS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFIC8qIG1lbSBiYXNlIGZvciBWR0EgKi8KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBlZjZlOTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pby5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lPX0gKKyNkZWZpbmUgX19BU01fQVJDSF9JT19ICisKKyNpbmNsdWRlICJraXJrd29vZC5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIEtJUktXT09EX1BDSUVfSU9fUEhZU19CQVNFKQorCQkJCQkrIEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFKTsKK30KKworI2RlZmluZSBfX2lvKGEpCQkJX19pbyhhKQorI2RlZmluZSBfX21lbV9wY2koYSkJCShhKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvaXJxcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlN2I1ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9pcnFzLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2lycXMuaAorICoKKyAqIElSUSBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBLaXJrd29vZCBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lSUVNfSAorI2RlZmluZSBfX0FTTV9BUkNIX0lSUVNfSAorCisjaW5jbHVkZSAia2lya3dvb2QuaCIJLyogbmVlZCBHUElPX01BWCAqLworCisvKgorICogTG93IEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX0tJUktXT09EX0hJR0hfU1VNCTAKKyNkZWZpbmUgSVJRX0tJUktXT09EX0JSSURHRQkxCisjZGVmaW5lIElSUV9LSVJLV09PRF9IT1NUMkNQVQkyCisjZGVmaW5lIElSUV9LSVJLV09PRF9DUFUySE9TVAkzCisjZGVmaW5lIElSUV9LSVJLV09PRF9YT1JfMDAJNQorI2RlZmluZSBJUlFfS0lSS1dPT0RfWE9SXzAxCTYKKyNkZWZpbmUgSVJRX0tJUktXT09EX1hPUl8xMAk3CisjZGVmaW5lIElSUV9LSVJLV09PRF9YT1JfMTEJOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfUENJRQk5CisjZGVmaW5lIElSUV9LSVJLV09PRF9HRTAwX1NVTQkxMQorI2RlZmluZSBJUlFfS0lSS1dPT0RfR0UwMV9TVU0JMTUKKyNkZWZpbmUgSVJRX0tJUktXT09EX1VTQgkxOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfU0FUQQkyMQorI2RlZmluZSBJUlFfS0lSS1dPT0RfQ1JZUFRPCTIyCisjZGVmaW5lIElSUV9LSVJLV09PRF9TUEkJMjMKKyNkZWZpbmUgSVJRX0tJUktXT09EX0kyUwkyNAorI2RlZmluZSBJUlFfS0lSS1dPT0RfVFNfMAkyNgorI2RlZmluZSBJUlFfS0lSS1dPT0RfU0RJTwkyOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfVFdTSQkyOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfQVZCCTMwCisjZGVmaW5lIElSUV9LSVJLV09PRF9URE1JCTMxCisKKy8qCisgKiBIaWdoIEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX0tJUktXT09EX1VBUlRfMAkzMworI2RlZmluZSBJUlFfS0lSS1dPT0RfVUFSVF8xCTM0CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV18wXzcJMzUKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fTE9XXzhfMTUJMzYKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fTE9XXzE2XzIzCTM3CisjZGVmaW5lIElSUV9LSVJLV09PRF9HUElPX0xPV18yNF8zMQkzOAorI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19ISUdIXzBfNwkzOQorI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19ISUdIXzhfMTUJNDAKKyNkZWZpbmUgSVJRX0tJUktXT09EX0dQSU9fSElHSF8xNl8yMwk0MQorCisvKgorICogS0lSS1dPT0QgR2VuZXJhbCBQdXJwb3NlIFBpbnMKKyAqLworI2RlZmluZSBJUlFfS0lSS1dPT0RfR1BJT19TVEFSVAk2NAorI2RlZmluZSBOUl9HUElPX0lSUVMJCUdQSU9fTUFYCisKKyNkZWZpbmUgTlJfSVJRUwkJCShJUlFfS0lSS1dPT0RfR1BJT19TVEFSVCArIE5SX0dQSU9fSVJRUykKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2tpcmt3b29kLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9raXJrd29vZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMzFiMzE1Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qva2lya3dvb2QuaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL2tpcmt3b29kLmgKKyAqCisgKiBHZW5lcmljIGRlZmluaXRpb25zIGZvciBNYXJ2ZWxsIEtpcmt3b29kIFNvQyBmbGF2b3JzOgorICogIDg4RjYxODAsIDg4RjYxOTIgYW5kIDg4RjYyODEuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0tJUktXT09EX0gKKyNkZWZpbmUgX19BU01fQVJDSF9LSVJLV09PRF9ICisKKy8qCisgKiBNYXJ2ZWxsIEtpcmt3b29kIGFkZHJlc3MgbWFwcy4KKyAqCisgKiBwaHlzCisgKiBlMDAwMDAwMAlQQ0llIE1lbW9yeSBzcGFjZQorICogZjEwMDAwMDAJb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICogZjIwMDAwMDAJUENJZSBJL08gc3BhY2UKKyAqIGYzMDAwMDAwCU5BTkQgY29udHJvbGxlciBhZGRyZXNzIHdpbmRvdworICoKKyAqIHZpcnQJCXBoeXMJCXNpemUKKyAqIGZlZTAwMDAwCWYxMDAwMDAwCTFNCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGZlZjAwMDAwCWYyMDAwMDAwCTFNCVBDSWUgSS9PIHNwYWNlCisgKi8KKworI2RlZmluZSBLSVJLV09PRF9OQU5EX01FTV9QSFlTX0JBU0UJMHhmMzAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9OQU5EX01FTV9TSVpFCQlTWl82NEsgLyogMUsgaXMgc3VmZmljaWVudCwgYnV0IDY0SworCQkJCQkJKiBpcyB0aGUgbWluaW1hbCB3aW5kb3cgc2l6ZQorCQkJCQkJKi8KKworI2RlZmluZSBLSVJLV09PRF9QQ0lFX0lPX1BIWVNfQkFTRQkweGYyMDAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfSU9fVklSVF9CQVNFCTB4ZmVmMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9JT19CVVNfQkFTRQkweDAwMDAwMDAwCisjZGVmaW5lIEtJUktXT09EX1BDSUVfSU9fU0laRQkJU1pfMU0KKworI2RlZmluZSBLSVJLV09PRF9SRUdTX1BIWVNfQkFTRQkJMHhmMTAwMDAwMAorI2RlZmluZSBLSVJLV09PRF9SRUdTX1ZJUlRfQkFTRQkJMHhmZWUwMDAwMAorI2RlZmluZSBLSVJLV09PRF9SRUdTX1NJWkUJCVNaXzFNCisKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9NRU1fUEhZU19CQVNFCTB4ZTAwMDAwMDAKKyNkZWZpbmUgS0lSS1dPT0RfUENJRV9NRU1fU0laRQkJU1pfMTI4TQorCisvKgorICogTUJVUyBicmlkZ2UgcmVnaXN0ZXJzLgorICovCisjZGVmaW5lIEJSSURHRV9WSVJUX0JBU0UJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHgyMDAwMCkKKyNkZWZpbmUgIENQVV9DT05UUk9MCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDEwNCkKKyNkZWZpbmUgICBDUFVfUkVTRVQJCTB4MDAwMDAwMDIKKyNkZWZpbmUgIFJTVE9VVG5fTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDgpCisjZGVmaW5lICAgU09GVF9SRVNFVF9PVVRfRU4JMHgwMDAwMDAwNAorI2RlZmluZSAgU1lTVEVNX1NPRlRfUkVTRVQJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMGMpCisjZGVmaW5lICAgU09GVF9SRVNFVAkJMHgwMDAwMDAwMQorI2RlZmluZSAgQlJJREdFX0NBVVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExMCkKKyNkZWZpbmUgIEJSSURHRV9NQVNLCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExNCkKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMAkweDAwMDIKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMV9DTFIJKH4weDAwMDQpCisjZGVmaW5lICBJUlFfVklSVF9CQVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDIwMCkKKyNkZWZpbmUgICBJUlFfQ0FVU0VfTE9XX09GRgkweDAwMDAKKyNkZWZpbmUgICBJUlFfTUFTS19MT1dfT0ZGCTB4MDAwNAorI2RlZmluZSAgIElSUV9DQVVTRV9ISUdIX09GRgkweDAwMTAKKyNkZWZpbmUgICBJUlFfTUFTS19ISUdIX09GRgkweDAwMTQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKyNkZWZpbmUgIEwyX0NPTkZJR19SRUcJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTI4KQorI2RlZmluZSAgIEwyX1dSSVRFVEhST1VHSAkweDAwMDAwMDEwCisKKy8qCisgKiBSZWdpc3RlciBNYXAKKyAqLworI2RlZmluZSBERFJfVklSVF9CQVNFCQkoS0lSS1dPT0RfUkVHU19WSVJUX0JBU0UgfCAweDAwMDAwKQorI2RlZmluZSAgRERSX1dJTkRPV19DUFVfQkFTRQkoRERSX1ZJUlRfQkFTRSB8IDB4MTUwMCkKKworI2RlZmluZSBERVZfQlVTX1BIWVNfQkFTRQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoS0lSS1dPT0RfUkVHU19WSVJUX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSAgU0FNUExFX0FUX1JFU0VUCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzMCkKKyNkZWZpbmUgIERFVklDRV9JRAkJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgwMDM0KQorI2RlZmluZSAgUlRDX1BIWVNfQkFTRQkJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgwMzAwKQorI2RlZmluZSAgU1BJX1BIWVNfQkFTRQkJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgwNjAwKQorI2RlZmluZSAgVUFSVDBfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQwX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMV9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMTAwKQorI2RlZmluZSAgVUFSVDFfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjEwMCkKKworI2RlZmluZSBQQ0lFX1ZJUlRfQkFTRQkJKEtJUktXT09EX1JFR1NfVklSVF9CQVNFIHwgMHg0MDAwMCkKKworI2RlZmluZSBVU0JfUEhZU19CQVNFCQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDUwMDAwKQorCisjZGVmaW5lIEdFMDBfUEhZU19CQVNFCQkoS0lSS1dPT0RfUkVHU19QSFlTX0JBU0UgfCAweDcwMDAwKQorI2RlZmluZSBHRTAxX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg3NDAwMCkKKworI2RlZmluZSBTQVRBX1BIWVNfQkFTRQkJKEtJUktXT09EX1JFR1NfUEhZU19CQVNFIHwgMHg4MDAwMCkKKworCisjZGVmaW5lIEdQSU9fTUFYCQk1MAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvbWVtb3J5LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTEwOGY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvbWVtb3J5LmgKQEAgLTAsMCArMSwxNCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL21lbW9yeS5oCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01FTU9SWV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfTUVNT1JZX0gKKworI2RlZmluZSBQSFlTX09GRlNFVAkJVUwoMHgwMDAwMDAwMCkKKworI2RlZmluZSBfX3ZpcnRfdG9fYnVzKHgpCV9fdmlydF90b19waHlzKHgpCisjZGVmaW5lIF9fYnVzX3RvX3ZpcnQoeCkJX19waHlzX3RvX3ZpcnQoeCkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qvc3lzdGVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRkZTdlMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3N5c3RlbS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC9zeXN0ZW0uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9TWVNURU1fSAorI2RlZmluZSBfX0FTTV9BUkNIX1NZU1RFTV9ICisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2tpcmt3b29kLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2lkbGUodm9pZCkKK3sKKwljcHVfZG9faWRsZSgpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9yZXNldChjaGFyIG1vZGUpCit7CisJLyoKKwkgKiBFbmFibGUgc29mdCByZXNldCB0byBhc3NlcnQgUlNUT1VUbi4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVF9PVVRfRU4sIFJTVE9VVG5fTUFTSyk7CisKKwkvKgorCSAqIEFzc2VydCBzb2Z0IHJlc2V0LgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VULCBTWVNURU1fU09GVF9SRVNFVCk7CisKKwl3aGlsZSAoMSkKKwkJOworfQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdGltZXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIxMjJlMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKQEAgLTAsMCArMSwxMSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3RpbWV4LmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjZGVmaW5lIENMT0NLX1RJQ0tfUkFURQkJKDEwMCAqIEhaKQorCisjZGVmaW5lIEtJUktXT09EX1RDTEsJCTE2NjY2NjY2NwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdW5jb21wcmVzcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2QvdW5jb21wcmVzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MDYyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1raXJrd29vZC91bmNvbXByZXNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3VuY29tcHJlc3MuaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9zZXJpYWxfcmVnLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gva2lya3dvb2QuaD4KKworI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCisKK3N0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIFVBUlRfTFNSX1RIUkUpCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KKworCWJhc2VbVUFSVF9UWCA8PCAyXSA9IGM7Cit9CisKK3N0YXRpYyB2b2lkIGZsdXNoKHZvaWQpCit7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCXVuc2lnbmVkIGNoYXIgbWFzazsKKwlpbnQgaTsKKworCW1hc2sgPSBVQVJUX0xTUl9URU1UIHwgVUFSVF9MU1JfVEhSRTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBtYXNrKSA9PSBtYXNrKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9Cit9CisKKy8qCisgKiBub3RoaW5nIHRvIGRvCisgKi8KKyNkZWZpbmUgYXJjaF9kZWNvbXBfc2V0dXAoKQorI2RlZmluZSBhcmNoX2RlY29tcF93ZG9nKCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTg1MmM2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gta2lya3dvb2Qvdm1hbGxvYy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWtpcmt3b29kL3ZtYWxsb2MuaAorICovCisKKyNkZWZpbmUgVk1BTExPQ19FTkQJMHhmZTgwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kZWJ1Zy1tYWNyby5TIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kZWJ1Zy1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NTUwMmUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2RlYnVnLW1hY3JvLlMKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZGVidWctbWFjcm8uUworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisqLworCisjaW5jbHVkZSA8YXNtL2FyY2gvbG9raS5oPgorCisJLm1hY3JvCWFkZHJ1YXJ0LHJ4CisJbXJjCXAxNSwgMCwgXHJ4LCBjMSwgYzAKKwl0c3QJXHJ4LCAjMQkJCQkJQCBNTVUgZW5hYmxlZD8KKwlsZHJlcQlccngsID1MT0tJX1JFR1NfUEhZU19CQVNFCisJbGRybmUJXHJ4LCA9TE9LSV9SRUdTX1ZJUlRfQkFTRQorCW9ycglccngsIFxyeCwgIzB4MDAwMTIwMDAKKwkuZW5kbQorCisjZGVmaW5lIFVBUlRfU0hJRlQJMgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS9kZWJ1Zy04MjUwLlM+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2RtYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kbWEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGE4YzE3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9kbWEuaApAQCAtMCwwICsxIEBACisvKiBlbXB0eSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9lbnRyeS1tYWNyby5TIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9lbnRyeS1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MzI1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2VudHJ5LW1hY3JvLlMKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvZW50cnktbWFjcm8uUworICoKKyAqIExvdy1sZXZlbCBJUlEgaGVscGVyIG1hY3JvcyBmb3IgTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgcGxhdGZvcm1zCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKworCS5tYWNybyAgZGlzYWJsZV9maXEKKwkuZW5kbQorCisJLm1hY3JvICBhcmNoX3JldF90b191c2VyLCB0bXAxLCB0bXAyCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX3ByZWFtYmxlLCBiYXNlLCB0bXAKKwlsZHIJXGJhc2UsID1JUlFfVklSVF9CQVNFCisJLmVuZG0KKworCS5tYWNybyAgZ2V0X2lycW5yX2FuZF9iYXNlLCBpcnFuciwgaXJxc3RhdCwgYmFzZSwgdG1wCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfT0ZGXQorCWxkcglcdG1wLCBbXGJhc2UsICNJUlFfTUFTS19PRkZdCisJbW92CVxpcnFuciwgIzAKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCWNsem5lCVxpcnFuciwgXGlycXN0YXQKKwlyc2JuZQlcaXJxbnIsIFxpcnFuciwgIzMxCisJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaGFyZHdhcmUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaGFyZHdhcmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjViMDFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9oYXJkd2FyZS5oCkBAIC0wLDAgKzEsMTUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9IQVJEV0FSRV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorCisjaW5jbHVkZSAibG9raS5oIgorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NDE4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lvLmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaW8uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9fSAorCisjaW5jbHVkZSAibG9raS5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIExPS0lfUENJRTBfSU9fUEhZU19CQVNFKQorCQkJCQkrIExPS0lfUENJRTBfSU9fVklSVF9CQVNFKTsKK30KKworI2RlZmluZSBfX2lvKGEpCQkJX19pbyhhKQorI2RlZmluZSBfX21lbV9wY2koYSkJCShhKQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2lycXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTQ5NzE0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9pcnFzLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvaXJxcy5oCisgKgorICogSVJRIGRlZmluaXRpb25zIGZvciBNYXJ2ZWxsIExva2kgKDg4UkM4NDgwKSBTb0NzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0lSUVNfSAorI2RlZmluZSBfX0FTTV9BUkNIX0lSUVNfSAorCisjaW5jbHVkZSAibG9raS5oIgkvKiBuZWVkIEdQSU9fTUFYICovCisKKy8qCisgKiBJbnRlcnJ1cHQgQ29udHJvbGxlcgorICovCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQV9DUFVfRFJCTAkwCisjZGVmaW5lIElSUV9MT0tJX0NQVV9QQ0lFX0FfRFJCTAkxCisjZGVmaW5lIElSUV9MT0tJX1BDSUVfQl9DUFVfRFJCTAkyCisjZGVmaW5lIElSUV9MT0tJX0NQVV9QQ0lFX0JfRFJCTAkzCisjZGVmaW5lIElSUV9MT0tJX0NPTV9BX0VSUgkJNgorI2RlZmluZSBJUlFfTE9LSV9DT01fQV9JTgkJNworI2RlZmluZSBJUlFfTE9LSV9DT01fQV9PVVQJCTgKKyNkZWZpbmUgSVJRX0xPS0lfQ09NX0JfRVJSCQk5CisjZGVmaW5lIElSUV9MT0tJX0NPTV9CX0lOCQkxMAorI2RlZmluZSBJUlFfTE9LSV9DT01fQl9PVVQJCTExCisjZGVmaW5lIElSUV9MT0tJX0RNQV9BCQkJMTIKKyNkZWZpbmUgSVJRX0xPS0lfRE1BX0IJCQkxMworI2RlZmluZSBJUlFfTE9LSV9TQVNfQQkJCTE0CisjZGVmaW5lIElSUV9MT0tJX1NBU19CCQkJMTUKKyNkZWZpbmUgSVJRX0xPS0lfRERSCQkJMTYKKyNkZWZpbmUgSVJRX0xPS0lfWE9SCQkJMTcKKyNkZWZpbmUgSVJRX0xPS0lfQlJJREdFCQkJMTgKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9BX0VSUgkJMjAKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9BX0lOVAkJMjEKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9CX0VSUgkJMjIKKyNkZWZpbmUgSVJRX0xPS0lfUENJRV9CX0lOVAkJMjMKKyNkZWZpbmUgSVJRX0xPS0lfR0JFX0FfSU5UCQkyNAorI2RlZmluZSBJUlFfTE9LSV9HQkVfQl9JTlQJCTI1CisjZGVmaW5lIElSUV9MT0tJX0RFVl9FUlIJCTI2CisjZGVmaW5lIElSUV9MT0tJX1VBUlQwCQkJMjcKKyNkZWZpbmUgSVJRX0xPS0lfVUFSVDEJCQkyOAorI2RlZmluZSBJUlFfTE9LSV9UV1NJCQkJMjkKKyNkZWZpbmUgSVJRX0xPS0lfR1BJT18yM18wCQkzMAorI2RlZmluZSBJUlFfTE9LSV9HUElPXzI1XzI0CQkzMQorCisvKgorICogTG9raSBHZW5lcmFsIFB1cnBvc2UgUGlucworICovCisjZGVmaW5lIElSUV9MT0tJX0dQSU9fU1RBUlQJMzIKKyNkZWZpbmUgTlJfR1BJT19JUlFTCQlHUElPX01BWAorCisjZGVmaW5lIE5SX0lSUVMJCQkoSVJRX0xPS0lfR1BJT19TVEFSVCArIE5SX0dQSU9fSVJRUykKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbG9raS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9sb2tpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkMDVlZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvbG9raS5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL2xva2kuaAorICoKKyAqIEdlbmVyaWMgZGVmaW5pdGlvbnMgZm9yIE1hcnZlbGwgTG9raSAoODhSQzg0ODApIFNvQyBmbGF2b3JzCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX0xPS0lfSAorI2RlZmluZSBfX0FTTV9BUkNIX0xPS0lfSAorCisvKgorICogTWFydmVsbCBMb2tpICg4OFJDODQ4MCkgYWRkcmVzcyBtYXBzLgorICoKKyAqIHBoeXMKKyAqIGQwMDAwMDAwCW9uLWNoaXAgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGUwMDAwMDAwCVBDSWUgMCBNZW1vcnkgc3BhY2UKKyAqIGU4MDAwMDAwCVBDSWUgMSBNZW1vcnkgc3BhY2UKKyAqIGYwMDAwMDAwCVBDSWUgMCBJL08gc3BhY2UKKyAqIGYwMTAwMDAwCVBDSWUgMSBJL08gc3BhY2UKKyAqCisgKiB2aXJ0CQlwaHlzCQlzaXplCisgKiBmZWQwMDAwMAlkMDAwMDAwMAkxTQlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKiBmZWUwMDAwMAlmMDAwMDAwMAk2NEsJUENJZSAwIEkvTyBzcGFjZQorICogZmVmMDAwMDAJZjAxMDAwMDAJNjRLCVBDSWUgMSBJL08gc3BhY2UKKyAqLworCisjZGVmaW5lIExPS0lfUkVHU19QSFlTX0JBU0UJCTB4ZDAwMDAwMDAKKyNkZWZpbmUgTE9LSV9SRUdTX1ZJUlRfQkFTRQkJMHhmZWQwMDAwMAorI2RlZmluZSBMT0tJX1JFR1NfU0laRQkJCVNaXzFNCisKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19QSFlTX0JBU0UJCTB4ZjAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19WSVJUX0JBU0UJCTB4ZmVlMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMF9JT19CVVNfQkFTRQkJMHgwMDAwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUwX0lPX1NJWkUJCVNaXzY0SworCisjZGVmaW5lIExPS0lfUENJRTFfSU9fUEhZU19CQVNFCQkweGYwMTAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfSU9fVklSVF9CQVNFCQkweGZlZjAwMDAwCisjZGVmaW5lIExPS0lfUENJRTFfSU9fQlVTX0JBU0UJCTB4MDAwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMV9JT19TSVpFCQlTWl82NEsKKworI2RlZmluZSBMT0tJX1BDSUUwX01FTV9QSFlTX0JBU0UJMHhlMDAwMDAwMAorI2RlZmluZSBMT0tJX1BDSUUwX01FTV9TSVpFCQlTWl8xMjhNCisKKyNkZWZpbmUgTE9LSV9QQ0lFMV9NRU1fUEhZU19CQVNFCTB4ZTgwMDAwMDAKKyNkZWZpbmUgTE9LSV9QQ0lFMV9NRU1fU0laRQkJU1pfMTI4TQorCisvKgorICogUmVnaXN0ZXIgTWFwCisgKi8KKyNkZWZpbmUgREVWX0JVU19QSFlTX0JBU0UJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4MTAwMDApCisjZGVmaW5lICBVQVJUMF9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDBfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjAwMCkKKyNkZWZpbmUgIFVBUlQxX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIxMDApCisjZGVmaW5lICBVQVJUMV9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMTAwKQorCisjZGVmaW5lIEJSSURHRV9WSVJUX0JBU0UJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweDIwMDAwKQorI2RlZmluZSAgQlJJREdFX1JFRyh4KQkJKEJSSURHRV9WSVJUX0JBU0UgfCAoeCkpCisjZGVmaW5lICBSU1RPVVRuX01BU0sJCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTA4KQorI2RlZmluZSAgIFNPRlRfUkVTRVRfT1VUX0VOCTB4MDAwMDAwMDQKKyNkZWZpbmUgIFNZU1RFTV9TT0ZUX1JFU0VUCShCUklER0VfVklSVF9CQVNFIHwgMHgwMTBjKQorI2RlZmluZSAgIFNPRlRfUkVTRVQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgIEJSSURHRV9DQVVTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTApCisjZGVmaW5lICBCUklER0VfTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMTQpCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjEJMHgwMDA0CisjZGVmaW5lICAgQlJJREdFX0lOVF9USU1FUjFfQ0xSCTB4MDAwNAorI2RlZmluZSAgSVJRX1ZJUlRfQkFTRQkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAyMDApCisjZGVmaW5lICAgSVJRX0NBVVNFX09GRgkJMHgwMDAwCisjZGVmaW5lICAgSVJRX01BU0tfT0ZGCQkweDAwMDQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKworI2RlZmluZSBQQ0lFMF9WSVJUX0JBU0UJCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHgzMDAwMCkKKworI2RlZmluZSBQQ0lFMV9WSVJUX0JBU0UJCShMT0tJX1JFR1NfVklSVF9CQVNFIHwgMHg0MDAwMCkKKworI2RlZmluZSBTQVMwX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweDgwMDAwKQorCisjZGVmaW5lIFNBUzFfUEhZU19CQVNFCQkoTE9LSV9SRUdTX1BIWVNfQkFTRSB8IDB4OTAwMDApCisKKyNkZWZpbmUgR0UwX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweGEwMDAwKQorI2RlZmluZSBHRTBfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4YTAwMDApCisKKyNkZWZpbmUgR0UxX1BIWVNfQkFTRQkJKExPS0lfUkVHU19QSFlTX0JBU0UgfCAweGIwMDAwKQorI2RlZmluZSBHRTFfVklSVF9CQVNFCQkoTE9LSV9SRUdTX1ZJUlRfQkFTRSB8IDB4YjAwMDApCisKKyNkZWZpbmUgRERSX1ZJUlRfQkFTRQkJKExPS0lfUkVHU19WSVJUX0JBU0UgfCAweGYwMDAwKQorI2RlZmluZSBERFJfUkVHKHgpCQkoRERSX1ZJUlRfQkFTRSB8ICh4KSkKKworCisjZGVmaW5lIEdQSU9fTUFYCQk4CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL21lbW9yeS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzUxMDFlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaApAQCAtMCwwICsxLDE0IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9tZW1vcnkuaAorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NRU1PUllfSAorI2RlZmluZSBfX0FTTV9BUkNIX01FTU9SWV9ICisKKyNkZWZpbmUgUEhZU19PRkZTRVQJCVVMKDB4MDAwMDAwMDApCisKKyNkZWZpbmUgX192aXJ0X3RvX2J1cyh4KQlfX3ZpcnRfdG9fcGh5cyh4KQorI2RlZmluZSBfX2J1c190b192aXJ0KHgpCV9fcGh5c190b192aXJ0KHgpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzU2OGFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaApAQCAtMCwwICsxLDM3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS9zeXN0ZW0uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9TWVNURU1fSAorI2RlZmluZSBfX0FTTV9BUkNIX1NZU1RFTV9ICisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2xva2kuaD4KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfaWRsZSh2b2lkKQoreworCWNwdV9kb19pZGxlKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3Jlc2V0KGNoYXIgbW9kZSkKK3sKKwkvKgorCSAqIEVuYWJsZSBzb2Z0IHJlc2V0IHRvIGFzc2VydCBSU1RPVVRuLgorCSAqLworCXdyaXRlbChTT0ZUX1JFU0VUX09VVF9FTiwgUlNUT1VUbl9NQVNLKTsKKworCS8qCisJICogQXNzZXJ0IHNvZnQgcmVzZXQuCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVQsIFNZU1RFTV9TT0ZUX1JFU0VUKTsKKworCXdoaWxlICgxKQorCQk7Cit9CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3RpbWV4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQwMDE0ZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdGltZXguaApAQCAtMCwwICsxLDExIEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS90aW1leC5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2RlZmluZSBDTE9DS19USUNLX1JBVEUJCSgxMDAgKiBIWikKKworI2RlZmluZSBMT0tJX1RDTEsJCTE4MDAwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS91bmNvbXByZXNzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3VuY29tcHJlc3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OWEwY2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbG9raS91bmNvbXByZXNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdW5jb21wcmVzcy5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9sb2tpLmg+CisKKyNkZWZpbmUgU0VSSUFMX0JBU0UJKCh1bnNpZ25lZCBjaGFyICopVUFSVDBfUEhZU19CQVNFKQorCitzdGF0aWMgdm9pZCBwdXRjKGNvbnN0IGNoYXIgYykKK3sKKwl1bnNpZ25lZCBjaGFyICpiYXNlID0gU0VSSUFMX0JBU0U7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBVQVJUX0xTUl9USFJFKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOworfQorCitzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQorfQorCisvKgorICogbm90aGluZyB0byBkbworICovCisjZGVmaW5lIGFyY2hfZGVjb21wX3NldHVwKCkKKyNkZWZpbmUgYXJjaF9kZWNvbXBfd2RvZygpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLWxva2kvdm1hbGxvYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YmUwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaApAQCAtMCwwICsxLDUgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1sb2tpL3ZtYWxsb2MuaAorICovCisKKyNkZWZpbmUgVk1BTExPQ19FTkQJMHhmZTgwMDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW1zbS9pcnFzLmgKaW5kZXggNTY1NDMwYy4uZTYyYTEwOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vaXJxcy5oCkBAIC0xNSw2ICsxNSw3IEBACiAgKi8KIAogI2lmbmRlZiBfX0FTTV9BUkNIX01TTV9JUlFTX0gKKyNkZWZpbmUgX19BU01fQVJDSF9NU01fSVJRU19ICiAKIC8qIE1TTSBBUk0xMSBJbnRlcnJ1cHQgTnVtYmVycyAqLwogLyogU2VlIDgwLVZFMTEzLTEgQSwgcHAyMTktMjIxICAgICAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXNtL3RpbWV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaAppbmRleCAxNTRiMjNmLi44NzI0NDg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tc20vdGltZXguaApAQCAtMTQsNiArMTQsNyBAQAogICovCiAKICNpZm5kZWYgX19BU01fQVJDSF9NU01fVElNRVhfSAorI2RlZmluZSBfX0FTTV9BUkNIX01TTV9USU1FWF9ICiAKICNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkxMDAwMDAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZGVidWctbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDU5NWJkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9kZWJ1Zy1tYWNyby5TCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2RlYnVnLW1hY3JvLlMKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorKi8KKworI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworCS5tYWNybwlhZGRydWFydCxyeAorCW1yYwlwMTUsIDAsIFxyeCwgYzEsIGMwCisJdHN0CVxyeCwgIzEJCQkJCUAgTU1VIGVuYWJsZWQ/CisJbGRyZXEJXHJ4LCA9TVY3OFhYMF9SRUdTX1BIWVNfQkFTRQorCWxkcm5lCVxyeCwgPU1WNzhYWDBfUkVHU19WSVJUX0JBU0UKKwlvcnIJXHJ4LCBccngsICMweDAwMDEyMDAwCisJLmVuZG0KKworI2RlZmluZSBVQVJUX1NISUZUCTIKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUvZGVidWctODI1MC5TPgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9kbWEuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZG1hLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDBhOGMxNwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZG1hLmgKQEAgLTAsMCArMSBAQAorLyogZW1wdHkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZW50cnktbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvZW50cnktbWFjcm8uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWE2MDZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9lbnRyeS1tYWNyby5TCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2VudHJ5LW1hY3JvLlMKKyAqCisgKiBMb3ctbGV2ZWwgSVJRIGhlbHBlciBtYWNyb3MgZm9yIE1hcnZlbGwgTVY3OHh4MCBwbGF0Zm9ybXMKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorCisJLm1hY3JvICBkaXNhYmxlX2ZpcQorCS5lbmRtCisKKwkubWFjcm8gIGFyY2hfcmV0X3RvX3VzZXIsIHRtcDEsIHRtcDIKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfcHJlYW1ibGUsIGJhc2UsIHRtcAorCWxkcglcYmFzZSwgPUlSUV9WSVJUX0JBU0UKKwkuZW5kbQorCisJLm1hY3JvICBnZXRfaXJxbnJfYW5kX2Jhc2UsIGlycW5yLCBpcnFzdGF0LCBiYXNlLCB0bXAKKwlAIGNoZWNrIGxvdyBpbnRlcnJ1cHRzCisJbGRyCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfTE9XX09GRl0KKwlsZHIJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfTE9XX09GRl0KKwltb3YJXGlycW5yLCAjMzEKKwlhbmRzCVxpcnFzdGF0LCBcaXJxc3RhdCwgXHRtcAorCisJQCBpZiBubyBsb3cgaW50ZXJydXB0cyBzZXQsIGNoZWNrIGhpZ2ggaW50ZXJydXB0cworCWxkcmVxCVxpcnFzdGF0LCBbXGJhc2UsICNJUlFfQ0FVU0VfSElHSF9PRkZdCisJbGRyZXEJXHRtcCwgW1xiYXNlLCAjSVJRX01BU0tfSElHSF9PRkZdCisJbW92ZXEJXGlycW5yLCAjNjMKKwlhbmRlcXMJXGlycXN0YXQsIFxpcnFzdGF0LCBcdG1wCisKKwlAIGZpbmQgZmlyc3QgYWN0aXZlIGludGVycnVwdCBzb3VyY2UKKwljbHpuZQlcaXJxc3RhdCwgXGlycXN0YXQKKwlzdWJuZQlcaXJxbnIsIFxpcnFuciwgXGlycXN0YXQKKwkuZW5kbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlMTc5MjYwCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9oYXJkd2FyZS5oCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2hhcmR3YXJlLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSEFSRFdBUkVfSAorI2RlZmluZSBfX0FTTV9BUkNIX0hBUkRXQVJFX0gKKworI2luY2x1ZGUgIm12Nzh4eDAuaCIKKworI2RlZmluZSBwY2liaW9zX2Fzc2lnbl9hbGxfYnVzc2VzKCkJMQorCisjZGVmaW5lIFBDSUJJT1NfTUlOX0lPCQkJMHgwMDAwMTAwMAorI2RlZmluZSBQQ0lCSU9TX01JTl9NRU0JCQkweDAxMDAwMDAwCisjZGVmaW5lIFBDSU1FTV9CQVNFCQkJTVY3OFhYMF9QQ0lFX01FTV9QSFlTX0JBU0UgLyogbWVtIGJhc2UgZm9yIFZHQSAqLworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNWQ0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lvLmgKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaW8uaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9JT19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSU9fSAorCisjaW5jbHVkZSAibXY3OHh4MC5oIgorCisjZGVmaW5lIElPX1NQQUNFX0xJTUlUCQkweGZmZmZmZmZmCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX2lvbWVtICpfX2lvKHVuc2lnbmVkIGxvbmcgYWRkcikKK3sKKwlyZXR1cm4gKHZvaWQgX19pb21lbSAqKSgoYWRkciAtIE1WNzhYWDBfUENJRV9JT19QSFlTX0JBU0UoMCkpCisJCQkJCSsgTVY3OFhYMF9QQ0lFX0lPX1ZJUlRfQkFTRSgwKSk7Cit9CisKKyNkZWZpbmUgX19pbyhhKQkJCV9faW8oYSkKKyNkZWZpbmUgX19tZW1fcGNpKGEpCQkoYSkKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaXJxcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9pcnFzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU5MzA0NQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvaXJxcy5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL2lycXMuaAorICoKKyAqIElSUSBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQ3MKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfSVJRU19ICisjZGVmaW5lIF9fQVNNX0FSQ0hfSVJRU19ICisKKyNpbmNsdWRlICJtdjc4eHgwLmgiCS8qIG5lZWQgR1BJT19NQVggKi8KKworLyoKKyAqIE1WNzh4eDAgTG93IEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX01WNzhYWDBfRVJSCQkwCisjZGVmaW5lIElSUV9NVjc4WFgwX1NQSQkJMQorI2RlZmluZSBJUlFfTVY3OFhYMF9JMkNfMAkyCisjZGVmaW5lIElSUV9NVjc4WFgwX0kyQ18xCTMKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8wCTQKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8xCTUKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8yCTYKKyNkZWZpbmUgSVJRX01WNzhYWDBfSURNQV8zCTcKKyNkZWZpbmUgSVJRX01WNzhYWDBfVElNRVJfMAk4CisjZGVmaW5lIElSUV9NVjc4WFgwX1RJTUVSXzEJOQorI2RlZmluZSBJUlFfTVY3OFhYMF9USU1FUl8yCTEwCisjZGVmaW5lIElSUV9NVjc4WFgwX1RJTUVSXzMJMTEKKyNkZWZpbmUgSVJRX01WNzhYWDBfVUFSVF8wCTEyCisjZGVmaW5lIElSUV9NVjc4WFgwX1VBUlRfMQkxMworI2RlZmluZSBJUlFfTVY3OFhYMF9VQVJUXzIJMTQKKyNkZWZpbmUgSVJRX01WNzhYWDBfVUFSVF8zCTE1CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8wCTE2CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8xCTE3CisjZGVmaW5lIElSUV9NVjc4WFgwX1VTQl8yCTE4CisjZGVmaW5lIElSUV9NVjc4WFgwX0NSWVBUTwkxOQorI2RlZmluZSBJUlFfTVY3OFhYMF9TRElPXzAJMjAKKyNkZWZpbmUgSVJRX01WNzhYWDBfU0RJT18xCTIxCisjZGVmaW5lIElSUV9NVjc4WFgwX1hPUl8wCTIyCisjZGVmaW5lIElSUV9NVjc4WFgwX1hPUl8xCTIzCisjZGVmaW5lIElSUV9NVjc4WFgwX0kyU18wCTI0CisjZGVmaW5lIElSUV9NVjc4WFgwX0kyU18xCTI1CisjZGVmaW5lIElSUV9NVjc4WFgwX1NBVEEJMjYKKyNkZWZpbmUgSVJRX01WNzhYWDBfVERNSQkyNworCisvKgorICogTVY3OHh4MCBIaWdoIEludGVycnVwdCBDb250cm9sbGVyCisgKi8KKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8wMAkzMgorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzAxCTMzCisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMDIJMzQKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8wMwkzNQorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzEwCTM2CisjZGVmaW5lIElSUV9NVjc4WFgwX1BDSUVfMTEJMzcKKyNkZWZpbmUgSVJRX01WNzhYWDBfUENJRV8xMgkzOAorI2RlZmluZSBJUlFfTVY3OFhYMF9QQ0lFXzEzCTM5CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDBfU1VNCTQwCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDBfUlgJNDEKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMF9UWAk0MgorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAwX01JU0MJNDMKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMV9TVU0JNDQKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UwMV9SWAk0NQorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTAxX1RYCTQ2CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMDFfTUlTQwk0NworI2RlZmluZSBJUlFfTVY3OFhYMF9HRTEwX1NVTQk0OAorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTEwX1JYCTQ5CisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTBfVFgJNTAKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMF9NSVNDCTUxCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTFfU1VNCTUyCisjZGVmaW5lIElSUV9NVjc4WFgwX0dFMTFfUlgJNTMKKyNkZWZpbmUgSVJRX01WNzhYWDBfR0UxMV9UWAk1NAorI2RlZmluZSBJUlFfTVY3OFhYMF9HRTExX01JU0MJNTUKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT18wXzcJNTYKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT184XzE1CTU3CisjZGVmaW5lIElSUV9NVjc4WFgwX0dQSU9fMTZfMjMJNTgKKyNkZWZpbmUgSVJRX01WNzhYWDBfR1BJT18yNF8zMQk1OQorI2RlZmluZSBJUlFfTVY3OFhYMF9EQl9JTgk2MAorI2RlZmluZSBJUlFfTVY3OFhYMF9EQl9PVVQJNjEKKworLyoKKyAqIE1WNzhYWDAgR2VuZXJhbCBQdXJwb3NlIFBpbnMKKyAqLworI2RlZmluZSBJUlFfTVY3OFhYMF9HUElPX1NUQVJUCTY0CisjZGVmaW5lIE5SX0dQSU9fSVJRUwkJR1BJT19NQVgKKworI2RlZmluZSBOUl9JUlFTCQkJKElSUV9NVjc4WFgwX0dQSU9fU1RBUlQgKyBOUl9HUElPX0lSUVMpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL21lbW9yeS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjFhNmIxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaApAQCAtMCwwICsxLDE0IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC9tZW1vcnkuaAorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NRU1PUllfSAorI2RlZmluZSBfX0FTTV9BUkNIX01FTU9SWV9ICisKKyNkZWZpbmUgUEhZU19PRkZTRVQJCVVMKDB4MDAwMDAwMDApCisKKyNkZWZpbmUgX192aXJ0X3RvX2J1cyh4KQlfX3ZpcnRfdG9fcGh5cyh4KQorI2RlZmluZSBfX2J1c190b192aXJ0KHgpCV9fcGh5c190b192aXJ0KHgpCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbXY3OHh4MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmNWQ4M2MKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL212Nzh4eDAuaApAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvbXY3OHh4MC5oCisgKgorICogR2VuZXJpYyBkZWZpbml0aW9ucyBmb3IgTWFydmVsbCBNVjc4eHgwIFNvQyBmbGF2b3JzOgorICogIE1WNzgxeDAgYW5kIE1WNzgyeDAuCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01WNzhYWDBfSAorI2RlZmluZSBfX0FTTV9BUkNIX01WNzhYWDBfSAorCisvKgorICogTWFydmVsbCBNVjc4eHgwIGFkZHJlc3MgbWFwcy4KKyAqCisgKiBwaHlzCisgKiBjMDAwMDAwMAlQQ0llIE1lbW9yeSBzcGFjZQorICogZjA4MDAwMDAJUENJZSAjMCBJL08gc3BhY2UKKyAqIGYwOTAwMDAwCVBDSWUgIzEgSS9PIHNwYWNlCisgKiBmMGEwMDAwMAlQQ0llICMyIEkvTyBzcGFjZQorICogZjBiMDAwMDAJUENJZSAjMyBJL08gc3BhY2UKKyAqIGYwYzAwMDAwCVBDSWUgIzQgSS9PIHNwYWNlCisgKiBmMGQwMDAwMAlQQ0llICM1IEkvTyBzcGFjZQorICogZjBlMDAwMDAJUENJZSAjNiBJL08gc3BhY2UKKyAqIGYwZjAwMDAwCVBDSWUgIzcgSS9PIHNwYWNlCisgKiBmMTAwMDAwMAlvbi1jaGlwIHBlcmlwaGVyYWwgcmVnaXN0ZXJzCisgKgorICogdmlydAkJcGh5cwkJc2l6ZQorICogZmU0MDAwMDAJZjEwMngwMDAJMTZLCWNvcmUtc3BlY2lmaWMgcGVyaXBoZXJhbCByZWdpc3RlcnMKKyAqIGZlNzAwMDAwCWYwODAwMDAwCTFNCVBDSWUgIzAgSS9PIHNwYWNlCisgKiBmZTgwMDAwMAlmMDkwMDAwMAkxTQlQQ0llICMxIEkvTyBzcGFjZQorICogZmU5MDAwMDAJZjBhMDAwMDAJMU0JUENJZSAjMiBJL08gc3BhY2UKKyAqIGZlYTAwMDAwCWYwYjAwMDAwCTFNCVBDSWUgIzMgSS9PIHNwYWNlCisgKiBmZWIwMDAwMAlmMGMwMDAwMAkxTQlQQ0llICM0IEkvTyBzcGFjZQorICogZmVjMDAwMDAJZjBkMDAwMDAJMU0JUENJZSAjNSBJL08gc3BhY2UKKyAqIGZlZDAwMDAwCWYwZTAwMDAwCTFNCVBDSWUgIzYgSS9PIHNwYWNlCisgKiBmZWUwMDAwMAlmMGYwMDAwMAkxTQlQQ0llICM3IEkvTyBzcGFjZQorICogZmVmMDAwMDAJZjEwMDAwMDAJMU0Jb24tY2hpcCBwZXJpcGhlcmFsIHJlZ2lzdGVycworICovCisjZGVmaW5lIE1WNzhYWDBfQ09SRTBfUkVHU19QSFlTX0JBU0UJMHhmMTAyMDAwMAorI2RlZmluZSBNVjc4WFgwX0NPUkUxX1JFR1NfUEhZU19CQVNFCTB4ZjEwMjQwMDAKKyNkZWZpbmUgTVY3OFhYMF9DT1JFX1JFR1NfVklSVF9CQVNFCTB4ZmU0MDAwMDAKKyNkZWZpbmUgTVY3OFhYMF9DT1JFX1JFR1NfU0laRQkJU1pfMTZLCisKKyNkZWZpbmUgTVY3OFhYMF9QQ0lFX0lPX1BIWVNfQkFTRShpKQkoMHhmMDgwMDAwMCArICgoaSkgPDwgMjApKQorI2RlZmluZSBNVjc4WFgwX1BDSUVfSU9fVklSVF9CQVNFKGkpCSgweGZlNzAwMDAwICsgKChpKSA8PCAyMCkpCisjZGVmaW5lIE1WNzhYWDBfUENJRV9JT19TSVpFCQlTWl8xTQorCisjZGVmaW5lIE1WNzhYWDBfUkVHU19QSFlTX0JBU0UJCTB4ZjEwMDAwMDAKKyNkZWZpbmUgTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRQkJMHhmZWYwMDAwMAorI2RlZmluZSBNVjc4WFgwX1JFR1NfU0laRQkJU1pfMU0KKworI2RlZmluZSBNVjc4WFgwX1BDSUVfTUVNX1BIWVNfQkFTRQkweGMwMDAwMDAwCisjZGVmaW5lIE1WNzhYWDBfUENJRV9NRU1fU0laRQkJMHgzMDAwMDAwMAorCisvKgorICogQ29yZS1zcGVjaWZpYyBwZXJpcGhlcmFsIHJlZ2lzdGVycy4KKyAqLworI2RlZmluZSBCUklER0VfVklSVF9CQVNFCShNVjc4WFgwX0NPUkVfUkVHU19WSVJUX0JBU0UpCisjZGVmaW5lICBDUFVfQ09OVFJPTAkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDQpCisjZGVmaW5lICAgTDJfV1JJVEVUSFJPVUdICTB4MDAwMjAwMDAKKyNkZWZpbmUgIFJTVE9VVG5fTUFTSwkJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMDgpCisjZGVmaW5lICAgU09GVF9SRVNFVF9PVVRfRU4JMHgwMDAwMDAwNAorI2RlZmluZSAgU1lTVEVNX1NPRlRfUkVTRVQJKEJSSURHRV9WSVJUX0JBU0UgfCAweDAxMGMpCisjZGVmaW5lICAgU09GVF9SRVNFVAkJMHgwMDAwMDAwMQorI2RlZmluZSAgQlJJREdFX0NBVVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExMCkKKyNkZWZpbmUgIEJSSURHRV9NQVNLCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDExNCkKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMAkweDAwMDIKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgICBCUklER0VfSU5UX1RJTUVSMV9DTFIJKH4weDAwMDQpCisjZGVmaW5lICBJUlFfVklSVF9CQVNFCQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDIwMCkKKyNkZWZpbmUgICBJUlFfQ0FVU0VfTE9XX09GRgkweDAwMDQKKyNkZWZpbmUgICBJUlFfQ0FVU0VfSElHSF9PRkYJMHgwMDA4CisjZGVmaW5lICAgSVJRX01BU0tfTE9XX09GRgkweDAwMTAKKyNkZWZpbmUgICBJUlFfTUFTS19ISUdIX09GRgkweDAwMTQKKyNkZWZpbmUgIFRJTUVSX1ZJUlRfQkFTRQkoQlJJREdFX1ZJUlRfQkFTRSB8IDB4MDMwMCkKKworLyoKKyAqIFJlZ2lzdGVyIE1hcAorICovCisjZGVmaW5lIEREUl9WSVJUX0JBU0UJCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHgwMDAwMCkKKyNkZWZpbmUgIEREUl9XSU5ET1dfQ1BVMF9CQVNFCShERFJfVklSVF9CQVNFIHwgMHgxNTAwKQorI2RlZmluZSAgRERSX1dJTkRPV19DUFUxX0JBU0UJKEREUl9WSVJUX0JBU0UgfCAweDE3MDApCisKKyNkZWZpbmUgREVWX0JVU19QSFlTX0JBU0UJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDEwMDAwKQorI2RlZmluZSBERVZfQlVTX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4MTAwMDApCisjZGVmaW5lICBTQU1QTEVfQVRfUkVTRVRfTE9XCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzMCkKKyNkZWZpbmUgIFNBTVBMRV9BVF9SRVNFVF9ISUdICShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MDAzNCkKKyNkZWZpbmUgIFVBUlQwX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIwMDApCisjZGVmaW5lICBVQVJUMF9WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMDAwKQorI2RlZmluZSAgVUFSVDFfUEhZU19CQVNFCShERVZfQlVTX1BIWVNfQkFTRSB8IDB4MjEwMCkKKyNkZWZpbmUgIFVBUlQxX1ZJUlRfQkFTRQkoREVWX0JVU19WSVJUX0JBU0UgfCAweDIxMDApCisjZGVmaW5lICBVQVJUMl9QSFlTX0JBU0UJKERFVl9CVVNfUEhZU19CQVNFIHwgMHgyMjAwKQorI2RlZmluZSAgVUFSVDJfVklSVF9CQVNFCShERVZfQlVTX1ZJUlRfQkFTRSB8IDB4MjIwMCkKKyNkZWZpbmUgIFVBUlQzX1BIWVNfQkFTRQkoREVWX0JVU19QSFlTX0JBU0UgfCAweDIzMDApCisjZGVmaW5lICBVQVJUM19WSVJUX0JBU0UJKERFVl9CVVNfVklSVF9CQVNFIHwgMHgyMzAwKQorCisjZGVmaW5lIEdFMTBfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4MzAwMDApCisjZGVmaW5lIEdFMTFfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4MzQwMDApCisKKyNkZWZpbmUgUENJRTAwX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4NDAwMDApCisjZGVmaW5lIFBDSUUwMV9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDQ0MDAwKQorI2RlZmluZSBQQ0lFMDJfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg0ODAwMCkKKyNkZWZpbmUgUENJRTAzX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4NGMwMDApCisKKyNkZWZpbmUgVVNCMF9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MDAwMCkKKyNkZWZpbmUgVVNCMV9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MTAwMCkKKyNkZWZpbmUgVVNCMl9QSFlTX0JBU0UJCShNVjc4WFgwX1JFR1NfUEhZU19CQVNFIHwgMHg1MjAwMCkKKworI2RlZmluZSBHRTAwX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDcwMDAwKQorI2RlZmluZSBHRTAxX1BIWVNfQkFTRQkJKE1WNzhYWDBfUkVHU19QSFlTX0JBU0UgfCAweDc0MDAwKQorCisjZGVmaW5lIFBDSUUxMF9WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDgwMDAwKQorI2RlZmluZSBQQ0lFMTFfVklSVF9CQVNFCShNVjc4WFgwX1JFR1NfVklSVF9CQVNFIHwgMHg4NDAwMCkKKyNkZWZpbmUgUENJRTEyX1ZJUlRfQkFTRQkoTVY3OFhYMF9SRUdTX1ZJUlRfQkFTRSB8IDB4ODgwMDApCisjZGVmaW5lIFBDSUUxM19WSVJUX0JBU0UJKE1WNzhYWDBfUkVHU19WSVJUX0JBU0UgfCAweDhjMDAwKQorCisjZGVmaW5lIFNBVEFfUEhZU19CQVNFCQkoTVY3OFhYMF9SRUdTX1BIWVNfQkFTRSB8IDB4YTAwMDApCisKKworI2RlZmluZSBHUElPX01BWAkJMzIKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvc3lzdGVtLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlYjQ3ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3N5c3RlbS5oCisgKgorICogVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIHZlcnNpb24gMi4gIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX1NZU1RFTV9ICisjZGVmaW5lIF9fQVNNX0FSQ0hfU1lTVEVNX0gKKworI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvbXY3OHh4MC5oPgorCitzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pZGxlKHZvaWQpCit7CisJY3B1X2RvX2lkbGUoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFyY2hfcmVzZXQoY2hhciBtb2RlKQoreworCS8qCisJICogRW5hYmxlIHNvZnQgcmVzZXQgdG8gYXNzZXJ0IFJTVE9VVG4uCisJICovCisJd3JpdGVsKFNPRlRfUkVTRVRfT1VUX0VOLCBSU1RPVVRuX01BU0spOworCisJLyoKKwkgKiBBc3NlcnQgc29mdCByZXNldC4KKwkgKi8KKwl3cml0ZWwoU09GVF9SRVNFVCwgU1lTVEVNX1NPRlRfUkVTRVQpOworCisJd2hpbGUgKDEpCisJCTsKK30KKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODU0YjFjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC90aW1leC5oCkBAIC0wLDAgKzEsOSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdGltZXguaAorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuICBUaGlzIHByb2dyYW0gaXMgbGljZW5zZWQgImFzIGlzIiB3aXRob3V0IGFueQorICogd2FycmFudHkgb2YgYW55IGtpbmQsIHdoZXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICovCisKKyNkZWZpbmUgQ0xPQ0tfVElDS19SQVRFCQkoMTAwICogSFopCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3VuY29tcHJlc3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdW5jb21wcmVzcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmUwYTIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1tdjc4eHgwL3VuY29tcHJlc3MuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC91bmNvbXByZXNzLmgKKyAqCisgKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgdmVyc2lvbiAyLiAgVGhpcyBwcm9ncmFtIGlzIGxpY2Vuc2VkICJhcyBpcyIgd2l0aG91dCBhbnkKKyAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvc2VyaWFsX3JlZy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL212Nzh4eDAuaD4KKworI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCisKK3N0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQoreworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoYmFzZVtVQVJUX0xTUiA8PCAyXSAmIFVBUlRfTFNSX1RIUkUpCisJCQlicmVhazsKKwkJYmFycmllcigpOworCX0KKworCWJhc2VbVUFSVF9UWCA8PCAyXSA9IGM7Cit9CisKK3N0YXRpYyB2b2lkIGZsdXNoKHZvaWQpCit7CisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCXVuc2lnbmVkIGNoYXIgbWFzazsKKwlpbnQgaTsKKworCW1hc2sgPSBVQVJUX0xTUl9URU1UIHwgVUFSVF9MU1JfVEhSRTsKKworCWZvciAoaSA9IDA7IGkgPCAweDEwMDA7IGkrKykgeworCQlpZiAoKGJhc2VbVUFSVF9MU1IgPDwgMl0gJiBtYXNrKSA9PSBtYXNrKQorCQkJYnJlYWs7CisJCWJhcnJpZXIoKTsKKwl9Cit9CisKKy8qCisgKiBub3RoaW5nIHRvIGRvCisgKi8KKyNkZWZpbmUgYXJjaF9kZWNvbXBfc2V0dXAoKQorI2RlZmluZSBhcmNoX2RlY29tcF93ZG9nKCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXY3OHh4MC92bWFsbG9jLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJjNTEyMQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oCkBAIC0wLDAgKzEsNSBAQAorLyoKKyAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW12Nzh4eDAvdm1hbGxvYy5oCisgKi8KKworI2RlZmluZSBWTUFMTE9DX0VORAkweGZlMDAwMDAwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgyN2Fkcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MjdhZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWU2NmRhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MjdhZHMuaApAQCAtMCwwICsxLDM1NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA1LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqLworCisvKgorICogVGhlIGNvZGUgY29udGFpbmVkIGhlcmVpbiBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBWZXJzaW9uIDIgb3IgbGF0ZXIgYXQgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CisgKgorICogaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtbGljZW5zZS5odG1sCisgKiBodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvZ3BsLmh0bWwKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fCisKKy8qIGV4dGVybmFsIGludGVycnVwdCBtdWx0aXBsZXhlciAqLworI2RlZmluZSBNWENfRVhQX0lPX0JBU0UJCShNWENfR1BJT19CQVNFICsgTVhDX01BWF9HUElPX0xJTkVTKQorCisjZGVmaW5lIE1YQ19WSVJUVUFMX0lOVFNfQkFTRQkoTVhDX0VYUF9JT19CQVNFICsgTVhDX01BWF9FWFBfSU9fTElORVMpCisjZGVmaW5lIE1YQ19TRElPMV9DQVJEX0lSUQlNWENfVklSVFVBTF9JTlRTX0JBU0UKKyNkZWZpbmUgTVhDX1NESU8yX0NBUkRfSVJRCShNWENfVklSVFVBTF9JTlRTX0JBU0UgKyAxKQorI2RlZmluZSBNWENfU0RJTzNfQ0FSRF9JUlEJKE1YQ19WSVJUVUFMX0lOVFNfQkFTRSArIDIpCisKKyNkZWZpbmUgTVhDX01BWF9CT0FSRF9JTlRTICAgICAgKE1YQ19NQVhfRVhQX0lPX0xJTkVTICsgXAorCQkJCU1YQ19NQVhfVklSVFVBTF9JTlRTKQorCisvKgorICogTVhDIFVBUlQgRVZCIGJvYXJkIGxldmVsIGNvbmZpZ3VyYXRpb25zCisgKi8KKworI2RlZmluZSBNWENfTExfRVhUVUFSVF9QQUREUgkoQ1M0X0JBU0VfQUREUiArIDB4MjAwMDApCisjZGVmaW5lIE1YQ19MTF9FWFRVQVJUX1ZBRERSCShDUzRfQkFTRV9BRERSX1ZJUlQgKyAweDIwMDAwKQorI2RlZmluZSBNWENfTExfRVhUVUFSVF8xNkJJVF9CVVMKKworI2RlZmluZSBNWENfTExfVUFSVF9QQUREUiAgICAgICBVQVJUMV9CQVNFX0FERFIKKyNkZWZpbmUgTVhDX0xMX1VBUlRfVkFERFIgICAgICAgQUlQSV9JT19BRERSRVNTKFVBUlQxX0JBU0VfQUREUikKKworLyoKKyAqIEBuYW1lIE1lbW9yeSBTaXplIHBhcmFtZXRlcnMKKyAqLworCisvKgorICogU2l6ZSBvZiBTRFJBTSBtZW1vcnkKKyAqLworI2RlZmluZSBTRFJBTV9NRU1fU0laRSAgICAgICAgICBTWl8xMjhNCisKKy8qCisgKiBQQkMgQ29udHJvbGxlciBwYXJhbWV0ZXJzCisgKi8KKworLyoKKyAqIEJhc2UgYWRkcmVzcyBvZiBQQkMgY29udHJvbGxlciwgQ1M0CisgKi8KKyNkZWZpbmUgUEJDX0JBU0VfQUREUkVTUyAgICAgICAgMHhFQjAwMDAwMAorI2RlZmluZSBQQkNfUkVHX0FERFIob2Zmc2V0KSAgICAoUEJDX0JBU0VfQUREUkVTUyArIChvZmZzZXQpKQorCisvKgorICogUEJDIEludGVydXB0IG5hbWUgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfR1BJTzFfMCAgMAorI2RlZmluZSBQQkNfR1BJTzFfMSAgMQorI2RlZmluZSBQQkNfR1BJTzFfMiAgMgorI2RlZmluZSBQQkNfR1BJTzFfMyAgMworI2RlZmluZSBQQkNfR1BJTzFfNCAgNAorI2RlZmluZSBQQkNfR1BJTzFfNSAgNQorCisjZGVmaW5lIFBCQ19JTlRSX01BWF9OVU0gNgorI2RlZmluZSBQQkNfSU5UUl9TSEFSRURfTUFYX05VTSA4CisKKy8qIFdoZW4gdGhlIFBCQyBhZGRyZXNzIGNvbm5lY3Rpb24gaXMgZml4ZWQgaW4gaC93LCBkZWZpbmVkIGFzIDEgKi8KKyNkZWZpbmUgUEJDX0FERFJfU0ggICAgICAgICAgICAgMAorCisvKiBPZmZzZXRzIGZvciB0aGUgUEJDIENvbnRyb2xsZXIgcmVnaXN0ZXIgKi8KKy8qCisgKiBQQkMgQm9hcmQgdmVyc2lvbiByZWdpc3RlciBvZmZzZXQKKyAqLworI2RlZmluZSBQQkNfVkVSU0lPTl9SRUcgICAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAwMCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAxIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDA4ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDEgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwxX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAwQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAyIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDJfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDEwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDIgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwyX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAxNCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAzIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDNfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDE4ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDMgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkwzX0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAxQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgY29udHJvbCByZWdpc3RlciAzIHNldCBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19CQ1RSTDRfU0VUX1JFRyAgICAgIFBCQ19SRUdfQUREUigweDAwMDIwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBCb2FyZCBjb250cm9sIHJlZ2lzdGVyIDQgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQkNUUkw0X0NMRUFSX1JFRyAgICBQQkNfUkVHX0FERFIoMHgwMDAyNCA+PiBQQkNfQUREUl9TSCkKKy8qUEJDX0FERFJfU0gKKyAqIFBCQyBCb2FyZCBzdGF0dXMgcmVnaXN0ZXIgMS4KKyAqLworI2RlZmluZSBQQkNfQlNUQVQxX1JFRyAgICAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAyOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgaW50ZXJydXB0IHN0YXR1cyByZWdpc3Rlci4KKyAqLworI2RlZmluZSBQQkNfSU5UU1RBVFVTX1JFRyAgICAgICBQQkNfUkVHX0FERFIoMHgwMDAyQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgQm9hcmQgaW50ZXJydXB0IGN1cnJlbnQgc3RhdHVzIHJlZ2lzdGVyLgorICovCisjZGVmaW5lIFBCQ19JTlRDVVJSX1NUQVRVU19SRUcgIFBCQ19SRUdfQUREUigweDAwMDM0ID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFBCQyBJbnRlcnJ1cHQgbWFzayByZWdpc3RlciBzZXQgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfSU5UTUFTS19TRVRfUkVHICAgICBQQkNfUkVHX0FERFIoMHgwMDAzOCA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBQQkMgSW50ZXJydXB0IG1hc2sgcmVnaXN0ZXIgY2xlYXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfSU5UTUFTS19DTEVBUl9SRUcgICBQQkNfUkVHX0FERFIoMHgwMDAzQyA+PiBQQkNfQUREUl9TSCkKKy8qCisgKiBFeHRlcm5hbCBVQVJUIEEuCisgKi8KKyNkZWZpbmUgUEJDX1NDMTZDNjUyX1VBUlRBX1JFRyAgUEJDX1JFR19BRERSKDB4MjAwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogVUFSVCA0IEV4cGFuZGluZyBTaWduYWwgU3RhdHVzLgorICovCisjZGVmaW5lIFBCQ19VQVJUX1NUQVRVU19SRUcgICAgIFBCQ19SRUdfQUREUigweDIyMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFVBUlQgNCBFeHBhbmRpbmcgU2lnbmFsIENvbnRyb2wgU2V0LgorICovCisjZGVmaW5lIFBCQ19VQ1RSTF9TRVRfUkVHICAgICAgIFBCQ19SRUdfQUREUigweDI0MDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIFVBUlQgNCBFeHBhbmRpbmcgU2lnbmFsIENvbnRyb2wgQ2xlYXIuCisgKi8KKyNkZWZpbmUgUEJDX1VDVFJMX0NMUl9SRUcgICAgICAgUEJDX1JFR19BRERSKDB4MjYwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogRXRoZXJuZXQgQ29udHJvbGxlciBJTyBiYXNlIGFkZHJlc3MuCisgKi8KKyNkZWZpbmUgUEJDX0NTODkwMEFfSU9CQVNFX1JFRyAgUEJDX1JFR19BRERSKDB4NDAwMDAgPj4gUEJDX0FERFJfU0gpCisvKgorICogRXRoZXJuZXQgQ29udHJvbGxlciBNZW1vcnkgYmFzZSBhZGRyZXNzLgorICovCisjZGVmaW5lIFBCQ19DUzg5MDBBX01FTUJBU0VfUkVHIFBCQ19SRUdfQUREUigweDQyMDAwID4+IFBCQ19BRERSX1NIKQorLyoKKyAqIEV0aGVybmV0IENvbnRyb2xsZXIgRE1BIGJhc2UgYWRkcmVzcy4KKyAqLworI2RlZmluZSBQQkNfQ1M4OTAwQV9ETUFCQVNFX1JFRyBQQkNfUkVHX0FERFIoMHg0NDAwMCA+PiBQQkNfQUREUl9TSCkKKworLyogUEJDIEJvYXJkIFZlcnNpb24gUmVnaXN0ZXIgYml0IGRlZmluaXRpb24gKi8KKyNkZWZpbmUgUEJDX1ZFUlNJT05fQURTICAgICAgICAgMHg4MDAwCS8qIEJpdDE1PTEgbWVhbnMgdmVyc2lvbiBmb3IgYWRzICovCisjZGVmaW5lIFBCQ19WRVJTSU9OX0VWQl9SRVZCICAgIDB4NDAwMAkvKiBCSVQxND0xIG1lYW5zIHZlcnNpb24gZm9yIGV2YiByZXZiICovCisKKy8qIFBCQyBCb2FyZCBDb250cm9sIFJlZ2lzdGVyIDEgYml0IGRlZmluaXRpb25zICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfRVJTVCAgICAgICAgIDB4MDAwMQkvKiBFdGhlcm5ldCBSZXNldCAqLworI2RlZmluZSBQQkNfQkNUUkwxX1VSU1QgICAgICAgICAweDAwMDIJLyogUmVzZXQgRXh0ZXJuYWwgVUFSVCBjb250cm9sbGVyICovCisjZGVmaW5lIFBCQ19CQ1RSTDFfRlJTVCAgICAgICAgIDB4MDAwNAkvKiBGRUMgUmVzZXQgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMV9FU0xFRVAgICAgICAgMHgwMDEwCS8qIEVuYWJsZSBldGhlcm5ldCBTbGVlcCAqLworI2RlZmluZSBQQkNfQkNUUkwxX0xDRE9OICAgICAgICAweDA4MDAJLyogRW5hYmxlIHRoZSBMQ0QgKi8KKworLyogUEJDIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgMiBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUEJDX0JDVFJMMl9WQ0NfRU4gICAgICAgMHgwMDA0CS8qICAgRW5hYmxlIFZDQyAqLworI2RlZmluZSBQQkNfQkNUUkwyX1ZQUF9FTiAgICAgICAweDAwMDgJLyogICBFbmFibGUgVnBwICovCisjZGVmaW5lIFBCQ19CQ1RSTDJfQVRBRkVDX0VOICAgIDBYMDAxMAorI2RlZmluZSBQQkNfQkNUUkwyX0FUQUZFQ19TRUwgICAwWDAwMjAKKyNkZWZpbmUgUEJDX0JDVFJMMl9BVEFfRU4gICAgICAgMFgwMDQwCisjZGVmaW5lIFBCQ19CQ1RSTDJfSVJEQV9TRCAgICAgIDBYMDA4MAorI2RlZmluZSBQQkNfQkNUUkwyX0lSREFfRU4gICAgICAwWDAxMDAKKyNkZWZpbmUgUEJDX0JDVFJMMl9DQ1RMMTAgICAgICAgMFgwMjAwCisjZGVmaW5lIFBCQ19CQ1RSTDJfQ0NUTDExICAgICAgIDBYMDQwMAorCisvKiBQQkMgQm9hcmQgQ29udHJvbCBSZWdpc3RlciAzIGJpdCBkZWZpbml0aW9ucyAqLworI2RlZmluZSBQQkNfQkNUUkwzX0hTSF9FTiAgICAgICAwWDAwMjAKKyNkZWZpbmUgUEJDX0JDVFJMM19GU0hfTU9EICAgICAgMFgwMDQwCisjZGVmaW5lIFBCQ19CQ1RSTDNfT1RHX0hTX0VOICAgIDBYMDA4MAorI2RlZmluZSBQQkNfQkNUUkwzX09UR19WQlVTX0VOICAwWDAxMDAKKyNkZWZpbmUgUEJDX0JDVFJMM19GU0hfVkJVU19FTiAgMFgwMjAwCisjZGVmaW5lIFBCQ19CQ1RSTDNfVVNCX09UR19PTiAgIDBYMDgwMAorI2RlZmluZSBQQkNfQkNUUkwzX1VTQl9GU0hfT04gICAwWDEwMDAKKworLyogUEJDIEJvYXJkIENvbnRyb2wgUmVnaXN0ZXIgNCBiaXQgZGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUEJDX0JDVFJMNF9SRUdFTl9TRUwgICAgMFgwMDAxCisjZGVmaW5lIFBCQ19CQ1RSTDRfVVNFUl9PRkYgICAgIDBYMDAwMgorI2RlZmluZSBQQkNfQkNUUkw0X1ZJQl9FTiAgICAgICAwWDAwMDQKKyNkZWZpbmUgUEJDX0JDVFJMNF9QV1JHVDFfRU4gICAgMFgwMDA4CisjZGVmaW5lIFBCQ19CQ1RSTDRfUFdSR1QyX0VOICAgIDBYMDAxMAorI2RlZmluZSBQQkNfQkNUUkw0X1NUREJZX1BSSSAgICAwWDAwMjAKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKy8qCisgKiBFbnVtZXJhdGlvbnMgZm9yIFNEIGNhcmRzIGFuZCBtZW1vcnkgc3RpY2sgY2FyZC4gVGhpcyBjb3JyZXNwb25kcyB0bworICogdGhlIGNhcmQgRU4gYml0cyBpbiB0aGUgSU1SOiBTRDFfRU4gfCBNU19FTiB8IFNEM19FTiB8IFNEMl9FTi4KKyAqLworZW51bSBteGNfY2FyZF9ubyB7CisJTVhDX0NBUkRfU0QyID0gMCwKKwlNWENfQ0FSRF9TRDMsCisJTVhDX0NBUkRfTVMsCisJTVhDX0NBUkRfU0QxLAorCU1YQ19DQVJEX01JTiA9IE1YQ19DQVJEX1NEMiwKKwlNWENfQ0FSRF9NQVggPSBNWENfQ0FSRF9TRDEsCit9OworI2VuZGlmCisKKyNkZWZpbmUgTVhDX0NQTERfVkVSXzFfNTAgICAgICAgMHgwMQorCisvKgorICogUEJDIEJTVEFUIFJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucworICovCisjZGVmaW5lIFBCQ19CU1RBVF9QUklfSU5UICAgICAgIDBYMDAwMQorI2RlZmluZSBQQkNfQlNUQVRfVVNCX0JZUCAgICAgICAwWDAwMDIKKyNkZWZpbmUgUEJDX0JTVEFUX0FUQV9JT0NTMTYgICAgMFgwMDA0CisjZGVmaW5lIFBCQ19CU1RBVF9BVEFfQ0JMSUQgICAgIDBYMDAwOAorI2RlZmluZSBQQkNfQlNUQVRfQVRBX0RBU1AgICAgICAwWDAwMTAKKyNkZWZpbmUgUEJDX0JTVEFUX1BXUl9SRFkgICAgICAgMFgwMDIwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDNfV1AgICAgICAgIDBYMDEwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QyX1dQICAgICAgICAwWDAyMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMV9XUCAgICAgICAgMFgwNDAwCisjZGVmaW5lIFBCQ19CU1RBVF9TRDNfREVUICAgICAgIDBYMDgwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QyX0RFVCAgICAgICAwWDEwMDAKKyNkZWZpbmUgUEJDX0JTVEFUX1NEMV9ERVQgICAgICAgMFgyMDAwCisjZGVmaW5lIFBCQ19CU1RBVF9NU19ERVQgICAgICAgIDBYNDAwMAorI2RlZmluZSBQQkNfQlNUQVRfU0QzX0RFVF9CSVQgICAxMQorI2RlZmluZSBQQkNfQlNUQVRfU0QyX0RFVF9CSVQgICAxMgorI2RlZmluZSBQQkNfQlNUQVRfU0QxX0RFVF9CSVQgICAxMworI2RlZmluZSBQQkNfQlNUQVRfTVNfREVUX0JJVCAgICAxNAorI2RlZmluZSBNWENfQlNUQVRfQklUKG4pICAgICAgICAoKG4gPT0gTVhDX0NBUkRfU0QyKSA/IFBCQ19CU1RBVF9TRDJfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfU0QzKSA/IFBCQ19CU1RBVF9TRDNfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfU0QxKSA/IFBCQ19CU1RBVF9TRDFfREVUIDogXAorCQkJCSAoKG4gPT0gTVhDX0NBUkRfTVMpID8gUEJDX0JTVEFUX01TX0RFVCA6IFwKKwkJCQkJMHgwKSkpKQorCisvKgorICogUEJDIFVBUlQgQ29udHJvbCBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfVUNUUkxfRENFX0RDRCAgICAgICAwWDAwMDEKKyNkZWZpbmUgUEJDX1VDVFJMX0RDRV9EU1IgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19VQ1RSTF9EQ0VfUkkgICAgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfVUNUUkxfRFRFX0RUUiAgICAgICAwWDAxMDAKKworLyoKKyAqIFBCQyBVQVJUIFN0YXR1cyBSZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMKKyAqLworI2RlZmluZSBQQkNfVVNUQVRfRFRFX0RDRCAgICAgICAwWDAwMDEKKyNkZWZpbmUgUEJDX1VTVEFUX0RURV9EU1IgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19VU1RBVF9EVEVfUkkgICAgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfVVNUQVRfRENFX0RUUiAgICAgICAwWDAxMDAKKworLyoKKyAqIFBCQyBJbnRlcnVwdCBtYXNrIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucworICovCisjZGVmaW5lIFBCQ19JTlRSX1NEM19SX0VOX0JJVCAgIDQKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX1JfRU5fQklUICAgMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfUl9FTl9CSVQgICA2CisjZGVmaW5lIFBCQ19JTlRSX01TX1JfRU5fQklUICAgIDUKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX0VOX0JJVCAgICAgMTMKKyNkZWZpbmUgUEJDX0lOVFJfU0QyX0VOX0JJVCAgICAgMTIKKyNkZWZpbmUgUEJDX0lOVFJfTVNfRU5fQklUICAgICAgMTQKKyNkZWZpbmUgUEJDX0lOVFJfU0QxX0VOX0JJVCAgICAgMTUKKworI2RlZmluZSBQQkNfSU5UUl9TRDJfUl9FTiAgICAgICAweDAwMDEKKyNkZWZpbmUgUEJDX0lOVFJfTE9XX0JBVCAgICAgICAgMFgwMDAyCisjZGVmaW5lIFBCQ19JTlRSX09UR19GU09WRVIgICAgIDBYMDAwNAorI2RlZmluZSBQQkNfSU5UUl9GU0hfT1ZFUiAgICAgICAwWDAwMDgKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX1JfRU4gICAgICAgMHgwMDEwCisjZGVmaW5lIFBCQ19JTlRSX01TX1JfRU4gICAgICAgIDB4MDAyMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfUl9FTiAgICAgICAweDAwNDAKKyNkZWZpbmUgUEJDX0lOVFJfRkVDX0lOVCAgICAgICAgMFgwMDgwCisjZGVmaW5lIFBCQ19JTlRSX0VORVRfSU5UICAgICAgIDBYMDEwMAorI2RlZmluZSBQQkNfSU5UUl9PVEdGU19JTlQgICAgICAwWDAyMDAKKyNkZWZpbmUgUEJDX0lOVFJfWFVBUlRfSU5UICAgICAgMFgwNDAwCisjZGVmaW5lIFBCQ19JTlRSX0NDVEwxMiAgICAgICAgIDBYMDgwMAorI2RlZmluZSBQQkNfSU5UUl9TRDJfRU4gICAgICAgICAweDEwMDAKKyNkZWZpbmUgUEJDX0lOVFJfU0QzX0VOICAgICAgICAgMHgyMDAwCisjZGVmaW5lIFBCQ19JTlRSX01TX0VOICAgICAgICAgIDB4NDAwMAorI2RlZmluZSBQQkNfSU5UUl9TRDFfRU4gICAgICAgICAweDgwMDAKKworCisKKy8qIEZvciBpbnRlcnJ1cHRzIGxpa2UgeHVhcnQsIGVuZXQgZXRjICovCisjZGVmaW5lIEVYUElPX1BBUkVOVF9JTlQgICAgICAgIElPTVVYX1RPX0lSUShNWDI3X1BJTl9USU4pCisjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTICAgIDE2CisKKy8qCisgKiBUaGlzIGNvcnJlc3BvbmRzIHRvIFBCQ19JTlRNQVNLX1NFVF9SRUcgYXQgb2Zmc2V0IDB4MzguCisgKgorICovCisjZGVmaW5lIEVYUElPX0lOVF9MT1dfQkFUICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAxKQorI2RlZmluZSBFWFBJT19JTlRfT1RHX0ZTX09WUiAgICAoTVhDX0VYUF9JT19CQVNFICsgMikKKyNkZWZpbmUgRVhQSU9fSU5UX0ZTSF9PVlIgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDMpCisjZGVmaW5lIEVYUElPX0lOVF9SRVM0ICAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyA0KQorI2RlZmluZSBFWFBJT19JTlRfUkVTNSAgICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgNSkKKyNkZWZpbmUgRVhQSU9fSU5UX1JFUzYgICAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDYpCisjZGVmaW5lIEVYUElPX0lOVF9GRUMgICAgICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyA3KQorI2RlZmluZSBFWFBJT19JTlRfRU5FVF9JTlQgICAgICAoTVhDX0VYUF9JT19CQVNFICsgOCkKKyNkZWZpbmUgRVhQSU9fSU5UX09UR19GU19JTlQgICAgKE1YQ19FWFBfSU9fQkFTRSArIDkpCisjZGVmaW5lIEVYUElPX0lOVF9YVUFSVF9JTlRBICAgIChNWENfRVhQX0lPX0JBU0UgKyAxMCkKKyNkZWZpbmUgRVhQSU9fSU5UX0NDVEwxMl9JTlQgICAgKE1YQ19FWFBfSU9fQkFTRSArIDExKQorI2RlZmluZSBFWFBJT19JTlRfU0QyX0VOICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMTIpCisjZGVmaW5lIEVYUElPX0lOVF9TRDNfRU4gICAgICAgIChNWENfRVhQX0lPX0JBU0UgKyAxMykKKyNkZWZpbmUgRVhQSU9fSU5UX01TX0VOICAgICAgICAgKE1YQ19FWFBfSU9fQkFTRSArIDE0KQorI2RlZmluZSBFWFBJT19JTlRfU0QxX0VOICAgICAgICAoTVhDX0VYUF9JT19CQVNFICsgMTUpCisKKy8qCisgKiBUaGlzIGlzIFN5c3RlbSBJUlEgdXNlZCBieSBDUzg5MDBBIGZvciBpbnRlcnJ1cHQgZ2VuZXJhdGlvbgorICogdGFrZW4gZnJvbSBwbGF0Zm9ybS5oCisgKi8KKyNkZWZpbmUgQ1M4OTAwQUlSUSAgICAgICAgICAgICAgRVhQSU9fSU5UX0VORVRfSU5UCisvKiBUaGlzIGlzIEkvTyBCYXNlIGFkZHJlc3MgdXNlZCB0byBhY2Nlc3MgcmVnaXN0ZXJzIG9mIENTODkwMEEgb24gTVhDIEFEUyAqLworI2RlZmluZSBDUzg5MDBBX0JBU0VfQUREUkVTUyAgICAoUEJDX0NTODkwMEFfSU9CQVNFX1JFRyArIDB4MzAwKQorCisjZGVmaW5lIE1YQ19QTUlDX0lOVF9MSU5FICAgICAgIElPTVVYX1RPX0lSUShNWDI3X1BJTl9UT1VUKQorCisvKgorKiBUaGlzIGlzIHVzZWQgdG8gZGV0ZWN0IGlmIHRoZSBDUExEIHZlcnNpb24gaXMgZm9yIG14MjcgZXZiIGJvYXJkIHJldi1hCisqLworI2RlZmluZSBQQkNfQ1BMRF9WRVJTSU9OX0lTX1JFVkEoKSBcCisJKChfX3Jhd19yZWFkdyhQQkNfVkVSU0lPTl9SRUcpICYgXAorCShQQkNfVkVSU0lPTl9BRFMgfCBQQkNfVkVSU0lPTl9FVkJfUkVWQikpXAorCT09IDApCisKKy8qIFRoaXMgaXMgdXNlZCB0byBhY3RpdmUgb3IgaW5hY3RpdmUgYXRhIHNpZ25hbCBpbiBDUExEIC4KKyAqICBJdCBpcyBkZXBlbmRlbnQgd2l0aCBoYXJkd2FyZQorICovCisjZGVmaW5lIFBCQ19BVEFfU0lHTkFMX0FDVElWRSgpIFwKKwlfX3Jhd193cml0ZXcoICAgICAgICAgICBcCisJCVBCQ19CQ1RSTDJfQVRBRkVDX0VOfFBCQ19CQ1RSTDJfQVRBRkVDX1NFTHxQQkNfQkNUUkwyX0FUQV9FTiwgXAorCQlQQkNfQkNUUkwyX0NMRUFSX1JFRykKKworI2RlZmluZSBQQkNfQVRBX1NJR05BTF9JTkFDVElWRSgpIFwKKwlfX3Jhd193cml0ZXcoICBcCisJCVBCQ19CQ1RSTDJfQVRBRkVDX0VOfFBCQ19CQ1RSTDJfQVRBRkVDX1NFTHxQQkNfQkNUUkwyX0FUQV9FTiwgXAorCQlQQkNfQkNUUkwyX1NFVF9SRUcpCisKKyNkZWZpbmUgTVhDX0JEX0xFRDEgICAgICAgICAgICAgKDEgPDwgNSkKKyNkZWZpbmUgTVhDX0JEX0xFRDIgICAgICAgICAgICAgKDEgPDwgNikKKyNkZWZpbmUgTVhDX0JEX0xFRF9PTihsZWQpIFwKKwlfX3Jhd193cml0ZXcobGVkLCBQQkNfQkNUUkwxX1NFVF9SRUcpCisjZGVmaW5lIE1YQ19CRF9MRURfT0ZGKGxlZCkgXAorCV9fcmF3X3dyaXRldyhsZWQsIFBCQ19CQ1RSTDFfQ0xFQVJfUkVHKQorCisvKiB0byBkZXRlcm1pbmUgdGhlIGNvcnJlY3QgZXh0ZXJuYWwgY3J5c3RhbCByZWZlcmVuY2UgKi8KKyNkZWZpbmUgQ0tJSF8yN01IWl9CSVRfU0VUICAgICAgKDEgPDwgMykKKworI2VuZGlmCQkJCS8qIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMjdBRFNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWFkcy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFhZHMuaAppbmRleCA4NTkwMTI3Li4xYmM2ZmIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtbXgzMWFkcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxYWRzLmgKQEAgLTEwOSw0ICsxMDksOSBAQAogCiAjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTCTE2CiAKKy8qIG1hbmRhdG9yeSBmb3IgQ09ORklHX0xMX0RFQlVHICovCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIJVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSCUFJUFMxX0lPX0FERFJFU1MoVUFSVDFfQkFTRV9BRERSKQorCiAjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfTVgzMUFEU19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxbGl0ZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLW14MzFsaXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRlNWNmNQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1teDMxbGl0ZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICovCisKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfQk9BUkRfTVgzMUxJVEVfSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX01YMzFMSVRFX0hfXworCisjZGVmaW5lIE1YQ19NQVhfRVhQX0lPX0xJTkVTCTE2CisKKworLyoKKyAqIE1lbW9yeSBTaXplIHBhcmFtZXRlcnMKKyAqLworCisvKgorICogU2l6ZSBvZiBTRFJBTSBtZW1vcnkKKyAqLworI2RlZmluZSBTRFJBTV9NRU1fU0laRQkJU1pfMTI4TQorLyoKKyAqIFNpemUgb2YgTUJYIGJ1ZmZlciBtZW1vcnkKKyAqLworI2RlZmluZSBNWENfTUJYX01FTV9TSVpFCVNaXzE2TQorLyoKKyAqIFNpemUgb2YgbWVtb3J5IGF2YWlsYWJsZSB0byBrZXJuZWwKKyAqLworI2RlZmluZSBNRU1fU0laRQkJKFNEUkFNX01FTV9TSVpFIC0gTVhDX01CWF9NRU1fU0laRSkKKworI2RlZmluZSBNWENfTExfVUFSVF9QQUREUglVQVJUMV9CQVNFX0FERFIKKyNkZWZpbmUgTVhDX0xMX1VBUlRfVkFERFIJQUlQUzFfSU9fQUREUkVTUyhVQVJUMV9CQVNFX0FERFIpCisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19CT0FSRF9NWDMxQURTX0hfXyAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM3LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIyMzJiYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ib2FyZC1wY20wMzcuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwOCBTYXNjaGEgSGF1ZXIsIFBlbmd1dHJvbml4CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM3X0hfXworI2RlZmluZSBfX0FTTV9BUkNIX01YQ19CT0FSRF9QQ00wMzdfSF9fCisKKy8qIG1hbmRhdG9yeSBmb3IgQ09ORklHX0xMX0RFQlVHICovCisKKyNkZWZpbmUgTVhDX0xMX1VBUlRfUEFERFIJVUFSVDFfQkFTRV9BRERSCisjZGVmaW5lIE1YQ19MTF9VQVJUX1ZBRERSCUFJUFMxX0lPX0FERFJFU1MoVUFSVDFfQkFTRV9BRERSKQorCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM3X0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzOC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2JvYXJkLXBjbTAzOC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MGM2MmEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvYm9hcmQtcGNtMDM4LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWVyZ2VuIEJlaXNlcnQgKGtlcm5lbEBwZW5ndXRyb25peC5kZSkKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0JPQVJEX1BDTTAzOF9IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfQk9BUkRfUENNMDM4X0hfXworCisvKiBtYW5kYXRvcnkgZm9yIENPTkZJR19MTF9ERUJVRyAqLworCisjZGVmaW5lIE1YQ19MTF9VQVJUX1BBRERSCVVBUlQxX0JBU0VfQUREUgorI2RlZmluZSBNWENfTExfVUFSVF9WQUREUgkoQUlQSV9CQVNFX0FERFJfVklSVCArIDB4MEEwMDApCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisvKgorICogVGhpcyBDUFUgbW9kdWxlIG5lZWRzIGEgYmFzZWJvYXJkIHRvIHdvcmsuIEFmdGVyIGJhc2ljIGluaXRpYWxpemluZworICogaXRzIG93biBkZXZpY2VzLCBpdCBjYWxscyBiYXNlYm9hcmQncyBpbml0IGZ1bmN0aW9uLgorICogVE9ETzogQWRkIHlvdXIgb3duIGJhc2Vib2FyZCBpbml0IGZ1bmN0aW9uIGFuZCBjYWxsIGl0IGZyb20KKyAqIGluc2lkZSBwY20wMzhfaW5pdCgpLgorICoKKyAqIFRoaXMgZXhhbXBsZSBoZXJlIGlzIGZvciB0aGUgZGV2ZWxvcG1lbnQgYm9hcmQuIFJlZmVyIHBjbTk3MC1iYXNlYm9hcmQuYworICovCisKK2V4dGVybiB2b2lkIHBjbTk3MF9iYXNlYm9hcmRfaW5pdCh2b2lkKTsKKworI2VuZGlmCisKKyNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19CT0FSRF9QQ00wMzhfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY2xvY2suaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9jbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0Y2FhMmIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY2xvY2suaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IDIwMDUtMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwKKyAqIE1BICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19DTE9DS19IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfQ0xPQ0tfSF9fCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCitzdHJ1Y3QgbW9kdWxlOworCitzdHJ1Y3QgY2xrIHsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7CisJc3RydWN0IG1vZHVsZSAqb3duZXI7CisJY29uc3QgY2hhciAqbmFtZTsKKwlpbnQgaWQ7CisJLyogU291cmNlIGNsb2NrIHRoaXMgY2xrIGRlcGVuZHMgb24gKi8KKwlzdHJ1Y3QgY2xrICpwYXJlbnQ7CisJLyogU2Vjb25kYXJ5IGNsb2NrIHRvIGVuYWJsZS9kaXNhYmxlIHdpdGggdGhpcyBjbG9jayAqLworCXN0cnVjdCBjbGsgKnNlY29uZGFyeTsKKwkvKiBSZWZlcmVuY2UgY291bnQgb2YgY2xvY2sgZW5hYmxlL2Rpc2FibGUgKi8KKwlfX3M4IHVzZWNvdW50OworCS8qIFJlZ2lzdGVyIGJpdCBwb3NpdGlvbiBmb3IgY2xvY2sncyBlbmFibGUvZGlzYWJsZSBjb250cm9sLiAqLworCXU4IGVuYWJsZV9zaGlmdDsKKwkvKiBSZWdpc3RlciBhZGRyZXNzIGZvciBjbG9jaydzIGVuYWJsZS9kaXNhYmxlIGNvbnRyb2wuICovCisJdTMyIGVuYWJsZV9yZWc7CisJdTMyIGZsYWdzOworCS8qIGdldCB0aGUgY3VycmVudCBjbG9jayByYXRlIChhbHdheXMgYSBmcmVzaCB2YWx1ZSkgKi8KKwl1bnNpZ25lZCBsb25nICgqZ2V0X3JhdGUpIChzdHJ1Y3QgY2xrICopOworCS8qIEZ1bmN0aW9uIHB0ciB0byBzZXQgdGhlIGNsb2NrIHRvIGEgbmV3IHJhdGUuIFRoZSByYXRlIG11c3QgbWF0Y2ggYQorCSAgIHN1cHBvcnRlZCByYXRlIHJldHVybmVkIGZyb20gcm91bmRfcmF0ZS4gTGVhdmUgYmxhbmsgaWYgY2xvY2sgaXMgbm90CisJICAgcHJvZ3JhbW1hYmxlICovCisJaW50ICgqc2V0X3JhdGUpIChzdHJ1Y3QgY2xrICosIHVuc2lnbmVkIGxvbmcpOworCS8qIEZ1bmN0aW9uIHB0ciB0byByb3VuZCB0aGUgcmVxdWVzdGVkIGNsb2NrIHJhdGUgdG8gdGhlIG5lYXJlc3QKKwkgICBzdXBwb3J0ZWQgcmF0ZSB0aGF0IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcmVxdWVzdGVkIHJhdGUuICovCisJdW5zaWduZWQgbG9uZyAoKnJvdW5kX3JhdGUpIChzdHJ1Y3QgY2xrICosIHVuc2lnbmVkIGxvbmcpOworCS8qIEZ1bmN0aW9uIHB0ciB0byBlbmFibGUgdGhlIGNsb2NrLiBMZWF2ZSBibGFuayBpZiBjbG9jayBjYW4gbm90CisJICAgYmUgZ2F0ZWQuICovCisJaW50ICgqZW5hYmxlKSAoc3RydWN0IGNsayAqKTsKKwkvKiBGdW5jdGlvbiBwdHIgdG8gZGlzYWJsZSB0aGUgY2xvY2suIExlYXZlIGJsYW5rIGlmIGNsb2NrIGNhbiBub3QKKwkgICBiZSBnYXRlZC4gKi8KKwl2b2lkICgqZGlzYWJsZSkgKHN0cnVjdCBjbGsgKik7CisJLyogRnVuY3Rpb24gcHRyIHRvIHNldCB0aGUgcGFyZW50IGNsb2NrIG9mIHRoZSBjbG9jay4gKi8KKwlpbnQgKCpzZXRfcGFyZW50KSAoc3RydWN0IGNsayAqLCBzdHJ1Y3QgY2xrICopOworfTsKKworaW50IGNsa19yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspOwordm9pZCBjbGtfdW5yZWdpc3RlcihzdHJ1Y3QgY2xrICpjbGspOworCisjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCisjZW5kaWYgLyogX19BU01fQVJDSF9NWENfQ0xPQ0tfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY29tbW9uLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvY29tbW9uLmgKaW5kZXggMjNiNDM1MC4uYTZkMmUyNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9jb21tb24uaApAQCAtMTEsMTAgKzExLDEwIEBACiAjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0NPTU1PTl9IX18KICNkZWZpbmUgX19BU01fQVJDSF9NWENfQ09NTU9OX0hfXwogCi1zdHJ1Y3Qgc3lzX3RpbWVyOwotCiBleHRlcm4gdm9pZCBteGNfbWFwX2lvKHZvaWQpOwogZXh0ZXJuIHZvaWQgbXhjX2luaXRfaXJxKHZvaWQpOwotZXh0ZXJuIHN0cnVjdCBzeXNfdGltZXIgbXhjX3RpbWVyOworZXh0ZXJuIHZvaWQgbXhjX3RpbWVyX2luaXQoY29uc3QgY2hhciAqY2xrX3RpbWVyKTsKK2V4dGVybiBpbnQgbXhjX2Nsb2Nrc19pbml0KHVuc2lnbmVkIGxvbmcgZnJlZik7CitleHRlcm4gaW50IG14Y19yZWdpc3Rlcl9ncGlvcyh2b2lkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZGVidWctbWFjcm8uUyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9kZWJ1Zy1tYWNyby5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NTA4N2YKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZGVidWctbWFjcm8uUwpAQCAtMCwwICsxLDQ5IEBACisvKiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vYXJjaC1pbXgvZGVidWctbWFjcm8uUworICoKKyAqIERlYnVnZ2luZyBtYWNybyBpbmNsdWRlIGhlYWRlcgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTQtMTk5OSBSdXNzZWxsIEtpbmcKKyAqICBNb3ZlZCBmcm9tIGxpbnV4L2FyY2gvYXJtL2tlcm5lbC9kZWJ1Zy5TIGJ5IEJlbiBEb29rcworICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisKKyNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgorCisjaWZkZWYgQ09ORklHX01BQ0hfTVgzMUFEUworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MzFhZHMuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX1BDTTAzNworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLXBjbTAzNy5oPgorI2VuZGlmCisjaWZkZWYgQ09ORklHX01BQ0hfTVgzMUxJVEUKKyNpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxbGl0ZS5oPgorI2VuZGlmCisjaWZkZWYgQ09ORklHX01BQ0hfTVgyN0FEUworI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLW14MjdhZHMuaD4KKyNlbmRpZgorI2lmZGVmIENPTkZJR19NQUNIX1BDTTAzOAorI2luY2x1ZGUgPGFzbS9hcmNoL2JvYXJkLXBjbTAzOC5oPgorI2VuZGlmCisJCS5tYWNybwlhZGRydWFydCxyeAorCQltcmMJcDE1LCAwLCBccngsIGMxLCBjMAorCQl0c3QJXHJ4LCAjMQkJCUAgTU1VIGVuYWJsZWQ/CisJCWxkcmVxCVxyeCwgPU1YQ19MTF9VQVJUX1BBRERSCUAgcGh5c2ljYWwKKwkJbGRybmUJXHJ4LCA9TVhDX0xMX1VBUlRfVkFERFIJQCB2aXJ0dWFsCisJCS5lbmRtCisKKwkJLm1hY3JvCXNlbmR1YXJ0LHJkLHJ4CisJCXN0cglccmQsIFtccngsICMweDQwXQlAIFRYREFUQQorCQkuZW5kbQorCisJCS5tYWNybwl3YWl0dWFydCxyZCxyeAorCQkuZW5kbQorCisJCS5tYWNybwlidXN5dWFydCxyZCxyeAorMTAwMjoJCWxkcglccmQsIFtccngsICMweDk4XQlAIFNSMgorCQl0c3QJXHJkLCAjMSA8PCAzCQlAIFRYREMKKwkJYmVxCTEwMDJiCQkJQCB3YWl0IHVudGlsIHRyYW5zbWl0IGRvbmUKKwkJLmVuZG0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZ3Bpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOTNlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvZ3Bpby5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNyBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IDIwMDggSnVlcmdlbiBCZWlzZXJ0LCBrZXJuZWxAcGVuZ3V0cm9uaXguZGUKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIKKyAqIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0dQSU9fSF9fCisjZGVmaW5lIF9fQVNNX0FSQ0hfTVhDX0dQSU9fSF9fCisKKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9ncGlvLmg+CisKKy8qIHVzZSBncGlvbGliIGRpc3BhdGNoZXJzICovCisjZGVmaW5lIGdwaW9fZ2V0X3ZhbHVlCQlfX2dwaW9fZ2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fc2V0X3ZhbHVlCQlfX2dwaW9fc2V0X3ZhbHVlCisjZGVmaW5lIGdwaW9fY2Fuc2xlZXAJCV9fZ3Bpb19jYW5zbGVlcAorCisjZGVmaW5lIGdwaW9fdG9faXJxKGdwaW8pCShNWENfTUFYX0lOVF9MSU5FUyArIChncGlvKSkKKyNkZWZpbmUgaXJxX3RvX2dwaW8oaXJxKQkoKGlycSkgLSBNWENfTUFYX0lOVF9MSU5FUykKKworc3RydWN0IG14Y19ncGlvX3BvcnQgeworCXZvaWQgX19pb21lbSAqYmFzZTsKKwlpbnQgaXJxOworCWludCB2aXJ0dWFsX2lycV9zdGFydDsKKwlzdHJ1Y3QgZ3Bpb19jaGlwIGNoaXA7Cit9OworCitpbnQgbXhjX2dwaW9faW5pdChzdHJ1Y3QgbXhjX2dwaW9fcG9ydCosIGludCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaAppbmRleCBlODdmZjA2Li4zN2NkZGJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaGFyZHdhcmUuaApAQCAtMSwxMSArMSwyMCBAQAogLyoKLSAqICBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKi8KLQotLyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCiAjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0hBUkRXQVJFX0hfXwpAQCAtMTcsMTUgKzI2LDEyIEBACiAjIGluY2x1ZGUgPGFzbS9hcmNoL214MzEuaD4KICNlbmRpZgogCi0jaW5jbHVkZSA8YXNtL2FyY2gvbXhjLmg+Ci0KLS8qCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAqIEJvYXJkIHNwZWNpZmljIGRlZmluZXMKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICovCi0jaWZkZWYgQ09ORklHX01BQ0hfTVgzMUFEUwotIyBpbmNsdWRlIDxhc20vYXJjaC9ib2FyZC1teDMxYWRzLmg+CisjaWZkZWYgQ09ORklHX0FSQ0hfTVgyCisjIGlmZGVmIENPTkZJR19NQUNIX01YMjcKKyMgIGluY2x1ZGUgPGFzbS9hcmNoL214MjcuaD4KKyMgZW5kaWYKICNlbmRpZgogCisjaW5jbHVkZSA8YXNtL2FyY2gvbXhjLmg+CisKICNlbmRpZiAvKiBfX0FTTV9BUkNIX01YQ19IQVJEV0FSRV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9paW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9paW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTViZmZhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lpbS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgMjAwOCBKdWVyZ2VuIEJlaXNlcnQsIGtlcm5lbEBwZW5ndXRyb25peC5kZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfTVhDX0lJTV9IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfSUlNX0hfXworCisvKiBSZWdpc3RlciBvZmZzZXRzICovCisjZGVmaW5lIE1YQ19JSU1TVEFUICAgICAgICAgICAgIDB4MDAwMAorI2RlZmluZSBNWENfSUlNU1RBVE0gICAgICAgICAgICAweDAwMDQKKyNkZWZpbmUgTVhDX0lJTUVSUiAgICAgICAgICAgICAgMHgwMDA4CisjZGVmaW5lIE1YQ19JSU1FTUFTSyAgICAgICAgICAgIDB4MDAwQworI2RlZmluZSBNWENfSUlNRkNUTCAgICAgICAgICAgICAweDAwMTAKKyNkZWZpbmUgTVhDX0lJTVVBICAgICAgICAgICAgICAgMHgwMDE0CisjZGVmaW5lIE1YQ19JSU1MQSAgICAgICAgICAgICAgIDB4MDAxOAorI2RlZmluZSBNWENfSUlNU0RBVCAgICAgICAgICAgICAweDAwMUMKKyNkZWZpbmUgTVhDX0lJTVBSRVYgICAgICAgICAgICAgMHgwMDIwCisjZGVmaW5lIE1YQ19JSU1TUkVWICAgICAgICAgICAgIDB4MDAyNAorI2RlZmluZSBNWENfSUlNUFJHX1AgICAgICAgICAgICAweDAwMjgKKyNkZWZpbmUgTVhDX0lJTVNDUzAgICAgICAgICAgICAgMHgwMDJDCisjZGVmaW5lIE1YQ19JSU1TQ1MxICAgICAgICAgICAgIDB4MDAzMAorI2RlZmluZSBNWENfSUlNU0NTMiAgICAgICAgICAgICAweDAwMzQKKyNkZWZpbmUgTVhDX0lJTVNDUzMgICAgICAgICAgICAgMHgwMDM4CisjZGVmaW5lIE1YQ19JSU1GQkFDMCAgICAgICAgICAgIDB4MDgwMAorI2RlZmluZSBNWENfSUlNSkFDICAgICAgICAgICAgICAweDA4MDQKKyNkZWZpbmUgTVhDX0lJTUhXVjEgICAgICAgICAgICAgMHgwODA4CisjZGVmaW5lIE1YQ19JSU1IV1YyICAgICAgICAgICAgIDB4MDgwQworI2RlZmluZSBNWENfSUlNSEFCMCAgICAgICAgICAgICAweDA4MTAKKyNkZWZpbmUgTVhDX0lJTUhBQjEgICAgICAgICAgICAgMHgwODE0CisvKiBEZWZpbml0aW9ucyBmb3IgaS5NWDI3IFRPMiAqLworI2RlZmluZSBNWENfSUlNTUFDICAgICAgICAgICAgICAweDA4MTQKKyNkZWZpbmUgTVhDX0lJTVBSRVZfRlVTRSAgICAgICAgMHgwODE4CisjZGVmaW5lIE1YQ19JSU1TUkVWX0ZVU0UgICAgICAgIDB4MDgxQworI2RlZmluZSBNWENfSUlNU0pDX0NIQUxMXzAgICAgICAweDA4MjAKKyNkZWZpbmUgTVhDX0lJTVNKQ19DSEFMTF83ICAgICAgMHgwODNDCisjZGVmaW5lIE1YQ19JSU1GQjBVQzE3ICAgICAgICAgIDB4MDg0MAorI2RlZmluZSBNWENfSUlNRkIwVUMyNTUgICAgICAgICAweDBCRkMKKyNkZWZpbmUgTVhDX0lJTUZCQUMxICAgICAgICAgICAgMHgwQzAwCisvKiBEZWZpbml0aW9ucyBmb3IgaS5NWDI3IFRPMiAqLworI2RlZmluZSBNWENfSUlNU1VJRCAgICAgICAgICAgICAweDBDMDQKKyNkZWZpbmUgTVhDX0lJTUtFWTAgICAgICAgICAgICAgMHgwQzA0CisjZGVmaW5lIE1YQ19JSU1LRVkyMCAgICAgICAgICAgIDB4MEM1NAorI2RlZmluZSBNWENfSUlNU0pDX1JFU1BfMCAgICAgICAweDBDNTgKKyNkZWZpbmUgTVhDX0lJTVNKQ19SRVNQXzcgICAgICAgMHgwQzc0CisjZGVmaW5lIE1YQ19JSU1GQjFVQzMwICAgICAgICAgIDB4MEM3OAorI2RlZmluZSBNWENfSUlNRkIxVUMyNTUgICAgICAgICAweDBGRkMKKworLyogQml0IGRlZmluaXRpb25zICovCisKKyNkZWZpbmUgTVhDX0lJTUhXVjFfV0xPQ0sgICAgICAgICAgICAgICAoMHgxIDw8IDcpCisjZGVmaW5lIE1YQ19JSU1IV1YxX01DVV9FTkRJQU4gICAgICAgICAgKDB4MSA8PCA2KQorI2RlZmluZSBNWENfSUlNSFdWMV9EU1BfRU5ESUFOICAgICAgICAgICgweDEgPDwgNSkKKyNkZWZpbmUgTVhDX0lJTUhXVjFfQk9PVF9JTlQgICAgICAgICAgICAoMHgxIDw8IDQpCisjZGVmaW5lIE1YQ19JSU1IV1YxX1NDQ19ESVNBQkxFICAgICAgICAgKDB4MSA8PCAzKQorI2RlZmluZSBNWENfSUlNSFdWMV9IQU5UUk9fRElTQUJMRSAgICAgICgweDEgPDwgMikKKyNkZWZpbmUgTVhDX0lJTUhXVjFfTUVNU1RJQ0tfRElTICAgICAgICAoMHgxIDw8IDEpCisKKyNkZWZpbmUgTVhDX0lJTUhXVjJfV0xPQ0sgICAgICAgICAgICAgICAoMHgxIDw8IDcpCisjZGVmaW5lIE1YQ19JSU1IV1YyX0JQX1NETUEgICAgICAgICAgICAgKDB4MSA8PCA2KQorI2RlZmluZSBNWENfSUlNSFdWMl9TQ01fRENNICAgICAgICAgICAgICgweDEgPDwgNSkKKworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0lJTV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pbXgtdWFydC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lteC11YXJ0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNmYjcyYzQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW14LXVhcnQuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgQVNNQVJNX0FSQ0hfVUFSVF9ICisjZGVmaW5lIEFTTUFSTV9BUkNIX1VBUlRfSAorCisjZGVmaW5lIElNWFVBUlRfSEFWRV9SVFNDVFMgKDE8PDApCisKK3N0cnVjdCBpbXh1YXJ0X3BsYXRmb3JtX2RhdGEgeworCWludCAoKmluaXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCWludCAoKmV4aXQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCXVuc2lnbmVkIGludCBmbGFnczsKK307CisKK2ludCBfX2luaXQgaW14X2luaXRfdWFydChpbnQgdWFydF9ubywgc3RydWN0IGlteHVhcnRfcGxhdGZvcm1fZGF0YSAqcGRhdGEpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pb211eC1teDEtbXgyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgxLW14Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NmQzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgxLW14Mi5oCkBAIC0wLDAgKzEsMzcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IGJ5IFNhc2NoYSBIYXVlciA8a2VybmVsQHBlbmd1dHJvbml4LmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLAorICogTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX01YQ19HUElPX01YMV9NWDJfSAorI2RlZmluZSBfTVhDX0dQSU9fTVgxX01YMl9ICisKKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfTk9STUFMCTAKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9OT19BTExPQwkxCisjZGVmaW5lIE1YQ19HUElPX0FMTE9DX01PREVfVFJZX0FMTE9DCTIKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9BTExPQ19PTkxZCTQKKyNkZWZpbmUgTVhDX0dQSU9fQUxMT0NfTU9ERV9SRUxFQVNFCTgKKworLyoKKyAqICBHUElPIE1vZHVsZSBhbmQgSS9PIE11bHRpcGxleGVyCisgKiAgeCA9IDAuLjMgZm9yIHJlZ19BLCByZWdfQiwgcmVnX0MsIHJlZ19ECisgKi8KKyNkZWZpbmUgVkFfR1BJT19CQVNFCUlPX0FERFJFU1MoR1BJT19CQVNFX0FERFIpCisjZGVmaW5lIE1YQ19ERElSKHgpICAgICgweDAwICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX09DUjEoeCkgICAgKDB4MDQgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfT0NSMih4KSAgICAoMHgwOCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ09ORkExKHgpICgweDBjICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDT05GQTIoeCkgKDB4MTAgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNPTkZCMSh4KSAoMHgxNCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JQ09ORkIyKHgpICgweDE4ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0RSKHgpICAgICAgKDB4MWMgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfR0lVUyh4KSAgICAoMHgyMCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19TU1IoeCkgICAgICgweDI0ICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lDUjEoeCkgICAgKDB4MjggKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfSUNSMih4KSAgICAoMHgyYyArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19JTVIoeCkgICAgICgweDMwICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX0lTUih4KSAgICAgKDB4MzQgKyAoKHgpIDw8IDgpKQorI2RlZmluZSBNWENfR1BSKHgpICAgICAoMHgzOCArICgoeCkgPDwgOCkpCisjZGVmaW5lIE1YQ19TV1IoeCkgICAgICgweDNjICsgKCh4KSA8PCA4KSkKKyNkZWZpbmUgTVhDX1BVRU4oeCkgICAgKDB4NDAgKyAoKHgpIDw8IDgpKQorCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgxCisjIGRlZmluZSBHUElPX1BPUlRfTUFYICAzCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfQVJDSF9NWDIKKyMgZGVmaW5lIEdQSU9fUE9SVF9NQVggIDUKKyNlbmRpZgorCisjaWZuZGVmIEdQSU9fUE9SVF9NQVgKKyMgZXJyb3IgIkdQSU8gY29uZmlnIHBvcnQgY291bnQgdW5rbm93biEiCisjZW5kaWYKKworI2RlZmluZSBHUElPX1BJTl9NQVNLIDB4MWYKKworI2RlZmluZSBHUElPX1BPUlRfU0hJRlQgNQorI2RlZmluZSBHUElPX1BPUlRfTUFTSyAoMHg3IDw8IEdQSU9fUE9SVF9TSElGVCkKKworI2RlZmluZSBHUElPX1BPUlRBICgwIDw8IEdQSU9fUE9SVF9TSElGVCkKKyNkZWZpbmUgR1BJT19QT1JUQiAoMSA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEMgKDIgPDwgR1BJT19QT1JUX1NISUZUKQorI2RlZmluZSBHUElPX1BPUlREICgzIDw8IEdQSU9fUE9SVF9TSElGVCkKKyNkZWZpbmUgR1BJT19QT1JURSAoNCA8PCBHUElPX1BPUlRfU0hJRlQpCisjZGVmaW5lIEdQSU9fUE9SVEYgKDUgPDwgR1BJT19QT1JUX1NISUZUKQorCisjZGVmaW5lIEdQSU9fT1VUICAgKDEgPDwgOCkKKyNkZWZpbmUgR1BJT19JTiAgICAoMCA8PCA4KQorI2RlZmluZSBHUElPX1BVRU4gICgxIDw8IDkpCisKKyNkZWZpbmUgR1BJT19QRiAgICAoMSA8PCAxMCkKKyNkZWZpbmUgR1BJT19BRiAgICAoMSA8PCAxMSkKKworI2RlZmluZSBHUElPX09DUl9TSElGVCAxMgorI2RlZmluZSBHUElPX09DUl9NQVNLICgzIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0FJTiAgICgwIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0JJTiAgICgxIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0NJTiAgICgyIDw8IEdQSU9fT0NSX1NISUZUKQorI2RlZmluZSBHUElPX0dQSU8gICgzIDw8IEdQSU9fT0NSX1NISUZUKQorCisjZGVmaW5lIEdQSU9fQU9VVF9TSElGVCAxNAorI2RlZmluZSBHUElPX0FPVVRfTUFTSyAoMyA8PCBHUElPX0FPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQU9VVCAgICAgKDAgPDwgR1BJT19BT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0FPVVRfSVNSICgxIDw8IEdQSU9fQU9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19BT1VUXzAgICAoMiA8PCBHUElPX0FPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQU9VVF8xICAgKDMgPDwgR1BJT19BT1VUX1NISUZUKQorCisjZGVmaW5lIEdQSU9fQk9VVF9TSElGVCAxNgorI2RlZmluZSBHUElPX0JPVVRfTUFTSyAoMyA8PCBHUElPX0JPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQk9VVCAgICAgICgwIDw8IEdQSU9fQk9VVF9TSElGVCkKKyNkZWZpbmUgR1BJT19CT1VUX0lTUiAgKDEgPDwgR1BJT19CT1VUX1NISUZUKQorI2RlZmluZSBHUElPX0JPVVRfMCAgICAoMiA8PCBHUElPX0JPVVRfU0hJRlQpCisjZGVmaW5lIEdQSU9fQk9VVF8xICAgICgzIDw8IEdQSU9fQk9VVF9TSElGVCkKKworZXh0ZXJuIHZvaWQgbXhjX2dwaW9fbW9kZShpbnQgZ3Bpb19tb2RlKTsKK2V4dGVybiBpbnQgbXhjX2dwaW9fc2V0dXBfbXVsdGlwbGVfcGlucyhjb25zdCBpbnQgKnBpbl9saXN0LCB1bnNpZ25lZCBjb3VudCwKKwkJCQkJaW50IGFsbG9jX21vZGUsIGNvbnN0IGNoYXIgKmxhYmVsKTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogYXNzaWduZW1lbnRzIGZvciBHUElPIGFsdGVybmF0ZS9wcmltYXJ5IGZ1bmN0aW9ucyAqLworCisvKiBGSVhNRTogVGhpcyBsaXN0IGlzIG5vdCBjb21wbGV0ZWQuIFRoZSBjb3JyZWN0IGRpcmVjdGlvbnMgYXJlCisgKiBtaXNzaW5nIG9uIHNvbWUgKG1hbnkpIHBpbnMKKyAqLworI2lmZGVmIENPTkZJR19BUkNIX01YMQorI2RlZmluZSBQQTBfQUlOX1NQSTJfQ0xLICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgMCkKKyNkZWZpbmUgUEEwX0FGX0VUTVRSQUNFU1lOQyAgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMCkKKyNkZWZpbmUgUEExX0FPVVRfU1BJMl9SWEQgICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEEgfCBHUElPX0lOIHwgMSkKKyNkZWZpbmUgUEExX1BGX1RJTiAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMSkKKyNkZWZpbmUgUEEyX1BGX1BXTTAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyKQorI2RlZmluZSBQQTNfUEZfQ1NJX01DTEsgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAzKQorI2RlZmluZSBQQTRfUEZfQ1NJX0QwICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA0KQorI2RlZmluZSBQQTVfUEZfQ1NJX0QxICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA1KQorI2RlZmluZSBQQTZfUEZfQ1NJX0QyICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQTdfUEZfQ1NJX0QzICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA3KQorI2RlZmluZSBQQThfUEZfQ1NJX0Q0ICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA4KQorI2RlZmluZSBQQTlfUEZfQ1NJX0Q1ICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQTEwX1BGX0NTSV9ENiAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEExMV9QRl9DU0lfRDcgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBBMTJfUEZfQ1NJX1ZTWU5DICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQQTEzX1BGX0NTSV9IU1lOQyAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEExNF9QRl9DU0lfUElYQ0xLICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBBMTVfUEZfSTJDX1NEQSAgICAgIChHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTUpCisjZGVmaW5lIFBBMTZfUEZfSTJDX1NDTCAgICAgIChHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBBMTdfQUZfRVRNVFJBQ0VQS1Q0IChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDE3KQorI2RlZmluZSBQQTE3X0FJTl9TUEkyX1NTICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgMTcpCisjZGVmaW5lIFBBMThfQUZfRVRNVFJBQ0VQS1Q1IChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQTE5X0FGX0VUTVRSQUNFUEtUNiAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEEyMF9BRl9FVE1UUkFDRVBLVDcgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjApCisjZGVmaW5lIFBBMjFfUEZfQTAgICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQTIyX1BGX0NTNCAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyMikKKyNkZWZpbmUgUEEyM19QRl9DUzUgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBBMjRfUEZfQTE2ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQTI0X0FGX0VUTVRSQUNFUEtUMCAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyNCkKKyNkZWZpbmUgUEEyNV9QRl9BMTcgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBBMjVfQUZfRVRNVFJBQ0VQS1QxIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI1KQorI2RlZmluZSBQQTI2X1BGX0ExOCAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEEyNl9BRl9FVE1UUkFDRVBLVDIgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjYpCisjZGVmaW5lIFBBMjdfUEZfQTE5ICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQTI3X0FGX0VUTVRSQUNFUEtUMyAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAyNykKKyNkZWZpbmUgUEEyOF9QRl9BMjAgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBBMjhfQUZfRVRNUElQRVNUQVQwIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDI4KQorI2RlZmluZSBQQTI5X1BGX0EyMSAgICAgICAgICAoR1BJT19QT1JUQSB8IEdQSU9fUEYgfCAyOSkKKyNkZWZpbmUgUEEyOV9BRl9FVE1QSVBFU1RBVDEgKEdQSU9fUE9SVEEgfCBHUElPX0FGIHwgMjkpCisjZGVmaW5lIFBBMzBfUEZfQTIyICAgICAgICAgIChHUElPX1BPUlRBIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQQTMwX0FGX0VUTVBJUEVTVEFUMiAoR1BJT19QT1JUQSB8IEdQSU9fQUYgfCAzMCkKKyNkZWZpbmUgUEEzMV9QRl9BMjMgICAgICAgICAgKEdQSU9fUE9SVEEgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBBMzFfQUZfRVRNVFJBQ0VDTEsgIChHUElPX1BPUlRBIHwgR1BJT19BRiB8IDMxKQorI2RlZmluZSBQQjhfUEZfU0RfREFUMCAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCBHUElPX1BVRU4gfCA4KQorI2RlZmluZSBQQjhfQUZfTVNfUElPICAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCA4KQorI2RlZmluZSBQQjlfUEZfU0RfREFUMSAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCBHUElPX1BVRU4gIHwgOSkKKyNkZWZpbmUgUEI5X0FGX01TX1BJMSAgICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgOSkKKyNkZWZpbmUgUEIxMF9QRl9TRF9EQVQyICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgR1BJT19QVUVOICB8IDEwKQorI2RlZmluZSBQQjEwX0FGX01TX1NDTEtJICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxMCkKKyNkZWZpbmUgUEIxMV9QRl9TRF9EQVQzICAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBCMTFfQUZfTVNfU0RJTyAgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDExKQorI2RlZmluZSBQQjEyX1BGX1NEX0NMSyAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEIxMl9BRl9NU19TQ0xLMCAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTIpCisjZGVmaW5lIFBCMTNfUEZfU0RfQ01EICAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IEdQSU9fUFVFTiB8IDEzKQorI2RlZmluZSBQQjEzX0FGX01TX0JTICAgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxMykKKyNkZWZpbmUgUEIxNF9BRl9TU0lfUlhGUyAgICAgKEdQSU9fUE9SVEIgfCBHUElPX0FGIHwgMTQpCisjZGVmaW5lIFBCMTVfQUZfU1NJX1JYQ0xLICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDE1KQorI2RlZmluZSBQQjE2X0FGX1NTSV9SWERBVCAgICAoR1BJT19QT1JUQiB8IEdQSU9fSU4gfCBHUElPX0FGIHwgMTYpCisjZGVmaW5lIFBCMTdfQUZfU1NJX1RYREFUICAgIChHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMTcpCisjZGVmaW5lIFBCMThfQUZfU1NJX1RYRlMgICAgIChHUElPX1BPUlRCIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQjE5X0FGX1NTSV9UWENMSyAgICAoR1BJT19QT1JUQiB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEIyMF9QRl9VU0JEX0FGRSAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBCMjFfUEZfVVNCRF9PRSAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQjIyX1BGVVNCRF9SQ1YgICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyMikKKyNkZWZpbmUgUEIyM19QRl9VU0JEX1NVU1BORCAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBCMjRfUEZfVVNCRF9WUCAgICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQjI1X1BGX1VTQkRfVk0gICAgICAoR1BJT19QT1JUQiB8IEdQSU9fUEYgfCAyNSkKKyNkZWZpbmUgUEIyNl9QRl9VU0JEX1ZQTyAgICAgKEdQSU9fUE9SVEIgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBCMjdfUEZfVVNCRF9WTU8gICAgIChHUElPX1BPUlRCIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQjI4X1BGX1VBUlQyX0NUUyAgICAoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI4KQorI2RlZmluZSBQQjI5X1BGX1VBUlQyX1JUUyAgICAoR1BJT19QT1JUQiB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBCMzBfUEZfVUFSVDJfVFhEICAgIChHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzApCisjZGVmaW5lIFBCMzFfUEZfVUFSVDJfUlhEICAgIChHUElPX1BPUlRCIHwgR1BJT19JTiB8IEdQSU9fUEYgfCAzMSkKKyNkZWZpbmUgUEMzX1BGX1NTSV9SWEZTICAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMykKKyNkZWZpbmUgUEM0X1BGX1NTSV9SWENMSyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgNCkKKyNkZWZpbmUgUEM1X1BGX1NTSV9SWERBVCAgICAgKEdQSU9fUE9SVEMgfCBHUElPX0lOIHwgR1BJT19QRiB8IDUpCisjZGVmaW5lIFBDNl9QRl9TU0lfVFhEQVQgICAgIChHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNikKKyNkZWZpbmUgUEM3X1BGX1NTSV9UWEZTICAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgNykKKyNkZWZpbmUgUEM4X1BGX1NTSV9UWENMSyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEM5X1BGX1VBUlQxX0NUUyAgICAgKEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQzEwX1BGX1VBUlQxX1JUUyAgICAoR1BJT19QT1JUQyB8IEdQSU9fSU4gfCBHUElPX1BGIHwgMTApCisjZGVmaW5lIFBDMTFfUEZfVUFSVDFfVFhEICAgIChHUElPX1BPUlRDIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBDMTJfUEZfVUFSVDFfUlhEICAgIChHUElPX1BPUlRDIHwgR1BJT19JTiB8IEdQSU9fUEYgfCAxMikKKyNkZWZpbmUgUEMxM19QRl9TUEkxX1NQSV9SRFkgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBDMTRfUEZfU1BJMV9TQ0xLICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQQzE1X1BGX1NQSTFfU1MgICAgICAoR1BJT19QT1JUQyB8IEdQSU9fUEYgfCAxNSkKKyNkZWZpbmUgUEMxNl9QRl9TUEkxX01JU08gICAgKEdQSU9fUE9SVEMgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBDMTdfUEZfU1BJMV9NT1NJICAgIChHUElPX1BPUlRDIHwgR1BJT19QRiB8IDE3KQorI2RlZmluZSBQQzI0X0JJTl9VQVJUM19SSSAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19CSU4gfCAyNCkKKyNkZWZpbmUgUEMyNV9CSU5fVUFSVDNfRFNSICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjUpCisjZGVmaW5lIFBDMjZfQU9VVF9VQVJUM19EVFIgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDI2KQorI2RlZmluZSBQQzI3X0JJTl9VQVJUM19EQ0QgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fT1VUIHwgR1BJT19CSU4gfCAyNykKKyNkZWZpbmUgUEMyOF9CSU5fVUFSVDNfQ1RTICAgKEdQSU9fR0lVUyB8IEdQSU9fUE9SVEMgfCBHUElPX09VVCB8IEdQSU9fQklOIHwgMjgpCisjZGVmaW5lIFBDMjlfQU9VVF9VQVJUM19SVFMgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDI5KQorI2RlZmluZSBQQzMwX0JJTl9VQVJUM19UWCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JUQyB8IEdQSU9fQklOIHwgMzApCisjZGVmaW5lIFBDMzFfQU9VVF9VQVJUM19SWCAgIChHUElPX0dJVVMgfCBHUElPX1BPUlRDIHwgR1BJT19JTiB8IDMxKQorI2RlZmluZSBQRDZfUEZfTFNDTEsgICAgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDYpCisjZGVmaW5lIFBEN19QRl9SRVYgICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBEN19BRl9VQVJUMl9EVFIgICAgIChHUElPX0dJVVMgfCBHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQUYgfCA3KQorI2RlZmluZSBQRDdfQUlOX1NQSTJfU0NMSyAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQUlOIHwgNykKKyNkZWZpbmUgUEQ4X1BGX0NMUyAgICAgICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEQ4X0FGX1VBUlQyX0RDRCAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUYgfCA4KQorI2RlZmluZSBQRDhfQUlOX1NQSTJfU1MgICAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQUlOIHwgOCkKKyNkZWZpbmUgUEQ5X1BGX1BTICAgICAgICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX1BGIHwgOSkKKyNkZWZpbmUgUEQ5X0FGX1VBUlQyX1JJICAgICAgKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUYgfCA5KQorI2RlZmluZSBQRDlfQU9VVF9TUEkyX1JYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fSU4gfCA5KQorI2RlZmluZSBQRDEwX1BGX1NQTF9TUFIgICAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQRDEwX0FGX1VBUlQyX0RTUiAgICAoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDEwKQorI2RlZmluZSBQRDEwX0FJTl9TUEkyX1RYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgMTApCisjZGVmaW5lIFBEMTFfUEZfQ09OVFJBU1QgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBEMTJfUEZfQUNEX09FICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBEMTNfUEZfTFBfSFNZTkMgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTMpCisjZGVmaW5lIFBEMTRfUEZfRkxNX1ZTWU5DICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBEMTVfUEZfTEQwICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTUpCisjZGVmaW5lIFBEMTZfUEZfTEQxICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBEMTdfUEZfTEQyICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBEMThfUEZfTEQzICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTgpCisjZGVmaW5lIFBEMTlfUEZfTEQ0ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBEMjBfUEZfTEQ1ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjApCisjZGVmaW5lIFBEMjFfUEZfTEQ2ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjEpCisjZGVmaW5lIFBEMjJfUEZfTEQ3ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBEMjNfUEZfTEQ4ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjMpCisjZGVmaW5lIFBEMjRfUEZfTEQ5ICAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjQpCisjZGVmaW5lIFBEMjVfUEZfTEQxMCAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBEMjZfUEZfTEQxMSAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjYpCisjZGVmaW5lIFBEMjdfUEZfTEQxMiAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjcpCisjZGVmaW5lIFBEMjhfUEZfTEQxMyAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBEMjlfUEZfTEQxNCAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBEMzBfUEZfTEQxNSAgICAgICAgIChHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzApCisjZGVmaW5lIFBEMzFfUEZfVE1SMk9VVCAgICAgIChHUElPX1BPUlREIHwgR1BJT19QRiB8IDMxKQorI2RlZmluZSBQRDMxX0JJTl9TUEkyX1RYRCAgICAoR1BJT19HSVVTIHwgR1BJT19QT1JURCB8IEdQSU9fQklOIHwgMzEpCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBQQTVfUEZfTFNDTEsJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgNSkKKyNkZWZpbmUgUEE2X1BGX0xEMAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQTdfUEZfTEQxCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDcpCisjZGVmaW5lIFBBOF9QRl9MRDIJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgOCkKKyNkZWZpbmUgUEE5X1BGX0xEMwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQQTEwX1BGX0xENAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMCkKKyNkZWZpbmUgUEExMV9QRl9MRDUJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTEpCisjZGVmaW5lIFBBMTJfUEZfTEQ2CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQQTEzX1BGX0xENwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMykKKyNkZWZpbmUgUEExNF9QRl9MRDgJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTQpCisjZGVmaW5lIFBBMTVfUEZfTEQ5CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQQTE2X1BGX0xEMTAJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBBMTdfUEZfTEQxMQkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNykKKyNkZWZpbmUgUEExOF9QRl9MRDEyCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQTE5X1BGX0xEMTMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBBMjBfUEZfTEQxNAkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEEyMV9QRl9MRDE1CQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQTIyX1BGX0xEMTYJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBBMjNfUEZfTEQxNwkJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMykKKyNkZWZpbmUgUEEyNF9QRl9SRVYJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjQpCisjZGVmaW5lIFBBMjVfUEZfQ0xTCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI1KQorI2RlZmluZSBQQTI2X1BGX1BTCQkoR1BJT19QT1JUQSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDI2KQorI2RlZmluZSBQQTI3X1BGX1NQTF9TUFIJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjcpCisjZGVmaW5lIFBBMjhfUEZfSFNZTkMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBBMjlfUEZfVlNZTkMJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMjkpCisjZGVmaW5lIFBBMzBfUEZfQ09OVFJBU1QJKEdQSU9fUE9SVEEgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAzMCkKKyNkZWZpbmUgUEEzMV9QRl9PRV9BQ0QJCShHUElPX1BPUlRBIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBCMTBfUEZfQ1NJX0QwCQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQQjEwX0FGX1VBUlQ2X1RYRAkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDEwKQorI2RlZmluZSBQQjExX1BGX0NTSV9EMQkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxMSkKKyNkZWZpbmUgUEIxMV9BRl9VQVJUNl9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxMSkKKyNkZWZpbmUgUEIxMl9QRl9DU0lfRDIJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTIpCisjZGVmaW5lIFBCMTJfQUZfVUFSVDZfQ1RTCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMTIpCisjZGVmaW5lIFBCMTNfUEZfQ1NJX0QzCQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQQjEzX0FGX1VBUlQ2X1JUUwkoR1BJT19QT1JUQiB8IEdQSU9fSU4gIHwgR1BJT19BRiB8IDEzKQorI2RlZmluZSBQQjE0X1BGX0NTSV9ENAkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNCkKKyNkZWZpbmUgUEIxNV9QRl9DU0lfTUNMSwkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQQjE2X1BGX0NTSV9QSVhDTEsJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxNikKKyNkZWZpbmUgUEIxN19QRl9DU0lfRDUJCShHUElPX1BPUlRCIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBCMThfUEZfQ1NJX0Q2CQkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQjE4X0FGX1VBUlQ1X1RYRAkoR1BJT19QT1JUQiB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDE4KQorI2RlZmluZSBQQjE5X1BGX0NTSV9ENwkJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOSkKKyNkZWZpbmUgUEIxOV9BRl9VQVJUNV9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxOSkKKyNkZWZpbmUgUEIyMF9QRl9DU0lfVlNZTkMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEIyMF9BRl9VQVJUNV9DVFMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyMCkKKyNkZWZpbmUgUEIyMV9QRl9DU0lfSFNZTkMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAyMSkKKyNkZWZpbmUgUEIyMV9BRl9VQVJUNV9SVFMJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAyMSkKKyNkZWZpbmUgUEIyNl9BRl9VQVJUNF9SVFMJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEIyOF9BRl9VQVJUNF9UWEQJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyOCkKKyNkZWZpbmUgUEIyOV9BRl9VQVJUNF9DVFMJKEdQSU9fUE9SVEIgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyOSkKKyNkZWZpbmUgUEIzMV9BRl9VQVJUNF9SWEQJKEdQSU9fUE9SVEIgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAzMSkKKyNkZWZpbmUgUEM1X1BGX0kyQzJfU0RBCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDUpCisjZGVmaW5lIFBDNl9QRl9JMkMyX1NDTAkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQQzE2X1BGX1NTSTRfRlMJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMTYpCisjZGVmaW5lIFBDMTdfUEZfU1NJNF9SWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAxNykKKyNkZWZpbmUgUEMxOF9QRl9TU0k0X1RYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE4KQorI2RlZmluZSBQQzE5X1BGX1NTSTRfQ0xLCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMTkpCisjZGVmaW5lIFBDMjBfUEZfU1NJMV9GUwkJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyMCkKKyNkZWZpbmUgUEMyMV9QRl9TU0kxX1JYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDIxKQorI2RlZmluZSBQQzIyX1BGX1NTSTFfVFhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjIpCisjZGVmaW5lIFBDMjNfUEZfU1NJMV9DTEsJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyMykKKyNkZWZpbmUgUEMyNF9QRl9TU0kyX0ZTCQkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI0KQorI2RlZmluZSBQQzI1X1BGX1NTSTJfUlhECShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjUpCisjZGVmaW5lIFBDMjZfUEZfU1NJMl9UWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyNikKKyNkZWZpbmUgUEMyN19QRl9TU0kyX0NMSwkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDI3KQorI2RlZmluZSBQQzI4X1BGX1NTSTNfRlMJCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMjgpCisjZGVmaW5lIFBDMjlfUEZfU1NJM19SWEQJKEdQSU9fUE9SVEMgfCBHUElPX0lOICB8IEdQSU9fUEYgfCAyOSkKKyNkZWZpbmUgUEMzMF9QRl9TU0kzX1RYRAkoR1BJT19QT1JUQyB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDMwKQorI2RlZmluZSBQQzMxX1BGX1NTSTNfQ0xLCShHUElPX1BPUlRDIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgMzEpCisjZGVmaW5lIFBEMF9BSU5fRkVDX1RYRDAJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgMCkKKyNkZWZpbmUgUEQxX0FJTl9GRUNfVFhEMQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19BSU4gfCAxKQorI2RlZmluZSBQRDJfQUlOX0ZFQ19UWEQyCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDIpCisjZGVmaW5lIFBEM19BSU5fRkVDX1RYRDMJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgMykKKyNkZWZpbmUgUEQ0X0FPVVRfRkVDX1JYX0VSCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDQpCisjZGVmaW5lIFBENV9BT1VUX0ZFQ19SWEQxCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDUpCisjZGVmaW5lIFBENl9BT1VUX0ZFQ19SWEQyCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDYpCisjZGVmaW5lIFBEN19BT1VUX0ZFQ19SWEQzCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDcpCisjZGVmaW5lIFBEOF9BRl9GRUNfTURJTwkJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BRiB8IDgpCisjZGVmaW5lIFBEOV9BSU5fRkVDX01EQwkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fQUlOIHwgOSkKKyNkZWZpbmUgUEQxMF9BT1VUX0ZFQ19DUlMJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTApCisjZGVmaW5lIFBEMTFfQU9VVF9GRUNfVFhfQ0xLCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDExKQorI2RlZmluZSBQRDEyX0FPVVRfRkVDX1JYRDAJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTIpCisjZGVmaW5lIFBEMTNfQU9VVF9GRUNfUlhfRFYJKEdQSU9fUE9SVEQgfCBHUElPX0lOIHwgR1BJT19BT1VUIHwgMTMpCisjZGVmaW5lIFBEMTRfQU9VVF9GRUNfQ0xSCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fQU9VVCB8IDE0KQorI2RlZmluZSBQRDE1X0FPVVRfRkVDX0NPTAkoR1BJT19QT1JURCB8IEdQSU9fSU4gfCBHUElPX0FPVVQgfCAxNSkKKyNkZWZpbmUgUEQxNl9BSU5fRkVDX1RYX0VSCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDE2KQorI2RlZmluZSBQRDE3X1BGX0kyQ19EQVRBCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMTcpCisjZGVmaW5lIFBEMThfUEZfSTJDX0NMSwkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgfCAxOCkKKyNkZWZpbmUgUEQyNV9QRl9DU1BJMV9SRFkJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjUpCisjZGVmaW5lIFBEMjZfUEZfQ1NQSTFfU1MyCShHUElPX1BPUlREIHwgR1BJT19PVVQgfCBHUElPX1BGICB8IDI2KQorI2RlZmluZSBQRDI3X1BGX0NTUEkxX1NTMQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAyNykKKyNkZWZpbmUgUEQyOF9QRl9DU1BJMV9TUzAJKEdQSU9fUE9SVEQgfCBHUElPX09VVCB8IEdQSU9fUEYgIHwgMjgpCisjZGVmaW5lIFBEMjlfUEZfQ1NQSTFfU0NMSwkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAyOSkKKyNkZWZpbmUgUEQzMF9QRl9DU1BJMV9NSVNPCShHUElPX1BPUlREIHwgR1BJT19JTiB8IEdQSU9fUEYgIHwgMzApCisjZGVmaW5lIFBEMzFfUEZfQ1NQSTFfTU9TSQkoR1BJT19QT1JURCB8IEdQSU9fT1VUIHwgR1BJT19QRiAgfCAzMSkKKyNkZWZpbmUgUEYyM19BSU5fRkVDX1RYX0VOCShHUElPX1BPUlRGIHwgR1BJT19PVVQgfCBHUElPX0FJTiB8IDIzKQorI2RlZmluZSBQRTNfUEZfVUFSVDJfQ1RTCShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX1BGIHwgMykKKyNkZWZpbmUgUEU0X1BGX1VBUlQyX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDQpCisjZGVmaW5lIFBFNl9QRl9VQVJUMl9UWEQJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fUEYgfCA2KQorI2RlZmluZSBQRTdfUEZfVUFSVDJfUlhECShHUElPX1BPUlRFIHwgR1BJT19JTiAgfCBHUElPX1BGIHwgNykKKyNkZWZpbmUgUEU4X1BGX1VBUlQzX1RYRAkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDgpCisjZGVmaW5lIFBFOV9QRl9VQVJUM19SWEQJKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fUEYgfCA5KQorI2RlZmluZSBQRTEwX1BGX1VBUlQzX0NUUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEwKQorI2RlZmluZSBQRTExX1BGX1VBUlQzX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDExKQorI2RlZmluZSBQRTEyX1BGX1VBUlQxX1RYRAkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDEyKQorI2RlZmluZSBQRTEzX1BGX1VBUlQxX1JYRAkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDEzKQorI2RlZmluZSBQRTE0X1BGX1VBUlQxX0NUUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19QRiB8IDE0KQorI2RlZmluZSBQRTE1X1BGX1VBUlQxX1JUUwkoR1BJT19QT1JURSB8IEdQSU9fSU4gIHwgR1BJT19QRiB8IDE1KQorI2RlZmluZSBQRTE4X0FGX0NTUEkzX01JU08JKEdQSU9fUE9SVEUgfCBHUElPX0lOICB8IEdQSU9fQUYgfCAxOCkKKyNkZWZpbmUgUEUyMV9BRl9DU1BJM19TUwkoR1BJT19QT1JURSB8IEdQSU9fT1VUIHwgR1BJT19BRiB8IDIxKQorI2RlZmluZSBQRTIyX0FGX0NTUEkzX01PU0kJKEdQSU9fUE9SVEUgfCBHUElPX09VVCB8IEdQSU9fQUYgfCAyMikKKyNkZWZpbmUgUEUyM19BRl9DU1BJM19TQ0xLCShHUElPX1BPUlRFIHwgR1BJT19PVVQgfCBHUElPX0FGIHwgMjMpCisjZW5kaWYKKworLyogZGVjb2RlIGlycSBudW1iZXIgdG8gdXNlIHdpdGggSU1SKHgpLCBJU1IoeCkgYW5kIGZyaWVuZHMgKi8KKyNkZWZpbmUgSVJRX1RPX1JFRyhpcnEpICgoaXJxIC0gTVhDX01BWF9JTlRfTElORVMpID4+IDUpCisKKyNkZWZpbmUgSVJRX0dQSU9BKHgpICAoTVhDX01BWF9JTlRfTElORVMgKyB4KQorI2RlZmluZSBJUlFfR1BJT0IoeCkgIChJUlFfR1BJT0EoMzIpICsgeCkKKyNkZWZpbmUgSVJRX0dQSU9DKHgpICAoSVJRX0dQSU9CKDMyKSArIHgpCisjZGVmaW5lIElSUV9HUElPRCh4KSAgKElSUV9HUElPQygzMikgKyB4KQorCisjZW5kaWYgLyogX01YQ19HUElPX01YMV9NWDJfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14My5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lvbXV4LW14My5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MDllNzYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaW9tdXgtbXgzLmgKQEAgLTAsMCArMSw1MDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAwNC0yMDA2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggYnkgU2FzY2hhIEhhdWVyIDxrZXJuZWxAcGVuZ3V0cm9uaXguZGU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBfX01BQ0hfTVgzMV9JT01VWF9IX18KKyNkZWZpbmUgX19NQUNIX01YMzFfSU9NVVhfSF9fCisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisvKgorICogdmFyaW91cyBJT01VWCBvdXRwdXQgZnVuY3Rpb25zCisgKi8KKworI2RlZmluZQlJT01VWF9PQ09ORklHX0dQSU8gKDAgPDwgNCkJLyogdXNlZCBhcyBHUElPICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfRlVOQyAoMSA8PCA0KQkvKiB1c2VkIGFzIGZ1bmN0aW9uICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMSAoMiA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAxICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMiAoMyA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAyICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUMyAoNCA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAzICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNCAoNSA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA0ICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNSAoNiA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA1ICovCisjZGVmaW5lCUlPTVVYX09DT05GSUdfQUxUNiAoNyA8PCA0KQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiA2ICovCisjZGVmaW5lCUlPTVVYX0lDT05GSUdfTk9ORSAgMAkgCS8qIG5vdCBjb25maWd1cmVkIGZvciBpbnB1dCAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX0dQSU8gIDEJCS8qIHVzZWQgYXMgR1BJTyAqLworI2RlZmluZQlJT01VWF9JQ09ORklHX0ZVTkMgIDIJCS8qIHVzZWQgYXMgZnVuY3Rpb24gKi8KKyNkZWZpbmUJSU9NVVhfSUNPTkZJR19BTFQxICA0CQkvKiB1c2VkIGFzIGFsdGVybmF0ZSBmdW5jdGlvbiAxICovCisjZGVmaW5lCUlPTVVYX0lDT05GSUdfQUxUMiAgOAkJLyogdXNlZCBhcyBhbHRlcm5hdGUgZnVuY3Rpb24gMiAqLworCisjZGVmaW5lIElPTVVYX0NPTkZJR19HUElPIChJT01VWF9PQ09ORklHX0dQSU8gfCBJT01VWF9JQ09ORklHX0dQSU8pCisjZGVmaW5lIElPTVVYX0NPTkZJR19GVU5DIChJT01VWF9PQ09ORklHX0ZVTkMgfCBJT01VWF9JQ09ORklHX0ZVTkMpCisjZGVmaW5lIElPTVVYX0NPTkZJR19BTFQxIChJT01VWF9PQ09ORklHX0FMVDEgfCBJT01VWF9JQ09ORklHX0FMVDEpCisjZGVmaW5lIElPTVVYX0NPTkZJR19BTFQyIChJT01VWF9PQ09ORklHX0FMVDIgfCBJT01VWF9JQ09ORklHX0FMVDIpCisKKy8qCisgKiB2YXJpb3VzIElPTVVYIHBhZCBmdW5jdGlvbnMKKyAqLworZW51bSBpb211eF9wYWRfY29uZmlnIHsKKwlQQURfQ1RMX05PTE9PUEJBQ0sJPSAweDAgPDwgOSwKKwlQQURfQ1RMX0xPT1BCQUNLCT0gMHgxIDw8IDksCisJUEFEX0NUTF9QS0VfTk9ORQk9IDB4MCA8PCA4LAorCVBBRF9DVExfUEtFX0VOQUJMRQk9IDB4MSA8PCA4LAorCVBBRF9DVExfUFVFX0tFRVBFUgk9IDB4MCA8PCA3LAorCVBBRF9DVExfUFVFX1BVRAkJPSAweDEgPDwgNywKKwlQQURfQ1RMXzEwMEtfUEQJCT0gMHgwIDw8IDUsCisJUEFEX0NUTF8xMDBLX1BVCQk9IDB4MSA8PCA1LAorCVBBRF9DVExfNDdLX1BVCQk9IDB4MiA8PCA1LAorCVBBRF9DVExfMjJLX1BVCQk9IDB4MyA8PCA1LAorCVBBRF9DVExfSFlTX0NNT1MJPSAweDAgPDwgNCwKKwlQQURfQ1RMX0hZU19TQ0hNSVRaCT0gMHgxIDw8IDQsCisJUEFEX0NUTF9PREVfQ01PUwk9IDB4MCA8PCAzLAorCVBBRF9DVExfT0RFX09wZW5EcmFpbgk9IDB4MSA8PCAzLAorCVBBRF9DVExfRFJWX05PUk1BTAk9IDB4MCA8PCAxLAorCVBBRF9DVExfRFJWX0hJR0gJPSAweDEgPDwgMSwKKwlQQURfQ1RMX0RSVl9NQVgJCT0gMHgyIDw8IDEsCisJUEFEX0NUTF9TUkVfU0xPVwk9IDB4MCA8PCAwLAorCVBBRF9DVExfU1JFX0ZBU1QJPSAweDEgPDwgMAorfTsKKworLyoKKyAqIHZhcmlvdXMgSU9NVVggZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9ucworICovCitlbnVtIGlvbXV4X2dwX2Z1bmMgeworCU1VWF9QR1BfRklSSQkJCT0gMSA8PCAwLAorCU1VWF9ERFJfTU9ERQkJCT0gMSA8PCAxLAorCU1VWF9QR1BfQ1NQSV9CQgkJCT0gMSA8PCAyLAorCU1VWF9QR1BfQVRBXzEJCQk9IDEgPDwgMywKKwlNVVhfUEdQX0FUQV8yCQkJPSAxIDw8IDQsCisJTVVYX1BHUF9BVEFfMwkJCT0gMSA8PCA1LAorCU1VWF9QR1BfQVRBXzQJCQk9IDEgPDwgNiwKKwlNVVhfUEdQX0FUQV81CQkJPSAxIDw8IDcsCisJTVVYX1BHUF9BVEFfNgkJCT0gMSA8PCA4LAorCU1VWF9QR1BfQVRBXzcJCQk9IDEgPDwgOSwKKwlNVVhfUEdQX0FUQV84CQkJPSAxIDw8IDEwLAorCU1VWF9QR1BfVUgyCQkJPSAxIDw8IDExLAorCU1VWF9TRENUTF9DU0QwX1NFTAkJPSAxIDw8IDEyLAorCU1VWF9TRENUTF9DU0QxX1NFTAkJPSAxIDw8IDEzLAorCU1VWF9DU1BJMV9VQVJUMwkJCT0gMSA8PCAxNCwKKwlNVVhfRVhURE1BUkVRMl9NQlhfU0VMCQk9IDEgPDwgMTUsCisJTVVYX1RBTVBFUl9ERVRFQ1RfRU4JCT0gMSA8PCAxNiwKKwlNVVhfUEdQX1VTQl80V0lSRQkJPSAxIDw8IDE3LAorCU1VWF9QR0JfVVNCX0NPTU1PTgkJPSAxIDw8IDE4LAorCU1VWF9TREhDX01FTVNUSUNLMQkJPSAxIDw8IDE5LAorCU1VWF9TREhDX01FTVNUSUNLMgkJPSAxIDw8IDIwLAorCU1VWF9QR1BfU1BMTF9CWVAJCT0gMSA8PCAyMSwKKwlNVVhfUEdQX1VQTExfQllQCQk9IDEgPDwgMjIsCisJTVVYX1BHUF9NU0hDMV9DTEtfU0VMCQk9IDEgPDwgMjMsCisJTVVYX1BHUF9NU0hDMl9DTEtfU0VMCQk9IDEgPDwgMjQsCisJTVVYX0NTUEkzX1VBUlQ1X1NFTAkJPSAxIDw8IDI1LAorCU1VWF9QR1BfQVRBXzkJCQk9IDEgPDwgMjYsCisJTVVYX1BHUF9VU0JfU1VTUEVORAkJPSAxIDw8IDI3LAorCU1VWF9QR1BfVVNCX09UR19MT09QQkFDSwk9IDEgPDwgMjgsCisJTVVYX1BHUF9VU0JfSFMxX0xPT1BCQUNLCT0gMSA8PCAyOSwKKwlNVVhfUEdQX1VTQl9IUzJfTE9PUEJBQ0sJPSAxIDw8IDMwLAorCU1VWF9DTEtPX0REUl9NT0RFCQk9IDEgPDwgMzEsCit9OworCisvKgorICogVGhpcyBmdW5jdGlvbiBlbmFibGVzL2Rpc2FibGVzIHRoZSBnZW5lcmFsIHB1cnBvc2UgZnVuY3Rpb24gZm9yIGEgcGFydGljdWxhcgorICogc2lnbmFsLgorICovCit2b2lkIGlvbXV4X2NvbmZpZ19ncHIoZW51bSBpb211eF9ncF9mdW5jICwgYm9vbCk7CisKKy8qCisgKiBzZXQgdGhlIG1vZGUgZm9yIGEgSU9NVVggcGluLgorICovCitpbnQgbXhjX2lvbXV4X21vZGUodW5zaWduZWQgaW50KTsKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24gZW5hYmxlcy9kaXNhYmxlcyB0aGUgZ2VuZXJhbCBwdXJwb3NlIGZ1bmN0aW9uIGZvciBhIHBhcnRpY3VsYXIKKyAqIHNpZ25hbC4KKyAqLwordm9pZCBteGNfaW9tdXhfc2V0X2dwcihlbnVtIGlvbXV4X2dwX2Z1bmMsIGJvb2wpOworCisjZGVmaW5lIElPTVVYX1BBRE5VTV9NQVNLCTB4MWZmCisjZGVmaW5lIElPTVVYX0dQSU9OVU1fU0hJRlQJOQorI2RlZmluZSBJT01VWF9HUElPTlVNX01BU0sJKDB4ZmYgPDwgSU9NVVhfR1BJT05VTV9TSElGVCkKKyNkZWZpbmUgSU9NVVhfTU9ERV9TSElGVAkxNworI2RlZmluZSBJT01VWF9NT0RFX01BU0sJKDB4ZmYgPDwgSU9NVVhfTU9ERV9TSElGVCkKKworI2RlZmluZSBJT01VWF9QSU4oZ3Bpb251bSwgcGFkbnVtKSBcCisJKCgoZ3Bpb251bSA8PCBJT01VWF9HUElPTlVNX1NISUZUKSAmIElPTVVYX0dQSU9OVU1fTUFTSykgfCBcCisJIChwYWRudW0gJiBJT01VWF9QQUROVU1fTUFTSykpCisKKyNkZWZpbmUgSU9NVVhfTU9ERShwaW4sIG1vZGUpIChwaW4gfCBtb2RlIDw8IElPTVVYX01PREVfU0hJRlQpCisKKyNkZWZpbmUgSU9NVVhfVE9fR1BJTyhpb211eF9waW4pIFwKKwkoKGlvbXV4X3BpbiAmIElPTVVYX0dQSU9OVU1fTUFTSykgPj4gSU9NVVhfR1BJT05VTV9TSElGVCkKKyNkZWZpbmUgSU9NVVhfVE9fSVJRKGlvbXV4X3BpbikgXAorCSgoKGlvbXV4X3BpbiAmIElPTVVYX0dQSU9OVU1fTUFTSykgPj4gSU9NVVhfR1BJT05VTV9TSElGVCkgKyBcCisJTVhDX0dQSU9fSU5UX0JBU0UpCisKKy8qCisgKiBUaGlzIGVudW1lcmF0aW9uIGlzIGNvbnN0cnVjdGVkIGJhc2VkIG9uIHRoZSBTZWN0aW9uCisgKiAic3dfcGFkX2N0bCAmIHN3X211eF9jdGwgZGV0YWlscyIgb2YgdGhlIE1YMzEgSUMgU3BlYy4gRWFjaCBlbnVtZXJhdGVkCisgKiB2YWx1ZSBpcyBjb25zdHJ1Y3RlZCBiYXNlZCBvbiB0aGUgcnVsZXMgZGVzY3JpYmVkIGFib3ZlLgorICovCisKK2VudW0gaW9tdXhfcGlucyB7CisJTVgzMV9QSU5fVFRNX1BBRAk9IElPTVVYX1BJTigweGZmLCAgIDApLAorCU1YMzFfUElOX0NTUEkzX1NQSV9SRFkJPSBJT01VWF9QSU4oMHhmZiwgICAxKSwKKwlNWDMxX1BJTl9DU1BJM19TQ0xLCT0gSU9NVVhfUElOKDB4ZmYsICAgMiksCisJTVgzMV9QSU5fQ1NQSTNfTUlTTwk9IElPTVVYX1BJTigweGZmLCAgIDMpLAorCU1YMzFfUElOX0NTUEkzX01PU0kJPSBJT01VWF9QSU4oMHhmZiwgICA0KSwKKwlNWDMxX1BJTl9DTEtTUwkJPSBJT01VWF9QSU4oMHhmZiwgICA1KSwKKwlNWDMxX1BJTl9DRV9DT05UUk9MCT0gSU9NVVhfUElOKDB4ZmYsICAgNiksCisJTVgzMV9QSU5fQVRBX1JFU0VUX0IJPSBJT01VWF9QSU4oOTUsICAgICA3KSwKKwlNWDMxX1BJTl9BVEFfRE1BQ0sJPSBJT01VWF9QSU4oOTQsICAgICA4KSwKKwlNWDMxX1BJTl9BVEFfRElPVwk9IElPTVVYX1BJTig5MywgICAgIDkpLAorCU1YMzFfUElOX0FUQV9ESU9SCT0gSU9NVVhfUElOKDkyLCAgICAxMCksCisJTVgzMV9QSU5fQVRBX0NTMQk9IElPTVVYX1BJTig5MSwgICAgMTEpLAorCU1YMzFfUElOX0FUQV9DUzAJPSBJT01VWF9QSU4oOTAsICAgIDEyKSwKKwlNWDMxX1BJTl9TRDFfREFUQTMJPSBJT01VWF9QSU4oNjMsICAgIDEzKSwKKwlNWDMxX1BJTl9TRDFfREFUQTIJPSBJT01VWF9QSU4oNjIsICAgIDE0KSwKKwlNWDMxX1BJTl9TRDFfREFUQTEJPSBJT01VWF9QSU4oNjEsICAgIDE1KSwKKwlNWDMxX1BJTl9TRDFfREFUQTAJPSBJT01VWF9QSU4oNjAsICAgIDE2KSwKKwlNWDMxX1BJTl9TRDFfQ0xLCT0gSU9NVVhfUElOKDU5LCAgICAxNyksCisJTVgzMV9QSU5fU0QxX0NNRAk9IElPTVVYX1BJTig1OCwgICAgMTgpLAorCU1YMzFfUElOX0QzX1NQTAkJPSBJT01VWF9QSU4oMHhmZiwgIDE5KSwKKwlNWDMxX1BJTl9EM19DTFMJCT0gSU9NVVhfUElOKDB4ZmYsICAyMCksCisJTVgzMV9QSU5fRDNfUkVWCQk9IElPTVVYX1BJTigweGZmLCAgMjEpLAorCU1YMzFfUElOX0NPTlRSQVNUCT0gSU9NVVhfUElOKDB4ZmYsICAyMiksCisJTVgzMV9QSU5fVlNZTkMzCQk9IElPTVVYX1BJTigweGZmLCAgMjMpLAorCU1YMzFfUElOX1JFQUQJCT0gSU9NVVhfUElOKDB4ZmYsICAyNCksCisJTVgzMV9QSU5fV1JJVEUJCT0gSU9NVVhfUElOKDB4ZmYsICAyNSksCisJTVgzMV9QSU5fUEFSX1JTCQk9IElPTVVYX1BJTigweGZmLCAgMjYpLAorCU1YMzFfUElOX1NFUl9SUwkJPSBJT01VWF9QSU4oODksICAgIDI3KSwKKwlNWDMxX1BJTl9MQ1MxCQk9IElPTVVYX1BJTig4OCwgICAgMjgpLAorCU1YMzFfUElOX0xDUzAJCT0gSU9NVVhfUElOKDg3LCAgICAyOSksCisJTVgzMV9QSU5fU0RfRF9DTEsJPSBJT01VWF9QSU4oODYsICAgIDMwKSwKKwlNWDMxX1BJTl9TRF9EX0lPCT0gSU9NVVhfUElOKDg1LCAgICAzMSksCisJTVgzMV9QSU5fU0RfRF9JCQk9IElPTVVYX1BJTig4NCwgICAgMzIpLAorCU1YMzFfUElOX0RSRFkwCQk9IElPTVVYX1BJTigweGZmLCAgMzMpLAorCU1YMzFfUElOX0ZQU0hJRlQJPSBJT01VWF9QSU4oMHhmZiwgIDM0KSwKKwlNWDMxX1BJTl9IU1lOQwkJPSBJT01VWF9QSU4oMHhmZiwgIDM1KSwKKwlNWDMxX1BJTl9WU1lOQzAJCT0gSU9NVVhfUElOKDB4ZmYsICAzNiksCisJTVgzMV9QSU5fTEQxNwkJPSBJT01VWF9QSU4oMHhmZiwgIDM3KSwKKwlNWDMxX1BJTl9MRDE2CQk9IElPTVVYX1BJTigweGZmLCAgMzgpLAorCU1YMzFfUElOX0xEMTUJCT0gSU9NVVhfUElOKDB4ZmYsICAzOSksCisJTVgzMV9QSU5fTEQxNAkJPSBJT01VWF9QSU4oMHhmZiwgIDQwKSwKKwlNWDMxX1BJTl9MRDEzCQk9IElPTVVYX1BJTigweGZmLCAgNDEpLAorCU1YMzFfUElOX0xEMTIJCT0gSU9NVVhfUElOKDB4ZmYsICA0MiksCisJTVgzMV9QSU5fTEQxMQkJPSBJT01VWF9QSU4oMHhmZiwgIDQzKSwKKwlNWDMxX1BJTl9MRDEwCQk9IElPTVVYX1BJTigweGZmLCAgNDQpLAorCU1YMzFfUElOX0xEOQkJPSBJT01VWF9QSU4oMHhmZiwgIDQ1KSwKKwlNWDMxX1BJTl9MRDgJCT0gSU9NVVhfUElOKDB4ZmYsICA0NiksCisJTVgzMV9QSU5fTEQ3CQk9IElPTVVYX1BJTigweGZmLCAgNDcpLAorCU1YMzFfUElOX0xENgkJPSBJT01VWF9QSU4oMHhmZiwgIDQ4KSwKKwlNWDMxX1BJTl9MRDUJCT0gSU9NVVhfUElOKDB4ZmYsICA0OSksCisJTVgzMV9QSU5fTEQ0CQk9IElPTVVYX1BJTigweGZmLCAgNTApLAorCU1YMzFfUElOX0xEMwkJPSBJT01VWF9QSU4oMHhmZiwgIDUxKSwKKwlNWDMxX1BJTl9MRDIJCT0gSU9NVVhfUElOKDB4ZmYsICA1MiksCisJTVgzMV9QSU5fTEQxCQk9IElPTVVYX1BJTigweGZmLCAgNTMpLAorCU1YMzFfUElOX0xEMAkJPSBJT01VWF9QSU4oMHhmZiwgIDU0KSwKKwlNWDMxX1BJTl9VU0JIMl9EQVRBMQk9IElPTVVYX1BJTigweGZmLCAgNTUpLAorCU1YMzFfUElOX1VTQkgyX0RBVEEwCT0gSU9NVVhfUElOKDB4ZmYsICA1NiksCisJTVgzMV9QSU5fVVNCSDJfTlhUCT0gSU9NVVhfUElOKDB4ZmYsICA1NyksCisJTVgzMV9QSU5fVVNCSDJfU1RQCT0gSU9NVVhfUElOKDB4ZmYsICA1OCksCisJTVgzMV9QSU5fVVNCSDJfRElSCT0gSU9NVVhfUElOKDB4ZmYsICA1OSksCisJTVgzMV9QSU5fVVNCSDJfQ0xLCT0gSU9NVVhfUElOKDB4ZmYsICA2MCksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE3CT0gSU9NVVhfUElOKDB4ZmYsICA2MSksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE2CT0gSU9NVVhfUElOKDB4ZmYsICA2MiksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE1CT0gSU9NVVhfUElOKDB4ZmYsICA2MyksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEE0CT0gSU9NVVhfUElOKDB4ZmYsICA2NCksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEzCT0gSU9NVVhfUElOKDB4ZmYsICA2NSksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEyCT0gSU9NVVhfUElOKDB4ZmYsICA2NiksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEExCT0gSU9NVVhfUElOKDB4ZmYsICA2NyksCisJTVgzMV9QSU5fVVNCT1RHX0RBVEEwCT0gSU9NVVhfUElOKDB4ZmYsICA2OCksCisJTVgzMV9QSU5fVVNCT1RHX05YVAk9IElPTVVYX1BJTigweGZmLCAgNjkpLAorCU1YMzFfUElOX1VTQk9UR19TVFAJPSBJT01VWF9QSU4oMHhmZiwgIDcwKSwKKwlNWDMxX1BJTl9VU0JPVEdfRElSCT0gSU9NVVhfUElOKDB4ZmYsICA3MSksCisJTVgzMV9QSU5fVVNCT1RHX0NMSwk9IElPTVVYX1BJTigweGZmLCAgNzIpLAorCU1YMzFfUElOX1VTQl9CWVAJPSBJT01VWF9QSU4oMzEsICAgIDczKSwKKwlNWDMxX1BJTl9VU0JfT0MJCT0gSU9NVVhfUElOKDMwLCAgICA3NCksCisJTVgzMV9QSU5fVVNCX1BXUgk9IElPTVVYX1BJTigyOSwgICAgNzUpLAorCU1YMzFfUElOX1NKQ19NT0QJPSBJT01VWF9QSU4oMHhmZiwgIDc2KSwKKwlNWDMxX1BJTl9ERV9CCQk9IElPTVVYX1BJTigweGZmLCAgNzcpLAorCU1YMzFfUElOX1RSU1RCCQk9IElPTVVYX1BJTigweGZmLCAgNzgpLAorCU1YMzFfUElOX1RETwkJPSBJT01VWF9QSU4oMHhmZiwgIDc5KSwKKwlNWDMxX1BJTl9UREkJCT0gSU9NVVhfUElOKDB4ZmYsICA4MCksCisJTVgzMV9QSU5fVE1TCQk9IElPTVVYX1BJTigweGZmLCAgODEpLAorCU1YMzFfUElOX1RDSwkJPSBJT01VWF9QSU4oMHhmZiwgIDgyKSwKKwlNWDMxX1BJTl9SVENLCQk9IElPTVVYX1BJTigweGZmLCAgODMpLAorCU1YMzFfUElOX0tFWV9DT0w3CT0gSU9NVVhfUElOKDU3LCAgICA4NCksCisJTVgzMV9QSU5fS0VZX0NPTDYJPSBJT01VWF9QSU4oNTYsICAgIDg1KSwKKwlNWDMxX1BJTl9LRVlfQ09MNQk9IElPTVVYX1BJTig1NSwgICAgODYpLAorCU1YMzFfUElOX0tFWV9DT0w0CT0gSU9NVVhfUElOKDU0LCAgICA4NyksCisJTVgzMV9QSU5fS0VZX0NPTDMJPSBJT01VWF9QSU4oMHhmZiwgIDg4KSwKKwlNWDMxX1BJTl9LRVlfQ09MMgk9IElPTVVYX1BJTigweGZmLCAgODkpLAorCU1YMzFfUElOX0tFWV9DT0wxCT0gSU9NVVhfUElOKDB4ZmYsICA5MCksCisJTVgzMV9QSU5fS0VZX0NPTDAJPSBJT01VWF9QSU4oMHhmZiwgIDkxKSwKKwlNWDMxX1BJTl9LRVlfUk9XNwk9IElPTVVYX1BJTig1MywgICAgOTIpLAorCU1YMzFfUElOX0tFWV9ST1c2CT0gSU9NVVhfUElOKDUyLCAgICA5MyksCisJTVgzMV9QSU5fS0VZX1JPVzUJPSBJT01VWF9QSU4oNTEsICAgIDk0KSwKKwlNWDMxX1BJTl9LRVlfUk9XNAk9IElPTVVYX1BJTig1MCwgICAgOTUpLAorCU1YMzFfUElOX0tFWV9ST1czCT0gSU9NVVhfUElOKDB4ZmYsICA5NiksCisJTVgzMV9QSU5fS0VZX1JPVzIJPSBJT01VWF9QSU4oMHhmZiwgIDk3KSwKKwlNWDMxX1BJTl9LRVlfUk9XMQk9IElPTVVYX1BJTigweGZmLCAgOTgpLAorCU1YMzFfUElOX0tFWV9ST1cwCT0gSU9NVVhfUElOKDB4ZmYsICA5OSksCisJTVgzMV9QSU5fQkFUVF9MSU5FCT0gSU9NVVhfUElOKDQ5LCAgIDEwMCksCisJTVgzMV9QSU5fQ1RTMgkJPSBJT01VWF9QSU4oMHhmZiwgMTAxKSwKKwlNWDMxX1BJTl9SVFMyCQk9IElPTVVYX1BJTigweGZmLCAxMDIpLAorCU1YMzFfUElOX1RYRDIJCT0gSU9NVVhfUElOKDI4LCAgIDEwMyksCisJTVgzMV9QSU5fUlhEMgkJPSBJT01VWF9QSU4oMjcsICAgMTA0KSwKKwlNWDMxX1BJTl9EVFJfRENFMgk9IElPTVVYX1BJTig0OCwgICAxMDUpLAorCU1YMzFfUElOX0RDRF9EVEUxCT0gSU9NVVhfUElOKDQ3LCAgIDEwNiksCisJTVgzMV9QSU5fUklfRFRFMQk9IElPTVVYX1BJTig0NiwgICAxMDcpLAorCU1YMzFfUElOX0RTUl9EVEUxCT0gSU9NVVhfUElOKDQ1LCAgIDEwOCksCisJTVgzMV9QSU5fRFRSX0RURTEJPSBJT01VWF9QSU4oNDQsICAgMTA5KSwKKwlNWDMxX1BJTl9EQ0RfRENFMQk9IElPTVVYX1BJTig0MywgICAxMTApLAorCU1YMzFfUElOX1JJX0RDRTEJPSBJT01VWF9QSU4oNDIsICAgMTExKSwKKwlNWDMxX1BJTl9EU1JfRENFMQk9IElPTVVYX1BJTig0MSwgICAxMTIpLAorCU1YMzFfUElOX0RUUl9EQ0UxCT0gSU9NVVhfUElOKDQwLCAgIDExMyksCisJTVgzMV9QSU5fQ1RTMQkJPSBJT01VWF9QSU4oMzksICAgMTE0KSwKKwlNWDMxX1BJTl9SVFMxCQk9IElPTVVYX1BJTigzOCwgICAxMTUpLAorCU1YMzFfUElOX1RYRDEJCT0gSU9NVVhfUElOKDM3LCAgIDExNiksCisJTVgzMV9QSU5fUlhEMQkJPSBJT01VWF9QSU4oMzYsICAgMTE3KSwKKwlNWDMxX1BJTl9DU1BJMl9TUElfUkRZCT0gSU9NVVhfUElOKDB4ZmYsIDExOCksCisJTVgzMV9QSU5fQ1NQSTJfU0NMSwk9IElPTVVYX1BJTigweGZmLCAxMTkpLAorCU1YMzFfUElOX0NTUEkyX1NTMgk9IElPTVVYX1BJTigweGZmLCAxMjApLAorCU1YMzFfUElOX0NTUEkyX1NTMQk9IElPTVVYX1BJTigweGZmLCAxMjEpLAorCU1YMzFfUElOX0NTUEkyX1NTMAk9IElPTVVYX1BJTigweGZmLCAxMjIpLAorCU1YMzFfUElOX0NTUEkyX01JU08JPSBJT01VWF9QSU4oMHhmZiwgMTIzKSwKKwlNWDMxX1BJTl9DU1BJMl9NT1NJCT0gSU9NVVhfUElOKDB4ZmYsIDEyNCksCisJTVgzMV9QSU5fQ1NQSTFfU1BJX1JEWQk9IElPTVVYX1BJTigweGZmLCAxMjUpLAorCU1YMzFfUElOX0NTUEkxX1NDTEsJPSBJT01VWF9QSU4oMHhmZiwgMTI2KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzIJPSBJT01VWF9QSU4oMHhmZiwgMTI3KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzEJPSBJT01VWF9QSU4oMHhmZiwgMTI4KSwKKwlNWDMxX1BJTl9DU1BJMV9TUzAJPSBJT01VWF9QSU4oMHhmZiwgMTI5KSwKKwlNWDMxX1BJTl9DU1BJMV9NSVNPCT0gSU9NVVhfUElOKDB4ZmYsIDEzMCksCisJTVgzMV9QSU5fQ1NQSTFfTU9TSQk9IElPTVVYX1BJTigweGZmLCAxMzEpLAorCU1YMzFfUElOX1NGUzYJCT0gSU9NVVhfUElOKDI2LCAgIDEzMiksCisJTVgzMV9QSU5fU0NLNgkJPSBJT01VWF9QSU4oMjUsICAgMTMzKSwKKwlNWDMxX1BJTl9TUlhENgkJPSBJT01VWF9QSU4oMjQsICAgMTM0KSwKKwlNWDMxX1BJTl9TVFhENgkJPSBJT01VWF9QSU4oMjMsICAgMTM1KSwKKwlNWDMxX1BJTl9TRlM1CQk9IElPTVVYX1BJTigweGZmLCAxMzYpLAorCU1YMzFfUElOX1NDSzUJCT0gSU9NVVhfUElOKDB4ZmYsIDEzNyksCisJTVgzMV9QSU5fU1JYRDUJCT0gSU9NVVhfUElOKDIyLCAgIDEzOCksCisJTVgzMV9QSU5fU1RYRDUJCT0gSU9NVVhfUElOKDIxLCAgIDEzOSksCisJTVgzMV9QSU5fU0ZTNAkJPSBJT01VWF9QSU4oMHhmZiwgMTQwKSwKKwlNWDMxX1BJTl9TQ0s0CQk9IElPTVVYX1BJTigweGZmLCAxNDEpLAorCU1YMzFfUElOX1NSWEQ0CQk9IElPTVVYX1BJTigyMCwgICAxNDIpLAorCU1YMzFfUElOX1NUWEQ0CQk9IElPTVVYX1BJTigxOSwgICAxNDMpLAorCU1YMzFfUElOX1NGUzMJCT0gSU9NVVhfUElOKDB4ZmYsIDE0NCksCisJTVgzMV9QSU5fU0NLMwkJPSBJT01VWF9QSU4oMHhmZiwgMTQ1KSwKKwlNWDMxX1BJTl9TUlhEMwkJPSBJT01VWF9QSU4oMTgsICAgMTQ2KSwKKwlNWDMxX1BJTl9TVFhEMwkJPSBJT01VWF9QSU4oMTcsICAgMTQ3KSwKKwlNWDMxX1BJTl9JMkNfREFUCT0gSU9NVVhfUElOKDB4ZmYsIDE0OCksCisJTVgzMV9QSU5fSTJDX0NMSwk9IElPTVVYX1BJTigweGZmLCAxNDkpLAorCU1YMzFfUElOX0NTSV9QSVhDTEsJPSBJT01VWF9QSU4oODMsICAgMTUwKSwKKwlNWDMxX1BJTl9DU0lfSFNZTkMJPSBJT01VWF9QSU4oODIsICAgMTUxKSwKKwlNWDMxX1BJTl9DU0lfVlNZTkMJPSBJT01VWF9QSU4oODEsICAgMTUyKSwKKwlNWDMxX1BJTl9DU0lfTUNMSwk9IElPTVVYX1BJTig4MCwgICAxNTMpLAorCU1YMzFfUElOX0NTSV9EMTUJPSBJT01VWF9QSU4oNzksICAgMTU0KSwKKwlNWDMxX1BJTl9DU0lfRDE0CT0gSU9NVVhfUElOKDc4LCAgIDE1NSksCisJTVgzMV9QSU5fQ1NJX0QxMwk9IElPTVVYX1BJTig3NywgICAxNTYpLAorCU1YMzFfUElOX0NTSV9EMTIJPSBJT01VWF9QSU4oNzYsICAgMTU3KSwKKwlNWDMxX1BJTl9DU0lfRDExCT0gSU9NVVhfUElOKDc1LCAgIDE1OCksCisJTVgzMV9QSU5fQ1NJX0QxMAk9IElPTVVYX1BJTig3NCwgICAxNTkpLAorCU1YMzFfUElOX0NTSV9EOQkJPSBJT01VWF9QSU4oNzMsICAgMTYwKSwKKwlNWDMxX1BJTl9DU0lfRDgJCT0gSU9NVVhfUElOKDcyLCAgIDE2MSksCisJTVgzMV9QSU5fQ1NJX0Q3CQk9IElPTVVYX1BJTig3MSwgICAxNjIpLAorCU1YMzFfUElOX0NTSV9ENgkJPSBJT01VWF9QSU4oNzAsICAgMTYzKSwKKwlNWDMxX1BJTl9DU0lfRDUJCT0gSU9NVVhfUElOKDY5LCAgIDE2NCksCisJTVgzMV9QSU5fQ1NJX0Q0CQk9IElPTVVYX1BJTig2OCwgICAxNjUpLAorCU1YMzFfUElOX01fR1JBTlQJPSBJT01VWF9QSU4oMHhmZiwgMTY2KSwKKwlNWDMxX1BJTl9NX1JFUVVFU1QJPSBJT01VWF9QSU4oMHhmZiwgMTY3KSwKKwlNWDMxX1BJTl9QQ19QT0UJCT0gSU9NVVhfUElOKDB4ZmYsIDE2OCksCisJTVgzMV9QSU5fUENfUldfQgk9IElPTVVYX1BJTigweGZmLCAxNjkpLAorCU1YMzFfUElOX0lPSVMxNgkJPSBJT01VWF9QSU4oMHhmZiwgMTcwKSwKKwlNWDMxX1BJTl9QQ19SU1QJCT0gSU9NVVhfUElOKDB4ZmYsIDE3MSksCisJTVgzMV9QSU5fUENfQlZEMgk9IElPTVVYX1BJTigweGZmLCAxNzIpLAorCU1YMzFfUElOX1BDX0JWRDEJPSBJT01VWF9QSU4oMHhmZiwgMTczKSwKKwlNWDMxX1BJTl9QQ19WUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDE3NCksCisJTVgzMV9QSU5fUENfVlMxCQk9IElPTVVYX1BJTigweGZmLCAxNzUpLAorCU1YMzFfUElOX1BDX1BXUk9OCT0gSU9NVVhfUElOKDB4ZmYsIDE3NiksCisJTVgzMV9QSU5fUENfUkVBRFkJPSBJT01VWF9QSU4oMHhmZiwgMTc3KSwKKwlNWDMxX1BJTl9QQ19XQUlUX0IJPSBJT01VWF9QSU4oMHhmZiwgMTc4KSwKKwlNWDMxX1BJTl9QQ19DRDJfQgk9IElPTVVYX1BJTigweGZmLCAxNzkpLAorCU1YMzFfUElOX1BDX0NEMV9CCT0gSU9NVVhfUElOKDB4ZmYsIDE4MCksCisJTVgzMV9QSU5fRDAJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MSksCisJTVgzMV9QSU5fRDEJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MiksCisJTVgzMV9QSU5fRDIJCT0gSU9NVVhfUElOKDB4ZmYsIDE4MyksCisJTVgzMV9QSU5fRDMJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NCksCisJTVgzMV9QSU5fRDQJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NSksCisJTVgzMV9QSU5fRDUJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NiksCisJTVgzMV9QSU5fRDYJCT0gSU9NVVhfUElOKDB4ZmYsIDE4NyksCisJTVgzMV9QSU5fRDcJCT0gSU9NVVhfUElOKDB4ZmYsIDE4OCksCisJTVgzMV9QSU5fRDgJCT0gSU9NVVhfUElOKDB4ZmYsIDE4OSksCisJTVgzMV9QSU5fRDkJCT0gSU9NVVhfUElOKDB4ZmYsIDE5MCksCisJTVgzMV9QSU5fRDEwCQk9IElPTVVYX1BJTigweGZmLCAxOTEpLAorCU1YMzFfUElOX0QxMQkJPSBJT01VWF9QSU4oMHhmZiwgMTkyKSwKKwlNWDMxX1BJTl9EMTIJCT0gSU9NVVhfUElOKDB4ZmYsIDE5MyksCisJTVgzMV9QSU5fRDEzCQk9IElPTVVYX1BJTigweGZmLCAxOTQpLAorCU1YMzFfUElOX0QxNAkJPSBJT01VWF9QSU4oMHhmZiwgMTk1KSwKKwlNWDMxX1BJTl9EMTUJCT0gSU9NVVhfUElOKDB4ZmYsIDE5NiksCisJTVgzMV9QSU5fTkZSQgkJPSBJT01VWF9QSU4oMTYsICAgMTk3KSwKKwlNWDMxX1BJTl9ORkNFX0IJCT0gSU9NVVhfUElOKDE1LCAgIDE5OCksCisJTVgzMV9QSU5fTkZXUF9CCQk9IElPTVVYX1BJTigxNCwgICAxOTkpLAorCU1YMzFfUElOX05GQ0xFCQk9IElPTVVYX1BJTigxMywgICAyMDApLAorCU1YMzFfUElOX05GQUxFCQk9IElPTVVYX1BJTigxMiwgICAyMDEpLAorCU1YMzFfUElOX05GUkVfQgkJPSBJT01VWF9QSU4oMTEsICAgMjAyKSwKKwlNWDMxX1BJTl9ORldFX0IJCT0gSU9NVVhfUElOKDEwLCAgIDIwMyksCisJTVgzMV9QSU5fU0RRUzMJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNCksCisJTVgzMV9QSU5fU0RRUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNSksCisJTVgzMV9QSU5fU0RRUzEJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNiksCisJTVgzMV9QSU5fU0RRUzAJCT0gSU9NVVhfUElOKDB4ZmYsIDIwNyksCisJTVgzMV9QSU5fU0RDTEtfQgk9IElPTVVYX1BJTigweGZmLCAyMDgpLAorCU1YMzFfUElOX1NEQ0xLCQk9IElPTVVYX1BJTigweGZmLCAyMDkpLAorCU1YMzFfUElOX1NEQ0tFMQkJPSBJT01VWF9QSU4oMHhmZiwgMjEwKSwKKwlNWDMxX1BJTl9TRENLRTAJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMSksCisJTVgzMV9QSU5fU0RXRQkJPSBJT01VWF9QSU4oMHhmZiwgMjEyKSwKKwlNWDMxX1BJTl9DQVMJCT0gSU9NVVhfUElOKDB4ZmYsIDIxMyksCisJTVgzMV9QSU5fUkFTCQk9IElPTVVYX1BJTigweGZmLCAyMTQpLAorCU1YMzFfUElOX1JXCQk9IElPTVVYX1BJTigweGZmLCAyMTUpLAorCU1YMzFfUElOX0JDTEsJCT0gSU9NVVhfUElOKDB4ZmYsIDIxNiksCisJTVgzMV9QSU5fTEJBCQk9IElPTVVYX1BJTigweGZmLCAyMTcpLAorCU1YMzFfUElOX0VDQgkJPSBJT01VWF9QSU4oMHhmZiwgMjE4KSwKKwlNWDMxX1BJTl9DUzUJCT0gSU9NVVhfUElOKDB4ZmYsIDIxOSksCisJTVgzMV9QSU5fQ1M0CQk9IElPTVVYX1BJTigweGZmLCAyMjApLAorCU1YMzFfUElOX0NTMwkJPSBJT01VWF9QSU4oMHhmZiwgMjIxKSwKKwlNWDMxX1BJTl9DUzIJCT0gSU9NVVhfUElOKDB4ZmYsIDIyMiksCisJTVgzMV9QSU5fQ1MxCQk9IElPTVVYX1BJTigweGZmLCAyMjMpLAorCU1YMzFfUElOX0NTMAkJPSBJT01VWF9QSU4oMHhmZiwgMjI0KSwKKwlNWDMxX1BJTl9PRQkJPSBJT01VWF9QSU4oMHhmZiwgMjI1KSwKKwlNWDMxX1BJTl9FQjEJCT0gSU9NVVhfUElOKDB4ZmYsIDIyNiksCisJTVgzMV9QSU5fRUIwCQk9IElPTVVYX1BJTigweGZmLCAyMjcpLAorCU1YMzFfUElOX0RRTTMJCT0gSU9NVVhfUElOKDB4ZmYsIDIyOCksCisJTVgzMV9QSU5fRFFNMgkJPSBJT01VWF9QSU4oMHhmZiwgMjI5KSwKKwlNWDMxX1BJTl9EUU0xCQk9IElPTVVYX1BJTigweGZmLCAyMzApLAorCU1YMzFfUElOX0RRTTAJCT0gSU9NVVhfUElOKDB4ZmYsIDIzMSksCisJTVgzMV9QSU5fU0QzMQkJPSBJT01VWF9QSU4oMHhmZiwgMjMyKSwKKwlNWDMxX1BJTl9TRDMwCQk9IElPTVVYX1BJTigweGZmLCAyMzMpLAorCU1YMzFfUElOX1NEMjkJCT0gSU9NVVhfUElOKDB4ZmYsIDIzNCksCisJTVgzMV9QSU5fU0QyOAkJPSBJT01VWF9QSU4oMHhmZiwgMjM1KSwKKwlNWDMxX1BJTl9TRDI3CQk9IElPTVVYX1BJTigweGZmLCAyMzYpLAorCU1YMzFfUElOX1NEMjYJCT0gSU9NVVhfUElOKDB4ZmYsIDIzNyksCisJTVgzMV9QSU5fU0QyNQkJPSBJT01VWF9QSU4oMHhmZiwgMjM4KSwKKwlNWDMxX1BJTl9TRDI0CQk9IElPTVVYX1BJTigweGZmLCAyMzkpLAorCU1YMzFfUElOX1NEMjMJCT0gSU9NVVhfUElOKDB4ZmYsIDI0MCksCisJTVgzMV9QSU5fU0QyMgkJPSBJT01VWF9QSU4oMHhmZiwgMjQxKSwKKwlNWDMxX1BJTl9TRDIxCQk9IElPTVVYX1BJTigweGZmLCAyNDIpLAorCU1YMzFfUElOX1NEMjAJCT0gSU9NVVhfUElOKDB4ZmYsIDI0MyksCisJTVgzMV9QSU5fU0QxOQkJPSBJT01VWF9QSU4oMHhmZiwgMjQ0KSwKKwlNWDMxX1BJTl9TRDE4CQk9IElPTVVYX1BJTigweGZmLCAyNDUpLAorCU1YMzFfUElOX1NEMTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI0NiksCisJTVgzMV9QSU5fU0QxNgkJPSBJT01VWF9QSU4oMHhmZiwgMjQ3KSwKKwlNWDMxX1BJTl9TRDE1CQk9IElPTVVYX1BJTigweGZmLCAyNDgpLAorCU1YMzFfUElOX1NEMTQJCT0gSU9NVVhfUElOKDB4ZmYsIDI0OSksCisJTVgzMV9QSU5fU0QxMwkJPSBJT01VWF9QSU4oMHhmZiwgMjUwKSwKKwlNWDMxX1BJTl9TRDEyCQk9IElPTVVYX1BJTigweGZmLCAyNTEpLAorCU1YMzFfUElOX1NEMTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI1MiksCisJTVgzMV9QSU5fU0QxMAkJPSBJT01VWF9QSU4oMHhmZiwgMjUzKSwKKwlNWDMxX1BJTl9TRDkJCT0gSU9NVVhfUElOKDB4ZmYsIDI1NCksCisJTVgzMV9QSU5fU0Q4CQk9IElPTVVYX1BJTigweGZmLCAyNTUpLAorCU1YMzFfUElOX1NENwkJPSBJT01VWF9QSU4oMHhmZiwgMjU2KSwKKwlNWDMxX1BJTl9TRDYJCT0gSU9NVVhfUElOKDB4ZmYsIDI1NyksCisJTVgzMV9QSU5fU0Q1CQk9IElPTVVYX1BJTigweGZmLCAyNTgpLAorCU1YMzFfUElOX1NENAkJPSBJT01VWF9QSU4oMHhmZiwgMjU5KSwKKwlNWDMxX1BJTl9TRDMJCT0gSU9NVVhfUElOKDB4ZmYsIDI2MCksCisJTVgzMV9QSU5fU0QyCQk9IElPTVVYX1BJTigweGZmLCAyNjEpLAorCU1YMzFfUElOX1NEMQkJPSBJT01VWF9QSU4oMHhmZiwgMjYyKSwKKwlNWDMxX1BJTl9TRDAJCT0gSU9NVVhfUElOKDB4ZmYsIDI2MyksCisJTVgzMV9QSU5fU0RCQTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI2NCksCisJTVgzMV9QSU5fU0RCQTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI2NSksCisJTVgzMV9QSU5fQTI1CQk9IElPTVVYX1BJTigweGZmLCAyNjYpLAorCU1YMzFfUElOX0EyNAkJPSBJT01VWF9QSU4oMHhmZiwgMjY3KSwKKwlNWDMxX1BJTl9BMjMJCT0gSU9NVVhfUElOKDB4ZmYsIDI2OCksCisJTVgzMV9QSU5fQTIyCQk9IElPTVVYX1BJTigweGZmLCAyNjkpLAorCU1YMzFfUElOX0EyMQkJPSBJT01VWF9QSU4oMHhmZiwgMjcwKSwKKwlNWDMxX1BJTl9BMjAJCT0gSU9NVVhfUElOKDB4ZmYsIDI3MSksCisJTVgzMV9QSU5fQTE5CQk9IElPTVVYX1BJTigweGZmLCAyNzIpLAorCU1YMzFfUElOX0ExOAkJPSBJT01VWF9QSU4oMHhmZiwgMjczKSwKKwlNWDMxX1BJTl9BMTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI3NCksCisJTVgzMV9QSU5fQTE2CQk9IElPTVVYX1BJTigweGZmLCAyNzUpLAorCU1YMzFfUElOX0ExNAkJPSBJT01VWF9QSU4oMHhmZiwgMjc2KSwKKwlNWDMxX1BJTl9BMTUJCT0gSU9NVVhfUElOKDB4ZmYsIDI3NyksCisJTVgzMV9QSU5fQTEzCQk9IElPTVVYX1BJTigweGZmLCAyNzgpLAorCU1YMzFfUElOX0ExMgkJPSBJT01VWF9QSU4oMHhmZiwgMjc5KSwKKwlNWDMxX1BJTl9BMTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MCksCisJTVgzMV9QSU5fTUExMAkJPSBJT01VWF9QSU4oMHhmZiwgMjgxKSwKKwlNWDMxX1BJTl9BMTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MiksCisJTVgzMV9QSU5fQTkJCT0gSU9NVVhfUElOKDB4ZmYsIDI4MyksCisJTVgzMV9QSU5fQTgJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NCksCisJTVgzMV9QSU5fQTcJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NSksCisJTVgzMV9QSU5fQTYJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NiksCisJTVgzMV9QSU5fQTUJCT0gSU9NVVhfUElOKDB4ZmYsIDI4NyksCisJTVgzMV9QSU5fQTQJCT0gSU9NVVhfUElOKDB4ZmYsIDI4OCksCisJTVgzMV9QSU5fQTMJCT0gSU9NVVhfUElOKDB4ZmYsIDI4OSksCisJTVgzMV9QSU5fQTIJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MCksCisJTVgzMV9QSU5fQTEJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MSksCisJTVgzMV9QSU5fQTAJCT0gSU9NVVhfUElOKDB4ZmYsIDI5MiksCisJTVgzMV9QSU5fVlBHMQkJPSBJT01VWF9QSU4oMHhmZiwgMjkzKSwKKwlNWDMxX1BJTl9WUEcwCQk9IElPTVVYX1BJTigweGZmLCAyOTQpLAorCU1YMzFfUElOX0RWRlMxCQk9IElPTVVYX1BJTigweGZmLCAyOTUpLAorCU1YMzFfUElOX0RWRlMwCQk9IElPTVVYX1BJTigweGZmLCAyOTYpLAorCU1YMzFfUElOX1ZTVEJZCQk9IElPTVVYX1BJTigweGZmLCAyOTcpLAorCU1YMzFfUElOX1BPV0VSX0ZBSUwJPSBJT01VWF9QSU4oMHhmZiwgMjk4KSwKKwlNWDMxX1BJTl9DS0lMCQk9IElPTVVYX1BJTigweGZmLCAyOTkpLAorCU1YMzFfUElOX0JPT1RfTU9ERTQJPSBJT01VWF9QSU4oMHhmZiwgMzAwKSwKKwlNWDMxX1BJTl9CT09UX01PREUzCT0gSU9NVVhfUElOKDB4ZmYsIDMwMSksCisJTVgzMV9QSU5fQk9PVF9NT0RFMgk9IElPTVVYX1BJTigweGZmLCAzMDIpLAorCU1YMzFfUElOX0JPT1RfTU9ERTEJPSBJT01VWF9QSU4oMHhmZiwgMzAzKSwKKwlNWDMxX1BJTl9CT09UX01PREUwCT0gSU9NVVhfUElOKDB4ZmYsIDMwNCksCisJTVgzMV9QSU5fQ0xLTwkJPSBJT01VWF9QSU4oMHhmZiwgMzA1KSwKKwlNWDMxX1BJTl9QT1JfQgkJPSBJT01VWF9QSU4oMHhmZiwgMzA2KSwKKwlNWDMxX1BJTl9SRVNFVF9JTl9CCT0gSU9NVVhfUElOKDB4ZmYsIDMwNyksCisJTVgzMV9QSU5fQ0tJSAkJPSBJT01VWF9QSU4oMHhmZiwgMzA4KSwKKwlNWDMxX1BJTl9TSU1QRDAJCT0gSU9NVVhfUElOKDM1LCAgIDMwOSksCisJTVgzMV9QSU5fU1JYMAkJPSBJT01VWF9QSU4oMzQsICAgMzEwKSwKKwlNWDMxX1BJTl9TVFgwCQk9IElPTVVYX1BJTigzMywgICAzMTEpLAorCU1YMzFfUElOX1NWRU4wCQk9IElPTVVYX1BJTigzMiwgICAzMTIpLAorCU1YMzFfUElOX1NSU1QwCQk9IElPTVVYX1BJTig2NywgICAzMTMpLAorCU1YMzFfUElOX1NDTEswCQk9IElPTVVYX1BJTig2NiwgICAzMTQpLAorCU1YMzFfUElOX0dQSU8zXzEJPSBJT01VWF9QSU4oNjUsICAgMzE1KSwKKwlNWDMxX1BJTl9HUElPM18wCT0gSU9NVVhfUElOKDY0LCAgIDMxNiksCisJTVgzMV9QSU5fR1BJTzFfNgk9IElPTVVYX1BJTiggNiwgICAzMTcpLAorCU1YMzFfUElOX0dQSU8xXzUJPSBJT01VWF9QSU4oIDUsICAgMzE4KSwKKwlNWDMxX1BJTl9HUElPMV80CT0gSU9NVVhfUElOKCA0LCAgIDMxOSksCisJTVgzMV9QSU5fR1BJTzFfMwk9IElPTVVYX1BJTiggMywgICAzMjApLAorCU1YMzFfUElOX0dQSU8xXzIJPSBJT01VWF9QSU4oIDIsICAgMzIxKSwKKwlNWDMxX1BJTl9HUElPMV8xCT0gSU9NVVhfUElOKCAxLCAgIDMyMiksCisJTVgzMV9QSU5fR1BJTzFfMAk9IElPTVVYX1BJTiggMCwgICAzMjMpLAorCU1YMzFfUElOX1BXTU8JCT0gSU9NVVhfUElOKCA5LCAgIDMyNCksCisJTVgzMV9QSU5fV0FUQ0hET0dfUlNUCT0gSU9NVVhfUElOKDB4ZmYsIDMyNSksCisJTVgzMV9QSU5fQ09NUEFSRQk9IElPTVVYX1BJTiggOCwgICAzMjYpLAorCU1YMzFfUElOX0NBUFRVUkUJPSBJT01VWF9QSU4oIDcsICAgMzI3KSwKK307CisKKy8qCisgKiBDb252ZW5pZW5jZSB2YWx1ZXMgZm9yIHVzZSB3aXRoIG14Y19pb211eF9tb2RlKCkKKyAqCisgKiBGb3JtYXQgaGVyZSBpcyBNWDMxX1BJTl8ocGluIG5hbWUpX18oZnVuY3Rpb24pCisgKi8KKyNkZWZpbmUgTVgzMV9QSU5fQ1NQSTNfTU9TSV9fUlhEMwlJT01VWF9NT0RFKE1YMzFfUElOX0NTUEkzX01PU0ksIElPTVVYX0NPTkZJR19BTFQxKQorI2RlZmluZSBNWDMxX1BJTl9DU1BJM19NSVNPX19UWEQzCUlPTVVYX01PREUoTVgzMV9QSU5fQ1NQSTNfTUlTTywgSU9NVVhfQ09ORklHX0FMVDEpCisjZGVmaW5lIE1YMzFfUElOX0NUUzFfX0NUUzEJCUlPTVVYX01PREUoTVgzMV9QSU5fQ1RTMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1JUUzFfX1JUUzEJCUlPTVVYX01PREUoTVgzMV9QSU5fUlRTMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1RYRDFfX1RYRDEJCUlPTVVYX01PREUoTVgzMV9QSU5fVFhEMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisjZGVmaW5lIE1YMzFfUElOX1JYRDFfX1JYRDEJCUlPTVVYX01PREUoTVgzMV9QSU5fUlhEMSwgSU9NVVhfQ09ORklHX0ZVTkMpCisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGNvbmZpZ3VyZXMgdGhlIHBhZCB2YWx1ZSBmb3IgYSBJT01VWCBwaW4uCisgKi8KK3ZvaWQgbXhjX2lvbXV4X3NldF9wYWQoZW51bSBpb211eF9waW5zLCB1MzIpOworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lycXMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9pcnFzLmgKaW5kZXggYjJjNTIwNS4uZjQxNjEzMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvaXJxcy5oCkBAIC0xMywxNyArMTMsNCBAQAogCiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CiAKLSNkZWZpbmUgTVhDX0lSUV9UT19FWFBJTyhpcnEpCSgoaXJxKSAtIE1YQ19FWFBfSU9fQkFTRSkKLQotI2RlZmluZSBNWENfSVJRX1RPX0dQSU8oaXJxKQkoKGlycSkgLSBNWENfR1BJT19JTlRfQkFTRSkKLSNkZWZpbmUgTVhDX0dQSU9fVE9fSVJRKHgpCShNWENfR1BJT19JTlRfQkFTRSArIHgpCi0KLS8qIE51bWJlciBvZiBub3JtYWwgaW50ZXJydXB0cyAqLwotI2RlZmluZSBOUl9JUlFTCQkoTVhDX01BWF9JTlRfTElORVMgKyBcCi0JCQlNWENfTUFYX0dQSU9fTElORVMgKyBcCi0JCQlNWENfTUFYX1ZJUlRVQUxfSU5UUykKLQotLyogTnVtYmVyIG9mIGZhc3QgaW50ZXJydXB0cyAqLwotI2RlZmluZSBOUl9GSVFTCQlNWENfTUFYX0lOVFMKLQogI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX0lSUVNfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgyNy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MjcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTJlY2MyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MjcuaApAQCAtMCwwICsxLDMwMiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDA0LTIwMDcgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAyMDA4IEp1ZXJnZW4gQmVpc2VydCwga2VybmVsQHBlbmd1dHJvbml4LmRlCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgX19BU01fQVJDSF9NWENfTVgyN19IX18KKyNkZWZpbmUgX19BU01fQVJDSF9NWENfTVgyN19IX18KKworI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19IQVJEV0FSRV9IX18KKyNlcnJvciAiRG8gbm90IGluY2x1ZGUgZGlyZWN0bHkuIgorI2VuZGlmCisKKy8qIElSQU0gKi8KKyNkZWZpbmUgSVJBTV9CQVNFX0FERFIgICAgICAgICAgMHhGRkZGNEMwMAkvKiBpbnRlcm5hbCByYW0gKi8KKworLyogUmVnaXN0ZXIgb2ZmZXN0cyAqLworI2RlZmluZSBBSVBJX0JBU0VfQUREUiAgICAgICAgICAweDEwMDAwMDAwCisjZGVmaW5lIEFJUElfQkFTRV9BRERSX1ZJUlQgICAgIDB4RjQwMDAwMDAKKyNkZWZpbmUgQUlQSV9TSVpFICAgICAgICAgICAgICAgU1pfMU0KKworI2RlZmluZSBETUFfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAxMDAwKQorI2RlZmluZSBXRE9HX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAyMDAwKQorI2RlZmluZSBHUFQxX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDAzMDAwKQorI2RlZmluZSBHUFQyX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA0MDAwKQorI2RlZmluZSBHUFQzX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA1MDAwKQorI2RlZmluZSBQV01fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA2MDAwKQorI2RlZmluZSBSVENfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA3MDAwKQorI2RlZmluZSBLUFBfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA4MDAwKQorI2RlZmluZSBPV0lSRV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDA5MDAwKQorI2RlZmluZSBVQVJUMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBBMDAwKQorI2RlZmluZSBVQVJUMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBCMDAwKQorI2RlZmluZSBVQVJUM19CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBDMDAwKQorI2RlZmluZSBVQVJUNF9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBEMDAwKQorI2RlZmluZSBDU1BJMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBFMDAwKQorI2RlZmluZSBDU1BJMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDBGMDAwKQorI2RlZmluZSBTU0kxX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEwMDAwKQorI2RlZmluZSBTU0kyX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDExMDAwKQorI2RlZmluZSBJMkNfQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEyMDAwKQorI2RlZmluZSBTREhDMV9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDEzMDAwKQorI2RlZmluZSBTREhDMl9CQVNFX0FERFIgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE0MDAwKQorI2RlZmluZSBHUElPX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE1MDAwKQorI2RlZmluZSBBVURNVVhfQkFTRV9BRERSICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDE2MDAwKQorCisjZGVmaW5lIENTUEkzX0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTcwMDApCisjZGVmaW5lIE1TSENfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTgwMDApCisjZGVmaW5lIEdQVDVfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MTkwMDApCisjZGVmaW5lIEdQVDRfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUEwMDApCisjZGVmaW5lIFVBUlQ1X0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUIwMDApCisjZGVmaW5lIFVBUlQ2X0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUMwMDApCisjZGVmaW5lIEkyQzJfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUQwMDApCisjZGVmaW5lIFNESEMzX0JBU0VfQUREUiAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUUwMDApCisjZGVmaW5lIEdQVDZfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MUYwMDApCisKKyNkZWZpbmUgTENEQ19CQVNFX0FERFIgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMTAwMCkKKyNkZWZpbmUgU0xDRENfQkFTRV9BRERSICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMjAwMCkKKyNkZWZpbmUgVlBVX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyMzAwMCkKKyNkZWZpbmUgVVNCT1RHX0JBU0VfQUREUiAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgyNDAwMCkKKy8qIGZvciBteDI3Ki8KKyNkZWZpbmUgT1RHX0JBU0VfQUREUiAgICAgICAgICAgVVNCT1RHX0JBU0VfQUREUgorI2RlZmluZSBTQUhBUkFfQkFTRV9BRERSICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI1MDAwKQorI2RlZmluZSBFTU1BX0JBU0VfQUREUiAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI2NDAwKQorI2RlZmluZSBDQ01fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI3MDAwKQorI2RlZmluZSBTWVNDVFJMX0JBU0VfQUREUiAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI3ODAwKQorI2RlZmluZSBJSU1fQkFTRV9BRERSICAgICAgICAgICAoQUlQSV9CQVNFX0FERFIgKyAweDI4MDAwKQorCisjZGVmaW5lIFJUSUNfQkFTRV9BRERSICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkEwMDApCisjZGVmaW5lIEZFQ19CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkIwMDApCisjZGVmaW5lIFNDQ19CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4MkMwMDApCisjZGVmaW5lIEVUQl9CQVNFX0FERFIgICAgICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0IwMDApCisjZGVmaW5lIEVUQl9SQU1fQkFTRV9BRERSICAgICAgIChBSVBJX0JBU0VfQUREUiArIDB4M0MwMDApCisKKyNkZWZpbmUgSkFNX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgzRTAwMCkKKyNkZWZpbmUgTUFYX0JBU0VfQUREUiAgICAgICAgICAgKEFJUElfQkFTRV9BRERSICsgMHgzRjAwMCkKKworLyogUk9NUCBhbmQgQVZJQyAqLworI2RlZmluZSBST01QX0JBU0VfQUREUiAgICAgICAgICAweDEwMDQxMDAwCisKKyNkZWZpbmUgQVZJQ19CQVNFX0FERFIgICAgICAgICAgMHgxMDA0MDAwMAorCisjZGVmaW5lIFNBSEIxX0JBU0VfQUREUiAgICAgICAgIDB4ODAwMDAwMDAKKyNkZWZpbmUgU0FIQjFfQkFTRV9BRERSX1ZJUlQgICAgMHhGNDEwMDAwMAorI2RlZmluZSBTQUhCMV9TSVpFICAgICAgICAgICAgICBTWl8xTQorCisjZGVmaW5lIENTSV9CQVNFX0FERFIgICAgICAgICAgIChTQUhCMV9CQVNFX0FERFIgKyAweDAwMDApCisjZGVmaW5lIEFUQV9CQVNFX0FERFIgICAgICAgICAgIChTQUhCMV9CQVNFX0FERFIgKyAweDEwMDApCisKKy8qIE5BTkQsIFNEUkFNLCBXRUlNLCBNM0lGLCBFTUkgY29udHJvbGxlcnMgKi8KKyNkZWZpbmUgWF9NRU1DX0JBU0VfQUREUiAgICAgICAgMHhEODAwMDAwMAorI2RlZmluZSBYX01FTUNfQkFTRV9BRERSX1ZJUlQgICAweEY0MjAwMDAwCisjZGVmaW5lIFhfTUVNQ19TSVpFICAgICAgICAgICAgIFNaXzFNCisKKyNkZWZpbmUgTkZDX0JBU0VfQUREUiAgICAgICAgICAgKFhfTUVNQ19CQVNFX0FERFIpCisjZGVmaW5lIFNEUkFNQ19CQVNFX0FERFIgICAgICAgIChYX01FTUNfQkFTRV9BRERSICsgMHgxMDAwKQorI2RlZmluZSBXRUlNX0JBU0VfQUREUiAgICAgICAgICAoWF9NRU1DX0JBU0VfQUREUiArIDB4MjAwMCkKKyNkZWZpbmUgTTNJRl9CQVNFX0FERFIgICAgICAgICAgKFhfTUVNQ19CQVNFX0FERFIgKyAweDMwMDApCisjZGVmaW5lIFBDTUNJQV9DVExfQkFTRV9BRERSICAgIChYX01FTUNfQkFTRV9BRERSICsgMHg0MDAwKQorCisvKiBNZW1vcnkgcmVnaW9ucyBhbmQgQ1MgKi8KKyNkZWZpbmUgU0RSQU1fQkFTRV9BRERSCQkweEEwMDAwMDAwCisjZGVmaW5lIENTRDFfQkFTRV9BRERSCQkweEIwMDAwMDAwCisKKyNkZWZpbmUgQ1MwX0JBU0VfQUREUiAgICAgICAgICAgMHhDMDAwMDAwMAorI2RlZmluZSBDUzFfQkFTRV9BRERSICAgICAgICAgICAweEM4MDAwMDAwCisjZGVmaW5lIENTMl9CQVNFX0FERFIgICAgICAgICAgIDB4RDAwMDAwMDAKKyNkZWZpbmUgQ1MzX0JBU0VfQUREUiAgICAgICAgICAgMHhEMjAwMDAwMAorI2RlZmluZSBDUzRfQkFTRV9BRERSICAgICAgICAgICAweEQ0MDAwMDAwCisjZGVmaW5lIENTNV9CQVNFX0FERFIgICAgICAgICAgIDB4RDYwMDAwMDAKKyNkZWZpbmUgUENNQ0lBX01FTV9CQVNFX0FERFIgICAgMHhEQzAwMDAwMAorCisvKgorICogVGhpcyBtYWNybyBkZWZpbmVzIHRoZSBwaHlzaWNhbCB0byB2aXJ0dWFsIGFkZHJlc3MgbWFwcGluZyBmb3IgYWxsIHRoZQorICogcGVyaXBoZXJhbCBtb2R1bGVzLiBJdCBpcyB1c2VkIGJ5IHBhc3NpbmcgaW4gdGhlIHBoeXNpY2FsIGFkZHJlc3MgYXMgeAorICogYW5kIHJldHVybmluZyB0aGUgdmlydHVhbCBhZGRyZXNzLiBJZiB0aGUgcGh5c2ljYWwgYWRkcmVzcyBpcyBub3QgbWFwcGVkLAorICogaXQgcmV0dXJucyAweERFQURCRUVGCisgKi8KKyNkZWZpbmUgSU9fQUREUkVTUyh4KSAgIFwKKwkoKCh4ID49IEFJUElfQkFTRV9BRERSKSAmJiAoeCA8IChBSVBJX0JBU0VfQUREUiArIEFJUElfU0laRSkpKSA/IFwKKwkJQUlQSV9JT19BRERSRVNTKHgpIDogXAorCSgoeCA+PSBTQUhCMV9CQVNFX0FERFIpICYmICh4IDwgKFNBSEIxX0JBU0VfQUREUiArIFNBSEIxX1NJWkUpKSkgPyBcCisJCVNBSEIxX0lPX0FERFJFU1MoeCkgOiBcCisJKCh4ID49IFhfTUVNQ19CQVNFX0FERFIpICYmICh4IDwgKFhfTUVNQ19CQVNFX0FERFIgKyBYX01FTUNfU0laRSkpKSA/IFwKKwkJWF9NRU1DX0lPX0FERFJFU1MoeCkgOiAweERFQURCRUVGKQorCisvKiBkZWZpbmUgdGhlIGFkZHJlc3MgbWFwcGluZyBtYWNyb3M6IGluIHBoeXNpY2FsIGFkZHJlc3Mgb3JkZXIgKi8KKyNkZWZpbmUgQUlQSV9JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBBSVBJX0JBU0VfQUREUikgKyBBSVBJX0JBU0VfQUREUl9WSVJUKQorCisjZGVmaW5lIEFWSUNfSU9fQUREUkVTUyh4KQlBSVBJX0lPX0FERFJFU1MoeCkKKworI2RlZmluZSBTQUhCMV9JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBTQUhCMV9CQVNFX0FERFIpICsgU0FIQjFfQkFTRV9BRERSX1ZJUlQpCisKKyNkZWZpbmUgQ1M0X0lPX0FERFJFU1MoeCkgIFwKKwkoKCh4KSAtIENTNF9CQVNFX0FERFIpICsgQ1M0X0JBU0VfQUREUl9WSVJUKQorCisjZGVmaW5lIFhfTUVNQ19JT19BRERSRVNTKHgpICBcCisJKCgoeCkgLSBYX01FTUNfQkFTRV9BRERSKSArIFhfTUVNQ19CQVNFX0FERFJfVklSVCkKKworI2RlZmluZSBQQ01DSUFfSU9fQUREUkVTUyh4KSBcCisJKCgoeCkgLSBYX01FTUNfQkFTRV9BRERSKSArIFhfTUVNQ19CQVNFX0FERFJfVklSVCkKKworLyogZml4ZWQgaW50ZXJycHV0IG51bWJlcnMgKi8KKyNkZWZpbmUgTVhDX0lOVF9DQ00JCTYzCisjZGVmaW5lIE1YQ19JTlRfSUlNCQk2MgorI2RlZmluZSBNWENfSU5UX0xDREMJCTYxCisjZGVmaW5lIE1YQ19JTlRfU0xDREMJCTYwCisjZGVmaW5lIE1YQ19JTlRfU0FIQVJBCQk1OQorI2RlZmluZSBNWENfSU5UX1NDQ19TQ00JCTU4CisjZGVmaW5lIE1YQ19JTlRfU0NDX1NNTgkJNTcKKyNkZWZpbmUgTVhDX0lOVF9VU0IzCQk1NgorI2RlZmluZSBNWENfSU5UX1VTQjIJCTU1CisjZGVmaW5lIE1YQ19JTlRfVVNCMQkJNTQKKyNkZWZpbmUgTVhDX0lOVF9WUFUJCTUzCisjZGVmaW5lIE1YQ19JTlRfRU1NQVBQCQk1MgorI2RlZmluZSBNWENfSU5UX0VNTUFQUlAJCTUxCisjZGVmaW5lIE1YQ19JTlRfRkVDCQk1MAorI2RlZmluZSBNWENfSU5UX1VBUlQ1CQk0OQorI2RlZmluZSBNWENfSU5UX1VBUlQ2CQk0OAorI2RlZmluZSBNWENfSU5UX0RNQUNIMTUJCTQ3CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxNAkJNDYKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDEzCQk0NQorI2RlZmluZSBNWENfSU5UX0RNQUNIMTIJCTQ0CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxMQkJNDMKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDEwCQk0MgorI2RlZmluZSBNWENfSU5UX0RNQUNIOQkJNDEKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDgJCTQwCisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g3CQkzOQorI2RlZmluZSBNWENfSU5UX0RNQUNINgkJMzgKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDUJCTM3CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0g0CQkzNgorI2RlZmluZSBNWENfSU5UX0RNQUNIMwkJMzUKKyNkZWZpbmUgTVhDX0lOVF9ETUFDSDIJCTM0CisjZGVmaW5lIE1YQ19JTlRfRE1BQ0gxCQkzMworI2RlZmluZSBNWENfSU5UX0RNQUNIMAkJMzIKKyNkZWZpbmUgTVhDX0lOVF9DU0kJCTMxCisjZGVmaW5lIE1YQ19JTlRfQVRBCQkzMAorI2RlZmluZSBNWENfSU5UX05BTkRGQwkJMjkKKyNkZWZpbmUgTVhDX0lOVF9QQ01DSUEJCTI4CisjZGVmaW5lIE1YQ19JTlRfV0RPRwkJMjcKKyNkZWZpbmUgTVhDX0lOVF9HUFQxCQkyNgorI2RlZmluZSBNWENfSU5UX0dQVDIJCTI1CisjZGVmaW5lIE1YQ19JTlRfR1BUMwkJMjQKKyNkZWZpbmUgTVhDX0lOVF9HUFQJCUlOVF9HUFQxCisjZGVmaW5lIE1YQ19JTlRfUFdNCQkyMworI2RlZmluZSBNWENfSU5UX1JUQwkJMjIKKyNkZWZpbmUgTVhDX0lOVF9LUFAJCTIxCisjZGVmaW5lIE1YQ19JTlRfVUFSVDEJCTIwCisjZGVmaW5lIE1YQ19JTlRfVUFSVDIJCTE5CisjZGVmaW5lIE1YQ19JTlRfVUFSVDMJCTE4CisjZGVmaW5lIE1YQ19JTlRfVUFSVDQJCTE3CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTEJCTE2CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTIJCTE1CisjZGVmaW5lIE1YQ19JTlRfU1NJMQkJMTQKKyNkZWZpbmUgTVhDX0lOVF9TU0kyCQkxMworI2RlZmluZSBNWENfSU5UX0kyQwkJMTIKKyNkZWZpbmUgTVhDX0lOVF9TREhDMQkJMTEKKyNkZWZpbmUgTVhDX0lOVF9TREhDMgkJMTAKKyNkZWZpbmUgTVhDX0lOVF9TREhDMwkJOQorI2RlZmluZSBNWENfSU5UX0dQSU8JCTgKKyNkZWZpbmUgTVhDX0lOVF9TREhDCQk3CisjZGVmaW5lIE1YQ19JTlRfQ1NQSTMJCTYKKyNkZWZpbmUgTVhDX0lOVF9SVElDCQk1CisjZGVmaW5lIE1YQ19JTlRfR1BUNAkJNAorI2RlZmluZSBNWENfSU5UX0dQVDUJCTMKKyNkZWZpbmUgTVhDX0lOVF9HUFQ2CQkyCisjZGVmaW5lIE1YQ19JTlRfSTJDMgkJMQorCisvKiBmaXhlZCBETUEgcmVxdWVzdCBudW1iZXJzICovCisjZGVmaW5lIERNQV9SRVFfTkZDICAgICAgICAgICAgIDM3CisjZGVmaW5lIERNQV9SRVFfU0RIQzMgICAgICAgICAgIDM2CisjZGVmaW5lIERNQV9SRVFfVUFSVDZfUlggICAgICAgIDM1CisjZGVmaW5lIERNQV9SRVFfVUFSVDZfVFggICAgICAgIDM0CisjZGVmaW5lIERNQV9SRVFfVUFSVDVfUlggICAgICAgIDMzCisjZGVmaW5lIERNQV9SRVFfVUFSVDVfVFggICAgICAgIDMyCisjZGVmaW5lIERNQV9SRVFfQ1NJX1JYICAgICAgICAgIDMxCisjZGVmaW5lIERNQV9SRVFfQ1NJX1NUQVQgICAgICAgIDMwCisjZGVmaW5lIERNQV9SRVFfQVRBX1JDViAgICAgICAgIDI5CisjZGVmaW5lIERNQV9SRVFfQVRBX1RYICAgICAgICAgIDI4CisjZGVmaW5lIERNQV9SRVFfVUFSVDFfVFggICAgICAgIDI3CisjZGVmaW5lIERNQV9SRVFfVUFSVDFfUlggICAgICAgIDI2CisjZGVmaW5lIERNQV9SRVFfVUFSVDJfVFggICAgICAgIDI1CisjZGVmaW5lIERNQV9SRVFfVUFSVDJfUlggICAgICAgIDI0CisjZGVmaW5lIERNQV9SRVFfVUFSVDNfVFggICAgICAgIDIzCisjZGVmaW5lIERNQV9SRVFfVUFSVDNfUlggICAgICAgIDIyCisjZGVmaW5lIERNQV9SRVFfVUFSVDRfVFggICAgICAgIDIxCisjZGVmaW5lIERNQV9SRVFfVUFSVDRfUlggICAgICAgIDIwCisjZGVmaW5lIERNQV9SRVFfQ1NQSTFfVFggICAgICAgIDE5CisjZGVmaW5lIERNQV9SRVFfQ1NQSTFfUlggICAgICAgIDE4CisjZGVmaW5lIERNQV9SRVFfQ1NQSTJfVFggICAgICAgIDE3CisjZGVmaW5lIERNQV9SRVFfQ1NQSTJfUlggICAgICAgIDE2CisjZGVmaW5lIERNQV9SRVFfU1NJMV9UWDEgICAgICAgIDE1CisjZGVmaW5lIERNQV9SRVFfU1NJMV9SWDEgICAgICAgIDE0CisjZGVmaW5lIERNQV9SRVFfU1NJMV9UWDAgICAgICAgIDEzCisjZGVmaW5lIERNQV9SRVFfU1NJMV9SWDAgICAgICAgIDEyCisjZGVmaW5lIERNQV9SRVFfU1NJMl9UWDEgICAgICAgIDExCisjZGVmaW5lIERNQV9SRVFfU1NJMl9SWDEgICAgICAgIDEwCisjZGVmaW5lIERNQV9SRVFfU1NJMl9UWDAgICAgICAgIDkKKyNkZWZpbmUgRE1BX1JFUV9TU0kyX1JYMCAgICAgICAgOAorI2RlZmluZSBETUFfUkVRX1NESEMxICAgICAgICAgICA3CisjZGVmaW5lIERNQV9SRVFfU0RIQzIgICAgICAgICAgIDYKKyNkZWZpbmUgRE1BX1JFUV9NU0hDICAgICAgICAgICAgNAorI2RlZmluZSBETUFfUkVRX0VYVCAgICAgICAgICAgICAzCisjZGVmaW5lIERNQV9SRVFfQ1NQSTNfVFggICAgICAgIDIKKyNkZWZpbmUgRE1BX1JFUV9DU1BJM19SWCAgICAgICAgMQorCisvKiBzaWxpY29uIHJldmlzaW9ucyBzcGVjaWZpYyB0byBpLk1YMjcgKi8KKyNkZWZpbmUgQ0hJUF9SRVZfMV8wCQkweDAwCisjZGVmaW5lIENISVBfUkVWXzJfMAkJMHgwMQorCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIGludCBteDI3X3JldmlzaW9uKHZvaWQpOworI2VuZGlmCisKKy8qIGdwaW8gYW5kIGdwaW8gYmFzZWQgaW50ZXJydXB0IGhhbmRsaW5nICovCisjZGVmaW5lIEdQSU9fRFIJCSAJMHgxQworI2RlZmluZSBHUElPX0dESVIJIAkweDAwCisjZGVmaW5lIEdQSU9fUFNSCSAJMHgyNAorI2RlZmluZSBHUElPX0lDUjEJIAkweDI4CisjZGVmaW5lIEdQSU9fSUNSMgkgCTB4MkMKKyNkZWZpbmUgR1BJT19JTVIJIAkweDMwCisjZGVmaW5lIEdQSU9fSVNSCSAJMHgzNAorI2RlZmluZSBHUElPX0lOVF9MT1dfTEVWCTB4MworI2RlZmluZSBHUElPX0lOVF9ISUdIX0xFVgkweDIKKyNkZWZpbmUgR1BJT19JTlRfUklTRV9FREdFIAkweDAKKyNkZWZpbmUgR1BJT19JTlRfRkFMTF9FREdFCTB4MQorI2RlZmluZSBHUElPX0lOVF9OT05FCQkweDQKKworLyogTWFuZGF0b3J5IGRlZmluZXMgdXNlZCBnbG9iYWxseSAqLworCisvKiB0aGlzIGlzIGFuIGkuTVgyNyBDUFUgKi8KKyNkZWZpbmUgY3B1X2lzX214MjcoKQkJKDEpCisKKy8qIHRoaXMgQ1BVIHN1cHBvcnRzIHVwIHRvIDE5MiBHUElPcyAoZG9uJ3QgZm9yZ2V0IHRoZSBiYXNlYm9hcmQhKSAqLworI2RlZmluZSBBUkNIX05SX0dQSU9TCQkoMTkyICsgMTYpCisKKy8qIE9TIGNsb2NrIHRpY2sgcmF0ZSAqLworI2RlZmluZSBDTE9DS19USUNLX1JBVEUgICAgICAgICAxMzMwMDAwMAorCisvKiBTdGFydCBvZiBSQU0gKi8KKyNkZWZpbmUgUEhZU19PRkZTRVQJCVNEUkFNX0JBU0VfQUREUgorCisvKiBtYXggaW50ZXJydXB0IGxpbmVzIGNvdW50ICovCisjZGVmaW5lIE5SX0lSUVMJCQkyNTYKKworLyogY291bnQgb2YgaW50ZXJuYWwgaW50ZXJydXB0IHNvdXJjZXMgKi8KKyNkZWZpbmUgTVhDX01BWF9JTlRfTElORVMJNjQKKworI2VuZGlmIC8qIF9fQVNNX0FSQ0hfTVhDX01YMjdfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgzMS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214MzEuaAppbmRleCAzNmExYWY0Li5hNzM3M2U0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXgzMS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teDMxLmgKQEAgLTMyMCw2ICszMjAsOCBAQAogI2RlZmluZSBNWENfTUFYX0dQSU9fTElORVMgICAgICAoR1BJT19OVU1fUElOICogR1BJT19QT1JUX05VTSkKICNkZWZpbmUgTVhDX01BWF9WSVJUVUFMX0lOVFMJMTYKIAorI2RlZmluZSBOUl9JUlFTIChNWENfTUFYX0lOVF9MSU5FUyArIE1YQ19NQVhfR1BJT19MSU5FUyArIE1YQ19NQVhfVklSVFVBTF9JTlRTKQorCiAvKiEKICAqIE51bWJlciBvZiBHUElPIHBvcnQgYXMgZGVmaW5lZCBpbiB0aGUgSUMgU3BlYwogICovCkBAIC0zNDcsNiArMzQ5LDI1IEBACiAjZGVmaW5lIFNZU1RFTV9SRVZfTUlOCQlDSElQX1JFVl8xXzAKICNkZWZpbmUgU1lTVEVNX1JFVl9OVU0JCTMKIAorLyogZ3BpbyBhbmQgZ3BpbyBiYXNlZCBpbnRlcnJ1cHQgaGFuZGxpbmcgKi8KKyNkZWZpbmUgR1BJT19EUgkJIAkweDAwCisjZGVmaW5lIEdQSU9fR0RJUgkgCTB4MDQKKyNkZWZpbmUgR1BJT19QU1IJIAkweDA4CisjZGVmaW5lIEdQSU9fSUNSMQkgCTB4MEMKKyNkZWZpbmUgR1BJT19JQ1IyCSAJMHgxMAorI2RlZmluZSBHUElPX0lNUgkgCTB4MTQKKyNkZWZpbmUgR1BJT19JU1IJIAkweDE4CisjZGVmaW5lIEdQSU9fSU5UX0xPV19MRVYJMHgwCisjZGVmaW5lIEdQSU9fSU5UX0hJR0hfTEVWCTB4MQorI2RlZmluZSBHUElPX0lOVF9SSVNFX0VER0UJMHgyCisjZGVmaW5lIEdQSU9fSU5UX0ZBTExfRURHRQkweDMKKyNkZWZpbmUgR1BJT19JTlRfTk9ORQkJMHg0CisKKy8qIE1hbmRhdG9yeSBkZWZpbmVzIHVzZWQgZ2xvYmFsbHkgKi8KKworLyogdGhpcyBDUFUgc3VwcG9ydHMgdXAgdG8gOTYgR1BJT3MgKi8KKyNkZWZpbmUgQVJDSF9OUl9HUElPUwkJOTYKKwogI2lmICFkZWZpbmVkKF9fQVNTRU1CTFlfXykgJiYgIWRlZmluZWQoX19NWENfQk9PVF9VTkNPTVBSRVNTKQogCiAvKiB0aGlzIGlzIGEgaS5NWDMxIENQVSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Yy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Yy5oCmluZGV4IDE0NmQzZjYuLjMzMmVkYTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1teGMvbXhjLmgKQEAgLTEsMTEgKzEsMjAgQEAKIC8qCiAgKiBDb3B5cmlnaHQgMjAwNC0yMDA3IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKi8KLQotLyoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCisgKiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sCisgKiBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAogI2lmbmRlZiBfX0FTTV9BUkNIX01YQ19IX18KQEAgLTIwLDEzMyArMjksOCBAQAogIyBkZWZpbmUgY3B1X2lzX214MzEoKSAoMCkKICNlbmRpZgogCi0vKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBHUFQgIFJlZ2lzdGVyIGRlZmluaXRpb25zICAgICAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICovCi0jZGVmaW5lIE1YQ19HUFRfR1BUQ1IJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDAwKQotI2RlZmluZSBNWENfR1BUX0dQVFBSCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSICsgMHgwNCkKLSNkZWZpbmUgTVhDX0dQVF9HUFRTUgkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUiArIDB4MDgpCi0jZGVmaW5lIE1YQ19HUFRfR1BUSVIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDBDKQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjEJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDEwKQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDE0KQotI2RlZmluZSBNWENfR1BUX0dQVE9DUjMJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDE4KQotI2RlZmluZSBNWENfR1BUX0dQVElDUjEJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDFDKQotI2RlZmluZSBNWENfR1BUX0dQVElDUjIJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIgKyAweDIwKQotI2RlZmluZSBNWENfR1BUX0dQVENOVAkJSU9fQUREUkVTUyhHUFQxX0JBU0VfQUREUiArIDB4MjQpCi0KLS8qIEdQVCBDb250cm9sIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwotI2RlZmluZSBHUFRDUl9GTzMJCQkoMSA8PCAzMSkKLSNkZWZpbmUgR1BUQ1JfRk8yCQkJKDEgPDwgMzApCi0jZGVmaW5lIEdQVENSX0ZPMQkJCSgxIDw8IDI5KQotCi0jZGVmaW5lIEdQVENSX09NM19TSElGVAkJCTI2Ci0jZGVmaW5lIEdQVENSX09NM19NQVNLCQkJKDcgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfRElTQ09OTkVDVEVECQkoMCA8PCBHUFRDUl9PTTNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NM19UT0dHTEUJCSgxIDw8IEdQVENSX09NM19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00zX0NMRUFSCQkJKDIgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfU0VUCQkJKDMgPDwgR1BUQ1JfT00zX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTNfR0VORVJBVEVfTE9XCQkoNyA8PCBHUFRDUl9PTTNfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfT00yX1NISUZUCQkJMjMKLSNkZWZpbmUgR1BUQ1JfT00yX01BU0sJCQkoNyA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9ESVNDT05ORUNURUQJCSgwIDw8IEdQVENSX09NMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00yX1RPR0dMRQkJKDEgPDwgR1BUQ1JfT00yX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTJfQ0xFQVIJCQkoMiA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9TRVQJCQkoMyA8PCBHUFRDUl9PTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMl9HRU5FUkFURV9MT1cJCSg3IDw8IEdQVENSX09NMl9TSElGVCkKLQotI2RlZmluZSBHUFRDUl9PTTFfU0hJRlQJCQkyMAotI2RlZmluZSBHUFRDUl9PTTFfTUFTSwkJCSg3IDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX0RJU0NPTk5FQ1RFRAkJKDAgPDwgR1BUQ1JfT00xX1NISUZUKQotI2RlZmluZSBHUFRDUl9PTTFfVE9HR0xFCQkoMSA8PCBHUFRDUl9PTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX09NMV9DTEVBUgkJCSgyIDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX1NFVAkJCSgzIDw8IEdQVENSX09NMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfT00xX0dFTkVSQVRFX0xPVwkJKDcgPDwgR1BUQ1JfT00xX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX0lNMl9TSElGVAkJCTE4Ci0jZGVmaW5lIEdQVENSX0lNMl9NQVNLCQkJKDMgPDwgR1BUQ1JfSU0yX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTJfQ0FQVFVSRV9ESVNBQkxFCSgwIDw8IEdQVENSX0lNMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0yX0NBUFRVUkVfUklTSU5HCSgxIDw8IEdQVENSX0lNMl9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0yX0NBUFRVUkVfRkFMTElORwkoMiA8PCBHUFRDUl9JTTJfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMl9DQVBUVVJFX0JPVEgJCSgzIDw8IEdQVENSX0lNMl9TSElGVCkKLQotI2RlZmluZSBHUFRDUl9JTTFfU0hJRlQJCQkxNgotI2RlZmluZSBHUFRDUl9JTTFfTUFTSwkJCSgzIDw8IEdQVENSX0lNMV9TSElGVCkKLSNkZWZpbmUgR1BUQ1JfSU0xX0NBUFRVUkVfRElTQUJMRQkoMCA8PCBHUFRDUl9JTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMV9DQVBUVVJFX1JJU0lORwkoMSA8PCBHUFRDUl9JTTFfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0lNMV9DQVBUVVJFX0ZBTExJTkcJKDIgPDwgR1BUQ1JfSU0xX1NISUZUKQotI2RlZmluZSBHUFRDUl9JTTFfQ0FQVFVSRV9CT1RICQkoMyA8PCBHUFRDUl9JTTFfU0hJRlQpCi0KLSNkZWZpbmUgR1BUQ1JfU1dSCQkJKDEgPDwgMTUpCi0jZGVmaW5lIEdQVENSX0ZSUgkJCSgxIDw8IDkpCi0KLSNkZWZpbmUgR1BUQ1JfQ0xLU1JDX1NISUZUCQk2Ci0jZGVmaW5lIEdQVENSX0NMS1NSQ19NQVNLCQkoNyA8PCBHUFRDUl9DTEtTUkNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19OT0NMT0NLCQkoMCA8PCBHUFRDUl9DTEtTUkNfU0hJRlQpCi0jZGVmaW5lIEdQVENSX0NMS1NSQ19ISUdIRlJFUQkJKDIgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotI2RlZmluZSBHUFRDUl9DTEtTUkNfQ0xLSU4JCSgzIDw8IEdQVENSX0NMS1NSQ19TSElGVCkKLSNkZWZpbmUgR1BUQ1JfQ0xLU1JDX0NMSzMySwkJKDcgPDwgR1BUQ1JfQ0xLU1JDX1NISUZUKQotCi0jZGVmaW5lIEdQVENSX1NUT1BFTgkJCSgxIDw8IDUpCi0jZGVmaW5lIEdQVENSX0RPWkVOCQkJKDEgPDwgNCkKLSNkZWZpbmUgR1BUQ1JfV0FJVEVOCQkJKDEgPDwgMykKLSNkZWZpbmUgR1BUQ1JfREJHRU4JCQkoMSA8PCAyKQotCi0jZGVmaW5lIEdQVENSX0VOTU9ECQkJKDEgPDwgMSkKLSNkZWZpbmUgR1BUQ1JfRU5BQkxFCQkJKDEgPDwgMCkKLQotI2RlZmluZSBHUFRTUl9PRjEJCQkoMSA8PCAwKQotI2RlZmluZSBHUFRTUl9PRjIJCQkoMSA8PCAxKQotI2RlZmluZSBHUFRTUl9PRjMJCQkoMSA8PCAyKQotI2RlZmluZSBHUFRTUl9JRjEJCQkoMSA8PCAzKQotI2RlZmluZSBHUFRTUl9JRjIJCQkoMSA8PCA0KQotI2RlZmluZSBHUFRTUl9ST1YJCQkoMSA8PCA1KQotCi0jZGVmaW5lIEdQVElSX09GMUlFCQkJR1BUU1JfT0YxCi0jZGVmaW5lIEdQVElSX09GMklFCQkJR1BUU1JfT0YyCi0jZGVmaW5lIEdQVElSX09GM0lFCQkJR1BUU1JfT0YzCi0jZGVmaW5lIEdQVElSX0lGMUlFCQkJR1BUU1JfSUYxCi0jZGVmaW5lIEdQVElSX0lGMklFCQkJR1BUU1JfSUYyCi0jZGVmaW5lIEdQVElSX1JPVklFCQkJR1BUU1JfUk9WCi0KLS8qCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIEFWSUMgUmVnaXN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgKgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKi8KLSNkZWZpbmUgQVZJQ19CQVNFCQlJT19BRERSRVNTKEFWSUNfQkFTRV9BRERSKQotI2RlZmluZSBBVklDX0lOVENOVEwJCShBVklDX0JBU0UgKyAweDAwKQkvKiBpbnQgY29udHJvbCByZWcgKi8KLSNkZWZpbmUgQVZJQ19OSU1BU0sJCShBVklDX0JBU0UgKyAweDA0KQkvKiBpbnQgbWFzayByZWcgKi8KLSNkZWZpbmUgQVZJQ19JTlRFTk5VTQkJKEFWSUNfQkFTRSArIDB4MDgpCS8qIGludCBlbmFibGUgbnVtYmVyIHJlZyAqLwotI2RlZmluZSBBVklDX0lOVERJU05VTQkJKEFWSUNfQkFTRSArIDB4MEMpCS8qIGludCBkaXNhYmxlIG51bWJlciByZWcgKi8KLSNkZWZpbmUgQVZJQ19JTlRFTkFCTEVICQkoQVZJQ19CQVNFICsgMHgxMCkJLyogaW50IGVuYWJsZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVEVOQUJMRUwJCShBVklDX0JBU0UgKyAweDE0KQkvKiBpbnQgZW5hYmxlIHJlZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19JTlRUWVBFSAkJKEFWSUNfQkFTRSArIDB4MTgpCS8qIGludCB0eXBlIHJlZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfSU5UVFlQRUwJCShBVklDX0JBU0UgKyAweDFDKQkvKiBpbnQgdHlwZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTcJKEFWSUNfQkFTRSArIDB4MjApCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDcgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZNgkoQVZJQ19CQVNFICsgMHgyNCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsNiAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFk1CShBVklDX0JBU0UgKyAweDI4KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmw1ICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTQJKEFWSUNfQkFTRSArIDB4MkMpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDQgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMwkoQVZJQ19CQVNFICsgMHgzMCkJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMyAqLwotI2RlZmluZSBBVklDX05JUFJJT1JJVFkyCShBVklDX0JBU0UgKyAweDM0KQkvKiBub3JtIGludCBwcmlvcml0eSBsdmwyICovCi0jZGVmaW5lIEFWSUNfTklQUklPUklUWTEJKEFWSUNfQkFTRSArIDB4MzgpCS8qIG5vcm0gaW50IHByaW9yaXR5IGx2bDEgKi8KLSNkZWZpbmUgQVZJQ19OSVBSSU9SSVRZMAkoQVZJQ19CQVNFICsgMHgzQykJLyogbm9ybSBpbnQgcHJpb3JpdHkgbHZsMCAqLwotI2RlZmluZSBBVklDX05JVkVDU1IJCShBVklDX0JBU0UgKyAweDQwKQkvKiBub3JtIGludCB2ZWN0b3Ivc3RhdHVzICovCi0jZGVmaW5lIEFWSUNfRklWRUNTUgkJKEFWSUNfQkFTRSArIDB4NDQpCS8qIGZhc3QgaW50IHZlY3Rvci9zdGF0dXMgKi8KLSNkZWZpbmUgQVZJQ19JTlRTUkNICQkoQVZJQ19CQVNFICsgMHg0OCkJLyogaW50IHNvdXJjZSByZWcgaGlnaCAqLwotI2RlZmluZSBBVklDX0lOVFNSQ0wJCShBVklDX0JBU0UgKyAweDRDKQkvKiBpbnQgc291cmNlIHJlZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19JTlRGUkNICQkoQVZJQ19CQVNFICsgMHg1MCkJLyogaW50IGZvcmNlIHJlZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfSU5URlJDTAkJKEFWSUNfQkFTRSArIDB4NTQpCS8qIGludCBmb3JjZSByZWcgbG93ICovCi0jZGVmaW5lIEFWSUNfTklQTkRICQkoQVZJQ19CQVNFICsgMHg1OCkJLyogbm9ybSBpbnQgcGVuZGluZyBoaWdoICovCi0jZGVmaW5lIEFWSUNfTklQTkRMCQkoQVZJQ19CQVNFICsgMHg1QykJLyogbm9ybSBpbnQgcGVuZGluZyBsb3cgKi8KLSNkZWZpbmUgQVZJQ19GSVBOREgJCShBVklDX0JBU0UgKyAweDYwKQkvKiBmYXN0IGludCBwZW5kaW5nIGhpZ2ggKi8KLSNkZWZpbmUgQVZJQ19GSVBOREwJCShBVklDX0JBU0UgKyAweDY0KQkvKiBmYXN0IGludCBwZW5kaW5nIGxvdyAqLwotCi0jZGVmaW5lIFNZU1RFTV9QUkVWX1JFRwkJSU9fQUREUkVTUyhJSU1fQkFTRV9BRERSICsgMHgyMCkKLSNkZWZpbmUgU1lTVEVNX1NSRVZfUkVHCQlJT19BRERSRVNTKElJTV9CQVNFX0FERFIgKyAweDI0KQotI2RlZmluZSBJSU1fUFJPRF9SRVZfU0gJCTMKLSNkZWZpbmUgSUlNX1BST0RfUkVWX0xFTgk1CisjaWZuZGVmIENPTkZJR19NQUNIX01YMjcKKyMgZGVmaW5lIGNwdV9pc19teDI3KCkgKDApCisjZW5kaWYKIAogI2VuZGlmIC8qICBfX0FTTV9BUkNIX01YQ19IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGNfdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW14Yy9teGNfdGltZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Y2IxMWY0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtbXhjL214Y190aW1lci5oCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogbXhjX3RpbWVyLmgKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVlcmdlbiBCZWlzZXJ0IChrZXJuZWxAcGVuZ3V0cm9uaXguZGUpCisgKgorICogUGxhdGZvcm0gaW5kZXBlbmRlbnQgKGkuTVgxLCBpLk1YMiwgaS5NWDMpIGRlZmluaXRpb24gZm9yIHRpbWVyIGhhbmRsaW5nLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMgorICogb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIF9fUExBVF9NWENfVElNRVJfSAorI2RlZmluZSBfX1BMQVRfTVhDX1RJTUVSX0gKKworI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgorI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorCisjaWZkZWYgQ09ORklHX0FSQ0hfSU1YCisjZGVmaW5lIFRJTUVSX0JBU0UJCUlPX0FERFJFU1MoVElNMV9CQVNFX0FERFIpCisjZGVmaW5lIFRJTUVSX0lOVEVSUlVQVAkJVElNMV9JTlQKKworI2RlZmluZSBUQ1RMX1ZBTAkJVENUTF9DTEtfUENMSzEKKyNkZWZpbmUgVENUTF9JUlFFTgkJKDE8PDQpCisjZGVmaW5lIFRDVExfRlJSCQkoMTw8OCkKKyNkZWZpbmUgVENUTF9DTEtfUENMSzEJCSgxPDwxKQorI2RlZmluZSBUQ1RMX0NMS19QQ0xLMV80CSgyPDwxKQorI2RlZmluZSBUQ1RMX0NMS19USU4JCSgzPDwxKQorI2RlZmluZSBUQ1RMX0NMS18zMgkJKDQ8PDEpCisKKyNkZWZpbmUgTVhDX1RDVEwgICAweDAwCisjZGVmaW5lIE1YQ19UUFJFUiAgMHgwNAorI2RlZmluZSBNWENfVENNUCAgIDB4MDgKKyNkZWZpbmUgTVhDX1RDUiAgICAweDBjCisjZGVmaW5lIE1YQ19UQ04gICAgMHgxMAorI2RlZmluZSBNWENfVFNUQVQgIDB4MTQKKyNkZWZpbmUgVFNUQVRfQ0FQVAkJKDE8PDEpCisjZGVmaW5lIFRTVEFUX0NPTVAJCSgxPDwwKQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9kaXNhYmxlKHZvaWQpCit7CisJdW5zaWduZWQgaW50IHRtcDsKKworCXRtcCA9IF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENUTCk7CisJX19yYXdfd3JpdGVsKHRtcCAmIH5UQ1RMX0lSUUVOLCBUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9lbmFibGUodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoX19yYXdfcmVhZGwoVElNRVJfQkFTRSArIE1YQ19UQ1RMKSB8IFRDVExfSVJRRU4sCisJCQkJVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKK30KKworc3RhdGljIHZvaWQgZ3B0X2lycV9hY2tub3dsZWRnZSh2b2lkKQoreworCV9fcmF3X3dyaXRlbCgwLCBUSU1FUl9CQVNFICsgTVhDX1RTVEFUKTsKK30KKyNlbmRpZiAvKiBDT05GSUdfQVJDSF9JTVggKi8KKworI2lmZGVmIENPTkZJR19BUkNIX01YMgorI2RlZmluZSBUSU1FUl9CQVNFCQlJT19BRERSRVNTKEdQVDFfQkFTRV9BRERSKQorI2RlZmluZSBUSU1FUl9JTlRFUlJVUFQJCU1YQ19JTlRfR1BUMQorCisjZGVmaW5lIE1YQ19UQ1RMICAgMHgwMAorI2RlZmluZSBUQ1RMX1ZBTAkJVENUTF9DTEtfUENMSzEKKyNkZWZpbmUgVENUTF9DTEtfUENMSzEJCSgxPDwxKQorI2RlZmluZSBUQ1RMX0NMS19QQ0xLMV80CSgyPDwxKQorI2RlZmluZSBUQ1RMX0lSUUVOCQkoMTw8NCkKKyNkZWZpbmUgVENUTF9GUlIJCSgxPDw4KQorI2RlZmluZSBNWENfVFBSRVIgIDB4MDQKKyNkZWZpbmUgTVhDX1RDTVAgICAweDA4CisjZGVmaW5lIE1YQ19UQ1IgICAgMHgwYworI2RlZmluZSBNWENfVENOICAgIDB4MTAKKyNkZWZpbmUgTVhDX1RTVEFUICAweDE0CisjZGVmaW5lIFRTVEFUX0NBUFQJCSgxPDwxKQorI2RlZmluZSBUU1RBVF9DT01QCQkoMTw8MCkKKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZGlzYWJsZSh2b2lkKQoreworCXVuc2lnbmVkIGludCB0bXA7CisKKwl0bXAgPSBfX3Jhd19yZWFkbChUSU1FUl9CQVNFICsgTVhDX1RDVEwpOworCV9fcmF3X3dyaXRlbCh0bXAgJiB+VENUTF9JUlFFTiwgVElNRVJfQkFTRSArIE1YQ19UQ1RMKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGdwdF9pcnFfZW5hYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKF9fcmF3X3JlYWRsKFRJTUVSX0JBU0UgKyBNWENfVENUTCkgfCBUQ1RMX0lSUUVOLAorCQkJCVRJTUVSX0JBU0UgKyBNWENfVENUTCk7Cit9CisKK3N0YXRpYyB2b2lkIGdwdF9pcnFfYWNrbm93bGVkZ2Uodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoVFNUQVRfQ0FQVCB8IFRTVEFUX0NPTVAsIFRJTUVSX0JBU0UgKyBNWENfVFNUQVQpOworfQorI2VuZGlmIC8qIENPTkZJR19BUkNIX01YMiAqLworCisjaWZkZWYgQ09ORklHX0FSQ0hfTVgzCisjZGVmaW5lIFRJTUVSX0JBU0UJCUlPX0FERFJFU1MoR1BUMV9CQVNFX0FERFIpCisjZGVmaW5lIFRJTUVSX0lOVEVSUlVQVAkJTVhDX0lOVF9HUFQKKworI2RlZmluZSBNWENfVENUTCAgIDB4MDAKKyNkZWZpbmUgVENUTF9WQUwJCShUQ1RMX0NMS19JUEcgfCBUQ1RMX1dBSVRFTikKKyNkZWZpbmUgVENUTF9DTEtfSVBHCQkoMTw8NikKKyNkZWZpbmUgVENUTF9GUlIJCSgxPDw5KQorI2RlZmluZSBUQ1RMX1dBSVRFTgkJKDE8PDMpCisKKyNkZWZpbmUgTVhDX1RQUkVSICAweDA0CisjZGVmaW5lIE1YQ19UU1RBVCAgMHgwOAorI2RlZmluZSBUU1RBVF9PRjEJCSgxPDwwKQorI2RlZmluZSBUU1RBVF9PRjIJCSgxPDwxKQorI2RlZmluZSBUU1RBVF9PRjMJCSgxPDwyKQorI2RlZmluZSBUU1RBVF9JRjEJCSgxPDwzKQorI2RlZmluZSBUU1RBVF9JRjIJCSgxPDw0KQorI2RlZmluZSBUU1RBVF9ST1YJCSgxPDw1KQorI2RlZmluZSBNWENfSVIgICAgIDB4MGMKKyNkZWZpbmUgTVhDX1RDTVAgICAweDEwCisjZGVmaW5lIE1YQ19UQ01QMiAgMHgxNAorI2RlZmluZSBNWENfVENNUDMgIDB4MTgKKyNkZWZpbmUgTVhDX1RDUiAgICAweDFjCisjZGVmaW5lIE1YQ19UQ04gICAgMHgyNAorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9kaXNhYmxlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKDAsIFRJTUVSX0JBU0UgKyBNWENfSVIpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3B0X2lycV9lbmFibGUodm9pZCkKK3sKKwlfX3Jhd193cml0ZWwoMTw8MCwgVElNRVJfQkFTRSArIE1YQ19JUik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBncHRfaXJxX2Fja25vd2xlZGdlKHZvaWQpCit7CisJX19yYXdfd3JpdGVsKFRTVEFUX09GMSwgVElNRVJfQkFTRSArIE1YQ19UU1RBVCk7Cit9CisjZW5kaWYgLyogQ09ORklHX0FSQ0hfTVgzICovCisKKyNkZWZpbmUgVENUTF9TV1IJCSgxPDwxNSkKKyNkZWZpbmUgVENUTF9DQwkJCSgxPDwxMCkKKyNkZWZpbmUgVENUTF9PTQkJCSgxPDw5KQorI2RlZmluZSBUQ1RMX0NBUF9SSVMJCSgxPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9GQUwJCSgyPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9SSVNfRkFMCSgzPDw2KQorI2RlZmluZSBUQ1RMX0NBUF9FTkEJCSgxPDw1KQorI2RlZmluZSBUQ1RMX1RFTgkJKDE8PDApCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtbnM5eHh4L2hhcmR3YXJlLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaAppbmRleCAwYjdiMzQ2Li4wZGNhMTFjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1uczl4eHgvaGFyZHdhcmUuaApAQCAtNjYsMTMgKzY2LDEzIEBACiAJIF9fUkVHR0VUKHZhciwgcmVnICMjIF8gIyMgZmllbGQpIC8gX19SRUdTSElGVChyZWcgIyMgXyAjIyBmaWVsZCkKIAogIyAgZGVmaW5lIFJFR0dFVElNX0lEWCh2YXIsIHJlZywgZmllbGQsIGlkeCkJCQkJXAotCSBfX1JFR0dFVCh2YXIsIHJlZyAjIyBfICMjIGZpZWxkKChpZHgpKSkgLyAJCQlcCisJIF9fUkVHR0VUKHZhciwgcmVnICMjIF8gIyMgZmllbGQoKGlkeCkpKSAvCQkJXAogCSBfX1JFR1NISUZUKHJlZyAjIyBfICMjIGZpZWxkKChpZHgpKSkKIAogI2Vsc2UKIAogIyAgZGVmaW5lIF9fUkVHKHgpCWlvX3Aydih4KQotIyAgZGVmaW5lIF9fUkVHMih4LCB5KQlpb19wMnYoKHgpICsgKHkpKQorIyAgZGVmaW5lIF9fUkVHMih4LCB5KQlpb19wMnYoKHgpICsgNCAqICh5KSkKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtMjQzMHNkcC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKaW5kZXggZTljNjVjZS4uYzdkYjkwMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC0yNDMwc2RwLmgKQEAgLTM2LDkgKzM2LDQgQEAKIAogI2RlZmluZSBUV0w0MDMwX0lSUU5VTQkJCUlOVF8yNFhYX1NZU19OSVJRCiAKLS8qIFRXTDQwMzAgUHJpbWFyeSBJbnRlcnJ1cHQgSGFuZGxlciAoUElIKSBpbnRlcnJ1cHRzICovCi0jZGVmaW5lIElIX1RXTDQwMzBfQkFTRQkJCUlIX0JPQVJEX0JBU0UKLSNkZWZpbmUgSUhfVFdMNDAzMF9FTkQJCQkoSUhfVFdMNDAzMF9CQVNFKzgpCi0jZGVmaW5lIE5SX0lSUVMJCQkJKElIX1RXTDQwMzBfRU5EKQotCiAjZW5kaWYgLyogX19BU01fQVJDSF9PTUFQXzI0MzBTRFBfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1oMy5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1oMy5oCmluZGV4IDBmNjQwNDQuLmM1ZDBmMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaDMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWgzLmgKQEAgLTMwLDEyICszMCw2IEBACiAvKiBJbiBPTUFQMTcxMCBIMyB0aGUgRXRoZXJuZXQgaXMgZGlyZWN0bHkgY29ubmVjdGVkIHRvIENTMSAqLwogI2RlZmluZSBPTUFQMTcxMF9FVEhSX1NUQVJUCQkweDA0MDAwMzAwCiAKLSNkZWZpbmUgTUFYSVJRTlVNCQkJKElIX0JPQVJEX0JBU0UpCi0jZGVmaW5lIE1BWEZJUU5VTQkJCU1BWElSUU5VTQotI2RlZmluZSBNQVhTV0lOVU0JCQlNQVhJUlFOVU0KLQotI2RlZmluZSBOUl9JUlFTCQkJCShNQVhJUlFOVU0gKyAxKQotCiBleHRlcm4gdm9pZCBoM19tbWNfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGgzX21tY19zbG90X2NvdmVyX2hhbmRsZXIodm9pZCAqYXJnLCBpbnQgc3RhdGUpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWlubm92YXRvci5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1pbm5vdmF0b3IuaAppbmRleCA1NmQyYzk4Li45Y2EwM2RlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLWlubm92YXRvci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtaW5ub3ZhdG9yLmgKQEAgLTM2LDkgKzM2LDYgQEAKICNkZWZpbmUgT01BUDE1MTBQMV9FTUlGU19QUklfVkFMVUUJCTB4MDAKICNkZWZpbmUgT01BUDE1MTBQMV9FTUlGRl9QUklfVkFMVUUJCTB4MDAKIAotI2RlZmluZSBOUl9GUEdBX0lSUVMJCTI0Ci0jZGVmaW5lIE5SX0lSUVMgICAgICAgICAgICAgICAgIChJSF9CT0FSRF9CQVNFICsgTlJfRlBHQV9JUlFTKQotCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogdm9pZCBmcGdhX3dyaXRlKHVuc2lnbmVkIGNoYXIgdmFsLCBpbnQgcmVnKTsKIHVuc2lnbmVkIGNoYXIgZnBnYV9yZWFkKGludCByZWcpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wYWxtdGUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGFsbXRlLmgKaW5kZXggY2QyMjAzNS4uNmZhYzJjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wYWxtdGUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLXBhbG10ZS5oCkBAIC0xNCw4ICsxNCw2IEBACiAjaWZuZGVmIF9fT01BUF9CT0FSRF9QQUxNVEVfSAogI2RlZmluZSBfX09NQVBfQk9BUkRfUEFMTVRFX0gKIAotI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KLQogI2RlZmluZSBQQUxNVEVfVVNCREVURUNUX0dQSU8JMAogI2RlZmluZSBQQUxNVEVfVVNCX09SX0RDX0dQSU8JMQogI2RlZmluZSBQQUxNVEVfVFNDX0dQSU8JCTQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGVyc2V1czIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvYm9hcmQtcGVyc2V1czIuaAppbmRleCBlYjc0NDIwLi5kNzQyOWNiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2JvYXJkLXBlcnNldXMyLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ib2FyZC1wZXJzZXVzMi5oCkBAIC0zNiwxMCArMzYsNCBAQAogI2RlZmluZSBPTUFQX1NEUkFNX0RFVklDRQkJRDI1Nk1fMVgxNl80QgogI2VuZGlmCiAKLSNkZWZpbmUgTUFYSVJRTlVNCQlJSF9CT0FSRF9CQVNFCi0jZGVmaW5lIE1BWEZJUU5VTQkJTUFYSVJRTlVNCi0jZGVmaW5lIE1BWFNXSU5VTQkJTUFYSVJRTlVNCi0KLSNkZWZpbmUgTlJfSVJRUwkJCShNQVhJUlFOVU0gKyAxKQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY2xvY2suaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY2xvY2suaAppbmRleCA1NzUyM2JkLi40YzdiMzUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2Nsb2NrLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jbG9jay5oCkBAIC0zMywxMiArMzMsMjQgQEAKIAl2b2lkIF9faW9tZW0JCSptdWx0X2RpdjFfcmVnOwogCXUzMgkJCW11bHRfbWFzazsKIAl1MzIJCQlkaXYxX21hc2s7CisJdTE2CQkJbGFzdF9yb3VuZGVkX207CisJdTgJCQlsYXN0X3JvdW5kZWRfbjsKKwl1bnNpZ25lZCBsb25nCQlsYXN0X3JvdW5kZWRfcmF0ZTsKKwl1bnNpZ25lZCBpbnQJCXJhdGVfdG9sZXJhbmNlOworCXUxNgkJCW1heF9tdWx0aXBsaWVyOworCXU4CQkJbWF4X2RpdmlkZXI7CisJdTMyCQkJbWF4X3RvbGVyYW5jZTsKICMgIGlmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDMpCisJdTgJCQltb2RlczsKIAl2b2lkIF9faW9tZW0JCSpjb250cm9sX3JlZzsKIAl1MzIJCQllbmFibGVfbWFzazsKIAl1OAkJCWF1dG9fcmVjYWxfYml0OwogCXU4CQkJcmVjYWxfZW5fYml0OwogCXU4CQkJcmVjYWxfc3RfYml0OworCXZvaWQgX19pb21lbQkJKmF1dG9pZGxlX3JlZzsKKwl1MzIJCQlhdXRvaWRsZV9tYXNrOworCXZvaWQgX19pb21lbQkJKmlkbGVzdF9yZWc7CisJdTgJCQlpZGxlc3RfYml0OwogIyAgZW5kaWYKIH07CiAKQEAgLTY2LDEzICs3OCwxOCBAQAogCXZvaWQgX19pb21lbQkJKmNsa3NlbF9yZWc7CiAJdTMyCQkJY2xrc2VsX21hc2s7CiAJY29uc3Qgc3RydWN0IGNsa3NlbAkqY2xrc2VsOwotCWNvbnN0IHN0cnVjdCBkcGxsX2RhdGEJKmRwbGxfZGF0YTsKKwlzdHJ1Y3QgZHBsbF9kYXRhCSpkcGxsX2RhdGE7CiAjZWxzZQogCV9fdTgJCQlyYXRlX29mZnNldDsKIAlfX3U4CQkJc3JjX29mZnNldDsKICNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX1BNX0RFQlVHKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKKwlzdHJ1Y3QgZGVudHJ5CQkqZGVudDsJLyogRm9yIHZpc2libGUgdHJlZSBoaWVyYXJjaHkgKi8KKyNlbmRpZgogfTsKIAorc3RydWN0IGNwdWZyZXFfZnJlcXVlbmN5X3RhYmxlOworCiBzdHJ1Y3QgY2xrX2Z1bmN0aW9ucyB7CiAJaW50CQkoKmNsa19lbmFibGUpKHN0cnVjdCBjbGsgKmNsayk7CiAJdm9pZAkJKCpjbGtfZGlzYWJsZSkoc3RydWN0IGNsayAqY2xrKTsKQEAgLTgzLDYgKzEwMCw5IEBACiAJdm9pZAkJKCpjbGtfYWxsb3dfaWRsZSkoc3RydWN0IGNsayAqY2xrKTsKIAl2b2lkCQkoKmNsa19kZW55X2lkbGUpKHN0cnVjdCBjbGsgKmNsayk7CiAJdm9pZAkJKCpjbGtfZGlzYWJsZV91bnVzZWQpKHN0cnVjdCBjbGsgKmNsayk7CisjaWZkZWYgQ09ORklHX0NQVV9GUkVRCisJdm9pZAkJKCpjbGtfaW5pdF9jcHVmcmVxX3RhYmxlKShzdHJ1Y3QgY3B1ZnJlcV9mcmVxdWVuY3lfdGFibGUgKiopOworI2VuZGlmCiB9OwogCiBleHRlcm4gdW5zaWduZWQgaW50IG1wdXJhdGU7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbW1vbi5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jb21tb24uaAppbmRleCAzNmEzYjYyLi44YWMwMzA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbW1vbi5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29tbW9uLmgKQEAgLTQ3LDggKzQ3LDIzIEBACiB9CiAjZW5kaWYKIAorLyogSU8gYmFzZXMgZm9yIHZhcmlvdXMgT01BUCBwcm9jZXNzb3JzICovCitzdHJ1Y3Qgb21hcF9nbG9iYWxzIHsKKwl2b2lkIF9faW9tZW0JKnRhcDsJCS8qIENvbnRyb2wgbW9kdWxlIElEIGNvZGUgKi8KKwl2b2lkIF9faW9tZW0JKnNkcmM7CQkvKiBTRFJBTSBDb250cm9sbGVyICovCisJdm9pZCBfX2lvbWVtCSpzbXM7CQkvKiBTRFJBTSBNZW1vcnkgU2NoZWR1bGVyICovCisJdm9pZCBfX2lvbWVtCSpjdHJsOwkJLyogU3lzdGVtIENvbnRyb2wgTW9kdWxlICovCisJdm9pZCBfX2lvbWVtCSpwcm07CQkvKiBQb3dlciBhbmQgUmVzZXQgTWFuYWdlbWVudCAqLworCXZvaWQgX19pb21lbQkqY207CQkvKiBDbG9jayBNYW5hZ2VtZW50ICovCit9OworCiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzI0Mngodm9pZCk7CiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzI0M3godm9pZCk7CiB2b2lkIG9tYXAyX3NldF9nbG9iYWxzXzM0M3godm9pZCk7CiAKKy8qIFRoZXNlIGdldCBjYWxsZWQgZnJvbSBvbWFwMl9zZXRfZ2xvYmFsc194eHh4KCksIGRvIG5vdCBjYWxsIHRoZXNlICovCit2b2lkIG9tYXAyX3NldF9nbG9iYWxzX21lbW9yeShzdHJ1Y3Qgb21hcF9nbG9iYWxzICopOwordm9pZCBvbWFwMl9zZXRfZ2xvYmFsc19jb250cm9sKHN0cnVjdCBvbWFwX2dsb2JhbHMgKik7Cit2b2lkIG9tYXAyX3NldF9nbG9iYWxzX3ByY20oc3RydWN0IG9tYXBfZ2xvYmFscyAqKTsKKwogI2VuZGlmIC8qIF9fQVJDSF9BUk1fTUFDSF9PTUFQX0NPTU1PTl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NvbnRyb2wuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCmluZGV4IDU5YzA2ODYuLjk4NzU1M2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY29udHJvbC5oCkBAIC0xNjcsOCArMTY3LDcgQEAKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKQotZXh0ZXJuIHZvaWQgb21hcF9jdHJsX2Jhc2Vfc2V0KHUzMiBiYXNlKTsKLWV4dGVybiB1MzIgb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpOworZXh0ZXJuIHZvaWQgX19pb21lbSAqb21hcF9jdHJsX2Jhc2VfZ2V0KHZvaWQpOwogZXh0ZXJuIHU4IG9tYXBfY3RybF9yZWFkYih1MTYgb2Zmc2V0KTsKIGV4dGVybiB1MTYgb21hcF9jdHJsX3JlYWR3KHUxNiBvZmZzZXQpOwogZXh0ZXJuIHUzMiBvbWFwX2N0cmxfcmVhZGwodTE2IG9mZnNldCk7CkBAIC0xNzYsNyArMTc1LDYgQEAKIGV4dGVybiB2b2lkIG9tYXBfY3RybF93cml0ZXcodTE2IHZhbCwgdTE2IG9mZnNldCk7CiBleHRlcm4gdm9pZCBvbWFwX2N0cmxfd3JpdGVsKHUzMiB2YWwsIHUxNiBvZmZzZXQpOwogI2Vsc2UKLSNkZWZpbmUgb21hcF9jdHJsX2Jhc2Vfc2V0KHgpCQlXQVJOX09OKDEpCiAjZGVmaW5lIG9tYXBfY3RybF9iYXNlX2dldCgpCQkwCiAjZGVmaW5lIG9tYXBfY3RybF9yZWFkYih4KQkJMAogI2RlZmluZSBvbWFwX2N0cmxfcmVhZHcoeCkJCTAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY3B1LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2NwdS5oCmluZGV4IGU4YTRjZjUuLjUyZGIwOWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvY3B1LmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9jcHUuaApAQCAtMyw3ICszLDcgQEAKICAqCiAgKiBPTUFQIGNwdSB0eXBlIGRldGVjdGlvbgogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBOb2tpYSBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA4IE5va2lhIENvcnBvcmF0aW9uCiAgKgogICogV3JpdHRlbiBieSBUb255IExpbmRncmVuIDx0b255LmxpbmRncmVuQG5va2lhLmNvbT4KICAqCkBAIC0yNiw2ICsyNiwxMiBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX09NQVBfQ1BVX0gKICNkZWZpbmUgX19BU01fQVJDSF9PTUFQX0NQVV9ICiAKK3N0cnVjdCBvbWFwX2NoaXBfaWQgeworCXU4IG9jOworfTsKKworI2RlZmluZSBPTUFQX0NISVBfSU5JVCh4KQl7IC5vYyA9IHggfQorCiBleHRlcm4gdW5zaWduZWQgaW50IHN5c3RlbV9yZXY7CiAKICNkZWZpbmUgb21hcDJfY3B1X3JldigpCQkoKHN5c3RlbV9yZXYgPj4gMTIpICYgMHgwZikKQEAgLTM0NSw2ICszNTEsMzMgQEAKICNkZWZpbmUgT01BUDI0MzBfUkVWX0VTMV8wCTB4MjQzMDAwMDAKICNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMV8wCTB4MzQzMDAwMDAKICNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8wCTB4MzQzMDEwMDAKKyNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8xCTB4MzQzMDIwMDAKKyNkZWZpbmUgT01BUDM0MzBfUkVWX0VTMl8yCTB4MzQzMDMwMDAKKworLyoKKyAqIG9tYXBfY2hpcCBiaXRzCisgKgorICogQ0hJUF9JU19PTUFQezI0MjAsMjQzMCwzNDMwfSBpbmRpY2F0ZSB0aGF0IGEgcGFydGljdWxhciBzdHJ1Y3R1cmUgaXMKKyAqIHZhbGlkIG9uIGFsbCBjaGlwcyBvZiB0aGF0IHR5cGUuICBDSElQX0lTX09NQVAzNDMwRVN7MSwyfSBpbmRpY2F0ZXMKKyAqIHNvbWV0aGluZyB0aGF0IGlzIG9ubHkgdmFsaWQgb24gdGhhdCBwYXJ0aWN1bGFyIEVTIHJldmlzaW9uLgorICoKKyAqIFRoZXNlIGJpdHMgbWF5IGJlIE9SZWQgdG9nZXRoZXIgdG8gaW5kaWNhdGUgc3RydWN0dXJlcyB0aGF0IGFyZQorICogYXZhaWxhYmxlIG9uIG11bHRpcGxlIGNoaXAgdHlwZXMuCisgKgorICogVG8gdGVzdCB3aGV0aGVyIGEgcGFydGljdWxhciBzdHJ1Y3R1cmUgbWF0Y2hlcyB0aGUgY3VycmVudCBPTUFQIGNoaXAgdHlwZSwKKyAqIHVzZSBvbWFwX2NoaXBfaXMoKS4KKyAqCisgKi8KKyNkZWZpbmUgQ0hJUF9JU19PTUFQMjQyMCAgICAgICAoMSA8PCAwKQorI2RlZmluZSBDSElQX0lTX09NQVAyNDMwICAgICAgICgxIDw8IDEpCisjZGVmaW5lIENISVBfSVNfT01BUDM0MzAgICAgICAgKDEgPDwgMikKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMzQzMEVTMSAgICAoMSA8PCAzKQorI2RlZmluZSBDSElQX0lTX09NQVAzNDMwRVMyICAgICgxIDw8IDQpCisKKyNkZWZpbmUgQ0hJUF9JU19PTUFQMjRYWCAgICAgICAoQ0hJUF9JU19PTUFQMjQyMCB8IENISVBfSVNfT01BUDI0MzApCisKK2ludCBvbWFwX2NoaXBfaXMoc3RydWN0IG9tYXBfY2hpcF9pZCBvY2kpOworCiAKIC8qCiAgKiBNYWNybyB0byBkZXRlY3QgZGV2aWNlIHR5cGUgaS5lLiBFTVUvSFMvVFNUL0dQL0JBRApAQCAtMzYyLDYgKzM5NSw4IEBACiAjZGVmaW5lIGlzX2RldmljZV90eXBlX2dwKCkJKGdldF9kZXZpY2VfdHlwZSgpID09IERFVklDRV9UWVBFX0dQKQogI2RlZmluZSBpc19kZXZpY2VfdHlwZV9iYWQoKQkoZ2V0X2RldmljZV90eXBlKCkgPT0gREVWSUNFX1RZUEVfQkFEKQogCi0jZW5kaWYKK3ZvaWQgb21hcDJfY2hlY2tfcmV2aXNpb24odm9pZCk7CisKKyNlbmRpZiAgICAvKiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAyKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAzKSAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG1hLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtYS5oCmluZGV4IDI0YWNmMDkuLmY0ZGNiOTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG1hLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9kbWEuaApAQCAtMjIsMTA4ICsyMiwxMjggQEAKICNkZWZpbmUgX19BU01fQVJDSF9ETUFfSAogCiAvKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAxICovCi0jZGVmaW5lIE9NQVBfRE1BX0JBU0UJCQkoMHhmZmZlZDgwMCkKLSNkZWZpbmUgT01BUF9ETUFfR0NSCQkJKE9NQVBfRE1BX0JBU0UgKyAweDQwMCkKLSNkZWZpbmUgT01BUF9ETUFfR1NDUgkJCShPTUFQX0RNQV9CQVNFICsgMHg0MDQpCi0jZGVmaW5lIE9NQVBfRE1BX0dSU1QJCQkoT01BUF9ETUFfQkFTRSArIDB4NDA4KQotI2RlZmluZSBPTUFQX0RNQV9IV19JRAkJCShPTUFQX0RNQV9CQVNFICsgMHg0NDIpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDJfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDQpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDBfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDYpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSDFfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NDgpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSEdfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NGEpCi0jZGVmaW5lIE9NQVBfRE1BX1BDSERfSUQJCShPTUFQX0RNQV9CQVNFICsgMHg0NGMpCi0jZGVmaW5lIE9NQVBfRE1BX0NBUFNfMF9VCQkoT01BUF9ETUFfQkFTRSArIDB4NDRlKQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzBfTAkJKE9NQVBfRE1BX0JBU0UgKyAweDQ1MCkKLSNkZWZpbmUgT01BUF9ETUFfQ0FQU18xX1UJCShPTUFQX0RNQV9CQVNFICsgMHg0NTIpCi0jZGVmaW5lIE9NQVBfRE1BX0NBUFNfMV9MCQkoT01BUF9ETUFfQkFTRSArIDB4NDU0KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzIJCQkoT01BUF9ETUFfQkFTRSArIDB4NDU2KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzMJCQkoT01BUF9ETUFfQkFTRSArIDB4NDU4KQotI2RlZmluZSBPTUFQX0RNQV9DQVBTXzQJCQkoT01BUF9ETUFfQkFTRSArIDB4NDVhKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gyX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDYwKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gwX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDgwKQotI2RlZmluZSBPTUFQX0RNQV9QQ0gxX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NDgyKQotI2RlZmluZSBPTUFQX0RNQV9QQ0hEX1NSCQkoT01BUF9ETUFfQkFTRSArIDB4NGMwKQorI2RlZmluZSBPTUFQMV9ETUFfQkFTRQkJCSgweGZmZmVkODAwKQogCi0vKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAyICovCi0jaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMykKLSNkZWZpbmUgT01BUF9ETUE0X0JBU0UJCQkoTDRfMzRYWF9CQVNFICsgMHg1NjAwMCkKLSNlbHNlCS8qIENPTkZJR19BUkNIX09NQVAyICovCi0jZGVmaW5lIE9NQVBfRE1BNF9CQVNFCQkJKEw0XzI0WFhfQkFTRSArIDB4NTYwMDApCi0jZW5kaWYKKyNkZWZpbmUgT01BUDFfRE1BX0dDUgkJCTB4NDAwCisjZGVmaW5lIE9NQVAxX0RNQV9HU0NSCQkJMHg0MDQKKyNkZWZpbmUgT01BUDFfRE1BX0dSU1QJCQkweDQwOAorI2RlZmluZSBPTUFQMV9ETUFfSFdfSUQJCQkweDQ0MgorI2RlZmluZSBPTUFQMV9ETUFfUENIMl9JRAkJMHg0NDQKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDBfSUQJCTB4NDQ2CisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gxX0lECQkweDQ0OAorI2RlZmluZSBPTUFQMV9ETUFfUENIR19JRAkJMHg0NGEKKyNkZWZpbmUgT01BUDFfRE1BX1BDSERfSUQJCTB4NDRjCisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzBfVQkJMHg0NGUKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMF9MCQkweDQ1MAorI2RlZmluZSBPTUFQMV9ETUFfQ0FQU18xX1UJCTB4NDUyCisjZGVmaW5lIE9NQVAxX0RNQV9DQVBTXzFfTAkJMHg0NTQKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMgkJMHg0NTYKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfMwkJMHg0NTgKKyNkZWZpbmUgT01BUDFfRE1BX0NBUFNfNAkJMHg0NWEKKyNkZWZpbmUgT01BUDFfRE1BX1BDSDJfU1IJCTB4NDYwCisjZGVmaW5lIE9NQVAxX0RNQV9QQ0gwX1NSCQkweDQ4MAorI2RlZmluZSBPTUFQMV9ETUFfUENIMV9TUgkJMHg0ODIKKyNkZWZpbmUgT01BUDFfRE1BX1BDSERfU1IJCTB4NGMwCiAKLSNkZWZpbmUgT01BUF9ETUE0X1JFVklTSU9OCQkoT01BUF9ETUE0X0JBU0UgKyAweDAwKQotI2RlZmluZSBPTUFQX0RNQTRfR0NSX1JFRwkJKE9NQVBfRE1BNF9CQVNFICsgMHg3OCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMAkJKE9NQVBfRE1BNF9CQVNFICsgMHgwOCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMQkJKE9NQVBfRE1BNF9CQVNFICsgMHgwYykKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMgkJKE9NQVBfRE1BNF9CQVNFICsgMHgxMCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMwkJKE9NQVBfRE1BNF9CQVNFICsgMHgxNCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMAkJKE9NQVBfRE1BNF9CQVNFICsgMHgxOCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMQkJKE9NQVBfRE1BNF9CQVNFICsgMHgxYykKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMgkJKE9NQVBfRE1BNF9CQVNFICsgMHgyMCkKLSNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMwkJKE9NQVBfRE1BNF9CQVNFICsgMHgyNCkKLSNkZWZpbmUgT01BUF9ETUE0X1NZU1NUQVRVUwkJKE9NQVBfRE1BNF9CQVNFICsgMHgyOCkKLSNkZWZpbmUgT01BUF9ETUE0X09DUF9TWVNDT05GSUcJCShPTUFQX0RNQTRfQkFTRSArIDB4MmMpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzAJCShPTUFQX0RNQTRfQkFTRSArIDB4NjQpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzIJCShPTUFQX0RNQTRfQkFTRSArIDB4NmMpCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzMJCShPTUFQX0RNQTRfQkFTRSArIDB4NzApCi0jZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzQJCShPTUFQX0RNQTRfQkFTRSArIDB4NzQpCisvKiBIYXJkd2FyZSByZWdpc3RlcnMgZm9yIG9tYXAyIGFuZCBvbWFwMyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUE0X0JBU0UJCShMNF8yNFhYX0JBU0UgKyAweDU2MDAwKQorI2RlZmluZSBPTUFQMzRYWF9ETUE0X0JBU0UJCShMNF8zNFhYX0JBU0UgKyAweDU2MDAwKQogCi0jaWZkZWYgQ09ORklHX0FSQ0hfT01BUDEKKyNkZWZpbmUgT01BUF9ETUE0X1JFVklTSU9OCQkweDAwCisjZGVmaW5lIE9NQVBfRE1BNF9HQ1IJCQkweDc4CisjZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDAJCTB4MDgKKyNkZWZpbmUgT01BUF9ETUE0X0lSUVNUQVRVU19MMQkJMHgwYworI2RlZmluZSBPTUFQX0RNQTRfSVJRU1RBVFVTX0wyCQkweDEwCisjZGVmaW5lIE9NQVBfRE1BNF9JUlFTVEFUVVNfTDMJCTB4MTQKKyNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMAkJMHgxOAorI2RlZmluZSBPTUFQX0RNQTRfSVJRRU5BQkxFX0wxCQkweDFjCisjZGVmaW5lIE9NQVBfRE1BNF9JUlFFTkFCTEVfTDIJCTB4MjAKKyNkZWZpbmUgT01BUF9ETUE0X0lSUUVOQUJMRV9MMwkJMHgyNAorI2RlZmluZSBPTUFQX0RNQTRfU1lTU1RBVFVTCQkweDI4CisjZGVmaW5lIE9NQVBfRE1BNF9PQ1BfU1lTQ09ORklHCQkweDJjCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzAJCTB4NjQKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMgkJMHg2YworI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18zCQkweDcwCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzQJCTB4NzQKIAotI2RlZmluZSBPTUFQX0xPR0lDQUxfRE1BX0NIX0NPVU5UCTE3CisjZGVmaW5lIE9NQVAxX0xPR0lDQUxfRE1BX0NIX0NPVU5UCTE3CisjZGVmaW5lIE9NQVBfRE1BNF9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkzMgkvKiBSRVZJU0lUOiBJcyB0aGlzIDMyICsgMj8gKi8KIAogLyogQ29tbW9uIGNoYW5uZWwgc3BlY2lmaWMgcmVnaXN0ZXJzIGZvciBvbWFwMSAqLwotI2RlZmluZSBPTUFQX0RNQV9DU0RQX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MDApCi0jZGVmaW5lIE9NQVBfRE1BX0NDUl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDAyKQotI2RlZmluZSBPTUFQX0RNQV9DSUNSX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MDQpCi0jZGVmaW5lIE9NQVBfRE1BX0NTUl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDA2KQotI2RlZmluZSBPTUFQX0RNQV9DRU5fUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxMCkKLSNkZWZpbmUgT01BUF9ETUFfQ0ZOX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTIpCi0jZGVmaW5lIE9NQVBfRE1BX0NTRklfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxNCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NFSV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDE2KQotI2RlZmluZSBPTUFQX0RNQV9DU0FDX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MTgpCi0jZGVmaW5lIE9NQVBfRE1BX0NEQUNfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgxYSkKLSNkZWZpbmUgT01BUF9ETUFfQ0RFSV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDFjKQotI2RlZmluZSBPTUFQX0RNQV9DREZJX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MWUpCi0jZGVmaW5lIE9NQVBfRE1BX0NMTktfQ1RSTF9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MjgpCi0KLSNlbHNlCi0KLSNkZWZpbmUgT01BUF9MT0dJQ0FMX0RNQV9DSF9DT1VOVAkzMgkvKiBSRVZJU0lUOiBJcyB0aGlzIDMyICsgMj8gKi8KKyNkZWZpbmUgT01BUDFfRE1BX0NIX0JBU0UobikJCSgweDQwICogKG4pICsgMHgwMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTRFAobikJCSgweDQwICogKG4pICsgMHgwMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NDUihuKQkJKDB4NDAgKiAobikgKyAweDAyKQorI2RlZmluZSBPTUFQMV9ETUFfQ0lDUihuKQkJKDB4NDAgKiAobikgKyAweDA0KQorI2RlZmluZSBPTUFQMV9ETUFfQ1NSKG4pCQkoMHg0MCAqIChuKSArIDB4MDYpCisjZGVmaW5lIE9NQVAxX0RNQV9DRU4obikJCSgweDQwICogKG4pICsgMHgxMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NGTihuKQkJKDB4NDAgKiAobikgKyAweDEyKQorI2RlZmluZSBPTUFQMV9ETUFfQ1NGSShuKQkJKDB4NDAgKiAobikgKyAweDE0KQorI2RlZmluZSBPTUFQMV9ETUFfQ1NFSShuKQkJKDB4NDAgKiAobikgKyAweDE2KQorI2RlZmluZSBPTUFQMV9ETUFfQ1BDKG4pCQkoMHg0MCAqIChuKSArIDB4MTgpCS8qIDE1eHggb25seSAqLworI2RlZmluZSBPTUFQMV9ETUFfQ1NBQyhuKQkJKDB4NDAgKiAobikgKyAweDE4KQorI2RlZmluZSBPTUFQMV9ETUFfQ0RBQyhuKQkJKDB4NDAgKiAobikgKyAweDFhKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RFSShuKQkJKDB4NDAgKiAobikgKyAweDFjKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RGSShuKQkJKDB4NDAgKiAobikgKyAweDFlKQorI2RlZmluZSBPTUFQMV9ETUFfQ0xOS19DVFJMKG4pCQkoMHg0MCAqIChuKSArIDB4MjgpCiAKIC8qIENvbW1vbiBjaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBmb3Igb21hcDIgKi8KLSNkZWZpbmUgT01BUF9ETUFfQ0NSX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDgwKQotI2RlZmluZSBPTUFQX0RNQV9DTE5LX0NUUkxfUkVHKG4pCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4NCkKLSNkZWZpbmUgT01BUF9ETUFfQ0lDUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg4OCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NSX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDhjKQotI2RlZmluZSBPTUFQX0RNQV9DU0RQX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweDkwKQotI2RlZmluZSBPTUFQX0RNQV9DRU5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4OTQpCi0jZGVmaW5lIE9NQVBfRE1BX0NGTl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHg5OCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NFSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhNCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NGSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhOCkKLSNkZWZpbmUgT01BUF9ETUFfQ0RFSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhhYykKLSNkZWZpbmUgT01BUF9ETUFfQ0RGSV9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiMCkKLSNkZWZpbmUgT01BUF9ETUFfQ1NBQ19SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiNCkKLSNkZWZpbmUgT01BUF9ETUFfQ0RBQ19SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiOCkKLQotI2VuZGlmCisjZGVmaW5lIE9NQVBfRE1BNF9DSF9CQVNFKG4pCQkoMHg2MCAqIChuKSArIDB4ODApCisjZGVmaW5lIE9NQVBfRE1BNF9DQ1IobikJCSgweDYwICogKG4pICsgMHg4MCkKKyNkZWZpbmUgT01BUF9ETUE0X0NMTktfQ1RSTChuKQkJKDB4NjAgKiAobikgKyAweDg0KQorI2RlZmluZSBPTUFQX0RNQTRfQ0lDUihuKQkJKDB4NjAgKiAobikgKyAweDg4KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NSKG4pCQkoMHg2MCAqIChuKSArIDB4OGMpCisjZGVmaW5lIE9NQVBfRE1BNF9DU0RQKG4pCQkoMHg2MCAqIChuKSArIDB4OTApCisjZGVmaW5lIE9NQVBfRE1BNF9DRU4obikJCSgweDYwICogKG4pICsgMHg5NCkKKyNkZWZpbmUgT01BUF9ETUE0X0NGTihuKQkJKDB4NjAgKiAobikgKyAweDk4KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NFSShuKQkJKDB4NjAgKiAobikgKyAweGE0KQorI2RlZmluZSBPTUFQX0RNQTRfQ1NGSShuKQkJKDB4NjAgKiAobikgKyAweGE4KQorI2RlZmluZSBPTUFQX0RNQTRfQ0RFSShuKQkJKDB4NjAgKiAobikgKyAweGFjKQorI2RlZmluZSBPTUFQX0RNQTRfQ0RGSShuKQkJKDB4NjAgKiAobikgKyAweGIwKQorI2RlZmluZSBPTUFQX0RNQTRfQ1NBQyhuKQkJKDB4NjAgKiAobikgKyAweGI0KQorI2RlZmluZSBPTUFQX0RNQTRfQ0RBQyhuKQkJKDB4NjAgKiAobikgKyAweGI4KQogCiAvKiBDaGFubmVsIHNwZWNpZmljIHJlZ2lzdGVycyBvbmx5IG9uIG9tYXAxICovCi0jZGVmaW5lIE9NQVAxX0RNQV9DU1NBX0xfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwOCkKLSNkZWZpbmUgT01BUDFfRE1BX0NTU0FfVV9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDBhKQotI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9MX1JFRyhuKQkJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MGMpCi0jZGVmaW5lIE9NQVAxX0RNQV9DRFNBX1VfUkVHKG4pCQlfX1JFRzE2KE9NQVBfRE1BX0JBU0UgKyAweDQwICogKG4pICsgMHgwZSkKLSNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX0xfUkVHKG4pCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDIwKQotI2RlZmluZSBPTUFQMV9ETUFfQ0NSMl9SRUcobikJCV9fUkVHMTYoT01BUF9ETUFfQkFTRSArIDB4NDAgKiAobikgKyAweDI0KQotI2RlZmluZSBPTUFQMV9ETUFfQ09MT1JfVV9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MjIpCi0jZGVmaW5lIE9NQVAxX0RNQV9MQ0hfQ1RSTF9SRUcobikJX19SRUcxNihPTUFQX0RNQV9CQVNFICsgMHg0MCAqIChuKSArIDB4MmEpCisjZGVmaW5lIE9NQVAxX0RNQV9DU1NBX0wobikJCSgweDQwICogKG4pICsgMHgwOCkKKyNkZWZpbmUgT01BUDFfRE1BX0NTU0FfVShuKQkJKDB4NDAgKiAobikgKyAweDBhKQorI2RlZmluZSBPTUFQMV9ETUFfQ0RTQV9MKG4pCQkoMHg0MCAqIChuKSArIDB4MGMpCisjZGVmaW5lIE9NQVAxX0RNQV9DRFNBX1UobikJCSgweDQwICogKG4pICsgMHgwZSkKKyNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX0wobikJCSgweDQwICogKG4pICsgMHgyMCkKKyNkZWZpbmUgT01BUDFfRE1BX0NPTE9SX1UobikJCSgweDQwICogKG4pICsgMHgyMikKKyNkZWZpbmUgT01BUDFfRE1BX0NDUjIobikJCSgweDQwICogKG4pICsgMHgyNCkKKyNkZWZpbmUgT01BUDFfRE1BX0xDSF9DVFJMKG4pCQkoMHg0MCAqIChuKSArIDB4MmEpCS8qIG5vdCBvbiAxNXh4ICovCisjZGVmaW5lIE9NQVAxX0RNQV9DQ0VOKG4pCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9DQ0ZOKG4pCQkwCiAKIC8qIENoYW5uZWwgc3BlY2lmaWMgcmVnaXN0ZXJzIG9ubHkgb24gb21hcDIgKi8KLSNkZWZpbmUgT01BUDJfRE1BX0NTU0FfUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4OWMpCi0jZGVmaW5lIE9NQVAyX0RNQV9DRFNBX1JFRyhuKQkJX19SRUczMihPTUFQX0RNQTRfQkFTRSArIDB4NjAgKiAobikgKyAweGEwKQotI2RlZmluZSBPTUFQMl9ETUFfQ0NFTl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhiYykKLSNkZWZpbmUgT01BUDJfRE1BX0NDRk5fUkVHKG4pCQlfX1JFRzMyKE9NQVBfRE1BNF9CQVNFICsgMHg2MCAqIChuKSArIDB4YzApCi0jZGVmaW5lIE9NQVAyX0RNQV9DT0xPUl9SRUcobikJCV9fUkVHMzIoT01BUF9ETUE0X0JBU0UgKyAweDYwICogKG4pICsgMHhjNCkKKyNkZWZpbmUgT01BUF9ETUE0X0NTU0EobikJCSgweDYwICogKG4pICsgMHg5YykKKyNkZWZpbmUgT01BUF9ETUE0X0NEU0EobikJCSgweDYwICogKG4pICsgMHhhMCkKKyNkZWZpbmUgT01BUF9ETUE0X0NDRU4obikJCSgweDYwICogKG4pICsgMHhiYykKKyNkZWZpbmUgT01BUF9ETUE0X0NDRk4obikJCSgweDYwICogKG4pICsgMHhjMCkKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SKG4pCQkoMHg2MCAqIChuKSArIDB4YzQpCisKKy8qIER1bW15IGRlZmluZXMgdG8ga2VlcCBtdWx0aS1vbWFwIGNvbXBpbGVzIGhhcHB5ICovCisjZGVmaW5lIE9NQVAxX0RNQV9SRVZJU0lPTgkJMAorI2RlZmluZSBPTUFQMV9ETUFfSVJRU1RBVFVTX0wwCQkwCisjZGVmaW5lIE9NQVAxX0RNQV9JUlFFTkFCTEVfTDAJCTAKKyNkZWZpbmUgT01BUDFfRE1BX09DUF9TWVNDT05GSUcJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0hXX0lECQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18wX0wJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NBUFNfMF9VCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DQVBTXzFfTAkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ0FQU18xX1UJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0dTQ1IJCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DUEMobikJCTAKKworI2RlZmluZSBPTUFQX0RNQTRfTENIX0NUUkwobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SX0wobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NPTE9SX1UobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NDUjIobikJCTAKKyNkZWZpbmUgT01BUDFfRE1BX0NTU0EobikJCTAKKyNkZWZpbmUgT01BUDFfRE1BX0NEU0EobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NTU0FfTChuKQkJMAorI2RlZmluZSBPTUFQX0RNQTRfQ1NTQV9VKG4pCQkwCisjZGVmaW5lIE9NQVBfRE1BNF9DRFNBX0wobikJCTAKKyNkZWZpbmUgT01BUF9ETUE0X0NEU0FfVShuKQkJMAogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCkBAIC0xOTYsNjMgKzIxNiw5OCBAQAogI2RlZmluZSBPTUFQMjRYWF9ETUFfR1BNQwkJNAkvKiBTX0RNQV8zICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9HRlgJCTUJLyogU19ETUFfNCAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfRFNTCQk2CS8qIFNfRE1BXzUgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1ZMWU5RX1RYCQk3CS8qIFNfRE1BXzYgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX1ZMWU5RX1RYCQk3CS8qIFNfRE1BXzYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVEyCTcJLyogU19ETUFfNiAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfQ1dUCQk4CS8qIFNfRE1BXzcgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0FFU19UWAkJOQkvKiBTX0RNQV84ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9BRVNfUlgJCTEwCS8qIFNfRE1BXzkgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0RFU19UWAkJMTEJLyogU19ETUFfMTAgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0RFU19SWAkJMTIJLyogU19ETUFfMTEgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX1NIQTFNRDVfUlgJCTEzCS8qIFNfRE1BXzEyICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FWFRfRE1BUkVRMgkxNAkvKiBTX0RNQV8xMyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRVhUX0RNQVJFUTMJMTUJLyogU19ETUFfMTQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVE0CTE2CS8qIFNfRE1BXzE1ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQUNfUkQJCTE3CS8qIFNfRE1BXzE2ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQUNfV1IJCTE4CS8qIFNfRE1BXzE3ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfTURfVUxfUkQJMTkJLyogU19ETUFfMTggKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19NRF9VTF9XUgkyMAkvKiBTX0RNQV8xOSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX01EX0RMX1JECTIxCS8qIFNfRE1BXzIwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfTURfRExfV1IJMjIJLyogU19ETUFfMjEgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19CVF9VTF9SRAkyMwkvKiBTX0RNQV8yMiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfRUFDX0JUX1VMX1dSCTI0CS8qIFNfRE1BXzIzICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9FQUNfQlRfRExfUkQJMjUJLyogU19ETUFfMjQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VBQ19CVF9ETF9XUgkyNgkvKiBTX0RNQV8yNSAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfU0hBMk1ENV9SWAkJMTMJLyogU19ETUFfMTIgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VYVF9ETUFSRVEyCTE0CS8qIFNfRE1BXzEzICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FWFRfRE1BUkVRMwkxNQkvKiBTX0RNQV8xNCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRVhUX0RNQVJFUTQJMTYJLyogU19ETUFfMTUgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19BQ19SRAkJMTcJLyogU19ETUFfMTYgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19BQ19XUgkJMTgJLyogU19ETUFfMTcgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19NRF9VTF9SRAkxOQkvKiBTX0RNQV8xOCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX01EX1VMX1dSCTIwCS8qIFNfRE1BXzE5ICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfTURfRExfUkQJMjEJLyogU19ETUFfMjAgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19NRF9ETF9XUgkyMgkvKiBTX0RNQV8yMSAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX0JUX1VMX1JECTIzCS8qIFNfRE1BXzIyICovCisjZGVmaW5lIE9NQVAyNDJYX0RNQV9FQUNfQlRfVUxfV1IJMjQJLyogU19ETUFfMjMgKi8KKyNkZWZpbmUgT01BUDI0MlhfRE1BX0VBQ19CVF9ETF9SRAkyNQkvKiBTX0RNQV8yNCAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRUFDX0JUX0RMX1dSCTI2CS8qIFNfRE1BXzI1ICovCisjZGVmaW5lIE9NQVAyNDNYX0RNQV9FWFRfRE1BUkVRMwkxNAkvKiBTX0RNQV8xMyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJM19UWDAJCTE1CS8qIFNfRE1BXzE0ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkzX1JYMAkJMTYJLyogU19ETUFfMTUgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQM19UWAkJMTcJLyogU19ETUFfMTYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQM19SWAkJMTgJLyogU19ETUFfMTcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNF9UWAkJMTkJLyogU19ETUFfMTggKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNF9SWAkJMjAJLyogU19ETUFfMTkgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNV9UWAkJMjEJLyogU19ETUFfMjAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQNV9SWAkJMjIJLyogU19ETUFfMjEgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTNfVFgxCQkyMwkvKiBTX0RNQV8yMiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJM19SWDEJCTI0CS8qIFNfRE1BXzIzICovCisjZGVmaW5lIE9NQVAyNDNYX0RNQV9FWFRfRE1BUkVRNAkyNQkvKiBTX0RNQV8yNCAqLworI2RlZmluZSBPTUFQMjQzWF9ETUFfRVhUX0RNQVJFUTUJMjYJLyogU19ETUFfMjUgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0kyQzNfVFgJCTI1CS8qIFNfRE1BXzI0ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9JMkMzX1JYCQkyNgkvKiBTX0RNQV8yNSAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfSTJDMV9UWAkJMjcJLyogU19ETUFfMjYgKi8KICNkZWZpbmUgT01BUDI0WFhfRE1BX0kyQzFfUlgJCTI4CS8qIFNfRE1BXzI3ICovCiAjZGVmaW5lIE9NQVAyNFhYX0RNQV9JMkMyX1RYCQkyOQkvKiBTX0RNQV8yOCAqLwogI2RlZmluZSBPTUFQMjRYWF9ETUFfSTJDMl9SWAkJMzAJLyogU19ETUFfMjkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQMV9UWAkJMzEJLyogU0RNQV8zMCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfTUNCU1AxX1JYCQkzMgkvKiBTRE1BXzMxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgJCTMzCS8qIFNETUFfMzIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX01DQlNQMl9SWAkJMzQJLyogU0RNQV8zMyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDAJCTM1CS8qIFNETUFfMzQgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgwCQkzNgkvKiBTRE1BXzM1ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMQkJMzcJLyogU0RNQV8zNiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDEJCTM4CS8qIFNETUFfMzcgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgyCQkzOQkvKiBTRE1BXzM4ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMgkJNDAJLyogU0RNQV8zOSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDMJCTQxCS8qIFNETUFfNDAgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgzCQk0MgkvKiBTRE1BXzQxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1RYMAkJNDMJLyogU0RNQV80MiAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDAJCTQ0CS8qIFNETUFfNDMgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfVFgxCQk0NQkvKiBTRE1BXzQ0ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1JYMQkJNDYJLyogU0RNQV80NSAqLwotCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMV9UWAkJNDkJLyogU0RNQV80OCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDFfUlgJCTUwCS8qIFNETUFfNDkgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQyX1RYCQk1MQkvKiBTRE1BXzUwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9SWAkJNTIJLyogU0RNQV81MSAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDNfVFgJCTUzCS8qIFNETUFfNTIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQzX1JYCQk1NAkvKiBTRE1BXzUzICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDAJNTUJLyogU0RNQV81NCAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgwCTU2CS8qIFNETUFfNTUgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMQk1NwkvKiBTRE1BXzU2ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDEJNTgJLyogU0RNQV81NyAqLwotI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgyCTU5CS8qIFNETUFfNTggKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMgk2MAkvKiBTRE1BXzU5ICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1RYCQk2MQkvKiBTRE1BXzYwICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1JYCQk2MgkvKiBTRE1BXzYxICovCi0jZGVmaW5lIE9NQVAyNFhYX0RNQV9NUwkJCTYzCS8qIFNETUFfNjIgKi8KLSNkZWZpbmUgT01BUDI0WFhfRE1BX0VYVF9ETUFSRVE1CTY0CS8qIFNfRE1BXzYzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDFfVFgJCTMxCS8qIFNfRE1BXzMwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDFfUlgJCTMyCS8qIFNfRE1BXzMxICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfVFgJCTMzCS8qIFNfRE1BXzMyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NQ0JTUDJfUlgJCTM0CS8qIFNfRE1BXzMzICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMAkJMzUJLyogU19ETUFfMzQgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgwCQkzNgkvKiBTX0RNQV8zNSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9UWDEJCTM3CS8qIFNfRE1BXzM2ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1JYMQkJMzgJLyogU19ETUFfMzcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfVFgyCQkzOQkvKiBTX0RNQV8zOCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMV9SWDIJCTQwCS8qIFNfRE1BXzM5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkxX1RYMwkJNDEJLyogU19ETUFfNDAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTFfUlgzCQk0MgkvKiBTX0RNQV80MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9UWDAJCTQzCS8qIFNfRE1BXzQyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9TUEkyX1JYMAkJNDQJLyogU19ETUFfNDMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1NQSTJfVFgxCQk0NQkvKiBTX0RNQV80NCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfU1BJMl9SWDEJCTQ2CS8qIFNfRE1BXzQ1ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMyX1RYCQk0NwkvKiBTX0RNQV80NiAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTU1DMl9SWAkJNDgJLyogU19ETUFfNDcgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQxX1RYCQk0OQkvKiBTX0RNQV80OCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDFfUlgJCTUwCS8qIFNfRE1BXzQ5ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUMl9UWAkJNTEJLyogU19ETUFfNTAgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VBUlQyX1JYCQk1MgkvKiBTX0RNQV81MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVUFSVDNfVFgJCTUzCS8qIFNfRE1BXzUyICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VQVJUM19SWAkJNTQJLyogU19ETUFfNTMgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1RYMAk1NQkvKiBTX0RNQV81NCAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfUlgwCTU2CS8qIFNfRE1BXzU1ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19UWDEJNTcJLyogU19ETUFfNTYgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX1VTQl9XMkZDX1JYMQk1OAkvKiBTX0RNQV81NyAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfVVNCX1cyRkNfVFgyCTU5CS8qIFNfRE1BXzU4ICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9VU0JfVzJGQ19SWDIJNjAJLyogU19ETUFfNTkgKi8KKyNkZWZpbmUgT01BUDI0WFhfRE1BX01NQzFfVFgJCTYxCS8qIFNfRE1BXzYwICovCisjZGVmaW5lIE9NQVAyNFhYX0RNQV9NTUMxX1JYCQk2MgkvKiBTX0RNQV82MSAqLworI2RlZmluZSBPTUFQMjRYWF9ETUFfTVMJCQk2MwkvKiBTX0RNQV82MiAqLworI2RlZmluZSBPTUFQMjQyWF9ETUFfRVhUX0RNQVJFUTUJNjQJLyogU19ETUFfNjMgKi8KKyNkZWZpbmUgT01BUDI0M1hfRE1BX0VYVF9ETUFSRVE2CTY0CS8qIFNfRE1BXzYzICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9FWFRfRE1BUkVRMwk2NAkvKiBTX0RNQV82MyAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfQUVTMl9UWAkJNjUJLyogU19ETUFfNjQgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX0FFUzJfUlgJCTY2CS8qIFNfRE1BXzY1ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9ERVMyX1RYCQk2NwkvKiBTX0RNQV82NiAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfREVTMl9SWAkJNjgJLyogU19ETUFfNjcgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1NIQTFNRDVfUlgJCTY5CS8qIFNfRE1BXzY4ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9TUEk0X1RYMAkJNzAJLyogU19ETUFfNjkgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1NQSTRfUlgwCQk3MQkvKiBTX0RNQV83MCAqLworI2RlZmluZSBPTUFQMzRYWF9EU1NfRE1BMAkJNzIJLyogU19ETUFfNzEgKi8KKyNkZWZpbmUgT01BUDM0WFhfRFNTX0RNQTEJCTczCS8qIFNfRE1BXzcyICovCisjZGVmaW5lIE9NQVAzNFhYX0RTU19ETUEyCQk3NAkvKiBTX0RNQV83MyAqLworI2RlZmluZSBPTUFQMzRYWF9EU1NfRE1BMwkJNzUJLyogU19ETUFfNzQgKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX01NQzNfVFgJCTc3CS8qIFNfRE1BXzc2ICovCisjZGVmaW5lIE9NQVAzNFhYX0RNQV9NTUMzX1JYCQk3OAkvKiBTX0RNQV83NyAqLworI2RlZmluZSBPTUFQMzRYWF9ETUFfVVNJTV9UWAkJNzkJLyogU19ETUFfNzggKi8KKyNkZWZpbmUgT01BUDM0WFhfRE1BX1VTSU1fUlgJCTgwCS8qIFNfRE1BXzc5ICovCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKQEAgLTM1OCw2ICs0MTMsMTEgQEAKIAlPTUFQX0RNQV9EQVRBX0JVUlNUXzE2LAogfTsKIAorZW51bSBlbmRfdHlwZSB7CisJT01BUF9ETUFfTElUVExFX0VORElBTiA9IDAsCisJT01BUF9ETUFfQklHX0VORElBTgorfTsKKwogZW51bSBvbWFwX2RtYV9jb2xvcl9tb2RlIHsKIAlPTUFQX0RNQV9DT0xPUl9ESVMgPSAwLAogCU9NQVBfRE1BX0NPTlNUQU5UX0ZJTEwsCkBAIC0zNzAsMjQgKzQzMCwzNCBAQAogCU9NQVBfRE1BX1dSSVRFX0xBU1RfTk9OX1BPU1RFRAogfTsKIAorZW51bSBvbWFwX2RtYV9jaGFubmVsX21vZGUgeworCU9NQVBfRE1BX0xDSF8yRCA9IDAsCisJT01BUF9ETUFfTENIX0csCisJT01BUF9ETUFfTENIX1AsCisJT01BUF9ETUFfTENIX1BECit9OworCiBzdHJ1Y3Qgb21hcF9kbWFfY2hhbm5lbF9wYXJhbXMgewogCWludCBkYXRhX3R5cGU7CQkvKiBkYXRhIHR5cGUgOCwxNiwzMiAqLwogCWludCBlbGVtX2NvdW50OwkJLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgZnJhbWUgKi8KIAlpbnQgZnJhbWVfY291bnQ7CS8qIG51bWJlciBvZiBmcmFtZXMgaW4gYSBlbGVtZW50ICovCiAKIAlpbnQgc3JjX3BvcnQ7CQkvKiBPbmx5IG9uIE9NQVAxIFJFVklTSVQ6IElzIHRoaXMgbmVlZGVkPyAqLwotCWludCBzcmNfYW1vZGU7CQkvKiBjb25zdGFudCAsIHBvc3QgaW5jcmVtZW50LCBpbmRleGVkICwgZG91YmxlIGluZGV4ZWQgKi8KKwlpbnQgc3JjX2Ftb2RlOwkJLyogY29uc3RhbnQsIHBvc3QgaW5jcmVtZW50LCBpbmRleGVkLAorCQkJCQlkb3VibGUgaW5kZXhlZCAqLwogCXVuc2lnbmVkIGxvbmcgc3JjX3N0YXJ0OwkvKiBzb3VyY2UgYWRkcmVzcyA6IHBoeXNpY2FsICovCiAJaW50IHNyY19laTsJCS8qIHNvdXJjZSBlbGVtZW50IGluZGV4ICovCiAJaW50IHNyY19maTsJCS8qIHNvdXJjZSBmcmFtZSBpbmRleCAqLwogCiAJaW50IGRzdF9wb3J0OwkJLyogT25seSBvbiBPTUFQMSBSRVZJU0lUOiBJcyB0aGlzIG5lZWRlZD8gKi8KLQlpbnQgZHN0X2Ftb2RlOwkJLyogY29uc3RhbnQgLCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCAsIGRvdWJsZSBpbmRleGVkICovCisJaW50IGRzdF9hbW9kZTsJCS8qIGNvbnN0YW50LCBwb3N0IGluY3JlbWVudCwgaW5kZXhlZCwKKwkJCQkJZG91YmxlIGluZGV4ZWQgKi8KIAl1bnNpZ25lZCBsb25nIGRzdF9zdGFydDsJLyogc291cmNlIGFkZHJlc3MgOiBwaHlzaWNhbCAqLwogCWludCBkc3RfZWk7CQkvKiBzb3VyY2UgZWxlbWVudCBpbmRleCAqLwogCWludCBkc3RfZmk7CQkvKiBzb3VyY2UgZnJhbWUgaW5kZXggKi8KIAotCWludCB0cmlnZ2VyOwkJLyogdHJpZ2dlciBhdHRhY2hlZCBpZiB0aGUgY2hhbm5lbCBpcyBzeW5jaHJvbml6ZWQgKi8KKwlpbnQgdHJpZ2dlcjsJCS8qIHRyaWdnZXIgYXR0YWNoZWQgaWYgdGhlIGNoYW5uZWwgaXMKKwkJCQkJc3luY2hyb25pemVkICovCiAJaW50IHN5bmNfbW9kZTsJCS8qIHN5Y24gb24gZWxlbWVudCwgZnJhbWUgLCBibG9jayBvciBwYWNrZXQgKi8KIAlpbnQgc3JjX29yX2RzdF9zeW5jaDsJLyogc291cmNlIHN5bmNoKDEpIG9yIGRlc3RpbmF0aW9uIHN5bmNoKDApICovCiAKQEAgLTQwNCw4ICs0NzQsOCBAQAogCiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfcHJpb3JpdHkoaW50IGxjaCwgaW50IGRzdF9wb3J0LCBpbnQgcHJpb3JpdHkpOwogZXh0ZXJuIGludCBvbWFwX3JlcXVlc3RfZG1hKGludCBkZXZfaWQsIGNvbnN0IGNoYXIgKmRldl9uYW1lLAotCQkJICAgIHZvaWQgKCogY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAotCQkJICAgIHZvaWQgKmRhdGEsIGludCAqZG1hX2NoKTsKKwkJCXZvaWQgKCpjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCisJCQl2b2lkICpkYXRhLCBpbnQgKmRtYV9jaCk7CiBleHRlcm4gdm9pZCBvbWFwX2VuYWJsZV9kbWFfaXJxKGludCBjaCwgdTE2IGlycV9iaXRzKTsKIGV4dGVybiB2b2lkIG9tYXBfZGlzYWJsZV9kbWFfaXJxKGludCBjaCwgdTE2IGlycV9iaXRzKTsKIGV4dGVybiB2b2lkIG9tYXBfZnJlZV9kbWEoaW50IGNoKTsKQEAgLTQxOCw2ICs0ODgsNyBAQAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX2NvbG9yX21vZGUoaW50IGxjaCwgZW51bSBvbWFwX2RtYV9jb2xvcl9tb2RlIG1vZGUsCiAJCQkJICAgIHUzMiBjb2xvcik7CiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfd3JpdGVfbW9kZShpbnQgbGNoLCBlbnVtIG9tYXBfZG1hX3dyaXRlX21vZGUgbW9kZSk7CitleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfY2hhbm5lbF9tb2RlKGludCBsY2gsIGVudW0gb21hcF9kbWFfY2hhbm5lbF9tb2RlIG1vZGUpOwogCiBleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfc3JjX3BhcmFtcyhpbnQgbGNoLCBpbnQgc3JjX3BvcnQsIGludCBzcmNfYW1vZGUsCiAJCQkJICAgIHVuc2lnbmVkIGxvbmcgc3JjX3N0YXJ0LApAQCAtNDM2LDIzICs1MDcsMjYgQEAKIAkJCQkJIGVudW0gb21hcF9kbWFfYnVyc3RfbW9kZSBidXJzdF9tb2RlKTsKIAogZXh0ZXJuIHZvaWQgb21hcF9zZXRfZG1hX3BhcmFtcyhpbnQgbGNoLAotCQkJCXN0cnVjdCBvbWFwX2RtYV9jaGFubmVsX3BhcmFtcyAqIHBhcmFtcyk7CisJCQkJc3RydWN0IG9tYXBfZG1hX2NoYW5uZWxfcGFyYW1zICpwYXJhbXMpOwogCi1leHRlcm4gdm9pZCBvbWFwX2RtYV9saW5rX2xjaCAoaW50IGxjaF9oZWFkLCBpbnQgbGNoX3F1ZXVlKTsKLWV4dGVybiB2b2lkIG9tYXBfZG1hX3VubGlua19sY2ggKGludCBsY2hfaGVhZCwgaW50IGxjaF9xdWV1ZSk7CitleHRlcm4gdm9pZCBvbWFwX2RtYV9saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpOworZXh0ZXJuIHZvaWQgb21hcF9kbWFfdW5saW5rX2xjaChpbnQgbGNoX2hlYWQsIGludCBsY2hfcXVldWUpOwogCiBleHRlcm4gaW50IG9tYXBfc2V0X2RtYV9jYWxsYmFjayhpbnQgbGNoLAotCQkJdm9pZCAoKiBjYWxsYmFjaykoaW50IGxjaCwgdTE2IGNoX3N0YXR1cywgdm9pZCAqZGF0YSksCisJCQl2b2lkICgqY2FsbGJhY2spKGludCBsY2gsIHUxNiBjaF9zdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJdm9pZCAqZGF0YSk7CiBleHRlcm4gZG1hX2FkZHJfdCBvbWFwX2dldF9kbWFfc3JjX3BvcyhpbnQgbGNoKTsKIGV4dGVybiBkbWFfYWRkcl90IG9tYXBfZ2V0X2RtYV9kc3RfcG9zKGludCBsY2gpOwotZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfc3JjX2FkZHJfY291bnRlcihpbnQgbGNoKTsKIGV4dGVybiB2b2lkIG9tYXBfY2xlYXJfZG1hKGludCBsY2gpOworZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfYWN0aXZlX3N0YXR1cyhpbnQgbGNoKTsKIGV4dGVybiBpbnQgb21hcF9kbWFfcnVubmluZyh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXBfZG1hX3NldF9nbG9iYWxfcGFyYW1zKGludCBhcmJfcmF0ZSwgaW50IG1heF9maWZvX2RlcHRoLAogCQkJCSAgICAgICBpbnQgdHBhcmFtcyk7CiBleHRlcm4gaW50IG9tYXBfZG1hX3NldF9wcmlvX2xjaChpbnQgbGNoLCB1bnNpZ25lZCBjaGFyIHJlYWRfcHJpbywKIAkJCQkgdW5zaWduZWQgY2hhciB3cml0ZV9wcmlvKTsKK2V4dGVybiB2b2lkIG9tYXBfc2V0X2RtYV9kc3RfZW5kaWFuX3R5cGUoaW50IGxjaCwgZW51bSBlbmRfdHlwZSBldHlwZSk7CitleHRlcm4gdm9pZCBvbWFwX3NldF9kbWFfc3JjX2VuZGlhbl90eXBlKGludCBsY2gsIGVudW0gZW5kX3R5cGUgZXR5cGUpOworZXh0ZXJuIGludCBvbWFwX2dldF9kbWFfaW5kZXgoaW50IGxjaCwgaW50ICplaSwgaW50ICpmaSk7CiAKIC8qIENoYWluaW5nIEFQSXMgKi8KICNpZm5kZWYgQ09ORklHX0FSQ0hfT01BUDEKQEAgLTQ3OCw3ICs1NTIsNyBAQAogI2VuZGlmCiAKIC8qIExDRCBETUEgZnVuY3Rpb25zICovCi1leHRlcm4gaW50IG9tYXBfcmVxdWVzdF9sY2RfZG1hKHZvaWQgKCogY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpLAorZXh0ZXJuIGludCBvbWFwX3JlcXVlc3RfbGNkX2RtYSh2b2lkICgqY2FsbGJhY2spKHUxNiBzdGF0dXMsIHZvaWQgKmRhdGEpLAogCQkJCXZvaWQgKmRhdGEpOwogZXh0ZXJuIHZvaWQgb21hcF9mcmVlX2xjZF9kbWEodm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwX3NldHVwX2xjZF9kbWEodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2RtdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCmluZGV4IGZlZmIyNzYuLjAyYjI5ZTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZG10aW1lci5oCkBAIC02Niw2ICs2Niw3IEBACiAKIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfc291cmNlKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHNvdXJjZSk7CiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X2xvYWQoc3RydWN0IG9tYXBfZG1fdGltZXIgKnRpbWVyLCBpbnQgYXV0b3JlbG9hZCwgdW5zaWduZWQgaW50IHZhbHVlKTsKK3ZvaWQgb21hcF9kbV90aW1lcl9zZXRfbG9hZF9zdGFydChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBhdXRvcmVsb2FkLCB1bnNpZ25lZCBpbnQgdmFsdWUpOwogdm9pZCBvbWFwX2RtX3RpbWVyX3NldF9tYXRjaChzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBlbmFibGUsIHVuc2lnbmVkIGludCBtYXRjaCk7CiB2b2lkIG9tYXBfZG1fdGltZXJfc2V0X3B3bShzdHJ1Y3Qgb21hcF9kbV90aW1lciAqdGltZXIsIGludCBkZWZfb24sIGludCB0b2dnbGUsIGludCB0cmlnZ2VyKTsKIHZvaWQgb21hcF9kbV90aW1lcl9zZXRfcHJlc2NhbGVyKHN0cnVjdCBvbWFwX2RtX3RpbWVyICp0aW1lciwgaW50IHByZXNjYWxlcik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2VudHJ5LW1hY3JvLlMgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2VudHJ5LW1hY3JvLlMKaW5kZXggNzRjZDU3Mi4uMzY5MDkzYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9lbnRyeS1tYWNyby5TCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZW50cnktbWFjcm8uUwpAQCAtOCw2ICs4LDcgQEAKICAqIHdhcnJhbnR5IG9mIGFueSBraW5kLCB3aGV0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KICAqLwogI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvaXJxcy5oPgogCiAjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9PTUFQMSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvZnBnYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9mcGdhLmgKaW5kZXggNmE4ODNlMC4uZjQyMDg4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9mcGdhLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9mcGdhLmgKQEAgLTE2OSwzMCArMTY5LDI5IEBACiAjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBCQkoSUhfR1BJT19CQVNFICsgMTMpCiAKIC8qIElSUSBOdW1iZXJzIGZvciBpbnRlcnJ1cHRzIG11eGVkIHRocm91Z2ggdGhlIEZQR0EgKi8KLSNkZWZpbmUgT01BUDE1MTBfSUhfRlBHQV9CQVNFCQlJSF9CT0FSRF9CQVNFCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0FUTgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDApCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0FDSwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDEpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDIpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDMpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNAkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDQpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDUpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDYpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDcpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBOAkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDgpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBOQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDkpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTAJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxMCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMQkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDExKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTEyCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTIpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9FVEhFUgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDEzKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQVVBUlQxCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMTQpCi0jZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBVUFSVDIJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxNSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfVFMJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxNikKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExNwkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDE3KQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9DQU0JCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxOCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfUlRDX0EJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAxOSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfUlRDX0IJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAyMCkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQ0QJCShPTUFQMTUxMF9JSF9GUEdBX0JBU0UgKyAyMSkKLSNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyMgkJKE9NQVAxNTEwX0lIX0ZQR0FfQkFTRSArIDIyKQotI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIzCQkoT01BUDE1MTBfSUhfRlBHQV9CQVNFICsgMjMpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0FUTgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDApCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBX0FDSwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDEpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDIpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDMpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNAkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDQpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDUpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDYpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBNwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDcpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBOAkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDgpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBOQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDkpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBMTAJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxMCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExMQkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDExKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTEyCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTIpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9FVEhFUgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDEzKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQVVBUlQxCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMTQpCisjZGVmaW5lIE9NQVAxNTEwX0lOVF9GUEdBVUFSVDIJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxNSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfVFMJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxNikKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0ExNwkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDE3KQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQV9DQU0JCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxOCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfUlRDX0EJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAxOSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfUlRDX0IJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAyMCkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0FfQ0QJCShPTUFQX0ZQR0FfSVJRX0JBU0UgKyAyMSkKKyNkZWZpbmUgT01BUDE1MTBfSU5UX0ZQR0EyMgkJKE9NQVBfRlBHQV9JUlFfQkFTRSArIDIyKQorI2RlZmluZSBPTUFQMTUxMF9JTlRfRlBHQTIzCQkoT01BUF9GUEdBX0lSUV9CQVNFICsgMjMpCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2dwaW8uaAppbmRleCA4NjYyMWEwLi41ZWU2YTQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2dwaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2dwaW8uaApAQCAtMjYsNyArMjYsNiBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX09NQVBfR1BJT19ICiAjZGVmaW5lIF9fQVNNX0FSQ0hfT01BUF9HUElPX0gKIAotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgogI2luY2x1ZGUgPGFzbS9hcmNoL2lycXMuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9oYXJkd2FyZS5oCmluZGV4IGRhNTcyMDkuLjQ1ZmRmY2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaGFyZHdhcmUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2hhcmR3YXJlLmgKQEAgLTQxLDcgKzQxLDYgQEAKICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9jcHUuaD4KICNlbmRpZgotI2luY2x1ZGUgPGFzbS9hcmNoL2lvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvc2VyaWFsLmg+CiAKIC8qCkBAIC0yODUsNiArMjg0LDcgQEAKICNpbmNsdWRlICJvbWFwMTUxMC5oIgogI2luY2x1ZGUgIm9tYXAyNHh4LmgiCiAjaW5jbHVkZSAib21hcDE2eHguaCIKKyNpbmNsdWRlICJvbWFwMzR4eC5oIgogCiAjaWZuZGVmIF9fQVNTRU1CTEVSX18KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pby5oCmluZGV4IDE2MDU3OGUuLjBiMTM1NTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lvLmgKQEAgLTYwLDYgKzYwLDcgQEAKICNkZWZpbmUgSU9fU0laRQkJMHg0MDAwMAogI2RlZmluZSBJT19WSVJUCQkoSU9fUEhZUyAtIElPX09GRlNFVCkKICNkZWZpbmUgSU9fQUREUkVTUyhwYSkJKChwYSkgLSBJT19PRkZTRVQpCisjZGVmaW5lIE9NQVAxX0lPX0FERFJFU1MocGEpCSgocGEpIC0gSU9fT0ZGU0VUKQogI2RlZmluZSBpb19wMnYocGEpCSgocGEpIC0gSU9fT0ZGU0VUKQogI2RlZmluZSBpb192MnAodmEpCSgodmEpICsgSU9fT0ZGU0VUKQogCkBAIC05MSw2ICs5Miw3IEBACiAKICNkZWZpbmUgSU9fT0ZGU0VUCTB4OTAwMDAwMDAKICNkZWZpbmUgSU9fQUREUkVTUyhwYSkJKChwYSkgKyBJT19PRkZTRVQpCS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KKyNkZWZpbmUgT01BUDJfSU9fQUREUkVTUyhwYSkJKChwYSkgKyBJT19PRkZTRVQpCS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KICNkZWZpbmUgaW9fcDJ2KHBhKQkoKHBhKSArIElPX09GRlNFVCkJLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogI2RlZmluZSBpb192MnAodmEpCSgodmEpIC0gSU9fT0ZGU0VUKQkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAKQEAgLTE0OCw2ICsxNTAsNyBAQAogCiAjZGVmaW5lIElPX09GRlNFVAkJMHg5MDAwMDAwMAogI2RlZmluZSBJT19BRERSRVNTKHBhKQkJKChwYSkgKyBJT19PRkZTRVQpLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLworI2RlZmluZSBPTUFQMl9JT19BRERSRVNTKHBhKQkoKHBhKSArIElPX09GRlNFVCkvKiBXb3JrcyBmb3IgTDMgYW5kIEw0ICovCiAjZGVmaW5lIGlvX3AydihwYSkJCSgocGEpICsgSU9fT0ZGU0VUKS8qIFdvcmtzIGZvciBMMyBhbmQgTDQgKi8KICNkZWZpbmUgaW9fdjJwKHZhKQkJKCh2YSkgLSBJT19PRkZTRVQpLyogV29ya3MgZm9yIEwzIGFuZCBMNCAqLwogCkBAIC0xODMsMzUgKzE4NiwxMiBAQAogI2RlZmluZSBvbWFwX3dyaXRldyh2LGEpCSgqKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopSU9fQUREUkVTUyhhKSA9ICh2KSkKICNkZWZpbmUgb21hcF93cml0ZWwodixhKQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgICAqKUlPX0FERFJFU1MoYSkgPSAodikpCiAKLS8qIDE2IGJpdCB1c2VzIExEUkgvU1RSSCwgYmFzZSArLy0gb2Zmc2V0XzggKi8KLXR5cGVkZWYgc3RydWN0IHsgdm9sYXRpbGUgdTE2IG9mZnNldFsyNTZdOyB9IF9fcmVnYmFzZTE2OwotI2RlZmluZSBfX1JFR1YxNih2YWRkcikJCSgoX19yZWdiYXNlMTYgKikoKHZhZGRyKSZ+MHhmZikpIFwKLQkJCQkJLT5vZmZzZXRbKCh2YWRkcikmMHhmZik+PjFdCi0jZGVmaW5lIF9fUkVHMTYocGFkZHIpICAgICAgICAgIF9fUkVHVjE2KGlvX3AydihwYWRkcikpCi0KLS8qIDgvMzIgYml0IHVzZXMgTERSL1NUUiwgYmFzZSArLy0gb2Zmc2V0XzEyICovCi10eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIHU4IG9mZnNldFs0MDk2XTsgfSBfX3JlZ2Jhc2U4OwotI2RlZmluZSBfX1JFR1Y4KHZhZGRyKQkJKChfX3JlZ2Jhc2U4ICAqKSgodmFkZHIpJn40MDk1KSkgXAotCQkJCQktPm9mZnNldFsoKHZhZGRyKSY0MDk1KT4+MF0KLSNkZWZpbmUgX19SRUc4KHBhZGRyKQkJX19SRUdWOChpb19wMnYocGFkZHIpKQotCi10eXBlZGVmIHN0cnVjdCB7IHZvbGF0aWxlIHUzMiBvZmZzZXRbNDA5Nl07IH0gX19yZWdiYXNlMzI7Ci0jZGVmaW5lIF9fUkVHVjMyKHZhZGRyKQkJKChfX3JlZ2Jhc2UzMiAqKSgodmFkZHIpJn40MDk1KSkgXAotCQkJCQktPm9mZnNldFsoKHZhZGRyKSY0MDk1KT4+Ml0KLSNkZWZpbmUgX19SRUczMihwYWRkcikJCV9fUkVHVjMyKGlvX3AydihwYWRkcikpCi0KIGV4dGVybiB2b2lkIG9tYXAxX21hcF9jb21tb25faW8odm9pZCk7CiBleHRlcm4gdm9pZCBvbWFwMV9pbml0X2NvbW1vbl9odyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgb21hcDJfbWFwX2NvbW1vbl9pbyh2b2lkKTsKIGV4dGVybiB2b2lkIG9tYXAyX2luaXRfY29tbW9uX2h3KHZvaWQpOwogCi0jZWxzZQotCi0jZGVmaW5lIF9fUkVHOChwYWRkcikJCWlvX3AydihwYWRkcikKLSNkZWZpbmUgX19SRUcxNihwYWRkcikJCWlvX3AydihwYWRkcikKLSNkZWZpbmUgX19SRUczMihwYWRkcikJCWlvX3AydihwYWRkcikKLQogI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9pcnFzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaAppbmRleCA4Nzk3MzY1Li43NDY0YzY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL2lycXMuaApAQCAtMjg1LDcgKzI4NSw0MSBAQAogI2RlZmluZSBPTUFQX01BWF9HUElPX0xJTkVTCTE5MgogI2RlZmluZSBJSF9HUElPX0JBU0UJCSgxMjggKyBJSDJfQkFTRSkKICNkZWZpbmUgSUhfTVBVSU9fQkFTRQkJKE9NQVBfTUFYX0dQSU9fTElORVMgKyBJSF9HUElPX0JBU0UpCi0jZGVmaW5lIElIX0JPQVJEX0JBU0UJCSgxNiArIElIX01QVUlPX0JBU0UpCisjZGVmaW5lIE9NQVBfSVJRX0VORAkJKElIX01QVUlPX0JBU0UgKyAxNikKKworLyogRXh0ZXJuYWwgRlBHQSBoYW5kbGVzIGludGVycnVwdHMgb24gSW5ub3ZhdG9yIGJvYXJkcyAqLworI2RlZmluZQlPTUFQX0ZQR0FfSVJRX0JBU0UJKE9NQVBfSVJRX0VORCkKKyNpZmRlZglDT05GSUdfTUFDSF9PTUFQX0lOTk9WQVRPUgorI2RlZmluZSBPTUFQX0ZQR0FfTlJfSVJRUwkyNAorI2Vsc2UKKyNkZWZpbmUgT01BUF9GUEdBX05SX0lSUVMJMAorI2VuZGlmCisjZGVmaW5lIE9NQVBfRlBHQV9JUlFfRU5ECShPTUFQX0ZQR0FfSVJRX0JBU0UgKyBPTUFQX0ZQR0FfTlJfSVJRUykKKworLyogRXh0ZXJuYWwgVFdMNDAzMCBjYW4gaGFuZGxlIGludGVycnVwdHMgb24gMjQzMCBhbmQgMzR4eCBib2FyZHMgKi8KKyNkZWZpbmUJVFdMNDAzMF9JUlFfQkFTRQkoT01BUF9GUEdBX0lSUV9FTkQpCisjaWZkZWYJQ09ORklHX1RXTDQwMzBfQ09SRQorI2RlZmluZQlUV0w0MDMwX0JBU0VfTlJfSVJRUwk4CisjZGVmaW5lCVRXTDQwMzBfUFdSX05SX0lSUVMJOAorI2Vsc2UKKyNkZWZpbmUJVFdMNDAzMF9CQVNFX05SX0lSUVMJMAorI2RlZmluZQlUV0w0MDMwX1BXUl9OUl9JUlFTCTAKKyNlbmRpZgorI2RlZmluZSBUV0w0MDMwX0lSUV9FTkQJCShUV0w0MDMwX0lSUV9CQVNFICsgVFdMNDAzMF9CQVNFX05SX0lSUVMpCisjZGVmaW5lIFRXTDQwMzBfUFdSX0lSUV9CQVNFCVRXTDQwMzBfSVJRX0VORAorI2RlZmluZQlUV0w0MDMwX1BXUl9JUlFfRU5ECShUV0w0MDMwX1BXUl9JUlFfQkFTRSArIFRXTDQwMzBfUFdSX05SX0lSUVMpCisKKy8qIEV4dGVybmFsIFRXTDQwMzAgZ3BpbyBpbnRlcnJ1cHRzIGFyZSBvcHRpb25hbCAqLworI2RlZmluZSBUV0w0MDMwX0dQSU9fSVJRX0JBU0UJVFdMNDAzMF9QV1JfSVJRX0VORAorI2lmZGVmCUNPTkZJR19UV0w0MDMwX0dQSU8KKyNkZWZpbmUgVFdMNDAzMF9HUElPX05SX0lSUVMJMTgKKyNlbHNlCisjZGVmaW5lCVRXTDQwMzBfR1BJT19OUl9JUlFTCTAKKyNlbmRpZgorI2RlZmluZSBUV0w0MDMwX0dQSU9fSVJRX0VORAkoVFdMNDAzMF9HUElPX0lSUV9CQVNFICsgVFdMNDAzMF9HUElPX05SX0lSUVMpCisKKy8qIFRvdGFsIG51bWJlciBvZiBpbnRlcnJ1cHRzIGRlcGVuZHMgb24gdGhlIGVuYWJsZWQgYmxvY2tzIGFib3ZlICovCisjZGVmaW5lIE5SX0lSUVMJCQlUV0w0MDMwX0dQSU9fSVJRX0VORAogCiAjZGVmaW5lIE9NQVBfSVJRX0JJVChpcnEpCSgxIDw8ICgoaXJxKSAlIDMyKSkKIApAQCAtMjkzLDE0ICszMjcsNiBAQAogZXh0ZXJuIHZvaWQgb21hcF9pbml0X2lycSh2b2lkKTsKICNlbmRpZgogCi0vKgotICogVGhlIGRlZmluaXRpb24gb2YgTlJfSVJRUyBpcyBpbiBib2FyZC1zcGVjaWZpYyBoZWFkZXIgZmlsZSwgd2hpY2ggaXMKLSAqIGluY2x1ZGVkIHZpYSBoYXJkd2FyZS5oCi0gKi8KICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KIAotI2lmbmRlZiBOUl9JUlFTCi0jZGVmaW5lIE5SX0lSUVMgICAgICAgICAgICAgICAgIElIX0JPQVJEX0JBU0UKLSNlbmRpZgotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvbWNic3AuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvbWNic3AuaAppbmRleCBjN2EwY2MxLi4yNmM3OGY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL21jYnNwLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9tY2JzcC5oCkBAIC0yNCw3ICsyNCwxMSBAQAogI2lmbmRlZiBfX0FTTV9BUkNIX09NQVBfTUNCU1BfSAogI2RlZmluZSBfX0FTTV9BUkNIX09NQVBfTUNCU1BfSAogCisjaW5jbHVkZSA8bGludXgvY29tcGxldGlvbi5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKICNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9jbG9jay5oPgogCiAjZGVmaW5lIE9NQVA3MzBfTUNCU1AxX0JBU0UJMHhmZmZiMTAwMAogI2RlZmluZSBPTUFQNzMwX01DQlNQMl9CQVNFCTB4ZmZmYjE4MDAKQEAgLTQwLDYgKzQ0LDkgQEAKICNkZWZpbmUgT01BUDI0WFhfTUNCU1AxX0JBU0UJMHg0ODA3NDAwMAogI2RlZmluZSBPTUFQMjRYWF9NQ0JTUDJfQkFTRQkweDQ4MDc2MDAwCiAKKyNkZWZpbmUgT01BUDM0WFhfTUNCU1AxX0JBU0UJMHg0ODA3NDAwMAorI2RlZmluZSBPTUFQMzRYWF9NQ0JTUDJfQkFTRQkweDQ5MDIyMDAwCisKICNpZiBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNVhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVAxNlhYKSB8fCBkZWZpbmVkKENPTkZJR19BUkNIX09NQVA3MzApCiAKICNkZWZpbmUgT01BUF9NQ0JTUF9SRUdfRFJSMgkweDAwCkBAIC03NCw3ICs4MSw4IEBACiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX1hDRVJHCTB4M0EKICNkZWZpbmUgT01BUF9NQ0JTUF9SRUdfWENFUkgJMHgzQwogCi0jZGVmaW5lIE9NQVBfTUFYX01DQlNQX0NPVU5UIDMKKyNkZWZpbmUgT01BUF9NQVhfTUNCU1BfQ09VTlQJMworI2RlZmluZSBNQVhfTUNCU1BfQ0xPQ0tTCTMKIAogI2RlZmluZSBBVURJT19NQ0JTUF9EQVRBV1JJVEUJKE9NQVAxNTEwX01DQlNQMV9CQVNFICsgT01BUF9NQ0JTUF9SRUdfRFhSMSkKICNkZWZpbmUgQVVESU9fTUNCU1BfREFUQVJFQUQJKE9NQVAxNTEwX01DQlNQMV9CQVNFICsgT01BUF9NQ0JTUF9SRUdfRFJSMSkKQEAgLTExNyw3ICsxMjUsOCBAQAogI2RlZmluZSBPTUFQX01DQlNQX1JFR19YQ0VSRwkweDc0CiAjZGVmaW5lIE9NQVBfTUNCU1BfUkVHX1hDRVJICTB4NzgKIAotI2RlZmluZSBPTUFQX01BWF9NQ0JTUF9DT1VOVCAyCisjZGVmaW5lIE9NQVBfTUFYX01DQlNQX0NPVU5UCTIKKyNkZWZpbmUgTUFYX01DQlNQX0NMT0NLUwkyCiAKICNkZWZpbmUgQVVESU9fTUNCU1BfREFUQVdSSVRFCShPTUFQMjRYWF9NQ0JTUDJfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RYUjEpCiAjZGVmaW5lIEFVRElPX01DQlNQX0RBVEFSRUFECShPTUFQMjRYWF9NQ0JTUDJfQkFTRSArIE9NQVBfTUNCU1BfUkVHX0RSUjEpCkBAIC0yOTgsNiArMzA3LDU1IEBACiAJb21hcF9tY2JzcF93b3JkX2xlbmd0aAkJd29yZF9sZW5ndGg7CiB9OwogCisvKiBQbGF0Zm9ybSBzcGVjaWZpYyBjb25maWd1cmF0aW9uICovCitzdHJ1Y3Qgb21hcF9tY2JzcF9vcHMgeworCXZvaWQgKCpyZXF1ZXN0KSh1bnNpZ25lZCBpbnQpOworCXZvaWQgKCpmcmVlKSh1bnNpZ25lZCBpbnQpOworCWludCAoKmNoZWNrKSh1bnNpZ25lZCBpbnQpOworfTsKKworc3RydWN0IG9tYXBfbWNic3BfcGxhdGZvcm1fZGF0YSB7CisJdTMyIHZpcnRfYmFzZTsKKwl1OCBkbWFfcnhfc3luYywgZG1hX3R4X3N5bmM7CisJdTE2IHJ4X2lycSwgdHhfaXJxOworCXN0cnVjdCBvbWFwX21jYnNwX29wcyAqb3BzOworCWNoYXIgY29uc3QgKmNsa19uYW1lOworfTsKKworc3RydWN0IG9tYXBfbWNic3AgeworCXN0cnVjdCBkZXZpY2UgKmRldjsKKwl1MzIgaW9fYmFzZTsKKwl1OCBpZDsKKwl1OCBmcmVlOworCW9tYXBfbWNic3Bfd29yZF9sZW5ndGggcnhfd29yZF9sZW5ndGg7CisJb21hcF9tY2JzcF93b3JkX2xlbmd0aCB0eF93b3JkX2xlbmd0aDsKKworCW9tYXBfbWNic3BfaW9fdHlwZV90IGlvX3R5cGU7IC8qIElSUSBvciBwb2xsICovCisJLyogSVJRIGJhc2VkIFRYL1JYICovCisJaW50IHJ4X2lycTsKKwlpbnQgdHhfaXJxOworCisJLyogRE1BIHN0dWZmICovCisJdTggZG1hX3J4X3N5bmM7CisJc2hvcnQgZG1hX3J4X2xjaDsKKwl1OCBkbWFfdHhfc3luYzsKKwlzaG9ydCBkbWFfdHhfbGNoOworCisJLyogQ29tcGxldGlvbiBxdWV1ZXMgKi8KKwlzdHJ1Y3QgY29tcGxldGlvbiB0eF9pcnFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiByeF9pcnFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiB0eF9kbWFfY29tcGxldGlvbjsKKwlzdHJ1Y3QgY29tcGxldGlvbiByeF9kbWFfY29tcGxldGlvbjsKKworCS8qIFByb3RlY3QgdGhlIGZpZWxkIC5mcmVlLCB3aGlsZSBjaGVja2luZyBpZiB0aGUgbWNic3AgaXMgaW4gdXNlICovCisJc3BpbmxvY2tfdCBsb2NrOworCXN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgKnBkYXRhOworCXN0cnVjdCBjbGsgKmNsazsKK307CisKK2ludCBvbWFwX21jYnNwX2luaXQodm9pZCk7Cit2b2lkIG9tYXBfbWNic3BfcmVnaXN0ZXJfYm9hcmRfY2ZnKHN0cnVjdCBvbWFwX21jYnNwX3BsYXRmb3JtX2RhdGEgKmNvbmZpZywKKwkJCQkJaW50IHNpemUpOwogdm9pZCBvbWFwX21jYnNwX2NvbmZpZyh1bnNpZ25lZCBpbnQgaWQsIGNvbnN0IHN0cnVjdCBvbWFwX21jYnNwX3JlZ19jZmcgKiBjb25maWcpOwogaW50IG9tYXBfbWNic3BfcmVxdWVzdCh1bnNpZ25lZCBpbnQgaWQpOwogdm9pZCBvbWFwX21jYnNwX2ZyZWUodW5zaWduZWQgaW50IGlkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvb21hcDM0eHguaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvb21hcDM0eHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTMwYzZkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC9vbWFwMzR4eC5oCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL29tYXAzNHh4LmgKKyAqCisgKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIHByb2Nlc3NvciBzcGVjaWZpYyBkZWZpbml0aW9ucyBvZiB0aGUgVEkgT01BUDM0WFguCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3IFRleGFzIEluc3RydW1lbnRzLgorICogQ29weXJpZ2h0IChDKSAyMDA3IE5va2lhIENvcnBvcmF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKyAqLworCisjaWZuZGVmIF9fQVNNX0FSQ0hfT01BUDM0WFhfSAorI2RlZmluZSBfX0FTTV9BUkNIX09NQVAzNFhYX0gKKworLyoKKyAqIFBsZWFzZSBwbGFjZSBvbmx5IGJhc2UgZGVmaW5lcyBoZXJlIGFuZCBwdXQgdGhlIHJlc3QgaW4gZGV2aWNlCisgKiBzcGVjaWZpYyBoZWFkZXJzLgorICovCisKKyNkZWZpbmUgTDRfMzRYWF9CQVNFCQkweDQ4MDAwMDAwCisjZGVmaW5lIEw0X1dLXzM0WFhfQkFTRQkJMHg0ODMwMDAwMAorI2RlZmluZSBMNF9XS19PTUFQX0JBU0UJCUw0X1dLXzM0WFhfQkFTRQorI2RlZmluZSBMNF9QRVJfMzRYWF9CQVNFCTB4NDkwMDAwMDAKKyNkZWZpbmUgTDRfUEVSX09NQVBfQkFTRQlMNF9QRVJfMzRYWF9CQVNFCisjZGVmaW5lIEw0X0VNVV8zNFhYX0JBU0UJMHg1NDAwMDAwMAorI2RlZmluZSBMNF9FTVVfQkFTRQkJTDRfRU1VXzM0WFhfQkFTRQorI2RlZmluZSBMM18zNFhYX0JBU0UJCTB4NjgwMDAwMDAKKyNkZWZpbmUgTDNfT01BUF9CQVNFCQlMM18zNFhYX0JBU0UKKworI2RlZmluZSBPTUFQMzQzMF8zMktTWU5DVF9CQVNFCTB4NDgzMjAwMDAKKyNkZWZpbmUgT01BUDM0MzBfQ01fQkFTRQkweDQ4MDA0ODAwCisjZGVmaW5lIE9NQVAzNDMwX1BSTV9CQVNFCTB4NDgzMDY4MDAKKyNkZWZpbmUgT01BUDM0M1hfU01TX0JBU0UJMHg2QzAwMDAwMAorI2RlZmluZSBPTUFQMzQzWF9TRFJDX0JBU0UJMHg2RDAwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9HUE1DX0JBU0UJMHg2RTAwMDAwMAorI2RlZmluZSBPTUFQMzQzWF9TQ01fQkFTRQkweDQ4MDAyMDAwCisjZGVmaW5lIE9NQVAzNDNYX0NUUkxfQkFTRQlPTUFQMzQzWF9TQ01fQkFTRQorCisjZGVmaW5lIE9NQVAzNFhYX0lDX0JBU0UJMHg0ODIwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9JVkFfSU5UQ19CQVNFCTB4NDAwMDAwMDAKKyNkZWZpbmUgT01BUDM0WFhfSFNVU0JfT1RHX0JBU0UJKEw0XzM0WFhfQkFTRSArIDB4QUIwMDApCisjZGVmaW5lIE9NQVAzNFhYX0hTVVNCX0hPU1RfQkFTRQkoTDRfMzRYWF9CQVNFICsgMHg2NDAwMCkKKyNkZWZpbmUgT01BUDM0WFhfVVNCVExMX0JBU0UJKEw0XzM0WFhfQkFTRSArIDB4NjIwMDApCisKKworI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfT01BUDM0MzApCisKKyNkZWZpbmUgT01BUDJfMzJLU1lOQ1RfQkFTRQkJT01BUDM0MzBfMzJLU1lOQ1RfQkFTRQorI2RlZmluZSBPTUFQMl9DTV9CQVNFCQkJT01BUDM0MzBfQ01fQkFTRQorI2RlZmluZSBPTUFQMl9QUk1fQkFTRQkJCU9NQVAzNDMwX1BSTV9CQVNFCisjZGVmaW5lIE9NQVAyX1ZBX0lDX0JBU0UJCUlPX0FERFJFU1MoT01BUDM0WFhfSUNfQkFTRSkKKworI2VuZGlmCisKKyNkZWZpbmUgT01BUDM0WFhfRFNQX0JBU0UJMHg1ODAwMDAwMAorI2RlZmluZSBPTUFQMzRYWF9EU1BfTUVNX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgwKQorI2RlZmluZSBPTUFQMzRYWF9EU1BfSVBJX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgxMDAwMDAwKQorI2RlZmluZSBPTUFQMzRYWF9EU1BfTU1VX0JBU0UJKE9NQVAzNFhYX0RTUF9CQVNFICsgMHgyMDAwMDAwKQorI2VuZGlmIC8qIF9fQVNNX0FSQ0hfT01BUDM0WFhfSCAqLworCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3NyYW0uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCmluZGV4IGJiOWJiM2YuLmJlNTlmNGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvc3JhbS5oCkBAIC0xMSw2ICsxMSw3IEBACiAjaWZuZGVmIF9fQVJDSF9BUk1fT01BUF9TUkFNX0gKICNkZWZpbmUgX19BUkNIX0FSTV9PTUFQX1NSQU1fSAogCitleHRlcm4gaW50IF9faW5pdCBvbWFwX3NyYW1faW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkICogb21hcF9zcmFtX3B1c2godm9pZCAqIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUpOwogZXh0ZXJuIHZvaWQgb21hcF9zcmFtX3JlcHJvZ3JhbV9jbG9jayh1MzIgZHBsbGN0bCwgdTMyIGNrY3RsKTsKIApAQCAtMjEsMTcgKzIyLDM1IEBACiBleHRlcm4gdTMyIG9tYXAyX3NldF9wcmNtKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLCBpbnQgYnlwYXNzKTsKIAogLyogRG8gbm90IHVzZSB0aGVzZSAqLwotZXh0ZXJuIHZvaWQgc3JhbV9yZXByb2dyYW1fY2xvY2sodTMyIGNrY3RsLCB1MzIgZHBsbGN0bCk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3JlcHJvZ3JhbV9jbG9ja19zejsKK2V4dGVybiB2b2lkIG9tYXAxX3NyYW1fcmVwcm9ncmFtX2Nsb2NrKHUzMiBja2N0bCwgdTMyIGRwbGxjdGwpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDFfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3o7CiAKLWV4dGVybiB2b2lkIHNyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKLQkJCSAgdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3JhbV9kZHJfaW5pdF9zejsKK2V4dGVybiB2b2lkIG9tYXAyNHh4X3NyYW1fcmVwcm9ncmFtX2Nsb2NrKHUzMiBja2N0bCwgdTMyIGRwbGxjdGwpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0eHhfc3JhbV9yZXByb2dyYW1fY2xvY2tfc3o7CiAKLWV4dGVybiB1MzIgc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwgaW50IGJ5cGFzcyk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3NldF9wcmNtX3N6OworZXh0ZXJuIHZvaWQgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdCh1MzIgKnNsb3dfZGxsX2N0cmwsIHUzMiBmYXN0X2RsbF9jdHJsLAorCQkJCQkJdTMyIGJhc2VfY3MsIHUzMiBmb3JjZV91bmxvY2spOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0Mnhfc3JhbV9kZHJfaW5pdF9zejsKIAotZXh0ZXJuIHZvaWQgc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsIHUzMiBtZW1fdHlwZSk7Ci1leHRlcm4gdW5zaWduZWQgbG9uZyBzcmFtX3JlcHJvZ3JhbV9zZHJjX3N6OworZXh0ZXJuIHUzMiBvbWFwMjQyeF9zcmFtX3NldF9wcmNtKHUzMiBkcGxsX2N0cmxfdmFsLCB1MzIgc2RyY19yZnJfdmFsLAorCQkJCQkJaW50IGJ5cGFzcyk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFtX3NldF9wcmNtX3N6OworCitleHRlcm4gdm9pZCBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjKHUzMiBwZXJmX2xldmVsLCB1MzIgZGxsX3ZhbCwKKwkJCQkJCXUzMiBtZW1fdHlwZSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBvbWFwMjQyeF9zcmFtX3JlcHJvZ3JhbV9zZHJjX3N6OworCisKK2V4dGVybiB2b2lkIG9tYXAyNDN4X3NyYW1fZGRyX2luaXQodTMyICpzbG93X2RsbF9jdHJsLCB1MzIgZmFzdF9kbGxfY3RybCwKKwkJCQkJCXUzMiBiYXNlX2NzLCB1MzIgZm9yY2VfdW5sb2NrKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIG9tYXAyNDN4X3NyYW1fZGRyX2luaXRfc3o7CisKK2V4dGVybiB1MzIgb21hcDI0M3hfc3JhbV9zZXRfcHJjbSh1MzIgZHBsbF9jdHJsX3ZhbCwgdTMyIHNkcmNfcmZyX3ZhbCwKKwkJCQkJCWludCBieXBhc3MpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hfc3JhbV9zZXRfcHJjbV9zejsKKworZXh0ZXJuIHZvaWQgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyYyh1MzIgcGVyZl9sZXZlbCwgdTMyIGRsbF92YWwsCisJCQkJCQl1MzIgbWVtX3R5cGUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgb21hcDI0M3hfc3JhbV9yZXByb2dyYW1fc2RyY19zejsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3RjLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3RjLmgKaW5kZXggOGRlZDIxOC4uNjVhOWM4MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC90Yy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdGMuaApAQCAtNzUsMTYgKzc1LDE0IEBACiAjaWZuZGVmCV9fQVNTRU1CTEVSX18KIAogLyogRU1JRiBTbG93IEludGVyZmFjZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lCU9NQVBfRU1JRlNfQ09ORklHX1JFRwlfX1JFRzMyKEVNSUZTX0NPTkZJRykKLQogI2RlZmluZSBPTUFQX0VNSUZTX0NPTkZJR19GUgkJKDEgPDwgNCkKICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfUERFCQkoMSA8PCAzKQogI2RlZmluZSBPTUFQX0VNSUZTX0NPTkZJR19QV0RfRU4JKDEgPDwgMikKICNkZWZpbmUgT01BUF9FTUlGU19DT05GSUdfQk0JCSgxIDw8IDEpCiAjZGVmaW5lIE9NQVBfRU1JRlNfQ09ORklHX1dQCQkoMSA8PCAwKQogCi0jZGVmaW5lIEVNSUZTX0NDUyhuKQkJX19SRUczMihFTUlGU19DUzBfQ09ORklHICsgKDQgKiAobikpKQotI2RlZmluZSBFTUlGU19BQ1MobikJCV9fUkVHMzIoRU1JRlNfQUNTMCArICg0ICogKG4pKSkKKyNkZWZpbmUgRU1JRlNfQ0NTKG4pCQkoRU1JRlNfQ1MwX0NPTkZJRyArICg0ICogKG4pKSkKKyNkZWZpbmUgRU1JRlNfQUNTKG4pCQkoRU1JRlNfQUNTMCArICg0ICogKG4pKSkKIAogLyogQWxtb3N0IGFsbCBkb2N1bWVudGF0aW9uIGZvciBjaGlwIGFuZCBib2FyZCBtZW1vcnkgbWFwcyBhc3N1bWVzCiAgKiBCTSBpcyBjbGVhci4gIE1vc3QgZGV2ZWwgYm9hcmRzIGhhdmUgYSBzd2l0Y2ggdG8gY29udHJvbCBib290aW5nCkBAIC05MywxMyArOTEsMTMgQEAKICAqLwogc3RhdGljIGlubGluZSB1MzIgb21hcF9jczBfcGh5cyh2b2lkKQogewotCXJldHVybiAoT01BUF9FTUlGU19DT05GSUdfUkVHICYgT01BUF9FTUlGU19DT05GSUdfQk0pCisJcmV0dXJuIChvbWFwX3JlYWRsKEVNSUZTX0NPTkZJRykgJiBPTUFQX0VNSUZTX0NPTkZJR19CTSkKIAkJCT8gIE9NQVBfQ1MzX1BIWVMgOiAwOwogfQogCiBzdGF0aWMgaW5saW5lIHUzMiBvbWFwX2NzM19waHlzKHZvaWQpCiB7Ci0JcmV0dXJuIChPTUFQX0VNSUZTX0NPTkZJR19SRUcgJiBPTUFQX0VNSUZTX0NPTkZJR19CTSkKKwlyZXR1cm4gKG9tYXBfcmVhZGwoRU1JRlNfQ09ORklHKSAmIE9NQVBfRU1JRlNfQ09ORklHX0JNKQogCQkJPyAwIDogT01BUF9DUzNfUEhZUzsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC91c2IuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9tYXAvdXNiLmgKaW5kZXggMjE0N2QxOC4uZGRmMTg2MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb21hcC91c2IuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vbWFwL3VzYi5oCkBAIC0zNCwxMSArMzQsOCBAQAogLyoKICAqIE9URyBhbmQgdHJhbnNjZWl2ZXIgcmVnaXN0ZXJzLCBmb3IgT01BUHMgc3RhcnRpbmcgd2l0aCBBUk05MjYKICAqLwotI2RlZmluZSBPVEdfUkVHMzIob2Zmc2V0KQkJX19SRUczMihPVEdfQkFTRSArIChvZmZzZXQpKQotI2RlZmluZSBPVEdfUkVHMTYob2Zmc2V0KQkJX19SRUcxNihPVEdfQkFTRSArIChvZmZzZXQpKQotCi0jZGVmaW5lIE9UR19SRVZfUkVHCQkJT1RHX1JFRzMyKDB4MDApCi0jZGVmaW5lIE9UR19TWVNDT05fMV9SRUcJCU9UR19SRUczMigweDA0KQorI2RlZmluZSBPVEdfUkVWCQkJCShPVEdfQkFTRSArIDB4MDApCisjZGVmaW5lIE9UR19TWVNDT05fMQkJCShPVEdfQkFTRSArIDB4MDQpCiAjCWRlZmluZQkgVVNCMl9UUlhfTU9ERSh3KQkoKCh3KT4+MjQpJjB4MDcpCiAjCWRlZmluZQkgVVNCMV9UUlhfTU9ERSh3KQkoKCh3KT4+MjApJjB4MDcpCiAjCWRlZmluZQkgVVNCMF9UUlhfTU9ERSh3KQkoKCh3KT4+MTYpJjB4MDcpCkBAIC00Nyw3ICs0NCw3IEBACiAjCWRlZmluZQkgREVWX0lETEVfRU4JCSgxIDw8IDEzKQogIwlkZWZpbmUJIE9UR19SRVNFVF9ET05FCQkoMSA8PCAyKQogIwlkZWZpbmUJIE9UR19TT0ZUX1JFU0VUCQkoMSA8PCAxKQotI2RlZmluZSBPVEdfU1lTQ09OXzJfUkVHCQlPVEdfUkVHMzIoMHgwOCkKKyNkZWZpbmUgT1RHX1NZU0NPTl8yCQkJKE9UR19CQVNFICsgMHgwOCkKICMJZGVmaW5lCSBPVEdfRU4JCQkoMSA8PCAzMSkKICMJZGVmaW5lCSBVU0JYX1NZTkNIUk8JCSgxIDw8IDMwKQogIwlkZWZpbmUJIE9UR19NU1QxNgkJKDEgPDwgMjkpCkBAIC02NSw3ICs2Miw3IEBACiAjCWRlZmluZQkgSE1DX1RMTFNQRUVECQkoMSA8PCA3KQogIwlkZWZpbmUJIEhNQ19UTExBVFRBQ0gJCSgxIDw8IDYpCiAjCWRlZmluZQkgT1RHX0hNQyh3KQkJKCgodyk+PjApJjB4M2YpCi0jZGVmaW5lIE9UR19DVFJMX1JFRwkJCU9UR19SRUczMigweDBjKQorI2RlZmluZSBPVEdfQ1RSTAkJCShPVEdfQkFTRSArIDB4MGMpCiAjCWRlZmluZQkgT1RHX1VTQjJfRU4JCSgxIDw8IDI5KQogIwlkZWZpbmUJIE9UR19VU0IyX0RQCQkoMSA8PCAyOCkKICMJZGVmaW5lCSBPVEdfVVNCMl9ETQkJKDEgPDwgMjcpCkBAIC05Miw3ICs4OSw3IEBACiAjCWRlZmluZQkgT1RHX1BEX1ZCVVMJCSgxIDw8IDIpCiAjCWRlZmluZQkgT1RHX1BVX1ZCVVMJCSgxIDw8IDEpCiAjCWRlZmluZQkgT1RHX1BVX0lECQkoMSA8PCAwKQotI2RlZmluZSBPVEdfSVJRX0VOX1JFRwkJCU9UR19SRUcxNigweDEwKQorI2RlZmluZSBPVEdfSVJRX0VOCQkJKE9UR19CQVNFICsgMHgxMCkJLyogMTYtYml0ICovCiAjCWRlZmluZQkgRFJJVkVSX1NXSVRDSAkJKDEgPDwgMTUpCiAjCWRlZmluZQkgQV9WQlVTX0VSUgkJKDEgPDwgMTMpCiAjCWRlZmluZQkgQV9SRVFfVE1ST1VUCQkoMSA8PCAxMikKQEAgLTEwMiw5ICs5OSw5IEBACiAjCWRlZmluZQkgQl9TUlBfRE9ORQkJKDEgPDwgOCkKICMJZGVmaW5lCSBCX1NSUF9TVEFSVEVECQkoMSA8PCA3KQogIwlkZWZpbmUJIE9QUlRfQ0hHCQkoMSA8PCAwKQotI2RlZmluZSBPVEdfSVJRX1NSQ19SRUcJCQlPVEdfUkVHMTYoMHgxNCkKKyNkZWZpbmUgT1RHX0lSUV9TUkMJCQkoT1RHX0JBU0UgKyAweDE0KQkvKiAxNi1iaXQgKi8KIAkvLyBzYW1lIGJpdHMgYXMgaW4gSVJRX0VOCi0jZGVmaW5lIE9UR19PVVRDVFJMX1JFRwkJCU9UR19SRUcxNigweDE4KQorI2RlZmluZSBPVEdfT1VUQ1RSTAkJCShPVEdfQkFTRSArIDB4MTgpCS8qIDE2LWJpdCAqLwogIwlkZWZpbmUJIE9UR1ZQRAkJCSgxIDw8IDE0KQogIwlkZWZpbmUJIE9UR1ZQVQkJCSgxIDw8IDEzKQogIwlkZWZpbmUJIE9UR1BVSUQJCSgxIDw8IDEyKQpAQCAtMTE3LDEzICsxMTQsMTMgQEAKICMJZGVmaW5lCSBVU0IwVkRSCQkoMSA8PCAyKQogIwlkZWZpbmUJIFVTQjBQREVOCQkoMSA8PCAxKQogIwlkZWZpbmUJIFVTQjBQVUVOCQkoMSA8PCAwKQotI2RlZmluZSBPVEdfVEVTVF9SRUcJCQlPVEdfUkVHMTYoMHgyMCkKLSNkZWZpbmUgT1RHX1ZFTkRPUl9DT0RFX1JFRwkJT1RHX1JFRzMyKDB4ZmMpCisjZGVmaW5lIE9UR19URVNUCQkJKE9UR19CQVNFICsgMHgyMCkJLyogMTYtYml0ICovCisjZGVmaW5lIE9UR19WRU5ET1JfQ09ERQkJCShPVEdfQkFTRSArIDB4ZmMpCS8qIDE2LWJpdCAqLwogCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiAvKiBPTUFQMSAqLwotI2RlZmluZQlVU0JfVFJBTlNDRUlWRVJfQ1RSTF9SRUcJX19SRUczMigweGZmZmUxMDAwICsgMHgwMDY0KQorI2RlZmluZQlVU0JfVFJBTlNDRUlWRVJfQ1RSTAkJKDB4ZmZmZTEwMDAgKyAweDAwNjQpCiAjCWRlZmluZQlDT05GX1VTQjJfVU5JX1IJCSgxIDw8IDgpCiAjCWRlZmluZQlDT05GX1VTQjFfVU5JX1IJCSgxIDw8IDcpCiAjCWRlZmluZQlDT05GX1VTQl9QT1JUMF9SKHgpCSgoKHgpPj40KSYweDcpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L2lvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L2lvLmgKaW5kZXggNTBmOGM4OC4uNTlmMWJjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9pby5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvaW8uaApAQCAtMTQsNyArMTQsNiBAQAogI2luY2x1ZGUgIm9yaW9uNXguaCIKIAogI2RlZmluZSBJT19TUEFDRV9MSU1JVAkJMHhmZmZmZmZmZgotI2RlZmluZSBJT19TUEFDRV9SRU1BUAkJT1JJT041WF9QQ0lfU1lTX0lPX0JBU0UKIAogc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKgogX19hcmNoX2lvcmVtYXAodW5zaWduZWQgbG9uZyBwYWRkciwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGludCBtdHlwZSkKQEAgLTUzLDE1ICs1MiwxMiBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBIZWxwZXJzIHRvIGFjY2VzcyBPcmlvbiByZWdpc3RlcnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBvcmlvbjV4X3JlYWQocikJCV9fcmF3X3JlYWRsKHIpCi0jZGVmaW5lIG9yaW9uNXhfd3JpdGUociwgdmFsKQlfX3Jhd193cml0ZWwodmFsLCByKQotCiAvKgogICogVGhlc2UgYXJlIG5vdCBwcmVlbXB0LXNhZmUuICBMb2NrcywgaWYgbmVlZGVkLCBtdXN0IGJlIHRha2VuCiAgKiBjYXJlIG9mIGJ5IHRoZSBjYWxsZXIuCiAgKi8KLSNkZWZpbmUgb3Jpb241eF9zZXRiaXRzKHIsIG1hc2spCW9yaW9uNXhfd3JpdGUoKHIpLCBvcmlvbjV4X3JlYWQocikgfCAobWFzaykpCi0jZGVmaW5lIG9yaW9uNXhfY2xyYml0cyhyLCBtYXNrKQlvcmlvbjV4X3dyaXRlKChyKSwgb3Jpb241eF9yZWFkKHIpICYgfihtYXNrKSkKKyNkZWZpbmUgb3Jpb241eF9zZXRiaXRzKHIsIG1hc2spCXdyaXRlbChyZWFkbChyKSB8IChtYXNrKSwgKHIpKQorI2RlZmluZSBvcmlvbjV4X2NscmJpdHMociwgbWFzaykJd3JpdGVsKHJlYWRsKHIpICYgfihtYXNrKSwgKHIpKQogCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtb3Jpb241eC9vcmlvbjV4LmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaAppbmRleCAyMDZkZGQ3Li4xMDI1N2Y1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L29yaW9uNXguaApAQCAtMiw3ICsyLDcgQEAKICAqIGluY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvb3Jpb241eC5oCiAgKgogICogR2VuZXJpYyBkZWZpbml0aW9ucyBvZiBPcmlvbiBTb0MgZmxhdm9yczoKLSAqICBPcmlvbi0xLCBPcmlvbi1OQVMsIE9yaW9uLVZvSVAsIGFuZCBPcmlvbi0yLgorICogIE9yaW9uLTEsIE9yaW9uLVZvSVAsIE9yaW9uLU5BUywgYW5kIE9yaW9uLTIuCiAgKgogICogTWFpbnRhaW5lcjogVHphY2hpIFBlcmVsc3RlaW4gPHR6YWNoaUBtYXJ2ZWxsLmNvbT4KICAqCkBAIC02Myw5ICs2MywxMSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIFN1cHBvcnRlZCBEZXZpY2VzICYgUmV2aXNpb25zCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyogT3Jpb24tMSAoODhGNTE4MSkgKi8KKy8qIE9yaW9uLTEgKDg4RjUxODEpIGFuZCBPcmlvbi1Wb0lQICg4OEY1MTgxTCkgKi8KICNkZWZpbmUgTVY4OEY1MTgxX0RFVl9JRAkweDUxODEKICNkZWZpbmUgTVY4OEY1MTgxX1JFVl9CMQkzCisjZGVmaW5lIE1WODhGNTE4MUxfUkVWX0EwCTgKKyNkZWZpbmUgTVY4OEY1MTgxTF9SRVZfQTEJOQogLyogT3Jpb24tTkFTICg4OEY1MTgyKSAqLwogI2RlZmluZSBNVjg4RjUxODJfREVWX0lECTB4NTE4MgogI2RlZmluZSBNVjg4RjUxODJfUkVWX0EyCTIKQEAgLTE1Miw2ICsxNTQsNyBAQAogI2RlZmluZSBCUklER0VfTUFTSwkJT1JJT041WF9CUklER0VfUkVHKDB4MTE0KQogI2RlZmluZSAgQlJJREdFX0lOVF9USU1FUjAJMHgwMDAyCiAjZGVmaW5lICBCUklER0VfSU5UX1RJTUVSMQkweDAwMDQKKyNkZWZpbmUgIEJSSURHRV9JTlRfVElNRVIxX0NMUgkofjB4MDAwNCkKICNkZWZpbmUgTUFJTl9JUlFfQ0FVU0UJCU9SSU9ONVhfQlJJREdFX1JFRygweDIwMCkKICNkZWZpbmUgTUFJTl9JUlFfTUFTSwkJT1JJT041WF9CUklER0VfUkVHKDB4MjA0KQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1vcmlvbjV4L3VuY29tcHJlc3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCmluZGV4IDVjMTNkNGYuLjc1NDhjZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLW9yaW9uNXgvdW5jb21wcmVzcy5oCkBAIC04LDIzICs4LDM4IEBACiAgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgKi8KIAorI2luY2x1ZGUgPGxpbnV4L3NlcmlhbF9yZWcuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9vcmlvbjV4Lmg+CiAKLSNkZWZpbmUgTVZfVUFSVF9USFIJKCh2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICopKFVBUlQwX1BIWVNfQkFTRSArIDB4MCkpCi0jZGVmaW5lIE1WX1VBUlRfTFNSIAkoKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKikoVUFSVDBfUEhZU19CQVNFICsgMHgxNCkpCi0KLSNkZWZpbmUgTFNSX1RIUkUJMHgyMAorI2RlZmluZSBTRVJJQUxfQkFTRQkoKHVuc2lnbmVkIGNoYXIgKilVQVJUMF9QSFlTX0JBU0UpCiAKIHN0YXRpYyB2b2lkIHB1dGMoY29uc3QgY2hhciBjKQogewotCWludCBqID0gMHgxMDAwOwotCXdoaWxlICgtLWogJiYgISgqTVZfVUFSVF9MU1IgJiBMU1JfVEhSRSkpCisJdW5zaWduZWQgY2hhciAqYmFzZSA9IFNFUklBTF9CQVNFOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDB4MTAwMDsgaSsrKSB7CisJCWlmIChiYXNlW1VBUlRfTFNSIDw8IDJdICYgVUFSVF9MU1JfVEhSRSkKKwkJCWJyZWFrOwogCQliYXJyaWVyKCk7Ci0JKk1WX1VBUlRfVEhSID0gYzsKKwl9CisKKwliYXNlW1VBUlRfVFggPDwgMl0gPSBjOwogfQogCiBzdGF0aWMgdm9pZCBmbHVzaCh2b2lkKQogeworCXVuc2lnbmVkIGNoYXIgKmJhc2UgPSBTRVJJQUxfQkFTRTsKKwl1bnNpZ25lZCBjaGFyIG1hc2s7CisJaW50IGk7CisKKwltYXNrID0gVUFSVF9MU1JfVEVNVCB8IFVBUlRfTFNSX1RIUkU7CisKKwlmb3IgKGkgPSAwOyBpIDwgMHgxMDAwOyBpKyspIHsKKwkJaWYgKChiYXNlW1VBUlRfTFNSIDw8IDJdICYgbWFzaykgPT0gbWFzaykKKwkJCWJyZWFrOworCQliYXJyaWVyKCk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2F1ZGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaAppbmRleCA1MmJiZTNiLi5mODJmOTZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvYXVkaW8uaApAQCAtMTIsNCArMTIsNiBAQAogCXZvaWQgKnByaXY7CiB9IHB4YTJ4eF9hdWRpb19vcHNfdDsKIAorZXh0ZXJuIHZvaWQgcHhhX3NldF9hYzk3X2luZm8ocHhhMnh4X2F1ZGlvX29wc190ICpvcHMpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9oYXJkd2FyZS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKaW5kZXggZTI1NTU4Zi4uZDlhZjZkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2hhcmR3YXJlLmgKQEAgLTE5MiwxNSArMTkyLDYgQEAKIGV4dGVybiB2b2lkIHB4YV9ncGlvX3NldF92YWx1ZSh1bnNpZ25lZCBncGlvLCBpbnQgdmFsdWUpOwogCiAvKgotICogUm91dGluZSB0byBlbmFibGUgb3IgZGlzYWJsZSBDS0VOCi0gKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2RlcHJlY2F0ZWQgcHhhX3NldF9ja2VuKGludCBjbG9jaywgaW50IGVuYWJsZSkKLXsKLQlleHRlcm4gdm9pZCBfX3B4YV9zZXRfY2tlbihpbnQgY2xvY2ssIGludCBlbmFibGUpOwotCV9fcHhhX3NldF9ja2VuKGNsb2NrLCBlbmFibGUpOwotfQotCi0vKgogICogcmV0dXJuIGN1cnJlbnQgbWVtb3J5IGFuZCBMQ0QgY2xvY2sgZnJlcXVlbmN5IGluIHVuaXRzIG9mIDEwa0h6CiAgKi8KIGV4dGVybiB1bnNpZ25lZCBpbnQgZ2V0X21lbWNsa19mcmVxdWVuY3lfMTBraHoodm9pZCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaXJkYS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL2lyZGEuaAppbmRleCA5OWY0ZjQyLi4wYTUwYzNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvaXJkYS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9pcmRhLmgKQEAgLTE2LDQgKzE2LDggQEAKIAogZXh0ZXJuIHZvaWQgcHhhX3NldF9maWNwX2luZm8oc3RydWN0IHB4YWZpY3BfcGxhdGZvcm1fZGF0YSAqaW5mbyk7CiAKKyNpZiBkZWZpbmVkKENPTkZJR19QWEEyNXgpIHx8IGRlZmluZWQoQ09ORklHX1BYQTI3eCkKK3ZvaWQgcHhhMnh4X3RyYW5zY2VpdmVyX21vZGUoc3RydWN0IGRldmljZSAqZGV2LCBpbnQgbW9kZSk7CisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvbWZwLXB4YTI3eC5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL21mcC1weGEyN3guaAppbmRleCBlYjZlYWExLi5iYzczYWI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvbWZwLXB4YTI3eC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9tZnAtcHhhMjd4LmgKQEAgLTExMiw2ICsxMTIsNyBAQAogI2RlZmluZSBHUElPNTdfbklPSVMxNgkJTUZQX0NGR19JTihHUElPNTcsIEFGMSkKICNkZWZpbmUgR1BJTzU2X25QV0FJVAkJTUZQX0NGR19JTihHUElPNTYsIEFGMSkKICNkZWZpbmUgR1BJTzc5X1BTS1RTRUwJCU1GUF9DRkdfT1VUKEdQSU83OSwgQUYxLCBEUklWRV9ISUdIKQorI2RlZmluZSBHUElPMTA0X1BTS1RTRUwJCU1GUF9DRkdfT1VUKEdQSU8xMDQsIEFGMSwgRFJJVkVfSElHSCkKIAogLyogSTJDICovCiAjZGVmaW5lIEdQSU8xMTdfSTJDX1NDTAkJTUZQX0NGR19JTihHUElPMTE3LCBBRjEpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhLXJlZ3MuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCmluZGV4IDRiMmVhMWUuLmRjZTkzMDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEtcmVncy5oCkBAIC02MDAsNDE4ICs2MDAsNiBAQAogCiAKIC8qCi0gKiBVU0IgRGV2aWNlIENvbnRyb2xsZXIKLSAqIFBYQTI1eCBhbmQgUFhBMjd4IFVTQiBkZXZpY2UgY29udHJvbGxlciByZWdpc3RlcnMgYXJlIGRpZmZlcmVudC4KLSAqLwotI2lmIGRlZmluZWQoQ09ORklHX1BYQTI1eCkKLQotI2RlZmluZSBVRENfUkVTMQlfX1JFRygweDQwNjAwMDA0KSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMSAqLwotI2RlZmluZSBVRENfUkVTMglfX1JFRygweDQwNjAwMDA4KSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMiAqLwotI2RlZmluZSBVRENfUkVTMwlfX1JFRygweDQwNjAwMDBDKSAgLyogVURDIFVuZG9jdW1lbnRlZCAtIFJlc2VydmVkMyAqLwotCi0jZGVmaW5lIFVEQ0NSCQlfX1JFRygweDQwNjAwMDAwKSAgLyogVURDIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1JfVURFCSgxIDw8IDApCS8qIFVEQyBlbmFibGUgKi8KLSNkZWZpbmUgVURDQ1JfVURBCSgxIDw8IDEpCS8qIFVEQyBhY3RpdmUgKi8KLSNkZWZpbmUgVURDQ1JfUlNNCSgxIDw8IDIpCS8qIERldmljZSByZXN1bWUgKi8KLSNkZWZpbmUgVURDQ1JfUkVTSVIJKDEgPDwgMykJLyogUmVzdW1lIGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVEQ0NSX1NVU0lSCSgxIDw8IDQpCS8qIFN1c3BlbmQgaW50ZXJydXB0IHJlcXVlc3QgKi8KLSNkZWZpbmUgVURDQ1JfU1JNCSgxIDw8IDUpCS8qIFN1c3BlbmQvcmVzdW1lIGludGVycnVwdCBtYXNrICovCi0jZGVmaW5lIFVEQ0NSX1JTVElSCSgxIDw8IDYpCS8qIFJlc2V0IGludGVycnVwdCByZXF1ZXN0ICovCi0jZGVmaW5lIFVEQ0NSX1JFTQkoMSA8PCA3KQkvKiBSZXNldCBpbnRlcnJ1cHQgbWFzayAqLwotCi0jZGVmaW5lIFVEQ0NTMAkJX19SRUcoMHg0MDYwMDAxMCkgIC8qIFVEQyBFbmRwb2ludCAwIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMF9PUFIJKDEgPDwgMCkJLyogT1VUIHBhY2tldCByZWFkeSAqLwotI2RlZmluZSBVRENDUzBfSVBSCSgxIDw8IDEpCS8qIElOIHBhY2tldCByZWFkeSAqLwotI2RlZmluZSBVRENDUzBfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1MwX0RSV0YJKDEgPDwgMykJLyogRGV2aWNlIHJlbW90ZSB3YWtldXAgZmVhdHVyZSAqLwotI2RlZmluZSBVRENDUzBfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1MwX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLwotI2RlZmluZSBVRENDUzBfUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBubyBlbXB0eSAqLwotI2RlZmluZSBVRENDUzBfU0EJKDEgPDwgNykJLyogU2V0dXAgYWN0aXZlICovCi0KLS8qIEJ1bGsgSU4gLSBFbmRwb2ludCAxLDYsMTEgKi8KLSNkZWZpbmUgVURDQ1MxCQlfX1JFRygweDQwNjAwMDE0KSAgLyogVURDIEVuZHBvaW50IDEgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzYJCV9fUkVHKDB4NDA2MDAwMjgpICAvKiBVREMgRW5kcG9pbnQgNiAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ0NTMTEJCV9fUkVHKDB4NDA2MDAwM0MpICAvKiBVREMgRW5kcG9pbnQgMTEgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0JJX1RGUwkoMSA8PCAwKQkvKiBUcmFuc21pdCBGSUZPIHNlcnZpY2UgKi8KLSNkZWZpbmUgVURDQ1NfQklfVFBDCSgxIDw8IDEpCS8qIFRyYW5zbWl0IHBhY2tldCBjb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU19CSV9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLwotI2RlZmluZSBVRENDU19CSV9UVVIJKDEgPDwgMykJLyogVHJhbnNtaXQgRklGTyB1bmRlcnJ1biAqLwotI2RlZmluZSBVRENDU19CSV9TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLwotI2RlZmluZSBVRENDU19CSV9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQklfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0vKiBCdWxrIE9VVCAtIEVuZHBvaW50IDIsNywxMiAqLwotI2RlZmluZSBVRENDUzIJCV9fUkVHKDB4NDA2MDAwMTgpICAvKiBVREMgRW5kcG9pbnQgMiAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzcJCV9fUkVHKDB4NDA2MDAwMkMpICAvKiBVREMgRW5kcG9pbnQgNyAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzEyCQlfX1JFRygweDQwNjAwMDQwKSAgLyogVURDIEVuZHBvaW50IDEyIChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVURDQ1NfQk9fUkZTCSgxIDw8IDApCS8qIFJlY2VpdmUgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0JPX1JQQwkoMSA8PCAxKQkvKiBSZWNlaXZlIHBhY2tldCBjb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU19CT19ETUUJKDEgPDwgMykJLyogRE1BIGVuYWJsZSAqLwotI2RlZmluZSBVRENDU19CT19TU1QJKDEgPDwgNCkJLyogU2VudCBzdGFsbCAqLwotI2RlZmluZSBVRENDU19CT19GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfQk9fUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBub3QgZW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NfQk9fUlNQCSgxIDw8IDcpCS8qIFJlY2VpdmUgc2hvcnQgcGFja2V0ICovCi0KLS8qIElzb2Nocm9ub3VzIElOIC0gRW5kcG9pbnQgMyw4LDEzICovCi0jZGVmaW5lIFVEQ0NTMwkJX19SRUcoMHg0MDYwMDAxQykgIC8qIFVEQyBFbmRwb2ludCAzIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M4CQlfX1JFRygweDQwNjAwMDMwKSAgLyogVURDIEVuZHBvaW50IDggKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzEzCQlfX1JFRygweDQwNjAwMDQ0KSAgLyogVURDIEVuZHBvaW50IDEzIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVRENDU19JSV9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCi0jZGVmaW5lIFVEQ0NTX0lJX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSUlfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1NfSUlfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KLSNkZWZpbmUgVURDQ1NfSUlfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0vKiBJc29jaHJvbm91cyBPVVQgLSBFbmRwb2ludCA0LDksMTQgKi8KLSNkZWZpbmUgVURDQ1M0CQlfX1JFRygweDQwNjAwMDIwKSAgLyogVURDIEVuZHBvaW50IDQgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1M5CQlfX1JFRygweDQwNjAwMDM0KSAgLyogVURDIEVuZHBvaW50IDkgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxNAkJX19SRUcoMHg0MDYwMDA0OCkgIC8qIFVEQyBFbmRwb2ludCAxNCAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVEQ0NTX0lPX1JGUwkoMSA8PCAwKQkvKiBSZWNlaXZlIEZJRk8gc2VydmljZSAqLwotI2RlZmluZSBVRENDU19JT19SUEMJKDEgPDwgMSkJLyogUmVjZWl2ZSBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUk9GCSgxIDw8IDIpCS8qIFJlY2VpdmUgb3ZlcmZsb3cgKi8KLSNkZWZpbmUgVURDQ1NfSU9fRE1FCSgxIDw8IDMpCS8qIERNQSBlbmFibGUgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBub3QgZW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NfSU9fUlNQCSgxIDw8IDcpCS8qIFJlY2VpdmUgc2hvcnQgcGFja2V0ICovCi0KLS8qIEludGVycnVwdCBJTiAtIEVuZHBvaW50IDUsMTAsMTUgKi8KLSNkZWZpbmUgVURDQ1M1CQlfX1JFRygweDQwNjAwMDI0KSAgLyogVURDIEVuZHBvaW50IDUgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVURDQ1MxMAkJX19SRUcoMHg0MDYwMDAzOCkgIC8qIFVEQyBFbmRwb2ludCAxMCAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUzE1CQlfX1JFRygweDQwNjAwMDRDKSAgLyogVURDIEVuZHBvaW50IDE1IChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCi0KLSNkZWZpbmUgVURDQ1NfSU5UX1RGUwkoMSA8PCAwKQkvKiBUcmFuc21pdCBGSUZPIHNlcnZpY2UgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTX0lOVF9UVVIJKDEgPDwgMykJLyogVHJhbnNtaXQgRklGTyB1bmRlcnJ1biAqLwotI2RlZmluZSBVRENDU19JTlRfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NfSU5UX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBzdGFsbCAqLwotI2RlZmluZSBVRENDU19JTlRfVFNQCSgxIDw8IDcpCS8qIFRyYW5zbWl0IHNob3J0IHBhY2tldCAqLwotCi0jZGVmaW5lIFVGTlJICQlfX1JFRygweDQwNjAwMDYwKSAgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciBIaWdoICovCi0jZGVmaW5lIFVGTlJMCQlfX1JFRygweDQwNjAwMDY0KSAgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciBMb3cgKi8KLSNkZWZpbmUgVUJDUjIJCV9fUkVHKDB4NDA2MDAwNjgpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgMiAqLwotI2RlZmluZSBVQkNSNAkJX19SRUcoMHg0MDYwMDA2YykgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA0ICovCi0jZGVmaW5lIFVCQ1I3CQlfX1JFRygweDQwNjAwMDcwKSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDcgKi8KLSNkZWZpbmUgVUJDUjkJCV9fUkVHKDB4NDA2MDAwNzQpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgOSAqLwotI2RlZmluZSBVQkNSMTIJCV9fUkVHKDB4NDA2MDAwNzgpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgMTIgKi8KLSNkZWZpbmUgVUJDUjE0CQlfX1JFRygweDQwNjAwMDdjKSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDE0ICovCi0jZGVmaW5lIFVERFIwCQlfX1JFRygweDQwNjAwMDgwKSAgLyogVURDIEVuZHBvaW50IDAgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMQkJX19SRUcoMHg0MDYwMDEwMCkgIC8qIFVEQyBFbmRwb2ludCAxIERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjIJCV9fUkVHKDB4NDA2MDAxODApICAvKiBVREMgRW5kcG9pbnQgMiBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFIzCQlfX1JFRygweDQwNjAwMjAwKSAgLyogVURDIEVuZHBvaW50IDMgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSNAkJX19SRUcoMHg0MDYwMDQwMCkgIC8qIFVEQyBFbmRwb2ludCA0IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjUJCV9fUkVHKDB4NDA2MDAwQTApICAvKiBVREMgRW5kcG9pbnQgNSBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI2CQlfX1JFRygweDQwNjAwNjAwKSAgLyogVURDIEVuZHBvaW50IDYgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSNwkJX19SRUcoMHg0MDYwMDY4MCkgIC8qIFVEQyBFbmRwb2ludCA3IERhdGEgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgVUREUjgJCV9fUkVHKDB4NDA2MDA3MDApICAvKiBVREMgRW5kcG9pbnQgOCBEYXRhIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVERFI5CQlfX1JFRygweDQwNjAwOTAwKSAgLyogVURDIEVuZHBvaW50IDkgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTAJCV9fUkVHKDB4NDA2MDAwQzApICAvKiBVREMgRW5kcG9pbnQgMTAgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTEJCV9fUkVHKDB4NDA2MDBCMDApICAvKiBVREMgRW5kcG9pbnQgMTEgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTIJCV9fUkVHKDB4NDA2MDBCODApICAvKiBVREMgRW5kcG9pbnQgMTIgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTMJCV9fUkVHKDB4NDA2MDBDMDApICAvKiBVREMgRW5kcG9pbnQgMTMgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTQJCV9fUkVHKDB4NDA2MDBFMDApICAvKiBVREMgRW5kcG9pbnQgMTQgRGF0YSBSZWdpc3RlciAqLwotI2RlZmluZSBVRERSMTUJCV9fUkVHKDB4NDA2MDAwRTApICAvKiBVREMgRW5kcG9pbnQgMTUgRGF0YSBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFVJQ1IwCQlfX1JFRygweDQwNjAwMDUwKSAgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KLQotI2RlZmluZSBVSUNSMF9JTTAJKDEgPDwgMCkJLyogSW50ZXJydXB0IG1hc2sgZXAgMCAqLwotI2RlZmluZSBVSUNSMF9JTTEJKDEgPDwgMSkJLyogSW50ZXJydXB0IG1hc2sgZXAgMSAqLwotI2RlZmluZSBVSUNSMF9JTTIJKDEgPDwgMikJLyogSW50ZXJydXB0IG1hc2sgZXAgMiAqLwotI2RlZmluZSBVSUNSMF9JTTMJKDEgPDwgMykJLyogSW50ZXJydXB0IG1hc2sgZXAgMyAqLwotI2RlZmluZSBVSUNSMF9JTTQJKDEgPDwgNCkJLyogSW50ZXJydXB0IG1hc2sgZXAgNCAqLwotI2RlZmluZSBVSUNSMF9JTTUJKDEgPDwgNSkJLyogSW50ZXJydXB0IG1hc2sgZXAgNSAqLwotI2RlZmluZSBVSUNSMF9JTTYJKDEgPDwgNikJLyogSW50ZXJydXB0IG1hc2sgZXAgNiAqLwotI2RlZmluZSBVSUNSMF9JTTcJKDEgPDwgNykJLyogSW50ZXJydXB0IG1hc2sgZXAgNyAqLwotCi0jZGVmaW5lIFVJQ1IxCQlfX1JFRygweDQwNjAwMDU0KSAgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KLQotI2RlZmluZSBVSUNSMV9JTTgJKDEgPDwgMCkJLyogSW50ZXJydXB0IG1hc2sgZXAgOCAqLwotI2RlZmluZSBVSUNSMV9JTTkJKDEgPDwgMSkJLyogSW50ZXJydXB0IG1hc2sgZXAgOSAqLwotI2RlZmluZSBVSUNSMV9JTTEwCSgxIDw8IDIpCS8qIEludGVycnVwdCBtYXNrIGVwIDEwICovCi0jZGVmaW5lIFVJQ1IxX0lNMTEJKDEgPDwgMykJLyogSW50ZXJydXB0IG1hc2sgZXAgMTEgKi8KLSNkZWZpbmUgVUlDUjFfSU0xMgkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMiAqLwotI2RlZmluZSBVSUNSMV9JTTEzCSgxIDw8IDUpCS8qIEludGVycnVwdCBtYXNrIGVwIDEzICovCi0jZGVmaW5lIFVJQ1IxX0lNMTQJKDEgPDwgNikJLyogSW50ZXJydXB0IG1hc2sgZXAgMTQgKi8KLSNkZWZpbmUgVUlDUjFfSU0xNQkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxNSAqLwotCi0jZGVmaW5lIFVTSVIwCQlfX1JFRygweDQwNjAwMDU4KSAgLyogVURDIFN0YXR1cyBJbnRlcnJ1cHQgUmVnaXN0ZXIgMCAqLwotCi0jZGVmaW5lIFVTSVIwX0lSMAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAwICovCi0jZGVmaW5lIFVTSVIwX0lSMQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxICovCi0jZGVmaW5lIFVTSVIwX0lSMgkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAyICovCi0jZGVmaW5lIFVTSVIwX0lSMwkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAzICovCi0jZGVmaW5lIFVTSVIwX0lSNAkoMSA8PCA0KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA0ICovCi0jZGVmaW5lIFVTSVIwX0lSNQkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA1ICovCi0jZGVmaW5lIFVTSVIwX0lSNgkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA2ICovCi0jZGVmaW5lIFVTSVIwX0lSNwkoMSA8PCA3KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA3ICovCi0KLSNkZWZpbmUgVVNJUjEJCV9fUkVHKDB4NDA2MDAwNUMpICAvKiBVREMgU3RhdHVzIEludGVycnVwdCBSZWdpc3RlciAxICovCi0KLSNkZWZpbmUgVVNJUjFfSVI4CSgxIDw8IDApCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDggKi8KLSNkZWZpbmUgVVNJUjFfSVI5CSgxIDw8IDEpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDkgKi8KLSNkZWZpbmUgVVNJUjFfSVIxMAkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMCAqLwotI2RlZmluZSBVU0lSMV9JUjExCSgxIDw8IDMpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDExICovCi0jZGVmaW5lIFVTSVIxX0lSMTIJKDEgPDwgNCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTIgKi8KLSNkZWZpbmUgVVNJUjFfSVIxMwkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMyAqLwotI2RlZmluZSBVU0lSMV9JUjE0CSgxIDw8IDYpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDE0ICovCi0jZGVmaW5lIFVTSVIxX0lSMTUJKDEgPDwgNykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTUgKi8KLQotI2VsaWYgZGVmaW5lZChDT05GSUdfUFhBMjd4KQotCi0jZGVmaW5lIFVEQ0NSICAgICAgICAgICBfX1JFRygweDQwNjAwMDAwKSAvKiBVREMgQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBVRENDUl9PRU4JKDEgPDwgMzEpCS8qIE9uLXRoZS1HbyBFbmFibGUgKi8KLSNkZWZpbmUgVURDQ1JfQUFMVEhOUAkoMSA8PCAzMCkJLyogQS1kZXZpY2UgQWx0ZXJuYXRlIEhvc3QgTmVnb3RpYXRpb24KLQkJCQkJICAgUHJvdG9jb2wgUG9ydCBTdXBwb3J0ICovCi0jZGVmaW5lIFVEQ0NSX0FITlAJKDEgPDwgMjkpCS8qIEEtZGV2aWNlIEhvc3QgTmVnb3RpYXRpb24gUHJvdG9jb2wKLQkJCQkJICAgU3VwcG9ydCAqLwotI2RlZmluZSBVRENDUl9CSE5QCSgxIDw8IDI4KQkvKiBCLWRldmljZSBIb3N0IE5lZ290aWF0aW9uIFByb3RvY29sCi0JCQkJCSAgIEVuYWJsZSAqLwotI2RlZmluZSBVRENDUl9EV1JFCSgxIDw8IDE2KQkvKiBEZXZpY2UgUmVtb3RlIFdha2UtdXAgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NSX0FDTgkoMHgwMyA8PCAxMSkJLyogQWN0aXZlIFVEQyBjb25maWd1cmF0aW9uIE51bWJlciAqLwotI2RlZmluZSBVRENDUl9BQ05fUwkxMQotI2RlZmluZSBVRENDUl9BSU4JKDB4MDcgPDwgOCkJLyogQWN0aXZlIFVEQyBpbnRlcmZhY2UgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NSX0FJTl9TCTgKLSNkZWZpbmUgVURDQ1JfQUFJU04JKDB4MDcgPDwgNSkJLyogQWN0aXZlIFVEQyBBbHRlcm5hdGUgSW50ZXJmYWNlCi0JCQkJCSAgIFNldHRpbmcgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NSX0FBSVNOX1MJNQotI2RlZmluZSBVRENDUl9TTUFDCSgxIDw8IDQpCS8qIFN3aXRjaCBFbmRwb2ludCBNZW1vcnkgdG8gQWN0aXZlCi0JCQkJCSAgIENvbmZpZ3VyYXRpb24gKi8KLSNkZWZpbmUgVURDQ1JfRU1DRQkoMSA8PCAzKQkvKiBFbmRwb2ludCBNZW1vcnkgQ29uZmlndXJhdGlvbgotCQkJCQkgICBFcnJvciAqLwotI2RlZmluZSBVRENDUl9VRFIJKDEgPDwgMikJLyogVURDIFJlc3VtZSAqLwotI2RlZmluZSBVRENDUl9VREEJKDEgPDwgMSkJLyogVURDIEFjdGl2ZSAqLwotI2RlZmluZSBVRENDUl9VREUJKDEgPDwgMCkJLyogVURDIEVuYWJsZSAqLwotCi0jZGVmaW5lIFVEQ0lDUjAgICAgICAgICBfX1JFRygweDQwNjAwMDA0KSAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIwICovCi0jZGVmaW5lIFVEQ0lDUjEgICAgICAgICBfX1JFRygweDQwNjAwMDA4KSAvKiBVREMgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIxICovCi0jZGVmaW5lIFVEQ0lDUl9GSUZPRVJSCSgxIDw8IDEpCS8qIEZJRk8gRXJyb3IgaW50ZXJydXB0IGZvciBFUCAqLwotI2RlZmluZSBVRENJQ1JfUEtUQ09NUEwgKDEgPDwgMCkJLyogUGFja2V0IENvbXBsZXRlIGludGVycnVwdCBmb3IgRVAgKi8KLQotI2RlZmluZSBVRENfSU5UX0ZJRk9FUlJPUiAgKDB4MikKLSNkZWZpbmUgVURDX0lOVF9QQUNLRVRDTVAgICgweDEpCi0KLSNkZWZpbmUgVURDSUNSX0lOVChuLGludHIpICgoKGludHIpICYgMHgwMykgPDwgKCgobikgJiAweDBGKSAqIDIpKQotI2RlZmluZSBVRENJQ1IxX0lFQ0MJKDEgPDwgMzEpCS8qIEludEVuIC0gQ29uZmlndXJhdGlvbiBDaGFuZ2UgKi8KLSNkZWZpbmUgVURDSUNSMV9JRVNPRgkoMSA8PCAzMCkJLyogSW50RW4gLSBTdGFydCBvZiBGcmFtZSAqLwotI2RlZmluZSBVRENJQ1IxX0lFUlUJKDEgPDwgMjkpCS8qIEludEVuIC0gUmVzdW1lICovCi0jZGVmaW5lIFVEQ0lDUjFfSUVTVQkoMSA8PCAyOCkJLyogSW50RW4gLSBTdXNwZW5kICovCi0jZGVmaW5lIFVEQ0lDUjFfSUVSUwkoMSA8PCAyNykJLyogSW50RW4gLSBSZXNldCAqLwotCi0jZGVmaW5lIFVEQ0lTUjAgICAgICAgICBfX1JFRygweDQwNjAwMDBDKSAvKiBVREMgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAwICovCi0jZGVmaW5lIFVEQ0lTUjEgICAgICAgICBfX1JFRygweDQwNjAwMDEwKSAvKiBVREMgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAxICovCi0jZGVmaW5lIFVEQ0lTUl9JTlQobixpbnRyKSAoKChpbnRyKSAmIDB4MDMpIDw8ICgoKG4pICYgMHgwRikgKiAyKSkKLSNkZWZpbmUgVURDSVNSMV9JUkNDCSgxIDw8IDMxKQkvKiBJbnRSZXEgLSBDb25maWd1cmF0aW9uIENoYW5nZSAqLwotI2RlZmluZSBVRENJU1IxX0lSU09GCSgxIDw8IDMwKQkvKiBJbnRSZXEgLSBTdGFydCBvZiBGcmFtZSAqLwotI2RlZmluZSBVRENJU1IxX0lSUlUJKDEgPDwgMjkpCS8qIEludFJlcSAtIFJlc3VtZSAqLwotI2RlZmluZSBVRENJU1IxX0lSU1UJKDEgPDwgMjgpCS8qIEludFJlcSAtIFN1c3BlbmQgKi8KLSNkZWZpbmUgVURDSVNSMV9JUlJTCSgxIDw8IDI3KQkvKiBJbnRSZXEgLSBSZXNldCAqLwotCi0jZGVmaW5lIFVEQ0ZOUiAgICAgICAgICBfX1JFRygweDQwNjAwMDE0KSAvKiBVREMgRnJhbWUgTnVtYmVyIFJlZ2lzdGVyICovCi0jZGVmaW5lIFVEQ09UR0lDUglfX1JFRygweDQwNjAwMDE4KSAvKiBVREMgT24tVGhlLUdvIGludGVycnVwdCBjb250cm9sICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRVNGCSgxIDw8IDI0KQkvKiBPVEcgU0VUX0ZFQVRVUkUgY29tbWFuZCByZWN2ZCAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVYUgkoMSA8PCAxNykJLyogRXh0cmEgVHJhbnNjaWV2ZXIgSW50ZXJydXB0Ci0JCQkJCSAgIFJpc2luZyBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFWEYJKDEgPDwgMTYpCS8qIEV4dHJhIFRyYW5zY2lldmVyIEludGVycnVwdAotCQkJCQkgICBGYWxsaW5nIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQwUiAoMSA8PCA5KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjBWIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0MEYgKDEgPDwgOCkJLyogT1RHIFZidXMgVmFsaWQgNC4wViBGYWxsaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVWVjQ0UiAoMSA8PCA3KQkvKiBPVEcgVmJ1cyBWYWxpZCA0LjRWIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFVlY0NEYgKDEgPDwgNikJLyogT1RHIFZidXMgVmFsaWQgNC40ViBGYWxsaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVTVlIJKDEgPDwgNSkJLyogT1RHIFNlc3Npb24gVmFsaWQgUmlzaW5nIEVkZ2UKLQkJCQkJICAgSW50ZXJydXB0IEVuYWJsZSAqLwotI2RlZmluZSBVRENPVEdJQ1JfSUVTVkYJKDEgPDwgNCkJLyogT1RHIFNlc3Npb24gVmFsaWQgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU0RSCSgxIDw8IDMpCS8qIE9URyBBLURldmljZSBTUlAgRGV0ZWN0IFJpc2luZwotCQkJCQkgICBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFU0RGCSgxIDw8IDIpCS8qIE9URyBBLURldmljZSBTUlAgRGV0ZWN0IEZhbGxpbmcKLQkJCQkJICAgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCi0jZGVmaW5lIFVEQ09UR0lDUl9JRUlEUgkoMSA8PCAxKQkvKiBPVEcgSUQgQ2hhbmdlIFJpc2luZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLSNkZWZpbmUgVURDT1RHSUNSX0lFSURGCSgxIDw8IDApCS8qIE9URyBJRCBDaGFuZ2UgRmFsbGluZyBFZGdlCi0JCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KLQotI2RlZmluZSBVUDJPQ1IJCSAgX19SRUcoMHg0MDYwMDAyMCkgIC8qIFVTQiBQb3J0IDIgT3V0cHV0IENvbnRyb2wgcmVnaXN0ZXIgKi8KLQotI2RlZmluZSBVUDJPQ1JfQ1BWRU4JKDEgPDwgMCkJLyogQ2hhcmdlIFB1bXAgVmJ1cyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0NQVlBFCSgxIDw8IDEpCS8qIENoYXJnZSBQdW1wIFZidXMgUHVsc2UgRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9EUFBERQkoMSA8PCAyKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIERvd24gRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9ETVBERQkoMSA8PCAzKQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIERvd24gRW5hYmxlICovCi0jZGVmaW5lIFVQMk9DUl9EUFBVRQkoMSA8PCA0KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfRE1QVUUJKDEgPDwgNSkJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgRC0gUHVsbCBVcCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0RQUFVCRQkoMSA8PCA2KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBEKyBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0RNUFVCRQkoMSA8PCA3KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIFVwIEJ5cGFzcyBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX0VYU1AJCSgxIDw8IDgpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIENvbnRyb2wgKi8KLSNkZWZpbmUgVVAyT0NSX0VYU1VTCSgxIDw8IDkpCS8qIEV4dGVybmFsIFRyYW5zY2VpdmVyIFNwZWVkIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfSURPTgkJKDEgPDwgMTApCS8qIE9URyBJRCBSZWFkIEVuYWJsZSAqLwotI2RlZmluZSBVUDJPQ1JfSFhTCQkoMSA8PCAxNikJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgT3V0cHV0IFNlbGVjdCAqLwotI2RlZmluZSBVUDJPQ1JfSFhPRQkJKDEgPDwgMTcpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIE91dHB1dCBFbmFibGUgKi8KLSNkZWZpbmUgVVAyT0NSX1NFT1MJCSgxIDw8IDI0KQkvKiBTaW5nbGUtRW5kZWQgT3V0cHV0IFNlbGVjdCAqLwotCi0jZGVmaW5lIFVEQ0NTTih4KQlfX1JFRzIoMHg0MDYwMDEwMCwgKHgpIDw8IDIpCi0jZGVmaW5lIFVEQ0NTUjAgICAgICAgICBfX1JFRygweDQwNjAwMTAwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCAwICovCi0jZGVmaW5lIFVEQ0NTUjBfU0EJKDEgPDwgNykJLyogU2V0dXAgQWN0aXZlICovCi0jZGVmaW5lIFVEQ0NTUjBfUk5FCSgxIDw8IDYpCS8qIFJlY2VpdmUgRklGTyBOb3QgRW1wdHkgKi8KLSNkZWZpbmUgVURDQ1NSMF9GU1QJKDEgPDwgNSkJLyogRm9yY2UgU3RhbGwgKi8KLSNkZWZpbmUgVURDQ1NSMF9TU1QJKDEgPDwgNCkJLyogU2VudCBTdGFsbCAqLwotI2RlZmluZSBVRENDU1IwX0RNRQkoMSA8PCAzKQkvKiBETUEgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NTUjBfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFRyYW5zbWl0IEZJRk8gKi8KLSNkZWZpbmUgVURDQ1NSMF9JUFIJKDEgPDwgMSkJLyogSU4gUGFja2V0IFJlYWR5ICovCi0jZGVmaW5lIFVEQ0NTUjBfT1BDCSgxIDw8IDApCS8qIE9VVCBQYWNrZXQgQ29tcGxldGUgKi8KLQotI2RlZmluZSBVRENDU1JBICAgICAgICAgX19SRUcoMHg0MDYwMDEwNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQSAqLwotI2RlZmluZSBVRENDU1JCICAgICAgICAgX19SRUcoMHg0MDYwMDEwOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQiAqLwotI2RlZmluZSBVRENDU1JDICAgICAgICAgX19SRUcoMHg0MDYwMDEwQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgQyAqLwotI2RlZmluZSBVRENDU1JEICAgICAgICAgX19SRUcoMHg0MDYwMDExMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRCAqLwotI2RlZmluZSBVRENDU1JFICAgICAgICAgX19SRUcoMHg0MDYwMDExNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRSAqLwotI2RlZmluZSBVRENDU1JGICAgICAgICAgX19SRUcoMHg0MDYwMDExOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRiAqLwotI2RlZmluZSBVRENDU1JHICAgICAgICAgX19SRUcoMHg0MDYwMDExQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgRyAqLwotI2RlZmluZSBVRENDU1JIICAgICAgICAgX19SRUcoMHg0MDYwMDEyMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSCAqLwotI2RlZmluZSBVRENDU1JJICAgICAgICAgX19SRUcoMHg0MDYwMDEyNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSSAqLwotI2RlZmluZSBVRENDU1JKICAgICAgICAgX19SRUcoMHg0MDYwMDEyOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSiAqLwotI2RlZmluZSBVRENDU1JLICAgICAgICAgX19SRUcoMHg0MDYwMDEyQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgSyAqLwotI2RlZmluZSBVRENDU1JMICAgICAgICAgX19SRUcoMHg0MDYwMDEzMCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTCAqLwotI2RlZmluZSBVRENDU1JNICAgICAgICAgX19SRUcoMHg0MDYwMDEzNCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTSAqLwotI2RlZmluZSBVRENDU1JOICAgICAgICAgX19SRUcoMHg0MDYwMDEzOCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgTiAqLwotI2RlZmluZSBVRENDU1JQICAgICAgICAgX19SRUcoMHg0MDYwMDEzQykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUCAqLwotI2RlZmluZSBVRENDU1JRICAgICAgICAgX19SRUcoMHg0MDYwMDE0MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUSAqLwotI2RlZmluZSBVRENDU1JSICAgICAgICAgX19SRUcoMHg0MDYwMDE0NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUiAqLwotI2RlZmluZSBVRENDU1JTICAgICAgICAgX19SRUcoMHg0MDYwMDE0OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgUyAqLwotI2RlZmluZSBVRENDU1JUICAgICAgICAgX19SRUcoMHg0MDYwMDE0QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVCAqLwotI2RlZmluZSBVRENDU1JVICAgICAgICAgX19SRUcoMHg0MDYwMDE1MCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVSAqLwotI2RlZmluZSBVRENDU1JWICAgICAgICAgX19SRUcoMHg0MDYwMDE1NCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgViAqLwotI2RlZmluZSBVRENDU1JXICAgICAgICAgX19SRUcoMHg0MDYwMDE1OCkgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgVyAqLwotI2RlZmluZSBVRENDU1JYICAgICAgICAgX19SRUcoMHg0MDYwMDE1QykgLyogVURDIENvbnRyb2wvU3RhdHVzIHJlZ2lzdGVyIC0gRW5kcG9pbnQgWCAqLwotCi0jZGVmaW5lIFVEQ0NTUl9EUEUJKDEgPDwgOSkJLyogRGF0YSBQYWNrZXQgRXJyb3IgKi8KLSNkZWZpbmUgVURDQ1NSX0ZFRgkoMSA8PCA4KQkvKiBGbHVzaCBFbmRwb2ludCBGSUZPICovCi0jZGVmaW5lIFVEQ0NTUl9TUAkoMSA8PCA3KQkvKiBTaG9ydCBQYWNrZXQgQ29udHJvbC9TdGF0dXMgKi8KLSNkZWZpbmUgVURDQ1NSX0JORQkoMSA8PCA2KQkvKiBCdWZmZXIgTm90IEVtcHR5IChJTiBlbmRwb2ludHMpICovCi0jZGVmaW5lIFVEQ0NTUl9CTkYJKDEgPDwgNikJLyogQnVmZmVyIE5vdCBGdWxsIChPVVQgZW5kcG9pbnRzKSAqLwotI2RlZmluZSBVRENDU1JfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIFNUQUxMICovCi0jZGVmaW5lIFVEQ0NTUl9TU1QJKDEgPDwgNCkJLyogU2VudCBTVEFMTCAqLwotI2RlZmluZSBVRENDU1JfRE1FCSgxIDw8IDMpCS8qIERNQSBFbmFibGUgKi8KLSNkZWZpbmUgVURDQ1NSX1RSTgkoMSA8PCAyKQkvKiBUeC9SeCBOQUsgKi8KLSNkZWZpbmUgVURDQ1NSX1BDCSgxIDw8IDEpCS8qIFBhY2tldCBDb21wbGV0ZSAqLwotI2RlZmluZSBVRENDU1JfRlMJKDEgPDwgMCkJLyogRklGTyBuZWVkcyBzZXJ2aWNlICovCi0KLSNkZWZpbmUgVURDQkNOKHgpCV9fUkVHMigweDQwNjAwMjAwLCAoeCk8PDIpCi0jZGVmaW5lIFVEQ0JDUjAgICAgICAgICBfX1JFRygweDQwNjAwMjAwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVAwICovCi0jZGVmaW5lIFVEQ0JDUkEgICAgICAgICBfX1JFRygweDQwNjAwMjA0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBBICovCi0jZGVmaW5lIFVEQ0JDUkIgICAgICAgICBfX1JFRygweDQwNjAwMjA4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBCICovCi0jZGVmaW5lIFVEQ0JDUkMgICAgICAgICBfX1JFRygweDQwNjAwMjBDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBDICovCi0jZGVmaW5lIFVEQ0JDUkQgICAgICAgICBfX1JFRygweDQwNjAwMjEwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBEICovCi0jZGVmaW5lIFVEQ0JDUkUgICAgICAgICBfX1JFRygweDQwNjAwMjE0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBFICovCi0jZGVmaW5lIFVEQ0JDUkYgICAgICAgICBfX1JFRygweDQwNjAwMjE4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBGICovCi0jZGVmaW5lIFVEQ0JDUkcgICAgICAgICBfX1JFRygweDQwNjAwMjFDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBHICovCi0jZGVmaW5lIFVEQ0JDUkggICAgICAgICBfX1JFRygweDQwNjAwMjIwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBIICovCi0jZGVmaW5lIFVEQ0JDUkkgICAgICAgICBfX1JFRygweDQwNjAwMjI0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBJICovCi0jZGVmaW5lIFVEQ0JDUkogICAgICAgICBfX1JFRygweDQwNjAwMjI4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBKICovCi0jZGVmaW5lIFVEQ0JDUksgICAgICAgICBfX1JFRygweDQwNjAwMjJDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBLICovCi0jZGVmaW5lIFVEQ0JDUkwgICAgICAgICBfX1JFRygweDQwNjAwMjMwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBMICovCi0jZGVmaW5lIFVEQ0JDUk0gICAgICAgICBfX1JFRygweDQwNjAwMjM0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBNICovCi0jZGVmaW5lIFVEQ0JDUk4gICAgICAgICBfX1JFRygweDQwNjAwMjM4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBOICovCi0jZGVmaW5lIFVEQ0JDUlAgICAgICAgICBfX1JFRygweDQwNjAwMjNDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBQICovCi0jZGVmaW5lIFVEQ0JDUlEgICAgICAgICBfX1JFRygweDQwNjAwMjQwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBRICovCi0jZGVmaW5lIFVEQ0JDUlIgICAgICAgICBfX1JFRygweDQwNjAwMjQ0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBSICovCi0jZGVmaW5lIFVEQ0JDUlMgICAgICAgICBfX1JFRygweDQwNjAwMjQ4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBTICovCi0jZGVmaW5lIFVEQ0JDUlQgICAgICAgICBfX1JFRygweDQwNjAwMjRDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBUICovCi0jZGVmaW5lIFVEQ0JDUlUgICAgICAgICBfX1JFRygweDQwNjAwMjUwKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBVICovCi0jZGVmaW5lIFVEQ0JDUlYgICAgICAgICBfX1JFRygweDQwNjAwMjU0KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBWICovCi0jZGVmaW5lIFVEQ0JDUlcgICAgICAgICBfX1JFRygweDQwNjAwMjU4KSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBXICovCi0jZGVmaW5lIFVEQ0JDUlggICAgICAgICBfX1JFRygweDQwNjAwMjVDKSAvKiBCeXRlIENvdW50IFJlZ2lzdGVyIC0gRVBYICovCi0KLSNkZWZpbmUgVURDRE4oeCkJX19SRUcyKDB4NDA2MDAzMDAsICh4KTw8MikKLSNkZWZpbmUgUEhZU19VRENETih4KQkoMHg0MDYwMDMwMCArICgoeCk8PDIpKQotI2RlZmluZSBQVURDRE4oeCkJKHZvbGF0aWxlIHUzMiAqKShpb19wMnYoUEhZU19VRENETigoeCkpKSkKLSNkZWZpbmUgVURDRFIwICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUDAgKi8KLSNkZWZpbmUgVURDRFJBICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEEgKi8KLSNkZWZpbmUgVURDRFJCICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEIgKi8KLSNkZWZpbmUgVURDRFJDICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEMgKi8KLSNkZWZpbmUgVURDRFJEICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEQgKi8KLSNkZWZpbmUgVURDRFJFICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEUgKi8KLSNkZWZpbmUgVURDRFJGICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEYgKi8KLSNkZWZpbmUgVURDRFJHICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEcgKi8KLSNkZWZpbmUgVURDRFJIICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEggKi8KLSNkZWZpbmUgVURDRFJJICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEkgKi8KLSNkZWZpbmUgVURDRFJKICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMjgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEogKi8KLSNkZWZpbmUgVURDRFJLICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMkMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEsgKi8KLSNkZWZpbmUgVURDRFJMICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUEwgKi8KLSNkZWZpbmUgVURDRFJNICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE0gKi8KLSNkZWZpbmUgVURDRFJOICAgICAgICAgIF9fUkVHKDB4NDA2MDAzMzgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUE4gKi8KLSNkZWZpbmUgVURDRFJQICAgICAgICAgIF9fUkVHKDB4NDA2MDAzM0MpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFAgKi8KLSNkZWZpbmUgVURDRFJRICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFEgKi8KLSNkZWZpbmUgVURDRFJSICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFIgKi8KLSNkZWZpbmUgVURDRFJTICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNDgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFMgKi8KLSNkZWZpbmUgVURDRFJUICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNEMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFQgKi8KLSNkZWZpbmUgVURDRFJVICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTApIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFUgKi8KLSNkZWZpbmUgVURDRFJWICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTQpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFYgKi8KLSNkZWZpbmUgVURDRFJXICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNTgpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFcgKi8KLSNkZWZpbmUgVURDRFJYICAgICAgICAgIF9fUkVHKDB4NDA2MDAzNUMpIC8qIERhdGEgUmVnaXN0ZXIgLSBFUFggKi8KLQotI2RlZmluZSBVRENDTih4KSAgICAgICBfX1JFRzIoMHg0MDYwMDQwMCwgKHgpPDwyKQotI2RlZmluZSBVRENDUkEgICAgICAgICAgX19SRUcoMHg0MDYwMDQwNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEEgKi8KLSNkZWZpbmUgVURDQ1JCICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MDgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBCICovCi0jZGVmaW5lIFVEQ0NSQyAgICAgICAgICBfX1JFRygweDQwNjAwNDBDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQyAqLwotI2RlZmluZSBVRENDUkQgICAgICAgICAgX19SRUcoMHg0MDYwMDQxMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEQgKi8KLSNkZWZpbmUgVURDQ1JFICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBFICovCi0jZGVmaW5lIFVEQ0NSRiAgICAgICAgICBfX1JFRygweDQwNjAwNDE4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRiAqLwotI2RlZmluZSBVRENDUkcgICAgICAgICAgX19SRUcoMHg0MDYwMDQxQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEcgKi8KLSNkZWZpbmUgVURDQ1JIICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBIICovCi0jZGVmaW5lIFVEQ0NSSSAgICAgICAgICBfX1JFRygweDQwNjAwNDI0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSSAqLwotI2RlZmluZSBVRENDUkogICAgICAgICAgX19SRUcoMHg0MDYwMDQyOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEogKi8KLSNkZWZpbmUgVURDQ1JLICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MkMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBLICovCi0jZGVmaW5lIFVEQ0NSTCAgICAgICAgICBfX1JFRygweDQwNjAwNDMwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTCAqLwotI2RlZmluZSBVRENDUk0gICAgICAgICAgX19SRUcoMHg0MDYwMDQzNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUE0gKi8KLSNkZWZpbmUgVURDQ1JOICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBOICovCi0jZGVmaW5lIFVEQ0NSUCAgICAgICAgICBfX1JFRygweDQwNjAwNDNDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUCAqLwotI2RlZmluZSBVRENDUlEgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0MCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFEgKi8KLSNkZWZpbmUgVURDQ1JSICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBSICovCi0jZGVmaW5lIFVEQ0NSUyAgICAgICAgICBfX1JFRygweDQwNjAwNDQ4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUyAqLwotI2RlZmluZSBVRENDUlQgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0QykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFQgKi8KLSNkZWZpbmUgVURDQ1JVICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBVICovCi0jZGVmaW5lIFVEQ0NSViAgICAgICAgICBfX1JFRygweDQwNjAwNDU0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQViAqLwotI2RlZmluZSBVRENDUlcgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1OCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFcgKi8KLSNkZWZpbmUgVURDQ1JYICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NUMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBYICovCi0KLSNkZWZpbmUgVURDQ09OUl9DTgkoMHgwMyA8PCAyNSkJLyogQ29uZmlndXJhdGlvbiBOdW1iZXIgKi8KLSNkZWZpbmUgVURDQ09OUl9DTl9TCSgyNSkKLSNkZWZpbmUgVURDQ09OUl9JTgkoMHgwNyA8PCAyMikJLyogSW50ZXJmYWNlIE51bWJlciAqLwotI2RlZmluZSBVRENDT05SX0lOX1MJKDIyKQotI2RlZmluZSBVRENDT05SX0FJU04JKDB4MDcgPDwgMTkpCS8qIEFsdGVybmF0ZSBJbnRlcmZhY2UgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NPTlJfQUlTTl9TCSgxOSkKLSNkZWZpbmUgVURDQ09OUl9FTgkoMHgwZiA8PCAxNSkJLyogRW5kcG9pbnQgTnVtYmVyICovCi0jZGVmaW5lIFVEQ0NPTlJfRU5fUwkoMTUpCi0jZGVmaW5lIFVEQ0NPTlJfRVQJKDB4MDMgPDwgMTMpCS8qIEVuZHBvaW50IFR5cGU6ICovCi0jZGVmaW5lIFVEQ0NPTlJfRVRfUwkoMTMpCi0jZGVmaW5lIFVEQ0NPTlJfRVRfSU5UCSgweDAzIDw8IDEzKQkvKiAgIEludGVycnVwdCAqLwotI2RlZmluZSBVRENDT05SX0VUX0JVTEsJKDB4MDIgPDwgMTMpCS8qICAgQnVsayAqLwotI2RlZmluZSBVRENDT05SX0VUX0lTTwkoMHgwMSA8PCAxMykJLyogICBJc29jaHJvbm91cyAqLwotI2RlZmluZSBVRENDT05SX0VUX05VCSgweDAwIDw8IDEzKQkvKiAgIE5vdCB1c2VkICovCi0jZGVmaW5lIFVEQ0NPTlJfRUQJKDEgPDwgMTIpCS8qIEVuZHBvaW50IERpcmVjdGlvbiAqLwotI2RlZmluZSBVRENDT05SX01QUwkoMHgzZmYgPDwgMikJLyogTWF4aW11bSBQYWNrZXQgU2l6ZSAqLwotI2RlZmluZSBVRENDT05SX01QU19TCSgyKQotI2RlZmluZSBVRENDT05SX0RFCSgxIDw8IDEpCS8qIERvdWJsZSBCdWZmZXJpbmcgRW5hYmxlICovCi0jZGVmaW5lIFVEQ0NPTlJfRUUJKDEgPDwgMCkJLyogRW5kcG9pbnQgRW5hYmxlICovCi0KLQotI2RlZmluZSBVRENfSU5UX0ZJRk9FUlJPUiAgKDB4MikKLSNkZWZpbmUgVURDX0lOVF9QQUNLRVRDTVAgICgweDEpCi0KLSNkZWZpbmUgVURDX0ZOUl9NQVNLICAgICAoMHg3ZmYpCi0KLSNkZWZpbmUgVURDQ1NSX1dSX01BU0sgICAoVURDQ1NSX0RNRXxVRENDU1JfRlNUKQotI2RlZmluZSBVRENfQkNSX01BU0sgICAgKDB4M2ZmKQotI2VuZGlmCi0KLS8qCiAgKiBGYXN0IEluZnJhcmVkIENvbW11bmljYXRpb24gUG9ydAogICovCiAKQEAgLTEyMzcsMTIwICs4MjUsOSBAQAogI2VuZGlmCiAKIC8qCi0gKiBQb3dlciBNYW5hZ2VyCisgKiBQb3dlciBNYW5hZ2VyIC0gc2VlIHB4YTJ4eC1yZWdzLmgKICAqLwogCi0jZGVmaW5lIFBNQ1IJCV9fUkVHKDB4NDBGMDAwMDApICAvKiBQb3dlciBNYW5hZ2VyIENvbnRyb2wgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgUFNTUgkJX19SRUcoMHg0MEYwMDAwNCkgIC8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBTUFIJCV9fUkVHKDB4NDBGMDAwMDgpICAvKiBQb3dlciBNYW5hZ2VyIFNjcmF0Y2ggUGFkIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBXRVIJCV9fUkVHKDB4NDBGMDAwMEMpICAvKiBQb3dlciBNYW5hZ2VyIFdha2UtdXAgRW5hYmxlIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBSRVIJCV9fUkVHKDB4NDBGMDAwMTApICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gUmlzaW5nLUVkZ2UgRGV0ZWN0IEVuYWJsZSBSZWdpc3RlciAqLwotI2RlZmluZSBQRkVSCQlfX1JFRygweDQwRjAwMDE0KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIEZhbGxpbmctRWRnZSBEZXRlY3QgRW5hYmxlIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBFRFIJCV9fUkVHKDB4NDBGMDAwMTgpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gRWRnZSBEZXRlY3QgU3RhdHVzIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBDRlIJCV9fUkVHKDB4NDBGMDAwMUMpICAvKiBQb3dlciBNYW5hZ2VyIEdlbmVyYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBQR1NSMAkJX19SRUcoMHg0MEYwMDAyMCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbMzEtMF0gKi8KLSNkZWZpbmUgUEdTUjEJCV9fUkVHKDB4NDBGMDAwMjQpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzYzLTMyXSAqLwotI2RlZmluZSBQR1NSMgkJX19SRUcoMHg0MEYwMDAyOCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbODQtNjRdICovCi0jZGVmaW5lIFBHU1IzCQlfX1JFRygweDQwRjAwMDJDKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFsxMTgtOTZdICovCi0jZGVmaW5lIFJDU1IJCV9fUkVHKDB4NDBGMDAwMzApICAvKiBSZXNldCBDb250cm9sbGVyIFN0YXR1cyBSZWdpc3RlciAqLwotCi0jZGVmaW5lIFBTTFIJCV9fUkVHKDB4NDBGMDAwMzQpCS8qIFBvd2VyIE1hbmFnZXIgU2xlZXAgQ29uZmlnIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBTVFIJCV9fUkVHKDB4NDBGMDAwMzgpCS8qUG93ZXIgTWFuYWdlciBTdGFuZGJ5IENvbmZpZyBSZWdpc3RlciAqLwotI2RlZmluZSBQU05SCQlfX1JFRygweDQwRjAwMDNDKQkvKlBvd2VyIE1hbmFnZXIgU2Vuc2UgQ29uZmlnIFJlZ2lzdGVyICovCi0jZGVmaW5lIFBWQ1IJCV9fUkVHKDB4NDBGMDAwNDApCS8qUG93ZXIgTWFuYWdlciBWb2x0YWdlQ29udHJvbCBSZWdpc3RlciAqLwotI2RlZmluZSBQS1dSCQlfX1JFRygweDQwRjAwMDUwKQkvKiBQb3dlciBNYW5hZ2VyIEtCIFdha2UtdXAgRW5hYmxlIFJlZyAqLwotI2RlZmluZSBQS1NSCQlfX1JFRygweDQwRjAwMDU0KQkvKiBQb3dlciBNYW5hZ2VyIEtCIExldmVsLURldGVjdCBSZWdpc3RlciAqLwotI2RlZmluZSBQQ01EKHgpCV9fUkVHMigweDQwRjAwMDgwLCAoeCk8PDIpCi0jZGVmaW5lIFBDTUQwCV9fUkVHKDB4NDBGMDAwODAgKyAwICogNCkKLSNkZWZpbmUgUENNRDEJX19SRUcoMHg0MEYwMDA4MCArIDEgKiA0KQotI2RlZmluZSBQQ01EMglfX1JFRygweDQwRjAwMDgwICsgMiAqIDQpCi0jZGVmaW5lIFBDTUQzCV9fUkVHKDB4NDBGMDAwODAgKyAzICogNCkKLSNkZWZpbmUgUENNRDQJX19SRUcoMHg0MEYwMDA4MCArIDQgKiA0KQotI2RlZmluZSBQQ01ENQlfX1JFRygweDQwRjAwMDgwICsgNSAqIDQpCi0jZGVmaW5lIFBDTUQ2CV9fUkVHKDB4NDBGMDAwODAgKyA2ICogNCkKLSNkZWZpbmUgUENNRDcJX19SRUcoMHg0MEYwMDA4MCArIDcgKiA0KQotI2RlZmluZSBQQ01EOAlfX1JFRygweDQwRjAwMDgwICsgOCAqIDQpCi0jZGVmaW5lIFBDTUQ5CV9fUkVHKDB4NDBGMDAwODAgKyA5ICogNCkKLSNkZWZpbmUgUENNRDEwCV9fUkVHKDB4NDBGMDAwODAgKyAxMCAqIDQpCi0jZGVmaW5lIFBDTUQxMQlfX1JFRygweDQwRjAwMDgwICsgMTEgKiA0KQotI2RlZmluZSBQQ01EMTIJX19SRUcoMHg0MEYwMDA4MCArIDEyICogNCkKLSNkZWZpbmUgUENNRDEzCV9fUkVHKDB4NDBGMDAwODAgKyAxMyAqIDQpCi0jZGVmaW5lIFBDTUQxNAlfX1JFRygweDQwRjAwMDgwICsgMTQgKiA0KQotI2RlZmluZSBQQ01EMTUJX19SRUcoMHg0MEYwMDA4MCArIDE1ICogNCkKLSNkZWZpbmUgUENNRDE2CV9fUkVHKDB4NDBGMDAwODAgKyAxNiAqIDQpCi0jZGVmaW5lIFBDTUQxNwlfX1JFRygweDQwRjAwMDgwICsgMTcgKiA0KQotI2RlZmluZSBQQ01EMTgJX19SRUcoMHg0MEYwMDA4MCArIDE4ICogNCkKLSNkZWZpbmUgUENNRDE5CV9fUkVHKDB4NDBGMDAwODAgKyAxOSAqIDQpCi0jZGVmaW5lIFBDTUQyMAlfX1JFRygweDQwRjAwMDgwICsgMjAgKiA0KQotI2RlZmluZSBQQ01EMjEJX19SRUcoMHg0MEYwMDA4MCArIDIxICogNCkKLSNkZWZpbmUgUENNRDIyCV9fUkVHKDB4NDBGMDAwODAgKyAyMiAqIDQpCi0jZGVmaW5lIFBDTUQyMwlfX1JFRygweDQwRjAwMDgwICsgMjMgKiA0KQotI2RlZmluZSBQQ01EMjQJX19SRUcoMHg0MEYwMDA4MCArIDI0ICogNCkKLSNkZWZpbmUgUENNRDI1CV9fUkVHKDB4NDBGMDAwODAgKyAyNSAqIDQpCi0jZGVmaW5lIFBDTUQyNglfX1JFRygweDQwRjAwMDgwICsgMjYgKiA0KQotI2RlZmluZSBQQ01EMjcJX19SRUcoMHg0MEYwMDA4MCArIDI3ICogNCkKLSNkZWZpbmUgUENNRDI4CV9fUkVHKDB4NDBGMDAwODAgKyAyOCAqIDQpCi0jZGVmaW5lIFBDTUQyOQlfX1JFRygweDQwRjAwMDgwICsgMjkgKiA0KQotI2RlZmluZSBQQ01EMzAJX19SRUcoMHg0MEYwMDA4MCArIDMwICogNCkKLSNkZWZpbmUgUENNRDMxCV9fUkVHKDB4NDBGMDAwODAgKyAzMSAqIDQpCi0KLSNkZWZpbmUgUENNRF9NQkMJKDE8PDEyKQotI2RlZmluZSBQQ01EX0RDRQkoMTw8MTEpCi0jZGVmaW5lIFBDTURfTEMJKDE8PDEwKQotLyogRklYTUU6ICBQQ01EX1NRQyBuZWVkIGJlIGNoZWNrZWQuICAgKi8KLSNkZWZpbmUgUENNRF9TUUMJKDM8PDgpCS8qIGN1cnJlbnRseSBvbmx5IGJpdCA4IGlzIGNoYW5nZWFibGUsCi0JCQkJICAgYml0IDkgc2hvdWxkIGJlIDAgYWxsIGRheS4gKi8KLSNkZWZpbmUgUFZDUl9WQ1NBCSgweDE8PDE0KQotI2RlZmluZSBQVkNSX0NvbW1hbmREZWxheSAoMHhmODApCi0jZGVmaW5lIFBDRlJfUEkyQ19FTgkoMHgxIDw8IDYpCi0KLSNkZWZpbmUgUFNTUl9PVEdQSAkoMSA8PCA2KQkvKiBPVEcgUGVyaXBoZXJhbCBjb250cm9sIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9SREgJKDEgPDwgNSkJLyogUmVhZCBEaXNhYmxlIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9QSAkJKDEgPDwgNCkJLyogUGVyaXBoZXJhbCBDb250cm9sIEhvbGQgKi8KLSNkZWZpbmUgUFNTUl9TVFMJKDEgPDwgMykJLyogU3RhbmRieSBNb2RlIFN0YXR1cyAqLwotI2RlZmluZSBQU1NSX1ZGUwkoMSA8PCAyKQkvKiBWREQgRmF1bHQgU3RhdHVzICovCi0jZGVmaW5lIFBTU1JfQkZTCSgxIDw8IDEpCS8qIEJhdHRlcnkgRmF1bHQgU3RhdHVzICovCi0jZGVmaW5lIFBTU1JfU1NTCSgxIDw8IDApCS8qIFNvZnR3YXJlIFNsZWVwIFN0YXR1cyAqLwotCi0jZGVmaW5lIFBTTFJfU0xfUk9ECSgxIDw8IDIwKQkvKiBTbGVlcC1Nb2RlL0RlcHAtU2xlZXAgTW9kZSBuUkVTRVRfT1VUIERpc2FibGUgKi8KLQotI2RlZmluZSBQQ0ZSX1JPCQkoMSA8PCAxNSkJLyogUkRIIE92ZXJyaWRlICovCi0jZGVmaW5lIFBDRlJfUE8JCSgxIDw8IDE0KQkvKiBQSCBPdmVycmlkZSAqLwotI2RlZmluZSBQQ0ZSX0dQUk9ECSgxIDw8IDEyKQkvKiBHUElPIG5SRVNFVF9PVVQgRGlzYWJsZSAqLwotI2RlZmluZSBQQ0ZSX0wxX0VOCSgxIDw8IDExKQkvKiBTbGVlcCBNb2RlIEwxIGNvbnZlcnRlciBFbmFibGUgKi8KLSNkZWZpbmUgUENGUl9GVkMJKDEgPDwgMTApCS8qIEZyZXF1ZW5jeS9Wb2x0YWdlIENoYW5nZSAqLwotI2RlZmluZSBQQ0ZSX0RDX0VOCSgxIDw8IDcpCS8qIFNsZWVwL2RlZXAtc2xlZXAgREMtREMgQ29udmVydGVyIEVuYWJsZSAqLwotI2RlZmluZSBQQ0ZSX1BJMkNFTgkoMSA8PCA2KQkvKiBFbmFibGUgUEkyQyBjb250cm9sbGVyICovCi0jZGVmaW5lIFBDRlJfR1BSX0VOCSgxIDw8IDQpCS8qIG5SRVNFVF9HUElPIFBpbiBFbmFibGUgKi8KLSNkZWZpbmUgUENGUl9EUwkJKDEgPDwgMykJLyogRGVlcCBTbGVlcCBNb2RlICovCi0jZGVmaW5lIFBDRlJfRlMJCSgxIDw8IDIpCS8qIEZsb2F0IFN0YXRpYyBDaGlwIFNlbGVjdHMgKi8KLSNkZWZpbmUgUENGUl9GUAkJKDEgPDwgMSkJLyogRmxvYXQgUENNQ0lBIGNvbnRyb2xzICovCi0jZGVmaW5lIFBDRlJfT1BERQkoMSA8PCAwKQkvKiAzLjY4NjQgTUh6IG9zY2lsbGF0b3IgcG93ZXItZG93biBlbmFibGUgKi8KLQotI2RlZmluZSBSQ1NSX0dQUgkoMSA8PCAzKQkvKiBHUElPIFJlc2V0ICovCi0jZGVmaW5lIFJDU1JfU01SCSgxIDw8IDIpCS8qIFNsZWVwIE1vZGUgKi8KLSNkZWZpbmUgUkNTUl9XRFIJKDEgPDwgMSkJLyogV2F0Y2hkb2cgUmVzZXQgKi8KLSNkZWZpbmUgUkNTUl9IV1IJKDEgPDwgMCkJLyogSGFyZHdhcmUgUmVzZXQgKi8KLQotI2RlZmluZSBQV0VSX0dQSU8oTmIpCSgxIDw8IE5iKQkvKiBHUElPIFswLi4xNV0gd2FrZS11cCBlbmFibGUgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzAJUFdFUl9HUElPICgwKQkvKiBHUElPICBbMF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEJUFdFUl9HUElPICgxKQkvKiBHUElPICBbMV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzIJUFdFUl9HUElPICgyKQkvKiBHUElPICBbMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzMJUFdFUl9HUElPICgzKQkvKiBHUElPICBbM10gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzQJUFdFUl9HUElPICg0KQkvKiBHUElPICBbNF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzUJUFdFUl9HUElPICg1KQkvKiBHUElPICBbNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzYJUFdFUl9HUElPICg2KQkvKiBHUElPICBbNl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzcJUFdFUl9HUElPICg3KQkvKiBHUElPICBbN10gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzgJUFdFUl9HUElPICg4KQkvKiBHUElPICBbOF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzkJUFdFUl9HUElPICg5KQkvKiBHUElPICBbOV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEwCVBXRVJfR1BJTyAoMTApCS8qIEdQSU8gWzEwXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTEJUFdFUl9HUElPICgxMSkJLyogR1BJTyBbMTFdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xMglQV0VSX0dQSU8gKDEyKQkvKiBHUElPIFsxMl0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfR1BJTzEzCVBXRVJfR1BJTyAoMTMpCS8qIEdQSU8gWzEzXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KLSNkZWZpbmUgUFdFUl9HUElPMTQJUFdFUl9HUElPICgxNCkJLyogR1BJTyBbMTRdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotI2RlZmluZSBQV0VSX0dQSU8xNQlQV0VSX0dQSU8gKDE1KQkvKiBHUElPIFsxNV0gd2FrZS11cCBlbmFibGUgICAgICAgICovCi0jZGVmaW5lIFBXRVJfUlRDCTB4ODAwMDAwMDAJLyogUlRDIGFsYXJtIHdha2UtdXAgZW5hYmxlICAgICAgICAqLwotCiAvKgogICogU1NQIFNlcmlhbCBQb3J0IFJlZ2lzdGVycyAtIHNlZSBpbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcmVncy1zc3AuaAogICovCkBAIC0xMzYwLDUyICs4MzcsOSBAQAogICovCiAKIC8qCi0gKiBDb3JlIENsb2NrCisgKiBDb3JlIENsb2NrIC0gc2VlIGluY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyeHgtcmVncy5oCiAgKi8KIAotI2RlZmluZSBDQ0NSCQlfX1JFRygweDQxMzAwMDAwKSAgLyogQ29yZSBDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCi0jZGVmaW5lIENLRU4JCV9fUkVHKDB4NDEzMDAwMDQpICAvKiBDbG9jayBFbmFibGUgUmVnaXN0ZXIgKi8KLSNkZWZpbmUgT1NDQwkJX19SRUcoMHg0MTMwMDAwOCkgIC8qIE9zY2lsbGF0b3IgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwotI2RlZmluZSBDQ1NSCQlfX1JFRygweDQxMzAwMDBDKSAgLyogQ29yZSBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KLQotI2RlZmluZSBDQ0NSX05fTUFTSwkweDAzODAJCS8qIFJ1biBNb2RlIEZyZXF1ZW5jeSB0byBUdXJibyBNb2RlIEZyZXF1ZW5jeSBNdWx0aXBsaWVyICovCi0jZGVmaW5lIENDQ1JfTV9NQVNLCTB4MDA2MAkJLyogTWVtb3J5IEZyZXF1ZW5jeSB0byBSdW4gTW9kZSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLwotI2RlZmluZSBDQ0NSX0xfTUFTSwkweDAwMWYJCS8qIENyeXN0YWwgRnJlcXVlbmN5IHRvIE1lbW9yeSBGcmVxdWVuY3kgTXVsdGlwbGllciAqLwotCi0jZGVmaW5lIENLRU5fQUM5N0NPTkYgICAoMzEpICAgIC8qIEFDOTcgQ29udHJvbGxlciBDb25maWd1cmF0aW9uICovCi0jZGVmaW5lIENLRU5fQ0FNRVJBCSgyNCkJLyogQ2FtZXJhIEludGVyZmFjZSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9TU1AxCSgyMykJLyogU1NQMSBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX01FTUMJKDIyKQkvKiBNZW1vcnkgQ29udHJvbGxlciBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NRU1TVEsJKDIxKQkvKiBNZW1vcnkgU3RpY2sgSG9zdCBDb250cm9sbGVyICovCi0jZGVmaW5lIENLRU5fSU0JCSgyMCkJLyogSW50ZXJuYWwgTWVtb3J5IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0tFWVBBRAkoMTkpCS8qIEtleXBhZCBJbnRlcmZhY2UgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fVVNJTQkoMTgpCS8qIFVTSU0gVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NU0wJKDE3KQkvKiBNU0wgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9MQ0QJKDE2KQkvKiBMQ0QgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9QV1JJMkMJKDE1KQkvKiBQV1IgSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fSTJDCSgxNCkJLyogSTJDIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fRklDUAkoMTMpCS8qIEZJQ1AgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9NTUMJKDEyKQkvKiBNTUMgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9VU0IJKDExKQkvKiBVU0IgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9BU1NQCSgxMCkJLyogQVNTUCAoU1NQMykgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fVVNCSE9TVAkoMTApCS8qIFVTQiBIb3N0IFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fT1NUSU1FUgkoOSkJLyogT1MgVGltZXIgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9OU1NQCSg5KQkvKiBOU1NQIChTU1AyKSBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9JMlMJKDgpCS8qIEkyUyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0JUVUFSVAkoNykJLyogQlRVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fRkZVQVJUCSg2KQkvKiBGRlVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9TVFVBUlQJKDUpCS8qIFNUVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0hXVUFSVAkoNCkJLyogSFdVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1NQMwkoNCkJLyogU1NQMyBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1NTUAkoMykJLyogU1NQIFVuaXQgQ2xvY2sgRW5hYmxlICovCi0jZGVmaW5lIENLRU5fU1NQMgkoMykJLyogU1NQMiBVbml0IENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX0FDOTcJKDIpCS8qIEFDOTcgVW5pdCBDbG9jayBFbmFibGUgKi8KLSNkZWZpbmUgQ0tFTl9QV00xCSgxKQkvKiBQV00xIENsb2NrIEVuYWJsZSAqLwotI2RlZmluZSBDS0VOX1BXTTAJKDApCS8qIFBXTTAgQ2xvY2sgRW5hYmxlICovCi0KLSNkZWZpbmUgT1NDQ19PT04JKDEgPDwgMSkJLyogMzIuNzY4a0h6IE9PTiAod3JpdGUtb25jZSBvbmx5IGJpdCkgKi8KLSNkZWZpbmUgT1NDQ19PT0sJKDEgPDwgMCkJLyogMzIuNzY4a0h6IE9PSyAocmVhZC1vbmx5IGJpdCkgKi8KLQogI2lmZGVmIENPTkZJR19QWEEyN3gKIAogLyogQ2FtZXJhIEludGVyZmFjZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTI1eC11ZGMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyNXgtdWRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODQwMzA1OQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyNXgtdWRjLmgKQEAgLTAsMCArMSwxNjMgQEAKKyNpZm5kZWYgX0FTTV9BUkNIX1BYQTI1WF9VRENfSAorI2RlZmluZSBfQVNNX0FSQ0hfUFhBMjVYX1VEQ19ICisKKyNpZmRlZiBfQVNNX0FSQ0hfUFhBMjdYX1VEQ19ICisjZXJyb3IgWW91IGNhbid0IGluY2x1ZGUgYm90aCBQWEEyNXggYW5kIFBYQTI3eCBVREMgc3VwcG9ydAorI2VuZGlmCisKKyNkZWZpbmUgVURDX1JFUzEJX19SRUcoMHg0MDYwMDAwNCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDEgKi8KKyNkZWZpbmUgVURDX1JFUzIJX19SRUcoMHg0MDYwMDAwOCkgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDIgKi8KKyNkZWZpbmUgVURDX1JFUzMJX19SRUcoMHg0MDYwMDAwQykgIC8qIFVEQyBVbmRvY3VtZW50ZWQgLSBSZXNlcnZlZDMgKi8KKworI2RlZmluZSBVRENDUgkJX19SRUcoMHg0MDYwMDAwMCkgIC8qIFVEQyBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NSX1VERQkoMSA8PCAwKQkvKiBVREMgZW5hYmxlICovCisjZGVmaW5lIFVEQ0NSX1VEQQkoMSA8PCAxKQkvKiBVREMgYWN0aXZlICovCisjZGVmaW5lIFVEQ0NSX1JTTQkoMSA8PCAyKQkvKiBEZXZpY2UgcmVzdW1lICovCisjZGVmaW5lIFVEQ0NSX1JFU0lSCSgxIDw8IDMpCS8qIFJlc3VtZSBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRENDUl9TVVNJUgkoMSA8PCA0KQkvKiBTdXNwZW5kIGludGVycnVwdCByZXF1ZXN0ICovCisjZGVmaW5lIFVEQ0NSX1NSTQkoMSA8PCA1KQkvKiBTdXNwZW5kL3Jlc3VtZSBpbnRlcnJ1cHQgbWFzayAqLworI2RlZmluZSBVRENDUl9SU1RJUgkoMSA8PCA2KQkvKiBSZXNldCBpbnRlcnJ1cHQgcmVxdWVzdCAqLworI2RlZmluZSBVRENDUl9SRU0JKDEgPDwgNykJLyogUmVzZXQgaW50ZXJydXB0IG1hc2sgKi8KKworI2RlZmluZSBVRENDUzAJCV9fUkVHKDB4NDA2MDAwMTApICAvKiBVREMgRW5kcG9pbnQgMCBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzBfT1BSCSgxIDw8IDApCS8qIE9VVCBwYWNrZXQgcmVhZHkgKi8KKyNkZWZpbmUgVURDQ1MwX0lQUgkoMSA8PCAxKQkvKiBJTiBwYWNrZXQgcmVhZHkgKi8KKyNkZWZpbmUgVURDQ1MwX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCisjZGVmaW5lIFVEQ0NTMF9EUldGCSgxIDw8IDMpCS8qIERldmljZSByZW1vdGUgd2FrZXVwIGZlYXR1cmUgKi8KKyNkZWZpbmUgVURDQ1MwX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTMF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1MwX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm8gZW1wdHkgKi8KKyNkZWZpbmUgVURDQ1MwX1NBCSgxIDw8IDcpCS8qIFNldHVwIGFjdGl2ZSAqLworCisvKiBCdWxrIElOIC0gRW5kcG9pbnQgMSw2LDExICovCisjZGVmaW5lIFVEQ0NTMQkJX19SRUcoMHg0MDYwMDAxNCkgIC8qIFVEQyBFbmRwb2ludCAxIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1M2CQlfX1JFRygweDQwNjAwMDI4KSAgLyogVURDIEVuZHBvaW50IDYgKElOKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBVRENDUzExCQlfX1JFRygweDQwNjAwMDNDKSAgLyogVURDIEVuZHBvaW50IDExIChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19CSV9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCisjZGVmaW5lIFVEQ0NTX0JJX1RQQwkoMSA8PCAxKQkvKiBUcmFuc21pdCBwYWNrZXQgY29tcGxldGUgKi8KKyNkZWZpbmUgVURDQ1NfQklfRlRGCSgxIDw8IDIpCS8qIEZsdXNoIFR4IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NfQklfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KKyNkZWZpbmUgVURDQ1NfQklfU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfQklfRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworLyogQnVsayBPVVQgLSBFbmRwb2ludCAyLDcsMTIgKi8KKyNkZWZpbmUgVURDQ1MyCQlfX1JFRygweDQwNjAwMDE4KSAgLyogVURDIEVuZHBvaW50IDIgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1M3CQlfX1JFRygweDQwNjAwMDJDKSAgLyogVURDIEVuZHBvaW50IDcgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxMgkJX19SRUcoMHg0MDYwMDA0MCkgIC8qIFVEQyBFbmRwb2ludCAxMiAoT1VUKSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFVEQ0NTX0JPX1JGUwkoMSA8PCAwKQkvKiBSZWNlaXZlIEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19CT19SUEMJKDEgPDwgMSkJLyogUmVjZWl2ZSBwYWNrZXQgY29tcGxldGUgKi8KKyNkZWZpbmUgVURDQ1NfQk9fRE1FCSgxIDw8IDMpCS8qIERNQSBlbmFibGUgKi8KKyNkZWZpbmUgVURDQ1NfQk9fU1NUCSgxIDw8IDQpCS8qIFNlbnQgc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfQk9fRlNUCSgxIDw8IDUpCS8qIEZvcmNlIHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0JPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCisjZGVmaW5lIFVEQ0NTX0JPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLworCisvKiBJc29jaHJvbm91cyBJTiAtIEVuZHBvaW50IDMsOCwxMyAqLworI2RlZmluZSBVRENDUzMJCV9fUkVHKDB4NDA2MDAwMUMpICAvKiBVREMgRW5kcG9pbnQgMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTOAkJX19SRUcoMHg0MDYwMDAzMCkgIC8qIFVEQyBFbmRwb2ludCA4IChJTikgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxMwkJX19SRUcoMHg0MDYwMDA0NCkgIC8qIFVEQyBFbmRwb2ludCAxMyAoSU4pIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVURDQ1NfSUlfVEZTCSgxIDw8IDApCS8qIFRyYW5zbWl0IEZJRk8gc2VydmljZSAqLworI2RlZmluZSBVRENDU19JSV9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lJX0ZURgkoMSA8PCAyKQkvKiBGbHVzaCBUeCBGSUZPICovCisjZGVmaW5lIFVEQ0NTX0lJX1RVUgkoMSA8PCAzKQkvKiBUcmFuc21pdCBGSUZPIHVuZGVycnVuICovCisjZGVmaW5lIFVEQ0NTX0lJX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworLyogSXNvY2hyb25vdXMgT1VUIC0gRW5kcG9pbnQgNCw5LDE0ICovCisjZGVmaW5lIFVEQ0NTNAkJX19SRUcoMHg0MDYwMDAyMCkgIC8qIFVEQyBFbmRwb2ludCA0IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTOQkJX19SRUcoMHg0MDYwMDAzNCkgIC8qIFVEQyBFbmRwb2ludCA5IChPVVQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTQJCV9fUkVHKDB4NDA2MDAwNDgpICAvKiBVREMgRW5kcG9pbnQgMTQgKE9VVCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVRENDU19JT19SRlMJKDEgPDwgMCkJLyogUmVjZWl2ZSBGSUZPIHNlcnZpY2UgKi8KKyNkZWZpbmUgVURDQ1NfSU9fUlBDCSgxIDw8IDEpCS8qIFJlY2VpdmUgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lPX1JPRgkoMSA8PCAyKQkvKiBSZWNlaXZlIG92ZXJmbG93ICovCisjZGVmaW5lIFVEQ0NTX0lPX0RNRQkoMSA8PCAzKQkvKiBETUEgZW5hYmxlICovCisjZGVmaW5lIFVEQ0NTX0lPX1JORQkoMSA8PCA2KQkvKiBSZWNlaXZlIEZJRk8gbm90IGVtcHR5ICovCisjZGVmaW5lIFVEQ0NTX0lPX1JTUAkoMSA8PCA3KQkvKiBSZWNlaXZlIHNob3J0IHBhY2tldCAqLworCisvKiBJbnRlcnJ1cHQgSU4gLSBFbmRwb2ludCA1LDEwLDE1ICovCisjZGVmaW5lIFVEQ0NTNQkJX19SRUcoMHg0MDYwMDAyNCkgIC8qIFVEQyBFbmRwb2ludCA1IChJbnRlcnJ1cHQpIENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyICovCisjZGVmaW5lIFVEQ0NTMTAJCV9fUkVHKDB4NDA2MDAwMzgpICAvKiBVREMgRW5kcG9pbnQgMTAgKEludGVycnVwdCkgQ29udHJvbC9TdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1MxNQkJX19SRUcoMHg0MDYwMDA0QykgIC8qIFVEQyBFbmRwb2ludCAxNSAoSW50ZXJydXB0KSBDb250cm9sL1N0YXR1cyBSZWdpc3RlciAqLworCisjZGVmaW5lIFVEQ0NTX0lOVF9URlMJKDEgPDwgMCkJLyogVHJhbnNtaXQgRklGTyBzZXJ2aWNlICovCisjZGVmaW5lIFVEQ0NTX0lOVF9UUEMJKDEgPDwgMSkJLyogVHJhbnNtaXQgcGFja2V0IGNvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTX0lOVF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHggRklGTyAqLworI2RlZmluZSBVRENDU19JTlRfVFVSCSgxIDw8IDMpCS8qIFRyYW5zbWl0IEZJRk8gdW5kZXJydW4gKi8KKyNkZWZpbmUgVURDQ1NfSU5UX1NTVAkoMSA8PCA0KQkvKiBTZW50IHN0YWxsICovCisjZGVmaW5lIFVEQ0NTX0lOVF9GU1QJKDEgPDwgNSkJLyogRm9yY2Ugc3RhbGwgKi8KKyNkZWZpbmUgVURDQ1NfSU5UX1RTUAkoMSA8PCA3KQkvKiBUcmFuc21pdCBzaG9ydCBwYWNrZXQgKi8KKworI2RlZmluZSBVRk5SSAkJX19SRUcoMHg0MDYwMDA2MCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgSGlnaCAqLworI2RlZmluZSBVRk5STAkJX19SRUcoMHg0MDYwMDA2NCkgIC8qIFVEQyBGcmFtZSBOdW1iZXIgUmVnaXN0ZXIgTG93ICovCisjZGVmaW5lIFVCQ1IyCQlfX1JFRygweDQwNjAwMDY4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDIgKi8KKyNkZWZpbmUgVUJDUjQJCV9fUkVHKDB4NDA2MDAwNmMpICAvKiBVREMgQnl0ZSBDb3VudCBSZWcgNCAqLworI2RlZmluZSBVQkNSNwkJX19SRUcoMHg0MDYwMDA3MCkgIC8qIFVEQyBCeXRlIENvdW50IFJlZyA3ICovCisjZGVmaW5lIFVCQ1I5CQlfX1JFRygweDQwNjAwMDc0KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDkgKi8KKyNkZWZpbmUgVUJDUjEyCQlfX1JFRygweDQwNjAwMDc4KSAgLyogVURDIEJ5dGUgQ291bnQgUmVnIDEyICovCisjZGVmaW5lIFVCQ1IxNAkJX19SRUcoMHg0MDYwMDA3YykgIC8qIFVEQyBCeXRlIENvdW50IFJlZyAxNCAqLworI2RlZmluZSBVRERSMAkJX19SRUcoMHg0MDYwMDA4MCkgIC8qIFVEQyBFbmRwb2ludCAwIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEJCV9fUkVHKDB4NDA2MDAxMDApICAvKiBVREMgRW5kcG9pbnQgMSBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFIyCQlfX1JFRygweDQwNjAwMTgwKSAgLyogVURDIEVuZHBvaW50IDIgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSMwkJX19SRUcoMHg0MDYwMDIwMCkgIC8qIFVEQyBFbmRwb2ludCAzIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjQJCV9fUkVHKDB4NDA2MDA0MDApICAvKiBVREMgRW5kcG9pbnQgNCBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI1CQlfX1JFRygweDQwNjAwMEEwKSAgLyogVURDIEVuZHBvaW50IDUgRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSNgkJX19SRUcoMHg0MDYwMDYwMCkgIC8qIFVEQyBFbmRwb2ludCA2IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjcJCV9fUkVHKDB4NDA2MDA2ODApICAvKiBVREMgRW5kcG9pbnQgNyBEYXRhIFJlZ2lzdGVyICovCisjZGVmaW5lIFVERFI4CQlfX1JFRygweDQwNjAwNzAwKSAgLyogVURDIEVuZHBvaW50IDggRGF0YSBSZWdpc3RlciAqLworI2RlZmluZSBVRERSOQkJX19SRUcoMHg0MDYwMDkwMCkgIC8qIFVEQyBFbmRwb2ludCA5IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEwCQlfX1JFRygweDQwNjAwMEMwKSAgLyogVURDIEVuZHBvaW50IDEwIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjExCQlfX1JFRygweDQwNjAwQjAwKSAgLyogVURDIEVuZHBvaW50IDExIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEyCQlfX1JFRygweDQwNjAwQjgwKSAgLyogVURDIEVuZHBvaW50IDEyIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjEzCQlfX1JFRygweDQwNjAwQzAwKSAgLyogVURDIEVuZHBvaW50IDEzIERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjE0CQlfX1JFRygweDQwNjAwRTAwKSAgLyogVURDIEVuZHBvaW50IDE0IERhdGEgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVUREUjE1CQlfX1JFRygweDQwNjAwMEUwKSAgLyogVURDIEVuZHBvaW50IDE1IERhdGEgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVSUNSMAkJX19SRUcoMHg0MDYwMDA1MCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAwICovCisKKyNkZWZpbmUgVUlDUjBfSU0wCSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDAgKi8KKyNkZWZpbmUgVUlDUjBfSU0xCSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDEgKi8KKyNkZWZpbmUgVUlDUjBfSU0yCSgxIDw8IDIpCS8qIEludGVycnVwdCBtYXNrIGVwIDIgKi8KKyNkZWZpbmUgVUlDUjBfSU0zCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDMgKi8KKyNkZWZpbmUgVUlDUjBfSU00CSgxIDw8IDQpCS8qIEludGVycnVwdCBtYXNrIGVwIDQgKi8KKyNkZWZpbmUgVUlDUjBfSU01CSgxIDw8IDUpCS8qIEludGVycnVwdCBtYXNrIGVwIDUgKi8KKyNkZWZpbmUgVUlDUjBfSU02CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDYgKi8KKyNkZWZpbmUgVUlDUjBfSU03CSgxIDw8IDcpCS8qIEludGVycnVwdCBtYXNrIGVwIDcgKi8KKworI2RlZmluZSBVSUNSMQkJX19SRUcoMHg0MDYwMDA1NCkgIC8qIFVEQyBJbnRlcnJ1cHQgQ29udHJvbCBSZWdpc3RlciAxICovCisKKyNkZWZpbmUgVUlDUjFfSU04CSgxIDw8IDApCS8qIEludGVycnVwdCBtYXNrIGVwIDggKi8KKyNkZWZpbmUgVUlDUjFfSU05CSgxIDw8IDEpCS8qIEludGVycnVwdCBtYXNrIGVwIDkgKi8KKyNkZWZpbmUgVUlDUjFfSU0xMAkoMSA8PCAyKQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMCAqLworI2RlZmluZSBVSUNSMV9JTTExCSgxIDw8IDMpCS8qIEludGVycnVwdCBtYXNrIGVwIDExICovCisjZGVmaW5lIFVJQ1IxX0lNMTIJKDEgPDwgNCkJLyogSW50ZXJydXB0IG1hc2sgZXAgMTIgKi8KKyNkZWZpbmUgVUlDUjFfSU0xMwkoMSA8PCA1KQkvKiBJbnRlcnJ1cHQgbWFzayBlcCAxMyAqLworI2RlZmluZSBVSUNSMV9JTTE0CSgxIDw8IDYpCS8qIEludGVycnVwdCBtYXNrIGVwIDE0ICovCisjZGVmaW5lIFVJQ1IxX0lNMTUJKDEgPDwgNykJLyogSW50ZXJydXB0IG1hc2sgZXAgMTUgKi8KKworI2RlZmluZSBVU0lSMAkJX19SRUcoMHg0MDYwMDA1OCkgIC8qIFVEQyBTdGF0dXMgSW50ZXJydXB0IFJlZ2lzdGVyIDAgKi8KKworI2RlZmluZSBVU0lSMF9JUjAJKDEgPDwgMCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMCAqLworI2RlZmluZSBVU0lSMF9JUjEJKDEgPDwgMSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMSAqLworI2RlZmluZSBVU0lSMF9JUjIJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMiAqLworI2RlZmluZSBVU0lSMF9JUjMJKDEgPDwgMykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMyAqLworI2RlZmluZSBVU0lSMF9JUjQJKDEgPDwgNCkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNCAqLworI2RlZmluZSBVU0lSMF9JUjUJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNSAqLworI2RlZmluZSBVU0lSMF9JUjYJKDEgPDwgNikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNiAqLworI2RlZmluZSBVU0lSMF9JUjcJKDEgPDwgNykJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgNyAqLworCisjZGVmaW5lIFVTSVIxCQlfX1JFRygweDQwNjAwMDVDKSAgLyogVURDIFN0YXR1cyBJbnRlcnJ1cHQgUmVnaXN0ZXIgMSAqLworCisjZGVmaW5lIFVTSVIxX0lSOAkoMSA8PCAwKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA4ICovCisjZGVmaW5lIFVTSVIxX0lSOQkoMSA8PCAxKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCA5ICovCisjZGVmaW5lIFVTSVIxX0lSMTAJKDEgPDwgMikJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTAgKi8KKyNkZWZpbmUgVVNJUjFfSVIxMQkoMSA8PCAzKQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxMSAqLworI2RlZmluZSBVU0lSMV9JUjEyCSgxIDw8IDQpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDEyICovCisjZGVmaW5lIFVTSVIxX0lSMTMJKDEgPDwgNSkJLyogSW50ZXJydXB0IHJlcXVlc3QgZXAgMTMgKi8KKyNkZWZpbmUgVVNJUjFfSVIxNAkoMSA8PCA2KQkvKiBJbnRlcnJ1cHQgcmVxdWVzdCBlcCAxNCAqLworI2RlZmluZSBVU0lSMV9JUjE1CSgxIDw8IDcpCS8qIEludGVycnVwdCByZXF1ZXN0IGVwIDE1ICovCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTI3eC11ZGMuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9weGEyN3gtdWRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMxY2Y3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMjd4LXVkYy5oCkBAIC0wLDAgKzEsMjU3IEBACisjaWZuZGVmIF9BU01fQVJDSF9QWEEyN1hfVURDX0gKKyNkZWZpbmUgX0FTTV9BUkNIX1BYQTI3WF9VRENfSAorCisjaWZkZWYgX0FTTV9BUkNIX1BYQTI1WF9VRENfSAorI2Vycm9yIFlvdSBjYW5ub3QgaW5jbHVkZSBib3RoIFBYQTI1eCBhbmQgUFhBMjd4IFVEQyBzdXBwb3J0CisjZW5kaWYKKworI2RlZmluZSBVRENDUiAgICAgICAgICAgX19SRUcoMHg0MDYwMDAwMCkgLyogVURDIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVURDQ1JfT0VOCSgxIDw8IDMxKQkvKiBPbi10aGUtR28gRW5hYmxlICovCisjZGVmaW5lIFVEQ0NSX0FBTFRITlAJKDEgPDwgMzApCS8qIEEtZGV2aWNlIEFsdGVybmF0ZSBIb3N0IE5lZ290aWF0aW9uCisJCQkJCSAgIFByb3RvY29sIFBvcnQgU3VwcG9ydCAqLworI2RlZmluZSBVRENDUl9BSE5QCSgxIDw8IDI5KQkvKiBBLWRldmljZSBIb3N0IE5lZ290aWF0aW9uIFByb3RvY29sCisJCQkJCSAgIFN1cHBvcnQgKi8KKyNkZWZpbmUgVURDQ1JfQkhOUAkoMSA8PCAyOCkJLyogQi1kZXZpY2UgSG9zdCBOZWdvdGlhdGlvbiBQcm90b2NvbAorCQkJCQkgICBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1JfRFdSRQkoMSA8PCAxNikJLyogRGV2aWNlIFJlbW90ZSBXYWtlLXVwIEVuYWJsZSAqLworI2RlZmluZSBVRENDUl9BQ04JKDB4MDMgPDwgMTEpCS8qIEFjdGl2ZSBVREMgY29uZmlndXJhdGlvbiBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ1JfQUNOX1MJMTEKKyNkZWZpbmUgVURDQ1JfQUlOCSgweDA3IDw8IDgpCS8qIEFjdGl2ZSBVREMgaW50ZXJmYWNlIE51bWJlciAqLworI2RlZmluZSBVRENDUl9BSU5fUwk4CisjZGVmaW5lIFVEQ0NSX0FBSVNOCSgweDA3IDw8IDUpCS8qIEFjdGl2ZSBVREMgQWx0ZXJuYXRlIEludGVyZmFjZQorCQkJCQkgICBTZXR0aW5nIE51bWJlciAqLworI2RlZmluZSBVRENDUl9BQUlTTl9TCTUKKyNkZWZpbmUgVURDQ1JfU01BQwkoMSA8PCA0KQkvKiBTd2l0Y2ggRW5kcG9pbnQgTWVtb3J5IHRvIEFjdGl2ZQorCQkJCQkgICBDb25maWd1cmF0aW9uICovCisjZGVmaW5lIFVEQ0NSX0VNQ0UJKDEgPDwgMykJLyogRW5kcG9pbnQgTWVtb3J5IENvbmZpZ3VyYXRpb24KKwkJCQkJICAgRXJyb3IgKi8KKyNkZWZpbmUgVURDQ1JfVURSCSgxIDw8IDIpCS8qIFVEQyBSZXN1bWUgKi8KKyNkZWZpbmUgVURDQ1JfVURBCSgxIDw8IDEpCS8qIFVEQyBBY3RpdmUgKi8KKyNkZWZpbmUgVURDQ1JfVURFCSgxIDw8IDApCS8qIFVEQyBFbmFibGUgKi8KKworI2RlZmluZSBVRENJQ1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwNCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMCAqLworI2RlZmluZSBVRENJQ1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAwOCkgLyogVURDIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyMSAqLworI2RlZmluZSBVRENJQ1JfRklGT0VSUgkoMSA8PCAxKQkvKiBGSUZPIEVycm9yIGludGVycnVwdCBmb3IgRVAgKi8KKyNkZWZpbmUgVURDSUNSX1BLVENPTVBMICgxIDw8IDApCS8qIFBhY2tldCBDb21wbGV0ZSBpbnRlcnJ1cHQgZm9yIEVQICovCisKKyNkZWZpbmUgVURDX0lOVF9GSUZPRVJST1IgICgweDIpCisjZGVmaW5lIFVEQ19JTlRfUEFDS0VUQ01QICAoMHgxKQorCisjZGVmaW5lIFVEQ0lDUl9JTlQobixpbnRyKSAoKChpbnRyKSAmIDB4MDMpIDw8ICgoKG4pICYgMHgwRikgKiAyKSkKKyNkZWZpbmUgVURDSUNSMV9JRUNDCSgxIDw8IDMxKQkvKiBJbnRFbiAtIENvbmZpZ3VyYXRpb24gQ2hhbmdlICovCisjZGVmaW5lIFVEQ0lDUjFfSUVTT0YJKDEgPDwgMzApCS8qIEludEVuIC0gU3RhcnQgb2YgRnJhbWUgKi8KKyNkZWZpbmUgVURDSUNSMV9JRVJVCSgxIDw8IDI5KQkvKiBJbnRFbiAtIFJlc3VtZSAqLworI2RlZmluZSBVRENJQ1IxX0lFU1UJKDEgPDwgMjgpCS8qIEludEVuIC0gU3VzcGVuZCAqLworI2RlZmluZSBVRENJQ1IxX0lFUlMJKDEgPDwgMjcpCS8qIEludEVuIC0gUmVzZXQgKi8KKworI2RlZmluZSBVRENJU1IwICAgICAgICAgX19SRUcoMHg0MDYwMDAwQykgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBVRENJU1IxICAgICAgICAgX19SRUcoMHg0MDYwMDAxMCkgLyogVURDIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBVRENJU1JfSU5UKG4saW50cikgKCgoaW50cikgJiAweDAzKSA8PCAoKChuKSAmIDB4MEYpICogMikpCisjZGVmaW5lIFVEQ0lTUjFfSVJDQwkoMSA8PCAzMSkJLyogSW50UmVxIC0gQ29uZmlndXJhdGlvbiBDaGFuZ2UgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlNPRgkoMSA8PCAzMCkJLyogSW50UmVxIC0gU3RhcnQgb2YgRnJhbWUgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlJVCSgxIDw8IDI5KQkvKiBJbnRSZXEgLSBSZXN1bWUgKi8KKyNkZWZpbmUgVURDSVNSMV9JUlNVCSgxIDw8IDI4KQkvKiBJbnRSZXEgLSBTdXNwZW5kICovCisjZGVmaW5lIFVEQ0lTUjFfSVJSUwkoMSA8PCAyNykJLyogSW50UmVxIC0gUmVzZXQgKi8KKworI2RlZmluZSBVRENGTlIgICAgICAgICAgX19SRUcoMHg0MDYwMDAxNCkgLyogVURDIEZyYW1lIE51bWJlciBSZWdpc3RlciAqLworI2RlZmluZSBVRENPVEdJQ1IJX19SRUcoMHg0MDYwMDAxOCkgLyogVURDIE9uLVRoZS1HbyBpbnRlcnJ1cHQgY29udHJvbCAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVTRgkoMSA8PCAyNCkJLyogT1RHIFNFVF9GRUFUVVJFIGNvbW1hbmQgcmVjdmQgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFWFIJKDEgPDwgMTcpCS8qIEV4dHJhIFRyYW5zY2lldmVyIEludGVycnVwdAorCQkJCQkgICBSaXNpbmcgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVhGCSgxIDw8IDE2KQkvKiBFeHRyYSBUcmFuc2NpZXZlciBJbnRlcnJ1cHQKKwkJCQkJICAgRmFsbGluZyBFZGdlIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFVlY0MFIgKDEgPDwgOSkJLyogT1RHIFZidXMgVmFsaWQgNC4wViBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDBGICgxIDw8IDgpCS8qIE9URyBWYnVzIFZhbGlkIDQuMFYgRmFsbGluZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFVlY0NFIgKDEgPDwgNykJLyogT1RHIFZidXMgVmFsaWQgNC40ViBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVZWNDRGICgxIDw8IDYpCS8qIE9URyBWYnVzIFZhbGlkIDQuNFYgRmFsbGluZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFU1ZSCSgxIDw8IDUpCS8qIE9URyBTZXNzaW9uIFZhbGlkIFJpc2luZyBFZGdlCisJCQkJCSAgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgVURDT1RHSUNSX0lFU1ZGCSgxIDw8IDQpCS8qIE9URyBTZXNzaW9uIFZhbGlkIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNEUgkoMSA8PCAzKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBSaXNpbmcKKwkJCQkJICAgRWRnZSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRVNERgkoMSA8PCAyKQkvKiBPVEcgQS1EZXZpY2UgU1JQIERldGVjdCBGYWxsaW5nCisJCQkJCSAgIEVkZ2UgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVRENPVEdJQ1JfSUVJRFIJKDEgPDwgMSkJLyogT1RHIElEIENoYW5nZSBSaXNpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVEQ09UR0lDUl9JRUlERgkoMSA8PCAwKQkvKiBPVEcgSUQgQ2hhbmdlIEZhbGxpbmcgRWRnZQorCQkJCQkgICBJbnRlcnJ1cHQgRW5hYmxlICovCisKKyNkZWZpbmUgVVAyT0NSCQkgIF9fUkVHKDB4NDA2MDAwMjApICAvKiBVU0IgUG9ydCAyIE91dHB1dCBDb250cm9sIHJlZ2lzdGVyICovCisjZGVmaW5lIFVQM09DUgkJICBfX1JFRygweDQwNjAwMDI0KSAgLyogVVNCIFBvcnQgMiBPdXRwdXQgQ29udHJvbCByZWdpc3RlciAqLworCisjZGVmaW5lIFVQMk9DUl9DUFZFTgkoMSA8PCAwKQkvKiBDaGFyZ2UgUHVtcCBWYnVzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfQ1BWUEUJKDEgPDwgMSkJLyogQ2hhcmdlIFB1bXAgVmJ1cyBQdWxzZSBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RQUERFCSgxIDw8IDIpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgRG93biBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RNUERFCSgxIDw8IDMpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQtIFB1bGwgRG93biBFbmFibGUgKi8KKyNkZWZpbmUgVVAyT0NSX0RQUFVFCSgxIDw8IDQpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgVXAgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9ETVBVRQkoMSA8PCA1KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBELSBQdWxsIFVwIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRFBQVUJFCSgxIDw8IDYpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQrIFB1bGwgVXAgQnlwYXNzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRE1QVUJFCSgxIDw8IDcpCS8qIEhvc3QgUG9ydCAyIFRyYW5zY2VpdmVyIEQtIFB1bGwgVXAgQnlwYXNzIEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfRVhTUAkJKDEgPDwgOCkJLyogRXh0ZXJuYWwgVHJhbnNjZWl2ZXIgU3BlZWQgQ29udHJvbCAqLworI2RlZmluZSBVUDJPQ1JfRVhTVVMJKDEgPDwgOSkJLyogRXh0ZXJuYWwgVHJhbnNjZWl2ZXIgU3BlZWQgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9JRE9OCQkoMSA8PCAxMCkJLyogT1RHIElEIFJlYWQgRW5hYmxlICovCisjZGVmaW5lIFVQMk9DUl9IWFMJCSgxIDw8IDE2KQkvKiBIb3N0IFBvcnQgMiBUcmFuc2NlaXZlciBPdXRwdXQgU2VsZWN0ICovCisjZGVmaW5lIFVQMk9DUl9IWE9FCQkoMSA8PCAxNykJLyogSG9zdCBQb3J0IDIgVHJhbnNjZWl2ZXIgT3V0cHV0IEVuYWJsZSAqLworI2RlZmluZSBVUDJPQ1JfU0VPUwkJKDEgPDwgMjQpCS8qIFNpbmdsZS1FbmRlZCBPdXRwdXQgU2VsZWN0ICovCisKKyNkZWZpbmUgVURDQ1NOKHgpCV9fUkVHMigweDQwNjAwMTAwLCAoeCkgPDwgMikKKyNkZWZpbmUgVURDQ1NSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAxMDApIC8qIFVEQyBDb250cm9sL1N0YXR1cyByZWdpc3RlciAtIEVuZHBvaW50IDAgKi8KKyNkZWZpbmUgVURDQ1NSMF9TQQkoMSA8PCA3KQkvKiBTZXR1cCBBY3RpdmUgKi8KKyNkZWZpbmUgVURDQ1NSMF9STkUJKDEgPDwgNikJLyogUmVjZWl2ZSBGSUZPIE5vdCBFbXB0eSAqLworI2RlZmluZSBVRENDU1IwX0ZTVAkoMSA8PCA1KQkvKiBGb3JjZSBTdGFsbCAqLworI2RlZmluZSBVRENDU1IwX1NTVAkoMSA8PCA0KQkvKiBTZW50IFN0YWxsICovCisjZGVmaW5lIFVEQ0NTUjBfRE1FCSgxIDw8IDMpCS8qIERNQSBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ1NSMF9GVEYJKDEgPDwgMikJLyogRmx1c2ggVHJhbnNtaXQgRklGTyAqLworI2RlZmluZSBVRENDU1IwX0lQUgkoMSA8PCAxKQkvKiBJTiBQYWNrZXQgUmVhZHkgKi8KKyNkZWZpbmUgVURDQ1NSMF9PUEMJKDEgPDwgMCkJLyogT1VUIFBhY2tldCBDb21wbGV0ZSAqLworCisjZGVmaW5lIFVEQ0NTUkEgICAgICAgICBfX1JFRygweDQwNjAwMTA0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBBICovCisjZGVmaW5lIFVEQ0NTUkIgICAgICAgICBfX1JFRygweDQwNjAwMTA4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBCICovCisjZGVmaW5lIFVEQ0NTUkMgICAgICAgICBfX1JFRygweDQwNjAwMTBDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBDICovCisjZGVmaW5lIFVEQ0NTUkQgICAgICAgICBfX1JFRygweDQwNjAwMTEwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBEICovCisjZGVmaW5lIFVEQ0NTUkUgICAgICAgICBfX1JFRygweDQwNjAwMTE0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBFICovCisjZGVmaW5lIFVEQ0NTUkYgICAgICAgICBfX1JFRygweDQwNjAwMTE4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBGICovCisjZGVmaW5lIFVEQ0NTUkcgICAgICAgICBfX1JFRygweDQwNjAwMTFDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBHICovCisjZGVmaW5lIFVEQ0NTUkggICAgICAgICBfX1JFRygweDQwNjAwMTIwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBIICovCisjZGVmaW5lIFVEQ0NTUkkgICAgICAgICBfX1JFRygweDQwNjAwMTI0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBJICovCisjZGVmaW5lIFVEQ0NTUkogICAgICAgICBfX1JFRygweDQwNjAwMTI4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBKICovCisjZGVmaW5lIFVEQ0NTUksgICAgICAgICBfX1JFRygweDQwNjAwMTJDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBLICovCisjZGVmaW5lIFVEQ0NTUkwgICAgICAgICBfX1JFRygweDQwNjAwMTMwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBMICovCisjZGVmaW5lIFVEQ0NTUk0gICAgICAgICBfX1JFRygweDQwNjAwMTM0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBNICovCisjZGVmaW5lIFVEQ0NTUk4gICAgICAgICBfX1JFRygweDQwNjAwMTM4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBOICovCisjZGVmaW5lIFVEQ0NTUlAgICAgICAgICBfX1JFRygweDQwNjAwMTNDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBQICovCisjZGVmaW5lIFVEQ0NTUlEgICAgICAgICBfX1JFRygweDQwNjAwMTQwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBRICovCisjZGVmaW5lIFVEQ0NTUlIgICAgICAgICBfX1JFRygweDQwNjAwMTQ0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBSICovCisjZGVmaW5lIFVEQ0NTUlMgICAgICAgICBfX1JFRygweDQwNjAwMTQ4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBTICovCisjZGVmaW5lIFVEQ0NTUlQgICAgICAgICBfX1JFRygweDQwNjAwMTRDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBUICovCisjZGVmaW5lIFVEQ0NTUlUgICAgICAgICBfX1JFRygweDQwNjAwMTUwKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBVICovCisjZGVmaW5lIFVEQ0NTUlYgICAgICAgICBfX1JFRygweDQwNjAwMTU0KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBWICovCisjZGVmaW5lIFVEQ0NTUlcgICAgICAgICBfX1JFRygweDQwNjAwMTU4KSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBXICovCisjZGVmaW5lIFVEQ0NTUlggICAgICAgICBfX1JFRygweDQwNjAwMTVDKSAvKiBVREMgQ29udHJvbC9TdGF0dXMgcmVnaXN0ZXIgLSBFbmRwb2ludCBYICovCisKKyNkZWZpbmUgVURDQ1NSX0RQRQkoMSA8PCA5KQkvKiBEYXRhIFBhY2tldCBFcnJvciAqLworI2RlZmluZSBVRENDU1JfRkVGCSgxIDw8IDgpCS8qIEZsdXNoIEVuZHBvaW50IEZJRk8gKi8KKyNkZWZpbmUgVURDQ1NSX1NQCSgxIDw8IDcpCS8qIFNob3J0IFBhY2tldCBDb250cm9sL1N0YXR1cyAqLworI2RlZmluZSBVRENDU1JfQk5FCSgxIDw8IDYpCS8qIEJ1ZmZlciBOb3QgRW1wdHkgKElOIGVuZHBvaW50cykgKi8KKyNkZWZpbmUgVURDQ1NSX0JORgkoMSA8PCA2KQkvKiBCdWZmZXIgTm90IEZ1bGwgKE9VVCBlbmRwb2ludHMpICovCisjZGVmaW5lIFVEQ0NTUl9GU1QJKDEgPDwgNSkJLyogRm9yY2UgU1RBTEwgKi8KKyNkZWZpbmUgVURDQ1NSX1NTVAkoMSA8PCA0KQkvKiBTZW50IFNUQUxMICovCisjZGVmaW5lIFVEQ0NTUl9ETUUJKDEgPDwgMykJLyogRE1BIEVuYWJsZSAqLworI2RlZmluZSBVRENDU1JfVFJOCSgxIDw8IDIpCS8qIFR4L1J4IE5BSyAqLworI2RlZmluZSBVRENDU1JfUEMJKDEgPDwgMSkJLyogUGFja2V0IENvbXBsZXRlICovCisjZGVmaW5lIFVEQ0NTUl9GUwkoMSA8PCAwKQkvKiBGSUZPIG5lZWRzIHNlcnZpY2UgKi8KKworI2RlZmluZSBVRENCQ04oeCkJX19SRUcyKDB4NDA2MDAyMDAsICh4KTw8MikKKyNkZWZpbmUgVURDQkNSMCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUDAgKi8KKyNkZWZpbmUgVURDQkNSQSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEEgKi8KKyNkZWZpbmUgVURDQkNSQiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMDgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEIgKi8KKyNkZWZpbmUgVURDQkNSQyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMEMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEMgKi8KKyNkZWZpbmUgVURDQkNSRCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEQgKi8KKyNkZWZpbmUgVURDQkNSRSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEUgKi8KKyNkZWZpbmUgVURDQkNSRiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMTgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEYgKi8KKyNkZWZpbmUgVURDQkNSRyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMUMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEcgKi8KKyNkZWZpbmUgVURDQkNSSCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEggKi8KKyNkZWZpbmUgVURDQkNSSSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEkgKi8KKyNkZWZpbmUgVURDQkNSSiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMjgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEogKi8KKyNkZWZpbmUgVURDQkNSSyAgICAgICAgIF9fUkVHKDB4NDA2MDAyMkMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEsgKi8KKyNkZWZpbmUgVURDQkNSTCAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUEwgKi8KKyNkZWZpbmUgVURDQkNSTSAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUE0gKi8KKyNkZWZpbmUgVURDQkNSTiAgICAgICAgIF9fUkVHKDB4NDA2MDAyMzgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUE4gKi8KKyNkZWZpbmUgVURDQkNSUCAgICAgICAgIF9fUkVHKDB4NDA2MDAyM0MpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFAgKi8KKyNkZWZpbmUgVURDQkNSUSAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFEgKi8KKyNkZWZpbmUgVURDQkNSUiAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFIgKi8KKyNkZWZpbmUgVURDQkNSUyAgICAgICAgIF9fUkVHKDB4NDA2MDAyNDgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFMgKi8KKyNkZWZpbmUgVURDQkNSVCAgICAgICAgIF9fUkVHKDB4NDA2MDAyNEMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFQgKi8KKyNkZWZpbmUgVURDQkNSVSAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTApIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFUgKi8KKyNkZWZpbmUgVURDQkNSViAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTQpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFYgKi8KKyNkZWZpbmUgVURDQkNSVyAgICAgICAgIF9fUkVHKDB4NDA2MDAyNTgpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFcgKi8KKyNkZWZpbmUgVURDQkNSWCAgICAgICAgIF9fUkVHKDB4NDA2MDAyNUMpIC8qIEJ5dGUgQ291bnQgUmVnaXN0ZXIgLSBFUFggKi8KKworI2RlZmluZSBVRENETih4KQlfX1JFRzIoMHg0MDYwMDMwMCwgKHgpPDwyKQorI2RlZmluZSBQSFlTX1VEQ0ROKHgpCSgweDQwNjAwMzAwICsgKCh4KTw8MikpCisjZGVmaW5lIFBVRENETih4KQkodm9sYXRpbGUgdTMyICopKGlvX3AydihQSFlTX1VEQ0ROKCh4KSkpKQorI2RlZmluZSBVRENEUjAgICAgICAgICAgX19SRUcoMHg0MDYwMDMwMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQMCAqLworI2RlZmluZSBVRENEUkEgICAgICAgICAgX19SRUcoMHg0MDYwMDMwNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQQSAqLworI2RlZmluZSBVRENEUkIgICAgICAgICAgX19SRUcoMHg0MDYwMDMwOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQQiAqLworI2RlZmluZSBVRENEUkMgICAgICAgICAgX19SRUcoMHg0MDYwMDMwQykgLyogRGF0YSBSZWdpc3RlciAtIEVQQyAqLworI2RlZmluZSBVRENEUkQgICAgICAgICAgX19SRUcoMHg0MDYwMDMxMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRCAqLworI2RlZmluZSBVRENEUkUgICAgICAgICAgX19SRUcoMHg0MDYwMDMxNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRSAqLworI2RlZmluZSBVRENEUkYgICAgICAgICAgX19SRUcoMHg0MDYwMDMxOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQRiAqLworI2RlZmluZSBVRENEUkcgICAgICAgICAgX19SRUcoMHg0MDYwMDMxQykgLyogRGF0YSBSZWdpc3RlciAtIEVQRyAqLworI2RlZmluZSBVRENEUkggICAgICAgICAgX19SRUcoMHg0MDYwMDMyMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSCAqLworI2RlZmluZSBVRENEUkkgICAgICAgICAgX19SRUcoMHg0MDYwMDMyNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSSAqLworI2RlZmluZSBVRENEUkogICAgICAgICAgX19SRUcoMHg0MDYwMDMyOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQSiAqLworI2RlZmluZSBVRENEUksgICAgICAgICAgX19SRUcoMHg0MDYwMDMyQykgLyogRGF0YSBSZWdpc3RlciAtIEVQSyAqLworI2RlZmluZSBVRENEUkwgICAgICAgICAgX19SRUcoMHg0MDYwMDMzMCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTCAqLworI2RlZmluZSBVRENEUk0gICAgICAgICAgX19SRUcoMHg0MDYwMDMzNCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTSAqLworI2RlZmluZSBVRENEUk4gICAgICAgICAgX19SRUcoMHg0MDYwMDMzOCkgLyogRGF0YSBSZWdpc3RlciAtIEVQTiAqLworI2RlZmluZSBVRENEUlAgICAgICAgICAgX19SRUcoMHg0MDYwMDMzQykgLyogRGF0YSBSZWdpc3RlciAtIEVQUCAqLworI2RlZmluZSBVRENEUlEgICAgICAgICAgX19SRUcoMHg0MDYwMDM0MCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUSAqLworI2RlZmluZSBVRENEUlIgICAgICAgICAgX19SRUcoMHg0MDYwMDM0NCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUiAqLworI2RlZmluZSBVRENEUlMgICAgICAgICAgX19SRUcoMHg0MDYwMDM0OCkgLyogRGF0YSBSZWdpc3RlciAtIEVQUyAqLworI2RlZmluZSBVRENEUlQgICAgICAgICAgX19SRUcoMHg0MDYwMDM0QykgLyogRGF0YSBSZWdpc3RlciAtIEVQVCAqLworI2RlZmluZSBVRENEUlUgICAgICAgICAgX19SRUcoMHg0MDYwMDM1MCkgLyogRGF0YSBSZWdpc3RlciAtIEVQVSAqLworI2RlZmluZSBVRENEUlYgICAgICAgICAgX19SRUcoMHg0MDYwMDM1NCkgLyogRGF0YSBSZWdpc3RlciAtIEVQViAqLworI2RlZmluZSBVRENEUlcgICAgICAgICAgX19SRUcoMHg0MDYwMDM1OCkgLyogRGF0YSBSZWdpc3RlciAtIEVQVyAqLworI2RlZmluZSBVRENEUlggICAgICAgICAgX19SRUcoMHg0MDYwMDM1QykgLyogRGF0YSBSZWdpc3RlciAtIEVQWCAqLworCisjZGVmaW5lIFVEQ0NOKHgpICAgICAgIF9fUkVHMigweDQwNjAwNDAwLCAoeCk8PDIpCisjZGVmaW5lIFVEQ0NSQSAgICAgICAgICBfX1JFRygweDQwNjAwNDA0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQQSAqLworI2RlZmluZSBVRENDUkIgICAgICAgICAgX19SRUcoMHg0MDYwMDQwOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEIgKi8KKyNkZWZpbmUgVURDQ1JDICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MEMpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBDICovCisjZGVmaW5lIFVEQ0NSRCAgICAgICAgICBfX1JFRygweDQwNjAwNDEwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRCAqLworI2RlZmluZSBVRENDUkUgICAgICAgICAgX19SRUcoMHg0MDYwMDQxNCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEUgKi8KKyNkZWZpbmUgVURDQ1JGICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MTgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBGICovCisjZGVmaW5lIFVEQ0NSRyAgICAgICAgICBfX1JFRygweDQwNjAwNDFDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQRyAqLworI2RlZmluZSBVRENDUkggICAgICAgICAgX19SRUcoMHg0MDYwMDQyMCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEggKi8KKyNkZWZpbmUgVURDQ1JJICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MjQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBJICovCisjZGVmaW5lIFVEQ0NSSiAgICAgICAgICBfX1JFRygweDQwNjAwNDI4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQSiAqLworI2RlZmluZSBVRENDUksgICAgICAgICAgX19SRUcoMHg0MDYwMDQyQykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUEsgKi8KKyNkZWZpbmUgVURDQ1JMICAgICAgICAgIF9fUkVHKDB4NDA2MDA0MzApIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBMICovCisjZGVmaW5lIFVEQ0NSTSAgICAgICAgICBfX1JFRygweDQwNjAwNDM0KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQTSAqLworI2RlZmluZSBVRENDUk4gICAgICAgICAgX19SRUcoMHg0MDYwMDQzOCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUE4gKi8KKyNkZWZpbmUgVURDQ1JQICAgICAgICAgIF9fUkVHKDB4NDA2MDA0M0MpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBQICovCisjZGVmaW5lIFVEQ0NSUSAgICAgICAgICBfX1JFRygweDQwNjAwNDQwKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQUSAqLworI2RlZmluZSBVRENDUlIgICAgICAgICAgX19SRUcoMHg0MDYwMDQ0NCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFIgKi8KKyNkZWZpbmUgVURDQ1JTICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NDgpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBTICovCisjZGVmaW5lIFVEQ0NSVCAgICAgICAgICBfX1JFRygweDQwNjAwNDRDKSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQVCAqLworI2RlZmluZSBVRENDUlUgICAgICAgICAgX19SRUcoMHg0MDYwMDQ1MCkgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFUgKi8KKyNkZWZpbmUgVURDQ1JWICAgICAgICAgIF9fUkVHKDB4NDA2MDA0NTQpIC8qIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgRVBWICovCisjZGVmaW5lIFVEQ0NSVyAgICAgICAgICBfX1JFRygweDQwNjAwNDU4KSAvKiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIEVQVyAqLworI2RlZmluZSBVRENDUlggICAgICAgICAgX19SRUcoMHg0MDYwMDQ1QykgLyogQ29uZmlndXJhdGlvbiByZWdpc3RlciBFUFggKi8KKworI2RlZmluZSBVRENDT05SX0NOCSgweDAzIDw8IDI1KQkvKiBDb25maWd1cmF0aW9uIE51bWJlciAqLworI2RlZmluZSBVRENDT05SX0NOX1MJKDI1KQorI2RlZmluZSBVRENDT05SX0lOCSgweDA3IDw8IDIyKQkvKiBJbnRlcmZhY2UgTnVtYmVyICovCisjZGVmaW5lIFVEQ0NPTlJfSU5fUwkoMjIpCisjZGVmaW5lIFVEQ0NPTlJfQUlTTgkoMHgwNyA8PCAxOSkJLyogQWx0ZXJuYXRlIEludGVyZmFjZSBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ09OUl9BSVNOX1MJKDE5KQorI2RlZmluZSBVRENDT05SX0VOCSgweDBmIDw8IDE1KQkvKiBFbmRwb2ludCBOdW1iZXIgKi8KKyNkZWZpbmUgVURDQ09OUl9FTl9TCSgxNSkKKyNkZWZpbmUgVURDQ09OUl9FVAkoMHgwMyA8PCAxMykJLyogRW5kcG9pbnQgVHlwZTogKi8KKyNkZWZpbmUgVURDQ09OUl9FVF9TCSgxMykKKyNkZWZpbmUgVURDQ09OUl9FVF9JTlQJKDB4MDMgPDwgMTMpCS8qICAgSW50ZXJydXB0ICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfQlVMSwkoMHgwMiA8PCAxMykJLyogICBCdWxrICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfSVNPCSgweDAxIDw8IDEzKQkvKiAgIElzb2Nocm9ub3VzICovCisjZGVmaW5lIFVEQ0NPTlJfRVRfTlUJKDB4MDAgPDwgMTMpCS8qICAgTm90IHVzZWQgKi8KKyNkZWZpbmUgVURDQ09OUl9FRAkoMSA8PCAxMikJLyogRW5kcG9pbnQgRGlyZWN0aW9uICovCisjZGVmaW5lIFVEQ0NPTlJfTVBTCSgweDNmZiA8PCAyKQkvKiBNYXhpbXVtIFBhY2tldCBTaXplICovCisjZGVmaW5lIFVEQ0NPTlJfTVBTX1MJKDIpCisjZGVmaW5lIFVEQ0NPTlJfREUJKDEgPDwgMSkJLyogRG91YmxlIEJ1ZmZlcmluZyBFbmFibGUgKi8KKyNkZWZpbmUgVURDQ09OUl9FRQkoMSA8PCAwKQkvKiBFbmRwb2ludCBFbmFibGUgKi8KKworCisjZGVmaW5lIFVEQ19JTlRfRklGT0VSUk9SICAoMHgyKQorI2RlZmluZSBVRENfSU5UX1BBQ0tFVENNUCAgKDB4MSkKKworI2RlZmluZSBVRENfRk5SX01BU0sgICAgICgweDdmZikKKworI2RlZmluZSBVRENDU1JfV1JfTUFTSyAgIChVRENDU1JfRE1FfFVEQ0NTUl9GU1QpCisjZGVmaW5lIFVEQ19CQ1JfTUFTSyAgICAoMHgzZmYpCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaAppbmRleCA3NjMzMTNjLi42ZWYxZGQwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LWdwaW8uaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19BU01fQVJDSF9QWEEyWFhfR1BJT19ICiAjZGVmaW5lIF9fQVNNX0FSQ0hfUFhBMlhYX0dQSU9fSAogCisjd2FybmluZyBQbGVhc2UgdXNlIG1mcC1weGEyWzU3XXguaCBpbnN0ZWFkIG9mIHB4YTJ4eC1ncGlvLmgKKwogLyogR1BJTyBhbHRlcm5hdGUgZnVuY3Rpb24gYXNzaWdubWVudHMgKi8KIAogI2RlZmluZSBHUElPMV9SU1QJCTEJLyogcmVzZXQgKi8KQEAgLTEzNCw3ICsxMzYsMTEgQEAKICNkZWZpbmUgR1BJTzkzX0NJRl9ERF82CQk5MwkvKiBDYW1lcmEgZGF0YSBwaW4gNiAqLwogI2RlZmluZSBHUElPOTRfQ0lGX0REXzUJCTk0CS8qIENhbWVyYSBkYXRhIHBpbiA1ICovCiAjZGVmaW5lIEdQSU85NV9DSUZfRERfNAkJOTUJLyogQ2FtZXJhIGRhdGEgcGluIDQgKi8KKyNkZWZpbmUgR1BJTzk2X0ZGUlhECQk5NgkvKiBGRlVBUlQgcmVjaWV2ZSAqLworI2RlZmluZSBHUElPOThfRkZSVFMJCTk4CS8qIEZGVUFSVCByZXF1ZXN0IHRvIHNlbmQgKi8KICNkZWZpbmUgR1BJTzk4X0NJRl9ERF8wCQk5OAkvKiBDYW1lcmEgZGF0YSBwaW4gMCAqLworI2RlZmluZSBHUElPOTlfRkZUWEQJCTk5CS8qIEZGVUFSVCB0cmFuc21pdCBkYXRhICovCisjZGVmaW5lIEdQSU8xMDBfRkZDVFMJCTEwMAkvKiBGRlVBUlQgQ2xlYXIgdG8gc2VuZCAqLwogI2RlZmluZSBHUElPMTAyX25QQ0VfMQkJMTAyCS8qIFBDTUNJQSAoUFhBMjd4KSAqLwogI2RlZmluZSBHUElPMTAzX0NJRl9ERF8zCTEwMwkvKiBDYW1lcmEgZGF0YSBwaW4gMyAqLwogI2RlZmluZSBHUElPMTA0X0NJRl9ERF8yCTEwNAkvKiBDYW1lcmEgZGF0YSBwaW4gMiAqLwpAQCAtMzE2LDYgKzMyMiw4IEBACiAjZGVmaW5lIEdQSU84NV9uUENFXzFfTUQJKDg1IHwgR1BJT19BTFRfRk5fMV9PVVQpCiAjZGVmaW5lIEdQSU84NV9DSUZfTFZfTUQJKDg1IHwgR1BJT19BTFRfRk5fM19JTikKICNkZWZpbmUgR1BJTzg2X25QQ0VfMV9NRAkoODYgfCBHUElPX0FMVF9GTl8xX09VVCkKKyNkZWZpbmUgR1BJTzg4X1VTQkgxX1BXUl9NRAkoODggfCBHUElPX0FMVF9GTl8xX0lOKQorI2RlZmluZSBHUElPODlfVVNCSDFfUEVOX01ECSg4OSB8IEdQSU9fQUxUX0ZOXzJfT1VUKQogI2RlZmluZSBHUElPOTBfQ0lGX0REXzRfTUQJKDkwIHwgR1BJT19BTFRfRk5fM19JTikKICNkZWZpbmUgR1BJTzkxX0NJRl9ERF81X01ECSg5MSB8IEdQSU9fQUxUX0ZOXzNfSU4pCiAjZGVmaW5lIEdQSU85Ml9NTUNEQVQwX01ECSg5MiB8IEdQSU9fQUxUX0ZOXzFfT1VUKQpAQCAtMzI0LDggKzMzMiwxMSBAQAogI2RlZmluZSBHUElPOTVfQ0lGX0REXzRfTUQJKDk1IHwgR1BJT19BTFRfRk5fMl9JTikKICNkZWZpbmUgR1BJTzk1X0tQX01LSU42X01ECSg5NSB8IEdQSU9fQUxUX0ZOXzNfSU4pCiAjZGVmaW5lIEdQSU85Nl9LUF9ES0lOM19NRAkoOTYgfCBHUElPX0FMVF9GTl8xX0lOKQorI2RlZmluZSBHUElPOTZfRkZSWERfTUQJCSg5NiB8IEdQSU9fQUxUX0ZOXzNfSU4pCiAjZGVmaW5lIEdQSU85N19LUF9NS0lOM19NRAkoOTcgfCBHUElPX0FMVF9GTl8zX0lOKQogI2RlZmluZSBHUElPOThfQ0lGX0REXzBfTUQJKDk4IHwgR1BJT19BTFRfRk5fMl9JTikKKyNkZWZpbmUgR1BJTzk4X0ZGUlRTX01ECQkoOTggfCBHUElPX0FMVF9GTl8zX09VVCkKKyNkZWZpbmUgR1BJTzk5X0ZGVFhEX01ECQkoOTkgfCBHUElPX0FMVF9GTl8zX09VVCkKICNkZWZpbmUgR1BJTzEwMF9LUF9NS0lOMF9NRAkoMTAwIHwgR1BJT19BTFRfRk5fMV9JTikKICNkZWZpbmUgR1BJTzEwMV9LUF9NS0lOMV9NRAkoMTAxIHwgR1BJT19BTFRfRk5fMV9JTikKICNkZWZpbmUgR1BJTzEwMl9uUENFXzFfTUQJKDEwMiB8IEdQSU9fQUxUX0ZOXzFfT1VUKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3B4YTJ4eC1yZWdzLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LXJlZ3MuaAppbmRleCA5NTUzYjU0Li43M2UwYTMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LXJlZ3MuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcHhhMnh4LXJlZ3MuaApAQCAtODEsNCArODEsMTY2IEBACiAKICNlbmRpZgogCisKKy8qCisgKiBQb3dlciBNYW5hZ2VyCisgKi8KKworI2RlZmluZSBQTUNSCQlfX1JFRygweDQwRjAwMDAwKSAgLyogUG93ZXIgTWFuYWdlciBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIFBTU1IJCV9fUkVHKDB4NDBGMDAwMDQpICAvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIFN0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBQU1BSCQlfX1JFRygweDQwRjAwMDA4KSAgLyogUG93ZXIgTWFuYWdlciBTY3JhdGNoIFBhZCBSZWdpc3RlciAqLworI2RlZmluZSBQV0VSCQlfX1JFRygweDQwRjAwMDBDKSAgLyogUG93ZXIgTWFuYWdlciBXYWtlLXVwIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBQUkVSCQlfX1JFRygweDQwRjAwMDEwKSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFJpc2luZy1FZGdlIERldGVjdCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUEZFUgkJX19SRUcoMHg0MEYwMDAxNCkgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBGYWxsaW5nLUVkZ2UgRGV0ZWN0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBQRURSCQlfX1JFRygweDQwRjAwMDE4KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIEVkZ2UgRGV0ZWN0IFN0YXR1cyBSZWdpc3RlciAqLworI2RlZmluZSBQQ0ZSCQlfX1JFRygweDQwRjAwMDFDKSAgLyogUG93ZXIgTWFuYWdlciBHZW5lcmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUEdTUjAJCV9fUkVHKDB4NDBGMDAwMjApICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzMxLTBdICovCisjZGVmaW5lIFBHU1IxCQlfX1JFRygweDQwRjAwMDI0KSAgLyogUG93ZXIgTWFuYWdlciBHUElPIFNsZWVwIFN0YXRlIFJlZ2lzdGVyIGZvciBHUFs2My0zMl0gKi8KKyNkZWZpbmUgUEdTUjIJCV9fUkVHKDB4NDBGMDAwMjgpICAvKiBQb3dlciBNYW5hZ2VyIEdQSU8gU2xlZXAgU3RhdGUgUmVnaXN0ZXIgZm9yIEdQWzg0LTY0XSAqLworI2RlZmluZSBQR1NSMwkJX19SRUcoMHg0MEYwMDAyQykgIC8qIFBvd2VyIE1hbmFnZXIgR1BJTyBTbGVlcCBTdGF0ZSBSZWdpc3RlciBmb3IgR1BbMTE4LTk2XSAqLworI2RlZmluZSBSQ1NSCQlfX1JFRygweDQwRjAwMDMwKSAgLyogUmVzZXQgQ29udHJvbGxlciBTdGF0dXMgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBQU0xSCQlfX1JFRygweDQwRjAwMDM0KQkvKiBQb3dlciBNYW5hZ2VyIFNsZWVwIENvbmZpZyBSZWdpc3RlciAqLworI2RlZmluZSBQU1RSCQlfX1JFRygweDQwRjAwMDM4KQkvKiBQb3dlciBNYW5hZ2VyIFN0YW5kYnkgQ29uZmlnIFJlZ2lzdGVyICovCisjZGVmaW5lIFBTTlIJCV9fUkVHKDB4NDBGMDAwM0MpCS8qIFBvd2VyIE1hbmFnZXIgU2Vuc2UgQ29uZmlnIFJlZ2lzdGVyICovCisjZGVmaW5lIFBWQ1IJCV9fUkVHKDB4NDBGMDAwNDApCS8qIFBvd2VyIE1hbmFnZXIgVm9sdGFnZUNvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUEtXUgkJX19SRUcoMHg0MEYwMDA1MCkJLyogUG93ZXIgTWFuYWdlciBLQiBXYWtlLXVwIEVuYWJsZSBSZWcgKi8KKyNkZWZpbmUgUEtTUgkJX19SRUcoMHg0MEYwMDA1NCkJLyogUG93ZXIgTWFuYWdlciBLQiBMZXZlbC1EZXRlY3QgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgUENNRCh4KQlfX1JFRzIoMHg0MEYwMDA4MCwgKHgpPDwyKQorI2RlZmluZSBQQ01EMAlfX1JFRygweDQwRjAwMDgwICsgMCAqIDQpCisjZGVmaW5lIFBDTUQxCV9fUkVHKDB4NDBGMDAwODAgKyAxICogNCkKKyNkZWZpbmUgUENNRDIJX19SRUcoMHg0MEYwMDA4MCArIDIgKiA0KQorI2RlZmluZSBQQ01EMwlfX1JFRygweDQwRjAwMDgwICsgMyAqIDQpCisjZGVmaW5lIFBDTUQ0CV9fUkVHKDB4NDBGMDAwODAgKyA0ICogNCkKKyNkZWZpbmUgUENNRDUJX19SRUcoMHg0MEYwMDA4MCArIDUgKiA0KQorI2RlZmluZSBQQ01ENglfX1JFRygweDQwRjAwMDgwICsgNiAqIDQpCisjZGVmaW5lIFBDTUQ3CV9fUkVHKDB4NDBGMDAwODAgKyA3ICogNCkKKyNkZWZpbmUgUENNRDgJX19SRUcoMHg0MEYwMDA4MCArIDggKiA0KQorI2RlZmluZSBQQ01EOQlfX1JFRygweDQwRjAwMDgwICsgOSAqIDQpCisjZGVmaW5lIFBDTUQxMAlfX1JFRygweDQwRjAwMDgwICsgMTAgKiA0KQorI2RlZmluZSBQQ01EMTEJX19SRUcoMHg0MEYwMDA4MCArIDExICogNCkKKyNkZWZpbmUgUENNRDEyCV9fUkVHKDB4NDBGMDAwODAgKyAxMiAqIDQpCisjZGVmaW5lIFBDTUQxMwlfX1JFRygweDQwRjAwMDgwICsgMTMgKiA0KQorI2RlZmluZSBQQ01EMTQJX19SRUcoMHg0MEYwMDA4MCArIDE0ICogNCkKKyNkZWZpbmUgUENNRDE1CV9fUkVHKDB4NDBGMDAwODAgKyAxNSAqIDQpCisjZGVmaW5lIFBDTUQxNglfX1JFRygweDQwRjAwMDgwICsgMTYgKiA0KQorI2RlZmluZSBQQ01EMTcJX19SRUcoMHg0MEYwMDA4MCArIDE3ICogNCkKKyNkZWZpbmUgUENNRDE4CV9fUkVHKDB4NDBGMDAwODAgKyAxOCAqIDQpCisjZGVmaW5lIFBDTUQxOQlfX1JFRygweDQwRjAwMDgwICsgMTkgKiA0KQorI2RlZmluZSBQQ01EMjAJX19SRUcoMHg0MEYwMDA4MCArIDIwICogNCkKKyNkZWZpbmUgUENNRDIxCV9fUkVHKDB4NDBGMDAwODAgKyAyMSAqIDQpCisjZGVmaW5lIFBDTUQyMglfX1JFRygweDQwRjAwMDgwICsgMjIgKiA0KQorI2RlZmluZSBQQ01EMjMJX19SRUcoMHg0MEYwMDA4MCArIDIzICogNCkKKyNkZWZpbmUgUENNRDI0CV9fUkVHKDB4NDBGMDAwODAgKyAyNCAqIDQpCisjZGVmaW5lIFBDTUQyNQlfX1JFRygweDQwRjAwMDgwICsgMjUgKiA0KQorI2RlZmluZSBQQ01EMjYJX19SRUcoMHg0MEYwMDA4MCArIDI2ICogNCkKKyNkZWZpbmUgUENNRDI3CV9fUkVHKDB4NDBGMDAwODAgKyAyNyAqIDQpCisjZGVmaW5lIFBDTUQyOAlfX1JFRygweDQwRjAwMDgwICsgMjggKiA0KQorI2RlZmluZSBQQ01EMjkJX19SRUcoMHg0MEYwMDA4MCArIDI5ICogNCkKKyNkZWZpbmUgUENNRDMwCV9fUkVHKDB4NDBGMDAwODAgKyAzMCAqIDQpCisjZGVmaW5lIFBDTUQzMQlfX1JFRygweDQwRjAwMDgwICsgMzEgKiA0KQorCisjZGVmaW5lIFBDTURfTUJDCSgxPDwxMikKKyNkZWZpbmUgUENNRF9EQ0UJKDE8PDExKQorI2RlZmluZSBQQ01EX0xDCSgxPDwxMCkKKy8qIEZJWE1FOiAgUENNRF9TUUMgbmVlZCBiZSBjaGVja2VkLiAgICovCisjZGVmaW5lIFBDTURfU1FDCSgzPDw4KQkvKiBjdXJyZW50bHkgb25seSBiaXQgOCBpcyBjaGFuZ2VhYmxlLAorCQkJCSAgIGJpdCA5IHNob3VsZCBiZSAwIGFsbCBkYXkuICovCisjZGVmaW5lIFBWQ1JfVkNTQQkoMHgxPDwxNCkKKyNkZWZpbmUgUFZDUl9Db21tYW5kRGVsYXkgKDB4ZjgwKQorI2RlZmluZSBQQ0ZSX1BJMkNfRU4JKDB4MSA8PCA2KQorCisjZGVmaW5lIFBTU1JfT1RHUEgJKDEgPDwgNikJLyogT1RHIFBlcmlwaGVyYWwgY29udHJvbCBIb2xkICovCisjZGVmaW5lIFBTU1JfUkRICSgxIDw8IDUpCS8qIFJlYWQgRGlzYWJsZSBIb2xkICovCisjZGVmaW5lIFBTU1JfUEgJCSgxIDw8IDQpCS8qIFBlcmlwaGVyYWwgQ29udHJvbCBIb2xkICovCisjZGVmaW5lIFBTU1JfU1RTCSgxIDw8IDMpCS8qIFN0YW5kYnkgTW9kZSBTdGF0dXMgKi8KKyNkZWZpbmUgUFNTUl9WRlMJKDEgPDwgMikJLyogVkREIEZhdWx0IFN0YXR1cyAqLworI2RlZmluZSBQU1NSX0JGUwkoMSA8PCAxKQkvKiBCYXR0ZXJ5IEZhdWx0IFN0YXR1cyAqLworI2RlZmluZSBQU1NSX1NTUwkoMSA8PCAwKQkvKiBTb2Z0d2FyZSBTbGVlcCBTdGF0dXMgKi8KKworI2RlZmluZSBQU0xSX1NMX1JPRAkoMSA8PCAyMCkJLyogU2xlZXAtTW9kZS9EZXBwLVNsZWVwIE1vZGUgblJFU0VUX09VVCBEaXNhYmxlICovCisKKyNkZWZpbmUgUENGUl9STwkJKDEgPDwgMTUpCS8qIFJESCBPdmVycmlkZSAqLworI2RlZmluZSBQQ0ZSX1BPCQkoMSA8PCAxNCkJLyogUEggT3ZlcnJpZGUgKi8KKyNkZWZpbmUgUENGUl9HUFJPRAkoMSA8PCAxMikJLyogR1BJTyBuUkVTRVRfT1VUIERpc2FibGUgKi8KKyNkZWZpbmUgUENGUl9MMV9FTgkoMSA8PCAxMSkJLyogU2xlZXAgTW9kZSBMMSBjb252ZXJ0ZXIgRW5hYmxlICovCisjZGVmaW5lIFBDRlJfRlZDCSgxIDw8IDEwKQkvKiBGcmVxdWVuY3kvVm9sdGFnZSBDaGFuZ2UgKi8KKyNkZWZpbmUgUENGUl9EQ19FTgkoMSA8PCA3KQkvKiBTbGVlcC9kZWVwLXNsZWVwIERDLURDIENvbnZlcnRlciBFbmFibGUgKi8KKyNkZWZpbmUgUENGUl9QSTJDRU4JKDEgPDwgNikJLyogRW5hYmxlIFBJMkMgY29udHJvbGxlciAqLworI2RlZmluZSBQQ0ZSX0dQUl9FTgkoMSA8PCA0KQkvKiBuUkVTRVRfR1BJTyBQaW4gRW5hYmxlICovCisjZGVmaW5lIFBDRlJfRFMJCSgxIDw8IDMpCS8qIERlZXAgU2xlZXAgTW9kZSAqLworI2RlZmluZSBQQ0ZSX0ZTCQkoMSA8PCAyKQkvKiBGbG9hdCBTdGF0aWMgQ2hpcCBTZWxlY3RzICovCisjZGVmaW5lIFBDRlJfRlAJCSgxIDw8IDEpCS8qIEZsb2F0IFBDTUNJQSBjb250cm9scyAqLworI2RlZmluZSBQQ0ZSX09QREUJKDEgPDwgMCkJLyogMy42ODY0IE1IeiBvc2NpbGxhdG9yIHBvd2VyLWRvd24gZW5hYmxlICovCisKKyNkZWZpbmUgUkNTUl9HUFIJKDEgPDwgMykJLyogR1BJTyBSZXNldCAqLworI2RlZmluZSBSQ1NSX1NNUgkoMSA8PCAyKQkvKiBTbGVlcCBNb2RlICovCisjZGVmaW5lIFJDU1JfV0RSCSgxIDw8IDEpCS8qIFdhdGNoZG9nIFJlc2V0ICovCisjZGVmaW5lIFJDU1JfSFdSCSgxIDw8IDApCS8qIEhhcmR3YXJlIFJlc2V0ICovCisKKyNkZWZpbmUgUFdFUl9HUElPKE5iKQkoMSA8PCBOYikJLyogR1BJTyBbMC4uMTVdIHdha2UtdXAgZW5hYmxlICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8wCVBXRVJfR1BJTyAoMCkJLyogR1BJTyAgWzBdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xCVBXRVJfR1BJTyAoMSkJLyogR1BJTyAgWzFdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8yCVBXRVJfR1BJTyAoMikJLyogR1BJTyAgWzJdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8zCVBXRVJfR1BJTyAoMykJLyogR1BJTyAgWzNdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU80CVBXRVJfR1BJTyAoNCkJLyogR1BJTyAgWzRdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU81CVBXRVJfR1BJTyAoNSkJLyogR1BJTyAgWzVdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU82CVBXRVJfR1BJTyAoNikJLyogR1BJTyAgWzZdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU83CVBXRVJfR1BJTyAoNykJLyogR1BJTyAgWzddIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU84CVBXRVJfR1BJTyAoOCkJLyogR1BJTyAgWzhdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU85CVBXRVJfR1BJTyAoOSkJLyogR1BJTyAgWzldIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xMAlQV0VSX0dQSU8gKDEwKQkvKiBHUElPIFsxMF0gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzExCVBXRVJfR1BJTyAoMTEpCS8qIEdQSU8gWzExXSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTIJUFdFUl9HUElPICgxMikJLyogR1BJTyBbMTJdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX0dQSU8xMwlQV0VSX0dQSU8gKDEzKQkvKiBHUElPIFsxM10gd2FrZS11cCBlbmFibGUgICAgICAgICovCisjZGVmaW5lIFBXRVJfR1BJTzE0CVBXRVJfR1BJTyAoMTQpCS8qIEdQSU8gWzE0XSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKyNkZWZpbmUgUFdFUl9HUElPMTUJUFdFUl9HUElPICgxNSkJLyogR1BJTyBbMTVdIHdha2UtdXAgZW5hYmxlICAgICAgICAqLworI2RlZmluZSBQV0VSX1JUQwkweDgwMDAwMDAwCS8qIFJUQyBhbGFybSB3YWtlLXVwIGVuYWJsZSAgICAgICAgKi8KKworLyoKKyAqIFBYQTJ4eCBzcGVjaWZpYyBDb3JlIGNsb2NrIGRlZmluaXRpb25zCisgKi8KKyNkZWZpbmUgQ0NDUgkJX19SRUcoMHg0MTMwMDAwMCkgIC8qIENvcmUgQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLworI2RlZmluZSBDQ1NSCQlfX1JFRygweDQxMzAwMDBDKSAgLyogQ29yZSBDbG9jayBTdGF0dXMgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgQ0tFTgkJX19SRUcoMHg0MTMwMDAwNCkgIC8qIENsb2NrIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBPU0NDCQlfX1JFRygweDQxMzAwMDA4KSAgLyogT3NjaWxsYXRvciBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICovCisKKyNkZWZpbmUgQ0NDUl9OX01BU0sJMHgwMzgwCS8qIFJ1biBNb2RlIEZyZXF1ZW5jeSB0byBUdXJibyBNb2RlIEZyZXF1ZW5jeSBNdWx0aXBsaWVyICovCisjZGVmaW5lIENDQ1JfTV9NQVNLCTB4MDA2MAkvKiBNZW1vcnkgRnJlcXVlbmN5IHRvIFJ1biBNb2RlIEZyZXF1ZW5jeSBNdWx0aXBsaWVyICovCisjZGVmaW5lIENDQ1JfTF9NQVNLCTB4MDAxZgkvKiBDcnlzdGFsIEZyZXF1ZW5jeSB0byBNZW1vcnkgRnJlcXVlbmN5IE11bHRpcGxpZXIgKi8KKworI2RlZmluZSBDS0VOX0FDOTdDT05GICAgKDMxKSAgICAvKiBBQzk3IENvbnRyb2xsZXIgQ29uZmlndXJhdGlvbiAqLworI2RlZmluZSBDS0VOX0NBTUVSQQkoMjQpCS8qIENhbWVyYSBJbnRlcmZhY2UgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fU1NQMQkoMjMpCS8qIFNTUDEgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9NRU1DCSgyMikJLyogTWVtb3J5IENvbnRyb2xsZXIgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTUVNU1RLCSgyMSkJLyogTWVtb3J5IFN0aWNrIEhvc3QgQ29udHJvbGxlciAqLworI2RlZmluZSBDS0VOX0lNCQkoMjApCS8qIEludGVybmFsIE1lbW9yeSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9LRVlQQUQJKDE5KQkvKiBLZXlwYWQgSW50ZXJmYWNlIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1VTSU0JKDE4KQkvKiBVU0lNIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTVNMCSgxNykJLyogTVNMIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTENECSgxNikJLyogTENEIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fUFdSSTJDCSgxNSkJLyogUFdSIEkyQyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0kyQwkoMTQpCS8qIEkyQyBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0ZJQ1AJKDEzKQkvKiBGSUNQIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTU1DCSgxMikJLyogTU1DIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fVVNCCSgxMSkJLyogVVNCIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fQVNTUAkoMTApCS8qIEFTU1AgKFNTUDMpIENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1VTQkhPU1QJKDEwKQkvKiBVU0IgSG9zdCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX09TVElNRVIJKDkpCS8qIE9TIFRpbWVyIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fTlNTUAkoOSkJLyogTlNTUCAoU1NQMikgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fSTJTCSg4KQkvKiBJMlMgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9CVFVBUlQJKDcpCS8qIEJUVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX0ZGVUFSVAkoNikJLyogRkZVQVJUIFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fU1RVQVJUCSg1KQkvKiBTVFVBUlQgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9IV1VBUlQJKDQpCS8qIEhXVUFSVCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1NTUDMJKDQpCS8qIFNTUDMgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9TU1AJKDMpCS8qIFNTUCBVbml0IENsb2NrIEVuYWJsZSAqLworI2RlZmluZSBDS0VOX1NTUDIJKDMpCS8qIFNTUDIgVW5pdCBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9BQzk3CSgyKQkvKiBBQzk3IFVuaXQgQ2xvY2sgRW5hYmxlICovCisjZGVmaW5lIENLRU5fUFdNMQkoMSkJLyogUFdNMSBDbG9jayBFbmFibGUgKi8KKyNkZWZpbmUgQ0tFTl9QV00wCSgwKQkvKiBQV00wIENsb2NrIEVuYWJsZSAqLworCisjZGVmaW5lIE9TQ0NfT09OCSgxIDw8IDEpCS8qIDMyLjc2OGtIeiBPT04gKHdyaXRlLW9uY2Ugb25seSBiaXQpICovCisjZGVmaW5lIE9TQ0NfT09LCSgxIDw8IDApCS8qIDMyLjc2OGtIeiBPT0sgKHJlYWQtb25seSBiaXQpICovCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3JlZ3MtbGNkLmggYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcmVncy1sY2QuaAppbmRleCBmNzYyNDkzLi4zYmE0NjRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcmVncy1sY2QuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvcmVncy1sY2QuaApAQCAtMSw1ICsxLDggQEAKICNpZm5kZWYgX19BU01fQVJDSF9SRUdTX0xDRF9ICiAjZGVmaW5lIF9fQVNNX0FSQ0hfUkVHU19MQ0RfSAorCisjaW5jbHVkZSA8YXNtL2FyY2gvYml0ZmllbGQuaD4KKwogLyoKICAqIExDRCBDb250cm9sbGVyIFJlZ2lzdGVycyBhbmQgQml0cyBEZWZpbml0aW9ucwogICovCkBAIC02OSw3ICs3Miw3IEBACiAjZGVmaW5lIExDQ1IwX1FETQkoMSA8PCAxMSkJLyogTENEIFF1aWNrIERpc2FibGUgbWFzayAqLwogI2RlZmluZSBMQ0NSMF9QREQJKDB4ZmYgPDwgMTIpCS8qIFBhbGV0dGUgRE1BIHJlcXVlc3QgZGVsYXkgKi8KICNkZWZpbmUgTENDUjBfUEREX1MJMTIKLSNkZWZpbmUgTENDUjBfQk0JKDEgPDwgMjApIAkvKiBCcmFuY2ggbWFzayAqLworI2RlZmluZSBMQ0NSMF9CTQkoMSA8PCAyMCkJLyogQnJhbmNoIG1hc2sgKi8KICNkZWZpbmUgTENDUjBfT1VNCSgxIDw8IDIxKQkvKiBPdXRwdXQgRklGTyB1bmRlcnJ1biBtYXNrICovCiAjZGVmaW5lIExDQ1IwX0xDRFQJKDEgPDwgMjIpCS8qIExDRCBwYW5lbCB0eXBlICovCiAjZGVmaW5lIExDQ1IwX1JEU1RNCSgxIDw8IDIzKQkvKiBSZWFkIHN0YXR1cyBpbnRlcnJ1cHQgbWFzayAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtcHhhL3N5c3RlbS5oCmluZGV4IDlhYTZjMmUuLmJhN2UxMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvc3lzdGVtLmgKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgPGFzbS9wcm9jLWZucy5oPgogI2luY2x1ZGUgImhhcmR3YXJlLmgiCisjaW5jbHVkZSAicHhhMnh4LXJlZ3MuaCIKICNpbmNsdWRlICJweGEtcmVncy5oIgogCiBzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9pZGxlKHZvaWQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1weGEvenlsb25pdGUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS96eWxvbml0ZS5oCmluZGV4IDQ4ODFiODAuLmRlNTc3ZGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS96eWxvbml0ZS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXB4YS96eWxvbml0ZS5oCkBAIC0xNSw3ICsxNSw2IEBACiAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fbW1jX3Nsb3Qgenlsb25pdGVfbW1jX3Nsb3RbXTsKIAotZXh0ZXJuIGludCBncGlvX2JhY2tsaWdodDsKIGV4dGVybiBpbnQgZ3Bpb19ldGhfaXJxOwogCiBleHRlcm4gaW50IHdtOTcxM19pcnE7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1ycGMvaW8uaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXJwYy9pby5oCmluZGV4IGI0ZGEwOGQuLjZiZDIyOTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXJwYy9pby5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXJwYy9pby5oCkBAIC0xMjYsNyArMTI2LDcgQEAKIAlyZXR1cm4gKHVuc2lnbmVkIHN6KXZhbHVlOwkJCQkJCVwKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKl9faW9hZGRyKHVuc2lnbmVkIGludCBwb3J0KQorc3RhdGljIGlubGluZSB2b2lkIF9faW9tZW0gKl9fZGVwcmVjYXRlZCBfX2lvYWRkcih1bnNpZ25lZCBpbnQgcG9ydCkKIHsKIAl2b2lkIF9faW9tZW0gKnJldDsKIAlpZiAoX19QT1JUX1BDSU8ocG9ydCkpCkBAIC0yMzIsOCArMjMyLDcgQEAKIAlyZXN1bHQ7CQkJCQkJCQkJXAogfSkKIAotI2RlZmluZSBfX2lvYWRkcmMocG9ydCkJCVwKLQkoKF9fUE9SVF9QQ0lPKHBvcnQpID8gUENJT19CQVNFIDogSU9fQkFTRSkgKyAoKHBvcnQpIDw8IDIpKQorI2RlZmluZSBfX2lvYWRkcmMocG9ydCkJCV9faW9hZGRyKHBvcnQpCiAKICNkZWZpbmUgaW5iKHApCSAJKF9fYnVpbHRpbl9jb25zdGFudF9wKChwKSkgPyBfX2luYmMocCkgICAgOiBfX2luYihwKSkKICNkZWZpbmUgaW53KHApCSAJKF9fYnVpbHRpbl9jb25zdGFudF9wKChwKSkgPyBfX2lud2MocCkgICAgOiBfX2ludyhwKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvZ3Bpby5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmgKaW5kZXggNzU4Mzg5NS4uMThlMTBkMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmgKQEAgLTEsNjggKzEsMTggQEAKLS8qCi0gKiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zM2MyNDEwL2dwaW8uaAorLyogbGludXgvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9ncGlvLmgKICAqCi0gKiBTM0MyNDEwIEdQSU8gd3JhcHBlcnMgZm9yIGFyY2gtbmV1dHJhbCBHUElPIGNhbGxzCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggU2ltdGVjIEVsZWN0cm9uaWNzCisgKglodHRwOi8vYXJtbGludXguc2ltdGVjLmNvLnVrLworICoJQmVuIERvb2tzIDxiZW5Ac2ltdGVjLmNvLnVrPgogICoKLSAqIFdyaXR0ZW4gYnkgUGhpbGlwcCBaYWJlbCA8cGhpbGlwcC56YWJlbEBnbWFpbC5jb20+CisgKiBTM0MyNDEwIC0gR1BJTyBsaWIgc3VwcG9ydAogICoKICAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKLSAqCi0gKi8KKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyovCiAKLSNpZm5kZWYgX19BU01fQVJDSF9TM0MyNDEwX0dQSU9fSAotI2RlZmluZSBfX0FTTV9BUkNIX1MzQzI0MTBfR1BJT19ICisjZGVmaW5lIGdwaW9fZ2V0X3ZhbHVlCV9fZ3Bpb19nZXRfdmFsdWUKKyNkZWZpbmUgZ3Bpb19zZXRfdmFsdWUJX19ncGlvX3NldF92YWx1ZQorI2RlZmluZSBncGlvX2NhbnNsZWVwCV9fZ3Bpb19jYW5zbGVlcAogCi0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGFzbS9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL3JlZ3MtZ3Bpby5oPgotCi1zdGF0aWMgaW5saW5lIGludCBncGlvX3JlcXVlc3QodW5zaWduZWQgZ3BpbywgY29uc3QgY2hhciAqbGFiZWwpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBncGlvX2ZyZWUodW5zaWduZWQgZ3BpbykKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdwaW9fZGlyZWN0aW9uX2lucHV0KHVuc2lnbmVkIGdwaW8pCi17Ci0JczNjMjQxMF9ncGlvX2NmZ3BpbihncGlvLCBTM0MyNDEwX0dQSU9fSU5QVVQpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBncGlvX2RpcmVjdGlvbl9vdXRwdXQodW5zaWduZWQgZ3BpbywgaW50IHZhbHVlKQotewotCXMzYzI0MTBfZ3Bpb19jZmdwaW4oZ3BpbywgUzNDMjQxMF9HUElPX09VVFBVVCk7Ci0JLyogUkVWSVNJVCBjYW4gd2Ugd3JpdGUgdGhlIHZhbHVlIGZpcnN0LCB0byBhdm9pZCBnbGl0Y2hpbmc/ICovCi0JczNjMjQxMF9ncGlvX3NldHBpbihncGlvLCB2YWx1ZSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNkZWZpbmUgZ3Bpb19nZXRfdmFsdWUoZ3BpbykJCXMzYzI0MTBfZ3Bpb19nZXRwaW4oZ3BpbykKLSNkZWZpbmUgZ3Bpb19zZXRfdmFsdWUoZ3Bpbyx2YWx1ZSkJczNjMjQxMF9ncGlvX3NldHBpbihncGlvLCB2YWx1ZSkKLQotI2luY2x1ZGUgPGFzbS1nZW5lcmljL2dwaW8uaD4JCQkvKiBjYW5zbGVlcCB3cmFwcGVycyAqLwotCi0jaWZkZWYgQ09ORklHX0NQVV9TM0MyNDAwCi0jZGVmaW5lIGdwaW9fdG9faXJxKGdwaW8pCQlzM2MyNDAwX2dwaW9fZ2V0aXJxKGdwaW8pCi0jZWxzZQotI2RlZmluZSBncGlvX3RvX2lycShncGlvKQkJczNjMjQxMF9ncGlvX2dldGlycShncGlvKQotI2VuZGlmCi0KLS8qIEZJWE1FIGltcGxlbWVudCBpcnFfdG9fZ3BpbygpICovCi0KLSNlbmRpZgorI2luY2x1ZGUgPGFzbS1nZW5lcmljL2dwaW8uaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXMzYzI0MTAvcmVncy1jbG9jay5oIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9yZWdzLWNsb2NrLmgKaW5kZXggZWNhZTllNy4uMzc2NjEzNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9yZWdzLWNsb2NrLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtczNjMjQxMC9yZWdzLWNsb2NrLmgKQEAgLTE4OSw2ICsxODksOCBAQAogI2RlZmluZSBTM0MyNDEyX0NMS1NSQ19JMlNDTEtfTVBMTAkJKDE8PDkpCiAjZGVmaW5lIFMzQzI0MTJfQ0xLU1JDX1VTQkNMS19IQ0xLCQkoMTw8MTApCiAjZGVmaW5lIFMzQzI0MTJfQ0xLU1JDX0NBTUNMS19IQ0xLCQkoMTw8MTEpCisjZGVmaW5lIFMzQzI0MTJfQ0xLU1JDX1VSRUZDTEtfRVhUQ0xLCSgxPDwxMikKKyNkZWZpbmUgUzNDMjQxMl9DTEtTUkNfRVJFRkNMS19FWFRDTEsJKDE8PDE0KQogCiAjZW5kaWYgLyogQ09ORklHX0NQVV9TM0MyNDEyIHwgQ09ORklHX0NQVV9TM0MyNDEzICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9hcmNoLXNhMTEwMC9jb2xsaWUuaCBiL2luY2x1ZGUvYXNtLWFybS9hcmNoLXNhMTEwMC9jb2xsaWUuaAppbmRleCAxNGEzNDRhLi43NjJlYmE1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vYXJjaC1zYTExMDAvY29sbGllLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2FyY2gtc2ExMTAwL2NvbGxpZS5oCkBAIC0zNCw5ICszNCwxMiBAQAogCiAjZGVmaW5lIENPTExJRV9HUElPX09OX0tFWQkJR1BJT19HUElPICgwKQogI2RlZmluZSBDT0xMSUVfR1BJT19BQ19JTgkJR1BJT19HUElPICgxKQorI2RlZmluZSBDT0xMSUVfR1BJT19TRElPX0lOVAkJR1BJT19HUElPICgxMSkKICNkZWZpbmUgQ09MTElFX0dQSU9fQ0ZfSVJRCQlHUElPX0dQSU8gKDE0KQogI2RlZmluZSBDT0xMSUVfR1BJT19uUkVNT0NPTl9JTlQJR1BJT19HUElPICgxNSkKICNkZWZpbmUgQ09MTElFX0dQSU9fVUNCMXgwMF9SRVNFVAlHUElPX0dQSU8gKDE2KQorI2RlZmluZSBDT0xMSUVfR1BJT19uTUlDX09OCQlHUElPX0dQSU8gKDE3KQorI2RlZmluZSBDT0xMSUVfR1BJT19uUkVNT0NPTl9PTgkJR1BJT19HUElPICgxOCkKICNkZWZpbmUgQ09MTElFX0dQSU9fQ08JCQlHUElPX0dQSU8gKDIwKQogI2RlZmluZSBDT0xMSUVfR1BJT19NQ1BfQ0xLCQlHUElPX0dQSU8gKDIxKQogI2RlZmluZSBDT0xMSUVfR1BJT19DRl9DRAkJR1BJT19HUElPICgyMikKQEAgLTQ5LDYgKzUyLDcgQEAKIAogI2RlZmluZSBDT0xMSUVfSVJRX0dQSU9fT05fS0VZCQlJUlFfR1BJTzAKICNkZWZpbmUgQ09MTElFX0lSUV9HUElPX0FDX0lOCQlJUlFfR1BJTzEKKyNkZWZpbmUgQ09MTElFX0lSUV9HUElPX1NESU9fSVJRCUlSUV9HUElPMTEKICNkZWZpbmUgQ09MTElFX0lSUV9HUElPX0NGX0lSUQkJSVJRX0dQSU8xNAogI2RlZmluZSBDT0xMSUVfSVJRX0dQSU9fblJFTU9DT05fSU5UCUlSUV9HUElPMTUKICNkZWZpbmUgQ09MTElFX0lSUV9HUElPX0NPCQlJUlFfR1BJTzIwCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vYXNzZW1ibGVyLmggYi9pbmNsdWRlL2FzbS1hcm0vYXNzZW1ibGVyLmgKaW5kZXggZmNlODMyOC4uOTExMzkzYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2Fzc2VtYmxlci5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9hc3NlbWJsZXIuaApAQCAtNTYsNiArNTYsMjEgQEAKICNlbmRpZgogCiAvKgorICogVGhpcyBjYW4gYmUgdXNlZCB0byBlbmFibGUgY29kZSB0byBjYWNoZWxpbmUgYWxpZ24gdGhlIGRlc3RpbmF0aW9uCisgKiBwb2ludGVyIHdoZW4gYnVsayB3cml0aW5nIHRvIG1lbW9yeS4gIEV4cGVyaW1lbnRzIG9uIFN0cm9uZ0FSTSBhbmQKKyAqIFhTY2FsZSBkaWRuJ3Qgc2hvdyB0aGlzIGEgd29ydGh3aGlsZSB0aGluZyB0byBkbyB3aGVuIHRoZSBjYWNoZSBpcyBub3QKKyAqIHNldCB0byB3cml0ZS1hbGxvY2F0ZSAodGhpcyB3b3VsZCBuZWVkIGZ1cnRoZXIgdGVzdGluZyBvbiBYU2NhbGUgd2hlbiBXQQorICogaXMgdXNlZCkuCisgKgorICogT24gRmVyb2Nlb24gdGhlcmUgaXMgbXVjaCB0byBnYWluIGhvd2V2ZXIsIHJlZ2FyZGxlc3Mgb2YgY2FjaGUgbW9kZS4KKyAqLworI2lmZGVmIENPTkZJR19DUFVfRkVST0NFT04KKyNkZWZpbmUgQ0FMR04oY29kZS4uLikgY29kZQorI2Vsc2UKKyNkZWZpbmUgQ0FMR04oY29kZS4uLikKKyNlbmRpZgorCisvKgogICogRW5hYmxlIGFuZCBkaXNhYmxlIGludGVycnVwdHMKICAqLwogI2lmIF9fTElOVVhfQVJNX0FSQ0hfXyA+PSA2CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vY2FjaGVmbHVzaC5oIGIvaW5jbHVkZS9hc20tYXJtL2NhY2hlZmx1c2guaAppbmRleCA3NTlhOTdiLi43MGIwZmU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vY2FjaGVmbHVzaC5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9jYWNoZWZsdXNoLmgKQEAgLTk1LDExICs5NSw3IEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9GRVJPQ0VPTikKLSMgaWZkZWYgX0NBQ0hFCi0jICBkZWZpbmUgTVVMVElfQ0FDSEUgMQotIyBlbHNlCi0jICBkZWZpbmUgX0NBQ0hFIGZlcm9jZW9uCi0jIGVuZGlmCisjIGRlZmluZSBNVUxUSV9DQUNIRSAxCiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9WNikKQEAgLTQxMCw2ICs0MDYsMTMgQEAKIAogZXh0ZXJuIHZvaWQgX19mbHVzaF9kY2FjaGVfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IHBhZ2UgKnBhZ2UpOwogCitzdGF0aWMgaW5saW5lIHZvaWQgX19mbHVzaF9pY2FjaGVfYWxsKHZvaWQpCit7CisJYXNtKCJtY3IJcDE1LCAwLCAlMCwgYzcsIGM1LCAwCUAgaW52YWxpZGF0ZSBJLWNhY2hlXG4iCisJICAgIDoKKwkgICAgOiAiciIgKDApKTsKK30KKwogI2RlZmluZSBBUkNIX0hBU19GTFVTSF9BTk9OX1BBR0UKIHN0YXRpYyBpbmxpbmUgdm9pZCBmbHVzaF9hbm9uX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdm1hZGRyKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2R5bnRpY2suaCBiL2luY2x1ZGUvYXNtLWFybS9keW50aWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE5ZmFiMmQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2R5bnRpY2suaAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotI2lmbmRlZiBfQVNNQVJNX0RZTlRJQ0tfSAotI2RlZmluZSBfQVNNQVJNX0RZTlRJQ0tfSAotCi0jaW5jbHVkZSA8YXNtL21hY2gvdGltZS5oPgotCi0jZW5kaWYgLyogX0FTTUFSTV9EWU5USUNLX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9lY2FyZC5oIGIvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKaW5kZXggNjg0ZmUwNi4uNWUyMjg4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2VjYXJkLmgKQEAgLTg1LDE5ICs4NSw2IEBACiAKICNkZWZpbmUgTUFYX0VDQVJEUwk5CiAKLXR5cGVkZWYgZW51bSB7CQkJCS8qIENhcmRzIGFkZHJlc3Mgc3BhY2UJCSovCi0JRUNBUkRfSU9DLAotCUVDQVJEX01FTUMsCi0JRUNBUkRfRUFTSQotfSBjYXJkX3R5cGVfdDsKLQotdHlwZWRlZiBlbnVtIHsJCQkJLyogU3BlZWQgZm9yIEVDQVJEX0lPQyBzcGFjZQkqLwotCUVDQVJEX1NMT1cJID0gMCwKLQlFQ0FSRF9NRURJVU0JID0gMSwKLQlFQ0FSRF9GQVNUCSA9IDIsCi0JRUNBUkRfU1lOQwkgPSAzCi19IGNhcmRfc3BlZWRfdDsKLQogc3RydWN0IGVjYXJkX2lkIHsJCQkvKiBDYXJkIElEIHN0cnVjdHVyZQkJKi8KIAl1bnNpZ25lZCBzaG9ydAltYW51ZmFjdHVyZXI7CiAJdW5zaWduZWQgc2hvcnQJcHJvZHVjdDsKQEAgLTE5MCwxNiArMTc3LDYgQEAKIH07CiAKIC8qCi0gKiBlY2FyZF9jbGFpbTogY2xhaW0gYW4gZXhwYW5zaW9uIGNhcmQgZW50cnkKLSAqLwotI2RlZmluZSBlY2FyZF9jbGFpbShlYykgKChlYyktPmNsYWltZWQgPSAxKQotCi0vKgotICogZWNhcmRfcmVsZWFzZTogcmVsZWFzZSBhbiBleHBhbnNpb24gY2FyZCBlbnRyeQotICovCi0jZGVmaW5lIGVjYXJkX3JlbGVhc2UoZWMpICgoZWMpLT5jbGFpbWVkID0gMCkKLQotLyoKICAqIFJlYWQgYSBjaHVuayBmcm9tIGFuIGV4cGFuc2lvbiBjYXJkCiAgKiBjZCA6IHdoZXJlIHRvIHB1dCByZWFkIGRhdGEKICAqIGVjIDogZXhwYW5zaW9uIGNhcmQgaW5mbyBzdHJ1Y3QKQEAgLTIwOSwxOCArMTg2LDYgQEAKIGV4dGVybiBpbnQgZWNhcmRfcmVhZGNodW5rIChzdHJ1Y3QgaW5fY2h1bmtfZGlyICpjZCwgc3RydWN0IGV4cGFuc2lvbl9jYXJkICplYywgaW50IGlkLCBpbnQgbnVtKTsKIAogLyoKLSAqIE9idGFpbiB0aGUgYWRkcmVzcyBvZiBhIGNhcmQuICBUaGlzIHJldHVybnMgdGhlICJvbGQgc3R5bGUiIGFkZHJlc3MKLSAqIGFuZCBzaG91bGQgbm8gbG9uZ2VyIGJlIHVzZWQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IF9fZGVwcmVjYXRlZAotZWNhcmRfYWRkcmVzcyhzdHJ1Y3QgZXhwYW5zaW9uX2NhcmQgKmVjLCBjYXJkX3R5cGVfdCB0eXBlLCBjYXJkX3NwZWVkX3Qgc3BlZWQpCi17Ci0JZXh0ZXJuIHVuc2lnbmVkIGludCBfX2VjYXJkX2FkZHJlc3Moc3RydWN0IGV4cGFuc2lvbl9jYXJkICosCi0JCQkJCSAgICBjYXJkX3R5cGVfdCwgY2FyZF9zcGVlZF90KTsKLQlyZXR1cm4gX19lY2FyZF9hZGRyZXNzKGVjLCB0eXBlLCBzcGVlZCk7Ci19Ci0KLS8qCiAgKiBSZXF1ZXN0IGFuZCByZWxlYXNlIGVjYXJkIHJlc291cmNlcwogICovCiBleHRlcm4gaW50IGVjYXJkX3JlcXVlc3RfcmVzb3VyY2VzKHN0cnVjdCBleHBhbnNpb25fY2FyZCAqZWMpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2Z0cmFjZS5oIGIvaW5jbHVkZS9hc20tYXJtL2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NGVmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vZnRyYWNlLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfQVNNX0FSTV9GVFJBQ0UKKyNkZWZpbmUgX0FTTV9BUk1fRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjZGVmaW5lIE1DT1VOVF9BRERSCQkoKGxvbmcpKG1jb3VudCkpCisjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNCAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIG1jb3VudCh2b2lkKTsKKyNlbmRpZgorCisjZW5kaWYKKworI2VuZGlmIC8qIF9BU01fQVJNX0ZUUkFDRSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmggYi9pbmNsdWRlL2FzbS1hcm0vaGFyZHdhcmUvaW9wM3h4LWdwaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzkzMzFmCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tYXJtL2hhcmR3YXJlL2lvcDN4eC1ncGlvLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIGxpbnV4L2luY2x1ZGUvYXNtLWFybS9oYXJkd2FyZS9pb3AzeHgtZ3Bpby5oCisgKgorICogSU9QM3h4IEdQSU8gd3JhcHBlcnMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDggQXJuYXVkIFBhdGFyZCA8YXJuYXVkLnBhdGFyZEBydHAtbmV0Lm9yZz4KKyAqIEJhc2VkIG9uIElYUDRYWCBncGlvLmggZmlsZQorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKKyAqCisgKi8KKworI2lmbmRlZiBfX0FTTV9BUk1fSEFSRFdBUkVfSU9QM1hYX0dQSU9fSAorI2RlZmluZSBfX0FTTV9BUk1fSEFSRFdBUkVfSU9QM1hYX0dQSU9fSAorCisjaW5jbHVkZSA8YXNtL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvZ3Bpby5oPgorCisjZGVmaW5lIElPUDNYWF9OX0dQSU9TCTgKKworc3RhdGljIGlubGluZSBpbnQgZ3Bpb19nZXRfdmFsdWUodW5zaWduZWQgZ3BpbykKK3sKKwlpZiAoZ3BpbyA+IElPUDNYWF9OX0dQSU9TKQorCQlyZXR1cm4gX19ncGlvX2dldF92YWx1ZShncGlvKTsKKworCXJldHVybiBncGlvX2xpbmVfZ2V0KGdwaW8pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgZ3Bpb19zZXRfdmFsdWUodW5zaWduZWQgZ3BpbywgaW50IHZhbHVlKQoreworCWlmIChncGlvID4gSU9QM1hYX05fR1BJT1MpIHsKKwkJX19ncGlvX3NldF92YWx1ZShncGlvLCB2YWx1ZSk7CisJCXJldHVybjsKKwl9CisJZ3Bpb19saW5lX3NldChncGlvLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGdwaW9fY2Fuc2xlZXAodW5zaWduZWQgZ3BpbykKK3sKKwlpZiAoZ3BpbyA8IElPUDNYWF9OX0dQSU9TKQorCQlyZXR1cm4gMDsKKwllbHNlCisJCXJldHVybiBfX2dwaW9fY2Fuc2xlZXAoZ3Bpbyk7Cit9CisKKy8qCisgKiBUaGUgR1BJT3MgYXJlIG5vdCBnZW5lcmF0aW5nIGFueSBpbnRlcnJ1cHQKKyAqIE5vdGUgOiBtYW51YWxzIGFyZSBub3QgY2xlYXIgYWJvdXQgdGhpcworICovCitzdGF0aWMgaW5saW5lIGludCBncGlvX3RvX2lycShpbnQgZ3BpbykKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGlubGluZSBpbnQgaXJxX3RvX2dwaW8oaW50IGdwaW8pCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vaHdfaXJxLmggYi9pbmNsdWRlL2FzbS1hcm0vaHdfaXJxLmgKaW5kZXggOThkNTk0YS4uZjFhMDhhNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL2h3X2lycS5oCisrKyBiL2luY2x1ZGUvYXNtLWFybS9od19pcnEuaApAQCAtNiwxNSArNiw0IEBACiAKICNpbmNsdWRlIDxhc20vbWFjaC9pcnEuaD4KIAotI2lmIGRlZmluZWQoQ09ORklHX05PX0lETEVfSFopCi0jIGluY2x1ZGUgPGFzbS9keW50aWNrLmg+Ci0jIGRlZmluZSBoYW5kbGVfZHluYW1pY190aWNrKGFjdGlvbikJCQkJCVwKLQlpZiAoIShhY3Rpb24tPmZsYWdzICYgSVJRRl9USU1FUikgJiYgc3lzdGVtX3RpbWVyLT5keW5fdGljaykgewlcCi0JCXdyaXRlX3NlcWxvY2soJnh0aW1lX2xvY2spOwkJCQlcCi0JCWlmIChzeXN0ZW1fdGltZXItPmR5bl90aWNrLT5zdGF0ZSAmIERZTl9USUNLX0VOQUJMRUQpCVwKLQkJCXN5c3RlbV90aW1lci0+ZHluX3RpY2stPmhhbmRsZXIoaXJxLCBOVUxMKTsJXAotCQl3cml0ZV9zZXF1bmxvY2soJnh0aW1lX2xvY2spOwkJCQlcCi0JfQotI2VuZGlmCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL2tleGVjLmggYi9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaAppbmRleCA0N2ZlMzRkLi5jODk4NmJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0va2V4ZWMuaApAQCAtMTQsOCArMTQsNiBAQAogCiAjZGVmaW5lIEtFWEVDX0FSQ0ggS0VYRUNfQVJDSF9BUk0KIAotI2RlZmluZSBLRVhFQ19CT09UX1BBUkFNU19TSVpFIDE1MzYKLQogI2RlZmluZSBLRVhFQ19BUk1fQVRBR1NfT0ZGU0VUICAweDEwMDAKICNkZWZpbmUgS0VYRUNfQVJNX1pJTUFHRV9PRkZTRVQgMHg4MDAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9rcHJvYmVzLmggYi9pbmNsdWRlL2FzbS1hcm0va3Byb2Jlcy5oCmluZGV4IGMwNDIxOTQuLmIxYTM3ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9rcHJvYmVzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL2twcm9iZXMuaApAQCAtNTksNiArNTksNyBAQAogfTsKIAogdm9pZCBhcmNoX3JlbW92ZV9rcHJvYmUoc3RydWN0IGtwcm9iZSAqKTsKK3ZvaWQga3JldHByb2JlX3RyYW1wb2xpbmUodm9pZCk7CiAKIGludCBrcHJvYmVfdHJhcF9oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgaW5zdHIpOwogaW50IGtwcm9iZV9mYXVsdF9oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBpbnQgZnNyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9tYWNoL3RpbWUuaCBiL2luY2x1ZGUvYXNtLWFybS9tYWNoL3RpbWUuaAppbmRleCA1ZGMzNTcwLi4yZmQzNmVhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vbWFjaC90aW1lLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL21hY2gvdGltZS5oCkBAIC00MSwzMCArNDEsOCBAQAogI2lmbmRlZiBDT05GSUdfR0VORVJJQ19USU1FCiAJdW5zaWduZWQgbG9uZwkJKCpvZmZzZXQpKHZvaWQpOwogI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCXN0cnVjdCBkeW5fdGlja190aW1lcgkqZHluX3RpY2s7Ci0jZW5kaWYKIH07CiAKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCi0jZGVmaW5lIERZTl9USUNLX0VOQUJMRUQJKDEgPDwgMSkKLQotc3RydWN0IGR5bl90aWNrX3RpbWVyIHsKLQlzcGlubG9ja190CWxvY2s7Ci0JdW5zaWduZWQgaW50CXN0YXRlOwkJCS8qIEN1cnJlbnQgc3RhdGUgKi8KLQlpbnQJCSgqZW5hYmxlKSh2b2lkKTsJLyogRW5hYmxlcyBkeW5hbWljIHRpY2sgKi8KLQlpbnQJCSgqZGlzYWJsZSkodm9pZCk7CS8qIERpc2FibGVzIGR5bmFtaWMgdGljayAqLwotCXZvaWQJCSgqcmVwcm9ncmFtKSh1bnNpZ25lZCBsb25nKTsgLyogUmVwcm9ncmFtcyB0aGUgdGltZXIgKi8KLQlpbnQJCSgqaGFuZGxlcikoaW50LCB2b2lkICopOwotfTsKLQotdm9pZCB0aW1lcl9keW5fcmVwcm9ncmFtKHZvaWQpOwotI2Vsc2UKLSNkZWZpbmUgdGltZXJfZHluX3JlcHJvZ3JhbSgpCWRvIHsgfSB3aGlsZSAoMCkKLSNlbmRpZgotCiBleHRlcm4gc3RydWN0IHN5c190aW1lciAqc3lzdGVtX3RpbWVyOwogZXh0ZXJuIHZvaWQgdGltZXJfdGljayh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL21tdV9jb250ZXh0LmggYi9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaAppbmRleCA2OTEzZDAyLi45MWI5ZGZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vbW11X2NvbnRleHQuaApAQCAtOTcsNiArOTcsMTEgQEAKICNpZmRlZiBDT05GSUdfTU1VCiAJdW5zaWduZWQgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKIAorI2lmZGVmIENPTkZJR19TTVAKKwkvKiBjaGVjayBmb3IgcG9zc2libGUgdGhyZWFkIG1pZ3JhdGlvbiAqLworCWlmICghY3B1c19lbXB0eShuZXh0LT5jcHVfdm1fbWFzaykgJiYgIWNwdV9pc3NldChjcHUsIG5leHQtPmNwdV92bV9tYXNrKSkKKwkJX19mbHVzaF9pY2FjaGVfYWxsKCk7CisjZW5kaWYKIAlpZiAoIWNwdV90ZXN0X2FuZF9zZXQoY3B1LCBuZXh0LT5jcHVfdm1fbWFzaykgfHwgcHJldiAhPSBuZXh0KSB7CiAJCWNoZWNrX2NvbnRleHQobmV4dCk7CiAJCWNwdV9zd2l0Y2hfbW0obmV4dC0+cGdkLCBuZXh0KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wYWdlLmggYi9pbmNsdWRlL2FzbS1hcm0vcGFnZS5oCmluZGV4IDVjMjJiMDEuLjhlMDViZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9wYWdlLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BhZ2UuaApAQCAtMTc5LDEwICsxNzksMTAgQEAKIAogI2VuZGlmIC8qIFNUUklDVF9NTV9UWVBFQ0hFQ0tTICovCiAKLXR5cGVkZWYgc3RydWN0IHBhZ2UgKnBndGFibGVfdDsKLQogI2VuZGlmIC8qIENPTkZJR19NTVUgKi8KIAordHlwZWRlZiBzdHJ1Y3QgcGFnZSAqcGd0YWJsZV90OworCiAjaW5jbHVkZSA8YXNtL21lbW9yeS5oPgogCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3BndGFibGUtbm9tbXUuaCBiL2luY2x1ZGUvYXNtLWFybS9wZ3RhYmxlLW5vbW11LmgKaW5kZXggMmU1ODY4Yi4uMzg2ZmNjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BndGFibGUtbm9tbXUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGd0YWJsZS1ub21tdS5oCkBAIC0xNiw3ICsxNiw2IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS9pby5oPgogCiAvKgogICogVHJpdmlhbCBwYWdlIHRhYmxlIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL2NhY2hlLWZlcm9jZW9uLWwyLmggYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNGUwMTYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCkBAIC0wLDAgKzEsMTEgQEAKKy8qCisgKiBpbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9jYWNoZS1mZXJvY2Vvbi1sMi5oCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IE1hcnZlbGwgU2VtaWNvbmR1Y3RvcgorICoKKyAqIFRoaXMgZmlsZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSB2ZXJzaW9uIDIuIFRoaXMgcHJvZ3JhbSBpcyBsaWNlbnNlZCAiYXMgaXMiIHdpdGhvdXQgYW55CisgKiB3YXJyYW50eSBvZiBhbnkga2luZCwgd2hldGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKi8KKworZXh0ZXJuIHZvaWQgX19pbml0IGZlcm9jZW9uX2wyX2luaXQoaW50IGwyX3d0X292ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL29yaW9uX25hbmQuaAppbmRleCBmZmQzODUyLi5hZDRjZTk0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9vcmlvbl9uYW5kLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vb3Jpb25fbmFuZC5oCkBAIC0xOCw2ICsxOCw3IEBACiAJdTggYWxlOwkJLyogYWRkcmVzcyBsaW5lIG51bWJlciBjb25uZWN0ZWQgdG8gQUxFICovCiAJdTggY2xlOwkJLyogYWRkcmVzcyBsaW5lIG51bWJlciBjb25uZWN0ZWQgdG8gQ0xFICovCiAJdTggd2lkdGg7CS8qIGJ1c3dpZHRoICovCisJdTggY2hpcF9kZWxheTsKIH07CiAKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vcGNpZS5oIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtb3Jpb24vcGNpZS5oCmluZGV4IDY0MzRhYzYuLmU2MWI3YmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LW9yaW9uL3BjaWUuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1vcmlvbi9wY2llLmgKQEAgLTE0LDYgKzE0LDcgQEAKIHUzMiBvcmlvbl9wY2llX2Rldl9pZCh2b2lkIF9faW9tZW0gKmJhc2UpOwogdTMyIG9yaW9uX3BjaWVfcmV2KHZvaWQgX19pb21lbSAqYmFzZSk7CiBpbnQgb3Jpb25fcGNpZV9saW5rX3VwKHZvaWQgX19pb21lbSAqYmFzZSk7CitpbnQgb3Jpb25fcGNpZV94NF9tb2RlKHZvaWQgX19pb21lbSAqYmFzZSk7CiBpbnQgb3Jpb25fcGNpZV9nZXRfbG9jYWxfYnVzX25yKHZvaWQgX19pb21lbSAqYmFzZSk7CiB2b2lkIG9yaW9uX3BjaWVfc2V0X2xvY2FsX2J1c19ucih2b2lkIF9faW9tZW0gKmJhc2UsIGludCBucik7CiB2b2lkIG9yaW9uX3BjaWVfc2V0dXAodm9pZCBfX2lvbWVtICpiYXNlLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjL3JlZ3MtdGltZXIuaCBiL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYy9yZWdzLXRpbWVyLmgKaW5kZXggOGIwZDU5NC4uYjViYzY5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjL3JlZ3MtdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vcGxhdC1zM2MvcmVncy10aW1lci5oCkBAIC02NSw2ICs2NSwxNSBAQAogI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWDBfVENMSzAgICg0PDwwKQogI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWDBfTUFTSwkgICgxNTw8MCkKIAorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9ESVYyCSAgKDA8PDApCisjZGVmaW5lIFMzQzI0MTBfVENGRzFfTVVYX0RJVjQJICAoMTw8MCkKKyNkZWZpbmUgUzNDMjQxMF9UQ0ZHMV9NVVhfRElWOAkgICgyPDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9ESVYxNiAgICgzPDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9UQ0xLICAgICg0PDwwKQorI2RlZmluZSBTM0MyNDEwX1RDRkcxX01VWF9NQVNLCSAgKDE1PDwwKQorCisjZGVmaW5lIFMzQzI0MTBfVENGRzFfU0hJRlQoeCkJICAoKHgpICogNCkKKwogLyogZm9yIGVhY2ggdGltZXIsIHdlIGhhdmUgYW4gY291bnQgYnVmZmVyLCBhbiBjb21wYXJlIGJ1ZmZlciBhbmQKICAqIGFuIG9ic2VydmF0aW9uIGJ1ZmZlcgogKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWFybS9wbGF0LXMzYzI0eHgvZGV2cy5oIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKaW5kZXggZjlkNmYwMy4uYmFkYWFjOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKKysrIGIvaW5jbHVkZS9hc20tYXJtL3BsYXQtczNjMjR4eC9kZXZzLmgKQEAgLTIxLDYgKzIxLDggQEAKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpzM2MyNHh4X3VhcnRfZGV2c1tdOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnMzYzI0eHhfdWFydF9zcmNbXTsKIAorZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcltdOworCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3VzYjsKIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfbGNkOwogZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV93ZHQ7CkBAIC0zNiwxMSArMzgsNiBAQAogCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX25hbmQ7CiAKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIwOwotZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgczNjX2RldmljZV90aW1lcjE7Ci1leHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3RpbWVyMjsKLWV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlIHMzY19kZXZpY2VfdGltZXIzOwotCiBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RldmljZSBzM2NfZGV2aWNlX3VzYmdhZGdldDsKIAogLyogczNjMjQ0MCBzcGVjaWZpYyBkZXZpY2VzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hcm0vcnRjLmggYi9pbmNsdWRlL2FzbS1hcm0vcnRjLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhNWM5MjMuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20tYXJtL3J0Yy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqICBsaW51eC9pbmNsdWRlL2FzbS1hcm0vcnRjLmgKLSAqCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAzIERlZXAgQmx1ZSBTb2x1dGlvbnMgTHRkLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCi0gKi8KLSNpZm5kZWYgQVNNQVJNX1JUQ19ICi0jZGVmaW5lIEFTTUFSTV9SVENfSAotCi1zdHJ1Y3QgbW9kdWxlOwotCi1zdHJ1Y3QgcnRjX29wcyB7Ci0Jc3RydWN0IG1vZHVsZQkqb3duZXI7Ci0JaW50CQkoKm9wZW4pKHZvaWQpOwotCXZvaWQJCSgqcmVsZWFzZSkodm9pZCk7Ci0JaW50CQkoKmlvY3RsKSh1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwotCi0JaW50CQkoKnJlYWRfdGltZSkoc3RydWN0IHJ0Y190aW1lICopOwotCWludAkJKCpzZXRfdGltZSkoc3RydWN0IHJ0Y190aW1lICopOwotCWludAkJKCpyZWFkX2FsYXJtKShzdHJ1Y3QgcnRjX3drYWxybSAqKTsKLQlpbnQJCSgqc2V0X2FsYXJtKShzdHJ1Y3QgcnRjX3drYWxybSAqKTsKLQlpbnQJCSgqcHJvYykoY2hhciAqYnVmKTsKLX07Ci0KLXZvaWQgcnRjX25leHRfYWxhcm1fdGltZShzdHJ1Y3QgcnRjX3RpbWUgKiwgc3RydWN0IHJ0Y190aW1lICosIHN0cnVjdCBydGNfdGltZSAqKTsKLXZvaWQgcnRjX3VwZGF0ZSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKLWludCByZWdpc3Rlcl9ydGMoc3RydWN0IHJ0Y19vcHMgKik7Ci12b2lkIHVucmVnaXN0ZXJfcnRjKHN0cnVjdCBydGNfb3BzICopOwotCi1zdGF0aWMgaW5saW5lIGludCBydGNfcGVyaW9kaWNfYWxhcm0oc3RydWN0IHJ0Y190aW1lICp0bSkKLXsKLQlyZXR1cm4gICh0bS0+dG1feWVhciA9PSAtMSkgfHwKLQkJKCh1bnNpZ25lZCl0bS0+dG1fbW9uID49IDEyKSB8fAotCQkoKHVuc2lnbmVkKSh0bS0+dG1fbWRheSAtIDEpID49IDMxKSB8fAotCQkoKHVuc2lnbmVkKXRtLT50bV9ob3VyID4gMjMpIHx8Ci0JCSgodW5zaWduZWQpdG0tPnRtX21pbiA+IDU5KSB8fAotCQkoKHVuc2lnbmVkKXRtLT50bV9zZWMgPiA1OSk7Ci19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3NwaW5sb2NrLmggYi9pbmNsdWRlL2FzbS1hcm0vc3BpbmxvY2suaAppbmRleCA4MDBiYTUyLi4yYjQxZWJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vc3BpbmxvY2suaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vc3BpbmxvY2suaApAQCAtMTQyLDcgKzE0Miw3IEBACiB9CiAKIC8qIHdyaXRlX2Nhbl9sb2NrIC0gd291bGQgd3JpdGVfdHJ5bG9jaygpIHN1Y2NlZWQ/ICovCi0jZGVmaW5lIF9fcmF3X3dyaXRlX2Nhbl9sb2NrKHgpCQkoKHgpLT5sb2NrID09IDB4ODAwMDAwMDApCisjZGVmaW5lIF9fcmF3X3dyaXRlX2Nhbl9sb2NrKHgpCQkoKHgpLT5sb2NrID09IDApCiAKIC8qCiAgKiBSZWFkIGxvY2tzIGFyZSBhIGJpdCBtb3JlIGhhaXJ5OgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oCmluZGV4IDYzMzVkZTkuLjUxNGFmNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWFybS9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vc3lzdGVtLmgKQEAgLTQ4LDIwICs0OCw2IEBACiAjZGVmaW5lIENQVUlEX1RDTQkyCiAjZGVmaW5lIENQVUlEX1RMQlRZUEUJMwogCi0jaWZkZWYgQ09ORklHX0NQVV9DUDE1Ci0jZGVmaW5lIHJlYWRfY3B1aWQocmVnKQkJCQkJCQlcCi0JKHsJCQkJCQkJCVwKLQkJdW5zaWduZWQgaW50IF9fdmFsOwkJCQkJXAotCQlhc20oIm1yYwlwMTUsIDAsICUwLCBjMCwgYzAsICIgX19zdHJpbmdpZnkocmVnKQlcCi0JCSAgICA6ICI9ciIgKF9fdmFsKQkJCQkJXAotCQkgICAgOgkJCQkJCQlcCi0JCSAgICA6ICJjYyIpOwkJCQkJCVwKLQkJX192YWw7CQkJCQkJCVwKLQl9KQotI2Vsc2UKLSNkZWZpbmUgcmVhZF9jcHVpZChyZWcpIChwcm9jZXNzb3JfaWQpCi0jZW5kaWYKLQogLyoKICAqIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgdGhlIGNvbXBpbGVyIGRpZCBhY3R1YWxseSBhbGxvY2F0ZSB0aGUgcmVnaXN0ZXIgd2UKICAqIGFza2VkIGl0IGZvciBzb21lIGlubGluZSBhc3NlbWJseSBzZXF1ZW5jZXMuICBBcHBhcmVudGx5IHdlIGNhbid0IHRydXN0CkBAIC03OCw2ICs2NCwyMSBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZ2lmeS5oPgogI2luY2x1ZGUgPGxpbnV4L2lycWZsYWdzLmg+CiAKKyNpZmRlZiBDT05GSUdfQ1BVX0NQMTUKKyNkZWZpbmUgcmVhZF9jcHVpZChyZWcpCQkJCQkJCVwKKwkoewkJCQkJCQkJXAorCQl1bnNpZ25lZCBpbnQgX192YWw7CQkJCQlcCisJCWFzbSgibXJjCXAxNSwgMCwgJTAsIGMwLCBjMCwgIiBfX3N0cmluZ2lmeShyZWcpCVwKKwkJICAgIDogIj1yIiAoX192YWwpCQkJCQlcCisJCSAgICA6CQkJCQkJCVwKKwkJICAgIDogImNjIik7CQkJCQkJXAorCQlfX3ZhbDsJCQkJCQkJXAorCX0pCisjZWxzZQorZXh0ZXJuIHVuc2lnbmVkIGludCBwcm9jZXNzb3JfaWQ7CisjZGVmaW5lIHJlYWRfY3B1aWQocmVnKSAocHJvY2Vzc29yX2lkKQorI2VuZGlmCisKIC8qCiAgKiBUaGUgQ1BVIElEIG5ldmVyIGNoYW5nZXMgYXQgcnVuIHRpbWUsIHNvIHdlIG1pZ2h0IGFzIHdlbGwgdGVsbCB0aGUKICAqIGNvbXBpbGVyIHRoYXQgaXQncyBjb25zdGFudC4gIFVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJlYWQgdGhlIENQVSBJRApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXJtL3RsYmZsdXNoLmggYi9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaAppbmRleCA4YzZiYzFiLi45MDk2NTZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaAorKysgYi9pbmNsdWRlL2FzbS1hcm0vdGxiZmx1c2guaApAQCAtMzksNiArMzksNyBAQAogI2RlZmluZSBUTEJfVjZfRF9BU0lECSgxIDw8IDE3KQogI2RlZmluZSBUTEJfVjZfSV9BU0lECSgxIDw8IDE4KQogCisjZGVmaW5lIFRMQl9MMkNMRUFOX0ZSCSgxIDw8IDI5KQkJLyogRmVyb2Nlb24gKi8KICNkZWZpbmUgVExCX0RDTEVBTgkoMSA8PCAzMCkKICNkZWZpbmUgVExCX1dCCQkoMSA8PCAzMSkKIApAQCAtNTEsNiArNTIsNyBAQAogICoJICB2NCAgICAtIEFSTXY0IHdpdGhvdXQgd3JpdGUgYnVmZmVyCiAgKgkgIHY0d2IgIC0gQVJNdjQgd2l0aCB3cml0ZSBidWZmZXIgd2l0aG91dCBJIFRMQiBmbHVzaCBlbnRyeSBpbnN0cnVjdGlvbgogICoJICB2NHdiaSAtIEFSTXY0IHdpdGggd3JpdGUgYnVmZmVyIHdpdGggSSBUTEIgZmx1c2ggZW50cnkgaW5zdHJ1Y3Rpb24KKyAqCSAgZnIgICAgLSBGZXJvY2VvbiAodjR3Ymkgd2l0aCBub24tb3V0ZXItY2FjaGVhYmxlIHBhZ2UgdGFibGUgd2Fsa3MpCiAgKgkgIHY2d2JpIC0gQVJNdjYgd2l0aCB3cml0ZSBidWZmZXIgd2l0aCBJIFRMQiBmbHVzaCBlbnRyeSBpbnN0cnVjdGlvbgogICovCiAjdW5kZWYgX1RMQgpAQCAtMTAzLDYgKzEwNSwyMyBAQAogIyBkZWZpbmUgdjR3YmlfYWx3YXlzX2ZsYWdzCSgtMVVMKQogI2VuZGlmCiAKKyNkZWZpbmUgZnJfdGxiX2ZsYWdzCShUTEJfV0IgfCBUTEJfRENMRUFOIHwgVExCX0wyQ0xFQU5fRlIgfCBcCisJCQkgVExCX1Y0X0lfRlVMTCB8IFRMQl9WNF9EX0ZVTEwgfCBcCisJCQkgVExCX1Y0X0lfUEFHRSB8IFRMQl9WNF9EX1BBR0UpCisKKyNpZmRlZiBDT05GSUdfQ1BVX1RMQl9GRVJPQ0VPTgorIyBkZWZpbmUgZnJfcG9zc2libGVfZmxhZ3MJZnJfdGxiX2ZsYWdzCisjIGRlZmluZSBmcl9hbHdheXNfZmxhZ3MJZnJfdGxiX2ZsYWdzCisjIGlmZGVmIF9UTEIKKyMgIGRlZmluZSBNVUxUSV9UTEIgMQorIyBlbHNlCisjICBkZWZpbmUgX1RMQiB2NHdiaQorIyBlbmRpZgorI2Vsc2UKKyMgZGVmaW5lIGZyX3Bvc3NpYmxlX2ZsYWdzCTAKKyMgZGVmaW5lIGZyX2Fsd2F5c19mbGFncwkoLTFVTCkKKyNlbmRpZgorCiAjZGVmaW5lIHY0d2JfdGxiX2ZsYWdzCShUTEJfV0IgfCBUTEJfRENMRUFOIHwgXAogCQkJIFRMQl9WNF9JX0ZVTEwgfCBUTEJfVjRfRF9GVUxMIHwgXAogCQkJIFRMQl9WNF9EX1BBR0UpCkBAIC0yNDUsMTIgKzI2NCwxNCBAQAogI2RlZmluZSBwb3NzaWJsZV90bGJfZmxhZ3MJKHYzX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NF9wb3NzaWJsZV9mbGFncyB8IFwKIAkJCQkgdjR3YmlfcG9zc2libGVfZmxhZ3MgfCBcCisJCQkJIGZyX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NHdiX3Bvc3NpYmxlX2ZsYWdzIHwgXAogCQkJCSB2NndiaV9wb3NzaWJsZV9mbGFncykKIAogI2RlZmluZSBhbHdheXNfdGxiX2ZsYWdzCSh2M19hbHdheXNfZmxhZ3MgJiBcCiAJCQkJIHY0X2Fsd2F5c19mbGFncyAmIFwKIAkJCQkgdjR3YmlfYWx3YXlzX2ZsYWdzICYgXAorCQkJCSBmcl9hbHdheXNfZmxhZ3MgJiBcCiAJCQkJIHY0d2JfYWx3YXlzX2ZsYWdzICYgXAogCQkJCSB2NndiaV9hbHdheXNfZmxhZ3MpCiAKQEAgLTQxNyw2ICs0MzgsMTEgQEAKIAlpZiAodGxiX2ZsYWcoVExCX0RDTEVBTikpCiAJCWFzbSgibWNyCXAxNSwgMCwgJTAsIGM3LCBjMTAsIDEJQCBmbHVzaF9wbWQiCiAJCQk6IDogInIiIChwbWQpIDogImNjIik7CisKKwlpZiAodGxiX2ZsYWcoVExCX0wyQ0xFQU5fRlIpKQorCQlhc20oIm1jcglwMTUsIDEsICUwLCBjMTUsIGM5LCAxICBAIEwyIGZsdXNoX3BtZCIKKwkJCTogOiAiciIgKHBtZCkgOiAiY2MiKTsKKwogCWlmICh0bGJfZmxhZyhUTEJfV0IpKQogCQlkc2IoKTsKIH0KQEAgLTQyOCw2ICs0NTQsMTAgQEAKIAlpZiAodGxiX2ZsYWcoVExCX0RDTEVBTikpCiAJCWFzbSgibWNyCXAxNSwgMCwgJTAsIGM3LCBjMTAsIDEJQCBmbHVzaF9wbWQiCiAJCQk6IDogInIiIChwbWQpIDogImNjIik7CisKKwlpZiAodGxiX2ZsYWcoVExCX0wyQ0xFQU5fRlIpKQorCQlhc20oIm1jcglwMTUsIDEsICUwLCBjMTUsIGM5LCAxICBAIEwyIGZsdXNoX3BtZCIKKwkJCTogOiAiciIgKHBtZCkgOiAiY2MiKTsKIH0KIAogI3VuZGVmIHRsYl9mbGFnCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9ib2FyZC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvYm9hcmQuaAppbmRleCBhNGUyZDI4Li5iNGNkZGZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9ib2FyZC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2JvYXJkLmgKQEAgLTgsNiArOCwxMiBAQAogCiAjZGVmaW5lIEdQSU9fUElOX05PTkUJKC0xKQogCisvKgorICogQ2xvY2sgcmF0ZXMgZm9yIHZhcmlvdXMgb24tYm9hcmQgb3NjaWxsYXRvcnMuIFRoZSBudW1iZXIgb2YgZW50cmllcworICogaW4gdGhpcyBhcnJheSBpcyBjaGlwLWRlcGVuZGVudC4KKyAqLworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYXQzMl9ib2FyZF9vc2NfcmF0ZXNbXTsKKyAgCiAvKiBBZGQgYmFzaWMgZGV2aWNlczogc3lzdGVtIG1hbmFnZXIsIGludGVycnVwdCBjb250cm9sbGVyLCBwb3J0bXV4ZXMsIGV0Yy4gKi8KIHZvaWQgYXQzMl9hZGRfc3lzdGVtX2RldmljZXModm9pZCk7CiAKQEAgLTM2LDcgKzQyLDggQEAKIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvOwogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqCiBhdDMyX2FkZF9kZXZpY2VfbGNkYyh1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCBhdG1lbF9sY2RmYl9pbmZvICpkYXRhLAotCQkgICAgIHVuc2lnbmVkIGxvbmcgZmJtZW1fc3RhcnQsIHVuc2lnbmVkIGxvbmcgZmJtZW1fbGVuKTsKKwkJICAgICB1bnNpZ25lZCBsb25nIGZibWVtX3N0YXJ0LCB1bnNpZ25lZCBsb25nIGZibWVtX2xlbiwKKwkJICAgICB1bnNpZ25lZCBpbnQgcGluX2NvbmZpZyk7CiAKIHN0cnVjdCB1c2JhX3BsYXRmb3JtX2RhdGE7CiBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICoKQEAgLTczLDYgKzgwLDcgQEAKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MzJfYWRkX2RldmljZV9tY2kodW5zaWduZWQgaW50IGlkKTsKIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF0MzJfYWRkX2RldmljZV9hYzk3Yyh1bnNpZ25lZCBpbnQgaWQpOwogc3RydWN0IHBsYXRmb3JtX2RldmljZSAqYXQzMl9hZGRfZGV2aWNlX2FiZGFjKHVuc2lnbmVkIGludCBpZCk7CitzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICphdDMyX2FkZF9kZXZpY2VfcHNpZih1bnNpZ25lZCBpbnQgaWQpOwogCiBzdHJ1Y3QgY2ZfcGxhdGZvcm1fZGF0YSB7CiAJaW50CWRldGVjdF9waW47CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9pbml0LmggYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9pbml0LmgKaW5kZXggNWU3NWQ4NS4uYmM0MGUzZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvaW5pdC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL2luaXQuaApAQCAtMTMsMTAgKzEzLDYgQEAKIHZvaWQgc2V0dXBfcGxhdGZvcm0odm9pZCk7CiB2b2lkIHNldHVwX2JvYXJkKHZvaWQpOwogCi0vKiBDYWxsZWQgYnkgc2V0dXBfcGxhdGZvcm0gKi8KLXZvaWQgYXQzMl9jbG9ja19pbml0KHZvaWQpOwotdm9pZCBhdDMyX3BvcnRtdXhfaW5pdCh2b2lkKTsKLQogdm9pZCBhdDMyX3NldHVwX3NlcmlhbF9jb25zb2xlKHVuc2lnbmVkIGludCB1c2FydF9pZCk7CiAKICNlbmRpZiAvKiBfX0FTTV9BVlIzMl9BVDMyQVBfSU5JVF9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3BtLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9wbS5oCmluZGV4IDM1NmU0MzAuLjk3OWIzNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL2FyY2gtYXQzMmFwL3BtLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvcG0uaApAQCAtMTksNiArMTksNyBAQAogCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogZXh0ZXJuIHZvaWQgY3B1X2VudGVyX2lkbGUodm9pZCk7CitleHRlcm4gdm9pZCBjcHVfZW50ZXJfc3RhbmRieSh1bnNpZ25lZCBsb25nIHNkcmFtY19iYXNlKTsKIAogZXh0ZXJuIGJvb2wgZGlzYWJsZV9pZGxlX3NsZWVwOwogCkBAIC00Myw2ICs0NCw4IEBACiAJZWxzZQogCQljcHVfZW50ZXJfaWRsZSgpOwogfQorCit2b2lkIGludGNfc2V0X3N1c3BlbmRfaGFuZGxlcih1bnNpZ25lZCBsb25nIG9mZnNldCk7CiAjZW5kaWYKIAogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX0FSQ0hfUE1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvc3JhbS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvYXJjaC1hdDMyYXAvc3JhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MzhkYWUKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9hcmNoLWF0MzJhcC9zcmFtLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIFNpbXBsZSBTUkFNIGFsbG9jYXRvcgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBdG1lbCBDb3Jwb3JhdGlvbgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKyNpZm5kZWYgX19BU01fQVZSMzJfQVJDSF9TUkFNX0gKKyNkZWZpbmUgX19BU01fQVZSMzJfQVJDSF9TUkFNX0gKKworI2luY2x1ZGUgPGxpbnV4L2dlbmFsbG9jLmg+CisKK2V4dGVybiBzdHJ1Y3QgZ2VuX3Bvb2wgKnNyYW1fcG9vbDsKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHNyYW1fYWxsb2Moc2l6ZV90IGxlbikKK3sKKwlpZiAoIXNyYW1fcG9vbCkKKwkJcmV0dXJuIDBVTDsKKworCXJldHVybiBnZW5fcG9vbF9hbGxvYyhzcmFtX3Bvb2wsIGxlbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcmFtX2ZyZWUodW5zaWduZWQgbG9uZyBhZGRyLCBzaXplX3QgbGVuKQoreworCXJldHVybiBnZW5fcG9vbF9mcmVlKHNyYW1fcG9vbCwgYWRkciwgbGVuKTsKK30KKworI2VuZGlmIC8qIF9fQVNNX0FWUjMyX0FSQ0hfU1JBTV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi9tbXVfY29udGV4dC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvbW11X2NvbnRleHQuaAppbmRleCBjMzdjMzkxLi4yN2ZmMjM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL21tdV9jb250ZXh0LmgKQEAgLTEzLDcgKzEzLDYgQEAKICNkZWZpbmUgX19BU01fQVZSMzJfTU1VX0NPTlRFWFRfSAogCiAjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KICNpbmNsdWRlIDxhc20vc3lzcmVnLmg+CiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvbW1faG9va3MuaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvcGNpLmggYi9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaAppbmRleCAwZjVmMTM0Li5hMzJhMDIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9wY2kuaApAQCAtNSw0ICs1LDYgQEAKIAogI2RlZmluZSBQQ0lfRE1BX0JVU19JU19QSFlTCSgxKQogCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvcGNpLWRtYS1jb21wYXQuaD4KKwogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX1BDSV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3BnYWxsb2MuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3BnYWxsb2MuaAppbmRleCA1MWZjMWY2Li42NDA4MjEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi9wZ2FsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvcGdhbGxvYy5oCkBAIC04LDY1ICs4LDc5IEBACiAjaWZuZGVmIF9fQVNNX0FWUjMyX1BHQUxMT0NfSAogI2RlZmluZSBfX0FTTV9BVlIzMl9QR0FMTE9DX0gKIAotI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KLSNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvcXVpY2tsaXN0Lmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vcGd0YWJsZS5oPgogCi0jZGVmaW5lIHBtZF9wb3B1bGF0ZV9rZXJuZWwobW0sIHBtZCwgcHRlKSBcCi0Jc2V0X3BtZChwbWQsIF9fcG1kKF9QQUdFX1RBQkxFICsgX19wYShwdGUpKSkKKyNkZWZpbmUgUVVJQ0tfUEdECTAJLyogUHJlc2VydmUga2VybmVsIG1hcHBpbmdzIG92ZXIgZnJlZSAqLworI2RlZmluZSBRVUlDS19QVAkxCS8qIFplcm8gb24gZnJlZSAqLwogCi1zdGF0aWMgX19pbmxpbmVfXyB2b2lkIHBtZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKK3N0YXRpYyBpbmxpbmUgdm9pZCBwbWRfcG9wdWxhdGVfa2VybmVsKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCSAgICAgICBwbWRfdCAqcG1kLCBwdGVfdCAqcHRlKQoreworCXNldF9wbWQocG1kLCBfX3BtZCgodW5zaWduZWQgbG9uZylwdGUpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBtZF9wb3B1bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1kX3QgKnBtZCwKIAkJCQkgICAgcGd0YWJsZV90IHB0ZSkKIHsKLQlzZXRfcG1kKHBtZCwgX19wbWQoX1BBR0VfVEFCTEUgKyBwYWdlX3RvX3BoeXMocHRlKSkpOworCXNldF9wbWQocG1kLCBfX3BtZCgodW5zaWduZWQgbG9uZylwYWdlX2FkZHJlc3MocHRlKSkpOwogfQogI2RlZmluZSBwbWRfcGd0YWJsZShwbWQpIHBtZF9wYWdlKHBtZCkKIAorc3RhdGljIGlubGluZSB2b2lkIHBnZF9jdG9yKHZvaWQgKngpCit7CisJcGdkX3QgKnBnZCA9IHg7CisKKwltZW1jcHkocGdkICsgVVNFUl9QVFJTX1BFUl9QR0QsCisJCXN3YXBwZXJfcGdfZGlyICsgVVNFUl9QVFJTX1BFUl9QR0QsCisJCShQVFJTX1BFUl9QR0QgLSBVU0VSX1BUUlNfUEVSX1BHRCkgKiBzaXplb2YocGdkX3QpKTsKK30KKwogLyoKICAqIEFsbG9jYXRlIGFuZCBmcmVlIHBhZ2UgdGFibGVzCiAgKi8KLXN0YXRpYyBfX2lubGluZV9fIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCitzdGF0aWMgaW5saW5lIHBnZF90ICpwZ2RfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAqbW0pCiB7Ci0JcmV0dXJuIGtjYWxsb2MoVVNFUl9QVFJTX1BFUl9QR0QsIHNpemVvZihwZ2RfdCksIEdGUF9LRVJORUwpOworCXJldHVybiBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUEdELCBHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFULCBwZ2RfY3Rvcik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwZ2RfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCkKIHsKLQlrZnJlZShwZ2QpOworCXF1aWNrbGlzdF9mcmVlKFFVSUNLX1BHRCwgTlVMTCwgcGdkKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCAqcHRlX2FsbG9jX29uZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQogewotCXB0ZV90ICpwdGU7Ci0KLQlwdGUgPSAocHRlX3QgKilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCB8IF9fR0ZQX1JFUEVBVCk7Ci0KLQlyZXR1cm4gcHRlOworCXJldHVybiBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUFQsIEdGUF9LRVJORUwgfCBfX0dGUF9SRVBFQVQsIE5VTEwpOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpwdGVfYWxsb2Nfb25lKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorc3RhdGljIGlubGluZSBwZ3RhYmxlX3QgcHRlX2FsbG9jX29uZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKIHsKLQlzdHJ1Y3QgcGFnZSAqcHRlOworCXN0cnVjdCBwYWdlICpwYWdlOworCXZvaWQgKnBnOwogCi0JcHRlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMIHwgX19HRlBfUkVQRUFUIHwgX19HRlBfWkVSTyk7Ci0JaWYgKCFwdGUpCisJcGcgPSBxdWlja2xpc3RfYWxsb2MoUVVJQ0tfUFQsIEdGUF9LRVJORUwgfCBfX0dGUF9SRVBFQVQsIE5VTEwpOworCWlmICghcGcpCiAJCXJldHVybiBOVUxMOwotCXBndGFibGVfcGFnZV9jdG9yKHB0ZSk7Ci0JcmV0dXJuIHB0ZTsKKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UocGcpOworCXBndGFibGVfcGFnZV9jdG9yKHBhZ2UpOworCisJcmV0dXJuIHBhZ2U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZV9rZXJuZWwoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB0ZV90ICpwdGUpCiB7Ci0JZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKXB0ZSk7CisJcXVpY2tsaXN0X2ZyZWUoUVVJQ0tfUFQsIE5VTEwsIHB0ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwdGVfZnJlZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGd0YWJsZV90IHB0ZSkKIHsKIAlwZ3RhYmxlX3BhZ2VfZHRvcihwdGUpOwotCV9fZnJlZV9wYWdlKHB0ZSk7CisJcXVpY2tsaXN0X2ZyZWVfcGFnZShRVUlDS19QVCwgTlVMTCwgcHRlKTsKIH0KIAogI2RlZmluZSBfX3B0ZV9mcmVlX3RsYih0bGIscHRlKQkJCQlcCkBAIC03NSw2ICs4OSwxMCBAQAogCXRsYl9yZW1vdmVfcGFnZSgodGxiKSwgcHRlKTsJCQlcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIGNoZWNrX3BndF9jYWNoZSgpIGRvIHsgfSB3aGlsZSgwKQorc3RhdGljIGlubGluZSB2b2lkIGNoZWNrX3BndF9jYWNoZSh2b2lkKQoreworCXF1aWNrbGlzdF90cmltKFFVSUNLX1BHRCwgTlVMTCwgMjUsIDE2KTsKKwlxdWlja2xpc3RfdHJpbShRVUlDS19QVCwgTlVMTCwgMjUsIDE2KTsKK30KIAogI2VuZGlmIC8qIF9fQVNNX0FWUjMyX1BHQUxMT0NfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvcGd0YWJsZS5oIGIvaW5jbHVkZS9hc20tYXZyMzIvcGd0YWJsZS5oCmluZGV4IGMwZTVlMjkuLmZlY2RkYTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL3BndGFibGUuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9wZ3RhYmxlLmgKQEAgLTEyOSwxMyArMTI5LDYgQEAKIAogI2RlZmluZSBfUEFHRV9GTEFHU19DQUNIRV9NQVNLCShfUEFHRV9DQUNIQUJMRSB8IF9QQUdFX0JVRkZFUiB8IF9QQUdFX1dUKQogCi0vKiBUT0RPOiBDaGVjayBmb3Igc2FuZW5lc3MgKi8KLS8qIFVzZXItbW9kZSBwYWdlIHRhYmxlIGZsYWdzICh0byBiZSBzZXQgaW4gYSBwZ2Qgb3IgcG1kIGVudHJ5KSAqLwotI2RlZmluZSBfUEFHRV9UQUJMRQkJKF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9UWVBFX1NNQUxMIHwgX1BBR0VfUlcgXAotCQkJCSB8IF9QQUdFX1VTRVIgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0RJUlRZKQotLyogS2VybmVsLW1vZGUgcGFnZSB0YWJsZSBmbGFncyAqLwotI2RlZmluZSBfS0VSTlBHX1RBQkxFCQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1RZUEVfU01BTEwgfCBfUEFHRV9SVyBcCi0JCQkJIHwgX1BBR0VfQUNDRVNTRUQgfCBfUEFHRV9ESVJUWSkKIC8qIEZsYWdzIHRoYXQgbWF5IGJlIG1vZGlmaWVkIGJ5IHNvZnR3YXJlICovCiAjZGVmaW5lIF9QQUdFX0NIR19NQVNLCQkoUFRFX01BU0sgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0RJUlRZIFwKIAkJCQkgfCBfUEFHRV9GTEFHU19DQUNIRV9NQVNLKQpAQCAtMjYyLDEwICsyNTUsMTQgQEAKIH0KIAogI2RlZmluZSBwbWRfbm9uZSh4KQkoIXBtZF92YWwoeCkpCi0jZGVmaW5lIHBtZF9wcmVzZW50KHgpCShwbWRfdmFsKHgpICYgX1BBR0VfUFJFU0VOVCkKLSNkZWZpbmUgcG1kX2NsZWFyKHhwKQlkbyB7IHNldF9wbWQoeHAsIF9fcG1kKDApKTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUJcG1kX2JhZCh4KQkoKHBtZF92YWwoeCkgJiAoflBBR0VfTUFTSyAmIH5fUEFHRV9VU0VSKSkJXAotCQkJICE9IF9LRVJOUEdfVEFCTEUpCisjZGVmaW5lIHBtZF9wcmVzZW50KHgpCShwbWRfdmFsKHgpKQorCitzdGF0aWMgaW5saW5lIHZvaWQgcG1kX2NsZWFyKHBtZF90ICpwbWRwKQoreworCXNldF9wbWQocG1kcCwgX19wbWQoMCkpOworfQorCisjZGVmaW5lCXBtZF9iYWQoeCkJKHBtZF92YWwoeCkgJiB+UEFHRV9NQVNLKQogCiAvKgogICogUGVybWFuZW50IGFkZHJlc3Mgb2YgYSBwYWdlLiBXZSBkb24ndCBzdXBwb3J0IGhpZ2htZW0sIHNvIHRoaXMgaXMKQEAgLTMwMywxOSArMzAwLDE2IEBACiAKICNkZWZpbmUgcGFnZV9wdGUocGFnZSkJcGFnZV9wdGVfcHJvdChwYWdlLCBfX3BncHJvdCgwKSkKIAotI2RlZmluZSBwbWRfcGFnZV92YWRkcihwbWQpCQkJCQlcCi0JKCh1bnNpZ25lZCBsb25nKSBfX3ZhKHBtZF92YWwocG1kKSAmIFBBR0VfTUFTSykpCi0KLSNkZWZpbmUgcG1kX3BhZ2UocG1kKQkocGh5c190b19wYWdlKHBtZF92YWwocG1kKSkpCisjZGVmaW5lIHBtZF9wYWdlX3ZhZGRyKHBtZCkJcG1kX3ZhbChwbWQpCisjZGVmaW5lIHBtZF9wYWdlKHBtZCkJCSh2aXJ0X3RvX3BhZ2UocG1kX3ZhbChwbWQpKSkKIAogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIHBhZ2UtdGFibGUtZGlyZWN0b3J5LiAqLwotI2RlZmluZSBwZ2RfaW5kZXgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gUEdESVJfU0hJRlQpICYgKFBUUlNfUEVSX1BHRC0xKSkKLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCtwZ2RfaW5kZXgoYWRkcmVzcykpCi0jZGVmaW5lIHBnZF9vZmZzZXRfY3VycmVudChhZGRyZXNzKQkJCQlcCi0JKChwZ2RfdCAqKV9fbWZzcihTWVNSRUdfUFRCUikgKyBwZ2RfaW5kZXgoYWRkcmVzcykpCisjZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKQkoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkJXAorCQkJCSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKKyNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykJKChtbSktPnBnZCArIHBnZF9pbmRleChhZGRyZXNzKSkKIAogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIGtlcm5lbCBwYWdlLXRhYmxlLWRpcmVjdG9yeSAqLwotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgYWRkcmVzcykKKyNkZWZpbmUgcGdkX29mZnNldF9rKGFkZHJlc3MpCXBnZF9vZmZzZXQoJmluaXRfbW0sIGFkZHJlc3MpCiAKIC8qIEZpbmQgYW4gZW50cnkgaW4gdGhlIHRoaXJkLWxldmVsIHBhZ2UgdGFibGUuLiAqLwogI2RlZmluZSBwdGVfaW5kZXgoYWRkcmVzcykJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYXZyMzIvc2V0dXAuaCBiL2luY2x1ZGUvYXNtLWF2cjMyL3NldHVwLmgKaW5kZXggZWEzMDcwZi4uZmY1YjdjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYXZyMzIvc2V0dXAuaAorKysgYi9pbmNsdWRlL2FzbS1hdnIzMi9zZXR1cC5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgQXRtZWwgQ29ycG9yYXRpb24KICAqCiAgKiBCYXNlZCBvbiBsaW51eC9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaAotICogICBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWwgS2luZworICogICBDb3B5cmlnaHQgKEMpIDE5OTctMTk5OSBSdXNzZWxsIEtpbmcKICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWF2cjMyL3RocmVhZF9pbmZvLmggYi9pbmNsdWRlL2FzbS1hdnIzMi90aHJlYWRfaW5mby5oCmluZGV4IDA3MDQ5ZjYuLmRmNjg2MzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWF2cjMyL3RocmVhZF9pbmZvLmgKKysrIGIvaW5jbHVkZS9hc20tYXZyMzIvdGhyZWFkX2luZm8uaApAQCAtODgsNiArODgsNyBAQAogI2RlZmluZSBUSUZfTUVNRElFCQk2CiAjZGVmaW5lIFRJRl9SRVNUT1JFX1NJR01BU0sJNwkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCAqLwogI2RlZmluZSBUSUZfQ1BVX0dPSU5HX1RPX1NMRUVQCTgJLyogQ1BVIGlzIGVudGVyaW5nIHNsZWVwIDAgbW9kZSAqLworI2RlZmluZSBUSUZfRlJFRVpFCQkyOQogI2RlZmluZSBUSUZfREVCVUcJCTMwCS8qIGRlYnVnZ2luZyBlbmFibGVkICovCiAjZGVmaW5lIFRJRl9VU0VSU1BBQ0UJCTMxICAgICAgLyogdHJ1ZSBpZiBGUyBzZXRzIHVzZXJzcGFjZSAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1hdnIzMi90bGJmbHVzaC5oIGIvaW5jbHVkZS9hc20tYXZyMzIvdGxiZmx1c2guaAppbmRleCA1YmM3Yzg4Li5iZjkwYTc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1hdnIzMi90bGJmbHVzaC5oCisrKyBiL2luY2x1ZGUvYXNtLWF2cjMyL3RsYmZsdXNoLmgKQEAgLTI2LDcgKzI2LDYgQEAKIGV4dGVybiB2b2lkIGZsdXNoX3RsYl9yYW5nZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCSAgICB1bnNpZ25lZCBsb25nIGVuZCk7CiBleHRlcm4gdm9pZCBmbHVzaF90bGJfcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBwYWdlKTsKLWV4dGVybiB2b2lkIF9fZmx1c2hfdGxiX3BhZ2UodW5zaWduZWQgbG9uZyBhc2lkLCB1bnNpZ25lZCBsb25nIHBhZ2UpOwogCiBleHRlcm4gdm9pZCBmbHVzaF90bGJfa2VybmVsX3JhbmdlKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmZpbi1nbG9iYWwuaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL2JmaW4tZ2xvYmFsLmgKaW5kZXggYTkyNDhkOC4uNzYwMzM4MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vYmZpbi1nbG9iYWwuaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9iZmluLWdsb2JhbC5oCkBAIC0xMDUsMTMgKzEwNSw2IEBACiBleHRlcm4gdm9pZCAqc3JhbV9hbGxvY193aXRoX2xzbChzaXplX3QsIHVuc2lnbmVkIGxvbmcpOwogZXh0ZXJuIGludCBzcmFtX2ZyZWVfd2l0aF9sc2woY29uc3Qgdm9pZCopOwogCi1leHRlcm4gdm9pZCBsZWRfb24oaW50KTsKLWV4dGVybiB2b2lkIGxlZF9vZmYoaW50KTsKLWV4dGVybiB2b2lkIGxlZF90b2dnbGUoaW50KTsKLWV4dGVybiB2b2lkIGxlZF9kaXNwX251bShpbnQpOwotZXh0ZXJuIHZvaWQgbGVkX3RvZ2dsZV9udW0oaW50KTsKLWV4dGVybiB2b2lkIGluaXRfbGVkcyh2b2lkKTsKLQogZXh0ZXJuIGNvbnN0IGNoYXIgYmZpbl9ib2FyZF9uYW1lW107CiBleHRlcm4gdW5zaWduZWQgbG9uZyB3YWxsX2ppZmZpZXM7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MjcvYW5vbWFseS5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9hbm9tYWx5LmgKaW5kZXggNzM1ZmEwMi4uNDcyNTI2OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9hbm9tYWx5LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9hbm9tYWx5LmgKQEAgLTE1LDEyICsxNSwxNiBAQAogCiAvKiBNdWx0aS1Jc3N1ZSBJbnN0cnVjdGlvbiB3aXRoIGRzcDMyc2hpZnRpbW0gaW4gc2xvdDEgYW5kIFAtcmVnIFN0b3JlIGluIHNsb3QyIE5vdCBTdXBwb3J0ZWQgKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDA3NCAoMSkKKy8qIERNQV9SVU4gQml0IElzIE5vdCBWYWxpZCBhZnRlciBhIFBlcmlwaGVyYWwgUmVjZWl2ZSBDaGFubmVsIERNQSBTdG9wcyAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMTE5ICgxKQogLyogUnguSCBDYW5ub3QgQmUgVXNlZCB0byBBY2Nlc3MgMTYtYml0IFN5c3RlbSBNTVIgUmVnaXN0ZXJzICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDAxMjIgKDEpCiAvKiBTcHVyaW91cyBIYXJkd2FyZSBFcnJvciBmcm9tIGFuIEFjY2VzcyBpbiB0aGUgU2hhZG93IG9mIGEgQ29uZGl0aW9uYWwgQnJhbmNoICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDAyNDUgKDEpCiAvKiBTZW5zaXRpdml0eSBUbyBOb2lzZSB3aXRoIFNsb3cgSW5wdXQgRWRnZSBSYXRlcyBvbiBFeHRlcm5hbCBTUE9SVCBUWCBhbmQgUlggQ2xvY2tzICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDAyNjUgKDEpCisvKiBFcnJvcnMgd2hlbiBTU1lOQywgQ1NZTkMsIG9yIExvYWRzIHRvIExULCBMQiBhbmQgTEMgUmVnaXN0ZXJzIEFyZSBJbnRlcnJ1cHRlZCAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzEyICgxKQogLyogSW5jb3JyZWN0IEFjY2VzcyBvZiBPVFBfU1RBVFVTIER1cmluZyBvdHBfd3JpdGUoKSBGdW5jdGlvbiAqLwogI2RlZmluZSBBTk9NQUxZXzA1MDAwMzI4ICgxKQogLyogRGlzYWxsb3dlZCBDb25maWd1cmF0aW9uIFByZXZlbnRzIFN1YnNlcXVlbnQgQWxsb3dlZCBDb25maWd1cmF0aW9uIG9uIEhvc3QgRE1BIFBvcnQgKi8KQEAgLTkyLDcgKzk2LDYgQEAKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDI2NiAoMCkKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDI3MyAoMCkKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDMxMSAoMCkKLSNkZWZpbmUgQU5PTUFMWV8wNTAwMDMxMiAoMCkKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDMyMyAoMCkKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDM2MyAoMCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9iZmluX3NlcmlhbF81eHguaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MjcvYmZpbl9zZXJpYWxfNXh4LmgKaW5kZXggMjZlM2M4MC4uMjUyNmI2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUyNy9iZmluX3NlcmlhbF81eHguaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTI3L2JmaW5fc2VyaWFsXzV4eC5oCkBAIC01Myw2ICs1MywxMiBAQAogI2RlZmluZSBVQVJUX1NFVF9ETEFCKHVhcnQpICAgICBkbyB7IFVBUlRfUFVUX0xDUih1YXJ0LCBVQVJUX0dFVF9MQ1IodWFydCkgfCBETEFCKTsgU1NZTkMoKTsgfSB3aGlsZSAoMCkKICNkZWZpbmUgVUFSVF9DTEVBUl9ETEFCKHVhcnQpICAgZG8geyBVQVJUX1BVVF9MQ1IodWFydCwgVUFSVF9HRVRfTENSKHVhcnQpICYgfkRMQUIpOyBTU1lOQygpOyB9IHdoaWxlICgwKQogCisjZGVmaW5lIFVBUlRfR0VUX0NUUyh4KSBncGlvX2dldF92YWx1ZSh4LT5jdHNfcGluKQorI2RlZmluZSBVQVJUX1NFVF9SVFMoeCkgZ3Bpb19zZXRfdmFsdWUoeC0+cnRzX3BpbiwgMSkKKyNkZWZpbmUgVUFSVF9DTEVBUl9SVFMoeCkgZ3Bpb19zZXRfdmFsdWUoeC0+cnRzX3BpbiwgMCkKKyNkZWZpbmUgVUFSVF9FTkFCTEVfSU5UUyh4LCB2KSBVQVJUX1BVVF9JRVIoeCwgdikKKyNkZWZpbmUgVUFSVF9ESVNBQkxFX0lOVFMoeCkgVUFSVF9QVVRfSUVSKHgsIDApCisKICNpZiBkZWZpbmVkKENPTkZJR19CRklOX1VBUlQwX0NUU1JUUykgfHwgZGVmaW5lZChDT05GSUdfQkZJTl9VQVJUMV9DVFNSVFMpCiAjIGRlZmluZSBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCiAKQEAgLTkwLDcgKzk2LDcgQEAKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdHhfZG1hX3dvcmtxdWV1ZTsKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCBjdHNfdGltZXI7CiAJaW50IGN0c19waW47CiAJaW50IHJ0c19waW47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzMvYW5vbWFseS5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzMy9hbm9tYWx5LmgKaW5kZXggNWE2ZGNjNS4uOGY3ZWExMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzMy9hbm9tYWx5LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzMy9hbm9tYWx5LmgKQEAgLTIsNyArMiw3IEBACiAgKiBGaWxlOiBpbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTMzL2Fub21hbHkuaAogICogQnVnczogRW50ZXIgYnVncyBhdCBodHRwOi8vYmxhY2tmaW4udWNsaW51eC5vcmcvCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcgQW5hbG9nIERldmljZXMgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDggQW5hbG9nIERldmljZXMgSW5jLgogICogTGljZW5zZWQgdW5kZXIgdGhlIEdQTC0yIG9yIGxhdGVyLgogICovCiAKQEAgLTE3Niw2ICsxNzYsMjEgQEAKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDMxNSAoMSkKIC8qIEludGVybmFsIFZvbHRhZ2UgUmVndWxhdG9yIFZhbHVlcyBvZiAxLjA1ViwgMS4xMFYgYW5kIDEuMTVWIE5vdCBBbGxvd2VkIGZvciBMUUZQIFBhY2thZ2VzICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDAzMTkgKEFOT01BTFlfQkY1MzEgfHwgQU5PTUFMWV9CRjUzMikKKy8qIFNlcmlhbCBQb3J0IChTUE9SVCkgTXVsdGljaGFubmVsIFRyYW5zbWl0IEZhaWx1cmUgd2hlbiBDaGFubmVsIDAgSXMgRGlzYWJsZWQgKi8KKyNkZWZpbmUgQU5PTUFMWV8wNTAwMDM1NyAoMSkKKy8qIFVBUlQgQnJlYWsgU2lnbmFsIElzc3VlcyAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzYzIChfX1NJTElDT05fUkVWSVNJT05fXyA8IDUpCisvKiBQUEkgVW5kZXJmbG93IEVycm9yIEdvZXMgVW5kZXRlY3RlZCBpbiBJVFUtUiA2NTYgTW9kZSAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzY2ICgxKQorLyogUG9zc2libGUgUkVUUyBSZWdpc3RlciBDb3JydXB0aW9uIHdoZW4gU3Vicm91dGluZSBJcyB1bmRlciA1IEN5Y2xlcyBpbiBEdXJhdGlvbiAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzcxICgxKQorLyogUFBJIERvZXMgTm90IFN0YXJ0IFByb3Blcmx5IEluIFNwZWNpZmljIE1vZGUgKi8KKyNkZWZpbmUgQU5PTUFMWV8wNTAwMDQwMCAoX19TSUxJQ09OX1JFVklTSU9OX18gPj0gNSkKKy8qIFNTWU5DIFN0YWxscyBQcm9jZXNzb3Igd2hlbiBFeGVjdXRlZCBmcm9tIE5vbi1DYWNoZWFibGUgTWVtb3J5ICovCisjZGVmaW5lIEFOT01BTFlfMDUwMDA0MDIgKF9fU0lMSUNPTl9SRVZJU0lPTl9fID49IDUpCisvKiBMZXZlbC1TZW5zaXRpdmUgRXh0ZXJuYWwgR1BJTyBXYWtldXBzIE1heSBDYXVzZSBJbmRlZmluaXRlIFN0YWxsICovCisjZGVmaW5lIEFOT01BTFlfMDUwMDA0MDMgKDEpCisKIAogLyogVGhlc2UgYW5vbWFsaWVzIGhhdmUgYmVlbiAicGhhc2VkIiBvdXQgb2YgYW5hbG9nLmNvbSBhbm9tYWx5IHNoZWV0cyBhbmQgYXJlCiAgKiBoZXJlIHRvIHNob3cgcnVubmluZyBvbiBvbGRlciBzaWxpY29uIGp1c3QgaXNuJ3QgZmVhc2libGUuCkBAIC0yNDksMjAgKzI2NCw2IEBACiAjZGVmaW5lIEFOT01BTFlfMDUwMDAxOTIgKF9fU0lMSUNPTl9SRVZJU0lPTl9fIDwgMykKIC8qIEludGVybmFsIFZvbHRhZ2UgUmVndWxhdG9yIG1heSBub3Qgc3RhcnQgdXAgKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDIwNiAoX19TSUxJQ09OX1JFVklTSU9OX18gPCAzKQotLyogU2VyaWFsIFBvcnQgKFNQT1JUKSBNdWx0aWNoYW5uZWwgVHJhbnNtaXQgRmFpbHVyZSB3aGVuIENoYW5uZWwgMCBJcyBEaXNhYmxlZCAqLwotI2RlZmluZSBBTk9NQUxZXzA1MDAwMzU3ICgxKQotLyogVUFSVCBCcmVhayBTaWduYWwgSXNzdWVzICovCi0jZGVmaW5lIEFOT01BTFlfMDUwMDAzNjMgKF9fU0lMSUNPTl9SRVZJU0lPTl9fIDwgNSkKLS8qIFBQSSBVbmRlcmZsb3cgRXJyb3IgR29lcyBVbmRldGVjdGVkIGluIElUVS1SIDY1NiBNb2RlICovCi0jZGVmaW5lIEFOT01BTFlfMDUwMDAzNjYgKDEpCi0vKiBQb3NzaWJsZSBSRVRTIFJlZ2lzdGVyIENvcnJ1cHRpb24gd2hlbiBTdWJyb3V0aW5lIElzIHVuZGVyIDUgQ3ljbGVzIGluIER1cmF0aW9uICovCi0jZGVmaW5lIEFOT01BTFlfMDUwMDAzNzEgKDEpCi0vKiBQUEkgRG9lcyBOb3QgU3RhcnQgUHJvcGVybHkgSW4gU3BlY2lmaWMgTW9kZSAqLwotI2RlZmluZSBBTk9NQUxZXzA1MDAwNDAwIChfX1NJTElDT05fUkVWSVNJT05fXyA9PSA1KQotLyogU1NZTkMgU3RhbGxzIFByb2Nlc3NvciB3aGVuIEV4ZWN1dGVkIGZyb20gTm9uLUNhY2hlYWJsZSBNZW1vcnkgKi8KLSNkZWZpbmUgQU5PTUFMWV8wNTAwMDQwMiAoX19TSUxJQ09OX1JFVklTSU9OX18gPT0gNSkKLS8qIExldmVsLVNlbnNpdGl2ZSBFeHRlcm5hbCBHUElPIFdha2V1cHMgTWF5IENhdXNlIEluZGVmaW5pdGUgU3RhbGwgKi8KLSNkZWZpbmUgQU5PTUFMWV8wNTAwMDQwMyAoMSkKIAogLyogQW5vbWFsaWVzIHRoYXQgZG9uJ3QgZXhpc3Qgb24gdGhpcyBwcm9jICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDAyNjYgKDApCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTMzL2JmaW5fc2VyaWFsXzV4eC5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzMy9iZmluX3NlcmlhbF81eHguaAppbmRleCBkMDE2NjAzLi5lYmY1OTJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTMzL2JmaW5fc2VyaWFsXzV4eC5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzMvYmZpbl9zZXJpYWxfNXh4LmgKQEAgLTUzLDYgKzUzLDEyIEBACiAjZGVmaW5lIFVBUlRfU0VUX0RMQUIodWFydCkgICAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSB8IERMQUIpOyBTU1lOQygpOyB9IHdoaWxlICgwKQogI2RlZmluZSBVQVJUX0NMRUFSX0RMQUIodWFydCkgICBkbyB7IFVBUlRfUFVUX0xDUih1YXJ0LCBVQVJUX0dFVF9MQ1IodWFydCkgJiB+RExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgVUFSVF9HRVRfQ1RTKHgpIGdwaW9fZ2V0X3ZhbHVlKHgtPmN0c19waW4pCisjZGVmaW5lIFVBUlRfU0VUX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAxKQorI2RlZmluZSBVQVJUX0NMRUFSX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAwKQorI2RlZmluZSBVQVJUX0VOQUJMRV9JTlRTKHgsIHYpIFVBUlRfUFVUX0lFUih4LCB2KQorI2RlZmluZSBVQVJUX0RJU0FCTEVfSU5UUyh4KSBVQVJUX1BVVF9JRVIoeCwgMCkKKwogI2lmZGVmIENPTkZJR19CRklOX1VBUlQwX0NUU1JUUwogIyBkZWZpbmUgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwogIyBpZm5kZWYgQ09ORklHX1VBUlQwX0NUU19QSU4KQEAgLTgyLDcgKzg4LDcgQEAKICMgZW5kaWYKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgCWN0c193b3JrcXVldWU7CisJc3RydWN0IHRpbWVyX2xpc3QgICAgICAgY3RzX3RpbWVyOwogCWludAkJCWN0c19waW47CiAJaW50CQkJcnRzX3BpbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzNy9hbm9tYWx5LmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2Fub21hbHkuaAppbmRleCBhNmIwOGZhLi44NDYwYWI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2Fub21hbHkuaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2Fub21hbHkuaApAQCAtMiw3ICsyLDcgQEAKICAqIEZpbGU6IGluY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzcvYW5vbWFseS5oCiAgKiBCdWdzOiBFbnRlciBidWdzIGF0IGh0dHA6Ly9ibGFja2Zpbi51Y2xpbnV4Lm9yZy8KICAqCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNyBBbmFsb2cgRGV2aWNlcyBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCBBbmFsb2cgRGV2aWNlcyBJbmMuCiAgKiBMaWNlbnNlZCB1bmRlciB0aGUgR1BMLTIgb3IgbGF0ZXIuCiAgKi8KIApAQCAtMTMyLDggKzEzMiw4IEBACiAjZGVmaW5lIEFOT01BTFlfMDUwMDAzMjIgKDEpCiAvKiBFdGhlcm5ldCBNQUMgTURJTyBSZWFkcyBEbyBOb3QgTWVldCBJRUVFIFNwZWNpZmljYXRpb24gKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDM0MSAoX19TSUxJQ09OX1JFVklTSU9OX18gPj0gMykKLS8qIE5ldyBGZWF0dXJlOiBVQVJUIFJlbWFpbnMgRW5hYmxlZCBhZnRlciBVQVJUIEJvb3QgKE5vdCBBdmFpbGFibGUgb24gT2xkZXIgU2lsaWNvbikgKi8KLSNkZWZpbmUgQU5PTUFMWV8wNTAwMDM1MCAoX19TSUxJQ09OX1JFVklTSU9OX18gPCAzKQorLyogTmV3IEZlYXR1cmU6IFVBUlQgUmVtYWlucyBFbmFibGVkIGFmdGVyIFVBUlQgQm9vdCAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzUwIChfX1NJTElDT05fUkVWSVNJT05fXyA+PSAzKQogLyogUmVndWxhdG9yIFByb2dyYW1taW5nIEJsb2NrZWQgd2hlbiBIaWJlcm5hdGUgV2FrZXVwIFNvdXJjZSBSZW1haW5zIEFjdGl2ZSAqLwogI2RlZmluZSBBTk9NQUxZXzA1MDAwMzU1ICgxKQogLyogU2VyaWFsIFBvcnQgKFNQT1JUKSBNdWx0aWNoYW5uZWwgVHJhbnNtaXQgRmFpbHVyZSB3aGVuIENoYW5uZWwgMCBJcyBEaXNhYmxlZCAqLwpAQCAtMTQ1LDEyICsxNDUsMTAgQEAKIC8qIFBvc3NpYmxlIFJFVFMgUmVnaXN0ZXIgQ29ycnVwdGlvbiB3aGVuIFN1YnJvdXRpbmUgSXMgdW5kZXIgNSBDeWNsZXMgaW4gRHVyYXRpb24gKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDM3MSAoMSkKIC8qIFNTWU5DIFN0YWxscyBQcm9jZXNzb3Igd2hlbiBFeGVjdXRlZCBmcm9tIE5vbi1DYWNoZWFibGUgTWVtb3J5ICovCi0jZGVmaW5lIEFOT01BTFlfMDUwMDA0MDIgKF9fU0lMSUNPTl9SRVZJU0lPTl9fID49IDMpCisjZGVmaW5lIEFOT01BTFlfMDUwMDA0MDIgKF9fU0lMSUNPTl9SRVZJU0lPTl9fID49IDUpCiAvKiBMZXZlbC1TZW5zaXRpdmUgRXh0ZXJuYWwgR1BJTyBXYWtldXBzIE1heSBDYXVzZSBJbmRlZmluaXRlIFN0YWxsICovCiAjZGVmaW5lIEFOT01BTFlfMDUwMDA0MDMgKDEpCiAKLQotCiAvKiBBbm9tYWxpZXMgdGhhdCBkb24ndCBleGlzdCBvbiB0aGlzIHByb2MgKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDEyNSAoMCkKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDE1OCAoMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzcvYmZpbl9zZXJpYWxfNXh4LmggYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTM3L2JmaW5fc2VyaWFsXzV4eC5oCmluZGV4IGY3OWQxYTAuLjFiZjU2ZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1MzcvYmZpbl9zZXJpYWxfNXh4LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjUzNy9iZmluX3NlcmlhbF81eHguaApAQCAtNTMsNiArNTMsMTIgQEAKICNkZWZpbmUgVUFSVF9TRVRfRExBQih1YXJ0KSAgICAgZG8geyBVQVJUX1BVVF9MQ1IodWFydCwgVUFSVF9HRVRfTENSKHVhcnQpIHwgRExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAjZGVmaW5lIFVBUlRfQ0xFQVJfRExBQih1YXJ0KSAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSAmIH5ETEFCKTsgU1NZTkMoKTsgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBVQVJUX0dFVF9DVFMoeCkgZ3Bpb19nZXRfdmFsdWUoeC0+Y3RzX3BpbikKKyNkZWZpbmUgVUFSVF9TRVRfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDEpCisjZGVmaW5lIFVBUlRfQ0xFQVJfUlRTKHgpIGdwaW9fc2V0X3ZhbHVlKHgtPnJ0c19waW4sIDApCisjZGVmaW5lIFVBUlRfRU5BQkxFX0lOVFMoeCwgdikgVUFSVF9QVVRfSUVSKHgsIHYpCisjZGVmaW5lIFVBUlRfRElTQUJMRV9JTlRTKHgpIFVBUlRfUFVUX0lFUih4LCAwKQorCiAjaWYgZGVmaW5lZChDT05GSUdfQkZJTl9VQVJUMF9DVFNSVFMpIHx8IGRlZmluZWQoQ09ORklHX0JGSU5fVUFSVDFfQ1RTUlRTKQogIyBkZWZpbmUgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwogCkBAIC05MCw3ICs5Niw3IEBACiAJc3RydWN0IHdvcmtfc3RydWN0CXR4X2RtYV93b3JrcXVldWU7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfU0VSSUFMX0JGSU5fQ1RTUlRTCi0Jc3RydWN0IHdvcmtfc3RydWN0IAljdHNfd29ya3F1ZXVlOworCXN0cnVjdCB0aW1lcl9saXN0IAljdHNfdGltZXI7CiAJaW50CQljdHNfcGluOwogCWludCAJCXJ0c19waW47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NDgvYW5vbWFseS5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9hbm9tYWx5LmgKaW5kZXggNDlkM2NlYi4uM2FkNTk2NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9hbm9tYWx5LmgKKysrIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9hbm9tYWx5LmgKQEAgLTc1LDYgKzc1LDggQEAKICNkZWZpbmUgQU5PTUFMWV8wNTAwMDM2NSAoMSkKIC8qIEFkZHJlc3NpbmcgQ29uZmxpY3QgYmV0d2VlbiBCb290IFJPTSBhbmQgQXN5bmNocm9ub3VzIE1lbW9yeSAqLwogI2RlZmluZSBBTk9NQUxZXzA1MDAwMzY5ICgxKQorLyogUG9zc2libGUgUkVUUyBSZWdpc3RlciBDb3JydXB0aW9uIHdoZW4gU3Vicm91dGluZSBJcyB1bmRlciA1IEN5Y2xlcyBpbiBEdXJhdGlvbiAqLworI2RlZmluZSBBTk9NQUxZXzA1MDAwMzcxICgxKQogLyogTW9iaWxlIEREUiBPcGVyYXRpb24gTm90IEZ1bmN0aW9uYWwgKi8KICNkZWZpbmUgQU5PTUFMWV8wNTAwMDM3NyAoMSkKIC8qIFNlY3VyaXR5L0F1dGhlbnRpY2F0aW9uIFNwZWVkcGF0aCBDYXVzZXMgQXV0aGVudGljYXRpb24gVG8gRmFpbCBUbyBJbml0aWF0ZSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9iZmluX3NlcmlhbF81eHguaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NDgvYmZpbl9zZXJpYWxfNXh4LmgKaW5kZXggNWViNDZhNy4uNWUyOTQ0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU0OC9iZmluX3NlcmlhbF81eHguaAorKysgYi9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTQ4L2JmaW5fc2VyaWFsXzV4eC5oCkBAIC01Nyw2ICs1NywxMiBAQAogI2RlZmluZSBVQVJUX1NFVF9ETEFCKHVhcnQpICAgICAvKiBNTVJzIG5vdCBtdXhlZCBvbiBCRjU0eCAqLwogI2RlZmluZSBVQVJUX0NMRUFSX0RMQUIodWFydCkgICAvKiBNTVJzIG5vdCBtdXhlZCBvbiBCRjU0eCAqLwogCisjZGVmaW5lIFVBUlRfR0VUX0NUUyh4KSAoVUFSVF9HRVRfTVNSKHgpICYgQ1RTKQorI2RlZmluZSBVQVJUX1NFVF9SVFMoeCkgKFVBUlRfUFVUX01DUih4LCBVQVJUX0dFVF9NQ1IoeCkgfCBNUlRTKSkKKyNkZWZpbmUgVUFSVF9DTEVBUl9SVFMoeCkgKFVBUlRfUFVUX01DUih4LCBVQVJUX0dFVF9NQ1IoeCkgJiB+TVJUUykpCisjZGVmaW5lIFVBUlRfRU5BQkxFX0lOVFMoeCwgdikgVUFSVF9TRVRfSUVSKHgsIHYpCisjZGVmaW5lIFVBUlRfRElTQUJMRV9JTlRTKHgpIFVBUlRfQ0xFQVJfSUVSKHgsIDB4RikKKwogI2lmIGRlZmluZWQoQ09ORklHX0JGSU5fVUFSVDBfQ1RTUlRTKSB8fCBkZWZpbmVkKENPTkZJR19CRklOX1VBUlQxX0NUU1JUUykKICMgZGVmaW5lIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKIApAQCAtOTMsNyArOTksNyBAQAogCXN0cnVjdCB3b3JrX3N0cnVjdAl0eF9kbWFfd29ya3F1ZXVlOwogI2VuZGlmCiAjaWZkZWYgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwotCXN0cnVjdCB3b3JrX3N0cnVjdCAJY3RzX3dvcmtxdWV1ZTsKKwlzdHJ1Y3QgdGltZXJfbGlzdCAJY3RzX3RpbWVyOwogCWludAkJY3RzX3BpbjsKIAlpbnQgCQlydHNfcGluOwogI2VuZGlmCkBAIC0xODEsNyArMTg3LDcgQEAKIAogI2lmZGVmIENPTkZJR19CRklOX1VBUlQxX0NUU1JUUwogCXBlcmlwaGVyYWxfcmVxdWVzdChQX1VBUlQxX1JUUywgRFJJVkVSX05BTUUpOwotCXBlcmlwaGVyYWxfcmVxdWVzdChQX1VBUlQxX0NUUyBEUklWRVJfTkFNRSk7CisJcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDFfQ1RTLCBEUklWRVJfTkFNRSk7CiAjZW5kaWYKICNlbmRpZgogCkBAIC0xOTYsNyArMjAyLDcgQEAKIAogI2lmZGVmIENPTkZJR19CRklOX1VBUlQzX0NUU1JUUwogCXBlcmlwaGVyYWxfcmVxdWVzdChQX1VBUlQzX1JUUywgRFJJVkVSX05BTUUpOwotCXBlcmlwaGVyYWxfcmVxdWVzdChQX1VBUlQzX0NUUyBEUklWRVJfTkFNRSk7CisJcGVyaXBoZXJhbF9yZXF1ZXN0KFBfVUFSVDNfQ1RTLCBEUklWRVJfTkFNRSk7CiAjZW5kaWYKICNlbmRpZgogCVNTWU5DKCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTYxL2Fub21hbHkuaCBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYW5vbWFseS5oCmluZGV4IDgyMTU3Y2EuLjVjNWQ3ZDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYW5vbWFseS5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYW5vbWFseS5oCkBAIC0yLDcgKzIsNyBAQAogICogRmlsZTogaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU2MS9hbm9tYWx5LmgKICAqIEJ1Z3M6IEVudGVyIGJ1Z3MgYXQgaHR0cDovL2JsYWNrZmluLnVjbGludXgub3JnLwogICoKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA3IEFuYWxvZyBEZXZpY2VzIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4IEFuYWxvZyBEZXZpY2VzIEluYy4KICAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwtMiBvciBsYXRlci4KICAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTYxL2JmaW5fc2VyaWFsXzV4eC5oIGIvaW5jbHVkZS9hc20tYmxhY2tmaW4vbWFjaC1iZjU2MS9iZmluX3NlcmlhbF81eHguaAppbmRleCA3YTk2Mjg3Li44YWEwMjc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1ibGFja2Zpbi9tYWNoLWJmNTYxL2JmaW5fc2VyaWFsXzV4eC5oCisrKyBiL2luY2x1ZGUvYXNtLWJsYWNrZmluL21hY2gtYmY1NjEvYmZpbl9zZXJpYWxfNXh4LmgKQEAgLTUzLDYgKzUzLDEyIEBACiAjZGVmaW5lIFVBUlRfU0VUX0RMQUIodWFydCkgICAgIGRvIHsgVUFSVF9QVVRfTENSKHVhcnQsIFVBUlRfR0VUX0xDUih1YXJ0KSB8IERMQUIpOyBTU1lOQygpOyB9IHdoaWxlICgwKQogI2RlZmluZSBVQVJUX0NMRUFSX0RMQUIodWFydCkgICBkbyB7IFVBUlRfUFVUX0xDUih1YXJ0LCBVQVJUX0dFVF9MQ1IodWFydCkgJiB+RExBQik7IFNTWU5DKCk7IH0gd2hpbGUgKDApCiAKKyNkZWZpbmUgVUFSVF9HRVRfQ1RTKHgpIGdwaW9fZ2V0X3ZhbHVlKHgtPmN0c19waW4pCisjZGVmaW5lIFVBUlRfU0VUX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAxKQorI2RlZmluZSBVQVJUX0NMRUFSX1JUUyh4KSBncGlvX3NldF92YWx1ZSh4LT5ydHNfcGluLCAwKQorI2RlZmluZSBVQVJUX0VOQUJMRV9JTlRTKHgsIHYpIFVBUlRfUFVUX0lFUih4LCB2KQorI2RlZmluZSBVQVJUX0RJU0FCTEVfSU5UUyh4KSBVQVJUX1BVVF9JRVIoeCwgMCkKKwogI2lmZGVmIENPTkZJR19CRklOX1VBUlQwX0NUU1JUUwogIyBkZWZpbmUgQ09ORklHX1NFUklBTF9CRklOX0NUU1JUUwogIyBpZm5kZWYgQ09ORklHX1VBUlQwX0NUU19QSU4KQEAgLTgyLDcgKzg4LDcgQEAKICMgZW5kaWYKICNlbmRpZgogI2lmZGVmIENPTkZJR19TRVJJQUxfQkZJTl9DVFNSVFMKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgCWN0c193b3JrcXVldWU7CisJc3RydWN0IHRpbWVyX2xpc3QgICAgICAgY3RzX3RpbWVyOwogCWludAkJCWN0c19waW47CiAJaW50CQkJcnRzX3BpbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZnJ2L2NoZWNrc3VtLmggYi9pbmNsdWRlL2FzbS1mcnYvY2hlY2tzdW0uaAppbmRleCA5YjE2ODk4Li4yNjlkYTA5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1mcnYvY2hlY2tzdW0uaAorKysgYi9pbmNsdWRlL2FzbS1mcnYvY2hlY2tzdW0uaApAQCAtNzUsNyArNzUsNyBAQAogCSAgICA6ICI9ciIgKHN1bSksICI9ciIgKGlwaCksICI9ciIgKGlobCksICI9ciIgKGluYyksICI9JnIiKHRtcCkKIAkgICAgOiAiMCIgKHN1bSksICIxIiAoaXBoKSwgIjIiIChpaGwpLCAiMyIgKDQpLAogCSAgICAibSIoKih2b2xhdGlsZSBzdHJ1Y3QgeyBpbnQgX1sxMDBdOyB9ICopaXBoKQotCSAgICA6ICJpY2MwIiwgImljYzEiCisJICAgIDogImljYzAiLCAiaWNjMSIsICJtZW1vcnkiCiAJICAgICk7CiAKIAlyZXR1cm4gKF9fZm9yY2UgX19zdW0xNil+c3VtOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZnJ2L21lbS1sYXlvdXQuaCBiL2luY2x1ZGUvYXNtLWZydi9tZW0tbGF5b3V0LmgKaW5kZXggNzM0YTFkMC4uMjk0Nzc2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZnJ2L21lbS1sYXlvdXQuaAorKysgYi9pbmNsdWRlL2FzbS1mcnYvbWVtLWxheW91dC5oCkBAIC0zMSw2ICszMSwxMyBAQAogCiAjZGVmaW5lIFBBR0VfTUFTSwkJCSh+KFBBR0VfU0laRS0xKSkKIAorLyoKKyAqIHRoZSBzbGFiIG11c3QgYmUgYWxpZ25lZCBzdWNoIHRoYXQgbG9hZC0gYW5kIHN0b3JlLWRvdWJsZSBpbnN0cnVjdGlvbnMgZG9uJ3QKKyAqIGZhdWx0IGlmIHVzZWQKKyAqLworI2RlZmluZQlBUkNIX0tNQUxMT0NfTUlOQUxJR04JCTgKKyNkZWZpbmUJQVJDSF9TTEFCX01JTkFMSUdOCQk4CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCiAgKiB2aXJ0dWFsIG1lbW9yeSBsYXlvdXQgZnJvbSBrZXJuZWwncyBwb2ludCBvZiB2aWV3CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1mcnYvc3lzdGVtLmggYi9pbmNsdWRlL2FzbS1mcnYvc3lzdGVtLmgKaW5kZXggZDNhMTJhOS4uNzc0MmVjMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZnJ2L3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLWZydi9zeXN0ZW0uaApAQCAtODcsNyArODcsNyBAQAogfSB3aGlsZSgwKQogCiAjZGVmaW5lIGlycXNfZGlzYWJsZWQoKSBcCi0JKHt1bnNpZ25lZCBsb25nIGZsYWdzOyBsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsgZmxhZ3M7IH0pCisJKHt1bnNpZ25lZCBsb25nIGZsYWdzOyBsb2NhbF9zYXZlX2ZsYWdzKGZsYWdzKTsgISFmbGFnczsgfSkKIAogI2RlZmluZQlsb2NhbF9pcnFfc2F2ZShmbGFncykJCQlcCiBkbyB7CQkJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQuYXNtIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy9LYnVpbGQuYXNtCmluZGV4IDkyYTZkOTEuLjdjZDI1YjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvS2J1aWxkLmFzbQorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20KQEAgLTEsNiArMSw2IEBACiBoZWFkZXIteSAgKz0ga3ZtLmgKIAotaWZlcSAoJCh3aWxkY2FyZCBpbmNsdWRlL2FzbS0kKFNSQ0FSQ0gpL2Eub3V0LmgpLGluY2x1ZGUvYXNtLSQoU1JDQVJDSCkvYS5vdXQuaCkKK2lmbmVxICgkKHdpbGRjYXJkICQoc3JjdHJlZSkvaW5jbHVkZS9hc20tJChTUkNBUkNIKS9hLm91dC5oKSwpCiB1bmlmZGVmLXkgKz0gYS5vdXQuaAogZW5kaWYKIHVuaWZkZWYteSArPSBhdXh2ZWMuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvYXRvbWljLmgKaW5kZXggODVmZDBhYS4uNGVjMGEyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy9hdG9taWMuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL2F0b21pYy5oCkBAIC0yLDcgKzIsNyBAQAogI2RlZmluZSBfQVNNX0dFTkVSSUNfQVRPTUlDX0gKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgU2lsaWNvbiBHcmFwaGljcywgSW5jLgotICoJQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKglDaHJpc3RvcGggTGFtZXRlcgogICoKICAqIEFsbG93cyB0byBwcm92aWRlIGFyY2ggaW5kZXBlbmRlbnQgYXRvbWljIGRlZmluaXRpb25zIHdpdGhvdXQgdGhlIG5lZWQgdG8KICAqIGVkaXQgYWxsIGFyY2ggc3BlY2lmaWMgYXRvbWljLmggZmlsZXMuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL2dwaW8uaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvZ3Bpby5oCmluZGV4IGVjZjY3NWEuLjZiZTA2MWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvZ3Bpby5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvZ3Bpby5oCkBAIC0xLDggKzEsMTIgQEAKICNpZm5kZWYgX0FTTV9HRU5FUklDX0dQSU9fSAogI2RlZmluZSBfQVNNX0dFTkVSSUNfR1BJT19ICiAKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCiAjaWZkZWYgQ09ORklHX0hBVkVfR1BJT19MSUIKIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisKIC8qIFBsYXRmb3JtcyBtYXkgaW1wbGVtZW50IHRoZWlyIEdQSU8gaW50ZXJmYWNlIHdpdGggbGlicmFyeSBjb2RlLAogICogYXQgYSBzbWFsbCBwZXJmb3JtYW5jZSBjb3N0IGZvciBub24taW5saW5lZCBvcGVyYXRpb25zIGFuZCBzb21lCiAgKiBleHRyYSBtZW1vcnkgKGZvciBjb2RlIGFuZCBmb3IgcGVyLUdQSU8gdGFibGUgZW50cmllcykuCkBAIC03NCw3ICs3OCw3IEBACiAKIGV4dGVybiBjb25zdCBjaGFyICpncGlvY2hpcF9pc19yZXF1ZXN0ZWQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCwKIAkJCXVuc2lnbmVkIG9mZnNldCk7Ci1leHRlcm4gaW50IF9faW5pdCBfX211c3RfY2hlY2sgZ3Bpb2NoaXBfcmVzZXJ2ZShpbnQgc3RhcnQsIGludCBuZ3Bpbyk7CitleHRlcm4gaW50IF9fbXVzdF9jaGVjayBncGlvY2hpcF9yZXNlcnZlKGludCBzdGFydCwgaW50IG5ncGlvKTsKIAogLyogYWRkL3JlbW92ZSBjaGlwcyAqLwogZXh0ZXJuIGludCBncGlvY2hpcF9hZGQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCmluZGV4IDQ0ZWYzMjkuLjRmY2UzZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oCkBAIC0xOTcsNiArMTk3LDYzIEBACiB9CiAjZW5kaWYgLyogQ09ORklHX01NVSAqLwogCitzdGF0aWMgaW5saW5lIHB0ZV90IF9fcHRlcF9tb2RpZnlfcHJvdF9zdGFydChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgICB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgICAgcHRlX3QgKnB0ZXApCit7CisJLyoKKwkgKiBHZXQgdGhlIGN1cnJlbnQgcHRlIHN0YXRlLCBidXQgemVybyBpdCBvdXQgdG8gbWFrZSBpdAorCSAqIG5vbi1wcmVzZW50LCBwcmV2ZW50aW5nIHRoZSBoYXJkd2FyZSBmcm9tIGFzeW5jaHJvbm91c2x5CisJICogdXBkYXRpbmcgaXQuCisJICovCisJcmV0dXJuIHB0ZXBfZ2V0X2FuZF9jbGVhcihtbSwgYWRkciwgcHRlcCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3B0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJICAgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQoreworCS8qCisJICogVGhlIHB0ZSBpcyBub24tcHJlc2VudCwgc28gdGhlcmUncyBubyBoYXJkd2FyZSBzdGF0ZSB0bworCSAqIHByZXNlcnZlLgorCSAqLworCXNldF9wdGVfYXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7Cit9CisKKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTgorLyoKKyAqIFN0YXJ0IGEgcHRlIHByb3RlY3Rpb24gcmVhZC1tb2RpZnktd3JpdGUgdHJhbnNhY3Rpb24sIHdoaWNoCisgKiBwcm90ZWN0cyBhZ2FpbnN0IGFzeW5jaHJvbm91cyBoYXJkd2FyZSBtb2RpZmljYXRpb25zIHRvIHRoZSBwdGUuCisgKiBUaGUgaW50ZW50aW9uIGlzIG5vdCB0byBwcmV2ZW50IHRoZSBoYXJkd2FyZSBmcm9tIG1ha2luZyBwdGUKKyAqIHVwZGF0ZXMsIGJ1dCB0byBwcmV2ZW50IGFueSB1cGRhdGVzIGl0IG1heSBtYWtlIGZyb20gYmVpbmcgbG9zdC4KKyAqCisgKiBUaGlzIGRvZXMgbm90IHByb3RlY3QgYWdhaW5zdCBvdGhlciBzb2Z0d2FyZSBtb2RpZmljYXRpb25zIG9mIHRoZQorICogcHRlOyB0aGUgYXBwcm9wcmlhdGUgcHRlIGxvY2sgbXVzdCBiZSBoZWxkIG92ZXIgdGhlIHRyYW5zYXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaW50ZXJmYWNlIGlzIGludGVuZGVkIHRvIGJlIGJhdGNoYWJsZSwgbWVhbmluZyB0aGF0CisgKiBwdGVwX21vZGlmeV9wcm90X2NvbW1pdCBtYXkgbm90IGFjdHVhbGx5IHVwZGF0ZSB0aGUgcHRlLCBidXQgbWVyZWx5CisgKiBxdWV1ZSB0aGUgdXBkYXRlIHRvIGJlIGRvbmUgYXQgc29tZSBsYXRlciB0aW1lLiAgVGhlIHVwZGF0ZSBtdXN0IGJlCisgKiBhY3R1YWxseSBjb21taXR0ZWQgYmVmb3JlIHRoZSBwdGUgbG9jayBpcyByZWxlYXNlZCwgaG93ZXZlci4KKyAqLworc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwKQoreworCXJldHVybiBfX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQobW0sIGFkZHIsIHB0ZXApOworfQorCisvKgorICogQ29tbWl0IGFuIHVwZGF0ZSB0byBhIHB0ZSwgbGVhdmluZyBhbnkgaGFyZHdhcmUtY29udHJvbGxlZCBiaXRzIGluCisgKiB0aGUgUFRFIHVubW9kaWZpZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBwdGVwX21vZGlmeV9wcm90X2NvbW1pdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyLAorCQkJCQkgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKQoreworCV9fcHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7Cit9CisjZW5kaWYgLyogX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTiAqLworCiAvKgogICogQSBmYWNpbGl0eSB0byBwcm92aWRlIGxhenkgTU1VIGJhdGNoaW5nLiAgVGhpcyBhbGxvd3MgUFRFIHVwZGF0ZXMgYW5kCiAgKiBwYWdlIGludmFsaWRhdGlvbnMgdG8gYmUgZGVsYXllZCB1bnRpbCBhIGNhbGwgdG8gbGVhdmUgbGF6eSBNTVUgbW9kZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oIGIvaW5jbHVkZS9hc20tZ2VuZXJpYy90b3BvbG9neS5oCmluZGV4IGE2YWVhNzkuLjU0YmJmNmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWdlbmVyaWMvdG9wb2xvZ3kuaAorKysgYi9pbmNsdWRlL2FzbS1nZW5lcmljL3RvcG9sb2d5LmgKQEAgLTYwLDcgKzYwLDggQEAKICNpZm5kZWYgbm9kZV90b19jcHVtYXNrX3B0cgogCiAjZGVmaW5lCW5vZGVfdG9fY3B1bWFza19wdHIodiwgbm9kZSkgCQkJCQlcCi0JCWNwdW1hc2tfdCBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpLCAqdiA9ICZfIyN2CisJCWNwdW1hc2tfdCBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpOwkJCVwKKwkJY29uc3QgY3B1bWFza190ICp2ID0gJl8jI3YKIAogI2RlZmluZSBub2RlX3RvX2NwdW1hc2tfcHRyX25leHQodiwgbm9kZSkJCQkJXAogCQkJICBfIyN2ID0gbm9kZV90b19jcHVtYXNrKG5vZGUpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmggYi9pbmNsdWRlL2FzbS1nZW5lcmljL3ZtbGludXgubGRzLmgKaW5kZXggZjA1NDc3OC4uYjIwNDA5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tZ2VuZXJpYy92bWxpbnV4Lmxkcy5oCisrKyBiL2luY2x1ZGUvYXNtLWdlbmVyaWMvdm1saW51eC5sZHMuaApAQCAtNjcsNiArNjcsOCBAQAogCQkqKC5yb2RhdGExKQkJCQkJCVwKIAl9CQkJCQkJCQlcCiAJCQkJCQkJCQlcCisJQlVHX1RBQkxFCQkJCQkJCVwKKwkJCQkJCQkJCVwKIAkvKiBQQ0kgcXVpcmtzICovCQkJCQkJXAogCS5wY2lfZml4dXAgICAgICAgIDogQVQoQUREUigucGNpX2ZpeHVwKSAtIExPQURfT0ZGU0VUKSB7CVwKIAkJVk1MSU5VWF9TWU1CT0woX19zdGFydF9wY2lfZml4dXBzX2Vhcmx5KSA9IC47CQlcCkBAIC04Niw2ICs4OCwxMyBAQAogCQlWTUxJTlVYX1NZTUJPTChfX2VuZF9wY2lfZml4dXBzX3Jlc3VtZSkgPSAuOwkJXAogCX0JCQkJCQkJCVwKIAkJCQkJCQkJCVwKKwkvKiBCdWlsdC1pbiBmaXJtd2FyZSBibG9icyAqLwkJCQkJXAorCS5idWlsdGluX2Z3ICAgICAgICA6IEFUKEFERFIoLmJ1aWx0aW5fZncpIC0gTE9BRF9PRkZTRVQpIHsJXAorCQlWTUxJTlVYX1NZTUJPTChfX3N0YXJ0X2J1aWx0aW5fZncpID0gLjsJCQlcCisJCSooLmJ1aWx0aW5fZncpCQkJCQkJXAorCQlWTUxJTlVYX1NZTUJPTChfX2VuZF9idWlsdGluX2Z3KSA9IC47CQkJXAorCX0JCQkJCQkJCVwKKwkJCQkJCQkJCVwKIAkvKiBSYXBpZElPIHJvdXRlIG9wcyAqLwkJCQkJCVwKIAkucmlvX3JvdXRlICAgICAgICA6IEFUKEFERFIoLnJpb19yb3V0ZSkgLSBMT0FEX09GRlNFVCkgewlcCiAJCVZNTElOVVhfU1lNQk9MKF9fc3RhcnRfcmlvX3JvdXRlX29wcykgPSAuOwkJXApAQCAtOTMsNiArMTAyLDggQEAKIAkJVk1MSU5VWF9TWU1CT0woX19lbmRfcmlvX3JvdXRlX29wcykgPSAuOwkJXAogCX0JCQkJCQkJCVwKIAkJCQkJCQkJCVwKKwlUUkFDRURBVEEJCQkJCQkJXAorCQkJCQkJCQkJXAogCS8qIEtlcm5lbCBzeW1ib2wgdGFibGU6IE5vcm1hbCBzeW1ib2xzICovCQkJXAogCV9fa3N5bXRhYiAgICAgICAgIDogQVQoQUREUihfX2tzeW10YWIpIC0gTE9BRF9PRkZTRVQpIHsJCVwKIAkJVk1MSU5VWF9TWU1CT0woX19zdGFydF9fX2tzeW10YWIpID0gLjsJCQlcCkBAIC0zMTAsNiArMzIxLDcgQEAKIAkJLnN0YWIuaW5kZXhzdHIgMCA6IHsgKiguc3RhYi5pbmRleHN0cikgfQkJXAogCQkuY29tbWVudCAwIDogeyAqKC5jb21tZW50KSB9CiAKKyNpZmRlZiBDT05GSUdfR0VORVJJQ19CVUcKICNkZWZpbmUgQlVHX1RBQkxFCQkJCQkJCVwKIAkuID0gQUxJR04oOCk7CQkJCQkJCVwKIAlfX2J1Z190YWJsZSA6IEFUKEFERFIoX19idWdfdGFibGUpIC0gTE9BRF9PRkZTRVQpIHsJCVwKQEAgLTMxNyw2ICszMjksMjEgQEAKIAkJKihfX2J1Z190YWJsZSkJCQkJCQlcCiAJCV9fc3RvcF9fX2J1Z190YWJsZSA9IC47CQkJCQlcCiAJfQorI2Vsc2UKKyNkZWZpbmUgQlVHX1RBQkxFCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19QTV9UUkFDRQorI2RlZmluZSBUUkFDRURBVEEJCQkJCQkJXAorCS4gPSBBTElHTig0KTsJCQkJCQkJXAorCS50cmFjZWRhdGEgOiBBVChBRERSKC50cmFjZWRhdGEpIC0gTE9BRF9PRkZTRVQpIHsJCVwKKwkgIAlfX3RyYWNlZGF0YV9zdGFydCA9IC47CQkJCQlcCisJCSooLnRyYWNlZGF0YSkJCQkJCQlcCisJICAJX190cmFjZWRhdGFfZW5kID0gLjsJCQkJCVwKKwl9CisjZWxzZQorI2RlZmluZSBUUkFDRURBVEEKKyNlbmRpZgogCiAjZGVmaW5lIE5PVEVTCQkJCQkJCQlcCiAJLm5vdGVzIDogQVQoQUREUigubm90ZXMpIC0gTE9BRF9PRkZTRVQpIHsJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1oODMwMC9jYWNoZWZsdXNoLmggYi9pbmNsdWRlL2FzbS1oODMwMC9jYWNoZWZsdXNoLmgKaW5kZXggNzEyMTBkMS4uNWZmZGNhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taDgzMDAvY2FjaGVmbHVzaC5oCisrKyBiL2luY2x1ZGUvYXNtLWg4MzAwL2NhY2hlZmx1c2guaApAQCAtMyw3ICszLDcgQEAKICAqLwogCiAjaWZuZGVmIF9BU01fSDgzMDBfQ0FDSEVGTFVTSF9ICi0jZGVmaW5lIF9BTVNfSDgzMDBfQ0FDSEVGTFVTSF9ICisjZGVmaW5lIF9BU01fSDgzMDBfQ0FDSEVGTFVTSF9ICiAKIC8qCiAgKiBDYWNoZSBoYW5kbGluZyBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWlhNjQvcGF0Y2guaCBiL2luY2x1ZGUvYXNtLWlhNjQvcGF0Y2guaAppbmRleCBhNzE1NDMwLi4yOTVmZTZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1pYTY0L3BhdGNoLmgKKysrIGIvaW5jbHVkZS9hc20taWE2NC9wYXRjaC5oCkBAIC0yMSw2ICsyMSw3IEBACiBleHRlcm4gdm9pZCBpYTY0X3BhdGNoX21ja2lubGV5X2U5ICh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CiBleHRlcm4gdm9pZCBpYTY0X3BhdGNoX3Z0b3AgKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIGV4dGVybiB2b2lkIGlhNjRfcGF0Y2hfcGh5c19zdGFja19yZWcodW5zaWduZWQgbG9uZyB2YWwpOworZXh0ZXJuIHZvaWQgaWE2NF9wYXRjaF9yc2UgKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKIGV4dGVybiB2b2lkIGlhNjRfcGF0Y2hfZ2F0ZSAodm9pZCk7CiAKICNlbmRpZiAvKiBfQVNNX0lBNjRfUEFUQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20taWE2NC9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLWlhNjQvcHRyYWNlLmgKaW5kZXggNGIyYThkNC4uMTVmOGRjZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20taWE2NC9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS1pYTY0L3B0cmFjZS5oCkBAIC03Niw3ICs3Niw3IEBACiAjIGRlZmluZSBLRVJORUxfU1RBQ0tfU0laRV9PUkRFUgkJMAogI2VuZGlmCiAKLSNkZWZpbmUgSUE2NF9SQlNfT0ZGU0VUCQkJKChJQTY0X1RBU0tfU0laRSArIElBNjRfVEhSRUFEX0lORk9fU0laRSArIDE1KSAmIH4xNSkKKyNkZWZpbmUgSUE2NF9SQlNfT0ZGU0VUCQkJKChJQTY0X1RBU0tfU0laRSArIElBNjRfVEhSRUFEX0lORk9fU0laRSArIDMxKSAmIH4zMSkKICNkZWZpbmUgSUE2NF9TVEtfT0ZGU0VUCQkJKCgxIDw8IEtFUk5FTF9TVEFDS19TSVpFX09SREVSKSpQQUdFX1NJWkUpCiAKICNkZWZpbmUgS0VSTkVMX1NUQUNLX1NJWkUJCUlBNjRfU1RLX09GRlNFVApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20taWE2NC9zZWN0aW9ucy5oIGIvaW5jbHVkZS9hc20taWE2NC9zZWN0aW9ucy5oCmluZGV4IGRjNDJhMzUuLjcyODZlNGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWlhNjQvc2VjdGlvbnMuaAorKysgYi9pbmNsdWRlL2FzbS1pYTY0L3NlY3Rpb25zLmgKQEAgLTEwLDYgKzEwLDcgQEAKIAogZXh0ZXJuIGNoYXIgX19wZXJfY3B1X3N0YXJ0W10sIF9fcGVyX2NwdV9lbmRbXSwgX19waHlzX3Blcl9jcHVfc3RhcnRbXTsKIGV4dGVybiBjaGFyIF9fc3RhcnRfX192dG9wX3BhdGNobGlzdFtdLCBfX2VuZF9fX3Z0b3BfcGF0Y2hsaXN0W107CitleHRlcm4gY2hhciBfX3N0YXJ0X19fcnNlX3BhdGNobGlzdFtdLCBfX2VuZF9fX3JzZV9wYXRjaGxpc3RbXTsKIGV4dGVybiBjaGFyIF9fc3RhcnRfX19tY2tpbmxleV9lOV9idW5kbGVzW10sIF9fZW5kX19fbWNraW5sZXlfZTlfYnVuZGxlc1tdOwogZXh0ZXJuIGNoYXIgX19zdGFydF9fX3BoeXNfc3RhY2tfcmVnX3BhdGNobGlzdFtdLCBfX2VuZF9fX3BoeXNfc3RhY2tfcmVnX3BhdGNobGlzdFtdOwogZXh0ZXJuIGNoYXIgX19zdGFydF9nYXRlX3NlY3Rpb25bXTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLWlhNjQvc24vc2ltdWxhdG9yLmggYi9pbmNsdWRlL2FzbS1pYTY0L3NuL3NpbXVsYXRvci5oCmluZGV4IGMzZmQzZWIuLmMyNjExZjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLWlhNjQvc24vc2ltdWxhdG9yLmgKKysrIGIvaW5jbHVkZS9hc20taWE2NC9zbi9zaW11bGF0b3IuaApAQCAtOCw3ICs4LDcgQEAKICNpZm5kZWYgX0FTTV9JQTY0X1NOX1NJTVVMQVRPUl9ICiAjZGVmaW5lIF9BU01fSUE2NF9TTl9TSU1VTEFUT1JfSAogCi0KKyNpZiBkZWZpbmVkKENPTkZJR19JQTY0X0dFTkVSSUMpIHx8IGRlZmluZWQoQ09ORklHX0lBNjRfU0dJX1NOMikgfHwgZGVmaW5lZChDT05GSUdfSUE2NF9TR0lfVVYpCiAjZGVmaW5lIFNOTUFHSUMgMHhhZWVlZWVlZThiYWRiZWVmTAogI2RlZmluZSBJU19NRURVU0EoKQkJCSh7bG9uZyBzbjsgYXNtKCJtb3YgJTA9Y3B1aWRbJTFdIiA6ICI9ciIoc24pIDogInIiKDIpKTsgc24gPT0gU05NQUdJQzt9KQogCkBAIC0xNiw1ICsxNiwxMCBAQAogI2RlZmluZSBJU19SVU5OSU5HX09OX1NJTVVMQVRPUigpCShzbl9wcm9tX3R5cGUpCiAjZGVmaW5lIElTX1JVTk5JTkdfT05fRkFLRV9QUk9NKCkJKHNuX3Byb21fdHlwZSA9PSAyKQogZXh0ZXJuIGludCBzbl9wcm9tX3R5cGU7CQkvKiAwPWhhcmR3YXJlLCAxPW1lZHVzYS9yZWFscHJvbSwgMj1tZWR1c2EvZmFrZXByb20gKi8KKyNlbHNlCisjZGVmaW5lIElTX01FRFVTQSgpCQkJMAorI2RlZmluZSBTSU1VTEFUT1JfU0xFRVAoKQorI2RlZmluZSBJU19SVU5OSU5HX09OX1NJTVVMQVRPUigpCTAKKyNlbmRpZgogCiAjZW5kaWYgLyogX0FTTV9JQTY0X1NOX1NJTVVMQVRPUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tMzJyL3VhY2Nlc3MuaCBiL2luY2x1ZGUvYXNtLW0zMnIvdWFjY2Vzcy5oCmluZGV4IGJkOGM4MzcuLjFjNzA0N2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW0zMnIvdWFjY2Vzcy5oCisrKyBiL2luY2x1ZGUvYXNtLW0zMnIvdWFjY2Vzcy5oCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC90aHJlYWRfaW5mby5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAKICNkZWZpbmUgVkVSSUZZX1JFQUQgMAogI2RlZmluZSBWRVJJRllfV1JJVEUgMQpAQCAtMTA2LDcgKzEwNyw2IEBACiAjZWxzZQogc3RhdGljIGlubGluZSBpbnQgYWNjZXNzX29rKGludCB0eXBlLCBjb25zdCB2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpCiB7Ci0JZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbWVtb3J5X3N0YXJ0LCBtZW1vcnlfZW5kOwogCXVuc2lnbmVkIGxvbmcgdmFsID0gKHVuc2lnbmVkIGxvbmcpYWRkcjsKIAogCXJldHVybiAoKHZhbCA+PSBtZW1vcnlfc3RhcnQpICYmICgodmFsICsgc2l6ZSkgPCBtZW1vcnlfZW5kKSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1tNjhrL2JpdG9wcy5oIGIvaW5jbHVkZS9hc20tbTY4ay9iaXRvcHMuaAppbmRleCA4M2QxZjI4Li4zZTgxMDY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1tNjhrL2JpdG9wcy5oCisrKyBiL2luY2x1ZGUvYXNtLW02OGsvYml0b3BzLmgKQEAgLTQxMCw4ICs0MTAsNDkgQEAKIAlyZXMgPSBleHQyX2ZpbmRfZmlyc3RfemVyb19iaXQgKHAsIHNpemUgLSAzMiAqIChwIC0gYWRkcikpOwogCXJldHVybiAocCAtIGFkZHIpICogMzIgKyByZXM7CiB9Ci0jZGVmaW5lIGV4dDJfZmluZF9uZXh0X2JpdChhZGRyLCBzaXplLCBvZmYpIFwKLQlnZW5lcmljX2ZpbmRfbmV4dF9sZV9iaXQoKHVuc2lnbmVkIGxvbmcgKikoYWRkciksIChzaXplKSwgKG9mZikpCisKK3N0YXRpYyBpbmxpbmUgaW50IGV4dDJfZmluZF9maXJzdF9iaXQoY29uc3Qgdm9pZCAqdmFkZHIsIHVuc2lnbmVkIHNpemUpCit7CisJY29uc3QgdW5zaWduZWQgbG9uZyAqcCA9IHZhZGRyLCAqYWRkciA9IHZhZGRyOworCWludCByZXM7CisKKwlpZiAoIXNpemUpCisJCXJldHVybiAwOworCisJc2l6ZSA9IChzaXplID4+IDUpICsgKChzaXplICYgMzEpID4gMCk7CisJd2hpbGUgKCpwKysgPT0gMFVMKSB7CisJCWlmICgtLXNpemUgPT0gMCkKKwkJCXJldHVybiAocCAtIGFkZHIpIDw8IDU7CisJfQorCisJLS1wOworCWZvciAocmVzID0gMDsgcmVzIDwgMzI7IHJlcysrKQorCQlpZiAoZXh0Ml90ZXN0X2JpdChyZXMsIHApKQorCQkJYnJlYWs7CisJcmV0dXJuIChwIC0gYWRkcikgKiAzMiArIHJlczsKK30KKworc3RhdGljIGlubGluZSBpbnQgZXh0Ml9maW5kX25leHRfYml0KGNvbnN0IHZvaWQgKnZhZGRyLCB1bnNpZ25lZCBzaXplLAorCQkJCSAgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCWNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkZHIgPSB2YWRkcjsKKwljb25zdCB1bnNpZ25lZCBsb25nICpwID0gYWRkciArIChvZmZzZXQgPj4gNSk7CisJaW50IGJpdCA9IG9mZnNldCAmIDMxVUwsIHJlczsKKworCWlmIChvZmZzZXQgPj0gc2l6ZSkKKwkJcmV0dXJuIHNpemU7CisKKwlpZiAoYml0KSB7CisJCS8qIExvb2sgZm9yIG9uZSBpbiBmaXJzdCBsb25nd29yZCAqLworCQlmb3IgKHJlcyA9IGJpdDsgcmVzIDwgMzI7IHJlcysrKQorCQkJaWYgKGV4dDJfdGVzdF9iaXQocmVzLCBwKSkKKwkJCQlyZXR1cm4gKHAgLSBhZGRyKSAqIDMyICsgcmVzOworCQlwKys7CisJfQorCS8qIE5vIHNldCBiaXQgeWV0LCBzZWFyY2ggcmVtYWluaW5nIGZ1bGwgYnl0ZXMgZm9yIGEgc2V0IGJpdCAqLworCXJlcyA9IGV4dDJfZmluZF9maXJzdF9iaXQocCwgc2l6ZSAtIDMyICogKHAgLSBhZGRyKSk7CisJcmV0dXJuIChwIC0gYWRkcikgKiAzMiArIHJlczsKK30KIAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9hdG9taWMuaCBiL2luY2x1ZGUvYXNtLW1pcHMvYXRvbWljLmgKaW5kZXggYTc5OGQ2Mi4uMTIzMmJlMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9hdG9taWMuaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL2F0b21pYy5oCkBAIC0yODMsMTAgKzI4MywxMCBAQAogCQkiCWJlcXoJJTAsIDJmCQkJCQlcbiIKIAkJIgkgc3VidQklMCwgJTEsICUzCQkJCVxuIgogCQkiCS5zZXQJcmVvcmRlcgkJCQkJXG4iCi0JCSIxOgkJCQkJCQlcbiIKIAkJIgkuc3Vic2VjdGlvbiAyCQkJCQlcbiIKIAkJIjI6CWIJMWIJCQkJCVxuIgogCQkiCS5wcmV2aW91cwkJCQkJXG4iCisJCSIxOgkJCQkJCQlcbiIKIAkJIgkuc2V0CW1pcHMwCQkJCQlcbiIKIAkJOiAiPSZyIiAocmVzdWx0KSwgIj0mciIgKHRlbXApLCAiPW0iICh2LT5jb3VudGVyKQogCQk6ICJJciIgKGkpLCAibSIgKHYtPmNvdW50ZXIpCkBAIC02NjQsMTAgKzY2NCwxMCBAQAogCQkiCWJlcXoJJTAsIDJmCQkJCQlcbiIKIAkJIgkgZHN1YnUJJTAsICUxLCAlMwkJCQlcbiIKIAkJIgkuc2V0CXJlb3JkZXIJCQkJCVxuIgotCQkiMToJCQkJCQkJXG4iCiAJCSIJLnN1YnNlY3Rpb24gMgkJCQkJXG4iCiAJCSIyOgliCTFiCQkJCQlcbiIKIAkJIgkucHJldmlvdXMJCQkJCVxuIgorCQkiMToJCQkJCQkJXG4iCiAJCSIJLnNldAltaXBzMAkJCQkJXG4iCiAJCTogIj0mciIgKHJlc3VsdCksICI9JnIiICh0ZW1wKSwgIj1tIiAodi0+Y291bnRlcikKIAkJOiAiSXIiIChpKSwgIm0iICh2LT5jb3VudGVyKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9jcHUtaW5mby5oIGIvaW5jbHVkZS9hc20tbWlwcy9jcHUtaW5mby5oCmluZGV4IDBjNWEzNTguLjJkZTczZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvY3B1LWluZm8uaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL2NwdS1pbmZvLmgKQEAgLTU2LDcgKzU2LDcgQEAKIAlzdHJ1Y3QgY2FjaGVfZGVzYwl0Y2FjaGU7CS8qIFRlcnRpYXJ5L3NwbGl0IHNlY29uZGFyeSBjYWNoZSAqLwogCWludAkJCXNyc2V0czsJLyogU2hhZG93IHJlZ2lzdGVyIHNldHMgKi8KIAlpbnQJCQljb3JlOwkvKiBwaHlzaWNhbCBjb3JlIG51bWJlciAqLwotI2lmIGRlZmluZWQoQ09ORklHX01JUFNfTVRfU01UQykKKyNpZiBkZWZpbmVkKENPTkZJR19NSVBTX01UX1NNUCkgfHwgZGVmaW5lZChDT05GSUdfTUlQU19NVF9TTVRDKQogCS8qCiAJICogSW4gdGhlIE1JUFMgTVQgIlNNVEMiIG1vZGVsLCBlYWNoIFRDIGlzIGNvbnNpZGVyZWQKIAkgKiB0byBiZSBhICJDUFUiIGZvciB0aGUgcHVycG9zZXMgb2Ygc2NoZWR1bGluZywgYnV0CkBAIC02NCw3ICs2NCw3IEBACiAJICogdG8gYWxsIFRDcyB3aXRoaW4gdGhlIHNhbWUgVlBFLgogCSAqLwogCWludAkJCXZwZV9pZDsgIC8qIFZpcnR1YWwgUHJvY2Vzc29yIG51bWJlciAqLwotI2VuZGlmIC8qIENPTkZJR19NSVBTX01UICovCisjZW5kaWYKICNpZmRlZiBDT05GSUdfTUlQU19NVF9TTVRDCiAJaW50CQkJdGNfaWQ7ICAgLyogVGhyZWFkIENvbnRleHQgbnVtYmVyICovCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvZ2ljLmggYi9pbmNsdWRlL2FzbS1taXBzL2dpYy5oCmluZGV4IDAxYjJmOTIuLjk1NDgwN2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvZ2ljLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9naWMuaApAQCAtMjQsOCArMjQsOCBAQAogCiAjZGVmaW5lIE1TSyhuKSAoKDEgPDwgKG4pKSAtIDEpCiAjZGVmaW5lIFJFRzMyKGFkZHIpCQkoKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgKGFkZHIpKQotI2RlZmluZSBSRUcoYmFzZSwgb2ZmcykJCVJFRzMyKCh1bnNpZ25lZCBpbnQpKGJhc2UpICsgb2ZmcyMjXyMjT0ZTKQotI2RlZmluZSBSRUdQKGJhc2UsIHBoeXMpCVJFRzMyKCh1bnNpZ25lZCBpbnQpKGJhc2UpICsgKHBoeXMpKQorI2RlZmluZSBSRUcoYmFzZSwgb2ZmcykJCVJFRzMyKCh1bnNpZ25lZCBsb25nKShiYXNlKSArIG9mZnMjI18jI09GUykKKyNkZWZpbmUgUkVHUChiYXNlLCBwaHlzKQlSRUczMigodW5zaWduZWQgbG9uZykoYmFzZSkgKyAocGh5cykpCiAKIC8qIEFjY2Vzc29ycyAqLwogI2RlZmluZSBHSUNfUkVHKHNlZ21lbnQsIG9mZnNldCkgXApAQCAtMzMwLDcgKzMzMCw3IEBACiAKICNkZWZpbmUgR0lDX1NIX1JNQVNLX09GUwkJMHgwMzAwCiAjZGVmaW5lIEdJQ19DTFJfSU5UUl9NQVNLKGludHIsIHZhbCkgXAotCUdJQ1dSSVRFKEdJQ19SRUdfQUREUihTSEFSRUQsIEdJQ19TSF9STUFTS19PRlMgKyA0ICsgKCgoKChpbnRyKSAvIDMyKSBeIDEpIC0gMSkgKiA0KSksICgodmFsKSA8PCAoKGludHIpICUgMzIpKQorCUdJQ1dSSVRFKEdJQ19SRUdfQUREUihTSEFSRUQsIEdJQ19TSF9STUFTS19PRlMgKyA0ICsgKCgoKChpbnRyKSAvIDMyKSBeIDEpIC0gMSkgKiA0KSksICgodmFsKSA8PCAoKGludHIpICUgMzIpKSkKIAogLyogUmVnaXN0ZXIgTWFwIGZvciBMb2NhbCBTZWN0aW9uICovCiAjZGVmaW5lIEdJQ19WUEVfQ1RMX09GUwkJCTB4MDAwMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9sYXNhdC9zZXJpYWwuaCBiL2luY2x1ZGUvYXNtLW1pcHMvbGFzYXQvc2VyaWFsLmgKaW5kZXggYmFmZTY4Yi4uMWMzN2Q3MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9sYXNhdC9zZXJpYWwuaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL2xhc2F0L3NlcmlhbC5oCkBAIC00LDEwICs0LDEwIEBACiAjZGVmaW5lIExBU0FUX0JBU0VfQkFVRF8xMDAgCQkoNzM3MjgwMCAvIDE2KQogI2RlZmluZSBMQVNBVF9VQVJUX1JFR1NfQkFTRV8xMDAJMHgxYzhiMDAwMAogI2RlZmluZSBMQVNBVF9VQVJUX1JFR1NfU0hJRlRfMTAwCTIKLSNkZWZpbmUgTEFTQVRJTlRfVUFSVF8xMDAJCTgKKyNkZWZpbmUgTEFTQVRJTlRfVUFSVF8xMDAJCTE2CiAKIC8qICogTEFTQVQgMjAwIGJvYXJkcyBzZXJpYWwgY29uZmlndXJhdGlvbiAqLwogI2RlZmluZSBMQVNBVF9CQVNFX0JBVURfMjAwCQkoMTAwMDAwMDAwIC8gMTYgLyAxMikKICNkZWZpbmUgTEFTQVRfVUFSVF9SRUdTX0JBU0VfMjAwCShWcmM1MDc0X1BIWVNfQkFTRSArIDB4MDMwMCkKICNkZWZpbmUgTEFTQVRfVUFSVF9SRUdTX1NISUZUXzIwMAkzCi0jZGVmaW5lIExBU0FUSU5UX1VBUlRfMjAwCQkxMworI2RlZmluZSBMQVNBVElOVF9VQVJUXzIwMAkJMjEKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxMDAwLmggYi9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MTAwMC5oCmluZGV4IDM2M2ExNGUuLjBkMzAyYmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxMDAwLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTEwMDAuaApAQCAtNjE1LDYgKzYxNSw3IEBACiAJQVUxMDAwX1JUQ19NQVRDSDFfSU5ULAogCUFVMTAwMF9SVENfTUFUQ0gyX0lOVCwKIAlBVTE1MDBfUENJX0VSUl9JTlQsCisJQVUxNTAwX1JFU0VSVkVEX0lOVCwKIAlBVTEwMDBfVVNCX0RFVl9SRVFfSU5ULAogCUFVMTAwMF9VU0JfREVWX1NVU19JTlQsCiAJQVUxMDAwX1VTQl9IT1NUX0lOVCwKQEAgLTEwMzYsNyArMTAzNyw3IEBACiAjZGVmaW5lIFVTQkRfSU5UU1RBVAkJMHhCMDIwMDAxQwogIyAgZGVmaW5lIFVTQkRFVl9JTlRfU09GCSgxIDw8IDEyKQogIyAgZGVmaW5lIFVTQkRFVl9JTlRfSEZfQklUCTYKLSMgIGRlZmluZSBVU0JERVZfSU5UX0hGX01BU0sJMHgzZiA8PCBVU0JERVZfSU5UX0hGX0JJVCkKKyMgIGRlZmluZSBVU0JERVZfSU5UX0hGX01BU0sJKDB4M2YgPDwgVVNCREVWX0lOVF9IRl9CSVQpCiAjICBkZWZpbmUgVVNCREVWX0lOVF9DTVBMVF9CSVQJMAogIyAgZGVmaW5lIFVTQkRFVl9JTlRfQ01QTFRfTUFTSyAoMHgzZiA8PCBVU0JERVZfSU5UX0NNUExUX0JJVCkKICNkZWZpbmUgVVNCRF9DT05GSUcJCTB4QjAyMDAwMjAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X2RiZG1hLmggYi9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MXh4eF9kYmRtYS5oCmluZGV4IGFkMTdkN2MuLjQ0YTY3YmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvbWFjaC1hdTF4MDAvYXUxeHh4X2RiZG1hLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTF4eHhfZGJkbWEuaApAQCAtMzU1LDYgKzM1NSw3IEBACiB1MzIgYXUxeHh4X2RiZG1hX3B1dF9kc2NyKHUzMiBjaGFuaWQsIGF1MXhfZGRtYV9kZXNjX3QgKmRzY3IpOwogCiB1MzIgYXUxeHh4X2RkbWFfYWRkX2RldmljZShkYmRldl90YWJfdCAqZGV2KTsKK2V4dGVybiB2b2lkIGF1MXh4eF9kZG1hX2RlbF9kZXZpY2UodTMyIGRldmlkKTsKIHZvaWQgKmF1MXh4eF9kZG1hX2dldF9uZXh0cHRyX3ZpcnQoYXUxeF9kZG1hX2Rlc2NfdCAqZHApOwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9tYWNoLWF1MXgwMC9hdTF4eHhfcHNjLmggYi9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaAppbmRleCBkYWU0ZWNhLi44OTJiN2YxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaApAQCAtMjA0LDYgKzIwNCwxNCBAQAogCXUzMglwc2NfaTJzdWRmOwogfSBwc2NfaTJzX3Q7CiAKKyNkZWZpbmUgUFNDX0kyU0NGR19PRkZTRVQJMHgwOAorI2RlZmluZSBQU0NfSTJTTUFTS19PRkZTRVQJMHgwQworI2RlZmluZSBQU0NfSTJTUENSX09GRlNFVAkweDEwCisjZGVmaW5lIFBTQ19JMlNTVEFUX09GRlNFVAkweDE0CisjZGVmaW5lIFBTQ19JMlNFVkVOVF9PRkZTRVQJMHgxOAorI2RlZmluZSBQU0NfSTJTUlhUWF9PRkZTRVQJMHgxQworI2RlZmluZSBQU0NfSTJTVURGX09GRlNFVAkweDIwCisKIC8qIEkyUyBDb25maWcgUmVnaXN0ZXIuICovCiAjZGVmaW5lIFBTQ19JMlNDRkdfUlRfTUFTSwkoMyA8PCAzMCkKICNkZWZpbmUgUFNDX0kyU0NGR19SVF9GSUZPMQkoMCA8PCAzMCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbWlwc3JlZ3MuaCBiL2luY2x1ZGUvYXNtLW1pcHMvbWlwc3JlZ3MuaAppbmRleCBhYTE3ZjY1Li5hNDZmOGUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL21pcHNyZWdzLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9taXBzcmVncy5oCkBAIC03NjUsNiArNzY1LDkgQEAKICNkZWZpbmUgcmVhZF9jMF9pbmRleCgpCQlfX3JlYWRfMzJiaXRfYzBfcmVnaXN0ZXIoJDAsIDApCiAjZGVmaW5lIHdyaXRlX2MwX2luZGV4KHZhbCkJX193cml0ZV8zMmJpdF9jMF9yZWdpc3RlcigkMCwgMCwgdmFsKQogCisjZGVmaW5lIHJlYWRfYzBfcmFuZG9tKCkJX19yZWFkXzMyYml0X2MwX3JlZ2lzdGVyKCQxLCAwKQorI2RlZmluZSB3cml0ZV9jMF9yYW5kb20odmFsKQlfX3dyaXRlXzMyYml0X2MwX3JlZ2lzdGVyKCQxLCAwLCB2YWwpCisKICNkZWZpbmUgcmVhZF9jMF9lbnRyeWxvMCgpCV9fcmVhZF91bG9uZ19jMF9yZWdpc3RlcigkMiwgMCkKICNkZWZpbmUgd3JpdGVfYzBfZW50cnlsbzAodmFsKQlfX3dyaXRlX3Vsb25nX2MwX3JlZ2lzdGVyKCQyLCAwLCB2YWwpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS1iaXRzLmggYi9pbmNsdWRlL2FzbS1taXBzL3BndGFibGUtYml0cy5oCmluZGV4IDYwZTJmOTMuLjUxYjM0YTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS1iaXRzLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9wZ3RhYmxlLWJpdHMuaApAQCAtMTM0LDYgKzEzNCw0IEBACiAKICNkZWZpbmUgX1BBR0VfQ0hHX01BU0sgIChQQUdFX01BU0sgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX01PRElGSUVEIHwgX0NBQ0hFX01BU0spCiAKLSNkZWZpbmUgQ09ORl9DTV9ERUZBVUxUCQkoUEFHRV9DQUNIQUJMRV9ERUZBVUxUPj5fQ0FDSEVfU0hJRlQpCi0KICNlbmRpZiAvKiBfQVNNX1BHVEFCTEVfQklUU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS5oCmluZGV4IDJmNTk3ZWUuLjZhMGVkZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvcGd0YWJsZS5oCkBAIC0yMzksOSArMjM5LDEwIEBACiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3lvdW5nKHB0ZV90IHB0ZSkKIHsKIAlwdGUucHRlX2xvdyB8PSBfUEFHRV9BQ0NFU1NFRDsKLQlpZiAocHRlLnB0ZV9sb3cgJiBfUEFHRV9SRUFEKQorCWlmIChwdGUucHRlX2xvdyAmIF9QQUdFX1JFQUQpIHsKIAkJcHRlLnB0ZV9sb3cgIHw9IF9QQUdFX1NJTEVOVF9SRUFEOwogCQlwdGUucHRlX2hpZ2ggfD0gX1BBR0VfU0lMRU5UX1JFQUQ7CisJfQogCXJldHVybiBwdGU7CiB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9ydGx4LmggYi9pbmNsdWRlL2FzbS1taXBzL3J0bHguaAppbmRleCAyMGI2NjYwLi40Y2EzMDYzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL3J0bHguaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL3J0bHguaApAQCAtMyw3ICszLDcgQEAKICAqCiAgKi8KIAotI2lmbmRlZiBfX0FTTV9SVExYX0gKKyNpZm5kZWYgX19BU01fUlRMWF9IXwogI2RlZmluZSBfX0FTTV9SVExYX0hfCiAKICNpbmNsdWRlIDxpcnEuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1uMTAzMDAvaXBjYnVmLmggYi9pbmNsdWRlL2FzbS1tbjEwMzAwL2lwY2J1Zi5oCmluZGV4IGVmYmJlZjguLmY2ZjYzZDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1uMTAzMDAvaXBjYnVmLmgKKysrIGIvaW5jbHVkZS9hc20tbW4xMDMwMC9pcGNidWYuaApAQCAtMSw0ICsxLDQgQEAKLSNpZm5kZWYgX0FTTV9JUENCVUZfSF8KKyNpZm5kZWYgX0FTTV9JUENCVUZfSAogI2RlZmluZSBfQVNNX0lQQ0JVRl9ICiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wYXJpc2MvY2hlY2tzdW0uaCBiL2luY2x1ZGUvYXNtLXBhcmlzYy9jaGVja3N1bS5oCmluZGV4IGNjM2VjMWIuLmU5NjM5Y2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBhcmlzYy9jaGVja3N1bS5oCisrKyBiL2luY2x1ZGUvYXNtLXBhcmlzYy9jaGVja3N1bS5oCkBAIC02NSw3ICs2NSw3IEBACiAiMjpcbiIKIAk6ICI9ciIgKHN1bSksICI9ciIgKGlwaCksICI9ciIgKGlobCkKIAk6ICIxIiAoaXBoKSwgIjIiIChpaGwpCi0JOiAicjE5IiwgInIyMCIsICJyMjEiICk7CisJOiAicjE5IiwgInIyMCIsICJyMjEiLCAibWVtb3J5Iik7CiAKIAlyZXR1cm4gKF9fZm9yY2UgX19zdW0xNilzdW07CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wb3dlcnBjL0tidWlsZCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCmluZGV4IDczODE5MTYuLmJjYTM1MmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMvS2J1aWxkCkBAIC0xLDYgKzEsNSBAQAogaW5jbHVkZSBpbmNsdWRlL2FzbS1nZW5lcmljL0tidWlsZC5hc20KIAotaGVhZGVyLXkgKz0gYS5vdXQuaAogaGVhZGVyLXkgKz0gYXV4dmVjLmgKIGhlYWRlci15ICs9IGlvY3Rscy5oCiBoZWFkZXIteSArPSBtbWFuLmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvZnRyYWNlLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlOTIxMzIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQgQEAKKyNpZm5kZWYgX0FTTV9QT1dFUlBDX0ZUUkFDRQorI2RlZmluZSBfQVNNX1BPV0VSUENfRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjZGVmaW5lIE1DT1VOVF9BRERSCQkoKGxvbmcpKF9tY291bnQpKQorI2RlZmluZSBNQ09VTlRfSU5TTl9TSVpFCTQgLyogc2l6ZW9mIG1jb3VudCBjYWxsICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCitleHRlcm4gdm9pZCBfbWNvdW50KHZvaWQpOworI2VuZGlmCisKKyNlbmRpZgorCisjZW5kaWYgLyogX0FTTV9QT1dFUlBDX0ZUUkFDRSAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9odWdldGxiLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaAppbmRleCA2NDljNmMzLi5iZTMyZmYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h1Z2V0bGIuaApAQCAtNDksMTIgKzQ5LDYgQEAKIAlyZXR1cm4gcHRlX3dycHJvdGVjdChwdGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgaHVnZV9wdGVwX3NldF93cnByb3RlY3Qoc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QgKnB0ZXApCi17Ci0JcHRlcF9zZXRfd3Jwcm90ZWN0KG1tLCBhZGRyLCBwdGVwKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgaHVnZV9wdGVwX3NldF9hY2Nlc3NfZmxhZ3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJCSAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCwKIAkJCQkJICAgICBwdGVfdCBwdGUsIGludCBkaXJ0eSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaHdfaXJxLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2h3X2lycS5oCmluZGV4IGFkOGM5ZjcuLmY3NWE1ZmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaHdfaXJxLmgKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9od19pcnEuaApAQCAtNTksNiArNTksMTEgQEAKIAkJZ2V0X3BhY2EoKS0+aGFyZF9lbmFibGVkID0gMDsJXAogCX0gd2hpbGUoMCkKIAorc3RhdGljIGlubGluZSBpbnQgaXJxc19kaXNhYmxlZF9mbGFncyh1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXJldHVybiBmbGFncyA9PSAwOworfQorCiAjZWxzZQogCiAjaWYgZGVmaW5lZChDT05GSUdfQk9PS0UpCkBAIC0xMTMsNiArMTE4LDExIEBACiAjZGVmaW5lIGhhcmRfaXJxX2VuYWJsZSgpCWxvY2FsX2lycV9lbmFibGUoKQogI2RlZmluZSBoYXJkX2lycV9kaXNhYmxlKCkJbG9jYWxfaXJxX2Rpc2FibGUoKQogCitzdGF0aWMgaW5saW5lIGludCBpcnFzX2Rpc2FibGVkX2ZsYWdzKHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJcmV0dXJuIChmbGFncyAmIE1TUl9FRSkgPT0gMDsKK30KKwogI2VuZGlmIC8qIENPTkZJR19QUEM2NCAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9pby5oIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9pby5oCmluZGV4IGUwMDYyZDcuLjg5MTg5NDggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXBvd2VycGMvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL2lvLmgKQEAgLTEwMCw3ICsxMDAsNyBAQAogewkJCQkJCQkJCVwKIAl0eXBlIHJldDsJCQkJCQkJXAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzeW5jOyIgaW5zbiAiO3R3aSAwLCUwLDA7aXN5bmMiCQlcCi0gCQk6ICI9ciIgKHJldCkgOiAiciIgKGFkZHIpLCAibSIgKCphZGRyKSk7CQlcCisJCTogIj1yIiAocmV0KSA6ICJyIiAoYWRkciksICJtIiAoKmFkZHIpIDogIm1lbW9yeSIpOwlcCiAJcmV0dXJuIHJldDsJCQkJCQkJXAogfQogCkBAIC0xMDgsOCArMTA4LDggQEAKIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHZvbGF0aWxlIHR5cGUgX19pb21lbSAqYWRkciwgdHlwZSB2YWwpCQlcCiB7CQkJCQkJCQkJXAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzeW5jOyIgaW5zbgkJCQlcCi0gCQk6ICI9bSIgKCphZGRyKSA6ICJyIiAodmFsKSwgInIiIChhZGRyKSk7CQlcCi0JSU9fU0VUX1NZTkNfRkxBRygpOwkJCQkJXAorCQk6ICI9bSIgKCphZGRyKSA6ICJyIiAodmFsKSwgInIiIChhZGRyKSA6ICJtZW1vcnkiKTsJXAorCUlPX1NFVF9TWU5DX0ZMQUcoKTsJCQkJCQlcCiB9CiAKIApAQCAtMzMzLDcgKzMzMyw4IEBACiAJCSIJLmxvbmcJM2IsNWJcbiIJCVwKIAkJIi5wcmV2aW91cyIJCQkJXAogCQk6ICI9JnIiICh4KQkJCQlcCi0JCTogInIiIChwb3J0ICsgX0lPX0JBU0UpKTsJCVwKKwkJOiAiciIgKHBvcnQgKyBfSU9fQkFTRSkJCQlcCisJCTogIm1lbW9yeSIpOyAgCQkJCVwKIAlyZXR1cm4geDsJCQkJCVwKIH0KIApAQCAtMzUwLDcgKzM1MSw4IEBACiAJCSIJLmxvbmcJMGIsMmJcbiIJCVwKIAkJIgkubG9uZwkxYiwyYlxuIgkJXAogCQkiLnByZXZpb3VzIgkJCQlcCi0JCTogOiAiciIgKHZhbCksICJyIiAocG9ydCArIF9JT19CQVNFKSk7CVwKKwkJOiA6ICJyIiAodmFsKSwgInIiIChwb3J0ICsgX0lPX0JBU0UpCVwKKwkJOiAibWVtb3J5Iik7ICAgCSAgIAkgICAJCVwKIH0KIAogX19kb19pbl9hc20oX3JlY19pbmIsICJsYnp4IikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMva3ZtX3BwYy5oIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9rdm1fcHBjLmgKaW5kZXggYjM1YTdlMy4uNWEyMTExNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9rdm1fcHBjLmgKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9rdm1fcHBjLmgKQEAgLTU3LDYgKzU3LDcgQEAKIAogZXh0ZXJuIGludCBrdm1wcGNfZW11bGF0ZV9pbnN0cnVjdGlvbihzdHJ1Y3Qga3ZtX3J1biAqcnVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpOworZXh0ZXJuIGludCBrdm1wcGNfZW11bGF0ZV9tbWlvKHN0cnVjdCBrdm1fcnVuICpydW4sIHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiAKIGV4dGVybiB2b2lkIGt2bXBwY19tbXVfbWFwKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd2YWRkciwgZ2ZuX3QgZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IGFzaWQsIHUzMiBmbGFncyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1wb3dlcnBjL21lZGlhYmF5LmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL21lZGlhYmF5LmgKaW5kZXggZGYxMTFjMy4uYjJlZmIzMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9tZWRpYWJheS5oCisrKyBiL2luY2x1ZGUvYXNtLXBvd2VycGMvbWVkaWFiYXkuaApAQCAtMTcsOCArMTcsNiBAQAogI2RlZmluZSBNQl9QT1dFUgk2CS8qIG1lZGlhIGJheSBjb250YWlucyBhIFBvd2VyIGRldmljZSAoPz8/KSAqLwogI2RlZmluZSBNQl9OTwkJNwkvKiBtZWRpYSBiYXkgY29udGFpbnMgbm90aGluZyAqLwogCi1pbnQgY2hlY2tfbWVkaWFfYmF5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqd2hpY2hfYmF5LCBpbnQgd2hhdCk7Ci0KIC8qIE51bWJlciBvZiBiYXlzIGluIHRoZSBtYWNoaW5lIG9yIDAgKi8KIGV4dGVybiBpbnQgbWVkaWFfYmF5X2NvdW50OwogCkBAIC0yOSw2ICsyNywxNiBAQAogLyogY2FsbGVkIGJ5IElERSBQTUFDIGhvc3QgZHJpdmVyIHRvIHJlZ2lzdGVyIElERSBjb250cm9sbGVyIGZvciBtZWRpYSBiYXkgKi8KIGludCBtZWRpYV9iYXlfc2V0X2lkZV9pbmZvcyhzdHJ1Y3QgZGV2aWNlX25vZGUgKndoaWNoX2JheSwgdW5zaWduZWQgbG9uZyBiYXNlLAogCQkJICAgIGludCBpcnEsIGlkZV9od2lmX3QgKmh3aWYpOworCitpbnQgY2hlY2tfbWVkaWFfYmF5KHN0cnVjdCBkZXZpY2Vfbm9kZSAqd2hpY2hfYmF5LCBpbnQgd2hhdCk7CisKKyNlbHNlCisKK3N0YXRpYyBpbmxpbmUgaW50IGNoZWNrX21lZGlhX2JheShzdHJ1Y3QgZGV2aWNlX25vZGUgKndoaWNoX2JheSwgaW50IHdoYXQpCit7CisJcmV0dXJuIC1FTk9ERVY7Cit9CisKICNlbmRpZgogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9tcGljLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL21waWMuaAppbmRleCA5NDNjNWEzLi5hNGQwZjg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL21waWMuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL21waWMuaApAQCAtNDI4LDEyICs0MjgsMTEgQEAKICAqLwogCiAKLS8qIENoYW5nZS9SZWFkIHRoZSBwcmlvcml0eSBvZiBhbiBpbnRlcnJ1cHQuIERlZmF1bHQgaXMgOCBmb3IgaXJxcyBhbmQKKy8qIENoYW5nZSB0aGUgcHJpb3JpdHkgb2YgYW4gaW50ZXJydXB0LiBEZWZhdWx0IGlzIDggZm9yIGlycXMgYW5kCiAgKiAxMCBmb3IgSVBJcy4gWW91IGNhbiBjYWxsIHRoaXMgb24gYm90aCBJUElzIGFuZCBJUlEgbnVtYmVycywgYnV0IHRoZQogICogSVBJIG51bWJlciBpcyB0aGVuIHRoZSBvZmZzZXQnZWQgKGxpbnV4IGlycSBudW1iZXIgbWFwcGVkIHRvIHRoZSBJUEkpCiAgKi8KIGV4dGVybiB2b2lkIG1waWNfaXJxX3NldF9wcmlvcml0eSh1bnNpZ25lZCBpbnQgaXJxLCB1bnNpZ25lZCBpbnQgcHJpKTsKLWV4dGVybiB1bnNpZ25lZCBpbnQgbXBpY19pcnFfZ2V0X3ByaW9yaXR5KHVuc2lnbmVkIGludCBpcnEpOwogCiAvKiBTZXR1cCBhIG5vbi1ib290IENQVSAqLwogZXh0ZXJuIHZvaWQgbXBpY19zZXR1cF90aGlzX2NwdSh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXBvd2VycGMvcGd0YWJsZS1wcGM2NC5oIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKaW5kZXggY2M2YTQzYi4uNzY4NjU2OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKKysrIGIvaW5jbHVkZS9hc20tcG93ZXJwYy9wZ3RhYmxlLXBwYzY0LmgKQEAgLTMxNCw2ICszMTQsMTYgQEAKIAlvbGQgPSBwdGVfdXBkYXRlKG1tLCBhZGRyLCBwdGVwLCBfUEFHRV9SVywgMCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBodWdlX3B0ZXBfc2V0X3dycHJvdGVjdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwKKwkJCQkJICAgdW5zaWduZWQgbG9uZyBhZGRyLCBwdGVfdCAqcHRlcCkKK3sKKwl1bnNpZ25lZCBsb25nIG9sZDsKKworCWlmICgocHRlX3ZhbCgqcHRlcCkgJiBfUEFHRV9SVykgPT0gMCkKKwkJcmV0dXJuOworCW9sZCA9IHB0ZV91cGRhdGUobW0sIGFkZHIsIHB0ZXAsIF9QQUdFX1JXLCAxKTsKK30KKwogLyoKICAqIFdlIGN1cnJlbnRseSByZW1vdmUgZW50cmllcyBmcm9tIHRoZSBoYXNodGFibGUgcmVnYXJkbGVzcyBvZiB3aGV0aGVyCiAgKiB0aGUgZW50cnkgd2FzIHlvdW5nIG9yIGRpcnR5LiBUaGUgZ2VuZXJpYyByb3V0aW5lcyBvbmx5IGZsdXNoIGlmIHRoZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHUuaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvc3B1LmgKaW5kZXggNmFiZWFkNi4uOTkzNDhjMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHUuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdS5oCkBAIC0xMzEsNyArMTMxLDYgQEAKIAl1NjQgZmxhZ3M7CiAJdTY0IGNsYXNzXzBfcGVuZGluZzsKIAl1NjQgY2xhc3NfMF9kYXI7Ci0JdTY0IGNsYXNzXzBfZHNpc3I7CiAJdTY0IGNsYXNzXzFfZGFyOwogCXU2NCBjbGFzc18xX2RzaXNyOwogCXNpemVfdCBsc19zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zcHVfY3NhLmggYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaAppbmRleCAxMjllYzE0Li5hNDBmZDQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3NwdV9jc2EuaApAQCAtMjU0LDcgKzI1NCw3IEBACiAJdTY0IHNwdV9jaG5sZGF0YV9SV1szMl07CiAJdTMyIHNwdV9tYWlsYm94X2RhdGFbNF07CiAJdTMyIHB1X21haWxib3hfZGF0YVsxXTsKLQl1NjQgY2xhc3NfMF9kYXIsIGNsYXNzXzBfZHNpc3IsIGNsYXNzXzBfcGVuZGluZzsKKwl1NjQgY2xhc3NfMF9kYXIsIGNsYXNzXzBfcGVuZGluZzsKIAl1NjQgY2xhc3NfMV9kYXIsIGNsYXNzXzFfZHNpc3I7CiAJdW5zaWduZWQgbG9uZyBzdXNwZW5kX3RpbWU7CiAJc3BpbmxvY2tfdCByZWdpc3Rlcl9sb2NrOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zeXN0ZW0uaCBiL2luY2x1ZGUvYXNtLXBvd2VycGMvc3lzdGVtLmgKaW5kZXggMmI2NTU5YS4uNTIzNWY4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tcG93ZXJwYy9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS1wb3dlcnBjL3N5c3RlbS5oCkBAIC0zNCw3ICszNCw3IEBACiAgKiBTTVAgc2luY2UgaXQgaXMgb25seSB1c2VkIHRvIG9yZGVyIHVwZGF0ZXMgdG8gc3lzdGVtIG1lbW9yeS4KICAqLwogI2RlZmluZSBtYigpICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikKLSNkZWZpbmUgcm1iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fIChfX3N0cmluZ2lmeShMV1NZTkMpIDogOiA6ICJtZW1vcnkiKQorI2RlZmluZSBybWIoKSAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikKICNkZWZpbmUgd21iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIgOiA6IDogIm1lbW9yeSIpCiAjZGVmaW5lIHJlYWRfYmFycmllcl9kZXBlbmRzKCkgIGRvIHsgfSB3aGlsZSgwKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL0tidWlsZCBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCmluZGV4IDEzYzk4MDUuLjA5ZjMxMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvS2J1aWxkCkBAIC04LDYgKzgsOSBAQAogaGVhZGVyLXkgKz0gdnRvYy5oCiBoZWFkZXIteSArPSB6Y3J5cHQuaAogaGVhZGVyLXkgKz0ga3ZtLmgKK2hlYWRlci15ICs9IHNjaGlkLmgKK2hlYWRlci15ICs9IGNoc2MuaAogCiB1bmlmZGVmLXkgKz0gY21iLmgKIHVuaWZkZWYteSArPSBkZWJ1Zy5oCit1bmlmZGVmLXkgKz0gY2hwaWQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9haXJxLmggYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAppbmRleCA0MWQwMjhjLi4xYWM4MGQ2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2FpcnEuaApAQCAtMTMsNyArMTMsNyBAQAogCiB0eXBlZGVmIHZvaWQgKCphZGFwdGVyX2ludF9oYW5kbGVyX3QpKHZvaWQgKiwgdm9pZCAqKTsKIAotdm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKik7Ci12b2lkIHMzOTBfdW5yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdCh2b2lkICopOwordm9pZCAqczM5MF9yZWdpc3Rlcl9hZGFwdGVyX2ludGVycnVwdChhZGFwdGVyX2ludF9oYW5kbGVyX3QsIHZvaWQgKiwgdTgpOwordm9pZCBzMzkwX3VucmVnaXN0ZXJfYWRhcHRlcl9pbnRlcnJ1cHQodm9pZCAqLCB1OCk7CiAKICNlbmRpZiAvKiBfQVNNX1MzOTBfQUlSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oIGIvaW5jbHVkZS9hc20tczM5MC9jY3dkZXYuaAppbmRleCAwNjZhYTcwLi5iYTAwN2Q4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Njd2Rldi5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2N3ZGV2LmgKQEAgLTEyLDYgKzEyLDcgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgorI2luY2x1ZGUgPGFzbS9mY3guaD4KIAogLyogc3RydWN0cyBmcm9tIGFzbS9jaW8uaCAqLwogc3RydWN0IGlyYjsKQEAgLTE1Nyw2ICsxNTgsMTcgQEAKIGV4dGVybiBpbnQgY2N3X2RldmljZV9yZXN1bWUoc3RydWN0IGNjd19kZXZpY2UgKik7CiBleHRlcm4gaW50IGNjd19kZXZpY2VfaGFsdChzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKIGV4dGVybiBpbnQgY2N3X2RldmljZV9jbGVhcihzdHJ1Y3QgY2N3X2RldmljZSAqLCB1bnNpZ25lZCBsb25nKTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0X2tleShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHRjdyAqdGN3LAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaW50cGFybSwgdTggbHBtLCB1OCBrZXkpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfa2V5KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgdTgpOworaW50IGNjd19kZXZpY2VfdG1fc3RhcnRfdGltZW91dF9rZXkoc3RydWN0IGNjd19kZXZpY2UgKiwgc3RydWN0IHRjdyAqLAorCQkJICAgIHVuc2lnbmVkIGxvbmcsIHU4LCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX3N0YXJ0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCk7CitpbnQgY2N3X2RldmljZV90bV9zdGFydF90aW1lb3V0KHN0cnVjdCBjY3dfZGV2aWNlICosIHN0cnVjdCB0Y3cgKiwKKwkJCSAgICB1bnNpZ25lZCBsb25nLCB1OCwgaW50KTsKK2ludCBjY3dfZGV2aWNlX3RtX2ludHJnKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKIAogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vbmxpbmUoc3RydWN0IGNjd19kZXZpY2UgKmNkZXYpOwogZXh0ZXJuIGludCBjY3dfZGV2aWNlX3NldF9vZmZsaW5lKHN0cnVjdCBjY3dfZGV2aWNlICpjZGV2KTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaCBiL2luY2x1ZGUvYXNtLXMzOTAvY2hwaWQuaAppbmRleCBiMjAzMzM2Li42MDY4NDRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2NocGlkLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9jaHBpZC5oCkBAIC0xMCw3ICsxMCw2IEBACiAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxhc20vdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vY2lvLmg+CiAKICNkZWZpbmUgX19NQVhfQ0hQSUQgMjU1CiAKQEAgLTQxLDYgKzQwLDkgQEAKIAl9CiB9CiAKKyNpZmRlZiBfX0tFUk5FTF9fCisjaW5jbHVkZSA8YXNtL2Npby5oPgorCiBzdGF0aWMgaW5saW5lIGludCBjaHBfaWRfaXNfdmFsaWQoc3RydWN0IGNocF9pZCAqY2hwaWQpCiB7CiAJcmV0dXJuIChjaHBpZC0+Y3NzaWQgPD0gX19NQVhfQ1NTSUQpOwpAQCAtNDksNSArNTEsNiBAQAogCiAjZGVmaW5lIGNocF9pZF9mb3JfZWFjaChjKSBcCiAJZm9yIChjaHBfaWRfaW5pdChjKTsgY2hwX2lkX2lzX3ZhbGlkKGMpOyBjaHBfaWRfbmV4dChjKSkKKyNlbmRpZiAvKiBfX0tFUk5FTCAqLwogCiAjZW5kaWYgLyogX0FTTV9TMzkwX0NIUElEX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oIGIvaW5jbHVkZS9hc20tczM5MC9jaHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM4ZDBjZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2hzYy5oCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogaW9jdGwgaW50ZXJmYWNlIGZvciAvZGV2L2Noc2MKKyAqCisgKiBDb3B5cmlnaHQgMjAwOCBJQk0gQ29ycC4KKyAqIEF1dGhvcihzKTogQ29ybmVsaWEgSHVjayA8Y29ybmVsaWEuaHVja0BkZS5pYm0uY29tPgorICovCisKKyNpZm5kZWYgX0FTTV9DSFNDX0gKKyNkZWZpbmUgX0FTTV9DSFNDX0gKKworI2luY2x1ZGUgPGFzbS9jaHBpZC5oPgorI2luY2x1ZGUgPGFzbS9zY2hpZC5oPgorCitzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgeworCV9fdTE2IGxlbmd0aDsKKwlfX3UxNiBjb2RlOworCV9fdTMyIGNtZF9kZXBlbmRlbmQ7CisJX191MzIga2V5IDogNDsKKwlfX3UzMiA6IDI4OworCXN0cnVjdCBzdWJjaGFubmVsX2lkIHNpZDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCitzdHJ1Y3QgY2hzY19hc3luY19hcmVhIHsKKwlzdHJ1Y3QgY2hzY19hc3luY19oZWFkZXIgaGVhZGVyOworCV9fdTggZGF0YVtQQUdFX1NJWkUgLSAxNiAvKiBzaXplIG9mIGNoc2NfYXN5bmNfaGVhZGVyICovXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisKK3N0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCB7CisJX191MTYgbGVuZ3RoOworCV9fdTE2IGNvZGU7CisJX191MzIgcGFybXM7CisJX191OCBkYXRhW1BBR0VfU0laRSAtIDhdOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK3N0cnVjdCBjaHNjX2NocF9jZCB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjcGNiOworfTsKKworc3RydWN0IGNoc2NfY3VfY2QgeworCV9fdTE2IGN1bjsKKwlfX3U4IGNzc2lkOworCWludCBtOworCWludCBmbXQ7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IGN1Y2I7Cit9OworCitzdHJ1Y3QgY2hzY19zY2hfY3VkIHsKKwlzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCBzY2hpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY3ViOworfTsKKworc3RydWN0IGNvbmZfaWQgeworCWludCBtOworCV9fdTggY3NzaWQ7CisJX191OCBzc2lkOworfTsKKworc3RydWN0IGNoc2NfY29uZl9pbmZvIHsKKwlzdHJ1Y3QgY29uZl9pZCBpZDsKKwlpbnQgZm10OworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBzY2lkOworfTsKKworc3RydWN0IGNjbF9wYXJtX2NocGlkIHsKKwlpbnQgbTsKKwlzdHJ1Y3QgY2hwX2lkIGNocDsKK307CisKK3N0cnVjdCBjY2xfcGFybV9jc3NpZHMgeworCV9fdTggZl9jc3NpZDsKKwlfX3U4IGxfY3NzaWQ7Cit9OworCitzdHJ1Y3QgY2hzY19jb21wX2xpc3QgeworCXN0cnVjdCB7CisJCWVudW0geworCQkJQ0NMX0NVX09OX0NIUCA9IDEsCisJCQlDQ0xfQ0hQX1RZUEVfQ0FQID0gMiwKKwkJCUNDTF9DU1NfSU1HID0gNCwKKwkJCUNDTF9DU1NfSU1HX0NPTkZfQ0hBUiA9IDUsCisJCQlDQ0xfSU9QX0NIUCA9IDYsCisJCX0gY3R5cGU7CisJCWludCBmbXQ7CisJCXN0cnVjdCBjY2xfcGFybV9jaHBpZCBjaHBpZDsKKwkJc3RydWN0IGNjbF9wYXJtX2Nzc2lkcyBjc3NpZHM7CisJfSByZXE7CisJc3RydWN0IGNoc2NfcmVzcG9uc2Vfc3RydWN0IHNjY2w7Cit9OworCitzdHJ1Y3QgY2hzY19kY2FsIHsKKwlzdHJ1Y3QgeworCQllbnVtIHsKKwkJCURDQUxfQ1NTX0lJRF9QTiA9IDQsCisJCX0gYXR5cGU7CisJCV9fdTMyIGxpc3RfcGFybVsyXTsKKwkJaW50IGZtdDsKKwl9IHJlcTsKKwlzdHJ1Y3QgY2hzY19yZXNwb25zZV9zdHJ1Y3Qgc2RjYWw7Cit9OworCitzdHJ1Y3QgY2hzY19jcGRfaW5mbyB7CisJc3RydWN0IGNocF9pZCBjaHBpZDsKKwlpbnQgbTsKKwlpbnQgZm10OworCWludCByZm10OworCWludCBjOworCXN0cnVjdCBjaHNjX3Jlc3BvbnNlX3N0cnVjdCBjaHBkYjsKK307CisKKyNkZWZpbmUgQ0hTQ19JT0NUTF9NQUdJQyAnYycKKworI2RlZmluZSBDSFNDX1NUQVJUIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODEsIHN0cnVjdCBjaHNjX2FzeW5jX2FyZWEpCisjZGVmaW5lIENIU0NfSU5GT19DSEFOTkVMX1BBVEggX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4MiwgXAorCQkJCSAgICBzdHJ1Y3QgY2hzY19jaHBfY2QpCisjZGVmaW5lIENIU0NfSU5GT19DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDgzLCBzdHJ1Y3QgY2hzY19jdV9jZCkKKyNkZWZpbmUgQ0hTQ19JTkZPX1NDSF9DVSBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg0LCBzdHJ1Y3QgY2hzY19zY2hfY3VkKQorI2RlZmluZSBDSFNDX0lORk9fQ0kgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4NSwgc3RydWN0IGNoc2NfY29uZl9pbmZvKQorI2RlZmluZSBDSFNDX0lORk9fQ0NMIF9JT1dSKENIU0NfSU9DVExfTUFHSUMsIDB4ODYsIHN0cnVjdCBjaHNjX2NvbXBfbGlzdCkKKyNkZWZpbmUgQ0hTQ19JTkZPX0NQRCBfSU9XUihDSFNDX0lPQ1RMX01BR0lDLCAweDg3LCBzdHJ1Y3QgY2hzY19jcGRfaW5mbykKKyNkZWZpbmUgQ0hTQ19JTkZPX0RDQUwgX0lPV1IoQ0hTQ19JT0NUTF9NQUdJQywgMHg4OCwgc3RydWN0IGNoc2NfZGNhbCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oIGIvaW5jbHVkZS9hc20tczM5MC9jaW8uaAppbmRleCAwODE4ZWNkLi42ZGNjYjA3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2Npby5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvY2lvLmgKQEAgLTE2LDcgKzE2LDcgQEAKICNkZWZpbmUgX19NQVhfQ1NTSUQgMAogCiAvKioKLSAqIHN0cnVjdCBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogc3RydWN0IGNtZF9zY3N3IC0gY29tbWFuZC1tb2RlIHN1YmNoYW5uZWwgc3RhdHVzIHdvcmQKICAqIEBrZXk6IHN1YmNoYW5uZWwga2V5CiAgKiBAc2N0bDogc3VzcGVuZCBjb250cm9sCiAgKiBAZXN3ZjogZXN3IGZvcm1hdApAQCAtMzgsNyArMzgsNyBAQAogICogQGNzdGF0OiBzdWJjaGFubmVsIHN0YXR1cwogICogQGNvdW50OiByZXNpZHVhbCBjb3VudAogICovCi1zdHJ1Y3Qgc2NzdyB7CitzdHJ1Y3QgY21kX3Njc3cgewogCV9fdTMyIGtleSAgOiA0OwogCV9fdTMyIHNjdGwgOiAxOwogCV9fdTMyIGVzd2YgOiAxOwpAQCAtNjEsNiArNjEsMTE0IEBACiAJX191MzIgY291bnQgOiAxNjsKIH0gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOwogCisvKioKKyAqIHN0cnVjdCB0bV9zY3N3IC0gdHJhbnNwb3J0LW1vZGUgc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGtleTogc3ViY2hhbm5lbCBrZXkKKyAqIEBlc3dmOiBlc3cgZm9ybWF0CisgKiBAY2M6IGRlZmVycmVkIGNvbmRpdGlvbiBjb2RlCisgKiBAZm10OiBmb3JtYXQKKyAqIEB4OiBJUkItZm9ybWF0IGNvbnRyb2wKKyAqIEBxOiBpbnRlcnJvZ2F0ZS1jb21wbGV0ZQorICogQGVjdGw6IGV4dGVuZGVkIGNvbnRyb2wKKyAqIEBwbm86IHBhdGggbm90IG9wZXJhdGlvbmFsCisgKiBAZmN0bDogZnVuY3Rpb24gY29udHJvbAorICogQGFjdGw6IGFjdGl2aXR5IGNvbnRyb2wKKyAqIEBzdGN0bDogc3RhdHVzIGNvbnRyb2wKKyAqIEB0Y3c6IFRDVyBhZGRyZXNzCisgKiBAZHN0YXQ6IGRldmljZSBzdGF0dXMKKyAqIEBjc3RhdDogc3ViY2hhbm5lbCBzdGF0dXMKKyAqIEBmY3hzOiBGQ1ggc3RhdHVzCisgKiBAc2NoeHM6IHN1YmNoYW5uZWwtZXh0ZW5kZWQgc3RhdHVzCisgKi8KK3N0cnVjdCB0bV9zY3N3IHsKKwl1MzIga2V5OjQ7CisJdTMyIDoxOworCXUzMiBlc3dmOjE7CisJdTMyIGNjOjI7CisJdTMyIGZtdDozOworCXUzMiB4OjE7CisJdTMyIHE6MTsKKwl1MzIgOjE7CisJdTMyIGVjdGw6MTsKKwl1MzIgcG5vOjE7CisJdTMyIDoxOworCXUzMiBmY3RsOjM7CisJdTMyIGFjdGw6NzsKKwl1MzIgc3RjdGw6NTsKKwl1MzIgdGN3OworCXUzMiBkc3RhdDo4OworCXUzMiBjc3RhdDo4OworCXUzMiBmY3hzOjg7CisJdTMyIHNjaHhzOjg7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiB1bmlvbiBzY3N3IC0gc3ViY2hhbm5lbCBzdGF0dXMgd29yZAorICogQGNtZDogY29tbWFuZC1tb2RlIFNDU1cKKyAqIEB0bTogdHJhbnNwb3J0LW1vZGUgU0NTVworICovCit1bmlvbiBzY3N3IHsKKwlzdHJ1Y3QgY21kX3Njc3cgY21kOworCXN0cnVjdCB0bV9zY3N3IHRtOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CisKK2ludCBzY3N3X2lzX3RtKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NjKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOwordTMyIHNjc3dfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7Cit1MzIgc2Nzd19kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK3UzMiBzY3N3X2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfa2V5KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZXN3Zih1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfaXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9zY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfY2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZm10KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3BmY2godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfaXNpYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hbGNjKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3NzaSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF96Y2ModW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9wbm8odW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd19jbWRfaXNfdmFsaWRfZmN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X2NtZF9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX3N0Y3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2RzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfY21kX2lzX3NvbGljaXRlZCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2tleSh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2Vzd2YodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9jYyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZtdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3godW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9xKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZWN0bCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3Bubyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2ZjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9hY3RsKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfc3RjdGwodW5pb24gc2NzdyAqc2Nzdyk7CitpbnQgc2Nzd190bV9pc192YWxpZF9kc3RhdCh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX2NzdGF0KHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfdmFsaWRfZmN4cyh1bmlvbiBzY3N3ICpzY3N3KTsKK2ludCBzY3N3X3RtX2lzX3ZhbGlkX3NjaHhzKHVuaW9uIHNjc3cgKnNjc3cpOworaW50IHNjc3dfdG1faXNfc29saWNpdGVkKHVuaW9uIHNjc3cgKnNjc3cpOworCiAjZGVmaW5lIFNDU1dfRkNUTF9DTEVBUl9GVU5DCSAweDEKICNkZWZpbmUgU0NTV19GQ1RMX0hBTFRfRlVOQwkgMHgyCiAjZGVmaW5lIFNDU1dfRkNUTF9TVEFSVF9GVU5DCSAweDQKQEAgLTMwMyw3ICs0MTEsNyBAQAogICogaWYgYXBwbGljYWJsZSkuCiAgKi8KIHN0cnVjdCBpcmIgewotCXN0cnVjdCBzY3N3IHNjc3c7CisJdW5pb24gc2NzdyBzY3N3OwogCXVuaW9uIHsKIAkJc3RydWN0IGVzdzAgZXN3MDsKIAkJc3RydWN0IGVzdzEgZXN3MTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmggYi9pbmNsdWRlL2FzbS1zMzkwL2VsZi5oCmluZGV4IGIzYWMyNjIuLjNjYWQ1NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvZWxmLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC9lbGYuaApAQCAtMTEzLDYgKzExMyw5IEBACiB0eXBlZGVmIHMzOTBfZnBfcmVncyBlbGZfZnByZWdzZXRfdDsKIHR5cGVkZWYgczM5MF9yZWdzIGVsZl9ncmVnc2V0X3Q7CiAKK3R5cGVkZWYgczM5MF9mcF9yZWdzIGNvbXBhdF9lbGZfZnByZWdzZXRfdDsKK3R5cGVkZWYgczM5MF9jb21wYXRfcmVncyBjb21wYXRfZWxmX2dyZWdzZXRfdDsKKwogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CS8qIGZvciB0YXNrX3N0cnVjdCAqLwogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4JCS8qIGZvciBzYXZlX2FjY2Vzc19yZWdzICovCiAjaW5jbHVkZSA8YXNtL21tdV9jb250ZXh0Lmg+CkBAIC0xMjMsNiArMTI2LDEwIEBACiAjZGVmaW5lIGVsZl9jaGVja19hcmNoKHgpIFwKIAkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKICAgICAgICAgICYmICh4KS0+ZV9pZGVudFtFSV9DTEFTU10gPT0gRUxGX0NMQVNTKSAKKyNkZWZpbmUgY29tcGF0X2VsZl9jaGVja19hcmNoKHgpIFwKKwkoKCh4KS0+ZV9tYWNoaW5lID09IEVNX1MzOTAgfHwgKHgpLT5lX21hY2hpbmUgPT0gRU1fUzM5MF9PTEQpIFwKKwkgJiYgKHgpLT5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZfQ0xBU1MpCisjZGVmaW5lIGNvbXBhdF9zdGFydF90aHJlYWQJc3RhcnRfdGhyZWFkMzEKIAogLyogRm9yIFNWUjQvUzM5MCB0aGUgZnVuY3Rpb24gcG9pbnRlciB0byBiZSByZWdpc3RlcmVkIHdpdGggYGF0ZXhpdGAgaXMKICAgIHBhc3NlZCBpbiBSMTQuICovCkBAIC0xMzEsNiArMTM4LDcgQEAKIAkJX3ItPmdwcnNbMTRdID0gMDsgXAogCX0gd2hpbGUgKDApCiAKKyNkZWZpbmUgQ09SRV9EVU1QX1VTRV9SRUdTRVQKICNkZWZpbmUgVVNFX0VMRl9DT1JFX0RVTVAKICNkZWZpbmUgRUxGX0VYRUNfUEFHRVNJWkUJNDA5NgogCkBAIC0xNDAsNDQgKzE0OCw2IEBACiAgICB0aGF0IGl0IHdpbGwgImV4ZWMiLCBhbmQgdGhhdCB0aGVyZSBpcyBzdWZmaWNpZW50IHJvb20gZm9yIHRoZSBicmsuICAqLwogI2RlZmluZSBFTEZfRVRfRFlOX0JBU0UJCShTVEFDS19UT1AgLyAzICogMikKIAotLyogV293LCB0aGUgIm1haW4iIGFyY2ggbmVlZHMgYXJjaCBkZXBlbmRlbnQgZnVuY3Rpb25zIHRvby4uIDopICovCi0KLS8qIHJlZ3MgaXMgc3RydWN0IHB0X3JlZ3MsIHByX3JlZyBpcyBlbGZfZ3JlZ3NldF90ICh3aGljaCBpcwotICAgbm93IHN0cnVjdF91c2VyX3JlZ3MsIHRoZXkgYXJlIGRpZmZlcmVudCkgKi8KLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF9yZWdzKHN0cnVjdCBwdF9yZWdzICpwdHJlZ3MsIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0JbWVtY3B5KCZyZWdzLT5wc3csICZwdHJlZ3MtPnBzdywgc2l6ZW9mKHJlZ3MtPnBzdykrc2l6ZW9mKHJlZ3MtPmdwcnMpKTsKLQlzYXZlX2FjY2Vzc19yZWdzKHJlZ3MtPmFjcnMpOwotCXJlZ3MtPm9yaWdfZ3ByMiA9IHB0cmVncy0+b3JpZ19ncHIyOwotCXJldHVybiAxOwotfQotCi0jZGVmaW5lIEVMRl9DT1JFX0NPUFlfUkVHUyhwcl9yZWcsIHJlZ3MpIGR1bXBfcmVncyhyZWdzLCAmcHJfcmVnKTsKLQotc3RhdGljIGlubGluZSBpbnQgZHVtcF90YXNrX3JlZ3Moc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9ncmVnc2V0X3QgKnJlZ3MpCi17Ci0Jc3RydWN0IHB0X3JlZ3MgKnB0cmVncyA9IHRhc2tfcHRfcmVncyh0c2spOwotCW1lbWNweSgmcmVncy0+cHN3LCAmcHRyZWdzLT5wc3csIHNpemVvZihyZWdzLT5wc3cpK3NpemVvZihyZWdzLT5ncHJzKSk7Ci0JbWVtY3B5KHJlZ3MtPmFjcnMsIHRzay0+dGhyZWFkLmFjcnMsIHNpemVvZihyZWdzLT5hY3JzKSk7Ci0JcmVncy0+b3JpZ19ncHIyID0gcHRyZWdzLT5vcmlnX2dwcjI7Ci0JcmV0dXJuIDE7Ci19Ci0KLSNkZWZpbmUgRUxGX0NPUkVfQ09QWV9UQVNLX1JFR1ModHNrLCByZWdzKSBkdW1wX3Rhc2tfcmVncyh0c2ssIHJlZ3MpCi0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bXBfdGFza19mcHUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGVsZl9mcHJlZ3NldF90ICpmcHJlZ3MpCi17Ci0JaWYgKHRzayA9PSBjdXJyZW50KQotCQlzYXZlX2ZwX3JlZ3MoZnByZWdzKTsKLQllbHNlCi0JCW1lbWNweShmcHJlZ3MsICZ0c2stPnRocmVhZC5mcF9yZWdzLCBzaXplb2YoZWxmX2ZwcmVnc2V0X3QpKTsKLQlyZXR1cm4gMTsKLX0KLQotI2RlZmluZSBFTEZfQ09SRV9DT1BZX0ZQUkVHUyh0c2ssIGZwcmVncykgZHVtcF90YXNrX2ZwdSh0c2ssIGZwcmVncykKLQotCiAvKiBUaGlzIHlpZWxkcyBhIG1hc2sgdGhhdCB1c2VyIHByb2dyYW1zIGNhbiB1c2UgdG8gZmlndXJlIG91dCB3aGF0CiAgICBpbnN0cnVjdGlvbiBzZXQgdGhpcyBDUFUgc3VwcG9ydHMuICovCiAKQEAgLTIwNCw3ICsxNzQsMTAgQEAKIAkJc2V0X3BlcnNvbmFsaXR5KFBFUl9TVlI0KTsJCVwKIAllbHNlIGlmIChjdXJyZW50LT5wZXJzb25hbGl0eSAhPSBQRVJfTElOVVgzMikJXAogCQlzZXRfcGVyc29uYWxpdHkoUEVSX0xJTlVYKTsJCVwKLQljbGVhcl90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJCVwKKwlpZiAoKGV4KS5lX2lkZW50W0VJX0NMQVNTXSA9PSBFTEZDTEFTUzMyKQlcCisJCXNldF90aHJlYWRfZmxhZyhUSUZfMzFCSVQpOwkJXAorCWVsc2UJCQkJCQlcCisJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl8zMUJJVCk7CQlcCiB9IHdoaWxlICgwKQogI2VuZGlmIC8qIF9fczM5MHhfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oIGIvaW5jbHVkZS9hc20tczM5MC9ldHIuaAppbmRleCBiNDk4ZjE5Li44MGVmNThjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2V0ci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvZXRyLmgKQEAgLTEyMiw3ICsxMjIsNyBAQAogfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLGFsaWduZWQoOCkpKTsKIAogLyogRVRSIGludGVycnVwdGlvbiBwYXJhbWV0ZXIgKi8KLXN0cnVjdCBldHJfaW50ZXJydXB0aW9uX3BhcmFtZXRlciB7CitzdHJ1Y3QgZXRyX2lycV9wYXJtIHsKIAl1bnNpZ25lZCBpbnQgX3BhZDAJOiA4OwogCXVuc2lnbmVkIGludCBwYzAJOiAxOwkvKiBwb3J0IDAgc3RhdGUgY2hhbmdlICovCiAJdW5zaWduZWQgaW50IHBjMQk6IDE7CS8qIHBvcnQgMSBzdGF0ZSBjaGFuZ2UgKi8KQEAgLTIxMyw3ICsyMTMsNDYgQEAKICNkZWZpbmUgRVRSX1BURkZfU0dTCTB4NDMJLyogc2V0IGdyb3NzIHN0ZWVyaW5nIHJhdGUgKi8KIAogLyogRnVuY3Rpb25zIG5lZWRlZCBieSB0aGUgbWFjaGluZSBjaGVjayBoYW5kbGVyICovCi1leHRlcm4gdm9pZCBldHJfc3dpdGNoX3RvX2xvY2FsKHZvaWQpOwotZXh0ZXJuIHZvaWQgZXRyX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIGV0cl9zd2l0Y2hfdG9fbG9jYWwodm9pZCk7Cit2b2lkIGV0cl9zeW5jX2NoZWNrKHZvaWQpOworCisvKiBTVFAgaW50ZXJydXB0aW9uIHBhcmFtZXRlciAqLworc3RydWN0IHN0cF9pcnFfcGFybSB7CisJdW5zaWduZWQgaW50IF9wYWQwCTogMTQ7CisJdW5zaWduZWQgaW50IHRzYwk6IDE7CS8qIFRpbWluZyBzdGF0dXMgY2hhbmdlICovCisJdW5zaWduZWQgaW50IGxhYwk6IDE7CS8qIExpbmsgYXZhaWxhYmlsaXR5IGNoYW5nZSAqLworCXVuc2lnbmVkIGludCB0Y3BjCTogMTsJLyogVGltZSBjb250cm9sIHBhcmFtZXRlciBjaGFuZ2UgKi8KKwl1bnNpZ25lZCBpbnQgX3BhZDIJOiAxNTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFNUUF9PUF9TWU5DCTEKKyNkZWZpbmUgU1RQX09QX0NUUkwJMworCitzdHJ1Y3Qgc3RwX3NzdHBpIHsKKwl1bnNpZ25lZCBpbnQgcnN2ZDA7CisJdW5zaWduZWQgaW50IHJzdmQxIDogODsKKwl1bnNpZ25lZCBpbnQgc3RyYXR1bSA6IDg7CisJdW5zaWduZWQgaW50IHZiaXRzIDogMTY7CisJdW5zaWduZWQgaW50IGxlYXBzIDogMTY7CisJdW5zaWduZWQgaW50IHRtZCA6IDQ7CisJdW5zaWduZWQgaW50IGN0biA6IDQ7CisJdW5zaWduZWQgaW50IHJzdmQyIDogMzsKKwl1bnNpZ25lZCBpbnQgYyA6IDE7CisJdW5zaWduZWQgaW50IHRzdCA6IDQ7CisJdW5zaWduZWQgaW50IHR6byA6IDE2OworCXVuc2lnbmVkIGludCBkc3RvIDogMTY7CisJdW5zaWduZWQgaW50IGN0cmwgOiAxNjsKKwl1bnNpZ25lZCBpbnQgcnN2ZDMgOiAxNjsKKwl1bnNpZ25lZCBpbnQgdHRvOworCXVuc2lnbmVkIGludCByc3ZkNDsKKwl1bnNpZ25lZCBpbnQgY3RuaWRbM107CisJdW5zaWduZWQgaW50IHJzdmQ1OworCXVuc2lnbmVkIGludCB0b2RvZmZbNF07CisJdW5zaWduZWQgaW50IHJzdmQ2WzQ4XTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKiBGdW5jdGlvbnMgbmVlZGVkIGJ5IHRoZSBtYWNoaW5lIGNoZWNrIGhhbmRsZXIgKi8KK3ZvaWQgc3RwX3N5bmNfY2hlY2sodm9pZCk7Cit2b2lkIHN0cF9pc2xhbmRfY2hlY2sodm9pZCk7CiAKICNlbmRpZiAvKiBfX1MzOTBfRVRSX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvZmN4LmggYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZTFmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2ZjeC5oCkBAIC0wLDAgKzEsMzExIEBACisvKgorICogIEZ1bmN0aW9ucyBmb3IgYXNzZW1ibGluZyBmY3ggZW5hYmxlZCBJL08gY29udHJvbCBibG9ja3MuCisgKgorICogICAgQ29weXJpZ2h0IElCTSBDb3JwLiAyMDA4CisgKiAgICBBdXRob3Iocyk6IFBldGVyIE9iZXJwYXJsZWl0ZXIgPHBldGVyLm9iZXJwYXJsZWl0ZXJAZGUuaWJtLmNvbT4KKyAqLworCisjaWZuZGVmIF9BU01fUzM5MF9GQ1hfSAorI2RlZmluZSBfQVNNX1MzOTBfRkNYX0ggX0FTTV9TMzkwX0ZDWF9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorCisjZGVmaW5lIFRDV19GT1JNQVRfREVGQVVMVAkJMAorI2RlZmluZSBUQ1dfVElEQVdfRk9STUFUX0RFRkFVTFQJMAorI2RlZmluZSBUQ1dfRkxBR1NfSU5QVVRfVElEQQkJMSA8PCAoMjMgLSA1KQorI2RlZmluZSBUQ1dfRkxBR1NfVENDQl9USURBCQkxIDw8ICgyMyAtIDYpCisjZGVmaW5lIFRDV19GTEFHU19PVVRQVVRfVElEQQkJMSA8PCAoMjMgLSA3KQorI2RlZmluZSBUQ1dfRkxBR1NfVElEQVdfRk9STUFUKHgpCSgoeCkgJiAzKSA8PCAoMjMgLSA5KQorI2RlZmluZSBUQ1dfRkxBR1NfR0VUX1RJREFXX0ZPUk1BVCh4KQkoKCh4KSA+PiAoMjMgLSA5KSkgJiAzKQorCisvKioKKyAqIHN0cnVjdCB0Y3cgLSBUcmFuc3BvcnQgQ29udHJvbCBXb3JkIChUQ1cpCisgKiBAZm9ybWF0OiBUQ1cgZm9ybWF0CisgKiBAZmxhZ3M6IFRDVyBmbGFncworICogQHRjY2JsOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIExlbmd0aAorICogQHI6IFJlYWQgT3BlcmF0aW9ucworICogQHc6IFdyaXRlIE9wZXJhdGlvbnMKKyAqIEBvdXRwdXQ6IE91dHB1dC1EYXRhIEFkZHJlc3MKKyAqIEBpbnB1dDogSW5wdXQtRGF0YSBBZGRyZXNzCisgKiBAdHNiOiBUcmFuc3BvcnQtU3RhdHVzLUJsb2NrIEFkZHJlc3MKKyAqIEB0Y2NiOiBUcmFuc3BvcnQtQ29tbWFuZC1Db250cm9sLUJsb2NrIEFkZHJlc3MKKyAqIEBvdXRwdXRfY291bnQ6IE91dHB1dCBDb3VudAorICogQGlucHV0X2NvdW50OiBJbnB1dCBDb3VudAorICogQGludHJnOiBJbnRlcnJvZ2F0ZSBUQ1cgQWRkcmVzcworICovCitzdHJ1Y3QgdGN3IHsKKwl1MzIgZm9ybWF0OjI7CisJdTMyIDo2OworCXUzMiBmbGFnczoyNDsKKwl1MzIgOjg7CisJdTMyIHRjY2JsOjY7CisJdTMyIHI6MTsKKwl1MzIgdzoxOworCXUzMiA6MTY7CisJdTY0IG91dHB1dDsKKwl1NjQgaW5wdXQ7CisJdTY0IHRzYjsKKwl1NjQgdGNjYjsKKwl1MzIgb3V0cHV0X2NvdW50OworCXUzMiBpbnB1dF9jb3VudDsKKwl1MzIgOjMyOworCXUzMiA6MzI7CisJdTMyIDozMjsKKwl1MzIgaW50cmc7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNjQpKSk7CisKKyNkZWZpbmUgVElEQVdfRkxBR1NfTEFTVAkJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRJREFXX0ZMQUdTX1NLSVAJCTEgPDwgKDcgLSAxKQorI2RlZmluZSBUSURBV19GTEFHU19EQVRBX0lOVAkJMSA8PCAoNyAtIDIpCisjZGVmaW5lIFRJREFXX0ZMQUdTX1RUSUMJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUSURBV19GTEFHU19JTlNFUlRfQ0JDCQkxIDw8ICg3IC0gNCkKKworLyoqCisgKiBzdHJ1Y3QgdGlkYXcgLSBUcmFuc3BvcnQtSW5kaXJlY3QtQWRkcmVzc2luZyBXb3JkIChUSURBVykKKyAqIEBmbGFnczogVElEQVcgZmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mIHRoZSBmb2xsb3dpbmcgY29uc3RhbnRzOgorICogJVRJREFXX0ZMQUdTX0xBU1QsICVUSURBV19GTEFHU19TS0lQLCAlVElEQVdfRkxBR1NfREFUQV9JTlQsCisgKiAlVElEQVdfRkxBR1NfVFRJQywgJVRJREFXX0ZMQUdTX0lOU0VSVF9DQkMKKyAqIEBjb3VudDogQ291bnQKKyAqIEBhZGRyOiBBZGRyZXNzCisgKi8KK3N0cnVjdCB0aWRhdyB7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgY291bnQ7CisJdTY0IGFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoMTYpKSk7CisKKy8qKgorICogc3RydWN0IHRzYV9pb3N0YXQgLSBJL08tU3RhdHVzIFRyYW5zcG9ydC1TdGF0dXMgQXJlYSAoSU8tU3RhdCBUU0EpCisgKiBAZGV2X3RpbWU6IERldmljZSBUaW1lCisgKiBAZGVmX3RpbWU6IERlZmVyIFRpbWUKKyAqIEBxdWV1ZV90aW1lOiBRdWV1ZSBUaW1lCisgKiBAZGV2X2J1c3lfdGltZTogRGV2aWNlLUJ1c3kgVGltZQorICogQGRldl9hY3RfdGltZTogRGV2aWNlLUFjdGl2ZS1Pbmx5IFRpbWUKKyAqIEBzZW5zZTogU2Vuc2UgRGF0YSAoaWYgcHJlc2VudCkKKyAqLworc3RydWN0IHRzYV9pb3N0YXQgeworCXUzMiBkZXZfdGltZTsKKwl1MzIgZGVmX3RpbWU7CisJdTMyIHF1ZXVlX3RpbWU7CisJdTMyIGRldl9idXN5X3RpbWU7CisJdTMyIGRldl9hY3RfdGltZTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2RkcGNzIC0gRGV2aWNlLURldGVjdGVkLVByb2dyYW0tQ2hlY2sgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChERFBDIFRTQSkKKyAqIEByYzogUmVhc29uIENvZGUKKyAqIEByY3E6IFJlYXNvbiBDb2RlIFF1YWxpZmllcgorICogQHNlbnNlOiBTZW5zZSBEYXRhIChpZiBwcmVzZW50KQorICovCitzdHJ1Y3QgdHNhX2RkcGMgeworCXUzMiA6MjQ7CisJdTMyIHJjOjg7CisJdTggcmNxWzE2XTsKKwl1OCBzZW5zZVszMl07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQJCTEgPDwgKDcgLSAwKQorI2RlZmluZSBUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMSkKKyNkZWZpbmUgVFNBX0lOVFJHX0ZMQUdTX09QX1NUQVRFX1ZBTElECQkxIDw8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgdHNhX2ludHJnIC0gSW50ZXJyb2dhdGUgVHJhbnNwb3J0LVN0YXR1cyBBcmVhIChJbnRyZy4gVFNBKQorICogQGZvcm1hdDogRm9ybWF0CisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0FfSU5UUkdfRkxBR1NfQ1VfU1RBVEVfVkFMSUQsICVUU0FfSU5UUkdfRkxBR1NfREVWX1NUQVRFX1ZBTElELAorICogJVRTQV9JTlRSR19GTEFHU19PUF9TVEFURV9WQUxJRAorICogQGN1X3N0YXRlOiBDb250cm9sZS1Vbml0IFN0YXRlCisgKiBAZGV2X3N0YXRlOiBEZXZpY2UgU3RhdGUKKyAqIEBvcF9zdGF0ZTogT3BlcmF0aW9uIFN0YXRlCisgKiBAc2RfaW5mbzogU3RhdGUtRGVwZW5kZW50IEluZm9ybWF0aW9uCisgKiBAZGxfaWQ6IERldmljZS1MZXZlbCBJZGVudGlmaWVyCisgKiBAZGRfZGF0YTogRGV2aWNlLURlcGVuZGVudCBEYXRhCisgKi8KK3N0cnVjdCB0c2FfaW50cmcgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgY3Vfc3RhdGU6ODsKKwl1MzIgZGV2X3N0YXRlOjg7CisJdTMyIG9wX3N0YXRlOjg7CisJdTMyIDoyNDsKKwl1OCBzZF9pbmZvWzEyXTsKKwl1MzIgZGxfaWQ7CisJdTggZGRfZGF0YVsyOF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBUU0JfRk9STUFUX05PTkUJCTAKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JT1NUQVQJMQorI2RlZmluZSBUU0JfRk9STUFUX0REUEMJCTIKKyNkZWZpbmUgVFNCX0ZPUk1BVF9JTlRSRwkzCisKKyNkZWZpbmUgVFNCX0ZMQUdTX0RDV19PRkZTRVRfVkFMSUQJMSA8PCAoNyAtIDApCisjZGVmaW5lIFRTQl9GTEFHU19DT1VOVF9WQUxJRAkJMSA8PCAoNyAtIDEpCisjZGVmaW5lIFRTQl9GTEFHU19DQUNIRV9NSVNTCQkxIDw8ICg3IC0gMikKKyNkZWZpbmUgVFNCX0ZMQUdTX1RJTUVfVkFMSUQJCTEgPDwgKDcgLSAzKQorI2RlZmluZSBUU0JfRkxBR1NfRk9STUFUKHgpCQkoKHgpICYgNykKKyNkZWZpbmUgVFNCX0ZPUk1BVCh0KQkJCSgodCktPmZsYWdzICYgNykKKworLyoqCisgKiBzdHJ1Y3QgdHNiIC0gVHJhbnNwb3J0LVN0YXR1cyBCbG9jayAoVFNCKQorICogQGxlbmd0aDogTGVuZ3RoCisgKiBAZmxhZ3M6IEZsYWdzLiBDYW4gYmUgYW4gYXJpdGhtZXRpYyBPUiBvZiB0aGUgZm9sbG93aW5nIGNvbnN0YW50czoKKyAqICVUU0JfRkxBR1NfRENXX09GRlNFVF9WQUxJRCwgJVRTQl9GTEFHU19DT1VOVF9WQUxJRCwgJVRTQl9GTEFHU19DQUNIRV9NSVNTLAorICogJVRTQl9GTEFHU19USU1FX1ZBTElECisgKiBAZGN3X29mZnNldDogRENXIE9mZnNldAorICogQGNvdW50OiBDb3VudAorICogQHRzYTogVHJhbnNwb3J0LVN0YXR1cy1BcmVhCisgKi8KK3N0cnVjdCB0c2IgeworCXUzMiBsZW5ndGg6ODsKKwl1MzIgZmxhZ3M6ODsKKwl1MzIgZGN3X29mZnNldDoxNjsKKwl1MzIgY291bnQ7CisJdTMyIDozMjsKKwl1bmlvbiB7CisJCXN0cnVjdCB0c2FfaW9zdGF0IGlvc3RhdDsKKwkJc3RydWN0IHRzYV9kZHBjIGRkcGM7CisJCXN0cnVjdCB0c2FfaW50cmcgaW50cmc7CisJfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgdHNhOworfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkKDgpKSk7CisKKyNkZWZpbmUgRENXX0lOVFJHX0ZPUk1BVF9ERUZBVUxUCTAKKworI2RlZmluZSBEQ1dfSU5UUkdfUkNfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNfVElNRU9VVAkJMQorCisjZGVmaW5lIERDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQJMAorI2RlZmluZSBEQ1dfSU5UUkdfUkNRX1BSSU1BUlkJCTEKKyNkZWZpbmUgRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkJCTIKKworI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfTVBNCQkxIDwgKDcgLSAwKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfUFBSCQkxIDwgKDcgLSAxKQorI2RlZmluZSBEQ1dfSU5UUkdfRkxBR1NfQ1JJVAkJMSA8ICg3IC0gMikKKworLyoqCisgKiBzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgLSBJbnRlcnJvZ2F0ZSBEQ1cgZGF0YQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJURDV19JTlRSR19GT1JNQVRfREVGQVVMVAorICogQHJjOiBSZWFzb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0lOVFJHX1JDX1VOU1BFQ0lGSUVELAorICogJURDV19JTlRSR19SQ19USU1FT1VUCisgKiBAcmNxOiBSZWFzb24gQ29kZSBRdWFsaWZpZXI6IENhbiBiZSBvbmUgb2YgJURDV19JTlRSR19SQ1FfVU5TUEVDSUZJRUQsCisgKiAlRENXX0lOVFJHX1JDUV9QUklNQVJZLCAlRENXX0lOVFJHX1JDUV9TRUNPTkRBUlkKKyAqIEBscG06IExvZ2ljYWwtUGF0aCBNYXNrCisgKiBAcGFtOiBQYXRoLUF2YWlsYWJsZSBNYXNrCisgKiBAcGltOiBQYXRoLUluc3RhbGxlZCBNYXNrCisgKiBAdGltZW91dDogVGltZW91dAorICogQGZsYWdzOiBGbGFncy4gQ2FuIGJlIGFuIGFyaXRobWV0aWMgT1Igb2YgJURDV19JTlRSR19GTEFHU19NUE0sCisgKiAlRENXX0lOVFJHX0ZMQUdTX1BQUiwgJURDV19JTlRSR19GTEFHU19DUklUCisgKiBAdGltZTogVGltZQorICogQHByb2dfaWQ6IFByb2dyYW0gSWRlbnRpZmllcgorICogQHByb2dfZGF0YTogUHJvZ3JhbS1EZXBlbmRlbnQgRGF0YQorICovCitzdHJ1Y3QgZGN3X2ludHJnX2RhdGEgeworCXUzMiBmb3JtYXQ6ODsKKwl1MzIgcmM6ODsKKwl1MzIgcmNxOjg7CisJdTMyIGxwbTo4OworCXUzMiBwYW06ODsKKwl1MzIgcGltOjg7CisJdTMyIHRpbWVvdXQ6MTY7CisJdTMyIGZsYWdzOjg7CisJdTMyIDoyNDsKKwl1MzIgOjMyOworCXU2NCB0aW1lOworCXU2NCBwcm9nX2lkOworCXU4ICBwcm9nX2RhdGFbMF07Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKKworI2RlZmluZSBEQ1dfRkxBR1NfQ0MJCTEgPDwgKDcgLSAxKQorCisjZGVmaW5lIERDV19DTURfV1JJVEUJCTB4MDEKKyNkZWZpbmUgRENXX0NNRF9SRUFECQkweDAyCisjZGVmaW5lIERDV19DTURfQ09OVFJPTAkJMHgwMworI2RlZmluZSBEQ1dfQ01EX1NFTlNFCQkweDA0CisjZGVmaW5lIERDV19DTURfU0VOU0VfSUQJMHhlNAorI2RlZmluZSBEQ1dfQ01EX0lOVFJHCQkweDQwCisKKy8qKgorICogc3RydWN0IGRjdyAtIERldmljZS1Db21tYW5kIFdvcmQgKERDVykKKyAqIEBjbWQ6IENvbW1hbmQgQ29kZS4gQ2FuIGJlIG9uZSBvZiAlRENXX0NNRF9XUklURSwgJURDV19DTURfUkVBRCwKKyAqICVEQ1dfQ01EX0NPTlRST0wsICVEQ1dfQ01EX1NFTlNFLCAlRENXX0NNRF9TRU5TRV9JRCwgJURDV19DTURfSU5UUkcKKyAqIEBmbGFnczogRmxhZ3MuIENhbiBiZSBhbiBhcml0aG1ldGljIE9SIG9mICVEQ1dfRkxBR1NfQ0MKKyAqIEBjZF9jb3VudDogQ29udHJvbC1EYXRhIENvdW50CisgKiBAY291bnQ6IENvdW50CisgKiBAY2Q6IENvbnRyb2wgRGF0YQorICovCitzdHJ1Y3QgZGN3IHsKKwl1MzIgY21kOjg7CisJdTMyIGZsYWdzOjg7CisJdTMyIDo4OworCXUzMiBjZF9jb3VudDo4OworCXUzMiBjb3VudDsKKwl1OCBjZFswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisjZGVmaW5lIFRDQ0JfRk9STUFUX0RFRkFVTFQJMHg3ZgorI2RlZmluZSBUQ0NCX01BWF9EQ1cJCTMwCisjZGVmaW5lIFRDQ0JfTUFYX1NJWkUJCShzaXplb2Yoc3RydWN0IHRjY2JfdGNhaCkgKyBcCisJCQkJIFRDQ0JfTUFYX0RDVyAqIHNpemVvZihzdHJ1Y3QgZGN3KSArIFwKKwkJCQkgc2l6ZW9mKHN0cnVjdCB0Y2NiX3RjYXQpKQorI2RlZmluZSBUQ0NCX1NBQ19ERUZBVUxUCTB4ZjkwMQorI2RlZmluZSBUQ0NCX1NBQ19JTlRSRwkJMHhmOTAyCisKKy8qKgorICogc3RydWN0IHRjY2JfdGNhaCAtIFRyYW5zcG9ydC1Db21tYW5kLUFyZWEgSGVhZGVyIChUQ0FIKQorICogQGZvcm1hdDogRm9ybWF0LiBTaG91bGQgYmUgJVRDQ0JfRk9STUFUX0RFRkFVTFQKKyAqIEB0Y2FsOiBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIExlbmd0aAorICogQHNhYzogU2VydmljZS1BY3Rpb24gQ29kZS4gQ2FuIGJlIG9uZSBvZiAlVENDQl9TQUNfREVGQVVMVCwgJVRDQ0JfU0FDX0lOVFJHCisgKiBAcHJpbzogUHJpb3JpdHkKKyAqLworc3RydWN0IHRjY2JfdGNhaCB7CisJdTMyIGZvcm1hdDo4OworCXUzMiA6MjQ7CisJdTMyIDoyNDsKKwl1MzIgdGNhbDo4OworCXUzMiBzYWM6MTY7CisJdTMyIDo4OworCXUzMiBwcmlvOjg7CisJdTMyIDozMjsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiX3RjYXQgLSBUcmFuc3BvcnQtQ29tbWFuZC1BcmVhIFRyYWlsZXIgKFRDQVQpCisgKiBAY291bnQ6IFRyYW5zcG9ydCBDb3VudAorICovCitzdHJ1Y3QgdGNjYl90Y2F0IHsKKwl1MzIgOjMyOworCXUzMiBjb3VudDsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCkpOworCisvKioKKyAqIHN0cnVjdCB0Y2NiIC0gKHBhcnRpYWwpIFRyYW5zcG9ydC1Db21tYW5kLUNvbnRyb2wgQmxvY2sgKFRDQ0IpCisgKiBAdGNhaDogVENBSAorICogQHRjYTogVHJhbnNwb3J0LUNvbW1hbmQgQXJlYQorICovCitzdHJ1Y3QgdGNjYiB7CisJc3RydWN0IHRjY2JfdGNhaCB0Y2FoOworCXU4IHRjYVswXTsKK30gX19hdHRyaWJ1dGVfXyAoKHBhY2tlZCwgYWxpZ25lZCg4KSkpOworCitzdHJ1Y3QgdGN3ICp0Y3dfZ2V0X2ludHJnKHN0cnVjdCB0Y3cgKnRjdyk7Cit2b2lkICp0Y3dfZ2V0X2RhdGEoc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0Y2NiICp0Y3dfZ2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3KTsKK3N0cnVjdCB0c2IgKnRjd19nZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdyk7CisKK3ZvaWQgdGN3X2luaXQoc3RydWN0IHRjdyAqdGN3LCBpbnQgciwgaW50IHcpOwordm9pZCB0Y3dfZmluYWxpemUoc3RydWN0IHRjdyAqdGN3LCBpbnQgbnVtX3RpZGF3cyk7CisKK3ZvaWQgdGN3X3NldF9pbnRyZyhzdHJ1Y3QgdGN3ICp0Y3csIHN0cnVjdCB0Y3cgKmludHJnX3Rjdyk7Cit2b2lkIHRjd19zZXRfZGF0YShzdHJ1Y3QgdGN3ICp0Y3csIHZvaWQgKmRhdGEsIGludCB1c2VfdGlkYWwpOwordm9pZCB0Y3dfc2V0X3RjY2Ioc3RydWN0IHRjdyAqdGN3LCBzdHJ1Y3QgdGNjYiAqdGNjYik7Cit2b2lkIHRjd19zZXRfdHNiKHN0cnVjdCB0Y3cgKnRjdywgc3RydWN0IHRzYiAqdHNiKTsKKwordm9pZCB0Y2NiX2luaXQoc3RydWN0IHRjY2IgKnRjY2IsIHNpemVfdCB0Y2NiX3NpemUsIHUzMiBzYWMpOwordm9pZCB0c2JfaW5pdChzdHJ1Y3QgdHNiICp0c2IpOworc3RydWN0IGRjdyAqdGNjYl9hZGRfZGN3KHN0cnVjdCB0Y2NiICp0Y2NiLCBzaXplX3QgdGNjYl9zaXplLCB1OCBjbWQsIHU4IGZsYWdzLAorCQkJIHZvaWQgKmNkLCB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqdGN3X2FkZF90aWRhdyhzdHJ1Y3QgdGN3ICp0Y3csIGludCBudW1fdGlkYXdzLCB1OCBmbGFncywKKwkJCSAgICB2b2lkICphZGRyLCB1MzIgY291bnQpOworCisjZW5kaWYgLyogX0FTTV9TMzkwX0ZDWF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oIGIvaW5jbHVkZS9hc20tczM5MC9pcGwuaAppbmRleCBjMWIyZTUwLi5lYWNhNmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL2lwbC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXBsLmgKQEAgLTU2LDE1ICs1NiwxOSBAQAogCXU4ICBzY3BfZGF0YVtdOwogfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKIAorI2RlZmluZSBESUFHMzA4X1ZNUEFSTV9TSVpFCTY0CisKIHN0cnVjdCBpcGxfYmxvY2tfY2N3IHsKLQl1OCAgbG9hZF9wYXJhbVs4XTsKKwl1OCAgbG9hZF9wYXJtWzhdOwogCXU4ICByZXNlcnZlZDFbODRdOwogCXU4ICByZXNlcnZlZDJbMl07CiAJdTE2IGRldm5vOwogCXU4ICB2bV9mbGFnczsKIAl1OCAgcmVzZXJ2ZWQzWzNdOwogCXUzMiB2bV9wYXJtX2xlbjsKLQl1OCAgcmVzZXJ2ZWQ0WzgwXTsKKwl1OCAgbnNzX25hbWVbOF07CisJdTggIHZtX3Bhcm1bRElBRzMwOF9WTVBBUk1fU0laRV07CisJdTggIHJlc2VydmVkNFs4XTsKIH0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAKIHN0cnVjdCBpcGxfcGFyYW1ldGVyX2Jsb2NrIHsKQEAgLTczLDcgKzc3LDcgQEAKIAkJc3RydWN0IGlwbF9ibG9ja19mY3AgZmNwOwogCQlzdHJ1Y3QgaXBsX2Jsb2NrX2NjdyBjY3c7CiAJfSBpcGxfaW5mbzsKLX0gX19hdHRyaWJ1dGVfXygocGFja2VkKSk7Cit9IF9fYXR0cmlidXRlX18oKHBhY2tlZCxhbGlnbmVkKDQwOTYpKSk7CiAKIC8qCiAgKiBJUEwgdmFsaWRpdHkgZmxhZ3MKQEAgLTg2LDYgKzkwLDggQEAKIGV4dGVybiB2b2lkIGRvX2hhbHQodm9pZCk7CiBleHRlcm4gdm9pZCBkb19wb2ZmKHZvaWQpOwogZXh0ZXJuIHZvaWQgaXBsX3NhdmVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGlwbF91cGRhdGVfcGFyYW1ldGVycyh2b2lkKTsKK2V4dGVybiB2b2lkIGdldF9pcGxfdm1wYXJtKGNoYXIgKik7CiAKIGVudW0gewogCUlQTF9ERVZOT19WQUxJRAkJPSAxLApAQCAtMTQ3LDYgKzE1MywxMSBAQAogCURJQUczMDhfRkxBR1NfTFBfVkFMSUQJPSAweDgwLAogfTsKIAorZW51bSBkaWFnMzA4X3ZtX2ZsYWdzIHsKKwlESUFHMzA4X1ZNX0ZMQUdTX05TU19WQUxJRAk9IDB4ODAsCisJRElBRzMwOF9WTV9GTEFHU19WUF9WQUxJRAk9IDB4NDAsCit9OworCiBlbnVtIGRpYWczMDhfcmMgewogCURJQUczMDhfUkNfT0sJPSAxLAogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXNjLmggYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YmI4OTEKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL2lzYy5oCkBAIC0wLDAgKzEsMjUgQEAKKyNpZm5kZWYgX0FTTV9TMzkwX0lTQ19ICisjZGVmaW5lIF9BU01fUzM5MF9JU0NfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyoKKyAqIEkvTyBpbnRlcnJ1cHRpb24gc3ViY2xhc3NlcyB1c2VkIGJ5IGRyaXZlcnMuCisgKiBQbGVhc2UgYWRkIGFsbCB1c2VkIGlzY3MgaGVyZSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGRpc3RyaWJ1dGUKKyAqIGlzYyB1c2FnZSBiZXR3ZWVuIGRyaXZlcnMuCisgKiBSZW1pbmRlcjogMCBpcyBoaWdoZXN0IHByaW9yaXR5LCA3IGxvd2VzdC4KKyAqLworI2RlZmluZSBNQVhfSVNDIDcKKworLyogUmVndWxhciBJL08gaW50ZXJydXB0cy4gKi8KKyNkZWZpbmUgSU9fU0NIX0lTQyAzCQkJLyogcmVndWxhciBJL08gc3ViY2hhbm5lbHMgKi8KKyNkZWZpbmUgQ09OU09MRV9JU0MgMQkJCS8qIGNvbnNvbGUgSS9PIHN1YmNoYW5uZWwgKi8KKyNkZWZpbmUgQ0hTQ19TQ0hfSVNDIDcJCQkvKiBDSFNDIHN1YmNoYW5uZWxzICovCisvKiBBZGFwdGVyIGludGVycnVwdHMuICovCisjZGVmaW5lIFFESU9fQUlSUV9JU0MgSU9fU0NIX0lTQwkvKiBJL08gc3ViY2hhbm5lbCBpbiBxZGlvIG1vZGUgKi8KKworLyogRnVuY3Rpb25zIGZvciByZWdpc3RyYXRpb24gb2YgSS9PIGludGVycnVwdGlvbiBzdWJjbGFzc2VzICovCit2b2lkIGlzY19yZWdpc3Rlcih1bnNpZ25lZCBpbnQgaXNjKTsKK3ZvaWQgaXNjX3VucmVnaXN0ZXIodW5zaWduZWQgaW50IGlzYyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVNDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oIGIvaW5jbHVkZS9hc20tczM5MC9pdGN3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTliYzVjMwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvaXRjdy5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiAgRnVuY3Rpb25zIGZvciBpbmNyZW1lbnRhbCBjb25zdHJ1Y3Rpb24gb2YgZmN4IGVuYWJsZWQgSS9PIGNvbnRyb2wgYmxvY2tzLgorICoKKyAqICAgIENvcHlyaWdodCBJQk0gQ29ycC4gMjAwOAorICogICAgQXV0aG9yKHMpOiBQZXRlciBPYmVycGFybGVpdGVyIDxwZXRlci5vYmVycGFybGVpdGVyQGRlLmlibS5jb20+CisgKi8KKworI2lmbmRlZiBfQVNNX1MzOTBfSVRDV19ICisjZGVmaW5lIF9BU01fUzM5MF9JVENXX0ggX0FTTV9TMzkwX0lUQ1dfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vZmN4Lmg+CisKKyNkZWZpbmUgSVRDV19PUF9SRUFECTAKKyNkZWZpbmUgSVRDV19PUF9XUklURQkxCisKK3N0cnVjdCBpdGN3OworCitzdHJ1Y3QgdGN3ICppdGN3X2dldF90Y3coc3RydWN0IGl0Y3cgKml0Y3cpOworc2l6ZV90IGl0Y3dfY2FsY19zaXplKGludCBpbnRyZywgaW50IG1heF90aWRhd3MsIGludCBpbnRyZ19tYXhfdGlkYXdzKTsKK3N0cnVjdCBpdGN3ICppdGN3X2luaXQodm9pZCAqYnVmZmVyLCBzaXplX3Qgc2l6ZSwgaW50IG9wLCBpbnQgaW50cmcsCisJCSAgICAgICBpbnQgbWF4X3RpZGF3cywgaW50IGludHJnX21heF90aWRhd3MpOworc3RydWN0IGRjdyAqaXRjd19hZGRfZGN3KHN0cnVjdCBpdGN3ICppdGN3LCB1OCBjbWQsIHU4IGZsYWdzLCB2b2lkICpjZCwKKwkJCSB1OCBjZF9jb3VudCwgdTMyIGNvdW50KTsKK3N0cnVjdCB0aWRhdyAqaXRjd19hZGRfdGlkYXcoc3RydWN0IGl0Y3cgKml0Y3csIHU4IGZsYWdzLCB2b2lkICphZGRyLAorCQkJICAgICB1MzIgY291bnQpOwordm9pZCBpdGN3X3NldF9kYXRhKHN0cnVjdCBpdGN3ICppdGN3LCB2b2lkICphZGRyLCBpbnQgdXNlX3RpZGFsKTsKK3ZvaWQgaXRjd19maW5hbGl6ZShzdHJ1Y3QgaXRjdyAqaXRjdyk7CisKKyNlbmRpZiAvKiBfQVNNX1MzOTBfSVRDV19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3BndGFibGUuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCmluZGV4IGM3ZjRmOGUuLjBiZGI3MDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcGd0YWJsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAgKiB0aGUgUzM5MCBwYWdlIHRhYmxlIHRyZWUuCiAgKi8KICNpZm5kZWYgX19BU1NFTUJMWV9fCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogI2luY2x1ZGUgPGFzbS9iaXRvcHMuaD4KICNpbmNsdWRlIDxhc20vYnVnLmg+CkBAIC0yMjMsNiArMjI0LDkgQEAKICNkZWZpbmUgX1BBR0VfU1BFQ0lBTAkweDAwNAkJLyogU1cgYXNzb2NpYXRlZCB3aXRoIHNwZWNpYWwgcGFnZSAqLwogI2RlZmluZSBfX0hBVkVfQVJDSF9QVEVfU1BFQ0lBTAogCisvKiBTZXQgb2YgYml0cyBub3QgY2hhbmdlZCBpbiBwdGVfbW9kaWZ5ICovCisjZGVmaW5lIF9QQUdFX0NIR19NQVNLCShQQUdFX01BU0sgfCBfUEFHRV9TUEVDSUFMKQorCiAvKiBTaXggZGlmZmVyZW50IHR5cGVzIG9mIHBhZ2VzLiAqLwogI2RlZmluZSBfUEFHRV9UWVBFX0VNUFRZCTB4NDAwCiAjZGVmaW5lIF9QQUdFX1RZUEVfTk9ORQkJMHg0MDEKQEAgLTY4MSw3ICs2ODUsNyBAQAogICovCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9tb2RpZnkocHRlX3QgcHRlLCBwZ3Byb3RfdCBuZXdwcm90KQogewotCXB0ZV92YWwocHRlKSAmPSBQQUdFX01BU0s7CisJcHRlX3ZhbChwdGUpICY9IF9QQUdFX0NIR19NQVNLOwogCXB0ZV92YWwocHRlKSB8PSBwZ3Byb3RfdmFsKG5ld3Byb3QpOwogCXJldHVybiBwdGU7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oIGIvaW5jbHVkZS9hc20tczM5MC9wcm9jZXNzb3IuaAppbmRleCBhMDBmNzlkLi40YWY4MGFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3Byb2Nlc3Nvci5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvcHJvY2Vzc29yLmgKQEAgLTE0MywxMSArMTQzLDE5IEBACiAvKgogICogRG8gbmVjZXNzYXJ5IHNldHVwIHRvIHN0YXJ0IHVwIGEgbmV3IHRocmVhZC4KICAqLwotI2RlZmluZSBzdGFydF90aHJlYWQocmVncywgbmV3X3BzdywgbmV3X3N0YWNrcCkgZG8geyAgICAgICAgICAgIFwKKyNkZWZpbmUgc3RhcnRfdGhyZWFkKHJlZ3MsIG5ld19wc3csIG5ld19zdGFja3ApIGRvIHsJCVwKIAlzZXRfZnMoVVNFUl9EUyk7CQkJCQlcCiAJcmVncy0+cHN3Lm1hc2sJPSBwc3dfdXNlcl9iaXRzOwkJCVwKLSAgICAgICAgcmVncy0+cHN3LmFkZHIgID0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOyAgICAgICAgICAgICBcCi0gICAgICAgIHJlZ3MtPmdwcnNbMTVdICA9IG5ld19zdGFja3AgOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCXJlZ3MtPnBzdy5hZGRyCT0gbmV3X3BzdyB8IFBTV19BRERSX0FNT0RFOwkJXAorCXJlZ3MtPmdwcnNbMTVdCT0gbmV3X3N0YWNrcDsJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBzdGFydF90aHJlYWQzMShyZWdzLCBuZXdfcHN3LCBuZXdfc3RhY2twKSBkbyB7CQlcCisJc2V0X2ZzKFVTRVJfRFMpOwkJCQkJXAorCXJlZ3MtPnBzdy5tYXNrCT0gcHN3X3VzZXIzMl9iaXRzOwkJCVwKKwlyZWdzLT5wc3cuYWRkcgk9IG5ld19wc3cgfCBQU1dfQUREUl9BTU9ERTsJCVwKKwlyZWdzLT5ncHJzWzE1XQk9IG5ld19zdGFja3A7CQkJCVwKKwljcnN0X3RhYmxlX2Rvd25ncmFkZShjdXJyZW50LT5tbSwgMVVMIDw8IDMxKTsJCVwKIH0gd2hpbGUgKDApCiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb24sIGEgc3RyYW5nZSBDIHRoaW5nICovCkBAIC0zMjgsMTYgKzMzNiw2IEBACiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9wZ21faGFuZGxlcl9mbikodm9pZCk7CiBleHRlcm4gdm9pZCAoKnMzOTBfYmFzZV9leHRfaGFuZGxlcl9mbikodm9pZCk7CiAKLS8qCi0gKiBDUFUgaWRsZSBub3RpZmllciBjaGFpbi4KLSAqLwotI2RlZmluZSBTMzkwX0NQVV9JRExFCQkwCi0jZGVmaW5lIFMzOTBfQ1BVX05PVF9JRExFCTEKLQotc3RydWN0IG5vdGlmaWVyX2Jsb2NrOwotaW50IHJlZ2lzdGVyX2lkbGVfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYik7Ci1pbnQgdW5yZWdpc3Rlcl9pZGxlX25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIpOwotCiAjZGVmaW5lIEFSQ0hfTE9XX0FERFJFU1NfTElNSVQJMHg3ZmZmZmZmZlVMCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXMzOTAvcHRyYWNlLmgKaW5kZXggZDdkNGUyZS4uYWYyYzlhYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3B0cmFjZS5oCkBAIC0yMTUsNiArMjE1LDEyIEBACiAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkcjsKIH0gX19hdHRyaWJ1dGVfXyAoKGFsaWduZWQoOCkpKSBwc3dfdDsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlfX3UzMgltYXNrOworCV9fdTMyCWFkZHI7Cit9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkKDgpKSkgcHN3X2NvbXBhdF90OworCiAjaWZuZGVmIF9fczM5MHhfXwogCiAjZGVmaW5lIFBTV19NQVNLX1BFUgkJMHg0MDAwMDAwMFVMCkBAIC0yOTIsNiArMjk4LDE1IEBACiAJdW5zaWduZWQgbG9uZyBvcmlnX2dwcjI7CiB9IHMzOTBfcmVnczsKIAordHlwZWRlZiBzdHJ1Y3QKK3sKKwlwc3dfY29tcGF0X3QJcHN3OworCV9fdTMyCQlncHJzW05VTV9HUFJTXTsKKwlfX3UzMgkJYWNyc1tOVU1fQUNSU107CisJX191MzIJCW9yaWdfZ3ByMjsKK30gczM5MF9jb21wYXRfcmVnczsKKworCiAjaWZkZWYgX19LRVJORUxfXwogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmggYi9pbmNsdWRlL2FzbS1zMzkwL3NjaGlkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAxN2ZmYQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NoaWQuaApAQCAtMCwwICsxLDI4IEBACisjaWZuZGVmIEFTTV9TQ0hJRF9ICisjZGVmaW5lIEFTTV9TQ0hJRF9ICisKK3N0cnVjdCBzdWJjaGFubmVsX2lkIHsKKwlfX3UzMiBjc3NpZCA6IDg7CisJX191MzIgOiA0OworCV9fdTMyIG0gOiAxOworCV9fdTMyIHNzaWQgOiAyOworCV9fdTMyIG9uZSA6IDE7CisJX191MzIgc2NoX25vIDogMTY7Cit9IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQoNCkpKTsKKworCisvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHNhbmUgc3RhdGUgb2YgcHJlLWFsbG9jYXRlZCBzdWJjaGFubmVsX2lkLiAqLworc3RhdGljIGlubGluZSB2b2lkCitpbml0X3N1YmNoYW5uZWxfaWQoc3RydWN0IHN1YmNoYW5uZWxfaWQgKnNjaGlkKQoreworCW1lbXNldChzY2hpZCwgMCwgc2l6ZW9mKHN0cnVjdCBzdWJjaGFubmVsX2lkKSk7CisJc2NoaWQtPm9uZSA9IDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitzY2hpZF9lcXVhbChzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQxLCBzdHJ1Y3Qgc3ViY2hhbm5lbF9pZCAqc2NoaWQyKQoreworCXJldHVybiAhbWVtY21wKHNjaGlkMSwgc2NoaWQyLCBzaXplb2Yoc3RydWN0IHN1YmNoYW5uZWxfaWQpKTsKK30KKworI2VuZGlmIC8qIEFTTV9TQ0hJRF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NjbHAuaCBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCmluZGV4IGI1ZjI4NDMuLmZlZDdiZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc2NscC5oCkBAIC00NSw5ICs0NSw5IEBACiBpbnQgc2NscF9nZXRfY3B1X2luZm8oc3RydWN0IHNjbHBfY3B1X2luZm8gKmluZm8pOwogaW50IHNjbHBfY3B1X2NvbmZpZ3VyZSh1OCBjcHUpOwogaW50IHNjbHBfY3B1X2RlY29uZmlndXJlKHU4IGNwdSk7Ci12b2lkIHNjbHBfcmVhZF9pbmZvX2Vhcmx5KHZvaWQpOwogdm9pZCBzY2xwX2ZhY2lsaXRpZXNfZGV0ZWN0KHZvaWQpOwotdW5zaWduZWQgbG9uZyBsb25nIHNjbHBfbWVtb3J5X2RldGVjdCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9ybm1heCh2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBzY2xwX2dldF9yem0odm9pZCk7CiBpbnQgc2NscF9zZGlhc19ibGtfY291bnQodm9pZCk7CiBpbnQgc2NscF9zZGlhc19jb3B5KHZvaWQgKmRlc3QsIGludCBibGtfbnVtLCBpbnQgbnJfYmxrcyk7CiBpbnQgc2NscF9jaHBfY29uZmlndXJlKHN0cnVjdCBjaHBfaWQgY2hwaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oIGIvaW5jbHVkZS9hc20tczM5MC9zZXR1cC5oCmluZGV4IGJhNjk2NzQuLmYwOWVlM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvc2V0dXAuaAorKysgYi9pbmNsdWRlL2FzbS1zMzkwL3NldHVwLmgKQEAgLTgsMTQgKzgsMTYgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NFVFVQX0gKICNkZWZpbmUgX0FTTV9TMzkwX1NFVFVQX0gKIAotI2RlZmluZSBDT01NQU5EX0xJTkVfU0laRSAJODk2CisjZGVmaW5lIENPTU1BTkRfTElORV9TSVpFCTEwMjQKKworI2RlZmluZSBBUkNIX0NPTU1BTkRfTElORV9TSVpFCTg5NgogCiAjaWZkZWYgX19LRVJORUxfXwogCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CiAKICNkZWZpbmUgUEFSTUFSRUEJCTB4MTA0MDAKLSNkZWZpbmUgTUVNT1JZX0NIVU5LUwkJMTYJLyogbWF4IDB4N2ZmZiAqLworI2RlZmluZSBNRU1PUllfQ0hVTktTCQkyNTYKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApAQCAtMzYsMTIgKzM4LDE0IEBACiBzdHJ1Y3QgbWVtX2NodW5rIHsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJdW5zaWduZWQgbG9uZyBzaXplOwotCXVuc2lnbmVkIGxvbmcgdHlwZTsKKwlpbnQgdHlwZTsKIH07CiAKIGV4dGVybiBzdHJ1Y3QgbWVtX2NodW5rIG1lbW9yeV9jaHVua1tdOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmVhbF9tZW1vcnlfc2l6ZTsKIAordm9pZCBkZXRlY3RfbWVtb3J5X2xheW91dChzdHJ1Y3QgbWVtX2NodW5rIGNodW5rW10pOworCiAjaWZkZWYgQ09ORklHX1MzOTBfU1dJVENIX0FNT0RFCiBleHRlcm4gdW5zaWduZWQgaW50IHN3aXRjaF9hbW9kZTsKICNlbHNlCkBAIC02MSw3ICs2NSw2IEBACiAKICNkZWZpbmUgTUFDSElORV9GTEFHX1ZNCQkoMVVMIDw8IDApCiAjZGVmaW5lIE1BQ0hJTkVfRkxBR19JRUVFCSgxVUwgPDwgMSkKLSNkZWZpbmUgTUFDSElORV9GTEFHX1AzOTAJKDFVTCA8PCAyKQogI2RlZmluZSBNQUNISU5FX0ZMQUdfQ1NQCSgxVUwgPDwgMykKICNkZWZpbmUgTUFDSElORV9GTEFHX01WUEcJKDFVTCA8PCA0KQogI2RlZmluZSBNQUNISU5FX0ZMQUdfRElBRzQ0CSgxVUwgPDwgNSkKQEAgLTk3LDcgKzEwMCw2IEBACiAjZGVmaW5lIE1BQ0hJTkVfSEFTX1BGTUYJKG1hY2hpbmVfZmxhZ3MgJiBNQUNISU5FX0ZMQUdfUEZNRikKICNlbmRpZiAvKiBfX3MzOTB4X18gKi8KIAotI2RlZmluZSBNQUNISU5FX0hBU19TQ0xQCSghTUFDSElORV9JU19QMzkwKQogI2RlZmluZSBaRkNQRFVNUF9IU0FfU0laRQkoMzJVTDw8MjApCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oIGIvaW5jbHVkZS9hc20tczM5MC9zcGFyc2VtZW0uaAppbmRleCAwNmRmZGFiLi41NDVkMjE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3NwYXJzZW1lbS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc3BhcnNlbWVtLmgKQEAgLTEsMTUgKzEsMTUgQEAKICNpZm5kZWYgX0FTTV9TMzkwX1NQQVJTRU1FTV9ICiAjZGVmaW5lIF9BU01fUzM5MF9TUEFSU0VNRU1fSAogCi0jZGVmaW5lIFNFQ1RJT05fU0laRV9CSVRTCTI1Ci0KICNpZmRlZiBDT05GSUdfNjRCSVQKIAorI2RlZmluZSBTRUNUSU9OX1NJWkVfQklUUwkyOAogI2RlZmluZSBNQVhfUEhZU0FERFJfQklUUwk0MgogI2RlZmluZSBNQVhfUEhZU01FTV9CSVRTCTQyCiAKICNlbHNlCiAKKyNkZWZpbmUgU0VDVElPTl9TSVpFX0JJVFMJMjUKICNkZWZpbmUgTUFYX1BIWVNBRERSX0JJVFMJMzEKICNkZWZpbmUgTUFYX1BIWVNNRU1fQklUUwkzMQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tczM5MC9zeXN0ZW0uaAppbmRleCBlMGQ0NTAwLi44MTllN2Q5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgKQEAgLTMxNSwxNCArMzE1LDE0IEBACiAJYXNtIHZvbGF0aWxlKAkJCQkJCVwKIAkJIglsY3RsZwklMSwlMiwwKCUwKVxuIgkJCVwKIAkJOiA6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpLAlcCi0JCSAgICAibSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKSk7CQlcCisJCSAgICAibSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkpOwkJXAogCX0pCiAKICNkZWZpbmUgX19jdGxfc3RvcmUoYXJyYXksIGxvdywgaGlnaCkgKHsJCQlcCiAJdHlwZWRlZiBzdHJ1Y3QgeyBjaGFyIF9bc2l6ZW9mKGFycmF5KV07IH0gYWRkcnR5cGU7CVwKIAlhc20gdm9sYXRpbGUoCQkJCQkJXAogCQkiCXN0Y3RnCSUyLCUzLDAoJTEpXG4iCQkJXAotCQk6ICI9bSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKQkJCVwKKwkJOiAiPW0iICgqKGFkZHJ0eXBlICopKCZhcnJheSkpCQkJXAogCQk6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpKTsJCVwKIAl9KQogCkBAIC0zMzMsMTQgKzMzMywxNCBAQAogCWFzbSB2b2xhdGlsZSgJCQkJCQlcCiAJCSIJbGN0bAklMSwlMiwwKCUwKVxuIgkJCVwKIAkJOiA6ICJhIiAoJmFycmF5KSwgImkiIChsb3cpLCAiaSIgKGhpZ2gpLAlcCi0JCSAgICAibSIgKCooYWRkcnR5cGUgKikoYXJyYXkpKSk7CQlcCisJCSAgICAibSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkpOwkJXAogfSkKIAogI2RlZmluZSBfX2N0bF9zdG9yZShhcnJheSwgbG93LCBoaWdoKSAoewkJCVwKIAl0eXBlZGVmIHN0cnVjdCB7IGNoYXIgX1tzaXplb2YoYXJyYXkpXTsgfSBhZGRydHlwZTsJXAogCWFzbSB2b2xhdGlsZSgJCQkJCQlcCiAJCSIJc3RjdGwJJTIsJTMsMCglMSlcbiIJCQlcCi0JCTogIj1tIiAoKihhZGRydHlwZSAqKShhcnJheSkpCQkJXAorCQk6ICI9bSIgKCooYWRkcnR5cGUgKikoJmFycmF5KSkJCQlcCiAJCTogImEiICgmYXJyYXkpLCAiaSIgKGxvdyksICJpIiAoaGlnaCkpOwkJXAogCX0pCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvdGltZXIuaCBiL2luY2x1ZGUvYXNtLXMzOTAvdGltZXIuaAppbmRleCBhZGIzNDg2Li5kOThkNzllIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zMzkwL3RpbWVyLmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC90aW1lci5oCkBAIC00OCw2ICs0OCwxOCBAQAogZXh0ZXJuIHZvaWQgaW5pdF9jcHVfdnRpbWVyKHZvaWQpOwogZXh0ZXJuIHZvaWQgdnRpbWVfaW5pdCh2b2lkKTsKIAorI2lmZGVmIENPTkZJR19WSVJUX1RJTUVSCisKK2V4dGVybiB2b2lkIHZ0aW1lX3N0YXJ0X2NwdV90aW1lcih2b2lkKTsKK2V4dGVybiB2b2lkIHZ0aW1lX3N0b3BfY3B1X3RpbWVyKHZvaWQpOworCisjZWxzZQorCitzdGF0aWMgaW5saW5lIHZvaWQgdnRpbWVfc3RhcnRfY3B1X3RpbWVyKHZvaWQpIHsgfQorc3RhdGljIGlubGluZSB2b2lkIHZ0aW1lX3N0b3BfY3B1X3RpbWVyKHZvaWQpIHsgfQorCisjZW5kaWYgLyogQ09ORklHX1ZJUlRfVElNRVIgKi8KKwogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2VuZGlmIC8qIF9BU01fUzM5MF9USU1FUl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zMzkwL3R5cGVzLmggYi9pbmNsdWRlL2FzbS1zMzkwL3R5cGVzLmgKaW5kZXggMGU5NTllMi4uNDFjNTQ3NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tczM5MC90eXBlcy5oCisrKyBiL2luY2x1ZGUvYXNtLXMzOTAvdHlwZXMuaApAQCAtNDAsNyArNDAsMTMgQEAKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIAordHlwZWRlZiB1NjQgZG1hNjRfYWRkcl90OworI2lmZGVmIF9fczM5MHhfXworLyogRE1BIGFkZHJlc3NlcyBjb21lIGluIDMyLWJpdCBhbmQgNjQtYml0IGZsYXZvdXJzLiAqLwordHlwZWRlZiB1NjQgZG1hX2FkZHJfdDsKKyNlbHNlCiB0eXBlZGVmIHUzMiBkbWFfYWRkcl90OworI2VuZGlmCiAKICNpZm5kZWYgX19zMzkweF9fCiB0eXBlZGVmIHVuaW9uIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXMzOTAvemNyeXB0LmggYi9pbmNsdWRlL2FzbS1zMzkwL3pjcnlwdC5oCmluZGV4IGYyMjhmMWIuLjAwZDNiYmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXMzOTAvemNyeXB0LmgKKysrIGIvaW5jbHVkZS9hc20tczM5MC96Y3J5cHQuaApAQCAtMjksNyArMjksNyBAQAogCiAjZGVmaW5lIFpDUllQVF9WRVJTSU9OIDIKICNkZWZpbmUgWkNSWVBUX1JFTEVBU0UgMQotI2RlZmluZSBaQ1JZUFRfVkFSSUFOVCAwCisjZGVmaW5lIFpDUllQVF9WQVJJQU5UIDEKIAogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+CiAjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNoL2NoZWNrc3VtXzMyLmggYi9pbmNsdWRlL2FzbS1zaC9jaGVja3N1bV8zMi5oCmluZGV4IDRiYzgzNTcuLjE0YjdhYzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXNoL2NoZWNrc3VtXzMyLmgKKysrIGIvaW5jbHVkZS9hc20tc2gvY2hlY2tzdW1fMzIuaApAQCAtMTA5LDcgKzEwOSw3IEBACiAJICAgd2lsbCBhc3N1bWUgdGhleSBjb250YWluIHRoZWlyIG9yaWdpbmFsIHZhbHVlcy4gKi8KIAk6ICI9ciIgKHN1bSksICI9ciIgKGlwaCksICI9ciIgKGlobCksICI9JnIiIChfX2R1bW15MCksICI9JnoiIChfX2R1bW15MSkKIAk6ICIxIiAoaXBoKSwgIjIiIChpaGwpCi0JOiAidCIpOworCTogInQiLCAibWVtb3J5Iik7CiAKIAlyZXR1cm4JY3N1bV9mb2xkKHN1bSk7CiB9CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1zcGFyYzY0L2Z0cmFjZS5oIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9mdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjc3MTZjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9mdHJhY2UuaApAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9BU01fU1BBUkM2NF9GVFJBQ0UKKyNkZWZpbmUgX0FTTV9TUEFSQzY0X0ZUUkFDRQorCisjaWZkZWYgQ09ORklHX01DT1VOVAorI2RlZmluZSBNQ09VTlRfQUREUgkJKChsb25nKShfbWNvdW50KSkKKyNkZWZpbmUgTUNPVU5UX0lOU05fU0laRQk0IC8qIHNpemVvZiBtY291bnQgY2FsbCAqLworCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIHZvaWQgX21jb3VudCh2b2lkKTsKKyNlbmRpZgorCisjZW5kaWYKKworI2VuZGlmIC8qIF9BU01fU1BBUkM2NF9GVFJBQ0UgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXNwYXJjNjQvaW8uaCBiL2luY2x1ZGUvYXNtLXNwYXJjNjQvaW8uaAppbmRleCBjMjk5Yjg1Li4zMTU4OTYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1zcGFyYzY0L2lvLmgKKysrIGIvaW5jbHVkZS9hc20tc3BhcmM2NC9pby5oCkBAIC0yNCw3ICsyNCw4IEBACiAKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygibGR1YmFcdFslMV0gJTIsICUwXHQvKiBwY2lfaW5iICovIgogCQkJICAgICA6ICI9ciIgKHJldCkKLQkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpKTsKKwkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTM1LDcgKzM2LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHVoYVx0WyUxXSAlMiwgJTBcdC8qIHBjaV9pbncgKi8iCiAJCQkgICAgIDogIj1yIiAocmV0KQotCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkKKwkJCSAgICAgOiAibWVtb3J5Iik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNDYsNyArNDgsOCBAQAogCiAJX19hc21fXyBfX3ZvbGF0aWxlX18oImxkdXdhXHRbJTFdICUyLCAlMFx0LyogcGNpX2lubCAqLyIKIAkJCSAgICAgOiAiPXIiIChyZXQpCi0JCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKSk7CisJCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC01NSwyMSArNTgsMjQgQEAKIHsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygic3RiYVx0JXIwLCBbJTFdICUyXHQvKiBwY2lfb3V0YiAqLyIKIAkJCSAgICAgOiAvKiBubyBvdXRwdXRzICovCi0JCQkgICAgIDogIkpyIiAoYiksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJKciIgKGIpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX291dHcodTE2IHcsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygic3RoYVx0JXIwLCBbJTFdICUyXHQvKiBwY2lfb3V0dyAqLyIKIAkJCSAgICAgOiAvKiBubyBvdXRwdXRzICovCi0JCQkgICAgIDogIkpyIiAodyksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJKciIgKHcpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX291dGwodTMyIGwsIHVuc2lnbmVkIGxvbmcgYWRkcikKIHsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygic3R3YVx0JXIwLCBbJTFdICUyXHQvKiBwY2lfb3V0bCAqLyIKIAkJCSAgICAgOiAvKiBubyBvdXRwdXRzICovCi0JCQkgICAgIDogIkpyIiAobCksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJKciIgKGwpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiAjZGVmaW5lIGluYihfX2FkZHIpCQkoX2luYigodW5zaWduZWQgbG9uZykoX19hZGRyKSkpCkBAIC0xMjgsNyArMTM0LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHViYVx0WyUxXSAlMiwgJTBcdC8qIHBjaV9yZWFkYiAqLyIKIAkJCSAgICAgOiAiPXIiIChyZXQpCi0JCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKSk7CisJCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMzcsNyArMTQ0LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHVoYVx0WyUxXSAlMiwgJTBcdC8qIHBjaV9yZWFkdyAqLyIKIAkJCSAgICAgOiAiPXIiIChyZXQpCi0JCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKSk7CisJCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xNDcsNyArMTU1LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHV3YVx0WyUxXSAlMiwgJTBcdC8qIHBjaV9yZWFkbCAqLyIKIAkJCSAgICAgOiAiPXIiIChyZXQpCi0JCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKSk7CisJCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xNTcsNyArMTY2LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHhhXHRbJTFdICUyLCAlMFx0LyogcGNpX3JlYWRxICovIgogCQkJICAgICA6ICI9ciIgKHJldCkKLQkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpKTsKKwkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTE2NiwyOCArMTc2LDMyIEBACiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0YmFcdCVyMCwgWyUxXSAlMlx0LyogcGNpX3dyaXRlYiAqLyIKIAkJCSAgICAgOiAvKiBubyBvdXRwdXRzICovCi0JCQkgICAgIDogIkpyIiAoYiksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJKciIgKGIpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX3dyaXRldyh1MTYgdywgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQogewogCV9fYXNtX18gX192b2xhdGlsZV9fKCJzdGhhXHQlcjAsIFslMV0gJTJcdC8qIHBjaV93cml0ZXcgKi8iCiAJCQkgICAgIDogLyogbm8gb3V0cHV0cyAqLwotCQkJICAgICA6ICJKciIgKHcpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpKTsKKwkJCSAgICAgOiAiSnIiICh3KSwgInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIF93cml0ZWwodTMyIGwsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKIHsKIAlfX2FzbV9fIF9fdm9sYXRpbGVfXygic3R3YVx0JXIwLCBbJTFdICUyXHQvKiBwY2lfd3JpdGVsICovIgogCQkJICAgICA6IC8qIG5vIG91dHB1dHMgKi8KLQkJCSAgICAgOiAiSnIiIChsKSwgInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRV9MKSk7CisJCQkgICAgIDogIkpyIiAobCksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkKKwkJCSAgICAgOiAibWVtb3J5Iik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfd3JpdGVxKHU2NCBxLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0eGFcdCVyMCwgWyUxXSAlMlx0LyogcGNpX3dyaXRlcSAqLyIKIAkJCSAgICAgOiAvKiBubyBvdXRwdXRzICovCi0JCQkgICAgIDogIkpyIiAocSksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0VfTCkpOworCQkJICAgICA6ICJKciIgKHEpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FX0wpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiAjZGVmaW5lIHJlYWRiKF9fYWRkcikJCV9yZWFkYihfX2FkZHIpCkBAIC0yOTksNyArMzEzLDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHViYVx0WyUxXSAlMiwgJTBcdC8qIHNidXNfcmVhZGIgKi8iCiAJCQkgICAgIDogIj1yIiAocmV0KQotCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpKTsKKwkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMTAsNyArMzI1LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHVoYVx0WyUxXSAlMiwgJTBcdC8qIHNidXNfcmVhZHcgKi8iCiAJCQkgICAgIDogIj1yIiAocmV0KQotCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpKTsKKwkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMjEsNyArMzM3LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHV3YVx0WyUxXSAlMiwgJTBcdC8qIHNidXNfcmVhZGwgKi8iCiAJCQkgICAgIDogIj1yIiAocmV0KQotCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpKTsKKwkJCSAgICAgOiAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKQorCQkJICAgICA6ICJtZW1vcnkiKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0zMzIsNyArMzQ5LDggQEAKIAogCV9fYXNtX18gX192b2xhdGlsZV9fKCJsZHhhXHRbJTFdICUyLCAlMFx0Lyogc2J1c19yZWFkcSAqLyIKIAkJCSAgICAgOiAiPXIiIChyZXQpCi0JCQkgICAgIDogInIiIChhZGRyKSwgImkiIChBU0lfUEhZU19CWVBBU1NfRUNfRSkpOworCQkJICAgICA6ICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpCisJCQkgICAgIDogIm1lbW9yeSIpOwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTM0MSwyOCArMzU5LDMyIEBACiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0YmFcdCVyMCwgWyUxXSAlMlx0Lyogc2J1c193cml0ZWIgKi8iCiAJCQkgICAgIDogLyogbm8gb3V0cHV0cyAqLwotCQkJICAgICA6ICJKciIgKGIpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKSk7CisJCQkgICAgIDogIkpyIiAoYiksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX3NidXNfd3JpdGV3KHUxNiB3LCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0aGFcdCVyMCwgWyUxXSAlMlx0Lyogc2J1c193cml0ZXcgKi8iCiAJCQkgICAgIDogLyogbm8gb3V0cHV0cyAqLwotCQkJICAgICA6ICJKciIgKHcpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKSk7CisJCQkgICAgIDogIkpyIiAodyksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX3NidXNfd3JpdGVsKHUzMiBsLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0d2FcdCVyMCwgWyUxXSAlMlx0Lyogc2J1c193cml0ZWwgKi8iCiAJCQkgICAgIDogLyogbm8gb3V0cHV0cyAqLwotCQkJICAgICA6ICJKciIgKGwpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKSk7CisJCQkgICAgIDogIkpyIiAobCksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgX3NidXNfd3JpdGVxKHU2NCBsLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCiB7CiAJX19hc21fXyBfX3ZvbGF0aWxlX18oInN0eGFcdCVyMCwgWyUxXSAlMlx0Lyogc2J1c193cml0ZXEgKi8iCiAJCQkgICAgIDogLyogbm8gb3V0cHV0cyAqLwotCQkJICAgICA6ICJKciIgKGwpLCAiciIgKGFkZHIpLCAiaSIgKEFTSV9QSFlTX0JZUEFTU19FQ19FKSk7CisJCQkgICAgIDogIkpyIiAobCksICJyIiAoYWRkciksICJpIiAoQVNJX1BIWVNfQllQQVNTX0VDX0UpCisJCQkgICAgIDogIm1lbW9yeSIpOwogfQogCiAjZGVmaW5lIHNidXNfcmVhZGIoX19hZGRyKQkJX3NidXNfcmVhZGIoX19hZGRyKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tc3BhcmM2NC9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXNwYXJjNjQvcHRyYWNlLmgKaW5kZXggZDhhNTZjZC4uYjE2M2RhNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tc3BhcmM2NC9wdHJhY2UuaAorKysgYi9pbmNsdWRlL2FzbS1zcGFyYzY0L3B0cmFjZS5oCkBAIC0xMjYsNiArMTI2LDggQEAKICNkZWZpbmUgVFJBQ0VSRUczMl9TWglzaXplb2Yoc3RydWN0IHB0X3JlZ3MzMikKICNkZWZpbmUgU1RBQ0tGUkFNRTMyX1NaCXNpemVvZihzdHJ1Y3Qgc3BhcmNfc3RhY2tmMzIpCiAKKyNpZmRlZiBfX0tFUk5FTF9fCisKIHN0cnVjdCBnbG9iYWxfcmVnX3NuYXBzaG90IHsKIAl1bnNpZ25lZCBsb25nCQl0c3RhdGU7CiAJdW5zaWduZWQgbG9uZwkJdHBjOwpAQCAtMTM3LDggKzEzOSw2IEBACiAJdW5zaWduZWQgbG9uZwkJcGFkMjsKIH07CiAKLSNpZmRlZiBfX0tFUk5FTF9fCi0KICNkZWZpbmUgX19BUkNIX1dBTlRfQ09NUEFUX1NZU19QVFJBQ0UKIAogI2RlZmluZSBmb3JjZV9zdWNjZXNzZnVsX3N5c2NhbGxfcmV0dXJuKCkJICAgIFwKQEAgLTMwNiw2ICszMDYsOCBAQAogI2RlZmluZSBTRl9YQVJHNSAgMHg1OAogI2RlZmluZSBTRl9YWEFSRyAgMHg1YwogCisjaWZkZWYgX19LRVJORUxfXworCiAvKiBnbG9iYWxfcmVnX3NuYXBzaG90IG9mZnNldHMgKi8KICNkZWZpbmUgR1JfU05BUF9UU1RBVEUJMHgwMAogI2RlZmluZSBHUl9TTkFQX1RQQwkweDA4CkBAIC0zMTYsNiArMzE4LDggQEAKICNkZWZpbmUgR1JfU05BUF9QQUQxCTB4MzAKICNkZWZpbmUgR1JfU05BUF9QQUQyCTB4MzgKIAorI2VuZGlmICAvKiAgX19LRVJORUxfXyAgKi8KKwogLyogU3R1ZmYgZm9yIHRoZSBwdHJhY2Ugc3lzdGVtIGNhbGwgKi8KICNkZWZpbmUgUFRSQUNFX1NQQVJDX0RFVEFDSCAgICAgICAxMQogI2RlZmluZSBQVFJBQ0VfR0VUUkVHUyAgICAgICAgICAgIDEyCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS11bS9tbXVfY29udGV4dC5oIGIvaW5jbHVkZS9hc20tdW0vbW11X2NvbnRleHQuaAppbmRleCA2Njg2ZmM1Li41NGY0MmU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS11bS9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLXVtL21tdV9jb250ZXh0LmgKQEAgLTIyLDE2ICsyMiwxMCBAQAogc3RhdGljIGlubGluZSB2b2lkIGFjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKm9sZCwgc3RydWN0IG1tX3N0cnVjdCAqbmV3KQogewogCS8qCi0JICogVGhpcyBpcyBjYWxsZWQgYnkgZnMvZXhlYy5jIGFuZCBmcy9haW8uYy4gSW4gdGhlIGZpcnN0IGNhc2UsIGZvciBhbgotCSAqIGV4ZWMsIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcgYXMgd2UncmUgY2FsbGVkIGZyb20gdXNlcnNwYWNlCi0JICogYW5kIHRodXMgZ29pbmcgdG8gdXNlIGEgbmV3IGhvc3QgUElELiBJbiB0aGUgc2Vjb25kLCB3ZSdyZSBjYWxsZWQKLQkgKiBmcm9tIGEga2VybmVsIHRocmVhZCwgYW5kIHRodXMgbmVlZCB0byBnbyBkb2luZyB0aGUgbW1hcCdzIG9uIHRoZQotCSAqIGhvc3QuIFNpbmNlIHRoZXkncmUgdmVyeSBleHBlbnNpdmUsIHdlIHdhbnQgdG8gYXZvaWQgdGhhdCBhcyBmYXIgYXMKLQkgKiBwb3NzaWJsZS4KKwkgKiBUaGlzIGlzIGNhbGxlZCBieSBmcy9leGVjLmMgYW5kIHN5c191bnNoYXJlKCkKKwkgKiB3aGVuIHRoZSBuZXcgLT5tbSBpcyB1c2VkIGZvciB0aGUgZmlyc3QgdGltZS4KIAkgKi8KLQlpZiAob2xkICE9IG5ldyAmJiAoY3VycmVudC0+ZmxhZ3MgJiBQRl9CT1JST1dFRF9NTSkpCi0JCV9fc3dpdGNoX21tKCZuZXctPmNvbnRleHQuaWQpOwotCisJX19zd2l0Y2hfbW0oJm5ldy0+Y29udGV4dC5pZCk7CiAJYXJjaF9kdXBfbW1hcChvbGQsIG5ldyk7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXY4NTAvY2xpbmthZ2UuaCBiL2luY2x1ZGUvYXNtLXY4NTAvY2xpbmthZ2UuaAppbmRleCAyYjYyMmFkLi5jMzg5NjkxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS12ODUwL2NsaW5rYWdlLmgKKysrIGIvaW5jbHVkZS9hc20tdjg1MC9jbGlua2FnZS5oCkBAIC0xMSw3ICsxMSw3IEBACiAgKiBXcml0dGVuIGJ5IE1pbGVzIEJhZGVyIDxtaWxlc0BnbnUub3JnPgogICovCiAKLSNpZm5kZWYgX19DTElOS0FHRV9IX18KKyNpZm5kZWYgX19WODUwX0NMSU5LQUdFX0hfXwogI2RlZmluZSBfX1Y4NTBfQ0xJTktBR0VfSF9fCiAKICNpbmNsdWRlIDxhc20vbWFjcm9sb2d5Lmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYWNwaS5oIGIvaW5jbHVkZS9hc20teDg2L2FjcGkuaAppbmRleCAxNDQxMWM5Li42MzVkNzY0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYWNwaS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hY3BpLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxhc20vbnVtYS5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNpbmNsdWRlIDxhc20vbW11Lmg+CisjaW5jbHVkZSA8YXNtL21wc3BlYy5oPgogCiAjZGVmaW5lIENPTVBJTEVSX0RFUEVOREVOVF9JTlQ2NCAgIGxvbmcgbG9uZwogI2RlZmluZSBDT01QSUxFUl9ERVBFTkRFTlRfVUlOVDY0ICB1bnNpZ25lZCBsb25nIGxvbmcKQEAgLTE2MCw5ICsxNjEsNyBAQAogI2lmZGVmIENPTkZJR19BQ1BJX05VTUEKIGV4dGVybiBpbnQgYWNwaV9udW1hOwogZXh0ZXJuIGludCBhY3BpX3NjYW5fbm9kZXModW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotI2lmZGVmIENPTkZJR19YODZfNjQKLSMgZGVmaW5lIE5SX05PREVfTUVNQkxLUyAoTUFYX05VTU5PREVTKjIpCi0jZW5kaWYKKyNkZWZpbmUgTlJfTk9ERV9NRU1CTEtTIChNQVhfTlVNTk9ERVMqMikKIGV4dGVybiB2b2lkIGFjcGlfZmFrZV9ub2Rlcyhjb25zdCBzdHJ1Y3QgYm9vdG5vZGUgKmZha2Vfbm9kZXMsCiAJCQkJICAgaW50IG51bV9ub2Rlcyk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmggYi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAppbmRleCAxZjZhOWNhLi5mNmFhMThlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaApAQCAtNzIsNiArNzIsOCBAQAogc3RhdGljIGlubGluZSB2b2lkIGFsdGVybmF0aXZlc19zbXBfc3dpdGNoKGludCBzbXApIHt9CiAjZW5kaWYJLyogQ09ORklHX1NNUCAqLwogCitjb25zdCB1bnNpZ25lZCBjaGFyICpjb25zdCAqZmluZF9ub3BfdGFibGUodm9pZCk7CisKIC8qCiAgKiBBbHRlcm5hdGl2ZSBpbnN0cnVjdGlvbnMgZm9yIGRpZmZlcmVudCBDUFUgdHlwZXMgb3IgY2FwYWJpbGl0aWVzLgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGExMjA0Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L2FtZF9pb21tdS5oCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKiBBdXRob3I6IEpvZXJnIFJvZWRlbCA8am9lcmcucm9lZGVsQGFtZC5jb20+CisgKiAgICAgICAgIExlbyBEdXJhbiA8bGVvLmR1cmFuQGFtZC5jb20+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzIHB1Ymxpc2hlZAorICogYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2lmbmRlZiBfQVNNX1g4Nl9BTURfSU9NTVVfSAorI2RlZmluZSBfQVNNX1g4Nl9BTURfSU9NTVVfSAorCisjaWZkZWYgQ09ORklHX0FNRF9JT01NVQorZXh0ZXJuIGludCBhbWRfaW9tbXVfaW5pdCh2b2lkKTsKK2V4dGVybiBpbnQgYW1kX2lvbW11X2luaXRfZG1hX29wcyh2b2lkKTsKK2V4dGVybiB2b2lkIGFtZF9pb21tdV9kZXRlY3Qodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgYW1kX2lvbW11X2luaXQodm9pZCkgeyByZXR1cm4gLUVOT0RFVjsgfQorc3RhdGljIGlubGluZSB2b2lkIGFtZF9pb21tdV9kZXRlY3Qodm9pZCkgeyB9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYW1kX2lvbW11X3R5cGVzLmggYi9pbmNsdWRlL2FzbS14ODYvYW1kX2lvbW11X3R5cGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JmY2I0NwotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hbWRfaW9tbXVfdHlwZXMuaApAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqIEF1dGhvcjogSm9lcmcgUm9lZGVsIDxqb2VyZy5yb2VkZWxAYW1kLmNvbT4KKyAqICAgICAgICAgTGVvIER1cmFuIDxsZW8uZHVyYW5AYW1kLmNvbT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9fQU1EX0lPTU1VX1RZUEVTX0hfXworI2RlZmluZSBfX0FNRF9JT01NVV9UWVBFU19IX18KKworI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CisKKy8qCisgKiBzb21lIHNpemUgY2FsY3VsYXRpb24gY29uc3RhbnRzCisgKi8KKyNkZWZpbmUgREVWX1RBQkxFX0VOVFJZX1NJWkUJCTI1NgorI2RlZmluZSBBTElBU19UQUJMRV9FTlRSWV9TSVpFCQkyCisjZGVmaW5lIFJMT09LVVBfVEFCTEVfRU5UUllfU0laRQkoc2l6ZW9mKHZvaWQgKikpCisKKy8qIGhlbHBlciBtYWNyb3MgKi8KKyNkZWZpbmUgTE9XX1UzMih4KSAoKHgpICYgKCgxVUxMIDw8IDMyKS0xKSkKKyNkZWZpbmUgSElHSF9VMzIoeCkgKExPV19VMzIoKHgpID4+IDMyKSkKKworLyogTGVuZ3RoIG9mIHRoZSBNTUlPIHJlZ2lvbiBmb3IgdGhlIEFNRCBJT01NVSAqLworI2RlZmluZSBNTUlPX1JFR0lPTl9MRU5HVEggICAgICAgMHg0MDAwCisKKy8qIENhcGFiaWxpdHkgb2Zmc2V0cyB1c2VkIGJ5IHRoZSBkcml2ZXIgKi8KKyNkZWZpbmUgTU1JT19DQVBfSERSX09GRlNFVAkweDAwCisjZGVmaW5lIE1NSU9fUkFOR0VfT0ZGU0VUCTB4MGMKKworLyogTWFza3MsIHNoaWZ0cyBhbmQgbWFjcm9zIHRvIHBhcnNlIHRoZSBkZXZpY2UgcmFuZ2UgY2FwYWJpbGl0eSAqLworI2RlZmluZSBNTUlPX1JBTkdFX0xEX01BU0sJMHhmZjAwMDAwMAorI2RlZmluZSBNTUlPX1JBTkdFX0ZEX01BU0sJMHgwMGZmMDAwMAorI2RlZmluZSBNTUlPX1JBTkdFX0JVU19NQVNLCTB4MDAwMGZmMDAKKyNkZWZpbmUgTU1JT19SQU5HRV9MRF9TSElGVAkyNAorI2RlZmluZSBNTUlPX1JBTkdFX0ZEX1NISUZUCTE2CisjZGVmaW5lIE1NSU9fUkFOR0VfQlVTX1NISUZUCTgKKyNkZWZpbmUgTU1JT19HRVRfTEQoeCkgICgoKHgpICYgTU1JT19SQU5HRV9MRF9NQVNLKSA+PiBNTUlPX1JBTkdFX0xEX1NISUZUKQorI2RlZmluZSBNTUlPX0dFVF9GRCh4KSAgKCgoeCkgJiBNTUlPX1JBTkdFX0ZEX01BU0spID4+IE1NSU9fUkFOR0VfRkRfU0hJRlQpCisjZGVmaW5lIE1NSU9fR0VUX0JVUyh4KSAoKCh4KSAmIE1NSU9fUkFOR0VfQlVTX01BU0spID4+IE1NSU9fUkFOR0VfQlVTX1NISUZUKQorCisvKiBGbGFnIG1hc2tzIGZvciB0aGUgQU1EIElPTU1VIGV4Y2x1c2lvbiByYW5nZSAqLworI2RlZmluZSBNTUlPX0VYQ0xfRU5BQkxFX01BU0sgMHgwMVVMTAorI2RlZmluZSBNTUlPX0VYQ0xfQUxMT1dfTUFTSyAgMHgwMlVMTAorCisvKiBVc2VkIG9mZnNldHMgaW50byB0aGUgTU1JTyBzcGFjZSAqLworI2RlZmluZSBNTUlPX0RFVl9UQUJMRV9PRkZTRVQgICAweDAwMDAKKyNkZWZpbmUgTU1JT19DTURfQlVGX09GRlNFVCAgICAgMHgwMDA4CisjZGVmaW5lIE1NSU9fRVZUX0JVRl9PRkZTRVQgICAgIDB4MDAxMAorI2RlZmluZSBNTUlPX0NPTlRST0xfT0ZGU0VUICAgICAweDAwMTgKKyNkZWZpbmUgTU1JT19FWENMX0JBU0VfT0ZGU0VUICAgMHgwMDIwCisjZGVmaW5lIE1NSU9fRVhDTF9MSU1JVF9PRkZTRVQgIDB4MDAyOAorI2RlZmluZSBNTUlPX0NNRF9IRUFEX09GRlNFVAkweDIwMDAKKyNkZWZpbmUgTU1JT19DTURfVEFJTF9PRkZTRVQJMHgyMDA4CisjZGVmaW5lIE1NSU9fRVZUX0hFQURfT0ZGU0VUCTB4MjAxMAorI2RlZmluZSBNTUlPX0VWVF9UQUlMX09GRlNFVAkweDIwMTgKKyNkZWZpbmUgTU1JT19TVEFUVVNfT0ZGU0VUCTB4MjAyMAorCisvKiBmZWF0dXJlIGNvbnRyb2wgYml0cyAqLworI2RlZmluZSBDT05UUk9MX0lPTU1VX0VOICAgICAgICAweDAwVUxMCisjZGVmaW5lIENPTlRST0xfSFRfVFVOX0VOICAgICAgIDB4MDFVTEwKKyNkZWZpbmUgQ09OVFJPTF9FVlRfTE9HX0VOICAgICAgMHgwMlVMTAorI2RlZmluZSBDT05UUk9MX0VWVF9JTlRfRU4gICAgICAweDAzVUxMCisjZGVmaW5lIENPTlRST0xfQ09NV0FJVF9FTiAgICAgIDB4MDRVTEwKKyNkZWZpbmUgQ09OVFJPTF9QQVNTUFdfRU4gICAgICAgMHgwOFVMTAorI2RlZmluZSBDT05UUk9MX1JFU1BBU1NQV19FTiAgICAweDA5VUxMCisjZGVmaW5lIENPTlRST0xfQ09IRVJFTlRfRU4gICAgIDB4MGFVTEwKKyNkZWZpbmUgQ09OVFJPTF9JU09DX0VOICAgICAgICAgMHgwYlVMTAorI2RlZmluZSBDT05UUk9MX0NNREJVRl9FTiAgICAgICAweDBjVUxMCisjZGVmaW5lIENPTlRST0xfUFBGTE9HX0VOICAgICAgIDB4MGRVTEwKKyNkZWZpbmUgQ09OVFJPTF9QUEZJTlRfRU4gICAgICAgMHgwZVVMTAorCisvKiBjb21tYW5kIHNwZWNpZmljIGRlZmluZXMgKi8KKyNkZWZpbmUgQ01EX0NPTVBMX1dBSVQgICAgICAgICAgMHgwMQorI2RlZmluZSBDTURfSU5WX0RFVl9FTlRSWSAgICAgICAweDAyCisjZGVmaW5lIENNRF9JTlZfSU9NTVVfUEFHRVMgICAgIDB4MDMKKworI2RlZmluZSBDTURfQ09NUExfV0FJVF9TVE9SRV9NQVNLCTB4MDEKKyNkZWZpbmUgQ01EX0lOVl9JT01NVV9QQUdFU19TSVpFX01BU0sJMHgwMQorI2RlZmluZSBDTURfSU5WX0lPTU1VX1BBR0VTX1BERV9NQVNLCTB4MDIKKworI2RlZmluZSBDTURfSU5WX0lPTU1VX0FMTF9QQUdFU19BRERSRVNTCTB4N2ZmZmZmZmZmZmZmZmZmZlVMTAorCisvKiBtYWNyb3MgYW5kIGRlZmluaXRpb25zIGZvciBkZXZpY2UgdGFibGUgZW50cmllcyAqLworI2RlZmluZSBERVZfRU5UUllfVkFMSUQgICAgICAgICAweDAwCisjZGVmaW5lIERFVl9FTlRSWV9UUkFOU0xBVElPTiAgIDB4MDEKKyNkZWZpbmUgREVWX0VOVFJZX0lSICAgICAgICAgICAgMHgzZAorI2RlZmluZSBERVZfRU5UUllfSVcgICAgICAgICAgICAweDNlCisjZGVmaW5lIERFVl9FTlRSWV9FWCAgICAgICAgICAgIDB4NjcKKyNkZWZpbmUgREVWX0VOVFJZX1NZU01HVDEgICAgICAgMHg2OAorI2RlZmluZSBERVZfRU5UUllfU1lTTUdUMiAgICAgICAweDY5CisjZGVmaW5lIERFVl9FTlRSWV9JTklUX1BBU1MgICAgIDB4YjgKKyNkZWZpbmUgREVWX0VOVFJZX0VJTlRfUEFTUyAgICAgMHhiOQorI2RlZmluZSBERVZfRU5UUllfTk1JX1BBU1MgICAgICAweGJhCisjZGVmaW5lIERFVl9FTlRSWV9MSU5UMF9QQVNTICAgIDB4YmUKKyNkZWZpbmUgREVWX0VOVFJZX0xJTlQxX1BBU1MgICAgMHhiZgorCisvKiBjb25zdGFudHMgdG8gY29uZmlndXJlIHRoZSBjb21tYW5kIGJ1ZmZlciAqLworI2RlZmluZSBDTURfQlVGRkVSX1NJWkUgICAgODE5MgorI2RlZmluZSBDTURfQlVGRkVSX0VOVFJJRVMgNTEyCisjZGVmaW5lIE1NSU9fQ01EX1NJWkVfU0hJRlQgNTYKKyNkZWZpbmUgTU1JT19DTURfU0laRV81MTIgKDB4OVVMTCA8PCBNTUlPX0NNRF9TSVpFX1NISUZUKQorCisjZGVmaW5lIFBBR0VfTU9ERV8xX0xFVkVMIDB4MDEKKyNkZWZpbmUgUEFHRV9NT0RFXzJfTEVWRUwgMHgwMgorI2RlZmluZSBQQUdFX01PREVfM19MRVZFTCAweDAzCisKKyNkZWZpbmUgSU9NTVVfUERFX05MXzAgICAweDAwMFVMTAorI2RlZmluZSBJT01NVV9QREVfTkxfMSAgIDB4MjAwVUxMCisjZGVmaW5lIElPTU1VX1BERV9OTF8yICAgMHg0MDBVTEwKKyNkZWZpbmUgSU9NTVVfUERFX05MXzMgICAweDYwMFVMTAorCisjZGVmaW5lIElPTU1VX1BURV9MMl9JTkRFWChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiAzMCkgJiAweDFmZlVMTCkKKyNkZWZpbmUgSU9NTVVfUFRFX0wxX0lOREVYKGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IDIxKSAmIDB4MWZmVUxMKQorI2RlZmluZSBJT01NVV9QVEVfTDBfSU5ERVgoYWRkcmVzcykgKCgoYWRkcmVzcykgPj4gMTIpICYgMHgxZmZVTEwpCisKKyNkZWZpbmUgSU9NTVVfTUFQX1NJWkVfTDEgKDFVTEwgPDwgMjEpCisjZGVmaW5lIElPTU1VX01BUF9TSVpFX0wyICgxVUxMIDw8IDMwKQorI2RlZmluZSBJT01NVV9NQVBfU0laRV9MMyAoMVVMTCA8PCAzOSkKKworI2RlZmluZSBJT01NVV9QVEVfUCAgKDFVTEwgPDwgMCkKKyNkZWZpbmUgSU9NTVVfUFRFX1UgICgxVUxMIDw8IDU5KQorI2RlZmluZSBJT01NVV9QVEVfRkMgKDFVTEwgPDwgNjApCisjZGVmaW5lIElPTU1VX1BURV9JUiAoMVVMTCA8PCA2MSkKKyNkZWZpbmUgSU9NTVVfUFRFX0lXICgxVUxMIDw8IDYyKQorCisjZGVmaW5lIElPTU1VX0wxX1BERShhZGRyZXNzKSBcCisJKChhZGRyZXNzKSB8IElPTU1VX1BERV9OTF8xIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVcpCisjZGVmaW5lIElPTU1VX0wyX1BERShhZGRyZXNzKSBcCisJKChhZGRyZXNzKSB8IElPTU1VX1BERV9OTF8yIHwgSU9NTVVfUFRFX1AgfCBJT01NVV9QVEVfSVIgfCBJT01NVV9QVEVfSVcpCisKKyNkZWZpbmUgSU9NTVVfUEFHRV9NQVNLICgoKDFVTEwgPDwgNTIpIC0gMSkgJiB+MHhmZmZVTEwpCisjZGVmaW5lIElPTU1VX1BURV9QUkVTRU5UKHB0ZSkgKChwdGUpICYgSU9NTVVfUFRFX1ApCisjZGVmaW5lIElPTU1VX1BURV9QQUdFKHB0ZSkgKHBoeXNfdG9fdmlydCgocHRlKSAmIElPTU1VX1BBR0VfTUFTSykpCisjZGVmaW5lIElPTU1VX1BURV9NT0RFKHB0ZSkgKCgocHRlKSA+PiA5KSAmIDB4MDcpCisKKyNkZWZpbmUgSU9NTVVfUFJPVF9NQVNLIDB4MDMKKyNkZWZpbmUgSU9NTVVfUFJPVF9JUiAweDAxCisjZGVmaW5lIElPTU1VX1BST1RfSVcgMHgwMgorCisvKiBJT01NVSBjYXBhYmlsaXRpZXMgKi8KKyNkZWZpbmUgSU9NTVVfQ0FQX0lPVExCICAgMjQKKyNkZWZpbmUgSU9NTVVfQ0FQX05QQ0FDSEUgMjYKKworI2RlZmluZSBNQVhfRE9NQUlOX0lEIDY1NTM2CisKK3N0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiB7CisJc3BpbmxvY2tfdCBsb2NrOworCXUxNiBpZDsKKwlpbnQgbW9kZTsKKwl1NjQgKnB0X3Jvb3Q7CisJdm9pZCAqcHJpdjsKK307CisKK3N0cnVjdCBkbWFfb3BzX2RvbWFpbiB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXN0cnVjdCBwcm90ZWN0aW9uX2RvbWFpbiBkb21haW47CisJdW5zaWduZWQgbG9uZyBhcGVydHVyZV9zaXplOworCXVuc2lnbmVkIGxvbmcgbmV4dF9iaXQ7CisJdW5zaWduZWQgbG9uZyAqYml0bWFwOworCXU2NCAqKnB0ZV9wYWdlczsKK307CisKK3N0cnVjdCBhbWRfaW9tbXUgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKKwlzcGlubG9ja190IGxvY2s7CisKKwl1MTYgZGV2aWQ7CisJdTE2IGNhcF9wdHI7CisKKwl1NjQgbW1pb19waHlzOworCXU4ICptbWlvX2Jhc2U7CisJdTMyIGNhcDsKKwl1MTYgZmlyc3RfZGV2aWNlOworCXUxNiBsYXN0X2RldmljZTsKKwl1NjQgZXhjbHVzaW9uX3N0YXJ0OworCXU2NCBleGNsdXNpb25fbGVuZ3RoOworCisJdTggKmNtZF9idWY7CisJdTMyIGNtZF9idWZfc2l6ZTsKKworCWludCBuZWVkX3N5bmM7CisKKwlzdHJ1Y3QgZG1hX29wc19kb21haW4gKmRlZmF1bHRfZG9tOworfTsKKworZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYW1kX2lvbW11X2xpc3Q7CisKK3N0cnVjdCBkZXZfdGFibGVfZW50cnkgeworCXUzMiBkYXRhWzhdOworfTsKKworc3RydWN0IHVuaXR5X21hcF9lbnRyeSB7CisJc3RydWN0IGxpc3RfaGVhZCBsaXN0OworCXUxNiBkZXZpZF9zdGFydDsKKwl1MTYgZGV2aWRfZW5kOworCXU2NCBhZGRyZXNzX3N0YXJ0OworCXU2NCBhZGRyZXNzX2VuZDsKKwlpbnQgcHJvdDsKK307CisKK2V4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGFtZF9pb21tdV91bml0eV9tYXA7CisKKy8qIGRhdGEgc3RydWN0dXJlcyBmb3IgZGV2aWNlIGhhbmRsaW5nICovCitleHRlcm4gc3RydWN0IGRldl90YWJsZV9lbnRyeSAqYW1kX2lvbW11X2Rldl90YWJsZTsKK2V4dGVybiB1MTYgKmFtZF9pb21tdV9hbGlhc190YWJsZTsKK2V4dGVybiBzdHJ1Y3QgYW1kX2lvbW11ICoqYW1kX2lvbW11X3Jsb29rdXBfdGFibGU7CisKK2V4dGVybiB1bnNpZ25lZCBhbWRfaW9tbXVfYXBlcnR1cmVfb3JkZXI7CisKK2V4dGVybiB1MTYgYW1kX2lvbW11X2xhc3RfYmRmOworCisvKiBkYXRhIHN0cnVjdHVyZXMgZm9yIHByb3RlY3Rpb24gZG9tYWluIGhhbmRsaW5nICovCitleHRlcm4gc3RydWN0IHByb3RlY3Rpb25fZG9tYWluICoqYW1kX2lvbW11X3BkX3RhYmxlOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKmFtZF9pb21tdV9wZF9hbGxvY19iaXRtYXA7CisKK2V4dGVybiBpbnQgYW1kX2lvbW11X2lzb2xhdGU7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwcmludF9kZXZpZCh1MTYgZGV2aWQsIGludCBubCkKK3sKKwlpbnQgYnVzID0gZGV2aWQgPj4gODsKKwlpbnQgZGV2ID0gZGV2aWQgPj4gMyAmIDB4MWY7CisJaW50IGZuICA9IGRldmlkICYgMHgwNzsKKworCXByaW50aygiJTAyeDolMDJ4LiV4IiwgYnVzLCBkZXYsIGZuKTsKKwlpZiAobmwpCisJCXByaW50aygiXG4iKTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L2FwaWMuaAppbmRleCBiZTk2MzlhLi40ZTJjMWU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9hcGljLmgKQEAgLTM2LDE1ICszNiwxMSBAQAogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogCiBleHRlcm4gaW50IGFwaWNfdmVyYm9zaXR5OwotZXh0ZXJuIGludCB0aW1lcl9vdmVyXzgyNTQ7CiBleHRlcm4gaW50IGxvY2FsX2FwaWNfdGltZXJfYzJfb2s7Ci1leHRlcm4gaW50IGxvY2FsX2FwaWNfdGltZXJfZGlzYWJsZWQ7CiAKLWV4dGVybiBpbnQgYXBpY19ydW5zX21haW5fdGltZXI7CiBleHRlcm4gaW50IGlvYXBpY19mb3JjZTsKLWV4dGVybiBpbnQgZGlzYWJsZV9hcGljOwotZXh0ZXJuIGludCBkaXNhYmxlX2FwaWNfdGltZXI7CiAKK2V4dGVybiBpbnQgZGlzYWJsZV9hcGljOwogLyoKICAqIEJhc2ljIGZ1bmN0aW9ucyBhY2Nlc3NpbmcgQVBJQ3MuCiAgKi8KQEAgLTEyNSwxNiArMTIxLDIyIEBACiAgKi8KICNpZmRlZiBDT05GSUdfWDg2XzY0CiBleHRlcm4gdm9pZCBlYXJseV9pbml0X2xhcGljX21hcHBpbmcodm9pZCk7CitleHRlcm4gaW50IGFwaWNfaXNfY2x1c3RlcmVkX2JveCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBhcGljX2lzX2NsdXN0ZXJlZF9ib3godm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KICNlbmRpZgogCiBleHRlcm4gdTggc2V0dXBfQVBJQ19laWx2dF9tY2UodTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CiBleHRlcm4gdTggc2V0dXBfQVBJQ19laWx2dF9pYnModTggdmVjdG9yLCB1OCBtc2dfdHlwZSwgdTggbWFzayk7CiAKLWV4dGVybiBpbnQgYXBpY19pc19jbHVzdGVyZWRfYm94KHZvaWQpOwogCiAjZWxzZSAvKiAhQ09ORklHX1g4Nl9MT0NBTF9BUElDICovCiBzdGF0aWMgaW5saW5lIHZvaWQgbGFwaWNfc2h1dGRvd24odm9pZCkgeyB9CiAjZGVmaW5lIGxvY2FsX2FwaWNfdGltZXJfYzJfb2sJCTEKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2FwaWNfbWFwcGluZ3Modm9pZCkgeyB9CiAKICNlbmRpZiAvKiAhQ09ORklHX1g4Nl9MT0NBTF9BUElDICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hc20uaCBiL2luY2x1ZGUvYXNtLXg4Ni9hc20uaAppbmRleCA5MGRlYzBjLi45NzIyMDMyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXNtLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2FzbS5oCkBAIC0xLDM3ICsxLDQwIEBACiAjaWZuZGVmIF9BU01fWDg2X0FTTV9ICiAjZGVmaW5lIF9BU01fWDg2X0FTTV9ICiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0vKiAzMiBiaXRzICovCi0KLSMgZGVmaW5lIF9BU01fUFRSCSIgLmxvbmcgIgotIyBkZWZpbmUgX0FTTV9BTElHTgkiIC5iYWxpZ24gNCAiCi0jIGRlZmluZSBfQVNNX01PVl9VTAkiIG1vdmwgIgotCi0jIGRlZmluZSBfQVNNX0lOQwkiIGluY2wgIgotIyBkZWZpbmUgX0FTTV9ERUMJIiBkZWNsICIKLSMgZGVmaW5lIF9BU01fQURECSIgYWRkbCAiCi0jIGRlZmluZSBfQVNNX1NVQgkiIHN1YmwgIgotIyBkZWZpbmUgX0FTTV9YQURECSIgeGFkZGwgIgotCisjaWZkZWYgX19BU1NFTUJMWV9fCisjIGRlZmluZSBfX0FTTV9GT1JNKHgpCXgKKyMgZGVmaW5lIF9fQVNNX0VYX1NFQwkuc2VjdGlvbiBfX2V4X3RhYmxlCiAjZWxzZQotLyogNjQgYml0cyAqLworIyBkZWZpbmUgX19BU01fRk9STSh4KQkiICIgI3ggIiAiCisjIGRlZmluZSBfX0FTTV9FWF9TRUMJIiAuc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iCisjZW5kaWYKIAotIyBkZWZpbmUgX0FTTV9QVFIJIiAucXVhZCAiCi0jIGRlZmluZSBfQVNNX0FMSUdOCSIgLmJhbGlnbiA4ICIKLSMgZGVmaW5lIF9BU01fTU9WX1VMCSIgbW92cSAiCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorIyBkZWZpbmUgX19BU01fU0VMKGEsYikgX19BU01fRk9STShhKQorI2Vsc2UKKyMgZGVmaW5lIF9fQVNNX1NFTChhLGIpIF9fQVNNX0ZPUk0oYikKKyNlbmRpZgogCi0jIGRlZmluZSBfQVNNX0lOQwkiIGluY3EgIgotIyBkZWZpbmUgX0FTTV9ERUMJIiBkZWNxICIKLSMgZGVmaW5lIF9BU01fQURECSIgYWRkcSAiCi0jIGRlZmluZSBfQVNNX1NVQgkiIHN1YnEgIgotIyBkZWZpbmUgX0FTTV9YQURECSIgeGFkZHEgIgorI2RlZmluZSBfX0FTTV9TSVpFKGluc3QpCV9fQVNNX1NFTChpbnN0IyNsLCBpbnN0IyNxKQorI2RlZmluZSBfX0FTTV9SRUcocmVnKQkJX19BU01fU0VMKGUjI3JlZywgciMjcmVnKQogCi0jZW5kaWYgLyogQ09ORklHX1g4Nl8zMiAqLworI2RlZmluZSBfQVNNX1BUUglfX0FTTV9TRUwoLmxvbmcsIC5xdWFkKQorI2RlZmluZSBfQVNNX0FMSUdOCV9fQVNNX1NFTCguYmFsaWduIDQsIC5iYWxpZ24gOCkKKyNkZWZpbmUgX0FTTV9NT1ZfVUwJX19BU01fU0laRShtb3YpCisKKyNkZWZpbmUgX0FTTV9JTkMJX19BU01fU0laRShpbmMpCisjZGVmaW5lIF9BU01fREVDCV9fQVNNX1NJWkUoZGVjKQorI2RlZmluZSBfQVNNX0FERAlfX0FTTV9TSVpFKGFkZCkKKyNkZWZpbmUgX0FTTV9TVUIJX19BU01fU0laRShzdWIpCisjZGVmaW5lIF9BU01fWEFERAlfX0FTTV9TSVpFKHhhZGQpCisjZGVmaW5lIF9BU01fQVgJCV9fQVNNX1JFRyhheCkKKyNkZWZpbmUgX0FTTV9CWAkJX19BU01fUkVHKGJ4KQorI2RlZmluZSBfQVNNX0NYCQlfX0FTTV9SRUcoY3gpCisjZGVmaW5lIF9BU01fRFgJCV9fQVNNX1JFRyhkeCkKIAogLyogRXhjZXB0aW9uIHRhYmxlIGVudHJ5ICovCiAjIGRlZmluZSBfQVNNX0VYVEFCTEUoZnJvbSx0bykgXAotCSIgLnNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIiBcCisJX19BU01fRVhfU0VDCVwKIAlfQVNNX0FMSUdOICJcbiIgXAogCV9BU01fUFRSICNmcm9tICIsIiAjdG8gIlxuIiBcCiAJIiAucHJldmlvdXNcbiIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9hdG9taWNfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9hdG9taWNfNjQuaAppbmRleCAzZTBjZDdkLi5hMDA5NTE5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYXRvbWljXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2F0b21pY182NC5oCkBAIC0xMSwxMiArMTEsNiBAQAogICogcmVzb3VyY2UgY291bnRpbmcgZXRjLi4KICAqLwogCi0jaWZkZWYgQ09ORklHX1NNUAotI2RlZmluZSBMT0NLICJsb2NrIDsgIgotI2Vsc2UKLSNkZWZpbmUgTE9DSyAiIgotI2VuZGlmCi0KIC8qCiAgKiBNYWtlIHN1cmUgZ2NjIGRvZXNuJ3QgdHJ5IHRvIGJlIGNsZXZlciBhbmQgbW92ZSB0aGluZ3MgYXJvdW5kCiAgKiBvbiB1cy4gV2UgbmVlZCB0byB1c2UgX2V4YWN0bHlfIHRoZSBhZGRyZXNzIHRoZSB1c2VyIGdhdmUgdXMsCkBAIC00MzEsNiArNDI1LDMyIEBACiAJcmV0dXJuIGMgIT0gKHUpOwogfQogCisvKioKKyAqIGF0b21pY19pbmNfc2hvcnQgLSBpbmNyZW1lbnQgb2YgYSBzaG9ydCBpbnRlZ2VyCisgKiBAdjogcG9pbnRlciB0byB0eXBlIGludAorICoKKyAqIEF0b21pY2FsbHkgYWRkcyAxIHRvIEB2CisgKiBSZXR1cm5zIHRoZSBuZXcgdmFsdWUgb2YgQHUKKyAqLworc3RhdGljIGlubGluZSBzaG9ydCBpbnQgYXRvbWljX2luY19zaG9ydChzaG9ydCBpbnQgKnYpCit7CisJYXNtKExPQ0tfUFJFRklYICJhZGR3ICQxLCAlMCIgOiAiK20iICgqdikpOworCXJldHVybiAqdjsKK30KKworLyoqCisgKiBhdG9taWNfb3JfbG9uZyAtIE9SIG9mIHR3byBsb25nIGludGVnZXJzCisgKiBAdjE6IHBvaW50ZXIgdG8gdHlwZSB1bnNpZ25lZCBsb25nCisgKiBAdjI6IHBvaW50ZXIgdG8gdHlwZSB1bnNpZ25lZCBsb25nCisgKgorICogQXRvbWljYWxseSBPUnMgQHYxIGFuZCBAdjIKKyAqIFJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgT1IKKyAqLworc3RhdGljIGlubGluZSB2b2lkIGF0b21pY19vcl9sb25nKHVuc2lnbmVkIGxvbmcgKnYxLCB1bnNpZ25lZCBsb25nIHYyKQoreworCWFzbShMT0NLX1BSRUZJWCAib3JxICUxLCAlMCIgOiAiK20iICgqdjEpIDogInIiICh2MikpOworfQorCiAjZGVmaW5lIGF0b21pYzY0X2luY19ub3RfemVybyh2KSBhdG9taWM2NF9hZGRfdW5sZXNzKCh2KSwgMSwgMCkKIAogLyogVGhlc2UgYXJlIHg4Ni1zcGVjaWZpYywgdXNlZCBieSBzb21lIGhlYWRlciBmaWxlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2Jpb3NfZWJkYS5oIGIvaW5jbHVkZS9hc20teDg2L2Jpb3NfZWJkYS5oCmluZGV4IGI0YTQ2YjcuLjAwMzNlNTAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9iaW9zX2ViZGEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvYmlvc19lYmRhLmgKQEAgLTE0LDQgKzE0LDYgQEAKIAlyZXR1cm4gYWRkcmVzczsJLyogMCBtZWFucyBub25lICovCiB9CiAKK3ZvaWQgcmVzZXJ2ZV9lYmRhX3JlZ2lvbih2b2lkKTsKKwogI2VuZGlmIC8qIF9NQUNIX0JJT1NfRUJEQV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvYml0b3BzLmggYi9pbmNsdWRlL2FzbS14ODYvYml0b3BzLmgKaW5kZXggZWU0YjNlYS4uOTZiMTgyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2JpdG9wcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9iaXRvcHMuaApAQCAtMjMsMTEgKzIzLDIxIEBACiAjaWYgX19HTlVDX18gPCA0IHx8IChfX0dOVUNfXyA9PSA0ICYmIF9fR05VQ19NSU5PUl9fIDwgMSkKIC8qIFRlY2huaWNhbGx5IHdyb25nLCBidXQgdGhpcyBhdm9pZHMgY29tcGlsYXRpb24gZXJyb3JzIG9uIHNvbWUgZ2NjCiAgICB2ZXJzaW9ucy4gKi8KLSNkZWZpbmUgQUREUiAiPW0iICgqKHZvbGF0aWxlIGxvbmcgKikgYWRkcikKKyNkZWZpbmUgQklUT1BfQUREUih4KSAiPW0iICgqKHZvbGF0aWxlIGxvbmcgKikgKHgpKQogI2Vsc2UKLSNkZWZpbmUgQUREUiAiK20iICgqKHZvbGF0aWxlIGxvbmcgKikgYWRkcikKKyNkZWZpbmUgQklUT1BfQUREUih4KSAiK20iICgqKHZvbGF0aWxlIGxvbmcgKikgKHgpKQogI2VuZGlmCiAKKyNkZWZpbmUgQUREUgkJCQlCSVRPUF9BRERSKGFkZHIpCisKKy8qCisgKiBXZSBkbyB0aGUgbG9ja2VkIG9wcyB0aGF0IGRvbid0IHJldHVybiB0aGUgb2xkIHZhbHVlIGFzCisgKiBhIG1hc2sgb3BlcmF0aW9uIG9uIGEgYnl0ZS4KKyAqLworI2RlZmluZSBJU19JTU1FRElBVEUobnIpCQkoX19idWlsdGluX2NvbnN0YW50X3AobnIpKQorI2RlZmluZSBDT05TVF9NQVNLX0FERFIobnIsIGFkZHIpCUJJVE9QX0FERFIoKHZvaWQgKikoYWRkcikgKyAoKG5yKT4+MykpCisjZGVmaW5lIENPTlNUX01BU0sobnIpCQkJKDEgPDwgKChucikgJiA3KSkKKwogLyoqCiAgKiBzZXRfYml0IC0gQXRvbWljYWxseSBzZXQgYSBiaXQgaW4gbWVtb3J5CiAgKiBAbnI6IHRoZSBiaXQgdG8gc2V0CkBAIC00Myw5ICs1MywxNyBAQAogICogTm90ZSB0aGF0IEBuciBtYXkgYmUgYWxtb3N0IGFyYml0cmFyaWx5IGxhcmdlOyB0aGlzIGZ1bmN0aW9uIGlzIG5vdAogICogcmVzdHJpY3RlZCB0byBhY3Rpbmcgb24gYSBzaW5nbGUtd29yZCBxdWFudGl0eS4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIHNldF9iaXQodW5zaWduZWQgaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewotCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRzICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikgOiAibWVtb3J5Iik7CisJaWYgKElTX0lNTUVESUFURShucikpIHsKKwkJYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJvcmIgJTEsJTAiCisJCQk6IENPTlNUX01BU0tfQUREUihuciwgYWRkcikKKwkJCTogImlxIiAoKHU4KUNPTlNUX01BU0sobnIpKQorCQkJOiAibWVtb3J5Iik7CisJfSBlbHNlIHsKKwkJYXNtIHZvbGF0aWxlKExPQ0tfUFJFRklYICJidHMgJTEsJTAiCisJCQk6IEJJVE9QX0FERFIoYWRkcikgOiAiSXIiIChucikgOiAibWVtb3J5Iik7CisJfQogfQogCiAvKioKQEAgLTU3LDcgKzc1LDcgQEAKICAqIElmIGl0J3MgY2FsbGVkIG9uIHRoZSBzYW1lIHJlZ2lvbiBvZiBtZW1vcnkgc2ltdWx0YW5lb3VzbHksIHRoZSBlZmZlY3QKICAqIG1heSBiZSB0aGF0IG9ubHkgb25lIG9wZXJhdGlvbiBzdWNjZWVkcy4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlhc20gdm9sYXRpbGUoImJ0cyAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpIDogIm1lbW9yeSIpOwogfQpAQCAtNzIsOSArOTAsMTcgQEAKICAqIHlvdSBzaG91bGQgY2FsbCBzbXBfbWJfX2JlZm9yZV9jbGVhcl9iaXQoKSBhbmQvb3Igc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKQogICogaW4gb3JkZXIgdG8gZW5zdXJlIGNoYW5nZXMgYXJlIHZpc2libGUgb24gb3RoZXIgcHJvY2Vzc29ycy4KICAqLwotc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKLQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImJ0ciAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpKTsKKwlpZiAoSVNfSU1NRURJQVRFKG5yKSkgeworCQlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImFuZGIgJTEsJTAiCisJCQk6IENPTlNUX01BU0tfQUREUihuciwgYWRkcikKKwkJCTogImlxIiAoKHU4KX5DT05TVF9NQVNLKG5yKSkpOworCX0gZWxzZSB7CisJCWFzbSB2b2xhdGlsZShMT0NLX1BSRUZJWCAiYnRyICUxLCUwIgorCQkJOiBCSVRPUF9BRERSKGFkZHIpCisJCQk6ICJJciIgKG5yKSk7CisJfQogfQogCiAvKgpAQCAtODUsMTMgKzExMSwxMyBAQAogICogY2xlYXJfYml0KCkgaXMgYXRvbWljIGFuZCBpbXBsaWVzIHJlbGVhc2Ugc2VtYW50aWNzIGJlZm9yZSB0aGUgbWVtb3J5CiAgKiBvcGVyYXRpb24uIEl0IGNhbiBiZSB1c2VkIGZvciBhbiB1bmxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9iaXRfdW5sb2NrKHVuc2lnbmVkIG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX2JpdF91bmxvY2sodW5zaWduZWQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJYmFycmllcigpOwogCWNsZWFyX2JpdChuciwgYWRkcik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NsZWFyX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgX19jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWFzbSB2b2xhdGlsZSgiYnRyICUxLCUwIiA6IEFERFIgOiAiSXIiIChucikpOwogfQpAQCAtMTA4LDcgKzEzNCw3IEBACiAgKiBObyBtZW1vcnkgYmFycmllciBpcyByZXF1aXJlZCBoZXJlLCBiZWNhdXNlIHg4NiBjYW5ub3QgcmVvcmRlciBzdG9yZXMgcGFzdAogICogb2xkZXIgbG9hZHMuIFNhbWUgcHJpbmNpcGxlIGFzIHNwaW5fdW5sb2NrLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgX19jbGVhcl9iaXRfdW5sb2NrKHVuc2lnbmVkIG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIF9fY2xlYXJfYml0X3VubG9jayh1bnNpZ25lZCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAliYXJyaWVyKCk7CiAJX19jbGVhcl9iaXQobnIsIGFkZHIpOwpAQCAtMTI2LDcgKzE1Miw3IEBACiAgKiBJZiBpdCdzIGNhbGxlZCBvbiB0aGUgc2FtZSByZWdpb24gb2YgbWVtb3J5IHNpbXVsdGFuZW91c2x5LCB0aGUgZWZmZWN0CiAgKiBtYXkgYmUgdGhhdCBvbmx5IG9uZSBvcGVyYXRpb24gc3VjY2VlZHMuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBfX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSB2b2lkIF9fY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJYXNtIHZvbGF0aWxlKCJidGMgJTEsJTAiIDogQUREUiA6ICJJciIgKG5yKSk7CiB9CkBAIC0xNDAsNyArMTY2LDcgQEAKICAqIE5vdGUgdGhhdCBAbnIgbWF5IGJlIGFsbW9zdCBhcmJpdHJhcmlseSBsYXJnZTsgdGhpcyBmdW5jdGlvbiBpcyBub3QKICAqIHJlc3RyaWN0ZWQgdG8gYWN0aW5nIG9uIGEgc2luZ2xlLXdvcmQgcXVhbnRpdHkuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlhc20gdm9sYXRpbGUoTE9DS19QUkVGSVggImJ0YyAlMSwlMCIgOiBBRERSIDogIklyIiAobnIpKTsKIH0KQEAgLTE1Myw3ICsxNzksNyBAQAogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApAQCAtMTcwLDcgKzE5Niw3IEBACiAgKgogICogVGhpcyBpcyB0aGUgc2FtZSBhcyB0ZXN0X2FuZF9zZXRfYml0IG9uIHg4Ni4KICAqLwotc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfc2V0X2JpdF9sb2NrKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX3NldF9iaXRfbG9jayhpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJcmV0dXJuIHRlc3RfYW5kX3NldF9iaXQobnIsIGFkZHIpOwogfQpAQCAtMTg0LDcgKzIxMCw3IEBACiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBlYXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCi1zdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX3NldF9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgX190ZXN0X2FuZF9zZXRfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMDMsNyArMjI5LDcgQEAKICAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4KICAqIEl0IGFsc28gaW1wbGllcyBhIG1lbW9yeSBiYXJyaWVyLgogICovCi1zdGF0aWMgaW5saW5lIGludCB0ZXN0X2FuZF9jbGVhcl9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMjMsNyArMjQ5LDcgQEAKICAqIElmIHR3byBleGFtcGxlcyBvZiB0aGlzIG9wZXJhdGlvbiByYWNlLCBvbmUgY2FuIGFwcGVhciB0byBzdWNjZWVkCiAgKiBidXQgYWN0dWFsbHkgZmFpbC4gIFlvdSBtdXN0IHByb3RlY3QgbXVsdGlwbGUgYWNjZXNzZXMgd2l0aCBhIGxvY2suCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKK3N0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdW5zaWduZWQgbG9uZyAqYWRkcikKIHsKIAlpbnQgb2xkYml0OwogCkBAIC0yMzUsNyArMjYxLDcgQEAKIH0KIAogLyogV0FSTklORzogbm9uIGF0b21pYyBhbmQgaXQgY2FuIGJlIHJlb3JkZXJlZCEgKi8KLXN0YXRpYyBpbmxpbmUgaW50IF9fdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBfX3Rlc3RfYW5kX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKQEAgLTI1NSw3ICsyODEsNyBAQAogICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHRlc3RfYW5kX2NoYW5nZV9iaXQoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdGVzdF9hbmRfY2hhbmdlX2JpdChpbnQgbnIsIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJaW50IG9sZGJpdDsKIApAQCAtMjY2LDEzICsyOTIsMTMgQEAKIAlyZXR1cm4gb2xkYml0OwogfQogCi1zdGF0aWMgaW5saW5lIGludCBjb25zdGFudF90ZXN0X2JpdChpbnQgbnIsIGNvbnN0IHZvbGF0aWxlIHZvaWQgKmFkZHIpCitzdGF0aWMgaW5saW5lIGludCBjb25zdGFudF90ZXN0X2JpdChpbnQgbnIsIGNvbnN0IHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKmFkZHIpCiB7CiAJcmV0dXJuICgoMVVMIDw8IChuciAlIEJJVFNfUEVSX0xPTkcpKSAmCiAJCSgoKHVuc2lnbmVkIGxvbmcgKilhZGRyKVtuciAvIEJJVFNfUEVSX0xPTkddKSkgIT0gMDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLCB2b2xhdGlsZSBjb25zdCB2b2lkICphZGRyKQorc3RhdGljIGlubGluZSBpbnQgdmFyaWFibGVfdGVzdF9iaXQoaW50IG5yLCB2b2xhdGlsZSBjb25zdCB1bnNpZ25lZCBsb25nICphZGRyKQogewogCWludCBvbGRiaXQ7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ib290cGFyYW0uaCBiL2luY2x1ZGUvYXNtLXg4Ni9ib290cGFyYW0uaAppbmRleCBmNjJmNDczLi5hZTIyYmRmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvYm9vdHBhcmFtLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2Jvb3RwYXJhbS5oCkBAIC0xMSw2ICsxMSw3IEBACiAKIC8qIHNldHVwIGRhdGEgdHlwZXMgKi8KICNkZWZpbmUgU0VUVVBfTk9ORQkJCTAKKyNkZWZpbmUgU0VUVVBfRTgyMF9FWFQJCQkxCiAKIC8qIGV4dGVuc2libGUgc2V0dXAgZGF0YSBsaXN0IG5vZGUgKi8KIHN0cnVjdCBzZXR1cF9kYXRhIHsKQEAgLTQwLDYgKzQxLDcgQEAKIAlfX3U4CXR5cGVfb2ZfbG9hZGVyOwogCV9fdTgJbG9hZGZsYWdzOwogI2RlZmluZSBMT0FERURfSElHSAkoMTw8MCkKKyNkZWZpbmUgUVVJRVRfRkxBRwkoMTw8NSkKICNkZWZpbmUgS0VFUF9TRUdNRU5UUwkoMTw8NikKICNkZWZpbmUgQ0FOX1VTRV9IRUFQCSgxPDw3KQogCV9fdTE2CXNldHVwX21vdmVfc2l6ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jbXB4Y2hnXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvY21weGNoZ182NC5oCmluZGV4IGQ5YjI2YjkuLjE3NDYzY2NmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvY21weGNoZ182NC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9jbXB4Y2hnXzY0LmgKQEAgLTkzLDYgKzkzLDM5IEBACiAJcmV0dXJuIG9sZDsKIH0KIAorLyoKKyAqIEFsd2F5cyB1c2UgbG9ja2VkIG9wZXJhdGlvbnMgd2hlbiB0b3VjaGluZyBtZW1vcnkgc2hhcmVkIHdpdGggYQorICogaHlwZXJ2aXNvciwgc2luY2UgdGhlIHN5c3RlbSBtYXkgYmUgU01QIGV2ZW4gaWYgdGhlIGd1ZXN0IGtlcm5lbAorICogaXNuJ3QuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX3N5bmNfY21weGNoZyh2b2xhdGlsZSB2b2lkICpwdHIsCisJCQkJCSAgIHVuc2lnbmVkIGxvbmcgb2xkLAorCQkJCQkgICB1bnNpZ25lZCBsb25nIG5ldywgaW50IHNpemUpCit7CisJdW5zaWduZWQgbG9uZyBwcmV2OworCXN3aXRjaCAoc2l6ZSkgeworCWNhc2UgMToKKwkJYXNtIHZvbGF0aWxlKCJsb2NrOyBjbXB4Y2hnYiAlYjEsJTIiCisJCQkgICAgIDogIj1hIihwcmV2KQorCQkJICAgICA6ICJxIihuZXcpLCAibSIoKl9feGcocHRyKSksICIwIihvbGQpCisJCQkgICAgIDogIm1lbW9yeSIpOworCQlyZXR1cm4gcHJldjsKKwljYXNlIDI6CisJCWFzbSB2b2xhdGlsZSgibG9jazsgY21weGNoZ3cgJXcxLCUyIgorCQkJICAgICA6ICI9YSIocHJldikKKwkJCSAgICAgOiAiciIobmV3KSwgIm0iKCpfX3hnKHB0cikpLCAiMCIob2xkKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHByZXY7CisJY2FzZSA0OgorCQlhc20gdm9sYXRpbGUoImxvY2s7IGNtcHhjaGdsICUxLCUyIgorCQkJICAgICA6ICI9YSIocHJldikKKwkJCSAgICAgOiAiciIobmV3KSwgIm0iKCpfX3hnKHB0cikpLCAiMCIob2xkKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHByZXY7CisJfQorCXJldHVybiBvbGQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX2NtcHhjaGdfbG9jYWwodm9sYXRpbGUgdm9pZCAqcHRyLAogCQkJCQkgICAgdW5zaWduZWQgbG9uZyBvbGQsCiAJCQkJCSAgICB1bnNpZ25lZCBsb25nIG5ldywgaW50IHNpemUpCkBAIC0xMzksNiArMTcyLDEwIEBACiAJKChfX3R5cGVvZl9fKCoocHRyKSkpX19jbXB4Y2hnX2xvY2FsKChwdHIpLCAodW5zaWduZWQgbG9uZykobyksCVwKIAkJCQkJICAgICAodW5zaWduZWQgbG9uZykobiksCVwKIAkJCQkJICAgICBzaXplb2YoKihwdHIpKSkpCisjZGVmaW5lIHN5bmNfY21weGNoZyhwdHIsIG8sIG4pCQkJCQkJXAorCSgoX190eXBlb2ZfXygqKHB0cikpKV9fc3luY19jbXB4Y2hnKChwdHIpLCAodW5zaWduZWQgbG9uZykobyksCVwKKwkJCQkJICAgICh1bnNpZ25lZCBsb25nKShuKSwJCVwKKwkJCQkJICAgIHNpemVvZigqKHB0cikpKSkKICNkZWZpbmUgY21weGNoZzY0X2xvY2FsKHB0ciwgbywgbikJCQkJCVwKICh7CQkJCQkJCQkJXAogCUJVSUxEX0JVR19PTihzaXplb2YoKihwdHIpKSAhPSA4KTsJCQkJXApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlLmgKaW5kZXggMGQ2MDljOC4uNzVlZjk1OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC03NCw4ICs3NCw4IEBACiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0FSQ0hfUEVSRk1PTiAoMyozMisxMSkgLyogSW50ZWwgQXJjaGl0ZWN0dXJhbCBQZXJmTW9uICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX1BFQlMJKDMqMzIrMTIpICAvKiBQcmVjaXNlLUV2ZW50IEJhc2VkIFNhbXBsaW5nICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0JUUwkJKDMqMzIrMTMpICAvKiBCcmFuY2ggVHJhY2UgU3RvcmUgKi8KLS8qIDE0IGZyZWUgKi8KLS8qIDE1IGZyZWUgKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfU1lTQ0FMTDMyCSgzKjMyKzE0KSAgLyogc3lzY2FsbCBpbiBpYTMyIHVzZXJzcGFjZSAqLworI2RlZmluZSBYODZfRkVBVFVSRV9TWVNFTlRFUjMyCSgzKjMyKzE1KSAgLyogc3lzZW50ZXIgaW4gaWEzMiB1c2Vyc3BhY2UgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfUkVQX0dPT0QJKDMqMzIrMTYpIC8qIHJlcCBtaWNyb2NvZGUgd29ya3Mgd2VsbCBvbiB0aGlzIENQVSAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MgKDMqMzIrMTcpIC8qIE1mZW5jZSBzeW5jaHJvbml6ZXMgUkRUU0MgKi8KICNkZWZpbmUgWDg2X0ZFQVRVUkVfTEZFTkNFX1JEVFNDICgzKjMyKzE4KSAvKiBMZmVuY2Ugc3luY2hyb25pemVzIFJEVFNDICovCkBAIC0xMDYsNiArMTA2LDcgQEAKIC8qIE1vcmUgZXh0ZW5kZWQgQU1EIGZsYWdzOiBDUFVJRCBsZXZlbCAweDgwMDAwMDAxLCBlY3gsIHdvcmQgNiAqLwogI2RlZmluZSBYODZfRkVBVFVSRV9MQUhGX0xNCSg2KjMyKyAwKSAvKiBMQUhGL1NBSEYgaW4gbG9uZyBtb2RlICovCiAjZGVmaW5lIFg4Nl9GRUFUVVJFX0NNUF9MRUdBQ1kJKDYqMzIrIDEpIC8qIElmIHllcyBIeXBlclRocmVhZGluZyBub3QgdmFsaWQgKi8KKyNkZWZpbmUgWDg2X0ZFQVRVUkVfSUJTCQkoNiozMisgMTApIC8qIEluc3RydWN0aW9uIEJhc2VkIFNhbXBsaW5nICovCiAKIC8qCiAgKiBBdXhpbGlhcnkgZmxhZ3M6IExpbnV4IGRlZmluZWQgLSBGb3IgZmVhdHVyZXMgc2NhdHRlcmVkIGluIHZhcmlvdXMKQEAgLTE0MiwxMSArMTQzLDExIEBACiAjZGVmaW5lIGNsZWFyX2NwdV9jYXAoYywgYml0KQljbGVhcl9iaXQoYml0LCAodW5zaWduZWQgbG9uZyAqKSgoYyktPng4Nl9jYXBhYmlsaXR5KSkKICNkZWZpbmUgc2V0dXBfY2xlYXJfY3B1X2NhcChiaXQpIGRvIHsgXAogCWNsZWFyX2NwdV9jYXAoJmJvb3RfY3B1X2RhdGEsIGJpdCk7CVwKLQlzZXRfYml0KGJpdCwgY2xlYXJlZF9jcHVfY2Fwcyk7IAlcCisJc2V0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopY2xlYXJlZF9jcHVfY2Fwcyk7IFwKIH0gd2hpbGUgKDApCiAjZGVmaW5lIHNldHVwX2ZvcmNlX2NwdV9jYXAoYml0KSBkbyB7IFwKIAlzZXRfY3B1X2NhcCgmYm9vdF9jcHVfZGF0YSwgYml0KTsJXAotCWNsZWFyX2JpdChiaXQsIGNsZWFyZWRfY3B1X2NhcHMpOyAJXAorCWNsZWFyX2JpdChiaXQsICh1bnNpZ25lZCBsb25nICopY2xlYXJlZF9jcHVfY2Fwcyk7IAlcCiB9IHdoaWxlICgwKQogCiAjZGVmaW5lIGNwdV9oYXNfZnB1CQlib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfRlBVKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKaW5kZXggZDI1MjZkMy4uNzUxNWMxOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCkBAIC0xLDUgKzEsMzkgQEAKKyNpZm5kZWYgX1g4Nl9DVVJSRU5UX0gKKyNkZWZpbmUgX1g4Nl9DVVJSRU5UX0gKKwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAiY3VycmVudF8zMi5oIgotI2Vsc2UKLSMgaW5jbHVkZSAiY3VycmVudF82NC5oIgotI2VuZGlmCisjaW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KKyNpbmNsdWRlIDxhc20vcGVyY3B1Lmg+CisKK3N0cnVjdCB0YXNrX3N0cnVjdDsKKworREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBjdXJyZW50X3Rhc2spOworc3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCit7CisJcmV0dXJuIHg4Nl9yZWFkX3BlcmNwdShjdXJyZW50X3Rhc2spOworfQorCisjZWxzZSAvKiBYODZfMzIgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKyNpbmNsdWRlIDxhc20vcGRhLmg+CisKK3N0cnVjdCB0YXNrX3N0cnVjdDsKKworc3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmdldF9jdXJyZW50KHZvaWQpCit7CisJcmV0dXJuIHJlYWRfcGRhKHBjdXJyZW50KTsKK30KKworI2Vsc2UgLyogX19BU1NFTUJMWV9fICovCisKKyNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KKyNkZWZpbmUgR0VUX0NVUlJFTlQocmVnKSBtb3ZxICVnczoocGRhX3BjdXJyZW50KSxyZWcKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworCisjZW5kaWYgLyogWDg2XzMyICovCisKKyNkZWZpbmUgY3VycmVudCBnZXRfY3VycmVudCgpCisKKyNlbmRpZiAvKiBYODZfQ1VSUkVOVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2N1cnJlbnRfMzIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFmOWJkYi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvY3VycmVudF8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotI2lmbmRlZiBfSTM4Nl9DVVJSRU5UX0gKLSNkZWZpbmUgX0kzODZfQ1VSUkVOVF9ICi0KLSNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgotI2luY2x1ZGUgPGFzbS9wZXJjcHUuaD4KLQotc3RydWN0IHRhc2tfc3RydWN0OwotCi1ERUNMQVJFX1BFUl9DUFUoc3RydWN0IHRhc2tfc3RydWN0ICosIGN1cnJlbnRfdGFzayk7Ci1zdGF0aWMgX19hbHdheXNfaW5saW5lIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ2V0X2N1cnJlbnQodm9pZCkKLXsKLQlyZXR1cm4geDg2X3JlYWRfcGVyY3B1KGN1cnJlbnRfdGFzayk7Ci19Ci0KLSNkZWZpbmUgY3VycmVudCBnZXRfY3VycmVudCgpCi0KLSNlbmRpZiAvKiAhKF9JMzg2X0NVUlJFTlRfSCkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzY0LmggYi9pbmNsdWRlL2FzbS14ODYvY3VycmVudF82NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDM2OGVkLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50XzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jaWZuZGVmIF9YODZfNjRfQ1VSUkVOVF9ICi0jZGVmaW5lIF9YODZfNjRfQ1VSUkVOVF9ICi0KLSNpZiAhZGVmaW5lZChfX0FTU0VNQkxZX18pCi1zdHJ1Y3QgdGFza19zdHJ1Y3Q7Ci0KLSNpbmNsdWRlIDxhc20vcGRhLmg+Ci0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHRhc2tfc3RydWN0ICpnZXRfY3VycmVudCh2b2lkKQotewotCXN0cnVjdCB0YXNrX3N0cnVjdCAqdCA9IHJlYWRfcGRhKHBjdXJyZW50KTsKLQlyZXR1cm4gdDsKLX0KLQotI2RlZmluZSBjdXJyZW50IGdldF9jdXJyZW50KCkKLQotI2Vsc2UKLQotI2lmbmRlZiBBU01fT0ZGU0VUX0gKLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLSNlbmRpZgotCi0jZGVmaW5lIEdFVF9DVVJSRU5UKHJlZykgbW92cSAlZ3M6KHBkYV9wY3VycmVudCkscmVnCi0KLSNlbmRpZgotCi0jZW5kaWYgLyogIShfWDg2XzY0X0NVUlJFTlRfSCkgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmggYi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCmluZGV4IDI2OGEwMTIuLmE0NGM0ZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kZXNjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2Rlc2MuaApAQCAtMjksMTEgKzI5LDE3IEBACiBleHRlcm4gc3RydWN0IGRlc2NfcHRyIGlkdF9kZXNjcjsKIGV4dGVybiBnYXRlX2Rlc2MgaWR0X3RhYmxlW107CiAKK3N0cnVjdCBnZHRfcGFnZSB7CisJc3RydWN0IGRlc2Nfc3RydWN0IGdkdFtHRFRfRU5UUklFU107Cit9IF9fYXR0cmlidXRlX18oKGFsaWduZWQoUEFHRV9TSVpFKSkpOworREVDTEFSRV9QRVJfQ1BVKHN0cnVjdCBnZHRfcGFnZSwgZ2R0X3BhZ2UpOworCitzdGF0aWMgaW5saW5lIHN0cnVjdCBkZXNjX3N0cnVjdCAqZ2V0X2NwdV9nZHRfdGFibGUodW5zaWduZWQgaW50IGNwdSkKK3sKKwlyZXR1cm4gcGVyX2NwdShnZHRfcGFnZSwgY3B1KS5nZHQ7Cit9CisKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci1leHRlcm4gc3RydWN0IGRlc2Nfc3RydWN0IGNwdV9nZHRfdGFibGVbR0RUX0VOVFJJRVNdOwotZXh0ZXJuIHN0cnVjdCBkZXNjX3B0ciBjcHVfZ2R0X2Rlc2NyW107Ci0vKiB0aGUgY3B1IGdkdCBhY2Nlc3NvciAqLwotI2RlZmluZSBnZXRfY3B1X2dkdF90YWJsZSh4KSAoKHN0cnVjdCBkZXNjX3N0cnVjdCAqKWNwdV9nZHRfZGVzY3JbeF0uYWRkcmVzcykKIAogc3RhdGljIGlubGluZSB2b2lkIHBhY2tfZ2F0ZShnYXRlX2Rlc2MgKmdhdGUsIHVuc2lnbmVkIHR5cGUsIHVuc2lnbmVkIGxvbmcgZnVuYywKIAkJCSAgICAgdW5zaWduZWQgZHBsLCB1bnNpZ25lZCBpc3QsIHVuc2lnbmVkIHNlZykKQEAgLTUxLDE2ICs1Nyw2IEBACiB9CiAKICNlbHNlCi1zdHJ1Y3QgZ2R0X3BhZ2UgewotCXN0cnVjdCBkZXNjX3N0cnVjdCBnZHRbR0RUX0VOVFJJRVNdOwotfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKFBBR0VfU0laRSkpKTsKLURFQ0xBUkVfUEVSX0NQVShzdHJ1Y3QgZ2R0X3BhZ2UsIGdkdF9wYWdlKTsKLQotc3RhdGljIGlubGluZSBzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdldF9jcHVfZ2R0X3RhYmxlKHVuc2lnbmVkIGludCBjcHUpCi17Ci0JcmV0dXJuIHBlcl9jcHUoZ2R0X3BhZ2UsIGNwdSkuZ2R0OwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFja19nYXRlKGdhdGVfZGVzYyAqZ2F0ZSwgdW5zaWduZWQgY2hhciB0eXBlLAogCQkJICAgICB1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGRwbCwgdW5zaWduZWQgZmxhZ3MsCiAJCQkgICAgIHVuc2lnbmVkIHNob3J0IHNlZykKQEAgLTE5Miw4ICsxODgsOCBAQAogCQl1bnNpZ25lZCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJCWxkdF9kZXNjIGxkdDsKIAotCQlzZXRfdHNzbGR0X2Rlc2NyaXB0b3IoJmxkdCwgKHVuc2lnbmVkIGxvbmcpYWRkciwKLQkJCQkgICAgICBERVNDX0xEVCwgZW50cmllcyAqIHNpemVvZihsZHQpIC0gMSk7CisJCXNldF90c3NsZHRfZGVzY3JpcHRvcigmbGR0LCAodW5zaWduZWQgbG9uZylhZGRyLCBERVNDX0xEVCwKKwkJCQkgICAgICBlbnRyaWVzICogTERUX0VOVFJZX1NJWkUgLSAxKTsKIAkJd3JpdGVfZ2R0X2VudHJ5KGdldF9jcHVfZ2R0X3RhYmxlKGNwdSksIEdEVF9FTlRSWV9MRFQsCiAJCQkJJmxkdCwgREVTQ19MRFQpOwogCQlhc20gdm9sYXRpbGUoImxsZHQgJXcwIjo6InEiIChHRFRfRU5UUllfTERUKjgpKTsKQEAgLTMxMSw2ICszMDcsMjggQEAKIAlfc2V0X2dhdGUobiwgR0FURV9JTlRFUlJVUFQsIGFkZHIsIDAsIDAsIF9fS0VSTkVMX0NTKTsKIH0KIAorI2RlZmluZSBTWVNfVkVDVE9SX0ZSRUUJCTAKKyNkZWZpbmUgU1lTX1ZFQ1RPUl9BTExPQ0VECTEKKworZXh0ZXJuIGludCBmaXJzdF9zeXN0ZW1fdmVjdG9yOworZXh0ZXJuIGNoYXIgc3lzdGVtX3ZlY3RvcnNbXTsKKworc3RhdGljIGlubGluZSB2b2lkIGFsbG9jX3N5c3RlbV92ZWN0b3IoaW50IHZlY3RvcikKK3sKKwlpZiAoc3lzdGVtX3ZlY3RvcnNbdmVjdG9yXSA9PSBTWVNfVkVDVE9SX0ZSRUUpIHsKKwkJc3lzdGVtX3ZlY3RvcnNbdmVjdG9yXSA9IFNZU19WRUNUT1JfQUxMT0NFRDsKKwkJaWYgKGZpcnN0X3N5c3RlbV92ZWN0b3IgPiB2ZWN0b3IpCisJCQlmaXJzdF9zeXN0ZW1fdmVjdG9yID0gdmVjdG9yOworCX0gZWxzZQorCQlCVUcoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFsbG9jX2ludHJfZ2F0ZSh1bnNpZ25lZCBpbnQgbiwgdm9pZCAqYWRkcikKK3sKKwlhbGxvY19zeXN0ZW1fdmVjdG9yKG4pOworCXNldF9pbnRyX2dhdGUobiwgYWRkcik7Cit9CisKIC8qCiAgKiBUaGlzIHJvdXRpbmUgc2V0cyB1cCBhbiBpbnRlcnJ1cHQgZ2F0ZSBhdCBkaXJlY3RvcnkgcHJpdmlsZWdlIGxldmVsIDMuCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kZXNjX2RlZnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kZXNjX2RlZnMuaAppbmRleCBlY2NiNGVhLi5mN2JhY2YzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZGVzY19kZWZzLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2Rlc2NfZGVmcy5oCkBAIC03NSwxMCArNzUsMTQgQEAKIHR5cGVkZWYgc3RydWN0IGdhdGVfc3RydWN0NjQgZ2F0ZV9kZXNjOwogdHlwZWRlZiBzdHJ1Y3QgbGR0dHNzX2Rlc2M2NCBsZHRfZGVzYzsKIHR5cGVkZWYgc3RydWN0IGxkdHRzc19kZXNjNjQgdHNzX2Rlc2M7CisjZGVmaW5lIGdhdGVfb2Zmc2V0KGcpICgoZykub2Zmc2V0X2xvdyB8ICgodW5zaWduZWQgbG9uZykoZykub2Zmc2V0X21pZGRsZSA8PCAxNikgfCAoKHVuc2lnbmVkIGxvbmcpKGcpLm9mZnNldF9oaWdoIDw8IDMyKSkKKyNkZWZpbmUgZ2F0ZV9zZWdtZW50KGcpICgoZykuc2VnbWVudCkKICNlbHNlCiB0eXBlZGVmIHN0cnVjdCBkZXNjX3N0cnVjdCBnYXRlX2Rlc2M7CiB0eXBlZGVmIHN0cnVjdCBkZXNjX3N0cnVjdCBsZHRfZGVzYzsKIHR5cGVkZWYgc3RydWN0IGRlc2Nfc3RydWN0IHRzc19kZXNjOworI2RlZmluZSBnYXRlX29mZnNldChnKQkJKCgoZykuYiAmIDB4ZmZmZjAwMDApIHwgKChnKS5hICYgMHgwMDAwZmZmZikpCisjZGVmaW5lIGdhdGVfc2VnbWVudChnKQkJKChnKS5hID4+IDE2KQogI2VuZGlmCiAKIHN0cnVjdCBkZXNjX3B0ciB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZG1pLmggYi9pbmNsdWRlL2FzbS14ODYvZG1pLmgKaW5kZXggNGVkZjc1MS4uNThhODY1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2RtaS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9kbWkuaApAQCAtMywxMiArMyw2IEBACiAKICNpbmNsdWRlIDxhc20vaW8uaD4KIAotI2lmZGVmIENPTkZJR19YODZfMzIKLQotI2RlZmluZSBkbWlfYWxsb2MgYWxsb2NfYm9vdG1lbQotCi0jZWxzZSAvKiBDT05GSUdfWDg2XzMyICovCi0KICNkZWZpbmUgRE1JX01BWF9EQVRBIDIwNDgKIAogZXh0ZXJuIGludCBkbWlfYWxsb2NfaW5kZXg7CkBAIC0yNSw4ICsxOSw2IEBACiAJcmV0dXJuIGRtaV9hbGxvY19kYXRhICsgaWR4OwogfQogCi0jZW5kaWYKLQogLyogVXNlIGVhcmx5IElPIG1hcHBpbmdzIGZvciBETUkgYmVjYXVzZSBpdCdzIGluaXRpYWxpemVkIGVhcmx5ICovCiAjZGVmaW5lIGRtaV9pb3JlbWFwIGVhcmx5X2lvcmVtYXAKICNkZWZpbmUgZG1pX2lvdW5tYXAgZWFybHlfaW91bm1hcApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMi5oIGIvaW5jbHVkZS9hc20teDg2L2R3YXJmMi5oCmluZGV4IGIzY2JiMGMuLjczOGJiOWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZHdhcmYyLmgKQEAgLTEsNSArMSw2MSBAQAotI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAiZHdhcmYyXzMyLmgiCisjaWZuZGVmIF9EV0FSRjJfSAorI2RlZmluZSBfRFdBUkYyX0gKKworI2lmbmRlZiBfX0FTU0VNQkxZX18KKyN3YXJuaW5nICJhc20vZHdhcmYyLmggc2hvdWxkIGJlIG9ubHkgaW5jbHVkZWQgaW4gcHVyZSBhc3NlbWJseSBmaWxlcyIKKyNlbmRpZgorCisvKgorICAgTWFjcm9zIGZvciBkd2FyZjIgQ0ZJIHVud2luZCB0YWJsZSBlbnRyaWVzLgorICAgU2VlICJhcy5pbmZvIiBmb3IgZGV0YWlscyBvbiB0aGVzZSBwc2V1ZG8gb3BzLiBVbmZvcnR1bmF0ZWx5CisgICB0aGV5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2ZXJ5IG5ldyBiaW51dGlscywgc28gZGVmaW5lIHRoZW0KKyAgIGF3YXkgZm9yIG9sZGVyIHZlcnNpb24uCisgKi8KKworI2lmZGVmIENPTkZJR19BU19DRkkKKworI2RlZmluZSBDRklfU1RBUlRQUk9DIC5jZmlfc3RhcnRwcm9jCisjZGVmaW5lIENGSV9FTkRQUk9DIC5jZmlfZW5kcHJvYworI2RlZmluZSBDRklfREVGX0NGQSAuY2ZpX2RlZl9jZmEKKyNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIgLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCisjZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVCAuY2ZpX2RlZl9jZmFfb2Zmc2V0CisjZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVCAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CisjZGVmaW5lIENGSV9PRkZTRVQgLmNmaV9vZmZzZXQKKyNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQgLmNmaV9yZWxfb2Zmc2V0CisjZGVmaW5lIENGSV9SRUdJU1RFUiAuY2ZpX3JlZ2lzdGVyCisjZGVmaW5lIENGSV9SRVNUT1JFIC5jZmlfcmVzdG9yZQorI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUgLmNmaV9yZW1lbWJlcl9zdGF0ZQorI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURSAuY2ZpX3Jlc3RvcmVfc3RhdGUKKyNkZWZpbmUgQ0ZJX1VOREVGSU5FRCAuY2ZpX3VuZGVmaW5lZAorCisjaWZkZWYgQ09ORklHX0FTX0NGSV9TSUdOQUxfRlJBTUUKKyNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRSAuY2ZpX3NpZ25hbF9mcmFtZQogI2Vsc2UKLSMgaW5jbHVkZSAiZHdhcmYyXzY0LmgiCisjZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUKKyNlbmRpZgorCisjZWxzZQorCisvKiBEdWUgdG8gdGhlIHN0cnVjdHVyZSBvZiBwcmUtZXhpc2l0aW5nIGNvZGUsIGRvbid0IHVzZSBhc3NlbWJsZXIgbGluZQorICAgY29tbWVudCBjaGFyYWN0ZXIgIyB0byBpZ25vcmUgdGhlIGFyZ3VtZW50cy4gSW5zdGVhZCwgdXNlIGEgZHVtbXkgbWFjcm8uICovCisubWFjcm8gY2ZpX2lnbm9yZSBhPTAsIGI9MCwgYz0wLCBkPTAKKy5lbmRtCisKKyNkZWZpbmUgQ0ZJX1NUQVJUUFJPQwljZmlfaWdub3JlCisjZGVmaW5lIENGSV9FTkRQUk9DCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX0RFRl9DRkEJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUgljZmlfaWdub3JlCisjZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVAljZmlfaWdub3JlCisjZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVAljZmlfaWdub3JlCisjZGVmaW5lIENGSV9PRkZTRVQJY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfUkVMX09GRlNFVAljZmlfaWdub3JlCisjZGVmaW5lIENGSV9SRUdJU1RFUgljZmlfaWdub3JlCisjZGVmaW5lIENGSV9SRVNUT1JFCWNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFIGNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUgY2ZpX2lnbm9yZQorI2RlZmluZSBDRklfVU5ERUZJTkVEIGNmaV9pZ25vcmUKKyNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRSBjZmlfaWdub3JlCisKKyNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9kd2FyZjJfMzIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmQ2NjM5OC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0jaWZuZGVmIF9EV0FSRjJfSAotI2RlZmluZSBfRFdBUkYyX0gKLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSN3YXJuaW5nICJhc20vZHdhcmYyLmggc2hvdWxkIGJlIG9ubHkgaW5jbHVkZWQgaW4gcHVyZSBhc3NlbWJseSBmaWxlcyIKLSNlbmRpZgotCi0vKgotICAgTWFjcm9zIGZvciBkd2FyZjIgQ0ZJIHVud2luZCB0YWJsZSBlbnRyaWVzLgotICAgU2VlICJhcy5pbmZvIiBmb3IgZGV0YWlscyBvbiB0aGVzZSBwc2V1ZG8gb3BzLiBVbmZvcnR1bmF0ZWx5Ci0gICB0aGV5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2ZXJ5IG5ldyBiaW51dGlscywgc28gZGVmaW5lIHRoZW0KLSAgIGF3YXkgZm9yIG9sZGVyIHZlcnNpb24uCi0gKi8KLQotI2lmZGVmIENPTkZJR19VTldJTkRfSU5GTwotCi0jZGVmaW5lIENGSV9TVEFSVFBST0MgLmNmaV9zdGFydHByb2MKLSNkZWZpbmUgQ0ZJX0VORFBST0MgLmNmaV9lbmRwcm9jCi0jZGVmaW5lIENGSV9ERUZfQ0ZBIC5jZmlfZGVmX2NmYQotI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUiAuY2ZpX2RlZl9jZmFfcmVnaXN0ZXIKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUIC5jZmlfZGVmX2NmYV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX0FESlVTVF9DRkFfT0ZGU0VUIC5jZmlfYWRqdXN0X2NmYV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX09GRlNFVCAuY2ZpX29mZnNldAotI2RlZmluZSBDRklfUkVMX09GRlNFVCAuY2ZpX3JlbF9vZmZzZXQKLSNkZWZpbmUgQ0ZJX1JFR0lTVEVSIC5jZmlfcmVnaXN0ZXIKLSNkZWZpbmUgQ0ZJX1JFU1RPUkUgLmNmaV9yZXN0b3JlCi0jZGVmaW5lIENGSV9SRU1FTUJFUl9TVEFURSAuY2ZpX3JlbWVtYmVyX3N0YXRlCi0jZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFIC5jZmlfcmVzdG9yZV9zdGF0ZQotI2RlZmluZSBDRklfVU5ERUZJTkVEIC5jZmlfdW5kZWZpbmVkCi0KLSNpZmRlZiBDT05GSUdfQVNfQ0ZJX1NJR05BTF9GUkFNRQotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FIC5jZmlfc2lnbmFsX2ZyYW1lCi0jZWxzZQotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FCi0jZW5kaWYKLQotI2Vsc2UKLQotLyogRHVlIHRvIHRoZSBzdHJ1Y3R1cmUgb2YgcHJlLWV4aXNpdGluZyBjb2RlLCBkb24ndCB1c2UgYXNzZW1ibGVyIGxpbmUKLSAgIGNvbW1lbnQgY2hhcmFjdGVyICMgdG8gaWdub3JlIHRoZSBhcmd1bWVudHMuIEluc3RlYWQsIHVzZSBhIGR1bW15IG1hY3JvLiAqLwotLm1hY3JvIGlnbm9yZSBhPTAsIGI9MCwgYz0wLCBkPTAKLS5lbmRtCi0KLSNkZWZpbmUgQ0ZJX1NUQVJUUFJPQwlpZ25vcmUKLSNkZWZpbmUgQ0ZJX0VORFBST0MJaWdub3JlCi0jZGVmaW5lIENGSV9ERUZfQ0ZBCWlnbm9yZQotI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUglpZ25vcmUKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfT0ZGU0VUCWlnbm9yZQotI2RlZmluZSBDRklfQURKVVNUX0NGQV9PRkZTRVQJaWdub3JlCi0jZGVmaW5lIENGSV9PRkZTRVQJaWdub3JlCi0jZGVmaW5lIENGSV9SRUxfT0ZGU0VUCWlnbm9yZQotI2RlZmluZSBDRklfUkVHSVNURVIJaWdub3JlCi0jZGVmaW5lIENGSV9SRVNUT1JFCWlnbm9yZQotI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUgaWdub3JlCi0jZGVmaW5lIENGSV9SRVNUT1JFX1NUQVRFIGlnbm9yZQotI2RlZmluZSBDRklfVU5ERUZJTkVEIGlnbm9yZQotI2RlZmluZSBDRklfU0lHTkFMX0ZSQU1FIGlnbm9yZQotCi0jZW5kaWYKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvZHdhcmYyXzY0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5NTA1MTkuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2R3YXJmMl82NC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotI2lmbmRlZiBfRFdBUkYyX0gKLSNkZWZpbmUgX0RXQVJGMl9IIDEKLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSN3YXJuaW5nICJhc20vZHdhcmYyLmggc2hvdWxkIGJlIG9ubHkgaW5jbHVkZWQgaW4gcHVyZSBhc3NlbWJseSBmaWxlcyIKLSNlbmRpZgotCi0vKgotICAgTWFjcm9zIGZvciBkd2FyZjIgQ0ZJIHVud2luZCB0YWJsZSBlbnRyaWVzLgotICAgU2VlICJhcy5pbmZvIiBmb3IgZGV0YWlscyBvbiB0aGVzZSBwc2V1ZG8gb3BzLiBVbmZvcnR1bmF0ZWx5Ci0gICB0aGV5IGFyZSBvbmx5IHN1cHBvcnRlZCBpbiB2ZXJ5IG5ldyBiaW51dGlscywgc28gZGVmaW5lIHRoZW0KLSAgIGF3YXkgZm9yIG9sZGVyIHZlcnNpb24uCi0gKi8KLQotI2lmZGVmIENPTkZJR19BU19DRkkKLQotI2RlZmluZSBDRklfU1RBUlRQUk9DIC5jZmlfc3RhcnRwcm9jCi0jZGVmaW5lIENGSV9FTkRQUk9DIC5jZmlfZW5kcHJvYwotI2RlZmluZSBDRklfREVGX0NGQSAuY2ZpX2RlZl9jZmEKLSNkZWZpbmUgQ0ZJX0RFRl9DRkFfUkVHSVNURVIgLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVCAuY2ZpX2RlZl9jZmFfb2Zmc2V0Ci0jZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVCAuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0Ci0jZGVmaW5lIENGSV9PRkZTRVQgLmNmaV9vZmZzZXQKLSNkZWZpbmUgQ0ZJX1JFTF9PRkZTRVQgLmNmaV9yZWxfb2Zmc2V0Ci0jZGVmaW5lIENGSV9SRUdJU1RFUiAuY2ZpX3JlZ2lzdGVyCi0jZGVmaW5lIENGSV9SRVNUT1JFIC5jZmlfcmVzdG9yZQotI2RlZmluZSBDRklfUkVNRU1CRVJfU1RBVEUgLmNmaV9yZW1lbWJlcl9zdGF0ZQotI2RlZmluZSBDRklfUkVTVE9SRV9TVEFURSAuY2ZpX3Jlc3RvcmVfc3RhdGUKLSNkZWZpbmUgQ0ZJX1VOREVGSU5FRCAuY2ZpX3VuZGVmaW5lZAotI2lmZGVmIENPTkZJR19BU19DRklfU0lHTkFMX0ZSQU1FCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUgLmNmaV9zaWduYWxfZnJhbWUKLSNlbHNlCi0jZGVmaW5lIENGSV9TSUdOQUxfRlJBTUUKLSNlbmRpZgotCi0jZWxzZQotCi0vKiB1c2UgYXNzZW1ibGVyIGxpbmUgY29tbWVudCBjaGFyYWN0ZXIgIyB0byBpZ25vcmUgdGhlIGFyZ3VtZW50cy4gKi8KLSNkZWZpbmUgQ0ZJX1NUQVJUUFJPQwkjCi0jZGVmaW5lIENGSV9FTkRQUk9DCSMKLSNkZWZpbmUgQ0ZJX0RFRl9DRkEJIwotI2RlZmluZSBDRklfREVGX0NGQV9SRUdJU1RFUgkjCi0jZGVmaW5lIENGSV9ERUZfQ0ZBX09GRlNFVAkjCi0jZGVmaW5lIENGSV9BREpVU1RfQ0ZBX09GRlNFVAkjCi0jZGVmaW5lIENGSV9PRkZTRVQJIwotI2RlZmluZSBDRklfUkVMX09GRlNFVAkjCi0jZGVmaW5lIENGSV9SRUdJU1RFUgkjCi0jZGVmaW5lIENGSV9SRVNUT1JFCSMKLSNkZWZpbmUgQ0ZJX1JFTUVNQkVSX1NUQVRFCSMKLSNkZWZpbmUgQ0ZJX1JFU1RPUkVfU1RBVEUJIwotI2RlZmluZSBDRklfVU5ERUZJTkVECSMKLSNkZWZpbmUgQ0ZJX1NJR05BTF9GUkFNRQkjCi0KLSNlbmRpZgotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwLmggYi9pbmNsdWRlL2FzbS14ODYvZTgyMC5oCmluZGV4IDcwMDQyNTEuLjMzZTc5M2UgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2U4MjAuaApAQCAtMiw2ICsyLDQxIEBACiAjZGVmaW5lIF9fQVNNX0U4MjBfSAogI2RlZmluZSBFODIwTUFQCTB4MmQwCQkvKiBvdXIgbWFwICovCiAjZGVmaW5lIEU4MjBNQVgJMTI4CQkvKiBudW1iZXIgb2YgZW50cmllcyBpbiBFODIwTUFQICovCisKKy8qCisgKiBMZWdhY3kgRTgyMCBCSU9TIGxpbWl0cyB1cyB0byAxMjggKEU4MjBNQVgpIG5vZGVzIGR1ZSB0byB0aGUKKyAqIGNvbnN0cmFpbmVkIHNwYWNlIGluIHRoZSB6ZXJvcGFnZS4gIElmIHdlIGhhdmUgbW9yZSBub2RlcyB0aGFuCisgKiB0aGF0LCBhbmQgaWYgd2UndmUgYm9vdGVkIG9mZiBFRkkgZmlybXdhcmUsIHRoZW4gdGhlIEVGSSB0YWJsZXMKKyAqIHBhc3NlZCB1cyBmcm9tIHRoZSBFRkkgZmlybXdhcmUgY2FuIGxpc3QgbW9yZSBub2Rlcy4gIFNpemUgb3VyCisgKiBpbnRlcm5hbCBtZW1vcnkgbWFwIHRhYmxlcyB0byBoYXZlIHJvb20gZm9yIHRoZXNlIGFkZGl0aW9uYWwKKyAqIG5vZGVzLCBiYXNlZCBvbiB1cCB0byB0aHJlZSBlbnRyaWVzIHBlciBub2RlIGZvciB3aGljaCB0aGUKKyAqIGtlcm5lbCB3YXMgYnVpbHQ6IE1BWF9OVU1OT0RFUyA9PSAoMSA8PCBDT05GSUdfTk9ERVNfU0hJRlQpLAorICogcGx1cyBFODIwTUFYLCBhbGxvd2luZyBzcGFjZSBmb3IgdGhlIHBvc3NpYmxlIGR1cGxpY2F0ZSBFODIwCisgKiBlbnRyaWVzIHRoYXQgbWlnaHQgbmVlZCByb29tIGluIHRoZSBzYW1lIGFycmF5cywgcHJpb3IgdG8gdGhlCisgKiBjYWxsIHRvIHNhbml0aXplX2U4MjBfbWFwKCkgdG8gcmVtb3ZlIGR1cGxpY2F0ZXMuICBUaGUgYWxsb3dhbmNlCisgKiBvZiB0aHJlZSBtZW1vcnkgbWFwIGVudHJpZXMgcGVyIG5vZGUgaXMgImVub3VnaCIgZW50cmllcyBmb3IKKyAqIHRoZSBpbml0aWFsIGhhcmR3YXJlIHBsYXRmb3JtIG1vdGl2YXRpbmcgdGhpcyBtZWNoYW5pc20gdG8gbWFrZQorICogdXNlIG9mIGFkZGl0aW9uYWwgRUZJIG1hcCBlbnRyaWVzLiAgRnV0dXJlIHBsYXRmb3JtcyBtYXkgd2FudAorICogdG8gYWxsb3cgbW9yZSB0aGFuIHRocmVlIGVudHJpZXMgcGVyIG5vZGUgb3Igb3RoZXJ3aXNlIHJlZmluZQorICogdGhpcyBzaXplLgorICovCisKKy8qCisgKiBPZGQ6ICdtYWtlIGhlYWRlcnNfY2hlY2snIGNvbXBsYWlucyBhYm91dCBudW1hLmggaWYgSSB0cnkKKyAqIHRvIGNvbGxhcHNlIHRoZSBuZXh0IHR3byAjaWZkZWYgbGluZXMgdG8gYSBzaW5nbGUgbGluZToKKyAqCSNpZiBkZWZpbmVkKF9fS0VSTkVMX18pICYmIGRlZmluZWQoQ09ORklHX0VGSSkKKyAqLworI2lmZGVmIF9fS0VSTkVMX18KKyNpZmRlZiBDT05GSUdfRUZJCisjaW5jbHVkZSA8bGludXgvbnVtYS5oPgorI2RlZmluZSBFODIwX1hfTUFYIChFODIwTUFYICsgMyAqIE1BWF9OVU1OT0RFUykKKyNlbHNlCS8qICEgQ09ORklHX0VGSSAqLworI2RlZmluZSBFODIwX1hfTUFYIEU4MjBNQVgKKyNlbmRpZgorI2Vsc2UJLyogISBfX0tFUk5FTF9fICovCisjZGVmaW5lIEU4MjBfWF9NQVggRTgyME1BWAorI2VuZGlmCisKICNkZWZpbmUgRTgyME5SCTB4MWU4CQkvKiAjIGVudHJpZXMgaW4gRTgyME1BUCAqLwogCiAjZGVmaW5lIEU4MjBfUkFNCTEKQEAgLTksNiArNDQsOSBAQAogI2RlZmluZSBFODIwX0FDUEkJMwogI2RlZmluZSBFODIwX05WUwk0CiAKKy8qIHJlc2VydmVkIFJBTSB1c2VkIGJ5IGtlcm5lbCBpdHNlbGYgKi8KKyNkZWZpbmUgRTgyMF9SRVNFUlZFRF9LRVJOICAgICAgICAxMjgKKwogI2lmbmRlZiBfX0FTU0VNQkxZX18KIHN0cnVjdCBlODIwZW50cnkgewogCV9fdTY0IGFkZHI7CS8qIHN0YXJ0IG9mIG1lbW9yeSBzZWdtZW50ICovCkBAIC0xOCwyMiArNTYsNzkgQEAKIAogc3RydWN0IGU4MjBtYXAgewogCV9fdTMyIG5yX21hcDsKLQlzdHJ1Y3QgZTgyMGVudHJ5IG1hcFtFODIwTUFYXTsKKwlzdHJ1Y3QgZTgyMGVudHJ5IG1hcFtFODIwX1hfTUFYXTsKIH07CisKKy8qIHNlZSBjb21tZW50IGluIGFyY2gveDg2L2tlcm5lbC9lODIwLmMgKi8KK2V4dGVybiBzdHJ1Y3QgZTgyMG1hcCBlODIwOworZXh0ZXJuIHN0cnVjdCBlODIwbWFwIGU4MjBfc2F2ZWQ7CisKK2V4dGVybiBpbnQgZTgyMF9hbnlfbWFwcGVkKHU2NCBzdGFydCwgdTY0IGVuZCwgdW5zaWduZWQgdHlwZSk7CitleHRlcm4gaW50IGU4MjBfYWxsX21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpOworZXh0ZXJuIHZvaWQgZTgyMF9hZGRfcmVnaW9uKHU2NCBzdGFydCwgdTY0IHNpemUsIGludCB0eXBlKTsKK2V4dGVybiB2b2lkIGU4MjBfcHJpbnRfbWFwKGNoYXIgKndobyk7CitleHRlcm4gaW50CitzYW5pdGl6ZV9lODIwX21hcChzdHJ1Y3QgZTgyMGVudHJ5ICpiaW9zbWFwLCBpbnQgbWF4X25yX21hcCwgaW50ICpwbnJfbWFwKTsKK2V4dGVybiB1NjQgZTgyMF91cGRhdGVfcmFuZ2UodTY0IHN0YXJ0LCB1NjQgc2l6ZSwgdW5zaWduZWQgb2xkX3R5cGUsCisJCQkgICAgICAgdW5zaWduZWQgbmV3X3R5cGUpOworZXh0ZXJuIHU2NCBlODIwX3JlbW92ZV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKKwkJCSAgICAgaW50IGNoZWNrdHlwZSk7CitleHRlcm4gdm9pZCB1cGRhdGVfZTgyMCh2b2lkKTsKK2V4dGVybiB2b2lkIGU4MjBfc2V0dXBfZ2FwKHZvaWQpOworZXh0ZXJuIGludCBlODIwX3NlYXJjaF9nYXAodW5zaWduZWQgbG9uZyAqZ2Fwc3RhcnQsIHVuc2lnbmVkIGxvbmcgKmdhcHNpemUsCisJCQl1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHIsIHVuc2lnbmVkIGxvbmcgbG9uZyBlbmRfYWRkcik7CitzdHJ1Y3Qgc2V0dXBfZGF0YTsKK2V4dGVybiB2b2lkIHBhcnNlX2U4MjBfZXh0KHN0cnVjdCBzZXR1cF9kYXRhICpkYXRhLCB1bnNpZ25lZCBsb25nIHBhX2RhdGEpOworCisjaWYgZGVmaW5lZChDT05GSUdfWDg2XzY0KSB8fCBcCisJKGRlZmluZWQoQ09ORklHX1g4Nl8zMikgJiYgZGVmaW5lZChDT05GSUdfSElCRVJOQVRJT04pKQorZXh0ZXJuIHZvaWQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbGltaXRfcGZuKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHVuc2lnbmVkIGxvbmcgbGltaXRfcGZuKQoreworfQorI2VuZGlmCisKK2V4dGVybiB1bnNpZ25lZCBsb25nIGVuZF91c2VyX3BmbjsKKworZXh0ZXJuIHU2NCBmaW5kX2U4MjBfYXJlYSh1NjQgc3RhcnQsIHU2NCBlbmQsIHU2NCBzaXplLCB1NjQgYWxpZ24pOworZXh0ZXJuIHU2NCBmaW5kX2U4MjBfYXJlYV9zaXplKHU2NCBzdGFydCwgdTY0ICpzaXplcCwgdTY0IGFsaWduKTsKK2V4dGVybiB2b2lkIHJlc2VydmVfZWFybHkodTY0IHN0YXJ0LCB1NjQgZW5kLCBjaGFyICpuYW1lKTsKK2V4dGVybiB2b2lkIHJlc2VydmVfZWFybHlfb3ZlcmxhcF9vayh1NjQgc3RhcnQsIHU2NCBlbmQsIGNoYXIgKm5hbWUpOworZXh0ZXJuIHZvaWQgZnJlZV9lYXJseSh1NjQgc3RhcnQsIHU2NCBlbmQpOworZXh0ZXJuIHZvaWQgZWFybHlfcmVzX3RvX2Jvb3RtZW0odTY0IHN0YXJ0LCB1NjQgZW5kKTsKK2V4dGVybiB1NjQgZWFybHlfcmVzZXJ2ZV9lODIwKHU2NCBzdGFydHQsIHU2NCBzaXpldCwgdTY0IGFsaWduKTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZTgyMF9lbmRfb2ZfcmFtX3Bmbih2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGU4MjBfZW5kX29mX2xvd19yYW1fcGZuKHZvaWQpOworZXh0ZXJuIGludCBlODIwX2ZpbmRfYWN0aXZlX3JlZ2lvbihjb25zdCBzdHJ1Y3QgZTgyMGVudHJ5ICplaSwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyBsYXN0X3BmbiwKKwkJCQkgIHVuc2lnbmVkIGxvbmcgKmVpX3N0YXJ0cGZuLAorCQkJCSAgdW5zaWduZWQgbG9uZyAqZWlfZW5kcGZuKTsKK2V4dGVybiB2b2lkIGU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJCSB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOworZXh0ZXJuIHU2NCBlODIwX2hvbGVfc2l6ZSh1NjQgc3RhcnQsIHU2NCBlbmQpOworZXh0ZXJuIHZvaWQgZmluaXNoX2U4MjBfcGFyc2luZyh2b2lkKTsKK2V4dGVybiB2b2lkIGU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXModm9pZCk7CitleHRlcm4gdm9pZCBzZXR1cF9tZW1vcnlfbWFwKHZvaWQpOworZXh0ZXJuIGNoYXIgKmRlZmF1bHRfbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCk7CitleHRlcm4gY2hhciAqbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCk7CitleHRlcm4gY2hhciAqbWVtb3J5X3NldHVwKHZvaWQpOworCiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICovCiAKICNkZWZpbmUgSVNBX1NUQVJUX0FERFJFU1MJMHhhMDAwMAogI2RlZmluZSBJU0FfRU5EX0FERFJFU1MJCTB4MTAwMDAwCisjZGVmaW5lIGlzX0lTQV9yYW5nZShzLCBlKSAoKHMpID49IElTQV9TVEFSVF9BRERSRVNTICYmIChlKSA8IElTQV9FTkRfQUREUkVTUykKIAogI2RlZmluZSBCSU9TX0JFR0lOCQkweDAwMGEwMDAwCiAjZGVmaW5lIEJJT1NfRU5ECQkweDAwMTAwMDAwCiAKICNpZmRlZiBfX0tFUk5FTF9fCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBpbmNsdWRlICJlODIwXzMyLmgiCi0jZWxzZQotIyBpbmNsdWRlICJlODIwXzY0LmgiCi0jZW5kaWYKKyNpbmNsdWRlIDxsaW51eC9pb3BvcnQuaD4KKworI2RlZmluZSBISUdIX01FTU9SWQkoMTAyNCoxMDI0KQogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2VuZGlmICAvKiBfX0FTTV9FODIwX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvZTgyMF8zMi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhOWY3YzZlLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIHRoZSBpbnQgMTUsIGF4PWU4MjAgbWVtb3J5IG1hcAotICogc2NoZW1lLgotICoKLSAqIEluIGEgbnV0c2hlbGwsIGFyY2gvaTM4Ni9ib290L3NldHVwLlMgcG9wdWxhdGVzIGEgc2NyYXRjaCB0YWJsZQotICogaW4gdGhlIGVtcHR5X3plcm9fYmxvY2sgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgdXNhYmxlIGFkZHJlc3Mvc2l6ZQotICogZHVwbGVzLiAgIEluIGFyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYywgdGhpcyBpbmZvcm1hdGlvbiBpcwotICogdHJhbnNmZXJyZWQgaW50byB0aGUgZTgyMG1hcCwgYW5kIGluIGFyY2gvaTM4Ni9tbS9pbml0LmMsIHRoYXQKLSAqIG5ldyBpbmZvcm1hdGlvbiBpcyB1c2VkIHRvIG1hcmsgcGFnZXMgcmVzZXJ2ZWQgb3Igbm90LgotICoKLSAqLwotI2lmbmRlZiBfX0U4MjBfSEVBREVSCi0jZGVmaW5lIF9fRTgyMF9IRUFERVIKLQotI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgotCi0jZGVmaW5lIEhJR0hfTUVNT1JZCSgxMDI0KjEwMjQpCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0KLWV4dGVybiBzdHJ1Y3QgZTgyMG1hcCBlODIwOwotZXh0ZXJuIHZvaWQgdXBkYXRlX2U4MjAodm9pZCk7Ci0KLWV4dGVybiBpbnQgZTgyMF9hbGxfbWFwcGVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAotCQkJICAgdW5zaWduZWQgdHlwZSk7Ci1leHRlcm4gaW50IGU4MjBfYW55X21hcHBlZCh1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIHR5cGUpOwotZXh0ZXJuIHZvaWQgcHJvcGFnYXRlX2U4MjBfbWFwKHZvaWQpOwotZXh0ZXJuIHZvaWQgcmVnaXN0ZXJfYm9vdG1lbV9sb3dfcGFnZXModW5zaWduZWQgbG9uZyBtYXhfbG93X3Bmbik7Ci1leHRlcm4gdm9pZCBhZGRfbWVtb3J5X3JlZ2lvbih1bnNpZ25lZCBsb25nIGxvbmcgc3RhcnQsCi0JCQkgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSwgaW50IHR5cGUpOwotZXh0ZXJuIHZvaWQgdXBkYXRlX21lbW9yeV9yYW5nZSh1NjQgc3RhcnQsIHU2NCBzaXplLCB1bnNpZ25lZCBvbGRfdHlwZSwKLQkJCQl1bnNpZ25lZCBuZXdfdHlwZSk7Ci1leHRlcm4gdm9pZCBlODIwX3JlZ2lzdGVyX21lbW9yeSh2b2lkKTsKLWV4dGVybiB2b2lkIGxpbWl0X3JlZ2lvbnModW5zaWduZWQgbG9uZyBsb25nIHNpemUpOwotZXh0ZXJuIHZvaWQgcHJpbnRfbWVtb3J5X21hcChjaGFyICp3aG8pOwotZXh0ZXJuIHZvaWQgaW5pdF9pb21lbV9yZXNvdXJjZXMoc3RydWN0IHJlc291cmNlICpjb2RlX3Jlc291cmNlLAotCQkJCSBzdHJ1Y3QgcmVzb3VyY2UgKmRhdGFfcmVzb3VyY2UsCi0JCQkJIHN0cnVjdCByZXNvdXJjZSAqYnNzX3Jlc291cmNlKTsKLQotI2lmIGRlZmluZWQoQ09ORklHX1BNKSAmJiBkZWZpbmVkKENPTkZJR19ISUJFUk5BVElPTikKLWV4dGVybiB2b2lkIGU4MjBfbWFya19ub3NhdmVfcmVnaW9ucyh2b2lkKTsKLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQgZTgyMF9tYXJrX25vc2F2ZV9yZWdpb25zKHZvaWQpCi17Ci19Ci0jZW5kaWYKLQotCi0jZW5kaWYvKiFfX0FTU0VNQkxZX18qLwotI2VuZGlmLypfX0U4MjBfSEVBREVSKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvZTgyMF82NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWM0ZDY4Li4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9lODIwXzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIHRoZSBpbnQgMTUsIGF4PWU4MjAgbWVtb3J5IG1hcAotICogc2NoZW1lLgotICoKLSAqIEluIGEgbnV0c2hlbGwsIHNldHVwLlMgcG9wdWxhdGVzIGEgc2NyYXRjaCB0YWJsZSBpbiB0aGUKLSAqIGVtcHR5X3plcm9fYmxvY2sgdGhhdCBjb250YWlucyBhIGxpc3Qgb2YgdXNhYmxlIGFkZHJlc3Mvc2l6ZQotICogZHVwbGVzLiAgc2V0dXAuYywgdGhpcyBpbmZvcm1hdGlvbiBpcyB0cmFuc2ZlcnJlZCBpbnRvIHRoZSBlODIwbWFwLAotICogYW5kIGluIGluaXQuYy9udW1hLmMsIHRoYXQgbmV3IGluZm9ybWF0aW9uIGlzIHVzZWQgdG8gbWFyayBwYWdlcwotICogcmVzZXJ2ZWQgb3Igbm90LgotICovCi0jaWZuZGVmIF9fRTgyMF9IRUFERVIKLSNkZWZpbmUgX19FODIwX0hFQURFUgotCi0jaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+Ci0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi1leHRlcm4gdW5zaWduZWQgbG9uZyBmaW5kX2U4MjBfYXJlYSh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBsb25nIGFsaWduKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfZTgyMF9hcmVhX3NpemUodW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkJIHVuc2lnbmVkIGxvbmcgKnNpemVwLAotCQkJCQkgdW5zaWduZWQgbG9uZyBhbGlnbik7Ci1leHRlcm4gdm9pZCBhZGRfbWVtb3J5X3JlZ2lvbih1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUsCi0JCQkgICAgICBpbnQgdHlwZSk7Ci1leHRlcm4gdm9pZCB1cGRhdGVfbWVtb3J5X3JhbmdlKHU2NCBzdGFydCwgdTY0IHNpemUsIHVuc2lnbmVkIG9sZF90eXBlLAotCQkJCXVuc2lnbmVkIG5ld190eXBlKTsKLWV4dGVybiB2b2lkIHNldHVwX21lbW9yeV9yZWdpb24odm9pZCk7Ci1leHRlcm4gdm9pZCBjb250aWdfZTgyMF9zZXR1cCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIGU4MjBfZW5kX29mX3JhbSh2b2lkKTsKLWV4dGVybiB2b2lkIGU4MjBfcmVzZXJ2ZV9yZXNvdXJjZXModm9pZCk7Ci1leHRlcm4gdm9pZCBlODIwX21hcmtfbm9zYXZlX3JlZ2lvbnModm9pZCk7Ci1leHRlcm4gaW50IGU4MjBfYW55X21hcHBlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgIHVuc2lnbmVkIHR5cGUpOwotZXh0ZXJuIGludCBlODIwX2FsbF9tYXBwZWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgICB1bnNpZ25lZCB0eXBlKTsKLWV4dGVybiBpbnQgZTgyMF9hbnlfbm9uX3Jlc2VydmVkKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kKTsKLWV4dGVybiBpbnQgaXNfbWVtb3J5X2FueV92YWxpZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci1leHRlcm4gaW50IGU4MjBfYWxsX25vbl9yZXNlcnZlZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7Ci1leHRlcm4gaW50IGlzX21lbW9yeV9hbGxfdmFsaWQodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZTgyMF9ob2xlX3NpemUodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotCi1leHRlcm4gdm9pZCBlODIwX3NldHVwX2dhcCh2b2lkKTsKLWV4dGVybiB2b2lkIGU4MjBfcmVnaXN0ZXJfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCi0JCQkJCSB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwotCi1leHRlcm4gdm9pZCBmaW5pc2hfZTgyMF9wYXJzaW5nKHZvaWQpOwotCi1leHRlcm4gc3RydWN0IGU4MjBtYXAgZTgyMDsKLWV4dGVybiB2b2lkIHVwZGF0ZV9lODIwKHZvaWQpOwotCi1leHRlcm4gdm9pZCByZXNlcnZlX2Vhcmx5KHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLCBjaGFyICpuYW1lKTsKLWV4dGVybiB2b2lkIGZyZWVfZWFybHkodW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotZXh0ZXJuIHZvaWQgZWFybHlfcmVzX3RvX2Jvb3RtZW0odW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpOwotCi0jZW5kaWYvKiFfX0FTU0VNQkxZX18qLwotCi0jZW5kaWYvKl9fRTgyMF9IRUFERVIqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2VmaS5oIGIvaW5jbHVkZS9hc20teDg2L2VmaS5oCmluZGV4IGQ1MzAwNGIuLjdlZDJiZDcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9lZmkuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZWZpLmgKQEAgLTkwLDcgKzkwLDcgQEAKIAogI2VuZGlmIC8qIENPTkZJR19YODZfMzIgKi8KIAotZXh0ZXJuIHZvaWQgZWZpX3Jlc2VydmVfYm9vdG1lbSh2b2lkKTsKK2V4dGVybiB2b2lkIGVmaV9yZXNlcnZlX2Vhcmx5KHZvaWQpOwogZXh0ZXJuIHZvaWQgZWZpX2NhbGxfcGh5c19wcmVsb2codm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfY2FsbF9waHlzX2VwaWxvZyh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2VsZi5oIGIvaW5jbHVkZS9hc20teDg2L2VsZi5oCmluZGV4IDhmMjMyZGMuLjdiZTQ3MzMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9lbGYuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZWxmLmgKQEAgLTgzLDkgKzgzLDkgQEAKIAkoKCh4KS0+ZV9tYWNoaW5lID09IEVNXzM4NikgfHwgKCh4KS0+ZV9tYWNoaW5lID09IEVNXzQ4NikpCiAKICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CisjaW5jbHVkZSA8YXNtL3N5c3RlbS5oPgogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4JCS8qIGZvciBzYXZlc2VnbWVudCAqLwogI2luY2x1ZGUgPGFzbS9kZXNjLmg+CiAKICNkZWZpbmUgZWxmX2NoZWNrX2FyY2goeCkJZWxmX2NoZWNrX2FyY2hfaWEzMih4KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcC5oIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcC5oCmluZGV4IDViZDIwNjkuLjQ0ZDRmODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXAuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwLmgKQEAgLTcsNyArNyw2MiBAQAogIyBpbmNsdWRlICJmaXhtYXBfNjQuaCIKICNlbmRpZgogCitleHRlcm4gaW50IGZpeG1hcHNfc2V0OworCit2b2lkIF9fbmF0aXZlX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LCBwdGVfdCBwdGUpOwordm9pZCBuYXRpdmVfc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCisJCSAgICAgICB1bnNpZ25lZCBsb25nIHBoeXMsIHBncHJvdF90IGZsYWdzKTsKKworI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3NldF9maXhtYXAoZW51bSBmaXhlZF9hZGRyZXNzZXMgaWR4LAorCQkJCXVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpCit7CisJbmF0aXZlX3NldF9maXhtYXAoaWR4LCBwaHlzLCBmbGFncyk7Cit9CisjZW5kaWYKKworI2RlZmluZSBzZXRfZml4bWFwKGlkeCwgcGh5cykJCQkJXAorCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMKQorCisvKgorICogU29tZSBoYXJkd2FyZSB3YW50cyB0byBnZXQgZml4bWFwcGVkIHdpdGhvdXQgY2FjaGluZy4KKyAqLworI2RlZmluZSBzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBwaHlzKQkJCVwKKwlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTF9OT0NBQ0hFKQorCiAjZGVmaW5lIGNsZWFyX2ZpeG1hcChpZHgpCQkJXAogCV9fc2V0X2ZpeG1hcChpZHgsIDAsIF9fcGdwcm90KDApKQogCisjZGVmaW5lIF9fZml4X3RvX3ZpcnQoeCkJKEZJWEFERFJfVE9QIC0gKCh4KSA8PCBQQUdFX1NISUZUKSkKKyNkZWZpbmUgX192aXJ0X3RvX2ZpeCh4KQkoKEZJWEFERFJfVE9QIC0gKCh4KSZQQUdFX01BU0spKSA+PiBQQUdFX1NISUZUKQorCitleHRlcm4gdm9pZCBfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KHZvaWQpOworCisvKgorICogJ2luZGV4IHRvIGFkZHJlc3MnIHRyYW5zbGF0aW9uLiBJZiBhbnlvbmUgdHJpZXMgdG8gdXNlIHRoZSBpZHgKKyAqIGRpcmVjdGx5IHdpdGhvdXQgdHJhbnNsYXRpb24sIHdlIGNhdGNoIHRoZSBidWcgd2l0aCBhIE5VTEwtZGVmZXJlbmNlCisgKiBrZXJuZWwgb29wcy4gSWxsZWdhbCByYW5nZXMgb2YgaW5jb21pbmcgaW5kaWNlcyBhcmUgY2F1Z2h0IHRvby4KKyAqLworc3RhdGljIF9fYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIGZpeF90b192aXJ0KGNvbnN0IHVuc2lnbmVkIGludCBpZHgpCit7CisJLyoKKwkgKiB0aGlzIGJyYW5jaCBnZXRzIGNvbXBsZXRlbHkgZWxpbWluYXRlZCBhZnRlciBpbmxpbmluZywKKwkgKiBleGNlcHQgd2hlbiBzb21lb25lIHRyaWVzIHRvIHVzZSBmaXhhZGRyIGluZGljZXMgaW4gYW4KKwkgKiBpbGxlZ2FsIHdheS4gKHN1Y2ggYXMgbWl4aW5nIHVwIGFkZHJlc3MgdHlwZXMgb3IgdXNpbmcKKwkgKiBvdXQtb2YtcmFuZ2UgaW5kaWNlcykuCisJICoKKwkgKiBJZiBpdCBkb2Vzbid0IGdldCByZW1vdmVkLCB0aGUgbGlua2VyIHdpbGwgY29tcGxhaW4KKwkgKiBsb3VkbHkgd2l0aCBhIHJlYXNvbmFibHkgY2xlYXIgZXJyb3IgbWVzc2FnZS4uCisJICovCisJaWYgKGlkeCA+PSBfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMpCisJCV9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3QoKTsKKworCXJldHVybiBfX2ZpeF90b192aXJ0KGlkeCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB2aXJ0X3RvX2ZpeChjb25zdCB1bnNpZ25lZCBsb25nIHZhZGRyKQoreworCUJVR19PTih2YWRkciA+PSBGSVhBRERSX1RPUCB8fCB2YWRkciA8IEZJWEFERFJfU1RBUlQpOworCXJldHVybiBfX3ZpcnRfdG9fZml4KHZhZGRyKTsKK30KICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF8zMi5oCmluZGV4IDRiOTYxNDguLmFhZTJmMDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzMyLmgKQEAgLTc5LDEwICs3OSw2IEBACiAJRklYX0tNQVBfQkVHSU4sCS8qIHJlc2VydmVkIHB0ZSdzIGZvciB0ZW1wb3Jhcnkga2VybmVsIG1hcHBpbmdzICovCiAJRklYX0tNQVBfRU5EID0gRklYX0tNQVBfQkVHSU4rKEtNX1RZUEVfTlIqTlJfQ1BVUyktMSwKICNlbmRpZgotI2lmZGVmIENPTkZJR19BQ1BJCi0JRklYX0FDUElfQkVHSU4sCi0JRklYX0FDUElfRU5EID0gRklYX0FDUElfQkVHSU4gKyBGSVhfQUNQSV9QQUdFUyAtIDEsCi0jZW5kaWYKICNpZmRlZiBDT05GSUdfUENJX01NQ09ORklHCiAJRklYX1BDSUVfTUNGRywKICNlbmRpZgpAQCAtMTAzLDIzICs5OSwxOCBAQAogCQkJKF9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMgJiA1MTEpLAogCUZJWF9CVE1BUF9CRUdJTiA9IEZJWF9CVE1BUF9FTkQgKyBOUl9GSVhfQlRNQVBTKkZJWF9CVE1BUFNfTkVTVElORyAtIDEsCiAJRklYX1dQX1RFU1QsCisjaWZkZWYgQ09ORklHX0FDUEkKKwlGSVhfQUNQSV9CRUdJTiwKKwlGSVhfQUNQSV9FTkQgPSBGSVhfQUNQSV9CRUdJTiArIEZJWF9BQ1BJX1BBR0VTIC0gMSwKKyNlbmRpZgogI2lmZGVmIENPTkZJR19QUk9WSURFX09IQ0kxMzk0X0RNQV9JTklUCiAJRklYX09IQ0kxMzk0X0JBU0UsCiAjZW5kaWYKIAlfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMKIH07CiAKLWV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCi0JCQkgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncyk7CiBleHRlcm4gdm9pZCByZXNlcnZlX3RvcF9hZGRyZXNzKHVuc2lnbmVkIGxvbmcgcmVzZXJ2ZSk7CiAKLSNkZWZpbmUgc2V0X2ZpeG1hcChpZHgsIHBoeXMpCQkJCVwKLQlfX3NldF9maXhtYXAoaWR4LCBwaHlzLCBQQUdFX0tFUk5FTCkKLS8qCi0gKiBTb21lIGhhcmR3YXJlIHdhbnRzIHRvIGdldCBmaXhtYXBwZWQgd2l0aG91dCBjYWNoaW5nLgotICovCi0jZGVmaW5lIHNldF9maXhtYXBfbm9jYWNoZShpZHgsIHBoeXMpCQkJXAotCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMX05PQ0FDSEUpCiAKICNkZWZpbmUgRklYQUREUl9UT1AJKCh1bnNpZ25lZCBsb25nKV9fRklYQUREUl9UT1ApCiAKQEAgLTEyOCwzOCArMTE5LDUgQEAKICNkZWZpbmUgRklYQUREUl9TVEFSVAkJKEZJWEFERFJfVE9QIC0gX19GSVhBRERSX1NJWkUpCiAjZGVmaW5lIEZJWEFERFJfQk9PVF9TVEFSVAkoRklYQUREUl9UT1AgLSBfX0ZJWEFERFJfQk9PVF9TSVpFKQogCi0jZGVmaW5lIF9fZml4X3RvX3ZpcnQoeCkJKEZJWEFERFJfVE9QIC0gKCh4KSA8PCBQQUdFX1NISUZUKSkKLSNkZWZpbmUgX192aXJ0X3RvX2ZpeCh4KQkoKEZJWEFERFJfVE9QIC0gKCh4KSZQQUdFX01BU0spKSA+PiBQQUdFX1NISUZUKQotCi1leHRlcm4gdm9pZCBfX3RoaXNfZml4bWFwX2RvZXNfbm90X2V4aXN0KHZvaWQpOwotCi0vKgotICogJ2luZGV4IHRvIGFkZHJlc3MnIHRyYW5zbGF0aW9uLiBJZiBhbnlvbmUgdHJpZXMgdG8gdXNlIHRoZSBpZHgKLSAqIGRpcmVjdGx5IHdpdGhvdXQgdHJhbmxhdGlvbiwgd2UgY2F0Y2ggdGhlIGJ1ZyB3aXRoIGEgTlVMTC1kZWZlcmVuY2UKLSAqIGtlcm5lbCBvb3BzLiBJbGxlZ2FsIHJhbmdlcyBvZiBpbmNvbWluZyBpbmRpY2VzIGFyZSBjYXVnaHQgdG9vLgotICovCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcgZml4X3RvX3ZpcnQoY29uc3QgdW5zaWduZWQgaW50IGlkeCkKLXsKLQkvKgotCSAqIHRoaXMgYnJhbmNoIGdldHMgY29tcGxldGVseSBlbGltaW5hdGVkIGFmdGVyIGlubGluaW5nLAotCSAqIGV4Y2VwdCB3aGVuIHNvbWVvbmUgdHJpZXMgdG8gdXNlIGZpeGFkZHIgaW5kaWNlcyBpbiBhbgotCSAqIGlsbGVnYWwgd2F5LiAoc3VjaCBhcyBtaXhpbmcgdXAgYWRkcmVzcyB0eXBlcyBvciB1c2luZwotCSAqIG91dC1vZi1yYW5nZSBpbmRpY2VzKS4KLQkgKgotCSAqIElmIGl0IGRvZXNuJ3QgZ2V0IHJlbW92ZWQsIHRoZSBsaW5rZXIgd2lsbCBjb21wbGFpbgotCSAqIGxvdWRseSB3aXRoIGEgcmVhc29uYWJseSBjbGVhciBlcnJvciBtZXNzYWdlLi4KLQkgKi8KLQlpZiAoaWR4ID49IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcykKLQkJX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCgpOwotCi0JcmV0dXJuIF9fZml4X3RvX3ZpcnQoaWR4KTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHZpcnRfdG9fZml4KGNvbnN0IHVuc2lnbmVkIGxvbmcgdmFkZHIpCi17Ci0JQlVHX09OKHZhZGRyID49IEZJWEFERFJfVE9QIHx8IHZhZGRyIDwgRklYQUREUl9TVEFSVCk7Ci0JcmV0dXJuIF9fdmlydF90b19maXgodmFkZHIpOwotfQotCiAjZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvZml4bWFwXzY0LmgKaW5kZXggMzU1ZDI2YS4uMDBmM2Q3NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2ZpeG1hcF82NC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9maXhtYXBfNjQuaApAQCAtMTIsNiArMTIsNyBAQAogI2RlZmluZSBfQVNNX0ZJWE1BUF82NF9ICiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxhc20vYWNwaS5oPgogI2luY2x1ZGUgPGFzbS9hcGljZGVmLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KICNpbmNsdWRlIDxhc20vdnN5c2NhbGwuaD4KQEAgLTM5LDMwICs0MCwzOCBAQAogCVZTWVNDQUxMX0hQRVQsCiAJRklYX0RCR1BfQkFTRSwKIAlGSVhfRUFSTFlDT05fTUVNX0JBU0UsCi0JRklYX0hQRVRfQkFTRSwKIAlGSVhfQVBJQ19CQVNFLAkvKiBsb2NhbCAoQ1BVKSBBUElDKSAtLSByZXF1aXJlZCBmb3IgU01QIG9yIG5vdCAqLwogCUZJWF9JT19BUElDX0JBU0VfMCwKIAlGSVhfSU9fQVBJQ19CQVNFX0VORCA9IEZJWF9JT19BUElDX0JBU0VfMCArIE1BWF9JT19BUElDUyAtIDEsCiAJRklYX0VGSV9JT19NQVBfTEFTVF9QQUdFLAogCUZJWF9FRklfSU9fTUFQX0ZJUlNUX1BBR0UgPSBGSVhfRUZJX0lPX01BUF9MQVNUX1BBR0UKIAkJCQkgICsgTUFYX0VGSV9JT19QQUdFUyAtIDEsCisjaWZkZWYgQ09ORklHX1BBUkFWSVJUCisJRklYX1BBUkFWSVJUX0JPT1RNQVAsCisjZW5kaWYKKyNpZmRlZiBDT05GSUdfQUNQSQorCUZJWF9BQ1BJX0JFR0lOLAorCUZJWF9BQ1BJX0VORCA9IEZJWF9BQ1BJX0JFR0lOICsgRklYX0FDUElfUEFHRVMgLSAxLAorI2VuZGlmCiAjaWZkZWYgQ09ORklHX1BST1ZJREVfT0hDSTEzOTRfRE1BX0lOSVQKIAlGSVhfT0hDSTEzOTRfQkFTRSwKICNlbmRpZgorCV9fZW5kX29mX3Blcm1hbmVudF9maXhlZF9hZGRyZXNzZXMsCisJLyoKKwkgKiAyNTYgdGVtcG9yYXJ5IGJvb3QtdGltZSBtYXBwaW5ncywgdXNlZCBieSBlYXJseV9pb3JlbWFwKCksCisJICogYmVmb3JlIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgorCSAqCisJICogV2Ugcm91bmQgaXQgdXAgdG8gdGhlIG5leHQgNTEyIHBhZ2VzIGJvdW5kYXJ5IHNvIHRoYXQgd2UKKwkgKiBjYW4gaGF2ZSBhIHNpbmdsZSBwZ2QgZW50cnkgYW5kIGEgc2luZ2xlIHB0ZSB0YWJsZToKKwkgKi8KKyNkZWZpbmUgTlJfRklYX0JUTUFQUwkJNjQKKyNkZWZpbmUgRklYX0JUTUFQU19ORVNUSU5HCTQKKwlGSVhfQlRNQVBfRU5EID0gX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcyArIDUxMiAtCisJCQkoX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcyAmIDUxMSksCisJRklYX0JUTUFQX0JFR0lOID0gRklYX0JUTUFQX0VORCArIE5SX0ZJWF9CVE1BUFMqRklYX0JUTUFQU19ORVNUSU5HIC0gMSwKIAlfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMKIH07CiAKLWV4dGVybiB2b2lkIF9fc2V0X2ZpeG1hcChlbnVtIGZpeGVkX2FkZHJlc3NlcyBpZHgsCi0JCQkgdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncyk7Ci0KLSNkZWZpbmUgc2V0X2ZpeG1hcChpZHgsIHBoeXMpCQkJXAotCV9fc2V0X2ZpeG1hcChpZHgsIHBoeXMsIFBBR0VfS0VSTkVMKQotLyoKLSAqIFNvbWUgaGFyZHdhcmUgd2FudHMgdG8gZ2V0IGZpeG1hcHBlZCB3aXRob3V0IGNhY2hpbmcuCi0gKi8KLSNkZWZpbmUgc2V0X2ZpeG1hcF9ub2NhY2hlKGlkeCwgcGh5cykJCQlcCi0JX19zZXRfZml4bWFwKGlkeCwgcGh5cywgUEFHRV9LRVJORUxfTk9DQUNIRSkKLQogI2RlZmluZSBGSVhBRERSX1RPUAkoVlNZU0NBTExfRU5ELVBBR0VfU0laRSkKICNkZWZpbmUgRklYQUREUl9TSVpFCShfX2VuZF9vZl9maXhlZF9hZGRyZXNzZXMgPDwgUEFHRV9TSElGVCkKICNkZWZpbmUgRklYQUREUl9TVEFSVAkoRklYQUREUl9UT1AgLSBGSVhBRERSX1NJWkUpCkBAIC03MSwzMCArODAsNCBAQAogI2RlZmluZSBGSVhBRERSX1VTRVJfU1RBUlQJKCh1bnNpZ25lZCBsb25nKVZTWVNDQUxMMzJfVlNZU0NBTEwpCiAjZGVmaW5lIEZJWEFERFJfVVNFUl9FTkQJKEZJWEFERFJfVVNFUl9TVEFSVCArIFBBR0VfU0laRSkKIAotI2RlZmluZSBfX2ZpeF90b192aXJ0KHgpCShGSVhBRERSX1RPUCAtICgoeCkgPDwgUEFHRV9TSElGVCkpCi0KLWV4dGVybiB2b2lkIF9fdGhpc19maXhtYXBfZG9lc19ub3RfZXhpc3Qodm9pZCk7Ci0KLS8qCi0gKiAnaW5kZXggdG8gYWRkcmVzcycgdHJhbnNsYXRpb24uIElmIGFueW9uZSB0cmllcyB0byB1c2UgdGhlIGlkeAotICogZGlyZWN0bHkgd2l0aG91dCB0cmFuc2xhdGlvbiwgd2UgY2F0Y2ggdGhlIGJ1ZyB3aXRoIGEgTlVMTC1kZWZlcmVuY2UKLSAqIGtlcm5lbCBvb3BzLiBJbGxlZ2FsIHJhbmdlcyBvZiBpbmNvbWluZyBpbmRpY2VzIGFyZSBjYXVnaHQgdG9vLgotICovCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcgZml4X3RvX3ZpcnQoY29uc3QgdW5zaWduZWQgaW50IGlkeCkKLXsKLQkvKgotCSAqIHRoaXMgYnJhbmNoIGdldHMgY29tcGxldGVseSBlbGltaW5hdGVkIGFmdGVyIGlubGluaW5nLAotCSAqIGV4Y2VwdCB3aGVuIHNvbWVvbmUgdHJpZXMgdG8gdXNlIGZpeGFkZHIgaW5kaWNlcyBpbiBhbgotCSAqIGlsbGVnYWwgd2F5LiAoc3VjaCBhcyBtaXhpbmcgdXAgYWRkcmVzcyB0eXBlcyBvciB1c2luZwotCSAqIG91dC1vZi1yYW5nZSBpbmRpY2VzKS4KLQkgKgotCSAqIElmIGl0IGRvZXNuJ3QgZ2V0IHJlbW92ZWQsIHRoZSBsaW5rZXIgd2lsbCBjb21wbGFpbgotCSAqIGxvdWRseSB3aXRoIGEgcmVhc29uYWJseSBjbGVhciBlcnJvciBtZXNzYWdlLi4KLQkgKi8KLQlpZiAoaWR4ID49IF9fZW5kX29mX2ZpeGVkX2FkZHJlc3NlcykKLQkJX190aGlzX2ZpeG1hcF9kb2VzX25vdF9leGlzdCgpOwotCi0JcmV0dXJuIF9fZml4X3RvX3ZpcnQoaWR4KTsKLX0KLQogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZnRyYWNlLmggYi9pbmNsdWRlL2FzbS14ODYvZnRyYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE4NDQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9mdHJhY2UuaApAQCAtMCwwICsxLDE0IEBACisjaWZuZGVmIF9BU01fWDg2X0ZUUkFDRQorI2RlZmluZSBfQVNNX1NQQVJDNjRfRlRSQUNFCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisjZGVmaW5lIE1DT1VOVF9BRERSCQkoKGxvbmcpKG1jb3VudCkpCisjZGVmaW5lIE1DT1VOVF9JTlNOX1NJWkUJNSAvKiBzaXplb2YgbWNvdW50IGNhbGwgKi8KKworI2lmbmRlZiBfX0FTU0VNQkxZX18KK2V4dGVybiB2b2lkIG1jb3VudCh2b2lkKTsKKyNlbmRpZgorCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisjZW5kaWYgLyogX0FTTV9YODZfRlRSQUNFICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvZ2FydC5oIGIvaW5jbHVkZS9hc20teDg2L2dhcnQuaAppbmRleCA5MDk1OGVkLi4zM2I5YWVlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZ2FydC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9nYXJ0LmgKQEAgLTEsMzQgKzEsNzIgQEAKLSNpZm5kZWYgX0FTTV9YODY2NF9JT01NVV9ICi0jZGVmaW5lIF9BU01fWDg2NjRfSU9NTVVfSCAxCisjaWZuZGVmIF9BU01fWDg2NjRfR0FSVF9ICisjZGVmaW5lIF9BU01fWDg2NjRfR0FSVF9IIDEKIAotZXh0ZXJuIHZvaWQgcGNpX2lvbW11X3NodXRkb3duKHZvaWQpOwotZXh0ZXJuIHZvaWQgbm9faW9tbXVfaW5pdCh2b2lkKTsKLWV4dGVybiBpbnQgZm9yY2VfaW9tbXUsIG5vX2lvbW11OwotZXh0ZXJuIGludCBpb21tdV9kZXRlY3RlZDsKLSNpZmRlZiBDT05GSUdfR0FSVF9JT01NVQotZXh0ZXJuIHZvaWQgZ2FydF9pb21tdV9pbml0KHZvaWQpOwotZXh0ZXJuIHZvaWQgZ2FydF9pb21tdV9zaHV0ZG93bih2b2lkKTsKLWV4dGVybiB2b2lkIF9faW5pdCBnYXJ0X3BhcnNlX29wdGlvbnMoY2hhciAqKTsKLWV4dGVybiB2b2lkIGVhcmx5X2dhcnRfaW9tbXVfY2hlY2sodm9pZCk7Ci1leHRlcm4gdm9pZCBnYXJ0X2lvbW11X2hvbGVfaW5pdCh2b2lkKTsKKyNpbmNsdWRlIDxhc20vZTgyMC5oPgorI2luY2x1ZGUgPGFzbS9pb21tdS5oPgorCitleHRlcm4gdm9pZCBzZXRfdXBfZ2FydF9yZXN1bWUodTMyLCB1MzIpOworCiBleHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfb3JkZXI7CiBleHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfZm9yY2U7Ci1leHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmU7Ci1leHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZDsKLWV4dGVybiBpbnQgZ2FydF9pb21tdV9hcGVydHVyZV9kaXNhYmxlZDsKIGV4dGVybiBpbnQgZml4X2FwZXJ0dXJlOwotI2Vsc2UKLSNkZWZpbmUgZ2FydF9pb21tdV9hcGVydHVyZSAwCi0jZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCAwCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBlYXJseV9nYXJ0X2lvbW11X2NoZWNrKHZvaWQpCisvKiBQVEUgYml0cy4gKi8KKyNkZWZpbmUgR1BURV9WQUxJRAkxCisjZGVmaW5lIEdQVEVfQ09IRVJFTlQJMgorCisvKiBBcGVydHVyZSBjb250cm9sIHJlZ2lzdGVyIGJpdHMuICovCisjZGVmaW5lIEdBUlRFTgkJKDE8PDApCisjZGVmaW5lIERJU0dBUlRDUFUJKDE8PDQpCisjZGVmaW5lIERJU0dBUlRJTwkoMTw8NSkKKworLyogR0FSVCBjYWNoZSBjb250cm9sIHJlZ2lzdGVyIGJpdHMuICovCisjZGVmaW5lIElOVkdBUlQJCSgxPDwwKQorI2RlZmluZSBHQVJUUFRFRVJSCSgxPDwxKQorCisvKiBLOCBPbi1jcHUgR0FSVCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgQU1ENjRfR0FSVEFQRVJUVVJFQ1RMCTB4OTAKKyNkZWZpbmUgQU1ENjRfR0FSVEFQRVJUVVJFQkFTRQkweDk0CisjZGVmaW5lIEFNRDY0X0dBUlRUQUJMRUJBU0UJMHg5OAorI2RlZmluZSBBTUQ2NF9HQVJUQ0FDSEVDVEwJMHg5YworI2RlZmluZSBBTUQ2NF9HQVJURU4JCSgxPDwwKQorCitzdGF0aWMgaW5saW5lIHZvaWQgZW5hYmxlX2dhcnRfdHJhbnNsYXRpb24oc3RydWN0IHBjaV9kZXYgKmRldiwgdTY0IGFkZHIpCiB7CisJdTMyIHRtcCwgY3RsOworCisgICAgICAgIC8qIGFkZHJlc3Mgb2YgdGhlIG1hcHBpbmdzIHRhYmxlICovCisgICAgICAgIGFkZHIgPj49IDEyOworICAgICAgICB0bXAgPSAodTMyKSBhZGRyPDw0OworICAgICAgICB0bXAgJj0gfjB4ZjsKKyAgICAgICAgcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRUQUJMRUJBU0UsIHRtcCk7CisKKyAgICAgICAgLyogRW5hYmxlIEdBUlQgdHJhbnNsYXRpb24gZm9yIHRoaXMgaGFtbWVyLiAqLworICAgICAgICBwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBBTUQ2NF9HQVJUQVBFUlRVUkVDVEwsICZjdGwpOworICAgICAgICBjdGwgfD0gR0FSVEVOOworICAgICAgICBjdGwgJj0gfihESVNHQVJUQ1BVIHwgRElTR0FSVElPKTsKKyAgICAgICAgcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIEFNRDY0X0dBUlRBUEVSVFVSRUNUTCwgY3RsKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGdhcnRfaW9tbXVfc2h1dGRvd24odm9pZCkKK3N0YXRpYyBpbmxpbmUgaW50IGFwZXJ0dXJlX3ZhbGlkKHU2NCBhcGVyX2Jhc2UsIHUzMiBhcGVyX3NpemUsIHUzMiBtaW5fc2l6ZSkKIHsKLX0KKwlpZiAoIWFwZXJfYmFzZSkKKwkJcmV0dXJuIDA7CiAKLSNlbmRpZgorCWlmIChhcGVyX2Jhc2UgKyBhcGVyX3NpemUgPiAweDEwMDAwMDAwMFVMTCkgeworCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIGJleW9uZCA0R0IuIElnbm9yaW5nLlxuIik7CisJCXJldHVybiAwOworCX0KKwlpZiAoZTgyMF9hbnlfbWFwcGVkKGFwZXJfYmFzZSwgYXBlcl9iYXNlICsgYXBlcl9zaXplLCBFODIwX1JBTSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJBcGVydHVyZSBwb2ludGluZyB0byBlODIwIFJBTS4gSWdub3JpbmcuXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmIChhcGVyX3NpemUgPCBtaW5fc2l6ZSkgeworCQlwcmludGsoS0VSTl9FUlIgIkFwZXJ0dXJlIHRvbyBzbWFsbCAoJWQgTUIpIHRoYW4gKCVkIE1CKVxuIiwKKwkJCQkgYXBlcl9zaXplPj4yMCwgbWluX3NpemU+PjIwKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDE7Cit9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2dlbmFwaWNfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9nZW5hcGljXzY0LmgKaW5kZXggMWRlOTMxYi4uMGY4NTA0NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2dlbmFwaWNfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZ2VuYXBpY182NC5oCkBAIC00NCw0ICs0NCw2IEBACiBleHRlcm4gdm9pZCB1dl9jcHVfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgdXZfd2FrZXVwX3NlY29uZGFyeShpbnQgcGh5c19hcGljaWQsIHVuc2lnbmVkIGludCBzdGFydF9yaXApOwogCitleHRlcm4gdm9pZCBzZXR1cF9hcGljX3JvdXRpbmcodm9pZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2dlb2RlLmggYi9pbmNsdWRlL2FzbS14ODYvZ2VvZGUuaAppbmRleCA2ZTY0NTg4Li5iYjA2MDI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvZ2VvZGUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvZ2VvZGUuaApAQCAtMTEyLDggKzExMiw4IEBACiAjZGVmaW5lIFZTQV9WUl9VTkxPQ0sJCTB4RkM1MwkvKiB1bmxvY2sgdmlydHVhbCByZWdpc3RlciAqLwogI2RlZmluZSBWU0FfVlJfU0lHTkFUVVJFCTB4MDAwMwogI2RlZmluZSBWU0FfVlJfTUVNX1NJWkUJCTB4MDIwMAotI2RlZmluZSBWU0FfU0lHCQkJMHg0MTMyCS8qIHNpZ25hdHVyZSBpcyBhc2NpaSAnVlNBMicgKi8KLQorI2RlZmluZSBBTURfVlNBX1NJRwkJMHg0MTMyCS8qIHNpZ25hdHVyZSBpcyBhc2NpaSAnVlNBMicgKi8KKyNkZWZpbmUgR1NXX1ZTQV9TSUcJCTB4NTM0ZCAgLyogR2VuZXJhbCBTb2Z0d2FyZSBzaWduYXR1cmUgKi8KIC8qIEdQSU8gKi8KIAogI2RlZmluZSBHUElPX09VVFBVVF9WQUwJCTB4MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9oYXJkaXJxLmggYi9pbmNsdWRlL2FzbS14ODYvaGFyZGlycS5oCmluZGV4IDMxNDQzNGQuLjAwMDc4N2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9oYXJkaXJxLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2hhcmRpcnEuaApAQCAtMywzICszLDkgQEAKICNlbHNlCiAjIGluY2x1ZGUgImhhcmRpcnFfNjQuaCIKICNlbmRpZgorCitleHRlcm4gdTY0IGFyY2hfaXJxX3N0YXRfY3B1KHVuc2lnbmVkIGludCBjcHUpOworI2RlZmluZSBhcmNoX2lycV9zdGF0X2NwdQlhcmNoX2lycV9zdGF0X2NwdQorCitleHRlcm4gdTY0IGFyY2hfaXJxX3N0YXQodm9pZCk7CisjZGVmaW5lIGFyY2hfaXJxX3N0YXQJCWFyY2hfaXJxX3N0YXQKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9oaWdobWVtLmggYi9pbmNsdWRlL2FzbS14ODYvaGlnaG1lbS5oCmluZGV4IGUxNTNmM2IuLjQ1MTRiMTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9oaWdobWVtLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2hpZ2htZW0uaApAQCAtNzQsNiArNzQsOSBAQAogCiAjZGVmaW5lIGZsdXNoX2NhY2hlX2ttYXBzKCkJZG8geyB9IHdoaWxlICgwKQogCitleHRlcm4gdm9pZCBhZGRfaGlnaHBhZ2VzX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJCXVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CisKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNlbmRpZiAvKiBfQVNNX0hJR0hNRU1fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2hwZXQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9ocGV0LmgKaW5kZXggNmE5YjRhYy4uODJmMWFjNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2hwZXQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaHBldC5oCkBAIC04Niw4ICs4Niw4IEBACiAjZWxzZSAvKiBDT05GSUdfSFBFVF9USU1FUiAqLwogCiBzdGF0aWMgaW5saW5lIGludCBocGV0X2VuYWJsZSh2b2lkKSB7IHJldHVybiAwOyB9Ci1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgaHBldF9yZWFkbCh1bnNpZ25lZCBsb25nIGEpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IGlzX2hwZXRfZW5hYmxlZCh2b2lkKSB7IHJldHVybiAwOyB9CisjZGVmaW5lIGhwZXRfcmVhZGwoYSkgMAogCiAjZW5kaWYKICNlbmRpZiAvKiBBU01fWDg2X0hQRVRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2h3X2lycS5oIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycS5oCmluZGV4IGJmMDI1MzkuLjE4ZjA2N2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaHdfaXJxLmgKQEAgLTEsNSArMSwxMDYgQEAKKyNpZm5kZWYgX0FTTV9IV19JUlFfSAorI2RlZmluZSBfQVNNX0hXX0lSUV9ICisKKy8qCisgKiAoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKKyAqCisgKiBtb3ZlZCBzb21lIG9mIHRoZSBvbGQgYXJjaC9pMzg2L2tlcm5lbC9pcnEuaCB0byBoZXJlLiBWWQorICoKKyAqIElSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCisgKiA8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgorICoKKyAqIGhhY2tlZCBieSBBbmRpIEtsZWVuIGZvciB4ODYtNjQuCisgKiB1bmlmaWVkIGJ5IHRnbHgKKyAqLworCisjaW5jbHVkZSA8YXNtL2lycV92ZWN0b3JzLmg+CisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKKyNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KKyNpbmNsdWRlIDxsaW51eC9wcm9maWxlLmg+CisjaW5jbHVkZSA8bGludXgvc21wLmg+CisKKyNpbmNsdWRlIDxhc20vYXRvbWljLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgorI2luY2x1ZGUgPGFzbS9zZWN0aW9ucy5oPgorCisjZGVmaW5lIHBsYXRmb3JtX2xlZ2FjeV9pcnEoaXJxKQkoKGlycSkgPCAxNikKKworLyogSW50ZXJydXB0IGhhbmRsZXJzIHJlZ2lzdGVyZWQgZHVyaW5nIGluaXRfSVJRICovCitleHRlcm4gdm9pZCBhcGljX3RpbWVyX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIGVycm9yX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIHNwdXJpb3VzX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIHRoZXJtYWxfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIHZvaWQgcmVzY2hlZHVsZV9pbnRlcnJ1cHQodm9pZCk7CisKK2V4dGVybiB2b2lkIGludmFsaWRhdGVfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQwKHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQxKHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQyKHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQzKHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ0KHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ1KHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ2KHZvaWQpOworZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ3KHZvaWQpOworCitleHRlcm4gdm9pZCBpcnFfbW92ZV9jbGVhbnVwX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiB2b2lkIHRocmVzaG9sZF9pbnRlcnJ1cHQodm9pZCk7CisKK2V4dGVybiB2b2lkIGNhbGxfZnVuY3Rpb25faW50ZXJydXB0KHZvaWQpOworCisvKiBQSUMgc3BlY2lmaWMgZnVuY3Rpb25zICovCitleHRlcm4gdm9pZCBkaXNhYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKK2V4dGVybiB2b2lkIGVuYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gaW50IGk4MjU5QV9pcnFfcGVuZGluZyh1bnNpZ25lZCBpbnQgaXJxKTsKK2V4dGVybiB2b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOworZXh0ZXJuIHZvaWQgaW5pdF84MjU5QShpbnQgYWVvaSk7CisKKy8qIElPQVBJQyAqLworI2RlZmluZSBJT19BUElDX0lSUSh4KSAoKCh4KSA+PSAxNikgfHwgKCgxPDwoeCkpICYgaW9fYXBpY19pcnFzKSkKK2V4dGVybiB1bnNpZ25lZCBsb25nIGlvX2FwaWNfaXJxczsKKworZXh0ZXJuIHZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCk7CitleHRlcm4gdm9pZCBzZXR1cF9JT19BUElDKHZvaWQpOworZXh0ZXJuIHZvaWQgZGlzYWJsZV9JT19BUElDKHZvaWQpOworZXh0ZXJuIHZvaWQgcHJpbnRfSU9fQVBJQyh2b2lkKTsKK2V4dGVybiBpbnQgSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoaW50IGJ1cywgaW50IHNsb3QsIGludCBmbik7CitleHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKK2V4dGVybiB2b2lkIGVuYWJsZV9JT19BUElDKHZvaWQpOworI2VuZGlmCisKKy8qIElQSSBmdW5jdGlvbnMgKi8KK2V4dGVybiB2b2lkIHNlbmRfSVBJX3NlbGYoaW50IHZlY3Rvcik7CitleHRlcm4gdm9pZCBzZW5kX0lQSShpbnQgZGVzdCwgaW50IHZlY3Rvcik7CisKKy8qIFN0YXRpc3RpY3MgKi8KK2V4dGVybiBhdG9taWNfdCBpcnFfZXJyX2NvdW50OworZXh0ZXJuIGF0b21pY190IGlycV9taXNfY291bnQ7CisKKy8qIEVJU0EgKi8KK2V4dGVybiB2b2lkIGVpc2Ffc2V0X2xldmVsX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKKworLyogVm95YWdlciBmdW5jdGlvbnMgKi8KK2V4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX2NwaV9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19zeXNfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfY21uX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX3RpbWVyX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX2ludmFsaWRhdGVfaW50ZXJydXB0KHZvaWQpOworZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfcmVzY2hlZHVsZV9pbnRlcnJ1cHQodm9pZCk7CitleHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19lbmFibGVfaXJxX2ludGVycnVwdCh2b2lkKTsKK2V4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX2NhbGxfZnVuY3Rpb25faW50ZXJydXB0KHZvaWQpOworCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBpbmNsdWRlICJod19pcnFfMzIuaCIKK2V4dGVybiB2b2lkICgqY29uc3QgaW50ZXJydXB0W05SX0lSUVNdKSh2b2lkKTsKICNlbHNlCi0jIGluY2x1ZGUgImh3X2lycV82NC5oIgordHlwZWRlZiBpbnQgdmVjdG9yX2lycV90W05SX1ZFQ1RPUlNdOworREVDTEFSRV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSk7CitleHRlcm4gc3BpbmxvY2tfdCB2ZWN0b3JfbG9jazsKKyNlbmRpZgorZXh0ZXJuIHZvaWQgc2V0dXBfdmVjdG9yX2lycShpbnQgY3B1KTsKKworI2VuZGlmIC8qICFBU1NFTUJMWV8gKi8KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaHdfaXJxXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvaHdfaXJxXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhODgwNTQuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2h3X2lycV8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjYgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0hXX0lSUV9ICi0jZGVmaW5lIF9BU01fSFdfSVJRX0gKLQotLyoKLSAqCWxpbnV4L2luY2x1ZGUvYXNtL2h3X2lycS5oCi0gKgotICoJKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCi0gKgotICoJbW92ZWQgc29tZSBvZiB0aGUgb2xkIGFyY2gvaTM4Ni9rZXJuZWwvaXJxLmggdG8gaGVyZS4gVlkKLSAqCi0gKglJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQotICoJPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KLSAqLwotCi0jaW5jbHVkZSA8bGludXgvcHJvZmlsZS5oPgotI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KLSNpbmNsdWRlIDxhc20vaXJxLmg+Ci0jaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+Ci0KLSNkZWZpbmUgTk1JX1ZFQ1RPUgkJMHgwMgotCi0vKgotICogVmFyaW91cyBsb3ctbGV2ZWwgaXJxIGRldGFpbHMgbmVlZGVkIGJ5IGlycS5jLCBwcm9jZXNzLmMsCi0gKiB0aW1lLmMsIGlvX2FwaWMuYyBhbmQgc21wLmMKLSAqCi0gKiBJbnRlcnJ1cHQgZW50cnkvZXhpdCBjb2RlIGF0IGJvdGggQyBhbmQgYXNzZW1ibHkgbGV2ZWwKLSAqLwotCi1leHRlcm4gdm9pZCAoKmNvbnN0IGludGVycnVwdFtOUl9JUlFTXSkodm9pZCk7Ci0KLSNpZmRlZiBDT05GSUdfU01QCi12b2lkIHJlc2NoZWR1bGVfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci0jZW5kaWYKLQotI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwotdm9pZCBhcGljX3RpbWVyX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgZXJyb3JfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBzcHVyaW91c19pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIHRoZXJtYWxfaW50ZXJydXB0KHZvaWQpOwotI2RlZmluZSBwbGF0Zm9ybV9sZWdhY3lfaXJxKGlycSkJKChpcnEpIDwgMTYpCi0jZW5kaWYKLQotdm9pZCBkaXNhYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLXZvaWQgZW5hYmxlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLWludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSk7Ci12b2lkIG1ha2VfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotdm9pZCBpbml0XzgyNTlBKGludCBhZW9pKTsKLXZvaWQgc2VuZF9JUElfc2VsZihpbnQgdmVjdG9yKTsKLXZvaWQgaW5pdF9WSVNXU19BUElDX2lycXModm9pZCk7Ci12b2lkIHNldHVwX0lPX0FQSUModm9pZCk7Ci12b2lkIGRpc2FibGVfSU9fQVBJQyh2b2lkKTsKLXZvaWQgcHJpbnRfSU9fQVBJQyh2b2lkKTsKLWludCBJT19BUElDX2dldF9QQ0lfaXJxX3ZlY3RvcihpbnQgYnVzLCBpbnQgc2xvdCwgaW50IGZuKTsKLXZvaWQgc2VuZF9JUEkoaW50IGRlc3QsIGludCB2ZWN0b3IpOwotdm9pZCBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKTsKLQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi1leHRlcm4gYXRvbWljX3QgaXJxX2Vycl9jb3VudDsKLWV4dGVybiBhdG9taWNfdCBpcnFfbWlzX2NvdW50OwotCi0jZGVmaW5lIElPX0FQSUNfSVJRKHgpICgoKHgpID49IDE2KSB8fCAoKDE8PCh4KSkgJiBpb19hcGljX2lycXMpKQotCi0jZW5kaWYgLyogX0FTTV9IV19JUlFfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2h3X2lycV82NC5oIGIvaW5jbHVkZS9hc20teDg2L2h3X2lycV82NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDYyZWYzLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9od19pcnFfNjQuaAorKysgL2Rldi9udWxsCkBAIC0xLDE3MyArMCwwIEBACi0jaWZuZGVmIF9BU01fSFdfSVJRX0gKLSNkZWZpbmUgX0FTTV9IV19JUlFfSAotCi0vKgotICoJbGludXgvaW5jbHVkZS9hc20vaHdfaXJxLmgKLSAqCi0gKgkoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKLSAqCi0gKgltb3ZlZCBzb21lIG9mIHRoZSBvbGQgYXJjaC9pMzg2L2tlcm5lbC9pcnEuaCB0byBoZXJlLiBWWQotICoKLSAqCUlSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCi0gKgk8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgotICoKLSAqCWhhY2tlZCBieSBBbmRpIEtsZWVuIGZvciB4ODYtNjQuCi0gKi8KLQotI2lmbmRlZiBfX0FTU0VNQkxZX18KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL2lycS5oPgotI2luY2x1ZGUgPGxpbnV4L3Byb2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9zbXAuaD4KLSNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KLSNlbmRpZgotCi0jZGVmaW5lIE5NSV9WRUNUT1IJCTB4MDIKLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgSUEzMl9TWVNDQUxMX1ZFQ1RPUgkweDgwCi0KLQotLyogUmVzZXJ2ZSB0aGUgbG93ZXN0IHVzYWJsZSBwcmlvcml0eSBsZXZlbCAweDIwIC0gMHgyZiBmb3IgdHJpZ2dlcmluZwotICogY2xlYW51cCBhZnRlciBpcnEgbWlncmF0aW9uLgotICovCi0jZGVmaW5lIElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgotCi0vKgotICogVmVjdG9ycyAweDMwLTB4M2YgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzLgotICovCi0jZGVmaW5lIElSUTBfVkVDVE9SCQkoRklSU1RfRVhURVJOQUxfVkVDVE9SICsgMHgxMCkKLSNkZWZpbmUgSVJRMV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDEpCi0jZGVmaW5lIElSUTJfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAyKQotI2RlZmluZSBJUlEzX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMykKLSNkZWZpbmUgSVJRNF9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDQpCi0jZGVmaW5lIElSUTVfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA1KQotI2RlZmluZSBJUlE2X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNikKLSNkZWZpbmUgSVJRN19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDcpCi0jZGVmaW5lIElSUThfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA4KQotI2RlZmluZSBJUlE5X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgOSkKLSNkZWZpbmUgSVJRMTBfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMCkKLSNkZWZpbmUgSVJRMTFfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMSkKLSNkZWZpbmUgSVJRMTJfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMikKLSNkZWZpbmUgSVJRMTNfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxMykKLSNkZWZpbmUgSVJRMTRfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxNCkKLSNkZWZpbmUgSVJRMTVfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxNSkKLQotLyoKLSAqIFNwZWNpYWwgSVJRIHZlY3RvcnMgdXNlZCBieSB0aGUgU01QIGFyY2hpdGVjdHVyZSwgMHhmMC0weGZmCi0gKgotICogIHNvbWUgb2YgdGhlIGZvbGxvd2luZyB2ZWN0b3JzIGFyZSAncmFyZScsIHRoZXkgYXJlIG1lcmdlZAotICogIGludG8gYSBzaW5nbGUgdmVjdG9yIChDQUxMX0ZVTkNUSU9OX1ZFQ1RPUikgdG8gc2F2ZSB2ZWN0b3Igc3BhY2UuCi0gKiAgVExCLCByZXNjaGVkdWxlIGFuZCBsb2NhbCBBUElDIHZlY3RvcnMgYXJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLgotICovCi0jZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCTB4ZmYKLSNkZWZpbmUgRVJST1JfQVBJQ19WRUNUT1IJMHhmZQotI2RlZmluZSBSRVNDSEVEVUxFX1ZFQ1RPUgkweGZkCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCTB4ZmMKLS8qIGZiIGZyZWUgLSBwbGVhc2UgZG9uJ3QgcmVhZGQgS0RCIGhlcmUgYmVjYXVzZSBpdCdzIHVzZWxlc3MKLSAgIChoaW50IC0gdGhpbmsgd2hhdCBhIE5NSSBiaXQgZG9lcyB0byBhIHZlY3RvcikgKi8KLSNkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkweGZhCi0jZGVmaW5lIFRIUkVTSE9MRF9BUElDX1ZFQ1RPUiAgIDB4ZjkKLS8qIGY4IGZyZWUgKi8KLSNkZWZpbmUgSU5WQUxJREFURV9UTEJfVkVDVE9SX0VORAkweGY3Ci0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9TVEFSVAkweGYwCS8qIGYwLWY3IHVzZWQgZm9yIFRMQiBmbHVzaCAqLwotCi0jZGVmaW5lIE5VTV9JTlZBTElEQVRFX1RMQl9WRUNUT1JTCTgKLQotLyoKLSAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbCwKLSAqIHRvIHdvcmsgYXJvdW5kIHRoZSAnbG9zdCBsb2NhbCBpbnRlcnJ1cHQgaWYgbW9yZSB0aGFuIDIgSVJRCi0gKiBzb3VyY2VzIHBlciBsZXZlbCcgZXJyYXRhLgotICovCi0jZGVmaW5lIExPQ0FMX1RJTUVSX1ZFQ1RPUgkweGVmCi0KLS8qCi0gKiBGaXJzdCBBUElDIHZlY3RvciBhdmFpbGFibGUgdG8gZHJpdmVyczogKHZlY3RvcnMgMHgzMC0weGVlKQotICogd2Ugc3RhcnQgYXQgMHg0MSB0byBzcHJlYWQgb3V0IHZlY3RvcnMgZXZlbmx5IGJldHdlZW4gcHJpb3JpdHkKLSAqIGxldmVscy4gKDB4ODAgaXMgdGhlIHN5c2NhbGwgdmVjdG9yKQotICovCi0jZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJKElSUTE1X1ZFQ1RPUiArIDIpCi0jZGVmaW5lIEZJUlNUX1NZU1RFTV9WRUNUT1IJMHhlZiAgIC8qIGR1cGxpY2F0ZWQgaW4gaXJxLmggKi8KLQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotCi0vKiBJbnRlcnJ1cHQgaGFuZGxlcnMgcmVnaXN0ZXJlZCBkdXJpbmcgaW5pdF9JUlEgKi8KLXZvaWQgYXBpY190aW1lcl9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIHNwdXJpb3VzX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgZXJyb3JfaW50ZXJydXB0KHZvaWQpOwotdm9pZCByZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLXZvaWQgY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGlycV9tb3ZlX2NsZWFudXBfaW50ZXJydXB0KHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDAodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0MSh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQyKHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDModm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0NCh2b2lkKTsKLXZvaWQgaW52YWxpZGF0ZV9pbnRlcnJ1cHQ1KHZvaWQpOwotdm9pZCBpbnZhbGlkYXRlX2ludGVycnVwdDYodm9pZCk7Ci12b2lkIGludmFsaWRhdGVfaW50ZXJydXB0Nyh2b2lkKTsKLXZvaWQgdGhlcm1hbF9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIHRocmVzaG9sZF9pbnRlcnJ1cHQodm9pZCk7Ci12b2lkIGk4MjU0X3RpbWVyX3Jlc3VtZSh2b2lkKTsKLQotdHlwZWRlZiBpbnQgdmVjdG9yX2lycV90W05SX1ZFQ1RPUlNdOwotREVDTEFSRV9QRVJfQ1BVKHZlY3Rvcl9pcnFfdCwgdmVjdG9yX2lycSk7Ci1leHRlcm4gdm9pZCBfX3NldHVwX3ZlY3Rvcl9pcnEoaW50IGNwdSk7Ci1leHRlcm4gc3BpbmxvY2tfdCB2ZWN0b3JfbG9jazsKLQotLyoKLSAqIFZhcmlvdXMgbG93LWxldmVsIGlycSBkZXRhaWxzIG5lZWRlZCBieSBpcnEuYywgcHJvY2Vzcy5jLAotICogdGltZS5jLCBpb19hcGljLmMgYW5kIHNtcC5jCi0gKgotICogSW50ZXJydXB0IGVudHJ5L2V4aXQgY29kZSBhdCBib3RoIEMgYW5kIGFzc2VtYmx5IGxldmVsCi0gKi8KLQotZXh0ZXJuIHZvaWQgZGlzYWJsZV84MjU5QV9pcnEodW5zaWduZWQgaW50IGlycSk7Ci1leHRlcm4gdm9pZCBlbmFibGVfODI1OUFfaXJxKHVuc2lnbmVkIGludCBpcnEpOwotZXh0ZXJuIGludCBpODI1OUFfaXJxX3BlbmRpbmcodW5zaWduZWQgaW50IGlycSk7Ci1leHRlcm4gdm9pZCBtYWtlXzgyNTlBX2lycSh1bnNpZ25lZCBpbnQgaXJxKTsKLWV4dGVybiB2b2lkIGluaXRfODI1OUEoaW50IGFlb2kpOwotZXh0ZXJuIHZvaWQgc2VuZF9JUElfc2VsZihpbnQgdmVjdG9yKTsKLWV4dGVybiB2b2lkIGluaXRfVklTV1NfQVBJQ19pcnFzKHZvaWQpOwotZXh0ZXJuIHZvaWQgc2V0dXBfSU9fQVBJQyh2b2lkKTsKLWV4dGVybiB2b2lkIGVuYWJsZV9JT19BUElDKHZvaWQpOwotZXh0ZXJuIHZvaWQgZGlzYWJsZV9JT19BUElDKHZvaWQpOwotZXh0ZXJuIHZvaWQgcHJpbnRfSU9fQVBJQyh2b2lkKTsKLWV4dGVybiBpbnQgSU9fQVBJQ19nZXRfUENJX2lycV92ZWN0b3IoaW50IGJ1cywgaW50IHNsb3QsIGludCBmbik7Ci1leHRlcm4gdm9pZCBzZW5kX0lQSShpbnQgZGVzdCwgaW50IHZlY3Rvcik7Ci1leHRlcm4gdm9pZCBzZXR1cF9pb2FwaWNfZGVzdCh2b2lkKTsKLWV4dGVybiB2b2lkIG5hdGl2ZV9pbml0X0lSUSh2b2lkKTsKLQotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW9fYXBpY19pcnFzOwotCi1leHRlcm4gYXRvbWljX3QgaXJxX2Vycl9jb3VudDsKLWV4dGVybiBhdG9taWNfdCBpcnFfbWlzX2NvdW50OwotCi0jZGVmaW5lIElPX0FQSUNfSVJRKHgpICgoKHgpID49IDE2KSB8fCAoKDE8PCh4KSkgJiBpb19hcGljX2lycXMpKQotCi0jaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotCi0jZGVmaW5lIElSUV9OQU1FMihucikgbnIjI19pbnRlcnJ1cHQodm9pZCkKLSNkZWZpbmUgSVJRX05BTUUobnIpIElSUV9OQU1FMihJUlEjI25yKQotCi0vKgotICoJU01QIGhhcyBhIGZldyBzcGVjaWFsIGludGVycnVwdHMgZm9yIElQSSBtZXNzYWdlcwotICovCi0KLSNkZWZpbmUgQlVJTERfSVJRKG5yKQkJCQlcCi0JYXNtbGlua2FnZSB2b2lkIElSUV9OQU1FKG5yKTsJCVwKLQlhc20oIlxuLnAyYWxpZ25cbiIJCQlcCi0JICAgICJJUlEiICNuciAiX2ludGVycnVwdDpcblx0IgkJXAotCSAgICAicHVzaCAkfigiICNuciAiKSA7ICIJCVwKLQkgICAgImptcCBjb21tb25faW50ZXJydXB0Iik7Ci0KLSNkZWZpbmUgcGxhdGZvcm1fbGVnYWN5X2lycShpcnEpCSgoaXJxKSA8IDE2KQotCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9BU01fSFdfSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pMzg3LmggYi9pbmNsdWRlL2FzbS14ODYvaTM4Ny5oCmluZGV4IDZiNzIyZDMuLjM3NjcyZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pMzg3LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2kzODcuaApAQCAtMTkzLDYgKzE5Myw4IEBACiAKICNlbHNlICAvKiBDT05GSUdfWDg2XzMyICovCiAKK2V4dGVybiB2b2lkIGZpbml0KHZvaWQpOworCiBzdGF0aWMgaW5saW5lIHZvaWQgdG9sZXJhbnRfZndhaXQodm9pZCkKIHsKIAlhc20gdm9sYXRpbGUoImZuY2xleCA7IGZ3YWl0Iik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaTgyNTkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCmluZGV4IDQ1ZDRkZjMuLjJmOThkZjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pODI1OS5oCkBAIC01NSw0ICs1NSw2IEBACiAJdWRlbGF5KDIpOwogfQogCitleHRlcm4gc3RydWN0IGlycV9jaGlwIGk4MjU5QV9jaGlwOworCiAjZW5kaWYJLyogX19BU01fSTgyNTlfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW8uaCBiL2luY2x1ZGUvYXNtLXg4Ni9pby5oCmluZGV4IGQ1YjExZjYuLmJmNWQ2MjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pby5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pby5oCkBAIC0zLDYgKzMsNzYgQEAKIAogI2RlZmluZSBBUkNIX0hBU19JT1JFTUFQX1dDCiAKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorCisvKgorICogZWFybHlfaW9yZW1hcCgpIGFuZCBlYXJseV9pb3VubWFwKCkgYXJlIGZvciB0ZW1wb3JhcnkgZWFybHkgYm9vdC10aW1lCisgKiBtYXBwaW5ncywgYmVmb3JlIHRoZSByZWFsIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgorICogQSBib290LXRpbWUgbWFwcGluZyBpcyBjdXJyZW50bHkgbGltaXRlZCB0byBhdCBtb3N0IDE2IHBhZ2VzLgorICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9pbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9jbGVhcih2b2lkKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfcmVzZXQodm9pZCk7CitleHRlcm4gdm9pZCAqZWFybHlfaW9yZW1hcCh1bnNpZ25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIGVhcmx5X2lvdW5tYXAodm9pZCAqYWRkciwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIF9faW9tZW0gKmZpeF9pb3JlbWFwKHVuc2lnbmVkIGlkeCwgdW5zaWduZWQgbG9uZyBwaHlzKTsKKyNlbmRpZgorCisjZGVmaW5lIGJ1aWxkX21taW9fcmVhZChuYW1lLCBzaXplLCB0eXBlLCByZWcsIGJhcnJpZXIpIFwKK3N0YXRpYyBpbmxpbmUgdHlwZSBuYW1lKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikgXAoreyB0eXBlIHJldDsgYXNtIHZvbGF0aWxlKCJtb3YiIHNpemUgIiAlMSwlMCI6Ij0iIHJlZyAocmV0KSBcCis6Im0iICgqKHZvbGF0aWxlIHR5cGUgX19mb3JjZSAqKWFkZHIpIGJhcnJpZXIpOyByZXR1cm4gcmV0OyB9CisKKyNkZWZpbmUgYnVpbGRfbW1pb193cml0ZShuYW1lLCBzaXplLCB0eXBlLCByZWcsIGJhcnJpZXIpIFwKK3N0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHR5cGUgdmFsLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpIFwKK3sgYXNtIHZvbGF0aWxlKCJtb3YiIHNpemUgIiAlMCwlMSI6IDpyZWcgKHZhbCksIFwKKyJtIiAoKih2b2xhdGlsZSB0eXBlIF9fZm9yY2UgKilhZGRyKSBiYXJyaWVyKTsgfQorCitidWlsZF9tbWlvX3JlYWQocmVhZGIsICJiIiwgdW5zaWduZWQgY2hhciwgInEiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3JlYWQocmVhZHcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb19yZWFkKHJlYWRsLCAibCIsIHVuc2lnbmVkIGludCwgInIiLCA6Im1lbW9yeSIpCisKK2J1aWxkX21taW9fcmVhZChfX3JlYWRiLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZHcsICJ3IiwgdW5zaWduZWQgc2hvcnQsICJyIiwgKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZGwsICJsIiwgdW5zaWduZWQgaW50LCAiciIsICkKKworYnVpbGRfbW1pb193cml0ZSh3cml0ZWIsICJiIiwgdW5zaWduZWQgY2hhciwgInEiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3dyaXRlKHdyaXRldywgInciLCB1bnNpZ25lZCBzaG9ydCwgInIiLCA6Im1lbW9yeSIpCitidWlsZF9tbWlvX3dyaXRlKHdyaXRlbCwgImwiLCB1bnNpZ25lZCBpbnQsICJyIiwgOiJtZW1vcnkiKQorCitidWlsZF9tbWlvX3dyaXRlKF9fd3JpdGViLCAiYiIsIHVuc2lnbmVkIGNoYXIsICJxIiwgKQorYnVpbGRfbW1pb193cml0ZShfX3dyaXRldywgInciLCB1bnNpZ25lZCBzaG9ydCwgInIiLCApCitidWlsZF9tbWlvX3dyaXRlKF9fd3JpdGVsLCAibCIsIHVuc2lnbmVkIGludCwgInIiLCApCisKKyNkZWZpbmUgcmVhZGJfcmVsYXhlZChhKSBfX3JlYWRiKGEpCisjZGVmaW5lIHJlYWR3X3JlbGF4ZWQoYSkgX19yZWFkdyhhKQorI2RlZmluZSByZWFkbF9yZWxheGVkKGEpIF9fcmVhZGwoYSkKKyNkZWZpbmUgX19yYXdfcmVhZGIgX19yZWFkYgorI2RlZmluZSBfX3Jhd19yZWFkdyBfX3JlYWR3CisjZGVmaW5lIF9fcmF3X3JlYWRsIF9fcmVhZGwKKworI2RlZmluZSBfX3Jhd193cml0ZWIgX193cml0ZWIKKyNkZWZpbmUgX19yYXdfd3JpdGV3IF9fd3JpdGV3CisjZGVmaW5lIF9fcmF3X3dyaXRlbCBfX3dyaXRlbAorCisjZGVmaW5lIG1taW93YigpIGJhcnJpZXIoKQorCisjaWZkZWYgQ09ORklHX1g4Nl82NAorYnVpbGRfbW1pb19yZWFkKHJlYWRxLCAicSIsIHVuc2lnbmVkIGxvbmcsICJyIiwgOiJtZW1vcnkiKQorYnVpbGRfbW1pb19yZWFkKF9fcmVhZHEsICJxIiwgdW5zaWduZWQgbG9uZywgInIiLCApCitidWlsZF9tbWlvX3dyaXRlKHdyaXRlcSwgInEiLCB1bnNpZ25lZCBsb25nLCAiciIsIDoibWVtb3J5IikKK2J1aWxkX21taW9fd3JpdGUoX193cml0ZXEsICJxIiwgdW5zaWduZWQgbG9uZywgInIiLCApCisKKyNkZWZpbmUgcmVhZHFfcmVsYXhlZChhKSBfX3JlYWRxKGEpCisjZGVmaW5lIF9fcmF3X3JlYWRxIF9fcmVhZHEKKyNkZWZpbmUgX19yYXdfd3JpdGVxIHdyaXRlcQorCisvKiBMZXQgcGVvcGxlIGtub3cgd2UgaGF2ZSB0aGVtICovCisjZGVmaW5lIHJlYWRxIHJlYWRxCisjZGVmaW5lIHdyaXRlcSB3cml0ZXEKKyNlbmRpZgorCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJpb18zMi5oIgogI2Vsc2UKQEAgLTE2LDQgKzg2LDE3IEBACiAJCQkJdW5zaWduZWQgbG9uZyBwcm90X3ZhbCk7CiBleHRlcm4gdm9pZCBfX2lvbWVtICppb3JlbWFwX3djKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOwogCisvKgorICogZWFybHlfaW9yZW1hcCgpIGFuZCBlYXJseV9pb3VubWFwKCkgYXJlIGZvciB0ZW1wb3JhcnkgZWFybHkgYm9vdC10aW1lCisgKiBtYXBwaW5ncywgYmVmb3JlIHRoZSByZWFsIGlvcmVtYXAoKSBpcyBmdW5jdGlvbmFsLgorICogQSBib290LXRpbWUgbWFwcGluZyBpcyBjdXJyZW50bHkgbGltaXRlZCB0byBhdCBtb3N0IDE2IHBhZ2VzLgorICovCitleHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2luaXQodm9pZCk7CitleHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX2NsZWFyKHZvaWQpOworZXh0ZXJuIHZvaWQgZWFybHlfaW9yZW1hcF9yZXNldCh2b2lkKTsKK2V4dGVybiB2b2lkICplYXJseV9pb3JlbWFwKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHZvaWQgZWFybHlfaW91bm1hcCh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHZvaWQgX19pb21lbSAqZml4X2lvcmVtYXAodW5zaWduZWQgaWR4LCB1bnNpZ25lZCBsb25nIHBoeXMpOworCisKICNlbmRpZiAvKiBfQVNNX1g4Nl9JT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW9fMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCmluZGV4IDA0OWU4MWUuLjRkZjQ0ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pb18zMi5oCkBAIC0xMjIsMTggKzEyMiw2IEBACiBleHRlcm4gdm9pZCBpb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcik7CiAKIC8qCi0gKiBlYXJseV9pb3JlbWFwKCkgYW5kIGVhcmx5X2lvdW5tYXAoKSBhcmUgZm9yIHRlbXBvcmFyeSBlYXJseSBib290LXRpbWUKLSAqIG1hcHBpbmdzLCBiZWZvcmUgdGhlIHJlYWwgaW9yZW1hcCgpIGlzIGZ1bmN0aW9uYWwuCi0gKiBBIGJvb3QtdGltZSBtYXBwaW5nIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIGF0IG1vc3QgMTYgcGFnZXMuCi0gKi8KLWV4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIGVhcmx5X2lvcmVtYXBfY2xlYXIodm9pZCk7Ci1leHRlcm4gdm9pZCBlYXJseV9pb3JlbWFwX3Jlc2V0KHZvaWQpOwotZXh0ZXJuIHZvaWQgKmVhcmx5X2lvcmVtYXAodW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdm9pZCBlYXJseV9pb3VubWFwKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7Ci1leHRlcm4gdm9pZCBfX2lvbWVtICpmaXhfaW9yZW1hcCh1bnNpZ25lZCBpZHgsIHVuc2lnbmVkIGxvbmcgcGh5cyk7Ci0KLS8qCiAgKiBJU0EgSS9PIGJ1cyBtZW1vcnkgYWRkcmVzc2VzIGFyZSAxOjEgd2l0aCB0aGUgcGh5c2ljYWwgYWRkcmVzcy4KICAqLwogI2RlZmluZSBpc2FfdmlydF90b19idXMgdmlydF90b19waHlzCkBAIC0xNDksNTUgKzEzNyw2IEBACiAjZGVmaW5lIHZpcnRfdG9fYnVzIHZpcnRfdG9fcGh5cwogI2RlZmluZSBidXNfdG9fdmlydCBwaHlzX3RvX3ZpcnQKIAotLyoKLSAqIHJlYWRYL3dyaXRlWCgpIGFyZSB1c2VkIHRvIGFjY2VzcyBtZW1vcnkgbWFwcGVkIGRldmljZXMuIE9uIHNvbWUKLSAqIGFyY2hpdGVjdHVyZXMgdGhlIG1lbW9yeSBtYXBwZWQgSU8gc3R1ZmYgbmVlZHMgdG8gYmUgYWNjZXNzZWQKLSAqIGRpZmZlcmVudGx5LiBPbiB0aGUgeDg2IGFyY2hpdGVjdHVyZSwgd2UganVzdCByZWFkL3dyaXRlIHRoZQotICogbWVtb3J5IGxvY2F0aW9uIGRpcmVjdGx5LgotICovCi0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciByZWFkYihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICoodm9sYXRpbGUgdW5zaWduZWQgY2hhciBfX2ZvcmNlICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBzaG9ydCByZWFkdyhjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICoodm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgX19mb3JjZSAqKWFkZHI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IHJlYWRsKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgX19mb3JjZSAqKSBhZGRyOwotfQotCi0jZGVmaW5lIHJlYWRiX3JlbGF4ZWQoYWRkcikgcmVhZGIoYWRkcikKLSNkZWZpbmUgcmVhZHdfcmVsYXhlZChhZGRyKSByZWFkdyhhZGRyKQotI2RlZmluZSByZWFkbF9yZWxheGVkKGFkZHIpIHJlYWRsKGFkZHIpCi0jZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCi0jZGVmaW5lIF9fcmF3X3JlYWR3IHJlYWR3Ci0jZGVmaW5lIF9fcmF3X3JlYWRsIHJlYWRsCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZWIodW5zaWduZWQgY2hhciBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIF9fZm9yY2UgKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHdyaXRldyh1bnNpZ25lZCBzaG9ydCBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCBfX2ZvcmNlICopYWRkciA9IGI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZWwodW5zaWduZWQgaW50IGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKHZvbGF0aWxlIHVuc2lnbmVkIGludCBfX2ZvcmNlICopYWRkciA9IGI7Ci19Ci0jZGVmaW5lIF9fcmF3X3dyaXRlYiB3cml0ZWIKLSNkZWZpbmUgX19yYXdfd3JpdGV3IHdyaXRldwotI2RlZmluZSBfX3Jhd193cml0ZWwgd3JpdGVsCi0KLSNkZWZpbmUgbW1pb3diKCkKLQogc3RhdGljIGlubGluZSB2b2lkCiBtZW1zZXRfaW8odm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyLCB1bnNpZ25lZCBjaGFyIHZhbCwgaW50IGNvdW50KQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2lvXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaAppbmRleCAwOTMwYmVkLi5kZGQ4MDU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvaW9fNjQuaApAQCAtMjA0LDc3ICsyMDQsNiBAQAogI2RlZmluZSB2aXJ0X3RvX2J1cyB2aXJ0X3RvX3BoeXMKICNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiAKLS8qCi0gKiByZWFkWC93cml0ZVgoKSBhcmUgdXNlZCB0byBhY2Nlc3MgbWVtb3J5IG1hcHBlZCBkZXZpY2VzLiBPbiBzb21lCi0gKiBhcmNoaXRlY3R1cmVzIHRoZSBtZW1vcnkgbWFwcGVkIElPIHN0dWZmIG5lZWRzIHRvIGJlIGFjY2Vzc2VkCi0gKiBkaWZmZXJlbnRseS4gT24gdGhlIHg4NiBhcmNoaXRlY3R1cmUsIHdlIGp1c3QgcmVhZC93cml0ZSB0aGUKLSAqIG1lbW9yeSBsb2NhdGlvbiBkaXJlY3RseS4KLSAqLwotCi1zdGF0aWMgaW5saW5lIF9fdTggX19yZWFkYihjb25zdCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JcmV0dXJuICooX19mb3JjZSB2b2xhdGlsZSBfX3U4ICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSBfX3UxNiBfX3JlYWR3KGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTE2ICopYWRkcjsKLX0KLQotc3RhdGljIF9fYWx3YXlzX2lubGluZSBfX3UzMiBfX3JlYWRsKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTMyICopYWRkcjsKLX0KLQotc3RhdGljIGlubGluZSBfX3U2NCBfX3JlYWRxKGNvbnN0IHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQlyZXR1cm4gKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTY0ICopYWRkcjsKLX0KLQotI2RlZmluZSByZWFkYih4KSBfX3JlYWRiKHgpCi0jZGVmaW5lIHJlYWR3KHgpIF9fcmVhZHcoeCkKLSNkZWZpbmUgcmVhZGwoeCkgX19yZWFkbCh4KQotI2RlZmluZSByZWFkcSh4KSBfX3JlYWRxKHgpCi0jZGVmaW5lIHJlYWRiX3JlbGF4ZWQoYSkgcmVhZGIoYSkKLSNkZWZpbmUgcmVhZHdfcmVsYXhlZChhKSByZWFkdyhhKQotI2RlZmluZSByZWFkbF9yZWxheGVkKGEpIHJlYWRsKGEpCi0jZGVmaW5lIHJlYWRxX3JlbGF4ZWQoYSkgcmVhZHEoYSkKLSNkZWZpbmUgX19yYXdfcmVhZGIgcmVhZGIKLSNkZWZpbmUgX19yYXdfcmVhZHcgcmVhZHcKLSNkZWZpbmUgX19yYXdfcmVhZGwgcmVhZGwKLSNkZWZpbmUgX19yYXdfcmVhZHEgcmVhZHEKLQotI2RlZmluZSBtbWlvd2IoKQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZWwoX191MzIgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSooX19mb3JjZSB2b2xhdGlsZSBfX3UzMiAqKWFkZHIgPSBiOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZXEoX191NjQgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQotewotCSooX19mb3JjZSB2b2xhdGlsZSBfX3U2NCAqKWFkZHIgPSBiOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgX193cml0ZWIoX191OCBiLCB2b2xhdGlsZSB2b2lkIF9faW9tZW0gKmFkZHIpCi17Ci0JKihfX2ZvcmNlIHZvbGF0aWxlIF9fdTggKilhZGRyID0gYjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIF9fd3JpdGV3KF9fdTE2IGIsIHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcikKLXsKLQkqKF9fZm9yY2Ugdm9sYXRpbGUgX191MTYgKilhZGRyID0gYjsKLX0KLQotI2RlZmluZSB3cml0ZXEodmFsLCBhZGRyKSBfX3dyaXRlcSgodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZWwodmFsLCBhZGRyKSBfX3dyaXRlbCgodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZXcodmFsLCBhZGRyKSBfX3dyaXRldygodmFsKSwgKGFkZHIpKQotI2RlZmluZSB3cml0ZWIodmFsLCBhZGRyKSBfX3dyaXRlYigodmFsKSwgKGFkZHIpKQotI2RlZmluZSBfX3Jhd193cml0ZWIgd3JpdGViCi0jZGVmaW5lIF9fcmF3X3dyaXRldyB3cml0ZXcKLSNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAotI2RlZmluZSBfX3Jhd193cml0ZXEgd3JpdGVxCi0KIHZvaWQgX19tZW1jcHlfZnJvbWlvKHZvaWQgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQpOwogdm9pZCBfX21lbWNweV90b2lvKHVuc2lnbmVkIGxvbmcsIGNvbnN0IHZvaWQgKiwgdW5zaWduZWQpOwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaW9fYXBpYy5oIGIvaW5jbHVkZS9hc20teDg2L2lvX2FwaWMuaAppbmRleCBkNTkzZTE0Li4xNGY4MmJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaW9fYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pb19hcGljLmgKQEAgLTExLDYgKzExLDE1IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAgSW5nbyBNb2xuYXIKICAqLwogCisvKiBJL08gVW5pdCBSZWRpcmVjdGlvbiBUYWJsZSAqLworI2RlZmluZSBJT19BUElDX1JFRElSX1ZFQ1RPUl9NQVNLCTB4MDAwRkYKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9ERVNUX0xPR0lDQUwJMHgwMDgwMAorI2RlZmluZSBJT19BUElDX1JFRElSX0RFU1RfUEhZU0lDQUwJMHgwMDAwMAorI2RlZmluZSBJT19BUElDX1JFRElSX1NFTkRfUEVORElORwkoMSA8PCAxMikKKyNkZWZpbmUgSU9fQVBJQ19SRURJUl9SRU1PVEVfSVJSCSgxIDw8IDE0KQorI2RlZmluZSBJT19BUElDX1JFRElSX0xFVkVMX1RSSUdHRVIJKDEgPDwgMTUpCisjZGVmaW5lIElPX0FQSUNfUkVESVJfTUFTS0VECQkoMSA8PCAxNikKKwogLyoKICAqIFRoZSBzdHJ1Y3R1cmUgb2YgdGhlIElPLUFQSUM6CiAgKi8KQEAgLTExMiwyMSArMTIxLDMyIEBACiAKICNkZWZpbmUgTVBfTUFYX0lPQVBJQ19QSU4gMTI3CiAKLXN0cnVjdCBtcF9pb2FwaWNfcm91dGluZyB7Ci0JaW50IGFwaWNfaWQ7Ci0JaW50IGdzaV9iYXNlOwotCWludCBnc2lfZW5kOwotCURFQ0xBUkVfQklUTUFQKHBpbl9wcm9ncmFtbWVkLCBNUF9NQVhfSU9BUElDX1BJTiArIDEpOworc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgeworCXVuc2lnbmVkIGxvbmcgbXBfYXBpY2FkZHI7CisJdW5zaWduZWQgaW50IG1wX2FwaWNpZDsKKwl1bnNpZ25lZCBjaGFyIG1wX3R5cGU7CisJdW5zaWduZWQgY2hhciBtcF9hcGljdmVyOworCXVuc2lnbmVkIGNoYXIgbXBfZmxhZ3M7Cit9OworCitzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyB7CisJdW5zaWduZWQgaW50IG1wX2RzdGFwaWM7CisJdW5zaWduZWQgY2hhciBtcF90eXBlOworCXVuc2lnbmVkIGNoYXIgbXBfaXJxdHlwZTsKKwl1bnNpZ25lZCBzaG9ydCBtcF9pcnFmbGFnOworCXVuc2lnbmVkIGNoYXIgbXBfc3JjYnVzOworCXVuc2lnbmVkIGNoYXIgbXBfc3JjYnVzaXJxOworCXVuc2lnbmVkIGNoYXIgbXBfZHN0aXJxOwogfTsKIAogLyogSS9PIEFQSUMgZW50cmllcyAqLwotZXh0ZXJuIHN0cnVjdCBtcGNfY29uZmlnX2lvYXBpYyBtcF9pb2FwaWNzW01BWF9JT19BUElDU107CitleHRlcm4gc3RydWN0IG1wX2NvbmZpZ19pb2FwaWMgbXBfaW9hcGljc1tNQVhfSU9fQVBJQ1NdOwogCiAvKiAjIG9mIE1QIElSUSBzb3VyY2UgZW50cmllcyAqLwogZXh0ZXJuIGludCBtcF9pcnFfZW50cmllczsKIAogLyogTVAgSVJRIHNvdXJjZSBlbnRyaWVzICovCi1leHRlcm4gc3RydWN0IG1wY19jb25maWdfaW50c3JjIG1wX2lycXNbTUFYX0lSUV9TT1VSQ0VTXTsKK2V4dGVybiBzdHJ1Y3QgbXBfY29uZmlnX2ludHNyYyBtcF9pcnFzW01BWF9JUlFfU09VUkNFU107CiAKIC8qIG5vbi0wIGlmIGRlZmF1bHQgKHRhYmxlLWxlc3MpIE1QIGNvbmZpZ3VyYXRpb24gKi8KIGV4dGVybiBpbnQgbXBjX2RlZmF1bHRfdHlwZTsKQEAgLTEzNyw2ICsxNTcsOSBAQAogLyogMSBpZiAibm9hcGljIiBib290IG9wdGlvbiBwYXNzZWQgKi8KIGV4dGVybiBpbnQgc2tpcF9pb2FwaWNfc2V0dXA7CiAKKy8qIDEgaWYgdGhlIHRpbWVyIElSUSB1c2VzIHRoZSAnODI1OUEgVmlydHVhbCBXaXJlJyBtb2RlICovCitleHRlcm4gaW50IHRpbWVyX3Rocm91Z2hfODI1OTsKKwogc3RhdGljIGlubGluZSB2b2lkIGRpc2FibGVfaW9hcGljX3NldHVwKHZvaWQpCiB7CiAJc2tpcF9pb2FwaWNfc2V0dXAgPSAxOwpAQCAtMTYyLDYgKzE4NSw4IEBACiAKICNlbHNlICAvKiAhQ09ORklHX1g4Nl9JT19BUElDICovCiAjZGVmaW5lIGlvX2FwaWNfYXNzaWduX3BjaV9pcnFzIDAKK3N0YXRpYyBjb25zdCBpbnQgdGltZXJfdGhyb3VnaF84MjU5ID0gMDsKK3N0YXRpYyBpbmxpbmUgdm9pZCBpb2FwaWNfaW5pdF9tYXBwaW5ncyh2b2lkKSB7IH0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pb21tdS5oIGIvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKaW5kZXggMDc4NjJmZC4uMDY4YzlhNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTEsMjkgKzEsMzQgQEAKLSNpZm5kZWYgX0FTTV9YODY2NF9HQVJUX0gKLSNkZWZpbmUgX0FTTV9YODY2NF9HQVJUX0ggMQorI2lmbmRlZiBfQVNNX1g4NjY0X0lPTU1VX0gKKyNkZWZpbmUgX0FTTV9YODY2NF9JT01NVV9IIDEKIAogZXh0ZXJuIHZvaWQgcGNpX2lvbW11X3NodXRkb3duKHZvaWQpOwogZXh0ZXJuIHZvaWQgbm9faW9tbXVfaW5pdCh2b2lkKTsKIGV4dGVybiBpbnQgZm9yY2VfaW9tbXUsIG5vX2lvbW11OwogZXh0ZXJuIGludCBpb21tdV9kZXRlY3RlZDsKLSNpZmRlZiBDT05GSUdfSU9NTVUKKworI2lmZGVmIENPTkZJR19HQVJUX0lPTU1VCitleHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmU7CitleHRlcm4gaW50IGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZDsKK2V4dGVybiBpbnQgZ2FydF9pb21tdV9hcGVydHVyZV9kaXNhYmxlZDsKKworZXh0ZXJuIHZvaWQgZWFybHlfZ2FydF9pb21tdV9jaGVjayh2b2lkKTsKIGV4dGVybiB2b2lkIGdhcnRfaW9tbXVfaW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIGdhcnRfaW9tbXVfc2h1dGRvd24odm9pZCk7CiBleHRlcm4gdm9pZCBfX2luaXQgZ2FydF9wYXJzZV9vcHRpb25zKGNoYXIgKik7Ci1leHRlcm4gdm9pZCBpb21tdV9ob2xlX2luaXQodm9pZCk7Ci1leHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfb3JkZXI7Ci1leHRlcm4gaW50IGZhbGxiYWNrX2FwZXJfZm9yY2U7Ci1leHRlcm4gaW50IGlvbW11X2FwZXJ0dXJlOwotZXh0ZXJuIGludCBpb21tdV9hcGVydHVyZV9hbGxvd2VkOwotZXh0ZXJuIGludCBpb21tdV9hcGVydHVyZV9kaXNhYmxlZDsKLWV4dGVybiBpbnQgZml4X2FwZXJ0dXJlOworZXh0ZXJuIHZvaWQgZ2FydF9pb21tdV9ob2xlX2luaXQodm9pZCk7CisKICNlbHNlCi0jZGVmaW5lIGlvbW11X2FwZXJ0dXJlIDAKLSNkZWZpbmUgaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmUgICAgICAgICAgICAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmVfYWxsb3dlZCAgICAwCisjZGVmaW5lIGdhcnRfaW9tbXVfYXBlcnR1cmVfZGlzYWJsZWQgICAxCisKK3N0YXRpYyBpbmxpbmUgdm9pZCBlYXJseV9nYXJ0X2lvbW11X2NoZWNrKHZvaWQpCit7Cit9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBnYXJ0X2lvbW11X3NodXRkb3duKHZvaWQpCiB7CiB9Ci0KICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcGkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcGkuaAppbmRleCBlY2M4MGYzLi4xOTZkNjNjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXBpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lwaS5oCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlIDxhc20vaHdfaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KKyNpbmNsdWRlIDxhc20vc21wLmg+CiAKIC8qCiAgKiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBkZWFsIHdpdGggc2VuZGluZyBJUElzIGJldHdlZW4gQ1BVcy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnEuaAppbmRleCA3YmE5MDU0Li4xYTI5MjU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXJxLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L2lycS5oCkBAIC0xLDUgKzEsNTAgQEAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jIGluY2x1ZGUgImlycV8zMi5oIgotI2Vsc2UKLSMgaW5jbHVkZSAiaXJxXzY0LmgiCisjaWZuZGVmIF9BU01fSVJRX0gKKyNkZWZpbmUgX0FTTV9JUlFfSAorLyoKKyAqCShDKSAxOTkyLCAxOTkzIExpbnVzIFRvcnZhbGRzLCAoQykgMTk5NyBJbmdvIE1vbG5hcgorICoKKyAqCUlSUS9JUEkgY2hhbmdlcyB0YWtlbiBmcm9tIHdvcmsgYnkgVGhvbWFzIFJhZGtlCisgKgk8dG9tc29mdEBpbmZvcm1hdGlrLnR1LWNoZW1uaXR6LmRlPgorICovCisKKyNpbmNsdWRlIDxhc20vYXBpY2RlZi5oPgorI2luY2x1ZGUgPGFzbS9pcnFfdmVjdG9ycy5oPgorCitzdGF0aWMgaW5saW5lIGludCBpcnFfY2Fub25pY2FsaXplKGludCBpcnEpCit7CisJcmV0dXJuICgoaXJxID09IDIpID8gOSA6IGlycSk7Cit9CisKKyNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKKyMgZGVmaW5lIEFSQ0hfSEFTX05NSV9XQVRDSERPRwogI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfNEtTVEFDS1MKKyAgZXh0ZXJuIHZvaWQgaXJxX2N0eF9pbml0KGludCBjcHUpOworICBleHRlcm4gdm9pZCBpcnFfY3R4X2V4aXQoaW50IGNwdSk7CisjIGRlZmluZSBfX0FSQ0hfSEFTX0RPX1NPRlRJUlEKKyNlbHNlCisjIGRlZmluZSBpcnFfY3R4X2luaXQoY3B1KSBkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBpcnFfY3R4X2V4aXQoY3B1KSBkbyB7IH0gd2hpbGUgKDApCisjIGlmZGVmIENPTkZJR19YODZfNjQKKyMgIGRlZmluZSBfX0FSQ0hfSEFTX0RPX1NPRlRJUlEKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0lSUUJBTEFOQ0UKK2V4dGVybiBpbnQgaXJxYmFsYW5jZV9kaXNhYmxlKGNoYXIgKnN0cik7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQorI2luY2x1ZGUgPGxpbnV4L2NwdW1hc2suaD4KK2V4dGVybiB2b2lkIGZpeHVwX2lycXMoY3B1bWFza190IG1hcCk7CisjZW5kaWYKKworZXh0ZXJuIHVuc2lnbmVkIGludCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOworZXh0ZXJuIHZvaWQgaW5pdF9JUlEodm9pZCk7CitleHRlcm4gdm9pZCBuYXRpdmVfaW5pdF9JUlEodm9pZCk7CisKKy8qIEludGVycnVwdCB2ZWN0b3IgbWFuYWdlbWVudCAqLworZXh0ZXJuIERFQ0xBUkVfQklUTUFQKHVzZWRfdmVjdG9ycywgTlJfVkVDVE9SUyk7CisKKyNlbmRpZiAvKiBfQVNNX0lSUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvaXJxXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiNzlmMzEuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L2lycV8zMi5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAsMCBAQAotI2lmbmRlZiBfQVNNX0lSUV9ICi0jZGVmaW5lIF9BU01fSVJRX0gKLQotLyoKLSAqCWxpbnV4L2luY2x1ZGUvYXNtL2lycS5oCi0gKgotICoJKEMpIDE5OTIsIDE5OTMgTGludXMgVG9ydmFsZHMsIChDKSAxOTk3IEluZ28gTW9sbmFyCi0gKgotICoJSVJRL0lQSSBjaGFuZ2VzIHRha2VuIGZyb20gd29yayBieSBUaG9tYXMgUmFka2UKLSAqCTx0b21zb2Z0QGluZm9ybWF0aWsudHUtY2hlbW5pdHouZGU+Ci0gKi8KLQotI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+Ci0vKiBpbmNsdWRlIGNvbWVzIGZyb20gbWFjaGluZSBzcGVjaWZpYyBkaXJlY3RvcnkgKi8KLSNpbmNsdWRlICJpcnFfdmVjdG9ycy5oIgotI2luY2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgotCi1zdGF0aWMgaW5saW5lIGludCBpcnFfY2Fub25pY2FsaXplKGludCBpcnEpCi17Ci0JcmV0dXJuICgoaXJxID09IDIpID8gOSA6IGlycSk7Ci19Ci0KLSNpZmRlZiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMKLSMgZGVmaW5lIEFSQ0hfSEFTX05NSV9XQVRDSERPRwkJLyogU2VlIGluY2x1ZGUvbGludXgvbm1pLmggKi8KLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHXzRLU1RBQ0tTCi0gIGV4dGVybiB2b2lkIGlycV9jdHhfaW5pdChpbnQgY3B1KTsKLSAgZXh0ZXJuIHZvaWQgaXJxX2N0eF9leGl0KGludCBjcHUpOwotIyBkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRCi0jZWxzZQotIyBkZWZpbmUgaXJxX2N0eF9pbml0KGNwdSkgZG8geyB9IHdoaWxlICgwKQotIyBkZWZpbmUgaXJxX2N0eF9leGl0KGNwdSkgZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfSVJRQkFMQU5DRQotZXh0ZXJuIGludCBpcnFiYWxhbmNlX2Rpc2FibGUoY2hhciAqc3RyKTsKLSNlbmRpZgotCi0jaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVCi1leHRlcm4gdm9pZCBmaXh1cF9pcnFzKGNwdW1hc2tfdCBtYXApOwotI2VuZGlmCi0KLXVuc2lnbmVkIGludCBkb19JUlEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotdm9pZCBpbml0X0lSUSh2b2lkKTsKLXZvaWQgX19pbml0IG5hdGl2ZV9pbml0X0lSUSh2b2lkKTsKLQotLyogSW50ZXJydXB0IHZlY3RvciBtYW5hZ2VtZW50ICovCi1leHRlcm4gREVDTEFSRV9CSVRNQVAodXNlZF92ZWN0b3JzLCBOUl9WRUNUT1JTKTsKLQotI2VuZGlmIC8qIF9BU01fSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFfNjQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDgzZDM1YS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvaXJxXzY0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi0jaWZuZGVmIF9BU01fSVJRX0gKLSNkZWZpbmUgX0FTTV9JUlFfSAotCi0vKgotICoJbGludXgvaW5jbHVkZS9hc20vaXJxLmgKLSAqCi0gKgkoQykgMTk5MiwgMTk5MyBMaW51cyBUb3J2YWxkcywgKEMpIDE5OTcgSW5nbyBNb2xuYXIKLSAqCi0gKglJUlEvSVBJIGNoYW5nZXMgdGFrZW4gZnJvbSB3b3JrIGJ5IFRob21hcyBSYWRrZQotICoJPHRvbXNvZnRAaW5mb3JtYXRpay50dS1jaGVtbml0ei5kZT4KLSAqLwotCi0jZGVmaW5lIFRJTUVSX0lSUSAwCi0KLS8qCi0gKiAxNiA4MjU5QSBJUlEncywgMjA4IHBvdGVudGlhbCBBUElDIGludGVycnVwdCBzb3VyY2VzLgotICogUmlnaHQgbm93IHRoZSBBUElDIGlzIG1vc3RseSBvbmx5IHVzZWQgZm9yIFNNUC4KLSAqIDI1NiB2ZWN0b3JzIGlzIGFuIGFyY2hpdGVjdHVyYWwgbGltaXQuICh3ZSBjYW4gaGF2ZQotICogbW9yZSB0aGFuIDI1NiBkZXZpY2VzIHRoZW9yZXRpY2FsbHksIGJ1dCB0aGV5IHdpbGwKLSAqIGhhdmUgdG8gdXNlIHNoYXJlZCBpbnRlcnJ1cHRzKQotICogU2luY2UgdmVjdG9ycyAweDAwLTB4MWYgYXJlIHVzZWQvcmVzZXJ2ZWQgZm9yIHRoZSBDUFUsCi0gKiB0aGUgdXNhYmxlIHZlY3RvciBzcGFjZSBpcyAweDIwLTB4ZmYgKDIyNCB2ZWN0b3JzKQotICovCi0KLS8qCi0gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdmVjdG9ycyBzdXBwb3J0ZWQgYnkgeDg2XzY0IHByb2Nlc3NvcnMKLSAqIGlzIGxpbWl0ZWQgdG8gMjU2LiBGb3IgcHJvY2Vzc29ycyBvdGhlciB0aGFuIHg4Nl82NCwgTlJfVkVDVE9SUwotICogc2hvdWxkIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHkuCi0gKi8KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYgICAvKiBkdXBsaWNhdGVkIGluIGh3X2lycS5oICovCi0KLSNkZWZpbmUgTlJfSVJRUyAoTlJfVkVDVE9SUyArICgzMiAqIE5SX0NQVVMpKQotI2RlZmluZSBOUl9JUlFfVkVDVE9SUyBOUl9JUlFTCi0KLXN0YXRpYyBpbmxpbmUgaW50IGlycV9jYW5vbmljYWxpemUoaW50IGlycSkKLXsKLQlyZXR1cm4gKChpcnEgPT0gMikgPyA5IDogaXJxKTsKLX0KLQotI2RlZmluZSBBUkNIX0hBU19OTUlfV0FUQ0hET0cJCS8qIFNlZSBpbmNsdWRlL2xpbnV4L25taS5oICovCi0KLSNpZmRlZiBDT05GSUdfSE9UUExVR19DUFUKLSNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Ci1leHRlcm4gdm9pZCBmaXh1cF9pcnFzKGNwdW1hc2tfdCBtYXApOwotI2VuZGlmCi0KLSNkZWZpbmUgX19BUkNIX0hBU19ET19TT0ZUSVJRIDEKLQotI2VuZGlmIC8qIF9BU01fSVJRX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L2lycV92ZWN0b3JzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGFjODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFfdmVjdG9ycy5oCkBAIC0wLDAgKzEsMTY5IEBACisjaWZuZGVmIF9BU01fSVJRX1ZFQ1RPUlNfSAorI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0gKKworI2luY2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KKworI2RlZmluZSBOTUlfVkVDVE9SCQkweDAyCisKKy8qCisgKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0CisgKiBhdCAweDIwOgorICovCisjZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGRlZmluZSBTWVNDQUxMX1ZFQ1RPUgkJMHg4MAorI2Vsc2UKKyMgZGVmaW5lIElBMzJfU1lTQ0FMTF9WRUNUT1IJMHg4MAorI2VuZGlmCisKKy8qCisgKiBSZXNlcnZlIHRoZSBsb3dlc3QgdXNhYmxlIHByaW9yaXR5IGxldmVsIDB4MjAgLSAweDJmIGZvciB0cmlnZ2VyaW5nCisgKiBjbGVhbnVwIGFmdGVyIGlycSBtaWdyYXRpb24gb24gNjQgYml0LgorICovCisjZGVmaW5lIElSUV9NT1ZFX0NMRUFOVVBfVkVDVE9SCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgorCisvKgorICogVmVjdG9ycyAweDIwLTB4MmYgYXJlIHVzZWQgZm9yIElTQSBpbnRlcnJ1cHRzIG9uIDMyIGJpdC4KKyAqIFZlY3RvcnMgMHgzMC0weDNmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cyBvbiA2NCBiaXQuCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIElSUTBfVkVDVE9SCQkoRklSU1RfRVhURVJOQUxfVkVDVE9SKQorI2Vsc2UKKyNkZWZpbmUgSVJRMF9WRUNUT1IJCShGSVJTVF9FWFRFUk5BTF9WRUNUT1IgKyAweDEwKQorI2VuZGlmCisjZGVmaW5lIElSUTFfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyAxKQorI2RlZmluZSBJUlEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMikKKyNkZWZpbmUgSVJRM19WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDMpCisjZGVmaW5lIElSUTRfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA0KQorI2RlZmluZSBJUlE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgNSkKKyNkZWZpbmUgSVJRNl9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDYpCisjZGVmaW5lIElSUTdfVkVDVE9SCQkoSVJRMF9WRUNUT1IgKyA3KQorI2RlZmluZSBJUlE4X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgOCkKKyNkZWZpbmUgSVJROV9WRUNUT1IJCShJUlEwX1ZFQ1RPUiArIDkpCisjZGVmaW5lIElSUTEwX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTApCisjZGVmaW5lIElSUTExX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTEpCisjZGVmaW5lIElSUTEyX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTIpCisjZGVmaW5lIElSUTEzX1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTMpCisjZGVmaW5lIElSUTE0X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTQpCisjZGVmaW5lIElSUTE1X1ZFQ1RPUgkJKElSUTBfVkVDVE9SICsgMTUpCisKKy8qCisgKiBTcGVjaWFsIElSUSB2ZWN0b3JzIHVzZWQgYnkgdGhlIFNNUCBhcmNoaXRlY3R1cmUsIDB4ZjAtMHhmZgorICoKKyAqICBzb21lIG9mIHRoZSBmb2xsb3dpbmcgdmVjdG9ycyBhcmUgJ3JhcmUnLCB0aGV5IGFyZSBtZXJnZWQKKyAqICBpbnRvIGEgc2luZ2xlIHZlY3RvciAoQ0FMTF9GVU5DVElPTl9WRUNUT1IpIHRvIHNhdmUgdmVjdG9yIHNwYWNlLgorICogIFRMQiwgcmVzY2hlZHVsZSBhbmQgbG9jYWwgQVBJQyB2ZWN0b3JzIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbC4KKyAqCisgKiAgVmVjdG9ycyAweGYwLTB4ZmEgYXJlIGZyZWUgKHJlc2VydmVkIGZvciBmdXR1cmUgTGludXggdXNlKS4KKyAqLworI2lmZGVmIENPTkZJR19YODZfMzIKKworIyBkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJCTB4ZmYKKyMgZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCQkweGZlCisjIGRlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1IJCTB4ZmQKKyMgZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCQkweGZjCisjIGRlZmluZSBDQUxMX0ZVTkNUSU9OX1ZFQ1RPUgkJMHhmYgorIyBkZWZpbmUgVEhFUk1BTF9BUElDX1ZFQ1RPUgkJMHhmMAorCisjZWxzZQorCisjZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCQkweGZmCisjZGVmaW5lIEVSUk9SX0FQSUNfVkVDVE9SCQkweGZlCisjZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCQkweGZkCisjZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCQkweGZjCisjZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJCTB4ZmEKKyNkZWZpbmUgVEhSRVNIT0xEX0FQSUNfVkVDVE9SCQkweGY5CisjZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUl9FTkQJMHhmNworI2RlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1JfU1RBUlQJMHhmMAkvKiBmMC1mNyB1c2VkIGZvciBUTEIgZmx1c2ggKi8KKworI2RlZmluZSBOVU1fSU5WQUxJREFURV9UTEJfVkVDVE9SUwk4CisKKyNlbmRpZgorCisvKgorICogTG9jYWwgQVBJQyB0aW1lciBJUlEgdmVjdG9yIGlzIG9uIGEgZGlmZmVyZW50IHByaW9yaXR5IGxldmVsLAorICogdG8gd29yayBhcm91bmQgdGhlICdsb3N0IGxvY2FsIGludGVycnVwdCBpZiBtb3JlIHRoYW4gMiBJUlEKKyAqIHNvdXJjZXMgcGVyIGxldmVsJyBlcnJhdGEuCisgKi8KKyNkZWZpbmUgTE9DQUxfVElNRVJfVkVDVE9SCTB4ZWYKKworLyoKKyAqIEZpcnN0IEFQSUMgdmVjdG9yIGF2YWlsYWJsZSB0byBkcml2ZXJzOiAodmVjdG9ycyAweDMwLTB4ZWUpIHdlCisgKiBzdGFydCBhdCAweDMxKDB4NDEpIHRvIHNwcmVhZCBvdXQgdmVjdG9ycyBldmVubHkgYmV0d2VlbiBwcmlvcml0eQorICogbGV2ZWxzLiAoMHg4MCBpcyB0aGUgc3lzY2FsbCB2ZWN0b3IpCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjIGRlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCTB4MzEKKyNlbHNlCisjIGRlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCShJUlExNV9WRUNUT1IgKyAyKQorI2VuZGlmCisKKyNkZWZpbmUgTlJfVkVDVE9SUwkJMjU2CisKKyNkZWZpbmUgRlBVX0lSUQkJCTEzCisKKyNkZWZpbmUJRklSU1RfVk04Nl9JUlEJCTMKKyNkZWZpbmUgTEFTVF9WTTg2X0lSUQkJMTUKKyNkZWZpbmUgaW52YWxpZF92bTg2X2lycShpcnEpCSgoaXJxKSA8IDMgfHwgKGlycSkgPiAxNSkKKworI2lmICFkZWZpbmVkKENPTkZJR19YODZfVk9ZQUdFUikKKworIyBpZiBkZWZpbmVkKENPTkZJR19YODZfSU9fQVBJQykgfHwgZGVmaW5lZChDT05GSUdfUEFSQVZJUlQpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9WSVNXUykKKworIyAgZGVmaW5lIE5SX0lSUVMJCTIyNAorCisjICBpZiAoMjI0ID49IDMyICogTlJfQ1BVUykKKyMgICBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMJTlJfSVJRUworIyAgZWxzZQorIyAgIGRlZmluZSBOUl9JUlFfVkVDVE9SUwkoMzIgKiBOUl9DUFVTKQorIyAgZW5kaWYKKworIyBlbHNlIC8qIElPX0FQSUMgfHwgUEFSQVZJUlQgKi8KKworIyAgZGVmaW5lIE5SX0lSUVMJCTE2CisjICBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMJTlJfSVJRUworCisjIGVuZGlmCisKKyNlbHNlIC8qICFWSVNXUyAmJiAhVk9ZQUdFUiAqLworCisjIGRlZmluZSBOUl9JUlFTCQkyMjQKKyMgZGVmaW5lIE5SX0lSUV9WRUNUT1JTCQlOUl9JUlFTCisKKyNlbmRpZiAvKiBWSVNXUyAqLworCisvKiBWb3lhZ2VyIHNwZWNpZmljIGRlZmluZXMgKi8KKy8qIFRoZXNlIGRlZmluZSB0aGUgQ1BJcyB3ZSB1c2UgaW4gbGludXggKi8KKyNkZWZpbmUgVklDX0NQSV9MRVZFTDAJCQkwCisjZGVmaW5lIFZJQ19DUElfTEVWRUwxCQkJMQorLyogbm93IHRoZSBmYWtlIENQSXMgKi8KKyNkZWZpbmUgVklDX1RJTUVSX0NQSQkJCTIKKyNkZWZpbmUgVklDX0lOVkFMSURBVEVfQ1BJCQkzCisjZGVmaW5lIFZJQ19SRVNDSEVEVUxFX0NQSQkJNAorI2RlZmluZSBWSUNfRU5BQkxFX0lSUV9DUEkJCTUKKyNkZWZpbmUgVklDX0NBTExfRlVOQ1RJT05fQ1BJCQk2CisKKy8qIE5vdyB0aGUgUUlDIENQSXM6ICBTaW5jZSB3ZSBkb24ndCBuZWVkIHRoZSB0d28gaW5pdGlhbCBsZXZlbHMsCisgKiB0aGVzZSBhcmUgMiBsZXNzIHRoYW4gdGhlIFZJQyBDUElzICovCisjZGVmaW5lIFFJQ19DUElfT0ZGU0VUCQkJMQorI2RlZmluZSBRSUNfVElNRVJfQ1BJCQkJKFZJQ19USU1FUl9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0lOVkFMSURBVEVfQ1BJCQkoVklDX0lOVkFMSURBVEVfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisjZGVmaW5lIFFJQ19SRVNDSEVEVUxFX0NQSQkJKFZJQ19SRVNDSEVEVUxFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQorI2RlZmluZSBRSUNfRU5BQkxFX0lSUV9DUEkJCShWSUNfRU5BQkxFX0lSUV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKKyNkZWZpbmUgUUlDX0NBTExfRlVOQ1RJT05fQ1BJCQkoVklDX0NBTExfRlVOQ1RJT05fQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCisKKyNkZWZpbmUgVklDX1NUQVJUX0ZBS0VfQ1BJCQlWSUNfVElNRVJfQ1BJCisjZGVmaW5lIFZJQ19FTkRfRkFLRV9DUEkJCVZJQ19DQUxMX0ZVTkNUSU9OX0NQSQorCisvKiB0aGlzIGlzIHRoZSBTWVNfSU5UIENQSS4gKi8KKyNkZWZpbmUgVklDX1NZU19JTlQJCQk4CisjZGVmaW5lIFZJQ19DTU5fSU5UCQkJMTUKKworLyogVGhpcyBpcyB0aGUgYm9vdCBDUEkgZm9yIGFsdGVybmF0ZSBwcm9jZXNzb3JzLiAgSXQgZ2V0cyBvdmVyd3JpdHRlbgorICogYnkgdGhlIGFib3ZlIG9uY2UgdGhlIHN5c3RlbSBoYXMgYWN0aXZhdGVkIGFsbCBhdmFpbGFibGUgcHJvY2Vzc29ycyAqLworI2RlZmluZSBWSUNfQ1BVX0JPT1RfQ1BJCQlWSUNfQ1BJX0xFVkVMMAorI2RlZmluZSBWSUNfQ1BVX0JPT1RfRVJSQVRBX0NQSQkJKFZJQ19DUElfTEVWRUwwICsgOCkKKworCisjZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvaXJxZmxhZ3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCmluZGV4IGMyNDI1MjcuLjQyNGFjYjQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9pcnFmbGFncy5oCkBAIC0xMTEsMTQgKzExMSwzNSBAQAogI2RlZmluZSBESVNBQkxFX0lOVEVSUlVQVFMoeCkJY2xpCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0CisjZGVmaW5lIFNXQVBHUwlzd2FwZ3MKKy8qCisgKiBDdXJyZW50bHkgcGFyYXZpcnQgY2FuJ3QgaGFuZGxlIHN3YXBncyBuaWNlbHkgd2hlbiB3ZQorICogZG9uJ3QgaGF2ZSBhIHN0YWNrIHdlIGNhbiByZWx5IG9uIChzdWNoIGFzIGEgdXNlciBzcGFjZQorICogc3RhY2spLiAgU28gd2UgZWl0aGVyIGZpbmQgYSB3YXkgYXJvdW5kIHRoZXNlIG9yIGp1c3QgZmF1bHQKKyAqIGFuZCBlbXVsYXRlIGlmIGEgZ3Vlc3QgdHJpZXMgdG8gY2FsbCBzd2FwZ3MgZGlyZWN0bHkuCisgKgorICogRWl0aGVyIHdheSwgdGhpcyBpcyBhIGdvb2Qgd2F5IHRvIGRvY3VtZW50IHRoYXQgd2UgZG9uJ3QKKyAqIGhhdmUgYSByZWxpYWJsZSBzdGFjay4geDg2XzY0IG9ubHkuCisgKi8KKyNkZWZpbmUgU1dBUEdTX1VOU0FGRV9TVEFDSwlzd2FwZ3MKKworI2RlZmluZSBQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCS8qICAqLworCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JaXJldHEKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJCQlcCi0JCQltb3ZxCSVnczpwZGFfb2xkcnNwLCAlcnNwOwlcCi0JCQlzd2FwZ3M7CQkJCVwKLQkJCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQ2NAkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldHE7CisjZGVmaW5lIFVTRVJHU19TWVNSRVQzMgkJCQlcCisJc3dhcGdzOwkJCQkJXAorCXN5c3JldGwKKyNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTRVhJVDMyCQlcCisJc3dhcGdzOwkJCQkJXAorCXN0aTsJCQkJCVwKKwlzeXNleGl0CisKICNlbHNlCiAjZGVmaW5lIElOVEVSUlVQVF9SRVRVUk4JCWlyZXQKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJc3RpOyBzeXNleGl0CisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQJc3RpOyBzeXNleGl0CiAjZGVmaW5lIEdFVF9DUjBfSU5UT19FQVgJCW1vdmwgJWNyMCwgJWVheAogI2VuZGlmCiAKQEAgLTE2OSwxOCArMTkwLDYgQEAKICNlbHNlCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0vKgotICogQ3VycmVudGx5IHBhcmF2aXJ0IGNhbid0IGhhbmRsZSBzd2FwZ3MgbmljZWx5IHdoZW4gd2UKLSAqIGRvbid0IGhhdmUgYSBzdGFjayB3ZSBjYW4gcmVseSBvbiAoc3VjaCBhcyBhIHVzZXIgc3BhY2UKLSAqIHN0YWNrKS4gIFNvIHdlIGVpdGhlciBmaW5kIGEgd2F5IGFyb3VuZCB0aGVzZSBvciBqdXN0IGZhdWx0Ci0gKiBhbmQgZW11bGF0ZSBpZiBhIGd1ZXN0IHRyaWVzIHRvIGNhbGwgc3dhcGdzIGRpcmVjdGx5LgotICoKLSAqIEVpdGhlciB3YXksIHRoaXMgaXMgYSBnb29kIHdheSB0byBkb2N1bWVudCB0aGF0IHdlIGRvbid0Ci0gKiBoYXZlIGEgcmVsaWFibGUgc3RhY2suIHg4Nl82NCBvbmx5LgotICovCi0jZGVmaW5lIFNXQVBHU19VTlNBRkVfU1RBQ0sJc3dhcGdzCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJY2FsbCB0cmFjZV9oYXJkaXJxc19vbl90aHVuawotI2RlZmluZSBBUkNIX1RSQUNFX0lSUVNfT0ZGCQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZl90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVQJCWNhbGwgbG9ja2RlcF9zeXNfZXhpdF90aHVuawogI2RlZmluZSBBUkNIX0xPQ0tERVBfU1lTX0VYSVRfSVJRCVwKIAlUUkFDRV9JUlFTX09OOyBcCkBAIC0xOTIsMjQgKzIwMSw2IEBACiAJVFJBQ0VfSVJRU19PRkY7CiAKICNlbHNlCi0jZGVmaW5lIEFSQ0hfVFJBQ0VfSVJRU19PTgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29uOwkJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KLSNkZWZpbmUgQVJDSF9UUkFDRV9JUlFTX09GRgkJCVwKLQlwdXNobCAlZWF4OwkJCQlcCi0JcHVzaGwgJWVjeDsJCQkJXAotCXB1c2hsICVlZHg7CQkJCVwKLQljYWxsIHRyYWNlX2hhcmRpcnFzX29mZjsJCVwKLQlwb3BsICVlZHg7CQkJCVwKLQlwb3BsICVlY3g7CQkJCVwKLQlwb3BsICVlYXg7Ci0KICNkZWZpbmUgQVJDSF9MT0NLREVQX1NZU19FWElUCQkJXAogCXB1c2hsICVlYXg7CQkJCVwKIAlwdXNobCAlZWN4OwkJCQlcCkBAIC0yMjMsOCArMjE0LDggQEAKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PTgkJQVJDSF9UUkFDRV9JUlFTX09OCi0jICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJQVJDSF9UUkFDRV9JUlFTX09GRgorIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04JCWNhbGwgdHJhY2VfaGFyZGlycXNfb25fdGh1bms7CisjICBkZWZpbmUgVFJBQ0VfSVJRU19PRkYJY2FsbCB0cmFjZV9oYXJkaXJxc19vZmZfdGh1bms7CiAjZWxzZQogIyAgZGVmaW5lIFRSQUNFX0lSUVNfT04KICMgIGRlZmluZSBUUkFDRV9JUlFTX09GRgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L2t2bV9ob3N0LmggYi9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaAppbmRleCAxZDhjZDAxLi44NDRmMmE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaAorKysgYi9pbmNsdWRlL2FzbS14ODYva3ZtX2hvc3QuaApAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2t2bV9wYXJhLmg+CiAjaW5jbHVkZSA8bGludXgva3ZtX3R5cGVzLmg+CiAKKyNpbmNsdWRlIDxhc20vcHZjbG9jay1hYmkuaD4KICNpbmNsdWRlIDxhc20vZGVzYy5oPgogCiAjZGVmaW5lIEtWTV9NQVhfVkNQVVMgMTYKQEAgLTI4Miw3ICsyODMsOCBAQAogCXN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0IGVtdWxhdGVfY3R4dDsKIAogCWdwYV90IHRpbWU7Ci0Jc3RydWN0IGt2bV92Y3B1X3RpbWVfaW5mbyBodl9jbG9jazsKKwlzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyBodl9jbG9jazsKKwl1bnNpZ25lZCBpbnQgaHZfY2xvY2tfdHNjX2toejsKIAl1bnNpZ25lZCBpbnQgdGltZV9vZmZzZXQ7CiAJc3RydWN0IHBhZ2UgKnRpbWVfcGFnZTsKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYva3ZtX3BhcmEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCmluZGV4IDUwOTg0NTkuLjc2ZjM5MjEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9rdm1fcGFyYS5oCkBAIC00OCwyNCArNDgsNiBAQAogI2lmZGVmIF9fS0VSTkVMX18KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29yLmg+CiAKLS8qIHhlbiBiaW5hcnktY29tcGF0aWJsZSBpbnRlcmZhY2UuIFNlZSB4ZW4gaGVhZGVycyBmb3IgZGV0YWlscyAqLwotc3RydWN0IGt2bV92Y3B1X3RpbWVfaW5mbyB7Ci0JdWludDMyX3QgdmVyc2lvbjsKLQl1aW50MzJfdCBwYWQwOwotCXVpbnQ2NF90IHRzY190aW1lc3RhbXA7Ci0JdWludDY0X3Qgc3lzdGVtX3RpbWU7Ci0JdWludDMyX3QgdHNjX3RvX3N5c3RlbV9tdWw7Ci0JaW50OF90ICAgdHNjX3NoaWZ0OwotCWludDhfdAkgcGFkWzNdOwotfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7IC8qIDMyIGJ5dGVzICovCi0KLXN0cnVjdCBrdm1fd2FsbF9jbG9jayB7Ci0JdWludDMyX3Qgd2NfdmVyc2lvbjsKLQl1aW50MzJfdCB3Y19zZWM7Ci0JdWludDMyX3Qgd2NfbnNlYzsKLX0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXykpOwotCi0KIGV4dGVybiB2b2lkIGt2bWNsb2NrX2luaXQodm9pZCk7CiAKIApAQCAtODksNyArNzEsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihucikpOworCQkgICAgIDogImEiKG5yKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTk4LDcgKzgxLDggQEAKIAlsb25nIHJldDsKIAlhc20gdm9sYXRpbGUoS1ZNX0hZUEVSQ0FMTAogCQkgICAgIDogIj1hIihyZXQpCi0JCSAgICAgOiAiYSIobnIpLCAiYiIocDEpKTsKKwkJICAgICA6ICJhIihuciksICJiIihwMSkKKwkJICAgICA6ICJtZW1vcnkiKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMDgsNyArOTIsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMikpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTExOCw3ICsxMDMsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMiksICJkIihwMykpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTEyOSw3ICsxMTUsOCBAQAogCWxvbmcgcmV0OwogCWFzbSB2b2xhdGlsZShLVk1fSFlQRVJDQUxMCiAJCSAgICAgOiAiPWEiKHJldCkKLQkJICAgICA6ICJhIihuciksICJiIihwMSksICJjIihwMiksICJkIihwMyksICJTIihwNCkpOworCQkgICAgIDogImEiKG5yKSwgImIiKHAxKSwgImMiKHAyKSwgImQiKHAzKSwgIlMiKHA0KQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWJpZ3NtcC9tYWNoX2FwaWMuaAppbmRleCA4MzI3OTA3Li4wMTdjOGMxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfYXBpYy5oCkBAIC04MSw3ICs4MSw3IEBACiAKIHN0YXRpYyBpbmxpbmUgaW50IGFwaWNpZF90b19ub2RlKGludCBsb2dpY2FsX2FwaWNpZCkKIHsKLQlyZXR1cm4gKDApOworCXJldHVybiBhcGljaWRfMl9ub2RlW2hhcmRfc21wX3Byb2Nlc3Nvcl9pZCgpXTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgY3B1X3ByZXNlbnRfdG9fYXBpY2lkKGludCBtcHNfY3B1KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtYmlnc21wL21hY2hfbXBzcGVjLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmI1ZGFkYy4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1iaWdzbXAvbWFjaF9tcHNwZWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX01QU1BFQ19ICi0jZGVmaW5lIF9fQVNNX01BQ0hfTVBTUEVDX0gKLQotI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgMjU2Ci0KLSNkZWZpbmUgTUFYX01QX0JVU1NFUyAzMgotCi0jZW5kaWYgLyogX19BU01fTUFDSF9NUFNQRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9ycy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9ycy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODFjNjNjLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvaXJxX3ZlY3RvcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLS8qCi0gKiBUaGlzIGZpbGUgc2hvdWxkIGNvbnRhaW4gI2RlZmluZXMgZm9yIGFsbCBvZiB0aGUgaW50ZXJydXB0IHZlY3RvcgotICogbnVtYmVycyB1c2VkIGJ5IHRoaXMgYXJjaGl0ZWN0dXJlLgotICoKLSAqIEluIGFkZGl0aW9uLCB0aGVyZSBhcmUgc29tZSBzdGFuZGFyZCBkZWZpbmVzOgotICoKLSAqCUZJUlNUX0VYVEVSTkFMX1ZFQ1RPUjoKLSAqCQlUaGUgZmlyc3QgZnJlZSBwbGFjZSBmb3IgZXh0ZXJuYWwgaW50ZXJydXB0cwotICoKLSAqCVNZU0NBTExfVkVDVE9SOgotICoJCVRoZSBJUlEgdmVjdG9yIGEgc3lzY2FsbCBtYWtlcyB0aGUgdXNlciB0byBrZXJuZWwgdHJhbnNpdGlvbgotICoJCXVuZGVyLgotICoKLSAqCVRJTUVSX0lSUToKLSAqCQlUaGUgSVJRIG51bWJlciB0aGUgdGltZXIgaW50ZXJydXB0IGNvbWVzIGluIGF0LgotICoKLSAqCU5SX0lSUVM6Ci0gKgkJVGhlIHRvdGFsIG51bWJlciBvZiBpbnRlcnJ1cHQgdmVjdG9ycyAoaW5jbHVkaW5nIGFsbCB0aGUKLSAqCQlhcmNoaXRlY3R1cmUgc3BlY2lmaWMgaW50ZXJydXB0cykgbmVlZGVkLgotICoKLSAqLwkJCQotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKLSNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICi0KLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKLQotLyoKLSAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotCi0vKgotICogU3BlY2lhbCBJUlEgdmVjdG9ycyB1c2VkIGJ5IHRoZSBTTVAgYXJjaGl0ZWN0dXJlLCAweGYwLTB4ZmYKLSAqCi0gKiAgc29tZSBvZiB0aGUgZm9sbG93aW5nIHZlY3RvcnMgYXJlICdyYXJlJywgdGhleSBhcmUgbWVyZ2VkCi0gKiAgaW50byBhIHNpbmdsZSB2ZWN0b3IgKENBTExfRlVOQ1RJT05fVkVDVE9SKSB0byBzYXZlIHZlY3RvciBzcGFjZS4KLSAqICBUTEIsIHJlc2NoZWR1bGUgYW5kIGxvY2FsIEFQSUMgdmVjdG9ycyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwuCi0gKgotICogIFZlY3RvcnMgMHhmMC0weGZhIGFyZSBmcmVlIChyZXNlcnZlZCBmb3IgZnV0dXJlIExpbnV4IHVzZSkuCi0gKi8KLSNkZWZpbmUgU1BVUklPVVNfQVBJQ19WRUNUT1IJMHhmZgotI2RlZmluZSBFUlJPUl9BUElDX1ZFQ1RPUgkweGZlCi0jZGVmaW5lIElOVkFMSURBVEVfVExCX1ZFQ1RPUgkweGZkCi0jZGVmaW5lIFJFU0NIRURVTEVfVkVDVE9SCTB4ZmMKLSNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WRUNUT1IJMHhmYgotCi0jZGVmaW5lIFRIRVJNQUxfQVBJQ19WRUNUT1IJMHhmMAotLyoKLSAqIExvY2FsIEFQSUMgdGltZXIgSVJRIHZlY3RvciBpcyBvbiBhIGRpZmZlcmVudCBwcmlvcml0eSBsZXZlbCwKLSAqIHRvIHdvcmsgYXJvdW5kIHRoZSAnbG9zdCBsb2NhbCBpbnRlcnJ1cHQgaWYgbW9yZSB0aGFuIDIgSVJRCi0gKiBzb3VyY2VzIHBlciBsZXZlbCcgZXJyYXRhLgotICovCi0jZGVmaW5lIExPQ0FMX1RJTUVSX1ZFQ1RPUgkweGVmCi0KLS8qCi0gKiBGaXJzdCBBUElDIHZlY3RvciBhdmFpbGFibGUgdG8gZHJpdmVyczogKHZlY3RvcnMgMHgzMC0weGVlKQotICogd2Ugc3RhcnQgYXQgMHgzMSB0byBzcHJlYWQgb3V0IHZlY3RvcnMgZXZlbmx5IGJldHdlZW4gcHJpb3JpdHkKLSAqIGxldmVscy4gKDB4ODAgaXMgdGhlIHN5c2NhbGwgdmVjdG9yKQotICovCi0jZGVmaW5lIEZJUlNUX0RFVklDRV9WRUNUT1IJMHgzMQotI2RlZmluZSBGSVJTVF9TWVNURU1fVkVDVE9SCTB4ZWYKLQotI2RlZmluZSBUSU1FUl9JUlEgMAotCi0vKgotICogMTYgODI1OUEgSVJRJ3MsIDIwOCBwb3RlbnRpYWwgQVBJQyBpbnRlcnJ1cHQgc291cmNlcy4KLSAqIFJpZ2h0IG5vdyB0aGUgQVBJQyBpcyBtb3N0bHkgb25seSB1c2VkIGZvciBTTVAuCi0gKiAyNTYgdmVjdG9ycyBpcyBhbiBhcmNoaXRlY3R1cmFsIGxpbWl0LiAod2UgY2FuIGhhdmUKLSAqIG1vcmUgdGhhbiAyNTYgZGV2aWNlcyB0aGVvcmV0aWNhbGx5LCBidXQgdGhleSB3aWxsCi0gKiBoYXZlIHRvIHVzZSBzaGFyZWQgaW50ZXJydXB0cykKLSAqIFNpbmNlIHZlY3RvcnMgMHgwMC0weDFmIGFyZSB1c2VkL3Jlc2VydmVkIGZvciB0aGUgQ1BVLAotICogdGhlIHVzYWJsZSB2ZWN0b3Igc3BhY2UgaXMgMHgyMC0weGZmICgyMjQgdmVjdG9ycykKLSAqLwotCi0vKgotICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHZlY3RvcnMgc3VwcG9ydGVkIGJ5IGkzODYgcHJvY2Vzc29ycwotICogaXMgbGltaXRlZCB0byAyNTYuIEZvciBwcm9jZXNzb3JzIG90aGVyIHRoYW4gaTM4NiwgTlJfVkVDVE9SUwotICogc2hvdWxkIGJlIGNoYW5nZWQgYWNjb3JkaW5nbHkuCi0gKi8KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLQotI2luY2x1ZGUgImlycV92ZWN0b3JzX2xpbWl0cy5oIgotCi0jZGVmaW5lIEZQVV9JUlEJCQkxMwotCi0jZGVmaW5lCUZJUlNUX1ZNODZfSVJRCQkzCi0jZGVmaW5lIExBU1RfVk04Nl9JUlEJCTE1Ci0jZGVmaW5lIGludmFsaWRfdm04Nl9pcnEoaXJxKQkoKGlycSkgPCAzIHx8IChpcnEpID4gMTUpCi0KLQotI2VuZGlmIC8qIF9BU01fSVJRX1ZFQ1RPUlNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9yc19saW1pdHMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvaXJxX3ZlY3RvcnNfbGltaXRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5MGM3YTYuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9pcnFfdmVjdG9yc19saW1pdHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSNpZm5kZWYgX0FTTV9JUlFfVkVDVE9SU19MSU1JVFNfSAotI2RlZmluZSBfQVNNX0lSUV9WRUNUT1JTX0xJTUlUU19ICi0KLSNpZiBkZWZpbmVkKENPTkZJR19YODZfSU9fQVBJQykgfHwgZGVmaW5lZChDT05GSUdfUEFSQVZJUlQpCi0jZGVmaW5lIE5SX0lSUVMgMjI0Ci0jIGlmICgyMjQgPj0gMzIgKiBOUl9DUFVTKQotIyBkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotIyBlbHNlCi0jIGRlZmluZSBOUl9JUlFfVkVDVE9SUyAoMzIgKiBOUl9DUFVTKQotIyBlbmRpZgotI2Vsc2UKLSNkZWZpbmUgTlJfSVJRUyAxNgotI2RlZmluZSBOUl9JUlFfVkVDVE9SUyBOUl9JUlFTCi0jZW5kaWYKLQotI2VuZGlmIC8qIF9BU01fSVJRX1ZFQ1RPUlNfTElNSVRTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L21hY2hfYXBpYy5oCmluZGV4IDIxMDAzYjUuLjBiMmNkZTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9tYWNoX2FwaWMuaApAQCAtNzcsNyArNzcsMTEgQEAKIAogc3RhdGljIGlubGluZSBpbnQgYXBpY2lkX3RvX25vZGUoaW50IGxvZ2ljYWxfYXBpY2lkKQogeworI2lmZGVmIENPTkZJR19TTVAKKwlyZXR1cm4gYXBpY2lkXzJfbm9kZVtoYXJkX3NtcF9wcm9jZXNzb3JfaWQoKV07CisjZWxzZQogCXJldHVybiAwOworI2VuZGlmCiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZGVmYXVsdC9zZXR1cF9hcmNoLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaAppbmRleCA2MDVlM2NjLi4zODg0NjIwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NldHVwX2FyY2guaApAQCAtMSw3ICsxLDMgQEAKIC8qIEhvb2sgdG8gY2FsbCBCSU9TIGluaXRpYWxpc2F0aW9uIGZ1bmN0aW9uICovCiAKIC8qIG5vIGFjdGlvbiBmb3IgZ2VuZXJpYyAqLwotCi0jaWZuZGVmIEFSQ0hfU0VUVVAKLSNkZWZpbmUgQVJDSF9TRVRVUAotI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0L3NtcGJvb3RfaG9va3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCmluZGV4IDU2ZDBlMWYuLjU2ZDAwMWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1bHQvc21wYm9vdF9ob29rcy5oCkBAIC0zLDcgKzMsOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9jbGVhcl9pb19hcGljX2lycXModm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlpb19hcGljX2lycXMgPSAwOworI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3NldHVwX3dhcm1fcmVzZXRfdmVjdG9yKHVuc2lnbmVkIGxvbmcgc3RhcnRfZWlwKQpAQCAtMzUsMTcgKzM3LDIzIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2luaXQgc21wYm9vdF9zZXR1cF9pb19hcGljKHZvaWQpCiB7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCiAJLyoKIAkgKiBIZXJlIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlcmUgaXMgYW4gSU8tQVBJQyBpbiB0aGUgc3lzdGVtLiBMZXQncwogCSAqIGdvIGFuZCBzZXQgaXQgdXA6CiAJICovCiAJaWYgKCFza2lwX2lvYXBpY19zZXR1cCAmJiBucl9pb2FwaWNzKQogCQlzZXR1cF9JT19BUElDKCk7Ci0JZWxzZQorCWVsc2UgewogCQlucl9pb2FwaWNzID0gMDsKKwkJbG9jYWxpc2Vfbm1pX3dhdGNoZG9nKCk7CisJfQorI2VuZGlmCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X2NsZWFyX2lvX2FwaWModm9pZCkKIHsKKyNpZmRlZiBDT05GSUdfWDg2X0lPX0FQSUMKIAlucl9pb2FwaWNzID0gMDsKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtZXM3MDAwL21hY2hfbXBzcGVjLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1lczcwMDAvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFmNTAzOS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1lczcwMDAvbWFjaF9tcHNwZWMuaAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX01QU1BFQ19ICi0jZGVmaW5lIF9fQVNNX01BQ0hfTVBTUEVDX0gKLQotI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgMjU2Ci0KLSNkZWZpbmUgTUFYX01QX0JVU1NFUyAyNTYKLQotI2VuZGlmIC8qIF9fQVNNX01BQ0hfTVBTUEVDX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWdlbmVyaWMvbWFjaF9tcHBhcnNlLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljL21hY2hfbXBwYXJzZS5oCmluZGV4IDBkMGI1YmEuLjU4NmNhZGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWdlbmVyaWMvbWFjaF9tcHBhcnNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYy9tYWNoX21wcGFyc2UuaApAQCAtMSw3ICsxLDEwIEBACiAjaWZuZGVmIF9NQUNIX01QUEFSU0VfSAogI2RlZmluZSBfTUFDSF9NUFBBUlNFX0ggMQogCi1pbnQgbXBzX29lbV9jaGVjayhzdHJ1Y3QgbXBfY29uZmlnX3RhYmxlICptcGMsIGNoYXIgKm9lbSwgY2hhciAqcHJvZHVjdGlkKTsgCi1pbnQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCk7IAorCitleHRlcm4gaW50IG1wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCQkgY2hhciAqcHJvZHVjdGlkKTsKKworZXh0ZXJuIGludCBhY3BpX21hZHRfb2VtX2NoZWNrKGNoYXIgKm9lbV9pZCwgY2hhciAqb2VtX3RhYmxlX2lkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCmluZGV4IDc1YTU2ZTUuLmQ4MDI0NjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLW51bWFxL21hY2hfYXBpYy5oCkBAIC0yMCw4ICsyMCwxNCBAQAogI2RlZmluZSBJTlRfREVMSVZFUllfTU9ERSBkZXN0X0xvd2VzdFByaW8KICNkZWZpbmUgSU5UX0RFU1RfTU9ERSAwICAgICAvKiBwaHlzaWNhbCBkZWxpdmVyeSBvbiBMT0NBTCBxdWFkICovCiAgCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF91c2VkKGJpdG1hcCwgYXBpY2lkKSBwaHlzaWRfaXNzZXQoYXBpY2lkLCBiaXRtYXApCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF9wcmVzZW50KGJpdCkgcGh5c2lkX2lzc2V0KGJpdCwgcGh5c19jcHVfcHJlc2VudF9tYXApCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2hlY2tfYXBpY2lkX3VzZWQocGh5c2lkX21hc2tfdCBiaXRtYXAsIGludCBhcGljaWQpCit7CisJcmV0dXJuIHBoeXNpZF9pc3NldChhcGljaWQsIGJpdG1hcCk7Cit9CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY2hlY2tfYXBpY2lkX3ByZXNlbnQoaW50IGJpdCkKK3sKKwlyZXR1cm4gcGh5c2lkX2lzc2V0KGJpdCwgcGh5c19jcHVfcHJlc2VudF9tYXApOworfQogI2RlZmluZSBhcGljaWRfY2x1c3RlcihhcGljaWQpIChhcGljaWQgJiAweEYwKQogCiBzdGF0aWMgaW5saW5lIGludCBhcGljX2lkX3JlZ2lzdGVyZWQodm9pZCkKQEAgLTc3LDExICs4Myw2IEBACiAJCXJldHVybiBCQURfQVBJQ0lEOwogfQogCi1zdGF0aWMgaW5saW5lIGludCBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChpbnQgcXVhZCwgaW50IHBoeXNfYXBpY2lkKQotewotCXJldHVybiAocXVhZCA8PCA0KSArIChwaHlzX2FwaWNpZCA/IHBoeXNfYXBpY2lkIDw8IDEgOiAxKTsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgYXBpY2lkX3RvX25vZGUoaW50IGxvZ2ljYWxfYXBpY2lkKSAKIHsKIAlyZXR1cm4gbG9naWNhbF9hcGljaWQgPj4gNDsKQEAgLTk1LDMwICs5Niw2IEBACiAJcmV0dXJuIHBoeXNpZF9tYXNrX29mX3BoeXNpZChjcHUgKyA0Km5vZGUpOwogfQogCi1zdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiB7Ci0JdW5zaWduZWQgY2hhciBtcGNfdHlwZTsKLQl1bnNpZ25lZCBjaGFyIHRyYW5zX2xlbjsKLQl1bnNpZ25lZCBjaGFyIHRyYW5zX3R5cGU7Ci0JdW5zaWduZWQgY2hhciB0cmFuc19xdWFkOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfZ2xvYmFsOwotCXVuc2lnbmVkIGNoYXIgdHJhbnNfbG9jYWw7Ci0JdW5zaWduZWQgc2hvcnQgdHJhbnNfcmVzZXJ2ZWQ7Ci19OwotCi1zdGF0aWMgaW5saW5lIGludCBtcGNfYXBpY19pZChzdHJ1Y3QgbXBjX2NvbmZpZ19wcm9jZXNzb3IgKm0sIAotCQkJc3RydWN0IG1wY19jb25maWdfdHJhbnNsYXRpb24gKnRyYW5zbGF0aW9uX3JlY29yZCkKLXsKLQlpbnQgcXVhZCA9IHRyYW5zbGF0aW9uX3JlY29yZC0+dHJhbnNfcXVhZDsKLQlpbnQgbG9naWNhbF9hcGljaWQgPSBnZW5lcmF0ZV9sb2dpY2FsX2FwaWNpZChxdWFkLCBtLT5tcGNfYXBpY2lkKTsKLQotCXByaW50aygiUHJvY2Vzc29yICMlZCAldToldSBBUElDIHZlcnNpb24gJWQgKHF1YWQgJWQsIGFwaWMgJWQpXG4iLAotCSAgICAgICBtLT5tcGNfYXBpY2lkLAotCSAgICAgICAobS0+bXBjX2NwdWZlYXR1cmUgJiBDUFVfRkFNSUxZX01BU0spID4+IDgsCi0JICAgICAgIChtLT5tcGNfY3B1ZmVhdHVyZSAmIENQVV9NT0RFTF9NQVNLKSA+PiA0LAotCSAgICAgICBtLT5tcGNfYXBpY3ZlciwgcXVhZCwgbG9naWNhbF9hcGljaWQpOwotCXJldHVybiBsb2dpY2FsX2FwaWNpZDsKLX0KLQogZXh0ZXJuIHZvaWQgKnhxdWFkX3BvcnRpbzsKIAogc3RhdGljIGlubGluZSB2b2lkIHNldHVwX3BvcnRpb19yZW1hcCh2b2lkKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9tcHBhcnNlLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaAppbmRleCA0NTliMTI0Li42MjZhZWY2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wcGFyc2UuaApAQCAtMSwxNCArMSw3IEBACiAjaWZuZGVmIF9fQVNNX01BQ0hfTVBQQVJTRV9ICiAjZGVmaW5lIF9fQVNNX01BQ0hfTVBQQVJTRV9ICiAKLWV4dGVybiB2b2lkIG1wY19vZW1fYnVzX2luZm8oc3RydWN0IG1wY19jb25maWdfYnVzICptLCBjaGFyICpuYW1lLAotCQkJICAgICBzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pOwotZXh0ZXJuIHZvaWQgbXBjX29lbV9wY2lfYnVzKHN0cnVjdCBtcGNfY29uZmlnX2J1cyAqbSwKLQlzdHJ1Y3QgbXBjX2NvbmZpZ190cmFuc2xhdGlvbiAqdHJhbnNsYXRpb24pOwotCi0vKiBIb29rIGZyb20gZ2VuZXJpYyBBQ1BJIHRhYmxlcy5jICovCi1zdGF0aWMgaW5saW5lIHZvaWQgYWNwaV9tYWR0X29lbV9jaGVjayhjaGFyICpvZW1faWQsIGNoYXIgKm9lbV90YWJsZV9pZCkKLXsKLX0KK2V4dGVybiB2b2lkIG51bWFxX21wc19vZW1fY2hlY2soc3RydWN0IG1wX2NvbmZpZ190YWJsZSAqbXBjLCBjaGFyICpvZW0sCisJCQkJY2hhciAqcHJvZHVjdGlkKTsKIAogI2VuZGlmIC8qIF9fQVNNX01BQ0hfTVBQQVJTRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wc3BlYy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtbnVtYXEvbWFjaF9tcHNwZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGZmYjA5OC4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1udW1hcS9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyA1MTIKLQotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDMyCi0KLSNlbmRpZiAvKiBfX0FTTV9NQUNIX01QU1BFQ19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC1zdW1taXQvbWFjaF9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXN1bW1pdC9tYWNoX21wc3BlYy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZDc2NTUyLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXN1bW1pdC9tYWNoX21wc3BlYy5oCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfTVBTUEVDX0gKLSNkZWZpbmUgX19BU01fTUFDSF9NUFNQRUNfSAotCi0jZGVmaW5lIE1BWF9JUlFfU09VUkNFUyAyNTYKLQotLyogTWF4aW11bSAyNTYgUENJIGJ1c3NlcywgcGx1cyAxIElTQSBidXMgaW4gZWFjaCBvZiA0IGNhYmluZXRzLiAqLwotI2RlZmluZSBNQVhfTVBfQlVTU0VTIDI2MAotCi0jZW5kaWYgLyogX19BU01fTUFDSF9NUFNQRUNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvaXJxX3ZlY3RvcnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL2lycV92ZWN0b3JzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiNTcyZDguLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvaXJxX3ZlY3RvcnMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLSNpZm5kZWYgX0FTTV9JUlFfVkVDVE9SU19ICi0jZGVmaW5lIF9BU01fSVJRX1ZFQ1RPUlNfSAotCi0vKgotICogSURUIHZlY3RvcnMgdXNhYmxlIGZvciBleHRlcm5hbCBpbnRlcnJ1cHQgc291cmNlcyBzdGFydAotICogYXQgMHgyMDoKLSAqLwotI2RlZmluZSBGSVJTVF9FWFRFUk5BTF9WRUNUT1IJMHgyMAotCi0jZGVmaW5lIFNZU0NBTExfVkVDVE9SCQkweDgwCi0KLS8qCi0gKiBWZWN0b3JzIDB4MjAtMHgyZiBhcmUgdXNlZCBmb3IgSVNBIGludGVycnVwdHMuCi0gKi8KLQotLyoKLSAqIFNwZWNpYWwgSVJRIHZlY3RvcnMgdXNlZCBieSB0aGUgU01QIGFyY2hpdGVjdHVyZSwgMHhmMC0weGZmCi0gKgotICogIHNvbWUgb2YgdGhlIGZvbGxvd2luZyB2ZWN0b3JzIGFyZSAncmFyZScsIHRoZXkgYXJlIG1lcmdlZAotICogIGludG8gYSBzaW5nbGUgdmVjdG9yIChDQUxMX0ZVTkNUSU9OX1ZFQ1RPUikgdG8gc2F2ZSB2ZWN0b3Igc3BhY2UuCi0gKiAgVExCLCByZXNjaGVkdWxlIGFuZCBsb2NhbCBBUElDIHZlY3RvcnMgYXJlIHBlcmZvcm1hbmNlLWNyaXRpY2FsLgotICoKLSAqICBWZWN0b3JzIDB4ZjAtMHhmYSBhcmUgZnJlZSAocmVzZXJ2ZWQgZm9yIGZ1dHVyZSBMaW51eCB1c2UpLgotICovCi0jZGVmaW5lIFNQVVJJT1VTX0FQSUNfVkVDVE9SCTB4ZmYKLSNkZWZpbmUgRVJST1JfQVBJQ19WRUNUT1IJMHhmZQotI2RlZmluZSBJTlZBTElEQVRFX1RMQl9WRUNUT1IJMHhmZAotI2RlZmluZSBSRVNDSEVEVUxFX1ZFQ1RPUgkweGZjCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fVkVDVE9SCTB4ZmIKLQotI2RlZmluZSBUSEVSTUFMX0FQSUNfVkVDVE9SCTB4ZjAKLS8qCi0gKiBMb2NhbCBBUElDIHRpbWVyIElSUSB2ZWN0b3IgaXMgb24gYSBkaWZmZXJlbnQgcHJpb3JpdHkgbGV2ZWwsCi0gKiB0byB3b3JrIGFyb3VuZCB0aGUgJ2xvc3QgbG9jYWwgaW50ZXJydXB0IGlmIG1vcmUgdGhhbiAyIElSUQotICogc291cmNlcyBwZXIgbGV2ZWwnIGVycmF0YS4KLSAqLwotI2RlZmluZSBMT0NBTF9USU1FUl9WRUNUT1IJMHhlZgotCi0vKgotICogRmlyc3QgQVBJQyB2ZWN0b3IgYXZhaWxhYmxlIHRvIGRyaXZlcnM6ICh2ZWN0b3JzIDB4MzAtMHhlZSkKLSAqIHdlIHN0YXJ0IGF0IDB4MzEgdG8gc3ByZWFkIG91dCB2ZWN0b3JzIGV2ZW5seSBiZXR3ZWVuIHByaW9yaXR5Ci0gKiBsZXZlbHMuICgweDgwIGlzIHRoZSBzeXNjYWxsIHZlY3RvcikKLSAqLwotI2RlZmluZSBGSVJTVF9ERVZJQ0VfVkVDVE9SCTB4MzEKLSNkZWZpbmUgRklSU1RfU1lTVEVNX1ZFQ1RPUgkweGVmCi0KLSNkZWZpbmUgVElNRVJfSVJRIDAKLQotLyoKLSAqIElSUSBkZWZpbml0aW9ucwotICovCi0jZGVmaW5lIE5SX1ZFQ1RPUlMgMjU2Ci0jZGVmaW5lIE5SX0lSUVMgMjI0Ci0jZGVmaW5lIE5SX0lSUV9WRUNUT1JTIE5SX0lSUVMKLQotI2RlZmluZSBGUFVfSVJRCQkJMTMKLQotI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMwotI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQotI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9tYWNoX2FwaWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCmluZGV4IGE5ZWYzM2EuLjY5NDNlN2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpYy5oCkBAIC0xLDEwMyArMSBAQAotI2lmbmRlZiBfX0FTTV9NQUNIX0FQSUNfSAotI2RlZmluZSBfX0FTTV9NQUNIX0FQSUNfSAotCi0jaW5jbHVkZSA8bWFjaF9hcGljZGVmLmg+Ci0jaW5jbHVkZSA8YXNtL3NtcC5oPgotCi0jZGVmaW5lIEFQSUNfREZSX1ZBTFVFCShBUElDX0RGUl9GTEFUKQotCi0jZGVmaW5lIG5vX2JhbGFuY2VfaXJxICgwKQotI2RlZmluZSBlc3JfZGlzYWJsZSAoMCkKLQotI2RlZmluZSBJTlRfREVMSVZFUllfTU9ERSBkZXN0X0xvd2VzdFByaW8KLSNkZWZpbmUgSU5UX0RFU1RfTU9ERSAxICAgICAvKiBsb2dpY2FsIGRlbGl2ZXJ5IGJyb2FkY2FzdCB0byBhbGwgcHJvY3MgKi8KLQotI2lmZGVmIENPTkZJR19TTVAKLSAjZGVmaW5lIFRBUkdFVF9DUFVTIGNwdV9vbmxpbmVfbWFwCi0jZWxzZQotICNkZWZpbmUgVEFSR0VUX0NQVVMgY3B1bWFza19vZl9jcHUoMCkKLSNlbmRpZgotCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF91c2VkKGJpdG1hcCwgYXBpY2lkKQlwaHlzaWRfaXNzZXQoYXBpY2lkLCBiaXRtYXApCi0jZGVmaW5lIGNoZWNrX2FwaWNpZF9wcmVzZW50KGJpdCkJCXBoeXNpZF9pc3NldChiaXQsIHBoeXNfY3B1X3ByZXNlbnRfbWFwKQotCi1zdGF0aWMgaW5saW5lIGludCBhcGljX2lkX3JlZ2lzdGVyZWQodm9pZCkKLXsKLQlyZXR1cm4gcGh5c2lkX2lzc2V0KEdFVF9BUElDX0lEKHJlYWRfYXBpY19pZCgpKSwgcGh5c19jcHVfcHJlc2VudF9tYXApOwotfQotCi0vKgotICogU2V0IHVwIHRoZSBsb2dpY2FsIGRlc3RpbmF0aW9uIElELgotICoKLSAqIEludGVsIHJlY29tbWVuZHMgdG8gc2V0IERGUiwgTERSIGFuZCBUUFIgYmVmb3JlIGVuYWJsaW5nCi0gKiBhbiBBUElDLiAgU2VlIGUuZy4gIkFQLTM4OCA4MjQ4OURYIFVzZXIncyBNYW51YWwiIChJbnRlbAotICogZG9jdW1lbnQgbnVtYmVyIDI5MjExNikuICBTbyBoZXJlIGl0IGdvZXMuLi4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGluaXRfYXBpY19sZHIodm9pZCkKLXsKLQl1bnNpZ25lZCBsb25nIHZhbDsKLQotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfREZSLCBBUElDX0RGUl9WQUxVRSk7Ci0JdmFsID0gYXBpY19yZWFkKEFQSUNfTERSKSAmIH5BUElDX0xEUl9NQVNLOwotCXZhbCB8PSBTRVRfQVBJQ19MT0dJQ0FMX0lEKDFVTCA8PCBzbXBfcHJvY2Vzc29yX2lkKCkpOwotCWFwaWNfd3JpdGVfYXJvdW5kKEFQSUNfTERSLCB2YWwpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc3VtbWl0X2NoZWNrKGNoYXIgKm9lbSwgY2hhciAqcHJvZHVjdGlkKSAKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNldHVwX2FwaWNfcm91dGluZyh2b2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIGludCBhcGljaWRfdG9fbm9kZShpbnQgbG9naWNhbF9hcGljaWQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLS8qIE1hcHBpbmcgZnJvbSBjcHUgbnVtYmVyIHRvIGxvZ2ljYWwgYXBpY2lkICovCi1zdGF0aWMgaW5saW5lIGludCBjcHVfdG9fbG9naWNhbF9hcGljaWQoaW50IGNwdSkKLXsKLQlyZXR1cm4gMSA8PCBjcHU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGNwdV9wcmVzZW50X3RvX2FwaWNpZChpbnQgbXBzX2NwdSkKLXsKLQlpZiAobXBzX2NwdSA8IGdldF9waHlzaWNhbF9icm9hZGNhc3QoKSkKLQkJcmV0dXJuIG1wc19jcHU7Ci0JZWxzZQotCQlyZXR1cm4gQkFEX0FQSUNJRDsKLX0KLQotc3RhdGljIGlubGluZSBwaHlzaWRfbWFza190IGFwaWNpZF90b19jcHVfcHJlc2VudChpbnQgYXBpY2lkKQotewotCXJldHVybiBwaHlzaWRfbWFza19vZl9waHlzaWQoYXBpY2lkKTsKLX0KLQotI2RlZmluZSBXQUtFX1NFQ09OREFSWV9WSUFfSU5JVAotCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfcG9ydGlvX3JlbWFwKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBlbmFibGVfYXBpY19tb2RlKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX3BoeXNfYXBpY2lkX3ByZXNlbnQoaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCkKLXsKLQlyZXR1cm4gcGh5c2lkX2lzc2V0KGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZCwgcGh5c19jcHVfcHJlc2VudF9tYXApOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcHVfbWFza190b19hcGljaWQoY3B1bWFza190IGNwdW1hc2spCi17Ci0JcmV0dXJuIGNwdXNfYWRkcihjcHVtYXNrKVswXTsKLX0KLQotc3RhdGljIGlubGluZSB1MzIgcGh5c19wa2dfaWQodTMyIGNwdWlkX2FwaWMsIGludCBpbmRleF9tc2IpCi17Ci0JcmV0dXJuIGNwdWlkX2FwaWMgPj4gaW5kZXhfbXNiOwotfQotCi0jZW5kaWYgLyogX19BU01fTUFDSF9BUElDX0ggKi8KKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvbWFjaF9hcGljLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9tYWNoX2FwaWNkZWYuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCmluZGV4IDgyNmNmYTkuLjQyNzExZDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL21hY2hfYXBpY2RlZi5oCkBAIC0xLDEyICsxIEBACi0jaWZuZGVmIF9fQVNNX01BQ0hfQVBJQ0RFRl9ICi0jZGVmaW5lIF9fQVNNX01BQ0hfQVBJQ0RFRl9ICi0KLSNkZWZpbmUgICAgICAgICBBUElDX0lEX01BU0sgICAgICAgICAgICAoMHhGPDwyNCkKLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBnZXRfYXBpY19pZCh1bnNpZ25lZCBsb25nIHgpCi17Ci0JICAgICAgICByZXR1cm4gKCgoeCk+PjI0KSYweEYpOwotfQotI2RlZmluZSAgICAgICAgIEdFVF9BUElDX0lEKHgpICBnZXRfYXBpY19pZCh4KQotCi0jZW5kaWYKKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvbWFjaF9hcGljZGVmLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zZXR1cF9hcmNoLmggYi9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zZXR1cF9hcmNoLmgKaW5kZXggMzNmNzAwZS4uZmE0NzY2YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc2V0dXBfYXJjaC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NldHVwX2FyY2guaApAQCAtMSw4ICsxIEBACi0vKiBIb29rIHRvIGNhbGwgQklPUyBpbml0aWFsaXNhdGlvbiBmdW5jdGlvbiAqLwotCi1leHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fc2l6ZTsKLQotLyogbm8gYWN0aW9uIGZvciB2aXN3cyAqLwotCi0jZGVmaW5lIEFSQ0hfU0VUVVAKKyNpbmNsdWRlICIuLi9tYWNoLWRlZmF1bHQvc2V0dXBfYXJjaC5oIgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc21wYm9vdF9ob29rcy5oIGIvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3Mvc21wYm9vdF9ob29rcy5oCmluZGV4IGM5YjgzZTMuLmU0NDMzY2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL3NtcGJvb3RfaG9va3MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9zbXBib290X2hvb2tzLmgKQEAgLTEsMjggKzEgQEAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3NldHVwX3dhcm1fcmVzZXRfdmVjdG9yKHVuc2lnbmVkIGxvbmcgc3RhcnRfZWlwKQotewotCUNNT1NfV1JJVEUoMHhhLCAweGYpOwotCWxvY2FsX2ZsdXNoX3RsYigpOwotCURwcmludGsoIjEuXG4iKTsKLQkqKCh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSBUUkFNUE9MSU5FX0hJR0gpID0gc3RhcnRfZWlwID4+IDQ7Ci0JRHByaW50aygiMi5cbiIpOwotCSooKHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICopIFRSQU1QT0xJTkVfTE9XKSA9IHN0YXJ0X2VpcCAmIDB4ZjsKLQlEcHJpbnRrKCIzLlxuIik7Ci19Ci0KLS8qIGZvciB2aXN3cyBkbyBub3RoaW5nIGZvciBhbnkgb2YgdGhlc2UgKi8KLQotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3RfY2xlYXJfaW9fYXBpY19pcnFzKHZvaWQpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBzbXBib290X3Jlc3RvcmVfd2FybV9yZXNldF92ZWN0b3Iodm9pZCkKLXsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHNtcGJvb3Rfc2V0dXBfaW9fYXBpYyh2b2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgc21wYm9vdF9jbGVhcl9pb19hcGljKHZvaWQpCi17Ci19CisjaW5jbHVkZSAiLi4vbWFjaC1kZWZhdWx0L3NtcGJvb3RfaG9va3MuaCIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZveWFnZXIvaXJxX3ZlY3RvcnMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZveWFnZXIvaXJxX3ZlY3RvcnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY1NDIxZi4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbWFjaC12b3lhZ2VyL2lycV92ZWN0b3JzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKiAtKi0gbW9kZTogYzsgYy1iYXNpYy1vZmZzZXQ6IDggLSotICovCi0KLS8qIENvcHlyaWdodCAoQykgMjAwMgotICoKLSAqIEF1dGhvcjogSmFtZXMuQm90dG9tbGV5QEhhbnNlblBhcnRuZXJzaGlwLmNvbQotICoKLSAqIGxpbnV4L2FyY2gvaTM4Ni92b3lhZ2VyL2lycV92ZWN0b3JzLmgKLSAqCi0gKiBUaGlzIGZpbGUgcHJvdmlkZXMgZGVmaW5pdGlvbnMgZm9yIHRoZSBWSUMgYW5kIFFJQyBDUElzCi0gKi8KLQotI2lmbmRlZiBfQVNNX0lSUV9WRUNUT1JTX0gKLSNkZWZpbmUgX0FTTV9JUlFfVkVDVE9SU19ICi0KLS8qCi0gKiBJRFQgdmVjdG9ycyB1c2FibGUgZm9yIGV4dGVybmFsIGludGVycnVwdCBzb3VyY2VzIHN0YXJ0Ci0gKiBhdCAweDIwOgotICovCi0jZGVmaW5lIEZJUlNUX0VYVEVSTkFMX1ZFQ1RPUgkweDIwCi0KLSNkZWZpbmUgU1lTQ0FMTF9WRUNUT1IJCTB4ODAKLQotLyoKLSAqIFZlY3RvcnMgMHgyMC0weDJmIGFyZSB1c2VkIGZvciBJU0EgaW50ZXJydXB0cy4KLSAqLwotCi0vKiBUaGVzZSBkZWZpbmUgdGhlIENQSXMgd2UgdXNlIGluIGxpbnV4ICovCi0jZGVmaW5lIFZJQ19DUElfTEVWRUwwCQkJMAotI2RlZmluZSBWSUNfQ1BJX0xFVkVMMQkJCTEKLS8qIG5vdyB0aGUgZmFrZSBDUElzICovCi0jZGVmaW5lIFZJQ19USU1FUl9DUEkJCQkyCi0jZGVmaW5lIFZJQ19JTlZBTElEQVRFX0NQSQkJMwotI2RlZmluZSBWSUNfUkVTQ0hFRFVMRV9DUEkJCTQKLSNkZWZpbmUgVklDX0VOQUJMRV9JUlFfQ1BJCQk1Ci0jZGVmaW5lIFZJQ19DQUxMX0ZVTkNUSU9OX0NQSQkJNgotCi0vKiBOb3cgdGhlIFFJQyBDUElzOiAgU2luY2Ugd2UgZG9uJ3QgbmVlZCB0aGUgdHdvIGluaXRpYWwgbGV2ZWxzLAotICogdGhlc2UgYXJlIDIgbGVzcyB0aGFuIHRoZSBWSUMgQ1BJcyAqLwotI2RlZmluZSBRSUNfQ1BJX09GRlNFVAkJCTEKLSNkZWZpbmUgUUlDX1RJTUVSX0NQSQkJCShWSUNfVElNRVJfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19JTlZBTElEQVRFX0NQSQkJKFZJQ19JTlZBTElEQVRFX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotI2RlZmluZSBRSUNfUkVTQ0hFRFVMRV9DUEkJCShWSUNfUkVTQ0hFRFVMRV9DUEkgLSBRSUNfQ1BJX09GRlNFVCkKLSNkZWZpbmUgUUlDX0VOQUJMRV9JUlFfQ1BJCQkoVklDX0VOQUJMRV9JUlFfQ1BJIC0gUUlDX0NQSV9PRkZTRVQpCi0jZGVmaW5lIFFJQ19DQUxMX0ZVTkNUSU9OX0NQSQkJKFZJQ19DQUxMX0ZVTkNUSU9OX0NQSSAtIFFJQ19DUElfT0ZGU0VUKQotCi0jZGVmaW5lIFZJQ19TVEFSVF9GQUtFX0NQSQkJVklDX1RJTUVSX0NQSQotI2RlZmluZSBWSUNfRU5EX0ZBS0VfQ1BJCQlWSUNfQ0FMTF9GVU5DVElPTl9DUEkKLQotLyogdGhpcyBpcyB0aGUgU1lTX0lOVCBDUEkuICovCi0jZGVmaW5lIFZJQ19TWVNfSU5UCQkJOAotI2RlZmluZSBWSUNfQ01OX0lOVAkJCTE1Ci0KLS8qIFRoaXMgaXMgdGhlIGJvb3QgQ1BJIGZvciBhbHRlcm5hdGUgcHJvY2Vzc29ycy4gIEl0IGdldHMgb3ZlcndyaXR0ZW4KLSAqIGJ5IHRoZSBhYm92ZSBvbmNlIHRoZSBzeXN0ZW0gaGFzIGFjdGl2YXRlZCBhbGwgYXZhaWxhYmxlIHByb2Nlc3NvcnMgKi8KLSNkZWZpbmUgVklDX0NQVV9CT09UX0NQSQkJVklDX0NQSV9MRVZFTDAKLSNkZWZpbmUgVklDX0NQVV9CT09UX0VSUkFUQV9DUEkJCShWSUNfQ1BJX0xFVkVMMCArIDgpCi0KLSNkZWZpbmUgTlJfVkVDVE9SUyAyNTYKLSNkZWZpbmUgTlJfSVJRUyAyMjQKLSNkZWZpbmUgTlJfSVJRX1ZFQ1RPUlMgTlJfSVJRUwotCi0jZGVmaW5lIEZQVV9JUlEJCQkJMTMKLQotI2RlZmluZQlGSVJTVF9WTTg2X0lSUQkJMwotI2RlZmluZSBMQVNUX1ZNODZfSVJRCQkxNQotI2RlZmluZSBpbnZhbGlkX3ZtODZfaXJxKGlycSkJKChpcnEpIDwgMyB8fCAoaXJxKSA+IDE1KQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCB2aWNfY3BpX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgdmljX3N5c19pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHZpY19jbW5faW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfdGltZXJfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfaW52YWxpZGF0ZV9pbnRlcnJ1cHQodm9pZCk7Ci1leHRlcm4gYXNtbGlua2FnZSB2b2lkIHFpY19yZXNjaGVkdWxlX2ludGVycnVwdCh2b2lkKTsKLWV4dGVybiBhc21saW5rYWdlIHZvaWQgcWljX2VuYWJsZV9pcnFfaW50ZXJydXB0KHZvaWQpOwotZXh0ZXJuIGFzbWxpbmthZ2Ugdm9pZCBxaWNfY2FsbF9mdW5jdGlvbl9pbnRlcnJ1cHQodm9pZCk7Ci0jZW5kaWYgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9JUlFfVkVDVE9SU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbWNvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YmVkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2FzbS14ODYvbW1jb25maWcuaApAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIF9BU01fTU1DT05GSUdfSAorI2RlZmluZSBfQVNNX01NQ09ORklHX0gKKworI2lmZGVmIENPTkZJR19QQ0lfTU1DT05GSUcKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBmYW0xMGhfY2hlY2tfZW5hYmxlX21tY2ZnKHZvaWQpOworZXh0ZXJuIHZvaWQgX19pbml0IGNoZWNrX2VuYWJsZV9hbWRfbW1jb25mX2RtaSh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgZmFtMTBoX2NoZWNrX2VuYWJsZV9tbWNmZyh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBjaGVja19lbmFibGVfYW1kX21tY29uZl9kbWkodm9pZCkgeyB9CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbW11X2NvbnRleHQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCmluZGV4IDY1OTg0NTAuLmZhYzU3MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dC5oCkBAIC0xLDUgKzEsMzcgQEAKKyNpZm5kZWYgX19BU01fWDg2X01NVV9DT05URVhUX0gKKyNkZWZpbmUgX19BU01fWDg2X01NVV9DT05URVhUX0gKKworI2luY2x1ZGUgPGFzbS9kZXNjLmg+CisjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgorI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CisjaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+CisjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CisjaWZuZGVmIENPTkZJR19QQVJBVklSVAorI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hY3RpdmF0ZV9tbShzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LAorCQkJCQlzdHJ1Y3QgbW1fc3RydWN0ICpuZXh0KQoreworfQorI2VuZGlmCS8qICFDT05GSUdfUEFSQVZJUlQgKi8KKworLyoKKyAqIFVzZWQgZm9yIExEVCBjb3B5L2Rlc3RydWN0aW9uLgorICovCitpbnQgaW5pdF9uZXdfY29udGV4dChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwordm9pZCBkZXN0cm95X2NvbnRleHQoc3RydWN0IG1tX3N0cnVjdCAqbW0pOworCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgogIyBpbmNsdWRlICJtbXVfY29udGV4dF8zMi5oIgogI2Vsc2UKICMgaW5jbHVkZSAibW11X2NvbnRleHRfNjQuaCIKICNlbmRpZgorCisjZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAorZG8gewkJCQkJCVwKKwlwYXJhdmlydF9hY3RpdmF0ZV9tbSgocHJldiksIChuZXh0KSk7CVwKKwlzd2l0Y2hfbW0oKHByZXYpLCAobmV4dCksIE5VTEwpOwlcCit9IHdoaWxlICgwKTsKKworCisjZW5kaWYgLyogX19BU01fWDg2X01NVV9DT05URVhUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKaW5kZXggOTc1NmFlMC4uODI0ZmM1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzMyLmgKQEAgLTEsMjggKzEsNiBAQAogI2lmbmRlZiBfX0kzODZfU0NIRURfSAogI2RlZmluZSBfX0kzODZfU0NIRURfSAogCi0jaW5jbHVkZSA8YXNtL2Rlc2MuaD4KLSNpbmNsdWRlIDxhc20vYXRvbWljLmg+Ci0jaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KLSNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KLSNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KLSNpZm5kZWYgQ09ORklHX1BBUkFWSVJUCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMvbW1faG9va3MuaD4KLQotc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FjdGl2YXRlX21tKHN0cnVjdCBtbV9zdHJ1Y3QgKnByZXYsCi0JCQkJCXN0cnVjdCBtbV9zdHJ1Y3QgKm5leHQpCi17Ci19Ci0jZW5kaWYJLyogIUNPTkZJR19QQVJBVklSVCAqLwotCi0KLS8qCi0gKiBVc2VkIGZvciBMRFQgY29weS9kZXN0cnVjdGlvbi4KLSAqLwotaW50IGluaXRfbmV3X2NvbnRleHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLXZvaWQgZGVzdHJveV9jb250ZXh0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKLQotCiBzdGF0aWMgaW5saW5lIHZvaWQgZW50ZXJfbGF6eV90bGIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogI2lmZGVmIENPTkZJR19TTVAKQEAgLTc1LDEwICs1Myw0IEBACiAjZGVmaW5lIGRlYWN0aXZhdGVfbW0odHNrLCBtbSkJCQlcCiAJYXNtKCJtb3ZsICUwLCUlZ3MiOiA6InIiICgwKSk7CiAKLSNkZWZpbmUgYWN0aXZhdGVfbW0ocHJldiwgbmV4dCkJCQlcCi1kbyB7CQkJCQkJXAotCXBhcmF2aXJ0X2FjdGl2YXRlX21tKChwcmV2KSwgKG5leHQpKTsJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCk7CVwKLX0gd2hpbGUgKDApOwotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXVfY29udGV4dF82NC5oIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKaW5kZXggY2E0NGM3MS4uYzcwMDA2MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tdV9jb250ZXh0XzY0LmgKQEAgLTEsMjEgKzEsNyBAQAogI2lmbmRlZiBfX1g4Nl82NF9NTVVfQ09OVEVYVF9ICiAjZGVmaW5lIF9fWDg2XzY0X01NVV9DT05URVhUX0gKIAotI2luY2x1ZGUgPGFzbS9kZXNjLmg+Ci0jaW5jbHVkZSA8YXNtL2F0b21pYy5oPgotI2luY2x1ZGUgPGFzbS9wZ2FsbG9jLmg+CiAjaW5jbHVkZSA8YXNtL3BkYS5oPgotI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+Ci0jaW5jbHVkZSA8YXNtL3RsYmZsdXNoLmg+Ci0jaWZuZGVmIENPTkZJR19QQVJBVklSVAotI2luY2x1ZGUgPGFzbS1nZW5lcmljL21tX2hvb2tzLmg+Ci0jZW5kaWYKLQotLyoKLSAqIHBvc3NpYmx5IGRvIHRoZSBMRFQgdW5sb2FkIGhlcmU/Ci0gKi8KLWludCBpbml0X25ld19jb250ZXh0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSk7Ci12b2lkIGRlc3Ryb3lfY29udGV4dChzdHJ1Y3QgbW1fc3RydWN0ICptbSk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlbnRlcl9sYXp5X3RsYihzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB7CkBAIC02NSw4ICs1MSw0IEBACiAJYXNtIHZvbGF0aWxlKCJtb3ZsICUwLCUlZnMiOjoiciIoMCkpOwlcCiB9IHdoaWxlICgwKQogCi0jZGVmaW5lIGFjdGl2YXRlX21tKHByZXYsIG5leHQpCQkJXAotCXN3aXRjaF9tbSgocHJldiksIChuZXh0KSwgTlVMTCkKLQotCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tbXpvbmVfMzIuaAppbmRleCBjYjJjYWQwLi5iMjI5OGEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbW16b25lXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21tem9uZV8zMi5oCkBAIC0xMiwxMSArMTIsOSBAQAogZXh0ZXJuIHN0cnVjdCBwZ2xpc3RfZGF0YSAqbm9kZV9kYXRhW107CiAjZGVmaW5lIE5PREVfREFUQShuaWQpCShub2RlX2RhdGFbbmlkXSkKIAotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKLQkjaW5jbHVkZSA8YXNtL251bWFxLmg+Ci0jZWxpZiBkZWZpbmVkKENPTkZJR19BQ1BJX1NSQVQpLyogc3VtbWl0IG9yIGdlbmVyaWMgYXJjaCAqLwotCSNpbmNsdWRlIDxhc20vc3JhdC5oPgotI2VuZGlmCisjaW5jbHVkZSA8YXNtL251bWFxLmg+CisvKiBzdW1taXQgb3IgZ2VuZXJpYyBhcmNoICovCisjaW5jbHVkZSA8YXNtL3NyYXQuaD4KIAogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX251bWFfZmxhdCh2b2lkKTsKIC8qCkBAIC0yNiwyOCArMjQsMjAgQEAKICAqLwogc3RhdGljIGlubGluZSB2b2lkIGdldF9tZW1jZmdfbnVtYSh2b2lkKQogewotI2lmZGVmIENPTkZJR19YODZfTlVNQVEKKwogCWlmIChnZXRfbWVtY2ZnX251bWFxKCkpCiAJCXJldHVybjsKLSNlbGlmIGRlZmluZWQoQ09ORklHX0FDUElfU1JBVCkKIAlpZiAoZ2V0X21lbWNmZ19mcm9tX3NyYXQoKSkKIAkJcmV0dXJuOwotI2VuZGlmCi0KIAlnZXRfbWVtY2ZnX251bWFfZmxhdCgpOwogfQogCiBleHRlcm4gaW50IGVhcmx5X3Bmbl90b19uaWQodW5zaWduZWQgbG9uZyBwZm4pOwotZXh0ZXJuIHZvaWQgbnVtYV9rdmFfcmVzZXJ2ZSh2b2lkKTsKIAogI2Vsc2UgLyogIUNPTkZJR19OVU1BICovCiAKICNkZWZpbmUgZ2V0X21lbWNmZ19udW1hIGdldF9tZW1jZmdfbnVtYV9mbGF0Ci0jZGVmaW5lIGdldF96aG9sZXNfc2l6ZShuKSAoMCkKIAotc3RhdGljIGlubGluZSB2b2lkIG51bWFfa3ZhX3Jlc2VydmUodm9pZCkKLXsKLX0KICNlbmRpZiAvKiBDT05GSUdfTlVNQSAqLwogCiAjaWZkZWYgQ09ORklHX0RJU0NPTlRJR01FTQpAQCAtNTUsMTQgKzQ1LDE0IEBACiAvKgogICogZ2VuZXJpYyBub2RlIG1lbW9yeSBzdXBwb3J0LCB0aGUgZm9sbG93aW5nIGFzc3VtcHRpb25zIGFwcGx5OgogICoKLSAqIDEpIG1lbW9yeSBjb21lcyBpbiAyNTZNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CisgKiAxKSBtZW1vcnkgY29tZXMgaW4gNjRNYiBjb250aWdpb3VzIGNodW5rcyB3aGljaCBhcmUgZWl0aGVyIHByZXNlbnQgb3Igbm90CiAgKiAyKSB3ZSB3aWxsIG5vdCBoYXZlIG1vcmUgdGhhbiA2NEdiIGluIHRvdGFsCiAgKgogICogZm9yIG5vdyBhc3N1bWUgdGhhdCA2NEdiIGlzIG1heCBhbW91bnQgb2YgUkFNIGZvciB3aG9sZSBzeXN0ZW0KICAqICAgIDY0R2IgLyA0MDk2Ynl0ZXMvcGFnZSA9IDE2Nzc3MjE2IHBhZ2VzCiAgKi8KICNkZWZpbmUgTUFYX05SX1BBR0VTIDE2Nzc3MjE2Ci0jZGVmaW5lIE1BWF9FTEVNRU5UUyAyNTYKKyNkZWZpbmUgTUFYX0VMRU1FTlRTIDEwMjQKICNkZWZpbmUgUEFHRVNfUEVSX0VMRU1FTlQgKE1BWF9OUl9QQUdFUy9NQVhfRUxFTUVOVFMpCiAKIGV4dGVybiBzOCBwaHlzbm9kZV9tYXBbXTsKQEAgLTg3LDkgKzc3LDYgQEAKIAlfX3BnZGF0LT5ub2RlX3N0YXJ0X3BmbiArIF9fcGdkYXQtPm5vZGVfc3Bhbm5lZF9wYWdlczsJCVwKIH0pCiAKLSNpZmRlZiBDT05GSUdfWDg2X05VTUFRICAgICAgICAgICAgLyogd2UgaGF2ZSBjb250aWd1b3VzIG1lbW9yeSBvbiBOVU1BLVEgKi8KLSNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgbnVtX3BoeXNwYWdlcykKLSNlbHNlCiBzdGF0aWMgaW5saW5lIGludCBwZm5fdmFsaWQoaW50IHBmbikKIHsKIAlpbnQgbmlkID0gcGZuX3RvX25pZChwZm4pOwpAQCAtOTgsNyArODUsNiBAQAogCQlyZXR1cm4gKHBmbiA8IG5vZGVfZW5kX3BmbihuaWQpKTsKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZiAvKiBDT05GSUdfWDg2X05VTUFRICovCiAKICNlbmRpZiAvKiBDT05GSUdfRElTQ09OVElHTUVNICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWMuaAppbmRleCA1N2E5OTFiLi5iNjk5NWU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21wc3BlYy5oCkBAIC0xMyw2ICsxMywxMiBAQAogZXh0ZXJuIHU4IGFwaWNpZF8yX25vZGVbXTsKIGV4dGVybiBpbnQgcGljX21vZGU7CiAKKyNpZmRlZiBDT05GSUdfWDg2X05VTUFRCitleHRlcm4gaW50IG1wX2J1c19pZF90b19ub2RlW01BWF9NUF9CVVNTRVNdOworZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fbG9jYWxbTUFYX01QX0JVU1NFU107CitleHRlcm4gaW50IHF1YWRfbG9jYWxfdG9fbXBfYnVzX2lkIFtOUl9DUFVTLzRdWzRdOworI2VuZGlmCisKICNkZWZpbmUgTUFYX0FQSUNJRCAyNTYKIAogI2Vsc2UKQEAgLTIxLDI2ICsyNywzMCBAQAogLyogRWFjaCBQQ0kgc2xvdCBtYXkgYmUgYSBjb21ibyBjYXJkIHdpdGggaXRzIG93biBidXMuICA0IElSUSBwaW5zIHBlciBzbG90LiAqLwogI2RlZmluZSBNQVhfSVJRX1NPVVJDRVMgKE1BWF9NUF9CVVNTRVMgKiA0KQogCisjZW5kaWYKKwogZXh0ZXJuIHZvaWQgZWFybHlfZmluZF9zbXBfY29uZmlnKHZvaWQpOwogZXh0ZXJuIHZvaWQgZWFybHlfZ2V0X3NtcF9jb25maWcodm9pZCk7CiAKLSNlbmRpZgotCiAjaWYgZGVmaW5lZChDT05GSUdfTUNBKSB8fCBkZWZpbmVkKENPTkZJR19FSVNBKQogZXh0ZXJuIGludCBtcF9idXNfaWRfdG9fdHlwZVtNQVhfTVBfQlVTU0VTXTsKICNlbmRpZgogCiBleHRlcm4gREVDTEFSRV9CSVRNQVAobXBfYnVzX25vdF9wY2ksIE1BWF9NUF9CVVNTRVMpOwogCi1leHRlcm4gaW50IG1wX2J1c19pZF90b19wY2lfYnVzW01BWF9NUF9CVVNTRVNdOwotCiBleHRlcm4gdW5zaWduZWQgaW50IGJvb3RfY3B1X3BoeXNpY2FsX2FwaWNpZDsKK2V4dGVybiB1bnNpZ25lZCBpbnQgbWF4X3BoeXNpY2FsX2FwaWNpZDsKIGV4dGVybiBpbnQgc21wX2ZvdW5kX2NvbmZpZzsKIGV4dGVybiBpbnQgbXBjX2RlZmF1bHRfdHlwZTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1wX2xhcGljX2FkZHI7CiAKIGV4dGVybiB2b2lkIGZpbmRfc21wX2NvbmZpZyh2b2lkKTsKIGV4dGVybiB2b2lkIGdldF9zbXBfY29uZmlnKHZvaWQpOworI2lmZGVmIENPTkZJR19YODZfTVBQQVJTRQorZXh0ZXJuIHZvaWQgZWFybHlfcmVzZXJ2ZV9lODIwX21wY19uZXcodm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGVhcmx5X3Jlc2VydmVfZTgyMF9tcGNfbmV3KHZvaWQpIHsgfQorI2VuZGlmCiAKIHZvaWQgX19jcHVpbml0IGdlbmVyaWNfcHJvY2Vzc29yX2luZm8oaW50IGFwaWNpZCwgaW50IHZlcnNpb24pOwogI2lmZGVmIENPTkZJR19BQ1BJCkBAIC00OSw2ICs1OSwxNyBAQAogCQkJCSAgIHUzMiBnc2kpOwogZXh0ZXJuIHZvaWQgbXBfY29uZmlnX2FjcGlfbGVnYWN5X2lycXModm9pZCk7CiBleHRlcm4gaW50IG1wX3JlZ2lzdGVyX2dzaSh1MzIgZ3NpLCBpbnQgZWRnZV9sZXZlbCwgaW50IGFjdGl2ZV9oaWdoX2xvdyk7CisjaWZkZWYgQ09ORklHX1g4Nl9JT19BUElDCitleHRlcm4gaW50IG1wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCQkJdTMyIGdzaSwgaW50IHRyaWdnZXJpbmcsIGludCBwb2xhcml0eSk7CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQKK21wX2NvbmZpZ19hY3BpX2dzaSh1bnNpZ25lZCBjaGFyIG51bWJlciwgdW5zaWduZWQgaW50IGRldmZuLCB1OCBwaW4sCisJCSAgIHUzMiBnc2ksIGludCB0cmlnZ2VyaW5nLCBpbnQgcG9sYXJpdHkpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKICNlbmRpZiAvKiBDT05GSUdfQUNQSSAqLwogCiAjZGVmaW5lIFBIWVNJRF9BUlJBWV9TSVpFCUJJVFNfVE9fTE9OR1MoTUFYX0FQSUNTKQpAQCAtMTAxLDYgKzEyMiw3IEBACiAJCV9fcGh5c2lkX21hc2s7CQkJCQkJXAogCX0pCiAKKy8qIE5vdGU6IHdpbGwgY3JlYXRlIHZlcnkgbGFyZ2Ugc3RhY2sgZnJhbWVzIGlmIHBoeXNpZF9tYXNrX3QgaXMgYmlnICovCiAjZGVmaW5lIHBoeXNpZF9tYXNrX29mX3BoeXNpZChwaHlzaWQpCQkJCQlcCiAJKHsJCQkJCQkJCVwKIAkJcGh5c2lkX21hc2tfdCBfX3BoeXNpZF9tYXNrID0gUEhZU0lEX01BU0tfTk9ORTsJCVwKQEAgLTEwOCw2ICsxMzAsMTIgQEAKIAkJX19waHlzaWRfbWFzazsJCQkJCQlcCiAJfSkKIAorc3RhdGljIGlubGluZSB2b2lkIHBoeXNpZF9zZXRfbWFza19vZl9waHlzaWQoaW50IHBoeXNpZCwgcGh5c2lkX21hc2tfdCAqbWFwKQoreworCXBoeXNpZHNfY2xlYXIoKm1hcCk7CisJcGh5c2lkX3NldChwaHlzaWQsICptYXApOworfQorCiAjZGVmaW5lIFBIWVNJRF9NQVNLX0FMTAkJeyB7WzAgLi4uIFBIWVNJRF9BUlJBWV9TSVpFLTFdID0gfjBVTH0gfQogI2RlZmluZSBQSFlTSURfTUFTS19OT05FCXsge1swIC4uLiBQSFlTSURfQVJSQVlfU0laRS0xXSA9IDBVTH0gfQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oIGIvaW5jbHVkZS9hc20teDg2L21wc3BlY19kZWYuaAppbmRleCBkYzZlZjg1Li4zOGQxZTczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXBzcGVjX2RlZi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9tcHNwZWNfZGVmLmgKQEAgLTE3LDEwICsxNywxMSBAQAogIyBkZWZpbmUgTUFYX01QQ19FTlRSWSAxMDI0CiAjIGRlZmluZSBNQVhfQVBJQ1MgICAgICAyNTYKICNlbHNlCi0vKgotICogQSBtYXhpbXVtIG9mIDI1NSBBUElDcyB3aXRoIHRoZSBjdXJyZW50IEFQSUMgSUQgYXJjaGl0ZWN0dXJlLgotICovCi0jIGRlZmluZSBNQVhfQVBJQ1MgMjU1CisjIGlmIE5SX0NQVVMgPD0gMjU1CisjICBkZWZpbmUgTUFYX0FQSUNTICAgICAyNTUKKyMgZWxzZQorIyAgZGVmaW5lIE1BWF9BUElDUyAgIDMyNzY4CisjIGVuZGlmCiAjZW5kaWYKIAogc3RydWN0IGludGVsX21wX2Zsb2F0aW5nIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaCBiL2luY2x1ZGUvYXNtLXg4Ni9tc3ItaW5kZXguaAppbmRleCAwOTQxM2FkLi40NGJjZTc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oCkBAIC0xMTEsNyArMTExLDkgQEAKICNkZWZpbmUgTVNSX0s4X1RPUF9NRU0yCQkJMHhjMDAxMDAxZAogI2RlZmluZSBNU1JfSzhfU1lTQ0ZHCQkJMHhjMDAxMDAxMAogI2RlZmluZSBNU1JfSzhfSFdDUgkJCTB4YzAwMTAwMTUKLSNkZWZpbmUgTVNSX0s4X0VOQUJMRV9DMUUJCTB4YzAwMTAwNTUKKyNkZWZpbmUgTVNSX0s4X0lOVF9QRU5ESU5HX01TRwkJMHhjMDAxMDA1NQorLyogQzFFIGFjdGl2ZSBiaXRzIGluIGludCBwZW5kaW5nIG1lc3NhZ2UgKi8KKyNkZWZpbmUgSzhfSU5UUF9DMUVfQUNUSVZFX01BU0sJCTB4MTgwMDAwMDAKICNkZWZpbmUgTVNSX0s4X1RTRUdfQUREUgkJMHhjMDAxMDExMgogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9FTkFCTEUJMHgwMDA0MDAwMCAvKiBNdHJyRml4RHJhbUVuIGJpdCAgICAqLwogI2RlZmluZSBLOF9NVFJSRklYUkFOR0VfRFJBTV9NT0RJRlkJMHgwMDA4MDAwMCAvKiBNdHJyRml4RHJhbU1vZEVuIGJpdCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21zci5oIGIvaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IDM3MDc2NTAuLmNhMTEwZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKQEAgLTE4LDcgKzE4LDcgQEAKIAl1bnNpZ25lZCBsb25nIGxvdywgaGlnaDsKIAlhc20gdm9sYXRpbGUoIi5ieXRlIDB4MGYsMHgwMSwweGY5IgogCQkgICAgIDogIj1hIiAobG93KSwgIj1kIiAoaGlnaCksICI9YyIgKCphdXgpKTsKLQlyZXR1cm4gbG93IHwgKCh1NjQpaGlnaCA+PiAzMik7CisJcmV0dXJuIGxvdyB8ICgodTY0KWhpZ2ggPDwgMzIpOwogfQogCiAvKgpAQCAtNjYsNyArNjYsNyBAQAogc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV93cml0ZV9tc3IodW5zaWduZWQgaW50IG1zciwKIAkJCQkgICAgdW5zaWduZWQgbG93LCB1bnNpZ25lZCBoaWdoKQogewotCWFzbSB2b2xhdGlsZSgid3Jtc3IiIDogOiAiYyIgKG1zciksICJhIihsb3cpLCAiZCIgKGhpZ2gpKTsKKwlhc20gdm9sYXRpbGUoIndybXNyIiA6IDogImMiIChtc3IpLCAiYSIobG93KSwgImQiIChoaWdoKSA6ICJtZW1vcnkiKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgbmF0aXZlX3dyaXRlX21zcl9zYWZlKHVuc2lnbmVkIGludCBtc3IsCkBAIC04MSw3ICs4MSw4IEBACiAJCSAgICAgX0FTTV9FWFRBQkxFKDJiLCAzYikKIAkJICAgICA6ICI9YSIgKGVycikKIAkJICAgICA6ICJjIiAobXNyKSwgIjAiIChsb3cpLCAiZCIgKGhpZ2gpLAotCQkgICAgICJpIiAoLUVGQVVMVCkpOworCQkgICAgICAgImkiICgtRUZBVUxUKQorCQkgICAgIDogIm1lbW9yeSIpOwogCXJldHVybiBlcnI7CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaCBiL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaAppbmRleCAxZTM2MzAyLi4yMWY4ZDAyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvbm1pLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L25taS5oCkBAIC0xNSwzOCArMTUsMTMgQEAKICAqLwogaW50IGRvX25taV9jYWxsYmFjayhzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGNwdSk7CiAKLSNpZmRlZiBDT05GSUdfUE0KLQotLyoqIFJlcGxhY2UgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgZm9yIE5NSS4gKi8KLXN0cnVjdCBwbV9kZXYgKnNldF9ubWlfcG1fY2FsbGJhY2socG1fY2FsbGJhY2sgY2FsbGJhY2spOwotCi0vKiogVW5zZXQgdGhlIFBNIGNhbGxiYWNrIHJvdXRpbmUgYmFjayB0byB0aGUgZGVmYXVsdC4gKi8KLXZvaWQgdW5zZXRfbm1pX3BtX2NhbGxiYWNrKHN0cnVjdCBwbV9kZXYgKmRldik7Ci0KLSNlbHNlCi0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IHBtX2RldiAqc2V0X25taV9wbV9jYWxsYmFjayhwbV9jYWxsYmFjayBjYWxsYmFjaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHVuc2V0X25taV9wbV9jYWxsYmFjayhzdHJ1Y3QgcG1fZGV2ICpkZXYpCi17Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfUE0gKi8KLQogI2lmZGVmIENPTkZJR19YODZfNjQKIGV4dGVybiB2b2lkIGRlZmF1bHRfZG9fbm1pKHN0cnVjdCBwdF9yZWdzICopOwotZXh0ZXJuIHZvaWQgZGllX25taShjaGFyICpzdHIsIHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgZG9fcGFuaWMpOwotZXh0ZXJuIHZvaWQgbm1pX3dhdGNoZG9nX2RlZmF1bHQodm9pZCk7Ci0jZWxzZQotI2RlZmluZSBubWlfd2F0Y2hkb2dfZGVmYXVsdCgpIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKK2V4dGVybiB2b2lkIGRpZV9ubWkoY2hhciAqc3RyLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGRvX3BhbmljKTsKIGV4dGVybiBpbnQgY2hlY2tfbm1pX3dhdGNoZG9nKHZvaWQpOwogZXh0ZXJuIGludCBubWlfd2F0Y2hkb2dfZW5hYmxlZDsKLWV4dGVybiBpbnQgdW5rbm93bl9ubWlfcGFuaWM7CiBleHRlcm4gaW50IGF2YWlsX3RvX3Jlc3J2X3BlcmZjdHJfbm1pX2JpdCh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCBhdmFpbF90b19yZXNydl9wZXJmY3RyX25taSh1bnNpZ25lZCBpbnQpOwogZXh0ZXJuIGludCByZXNlcnZlX3BlcmZjdHJfbm1pKHVuc2lnbmVkIGludCk7CkBAIC02MiwxMiArMzcsMTAgQEAKIAogZXh0ZXJuIGF0b21pY190IG5taV9hY3RpdmU7CiBleHRlcm4gdW5zaWduZWQgaW50IG5taV93YXRjaGRvZzsKLSNkZWZpbmUgTk1JX0RJU0FCTEVEICAgIC0xCiAjZGVmaW5lIE5NSV9OT05FCTAKICNkZWZpbmUgTk1JX0lPX0FQSUMJMQogI2RlZmluZSBOTUlfTE9DQUxfQVBJQwkyCiAjZGVmaW5lIE5NSV9JTlZBTElECTMKLSNkZWZpbmUgTk1JX0RFRkFVTFQJTk1JX0RJU0FCTEVECiAKIHN0cnVjdCBjdGxfdGFibGU7CiBzdHJ1Y3QgZmlsZTsKQEAgLTc4LDYgKzUxLDI0IEBACiB2b2lkIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSh2b2lkKTsKICNkZWZpbmUgdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpIF9fdHJpZ2dlcl9hbGxfY3B1X2JhY2t0cmFjZSgpCiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBsb2NhbGlzZV9ubWlfd2F0Y2hkb2codm9pZCkKK3sKKwlpZiAobm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCQlubWlfd2F0Y2hkb2cgPSBOTUlfTE9DQUxfQVBJQzsKK30KKworLyogY2hlY2sgaWYgbm1pX3dhdGNoZG9nIGlzIGFjdGl2ZSAoaWUgd2FzIHNwZWNpZmllZCBhdCBib290KSAqLworc3RhdGljIGlubGluZSBpbnQgbm1pX3dhdGNoZG9nX2FjdGl2ZSh2b2lkKQoreworCS8qCisJICogYWN0dWFsbHkgaXQgc2hvdWxkIGJlOgorCSAqIAlyZXR1cm4gKG5taV93YXRjaGRvZyA9PSBOTUlfTE9DQUxfQVBJQyB8fAorCSAqIAkJbm1pX3dhdGNoZG9nID09IE5NSV9JT19BUElDKQorCSAqIGJ1dCBzaW5jZSB0aGV5IGFyZSBwb3dlciBvZiB0d28gd2UgY291bGQgdXNlIGEKKwkgKiBjaGVhcGVyIHdheSAtLWN2ZworCSAqLworCXJldHVybiBubWlfd2F0Y2hkb2cgJiAweDM7Cit9CiAjZW5kaWYKIAogdm9pZCBsYXBpY193YXRjaGRvZ19zdG9wKHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzMyLmgKaW5kZXggMDNkMGY3YS4uMjIwZDdiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L251bWFfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvbnVtYV8zMi5oCkBAIC0yLDE0ICsyLDEwIEBACiAjZGVmaW5lIF9BU01fWDg2XzMyX05VTUFfSCAxCiAKIGV4dGVybiBpbnQgcHhtX3RvX25pZChpbnQgcHhtKTsKK2V4dGVybiB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKIAogI2lmZGVmIENPTkZJR19OVU1BCi1leHRlcm4gdm9pZCBfX2luaXQgcmVtYXBfbnVtYV9rdmEodm9pZCk7Ci1leHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KGludCk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHJlbWFwX251bWFfa3ZhKHZvaWQpCi17Ci19CitleHRlcm4gdm9pZCBzZXRfaGlnaG1lbV9wYWdlc19pbml0KHZvaWQpOwogI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1g4Nl8zMl9OVU1BX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvbnVtYV82NC5oCmluZGV4IDIyZTg3YzkuLjM4MzAwOTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L251bWFfNjQuaApAQCAtMTQsMzIgKzE0LDMwIEBACiAKICNkZWZpbmUgWk9ORV9BTElHTiAoMVVMIDw8IChNQVhfT1JERVIrUEFHRV9TSElGVCkpCiAKLWV4dGVybiB2b2lkIG51bWFfYWRkX2NwdShpbnQgY3B1KTsKIGV4dGVybiB2b2lkIG51bWFfaW5pdF9hcnJheSh2b2lkKTsKIGV4dGVybiBpbnQgbnVtYV9vZmY7CiAKLWV4dGVybiB2b2lkIG51bWFfc2V0X25vZGUoaW50IGNwdSwgaW50IG5vZGUpOwogZXh0ZXJuIHZvaWQgc3JhdF9yZXNlcnZlX2FkZF9hcmVhKGludCBub2RlaWQpOwogZXh0ZXJuIGludCBob3RhZGRfcGVyY2VudDsKIAogZXh0ZXJuIHMxNiBhcGljaWRfdG9fbm9kZVtNQVhfTE9DQUxfQVBJQ107CiAKLWV4dGVybiB2b2lkIG51bWFfaW5pdG1lbV9pbml0KHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCB1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtYV9mcmVlX2FsbF9ib290bWVtKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2V0dXBfbm9kZV9ib290bWVtKGludCBub2RlaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkgICAgICAgdW5zaWduZWQgbG9uZyBlbmQpOwogCiAjaWZkZWYgQ09ORklHX05VTUEKIGV4dGVybiB2b2lkIF9faW5pdCBpbml0X2NwdV90b19ub2RlKHZvaWQpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgY2xlYXJfbm9kZV9jcHVtYXNrKGludCBjcHUpCi17Ci0JY2xlYXJfYml0KGNwdSwgKHVuc2lnbmVkIGxvbmcgKikmbm9kZV90b19jcHVtYXNrX21hcFtjcHVfdG9fbm9kZShjcHUpXSk7Ci19Ci0KK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX3NldF9ub2RlKGludCBjcHUsIGludCBub2RlKTsKK2V4dGVybiB2b2lkIF9fY3B1aW5pdCBudW1hX2NsZWFyX25vZGUoaW50IGNwdSk7CitleHRlcm4gdm9pZCBfX2NwdWluaXQgbnVtYV9hZGRfY3B1KGludCBjcHUpOworZXh0ZXJuIHZvaWQgX19jcHVpbml0IG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KTsKICNlbHNlCi0jZGVmaW5lIGluaXRfY3B1X3RvX25vZGUoKSBkbyB7fSB3aGlsZSAoMCkKLSNkZWZpbmUgY2xlYXJfbm9kZV9jcHVtYXNrKGNwdSkgZG8ge30gd2hpbGUgKDApCitzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9jcHVfdG9fbm9kZSh2b2lkKQkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9zZXRfbm9kZShpbnQgY3B1LCBpbnQgbm9kZSkJeyB9CitzdGF0aWMgaW5saW5lIHZvaWQgbnVtYV9jbGVhcl9ub2RlKGludCBjcHUpCQl7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBudW1hX2FkZF9jcHUoaW50IGNwdSwgaW50IG5vZGUpCXsgfQorc3RhdGljIGlubGluZSB2b2lkIG51bWFfcmVtb3ZlX2NwdShpbnQgY3B1KQkJeyB9CiAjZW5kaWYKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvbnVtYXEuaCBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCmluZGV4IDk0Yjg2YzMuLjM0YjkyZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9udW1hcS5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZmRlZiBDT05GSUdfWDg2X05VTUFRCiAKK2V4dGVybiBpbnQgZm91bmRfbnVtYXE7CiBleHRlcm4gaW50IGdldF9tZW1jZmdfbnVtYXEodm9pZCk7CiAKIC8qCkBAIC0xNTYsOSArMTU3LDEyIEBACiAJc3RydWN0CQllYWNocXVhZG1lbSBlcVtNQVhfTlVNTk9ERVNdOwkvKiBpbmRleGVkIGJ5IHF1YWQgaWQgKi8KIH07CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqZ2V0X3pob2xlc19zaXplKGludCBuaWQpCit2b2lkIG51bWFxX3RzY19kaXNhYmxlKHZvaWQpOworCisjZWxzZQorc3RhdGljIGlubGluZSBpbnQgZ2V0X21lbWNmZ19udW1hcSh2b2lkKQogewotCXJldHVybiBOVUxMOworCXJldHVybiAwOwogfQogI2VuZGlmIC8qIENPTkZJR19YODZfTlVNQVEgKi8KICNlbmRpZiAvKiBOVU1BUV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oIGIvaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBkYzkzNmRkLi4yOGQ3YjQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTUxLDkgKzUxLDE3IEBACiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKK3R5cGVkZWYgc3RydWN0IHsgcGdkdmFsX3QgcGdkOyB9IHBnZF90OwordHlwZWRlZiBzdHJ1Y3QgeyBwZ3Byb3R2YWxfdCBwZ3Byb3Q7IH0gcGdwcm90X3Q7CisKIGV4dGVybiBpbnQgcGFnZV9pc19yYW0odW5zaWduZWQgbG9uZyBwYWdlbnIpOwogZXh0ZXJuIGludCBkZXZtZW1faXNfYWxsb3dlZCh1bnNpZ25lZCBsb25nIHBhZ2Vucik7CitleHRlcm4gdm9pZCBtYXBfZGV2bWVtKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIHNpemUsCisJCSAgICAgICBwZ3Byb3RfdCB2bWFfcHJvdCk7CitleHRlcm4gdm9pZCB1bm1hcF9kZXZtZW0odW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCSBwZ3Byb3RfdCB2bWFfcHJvdCk7CiAKK2V4dGVybiB1bnNpZ25lZCBsb25nIG1heF9sb3dfcGZuX21hcHBlZDsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG1heF9wZm5fbWFwcGVkOwogCiBzdHJ1Y3QgcGFnZTsKQEAgLTc0LDkgKzgyLDYgQEAKIAlhbGxvY19wYWdlX3ZtYShHRlBfSElHSFVTRVIgfCBfX0dGUF9aRVJPIHwgbW92YWJsZWZsYWdzLCB2bWEsIHZhZGRyKQogI2RlZmluZSBfX0hBVkVfQVJDSF9BTExPQ19aRVJPRURfVVNFUl9ISUdIUEFHRQogCi10eXBlZGVmIHN0cnVjdCB7IHBnZHZhbF90IHBnZDsgfSBwZ2RfdDsKLXR5cGVkZWYgc3RydWN0IHsgcGdwcm90dmFsX3QgcGdwcm90OyB9IHBncHJvdF90OwotCiBzdGF0aWMgaW5saW5lIHBnZF90IG5hdGl2ZV9tYWtlX3BnZChwZ2R2YWxfdCB2YWwpCiB7CiAJcmV0dXJuIChwZ2RfdCkgeyB2YWwgfTsKQEAgLTE2MCw2ICsxNjUsNyBAQAogI2VuZGlmCiAKICNkZWZpbmUgcHRlX3ZhbCh4KQluYXRpdmVfcHRlX3ZhbCh4KQorI2RlZmluZSBwdGVfZmxhZ3MoeCkJbmF0aXZlX3B0ZV92YWwoeCkKICNkZWZpbmUgX19wdGUoeCkJbmF0aXZlX21ha2VfcHRlKHgpCiAKICNlbmRpZgkvKiBDT05GSUdfUEFSQVZJUlQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvcGFnZV8zMi5oCmluZGV4IDQyNGU4MmYuLmFiODUyODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhZ2VfMzIuaApAQCAtMTMsOCArMTMsMTcgQEAKICAqLwogI2RlZmluZSBfX1BBR0VfT0ZGU0VUCQlfQUMoQ09ORklHX1BBR0VfT0ZGU0VULCBVTCkKIAorI2lmZGVmIENPTkZJR180S1NUQUNLUworI2RlZmluZSBUSFJFQURfT1JERVIJMAorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX09SREVSCTEKKyNlbmRpZgorI2RlZmluZSBUSFJFQURfU0laRSAJKFBBR0VfU0laRSA8PCBUSFJFQURfT1JERVIpCisKKwogI2lmZGVmIENPTkZJR19YODZfUEFFCi0jZGVmaW5lIF9fUEhZU0lDQUxfTUFTS19TSElGVAkzNgorLyogNDQ9MzIrMTIsIHRoZSBsaW1pdCB3ZSBjYW4gZml0IGludG8gYW4gdW5zaWduZWQgbG9uZyBwZm4gKi8KKyNkZWZpbmUgX19QSFlTSUNBTF9NQVNLX1NISUZUCTQ0CiAjZGVmaW5lIF9fVklSVFVBTF9NQVNLX1NISUZUCTMyCiAjZGVmaW5lIFBBR0VUQUJMRV9MRVZFTFMJMwogCkBAIC04Myw2ICs5MiwxMyBAQAogI2RlZmluZSBWTUFMTE9DX1JFU0VSVkUJCSgodW5zaWduZWQgbG9uZylfX1ZNQUxMT0NfUkVTRVJWRSkKICNkZWZpbmUgTUFYTUVNCQkJKC1fX1BBR0VfT0ZGU0VUIC0gX19WTUFMTE9DX1JFU0VSVkUpCiAKK2V4dGVybiB2b2lkIGZpbmRfbG93X3Bmbl9yYW5nZSh2b2lkKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGluaXRfbWVtb3J5X21hcHBpbmcodW5zaWduZWQgbG9uZyBzdGFydCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgZW5kKTsKK2V4dGVybiB2b2lkIGluaXRtZW1faW5pdCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKK2V4dGVybiB2b2lkIHNldHVwX2Jvb3RtZW1fYWxsb2NhdG9yKHZvaWQpOworCisKICNpZmRlZiBDT05GSUdfWDg2X1VTRV8zRE5PVwogI2luY2x1ZGUgPGFzbS9tbXguaD4KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BhZ2VfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wYWdlXzY0LmgKaW5kZXggNmVhNzI4NS4uYzY5MTZjOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BhZ2VfNjQuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGFnZV82NC5oCkBAIC0yNiw3ICsyNiwxMyBAQAogI2RlZmluZSBQVURfUEFHRV9TSVpFCQkoX0FDKDEsIFVMKSA8PCBQVURfU0hJRlQpCiAjZGVmaW5lIFBVRF9QQUdFX01BU0sJCSh+KFBVRF9QQUdFX1NJWkUtMSkpCiAKLSNkZWZpbmUgX19QQUdFX09GRlNFVCAgICAgICAgICAgX0FDKDB4ZmZmZjgxMDAwMDAwMDAwMCwgVUwpCisvKgorICogU2V0IF9fUEFHRV9PRkZTRVQgdG8gdGhlIG1vc3QgbmVnYXRpdmUgcG9zc2libGUgYWRkcmVzcyArCisgKiBQR0RJUl9TSVpFKjE2IChwZ2Qgc2xvdCAyNzIpLiAgVGhlIGdhcCBpcyB0byBhbGxvdyBhIHNwYWNlIGZvciBhCisgKiBoeXBlcnZpc29yIHRvIGZpdC4gIENob29zaW5nIDE2IHNsb3RzIGhlcmUgaXMgYXJiaXRyYXJ5LCBidXQgaXQncworICogd2hhdCBYZW4gcmVxdWlyZXMuCisgKi8KKyNkZWZpbmUgX19QQUdFX09GRlNFVCAgICAgICAgICAgX0FDKDB4ZmZmZjg4MDAwMDAwMDAwMCwgVUwpCiAKICNkZWZpbmUgX19QSFlTSUNBTF9TVEFSVAlDT05GSUdfUEhZU0lDQUxfU1RBUlQKICNkZWZpbmUgX19LRVJORUxfQUxJR04JCTB4MjAwMDAwCkBAIC01OCw3ICs2NCw4IEBACiB2b2lkIGNsZWFyX3BhZ2Uodm9pZCAqcGFnZSk7CiB2b2lkIGNvcHlfcGFnZSh2b2lkICp0bywgdm9pZCAqZnJvbSk7CiAKLWV4dGVybiB1bnNpZ25lZCBsb25nIGVuZF9wZm47CisvKiBkdXBsaWNhdGVkIHRvIHRoZSBvbmUgaW4gYm9vdG1lbS5oICovCitleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhfcGZuOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcGh5c19iYXNlOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBfX3BoeXNfYWRkcih1bnNpZ25lZCBsb25nKTsKQEAgLTgzLDEwICs5MCwxNSBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9tZW1vcnlfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LAogCQkJCQkgdW5zaWduZWQgbG9uZyBlbmQpOwogCitleHRlcm4gdm9pZCBpbml0bWVtX2luaXQodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CisKK2V4dGVybiB2b2lkIGluaXRfZXh0cmFfbWFwcGluZ191Yyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CitleHRlcm4gdm9pZCBpbml0X2V4dHJhX21hcHBpbmdfd2IodW5zaWduZWQgbG9uZyBwaHlzLCB1bnNpZ25lZCBsb25nIHNpemUpOworCiAjZW5kaWYJLyogIV9fQVNTRU1CTFlfXyAqLwogCiAjaWZkZWYgQ09ORklHX0ZMQVRNRU0KLSNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgZW5kX3BmbikKKyNkZWZpbmUgcGZuX3ZhbGlkKHBmbikgICAgICAgICAgKChwZm4pIDwgbWF4X3BmbikKICNlbmRpZgogCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYXJhdmlydC5oIGIvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKaW5kZXggMGYxM2I5NC4uZWY1ZThlYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhcmF2aXJ0LmgKQEAgLTg0LDcgKzg0LDcgQEAKIAlpbnQgKCpzZXRfd2FsbGNsb2NrKSh1bnNpZ25lZCBsb25nKTsKIAogCXVuc2lnbmVkIGxvbmcgbG9uZyAoKnNjaGVkX2Nsb2NrKSh2b2lkKTsKLQl1bnNpZ25lZCBsb25nICgqZ2V0X2NwdV9raHopKHZvaWQpOworCXVuc2lnbmVkIGxvbmcgKCpnZXRfdHNjX2toeikodm9pZCk7CiB9OwogCiBzdHJ1Y3QgcHZfY3B1X29wcyB7CkBAIC0xMTUsNiArMTE1LDkgQEAKIAl2b2lkICgqc2V0X2xkdCkoY29uc3Qgdm9pZCAqZGVzYywgdW5zaWduZWQgZW50cmllcyk7CiAJdW5zaWduZWQgbG9uZyAoKnN0b3JlX3RyKSh2b2lkKTsKIAl2b2lkICgqbG9hZF90bHMpKHN0cnVjdCB0aHJlYWRfc3RydWN0ICp0LCB1bnNpZ25lZCBpbnQgY3B1KTsKKyNpZmRlZiBDT05GSUdfWDg2XzY0CisJdm9pZCAoKmxvYWRfZ3NfaW5kZXgpKHVuc2lnbmVkIGludCBpZHgpOworI2VuZGlmCiAJdm9pZCAoKndyaXRlX2xkdF9lbnRyeSkoc3RydWN0IGRlc2Nfc3RydWN0ICpsZHQsIGludCBlbnRyeW51bSwKIAkJCQljb25zdCB2b2lkICpkZXNjKTsKIAl2b2lkICgqd3JpdGVfZ2R0X2VudHJ5KShzdHJ1Y3QgZGVzY19zdHJ1Y3QgKiwKQEAgLTE0MSw4ICsxNDQsMzIgQEAKIAl1NjQgKCpyZWFkX3BtYykoaW50IGNvdW50ZXIpOwogCXVuc2lnbmVkIGxvbmcgbG9uZyAoKnJlYWRfdHNjcCkodW5zaWduZWQgaW50ICphdXgpOwogCi0JLyogVGhlc2UgdHdvIGFyZSBqbXAgdG8sIG5vdCBhY3R1YWxseSBjYWxsZWQuICovCi0Jdm9pZCAoKmlycV9lbmFibGVfc3lzY2FsbF9yZXQpKHZvaWQpOworCS8qCisJICogQXRvbWljYWxseSBlbmFibGUgaW50ZXJydXB0cyBhbmQgcmV0dXJuIHRvIHVzZXJzcGFjZS4gIFRoaXMKKwkgKiBpcyBvbmx5IGV2ZXIgdXNlZCB0byByZXR1cm4gdG8gMzItYml0IHByb2Nlc3NlczsgaW4gYQorCSAqIDY0LWJpdCBrZXJuZWwsIGl0J3MgdXNlZCBmb3IgMzItb24tNjQgY29tcGF0IHByb2Nlc3NlcywgYnV0CisJICogbmV2ZXIgbmF0aXZlIDY0LWJpdCBwcm9jZXNzZXMuICAoSnVtcCwgbm90IGNhbGwuKQorCSAqLworCXZvaWQgKCppcnFfZW5hYmxlX3N5c2V4aXQpKHZvaWQpOworCisJLyoKKwkgKiBTd2l0Y2ggdG8gdXNlcm1vZGUgZ3MgYW5kIHJldHVybiB0byA2NC1iaXQgdXNlcm1vZGUgdXNpbmcKKwkgKiBzeXNyZXQuICBPbmx5IHVzZWQgaW4gNjQtYml0IGtlcm5lbHMgdG8gcmV0dXJuIHRvIDY0LWJpdAorCSAqIHByb2Nlc3Nlcy4gIFVzZXJtb2RlIHJlZ2lzdGVyIHN0YXRlLCBpbmNsdWRpbmcgJXJzcCwgbXVzdAorCSAqIGFscmVhZHkgYmUgcmVzdG9yZWQuCisJICovCisJdm9pZCAoKnVzZXJnc19zeXNyZXQ2NCkodm9pZCk7CisKKwkvKgorCSAqIFN3aXRjaCB0byB1c2VybW9kZSBncyBhbmQgcmV0dXJuIHRvIDMyLWJpdCB1c2VybW9kZSB1c2luZworCSAqIHN5c3JldC4gIFVzZWQgdG8gcmV0dXJuIHRvIDMyLW9uLTY0IGNvbXBhdCBwcm9jZXNzZXMuCisJICogT3RoZXIgdXNlcm1vZGUgcmVnaXN0ZXIgc3RhdGUsIGluY2x1ZGluZyAlZXNwLCBtdXN0IGFscmVhZHkKKwkgKiBiZSByZXN0b3JlZC4KKwkgKi8KKwl2b2lkICgqdXNlcmdzX3N5c3JldDMyKSh2b2lkKTsKKworCS8qIE5vcm1hbCBpcmV0LiAgSnVtcCB0byB0aGlzIHdpdGggdGhlIHN0YW5kYXJkIGlyZXQgc3RhY2sKKwkgICBmcmFtZSBzZXQgdXAuICovCiAJdm9pZCAoKmlyZXQpKHZvaWQpOwogCiAJdm9pZCAoKnN3YXBncykodm9pZCk7CkBAIC0xNjUsNiArMTkyLDEwIEBACiAJdm9pZCAoKmlycV9lbmFibGUpKHZvaWQpOwogCXZvaWQgKCpzYWZlX2hhbHQpKHZvaWQpOwogCXZvaWQgKCpoYWx0KSh2b2lkKTsKKworI2lmZGVmIENPTkZJR19YODZfNjQKKwl2b2lkICgqYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSkodm9pZCk7CisjZW5kaWYKIH07CiAKIHN0cnVjdCBwdl9hcGljX29wcyB7CkBAIC0yMTksNyArMjUwLDE0IEBACiAJdm9pZCAoKmZsdXNoX3RsYl9vdGhlcnMpKGNvbnN0IGNwdW1hc2tfdCAqY3B1cywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCQkJIHVuc2lnbmVkIGxvbmcgdmEpOwogCi0JLyogSG9va3MgZm9yIGFsbG9jYXRpbmcvcmVsZWFzaW5nIHBhZ2V0YWJsZSBwYWdlcyAqLworCS8qIEhvb2tzIGZvciBhbGxvY2F0aW5nIGFuZCBmcmVlaW5nIGEgcGFnZXRhYmxlIHRvcC1sZXZlbCAqLworCWludCAgKCpwZ2RfYWxsb2MpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKKwl2b2lkICgqcGdkX2ZyZWUpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKTsKKworCS8qCisJICogSG9va3MgZm9yIGFsbG9jYXRpbmcvcmVsZWFzaW5nIHBhZ2V0YWJsZSBwYWdlcyB3aGVuIHRoZXkncmUKKwkgKiBhdHRhY2hlZCB0byBhIHBhZ2V0YWJsZQorCSAqLwogCXZvaWQgKCphbGxvY19wdGUpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1MzIgcGZuKTsKIAl2b2lkICgqYWxsb2NfcG1kKShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdTMyIHBmbik7CiAJdm9pZCAoKmFsbG9jX3BtZF9jbG9uZSkodTMyIHBmbiwgdTMyIGNsb25lcGZuLCB1MzIgc3RhcnQsIHUzMiBjb3VudCk7CkBAIC0yMzgsNyArMjc2LDEzIEBACiAJdm9pZCAoKnB0ZV91cGRhdGVfZGVmZXIpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJCSB1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90ICpwdGVwKTsKIAorCXB0ZV90ICgqcHRlcF9tb2RpZnlfcHJvdF9zdGFydCkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJcHRlX3QgKnB0ZXApOworCXZvaWQgKCpwdGVwX21vZGlmeV9wcm90X2NvbW1pdCkoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKKwkJCQkJcHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSk7CisKIAlwdGV2YWxfdCAoKnB0ZV92YWwpKHB0ZV90KTsKKwlwdGV2YWxfdCAoKnB0ZV9mbGFncykocHRlX3QpOwogCXB0ZV90ICgqbWFrZV9wdGUpKHB0ZXZhbF90IHB0ZSk7CiAKIAlwZ2R2YWxfdCAoKnBnZF92YWwpKHBnZF90KTsKQEAgLTI3Myw2ICszMTcsMTMgQEAKICNlbmRpZgogCiAJc3RydWN0IHB2X2xhenlfb3BzIGxhenlfbW9kZTsKKworCS8qIGRvbTAgb3BzICovCisKKwkvKiBTb21ldGltZXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgaXMgYSBwZm4sIGFuZCBzb21ldGltZXMgaXRzCisJICAgYW4gbWZuLiAgV2UgY2FuIHRlbGwgd2hpY2ggaXMgd2hpY2ggZnJvbSB0aGUgaW5kZXguICovCisJdm9pZCAoKnNldF9maXhtYXApKHVuc2lnbmVkIC8qIGVudW0gZml4ZWRfYWRkcmVzc2VzICovIGlkeCwKKwkJCSAgIHVuc2lnbmVkIGxvbmcgcGh5cywgcGdwcm90X3QgZmxhZ3MpOwogfTsKIAogLyogVGhpcyBjb250YWlucyBhbGwgdGhlIHBhcmF2aXJ0IHN0cnVjdHVyZXM6IHdlIGdldCBhIGNvbnZlbmllbnQKQEAgLTQzOSwxMCArNDkwLDE3IEBACiAjZGVmaW5lIFZFWFRSQV9DTE9CQkVSUwkgLCAicmF4IiwgInI4IiwgInI5IiwgInIxMCIsICJyMTEiCiAjZW5kaWYKIAorI2lmZGVmIENPTkZJR19QQVJBVklSVF9ERUJVRworI2RlZmluZSBQVk9QX1RFU1RfTlVMTChvcCkJQlVHX09OKG9wID09IE5VTEwpCisjZWxzZQorI2RlZmluZSBQVk9QX1RFU1RfTlVMTChvcCkJKCh2b2lkKW9wKQorI2VuZGlmCisKICNkZWZpbmUgX19QVk9QX0NBTEwocmV0dHlwZSwgb3AsIHByZSwgcG9zdCwgLi4uKQkJCVwKIAkoewkJCQkJCQkJXAogCQlyZXR0eXBlIF9fcmV0OwkJCQkJCVwKIAkJUFZPUF9DQUxMX0FSR1M7CQkJCQlcCisJCVBWT1BfVEVTVF9OVUxMKG9wKTsJCQkJCVwKIAkJLyogVGhpcyBpcyAzMi1iaXQgc3BlY2lmaWMsIGJ1dCBpcyBva2F5IGluIDY0LWJpdCAqLwlcCiAJCS8qIHNpbmNlIHRoaXMgY29uZGl0aW9uIHdpbGwgbmV2ZXIgaG9sZCAqLwkJXAogCQlpZiAoc2l6ZW9mKHJldHR5cGUpID4gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSB7CQlcCkBAIC00NzEsNiArNTI5LDcgQEAKICNkZWZpbmUgX19QVk9QX1ZDQUxMKG9wLCBwcmUsIHBvc3QsIC4uLikJCQkJXAogCSh7CQkJCQkJCQlcCiAJCVBWT1BfVkNBTExfQVJHUzsJCQkJCVwKKwkJUFZPUF9URVNUX05VTEwob3ApOwkJCQkJXAogCQlhc20gdm9sYXRpbGUocHJlCQkJCQlcCiAJCQkgICAgIHBhcmF2aXJ0X2FsdChQQVJBVklSVF9DQUxMKQkJXAogCQkJICAgICBwb3N0CQkJCQlcCkBAIC03MjAsNyArNzc5LDcgQEAKIHsKIAlyZXR1cm4gUFZPUF9DQUxMMCh1bnNpZ25lZCBsb25nIGxvbmcsIHB2X3RpbWVfb3BzLnNjaGVkX2Nsb2NrKTsKIH0KLSNkZWZpbmUgY2FsY3VsYXRlX2NwdV9raHooKSAocHZfdGltZV9vcHMuZ2V0X2NwdV9raHooKSkKKyNkZWZpbmUgY2FsaWJyYXRlX3RzYygpIChwdl90aW1lX29wcy5nZXRfdHNjX2toeigpKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBwYXJhdmlydF9yZWFkX3BtYyhpbnQgY291bnRlcikKIHsKQEAgLTc4OSw2ICs4NDgsMTMgQEAKIAlQVk9QX1ZDQUxMMihwdl9jcHVfb3BzLmxvYWRfdGxzLCB0LCBjcHUpOwogfQogCisjaWZkZWYgQ09ORklHX1g4Nl82NAorc3RhdGljIGlubGluZSB2b2lkIGxvYWRfZ3NfaW5kZXgodW5zaWduZWQgaW50IGdzKQoreworCVBWT1BfVkNBTEwxKHB2X2NwdV9vcHMubG9hZF9nc19pbmRleCwgZ3MpOworfQorI2VuZGlmCisKIHN0YXRpYyBpbmxpbmUgdm9pZCB3cml0ZV9sZHRfZW50cnkoc3RydWN0IGRlc2Nfc3RydWN0ICpkdCwgaW50IGVudHJ5LAogCQkJCSAgIGNvbnN0IHZvaWQgKmRlc2MpCiB7CkBAIC05MTIsNiArOTc4LDE2IEBACiAJUFZPUF9WQ0FMTDMocHZfbW11X29wcy5mbHVzaF90bGJfb3RoZXJzLCAmY3B1bWFzaywgbW0sIHZhKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgcGFyYXZpcnRfcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQoreworCXJldHVybiBQVk9QX0NBTEwxKGludCwgcHZfbW11X29wcy5wZ2RfYWxsb2MsIG1tKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X3BnZF9mcmVlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwZ2RfdCAqcGdkKQoreworCVBWT1BfVkNBTEwyKHB2X21tdV9vcHMucGdkX2ZyZWUsIG1tLCBwZ2QpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfYWxsb2NfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBwZm4pCiB7CiAJUFZPUF9WQ0FMTDIocHZfbW11X29wcy5hbGxvY19wdGUsIG1tLCBwZm4pOwpAQCAtOTk2LDYgKzEwNzIsMjAgQEAKIAlyZXR1cm4gcmV0OwogfQogCitzdGF0aWMgaW5saW5lIHB0ZXZhbF90IHB0ZV9mbGFncyhwdGVfdCBwdGUpCit7CisJcHRldmFsX3QgcmV0OworCisJaWYgKHNpemVvZihwdGV2YWxfdCkgPiBzaXplb2YobG9uZykpCisJCXJldCA9IFBWT1BfQ0FMTDIocHRldmFsX3QsIHB2X21tdV9vcHMucHRlX2ZsYWdzLAorCQkJCSBwdGUucHRlLCAodTY0KXB0ZS5wdGUgPj4gMzIpOworCWVsc2UKKwkJcmV0ID0gUFZPUF9DQUxMMShwdGV2YWxfdCwgcHZfbW11X29wcy5wdGVfZmxhZ3MsCisJCQkJIHB0ZS5wdGUpOworCisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGlubGluZSBwZ2RfdCBfX3BnZChwZ2R2YWxfdCB2YWwpCiB7CiAJcGdkdmFsX3QgcmV0OwpAQCAtMTAyNCw2ICsxMTE0LDI5IEBACiAJcmV0dXJuIHJldDsKIH0KIAorI2RlZmluZSAgX19IQVZFX0FSQ0hfUFRFUF9NT0RJRllfUFJPVF9UUkFOU0FDVElPTgorc3RhdGljIGlubGluZSBwdGVfdCBwdGVwX21vZGlmeV9wcm90X3N0YXJ0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwKQoreworCXB0ZXZhbF90IHJldDsKKworCXJldCA9IFBWT1BfQ0FMTDMocHRldmFsX3QsIHB2X21tdV9vcHMucHRlcF9tb2RpZnlfcHJvdF9zdGFydCwKKwkJCSBtbSwgYWRkciwgcHRlcCk7CisKKwlyZXR1cm4gKHB0ZV90KSB7IC5wdGUgPSByZXQgfTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJCQkJCSAgIHB0ZV90ICpwdGVwLCBwdGVfdCBwdGUpCit7CisJaWYgKHNpemVvZihwdGV2YWxfdCkgPiBzaXplb2YobG9uZykpCisJCS8qIDUgYXJnIHdvcmRzICovCisJCXB2X21tdV9vcHMucHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZXAsIHB0ZSk7CisJZWxzZQorCQlQVk9QX1ZDQUxMNChwdl9tbXVfb3BzLnB0ZXBfbW9kaWZ5X3Byb3RfY29tbWl0LAorCQkJICAgIG1tLCBhZGRyLCBwdGVwLCBwdGUucHRlKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHNldF9wdGUocHRlX3QgKnB0ZXAsIHB0ZV90IHB0ZSkKIHsKIAlpZiAoc2l6ZW9mKHB0ZXZhbF90KSA+IHNpemVvZihsb25nKSkKQEAgLTEyNTIsNiArMTM2NSwxMiBAQAogCX0KIH0KIAorc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X2ZpeG1hcCh1bnNpZ25lZCAvKiBlbnVtIGZpeGVkX2FkZHJlc3NlcyAqLyBpZHgsCisJCQkJdW5zaWduZWQgbG9uZyBwaHlzLCBwZ3Byb3RfdCBmbGFncykKK3sKKwlwdl9tbXVfb3BzLnNldF9maXhtYXAoaWR4LCBwaHlzLCBmbGFncyk7Cit9CisKIHZvaWQgX3BhcmF2aXJ0X25vcCh2b2lkKTsKICNkZWZpbmUgcGFyYXZpcnRfbm9wCSgodm9pZCAqKV9wYXJhdmlydF9ub3ApCiAKQEAgLTEzNzQsNTQgKzE0OTMsODYgQEAKICNkZWZpbmUgUFZfUkVTVE9SRV9SRUdTIHBvcHEgJXJkeDsgcG9wcSAlcmN4OyBwb3BxICVyZGk7IHBvcHEgJXJheAogI2RlZmluZSBQQVJBX1BBVENIKHN0cnVjdCwgb2ZmKSAgICAgICAgKChQQVJBVklSVF9QQVRDSF8jI3N0cnVjdCArIChvZmYpKSAvIDgpCiAjZGVmaW5lIFBBUkFfU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcykgX1BWU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcywgLnF1YWQsIDgpCisjZGVmaW5lIFBBUkFfSU5ESVJFQ1QoYWRkcikJKmFkZHIoJXJpcCkKICNlbHNlCiAjZGVmaW5lIFBWX1NBVkVfUkVHUyAgIHB1c2hsICVlYXg7IHB1c2hsICVlZGk7IHB1c2hsICVlY3g7IHB1c2hsICVlZHgKICNkZWZpbmUgUFZfUkVTVE9SRV9SRUdTIHBvcGwgJWVkeDsgcG9wbCAlZWN4OyBwb3BsICVlZGk7IHBvcGwgJWVheAogI2RlZmluZSBQQVJBX1BBVENIKHN0cnVjdCwgb2ZmKSAgICAgICAgKChQQVJBVklSVF9QQVRDSF8jI3N0cnVjdCArIChvZmYpKSAvIDQpCiAjZGVmaW5lIFBBUkFfU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcykgX1BWU0lURShwdHlwZSwgY2xvYmJlcnMsIG9wcywgLmxvbmcsIDQpCisjZGVmaW5lIFBBUkFfSU5ESVJFQ1QoYWRkcikJKiVjczphZGRyCiAjZW5kaWYKIAogI2RlZmluZSBJTlRFUlJVUFRfUkVUVVJOCQkJCQkJXAogCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9pcmV0KSwgQ0xCUl9OT05FLAlcCi0JCSAgam1wIColY3M6cHZfY3B1X29wcytQVl9DUFVfaXJldCkKKwkJICBqbXAgUEFSQV9JTkRJUkVDVChwdl9jcHVfb3BzK1BWX0NQVV9pcmV0KSkKIAogI2RlZmluZSBESVNBQkxFX0lOVEVSUlVQVFMoY2xvYmJlcnMpCQkJCQlcCiAJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfaXJxX29wcywgUFZfSVJRX2lycV9kaXNhYmxlKSwgY2xvYmJlcnMsIFwKLQkJICBQVl9TQVZFX1JFR1M7CQkJXAotCQkgIGNhbGwgKiVjczpwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZGlzYWJsZTsJCVwKKwkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAorCQkgIGNhbGwgUEFSQV9JTkRJUkVDVChwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZGlzYWJsZSk7CVwKIAkJICBQVl9SRVNUT1JFX1JFR1M7KQkJCVwKIAogI2RlZmluZSBFTkFCTEVfSU5URVJSVVBUUyhjbG9iYmVycykJCQkJCVwKIAlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9pcnFfb3BzLCBQVl9JUlFfaXJxX2VuYWJsZSksIGNsb2JiZXJzLAlcCi0JCSAgUFZfU0FWRV9SRUdTOwkJCVwKLQkJICBjYWxsIColY3M6cHZfaXJxX29wcytQVl9JUlFfaXJxX2VuYWJsZTsJCVwKKwkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAorCQkgIGNhbGwgUEFSQV9JTkRJUkVDVChwdl9pcnFfb3BzK1BWX0lSUV9pcnFfZW5hYmxlKTsJXAogCQkgIFBWX1JFU1RPUkVfUkVHUzspCiAKLSNkZWZpbmUgRU5BQkxFX0lOVEVSUlVQVFNfU1lTQ0FMTF9SRVQJCQkJCVwKLQlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNjYWxsX3JldCksXAorI2RlZmluZSBVU0VSR1NfU1lTUkVUMzIJCQkJCQkJXAorCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV91c2VyZ3Nfc3lzcmV0MzIpLAlcCiAJCSAgQ0xCUl9OT05FLAkJCQkJCVwKLQkJICBqbXAgKiVjczpwdl9jcHVfb3BzK1BWX0NQVV9pcnFfZW5hYmxlX3N5c2NhbGxfcmV0KQotCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfdXNlcmdzX3N5c3JldDMyKSkKIAogI2lmZGVmIENPTkZJR19YODZfMzIKLSNkZWZpbmUgR0VUX0NSMF9JTlRPX0VBWAkJCVwKLQlwdXNoICVlY3g7IHB1c2ggJWVkeDsJCQlcCi0JY2FsbCAqcHZfY3B1X29wcytQVl9DUFVfcmVhZF9jcjA7CVwKKyNkZWZpbmUgR0VUX0NSMF9JTlRPX0VBWAkJCQlcCisJcHVzaCAlZWN4OyBwdXNoICVlZHg7CQkJCVwKKwljYWxsIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfcmVhZF9jcjApOwlcCiAJcG9wICVlZHg7IHBvcCAlZWN4Ci0jZWxzZQorCisjZGVmaW5lIEVOQUJMRV9JTlRFUlJVUFRTX1NZU0VYSVQJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSkKKworCisjZWxzZQkvKiAhQ09ORklHX1g4Nl8zMiAqLworCisvKgorICogSWYgc3dhcGdzIGlzIHVzZWQgd2hpbGUgdGhlIHVzZXJzcGFjZSBzdGFjayBpcyBzdGlsbCBjdXJyZW50LAorICogdGhlcmUncyBubyB3YXkgdG8gY2FsbCBhIHB2b3AuICBUaGUgUFYgcmVwbGFjZW1lbnQgKm11c3QqIGJlCisgKiBpbmxpbmVkLCBvciB0aGUgc3dhcGdzIGluc3RydWN0aW9uIG11c3QgYmUgdHJhcHBlZCBhbmQgZW11bGF0ZWQuCisgKi8KKyNkZWZpbmUgU1dBUEdTX1VOU0FGRV9TVEFDSwkJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfc3dhcGdzKSwgQ0xCUl9OT05FLAlcCisJCSAgc3dhcGdzKQorCiAjZGVmaW5lIFNXQVBHUwkJCQkJCQkJXAogCVBBUkFfU0lURShQQVJBX1BBVENIKHB2X2NwdV9vcHMsIFBWX0NQVV9zd2FwZ3MpLCBDTEJSX05PTkUsCVwKIAkJICBQVl9TQVZFX1JFR1M7CQkJCQkJXAotCQkgIGNhbGwgKnB2X2NwdV9vcHMrUFZfQ1BVX3N3YXBnczsJCQlcCisJCSAgY2FsbCBQQVJBX0lORElSRUNUKHB2X2NwdV9vcHMrUFZfQ1BVX3N3YXBncyk7CQlcCiAJCSAgUFZfUkVTVE9SRV9SRUdTCQkJCQlcCiAJCSApCiAKLSNkZWZpbmUgR0VUX0NSMl9JTlRPX1JDWAkJCVwKLQljYWxsICpwdl9tbXVfb3BzK1BWX01NVV9yZWFkX2NyMjsJXAotCW1vdnEgJXJheCwgJXJjeDsJCQlcCisjZGVmaW5lIEdFVF9DUjJfSU5UT19SQ1gJCQkJXAorCWNhbGwgUEFSQV9JTkRJUkVDVChwdl9tbXVfb3BzK1BWX01NVV9yZWFkX2NyMik7CVwKKwltb3ZxICVyYXgsICVyY3g7CQkJCVwKIAl4b3JxICVyYXgsICVyYXg7CiAKLSNlbmRpZgorI2RlZmluZSBQQVJBVklSVF9BREpVU1RfRVhDRVBUSU9OX0ZSQU1FCQkJCQlcCisJUEFSQV9TSVRFKFBBUkFfUEFUQ0gocHZfaXJxX29wcywgUFZfSVJRX2FkanVzdF9leGNlcHRpb25fZnJhbWUpLCBcCisJCSAgQ0xCUl9OT05FLAkJCQkJCVwKKwkJICBjYWxsIFBBUkFfSU5ESVJFQ1QocHZfaXJxX29wcytQVl9JUlFfYWRqdXN0X2V4Y2VwdGlvbl9mcmFtZSkpCisKKyNkZWZpbmUgVVNFUkdTX1NZU1JFVDY0CQkJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfdXNlcmdzX3N5c3JldDY0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfdXNlcmdzX3N5c3JldDY0KSkKKworI2RlZmluZSBFTkFCTEVfSU5URVJSVVBUU19TWVNFWElUMzIJCQkJCVwKKwlQQVJBX1NJVEUoUEFSQV9QQVRDSChwdl9jcHVfb3BzLCBQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSwJXAorCQkgIENMQlJfTk9ORSwJCQkJCQlcCisJCSAgam1wIFBBUkFfSU5ESVJFQ1QocHZfY3B1X29wcytQVl9DUFVfaXJxX2VuYWJsZV9zeXNleGl0KSkKKyNlbmRpZgkvKiBDT05GSUdfWDg2XzMyICovCiAKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wYXQuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wYXQuaAppbmRleCA4OGY2MGNjLi43ZWRjNDczIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGF0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BhdC5oCkBAIC0xLDE0ICsxLDEzIEBACi0KICNpZm5kZWYgX0FTTV9QQVRfSAotI2RlZmluZSBfQVNNX1BBVF9IIDEKKyNkZWZpbmUgX0FTTV9QQVRfSAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAogI2lmZGVmIENPTkZJR19YODZfUEFUCi1leHRlcm4gaW50IHBhdF93Y19lbmFibGVkOworZXh0ZXJuIGludCBwYXRfZW5hYmxlZDsKIGV4dGVybiB2b2lkIHZhbGlkYXRlX3BhdF9zdXBwb3J0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CiAjZWxzZQotc3RhdGljIGNvbnN0IGludCBwYXRfd2NfZW5hYmxlZCA9IDA7CitzdGF0aWMgY29uc3QgaW50IHBhdF9lbmFibGVkOwogc3RhdGljIGlubGluZSB2b2lkIHZhbGlkYXRlX3BhdF9zdXBwb3J0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykgeyB9CiAjZW5kaWYKIApAQCAtMjEsNCArMjAsMyBAQAogZXh0ZXJuIHZvaWQgcGF0X2Rpc2FibGUoY2hhciAqcmVhc29uKTsKIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAppbmRleCAzMGJiZGUwLi4yZGIxNGNmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGNpLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xOCw2ICsxOCw4IEBACiAjZW5kaWYKIH07CiAKK2V4dGVybiBpbnQgcGNpX3JvdXRlaXJxOworCiAvKiBzY2FuIGEgYnVzIGFmdGVyIGFsbG9jYXRpbmcgYSBwY2lfc3lzZGF0YSBmb3IgaXQgKi8KIGV4dGVybiBzdHJ1Y3QgcGNpX2J1cyAqcGNpX3NjYW5fYnVzX29uX25vZGUoaW50IGJ1c25vLCBzdHJ1Y3QgcGNpX29wcyAqb3BzLAogCQkJCQkgICAgaW50IG5vZGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BjaV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3BjaV8zMi5oCmluZGV4IDhjNGMzYTAuLmE1MGQ0NjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wY2lfMzIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGNpXzMyLmgKQEAgLTE4LDEyICsxOCwxNCBAQAogI2RlZmluZSBQQ0lfRE1BX0JVU19JU19QSFlTCSgxKQogCiAvKiBwY2lfdW5tYXBfe3BhZ2Usc2luZ2xlfSBpcyBhIG5vcCBzby4uLiAqLwotI2RlZmluZSBERUNMQVJFX1BDSV9VTk1BUF9BRERSKEFERFJfTkFNRSkKLSNkZWZpbmUgREVDTEFSRV9QQ0lfVU5NQVBfTEVOKExFTl9OQU1FKQotI2RlZmluZSBwY2lfdW5tYXBfYWRkcihQVFIsIEFERFJfTkFNRSkJCSgwKQotI2RlZmluZSBwY2lfdW5tYXBfYWRkcl9zZXQoUFRSLCBBRERSX05BTUUsIFZBTCkJZG8geyB9IHdoaWxlICgwKQotI2RlZmluZSBwY2lfdW5tYXBfbGVuKFBUUiwgTEVOX05BTUUpCQkoMCkKLSNkZWZpbmUgcGNpX3VubWFwX2xlbl9zZXQoUFRSLCBMRU5fTkFNRSwgVkFMKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIERFQ0xBUkVfUENJX1VOTUFQX0FERFIoQUREUl9OQU1FKQlkbWFfYWRkcl90IEFERFJfTkFNRVswXTsKKyNkZWZpbmUgREVDTEFSRV9QQ0lfVU5NQVBfTEVOKExFTl9OQU1FKQl1bnNpZ25lZCBMRU5fTkFNRVswXTsKKyNkZWZpbmUgcGNpX3VubWFwX2FkZHIoUFRSLCBBRERSX05BTUUpCXNpemVvZigoUFRSKS0+QUREUl9OQU1FKQorI2RlZmluZSBwY2lfdW5tYXBfYWRkcl9zZXQoUFRSLCBBRERSX05BTUUsIFZBTCkgXAorCWRvIHsgYnJlYWs7IH0gd2hpbGUgKHBjaV91bm1hcF9hZGRyKFBUUiwgQUREUl9OQU1FKSkKKyNkZWZpbmUgcGNpX3VubWFwX2xlbihQVFIsIExFTl9OQU1FKQkJc2l6ZW9mKChQVFIpLT5MRU5fTkFNRSkKKyNkZWZpbmUgcGNpX3VubWFwX2xlbl9zZXQoUFRSLCBMRU5fTkFNRSwgVkFMKSBcCisJZG8geyBicmVhazsgfSB3aGlsZSAocGNpX3VubWFwX2xlbihQVFIsIExFTl9OQU1FKSkKIAogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3BkYS5oIGIvaW5jbHVkZS9hc20teDg2L3BkYS5oCmluZGV4IDEwMWZiOWUuLmIzNGU5YTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZGEuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcGRhLmgKQEAgLTIyLDYgKzIyLDggQEAKIAkJCQkJICAgb2Zmc2V0IDQwISEhICovCiAjZW5kaWYKIAljaGFyICppcnFzdGFja3B0cjsKKwlzaG9ydCBub2RlbnVtYmVyOwkJLyogbnVtYmVyIG9mIGN1cnJlbnQgbm9kZSAoMzJrIG1heCkgKi8KKwlzaG9ydCBpbl9ib290bWVtOwkJLyogcGRhIGxpdmVzIGluIGJvb3RtZW0gKi8KIAl1bnNpZ25lZCBpbnQgX19zb2Z0aXJxX3BlbmRpbmc7CiAJdW5zaWduZWQgaW50IF9fbm1pX2NvdW50OwkvKiBudW1iZXIgb2YgTk1JIG9uIHRoaXMgQ1BVcyAqLwogCXNob3J0IG1tdV9zdGF0ZTsKQEAgLTM3LDggKzM5LDcgQEAKIAl1bnNpZ25lZCBpcnFfc3B1cmlvdXNfY291bnQ7CiB9IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7CiAKLWV4dGVybiBzdHJ1Y3QgeDg2NjRfcGRhICpfY3B1X3BkYVtdOwotZXh0ZXJuIHN0cnVjdCB4ODY2NF9wZGEgYm9vdF9jcHVfcGRhW107CitleHRlcm4gc3RydWN0IHg4NjY0X3BkYSAqKl9jcHVfcGRhOwogZXh0ZXJuIHZvaWQgcGRhX2luaXQoaW50KTsKIAogI2RlZmluZSBjcHVfcGRhKGkpIChfY3B1X3BkYVtpXSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZXJjcHUuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wZXJjcHUuaAppbmRleCA3MzZmYzNiLi45MTJhM2ExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGVyY3B1LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BlcmNwdS5oCkBAIC0xNDMsNCArMTQzLDUwIEBACiAjZGVmaW5lIHg4Nl9vcl9wZXJjcHUodmFyLCB2YWwpIHBlcmNwdV90b19vcCgib3IiLCBwZXJfY3B1X18jI3ZhciwgdmFsKQogI2VuZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KICNlbmRpZiAvKiAhQ09ORklHX1g4Nl82NCAqLworCisjaWZkZWYgQ09ORklHX1NNUAorCisvKgorICogRGVmaW5lIHRoZSAiRUFSTFlfUEVSX0NQVSIgbWFjcm9zLiAgVGhlc2UgYXJlIHVzZWQgZm9yIHNvbWUgcGVyX2NwdQorICogdmFyaWFibGVzIHRoYXQgYXJlIGluaXRpYWxpemVkIGFuZCBhY2Nlc3NlZCBiZWZvcmUgdGhlcmUgYXJlIHBlcl9jcHUKKyAqIGFyZWFzIGFsbG9jYXRlZC4KKyAqLworCisjZGVmaW5lCURFRklORV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSwgX2luaXR2YWx1ZSkJCQlcCisJREVGSU5FX1BFUl9DUFUoX3R5cGUsIF9uYW1lKSA9IF9pbml0dmFsdWU7CQkJXAorCV9fdHlwZW9mX18oX3R5cGUpIF9uYW1lIyNfZWFybHlfbWFwW05SX0NQVVNdIF9faW5pdGRhdGEgPQlcCisJCQkJeyBbMCAuLi4gTlJfQ1BVUy0xXSA9IF9pbml0dmFsdWUgfTsJXAorCV9fdHlwZW9mX18oX3R5cGUpICpfbmFtZSMjX2Vhcmx5X3B0ciA9IF9uYW1lIyNfZWFybHlfbWFwCisKKyNkZWZpbmUgRVhQT1JUX0VBUkxZX1BFUl9DUFVfU1lNQk9MKF9uYW1lKQkJCVwKKwlFWFBPUlRfUEVSX0NQVV9TWU1CT0woX25hbWUpCisKKyNkZWZpbmUgREVDTEFSRV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSkJCQlcCisJREVDTEFSRV9QRVJfQ1BVKF90eXBlLCBfbmFtZSk7CQkJCVwKKwlleHRlcm4gX190eXBlb2ZfXyhfdHlwZSkgKl9uYW1lIyNfZWFybHlfcHRyOwkJXAorCWV4dGVybiBfX3R5cGVvZl9fKF90eXBlKSAgX25hbWUjI19lYXJseV9tYXBbXQorCisjZGVmaW5lCWVhcmx5X3Blcl9jcHVfcHRyKF9uYW1lKSAoX25hbWUjI19lYXJseV9wdHIpCisjZGVmaW5lCWVhcmx5X3Blcl9jcHVfbWFwKF9uYW1lLCBfaWR4KSAoX25hbWUjI19lYXJseV9tYXBbX2lkeF0pCisjZGVmaW5lCWVhcmx5X3Blcl9jcHUoX25hbWUsIF9jcHUpIAkJCQlcCisJKGVhcmx5X3Blcl9jcHVfcHRyKF9uYW1lKSA/CQkJCVwKKwkJZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpW19jcHVdIDoJCVwKKwkJcGVyX2NwdShfbmFtZSwgX2NwdSkpCisKKyNlbHNlCS8qICFDT05GSUdfU01QICovCisjZGVmaW5lCURFRklORV9FQVJMWV9QRVJfQ1BVKF90eXBlLCBfbmFtZSwgX2luaXR2YWx1ZSkJCVwKKwlERUZJTkVfUEVSX0NQVShfdHlwZSwgX25hbWUpID0gX2luaXR2YWx1ZQorCisjZGVmaW5lIEVYUE9SVF9FQVJMWV9QRVJfQ1BVX1NZTUJPTChfbmFtZSkJCQlcCisJRVhQT1JUX1BFUl9DUFVfU1lNQk9MKF9uYW1lKQorCisjZGVmaW5lIERFQ0xBUkVfRUFSTFlfUEVSX0NQVShfdHlwZSwgX25hbWUpCQkJXAorCURFQ0xBUkVfUEVSX0NQVShfdHlwZSwgX25hbWUpCisKKyNkZWZpbmUJZWFybHlfcGVyX2NwdShfbmFtZSwgX2NwdSkgcGVyX2NwdShfbmFtZSwgX2NwdSkKKyNkZWZpbmUJZWFybHlfcGVyX2NwdV9wdHIoX25hbWUpIE5VTEwKKy8qIG5vIGVhcmx5X3Blcl9jcHVfbWFwKCkgKi8KKworI2VuZGlmCS8qICFDT05GSUdfU01QICovCisKICNlbmRpZiAvKiBfQVNNX1g4Nl9QRVJDUFVfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ2FsbG9jLmggYi9pbmNsdWRlL2FzbS14ODYvcGdhbGxvYy5oCmluZGV4IDkxZTQ2NDEuLmQ2M2VhNDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ2FsbG9jLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BnYWxsb2MuaApAQCAtNSw5ICs1LDEzIEBACiAjaW5jbHVkZSA8bGludXgvbW0uaD4JCS8qIGZvciBzdHJ1Y3QgcGFnZSAqLwogI2luY2x1ZGUgPGxpbnV4L3BhZ2VtYXAuaD4KIAorc3RhdGljIGlubGluZSBpbnQgIF9fcGFyYXZpcnRfcGdkX2FsbG9jKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKSB7IHJldHVybiAwOyB9CisKICNpZmRlZiBDT05GSUdfUEFSQVZJUlQKICNpbmNsdWRlIDxhc20vcGFyYXZpcnQuaD4KICNlbHNlCisjZGVmaW5lIHBhcmF2aXJ0X3BnZF9hbGxvYyhtbSkJX19wYXJhdmlydF9wZ2RfYWxsb2MobW0pCitzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfcGdkX2ZyZWUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHBnZF90ICpwZ2QpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQgcGFyYXZpcnRfYWxsb2NfcHRlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIHBmbikJe30KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXJhdmlydF9hbGxvY19wbWQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgcGZuKQl7fQogc3RhdGljIGlubGluZSB2b2lkIHBhcmF2aXJ0X2FsbG9jX3BtZF9jbG9uZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBjbG9uZXBmbiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlLmggYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZS5oCmluZGV4IDk3YzI3MWIuLjQ5Y2JkNzYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGUuaApAQCAtMjAsMzAgKzIwLDI1IEBACiAjZGVmaW5lIF9QQUdFX0JJVF9QQVRfTEFSR0UJMTIJLyogT24gMk1CIG9yIDFHQiBwYWdlcyAqLwogI2RlZmluZSBfUEFHRV9CSVRfTlggICAgICAgICAgIDYzICAgICAgIC8qIE5vIGV4ZWN1dGU6IG9ubHkgdmFsaWQgYWZ0ZXIgY3B1aWQgY2hlY2sgKi8KIAotLyoKLSAqIE5vdGU6IHdlIHVzZSBfQUMoMSwgTCkgaW5zdGVhZCBvZiBfQUMoMSwgVUwpIHNvIHRoYXQgd2UgZ2V0IGEKLSAqIHNpZ24tZXh0ZW5kZWQgdmFsdWUgb24gMzItYml0IHdpdGggYWxsIDEncyBpbiB0aGUgdXBwZXIgd29yZCwKLSAqIHdoaWNoIHByZXNlcnZlcyB0aGUgdXBwZXIgcHRlIHZhbHVlcyBvbiA2NC1iaXQgcHRlczoKLSAqLwotI2RlZmluZSBfUEFHRV9QUkVTRU5UCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9QUkVTRU5UKQotI2RlZmluZSBfUEFHRV9SVwkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUlcpCi0jZGVmaW5lIF9QQUdFX1VTRVIJKF9BQygxLCBMKTw8X1BBR0VfQklUX1VTRVIpCi0jZGVmaW5lIF9QQUdFX1BXVAkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUFdUKQotI2RlZmluZSBfUEFHRV9QQ0QJKF9BQygxLCBMKTw8X1BBR0VfQklUX1BDRCkKLSNkZWZpbmUgX1BBR0VfQUNDRVNTRUQJKF9BQygxLCBMKTw8X1BBR0VfQklUX0FDQ0VTU0VEKQotI2RlZmluZSBfUEFHRV9ESVJUWQkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfRElSVFkpCi0jZGVmaW5lIF9QQUdFX1BTRQkoX0FDKDEsIEwpPDxfUEFHRV9CSVRfUFNFKQkvKiAyTUIgcGFnZSAqLwotI2RlZmluZSBfUEFHRV9HTE9CQUwJKF9BQygxLCBMKTw8X1BBR0VfQklUX0dMT0JBTCkJLyogR2xvYmFsIFRMQiBlbnRyeSAqLwotI2RlZmluZSBfUEFHRV9VTlVTRUQxCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQxKQotI2RlZmluZSBfUEFHRV9VTlVTRUQyCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQyKQotI2RlZmluZSBfUEFHRV9VTlVTRUQzCShfQUMoMSwgTCk8PF9QQUdFX0JJVF9VTlVTRUQzKQotI2RlZmluZSBfUEFHRV9QQVQJKF9BQygxLCBMKTw8X1BBR0VfQklUX1BBVCkKLSNkZWZpbmUgX1BBR0VfUEFUX0xBUkdFIChfQUMoMSwgTCk8PF9QQUdFX0JJVF9QQVRfTEFSR0UpCisjZGVmaW5lIF9QQUdFX1BSRVNFTlQJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BSRVNFTlQpCisjZGVmaW5lIF9QQUdFX1JXCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9SVykKKyNkZWZpbmUgX1BBR0VfVVNFUgkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfVVNFUikKKyNkZWZpbmUgX1BBR0VfUFdUCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QV1QpCisjZGVmaW5lIF9QQUdFX1BDRAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfUENEKQorI2RlZmluZSBfUEFHRV9BQ0NFU1NFRAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfQUNDRVNTRUQpCisjZGVmaW5lIF9QQUdFX0RJUlRZCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9ESVJUWSkKKyNkZWZpbmUgX1BBR0VfUFNFCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QU0UpCisjZGVmaW5lIF9QQUdFX0dMT0JBTAkoX0FUKHB0ZXZhbF90LCAxKSA8PCBfUEFHRV9CSVRfR0xPQkFMKQorI2RlZmluZSBfUEFHRV9VTlVTRUQxCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQxKQorI2RlZmluZSBfUEFHRV9VTlVTRUQyCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQyKQorI2RlZmluZSBfUEFHRV9VTlVTRUQzCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9VTlVTRUQzKQorI2RlZmluZSBfUEFHRV9QQVQJKF9BVChwdGV2YWxfdCwgMSkgPDwgX1BBR0VfQklUX1BBVCkKKyNkZWZpbmUgX1BBR0VfUEFUX0xBUkdFIChfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9QQVRfTEFSR0UpCiAKICNpZiBkZWZpbmVkKENPTkZJR19YODZfNjQpIHx8IGRlZmluZWQoQ09ORklHX1g4Nl9QQUUpCi0jZGVmaW5lIF9QQUdFX05YCShfQUMoMSwgVUxMKSA8PCBfUEFHRV9CSVRfTlgpCisjZGVmaW5lIF9QQUdFX05YCShfQVQocHRldmFsX3QsIDEpIDw8IF9QQUdFX0JJVF9OWCkKICNlbHNlCi0jZGVmaW5lIF9QQUdFX05YCTAKKyNkZWZpbmUgX1BBR0VfTlgJKF9BVChwdGV2YWxfdCwgMCkpCiAjZW5kaWYKIAogLyogSWYgX1BBR0VfUFJFU0VOVCBpcyBjbGVhciwgd2UgdXNlIHRoZXNlOiAqLwpAQCAtODMsMTkgKzc4LDkgQEAKICNkZWZpbmUgUEFHRV9SRUFET05MWV9FWEVDCV9fcGdwcm90KF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9VU0VSIHwJXAogCQkJCQkgX1BBR0VfQUNDRVNTRUQpCiAKLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jZGVmaW5lIF9QQUdFX0tFUk5FTF9FWEVDIFwKLQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCkKLSNkZWZpbmUgX1BBR0VfS0VSTkVMIChfUEFHRV9LRVJORUxfRVhFQyB8IF9QQUdFX05YKQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotZXh0ZXJuIHB0ZXZhbF90IF9fUEFHRV9LRVJORUwsIF9fUEFHRV9LRVJORUxfRVhFQzsKLSNlbmRpZgkvKiBfX0FTU0VNQkxZX18gKi8KLSNlbHNlCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfRVhFQwkJCQkJCVwKLQkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCkKKwkoX1BBR0VfUFJFU0VOVCB8IF9QQUdFX1JXIHwgX1BBR0VfRElSVFkgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0dMT0JBTCkKICNkZWZpbmUgX19QQUdFX0tFUk5FTAkJKF9fUEFHRV9LRVJORUxfRVhFQyB8IF9QQUdFX05YKQotI2VuZGlmCiAKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9STwkJKF9fUEFHRV9LRVJORUwgJiB+X1BBR0VfUlcpCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfUlgJCShfX1BBR0VfS0VSTkVMX0VYRUMgJiB+X1BBR0VfUlcpCkBAIC0xMDYsMjYgKzkxLDIyIEBACiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfVlNZU0NBTEwJCShfX1BBR0VfS0VSTkVMX1JYIHwgX1BBR0VfVVNFUikKICNkZWZpbmUgX19QQUdFX0tFUk5FTF9WU1lTQ0FMTF9OT0NBQ0hFCShfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMIHwgX1BBR0VfUENEIHwgX1BBR0VfUFdUKQogI2RlZmluZSBfX1BBR0VfS0VSTkVMX0xBUkdFCQkoX19QQUdFX0tFUk5FTCB8IF9QQUdFX1BTRSkKKyNkZWZpbmUgX19QQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFCShfX1BBR0VfS0VSTkVMIHwgX1BBR0VfQ0FDSEVfVUMgfCBfUEFHRV9QU0UpCiAjZGVmaW5lIF9fUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkoX19QQUdFX0tFUk5FTF9FWEVDIHwgX1BBR0VfUFNFKQogCi0jaWZkZWYgQ09ORklHX1g4Nl8zMgotIyBkZWZpbmUgTUFLRV9HTE9CQUwoeCkJCQlfX3BncHJvdCgoeCkpCi0jZWxzZQotIyBkZWZpbmUgTUFLRV9HTE9CQUwoeCkJCQlfX3BncHJvdCgoeCkgfCBfUEFHRV9HTE9CQUwpCi0jZW5kaWYKLQotI2RlZmluZSBQQUdFX0tFUk5FTAkJCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUwpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1JPCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9STykKLSNkZWZpbmUgUEFHRV9LRVJORUxfRVhFQwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9FWEVDKQotI2RlZmluZSBQQUdFX0tFUk5FTF9SWAkJCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUxfUlgpCi0jZGVmaW5lIFBBR0VfS0VSTkVMX1dDCQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9XQykKLSNkZWZpbmUgUEFHRV9LRVJORUxfTk9DQUNIRQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9OT0NBQ0hFKQotI2RlZmluZSBQQUdFX0tFUk5FTF9VQ19NSU5VUwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9VQ19NSU5VUykKLSNkZWZpbmUgUEFHRV9LRVJORUxfRVhFQ19OT0NBQ0hFCU1BS0VfR0xPQkFMKF9fUEFHRV9LRVJORUxfRVhFQ19OT0NBQ0hFKQotI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRQkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9MQVJHRSkKLSNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDKQotI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTAkJTUFLRV9HTE9CQUwoX19QQUdFX0tFUk5FTF9WU1lTQ0FMTCkKLSNkZWZpbmUgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRQlNQUtFX0dMT0JBTChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMCQkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfUk8JCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1JPKQorI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0VYRUMpCisjZGVmaW5lIFBBR0VfS0VSTkVMX1JYCQkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9SWCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfV0MJCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1dDKQorI2RlZmluZSBQQUdFX0tFUk5FTF9OT0NBQ0hFCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMX1VDX01JTlVTCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1VDX01JTlVTKQorI2RlZmluZSBQQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9FWEVDX05PQ0FDSEUpCisjZGVmaW5lIFBBR0VfS0VSTkVMX0xBUkdFCQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX0xBUkdFKQorI2RlZmluZSBQQUdFX0tFUk5FTF9MQVJHRV9OT0NBQ0hFCV9fcGdwcm90KF9fUEFHRV9LRVJORUxfTEFSR0VfTk9DQUNIRSkKKyNkZWZpbmUgUEFHRV9LRVJORUxfTEFSR0VfRVhFQwkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9MQVJHRV9FWEVDKQorI2RlZmluZSBQQUdFX0tFUk5FTF9WU1lTQ0FMTAkJX19wZ3Byb3QoX19QQUdFX0tFUk5FTF9WU1lTQ0FMTCkKKyNkZWZpbmUgUEFHRV9LRVJORUxfVlNZU0NBTExfTk9DQUNIRQlfX3BncHJvdChfX1BBR0VfS0VSTkVMX1ZTWVNDQUxMX05PQ0FDSEUpCiAKIC8qICAgICAgICAgeHdyICovCiAjZGVmaW5lIF9fUDAwMAlQQUdFX05PTkUKQEAgLTE2NCwzNyArMTQ1LDM3IEBACiAgKi8KIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9kaXJ0eShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX0RJUlRZOworCXJldHVybiBwdGVfZmxhZ3MocHRlKSAmIF9QQUdFX0RJUlRZOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfeW91bmcocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9BQ0NFU1NFRDsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9BQ0NFU1NFRDsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgcHRlX3dyaXRlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfUlc7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfUlc7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9maWxlKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gcHRlX3ZhbChwdGUpICYgX1BBR0VfRklMRTsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9GSUxFOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfaHVnZShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIHB0ZV92YWwocHRlKSAmIF9QQUdFX1BTRTsKKwlyZXR1cm4gcHRlX2ZsYWdzKHB0ZSkgJiBfUEFHRV9QU0U7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHB0ZV9nbG9iYWwocHRlX3QgcHRlKQogewotCXJldHVybiBwdGVfdmFsKHB0ZSkgJiBfUEFHRV9HTE9CQUw7CisJcmV0dXJuIHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfR0xPQkFMOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfZXhlYyhwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuICEocHRlX3ZhbChwdGUpICYgX1BBR0VfTlgpOworCXJldHVybiAhKHB0ZV9mbGFncyhwdGUpICYgX1BBR0VfTlgpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwdGVfc3BlY2lhbChwdGVfdCBwdGUpCkBAIC0yMTAsMjIgKzE5MSwyMiBAQAogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta2NsZWFuKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9ESVJUWSk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9ESVJUWSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rb2xkKHB0ZV90IHB0ZSkKIHsKLQlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfihwdGV2YWxfdClfUEFHRV9BQ0NFU1NFRCk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9BQ0NFU1NFRCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX3dycHJvdGVjdChwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfUlcpOworCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+X1BBR0VfUlcpOwogfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta2V4ZWMocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX05YKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX05YKTsKIH0KIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfbWtkaXJ0eShwdGVfdCBwdGUpCkBAIC0yNTAsNyArMjMxLDcgQEAKIAogc3RhdGljIGlubGluZSBwdGVfdCBwdGVfY2xyaHVnZShwdGVfdCBwdGUpCiB7Ci0JcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH4ocHRldmFsX3QpX1BBR0VfUFNFKTsKKwlyZXR1cm4gX19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX1BTRSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcHRlX3QgcHRlX21rZ2xvYmFsKHB0ZV90IHB0ZSkKQEAgLTI2MCw3ICsyNDEsNyBAQAogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9jbHJnbG9iYWwocHRlX3QgcHRlKQogewotCXJldHVybiBfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+KHB0ZXZhbF90KV9QQUdFX0dMT0JBTCk7CisJcmV0dXJuIF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9HTE9CQUwpOwogfQogCiBzdGF0aWMgaW5saW5lIHB0ZV90IHB0ZV9ta3NwZWNpYWwocHRlX3QgcHRlKQpAQCAtMzA1LDcgKzI4Niw3IEBACiAJcmV0dXJuIF9fcGdwcm90KHByZXNlcnZlYml0cyB8IGFkZGJpdHMpOwogfQogCi0jZGVmaW5lIHB0ZV9wZ3Byb3QoeCkgX19wZ3Byb3QocHRlX3ZhbCh4KSAmIH5QVEVfTUFTSykKKyNkZWZpbmUgcHRlX3BncHJvdCh4KSBfX3BncHJvdChwdGVfZmxhZ3MoeCkgJiB+UFRFX01BU0spCiAKICNkZWZpbmUgY2Fub25fcGdwcm90KHApIF9fcGdwcm90KHBncHJvdF92YWwocCkgJiBfX3N1cHBvcnRlZF9wdGVfbWFzaykKIApAQCAtMzE4LDYgKzI5OSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIHBncHJvdF90ICp2bWFfcHJvdCk7CiAjZW5kaWYKIAorLyogSW5zdGFsbCBhIHB0ZSBmb3IgYSBwYXJ0aWN1bGFyIHZhZGRyIGluIGtlcm5lbCBzcGFjZS4gKi8KK3ZvaWQgc2V0X3B0ZV92YWRkcih1bnNpZ25lZCBsb25nIHZhZGRyLCBwdGVfdCBwdGUpOworCiAjaWZkZWYgQ09ORklHX1BBUkFWSVJUCiAjaW5jbHVkZSA8YXNtL3BhcmF2aXJ0Lmg+CiAjZWxzZSAgLyogIUNPTkZJR19QQVJBVklSVCAqLwpAQCAtMzU5LDYgKzM0MywyNiBAQAogIyBpbmNsdWRlICJwZ3RhYmxlXzY0LmgiCiAjZW5kaWYKIAorLyoKKyAqIHRoZSBwZ2QgcGFnZSBjYW4gYmUgdGhvdWdodCBvZiBhbiBhcnJheSBsaWtlIHRoaXM6IHBnZF90W1BUUlNfUEVSX1BHRF0KKyAqCisgKiB0aGlzIG1hY3JvIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSBpbiB0aGUgcGdkIHBhZ2Ugd2hpY2ggd291bGQKKyAqIGNvbnRyb2wgdGhlIGdpdmVuIHZpcnR1YWwgYWRkcmVzcworICovCisjZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkgJiAoUFRSU19QRVJfUEdEIC0gMSkpCisKKy8qCisgKiBwZ2Rfb2Zmc2V0KCkgcmV0dXJucyBhIChwZ2RfdCAqKQorICogcGdkX2luZGV4KCkgaXMgdXNlZCBnZXQgdGhlIG9mZnNldCBpbnRvIHRoZSBwZ2QgcGFnZSdzIGFycmF5IG9mIHBnZF90J3M7CisgKi8KKyNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQorLyoKKyAqIGEgc2hvcnRjdXQgd2hpY2ggaW1wbGllcyB0aGUgdXNlIG9mIHRoZSBrZXJuZWwncyBwZ2QsIGluc3RlYWQKKyAqIG9mIGEgcHJvY2VzcydzCisgKi8KKyNkZWZpbmUgcGdkX29mZnNldF9rKGFkZHJlc3MpIHBnZF9vZmZzZXQoJmluaXRfbW0sIChhZGRyZXNzKSkKKworCiAjZGVmaW5lIEtFUk5FTF9QR0RfQk9VTkRBUlkJcGdkX2luZGV4KFBBR0VfT0ZGU0VUKQogI2RlZmluZSBLRVJORUxfUEdEX1BUUlMJCShQVFJTX1BFUl9QR0QgLSBLRVJORUxfUEdEX0JPVU5EQVJZKQogCkBAIC0zNjksOCArMzczLDE1IEBACiAJUEdfTEVWRUxfNEssCiAJUEdfTEVWRUxfMk0sCiAJUEdfTEVWRUxfMUcsCisJUEdfTEVWRUxfTlVNCiB9OwogCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK2V4dGVybiB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcyk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9wYWdlX2NvdW50KGludCBsZXZlbCwgdW5zaWduZWQgbG9uZyBwYWdlcykgeyB9CisjZW5kaWYKKwogLyoKICAqIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIGtlcm5lbCBwYWdldGFibGUgZW50cnkgY29udHJvbGxpbmcKICAqIHRoZSB2aXJ0dWFsIGFkZHJlc3MgJ2FkZHJlc3MnLiBOVUxMIG1lYW5zIG5vIHBhZ2V0YWJsZSBlbnRyeSBwcmVzZW50LgpAQCAtNDIwLDYgKzQzMSw4IEBACiAgKiByYWNlIHdpdGggb3RoZXIgQ1BVJ3MgdGhhdCBtaWdodCBiZSB1cGRhdGluZyB0aGUgZGlydHkKICAqIGJpdCBhdCB0aGUgc2FtZSB0aW1lLgogICovCitzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Q7CisKICNkZWZpbmUgIF9fSEFWRV9BUkNIX1BURVBfU0VUX0FDQ0VTU19GTEFHUwogZXh0ZXJuIGludCBwdGVwX3NldF9hY2Nlc3NfZmxhZ3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgcHRlX3QgKnB0ZXAsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGVfMzIuaAppbmRleCAzMmNhMDMxLi5lYzg3MWM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzMyLmgKQEAgLTExMywyNiArMTEzLDYgQEAKICAqLwogI2RlZmluZSBta19wdGUocGFnZSwgcGdwcm90KQlwZm5fcHRlKHBhZ2VfdG9fcGZuKHBhZ2UpLCAocGdwcm90KSkKIAotLyoKLSAqIHRoZSBwZ2QgcGFnZSBjYW4gYmUgdGhvdWdodCBvZiBhbiBhcnJheSBsaWtlIHRoaXM6IHBnZF90W1BUUlNfUEVSX1BHRF0KLSAqCi0gKiB0aGlzIG1hY3JvIHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBlbnRyeSBpbiB0aGUgcGdkIHBhZ2Ugd2hpY2ggd291bGQKLSAqIGNvbnRyb2wgdGhlIGdpdmVuIHZpcnR1YWwgYWRkcmVzcwotICovCi0jZGVmaW5lIHBnZF9pbmRleChhZGRyZXNzKSAoKChhZGRyZXNzKSA+PiBQR0RJUl9TSElGVCkgJiAoUFRSU19QRVJfUEdEIC0gMSkpCi0jZGVmaW5lIHBnZF9pbmRleF9rKGFkZHIpIHBnZF9pbmRleCgoYWRkcikpCi0KLS8qCi0gKiBwZ2Rfb2Zmc2V0KCkgcmV0dXJucyBhIChwZ2RfdCAqKQotICogcGdkX2luZGV4KCkgaXMgdXNlZCBnZXQgdGhlIG9mZnNldCBpbnRvIHRoZSBwZ2QgcGFnZSdzIGFycmF5IG9mIHBnZF90J3M7Ci0gKi8KLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykgKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQotCi0vKgotICogYSBzaG9ydGN1dCB3aGljaCBpbXBsaWVzIHRoZSB1c2Ugb2YgdGhlIGtlcm5lbCdzIHBnZCwgaW5zdGVhZAotICogb2YgYSBwcm9jZXNzJ3MKLSAqLwotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgcGdkX29mZnNldCgmaW5pdF9tbSwgKGFkZHJlc3MpKQogCiBzdGF0aWMgaW5saW5lIGludCBwdWRfbGFyZ2UocHVkX3QgcHVkKSB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvcGd0YWJsZV82NC5oCmluZGV4IDFjYzUwZDIuLmZhNzIwOGIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wZ3RhYmxlXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3BndGFibGVfNjQuaApAQCAtNzAsNiArNzAsOSBAQAogCiBzdHJ1Y3QgbW1fc3RydWN0OwogCit2b2lkIHNldF9wdGVfdmFkZHJfcHVkKHB1ZF90ICpwdWRfcGFnZSwgdW5zaWduZWQgbG9uZyB2YWRkciwgcHRlX3QgbmV3X3B0ZSk7CisKKwogc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV9wdGVfY2xlYXIoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJCQkgICAgcHRlX3QgKnB0ZXApCiB7CkBAIC0xOTAsMTIgKzE5Myw5IEBACiAjZGVmaW5lIHBnZF9wYWdlX3ZhZGRyKHBnZCkJCQkJCQlcCiAJKCh1bnNpZ25lZCBsb25nKV9fdmEoKHVuc2lnbmVkIGxvbmcpcGdkX3ZhbCgocGdkKSkgJiBQVEVfTUFTSykpCiAjZGVmaW5lIHBnZF9wYWdlKHBnZCkJCShwZm5fdG9fcGFnZShwZ2RfdmFsKChwZ2QpKSA+PiBQQUdFX1NISUZUKSkKLSNkZWZpbmUgcGdkX2luZGV4KGFkZHJlc3MpICgoKGFkZHJlc3MpID4+IFBHRElSX1NISUZUKSAmIChQVFJTX1BFUl9QR0QgLSAxKSkKLSNkZWZpbmUgcGdkX29mZnNldChtbSwgYWRkcmVzcykJKChtbSktPnBnZCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQotI2RlZmluZSBwZ2Rfb2Zmc2V0X2soYWRkcmVzcykgKGluaXRfbGV2ZWw0X3BndCArIHBnZF9pbmRleCgoYWRkcmVzcykpKQogI2RlZmluZSBwZ2RfcHJlc2VudChwZ2QpIChwZ2RfdmFsKHBnZCkgJiBfUEFHRV9QUkVTRU5UKQogc3RhdGljIGlubGluZSBpbnQgcGdkX2xhcmdlKHBnZF90IHBnZCkgeyByZXR1cm4gMDsgfQotI2RlZmluZSBta19rZXJuZWxfcGdkKGFkZHJlc3MpICgocGdkX3QpeyAoYWRkcmVzcykgfCBfS0VSTlBHX1RBQkxFIH0pCisjZGVmaW5lIG1rX2tlcm5lbF9wZ2QoYWRkcmVzcykgX19wZ2QoKGFkZHJlc3MpIHwgX0tFUk5QR19UQUJMRSkKIAogLyogUFVEIC0gTGV2ZWwzIGFjY2VzcyAqLwogLyogdG8gZmluZCBhbiBlbnRyeSBpbiBhIHBhZ2UtdGFibGUtZGlyZWN0b3J5LiAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci1mbGFncy5oIGIvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci1mbGFncy5oCmluZGV4IDE5OWNhYjEuLjA5MmIzOWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3ItZmxhZ3MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLWZsYWdzLmgKQEAgLTg4LDQgKzg4LDEwIEBACiAjZGVmaW5lIENYODZfQVJSX0JBU0UJMHhjNAogI2RlZmluZSBDWDg2X1JDUl9CQVNFCTB4ZGMKIAorI2lmZGVmIENPTkZJR19WTTg2CisjZGVmaW5lIFg4Nl9WTV9NQVNLCVg4Nl9FRkxBR1NfVk0KKyNlbHNlCisjZGVmaW5lIFg4Nl9WTV9NQVNLCTAgLyogTm8gVk04NiBzdXBwb3J0ICovCisjZW5kaWYKKwogI2VuZGlmCS8qIF9fQVNNX0kzODZfUFJPQ0VTU09SX0ZMQUdTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaAppbmRleCA1NTkxMDUyLi43ZjczODI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oCkBAIC0xNTMsNyArMTUzLDcgQEAKIAogZXh0ZXJuIHZvaWQgY3B1X2RldGVjdChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpOwogCi1leHRlcm4gdm9pZCBpZGVudGlmeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICopOworZXh0ZXJuIHZvaWQgZWFybHlfY3B1X2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBpZGVudGlmeV9ib290X2NwdSh2b2lkKTsKIGV4dGVybiB2b2lkIGlkZW50aWZ5X3NlY29uZGFyeV9jcHUoc3RydWN0IGNwdWluZm9feDg2ICopOwogZXh0ZXJuIHZvaWQgcHJpbnRfY3B1X2luZm8oc3RydWN0IGNwdWluZm9feDg2ICopOwpAQCAtMjYzLDE1ICsyNjMsMTEgQEAKIAlzdHJ1Y3QgdGhyZWFkX3N0cnVjdAkqaW9fYml0bWFwX293bmVyOwogCiAJLyoKLQkgKiBQYWQgdGhlIFRTUyB0byBiZSBjYWNoZWxpbmUtYWxpZ25lZCAoc2l6ZSBpcyAweDEwMCk6Ci0JICovCi0JdW5zaWduZWQgbG9uZwkJX19jYWNoZWxpbmVfZmlsbGVyWzM1XTsKLQkvKgogCSAqIC4uIGFuZCB0aGVuIGFub3RoZXIgMHgxMDAgYnl0ZXMgZm9yIHRoZSBlbWVyZ2VuY3kga2VybmVsIHN0YWNrOgogCSAqLwogCXVuc2lnbmVkIGxvbmcJCXN0YWNrWzY0XTsKIAotfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKK30gX19fX2NhY2hlbGluZV9hbGlnbmVkOwogCiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHRzc19zdHJ1Y3QsIGluaXRfdHNzKTsKIApAQCAtNTM1LDcgKzUzMSw2IEBACiB9CiAKICNkZWZpbmUgc2V0X2lvcGxfbWFzayBuYXRpdmVfc2V0X2lvcGxfbWFzawotI2RlZmluZSBTV0FQR1MJc3dhcGdzCiAjZW5kaWYgLyogQ09ORklHX1BBUkFWSVJUICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcHJvdG8uaCBiL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCmluZGV4IDZjOGI0MWIuLjNkZDQ1OGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wcm90by5oCkBAIC0xNCw4ICsxNCw2IEBACiBleHRlcm4gdm9pZCBpYTMyX2NzdGFyX3RhcmdldCh2b2lkKTsKIGV4dGVybiB2b2lkIGlhMzJfc3lzZW50ZXJfdGFyZ2V0KHZvaWQpOwogCi1leHRlcm4gdm9pZCByZXNlcnZlX2Jvb3RtZW1fZ2VuZXJpYyh1bnNpZ25lZCBsb25nIHBoeXMsIHVuc2lnbmVkIGxlbik7Ci0KIGV4dGVybiB2b2lkIHN5c2NhbGwzMl9jcHVfaW5pdCh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgY2hlY2tfZWZlcih2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9wdHJhY2UuaAppbmRleCA5ZjkyMmIwLi44YTcxZGI4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcHRyYWNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3B0cmFjZS5oCkBAIC0zLDcgKzMsMTIgQEAKIAogI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CS8qIEZvciBfX3VzZXIgKi8KICNpbmNsdWRlIDxhc20vcHRyYWNlLWFiaS5oPgorI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KIAorI2lmZGVmIF9fS0VSTkVMX18KKyNpbmNsdWRlIDxhc20vZHMuaD4JCS8qIHRoZSBEUyBCVFMgc3RydWN0IGlzIHVzZWQgZm9yIHB0cmFjZSB0b28gKi8KKyNpbmNsdWRlIDxhc20vc2VnbWVudC5oPgorI2VuZGlmCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiAKQEAgLTU1LDkgKzYwLDYgQEAKIAl1bnNpZ25lZCBsb25nIHNzOwogfTsKIAotI2luY2x1ZGUgPGFzbS92bTg2Lmg+Ci0jaW5jbHVkZSA8YXNtL3NlZ21lbnQuaD4KLQogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIAogI2Vsc2UgLyogX19pMzg2X18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9wdmNsb2NrLWFiaS5oIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2stYWJpLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjg1N2Y4NAotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9wdmNsb2NrLWFiaS5oCkBAIC0wLDAgKzEsNDIgQEAKKyNpZm5kZWYgX0FTTV9YODZfUFZDTE9DS19BQklfSF8KKyNkZWZpbmUgX0FTTV9YODZfUFZDTE9DS19BQklfSF8KKyNpZm5kZWYgX19BU1NFTUJMWV9fCisKKy8qCisgKiBUaGVzZSBzdHJ1Y3RzIE1VU1QgTk9UIGJlIGNoYW5nZWQuCisgKiBUaGV5IGFyZSB0aGUgQUJJIGJldHdlZW4gaHlwZXJ2aXNvciBhbmQgZ3Vlc3QgT1MuCisgKiBCb3RoIFhlbiBhbmQgS1ZNIGFyZSB1c2luZyB0aGlzLgorICoKKyAqIHB2Y2xvY2tfdmNwdV90aW1lX2luZm8gaG9sZHMgdGhlIHN5c3RlbSB0aW1lIGFuZCB0aGUgdHNjIHRpbWVzdGFtcAorICogb2YgdGhlIGxhc3QgdXBkYXRlLiBTbyB0aGUgZ3Vlc3QgY2FuIHVzZSB0aGUgdHNjIGRlbHRhIHRvIGdldCBhCisgKiBtb3JlIHByZWNpc2Ugc3lzdGVtIHRpbWUuICBUaGVyZSBpcyBvbmUgcGVyIHZpcnR1YWwgY3B1LgorICoKKyAqIHB2Y2xvY2tfd2FsbF9jbG9jayByZWZlcmVuY2VzIHRoZSBwb2ludCBpbiB0aW1lIHdoZW4gdGhlIHN5c3RlbQorICogdGltZSB3YXMgemVybyAodXN1YWxseSBib290IHRpbWUpLCB0aHVzIHRoZSBndWVzdCBjYWxjdWxhdGVzIHRoZQorICogY3VycmVudCB3YWxsIGNsb2NrIGJ5IGFkZGluZyB0aGUgc3lzdGVtIHRpbWUuCisgKgorICogUHJvdG9jb2wgZm9yIHRoZSAidmVyc2lvbiIgZmllbGRzIGlzOiBoeXBlcnZpc29yIHJhaXNlcyBpdCAobWFraW5nCisgKiBpdCB1bmV2ZW4pIGJlZm9yZSBpdCBzdGFydHMgdXBkYXRpbmcgdGhlIGZpZWxkcyBhbmQgcmFpc2VzIGl0IGFnYWluCisgKiAobWFraW5nIGl0IGV2ZW4pIHdoZW4gaXQgaXMgZG9uZS4gIFRodXMgdGhlIGd1ZXN0IGNhbiBtYWtlIHN1cmUgdGhlCisgKiB0aW1lIHZhbHVlcyBpdCBnb3QgYXJlIGNvbnNpc3RlbnQgYnkgY2hlY2tpbmcgdGhlIHZlcnNpb24gYmVmb3JlCisgKiBhbmQgYWZ0ZXIgcmVhZGluZyB0aGVtLgorICovCisKK3N0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvIHsKKwl1MzIgICB2ZXJzaW9uOworCXUzMiAgIHBhZDA7CisJdTY0ICAgdHNjX3RpbWVzdGFtcDsKKwl1NjQgICBzeXN0ZW1fdGltZTsKKwl1MzIgICB0c2NfdG9fc3lzdGVtX211bDsKKwlzOCAgICB0c2Nfc2hpZnQ7CisJdTggICAgcGFkWzNdOworfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSk7IC8qIDMyIGJ5dGVzICovCisKK3N0cnVjdCBwdmNsb2NrX3dhbGxfY2xvY2sgeworCXUzMiAgIHZlcnNpb247CisJdTMyICAgc2VjOworCXUzMiAgIG5zZWM7Cit9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKTsKKworI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAqLworI2VuZGlmIC8qIF9BU01fWDg2X1BWQ0xPQ0tfQUJJX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcHZjbG9jay5oIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxYmJhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L3B2Y2xvY2suaApAQCAtMCwwICsxLDEzIEBACisjaWZuZGVmIF9BU01fWDg2X1BWQ0xPQ0tfSF8KKyNkZWZpbmUgX0FTTV9YODZfUFZDTE9DS19IXworCisjaW5jbHVkZSA8bGludXgvY2xvY2tzb3VyY2UuaD4KKyNpbmNsdWRlIDxhc20vcHZjbG9jay1hYmkuaD4KKworLyogc29tZSBoZWxwZXIgZnVuY3Rpb25zIGZvciB4ZW4gYW5kIGt2bSBwdiBjbG9jayBzb3VyY2VzICovCitjeWNsZV90IHB2Y2xvY2tfY2xvY2tzb3VyY2VfcmVhZChzdHJ1Y3QgcHZjbG9ja192Y3B1X3RpbWVfaW5mbyAqc3JjKTsKK3ZvaWQgcHZjbG9ja19yZWFkX3dhbGxjbG9jayhzdHJ1Y3QgcHZjbG9ja193YWxsX2Nsb2NrICp3YWxsLAorCQkJICAgIHN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvICp2Y3B1LAorCQkJICAgIHN0cnVjdCB0aW1lc3BlYyAqdHMpOworCisjZW5kaWYgLyogX0FTTV9YODZfUFZDTE9DS19IXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oIGIvaW5jbHVkZS9hc20teDg2L3JlYm9vdC5oCmluZGV4IGU2Mzc0MWYuLjIwNmYzNTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZWJvb3QuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvcmVib290LmgKQEAgLTE0LDggKzE0LDggQEAKIAogZXh0ZXJuIHN0cnVjdCBtYWNoaW5lX29wcyBtYWNoaW5lX29wczsKIAotdm9pZCBtYWNoaW5lX3JlYWxfcmVzdGFydCh1bnNpZ25lZCBjaGFyICpjb2RlLCBpbnQgbGVuZ3RoKTsKIHZvaWQgbmF0aXZlX21hY2hpbmVfY3Jhc2hfc2h1dGRvd24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwogdm9pZCBuYXRpdmVfbWFjaGluZV9zaHV0ZG93bih2b2lkKTsKK3ZvaWQgbWFjaGluZV9yZWFsX3Jlc3RhcnQoY29uc3QgdW5zaWduZWQgY2hhciAqY29kZSwgaW50IGxlbmd0aCk7CiAKICNlbmRpZgkvKiBfQVNNX1JFQk9PVF9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvcmVxdWlyZWQtZmVhdHVyZXMuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCmluZGV4IDc0MDBkM2EuLmFkZWM4ODcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9yZXF1aXJlZC1mZWF0dXJlcy5oCkBAIC0xOSw5ICsxOSwxMyBAQAogCiAjaWYgZGVmaW5lZChDT05GSUdfWDg2X1BBRSkgfHwgZGVmaW5lZChDT05GSUdfWDg2XzY0KQogIyBkZWZpbmUgTkVFRF9QQUUJKDE8PChYODZfRkVBVFVSRV9QQUUgJiAzMSkpCi0jIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKICNlbHNlCiAjIGRlZmluZSBORUVEX1BBRQkwCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19YODZfQ01QWENIRzY0CisjIGRlZmluZSBORUVEX0NYOAkoMTw8KFg4Nl9GRUFUVVJFX0NYOCAmIDMxKSkKKyNlbHNlCiAjIGRlZmluZSBORUVEX0NYOAkwCiAjZW5kaWYKIApAQCAtMzgsNyArNDIsNyBAQAogI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfWDg2XzY0Ci0jZGVmaW5lIE5FRURfUFNFCSgxPDwoWDg2X0ZFQVRVUkVfUFNFICYgMzEpKQorI2RlZmluZSBORUVEX1BTRQkwCiAjZGVmaW5lIE5FRURfTVNSCSgxPDwoWDg2X0ZFQVRVUkVfTVNSICYgMzEpKQogI2RlZmluZSBORUVEX1BHRQkoMTw8KFg4Nl9GRUFUVVJFX1BHRSAmIDMxKSkKICNkZWZpbmUgTkVFRF9GWFNSCSgxPDwoWDg2X0ZFQVRVUkVfRlhTUiAmIDMxKSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaCBiL2luY2x1ZGUvYXNtLXg4Ni9yZXN1bWUtdHJhY2UuaAppbmRleCAyNTU3NTE0Li44ZDlmMGI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvcmVzdW1lLXRyYWNlLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3Jlc3VtZS10cmFjZS5oCkBAIC02LDcgKzYsNyBAQAogI2RlZmluZSBUUkFDRV9SRVNVTUUodXNlcikJCQkJCVwKIGRvIHsJCQkJCQkJCVwKIAlpZiAocG1fdHJhY2VfZW5hYmxlZCkgewkJCQkJXAotCQl2b2lkICp0cmFjZWRhdGE7CQkJCVwKKwkJY29uc3Qgdm9pZCAqdHJhY2VkYXRhOwkJCQlcCiAJCWFzbSB2b2xhdGlsZShfQVNNX01PVl9VTCAiICQxZiwlMFxuIgkJXAogCQkJICAgICAiLnNlY3Rpb24gLnRyYWNlZGF0YSxcImFcIlxuIglcCiAJCQkgICAgICIxOlx0LndvcmQgJWMxXG5cdCIJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF8zMi5oCmluZGV4IDE4ZGExOWUuLjM2ZTcxYzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfMzIuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmggYi9pbmNsdWRlL2FzbS14ODYvc2VjY29tcF82NC5oCmluZGV4IDU1M2FmNjUuLjc2Y2ZlNjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWNjb21wXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlY2NvbXBfNjQuaApAQCAtMSw0ICsxLDUgQEAKICNpZm5kZWYgX0FTTV9TRUNDT01QX0gKKyNkZWZpbmUgX0FTTV9TRUNDT01QX0gKIAogI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmggYi9pbmNsdWRlL2FzbS14ODYvc2VnbWVudC5oCmluZGV4IGVkNTEzMWQuLmRmYzg2MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZWdtZW50LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NlZ21lbnQuaApAQCAtNjEsMTggKzYxLDE0IEBACiAjZGVmaW5lIEdEVF9FTlRSWV9UTFNfTUFYIAkoR0RUX0VOVFJZX1RMU19NSU4gKyBHRFRfRU5UUllfVExTX0VOVFJJRVMgLSAxKQogCiAjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MJMTQKLSNkZWZpbmUgX19VU0VSX0NTIChHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTICogOCArIDMpCiAKICNkZWZpbmUgR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUwkxNQotI2RlZmluZSBfX1VTRVJfRFMgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgKiA4ICsgMykKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0JBU0UJMTIKIAogI2RlZmluZSBHRFRfRU5UUllfS0VSTkVMX0NTCQkoR0RUX0VOVFJZX0tFUk5FTF9CQVNFICsgMCkKLSNkZWZpbmUgX19LRVJORUxfQ1MgKEdEVF9FTlRSWV9LRVJORUxfQ1MgKiA4KQogCiAjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyAxKQotI2RlZmluZSBfX0tFUk5FTF9EUyAoR0RUX0VOVFJZX0tFUk5FTF9EUyAqIDgpCiAKICNkZWZpbmUgR0RUX0VOVFJZX1RTUwkJCShHRFRfRU5UUllfS0VSTkVMX0JBU0UgKyA0KQogI2RlZmluZSBHRFRfRU5UUllfTERUCQkJKEdEVF9FTlRSWV9LRVJORUxfQkFTRSArIDUpCkBAIC0xMzksMTAgKzEzNSwxMSBAQAogI2Vsc2UKICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KIAotI2RlZmluZSBfX0tFUk5FTF9DUwkweDEwCi0jZGVmaW5lIF9fS0VSTkVMX0RTCTB4MTgKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTDMyX0NTIDEKKyNkZWZpbmUgR0RUX0VOVFJZX0tFUk5FTF9DUyAyCisjZGVmaW5lIEdEVF9FTlRSWV9LRVJORUxfRFMgMwogCi0jZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAweDA4CisjZGVmaW5lIF9fS0VSTkVMMzJfQ1MgICAoR0RUX0VOVFJZX0tFUk5FTDMyX0NTICogOCkKIAogLyoKICAqIHdlIGNhbm5vdCB1c2UgdGhlIHNhbWUgY29kZSBzZWdtZW50IGRlc2NyaXB0b3IgZm9yIHVzZXIgYW5kIGtlcm5lbApAQCAtMTUwLDEwICsxNDcsMTAgQEAKICAqIFRoZSBzZWdtZW50IG9mZnNldCBuZWVkcyB0byBjb250YWluIGEgUlBMLiBHcnIuIC1BSwogICogR0RUIGxheW91dCB0byBnZXQgNjRiaXQgc3lzY2FsbCByaWdodCAoc3lzcmV0IGhhcmRjb2RlcyBnZHQgb2Zmc2V0cykKICAqLwotCi0jZGVmaW5lIF9fVVNFUjMyX0NTICAgMHgyMyAgIC8qIDQqOCszICovCi0jZGVmaW5lIF9fVVNFUl9EUyAgICAgMHgyYiAgIC8qIDUqOCszICovCi0jZGVmaW5lIF9fVVNFUl9DUyAgICAgMHgzMyAgIC8qIDYqOCszICovCisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVIzMl9DUyA0CisjZGVmaW5lIEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfRFMgNQorI2RlZmluZSBHRFRfRU5UUllfREVGQVVMVF9VU0VSX0NTIDYKKyNkZWZpbmUgX19VU0VSMzJfQ1MgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUjMyX0NTICogOCArIDMpCiAjZGVmaW5lIF9fVVNFUjMyX0RTCV9fVVNFUl9EUwogCiAjZGVmaW5lIEdEVF9FTlRSWV9UU1MgOAkvKiBuZWVkcyB0d28gZW50cmllcyAqLwpAQCAtMTc1LDYgKzE3MiwxMCBAQAogCiAjZW5kaWYKIAorI2RlZmluZSBfX0tFUk5FTF9DUwkoR0RUX0VOVFJZX0tFUk5FTF9DUyAqIDgpCisjZGVmaW5lIF9fS0VSTkVMX0RTCShHRFRfRU5UUllfS0VSTkVMX0RTICogOCkKKyNkZWZpbmUgX19VU0VSX0RTICAgICAoR0RUX0VOVFJZX0RFRkFVTFRfVVNFUl9EUyogOCArIDMpCisjZGVmaW5lIF9fVVNFUl9DUyAgICAgKEdEVF9FTlRSWV9ERUZBVUxUX1VTRVJfQ1MqIDggKyAzKQogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKICNkZWZpbmUgZ2V0X2tlcm5lbF9ycGwoKSAgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc2V0dXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCmluZGV4IGZhNjc2M2EuLjkwYWIyMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCkBAIC04LDcgKzgsMjUgQEAKIC8qIEludGVycnVwdCBjb250cm9sIGZvciB2U01Qb3dlcmVkIHg4Nl82NCBzeXN0ZW1zICovCiB2b2lkIHZzbXBfaW5pdCh2b2lkKTsKIAotY2hhciAqbWFjaGluZV9zcGVjaWZpY19tZW1vcnlfc2V0dXAodm9pZCk7CisjaWZkZWYgQ09ORklHX1g4Nl9WSVNXUworZXh0ZXJuIHZvaWQgdmlzd3NfZWFybHlfZGV0ZWN0KHZvaWQpOworZXh0ZXJuIGludCBpc192aXN3c19ib3godm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIHZpc3dzX2Vhcmx5X2RldGVjdCh2b2lkKSB7IH0KK3N0YXRpYyBpbmxpbmUgaW50IGlzX3Zpc3dzX2JveCh2b2lkKSB7IHJldHVybiAwOyB9CisjZW5kaWYKKworLyoKKyAqIEFueSBzZXR1cCBxdWlya3MgdG8gYmUgcGVyZm9ybWVkPworICovCitleHRlcm4gaW50ICgqYXJjaF90aW1lX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfcHJlX2ludHJfaW5pdF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqYXJjaF9pbnRyX2luaXRfcXVpcmspKHZvaWQpOworZXh0ZXJuIGludCAoKmFyY2hfdHJhcF9pbml0X3F1aXJrKSh2b2lkKTsKK2V4dGVybiBjaGFyICogKCphcmNoX21lbW9yeV9zZXR1cF9xdWlyaykodm9pZCk7CitleHRlcm4gaW50ICgqbWFjaF9nZXRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IGVhcmx5KTsKK2V4dGVybiBpbnQgKCptYWNoX2ZpbmRfc21wX2NvbmZpZ19xdWlyaykodW5zaWduZWQgaW50IHJlc2VydmUpOworCiAjaWZuZGVmIENPTkZJR19QQVJBVklSVAogI2RlZmluZSBwYXJhdmlydF9wb3N0X2FsbG9jYXRvcl9pbml0KCkJZG8ge30gd2hpbGUgKDApCiAjZW5kaWYKQEAgLTQzLDI2ICs2MSwyMyBAQAogICovCiBleHRlcm4gc3RydWN0IGJvb3RfcGFyYW1zIGJvb3RfcGFyYW1zOwogCi0jaWZkZWYgX19pMzg2X18KIC8qCiAgKiBEbyBOT1QgRVZFUiBsb29rIGF0IHRoZSBCSU9TIG1lbW9yeSBzaXplIGxvY2F0aW9uLgogICogSXQgZG9lcyBub3Qgd29yayBvbiBtYW55IG1hY2hpbmVzLgogICovCiAjZGVmaW5lIExPV01FTVNJWkUoKQkoMHg5ZjAwMCkKIAotc3RydWN0IGU4MjBlbnRyeTsKKyNpZmRlZiBfX2kzODZfXwogCi1jaGFyICogX19pbml0IG1hY2hpbmVfc3BlY2lmaWNfbWVtb3J5X3NldHVwKHZvaWQpOwotY2hhciAqbWVtb3J5X3NldHVwKHZvaWQpOwordm9pZCBfX2luaXQgaTM4Nl9zdGFydF9rZXJuZWwodm9pZCk7CitleHRlcm4gdm9pZCBwcm9iZV9yb21zKHZvaWQpOwogCi1pbnQgX19pbml0IGNvcHlfZTgyMF9tYXAoc3RydWN0IGU4MjBlbnRyeSAqYmlvc21hcCwgaW50IG5yX21hcCk7Ci1pbnQgX19pbml0IHNhbml0aXplX2U4MjBfbWFwKHN0cnVjdCBlODIwZW50cnkgKmJpb3NtYXAsIGNoYXIgKnBucl9tYXApOwotdm9pZCBfX2luaXQgYWRkX21lbW9yeV9yZWdpb24odW5zaWduZWQgbG9uZyBsb25nIHN0YXJ0LAotCQkJICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIGludCB0eXBlKTsKLQorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW5pdF9wZ190YWJsZXNfc3RhcnQ7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBpbml0X3BnX3RhYmxlc19lbmQ7CiAKLQorI2Vsc2UKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqcmVhbF9tb2RlKTsKK3ZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9yZXNlcnZhdGlvbnMoY2hhciAqcmVhbF9tb2RlX2RhdGEpOwogCiAjZW5kaWYgLyogX19pMzg2X18gKi8KICNlbmRpZiAvKiBfU0VUVVAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zbXAuaAppbmRleCAxZWJhYTVjLi4yZTIyMWYxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc21wLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NtcC5oCkBAIC0yOSwyMSArMjksMTIgQEAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbnVtX3Byb2Nlc3NvcnM7CiBleHRlcm4gY3B1bWFza190IGNwdV9pbml0aWFsaXplZDsKIAotI2lmZGVmIENPTkZJR19TTVAKLWV4dGVybiB1MTYgeDg2X2NwdV90b19hcGljaWRfaW5pdFtdOwotZXh0ZXJuIHUxNiB4ODZfYmlvc19jcHVfYXBpY2lkX2luaXRbXTsKLWV4dGVybiB2b2lkICp4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHI7Ci1leHRlcm4gdm9pZCAqeDg2X2Jpb3NfY3B1X2FwaWNpZF9lYXJseV9wdHI7Ci0jZWxzZQotI2RlZmluZSB4ODZfY3B1X3RvX2FwaWNpZF9lYXJseV9wdHIgTlVMTAotI2RlZmluZSB4ODZfYmlvc19jcHVfYXBpY2lkX2Vhcmx5X3B0ciBOVUxMCi0jZW5kaWYKLQogREVDTEFSRV9QRVJfQ1BVKGNwdW1hc2tfdCwgY3B1X3NpYmxpbmdfbWFwKTsKIERFQ0xBUkVfUEVSX0NQVShjcHVtYXNrX3QsIGNwdV9jb3JlX21hcCk7CiBERUNMQVJFX1BFUl9DUFUodTE2LCBjcHVfbGxjX2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9jcHVfdG9fYXBpY2lkKTsKLURFQ0xBUkVfUEVSX0NQVSh1MTYsIHg4Nl9iaW9zX2NwdV9hcGljaWQpOworCitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfY3B1X3RvX2FwaWNpZCk7CitERUNMQVJFX0VBUkxZX1BFUl9DUFUodTE2LCB4ODZfYmlvc19jcHVfYXBpY2lkKTsKIAogLyogU3RhdGljIHN0YXRlIGluIGhlYWQuUyB1c2VkIHRvIHNldCB1cCBhIENQVSAqLwogZXh0ZXJuIHN0cnVjdCB7CkBAIC0xMTgsOCArMTA5LDYgQEAKIGV4dGVybiBpbnQgX19jcHVfZGlzYWJsZSh2b2lkKTsKIGV4dGVybiB2b2lkIF9fY3B1X2RpZSh1bnNpZ25lZCBpbnQgY3B1KTsKIAotZXh0ZXJuIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCk7Ci0KIHZvaWQgc21wX3N0b3JlX2NwdV9pbmZvKGludCBpZCk7CiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCXBlcl9jcHUoeDg2X2NwdV90b19hcGljaWQsIGNwdSkKIApAQCAtMTMwLDYgKzExOSwxNCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAorI2lmIGRlZmluZWQoQ09ORklHX1NNUCkgJiYgZGVmaW5lZChDT05GSUdfSE9UUExVR19DUFUpCitleHRlcm4gdm9pZCBwcmVmaWxsX3Bvc3NpYmxlX21hcCh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgcHJlZmlsbF9wb3NzaWJsZV9tYXAodm9pZCkKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gdW5zaWduZWQgZGlzYWJsZWRfY3B1cyBfX2NwdWluaXRkYXRhOwogCiAjaWZkZWYgQ09ORklHX1g4Nl8zMl9TTVAKQEAgLTE5NywxMSArMTk0LDkgQEAKICNlbmRpZiAvKiBDT05GSUdfWDg2X0xPQ0FMX0FQSUMgKi8KIAogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVQotZXh0ZXJuIHZvaWQgY3B1X2V4aXRfY2xlYXIodm9pZCk7CiBleHRlcm4gdm9pZCBjcHVfdW5pbml0KHZvaWQpOwogI2VuZGlmCiAKLWV4dGVybiB2b2lkIHNtcF9hbGxvY19tZW1vcnkodm9pZCk7CiBleHRlcm4gdm9pZCBsb2NrX2lwaV9jYWxsX2xvY2sodm9pZCk7CiBleHRlcm4gdm9pZCB1bmxvY2tfaXBpX2NhbGxfbG9jayh2b2lkKTsKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmggYi9pbmNsdWRlL2FzbS14ODYvc3JhdC5oCmluZGV4IGY0YmJhMTMuLjc3NGM5MTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zcmF0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3NyYXQuaApAQCAtMjcsMTEgKzI3LDEzIEBACiAjaWZuZGVmIF9BU01fU1JBVF9IXwogI2RlZmluZSBfQVNNX1NSQVRfSF8KIAotI2lmbmRlZiBDT05GSUdfQUNQSV9TUkFUCi0jZXJyb3IgQ09ORklHX0FDUElfU1JBVCBub3QgZGVmaW5lZCwgYW5kIHNyYXQuaCBoZWFkZXIgaGFzIGJlZW4gaW5jbHVkZWQKLSNlbmRpZgotCisjaWZkZWYgQ09ORklHX0FDUElfTlVNQQogZXh0ZXJuIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nICpnZXRfemhvbGVzX3NpemUoaW50KTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIGludCBnZXRfbWVtY2ZnX2Zyb21fc3JhdCh2b2lkKQoreworCXJldHVybiAwOworfQorI2VuZGlmCiAKICNlbmRpZiAvKiBfQVNNX1NSQVRfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni9zdHJpbmdfMzIuaAppbmRleCBiNDkzNjlhLi4xOTM1NzhjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3RyaW5nXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3N0cmluZ18zMi5oCkBAIC0yOSw4MSArMjksMTE2IEBACiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTgogZXh0ZXJuIHNpemVfdCBzdHJsZW4oY29uc3QgY2hhciAqcyk7CiAKLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IG4pCiB7Ci1pbnQgZDAsIGQxLCBkMjsKLV9fYXNtX18gX192b2xhdGlsZV9fKAotCSJyZXAgOyBtb3ZzbFxuXHQiCi0JIm1vdmwgJTQsJSVlY3hcblx0IgotCSJhbmRsICQzLCUlZWN4XG5cdCIKLQkianogMWZcblx0IgotCSJyZXAgOyBtb3ZzYlxuXHQiCi0JIjE6IgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKSwgIj0mUyIgKGQyKQotCTogIjAiIChuLzQpLCAiZyIgKG4pLCAiMSIgKChsb25nKSB0byksICIyIiAoKGxvbmcpIGZyb20pCi0JOiAibWVtb3J5Iik7Ci1yZXR1cm4gKHRvKTsKKwlpbnQgZDAsIGQxLCBkMjsKKwlhc20gdm9sYXRpbGUoInJlcCA7IG1vdnNsXG5cdCIKKwkJICAgICAibW92bCAlNCwlJWVjeFxuXHQiCisJCSAgICAgImFuZGwgJDMsJSVlY3hcblx0IgorCQkgICAgICJqeiAxZlxuXHQiCisJCSAgICAgInJlcCA7IG1vdnNiXG5cdCIKKwkJICAgICAiMToiCisJCSAgICAgOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpLCAiPSZTIiAoZDIpCisJCSAgICAgOiAiMCIgKG4gLyA0KSwgImciIChuKSwgIjEiICgobG9uZyl0byksICIyIiAoKGxvbmcpZnJvbSkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gdG87CiB9CiAKIC8qCiAgKiBUaGlzIGxvb2tzIHVnbHksIGJ1dCB0aGUgY29tcGlsZXIgY2FuIG9wdGltaXplIGl0IHRvdGFsbHksCiAgKiBhcyB0aGUgY291bnQgaXMgY29uc3RhbnQuCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfbWVtY3B5KHZvaWQgKiB0bywgY29uc3Qgdm9pZCAqIGZyb20sIHNpemVfdCBuKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweSh2b2lkICp0bywgY29uc3Qgdm9pZCAqZnJvbSwKKwkJCQkJICAgICAgIHNpemVfdCBuKQogewogCWxvbmcgZXNpLCBlZGk7Ci0JaWYgKCFuKSByZXR1cm4gdG87Ci0jaWYgMQkvKiB3YW50IHRvIGRvIHNtYWxsIGNvcGllcyB3aXRoIG5vbi1zdHJpbmcgb3BzPyAqLworCWlmICghbikKKwkJcmV0dXJuIHRvOworCiAJc3dpdGNoIChuKSB7Ci0JCWNhc2UgMTogKihjaGFyKil0byA9ICooY2hhciopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDI6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsgcmV0dXJuIHRvOwotCQljYXNlIDQ6ICooaW50Kil0byA9ICooaW50Kilmcm9tOyByZXR1cm4gdG87Ci0jaWYgMQkvKiBpbmNsdWRpbmcgdGhvc2UgZG9hYmxlIHdpdGggdHdvIG1vdmVzPyAqLwotCQljYXNlIDM6ICooc2hvcnQqKXRvID0gKihzaG9ydCopZnJvbTsKLQkJCSooKGNoYXIqKXRvKzIpID0gKigoY2hhciopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDU6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoY2hhciopdG8rNCkgPSAqKChjaGFyKilmcm9tKzQpOyByZXR1cm4gdG87Ci0JCWNhc2UgNjogKihpbnQqKXRvID0gKihpbnQqKWZyb207Ci0JCQkqKChzaG9ydCopdG8rMikgPSAqKChzaG9ydCopZnJvbSsyKTsgcmV0dXJuIHRvOwotCQljYXNlIDg6ICooaW50Kil0byA9ICooaW50Kilmcm9tOwotCQkJKigoaW50Kil0bysxKSA9ICooKGludCopZnJvbSsxKTsgcmV0dXJuIHRvOwotI2VuZGlmCisJY2FzZSAxOgorCQkqKGNoYXIgKil0byA9ICooY2hhciAqKWZyb207CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQlyZXR1cm4gdG87CisJY2FzZSA0OgorCQkqKGludCAqKXRvID0gKihpbnQgKilmcm9tOworCQlyZXR1cm4gdG87CisKKwljYXNlIDM6CisJCSooc2hvcnQgKil0byA9ICooc2hvcnQgKilmcm9tOworCQkqKChjaGFyICopdG8gKyAyKSA9ICooKGNoYXIgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDU6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGNoYXIgKil0byArIDQpID0gKigoY2hhciAqKWZyb20gKyA0KTsKKwkJcmV0dXJuIHRvOworCWNhc2UgNjoKKwkJKihpbnQgKil0byA9ICooaW50ICopZnJvbTsKKwkJKigoc2hvcnQgKil0byArIDIpID0gKigoc2hvcnQgKilmcm9tICsgMik7CisJCXJldHVybiB0bzsKKwljYXNlIDg6CisJCSooaW50ICopdG8gPSAqKGludCAqKWZyb207CisJCSooKGludCAqKXRvICsgMSkgPSAqKChpbnQgKilmcm9tICsgMSk7CisJCXJldHVybiB0bzsKIAl9Ci0jZW5kaWYKLQllc2kgPSAobG9uZykgZnJvbTsKLQllZGkgPSAobG9uZykgdG87Ci0JaWYgKG4gPj0gNSo0KSB7CisKKwllc2kgPSAobG9uZylmcm9tOworCWVkaSA9IChsb25nKXRvOworCWlmIChuID49IDUgKiA0KSB7CiAJCS8qIGxhcmdlIGJsb2NrOiB1c2UgcmVwIHByZWZpeCAqLwogCQlpbnQgZWN4OwotCQlfX2FzbV9fIF9fdm9sYXRpbGVfXygKLQkJCSJyZXAgOyBtb3ZzbCIKLQkJCTogIj0mYyIgKGVjeCksICI9JkQiIChlZGkpLCAiPSZTIiAoZXNpKQotCQkJOiAiMCIgKG4vNCksICIxIiAoZWRpKSwiMiIgKGVzaSkKLQkJCTogIm1lbW9yeSIKKwkJYXNtIHZvbGF0aWxlKCJyZXAgOyBtb3ZzbCIKKwkJCSAgICAgOiAiPSZjIiAoZWN4KSwgIj0mRCIgKGVkaSksICI9JlMiIChlc2kpCisJCQkgICAgIDogIjAiIChuIC8gNCksICIxIiAoZWRpKSwgIjIiIChlc2kpCisJCQkgICAgIDogIm1lbW9yeSIKIAkJKTsKIAl9IGVsc2UgewogCQkvKiBzbWFsbCBibG9jazogZG9uJ3QgY2xvYmJlciBlY3ggKyBzbWFsbGVyIGNvZGUgKi8KLQkJaWYgKG4gPj0gNCo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMyo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMio0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJaWYgKG4gPj0gMSo0KSBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2wiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gNCAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CisJCWlmIChuID49IDMgKiA0KQorCQkJYXNtIHZvbGF0aWxlKCJtb3ZzbCIKKwkJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCQkgICAgIDogIm1lbW9yeSIpOworCQlpZiAobiA+PSAyICogNCkKKwkJCWFzbSB2b2xhdGlsZSgibW92c2wiCisJCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCQkgICAgIDogIjAiKGVkaSksICIxIihlc2kpCisJCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJaWYgKG4gPj0gMSAqIDQpCisJCQlhc20gdm9sYXRpbGUoIm1vdnNsIgorCQkJCSAgICAgOiAiPSZEIihlZGkpLCAiPSZTIihlc2kpCisJCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJCSAgICAgOiAibWVtb3J5Iik7CiAJfQogCXN3aXRjaCAobiAlIDQpIHsKIAkJLyogdGFpbCAqLwotCQljYXNlIDA6IHJldHVybiB0bzsKLQkJY2FzZSAxOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c2IiCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXygibW92c3ciCi0JCQk6Ij0mRCIoZWRpKSwiPSZTIihlc2kpOiIwIihlZGkpLCIxIihlc2kpOiJtZW1vcnkiKTsKLQkJCXJldHVybiB0bzsKLQkJZGVmYXVsdDogX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdnN3XG5cdG1vdnNiIgotCQkJOiI9JkQiKGVkaSksIj0mUyIoZXNpKToiMCIoZWRpKSwiMSIoZXNpKToibWVtb3J5Iik7Ci0JCQlyZXR1cm4gdG87CisJY2FzZSAwOgorCQlyZXR1cm4gdG87CisJY2FzZSAxOgorCQlhc20gdm9sYXRpbGUoIm1vdnNiIgorCQkJICAgICA6ICI9JkQiKGVkaSksICI9JlMiKGVzaSkKKwkJCSAgICAgOiAiMCIoZWRpKSwgIjEiKGVzaSkKKwkJCSAgICAgOiAibWVtb3J5Iik7CisJCXJldHVybiB0bzsKKwljYXNlIDI6CisJCWFzbSB2b2xhdGlsZSgibW92c3ciCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOworCWRlZmF1bHQ6CisJCWFzbSB2b2xhdGlsZSgibW92c3dcblx0bW92c2IiCisJCQkgICAgIDogIj0mRCIoZWRpKSwgIj0mUyIoZXNpKQorCQkJICAgICA6ICIwIihlZGkpLCAiMSIoZXNpKQorCQkJICAgICA6ICJtZW1vcnkiKTsKKwkJcmV0dXJuIHRvOwogCX0KIH0KIApAQCAtMTE3LDg3ICsxNTIsODYgQEAKICAqCVRoaXMgQ1BVIGZhdm91cnMgM0ROb3cgc3Ryb25nbHkgKGVnIEFNRCBBdGhsb24pCiAgKi8KIAotc3RhdGljIGlubGluZSB2b2lkICogX19jb25zdGFudF9tZW1jcHkzZCh2b2lkICogdG8sIGNvbnN0IHZvaWQgKiBmcm9tLCBzaXplX3QgbGVuKQorc3RhdGljIGlubGluZSB2b2lkICpfX2NvbnN0YW50X21lbWNweTNkKHZvaWQgKnRvLCBjb25zdCB2b2lkICpmcm9tLCBzaXplX3QgbGVuKQogewogCWlmIChsZW4gPCA1MTIpCiAJCXJldHVybiBfX2NvbnN0YW50X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIAlyZXR1cm4gX21teF9tZW1jcHkodG8sIGZyb20sIGxlbik7CiB9CiAKLXN0YXRpYyBfX2lubGluZV9fIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtY3B5M2Qodm9pZCAqdG8sIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBsZW4pCiB7CiAJaWYgKGxlbiA8IDUxMikKIAkJcmV0dXJuIF9fbWVtY3B5KHRvLCBmcm9tLCBsZW4pOwogCXJldHVybiBfbW14X21lbWNweSh0bywgZnJvbSwgbGVuKTsKIH0KIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5M2QoKHQpLChmKSwobikpIDogXAotIF9fbWVtY3B5M2QoKHQpLChmKSwobikpKQorI2RlZmluZSBtZW1jcHkodCwgZiwgbikJCQkJXAorCShfX2J1aWx0aW5fY29uc3RhbnRfcCgobikpCQlcCisJID8gX19jb25zdGFudF9tZW1jcHkzZCgodCksIChmKSwgKG4pKQlcCisJIDogX19tZW1jcHkzZCgodCksIChmKSwgKG4pKSkKIAogI2Vsc2UKIAogLyoKICAqCU5vIDNEIE5vdyEKICAqLwotIAotI2RlZmluZSBtZW1jcHkodCwgZiwgbikgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKG4pID8gXAotIF9fY29uc3RhbnRfbWVtY3B5KCh0KSwoZiksKG4pKSA6IFwKLSBfX21lbWNweSgodCksKGYpLChuKSkpCisKKyNkZWZpbmUgbWVtY3B5KHQsIGYsIG4pCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoKG4pKQkJXAorCSA/IF9fY29uc3RhbnRfbWVtY3B5KCh0KSwgKGYpLCAobikpCVwKKwkgOiBfX21lbWNweSgodCksIChmKSwgKG4pKSkKIAogI2VuZGlmCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNTU9WRQotdm9pZCAqbWVtbW92ZSh2b2lkICogZGVzdCxjb25zdCB2b2lkICogc3JjLCBzaXplX3Qgbik7Cit2b2lkICptZW1tb3ZlKHZvaWQgKmRlc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IG4pOwogCiAjZGVmaW5lIG1lbWNtcCBfX2J1aWx0aW5fbWVtY21wCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNQ0hSCi1leHRlcm4gdm9pZCAqbWVtY2hyKGNvbnN0IHZvaWQgKiBjcyxpbnQgYyxzaXplX3QgY291bnQpOworZXh0ZXJuIHZvaWQgKm1lbWNocihjb25zdCB2b2lkICpjcywgaW50IGMsIHNpemVfdCBjb3VudCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCAqIF9fbWVtc2V0X2dlbmVyaWModm9pZCAqIHMsIGNoYXIgYyxzaXplX3QgY291bnQpCitzdGF0aWMgaW5saW5lIHZvaWQgKl9fbWVtc2V0X2dlbmVyaWModm9pZCAqcywgY2hhciBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcFxuXHQiCi0JInN0b3NiIgotCTogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCIxIiAocyksIjAiIChjb3VudCkKLQk6Im1lbW9yeSIpOwotcmV0dXJuIHM7CisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcFxuXHQiCisJCSAgICAgInN0b3NiIgorCQkgICAgIDogIj0mYyIgKGQwKSwgIj0mRCIgKGQxKQorCQkgICAgIDogImEiIChjKSwgIjEiIChzKSwgIjAiIChjb3VudCkKKwkJICAgICA6ICJtZW1vcnkiKTsKKwlyZXR1cm4gczsKIH0KIAogLyogd2UgbWlnaHQgd2FudCB0byB3cml0ZSBvcHRpbWl6ZWQgdmVyc2lvbnMgb2YgdGhlc2UgbGF0ZXIgKi8KLSNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocyxjLGNvdW50KSBfX21lbXNldF9nZW5lcmljKChzKSwoYyksKGNvdW50KSkKKyNkZWZpbmUgX19jb25zdGFudF9jb3VudF9tZW1zZXQocywgYywgY291bnQpIF9fbWVtc2V0X2dlbmVyaWMoKHMpLCAoYyksIChjb3VudCkpCiAKIC8qCi0gKiBtZW1zZXQoeCwwLHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAorICogbWVtc2V0KHgsIDAsIHkpIGlzIGEgcmVhc29uYWJseSBjb21tb24gdGhpbmcgdG8gZG8sIHNvIHdlIHdhbnQgdG8gZmlsbAogICogdGhpbmdzIDMyIGJpdHMgYXQgYSB0aW1lIGV2ZW4gd2hlbiB3ZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIHRoZQogICogYXJlYSBhdCBjb21waWxlLXRpbWUuLgogICovCi1zdGF0aWMgX19hbHdheXNfaW5saW5lIHZvaWQgKiBfX2NvbnN0YW50X2NfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIGMsIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19tZW1zZXQodm9pZCAqcywgdW5zaWduZWQgbG9uZyBjLCBzaXplX3QgY291bnQpCiB7Ci1pbnQgZDAsIGQxOwotX19hc21fXyBfX3ZvbGF0aWxlX18oCi0JInJlcCA7IHN0b3NsXG5cdCIKLQkidGVzdGIgJDIsJWIzXG5cdCIKLQkiamUgMWZcblx0IgotCSJzdG9zd1xuIgotCSIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKLQkiamUgMmZcblx0IgotCSJzdG9zYlxuIgotCSIyOiIKLQk6Ij0mYyIgKGQwKSwgIj0mRCIgKGQxKQotCToiYSIgKGMpLCAicSIgKGNvdW50KSwgIjAiIChjb3VudC80KSwgIjEiICgobG9uZykgcykKLQk6Im1lbW9yeSIpOwotcmV0dXJuIChzKTsJCisJaW50IGQwLCBkMTsKKwlhc20gdm9sYXRpbGUoInJlcCA7IHN0b3NsXG5cdCIKKwkJICAgICAidGVzdGIgJDIsJWIzXG5cdCIKKwkJICAgICAiamUgMWZcblx0IgorCQkgICAgICJzdG9zd1xuIgorCQkgICAgICIxOlx0dGVzdGIgJDEsJWIzXG5cdCIKKwkJICAgICAiamUgMmZcblx0IgorCQkgICAgICJzdG9zYlxuIgorCQkgICAgICIyOiIKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkKKwkJICAgICA6ICJhIiAoYyksICJxIiAoY291bnQpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCisJCSAgICAgOiAibWVtb3J5Iik7CisJcmV0dXJuIHM7CiB9CiAKIC8qIEFkZGVkIGJ5IEdlcnRqYW4gdmFuIFdpbmdlcmRlIHRvIG1ha2UgbWluaXggYW5kIHN5c3YgbW9kdWxlIHdvcmsgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfU1RSTkxFTgotZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKiBzLCBzaXplX3QgY291bnQpOworZXh0ZXJuIHNpemVfdCBzdHJubGVuKGNvbnN0IGNoYXIgKnMsIHNpemVfdCBjb3VudCk7CiAvKiBlbmQgb2YgYWRkaXRpb25hbCBzdHVmZiAqLwogCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1NUUlNUUgpAQCAtMjA3LDY2ICsyNDEsODUgQEAKICAqIFRoaXMgbG9va3MgaG9ycmlibHkgdWdseSwgYnV0IHRoZSBjb21waWxlciBjYW4gb3B0aW1pemUgaXQgdG90YWxseSwKICAqIGFzIHdlIGJ5IG5vdyBrbm93IHRoYXQgYm90aCBwYXR0ZXJuIGFuZCBjb3VudCBpcyBjb25zdGFudC4uCiAgKi8KLXN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKiBzLCB1bnNpZ25lZCBsb25nIHBhdHRlcm4sIHNpemVfdCBjb3VudCkKK3N0YXRpYyBfX2Fsd2F5c19pbmxpbmUKK3ZvaWQgKl9fY29uc3RhbnRfY19hbmRfY291bnRfbWVtc2V0KHZvaWQgKnMsIHVuc2lnbmVkIGxvbmcgcGF0dGVybiwKKwkJCQkgICAgc2l6ZV90IGNvdW50KQogewogCXN3aXRjaCAoY291bnQpIHsKKwljYXNlIDA6CisJCXJldHVybiBzOworCWNhc2UgMToKKwkJKih1bnNpZ25lZCBjaGFyICopcyA9IHBhdHRlcm4gJiAweGZmOworCQlyZXR1cm4gczsKKwljYXNlIDI6CisJCSoodW5zaWduZWQgc2hvcnQgKilzID0gcGF0dGVybiAmIDB4ZmZmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSAzOgorCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7CisJCSooKHVuc2lnbmVkIGNoYXIgKilzICsgMikgPSBwYXR0ZXJuICYgMHhmZjsKKwkJcmV0dXJuIHM7CisJY2FzZSA0OgorCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKKwkJcmV0dXJuIHM7CisJfQorCisjZGVmaW5lIENPTU1PTih4KQkJCQkJCQlcCisJYXNtIHZvbGF0aWxlKCJyZXAgOyBzdG9zbCIJCQkJCVwKKwkJICAgICB4CQkJCQkJCVwKKwkJICAgICA6ICI9JmMiIChkMCksICI9JkQiIChkMSkJCQkJXAorCQkgICAgIDogImEiIChlYXgpLCAiMCIgKGNvdW50LzQpLCAiMSIgKChsb25nKXMpCVwKKwkJICAgICA6ICJtZW1vcnkiKQorCisJeworCQlpbnQgZDAsIGQxOworI2lmIF9fR05VQ19fID09IDQgJiYgX19HTlVDX01JTk9SX18gPT0gMAorCQkvKiBXb3JrYXJvdW5kIGZvciBicm9rZW4gZ2NjIDQuMCAqLworCQlyZWdpc3RlciB1bnNpZ25lZCBsb25nIGVheCBhc20oIiVlYXgiKSA9IHBhdHRlcm47CisjZWxzZQorCQl1bnNpZ25lZCBsb25nIGVheCA9IHBhdHRlcm47CisjZW5kaWYKKworCQlzd2l0Y2ggKGNvdW50ICUgNCkgewogCQljYXNlIDA6CisJCQlDT01NT04oIiIpOwogCQkJcmV0dXJuIHM7CiAJCWNhc2UgMToKLQkJCSoodW5zaWduZWQgY2hhciAqKXMgPSBwYXR0ZXJuICYgMHhmZjsKKwkJCUNPTU1PTigiXG5cdHN0b3NiIik7CiAJCQlyZXR1cm4gczsKIAkJY2FzZSAyOgotCQkJKih1bnNpZ25lZCBzaG9ydCAqKXMgPSBwYXR0ZXJuICYgMHhmZmZmOworCQkJQ09NTU9OKCJcblx0c3Rvc3ciKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDM6Ci0JCQkqKHVuc2lnbmVkIHNob3J0ICopcyA9IHBhdHRlcm4gJiAweGZmZmY7Ci0JCQkqKDIrKHVuc2lnbmVkIGNoYXIgKilzKSA9IHBhdHRlcm4gJiAweGZmOworCQlkZWZhdWx0OgorCQkJQ09NTU9OKCJcblx0c3Rvc3dcblx0c3Rvc2IiKTsKIAkJCXJldHVybiBzOwotCQljYXNlIDQ6Ci0JCQkqKHVuc2lnbmVkIGxvbmcgKilzID0gcGF0dGVybjsKLQkJCXJldHVybiBzOworCQl9CiAJfQotI2RlZmluZSBDT01NT04oeCkgXAotX19hc21fXyAgX192b2xhdGlsZV9fKCBcCi0JInJlcCA7IHN0b3NsIiBcCi0JeCBcCi0JOiAiPSZjIiAoZDApLCAiPSZEIiAoZDEpIFwKLQk6ICJhIiAocGF0dGVybiksIjAiIChjb3VudC80KSwiMSIgKChsb25nKSBzKSBcCi0JOiAibWVtb3J5IikKLXsKLQlpbnQgZDAsIGQxOwotCXN3aXRjaCAoY291bnQgJSA0KSB7Ci0JCWNhc2UgMDogQ09NTU9OKCIiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMTogQ09NTU9OKCJcblx0c3Rvc2IiKTsgcmV0dXJuIHM7Ci0JCWNhc2UgMjogQ09NTU9OKCJcblx0c3Rvc3ciKTsgcmV0dXJuIHM7Ci0JCWRlZmF1bHQ6IENPTU1PTigiXG5cdHN0b3N3XG5cdHN0b3NiIik7IHJldHVybiBzOwotCX0KLX0KLSAgCisKICN1bmRlZiBDT01NT04KIH0KIAotI2RlZmluZSBfX2NvbnN0YW50X2NfeF9tZW1zZXQocywgYywgY291bnQpIFwKLShfX2J1aWx0aW5fY29uc3RhbnRfcChjb3VudCkgPyBcCi0gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLChjKSwoY291bnQpKSA6IFwKLSBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIF9fY29uc3RhbnRfY194X21lbXNldChzLCBjLCBjb3VudCkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KQkJCQlcCisJID8gX19jb25zdGFudF9jX2FuZF9jb3VudF9tZW1zZXQoKHMpLCAoYyksIChjb3VudCkpCVwKKwkgOiBfX2NvbnN0YW50X2NfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAotI2RlZmluZSBfX21lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGNvdW50KSA/IFwKLSBfX2NvbnN0YW50X2NvdW50X21lbXNldCgocyksKGMpLChjb3VudCkpIDogXAotIF9fbWVtc2V0X2dlbmVyaWMoKHMpLChjKSwoY291bnQpKSkKKyNkZWZpbmUgX19tZW1zZXQocywgYywgY291bnQpCQkJCVwKKwkoX19idWlsdGluX2NvbnN0YW50X3AoY291bnQpCQkJXAorCSA/IF9fY29uc3RhbnRfY291bnRfbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKQlcCisJIDogX19tZW1zZXRfZ2VuZXJpYygocyksIChjKSwgKGNvdW50KSkpCiAKICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUCi0jZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkgXAotKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpID8gXAotIF9fY29uc3RhbnRfY194X21lbXNldCgocyksKDB4MDEwMTAxMDFVTCoodW5zaWduZWQgY2hhcikoYykpLChjb3VudCkpIDogXAotIF9fbWVtc2V0KChzKSwoYyksKGNvdW50KSkpCisjZGVmaW5lIG1lbXNldChzLCBjLCBjb3VudCkJCQkJCQlcCisJKF9fYnVpbHRpbl9jb25zdGFudF9wKGMpCQkJCQlcCisJID8gX19jb25zdGFudF9jX3hfbWVtc2V0KChzKSwgKDB4MDEwMTAxMDFVTCAqICh1bnNpZ25lZCBjaGFyKShjKSksIFwKKwkJCQkgKGNvdW50KSkJCQkJXAorCSA6IF9fbWVtc2V0KChzKSwgKGMpLCAoY291bnQpKSkKIAogLyoKICAqIGZpbmQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgYnl0ZSAnYycsIG9yIDEgcGFzdCB0aGUgYXJlYSBpZiBub25lCiAgKi8KICNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0NBTgotZXh0ZXJuIHZvaWQgKm1lbXNjYW4odm9pZCAqIGFkZHIsIGludCBjLCBzaXplX3Qgc2l6ZSk7CitleHRlcm4gdm9pZCAqbWVtc2Nhbih2b2lkICphZGRyLCBpbnQgYywgc2l6ZV90IHNpemUpOwogCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oIGIvaW5jbHVkZS9hc20teDg2L3N1c3BlbmRfMzIuaAppbmRleCAyNGUxYzA4Li44Njc1YzY3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvc3VzcGVuZF8zMi5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni9zdXNwZW5kXzMyLmgKQEAgLTMsNiArMyw5IEBACiAgKiBCYXNlZCBvbiBjb2RlCiAgKiBDb3B5cmlnaHQgMjAwMSBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPgogICovCisjaWZuZGVmIF9fQVNNX1g4Nl8zMl9TVVNQRU5EX0gKKyNkZWZpbmUgX19BU01fWDg2XzMyX1NVU1BFTkRfSAorCiAjaW5jbHVkZSA8YXNtL2Rlc2MuaD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgogCkBAIC00NCwzICs0Nyw1IEBACiAvKiByb3V0aW5lcyBmb3Igc2F2aW5nL3Jlc3RvcmluZyBrZXJuZWwgc3RhdGUgKi8KIGV4dGVybiBpbnQgYWNwaV9zYXZlX3N0YXRlX21lbSh2b2lkKTsKICNlbmRpZgorCisjZW5kaWYgLyogX19BU01fWDg2XzMyX1NVU1BFTkRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oIGIvaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oCmluZGV4IGEyZjA0Y2QuLjk4M2NlMzcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni9zeXN0ZW0uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvc3lzdGVtLmgKQEAgLTEzNiw3ICsxMzYsNyBAQAogI2RlZmluZSBzZXRfYmFzZShsZHQsIGJhc2UpIF9zZXRfYmFzZSgoKGNoYXIgKikmKGxkdCkpICwgKGJhc2UpKQogI2RlZmluZSBzZXRfbGltaXQobGR0LCBsaW1pdCkgX3NldF9saW1pdCgoKGNoYXIgKikmKGxkdCkpICwgKChsaW1pdCktMSkpCiAKLWV4dGVybiB2b2lkIGxvYWRfZ3NfaW5kZXgodW5zaWduZWQpOworZXh0ZXJuIHZvaWQgbmF0aXZlX2xvYWRfZ3NfaW5kZXgodW5zaWduZWQpOwogCiAvKgogICogTG9hZCBhIHNlZ21lbnQuIEZhbGwgYmFjayBvbiBsb2FkaW5nIHRoZSB6ZXJvCkBAIC0xNTMsMTQgKzE1MywxNCBAQAogCQkgICAgICJqbXAgMmJcbiIJCQlcCiAJCSAgICAgIi5wcmV2aW91c1xuIgkJXAogCQkgICAgIF9BU01fRVhUQUJMRSgxYiwzYikJXAotCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApKQorCQkgICAgIDogOiJyIiAodmFsdWUpLCAiciIgKDApIDogIm1lbW9yeSIpCiAKIAogLyoKICAqIFNhdmUgYSBzZWdtZW50IHJlZ2lzdGVyIGF3YXkKICAqLwogI2RlZmluZSBzYXZlc2VnbWVudChzZWcsIHZhbHVlKQkJCQlcCi0JYXNtIHZvbGF0aWxlKCJtb3YgJSUiICNzZWcgIiwlMCI6Ij1ybSIgKHZhbHVlKSkKKwlhc20oIm1vdiAlJSIgI3NlZyAiLCUwIjoiPXIiICh2YWx1ZSkgOiA6ICJtZW1vcnkiKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2xpbWl0KHVuc2lnbmVkIGxvbmcgc2VnbWVudCkKIHsKQEAgLTI4Miw2ICsyODIsNyBAQAogI2lmZGVmIENPTkZJR19YODZfNjQKICNkZWZpbmUgcmVhZF9jcjgoKQkobmF0aXZlX3JlYWRfY3I4KCkpCiAjZGVmaW5lIHdyaXRlX2NyOCh4KQkobmF0aXZlX3dyaXRlX2NyOCh4KSkKKyNkZWZpbmUgbG9hZF9nc19pbmRleCAgIG5hdGl2ZV9sb2FkX2dzX2luZGV4CiAjZW5kaWYKIAogLyogQ2xlYXIgdGhlICdUUycgYml0ICovCkBAIC0yODksNyArMjkwLDcgQEAKIAogI2VuZGlmLyogQ09ORklHX1BBUkFWSVJUICovCiAKLSNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMCg4IHwgcmVhZF9jcjAoKSkKKyNkZWZpbmUgc3R0cygpIHdyaXRlX2NyMChyZWFkX2NyMCgpIHwgWDg2X0NSMF9UUykKIAogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KIApAQCAtMzAzLDcgKzMwNCw2IEBACiB2b2lkIGRpc2FibGVfaGx0KHZvaWQpOwogdm9pZCBlbmFibGVfaGx0KHZvaWQpOwogCi1leHRlcm4gaW50IGVzNzAwMF9wbGF0Owogdm9pZCBjcHVfaWRsZV93YWl0KHZvaWQpOwogCiBleHRlcm4gdW5zaWduZWQgbG9uZyBhcmNoX2FsaWduX3N0YWNrKHVuc2lnbmVkIGxvbmcgc3ApOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvLmggYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAppbmRleCA3NzI0NGYxLi44OTUzMzlkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm8uaApAQCAtMSw5ICsxLDI1MyBAQAorLyogdGhyZWFkX2luZm8uaDogbG93LWxldmVsIHRocmVhZCBpbmZvcm1hdGlvbgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwMiAgRGF2aWQgSG93ZWxscyAoZGhvd2VsbHNAcmVkaGF0LmNvbSkKKyAqIC0gSW5jb3Jwb3JhdGluZyBzdWdnZXN0aW9ucyBtYWRlIGJ5IExpbnVzIFRvcnZhbGRzIGFuZCBEYXZlIE1pbGxlcgorICovCisKICNpZm5kZWYgX0FTTV9YODZfVEhSRUFEX0lORk9fSAorI2RlZmluZSBfQVNNX1g4Nl9USFJFQURfSU5GT19ICisKKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3R5cGVzLmg+CisKKy8qCisgKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCisgKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCisgKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcworICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworc3RydWN0IHRhc2tfc3RydWN0Oworc3RydWN0IGV4ZWNfZG9tYWluOworI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KKworc3RydWN0IHRocmVhZF9pbmZvIHsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCisJc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLworCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCisJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxhZ3MgKi8KKwlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCisJaW50CQkJcHJlZW1wdF9jb3VudDsJLyogMCA9PiBwcmVlbXB0YWJsZSwKKwkJCQkJCSAgIDwwID0+IEJVRyAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKKwlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOworCXZvaWQgX191c2VyCQkqc3lzZW50ZXJfcmV0dXJuOwogI2lmZGVmIENPTkZJR19YODZfMzIKLSMgaW5jbHVkZSAidGhyZWFkX2luZm9fMzIuaCIKLSNlbHNlCi0jIGluY2x1ZGUgInRocmVhZF9pbmZvXzY0LmgiCisJdW5zaWduZWQgbG9uZyAgICAgICAgICAgcHJldmlvdXNfZXNwOyAgIC8qIEVTUCBvZiB0aGUgcHJldmlvdXMgc3RhY2sgaW4KKwkJCQkJCSAgIGNhc2Ugb2YgbmVzdGVkIChJUlEpIHN0YWNrcworCQkJCQkJKi8KKwlfX3U4CQkJc3VwZXJ2aXNvcl9zdGFja1swXTsKICNlbmRpZgorfTsKKworI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlcCit7CQkJCQkJXAorCS50YXNrCQk9ICZ0c2ssCQkJXAorCS5leGVjX2RvbWFpbgk9ICZkZWZhdWx0X2V4ZWNfZG9tYWluLAlcCisJLmZsYWdzCQk9IDAsCQkJXAorCS5jcHUJCT0gMCwJCQlcCisJLnByZWVtcHRfY291bnQJPSAxLAkJCVwKKwkuYWRkcl9saW1pdAk9IEtFUk5FTF9EUywJCVwKKwkucmVzdGFydF9ibG9jayA9IHsJCQlcCisJCS5mbiA9IGRvX25vX3Jlc3RhcnRfc3lzY2FsbCwJXAorCX0sCQkJCQlcCit9CisKKyNkZWZpbmUgaW5pdF90aHJlYWRfaW5mbwkoaW5pdF90aHJlYWRfdW5pb24udGhyZWFkX2luZm8pCisjZGVmaW5lIGluaXRfc3RhY2sJCShpbml0X3RocmVhZF91bmlvbi5zdGFjaykKKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CisKKyNlbmRpZgorCisvKgorICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCisgKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cyBhc3NlbWJseSBmaWxlcworICogICBtYXkgbmVlZCB0byBhY2Nlc3MKKyAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVworICogLSBvdGhlciBmbGFncyBpbiBNU1cKKyAqIFdhcm5pbmc6IGxheW91dCBvZiBMU1cgaXMgaGFyZGNvZGVkIGluIGVudHJ5LlMKKyAqLworI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCisjZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkyCS8qIHNpZ25hbCBwZW5kaW5nICovCisjZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMwkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCisjZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQk0CS8qIHJlZW5hYmxlIHNpbmdsZXN0ZXAgb24gdXNlciByZXR1cm4qLworI2RlZmluZSBUSUZfSVJFVAkJNQkvKiBmb3JjZSBJUkVUICovCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorI2RlZmluZSBUSUZfU1lTQ0FMTF9FTVUJCTYJLyogc3lzY2FsbCBlbXVsYXRpb24gYWN0aXZlICovCisjZW5kaWYKKyNkZWZpbmUgVElGX1NZU0NBTExfQVVESVQJNwkvKiBzeXNjYWxsIGF1ZGl0aW5nIGFjdGl2ZSAqLworI2RlZmluZSBUSUZfU0VDQ09NUAkJOAkvKiBzZWN1cmUgY29tcHV0aW5nICovCisjZGVmaW5lIFRJRl9NQ0VfTk9USUZZCQkxMAkvKiBub3RpZnkgdXNlcnNwYWNlIG9mIGFuIE1DRSAqLworI2RlZmluZSBUSUZfSFJUSUNLX1JFU0NIRUQJMTEJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLworI2RlZmluZSBUSUZfTk9UU0MJCTE2CS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLworI2RlZmluZSBUSUZfSUEzMgkJMTcJLyogMzJiaXQgcHJvY2VzcyAqLworI2RlZmluZSBUSUZfRk9SSwkJMTgJLyogcmV0X2Zyb21fZm9yayAqLworI2RlZmluZSBUSUZfQUJJX1BFTkRJTkcJCTE5CisjZGVmaW5lIFRJRl9NRU1ESUUJCTIwCisjZGVmaW5lIFRJRl9ERUJVRwkJMjEJLyogdXNlcyBkZWJ1ZyByZWdpc3RlcnMgKi8KKyNkZWZpbmUgVElGX0lPX0JJVE1BUAkJMjIJLyogdXNlcyBJL08gYml0bWFwICovCisjZGVmaW5lIFRJRl9GUkVFWkUJCTIzCS8qIGlzIGZyZWV6aW5nIGZvciBzdXNwZW5kICovCisjZGVmaW5lIFRJRl9GT1JDRURfVEYJCTI0CS8qIHRydWUgaWYgVEYgaW4gZWZsYWdzIGFydGlmaWNpYWxseSAqLworI2RlZmluZSBUSUZfREVCVUdDVExNU1IJCTI1CS8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kZWJ1Z2N0bG1zciAqLworI2RlZmluZSBUSUZfRFNfQVJFQV9NU1IJCTI2ICAgICAgLyogdXNlcyB0aHJlYWRfc3RydWN0LmRzX2FyZWFfbXNyICovCisjZGVmaW5lIFRJRl9CVFNfVFJBQ0VfVFMJMjcgICAgICAvKiByZWNvcmQgc2NoZWR1bGluZyBldmVudCB0aW1lc3RhbXBzICovCisKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX1RSQUNFCSgxIDw8IFRJRl9TWVNDQUxMX1RSQUNFKQorI2RlZmluZSBfVElGX1NJR1BFTkRJTkcJCSgxIDw8IFRJRl9TSUdQRU5ESU5HKQorI2RlZmluZSBfVElGX1NJTkdMRVNURVAJCSgxIDw8IFRJRl9TSU5HTEVTVEVQKQorI2RlZmluZSBfVElGX05FRURfUkVTQ0hFRAkoMSA8PCBUSUZfTkVFRF9SRVNDSEVEKQorI2RlZmluZSBfVElGX0lSRVQJCSgxIDw8IFRJRl9JUkVUKQorI2lmZGVmIENPTkZJR19YODZfMzIKKyNkZWZpbmUgX1RJRl9TWVNDQUxMX0VNVQkoMSA8PCBUSUZfU1lTQ0FMTF9FTVUpCisjZWxzZQorI2RlZmluZSBfVElGX1NZU0NBTExfRU1VCTAKKyNlbmRpZgorI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCisjZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCisjZGVmaW5lIF9USUZfTUNFX05PVElGWQkJKDEgPDwgVElGX01DRV9OT1RJRlkpCisjZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQorI2RlZmluZSBfVElGX05PVFNDCQkoMSA8PCBUSUZfTk9UU0MpCisjZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCisjZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCisjZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQorI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCisjZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQorI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKKyNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCisjZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQorI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKKyNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKKworLyogd29yayB0byBkbyBvbiBpbnRlcnJ1cHQvZXhjZXB0aW9uIHJldHVybiAqLworI2RlZmluZSBfVElGX1dPUktfTUFTSwkJCQkJCQlcCisJKDB4MDAwMEZGRkYgJgkJCQkJCQlcCisJIH4oX1RJRl9TWVNDQUxMX1RSQUNFfF9USUZfU1lTQ0FMTF9BVURJVHxfVElGX1NJTkdMRVNURVB8CVwKKwkgX1RJRl9TRUNDT01QfF9USUZfU1lTQ0FMTF9FTVUpKQorCisvKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdXNlciBzcGFjZSAqLworI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSyAoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCisKKy8qIE9ubHkgdXNlZCBmb3IgNjQgYml0ICovCisjZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCisJKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCisKKy8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKKwkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfCBcCisJCQkJCQkJCV9USUZfTk9UU0MpCisKKyNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXX1BSRVYgX1RJRl9XT1JLX0NUWFNXCisjZGVmaW5lIF9USUZfV09SS19DVFhTV19ORVhUIChfVElGX1dPUktfQ1RYU1d8X1RJRl9ERUJVRykKKworI2RlZmluZSBQUkVFTVBUX0FDVElWRQkJMHgxMDAwMDAwMAorCisvKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLworI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQorI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQorI2Vsc2UKKyNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKKyNlbmRpZgorCisjZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCisJKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKKworI2lmZGVmIENPTkZJR19YODZfMzIKKworI2RlZmluZSBTVEFDS19XQVJOCShUSFJFQURfU0laRS84KQorLyoKKyAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCisgKgorICogcHJlZW1wdF9jb3VudCBuZWVkcyB0byBiZSAxIGluaXRpYWxseSwgdW50aWwgdGhlIHNjaGVkdWxlciBpcyBmdW5jdGlvbmFsLgorICovCisjaWZuZGVmIF9fQVNTRU1CTFlfXworCisKKy8qIGhvdyB0byBnZXQgdGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBmcm9tIEMgKi8KK3JlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyIGFzbSgiZXNwIikgX191c2VkOworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQyAqLworc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKK3sKKwlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQorCQkoY3VycmVudF9zdGFja19wb2ludGVyICYgfihUSFJFQURfU0laRSAtIDEpKTsKK30KKworI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLworCisvKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCisjZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpCSBcCisJbW92bCAkLVRIUkVBRF9TSVpFLCByZWc7IFwKKwlhbmRsICVlc3AsIHJlZworCisvKiB1c2UgdGhpcyBvbmUgaWYgcmVnIGFscmVhZHkgY29udGFpbnMgJWVzcCAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk9fV0lUSF9FU1AocmVnKSBcCisJYW5kbCAkLVRIUkVBRF9TSVpFLCByZWcKKworI2VuZGlmCisKKyNlbHNlIC8qIFg4Nl8zMiAqLworCisjaW5jbHVkZSA8YXNtL3BkYS5oPgorCisvKgorICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKKyAqIHByZWVtcHRfY291bnQgbmVlZHMgdG8gYmUgMSBpbml0aWFsbHksIHVudGlsIHRoZSBzY2hlZHVsZXIgaXMgZnVuY3Rpb25hbC4KKyAqLworI2lmbmRlZiBfX0FTU0VNQkxZX18KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpjdXJyZW50X3RocmVhZF9pbmZvKHZvaWQpCit7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aTsKKwl0aSA9ICh2b2lkICopKHJlYWRfcGRhKGtlcm5lbHN0YWNrKSArIFBEQV9TVEFDS09GRlNFVCAtIFRIUkVBRF9TSVpFKTsKKwlyZXR1cm4gdGk7Cit9CisKKy8qIGRvIG5vdCB1c2UgaW4gaW50ZXJydXB0IGNvbnRleHQgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRocmVhZF9pbmZvICpzdGFja190aHJlYWRfaW5mbyh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7CisJYXNtKCJhbmRxICUlcnNwLCUwOyAiIDogIj1yIiAodGkpIDogIjAiICh+KFRIUkVBRF9TSVpFIC0gMSkpKTsKKwlyZXR1cm4gdGk7Cit9CisKKyNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KKworLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLworI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKSBcCisJbW92cSAlZ3M6cGRhX2tlcm5lbHN0YWNrLHJlZyA7IFwKKwlzdWJxICQoVEhSRUFEX1NJWkUtUERBX1NUQUNLT0ZGU0VUKSxyZWcKKworI2VuZGlmCisKKyNlbmRpZiAvKiAhWDg2XzMyICovCisKKy8qCisgKiBUaHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLgorICoKKyAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZsYWdzIGluIHRoYXQgbm9ib2R5IGVsc2UKKyAqIGV2ZXIgdG91Y2hlcyBvdXIgdGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cywgc28gd2UgZG9uJ3QKKyAqIGhhdmUgdG8gd29ycnkgYWJvdXQgYXRvbWljIGFjY2Vzc2VzLgorICovCisjZGVmaW5lIFRTX1VTRURGUFUJCTB4MDAwMQkvKiBGUFUgd2FzIHVzZWQgYnkgdGhpcyB0YXNrCisJCQkJCSAgIHRoaXMgcXVhbnR1bSAoU01QKSAqLworI2RlZmluZSBUU19DT01QQVQJCTB4MDAwMgkvKiAzMmJpdCBzeXNjYWxsIGFjdGl2ZSAoNjRCSVQpKi8KKyNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDA0CS8qIHRydWUgaWYgaW4gaWRsZSBsb29wCisJCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KKyNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwOAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCisKKyNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisjZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQoreworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CisJdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7CisJc2V0X2JpdChUSUZfU0lHUEVORElORywgKHVuc2lnbmVkIGxvbmcgKikmdGktPmZsYWdzKTsKK30KKyNlbmRpZgkvKiAhX19BU1NFTUJMWV9fICovCiAKICNpZm5kZWYgX19BU1NFTUJMWV9fCiBleHRlcm4gdm9pZCBhcmNoX3Rhc2tfY2FjaGVfaW5pdCh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb18zMi5oIGIvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2MzM4ODIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RocmVhZF9pbmZvXzMyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotLyogdGhyZWFkX2luZm8uaDogaTM4NiBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgotI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotI2VuZGlmCi0KLS8qCi0gKiBsb3cgbGV2ZWwgdGFzayBkYXRhIHRoYXQgZW50cnkuUyBuZWVkcyBpbW1lZGlhdGUgYWNjZXNzIHRvCi0gKiAtIHRoaXMgc3RydWN0IHNob3VsZCBmaXQgZW50aXJlbHkgaW5zaWRlIG9mIG9uZSBjYWNoZSBsaW5lCi0gKiAtIHRoaXMgc3RydWN0IHNoYXJlcyB0aGUgc3VwZXJ2aXNvciBzdGFjayBwYWdlcwotICogLSBpZiB0aGUgY29udGVudHMgb2YgdGhpcyBzdHJ1Y3R1cmUgYXJlIGNoYW5nZWQsCi0gKiAgIHRoZSBhc3NlbWJseSBjb25zdGFudHMgbXVzdCBhbHNvIGJlIGNoYW5nZWQKLSAqLwotI2lmbmRlZiBfX0FTU0VNQkxZX18KLQotc3RydWN0IHRocmVhZF9pbmZvIHsKLQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCi0Jc3RydWN0IGV4ZWNfZG9tYWluCSpleGVjX2RvbWFpbjsJLyogZXhlY3V0aW9uIGRvbWFpbiAqLwotCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwkJLyogbG93IGxldmVsIGZsYWdzICovCi0JdW5zaWduZWQgbG9uZwkJc3RhdHVzOwkJLyogdGhyZWFkLXN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludAkJCXByZWVtcHRfY291bnQ7CS8qIDAgPT4gcHJlZW1wdGFibGUsCi0JCQkJCQkgICA8MCA9PiBCVUcgKi8KLQltbV9zZWdtZW50X3QJCWFkZHJfbGltaXQ7CS8qIHRocmVhZCBhZGRyZXNzIHNwYWNlOgotCQkJCQkJICAgMC0weEJGRkZGRkZGIHVzZXItdGhyZWFkCi0JCQkJCQkgICAwLTB4RkZGRkZGRkYga2VybmVsLXRocmVhZAotCQkJCQkJKi8KLQl2b2lkCQkJKnN5c2VudGVyX3JldHVybjsKLQlzdHJ1Y3QgcmVzdGFydF9ibG9jayAgICByZXN0YXJ0X2Jsb2NrOwotCXVuc2lnbmVkIGxvbmcgICAgICAgICAgIHByZXZpb3VzX2VzcDsgICAvKiBFU1Agb2YgdGhlIHByZXZpb3VzIHN0YWNrIGluCi0JCQkJCQkgICBjYXNlIG9mIG5lc3RlZCAoSVJRKSBzdGFja3MKLQkJCQkJCSovCi0JX191OAkJCXN1cGVydmlzb3Jfc3RhY2tbMF07Ci19OwotCi0jZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCi0KLSNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KLQotI2VuZGlmCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUJCTB4MTAwMDAwMDAKLSNpZmRlZiBDT05GSUdfNEtTVEFDS1MKLSNkZWZpbmUgVEhSRUFEX1NJWkUgICAgICAgICAgICAoNDA5NikKLSNlbHNlCi0jZGVmaW5lIFRIUkVBRF9TSVpFCQkoODE5MikKLSNlbmRpZgotCi0jZGVmaW5lIFNUQUNLX1dBUk4gICAgICAgICAgICAgKFRIUkVBRF9TSVpFLzgpCi0vKgotICogbWFjcm9zL2Z1bmN0aW9ucyBmb3IgZ2FpbmluZyBhY2Nlc3MgdG8gdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUKLSAqCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0KLSNkZWZpbmUgSU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAotewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwKLQkuZXhlY19kb21haW4JPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkJPSAwLAkJCVwKLQkuY3B1CQk9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50CT0gMSwJCQlcCi0JLmFkZHJfbGltaXQJPSBLRVJORUxfRFMsCQlcCi0JLnJlc3RhcnRfYmxvY2sgPSB7CQkJXAotCQkuZm4gPSBkb19ub19yZXN0YXJ0X3N5c2NhbGwsCVwKLQl9LAkJCQkJXAotfQotCi0jZGVmaW5lIGluaXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQotI2RlZmluZSBpbml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCi0KLQotLyogaG93IHRvIGdldCB0aGUgY3VycmVudCBzdGFjayBwb2ludGVyIGZyb20gQyAqLwotcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBjdXJyZW50X3N0YWNrX3BvaW50ZXIgYXNtKCJlc3AiKSBfX3VzZWQ7Ci0KLS8qIGhvdyB0byBnZXQgdGhlIHRocmVhZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopCi0JCShjdXJyZW50X3N0YWNrX3BvaW50ZXIgJiB+KFRIUkVBRF9TSVpFIC0gMSkpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBhbGxvY190aHJlYWRfaW5mbyh0c2spICgoc3RydWN0IHRocmVhZF9pbmZvICopCQkJXAotCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0tFUk5FTCB8IF9fR0ZQX1pFUk8sIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2Vsc2UKLSNkZWZpbmUgYWxsb2NfdGhyZWFkX2luZm8odHNrKSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKQkJCVwKLQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9LRVJORUwsIGdldF9vcmRlcihUSFJFQURfU0laRSkpKQotI2VuZGlmCi0KLSNlbHNlIC8qICFfX0FTU0VNQkxZX18gKi8KLQotLyogaG93IHRvIGdldCB0aGUgdGhyZWFkIGluZm9ybWF0aW9uIHN0cnVjdCBmcm9tIEFTTSAqLwotI2RlZmluZSBHRVRfVEhSRUFEX0lORk8ocmVnKQkgXAotCW1vdmwgJC1USFJFQURfU0laRSwgcmVnOyBcCi0JYW5kbCAlZXNwLCByZWcKLQotLyogdXNlIHRoaXMgb25lIGlmIHJlZyBhbHJlYWR5IGNvbnRhaW5zICVlc3AgKi8KLSNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPX1dJVEhfRVNQKHJlZykgXAotCWFuZGwgJC1USFJFQURfU0laRSwgcmVnCi0KLSNlbmRpZgotCi0vKgotICogdGhyZWFkIGluZm9ybWF0aW9uIGZsYWdzCi0gKiAtIHRoZXNlIGFyZSBwcm9jZXNzIHN0YXRlIGZsYWdzIHRoYXQgdmFyaW91cwotICogICBhc3NlbWJseSBmaWxlcyBtYXkgbmVlZCB0byBhY2Nlc3MKLSAqIC0gcGVuZGluZyB3b3JrLXRvLWJlLWRvbmUgZmxhZ3MgYXJlIGluIExTVwotICogLSBvdGhlciBmbGFncyBpbiBNU1cKLSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9UUkFDRQkwCS8qIHN5c2NhbGwgdHJhY2UgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TSUdQRU5ESU5HCQkxCS8qIHNpZ25hbCBwZW5kaW5nICovCi0jZGVmaW5lIFRJRl9ORUVEX1JFU0NIRUQJMgkvKiByZXNjaGVkdWxpbmcgbmVjZXNzYXJ5ICovCi0jZGVmaW5lIFRJRl9TSU5HTEVTVEVQCQkzCS8qIHJlc3RvcmUgc2luZ2xlc3RlcCBvbiByZXR1cm4gdG8KLQkJCQkJICAgdXNlciBtb2RlICovCi0jZGVmaW5lIFRJRl9JUkVUCQk0CS8qIHJldHVybiB3aXRoIGlyZXQgKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfRU1VCQk1CS8qIHN5c2NhbGwgZW11bGF0aW9uIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk2CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk3CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX0hSVElDS19SRVNDSEVECTkJLyogcmVwcm9ncmFtIGhydGljayB0aW1lciAqLwotI2RlZmluZSBUSUZfTUVNRElFCQkxNgotI2RlZmluZSBUSUZfREVCVUcJCTE3CS8qIHVzZXMgZGVidWcgcmVnaXN0ZXJzICovCi0jZGVmaW5lIFRJRl9JT19CSVRNQVAJCTE4CS8qIHVzZXMgSS9PIGJpdG1hcCAqLwotI2RlZmluZSBUSUZfRlJFRVpFCQkxOQkvKiBpcyBmcmVlemluZyBmb3Igc3VzcGVuZCAqLwotI2RlZmluZSBUSUZfTk9UU0MJCTIwCS8qIFRTQyBpcyBub3QgYWNjZXNzaWJsZSBpbiB1c2VybGFuZCAqLwotI2RlZmluZSBUSUZfRk9SQ0VEX1RGCQkyMQkvKiB0cnVlIGlmIFRGIGluIGVmbGFncyBhcnRpZmljaWFsbHkgKi8KLSNkZWZpbmUgVElGX0RFQlVHQ1RMTVNSCQkyMgkvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZGVidWdjdGxtc3IgKi8KLSNkZWZpbmUgVElGX0RTX0FSRUFfTVNSIAkyMyAgICAgIC8qIHVzZXMgdGhyZWFkX3N0cnVjdC5kc19hcmVhX21zciAqLwotI2RlZmluZSBUSUZfQlRTX1RSQUNFX1RTICAgICAgICAyNCAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9FTVUJKDEgPDwgVElGX1NZU0NBTExfRU1VKQotI2RlZmluZSBfVElGX1NZU0NBTExfQVVESVQJKDEgPDwgVElGX1NZU0NBTExfQVVESVQpCi0jZGVmaW5lIF9USUZfU0VDQ09NUAkJKDEgPDwgVElGX1NFQ0NPTVApCi0jZGVmaW5lIF9USUZfSFJUSUNLX1JFU0NIRUQJKDEgPDwgVElGX0hSVElDS19SRVNDSEVEKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotI2RlZmluZSBfVElGX0ZPUkNFRF9URgkJKDEgPDwgVElGX0ZPUkNFRF9URikKLSNkZWZpbmUgX1RJRl9ERUJVR0NUTE1TUgkoMSA8PCBUSUZfREVCVUdDVExNU1IpCi0jZGVmaW5lIF9USUZfRFNfQVJFQV9NU1IJKDEgPDwgVElGX0RTX0FSRUFfTVNSKQotI2RlZmluZSBfVElGX0JUU19UUkFDRV9UUwkoMSA8PCBUSUZfQlRTX1RSQUNFX1RTKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmIH4oX1RJRl9TWVNDQUxMX1RSQUNFIHwgX1RJRl9TWVNDQUxMX0FVRElUIHwJXAotCQkJX1RJRl9TRUNDT01QIHwgX1RJRl9TWVNDQUxMX0VNVSkpCi0vKiB3b3JrIHRvIGRvIG9uIGFueSByZXR1cm4gdG8gdS1zcGFjZSAqLwotI2RlZmluZSBfVElGX0FMTFdPUktfTUFTSwkoMHgwMDAwRkZGRiAmIH5fVElGX1NFQ0NPTVApCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJXAotCShfVElGX0lPX0JJVE1BUCB8IF9USUZfTk9UU0MgfCBfVElGX0RFQlVHQ1RMTVNSIHwJXAotCSBfVElGX0RTX0FSRUFfTVNSIHwgX1RJRl9CVFNfVFJBQ0VfVFMpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXIHwgX1RJRl9ERUJVRykKLQotCi0vKgotICogVGhyZWFkLXN5bmNocm9ub3VzIHN0YXR1cy4KLSAqCi0gKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBmbGFncyBpbiB0aGF0IG5vYm9keSBlbHNlCi0gKiBldmVyIHRvdWNoZXMgb3VyIHRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMsIHNvIHdlIGRvbid0Ci0gKiBoYXZlIHRvIHdvcnJ5IGFib3V0IGF0b21pYyBhY2Nlc3Nlcy4KLSAqLwotI2RlZmluZSBUU19VU0VERlBVCQkweDAwMDEJLyogRlBVIHdhcyB1c2VkIGJ5IHRoaXMgdGFzawotCQkJCQkgICB0aGlzIHF1YW50dW0gKFNNUCkgKi8KLSNkZWZpbmUgVFNfUE9MTElORwkJMHgwMDAyCS8qIFRydWUgaWYgaW4gaWRsZSBsb29wCi0JCQkJCSAgIGFuZCBub3Qgc2xlZXBpbmcgKi8KLSNkZWZpbmUgVFNfUkVTVE9SRV9TSUdNQVNLCTB4MDAwNAkvKiByZXN0b3JlIHNpZ25hbCBtYXNrIGluIGRvX3NpZ25hbCgpICovCi0KLSNkZWZpbmUgdHNrX2lzX3BvbGxpbmcodCkgKHRhc2tfdGhyZWFkX2luZm8odCktPnN0YXR1cyAmIFRTX1BPTExJTkcpCi0KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIEhBVkVfU0VUX1JFU1RPUkVfU0lHTUFTSwkxCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Jlc3RvcmVfc2lnbWFzayh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7Ci0JdGktPnN0YXR1cyB8PSBUU19SRVNUT1JFX1NJR01BU0s7Ci0Jc2V0X2JpdChUSUZfU0lHUEVORElORywgJnRpLT5mbGFncyk7Ci19Ci0jZW5kaWYJLyogIV9fQVNTRU1CTFlfXyAqLwotCi0jZW5kaWYgLyogX19LRVJORUxfXyAqLwotCi0jZW5kaWYgLyogX0FTTV9USFJFQURfSU5GT19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdGhyZWFkX2luZm9fNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjY5ZjcwLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvYXNtLXg4Ni90aHJlYWRfaW5mb182NC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTk1ICswLDAgQEAKLS8qIHRocmVhZF9pbmZvLmg6IHg4Nl82NCBsb3ctbGV2ZWwgdGhyZWFkIGluZm9ybWF0aW9uCi0gKgotICogQ29weXJpZ2h0IChDKSAyMDAyICBEYXZpZCBIb3dlbGxzIChkaG93ZWxsc0ByZWRoYXQuY29tKQotICogLSBJbmNvcnBvcmF0aW5nIHN1Z2dlc3Rpb25zIG1hZGUgYnkgTGludXMgVG9ydmFsZHMgYW5kIERhdmUgTWlsbGVyCi0gKi8KLQotI2lmbmRlZiBfQVNNX1RIUkVBRF9JTkZPX0gKLSNkZWZpbmUgX0FTTV9USFJFQURfSU5GT19ICi0KLSNpZmRlZiBfX0tFUk5FTF9fCi0KLSNpbmNsdWRlIDxhc20vcGFnZS5oPgotI2luY2x1ZGUgPGFzbS90eXBlcy5oPgotI2luY2x1ZGUgPGFzbS9wZGEuaD4KLQotLyoKLSAqIGxvdyBsZXZlbCB0YXNrIGRhdGEgdGhhdCBlbnRyeS5TIG5lZWRzIGltbWVkaWF0ZSBhY2Nlc3MgdG8KLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hvdWxkIGZpdCBlbnRpcmVseSBpbnNpZGUgb2Ygb25lIGNhY2hlIGxpbmUKLSAqIC0gdGhpcyBzdHJ1Y3Qgc2hhcmVzIHRoZSBzdXBlcnZpc29yIHN0YWNrIHBhZ2VzCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi1zdHJ1Y3QgdGFza19zdHJ1Y3Q7Ci1zdHJ1Y3QgZXhlY19kb21haW47Ci0jaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgotCi1zdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFzazsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KLQlzdHJ1Y3QgZXhlY19kb21haW4JKmV4ZWNfZG9tYWluOwkvKiBleGVjdXRpb24gZG9tYWluICovCi0JX191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwotCV9fdTMyCQkJc3RhdHVzOwkJLyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCi0JX191MzIJCQljcHU7CQkvKiBjdXJyZW50IENQVSAqLwotCWludCAJCQlwcmVlbXB0X2NvdW50OwkvKiAwID0+IHByZWVtcHRhYmxlLAotCQkJCQkJICAgPDAgPT4gQlVHICovCi0JbW1fc2VnbWVudF90CQlhZGRyX2xpbWl0OwotCXN0cnVjdCByZXN0YXJ0X2Jsb2NrICAgIHJlc3RhcnRfYmxvY2s7Ci0jaWZkZWYgQ09ORklHX0lBMzJfRU1VTEFUSU9OCi0Jdm9pZCBfX3VzZXIJCSpzeXNlbnRlcl9yZXR1cm47Ci0jZW5kaWYKLX07Ci0jZW5kaWYKLQotLyoKLSAqIG1hY3Jvcy9mdW5jdGlvbnMgZm9yIGdhaW5pbmcgYWNjZXNzIHRvIHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0dXJlCi0gKiBwcmVlbXB0X2NvdW50IG5lZWRzIHRvIGJlIDEgaW5pdGlhbGx5LCB1bnRpbCB0aGUgc2NoZWR1bGVyIGlzIGZ1bmN0aW9uYWwuCi0gKi8KLSNpZm5kZWYgX19BU1NFTUJMWV9fCi0jZGVmaW5lIElOSVRfVEhSRUFEX0lORk8odHNrKQkJCVwKLXsJCQkJCQlcCi0JLnRhc2sJICAgICAgID0gJnRzaywJCQlcCi0JLmV4ZWNfZG9tYWluICAgPSAmZGVmYXVsdF9leGVjX2RvbWFpbiwJXAotCS5mbGFncwkgICAgICAgPSAwLAkJCVwKLQkuY3B1CSAgICAgICA9IDAsCQkJXAotCS5wcmVlbXB0X2NvdW50ID0gMSwJCQlcCi0JLmFkZHJfbGltaXQgICAgID0gS0VSTkVMX0RTLAkJXAotCS5yZXN0YXJ0X2Jsb2NrID0gewkJCVwKLQkJLmZuID0gZG9fbm9fcmVzdGFydF9zeXNjYWxsLAlcCi0JfSwJCQkJCVwKLX0KLQotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlvbi50aHJlYWRfaW5mbykKLSNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0YWNrKQotCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQotewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7Ci0JdGkgPSAodm9pZCAqKShyZWFkX3BkYShrZXJuZWxzdGFjaykgKyBQREFfU1RBQ0tPRkZTRVQgLSBUSFJFQURfU0laRSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiBkbyBub3QgdXNlIGluIGludGVycnVwdCBjb250ZXh0ICovCi1zdGF0aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqc3RhY2tfdGhyZWFkX2luZm8odm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwotCWFzbSgiYW5kcSAlJXJzcCwlMDsgIiA6ICI9ciIgKHRpKSA6ICIwIiAofihUSFJFQURfU0laRSAtIDEpKSk7Ci0JcmV0dXJuIHRpOwotfQotCi0vKiB0aHJlYWQgaW5mb3JtYXRpb24gYWxsb2NhdGlvbiAqLwotI2lmZGVmIENPTkZJR19ERUJVR19TVEFDS19VU0FHRQotI2RlZmluZSBUSFJFQURfRkxBR1MgKEdGUF9LRVJORUwgfCBfX0dGUF9aRVJPKQotI2Vsc2UKLSNkZWZpbmUgVEhSRUFEX0ZMQUdTIEdGUF9LRVJORUwKLSNlbmRpZgotCi0jZGVmaW5lIGFsbG9jX3RocmVhZF9pbmZvKHRzaykJCQkJCQlcCi0JKChzdHJ1Y3QgdGhyZWFkX2luZm8gKilfX2dldF9mcmVlX3BhZ2VzKFRIUkVBRF9GTEFHUywgVEhSRUFEX09SREVSKSkKLQotI2Vsc2UgLyogIV9fQVNTRU1CTFlfXyAqLwotCi0vKiBob3cgdG8gZ2V0IHRoZSB0aHJlYWQgaW5mb3JtYXRpb24gc3RydWN0IGZyb20gQVNNICovCi0jZGVmaW5lIEdFVF9USFJFQURfSU5GTyhyZWcpIFwKLQltb3ZxICVnczpwZGFfa2VybmVsc3RhY2sscmVnIDsgXAotCXN1YnEgJChUSFJFQURfU0laRS1QREFfU1RBQ0tPRkZTRVQpLHJlZwotCi0jZW5kaWYKLQotLyoKLSAqIHRocmVhZCBpbmZvcm1hdGlvbiBmbGFncwotICogLSB0aGVzZSBhcmUgcHJvY2VzcyBzdGF0ZSBmbGFncyB0aGF0IHZhcmlvdXMgYXNzZW1ibHkgZmlsZXMKLSAqICAgbWF5IG5lZWQgdG8gYWNjZXNzCi0gKiAtIHBlbmRpbmcgd29yay10by1iZS1kb25lIGZsYWdzIGFyZSBpbiBMU1cKLSAqIC0gb3RoZXIgZmxhZ3MgaW4gTVNXCi0gKiBXYXJuaW5nOiBsYXlvdXQgb2YgTFNXIGlzIGhhcmRjb2RlZCBpbiBlbnRyeS5TCi0gKi8KLSNkZWZpbmUgVElGX1NZU0NBTExfVFJBQ0UJMAkvKiBzeXNjYWxsIHRyYWNlIGFjdGl2ZSAqLwotI2RlZmluZSBUSUZfU0lHUEVORElORwkJMgkvKiBzaWduYWwgcGVuZGluZyAqLwotI2RlZmluZSBUSUZfTkVFRF9SRVNDSEVECTMJLyogcmVzY2hlZHVsaW5nIG5lY2Vzc2FyeSAqLwotI2RlZmluZSBUSUZfU0lOR0xFU1RFUAkJNAkvKiByZWVuYWJsZSBzaW5nbGVzdGVwIG9uIHVzZXIgcmV0dXJuKi8KLSNkZWZpbmUgVElGX0lSRVQJCTUJLyogZm9yY2UgSVJFVCAqLwotI2RlZmluZSBUSUZfU1lTQ0FMTF9BVURJVAk3CS8qIHN5c2NhbGwgYXVkaXRpbmcgYWN0aXZlICovCi0jZGVmaW5lIFRJRl9TRUNDT01QCQk4CS8qIHNlY3VyZSBjb21wdXRpbmcgKi8KLSNkZWZpbmUgVElGX01DRV9OT1RJRlkJCTEwCS8qIG5vdGlmeSB1c2Vyc3BhY2Ugb2YgYW4gTUNFICovCi0jZGVmaW5lIFRJRl9IUlRJQ0tfUkVTQ0hFRAkxMQkvKiByZXByb2dyYW0gaHJ0aWNrIHRpbWVyICovCi0vKiAxNiBmcmVlICovCi0jZGVmaW5lIFRJRl9JQTMyCQkxNwkvKiAzMmJpdCBwcm9jZXNzICovCi0jZGVmaW5lIFRJRl9GT1JLCQkxOAkvKiByZXRfZnJvbV9mb3JrICovCi0jZGVmaW5lIFRJRl9BQklfUEVORElORwkJMTkKLSNkZWZpbmUgVElGX01FTURJRQkJMjAKLSNkZWZpbmUgVElGX0RFQlVHCQkyMQkvKiB1c2VzIGRlYnVnIHJlZ2lzdGVycyAqLwotI2RlZmluZSBUSUZfSU9fQklUTUFQCQkyMgkvKiB1c2VzIEkvTyBiaXRtYXAgKi8KLSNkZWZpbmUgVElGX0ZSRUVaRQkJMjMJLyogaXMgZnJlZXppbmcgZm9yIHN1c3BlbmQgKi8KLSNkZWZpbmUgVElGX0ZPUkNFRF9URgkJMjQJLyogdHJ1ZSBpZiBURiBpbiBlZmxhZ3MgYXJ0aWZpY2lhbGx5ICovCi0jZGVmaW5lIFRJRl9ERUJVR0NUTE1TUgkJMjUJLyogdXNlcyB0aHJlYWRfc3RydWN0LmRlYnVnY3RsbXNyICovCi0jZGVmaW5lIFRJRl9EU19BUkVBX01TUgkJMjYgICAgICAvKiB1c2VzIHRocmVhZF9zdHJ1Y3QuZHNfYXJlYV9tc3IgKi8KLSNkZWZpbmUgVElGX0JUU19UUkFDRV9UUwkyNyAgICAgIC8qIHJlY29yZCBzY2hlZHVsaW5nIGV2ZW50IHRpbWVzdGFtcHMgKi8KLSNkZWZpbmUgVElGX05PVFNDCQkyOAkvKiBUU0MgaXMgbm90IGFjY2Vzc2libGUgaW4gdXNlcmxhbmQgKi8KLQotI2RlZmluZSBfVElGX1NZU0NBTExfVFJBQ0UJKDEgPDwgVElGX1NZU0NBTExfVFJBQ0UpCi0jZGVmaW5lIF9USUZfU0lHUEVORElORwkJKDEgPDwgVElGX1NJR1BFTkRJTkcpCi0jZGVmaW5lIF9USUZfU0lOR0xFU1RFUAkJKDEgPDwgVElGX1NJTkdMRVNURVApCi0jZGVmaW5lIF9USUZfTkVFRF9SRVNDSEVECSgxIDw8IFRJRl9ORUVEX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSVJFVAkJKDEgPDwgVElGX0lSRVQpCi0jZGVmaW5lIF9USUZfU1lTQ0FMTF9BVURJVAkoMSA8PCBUSUZfU1lTQ0FMTF9BVURJVCkKLSNkZWZpbmUgX1RJRl9TRUNDT01QCQkoMSA8PCBUSUZfU0VDQ09NUCkKLSNkZWZpbmUgX1RJRl9NQ0VfTk9USUZZCQkoMSA8PCBUSUZfTUNFX05PVElGWSkKLSNkZWZpbmUgX1RJRl9IUlRJQ0tfUkVTQ0hFRAkoMSA8PCBUSUZfSFJUSUNLX1JFU0NIRUQpCi0jZGVmaW5lIF9USUZfSUEzMgkJKDEgPDwgVElGX0lBMzIpCi0jZGVmaW5lIF9USUZfRk9SSwkJKDEgPDwgVElGX0ZPUkspCi0jZGVmaW5lIF9USUZfQUJJX1BFTkRJTkcJKDEgPDwgVElGX0FCSV9QRU5ESU5HKQotI2RlZmluZSBfVElGX0RFQlVHCQkoMSA8PCBUSUZfREVCVUcpCi0jZGVmaW5lIF9USUZfSU9fQklUTUFQCQkoMSA8PCBUSUZfSU9fQklUTUFQKQotI2RlZmluZSBfVElGX0ZSRUVaRQkJKDEgPDwgVElGX0ZSRUVaRSkKLSNkZWZpbmUgX1RJRl9GT1JDRURfVEYJCSgxIDw8IFRJRl9GT1JDRURfVEYpCi0jZGVmaW5lIF9USUZfREVCVUdDVExNU1IJKDEgPDwgVElGX0RFQlVHQ1RMTVNSKQotI2RlZmluZSBfVElGX0RTX0FSRUFfTVNSCSgxIDw8IFRJRl9EU19BUkVBX01TUikKLSNkZWZpbmUgX1RJRl9CVFNfVFJBQ0VfVFMJKDEgPDwgVElGX0JUU19UUkFDRV9UUykKLSNkZWZpbmUgX1RJRl9OT1RTQwkJKDEgPDwgVElGX05PVFNDKQotCi0vKiB3b3JrIHRvIGRvIG9uIGludGVycnVwdC9leGNlcHRpb24gcmV0dXJuICovCi0jZGVmaW5lIF9USUZfV09SS19NQVNLCQkJCQkJCVwKLQkoMHgwMDAwRkZGRiAmCQkJCQkJCVwKLQkgfihfVElGX1NZU0NBTExfVFJBQ0V8X1RJRl9TWVNDQUxMX0FVRElUfF9USUZfU0lOR0xFU1RFUHxfVElGX1NFQ0NPTVApKQotLyogd29yayB0byBkbyBvbiBhbnkgcmV0dXJuIHRvIHVzZXIgc3BhY2UgKi8KLSNkZWZpbmUgX1RJRl9BTExXT1JLX01BU0sgKDB4MDAwMEZGRkYgJiB+X1RJRl9TRUNDT01QKQotCi0jZGVmaW5lIF9USUZfRE9fTk9USUZZX01BU0sJCQkJCQlcCi0JKF9USUZfU0lHUEVORElOR3xfVElGX1NJTkdMRVNURVB8X1RJRl9NQ0VfTk9USUZZfF9USUZfSFJUSUNLX1JFU0NIRUQpCi0KLS8qIGZsYWdzIHRvIGNoZWNrIGluIF9fc3dpdGNoX3RvKCkgKi8KLSNkZWZpbmUgX1RJRl9XT1JLX0NUWFNXCQkJCQkJCVwKLQkoX1RJRl9JT19CSVRNQVB8X1RJRl9ERUJVR0NUTE1TUnxfVElGX0RTX0FSRUFfTVNSfF9USUZfQlRTX1RSQUNFX1RTfF9USUZfTk9UU0MpCi0jZGVmaW5lIF9USUZfV09SS19DVFhTV19QUkVWIF9USUZfV09SS19DVFhTVwotI2RlZmluZSBfVElGX1dPUktfQ1RYU1dfTkVYVCAoX1RJRl9XT1JLX0NUWFNXfF9USUZfREVCVUcpCi0KLSNkZWZpbmUgUFJFRU1QVF9BQ1RJVkUgICAgIDB4MTAwMDAwMDAKLQotLyoKLSAqIFRocmVhZC1zeW5jaHJvbm91cyBzdGF0dXMuCi0gKgotICogVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZmxhZ3MgaW4gdGhhdCBub2JvZHkgZWxzZQotICogZXZlciB0b3VjaGVzIG91ciB0aHJlYWQtc3luY2hyb25vdXMgc3RhdHVzLCBzbyB3ZSBkb24ndAotICogaGF2ZSB0byB3b3JyeSBhYm91dCBhdG9taWMgYWNjZXNzZXMuCi0gKi8KLSNkZWZpbmUgVFNfVVNFREZQVQkJMHgwMDAxCS8qIEZQVSB3YXMgdXNlZCBieSB0aGlzIHRhc2sKLQkJCQkJICAgdGhpcyBxdWFudHVtIChTTVApICovCi0jZGVmaW5lIFRTX0NPTVBBVAkJMHgwMDAyCS8qIDMyYml0IHN5c2NhbGwgYWN0aXZlICovCi0jZGVmaW5lIFRTX1BPTExJTkcJCTB4MDAwNAkvKiB0cnVlIGlmIGluIGlkbGUgbG9vcAotCQkJCQkgICBhbmQgbm90IHNsZWVwaW5nICovCi0jZGVmaW5lIFRTX1JFU1RPUkVfU0lHTUFTSwkweDAwMDgJLyogcmVzdG9yZSBzaWduYWwgbWFzayBpbiBkb19zaWduYWwoKSAqLwotCi0jZGVmaW5lIHRza19pc19wb2xsaW5nKHQpICh0YXNrX3RocmVhZF9pbmZvKHQpLT5zdGF0dXMgJiBUU19QT0xMSU5HKQotCi0jaWZuZGVmIF9fQVNTRU1CTFlfXwotI2RlZmluZSBIQVZFX1NFVF9SRVNUT1JFX1NJR01BU0sJMQotc3RhdGljIGlubGluZSB2b2lkIHNldF9yZXN0b3JlX3NpZ21hc2sodm9pZCkKLXsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwotCXRpLT5zdGF0dXMgfD0gVFNfUkVTVE9SRV9TSUdNQVNLOwotCXNldF9iaXQoVElGX1NJR1BFTkRJTkcsICZ0aS0+ZmxhZ3MpOwotfQotI2VuZGlmCS8qICFfX0FTU0VNQkxZX18gKi8KLQotI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KLQotI2VuZGlmIC8qIF9BU01fVEhSRUFEX0lORk9fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaCBiL2luY2x1ZGUvYXNtLXg4Ni90aW1lLmgKaW5kZXggYmNlNzJkNy4uYTE3ZmE0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RpbWUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZS5oCkBAIC01Niw0ICs1Niw2IEBACiAKICNlbmRpZiAvKiBDT05GSUdfUEFSQVZJUlQgKi8KIAorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19pbml0IGNhbGlicmF0ZV9jcHUodm9pZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RpbWVyLmggYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAppbmRleCA0ZjZmY2IwLi5mYjJhNGRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGltZXIuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGltZXIuaApAQCAtNywxNCArNywxNCBAQAogI2RlZmluZSBUSUNLX1NJWkUgKHRpY2tfbnNlYyAvIDEwMDApCiAKIHVuc2lnbmVkIGxvbmcgbG9uZyBuYXRpdmVfc2NoZWRfY2xvY2sodm9pZCk7Ci11bnNpZ25lZCBsb25nIG5hdGl2ZV9jYWxjdWxhdGVfY3B1X2toeih2b2lkKTsKK3Vuc2lnbmVkIGxvbmcgbmF0aXZlX2NhbGlicmF0ZV90c2Modm9pZCk7CiAKIGV4dGVybiBpbnQgdGltZXJfYWNrOwogZXh0ZXJuIGludCBub190aW1lcl9jaGVjazsKIGV4dGVybiBpbnQgcmVjYWxpYnJhdGVfY3B1X2toeih2b2lkKTsKIAogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKLSNkZWZpbmUgY2FsY3VsYXRlX2NwdV9raHooKSBuYXRpdmVfY2FsY3VsYXRlX2NwdV9raHooKQorI2RlZmluZSBjYWxpYnJhdGVfdHNjKCkgbmF0aXZlX2NhbGlicmF0ZV90c2MoKQogI2VuZGlmCiAKIC8qIEFjY2VsZXJhdG9ycyBmb3Igc2NoZWRfY2xvY2soKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3RsYmZsdXNoLmggYi9pbmNsdWRlL2FzbS14ODYvdGxiZmx1c2guaAppbmRleCAwYzA2NzRkLi4zNWM3NmNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdGxiZmx1c2guaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdGxiZmx1c2guaApAQCAtMjIsMTIgKzIyLDIzIEBACiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX25hdGl2ZV9mbHVzaF90bGJfZ2xvYmFsKHZvaWQpCiB7Ci0JdW5zaWduZWQgbG9uZyBjcjQgPSByZWFkX2NyNCgpOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgbG9uZyBjcjQ7CiAKKwkvKgorCSAqIFJlYWQtbW9kaWZ5LXdyaXRlIHRvIENSNCAtIHByb3RlY3QgaXQgZnJvbSBwcmVlbXB0aW9uIGFuZAorCSAqIGZyb20gaW50ZXJydXB0cy4gKFVzZSB0aGUgcmF3IHZhcmlhbnQgYmVjYXVzZSB0aGlzIGNvZGUgY2FuCisJICogYmUgY2FsbGVkIGZyb20gZGVlcCBpbnNpZGUgZGVidWdnaW5nIGNvZGUuKQorCSAqLworCXJhd19sb2NhbF9pcnFfc2F2ZShmbGFncyk7CisKKwljcjQgPSByZWFkX2NyNCgpOwogCS8qIGNsZWFyIFBHRSAqLwogCXdyaXRlX2NyNChjcjQgJiB+WDg2X0NSNF9QR0UpOwogCS8qIHdyaXRlIG9sZCBQR0UgYWdhaW4gYW5kIGZsdXNoIFRMQnMgKi8KIAl3cml0ZV9jcjQoY3I0KTsKKworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX25hdGl2ZV9mbHVzaF90bGJfc2luZ2xlKHVuc2lnbmVkIGxvbmcgYWRkcikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni90b3BvbG9neS5oIGIvaW5jbHVkZS9hc20teDg2L3RvcG9sb2d5LmgKaW5kZXggZGNmM2Y4MS4uOTBhYzc3MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RvcG9sb2d5LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3RvcG9sb2d5LmgKQEAgLTM1LDc5ICszNSw5MyBAQAogIyBlbmRpZgogI2VuZGlmCiAKKy8qIE5vZGUgbm90IHByZXNlbnQgKi8KKyNkZWZpbmUgTlVNQV9OT19OT0RFCSgtMSkKKwogI2lmZGVmIENPTkZJR19OVU1BCiAjaW5jbHVkZSA8bGludXgvY3B1bWFzay5oPgogI2luY2x1ZGUgPGFzbS9tcHNwZWMuaD4KIAotLyogTWFwcGluZ3MgYmV0d2VlbiBsb2dpY2FsIGNwdSBudW1iZXIgYW5kIG5vZGUgbnVtYmVyICovCiAjaWZkZWYgQ09ORklHX1g4Nl8zMgotZXh0ZXJuIGludCBjcHVfdG9fbm9kZV9tYXBbXTsKLSNlbHNlCi0vKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGN1cnJlbnQgTm9kZS4gKi8KLSNkZWZpbmUgbnVtYV9ub2RlX2lkKCkJCShlYXJseV9jcHVfdG9fbm9kZShyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKSkKLSNlbmRpZgogCi1ERUNMQVJFX1BFUl9DUFUoaW50LCB4ODZfY3B1X3RvX25vZGVfbWFwKTsKLQotI2lmZGVmIENPTkZJR19TTVAKLWV4dGVybiBpbnQgeDg2X2NwdV90b19ub2RlX21hcF9pbml0W107Ci1leHRlcm4gdm9pZCAqeDg2X2NwdV90b19ub2RlX21hcF9lYXJseV9wdHI7Ci0jZWxzZQotI2RlZmluZSB4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0ciBOVUxMCi0jZW5kaWYKLQorLyogTWFwcGluZ3MgYmV0d2VlbiBub2RlIG51bWJlciBhbmQgY3B1cyBvbiB0aGF0IG5vZGUuICovCiBleHRlcm4gY3B1bWFza190IG5vZGVfdG9fY3B1bWFza19tYXBbXTsKIAotI2RlZmluZSBOVU1BX05PX05PREUJKC0xKQorLyogTWFwcGluZ3MgYmV0d2VlbiBsb2dpY2FsIGNwdSBudW1iZXIgYW5kIG5vZGUgbnVtYmVyICovCitleHRlcm4gaW50IGNwdV90b19ub2RlX21hcFtdOwogCiAvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIG5vZGUgY29udGFpbmluZyBDUFUgJ2NwdScgKi8KLSNpZmRlZiBDT05GSUdfWDg2XzMyCi0jZGVmaW5lIGVhcmx5X2NwdV90b19ub2RlKGNwdSkJY3B1X3RvX25vZGUoY3B1KQogc3RhdGljIGlubGluZSBpbnQgY3B1X3RvX25vZGUoaW50IGNwdSkKIHsKIAlyZXR1cm4gY3B1X3RvX25vZGVfbWFwW2NwdV07CiB9CisjZGVmaW5lIGVhcmx5X2NwdV90b19ub2RlKGNwdSkJY3B1X3RvX25vZGUoY3B1KQorCisvKiBSZXR1cm5zIGEgYml0bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLgorICoKKyAqIFNpZGUgbm90ZTogdGhpcyBmdW5jdGlvbiBjcmVhdGVzIHRoZSByZXR1cm5lZCBjcHVtYXNrIG9uIHRoZSBzdGFjaworICogc28gd2l0aCBhIGhpZ2ggTlJfQ1BVUyBjb3VudCwgZXhjZXNzaXZlIHN0YWNrIHNwYWNlIGlzIHVzZWQuICBUaGUKKyAqIG5vZGVfdG9fY3B1bWFza19wdHIgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgd2hlbmV2ZXIgcG9zc2libGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgY3B1bWFza190IG5vZGVfdG9fY3B1bWFzayhpbnQgbm9kZSkKK3sKKwlyZXR1cm4gbm9kZV90b19jcHVtYXNrX21hcFtub2RlXTsKK30KIAogI2Vsc2UgLyogQ09ORklHX1g4Nl82NCAqLwogCi0jaWZkZWYgQ09ORklHX1NNUAotc3RhdGljIGlubGluZSBpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSkKLXsKLQlpbnQgKmNwdV90b19ub2RlX21hcCA9IHg4Nl9jcHVfdG9fbm9kZV9tYXBfZWFybHlfcHRyOworLyogTWFwcGluZ3MgYmV0d2VlbiBub2RlIG51bWJlciBhbmQgY3B1cyBvbiB0aGF0IG5vZGUuICovCitleHRlcm4gY3B1bWFza190ICpub2RlX3RvX2NwdW1hc2tfbWFwOwogCi0JaWYgKGNwdV90b19ub2RlX21hcCkKLQkJcmV0dXJuIGNwdV90b19ub2RlX21hcFtjcHVdOwotCWVsc2UgaWYgKHBlcl9jcHVfb2Zmc2V0KGNwdSkpCi0JCXJldHVybiBwZXJfY3B1KHg4Nl9jcHVfdG9fbm9kZV9tYXAsIGNwdSk7Ci0JZWxzZQotCQlyZXR1cm4gTlVNQV9OT19OT0RFOwotfQotI2Vsc2UKLSNkZWZpbmUJZWFybHlfY3B1X3RvX25vZGUoY3B1KQljcHVfdG9fbm9kZShjcHUpCi0jZW5kaWYKKy8qIE1hcHBpbmdzIGJldHdlZW4gbG9naWNhbCBjcHUgbnVtYmVyIGFuZCBub2RlIG51bWJlciAqLworREVDTEFSRV9FQVJMWV9QRVJfQ1BVKGludCwgeDg2X2NwdV90b19ub2RlX21hcCk7CiAKKy8qIFJldHVybnMgdGhlIG51bWJlciBvZiB0aGUgY3VycmVudCBOb2RlLiAqLworI2RlZmluZSBudW1hX25vZGVfaWQoKQkJcmVhZF9wZGEobm9kZW51bWJlcikKKworI2lmZGVmIENPTkZJR19ERUJVR19QRVJfQ1BVX01BUFMKK2V4dGVybiBpbnQgY3B1X3RvX25vZGUoaW50IGNwdSk7CitleHRlcm4gaW50IGVhcmx5X2NwdV90b19ub2RlKGludCBjcHUpOworZXh0ZXJuIGNvbnN0IGNwdW1hc2tfdCAqX25vZGVfdG9fY3B1bWFza19wdHIoaW50IG5vZGUpOworZXh0ZXJuIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpOworCisjZWxzZQkvKiAhQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUyAqLworCisvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIG5vZGUgY29udGFpbmluZyBDUFUgJ2NwdScgKi8KIHN0YXRpYyBpbmxpbmUgaW50IGNwdV90b19ub2RlKGludCBjcHUpCiB7Ci0jaWZkZWYgQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUwotCWlmICh4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cikgewotCQlwcmludGsoIktFUk5fTk9USUNFIGNwdV90b19ub2RlKCVkKTogdXNhZ2UgdG9vIGVhcmx5IVxuIiwKLQkJICAgICAgIChpbnQpY3B1KTsKLQkJZHVtcF9zdGFjaygpOwotCQlyZXR1cm4gKChpbnQgKil4ODZfY3B1X3RvX25vZGVfbWFwX2Vhcmx5X3B0cilbY3B1XTsKLQl9Ci0jZW5kaWYKIAlyZXR1cm4gcGVyX2NwdSh4ODZfY3B1X3RvX25vZGVfbWFwLCBjcHUpOwogfQogCi0jaWZkZWYJQ09ORklHX05VTUEKKy8qIFNhbWUgZnVuY3Rpb24gYnV0IHVzZWQgaWYgY2FsbGVkIGJlZm9yZSBwZXJfY3B1IGFyZWFzIGFyZSBzZXR1cCAqLworc3RhdGljIGlubGluZSBpbnQgZWFybHlfY3B1X3RvX25vZGUoaW50IGNwdSkKK3sKKwlpZiAoZWFybHlfcGVyX2NwdV9wdHIoeDg2X2NwdV90b19ub2RlX21hcCkpCisJCXJldHVybiBlYXJseV9wZXJfY3B1X3B0cih4ODZfY3B1X3RvX25vZGVfbWFwKVtjcHVdOworCisJcmV0dXJuIHBlcl9jcHUoeDg2X2NwdV90b19ub2RlX21hcCwgY3B1KTsKK30KIAogLyogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGNwdW1hc2sgb2YgQ1BVcyBvbiBOb2RlICdub2RlJy4gKi8KK3N0YXRpYyBpbmxpbmUgY29uc3QgY3B1bWFza190ICpfbm9kZV90b19jcHVtYXNrX3B0cihpbnQgbm9kZSkKK3sKKwlyZXR1cm4gJm5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV07Cit9CisKKy8qIFJldHVybnMgYSBiaXRtYXNrIG9mIENQVXMgb24gTm9kZSAnbm9kZScuICovCitzdGF0aWMgaW5saW5lIGNwdW1hc2tfdCBub2RlX3RvX2NwdW1hc2soaW50IG5vZGUpCit7CisJcmV0dXJuIG5vZGVfdG9fY3B1bWFza19tYXBbbm9kZV07Cit9CisKKyNlbmRpZiAvKiAhQ09ORklHX0RFQlVHX1BFUl9DUFVfTUFQUyAqLworCisvKiBSZXBsYWNlIGRlZmF1bHQgbm9kZV90b19jcHVtYXNrX3B0ciB3aXRoIG9wdGltaXplZCB2ZXJzaW9uICovCiAjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHIodiwgbm9kZSkJCVwKLQkJY3B1bWFza190ICp2ID0gJihub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdKQorCQljb25zdCBjcHVtYXNrX3QgKnYgPSBfbm9kZV90b19jcHVtYXNrX3B0cihub2RlKQogCiAjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHJfbmV4dCh2LCBub2RlKQlcCi0JCQkgICB2ID0gJihub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdKQotI2VuZGlmCisJCQkgICB2ID0gX25vZGVfdG9fY3B1bWFza19wdHIobm9kZSkKIAogI2VuZGlmIC8qIENPTkZJR19YODZfNjQgKi8KIApAQCAtMTE3LDIwICsxMzEsNiBAQAogICovCiAjZGVmaW5lIHBhcmVudF9ub2RlKG5vZGUpIChub2RlKQogCi0vKiBSZXR1cm5zIGEgYml0bWFzayBvZiBDUFVzIG9uIE5vZGUgJ25vZGUnLiAqLwotc3RhdGljIGlubGluZSBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQotewotCXJldHVybiBub2RlX3RvX2NwdW1hc2tfbWFwW25vZGVdOwotfQotCi0vKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdGhlIGZpcnN0IENQVSBvbiBOb2RlICdub2RlJy4gKi8KLXN0YXRpYyBpbmxpbmUgaW50IG5vZGVfdG9fZmlyc3RfY3B1KGludCBub2RlKQotewotCWNwdW1hc2tfdCBtYXNrID0gbm9kZV90b19jcHVtYXNrKG5vZGUpOwotCi0JcmV0dXJuIGZpcnN0X2NwdShtYXNrKTsKLX0KLQogI2RlZmluZSBwY2lidXNfdG9fbm9kZShidXMpIF9fcGNpYnVzX3RvX25vZGUoYnVzKQogI2RlZmluZSBwY2lidXNfdG9fY3B1bWFzayhidXMpIF9fcGNpYnVzX3RvX2NwdW1hc2soYnVzKQogCkBAIC0xODAsMTIgKzE4MCw0NCBAQAogI2RlZmluZSBub2RlX2Rpc3RhbmNlKGEsIGIpIF9fbm9kZV9kaXN0YW5jZShhLCBiKQogI2VuZGlmCiAKLSNlbHNlIC8qIENPTkZJR19OVU1BICovCisjZWxzZSAvKiAhQ09ORklHX05VTUEgKi8KIAorI2RlZmluZSBudW1hX25vZGVfaWQoKQkJMAorI2RlZmluZQljcHVfdG9fbm9kZShjcHUpCTAKKyNkZWZpbmUJZWFybHlfY3B1X3RvX25vZGUoY3B1KQkwCisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY3B1bWFza190ICpfbm9kZV90b19jcHVtYXNrX3B0cihpbnQgbm9kZSkKK3sKKwlyZXR1cm4gJmNwdV9vbmxpbmVfbWFwOworfQorc3RhdGljIGlubGluZSBjcHVtYXNrX3Qgbm9kZV90b19jcHVtYXNrKGludCBub2RlKQoreworCXJldHVybiBjcHVfb25saW5lX21hcDsKK30KK3N0YXRpYyBpbmxpbmUgaW50IG5vZGVfdG9fZmlyc3RfY3B1KGludCBub2RlKQoreworCXJldHVybiBmaXJzdF9jcHUoY3B1X29ubGluZV9tYXApOworfQorCisvKiBSZXBsYWNlIGRlZmF1bHQgbm9kZV90b19jcHVtYXNrX3B0ciB3aXRoIG9wdGltaXplZCB2ZXJzaW9uICovCisjZGVmaW5lIG5vZGVfdG9fY3B1bWFza19wdHIodiwgbm9kZSkJCVwKKwkJY29uc3QgY3B1bWFza190ICp2ID0gX25vZGVfdG9fY3B1bWFza19wdHIobm9kZSkKKworI2RlZmluZSBub2RlX3RvX2NwdW1hc2tfcHRyX25leHQodiwgbm9kZSkJXAorCQkJICAgdiA9IF9ub2RlX3RvX2NwdW1hc2tfcHRyKG5vZGUpCiAjZW5kaWYKIAogI2luY2x1ZGUgPGFzbS1nZW5lcmljL3RvcG9sb2d5Lmg+CiAKKyNpZmRlZiBDT05GSUdfTlVNQQorLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHRoZSBmaXJzdCBDUFUgb24gTm9kZSAnbm9kZScuICovCitzdGF0aWMgaW5saW5lIGludCBub2RlX3RvX2ZpcnN0X2NwdShpbnQgbm9kZSkKK3sKKwlub2RlX3RvX2NwdW1hc2tfcHRyKG1hc2ssIG5vZGUpOworCXJldHVybiBmaXJzdF9jcHUoKm1hc2spOworfQorI2VuZGlmCisKIGV4dGVybiBjcHVtYXNrX3QgY3B1X2NvcmVncm91cF9tYXAoaW50IGNwdSk7CiAKICNpZmRlZiBFTkFCTEVfVE9QT19ERUZJTkVTCkBAIC0xOTMsNiArMjI1LDkgQEAKICNkZWZpbmUgdG9wb2xvZ3lfY29yZV9pZChjcHUpCQkJKGNwdV9kYXRhKGNwdSkuY3B1X2NvcmVfaWQpCiAjZGVmaW5lIHRvcG9sb2d5X2NvcmVfc2libGluZ3MoY3B1KQkJKHBlcl9jcHUoY3B1X2NvcmVfbWFwLCBjcHUpKQogI2RlZmluZSB0b3BvbG9neV90aHJlYWRfc2libGluZ3MoY3B1KQkJKHBlcl9jcHUoY3B1X3NpYmxpbmdfbWFwLCBjcHUpKQorCisvKiBpbmRpY2F0ZXMgdGhhdCBwb2ludGVycyB0byB0aGUgdG9wb2xvZ3kgY3B1bWFza190IG1hcHMgYXJlIHZhbGlkICovCisjZGVmaW5lIGFyY2hfcHJvdmlkZXNfdG9wb2xvZ3lfcG9pbnRlcnMJCXllcwogI2VuZGlmCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX2ZpeF9waHlzX3BhY2thZ2VfaWQoaW50IG51bSwgdTMyIHNsb3QpCkBAIC0yMjAsNCArMjU1LDQgQEAKIH0KICNlbmRpZgogCi0jZW5kaWYKKyNlbmRpZiAvKiBfQVNNX1g4Nl9UT1BPTE9HWV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdHNjLmggYi9pbmNsdWRlL2FzbS14ODYvdHNjLmgKaW5kZXggNTQ4ODczYS4uY2I2ZjZlZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3RzYy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni90c2MuaApAQCAtNDgsNyArNDgsNiBAQAogZXh0ZXJuIHZvaWQgdHNjX2luaXQodm9pZCk7CiBleHRlcm4gdm9pZCBtYXJrX3RzY191bnN0YWJsZShjaGFyICpyZWFzb24pOwogZXh0ZXJuIGludCB1bnN5bmNocm9uaXplZF90c2Modm9pZCk7Ci1leHRlcm4gdm9pZCBpbml0X3RzY19jbG9ja3NvdXJjZSh2b2lkKTsKIGludCBjaGVja190c2NfdW5zdGFibGUodm9pZCk7CiAKIC8qCkBAIC01OCw3ICs1Nyw2IEBACiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY19zb3VyY2UoaW50IGNwdSk7CiBleHRlcm4gdm9pZCBjaGVja190c2Nfc3luY190YXJnZXQodm9pZCk7CiAKLWV4dGVybiB2b2lkIHRzY19jYWxpYnJhdGUodm9pZCk7CiBleHRlcm4gaW50IG5vdHNjX3NldHVwKGNoYXIgKik7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3MuaCBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmgKaW5kZXggOWZlZmQyOS4uZjZmYTRkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3MuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzcy5oCkBAIC0xLDUgKzEsNDUzIEBACisjaWZuZGVmIF9BU01fVUFDQ0VTX0hfCisjZGVmaW5lIF9BU01fVUFDQ0VTX0hfCisvKgorICogVXNlciBzcGFjZSBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucworICovCisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorI2luY2x1ZGUgPGxpbnV4L3RocmVhZF9pbmZvLmg+CisjaW5jbHVkZSA8bGludXgvcHJlZmV0Y2guaD4KKyNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KKyNpbmNsdWRlIDxhc20vYXNtLmg+CisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKworI2RlZmluZSBWRVJJRllfUkVBRCAwCisjZGVmaW5lIFZFUklGWV9XUklURSAxCisKKy8qCisgKiBUaGUgZnMgdmFsdWUgZGV0ZXJtaW5lcyB3aGV0aGVyIGFyZ3VtZW50IHZhbGlkaXR5IGNoZWNraW5nIHNob3VsZCBiZQorICogcGVyZm9ybWVkIG9yIG5vdC4gIElmIGdldF9mcygpID09IFVTRVJfRFMsIGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgd2l0aAorICogZ2V0X2ZzKCkgPT0gS0VSTkVMX0RTLCBjaGVja2luZyBpcyBieXBhc3NlZC4KKyAqCisgKiBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCB0aGVzZSBtYWNyb3MgYXJlIGdyb3NzbHkgbWlzbmFtZWQuCisgKi8KKworI2RlZmluZSBNQUtFX01NX1NFRyhzKQkoKG1tX3NlZ21lbnRfdCkgeyAocykgfSkKKworI2RlZmluZSBLRVJORUxfRFMJTUFLRV9NTV9TRUcoLTFVTCkKKyNkZWZpbmUgVVNFUl9EUwkJTUFLRV9NTV9TRUcoUEFHRV9PRkZTRVQpCisKKyNkZWZpbmUgZ2V0X2RzKCkJKEtFUk5FTF9EUykKKyNkZWZpbmUgZ2V0X2ZzKCkJKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdCkKKyNkZWZpbmUgc2V0X2ZzKHgpCShjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQgPSAoeCkpCisKKyNkZWZpbmUgc2VnbWVudF9lcShhLCBiKQkoKGEpLnNlZyA9PSAoYikuc2VnKQorCisjZGVmaW5lIF9fYWRkcl9vayhhZGRyKQkJCQkJXAorCSgodW5zaWduZWQgbG9uZyBfX2ZvcmNlKShhZGRyKSA8CQlcCisJIChjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQuc2VnKSkKKworLyoKKyAqIFRlc3Qgd2hldGhlciBhIGJsb2NrIG9mIG1lbW9yeSBpcyBhIHZhbGlkIHVzZXIgc3BhY2UgYWRkcmVzcy4KKyAqIFJldHVybnMgMCBpZiB0aGUgcmFuZ2UgaXMgdmFsaWQsIG5vbnplcm8gb3RoZXJ3aXNlLgorICoKKyAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5nIHRlc3Q6CisgKiAodTMzKWFkZHIgKyAodTMzKXNpemUgPj0gKHUzMyljdXJyZW50LT5hZGRyX2xpbWl0LnNlZyAodTY1IGZvciB4ODZfNjQpCisgKgorICogVGhpcyBuZWVkcyAzMy1iaXQgKDY1LWJpdCBmb3IgeDg2XzY0KSBhcml0aG1ldGljLiBXZSBoYXZlIGEgY2FycnkuLi4KKyAqLworCisjZGVmaW5lIF9fcmFuZ2Vfbm90X29rKGFkZHIsIHNpemUpCQkJCQlcCisoewkJCQkJCQkJCVwKKwl1bnNpZ25lZCBsb25nIGZsYWcsIHJva3N1bTsJCQkJCVwKKwlfX2Noa191c2VyX3B0cihhZGRyKTsJCQkJCQlcCisJYXNtKCJhZGQgJTMsJTEgOyBzYmIgJTAsJTAgOyBjbXAgJTEsJTQgOyBzYmIgJDAsJTAiCQlcCisJICAgIDogIj0mciIgKGZsYWcpLCAiPXIiIChyb2tzdW0pCQkJCVwKKwkgICAgOiAiMSIgKGFkZHIpLCAiZyIgKChsb25nKShzaXplKSksCQkJCVwKKwkgICAgICAicm0iIChjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQuc2VnKSk7CQlcCisJZmxhZzsJCQkJCQkJCVwKK30pCisKKy8qKgorICogYWNjZXNzX29rOiAtIENoZWNrcyBpZiBhIHVzZXIgc3BhY2UgcG9pbnRlciBpcyB2YWxpZAorICogQHR5cGU6IFR5cGUgb2YgYWNjZXNzOiAlVkVSSUZZX1JFQUQgb3IgJVZFUklGWV9XUklURS4gIE5vdGUgdGhhdAorICogICAgICAgICVWRVJJRllfV1JJVEUgaXMgYSBzdXBlcnNldCBvZiAlVkVSSUZZX1JFQUQgLSBpZiBpdCBpcyBzYWZlCisgKiAgICAgICAgdG8gd3JpdGUgdG8gYSBibG9jaywgaXQgaXMgYWx3YXlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgorICogQGFkZHI6IFVzZXIgc3BhY2UgcG9pbnRlciB0byBzdGFydCBvZiBibG9jayB0byBjaGVjaworICogQHNpemU6IFNpemUgb2YgYmxvY2sgdG8gY2hlY2sKKyAqCisgKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgorICoKKyAqIENoZWNrcyBpZiBhIHBvaW50ZXIgdG8gYSBibG9jayBvZiBtZW1vcnkgaW4gdXNlciBzcGFjZSBpcyB2YWxpZC4KKyAqCisgKiBSZXR1cm5zIHRydWUgKG5vbnplcm8pIGlmIHRoZSBtZW1vcnkgYmxvY2sgbWF5IGJlIHZhbGlkLCBmYWxzZSAoemVybykKKyAqIGlmIGl0IGlzIGRlZmluaXRlbHkgaW52YWxpZC4KKyAqCisgKiBOb3RlIHRoYXQsIGRlcGVuZGluZyBvbiBhcmNoaXRlY3R1cmUsIHRoaXMgZnVuY3Rpb24gcHJvYmFibHkganVzdAorICogY2hlY2tzIHRoYXQgdGhlIHBvaW50ZXIgaXMgaW4gdGhlIHVzZXIgc3BhY2UgcmFuZ2UgLSBhZnRlciBjYWxsaW5nCisgKiB0aGlzIGZ1bmN0aW9uLCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyBtYXkgc3RpbGwgcmV0dXJuIC1FRkFVTFQuCisgKi8KKyNkZWZpbmUgYWNjZXNzX29rKHR5cGUsIGFkZHIsIHNpemUpIChsaWtlbHkoX19yYW5nZV9ub3Rfb2soYWRkciwgc2l6ZSkgPT0gMCkpCisKKy8qCisgKiBUaGUgZXhjZXB0aW9uIHRhYmxlIGNvbnNpc3RzIG9mIHBhaXJzIG9mIGFkZHJlc3NlczogdGhlIGZpcnN0IGlzIHRoZQorICogYWRkcmVzcyBvZiBhbiBpbnN0cnVjdGlvbiB0aGF0IGlzIGFsbG93ZWQgdG8gZmF1bHQsIGFuZCB0aGUgc2Vjb25kIGlzCisgKiB0aGUgYWRkcmVzcyBhdCB3aGljaCB0aGUgcHJvZ3JhbSBzaG91bGQgY29udGludWUuICBObyByZWdpc3RlcnMgYXJlCisgKiBtb2RpZmllZCwgc28gaXQgaXMgZW50aXJlbHkgdXAgdG8gdGhlIGNvbnRpbnVhdGlvbiBjb2RlIHRvIGZpZ3VyZSBvdXQKKyAqIHdoYXQgdG8gZG8uCisgKgorICogQWxsIHRoZSByb3V0aW5lcyBiZWxvdyB1c2UgYml0cyBvZiBmaXh1cCBjb2RlIHRoYXQgYXJlIG91dCBvZiBsaW5lCisgKiB3aXRoIHRoZSBtYWluIGluc3RydWN0aW9uIHBhdGguICBUaGlzIG1lYW5zIHdoZW4gZXZlcnl0aGluZyBpcyB3ZWxsLAorICogd2UgZG9uJ3QgZXZlbiBoYXZlIHRvIGp1bXAgb3ZlciB0aGVtLiAgRnVydGhlciwgdGhleSBkbyBub3QgaW50cnVkZQorICogb24gb3VyIGNhY2hlIG9yIHRsYiBlbnRyaWVzLgorICovCisKK3N0cnVjdCBleGNlcHRpb25fdGFibGVfZW50cnkgeworCXVuc2lnbmVkIGxvbmcgaW5zbiwgZml4dXA7Cit9OworCitleHRlcm4gaW50IGZpeHVwX2V4Y2VwdGlvbihzdHJ1Y3QgcHRfcmVncyAqcmVncyk7CisKKy8qCisgKiBUaGVzZSBhcmUgdGhlIG1haW4gc2luZ2xlLXZhbHVlIHRyYW5zZmVyIHJvdXRpbmVzLiAgVGhleSBhdXRvbWF0aWNhbGx5CisgKiB1c2UgdGhlIHJpZ2h0IHNpemUgaWYgd2UganVzdCBoYXZlIHRoZSByaWdodCBwb2ludGVyIHR5cGUuCisgKgorICogVGhpcyBnZXRzIGtpbmQgb2YgdWdseS4gV2Ugd2FudCB0byByZXR1cm4gX3R3b18gdmFsdWVzIGluICJnZXRfdXNlcigpIgorICogYW5kIHlldCB3ZSBkb24ndCB3YW50IHRvIGRvIGFueSBwb2ludGVycywgYmVjYXVzZSB0aGF0IGlzIHRvbyBtdWNoCisgKiBvZiBhIHBlcmZvcm1hbmNlIGltcGFjdC4gVGh1cyB3ZSBoYXZlIGEgZmV3IHJhdGhlciB1Z2x5IG1hY3JvcyBoZXJlLAorICogYW5kIGhpZGUgYWxsIHRoZSB1Z2xpbmVzcyBmcm9tIHRoZSB1c2VyLgorICoKKyAqIFRoZSAiX194eHgiIHZlcnNpb25zIG9mIHRoZSB1c2VyIGFjY2VzcyBmdW5jdGlvbnMgYXJlIHZlcnNpb25zIHRoYXQKKyAqIGRvIG5vdCB2ZXJpZnkgdGhlIGFkZHJlc3Mgc3BhY2UsIHRoYXQgbXVzdCBoYXZlIGJlZW4gZG9uZSBwcmV2aW91c2x5CisgKiB3aXRoIGEgc2VwYXJhdGUgImFjY2Vzc19vaygpIiBjYWxsICh0aGlzIGlzIHVzZWQgd2hlbiB3ZSBkbyBtdWx0aXBsZQorICogYWNjZXNzZXMgdG8gdGhlIHNhbWUgYXJlYSBvZiB1c2VyIG1lbW9yeSkuCisgKi8KKworZXh0ZXJuIGludCBfX2dldF91c2VyXzEodm9pZCk7CitleHRlcm4gaW50IF9fZ2V0X3VzZXJfMih2b2lkKTsKK2V4dGVybiBpbnQgX19nZXRfdXNlcl80KHZvaWQpOworZXh0ZXJuIGludCBfX2dldF91c2VyXzgodm9pZCk7CitleHRlcm4gaW50IF9fZ2V0X3VzZXJfYmFkKHZvaWQpOworCisjZGVmaW5lIF9fZ2V0X3VzZXJfeChzaXplLCByZXQsIHgsIHB0cikJCSAgICAgIFwKKwlhc20gdm9sYXRpbGUoImNhbGwgX19nZXRfdXNlcl8iICNzaXplCSAgICAgIFwKKwkJICAgICA6ICI9YSIgKHJldCksIj1kIiAoeCkJICAgICAgXAorCQkgICAgIDogIjAiIChwdHIpKQkJICAgICAgXAorCisvKiBDYXJlZnVsOiB3ZSBoYXZlIHRvIGNhc3QgdGhlIHJlc3VsdCB0byB0aGUgdHlwZSBvZiB0aGUgcG9pbnRlcgorICogZm9yIHNpZ24gcmVhc29ucyAqLworCisvKioKKyAqIGdldF91c2VyOiAtIEdldCBhIHNpbXBsZSB2YXJpYWJsZSBmcm9tIHVzZXIgc3BhY2UuCisgKiBAeDogICBWYXJpYWJsZSB0byBzdG9yZSByZXN1bHQuCisgKiBAcHRyOiBTb3VyY2UgYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KKyAqCisgKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgorICoKKyAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YXJpYWJsZSBmcm9tIHVzZXIgc3BhY2UgdG8ga2VybmVsCisgKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKKyAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KKyAqCisgKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgdGhlIHJlc3VsdCBvZgorICogZGVyZWZlcmVuY2luZyBAcHRyIG11c3QgYmUgYXNzaWduYWJsZSB0byBAeCB3aXRob3V0IGEgY2FzdC4KKyAqCisgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KKyAqIE9uIGVycm9yLCB0aGUgdmFyaWFibGUgQHggaXMgc2V0IHRvIHplcm8uCisgKi8KKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIF9fZ2V0X3VzZXJfOChfX3JldF9ndSwgX192YWxfZ3UsIHB0cikJCQkJXAorCQlfX2dldF91c2VyX3goWCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpCisjZWxzZQorI2RlZmluZSBfX2dldF91c2VyXzgoX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpCQkJCVwKKwkJX19nZXRfdXNlcl94KDgsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKQorI2VuZGlmCisKKyNkZWZpbmUgZ2V0X3VzZXIoeCwgcHRyKQkJCQkJCVwKKyh7CQkJCQkJCQkJXAorCWludCBfX3JldF9ndTsJCQkJCQkJXAorCXVuc2lnbmVkIGxvbmcgX192YWxfZ3U7CQkJCQkJXAorCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAorCXN3aXRjaCAoc2l6ZW9mKCoocHRyKSkpIHsJCQkJCVwKKwljYXNlIDE6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfeCgxLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSAyOgkJCQkJCQkJXAorCQlfX2dldF91c2VyX3goMiwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgNDoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl94KDQsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDg6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfOChfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQkJXAorCQlicmVhazsJCQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJCVwKKwkJX19nZXRfdXNlcl94KFgsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKKwkJYnJlYWs7CQkJCQkJCVwKKwl9CQkJCQkJCQlcCisJKHgpID0gKF9fdHlwZW9mX18oKihwdHIpKSlfX3ZhbF9ndTsJCQkJXAorCV9fcmV0X2d1OwkJCQkJCQlcCit9KQorCisjZGVmaW5lIF9fcHV0X3VzZXJfeChzaXplLCB4LCBwdHIsIF9fcmV0X3B1KQkJCVwKKwlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl8iICNzaXplIDogIj1hIiAoX19yZXRfcHUpCVwKKwkJICAgICA6IjAiICgodHlwZW9mKCoocHRyKSkpKHgpKSwgImMiIChwdHIpIDogImVieCIpCisKKworCisjaWZkZWYgQ09ORklHX1g4Nl8zMgorI2RlZmluZSBfX3B1dF91c2VyX3U2NCh4LCBhZGRyLCBlcnIpCQkJCQlcCisJYXNtIHZvbGF0aWxlKCIxOgltb3ZsICUlZWF4LDAoJTIpXG4iCQkJXAorCQkgICAgICIyOgltb3ZsICUlZWR4LDQoJTIpXG4iCQkJXAorCQkgICAgICIzOlxuIgkJCQkJCVwKKwkJICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcCisJCSAgICAgIjQ6CW1vdmwgJTMsJTBcbiIJCQkJXAorCQkgICAgICIJam1wIDNiXG4iCQkJCQlcCisJCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAorCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgNGIpCQkJCVwKKwkJICAgICBfQVNNX0VYVEFCTEUoMmIsIDRiKQkJCQlcCisJCSAgICAgOiAiPXIiIChlcnIpCQkJCQlcCisJCSAgICAgOiAiQSIgKHgpLCAiciIgKGFkZHIpLCAiaSIgKC1FRkFVTFQpLCAiMCIgKGVycikpCisKKyNkZWZpbmUgX19wdXRfdXNlcl94OCh4LCBwdHIsIF9fcmV0X3B1KQkJCQlcCisJYXNtIHZvbGF0aWxlKCJjYWxsIF9fcHV0X3VzZXJfOCIgOiAiPWEiIChfX3JldF9wdSkJXAorCQkgICAgIDogIkEiICgodHlwZW9mKCoocHRyKSkpKHgpKSwgImMiIChwdHIpIDogImVieCIpCisjZWxzZQorI2RlZmluZSBfX3B1dF91c2VyX3U2NCh4LCBwdHIsIHJldHZhbCkgXAorCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAicSIsICIiLCAiWnIiLCAtRUZBVUxUKQorI2RlZmluZSBfX3B1dF91c2VyX3g4KHgsIHB0ciwgX19yZXRfcHUpIF9fcHV0X3VzZXJfeCg4LCB4LCBwdHIsIF9fcmV0X3B1KQorI2VuZGlmCisKK2V4dGVybiB2b2lkIF9fcHV0X3VzZXJfYmFkKHZvaWQpOworCisvKgorICogU3RyYW5nZSBtYWdpYyBjYWxsaW5nIGNvbnZlbnRpb246IHBvaW50ZXIgaW4gJWVjeCwKKyAqIHZhbHVlIGluICVlYXgoOiVlZHgpLCByZXR1cm4gdmFsdWUgaW4gJWVheC4gY2xvYmJlcnMgJXJieAorICovCitleHRlcm4gdm9pZCBfX3B1dF91c2VyXzEodm9pZCk7CitleHRlcm4gdm9pZCBfX3B1dF91c2VyXzIodm9pZCk7CitleHRlcm4gdm9pZCBfX3B1dF91c2VyXzQodm9pZCk7CitleHRlcm4gdm9pZCBfX3B1dF91c2VyXzgodm9pZCk7CisKKyNpZmRlZiBDT05GSUdfWDg2X1dQX1dPUktTX09LCisKKy8qKgorICogcHV0X3VzZXI6IC0gV3JpdGUgYSBzaW1wbGUgdmFsdWUgaW50byB1c2VyIHNwYWNlLgorICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgorICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KKyAqCisgKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgorICoKKyAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCisgKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKKyAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KKyAqCisgKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCisgKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KKyAqCisgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KKyAqLworI2RlZmluZSBwdXRfdXNlcih4LCBwdHIpCQkJCQlcCisoewkJCQkJCQkJXAorCWludCBfX3JldF9wdTsJCQkJCQlcCisJX190eXBlb2ZfXygqKHB0cikpIF9fcHVfdmFsOwkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCVwKKwlfX3B1X3ZhbCA9IHg7CQkJCQkJXAorCXN3aXRjaCAoc2l6ZW9mKCoocHRyKSkpIHsJCQkJXAorCWNhc2UgMToJCQkJCQkJXAorCQlfX3B1dF91c2VyX3goMSwgX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwlcCisJCWJyZWFrOwkJCQkJCVwKKwljYXNlIDI6CQkJCQkJCVwKKwkJX19wdXRfdXNlcl94KDIsIF9fcHVfdmFsLCBwdHIsIF9fcmV0X3B1KTsJXAorCQlicmVhazsJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQlcCisJCV9fcHV0X3VzZXJfeCg0LCBfX3B1X3ZhbCwgcHRyLCBfX3JldF9wdSk7CVwKKwkJYnJlYWs7CQkJCQkJXAorCWNhc2UgODoJCQkJCQkJXAorCQlfX3B1dF91c2VyX3g4KF9fcHVfdmFsLCBwdHIsIF9fcmV0X3B1KTsJCVwKKwkJYnJlYWs7CQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJXAorCQlfX3B1dF91c2VyX3goWCwgX19wdV92YWwsIHB0ciwgX19yZXRfcHUpOwlcCisJCWJyZWFrOwkJCQkJCVwKKwl9CQkJCQkJCVwKKwlfX3JldF9wdTsJCQkJCQlcCit9KQorCisjZGVmaW5lIF9fcHV0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCwgZXJycmV0KQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJcmV0dmFsID0gMDsJCQkJCQkJXAorCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAorCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCisJY2FzZSAxOgkJCQkJCQkJXAorCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICJpcSIsIGVycnJldCk7CVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDI6CQkJCQkJCQlcCisJCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgImlyIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgNDoJCQkJCQkJCVwKKwkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgImsiLCAgImlyIiwgZXJycmV0KTtcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA4OgkJCQkJCQkJXAorCQlfX3B1dF91c2VyX3U2NCgoX190eXBlb2ZfXygqcHRyKSkoeCksIHB0ciwgcmV0dmFsKTsJXAorCQlicmVhazsJCQkJCQkJXAorCWRlZmF1bHQ6CQkJCQkJCVwKKwkJX19wdXRfdXNlcl9iYWQoKTsJCQkJCVwKKwl9CQkJCQkJCQlcCit9IHdoaWxlICgwKQorCisjZWxzZQorCisjZGVmaW5lIF9fcHV0X3VzZXJfc2l6ZSh4LCBwdHIsIHNpemUsIHJldHZhbCwgZXJycmV0KQkJCVwKK2RvIHsJCQkJCQkJCQlcCisJX190eXBlb2ZfXygqKHB0cikpX19wdXNfdG1wID0geDsJCQkJXAorCXJldHZhbCA9IDA7CQkJCQkJCVwKKwkJCQkJCQkJCVwKKwlpZiAodW5saWtlbHkoX19jb3B5X3RvX3VzZXJfbGwocHRyLCAmX19wdXNfdG1wLCBzaXplKSAhPSAwKSkJXAorCQlyZXR2YWwgPSBlcnJyZXQ7CQkJCQlcCit9IHdoaWxlICgwKQorCisjZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCVwKKyh7CQkJCQkJCQlcCisJaW50IF9fcmV0X3B1OwkJCQkJCVwKKwlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCVwKKwlfX3JldF9wdSA9IDA7CQkJCQkJXAorCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsCQlcCisJCQkJICAgICAgIHNpemVvZigqKHB0cikpKSAhPSAwKSkJXAorCQlfX3JldF9wdSA9IC1FRkFVTFQ7CQkJCVwKKwlfX3JldF9wdTsJCQkJCQlcCit9KQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfWDg2XzMyCisjZGVmaW5lIF9fZ2V0X3VzZXJfYXNtX3U2NCh4LCBwdHIsIHJldHZhbCwgZXJycmV0KQkoeCkgPSBfX2dldF91c2VyX2JhZCgpCisjZWxzZQorI2RlZmluZSBfX2dldF91c2VyX2FzbV91NjQoeCwgcHRyLCByZXR2YWwsIGVycnJldCkgXAorCSBfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInEiLCAiIiwgIj1yIiwgZXJycmV0KQorI2VuZGlmCisKKyNkZWZpbmUgX19nZXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAorZG8gewkJCQkJCQkJCVwKKwlyZXR2YWwgPSAwOwkJCQkJCQlcCisJX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCisJc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKKwljYXNlIDE6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgIj1xIiwgZXJycmV0KTsJXAorCQlicmVhazsJCQkJCQkJXAorCWNhc2UgMjoJCQkJCQkJCVwKKwkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiPXIiLCBlcnJyZXQpOwlcCisJCWJyZWFrOwkJCQkJCQlcCisJY2FzZSA0OgkJCQkJCQkJXAorCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiayIsICI9ciIsIGVycnJldCk7CVwKKwkJYnJlYWs7CQkJCQkJCVwKKwljYXNlIDg6CQkJCQkJCQlcCisJCV9fZ2V0X3VzZXJfYXNtX3U2NCh4LCBwdHIsIHJldHZhbCwgZXJycmV0KTsJCVwKKwkJYnJlYWs7CQkJCQkJCVwKKwlkZWZhdWx0OgkJCQkJCQlcCisJCSh4KSA9IF9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCisJfQkJCQkJCQkJXAorfSB3aGlsZSAoMCkKKworI2RlZmluZSBfX2dldF91c2VyX2FzbSh4LCBhZGRyLCBlcnIsIGl0eXBlLCBydHlwZSwgbHR5cGUsIGVycnJldCkJXAorCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlMiwlInJ0eXBlIjFcbiIJCVwKKwkJICAgICAiMjpcbiIJCQkJCQlcCisJCSAgICAgIi5zZWN0aW9uIC5maXh1cCxcImF4XCJcbiIJCQkJXAorCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAorCQkgICAgICIJeG9yIml0eXBlIiAlInJ0eXBlIjEsJSJydHlwZSIxXG4iCQlcCisJCSAgICAgIglqbXAgMmJcbiIJCQkJCVwKKwkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCisJCSAgICAgX0FTTV9FWFRBQkxFKDFiLCAzYikJCQkJXAorCQkgICAgIDogIj1yIiAoZXJyKSwgbHR5cGUoeCkJCQkJXAorCQkgICAgIDogIm0iIChfX20oYWRkcikpLCAiaSIgKGVycnJldCksICIwIiAoZXJyKSkKKworI2RlZmluZSBfX3B1dF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCVwKKyh7CQkJCQkJCQlcCisJbG9uZyBfX3B1X2VycjsJCQkJCQlcCisJX19wdXRfdXNlcl9zaXplKCh4KSwgKHB0ciksIChzaXplKSwgX19wdV9lcnIsIC1FRkFVTFQpOwlcCisJX19wdV9lcnI7CQkJCQkJXAorfSkKKworI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJCQlcCisoewkJCQkJCQkJCVwKKwlsb25nIF9fZ3VfZXJyOwkJCQkJCQlcCisJdW5zaWduZWQgbG9uZyBfX2d1X3ZhbDsJCQkJCQlcCisJX19nZXRfdXNlcl9zaXplKF9fZ3VfdmFsLCAocHRyKSwgKHNpemUpLCBfX2d1X2VyciwgLUVGQVVMVCk7CVwKKwkoeCkgPSAoX19mb3JjZSBfX3R5cGVvZl9fKCoocHRyKSkpX19ndV92YWw7CQkJXAorCV9fZ3VfZXJyOwkJCQkJCQlcCit9KQorCisvKiBGSVhNRTogdGhpcyBoYWNrIGlzIGRlZmluaXRlbHkgd3JvbmcgLUFLICovCitzdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1ZlsxMDBdOyB9OworI2RlZmluZSBfX20oeCkgKCooc3RydWN0IF9fbGFyZ2Vfc3RydWN0IF9fdXNlciAqKSh4KSkKKworLyoKKyAqIFRlbGwgZ2NjIHdlIHJlYWQgZnJvbSBtZW1vcnkgaW5zdGVhZCBvZiB3cml0aW5nOiB0aGlzIGlzIGJlY2F1c2UKKyAqIHdlIGRvIG5vdCB3cml0ZSB0byBhbnkgbWVtb3J5IGdjYyBrbm93cyBhYm91dCwgc28gdGhlcmUgYXJlIG5vCisgKiBhbGlhc2luZyBpc3N1ZXMuCisgKi8KKyNkZWZpbmUgX19wdXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJyZXQpCVwKKwlhc20gdm9sYXRpbGUoIjE6CW1vdiJpdHlwZSIgJSJydHlwZSIxLCUyXG4iCQlcCisJCSAgICAgIjI6XG4iCQkJCQkJXAorCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKKwkJICAgICAiMzoJbW92ICUzLCUwXG4iCQkJCVwKKwkJICAgICAiCWptcCAyYlxuIgkJCQkJXAorCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKKwkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCisJCSAgICAgOiAiPXIiKGVycikJCQkJCVwKKwkJICAgICA6IGx0eXBlKHgpLCAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQorLyoqCisgKiBfX2dldF91c2VyOiAtIEdldCBhIHNpbXBsZSB2YXJpYWJsZSBmcm9tIHVzZXIgc3BhY2UsIHdpdGggbGVzcyBjaGVja2luZy4KKyAqIEB4OiAgIFZhcmlhYmxlIHRvIHN0b3JlIHJlc3VsdC4KKyAqIEBwdHI6IFNvdXJjZSBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgorICoKKyAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCisgKgorICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSB0byBrZXJuZWwKKyAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgorICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgorICoKKyAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCB0aGUgcmVzdWx0IG9mCisgKiBkZXJlZmVyZW5jaW5nIEBwdHIgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIEB4IHdpdGhvdXQgYSBjYXN0LgorICoKKyAqIENhbGxlciBtdXN0IGNoZWNrIHRoZSBwb2ludGVyIHdpdGggYWNjZXNzX29rKCkgYmVmb3JlIGNhbGxpbmcgdGhpcworICogZnVuY3Rpb24uCisgKgorICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG9yIC1FRkFVTFQgb24gZXJyb3IuCisgKiBPbiBlcnJvciwgdGhlIHZhcmlhYmxlIEB4IGlzIHNldCB0byB6ZXJvLgorICovCisKKyNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpCQkJCQkJXAorCV9fZ2V0X3VzZXJfbm9jaGVjaygoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKKy8qKgorICogX19wdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UsIHdpdGggbGVzcyBjaGVja2luZy4KKyAqIEB4OiAgIFZhbHVlIHRvIGNvcHkgdG8gdXNlciBzcGFjZS4KKyAqIEBwdHI6IERlc3RpbmF0aW9uIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCisgKgorICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KKyAqCisgKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFsdWUgZnJvbSBrZXJuZWwgc3BhY2UgdG8gdXNlcgorICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCisgKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCisgKgorICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIEB4IG11c3QgYmUgYXNzaWduYWJsZQorICogdG8gdGhlIHJlc3VsdCBvZiBkZXJlZmVyZW5jaW5nIEBwdHIuCisgKgorICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KKyAqLworCisjZGVmaW5lIF9fcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKKwlfX3B1dF91c2VyX25vY2hlY2soKF9fdHlwZW9mX18oKihwdHIpKSkoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKKworI2RlZmluZSBfX2dldF91c2VyX3VuYWxpZ25lZCBfX2dldF91c2VyCisjZGVmaW5lIF9fcHV0X3VzZXJfdW5hbGlnbmVkIF9fcHV0X3VzZXIKKworLyoKKyAqIG1vdnNsIGNhbiBiZSBzbG93IHdoZW4gc291cmNlIGFuZCBkZXN0IGFyZSBub3QgYm90aCA4LWJ5dGUgYWxpZ25lZAorICovCisjaWZkZWYgQ09ORklHX1g4Nl9JTlRFTF9VU0VSQ09QWQorZXh0ZXJuIHN0cnVjdCBtb3ZzbF9tYXNrIHsKKwlpbnQgbWFzazsKK30gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcCBtb3ZzbF9tYXNrOworI2VuZGlmCisKKyNkZWZpbmUgQVJDSF9IQVNfTk9DQUNIRV9VQUNDRVNTIDEKKwogI2lmZGVmIENPTkZJR19YODZfMzIKICMgaW5jbHVkZSAidWFjY2Vzc18zMi5oIgogI2Vsc2UKKyMgZGVmaW5lIEFSQ0hfSEFTX1NFQVJDSF9FWFRBQkxFCiAjIGluY2x1ZGUgInVhY2Nlc3NfNjQuaCIKICNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzMyLmggYi9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc18zMi5oCmluZGV4IDhlNzU5NWMuLjZmZGVmMzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfMzIuaApAQCAtMTEsNDI2ICsxMSw2IEBACiAjaW5jbHVkZSA8YXNtL2FzbS5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKLSNkZWZpbmUgVkVSSUZZX1JFQUQgMAotI2RlZmluZSBWRVJJRllfV1JJVEUgMQotCi0vKgotICogVGhlIGZzIHZhbHVlIGRldGVybWluZXMgd2hldGhlciBhcmd1bWVudCB2YWxpZGl0eSBjaGVja2luZyBzaG91bGQgYmUKLSAqIHBlcmZvcm1lZCBvciBub3QuICBJZiBnZXRfZnMoKSA9PSBVU0VSX0RTLCBjaGVja2luZyBpcyBwZXJmb3JtZWQsIHdpdGgKLSAqIGdldF9mcygpID09IEtFUk5FTF9EUywgY2hlY2tpbmcgaXMgYnlwYXNzZWQuCi0gKgotICogRm9yIGhpc3RvcmljYWwgcmVhc29ucywgdGhlc2UgbWFjcm9zIGFyZSBncm9zc2x5IG1pc25hbWVkLgotICovCi0KLSNkZWZpbmUgTUFLRV9NTV9TRUcocykJKChtbV9zZWdtZW50X3QpIHsgKHMpIH0pCi0KLQotI2RlZmluZSBLRVJORUxfRFMJTUFLRV9NTV9TRUcoMHhGRkZGRkZGRlVMKQotI2RlZmluZSBVU0VSX0RTCQlNQUtFX01NX1NFRyhQQUdFX09GRlNFVCkKLQotI2RlZmluZSBnZXRfZHMoKQkoS0VSTkVMX0RTKQotI2RlZmluZSBnZXRfZnMoKQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0KQotI2RlZmluZSBzZXRfZnMoeCkJKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdCA9ICh4KSkKLQotI2RlZmluZSBzZWdtZW50X2VxKGEsIGIpCSgoYSkuc2VnID09IChiKS5zZWcpCi0KLS8qCi0gKiBtb3ZzbCBjYW4gYmUgc2xvdyB3aGVuIHNvdXJjZSBhbmQgZGVzdCBhcmUgbm90IGJvdGggOC1ieXRlIGFsaWduZWQKLSAqLwotI2lmZGVmIENPTkZJR19YODZfSU5URUxfVVNFUkNPUFkKLWV4dGVybiBzdHJ1Y3QgbW92c2xfbWFzayB7Ci0JaW50IG1hc2s7Ci19IF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXAgbW92c2xfbWFzazsKLSNlbmRpZgotCi0jZGVmaW5lIF9fYWRkcl9vayhhZGRyKQkJCQkJXAotCSgodW5zaWduZWQgbG9uZyBfX2ZvcmNlKShhZGRyKSA8CQlcCi0JIChjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQuc2VnKSkKLQotLyoKLSAqIFRlc3Qgd2hldGhlciBhIGJsb2NrIG9mIG1lbW9yeSBpcyBhIHZhbGlkIHVzZXIgc3BhY2UgYWRkcmVzcy4KLSAqIFJldHVybnMgMCBpZiB0aGUgcmFuZ2UgaXMgdmFsaWQsIG5vbnplcm8gb3RoZXJ3aXNlLgotICoKLSAqIFRoaXMgaXMgZXF1aXZhbGVudCB0byB0aGUgZm9sbG93aW5nIHRlc3Q6Ci0gKiAodTMzKWFkZHIgKyAodTMzKXNpemUgPj0gKHUzMyljdXJyZW50LT5hZGRyX2xpbWl0LnNlZwotICoKLSAqIFRoaXMgbmVlZHMgMzMtYml0IGFyaXRobWV0aWMuIFdlIGhhdmUgYSBjYXJyeS4uLgotICovCi0jZGVmaW5lIF9fcmFuZ2Vfb2soYWRkciwgc2l6ZSkJCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIGZsYWcsIHJva3N1bTsJCQkJCVwKLQlfX2Noa191c2VyX3B0cihhZGRyKTsJCQkJCQlcCi0JYXNtKCJhZGRsICUzLCUxIDsgc2JibCAlMCwlMDsgY21wbCAlMSwlNDsgc2JibCAkMCwlMCIJCVwKLQkgICAgOiI9JnIiIChmbGFnKSwgIj1yIiAocm9rc3VtKQkJCQlcCi0JICAgIDoiMSIgKGFkZHIpLCAiZyIgKChpbnQpKHNpemUpKSwJCQkJXAotCSAgICAicm0iIChjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQuc2VnKSk7CQlcCi0JZmxhZzsJCQkJCQkJCVwKLX0pCi0KLS8qKgotICogYWNjZXNzX29rOiAtIENoZWNrcyBpZiBhIHVzZXIgc3BhY2UgcG9pbnRlciBpcyB2YWxpZAotICogQHR5cGU6IFR5cGUgb2YgYWNjZXNzOiAlVkVSSUZZX1JFQUQgb3IgJVZFUklGWV9XUklURS4gIE5vdGUgdGhhdAotICogICAgICAgICVWRVJJRllfV1JJVEUgaXMgYSBzdXBlcnNldCBvZiAlVkVSSUZZX1JFQUQgLSBpZiBpdCBpcyBzYWZlCi0gKiAgICAgICAgdG8gd3JpdGUgdG8gYSBibG9jaywgaXQgaXMgYWx3YXlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgotICogQGFkZHI6IFVzZXIgc3BhY2UgcG9pbnRlciB0byBzdGFydCBvZiBibG9jayB0byBjaGVjawotICogQHNpemU6IFNpemUgb2YgYmxvY2sgdG8gY2hlY2sKLSAqCi0gKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgotICoKLSAqIENoZWNrcyBpZiBhIHBvaW50ZXIgdG8gYSBibG9jayBvZiBtZW1vcnkgaW4gdXNlciBzcGFjZSBpcyB2YWxpZC4KLSAqCi0gKiBSZXR1cm5zIHRydWUgKG5vbnplcm8pIGlmIHRoZSBtZW1vcnkgYmxvY2sgbWF5IGJlIHZhbGlkLCBmYWxzZSAoemVybykKLSAqIGlmIGl0IGlzIGRlZmluaXRlbHkgaW52YWxpZC4KLSAqCi0gKiBOb3RlIHRoYXQsIGRlcGVuZGluZyBvbiBhcmNoaXRlY3R1cmUsIHRoaXMgZnVuY3Rpb24gcHJvYmFibHkganVzdAotICogY2hlY2tzIHRoYXQgdGhlIHBvaW50ZXIgaXMgaW4gdGhlIHVzZXIgc3BhY2UgcmFuZ2UgLSBhZnRlciBjYWxsaW5nCi0gKiB0aGlzIGZ1bmN0aW9uLCBtZW1vcnkgYWNjZXNzIGZ1bmN0aW9ucyBtYXkgc3RpbGwgcmV0dXJuIC1FRkFVTFQuCi0gKi8KLSNkZWZpbmUgYWNjZXNzX29rKHR5cGUsIGFkZHIsIHNpemUpIChsaWtlbHkoX19yYW5nZV9vayhhZGRyLCBzaXplKSA9PSAwKSkKLQotLyoKLSAqIFRoZSBleGNlcHRpb24gdGFibGUgY29uc2lzdHMgb2YgcGFpcnMgb2YgYWRkcmVzc2VzOiB0aGUgZmlyc3QgaXMgdGhlCi0gKiBhZGRyZXNzIG9mIGFuIGluc3RydWN0aW9uIHRoYXQgaXMgYWxsb3dlZCB0byBmYXVsdCwgYW5kIHRoZSBzZWNvbmQgaXMKLSAqIHRoZSBhZGRyZXNzIGF0IHdoaWNoIHRoZSBwcm9ncmFtIHNob3VsZCBjb250aW51ZS4gIE5vIHJlZ2lzdGVycyBhcmUKLSAqIG1vZGlmaWVkLCBzbyBpdCBpcyBlbnRpcmVseSB1cCB0byB0aGUgY29udGludWF0aW9uIGNvZGUgdG8gZmlndXJlIG91dAotICogd2hhdCB0byBkby4KLSAqCi0gKiBBbGwgdGhlIHJvdXRpbmVzIGJlbG93IHVzZSBiaXRzIG9mIGZpeHVwIGNvZGUgdGhhdCBhcmUgb3V0IG9mIGxpbmUKLSAqIHdpdGggdGhlIG1haW4gaW5zdHJ1Y3Rpb24gcGF0aC4gIFRoaXMgbWVhbnMgd2hlbiBldmVyeXRoaW5nIGlzIHdlbGwsCi0gKiB3ZSBkb24ndCBldmVuIGhhdmUgdG8ganVtcCBvdmVyIHRoZW0uICBGdXJ0aGVyLCB0aGV5IGRvIG5vdCBpbnRydWRlCi0gKiBvbiBvdXIgY2FjaGUgb3IgdGxiIGVudHJpZXMuCi0gKi8KLQotc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSB7Ci0JdW5zaWduZWQgbG9uZyBpbnNuLCBmaXh1cDsKLX07Ci0KLWV4dGVybiBpbnQgZml4dXBfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzICpyZWdzKTsKLQotLyoKLSAqIFRoZXNlIGFyZSB0aGUgbWFpbiBzaW5nbGUtdmFsdWUgdHJhbnNmZXIgcm91dGluZXMuICBUaGV5IGF1dG9tYXRpY2FsbHkKLSAqIHVzZSB0aGUgcmlnaHQgc2l6ZSBpZiB3ZSBqdXN0IGhhdmUgdGhlIHJpZ2h0IHBvaW50ZXIgdHlwZS4KLSAqCi0gKiBUaGlzIGdldHMga2luZCBvZiB1Z2x5LiBXZSB3YW50IHRvIHJldHVybiBfdHdvXyB2YWx1ZXMgaW4gImdldF91c2VyKCkiCi0gKiBhbmQgeWV0IHdlIGRvbid0IHdhbnQgdG8gZG8gYW55IHBvaW50ZXJzLCBiZWNhdXNlIHRoYXQgaXMgdG9vIG11Y2gKLSAqIG9mIGEgcGVyZm9ybWFuY2UgaW1wYWN0LiBUaHVzIHdlIGhhdmUgYSBmZXcgcmF0aGVyIHVnbHkgbWFjcm9zIGhlcmUsCi0gKiBhbmQgaGlkZSBhbGwgdGhlIHVnbGluZXNzIGZyb20gdGhlIHVzZXIuCi0gKgotICogVGhlICJfX3h4eCIgdmVyc2lvbnMgb2YgdGhlIHVzZXIgYWNjZXNzIGZ1bmN0aW9ucyBhcmUgdmVyc2lvbnMgdGhhdAotICogZG8gbm90IHZlcmlmeSB0aGUgYWRkcmVzcyBzcGFjZSwgdGhhdCBtdXN0IGhhdmUgYmVlbiBkb25lIHByZXZpb3VzbHkKLSAqIHdpdGggYSBzZXBhcmF0ZSAiYWNjZXNzX29rKCkiIGNhbGwgKHRoaXMgaXMgdXNlZCB3aGVuIHdlIGRvIG11bHRpcGxlCi0gKiBhY2Nlc3NlcyB0byB0aGUgc2FtZSBhcmVhIG9mIHVzZXIgbWVtb3J5KS4KLSAqLwotCi1leHRlcm4gdm9pZCBfX2dldF91c2VyXzEodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2dldF91c2VyXzIodm9pZCk7Ci1leHRlcm4gdm9pZCBfX2dldF91c2VyXzQodm9pZCk7Ci0KLSNkZWZpbmUgX19nZXRfdXNlcl94KHNpemUsIHJldCwgeCwgcHRyKQkgICAgICBcCi0JYXNtIHZvbGF0aWxlKCJjYWxsIF9fZ2V0X3VzZXJfIiAjc2l6ZSBcCi0JCSAgICAgOiI9YSIgKHJldCksIj1kIiAoeCkgICAgIFwKLQkJICAgICA6IjAiIChwdHIpKQotCi0KLS8qIENhcmVmdWw6IHdlIGhhdmUgdG8gY2FzdCB0aGUgcmVzdWx0IHRvIHRoZSB0eXBlIG9mIHRoZSBwb2ludGVyCi0gKiBmb3Igc2lnbiByZWFzb25zICovCi0KLS8qKgotICogZ2V0X3VzZXI6IC0gR2V0IGEgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZS4KLSAqIEB4OiAgIFZhcmlhYmxlIHRvIHN0b3JlIHJlc3VsdC4KLSAqIEBwdHI6IFNvdXJjZSBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSB0byBrZXJuZWwKLSAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgotICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgotICoKLSAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCB0aGUgcmVzdWx0IG9mCi0gKiBkZXJlZmVyZW5jaW5nIEBwdHIgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIEB4IHdpdGhvdXQgYSBjYXN0LgotICoKLSAqIFJldHVybnMgemVybyBvbiBzdWNjZXNzLCBvciAtRUZBVUxUIG9uIGVycm9yLgotICogT24gZXJyb3IsIHRoZSB2YXJpYWJsZSBAeCBpcyBzZXQgdG8gemVyby4KLSAqLwotI2RlZmluZSBnZXRfdXNlcih4LCBwdHIpCQkJCQkJXAotKHsJCQkJCQkJCQlcCi0JaW50IF9fcmV0X2d1OwkJCQkJCQlcCi0JdW5zaWduZWQgbG9uZyBfX3ZhbF9ndTsJCQkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCi0Jc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDEsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCgyLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goNCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KFgsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQl9CQkJCQkJCQlcCi0JKHgpID0gKF9fdHlwZW9mX18oKihwdHIpKSlfX3ZhbF9ndTsJCQkJXAotCV9fcmV0X2d1OwkJCQkJCQlcCi19KQotCi1leHRlcm4gdm9pZCBfX3B1dF91c2VyX2JhZCh2b2lkKTsKLQotLyoKLSAqIFN0cmFuZ2UgbWFnaWMgY2FsbGluZyBjb252ZW50aW9uOiBwb2ludGVyIGluICVlY3gsCi0gKiB2YWx1ZSBpbiAlZWF4KDolZWR4KSwgcmV0dXJuIHZhbHVlIGluICVlYXgsIG5vIGNsb2JiZXJzLgotICovCi1leHRlcm4gdm9pZCBfX3B1dF91c2VyXzEodm9pZCk7Ci1leHRlcm4gdm9pZCBfX3B1dF91c2VyXzIodm9pZCk7Ci1leHRlcm4gdm9pZCBfX3B1dF91c2VyXzQodm9pZCk7Ci1leHRlcm4gdm9pZCBfX3B1dF91c2VyXzgodm9pZCk7Ci0KLSNkZWZpbmUgX19wdXRfdXNlcl8xKHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl8xIiA6ICI9YSIgKF9fcmV0X3B1KQlcCi0JCSAgICAgOiAiMCIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikpCi0KLSNkZWZpbmUgX19wdXRfdXNlcl8yKHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl8yIiA6ICI9YSIgKF9fcmV0X3B1KQlcCi0JCSAgICAgOiAiMCIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikpCi0KLSNkZWZpbmUgX19wdXRfdXNlcl80KHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl80IiA6ICI9YSIgKF9fcmV0X3B1KQlcCi0JCSAgICAgOiAiMCIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikpCi0KLSNkZWZpbmUgX19wdXRfdXNlcl84KHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl84IiA6ICI9YSIgKF9fcmV0X3B1KQlcCi0JCSAgICAgOiAiQSIgKCh0eXBlb2YoKihwdHIpKSkoeCkpLCAiYyIgKHB0cikpCi0KLSNkZWZpbmUgX19wdXRfdXNlcl9YKHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl9YIiA6ICI9YSIgKF9fcmV0X3B1KQlcCi0JCSAgICAgOiAiYyIgKHB0cikpCi0KLS8qKgotICogcHV0X3VzZXI6IC0gV3JpdGUgYSBzaW1wbGUgdmFsdWUgaW50byB1c2VyIHNwYWNlLgotICogQHg6ICAgVmFsdWUgdG8gY29weSB0byB1c2VyIHNwYWNlLgotICogQHB0cjogRGVzdGluYXRpb24gYWRkcmVzcywgaW4gdXNlciBzcGFjZS4KLSAqCi0gKiBDb250ZXh0OiBVc2VyIGNvbnRleHQgb25seS4gIFRoaXMgZnVuY3Rpb24gbWF5IHNsZWVwLgotICoKLSAqIFRoaXMgbWFjcm8gY29waWVzIGEgc2luZ2xlIHNpbXBsZSB2YWx1ZSBmcm9tIGtlcm5lbCBzcGFjZSB0byB1c2VyCi0gKiBzcGFjZS4gIEl0IHN1cHBvcnRzIHNpbXBsZSB0eXBlcyBsaWtlIGNoYXIgYW5kIGludCwgYnV0IG5vdCBsYXJnZXIKLSAqIGRhdGEgdHlwZXMgbGlrZSBzdHJ1Y3R1cmVzIG9yIGFycmF5cy4KLSAqCi0gKiBAcHRyIG11c3QgaGF2ZSBwb2ludGVyLXRvLXNpbXBsZS12YXJpYWJsZSB0eXBlLCBhbmQgQHggbXVzdCBiZSBhc3NpZ25hYmxlCi0gKiB0byB0aGUgcmVzdWx0IG9mIGRlcmVmZXJlbmNpbmcgQHB0ci4KLSAqCi0gKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KLSAqLwotI2lmZGVmIENPTkZJR19YODZfV1BfV09SS1NfT0sKLQotI2RlZmluZSBwdXRfdXNlcih4LCBwdHIpCQkJCQlcCi0oewkJCQkJCQkJXAotCWludCBfX3JldF9wdTsJCQkJCQlcCi0JX190eXBlb2ZfXygqKHB0cikpIF9fcHVfdmFsOwkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCVwKLQlfX3B1X3ZhbCA9IHg7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZW9mKCoocHRyKSkpIHsJCQkJXAotCWNhc2UgMToJCQkJCQkJXAotCQlfX3B1dF91c2VyXzEoX19wdV92YWwsIHB0cik7CQkJXAotCQlicmVhazsJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfMihfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCVwKLQkJX19wdXRfdXNlcl80KF9fcHVfdmFsLCBwdHIpOwkJCVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgODoJCQkJCQkJXAotCQlfX3B1dF91c2VyXzgoX19wdV92YWwsIHB0cik7CQkJXAotCQlicmVhazsJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQlcCi0JCV9fcHV0X3VzZXJfWChfX3B1X3ZhbCwgcHRyKTsJCQlcCi0JCWJyZWFrOwkJCQkJCVwKLQl9CQkJCQkJCVwKLQlfX3JldF9wdTsJCQkJCQlcCi19KQotCi0jZWxzZQotI2RlZmluZSBwdXRfdXNlcih4LCBwdHIpCQkJCQlcCi0oewkJCQkJCQkJXAotCWludCBfX3JldF9wdTsJCQkJCQlcCi0JX190eXBlb2ZfXygqKHB0cikpX19wdXNfdG1wID0geDsJCQlcCi0JX19yZXRfcHUgPSAwOwkJCQkJCVwKLQlpZiAodW5saWtlbHkoX19jb3B5X3RvX3VzZXJfbGwocHRyLCAmX19wdXNfdG1wLAkJXAotCQkJCSAgICAgICBzaXplb2YoKihwdHIpKSkgIT0gMCkpCVwKLQkJX19yZXRfcHUgPSAtRUZBVUxUOwkJCQlcCi0JX19yZXRfcHU7CQkJCQkJXAotfSkKLQotCi0jZW5kaWYKLQotLyoqCi0gKiBfX2dldF91c2VyOiAtIEdldCBhIHNpbXBsZSB2YXJpYWJsZSBmcm9tIHVzZXIgc3BhY2UsIHdpdGggbGVzcyBjaGVja2luZy4KLSAqIEB4OiAgIFZhcmlhYmxlIHRvIHN0b3JlIHJlc3VsdC4KLSAqIEBwdHI6IFNvdXJjZSBhZGRyZXNzLCBpbiB1c2VyIHNwYWNlLgotICoKLSAqIENvbnRleHQ6IFVzZXIgY29udGV4dCBvbmx5LiAgVGhpcyBmdW5jdGlvbiBtYXkgc2xlZXAuCi0gKgotICogVGhpcyBtYWNybyBjb3BpZXMgYSBzaW5nbGUgc2ltcGxlIHZhcmlhYmxlIGZyb20gdXNlciBzcGFjZSB0byBrZXJuZWwKLSAqIHNwYWNlLiAgSXQgc3VwcG9ydHMgc2ltcGxlIHR5cGVzIGxpa2UgY2hhciBhbmQgaW50LCBidXQgbm90IGxhcmdlcgotICogZGF0YSB0eXBlcyBsaWtlIHN0cnVjdHVyZXMgb3IgYXJyYXlzLgotICoKLSAqIEBwdHIgbXVzdCBoYXZlIHBvaW50ZXItdG8tc2ltcGxlLXZhcmlhYmxlIHR5cGUsIGFuZCB0aGUgcmVzdWx0IG9mCi0gKiBkZXJlZmVyZW5jaW5nIEBwdHIgbXVzdCBiZSBhc3NpZ25hYmxlIHRvIEB4IHdpdGhvdXQgYSBjYXN0LgotICoKLSAqIENhbGxlciBtdXN0IGNoZWNrIHRoZSBwb2ludGVyIHdpdGggYWNjZXNzX29rKCkgYmVmb3JlIGNhbGxpbmcgdGhpcwotICogZnVuY3Rpb24uCi0gKgotICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3MsIG9yIC1FRkFVTFQgb24gZXJyb3IuCi0gKiBPbiBlcnJvciwgdGhlIHZhcmlhYmxlIEB4IGlzIHNldCB0byB6ZXJvLgotICovCi0jZGVmaW5lIF9fZ2V0X3VzZXIoeCwgcHRyKQkJCQlcCi0JX19nZXRfdXNlcl9ub2NoZWNrKCh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQotCi0KLS8qKgotICogX19wdXRfdXNlcjogLSBXcml0ZSBhIHNpbXBsZSB2YWx1ZSBpbnRvIHVzZXIgc3BhY2UsIHdpdGggbGVzcyBjaGVja2luZy4KLSAqIEB4OiAgIFZhbHVlIHRvIGNvcHkgdG8gdXNlciBzcGFjZS4KLSAqIEBwdHI6IERlc3RpbmF0aW9uIGFkZHJlc3MsIGluIHVzZXIgc3BhY2UuCi0gKgotICogQ29udGV4dDogVXNlciBjb250ZXh0IG9ubHkuICBUaGlzIGZ1bmN0aW9uIG1heSBzbGVlcC4KLSAqCi0gKiBUaGlzIG1hY3JvIGNvcGllcyBhIHNpbmdsZSBzaW1wbGUgdmFsdWUgZnJvbSBrZXJuZWwgc3BhY2UgdG8gdXNlcgotICogc3BhY2UuICBJdCBzdXBwb3J0cyBzaW1wbGUgdHlwZXMgbGlrZSBjaGFyIGFuZCBpbnQsIGJ1dCBub3QgbGFyZ2VyCi0gKiBkYXRhIHR5cGVzIGxpa2Ugc3RydWN0dXJlcyBvciBhcnJheXMuCi0gKgotICogQHB0ciBtdXN0IGhhdmUgcG9pbnRlci10by1zaW1wbGUtdmFyaWFibGUgdHlwZSwgYW5kIEB4IG11c3QgYmUgYXNzaWduYWJsZQotICogdG8gdGhlIHJlc3VsdCBvZiBkZXJlZmVyZW5jaW5nIEBwdHIuCi0gKgotICogQ2FsbGVyIG11c3QgY2hlY2sgdGhlIHBvaW50ZXIgd2l0aCBhY2Nlc3Nfb2soKSBiZWZvcmUgY2FsbGluZyB0aGlzCi0gKiBmdW5jdGlvbi4KLSAqCi0gKiBSZXR1cm5zIHplcm8gb24gc3VjY2Vzcywgb3IgLUVGQVVMVCBvbiBlcnJvci4KLSAqLwotI2RlZmluZSBfX3B1dF91c2VyKHgsIHB0cikJCQkJCQlcCi0JX19wdXRfdXNlcl9ub2NoZWNrKChfX3R5cGVvZl9fKCoocHRyKSkpKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0KLSNkZWZpbmUgX19wdXRfdXNlcl9ub2NoZWNrKHgsIHB0ciwgc2l6ZSkJCQlcCi0oewkJCQkJCQkJXAotCWxvbmcgX19wdV9lcnI7CQkJCQkJXAotCV9fcHV0X3VzZXJfc2l6ZSgoeCksIChwdHIpLCAoc2l6ZSksIF9fcHVfZXJyLCAtRUZBVUxUKTsJXAotCV9fcHVfZXJyOwkJCQkJCVwKLX0pCi0KLQotI2RlZmluZSBfX3B1dF91c2VyX3U2NCh4LCBhZGRyLCBlcnIpCQkJCQlcCi0JYXNtIHZvbGF0aWxlKCIxOgltb3ZsICUlZWF4LDAoJTIpXG4iCQkJXAotCQkgICAgICIyOgltb3ZsICUlZWR4LDQoJTIpXG4iCQkJXAotCQkgICAgICIzOlxuIgkJCQkJCVwKLQkJICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcCi0JCSAgICAgIjQ6CW1vdmwgJTMsJTBcbiIJCQkJXAotCQkgICAgICIJam1wIDNiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgNGIpCQkJCVwKLQkJICAgICBfQVNNX0VYVEFCTEUoMmIsIDRiKQkJCQlcCi0JCSAgICAgOiAiPXIiIChlcnIpCQkJCQlcCi0JCSAgICAgOiAiQSIgKHgpLCAiciIgKGFkZHIpLCAiaSIgKC1FRkFVTFQpLCAiMCIgKGVycikpCi0KLSNpZmRlZiBDT05GSUdfWDg2X1dQX1dPUktTX09LCi0KLSNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAotZG8gewkJCQkJCQkJCVwKLQlyZXR2YWwgPSAwOwkJCQkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCi0Jc3dpdGNoIChzaXplKSB7CQkJCQkJCVwKLQljYXNlIDE6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAiYiIsICJiIiwgImlxIiwgZXJycmV0KTsJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJ3IiwgInciLCAiaXIiLCBlcnJyZXQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImwiLCAiIiwgICJpciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDg6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfdTY0KChfX3R5cGVvZl9fKCpwdHIpKSh4KSwgcHRyLCByZXR2YWwpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQkJXAotCQlfX3B1dF91c2VyX2JhZCgpOwkJCQkJXAotCX0JCQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNlbHNlCi0KLSNkZWZpbmUgX19wdXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsLCBlcnJyZXQpCQkJXAotZG8gewkJCQkJCQkJCVwKLQlfX3R5cGVvZl9fKCoocHRyKSlfX3B1c190bXAgPSB4OwkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCQkJCQkJCQkJXAotCWlmICh1bmxpa2VseShfX2NvcHlfdG9fdXNlcl9sbChwdHIsICZfX3B1c190bXAsIHNpemUpICE9IDApKQlcCi0JCXJldHZhbCA9IGVycnJldDsJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNlbmRpZgotc3RydWN0IF9fbGFyZ2Vfc3RydWN0IHsgdW5zaWduZWQgbG9uZyBidWZbMTAwXTsgfTsKLSNkZWZpbmUgX19tKHgpICgqKHN0cnVjdCBfX2xhcmdlX3N0cnVjdCBfX3VzZXIgKikoeCkpCi0KLS8qCi0gKiBUZWxsIGdjYyB3ZSByZWFkIGZyb20gbWVtb3J5IGluc3RlYWQgb2Ygd3JpdGluZzogdGhpcyBpcyBiZWNhdXNlCi0gKiB3ZSBkbyBub3Qgd3JpdGUgdG8gYW55IG1lbW9yeSBnY2Mga25vd3MgYWJvdXQsIHNvIHRoZXJlIGFyZSBubwotICogYWxpYXNpbmcgaXNzdWVzLgotICovCi0jZGVmaW5lIF9fcHV0X3VzZXJfYXNtKHgsIGFkZHIsIGVyciwgaXR5cGUsIHJ0eXBlLCBsdHlwZSwgZXJycmV0KQlcCi0JYXNtIHZvbGF0aWxlKCIxOgltb3YiaXR5cGUiICUicnR5cGUiMSwlMlxuIgkJXAotCQkgICAgICIyOlxuIgkJCQkJCVwKLQkJICAgICAiLnNlY3Rpb24gLmZpeHVwLFwiYXhcIlxuIgkJCQlcCi0JCSAgICAgIjM6CW1vdmwgJTMsJTBcbiIJCQkJXAotCQkgICAgICIJam1wIDJiXG4iCQkJCQlcCi0JCSAgICAgIi5wcmV2aW91c1xuIgkJCQkJXAotCQkgICAgIF9BU01fRVhUQUJMRSgxYiwgM2IpCQkJCVwKLQkJICAgICA6ICI9ciIoZXJyKQkJCQkJXAotCQkgICAgIDogbHR5cGUgKHgpLCAibSIgKF9fbShhZGRyKSksICJpIiAoZXJycmV0KSwgIjAiIChlcnIpKQotCi0KLSNkZWZpbmUgX19nZXRfdXNlcl9ub2NoZWNrKHgsIHB0ciwgc2l6ZSkJCQkJXAotKHsJCQkJCQkJCQlcCi0JbG9uZyBfX2d1X2VycjsJCQkJCQkJXAotCXVuc2lnbmVkIGxvbmcgX19ndV92YWw7CQkJCQkJXAotCV9fZ2V0X3VzZXJfc2l6ZShfX2d1X3ZhbCwgKHB0ciksIChzaXplKSwgX19ndV9lcnIsIC1FRkFVTFQpOwlcCi0JKHgpID0gKF9fdHlwZW9mX18oKihwdHIpKSlfX2d1X3ZhbDsJCQkJXAotCV9fZ3VfZXJyOwkJCQkJCQlcCi19KQotCi1leHRlcm4gbG9uZyBfX2dldF91c2VyX2JhZCh2b2lkKTsKLQotI2RlZmluZSBfX2dldF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwsIGVycnJldCkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCXJldHZhbCA9IDA7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiPXEiLCBlcnJyZXQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICI9ciIsIGVycnJldCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICIiLCAiPXIiLCBlcnJyZXQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQkJXAotCQkoeCkgPSBfX2dldF91c2VyX2JhZCgpOwkJCQkJXAotCX0JCQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgX19nZXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJyZXQpCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdiJpdHlwZSIgJTIsJSJydHlwZSIxXG4iCQlcCi0JCSAgICAgIjI6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsXCJheFwiXG4iCQkJCVwKLQkJICAgICAiMzoJbW92bCAlMywlMFxuIgkJCQlcCi0JCSAgICAgIgl4b3IiaXR5cGUiICUicnR5cGUiMSwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiCWptcCAyYlxuIgkJCQkJXAotCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKLQkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCi0JCSAgICAgOiAiPXIiIChlcnIpLCBsdHlwZSAoeCkJCQkJXAotCQkgICAgIDogIm0iIChfX20oYWRkcikpLCAiaSIgKGVycnJldCksICIwIiAoZXJyKSkKLQotCiB1bnNpZ25lZCBsb25nIF9fbXVzdF9jaGVjayBfX2NvcHlfdG9fdXNlcl9sbAogCQkodm9pZCBfX3VzZXIgKnRvLCBjb25zdCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pOwogdW5zaWduZWQgbG9uZyBfX211c3RfY2hlY2sgX19jb3B5X2Zyb21fdXNlcl9sbApAQCAtNTc2LDggKzE1Niw2IEBACiAJcmV0dXJuIF9fY29weV9mcm9tX3VzZXJfbGwodG8sIGZyb20sIG4pOwogfQogCi0jZGVmaW5lIEFSQ0hfSEFTX05PQ0FDSEVfVUFDQ0VTUwotCiBzdGF0aWMgX19hbHdheXNfaW5saW5lIHVuc2lnbmVkIGxvbmcgX19jb3B5X2Zyb21fdXNlcl9ub2NhY2hlKHZvaWQgKnRvLAogCQkJCWNvbnN0IHZvaWQgX191c2VyICpmcm9tLCB1bnNpZ25lZCBsb25nIG4pCiB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc182NC5oIGIvaW5jbHVkZS9hc20teDg2L3VhY2Nlc3NfNjQuaAppbmRleCBiOGEyZjQzLi41MTVkNGRjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdWFjY2Vzc182NC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzXzY0LmgKQEAgLTksMjY1ICs5LDYgQEAKICNpbmNsdWRlIDxsaW51eC9wcmVmZXRjaC5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKLSNkZWZpbmUgVkVSSUZZX1JFQUQgMAotI2RlZmluZSBWRVJJRllfV1JJVEUgMQotCi0vKgotICogVGhlIGZzIHZhbHVlIGRldGVybWluZXMgd2hldGhlciBhcmd1bWVudCB2YWxpZGl0eSBjaGVja2luZyBzaG91bGQgYmUKLSAqIHBlcmZvcm1lZCBvciBub3QuICBJZiBnZXRfZnMoKSA9PSBVU0VSX0RTLCBjaGVja2luZyBpcyBwZXJmb3JtZWQsIHdpdGgKLSAqIGdldF9mcygpID09IEtFUk5FTF9EUywgY2hlY2tpbmcgaXMgYnlwYXNzZWQuCi0gKgotICogRm9yIGhpc3RvcmljYWwgcmVhc29ucywgdGhlc2UgbWFjcm9zIGFyZSBncm9zc2x5IG1pc25hbWVkLgotICovCi0KLSNkZWZpbmUgTUFLRV9NTV9TRUcocykJKChtbV9zZWdtZW50X3QpIHsgKHMpIH0pCi0KLSNkZWZpbmUgS0VSTkVMX0RTCU1BS0VfTU1fU0VHKDB4RkZGRkZGRkZGRkZGRkZGRlVMKQotI2RlZmluZSBVU0VSX0RTCQlNQUtFX01NX1NFRyhQQUdFX09GRlNFVCkKLQotI2RlZmluZSBnZXRfZHMoKQkoS0VSTkVMX0RTKQotI2RlZmluZSBnZXRfZnMoKQkoY3VycmVudF90aHJlYWRfaW5mbygpLT5hZGRyX2xpbWl0KQotI2RlZmluZSBzZXRfZnMoeCkJKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdCA9ICh4KSkKLQotI2RlZmluZSBzZWdtZW50X2VxKGEsIGIpCSgoYSkuc2VnID09IChiKS5zZWcpCi0KLSNkZWZpbmUgX19hZGRyX29rKGFkZHIpICghKCh1bnNpZ25lZCBsb25nKShhZGRyKSAmCQkJXAotCQkJICAgKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+YWRkcl9saW1pdC5zZWcpKSkKLQotLyoKLSAqIFVoaHVoLCB0aGlzIG5lZWRzIDY1LWJpdCBhcml0aG1ldGljLiBXZSBoYXZlIGEgY2FycnkuLgotICovCi0jZGVmaW5lIF9fcmFuZ2Vfbm90X29rKGFkZHIsIHNpemUpCQkJCQlcCi0oewkJCQkJCQkJCVwKLQl1bnNpZ25lZCBsb25nIGZsYWcsIHJva3N1bTsJCQkJCVwKLQlfX2Noa191c2VyX3B0cihhZGRyKTsJCQkJCQlcCi0JYXNtKCIjIHJhbmdlX29rXG5cciIJCQkJCQlcCi0JICAgICJhZGRxICUzLCUxIDsgc2JicSAlMCwlMCA7IGNtcHEgJTEsJTQgOyBzYmJxICQwLCUwIgkJXAotCSAgICA6ICI9JnIiIChmbGFnKSwgIj1yIiAocm9rc3VtKQkJCQlcCi0JICAgIDogIjEiIChhZGRyKSwgImciICgobG9uZykoc2l6ZSkpLAkJCQlcCi0JICAgICAgImciIChjdXJyZW50X3RocmVhZF9pbmZvKCktPmFkZHJfbGltaXQuc2VnKSk7CQlcCi0JZmxhZzsJCQkJCQkJCVwKLX0pCi0KLSNkZWZpbmUgYWNjZXNzX29rKHR5cGUsIGFkZHIsIHNpemUpIChfX3JhbmdlX25vdF9vayhhZGRyLCBzaXplKSA9PSAwKQotCi0vKgotICogVGhlIGV4Y2VwdGlvbiB0YWJsZSBjb25zaXN0cyBvZiBwYWlycyBvZiBhZGRyZXNzZXM6IHRoZSBmaXJzdCBpcyB0aGUKLSAqIGFkZHJlc3Mgb2YgYW4gaW5zdHJ1Y3Rpb24gdGhhdCBpcyBhbGxvd2VkIHRvIGZhdWx0LCBhbmQgdGhlIHNlY29uZCBpcwotICogdGhlIGFkZHJlc3MgYXQgd2hpY2ggdGhlIHByb2dyYW0gc2hvdWxkIGNvbnRpbnVlLiAgTm8gcmVnaXN0ZXJzIGFyZQotICogbW9kaWZpZWQsIHNvIGl0IGlzIGVudGlyZWx5IHVwIHRvIHRoZSBjb250aW51YXRpb24gY29kZSB0byBmaWd1cmUgb3V0Ci0gKiB3aGF0IHRvIGRvLgotICoKLSAqIEFsbCB0aGUgcm91dGluZXMgYmVsb3cgdXNlIGJpdHMgb2YgZml4dXAgY29kZSB0aGF0IGFyZSBvdXQgb2YgbGluZQotICogd2l0aCB0aGUgbWFpbiBpbnN0cnVjdGlvbiBwYXRoLiAgVGhpcyBtZWFucyB3aGVuIGV2ZXJ5dGhpbmcgaXMgd2VsbCwKLSAqIHdlIGRvbid0IGV2ZW4gaGF2ZSB0byBqdW1wIG92ZXIgdGhlbS4gIEZ1cnRoZXIsIHRoZXkgZG8gbm90IGludHJ1ZGUKLSAqIG9uIG91ciBjYWNoZSBvciB0bGIgZW50cmllcy4KLSAqLwotCi1zdHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5IHsKLQl1bnNpZ25lZCBsb25nIGluc24sIGZpeHVwOwotfTsKLQotZXh0ZXJuIGludCBmaXh1cF9leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOwotCi0jZGVmaW5lIEFSQ0hfSEFTX1NFQVJDSF9FWFRBQkxFCi0KLS8qCi0gKiBUaGVzZSBhcmUgdGhlIG1haW4gc2luZ2xlLXZhbHVlIHRyYW5zZmVyIHJvdXRpbmVzLiAgVGhleSBhdXRvbWF0aWNhbGx5Ci0gKiB1c2UgdGhlIHJpZ2h0IHNpemUgaWYgd2UganVzdCBoYXZlIHRoZSByaWdodCBwb2ludGVyIHR5cGUuCi0gKgotICogVGhpcyBnZXRzIGtpbmQgb2YgdWdseS4gV2Ugd2FudCB0byByZXR1cm4gX3R3b18gdmFsdWVzIGluICJnZXRfdXNlcigpIgotICogYW5kIHlldCB3ZSBkb24ndCB3YW50IHRvIGRvIGFueSBwb2ludGVycywgYmVjYXVzZSB0aGF0IGlzIHRvbyBtdWNoCi0gKiBvZiBhIHBlcmZvcm1hbmNlIGltcGFjdC4gVGh1cyB3ZSBoYXZlIGEgZmV3IHJhdGhlciB1Z2x5IG1hY3JvcyBoZXJlLAotICogYW5kIGhpZGUgYWxsIHRoZSB1Z2xpbmVzcyBmcm9tIHRoZSB1c2VyLgotICoKLSAqIFRoZSAiX194eHgiIHZlcnNpb25zIG9mIHRoZSB1c2VyIGFjY2VzcyBmdW5jdGlvbnMgYXJlIHZlcnNpb25zIHRoYXQKLSAqIGRvIG5vdCB2ZXJpZnkgdGhlIGFkZHJlc3Mgc3BhY2UsIHRoYXQgbXVzdCBoYXZlIGJlZW4gZG9uZSBwcmV2aW91c2x5Ci0gKiB3aXRoIGEgc2VwYXJhdGUgImFjY2Vzc19vaygpIiBjYWxsICh0aGlzIGlzIHVzZWQgd2hlbiB3ZSBkbyBtdWx0aXBsZQotICogYWNjZXNzZXMgdG8gdGhlIHNhbWUgYXJlYSBvZiB1c2VyIG1lbW9yeSkuCi0gKi8KLQotI2RlZmluZSBfX2dldF91c2VyX3goc2l6ZSwgcmV0LCB4LCBwdHIpCQkgICAgICBcCi0JYXNtIHZvbGF0aWxlKCJjYWxsIF9fZ2V0X3VzZXJfIiAjc2l6ZQkgICAgICBcCi0JCSAgICAgOiAiPWEiIChyZXQpLCI9ZCIgKHgpCSAgICAgIFwKLQkJICAgICA6ICJjIiAocHRyKQkJICAgICAgXAotCQkgICAgIDogInI4IikKLQotLyogQ2FyZWZ1bDogd2UgaGF2ZSB0byBjYXN0IHRoZSByZXN1bHQgdG8gdGhlIHR5cGUgb2YgdGhlIHBvaW50ZXIKLSAqIGZvciBzaWduIHJlYXNvbnMgKi8KLQotI2RlZmluZSBnZXRfdXNlcih4LCBwdHIpCQkJCQkJXAotKHsJCQkJCQkJCQlcCi0JdW5zaWduZWQgbG9uZyBfX3ZhbF9ndTsJCQkJCQlcCi0JaW50IF9fcmV0X2d1OwkJCQkJCQlcCi0JX19jaGtfdXNlcl9wdHIocHRyKTsJCQkJCQlcCi0Jc3dpdGNoIChzaXplb2YoKihwdHIpKSkgewkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDEsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfeCgyLCBfX3JldF9ndSwgX192YWxfZ3UsIHB0cik7CQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA0OgkJCQkJCQkJXAotCQlfX2dldF91c2VyX3goNCwgX19yZXRfZ3UsIF9fdmFsX2d1LCBwdHIpOwkJXAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgODoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl94KDgsIF9fcmV0X2d1LCBfX3ZhbF9ndSwgcHRyKTsJCVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYmFkKCk7CQkJCQlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JfQkJCQkJCQkJXAotCSh4KSA9IChfX2ZvcmNlIHR5cGVvZigqKHB0cikpKV9fdmFsX2d1OwkJCQlcCi0JX19yZXRfZ3U7CQkJCQkJCVwKLX0pCi0KLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfMih2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfNCh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfOCh2b2lkKTsKLWV4dGVybiB2b2lkIF9fcHV0X3VzZXJfYmFkKHZvaWQpOwotCi0jZGVmaW5lIF9fcHV0X3VzZXJfeChzaXplLCByZXQsIHgsIHB0cikJCQkJCVwKLQlhc20gdm9sYXRpbGUoImNhbGwgX19wdXRfdXNlcl8iICNzaXplCQkJCVwKLQkJICAgICA6Ij1hIiAocmV0KQkJCQkJXAotCQkgICAgIDoiYyIgKHB0ciksImQiICh4KQkJCQkJXAotCQkgICAgIDoicjgiKQotCi0jZGVmaW5lIHB1dF91c2VyKHgsIHB0cikJCQkJCQlcCi0JX19wdXRfdXNlcl9jaGVjaygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwgKHB0ciksIHNpemVvZigqKHB0cikpKQotCi0jZGVmaW5lIF9fZ2V0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX2dldF91c2VyX25vY2hlY2soKHgpLCAocHRyKSwgc2l6ZW9mKCoocHRyKSkpCi0jZGVmaW5lIF9fcHV0X3VzZXIoeCwgcHRyKQkJCQkJCVwKLQlfX3B1dF91c2VyX25vY2hlY2soKF9fdHlwZW9mX18oKihwdHIpKSkoeCksIChwdHIpLCBzaXplb2YoKihwdHIpKSkKLQotI2RlZmluZSBfX2dldF91c2VyX3VuYWxpZ25lZCBfX2dldF91c2VyCi0jZGVmaW5lIF9fcHV0X3VzZXJfdW5hbGlnbmVkIF9fcHV0X3VzZXIKLQotI2RlZmluZSBfX3B1dF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKQkJXAotKHsJCQkJCQkJXAotCWludCBfX3B1X2VycjsJCQkJCVwKLQlfX3B1dF91c2VyX3NpemUoKHgpLCAocHRyKSwgKHNpemUpLCBfX3B1X2Vycik7CVwKLQlfX3B1X2VycjsJCQkJCVwKLX0pCi0KLQotI2RlZmluZSBfX3B1dF91c2VyX2NoZWNrKHgsIHB0ciwgc2l6ZSkJCQkJXAotKHsJCQkJCQkJCVwKLQlpbnQgX19wdV9lcnI7CQkJCQkJXAotCXR5cGVvZigqKHB0cikpIF9fdXNlciAqX19wdV9hZGRyID0gKHB0cik7CQlcCi0Jc3dpdGNoIChzaXplKSB7CQkJCQkJXAotCWNhc2UgMToJCQkJCQkJXAotCQlfX3B1dF91c2VyX3goMSwgX19wdV9lcnIsIHgsIF9fcHVfYWRkcik7CVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgMjoJCQkJCQkJXAotCQlfX3B1dF91c2VyX3goMiwgX19wdV9lcnIsIHgsIF9fcHVfYWRkcik7CVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJXAotCQlfX3B1dF91c2VyX3goNCwgX19wdV9lcnIsIHgsIF9fcHVfYWRkcik7CVwKLQkJYnJlYWs7CQkJCQkJXAotCWNhc2UgODoJCQkJCQkJXAotCQlfX3B1dF91c2VyX3goOCwgX19wdV9lcnIsIHgsIF9fcHVfYWRkcik7CVwKLQkJYnJlYWs7CQkJCQkJXAotCWRlZmF1bHQ6CQkJCQkJXAotCQlfX3B1dF91c2VyX2JhZCgpOwkJCQlcCi0JfQkJCQkJCQlcCi0JX19wdV9lcnI7CQkJCQkJXAotfSkKLQotI2RlZmluZSBfX3B1dF91c2VyX3NpemUoeCwgcHRyLCBzaXplLCByZXR2YWwpCQkJCVwKLWRvIHsJCQkJCQkJCQlcCi0JcmV0dmFsID0gMDsJCQkJCQkJXAotCV9fY2hrX3VzZXJfcHRyKHB0cik7CQkJCQkJXAotCXN3aXRjaCAoc2l6ZSkgewkJCQkJCQlcCi0JY2FzZSAxOgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgImIiLCAiYiIsICJpcSIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDI6CQkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAidyIsICJ3IiwgImlyIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgNDoJCQkJCQkJCVwKLQkJX19wdXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJsIiwgImsiLCAiaXIiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSA4OgkJCQkJCQkJXAotCQlfX3B1dF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInEiLCAiIiwgIlpyIiwgLUVGQVVMVCk7CVwKLQkJYnJlYWs7CQkJCQkJCVwKLQlkZWZhdWx0OgkJCQkJCQlcCi0JCV9fcHV0X3VzZXJfYmFkKCk7CQkJCQlcCi0JfQkJCQkJCQkJXAotfSB3aGlsZSAoMCkKLQotLyogRklYTUU6IHRoaXMgaGFjayBpcyBkZWZpbml0ZWx5IHdyb25nIC1BSyAqLwotc3RydWN0IF9fbGFyZ2Vfc3RydWN0IHsgdW5zaWduZWQgbG9uZyBidWZbMTAwXTsgfTsKLSNkZWZpbmUgX19tKHgpICgqKHN0cnVjdCBfX2xhcmdlX3N0cnVjdCBfX3VzZXIgKikoeCkpCi0KLS8qCi0gKiBUZWxsIGdjYyB3ZSByZWFkIGZyb20gbWVtb3J5IGluc3RlYWQgb2Ygd3JpdGluZzogdGhpcyBpcyBiZWNhdXNlCi0gKiB3ZSBkbyBub3Qgd3JpdGUgdG8gYW55IG1lbW9yeSBnY2Mga25vd3MgYWJvdXQsIHNvIHRoZXJlIGFyZSBubwotICogYWxpYXNpbmcgaXNzdWVzLgotICovCi0jZGVmaW5lIF9fcHV0X3VzZXJfYXNtKHgsIGFkZHIsIGVyciwgaXR5cGUsIHJ0eXBlLCBsdHlwZSwgZXJybm8pCVwKLQlhc20gdm9sYXRpbGUoIjE6CW1vdiJpdHlwZSIgJSJydHlwZSIxLCUyXG4iCQlcCi0JCSAgICAgIjI6XG4iCQkJCQkJXAotCQkgICAgICIuc2VjdGlvbiAuZml4dXAsIFwiYXhcIlxuIgkJCVwKLQkJICAgICAiMzoJbW92ICUzLCUwXG4iCQkJCVwKLQkJICAgICAiCWptcCAyYlxuIgkJCQkJXAotCQkgICAgICIucHJldmlvdXNcbiIJCQkJCVwKLQkJICAgICBfQVNNX0VYVEFCTEUoMWIsIDNiKQkJCQlcCi0JCSAgICAgOiAiPXIiKGVycikJCQkJCVwKLQkJICAgICA6IGx0eXBlICh4KSwgIm0iIChfX20oYWRkcikpLCAiaSIgKGVycm5vKSwgIjAiIChlcnIpKQotCi0KLSNkZWZpbmUgX19nZXRfdXNlcl9ub2NoZWNrKHgsIHB0ciwgc2l6ZSkJCQlcCi0oewkJCQkJCQkJXAotCWludCBfX2d1X2VycjsJCQkJCQlcCi0JdW5zaWduZWQgbG9uZyBfX2d1X3ZhbDsJCQkJCVwKLQlfX2dldF91c2VyX3NpemUoX19ndV92YWwsIChwdHIpLCAoc2l6ZSksIF9fZ3VfZXJyKTsJXAotCSh4KSA9IChfX2ZvcmNlIHR5cGVvZigqKHB0cikpKV9fZ3VfdmFsOwkJCVwKLQlfX2d1X2VycjsJCQkJCQlcCi19KQotCi1leHRlcm4gaW50IF9fZ2V0X3VzZXJfMSh2b2lkKTsKLWV4dGVybiBpbnQgX19nZXRfdXNlcl8yKHZvaWQpOwotZXh0ZXJuIGludCBfX2dldF91c2VyXzQodm9pZCk7Ci1leHRlcm4gaW50IF9fZ2V0X3VzZXJfOCh2b2lkKTsKLWV4dGVybiBpbnQgX19nZXRfdXNlcl9iYWQodm9pZCk7Ci0KLSNkZWZpbmUgX19nZXRfdXNlcl9zaXplKHgsIHB0ciwgc2l6ZSwgcmV0dmFsKQkJCQlcCi1kbyB7CQkJCQkJCQkJXAotCXJldHZhbCA9IDA7CQkJCQkJCVwKLQlfX2Noa191c2VyX3B0cihwdHIpOwkJCQkJCVwKLQlzd2l0Y2ggKHNpemUpIHsJCQkJCQkJXAotCWNhc2UgMToJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJiIiwgImIiLCAiPXEiLCAtRUZBVUxUKTtcCi0JCWJyZWFrOwkJCQkJCQlcCi0JY2FzZSAyOgkJCQkJCQkJXAotCQlfX2dldF91c2VyX2FzbSh4LCBwdHIsIHJldHZhbCwgInciLCAidyIsICI9ciIsIC1FRkFVTFQpO1wKLQkJYnJlYWs7CQkJCQkJCVwKLQljYXNlIDQ6CQkJCQkJCQlcCi0JCV9fZ2V0X3VzZXJfYXNtKHgsIHB0ciwgcmV0dmFsLCAibCIsICJrIiwgIj1yIiwgLUVGQVVMVCk7XAotCQlicmVhazsJCQkJCQkJXAotCWNhc2UgODoJCQkJCQkJCVwKLQkJX19nZXRfdXNlcl9hc20oeCwgcHRyLCByZXR2YWwsICJxIiwgIiIsICI9ciIsIC1FRkFVTFQpOwlcCi0JCWJyZWFrOwkJCQkJCQlcCi0JZGVmYXVsdDoJCQkJCQkJXAotCQkoeCkgPSBfX2dldF91c2VyX2JhZCgpOwkJCQkJXAotCX0JCQkJCQkJCVwKLX0gd2hpbGUgKDApCi0KLSNkZWZpbmUgX19nZXRfdXNlcl9hc20oeCwgYWRkciwgZXJyLCBpdHlwZSwgcnR5cGUsIGx0eXBlLCBlcnJubykJXAotCWFzbSB2b2xhdGlsZSgiMToJbW92Iml0eXBlIiAlMiwlInJ0eXBlIjFcbiIJCVwKLQkJICAgICAiMjpcbiIJCQkJCQlcCi0JCSAgICAgIi5zZWN0aW9uIC5maXh1cCwgXCJheFwiXG4iCQkJXAotCQkgICAgICIzOgltb3YgJTMsJTBcbiIJCQkJXAotCQkgICAgICIJeG9yIml0eXBlIiAlInJ0eXBlIjEsJSJydHlwZSIxXG4iCQlcCi0JCSAgICAgIglqbXAgMmJcbiIJCQkJCVwKLQkJICAgICAiLnByZXZpb3VzXG4iCQkJCQlcCi0JCSAgICAgX0FTTV9FWFRBQkxFKDFiLCAzYikJCQkJXAotCQkgICAgIDogIj1yIiAoZXJyKSwgbHR5cGUgKHgpCQkJCVwKLQkJICAgICA6ICJtIiAoX19tKGFkZHIpKSwgImkiKGVycm5vKSwgIjAiKGVycikpCi0KIC8qCiAgKiBDb3B5IFRvL0Zyb20gVXNlcnNwYWNlCiAgKi8KQEAgLTQzNyw3ICsxNzgsNiBAQAogCXJldHVybiBjb3B5X3VzZXJfZ2VuZXJpYygoX19mb3JjZSB2b2lkICopZHN0LCBzcmMsIHNpemUpOwogfQogCi0jZGVmaW5lIEFSQ0hfSEFTX05PQ0FDSEVfVUFDQ0VTUyAxCiBleHRlcm4gbG9uZyBfX2NvcHlfdXNlcl9ub2NhY2hlKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCBfX3VzZXIgKnNyYywKIAkJCQl1bnNpZ25lZCBzaXplLCBpbnQgemVyb3Jlc3QpOwogCkBAIC00NTUsNCArMTk1LDcgQEAKIAlyZXR1cm4gX19jb3B5X3VzZXJfbm9jYWNoZShkc3QsIHNyYywgc2l6ZSwgMCk7CiB9CiAKK3Vuc2lnbmVkIGxvbmcKK2NvcHlfdXNlcl9oYW5kbGVfdGFpbChjaGFyICp0bywgY2hhciAqZnJvbSwgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCB6ZXJvcmVzdCk7CisKICNlbmRpZiAvKiBfX1g4Nl82NF9VQUNDRVNTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91bmlzdGRfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni91bmlzdGRfNjQuaAppbmRleCBmZTI2ZTM2Li45YzFhNGEzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdW5pc3RkXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3VuaXN0ZF82NC5oCkBAIC0yOTAsNyArMjkwLDcgQEAKICNkZWZpbmUgX19OUl9ydF9zaWdxdWV1ZWluZm8JCQkxMjkKIF9fU1lTQ0FMTChfX05SX3J0X3NpZ3F1ZXVlaW5mbywgc3lzX3J0X3NpZ3F1ZXVlaW5mbykKICNkZWZpbmUgX19OUl9ydF9zaWdzdXNwZW5kCQkJMTMwCi1fX1NZU0NBTEwoX19OUl9ydF9zaWdzdXNwZW5kLCBzdHViX3J0X3NpZ3N1c3BlbmQpCitfX1NZU0NBTEwoX19OUl9ydF9zaWdzdXNwZW5kLCBzeXNfcnRfc2lnc3VzcGVuZCkKICNkZWZpbmUgX19OUl9zaWdhbHRzdGFjawkJCTEzMQogX19TWVNDQUxMKF9fTlJfc2lnYWx0c3RhY2ssIHN0dWJfc2lnYWx0c3RhY2spCiAjZGVmaW5lIF9fTlJfdXRpbWUJCQkJMTMyCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdXYvdXZfYmF1LmggYi9pbmNsdWRlL2FzbS14ODYvdXYvdXZfYmF1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFhYzBkZgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni91di91dl9iYXUuaApAQCAtMCwwICsxLDMzNyBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlLiAgU2VlIHRoZSBmaWxlICJDT1BZSU5HIiBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBhcmNoaXZlCisgKiBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFNHSSBVViBCcm9hZGNhc3QgQXNzaXN0IFVuaXQgZGVmaW5pdGlvbnMKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggU2lsaWNvbiBHcmFwaGljcywgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICovCisKKyNpZm5kZWYgX19BU01fWDg2X1VWX0JBVV9fCisjZGVmaW5lIF9fQVNNX1g4Nl9VVl9CQVVfXworCisjaW5jbHVkZSA8bGludXgvYml0bWFwLmg+CisjZGVmaW5lIEJJVFNQRVJCWVRFIDgKKworLyoKKyAqIEJyb2FkY2FzdCBBc3Npc3QgVW5pdCBtZXNzYWdpbmcgc3RydWN0dXJlcworICoKKyAqIFNlbGVjdGl2ZSBCcm9hZGNhc3QgYWN0aXZhdGlvbnMgYXJlIGluZHVjZWQgYnkgc29mdHdhcmUgYWN0aW9uCisgKiBzcGVjaWZ5aW5nIGEgcGFydGljdWxhciA4LWRlc2NyaXB0b3IgInNldCIgdmlhIGEgNi1iaXQgaW5kZXggd3JpdHRlbgorICogdG8gYW4gTU1SLgorICogVGh1cyB0aGVyZSBhcmUgNjQgdW5pcXVlIDUxMi1ieXRlIHNldHMgb2YgU0IgZGVzY3JpcHRvcnMgLSBvbmUgc2V0IGZvcgorICogZWFjaCA2LWJpdCBpbmRleCB2YWx1ZS4gVGhlc2UgZGVzY3JpcHRvciBzZXRzIGFyZSBtYXBwZWQgaW4gc2VxdWVuY2UKKyAqIHN0YXJ0aW5nIHdpdGggc2V0IDAgbG9jYXRlZCBhdCB0aGUgYWRkcmVzcyBzcGVjaWZpZWQgaW4gdGhlCisgKiBCQVVfU0JfREVTQ1JJUFRPUl9CQVNFIHJlZ2lzdGVyLCBzZXQgMSBpcyBsb2NhdGVkIGF0IEJBU0UgKyA1MTIsCisgKiBzZXQgMiBpcyBhdCBCQVNFICsgMio1MTIsIHNldCAzIGF0IEJBU0UgKyAzKjUxMiwgYW5kIHNvIG9uLgorICoKKyAqIFdlIHdpbGwgdXNlIDMxIHNldHMsIG9uZSBmb3Igc2VuZGluZyBCQVUgbWVzc2FnZXMgZnJvbSBlYWNoIG9mIHRoZSAzMgorICogY3B1J3Mgb24gdGhlIG5vZGUuCisgKgorICogVExCIHNob290ZG93biB3aWxsIHVzZSB0aGUgZmlyc3Qgb2YgdGhlIDggZGVzY3JpcHRvcnMgb2YgZWFjaCBzZXQuCisgKiBFYWNoIG9mIHRoZSBkZXNjcmlwdG9ycyBpcyA2NCBieXRlcyBpbiBzaXplICg4KjY0ID0gNTEyIGJ5dGVzIGluIGEgc2V0KS4KKyAqLworCisjZGVmaW5lIFVWX0lURU1TX1BFUl9ERVNDUklQVE9SCQk4CisjZGVmaW5lIFVWX0NQVVNfUEVSX0FDVF9TVEFUVVMJCTMyCisjZGVmaW5lIFVWX0FDVF9TVEFUVVNfTUFTSwkJMHgzCisjZGVmaW5lIFVWX0FDVF9TVEFUVVNfU0laRQkJMgorI2RlZmluZSBVVl9BQ1RJVkFUSU9OX0RFU0NSSVBUT1JfU0laRQkzMgorI2RlZmluZSBVVl9ESVNUUklCVVRJT05fU0laRQkJMjU2CisjZGVmaW5lIFVWX1NXX0FDS19OUEVORElORwkJOAorI2RlZmluZSBVVl9CQVVfTUVTU0FHRQkJCTIwMAorLyoKKyAqIE1lc3NhZ2luZyBpcnE7IHNlZSBpcnFfNjQuaCBhbmQgaW5jbHVkZS9hc20teDg2L2h3X2lycV82NC5oCisgKiBUbyBiZSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgaW4gdGhlIGZ1dHVyZQorICovCisjZGVmaW5lIFVWX05FVF9FTkRQT0lOVF9JTlRECQkweDM4CisjZGVmaW5lIFVWX0RFU0NfQkFTRV9QTk9ERV9TSElGVAk0OQorI2RlZmluZSBVVl9QQVlMT0FEUV9QTk9ERV9TSElGVAkJNDkKKyNkZWZpbmUgVVZfUFRDX0JBU0VOQU1FCQkJInNnaV91di9wdGNfc3RhdGlzdGljcyIKKyNkZWZpbmUgdXZfcGh5c25vZGVhZGRyKHgpCQkoKF9fcGEoKHVuc2lnbmVkIGxvbmcpKHgpKSAmIHV2X21tYXNrKSkKKworLyoKKyAqIGJpdHMgaW4gVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18wLzEKKyAqLworI2RlZmluZSBERVNDX1NUQVRVU19JRExFCQkwCisjZGVmaW5lIERFU0NfU1RBVFVTX0FDVElWRQkJMQorI2RlZmluZSBERVNDX1NUQVRVU19ERVNUSU5BVElPTl9USU1FT1VUCTIKKyNkZWZpbmUgREVTQ19TVEFUVVNfU09VUkNFX1RJTUVPVVQJMworCisvKgorICogc291cmNlIHNpZGUgdGhyZXNoaG9sZHMgYXQgd2hpY2ggbWVzc2FnZSByZXRyaWVzIHByaW50IGEgd2FybmluZworICovCisjZGVmaW5lIFNPVVJDRV9USU1FT1VUX0xJTUlUCQkyMAorI2RlZmluZSBERVNUSU5BVElPTl9USU1FT1VUX0xJTUlUCTIwCisKKy8qCisgKiBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgZGVzdGluYXRpb24gc2lkZSBwYXlsb2FkIHF1ZXVlCisgKi8KKyNkZWZpbmUgREVTVF9RX1NJWkUJCQkxNworLyoKKyAqIG51bWJlciBvZiBkZXN0aW5hdGlvbiBzaWRlIHNvZnR3YXJlIGFjayByZXNvdXJjZXMKKyAqLworI2RlZmluZSBERVNUX05VTV9SRVNPVVJDRVMJCTgKKyNkZWZpbmUgTUFYX0NQVVNfUEVSX05PREUJCTMyCisvKgorICogY29tcGxldGlvbiBzdGF0dXNlcyBmb3Igc2VuZGluZyBhIFRMQiBmbHVzaCBtZXNzYWdlCisgKi8KKyNkZWZpbmUJRkxVU0hfUkVUUlkJCQkxCisjZGVmaW5lCUZMVVNIX0dJVkVVUAkJCTIKKyNkZWZpbmUJRkxVU0hfQ09NUExFVEUJCQkzCisKKy8qCisgKiBEaXN0cmlidXRpb246IDMyIGJ5dGVzICgyNTYgYml0cykgKGJ5dGVzIDAtMHgxZiBvZiBkZXNjcmlwdG9yKQorICogSWYgdGhlICdtdWx0aWxldmVsJyBmbGFnIGluIHRoZSBoZWFkZXIgcG9ydGlvbiBvZiB0aGUgZGVzY3JpcHRvcgorICogaGFzIGJlZW4gc2V0IHRvIDAsIHRoZW4gZW5kcG9pbnQgbXVsdGktdW5pY2FzdCBtb2RlIGlzIHNlbGVjdGVkLgorICogVGhlIGRpc3RyaWJ1dGlvbiBzcGVjaWZpY2F0aW9uICgzMiBieXRlcykgaXMgaW50ZXJwcmV0ZWQgYXMgYSAyNTYtYml0CisgKiBkaXN0cmlidXRpb24gdmVjdG9yLiBBZGphY2VudCBiaXRzIGNvcnJlc3BvbmQgdG8gY29uc2VjdXRpdmUgZXZlbiBudW1iZXJlZAorICogbm9kZUlEcy4gVGhlIHJlc3VsdCBvZiBhZGRpbmcgdGhlIGluZGV4IG9mIGEgZ2l2ZW4gYml0IHRvIHRoZSAxNS1iaXQKKyAqICdiYXNlX2Rlc3Rfbm9kZWlkJyBmaWVsZCBvZiB0aGUgaGVhZGVyIGNvcnJlc3BvbmRzIHRvIHRoZQorICogZGVzdGluYXRpb24gbm9kZUlEIGFzc29jaWF0ZWQgd2l0aCB0aGF0IHNwZWNpZmllZCBiaXQuCisgKi8KK3N0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrIHsKKwl1bnNpZ25lZCBsb25nIGJpdHNbQklUU19UT19MT05HUygyNTYpXTsKK307CisKKy8qCisgKiBtYXNrIG9mIGNwdSdzIG9uIGEgbm9kZQorICogKGR1cmluZyBpbml0aWFsaXphdGlvbiB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQgdW5zaWduZWQgbG9uZyBoYXMKKyAqICBlbm91Z2ggYml0cyBmb3IgbWF4LiBjcHUncyBwZXIgbm9kZSkKKyAqLworc3RydWN0IGJhdV9sb2NhbF9jcHVtYXNrIHsKKwl1bnNpZ25lZCBsb25nIGJpdHM7Cit9OworCisvKgorICogUGF5bG9hZDogMTYgYnl0ZXMgKDEyOCBiaXRzKSAoYnl0ZXMgMHgyMC0weDJmIG9mIGRlc2NyaXB0b3IpCisgKiBvbmx5IDEyIGJ5dGVzICg5NiBiaXRzKSBvZiB0aGUgcGF5bG9hZCBhcmVhIGFyZSB1c2FibGUuCisgKiBBbiBhZGRpdGlvbmFsIDMgYnl0ZXMgKGJpdHMgMjc6NCkgb2YgdGhlIGhlYWRlciBhZGRyZXNzIGFyZSBjYXJyaWVkCisgKiB0byB0aGUgbmV4dCBieXRlcyBvZiB0aGUgZGVzdGluYXRpb24gcGF5bG9hZCBxdWV1ZS4KKyAqIEFuZCBhbiBhZGRpdGlvbmFsIDIgYnl0ZXMgb2YgdGhlIGhlYWRlciBTdXBwbF9BIGZpZWxkIGFyZSBhbHNvCisgKiBjYXJyaWVkIHRvIHRoZSBkZXN0aW5hdGlvbiBwYXlsb2FkIHF1ZXVlLgorICogQnV0IHRoZSBmaXJzdCBieXRlIG9mIHRoZSBTdXBwbF9BIGJlY29tZXMgYml0cyAxMjc6MTIwICh0aGUgMTZ0aCBieXRlKQorICogb2YgdGhlIGRlc3RpbmF0aW9uIHBheWxvYWQgcXVldWUsIHdoaWNoIGlzIHdyaXR0ZW4gYnkgdGhlIGhhcmR3YXJlCisgKiB3aXRoIHRoZSBzL3cgYWNrIHJlc291cmNlIGJpdCB2ZWN0b3IuCisgKiBbIGVmZmVjdGl2ZSBtZXNzYWdlIGNvbnRlbnRzICgxNiBieXRlcyAoMTI4IGJpdHMpIG1heGltdW0pLCBub3QgY291bnRpbmcKKyAqICAgdGhlIHMvdyBhY2sgYml0IHZlY3RvciAgXQorICovCisKKy8qCisgKiBUaGUgcGF5bG9hZCBpcyBzb2Z0d2FyZS1kZWZpbmVkIGZvciBJTlREIHRyYW5zYWN0aW9ucworICovCitzdHJ1Y3QgYmF1X21zZ19wYXlsb2FkIHsKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CQkvKiBzaWduaWZpZXMgYSBwYWdlIG9yIGFsbCBUTEIncworCQkJCQkJb2YgdGhlIGNwdSAqLworCS8qIDY0IGJpdHMgKi8KKwl1bnNpZ25lZCBzaG9ydCBzZW5kaW5nX2NwdTsJLyogZmlsbGVkIGluIGJ5IHNlbmRlciAqLworCS8qIDE2IGJpdHMgKi8KKwl1bnNpZ25lZCBzaG9ydCBhY2tub3dsZWRnZV9jb3VudDsvKiBmaWxsZWQgaW4gYnkgZGVzdGluYXRpb24gKi8KKwkvKiAxNiBiaXRzICovCisJdW5zaWduZWQgaW50IHJlc2VydmVkMTozMjsJLyogbm90IHVzYWJsZSAqLworfTsKKworCisvKgorICogTWVzc2FnZSBoZWFkZXI6ICAxNiBieXRlcyAoMTI4IGJpdHMpIChieXRlcyAweDMwLTB4M2Ygb2YgZGVzY3JpcHRvcikKKyAqIHNlZSB0YWJsZSA0LjIuMy4wLjEgaW4gYnJvYWNhc3RfYXNzaXN0IHNwZWMuCisgKi8KK3N0cnVjdCBiYXVfbXNnX2hlYWRlciB7CisJaW50IGRlc3Rfc3Vibm9kZWlkOjY7CS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdHMgNTowICovCisJaW50IGJhc2VfZGVzdF9ub2RlaWQ6MTU7IC8qIG5hc2lkPj4xIChwbm9kZSkgb2YgZmlyc3QgYml0IGluIG5vZGVfbWFwICovCisJLyogYml0cyAyMDo2ICovCisJaW50IGNvbW1hbmQ6ODsJCS8qIG1lc3NhZ2UgdHlwZSAqLworCS8qIGJpdHMgMjg6MjEgKi8KKwkJCQkvKiAweDM4OiBTTjNuZXQgRW5kUG9pbnQgTWVzc2FnZSAqLworCWludCByc3ZkXzE6MzsJCS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdHMgMzE6MjkgKi8KKwkJCQkvKiBpbnQgd2lsbCBhbGlnbiBvbiAzMiBiaXRzICovCisJaW50IHJzdmRfMjo5OwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA0MDozMiAqLworCQkJCS8qIFN1cHBsX0EgaXMgNTYtNDEgKi8KKwlpbnQgcGF5bG9hZF8yYTo4OwkvKiBiZWNvbWVzIGJ5dGUgMTYgb2YgbXNnICovCisJLyogYml0cyA0ODo0MSAqLwkvKiBub3QgY3VycmVudGx5IHVzaW5nICovCisJaW50IHBheWxvYWRfMmI6ODsJLyogYmVjb21lcyBieXRlIDE3IG9mIG1zZyAqLworCS8qIGJpdHMgNTY6NDkgKi8JLyogbm90IGN1cnJlbnRseSB1c2luZyAqLworCQkJCS8qIEFkZHJlc3MgZmllbGQgKDk2OjU3KSBpcyBuZXZlciB1c2VkIGFzIGFuCisJCQkJICAgYWRkcmVzcyAodGhlc2UgYXJlIGFkZHJlc3MgYml0cyA0MjozKSAqLworCWludCByc3ZkXzM6MTsJCS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdCA1NyAqLworCQkJCS8qIGFkZHJlc3MgYml0cyAyNzo0IGFyZSBwYXlsb2FkICovCisJCQkJLyogdGhlc2UgMjQgYml0cyBiZWNvbWUgYnl0ZXMgMTItMTQgb2YgbXNnICovCisJaW50IHJlcGxpZWRfdG86MTsJLyogc2VudCBhcyAwIGJ5IHRoZSBzb3VyY2UgdG8gYnl0ZSAxMiAqLworCS8qIGJpdCA1OCAqLworCisJaW50IHBheWxvYWRfMWE6NTsJLyogbm90IGN1cnJlbnRseSB1c2VkICovCisJLyogYml0cyA2Mzo1OSAqLworCWludCBwYXlsb2FkXzFiOjg7CS8qIG5vdCBjdXJyZW50bHkgdXNlZCAqLworCS8qIGJpdHMgNzE6NjQgKi8KKwlpbnQgcGF5bG9hZF8xYzo4OwkvKiBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKiBiaXRzIDc5OjcyICovCisJaW50IHBheWxvYWRfMWQ6MjsJLyogbm90IGN1cnJlbnRseSB1c2VkICovCisJLyogYml0cyA4MTo4MCAqLworCisJaW50IHJzdmRfNDo3OwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyA4ODo4MiAqLworCWludCBzd19hY2tfZmxhZzoxOwkvKiBzb2Z0d2FyZSBhY2tub3dsZWRnZSBmbGFnICovCisJLyogYml0IDg5ICovCisJCQkJLyogSU5URCB0cmFzYWN0aW9ucyBhdCBkZXN0aW5hdGlvbiBhcmUgdG8KKwkJCQkgICB3YWl0IGZvciBzb2Z0d2FyZSBhY2tub3dsZWRnZSAqLworCWludCByc3ZkXzU6NjsJCS8qIG11c3QgYmUgemVybyAqLworCS8qIGJpdHMgOTU6OTAgKi8KKwlpbnQgcnN2ZF82OjU7CQkvKiBtdXN0IGJlIHplcm8gKi8KKwkvKiBiaXRzIDEwMDo5NiAqLworCWludCBpbnRfYm90aDoxOwkJLyogaWYgMSwgaW50ZXJydXB0IGJvdGggc29ja2V0cyBvbiB0aGUgYmxhZGUgKi8KKwkvKiBiaXQgMTAxKi8KKwlpbnQgZmFpcm5lc3M6MzsJCS8qIHVzdWFsbHkgemVybyAqLworCS8qIGJpdHMgMTA0OjEwMiAqLworCWludCBtdWx0aWxldmVsOjE7CS8qIG11bHRpLWxldmVsIG11bHRpY2FzdCBmb3JtYXQgKi8KKwkvKiBiaXQgMTA1ICovCisJCQkJLyogMCBmb3IgVExCOiBlbmRwb2ludCBtdWx0aS11bmljYXN0IG1lc3NhZ2VzICovCisJaW50IGNoYWluaW5nOjE7CQkvKiBuZXh0IGRlc2NyaXB0b3IgaXMgcGFydCBvZiB0aGlzIGFjdGl2YXRpb24qLworCS8qIGJpdCAxMDYgKi8KKwlpbnQgcnN2ZF83OjIxOwkJLyogbXVzdCBiZSB6ZXJvICovCisJLyogYml0cyAxMjc6MTA3ICovCit9OworCisvKgorICogVGhlIGFjdGl2YXRpb24gZGVzY3JpcHRvcjoKKyAqIFRoZSBmb3JtYXQgb2YgdGhlIG1lc3NhZ2UgdG8gc2VuZCwgcGx1cyBhbGwgYWNjb21wYW55aW5nIGNvbnRyb2wKKyAqIFNob3VsZCBiZSA2NCBieXRlcworICovCitzdHJ1Y3QgYmF1X2Rlc2MgeworCXN0cnVjdCBiYXVfdGFyZ2V0X25vZGVtYXNrIGRpc3RyaWJ1dGlvbjsKKwkvKgorCSAqIG1lc3NhZ2UgdGVtcGxhdGUsIGNvbnNpc3Rpbmcgb2YgaGVhZGVyIGFuZCBwYXlsb2FkOgorCSAqLworCXN0cnVjdCBiYXVfbXNnX2hlYWRlciBoZWFkZXI7CisJc3RydWN0IGJhdV9tc2dfcGF5bG9hZCBwYXlsb2FkOworfTsKKy8qCisgKiAgIC1wYXlsb2FkLS0gICAgLS0tLS0tLS0taGVhZGVyLS0tLS0tCisgKiAgIGJ5dGVzIDAtMTEgICAgYml0cyA0MS01NiAgYml0cyA1OC04MQorICogICAgICAgQSAgICAgICAgICAgQiAgKDIpICAgICAgQyAoMykKKyAqCisgKiAgICAgICAgICAgIEEvQi9DIGFyZSBtb3ZlZCB0bzoKKyAqICAgICAgIEEgICAgICAgICAgICBDICAgICAgICAgIEIKKyAqICAgYnl0ZXMgMC0xMSAgYnl0ZXMgMTItMTQgIGJ5dGVzIDE2LTE3ICAoYnl0ZSAxNSBmaWxsZWQgaW4gYnkgaHcgYXMgdmVjdG9yKQorICogICAtLS0tLS0tLS0tLS1wYXlsb2FkIHF1ZXVlLS0tLS0tLS0tLS0KKyAqLworCisvKgorICogVGhlIHBheWxvYWQgcXVldWUgb24gdGhlIGRlc3RpbmF0aW9uIHNpZGUgaXMgYW4gYXJyYXkgb2YgdGhlc2UuCisgKiBXaXRoIEJBVV9NSVNDX0NPTlRST0wgc2V0IGZvciBzb2Z0d2FyZSBhY2tub3dsZWRnZSBtb2RlLCB0aGUgbWVzc2FnZXMKKyAqIGFyZSAzMiBieXRlcyAoMiBtaWNyb3BhY2tldHMpICgyNTYgYml0cykgaW4gbGVuZ3RoLCBidXQgY29udGFpbiBvbmx5IDE3CisgKiBieXRlcyBvZiB1c2FibGUgZGF0YSwgaW5jbHVkaW5nIHRoZSBzdyBhY2sgdmVjdG9yIGluIGJ5dGUgMTUgKGJpdHMgMTI3OjEyMCkKKyAqICgxMiBieXRlcyBjb21lIGZyb20gYmF1X21zZ19wYXlsb2FkLCAzIGZyb20gcGF5bG9hZF8xLCAyIGZyb20KKyAqICBzd19hY2tfdmVjdG9yIGFuZCBwYXlsb2FkXzIpCisgKiAiRW5hYmxpbmcgU29mdHdhcmUgQWNrbm93bGVkZ21lbnQgbW9kZSAoc2VlIFNlY3Rpb24gNC4zLjMgU29mdHdhcmUKKyAqICBBY2tub3dsZWRnZSBQcm9jZXNzaW5nKSBhbHNvIHNlbGVjdHMgMzIgYnl0ZSAoMTcgYnl0ZXMgdXNhYmxlKSBwYXlsb2FkCisgKiAgb3BlcmF0aW9uLiIKKyAqLworc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5IHsKKwl1bnNpZ25lZCBsb25nIGFkZHJlc3M7CQkvKiBzaWduaWZpZXMgYSBwYWdlIG9yIGFsbCBUTEIncworCQkJCQkJb2YgdGhlIGNwdSAqLworCS8qIDY0IGJpdHMsIGJ5dGVzIDAtNyAqLworCisJdW5zaWduZWQgc2hvcnQgc2VuZGluZ19jcHU7CS8qIGNwdSB0aGF0IHNlbnQgdGhlIG1lc3NhZ2UgKi8KKwkvKiAxNiBiaXRzLCBieXRlcyA4LTkgKi8KKworCXVuc2lnbmVkIHNob3J0IGFja25vd2xlZGdlX2NvdW50OyAvKiBmaWxsZWQgaW4gYnkgZGVzdGluYXRpb24gKi8KKwkvKiAxNiBiaXRzLCBieXRlcyAxMC0xMSAqLworCisJdW5zaWduZWQgc2hvcnQgcmVwbGllZF90bzoxOwkvKiBzZW50IGFzIDAgYnkgdGhlIHNvdXJjZSAqLworCS8qIDEgYml0ICovCisJdW5zaWduZWQgc2hvcnQgdW51c2VkMTo3OyAgICAgICAvKiBub3QgY3VycmVudGx5IHVzaW5nICovCisJLyogNyBiaXRzOiBieXRlIDEyKSAqLworCisJdW5zaWduZWQgY2hhciB1bnVzZWQyWzJdOwkvKiBub3QgY3VycmVudGx5IHVzaW5nICovCisJLyogYnl0ZXMgMTMtMTQgKi8KKworCXVuc2lnbmVkIGNoYXIgc3dfYWNrX3ZlY3RvcjsJLyogZmlsbGVkIGluIGJ5IHRoZSBoYXJkd2FyZSAqLworCS8qIGJ5dGUgMTUgKGJpdHMgMTI3OjEyMCkgKi8KKworCXVuc2lnbmVkIGNoYXIgdW51c2VkNFszXTsJLyogbm90IGN1cnJlbnRseSB1c2luZyBieXRlcyAxNy0xOSAqLworCS8qIGJ5dGVzIDE3LTE5ICovCisKKwlpbnQgbnVtYmVyX29mX2NwdXM7CQkvKiBmaWxsZWQgaW4gYXQgZGVzdGluYXRpb24gKi8KKwkvKiAzMiBiaXRzLCBieXRlcyAyMC0yMyAoYWxpZ25lZCkgKi8KKworCXVuc2lnbmVkIGNoYXIgdW51c2VkNVs4XTsgICAgICAgLyogbm90IHVzaW5nICovCisJLyogYnl0ZXMgMjQtMzEgKi8KK307CisKKy8qCisgKiBvbmUgZm9yIGV2ZXJ5IHNsb3QgaW4gdGhlIGRlc3RpbmF0aW9uIHBheWxvYWQgcXVldWUKKyAqLworc3RydWN0IGJhdV9tc2dfc3RhdHVzIHsKKwlzdHJ1Y3QgYmF1X2xvY2FsX2NwdW1hc2sgc2Vlbl9ieTsJLyogbWFwIG9mIGNwdSdzICovCit9OworCisvKgorICogb25lIGZvciBldmVyeSBzbG90IGluIHRoZSBkZXN0aW5hdGlvbiBzb2Z0d2FyZSBhY2sgcmVzb3VyY2VzCisgKi8KK3N0cnVjdCBiYXVfc3dfYWNrX3N0YXR1cyB7CisJc3RydWN0IGJhdV9wYXlsb2FkX3F1ZXVlX2VudHJ5ICptc2c7CS8qIGFzc29jaWF0ZWQgbWVzc2FnZSAqLworCWludCB3YXRjaGVyOwkJCQkvKiBjcHUgbW9uaXRvcmluZywgb3IgLTEgKi8KK307CisKKy8qCisgKiBvbmUgb24gZXZlcnkgbm9kZSBhbmQgcGVyLWNwdTsgdG8gbG9jYXRlIHRoZSBzb2Z0d2FyZSB0YWJsZXMKKyAqLworc3RydWN0IGJhdV9jb250cm9sIHsKKwlzdHJ1Y3QgYmF1X2Rlc2MgKmRlc2NyaXB0b3JfYmFzZTsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKmJhdV9tc2dfaGVhZDsKKwlzdHJ1Y3QgYmF1X3BheWxvYWRfcXVldWVfZW50cnkgKnZhX3F1ZXVlX2ZpcnN0OworCXN0cnVjdCBiYXVfcGF5bG9hZF9xdWV1ZV9lbnRyeSAqdmFfcXVldWVfbGFzdDsKKwlzdHJ1Y3QgYmF1X21zZ19zdGF0dXMgKm1zZ19zdGF0dXNlczsKKwlpbnQgKndhdGNoaW5nOyAvKiBwb2ludGVyIHRvIGFycmF5ICovCit9OworCisvKgorICogVGhpcyBzdHJ1Y3R1cmUgaXMgYWxsb2NhdGVkIHBlcl9jcHUgZm9yIFVWIFRMQiBzaG9vdGRvd24gc3RhdGlzdGljcy4KKyAqLworc3RydWN0IHB0Y19zdGF0cyB7CisJdW5zaWduZWQgbG9uZyBwdGNfaTsJLyogbnVtYmVyIG9mIElQSS1zdHlsZSBmbHVzaGVzICovCisJdW5zaWduZWQgbG9uZyByZXF1ZXN0b3I7CS8qIG51bWJlciBvZiBub2RlcyB0aGlzIGNwdSBzZW50IHRvICovCisJdW5zaWduZWQgbG9uZyByZXF1ZXN0ZWU7CS8qIHRpbWVzIGNwdSB3YXMgcmVtb3RlbHkgcmVxdWVzdGVkICovCisJdW5zaWduZWQgbG9uZyBhbGx0bGI7CS8qIHRpbWVzIGFsbCB0bGIncyBvbiB0aGlzIGNwdSB3ZXJlIGZsdXNoZWQgKi8KKwl1bnNpZ25lZCBsb25nIG9uZXRsYjsJLyogdGltZXMganVzdCBvbmUgdGxiIG9uIHRoaXMgY3B1IHdhcyBmbHVzaGVkICovCisJdW5zaWduZWQgbG9uZyBzX3JldHJ5OwkvKiByZXRyaWVzIG9uIHNvdXJjZSBzaWRlIHRpbWVvdXRzICovCisJdW5zaWduZWQgbG9uZyBkX3JldHJ5OwkvKiByZXRyaWVzIG9uIGRlc3RpbmF0aW9uIHNpZGUgdGltZW91dHMgKi8KKwl1bnNpZ25lZCBsb25nIHNmbHVzaDsJLyogY3ljbGVzIHNwZW50IGluIHV2X2ZsdXNoX3RsYl9vdGhlcnMgKi8KKwl1bnNpZ25lZCBsb25nIGRmbHVzaDsJLyogY3ljbGVzIHNwZW50IG9uIGRlc3RpbmF0aW9uIHNpZGUgKi8KKwl1bnNpZ25lZCBsb25nIHJldHJpZXNvazsgLyogc3VjY2Vzc2VzIG9uIHJldHJpZXMgKi8KKwl1bnNpZ25lZCBsb25nIG5vbXNnOwkvKiBpbnRlcnJ1cHRzIHdpdGggbm8gbWVzc2FnZSAqLworCXVuc2lnbmVkIGxvbmcgbXVsdG1zZzsJLyogaW50ZXJydXB0cyB3aXRoIG11bHRpcGxlIG1lc3NhZ2VzICovCisJdW5zaWduZWQgbG9uZyBudGFyZ2V0ZWQ7Lyogbm9kZXMgdGFyZ2V0ZWQgKi8KK307CisKK3N0YXRpYyBpbmxpbmUgaW50IGJhdV9ub2RlX2lzc2V0KGludCBub2RlLCBzdHJ1Y3QgYmF1X3RhcmdldF9ub2RlbWFzayAqZHN0cCkKK3sKKwlyZXR1cm4gY29uc3RhbnRfdGVzdF9iaXQobm9kZSwgJmRzdHAtPmJpdHNbMF0pOworfQorc3RhdGljIGlubGluZSB2b2lkIGJhdV9ub2RlX3NldChpbnQgbm9kZSwgc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgKmRzdHApCit7CisJX19zZXRfYml0KG5vZGUsICZkc3RwLT5iaXRzWzBdKTsKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCBiYXVfbm9kZXNfY2xlYXIoc3RydWN0IGJhdV90YXJnZXRfbm9kZW1hc2sgKmRzdHAsIGludCBuYml0cykKK3sKKwliaXRtYXBfemVybygmZHN0cC0+Yml0c1swXSwgbmJpdHMpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYmF1X2NwdWJpdHNfY2xlYXIoc3RydWN0IGJhdV9sb2NhbF9jcHVtYXNrICpkc3RwLCBpbnQgbmJpdHMpCit7CisJYml0bWFwX3plcm8oJmRzdHAtPmJpdHMsIG5iaXRzKTsKK30KKworI2RlZmluZSBjcHViaXRfaXNzZXQoY3B1LCBiYXVfbG9jYWxfY3B1bWFzaykgXAorCXRlc3RfYml0KChjcHUpLCAoYmF1X2xvY2FsX2NwdW1hc2spLmJpdHMpCisKK2V4dGVybiBpbnQgdXZfZmx1c2hfdGxiX290aGVycyhjcHVtYXNrX3QgKiwgc3RydWN0IG1tX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nKTsKK2V4dGVybiB2b2lkIHV2X2JhdV9tZXNzYWdlX2ludHIxKHZvaWQpOworZXh0ZXJuIHZvaWQgdXZfYmF1X3RpbWVvdXRfaW50cjEodm9pZCk7CisKKyNlbmRpZiAvKiBfX0FTTV9YODZfVVZfQkFVX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni91di91dl9odWIuaCBiL2luY2x1ZGUvYXNtLXg4Ni91di91dl9odWIuaAppbmRleCAyNmI5MjQwLi5hNGVmMjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdXYvdXZfaHViLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X2h1Yi5oCkBAIC01LDcgKzUsNyBAQAogICoKICAqIFNHSSBVViBhcmNoaXRlY3R1cmFsIGRlZmluaXRpb25zCiAgKgotICogQ29weXJpZ2h0IChDKSAyMDA3IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFNpbGljb24gR3JhcGhpY3MsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqLwogCiAjaWZuZGVmIF9fQVNNX1g4Nl9VVl9IVUJfSF9fCkBAIC0yMCwyNiArMjAsNDkgQEAKIC8qCiAgKiBBZGRyZXNzaW5nIFRlcm1pbm9sb2d5CiAgKgotICogCU5BU0lEIC0gbmV0d29yayBJRCBvZiBhIHJvdXRlciwgTWJyaWNrIG9yIENicmljay4gTmFzaWQgdmFsdWVzIG9mCi0gKiAJCXJvdXRlcnMgYWx3YXlzIGhhdmUgbG93IGJpdCBvZiAxLCBDL01Ccmlja3MgaGF2ZSBsb3cgYml0Ci0gKiAJCWVxdWFsIHRvIDAuIE1vc3QgYWRkcmVzc2luZyBtYWNyb3MgdGhhdCB0YXJnZXQgVVYgaHViIGNoaXBzCi0gKiAJCXJpZ2h0IHNoaWZ0IHRoZSBOQVNJRCBieSAxIHRvIGV4Y2x1ZGUgdGhlIGFsd2F5cy16ZXJvIGJpdC4KKyAqCU0gICAgICAgLSBUaGUgbG93IE0gYml0cyBvZiBhIHBoeXNpY2FsIGFkZHJlc3MgcmVwcmVzZW50IHRoZSBvZmZzZXQKKyAqCQkgIGludG8gdGhlIGJsYWRlIGxvY2FsIG1lbW9yeS4gUkFNIG1lbW9yeSBvbiBhIGJsYWRlIGlzIHBoeXNpY2FsbHkKKyAqCQkgIGNvbnRpZ3VvdXMgKGFsdGhvdWdoIHZhcmlvdXMgSU8gc3BhY2VzIG1heSBwdW5jaCBob2xlcyBpbgorICoJCSAgaXQpLi4KICAqCi0gKglTTkFTSUQgLSBOQVNJRCByaWdodCBzaGlmdGVkIGJ5IDEgYml0LgorICogCU4JLSBOdW1iZXIgb2YgYml0cyBpbiB0aGUgbm9kZSBwb3J0aW9uIG9mIGEgc29ja2V0IHBoeXNpY2FsCisgKiAJCSAgYWRkcmVzcy4KKyAqCisgKiAJTkFTSUQgICAtIG5ldHdvcmsgSUQgb2YgYSByb3V0ZXIsIE1icmljayBvciBDYnJpY2suIE5hc2lkIHZhbHVlcyBvZgorICogCSAJICByb3V0ZXJzIGFsd2F5cyBoYXZlIGxvdyBiaXQgb2YgMSwgQy9NQnJpY2tzIGhhdmUgbG93IGJpdAorICogCQkgIGVxdWFsIHRvIDAuIE1vc3QgYWRkcmVzc2luZyBtYWNyb3MgdGhhdCB0YXJnZXQgVVYgaHViIGNoaXBzCisgKiAJCSAgcmlnaHQgc2hpZnQgdGhlIE5BU0lEIGJ5IDEgdG8gZXhjbHVkZSB0aGUgYWx3YXlzLXplcm8gYml0LgorICogCQkgIE5BU0lEcyBjb250YWluIHVwIHRvIDE1IGJpdHMuCisgKgorICoJR05PREUgICAtIE5BU0lEIHJpZ2h0IHNoaWZ0ZWQgYnkgMSBiaXQuIE1vc3QgbW1ycyBjb250YWluIGdub2RlcyBpbnN0ZWFkCisgKgkJICBvZiBuYXNpZHMuCisgKgorICogCVBOT0RFICAgLSB0aGUgbG93IE4gYml0cyBvZiB0aGUgR05PREUuIFRoZSBQTk9ERSBpcyB0aGUgbW9zdCB1c2VmdWwgdmFyaWFudAorICogCQkgIG9mIHRoZSBuYXNpZCBmb3Igc29ja2V0IHVzYWdlLgorICoKKyAqCisgKiAgTnVtYUxpbmsgR2xvYmFsIFBoeXNpY2FsIEFkZHJlc3MgRm9ybWF0OgorICogICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgfDAwLi4wMDB8ICAgICAgR05PREUgICAgICAgICAgICAgfCAgICAgIE5vZGVPZmZzZXQgICAgIHwKKyAqICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgICAgICAgfDwtLS0tLS0tNTMgLSBNIGJpdHMgLS0tPnw8LS0tLS0tLS1NIGJpdHMgLS0tLS0+CisgKgorICoJTSAtIG51bWJlciBvZiBub2RlIG9mZnNldCBiaXRzICgzNSAuLiA0MCkKICAqCiAgKgogICogIE1lbW9yeS9VVi1IVUIgUHJvY2Vzc29yIFNvY2tldCBBZGRyZXNzIEZvcm1hdDoKLSAqICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAqICB8MDAuLjAwMDB8ICAgIFNOQVNJRCAgICAgfCAgICAgIE5vZGVPZmZzZXQgICAgIHwKLSAqICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAqICAgICAgICAgICA8LS0tIE4gYml0cyAtLS0+fDwtLS0tLS0tLU0gYml0cyAtLS0tLT4KKyAqICArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogIHwwMC4uMDAwMDAwMDAwMDAwfCAgIFBOT0RFICAgICAgIHwgICAgICBOb2RlT2Zmc2V0ICAgICB8CisgKiAgKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICAgICAgICAgICAgICAgIDwtLS0gTiBiaXRzIC0tLT58PC0tLS0tLS0tTSBiaXRzIC0tLS0tPgogICoKLSAqCU0gbnVtYmVyIG9mIG5vZGUgb2Zmc2V0IGJpdHMgKDM1IC4uIDQwKQotICoJTiBudW1iZXIgb2YgU05BU0lEIGJpdHMgKDAgLi4gMTApCisgKglNIC0gbnVtYmVyIG9mIG5vZGUgb2Zmc2V0IGJpdHMgKDM1IC4uIDQwKQorICoJTiAtIG51bWJlciBvZiBQTk9ERSBiaXRzICgwIC4uIDEwKQogICoKICAqCQlOb3RlOiBNICsgTiBjYW5ub3QgY3VycmVudGx5IGV4Y2VlZCA0NCAoeDg2XzY0KSBvciA0NiAoSUE2NCkuCiAgKgkJVGhlIGFjdHVhbCB2YWx1ZXMgYXJlIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW50IGFuZCBhcmUgc2V0IGF0Ci0gKgkJYm9vdCB0aW1lCisgKgkJYm9vdCB0aW1lLiBNICYgTiB2YWx1ZXMgYXJlIHNldCBieSB0aGUgaGFyZHdhcmUvQklPUyBhdCBib290LgorICoKICAqCiAgKiBBUElDSUQgZm9ybWF0CiAgKiAJTk9URSEhISEhISBUaGlzIGlzIHRoZSBjdXJyZW50IGZvcm1hdCBvZiB0aGUgQVBJQ0lELiBIb3dldmVyLCBjb2RlCkBAIC00OCwxNCArNzEsMTQgQEAKICAqCiAgKiAJCTExMTExMTAwMDAwMDAwMDAKICAqIAkJNTQzMjEwOTg3NjU0MzIxMAotICoJCW5ubm5ubm5ubm5sYzBjY2gKKyAqCQlwcHBwcHBwcHBwbGMwY2NoCiAgKgkJc3Nzc3Nzc3Nzc3MKICAqCi0gKgkJCW4gID0gc25hc2lkIGJpdHMKKyAqCQkJcCAgPSBwbm9kZSBiaXRzCiAgKgkJCWwgPSAgc29ja2V0IG51bWJlciBvbiBib2FyZAogICoJCQljICA9IGNvcmUKICAqCQkJaCAgPSBoeXBlcnRocmVhZAotICoJCQlzICA9IGJpdHMgdGhhdCBhcmUgaW4gdGhlIHNvY2tldCBDU1IKKyAqCQkJcyAgPSBiaXRzIHRoYXQgYXJlIGluIHRoZSBTT0NLRVRfSUQgQ1NSCiAgKgogICoJTm90ZTogUHJvY2Vzc29yIG9ubHkgc3VwcG9ydHMgMTIgYml0cyBpbiB0aGUgQVBJQ0lEIHJlZ2lzdGVyLiBUaGUgQUNQSQogICoJICAgICAgdGFibGVzIGhvbGQgYWxsIDE2IGJpdHMuIFNvZnR3YXJlIG5lZWRzIHRvIGJlIGF3YXJlIG9mIHRoaXMuCkBAIC03NCw3ICs5Nyw3IEBACiAgKiBUaGlzIHZhbHVlIGlzIGFsc28gdGhlIHZhbHVlIG9mIHRoZSBtYXhpbXVtIG51bWJlciBvZiBub24tcm91dGVyIE5BU0lEcwogICogaW4gdGhlIG51bWFsaW5rIGZhYnJpYy4KICAqCi0gKiBOT1RFOiBhIGJyaWNrIG1heSBiZSAxIG9yIDIgT1Mgbm9kZXMuIERvbid0IGdldCB0aGVzZSBjb25mdXNlZC4KKyAqIE5PVEU6IGEgYnJpY2sgbWF5IGNvbnRhaW4gMSBvciAyIE9TIG5vZGVzLiBEb24ndCBnZXQgdGhlc2UgY29uZnVzZWQuCiAgKi8KICNkZWZpbmUgVVZfTUFYX05VTUFMSU5LX0JMQURFUwkxNjM4NAogCkBAIC05Niw4ICsxMTksMTIgQEAKICAqLwogc3RydWN0IHV2X2h1Yl9pbmZvX3MgewogCXVuc2lnbmVkIGxvbmcJZ2xvYmFsX21tcl9iYXNlOwotCXVuc2lnbmVkIHNob3J0CWxvY2FsX25hc2lkOwotCXVuc2lnbmVkIHNob3J0CWdub2RlX3VwcGVyOworCXVuc2lnbmVkIGxvbmcJZ3BhX21hc2s7CisJdW5zaWduZWQgbG9uZwlnbm9kZV91cHBlcjsKKwl1bnNpZ25lZCBsb25nCWxvd21lbV9yZW1hcF90b3A7CisJdW5zaWduZWQgbG9uZwlsb3dtZW1fcmVtYXBfYmFzZTsKKwl1bnNpZ25lZCBzaG9ydAlwbm9kZTsKKwl1bnNpZ25lZCBzaG9ydAlwbm9kZV9tYXNrOwogCXVuc2lnbmVkIHNob3J0CWNvaGVyZW5jeV9kb21haW5fbnVtYmVyOwogCXVuc2lnbmVkIHNob3J0CW51bWFfYmxhZGVfaWQ7CiAJdW5zaWduZWQgY2hhcglibGFkZV9wcm9jZXNzb3JfaWQ7CkBAIC0xMTIsODMgKzEzOSwxMjYgQEAKICAqIExvY2FsICYgR2xvYmFsIE1NUiBzcGFjZSBtYWNyb3MuCiAgKiAJTm90ZTogbWFjcm9zIGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIE9OTFkgYnkgaW5saW5lIGZ1bmN0aW9ucwogICogCWluIHRoaXMgZmlsZSAtIG5vdCBieSBvdGhlciBrZXJuZWwgY29kZS4KKyAqIAkJbiAtICBOQVNJRCAoZnVsbCAxNS1iaXQgZ2xvYmFsIG5hc2lkKQorICogCQlnIC0gIEdOT0RFIChmdWxsIDE1LWJpdCBnbG9iYWwgbmFzaWQsIHJpZ2h0IHNoaWZ0ZWQgMSkKKyAqIAkJcCAtICBQTk9ERSAobG9jYWwgcGFydCBvZiBuc2lkcywgcmlnaHQgc2hpZnRlZCAxKQogICovCi0jZGVmaW5lIFVWX1NOQVNJRChuKQkJCSgobikgPj4gMSkKLSNkZWZpbmUgVVZfTkFTSUQobikJCQkoKG4pIDw8IDEpCisjZGVmaW5lIFVWX05BU0lEX1RPX1BOT0RFKG4pCQkoKChuKSA+PiAxKSAmIHV2X2h1Yl9pbmZvLT5wbm9kZV9tYXNrKQorI2RlZmluZSBVVl9QTk9ERV9UT19OQVNJRChwKQkJKCgocCkgPDwgMSkgfCB1dl9odWJfaW5mby0+Z25vZGVfdXBwZXIpCiAKICNkZWZpbmUgVVZfTE9DQUxfTU1SX0JBU0UJCTB4ZjQwMDAwMDBVTAogI2RlZmluZSBVVl9HTE9CQUxfTU1SMzJfQkFTRQkJMHhmODAwMDAwMFVMCiAjZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9CQVNFCQkodXZfaHViX2luZm8tPmdsb2JhbF9tbXJfYmFzZSkKKyNkZWZpbmUgVVZfTE9DQUxfTU1SX1NJWkUJCSg2NFVMICogMTAyNCAqIDEwMjQpCisjZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9TSVpFCQkoNjRVTCAqIDEwMjQgKiAxMDI0KQogCi0jZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9TTkFTSURfTUFTSwkweDNmZgotI2RlZmluZSBVVl9HTE9CQUxfTU1SMzJfU05BU0lEX1NISUZUCTE1Ci0jZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9TTkFTSURfU0hJRlQJMjYKKyNkZWZpbmUgVVZfR0xPQkFMX01NUjMyX1BOT0RFX1NISUZUCTE1CisjZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9QTk9ERV9TSElGVAkyNgogCi0jZGVmaW5lIFVWX0dMT0JBTF9NTVIzMl9OQVNJRF9CSVRTKG4pCQkJCQlcCi0JCSgoKFVWX1NOQVNJRChuKSAmIFVWX0dMT0JBTF9NTVIzMl9TTkFTSURfTUFTSykpIDw8CVwKLQkJKFVWX0dMT0JBTF9NTVIzMl9TTkFTSURfU0hJRlQpKQorI2RlZmluZSBVVl9HTE9CQUxfTU1SMzJfUE5PREVfQklUUyhwKQkoKHApIDw8IChVVl9HTE9CQUxfTU1SMzJfUE5PREVfU0hJRlQpKQogCi0jZGVmaW5lIFVWX0dMT0JBTF9NTVI2NF9OQVNJRF9CSVRTKG4pCQkJCQlcCi0JKCh1bnNpZ25lZCBsb25nKVVWX1NOQVNJRChuKSA8PCBVVl9HTE9CQUxfTU1SNjRfU05BU0lEX1NISUZUKQorI2RlZmluZSBVVl9HTE9CQUxfTU1SNjRfUE5PREVfQklUUyhwKQkJCQkJXAorCSgodW5zaWduZWQgbG9uZykocCkgPDwgVVZfR0xPQkFMX01NUjY0X1BOT0RFX1NISUZUKQogCi0jZGVmaW5lIFVWX0FQSUNfTkFTSURfU0hJRlQJNgorI2RlZmluZSBVVl9BUElDX1BOT0RFX1NISUZUCTYKIAogLyoKLSAqIEV4dHJhY3QgYSBOQVNJRCBmcm9tIGFuIEFQSUNJRCAoZnVsbCBhcGljaWQsIG5vdCBwcm9jZXNzb3Igc3Vic2V0KQorICogTWFjcm9zIGZvciBjb252ZXJ0aW5nIGJldHdlZW4ga2VybmVsIHZpcnR1YWwgYWRkcmVzc2VzLCBzb2NrZXQgbG9jYWwgcGh5c2ljYWwKKyAqIGFkZHJlc3NlcywgYW5kIFVWIGdsb2JhbCBwaHlzaWNhbCBhZGRyZXNzZXMuCisgKiAJTm90ZTogdXNlIHRoZSBzdGFuZGFyZCBfX3BhKCkgJiBfX3ZhKCkgbWFjcm9zIGZvciBjb252ZXJ0aW5nCisgKiAJICAgICAgYmV0d2VlbiBzb2NrZXQgdmlydHVhbCBhbmQgc29ja2V0IHBoeXNpY2FsIGFkZHJlc3Nlcy4KICAqLwotc3RhdGljIGlubGluZSBpbnQgdXZfYXBpY2lkX3RvX25hc2lkKGludCBhcGljaWQpCisKKy8qIHNvY2tldCBwaHlzIFJBTSAtLT4gVVYgZ2xvYmFsIHBoeXNpY2FsIGFkZHJlc3MgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9zb2NfcGh5c19yYW1fdG9fZ3BhKHVuc2lnbmVkIGxvbmcgcGFkZHIpCiB7Ci0JcmV0dXJuIChVVl9OQVNJRChhcGljaWQgPj4gVVZfQVBJQ19OQVNJRF9TSElGVCkpOworCWlmIChwYWRkciA8IHV2X2h1Yl9pbmZvLT5sb3dtZW1fcmVtYXBfdG9wKQorCQlwYWRkciArPSB1dl9odWJfaW5mby0+bG93bWVtX3JlbWFwX2Jhc2U7CisJcmV0dXJuIHBhZGRyIHwgdXZfaHViX2luZm8tPmdub2RlX3VwcGVyOworfQorCisKKy8qIHNvY2tldCB2aXJ0dWFsIC0tPiBVViBnbG9iYWwgcGh5c2ljYWwgYWRkcmVzcyAqLworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X2dwYSh2b2lkICp2KQoreworCXJldHVybiBfX3BhKHYpIHwgdXZfaHViX2luZm8tPmdub2RlX3VwcGVyOworfQorCisvKiBzb2NrZXQgdmlydHVhbCAtLT4gVVYgZ2xvYmFsIHBoeXNpY2FsIGFkZHJlc3MgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCAqdXZfdmdwYSh2b2lkICp2KQoreworCXJldHVybiAodm9pZCAqKXV2X2dwYSh2KTsKK30KKworLyogVVYgZ2xvYmFsIHBoeXNpY2FsIGFkZHJlc3MgLS0+IHNvY2tldCB2aXJ0dWFsICovCitzdGF0aWMgaW5saW5lIHZvaWQgKnV2X3ZhKHVuc2lnbmVkIGxvbmcgZ3BhKQoreworCXJldHVybiBfX3ZhKGdwYSAmIHV2X2h1Yl9pbmZvLT5ncGFfbWFzayk7Cit9CisKKy8qIHBub2RlLCBvZmZzZXQgLS0+IHNvY2tldCB2aXJ0dWFsICovCitzdGF0aWMgaW5saW5lIHZvaWQgKnV2X3Bub2RlX29mZnNldF90b192YWRkcihpbnQgcG5vZGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQoreworCXJldHVybiBfX3ZhKCgodW5zaWduZWQgbG9uZylwbm9kZSA8PCB1dl9odWJfaW5mby0+bV92YWwpIHwgb2Zmc2V0KTsKK30KKworCisvKgorICogRXh0cmFjdCBhIFBOT0RFIGZyb20gYW4gQVBJQ0lEIChmdWxsIGFwaWNpZCwgbm90IHByb2Nlc3NvciBzdWJzZXQpCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IHV2X2FwaWNpZF90b19wbm9kZShpbnQgYXBpY2lkKQoreworCXJldHVybiAoYXBpY2lkID4+IFVWX0FQSUNfUE5PREVfU0hJRlQpOwogfQogCiAvKgogICogQWNjZXNzIGdsb2JhbCBNTVJzIHVzaW5nIHRoZSBsb3cgbWVtb3J5IE1NUjMyIHNwYWNlLiBUaGlzIHJlZ2lvbiBzdXBwb3J0cwogICogZmFzdGVyIE1NUiBhY2Nlc3MgYnV0IG5vdCBhbGwgTU1ScyBhcmUgYWNjZXNzaWJsZSBpbiB0aGlzIHNwYWNlLgogICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgKnV2X2dsb2JhbF9tbXIzMl9hZGRyZXNzKGludCBuYXNpZCwKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqdXZfZ2xvYmFsX21tcjMyX2FkZHJlc3MoaW50IHBub2RlLAogCQkJCXVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogewogCXJldHVybiBfX3ZhKFVWX0dMT0JBTF9NTVIzMl9CQVNFIHwKLQkJICAgICAgIFVWX0dMT0JBTF9NTVIzMl9OQVNJRF9CSVRTKG5hc2lkKSB8IG9mZnNldCk7CisJCSAgICAgICBVVl9HTE9CQUxfTU1SMzJfUE5PREVfQklUUyhwbm9kZSkgfCBvZmZzZXQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgdXZfd3JpdGVfZ2xvYmFsX21tcjMyKGludCBuYXNpZCwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCitzdGF0aWMgaW5saW5lIHZvaWQgdXZfd3JpdGVfZ2xvYmFsX21tcjMyKGludCBwbm9kZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCiAJCQkJIHVuc2lnbmVkIGxvbmcgdmFsKQogewotCSp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhuYXNpZCwgb2Zmc2V0KSA9IHZhbDsKKwkqdXZfZ2xvYmFsX21tcjMyX2FkZHJlc3MocG5vZGUsIG9mZnNldCkgPSB2YWw7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyB1dl9yZWFkX2dsb2JhbF9tbXIzMihpbnQgbmFzaWQsCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfcmVhZF9nbG9iYWxfbW1yMzIoaW50IHBub2RlLAogCQkJCQkJIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogewotCXJldHVybiAqdXZfZ2xvYmFsX21tcjMyX2FkZHJlc3MobmFzaWQsIG9mZnNldCk7CisJcmV0dXJuICp1dl9nbG9iYWxfbW1yMzJfYWRkcmVzcyhwbm9kZSwgb2Zmc2V0KTsKIH0KIAogLyoKICAqIEFjY2VzcyBHbG9iYWwgTU1SIHNwYWNlIHVzaW5nIHRoZSBNTVIgc3BhY2UgbG9jYXRlZCBhdCB0aGUgdG9wIG9mIHBoeXNpY2FsCiAgKiBtZW1vcnkuCiAgKi8KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MoaW50IG5hc2lkLAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nICp1dl9nbG9iYWxfbW1yNjRfYWRkcmVzcyhpbnQgcG5vZGUsCiAJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7CiAJcmV0dXJuIF9fdmEoVVZfR0xPQkFMX01NUjY0X0JBU0UgfAotCQkgICAgICAgVVZfR0xPQkFMX01NUjY0X05BU0lEX0JJVFMobmFzaWQpIHwgb2Zmc2V0KTsKKwkJICAgIFVWX0dMT0JBTF9NTVI2NF9QTk9ERV9CSVRTKHBub2RlKSB8IG9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yNjQoaW50IG5hc2lkLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKK3N0YXRpYyBpbmxpbmUgdm9pZCB1dl93cml0ZV9nbG9iYWxfbW1yNjQoaW50IHBub2RlLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKIAkJCQl1bnNpZ25lZCBsb25nIHZhbCkKIHsKLQkqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MobmFzaWQsIG9mZnNldCkgPSB2YWw7CisJKnV2X2dsb2JhbF9tbXI2NF9hZGRyZXNzKHBub2RlLCBvZmZzZXQpID0gdmFsOwogfQogCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgdXZfcmVhZF9nbG9iYWxfbW1yNjQoaW50IG5hc2lkLAorc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHV2X3JlYWRfZ2xvYmFsX21tcjY0KGludCBwbm9kZSwKIAkJCQkJCSB1bnNpZ25lZCBsb25nIG9mZnNldCkKIHsKLQlyZXR1cm4gKnV2X2dsb2JhbF9tbXI2NF9hZGRyZXNzKG5hc2lkLCBvZmZzZXQpOworCXJldHVybiAqdXZfZ2xvYmFsX21tcjY0X2FkZHJlc3MocG5vZGUsIG9mZnNldCk7CiB9CiAKIC8qCi0gKiBBY2Nlc3Mgbm9kZSBsb2NhbCBNTVJzLiBGYXN0ZXIgdGhhbiB1c2luZyBnbG9iYWwgc3BhY2UgYnV0IG9ubHkgbG9jYWwgTU1ScworICogQWNjZXNzIGh1YiBsb2NhbCBNTVJzLiBGYXN0ZXIgdGhhbiB1c2luZyBnbG9iYWwgc3BhY2UgYnV0IG9ubHkgbG9jYWwgTU1ScwogICogYXJlIGFjY2Vzc2libGUuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyAqdXZfbG9jYWxfbW1yX2FkZHJlc3ModW5zaWduZWQgbG9uZyBvZmZzZXQpCkBAIC0yMDcsMTUgKzI3NywxNSBAQAogfQogCiAvKgotICogU3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiBjcHUsIG5vZGUsIGFuZCBibGFkZQorICogU3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIGNvbnZlcnRpbmcgYmV0d2VlbiBjcHUsIG5vZGUsIHBub2RlLCBhbmQgYmxhZGUKICAqIG51bWJlcnMuCiAgKi8KIHN0cnVjdCB1dl9ibGFkZV9pbmZvIHsKLQl1bnNpZ25lZCBzaG9ydAlucl9wb3NpYmxlX2NwdXM7CisJdW5zaWduZWQgc2hvcnQJbnJfcG9zc2libGVfY3B1czsKIAl1bnNpZ25lZCBzaG9ydAlucl9vbmxpbmVfY3B1czsKLQl1bnNpZ25lZCBzaG9ydAluYXNpZDsKKwl1bnNpZ25lZCBzaG9ydAlwbm9kZTsKIH07Ci1zdHJ1Y3QgdXZfYmxhZGVfaW5mbyAqdXZfYmxhZGVfaW5mbzsKK2V4dGVybiBzdHJ1Y3QgdXZfYmxhZGVfaW5mbyAqdXZfYmxhZGVfaW5mbzsKIGV4dGVybiBzaG9ydCAqdXZfbm9kZV90b19ibGFkZTsKIGV4dGVybiBzaG9ydCAqdXZfY3B1X3RvX2JsYWRlOwogZXh0ZXJuIHNob3J0IHV2X3Bvc3NpYmxlX2JsYWRlczsKQEAgLTI0NCwxNiArMzE0LDE2IEBACiAJcmV0dXJuIHV2X25vZGVfdG9fYmxhZGVbbmlkXTsKIH0KIAotLyogQ29udmVydCBhIGJsYWRlIGlkIHRvIHRoZSBOQVNJRCBvZiB0aGUgYmxhZGUgKi8KLXN0YXRpYyBpbmxpbmUgaW50IHV2X2JsYWRlX3RvX25hc2lkKGludCBiaWQpCisvKiBDb252ZXJ0IGEgYmxhZGUgaWQgdG8gdGhlIFBOT0RFIG9mIHRoZSBibGFkZSAqLworc3RhdGljIGlubGluZSBpbnQgdXZfYmxhZGVfdG9fcG5vZGUoaW50IGJpZCkKIHsKLQlyZXR1cm4gdXZfYmxhZGVfaW5mb1tiaWRdLm5hc2lkOworCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ucG5vZGU7CiB9CiAKIC8qIERldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNwdXMgb24gYSBibGFkZSAqLwogc3RhdGljIGlubGluZSBpbnQgdXZfYmxhZGVfbnJfcG9zc2libGVfY3B1cyhpbnQgYmlkKQogewotCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubnJfcG9zaWJsZV9jcHVzOworCXJldHVybiB1dl9ibGFkZV9pbmZvW2JpZF0ubnJfcG9zc2libGVfY3B1czsKIH0KIAogLyogRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2Ygb25saW5lIGNwdXMgb24gYSBibGFkZSAqLwpAQCAtMjYyLDE2ICszMzIsMTYgQEAKIAlyZXR1cm4gdXZfYmxhZGVfaW5mb1tiaWRdLm5yX29ubGluZV9jcHVzOwogfQogCi0vKiBDb252ZXJ0IGEgY3B1IGlkIHRvIHRoZSBOQVNJRCBvZiB0aGUgYmxhZGUgY29udGFpbmluZyB0aGUgY3B1ICovCi1zdGF0aWMgaW5saW5lIGludCB1dl9jcHVfdG9fbmFzaWQoaW50IGNwdSkKKy8qIENvbnZlcnQgYSBjcHUgaWQgdG8gdGhlIFBOT0RFIG9mIHRoZSBibGFkZSBjb250YWluaW5nIHRoZSBjcHUgKi8KK3N0YXRpYyBpbmxpbmUgaW50IHV2X2NwdV90b19wbm9kZShpbnQgY3B1KQogewotCXJldHVybiB1dl9ibGFkZV9pbmZvW3V2X2NwdV90b19ibGFkZV9pZChjcHUpXS5uYXNpZDsKKwlyZXR1cm4gdXZfYmxhZGVfaW5mb1t1dl9jcHVfdG9fYmxhZGVfaWQoY3B1KV0ucG5vZGU7CiB9CiAKLS8qIENvbnZlcnQgYSBub2RlIG51bWJlciB0byB0aGUgTkFTSUQgb2YgdGhlIGJsYWRlICovCi1zdGF0aWMgaW5saW5lIGludCB1dl9ub2RlX3RvX25hc2lkKGludCBuaWQpCisvKiBDb252ZXJ0IGEgbGludXggbm9kZSBudW1iZXIgdG8gdGhlIFBOT0RFIG9mIHRoZSBibGFkZSAqLworc3RhdGljIGlubGluZSBpbnQgdXZfbm9kZV90b19wbm9kZShpbnQgbmlkKQogewotCXJldHVybiB1dl9ibGFkZV9pbmZvW3V2X25vZGVfdG9fYmxhZGVfaWQobmlkKV0ubmFzaWQ7CisJcmV0dXJuIHV2X2JsYWRlX2luZm9bdXZfbm9kZV90b19ibGFkZV9pZChuaWQpXS5wbm9kZTsKIH0KIAogLyogTWF4aW11bSBwb3NzaWJsZSBudW1iZXIgb2YgYmxhZGVzICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYvdXYvdXZfbW1ycy5oIGIvaW5jbHVkZS9hc20teDg2L3V2L3V2X21tcnMuaAppbmRleCAzYjY5ZmU2Li4xNTFmZDdmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdXYvdXZfbW1ycy5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni91di91dl9tbXJzLmgKQEAgLTExLDE3ICsxMSwyOTAgQEAKICNpZm5kZWYgX19BU01fWDg2X1VWX01NUlNfXwogI2RlZmluZSBfX0FTTV9YODZfVVZfTU1SU19fCiAKLS8qCi0gKiAgICAgICBBVVRPIEdFTkVSQVRFRCAtIERvIG5vdCBlZGl0Ci0gKi8KKyNkZWZpbmUgVVZfTU1SX0VOQUJMRQkJKDFVTCA8PCA2MykKIAotICNkZWZpbmUgVVZfTU1SX0VOQUJMRQkJKDFVTCA8PCA2MykKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0JBVV9EQVRBX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJRyAweDYxNjgwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR18zMiAweDA0MzgKKworI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1ZFQ1RPUl9TSEZUIDAKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0RNX1NIRlQgOAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX0RNX01BU0sgMHgwMDAwMDAwMDAwMDAwNzAwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfREVTVE1PREVfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfQkFVX0RBVEFfQ09ORklHX1NUQVRVU19TSEZUIDEyCisjZGVmaW5lIFVWSF9CQVVfREFUQV9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19QX1NIRlQgMTMKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19QX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19UX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19NX1NIRlQgMTYKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19BUElDX0lEX1NIRlQgMzIKKyNkZWZpbmUgVVZIX0JBVV9EQVRBX0NPTkZJR19BUElDX0lEX01BU0sgMHhmZmZmZmZmZjAwMDAwMDAwVUwKKwordW5pb24gdXZoX2JhdV9kYXRhX2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9iYXVfZGF0YV9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwl2ZWN0b3JfICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRtICAgICAgIDogIDM7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzdG1vZGUgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzdGF0dXMgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXAgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xNCAgOiAgMTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwl0ICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCW0gICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xN18zMTogMTU7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYXBpY19pZCAgOiAzMjsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfRVZFTlRfT0NDVVJSRUQwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwIDB4NzAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwXzMyIDB4MDA1ZTgKKworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0hDRVJSX1NIRlQgMAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAxVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfSENFUlJfU0hGVCAxCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IwX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAyVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfSENFUlJfU0hGVCAyCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IxX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA0VUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9IQ0VSUl9TSEZUIDMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwOFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfSENFUlJfU0hGVCA0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMTBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0hDRVJSX1NIRlQgNQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDIwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9IQ0VSUl9TSEZUIDYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDA0MFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfQU9FUlIwX1NIRlQgNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDA4MFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IwX0FPRVJSMF9TSEZUIDgKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjBfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwMTAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9HUjFfQU9FUlIwX1NIRlQgOQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0dSMV9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDAyMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xIX0FPRVJSMF9TSEZUIDEwCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEhfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwNDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9SSF9BT0VSUjBfU0hGVCAxMQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfWE5fQU9FUlIwX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9YTl9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NJX0FPRVJSMF9TSEZUIDEzCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU0lfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9BT0VSUjFfU0hGVCAxNAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAwNDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IwX0FPRVJSMV9TSEZUIDE1CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IwX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAwODAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IxX0FPRVJSMV9TSEZUIDE2CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfR1IxX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEhfQU9FUlIxX1NIRlQgMTcKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMjAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX0FPRVJSMV9TSEZUIDE4CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUkhfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDQwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9YTl9BT0VSUjFfU0hGVCAxOQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1hOX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDA4MDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfU0lfQU9FUlIxX1NIRlQgMjAKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TSV9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAxMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX1ZQSV9JTlRfU0hGVCAyMQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1JIX1ZQSV9JTlRfTUFTSyAweDAwMDAwMDAwMDAyMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NZU1RFTV9TSFVURE9XTl9JTlRfU0hGVCAyMgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1NZU1RFTV9TSFVURE9XTl9JTlRfTUFTSyAweDAwMDAwMDAwMDA0MDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMF9TSEZUIDIzCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8wX01BU0sgMHgwMDAwMDAwMDAwODAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzFfU0hGVCAyNAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfMV9NQVNLIDB4MDAwMDAwMDAwMTAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8yX1NIRlQgMjUKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzJfTUFTSyAweDAwMDAwMDAwMDIwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfM19TSEZUIDI2CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF8zX01BU0sgMHgwMDAwMDAwMDA0MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzRfU0hGVCAyNworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNF9NQVNLIDB4MDAwMDAwMDAwODAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF81X1NIRlQgMjgKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzVfTUFTSyAweDAwMDAwMDAwMTAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfNl9TSEZUIDI5CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF82X01BU0sgMHgwMDAwMDAwMDIwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzdfU0hGVCAzMAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfN19NQVNLIDB4MDAwMDAwMDA0MDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF84X1NIRlQgMzEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzhfTUFTSyAweDAwMDAwMDAwODAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0xCX0lSUV9JTlRfOV9TSEZUIDMyCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEJfSVJRX0lOVF85X01BU0sgMHgwMDAwMDAwMTAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEwX1NIRlQgMzMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEwX01BU0sgMHgwMDAwMDAwMjAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzExX1NIRlQgMzQKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzExX01BU0sgMHgwMDAwMDAwNDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEyX1NIRlQgMzUKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEyX01BU0sgMHgwMDAwMDAwODAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEzX1NIRlQgMzYKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzEzX01BU0sgMHgwMDAwMDAxMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzE0X1NIRlQgMzcKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzE0X01BU0sgMHgwMDAwMDAyMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzE1X1NIRlQgMzgKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQl9JUlFfSU5UXzE1X01BU0sgMHgwMDAwMDA0MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MMV9OTUlfSU5UX1NIRlQgMzkKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MMV9OTUlfSU5UX01BU0sgMHgwMDAwMDA4MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TVE9QX0NMT0NLX1NIRlQgNDAKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9TVE9QX0NMT0NLX01BU0sgMHgwMDAwMDEwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9BU0lDX1RPX0wxX1NIRlQgNDEKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9BU0lDX1RPX0wxX01BU0sgMHgwMDAwMDIwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MMV9UT19BU0lDX1NIRlQgNDIKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MMV9UT19BU0lDX01BU0sgMHgwMDAwMDQwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MVENfSU5UX1NIRlQgNDMKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MVENfSU5UX01BU0sgMHgwMDAwMDgwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9MQV9TRVFfVFJJR0dFUl9TSEZUIDQ0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfTEFfU0VRX1RSSUdHRVJfTUFTSyAweDAwMDAxMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0lQSV9JTlRfU0hGVCA0NQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0lQSV9JTlRfTUFTSyAweDAwMDAyMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDBfU0hGVCA0NgorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDBfTUFTSyAweDAwMDA0MDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDFfU0hGVCA0NworI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDFfTUFTSyAweDAwMDA4MDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDJfU0hGVCA0OAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDJfTUFTSyAweDAwMDEwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDNfU0hGVCA0OQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0VYVElPX0lOVDNfTUFTSyAweDAwMDIwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX1BST0ZJTEVfSU5UX1NIRlQgNTAKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9QUk9GSUxFX0lOVF9NQVNLIDB4MDAwNDAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMF9TSEZUIDUxCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMF9NQVNLIDB4MDAwODAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMV9TSEZUIDUyCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMV9NQVNLIDB4MDAxMDAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMl9TSEZUIDUzCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDMl9NQVNLIDB4MDAyMDAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDM19TSEZUIDU0CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUlRDM19NQVNLIDB4MDA0MDAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfQkFVX0RBVEFfU0hGVCA1NQorI2RlZmluZSBVVkhfRVZFTlRfT0NDVVJSRUQwX0JBVV9EQVRBX01BU0sgMHgwMDgwMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9QT1dFUl9NQU5BR0VNRU5UX1JFUV9TSEZUIDU2CisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfUE9XRVJfTUFOQUdFTUVOVF9SRVFfTUFTSyAweDAxMDAwMDAwMDAwMDAwMDBVTAordW5pb24gdXZoX2V2ZW50X29jY3VycmVkMF91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ldmVudF9vY2N1cnJlZDBfcyB7CisJdW5zaWduZWQgbG9uZwlsYl9oY2VyciAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsaF9oY2VyciAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcmhfaGNlcnIgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2hjZXJyICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlzaV9oY2VyciAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfYW9lcnIwICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjFfYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGhfYW9lcnIwICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2FvZXJyMCAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwl4bl9hb2VycjAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJc2lfYW9lcnIwICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2FvZXJyMSAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlncjBfYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2FvZXJyMSAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlyaF9hb2VycjEgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJeG5fYW9lcnIxICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2FvZXJyMSAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlyaF92cGlfaW50ICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJc3lzdGVtX3NodXRkb3duX2ludCAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMCAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8yICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMyAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzQgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF81ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNiAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzcgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF84ICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfOSAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEwICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMSAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTIgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEzICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xNCAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTUgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsMV9ubWlfaW50ICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJc3RvcF9jbG9jayAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWFzaWNfdG9fbDEgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlsMV90b19hc2ljICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJbHRjX2ludCAgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWxhX3NlcV90cmlnZ2VyICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlpcGlfaW50ICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZXh0aW9faW50MCAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCWV4dGlvX2ludDEgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlleHRpb19pbnQyICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJZXh0aW9faW50MyAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXByb2ZpbGVfaW50ICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlydGMwICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJcnRjMSAgICAgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXJ0YzIgICAgICAgICAgICAgICAgIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlydGMzICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcsIFcxQyAqLworCXVuc2lnbmVkIGxvbmcJYmF1X2RhdGEgICAgICAgICAgICAgOiAgMTsgIC8qIFJXLCBXMUMgKi8KKwl1bnNpZ25lZCBsb25nCXBvd2VyX21hbmFnZW1lbnRfcmVxIDogIDE7ICAvKiBSVywgVzFDICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzU3XzYzICAgICAgICAgICA6ICA3OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9FVkVOVF9PQ0NVUlJFRDBfQUxJQVMgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9FVkVOVF9PQ0NVUlJFRDBfQUxJQVMgMHgwMDAwMDAwMDAwMDcwMDA4VUwKKyNkZWZpbmUgVVZIX0VWRU5UX09DQ1VSUkVEMF9BTElBU18zMiAweDAwNWYwCisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9JTlRfQ01QQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0lOVF9DTVBCIDB4MjIwODBVTAorCisjZGVmaW5lIFVWSF9JTlRfQ01QQl9SRUFMX1RJTUVfQ01QQl9TSEZUIDAKKyNkZWZpbmUgVVZIX0lOVF9DTVBCX1JFQUxfVElNRV9DTVBCX01BU0sgMHgwMGZmZmZmZmZmZmZmZmZmVUwKKwordW5pb24gdXZoX2ludF9jbXBiX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2ludF9jbXBiX3MgeworCXVuc2lnbmVkIGxvbmcJcmVhbF90aW1lX2NtcGIgOiA1NjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzU2XzYzICAgICA6ICA4OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfSU5UX0NNUEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9JTlRfQ01QQyAweDIyMTAwVUwKKworI2RlZmluZSBVVkhfSU5UX0NNUENfUkVBTF9USU1FX0NNUENfU0hGVCAwCisjZGVmaW5lIFVWSF9JTlRfQ01QQ19SRUFMX1RJTUVfQ01QQ19NQVNLIDB4MDBmZmZmZmZmZmZmZmZmZlVMCisKK3VuaW9uIHV2aF9pbnRfY21wY191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9pbnRfY21wY19zIHsKKwl1bnNpZ25lZCBsb25nCXJlYWxfdGltZV9jbXBjIDogNTY7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81Nl82MyAgICAgOiAgODsgIC8qICAgICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0lOVF9DTVBEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfSU5UX0NNUEQgMHgyMjE4MFVMCisKKyNkZWZpbmUgVVZIX0lOVF9DTVBEX1JFQUxfVElNRV9DTVBEX1NIRlQgMAorI2RlZmluZSBVVkhfSU5UX0NNUERfUkVBTF9USU1FX0NNUERfTUFTSyAweDAwZmZmZmZmZmZmZmZmZmZVTAorCit1bmlvbiB1dmhfaW50X2NtcGRfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfaW50X2NtcGRfcyB7CisJdW5zaWduZWQgbG9uZwlyZWFsX3RpbWVfY21wZCA6IDU2OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjMgICAgIDogIDg7ICAvKiAgICAqLworICAgIH0gczsKK307CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9JUElfSU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0lQSV9JTlQgMHg2MDUwMFVMCi0jZGVmaW5lIFVWSF9JUElfSU5UXzMyIDB4MDM2MAorI2RlZmluZSBVVkhfSVBJX0lOVF8zMiAweDAzNDgKIAogI2RlZmluZSBVVkhfSVBJX0lOVF9WRUNUT1JfU0hGVCAwCiAjZGVmaW5lIFVWSF9JUElfSU5UX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCkBAIC01MSw3ICszMjQsNyBAQAogLyogICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1QgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9GSVJTVCAweDMyMDA1MFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNUXzMyIDB4MDA5ZjAKKyNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfRklSU1RfMzIgMHgwMDljMAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNUX0FERFJFU1NfU0hGVCA0CiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0ZJUlNUX0FERFJFU1NfTUFTSyAweDAwMDAwN2ZmZmZmZmZmZjBVTApAQCAtNzMsNyArMzQ2LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNUICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfTEFTVCAweDMyMDA2MFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfMzIgMHgwMDlmOAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNUXzMyIDB4MDA5YzgKIAogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9MQVNUX0FERFJFU1NfU0hGVCA0CiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX0xBU1RfQUREUkVTU19NQVNLIDB4MDAwMDA3ZmZmZmZmZmZmMFVMCkBAIC05MSw3ICszNjQsNyBAQAogLyogICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUwgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfUEFZTE9BRF9RVUVVRV9UQUlMIDB4MzIwMDcwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF8zMiAweDAwYTAwCisjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUxfMzIgMHgwMDlkMAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfSU5URF9QQVlMT0FEX1FVRVVFX1RBSUxfQUREUkVTU19TSEZUIDQKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1BBWUxPQURfUVVFVUVfVEFJTF9BRERSRVNTX01BU0sgMHgwMDAwMDdmZmZmZmZmZmYwVUwKQEAgLTEwOSw2ICszODIsNyBAQAogLyogICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0UgMHgzMjAwODBVTAorI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfMzIgMHgwYTY4CiAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFX1BFTkRJTkdfMF9TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFX1BFTkRJTkdfMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMVVMCkBAIC0xNjksMTIgKzQ0MywxMyBAQAogLyogICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFX0FMSUFTICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX0lOVERfU09GVFdBUkVfQUNLTk9XTEVER0VfQUxJQVMgMHgwMDAwMDAwMDAwMzIwMDg4VUwKKyNkZWZpbmUgVVZIX0xCX0JBVV9JTlREX1NPRlRXQVJFX0FDS05PV0xFREdFX0FMSUFTXzMyIDB4MGE3MAogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MIDB4MzIwMDIwVUwKLSNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0xfMzIgMHgwMDlkOAorI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fQ09OVFJPTF8zMiAweDAwOWE4CiAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX0NPTlRST0xfSU5ERVhfU0hGVCAwCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9DT05UUk9MX0lOREVYX01BU0sgMHgwMDAwMDAwMDAwMDAwMDNmVUwKQEAgLTE5Nyw3ICs0NzIsNyBAQAogLyogICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMCAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzAgMHgzMjAwMzBVTAotI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzBfMzIgMHgwMDllMAorI2RlZmluZSBVVkhfTEJfQkFVX1NCX0FDVElWQVRJT05fU1RBVFVTXzBfMzIgMHgwMDliMAogCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF9TVEFUVVNfU0hGVCAwCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMF9TVEFUVVNfTUFTSyAweGZmZmZmZmZmZmZmZmZmZmZVTApAQCAtMjEzLDcgKzQ4OCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMSAweDMyMDA0MFVMCi0jZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMV8zMiAweDAwOWU4CisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfQUNUSVZBVElPTl9TVEFUVVNfMV8zMiAweDAwOWI4CiAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xX1NUQVRVU19TSEZUIDAKICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9BQ1RJVkFUSU9OX1NUQVRVU18xX1NUQVRVU19NQVNLIDB4ZmZmZmZmZmZmZmZmZmZmZlVMCkBAIC0yMjksNyArNTA0LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KICNkZWZpbmUgVVZIX0xCX0JBVV9TQl9ERVNDUklQVE9SX0JBU0UgMHgzMjAwMTBVTAotI2RlZmluZSBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRV8zMiAweDAwOWQwCisjZGVmaW5lIFVWSF9MQl9CQVVfU0JfREVTQ1JJUFRPUl9CQVNFXzMyIDB4MDA5YTAKIAogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRV9QQUdFX0FERFJFU1NfU0hGVCAxMgogI2RlZmluZSBVVkhfTEJfQkFVX1NCX0RFU0NSSVBUT1JfQkFTRV9QQUdFX0FERFJFU1NfTUFTSyAweDAwMDAwN2ZmZmZmZmYwMDBVTApAQCAtMjQ4LDYgKzUyMywzMzQgQEAKIH07CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFIDB4NTBiMjBVTAorCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9PQkVTRV9NU0dfU0hGVCAwCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDFVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfREFUQV9TQl9FUlJfU0hGVCAxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9EQVRBX1NCX0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwMlVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9OQUNLX0JVRkZfUEFSSVRZX1NIRlQgMgorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfTkFDS19CVUZGX1BBUklUWV9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwNFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9USU1FT1VUX1NIRlQgMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUNBU1RfVElNRU9VVF9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwOFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9JTkFDVElWRV9SRVBMWV9TSEZUIDQKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX0lOQUNUSVZFX1JFUExZX01BU0sgMHgwMDAwMDAwMDAwMDAwMDEwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1VQR1JBREVfRVJST1JfU0hGVCA1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9VUEdSQURFX0VSUk9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMDIwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFR19DT1VOVF9VTkRFUkZMT1dfU0hGVCA2CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9SRUdfQ09VTlRfVU5ERVJGTE9XX01BU0sgMHgwMDAwMDAwMDAwMDAwMDQwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01DQVNUX1JFUF9PQkVTRV9NU0dfU0hGVCA3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQ0FTVF9SRVBfT0JFU0VfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAwMDgwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfUlVOVF9NU0dfU0hGVCA4CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDAwMTAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVFfT0JFU0VfTVNHX1NIRlQgOQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAwMDAyMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUV9EQVRBX1NCX0VSUl9TSEZUIDEwCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVRX0RBVEFfU0JfRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwNDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfUlVOVF9NU0dfU0hGVCAxMQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9SVU5UX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX09CRVNFX01TR19TSEZUIDEyCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX09CRVNFX01TR19NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX0RBVEFfU0JfRVJSX1NIRlQgMTMKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9SRVBfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1JFUF9DT01NQU5EX0VSUl9TSEZUIDE0CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9VQ0FDSEVfUkVQX0NPTU1BTkRfRVJSX01BU0sgMHgwMDAwMDAwMDAwMDA0MDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1VDQUNIRV9QRU5EX1RJTUVPVVRfU0hGVCAxNQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfVUNBQ0hFX1BFTkRfVElNRU9VVF9NQVNLIDB4MDAwMDAwMDAwMDAwODAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUV9SVU5UX01TR19TSEZUIDE2CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUV9SVU5UX01TR19NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUV9PQkVTRV9NU0dfU0hGVCAxNworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVFfT0JFU0VfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDIwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX0RBVEFfU0JfRVJSX1NIRlQgMTgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVRX0RBVEFfU0JfRVJSX01BU0sgMHgwMDAwMDAwMDAwMDQwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVQX1JVTlRfTVNHX1NIRlQgMTkKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVQX1JVTlRfTVNHX01BU0sgMHgwMDAwMDAwMDAwMDgwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUkVQX09CRVNFX01TR19TSEZUIDIwCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1JFUF9PQkVTRV9NU0dfTUFTSyAweDAwMDAwMDAwMDAxMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfREFUQV9TQl9FUlJfU0hGVCAyMQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19SRVBfREFUQV9TQl9FUlJfTUFTSyAweDAwMDAwMDAwMDAyMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19BTU9fVElNRU9VVF9TSEZUIDIyCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX0FNT19USU1FT1VUX01BU0sgMHgwMDAwMDAwMDAwNDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfUFVUX1RJTUVPVVRfU0hGVCAyMworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfTUFDQ19QVVRfVElNRU9VVF9NQVNLIDB4MDAwMDAwMDAwMDgwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9NQUNDX1NQVVJJT1VTX0VWRU5UX1NIRlQgMjQKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX01BQ0NfU1BVUklPVVNfRVZFTlRfTUFTSyAweDAwMDAwMDAwMDEwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU9IX0RFU1RJTkFUSU9OX1RBQkxFX1BBUklUWV9TSEZUIDI1CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JT0hfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX01BU0sgMHgwMDAwMDAwMDAyMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0dFVF9IQURfRVJST1JfUkVQTFlfU0hGVCAyNgorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfR0VUX0hBRF9FUlJPUl9SRVBMWV9NQVNLIDB4MDAwMDAwMDAwNDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9HRVRfVElNRU9VVF9TSEZUIDI3CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9HRVRfVElNRU9VVF9NQVNLIDB4MDAwMDAwMDAwODAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9MT0NLX01BTkFHRVJfSEFEX0VSUk9SX1JFUExZX1NIRlQgMjgKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0xPQ0tfTUFOQUdFUl9IQURfRVJST1JfUkVQTFlfTUFTSyAweDAwMDAwMDAwMTAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfUFVUX0hBRF9FUlJPUl9SRVBMWV9TSEZUIDI5CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9QVVRfSEFEX0VSUk9SX1JFUExZX01BU0sgMHgwMDAwMDAwMDIwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1BVVF9USU1FT1VUX1NIRlQgMzAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1BVVF9USU1FT1VUX01BU0sgMHgwMDAwMDAwMDQwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX1NCX0FDVElWQVRJT05fT1ZFUlJVTl9TSEZUIDMxCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9TQl9BQ1RJVkFUSU9OX09WRVJSVU5fTUFTSyAweDAwMDAwMDAwODAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQ09NUExFVEVEX0dCX0FDVElWQVRJT05fSEFEX0VSUk9SX1JFUExZX1NIRlQgMzIKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0NPTVBMRVRFRF9HQl9BQ1RJVkFUSU9OX0hBRF9FUlJPUl9SRVBMWV9NQVNLIDB4MDAwMDAwMDEwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9DT01QTEVURURfR0JfQUNUSVZBVElPTl9USU1FT1VUX1NIRlQgMzMKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0NPTVBMRVRFRF9HQl9BQ1RJVkFUSU9OX1RJTUVPVVRfTUFTSyAweDAwMDAwMDAyMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfREVTQ1JJUFRPUl9CVUZGRVJfMF9QQVJJVFlfU0hGVCAzNAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfREVTQ1JJUFRPUl9CVUZGRVJfMF9QQVJJVFlfTUFTSyAweDAwMDAwMDA0MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfREVTQ1JJUFRPUl9CVUZGRVJfMV9QQVJJVFlfU0hGVCAzNQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfREVTQ1JJUFRPUl9CVUZGRVJfMV9QQVJJVFlfTUFTSyAweDAwMDAwMDA4MDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfU09DS0VUX0RFU1RJTkFUSU9OX1RBQkxFX1BBUklUWV9TSEZUIDM2CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9TT0NLRVRfREVTVElOQVRJT05fVEFCTEVfUEFSSVRZX01BU0sgMHgwMDAwMDAxMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0JBVV9SRVBMWV9QQVlMT0FEX0NPUlJVUFRJT05fU0hGVCAzNworI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfQkFVX1JFUExZX1BBWUxPQURfQ09SUlVQVElPTl9NQVNLIDB4MDAwMDAwMjAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JT19QT1JUX0RFU1RJTkFUSU9OX1RBQkxFX1BBUklUWV9TSEZUIDM4CisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JT19QT1JUX0RFU1RJTkFUSU9OX1RBQkxFX1BBUklUWV9NQVNLIDB4MDAwMDAwNDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlREX1NPRlRfQUNLX1RJTUVPVVRfU0hGVCAzOQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5URF9TT0ZUX0FDS19USU1FT1VUX01BU0sgMHgwMDAwMDA4MDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9SRVBfT0JFU0VfTVNHX1NIRlQgNDAKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9SRVBfT0JFU0VfTVNHX01BU0sgMHgwMDAwMDEwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xCX01DQVNUX0FPRVJSMF9SUFRfRU5BQkxFX0lOVF9SRVBfQ09NTUFORF9FUlJfU0hGVCA0MQorI2RlZmluZSBVVkhfTEJfTUNBU1RfQU9FUlIwX1JQVF9FTkFCTEVfSU5UX1JFUF9DT01NQU5EX0VSUl9NQVNLIDB4MDAwMDAyMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlRfVElNRU9VVF9TSEZUIDQyCisjZGVmaW5lIFVWSF9MQl9NQ0FTVF9BT0VSUjBfUlBUX0VOQUJMRV9JTlRfVElNRU9VVF9NQVNLIDB4MDAwMDA0MDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9sYl9tY2FzdF9hb2VycjBfcnB0X2VuYWJsZV91IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9sYl9tY2FzdF9hb2VycjBfcnB0X2VuYWJsZV9zIHsKKwl1bnNpZ25lZCBsb25nCW1jYXN0X29iZXNlX21zZyAgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X2RhdGFfc2JfZXJyICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X25hY2tfYnVmZl9wYXJpdHkgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X2luYWN0aXZlX3JlcGx5ICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X3VwZ3JhZGVfZXJyb3IgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X3JlZ19jb3VudF91bmRlcmZsb3cgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1jYXN0X3JlcF9vYmVzZV9tc2cgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXFfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXFfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXFfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXBfcnVudF9tc2cgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXBfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXBfZGF0YV9zYl9lcnIgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9yZXBfY29tbWFuZF9lcnIgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXVjYWNoZV9wZW5kX3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVxX3J1bnRfbXNnICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVxX29iZXNlX21zZyAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVxX2RhdGFfc2JfZXJyICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVwX3J1bnRfbXNnICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVwX29iZXNlX21zZyAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcmVwX2RhdGFfc2JfZXJyICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfYW1vX3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2NfcHV0X3RpbWVvdXQgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1hY2Nfc3B1cmlvdXNfZXZlbnQgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWlvaF9kZXN0aW5hdGlvbl90YWJsZV9wYXJpdHkgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdldF9oYWRfZXJyb3JfcmVwbHkgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdldF90aW1lb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxvY2tfbWFuYWdlcl9oYWRfZXJyb3JfcmVwbHkgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXB1dF9oYWRfZXJyb3JfcmVwbHkgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXB1dF90aW1lb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXNiX2FjdGl2YXRpb25fb3ZlcnJ1biAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWNvbXBsZXRlZF9nYl9hY3RpdmF0aW9uX2hhZF9lcnJvcl9yZXBseSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWNvbXBsZXRlZF9nYl9hY3RpdmF0aW9uX3RpbWVvdXQgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRlc2NyaXB0b3JfYnVmZmVyXzBfcGFyaXR5ICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRlc2NyaXB0b3JfYnVmZmVyXzFfcGFyaXR5ICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXNvY2tldF9kZXN0aW5hdGlvbl90YWJsZV9wYXJpdHkgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWJhdV9yZXBseV9wYXlsb2FkX2NvcnJ1cHRpb24gICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWlvX3BvcnRfZGVzdGluYXRpb25fdGFibGVfcGFyaXR5ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWludGRfc29mdF9hY2tfdGltZW91dCAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWludF9yZXBfb2Jlc2VfbXNnICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWludF9yZXBfY29tbWFuZF9lcnIgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWludF90aW1lb3V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDNfNjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDIxOyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX0xPQ0FMX0lOVDBfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJRyAweDYxMDAwVUwKKworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX0RNX1NIRlQgOAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfREVTVE1PREVfU0hGVCAxMQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfREVTVE1PREVfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1NUQVRVU19NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19QX1NIRlQgMTMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19UX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9DT05GSUdfTV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0NPTkZJR19BUElDX0lEX1NIRlQgMzIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfbG9jYWxfaW50MF9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfbG9jYWxfaW50MF9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwl2ZWN0b3JfICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRtICAgICAgIDogIDM7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzdG1vZGUgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzdGF0dXMgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXAgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xNCAgOiAgMTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwl0ICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCW0gICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xN18zMTogMTU7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYXBpY19pZCAgOiAzMjsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9MT0NBTF9JTlQwX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEUgMHg2NTAwMFVMCisKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0hDRVJSX1NIRlQgMAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMDFVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IwX0hDRVJSX1NIRlQgMQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IwX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDAyVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMV9IQ0VSUl9TSEZUIDIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMV9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAwNFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9IQ0VSUl9TSEZUIDMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xIX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDA4VUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0hDRVJSX1NIRlQgNAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfSENFUlJfTUFTSyAweDAwMDAwMDAwMDAwMDAwMTBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fSENFUlJfU0hGVCA1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9YTl9IQ0VSUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDAyMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9IQ0VSUl9TSEZUIDYKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NJX0hDRVJSX01BU0sgMHgwMDAwMDAwMDAwMDAwMDQwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0FPRVJSMF9TSEZUIDcKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDA4MFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIwX1NIRlQgOAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IwX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDEwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjFfQU9FUlIwX1NIRlQgOQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMDIwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjBfU0hGVCAxMAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEhfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAwNDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMF9TSEZUIDExCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9BT0VSUjBfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIwX1NIRlQgMTIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1hOX0FPRVJSMF9NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjBfU0hGVCAxMworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU0lfQU9FUlIwX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0FPRVJSMV9TSEZUIDE0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwMDQwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IwX0FPRVJSMV9TSEZUIDE1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9HUjBfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0dSMV9BT0VSUjFfU0hGVCAxNgorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfR1IxX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MSF9BT0VSUjFfU0hGVCAxNworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEhfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMDIwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX0FPRVJSMV9TSEZUIDE4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9SSF9BT0VSUjFfTUFTSyAweDAwMDAwMDAwMDAwNDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfWE5fQU9FUlIxX1NIRlQgMTkKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1hOX0FPRVJSMV9NQVNLIDB4MDAwMDAwMDAwMDA4MDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TSV9BT0VSUjFfU0hGVCAyMAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU0lfQU9FUlIxX01BU0sgMHgwMDAwMDAwMDAwMTAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1JIX1ZQSV9JTlRfU0hGVCAyMQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfUkhfVlBJX0lOVF9NQVNLIDB4MDAwMDAwMDAwMDIwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TWVNURU1fU0hVVERPV05fSU5UX1NIRlQgMjIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX1NZU1RFTV9TSFVURE9XTl9JTlRfTUFTSyAweDAwMDAwMDAwMDA0MDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8wX1NIRlQgMjMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMF9NQVNLIDB4MDAwMDAwMDAwMDgwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzFfU0hGVCAyNAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xX01BU0sgMHgwMDAwMDAwMDAxMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMl9TSEZUIDI1CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzJfTUFTSyAweDAwMDAwMDAwMDIwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8zX1NIRlQgMjYKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfM19NQVNLIDB4MDAwMDAwMDAwNDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzRfU0hGVCAyNworI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF80X01BU0sgMHgwMDAwMDAwMDA4MDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNV9TSEZUIDI4CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzVfTUFTSyAweDAwMDAwMDAwMTAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF82X1NIRlQgMjkKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfNl9NQVNLIDB4MDAwMDAwMDAyMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzdfU0hGVCAzMAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF83X01BU0sgMHgwMDAwMDAwMDQwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfOF9TSEZUIDMxCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzhfTUFTSyAweDAwMDAwMDAwODAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF85X1NIRlQgMzIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfOV9NQVNLIDB4MDAwMDAwMDEwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzEwX1NIRlQgMzMKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTBfTUFTSyAweDAwMDAwMDAyMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMV9TSEZUIDM0CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzExX01BU0sgMHgwMDAwMDAwNDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTJfU0hGVCAzNQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xMl9NQVNLIDB4MDAwMDAwMDgwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzEzX1NIRlQgMzYKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTNfTUFTSyAweDAwMDAwMDEwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xNF9TSEZUIDM3CisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MQl9JUlFfSU5UXzE0X01BU0sgMHgwMDAwMDAyMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xCX0lSUV9JTlRfMTVfU0hGVCAzOAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTEJfSVJRX0lOVF8xNV9NQVNLIDB4MDAwMDAwNDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MMV9OTUlfSU5UX1NIRlQgMzkKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX05NSV9JTlRfTUFTSyAweDAwMDAwMDgwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfU1RPUF9DTE9DS19TSEZUIDQwCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9TVE9QX0NMT0NLX01BU0sgMHgwMDAwMDEwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0FTSUNfVE9fTDFfU0hGVCA0MQorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfQVNJQ19UT19MMV9NQVNLIDB4MDAwMDAyMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MMV9UT19BU0lDX1NIRlQgNDIKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0wxX1RPX0FTSUNfTUFTSyAweDAwMDAwNDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfTE9DQUxfSU5UMF9FTkFCTEVfTFRDX0lOVF9TSEZUIDQzCisjZGVmaW5lIFVWSF9MT0NBTF9JTlQwX0VOQUJMRV9MVENfSU5UX01BU0sgMHgwMDAwMDgwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xBX1NFUV9UUklHR0VSX1NIRlQgNDQKKyNkZWZpbmUgVVZIX0xPQ0FMX0lOVDBfRU5BQkxFX0xBX1NFUV9UUklHR0VSX01BU0sgMHgwMDAwMTAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX2xvY2FsX2ludDBfZW5hYmxlX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX2xvY2FsX2ludDBfZW5hYmxlX3MgeworCXVuc2lnbmVkIGxvbmcJbGJfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMF9oY2VyciAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjFfaGNlcnIgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGhfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJoX2hjZXJyICAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwl4bl9oY2VyciAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc2lfaGNlcnIgICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlncjBfYW9lcnIwICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IxX2FvZXJyMCAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxoX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyaF9hb2VycjAgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJeG5fYW9lcnIwICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXNpX2FvZXJyMCAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZ3IwX2FvZXJyMSAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWdyMV9hb2VycjEgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsaF9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcmhfYW9lcnIxICAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXhuX2FvZXJyMSAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzaV9hb2VycjEgICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcmhfdnBpX2ludCAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN5c3RlbV9zaHV0ZG93bl9pbnQgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMiAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzMgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF80ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfNSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzYgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF83ICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfOCAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzkgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMCAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTEgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzEyICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbGJfaXJxX2ludF8xMyAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWxiX2lycV9pbnRfMTQgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYl9pcnFfaW50XzE1ICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbDFfbm1pX2ludCAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0b3BfY2xvY2sgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlhc2ljX3RvX2wxICAgICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJbDFfdG9fYXNpYyAgICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWx0Y19pbnQgICAgICAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlsYV9zZXFfdHJpZ2dlciAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF80NV82MyAgICAgICAgICA6IDE5OyAgLyogICAgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfTk9ERV9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9OT0RFX0lEIDB4MFVMCkBAIC0yODQsMTQgKzg4NywxMDEgQEAKIH07CiAKIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX05PREVfUFJFU0VOVF9UQUJMRSAweDE0MDBVTAorI2RlZmluZSBVVkhfTk9ERV9QUkVTRU5UX1RBQkxFX0RFUFRIIDE2CisKKyNkZWZpbmUgVVZIX05PREVfUFJFU0VOVF9UQUJMRV9OT0RFU19TSEZUIDAKKyNkZWZpbmUgVVZIX05PREVfUFJFU0VOVF9UQUJMRV9OT0RFU19NQVNLIDB4ZmZmZmZmZmZmZmZmZmZmZlVMCisKK3VuaW9uIHV2aF9ub2RlX3ByZXNlbnRfdGFibGVfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfbm9kZV9wcmVzZW50X3RhYmxlX3MgeworCXVuc2lnbmVkIGxvbmcJbm9kZXMgOiA2NDsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMF9NTVIgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18wX01NUiAweDE2MDAwZDBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzBfTU1SX0RFU1RfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzBfTU1SX0RFU1RfQkFTRV9NQVNLIDB4MDAwMDNmZmZmZjAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fYWxpYXMyMTBfcmVkaXJlY3RfY29uZmlnXzBfbW1yX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMF9tbXJfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjMgOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlkZXN0X2Jhc2UgOiAyMjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ2XzYzOiAxODsgIC8qICAgICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMV9NTVIgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18xX01NUiAweDE2MDAwZTBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzFfTU1SX0RFU1RfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzFfTU1SX0RFU1RfQkFTRV9NQVNLIDB4MDAwMDNmZmZmZjAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fYWxpYXMyMTBfcmVkaXJlY3RfY29uZmlnXzFfbW1yX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMV9tbXJfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjMgOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlkZXN0X2Jhc2UgOiAyMjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ2XzYzOiAxODsgIC8qICAgICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9BTElBUzIxMF9SRURJUkVDVF9DT05GSUdfMl9NTVIgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUkhfR0FNX0FMSUFTMjEwX1JFRElSRUNUX0NPTkZJR18yX01NUiAweDE2MDAwZjBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SX0RFU1RfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9SSF9HQU1fQUxJQVMyMTBfUkVESVJFQ1RfQ09ORklHXzJfTU1SX0RFU1RfQkFTRV9NQVNLIDB4MDAwMDNmZmZmZjAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fYWxpYXMyMTBfcmVkaXJlY3RfY29uZmlnXzJfbW1yX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3JoX2dhbV9hbGlhczIxMF9yZWRpcmVjdF9jb25maWdfMl9tbXJfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjMgOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlkZXN0X2Jhc2UgOiAyMjsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ2XzYzOiAxODsgIC8qICAgICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUiAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVIgMHgxNjAwMDIwVUwKKworI2RlZmluZSBVVkhfUkhfR0FNX0NGR19PVkVSTEFZX0NPTkZJR19NTVJfQkFTRV9TSEZUIDI2CisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX01BU0sgMHgwMDAwM2ZmZmZjMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9DRkdfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9TSEZUIDYzCisjZGVmaW5lIFVWSF9SSF9HQU1fQ0ZHX09WRVJMQVlfQ09ORklHX01NUl9FTkFCTEVfTUFTSyAweDgwMDAwMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfcmhfZ2FtX2NmZ19vdmVybGF5X2NvbmZpZ19tbXJfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcmhfZ2FtX2NmZ19vdmVybGF5X2NvbmZpZ19tbXJfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjU6IDI2OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWJhc2UgICA6IDIwOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNDZfNjI6IDE3OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWVuYWJsZSA6ICAxOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUiAweDE2MDAwMTBVTAogCiAjZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX1NIRlQgMjgKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfTUFTSyAweDAwMDAzZmZmZjAwMDAwMDBVTAotI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfR1I0X1NIRlQgNDYKLSNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0dSNF9NQVNLIDB4MDAwMDQwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9SSF9HQU1fR1JVX09WRVJMQVlfQ09ORklHX01NUl9HUjRfU0hGVCA0OAorI2RlZmluZSBVVkhfUkhfR0FNX0dSVV9PVkVSTEFZX0NPTkZJR19NTVJfR1I0X01BU0sgMHgwMDAxMDAwMDAwMDAwMDAwVUwKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX05fR1JVX1NIRlQgNTIKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX05fR1JVX01BU0sgMHgwMGYwMDAwMDAwMDAwMDAwVUwKICNkZWZpbmUgVVZIX1JIX0dBTV9HUlVfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9TSEZUIDYzCkBAIC0zMDIsOCArOTkyLDkgQEAKICAgICBzdHJ1Y3QgdXZoX3JoX2dhbV9ncnVfb3ZlcmxheV9jb25maWdfbW1yX3MgewogCXVuc2lnbmVkIGxvbmcJcnN2ZF8wXzI3OiAyODsgIC8qICAgICovCiAJdW5zaWduZWQgbG9uZwliYXNlICAgOiAxODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ2XzQ3OiAgMjsgIC8qICAgICovCiAJdW5zaWduZWQgbG9uZwlncjQgICAgOiAgMTsgIC8qIFJXICovCi0JdW5zaWduZWQgbG9uZwlyc3ZkXzQ3XzUxOiAgNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzQ5XzUxOiAgMzsgIC8qICAgICovCiAJdW5zaWduZWQgbG9uZwluX2dydSAgOiAgNDsgIC8qIFJXICovCiAJdW5zaWduZWQgbG9uZwlyc3ZkXzU2XzYyOiAgNzsgIC8qICAgICovCiAJdW5zaWduZWQgbG9uZwllbmFibGUgOiAgMTsgIC8qIFJXICovCkBAIC0zMTEsNiArMTAwMiwzMiBAQAogfTsKIAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVIgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUiAweDE2MDAwMzBVTAorCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX0JBU0VfU0hGVCAzMAorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9CQVNFX01BU0sgMHgwMDAwM2ZmZmMwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfTV9JT19TSEZUIDQ2CisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX01fSU9fTUFTSyAweDAwMGZjMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfUkhfR0FNX01NSU9IX09WRVJMQVlfQ09ORklHX01NUl9OX0lPX1NIRlQgNTIKKyNkZWZpbmUgVVZIX1JIX0dBTV9NTUlPSF9PVkVSTEFZX0NPTkZJR19NTVJfTl9JT19NQVNLIDB4MDBmMDAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9TSEZUIDYzCisjZGVmaW5lIFVWSF9SSF9HQU1fTU1JT0hfT1ZFUkxBWV9DT05GSUdfTU1SX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9yaF9nYW1fbW1pb2hfb3ZlcmxheV9jb25maWdfbW1yX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3JoX2dhbV9tbWlvaF9vdmVybGF5X2NvbmZpZ19tbXJfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjk6IDMwOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWJhc2UgICA6IDE2OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW1faW8gICA6ICA2OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCW5faW8gICA6ICA0OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTZfNjI6ICA3OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWVuYWJsZSA6ICAxOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAvKiAgICAgICAgICAgICAgICAgICAgVVZIX1JIX0dBTV9NTVJfT1ZFUkxBWV9DT05GSUdfTU1SICAgICAgICAgICAgICAgICAgICAgICovCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAjZGVmaW5lIFVWSF9SSF9HQU1fTU1SX09WRVJMQVlfQ09ORklHX01NUiAweDE2MDAwMjhVTApAQCAtMzM2LDcgKzEwNTMsNyBAQAogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfUlRDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotI2RlZmluZSBVVkhfUlRDIDB4MjgwMDBVTAorI2RlZmluZSBVVkhfUlRDIDB4MzQwMDAwVUwKIAogI2RlZmluZSBVVkhfUlRDX1JFQUxfVElNRV9DTE9DS19TSEZUIDAKICNkZWZpbmUgVVZIX1JUQ19SRUFMX1RJTUVfQ0xPQ0tfTUFTSyAweDAwZmZmZmZmZmZmZmZmZmZVTApAQCAtMzUwLDYgKzEwNjcsMTM5IEBACiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9SVEMxX0lOVF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUcgMHg2MTVjMFVMCisKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19WRUNUT1JfU0hGVCAwCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfVkVDVE9SX01BU0sgMHgwMDAwMDAwMDAwMDAwMGZmVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19ETV9TSEZUIDgKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19ETV9NQVNLIDB4MDAwMDAwMDAwMDAwMDcwMFVMCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfREVTVE1PREVfU0hGVCAxMQorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX0RFU1RNT0RFX01BU0sgMHgwMDAwMDAwMDAwMDAwODAwVUwKKyNkZWZpbmUgVVZIX1JUQzFfSU5UX0NPTkZJR19TVEFUVVNfU0hGVCAxMgorI2RlZmluZSBVVkhfUlRDMV9JTlRfQ09ORklHX1NUQVRVU19NQVNLIDB4MDAwMDAwMDAwMDAwMTAwMFVMCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfUF9TSEZUIDEzCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfUF9NQVNLIDB4MDAwMDAwMDAwMDAwMjAwMFVMCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfVF9TSEZUIDE1CisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfVF9NQVNLIDB4MDAwMDAwMDAwMDAwODAwMFVMCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfTV9TSEZUIDE2CisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfTV9NQVNLIDB4MDAwMDAwMDAwMDAxMDAwMFVMCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfQVBJQ19JRF9TSEZUIDMyCisjZGVmaW5lIFVWSF9SVEMxX0lOVF9DT05GSUdfQVBJQ19JRF9NQVNLIDB4ZmZmZmZmZmYwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9ydGMxX2ludF9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcnRjMV9pbnRfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJdmVjdG9yXyAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkbSAgICAgICA6ICAzOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRlc3Rtb2RlIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJc3RhdHVzICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlwICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTQgIDogIDE7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJdCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwltICAgICAgICA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMTdfMzE6IDE1OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWFwaWNfaWQgIDogMzI7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgVVZIX1JUQzJfSU5UX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJRyAweDYxNjAwVUwKKworI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1ZFQ1RPUl9TSEZUIDAKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19WRUNUT1JfTUFTSyAweDAwMDAwMDAwMDAwMDAwZmZVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0RNX1NIRlQgOAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX0RNX01BU0sgMHgwMDAwMDAwMDAwMDAwNzAwVUwKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19ERVNUTU9ERV9TSEZUIDExCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfREVTVE1PREVfTUFTSyAweDAwMDAwMDAwMDAwMDA4MDBVTAorI2RlZmluZSBVVkhfUlRDMl9JTlRfQ09ORklHX1NUQVRVU19TSEZUIDEyCisjZGVmaW5lIFVWSF9SVEMyX0lOVF9DT05GSUdfU1RBVFVTX01BU0sgMHgwMDAwMDAwMDAwMDAxMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19QX1NIRlQgMTMKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19QX01BU0sgMHgwMDAwMDAwMDAwMDAyMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19UX1NIRlQgMTUKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19UX01BU0sgMHgwMDAwMDAwMDAwMDA4MDAwVUwKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19NX1NIRlQgMTYKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19NX01BU0sgMHgwMDAwMDAwMDAwMDEwMDAwVUwKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19BUElDX0lEX1NIRlQgMzIKKyNkZWZpbmUgVVZIX1JUQzJfSU5UX0NPTkZJR19BUElDX0lEX01BU0sgMHhmZmZmZmZmZjAwMDAwMDAwVUwKKwordW5pb24gdXZoX3J0YzJfaW50X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9ydGMyX2ludF9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwl2ZWN0b3JfICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCWRtICAgICAgIDogIDM7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZGVzdG1vZGUgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlzdGF0dXMgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCXAgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xNCAgOiAgMTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwl0ICAgICAgICA6ICAxOyAgLyogUk8gKi8KKwl1bnNpZ25lZCBsb25nCW0gICAgICAgIDogIDE7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8xN18zMTogMTU7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYXBpY19pZCAgOiAzMjsgIC8qIFJXICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfUlRDM19JTlRfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHIDB4NjE2NDBVTAorCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfVkVDVE9SX1NIRlQgMAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1ZFQ1RPUl9NQVNLIDB4MDAwMDAwMDAwMDAwMDBmZlVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfRE1fU0hGVCA4CisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfRE1fTUFTSyAweDAwMDAwMDAwMDAwMDA3MDBVTAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX0RFU1RNT0RFX1NIRlQgMTEKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19ERVNUTU9ERV9NQVNLIDB4MDAwMDAwMDAwMDAwMDgwMFVMCisjZGVmaW5lIFVWSF9SVEMzX0lOVF9DT05GSUdfU1RBVFVTX1NIRlQgMTIKKyNkZWZpbmUgVVZIX1JUQzNfSU5UX0NPTkZJR19TVEFUVVNfTUFTSyAweDAwMDAwMDAwMDAwMDEwMDBVTAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1BfU0hGVCAxMworI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1BfTUFTSyAweDAwMDAwMDAwMDAwMDIwMDBVTAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1RfU0hGVCAxNQorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX1RfTUFTSyAweDAwMDAwMDAwMDAwMDgwMDBVTAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX01fU0hGVCAxNgorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX01fTUFTSyAweDAwMDAwMDAwMDAwMTAwMDBVTAorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX0FQSUNfSURfU0hGVCAzMgorI2RlZmluZSBVVkhfUlRDM19JTlRfQ09ORklHX0FQSUNfSURfTUFTSyAweGZmZmZmZmZmMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfcnRjM19pbnRfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3J0YzNfaW50X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXZlY3Rvcl8gIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJZG0gICAgICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlkZXN0bW9kZSA6ICAxOyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXN0YXR1cyAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJcCAgICAgICAgOiAgMTsgIC8qIFJPICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE0ICA6ICAxOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCXQgICAgICAgIDogIDE7ICAvKiBSTyAqLworCXVuc2lnbmVkIGxvbmcJbSAgICAgICAgOiAgMTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzE3XzMxOiAxNTsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwlhcGljX2lkICA6IDMyOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkhfUlRDX0lOQ19SQVRJTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPIDB4MzUwMDAwVUwKKworI2RlZmluZSBVVkhfUlRDX0lOQ19SQVRJT19GUkFDVElPTl9TSEZUIDAKKyNkZWZpbmUgVVZIX1JUQ19JTkNfUkFUSU9fRlJBQ1RJT05fTUFTSyAweDAwMDAwMDAwMDAwZmZmZmZVTAorI2RlZmluZSBVVkhfUlRDX0lOQ19SQVRJT19SQVRJT19TSEZUIDIwCisjZGVmaW5lIFVWSF9SVENfSU5DX1JBVElPX1JBVElPX01BU0sgMHgwMDAwMDAwMDAwNzAwMDAwVUwKKwordW5pb24gdXZoX3J0Y19pbmNfcmF0aW9fdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfcnRjX2luY19yYXRpb19zIHsKKwl1bnNpZ25lZCBsb25nCWZyYWN0aW9uIDogMjA7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcmF0aW8gICAgOiAgMzsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzIzXzYzOiA0MTsgIC8qICAgICovCisgICAgfSBzOworfTsKKworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogLyogICAgICAgICAgICAgICAgICAgICAgICAgIFVWSF9TSV9BRERSX01BUF9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogI2RlZmluZSBVVkhfU0lfQUREUl9NQVBfQ09ORklHIDB4YzgwMDAwVUwKQEAgLTM2OSw1ICsxMjE5LDc3IEBACiAgICAgfSBzOwogfTsKIAorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworLyogICAgICAgICAgICAgICAgICAgICAgIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUcgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLworI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHIDB4YzgwMDA4VUwKKworI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHX0JBU0VfU0hGVCAyNAorI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHX0JBU0VfTUFTSyAweDAwMDAwMDAwZmYwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHX01fQUxJQVNfU0hGVCA0OAorI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHX01fQUxJQVNfTUFTSyAweDAwMWYwMDAwMDAwMDAwMDBVTAorI2RlZmluZSBVVkhfU0lfQUxJQVMwX09WRVJMQVlfQ09ORklHX0VOQUJMRV9TSEZUIDYzCisjZGVmaW5lIFVWSF9TSV9BTElBUzBfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX01BU0sgMHg4MDAwMDAwMDAwMDAwMDAwVUwKKwordW5pb24gdXZoX3NpX2FsaWFzMF9vdmVybGF5X2NvbmZpZ191IHsKKyAgICB1bnNpZ25lZCBsb25nCXY7CisgICAgc3RydWN0IHV2aF9zaV9hbGlhczBfb3ZlcmxheV9jb25maWdfcyB7CisJdW5zaWduZWQgbG9uZwlyc3ZkXzBfMjM6IDI0OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWJhc2UgICAgOiAgODsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzMyXzQ3OiAxNjsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwltX2FsaWFzIDogIDU7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF81M182MjogMTA7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJZW5hYmxlICA6ICAxOyAgLyogUlcgKi8KKyAgICB9IHM7Cit9OworCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUcgMHhjODAwMTBVTAorCisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUdfQkFTRV9TSEZUIDI0CisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUdfQkFTRV9NQVNLIDB4MDAwMDAwMDBmZjAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19TSEZUIDQ4CisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUdfTV9BTElBU19NQVNLIDB4MDAxZjAwMDAwMDAwMDAwMFVMCisjZGVmaW5lIFVWSF9TSV9BTElBUzFfT1ZFUkxBWV9DT05GSUdfRU5BQkxFX1NIRlQgNjMKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMV9PVkVSTEFZX0NPTkZJR19FTkFCTEVfTUFTSyAweDgwMDAwMDAwMDAwMDAwMDBVTAorCit1bmlvbiB1dmhfc2lfYWxpYXMxX292ZXJsYXlfY29uZmlnX3UgeworICAgIHVuc2lnbmVkIGxvbmcJdjsKKyAgICBzdHJ1Y3QgdXZoX3NpX2FsaWFzMV9vdmVybGF5X2NvbmZpZ19zIHsKKwl1bnNpZ25lZCBsb25nCXJzdmRfMF8yMzogMjQ7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJYmFzZSAgICA6ICA4OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfMzJfNDc6IDE2OyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCW1fYWxpYXMgOiAgNTsgIC8qIFJXICovCisJdW5zaWduZWQgbG9uZwlyc3ZkXzUzXzYyOiAxMDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwllbmFibGUgIDogIDE7ICAvKiBSVyAqLworICAgIH0gczsKK307CisKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJRyAweGM4MDAxOFVMCisKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJR19CQVNFX1NIRlQgMjQKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJR19CQVNFX01BU0sgMHgwMDAwMDAwMGZmMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX1NIRlQgNDgKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJR19NX0FMSUFTX01BU0sgMHgwMDFmMDAwMDAwMDAwMDAwVUwKKyNkZWZpbmUgVVZIX1NJX0FMSUFTMl9PVkVSTEFZX0NPTkZJR19FTkFCTEVfU0hGVCA2MworI2RlZmluZSBVVkhfU0lfQUxJQVMyX09WRVJMQVlfQ09ORklHX0VOQUJMRV9NQVNLIDB4ODAwMDAwMDAwMDAwMDAwMFVMCisKK3VuaW9uIHV2aF9zaV9hbGlhczJfb3ZlcmxheV9jb25maWdfdSB7CisgICAgdW5zaWduZWQgbG9uZwl2OworICAgIHN0cnVjdCB1dmhfc2lfYWxpYXMyX292ZXJsYXlfY29uZmlnX3MgeworCXVuc2lnbmVkIGxvbmcJcnN2ZF8wXzIzOiAyNDsgIC8qICAgICovCisJdW5zaWduZWQgbG9uZwliYXNlICAgIDogIDg7ICAvKiBSVyAqLworCXVuc2lnbmVkIGxvbmcJcnN2ZF8zMl80NzogMTY7ICAvKiAgICAqLworCXVuc2lnbmVkIGxvbmcJbV9hbGlhcyA6ICA1OyAgLyogUlcgKi8KKwl1bnNpZ25lZCBsb25nCXJzdmRfNTNfNjI6IDEwOyAgLyogICAgKi8KKwl1bnNpZ25lZCBsb25nCWVuYWJsZSAgOiAgMTsgIC8qIFJXICovCisgICAgfSBzOworfTsKKwogCiAjZW5kaWYgLyogX19BU01fWDg2X1VWX01NUlNfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvY29iYWx0LmggYi9pbmNsdWRlL2FzbS14ODYvdmlzd3MvY29iYWx0LmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL2NvYmFsdC5oCnJlbmFtZSB0byBpbmNsdWRlL2FzbS14ODYvdmlzd3MvY29iYWx0LmgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL2xpdGhpdW0uaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9saXRoaXVtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9tYWNoLXZpc3dzL2xpdGhpdW0uaApyZW5hbWUgdG8gaW5jbHVkZS9hc20teDg2L3Zpc3dzL2xpdGhpdW0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L21hY2gtdmlzd3MvcGlpeDQuaCBiL2luY2x1ZGUvYXNtLXg4Ni92aXN3cy9waWl4NC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBpbmNsdWRlL2FzbS14ODYvbWFjaC12aXN3cy9waWl4NC5oCnJlbmFtZSB0byBpbmNsdWRlL2FzbS14ODYvdmlzd3MvcGlpeDQuaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3Zpc3dzL3NnaXZ3LmggYi9pbmNsdWRlL2FzbS14ODYvdmlzd3Mvc2dpdncuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmJmNjNlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9hc20teDg2L3Zpc3dzL3NnaXZ3LmgKQEAgLTAsMCArMSw1IEBACisvKgorICogRnJhbWUgYnVmZmVyIHBvc2l0aW9uIGFuZCBzaXplOgorICovCitleHRlcm4gdW5zaWduZWQgbG9uZyBzZ2l2d2ZiX21lbV9waHlzOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc2dpdndmYl9tZW1fc2l6ZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni92bTg2LmggYi9pbmNsdWRlL2FzbS14ODYvdm04Ni5oCmluZGV4IDA3NGIzNTcuLjVjZTM1MTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLXg4Ni92bTg2LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3ZtODYuaApAQCAtMTQsMTIgKzE0LDYgQEAKIAogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KIAotI2lmZGVmIENPTkZJR19WTTg2Ci0jZGVmaW5lIFg4Nl9WTV9NQVNLCVg4Nl9FRkxBR1NfVk0KLSNlbHNlCi0jZGVmaW5lIFg4Nl9WTV9NQVNLCTAgLyogTm8gVk04NiBzdXBwb3J0ICovCi0jZW5kaWYKLQogI2RlZmluZSBCSU9TU0VHCQkweDBmMDAwCiAKICNkZWZpbmUgQ1BVXzA4NgkJMApAQCAtMTIxLDcgKzExNSw2IEBACiAJdW5zaWduZWQgbG9uZyBpc192bTg2cHVzOjE7CSAgICAgIC8qIGZvciB2bTg2IGludGVybmFsIHVzZSAqLwogCXVuc2lnbmVkIGNoYXIgdm04NmRiZ19pbnR4eHRhYlszMl07ICAgLyogZm9yIGRlYnVnZ2VyICovCiB9OwotCiBzdHJ1Y3Qgdm04NnBsdXNfc3RydWN0IHsKIAlzdHJ1Y3Qgdm04Nl9yZWdzIHJlZ3M7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTEzMyw2ICsxMjYsOSBAQAogfTsKIAogI2lmZGVmIF9fS0VSTkVMX18KKworI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKwogLyoKICAqIFRoaXMgaXMgdGhlIChrZXJuZWwpIHN0YWNrLWxheW91dCB3aGVuIHdlIGhhdmUgZG9uZSBhICJTQVZFX0FMTCIgZnJvbSB2bTg2CiAgKiBtb2RlIC0gdGhlIG1haW4gY2hhbmdlIGlzIHRoYXQgdGhlIG9sZCBzZWdtZW50IGRlc2NyaXB0b3JzIGFyZW4ndApAQCAtMTQxLDcgKzEzNyw2IEBACiAgKiBhdCB0aGUgZW5kIG9mIHRoZSBzdHJ1Y3R1cmUuIExvb2sgYXQgcHRyYWNlLmggdG8gc2VlIHRoZSAibm9ybWFsIgogICogc2V0dXAuIEZvciB1c2VyIHNwYWNlIGxheW91dCBzZWUgJ3N0cnVjdCB2bTg2X3JlZ3MnIGFib3ZlLgogICovCi0jaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgogCiBzdHJ1Y3Qga2VybmVsX3ZtODZfcmVncyB7CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3ZtaV90aW1lLmggYi9pbmNsdWRlL2FzbS14ODYvdm1pX3RpbWUuaAppbmRleCA0NzgxODgxLi5jMzExOGMzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdm1pX3RpbWUuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdm1pX3RpbWUuaApAQCAtNTAsNyArNTAsNyBAQAogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1pX2dldF93YWxsY2xvY2sodm9pZCk7CiBleHRlcm4gaW50IHZtaV9zZXRfd2FsbGNsb2NrKHVuc2lnbmVkIGxvbmcgbm93KTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgdm1pX3NjaGVkX2Nsb2NrKHZvaWQpOwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdm1pX2NwdV9raHoodm9pZCk7CitleHRlcm4gdW5zaWduZWQgbG9uZyB2bWlfdHNjX2toeih2b2lkKTsKIAogI2lmZGVmIENPTkZJR19YODZfTE9DQUxfQVBJQwogZXh0ZXJuIHZvaWQgX19kZXZpbml0IHZtaV90aW1lX2JzcF9pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3ZzeXNjYWxsLmggYi9pbmNsdWRlL2FzbS14ODYvdnN5c2NhbGwuaAppbmRleCAxN2IzNzAwLi42YjY2ZmY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYvdnN5c2NhbGwuaAorKysgYi9pbmNsdWRlL2FzbS14ODYvdnN5c2NhbGwuaApAQCAtMjQsNyArMjQsOCBAQAogCSgodW51c2VkLCBfX3NlY3Rpb25fXyAoIi52c3lzY2FsbF9ndG9kX2RhdGEiKSxhbGlnbmVkKDE2KSkpCiAjZGVmaW5lIF9fc2VjdGlvbl92c3lzY2FsbF9jbG9jayBfX2F0dHJpYnV0ZV9fIFwKIAkoKHVudXNlZCwgX19zZWN0aW9uX18gKCIudnN5c2NhbGxfY2xvY2siKSxhbGlnbmVkKDE2KSkpCi0jZGVmaW5lIF9fdnN5c2NhbGxfZm4gX19hdHRyaWJ1dGVfXyAoKHVudXNlZCxfX3NlY3Rpb25fXygiLnZzeXNjYWxsX2ZuIikpKQorI2RlZmluZSBfX3ZzeXNjYWxsX2ZuIFwKKwlfX2F0dHJpYnV0ZV9fICgodW51c2VkLCBfX3NlY3Rpb25fXygiLnZzeXNjYWxsX2ZuIikpKSBub3RyYWNlCiAKICNkZWZpbmUgVkdFVENQVV9SRFRTQ1AJMQogI2RlZmluZSBWR0VUQ1BVX0xTTAkyCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS14ODYveGVuL2h5cGVyY2FsbC5oIGIvaW5jbHVkZS9hc20teDg2L3hlbi9oeXBlcmNhbGwuaAppbmRleCBjMmNjZDk5Li4yYTRmOWI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveGVuL2h5cGVyY2FsbC5oCisrKyBiL2luY2x1ZGUvYXNtLXg4Ni94ZW4vaHlwZXJjYWxsLmgKQEAgLTE3Niw5ICsxNzYsOSBAQAogfQogCiBzdGF0aWMgaW5saW5lIGludAotSFlQRVJWSVNPUl9zY2hlZF9vcChpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKK0hZUEVSVklTT1Jfc2NoZWRfb3AoaW50IGNtZCwgdm9pZCAqYXJnKQogewotCXJldHVybiBfaHlwZXJjYWxsMihpbnQsIHNjaGVkX29wLCBjbWQsIGFyZyk7CisJcmV0dXJuIF9oeXBlcmNhbGwyKGludCwgc2NoZWRfb3BfbmV3LCBjbWQsIGFyZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgbG9uZwpAQCAtMzE1LDYgKzMxNSwxMyBAQAogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKK01VTFRJX2ZwdV90YXNrc3dpdGNoKHN0cnVjdCBtdWx0aWNhbGxfZW50cnkgKm1jbCwgaW50IHNldCkKK3sKKwltY2wtPm9wID0gX19IWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoOworCW1jbC0+YXJnc1swXSA9IHNldDsKK30KKworc3RhdGljIGlubGluZSB2b2lkCiBNVUxUSV91cGRhdGVfdmFfbWFwcGluZyhzdHJ1Y3QgbXVsdGljYWxsX2VudHJ5ICptY2wsIHVuc2lnbmVkIGxvbmcgdmEsCiAJCQlwdGVfdCBuZXdfdmFsLCB1bnNpZ25lZCBsb25nIGZsYWdzKQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20teDg2L3hlbi9wYWdlLmggYi9pbmNsdWRlL2FzbS14ODYveGVuL3BhZ2UuaAppbmRleCBiYWYzYTRkLi4zNzdjMDQ1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveGVuL3BhZ2UuaAorKysgYi9pbmNsdWRlL2FzbS14ODYveGVuL3BhZ2UuaApAQCAtMjYsMTUgKzI2LDIwIEBACiAjZGVmaW5lIEZPUkVJR05fRlJBTUVfQklUCSgxVUw8PDMxKQogI2RlZmluZSBGT1JFSUdOX0ZSQU1FKG0pCSgobSkgfCBGT1JFSUdOX0ZSQU1FX0JJVCkKIAotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgKnBoeXNfdG9fbWFjaGluZV9tYXBwaW5nOworLyogTWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHdlIGNhbiBoYW5kbGUgaW4gYSBkb21haW4gaW4gcGFnZXMgKi8KKyNkZWZpbmUgTUFYX0RPTUFJTl9QQUdFUwkJCQkJCVwKKyAgICAoKHVuc2lnbmVkIGxvbmcpKCh1NjQpQ09ORklHX1hFTl9NQVhfRE9NQUlOX01FTU9SWSAqIDEwMjQgKiAxMDI0ICogMTAyNCAvIFBBR0VfU0laRSkpCisKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25lZCBsb25nIHBmbik7CitleHRlcm4gdm9pZCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbik7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBwZm5fdG9fbWZuKHVuc2lnbmVkIGxvbmcgcGZuKQogewogCWlmICh4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkKIAkJcmV0dXJuIHBmbjsKIAotCXJldHVybiBwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1sodW5zaWduZWQgaW50KShwZm4pXSAmCi0JCX5GT1JFSUdOX0ZSQU1FX0JJVDsKKwlyZXR1cm4gZ2V0X3BoeXNfdG9fbWFjaGluZShwZm4pICYgfkZPUkVJR05fRlJBTUVfQklUOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBwaHlzX3RvX21hY2hpbmVfbWFwcGluZ192YWxpZCh1bnNpZ25lZCBsb25nIHBmbikKQEAgLTQyLDcgKzQ3LDcgQEAKIAlpZiAoeGVuX2ZlYXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpCiAJCXJldHVybiAxOwogCi0JcmV0dXJuIChwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1twZm5dICE9IElOVkFMSURfUDJNX0VOVFJZKTsKKwlyZXR1cm4gZ2V0X3BoeXNfdG9fbWFjaGluZShwZm4pICE9IElOVkFMSURfUDJNX0VOVFJZOwogfQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbWZuX3RvX3Bmbih1bnNpZ25lZCBsb25nIG1mbikKQEAgLTEwNiwyMCArMTExLDEyIEBACiAJdW5zaWduZWQgbG9uZyBwZm4gPSBtZm5fdG9fcGZuKG1mbik7CiAJaWYgKChwZm4gPCBtYXhfbWFwbnIpCiAJICAgICYmICF4ZW5fZmVhdHVyZShYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKQotCSAgICAmJiAocGh5c190b19tYWNoaW5lX21hcHBpbmdbcGZuXSAhPSBtZm4pKQorCSAgICAmJiAoZ2V0X3BoeXNfdG9fbWFjaGluZShwZm4pICE9IG1mbikpCiAJCXJldHVybiBtYXhfbWFwbnI7IC8qIGZvcmNlICFwZm5fdmFsaWQoKSAqLworCS8qIFhYWCBmaXhtZTsgbm90IHRydWUgd2l0aCBzcGFyc2VtZW0gKi8KIAlyZXR1cm4gcGZuOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCi17Ci0JaWYgKHhlbl9mZWF0dXJlKFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3BoeXNtYXApKSB7Ci0JCUJVR19PTihwZm4gIT0gbWZuICYmIG1mbiAhPSBJTlZBTElEX1AyTV9FTlRSWSk7Ci0JCXJldHVybjsKLQl9Ci0JcGh5c190b19tYWNoaW5lX21hcHBpbmdbcGZuXSA9IG1mbjsKLX0KLQogLyogVklSVCA8LT4gTUFDSElORSBjb252ZXJzaW9uICovCiAjZGVmaW5lIHZpcnRfdG9fbWFjaGluZSh2KQkocGh5c190b19tYWNoaW5lKFhQQUREUihfX3BhKHYpKSkpCiAjZGVmaW5lIHZpcnRfdG9fbWZuKHYpCQkocGZuX3RvX21mbihQRk5fRE9XTihfX3BhKHYpKSkpCkBAIC0xNTAsMTMgKzE0Nyw5IEBACiAJcmV0dXJuIChwdGVfdCkgeyAucHRlID0geCB9OwogfQogCi0jaWZkZWYgQ09ORklHX1g4Nl9QQUUKICNkZWZpbmUgcG1kX3ZhbF9tYSh2KSAoKHYpLnBtZCkKICNkZWZpbmUgcHVkX3ZhbF9tYSh2KSAoKHYpLnBnZC5wZ2QpCiAjZGVmaW5lIF9fcG1kX21hKHgpCSgocG1kX3QpIHsgKHgpIH0gKQotI2Vsc2UgIC8qICFYODZfUEFFICovCi0jZGVmaW5lIHBtZF92YWxfbWEodikJKCh2KS5wdWQucGdkLnBnZCkKLSNlbmRpZgkvKiBDT05GSUdfWDg2X1BBRSAqLwogCiAjZGVmaW5lIHBnZF92YWxfbWEoeCkJKCh4KS5wZ2QpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfMzIuaCBiL2luY2x1ZGUvYXNtLXg4Ni94b3JfMzIuaAppbmRleCAwNjdiNWMxLi45MjFiNDU4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveG9yXzMyLmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hvcl8zMi5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBU01fWDg2X19YT1JfMzJfSAorI2RlZmluZSBBU01fWDg2X19YT1JfMzJfSAorCiAvKgogICogT3B0aW1pemVkIFJBSUQtNSBjaGVja3N1bW1pbmcgZnVuY3Rpb25zIGZvciBNTVggYW5kIFNTRS4KICAqCkBAIC04ODEsMyArODg0LDUgQEAKICAgIGRlYWxzIHdpdGggYSBsb2FkIHRvIGEgbGluZSB0aGF0IGlzIGJlaW5nIHByZWZldGNoZWQuICAqLwogI2RlZmluZSBYT1JfU0VMRUNUX1RFTVBMQVRFKEZBU1RFU1QpCQkJXAogCShjcHVfaGFzX3htbSA/ICZ4b3JfYmxvY2tfcElJSV9zc2UgOiBGQVNURVNUKQorCisjZW5kaWYgLyogQVNNX1g4Nl9fWE9SXzMyX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLXg4Ni94b3JfNjQuaCBiL2luY2x1ZGUvYXNtLXg4Ni94b3JfNjQuaAppbmRleCAyNDk1N2UzLi4yZDNhMThkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS14ODYveG9yXzY0LmgKKysrIGIvaW5jbHVkZS9hc20teDg2L3hvcl82NC5oCkBAIC0xLDMgKzEsNiBAQAorI2lmbmRlZiBBU01fWDg2X19YT1JfNjRfSAorI2RlZmluZSBBU01fWDg2X19YT1JfNjRfSAorCiAvKgogICogT3B0aW1pemVkIFJBSUQtNSBjaGVja3N1bW1pbmcgZnVuY3Rpb25zIGZvciBNTVggYW5kIFNTRS4KICAqCkBAIC0zNTQsMyArMzU3LDUgQEAKICAgIFdlIG1heSBhbHNvIGJlIGFibGUgdG8gbG9hZCBpbnRvIHRoZSBMMSBvbmx5IGRlcGVuZGluZyBvbiBob3cgdGhlIGNwdQogICAgZGVhbHMgd2l0aCBhIGxvYWQgdG8gYSBsaW5lIHRoYXQgaXMgYmVpbmcgcHJlZmV0Y2hlZC4gICovCiAjZGVmaW5lIFhPUl9TRUxFQ1RfVEVNUExBVEUoRkFTVEVTVCkgKCZ4b3JfYmxvY2tfc3NlKQorCisjZW5kaWYgLyogQVNNX1g4Nl9fWE9SXzY0X0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3J5cHRvL2hhc2guaCBiL2luY2x1ZGUvY3J5cHRvL2hhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTI0OThlCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jcnlwdG8vaGFzaC5oCkBAIC0wLDAgKzEsMTU0IEBACisvKgorICogSGFzaDogSGFzaCBhbGdvcml0aG1zIHVuZGVyIHRoZSBjcnlwdG8gQVBJCisgKiAKKyAqIENvcHlyaWdodCAoYykgMjAwOCBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIAorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX0NSWVBUT19IQVNIX0gKKyNkZWZpbmUgX0NSWVBUT19IQVNIX0gKKworI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgorCitzdHJ1Y3QgY3J5cHRvX2FoYXNoIHsKKwlzdHJ1Y3QgY3J5cHRvX3RmbSBiYXNlOworfTsKKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX2FoYXNoICpfX2NyeXB0b19haGFzaF9jYXN0KHN0cnVjdCBjcnlwdG9fdGZtICp0Zm0pCit7CisJcmV0dXJuIChzdHJ1Y3QgY3J5cHRvX2FoYXNoICopdGZtOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjcnlwdG9fYWhhc2ggKmNyeXB0b19hbGxvY19haGFzaChjb25zdCBjaGFyICphbGdfbmFtZSwKKwkJCQkJCSAgICAgIHUzMiB0eXBlLCB1MzIgbWFzaykKK3sKKwl0eXBlICY9IH5DUllQVE9fQUxHX1RZUEVfTUFTSzsKKwltYXNrICY9IH5DUllQVE9fQUxHX1RZUEVfTUFTSzsKKwl0eXBlIHw9IENSWVBUT19BTEdfVFlQRV9BSEFTSDsKKwltYXNrIHw9IENSWVBUT19BTEdfVFlQRV9BSEFTSF9NQVNLOworCisJcmV0dXJuIF9fY3J5cHRvX2FoYXNoX2Nhc3QoY3J5cHRvX2FsbG9jX2Jhc2UoYWxnX25hbWUsIHR5cGUsIG1hc2spKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgY3J5cHRvX3RmbSAqY3J5cHRvX2FoYXNoX3RmbShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuICZ0Zm0tPmJhc2U7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fZnJlZV9haGFzaChzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJY3J5cHRvX2ZyZWVfdGZtKGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGNyeXB0b19haGFzaF9hbGlnbm1hc2soCisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiBjcnlwdG9fdGZtX2FsZ19hbGlnbm1hc2soY3J5cHRvX2FoYXNoX3RmbSh0Zm0pKTsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYWhhc2hfdGZtICpjcnlwdG9fYWhhc2hfY3J0KHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXR1cm4gJmNyeXB0b19haGFzaF90Zm0odGZtKS0+Y3J0X2FoYXNoOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hfZGlnZXN0c2l6ZShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b19haGFzaF9jcnQodGZtKS0+ZGlnZXN0c2l6ZTsKK30KKworc3RhdGljIGlubGluZSB1MzIgY3J5cHRvX2FoYXNoX2dldF9mbGFncyhzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1fZ2V0X2ZsYWdzKGNyeXB0b19haGFzaF90Zm0odGZtKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjcnlwdG9fYWhhc2hfc2V0X2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgdTMyIGZsYWdzKQoreworCWNyeXB0b190Zm1fc2V0X2ZsYWdzKGNyeXB0b19haGFzaF90Zm0odGZtKSwgZmxhZ3MpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY3J5cHRvX2FoYXNoX2NsZWFyX2ZsYWdzKHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgdTMyIGZsYWdzKQoreworCWNyeXB0b190Zm1fY2xlYXJfZmxhZ3MoY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNyeXB0b19haGFzaCAqY3J5cHRvX2FoYXNoX3JlcXRmbSgKKwlzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiBfX2NyeXB0b19haGFzaF9jYXN0KHJlcS0+YmFzZS50Zm0pOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBjcnlwdG9fYWhhc2hfcmVxc2l6ZShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b19haGFzaF9jcnQodGZtKS0+cmVxc2l6ZTsKK30KKworc3RhdGljIGlubGluZSBpbnQgY3J5cHRvX2FoYXNoX3NldGtleShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0sCisJCQkJICAgICAgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbikKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICpjcnQgPSBjcnlwdG9fYWhhc2hfY3J0KHRmbSk7CisKKwlyZXR1cm4gY3J0LT5zZXRrZXkodGZtLCBrZXksIGtleWxlbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IGNyeXB0b19haGFzaF9kaWdlc3Qoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSkKK3sKKwlzdHJ1Y3QgYWhhc2hfdGZtICpjcnQgPSBjcnlwdG9fYWhhc2hfY3J0KGNyeXB0b19haGFzaF9yZXF0Zm0ocmVxKSk7CisJcmV0dXJuIGNydC0+ZGlnZXN0KHJlcSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBhaGFzaF9yZXF1ZXN0X3NldF90Zm0oc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQkJIHN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSkKK3sKKwlyZXEtPmJhc2UudGZtID0gY3J5cHRvX2FoYXNoX3RmbSh0Zm0pOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICphaGFzaF9yZXF1ZXN0X2FsbG9jKAorCXN0cnVjdCBjcnlwdG9fYWhhc2ggKnRmbSwgZ2ZwX3QgZ2ZwKQoreworCXN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXE7CisKKwlyZXEgPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgYWhhc2hfcmVxdWVzdCkgKworCQkgICAgICBjcnlwdG9fYWhhc2hfcmVxc2l6ZSh0Zm0pLCBnZnApOworCisJaWYgKGxpa2VseShyZXEpKQorCQlhaGFzaF9yZXF1ZXN0X3NldF90Zm0ocmVxLCB0Zm0pOworCisJcmV0dXJuIHJlcTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFoYXNoX3JlcXVlc3RfZnJlZShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCWtmcmVlKHJlcSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX3JlcXVlc3QgKmFoYXNoX3JlcXVlc3RfY2FzdCgKKwlzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgKnJlcSkKK3sKKwlyZXR1cm4gY29udGFpbmVyX29mKHJlcSwgc3RydWN0IGFoYXNoX3JlcXVlc3QsIGJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYWhhc2hfcmVxdWVzdF9zZXRfY2FsbGJhY2soc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSwKKwkJCQkJICAgICAgdTMyIGZsYWdzLAorCQkJCQkgICAgICBjcnlwdG9fY29tcGxldGlvbl90IGNvbXBsZXRlLAorCQkJCQkgICAgICB2b2lkICpkYXRhKQoreworCXJlcS0+YmFzZS5jb21wbGV0ZSA9IGNvbXBsZXRlOworCXJlcS0+YmFzZS5kYXRhID0gZGF0YTsKKwlyZXEtPmJhc2UuZmxhZ3MgPSBmbGFnczsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGFoYXNoX3JlcXVlc3Rfc2V0X2NyeXB0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsCisJCQkJCSAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc3JjLCB1OCAqcmVzdWx0LAorCQkJCQkgICB1bnNpZ25lZCBpbnQgbmJ5dGVzKQoreworCXJlcS0+c3JjID0gc3JjOworCXJlcS0+bmJ5dGVzID0gbmJ5dGVzOworCXJlcS0+cmVzdWx0ID0gcmVzdWx0OworfQorCisjZW5kaWYJLyogX0NSWVBUT19IQVNIX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY3J5cHRvL2ludGVybmFsL2hhc2guaCBiL2luY2x1ZGUvY3J5cHRvL2ludGVybmFsL2hhc2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTdhZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9jcnlwdG8vaW50ZXJuYWwvaGFzaC5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBIYXNoIGFsZ29yaXRobXMuCisgKiAKKyAqIENvcHlyaWdodCAoYykgMjAwOCBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5hcGFuYS5vcmcuYXU+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCisgKiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIAorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICovCisKKyNpZm5kZWYgX0NSWVBUT19JTlRFUk5BTF9IQVNIX0gKKyNkZWZpbmUgX0NSWVBUT19JTlRFUk5BTF9IQVNIX0gKKworI2luY2x1ZGUgPGNyeXB0by9hbGdhcGkuaD4KKyNpbmNsdWRlIDxjcnlwdG8vaGFzaC5oPgorCitzdHJ1Y3QgYWhhc2hfcmVxdWVzdDsKK3N0cnVjdCBzY2F0dGVybGlzdDsKKworc3RydWN0IGNyeXB0b19oYXNoX3dhbGsgeworCWNoYXIgKmRhdGE7CisKKwl1bnNpZ25lZCBpbnQgb2Zmc2V0OworCXVuc2lnbmVkIGludCBhbGlnbm1hc2s7CisKKwlzdHJ1Y3QgcGFnZSAqcGc7CisJdW5zaWduZWQgaW50IGVudHJ5bGVuOworCisJdW5zaWduZWQgaW50IHRvdGFsOworCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7Cit9OworCitleHRlcm4gY29uc3Qgc3RydWN0IGNyeXB0b190eXBlIGNyeXB0b19haGFzaF90eXBlOworCitpbnQgY3J5cHRvX2hhc2hfd2Fsa19kb25lKHN0cnVjdCBjcnlwdG9faGFzaF93YWxrICp3YWxrLCBpbnQgZXJyKTsKK2ludCBjcnlwdG9faGFzaF93YWxrX2ZpcnN0KHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEsCisJCQkgICBzdHJ1Y3QgY3J5cHRvX2hhc2hfd2FsayAqd2Fsayk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqY3J5cHRvX2FoYXNoX2N0eChzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0pCit7CisJcmV0dXJuIGNyeXB0b190Zm1fY3R4KCZ0Zm0tPmJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBhaGFzaF9hbGcgKmNyeXB0b19haGFzaF9hbGcoCisJc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiAmY3J5cHRvX2FoYXNoX3RmbSh0Zm0pLT5fX2NydF9hbGctPmNyYV9haGFzaDsKK30KKworc3RhdGljIGlubGluZSBpbnQgYWhhc2hfZW5xdWV1ZV9yZXF1ZXN0KHN0cnVjdCBjcnlwdG9fcXVldWUgKnF1ZXVlLAorCQkJCQkgICAgIHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXF1ZXN0KQoreworCXJldHVybiBjcnlwdG9fZW5xdWV1ZV9yZXF1ZXN0KHF1ZXVlLCAmcmVxdWVzdC0+YmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGFoYXNoX3JlcXVlc3QgKmFoYXNoX2RlcXVldWVfcmVxdWVzdCgKKwlzdHJ1Y3QgY3J5cHRvX3F1ZXVlICpxdWV1ZSkKK3sKKwlyZXR1cm4gYWhhc2hfcmVxdWVzdF9jYXN0KGNyeXB0b19kZXF1ZXVlX3JlcXVlc3QocXVldWUpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkICphaGFzaF9yZXF1ZXN0X2N0eChzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKQoreworCXJldHVybiByZXEtPl9fY3R4OworfQorCitzdGF0aWMgaW5saW5lIGludCBhaGFzaF90Zm1faW5fcXVldWUoc3RydWN0IGNyeXB0b19xdWV1ZSAqcXVldWUsCisJCQkJCSAgc3RydWN0IGNyeXB0b19haGFzaCAqdGZtKQoreworCXJldHVybiBjcnlwdG9fdGZtX2luX3F1ZXVlKHF1ZXVlLCBjcnlwdG9fYWhhc2hfdGZtKHRmbSkpOworfQorCisjZW5kaWYJLyogX0NSWVBUT19JTlRFUk5BTF9IQVNIX0ggKi8KKwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vS2J1aWxkIGIvaW5jbHVkZS9kcm0vS2J1aWxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyYjY5ODMKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9LYnVpbGQKQEAgLTAsMCArMSwxMCBAQAordW5pZmRlZi15ICs9IGRybS5oIGRybV9zYXJlYS5oCit1bmlmZGVmLXkgKz0gaTgxMF9kcm0uaAordW5pZmRlZi15ICs9IGk4MzBfZHJtLmgKK3VuaWZkZWYteSArPSBpOTE1X2RybS5oCit1bmlmZGVmLXkgKz0gbWdhX2RybS5oCit1bmlmZGVmLXkgKz0gcjEyOF9kcm0uaAordW5pZmRlZi15ICs9IHJhZGVvbl9kcm0uaAordW5pZmRlZi15ICs9IHNpc19kcm0uaAordW5pZmRlZi15ICs9IHNhdmFnZV9kcm0uaAordW5pZmRlZi15ICs9IHZpYV9kcm0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtLmggYi9pbmNsdWRlL2RybS9kcm0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOGQzYzZiCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9kcm0vZHJtLmgKQEAgLTAsMCArMSw2OTQgQEAKKy8qKgorICogXGZpbGUgZHJtLmgKKyAqIEhlYWRlciBmb3IgdGhlIERpcmVjdCBSZW5kZXJpbmcgTWFuYWdlcgorICoKKyAqIFxhdXRob3IgUmlja2FyZCBFLiAoUmlrKSBGYWl0aCA8ZmFpdGhAdmFsaW51eC5jb20+CisgKgorICogXHBhciBBY2tub3dsZWRnbWVudHM6CisgKiBEZWMgMTk5OSwgUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0d2lkZGxlLm5ldD4sIG1vdmUgdG8gZ2VuZXJpYyBcYyBjbXB4Y2hnLgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX0RSTV9IXworI2RlZmluZSBfRFJNX0hfCisKKyNpZiBkZWZpbmVkKF9fbGludXhfXykKKyNpZiBkZWZpbmVkKF9fS0VSTkVMX18pCisjZW5kaWYKKyNpbmNsdWRlIDxhc20vaW9jdGwuaD4JCS8qIEZvciBfSU8qIG1hY3JvcyAqLworI2RlZmluZSBEUk1fSU9DVExfTlIobikJCV9JT0NfTlIobikKKyNkZWZpbmUgRFJNX0lPQ19WT0lECQlfSU9DX05PTkUKKyNkZWZpbmUgRFJNX0lPQ19SRUFECQlfSU9DX1JFQUQKKyNkZWZpbmUgRFJNX0lPQ19XUklURQkJX0lPQ19XUklURQorI2RlZmluZSBEUk1fSU9DX1JFQURXUklURQlfSU9DX1JFQUR8X0lPQ19XUklURQorI2RlZmluZSBEUk1fSU9DKGRpciwgZ3JvdXAsIG5yLCBzaXplKSBfSU9DKGRpciwgZ3JvdXAsIG5yLCBzaXplKQorI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKQorI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmIGRlZmluZWQoSU5fTU9EVUxFKQorLyogUHJldmVudCBuYW1lIGNvbGxpc2lvbiB3aGVuIGluY2x1ZGluZyBzeXMvaW9jY29tLmggKi8KKyN1bmRlZiBpb2N0bAorI2luY2x1ZGUgPHN5cy9pb2Njb20uaD4KKyNkZWZpbmUgaW9jdGwoYSxiLGMpCQl4Zjg2aW9jdGwoYSxiLGMpCisjZWxzZQorI2luY2x1ZGUgPHN5cy9pb2Njb20uaD4KKyNlbmRpZgkJCQkvKiBfX0ZyZWVCU0RfXyAmJiB4Zjg2aW9jdGwgKi8KKyNkZWZpbmUgRFJNX0lPQ1RMX05SKG4pCQkoKG4pICYgMHhmZikKKyNkZWZpbmUgRFJNX0lPQ19WT0lECQlJT0NfVk9JRAorI2RlZmluZSBEUk1fSU9DX1JFQUQJCUlPQ19PVVQKKyNkZWZpbmUgRFJNX0lPQ19XUklURQkJSU9DX0lOCisjZGVmaW5lIERSTV9JT0NfUkVBRFdSSVRFCUlPQ19JTk9VVAorI2RlZmluZSBEUk1fSU9DKGRpciwgZ3JvdXAsIG5yLCBzaXplKSBfSU9DKGRpciwgZ3JvdXAsIG5yLCBzaXplKQorI2VuZGlmCisKKyNkZWZpbmUgRFJNX01BSk9SICAgICAgIDIyNgorI2RlZmluZSBEUk1fTUFYX01JTk9SICAgMTUKKworI2RlZmluZSBEUk1fTkFNRQkiZHJtIgkgIC8qKjwgTmFtZSBpbiBrZXJuZWwsIC9kZXYsIGFuZCAvcHJvYyAqLworI2RlZmluZSBEUk1fTUlOX09SREVSCTUJICAvKio8IEF0IGxlYXN0IDJeNSBieXRlcyA9IDMyIGJ5dGVzICovCisjZGVmaW5lIERSTV9NQVhfT1JERVIJMjIJICAvKio8IFVwIHRvIDJeMjIgYnl0ZXMgPSA0TUIgKi8KKyNkZWZpbmUgRFJNX1JBTV9QRVJDRU5UIDEwCSAgLyoqPCBIb3cgbXVjaCBzeXN0ZW0gcmFtIGNhbiB3ZSBsb2NrPyAqLworCisjZGVmaW5lIF9EUk1fTE9DS19IRUxECTB4ODAwMDAwMDBVIC8qKjwgSGFyZHdhcmUgbG9jayBpcyBoZWxkICovCisjZGVmaW5lIF9EUk1fTE9DS19DT05UCTB4NDAwMDAwMDBVIC8qKjwgSGFyZHdhcmUgbG9jayBpcyBjb250ZW5kZWQgKi8KKyNkZWZpbmUgX0RSTV9MT0NLX0lTX0hFTEQobG9jaykJICAgKChsb2NrKSAmIF9EUk1fTE9DS19IRUxEKQorI2RlZmluZSBfRFJNX0xPQ0tfSVNfQ09OVChsb2NrKQkgICAoKGxvY2spICYgX0RSTV9MT0NLX0NPTlQpCisjZGVmaW5lIF9EUk1fTE9DS0lOR19DT05URVhUKGxvY2spICgobG9jaykgJiB+KF9EUk1fTE9DS19IRUxEfF9EUk1fTE9DS19DT05UKSkKKwordHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX2hhbmRsZV90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX2NvbnRleHRfdDsKK3R5cGVkZWYgdW5zaWduZWQgaW50IGRybV9kcmF3YWJsZV90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgZHJtX21hZ2ljX3Q7CisKKy8qKgorICogQ2xpcHJlY3QuCisgKgorICogXHdhcm5pbmc6IElmIHlvdSBjaGFuZ2UgdGhpcyBzdHJ1Y3R1cmUsIG1ha2Ugc3VyZSB5b3UgY2hhbmdlCisgKiBYRjg2RFJJQ2xpcFJlY3RSZWMgaW4gdGhlIHNlcnZlciBhcyB3ZWxsCisgKgorICogXG5vdGUgS1c6IEFjdHVhbGx5IGl0J3MgaWxsZWdhbCB0byBjaGFuZ2UgZWl0aGVyIGZvcgorICogYmFja3dhcmRzLWNvbXBhdGliaWxpdHkgcmVhc29ucy4KKyAqLworc3RydWN0IGRybV9jbGlwX3JlY3QgeworCXVuc2lnbmVkIHNob3J0IHgxOworCXVuc2lnbmVkIHNob3J0IHkxOworCXVuc2lnbmVkIHNob3J0IHgyOworCXVuc2lnbmVkIHNob3J0IHkyOworfTsKKworLyoqCisgKiBEcmF3YWJsZSBpbmZvcm1hdGlvbi4KKyAqLworc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvIHsKKwl1bnNpZ25lZCBpbnQgbnVtX3JlY3RzOworCXN0cnVjdCBkcm1fY2xpcF9yZWN0ICpyZWN0czsKK307CisKKy8qKgorICogVGV4dHVyZSByZWdpb24sCisgKi8KK3N0cnVjdCBkcm1fdGV4X3JlZ2lvbiB7CisJdW5zaWduZWQgY2hhciBuZXh0OworCXVuc2lnbmVkIGNoYXIgcHJldjsKKwl1bnNpZ25lZCBjaGFyIGluX3VzZTsKKwl1bnNpZ25lZCBjaGFyIHBhZGRpbmc7CisJdW5zaWduZWQgaW50IGFnZTsKK307CisKKy8qKgorICogSGFyZHdhcmUgbG9jay4KKyAqCisgKiBUaGUgbG9jayBzdHJ1Y3R1cmUgaXMgYSBzaW1wbGUgY2FjaGUtbGluZSBhbGlnbmVkIGludGVnZXIuICBUbyBhdm9pZAorICogcHJvY2Vzc29yIGJ1cyBjb250ZW50aW9uIG9uIGEgbXVsdGlwcm9jZXNzb3Igc3lzdGVtLCB0aGVyZSBzaG91bGQgbm90IGJlIGFueQorICogb3RoZXIgZGF0YSBzdG9yZWQgaW4gdGhlIHNhbWUgY2FjaGUgbGluZS4KKyAqLworc3RydWN0IGRybV9od19sb2NrIHsKKwlfX3ZvbGF0aWxlX18gdW5zaWduZWQgaW50IGxvY2s7CQkvKio8IGxvY2sgdmFyaWFibGUgKi8KKwljaGFyIHBhZGRpbmdbNjBdOwkJCS8qKjwgUGFkIHRvIGNhY2hlIGxpbmUgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX1ZFUlNJT04gaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtR2V0VmVyc2lvbigpLgorICovCitzdHJ1Y3QgZHJtX3ZlcnNpb24geworCWludCB2ZXJzaW9uX21ham9yOwkgIC8qKjwgTWFqb3IgdmVyc2lvbiAqLworCWludCB2ZXJzaW9uX21pbm9yOwkgIC8qKjwgTWlub3IgdmVyc2lvbiAqLworCWludCB2ZXJzaW9uX3BhdGNobGV2ZWw7CSAgLyoqPCBQYXRjaCBsZXZlbCAqLworCXNpemVfdCBuYW1lX2xlbjsJICAvKio8IExlbmd0aCBvZiBuYW1lIGJ1ZmZlciAqLworCWNoYXIgX191c2VyICpuYW1lOwkgIC8qKjwgTmFtZSBvZiBkcml2ZXIgKi8KKwlzaXplX3QgZGF0ZV9sZW47CSAgLyoqPCBMZW5ndGggb2YgZGF0ZSBidWZmZXIgKi8KKwljaGFyIF9fdXNlciAqZGF0ZTsJICAvKio8IFVzZXItc3BhY2UgYnVmZmVyIHRvIGhvbGQgZGF0ZSAqLworCXNpemVfdCBkZXNjX2xlbjsJICAvKio8IExlbmd0aCBvZiBkZXNjIGJ1ZmZlciAqLworCWNoYXIgX191c2VyICpkZXNjOwkgIC8qKjwgVXNlci1zcGFjZSBidWZmZXIgdG8gaG9sZCBkZXNjICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9HRVRfVU5JUVVFIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUdldEJ1c2lkKCkgYW5kIGRybVNldEJ1c0lkKCkuCisgKi8KK3N0cnVjdCBkcm1fdW5pcXVlIHsKKwlzaXplX3QgdW5pcXVlX2xlbjsJICAvKio8IExlbmd0aCBvZiB1bmlxdWUgKi8KKwljaGFyIF9fdXNlciAqdW5pcXVlOwkgIC8qKjwgVW5pcXVlIG5hbWUgZm9yIGRyaXZlciBpbnN0YW50aWF0aW9uICovCit9OworCitzdHJ1Y3QgZHJtX2xpc3QgeworCWludCBjb3VudDsJCSAgLyoqPCBMZW5ndGggb2YgdXNlci1zcGFjZSBzdHJ1Y3R1cmVzICovCisJc3RydWN0IGRybV92ZXJzaW9uIF9fdXNlciAqdmVyc2lvbjsKK307CisKK3N0cnVjdCBkcm1fYmxvY2sgeworCWludCB1bnVzZWQ7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9DT05UUk9MIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUN0bEluc3RIYW5kbGVyKCkgYW5kIGRybUN0bFVuaW5zdEhhbmRsZXIoKS4KKyAqLworc3RydWN0IGRybV9jb250cm9sIHsKKwllbnVtIHsKKwkJRFJNX0FERF9DT01NQU5ELAorCQlEUk1fUk1fQ09NTUFORCwKKwkJRFJNX0lOU1RfSEFORExFUiwKKwkJRFJNX1VOSU5TVF9IQU5ETEVSCisJfSBmdW5jOworCWludCBpcnE7Cit9OworCisvKioKKyAqIFR5cGUgb2YgbWVtb3J5IHRvIG1hcC4KKyAqLworZW51bSBkcm1fbWFwX3R5cGUgeworCV9EUk1fRlJBTUVfQlVGRkVSID0gMCwJICAvKio8IFdDIChubyBjYWNoaW5nKSwgbm8gY29yZSBkdW1wICovCisJX0RSTV9SRUdJU1RFUlMgPSAxLAkgIC8qKjwgbm8gY2FjaGluZywgbm8gY29yZSBkdW1wICovCisJX0RSTV9TSE0gPSAyLAkJICAvKio8IHNoYXJlZCwgY2FjaGVkICovCisJX0RSTV9BR1AgPSAzLAkJICAvKio8IEFHUC9HQVJUICovCisJX0RSTV9TQ0FUVEVSX0dBVEhFUiA9IDQsICAvKio8IFNjYXR0ZXIvZ2F0aGVyIG1lbW9yeSBmb3IgUENJIERNQSAqLworCV9EUk1fQ09OU0lTVEVOVCA9IDUsCSAgLyoqPCBDb25zaXN0ZW50IG1lbW9yeSBmb3IgUENJIERNQSAqLworfTsKKworLyoqCisgKiBNZW1vcnkgbWFwcGluZyBmbGFncy4KKyAqLworZW51bSBkcm1fbWFwX2ZsYWdzIHsKKwlfRFJNX1JFU1RSSUNURUQgPSAweDAxLAkgICAgIC8qKjwgQ2Fubm90IGJlIG1hcHBlZCB0byB1c2VyLXZpcnR1YWwgKi8KKwlfRFJNX1JFQURfT05MWSA9IDB4MDIsCisJX0RSTV9MT0NLRUQgPSAweDA0LAkgICAgIC8qKjwgc2hhcmVkLCBjYWNoZWQsIGxvY2tlZCAqLworCV9EUk1fS0VSTkVMID0gMHgwOCwJICAgICAvKio8IGtlcm5lbCByZXF1aXJlcyBhY2Nlc3MgKi8KKwlfRFJNX1dSSVRFX0NPTUJJTklORyA9IDB4MTAsIC8qKjwgdXNlIHdyaXRlLWNvbWJpbmluZyBpZiBhdmFpbGFibGUgKi8KKwlfRFJNX0NPTlRBSU5TX0xPQ0sgPSAweDIwLCAgIC8qKjwgU0hNIHBhZ2UgdGhhdCBjb250YWlucyBsb2NrICovCisJX0RSTV9SRU1PVkFCTEUgPSAweDQwLAkgICAgIC8qKjwgUmVtb3ZhYmxlIG1hcHBpbmcgKi8KKwlfRFJNX0RSSVZFUiA9IDB4ODAJICAgICAvKio8IE1hbmFnZWQgYnkgZHJpdmVyICovCit9OworCitzdHJ1Y3QgZHJtX2N0eF9wcml2X21hcCB7CisJdW5zaWduZWQgaW50IGN0eF9pZDsJIC8qKjwgQ29udGV4dCByZXF1ZXN0aW5nIHByaXZhdGUgbWFwcGluZyAqLworCXZvaWQgKmhhbmRsZTsJCSAvKio8IEhhbmRsZSBvZiBtYXAgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0dFVF9NQVAsIERSTV9JT0NUTF9BRERfTUFQIGFuZCBEUk1fSU9DVExfUk1fTUFQIGlvY3RscworICogYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtQWRkTWFwKCkuCisgKi8KK3N0cnVjdCBkcm1fbWFwIHsKKwl1bnNpZ25lZCBsb25nIG9mZnNldDsJIC8qKjwgUmVxdWVzdGVkIHBoeXNpY2FsIGFkZHJlc3MgKDAgZm9yIFNBUkVBKSovCisJdW5zaWduZWQgbG9uZyBzaXplOwkgLyoqPCBSZXF1ZXN0ZWQgcGh5c2ljYWwgc2l6ZSAoYnl0ZXMpICovCisJZW51bSBkcm1fbWFwX3R5cGUgdHlwZTsJIC8qKjwgVHlwZSBvZiBtZW1vcnkgdG8gbWFwICovCisJZW51bSBkcm1fbWFwX2ZsYWdzIGZsYWdzOwkgLyoqPCBGbGFncyAqLworCXZvaWQgKmhhbmRsZTsJCSAvKio8IFVzZXItc3BhY2U6ICJIYW5kbGUiIHRvIHBhc3MgdG8gbW1hcCgpICovCisJCQkJIC8qKjwgS2VybmVsLXNwYWNlOiBrZXJuZWwtdmlydHVhbCBhZGRyZXNzICovCisJaW50IG10cnI7CQkgLyoqPCBNVFJSIHNsb3QgdXNlZCAqLworCS8qICAgUHJpdmF0ZSBkYXRhICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9HRVRfQ0xJRU5UIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fY2xpZW50IHsKKwlpbnQgaWR4OwkJLyoqPCBXaGljaCBjbGllbnQgZGVzaXJlZD8gKi8KKwlpbnQgYXV0aDsJCS8qKjwgSXMgY2xpZW50IGF1dGhlbnRpY2F0ZWQ/ICovCisJdW5zaWduZWQgbG9uZyBwaWQ7CS8qKjwgUHJvY2VzcyBJRCAqLworCXVuc2lnbmVkIGxvbmcgdWlkOwkvKio8IFVzZXIgSUQgKi8KKwl1bnNpZ25lZCBsb25nIG1hZ2ljOwkvKio8IE1hZ2ljICovCisJdW5zaWduZWQgbG9uZyBpb2NzOwkvKio8IElvY3RsIGNvdW50ICovCit9OworCitlbnVtIGRybV9zdGF0X3R5cGUgeworCV9EUk1fU1RBVF9MT0NLLAorCV9EUk1fU1RBVF9PUEVOUywKKwlfRFJNX1NUQVRfQ0xPU0VTLAorCV9EUk1fU1RBVF9JT0NUTFMsCisJX0RSTV9TVEFUX0xPQ0tTLAorCV9EUk1fU1RBVF9VTkxPQ0tTLAorCV9EUk1fU1RBVF9WQUxVRSwJLyoqPCBHZW5lcmljIHZhbHVlICovCisJX0RSTV9TVEFUX0JZVEUsCQkvKio8IEdlbmVyaWMgYnl0ZSBjb3VudGVyICgxMDI0Ynl0ZXMvSykgKi8KKwlfRFJNX1NUQVRfQ09VTlQsCS8qKjwgR2VuZXJpYyBub24tYnl0ZSBjb3VudGVyICgxMDAwL2spICovCisKKwlfRFJNX1NUQVRfSVJRLAkJLyoqPCBJUlEgKi8KKwlfRFJNX1NUQVRfUFJJTUFSWSwJLyoqPCBQcmltYXJ5IERNQSBieXRlcyAqLworCV9EUk1fU1RBVF9TRUNPTkRBUlksCS8qKjwgU2Vjb25kYXJ5IERNQSBieXRlcyAqLworCV9EUk1fU1RBVF9ETUEsCQkvKio8IERNQSAqLworCV9EUk1fU1RBVF9TUEVDSUFMLAkvKio8IFNwZWNpYWwgRE1BIChlLmcuLCBwcmlvcml0eSBvciBwb2xsZWQpICovCisJX0RSTV9TVEFUX01JU1NFRAkvKio8IE1pc3NlZCBETUEgb3Bwb3J0dW5pdHkgKi8KKwkgICAgLyogQWRkIHRvIHRoZSAqRU5EKiBvZiB0aGUgbGlzdCAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfR0VUX1NUQVRTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fc3RhdHMgeworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgbG9uZyB2YWx1ZTsKKwkJZW51bSBkcm1fc3RhdF90eXBlIHR5cGU7CisJfSBkYXRhWzE1XTsKK307CisKKy8qKgorICogSGFyZHdhcmUgbG9ja2luZyBmbGFncy4KKyAqLworZW51bSBkcm1fbG9ja19mbGFncyB7CisJX0RSTV9MT0NLX1JFQURZID0gMHgwMSwJICAgICAvKio8IFdhaXQgdW50aWwgaGFyZHdhcmUgaXMgcmVhZHkgZm9yIERNQSAqLworCV9EUk1fTE9DS19RVUlFU0NFTlQgPSAweDAyLCAgLyoqPCBXYWl0IHVudGlsIGhhcmR3YXJlIHF1aWVzY2VudCAqLworCV9EUk1fTE9DS19GTFVTSCA9IDB4MDQsCSAgICAgLyoqPCBGbHVzaCB0aGlzIGNvbnRleHQncyBETUEgcXVldWUgZmlyc3QgKi8KKwlfRFJNX0xPQ0tfRkxVU0hfQUxMID0gMHgwOCwgIC8qKjwgRmx1c2ggYWxsIERNQSBxdWV1ZXMgZmlyc3QgKi8KKwkvKiBUaGVzZSAqSEFMVCogZmxhZ3MgYXJlbid0IHN1cHBvcnRlZCB5ZXQKKwkgICAtLSB0aGV5IHdpbGwgYmUgdXNlZCB0byBzdXBwb3J0IHRoZQorCSAgIGZ1bGwtc2NyZWVuIERHQS1saWtlIG1vZGUuICovCisJX0RSTV9IQUxUX0FMTF9RVUVVRVMgPSAweDEwLCAvKio8IEhhbHQgYWxsIGN1cnJlbnQgYW5kIGZ1dHVyZSBxdWV1ZXMgKi8KKwlfRFJNX0hBTFRfQ1VSX1FVRVVFUyA9IDB4MjAgIC8qKjwgSGFsdCBhbGwgY3VycmVudCBxdWV1ZXMgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0xPQ0ssIERSTV9JT0NUTF9VTkxPQ0sgYW5kIERSTV9JT0NUTF9GSU5JU0ggaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtR2V0TG9jaygpIGFuZCBkcm1VbmxvY2soKS4KKyAqLworc3RydWN0IGRybV9sb2NrIHsKKwlpbnQgY29udGV4dDsKKwllbnVtIGRybV9sb2NrX2ZsYWdzIGZsYWdzOworfTsKKworLyoqCisgKiBETUEgZmxhZ3MKKyAqCisgKiBcd2FybmluZworICogVGhlc2UgdmFsdWVzIFxlIG11c3QgbWF0Y2ggeGY4NmRybS5oLgorICoKKyAqIFxzYSBkcm1fZG1hLgorICovCitlbnVtIGRybV9kbWFfZmxhZ3MgeworCS8qIEZsYWdzIGZvciBETUEgYnVmZmVyIGRpc3BhdGNoICovCisJX0RSTV9ETUFfQkxPQ0sgPSAweDAxLAkgICAgICAvKio8CisJCQkJICAgICAgICogQmxvY2sgdW50aWwgYnVmZmVyIGRpc3BhdGNoZWQuCisJCQkJICAgICAgICoKKwkJCQkgICAgICAgKiBcbm90ZSBUaGUgYnVmZmVyIG1heSBub3QgeWV0IGhhdmUKKwkJCQkgICAgICAgKiBiZWVuIHByb2Nlc3NlZCBieSB0aGUgaGFyZHdhcmUgLS0KKwkJCQkgICAgICAgKiBnZXR0aW5nIGEgaGFyZHdhcmUgbG9jayB3aXRoIHRoZQorCQkJCSAgICAgICAqIGhhcmR3YXJlIHF1aWVzY2VudCB3aWxsIGVuc3VyZQorCQkJCSAgICAgICAqIHRoYXQgdGhlIGJ1ZmZlciBoYXMgYmVlbgorCQkJCSAgICAgICAqIHByb2Nlc3NlZC4KKwkJCQkgICAgICAgKi8KKwlfRFJNX0RNQV9XSElMRV9MT0NLRUQgPSAweDAyLCAvKio8IERpc3BhdGNoIHdoaWxlIGxvY2sgaGVsZCAqLworCV9EUk1fRE1BX1BSSU9SSVRZID0gMHgwNCwgICAgIC8qKjwgSGlnaCBwcmlvcml0eSBkaXNwYXRjaCAqLworCisJLyogRmxhZ3MgZm9yIERNQSBidWZmZXIgcmVxdWVzdCAqLworCV9EUk1fRE1BX1dBSVQgPSAweDEwLAkgICAgICAvKio8IFdhaXQgZm9yIGZyZWUgYnVmZmVycyAqLworCV9EUk1fRE1BX1NNQUxMRVJfT0sgPSAweDIwLCAgIC8qKjwgU21hbGxlci10aGFuLXJlcXVlc3RlZCBidWZmZXJzIE9LICovCisJX0RSTV9ETUFfTEFSR0VSX09LID0gMHg0MCAgICAgLyoqPCBMYXJnZXItdGhhbi1yZXF1ZXN0ZWQgYnVmZmVycyBPSyAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfQUREX0JVRlMgYW5kIERSTV9JT0NUTF9NQVJLX0JVRlMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtQWRkQnVmcygpLgorICovCitzdHJ1Y3QgZHJtX2J1Zl9kZXNjIHsKKwlpbnQgY291bnQ7CQkgLyoqPCBOdW1iZXIgb2YgYnVmZmVycyBvZiB0aGlzIHNpemUgKi8KKwlpbnQgc2l6ZTsJCSAvKio8IFNpemUgaW4gYnl0ZXMgKi8KKwlpbnQgbG93X21hcms7CQkgLyoqPCBMb3cgd2F0ZXIgbWFyayAqLworCWludCBoaWdoX21hcms7CQkgLyoqPCBIaWdoIHdhdGVyIG1hcmsgKi8KKwllbnVtIHsKKwkJX0RSTV9QQUdFX0FMSUdOID0gMHgwMSwJLyoqPCBBbGlnbiBvbiBwYWdlIGJvdW5kYXJpZXMgZm9yIERNQSAqLworCQlfRFJNX0FHUF9CVUZGRVIgPSAweDAyLAkvKio8IEJ1ZmZlciBpcyBpbiBBR1Agc3BhY2UgKi8KKwkJX0RSTV9TR19CVUZGRVIgPSAweDA0LAkvKio8IFNjYXR0ZXIvZ2F0aGVyIG1lbW9yeSBidWZmZXIgKi8KKwkJX0RSTV9GQl9CVUZGRVIgPSAweDA4LAkvKio8IEJ1ZmZlciBpcyBpbiBmcmFtZSBidWZmZXIgKi8KKwkJX0RSTV9QQ0lfQlVGRkVSX1JPID0gMHgxMCAvKio8IE1hcCBQQ0kgRE1BIGJ1ZmZlciByZWFkLW9ubHkgKi8KKwl9IGZsYWdzOworCXVuc2lnbmVkIGxvbmcgYWdwX3N0YXJ0OyAvKio8CisJCQkJICAqIFN0YXJ0IGFkZHJlc3Mgb2Ygd2hlcmUgdGhlIEFHUCBidWZmZXJzIGFyZQorCQkJCSAgKiBpbiB0aGUgQUdQIGFwZXJ0dXJlCisJCQkJICAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfSU5GT19CVUZTIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fYnVmX2luZm8geworCWludCBjb3VudDsJCS8qKjwgRW50cmllcyBpbiBsaXN0ICovCisJc3RydWN0IGRybV9idWZfZGVzYyBfX3VzZXIgKmxpc3Q7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9GUkVFX0JVRlMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9idWZfZnJlZSB7CisJaW50IGNvdW50OworCWludCBfX3VzZXIgKmxpc3Q7Cit9OworCisvKioKKyAqIEJ1ZmZlciBpbmZvcm1hdGlvbgorICoKKyAqIFxzYSBkcm1fYnVmX21hcC4KKyAqLworc3RydWN0IGRybV9idWZfcHViIHsKKwlpbnQgaWR4OwkJICAgICAgIC8qKjwgSW5kZXggaW50byB0aGUgbWFzdGVyIGJ1ZmZlciBsaXN0ICovCisJaW50IHRvdGFsOwkJICAgICAgIC8qKjwgQnVmZmVyIHNpemUgKi8KKwlpbnQgdXNlZDsJCSAgICAgICAvKio8IEFtb3VudCBvZiBidWZmZXIgaW4gdXNlIChmb3IgRE1BKSAqLworCXZvaWQgX191c2VyICphZGRyZXNzOwkgICAgICAgLyoqPCBBZGRyZXNzIG9mIGJ1ZmZlciAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfTUFQX0JVRlMgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9idWZfbWFwIHsKKwlpbnQgY291bnQ7CQkvKio8IExlbmd0aCBvZiB0aGUgYnVmZmVyIGxpc3QgKi8KKwl2b2lkIF9fdXNlciAqdmlydHVhbDsJCS8qKjwgTW1hcCdkIGFyZWEgaW4gdXNlci12aXJ0dWFsICovCisJc3RydWN0IGRybV9idWZfcHViIF9fdXNlciAqbGlzdDsJLyoqPCBCdWZmZXIgaW5mb3JtYXRpb24gKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0RNQSBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIEluZGljZXMgaGVyZSByZWZlciB0byB0aGUgb2Zmc2V0IGludG8gdGhlIGJ1ZmZlciBsaXN0IGluIGRybV9idWZfZ2V0LgorICoKKyAqIFxzYSBkcm1ETUEoKS4KKyAqLworc3RydWN0IGRybV9kbWEgeworCWludCBjb250ZXh0OwkJCSAgLyoqPCBDb250ZXh0IGhhbmRsZSAqLworCWludCBzZW5kX2NvdW50OwkJCSAgLyoqPCBOdW1iZXIgb2YgYnVmZmVycyB0byBzZW5kICovCisJaW50IF9fdXNlciAqc2VuZF9pbmRpY2VzOwkgIC8qKjwgTGlzdCBvZiBoYW5kbGVzIHRvIGJ1ZmZlcnMgKi8KKwlpbnQgX191c2VyICpzZW5kX3NpemVzOwkJICAvKio8IExlbmd0aHMgb2YgZGF0YSB0byBzZW5kICovCisJZW51bSBkcm1fZG1hX2ZsYWdzIGZsYWdzOwkgIC8qKjwgRmxhZ3MgKi8KKwlpbnQgcmVxdWVzdF9jb3VudDsJCSAgLyoqPCBOdW1iZXIgb2YgYnVmZmVycyByZXF1ZXN0ZWQgKi8KKwlpbnQgcmVxdWVzdF9zaXplOwkJICAvKio8IERlc2lyZWQgc2l6ZSBmb3IgYnVmZmVycyAqLworCWludCBfX3VzZXIgKnJlcXVlc3RfaW5kaWNlczsJICAvKio8IEJ1ZmZlciBpbmZvcm1hdGlvbiAqLworCWludCBfX3VzZXIgKnJlcXVlc3Rfc2l6ZXM7CisJaW50IGdyYW50ZWRfY291bnQ7CQkgIC8qKjwgTnVtYmVyIG9mIGJ1ZmZlcnMgZ3JhbnRlZCAqLworfTsKKworZW51bSBkcm1fY3R4X2ZsYWdzIHsKKwlfRFJNX0NPTlRFWFRfUFJFU0VSVkVEID0gMHgwMSwKKwlfRFJNX0NPTlRFWFRfMkRPTkxZID0gMHgwMgorfTsKKworLyoqCisgKiBEUk1fSU9DVExfQUREX0NUWCBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1DcmVhdGVDb250ZXh0KCkgYW5kIGRybURlc3Ryb3lDb250ZXh0KCkuCisgKi8KK3N0cnVjdCBkcm1fY3R4IHsKKwlkcm1fY29udGV4dF90IGhhbmRsZTsKKwllbnVtIGRybV9jdHhfZmxhZ3MgZmxhZ3M7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9SRVNfQ1RYIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fY3R4X3JlcyB7CisJaW50IGNvdW50OworCXN0cnVjdCBkcm1fY3R4IF9fdXNlciAqY29udGV4dHM7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9BRERfRFJBVyBhbmQgRFJNX0lPQ1RMX1JNX0RSQVcgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqLworc3RydWN0IGRybV9kcmF3IHsKKwlkcm1fZHJhd2FibGVfdCBoYW5kbGU7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9VUERBVEVfRFJBVyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICovCit0eXBlZGVmIGVudW0geworCURSTV9EUkFXQUJMRV9DTElQUkVDVFMsCit9IGRybV9kcmF3YWJsZV9pbmZvX3R5cGVfdDsKKworc3RydWN0IGRybV91cGRhdGVfZHJhdyB7CisJZHJtX2RyYXdhYmxlX3QgaGFuZGxlOworCXVuc2lnbmVkIGludCB0eXBlOworCXVuc2lnbmVkIGludCBudW07CisJdW5zaWduZWQgbG9uZyBsb25nIGRhdGE7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9HRVRfTUFHSUMgYW5kIERSTV9JT0NUTF9BVVRIX01BR0lDIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fYXV0aCB7CisJZHJtX21hZ2ljX3QgbWFnaWM7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9JUlFfQlVTSUQgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtR2V0SW50ZXJydXB0RnJvbUJ1c0lEKCkuCisgKi8KK3N0cnVjdCBkcm1faXJxX2J1c2lkIHsKKwlpbnQgaXJxOwkvKio8IElSUSBudW1iZXIgKi8KKwlpbnQgYnVzbnVtOwkvKio8IGJ1cyBudW1iZXIgKi8KKwlpbnQgZGV2bnVtOwkvKio8IGRldmljZSBudW1iZXIgKi8KKwlpbnQgZnVuY251bTsJLyoqPCBmdW5jdGlvbiBudW1iZXIgKi8KK307CisKK2VudW0gZHJtX3ZibGFua19zZXFfdHlwZSB7CisJX0RSTV9WQkxBTktfQUJTT0xVVEUgPSAweDAsCS8qKjwgV2FpdCBmb3Igc3BlY2lmaWMgdmJsYW5rIHNlcXVlbmNlIG51bWJlciAqLworCV9EUk1fVkJMQU5LX1JFTEFUSVZFID0gMHgxLAkvKio8IFdhaXQgZm9yIGdpdmVuIG51bWJlciBvZiB2YmxhbmtzICovCisJX0RSTV9WQkxBTktfTkVYVE9OTUlTUyA9IDB4MTAwMDAwMDAsCS8qKjwgSWYgbWlzc2VkLCB3YWl0IGZvciBuZXh0IHZibGFuayAqLworCV9EUk1fVkJMQU5LX1NFQ09OREFSWSA9IDB4MjAwMDAwMDAsCS8qKjwgU2Vjb25kYXJ5IGRpc3BsYXkgY29udHJvbGxlciAqLworCV9EUk1fVkJMQU5LX1NJR05BTCA9IDB4NDAwMDAwMDAJLyoqPCBTZW5kIHNpZ25hbCBpbnN0ZWFkIG9mIGJsb2NraW5nICovCit9OworCisjZGVmaW5lIF9EUk1fVkJMQU5LX1RZUEVTX01BU0sgKF9EUk1fVkJMQU5LX0FCU09MVVRFIHwgX0RSTV9WQkxBTktfUkVMQVRJVkUpCisjZGVmaW5lIF9EUk1fVkJMQU5LX0ZMQUdTX01BU0sgKF9EUk1fVkJMQU5LX1NJR05BTCB8IF9EUk1fVkJMQU5LX1NFQ09OREFSWSB8IFwKKwkJCQlfRFJNX1ZCTEFOS19ORVhUT05NSVNTKQorCitzdHJ1Y3QgZHJtX3dhaXRfdmJsYW5rX3JlcXVlc3QgeworCWVudW0gZHJtX3ZibGFua19zZXFfdHlwZSB0eXBlOworCXVuc2lnbmVkIGludCBzZXF1ZW5jZTsKKwl1bnNpZ25lZCBsb25nIHNpZ25hbDsKK307CisKK3N0cnVjdCBkcm1fd2FpdF92YmxhbmtfcmVwbHkgeworCWVudW0gZHJtX3ZibGFua19zZXFfdHlwZSB0eXBlOworCXVuc2lnbmVkIGludCBzZXF1ZW5jZTsKKwlsb25nIHR2YWxfc2VjOworCWxvbmcgdHZhbF91c2VjOworfTsKKworLyoqCisgKiBEUk1fSU9DVExfV0FJVF9WQkxBTksgaW9jdGwgYXJndW1lbnQgdHlwZS4KKyAqCisgKiBcc2EgZHJtV2FpdFZCbGFuaygpLgorICovCit1bmlvbiBkcm1fd2FpdF92YmxhbmsgeworCXN0cnVjdCBkcm1fd2FpdF92YmxhbmtfcmVxdWVzdCByZXF1ZXN0OworCXN0cnVjdCBkcm1fd2FpdF92YmxhbmtfcmVwbHkgcmVwbHk7Cit9OworCisvKioKKyAqIERSTV9JT0NUTF9BR1BfRU5BQkxFIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKgorICogXHNhIGRybUFncEVuYWJsZSgpLgorICovCitzdHJ1Y3QgZHJtX2FncF9tb2RlIHsKKwl1bnNpZ25lZCBsb25nIG1vZGU7CS8qKjwgQUdQIG1vZGUgKi8KK307CisKKy8qKgorICogRFJNX0lPQ1RMX0FHUF9BTExPQyBhbmQgRFJNX0lPQ1RMX0FHUF9GUkVFIGlvY3RscyBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1BZ3BBbGxvYygpIGFuZCBkcm1BZ3BGcmVlKCkuCisgKi8KK3N0cnVjdCBkcm1fYWdwX2J1ZmZlciB7CisJdW5zaWduZWQgbG9uZyBzaXplOwkvKio8IEluIGJ5dGVzIC0tIHdpbGwgcm91bmQgdG8gcGFnZSBib3VuZGFyeSAqLworCXVuc2lnbmVkIGxvbmcgaGFuZGxlOwkvKio8IFVzZWQgZm9yIGJpbmRpbmcgLyB1bmJpbmRpbmcgKi8KKwl1bnNpZ25lZCBsb25nIHR5cGU7CS8qKjwgVHlwZSBvZiBtZW1vcnkgdG8gYWxsb2NhdGUgKi8KKwl1bnNpZ25lZCBsb25nIHBoeXNpY2FsOwkvKio8IFBoeXNpY2FsIHVzZWQgYnkgaTgxMCAqLworfTsKKworLyoqCisgKiBEUk1fSU9DVExfQUdQX0JJTkQgYW5kIERSTV9JT0NUTF9BR1BfVU5CSU5EIGlvY3RscyBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1BZ3BCaW5kKCkgYW5kIGRybUFncFVuYmluZCgpLgorICovCitzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nIHsKKwl1bnNpZ25lZCBsb25nIGhhbmRsZTsJLyoqPCBGcm9tIGRybV9hZ3BfYnVmZmVyICovCisJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CS8qKjwgSW4gYnl0ZXMgLS0gd2lsbCByb3VuZCB0byBwYWdlIGJvdW5kYXJ5ICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9BR1BfSU5GTyBpb2N0bCBhcmd1bWVudCB0eXBlLgorICoKKyAqIFxzYSBkcm1BZ3BWZXJzaW9uTWFqb3IoKSwgZHJtQWdwVmVyc2lvbk1pbm9yKCksIGRybUFncEdldE1vZGUoKSwKKyAqIGRybUFncEJhc2UoKSwgZHJtQWdwU2l6ZSgpLCBkcm1BZ3BNZW1vcnlVc2VkKCksIGRybUFncE1lbW9yeUF2YWlsKCksCisgKiBkcm1BZ3BWZW5kb3JJZCgpIGFuZCBkcm1BZ3BEZXZpY2VJZCgpLgorICovCitzdHJ1Y3QgZHJtX2FncF9pbmZvIHsKKwlpbnQgYWdwX3ZlcnNpb25fbWFqb3I7CisJaW50IGFncF92ZXJzaW9uX21pbm9yOworCXVuc2lnbmVkIGxvbmcgbW9kZTsKKwl1bnNpZ25lZCBsb25nIGFwZXJ0dXJlX2Jhc2U7CS8qIHBoeXNpY2FsIGFkZHJlc3MgKi8KKwl1bnNpZ25lZCBsb25nIGFwZXJ0dXJlX3NpemU7CS8qIGJ5dGVzICovCisJdW5zaWduZWQgbG9uZyBtZW1vcnlfYWxsb3dlZDsJLyogYnl0ZXMgKi8KKwl1bnNpZ25lZCBsb25nIG1lbW9yeV91c2VkOworCisJLyogUENJIGluZm9ybWF0aW9uICovCisJdW5zaWduZWQgc2hvcnQgaWRfdmVuZG9yOworCXVuc2lnbmVkIHNob3J0IGlkX2RldmljZTsKK307CisKKy8qKgorICogRFJNX0lPQ1RMX1NHX0FMTE9DIGlvY3RsIGFyZ3VtZW50IHR5cGUuCisgKi8KK3N0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIgeworCXVuc2lnbmVkIGxvbmcgc2l6ZTsJLyoqPCBJbiBieXRlcyAtLSB3aWxsIHJvdW5kIHRvIHBhZ2UgYm91bmRhcnkgKi8KKwl1bnNpZ25lZCBsb25nIGhhbmRsZTsJLyoqPCBVc2VkIGZvciBtYXBwaW5nIC8gdW5tYXBwaW5nICovCit9OworCisvKioKKyAqIERSTV9JT0NUTF9TRVRfVkVSU0lPTiBpb2N0bCBhcmd1bWVudCB0eXBlLgorICovCitzdHJ1Y3QgZHJtX3NldF92ZXJzaW9uIHsKKwlpbnQgZHJtX2RpX21ham9yOworCWludCBkcm1fZGlfbWlub3I7CisJaW50IGRybV9kZF9tYWpvcjsKKwlpbnQgZHJtX2RkX21pbm9yOworfTsKKworI2RlZmluZSBEUk1fSU9DVExfQkFTRQkJCSdkJworI2RlZmluZSBEUk1fSU8obnIpCQkJX0lPKERSTV9JT0NUTF9CQVNFLG5yKQorI2RlZmluZSBEUk1fSU9SKG5yLHR5cGUpCQlfSU9SKERSTV9JT0NUTF9CQVNFLG5yLHR5cGUpCisjZGVmaW5lIERSTV9JT1cobnIsdHlwZSkJCV9JT1coRFJNX0lPQ1RMX0JBU0UsbnIsdHlwZSkKKyNkZWZpbmUgRFJNX0lPV1IobnIsdHlwZSkJCV9JT1dSKERSTV9JT0NUTF9CQVNFLG5yLHR5cGUpCisKKyNkZWZpbmUgRFJNX0lPQ1RMX1ZFUlNJT04JCURSTV9JT1dSKDB4MDAsIHN0cnVjdCBkcm1fdmVyc2lvbikKKyNkZWZpbmUgRFJNX0lPQ1RMX0dFVF9VTklRVUUJCURSTV9JT1dSKDB4MDEsIHN0cnVjdCBkcm1fdW5pcXVlKQorI2RlZmluZSBEUk1fSU9DVExfR0VUX01BR0lDCQlEUk1fSU9SKCAweDAyLCBzdHJ1Y3QgZHJtX2F1dGgpCisjZGVmaW5lIERSTV9JT0NUTF9JUlFfQlVTSUQJCURSTV9JT1dSKDB4MDMsIHN0cnVjdCBkcm1faXJxX2J1c2lkKQorI2RlZmluZSBEUk1fSU9DVExfR0VUX01BUCAgICAgICAgICAgICAgIERSTV9JT1dSKDB4MDQsIHN0cnVjdCBkcm1fbWFwKQorI2RlZmluZSBEUk1fSU9DVExfR0VUX0NMSUVOVCAgICAgICAgICAgIERSTV9JT1dSKDB4MDUsIHN0cnVjdCBkcm1fY2xpZW50KQorI2RlZmluZSBEUk1fSU9DVExfR0VUX1NUQVRTICAgICAgICAgICAgIERSTV9JT1IoIDB4MDYsIHN0cnVjdCBkcm1fc3RhdHMpCisjZGVmaW5lIERSTV9JT0NUTF9TRVRfVkVSU0lPTgkJRFJNX0lPV1IoMHgwNywgc3RydWN0IGRybV9zZXRfdmVyc2lvbikKKworI2RlZmluZSBEUk1fSU9DVExfU0VUX1VOSVFVRQkJRFJNX0lPVyggMHgxMCwgc3RydWN0IGRybV91bmlxdWUpCisjZGVmaW5lIERSTV9JT0NUTF9BVVRIX01BR0lDCQlEUk1fSU9XKCAweDExLCBzdHJ1Y3QgZHJtX2F1dGgpCisjZGVmaW5lIERSTV9JT0NUTF9CTE9DSwkJCURSTV9JT1dSKDB4MTIsIHN0cnVjdCBkcm1fYmxvY2spCisjZGVmaW5lIERSTV9JT0NUTF9VTkJMT0NLCQlEUk1fSU9XUigweDEzLCBzdHJ1Y3QgZHJtX2Jsb2NrKQorI2RlZmluZSBEUk1fSU9DVExfQ09OVFJPTAkJRFJNX0lPVyggMHgxNCwgc3RydWN0IGRybV9jb250cm9sKQorI2RlZmluZSBEUk1fSU9DVExfQUREX01BUAkJRFJNX0lPV1IoMHgxNSwgc3RydWN0IGRybV9tYXApCisjZGVmaW5lIERSTV9JT0NUTF9BRERfQlVGUwkJRFJNX0lPV1IoMHgxNiwgc3RydWN0IGRybV9idWZfZGVzYykKKyNkZWZpbmUgRFJNX0lPQ1RMX01BUktfQlVGUwkJRFJNX0lPVyggMHgxNywgc3RydWN0IGRybV9idWZfZGVzYykKKyNkZWZpbmUgRFJNX0lPQ1RMX0lORk9fQlVGUwkJRFJNX0lPV1IoMHgxOCwgc3RydWN0IGRybV9idWZfaW5mbykKKyNkZWZpbmUgRFJNX0lPQ1RMX01BUF9CVUZTCQlEUk1fSU9XUigweDE5LCBzdHJ1Y3QgZHJtX2J1Zl9tYXApCisjZGVmaW5lIERSTV9JT0NUTF9GUkVFX0JVRlMJCURSTV9JT1coIDB4MWEsIHN0cnVjdCBkcm1fYnVmX2ZyZWUpCisKKyNkZWZpbmUgRFJNX0lPQ1RMX1JNX01BUAkJRFJNX0lPVyggMHgxYiwgc3RydWN0IGRybV9tYXApCisKKyNkZWZpbmUgRFJNX0lPQ1RMX1NFVF9TQVJFQV9DVFgJCURSTV9JT1coIDB4MWMsIHN0cnVjdCBkcm1fY3R4X3ByaXZfbWFwKQorI2RlZmluZSBEUk1fSU9DVExfR0VUX1NBUkVBX0NUWCAJRFJNX0lPV1IoMHgxZCwgc3RydWN0IGRybV9jdHhfcHJpdl9tYXApCisKKyNkZWZpbmUgRFJNX0lPQ1RMX0FERF9DVFgJCURSTV9JT1dSKDB4MjAsIHN0cnVjdCBkcm1fY3R4KQorI2RlZmluZSBEUk1fSU9DVExfUk1fQ1RYCQlEUk1fSU9XUigweDIxLCBzdHJ1Y3QgZHJtX2N0eCkKKyNkZWZpbmUgRFJNX0lPQ1RMX01PRF9DVFgJCURSTV9JT1coIDB4MjIsIHN0cnVjdCBkcm1fY3R4KQorI2RlZmluZSBEUk1fSU9DVExfR0VUX0NUWAkJRFJNX0lPV1IoMHgyMywgc3RydWN0IGRybV9jdHgpCisjZGVmaW5lIERSTV9JT0NUTF9TV0lUQ0hfQ1RYCQlEUk1fSU9XKCAweDI0LCBzdHJ1Y3QgZHJtX2N0eCkKKyNkZWZpbmUgRFJNX0lPQ1RMX05FV19DVFgJCURSTV9JT1coIDB4MjUsIHN0cnVjdCBkcm1fY3R4KQorI2RlZmluZSBEUk1fSU9DVExfUkVTX0NUWAkJRFJNX0lPV1IoMHgyNiwgc3RydWN0IGRybV9jdHhfcmVzKQorI2RlZmluZSBEUk1fSU9DVExfQUREX0RSQVcJCURSTV9JT1dSKDB4MjcsIHN0cnVjdCBkcm1fZHJhdykKKyNkZWZpbmUgRFJNX0lPQ1RMX1JNX0RSQVcJCURSTV9JT1dSKDB4MjgsIHN0cnVjdCBkcm1fZHJhdykKKyNkZWZpbmUgRFJNX0lPQ1RMX0RNQQkJCURSTV9JT1dSKDB4MjksIHN0cnVjdCBkcm1fZG1hKQorI2RlZmluZSBEUk1fSU9DVExfTE9DSwkJCURSTV9JT1coIDB4MmEsIHN0cnVjdCBkcm1fbG9jaykKKyNkZWZpbmUgRFJNX0lPQ1RMX1VOTE9DSwkJRFJNX0lPVyggMHgyYiwgc3RydWN0IGRybV9sb2NrKQorI2RlZmluZSBEUk1fSU9DVExfRklOSVNICQlEUk1fSU9XKCAweDJjLCBzdHJ1Y3QgZHJtX2xvY2spCisKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9BQ1FVSVJFCQlEUk1fSU8oICAweDMwKQorI2RlZmluZSBEUk1fSU9DVExfQUdQX1JFTEVBU0UJCURSTV9JTyggIDB4MzEpCisjZGVmaW5lIERSTV9JT0NUTF9BR1BfRU5BQkxFCQlEUk1fSU9XKCAweDMyLCBzdHJ1Y3QgZHJtX2FncF9tb2RlKQorI2RlZmluZSBEUk1fSU9DVExfQUdQX0lORk8JCURSTV9JT1IoIDB4MzMsIHN0cnVjdCBkcm1fYWdwX2luZm8pCisjZGVmaW5lIERSTV9JT0NUTF9BR1BfQUxMT0MJCURSTV9JT1dSKDB4MzQsIHN0cnVjdCBkcm1fYWdwX2J1ZmZlcikKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9GUkVFCQlEUk1fSU9XKCAweDM1LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIpCisjZGVmaW5lIERSTV9JT0NUTF9BR1BfQklORAkJRFJNX0lPVyggMHgzNiwgc3RydWN0IGRybV9hZ3BfYmluZGluZykKKyNkZWZpbmUgRFJNX0lPQ1RMX0FHUF9VTkJJTkQJCURSTV9JT1coIDB4MzcsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcpCisKKyNkZWZpbmUgRFJNX0lPQ1RMX1NHX0FMTE9DCQlEUk1fSU9XUigweDM4LCBzdHJ1Y3QgZHJtX3NjYXR0ZXJfZ2F0aGVyKQorI2RlZmluZSBEUk1fSU9DVExfU0dfRlJFRQkJRFJNX0lPVyggMHgzOSwgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlcikKKworI2RlZmluZSBEUk1fSU9DVExfV0FJVF9WQkxBTksJCURSTV9JT1dSKDB4M2EsIHVuaW9uIGRybV93YWl0X3ZibGFuaykKKworI2RlZmluZSBEUk1fSU9DVExfVVBEQVRFX0RSQVcJCURSTV9JT1coMHgzZiwgc3RydWN0IGRybV91cGRhdGVfZHJhdykKKworLyoqCisgKiBEZXZpY2Ugc3BlY2lmaWMgaW9jdGxzIHNob3VsZCBvbmx5IGJlIGluIHRoZWlyIHJlc3BlY3RpdmUgaGVhZGVycworICogVGhlIGRldmljZSBzcGVjaWZpYyBpb2N0bCByYW5nZSBpcyBmcm9tIDB4NDAgdG8gMHg5OS4KKyAqIEdlbmVyaWMgSU9DVExTIHJlc3RhcnQgYXQgMHhBMC4KKyAqCisgKiBcc2EgZHJtQ29tbWFuZE5vbmUoKSwgZHJtQ29tbWFuZFJlYWQoKSwgZHJtQ29tbWFuZFdyaXRlKCksIGFuZAorICogZHJtQ29tbWFuZFJlYWRXcml0ZSgpLgorICovCisjZGVmaW5lIERSTV9DT01NQU5EX0JBU0UgICAgICAgICAgICAgICAgMHg0MAorI2RlZmluZSBEUk1fQ09NTUFORF9FTkQJCQkweEEwCisKKy8qIHR5cGVkZWYgYXJlYSAqLworI2lmbmRlZiBfX0tFUk5FTF9fCit0eXBlZGVmIHN0cnVjdCBkcm1fY2xpcF9yZWN0IGRybV9jbGlwX3JlY3RfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvIGRybV9kcmF3YWJsZV9pbmZvX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fdGV4X3JlZ2lvbiBkcm1fdGV4X3JlZ2lvbl90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2h3X2xvY2sgZHJtX2h3X2xvY2tfdDsKK3R5cGVkZWYgc3RydWN0IGRybV92ZXJzaW9uIGRybV92ZXJzaW9uX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fdW5pcXVlIGRybV91bmlxdWVfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9saXN0IGRybV9saXN0X3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fYmxvY2sgZHJtX2Jsb2NrX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fY29udHJvbCBkcm1fY29udHJvbF90OwordHlwZWRlZiBlbnVtIGRybV9tYXBfdHlwZSBkcm1fbWFwX3R5cGVfdDsKK3R5cGVkZWYgZW51bSBkcm1fbWFwX2ZsYWdzIGRybV9tYXBfZmxhZ3NfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9jdHhfcHJpdl9tYXAgZHJtX2N0eF9wcml2X21hcF90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX21hcCBkcm1fbWFwX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fY2xpZW50IGRybV9jbGllbnRfdDsKK3R5cGVkZWYgZW51bSBkcm1fc3RhdF90eXBlIGRybV9zdGF0X3R5cGVfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9zdGF0cyBkcm1fc3RhdHNfdDsKK3R5cGVkZWYgZW51bSBkcm1fbG9ja19mbGFncyBkcm1fbG9ja19mbGFnc190OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2xvY2sgZHJtX2xvY2tfdDsKK3R5cGVkZWYgZW51bSBkcm1fZG1hX2ZsYWdzIGRybV9kbWFfZmxhZ3NfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9idWZfZGVzYyBkcm1fYnVmX2Rlc2NfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9idWZfaW5mbyBkcm1fYnVmX2luZm9fdDsKK3R5cGVkZWYgc3RydWN0IGRybV9idWZfZnJlZSBkcm1fYnVmX2ZyZWVfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9idWZfcHViIGRybV9idWZfcHViX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fYnVmX21hcCBkcm1fYnVmX21hcF90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2RtYSBkcm1fZG1hX3Q7Cit0eXBlZGVmIHVuaW9uIGRybV93YWl0X3ZibGFuayBkcm1fd2FpdF92YmxhbmtfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9hZ3BfbW9kZSBkcm1fYWdwX21vZGVfdDsKK3R5cGVkZWYgZW51bSBkcm1fY3R4X2ZsYWdzIGRybV9jdHhfZmxhZ3NfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9jdHggZHJtX2N0eF90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2N0eF9yZXMgZHJtX2N0eF9yZXNfdDsKK3R5cGVkZWYgc3RydWN0IGRybV9kcmF3IGRybV9kcmF3X3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fdXBkYXRlX2RyYXcgZHJtX3VwZGF0ZV9kcmF3X3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fYXV0aCBkcm1fYXV0aF90OwordHlwZWRlZiBzdHJ1Y3QgZHJtX2lycV9idXNpZCBkcm1faXJxX2J1c2lkX3Q7Cit0eXBlZGVmIGVudW0gZHJtX3ZibGFua19zZXFfdHlwZSBkcm1fdmJsYW5rX3NlcV90eXBlX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9hZ3BfYnVmZmVyIGRybV9hZ3BfYnVmZmVyX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgZHJtX2FncF9iaW5kaW5nX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fYWdwX2luZm8gZHJtX2FncF9pbmZvX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fc2NhdHRlcl9nYXRoZXIgZHJtX3NjYXR0ZXJfZ2F0aGVyX3Q7Cit0eXBlZGVmIHN0cnVjdCBkcm1fc2V0X3ZlcnNpb24gZHJtX3NldF92ZXJzaW9uX3Q7CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWMxYjEzZQotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtMCwwICsxLDExNTQgQEAKKy8qKgorICogXGZpbGUgZHJtUC5oCisgKiBQcml2YXRlIGhlYWRlciBmb3IgRGlyZWN0IFJlbmRlcmluZyBNYW5hZ2VyCisgKgorICogXGF1dGhvciBSaWNrYXJkIEUuIChSaWspIEZhaXRoIDxmYWl0aEB2YWxpbnV4LmNvbT4KKyAqIFxhdXRob3IgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgMTk5OSBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX0RSTV9QX0hfCisjZGVmaW5lIF9EUk1fUF9IXworCisvKiBJZiB5b3Ugd2FudCB0aGUgbWVtb3J5IGFsbG9jIGRlYnVnIGZ1bmN0aW9uYWxpdHksIGNoYW5nZSBkZWZpbmUgYmVsb3cgKi8KKy8qICNkZWZpbmUgREVCVUdfTUVNT1JZICovCisKKyNpZmRlZiBfX0tFUk5FTF9fCisjaWZkZWYgX19hbHBoYV9fCisvKiBhZGQgaW5jbHVkZSBvZiBjdXJyZW50Lmggc28gdGhhdCAiY3VycmVudCIgaXMgZGVmaW5lZAorICogYmVmb3JlIHN0YXRpYyBpbmxpbmUgZnVuY3MgaW4gd2FpdC5oLiBEb2luZyB0aGlzIHNvIHdlCisgKiBjYW4gYnVpbGQgdGhlIERSTSAocGFydCBvZiBQSSBEUkkpLiA0LzIxLzIwMDAgUyArIEIgKi8KKyNpbmNsdWRlIDxhc20vY3VycmVudC5oPgorI2VuZGlmCQkJCS8qIF9fYWxwaGFfXyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21pc2NkZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L3Byb2NfZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgkvKiBGb3IgKHVuKWxvY2tfa2VybmVsICovCisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorI2luY2x1ZGUgPGxpbnV4L2NkZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2lmIGRlZmluZWQoX19hbHBoYV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwY19fKQorI2luY2x1ZGUgPGFzbS9wZ3RhYmxlLmg+CS8qIEZvciBwdGVfd3Jwcm90ZWN0ICovCisjZW5kaWYKKyNpbmNsdWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxhc20vbW1hbi5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CisjaWZkZWYgQ09ORklHX01UUlIKKyNpbmNsdWRlIDxhc20vbXRyci5oPgorI2VuZGlmCisjaWYgZGVmaW5lZChDT05GSUdfQUdQKSB8fCBkZWZpbmVkKENPTkZJR19BR1BfTU9EVUxFKQorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvYWdwX2JhY2tlbmQuaD4KKyNlbmRpZgorI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KKyNpbmNsdWRlIDxhc20vcGdhbGxvYy5oPgorI2luY2x1ZGUgImRybS5oIgorCisjaW5jbHVkZSA8bGludXgvaWRyLmg+CisKKyNkZWZpbmUgX19PU19IQVNfQUdQIChkZWZpbmVkKENPTkZJR19BR1ApIHx8IChkZWZpbmVkKENPTkZJR19BR1BfTU9EVUxFKSAmJiBkZWZpbmVkKE1PRFVMRSkpKQorI2RlZmluZSBfX09TX0hBU19NVFJSIChkZWZpbmVkKENPTkZJR19NVFJSKSkKKworc3RydWN0IGRybV9maWxlOworc3RydWN0IGRybV9kZXZpY2U7CisKKyNpbmNsdWRlICJkcm1fb3NfbGludXguaCIKKyNpbmNsdWRlICJkcm1faGFzaHRhYi5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiogXG5hbWUgRFJNIHRlbXBsYXRlIGN1c3RvbWl6YXRpb24gZGVmYXVsdHMgKi8KKy8qQHsqLworCisvKiBkcml2ZXIgY2FwYWJpbGl0aWVzIGFuZCByZXF1aXJlbWVudHMgbWFzayAqLworI2RlZmluZSBEUklWRVJfVVNFX0FHUCAgICAgMHgxCisjZGVmaW5lIERSSVZFUl9SRVFVSVJFX0FHUCAweDIKKyNkZWZpbmUgRFJJVkVSX1VTRV9NVFJSICAgIDB4NAorI2RlZmluZSBEUklWRVJfUENJX0RNQSAgICAgMHg4CisjZGVmaW5lIERSSVZFUl9TRyAgICAgICAgICAweDEwCisjZGVmaW5lIERSSVZFUl9IQVZFX0RNQSAgICAweDIwCisjZGVmaW5lIERSSVZFUl9IQVZFX0lSUSAgICAweDQwCisjZGVmaW5lIERSSVZFUl9JUlFfU0hBUkVEICAweDgwCisjZGVmaW5lIERSSVZFUl9JUlFfVkJMICAgICAweDEwMAorI2RlZmluZSBEUklWRVJfRE1BX1FVRVVFICAgMHgyMDAKKyNkZWZpbmUgRFJJVkVSX0ZCX0RNQSAgICAgIDB4NDAwCisjZGVmaW5lIERSSVZFUl9JUlFfVkJMMiAgICAweDgwMAorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiogXG5hbWUgQmVnaW4gdGhlIERSTS4uLiAqLworLypAeyovCisKKyNkZWZpbmUgRFJNX0RFQlVHX0NPREUgMgkgIC8qKjwgSW5jbHVkZSBkZWJ1Z2dpbmcgY29kZSBpZiA+IDEsIHRoZW4KKwkJCQkgICAgIGFsc28gaW5jbHVkZSBsb29waW5nIGRldGVjdGlvbi4gKi8KKworI2RlZmluZSBEUk1fTUFHSUNfSEFTSF9PUkRFUiAgNCAgLyoqPCBTaXplIG9mIGtleSBoYXNoIHRhYmxlLiBNdXN0IGJlIHBvd2VyIG9mIDIuICovCisjZGVmaW5lIERSTV9LRVJORUxfQ09OVEVYVCAgICAwCSAvKio8IENoYW5nZSBkcm1fcmVzY3R4IGlmIGNoYW5nZWQgKi8KKyNkZWZpbmUgRFJNX1JFU0VSVkVEX0NPTlRFWFRTIDEJIC8qKjwgQ2hhbmdlIGRybV9yZXNjdHggaWYgY2hhbmdlZCAqLworI2RlZmluZSBEUk1fTE9PUElOR19MSU1JVCAgICAgNTAwMDAwMAorI2RlZmluZSBEUk1fVElNRV9TTElDRQkgICAgICAoSFovMjApICAvKio8IFRpbWUgc2xpY2UgZm9yIEdMWENvbnRleHRzICovCisjZGVmaW5lIERSTV9MT0NLX1NMSUNFCSAgICAgIDEJLyoqPCBUaW1lIHNsaWNlIGZvciBsb2NrLCBpbiBqaWZmaWVzICovCisKKyNkZWZpbmUgRFJNX0ZMQUdfREVCVUcJICAweDAxCisKKyNkZWZpbmUgRFJNX01FTV9ETUEJICAgMAorI2RlZmluZSBEUk1fTUVNX1NBUkVBCSAgIDEKKyNkZWZpbmUgRFJNX01FTV9EUklWRVIJICAgMgorI2RlZmluZSBEUk1fTUVNX01BR0lDCSAgIDMKKyNkZWZpbmUgRFJNX01FTV9JT0NUTFMJICAgNAorI2RlZmluZSBEUk1fTUVNX01BUFMJICAgNQorI2RlZmluZSBEUk1fTUVNX1ZNQVMJICAgNgorI2RlZmluZSBEUk1fTUVNX0JVRlMJICAgNworI2RlZmluZSBEUk1fTUVNX1NFR1MJICAgOAorI2RlZmluZSBEUk1fTUVNX1BBR0VTCSAgIDkKKyNkZWZpbmUgRFJNX01FTV9GSUxFUwkgIDEwCisjZGVmaW5lIERSTV9NRU1fUVVFVUVTCSAgMTEKKyNkZWZpbmUgRFJNX01FTV9DTURTCSAgMTIKKyNkZWZpbmUgRFJNX01FTV9NQVBQSU5HUyAgMTMKKyNkZWZpbmUgRFJNX01FTV9CVUZMSVNUUyAgMTQKKyNkZWZpbmUgRFJNX01FTV9BR1BMSVNUUyAgMTUKKyNkZWZpbmUgRFJNX01FTV9UT1RBTEFHUCAgMTYKKyNkZWZpbmUgRFJNX01FTV9CT1VOREFHUCAgMTcKKyNkZWZpbmUgRFJNX01FTV9DVFhCSVRNQVAgMTgKKyNkZWZpbmUgRFJNX01FTV9TVFVCICAgICAgMTkKKyNkZWZpbmUgRFJNX01FTV9TR0xJU1RTICAgMjAKKyNkZWZpbmUgRFJNX01FTV9DVFhMSVNUICAgMjEKKyNkZWZpbmUgRFJNX01FTV9NTSAgICAgICAgMjIKKyNkZWZpbmUgRFJNX01FTV9IQVNIVEFCICAgMjMKKworI2RlZmluZSBEUk1fTUFYX0NUWEJJVE1BUCAoUEFHRV9TSVpFICogOCkKKyNkZWZpbmUgRFJNX01BUF9IQVNIX09GRlNFVCAweDEwMDAwMDAwCisKKy8qQH0qLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiogXG5hbWUgTWFjcm9zIHRvIG1ha2UgcHJpbnRrIGVhc2llciAqLworLypAeyovCisKKy8qKgorICogRXJyb3Igb3V0cHV0LgorICoKKyAqIFxwYXJhbSBmbXQgcHJpbnRmKCkgbGlrZSBmb3JtYXQgc3RyaW5nLgorICogXHBhcmFtIGFyZyBhcmd1bWVudHMKKyAqLworI2RlZmluZSBEUk1fRVJST1IoZm10LCBhcmcuLi4pIFwKKwlwcmludGsoS0VSTl9FUlIgIlsiIERSTV9OQU1FICI6JXNdICpFUlJPUiogIiBmbXQgLCBfX2Z1bmNfXyAsICMjYXJnKQorCisvKioKKyAqIE1lbW9yeSBlcnJvciBvdXRwdXQuCisgKgorICogXHBhcmFtIGFyZWEgbWVtb3J5IGFyZWEgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLgorICogXHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCisgKiBccGFyYW0gYXJnIGFyZ3VtZW50cworICovCisjZGVmaW5lIERSTV9NRU1fRVJST1IoYXJlYSwgZm10LCBhcmcuLi4pIFwKKwlwcmludGsoS0VSTl9FUlIgIlsiIERSTV9OQU1FICI6JXM6JXNdICpFUlJPUiogIiBmbXQgLCBfX2Z1bmNfXywgXAorCSAgICAgICBkcm1fbWVtX3N0YXRzW2FyZWFdLm5hbWUgLCAjI2FyZykKKworI2RlZmluZSBEUk1fSU5GTyhmbXQsIGFyZy4uLikgIHByaW50ayhLRVJOX0lORk8gIlsiIERSTV9OQU1FICJdICIgZm10ICwgIyNhcmcpCisKKy8qKgorICogRGVidWcgb3V0cHV0LgorICoKKyAqIFxwYXJhbSBmbXQgcHJpbnRmKCkgbGlrZSBmb3JtYXQgc3RyaW5nLgorICogXHBhcmFtIGFyZyBhcmd1bWVudHMKKyAqLworI2lmIERSTV9ERUJVR19DT0RFCisjZGVmaW5lIERSTV9ERUJVRyhmbXQsIGFyZy4uLikJCQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlpZiAoIGRybV9kZWJ1ZyApCQkJXAorCQkJcHJpbnRrKEtFUk5fREVCVUcJCQkJXAorCQkJICAgICAgICJbIiBEUk1fTkFNRSAiOiVzXSAiIGZtdCAsCVwKKwkJCSAgICAgICBfX2Z1bmNfXyAsICMjYXJnKTsJCQlcCisJfSB3aGlsZSAoMCkKKyNlbHNlCisjZGVmaW5lIERSTV9ERUJVRyhmbXQsIGFyZy4uLikJCSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2RlZmluZSBEUk1fUFJPQ19MSU1JVCAoUEFHRV9TSVpFLTgwKQorCisjZGVmaW5lIERSTV9QUk9DX1BSSU5UKGZtdCwgYXJnLi4uKQkJCQkJXAorICAgbGVuICs9IHNwcmludGYoJmJ1ZltsZW5dLCBmbXQgLCAjI2FyZyk7CQkJCVwKKyAgIGlmIChsZW4gPiBEUk1fUFJPQ19MSU1JVCkgeyAqZW9mID0gMTsgcmV0dXJuIGxlbiAtIG9mZnNldDsgfQorCisjZGVmaW5lIERSTV9QUk9DX1BSSU5UX1JFVChyZXQsIGZtdCwgYXJnLi4uKQkJCQlcCisgICBsZW4gKz0gc3ByaW50ZigmYnVmW2xlbl0sIGZtdCAsICMjYXJnKTsJCQkJXAorICAgaWYgKGxlbiA+IERSTV9QUk9DX0xJTUlUKSB7IHJldDsgKmVvZiA9IDE7IHJldHVybiBsZW4gLSBvZmZzZXQ7IH0KKworLypAfSovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKiBcbmFtZSBJbnRlcm5hbCB0eXBlcyBhbmQgc3RydWN0dXJlcyAqLworLypAeyovCisKKyNkZWZpbmUgRFJNX0FSUkFZX1NJWkUoeCkgQVJSQVlfU0laRSh4KQorCisjZGVmaW5lIERSTV9MRUZUQ09VTlQoeCkgKCgoeCktPnJwICsgKHgpLT5jb3VudCAtICh4KS0+d3ApICUgKCh4KS0+Y291bnQgKyAxKSkKKyNkZWZpbmUgRFJNX0JVRkNPVU5UKHgpICgoeCktPmNvdW50IC0gRFJNX0xFRlRDT1VOVCh4KSkKKyNkZWZpbmUgRFJNX1dBSVRDT1VOVChkZXYsaWR4KSBEUk1fQlVGQ09VTlQoJmRldi0+cXVldWVsaXN0W2lkeF0tPndhaXRsaXN0KQorCisjZGVmaW5lIERSTV9JRl9WRVJTSU9OKG1haiwgbWluKSAobWFqIDw8IDE2IHwgbWluKQorLyoqCisgKiBHZXQgdGhlIHByaXZhdGUgU0FSRUEgbWFwcGluZy4KKyAqCisgKiBccGFyYW0gX2RldiBEUk0gZGV2aWNlLgorICogXHBhcmFtIF9jdHggY29udGV4dCBudW1iZXIuCisgKiBccGFyYW0gX21hcCBvdXRwdXQgbWFwcGluZy4KKyAqLworI2RlZmluZSBEUk1fR0VUX1BSSVZfU0FSRUEoX2RldiwgX2N0eCwgX21hcCkgZG8gewlcCisJKF9tYXApID0gKF9kZXYpLT5jb250ZXh0X3NhcmVhc1tfY3R4XTsJCVwKK30gd2hpbGUoMCkKKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGhhcmR3YXJlIGxvY2sgaXMgaGVsZCBieSB0aGUgY2FsbGVyLCByZXR1cm5pbmcgb3RoZXJ3aXNlLgorICoKKyAqIFxwYXJhbSBkZXYgRFJNIGRldmljZS4KKyAqIFxwYXJhbSBmaWxwIGZpbGUgcG9pbnRlciBvZiB0aGUgY2FsbGVyLgorICovCisjZGVmaW5lIExPQ0tfVEVTVF9XSVRIX1JFVFVSTiggZGV2LCBmaWxlX3ByaXYgKQkJCQlcCitkbyB7CQkJCQkJCQkJXAorCWlmICggIV9EUk1fTE9DS19JU19IRUxEKCBkZXYtPmxvY2suaHdfbG9jay0+bG9jayApIHx8CQlcCisJICAgICBkZXYtPmxvY2suZmlsZV9wcml2ICE9IGZpbGVfcHJpdiApCXsJCQlcCisJCURSTV9FUlJPUiggIiVzIGNhbGxlZCB3aXRob3V0IGxvY2sgaGVsZCwgaGVsZCAgJWQgb3duZXIgJXAgJXBcbiIsXAorCQkJICAgX19mdW5jX18sIF9EUk1fTE9DS19JU19IRUxEKCBkZXYtPmxvY2suaHdfbG9jay0+bG9jayApLFwKKwkJCSAgIGRldi0+bG9jay5maWxlX3ByaXYsIGZpbGVfcHJpdiApOwkJXAorCQlyZXR1cm4gLUVJTlZBTDsJCQkJCQlcCisJfQkJCQkJCQkJXAorfSB3aGlsZSAoMCkKKworLyoqCisgKiBDb3B5IGFuZCBJT0NUTCByZXR1cm4gc3RyaW5nIHRvIHVzZXIgc3BhY2UKKyAqLworI2RlZmluZSBEUk1fQ09QWSggbmFtZSwgdmFsdWUgKQkJCQkJCVwKKwlsZW4gPSBzdHJsZW4oIHZhbHVlICk7CQkJCQkJXAorCWlmICggbGVuID4gbmFtZSMjX2xlbiApIGxlbiA9IG5hbWUjI19sZW47CQkJXAorCW5hbWUjI19sZW4gPSBzdHJsZW4oIHZhbHVlICk7CQkJCQlcCisJaWYgKCBsZW4gJiYgbmFtZSApIHsJCQkJCQlcCisJCWlmICggY29weV90b191c2VyKCBuYW1lLCB2YWx1ZSwgbGVuICkgKQkJCVwKKwkJCXJldHVybiAtRUZBVUxUOwkJCQkJXAorCX0KKworLyoqCisgKiBJb2N0bCBmdW5jdGlvbiB0eXBlLgorICoKKyAqIFxwYXJhbSBpbm9kZSBkZXZpY2UgaW5vZGUuCisgKiBccGFyYW0gZmlsZV9wcml2IERSTSBmaWxlIHByaXZhdGUgcG9pbnRlci4KKyAqIFxwYXJhbSBjbWQgY29tbWFuZC4KKyAqIFxwYXJhbSBhcmcgYXJndW1lbnQuCisgKi8KK3R5cGVkZWYgaW50IGRybV9pb2N0bF90KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKK3R5cGVkZWYgaW50IGRybV9pb2N0bF9jb21wYXRfdChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwKKwkJCSAgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CisKKyNkZWZpbmUgRFJNX0FVVEgJMHgxCisjZGVmaW5lCURSTV9NQVNURVIJMHgyCisjZGVmaW5lIERSTV9ST09UX09OTFkJMHg0CisKK3N0cnVjdCBkcm1faW9jdGxfZGVzYyB7CisJdW5zaWduZWQgaW50IGNtZDsKKwlkcm1faW9jdGxfdCAqZnVuYzsKKwlpbnQgZmxhZ3M7Cit9OworCisvKioKKyAqIENyZWF0ZXMgYSBkcml2ZXIgb3IgZ2VuZXJhbCBkcm1faW9jdGxfZGVzYyBhcnJheSBlbnRyeSBmb3IgdGhlIGdpdmVuCisgKiBpb2N0bCwgZm9yIHVzZSBieSBkcm1faW9jdGwoKS4KKyAqLworI2RlZmluZSBEUk1fSU9DVExfREVGKGlvY3RsLCBmdW5jLCBmbGFncykgXAorCVtEUk1fSU9DVExfTlIoaW9jdGwpXSA9IHtpb2N0bCwgZnVuYywgZmxhZ3N9CisKK3N0cnVjdCBkcm1fbWFnaWNfZW50cnkgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwlzdHJ1Y3QgZHJtX2hhc2hfaXRlbSBoYXNoX2l0ZW07CisJc3RydWN0IGRybV9maWxlICpwcml2OworfTsKKworc3RydWN0IGRybV92bWFfZW50cnkgeworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKKwlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYTsKKwlwaWRfdCBwaWQ7Cit9OworCisvKioKKyAqIERNQSBidWZmZXIuCisgKi8KK3N0cnVjdCBkcm1fYnVmIHsKKwlpbnQgaWR4OwkJICAgICAgIC8qKjwgSW5kZXggaW50byBtYXN0ZXIgYnVmbGlzdCAqLworCWludCB0b3RhbDsJCSAgICAgICAvKio8IEJ1ZmZlciBzaXplICovCisJaW50IG9yZGVyOwkJICAgICAgIC8qKjwgbG9nLWJhc2UtMih0b3RhbCkgKi8KKwlpbnQgdXNlZDsJCSAgICAgICAvKio8IEFtb3VudCBvZiBidWZmZXIgaW4gdXNlIChmb3IgRE1BKSAqLworCXVuc2lnbmVkIGxvbmcgb2Zmc2V0OwkgICAgICAgLyoqPCBCeXRlIG9mZnNldCAodXNlZCBpbnRlcm5hbGx5KSAqLworCXZvaWQgKmFkZHJlc3M7CQkgICAgICAgLyoqPCBBZGRyZXNzIG9mIGJ1ZmZlciAqLworCXVuc2lnbmVkIGxvbmcgYnVzX2FkZHJlc3M7ICAgICAvKio8IEJ1cyBhZGRyZXNzIG9mIGJ1ZmZlciAqLworCXN0cnVjdCBkcm1fYnVmICpuZXh0OwkgICAgICAgLyoqPCBLZXJuZWwtb25seTogdXNlZCBmb3IgZnJlZSBsaXN0ICovCisJX192b2xhdGlsZV9fIGludCB3YWl0aW5nOyAgICAgIC8qKjwgT24ga2VybmVsIERNQSBxdWV1ZSAqLworCV9fdm9sYXRpbGVfXyBpbnQgcGVuZGluZzsgICAgICAvKio8IE9uIGhhcmR3YXJlIERNQSBxdWV1ZSAqLworCXdhaXRfcXVldWVfaGVhZF90IGRtYV93YWl0OyAgICAvKio8IFByb2Nlc3NlcyB3YWl0aW5nICovCisJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXY7ICAgIC8qKjwgUHJpdmF0ZSBvZiBob2xkaW5nIGZpbGUgZGVzY3IgKi8KKwlpbnQgY29udGV4dDsJCSAgICAgICAvKio8IEtlcm5lbCBxdWV1ZSBmb3IgdGhpcyBidWZmZXIgKi8KKwlpbnQgd2hpbGVfbG9ja2VkOwkgICAgICAgLyoqPCBEaXNwYXRjaCB0aGlzIGJ1ZmZlciB3aGlsZSBsb2NrZWQgKi8KKwllbnVtIHsKKwkJRFJNX0xJU1RfTk9ORSA9IDAsCisJCURSTV9MSVNUX0ZSRUUgPSAxLAorCQlEUk1fTElTVF9XQUlUID0gMiwKKwkJRFJNX0xJU1RfUEVORCA9IDMsCisJCURSTV9MSVNUX1BSSU8gPSA0LAorCQlEUk1fTElTVF9SRUNMQUlNID0gNQorCX0gbGlzdDsJCQkgICAgICAgLyoqPCBXaGljaCBsaXN0IHdlJ3JlIG9uICovCisKKwlpbnQgZGV2X3ByaXZfc2l6ZTsJCSAvKio8IFNpemUgb2YgYnVmZmVyIHByaXZhdGUgc3RvcmFnZSAqLworCXZvaWQgKmRldl9wcml2YXRlOwkJIC8qKjwgUGVyLWJ1ZmZlciBwcml2YXRlIHN0b3JhZ2UgKi8KK307CisKKy8qKiBidWZzIGlzIG9uZSBsb25nZXIgdGhhbiBpdCBoYXMgdG8gYmUgKi8KK3N0cnVjdCBkcm1fd2FpdGxpc3QgeworCWludCBjb3VudDsJCQkvKio8IE51bWJlciBvZiBwb3NzaWJsZSBidWZmZXJzICovCisJc3RydWN0IGRybV9idWYgKipidWZzOwkJLyoqPCBMaXN0IG9mIHBvaW50ZXJzIHRvIGJ1ZmZlcnMgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqKnJwOwkJCS8qKjwgUmVhZCBwb2ludGVyICovCisJc3RydWN0IGRybV9idWYgKip3cDsJCQkvKio8IFdyaXRlIHBvaW50ZXIgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqKmVuZDsJCS8qKjwgRW5kIHBvaW50ZXIgKi8KKwlzcGlubG9ja190IHJlYWRfbG9jazsKKwlzcGlubG9ja190IHdyaXRlX2xvY2s7Cit9OworCitzdHJ1Y3QgZHJtX2ZyZWVsaXN0IHsKKwlpbnQgaW5pdGlhbGl6ZWQ7CSAgICAgICAvKio8IEZyZWVsaXN0IGluIHVzZSAqLworCWF0b21pY190IGNvdW50OwkJICAgICAgIC8qKjwgTnVtYmVyIG9mIGZyZWUgYnVmZmVycyAqLworCXN0cnVjdCBkcm1fYnVmICpuZXh0OwkgICAgICAgLyoqPCBFbmQgcG9pbnRlciAqLworCisJd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdGluZzsgICAgIC8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gZnJlZSBidWZzICovCisJaW50IGxvd19tYXJrOwkJICAgICAgIC8qKjwgTG93IHdhdGVyIG1hcmsgKi8KKwlpbnQgaGlnaF9tYXJrOwkJICAgICAgIC8qKjwgSGlnaCB3YXRlciBtYXJrICovCisJYXRvbWljX3Qgd2ZoOwkJICAgICAgIC8qKjwgSWYgd2FpdGluZyBmb3IgaGlnaCBtYXJrICovCisJc3BpbmxvY2tfdCBsb2NrOworfTsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgeworCWRtYV9hZGRyX3QgYnVzYWRkcjsKKwl2b2lkICp2YWRkcjsKKwlzaXplX3Qgc2l6ZTsKK30gZHJtX2RtYV9oYW5kbGVfdDsKKworLyoqCisgKiBCdWZmZXIgZW50cnkuICBUaGVyZSBpcyBvbmUgb2YgdGhpcyBmb3IgZWFjaCBidWZmZXIgc2l6ZSBvcmRlci4KKyAqLworc3RydWN0IGRybV9idWZfZW50cnkgeworCWludCBidWZfc2l6ZTsJCQkvKio8IHNpemUgKi8KKwlpbnQgYnVmX2NvdW50OwkJCS8qKjwgbnVtYmVyIG9mIGJ1ZmZlcnMgKi8KKwlzdHJ1Y3QgZHJtX2J1ZiAqYnVmbGlzdDsJCS8qKjwgYnVmZmVyIGxpc3QgKi8KKwlpbnQgc2VnX2NvdW50OworCWludCBwYWdlX29yZGVyOworCXN0cnVjdCBkcm1fZG1hX2hhbmRsZSAqKnNlZ2xpc3Q7CisKKwlzdHJ1Y3QgZHJtX2ZyZWVsaXN0IGZyZWVsaXN0OworfTsKKworLyoqIEZpbGUgcHJpdmF0ZSBkYXRhICovCitzdHJ1Y3QgZHJtX2ZpbGUgeworCWludCBhdXRoZW50aWNhdGVkOworCWludCBtYXN0ZXI7CisJcGlkX3QgcGlkOworCXVpZF90IHVpZDsKKwlkcm1fbWFnaWNfdCBtYWdpYzsKKwl1bnNpZ25lZCBsb25nIGlvY3RsX2NvdW50OworCXN0cnVjdCBsaXN0X2hlYWQgbGhlYWQ7CisJc3RydWN0IGRybV9taW5vciAqbWlub3I7CisJaW50IHJlbW92ZV9hdXRoX29uX2Nsb3NlOworCXVuc2lnbmVkIGxvbmcgbG9ja19jb3VudDsKKwlzdHJ1Y3QgZmlsZSAqZmlscDsKKwl2b2lkICpkcml2ZXJfcHJpdjsKK307CisKKy8qKiBXYWl0IHF1ZXVlICovCitzdHJ1Y3QgZHJtX3F1ZXVlIHsKKwlhdG9taWNfdCB1c2VfY291bnQ7CQkvKio8IE91dHN0YW5kaW5nIHVzZXMgKCsxKSAqLworCWF0b21pY190IGZpbmFsaXphdGlvbjsJCS8qKjwgRmluYWxpemF0aW9uIGluIHByb2dyZXNzICovCisJYXRvbWljX3QgYmxvY2tfY291bnQ7CQkvKio8IENvdW50IG9mIHByb2Nlc3NlcyB3YWl0aW5nICovCisJYXRvbWljX3QgYmxvY2tfcmVhZDsJCS8qKjwgUXVldWUgYmxvY2tlZCBmb3IgcmVhZHMgKi8KKwl3YWl0X3F1ZXVlX2hlYWRfdCByZWFkX3F1ZXVlOwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIG9uIGJsb2NrX3JlYWQgKi8KKwlhdG9taWNfdCBibG9ja193cml0ZTsJCS8qKjwgUXVldWUgYmxvY2tlZCBmb3Igd3JpdGVzICovCisJd2FpdF9xdWV1ZV9oZWFkX3Qgd3JpdGVfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgb24gYmxvY2tfd3JpdGUgKi8KKwlhdG9taWNfdCB0b3RhbF9xdWV1ZWQ7CQkvKio8IFRvdGFsIHF1ZXVlZCBzdGF0aXN0aWMgKi8KKwlhdG9taWNfdCB0b3RhbF9mbHVzaGVkOwkJLyoqPCBUb3RhbCBmbHVzaGVzIHN0YXRpc3RpYyAqLworCWF0b21pY190IHRvdGFsX2xvY2tzOwkJLyoqPCBUb3RhbCBsb2NrcyBzdGF0aXN0aWNzICovCisJZW51bSBkcm1fY3R4X2ZsYWdzIGZsYWdzOwkvKio8IENvbnRleHQgcHJlc2VydmluZyBhbmQgMkQtb25seSAqLworCXN0cnVjdCBkcm1fd2FpdGxpc3Qgd2FpdGxpc3Q7CS8qKjwgUGVuZGluZyBidWZmZXJzICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgZmx1c2hfcXVldWU7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdW50aWwgZmx1c2ggKi8KK307CisKKy8qKgorICogTG9jayBkYXRhLgorICovCitzdHJ1Y3QgZHJtX2xvY2tfZGF0YSB7CisJc3RydWN0IGRybV9od19sb2NrICpod19sb2NrOwkvKio8IEhhcmR3YXJlIGxvY2sgKi8KKwkvKiogUHJpdmF0ZSBvZiBsb2NrIGhvbGRlcidzIGZpbGUgKE5VTEw9a2VybmVsKSAqLworCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2OworCXdhaXRfcXVldWVfaGVhZF90IGxvY2tfcXVldWU7CS8qKjwgUXVldWUgb2YgYmxvY2tlZCBwcm9jZXNzZXMgKi8KKwl1bnNpZ25lZCBsb25nIGxvY2tfdGltZTsJLyoqPCBUaW1lIG9mIGxhc3QgbG9jayBpbiBqaWZmaWVzICovCisJc3BpbmxvY2tfdCBzcGlubG9jazsKKwl1aW50MzJfdCBrZXJuZWxfd2FpdGVyczsKKwl1aW50MzJfdCB1c2VyX3dhaXRlcnM7CisJaW50IGlkbGVfaGFzX2xvY2s7Cit9OworCisvKioKKyAqIERNQSBkYXRhLgorICovCitzdHJ1Y3QgZHJtX2RldmljZV9kbWEgeworCisJc3RydWN0IGRybV9idWZfZW50cnkgYnVmc1tEUk1fTUFYX09SREVSICsgMV07CS8qKjwgYnVmZmVycywgZ3JvdXBlZCBieSB0aGVpciBzaXplIG9yZGVyICovCisJaW50IGJ1Zl9jb3VudDsJCQkvKio8IHRvdGFsIG51bWJlciBvZiBidWZmZXJzICovCisJc3RydWN0IGRybV9idWYgKipidWZsaXN0OwkJLyoqPCBWZWN0b3Igb2YgcG9pbnRlcnMgaW50byBkcm1fZGV2aWNlX2RtYTo6YnVmcyAqLworCWludCBzZWdfY291bnQ7CisJaW50IHBhZ2VfY291bnQ7CQkJLyoqPCBudW1iZXIgb2YgcGFnZXMgKi8KKwl1bnNpZ25lZCBsb25nICpwYWdlbGlzdDsJLyoqPCBwYWdlIGxpc3QgKi8KKwl1bnNpZ25lZCBsb25nIGJ5dGVfY291bnQ7CisJZW51bSB7CisJCV9EUk1fRE1BX1VTRV9BR1AgPSAweDAxLAorCQlfRFJNX0RNQV9VU0VfU0cgPSAweDAyLAorCQlfRFJNX0RNQV9VU0VfRkIgPSAweDA0LAorCQlfRFJNX0RNQV9VU0VfUENJX1JPID0gMHgwOAorCX0gZmxhZ3M7CisKK307CisKKy8qKgorICogQUdQIG1lbW9yeSBlbnRyeS4gIFN0b3JlZCBhcyBhIGRvdWJseSBsaW5rZWQgbGlzdC4KKyAqLworc3RydWN0IGRybV9hZ3BfbWVtIHsKKwl1bnNpZ25lZCBsb25nIGhhbmRsZTsJCS8qKjwgaGFuZGxlICovCisJRFJNX0FHUF9NRU0gKm1lbW9yeTsKKwl1bnNpZ25lZCBsb25nIGJvdW5kOwkJLyoqPCBhZGRyZXNzICovCisJaW50IHBhZ2VzOworCXN0cnVjdCBsaXN0X2hlYWQgaGVhZDsKK307CisKKy8qKgorICogQUdQIGRhdGEuCisgKgorICogXHNhIGRybV9hZ3BfaW5pdCgpIGFuZCBkcm1fZGV2aWNlOjphZ3AuCisgKi8KK3N0cnVjdCBkcm1fYWdwX2hlYWQgeworCURSTV9BR1BfS0VSTiBhZ3BfaW5mbzsJCS8qKjwgQUdQIGRldmljZSBpbmZvcm1hdGlvbiAqLworCXN0cnVjdCBsaXN0X2hlYWQgbWVtb3J5OworCXVuc2lnbmVkIGxvbmcgbW9kZTsJCS8qKjwgQUdQIG1vZGUgKi8KKwlzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2U7CisJaW50IGVuYWJsZWQ7CQkJLyoqPCB3aGV0aGVyIHRoZSBBR1AgYnVzIGFzIGJlZW4gZW5hYmxlZCAqLworCWludCBhY3F1aXJlZDsJCQkvKio8IHdoZXRoZXIgdGhlIEFHUCBkZXZpY2UgaGFzIGJlZW4gYWNxdWlyZWQgKi8KKwl1bnNpZ25lZCBsb25nIGJhc2U7CisJaW50IGFncF9tdHJyOworCWludCBjYW50X3VzZV9hcGVydHVyZTsKKwl1bnNpZ25lZCBsb25nIHBhZ2VfbWFzazsKK307CisKKy8qKgorICogU2NhdHRlci1nYXRoZXIgbWVtb3J5LgorICovCitzdHJ1Y3QgZHJtX3NnX21lbSB7CisJdW5zaWduZWQgbG9uZyBoYW5kbGU7CisJdm9pZCAqdmlydHVhbDsKKwlpbnQgcGFnZXM7CisJc3RydWN0IHBhZ2UgKipwYWdlbGlzdDsKKwlkbWFfYWRkcl90ICpidXNhZGRyOworfTsKKworc3RydWN0IGRybV9zaWdkYXRhIHsKKwlpbnQgY29udGV4dDsKKwlzdHJ1Y3QgZHJtX2h3X2xvY2sgKmxvY2s7Cit9OworCisKKy8qCisgKiBHZW5lcmljIG1lbW9yeSBtYW5hZ2VyIHN0cnVjdHMKKyAqLworCitzdHJ1Y3QgZHJtX21tX25vZGUgeworCXN0cnVjdCBsaXN0X2hlYWQgZmxfZW50cnk7CisJc3RydWN0IGxpc3RfaGVhZCBtbF9lbnRyeTsKKwlpbnQgZnJlZTsKKwl1bnNpZ25lZCBsb25nIHN0YXJ0OworCXVuc2lnbmVkIGxvbmcgc2l6ZTsKKwlzdHJ1Y3QgZHJtX21tICptbTsKKwl2b2lkICpwcml2YXRlOworfTsKKworc3RydWN0IGRybV9tbSB7CisJc3RydWN0IGxpc3RfaGVhZCBmbF9lbnRyeTsKKwlzdHJ1Y3QgbGlzdF9oZWFkIG1sX2VudHJ5OworfTsKKworCisvKioKKyAqIE1hcHBpbmdzIGxpc3QKKyAqLworc3RydWN0IGRybV9tYXBfbGlzdCB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwkJLyoqPCBsaXN0IGhlYWQgKi8KKwlzdHJ1Y3QgZHJtX2hhc2hfaXRlbSBoYXNoOworCXN0cnVjdCBkcm1fbWFwICptYXA7CQkJLyoqPCBtYXBwaW5nICovCisJdWludDY0X3QgdXNlcl90b2tlbjsKK307CisKK3R5cGVkZWYgc3RydWN0IGRybV9tYXAgZHJtX2xvY2FsX21hcF90OworCisvKioKKyAqIENvbnRleHQgaGFuZGxlIGxpc3QKKyAqLworc3RydWN0IGRybV9jdHhfbGlzdCB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwkJLyoqPCBsaXN0IGhlYWQgKi8KKwlkcm1fY29udGV4dF90IGhhbmRsZTsJCS8qKjwgY29udGV4dCBoYW5kbGUgKi8KKwlzdHJ1Y3QgZHJtX2ZpbGUgKnRhZzsJCS8qKjwgYXNzb2NpYXRlZCBmZCBwcml2YXRlIGRhdGEgKi8KK307CisKK3N0cnVjdCBkcm1fdmJsX3NpZyB7CisJc3RydWN0IGxpc3RfaGVhZCBoZWFkOworCXVuc2lnbmVkIGludCBzZXF1ZW5jZTsKKwlzdHJ1Y3Qgc2lnaW5mbyBpbmZvOworCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKK307CisKKy8qIGxvY2F0aW9uIG9mIEdBUlQgdGFibGUgKi8KKyNkZWZpbmUgRFJNX0FUSV9HQVJUX01BSU4gMQorI2RlZmluZSBEUk1fQVRJX0dBUlRfRkIgICAyCisKKyNkZWZpbmUgRFJNX0FUSV9HQVJUX1BDSSAxCisjZGVmaW5lIERSTV9BVElfR0FSVF9QQ0lFIDIKKyNkZWZpbmUgRFJNX0FUSV9HQVJUX0lHUCAzCisKK3N0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyB7CisJaW50IGdhcnRfdGFibGVfbG9jYXRpb247CisJaW50IGdhcnRfcmVnX2lmOworCXZvaWQgKmFkZHI7CisJZG1hX2FkZHJfdCBidXNfYWRkcjsKKwlkbWFfYWRkcl90IHRhYmxlX21hc2s7CisJc3RydWN0IGRybV9kbWFfaGFuZGxlICp0YWJsZV9oYW5kbGU7CisJZHJtX2xvY2FsX21hcF90IG1hcHBpbmc7CisJaW50IHRhYmxlX3NpemU7Cit9OworCisvKioKKyAqIERSTSBkcml2ZXIgc3RydWN0dXJlLiBUaGlzIHN0cnVjdHVyZSByZXByZXNlbnQgdGhlIGNvbW1vbiBjb2RlIGZvcgorICogYSBmYW1pbHkgb2YgY2FyZHMuIFRoZXJlIHdpbGwgb25lIGRybV9kZXZpY2UgZm9yIGVhY2ggY2FyZCBwcmVzZW50CisgKiBpbiB0aGlzIGZhbWlseQorICovCitzdHJ1Y3QgZHJtX2RyaXZlciB7CisJaW50ICgqbG9hZCkgKHN0cnVjdCBkcm1fZGV2aWNlICosIHVuc2lnbmVkIGxvbmcgZmxhZ3MpOworCWludCAoKmZpcnN0b3BlbikgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKm9wZW4pIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7CisJdm9pZCAoKnByZWNsb3NlKSAoc3RydWN0IGRybV9kZXZpY2UgKiwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCXZvaWQgKCpwb3N0Y2xvc2UpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBzdHJ1Y3QgZHJtX2ZpbGUgKik7CisJdm9pZCAoKmxhc3RjbG9zZSkgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKnVubG9hZCkgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKnN1c3BlbmQpIChzdHJ1Y3QgZHJtX2RldmljZSAqLCBwbV9tZXNzYWdlX3Qgc3RhdGUpOworCWludCAoKnJlc3VtZSkgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKmRtYV9pb2N0bCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKwl2b2lkICgqZG1hX3JlYWR5KSAoc3RydWN0IGRybV9kZXZpY2UgKik7CisJaW50ICgqZG1hX3F1aWVzY2VudCkgKHN0cnVjdCBkcm1fZGV2aWNlICopOworCWludCAoKmNvbnRleHRfY3RvcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjb250ZXh0KTsKKwlpbnQgKCpjb250ZXh0X2R0b3IpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY29udGV4dCk7CisJaW50ICgqa2VybmVsX2NvbnRleHRfc3dpdGNoKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IG9sZCwKKwkJCQkgICAgICBpbnQgbmV3KTsKKwl2b2lkICgqa2VybmVsX2NvbnRleHRfc3dpdGNoX3VubG9jaykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCWludCAoKnZibGFua193YWl0KSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CisJaW50ICgqdmJsYW5rX3dhaXQyKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICpzZXF1ZW5jZSk7CisJaW50ICgqZHJpX2xpYnJhcnlfbmFtZSkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNoYXIgKmJ1Zik7CisKKwkvKioKKwkgKiBDYWxsZWQgYnkgXGMgZHJtX2RldmljZV9pc19hZ3AuICBUeXBpY2FsbHkgdXNlZCB0byBkZXRlcm1pbmUgaWYgYQorCSAqIGNhcmQgaXMgcmVhbGx5IGF0dGFjaGVkIHRvIEFHUCBvciBub3QuCisJICoKKwkgKiBccGFyYW0gZGV2ICBEUk0gZGV2aWNlIGhhbmRsZQorCSAqCisJICogXHJldHVybnMKKwkgKiBPbmUgb2YgdGhyZWUgdmFsdWVzIGlzIHJldHVybmVkIGRlcGVuZGluZyBvbiB3aGV0aGVyIG9yIG5vdCB0aGUKKwkgKiBjYXJkIGlzIGFic29sdXRlbHkgXGIgbm90IEFHUCAocmV0dXJuIG9mIDApLCBhYnNvbHV0ZWx5IFxiIGlzIEFHUAorCSAqIChyZXR1cm4gb2YgMSksIG9yIG1heSBvciBtYXkgbm90IGJlIEFHUCAocmV0dXJuIG9mIDIpLgorCSAqLworCWludCAoKmRldmljZV9pc19hZ3ApIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworCS8qIHRoZXNlIGhhdmUgdG8gYmUgZmlsbGVkIGluICovCisKKwlpcnFyZXR1cm5fdCgqaXJxX2hhbmRsZXIpIChEUk1fSVJRX0FSR1MpOworCXZvaWQgKCppcnFfcHJlaW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCXZvaWQgKCppcnFfcG9zdGluc3RhbGwpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwl2b2lkICgqaXJxX3VuaW5zdGFsbCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCXZvaWQgKCpyZWNsYWltX2J1ZmZlcnMpIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKiBmaWxlX3ByaXYpOworCXZvaWQgKCpyZWNsYWltX2J1ZmZlcnNfbG9ja2VkKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCXZvaWQgKCpyZWNsYWltX2J1ZmZlcnNfaWRsZWxvY2tlZCkgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisJdW5zaWduZWQgbG9uZyAoKmdldF9tYXBfb2ZzKSAoc3RydWN0IGRybV9tYXAgKiBtYXApOworCXVuc2lnbmVkIGxvbmcgKCpnZXRfcmVnX29mcykgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCXZvaWQgKCpzZXRfdmVyc2lvbikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgIHN0cnVjdCBkcm1fc2V0X3ZlcnNpb24gKnN2KTsKKworCWludCBtYWpvcjsKKwlpbnQgbWlub3I7CisJaW50IHBhdGNobGV2ZWw7CisJY2hhciAqbmFtZTsKKwljaGFyICpkZXNjOworCWNoYXIgKmRhdGU7CisKKwl1MzIgZHJpdmVyX2ZlYXR1cmVzOworCWludCBkZXZfcHJpdl9zaXplOworCXN0cnVjdCBkcm1faW9jdGxfZGVzYyAqaW9jdGxzOworCWludCBudW1faW9jdGxzOworCXN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZm9wczsKKwlzdHJ1Y3QgcGNpX2RyaXZlciBwY2lfZHJpdmVyOworfTsKKworI2RlZmluZSBEUk1fTUlOT1JfVU5BU1NJR05FRCAwCisjZGVmaW5lIERSTV9NSU5PUl9MRUdBQ1kgMQorCisvKioKKyAqIERSTSBtaW5vciBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudHMgYSBkcm0gbWlub3IgbnVtYmVyLgorICovCitzdHJ1Y3QgZHJtX21pbm9yIHsKKwlpbnQgaW5kZXg7CQkJLyoqPCBNaW5vciBkZXZpY2UgbnVtYmVyICovCisJaW50IHR5cGU7ICAgICAgICAgICAgICAgICAgICAgICAvKio8IENvbnRyb2wgb3IgcmVuZGVyICovCisJZGV2X3QgZGV2aWNlOwkJCS8qKjwgRGV2aWNlIG51bWJlciBmb3IgbWtub2QgKi8KKwlzdHJ1Y3QgZGV2aWNlIGtkZXY7CQkvKio8IExpbnV4IGRldmljZSAqLworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CisJc3RydWN0IHByb2NfZGlyX2VudHJ5ICpkZXZfcm9vdDsgIC8qKjwgcHJvYyBkaXJlY3RvcnkgZW50cnkgKi8KK307CisKKy8qKgorICogRFJNIGRldmljZSBzdHJ1Y3R1cmUuIFRoaXMgc3RydWN0dXJlIHJlcHJlc2VudCBhIGNvbXBsZXRlIGNhcmQgdGhhdAorICogbWF5IGNvbnRhaW4gbXVsdGlwbGUgaGVhZHMuCisgKi8KK3N0cnVjdCBkcm1fZGV2aWNlIHsKKwljaGFyICp1bmlxdWU7CQkJLyoqPCBVbmlxdWUgaWRlbnRpZmllcjogZS5nLiwgYnVzaWQgKi8KKwlpbnQgdW5pcXVlX2xlbjsJCQkvKio8IExlbmd0aCBvZiB1bmlxdWUgZmllbGQgKi8KKwljaGFyICpkZXZuYW1lOwkJCS8qKjwgRm9yIC9wcm9jL2ludGVycnVwdHMgKi8KKwlpbnQgaWZfdmVyc2lvbjsJCQkvKio8IEhpZ2hlc3QgaW50ZXJmYWNlIHZlcnNpb24gc2V0ICovCisKKwlpbnQgYmxvY2tlZDsJCQkvKio8IEJsb2NrZWQgZHVlIHRvIFZDIHN3aXRjaD8gKi8KKworCS8qKiBcbmFtZSBMb2NrcyAqLworCS8qQHsgKi8KKwlzcGlubG9ja190IGNvdW50X2xvY2s7CQkvKio8IEZvciBpbnVzZSwgZHJtX2RldmljZTo6b3Blbl9jb3VudCwgZHJtX2RldmljZTo6YnVmX3VzZSAqLworCXN0cnVjdCBtdXRleCBzdHJ1Y3RfbXV0ZXg7CS8qKjwgRm9yIG90aGVycyAqLworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBVc2FnZSBDb3VudGVycyAqLworCS8qQHsgKi8KKwlpbnQgb3Blbl9jb3VudDsJCQkvKio8IE91dHN0YW5kaW5nIGZpbGVzIG9wZW4gKi8KKwlhdG9taWNfdCBpb2N0bF9jb3VudDsJCS8qKjwgT3V0c3RhbmRpbmcgSU9DVExzIHBlbmRpbmcgKi8KKwlhdG9taWNfdCB2bWFfY291bnQ7CQkvKio8IE91dHN0YW5kaW5nIHZtYSBhcmVhcyBvcGVuICovCisJaW50IGJ1Zl91c2U7CQkJLyoqPCBCdWZmZXJzIGluIHVzZSAtLSBjYW5ub3QgYWxsb2MgKi8KKwlhdG9taWNfdCBidWZfYWxsb2M7CQkvKio8IEJ1ZmZlciBhbGxvY2F0aW9uIGluIHByb2dyZXNzICovCisJLypAfSAqLworCisJLyoqIFxuYW1lIFBlcmZvcm1hbmNlIGNvdW50ZXJzICovCisJLypAeyAqLworCXVuc2lnbmVkIGxvbmcgY291bnRlcnM7CisJZW51bSBkcm1fc3RhdF90eXBlIHR5cGVzWzE1XTsKKwlhdG9taWNfdCBjb3VudHNbMTVdOworCS8qQH0gKi8KKworCS8qKiBcbmFtZSBBdXRoZW50aWNhdGlvbiAqLworCS8qQHsgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGZpbGVsaXN0OworCXN0cnVjdCBkcm1fb3Blbl9oYXNoIG1hZ2ljbGlzdDsJLyoqPCBtYWdpYyBoYXNoIHRhYmxlICovCisJc3RydWN0IGxpc3RfaGVhZCBtYWdpY2ZyZWU7CisJLypAfSAqLworCisJLyoqIFxuYW1lIE1lbW9yeSBtYW5hZ2VtZW50ICovCisJLypAeyAqLworCXN0cnVjdCBsaXN0X2hlYWQgbWFwbGlzdDsJLyoqPCBMaW5rZWQgbGlzdCBvZiByZWdpb25zICovCisJaW50IG1hcF9jb3VudDsJCQkvKio8IE51bWJlciBvZiBtYXBwYWJsZSByZWdpb25zICovCisJc3RydWN0IGRybV9vcGVuX2hhc2ggbWFwX2hhc2g7CS8qKjwgVXNlciB0b2tlbiBoYXNoIHRhYmxlIGZvciBtYXBzICovCisKKwkvKiogXG5hbWUgQ29udGV4dCBoYW5kbGUgbWFuYWdlbWVudCAqLworCS8qQHsgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGN0eGxpc3Q7CS8qKjwgTGlua2VkIGxpc3Qgb2YgY29udGV4dCBoYW5kbGVzICovCisJaW50IGN0eF9jb3VudDsJCQkvKio8IE51bWJlciBvZiBjb250ZXh0IGhhbmRsZXMgKi8KKwlzdHJ1Y3QgbXV0ZXggY3R4bGlzdF9tdXRleDsJLyoqPCBGb3IgY3R4bGlzdCAqLworCisJc3RydWN0IGlkciBjdHhfaWRyOworCisJc3RydWN0IGxpc3RfaGVhZCB2bWFsaXN0OwkvKio8IExpc3Qgb2Ygdm1hcyAoZm9yIGRlYnVnZ2luZykgKi8KKwlzdHJ1Y3QgZHJtX2xvY2tfZGF0YSBsb2NrOwkvKio8IEluZm9ybWF0aW9uIG9uIGhhcmR3YXJlIGxvY2sgKi8KKwkvKkB9ICovCisKKwkvKiogXG5hbWUgRE1BIHF1ZXVlcyAoY29udGV4dHMpICovCisJLypAeyAqLworCWludCBxdWV1ZV9jb3VudDsJCS8qKjwgTnVtYmVyIG9mIGFjdGl2ZSBETUEgcXVldWVzICovCisJaW50IHF1ZXVlX3Jlc2VydmVkOwkJICAvKio8IE51bWJlciBvZiByZXNlcnZlZCBETUEgcXVldWVzICovCisJaW50IHF1ZXVlX3Nsb3RzOwkJLyoqPCBBY3R1YWwgbGVuZ3RoIG9mIHF1ZXVlbGlzdCAqLworCXN0cnVjdCBkcm1fcXVldWUgKipxdWV1ZWxpc3Q7CS8qKjwgVmVjdG9yIG9mIHBvaW50ZXJzIHRvIERNQSBxdWV1ZXMgKi8KKwlzdHJ1Y3QgZHJtX2RldmljZV9kbWEgKmRtYTsJCS8qKjwgT3B0aW9uYWwgcG9pbnRlciBmb3IgRE1BIHN1cHBvcnQgKi8KKwkvKkB9ICovCisKKwkvKiogXG5hbWUgQ29udGV4dCBzdXBwb3J0ICovCisJLypAeyAqLworCWludCBpcnE7CQkJLyoqPCBJbnRlcnJ1cHQgdXNlZCBieSBib2FyZCAqLworCWludCBpcnFfZW5hYmxlZDsJCS8qKjwgVHJ1ZSBpZiBpcnEgaGFuZGxlciBpcyBlbmFibGVkICovCisJX192b2xhdGlsZV9fIGxvbmcgY29udGV4dF9mbGFnOwkvKio8IENvbnRleHQgc3dhcHBpbmcgZmxhZyAqLworCV9fdm9sYXRpbGVfXyBsb25nIGludGVycnVwdF9mbGFnOyAvKio8IEludGVycnVwdGlvbiBoYW5kbGVyIGZsYWcgKi8KKwlfX3ZvbGF0aWxlX18gbG9uZyBkbWFfZmxhZzsJLyoqPCBETUEgZGlzcGF0Y2ggZmxhZyAqLworCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwkvKio8IFRpbWVyIGZvciBkZWxheWluZyBjdHggc3dpdGNoICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgY29udGV4dF93YWl0OwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIG9uIGN0eCBzd2l0Y2ggKi8KKwlpbnQgbGFzdF9jaGVja2VkOwkJLyoqPCBMYXN0IGNvbnRleHQgY2hlY2tlZCBmb3IgRE1BICovCisJaW50IGxhc3RfY29udGV4dDsJCS8qKjwgTGFzdCBjdXJyZW50IGNvbnRleHQgKi8KKwl1bnNpZ25lZCBsb25nIGxhc3Rfc3dpdGNoOwkvKio8IGppZmZpZXMgYXQgbGFzdCBjb250ZXh0IHN3aXRjaCAqLworCS8qQH0gKi8KKworCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOworCS8qKiBcbmFtZSBWQkxBTksgSVJRIHN1cHBvcnQgKi8KKwkvKkB7ICovCisKKwl3YWl0X3F1ZXVlX2hlYWRfdCB2YmxfcXVldWU7CS8qKjwgVkJMQU5LIHdhaXQgcXVldWUgKi8KKwlhdG9taWNfdCB2YmxfcmVjZWl2ZWQ7CisJYXRvbWljX3QgdmJsX3JlY2VpdmVkMjsJCS8qKjwgbnVtYmVyIG9mIHNlY29uZGFyeSBWQkxBTksgaW50ZXJydXB0cyAqLworCXNwaW5sb2NrX3QgdmJsX2xvY2s7CisJc3RydWN0IGxpc3RfaGVhZCB2Ymxfc2lnczsJCS8qKjwgc2lnbmFsIGxpc3QgdG8gc2VuZCBvbiBWQkxBTksgKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIHZibF9zaWdzMjsJLyoqPCBzaWduYWxzIHRvIHNlbmQgb24gc2Vjb25kYXJ5IFZCTEFOSyAqLworCXVuc2lnbmVkIGludCB2YmxfcGVuZGluZzsKKwlzcGlubG9ja190IHRhc2tsZXRfbG9jazsJLyoqPCBGb3IgZHJtX2xvY2tlZF90YXNrbGV0ICovCisJdm9pZCAoKmxvY2tlZF90YXNrbGV0X2Z1bmMpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisJLypAfSAqLworCWN5Y2xlc190IGN0eF9zdGFydDsKKwljeWNsZXNfdCBsY2tfc3RhcnQ7CisKKwlzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqYnVmX2FzeW5jOy8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgZm9yIFNJR0lPICovCisJd2FpdF9xdWV1ZV9oZWFkX3QgYnVmX3JlYWRlcnM7CS8qKjwgUHJvY2Vzc2VzIHdhaXRpbmcgdG8gcmVhZCAqLworCXdhaXRfcXVldWVfaGVhZF90IGJ1Zl93cml0ZXJzOwkvKio8IFByb2Nlc3NlcyB3YWl0aW5nIHRvIGN0eCBzd2l0Y2ggKi8KKworCXN0cnVjdCBkcm1fYWdwX2hlYWQgKmFncDsJLyoqPCBBR1AgZGF0YSAqLworCisJc3RydWN0IHBjaV9kZXYgKnBkZXY7CQkvKio8IFBDSSBkZXZpY2Ugc3RydWN0dXJlICovCisJaW50IHBjaV92ZW5kb3I7CQkJLyoqPCBQQ0kgdmVuZG9yIGlkICovCisJaW50IHBjaV9kZXZpY2U7CQkJLyoqPCBQQ0kgZGV2aWNlIGlkICovCisjaWZkZWYgX19hbHBoYV9fCisJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlOworI2VuZGlmCisJc3RydWN0IGRybV9zZ19tZW0gKnNnOwkvKio8IFNjYXR0ZXIgZ2F0aGVyIG1lbW9yeSAqLworCXZvaWQgKmRldl9wcml2YXRlOwkJLyoqPCBkZXZpY2UgcHJpdmF0ZSBkYXRhICovCisJc3RydWN0IGRybV9zaWdkYXRhIHNpZ2RhdGE7CSAgIC8qKjwgRm9yIGJsb2NrX2FsbF9zaWduYWxzICovCisJc2lnc2V0X3Qgc2lnbWFzazsKKworCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXI7CisJZHJtX2xvY2FsX21hcF90ICphZ3BfYnVmZmVyX21hcDsKKwl1bnNpZ25lZCBpbnQgYWdwX2J1ZmZlcl90b2tlbjsKKwlzdHJ1Y3QgZHJtX21pbm9yICpwcmltYXJ5OwkJLyoqPCByZW5kZXIgdHlwZSBwcmltYXJ5IHNjcmVlbiBoZWFkICovCisKKwkvKiogXG5hbWUgRHJhd2FibGUgaW5mb3JtYXRpb24gKi8KKwkvKkB7ICovCisJc3BpbmxvY2tfdCBkcndfbG9jazsKKwlzdHJ1Y3QgaWRyIGRyd19pZHI7CisJLypAfSAqLworfTsKKworc3RhdGljIF9faW5saW5lX18gaW50IGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJICAgICBpbnQgZmVhdHVyZSkKK3sKKwlyZXR1cm4gKChkZXYtPmRyaXZlci0+ZHJpdmVyX2ZlYXR1cmVzICYgZmVhdHVyZSkgPyAxIDogMCk7Cit9CisKKyNpZmRlZiBfX2FscGhhX18KKyNkZWZpbmUgZHJtX2dldF9wY2lfZG9tYWluKGRldikgZGV2LT5ob3NlLT5pbmRleAorI2Vsc2UKKyNkZWZpbmUgZHJtX2dldF9wY2lfZG9tYWluKGRldikgMAorI2VuZGlmCisKKyNpZiBfX09TX0hBU19BR1AKK3N0YXRpYyBpbmxpbmUgaW50IGRybV9jb3JlX2hhc19BR1Aoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9VU0VfQUdQKTsKK30KKyNlbHNlCisjZGVmaW5lIGRybV9jb3JlX2hhc19BR1AoZGV2KSAoMCkKKyNlbmRpZgorCisjaWYgX19PU19IQVNfTVRSUgorc3RhdGljIGlubGluZSBpbnQgZHJtX2NvcmVfaGFzX01UUlIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlyZXR1cm4gZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9VU0VfTVRSUik7Cit9CisKKyNkZWZpbmUgRFJNX01UUlJfV0MJCU1UUlJfVFlQRV9XUkNPTUIKKworc3RhdGljIGlubGluZSBpbnQgZHJtX210cnJfYWRkKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiBtdHJyX2FkZChvZmZzZXQsIHNpemUsIGZsYWdzLCAxKTsKK30KKworc3RhdGljIGlubGluZSBpbnQgZHJtX210cnJfZGVsKGludCBoYW5kbGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0LAorCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiBtdHJyX2RlbChoYW5kbGUsIG9mZnNldCwgc2l6ZSk7Cit9CisKKyNlbHNlCisjZGVmaW5lIGRybV9jb3JlX2hhc19NVFJSKGRldikgKDApCisKKyNkZWZpbmUgRFJNX01UUlJfV0MJCTAKKworc3RhdGljIGlubGluZSBpbnQgZHJtX210cnJfYWRkKHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBkcm1fbXRycl9kZWwoaW50IGhhbmRsZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKiBcbmFtZSBJbnRlcm5hbCBmdW5jdGlvbiBkZWZpbml0aW9ucyAqLworLypAeyovCisKKwkJCQkvKiBEcml2ZXIgc3VwcG9ydCAoZHJtX2Rydi5oKSAqLworZXh0ZXJuIGludCBkcm1faW5pdChzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyKTsKK2V4dGVybiB2b2lkIGRybV9leGl0KHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIpOworZXh0ZXJuIGludCBkcm1faW9jdGwoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHAsCisJCSAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworZXh0ZXJuIGxvbmcgZHJtX2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwKKwkJCSAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOworZXh0ZXJuIGludCBkcm1fbGFzdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisJCQkJLyogRGV2aWNlIHN1cHBvcnQgKGRybV9mb3BzLmgpICovCitleHRlcm4gaW50IGRybV9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKTsKK2V4dGVybiBpbnQgZHJtX3N0dWJfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitleHRlcm4gaW50IGRybV9mYXN5bmMoaW50IGZkLCBzdHJ1Y3QgZmlsZSAqZmlscCwgaW50IG9uKTsKK2V4dGVybiBpbnQgZHJtX3JlbGVhc2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOworCisJCQkJLyogTWFwcGluZyBzdXBwb3J0IChkcm1fdm0uaCkgKi8KK2V4dGVybiBpbnQgZHJtX21tYXAoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRybV9jb3JlX2dldF9tYXBfb2ZzKHN0cnVjdCBkcm1fbWFwICogbWFwKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRybV9jb3JlX2dldF9yZWdfb2ZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHVuc2lnbmVkIGludCBkcm1fcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHBvbGxfdGFibGVfc3RydWN0ICp3YWl0KTsKKworCQkJCS8qIE1lbW9yeSBtYW5hZ2VtZW50IHN1cHBvcnQgKGRybV9tZW1vcnkuaCkgKi8KKyNpbmNsdWRlICJkcm1fbWVtb3J5LmgiCitleHRlcm4gdm9pZCBkcm1fbWVtX2luaXQodm9pZCk7CitleHRlcm4gaW50IGRybV9tZW1faW5mbyhjaGFyICpidWYsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LAorCQkJaW50IHJlcXVlc3QsIGludCAqZW9mLCB2b2lkICpkYXRhKTsKK2V4dGVybiB2b2lkICpkcm1fcmVhbGxvYyh2b2lkICpvbGRwdCwgc2l6ZV90IG9sZHNpemUsIHNpemVfdCBzaXplLCBpbnQgYXJlYSk7CisKK2V4dGVybiBEUk1fQUdQX01FTSAqZHJtX2FsbG9jX2FncChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGFnZXMsIHUzMiB0eXBlKTsKK2V4dGVybiBpbnQgZHJtX2ZyZWVfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlLCBpbnQgcGFnZXMpOworZXh0ZXJuIGludCBkcm1fYmluZF9hZ3AoRFJNX0FHUF9NRU0gKiBoYW5kbGUsIHVuc2lnbmVkIGludCBzdGFydCk7CitleHRlcm4gaW50IGRybV91bmJpbmRfYWdwKERSTV9BR1BfTUVNICogaGFuZGxlKTsKKworCQkJCS8qIE1pc2MuIElPQ1RMIHN1cHBvcnQgKGRybV9pb2N0bC5oKSAqLworZXh0ZXJuIGludCBkcm1faXJxX2J5X2J1c2lkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0dW5pcXVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fc2V0dW5pcXVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fZ2V0bWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldGNsaWVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldHN0YXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9zZXR2ZXJzaW9uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX25vb3Aoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworCQkJCS8qIENvbnRleHQgSU9DVEwgc3VwcG9ydCAoZHJtX2NvbnRleHQuaCkgKi8KK2V4dGVybiBpbnQgZHJtX3Jlc2N0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZGRjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbW9kY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9zd2l0Y2hjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9uZXdjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fcm1jdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKK2V4dGVybiBpbnQgZHJtX2N0eGJpdG1hcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2N0eGJpdG1hcF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2N0eGJpdG1hcF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjdHhfaGFuZGxlKTsKKworZXh0ZXJuIGludCBkcm1fc2V0c2FyZWFjdHgoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2dldHNhcmVhY3R4KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKwkJCQkvKiBEcmF3YWJsZSBJT0NUTCBzdXBwb3J0IChkcm1fZHJhd2FibGUuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2FkZGRyYXcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX3JtZHJhdyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV91cGRhdGVfZHJhd2FibGVfaW5mbyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gc3RydWN0IGRybV9kcmF3YWJsZV9pbmZvICpkcm1fZ2V0X2RyYXdhYmxlX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkJCSAgZHJtX2RyYXdhYmxlX3QgaWQpOworZXh0ZXJuIHZvaWQgZHJtX2RyYXdhYmxlX2ZyZWVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCisJCQkJLyogQXV0aGVudGljYXRpb24gSU9DVEwgc3VwcG9ydCAoZHJtX2F1dGguaCkgKi8KK2V4dGVybiBpbnQgZHJtX2dldG1hZ2ljKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hdXRobWFnaWMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CisKKwkJCQkvKiBMb2NraW5nIElPQ1RMIHN1cHBvcnQgKGRybV9sb2NrLmgpICovCitleHRlcm4gaW50IGRybV9sb2NrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV91bmxvY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbG9ja190YWtlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEsIHVuc2lnbmVkIGludCBjb250ZXh0KTsKK2V4dGVybiBpbnQgZHJtX2xvY2tfZnJlZShzdHJ1Y3QgZHJtX2xvY2tfZGF0YSAqbG9ja19kYXRhLCB1bnNpZ25lZCBpbnQgY29udGV4dCk7CitleHRlcm4gdm9pZCBkcm1faWRsZWxvY2tfdGFrZShzdHJ1Y3QgZHJtX2xvY2tfZGF0YSAqbG9ja19kYXRhKTsKK2V4dGVybiB2b2lkIGRybV9pZGxlbG9ja19yZWxlYXNlKHN0cnVjdCBkcm1fbG9ja19kYXRhICpsb2NrX2RhdGEpOworCisvKgorICogVGhlc2UgYXJlIGV4cG9ydGVkIHRvIGRyaXZlcnMgc28gdGhhdCB0aGV5IGNhbiBpbXBsZW1lbnQgZmVuY2luZyB1c2luZworICogRE1BIHF1aXNjZW50ICsgaWRsZS4gRE1BIHF1aWVzY2VudCB1c3VhbGx5IHJlcXVpcmVzIHRoZSBoYXJkd2FyZSBsb2NrLgorICovCisKK2V4dGVybiBpbnQgZHJtX2lfaGF2ZV9od19sb2NrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKKworCQkJCS8qIEJ1ZmZlciBtYW5hZ2VtZW50IHN1cHBvcnQgKGRybV9idWZzLmgpICovCitleHRlcm4gaW50IGRybV9hZGRidWZzX2FncChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2J1Zl9kZXNjICogcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZGRidWZzX3BjaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2J1Zl9kZXNjICogcmVxdWVzdCk7CitleHRlcm4gaW50IGRybV9hZGRtYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG9mZnNldCwKKwkJICAgICAgdW5zaWduZWQgaW50IHNpemUsIGVudW0gZHJtX21hcF90eXBlIHR5cGUsCisJCSAgICAgIGVudW0gZHJtX21hcF9mbGFncyBmbGFncywgZHJtX2xvY2FsX21hcF90ICoqIG1hcF9wdHIpOworZXh0ZXJuIGludCBkcm1fYWRkbWFwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fcm1tYXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2xvY2FsX21hcF90ICptYXApOworZXh0ZXJuIGludCBkcm1fcm1tYXBfbG9ja2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGRybV9sb2NhbF9tYXBfdCAqbWFwKTsKK2V4dGVybiBpbnQgZHJtX3JtbWFwX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZGRidWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9pbmZvYnVmcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fbWFya2J1ZnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2ZyZWVidWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9tYXBidWZzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9vcmRlcih1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZHJtX2dldF9yZXNvdXJjZV9zdGFydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCQkgICAgdW5zaWduZWQgaW50IHJlc291cmNlKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRybV9nZXRfcmVzb3VyY2VfbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCSAgdW5zaWduZWQgaW50IHJlc291cmNlKTsKKworCQkJCS8qIERNQSBzdXBwb3J0IChkcm1fZG1hLmgpICovCitleHRlcm4gaW50IGRybV9kbWFfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fZG1hX3Rha2Vkb3duKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2ZyZWVfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYnVmICogYnVmKTsKK2V4dGVybiB2b2lkIGRybV9jb3JlX3JlY2xhaW1fYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxwKTsKKworCQkJCS8qIElSUSBzdXBwb3J0IChkcm1faXJxLmgpICovCitleHRlcm4gaW50IGRybV9jb250cm9sKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaXJxcmV0dXJuX3QgZHJtX2lycV9oYW5kbGVyKERSTV9JUlFfQVJHUyk7CitleHRlcm4gaW50IGRybV9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfcHJlaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiB2b2lkIGRybV9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2RyaXZlcl9pcnFfdW5pbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCitleHRlcm4gaW50IGRybV93YWl0X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fdmJsYW5rX3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50ICp2Ymxfc2VxKTsKK2V4dGVybiB2b2lkIGRybV92Ymxfc2VuZF9zaWduYWxzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2xvY2tlZF90YXNrbGV0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQoKmZ1bmMpKHN0cnVjdCBkcm1fZGV2aWNlKikpOworCisJCQkJLyogQUdQL0dBUlQgc3VwcG9ydCAoZHJtX2FncHN1cHBvcnQuaCkgKi8KK2V4dGVybiBzdHJ1Y3QgZHJtX2FncF9oZWFkICpkcm1fYWdwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gaW50IGRybV9hZ3BfYWNxdWlyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9hY3F1aXJlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9yZWxlYXNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCBkcm1fYWdwX3JlbGVhc2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2VuYWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9tb2RlIG1vZGUpOworZXh0ZXJuIGludCBkcm1fYWdwX2VuYWJsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9pbmZvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2luZm8gKmluZm8pOworZXh0ZXJuIGludCBkcm1fYWdwX2luZm9faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2V4dGVybiBpbnQgZHJtX2FncF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9idWZmZXIgKnJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWdwX2FsbG9jX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fYWdwX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3BfYnVmZmVyICpyZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FncF9mcmVlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fYWdwX3VuYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gaW50IGRybV9hZ3BfYmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nICpyZXF1ZXN0KTsKK2V4dGVybiBpbnQgZHJtX2FncF9iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCisJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitleHRlcm4gRFJNX0FHUF9NRU0gKmRybV9hZ3BfYWxsb2NhdGVfbWVtb3J5KHN0cnVjdCBhZ3BfYnJpZGdlX2RhdGEgKmJyaWRnZSwgc2l6ZV90IHBhZ2VzLCB1MzIgdHlwZSk7CitleHRlcm4gaW50IGRybV9hZ3BfZnJlZV9tZW1vcnkoRFJNX0FHUF9NRU0gKiBoYW5kbGUpOworZXh0ZXJuIGludCBkcm1fYWdwX2JpbmRfbWVtb3J5KERSTV9BR1BfTUVNICogaGFuZGxlLCBvZmZfdCBzdGFydCk7CitleHRlcm4gaW50IGRybV9hZ3BfdW5iaW5kX21lbW9yeShEUk1fQUdQX01FTSAqIGhhbmRsZSk7CisKKwkJCQkvKiBTdHViIHN1cHBvcnQgKGRybV9zdHViLmgpICovCitleHRlcm4gaW50IGRybV9nZXRfZGV2KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50LAorCQkgICAgICAgc3RydWN0IGRybV9kcml2ZXIgKmRyaXZlcik7CitleHRlcm4gaW50IGRybV9wdXRfZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIGludCBkcm1fcHV0X21pbm9yKHN0cnVjdCBkcm1fbWlub3IgKiptaW5vcik7CitleHRlcm4gdW5zaWduZWQgaW50IGRybV9kZWJ1ZzsKKworZXh0ZXJuIHN0cnVjdCBjbGFzcyAqZHJtX2NsYXNzOworZXh0ZXJuIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqZHJtX3Byb2Nfcm9vdDsKKworZXh0ZXJuIHN0cnVjdCBpZHIgZHJtX21pbm9yc19pZHI7CisKK2V4dGVybiBkcm1fbG9jYWxfbWFwX3QgKmRybV9nZXRzYXJlYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKworCQkJCS8qIFByb2Mgc3VwcG9ydCAoZHJtX3Byb2MuaCkgKi8KK2V4dGVybiBpbnQgZHJtX3Byb2NfaW5pdChzdHJ1Y3QgZHJtX21pbm9yICptaW5vciwgaW50IG1pbm9yX2lkLAorCQkJIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcm9vdCk7CitleHRlcm4gaW50IGRybV9wcm9jX2NsZWFudXAoc3RydWN0IGRybV9taW5vciAqbWlub3IsIHN0cnVjdCBwcm9jX2Rpcl9lbnRyeSAqcm9vdCk7CisKKwkJCQkvKiBTY2F0dGVyIEdhdGhlciBTdXBwb3J0IChkcm1fc2NhdHRlci5oKSAqLworZXh0ZXJuIHZvaWQgZHJtX3NnX2NsZWFudXAoc3RydWN0IGRybV9zZ19tZW0gKiBlbnRyeSk7CitleHRlcm4gaW50IGRybV9zZ19hbGxvY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworZXh0ZXJuIGludCBkcm1fc2dfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9zY2F0dGVyX2dhdGhlciAqIHJlcXVlc3QpOworZXh0ZXJuIGludCBkcm1fc2dfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCisJCQkgICAgICAgLyogQVRJIFBDSUdBUlQgc3VwcG9ydCAoYXRpX3BjaWdhcnQuaCkgKi8KK2V4dGVybiBpbnQgZHJtX2F0aV9wY2lnYXJ0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQlzdHJ1Y3QgZHJtX2F0aV9wY2lnYXJ0X2luZm8gKiBnYXJ0X2luZm8pOworZXh0ZXJuIGludCBkcm1fYXRpX3BjaWdhcnRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBkcm1fYXRpX3BjaWdhcnRfaW5mbyAqIGdhcnRfaW5mbyk7CisKK2V4dGVybiBkcm1fZG1hX2hhbmRsZV90ICpkcm1fcGNpX2FsbG9jKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAorCQkJCSAgICAgICBzaXplX3QgYWxpZ24sIGRtYV9hZGRyX3QgbWF4YWRkcik7CitleHRlcm4gdm9pZCBfX2RybV9wY2lfZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBkcm1fZG1hX2hhbmRsZV90ICogZG1haCk7CitleHRlcm4gdm9pZCBkcm1fcGNpX2ZyZWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZHJtX2RtYV9oYW5kbGVfdCAqIGRtYWgpOworCisJCQkgICAgICAgLyogc3lzZnMgc3VwcG9ydCAoZHJtX3N5c2ZzLmMpICovCitzdHJ1Y3QgZHJtX3N5c2ZzX2NsYXNzOworZXh0ZXJuIHN0cnVjdCBjbGFzcyAqZHJtX3N5c2ZzX2NyZWF0ZShzdHJ1Y3QgbW9kdWxlICpvd25lciwgY2hhciAqbmFtZSk7CitleHRlcm4gdm9pZCBkcm1fc3lzZnNfZGVzdHJveSh2b2lkKTsKK2V4dGVybiBpbnQgZHJtX3N5c2ZzX2RldmljZV9hZGQoc3RydWN0IGRybV9taW5vciAqbWlub3IpOworZXh0ZXJuIHZvaWQgZHJtX3N5c2ZzX2RldmljZV9yZW1vdmUoc3RydWN0IGRybV9taW5vciAqbWlub3IpOworCisvKgorICogQmFzaWMgbWVtb3J5IG1hbmFnZXIgc3VwcG9ydCAoZHJtX21tLmMpCisgKi8KK2V4dGVybiBzdHJ1Y3QgZHJtX21tX25vZGUgKmRybV9tbV9nZXRfYmxvY2soc3RydWN0IGRybV9tbV9ub2RlICogcGFyZW50LAorCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJICAgICAgIHVuc2lnbmVkIGFsaWdubWVudCk7CitleHRlcm4gdm9pZCBkcm1fbW1fcHV0X2Jsb2NrKHN0cnVjdCBkcm1fbW1fbm9kZSAqIGN1cik7CitleHRlcm4gc3RydWN0IGRybV9tbV9ub2RlICpkcm1fbW1fc2VhcmNoX2ZyZWUoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSwKKwkJCQkJIHVuc2lnbmVkIGFsaWdubWVudCwgaW50IGJlc3RfbWF0Y2gpOworZXh0ZXJuIGludCBkcm1fbW1faW5pdChzdHJ1Y3QgZHJtX21tICptbSwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBzaXplKTsKK2V4dGVybiB2b2lkIGRybV9tbV90YWtlZG93bihzdHJ1Y3QgZHJtX21tICptbSk7CitleHRlcm4gaW50IGRybV9tbV9jbGVhbihzdHJ1Y3QgZHJtX21tICptbSk7CitleHRlcm4gdW5zaWduZWQgbG9uZyBkcm1fbW1fdGFpbF9zcGFjZShzdHJ1Y3QgZHJtX21tICptbSk7CitleHRlcm4gaW50IGRybV9tbV9yZW1vdmVfc3BhY2VfZnJvbV90YWlsKHN0cnVjdCBkcm1fbW0gKm1tLCB1bnNpZ25lZCBsb25nIHNpemUpOworZXh0ZXJuIGludCBkcm1fbW1fYWRkX3NwYWNlX3RvX3RhaWwoc3RydWN0IGRybV9tbSAqbW0sIHVuc2lnbmVkIGxvbmcgc2l6ZSk7CisKK2V4dGVybiB2b2lkIGRybV9jb3JlX2lvcmVtYXAoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitleHRlcm4gdm9pZCBkcm1fY29yZV9pb3JlbWFwX3djKHN0cnVjdCBkcm1fbWFwICptYXAsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworZXh0ZXJuIHZvaWQgZHJtX2NvcmVfaW9yZW1hcGZyZWUoc3RydWN0IGRybV9tYXAgKm1hcCwgc3RydWN0IGRybV9kZXZpY2UgKmRldik7CisKK3N0YXRpYyBfX2lubGluZV9fIHN0cnVjdCBkcm1fbWFwICpkcm1fY29yZV9maW5kbWFwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkJCQkgICB1bnNpZ25lZCBpbnQgdG9rZW4pCit7CisJc3RydWN0IGRybV9tYXBfbGlzdCAqX2VudHJ5OworCWxpc3RfZm9yX2VhY2hfZW50cnkoX2VudHJ5LCAmZGV2LT5tYXBsaXN0LCBoZWFkKQorCSAgICBpZiAoX2VudHJ5LT51c2VyX3Rva2VuID09IHRva2VuKQorCQlyZXR1cm4gX2VudHJ5LT5tYXA7CisJcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBfX2lubGluZV9fIGludCBkcm1fZGV2aWNlX2lzX2FncChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCWlmIChkZXYtPmRyaXZlci0+ZGV2aWNlX2lzX2FncCAhPSBOVUxMKSB7CisJCWludCBlcnIgPSAoKmRldi0+ZHJpdmVyLT5kZXZpY2VfaXNfYWdwKSAoZGV2KTsKKworCQlpZiAoZXJyICE9IDIpIHsKKwkJCXJldHVybiBlcnI7CisJCX0KKwl9CisKKwlyZXR1cm4gcGNpX2ZpbmRfY2FwYWJpbGl0eShkZXYtPnBkZXYsIFBDSV9DQVBfSURfQUdQKTsKK30KKworc3RhdGljIF9faW5saW5lX18gaW50IGRybV9kZXZpY2VfaXNfcGNpZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXJldHVybiBwY2lfZmluZF9jYXBhYmlsaXR5KGRldi0+cGRldiwgUENJX0NBUF9JRF9FWFApOworfQorCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRybV9jb3JlX2Ryb3BtYXAoc3RydWN0IGRybV9tYXAgKm1hcCkKK3sKK30KKworI2lmbmRlZiBERUJVR19NRU1PUlkKKy8qKiBXcmFwcGVyIGFyb3VuZCBrbWFsbG9jKCkgKi8KK3N0YXRpYyBfX2lubGluZV9fIHZvaWQgKmRybV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCit7CisJcmV0dXJuIGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7Cit9CisKKy8qKiBXcmFwcGVyIGFyb3VuZCBrZnJlZSgpICovCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGRybV9mcmVlKHZvaWQgKnB0LCBzaXplX3Qgc2l6ZSwgaW50IGFyZWEpCit7CisJa2ZyZWUocHQpOworfQorCisvKiogV3JhcHBlciBhcm91bmQga2NhbGxvYygpICovCitzdGF0aWMgX19pbmxpbmVfXyB2b2lkICpkcm1fY2FsbG9jKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUsIGludCBhcmVhKQoreworCXJldHVybiBrY2FsbG9jKG5tZW1iLCBzaXplLCBHRlBfS0VSTkVMKTsKK30KKyNlbHNlCitleHRlcm4gdm9pZCAqZHJtX2FsbG9jKHNpemVfdCBzaXplLCBpbnQgYXJlYSk7CitleHRlcm4gdm9pZCBkcm1fZnJlZSh2b2lkICpwdCwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKK2V4dGVybiB2b2lkICpkcm1fY2FsbG9jKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUsIGludCBhcmVhKTsKKyNlbmRpZgorCisvKkB9Ki8KKworI2VuZGlmCQkJCS8qIF9fS0VSTkVMX18gKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fY29yZS5oIGIvaW5jbHVkZS9kcm0vZHJtX2NvcmUuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fY29yZS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fY29yZS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9oYXNodGFiLmggYi9pbmNsdWRlL2RybS9kcm1faGFzaHRhYi5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9oYXNodGFiLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9oYXNodGFiLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX21lbW9yeS5oIGIvaW5jbHVkZS9kcm0vZHJtX21lbW9yeS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnkuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX21lbW9yeS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2RybV9tZW1vcnlfZGVidWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tZW1vcnlfZGVidWcuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fbWVtb3J5X2RlYnVnLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2RybV9tZW1vcnlfZGVidWcuaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9kcm1fb3NfbGludXguaCBiL2luY2x1ZGUvZHJtL2RybV9vc19saW51eC5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2RybV9vc19saW51eC5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9kcm1fb3NfbGludXguaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BjaWlkcy5oIGIvaW5jbHVkZS9kcm0vZHJtX3BjaWlkcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzNWJkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm1fcGNpaWRzLmgKQEAgLTAsMCArMSw0MTUgQEAKKy8qCisgICBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgZnJvbSB0aGUgZHJtX3BjaWlkcy50eHQgaW4gdGhlIERSTSBDVlMKKyAgIFBsZWFzZSBjb250YWN0IGRyaS1kZXZlbEBsaXN0cy5zZi5uZXQgdG8gYWRkIG5ldyBjYXJkcyB0byB0aGlzIGxpc3QKKyovCisjZGVmaW5lIHJhZGVvbl9QQ0lfSURTIFwKKwl7MHgxMDAyLCAweDMxNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4MzE1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHgzMTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDNFNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHgzRTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NDEzNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzEwMHxSQURFT05fSVNfSUdQfSwgXAorCXsweDEwMDIsIDB4NDEzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfSwgXAorCXsweDEwMDIsIDB4NDE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NDE0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NDE0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NDE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NDE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NDE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NDE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NDE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NDE1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKKwl7MHgxMDAyLCAweDQxNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCisJezB4MTAwMiwgMHg0MTUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAorCXsweDEwMDIsIDB4NDE1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKKwl7MHgxMDAyLCAweDQxNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB9LCBcCisJezB4MTAwMiwgMHg0MTU1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfSwgXAorCXsweDEwMDIsIDB4NDE1NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MH0sIFwKKwl7MHgxMDAyLCAweDQyMzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMyMDB8UkFERU9OX0lTX0lHUH0sIFwKKwl7MHgxMDAyLCAweDQyNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKKwl7MHgxMDAyLCAweDQyNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKKwl7MHgxMDAyLCAweDQzMzYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlMxMDB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0MzM3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMjAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NDQzNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzIwMHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDQ5NjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB9LCBcCisJezB4MTAwMiwgMHg0OTY3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfSwgXAorCXsweDEwMDIsIDB4NEE0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NEE0RSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRBNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRBNTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRBNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRCNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRCNEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRCNEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRCNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDRDNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEM1OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjIwMHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0QzU5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRDNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEM2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0QzY2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRDNjcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEU0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NEU0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NEU0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NEU0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzAwfSwgXAorCXsweDEwMDIsIDB4NEU0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NEU0OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NEU0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NEU0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMzUwfSwgXAorCXsweDEwMDIsIDB4NEU1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0RTUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRFNTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NEU1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM1MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg0RTU0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzUwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDRFNTYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzNTB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NTE0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKKwl7MHgxMDAyLCAweDUxNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjEwMHxSQURFT05fU0lOR0xFX0NSVEN9LCBcCisJezB4MTAwMiwgMHg1MTQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1IxMDB8UkFERU9OX1NJTkdMRV9DUlRDfSwgXAorCXsweDEwMDIsIDB4NTE0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SMTAwfFJBREVPTl9TSU5HTEVfQ1JUQ30sIFwKKwl7MHgxMDAyLCAweDUxNDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKKwl7MHgxMDAyLCAweDUxNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKKwl7MHgxMDAyLCAweDUxNEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjIwMH0sIFwKKwl7MHgxMDAyLCAweDUxNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyMDB9LCBcCisJezB4MTAwMiwgMHg1MTU4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjAwfSwgXAorCXsweDEwMDIsIDB4NTE1OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKKwl7MHgxMDAyLCAweDUxNUEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYxMDB9LCBcCisJezB4MTAwMiwgMHg1MTVFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMTAwfSwgXAorCXsweDEwMDIsIDB4NTQ2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fSVNfTU9CSUxJVFl9LCBcCisJezB4MTAwMiwgMHg1NDYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDU0NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NTY1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU1NTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU2NEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTY0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1NjRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDU2NTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NTY1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ODM0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B9LCBcCisJezB4MTAwMiwgMHg1ODM1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NTk1NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQ4MHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKKwl7MHgxMDAyLCAweDU5NTUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0ODB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezB4MTAwMiwgMHg1OTc0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDgwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXsweDEwMDIsIDB4NTk3NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzQ4MHxSQURFT05fSVNfSUdQfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fSVNfSUdQR0FSVH0sIFwKKwl7MHgxMDAyLCAweDU5NjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCisJezB4MTAwMiwgMHg1OTYxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAorCXsweDEwMDIsIDB4NTk2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjI4MH0sIFwKKwl7MHgxMDAyLCAweDU5NjQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB9LCBcCisJezB4MTAwMiwgMHg1OTY1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfSwgXAorCXsweDEwMDIsIDB4NTk2OSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjEwMH0sIFwKKwl7MHgxMDAyLCAweDVhNjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlM0ODB8UkFERU9OX0lTX0lHUHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX0lTX0lHUEdBUlR9LCBcCisJezB4MTAwMiwgMHg1YTYyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTNDgwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXsweDEwMDIsIDB4NWI2MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDViNjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1YjYzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMzgwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWI2NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjM4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDViNjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYzODB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1YzYxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWMjgwfFJBREVPTl9JU19NT0JJTElUWX0sIFwKKwl7MHgxMDAyLCAweDVjNjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlYyODB8UkFERU9OX0lTX01PQklMSVRZfSwgXAorCXsweDEwMDIsIDB4NWQ0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVkNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjQyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZDRhLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I0MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ0ZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ0ZSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ0ZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWQ1NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNDIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWU0OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVlNGEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZTRiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NWU0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjQxMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDVlNGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY0MTB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg1ZTRmLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNDEwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTAzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1I1MjB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwNCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzEwNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SNTIwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxMEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjUyMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTQxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNDcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0QiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTRDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTRFLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE0RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxNUUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTVGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxODEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTgzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTg3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MThBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE4QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MThELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxOEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MTV8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTkzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE5NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MTlCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzE5RiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUMxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUM0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxQzcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUNELCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFDRSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxRDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MUQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcxRDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1MzB8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFENiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MURBLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTMwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzFERSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUzMHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzIxMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjUxNXxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjExLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTE1fFJBREVPTl9JU19NT0JJTElUWXxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyNEYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyODAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjgxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyODQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUjU4MHxSQURFT05fSVNfTU9CSUxJVFl8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3Mjg3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4OCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyODksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NzB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjhCLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTcwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI4QywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU3MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyOTAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3MjkxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JWNTYwfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzI5MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SVjU2MHxSQURFT05fTkVXX01FTU1BUH0sIFwKKwl7MHgxMDAyLCAweDcyOTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIENISVBfUlY1NjB8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3ODM0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B8UkFERU9OX05FV19NRU1NQVB9LCBcCisJezB4MTAwMiwgMHg3ODM1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBDSElQX1JTMzAwfFJBREVPTl9JU19JR1B8UkFERU9OX0lTX01PQklMSVRZfFJBREVPTl9ORVdfTUVNTUFQfSwgXAorCXsweDEwMDIsIDB4NzkxZSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzY5MHxSQURFT05fSVNfSUdQfFJBREVPTl9ORVdfTUVNTUFQfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXsweDEwMDIsIDB4NzkxZiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgQ0hJUF9SUzY5MHxSQURFT05fSVNfSUdQfFJBREVPTl9ORVdfTUVNTUFQfFJBREVPTl9JU19JR1BHQVJUfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIHIxMjhfUENJX0lEUyBcCisJezB4MTAwMiwgMHg0YzQ1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRkNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0ZDRjLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQ2LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0QSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNEIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDRDLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA0RCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNEUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDRGLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDU1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTA1NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUwNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MDU4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTI0NSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUyNDYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MjQ3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTI0YiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDUyNGMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1MzRkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NTQ0NiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDU0NEMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg1NDUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIG1nYV9QQ0lfSURTIFwKKwl7MHgxMDJiLCAweDA1MjAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIE1HQV9DQVJEX1RZUEVfRzIwMH0sIFwKKwl7MHgxMDJiLCAweDA1MjEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIE1HQV9DQVJEX1RZUEVfRzIwMH0sIFwKKwl7MHgxMDJiLCAweDA1MjUsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIE1HQV9DQVJEX1RZUEVfRzQwMH0sIFwKKwl7MHgxMDJiLCAweDI1MjcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIE1HQV9DQVJEX1RZUEVfRzU1MH0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBtYWNoNjRfUENJX0lEUyBcCisJezB4MTAwMiwgMHg0NzQ5LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc1MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NTEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzQyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc0NCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzUwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM1MSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc0YywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NGYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzUyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NDc1MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDQ3NGQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0NzRlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM1MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDAyLCAweDRjNTMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAwMiwgMHg0YzRkLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMDIsIDB4NGM0ZSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBzaXNkcnZfUENJX0lEUyBcCisJezB4MTAzOSwgMHgwMzAwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMzksIDB4NTMwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMDM5LCAweDYzMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTAzOSwgMHg2MzMwLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTSVNfQ0hJUF8zMTV9LCBcCisJezB4MTAzOSwgMHg2MzUxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEwMzksIDB4NzMwMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxOENBLCAweDAwNDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFNJU19DSElQXzMxNX0sIFwKKwl7MHgxOENBLCAweDAwNDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFNJU19DSElQXzMxNX0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSB0ZGZ4X1BDSV9JRFMgXAorCXsweDEyMWEsIDB4MDAwMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMjFhLCAweDAwMDQsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTIxYSwgMHgwMDA1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDEyMWEsIDB4MDAwNywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMjFhLCAweDAwMDksIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTIxYSwgMHgwMDBiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIHZpYWRydl9QQ0lfSURTIFwKKwl7MHgxMTA2LCAweDMwMjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTEwNiwgMHgzMTE4LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBWSUFfUFJPX0dST1VQX0F9LCBcCisJezB4MTEwNiwgMHgzMTIyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDExMDYsIDB4NzIwNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMTA2LCAweDMxMDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4MTEwNiwgMHgzMzQ0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDExMDYsIDB4MzM0MywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHgxMTA2LCAweDMyMzAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZJQV9EWDlfMH0sIFwKKwl7MHgxMTA2LCAweDMxNTcsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZJQV9QUk9fR1JPVVBfQX0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBpODEwX1BDSV9JRFMgXAorCXsweDgwODYsIDB4NzEyMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDcxMjMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHg3MTI1LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MTEzMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBpODMwX1BDSV9JRFMgXAorCXsweDgwODYsIDB4MzU3NywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI1NjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgzNTgyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjU3MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MCwgMCwgMH0KKworI2RlZmluZSBnYW1tYV9QQ0lfSURTIFwKKwl7MHgzZDNkLCAweDAwMDgsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgc2F2YWdlX1BDSV9JRFMgXAorCXsweDUzMzMsIDB4OGEyMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFM0R9LCBcCisJezB4NTMzMywgMHg4YTIxLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0UzRH0sIFwKKwl7MHg1MzMzLCAweDhhMjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NBVkFHRTR9LCBcCisJezB4NTMzMywgMHg4YTIzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TQVZBR0U0fSwgXAorCXsweDUzMzMsIDB4OGMxMCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFX01YfSwgXAorCXsweDUzMzMsIDB4OGMxMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFX01YfSwgXAorCXsweDUzMzMsIDB4OGMxMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFX01YfSwgXAorCXsweDUzMzMsIDB4OGMxMywgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU0FWQUdFX01YfSwgXAorCXsweDUzMzMsIDB4OGMyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YzI0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMjYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGMyYSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YzJiLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMmMsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGMyZCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfU1VQRVJTQVZBR0V9LCBcCisJezB4NTMzMywgMHg4YzJlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19TVVBFUlNBVkFHRX0sIFwKKwl7MHg1MzMzLCAweDhjMmYsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1NVUEVSU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGEyNSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfUFJPU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGEyNiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfUFJPU0FWQUdFfSwgXAorCXsweDUzMzMsIDB4OGQwMSwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgUzNfVFdJU1RFUn0sIFwKKwl7MHg1MzMzLCAweDhkMDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFMzX1RXSVNURVJ9LCBcCisJezB4NTMzMywgMHg4ZDAzLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0VERFJ9LCBcCisJezB4NTMzMywgMHg4ZDA0LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCBTM19QUk9TQVZBR0VERFJ9LCBcCisJezAsIDAsIDB9CisKKyNkZWZpbmUgZmZiX1BDSV9JRFMgXAorCXswLCAwLCAwfQorCisjZGVmaW5lIGk5MTVfUENJX0lEUyBcCisJezB4ODA4NiwgMHgzNTc3LCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjU2MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDM1ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNTcyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjU4MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI1OGEsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyNTkyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4Mjc3MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI3YTIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyN2FlLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4Mjk3MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI5ODIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyOTkyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjlhMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDI5YjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyOWMyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MjlkMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDJhMDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyYTEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MmE0MiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MHg4MDg2LCAweDJlMDIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIDB9LCBcCisJezB4ODA4NiwgMHgyZTEyLCBQQ0lfQU5ZX0lELCBQQ0lfQU5ZX0lELCAwLCAwLCAwfSwgXAorCXsweDgwODYsIDB4MmUyMiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgMH0sIFwKKwl7MCwgMCwgMH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3NhcmVhLmggYi9pbmNsdWRlL2RybS9kcm1fc2FyZWEuaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9kcm1fc2FyZWEuaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX3NhcmVhLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vZHJtX3NtYW4uaCBiL2luY2x1ZGUvZHJtL2RybV9zbWFuLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vZHJtX3NtYW4uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vZHJtX3NtYW4uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9pODEwX2RybS5oIGIvaW5jbHVkZS9kcm0vaTgxMF9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS9pODEwX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9pODEwX2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJtLmggYi9pbmNsdWRlL2RybS9pODMwX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL2k4MzBfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL2k4MzBfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vaTkxNV9kcm0uaCBiL2luY2x1ZGUvZHJtL2k5MTVfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vaTkxNV9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vaTkxNV9kcm0uaApkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9tZ2FfZHJtLmggYi9pbmNsdWRlL2RybS9tZ2FfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vbWdhX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9tZ2FfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vcjEyOF9kcm0uaCBiL2luY2x1ZGUvZHJtL3IxMjhfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vcjEyOF9kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vcjEyOF9kcm0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vcmFkZW9uX2RybS5oIGIvaW5jbHVkZS9kcm0vcmFkZW9uX2RybS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczZmY1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9yYWRlb25fZHJtLmgKQEAgLTAsMCArMSw3NDkgQEAKKy8qIHJhZGVvbl9kcm0uaCAtLSBQdWJsaWMgaGVhZGVyIGZvciB0aGUgcmFkZW9uIGRyaXZlciAtKi0gbGludXgtYyAtKi0KKyAqCisgKiBDb3B5cmlnaHQgMjAwMCBQcmVjaXNpb24gSW5zaWdodCwgSW5jLiwgQ2VkYXIgUGFyaywgVGV4YXMuCisgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1zLCBJbmMuLCBGcmVtb250LCBDYWxpZm9ybmlhLgorICogQ29weXJpZ2h0IDIwMDIgVHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgIEtldmluIEUuIE1hcnRpbiA8bWFydGluQHZhbGludXguY29tPgorICogICAgR2FyZXRoIEh1Z2hlcyA8Z2FyZXRoQHZhbGludXguY29tPgorICogICAgS2VpdGggV2hpdHdlbGwgPGtlaXRoQHR1bmdzdGVuZ3JhcGhpY3MuY29tPgorICovCisKKyNpZm5kZWYgX19SQURFT05fRFJNX0hfXworI2RlZmluZSBfX1JBREVPTl9EUk1fSF9fCisKKy8qIFdBUk5JTkc6IElmIHlvdSBjaGFuZ2UgYW55IG9mIHRoZXNlIGRlZmluZXMsIG1ha2Ugc3VyZSB0byBjaGFuZ2UgdGhlCisgKiBkZWZpbmVzIGluIHRoZSBYIHNlcnZlciBmaWxlIChyYWRlb25fc2FyZWEuaCkKKyAqLworI2lmbmRlZiBfX1JBREVPTl9TQVJFQV9ERUZJTkVTX18KKyNkZWZpbmUgX19SQURFT05fU0FSRUFfREVGSU5FU19fCisKKy8qIE9sZCBzdHlsZSBzdGF0ZSBmbGFncywgcmVxdWlyZWQgZm9yIHNhcmVhIGludGVyZmFjZSAoMS4xIGFuZCAxLjIKKyAqIGNsZWFycykgYW5kIDEuMiBkcm1fdmVydGV4MiBpb2N0bC4KKyAqLworI2RlZmluZSBSQURFT05fVVBMT0FEX0NPTlRFWFQJCTB4MDAwMDAwMDEKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9WRVJURk1UCQkweDAwMDAwMDAyCisjZGVmaW5lIFJBREVPTl9VUExPQURfTElORQkJMHgwMDAwMDAwNAorI2RlZmluZSBSQURFT05fVVBMT0FEX0JVTVBNQVAJCTB4MDAwMDAwMDgKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9NQVNLUwkJMHgwMDAwMDAxMAorI2RlZmluZSBSQURFT05fVVBMT0FEX1ZJRVdQT1JUCQkweDAwMDAwMDIwCisjZGVmaW5lIFJBREVPTl9VUExPQURfU0VUVVAJCTB4MDAwMDAwNDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9UQ0wJCTB4MDAwMDAwODAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9NSVNDCQkweDAwMDAwMTAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMAkJMHgwMDAwMDIwMAorI2RlZmluZSBSQURFT05fVVBMT0FEX1RFWDEJCTB4MDAwMDA0MDAKKyNkZWZpbmUgUkFERU9OX1VQTE9BRF9URVgyCQkweDAwMDAwODAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMElNQUdFUwkweDAwMDAxMDAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMUlNQUdFUwkweDAwMDAyMDAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfVEVYMklNQUdFUwkweDAwMDA0MDAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfQ0xJUFJFQ1RTCQkweDAwMDA4MDAwCS8qIGhhbmRsZWQgY2xpZW50LXNpZGUgKi8KKyNkZWZpbmUgUkFERU9OX1JFUVVJUkVfUVVJRVNDRU5DRQkweDAwMDEwMDAwCisjZGVmaW5lIFJBREVPTl9VUExPQURfWkJJQVMJCTB4MDAwMjAwMDAJLyogdmVyc2lvbiAxLjIgYW5kIG5ld2VyICovCisjZGVmaW5lIFJBREVPTl9VUExPQURfQUxMCQkweDAwM2VmZmZmCisjZGVmaW5lIFJBREVPTl9VUExPQURfQ09OVEVYVF9BTEwgICAgICAgMHgwMDNlMDFmZgorCisvKiBOZXcgc3R5bGUgcGVyLXBhY2tldCBpZGVudGlmaWVycyBmb3IgdXNlIGluIGNtZF9idWZmZXIgaW9jdGwgd2l0aAorICogdGhlIFJBREVPTl9FTUlUX1BBQ0tFVCBjb21tYW5kLiAgQ29tbWVudHMgcmVsYXRlIG5ldyBwYWNrZXRzIHRvIG9sZAorICogc3RhdGUgYml0cyBhbmQgdGhlIHBhY2tldCBzaXplOgorICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgMAkvKiBjb250ZXh0LzcgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICAxCS8qIGNvbnRleHQvMyAqLworI2RlZmluZSBSQURFT05fRU1JVF9SQjNEX0NPTE9SUElUQ0ggICAgICAgICAgICAgICAgIDIJLyogY29udGV4dC8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1JFX0xJTkVfUEFUVEVSTiAgICAgICAgICAgICAgICAgMwkvKiBsaW5lLzIgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfU0VfTElORV9XSURUSCAgICAgICAgICAgICAgICAgICA0CS8qIGxpbmUvMSAqLworI2RlZmluZSBSQURFT05fRU1JVF9QUF9MVU1fTUFUUklYICAgICAgICAgICAgICAgICAgIDUJLyogYnVtcG1hcC8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1JPVF9NQVRSSVhfMCAgICAgICAgICAgICAgICAgNgkvKiBidW1wbWFwLzIgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfUkIzRF9TVEVOQ0lMUkVGTUFTSyAgICAgICAgICAgICA3CS8qIG1hc2tzLzMgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfU0VfVlBPUlRfWFNDQUxFICAgICAgICAgICAgICAgICA4CS8qIHZpZXdwb3J0LzYgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfU0VfQ05UTCAgICAgICAgICAgICAgICAgICAgICAgICA5CS8qIHNldHVwLzIgKi8KKyNkZWZpbmUgUkFERU9OX0VNSVRfU0VfQ05UTF9TVEFUVVMgICAgICAgICAgICAgICAgICAxMAkvKiBzZXR1cC8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1JFX01JU0MgICAgICAgICAgICAgICAgICAgICAgICAgMTEJLyogbWlzYy8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgICAgMTIJLyogdGV4MC82ICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8wICAgICAgICAgICAgICAgMTMJLyogdGV4MC8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzEgICAgICAgICAgICAgICAgICAgMTQJLyogdGV4MS82ICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8xICAgICAgICAgICAgICAgMTUJLyogdGV4MS8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RYRklMVEVSXzIgICAgICAgICAgICAgICAgICAgMTYJLyogdGV4Mi82ICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0JPUkRFUl9DT0xPUl8yICAgICAgICAgICAgICAgMTcJLyogdGV4Mi8xICovCisjZGVmaW5lIFJBREVPTl9FTUlUX1NFX1pCSUFTX0ZBQ1RPUiAgICAgICAgICAgICAgICAgMTgJLyogemJpYXMvMiAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9UQ0xfT1VUUFVUX1ZUWF9GTVQgICAgICAgICAgIDE5CS8qIHRjbC8xMSAqLworI2RlZmluZSBSQURFT05fRU1JVF9TRV9UQ0xfTUFURVJJQUxfRU1NSVNTSVZFX1JFRCAgIDIwCS8qIG1hdGVyaWFsLzE3ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8wICAgICAgICAgICAgICAgICAgICAgMjEJLyogdGV4MC80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8xICAgICAgICAgICAgICAgICAgICAgMjIJLyogdGV4MS80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8yICAgICAgICAgICAgICAgICAgICAgMjMJLyogdGV4Mi80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF8zICAgICAgICAgICAgICAgICAgICAgMjQJLyogdGV4My80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF80ICAgICAgICAgICAgICAgICAgICAgMjUJLyogdGV4NC80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF81ICAgICAgICAgICAgICAgICAgICAgMjYJLyogdGV4NS80ICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENCTEVORF82ICAgICAgICAgICAgICAgICAgICAgMjcJLyogLzQgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ0JMRU5EXzcgICAgICAgICAgICAgICAgICAgICAyOAkvKiAvNCAqLworI2RlZmluZSBSMjAwX0VNSVRfVENMX0xJR0hUX01PREVMX0NUTF8wICAgICAgICAgICAgIDI5CS8qIHRjbC83ICovCisjZGVmaW5lIFIyMDBfRU1JVF9URkFDVE9SXzAgICAgICAgICAgICAgICAgICAgICAgICAgMzAJLyogdGYvNyAqLworI2RlZmluZSBSMjAwX0VNSVRfVlRYX0ZNVF8wICAgICAgICAgICAgICAgICAgICAgICAgIDMxCS8qIHZ0eC81ICovCisjZGVmaW5lIFIyMDBfRU1JVF9WQVBfQ1RMICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIJLyogdmFwLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX01BVFJJWF9TRUxFQ1RfMCAgICAgICAgICAgICAgICAgICAzMwkvKiBtc2wvNSAqLworI2RlZmluZSBSMjAwX0VNSVRfVEVYX1BST0NfQ1RMXzIgICAgICAgICAgICAgICAgICAgIDM0CS8qIHRjZy81ICovCisjZGVmaW5lIFIyMDBfRU1JVF9UQ0xfVUNQX1ZFUlRfQkxFTkRfQ1RMICAgICAgICAgICAgMzUJLyogdGNsLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzAgICAgICAgICAgICAgICAgICAgICAzNgkvKiB0ZXgwLzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzEgICAgICAgICAgICAgICAgICAgICAzNwkvKiB0ZXgxLzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzIgICAgICAgICAgICAgICAgICAgICAzOAkvKiB0ZXgyLzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzMgICAgICAgICAgICAgICAgICAgICAzOQkvKiB0ZXgzLzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzQgICAgICAgICAgICAgICAgICAgICA0MAkvKiB0ZXg0LzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYRklMVEVSXzUgICAgICAgICAgICAgICAgICAgICA0MQkvKiB0ZXg1LzYgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzAgICAgICAgICAgICAgICAgICAgICA0MgkvKiB0ZXgwLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzEgICAgICAgICAgICAgICAgICAgICA0MwkvKiB0ZXgxLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzIgICAgICAgICAgICAgICAgICAgICA0NAkvKiB0ZXgyLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzMgICAgICAgICAgICAgICAgICAgICA0NQkvKiB0ZXgzLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzQgICAgICAgICAgICAgICAgICAgICA0NgkvKiB0ZXg0LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYT0ZGU0VUXzUgICAgICAgICAgICAgICAgICAgICA0NwkvKiB0ZXg1LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1ZURV9DTlRMICAgICAgICAgICAgICAgICAgICAgICAgICA0OAkvKiB2dGUvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfT1VUUFVUX1ZUWF9DT01QX1NFTCAgICAgICAgICAgICAgIDQ5CS8qIHZ0eC8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UQU1fREVCVUczICAgICAgICAgICAgICAgICAgICAgNTAJLyogdGFtLzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NOVExfWCAgICAgICAgICAgICAgICAgICAgICAgICA1MQkvKiBjc3QvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfUkIzRF9ERVBUSFhZX09GRlNFVCAgICAgICAgICAgICAgIDUyCS8qIGNzdC8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9SRV9BVVhfU0NJU1NPUl9DTlRMICAgICAgICAgICAgICAgNTMJLyogY3N0LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1JFX1NDSVNTT1JfVExfMCAgICAgICAgICAgICAgICAgICA1NAkvKiBjc3QvMiAqLworI2RlZmluZSBSMjAwX0VNSVRfUkVfU0NJU1NPUl9UTF8xICAgICAgICAgICAgICAgICAgIDU1CS8qIGNzdC8yICovCisjZGVmaW5lIFIyMDBfRU1JVF9SRV9TQ0lTU09SX1RMXzIgICAgICAgICAgICAgICAgICAgNTYJLyogY3N0LzIgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1NFX1ZBUF9DTlRMX1NUQVRVUyAgICAgICAgICAgICAgICA1NwkvKiBjc3QvMSAqLworI2RlZmluZSBSMjAwX0VNSVRfU0VfVlRYX1NUQVRFX0NOVEwgICAgICAgICAgICAgICAgIDU4CS8qIGNzdC8xICovCisjZGVmaW5lIFIyMDBfRU1JVF9SRV9QT0lOVFNJWkUgICAgICAgICAgICAgICAgICAgICAgNTkJLyogY3N0LzEgKi8KKyNkZWZpbmUgUjIwMF9FTUlUX1RDTF9JTlBVVF9WVFhfVkVDVE9SX0FERFJfMCAgICAgICA2MAkvKiBjc3QvNCAqLworI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAgICAgIDYxCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzAgICAgICAgICAgICAgICAgNjIKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgICAgICA2MworI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU18xICAgICAgICAgICAgICAgIDY0CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgICAgICAgNjUKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfMiAgICAgICAgICAgICAgICA2NgorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMyAgICAgICAgICAgICAgICAgIDY3CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19PRkZTRVRTXzMgICAgICAgICAgICAgICAgNjgKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX0ZBQ0VTXzQgICAgICAgICAgICAgICAgICA2OQorI2RlZmluZSBSMjAwX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU180ICAgICAgICAgICAgICAgIDcwCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9DVUJJQ19GQUNFU181ICAgICAgICAgICAgICAgICAgNzEKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX0NVQklDX09GRlNFVFNfNSAgICAgICAgICAgICAgICA3MgorI2RlZmluZSBSQURFT05fRU1JVF9QUF9URVhfU0laRV8wICAgICAgICAgICAgICAgICAgIDczCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX1RFWF9TSVpFXzEgICAgICAgICAgICAgICAgICAgNzQKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfVEVYX1NJWkVfMiAgICAgICAgICAgICAgICAgICA3NQorI2RlZmluZSBSMjAwX0VNSVRfUkIzRF9CTEVORENPTE9SICAgICAgICAgICAgICAgICAgIDc2CisjZGVmaW5lIFIyMDBfRU1JVF9UQ0xfUE9JTlRfU1BSSVRFX0NOVEwgICAgICAgICAgICAgNzcKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfRkFDRVNfMCAgICAgICAgICAgICAgICA3OAorI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19PRkZTRVRTX1QwICAgICAgICAgICAgIDc5CisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX0ZBQ0VTXzEgICAgICAgICAgICAgICAgODAKKyNkZWZpbmUgUkFERU9OX0VNSVRfUFBfQ1VCSUNfT0ZGU0VUU19UMSAgICAgICAgICAgICA4MQorI2RlZmluZSBSQURFT05fRU1JVF9QUF9DVUJJQ19GQUNFU18yICAgICAgICAgICAgICAgIDgyCisjZGVmaW5lIFJBREVPTl9FTUlUX1BQX0NVQklDX09GRlNFVFNfVDIgICAgICAgICAgICAgODMKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RSSV9QRVJGX0NOVEwgICAgICAgICAgICAgICAgICA4NAorI2RlZmluZSBSMjAwX0VNSVRfUFBfQUZTXzAgICAgICAgICAgICAgICAgICAgICAgICAgIDg1CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9BRlNfMSAgICAgICAgICAgICAgICAgICAgICAgICAgODYKKyNkZWZpbmUgUjIwMF9FTUlUX0FURl9URkFDVE9SICAgICAgICAgICAgICAgICAgICAgICA4NworI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMCAgICAgICAgICAgICAgICAgICAgIDg4CisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF8xICAgICAgICAgICAgICAgICAgICAgODkKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzIgICAgICAgICAgICAgICAgICAgICA5MAorI2RlZmluZSBSMjAwX0VNSVRfUFBfVFhDVExBTExfMyAgICAgICAgICAgICAgICAgICAgIDkxCisjZGVmaW5lIFIyMDBfRU1JVF9QUF9UWENUTEFMTF80ICAgICAgICAgICAgICAgICAgICAgOTIKKyNkZWZpbmUgUjIwMF9FTUlUX1BQX1RYQ1RMQUxMXzUgICAgICAgICAgICAgICAgICAgICA5MworI2RlZmluZSBSMjAwX0VNSVRfVkFQX1BWU19DTlRMICAgICAgICAgICAgICAgICAgICAgIDk0CisjZGVmaW5lIFJBREVPTl9NQVhfU1RBVEVfUEFDS0VUUyAgICAgICAgICAgICAgICAgICAgOTUKKworLyogQ29tbWFuZHMgdW5kZXJzdG9vZCBieSBjbWRfYnVmZmVyIGlvY3RsLiAgTW9yZSBjYW4gYmUgYWRkZWQgYnV0CisgKiBvYnZpb3VzbHkgdGhlc2UgY2FuJ3QgYmUgcmVtb3ZlZCBvciBjaGFuZ2VkOgorICovCisjZGVmaW5lIFJBREVPTl9DTURfUEFDS0VUICAgICAgMQkvKiBlbWl0IG9uZSBvZiB0aGUgcmVnaXN0ZXIgcGFja2V0cyBhYm92ZSAqLworI2RlZmluZSBSQURFT05fQ01EX1NDQUxBUlMgICAgIDIJLyogZW1pdCBzY2FsYXIgZGF0YSAqLworI2RlZmluZSBSQURFT05fQ01EX1ZFQ1RPUlMgICAgIDMJLyogZW1pdCB2ZWN0b3IgZGF0YSAqLworI2RlZmluZSBSQURFT05fQ01EX0RNQV9ESVNDQVJEIDQJLyogZGlzY2FyZCBjdXJyZW50IGRtYSBidWYgKi8KKyNkZWZpbmUgUkFERU9OX0NNRF9QQUNLRVQzICAgICA1CS8qIGVtaXQgaHcgcGFja2V0ICovCisjZGVmaW5lIFJBREVPTl9DTURfUEFDS0VUM19DTElQIDYJLyogZW1pdCBodyBwYWNrZXQgd3JhcHBlZCBpbiBjbGlwcmVjdHMgKi8KKyNkZWZpbmUgUkFERU9OX0NNRF9TQ0FMQVJTMiAgICAgNwkvKiByMjAwIHN0b3BnYXAgKi8KKyNkZWZpbmUgUkFERU9OX0NNRF9XQUlUICAgICAgICAgOAkvKiBlbWl0IGh3IHdhaXQgY29tbWFuZHMgLS0gbm90ZToKKwkJCQkJICogIGRvZXNuJ3QgbWFrZSB0aGUgY3B1IHdhaXQsIGp1c3QKKwkJCQkJICogIHRoZSBncmFwaGljcyBoYXJkd2FyZSAqLworI2RlZmluZSBSQURFT05fQ01EX1ZFQ0xJTkVBUgk5ICAgICAgIC8qIGFub3RoZXIgcjIwMCBzdG9wZ2FwICovCisKK3R5cGVkZWYgdW5pb24geworCWludCBpOworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhZDAsIHBhZDEsIHBhZDI7CisJfSBoZWFkZXI7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgcGFja2V0X2lkLCBwYWQwLCBwYWQxOworCX0gcGFja2V0OworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIG9mZnNldCwgc3RyaWRlLCBjb3VudDsKKwl9IHNjYWxhcnM7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgb2Zmc2V0LCBzdHJpZGUsIGNvdW50OworCX0gdmVjdG9yczsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBhZGRyX2xvLCBhZGRyX2hpLCBjb3VudDsKKwl9IHZlY2xpbmVhcjsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBidWZfaWR4LCBwYWQwLCBwYWQxOworCX0gZG1hOworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGZsYWdzLCBwYWQwLCBwYWQxOworCX0gd2FpdDsKK30gZHJtX3JhZGVvbl9jbWRfaGVhZGVyX3Q7CisKKyNkZWZpbmUgUkFERU9OX1dBSVRfMkQgIDB4MQorI2RlZmluZSBSQURFT05fV0FJVF8zRCAgMHgyCisKKy8qIEFsbG93ZWQgcGFyYW1ldGVycyBmb3IgUjMwMF9DTURfUEFDS0VUMworICovCisjZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDNfQ0xFQVIJCTAKKyNkZWZpbmUgUjMwMF9DTURfUEFDS0VUM19SQVcJCTEKKworLyogQ29tbWFuZHMgdW5kZXJzdG9vZCBieSBjbWRfYnVmZmVyIGlvY3RsIGZvciBSMzAwLgorICogVGhlIGludGVyZmFjZSBoYXMgbm90IGJlZW4gc3RhYmlsaXplZCwgc28gc29tZSBvZiB0aGVzZSBtYXkgYmUgcmVtb3ZlZAorICogYW5kIGV2ZW50dWFsbHkgcmVvcmRlcmVkIGJlZm9yZSBzdGFiaWxpemF0aW9uLgorICovCisjZGVmaW5lIFIzMDBfQ01EX1BBQ0tFVDAJCTEKKyNkZWZpbmUgUjMwMF9DTURfVlBVCQkJMgkvKiBlbWl0IHZlcnRleCBwcm9ncmFtIHVwbG9hZCAqLworI2RlZmluZSBSMzAwX0NNRF9QQUNLRVQzCQkzCS8qIGVtaXQgYSBwYWNrZXQzICovCisjZGVmaW5lIFIzMDBfQ01EX0VORDNECQkJNAkvKiBlbWl0IHNlcXVlbmNlIGVuZGluZyAzZCByZW5kZXJpbmcgKi8KKyNkZWZpbmUgUjMwMF9DTURfQ1BfREVMQVkJCTUKKyNkZWZpbmUgUjMwMF9DTURfRE1BX0RJU0NBUkQJCTYKKyNkZWZpbmUgUjMwMF9DTURfV0FJVAkJCTcKKyMJZGVmaW5lIFIzMDBfV0FJVF8yRAkJMHgxCisjCWRlZmluZSBSMzAwX1dBSVRfM0QJCTB4MgorLyogdGhlc2UgdHdvIGRlZmluZXMgYXJlIERPSU5HIElUIFdST05HIC0gaG93ZXZlcgorICogd2UgaGF2ZSB1c2Vyc3BhY2Ugd2hpY2ggcmVsaWVzIG9uIHVzaW5nIHRoZXNlLgorICogVGhlIHdhaXQgaW50ZXJmYWNlIGlzIGJhY2t3YXJkcyBjb21wYXQgbmV3IAorICogY29kZSBzaG91bGQgdXNlIHRoZSBORVdfV0FJVCBkZWZpbmVzIGJlbG93CisgKiBUSEVTRSBBUkUgTk9UIEJJVCBGSUVMRFMKKyAqLworIwlkZWZpbmUgUjMwMF9XQUlUXzJEX0NMRUFOCTB4MworIwlkZWZpbmUgUjMwMF9XQUlUXzNEX0NMRUFOCTB4NAorCisjCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzNECTB4MworIwlkZWZpbmUgUjMwMF9ORVdfV0FJVF8yRF8yRF9DTEVBTgkweDQKKyMJZGVmaW5lIFIzMDBfTkVXX1dBSVRfM0RfM0RfQ0xFQU4JMHg2CisjCWRlZmluZSBSMzAwX05FV19XQUlUXzJEXzJEX0NMRUFOXzNEXzNEX0NMRUFOCTB4OAorCisjZGVmaW5lIFIzMDBfQ01EX1NDUkFUQ0gJCTgKKyNkZWZpbmUgUjMwMF9DTURfUjUwMEZQICAgICAgICAgICAgICAgICA5CisKK3R5cGVkZWYgdW5pb24geworCXVuc2lnbmVkIGludCB1OworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhZDAsIHBhZDEsIHBhZDI7CisJfSBoZWFkZXI7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgY291bnQsIHJlZ2xvLCByZWdoaTsKKwl9IHBhY2tldDA7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgY291bnQsIGFkcmxvLCBhZHJoaTsKKwl9IHZwdTsKKwlzdHJ1Y3QgeworCQl1bnNpZ25lZCBjaGFyIGNtZF90eXBlLCBwYWNrZXQsIHBhZDAsIHBhZDE7CisJfSBwYWNrZXQzOworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHBhY2tldDsKKwkJdW5zaWduZWQgc2hvcnQgY291bnQ7CS8qIGFtb3VudCBvZiBwYWNrZXQyIHRvIGVtaXQgKi8KKwl9IGRlbGF5OworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIGJ1Zl9pZHgsIHBhZDAsIHBhZDE7CisJfSBkbWE7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgZmxhZ3MsIHBhZDAsIHBhZDE7CisJfSB3YWl0OworCXN0cnVjdCB7CisJCXVuc2lnbmVkIGNoYXIgY21kX3R5cGUsIHJlZywgbl9idWZzLCBmbGFnczsKKwl9IHNjcmF0Y2g7CisJc3RydWN0IHsKKwkJdW5zaWduZWQgY2hhciBjbWRfdHlwZSwgY291bnQsIGFkcmxvLCBhZHJoaV9mbGFnczsKKwl9IHI1MDBmcDsKK30gZHJtX3IzMDBfY21kX2hlYWRlcl90OworCisjZGVmaW5lIFJBREVPTl9GUk9OVAkJCTB4MQorI2RlZmluZSBSQURFT05fQkFDSwkJCTB4MgorI2RlZmluZSBSQURFT05fREVQVEgJCQkweDQKKyNkZWZpbmUgUkFERU9OX1NURU5DSUwJCQkweDgKKyNkZWZpbmUgUkFERU9OX0NMRUFSX0ZBU1RaCQkweDgwMDAwMDAwCisjZGVmaW5lIFJBREVPTl9VU0VfSElFUloJCTB4NDAwMDAwMDAKKyNkZWZpbmUgUkFERU9OX1VTRV9DT01QX1pCVUYJCTB4MjAwMDAwMDAKKworI2RlZmluZSBSNTAwRlBfQ09OU1RBTlRfVFlQRSAgKDEgPDwgMSkKKyNkZWZpbmUgUjUwMEZQX0NPTlNUQU5UX0NMQU1QICgxIDw8IDIpCisKKy8qIFByaW1pdGl2ZSB0eXBlcworICovCisjZGVmaW5lIFJBREVPTl9QT0lOVFMJCQkweDEKKyNkZWZpbmUgUkFERU9OX0xJTkVTCQkJMHgyCisjZGVmaW5lIFJBREVPTl9MSU5FX1NUUklQCQkweDMKKyNkZWZpbmUgUkFERU9OX1RSSUFOR0xFUwkJMHg0CisjZGVmaW5lIFJBREVPTl9UUklBTkdMRV9GQU4JCTB4NQorI2RlZmluZSBSQURFT05fVFJJQU5HTEVfU1RSSVAJCTB4NgorCisvKiBWZXJ0ZXgvaW5kaXJlY3QgYnVmZmVyIHNpemUKKyAqLworI2RlZmluZSBSQURFT05fQlVGRkVSX1NJWkUJCTY1NTM2CisKKy8qIEJ5dGUgb2Zmc2V0cyBmb3IgaW5kaXJlY3QgYnVmZmVyIGRhdGEKKyAqLworI2RlZmluZSBSQURFT05fSU5ERVhfUFJJTV9PRkZTRVQJMjAKKworI2RlZmluZSBSQURFT05fU0NSQVRDSF9SRUdfT0ZGU0VUCTMyCisKKyNkZWZpbmUgUkFERU9OX05SX1NBUkVBX0NMSVBSRUNUUwkxMgorCisvKiBUaGVyZSBhcmUgMiBoZWFwcyAobG9jYWwvR0FSVCkuICBFYWNoIHJlZ2lvbiB3aXRoaW4gYSBoZWFwIGlzIGEKKyAqIG1pbmltdW0gb2YgNjRrLCBhbmQgdGhlcmUgYXJlIGF0IG1vc3QgNjQgb2YgdGhlbSBwZXIgaGVhcC4KKyAqLworI2RlZmluZSBSQURFT05fTE9DQUxfVEVYX0hFQVAJCTAKKyNkZWZpbmUgUkFERU9OX0dBUlRfVEVYX0hFQVAJCTEKKyNkZWZpbmUgUkFERU9OX05SX1RFWF9IRUFQUwkJMgorI2RlZmluZSBSQURFT05fTlJfVEVYX1JFR0lPTlMJCTY0CisjZGVmaW5lIFJBREVPTl9MT0dfVEVYX0dSQU5VTEFSSVRZCTE2CisKKyNkZWZpbmUgUkFERU9OX01BWF9URVhUVVJFX0xFVkVMUwkxMgorI2RlZmluZSBSQURFT05fTUFYX1RFWFRVUkVfVU5JVFMJMworCisjZGVmaW5lIFJBREVPTl9NQVhfU1VSRkFDRVMJCTgKKworLyogQmxpdHMgaGF2ZSBzdHJpY3Qgb2Zmc2V0IHJ1bGVzLiAgQWxsIGJsaXQgb2Zmc2V0IG11c3QgYmUgYWxpZ25lZCBvbgorICogYSAxSy1ieXRlIGJvdW5kYXJ5LgorICovCisjZGVmaW5lIFJBREVPTl9PRkZTRVRfU0hJRlQgICAgICAgICAgICAgMTAKKyNkZWZpbmUgUkFERU9OX09GRlNFVF9BTElHTiAgICAgICAgICAgICAoMSA8PCBSQURFT05fT0ZGU0VUX1NISUZUKQorI2RlZmluZSBSQURFT05fT0ZGU0VUX01BU0sgICAgICAgICAgICAgIChSQURFT05fT0ZGU0VUX0FMSUdOIC0gMSkKKworI2VuZGlmCQkJCS8qIF9fUkFERU9OX1NBUkVBX0RFRklORVNfXyAqLworCit0eXBlZGVmIHN0cnVjdCB7CisJdW5zaWduZWQgaW50IHJlZDsKKwl1bnNpZ25lZCBpbnQgZ3JlZW47CisJdW5zaWduZWQgaW50IGJsdWU7CisJdW5zaWduZWQgaW50IGFscGhhOworfSByYWRlb25fY29sb3JfcmVnc190OworCit0eXBlZGVmIHN0cnVjdCB7CisJLyogQ29udGV4dCBzdGF0ZSAqLworCXVuc2lnbmVkIGludCBwcF9taXNjOwkvKiAweDFjMTQgKi8KKwl1bnNpZ25lZCBpbnQgcHBfZm9nX2NvbG9yOworCXVuc2lnbmVkIGludCByZV9zb2xpZF9jb2xvcjsKKwl1bnNpZ25lZCBpbnQgcmIzZF9ibGVuZGNudGw7CisJdW5zaWduZWQgaW50IHJiM2RfZGVwdGhvZmZzZXQ7CisJdW5zaWduZWQgaW50IHJiM2RfZGVwdGhwaXRjaDsKKwl1bnNpZ25lZCBpbnQgcmIzZF96c3RlbmNpbGNudGw7CisKKwl1bnNpZ25lZCBpbnQgcHBfY250bDsJLyogMHgxYzM4ICovCisJdW5zaWduZWQgaW50IHJiM2RfY250bDsKKwl1bnNpZ25lZCBpbnQgcmIzZF9jb2xvcm9mZnNldDsKKwl1bnNpZ25lZCBpbnQgcmVfd2lkdGhfaGVpZ2h0OworCXVuc2lnbmVkIGludCByYjNkX2NvbG9ycGl0Y2g7CisJdW5zaWduZWQgaW50IHNlX2NudGw7CisKKwkvKiBWZXJ0ZXggZm9ybWF0IHN0YXRlICovCisJdW5zaWduZWQgaW50IHNlX2Nvb3JkX2ZtdDsJLyogMHgxYzUwICovCisKKwkvKiBMaW5lIHN0YXRlICovCisJdW5zaWduZWQgaW50IHJlX2xpbmVfcGF0dGVybjsJLyogMHgxY2QwICovCisJdW5zaWduZWQgaW50IHJlX2xpbmVfc3RhdGU7CisKKwl1bnNpZ25lZCBpbnQgc2VfbGluZV93aWR0aDsJLyogMHgxZGI4ICovCisKKwkvKiBCdW1wbWFwIHN0YXRlICovCisJdW5zaWduZWQgaW50IHBwX2x1bV9tYXRyaXg7CS8qIDB4MWQwMCAqLworCisJdW5zaWduZWQgaW50IHBwX3JvdF9tYXRyaXhfMDsJLyogMHgxZDU4ICovCisJdW5zaWduZWQgaW50IHBwX3JvdF9tYXRyaXhfMTsKKworCS8qIE1hc2sgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgcmIzZF9zdGVuY2lscmVmbWFzazsJLyogMHgxZDdjICovCisJdW5zaWduZWQgaW50IHJiM2Rfcm9wY250bDsKKwl1bnNpZ25lZCBpbnQgcmIzZF9wbGFuZW1hc2s7CisKKwkvKiBWaWV3cG9ydCBzdGF0ZSAqLworCXVuc2lnbmVkIGludCBzZV92cG9ydF94c2NhbGU7CS8qIDB4MWQ5OCAqLworCXVuc2lnbmVkIGludCBzZV92cG9ydF94b2Zmc2V0OworCXVuc2lnbmVkIGludCBzZV92cG9ydF95c2NhbGU7CisJdW5zaWduZWQgaW50IHNlX3Zwb3J0X3lvZmZzZXQ7CisJdW5zaWduZWQgaW50IHNlX3Zwb3J0X3pzY2FsZTsKKwl1bnNpZ25lZCBpbnQgc2VfdnBvcnRfem9mZnNldDsKKworCS8qIFNldHVwIHN0YXRlICovCisJdW5zaWduZWQgaW50IHNlX2NudGxfc3RhdHVzOwkvKiAweDIxNDAgKi8KKworCS8qIE1pc2Mgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgcmVfdG9wX2xlZnQ7CS8qIDB4MjZjMCAqLworCXVuc2lnbmVkIGludCByZV9taXNjOworfSBkcm1fcmFkZW9uX2NvbnRleHRfcmVnc190OworCit0eXBlZGVmIHN0cnVjdCB7CisJLyogWmJpYXMgc3RhdGUgKi8KKwl1bnNpZ25lZCBpbnQgc2VfemJpYXNfZmFjdG9yOwkvKiAweDFkYWMgKi8KKwl1bnNpZ25lZCBpbnQgc2VfemJpYXNfY29uc3RhbnQ7Cit9IGRybV9yYWRlb25fY29udGV4dDJfcmVnc190OworCisvKiBTZXR1cCByZWdpc3RlcnMgZm9yIGVhY2ggdGV4dHVyZSB1bml0CisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgcHBfdHhmaWx0ZXI7CisJdW5zaWduZWQgaW50IHBwX3R4Zm9ybWF0OworCXVuc2lnbmVkIGludCBwcF90eG9mZnNldDsKKwl1bnNpZ25lZCBpbnQgcHBfdHhjYmxlbmQ7CisJdW5zaWduZWQgaW50IHBwX3R4YWJsZW5kOworCXVuc2lnbmVkIGludCBwcF90ZmFjdG9yOworCXVuc2lnbmVkIGludCBwcF9ib3JkZXJfY29sb3I7Cit9IGRybV9yYWRlb25fdGV4dHVyZV9yZWdzX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwl1bnNpZ25lZCBpbnQgc3RhcnQ7CisJdW5zaWduZWQgaW50IGZpbmlzaDsKKwl1bnNpZ25lZCBpbnQgcHJpbTo4OworCXVuc2lnbmVkIGludCBzdGF0ZWlkeDo4OworCXVuc2lnbmVkIGludCBudW12ZXJ0czoxNjsJLyogb3ZlcmxvYWRlZCBhcyBvZmZzZXQvNjQgZm9yIGVsdCBwcmltcyAqLworCXVuc2lnbmVkIGludCB2Y19mb3JtYXQ7CS8qIHZlcnRleCBmb3JtYXQgKi8KK30gZHJtX3JhZGVvbl9wcmltX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwlkcm1fcmFkZW9uX2NvbnRleHRfcmVnc190IGNvbnRleHQ7CisJZHJtX3JhZGVvbl90ZXh0dXJlX3JlZ3NfdCB0ZXhbUkFERU9OX01BWF9URVhUVVJFX1VOSVRTXTsKKwlkcm1fcmFkZW9uX2NvbnRleHQyX3JlZ3NfdCBjb250ZXh0MjsKKwl1bnNpZ25lZCBpbnQgZGlydHk7Cit9IGRybV9yYWRlb25fc3RhdGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworCS8qIFRoZSBjaGFubmVsIGZvciBjb21tdW5pY2F0aW9uIG9mIHN0YXRlIGluZm9ybWF0aW9uIHRvIHRoZQorCSAqIGtlcm5lbCBvbiBmaXJpbmcgYSB2ZXJ0ZXggYnVmZmVyIHdpdGggZWl0aGVyIG9mIHRoZQorCSAqIG9ic29sZXRlZCB2ZXJ0ZXgvaW5kZXggaW9jdGxzLgorCSAqLworCWRybV9yYWRlb25fY29udGV4dF9yZWdzX3QgY29udGV4dF9zdGF0ZTsKKwlkcm1fcmFkZW9uX3RleHR1cmVfcmVnc190IHRleF9zdGF0ZVtSQURFT05fTUFYX1RFWFRVUkVfVU5JVFNdOworCXVuc2lnbmVkIGludCBkaXJ0eTsKKwl1bnNpZ25lZCBpbnQgdmVydHNpemU7CisJdW5zaWduZWQgaW50IHZjX2Zvcm1hdDsKKworCS8qIFRoZSBjdXJyZW50IGNsaXByZWN0cywgb3IgYSBzdWJzZXQgdGhlcmVvZi4KKwkgKi8KKwlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBib3hlc1tSQURFT05fTlJfU0FSRUFfQ0xJUFJFQ1RTXTsKKwl1bnNpZ25lZCBpbnQgbmJveDsKKworCS8qIENvdW50ZXJzIGZvciBjbGllbnQtc2lkZSB0aHJvdHRsaW5nIG9mIHJlbmRlcmluZyBjbGllbnRzLgorCSAqLworCXVuc2lnbmVkIGludCBsYXN0X2ZyYW1lOworCXVuc2lnbmVkIGludCBsYXN0X2Rpc3BhdGNoOworCXVuc2lnbmVkIGludCBsYXN0X2NsZWFyOworCisJc3RydWN0IGRybV90ZXhfcmVnaW9uIHRleF9saXN0W1JBREVPTl9OUl9URVhfSEVBUFNdW1JBREVPTl9OUl9URVhfUkVHSU9OUyArCisJCQkJCQkgICAgICAgMV07CisJdW5zaWduZWQgaW50IHRleF9hZ2VbUkFERU9OX05SX1RFWF9IRUFQU107CisJaW50IGN0eF9vd25lcjsKKwlpbnQgcGZTdGF0ZTsJCS8qIG51bWJlciBvZiAzZCB3aW5kb3dzICgwLDEsMm9ybW9yZSkgKi8KKwlpbnQgcGZDdXJyZW50UGFnZTsJLyogd2hpY2ggYnVmZmVyIGlzIGJlaW5nIGRpc3BsYXllZD8gKi8KKwlpbnQgY3J0YzJfYmFzZTsJCS8qIENSVEMyIGZyYW1lIG9mZnNldCAqLworCWludCB0aWxpbmdfZW5hYmxlZDsJLyogc2V0IGJ5IGRybSwgcmVhZCBieSAyZCArIDNkIGNsaWVudHMgKi8KK30gZHJtX3JhZGVvbl9zYXJlYV90OworCisvKiBXQVJOSU5HOiBJZiB5b3UgY2hhbmdlIGFueSBvZiB0aGVzZSBkZWZpbmVzLCBtYWtlIHN1cmUgdG8gY2hhbmdlIHRoZQorICogZGVmaW5lcyBpbiB0aGUgWHNlcnZlciBmaWxlICh4Zjg2ZHJtUmFkZW9uLmgpCisgKgorICogS1c6IGFjdHVhbGx5IGl0J3MgaWxsZWdhbCB0byBjaGFuZ2UgYW55IG9mIHRoaXMgKGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KS4KKyAqLworCisvKiBSYWRlb24gc3BlY2lmaWMgaW9jdGxzCisgKiBUaGUgZGV2aWNlIHNwZWNpZmljIGlvY3RsIHJhbmdlIGlzIDB4NDAgdG8gMHg3OS4KKyAqLworI2RlZmluZSBEUk1fUkFERU9OX0NQX0lOSVQgICAgMHgwMAorI2RlZmluZSBEUk1fUkFERU9OX0NQX1NUQVJUICAgMHgwMQorI2RlZmluZSBEUk1fUkFERU9OX0NQX1NUT1AgICAgMHgwMgorI2RlZmluZSBEUk1fUkFERU9OX0NQX1JFU0VUICAgMHgwMworI2RlZmluZSBEUk1fUkFERU9OX0NQX0lETEUgICAgMHgwNAorI2RlZmluZSBEUk1fUkFERU9OX1JFU0VUICAgICAgMHgwNQorI2RlZmluZSBEUk1fUkFERU9OX0ZVTExTQ1JFRU4gMHgwNgorI2RlZmluZSBEUk1fUkFERU9OX1NXQVAgICAgICAgMHgwNworI2RlZmluZSBEUk1fUkFERU9OX0NMRUFSICAgICAgMHgwOAorI2RlZmluZSBEUk1fUkFERU9OX1ZFUlRFWCAgICAgMHgwOQorI2RlZmluZSBEUk1fUkFERU9OX0lORElDRVMgICAgMHgwQQorI2RlZmluZSBEUk1fUkFERU9OX05PVF9VU0VECisjZGVmaW5lIERSTV9SQURFT05fU1RJUFBMRSAgICAweDBDCisjZGVmaW5lIERSTV9SQURFT05fSU5ESVJFQ1QgICAweDBECisjZGVmaW5lIERSTV9SQURFT05fVEVYVFVSRSAgICAweDBFCisjZGVmaW5lIERSTV9SQURFT05fVkVSVEVYMiAgICAweDBGCisjZGVmaW5lIERSTV9SQURFT05fQ01EQlVGICAgICAweDEwCisjZGVmaW5lIERSTV9SQURFT05fR0VUUEFSQU0gICAweDExCisjZGVmaW5lIERSTV9SQURFT05fRkxJUCAgICAgICAweDEyCisjZGVmaW5lIERSTV9SQURFT05fQUxMT0MgICAgICAweDEzCisjZGVmaW5lIERSTV9SQURFT05fRlJFRSAgICAgICAweDE0CisjZGVmaW5lIERSTV9SQURFT05fSU5JVF9IRUFQICAweDE1CisjZGVmaW5lIERSTV9SQURFT05fSVJRX0VNSVQgICAweDE2CisjZGVmaW5lIERSTV9SQURFT05fSVJRX1dBSVQgICAweDE3CisjZGVmaW5lIERSTV9SQURFT05fQ1BfUkVTVU1FICAweDE4CisjZGVmaW5lIERSTV9SQURFT05fU0VUUEFSQU0gICAweDE5CisjZGVmaW5lIERSTV9SQURFT05fU1VSRl9BTExPQyAweDFhCisjZGVmaW5lIERSTV9SQURFT05fU1VSRl9GUkVFICAweDFiCisKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9JTklUICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX0lOSVQsIGRybV9yYWRlb25faW5pdF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX1NUQVJUICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfU1RBUlQpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fQ1BfU1RPUCAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9DUF9TVE9QLCBkcm1fcmFkZW9uX2NwX3N0b3BfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DUF9SRVNFVCAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NQX1JFU0VUKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX0lETEUgICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfSURMRSkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9SRVNFVCAgICAgIERSTV9JTyggIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1JFU0VUKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0ZVTExTQ1JFRU4gRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fRlVMTFNDUkVFTiwgZHJtX3JhZGVvbl9mdWxsc2NyZWVuX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fU1dBUCAgICAgICBEUk1fSU8oICBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9TV0FQKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NMRUFSICAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ0xFQVIsIGRybV9yYWRlb25fY2xlYXJfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9WRVJURVggICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1ZFUlRFWCwgZHJtX3JhZGVvbl92ZXJ0ZXhfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JTkRJQ0VTICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lORElDRVMsIGRybV9yYWRlb25faW5kaWNlc190KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NUSVBQTEUgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU1RJUFBMRSwgZHJtX3JhZGVvbl9zdGlwcGxlX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSU5ESVJFQ1QgICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JTkRJUkVDVCwgZHJtX3JhZGVvbl9pbmRpcmVjdF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1RFWFRVUkUgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fVEVYVFVSRSwgZHJtX3JhZGVvbl90ZXh0dXJlX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fVkVSVEVYMiAgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9WRVJURVgyLCBkcm1fcmFkZW9uX3ZlcnRleDJfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9DTURCVUYgICAgIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0NNREJVRiwgZHJtX3JhZGVvbl9jbWRfYnVmZmVyX3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fR0VUUEFSQU0gICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9HRVRQQVJBTSwgZHJtX3JhZGVvbl9nZXRwYXJhbV90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0ZMSVAgICAgICAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fRkxJUCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9BTExPQyAgICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0FMTE9DLCBkcm1fcmFkZW9uX21lbV9hbGxvY190KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0ZSRUUgICAgICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fRlJFRSwgZHJtX3JhZGVvbl9tZW1fZnJlZV90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0lOSVRfSEVBUCAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fSU5JVF9IRUFQLCBkcm1fcmFkZW9uX21lbV9pbml0X2hlYXBfdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9JUlFfRU1JVCAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX0lSUV9FTUlULCBkcm1fcmFkZW9uX2lycV9lbWl0X3QpCisjZGVmaW5lIERSTV9JT0NUTF9SQURFT05fSVJRX1dBSVQgICBEUk1fSU9XKCBEUk1fQ09NTUFORF9CQVNFICsgRFJNX1JBREVPTl9JUlFfV0FJVCwgZHJtX3JhZGVvbl9pcnFfd2FpdF90KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX0NQX1JFU1VNRSAgRFJNX0lPKCAgRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fQ1BfUkVTVU1FKQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NFVFBBUkFNICAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU0VUUEFSQU0sIGRybV9yYWRlb25fc2V0cGFyYW1fdCkKKyNkZWZpbmUgRFJNX0lPQ1RMX1JBREVPTl9TVVJGX0FMTE9DIERSTV9JT1coIERSTV9DT01NQU5EX0JBU0UgKyBEUk1fUkFERU9OX1NVUkZfQUxMT0MsIGRybV9yYWRlb25fc3VyZmFjZV9hbGxvY190KQorI2RlZmluZSBEUk1fSU9DVExfUkFERU9OX1NVUkZfRlJFRSAgRFJNX0lPVyggRFJNX0NPTU1BTkRfQkFTRSArIERSTV9SQURFT05fU1VSRl9GUkVFLCBkcm1fcmFkZW9uX3N1cmZhY2VfZnJlZV90KQorCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2luaXQgeworCWVudW0geworCQlSQURFT05fSU5JVF9DUCA9IDB4MDEsCisJCVJBREVPTl9DTEVBTlVQX0NQID0gMHgwMiwKKwkJUkFERU9OX0lOSVRfUjIwMF9DUCA9IDB4MDMsCisJCVJBREVPTl9JTklUX1IzMDBfQ1AgPSAweDA0CisJfSBmdW5jOworCXVuc2lnbmVkIGxvbmcgc2FyZWFfcHJpdl9vZmZzZXQ7CisJaW50IGlzX3BjaTsKKwlpbnQgY3BfbW9kZTsKKwlpbnQgZ2FydF9zaXplOworCWludCByaW5nX3NpemU7CisJaW50IHVzZWNfdGltZW91dDsKKworCXVuc2lnbmVkIGludCBmYl9icHA7CisJdW5zaWduZWQgaW50IGZyb250X29mZnNldCwgZnJvbnRfcGl0Y2g7CisJdW5zaWduZWQgaW50IGJhY2tfb2Zmc2V0LCBiYWNrX3BpdGNoOworCXVuc2lnbmVkIGludCBkZXB0aF9icHA7CisJdW5zaWduZWQgaW50IGRlcHRoX29mZnNldCwgZGVwdGhfcGl0Y2g7CisKKwl1bnNpZ25lZCBsb25nIGZiX29mZnNldDsKKwl1bnNpZ25lZCBsb25nIG1taW9fb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgcmluZ19vZmZzZXQ7CisJdW5zaWduZWQgbG9uZyByaW5nX3JwdHJfb2Zmc2V0OworCXVuc2lnbmVkIGxvbmcgYnVmZmVyc19vZmZzZXQ7CisJdW5zaWduZWQgbG9uZyBnYXJ0X3RleHR1cmVzX29mZnNldDsKK30gZHJtX3JhZGVvbl9pbml0X3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fY3Bfc3RvcCB7CisJaW50IGZsdXNoOworCWludCBpZGxlOworfSBkcm1fcmFkZW9uX2NwX3N0b3BfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9mdWxsc2NyZWVuIHsKKwllbnVtIHsKKwkJUkFERU9OX0lOSVRfRlVMTFNDUkVFTiA9IDB4MDEsCisJCVJBREVPTl9DTEVBTlVQX0ZVTExTQ1JFRU4gPSAweDAyCisJfSBmdW5jOworfSBkcm1fcmFkZW9uX2Z1bGxzY3JlZW5fdDsKKworI2RlZmluZSBDTEVBUl9YMQkwCisjZGVmaW5lIENMRUFSX1kxCTEKKyNkZWZpbmUgQ0xFQVJfWDIJMgorI2RlZmluZSBDTEVBUl9ZMgkzCisjZGVmaW5lIENMRUFSX0RFUFRICTQKKwordHlwZWRlZiB1bmlvbiBkcm1fcmFkZW9uX2NsZWFyX3JlY3QgeworCWZsb2F0IGZbNV07CisJdW5zaWduZWQgaW50IHVpWzVdOworfSBkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9jbGVhciB7CisJdW5zaWduZWQgaW50IGZsYWdzOworCXVuc2lnbmVkIGludCBjbGVhcl9jb2xvcjsKKwl1bnNpZ25lZCBpbnQgY2xlYXJfZGVwdGg7CisJdW5zaWduZWQgaW50IGNvbG9yX21hc2s7CisJdW5zaWduZWQgaW50IGRlcHRoX21hc2s7CS8qIG1pc25hbWVkIGZpZWxkOiAgc2hvdWxkIGJlIHN0ZW5jaWwgKi8KKwlkcm1fcmFkZW9uX2NsZWFyX3JlY3RfdCBfX3VzZXIgKmRlcHRoX2JveGVzOworfSBkcm1fcmFkZW9uX2NsZWFyX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fdmVydGV4IHsKKwlpbnQgcHJpbTsKKwlpbnQgaWR4OwkJLyogSW5kZXggb2YgdmVydGV4IGJ1ZmZlciAqLworCWludCBjb3VudDsJCS8qIE51bWJlciBvZiB2ZXJ0aWNlcyBpbiBidWZmZXIgKi8KKwlpbnQgZGlzY2FyZDsJCS8qIENsaWVudCBmaW5pc2hlZCB3aXRoIGJ1ZmZlcj8gKi8KK30gZHJtX3JhZGVvbl92ZXJ0ZXhfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pbmRpY2VzIHsKKwlpbnQgcHJpbTsKKwlpbnQgaWR4OworCWludCBzdGFydDsKKwlpbnQgZW5kOworCWludCBkaXNjYXJkOwkJLyogQ2xpZW50IGZpbmlzaGVkIHdpdGggYnVmZmVyPyAqLworfSBkcm1fcmFkZW9uX2luZGljZXNfdDsKKworLyogdjEuMiAtIG9ic29sZXRlcyBkcm1fcmFkZW9uX3ZlcnRleCBhbmQgZHJtX3JhZGVvbl9pbmRpY2VzCisgKiAgICAgIC0gYWxsb3dzIG11bHRpcGxlIHByaW1pdGl2ZXMgYW5kIHN0YXRlIGNoYW5nZXMgaW4gYSBzaW5nbGUgaW9jdGwKKyAqICAgICAgLSBzdXBwb3J0cyBkcml2ZXIgY2hhbmdlIHRvIGVtaXQgbmF0aXZlIHByaW1pdGl2ZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl92ZXJ0ZXgyIHsKKwlpbnQgaWR4OwkJLyogSW5kZXggb2YgdmVydGV4IGJ1ZmZlciAqLworCWludCBkaXNjYXJkOwkJLyogQ2xpZW50IGZpbmlzaGVkIHdpdGggYnVmZmVyPyAqLworCWludCBucl9zdGF0ZXM7CisJZHJtX3JhZGVvbl9zdGF0ZV90IF9fdXNlciAqc3RhdGU7CisJaW50IG5yX3ByaW1zOworCWRybV9yYWRlb25fcHJpbV90IF9fdXNlciAqcHJpbTsKK30gZHJtX3JhZGVvbl92ZXJ0ZXgyX3Q7CisKKy8qIHYxLjMgLSBvYnNvbGV0ZXMgZHJtX3JhZGVvbl92ZXJ0ZXgyCisgKiAgICAgIC0gYWxsb3dzIGFyYml0YXJpbHkgbGFyZ2UgY2xpcHJlY3QgbGlzdAorICogICAgICAtIGFsbG93cyB1cGRhdGluZyBvZiB0Y2wgcGFja2V0LCB2ZWN0b3IgYW5kIHNjYWxhciBzdGF0ZQorICogICAgICAtIGFsbG93cyBtZW1vcnktZWZmaWNpZW50IGRlc2NyaXB0aW9uIG9mIHN0YXRlIHVwZGF0ZXMKKyAqICAgICAgLSBhbGxvd3Mgc3RhdGUgdG8gYmUgZW1pdHRlZCB3aXRob3V0IGEgcHJpbWl0aXZlCisgKiAgICAgICAgICAgKGZvciBjbGVhcnMsIGN0eCBzd2l0Y2hlcykKKyAqICAgICAgLSBhbGxvd3MgbW9yZSB0aGFuIG9uZSBkbWEgYnVmZmVyIHRvIGJlIHJlZmVyZW5jZWQgcGVyIGlvY3RsCisgKiAgICAgIC0gc3VwcG9ydHMgdGNsIGRyaXZlcgorICogICAgICAtIG1heSBiZSBleHRlbmRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgd2l0aCBuZXcgY21kIHR5cGVzLCBwYWNrZXRzCisgKi8KK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fY21kX2J1ZmZlciB7CisJaW50IGJ1ZnN6OworCWNoYXIgX191c2VyICpidWY7CisJaW50IG5ib3g7CisJc3RydWN0IGRybV9jbGlwX3JlY3QgX191c2VyICpib3hlczsKK30gZHJtX3JhZGVvbl9jbWRfYnVmZmVyX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fdGV4X2ltYWdlIHsKKwl1bnNpZ25lZCBpbnQgeCwgeTsJLyogQmxpdCBjb29yZGluYXRlcyAqLworCXVuc2lnbmVkIGludCB3aWR0aCwgaGVpZ2h0OworCWNvbnN0IHZvaWQgX191c2VyICpkYXRhOworfSBkcm1fcmFkZW9uX3RleF9pbWFnZV90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX3RleHR1cmUgeworCXVuc2lnbmVkIGludCBvZmZzZXQ7CisJaW50IHBpdGNoOworCWludCBmb3JtYXQ7CisJaW50IHdpZHRoOwkJLyogVGV4dHVyZSBpbWFnZSBjb29yZGluYXRlcyAqLworCWludCBoZWlnaHQ7CisJZHJtX3JhZGVvbl90ZXhfaW1hZ2VfdCBfX3VzZXIgKmltYWdlOworfSBkcm1fcmFkZW9uX3RleHR1cmVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zdGlwcGxlIHsKKwl1bnNpZ25lZCBpbnQgX191c2VyICptYXNrOworfSBkcm1fcmFkZW9uX3N0aXBwbGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pbmRpcmVjdCB7CisJaW50IGlkeDsKKwlpbnQgc3RhcnQ7CisJaW50IGVuZDsKKwlpbnQgZGlzY2FyZDsKK30gZHJtX3JhZGVvbl9pbmRpcmVjdF90OworCisvKiBlbnVtIGZvciBjYXJkIHR5cGUgcGFyYW1ldGVycyAqLworI2RlZmluZSBSQURFT05fQ0FSRF9QQ0kgMAorI2RlZmluZSBSQURFT05fQ0FSRF9BR1AgMQorI2RlZmluZSBSQURFT05fQ0FSRF9QQ0lFIDIKKworLyogMS4zOiBBbiBpb2N0bCB0byBnZXQgcGFyYW1ldGVycyB0aGF0IGFyZW4ndCBhdmFpbGFibGUgdG8gdGhlIDNkCisgKiBjbGllbnQgYW55IG90aGVyIHdheS4KKyAqLworI2RlZmluZSBSQURFT05fUEFSQU1fR0FSVF9CVUZGRVJfT0ZGU0VUICAgIDEJLyogY2FyZCBvZmZzZXQgb2YgMXN0IEdBUlQgYnVmZmVyICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9MQVNUX0ZSQU1FICAgICAgICAgICAgMgorI2RlZmluZSBSQURFT05fUEFSQU1fTEFTVF9ESVNQQVRDSCAgICAgICAgIDMKKyNkZWZpbmUgUkFERU9OX1BBUkFNX0xBU1RfQ0xFQVIgICAgICAgICAgICA0CisvKiBBZGRlZCB3aXRoIERSTSB2ZXJzaW9uIDEuNi4gKi8KKyNkZWZpbmUgUkFERU9OX1BBUkFNX0lSUV9OUiAgICAgICAgICAgICAgICA1CisjZGVmaW5lIFJBREVPTl9QQVJBTV9HQVJUX0JBU0UgICAgICAgICAgICAgNgkvKiBjYXJkIG9mZnNldCBvZiBHQVJUIGJhc2UgKi8KKy8qIEFkZGVkIHdpdGggRFJNIHZlcnNpb24gMS44LiAqLworI2RlZmluZSBSQURFT05fUEFSQU1fUkVHSVNURVJfSEFORExFICAgICAgIDcJLyogZm9yIGRybU1hcCgpICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9TVEFUVVNfSEFORExFICAgICAgICAgOAorI2RlZmluZSBSQURFT05fUEFSQU1fU0FSRUFfSEFORExFICAgICAgICAgIDkKKyNkZWZpbmUgUkFERU9OX1BBUkFNX0dBUlRfVEVYX0hBTkRMRSAgICAgICAxMAorI2RlZmluZSBSQURFT05fUEFSQU1fU0NSQVRDSF9PRkZTRVQgICAgICAgIDExCisjZGVmaW5lIFJBREVPTl9QQVJBTV9DQVJEX1RZUEUgICAgICAgICAgICAgMTIKKyNkZWZpbmUgUkFERU9OX1BBUkFNX1ZCTEFOS19DUlRDICAgICAgICAgICAxMyAgIC8qIFZCTEFOSyBDUlRDICovCisjZGVmaW5lIFJBREVPTl9QQVJBTV9GQl9MT0NBVElPTiAgICAgICAgICAgMTQgICAvKiBGQiBsb2NhdGlvbiAqLworI2RlZmluZSBSQURFT05fUEFSQU1fTlVNX0dCX1BJUEVTICAgICAgICAgIDE1ICAgLyogbnVtIEdCIHBpcGVzICovCisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fZ2V0cGFyYW0geworCWludCBwYXJhbTsKKwl2b2lkIF9fdXNlciAqdmFsdWU7Cit9IGRybV9yYWRlb25fZ2V0cGFyYW1fdDsKKworLyogMS42OiBTZXQgdXAgYSBtZW1vcnkgbWFuYWdlciBmb3IgcmVnaW9ucyBvZiBzaGFyZWQgbWVtb3J5OgorICovCisjZGVmaW5lIFJBREVPTl9NRU1fUkVHSU9OX0dBUlQgMQorI2RlZmluZSBSQURFT05fTUVNX1JFR0lPTl9GQiAgIDIKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1fYWxsb2MgeworCWludCByZWdpb247CisJaW50IGFsaWdubWVudDsKKwlpbnQgc2l6ZTsKKwlpbnQgX191c2VyICpyZWdpb25fb2Zmc2V0OwkvKiBvZmZzZXQgZnJvbSBzdGFydCBvZiBmYiBvciBHQVJUICovCit9IGRybV9yYWRlb25fbWVtX2FsbG9jX3Q7CisKK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fbWVtX2ZyZWUgeworCWludCByZWdpb247CisJaW50IHJlZ2lvbl9vZmZzZXQ7Cit9IGRybV9yYWRlb25fbWVtX2ZyZWVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9tZW1faW5pdF9oZWFwIHsKKwlpbnQgcmVnaW9uOworCWludCBzaXplOworCWludCBzdGFydDsKK30gZHJtX3JhZGVvbl9tZW1faW5pdF9oZWFwX3Q7CisKKy8qIDEuNjogVXNlcnNwYWNlIGNhbiByZXF1ZXN0ICYgd2FpdCBvbiBpcnEnczoKKyAqLwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9pcnFfZW1pdCB7CisJaW50IF9fdXNlciAqaXJxX3NlcTsKK30gZHJtX3JhZGVvbl9pcnFfZW1pdF90OworCit0eXBlZGVmIHN0cnVjdCBkcm1fcmFkZW9uX2lycV93YWl0IHsKKwlpbnQgaXJxX3NlcTsKK30gZHJtX3JhZGVvbl9pcnFfd2FpdF90OworCisvKiAxLjEwOiBDbGllbnRzIHRlbGwgdGhlIERSTSB3aGVyZSB0aGV5IHRoaW5rIHRoZSBmcmFtZWJ1ZmZlciBpcyBsb2NhdGVkIGluCisgKiB0aGUgY2FyZCdzIGFkZHJlc3Mgc3BhY2UsIHZpYSBhIG5ldyBnZW5lcmljIGlvY3RsIHRvIHNldCBwYXJhbWV0ZXJzCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zZXRwYXJhbSB7CisJdW5zaWduZWQgaW50IHBhcmFtOworCWludDY0X3QgdmFsdWU7Cit9IGRybV9yYWRlb25fc2V0cGFyYW1fdDsKKworI2RlZmluZSBSQURFT05fU0VUUEFSQU1fRkJfTE9DQVRJT04gICAgMQkvKiBkZXRlcm1pbmVkIGZyYW1lYnVmZmVyIGxvY2F0aW9uICovCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9TV0lUQ0hfVElMSU5HICAyCS8qIGVuYWJsZS9kaXNhYmxlIGNvbG9yIHRpbGluZyAqLworI2RlZmluZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9MT0NBVElPTiAzCS8qIFBDSSBHYXJ0IExvY2F0aW9uICovCisjZGVmaW5lIFJBREVPTl9TRVRQQVJBTV9ORVdfTUVNTUFQIDQJCS8qIFVzZSBuZXcgbWVtb3J5IG1hcCAqLworI2RlZmluZSBSQURFT05fU0VUUEFSQU1fUENJR0FSVF9UQUJMRV9TSVpFIDUgICAgLyogUENJIEdBUlQgVGFibGUgU2l6ZSAqLworI2RlZmluZSBSQURFT05fU0VUUEFSQU1fVkJMQU5LX0NSVEMgNiAgICAgICAgICAgLyogVkJMQU5LIENSVEMgKi8KKy8qIDEuMTQ6IENsaWVudHMgY2FuIGFsbG9jYXRlL2ZyZWUgYSBzdXJmYWNlCisgKi8KK3R5cGVkZWYgc3RydWN0IGRybV9yYWRlb25fc3VyZmFjZV9hbGxvYyB7CisJdW5zaWduZWQgaW50IGFkZHJlc3M7CisJdW5zaWduZWQgaW50IHNpemU7CisJdW5zaWduZWQgaW50IGZsYWdzOworfSBkcm1fcmFkZW9uX3N1cmZhY2VfYWxsb2NfdDsKKwordHlwZWRlZiBzdHJ1Y3QgZHJtX3JhZGVvbl9zdXJmYWNlX2ZyZWUgeworCXVuc2lnbmVkIGludCBhZGRyZXNzOworfSBkcm1fcmFkZW9uX3N1cmZhY2VfZnJlZV90OworCisjZGVmaW5lCURSTV9SQURFT05fVkJMQU5LX0NSVEMxCQkxCisjZGVmaW5lCURSTV9SQURFT05fVkJMQU5LX0NSVEMyCQkyCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL2RybS9zYXZhZ2VfZHJtLmggYi9pbmNsdWRlL2RybS9zYXZhZ2VfZHJtLmgKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGRyaXZlcnMvY2hhci9kcm0vc2F2YWdlX2RybS5oCnJlbmFtZSB0byBpbmNsdWRlL2RybS9zYXZhZ2VfZHJtLmgKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9kcm0vc2lzX2RybS5oIGIvaW5jbHVkZS9kcm0vc2lzX2RybS5oCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBkcml2ZXJzL2NoYXIvZHJtL3Npc19kcm0uaApyZW5hbWUgdG8gaW5jbHVkZS9kcm0vc2lzX2RybS5oCmRpZmYgLS1naXQgYS9kcml2ZXJzL2NoYXIvZHJtL3ZpYV9kcm0uaCBiL2luY2x1ZGUvZHJtL3ZpYV9kcm0uaApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gZHJpdmVycy9jaGFyL2RybS92aWFfZHJtLmgKcmVuYW1lIHRvIGluY2x1ZGUvZHJtL3ZpYV9kcm0uaApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9LYnVpbGQgYi9pbmNsdWRlL2xpbnV4L0tidWlsZAppbmRleCA5M2I5ODg1Li43MWQ3MGQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L0tidWlsZAorKysgYi9pbmNsdWRlL2xpbnV4L0tidWlsZApAQCAtMTY2LDYgKzE2Niw5IEBACiB1bmlmZGVmLXkgKz0gYWRiLmgKIHVuaWZkZWYteSArPSBhZGZzX2ZzLmgKIHVuaWZkZWYteSArPSBhZ3BnYXJ0LmgKK2lmbmVxICgkKHdpbGRjYXJkICQoc3JjdHJlZSkvaW5jbHVkZS9hc20tJChTUkNBUkNIKS9hLm91dC5oKSwpCit1bmlmZGVmLXkgKz0gYS5vdXQuaAorZW5kaWYKIHVuaWZkZWYteSArPSBhcG1fYmlvcy5oCiB1bmlmZGVmLXkgKz0gYXRhbGsuaAogdW5pZmRlZi15ICs9IGF0bWRldi5oCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Eub3V0LmggYi9pbmNsdWRlL2xpbnV4L2Eub3V0LmgKaW5kZXggMjA4ZjRlOC4uZTg2ZGZjYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hLm91dC5oCisrKyBiL2luY2x1ZGUvbGludXgvYS5vdXQuaApAQCAtMSw4ICsxLDYgQEAKICNpZm5kZWYgX19BX09VVF9HTlVfSF9fCiAjZGVmaW5lIF9fQV9PVVRfR05VX0hfXwogCi0jaWZkZWYgQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVAotCiAjZGVmaW5lIF9fR05VX0VYRUNfTUFDUk9TX18KIAogI2lmbmRlZiBfX1NUUlVDVF9FWEVDX09WRVJSSURFX18KQEAgLTI3NywxMCArMjc1LDQgQEAKICNlbmRpZiAvKiBubyBOX1JFTE9DQVRJT05fSU5GT19ERUNMQVJFRC4gICovCiAKICNlbmRpZiAvKl9fQVNTRU1CTFlfXyAqLwotI2Vsc2UgLyogQ09ORklHX0FSQ0hfU1VQUE9SVFNfQU9VVCAqLwotI2lmbmRlZiBfX0FTU0VNQkxZX18KLXN0cnVjdCBleGVjIHsKLX07Ci0jZW5kaWYKLSNlbmRpZiAvKiBDT05GSUdfQVJDSF9TVVBQT1JUU19BT1VUICovCiAjZW5kaWYgLyogX19BX09VVF9HTlVfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2FjcGkuaCBiL2luY2x1ZGUvbGludXgvYWNwaS5oCmluZGV4IDQxZjdjZTcuLjA2MDEwNzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYWNwaS5oCisrKyBiL2luY2x1ZGUvbGludXgvYWNwaS5oCkBAIC04Miw2ICs4Miw3IEBACiBpbnQgZWFybHlfYWNwaV9ib290X2luaXQodm9pZCk7CiBpbnQgYWNwaV9ib290X2luaXQgKHZvaWQpOwogaW50IGFjcGlfYm9vdF90YWJsZV9pbml0ICh2b2lkKTsKK2ludCBhY3BpX21wc19jaGVjayAodm9pZCk7CiBpbnQgYWNwaV9udW1hX2luaXQgKHZvaWQpOwogCiBpbnQgYWNwaV90YWJsZV9pbml0ICh2b2lkKTsKQEAgLTI1MCw2ICsyNTEsMTEgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgYWNwaV9tcHNfY2hlY2sodm9pZCkKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgYWNwaV9jaGVja19yZXNvdXJjZV9jb25mbGljdChzdHJ1Y3QgcmVzb3VyY2UgKnJlcykKIHsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYWdwX2JhY2tlbmQuaCBiL2luY2x1ZGUvbGludXgvYWdwX2JhY2tlbmQuaAppbmRleCA2NjFkOTBkLi45NzJiMTJiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2FncF9iYWNrZW5kLmgKKysrIGIvaW5jbHVkZS9saW51eC9hZ3BfYmFja2VuZC5oCkBAIC0zMCwxNCArMzAsNiBAQAogI2lmbmRlZiBfQUdQX0JBQ0tFTkRfSAogI2RlZmluZSBfQUdQX0JBQ0tFTkRfSCAxCiAKLSNpZm5kZWYgVFJVRQotI2RlZmluZSBUUlVFIDEKLSNlbmRpZgotCi0jaWZuZGVmIEZBTFNFCi0jZGVmaW5lIEZBTFNFIDAKLSNlbmRpZgotCiBlbnVtIGNoaXBzZXRfdHlwZSB7CiAJTk9UX1NVUFBPUlRFRCwKIAlTVVBQT1JURUQsCkBAIC01Nyw3ICs0OSw3IEBACiAJc2l6ZV90IGFwZXJfc2l6ZTsKIAlpbnQgbWF4X21lbW9yeTsJCS8qIEluIHBhZ2VzICovCiAJaW50IGN1cnJlbnRfbWVtb3J5OwotCWludCBjYW50X3VzZV9hcGVydHVyZTsKKwlib29sIGNhbnRfdXNlX2FwZXJ0dXJlOwogCXVuc2lnbmVkIGxvbmcgcGFnZV9tYXNrOwogCXN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCAqdm1fb3BzOwogfTsKQEAgLTgzLDkgKzc1LDkgQEAKIAlvZmZfdCBwZ19zdGFydDsKIAl1MzIgdHlwZTsKIAl1MzIgcGh5c2ljYWw7Ci0JdTggaXNfYm91bmQ7Ci0JdTggaXNfZmx1c2hlZDsKLSAgICAgICAgdTggdm1hbGxvY19mbGFnOworCWJvb2wgaXNfYm91bmQ7CisJYm9vbCBpc19mbHVzaGVkOworICAgICAgICBib29sIHZtYWxsb2NfZmxhZzsKIH07CiAKICNkZWZpbmUgQUdQX05PUk1BTF9NRU1PUlkgMApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9hZ3BnYXJ0LmggYi9pbmNsdWRlL2xpbnV4L2FncGdhcnQuaAppbmRleCA2MmFlZjU4Li5jOGZkYjZlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2FncGdhcnQuaAorKysgYi9pbmNsdWRlL2xpbnV4L2FncGdhcnQuaApAQCAtMjA2LDggKzIwNiw4IEBACiAJc3RydWN0IGFncF9jb250cm9sbGVyICpjdXJyZW50X2NvbnRyb2xsZXI7CiAJc3RydWN0IGFncF9jb250cm9sbGVyICpjb250cm9sbGVyczsKIAlzdHJ1Y3QgYWdwX2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2X2xpc3Q7Ci0JdTggdXNlZF9ieV9jb250cm9sbGVyOwotCXU4IGJhY2tlbmRfYWNxdWlyZWQ7CisJYm9vbCB1c2VkX2J5X2NvbnRyb2xsZXI7CisJYm9vbCBiYWNrZW5kX2FjcXVpcmVkOwogfTsKIAogI2VuZGlmCQkJCS8qIF9fS0VSTkVMX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaAppbmRleCA2M2MzYmI5Li44YjgyOTc0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKKysrIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCkBAIC01NzEsNyArNTcxLDcgQEAKIGV4dGVybiBpbnQJCSAgICBhdWRpdF91cGRhdGVfbHNtX3J1bGVzKHZvaWQpOwogCiAJCQkJLyogUHJpdmF0ZSBBUEkgKGZvciBhdWRpdC5jIG9ubHkpICovCi1leHRlcm4gaW50IGF1ZGl0X2ZpbHRlcl91c2VyKHN0cnVjdCBuZXRsaW5rX3NrYl9wYXJtcyAqY2IsIGludCB0eXBlKTsKK2V4dGVybiBpbnQgYXVkaXRfZmlsdGVyX3VzZXIoc3RydWN0IG5ldGxpbmtfc2tiX3Bhcm1zICpjYik7CiBleHRlcm4gaW50IGF1ZGl0X2ZpbHRlcl90eXBlKGludCB0eXBlKTsKIGV4dGVybiBpbnQgIGF1ZGl0X3JlY2VpdmVfZmlsdGVyKGludCB0eXBlLCBpbnQgcGlkLCBpbnQgdWlkLCBpbnQgc2VxLAogCQkJCXZvaWQgKmRhdGEsIHNpemVfdCBkYXRhc3osIHVpZF90IGxvZ2ludWlkLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9iaW8uaCBiL2luY2x1ZGUvbGludXgvYmlvLmgKaW5kZXggNjFjMTVlYS4uMDkzM2ExNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9iaW8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2Jpby5oCkBAIC02NCw2ICs2NCw3IEBACiAKIHN0cnVjdCBiaW9fc2V0Owogc3RydWN0IGJpbzsKK3N0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQ7CiB0eXBlZGVmIHZvaWQgKGJpb19lbmRfaW9fdCkgKHN0cnVjdCBiaW8gKiwgaW50KTsKIHR5cGVkZWYgdm9pZCAoYmlvX2Rlc3RydWN0b3JfdCkgKHN0cnVjdCBiaW8gKik7CiAKQEAgLTExMiw2ICsxMTMsOSBAQAogCWF0b21pY190CQliaV9jbnQ7CQkvKiBwaW4gY291bnQgKi8KIAogCXZvaWQJCQkqYmlfcHJpdmF0ZTsKKyNpZiBkZWZpbmVkKENPTkZJR19CTEtfREVWX0lOVEVHUklUWSkKKwlzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaV9pbnRlZ3JpdHk7ICAvKiBkYXRhIGludGVncml0eSAqLworI2VuZGlmCiAKIAliaW9fZGVzdHJ1Y3Rvcl90CSpiaV9kZXN0cnVjdG9yOwkvKiBkZXN0cnVjdG9yICovCiB9OwpAQCAtMjcxLDYgKzI3NSwyOSBAQAogICovCiAjZGVmaW5lIGJpb19nZXQoYmlvKQlhdG9taWNfaW5jKCYoYmlvKS0+YmlfY250KQogCisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisvKgorICogYmlvIGludGVncml0eSBwYXlsb2FkCisgKi8KK3N0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgeworCXN0cnVjdCBiaW8JCSpiaXBfYmlvOwkvKiBwYXJlbnQgYmlvICovCisJc3RydWN0IGJpb192ZWMJCSpiaXBfdmVjOwkvKiBpbnRlZ3JpdHkgZGF0YSB2ZWN0b3IgKi8KKworCXNlY3Rvcl90CQliaXBfc2VjdG9yOwkvKiB2aXJ0dWFsIHN0YXJ0IHNlY3RvciAqLworCisJdm9pZAkJCSpiaXBfYnVmOwkvKiBnZW5lcmF0ZWQgaW50ZWdyaXR5IGRhdGEgKi8KKwliaW9fZW5kX2lvX3QJCSpiaXBfZW5kX2lvOwkvKiBzYXZlZCBJL08gY29tcGxldGlvbiBmbiAqLworCisJaW50CQkJYmlwX2Vycm9yOwkvKiBzYXZlZCBJL08gZXJyb3IgKi8KKwl1bnNpZ25lZCBpbnQJCWJpcF9zaXplOworCisJdW5zaWduZWQgc2hvcnQJCWJpcF9wb29sOwkvKiBwb29sIHRoZSBpdmVjIGNhbWUgZnJvbSAqLworCXVuc2lnbmVkIHNob3J0CQliaXBfdmNudDsJLyogIyBvZiBpbnRlZ3JpdHkgYmlvX3ZlY3MgKi8KKwl1bnNpZ25lZCBzaG9ydAkJYmlwX2lkeDsJLyogY3VycmVudCBiaXBfdmVjIGluZGV4ICovCisKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QJYmlwX3dvcms7CS8qIEkvTyBjb21wbGV0aW9uICovCit9OworI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lOVEVHUklUWSAqLwogCiAvKgogICogQSBiaW9fcGFpciBpcyB1c2VkIHdoZW4gd2UgbmVlZCB0byBzcGxpdCBhIGJpby4KQEAgLTI4MywxMCArMzEwLDE0IEBACiAgKiAgIGluIGJpbzIuYmlfcHJpdmF0ZQogICovCiBzdHJ1Y3QgYmlvX3BhaXIgewotCXN0cnVjdCBiaW8JYmlvMSwgYmlvMjsKLQlzdHJ1Y3QgYmlvX3ZlYwlidjEsIGJ2MjsKLQlhdG9taWNfdAljbnQ7Ci0JaW50CQllcnJvcjsKKwlzdHJ1Y3QgYmlvCQkJYmlvMSwgYmlvMjsKKwlzdHJ1Y3QgYmlvX3ZlYwkJCWJ2MSwgYnYyOworI2lmIGRlZmluZWQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQorCXN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQJYmlwMSwgYmlwMjsKKwlzdHJ1Y3QgYmlvX3ZlYwkJCWl2MSwgaXYyOworI2VuZGlmCisJYXRvbWljX3QJCQljbnQ7CisJaW50CQkJCWVycm9yOwogfTsKIGV4dGVybiBzdHJ1Y3QgYmlvX3BhaXIgKmJpb19zcGxpdChzdHJ1Y3QgYmlvICpiaSwgbWVtcG9vbF90ICpwb29sLAogCQkJCSAgaW50IGZpcnN0X3NlY3RvcnMpOwpAQCAtMzMzLDYgKzM2NCwzOSBAQAogCQkJCSAgICAgaW50LCBpbnQpOwogZXh0ZXJuIGludCBiaW9fdW5jb3B5X3VzZXIoc3RydWN0IGJpbyAqKTsKIHZvaWQgemVyb19maWxsX2JpbyhzdHJ1Y3QgYmlvICpiaW8pOworZXh0ZXJuIHN0cnVjdCBiaW9fdmVjICpidmVjX2FsbG9jX2JzKGdmcF90LCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgc3RydWN0IGJpb19zZXQgKik7CitleHRlcm4gdW5zaWduZWQgaW50IGJ2ZWNfbnJfdmVjcyh1bnNpZ25lZCBzaG9ydCBpZHgpOworCisvKgorICogYmlvX3NldCBpcyB1c2VkIHRvIGFsbG93IG90aGVyIHBvcnRpb25zIG9mIHRoZSBJTyBzeXN0ZW0gdG8KKyAqIGFsbG9jYXRlIHRoZWlyIG93biBwcml2YXRlIG1lbW9yeSBwb29scyBmb3IgYmlvIGFuZCBpb3ZlYyBzdHJ1Y3R1cmVzLgorICogVGhlc2UgbWVtb3J5IHBvb2xzIGluIHR1cm4gYWxsIGFsbG9jYXRlIGZyb20gdGhlIGJpb19zbGFiCisgKiBhbmQgdGhlIGJ2ZWNfc2xhYnNbXS4KKyAqLworI2RlZmluZSBCSU9fUE9PTF9TSVpFIDIKKyNkZWZpbmUgQklPVkVDX05SX1BPT0xTIDYKKworc3RydWN0IGJpb19zZXQgeworCW1lbXBvb2xfdCAqYmlvX3Bvb2w7CisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisJbWVtcG9vbF90ICpiaW9faW50ZWdyaXR5X3Bvb2w7CisjZW5kaWYKKwltZW1wb29sX3QgKmJ2ZWNfcG9vbHNbQklPVkVDX05SX1BPT0xTXTsKK307CisKK3N0cnVjdCBiaW92ZWNfc2xhYiB7CisJaW50IG5yX3ZlY3M7CisJY2hhciAqbmFtZTsKKwlzdHJ1Y3Qga21lbV9jYWNoZSAqc2xhYjsKK307CisKK2V4dGVybiBzdHJ1Y3QgYmlvX3NldCAqZnNfYmlvX3NldDsKKworLyoKKyAqIGEgc21hbGwgbnVtYmVyIG9mIGVudHJpZXMgaXMgZmluZSwgbm90IGdvaW5nIHRvIGJlIHBlcmZvcm1hbmNlIGNyaXRpY2FsLgorICogYmFzaWNhbGx5IHdlIGp1c3QgbmVlZCB0byBzdXJ2aXZlCisgKi8KKyNkZWZpbmUgQklPX1NQTElUX0VOVFJJRVMgMgogCiAjaWZkZWYgQ09ORklHX0hJR0hNRU0KIC8qCkBAIC0zODEsNSArNDQ1LDYzIEBACiAJX19iaW9fa21hcF9pcnEoKGJpbyksIChiaW8pLT5iaV9pZHgsIChmbGFncykpCiAjZGVmaW5lIGJpb19rdW5tYXBfaXJxKGJ1ZixmbGFncykJX19iaW9fa3VubWFwX2lycShidWYsIGZsYWdzKQogCisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisKKyNkZWZpbmUgYmlwX3ZlY19pZHgoYmlwLCBpZHgpCSgmKGJpcC0+YmlwX3ZlY1soaWR4KV0pKQorI2RlZmluZSBiaXBfdmVjKGJpcCkJCWJpcF92ZWNfaWR4KGJpcCwgMCkKKworI2RlZmluZSBfX2JpcF9mb3JfZWFjaF92ZWMoYnZsLCBiaXAsIGksIHN0YXJ0X2lkeCkJCQlcCisJZm9yIChidmwgPSBiaXBfdmVjX2lkeCgoYmlwKSwgKHN0YXJ0X2lkeCkpLCBpID0gKHN0YXJ0X2lkeCk7CVwKKwkgICAgIGkgPCAoYmlwKS0+YmlwX3ZjbnQ7CQkJCQlcCisJICAgICBidmwrKywgaSsrKQorCisjZGVmaW5lIGJpcF9mb3JfZWFjaF92ZWMoYnZsLCBiaXAsIGkpCQkJCQlcCisJX19iaXBfZm9yX2VhY2hfdmVjKGJ2bCwgYmlwLCBpLCAoYmlwKS0+YmlwX2lkeCkKKworc3RhdGljIGlubGluZSBpbnQgYmlvX2ludGVncml0eShzdHJ1Y3QgYmlvICpiaW8pCit7CisjaWYgZGVmaW5lZChDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkpCisJcmV0dXJuIGJpby0+YmlfaW50ZWdyaXR5ICE9IE5VTEw7CisjZWxzZQorCXJldHVybiAwOworI2VuZGlmCit9CisKK2V4dGVybiBzdHJ1Y3QgYmlvX2ludGVncml0eV9wYXlsb2FkICpiaW9faW50ZWdyaXR5X2FsbG9jX2Jpb3NldChzdHJ1Y3QgYmlvICosIGdmcF90LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIHN0cnVjdCBiaW9faW50ZWdyaXR5X3BheWxvYWQgKmJpb19pbnRlZ3JpdHlfYWxsb2Moc3RydWN0IGJpbyAqLCBnZnBfdCwgdW5zaWduZWQgaW50KTsKK2V4dGVybiB2b2lkIGJpb19pbnRlZ3JpdHlfZnJlZShzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fc2V0ICopOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2FkZF9wYWdlKHN0cnVjdCBiaW8gKiwgc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2VuYWJsZWQoc3RydWN0IGJpbyAqYmlvKTsKK2V4dGVybiBpbnQgYmlvX2ludGVncml0eV9zZXRfdGFnKHN0cnVjdCBiaW8gKiwgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2dldF90YWcoc3RydWN0IGJpbyAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gaW50IGJpb19pbnRlZ3JpdHlfcHJlcChzdHJ1Y3QgYmlvICopOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9lbmRpbyhzdHJ1Y3QgYmlvICosIGludCk7CitleHRlcm4gdm9pZCBiaW9faW50ZWdyaXR5X2FkdmFuY2Uoc3RydWN0IGJpbyAqLCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV90cmltKHN0cnVjdCBiaW8gKiwgdW5zaWduZWQgaW50LCB1bnNpZ25lZCBpbnQpOworZXh0ZXJuIHZvaWQgYmlvX2ludGVncml0eV9zcGxpdChzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fcGFpciAqLCBpbnQpOworZXh0ZXJuIGludCBiaW9faW50ZWdyaXR5X2Nsb25lKHN0cnVjdCBiaW8gKiwgc3RydWN0IGJpbyAqLCBzdHJ1Y3QgYmlvX3NldCAqKTsKK2V4dGVybiBpbnQgYmlvc2V0X2ludGVncml0eV9jcmVhdGUoc3RydWN0IGJpb19zZXQgKiwgaW50KTsKK2V4dGVybiB2b2lkIGJpb3NldF9pbnRlZ3JpdHlfZnJlZShzdHJ1Y3QgYmlvX3NldCAqKTsKK2V4dGVybiB2b2lkIGJpb19pbnRlZ3JpdHlfaW5pdF9zbGFiKHZvaWQpOworCisjZWxzZSAvKiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgKi8KKworI2RlZmluZSBiaW9faW50ZWdyaXR5KGEpCQkoMCkKKyNkZWZpbmUgYmlvc2V0X2ludGVncml0eV9jcmVhdGUoYSwgYikJKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfcHJlcChhKQkJKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfZW5hYmxlZChhKQkoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9jbG9uZShhLCBiLCBjKQkoMCkKKyNkZWZpbmUgYmlvc2V0X2ludGVncml0eV9mcmVlKGEpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9mcmVlKGEsIGIpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgYmlvX2ludGVncml0eV9lbmRpbyhhLCBiKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfYWR2YW5jZShhLCBiKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfdHJpbShhLCBiLCBjKQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIGJpb19pbnRlZ3JpdHlfc3BsaXQoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X3NldF90YWcoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2dldF90YWcoYSwgYiwgYykJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBiaW9faW50ZWdyaXR5X2luaXRfc2xhYihhKQlkbyB7IH0gd2hpbGUgKDApCisKKyNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgKi8KKwogI2VuZGlmIC8qIENPTkZJR19CTE9DSyAqLwogI2VuZGlmIC8qIF9fTElOVVhfQklPX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYml0cmV2LmggYi9pbmNsdWRlL2xpbnV4L2JpdHJldi5oCmluZGV4IDA1ZTU0MGQuLjdmZmUwM2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYml0cmV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9iaXRyZXYuaApAQCAtMTAsNiArMTAsNyBAQAogCXJldHVybiBieXRlX3Jldl90YWJsZVtieXRlXTsKIH0KIAorZXh0ZXJuIHUxNiBiaXRyZXYxNih1MTYgaW4pOwogZXh0ZXJuIHUzMiBiaXRyZXYzMih1MzIgaW4pOwogCiAjZW5kaWYgLyogX0xJTlVYX0JJVFJFVl9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIGIvaW5jbHVkZS9saW51eC9ibGtkZXYuaAppbmRleCBkMmExYjcxLi4xZmZkOGJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oCisrKyBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKQEAgLTIzLDcgKzIzLDYgQEAKIHN0cnVjdCBzY3NpX2lvY3RsX2NvbW1hbmQ7CiAKIHN0cnVjdCByZXF1ZXN0X3F1ZXVlOwotdHlwZWRlZiBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSByZXF1ZXN0X3F1ZXVlX3QgX19kZXByZWNhdGVkOwogc3RydWN0IGVsZXZhdG9yX3F1ZXVlOwogdHlwZWRlZiBzdHJ1Y3QgZWxldmF0b3JfcXVldWUgZWxldmF0b3JfdDsKIHN0cnVjdCByZXF1ZXN0X3BtX3N0YXRlOwpAQCAtMzQsMTIgKzMzLDYgQEAKICNkZWZpbmUgQkxLREVWX01JTl9SUQk0CiAjZGVmaW5lIEJMS0RFVl9NQVhfUlEJMTI4CS8qIERlZmF1bHQgbWF4aW11bSAqLwogCi1pbnQgcHV0X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKmlvYyk7Ci12b2lkIGV4aXRfaW9fY29udGV4dCh2b2lkKTsKLXN0cnVjdCBpb19jb250ZXh0ICpnZXRfaW9fY29udGV4dChnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKLXN0cnVjdCBpb19jb250ZXh0ICphbGxvY19pb19jb250ZXh0KGdmcF90IGdmcF9mbGFncywgaW50IG5vZGUpOwotdm9pZCBjb3B5X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKipwZHN0LCBzdHJ1Y3QgaW9fY29udGV4dCAqKnBzcmMpOwotCiBzdHJ1Y3QgcmVxdWVzdDsKIHR5cGVkZWYgdm9pZCAocnFfZW5kX2lvX2ZuKShzdHJ1Y3QgcmVxdWVzdCAqLCBpbnQpOwogCkBAIC0xMTMsNiArMTA2LDcgQEAKIAlfX1JFUV9BTExPQ0VELAkJLyogcmVxdWVzdCBjYW1lIGZyb20gb3VyIGFsbG9jIHBvb2wgKi8KIAlfX1JFUV9SV19NRVRBLAkJLyogbWV0YWRhdGEgaW8gcmVxdWVzdCAqLwogCV9fUkVRX0NPUFlfVVNFUiwJLyogY29udGFpbnMgY29waWVzIG9mIHVzZXIgcGFnZXMgKi8KKwlfX1JFUV9JTlRFR1JJVFksCS8qIGludGVncml0eSBtZXRhZGF0YSBoYXMgYmVlbiByZW1hcHBlZCAqLwogCV9fUkVRX05SX0JJVFMsCQkvKiBzdG9wcyBoZXJlICovCiB9OwogCkBAIC0xMzUsNiArMTI5LDcgQEAKICNkZWZpbmUgUkVRX0FMTE9DRUQJKDEgPDwgX19SRVFfQUxMT0NFRCkKICNkZWZpbmUgUkVRX1JXX01FVEEJKDEgPDwgX19SRVFfUldfTUVUQSkKICNkZWZpbmUgUkVRX0NPUFlfVVNFUgkoMSA8PCBfX1JFUV9DT1BZX1VTRVIpCisjZGVmaW5lIFJFUV9JTlRFR1JJVFkJKDEgPDwgX19SRVFfSU5URUdSSVRZKQogCiAjZGVmaW5lIEJMS19NQVhfQ0RCCTE2CiAKQEAgLTI1OSw3ICsyNTQsMTQgQEAKIHR5cGVkZWYgdm9pZCAodW5wbHVnX2ZuKSAoc3RydWN0IHJlcXVlc3RfcXVldWUgKik7CiAKIHN0cnVjdCBiaW9fdmVjOwotdHlwZWRlZiBpbnQgKG1lcmdlX2J2ZWNfZm4pIChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqLCBzdHJ1Y3QgYmlvICosIHN0cnVjdCBiaW9fdmVjICopOworc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSB7CisJc3RydWN0IGJsb2NrX2RldmljZSAqYmlfYmRldjsKKwlzZWN0b3JfdCBiaV9zZWN0b3I7CisJdW5zaWduZWQgYmlfc2l6ZTsKKwl1bnNpZ25lZCBsb25nIGJpX3J3OworfTsKK3R5cGVkZWYgaW50IChtZXJnZV9idmVjX2ZuKSAoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqLAorCQkJICAgICBzdHJ1Y3QgYmlvX3ZlYyAqKTsKIHR5cGVkZWYgdm9pZCAocHJlcGFyZV9mbHVzaF9mbikgKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHN0cnVjdCByZXF1ZXN0ICopOwogdHlwZWRlZiB2b2lkIChzb2Z0aXJxX2RvbmVfZm4pKHN0cnVjdCByZXF1ZXN0ICopOwogdHlwZWRlZiBpbnQgKGRtYV9kcmFpbl9uZWVkZWRfZm4pKHN0cnVjdCByZXF1ZXN0ICopOwpAQCAtNDI2LDYgKzQyOCwzMiBAQAogCV9fc2V0X2JpdChmbGFnLCAmcS0+cXVldWVfZmxhZ3MpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBxdWV1ZV9mbGFnX3Rlc3RfYW5kX2NsZWFyKHVuc2lnbmVkIGludCBmbGFnLAorCQkJCQkgICAgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCit7CisJV0FSTl9PTl9PTkNFKCFxdWV1ZV9pc19sb2NrZWQocSkpOworCisJaWYgKHRlc3RfYml0KGZsYWcsICZxLT5xdWV1ZV9mbGFncykpIHsKKwkJX19jbGVhcl9iaXQoZmxhZywgJnEtPnF1ZXVlX2ZsYWdzKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHF1ZXVlX2ZsYWdfdGVzdF9hbmRfc2V0KHVuc2lnbmVkIGludCBmbGFnLAorCQkJCQkgIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQoreworCVdBUk5fT05fT05DRSghcXVldWVfaXNfbG9ja2VkKHEpKTsKKworCWlmICghdGVzdF9iaXQoZmxhZywgJnEtPnF1ZXVlX2ZsYWdzKSkgeworCQlfX3NldF9iaXQoZmxhZywgJnEtPnF1ZXVlX2ZsYWdzKTsKKwkJcmV0dXJuIDA7CisJfQorCisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBxdWV1ZV9mbGFnX3NldCh1bnNpZ25lZCBpbnQgZmxhZywgc3RydWN0IHJlcXVlc3RfcXVldWUgKnEpCiB7CiAJV0FSTl9PTl9PTkNFKCFxdWV1ZV9pc19sb2NrZWQocSkpOwpAQCAtNjc2LDcgKzcwNCw2IEBACiAJCQkgIHN0cnVjdCByZXF1ZXN0ICosIGludCk7CiBleHRlcm4gdm9pZCBibGtfZXhlY3V0ZV9ycV9ub3dhaXQoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgc3RydWN0IGdlbmRpc2sgKiwKIAkJCQkgIHN0cnVjdCByZXF1ZXN0ICosIGludCwgcnFfZW5kX2lvX2ZuICopOwotZXh0ZXJuIGludCBibGtfdmVyaWZ5X2NvbW1hbmQodW5zaWduZWQgY2hhciAqLCBpbnQpOwogZXh0ZXJuIHZvaWQgYmxrX3VucGx1ZyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSk7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHJlcXVlc3RfcXVldWUgKmJkZXZfZ2V0X3F1ZXVlKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYpCkBAIC03NDksNiArNzc2LDcgQEAKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9oYXJkc2VjdF9zaXplKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHVuc2lnbmVkIHNob3J0KTsKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9zdGFja19saW1pdHMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnQsIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpiKTsKIGV4dGVybiB2b2lkIGJsa19xdWV1ZV9kbWFfcGFkKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICosIHVuc2lnbmVkIGludCk7CitleHRlcm4gdm9pZCBibGtfcXVldWVfdXBkYXRlX2RtYV9wYWQoc3RydWN0IHJlcXVlc3RfcXVldWUgKiwgdW5zaWduZWQgaW50KTsKIGV4dGVybiBpbnQgYmxrX3F1ZXVlX2RtYV9kcmFpbihzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwKIAkJCSAgICAgICBkbWFfZHJhaW5fbmVlZGVkX2ZuICpkbWFfZHJhaW5fbmVlZGVkLAogCQkJICAgICAgIHZvaWQgKmJ1ZiwgdW5zaWduZWQgaW50IHNpemUpOwpAQCAtODAyLDYgKzgzMCwxNSBAQAogCiBleHRlcm4gaW50IGJsa2Rldl9pc3N1ZV9mbHVzaChzdHJ1Y3QgYmxvY2tfZGV2aWNlICosIHNlY3Rvcl90ICopOwogCisvKgorKiBjb21tYW5kIGZpbHRlciBmdW5jdGlvbnMKKyovCitleHRlcm4gaW50IGJsa192ZXJpZnlfY29tbWFuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgY2hhciAqY21kKTsKK2V4dGVybiBpbnQgYmxrX2NtZF9maWx0ZXJfdmVyaWZ5X2NvbW1hbmQoc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgKmZpbHRlciwKKwkJCQkJIHVuc2lnbmVkIGNoYXIgKmNtZCwgbW9kZV90ICpmX21vZGUpOworZXh0ZXJuIGludCBibGtfcmVnaXN0ZXJfZmlsdGVyKHN0cnVjdCBnZW5kaXNrICpkaXNrKTsKK2V4dGVybiB2b2lkIGJsa191bnJlZ2lzdGVyX2ZpbHRlcihzdHJ1Y3QgZ2VuZGlzayAqZGlzayk7CisKICNkZWZpbmUgTUFYX1BIWVNfU0VHTUVOVFMgMTI4CiAjZGVmaW5lIE1BWF9IV19TRUdNRU5UUyAxMjgKICNkZWZpbmUgU0FGRV9NQVhfU0VDVE9SUyAyNTUKQEAgLTg2NSw2ICs5MDIsMTA1IEBACiAjZGVmaW5lIE1PRFVMRV9BTElBU19CTE9DS0RFVl9NQUpPUihtYWpvcikgXAogCU1PRFVMRV9BTElBUygiYmxvY2stbWFqb3ItIiBfX3N0cmluZ2lmeShtYWpvcikgIi0qIikKIAorI2lmIGRlZmluZWQoQ09ORklHX0JMS19ERVZfSU5URUdSSVRZKQorCisjZGVmaW5lIElOVEVHUklUWV9GTEFHX1JFQUQJMgkvKiB2ZXJpZnkgZGF0YSBpbnRlZ3JpdHkgb24gcmVhZCAqLworI2RlZmluZSBJTlRFR1JJVFlfRkxBR19XUklURQk0CS8qIGdlbmVyYXRlIGRhdGEgaW50ZWdyaXR5IG9uIHdyaXRlICovCisKK3N0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnIHsKKwl2b2lkCQkJKnByb3RfYnVmOworCXZvaWQJCQkqZGF0YV9idWY7CisJc2VjdG9yX3QJCXNlY3RvcjsKKwl1bnNpZ25lZCBpbnQJCWRhdGFfc2l6ZTsKKwl1bnNpZ25lZCBzaG9ydAkJc2VjdG9yX3NpemU7CisJY29uc3QgY2hhcgkJKmRpc2tfbmFtZTsKK307CisKK3R5cGVkZWYgdm9pZCAoaW50ZWdyaXR5X2dlbl9mbikgKHN0cnVjdCBibGtfaW50ZWdyaXR5X2V4Y2hnICopOwordHlwZWRlZiBpbnQgKGludGVncml0eV92cmZ5X2ZuKSAoc3RydWN0IGJsa19pbnRlZ3JpdHlfZXhjaGcgKik7Cit0eXBlZGVmIHZvaWQgKGludGVncml0eV9zZXRfdGFnX2ZuKSAodm9pZCAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7Cit0eXBlZGVmIHZvaWQgKGludGVncml0eV9nZXRfdGFnX2ZuKSAodm9pZCAqLCB2b2lkICosIHVuc2lnbmVkIGludCk7CisKK3N0cnVjdCBibGtfaW50ZWdyaXR5IHsKKwlpbnRlZ3JpdHlfZ2VuX2ZuCSpnZW5lcmF0ZV9mbjsKKwlpbnRlZ3JpdHlfdnJmeV9mbgkqdmVyaWZ5X2ZuOworCWludGVncml0eV9zZXRfdGFnX2ZuCSpzZXRfdGFnX2ZuOworCWludGVncml0eV9nZXRfdGFnX2ZuCSpnZXRfdGFnX2ZuOworCisJdW5zaWduZWQgc2hvcnQJCWZsYWdzOworCXVuc2lnbmVkIHNob3J0CQl0dXBsZV9zaXplOworCXVuc2lnbmVkIHNob3J0CQlzZWN0b3Jfc2l6ZTsKKwl1bnNpZ25lZCBzaG9ydAkJdGFnX3NpemU7CisKKwljb25zdCBjaGFyCQkqbmFtZTsKKworCXN0cnVjdCBrb2JqZWN0CQlrb2JqOworfTsKKworZXh0ZXJuIGludCBibGtfaW50ZWdyaXR5X3JlZ2lzdGVyKHN0cnVjdCBnZW5kaXNrICosIHN0cnVjdCBibGtfaW50ZWdyaXR5ICopOworZXh0ZXJuIHZvaWQgYmxrX2ludGVncml0eV91bnJlZ2lzdGVyKHN0cnVjdCBnZW5kaXNrICopOworZXh0ZXJuIGludCBibGtfaW50ZWdyaXR5X2NvbXBhcmUoc3RydWN0IGJsb2NrX2RldmljZSAqLCBzdHJ1Y3QgYmxvY2tfZGV2aWNlICopOworZXh0ZXJuIGludCBibGtfcnFfbWFwX2ludGVncml0eV9zZyhzdHJ1Y3QgcmVxdWVzdCAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKik7CitleHRlcm4gaW50IGJsa19ycV9jb3VudF9pbnRlZ3JpdHlfc2coc3RydWN0IHJlcXVlc3QgKik7CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgc2hvcnQgYmxrX2ludGVncml0eV90dXBsZV9zaXplKHN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSkKK3sKKwlpZiAoYmkpCisJCXJldHVybiBiaS0+dHVwbGVfc2l6ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBibGtfaW50ZWdyaXR5ICpiZGV2X2dldF9pbnRlZ3JpdHkoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldikKK3sKKwlyZXR1cm4gYmRldi0+YmRfZGlzay0+aW50ZWdyaXR5OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBiZGV2X2dldF90YWdfc2l6ZShzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2KQoreworCXN0cnVjdCBibGtfaW50ZWdyaXR5ICpiaSA9IGJkZXZfZ2V0X2ludGVncml0eShiZGV2KTsKKworCWlmIChiaSkKKwkJcmV0dXJuIGJpLT50YWdfc2l6ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBiZGV2X2ludGVncml0eV9lbmFibGVkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGludCBydykKK3sKKwlzdHJ1Y3QgYmxrX2ludGVncml0eSAqYmkgPSBiZGV2X2dldF9pbnRlZ3JpdHkoYmRldik7CisKKwlpZiAoYmkgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisKKwlpZiAocncgPT0gUkVBRCAmJiBiaS0+dmVyaWZ5X2ZuICE9IE5VTEwgJiYKKwkgICAgKGJpLT5mbGFncyAmIElOVEVHUklUWV9GTEFHX1JFQUQpKQorCQlyZXR1cm4gMTsKKworCWlmIChydyA9PSBXUklURSAmJiBiaS0+Z2VuZXJhdGVfZm4gIT0gTlVMTCAmJgorCSAgICAoYmktPmZsYWdzICYgSU5URUdSSVRZX0ZMQUdfV1JJVEUpKQorCQlyZXR1cm4gMTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBibGtfaW50ZWdyaXR5X3JxKHN0cnVjdCByZXF1ZXN0ICpycSkKK3sKKwlyZXR1cm4gYmlvX2ludGVncml0eShycS0+YmlvKTsKK30KKworI2Vsc2UgLyogQ09ORklHX0JMS19ERVZfSU5URUdSSVRZICovCisKKyNkZWZpbmUgYmxrX2ludGVncml0eV9ycShycSkJCQkoMCkKKyNkZWZpbmUgYmxrX3JxX2NvdW50X2ludGVncml0eV9zZyhhKQkJKDApCisjZGVmaW5lIGJsa19ycV9tYXBfaW50ZWdyaXR5X3NnKGEsIGIpCQkoMCkKKyNkZWZpbmUgYmRldl9nZXRfaW50ZWdyaXR5KGEpCQkJKDApCisjZGVmaW5lIGJkZXZfZ2V0X3RhZ19zaXplKGEpCQkJKDApCisjZGVmaW5lIGJsa19pbnRlZ3JpdHlfY29tcGFyZShhLCBiKQkJKDApCisjZGVmaW5lIGJsa19pbnRlZ3JpdHlfcmVnaXN0ZXIoYSwgYikJCSgwKQorI2RlZmluZSBibGtfaW50ZWdyaXR5X3VucmVnaXN0ZXIoYSkJCWRvIHsgfSB3aGlsZSAoMCk7CisKKyNlbmRpZiAvKiBDT05GSUdfQkxLX0RFVl9JTlRFR1JJVFkgKi8KIAogI2Vsc2UgLyogQ09ORklHX0JMT0NLICovCiAvKgpAQCAtODc3LDE3ICsxMDEzLDYgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGV4aXRfaW9fY29udGV4dCh2b2lkKQotewotfQotCi1zdHJ1Y3QgaW9fY29udGV4dDsKLXN0YXRpYyBpbmxpbmUgaW50IHB1dF9pb19jb250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICppb2MpCi17Ci0JcmV0dXJuIDE7Ci19Ci0KLQogI2VuZGlmIC8qIENPTkZJR19CTE9DSyAqLwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvYmxrdHJhY2VfYXBpLmggYi9pbmNsdWRlL2xpbnV4L2Jsa3RyYWNlX2FwaS5oCmluZGV4IGNmYzMxNDcuLmQwODRiOGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYmxrdHJhY2VfYXBpLmgKKysrIGIvaW5jbHVkZS9saW51eC9ibGt0cmFjZV9hcGkuaApAQCAtNTUsNiArNTUsNyBAQAogZW51bSBibGt0cmFjZV9ub3RpZnkgewogCV9fQkxLX1ROX1BST0NFU1MgPSAwLAkJLyogZXN0YWJsaXNoIHBpZC9uYW1lIG1hcHBpbmcgKi8KIAlfX0JMS19UTl9USU1FU1RBTVAsCQkvKiBpbmNsdWRlIHN5c3RlbSBjbG9jayAqLworCV9fQkxLX1ROX01FU1NBR0UsCQkvKiBDaGFyYWN0ZXIgc3RyaW5nIG1lc3NhZ2UgKi8KIH07CiAKIApAQCAtNzksNiArODAsNyBAQAogCiAjZGVmaW5lIEJMS19UTl9QUk9DRVNTCQkoX19CTEtfVE5fUFJPQ0VTUyB8IEJMS19UQ19BQ1QoQkxLX1RDX05PVElGWSkpCiAjZGVmaW5lIEJMS19UTl9USU1FU1RBTVAJKF9fQkxLX1ROX1RJTUVTVEFNUCB8IEJMS19UQ19BQ1QoQkxLX1RDX05PVElGWSkpCisjZGVmaW5lIEJMS19UTl9NRVNTQUdFCQkoX19CTEtfVE5fTUVTU0FHRSB8IEJMS19UQ19BQ1QoQkxLX1RDX05PVElGWSkpCiAKICNkZWZpbmUgQkxLX0lPX1RSQUNFX01BR0lDCTB4NjU2MTc0MDAKICNkZWZpbmUgQkxLX0lPX1RSQUNFX1ZFUlNJT04JMHgwNwpAQCAtMTE5LDYgKzEyMSw3IEBACiAJaW50IHRyYWNlX3N0YXRlOwogCXN0cnVjdCByY2hhbiAqcmNoYW47CiAJdW5zaWduZWQgbG9uZyAqc2VxdWVuY2U7CisJdW5zaWduZWQgY2hhciAqbXNnX2RhdGE7CiAJdTE2IGFjdF9tYXNrOwogCXU2NCBzdGFydF9sYmE7CiAJdTY0IGVuZF9sYmE7CkBAIC0xMjYsNiArMTI5LDcgQEAKIAl1MzIgZGV2OwogCXN0cnVjdCBkZW50cnkgKmRpcjsKIAlzdHJ1Y3QgZGVudHJ5ICpkcm9wcGVkX2ZpbGU7CisJc3RydWN0IGRlbnRyeSAqbXNnX2ZpbGU7CiAJYXRvbWljX3QgZHJvcHBlZDsKIH07CiAKQEAgLTE0OSw3ICsxNTMsMjggQEAKIGV4dGVybiB2b2lkIF9fYmxrX2FkZF90cmFjZShzdHJ1Y3QgYmxrX3RyYWNlICosIHNlY3Rvcl90LCBpbnQsIGludCwgdTMyLCBpbnQsIGludCwgdm9pZCAqKTsKIGV4dGVybiBpbnQgZG9fYmxrX3RyYWNlX3NldHVwKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLAogCWNoYXIgKm5hbWUsIGRldl90IGRldiwgc3RydWN0IGJsa191c2VyX3RyYWNlX3NldHVwICpidXRzKTsKK2V4dGVybiB2b2lkIF9fdHJhY2Vfbm90ZV9tZXNzYWdlKHN0cnVjdCBibGtfdHJhY2UgKiwgY29uc3QgY2hhciAqZm10LCAuLi4pOwogCisvKioKKyAqIGJsa19hZGRfdHJhY2VfbXNnIC0gQWRkIGEgKHNpbXBsZSkgbWVzc2FnZSB0byB0aGUgYmxrdHJhY2Ugc3RyZWFtCisgKiBAcToJCXF1ZXVlIHRoZSBpbyBpcyBmb3IKKyAqIEBmbXQ6CWZvcm1hdCB0byBwcmludCBtZXNzYWdlIGluCisgKiBhcmdzLi4uCVZhcmlhYmxlIGFyZ3VtZW50IGxpc3QgZm9yIGZvcm1hdAorICoKKyAqIERlc2NyaXB0aW9uOgorICogICAgIFJlY29yZHMgYSAoc2ltcGxlKSBtZXNzYWdlIG9udG8gdGhlIGJsa3RyYWNlIHN0cmVhbS4KKyAqCisgKiAgICAgTk9URTogQkxLX1ROX01BWF9NU0cgY2hhcmFjdGVycyBhcmUgb3V0cHV0IGF0IG1vc3QuCisgKiAgICAgTk9URTogQ2FuIG5vdCB1c2UgJ3N0YXRpYyBpbmxpbmUnIGR1ZSB0byBwcmVzZW5jZSBvZiB2YXIgYXJncy4uLgorICoKKyAqKi8KKyNkZWZpbmUgYmxrX2FkZF90cmFjZV9tc2cocSwgZm10LCAuLi4pCQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlzdHJ1Y3QgYmxrX3RyYWNlICpidCA9IChxKS0+YmxrX3RyYWNlOwkJCVwKKwkJaWYgKHVubGlrZWx5KGJ0KSkJCQkJCVwKKwkJCV9fdHJhY2Vfbm90ZV9tZXNzYWdlKGJ0LCBmbXQsICMjX19WQV9BUkdTX18pOwlcCisJfSB3aGlsZSAoMCkKKyNkZWZpbmUgQkxLX1ROX01BWF9NU0cJCTEyOAogCiAvKioKICAqIGJsa19hZGRfdHJhY2VfcnEgLSBBZGQgYSB0cmFjZSBmb3IgYSByZXF1ZXN0IG9yaWVudGVkIGFjdGlvbgpAQCAtMjk5LDYgKzMyNCw4IEBACiAjZGVmaW5lIGJsa190cmFjZV9zZXR1cChxLCBuYW1lLCBkZXYsIGFyZykJKC1FTk9UVFkpCiAjZGVmaW5lIGJsa190cmFjZV9zdGFydHN0b3AocSwgc3RhcnQpCQkoLUVOT1RUWSkKICNkZWZpbmUgYmxrX3RyYWNlX3JlbW92ZShxKQkJCSgtRU5PVFRZKQorI2RlZmluZSBibGtfYWRkX3RyYWNlX21zZyhxLCBmbXQsIC4uLikJCWRvIHsgfSB3aGlsZSAoMCkKKwogI2VuZGlmIC8qIENPTkZJR19CTEtfREVWX0lPX1RSQUNFICovCiAjZW5kaWYgLyogX19LRVJORUxfXyAqLwogI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Jvb3RtZW0uaCBiL2luY2x1ZGUvbGludXgvYm9vdG1lbS5oCmluZGV4IDZhNWRiZGMuLmExZDliNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYm9vdG1lbS5oCisrKyBiL2luY2x1ZGUvbGludXgvYm9vdG1lbS5oCkBAIC04NCw2ICs4NCw4IEBACiAJX19hbGxvY19ib290bWVtX2xvdyh4LCBQQUdFX1NJWkUsIDApCiAjZW5kaWYgLyogIUNPTkZJR19IQVZFX0FSQ0hfQk9PVE1FTV9OT0RFICovCiAKK2V4dGVybiBpbnQgcmVzZXJ2ZV9ib290bWVtX2dlbmVyaWModW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJICAgaW50IGZsYWdzKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIGZyZWVfYWxsX2Jvb3RtZW0odm9pZCk7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBmcmVlX2FsbF9ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCk7CiBleHRlcm4gdm9pZCAqX19hbGxvY19ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCwKQEAgLTk0LDcgKzk2LDcgQEAKIAkJCQkgICAgICAgdW5zaWduZWQgbG9uZyBmcmVlcGZuLAogCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0cGZuLAogCQkJCSAgICAgICB1bnNpZ25lZCBsb25nIGVuZHBmbik7Ci1leHRlcm4gdm9pZCByZXNlcnZlX2Jvb3RtZW1fbm9kZShwZ19kYXRhX3QgKnBnZGF0LAorZXh0ZXJuIGludCByZXNlcnZlX2Jvb3RtZW1fbm9kZShwZ19kYXRhX3QgKnBnZGF0LAogCQkJCSB1bnNpZ25lZCBsb25nIHBoeXNhZGRyLAogCQkJCSB1bnNpZ25lZCBsb25nIHNpemUsCiAJCQkJIGludCBmbGFncyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCBiL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCmluZGV4IGY0ZWEwZGQuLjAyNjczODQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCisrKyBiL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oCkBAIC0zMSwxMSArMzEsMTEgQEAKICNkZWZpbmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8xICAweDE5OTgwMzMwCiAjZGVmaW5lIF9MSU5VWF9DQVBBQklMSVRZX1UzMlNfMSAgICAgMQogCi0jZGVmaW5lIF9MSU5VWF9DQVBBQklMSVRZX1ZFUlNJT05fMiAgMHgyMDA3MTAyNgorI2RlZmluZSBfTElOVVhfQ0FQQUJJTElUWV9WRVJTSU9OXzIgIDB4MjAwNzEwMjYgIC8qIGRlcHJlY2F0ZWQgLSB1c2UgdjMgKi8KICNkZWZpbmUgX0xJTlVYX0NBUEFCSUxJVFlfVTMyU18yICAgICAyCiAKLSNkZWZpbmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTiAgICBfTElOVVhfQ0FQQUJJTElUWV9WRVJTSU9OXzIKLSNkZWZpbmUgX0xJTlVYX0NBUEFCSUxJVFlfVTMyUyAgICAgICBfTElOVVhfQ0FQQUJJTElUWV9VMzJTXzIKKyNkZWZpbmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8zICAweDIwMDgwNTIyCisjZGVmaW5lIF9MSU5VWF9DQVBBQklMSVRZX1UzMlNfMyAgICAgMgogCiB0eXBlZGVmIHN0cnVjdCBfX3VzZXJfY2FwX2hlYWRlcl9zdHJ1Y3QgewogCV9fdTMyIHZlcnNpb247CkBAIC03NywxMCArNzcsMjMgQEAKIAl9IGRhdGFbVkZTX0NBUF9VMzJdOwogfTsKIAotI2lmZGVmIF9fS0VSTkVMX18KKyNpZm5kZWYgX19LRVJORUxfXworCisvKgorICogQmFja3dhcmRseSBjb21wYXRpYmxlIGRlZmluaXRpb24gZm9yIHNvdXJjZSBjb2RlIC0gdHJhcHBlZCBpbiBhCisgKiAzMi1iaXQgd29ybGQuIElmIHlvdSBmaW5kIHlvdSBuZWVkIHRoaXMsIHBsZWFzZSBjb25zaWRlciB1c2luZworICogbGliY2FwIHRvIHVudHJhcCB5b3Vyc2VsZi4uLgorICovCisjZGVmaW5lIF9MSU5VWF9DQVBBQklMSVRZX1ZFUlNJT04gIF9MSU5VWF9DQVBBQklMSVRZX1ZFUlNJT05fMQorI2RlZmluZSBfTElOVVhfQ0FQQUJJTElUWV9VMzJTICAgICBfTElOVVhfQ0FQQUJJTElUWV9VMzJTXzEKKworI2Vsc2UKKworI2RlZmluZSBfS0VSTkVMX0NBUEFCSUxJVFlfVkVSU0lPTiBfTElOVVhfQ0FQQUJJTElUWV9WRVJTSU9OXzMKKyNkZWZpbmUgX0tFUk5FTF9DQVBBQklMSVRZX1UzMlMgICAgX0xJTlVYX0NBUEFCSUxJVFlfVTMyU18zCiAKIHR5cGVkZWYgc3RydWN0IGtlcm5lbF9jYXBfc3RydWN0IHsKLQlfX3UzMiBjYXBbX0xJTlVYX0NBUEFCSUxJVFlfVTMyU107CisJX191MzIgY2FwW19LRVJORUxfQ0FQQUJJTElUWV9VMzJTXTsKIH0ga2VybmVsX2NhcF90OwogCiAjZGVmaW5lIF9VU0VSX0NBUF9IRUFERVJfU0laRSAgKHNpemVvZihzdHJ1Y3QgX191c2VyX2NhcF9oZWFkZXJfc3RydWN0KSkKQEAgLTM1MSw3ICszNjQsNyBAQAogICovCiAKICNkZWZpbmUgQ0FQX0ZPUl9FQUNIX1UzMihfX2NhcGkpICBcCi0JZm9yIChfX2NhcGkgPSAwOyBfX2NhcGkgPCBfTElOVVhfQ0FQQUJJTElUWV9VMzJTOyArK19fY2FwaSkKKwlmb3IgKF9fY2FwaSA9IDA7IF9fY2FwaSA8IF9LRVJORUxfQ0FQQUJJTElUWV9VMzJTOyArK19fY2FwaSkKIAogIyBkZWZpbmUgQ0FQX0ZTX01BU0tfQjAgICAgIChDQVBfVE9fTUFTSyhDQVBfQ0hPV04pCQlcCiAJCQkgICAgfCBDQVBfVE9fTUFTSyhDQVBfREFDX09WRVJSSURFKQlcCkBAIC0zNjEsNyArMzc0LDcgQEAKIAogIyBkZWZpbmUgQ0FQX0ZTX01BU0tfQjEgICAgIChDQVBfVE9fTUFTSyhDQVBfTUFDX09WRVJSSURFKSkKIAotI2lmIF9MSU5VWF9DQVBBQklMSVRZX1UzMlMgIT0gMgorI2lmIF9LRVJORUxfQ0FQQUJJTElUWV9VMzJTICE9IDIKICMgZXJyb3IgRml4IHVwIGhhbmQtY29kZWQgY2FwYWJpbGl0eSBtYWNybyBpbml0aWFsaXplcnMKICNlbHNlIC8qIEhBTkQtQ09ERUQgY2FwYWJpbGl0eSBpbml0aWFsaXplcnMgKi8KIApAQCAtMzcyLDcgKzM4NSw3IEBACiAjIGRlZmluZSBDQVBfTkZTRF9TRVQgICAgICgoa2VybmVsX2NhcF90KXt7IENBUF9GU19NQVNLX0IwfENBUF9UT19NQVNLKENBUF9TWVNfUkVTT1VSQ0UpLCBcCiAJCQkJCUNBUF9GU19NQVNLX0IxIH0gfSkKIAotI2VuZGlmIC8qIF9MSU5VWF9DQVBBQklMSVRZX1UzMlMgIT0gMiAqLworI2VuZGlmIC8qIF9LRVJORUxfQ0FQQUJJTElUWV9VMzJTICE9IDIgKi8KIAogI2RlZmluZSBDQVBfSU5JVF9JTkhfU0VUICAgIENBUF9FTVBUWV9TRVQKIApAQCAtNDg4LDYgKzUwMSw4IEBACiBleHRlcm4gY29uc3Qga2VybmVsX2NhcF90IF9fY2FwX2Z1bGxfc2V0OwogZXh0ZXJuIGNvbnN0IGtlcm5lbF9jYXBfdCBfX2NhcF9pbml0X2VmZl9zZXQ7CiAKK2tlcm5lbF9jYXBfdCBjYXBfc2V0X2VmZmVjdGl2ZShjb25zdCBrZXJuZWxfY2FwX3QgcEVfbmV3KTsKKwogaW50IGNhcGFibGUoaW50IGNhcCk7CiBpbnQgX19jYXBhYmxlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwgaW50IGNhcCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY2ZhZzEyODY0Yi5oIGIvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKaW5kZXggMTYwNWRkOC4uNmY5ZjE5ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKKysrIGIvaW5jbHVkZS9saW51eC9jZmFnMTI4NjRiLmgKQEAgLTQsNyArNCw3IEBACiAgKiBEZXNjcmlwdGlvbjogY2ZhZzEyODY0YiBMQ0QgZHJpdmVyIGhlYWRlcgogICogICAgIExpY2Vuc2U6IEdQTHYyCiAgKgotICogICAgICBBdXRob3I6IENvcHlyaWdodCAoQykgTWlndWVsIE9qZWRhIFNhbmRvbmlzIDxtYXhleHRyZW1lQGdtYWlsLmNvbT4KKyAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcwogICogICAgICAgIERhdGU6IDIwMDYtMTAtMTIKICAqCiAgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvY29uc29sZS5oIGIvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKaW5kZXggYTRmMjdmYi4uMjQ4ZTZlMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKKysrIGIvaW5jbHVkZS9saW51eC9jb25zb2xlLmgKQEAgLTEwOCw2ICsxMDgsOCBAQAogCXN0cnVjdAkgY29uc29sZSAqbmV4dDsKIH07CiAKK2V4dGVybiBpbnQgY29uc29sZV9zZXRfb25fY21kbGluZTsKKwogZXh0ZXJuIGludCBhZGRfcHJlZmVycmVkX2NvbnNvbGUoY2hhciAqbmFtZSwgaW50IGlkeCwgY2hhciAqb3B0aW9ucyk7CiBleHRlcm4gaW50IHVwZGF0ZV9jb25zb2xlX2NtZGxpbmUoY2hhciAqbmFtZSwgaW50IGlkeCwgY2hhciAqbmFtZV9uZXcsIGludCBpZHhfbmV3LCBjaGFyICpvcHRpb25zKTsKIGV4dGVybiB2b2lkIHJlZ2lzdGVyX2NvbnNvbGUoc3RydWN0IGNvbnNvbGUgKik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NwdWlkbGUuaCBiL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCmluZGV4IDUxZTZiMWUuLmRjZjc3ZmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvY3B1aWRsZS5oCkBAIC04Miw2ICs4Miw3IEBACiB9OwogCiBzdHJ1Y3QgY3B1aWRsZV9kZXZpY2UgeworCXVuc2lnbmVkIGludAkJcmVnaXN0ZXJlZDoxOwogCXVuc2lnbmVkIGludAkJZW5hYmxlZDoxOwogCXVuc2lnbmVkIGludAkJY3B1OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2NwdW1hc2suaCBiL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCmluZGV4IDVkZjNkYjUuLmMyNDg3NWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCisrKyBiL2luY2x1ZGUvbGludXgvY3B1bWFzay5oCkBAIC0zNTMsNiArMzUzLDEwIEBACiAJZm9yICgoY3B1KSA9IDA7IChjcHUpIDwgMTsgKGNwdSkrKywgKHZvaWQpbWFzaykKICNlbmRpZiAvKiBOUl9DUFVTICovCiAKKyNkZWZpbmUgbmV4dF9jcHVfbnIobiwgc3JjKQkJbmV4dF9jcHUobiwgc3JjKQorI2RlZmluZSBjcHVzX3dlaWdodF9ucihjcHVtYXNrKQkJY3B1c193ZWlnaHQoY3B1bWFzaykKKyNkZWZpbmUgZm9yX2VhY2hfY3B1X21hc2tfbnIoY3B1LCBtYXNrKQlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIG1hc2spCisKIC8qCiAgKiBUaGUgZm9sbG93aW5nIHBhcnRpY3VsYXIgc3lzdGVtIGNwdW1hc2tzIGFuZCBvcGVyYXRpb25zIG1hbmFnZQogICogcG9zc2libGUsIHByZXNlbnQgYW5kIG9ubGluZSBjcHVzLiAgRWFjaCBvZiB0aGVtIGlzIGEgZml4ZWQgc2l6ZQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcnlwdG8uaCBiL2luY2x1ZGUvbGludXgvY3J5cHRvLmgKaW5kZXggNDI1ODI0Yi4uYzQzZGM0NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9jcnlwdG8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCkBAIC0zMCwxNSArMzAsMTcgQEAKICAqLwogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfTUFTSwkJMHgwMDAwMDAwZgogI2RlZmluZSBDUllQVE9fQUxHX1RZUEVfQ0lQSEVSCQkweDAwMDAwMDAxCi0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9ESUdFU1QJCTB4MDAwMDAwMDIKLSNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0gJCTB4MDAwMDAwMDMKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0NPTVBSRVNTCTB4MDAwMDAwMDIKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FFQUQJCTB4MDAwMDAwMDMKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0JMS0NJUEhFUgkweDAwMDAwMDA0CiAjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BQkxLQ0lQSEVSCTB4MDAwMDAwMDUKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0dJVkNJUEhFUgkweDAwMDAwMDA2Ci0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9DT01QUkVTUwkweDAwMDAwMDA4Ci0jZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BRUFECQkweDAwMDAwMDA5CisjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9ESUdFU1QJCTB4MDAwMDAwMDgKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0gJCTB4MDAwMDAwMDkKKyNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0FIQVNICQkweDAwMDAwMDBhCiAKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0hBU0hfTUFTSwkweDAwMDAwMDBlCisjZGVmaW5lIENSWVBUT19BTEdfVFlQRV9BSEFTSF9NQVNLCTB4MDAwMDAwMGMKICNkZWZpbmUgQ1JZUFRPX0FMR19UWVBFX0JMS0NJUEhFUl9NQVNLCTB4MDAwMDAwMGMKIAogI2RlZmluZSBDUllQVE9fQUxHX0xBUlZBTAkJMHgwMDAwMDAxMApAQCAtMTAyLDYgKzEwNCw3IEBACiBzdHJ1Y3QgY3J5cHRvX2FlYWQ7CiBzdHJ1Y3QgY3J5cHRvX2Jsa2NpcGhlcjsKIHN0cnVjdCBjcnlwdG9faGFzaDsKK3N0cnVjdCBjcnlwdG9fYWhhc2g7CiBzdHJ1Y3QgY3J5cHRvX3RmbTsKIHN0cnVjdCBjcnlwdG9fdHlwZTsKIHN0cnVjdCBhZWFkX2dpdmNyeXB0X3JlcXVlc3Q7CkBAIC0xMzEsNiArMTM0LDE2IEBACiAJdm9pZCAqX19jdHhbXSBDUllQVE9fTUlOQUxJR05fQVRUUjsKIH07CiAKK3N0cnVjdCBhaGFzaF9yZXF1ZXN0IHsKKwlzdHJ1Y3QgY3J5cHRvX2FzeW5jX3JlcXVlc3QgYmFzZTsKKworCXVuc2lnbmVkIGludCBuYnl0ZXM7CisJc3RydWN0IHNjYXR0ZXJsaXN0ICpzcmM7CisJdTgJCSAgICpyZXN1bHQ7CisKKwl2b2lkICpfX2N0eFtdIENSWVBUT19NSU5BTElHTl9BVFRSOworfTsKKwogLyoqCiAgKglzdHJ1Y3QgYWVhZF9yZXF1ZXN0IC0gQUVBRCByZXF1ZXN0CiAgKglAYmFzZTogQ29tbW9uIGF0dHJpYnV0ZXMgZm9yIGFzeW5jIGNyeXB0byByZXF1ZXN0cwpAQCAtMTk1LDYgKzIwOCwxNyBAQAogCXVuc2lnbmVkIGludCBpdnNpemU7CiB9OwogCitzdHJ1Y3QgYWhhc2hfYWxnIHsKKwlpbnQgKCppbml0KShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCp1cGRhdGUpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKmZpbmFsKShzdHJ1Y3QgYWhhc2hfcmVxdWVzdCAqcmVxKTsKKwlpbnQgKCpkaWdlc3QpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKnNldGtleSkoc3RydWN0IGNyeXB0b19haGFzaCAqdGZtLCBjb25zdCB1OCAqa2V5LAorCQkJdW5zaWduZWQgaW50IGtleWxlbik7CisKKwl1bnNpZ25lZCBpbnQgZGlnZXN0c2l6ZTsKK307CisKIHN0cnVjdCBhZWFkX2FsZyB7CiAJaW50ICgqc2V0a2V5KShzdHJ1Y3QgY3J5cHRvX2FlYWQgKnRmbSwgY29uc3QgdTggKmtleSwKIAkgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXlsZW4pOwpAQCAtMjcyLDYgKzI5Niw3IEBACiAjZGVmaW5lIGNyYV9jaXBoZXIJY3JhX3UuY2lwaGVyCiAjZGVmaW5lIGNyYV9kaWdlc3QJY3JhX3UuZGlnZXN0CiAjZGVmaW5lIGNyYV9oYXNoCWNyYV91Lmhhc2gKKyNkZWZpbmUgY3JhX2FoYXNoCWNyYV91LmFoYXNoCiAjZGVmaW5lIGNyYV9jb21wcmVzcwljcmFfdS5jb21wcmVzcwogCiBzdHJ1Y3QgY3J5cHRvX2FsZyB7CkBAIC0yOTgsNiArMzIzLDcgQEAKIAkJc3RydWN0IGNpcGhlcl9hbGcgY2lwaGVyOwogCQlzdHJ1Y3QgZGlnZXN0X2FsZyBkaWdlc3Q7CiAJCXN0cnVjdCBoYXNoX2FsZyBoYXNoOworCQlzdHJ1Y3QgYWhhc2hfYWxnIGFoYXNoOwogCQlzdHJ1Y3QgY29tcHJlc3NfYWxnIGNvbXByZXNzOwogCX0gY3JhX3U7CiAKQEAgLTM4Myw2ICs0MDksMTggQEAKIAl1bnNpZ25lZCBpbnQgZGlnZXN0c2l6ZTsKIH07CiAKK3N0cnVjdCBhaGFzaF90Zm0geworCWludCAoKmluaXQpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKnVwZGF0ZSkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqZmluYWwpKHN0cnVjdCBhaGFzaF9yZXF1ZXN0ICpyZXEpOworCWludCAoKmRpZ2VzdCkoc3RydWN0IGFoYXNoX3JlcXVlc3QgKnJlcSk7CisJaW50ICgqc2V0a2V5KShzdHJ1Y3QgY3J5cHRvX2FoYXNoICp0Zm0sIGNvbnN0IHU4ICprZXksCisJCQl1bnNpZ25lZCBpbnQga2V5bGVuKTsKKworCXVuc2lnbmVkIGludCBkaWdlc3RzaXplOworCXVuc2lnbmVkIGludCByZXFzaXplOworfTsKKwogc3RydWN0IGNvbXByZXNzX3RmbSB7CiAJaW50ICgqY290X2NvbXByZXNzKShzdHJ1Y3QgY3J5cHRvX3RmbSAqdGZtLAogCSAgICAgICAgICAgICAgICAgICAgY29uc3QgdTggKnNyYywgdW5zaWduZWQgaW50IHNsZW4sCkBAIC0zOTcsNiArNDM1LDcgQEAKICNkZWZpbmUgY3J0X2Jsa2NpcGhlcgljcnRfdS5ibGtjaXBoZXIKICNkZWZpbmUgY3J0X2NpcGhlcgljcnRfdS5jaXBoZXIKICNkZWZpbmUgY3J0X2hhc2gJY3J0X3UuaGFzaAorI2RlZmluZSBjcnRfYWhhc2gJY3J0X3UuYWhhc2gKICNkZWZpbmUgY3J0X2NvbXByZXNzCWNydF91LmNvbXByZXNzCiAKIHN0cnVjdCBjcnlwdG9fdGZtIHsKQEAgLTQwOSw2ICs0NDgsNyBAQAogCQlzdHJ1Y3QgYmxrY2lwaGVyX3RmbSBibGtjaXBoZXI7CiAJCXN0cnVjdCBjaXBoZXJfdGZtIGNpcGhlcjsKIAkJc3RydWN0IGhhc2hfdGZtIGhhc2g7CisJCXN0cnVjdCBhaGFzaF90Zm0gYWhhc2g7CiAJCXN0cnVjdCBjb21wcmVzc190Zm0gY29tcHJlc3M7CiAJfSBjcnRfdTsKIAkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGNhY2hlLmggYi9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oCmluZGV4IDJhNjYzOTQuLmQ5ODJlYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZGNhY2hlLmgKKysrIGIvaW5jbHVkZS9saW51eC9kY2FjaGUuaApAQCAtMzAwLDcgKzMwMCw3IEBACiBleHRlcm4gY2hhciAqZHluYW1pY19kbmFtZShzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50LCBjb25zdCBjaGFyICosIC4uLik7CiAKIGV4dGVybiBjaGFyICpfX2RfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCwgc3RydWN0IHBhdGggKnJvb3QsIGNoYXIgKiwgaW50KTsKLWV4dGVybiBjaGFyICpkX3BhdGgoc3RydWN0IHBhdGggKiwgY2hhciAqLCBpbnQpOworZXh0ZXJuIGNoYXIgKmRfcGF0aChjb25zdCBzdHJ1Y3QgcGF0aCAqLCBjaGFyICosIGludCk7CiBleHRlcm4gY2hhciAqZGVudHJ5X3BhdGgoc3RydWN0IGRlbnRyeSAqLCBjaGFyICosIGludCk7CiAKIC8qIEFsbG9jYXRpb24gY291bnRzLi4gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaCBiL2luY2x1ZGUvbGludXgvZGVidWdfbG9ja3MuaAppbmRleCBmNGE1ODcxLi40YWFhNGFmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RlYnVnX2xvY2tzLmgKKysrIGIvaW5jbHVkZS9saW51eC9kZWJ1Z19sb2Nrcy5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBfX0xJTlVYX0RFQlVHX0xPQ0tJTkdfSAogI2RlZmluZSBfX0xJTlVYX0RFQlVHX0xPQ0tJTkdfSAogCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisKIHN0cnVjdCB0YXNrX3N0cnVjdDsKIAogZXh0ZXJuIGludCBkZWJ1Z19sb2NrczsKQEAgLTExLDE0ICsxMyw2IEBACiAgKi8KIGV4dGVybiBpbnQgZGVidWdfbG9ja3Nfb2ZmKHZvaWQpOwogCi0vKgotICogSW4gdGhlIGRlYnVnIGNhc2Ugd2UgY2FycnkgdGhlIGNhbGxlcidzIGluc3RydWN0aW9uIHBvaW50ZXIgaW50bwotICogb3RoZXIgZnVuY3Rpb25zLCBidXQgd2UgZG9udCB3YW50IHRoZSBmdW5jdGlvbiBhcmd1bWVudCBvdmVyaGVhZAotICogaW4gdGhlIG5vbmRlYnVnIGNhc2UgLSBoZW5jZSB0aGVzZSBtYWNyb3M6Ci0gKi8KLSNkZWZpbmUgX1JFVF9JUF8JCSh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKQotI2RlZmluZSBfVEhJU19JUF8gICh7IF9fbGFiZWxfXyBfX2hlcmU7IF9faGVyZTogKHVuc2lnbmVkIGxvbmcpJiZfX2hlcmU7IH0pCi0KICNkZWZpbmUgREVCVUdfTE9DS1NfV0FSTl9PTihjKQkJCQkJCVwKICh7CQkJCQkJCQkJXAogCWludCBfX3JldCA9IDA7CQkJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGVsYXkuaCBiL2luY2x1ZGUvbGludXgvZGVsYXkuaAppbmRleCA1NDU1MmQyLi5mZDgzMmM2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RlbGF5LmgKKysrIGIvaW5jbHVkZS9saW51eC9kZWxheS5oCkBAIC00MSw2ICs0MSw3IEBACiAjZGVmaW5lIG5kZWxheSh4KSBuZGVsYXkoeCkKICNlbmRpZgogCitleHRlcm4gdW5zaWduZWQgbG9uZyBscGpfZmluZTsKIHZvaWQgY2FsaWJyYXRlX2RlbGF5KHZvaWQpOwogdm9pZCBtc2xlZXAodW5zaWduZWQgaW50IG1zZWNzKTsKIHVuc2lnbmVkIGxvbmcgbXNsZWVwX2ludGVycnVwdGlibGUodW5zaWduZWQgaW50IG1zZWNzKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L2RldmljZS5oCmluZGV4IDE0NjE2ZTguLjZhMmQwNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZGV2aWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9kZXZpY2UuaApAQCAtMzg1LDYgKzM4NSw5IEBACiAJcmV0dXJuIGRldi0+YnVzX2lkOwogfQogCitleHRlcm4gaW50IGRldl9zZXRfbmFtZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKm5hbWUsIC4uLikKKwkJCV9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDIsIDMpKSk7CisKICNpZmRlZiBDT05GSUdfTlVNQQogc3RhdGljIGlubGluZSBpbnQgZGV2X3RvX25vZGUoc3RydWN0IGRldmljZSAqZGV2KQogewpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9lZmkuaCBiL2luY2x1ZGUvbGludXgvZWZpLmgKaW5kZXggYTVmMzU5YS4uODA3MzczZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9lZmkuaAorKysgYi9pbmNsdWRlL2xpbnV4L2VmaS5oCkBAIC0yODcsNyArMjg3LDYgQEAKIGV4dGVybiB2b2lkIGVmaV9pbml0ICh2b2lkKTsKIGV4dGVybiB2b2lkICplZmlfZ2V0X3BhbF9hZGRyICh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9tYXBfcGFsX2NvZGUgKHZvaWQpOwotZXh0ZXJuIHZvaWQgZWZpX21hcF9tZW1tYXAodm9pZCk7CiBleHRlcm4gdm9pZCBlZmlfbWVtbWFwX3dhbGsgKGVmaV9mcmVlbWVtX2NhbGxiYWNrX3QgY2FsbGJhY2ssIHZvaWQgKmFyZyk7CiBleHRlcm4gdm9pZCBlZmlfZ2V0dGltZW9mZGF5IChzdHJ1Y3QgdGltZXNwZWMgKnRzKTsKIGV4dGVybiB2b2lkIGVmaV9lbnRlcl92aXJ0dWFsX21vZGUgKHZvaWQpOwkvKiBzd2l0Y2ggRUZJIHRvIHZpcnR1YWwgbW9kZSwgaWYgcG9zc2libGUgKi8KQEAgLTI5NSwxNCArMjk0LDExIEBACiBleHRlcm4gdTMyIGVmaV9tZW1fdHlwZSAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIpOwogZXh0ZXJuIHU2NCBlZmlfbWVtX2F0dHJpYnV0ZXMgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyKTsKIGV4dGVybiB1NjQgZWZpX21lbV9hdHRyaWJ1dGUgKHVuc2lnbmVkIGxvbmcgcGh5c19hZGRyLCB1bnNpZ25lZCBsb25nIHNpemUpOwotZXh0ZXJuIGludCBlZmlfbWVtX2F0dHJpYnV0ZV9yYW5nZSAodW5zaWduZWQgbG9uZyBwaHlzX2FkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKLQkJCQkgICAgdTY0IGF0dHIpOwogZXh0ZXJuIGludCBfX2luaXQgZWZpX3VhcnRfY29uc29sZV9vbmx5ICh2b2lkKTsKIGV4dGVybiB2b2lkIGVmaV9pbml0aWFsaXplX2lvbWVtX3Jlc291cmNlcyhzdHJ1Y3QgcmVzb3VyY2UgKmNvZGVfcmVzb3VyY2UsCiAJCXN0cnVjdCByZXNvdXJjZSAqZGF0YV9yZXNvdXJjZSwgc3RydWN0IHJlc291cmNlICpic3NfcmVzb3VyY2UpOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1lKHZvaWQpOwogZXh0ZXJuIGludCBlZmlfc2V0X3J0Y19tbXNzKHVuc2lnbmVkIGxvbmcgbm93dGltZSk7Ci1leHRlcm4gaW50IGlzX2F2YWlsYWJsZV9tZW1vcnkoZWZpX21lbW9yeV9kZXNjX3QgKiBtZCk7CiBleHRlcm4gc3RydWN0IGVmaV9tZW1vcnlfbWFwIG1lbW1hcDsKIAogLyoqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLW1hcC5oIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2JkYmNjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaApAQCAtMCwwICsxLDc0IEBACisvKgorICogaW5jbHVkZS9saW51eC9maXJtd2FyZS1tYXAuaDoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggU1VTRSBMSU5VWCBQcm9kdWN0cyBHbWJICisgKiAgYnkgQmVybmhhcmQgV2FsbGUgPGJ3YWxsZUBzdXNlLmRlPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyLjAgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKi8KKyNpZm5kZWYgX0xJTlVYX0ZJUk1XQVJFX01BUF9ICisjZGVmaW5lIF9MSU5VWF9GSVJNV0FSRV9NQVBfSAorCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KKworLyoKKyAqIHByb3ZpZGUgYSBkdW1teSBpbnRlcmZhY2UgaWYgQ09ORklHX0ZJUk1XQVJFX01FTU1BUCBpcyBkaXNhYmxlZAorICovCisjaWZkZWYgQ09ORklHX0ZJUk1XQVJFX01FTU1BUAorCisvKioKKyAqIEFkZHMgYSBmaXJtd2FyZSBtYXBwaW5nIGVudHJ5LiBUaGlzIGZ1bmN0aW9uIHVzZXMga21hbGxvYygpIGZvciBtZW1vcnkKKyAqIGFsbG9jYXRpb24uIFVzZSBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KCkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBib290bWVtCisgKiBhbGxvY2F0b3IuCisgKgorICogVGhhdCBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgbGF0ZV9pbml0Y2FsbC4KKyAqCisgKiBAc3RhcnQ6IFN0YXJ0IG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKiBAZW5kOiAgIEVuZCBvZiB0aGUgbWVtb3J5IHJhbmdlIChpbmNsdXNpdmUpLgorICogQHR5cGU6ICBUeXBlIG9mIHRoZSBtZW1vcnkgcmFuZ2UuCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIC1FTk9NRU0gaWYgbm8gbWVtb3J5IGNvdWxkIGJlIGFsbG9jYXRlZC4KKyAqLworaW50IGZpcm13YXJlX21hcF9hZGQocmVzb3VyY2Vfc2l6ZV90IHN0YXJ0LCByZXNvdXJjZV9zaXplX3QgZW5kLAorCQkgICAgIGNvbnN0IGNoYXIgKnR5cGUpOworCisvKioKKyAqIEFkZHMgYSBmaXJtd2FyZSBtYXBwaW5nIGVudHJ5LiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIGJvb3RtZW0gYWxsb2NhdG9yCisgKiBmb3IgbWVtb3J5IGFsbG9jYXRpb24uIFVzZSBmaXJtd2FyZV9tYXBfYWRkKCkgaWYgeW91IHdhbnQgdG8gdXNlIGttYWxsb2MoKS4KKyAqCisgKiBUaGF0IGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBsYXRlX2luaXRjYWxsLgorICoKKyAqIEBzdGFydDogU3RhcnQgb2YgdGhlIG1lbW9yeSByYW5nZS4KKyAqIEBlbmQ6ICAgRW5kIG9mIHRoZSBtZW1vcnkgcmFuZ2UgKGluY2x1c2l2ZSkuCisgKiBAdHlwZTogIFR5cGUgb2YgdGhlIG1lbW9yeSByYW5nZS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgLUVOT01FTSBpZiBubyBtZW1vcnkgY291bGQgYmUgYWxsb2NhdGVkLgorICovCitpbnQgZmlybXdhcmVfbWFwX2FkZF9lYXJseShyZXNvdXJjZV9zaXplX3Qgc3RhcnQsIHJlc291cmNlX3NpemVfdCBlbmQsCisJCQkgICBjb25zdCBjaGFyICp0eXBlKTsKKworI2Vsc2UgLyogQ09ORklHX0ZJUk1XQVJFX01FTU1BUCAqLworCitzdGF0aWMgaW5saW5lIGludCBmaXJtd2FyZV9tYXBfYWRkKHJlc291cmNlX3NpemVfdCBzdGFydCwgcmVzb3VyY2Vfc2l6ZV90IGVuZCwKKwkJCQkgICBjb25zdCBjaGFyICp0eXBlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIGludCBmaXJtd2FyZV9tYXBfYWRkX2Vhcmx5KHJlc291cmNlX3NpemVfdCBzdGFydCwKKwkJCQkJIHJlc291cmNlX3NpemVfdCBlbmQsIGNvbnN0IGNoYXIgKnR5cGUpCit7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfRklSTVdBUkVfTUVNTUFQICovCisKKyNlbmRpZiAvKiBfTElOVVhfRklSTVdBUkVfTUFQX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZmlybXdhcmUuaCBiL2luY2x1ZGUvbGludXgvZmlybXdhcmUuaAppbmRleCA0ZDEwYzczLi5jOGVjZjViIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2Zpcm13YXJlLmgKKysrIGIvaW5jbHVkZS9saW51eC9maXJtd2FyZS5oCkBAIC0xLDE5ICsxLDQwIEBACiAjaWZuZGVmIF9MSU5VWF9GSVJNV0FSRV9ICiAjZGVmaW5lIF9MSU5VWF9GSVJNV0FSRV9ICisKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisKICNkZWZpbmUgRklSTVdBUkVfTkFNRV9NQVggMzAgCiAjZGVmaW5lIEZXX0FDVElPTl9OT0hPVFBMVUcgMAogI2RlZmluZSBGV19BQ1RJT05fSE9UUExVRyAxCiAKIHN0cnVjdCBmaXJtd2FyZSB7CiAJc2l6ZV90IHNpemU7Ci0JdTggKmRhdGE7CisJY29uc3QgdTggKmRhdGE7CiB9OwogCiBzdHJ1Y3QgZGV2aWNlOwogCi0jaWYgZGVmaW5lZChDT05GSUdfRldfTE9BREVSKSB8fCBkZWZpbmVkKENPTkZJR19GV19MT0FERVJfTU9EVUxFKQorc3RydWN0IGJ1aWx0aW5fZncgeworCWNoYXIgKm5hbWU7CisJdm9pZCAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIHNpemU7Cit9OworCisvKiBXZSBoYXZlIHRvIHBsYXkgdHJpY2tzIGhlcmUgbXVjaCBsaWtlIHN0cmluZ2lmeSgpIHRvIGdldCB0aGUKKyAgIF9fQ09VTlRFUl9fIG1hY3JvIHRvIGJlIGV4cGFuZGVkIGFzIHdlIHdhbnQgaXQgKi8KKyNkZWZpbmUgX19md19jb25jYXQxKHgsIHkpIHgjI3kKKyNkZWZpbmUgX19md19jb25jYXQoeCwgeSkgX19md19jb25jYXQxKHgsIHkpCisKKyNkZWZpbmUgREVDTEFSRV9CVUlMVElOX0ZJUk1XQVJFKG5hbWUsIGJsb2IpCQkJCSAgICAgXAorCURFQ0xBUkVfQlVJTFRJTl9GSVJNV0FSRV9TSVpFKG5hbWUsICYoYmxvYiksIHNpemVvZihibG9iKSkKKworI2RlZmluZSBERUNMQVJFX0JVSUxUSU5fRklSTVdBUkVfU0laRShuYW1lLCBibG9iLCBzaXplKQkJCSAgICAgXAorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9mdyBfX2Z3X2NvbmNhdChfX2J1aWx0aW5fZncsX19DT1VOVEVSX18pIFwKKwlfX3VzZWQgX19zZWN0aW9uKC5idWlsdGluX2Z3KSA9IHsgbmFtZSwgYmxvYiwgc2l6ZSB9CisKKyNpZiBkZWZpbmVkKENPTkZJR19GV19MT0FERVIpIHx8IChkZWZpbmVkKENPTkZJR19GV19MT0FERVJfTU9EVUxFKSAmJiBkZWZpbmVkKE1PRFVMRSkpCiBpbnQgcmVxdWVzdF9maXJtd2FyZShjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKipmdywgY29uc3QgY2hhciAqbmFtZSwKIAkJICAgICBzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpOwogaW50IHJlcXVlc3RfZmlybXdhcmVfbm93YWl0KApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9mcy5oIGIvaW5jbHVkZS9saW51eC9mcy5oCmluZGV4IGY0MTMwODUuLjUyZTUxMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L2ZzLmgKQEAgLTgzLDYgKzgzLDcgQEAKICNkZWZpbmUgUkVBRF9TWU5DCShSRUFEIHwgKDEgPDwgQklPX1JXX1NZTkMpKQogI2RlZmluZSBSRUFEX01FVEEJKFJFQUQgfCAoMSA8PCBCSU9fUldfTUVUQSkpCiAjZGVmaW5lIFdSSVRFX1NZTkMJKFdSSVRFIHwgKDEgPDwgQklPX1JXX1NZTkMpKQorI2RlZmluZSBTV1JJVEVfU1lOQwkoU1dSSVRFIHwgKDEgPDwgQklPX1JXX1NZTkMpKQogI2RlZmluZSBXUklURV9CQVJSSUVSCSgoMSA8PCBCSU9fUlcpIHwgKDEgPDwgQklPX1JXX0JBUlJJRVIpKQogCiAjZGVmaW5lIFNFTF9JTgkJMQpAQCAtODk0LDggKzg5NSw2IEBACiB0eXBlZGVmIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKmZsX293bmVyX3Q7CiAKIHN0cnVjdCBmaWxlX2xvY2tfb3BlcmF0aW9ucyB7Ci0Jdm9pZCAoKmZsX2luc2VydCkoc3RydWN0IGZpbGVfbG9jayAqKTsJLyogbG9jayBpbnNlcnRpb24gY2FsbGJhY2sgKi8KLQl2b2lkICgqZmxfcmVtb3ZlKShzdHJ1Y3QgZmlsZV9sb2NrICopOwkvKiBsb2NrIHJlbW92YWwgY2FsbGJhY2sgKi8KIAl2b2lkICgqZmxfY29weV9sb2NrKShzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CiAJdm9pZCAoKmZsX3JlbGVhc2VfcHJpdmF0ZSkoc3RydWN0IGZpbGVfbG9jayAqKTsKIH07CkBAIC0xNzQxLDYgKzE3NDAsOCBAQAogCQkJCXBnb2ZmX3Qgc3RhcnQsIHBnb2ZmX3QgZW5kKTsKIGV4dGVybiBpbnQgX19maWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAJCQkJbG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgc3luY19tb2RlKTsKK2V4dGVybiBpbnQgZmlsZW1hcF9mZGF0YXdyaXRlX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAorCQkJCWxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCk7CiAKIGV4dGVybiBsb25nIGRvX2ZzeW5jKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgZGF0YXN5bmMpOwogZXh0ZXJuIHZvaWQgc3luY19zdXBlcnModm9pZCk7CkBAIC0xODcxLDcgKzE4NzIsOCBAQAogZmlsZV9yYV9zdGF0ZV9pbml0KHN0cnVjdCBmaWxlX3JhX3N0YXRlICpyYSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcpOwogZXh0ZXJuIGxvZmZfdCBub19sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pOwogZXh0ZXJuIGxvZmZfdCBnZW5lcmljX2ZpbGVfbGxzZWVrKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3Qgb2Zmc2V0LCBpbnQgb3JpZ2luKTsKLWV4dGVybiBsb2ZmX3QgcmVtb3RlX2xsc2VlayhzdHJ1Y3QgZmlsZSAqZmlsZSwgbG9mZl90IG9mZnNldCwgaW50IG9yaWdpbik7CitleHRlcm4gbG9mZl90IGdlbmVyaWNfZmlsZV9sbHNlZWtfdW5sb2NrZWQoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsCisJCQlpbnQgb3JpZ2luKTsKIGV4dGVybiBpbnQgZ2VuZXJpY19maWxlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCk7CiBleHRlcm4gaW50IG5vbnNlZWthYmxlX29wZW4oc3RydWN0IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCk7CiAKQEAgLTIwMDAsNyArMjAwMiwxMCBAQAogZXh0ZXJuIGludCBzaW1wbGVfcGluX2ZzKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICosIHN0cnVjdCB2ZnNtb3VudCAqKm1vdW50LCBpbnQgKmNvdW50KTsKIGV4dGVybiB2b2lkIHNpbXBsZV9yZWxlYXNlX2ZzKHN0cnVjdCB2ZnNtb3VudCAqKm1vdW50LCBpbnQgKmNvdW50KTsKIAotZXh0ZXJuIHNzaXplX3Qgc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodm9pZCBfX3VzZXIgKiwgc2l6ZV90LCBsb2ZmX3QgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QpOworZXh0ZXJuIHNzaXplX3Qgc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodm9pZCBfX3VzZXIgKnRvLCBzaXplX3QgY291bnQsCisJCQlsb2ZmX3QgKnBwb3MsIGNvbnN0IHZvaWQgKmZyb20sIHNpemVfdCBhdmFpbGFibGUpOworZXh0ZXJuIHNzaXplX3QgbWVtb3J5X3JlYWRfZnJvbV9idWZmZXIodm9pZCAqdG8sIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9zLAorCQkJY29uc3Qgdm9pZCAqZnJvbSwgc2l6ZV90IGF2YWlsYWJsZSk7CiAKICNpZmRlZiBDT05GSUdfTUlHUkFUSU9OCiBleHRlcm4gaW50IGJ1ZmZlcl9taWdyYXRlX3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnRyYWNlLmggYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjhkMDQKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L2Z0cmFjZS5oCkBAIC0wLDAgKzEsMTQ0IEBACisjaWZuZGVmIF9MSU5VWF9GVFJBQ0VfSAorI2RlZmluZSBfTElOVVhfRlRSQUNFX0gKKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKworI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorCitleHRlcm4gaW50IGZ0cmFjZV9lbmFibGVkOworZXh0ZXJuIGludAorZnRyYWNlX2VuYWJsZV9zeXNjdGwoc3RydWN0IGN0bF90YWJsZSAqdGFibGUsIGludCB3cml0ZSwKKwkJICAgICBzdHJ1Y3QgZmlsZSAqZmlscCwgdm9pZCBfX3VzZXIgKmJ1ZmZlciwgc2l6ZV90ICpsZW5wLAorCQkgICAgIGxvZmZfdCAqcHBvcyk7CisKK3R5cGVkZWYgdm9pZCAoKmZ0cmFjZV9mdW5jX3QpKHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgcGFyZW50X2lwKTsKKworc3RydWN0IGZ0cmFjZV9vcHMgeworCWZ0cmFjZV9mdW5jX3QJICBmdW5jOworCXN0cnVjdCBmdHJhY2Vfb3BzICpuZXh0OworfTsKKworLyoKKyAqIFRoZSBmdHJhY2Vfb3BzIG11c3QgYmUgYSBzdGF0aWMgYW5kIHNob3VsZCBhbHNvCisgKiBiZSByZWFkX21vc3RseS4gIFRoZXNlIGZ1bmN0aW9ucyBkbyBtb2RpZnkgcmVhZF9tb3N0bHkgdmFyaWFibGVzCisgKiBzbyB1c2UgdGhlbSBzcGFyZWx5LiBOZXZlciBmcmVlIGFuIGZ0cmFjZV9vcCBvciBtb2RpZnkgdGhlCisgKiBuZXh0IHBvaW50ZXIgYWZ0ZXIgaXQgaGFzIGJlZW4gcmVnaXN0ZXJlZC4gRXZlbiBhZnRlciB1bnJlZ2lzdGVyaW5nCisgKiBpdCwgdGhlIG5leHQgcG9pbnRlciBtYXkgc3RpbGwgYmUgdXNlZCBpbnRlcm5hbGx5LgorICovCitpbnQgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpOworaW50IHVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpOwordm9pZCBjbGVhcl9mdHJhY2VfZnVuY3Rpb24odm9pZCk7CisKK2V4dGVybiB2b2lkIGZ0cmFjZV9zdHViKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworCisjZWxzZSAvKiAhQ09ORklHX0ZUUkFDRSAqLworIyBkZWZpbmUgcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcykgZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24ob3BzKSBkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBjbGVhcl9mdHJhY2VfZnVuY3Rpb24ob3BzKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisjIGRlZmluZSBGVFJBQ0VfSEFTSEJJVFMJMTAKKyMgZGVmaW5lIEZUUkFDRV9IQVNIU0laRQkoMTw8RlRSQUNFX0hBU0hCSVRTKQorCitlbnVtIHsKKwlGVFJBQ0VfRkxfRlJFRQkJPSAoMSA8PCAwKSwKKwlGVFJBQ0VfRkxfRkFJTEVECT0gKDEgPDwgMSksCisJRlRSQUNFX0ZMX0ZJTFRFUgk9ICgxIDw8IDIpLAorCUZUUkFDRV9GTF9FTkFCTEVECT0gKDEgPDwgMyksCisJRlRSQUNFX0ZMX05PVFJBQ0UJPSAoMSA8PCA0KSwKKwlGVFJBQ0VfRkxfQ09OVkVSVEVECT0gKDEgPDwgNSksCisJRlRSQUNFX0ZMX0ZST1pFTgk9ICgxIDw8IDYpLAorfTsKKworc3RydWN0IGR5bl9mdHJhY2UgeworCXN0cnVjdCBobGlzdF9ub2RlIG5vZGU7CisJdW5zaWduZWQgbG9uZwkgIGlwOyAvKiBhZGRyZXNzIG9mIG1jb3VudCBjYWxsLXNpdGUgKi8KKwl1bnNpZ25lZCBsb25nCSAgZmxhZ3M7Cit9OworCitpbnQgZnRyYWNlX2ZvcmNlX3VwZGF0ZSh2b2lkKTsKK3ZvaWQgZnRyYWNlX3NldF9maWx0ZXIodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQpOworCisvKiBkZWZpbmVkIGluIGFyY2ggKi8KK2V4dGVybiBpbnQgZnRyYWNlX2lwX2NvbnZlcnRlZCh1bnNpZ25lZCBsb25nIGlwKTsKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpmdHJhY2Vfbm9wX3JlcGxhY2Uodm9pZCk7CitleHRlcm4gdW5zaWduZWQgY2hhciAqZnRyYWNlX2NhbGxfcmVwbGFjZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIGFkZHIpOworZXh0ZXJuIGludCBmdHJhY2VfZHluX2FyY2hfaW5pdCh2b2lkICpkYXRhKTsKK2V4dGVybiBpbnQgZnRyYWNlX21jb3VudF9zZXQodW5zaWduZWQgbG9uZyAqZGF0YSk7CitleHRlcm4gaW50IGZ0cmFjZV9tb2RpZnlfY29kZSh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBjaGFyICpvbGRfY29kZSwKKwkJCSAgICAgIHVuc2lnbmVkIGNoYXIgKm5ld19jb2RlKTsKK2V4dGVybiBpbnQgZnRyYWNlX3VwZGF0ZV9mdHJhY2VfZnVuYyhmdHJhY2VfZnVuY190IGZ1bmMpOworZXh0ZXJuIHZvaWQgZnRyYWNlX2NhbGxlcih2b2lkKTsKK2V4dGVybiB2b2lkIGZ0cmFjZV9jYWxsKHZvaWQpOworZXh0ZXJuIHZvaWQgbWNvdW50X2NhbGwodm9pZCk7CisKK2V4dGVybiBpbnQgc2tpcF90cmFjZSh1bnNpZ25lZCBsb25nIGlwKTsKKwordm9pZCBmdHJhY2VfZGlzYWJsZV9kYWVtb24odm9pZCk7Cit2b2lkIGZ0cmFjZV9lbmFibGVfZGFlbW9uKHZvaWQpOworCisjZWxzZQorIyBkZWZpbmUgc2tpcF90cmFjZShpcCkJCQkJKHsgMDsgfSkKKyMgZGVmaW5lIGZ0cmFjZV9mb3JjZV91cGRhdGUoKQkJCSh7IDA7IH0pCisjIGRlZmluZSBmdHJhY2Vfc2V0X2ZpbHRlcihidWYsIGxlbiwgcmVzZXQpCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9kaXNhYmxlX2RhZW1vbigpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2VfZW5hYmxlX2RhZW1vbigpCQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmIC8qIENPTkZJR19EWU5BTUlDX0ZUUkFDRSAqLworCisvKiB0b3RhbGx5IGRpc2FibGUgZnRyYWNlIC0gY2FuIG5vdCByZS1lbmFibGUgYWZ0ZXIgdGhpcyAqLwordm9pZCBmdHJhY2Vfa2lsbCh2b2lkKTsKK3ZvaWQgZnRyYWNlX2tpbGxfYXRvbWljKHZvaWQpOworCitzdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VyX2Rpc2FibGUodm9pZCkKK3sKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJZnRyYWNlX2VuYWJsZWQgPSAwOworI2VuZGlmCit9CisKKyNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgorLyogVE9ETzogbmVlZCB0byBmaXggdGhpcyBmb3IgQVJNICovCisjIGRlZmluZSBDQUxMRVJfQUREUjAgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSkKKyMgZGVmaW5lIENBTExFUl9BRERSMSAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDEpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFIyICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMikpCisjIGRlZmluZSBDQUxMRVJfQUREUjMgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygzKSkKKyMgZGVmaW5lIENBTExFUl9BRERSNCAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDQpKQorIyBkZWZpbmUgQ0FMTEVSX0FERFI1ICgodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNSkpCisjIGRlZmluZSBDQUxMRVJfQUREUjYgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyg2KSkKKyNlbHNlCisjIGRlZmluZSBDQUxMRVJfQUREUjAgKCh1bnNpZ25lZCBsb25nKV9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSkKKyMgZGVmaW5lIENBTExFUl9BRERSMSAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSMiAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSMyAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNCAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNSAwVUwKKyMgZGVmaW5lIENBTExFUl9BRERSNiAwVUwKKyNlbmRpZgorCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCisgIGV4dGVybiB2b2lkIHRpbWVfaGFyZGlycXNfb24odW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSk7CisgIGV4dGVybiB2b2lkIHRpbWVfaGFyZGlycXNfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpOworI2Vsc2UKKyMgZGVmaW5lIHRpbWVfaGFyZGlycXNfb24oYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgdGltZV9oYXJkaXJxc19vZmYoYTAsIGExKQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9UUkFDRVIKKyAgZXh0ZXJuIHZvaWQgdHJhY2VfcHJlZW1wdF9vbih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKTsKKyAgZXh0ZXJuIHZvaWQgdHJhY2VfcHJlZW1wdF9vZmYodW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSk7CisjZWxzZQorIyBkZWZpbmUgdHJhY2VfcHJlZW1wdF9vbihhMCwgYTEpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSB0cmFjZV9wcmVlbXB0X29mZihhMCwgYTEpCQlkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19UUkFDSU5HCitleHRlcm4gdm9pZAorZnRyYWNlX3NwZWNpYWwodW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMyk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkCitmdHJhY2Vfc3BlY2lhbCh1bnNpZ25lZCBsb25nIGFyZzEsIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmczKSB7IH0KKyNlbmRpZgorCisjZW5kaWYgLyogX0xJTlVYX0ZUUkFDRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2dlbmhkLmggYi9pbmNsdWRlL2xpbnV4L2dlbmhkLmgKaW5kZXggYWU3YWVjMy4uZTg3ODc0MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9nZW5oZC5oCisrKyBiL2luY2x1ZGUvbGludXgvZ2VuaGQuaApAQCAtMTEwLDYgKzExMCwxNCBAQAogI2RlZmluZSBHRU5IRF9GTF9TVVBQUkVTU19QQVJUSVRJT05fSU5GTwkzMgogI2RlZmluZSBHRU5IRF9GTF9GQUlMCQkJCTY0CiAKKyNkZWZpbmUgQkxLX1NDU0lfTUFYX0NNRFMJKDI1NikKKyNkZWZpbmUgQkxLX1NDU0lfQ01EX1BFUl9MT05HCShCTEtfU0NTSV9NQVhfQ01EUyAvIChzaXplb2YobG9uZykgKiA4KSkKKworc3RydWN0IGJsa19zY3NpX2NtZF9maWx0ZXIgeworCXVuc2lnbmVkIGxvbmcgcmVhZF9va1tCTEtfU0NTSV9DTURfUEVSX0xPTkddOworCXVuc2lnbmVkIGxvbmcgd3JpdGVfb2tbQkxLX1NDU0lfQ01EX1BFUl9MT05HXTsKKwlzdHJ1Y3Qga29iamVjdCBrb2JqOworfTsKIAogc3RydWN0IGdlbmRpc2sgewogCWludCBtYWpvcjsJCQkvKiBtYWpvciBudW1iZXIgb2YgZHJpdmVyICovCkBAIC0xMjAsNiArMTI4LDcgQEAKIAlzdHJ1Y3QgaGRfc3RydWN0ICoqcGFydDsJLyogW2luZGV4ZWQgYnkgbWlub3JdICovCiAJc3RydWN0IGJsb2NrX2RldmljZV9vcGVyYXRpb25zICpmb3BzOwogCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxdWV1ZTsKKwlzdHJ1Y3QgYmxrX3Njc2lfY21kX2ZpbHRlciBjbWRfZmlsdGVyOwogCXZvaWQgKnByaXZhdGVfZGF0YTsKIAlzZWN0b3JfdCBjYXBhY2l0eTsKIApAQCAtMTQxLDYgKzE1MCw5IEBACiAJc3RydWN0IGRpc2tfc3RhdHMgZGtzdGF0czsKICNlbmRpZgogCXN0cnVjdCB3b3JrX3N0cnVjdCBhc3luY19ub3RpZnk7CisjaWZkZWYgIENPTkZJR19CTEtfREVWX0lOVEVHUklUWQorCXN0cnVjdCBibGtfaW50ZWdyaXR5ICppbnRlZ3JpdHk7CisjZW5kaWYKIH07CiAKIC8qIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ncGlvLmggYi9pbmNsdWRlL2xpbnV4L2dwaW8uaAppbmRleCA0OTg3YTg0Li45OGJlNmM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2dwaW8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2dwaW8uaApAQCAtOCw2ICs4LDkgQEAKIAogI2Vsc2UKIAorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKwogLyoKICAqIFNvbWUgcGxhdGZvcm1zIGRvbid0IHN1cHBvcnQgdGhlIEdQSU8gcHJvZ3JhbW1pbmcgaW50ZXJmYWNlLgogICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaTJjLmggYi9pbmNsdWRlL2xpbnV4L2kyYy5oCmluZGV4IGZiOWFmNmEuLjhkYzczMDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaTJjLmgKKysrIGIvaW5jbHVkZS9saW51eC9pMmMuaApAQCAtMTcxLDcgKzE3MSw3IEBACiAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyOwkvKiB0aGUgYWRhcHRlciB3ZSBzaXQgb24JKi8KIAlzdHJ1Y3QgaTJjX2RyaXZlciAqZHJpdmVyOwkvKiBhbmQgb3VyIGFjY2VzcyByb3V0aW5lcwkqLwogCXN0cnVjdCBkZXZpY2UgZGV2OwkJLyogdGhlIGRldmljZSBzdHJ1Y3R1cmUJCSovCi0JaW50IGlycTsJCQkvKiBpcnEgaXNzdWVkIGJ5IGRldmljZSAob3IgLTEpICovCisJaW50IGlycTsJCQkvKiBpcnEgaXNzdWVkIGJ5IGRldmljZQkJKi8KIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CQkvKiBERVBSRUNBVEVEICovCiAJc3RydWN0IGNvbXBsZXRpb24gcmVsZWFzZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZGUuaCBiL2luY2x1ZGUvbGludXgvaWRlLmgKaW5kZXggZjhmMTk1Yy4uZWRkYjZkYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pZGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lkZS5oCkBAIC0xNTMsNyArMTUzLDcgQEAKIAkJaWRlX3FkNjV4eCwJaWRlX3VtYzg2NzIsCWlkZV9odDY1NjBiLAogCQlpZGVfcnoxMDAwLAlpZGVfdHJtMjkwLAogCQlpZGVfY21kNjQ2LAlpZGVfY3k4MmM2OTMsCWlkZV80ZHJpdmVzLAotCQlpZGVfcG1hYywJaWRlX2V0cmF4MTAwLAlpZGVfYWNvcm4sCisJCWlkZV9wbWFjLAlpZGVfYWNvcm4sCiAJCWlkZV9hdTF4eHgsCWlkZV9wYWxtMzcxMAogfTsKIApAQCAtMTg5LDYgKzE4OSwyMSBAQAogCWh3LT5pb19wb3J0cy5jdGxfYWRkciA9IGN0bF9hZGRyOwogfQogCisvKiBmb3IgSURFIFBDSSBjb250cm9sbGVycyBpbiBsZWdhY3kgbW9kZSwgdGVtcG9yYXJ5ICovCitzdGF0aWMgaW5saW5lIGludCBfX2lkZV9kZWZhdWx0X2lycSh1bnNpZ25lZCBsb25nIGJhc2UpCit7CisJc3dpdGNoIChiYXNlKSB7CisjaWZkZWYgQ09ORklHX0lBNjQKKwljYXNlIDB4MWYwOiByZXR1cm4gaXNhX2lycV90b192ZWN0b3IoMTQpOworCWNhc2UgMHgxNzA6IHJldHVybiBpc2FfaXJxX3RvX3ZlY3RvcigxNSk7CisjZWxzZQorCWNhc2UgMHgxZjA6IHJldHVybiAxNDsKKwljYXNlIDB4MTcwOiByZXR1cm4gMTU7CisjZW5kaWYKKwl9CisJcmV0dXJuIDA7Cit9CisKICNpbmNsdWRlIDxhc20vaWRlLmg+CiAKICNpZiAhZGVmaW5lZChNQVhfSFdJRlMpIHx8IGRlZmluZWQoQ09ORklHX0VNQkVEREVEKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pZl90dW5uZWwuaCBiL2luY2x1ZGUvbGludXgvaWZfdHVubmVsLmgKaW5kZXggZjFmYmU5Yy4uZDRlZmU0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pZl90dW5uZWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L2lmX3R1bm5lbC5oCkBAIC00MSw3ICs0MSw3IEBACiAJX191MTYJCQlfX3Jlc2VydmVkOwogCV9fdTMyCQkJZGF0YWxlbjsKIAlfX3UzMgkJCV9fcmVzZXJ2ZWQyOwotCXZvaWQgX191c2VyCQkqZGF0YTsKKwkvKiBkYXRhIGZvbGxvd3MgKi8KIH07CiAKIC8qIFBSTCBmbGFncyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9paGV4LmggYi9pbmNsdWRlL2xpbnV4L2loZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmFhY2UyCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9paGV4LmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvbXBhY3QgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGloZXggcmVjb3Jkcy4gU29tZSBkZXZpY2VzIG5lZWQgdGhlaXIKKyAqIGZpcm13YXJlIGxvYWRlZCBpbiBzdHJhbmdlIG9yZGVycyByYXRoZXIgdGhhbiBhIHNpbmdsZSBiaWcgYmxvYiwgYnV0CisgKiBhY3R1YWxseSBwYXJzaW5nIGloZXgtYXMtdGV4dCB3aXRoaW4gdGhlIGtlcm5lbCBzZWVtcyBzaWxseS4gVGh1cywuLi4KKyAqLworCisjaWZuZGVmIF9fTElOVVhfSUhFWF9IX18KKyNkZWZpbmUgX19MSU5VWF9JSEVYX0hfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorCisvKiBJbnRlbCBIRVggZmlsZXMgYWN0dWFsbHkgbGltaXQgdGhlIGxlbmd0aCB0byAyNTYgYnl0ZXMsIGJ1dCB3ZSBoYXZlCisgICBkcml2ZXJzIHdoaWNoIHdvdWxkIGJlbmVmaXQgZnJvbSB1c2luZyBzZXBhcmF0ZSByZWNvcmRzIHdoaWNoIGFyZQorICAgbG9uZ2VyIHRoYW4gdGhhdCwgc28gd2UgZXh0ZW5kIHRvIDE2IGJpdHMgb2YgbGVuZ3RoICovCitzdHJ1Y3QgaWhleF9iaW5yZWMgeworCV9fYmUzMiBhZGRyOworCV9fYmUxNiBsZW47CisJdWludDhfdCBkYXRhWzBdOworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSk7CisKKy8qIEZpbmQgdGhlIG5leHQgcmVjb3JkLCB0YWtpbmcgaW50byBhY2NvdW50IHRoZSA0LWJ5dGUgYWxpZ25tZW50ICovCitzdGF0aWMgaW5saW5lIGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqCitpaGV4X25leHRfYmlucmVjKGNvbnN0IHN0cnVjdCBpaGV4X2JpbnJlYyAqcmVjKQoreworCWludCBuZXh0ID0gKChiZTE2X3RvX2NwdShyZWMtPmxlbikgKyA1KSAmIH4zKSAtIDI7CisJcmVjID0gKHZvaWQgKikmcmVjLT5kYXRhW25leHRdOworCisJcmV0dXJuIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSA/IHJlYyA6IE5VTEw7Cit9CisKKy8qIENoZWNrIHRoYXQgaWhleF9uZXh0X2JpbnJlYygpIHdvbid0IHRha2UgdXMgb2ZmIHRoZSBlbmQgb2YgdGhlIGltYWdlLi4uICovCitzdGF0aWMgaW5saW5lIGludCBpaGV4X3ZhbGlkYXRlX2Z3KGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCit7CisJY29uc3Qgc3RydWN0IGloZXhfYmlucmVjICpyZWM7CisJc2l6ZV90IG9mcyA9IDA7CisKKwl3aGlsZSAob2ZzIDw9IGZ3LT5zaXplIC0gc2l6ZW9mKCpyZWMpKSB7CisJCXJlYyA9ICh2b2lkICopJmZ3LT5kYXRhW29mc107CisKKwkJLyogWmVybyBsZW5ndGggbWFya3MgZW5kIG9mIHJlY29yZHMgKi8KKwkJaWYgKCFiZTE2X3RvX2NwdShyZWMtPmxlbikpCisJCQlyZXR1cm4gMDsKKworCQkvKiBQb2ludCB0byBuZXh0IHJlY29yZC4uLiAqLworCQlvZnMgKz0gKHNpemVvZigqcmVjKSArIGJlMTZfdG9fY3B1KHJlYy0+bGVuKSArIDMpICYgfjM7CisJfQorCXJldHVybiAtRUlOVkFMOworfQorCisvKiBSZXF1ZXN0IGZpcm13YXJlIGFuZCB2YWxpZGF0ZSBpdCBzbyB0aGF0IHdlIGNhbiB0cnVzdCB3ZSB3b24ndAorICogcnVuIG9mZiB0aGUgZW5kIHdoaWxlIHJlYWRpbmcgcmVjb3Jkcy4uLiAqLworc3RhdGljIGlubGluZSBpbnQgcmVxdWVzdF9paGV4X2Zpcm13YXJlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqKmZ3LAorCQkJCQljb25zdCBjaGFyICpmd19uYW1lLAorCQkJCQlzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJY29uc3Qgc3RydWN0IGZpcm13YXJlICpsZnc7CisJaW50IHJldDsKKworCXJldCA9IHJlcXVlc3RfZmlybXdhcmUoJmxmdywgZndfbmFtZSwgZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXJldCA9IGloZXhfdmFsaWRhdGVfZncobGZ3KTsKKwlpZiAocmV0KSB7CisJCWRldl9lcnIoZGV2LCAiRmlybXdhcmUgXCIlc1wiIG5vdCB2YWxpZCBJSEVYIHJlY29yZHNcbiIsCisJCQlmd19uYW1lKTsKKwkJcmVsZWFzZV9maXJtd2FyZShsZncpOworCQlyZXR1cm4gcmV0OworCX0KKwkqZncgPSBsZnc7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogX19MSU5VWF9JSEVYX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbl9yb3V0ZS5oIGIvaW5jbHVkZS9saW51eC9pbl9yb3V0ZS5oCmluZGV4IDYxZjI1YzMuLmIyNjFiOGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5fcm91dGUuaAorKysgYi9pbmNsdWRlL2xpbnV4L2luX3JvdXRlLmgKQEAgLTEwLDE5ICsxMCwxOSBAQAogI2RlZmluZSBSVENGX05PUE1UVURJU0MgUlRNX0ZfTk9QTVRVRElTQwogCiAjZGVmaW5lIFJUQ0ZfTk9USUZZCTB4MDAwMTAwMDAKLSNkZWZpbmUgUlRDRl9ESVJFQ1REU1QJMHgwMDAyMDAwMAorI2RlZmluZSBSVENGX0RJUkVDVERTVAkweDAwMDIwMDAwIC8qIHVudXNlZCAqLwogI2RlZmluZSBSVENGX1JFRElSRUNURUQJMHgwMDA0MDAwMAotI2RlZmluZSBSVENGX1RQUk9YWQkweDAwMDgwMDAwCisjZGVmaW5lIFJUQ0ZfVFBST1hZCTB4MDAwODAwMDAgLyogdW51c2VkICovCiAKLSNkZWZpbmUgUlRDRl9GQVNUCTB4MDAyMDAwMDAKLSNkZWZpbmUgUlRDRl9NQVNRCTB4MDA0MDAwMDAKLSNkZWZpbmUgUlRDRl9TTkFUCTB4MDA4MDAwMDAKKyNkZWZpbmUgUlRDRl9GQVNUCTB4MDAyMDAwMDAgLyogdW51c2VkICovCisjZGVmaW5lIFJUQ0ZfTUFTUQkweDAwNDAwMDAwIC8qIHVudXNlZCAqLworI2RlZmluZSBSVENGX1NOQVQJMHgwMDgwMDAwMCAvKiB1bnVzZWQgKi8KICNkZWZpbmUgUlRDRl9ET1JFRElSRUNUIDB4MDEwMDAwMDAKICNkZWZpbmUgUlRDRl9ESVJFQ1RTUkMJMHgwNDAwMDAwMAogI2RlZmluZSBSVENGX0ROQVQJMHgwODAwMDAwMAogI2RlZmluZSBSVENGX0JST0FEQ0FTVAkweDEwMDAwMDAwCiAjZGVmaW5lIFJUQ0ZfTVVMVElDQVNUCTB4MjAwMDAwMDAKLSNkZWZpbmUgUlRDRl9SRUpFQ1QJMHg0MDAwMDAwMAorI2RlZmluZSBSVENGX1JFSkVDVAkweDQwMDAwMDAwIC8qIHVudXNlZCAqLwogI2RlZmluZSBSVENGX0xPQ0FMCTB4ODAwMDAwMDAKIAogI2RlZmluZSBSVENGX05BVAkoUlRDRl9ETkFUfFJUQ0ZfU05BVCkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW5ldF9scm8uaCBiL2luY2x1ZGUvbGludXgvaW5ldF9scm8uaAppbmRleCA4MDMzNWI3Li5jNDMzNWZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2luZXRfbHJvLmgKKysrIGIvaW5jbHVkZS9saW51eC9pbmV0X2xyby5oCkBAIC04NCw3ICs4NCwxMSBAQAogCQkJCSAgICBmcm9tIHJlY2VpdmVkIHBhY2tldHMgYW5kIGV0aCBwcm90b2NvbAogCQkJCSAgICBpcyBzdGlsbCBFVEhfUF84MDIxUSAqLwogCi0JdTMyIGlwX3N1bW1lZDsgICAgICAvKiBTZXQgaW4gbm9uIGdlbmVyYXRlZCBTS0JzIGluIHBhZ2UgbW9kZSAqLworCS8qCisJICogU2V0IGZvciBnZW5lcmF0ZWQgU0tCcyB0aGF0IGFyZSBub3QgYWRkZWQgdG8KKwkgKiB0aGUgZnJhZyBsaXN0IGluIGZyYWdtZW50ZWQgbW9kZQorCSAqLworCXUzMiBpcF9zdW1tZWQ7CiAJdTMyIGlwX3N1bW1lZF9hZ2dyOyAvKiBTZXQgaW4gYWdncmVnYXRlZCBTS0JzOiBDSEVDS1NVTV9VTk5FQ0VTU0FSWQogCQkJICAgICAqIG9yIENIRUNLU1VNX05PTkUgKi8KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbmV0ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L2luZXRkZXZpY2UuaAppbmRleCA3MDA5YjBjLi5jNmY1MWFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2luZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2luZXRkZXZpY2UuaApAQCAtMTE3LDcgKzExNyw2IEBACiAJX19iZTMyCQkJaWZhX2FkZHJlc3M7CiAJX19iZTMyCQkJaWZhX21hc2s7CiAJX19iZTMyCQkJaWZhX2Jyb2FkY2FzdDsKLQlfX2JlMzIJCQlpZmFfYW55Y2FzdDsKIAl1bnNpZ25lZCBjaGFyCQlpZmFfc2NvcGU7CiAJdW5zaWduZWQgY2hhcgkJaWZhX2ZsYWdzOwogCXVuc2lnbmVkIGNoYXIJCWlmYV9wcmVmaXhsZW47CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2lucHV0LmggYi9pbmNsdWRlL2xpbnV4L2lucHV0LmgKaW5kZXggMjhhMDk0Zi4uZDE1MGM1NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbnB1dC5oCisrKyBiL2luY2x1ZGUvbGludXgvaW5wdXQuaApAQCAtNTM0LDggKzUzNCw4IEBACiAKICNkZWZpbmUgS0VZX0ZSQU1FQkFDSwkJMHgxYjQJLyogQ29uc3VtZXIgLSB0cmFuc3BvcnQgY29udHJvbHMgKi8KICNkZWZpbmUgS0VZX0ZSQU1FRk9SV0FSRAkweDFiNQotCiAjZGVmaW5lIEtFWV9DT05URVhUX01FTlUJMHgxYjYJLyogR2VuRGVzYyAtIHN5c3RlbSBjb250ZXh0IG1lbnUgKi8KKyNkZWZpbmUgS0VZX01FRElBX1JFUEVBVAkweDFiNwkvKiBDb25zdW1lciAtIHRyYW5zcG9ydCBjb250cm9sICovCiAKICNkZWZpbmUgS0VZX0RFTF9FT0wJCTB4MWMwCiAjZGVmaW5lIEtFWV9ERUxfRU9TCQkweDFjMQpAQCAtNjM3LDcgKzYzNyw5IEBACiAjZGVmaW5lIFNXX0xJRAkJCTB4MDAgIC8qIHNldCA9IGxpZCBzaHV0ICovCiAjZGVmaW5lIFNXX1RBQkxFVF9NT0RFCQkweDAxICAvKiBzZXQgPSB0YWJsZXQgbW9kZSAqLwogI2RlZmluZSBTV19IRUFEUEhPTkVfSU5TRVJUCTB4MDIgIC8qIHNldCA9IGluc2VydGVkICovCi0jZGVmaW5lIFNXX1JBRElPCQkweDAzICAvKiBzZXQgPSByYWRpbyBlbmFibGVkICovCisjZGVmaW5lIFNXX1JGS0lMTF9BTEwJCTB4MDMgIC8qIHJma2lsbCBtYXN0ZXIgc3dpdGNoLCB0eXBlICJhbnkiCisJCQkJCSBzZXQgPSByYWRpbyBlbmFibGVkICovCisjZGVmaW5lIFNXX1JBRElPCQlTV19SRktJTExfQUxMCS8qIGRlcHJlY2F0ZWQgKi8KICNkZWZpbmUgU1dfTUFYCQkJMHgwZgogI2RlZmluZSBTV19DTlQJCQkoU1dfTUFYKzEpCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmggYi9pbmNsdWRlL2xpbnV4L2ludGVycnVwdC5oCmluZGV4IGYxZmM3NDcuLmE4NjE4NmQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW50ZXJydXB0LmgKKysrIGIvaW5jbHVkZS9saW51eC9pbnRlcnJ1cHQuaApAQCAtMjg1LDEyICsyODUsMTEgQEAKIHN0cnVjdCBzb2Z0aXJxX2FjdGlvbgogewogCXZvaWQJKCphY3Rpb24pKHN0cnVjdCBzb2Z0aXJxX2FjdGlvbiAqKTsKLQl2b2lkCSpkYXRhOwogfTsKIAogYXNtbGlua2FnZSB2b2lkIGRvX3NvZnRpcnEodm9pZCk7CiBhc21saW5rYWdlIHZvaWQgX19kb19zb2Z0aXJxKHZvaWQpOwotZXh0ZXJuIHZvaWQgb3Blbl9zb2Z0aXJxKGludCBuciwgdm9pZCAoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uKiksIHZvaWQgKmRhdGEpOworZXh0ZXJuIHZvaWQgb3Blbl9zb2Z0aXJxKGludCBuciwgdm9pZCAoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopKTsKIGV4dGVybiB2b2lkIHNvZnRpcnFfaW5pdCh2b2lkKTsKICNkZWZpbmUgX19yYWlzZV9zb2Z0aXJxX2lycW9mZihucikgZG8geyBvcl9zb2Z0aXJxX3BlbmRpbmcoMVVMIDw8IChucikpOyB9IHdoaWxlICgwKQogZXh0ZXJuIHZvaWQgcmFpc2Vfc29mdGlycV9pcnFvZmYodW5zaWduZWQgaW50IG5yKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmggYi9pbmNsdWRlL2xpbnV4L2lvY29udGV4dC5oCmluZGV4IDJiN2ExMTguLjA4Yjk4N2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW9jb250ZXh0LmgKKysrIGIvaW5jbHVkZS9saW51eC9pb2NvbnRleHQuaApAQCAtOTksNCArOTksMjIgQEAKIAlyZXR1cm4gTlVMTDsKIH0KIAorI2lmZGVmIENPTkZJR19CTE9DSworaW50IHB1dF9pb19jb250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICppb2MpOwordm9pZCBleGl0X2lvX2NvbnRleHQodm9pZCk7CitzdHJ1Y3QgaW9fY29udGV4dCAqZ2V0X2lvX2NvbnRleHQoZ2ZwX3QgZ2ZwX2ZsYWdzLCBpbnQgbm9kZSk7CitzdHJ1Y3QgaW9fY29udGV4dCAqYWxsb2NfaW9fY29udGV4dChnZnBfdCBnZnBfZmxhZ3MsIGludCBub2RlKTsKK3ZvaWQgY29weV9pb19jb250ZXh0KHN0cnVjdCBpb19jb250ZXh0ICoqcGRzdCwgc3RydWN0IGlvX2NvbnRleHQgKipwc3JjKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgZXhpdF9pb19jb250ZXh0KHZvaWQpCit7Cit9CisKK3N0cnVjdCBpb19jb250ZXh0Oworc3RhdGljIGlubGluZSBpbnQgcHV0X2lvX2NvbnRleHQoc3RydWN0IGlvX2NvbnRleHQgKmlvYykKK3sKKwlyZXR1cm4gMTsKK30KKyNlbmRpZgorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW9wb3J0LmggYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCmluZGV4IGQ1ZDQwYTkuLmM2ODAxYmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW9wb3J0LmgKKysrIGIvaW5jbHVkZS9saW51eC9pb3BvcnQuaApAQCAtNTMsMTQgKzUzLDE0IEBACiAjZGVmaW5lIElPUkVTT1VSQ0VfQVVUTwkJMHg0MDAwMDAwMAogI2RlZmluZSBJT1JFU09VUkNFX0JVU1kJCTB4ODAwMDAwMDAJLyogRHJpdmVyIGhhcyBtYXJrZWQgdGhpcyByZXNvdXJjZSBidXN5ICovCiAKLS8qIElTQSBQblAgSVJRIHNwZWNpZmljIGJpdHMgKElPUkVTT1VSQ0VfQklUUykgKi8KKy8qIFBuUCBJUlEgc3BlY2lmaWMgYml0cyAoSU9SRVNPVVJDRV9CSVRTKSAqLwogI2RlZmluZSBJT1JFU09VUkNFX0lSUV9ISUdIRURHRQkJKDE8PDApCiAjZGVmaW5lIElPUkVTT1VSQ0VfSVJRX0xPV0VER0UJCSgxPDwxKQogI2RlZmluZSBJT1JFU09VUkNFX0lSUV9ISUdITEVWRUwJKDE8PDIpCiAjZGVmaW5lIElPUkVTT1VSQ0VfSVJRX0xPV0xFVkVMCQkoMTw8MykKICNkZWZpbmUgSU9SRVNPVVJDRV9JUlFfU0hBUkVBQkxFCSgxPDw0KQogCi0vKiBJU0EgUG5QIERNQSBzcGVjaWZpYyBiaXRzIChJT1JFU09VUkNFX0JJVFMpICovCisvKiBQblAgRE1BIHNwZWNpZmljIGJpdHMgKElPUkVTT1VSQ0VfQklUUykgKi8KICNkZWZpbmUgSU9SRVNPVVJDRV9ETUFfVFlQRV9NQVNLCSgzPDwwKQogI2RlZmluZSBJT1JFU09VUkNFX0RNQV84QklUCQkoMDw8MCkKICNkZWZpbmUgSU9SRVNPVVJDRV9ETUFfOEFORDE2QklUCSgxPDwwKQpAQCAtNzYsNyArNzYsNyBAQAogI2RlZmluZSBJT1JFU09VUkNFX0RNQV9UWVBFQgkJKDI8PDYpCiAjZGVmaW5lIElPUkVTT1VSQ0VfRE1BX1RZUEVGCQkoMzw8NikKIAotLyogSVNBIFBuUCBtZW1vcnkgSS9PIHNwZWNpZmljIGJpdHMgKElPUkVTT1VSQ0VfQklUUykgKi8KKy8qIFBuUCBtZW1vcnkgSS9PIHNwZWNpZmljIGJpdHMgKElPUkVTT1VSQ0VfQklUUykgKi8KICNkZWZpbmUgSU9SRVNPVVJDRV9NRU1fV1JJVEVBQkxFCSgxPDwwKQkvKiBkdXA6IElPUkVTT1VSQ0VfUkVBRE9OTFkgKi8KICNkZWZpbmUgSU9SRVNPVVJDRV9NRU1fQ0FDSEVBQkxFCSgxPDwxKQkvKiBkdXA6IElPUkVTT1VSQ0VfQ0FDSEVBQkxFICovCiAjZGVmaW5lIElPUkVTT1VSQ0VfTUVNX1JBTkdFTEVOR1RICSgxPDwyKQkvKiBkdXA6IElPUkVTT1VSQ0VfUkFOR0VMRU5HVEggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaXB2Ni5oIGIvaW5jbHVkZS9saW51eC9pcHY2LmgKaW5kZXggMTBiNjY2Yi4uY2RlMDU2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pcHY2LmgKKysrIGIvaW5jbHVkZS9saW51eC9pcHY2LmgKQEAgLTM5Niw4ICszOTYsMTAgQEAKIHsKIAlzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEgPSByZXFza19hbGxvYyhvcHMpOwogCi0JaWYgKHJlcSAhPSBOVUxMKQorCWlmIChyZXEgIT0gTlVMTCkgewogCQlpbmV0X3JzayhyZXEpLT5pbmV0Nl9yc2tfb2Zmc2V0ID0gaW5ldDZfcnNrX29mZnNldChyZXEpOworCQlpbmV0Nl9yc2socmVxKS0+cGt0b3B0cyA9IE5VTEw7CisJfQogCiAJcmV0dXJuIHJlcTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaCBiL2luY2x1ZGUvbGludXgvaXJxZmxhZ3MuaAppbmRleCBlNjAwYzRlLi4yYjFjMmU1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lycWZsYWdzLmgKKysrIGIvaW5jbHVkZS9saW51eC9pcnFmbGFncy5oCkBAIC0xMiwxMCArMTIsMTAgQEAKICNkZWZpbmUgX0xJTlVYX1RSQUNFX0lSUUZMQUdTX0gKIAogI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vbih2b2lkKTsKLSAgZXh0ZXJuIHZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmKHZvaWQpOwogICBleHRlcm4gdm9pZCB0cmFjZV9zb2Z0aXJxc19vbih1bnNpZ25lZCBsb25nIGlwKTsKICAgZXh0ZXJuIHZvaWQgdHJhY2Vfc29mdGlycXNfb2ZmKHVuc2lnbmVkIGxvbmcgaXApOworICBleHRlcm4gdm9pZCB0cmFjZV9oYXJkaXJxc19vbih2b2lkKTsKKyAgZXh0ZXJuIHZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmKHZvaWQpOwogIyBkZWZpbmUgdHJhY2VfaGFyZGlycV9jb250ZXh0KHApCSgocCktPmhhcmRpcnFfY29udGV4dCkKICMgZGVmaW5lIHRyYWNlX3NvZnRpcnFfY29udGV4dChwKQkoKHApLT5zb2Z0aXJxX2NvbnRleHQpCiAjIGRlZmluZSB0cmFjZV9oYXJkaXJxc19lbmFibGVkKHApCSgocCktPmhhcmRpcnFzX2VuYWJsZWQpCkBAIC00MSw2ICs0MSwxNSBAQAogIyBkZWZpbmUgSU5JVF9UUkFDRV9JUlFGTEFHUwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKENPTkZJR19JUlFTT0ZGX1RSQUNFUikgfHwgXAorCWRlZmluZWQoQ09ORklHX1BSRUVNUFRfVFJBQ0VSKQorIGV4dGVybiB2b2lkIHN0b3BfY3JpdGljYWxfdGltaW5ncyh2b2lkKTsKKyBleHRlcm4gdm9pZCBzdGFydF9jcml0aWNhbF90aW1pbmdzKHZvaWQpOworI2Vsc2UKKyMgZGVmaW5lIHN0b3BfY3JpdGljYWxfdGltaW5ncygpIGRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIHN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKSBkbyB7IH0gd2hpbGUgKDApCisjZW5kaWYKKwogI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHU19TVVBQT1JUCiAKICNpbmNsdWRlIDxhc20vaXJxZmxhZ3MuaD4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvamJkMi5oIGIvaW5jbHVkZS9saW51eC9qYmQyLmgKaW5kZXggMDVlMmIzMC4uM2RkMjA5MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9qYmQyLmgKKysrIGIvaW5jbHVkZS9saW51eC9qYmQyLmgKQEAgLTE2OCw2ICsxNjgsOCBAQAogCXVuc2lnbmVkIGNoYXIgICBoX2Noa3N1bV9zaXplOwogCXVuc2lnbmVkIGNoYXIgCWhfcGFkZGluZ1syXTsKIAlfX2JlMzIgCQloX2Noa3N1bVtKQkQyX0NIRUNLU1VNX0JZVEVTXTsKKwlfX2JlNjQJCWhfY29tbWl0X3NlYzsKKwlfX2JlMzIJCWhfY29tbWl0X25zZWM7CiB9OwogCiAvKgpAQCAtMzc5LDYgKzM4MSwzOCBAQAogCWJpdF9zcGluX3VubG9jayhCSF9Kb3VybmFsSGVhZCwgJmJoLT5iX3N0YXRlKTsKIH0KIAorLyogRmxhZ3MgaW4gamJkX2lub2RlLT5pX2ZsYWdzICovCisjZGVmaW5lIF9fSklfQ09NTUlUX1JVTk5JTkcgMAorLyogQ29tbWl0IG9mIHRoZSBpbm9kZSBkYXRhIGluIHByb2dyZXNzLiBXZSB1c2UgdGhpcyBmbGFnIHRvIHByb3RlY3QgdXMgZnJvbQorICogY29uY3VycmVudCBkZWxldGlvbiBvZiBpbm9kZS4gV2UgY2Fubm90IHVzZSByZWZlcmVuY2UgdG8gaW5vZGUgZm9yIHRoaXMKKyAqIHNpbmNlIHdlIGNhbm5vdCBhZmZvcmQgZG9pbmcgbGFzdCBpcHV0KCkgb24gYmVoYWxmIG9mIGtqb3VybmFsZAorICovCisjZGVmaW5lIEpJX0NPTU1JVF9SVU5OSU5HICgxIDw8IF9fSklfQ09NTUlUX1JVTk5JTkcpCisKKy8qKgorICogc3RydWN0IGpiZF9pbm9kZSBpcyB0aGUgc3RydWN0dXJlIGxpbmtpbmcgaW5vZGVzIGluIG9yZGVyZWQgbW9kZQorICogICBwcmVzZW50IGluIGEgdHJhbnNhY3Rpb24gc28gdGhhdCB3ZSBjYW4gc3luYyB0aGVtIGR1cmluZyBjb21taXQuCisgKi8KK3N0cnVjdCBqYmQyX2lub2RlIHsKKwkvKiBXaGljaCB0cmFuc2FjdGlvbiBkb2VzIHRoaXMgaW5vZGUgYmVsb25nIHRvPyBFaXRoZXIgdGhlIHJ1bm5pbmcKKwkgKiB0cmFuc2FjdGlvbiBvciB0aGUgY29tbWl0dGluZyBvbmUuIFtqX2xpc3RfbG9ja10gKi8KKwl0cmFuc2FjdGlvbl90ICppX3RyYW5zYWN0aW9uOworCisJLyogUG9pbnRlciB0byB0aGUgcnVubmluZyB0cmFuc2FjdGlvbiBtb2RpZnlpbmcgaW5vZGUncyBkYXRhIGluIGNhc2UKKwkgKiB0aGVyZSBpcyBhbHJlYWR5IGEgY29tbWl0dGluZyB0cmFuc2FjdGlvbiB0b3VjaGluZyBpdC4gW2pfbGlzdF9sb2NrXSAqLworCXRyYW5zYWN0aW9uX3QgKmlfbmV4dF90cmFuc2FjdGlvbjsKKworCS8qIExpc3Qgb2YgaW5vZGVzIGluIHRoZSBpX3RyYW5zYWN0aW9uIFtqX2xpc3RfbG9ja10gKi8KKwlzdHJ1Y3QgbGlzdF9oZWFkIGlfbGlzdDsKKworCS8qIFZGUyBpbm9kZSB0aGlzIGlub2RlIGJlbG9uZ3MgdG8gW2NvbnN0YW50IGR1cmluZyB0aGUgbGlmZXRpbWUKKwkgKiBvZiB0aGUgc3RydWN0dXJlXSAqLworCXN0cnVjdCBpbm9kZSAqaV92ZnNfaW5vZGU7CisKKwkvKiBGbGFncyBvZiBpbm9kZSBbal9saXN0X2xvY2tdICovCisJdW5zaWduZWQgaW50IGlfZmxhZ3M7Cit9OworCiBzdHJ1Y3QgamJkMl9yZXZva2VfdGFibGVfczsKIAogLyoqCkBAIC01MDksMjQgKzU0MywxMiBAQAogCXN0cnVjdCBqb3VybmFsX2hlYWQJKnRfcmVzZXJ2ZWRfbGlzdDsKIAogCS8qCi0JICogRG91Ymx5LWxpbmtlZCBjaXJjdWxhciBsaXN0IG9mIGFsbCBidWZmZXJzIHVuZGVyIHdyaXRlb3V0IGR1cmluZwotCSAqIGNvbW1pdCBbal9saXN0X2xvY2tdCi0JICovCi0Jc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9sb2NrZWRfbGlzdDsKLQotCS8qCiAJICogRG91Ymx5LWxpbmtlZCBjaXJjdWxhciBsaXN0IG9mIGFsbCBtZXRhZGF0YSBidWZmZXJzIG93bmVkIGJ5IHRoaXMKIAkgKiB0cmFuc2FjdGlvbiBbal9saXN0X2xvY2tdCiAJICovCiAJc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9idWZmZXJzOwogCiAJLyoKLQkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIGRhdGEgYnVmZmVycyBzdGlsbCB0byBiZQotCSAqIGZsdXNoZWQgYmVmb3JlIHRoaXMgdHJhbnNhY3Rpb24gY2FuIGJlIGNvbW1pdHRlZCBbal9saXN0X2xvY2tdCi0JICovCi0Jc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9zeW5jX2RhdGFsaXN0OwotCi0JLyoKIAkgKiBEb3VibHktbGlua2VkIGNpcmN1bGFyIGxpc3Qgb2YgYWxsIGZvcmdldCBidWZmZXJzIChzdXBlcnNlZGVkCiAJICogYnVmZmVycyB3aGljaCB3ZSBjYW4gdW4tY2hlY2twb2ludCBvbmNlIHRoaXMgdHJhbnNhY3Rpb24gY29tbWl0cykKIAkgKiBbal9saXN0X2xvY2tdCkBAIC01NjUsNiArNTg3LDEyIEBACiAJc3RydWN0IGpvdXJuYWxfaGVhZAkqdF9sb2dfbGlzdDsKIAogCS8qCisJICogTGlzdCBvZiBpbm9kZXMgd2hvc2UgZGF0YSB3ZSd2ZSBtb2RpZmllZCBpbiBkYXRhPW9yZGVyZWQgbW9kZS4KKwkgKiBbal9saXN0X2xvY2tdCisJICovCisJc3RydWN0IGxpc3RfaGVhZAl0X2lub2RlX2xpc3Q7CisKKwkvKgogCSAqIFByb3RlY3RzIGluZm8gcmVsYXRlZCB0byBoYW5kbGVzCiAJICovCiAJc3BpbmxvY2tfdAkJdF9oYW5kbGVfbG9jazsKQEAgLTkxOSw2ICs5NDcsOSBAQAogCXN0cnVjdCBwcm9jX2Rpcl9lbnRyeQkqal9wcm9jX2VudHJ5OwogCXN0cnVjdCB0cmFuc2FjdGlvbl9zdGF0c19zIGpfc3RhdHM7CiAKKwkvKiBGYWlsZWQgam91cm5hbCBjb21taXQgSUQgKi8KKwl1bnNpZ25lZCBpbnQJCWpfZmFpbGVkX2NvbW1pdDsKKwogCS8qCiAJICogQW4gb3BhcXVlIHBvaW50ZXIgdG8gZnMtcHJpdmF0ZSBpbmZvcm1hdGlvbi4gIGV4dDMgcHV0cyBpdHMKIAkgKiBzdXBlcmJsb2NrIHBvaW50ZXIgaGVyZQpAQCAtMTAwMSw3ICsxMDMyLDYgQEAKIGV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9nZXRfd3JpdGVfYWNjZXNzKGhhbmRsZV90ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKIGV4dGVybiBpbnQJIGpiZDJfam91cm5hbF9nZXRfY3JlYXRlX2FjY2VzcyAoaGFuZGxlX3QgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOwogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2dldF91bmRvX2FjY2VzcyhoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7Ci1leHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZGlydHlfZGF0YSAoaGFuZGxlX3QgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOwogZXh0ZXJuIGludAkgamJkMl9qb3VybmFsX2RpcnR5X21ldGFkYXRhIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gdm9pZAkgamJkMl9qb3VybmFsX3JlbGVhc2VfYnVmZmVyIChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CiBleHRlcm4gaW50CSBqYmQyX2pvdXJuYWxfZm9yZ2V0IChoYW5kbGVfdCAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKik7CkBAIC0xMDQxLDYgKzEwNzEsMTAgQEAKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2NsZWFyX2VyciAgKGpvdXJuYWxfdCAqKTsKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2JtYXAoam91cm5hbF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZyAqKTsKIGV4dGVybiBpbnQJICAgamJkMl9qb3VybmFsX2ZvcmNlX2NvbW1pdChqb3VybmFsX3QgKik7CitleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9maWxlX2lub2RlKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSk7CitleHRlcm4gaW50CSAgIGpiZDJfam91cm5hbF9iZWdpbl9vcmRlcmVkX3RydW5jYXRlKHN0cnVjdCBqYmQyX2lub2RlICppbm9kZSwgbG9mZl90IG5ld19zaXplKTsKK2V4dGVybiB2b2lkCSAgIGpiZDJfam91cm5hbF9pbml0X2piZF9pbm9kZShzdHJ1Y3QgamJkMl9pbm9kZSAqamlub2RlLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKK2V4dGVybiB2b2lkCSAgIGpiZDJfam91cm5hbF9yZWxlYXNlX2piZF9pbm9kZShqb3VybmFsX3QgKmpvdXJuYWwsIHN0cnVjdCBqYmQyX2lub2RlICpqaW5vZGUpOwogCiAvKgogICogam91cm5hbF9oZWFkIG1hbmFnZW1lbnQKQEAgLTExNzYsMTUgKzEyMTAsMTMgQEAKIAogLyogam91cm5hbGluZyBidWZmZXIgdHlwZXMgKi8KICNkZWZpbmUgQkpfTm9uZQkJMAkvKiBOb3Qgam91cm5hbGVkICovCi0jZGVmaW5lIEJKX1N5bmNEYXRhCTEJLyogTm9ybWFsIGRhdGE6IGZsdXNoIGJlZm9yZSBjb21taXQgKi8KLSNkZWZpbmUgQkpfTWV0YWRhdGEJMgkvKiBOb3JtYWwgam91cm5hbGVkIG1ldGFkYXRhICovCi0jZGVmaW5lIEJKX0ZvcmdldAkzCS8qIEJ1ZmZlciBzdXBlcnNlZGVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24gKi8KLSNkZWZpbmUgQkpfSU8JCTQJLyogQnVmZmVyIGlzIGZvciB0ZW1wb3JhcnkgSU8gdXNlICovCi0jZGVmaW5lIEJKX1NoYWRvdwk1CS8qIEJ1ZmZlciBjb250ZW50cyBiZWluZyBzaGFkb3dlZCB0byB0aGUgbG9nICovCi0jZGVmaW5lIEJKX0xvZ0N0bAk2CS8qIEJ1ZmZlciBjb250YWlucyBsb2cgZGVzY3JpcHRvcnMgKi8KLSNkZWZpbmUgQkpfUmVzZXJ2ZWQJNwkvKiBCdWZmZXIgaXMgcmVzZXJ2ZWQgZm9yIGFjY2VzcyBieSBqb3VybmFsICovCi0jZGVmaW5lIEJKX0xvY2tlZAk4CS8qIExvY2tlZCBmb3IgSS9PIGR1cmluZyBjb21taXQgKi8KLSNkZWZpbmUgQkpfVHlwZXMJOQorI2RlZmluZSBCSl9NZXRhZGF0YQkxCS8qIE5vcm1hbCBqb3VybmFsZWQgbWV0YWRhdGEgKi8KKyNkZWZpbmUgQkpfRm9yZ2V0CTIJLyogQnVmZmVyIHN1cGVyc2VkZWQgYnkgdGhpcyB0cmFuc2FjdGlvbiAqLworI2RlZmluZSBCSl9JTwkJMwkvKiBCdWZmZXIgaXMgZm9yIHRlbXBvcmFyeSBJTyB1c2UgKi8KKyNkZWZpbmUgQkpfU2hhZG93CTQJLyogQnVmZmVyIGNvbnRlbnRzIGJlaW5nIHNoYWRvd2VkIHRvIHRoZSBsb2cgKi8KKyNkZWZpbmUgQkpfTG9nQ3RsCTUJLyogQnVmZmVyIGNvbnRhaW5zIGxvZyBkZXNjcmlwdG9ycyAqLworI2RlZmluZSBCSl9SZXNlcnZlZAk2CS8qIEJ1ZmZlciBpcyByZXNlcnZlZCBmb3IgYWNjZXNzIGJ5IGpvdXJuYWwgKi8KKyNkZWZpbmUgQkpfVHlwZXMJNwogCiBleHRlcm4gaW50IGpiZF9ibG9ja3NfcGVyX3BhZ2Uoc3RydWN0IGlub2RlICppbm9kZSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgva2VybmVsLmggYi9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oCmluZGV4IDc5MmJmMGEuLmY5Y2Q3YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva2VybmVsLmgKKysrIGIvaW5jbHVkZS9saW51eC9rZXJuZWwuaApAQCAtNDYsNiArNDYsOSBAQAogI2RlZmluZSBESVZfUk9VTkRfVVAobixkKSAoKChuKSArIChkKSAtIDEpIC8gKGQpKQogI2RlZmluZSByb3VuZHVwKHgsIHkpICgoKCh4KSArICgoeSkgLSAxKSkgLyAoeSkpICogKHkpKQogCisjZGVmaW5lIF9SRVRfSVBfCQkodW5zaWduZWQgbG9uZylfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCkKKyNkZWZpbmUgX1RISVNfSVBfICAoeyBfX2xhYmVsX18gX19oZXJlOyBfX2hlcmU6ICh1bnNpZ25lZCBsb25nKSYmX19oZXJlOyB9KQorCiAjaWZkZWYgQ09ORklHX0xCRAogIyBpbmNsdWRlIDxhc20vZGl2NjQuaD4KICMgZGVmaW5lIHNlY3Rvcl9kaXYoYSwgYikgZG9fZGl2KGEsIGIpCkBAIC0xODQsOSArMTg3LDYgQEAKIAlfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDApKSk7CiBhc21saW5rYWdlIGludCBwcmludGsoY29uc3QgY2hhciAqIGZtdCwgLi4uKQogCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKSBfX2NvbGQ7Ci1leHRlcm4gaW50IGxvZ19idWZfZ2V0X2xlbih2b2lkKTsKLWV4dGVybiBpbnQgbG9nX2J1Zl9yZWFkKGludCBpZHgpOwotZXh0ZXJuIGludCBsb2dfYnVmX2NvcHkoY2hhciAqZGVzdCwgaW50IGlkeCwgaW50IGxlbik7CiAKIGV4dGVybiBpbnQgcHJpbnRrX3JhdGVsaW1pdF9qaWZmaWVzOwogZXh0ZXJuIGludCBwcmludGtfcmF0ZWxpbWl0X2J1cnN0OwpAQCAtMjAyLDkgKzIwMiw2IEBACiBzdGF0aWMgaW5saW5lIGludCBwcmludGsoY29uc3QgY2hhciAqcywgLi4uKQogCV9fYXR0cmlidXRlX18gKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKIHN0YXRpYyBpbmxpbmUgaW50IF9fY29sZCBwcmludGsoY29uc3QgY2hhciAqcywgLi4uKSB7IHJldHVybiAwOyB9Ci1zdGF0aWMgaW5saW5lIGludCBsb2dfYnVmX2dldF9sZW4odm9pZCkgeyByZXR1cm4gMDsgfQotc3RhdGljIGlubGluZSBpbnQgbG9nX2J1Zl9yZWFkKGludCBpZHgpIHsgcmV0dXJuIDA7IH0KLXN0YXRpYyBpbmxpbmUgaW50IGxvZ19idWZfY29weShjaGFyICpkZXN0LCBpbnQgaWR4LCBpbnQgbGVuKSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBwcmludGtfcmF0ZWxpbWl0KHZvaWQpIHsgcmV0dXJuIDA7IH0KIHN0YXRpYyBpbmxpbmUgaW50IF9fcHJpbnRrX3JhdGVsaW1pdChpbnQgcmF0ZWxpbWl0X2ppZmZpZXMsIFwKIAkJCQkgICAgIGludCByYXRlbGltaXRfYnVyc3QpIHsgcmV0dXJuIDA7IH0KQEAgLTIxMyw3ICsyMTAsNyBAQAogCQl7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKLWV4dGVybiB2b2lkIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSkKK2V4dGVybiB2b2lkIGFzbWxpbmthZ2UgX19hdHRyaWJ1dGVfXygoZm9ybWF0KHByaW50ZiwgMSwgMikpKQogCWVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLik7CiAKIHVuc2lnbmVkIGxvbmcgaW50X3NxcnQodW5zaWduZWQgbG9uZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmggYi9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKaW5kZXggZThmZmNlOC4uY2Y5ZjQwYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCisrKyBiL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaApAQCAtMSwxMSArMSwxMSBAQAogI2lmbmRlZiBfTElOVVhfS0VSTkVMX1NUQVRfSAogI2RlZmluZSBfTElOVVhfS0VSTkVMX1NUQVRfSAogCi0jaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgPGxpbnV4L3RocmVhZHMuaD4KICNpbmNsdWRlIDxsaW51eC9wZXJjcHUuaD4KICNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+CisjaW5jbHVkZSA8YXNtL2lycS5oPgogI2luY2x1ZGUgPGFzbS9jcHV0aW1lLmg+CiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2twcm9iZXMuaCBiL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCmluZGV4IDEwMzY2MzEuLjA0YTM1NTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCisrKyBiL2luY2x1ZGUvbGludXgva3Byb2Jlcy5oCkBAIC0yNTksNiArMjU5LDEwIEBACiBzdHJ1Y3QganByb2JlOwogc3RydWN0IGtyZXRwcm9iZTsKIAorc3RhdGljIGlubGluZSBzdHJ1Y3Qga3Byb2JlICpnZXRfa3Byb2JlKHZvaWQgKmFkZHIpCit7CisJcmV0dXJuIE5VTEw7Cit9CiBzdGF0aWMgaW5saW5lIHN0cnVjdCBrcHJvYmUgKmtwcm9iZV9ydW5uaW5nKHZvaWQpCiB7CiAJcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2tzMDEwOC5oIGIvaW5jbHVkZS9saW51eC9rczAxMDguaAppbmRleCBhMmM1NGFjLi5jYjMxMTc5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2tzMDEwOC5oCisrKyBiL2luY2x1ZGUvbGludXgva3MwMTA4LmgKQEAgLTQsNyArNCw3IEBACiAgKiBEZXNjcmlwdGlvbjoga3MwMTA4IExDRCBDb250cm9sbGVyIGRyaXZlciBoZWFkZXIKICAqICAgICBMaWNlbnNlOiBHUEx2MgogICoKLSAqICAgICAgQXV0aG9yOiBDb3B5cmlnaHQgKEMpIE1pZ3VlbCBPamVkYSBTYW5kb25pcyA8bWF4ZXh0cmVtZUBnbWFpbC5jb20+CisgKiAgICAgIEF1dGhvcjogQ29weXJpZ2h0IChDKSBNaWd1ZWwgT2plZGEgU2FuZG9uaXMKICAqICAgICAgICBEYXRlOiAyMDA2LTEwLTMxCiAgKgogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKaW5kZXggMzk4OTc4OS4uZGU5ZDFkZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rdm1faG9zdC5oCisrKyBiL2luY2x1ZGUvbGludXgva3ZtX2hvc3QuaApAQCAtMzMsNiArMzMsNyBAQAogI2RlZmluZSBLVk1fUkVRX1JFUE9SVF9UUFJfQUNDRVNTICAyCiAjZGVmaW5lIEtWTV9SRVFfTU1VX1JFTE9BRCAgICAgICAgIDMKICNkZWZpbmUgS1ZNX1JFUV9UUklQTEVfRkFVTFQgICAgICAgNAorI2RlZmluZSBLVk1fUkVRX1BFTkRJTkdfVElNRVIgICAgICA1CiAKIHN0cnVjdCBrdm1fdmNwdTsKIGV4dGVybiBzdHJ1Y3Qga21lbV9jYWNoZSAqa3ZtX3ZjcHVfY2FjaGU7CkBAIC0yOTcsNyArMjk4LDcgQEAKIAlyZXR1cm4gKGdwYV90KWdmbiA8PCBQQUdFX1NISUZUOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQga3ZtX21pZ3JhdGVfYXBpY190aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCitzdGF0aWMgaW5saW5lIHZvaWQga3ZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAlzZXRfYml0KEtWTV9SRVFfTUlHUkFURV9USU1FUiwgJnZjcHUtPnJlcXVlc3RzKTsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbGliYXRhLmggYi9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oCmluZGV4IDRhOTJmYmEuLmU1N2U1ZDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbGliYXRhLmgKKysrIGIvaW5jbHVkZS9saW51eC9saWJhdGEuaApAQCAtMTExLDEzICsxMTEsMTAgQEAKIAkvKiB2YXJpb3VzIGdsb2JhbCBjb25zdGFudHMgKi8KIAlMSUJBVEFfTUFYX1BSRAkJPSBBVEFfTUFYX1BSRCAvIDIsCiAJTElCQVRBX0RVTUJfTUFYX1BSRAk9IEFUQV9NQVhfUFJEIC8gNCwJLyogV29yc3QgY2FzZSAqLwotCUFUQV9NQVhfUE9SVFMJCT0gOCwKIAlBVEFfREVGX1FVRVVFCQk9IDEsCiAJLyogdGFnIEFUQV9NQVhfUVVFVUUgLSAxIGlzIHJlc2VydmVkIGZvciBpbnRlcm5hbCBjb21tYW5kcyAqLwogCUFUQV9NQVhfUVVFVUUJCT0gMzIsCiAJQVRBX1RBR19JTlRFUk5BTAk9IEFUQV9NQVhfUVVFVUUgLSAxLAotCUFUQV9NQVhfQlVTCQk9IDIsCi0JQVRBX0RFRl9CVVNZX1dBSVQJPSAxMDAwMCwKIAlBVEFfU0hPUlRfUEFVU0UJCT0gKEhaID4+IDYpICsgMSwKIAogCUFUQVBJX01BWF9EUkFJTgkJPSAxNiA8PCAxMCwKQEAgLTE0MzUsNyArMTQzMiw4IEBACiBleHRlcm4gdm9pZCBhdGFfc2ZmX2R1bWJfcWNfcHJlcChzdHJ1Y3QgYXRhX3F1ZXVlZF9jbWQgKnFjKTsKIGV4dGVybiB2b2lkIGF0YV9zZmZfZGV2X3NlbGVjdChzdHJ1Y3QgYXRhX3BvcnQgKmFwLCB1bnNpZ25lZCBpbnQgZGV2aWNlKTsKIGV4dGVybiB1OCBhdGFfc2ZmX2NoZWNrX3N0YXR1cyhzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKLWV4dGVybiB1OCBhdGFfc2ZmX2FsdHN0YXR1cyhzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKK2V4dGVybiB2b2lkIGF0YV9zZmZfcGF1c2Uoc3RydWN0IGF0YV9wb3J0ICphcCk7CitleHRlcm4gdm9pZCBhdGFfc2ZmX2RtYV9wYXVzZShzdHJ1Y3QgYXRhX3BvcnQgKmFwKTsKIGV4dGVybiBpbnQgYXRhX3NmZl9idXN5X3NsZWVwKHN0cnVjdCBhdGFfcG9ydCAqYXAsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIHRpbWVvdXRfcGF0LCB1bnNpZ25lZCBsb25nIHRpbWVvdXQpOwogZXh0ZXJuIGludCBhdGFfc2ZmX3dhaXRfcmVhZHkoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKTsKQEAgLTE0OTYsMTkgKzE0OTQsNiBAQAogI2VuZGlmIC8qIENPTkZJR19QQ0kgKi8KIAogLyoqCi0gKglhdGFfc2ZmX3BhdXNlIC0gRmx1c2ggd3JpdGVzIGFuZCBwYXVzZSA0MDAgbmFub3NlY29uZHMuCi0gKglAYXA6IFBvcnQgdG8gd2FpdCBmb3IuCi0gKgotICoJTE9DS0lORzoKLSAqCUluaGVyaXRlZCBmcm9tIGNhbGxlci4KLSAqLwotc3RhdGljIGlubGluZSB2b2lkIGF0YV9zZmZfcGF1c2Uoc3RydWN0IGF0YV9wb3J0ICphcCkKLXsKLQlhdGFfc2ZmX2FsdHN0YXR1cyhhcCk7Ci0JbmRlbGF5KDQwMCk7Ci19Ci0KLS8qKgogICoJYXRhX3NmZl9idXN5X3dhaXQgLSBXYWl0IGZvciBhIHBvcnQgc3RhdHVzIHJlZ2lzdGVyCiAgKglAYXA6IFBvcnQgdG8gd2FpdCBmb3IuCiAgKglAYml0czogYml0cyB0aGF0IG11c3QgYmUgY2xlYXIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIGIvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKaW5kZXggMjExOTYxMC4uNTZiYTM3MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKKysrIGIvaW5jbHVkZS9saW51eC9saW5rYWdlLmgKQEAgLTEsOCArMSwxMSBAQAogI2lmbmRlZiBfTElOVVhfTElOS0FHRV9ICiAjZGVmaW5lIF9MSU5VWF9MSU5LQUdFX0gKIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8YXNtL2xpbmthZ2UuaD4KIAorI2RlZmluZSBub3RyYWNlIF9fYXR0cmlidXRlX18oKG5vX2luc3RydW1lbnRfZnVuY3Rpb24pKQorCiAjaWZkZWYgX19jcGx1c3BsdXMKICNkZWZpbmUgQ1BQX0FTTUxJTktBR0UgZXh0ZXJuICJDIgogI2Vsc2UKQEAgLTE3LDYgKzIwLDkgQEAKICMgZGVmaW5lIGFzbXJlZ3Bhcm0KICNlbmRpZgogCisjZGVmaW5lIF9fcGFnZV9hbGlnbmVkX2RhdGEJX19zZWN0aW9uKC5kYXRhLnBhZ2VfYWxpZ25lZCkgX19hbGlnbmVkKFBBR0VfU0laRSkKKyNkZWZpbmUgX19wYWdlX2FsaWduZWRfYnNzCV9fc2VjdGlvbiguYnNzLnBhZ2VfYWxpZ25lZCkgX19hbGlnbmVkKFBBR0VfU0laRSkKKwogLyoKICAqIFRoaXMgaXMgdXNlZCBieSBhcmNoaXRlY3R1cmVzIHRvIGtlZXAgYXJndW1lbnRzIG9uIHRoZSBzdGFjawogICogdW50b3VjaGVkIGJ5IHRoZSBjb21waWxlciBieSBrZWVwaW5nIHRoZW0gbGl2ZSB1bnRpbCB0aGUgZW5kLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9sb2NrZGVwLmggYi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaAppbmRleCA0YzRkMjM2Li4yNDg2ZWI0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xvY2tkZXAuaApAQCAtMTgyLDYgKzE4Miw5IEBACiAgKiBXZSByZWNvcmQgbG9jayBkZXBlbmRlbmN5IGNoYWlucywgc28gdGhhdCB3ZSBjYW4gY2FjaGUgdGhlbToKICAqLwogc3RydWN0IGxvY2tfY2hhaW4geworCXU4CQkJCWlycV9jb250ZXh0OworCXU4CQkJCWRlcHRoOworCXUxNgkJCQliYXNlOwogCXN0cnVjdCBsaXN0X2hlYWQJCWVudHJ5OwogCXU2NAkJCQljaGFpbl9rZXk7CiB9OwpAQCAtMjc2LDE0ICsyNzksNiBAQAogCQkJCSAobG9jayktPmRlcF9tYXAua2V5LCBzdWIpCiAKIC8qCi0gKiBUbyBpbml0aWFsaXplIGEgbG9ja2RlcF9tYXAgc3RhdGljYWxseSB1c2UgdGhpcyBtYWNyby4KLSAqIE5vdGUgdGhhdCBfbmFtZSBtdXN0IG5vdCBiZSBOVUxMLgotICovCi0jZGVmaW5lIFNUQVRJQ19MT0NLREVQX01BUF9JTklUKF9uYW1lLCBfa2V5KSBcCi0JeyAubmFtZSA9IChfbmFtZSksIC5rZXkgPSAodm9pZCAqKShfa2V5KSwgfQotCi0KLS8qCiAgKiBBY3F1aXJlIGEgbG9jay4KICAqCiAgKiBWYWx1ZXMgZm9yICJyZWFkIjoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbWFya2VyLmggYi9pbmNsdWRlL2xpbnV4L21hcmtlci5oCmluZGV4IDQzMGY2YWQuLjEyOTA2NTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWFya2VyLmgKKysrIGIvaW5jbHVkZS9saW51eC9tYXJrZXIuaApAQCAtNDQsOCArNDQsOCBAQAogCQkJCSAqLwogCWNoYXIgc3RhdGU7CQkvKiBNYXJrZXIgc3RhdGUuICovCiAJY2hhciBwdHlwZTsJCS8qIHByb2JlIHR5cGUgOiAwIDogc2luZ2xlLCAxIDogbXVsdGkgKi8KLQl2b2lkICgqY2FsbCkoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCS8qIFByb2JlIHdyYXBwZXIgKi8KLQkJdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLik7CisJCQkJLyogUHJvYmUgd3JhcHBlciAqLworCXZvaWQgKCpjYWxsKShjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pOwogCXN0cnVjdCBtYXJrZXJfcHJvYmVfY2xvc3VyZSBzaW5nbGU7CiAJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKIH0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpOwpAQCAtNTgsOCArNTgsMTIgQEAKICAqIE1ha2Ugc3VyZSB0aGUgYWxpZ25tZW50IG9mIHRoZSBzdHJ1Y3R1cmUgaW4gdGhlIF9fbWFya2VycyBzZWN0aW9uIHdpbGwKICAqIG5vdCBhZGQgdW53YW50ZWQgcGFkZGluZyBiZXR3ZWVuIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlY3Rpb24gYW5kIHRoZQogICogc3RydWN0dXJlLiBGb3JjZSBhbGlnbm1lbnQgdG8gdGhlIHNhbWUgYWxpZ25tZW50IGFzIHRoZSBzZWN0aW9uIHN0YXJ0LgorICoKKyAqIFRoZSAiZ2VuZXJpYyIgYXJndW1lbnQgY29udHJvbHMgd2hpY2ggbWFya2VyIGVuYWJsaW5nIG1lY2hhbmlzbSBtdXN0IGJlIHVzZWQuCisgKiBJZiBnZW5lcmljIGlzIHRydWUsIGEgdmFyaWFibGUgcmVhZCBpcyB1c2VkLgorICogSWYgZ2VuZXJpYyBpcyBmYWxzZSwgaW1tZWRpYXRlIHZhbHVlcyBhcmUgdXNlZC4KICAqLwotI2RlZmluZSBfX3RyYWNlX21hcmsobmFtZSwgY2FsbF9wcml2YXRlLCBmb3JtYXQsIGFyZ3MuLi4pCQlcCisjZGVmaW5lIF9fdHJhY2VfbWFyayhnZW5lcmljLCBuYW1lLCBjYWxsX3ByaXZhdGUsIGZvcm1hdCwgYXJncy4uLikJXAogCWRvIHsJCQkJCQkJCVwKIAkJc3RhdGljIGNvbnN0IGNoYXIgX19tc3RydGFiXyMjbmFtZVtdCQkJXAogCQlfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX21hcmtlcnNfc3RyaW5ncyIpKSkJCVwKQEAgLTcyLDE1ICs3NiwxNCBAQAogCQlfX21hcmtfY2hlY2tfZm9ybWF0KGZvcm1hdCwgIyMgYXJncyk7CQkJXAogCQlpZiAodW5saWtlbHkoX19tYXJrXyMjbmFtZS5zdGF0ZSkpIHsJCQlcCiAJCQkoKl9fbWFya18jI25hbWUuY2FsbCkJCQkJXAotCQkJCSgmX19tYXJrXyMjbmFtZSwgY2FsbF9wcml2YXRlLAkJXAotCQkJCWZvcm1hdCwgIyMgYXJncyk7CQkJXAorCQkJCSgmX19tYXJrXyMjbmFtZSwgY2FsbF9wcml2YXRlLCAjIyBhcmdzKTtcCiAJCX0JCQkJCQkJXAogCX0gd2hpbGUgKDApCiAKIGV4dGVybiB2b2lkIG1hcmtlcl91cGRhdGVfcHJvYmVfcmFuZ2Uoc3RydWN0IG1hcmtlciAqYmVnaW4sCiAJc3RydWN0IG1hcmtlciAqZW5kKTsKICNlbHNlIC8qICFDT05GSUdfTUFSS0VSUyAqLwotI2RlZmluZSBfX3RyYWNlX21hcmsobmFtZSwgY2FsbF9wcml2YXRlLCBmb3JtYXQsIGFyZ3MuLi4pIFwKKyNkZWZpbmUgX190cmFjZV9tYXJrKGdlbmVyaWMsIG5hbWUsIGNhbGxfcHJpdmF0ZSwgZm9ybWF0LCBhcmdzLi4uKSBcCiAJCV9fbWFya19jaGVja19mb3JtYXQoZm9ybWF0LCAjIyBhcmdzKQogc3RhdGljIGlubGluZSB2b2lkIG1hcmtlcl91cGRhdGVfcHJvYmVfcmFuZ2Uoc3RydWN0IG1hcmtlciAqYmVnaW4sCiAJc3RydWN0IG1hcmtlciAqZW5kKQpAQCAtODgsMTUgKzkxLDMwIEBACiAjZW5kaWYgLyogQ09ORklHX01BUktFUlMgKi8KIAogLyoqCi0gKiB0cmFjZV9tYXJrIC0gTWFya2VyCisgKiB0cmFjZV9tYXJrIC0gTWFya2VyIHVzaW5nIGNvZGUgcGF0Y2hpbmcKICAqIEBuYW1lOiBtYXJrZXIgbmFtZSwgbm90IHF1b3RlZC4KICAqIEBmb3JtYXQ6IGZvcm1hdCBzdHJpbmcKICAqIEBhcmdzLi4uOiB2YXJpYWJsZSBhcmd1bWVudCBsaXN0CiAgKgotICogUGxhY2VzIGEgbWFya2VyLgorICogUGxhY2VzIGEgbWFya2VyIHVzaW5nIG9wdGltaXplZCBjb2RlIHBhdGNoaW5nIHRlY2huaXF1ZSAoaW12X3JlYWQoKSkKKyAqIHRvIGJlIGVuYWJsZWQgd2hlbiBpbW1lZGlhdGUgdmFsdWVzIGFyZSBwcmVzZW50LgogICovCiAjZGVmaW5lIHRyYWNlX21hcmsobmFtZSwgZm9ybWF0LCBhcmdzLi4uKSBcCi0JX190cmFjZV9tYXJrKG5hbWUsIE5VTEwsIGZvcm1hdCwgIyMgYXJncykKKwlfX3RyYWNlX21hcmsoMCwgbmFtZSwgTlVMTCwgZm9ybWF0LCAjIyBhcmdzKQorCisvKioKKyAqIF90cmFjZV9tYXJrIC0gTWFya2VyIHVzaW5nIHZhcmlhYmxlIHJlYWQKKyAqIEBuYW1lOiBtYXJrZXIgbmFtZSwgbm90IHF1b3RlZC4KKyAqIEBmb3JtYXQ6IGZvcm1hdCBzdHJpbmcKKyAqIEBhcmdzLi4uOiB2YXJpYWJsZSBhcmd1bWVudCBsaXN0CisgKgorICogUGxhY2VzIGEgbWFya2VyIHVzaW5nIGEgc3RhbmRhcmQgbWVtb3J5IHJlYWQgKF9pbXZfcmVhZCgpKSB0byBiZQorICogZW5hYmxlZC4gU2hvdWxkIGJlIHVzZWQgZm9yIG1hcmtlcnMgaW4gY29kZSBwYXRocyB3aGVyZSBpbnN0cnVjdGlvbgorICogbW9kaWZpY2F0aW9uIGJhc2VkIGVuYWJsaW5nIGlzIG5vdCB3ZWxjb21lLiAoX19pbml0IGFuZCBfX2V4aXQgZnVuY3Rpb25zLAorICogbG9ja2RlcCwgc29tZSB0cmFwcywgcHJpbnRrKS4KKyAqLworI2RlZmluZSBfdHJhY2VfbWFyayhuYW1lLCBmb3JtYXQsIGFyZ3MuLi4pIFwKKwlfX3RyYWNlX21hcmsoMSwgbmFtZSwgTlVMTCwgZm9ybWF0LCAjIyBhcmdzKQogCiAvKioKICAqIE1BUktfTk9BUkdTIC0gRm9ybWF0IHN0cmluZyBmb3IgYSBtYXJrZXIgd2l0aCBubyBhcmd1bWVudC4KQEAgLTExNyw5ICsxMzUsOSBAQAogZXh0ZXJuIG1hcmtlcl9wcm9iZV9mdW5jIF9fbWFya19lbXB0eV9mdW5jdGlvbjsKIAogZXh0ZXJuIHZvaWQgbWFya2VyX3Byb2JlX2NiKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLAotCXZvaWQgKmNhbGxfcHJpdmF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCXZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKTsKIGV4dGVybiB2b2lkIG1hcmtlcl9wcm9iZV9jYl9ub2FyZyhjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwKLQl2b2lkICpjYWxsX3ByaXZhdGUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKwl2b2lkICpjYWxsX3ByaXZhdGUsIC4uLik7CiAKIC8qCiAgKiBDb25uZWN0IGEgcHJvYmUgdG8gYSBtYXJrZXIuCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21hdGg2NC5oIGIvaW5jbHVkZS9saW51eC9tYXRoNjQuaAppbmRleCBjMWE1ZjgxLi5jODdmMTUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21hdGg2NC5oCisrKyBiL2luY2x1ZGUvbGludXgvbWF0aDY0LmgKQEAgLTgxLDQgKzgxLDI1IEBACiB9CiAjZW5kaWYKIAordTMyIGl0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTY0ICpyZW1haW5kZXIpOworCitzdGF0aWMgX19hbHdheXNfaW5saW5lIHUzMgorX19pdGVyX2Rpdl91NjRfcmVtKHU2NCBkaXZpZGVuZCwgdTMyIGRpdmlzb3IsIHU2NCAqcmVtYWluZGVyKQoreworCXUzMiByZXQgPSAwOworCisJd2hpbGUgKGRpdmlkZW5kID49IGRpdmlzb3IpIHsKKwkJLyogVGhlIGZvbGxvd2luZyBhc20oKSBwcmV2ZW50cyB0aGUgY29tcGlsZXIgZnJvbQorCQkgICBvcHRpbWlzaW5nIHRoaXMgbG9vcCBpbnRvIGEgbW9kdWxvIG9wZXJhdGlvbi4gICovCisJCWFzbSgiIiA6ICIrcm0iKGRpdmlkZW5kKSk7CisKKwkJZGl2aWRlbmQgLT0gZGl2aXNvcjsKKwkJcmV0Kys7CisJfQorCisJKnJlbWFpbmRlciA9IGRpdmlkZW5kOworCisJcmV0dXJuIHJldDsKK30KKwogI2VuZGlmIC8qIF9MSU5VWF9NQVRINjRfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oIGIvaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oCmluZGV4IDczZTM1ODYuLmVhOWY1YWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgKQEAgLTc3LDE0ICs3Nyw2IEBACiBleHRlcm4gaW50IF9fcmVtb3ZlX3BhZ2VzKHN0cnVjdCB6b25lICp6b25lLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKTsKIAotLyoKLSAqIFdhbGsgdGhyb3VnaCBhbGwgbWVtb3J5IHdoaWNoIGlzIHJlZ2lzdGVyZWQgYXMgcmVzb3VyY2UuCi0gKiBhcmcgaXMgKHN0YXJ0X3BmbiwgbnJfcGFnZXMsIHByaXZhdGVfYXJnX3BvaW50ZXIpCi0gKi8KLWV4dGVybiBpbnQgd2Fsa19tZW1vcnlfcmVzb3VyY2UodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCi0JCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCB2b2lkICphcmcsCi0JCQlpbnQgKCpmdW5jKSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopKTsKLQogI2lmZGVmIENPTkZJR19OVU1BCiBleHRlcm4gaW50IG1lbW9yeV9hZGRfcGh5c2FkZHJfdG9fbmlkKHU2NCBzdGFydCk7CiAjZWxzZQpAQCAtMTk5LDYgKzE5MSwxNCBAQAogCiAjZW5kaWYgLyogISBDT05GSUdfTUVNT1JZX0hPVFBMVUcgKi8KIAorLyoKKyAqIFdhbGsgdGhyb3VnaCBhbGwgbWVtb3J5IHdoaWNoIGlzIHJlZ2lzdGVyZWQgYXMgcmVzb3VyY2UuCisgKiBhcmcgaXMgKHN0YXJ0X3BmbiwgbnJfcGFnZXMsIHByaXZhdGVfYXJnX3BvaW50ZXIpCisgKi8KK2V4dGVybiBpbnQgd2Fsa19tZW1vcnlfcmVzb3VyY2UodW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCB2b2lkICphcmcsCisJCQlpbnQgKCpmdW5jKSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopKTsKKwogZXh0ZXJuIGludCBhZGRfbWVtb3J5KGludCBuaWQsIHU2NCBzdGFydCwgdTY0IHNpemUpOwogZXh0ZXJuIGludCBhcmNoX2FkZF9tZW1vcnkoaW50IG5pZCwgdTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CiBleHRlcm4gaW50IHJlbW92ZV9tZW1vcnkodTY0IHN0YXJ0LCB1NjQgc2l6ZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21seDQvZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L21seDQvZGV2aWNlLmgKaW5kZXggYTc0NDM4My4uODFiM2RkNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbHg0L2RldmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbWx4NC9kZXZpY2UuaApAQCAtMzk4LDcgKzM5OCw4IEBACiBpbnQgbWx4NF9JTklUX1BPUlQoc3RydWN0IG1seDRfZGV2ICpkZXYsIGludCBwb3J0KTsKIGludCBtbHg0X0NMT1NFX1BPUlQoc3RydWN0IG1seDRfZGV2ICpkZXYsIGludCBwb3J0KTsKIAotaW50IG1seDRfbXVsdGljYXN0X2F0dGFjaChzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfcXAgKnFwLCB1OCBnaWRbMTZdKTsKK2ludCBtbHg0X211bHRpY2FzdF9hdHRhY2goc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X3FwICpxcCwgdTggZ2lkWzE2XSwKKwkJCSAgaW50IGJsb2NrX21jYXN0X2xvb3BiYWNrKTsKIGludCBtbHg0X211bHRpY2FzdF9kZXRhY2goc3RydWN0IG1seDRfZGV2ICpkZXYsIHN0cnVjdCBtbHg0X3FwICpxcCwgdTggZ2lkWzE2XSk7CiAKIGludCBtbHg0X21hcF9waHlzX2ZtcihzdHJ1Y3QgbWx4NF9kZXYgKmRldiwgc3RydWN0IG1seDRfZm1yICpmbXIsIHU2NCAqcGFnZV9saXN0LApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tbS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IGMzMWE5Y2QuLmNmMWNkM2EgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRlL2xpbnV4L21tLmgKQEAgLTc2MCwxNiArNzYwLDE3IEBACiAgKiAoc2VlIHdhbGtfcGFnZV9yYW5nZSBmb3IgbW9yZSBkZXRhaWxzKQogICovCiBzdHJ1Y3QgbW1fd2FsayB7Ci0JaW50ICgqcGdkX2VudHJ5KShwZ2RfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwotCWludCAoKnB1ZF9lbnRyeSkocHVkX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgdm9pZCAqKTsKLQlpbnQgKCpwbWRfZW50cnkpKHBtZF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7Ci0JaW50ICgqcHRlX2VudHJ5KShwdGVfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwotCWludCAoKnB0ZV9ob2xlKSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOworCWludCAoKnBnZF9lbnRyeSkocGdkX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgc3RydWN0IG1tX3dhbGsgKik7CisJaW50ICgqcHVkX2VudHJ5KShwdWRfdCAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3QgbW1fd2FsayAqKTsKKwlpbnQgKCpwbWRfZW50cnkpKHBtZF90ICosIHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVjdCBtbV93YWxrICopOworCWludCAoKnB0ZV9lbnRyeSkocHRlX3QgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZywgc3RydWN0IG1tX3dhbGsgKik7CisJaW50ICgqcHRlX2hvbGUpKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVjdCBtbV93YWxrICopOworCXN0cnVjdCBtbV9zdHJ1Y3QgKm1tOworCXZvaWQgKnByaXZhdGU7CiB9OwogCi1pbnQgd2Fsa19wYWdlX3JhbmdlKGNvbnN0IHN0cnVjdCBtbV9zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZyBhZGRyLAotCQkgICAgdW5zaWduZWQgbG9uZyBlbmQsIGNvbnN0IHN0cnVjdCBtbV93YWxrICp3YWxrLAotCQkgICAgdm9pZCAqcHJpdmF0ZSk7CitpbnQgd2Fsa19wYWdlX3JhbmdlKHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCisJCXN0cnVjdCBtbV93YWxrICp3YWxrKTsKIHZvaWQgZnJlZV9wZ2RfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKip0bGIsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkJdW5zaWduZWQgbG9uZyBlbmQsIHVuc2lnbmVkIGxvbmcgZmxvb3IsIHVuc2lnbmVkIGxvbmcgY2VpbGluZyk7CiB2b2lkIGZyZWVfcGd0YWJsZXMoc3RydWN0IG1tdV9nYXRoZXIgKip0bGIsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqc3RhcnRfdm1hLApAQCAtOTk3LDggKzk5OCw4IEBACiBleHRlcm4gdm9pZCBmcmVlX2FyZWFfaW5pdF9ub2Rlcyh1bnNpZ25lZCBsb25nICptYXhfem9uZV9wZm4pOwogZXh0ZXJuIHZvaWQgYWRkX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAkJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKLWV4dGVybiB2b2lkIHNocmlua19hY3RpdmVfcmFuZ2UodW5zaWduZWQgaW50IG5pZCwgdW5zaWduZWQgbG9uZyBvbGRfZW5kX3BmbiwKLQkJCQkJCXVuc2lnbmVkIGxvbmcgbmV3X2VuZF9wZm4pOworZXh0ZXJuIHZvaWQgcmVtb3ZlX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKKwkJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKIGV4dGVybiB2b2lkIHB1c2hfbm9kZV9ib3VuZGFyaWVzKHVuc2lnbmVkIGludCBuaWQsIHVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLAogCQkJCQl1bnNpZ25lZCBsb25nIGVuZF9wZm4pOwogZXh0ZXJuIHZvaWQgcmVtb3ZlX2FsbF9hY3RpdmVfcmFuZ2VzKHZvaWQpOwpAQCAtMTAxMCw2ICsxMDExLDggQEAKIGV4dGVybiB1bnNpZ25lZCBsb25nIGZpbmRfbWF4X3Bmbl93aXRoX2FjdGl2ZV9yZWdpb25zKHZvaWQpOwogZXh0ZXJuIHZvaWQgZnJlZV9ib290bWVtX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwKIAkJCQkJCXVuc2lnbmVkIGxvbmcgbWF4X2xvd19wZm4pOwordHlwZWRlZiBpbnQgKCp3b3JrX2ZuX3QpKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CitleHRlcm4gdm9pZCB3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgd29ya19mbl90IHdvcmtfZm4sIHZvaWQgKmRhdGEpOwogZXh0ZXJuIHZvaWQgc3BhcnNlX21lbW9yeV9wcmVzZW50X3dpdGhfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCk7CiAjaWZuZGVmIENPTkZJR19IQVZFX0FSQ0hfRUFSTFlfUEZOX1RPX05JRAogZXh0ZXJuIGludCBlYXJseV9wZm5fdG9fbmlkKHVuc2lnbmVkIGxvbmcgcGZuKTsKQEAgLTEwMjMsNiArMTAyNiw3IEBACiBleHRlcm4gdm9pZCBzaG93X21lbSh2b2lkKTsKIGV4dGVybiB2b2lkIHNpX21lbWluZm8oc3RydWN0IHN5c2luZm8gKiB2YWwpOwogZXh0ZXJuIHZvaWQgc2lfbWVtaW5mb19ub2RlKHN0cnVjdCBzeXNpbmZvICp2YWwsIGludCBuaWQpOworZXh0ZXJuIGludCBhZnRlcl9ib290bWVtOwogCiAjaWZkZWYgQ09ORklHX05VTUEKIGV4dGVybiB2b2lkIHNldHVwX3Blcl9jcHVfcGFnZXNldCh2b2lkKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW1hbi5oIGIvaW5jbHVkZS9saW51eC9tbWFuLmgKaW5kZXggODc5MjBhMC4uZGFiODg5MiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbWFuLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbWFuLmgKQEAgLTE3LDE0ICsxNywxNCBAQAogCiBleHRlcm4gaW50IHN5c2N0bF9vdmVyY29tbWl0X21lbW9yeTsKIGV4dGVybiBpbnQgc3lzY3RsX292ZXJjb21taXRfcmF0aW87Ci1leHRlcm4gYXRvbWljX3Qgdm1fY29tbWl0dGVkX3NwYWNlOworZXh0ZXJuIGF0b21pY19sb25nX3Qgdm1fY29tbWl0dGVkX3NwYWNlOwogCiAjaWZkZWYgQ09ORklHX1NNUAogZXh0ZXJuIHZvaWQgdm1fYWNjdF9tZW1vcnkobG9uZyBwYWdlcyk7CiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIHZtX2FjY3RfbWVtb3J5KGxvbmcgcGFnZXMpCiB7Ci0JYXRvbWljX2FkZChwYWdlcywgJnZtX2NvbW1pdHRlZF9zcGFjZSk7CisJYXRvbWljX2xvbmdfYWRkKHBhZ2VzLCAmdm1fY29tbWl0dGVkX3NwYWNlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21taW90cmFjZS5oIGIvaW5jbHVkZS9saW51eC9tbWlvdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWQxOWUxCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9tbWlvdHJhY2UuaApAQCAtMCwwICsxLDg1IEBACisjaWZuZGVmIE1NSU9UUkFDRV9ICisjZGVmaW5lIE1NSU9UUkFDRV9ICisKKyNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworc3RydWN0IGttbWlvX3Byb2JlOworc3RydWN0IHB0X3JlZ3M7CisKK3R5cGVkZWYgdm9pZCAoKmttbWlvX3ByZV9oYW5kbGVyX3QpKHN0cnVjdCBrbW1pb19wcm9iZSAqLAorCQkJCXN0cnVjdCBwdF9yZWdzICosIHVuc2lnbmVkIGxvbmcgYWRkcik7Cit0eXBlZGVmIHZvaWQgKCprbW1pb19wb3N0X2hhbmRsZXJfdCkoc3RydWN0IGttbWlvX3Byb2JlICosCisJCQkJdW5zaWduZWQgbG9uZyBjb25kaXRpb24sIHN0cnVjdCBwdF9yZWdzICopOworCitzdHJ1Y3Qga21taW9fcHJvYmUgeworCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsgLyoga21taW8gaW50ZXJuYWwgbGlzdCAqLworCXVuc2lnbmVkIGxvbmcgYWRkcjsgLyogc3RhcnQgbG9jYXRpb24gb2YgdGhlIHByb2JlIHBvaW50ICovCisJdW5zaWduZWQgbG9uZyBsZW47IC8qIGxlbmd0aCBvZiB0aGUgcHJvYmUgcmVnaW9uICovCisJa21taW9fcHJlX2hhbmRsZXJfdCBwcmVfaGFuZGxlcjsgLyogQ2FsbGVkIGJlZm9yZSBhZGRyIGlzIGV4ZWN1dGVkLiAqLworCWttbWlvX3Bvc3RfaGFuZGxlcl90IHBvc3RfaGFuZGxlcjsgLyogQ2FsbGVkIGFmdGVyIGFkZHIgaXMgZXhlY3V0ZWQgKi8KKwl2b2lkICpwcml2YXRlOworfTsKKworLyoga21taW8gaXMgYWN0aXZlIGJ5IHNvbWUga21taW9fcHJvYmVzPyAqLworc3RhdGljIGlubGluZSBpbnQgaXNfa21taW9fYWN0aXZlKHZvaWQpCit7CisJZXh0ZXJuIHVuc2lnbmVkIGludCBrbW1pb19jb3VudDsKKwlyZXR1cm4ga21taW9fY291bnQ7Cit9CisKK2V4dGVybiBpbnQgcmVnaXN0ZXJfa21taW9fcHJvYmUoc3RydWN0IGttbWlvX3Byb2JlICpwKTsKK2V4dGVybiB2b2lkIHVucmVnaXN0ZXJfa21taW9fcHJvYmUoc3RydWN0IGttbWlvX3Byb2JlICpwKTsKKworLyogQ2FsbGVkIGZyb20gcGFnZSBmYXVsdCBoYW5kbGVyLiAqLworZXh0ZXJuIGludCBrbW1pb19oYW5kbGVyKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIGFkZHIpOworCisvKiBDYWxsZWQgZnJvbSBpb3JlbWFwLmMgKi8KKyNpZmRlZiBDT05GSUdfTU1JT1RSQUNFCitleHRlcm4gdm9pZCBtbWlvdHJhY2VfaW9yZW1hcChyZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LCB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkJCQkJdm9pZCBfX2lvbWVtICphZGRyKTsKK2V4dGVybiB2b2lkIG1taW90cmFjZV9pb3VubWFwKHZvbGF0aWxlIHZvaWQgX19pb21lbSAqYWRkcik7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIG1taW90cmFjZV9pb3JlbWFwKHJlc291cmNlX3NpemVfdCBvZmZzZXQsCisJCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwgdm9pZCBfX2lvbWVtICphZGRyKQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbW1pb3RyYWNlX2lvdW5tYXAodm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQoreworfQorI2VuZGlmIC8qIENPTkZJR19NTUlPVFJBQ0VfSE9PS1MgKi8KKworZW51bSBtbV9pb19vcGNvZGUgeworCU1NSU9fUkVBRCA9IDB4MSwgICAgIC8qIHN0cnVjdCBtbWlvdHJhY2VfcncgKi8KKwlNTUlPX1dSSVRFID0gMHgyLCAgICAvKiBzdHJ1Y3QgbW1pb3RyYWNlX3J3ICovCisJTU1JT19QUk9CRSA9IDB4MywgICAgLyogc3RydWN0IG1taW90cmFjZV9tYXAgKi8KKwlNTUlPX1VOUFJPQkUgPSAweDQsICAvKiBzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqLworCU1NSU9fTUFSS0VSID0gMHg1LCAgIC8qIHJhdyBjaGFyIGRhdGEgKi8KKwlNTUlPX1VOS05PV05fT1AgPSAweDYsIC8qIHN0cnVjdCBtbWlvdHJhY2VfcncgKi8KK307CisKK3N0cnVjdCBtbWlvdHJhY2VfcncgeworCXJlc291cmNlX3NpemVfdCBwaHlzOwkvKiBQQ0kgYWRkcmVzcyBvZiByZWdpc3RlciAqLworCXVuc2lnbmVkIGxvbmcgdmFsdWU7CisJdW5zaWduZWQgbG9uZyBwYzsJLyogb3B0aW9uYWwgcHJvZ3JhbSBjb3VudGVyICovCisJaW50IG1hcF9pZDsKKwl1bnNpZ25lZCBjaGFyIG9wY29kZTsJLyogb25lIG9mIE1NSU9fe1JFQUQsV1JJVEUsVU5LTk9XTl9PUH0gKi8KKwl1bnNpZ25lZCBjaGFyIHdpZHRoOwkvKiBzaXplIG9mIHJlZ2lzdGVyIGFjY2VzcyBpbiBieXRlcyAqLworfTsKKworc3RydWN0IG1taW90cmFjZV9tYXAgeworCXJlc291cmNlX3NpemVfdCBwaHlzOwkvKiBiYXNlIGFkZHJlc3MgaW4gUENJIHNwYWNlICovCisJdW5zaWduZWQgbG9uZyB2aXJ0OwkvKiBiYXNlIHZpcnR1YWwgYWRkcmVzcyAqLworCXVuc2lnbmVkIGxvbmcgbGVuOwkvKiBtYXBwaW5nIHNpemUgKi8KKwlpbnQgbWFwX2lkOworCXVuc2lnbmVkIGNoYXIgb3Bjb2RlOwkvKiBNTUlPX1BST0JFIG9yIE1NSU9fVU5QUk9CRSAqLworfTsKKworLyogaW4ga2VybmVsL3RyYWNlL3RyYWNlX21taW90cmFjZS5jICovCitleHRlcm4gdm9pZCBlbmFibGVfbW1pb3RyYWNlKHZvaWQpOworZXh0ZXJuIHZvaWQgZGlzYWJsZV9tbWlvdHJhY2Uodm9pZCk7CitleHRlcm4gdm9pZCBtbWlvX3RyYWNlX3J3KHN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3KTsKK2V4dGVybiB2b2lkIG1taW9fdHJhY2VfbWFwcGluZyhzdHJ1Y3QgbW1pb3RyYWNlX21hcCAqbWFwKTsKKworI2VuZGlmIC8qIE1NSU9UUkFDRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIvaW5jbHVkZS9saW51eC9tbXpvbmUuaAppbmRleCBjNDYzY2Q4Li40NDNiYzdjIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW16b25lLmgKQEAgLTcwMyw3ICs3MDMsNyBAQAogZXh0ZXJuIHN0cnVjdCB6b25lICpuZXh0X3pvbmUoc3RydWN0IHpvbmUgKnpvbmUpOwogCiAvKioKLSAqIGZvcl9lYWNoX3BnZGF0IC0gaGVscGVyIG1hY3JvIHRvIGl0ZXJhdGUgb3ZlciBhbGwgbm9kZXMKKyAqIGZvcl9lYWNoX29ubGluZV9wZ2RhdCAtIGhlbHBlciBtYWNybyB0byBpdGVyYXRlIG92ZXIgYWxsIG9ubGluZSBub2RlcwogICogQHBnZGF0IC0gcG9pbnRlciB0byBhIHBnX2RhdGFfdCB2YXJpYWJsZQogICovCiAjZGVmaW5lIGZvcl9lYWNoX29ubGluZV9wZ2RhdChwZ2RhdCkJCQlcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oIGIvaW5jbHVkZS9saW51eC9tb2RfZGV2aWNldGFibGUuaAppbmRleCBkNzNlY2VhLi5jNGRiNTgyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbW9kX2RldmljZXRhYmxlLmgKQEAgLTE1OSw2ICsxNTksMTUgQEAKIAogI2RlZmluZSBBUF9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFX1RZUEUJCTB4MDEKIAorLyogczM5MCBjc3MgYnVzIGRldmljZXMgKHN1YmNoYW5uZWxzKSAqLworc3RydWN0IGNzc19kZXZpY2VfaWQgeworCV9fdTggbWF0Y2hfZmxhZ3M7CisJX191OCB0eXBlOyAvKiBzdWJjaGFubmVsIHR5cGUgKi8KKwlfX3UxNiBwYWQyOworCV9fdTMyIHBhZDM7CisJa2VybmVsX3Vsb25nX3QgZHJpdmVyX2RhdGE7Cit9OworCiAjZGVmaW5lIEFDUElfSURfTEVOCTE2IC8qIG9ubHkgOSBieXRlcyBuZWVkZWQgaGVyZSwgMTYgYnl0ZXMgYXJlIHVzZWQgKi8KIAkJCSAgIC8qIHRvIHdvcmthcm91bmQgY3Jvc3Njb21waWxlIGlzc3VlcyAqLwogCkBAIC0zNzUsNyArMzg0LDggQEAKIAogc3RydWN0IGkyY19kZXZpY2VfaWQgewogCWNoYXIgbmFtZVtJMkNfTkFNRV9TSVpFXTsKLQlrZXJuZWxfdWxvbmdfdCBkcml2ZXJfZGF0YTsJLyogRGF0YSBwcml2YXRlIHRvIHRoZSBkcml2ZXIgKi8KKwlrZXJuZWxfdWxvbmdfdCBkcml2ZXJfZGF0YQkvKiBEYXRhIHByaXZhdGUgdG8gdGhlIGRyaXZlciAqLworCQkJX19hdHRyaWJ1dGVfXygoYWxpZ25lZChzaXplb2Yoa2VybmVsX3Vsb25nX3QpKSkpOwogfTsKIAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21wYWdlLmggYi9pbmNsdWRlL2xpbnV4L21wYWdlLmgKaW5kZXggMDY4YTBjOS4uNWM0MjgyMSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tcGFnZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbXBhZ2UuaApAQCAtMTEsMTEgKzExLDIxIEBACiAgKi8KICNpZmRlZiBDT05GSUdfQkxPQ0sKIAorc3RydWN0IG1wYWdlX2RhdGEgeworCXN0cnVjdCBiaW8gKmJpbzsKKwlzZWN0b3JfdCBsYXN0X2Jsb2NrX2luX2JpbzsKKwlnZXRfYmxvY2tfdCAqZ2V0X2Jsb2NrOworCXVuc2lnbmVkIHVzZV93cml0ZXBhZ2U7Cit9OworCiBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2w7CiAKK3N0cnVjdCBiaW8gKm1wYWdlX2Jpb19zdWJtaXQoaW50IHJ3LCBzdHJ1Y3QgYmlvICpiaW8pOwogaW50IG1wYWdlX3JlYWRwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IGxpc3RfaGVhZCAqcGFnZXMsCiAJCQkJdW5zaWduZWQgbnJfcGFnZXMsIGdldF9ibG9ja190IGdldF9ibG9jayk7CiBpbnQgbXBhZ2VfcmVhZHBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGdldF9ibG9ja190IGdldF9ibG9jayk7CitpbnQgX19tcGFnZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB3cml0ZWJhY2tfY29udHJvbCAqd2JjLAorCQkgICAgICB2b2lkICpkYXRhKTsKIGludCBtcGFnZV93cml0ZXBhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQlzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywgZ2V0X2Jsb2NrX3QgZ2V0X2Jsb2NrKTsKIGludCBtcGFnZV93cml0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGdldF9ibG9ja190ICpnZXRfYmxvY2ssCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzLmggYi9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzLmgKaW5kZXggYjAzYjI3NC4uODFjZDM2YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tc2Rvc19mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvbXNkb3NfZnMuaApAQCAtNTcsMTIgKzU3LDYgQEAKICNkZWZpbmUgTVNET1NfRE9UCSIuICAgICAgICAgICIJLyogIi4iLCBwYWRkZWQgdG8gTVNET1NfTkFNRSBjaGFycyAqLwogI2RlZmluZSBNU0RPU19ET1RET1QJIi4uICAgICAgICAgIgkvKiAiLi4iLCBwYWRkZWQgdG8gTVNET1NfTkFNRSBjaGFycyAqLwogCi0vKiBtZWRpYSBvZiBib290IHNlY3RvciAqLwotc3RhdGljIGlubGluZSBpbnQgZmF0X3ZhbGlkX21lZGlhKHU4IG1lZGlhKQotewotCXJldHVybiAweGY4IDw9IG1lZGlhIHx8IG1lZGlhID09IDB4ZjA7Ci19Ci0KICNkZWZpbmUgRkFUX0ZJUlNUX0VOVChzLCB4KQkoKE1TRE9TX1NCKHMpLT5mYXRfYml0cyA9PSAzMiA/IDB4MEZGRkZGMDAgOiBcCiAJTVNET1NfU0IocyktPmZhdF9iaXRzID09IDE2ID8gMHhGRjAwIDogMHhGMDApIHwgKHgpKQogCkBAIC0zMzQsNiArMzI4LDEyIEBACiAjZW5kaWYKIH0KIAorLyogbWVkaWEgb2YgYm9vdCBzZWN0b3IgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGZhdF92YWxpZF9tZWRpYSh1OCBtZWRpYSkKK3sKKwlyZXR1cm4gMHhmOCA8PSBtZWRpYSB8fCBtZWRpYSA9PSAweGYwOworfQorCiAvKiBmYXQvY2FjaGUuYyAqLwogZXh0ZXJuIHZvaWQgZmF0X2NhY2hlX2ludmFsX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwogZXh0ZXJuIGludCBmYXRfZ2V0X2NsdXN0ZXIoc3RydWN0IGlub2RlICppbm9kZSwgaW50IGNsdXN0ZXIsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21zZy5oIGIvaW5jbHVkZS9saW51eC9tc2cuaAppbmRleCA2ZjNiOGU3Li41NmFiZjE1NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tc2cuaAorKysgYi9pbmNsdWRlL2xpbnV4L21zZy5oCkBAIC02NCwxMSArNjQsMTEgQEAKICNkZWZpbmUgTVNHTU5CIDE2Mzg0ICAgLyogPD0gSU5UX01BWCAqLyAgIC8qIGRlZmF1bHQgbWF4IHNpemUgb2YgYSBtZXNzYWdlIHF1ZXVlICovCiAKIC8qIHVudXNlZCAqLwotI2RlZmluZSBNU0dQT09MIChNU0dNTkkgKiBNU0dNTkIpIC8qIHNpemUgaW4gYnl0ZXMgb2YgbWVzc2FnZSBwb29sICovCisjZGVmaW5lIE1TR1BPT0wgKE1TR01OSSAqIE1TR01OQiAvIDEwMjQpIC8qIHNpemUgaW4ga2J5dGVzIG9mIG1lc3NhZ2UgcG9vbCAqLwogI2RlZmluZSBNU0dUUUwgIE1TR01OQiAgICAgICAgICAgIC8qIG51bWJlciBvZiBzeXN0ZW0gbWVzc2FnZSBoZWFkZXJzICovCiAjZGVmaW5lIE1TR01BUCAgTVNHTU5CICAgICAgICAgICAgLyogbnVtYmVyIG9mIGVudHJpZXMgaW4gbWVzc2FnZSBtYXAgKi8KICNkZWZpbmUgTVNHU1NaICAxNiAgICAgICAgICAgICAgICAvKiBtZXNzYWdlIHNlZ21lbnQgc2l6ZSAqLwotI2RlZmluZSBfX01TR1NFRyAoTVNHUE9PTCAvIE1TR1NTWikgLyogbWF4IG5vLiBvZiBzZWdtZW50cyAqLworI2RlZmluZSBfX01TR1NFRyAoKE1TR1BPT0wgKiAxMDI0KSAvIE1TR1NTWikgLyogbWF4IG5vLiBvZiBzZWdtZW50cyAqLwogI2RlZmluZSBNU0dTRUcgKF9fTVNHU0VHIDw9IDB4ZmZmZiA/IF9fTVNHU0VHIDogMHhmZmZmKQogCiAjaWZkZWYgX19LRVJORUxfXwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tdGQvbmFuZC5oIGIvaW5jbHVkZS9saW51eC9tdGQvbmFuZC5oCmluZGV4IGM0MmJjN2YuLjUzZWEzZGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbXRkL25hbmQuaAorKysgYi9pbmNsdWRlL2xpbnV4L210ZC9uYW5kLmgKQEAgLTEsNyArMSw3IEBACiAvKgogICogIGxpbnV4L2luY2x1ZGUvbGludXgvbXRkL25hbmQuaAogICoKLSAqICBDb3B5cmlnaHQgKGMpIDIwMDAgRGF2aWQgV29vZGhvdXNlIDxkd213MkBtdmhpLmNvbT4KKyAqICBDb3B5cmlnaHQgKGMpIDIwMDAgRGF2aWQgV29vZGhvdXNlIDxkd213MkBpbmZyYWRlYWQub3JnPgogICogICAgICAgICAgICAgICAgICAgICBTdGV2ZW4gSi4gSGlsbCA8c2poaWxsQHJlYWxpdHlkaWx1dGVkLmNvbT4KICAqCQkgICAgICAgVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKaW5kZXggMmIwMjY2NC4uMjVmODcxMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCkBAIC04OCw2ICs4OCw4IEBACiAjZGVmaW5lIE5FVERFVl9UWF9CVVNZIDEJLyogZHJpdmVyIHR4IHBhdGggd2FzIGJ1c3kqLwogI2RlZmluZSBORVRERVZfVFhfTE9DS0VEIC0xCS8qIGRyaXZlciB0eCBsb2NrIHdhcyBhbHJlYWR5IHRha2VuICovCiAKKyNpZmRlZiAgX19LRVJORUxfXworCiAvKgogICoJQ29tcHV0ZSB0aGUgd29yc3QgY2FzZSBoZWFkZXIgbGVuZ3RoIGFjY29yZGluZyB0byB0aGUgcHJvdG9jb2xzCiAgKgl1c2VkLgpAQCAtMTE0LDYgKzExNiw4IEBACiAjZGVmaW5lIE1BWF9IRUFERVIgKExMX01BWF9IRUFERVIgKyA0OCkKICNlbmRpZgogCisjZW5kaWYgIC8qICBfX0tFUk5FTF9fICAqLworCiBzdHJ1Y3QgbmV0X2RldmljZV9zdWJxdWV1ZQogewogCS8qIEdpdmUgYSBjb250cm9sIHN0YXRlIGZvciBlYWNoIHF1ZXVlLiAgVGhpcyBzdHJ1Y3QgbWF5IGNvbnRhaW4KQEAgLTUxNCwxMiArNTE4LDEwIEBACiAjZGVmaW5lIE5FVElGX0ZfTkVUTlNfTE9DQUwJODE5MgkvKiBEb2VzIG5vdCBjaGFuZ2UgbmV0d29yayBuYW1lc3BhY2VzICovCiAjZGVmaW5lIE5FVElGX0ZfTVVMVElfUVVFVUUJMTYzODQJLyogSGFzIG11bHRpcGxlIFRYL1JYIHF1ZXVlcyAqLwogI2RlZmluZSBORVRJRl9GX0xSTwkJMzI3NjgJLyogbGFyZ2UgcmVjZWl2ZSBvZmZsb2FkICovCi0jZGVmaW5lIE5FVElGX0ZfVkxBTl9UU08JNjU1MzYJLyogU3VwcG9ydHMgVFNPIGZvciBWTEFOcyAqLwotI2RlZmluZSBORVRJRl9GX1ZMQU5fQ1NVTQkxMzEwNzIJLyogU3VwcG9ydHMgVFggY2hlY2tzdW1taW5nIGZvciBWTEFOcyAqLwogCiAJLyogU2VnbWVudGF0aW9uIG9mZmxvYWQgZmVhdHVyZXMgKi8KLSNkZWZpbmUgTkVUSUZfRl9HU09fU0hJRlQJMjAKLSNkZWZpbmUgTkVUSUZfRl9HU09fTUFTSwkweGZmZjAwMDAwCisjZGVmaW5lIE5FVElGX0ZfR1NPX1NISUZUCTE2CisjZGVmaW5lIE5FVElGX0ZfR1NPX01BU0sJMHhmZmZmMDAwMAogI2RlZmluZSBORVRJRl9GX1RTTwkJKFNLQl9HU09fVENQVjQgPDwgTkVUSUZfRl9HU09fU0hJRlQpCiAjZGVmaW5lIE5FVElGX0ZfVUZPCQkoU0tCX0dTT19VRFAgPDwgTkVUSUZfRl9HU09fU0hJRlQpCiAjZGVmaW5lIE5FVElGX0ZfR1NPX1JPQlVTVAkoU0tCX0dTT19ET0RHWSA8PCBORVRJRl9GX0dTT19TSElGVCkKQEAgLTc0Nyw2ICs3NDksOSBAQAogCS8qIHJ0bmV0bGluayBsaW5rIG9wcyAqLwogCWNvbnN0IHN0cnVjdCBydG5sX2xpbmtfb3BzICpydG5sX2xpbmtfb3BzOwogCisJLyogVkxBTiBmZWF0dXJlIG1hc2sgKi8KKwl1bnNpZ25lZCBsb25nIHZsYW5fZmVhdHVyZXM7CisKIAkvKiBmb3Igc2V0dGluZyBrZXJuZWwgc29jayBhdHRyaWJ1dGUgb24gVENQIGNvbm5lY3Rpb24gc2V0dXAgKi8KICNkZWZpbmUgR1NPX01BWF9TSVpFCQk2NTUzNgogCXVuc2lnbmVkIGludAkJZ3NvX21heF9zaXplOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmggYi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaAppbmRleCA1OTBjZmYzLi4wZDJhNGU3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L3BhZ2UtZmxhZ3MuaApAQCAtMTU3LDYgKzE1Nyw3IEBACiBfX1BBR0VGTEFHKFNsYWIsIHNsYWIpCiBQQUdFRkxBRyhDaGVja2VkLCBvd25lcl9wcml2XzEpCQkvKiBVc2VkIGJ5IHNvbWUgZmlsZXN5c3RlbXMgKi8KIFBBR0VGTEFHKFBpbm5lZCwgb3duZXJfcHJpdl8xKSBURVNUU0NGTEFHKFBpbm5lZCwgb3duZXJfcHJpdl8xKSAvKiBYZW4gKi8KK1BBR0VGTEFHKFNhdmVQaW5uZWQsIGRpcnR5KTsJCQkJCS8qIFhlbiAqLwogUEFHRUZMQUcoUmVzZXJ2ZWQsIHJlc2VydmVkKSBfX0NMRUFSUEFHRUZMQUcoUmVzZXJ2ZWQsIHJlc2VydmVkKQogUEFHRUZMQUcoUHJpdmF0ZSwgcHJpdmF0ZSkgX19DTEVBUlBBR0VGTEFHKFByaXZhdGUsIHByaXZhdGUpCiAJX19TRVRQQUdFRkxBRyhQcml2YXRlLCBwcml2YXRlKQpAQCAtMzA2LDUgKzMwNywyOSBAQAogfQogCiAjZW5kaWYgLyogIVBBR0VGTEFHU19FWFRFTkRFRCAqLworCisjZGVmaW5lIFBBR0VfRkxBR1MJKDEgPDwgUEdfbHJ1ICAgfCAxIDw8IFBHX3ByaXZhdGUgICB8IDEgPDwgUEdfbG9ja2VkIHwgXAorCQkJIDEgPDwgUEdfYnVkZHkgfCAxIDw8IFBHX3dyaXRlYmFjayB8IFwKKwkJCSAxIDw8IFBHX3NsYWIgIHwgMSA8PCBQR19zd2FwY2FjaGUgfCAxIDw8IFBHX2FjdGl2ZSkKKworLyoKKyAqIEZsYWdzIGNoZWNrZWQgaW4gYmFkX3BhZ2UoKS4gIFBhZ2VzIG9uIHRoZSBmcmVlIGxpc3Qgc2hvdWxkIG5vdCBoYXZlCisgKiB0aGVzZSBmbGFncyBzZXQuICBJdCB0aGV5IGFyZSwgdGhlcmUgaXMgYSBwcm9ibGVtLgorICovCisjZGVmaW5lIFBBR0VfRkxBR1NfQ0xFQVJfV0hFTl9CQUQgKFBBR0VfRkxBR1MgfCAxIDw8IFBHX3JlY2xhaW0gfCAxIDw8IFBHX2RpcnR5KQorCisvKgorICogRmxhZ3MgY2hlY2tlZCB3aGVuIGEgcGFnZSBpcyBmcmVlZC4gIFBhZ2VzIGJlaW5nIGZyZWVkIHNob3VsZCBub3QgaGF2ZQorICogdGhlc2UgZmxhZ3Mgc2V0LiAgSXQgdGhleSBhcmUsIHRoZXJlIGlzIGEgcHJvYmxlbS4KKyAqLworI2RlZmluZSBQQUdFX0ZMQUdTX0NIRUNLX0FUX0ZSRUUgKFBBR0VfRkxBR1MgfCAxIDw8IFBHX3Jlc2VydmVkKQorCisvKgorICogRmxhZ3MgY2hlY2tlZCB3aGVuIGEgcGFnZSBpcyBwcmVwcGVkIGZvciByZXR1cm4gYnkgdGhlIHBhZ2UgYWxsb2NhdG9yLgorICogUGFnZXMgYmVpbmcgcHJlcHBlZCBzaG91bGQgbm90IGhhdmUgdGhlc2UgZmxhZ3Mgc2V0LiAgSXQgdGhleSBhcmUsIHRoZXJlCisgKiBpcyBhIHByb2JsZW0uCisgKi8KKyNkZWZpbmUgUEFHRV9GTEFHU19DSEVDS19BVF9QUkVQIChQQUdFX0ZMQUdTIHwgMSA8PCBQR19yZXNlcnZlZCB8IDEgPDwgUEdfZGlydHkpCisKICNlbmRpZiAvKiAhX19HRU5FUkFUSU5HX0JPVU5EU19IICovCiAjZW5kaWYJLyogUEFHRV9GTEFHU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oIGIvaW5jbHVkZS9saW51eC9wYWdlYmxvY2stZmxhZ3MuaAppbmRleCBlODc1OTA1Li5lOGMwNjEyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2VibG9jay1mbGFncy5oCisrKyBiL2luY2x1ZGUvbGludXgvcGFnZWJsb2NrLWZsYWdzLmgKQEAgLTI1LDEzICsyNSwxMSBAQAogCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KIAotLyogTWFjcm8gdG8gYWlkIHRoZSBkZWZpbml0aW9uIG9mIHJhbmdlcyBvZiBiaXRzICovCi0jZGVmaW5lIFBCX3JhbmdlKG5hbWUsIHJlcXVpcmVkX2JpdHMpIFwKLQluYW1lLCBuYW1lICMjIF9lbmQgPSAobmFtZSArIHJlcXVpcmVkX2JpdHMpIC0gMQotCiAvKiBCaXQgaW5kaWNlcyB0aGF0IGFmZmVjdCBhIHdob2xlIGJsb2NrIG9mIHBhZ2VzICovCiBlbnVtIHBhZ2VibG9ja19iaXRzIHsKLQlQQl9yYW5nZShQQl9taWdyYXRlLCAzKSwgLyogMyBiaXRzIHJlcXVpcmVkIGZvciBtaWdyYXRlIHR5cGVzICovCisJUEJfbWlncmF0ZSwKKwlQQl9taWdyYXRlX2VuZCA9IFBCX21pZ3JhdGUgKyAzIC0gMSwKKwkJCS8qIDMgYml0cyByZXF1aXJlZCBmb3IgbWlncmF0ZSB0eXBlcyAqLwogCU5SX1BBR0VCTE9DS19CSVRTCiB9OwogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3BjaS5oIGIvaW5jbHVkZS9saW51eC9wY2kuaAppbmRleCA1MDkxNTliLi5kMThiMWRkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpLmgKQEAgLTIwNiw2ICsyMDYsNyBAQAogCXN0cnVjdCBiaW5fYXR0cmlidXRlICpyb21fYXR0cjsgLyogYXR0cmlidXRlIGRlc2NyaXB0b3IgZm9yIHN5c2ZzIFJPTSBlbnRyeSAqLwogCWludCByb21fYXR0cl9lbmFibGVkOwkJLyogaGFzIGRpc3BsYXkgb2YgdGhlIHJvbSBhdHRyaWJ1dGUgYmVlbiBlbmFibGVkPyAqLwogCXN0cnVjdCBiaW5fYXR0cmlidXRlICpyZXNfYXR0cltERVZJQ0VfQ09VTlRfUkVTT1VSQ0VdOyAvKiBzeXNmcyBmaWxlIGZvciByZXNvdXJjZXMgKi8KKwlzdHJ1Y3QgYmluX2F0dHJpYnV0ZSAqcmVzX2F0dHJfd2NbREVWSUNFX0NPVU5UX1JFU09VUkNFXTsgLyogc3lzZnMgZmlsZSBmb3IgV0MgbWFwcGluZyBvZiByZXNvdXJjZXMgKi8KICNpZmRlZiBDT05GSUdfUENJX01TSQogCXN0cnVjdCBsaXN0X2hlYWQgbXNpX2xpc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oIGIvaW5jbHVkZS9saW51eC9wY2lfaWRzLmgKaW5kZXggY2Y2ZGJkNzUuLjY1OTUzODIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oCkBAIC03MTYsNiArNzE2LDcgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9IUF9DSVNTQQkJMHgzMjIwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0MJCTB4MzIzMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0hQX0NJU1NECQkweDMyMzgKKyNkZWZpbmUgUENJX0RFVklDRV9JRF9IUF9DSVNTRQkJMHgzMjNhCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSFBfWlgyX0lPQwkweDQwMzEKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1BDVEVDSAkJMHgxMDQyCkBAIC0xNTE5LDYgKzE1MjAsNyBAQAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfR1Q2NDI2MAkweDY0MzAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9NQVJWRUxMX01WNjQzNjAJMHg2NDYwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfTUFSVkVMTF9NVjY0NDYwCTB4NjQ4MAorI2RlZmluZSBQQ0lfREVWSUNFX0lEX01BUlZFTExfQ0FGRV9TRAkweDQxMDEKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1YzCQkweDExYjAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9WM19WOTYwCQkweDAwMDEKQEAgLTE3NjEsNiArMTc2Myw3IEBACiAKICNkZWZpbmUgUENJX1ZFTkRPUl9JRF9JTlRBU0hJRUxECTB4MTM1YQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEFTSElFTERfSVMyMDAJMHgwZDgwCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5UQVNISUVMRF9JUzQwMAkweDBkYzAKIAogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1FVQVRFQ0gJCTB4MTM1QwogI2RlZmluZSBQQ0lfREVWSUNFX0lEX1FVQVRFQ0hfUVNDMTAwCTB4MDAxMApAQCAtMjM4Myw2ICsyMzg2LDkgQEAKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JQ0gxMF80CTB4M2EzMAogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lDSDEwXzUJMHgzYTYwCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfSU9BVF9TTkIJMHg0MDJmCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfNTQwMF9FUlIJMHg0MDMwCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfNTQwMF9GQkQwCTB4NDAzNQorI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMXzU0MDBfRkJEMQkweDQwMzYKICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JT0FUX1NDTkIJMHg2NWZmCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfVE9MQVBBSV8wCTB4NTAzMQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX1RPTEFQQUlfMQkweDUwMzIKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGVyY3B1X2NvdW50ZXIuaCBiL2luY2x1ZGUvbGludXgvcGVyY3B1X2NvdW50ZXIuaAppbmRleCA5MDA3Y2NkLi4yMDgzODg4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3BlcmNwdV9jb3VudGVyLmgKKysrIGIvaW5jbHVkZS9saW51eC9wZXJjcHVfY291bnRlci5oCkBAIC0zNSw3ICszNSw3IEBACiB2b2lkIHBlcmNwdV9jb3VudGVyX2Rlc3Ryb3koc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMpOwogdm9pZCBwZXJjcHVfY291bnRlcl9zZXQoc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIHM2NCBhbW91bnQpOwogdm9pZCBfX3BlcmNwdV9jb3VudGVyX2FkZChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgczY0IGFtb3VudCwgczMyIGJhdGNoKTsKLXM2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYyk7CitzNjQgX19wZXJjcHVfY291bnRlcl9zdW0oc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmMsIGludCBzZXQpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGVyY3B1X2NvdW50ZXJfYWRkKHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjLCBzNjQgYW1vdW50KQogewpAQCAtNDQsMTMgKzQ0LDE5IEBACiAKIHN0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bV9wb3NpdGl2ZShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKIHsKLQlzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKKwlzNjQgcmV0ID0gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjLCAwKTsKIAlyZXR1cm4gcmV0IDwgMCA/IDAgOiByZXQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bV9hbmRfc2V0KHN0cnVjdCBwZXJjcHVfY291bnRlciAqZmJjKQoreworCXJldHVybiBfX3BlcmNwdV9jb3VudGVyX3N1bShmYmMsIDEpOworfQorCisKIHN0YXRpYyBpbmxpbmUgczY0IHBlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKIHsKLQlyZXR1cm4gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjKTsKKwlyZXR1cm4gX19wZXJjcHVfY291bnRlcl9zdW0oZmJjLCAwKTsKIH0KIAogc3RhdGljIGlubGluZSBzNjQgcGVyY3B1X2NvdW50ZXJfcmVhZChzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHJlZW1wdC5oIGIvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKaW5kZXggMjNmMGM1NC4uNzJiMWExMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKKysrIGIvaW5jbHVkZS9saW51eC9wcmVlbXB0LmgKQEAgLTEwLDcgKzEwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPgogCi0jaWZkZWYgQ09ORklHX0RFQlVHX1BSRUVNUFQKKyNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKSB8fCBkZWZpbmVkKENPTkZJR19QUkVFTVBUX1RSQUNFUikKICAgZXh0ZXJuIHZvaWQgYWRkX3ByZWVtcHRfY291bnQoaW50IHZhbCk7CiAgIGV4dGVybiB2b2lkIHN1Yl9wcmVlbXB0X2NvdW50KGludCB2YWwpOwogI2Vsc2UKQEAgLTUyLDYgKzUyLDM0IEBACiAJcHJlZW1wdF9jaGVja19yZXNjaGVkKCk7IFwKIH0gd2hpbGUgKDApCiAKKy8qIEZvciBkZWJ1Z2dpbmcgYW5kIHRyYWNlciBpbnRlcm5hbHMgb25seSEgKi8KKyNkZWZpbmUgYWRkX3ByZWVtcHRfY291bnRfbm90cmFjZSh2YWwpCQkJXAorCWRvIHsgcHJlZW1wdF9jb3VudCgpICs9ICh2YWwpOyB9IHdoaWxlICgwKQorI2RlZmluZSBzdWJfcHJlZW1wdF9jb3VudF9ub3RyYWNlKHZhbCkJCQlcCisJZG8geyBwcmVlbXB0X2NvdW50KCkgLT0gKHZhbCk7IH0gd2hpbGUgKDApCisjZGVmaW5lIGluY19wcmVlbXB0X2NvdW50X25vdHJhY2UoKSBhZGRfcHJlZW1wdF9jb3VudF9ub3RyYWNlKDEpCisjZGVmaW5lIGRlY19wcmVlbXB0X2NvdW50X25vdHJhY2UoKSBzdWJfcHJlZW1wdF9jb3VudF9ub3RyYWNlKDEpCisKKyNkZWZpbmUgcHJlZW1wdF9kaXNhYmxlX25vdHJhY2UoKSBcCitkbyB7IFwKKwlpbmNfcHJlZW1wdF9jb3VudF9ub3RyYWNlKCk7IFwKKwliYXJyaWVyKCk7IFwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZF9ub3RyYWNlKCkgXAorZG8geyBcCisJYmFycmllcigpOyBcCisJZGVjX3ByZWVtcHRfY291bnRfbm90cmFjZSgpOyBcCit9IHdoaWxlICgwKQorCisvKiBwcmVlbXB0X2NoZWNrX3Jlc2NoZWQgaXMgT0sgdG8gdHJhY2UgKi8KKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm90cmFjZSgpIFwKK2RvIHsgXAorCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpOyBcCisJYmFycmllcigpOyBcCisJcHJlZW1wdF9jaGVja19yZXNjaGVkKCk7IFwKK30gd2hpbGUgKDApCisKICNlbHNlCiAKICNkZWZpbmUgcHJlZW1wdF9kaXNhYmxlKCkJCWRvIHsgfSB3aGlsZSAoMCkKQEAgLTU5LDYgKzg3LDEwIEBACiAjZGVmaW5lIHByZWVtcHRfZW5hYmxlKCkJCWRvIHsgfSB3aGlsZSAoMCkKICNkZWZpbmUgcHJlZW1wdF9jaGVja19yZXNjaGVkKCkJCWRvIHsgfSB3aGlsZSAoMCkKIAorI2RlZmluZSBwcmVlbXB0X2Rpc2FibGVfbm90cmFjZSgpCQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgcHJlZW1wdF9lbmFibGVfbm90cmFjZSgpCQlkbyB7IH0gd2hpbGUgKDApCisKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Byb2NfZnMuaCBiL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCmluZGV4IDk4ODNiYzkuLmZmZjFkMjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvcHJvY19mcy5oCkBAIC05LDYgKzksOCBAQAogCiBzdHJ1Y3QgbmV0Owogc3RydWN0IGNvbXBsZXRpb247CitzdHJ1Y3QgbW1fc3RydWN0OworCiAvKgogICogVGhlIHByb2MgZmlsZXN5c3RlbSBjb25zdGFudHMvc3RydWN0dXJlcwogICovCkBAIC0xMDEsOCArMTAzLDYgQEAKIGV4dGVybiB2b2lkIHByb2Nfcm9vdF9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgcHJvY19taXNjX2luaXQodm9pZCk7CiAKLXN0cnVjdCBtbV9zdHJ1Y3Q7Ci0KIHZvaWQgcHJvY19mbHVzaF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiBzdHJ1Y3QgZGVudHJ5ICpwcm9jX3BpZF9sb29rdXAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKiBkZW50cnksIHN0cnVjdCBuYW1laWRhdGEgKik7CiBpbnQgcHJvY19waWRfcmVhZGRpcihzdHJ1Y3QgZmlsZSAqIGZpbHAsIHZvaWQgKiBkaXJlbnQsIGZpbGxkaXJfdCBmaWxsZGlyKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmggYi9pbmNsdWRlL2xpbnV4L3B0cmFjZS5oCmluZGV4IGY5ODUwMWIuLmM2ZjVmOWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHRyYWNlLmgKKysrIGIvaW5jbHVkZS9saW51eC9wdHJhY2UuaApAQCAtOTUsOCArOTUsMTIgQEAKIAkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpuZXdfcGFyZW50KTsKIGV4dGVybiB2b2lkIF9fcHRyYWNlX3VubGluayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKIGV4dGVybiB2b2lkIHB0cmFjZV91bnRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOwotZXh0ZXJuIGludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwotZXh0ZXJuIGludCBfX3B0cmFjZV9tYXlfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CisjZGVmaW5lIFBUUkFDRV9NT0RFX1JFQUQgICAxCisjZGVmaW5lIFBUUkFDRV9NT0RFX0FUVEFDSCAyCisvKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLWVycm5vIG9uIGRlbmlhbC4gKi8KK2V4dGVybiBpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKKy8qIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBkZW5pYWwuICovCitleHRlcm4gYm9vbCBwdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKTsKIAogc3RhdGljIGlubGluZSBpbnQgcHRyYWNlX3JlcGFyZW50ZWQoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHdtLmggYi9pbmNsdWRlL2xpbnV4L3B3bS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NDVmODAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2xpbnV4L3B3bS5oCkBAIC0wLDAgKzEsMzEgQEAKKyNpZm5kZWYgX19MSU5VWF9QV01fSAorI2RlZmluZSBfX0xJTlVYX1BXTV9ICisKK3N0cnVjdCBwd21fZGV2aWNlOworCisvKgorICogcHdtX3JlcXVlc3QgLSByZXF1ZXN0IGEgUFdNIGRldmljZQorICovCitzdHJ1Y3QgcHdtX2RldmljZSAqcHdtX3JlcXVlc3QoaW50IHB3bV9pZCwgY29uc3QgY2hhciAqbGFiZWwpOworCisvKgorICogcHdtX2ZyZWUgLSBmcmVlIGEgUFdNIGRldmljZQorICovCit2b2lkIHB3bV9mcmVlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2NvbmZpZyAtIGNoYW5nZSBhIFBXTSBkZXZpY2UgY29uZmlndXJhdGlvbgorICovCitpbnQgcHdtX2NvbmZpZyhzdHJ1Y3QgcHdtX2RldmljZSAqcHdtLCBpbnQgZHV0eV9ucywgaW50IHBlcmlvZF9ucyk7CisKKy8qCisgKiBwd21fZW5hYmxlIC0gc3RhcnQgYSBQV00gb3V0cHV0IHRvZ2dsaW5nCisgKi8KK2ludCBwd21fZW5hYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisvKgorICogcHdtX2Rpc2FibGUgLSBzdG9wIGEgUFdNIG91dHB1dCB0b2dnbGluZworICovCit2b2lkIHB3bV9kaXNhYmxlKHN0cnVjdCBwd21fZGV2aWNlICpwd20pOworCisjZW5kaWYgLyogX19BU01fQVJDSF9QV01fSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmggYi9pbmNsdWRlL2xpbnV4L3B3bV9iYWNrbGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTk3NTRjCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9wd21fYmFja2xpZ2h0LmgKQEAgLTAsMCArMSwxNyBAQAorLyoKKyAqIEdlbmVyaWMgUFdNIGJhY2tsaWdodCBkcml2ZXIgZGF0YSAtIHNlZSBkcml2ZXJzL3ZpZGVvL2JhY2tsaWdodC9wd21fYmwuYworICovCisjaWZuZGVmIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisjZGVmaW5lIF9fTElOVVhfUFdNX0JBQ0tMSUdIVF9ICisKK3N0cnVjdCBwbGF0Zm9ybV9wd21fYmFja2xpZ2h0X2RhdGEgeworCWludCBwd21faWQ7CisJdW5zaWduZWQgaW50IG1heF9icmlnaHRuZXNzOworCXVuc2lnbmVkIGludCBkZnRfYnJpZ2h0bmVzczsKKwl1bnNpZ25lZCBpbnQgcHdtX3BlcmlvZF9uczsKKwlpbnQgKCppbml0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworCWludCAoKm5vdGlmeSkoaW50IGJyaWdodG5lc3MpOworCXZvaWQgKCpleGl0KShzdHJ1Y3QgZGV2aWNlICpkZXYpOworfTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JhaWQvYml0bWFwLmggYi9pbmNsdWRlL2xpbnV4L3JhaWQvYml0bWFwLmgKaW5kZXggNDdmYmNiYS4uNzhiZmRlYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yYWlkL2JpdG1hcC5oCisrKyBiL2luY2x1ZGUvbGludXgvcmFpZC9iaXRtYXAuaApAQCAtMjYyLDcgKzI2Miw2IEBACiB2b2lkIGJpdG1hcF9mbHVzaChtZGRldl90ICptZGRldik7CiB2b2lkIGJpdG1hcF9kZXN0cm95KG1kZGV2X3QgKm1kZGV2KTsKIAotY2hhciAqZmlsZV9wYXRoKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyICpidWYsIGludCBjb3VudCk7CiB2b2lkIGJpdG1hcF9wcmludF9zYihzdHJ1Y3QgYml0bWFwICpiaXRtYXApOwogdm9pZCBiaXRtYXBfdXBkYXRlX3NiKHN0cnVjdCBiaXRtYXAgKmJpdG1hcCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcmFpZC9tZC5oIGIvaW5jbHVkZS9saW51eC9yYWlkL21kLmgKaW5kZXggODFhMWEwMi4uYjczODZhZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yYWlkL21kLmgKKysrIGIvaW5jbHVkZS9saW51eC9yYWlkL21kLmgKQEAgLTcyLDYgKzcyLDggQEAKICAqLwogI2RlZmluZSBNRF9QQVRDSExFVkVMX1ZFUlNJT04gICAgICAgICAgIDMKIAorZXh0ZXJuIGludCBtZHBfbWFqb3I7CisKIGV4dGVybiBpbnQgcmVnaXN0ZXJfbWRfcGVyc29uYWxpdHkgKHN0cnVjdCBtZGtfcGVyc29uYWxpdHkgKnApOwogZXh0ZXJuIGludCB1bnJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IChzdHJ1Y3QgbWRrX3BlcnNvbmFsaXR5ICpwKTsKIGV4dGVybiBtZGtfdGhyZWFkX3QgKiBtZF9yZWdpc3Rlcl90aHJlYWQgKHZvaWQgKCpydW4pIChtZGRldl90ICptZGRldiksCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3JhaWQvbWRfay5oIGIvaW5jbHVkZS9saW51eC9yYWlkL21kX2suaAppbmRleCA4MTJmZmE1Li4zZGVhOWY1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3JhaWQvbWRfay5oCisrKyBiL2luY2x1ZGUvbGludXgvcmFpZC9tZF9rLmgKQEAgLTE4MCwxMyArMTgwLDE1IEBACiAJaW50CQkJCXN5bmNfc3BlZWRfbWluOwogCWludAkJCQlzeW5jX3NwZWVkX21heDsKIAorCS8qIHJlc3luYyBldmVuIHRob3VnaCB0aGUgc2FtZSBkaXNrcyBhcmUgc2hhcmVkIGFtb25nIG1kLWRldmljZXMgKi8KKwlpbnQJCQkJcGFyYWxsZWxfcmVzeW5jOworCiAJaW50CQkJCW9rX3N0YXJ0X2RlZ3JhZGVkOwogCS8qIHJlY292ZXJ5L3Jlc3luYyBmbGFncyAKIAkgKiBORUVERUQ6ICAgd2UgbWlnaHQgbmVlZCB0byBzdGFydCBhIHJlc3luYy9yZWNvdmVyCiAJICogUlVOTklORzogIGEgdGhyZWFkIGlzIHJ1bm5pbmcsIG9yIGFib3V0IHRvIGJlIHN0YXJ0ZWQKIAkgKiBTWU5DOiAgICAgYWN0dWFsbHkgZG9pbmcgYSByZXN5bmMsIG5vdCBhIHJlY292ZXJ5Ci0JICogRVJSOiAgICAgIGFuZCBJTyBlcnJvciB3YXMgZGV0ZWN0ZWQgLSBhYm9ydCB0aGUgcmVzeW5jL3JlY292ZXJ5Ci0JICogSU5UUjogICAgIHNvbWVvbmUgcmVxdWVzdGVkIGEgKGNsZWFuKSBlYXJseSBhYm9ydC4KKwkgKiBJTlRSOiAgICAgcmVzeW5jIG5lZWRzIHRvIGJlIGFib3J0ZWQgZm9yIHNvbWUgcmVhc29uCiAJICogRE9ORTogICAgIHRocmVhZCBpcyBkb25lIGFuZCBpcyB3YWl0aW5nIHRvIGJlIHJlYXBlZAogCSAqIFJFUVVFU1Q6ICB1c2VyLXNwYWNlIGhhcyByZXF1ZXN0ZWQgYSBzeW5jICh1c2VkIHdpdGggU1lOQykKIAkgKiBDSEVDSzogICAgdXNlci1zcGFjZSByZXF1ZXN0IGZvciBmb3IgY2hlY2stb25seSwgbm8gcmVwYWlyCkBAIC0xOTYsNyArMTk4LDYgQEAKIAkgKi8KICNkZWZpbmUJTURfUkVDT1ZFUllfUlVOTklORwkwCiAjZGVmaW5lCU1EX1JFQ09WRVJZX1NZTkMJMQotI2RlZmluZQlNRF9SRUNPVkVSWV9FUlIJCTIKICNkZWZpbmUJTURfUkVDT1ZFUllfSU5UUgkzCiAjZGVmaW5lCU1EX1JFQ09WRVJZX0RPTkUJNAogI2RlZmluZQlNRF9SRUNPVkVSWV9ORUVERUQJNQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yY3VsaXN0LmggYi9pbmNsdWRlL2xpbnV4L3JjdWxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGU0NTg2Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9yY3VsaXN0LmgKQEAgLTAsMCArMSw2IEBACisjaWZuZGVmIF9MSU5VWF9SQ1VMSVNUX0gKKyNkZWZpbmUgX0xJTlVYX1JDVUxJU1RfSAorCisjaW5jbHVkZSA8bGludXgvbGlzdC5oPgorCisjZW5kaWYJLyogX0xJTlVYX1JDVUxJU1RfSCAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yZXN1bWUtdHJhY2UuaCBiL2luY2x1ZGUvbGludXgvcmVzdW1lLXRyYWNlLmgKaW5kZXggZjNmNGYyOC4uYzliYTJmZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9yZXN1bWUtdHJhY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Jlc3VtZS10cmFjZS5oCkBAIC04LDcgKzgsNyBAQAogCiBzdHJ1Y3QgZGV2aWNlOwogZXh0ZXJuIHZvaWQgc2V0X3RyYWNlX2RldmljZShzdHJ1Y3QgZGV2aWNlICopOwotZXh0ZXJuIHZvaWQgZ2VuZXJhdGVfcmVzdW1lX3RyYWNlKHZvaWQgKnRyYWNlZGF0YSwgdW5zaWduZWQgaW50IHVzZXIpOworZXh0ZXJuIHZvaWQgZ2VuZXJhdGVfcmVzdW1lX3RyYWNlKGNvbnN0IHZvaWQgKnRyYWNlZGF0YSwgdW5zaWduZWQgaW50IHVzZXIpOwogCiAjZGVmaW5lIFRSQUNFX0RFVklDRShkZXYpIGRvIHsgXAogCWlmIChwbV90cmFjZV9lbmFibGVkKSBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3J0bmV0bGluay5oIGIvaW5jbHVkZS9saW51eC9ydG5ldGxpbmsuaAppbmRleCA0NGM4MWM3Li5iMzU4YzcwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3J0bmV0bGluay5oCisrKyBiL2luY2x1ZGUvbGludXgvcnRuZXRsaW5rLmgKQEAgLTI0Niw2ICsyNDYsNyBAQAogewogCVJUX1RBQkxFX1VOU1BFQz0wLAogLyogVXNlciBkZWZpbmVkIHZhbHVlcyAqLworCVJUX1RBQkxFX0NPTVBBVD0yNTIsCiAJUlRfVEFCTEVfREVGQVVMVD0yNTMsCiAJUlRfVEFCTEVfTUFJTj0yNTQsCiAJUlRfVEFCTEVfTE9DQUw9MjU1LApAQCAtMjY3LDEwICsyNjgsMTAgQEAKIAlSVEFfUFJFRlNSQywKIAlSVEFfTUVUUklDUywKIAlSVEFfTVVMVElQQVRILAotCVJUQV9QUk9UT0lORk8sCisJUlRBX1BST1RPSU5GTywgLyogbm8gbG9uZ2VyIHVzZWQgKi8KIAlSVEFfRkxPVywKIAlSVEFfQ0FDSEVJTkZPLAotCVJUQV9TRVNTSU9OLAorCVJUQV9TRVNTSU9OLCAvKiBubyBsb25nZXIgdXNlZCAqLwogCVJUQV9NUF9BTEdPLCAvKiBubyBsb25nZXIgdXNlZCAqLwogCVJUQV9UQUJMRSwKIAlfX1JUQV9NQVgKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCA1Mzk1YTYxLi4yMTM0OTE3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmgKKysrIGIvaW5jbHVkZS9saW51eC9zY2hlZC5oCkBAIC0xMzQsNyArMTM0LDYgQEAKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX3VuaW50ZXJydXB0aWJsZSh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2FjdGl2ZSh2b2lkKTsKIGV4dGVybiB1bnNpZ25lZCBsb25nIG5yX2lvd2FpdCh2b2lkKTsKLWV4dGVybiB1bnNpZ25lZCBsb25nIHdlaWdodGVkX2NwdWxvYWQoY29uc3QgaW50IGNwdSk7CiAKIHN0cnVjdCBzZXFfZmlsZTsKIHN0cnVjdCBjZnNfcnE7CkBAIC0yNDYsNiArMjQ1LDggQEAKIGV4dGVybiB2b2lkIGluaXRfaWRsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmlkbGUsIGludCBjcHUpOwogZXh0ZXJuIHZvaWQgaW5pdF9pZGxlX2Jvb3R1cF90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqaWRsZSk7CiAKK2V4dGVybiBpbnQgcnVucXVldWVfaXNfbG9ja2VkKHZvaWQpOworCiBleHRlcm4gY3B1bWFza190IG5vaHpfY3B1X21hc2s7CiAjaWYgZGVmaW5lZChDT05GSUdfU01QKSAmJiBkZWZpbmVkKENPTkZJR19OT19IWikKIGV4dGVybiBpbnQgc2VsZWN0X25vaHpfbG9hZF9iYWxhbmNlcihpbnQgY3B1KTsKQEAgLTc2Niw3ICs3NjcsNiBAQAogCXN0cnVjdCBzY2hlZF9kb21haW4gKmNoaWxkOwkvKiBib3R0b20gZG9tYWluIG11c3QgYmUgbnVsbCB0ZXJtaW5hdGVkICovCiAJc3RydWN0IHNjaGVkX2dyb3VwICpncm91cHM7CS8qIHRoZSBiYWxhbmNpbmcgZ3JvdXBzIG9mIHRoZSBkb21haW4gKi8KIAljcHVtYXNrX3Qgc3BhbjsJCQkvKiBzcGFuIG9mIGFsbCBDUFVzIGluIHRoaXMgZG9tYWluICovCi0JaW50IGZpcnN0X2NwdTsJCQkvKiBjYWNoZSBvZiB0aGUgZmlyc3QgY3B1IGluIHRoaXMgZG9tYWluICovCiAJdW5zaWduZWQgbG9uZyBtaW5faW50ZXJ2YWw7CS8qIE1pbmltdW0gYmFsYW5jZSBpbnRlcnZhbCBtcyAqLwogCXVuc2lnbmVkIGxvbmcgbWF4X2ludGVydmFsOwkvKiBNYXhpbXVtIGJhbGFuY2UgaW50ZXJ2YWwgbXMgKi8KIAl1bnNpZ25lZCBpbnQgYnVzeV9mYWN0b3I7CS8qIGxlc3MgYmFsYW5jaW5nIGJ5IGZhY3RvciBpZiBidXN5ICovCkBAIC03ODUsNiArNzg1LDggQEAKIAl1bnNpZ25lZCBpbnQgYmFsYW5jZV9pbnRlcnZhbDsJLyogaW5pdGlhbGlzZSB0byAxLiB1bml0cyBpbiBtcy4gKi8KIAl1bnNpZ25lZCBpbnQgbnJfYmFsYW5jZV9mYWlsZWQ7IC8qIGluaXRpYWxpc2UgdG8gMCAqLwogCisJdTY0IGxhc3RfdXBkYXRlOworCiAjaWZkZWYgQ09ORklHX1NDSEVEU1RBVFMKIAkvKiBsb2FkX2JhbGFuY2UoKSBzdGF0cyAqLwogCXVuc2lnbmVkIGludCBsYl9jb3VudFtDUFVfTUFYX0lETEVfVFlQRVNdOwpAQCAtODI0LDIzICs4MjYsNiBAQAogCiAjZW5kaWYJLyogQ09ORklHX1NNUCAqLwogCi0vKgotICogQSBydW5xdWV1ZSBsYWRlbiB3aXRoIGEgc2luZ2xlIG5pY2UgMCB0YXNrIHNjb3JlcyBhIHdlaWdodGVkX2NwdWxvYWQgb2YKLSAqIFNDSEVEX0xPQURfU0NBTEUuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyAxIGlmIGFueSBjcHUgaXMgbGFkZW4gd2l0aCBhCi0gKiB0YXNrIG9mIG5pY2UgMCBvciBlbm91Z2ggbG93ZXIgcHJpb3JpdHkgdGFza3MgdG8gYnJpbmcgdXAgdGhlCi0gKiB3ZWlnaHRlZF9jcHVsb2FkCi0gKi8KLXN0YXRpYyBpbmxpbmUgaW50IGFib3ZlX2JhY2tncm91bmRfbG9hZCh2b2lkKQotewotCXVuc2lnbmVkIGxvbmcgY3B1OwotCi0JZm9yX2VhY2hfb25saW5lX2NwdShjcHUpIHsKLQkJaWYgKHdlaWdodGVkX2NwdWxvYWQoY3B1KSA+PSBTQ0hFRF9MT0FEX1NDQUxFKQotCQkJcmV0dXJuIDE7Ci0JfQotCXJldHVybiAwOwotfQotCiBzdHJ1Y3QgaW9fY29udGV4dDsJCQkvKiBTZWUgYmxrZGV2LmggKi8KICNkZWZpbmUgTkdST1VQU19TTUFMTAkJMzIKICNkZWZpbmUgTkdST1VQU19QRVJfQkxPQ0sJKCh1bnNpZ25lZCBpbnQpKFBBR0VfU0laRSAvIHNpemVvZihnaWRfdCkpKQpAQCAtOTIyLDggKzkwNyw4IEBACiAJdm9pZCAoKnNldF9jcHVzX2FsbG93ZWQpKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKIAkJCQkgY29uc3QgY3B1bWFza190ICpuZXdtYXNrKTsKIAotCXZvaWQgKCpqb2luX2RvbWFpbikoc3RydWN0IHJxICpycSk7Ci0Jdm9pZCAoKmxlYXZlX2RvbWFpbikoc3RydWN0IHJxICpycSk7CisJdm9pZCAoKnJxX29ubGluZSkoc3RydWN0IHJxICpycSk7CisJdm9pZCAoKnJxX29mZmxpbmUpKHN0cnVjdCBycSAqcnEpOwogCiAJdm9pZCAoKnN3aXRjaGVkX2Zyb20pIChzdHJ1Y3QgcnEgKnRoaXNfcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywKIAkJCSAgICAgICBpbnQgcnVubmluZyk7CkBAIC0xMDQwLDYgKzEwMjUsNyBAQAogI2VuZGlmCiAKIAlpbnQgcHJpbywgc3RhdGljX3ByaW8sIG5vcm1hbF9wcmlvOworCXVuc2lnbmVkIGludCBydF9wcmlvcml0eTsKIAljb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgKnNjaGVkX2NsYXNzOwogCXN0cnVjdCBzY2hlZF9lbnRpdHkgc2U7CiAJc3RydWN0IHNjaGVkX3J0X2VudGl0eSBydDsKQEAgLTExMjMsNyArMTEwOSw2IEBACiAJaW50IF9fdXNlciAqc2V0X2NoaWxkX3RpZDsJCS8qIENMT05FX0NISUxEX1NFVFRJRCAqLwogCWludCBfX3VzZXIgKmNsZWFyX2NoaWxkX3RpZDsJCS8qIENMT05FX0NISUxEX0NMRUFSVElEICovCiAKLQl1bnNpZ25lZCBpbnQgcnRfcHJpb3JpdHk7CiAJY3B1dGltZV90IHV0aW1lLCBzdGltZSwgdXRpbWVzY2FsZWQsIHN0aW1lc2NhbGVkOwogCWNwdXRpbWVfdCBndGltZTsKIAljcHV0aW1lX3QgcHJldl91dGltZSwgcHJldl9zdGltZTsKQEAgLTExNDIsMTIgKzExMjcsMTIgQEAKIAlnaWRfdCBnaWQsZWdpZCxzZ2lkLGZzZ2lkOwogCXN0cnVjdCBncm91cF9pbmZvICpncm91cF9pbmZvOwogCWtlcm5lbF9jYXBfdCAgIGNhcF9lZmZlY3RpdmUsIGNhcF9pbmhlcml0YWJsZSwgY2FwX3Blcm1pdHRlZCwgY2FwX2JzZXQ7Ci0JdW5zaWduZWQgc2VjdXJlYml0czsKIAlzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKnVzZXI7CisJdW5zaWduZWQgc2VjdXJlYml0czsKICNpZmRlZiBDT05GSUdfS0VZUworCXVuc2lnbmVkIGNoYXIgaml0X2tleXJpbmc7CS8qIGRlZmF1bHQga2V5cmluZyB0byBhdHRhY2ggcmVxdWVzdGVkIGtleXMgdG8gKi8KIAlzdHJ1Y3Qga2V5ICpyZXF1ZXN0X2tleV9hdXRoOwkvKiBhc3N1bWVkIHJlcXVlc3Rfa2V5IGF1dGhvcml0eSAqLwogCXN0cnVjdCBrZXkgKnRocmVhZF9rZXlyaW5nOwkvKiBrZXlyaW5nIHByaXZhdGUgdG8gdGhpcyB0aHJlYWQgKi8KLQl1bnNpZ25lZCBjaGFyIGppdF9rZXlyaW5nOwkvKiBkZWZhdWx0IGtleXJpbmcgdG8gYXR0YWNoIHJlcXVlc3RlZCBrZXlzIHRvICovCiAjZW5kaWYKIAljaGFyIGNvbW1bVEFTS19DT01NX0xFTl07IC8qIGV4ZWN1dGFibGUgbmFtZSBleGNsdWRpbmcgcGF0aAogCQkJCSAgICAgLSBhY2Nlc3Mgd2l0aCBbZ3NdZXRfdGFza19jb21tICh3aGljaCBsb2NrCkBAIC0xMjM0LDggKzEyMTksOCBAQAogIyBkZWZpbmUgTUFYX0xPQ0tfREVQVEggNDhVTAogCXU2NCBjdXJyX2NoYWluX2tleTsKIAlpbnQgbG9ja2RlcF9kZXB0aDsKLQlzdHJ1Y3QgaGVsZF9sb2NrIGhlbGRfbG9ja3NbTUFYX0xPQ0tfREVQVEhdOwogCXVuc2lnbmVkIGludCBsb2NrZGVwX3JlY3Vyc2lvbjsKKwlzdHJ1Y3QgaGVsZF9sb2NrIGhlbGRfbG9ja3NbTUFYX0xPQ0tfREVQVEhdOwogI2VuZGlmCiAKIC8qIGpvdXJuYWxsaW5nIGZpbGVzeXN0ZW0gaW5mbyAqLwpAQCAtMTI2MywxMCArMTI0OCw2IEBACiAJdTY0IGFjY3Rfdm1fbWVtMTsJLyogYWNjdW11bGF0ZWQgdmlydHVhbCBtZW1vcnkgdXNhZ2UgKi8KIAljcHV0aW1lX3QgYWNjdF9zdGltZXhwZDsvKiBzdGltZSBzaW5jZSBsYXN0IHVwZGF0ZSAqLwogI2VuZGlmCi0jaWZkZWYgQ09ORklHX05VTUEKLSAgCXN0cnVjdCBtZW1wb2xpY3kgKm1lbXBvbGljeTsKLQlzaG9ydCBpbF9uZXh0OwotI2VuZGlmCiAjaWZkZWYgQ09ORklHX0NQVVNFVFMKIAlub2RlbWFza190IG1lbXNfYWxsb3dlZDsKIAlpbnQgY3B1c2V0X21lbXNfZ2VuZXJhdGlvbjsKQEAgLTEyODYsNiArMTI2NywxMCBAQAogCXN0cnVjdCBsaXN0X2hlYWQgcGlfc3RhdGVfbGlzdDsKIAlzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKnBpX3N0YXRlX2NhY2hlOwogI2VuZGlmCisjaWZkZWYgQ09ORklHX05VTUEKKwlzdHJ1Y3QgbWVtcG9saWN5ICptZW1wb2xpY3k7CisJc2hvcnQgaWxfbmV4dDsKKyNlbmRpZgogCWF0b21pY190IGZzX2V4Y2w7CS8qIGhvbGRpbmcgZnMgZXhjbHVzaXZlIHJlc291cmNlcyAqLwogCXN0cnVjdCByY3VfaGVhZCByY3U7CiAKQEAgLTE1MDUsNiArMTQ5MCw3IEBACiAjZGVmaW5lIFBGX1NXQVBXUklURQkweDAwODAwMDAwCS8qIEFsbG93ZWQgdG8gd3JpdGUgdG8gc3dhcCAqLwogI2RlZmluZSBQRl9TUFJFQURfUEFHRQkweDAxMDAwMDAwCS8qIFNwcmVhZCBwYWdlIGNhY2hlIG92ZXIgY3B1c2V0ICovCiAjZGVmaW5lIFBGX1NQUkVBRF9TTEFCCTB4MDIwMDAwMDAJLyogU3ByZWFkIHNvbWUgc2xhYiBjYWNoZXMgb3ZlciBjcHVzZXQgKi8KKyNkZWZpbmUgUEZfVEhSRUFEX0JPVU5ECTB4MDQwMDAwMDAJLyogVGhyZWFkIGJvdW5kIHRvIHNwZWNpZmljIGNwdSAqLwogI2RlZmluZSBQRl9NRU1QT0xJQ1kJMHgxMDAwMDAwMAkvKiBOb24tZGVmYXVsdCBOVU1BIG1lbXBvbGljeSAqLwogI2RlZmluZSBQRl9NVVRFWF9URVNURVIJMHgyMDAwMDAwMAkvKiBUaHJlYWQgYmVsb25ncyB0byB0aGUgcnQgbXV0ZXggdGVzdGVyICovCiAjZGVmaW5lIFBGX0ZSRUVaRVJfU0tJUAkweDQwMDAwMDAwCS8qIEZyZWV6ZXIgc2hvdWxkIG5vdCBjb3VudCBpdCBhcyBmcmVlemVhYmxlICovCkBAIC0xNTc0LDEzICsxNTYwLDI4IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xvY2tfaWRsZV93YWtldXBfZXZlbnQodTY0IGRlbHRhX25zKQogewogfQotI2Vsc2UKKworI2lmZGVmIENPTkZJR19OT19IWgorc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RvcChpbnQgY3B1KQoreworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfY2xvY2tfdGlja19zdGFydChpbnQgY3B1KQoreworfQorI2VuZGlmCisKKyNlbHNlIC8qIENPTkZJR19IQVZFX1VOU1RBQkxFX1NDSEVEX0NMT0NLICovCiBleHRlcm4gdm9pZCBzY2hlZF9jbG9ja19pbml0KHZvaWQpOwogZXh0ZXJuIHU2NCBzY2hlZF9jbG9ja19jcHUoaW50IGNwdSk7CiBleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrKHZvaWQpOwogZXh0ZXJuIHZvaWQgc2NoZWRfY2xvY2tfaWRsZV9zbGVlcF9ldmVudCh2b2lkKTsKIGV4dGVybiB2b2lkIHNjaGVkX2Nsb2NrX2lkbGVfd2FrZXVwX2V2ZW50KHU2NCBkZWx0YV9ucyk7CisjaWZkZWYgQ09ORklHX05PX0haCitleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrX3N0b3AoaW50IGNwdSk7CitleHRlcm4gdm9pZCBzY2hlZF9jbG9ja190aWNrX3N0YXJ0KGludCBjcHUpOwogI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX0hBVkVfVU5TVEFCTEVfU0NIRURfQ0xPQ0sgKi8KIAogLyoKICAqIEZvciBrZXJuZWwtaW50ZXJuYWwgdXNlOiBoaWdoLXNwZWVkIChidXQgc2xpZ2h0bHkgaW5jb3JyZWN0KSBwZXItY3B1CkBAIC0xNjIzLDYgKzE2MjQsNyBAQAogZXh0ZXJuIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfZmVhdHVyZXM7CiBleHRlcm4gdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdDsKIGV4dGVybiB1bnNpZ25lZCBpbnQgc3lzY3RsX3NjaGVkX25yX21pZ3JhdGU7CitleHRlcm4gdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0OwogCiBpbnQgc2NoZWRfbnJfbGF0ZW5jeV9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbmd0aCwKQEAgLTE2NTYsNiArMTY1OCw4IEBACiBleHRlcm4gaW50IHRhc2tfY3Vycihjb25zdCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApOwogZXh0ZXJuIGludCBpZGxlX2NwdShpbnQgY3B1KTsKIGV4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQsIHN0cnVjdCBzY2hlZF9wYXJhbSAqKTsKK2V4dGVybiBpbnQgc2NoZWRfc2V0c2NoZWR1bGVyX25vY2hlY2soc3RydWN0IHRhc2tfc3RydWN0ICosIGludCwKKwkJCQkgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKik7CiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICppZGxlX3Rhc2soaW50IGNwdSk7CiBleHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyX3Rhc2soaW50IGNwdSk7CiBleHRlcm4gdm9pZCBzZXRfY3Vycl90YXNrKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7CkBAIC0xODQ4LDcgKzE4NTIsOSBAQAogZXh0ZXJuIHZvaWQgZXhpdF9maWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CiBleHRlcm4gdm9pZCBfX2NsZWFudXBfc2lnbmFsKHN0cnVjdCBzaWduYWxfc3RydWN0ICopOwogZXh0ZXJuIHZvaWQgX19jbGVhbnVwX3NpZ2hhbmQoc3RydWN0IHNpZ2hhbmRfc3RydWN0ICopOworCiBleHRlcm4gdm9pZCBleGl0X2l0aW1lcnMoc3RydWN0IHNpZ25hbF9zdHJ1Y3QgKik7CitleHRlcm4gdm9pZCBmbHVzaF9pdGltZXJfc2lnbmFscyh2b2lkKTsKIAogZXh0ZXJuIE5PUkVUX1RZUEUgdm9pZCBkb19ncm91cF9leGl0KGludCk7CiAKQEAgLTIwMjUsNiArMjAzMSwxOSBAQAogCXJldHVybiBzaWduYWxfcGVuZGluZyhwKSAmJiBfX2ZhdGFsX3NpZ25hbF9wZW5kaW5nKHApOwogfQogCitzdGF0aWMgaW5saW5lIGludCBzaWduYWxfcGVuZGluZ19zdGF0ZShsb25nIHN0YXRlLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJaWYgKCEoc3RhdGUgJiAoVEFTS19JTlRFUlJVUFRJQkxFIHwgVEFTS19XQUtFS0lMTCkpKQorCQlyZXR1cm4gMDsKKwlpZiAoIXNpZ25hbF9wZW5kaW5nKHApKQorCQlyZXR1cm4gMDsKKworCWlmIChzdGF0ZSAmIChfX1RBU0tfU1RPUFBFRCB8IF9fVEFTS19UUkFDRUQpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAoc3RhdGUgJiBUQVNLX0lOVEVSUlVQVElCTEUpIHx8IF9fZmF0YWxfc2lnbmFsX3BlbmRpbmcocCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgaW50IG5lZWRfcmVzY2hlZCh2b2lkKQogewogCXJldHVybiB1bmxpa2VseSh0ZXN0X3RocmVhZF9mbGFnKFRJRl9ORUVEX1JFU0NIRUQpKTsKQEAgLTIxMTcsNiArMjEzNiwxOCBAQAogfQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVFJBQ0lORworZXh0ZXJuIHZvaWQKK19fdHJhY2Vfc3BlY2lhbCh2b2lkICpfX3RyLCB2b2lkICpfX2RhdGEsCisJCXVuc2lnbmVkIGxvbmcgYXJnMSwgdW5zaWduZWQgbG9uZyBhcmcyLCB1bnNpZ25lZCBsb25nIGFyZzMpOworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorX190cmFjZV9zcGVjaWFsKHZvaWQgKl9fdHIsIHZvaWQgKl9fZGF0YSwKKwkJdW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMykKK3sKK30KKyNlbmRpZgorCiBleHRlcm4gbG9uZyBzY2hlZF9zZXRhZmZpbml0eShwaWRfdCBwaWQsIGNvbnN0IGNwdW1hc2tfdCAqbmV3X21hc2spOwogZXh0ZXJuIGxvbmcgc2NoZWRfZ2V0YWZmaW5pdHkocGlkX3QgcGlkLCBjcHVtYXNrX3QgKm1hc2spOwogCkBAIC0yMjExLDYgKzIyNDIsOCBAQAogfQogI2VuZGlmIC8qIENPTkZJR19NTV9PV05FUiAqLwogCisjZGVmaW5lIFRBU0tfU1RBVEVfVE9fQ0hBUl9TVFIgIlJTRFR0WlgiCisKICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cmViaXRzLmggYi9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaAppbmRleCBjMWYxOWRiLi45MmYwOWJkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3VyZWJpdHMuaApAQCAtNywxNCArNywxNSBAQAogICAgaW5oZXJpdGFuY2Ugb2Ygcm9vdC1wZXJtaXNzaW9ucyBhbmQgc3VpZC1yb290IGV4ZWN1dGFibGUgdW5kZXIKICAgIGNvbXBhdGliaWxpdHkgbW9kZS4gV2UgcmFpc2UgdGhlIGVmZmVjdGl2ZSBhbmQgaW5oZXJpdGFibGUgYml0bWFza3MKICAgICpvZiB0aGUgZXhlY3V0YWJsZSBmaWxlKiBpZiB0aGUgZWZmZWN0aXZlIHVpZCBvZiB0aGUgbmV3IHByb2Nlc3MgaXMKLSAgIDAuIElmIHRoZSByZWFsIHVpZCBpcyAwLCB3ZSByYWlzZSB0aGUgaW5oZXJpdGFibGUgYml0bWFzayBvZiB0aGUKKyAgIDAuIElmIHRoZSByZWFsIHVpZCBpcyAwLCB3ZSByYWlzZSB0aGUgZWZmZWN0aXZlIChsZWdhY3kpIGJpdCBvZiB0aGUKICAgIGV4ZWN1dGFibGUgZmlsZS4gKi8KICNkZWZpbmUgU0VDVVJFX05PUk9PVAkJCTAKICNkZWZpbmUgU0VDVVJFX05PUk9PVF9MT0NLRUQJCTEgIC8qIG1ha2UgYml0LTAgaW1tdXRhYmxlICovCiAKLS8qIFdoZW4gc2V0LCBzZXR1aWQgdG8vZnJvbSB1aWQgMCBkb2VzIG5vdCB0cmlnZ2VyIGNhcGFiaWxpdHktImZpeGVzIgotICAgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG9sZCBwcm9ncmFtcyByZWx5aW5nIG9uIHNldCp1aWQgdG8gbG9vc2UKLSAgIHByaXZpbGVnZXMuIFdoZW4gdW5zZXQsIHNldHVpZCBkb2Vzbid0IGNoYW5nZSBwcml2aWxlZ2VzLiAqLworLyogV2hlbiBzZXQsIHNldHVpZCB0by9mcm9tIHVpZCAwIGRvZXMgbm90IHRyaWdnZXIgY2FwYWJpbGl0eS0iZml4dXAiLgorICAgV2hlbiB1bnNldCwgdG8gcHJvdmlkZSBjb21wYXRpYmxpbGl0eSB3aXRoIG9sZCBwcm9ncmFtcyByZWx5aW5nIG9uCisgICBzZXQqdWlkIHRvIGdhaW4vbG9zZSBwcml2aWxlZ2UsIHRyYW5zaXRpb25zIHRvL2Zyb20gdWlkIDAgY2F1c2UKKyAgIGNhcGFiaWxpdGllcyB0byBiZSBnYWluZWQvbG9zdC4gKi8KICNkZWZpbmUgU0VDVVJFX05PX1NFVFVJRF9GSVhVUAkJMgogI2RlZmluZSBTRUNVUkVfTk9fU0VUVUlEX0ZJWFVQX0xPQ0tFRAkzICAvKiBtYWtlIGJpdC0yIGltbXV0YWJsZSAqLwogCkBAIC0yNiwxMCArMjcsMTAgQEAKICNkZWZpbmUgU0VDVVJFX0tFRVBfQ0FQUwkJNAogI2RlZmluZSBTRUNVUkVfS0VFUF9DQVBTX0xPQ0tFRAkJNSAgLyogbWFrZSBiaXQtNCBpbW11dGFibGUgKi8KIAotLyogRWFjaCBzZWN1cmVzZXR0aW5nIGlzIGltcGxlbWVudGVkIHVzaW5nIHR3byBiaXRzLiBPbmUgYml0IHNwZWNpZnkKKy8qIEVhY2ggc2VjdXJlc2V0dGluZyBpcyBpbXBsZW1lbnRlZCB1c2luZyB0d28gYml0cy4gT25lIGJpdCBzcGVjaWZpZXMKICAgIHdoZXRoZXIgdGhlIHNldHRpbmcgaXMgb24gb3Igb2ZmLiBUaGUgb3RoZXIgYml0IHNwZWNpZnkgd2hldGhlciB0aGUKLSAgIHNldHRpbmcgaXMgZml4ZWQgb3Igbm90LiBBIHNldHRpbmcgd2hpY2ggaXMgZml4ZWQgY2Fubm90IGJlIGNoYW5nZWQKLSAgIGZyb20gdXNlci1sZXZlbC4gKi8KKyAgIHNldHRpbmcgaXMgbG9ja2VkIG9yIG5vdC4gQSBzZXR0aW5nIHdoaWNoIGlzIGxvY2tlZCBjYW5ub3QgYmUKKyAgIGNoYW5nZWQgZnJvbSB1c2VyLWxldmVsLiAqLwogI2RlZmluZSBpc3NlY3VyZV9tYXNrKFgpCSgxIDw8IChYKSkKICNkZWZpbmUgaXNzZWN1cmUoWCkJCShpc3NlY3VyZV9tYXNrKFgpICYgY3VycmVudC0+c2VjdXJlYml0cykKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCmluZGV4IDUwNzM3YzcuLjMxYzg4NTEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmgKQEAgLTQ2LDcgKzQ2LDggQEAKICAqLwogZXh0ZXJuIGludCBjYXBfY2FwYWJsZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNhcCk7CiBleHRlcm4gaW50IGNhcF9zZXR0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMsIHN0cnVjdCB0aW1lem9uZSAqdHopOwotZXh0ZXJuIGludCBjYXBfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKTsKK2V4dGVybiBpbnQgY2FwX3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJICAgICAgdW5zaWduZWQgaW50IG1vZGUpOwogZXh0ZXJuIGludCBjYXBfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwga2VybmVsX2NhcF90ICppbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICpwZXJtaXR0ZWQpOwogZXh0ZXJuIGludCBjYXBfY2Fwc2V0X2NoZWNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LCBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwga2VybmVsX2NhcF90ICppbmhlcml0YWJsZSwga2VybmVsX2NhcF90ICpwZXJtaXR0ZWQpOwogZXh0ZXJuIHZvaWQgY2FwX2NhcHNldF9zZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGtlcm5lbF9jYXBfdCAqZWZmZWN0aXZlLCBrZXJuZWxfY2FwX3QgKmluaGVyaXRhYmxlLCBrZXJuZWxfY2FwX3QgKnBlcm1pdHRlZCk7CkBAIC03OSw2ICs4MCw3IEBACiBzdHJ1Y3QgeGZybV9wb2xpY3k7CiBzdHJ1Y3QgeGZybV9zdGF0ZTsKIHN0cnVjdCB4ZnJtX3VzZXJfc2VjX2N0eDsKK3N0cnVjdCBzZXFfZmlsZTsKIAogZXh0ZXJuIGludCBjYXBfbmV0bGlua19zZW5kKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBleHRlcm4gaW50IGNhcF9uZXRsaW5rX3JlY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgaW50IGNhcCk7CkBAIC0yODksMTAgKzI5MSw2IEBACiAgKglVcGRhdGUgbW9kdWxlIHN0YXRlIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwaXZvdC4KICAqCUBvbGRfcGF0aCBjb250YWlucyB0aGUgcGF0aCBmb3IgdGhlIG9sZCByb290LgogICoJQG5ld19wYXRoIGNvbnRhaW5zIHRoZSBwYXRoIGZvciB0aGUgbmV3IHJvb3QuCi0gKiBAc2JfZ2V0X21udF9vcHRzOgotICoJR2V0IHRoZSBzZWN1cml0eSByZWxldmFudCBtb3VudCBvcHRpb25zIHVzZWQgZm9yIGEgc3VwZXJibG9jawotICoJQHNiIHRoZSBzdXBlcmJsb2NrIHRvIGdldCBzZWN1cml0eSBtb3VudCBvcHRpb25zIGZyb20KLSAqCUBvcHRzIGJpbmFyeSBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGFsbCBsc20gbW91bnQgZGF0YQogICogQHNiX3NldF9tbnRfb3B0czoKICAqCVNldCB0aGUgc2VjdXJpdHkgcmVsZXZhbnQgbW91bnQgb3B0aW9ucyB1c2VkIGZvciBhIHN1cGVyYmxvY2sKICAqCUBzYiB0aGUgc3VwZXJibG9jayB0byBzZXQgc2VjdXJpdHkgbW91bnQgb3B0aW9ucyBmb3IKQEAgLTExNzAsNiArMTE2OCw3IEBACiAgKglhdHRyaWJ1dGVzIHdvdWxkIGJlIGNoYW5nZWQgYnkgdGhlIGV4ZWN2ZS4KICAqCUBwYXJlbnQgY29udGFpbnMgdGhlIHRhc2tfc3RydWN0IHN0cnVjdHVyZSBmb3IgcGFyZW50IHByb2Nlc3MuCiAgKglAY2hpbGQgY29udGFpbnMgdGhlIHRhc2tfc3RydWN0IHN0cnVjdHVyZSBmb3IgY2hpbGQgcHJvY2Vzcy4KKyAqCUBtb2RlIGNvbnRhaW5zIHRoZSBQVFJBQ0VfTU9ERSBmbGFncyBpbmRpY2F0aW5nIHRoZSBmb3JtIG9mIGFjY2Vzcy4KICAqCVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KICAqIEBjYXBnZXQ6CiAgKglHZXQgdGhlIEBlZmZlY3RpdmUsIEBpbmhlcml0YWJsZSwgYW5kIEBwZXJtaXR0ZWQgY2FwYWJpbGl0eSBzZXRzIGZvcgpAQCAtMTI0MCwxMSArMTIzOSw2IEBACiAgKglAcGFnZXMgY29udGFpbnMgdGhlIG51bWJlciBvZiBwYWdlcy4KICAqCVJldHVybiAwIGlmIHBlcm1pc3Npb24gaXMgZ3JhbnRlZC4KICAqCi0gKiBAcmVnaXN0ZXJfc2VjdXJpdHk6Ci0gKglhbGxvdyBtb2R1bGUgc3RhY2tpbmcuCi0gKglAbmFtZSBjb250YWlucyB0aGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgbW9kdWxlIGJlaW5nIHN0YWNrZWQuCi0gKglAb3BzIGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGUgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgb2YgdGhlIG1vZHVsZSB0byBzdGFjay4KLSAqCiAgKiBAc2VjaWRfdG9fc2VjY3R4OgogICoJQ29udmVydCBzZWNpZCB0byBzZWN1cml0eSBjb250ZXh0LgogICoJQHNlY2lkIGNvbnRhaW5zIHRoZSBzZWN1cml0eSBJRC4KQEAgLTEyOTUsNyArMTI4OSw4IEBACiBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyB7CiAJY2hhciBuYW1lW1NFQ1VSSVRZX05BTUVfTUFYICsgMV07CiAKLQlpbnQgKCpwdHJhY2UpIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCk7CisJaW50ICgqcHRyYWNlKSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSk7CiAJaW50ICgqY2FwZ2V0KSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCiAJCSAgICAgICBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwKIAkJICAgICAgIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsIGtlcm5lbF9jYXBfdCAqcGVybWl0dGVkKTsKQEAgLTEzMjgsNiArMTMyMyw3IEBACiAJdm9pZCAoKnNiX2ZyZWVfc2VjdXJpdHkpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIAlpbnQgKCpzYl9jb3B5X2RhdGEpIChjaGFyICpvcmlnLCBjaGFyICpjb3B5KTsKIAlpbnQgKCpzYl9rZXJuX21vdW50KSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdm9pZCAqZGF0YSk7CisJaW50ICgqc2Jfc2hvd19vcHRpb25zKSAoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTsKIAlpbnQgKCpzYl9zdGF0ZnMpIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogCWludCAoKnNiX21vdW50KSAoY2hhciAqZGV2X25hbWUsIHN0cnVjdCBwYXRoICpwYXRoLAogCQkJIGNoYXIgKnR5cGUsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHZvaWQgKmRhdGEpOwpAQCAtMTM0Myw4ICsxMzM5LDYgQEAKIAkJCSAgICAgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKIAl2b2lkICgqc2JfcG9zdF9waXZvdHJvb3QpIChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsCiAJCQkJICAgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKLQlpbnQgKCpzYl9nZXRfbW50X29wdHMpIChjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiAJaW50ICgqc2Jfc2V0X21udF9vcHRzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKIAkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpOwogCXZvaWQgKCpzYl9jbG9uZV9tbnRfb3B0cykgKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCkBAIC0xNDcyLDEwICsxNDY2LDYgQEAKIAlpbnQgKCpuZXRsaW5rX3NlbmQpIChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpOwogCWludCAoKm5ldGxpbmtfcmVjdikgKHN0cnVjdCBza19idWZmICpza2IsIGludCBjYXApOwogCi0JLyogYWxsb3cgbW9kdWxlIHN0YWNraW5nICovCi0JaW50ICgqcmVnaXN0ZXJfc2VjdXJpdHkpIChjb25zdCBjaGFyICpuYW1lLAotCQkJCSAgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7Ci0KIAl2b2lkICgqZF9pbnN0YW50aWF0ZSkgKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSk7CiAKIAlpbnQgKCpnZXRwcm9jYXR0cikgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgY2hhciAqKnZhbHVlKTsKQEAgLTE1NjUsNyArMTU1NSw2IEBACiBleHRlcm4gaW50IHNlY3VyaXR5X2luaXQodm9pZCk7CiBleHRlcm4gaW50IHNlY3VyaXR5X21vZHVsZV9lbmFibGUoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7CiBleHRlcm4gaW50IHJlZ2lzdGVyX3NlY3VyaXR5KHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwotZXh0ZXJuIGludCBtb2RfcmVnX3NlY3VyaXR5KGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpOwogZXh0ZXJuIHN0cnVjdCBkZW50cnkgKnNlY3VyaXR5ZnNfY3JlYXRlX2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgbW9kZV90IG1vZGUsCiAJCQkJCSAgICAgc3RydWN0IGRlbnRyeSAqcGFyZW50LCB2b2lkICpkYXRhLAogCQkJCQkgICAgIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgKmZvcHMpOwpAQCAtMTU3Myw3ICsxNTYyLDggQEAKIGV4dGVybiB2b2lkIHNlY3VyaXR5ZnNfcmVtb3ZlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CiAKIC8qIFNlY3VyaXR5IG9wZXJhdGlvbnMgKi8KLWludCBzZWN1cml0eV9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpOworaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIGludCBzZWN1cml0eV9jYXBnZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCiAJCSAgICBrZXJuZWxfY2FwX3QgKmVmZmVjdGl2ZSwKIAkJICAgIGtlcm5lbF9jYXBfdCAqaW5oZXJpdGFibGUsCkBAIC0xNjA2LDYgKzE1OTYsNyBAQAogdm9pZCBzZWN1cml0eV9zYl9mcmVlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50IHNlY3VyaXR5X3NiX2NvcHlfZGF0YShjaGFyICpvcmlnLCBjaGFyICpjb3B5KTsKIGludCBzZWN1cml0eV9zYl9rZXJuX21vdW50KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHZvaWQgKmRhdGEpOworaW50IHNlY3VyaXR5X3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwogaW50IHNlY3VyaXR5X3NiX3N0YXRmcyhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwogaW50IHNlY3VyaXR5X3NiX21vdW50KGNoYXIgKmRldl9uYW1lLCBzdHJ1Y3QgcGF0aCAqcGF0aCwKIAkJICAgICAgY2hhciAqdHlwZSwgdW5zaWduZWQgbG9uZyBmbGFncywgdm9pZCAqZGF0YSk7CkBAIC0xNjE3LDggKzE2MDgsNiBAQAogdm9pZCBzZWN1cml0eV9zYl9wb3N0X2FkZG1vdW50KHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgcGF0aCAqbW91bnRwb2ludCk7CiBpbnQgc2VjdXJpdHlfc2JfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwgc3RydWN0IHBhdGggKm5ld19wYXRoKTsKIHZvaWQgc2VjdXJpdHlfc2JfcG9zdF9waXZvdHJvb3Qoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpOwotaW50IHNlY3VyaXR5X3NiX2dldF9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiBpbnQgc2VjdXJpdHlfc2Jfc2V0X21udF9vcHRzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cyk7CiB2b2lkIHNlY3VyaXR5X3NiX2Nsb25lX21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqb2xkc2IsCiAJCQkJc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYik7CkBAIC0xNzU1LDkgKzE3NDQsMTEgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQorc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcGFyZW50LAorCQkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwKKwkJCQkgIHVuc2lnbmVkIGludCBtb2RlKQogewotCXJldHVybiBjYXBfcHRyYWNlKHBhcmVudCwgY2hpbGQpOworCXJldHVybiBjYXBfcHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9jYXBnZXQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsCkBAIC0xODgxLDYgKzE4NzIsMTIgQEAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfc2Jfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwKKwkJCQkJICAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGlubGluZSBpbnQgc2VjdXJpdHlfc2Jfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlyZXR1cm4gMDsKQEAgLTE5MjcsMTIgKzE5MjQsNiBAQAogc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X3NiX3Bvc3RfcGl2b3Ryb290KHN0cnVjdCBwYXRoICpvbGRfcGF0aCwKIAkJCQkJICAgICAgc3RydWN0IHBhdGggKm5ld19wYXRoKQogeyB9Ci1zdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9zYl9nZXRfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQkJICAgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQotewotCXNlY3VyaXR5X2luaXRfbW50X29wdHMob3B0cyk7Ci0JcmV0dXJuIDA7Ci19CiAKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCQkgICBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3JlLmggYi9pbmNsdWRlL2xpbnV4L3NlcmlhbF9jb3JlLmgKaW5kZXggZDMyMTIzYS4uZDhmMzFkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zZXJpYWxfY29yZS5oCisrKyBiL2luY2x1ZGUvbGludXgvc2VyaWFsX2NvcmUuaApAQCAtMTkyLDYgKzE5Miw3IEBACiAJdm9pZAkJKCpzaHV0ZG93bikoc3RydWN0IHVhcnRfcG9ydCAqKTsKIAl2b2lkCQkoKnNldF90ZXJtaW9zKShzdHJ1Y3QgdWFydF9wb3J0ICosIHN0cnVjdCBrdGVybWlvcyAqbmV3LAogCQkJCSAgICAgICBzdHJ1Y3Qga3Rlcm1pb3MgKm9sZCk7CisJdm9pZAkJKCpzZXRfbGRpc2MpKHN0cnVjdCB1YXJ0X3BvcnQgKik7CiAJdm9pZAkJKCpwbSkoc3RydWN0IHVhcnRfcG9ydCAqLCB1bnNpZ25lZCBpbnQgc3RhdGUsCiAJCQkgICAgICB1bnNpZ25lZCBpbnQgb2xkc3RhdGUpOwogCWludAkJKCpzZXRfd2FrZSkoc3RydWN0IHVhcnRfcG9ydCAqLCB1bnNpZ25lZCBpbnQgc3RhdGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbGFiLmggYi9pbmNsdWRlL2xpbnV4L3NsYWIuaAppbmRleCA4MDVlZDRiLi45YWE5MGE2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NsYWIuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NsYWIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBXcml0dGVuIGJ5IE1hcmsgSGVtbWVudCwgMTk5NiAobWFya2hlQG5leHRkLmRlbW9uLmNvLnVrKS4KICAqCi0gKiAoQykgU0dJIDIwMDYsIENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPgorICogKEMpIFNHSSAyMDA2LCBDaHJpc3RvcGggTGFtZXRlcgogICogCUNsZWFuZWQgdXAgYW5kIHJlc3RydWN0dXJlZCB0byBlYXNlIHRoZSBhZGRpdGlvbiBvZiBhbHRlcm5hdGl2ZQogICogCWltcGxlbWVudGF0aW9ucyBvZiBTTEFCIGFsbG9jYXRvcnMuCiAgKi8KQEAgLTI3Niw2ICsyNzYsMTcgQEAKIAlyZXR1cm4ga21hbGxvYyhzaXplLCBmbGFncyB8IF9fR0ZQX1pFUk8pOwogfQogCisvKioKKyAqIGt6YWxsb2Nfbm9kZSAtIGFsbG9jYXRlIHplcm9lZCBtZW1vcnkgZnJvbSBhIHBhcnRpY3VsYXIgbWVtb3J5IG5vZGUuCisgKiBAc2l6ZTogaG93IG1hbnkgYnl0ZXMgb2YgbWVtb3J5IGFyZSByZXF1aXJlZC4KKyAqIEBmbGFnczogdGhlIHR5cGUgb2YgbWVtb3J5IHRvIGFsbG9jYXRlIChzZWUga21hbGxvYykuCisgKiBAbm9kZTogbWVtb3J5IG5vZGUgZnJvbSB3aGljaCB0byBhbGxvY2F0ZQorICovCitzdGF0aWMgaW5saW5lIHZvaWQgKmt6YWxsb2Nfbm9kZShzaXplX3Qgc2l6ZSwgZ2ZwX3QgZmxhZ3MsIGludCBub2RlKQoreworCXJldHVybiBrbWFsbG9jX25vZGUoc2l6ZSwgZmxhZ3MgfCBfX0dGUF9aRVJPLCBub2RlKTsKK30KKwogI2lmZGVmIENPTkZJR19TTEFCSU5GTwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBzbGFiaW5mb19vcDsKIHNzaXplX3Qgc2xhYmluZm9fd3JpdGUoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciBfX3VzZXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NsdWJfZGVmLmggYi9pbmNsdWRlL2xpbnV4L3NsdWJfZGVmLmgKaW5kZXggNzFlNDNhMS4uZDExN2VhMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zbHViX2RlZi5oCisrKyBiL2luY2x1ZGUvbGludXgvc2x1Yl9kZWYuaApAQCAtNCw3ICs0LDcgQEAKIC8qCiAgKiBTTFVCIDogQSBTbGFiIGFsbG9jYXRvciB3aXRob3V0IG9iamVjdCBxdWV1ZXMuCiAgKgotICogKEMpIDIwMDcgU0dJLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIChDKSAyMDA3IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIKICAqLwogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CkBAIC0xMzcsMTAgKzEzNywxMiBAQAogCWlmIChzaXplIDw9IEtNQUxMT0NfTUlOX1NJWkUpCiAJCXJldHVybiBLTUFMTE9DX1NISUZUX0xPVzsKIAorI2lmIEtNQUxMT0NfTUlOX1NJWkUgPD0gNjQKIAlpZiAoc2l6ZSA+IDY0ICYmIHNpemUgPD0gOTYpCiAJCXJldHVybiAxOwogCWlmIChzaXplID4gMTI4ICYmIHNpemUgPD0gMTkyKQogCQlyZXR1cm4gMjsKKyNlbmRpZgogCWlmIChzaXplIDw9ICAgICAgICAgIDgpIHJldHVybiAzOwogCWlmIChzaXplIDw9ICAgICAgICAgMTYpIHJldHVybiA0OwogCWlmIChzaXplIDw9ICAgICAgICAgMzIpIHJldHVybiA1OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbTUwMS5oIGIvaW5jbHVkZS9saW51eC9zbTUwMS5oCmluZGV4IGJjYTEzNDUuLjk1YzFjMzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc201MDEuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NtNTAxLmgKQEAgLTcxLDggKzcxLDggQEAKICNkZWZpbmUgU001MDFGQl9GTEFHX0RJU0FCTEVfQVRfRVhJVAkoMTw8MSkKICNkZWZpbmUgU001MDFGQl9GTEFHX1VTRV9IV0NVUlNPUgkoMTw8MikKICNkZWZpbmUgU001MDFGQl9GTEFHX1VTRV9IV0FDQ0VMCSgxPDwzKQotI2RlZmluZSBTTTUwMUZCX0ZMQUdfUEFORUxfVVNFX0ZQRU4JKDE8PDQpCi0jZGVmaW5lIFNNNTAxRkJfRkxBR19QQU5FTF9VU0VfVkJJQVNFTgkoMTw8NSkKKyNkZWZpbmUgU001MDFGQl9GTEFHX1BBTkVMX05PX0ZQRU4JKDE8PDQpCisjZGVmaW5lIFNNNTAxRkJfRkxBR19QQU5FTF9OT19WQklBU0VOCSgxPDw1KQogCiBzdHJ1Y3Qgc201MDFfcGxhdGRhdGFfZmJzdWIgewogCXN0cnVjdCBmYl92aWRlb21vZGUJKmRlZl9tb2RlOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oIGIvaW5jbHVkZS9saW51eC9zbXBfbG9jay5oCmluZGV4IGFhYjNhNGMuLjgxM2JlNTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc21wX2xvY2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3NtcF9sb2NrLmgKQEAgLTI3LDExICsyNywyNCBAQAogZXh0ZXJuIHZvaWQgX19sb2NrZnVuYyBsb2NrX2tlcm5lbCh2b2lkKQlfX2FjcXVpcmVzKGtlcm5lbF9sb2NrKTsKIGV4dGVybiB2b2lkIF9fbG9ja2Z1bmMgdW5sb2NrX2tlcm5lbCh2b2lkKQlfX3JlbGVhc2VzKGtlcm5lbF9sb2NrKTsKIAorLyoKKyAqIFZhcmlvdXMgbGVnYWN5IGRyaXZlcnMgZG9uJ3QgcmVhbGx5IG5lZWQgdGhlIEJLTCBpbiBhIHNwZWNpZmljCisgKiBmdW5jdGlvbiwgYnV0IHRoZXkgKmRvKiBuZWVkIHRvIGtub3cgdGhhdCB0aGUgQktMIGJlY2FtZSBhdmFpbGFibGUuCisgKiBUaGlzIGZ1bmN0aW9uIGp1c3QgYXZvaWRzIHdyYXBwaW5nIGEgYnVuY2ggb2YgbG9jay91bmxvY2sgcGFpcnMKKyAqIGFyb3VuZCBjb2RlIHdoaWNoIGRvZXNuJ3QgcmVhbGx5IG5lZWQgaXQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBjeWNsZV9rZXJuZWxfbG9jayh2b2lkKQoreworCWxvY2tfa2VybmVsKCk7CisJdW5sb2NrX2tlcm5lbCgpOworfQorCiAjZWxzZQogCiAjZGVmaW5lIGxvY2tfa2VybmVsKCkJCQkJZG8geyB9IHdoaWxlKDApCiAjZGVmaW5lIHVubG9ja19rZXJuZWwoKQkJCQlkbyB7IH0gd2hpbGUoMCkKICNkZWZpbmUgcmVsZWFzZV9rZXJuZWxfbG9jayh0YXNrKQkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGN5Y2xlX2tlcm5lbF9sb2NrKCkJCQlkbyB7IH0gd2hpbGUoMCkKICNkZWZpbmUgcmVhY3F1aXJlX2tlcm5lbF9sb2NrKHRhc2spCQkwCiAjZGVmaW5lIGtlcm5lbF9sb2NrZWQoKQkJCQkxCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc3BpL21tY19zcGkuaCBiL2luY2x1ZGUvbGludXgvc3BpL21tY19zcGkuaAppbmRleCBlOWJiZTNlLi5kNWNhNzhiIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NwaS9tbWNfc3BpLmgKKysrIGIvaW5jbHVkZS9saW51eC9zcGkvbW1jX3NwaS5oCkBAIC0xLDYgKzEsOCBAQAogI2lmbmRlZiBfX0xJTlVYX1NQSV9NTUNfU1BJX0gKICNkZWZpbmUgX19MSU5VWF9TUElfTU1DX1NQSV9ICiAKKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKwogc3RydWN0IGRldmljZTsKIHN0cnVjdCBtbWNfaG9zdDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zc2Ivc3NiX2RyaXZlcl9naWdlLmggYi9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaAppbmRleCAwMWZiZGY1Li45NDJlMzg3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L3NzYi9zc2JfZHJpdmVyX2dpZ2UuaApAQCAtMTAwLDcgKzEwMCw3IEBACiAvKiBHZXQgdGhlIGRldmljZSBNQUMgYWRkcmVzcyAqLwogc3RhdGljIGlubGluZSB2b2lkIHNzYl9naWdlX2dldF9tYWNhZGRyKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCB1OCAqbWFjYWRkcikKIHsKLSNpZmRlZiBDT05GSUdfQkNNOTQ3WFgKKyNpZmRlZiBDT05GSUdfQkNNNDdYWAogCWNoYXIgKnJlcyA9IG52cmFtX2dldCgiZXQwbWFjYWRkciIpOwogCWlmIChyZXMpCiAJCW1lbWNweShtYWNhZGRyLCByZXMsIDYpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90Y3AuaCBiL2luY2x1ZGUvbGludXgvdGNwLmgKaW5kZXggMThlNjJlMy4uYjMxYjZiNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90Y3AuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RjcC5oCkBAIC0yMzksMTEgKzIzOSw2IEBACiAJcmV0dXJuIChzdHJ1Y3QgdGNwX3JlcXVlc3Rfc29jayAqKXJlcTsKIH0KIAotc3RydWN0IHRjcF9kZWZlcnJlZF9hY2NlcHRfaW5mbyB7Ci0Jc3RydWN0IHNvY2sgKmxpc3Rlbl9zazsKLQlzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXF1ZXN0OwotfTsKLQogc3RydWN0IHRjcF9zb2NrIHsKIAkvKiBpbmV0X2Nvbm5lY3Rpb25fc29jayBoYXMgdG8gYmUgdGhlIGZpcnN0IG1lbWJlciBvZiB0Y3Bfc29jayAqLwogCXN0cnVjdCBpbmV0X2Nvbm5lY3Rpb25fc29jawlpbmV0X2Nvbm47CkBAIC0zNzksOCArMzc0LDYgQEAKIAl1bnNpZ25lZCBpbnQJCWtlZXBhbGl2ZV9pbnR2bDsgIC8qIHRpbWUgaW50ZXJ2YWwgYmV0d2VlbiBrZWVwIGFsaXZlIHByb2JlcyAqLwogCWludAkJCWxpbmdlcjI7CiAKLQlzdHJ1Y3QgdGNwX2RlZmVycmVkX2FjY2VwdF9pbmZvIGRlZmVyX3RjcF9hY2NlcHQ7Ci0KIAl1bnNpZ25lZCBsb25nIGxhc3Rfc3lucV9vdmVyZmxvdzsgCiAKIAl1MzIJdHNvX2RlZmVycmVkOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90aGVybWFsLmggYi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAppbmRleCAwNmQzZTZlLi45MTc3MDdlIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RoZXJtYWwuaApAQCAtNjYsOCArNjYsNyBAQAogCQkJCSgobG9uZyl0LTI3MzIrNSkvMTAgOiAoKGxvbmcpdC0yNzMyLTUpLzEwKQogI2RlZmluZSBDRUxTSVVTX1RPX0tFTFZJTih0KQkoKHQpKjEwKzI3MzIpCiAKLSNpZiBkZWZpbmVkKENPTkZJR19IV01PTikgfHwJXAotCShkZWZpbmVkKENPTkZJR19IV01PTl9NT0RVTEUpICYmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfTU9EVUxFKSkKKyNpZiBkZWZpbmVkKENPTkZJR19USEVSTUFMX0hXTU9OKQogLyogdGhlcm1hbCB6b25lIGRldmljZXMgd2l0aCB0aGUgc2FtZSB0eXBlIHNoYXJlIG9uZSBod21vbiBkZXZpY2UgKi8KIHN0cnVjdCB0aGVybWFsX2h3bW9uX2RldmljZSB7CiAJY2hhciB0eXBlW1RIRVJNQUxfTkFNRV9MRU5HVEhdOwpAQCAtOTQsOCArOTMsNyBAQAogCXN0cnVjdCBpZHIgaWRyOwogCXN0cnVjdCBtdXRleCBsb2NrOwkvKiBwcm90ZWN0IGNvb2xpbmcgZGV2aWNlcyBsaXN0ICovCiAJc3RydWN0IGxpc3RfaGVhZCBub2RlOwotI2lmIGRlZmluZWQoQ09ORklHX0hXTU9OKSB8fAlcCi0JKGRlZmluZWQoQ09ORklHX0hXTU9OX01PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfVEhFUk1BTF9NT0RVTEUpKQorI2lmIGRlZmluZWQoQ09ORklHX1RIRVJNQUxfSFdNT04pCiAJc3RydWN0IGxpc3RfaGVhZCBod21vbl9ub2RlOwogCXN0cnVjdCB0aGVybWFsX2h3bW9uX2RldmljZSAqaHdtb247CiAJc3RydWN0IHRoZXJtYWxfaHdtb25fYXR0ciB0ZW1wX2lucHV0OwkvKiBod21vbiBzeXMgYXR0ciAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90aW1lLmggYi9pbmNsdWRlL2xpbnV4L3RpbWUuaAppbmRleCBkMzJlZjBhLi5lMTUyMDZhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RpbWUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3RpbWUuaApAQCAtNiw2ICs2LDcgQEAKICNpZmRlZiBfX0tFUk5FTF9fCiAjIGluY2x1ZGUgPGxpbnV4L2NhY2hlLmg+CiAjIGluY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KKyMgaW5jbHVkZSA8bGludXgvbWF0aDY0Lmg+CiAjZW5kaWYKIAogI2lmbmRlZiBfU1RSVUNUX1RJTUVTUEVDCkBAIC0xNjksMTggKzE3MCwxMyBAQAogICogdGltZXNwZWNfYWRkX25zIC0gQWRkcyBuYW5vc2Vjb25kcyB0byBhIHRpbWVzcGVjCiAgKiBAYToJCXBvaW50ZXIgdG8gdGltZXNwZWMgdG8gYmUgaW5jcmVtZW50ZWQKICAqIEBuczoJCXVuc2lnbmVkIG5hbm9zZWNvbmRzIHZhbHVlIHRvIGJlIGFkZGVkCisgKgorICogVGhpcyBtdXN0IGFsd2F5cyBiZSBpbmxpbmVkIGJlY2F1c2UgaXRzIHVzZWQgZnJvbSB0aGUgeDg2LTY0IHZkc28sCisgKiB3aGljaCBjYW5ub3QgY2FsbCBvdGhlciBrZXJuZWwgZnVuY3Rpb25zLgogICovCi1zdGF0aWMgaW5saW5lIHZvaWQgdGltZXNwZWNfYWRkX25zKHN0cnVjdCB0aW1lc3BlYyAqYSwgdTY0IG5zKQorc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIHRpbWVzcGVjX2FkZF9ucyhzdHJ1Y3QgdGltZXNwZWMgKmEsIHU2NCBucykKIHsKLQlucyArPSBhLT50dl9uc2VjOwotCXdoaWxlKHVubGlrZWx5KG5zID49IE5TRUNfUEVSX1NFQykpIHsKLQkJLyogVGhlIGZvbGxvd2luZyBhc20oKSBwcmV2ZW50cyB0aGUgY29tcGlsZXIgZnJvbQotCQkgKiBvcHRpbWlzaW5nIHRoaXMgbG9vcCBpbnRvIGEgbW9kdWxvIG9wZXJhdGlvbi4gICovCi0JCWFzbSgiIiA6ICIrciIobnMpKTsKLQotCQlucyAtPSBOU0VDX1BFUl9TRUM7Ci0JCWEtPnR2X3NlYysrOwotCX0KKwlhLT50dl9zZWMgKz0gX19pdGVyX2Rpdl91NjRfcmVtKGEtPnR2X25zZWMgKyBucywgTlNFQ19QRVJfU0VDLCAmbnMpOwogCWEtPnR2X25zZWMgPSBuczsKIH0KICNlbmRpZiAvKiBfX0tFUk5FTF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmggYi9pbmNsdWRlL2xpbnV4L3RvcG9sb2d5LmgKaW5kZXggNGJiNzA3NC4uMjRmM2QyMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90b3BvbG9neS5oCisrKyBiL2luY2x1ZGUvbGludXgvdG9wb2xvZ3kuaApAQCAtMTY2LDcgKzE2Niw5IEBACiAJLmJ1c3lfaWR4CQk9IDMsCQkJXAogCS5pZGxlX2lkeAkJPSAzLAkJCVwKIAkuZmxhZ3MJCQk9IFNEX0xPQURfQkFMQU5DRQlcCi0JCQkJfCBTRF9TRVJJQUxJWkUsCVwKKwkJCQl8IFNEX0JBTEFOQ0VfTkVXSURMRQlcCisJCQkJfCBTRF9XQUtFX0FGRklORQlcCisJCQkJfCBTRF9TRVJJQUxJWkUsCQlcCiAJLmxhc3RfYmFsYW5jZQkJPSBqaWZmaWVzLAkJXAogCS5iYWxhbmNlX2ludGVydmFsCT0gNjQsCQkJXAogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90dHkuaCBiL2luY2x1ZGUvbGludXgvdHR5LmgKaW5kZXggN2Y3MTIxZi4uMzI0YTNiMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90dHkuaAorKysgYi9pbmNsdWRlL2xpbnV4L3R0eS5oCkBAIC0zNiw3ICszNiw3IEBACiAjZGVmaW5lIE5fNlBBQ0sJCTcKICNkZWZpbmUgTl9NQVNDCQk4CS8qIFJlc2VydmVkIGZvciBNb2JpdGV4IG1vZHVsZSA8a2F6QGNhZmUubmV0PiAqLwogI2RlZmluZSBOX1IzOTY0CQk5CS8qIFJlc2VydmVkIGZvciBTaW1hdGljIFIzOTY0IG1vZHVsZSAqLwotI2RlZmluZSBOX1BST0ZJQlVTX0ZETAkxMAkvKiBSZXNlcnZlZCBmb3IgUHJvZmlidXMgPERhdmVAbXZoaS5jb20+ICovCisjZGVmaW5lIE5fUFJPRklCVVNfRkRMCTEwCS8qIFJlc2VydmVkIGZvciBQcm9maWJ1cyAqLwogI2RlZmluZSBOX0lSREEJCTExCS8qIExpbnV4IElyRGEgLSBodHRwOi8vaXJkYS5zb3VyY2Vmb3JnZS5uZXQvICovCiAjZGVmaW5lIE5fU01TQkxPQ0sJMTIJLyogU01TIGJsb2NrIG1vZGUgLSBmb3IgdGFsa2luZyB0byBHU00gZGF0YSAqLwogCQkJCS8qIGNhcmRzIGFib3V0IFNNUyBtZXNzYWdlcyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC90dHlfZHJpdmVyLmggYi9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaAppbmRleCA1OWYxYzBiLi5kMmEwMDM1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaAorKysgYi9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaApAQCAtMjcsOCArMjcsNyBAQAogICogCVRoaXMgcm91dGluZSBpcyBjYWxsZWQgYnkgdGhlIGtlcm5lbCB0byB3cml0ZSBhIHNlcmllcyBvZgogICogCWNoYXJhY3RlcnMgdG8gdGhlIHR0eSBkZXZpY2UuICBUaGUgY2hhcmFjdGVycyBtYXkgY29tZSBmcm9tCiAgKiAJdXNlciBzcGFjZSBvciBrZXJuZWwgc3BhY2UuICBUaGlzIHJvdXRpbmUgd2lsbCByZXR1cm4gdGhlCi0gKgludW1iZXIgb2YgY2hhcmFjdGVycyBhY3R1YWxseSBhY2NlcHRlZCBmb3Igd3JpdGluZy4gIFRoaXMKLSAqCXJvdXRpbmUgaXMgbWFuZGF0b3J5LgorICoJbnVtYmVyIG9mIGNoYXJhY3RlcnMgYWN0dWFsbHkgYWNjZXB0ZWQgZm9yIHdyaXRpbmcuCiAgKgogICoJT3B0aW9uYWw6IFJlcXVpcmVkIGZvciB3cml0YWJsZSBkZXZpY2VzLgogICoKQEAgLTEzNCw3ICsxMzMsNyBAQAogICogCVRoaXMgcm91dGluZSBub3RpZmllcyB0aGUgdHR5IGRyaXZlciB0aGF0IGl0IHNob3VsZCBoYW5ndXAgdGhlCiAgKiAJdHR5IGRldmljZS4KICAqCi0gKglSZXF1aXJlZDoKKyAqCU9wdGlvbmFsOgogICoKICAqIHZvaWQgKCpicmVha19jdGwpKHN0cnVjdCB0dHlfc3R1Y3QgKnR0eSwgaW50IHN0YXRlKTsKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3R5cGVzLmggYi9pbmNsdWRlL2xpbnV4L3R5cGVzLmgKaW5kZXggOWRjMjM0Ni4uZDRhOWNlNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC90eXBlcy5oCisrKyBiL2luY2x1ZGUvbGludXgvdHlwZXMuaApAQCAtMTk3LDggKzE5Nyw2IEBACiB0eXBlZGVmIHUzMiByZXNvdXJjZV9zaXplX3Q7CiAjZW5kaWYKIAotI2VuZGlmCS8qIF9fS0VSTkVMX18gKi8KLQogc3RydWN0IHVzdGF0IHsKIAlfX2tlcm5lbF9kYWRkcl90CWZfdGZyZWU7CiAJX19rZXJuZWxfaW5vX3QJCWZfdGlub2RlOwpAQCAtMjA2LDQgKzIwNCw2IEBACiAJY2hhcgkJCWZfZnBhY2tbNl07CiB9OwogCisjZW5kaWYJLyogX19LRVJORUxfXyAqLworCiAjZW5kaWYgLyogX0xJTlVYX1RZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlkZW9kZXYyLmggYi9pbmNsdWRlL2xpbnV4L3ZpZGVvZGV2Mi5oCmluZGV4IGMxNDExMTguLjRhNTM1ZWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdmlkZW9kZXYyLmgKKysrIGIvaW5jbHVkZS9saW51eC92aWRlb2RldjIuaApAQCAtODY1LDkgKzg2NSw5IEBACiAjZGVmaW5lIFY0TDJfQ0lEX0hGTElQCQkJKFY0TDJfQ0lEX0JBU0UrMjApCiAjZGVmaW5lIFY0TDJfQ0lEX1ZGTElQCQkJKFY0TDJfQ0lEX0JBU0UrMjEpCiAKLS8qIERlcHJlY2F0ZWQsIHVzZSBWNEwyX0NJRF9QQU5fUkVTRVQgYW5kIFY0TDJfQ0lEX1RJTFRfUkVTRVQgKi8KLSNkZWZpbmUgVjRMMl9DSURfSENFTlRFUl9ERVBSRUNBVEVECShWNEwyX0NJRF9CQVNFKzIyKQotI2RlZmluZSBWNEwyX0NJRF9WQ0VOVEVSX0RFUFJFQ0FURUQJKFY0TDJfQ0lEX0JBU0UrMjMpCisvKiBEZXByZWNhdGVkOyB1c2UgVjRMMl9DSURfUEFOX1JFU0VUIGFuZCBWNEwyX0NJRF9USUxUX1JFU0VUICovCisjZGVmaW5lIFY0TDJfQ0lEX0hDRU5URVIJCShWNEwyX0NJRF9CQVNFKzIyKQorI2RlZmluZSBWNEwyX0NJRF9WQ0VOVEVSCQkoVjRMMl9DSURfQkFTRSsyMykKIAogI2RlZmluZSBWNEwyX0NJRF9QT1dFUl9MSU5FX0ZSRVFVRU5DWQkoVjRMMl9DSURfQkFTRSsyNCkKIGVudW0gdjRsMl9wb3dlcl9saW5lX2ZyZXF1ZW5jeSB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3ZpcnRpb19ibGsuaCBiL2luY2x1ZGUvbGludXgvdmlydGlvX2Jsay5oCmluZGV4IGQ0Njk1YTMuLjVmNzlhNWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlvX2Jsay5oCisrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvX2Jsay5oCkBAIC0xMCwxOCArMTAsMTkgQEAKICNkZWZpbmUgVklSVElPX0JMS19GX1NJWkVfTUFYCTEJLyogSW5kaWNhdGVzIG1heGltdW0gc2VnbWVudCBzaXplICovCiAjZGVmaW5lIFZJUlRJT19CTEtfRl9TRUdfTUFYCTIJLyogSW5kaWNhdGVzIG1heGltdW0gIyBvZiBzZWdtZW50cyAqLwogI2RlZmluZSBWSVJUSU9fQkxLX0ZfR0VPTUVUUlkJNAkvKiBMZWdhY3kgZ2VvbWV0cnkgYXZhaWxhYmxlICAqLworI2RlZmluZSBWSVJUSU9fQkxLX0ZfUk8JCTUJLyogRGlzayBpcyByZWFkLW9ubHkgKi8KIAogc3RydWN0IHZpcnRpb19ibGtfY29uZmlnCiB7CiAJLyogVGhlIGNhcGFjaXR5IChpbiA1MTItYnl0ZSBzZWN0b3JzKS4gKi8KLQlfX2xlNjQgY2FwYWNpdHk7CisJX191NjQgY2FwYWNpdHk7CiAJLyogVGhlIG1heGltdW0gc2VnbWVudCBzaXplIChpZiBWSVJUSU9fQkxLX0ZfU0laRV9NQVgpICovCi0JX19sZTMyIHNpemVfbWF4OworCV9fdTMyIHNpemVfbWF4OwogCS8qIFRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWdtZW50cyAoaWYgVklSVElPX0JMS19GX1NFR19NQVgpICovCi0JX19sZTMyIHNlZ19tYXg7CisJX191MzIgc2VnX21heDsKIAkvKiBnZW9tZXRyeSB0aGUgZGV2aWNlIChpZiBWSVJUSU9fQkxLX0ZfR0VPTUVUUlkpICovCiAJc3RydWN0IHZpcnRpb19ibGtfZ2VvbWV0cnkgewotCQlfX2xlMTYgY3lsaW5kZXJzOworCQlfX3UxNiBjeWxpbmRlcnM7CiAJCV9fdTggaGVhZHM7CiAJCV9fdTggc2VjdG9yczsKIAl9IGdlb21ldHJ5OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC92aXJ0aW9fY29uZmlnLmggYi9pbmNsdWRlL2xpbnV4L3ZpcnRpb19jb25maWcuaAppbmRleCA1MGRiMjQ1Li5mMzY0YmJmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3ZpcnRpb19jb25maWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L3ZpcnRpb19jb25maWcuaApAQCAtMTUsNiArMTUsMTAgQEAKIC8qIFdlJ3ZlIGdpdmVuIHVwIG9uIHRoaXMgZGV2aWNlLiAqLwogI2RlZmluZSBWSVJUSU9fQ09ORklHX1NfRkFJTEVECQkweDgwCiAKKy8qIERvIHdlIGdldCBjYWxsYmFja3Mgd2hlbiB0aGUgcmluZyBpcyBjb21wbGV0ZWx5IHVzZWQsIGV2ZW4gaWYgd2UndmUKKyAqIHN1cHByZXNzZWQgdGhlbT8gKi8KKyNkZWZpbmUgVklSVElPX0ZfTk9USUZZX09OX0VNUFRZCTI0CisKICNpZmRlZiBfX0tFUk5FTF9fCiAjaW5jbHVkZSA8bGludXgvdmlydGlvLmg+CiAKQEAgLTk5LDcgKzEwMyw3IEBACiAgKiBUaGUgcmV0dXJuIHZhbHVlIGlzIC1FTk9FTlQgaWYgdGhlIGZlYXR1cmUgZG9lc24ndCBleGlzdC4gIE90aGVyd2lzZQogICogdGhlIGNvbmZpZyB2YWx1ZSBpcyBjb3BpZWQgaW50byB3aGF0ZXZlciBpcyBwb2ludGVkIHRvIGJ5IHYuICovCiAjZGVmaW5lIHZpcnRpb19jb25maWdfdmFsKHZkZXYsIGZiaXQsIG9mZnNldCwgdikgXAotCXZpcnRpb19jb25maWdfYnVmKCh2ZGV2KSwgKGZiaXQpLCAob2Zmc2V0KSwgKHYpLCBzaXplb2YodikpCisJdmlydGlvX2NvbmZpZ19idWYoKHZkZXYpLCAoZmJpdCksIChvZmZzZXQpLCAodiksIHNpemVvZigqdikpCiAKIHN0YXRpYyBpbmxpbmUgaW50IHZpcnRpb19jb25maWdfYnVmKHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LAogCQkJCSAgICB1bnNpZ25lZCBpbnQgZmJpdCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX25ldC5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKaW5kZXggOTQwNWFhNi4uMzhjMDU3MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKKysrIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fbmV0LmgKQEAgLTM4LDcgKzM4LDcgQEAKICNkZWZpbmUgVklSVElPX05FVF9IRFJfR1NPX0VDTgkJMHg4MAkvLyBUQ1AgaGFzIEVDTiBzZXQKIAlfX3U4IGdzb190eXBlOwogCV9fdTE2IGhkcl9sZW47CQkvKiBFdGhlcm5ldCArIElQICsgdGNwL3VkcCBoZHJzICovCi0JX191MTYgZ3NvX3NpemU7CQkvKiBCeXRlcyB0byBhcHBlbmQgdG8gZ3NvX2hkcl9sZW4gcGVyIGZyYW1lICovCisJX191MTYgZ3NvX3NpemU7CQkvKiBCeXRlcyB0byBhcHBlbmQgdG8gaGRyX2xlbiBwZXIgZnJhbWUgKi8KIAlfX3UxNiBjc3VtX3N0YXJ0OwkvKiBQb3NpdGlvbiB0byBzdGFydCBjaGVja3N1bW1pbmcgZnJvbSAqLwogCV9fdTE2IGNzdW1fb2Zmc2V0OwkvKiBPZmZzZXQgYWZ0ZXIgdGhhdCB0byBwbGFjZSBjaGVja3N1bSAqLwogfTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdmlydGlvX3JuZy5oIGIvaW5jbHVkZS9saW51eC92aXJ0aW9fcm5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMxYWZiNgotLS0gL2Rldi9udWxsCisrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvX3JuZy5oCkBAIC0wLDAgKzEsOCBAQAorI2lmbmRlZiBfTElOVVhfVklSVElPX1JOR19ICisjZGVmaW5lIF9MSU5VWF9WSVJUSU9fUk5HX0gKKyNpbmNsdWRlIDxsaW51eC92aXJ0aW9fY29uZmlnLmg+CisKKy8qIFRoZSBJRCBmb3IgdmlydGlvX3JuZyAqLworI2RlZmluZSBWSVJUSU9fSURfUk5HCTQKKworI2VuZGlmIC8qIF9MSU5VWF9WSVJUSU9fUk5HX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd205N3h4LmggYi9pbmNsdWRlL2xpbnV4L3dtOTd4eC5oCmluZGV4IDRkMTM3MzIuLjZmNjk5NjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvd205N3h4LmgKKysrIGIvaW5jbHVkZS9saW51eC93bTk3eHguaApAQCAtMTAwLDYgKzEwMCw3IEBACiAjZGVmaW5lIFdNOTcxM19BRENTRUxfWQkJMHgwMDA0CS8qIFkgbWVhc3VyZW1lbnQgKi8KICNkZWZpbmUgV005NzEzX0FEQ1NFTF9QUkVTCTB4MDAwOAkvKiBQcmVzc3VyZSBtZWFzdXJlbWVudCAqLwogI2RlZmluZSBXTTk3MTNfQ09PCQkweDAwMDEJLyogZW5hYmxlIGNvb3JkaW5hdGUgbW9kZSAqLworI2RlZmluZSBXTTk3MTNfNDVXCQkweDEwMDAgIC8qIHNldCBmb3IgNSB3aXJlIHBhbmVsICovCiAjZGVmaW5lIFdNOTcxM19QREVOCQkweDA4MDAJLyogbWVhc3VyZSBvbmx5IHdoZW4gcGVuIGRvd24gKi8KICNkZWZpbmUgV005NzEzX0FEQ1NFTF9NQVNLCTB4MDBmZQkvKiBBREMgc2VsZWN0aW9uIG1hc2sgKi8KICNkZWZpbmUgV005NzEzX1dBSVQJCTB4MDIwMAkvKiBjb29yZGluYXRlIHdhaXQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvd3JpdGViYWNrLmggYi9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCmluZGV4IGY0NjI0MzkuLjEyYjE1YzUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvd3JpdGViYWNrLmgKKysrIGIvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaApAQCAtNjMsNiArNjMsNyBAQAogCXVuc2lnbmVkIGZvcl93cml0ZXBhZ2VzOjE7CS8qIFRoaXMgaXMgYSB3cml0ZXBhZ2VzKCkgY2FsbCAqLwogCXVuc2lnbmVkIHJhbmdlX2N5Y2xpYzoxOwkvKiByYW5nZV9zdGFydCBpcyBjeWNsaWMgKi8KIAl1bnNpZ25lZCBtb3JlX2lvOjE7CQkvKiBtb3JlIGlvIHRvIGJlIGRpc3BhdGNoZWQgKi8KKwl1bnNpZ25lZCByYW5nZV9jb250OjE7CiB9OwogCiAvKgpAQCAtMTA1LDYgKzEwNiw4IEBACiBleHRlcm4gaW50IGJsb2NrX2R1bXA7CiBleHRlcm4gaW50IGxhcHRvcF9tb2RlOwogCitleHRlcm4gdW5zaWduZWQgbG9uZyBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSh2b2lkKTsKKwogZXh0ZXJuIGludCBkaXJ0eV9yYXRpb19oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCiAJCWxvZmZfdCAqcHBvcyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3hmcm0uaCBiL2luY2x1ZGUvbGludXgveGZybS5oCmluZGV4IDJjYTZiYWUuLmZiMGMyMTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgveGZybS5oCisrKyBiL2luY2x1ZGUvbGludXgveGZybS5oCkBAIC0zMzksNiArMzM5LDcgQEAKICNkZWZpbmUgWEZSTV9TVEFURV9OT1BNVFVESVNDCTQKICNkZWZpbmUgWEZSTV9TVEFURV9XSUxEUkVDVgk4CiAjZGVmaW5lIFhGUk1fU1RBVEVfSUNNUAkJMTYKKyNkZWZpbmUgWEZSTV9TVEFURV9BRl9VTlNQRUMJMzIKIH07CiAKIHN0cnVjdCB4ZnJtX3VzZXJzYV9pZCB7CmRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL2N4MjU4NDAuaCBiL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCmluZGV4IGNkNTk5YWQuLmRiNDMxZDUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCisrKyBiL2luY2x1ZGUvbWVkaWEvY3gyNTg0MC5oCkBAIC0zMiwxMiArMzIsMTYgQEAKIAlDWDI1ODQwX0NPTVBPU0lURTcsCiAJQ1gyNTg0MF9DT01QT1NJVEU4LAogCi0JLyogUy1WaWRlbyBpbnB1dHMgY29uc2lzdCBvZiBvbmUgbHVtYSBpbnB1dCAoSW4xLUluNCkgT1JlZCB3aXRoIG9uZQorCS8qIFMtVmlkZW8gaW5wdXRzIGNvbnNpc3Qgb2Ygb25lIGx1bWEgaW5wdXQgKEluMS1JbjgpIE9SZWQgd2l0aCBvbmUKIAkgICBjaHJvbWEgaW5wdXQgKEluNS1JbjgpICovCiAJQ1gyNTg0MF9TVklERU9fTFVNQTEgPSAweDEwLAogCUNYMjU4NDBfU1ZJREVPX0xVTUEyID0gMHgyMCwKIAlDWDI1ODQwX1NWSURFT19MVU1BMyA9IDB4MzAsCiAJQ1gyNTg0MF9TVklERU9fTFVNQTQgPSAweDQwLAorCUNYMjU4NDBfU1ZJREVPX0xVTUE1ID0gMHg1MCwKKwlDWDI1ODQwX1NWSURFT19MVU1BNiA9IDB4NjAsCisJQ1gyNTg0MF9TVklERU9fTFVNQTcgPSAweDcwLAorCUNYMjU4NDBfU1ZJREVPX0xVTUE4ID0gMHg4MCwKIAlDWDI1ODQwX1NWSURFT19DSFJPTUE0ID0gMHg0MDAsCiAJQ1gyNTg0MF9TVklERU9fQ0hST01BNSA9IDB4NTAwLAogCUNYMjU4NDBfU1ZJREVPX0NIUk9NQTYgPSAweDYwMCwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvaXItY29tbW9uLmggYi9pbmNsdWRlL21lZGlhL2lyLWNvbW1vbi5oCmluZGV4IGJmZWU4YmUuLmI4ZThhYTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbWVkaWEvaXItY29tbW9uLmgKKysrIGIvaW5jbHVkZS9tZWRpYS9pci1jb21tb24uaApAQCAtMTQ2LDYgKzE0Niw3IEBACiBleHRlcm4gSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfcGlubmFjbGVfcGN0dl9oZFtJUl9LRVlUQUJfU0laRV07CiBleHRlcm4gSVJfS0VZVEFCX1RZUEUgaXJfY29kZXNfZ2VuaXVzX3R2Z29fYTExbWNlW0lSX0tFWVRBQl9TSVpFXTsKIGV4dGVybiBJUl9LRVlUQUJfVFlQRSBpcl9jb2Rlc19wb3dlcmNvbG9yX3JlYWxfYW5nZWxbSVJfS0VZVEFCX1NJWkVdOworZXh0ZXJuIElSX0tFWVRBQl9UWVBFIGlyX2NvZGVzX2F2ZXJtZWRpYV9hMTZkW0lSX0tFWVRBQl9TSVpFXTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdjRsMi1kZXYuaCBiL2luY2x1ZGUvbWVkaWEvdjRsMi1kZXYuaAppbmRleCBhODA3ZDJmLi44NTlmN2E2IDEwMDY0NAotLS0gYS9pbmNsdWRlL21lZGlhL3Y0bDItZGV2LmgKKysrIGIvaW5jbHVkZS9tZWRpYS92NGwyLWRldi5oCkBAIC00MCwxMCArNDAsOSBAQAogI2RlZmluZSBWRkxfVFlQRV9WVFgJCTMKIAogLyogIFZpZGVvIHN0YW5kYXJkIGZ1bmN0aW9ucyAgKi8KLWV4dGVybiB1bnNpZ25lZCBpbnQgdjRsMl92aWRlb19zdGRfZnBzKHN0cnVjdCB2NGwyX3N0YW5kYXJkICp2cyk7Ci1leHRlcm4gY2hhciAqdjRsMl9ub3JtX3RvX25hbWUodjRsMl9zdGRfaWQgaWQpOworZXh0ZXJuIGNvbnN0IGNoYXIgKnY0bDJfbm9ybV90b19uYW1lKHY0bDJfc3RkX2lkIGlkKTsKIGV4dGVybiBpbnQgdjRsMl92aWRlb19zdGRfY29uc3RydWN0KHN0cnVjdCB2NGwyX3N0YW5kYXJkICp2cywKLQkJCQkgICAgaW50IGlkLCBjaGFyICpuYW1lKTsKKwkJCQkgICAgaW50IGlkLCBjb25zdCBjaGFyICpuYW1lKTsKIC8qIFByaW50cyB0aGUgaW9jdGwgaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQgKi8KIGV4dGVybiB2b2lkIHY0bF9wcmludGtfaW9jdGwodW5zaWduZWQgaW50IGNtZCk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2FkZHJjb25mLmggYi9pbmNsdWRlL25ldC9hZGRyY29uZi5oCmluZGV4IDBhMmYwMzcuLmJiZDNkNTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2FkZHJjb25mLmgKKysrIGIvaW5jbHVkZS9uZXQvYWRkcmNvbmYuaApAQCAtOTQsNiArOTQsMjggQEAKIGV4dGVybiB2b2lkCQkJYWRkcmNvbmZfbGVhdmVfc29saWN0KHN0cnVjdCBpbmV0Nl9kZXYgKmlkZXYsCiAJCQkJCXN0cnVjdCBpbjZfYWRkciAqYWRkcik7CiAKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBhZGRyY29uZl90aW1lb3V0X2ZpeHVwKHUzMiB0aW1lb3V0LAorCQkJCQkJICAgIHVuc2lnbmVkIHVuaXQpCit7CisJaWYgKHRpbWVvdXQgPT0gMHhmZmZmZmZmZikKKwkJcmV0dXJuIH4wVUw7CisKKwkvKgorCSAqIEF2b2lkIGFyaXRobWV0aWMgb3ZlcmZsb3cuCisJICogQXNzdW1pbmcgdW5pdCBpcyBjb25zdGFudCBhbmQgbm9uLXplcm8sIHRoaXMgImlmIiBzdGF0ZW1lbnQKKwkgKiB3aWxsIGdvIGF3YXkgb24gNjRiaXQgYXJjaHMuCisJICovCisJaWYgKDB4ZmZmZmZmZmUgPiBMT05HX01BWCAvIHVuaXQgJiYgdGltZW91dCA+IExPTkdfTUFYIC8gdW5pdCkKKwkJcmV0dXJuIExPTkdfTUFYIC8gdW5pdDsKKworCXJldHVybiB0aW1lb3V0OworfQorCitzdGF0aWMgaW5saW5lIGludCBhZGRyY29uZl9maW5pdGVfdGltZW91dCh1bnNpZ25lZCBsb25nIHRpbWVvdXQpCit7CisJcmV0dXJuIH50aW1lb3V0OworfQorCiAvKgogICoJSVB2NiBBZGRyZXNzIExhYmVsIHN1YnN5c3RlbSAoYWRkcmxhYmVsLmMpCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2dlbmV0bGluay5oIGIvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmgKaW5kZXggZGVjZGRhNS4uNzQ3YzI1NSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmgKKysrIGIvaW5jbHVkZS9uZXQvZ2VuZXRsaW5rLmgKQEAgLTE2Miw5ICsxNjIsOSBAQAogICogQHNrYjogc29ja2V0IGJ1ZmZlciB0aGUgbWVzc2FnZSBpcyBzdG9yZWQgaW4KICAqIEBoZHI6IGdlbmVyaWMgbmV0bGluayBtZXNzYWdlIGhlYWRlcgogICovCi1zdGF0aWMgaW5saW5lIGludCBnZW5sbXNnX2NhbmNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB2b2lkICpoZHIpCitzdGF0aWMgaW5saW5lIHZvaWQgZ2VubG1zZ19jYW5jZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdm9pZCAqaGRyKQogewotCXJldHVybiBubG1zZ19jYW5jZWwoc2tiLCBoZHIgLSBHRU5MX0hEUkxFTiAtIE5MTVNHX0hEUkxFTik7CisJbmxtc2dfY2FuY2VsKHNrYiwgaGRyIC0gR0VOTF9IRFJMRU4gLSBOTE1TR19IRFJMRU4pOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2luZXRfc29jay5oIGIvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmgKaW5kZXggYTQyY2Q2My4uOWZhYmU1YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmgKKysrIGIvaW5jbHVkZS9uZXQvaW5ldF9zb2NrLmgKQEAgLTE5Nyw0ICsxOTcsMTQgQEAKIAlyZXR1cm4gc2tiLT5ydGFibGUtPnJ0X2lpZjsKIH0KIAorc3RhdGljIGlubGluZSBzdHJ1Y3QgcmVxdWVzdF9zb2NrICppbmV0X3JlcXNrX2FsbG9jKHN0cnVjdCByZXF1ZXN0X3NvY2tfb3BzICpvcHMpCit7CisJc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxID0gcmVxc2tfYWxsb2Mob3BzKTsKKworCWlmIChyZXEgIT0gTlVMTCkKKwkJaW5ldF9yc2socmVxKS0+b3B0ID0gTlVMTDsKKworCXJldHVybiByZXE7Cit9CisKICNlbmRpZgkvKiBfSU5FVF9TT0NLX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwdjYuaCBiL2luY2x1ZGUvbmV0L2lwdjYuaAppbmRleCBlMGE2MTJiLi5mNDIyZjcyIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcHY2LmgKKysrIGIvaW5jbHVkZS9uZXQvaXB2Ni5oCkBAIC0zNjcsNiArMzY3LDEyIEBACiAJCSBhLT5zNl9hZGRyMzJbMl0gfCBhLT5zNl9hZGRyMzJbM10gKSA9PSAwKTsgCiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGlwdjZfYWRkcl9sb29wYmFjayhjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmEpCit7CisJcmV0dXJuICgoYS0+czZfYWRkcjMyWzBdIHwgYS0+czZfYWRkcjMyWzFdIHwKKwkJIGEtPnM2X2FkZHIzMlsyXSB8IChhLT5zNl9hZGRyMzJbM10gXiBodG9ubCgxKSkpID09IDApOworfQorCiBzdGF0aWMgaW5saW5lIGludCBpcHY2X2FkZHJfdjRtYXBwZWQoY29uc3Qgc3RydWN0IGluNl9hZGRyICphKQogewogCXJldHVybiAoKGEtPnM2X2FkZHIzMlswXSB8IGEtPnM2X2FkZHIzMlsxXSB8CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9tYWM4MDIxMS5oIGIvaW5jbHVkZS9uZXQvbWFjODAyMTEuaAppbmRleCBkYWUzZjllLi5iY2QxNjIzIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9tYWM4MDIxMS5oCisrKyBiL2luY2x1ZGUvbmV0L21hYzgwMjExLmgKQEAgLTU5NSw2ICs1OTUsMTUgQEAKIAlBTEdfQ0NNUCwKIH07CiAKKy8qKgorICogZW51bSBpZWVlODAyMTFfa2V5X2xlbiAtIGtleSBsZW5ndGgKKyAqIEBXRVA0MDogV0VQIDUgYnl0ZSBsb25nIGtleQorICogQFdFUDEwNDogV0VQIDEzIGJ5dGUgbG9uZyBrZXkKKyAqLworZW51bSBpZWVlODAyMTFfa2V5X2xlbiB7CisJTEVOX1dFUDQwID0gNSwKKwlMRU5fV0VQMTA0ID0gMTMsCit9OwogCiAvKioKICAqIGVudW0gaWVlZTgwMjExX2tleV9mbGFncyAtIGtleSBmbGFncwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oIGIvaW5jbHVkZS9uZXQvbmV0X25hbWVzcGFjZS5oCmluZGV4IGFhNTQwZTYuLmQ5ZGQwZjcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldF9uYW1lc3BhY2UuaAorKysgYi9pbmNsdWRlL25ldC9uZXRfbmFtZXNwYWNlLmgKQEAgLTk1LDYgKzk1LDExIEBACiAjaWZkZWYgQ09ORklHX05FVF9OUwogZXh0ZXJuIHZvaWQgX19wdXRfbmV0KHN0cnVjdCBuZXQgKm5ldCk7CiAKK3N0YXRpYyBpbmxpbmUgaW50IG5ldF9hbGl2ZShzdHJ1Y3QgbmV0ICpuZXQpCit7CisJcmV0dXJuIG5ldCAmJiBhdG9taWNfcmVhZCgmbmV0LT5jb3VudCk7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5ldCAqZ2V0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJYXRvbWljX2luYygmbmV0LT5jb3VudCk7CkBAIC0xMjUsNiArMTMwLDEyIEBACiAJcmV0dXJuIG5ldDEgPT0gbmV0MjsKIH0KICNlbHNlCisKK3N0YXRpYyBpbmxpbmUgaW50IG5ldF9hbGl2ZShzdHJ1Y3QgbmV0ICpuZXQpCit7CisJcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpbmxpbmUgc3RydWN0IG5ldCAqZ2V0X25ldChzdHJ1Y3QgbmV0ICpuZXQpCiB7CiAJcmV0dXJuIG5ldDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmggYi9pbmNsdWRlL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5oCmluZGV4IGY3MzZlODQuLmY4MGMwZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmgKKysrIGIvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19leHRlbmQuaApAQCAtMTUsNiArMTUsNyBAQAogCiAvKiBFeHRlbnNpb25zOiBvcHRpb25hbCBzdHVmZiB3aGljaCBpc24ndCBwZXJtYW5lbnRseSBpbiBzdHJ1Y3QuICovCiBzdHJ1Y3QgbmZfY3RfZXh0IHsKKwlzdHJ1Y3QgcmN1X2hlYWQgcmN1OwogCXU4IG9mZnNldFtORl9DVF9FWFRfTlVNXTsKIAl1OCBsZW47CiAJY2hhciBkYXRhWzBdOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmV0bGluay5oIGIvaW5jbHVkZS9uZXQvbmV0bGluay5oCmluZGV4IGE1NTA2YzQuLmRmYzM3MDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldGxpbmsuaAorKysgYi9pbmNsdWRlL25ldC9uZXRsaW5rLmgKQEAgLTU1NiwxNCArNTU2LDEyIEBACiAgKiBAc2tiOiBzb2NrZXQgYnVmZmVyIHRoZSBtZXNzYWdlIGlzIHN0b3JlZCBpbgogICogQG1hcms6IG1hcmsgdG8gdHJpbSB0bwogICoKLSAqIFRyaW1zIHRoZSBtZXNzYWdlIHRvIHRoZSBwcm92aWRlZCBtYXJrLiBSZXR1cm5zIC0xLgorICogVHJpbXMgdGhlIG1lc3NhZ2UgdG8gdGhlIHByb3ZpZGVkIG1hcmsuCiAgKi8KLXN0YXRpYyBpbmxpbmUgaW50IG5sbXNnX3RyaW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgdm9pZCAqbWFyaykKK3N0YXRpYyBpbmxpbmUgdm9pZCBubG1zZ190cmltKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHZvaWQgKm1hcmspCiB7CiAJaWYgKG1hcmspCiAJCXNrYl90cmltKHNrYiwgKHVuc2lnbmVkIGNoYXIgKikgbWFyayAtIHNrYi0+ZGF0YSk7Ci0KLQlyZXR1cm4gLTE7CiB9CiAKIC8qKgpAQCAtNTcyLDExICs1NzAsMTEgQEAKICAqIEBubGg6IG5ldGxpbmsgbWVzc2FnZSBoZWFkZXIKICAqCiAgKiBSZW1vdmVzIHRoZSBjb21wbGV0ZSBuZXRsaW5rIG1lc3NhZ2UgaW5jbHVkaW5nIGFsbAotICogYXR0cmlidXRlcyBmcm9tIHRoZSBzb2NrZXQgYnVmZmVyIGFnYWluLiBSZXR1cm5zIC0xLgorICogYXR0cmlidXRlcyBmcm9tIHRoZSBzb2NrZXQgYnVmZmVyIGFnYWluLgogICovCi1zdGF0aWMgaW5saW5lIGludCBubG1zZ19jYW5jZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRyICpubGgpCitzdGF0aWMgaW5saW5lIHZvaWQgbmxtc2dfY2FuY2VsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubG1zZ2hkciAqbmxoKQogewotCXJldHVybiBubG1zZ190cmltKHNrYiwgbmxoKTsKKwlubG1zZ190cmltKHNrYiwgbmxoKTsKIH0KIAogLyoqCkBAIC03NzIsMTIgKzc3MCwxMyBAQAogCQkJCQkgICAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgKnBvbGljeSwKIAkJCQkJICAgIGludCBsZW4pCiB7Ci0JaWYgKG5sYV9sZW4obmxhKSA8IGxlbikKLQkJcmV0dXJuIC0xOwotCWlmIChubGFfbGVuKG5sYSkgPj0gTkxBX0FMSUdOKGxlbikgKyBzaXplb2Yoc3RydWN0IG5sYXR0cikpCi0JCXJldHVybiBubGFfcGFyc2VfbmVzdGVkKHRiLCBtYXh0eXBlLAotCQkJCQlubGFfZGF0YShubGEpICsgTkxBX0FMSUdOKGxlbiksCi0JCQkJCXBvbGljeSk7CisJaW50IG5lc3RlZF9sZW4gPSBubGFfbGVuKG5sYSkgLSBOTEFfQUxJR04obGVuKTsKKworCWlmIChuZXN0ZWRfbGVuIDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKG5lc3RlZF9sZW4gPj0gbmxhX2F0dHJfc2l6ZSgwKSkKKwkJcmV0dXJuIG5sYV9wYXJzZSh0YiwgbWF4dHlwZSwgbmxhX2RhdGEobmxhKSArIE5MQV9BTElHTihsZW4pLAorCQkJCSBuZXN0ZWRfbGVuLCBwb2xpY3kpOwogCW1lbXNldCh0YiwgMCwgc2l6ZW9mKHN0cnVjdCBubGF0dHIgKikgKiAobWF4dHlwZSArIDEpKTsKIAlyZXR1cm4gMDsKIH0KQEAgLTEwNzksMTEgKzEwNzgsMTEgQEAKICAqIEBzdGFydDogY29udGFpbmVyIGF0dHJpYnV0ZQogICoKICAqIFJlbW92ZXMgdGhlIGNvbnRhaW5lciBhdHRyaWJ1dGUgYW5kIGluY2x1ZGluZyBhbGwgbmVzdGVkCi0gKiBhdHRyaWJ1dGVzLiBSZXR1cm5zIC0xLgorICogYXR0cmlidXRlcy4gUmV0dXJucyAtRU1TR1NJWkUKICAqLwotc3RhdGljIGlubGluZSBpbnQgbmxhX25lc3RfY2FuY2VsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBubGF0dHIgKnN0YXJ0KQorc3RhdGljIGlubGluZSB2b2lkIG5sYV9uZXN0X2NhbmNlbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmxhdHRyICpzdGFydCkKIHsKLQlyZXR1cm4gbmxtc2dfdHJpbShza2IsIHN0YXJ0KTsKKwlubG1zZ190cmltKHNrYiwgc3RhcnQpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3JlcXVlc3Rfc29jay5oIGIvaW5jbHVkZS9uZXQvcmVxdWVzdF9zb2NrLmgKaW5kZXggYjIyMGI1Zi4uMGM5NmU3YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcmVxdWVzdF9zb2NrLmgKKysrIGIvaW5jbHVkZS9uZXQvcmVxdWVzdF9zb2NrLmgKQEAgLTExNSw4ICsxMTUsOCBAQAogCXN0cnVjdCByZXF1ZXN0X3NvY2sJKnJza3FfYWNjZXB0X2hlYWQ7CiAJc3RydWN0IHJlcXVlc3Rfc29jawkqcnNrcV9hY2NlcHRfdGFpbDsKIAlyd2xvY2tfdAkJc3luX3dhaXRfbG9jazsKLQl1MTYJCQlyc2txX2RlZmVyX2FjY2VwdDsKLQkvKiAyIGJ5dGVzIGhvbGUsIHRyeSB0byBwYWNrICovCisJdTgJCQlyc2txX2RlZmVyX2FjY2VwdDsKKwkvKiAzIGJ5dGVzIGhvbGUsIHRyeSB0byBwYWNrICovCiAJc3RydWN0IGxpc3Rlbl9zb2NrCSpsaXN0ZW5fb3B0OwogfTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaCBiL2luY2x1ZGUvbmV0L3NjaF9nZW5lcmljLmgKaW5kZXggYWI1MDJlYy4uYTg3ZmMwMyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAorKysgYi9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oCkBAIC0xNzgsNyArMTc4LDcgQEAKIGV4dGVybiBzdHJ1Y3QgUWRpc2MgKnFkaXNjX2NyZWF0ZV9kZmx0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJICAgICAgIHN0cnVjdCBRZGlzY19vcHMgKm9wcywgdTMyIHBhcmVudGlkKTsKIGV4dGVybiB2b2lkIHRjZl9kZXN0cm95KHN0cnVjdCB0Y2ZfcHJvdG8gKnRwKTsKLWV4dGVybiB2b2lkIHRjZl9kZXN0cm95X2NoYWluKHN0cnVjdCB0Y2ZfcHJvdG8gKmZsKTsKK2V4dGVybiB2b2lkIHRjZl9kZXN0cm95X2NoYWluKHN0cnVjdCB0Y2ZfcHJvdG8gKipmbCk7CiAKIHN0YXRpYyBpbmxpbmUgaW50IF9fcWRpc2NfZW5xdWV1ZV90YWlsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLAogCQkJCSAgICAgICBzdHJ1Y3Qgc2tfYnVmZl9oZWFkICpsaXN0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvc2N0cC9zdHJ1Y3RzLmggYi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaAppbmRleCAwY2UwNDQzLi43ZjI1MTk1IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaAorKysgYi9pbmNsdWRlL25ldC9zY3RwL3N0cnVjdHMuaApAQCAtNTQ4LDcgKzU0OCw4IEBACiAJc3RydWN0IGRzdF9lbnRyeSAqKCpnZXRfZHN0KQkoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkJCSB1bmlvbiBzY3RwX2FkZHIgKmRhZGRyLAogCQkJCQkgdW5pb24gc2N0cF9hZGRyICpzYWRkcik7Ci0Jdm9pZAkJKCpnZXRfc2FkZHIpCShzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKKwl2b2lkCQkoKmdldF9zYWRkcikJKHN0cnVjdCBzY3RwX3NvY2sgKnNrLAorCQkJCQkgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkJCSBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAJCQkJCSB1bmlvbiBzY3RwX2FkZHIgKmRhZGRyLAogCQkJCQkgdW5pb24gc2N0cF9hZGRyICpzYWRkcik7CkBAIC01ODcsNiArNTg4LDcgQEAKIAlpbnQJCSgqaXNfY2UpCShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2spOwogCXZvaWQJCSgqc2VxX2R1bXBfYWRkcikoc3RydWN0IHNlcV9maWxlICpzZXEsCiAJCQkJCSB1bmlvbiBzY3RwX2FkZHIgKmFkZHIpOworCXZvaWQJCSgqZWNuX2NhcGFibGUpKHN0cnVjdCBzb2NrICpzayk7CiAJX191MTYJCW5ldF9oZWFkZXJfbGVuOwogCWludAkJc29ja2FkZHJfbGVuOwogCXNhX2ZhbWlseV90CXNhX2ZhbWlseTsKQEAgLTkwMSw3ICs5MDMsMTAgQEAKIAkgKgkJY2FsY3VsYXRpb24gY29tcGxldGVzIChpLmUuIHRoZSBEQVRBIGNodW5rCiAJICoJCWlzIFNBQ0snZCkgY2xlYXIgdGhpcyBmbGFnLgogCSAqLwotCWludCBydG9fcGVuZGluZzsKKwlfX3U4IHJ0b19wZW5kaW5nOworCisJLyogRmxhZyB0byB0cmFjayB0aGUgY3VycmVudCBmYXN0IHJlY292ZXJ5IHN0YXRlICovCisJX191OCBmYXN0X3JlY292ZXJ5OwogCiAJLyoKIAkgKiBUaGVzZSBhcmUgdGhlIGNvbmdlc3Rpb24gc3RhdHMuCkBAIC05MjAsNiArOTI1LDkgQEAKIAkvKiBEYXRhIHRoYXQgaGFzIGJlZW4gc2VudCwgYnV0IG5vdCBhY2tub3dsZWRnZWQuICovCiAJX191MzIgZmxpZ2h0X3NpemU7CiAKKwkvKiBUU04gbWFya2luZyB0aGUgZmFzdCByZWNvdmVyeSBleGl0IHBvaW50ICovCisJX191MzIgZmFzdF9yZWNvdmVyeV9leGl0OworCiAJLyogRGVzdGluYXRpb24gKi8KIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CiAJLyogU291cmNlIGFkZHJlc3MuICovCkBAIC0xMDQ0LDcgKzEwNTIsNyBAQAogCQkJICBzdHJ1Y3Qgc2N0cF9zb2NrICopOwogdm9pZCBzY3RwX3RyYW5zcG9ydF9wbXR1KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqKTsKIHZvaWQgc2N0cF90cmFuc3BvcnRfZnJlZShzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKik7Ci12b2lkIHNjdHBfdHJhbnNwb3J0X3Jlc2V0X3RpbWVycyhzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKik7Cit2b2lkIHNjdHBfdHJhbnNwb3J0X3Jlc2V0X3RpbWVycyhzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKiwgaW50KTsKIHZvaWQgc2N0cF90cmFuc3BvcnRfaG9sZChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKik7CiB2b2lkIHNjdHBfdHJhbnNwb3J0X3B1dChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKik7CiB2b2lkIHNjdHBfdHJhbnNwb3J0X3VwZGF0ZV9ydG8oc3RydWN0IHNjdHBfdHJhbnNwb3J0ICosIF9fdTMyKTsKQEAgLTExMzQsNiArMTE0Miw5IEBACiAJLyogSG93IG1hbnkgdW5hY2tkIGJ5dGVzIGRvIHdlIGhhdmUgaW4tZmxpZ2h0PwkqLwogCV9fdTMyIG91dHN0YW5kaW5nX2J5dGVzOwogCisJLyogQXJlIHdlIGRvaW5nIGZhc3QtcnR4IG9uIHRoaXMgcXVldWUgKi8KKwljaGFyIGZhc3RfcnR4OworCiAJLyogQ29ya2VkPyAqLwogCWNoYXIgY29yazsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCA2MzMxNDdjLi5jZjU0MDM0IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtMTM5LDcgKzEzOSw2IEBACiAjZGVmaW5lIE1BWF9UQ1BfS0VFUElOVFZMCTMyNzY3CiAjZGVmaW5lIE1BWF9UQ1BfS0VFUENOVAkJMTI3CiAjZGVmaW5lIE1BWF9UQ1BfU1lOQ05UCQkxMjcKLSNkZWZpbmUgTUFYX1RDUF9BQ0NFUFRfREVGRVJSRUQgNjU1MzUKIAogI2RlZmluZSBUQ1BfU1lOUV9JTlRFUlZBTAkoSFovNSkJLyogUGVyaW9kIG9mIFNZTkFDSyB0aW1lciAqLwogCkBAIC00MzMsNyArNDMyLDYgQEAKIAogZXh0ZXJuIGludAkJCXRjcF9kaXNjb25uZWN0KHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWdzKTsKIAotZXh0ZXJuIHZvaWQJCQl0Y3BfdW5oYXNoKHN0cnVjdCBzb2NrICpzayk7CiAKIC8qIEZyb20gc3luY29va2llcy5jICovCiBleHRlcm4gX191MzIgc3luY29va2llX3NlY3JldFsyXVsxNi00K1NIQV9ESUdFU1RfV09SRFNdOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdHJhbnNwX3Y2LmggYi9pbmNsdWRlL25ldC90cmFuc3BfdjYuaAppbmRleCAyNzM5NGUwLi4xMTI5MzRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90cmFuc3BfdjYuaAorKysgYi9pbmNsdWRlL25ldC90cmFuc3BfdjYuaApAQCAtNDAsNyArNDAsOCBAQAogCQkJCQkJICBzdHJ1Y3QgbXNnaGRyICptc2csCiAJCQkJCQkgIHN0cnVjdCBza19idWZmICpza2IpOwogCi1leHRlcm4gaW50CQkJZGF0YWdyYW1fc2VuZF9jdGwoc3RydWN0IG1zZ2hkciAqbXNnLAorZXh0ZXJuIGludAkJCWRhdGFncmFtX3NlbmRfY3RsKHN0cnVjdCBuZXQgKm5ldCwKKwkJCQkJCSAgc3RydWN0IG1zZ2hkciAqbXNnLAogCQkJCQkJICBzdHJ1Y3QgZmxvd2kgKmZsLAogCQkJCQkJICBzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMgKm9wdCwKIAkJCQkJCSAgaW50ICpobGltaXQsIGludCAqdGNsYXNzKTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3VkcC5oIGIvaW5jbHVkZS9uZXQvdWRwLmgKaW5kZXggM2U1NWE5OS4uY2NjZTgzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdWRwLmgKKysrIGIvaW5jbHVkZS9uZXQvdWRwLmgKQEAgLTEzNSw2ICsxMzUsNyBAQAogCiBleHRlcm4gaW50CXVkcF9zZW5kbXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNvY2sgKnNrLAogCQkJICAgIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbik7CitleHRlcm4gdm9pZAl1ZHBfZmx1c2hfcGVuZGluZ19mcmFtZXMoc3RydWN0IHNvY2sgKnNrKTsKIAogZXh0ZXJuIGludAl1ZHBfcmN2KHN0cnVjdCBza19idWZmICpza2IpOwogZXh0ZXJuIGludAl1ZHBfaW9jdGwoc3RydWN0IHNvY2sgKnNrLCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9idWxrbWVtLmggYi9pbmNsdWRlL3BjbWNpYS9idWxrbWVtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZiYzc0NzIuLjAwMDAwMDAKLS0tIGEvaW5jbHVkZS9wY21jaWEvYnVsa21lbS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIGJ1bGttZW0uaCAtLSBEZWZpbml0aW9ucyBmb3IgYnVsayBtZW1vcnkgc2VydmljZXMKLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICoKLSAqIFRoZSBpbml0aWFsIGRldmVsb3BlciBvZiB0aGUgb3JpZ2luYWwgY29kZSBpcyBEYXZpZCBBLiBIaW5kcwotICogPGRhaGluZHNAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4gIFBvcnRpb25zIGNyZWF0ZWQgYnkgRGF2aWQgQS4gSGluZHMKLSAqIGFyZSBDb3B5cmlnaHQgKEMpIDE5OTkgRGF2aWQgQS4gSGluZHMuICBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIChDKSAxOTk5CQlEYXZpZCBBLiBIaW5kcwotICovCi0KLSNpZm5kZWYgX0xJTlVYX0JVTEtNRU1fSAotI2RlZmluZSBfTElOVVhfQlVMS01FTV9ICi0KLS8qIEZvciBHZXRGaXJzdFJlZ2lvbiBhbmQgR2V0TmV4dFJlZ2lvbiAqLwotdHlwZWRlZiBzdHJ1Y3QgcmVnaW9uX2luZm9fdCB7Ci0gICAgdV9pbnQJCUF0dHJpYnV0ZXM7Ci0gICAgdV9pbnQJCUNhcmRPZmZzZXQ7Ci0gICAgdV9pbnQJCVJlZ2lvblNpemU7Ci0gICAgdV9pbnQJCUFjY2Vzc1NwZWVkOwotICAgIHVfaW50CQlCbG9ja1NpemU7Ci0gICAgdV9pbnQJCVBhcnRNdWx0aXBsZTsKLSAgICB1X2NoYXIJCUplZGVjTWZyLCBKZWRlY0luZm87Ci0gICAgbWVtb3J5X2hhbmRsZV90CW5leHQ7Ci19IHJlZ2lvbl9pbmZvX3Q7Ci0KLSNkZWZpbmUgUkVHSU9OX1RZUEUJCTB4MDAwMQotI2RlZmluZSBSRUdJT05fVFlQRV9DTQkJMHgwMDAwCi0jZGVmaW5lIFJFR0lPTl9UWVBFX0FNCQkweDAwMDEKLSNkZWZpbmUgUkVHSU9OX1BSRUZFVENICQkweDAwMDgKLSNkZWZpbmUgUkVHSU9OX0NBQ0hFQUJMRQkweDAwMTAKLSNkZWZpbmUgUkVHSU9OX0JBUl9NQVNLCQkweGUwMDAKLSNkZWZpbmUgUkVHSU9OX0JBUl9TSElGVAkxMwotCi1pbnQgcGNtY2lhX2dldF9maXJzdF9yZWdpb24oc3RydWN0IHBjbWNpYV9kZXZpY2UgKmhhbmRsZSwgcmVnaW9uX2luZm9fdCAqcmduKTsKLWludCBwY21jaWFfZ2V0X25leHRfcmVnaW9uKHN0cnVjdCBwY21jaWFfZGV2aWNlICpoYW5kbGUsIHJlZ2lvbl9pbmZvX3QgKnJnbik7Ci0KLSNlbmRpZiAvKiBfTElOVVhfQlVMS01FTV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9jaXN0cGwuaCBiL2luY2x1ZGUvcGNtY2lhL2Npc3RwbC5oCmluZGV4IGQzYmJiMTkuLmUyZTEwYzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcGNtY2lhL2Npc3RwbC5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2Npc3RwbC5oCkBAIC01OTUsNyArNTk1LDcgQEAKIGludCBwY2NhcmRfZ2V0X3R1cGxlX2RhdGEoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHR1cGxlX3QgKnR1cGxlKTsKIGludCBwY2NhcmRfcGFyc2VfdHVwbGUodHVwbGVfdCAqdHVwbGUsIGNpc3BhcnNlX3QgKnBhcnNlKTsKIAotaW50IHBjY2FyZF92YWxpZGF0ZV9jaXMoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMsIHVuc2lnbmVkIGludCBmdW5jdGlvbiwgY2lzaW5mb190ICppbmZvKTsKK2ludCBwY2NhcmRfdmFsaWRhdGVfY2lzKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLCB1bnNpZ25lZCBpbnQgZnVuY3Rpb24sIHVuc2lnbmVkIGludCAqY291bnQpOwogCiAvKiAuLi4gYnV0IHVzZSB0aGVzZSB3cmFwcGVycyBpbnN0ZWFkICovCiAjZGVmaW5lIHBjbWNpYV9nZXRfZmlyc3RfdHVwbGUocF9kZXYsIHR1cGxlKSBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BjbWNpYS9jcy5oIGIvaW5jbHVkZS9wY21jaWEvY3MuaAppbmRleCA4N2EyNjBlLi40NWQ4NGIyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3BjbWNpYS9jcy5oCisrKyBiL2luY2x1ZGUvcGNtY2lhL2NzLmgKQEAgLTM3Myw5ICszNzMsNiBAQAogCiBpbnQgcGNtY2lhX2FjY2Vzc19jb25maWd1cmF0aW9uX3JlZ2lzdGVyKHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwgY29uZl9yZWdfdCAqcmVnKTsKIGludCBwY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyhzdHJ1Y3QgcGNtY2lhX2RldmljZSAqcF9kZXYsIGNvbmZpZ19pbmZvX3QgKmNvbmZpZyk7Ci1pbnQgcGNtY2lhX2dldF9maXJzdF93aW5kb3cod2luZG93X2hhbmRsZV90ICp3aW4sIHdpbl9yZXFfdCAqcmVxKTsKLWludCBwY21jaWFfZ2V0X25leHRfd2luZG93KHdpbmRvd19oYW5kbGVfdCAqd2luLCB3aW5fcmVxX3QgKnJlcSk7Ci1pbnQgcGNtY2lhX2dldF9zdGF0dXMoc3RydWN0IHBjbWNpYV9kZXZpY2UgKnBfZGV2LCBjc19zdGF0dXNfdCAqc3RhdHVzKTsKIGludCBwY21jaWFfZ2V0X21lbV9wYWdlKHdpbmRvd19oYW5kbGVfdCB3aW4sIG1lbXJlcV90ICpyZXEpOwogaW50IHBjbWNpYV9tYXBfbWVtX3BhZ2Uod2luZG93X2hhbmRsZV90IHdpbiwgbWVtcmVxX3QgKnJlcSk7CiBpbnQgcGNtY2lhX21vZGlmeV9jb25maWd1cmF0aW9uKHN0cnVjdCBwY21jaWFfZGV2aWNlICpwX2RldiwgbW9kY29uZl90ICptb2QpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wY21jaWEvY3NfdHlwZXMuaCBiL2luY2x1ZGUvcGNtY2lhL2NzX3R5cGVzLmgKaW5kZXggOWE2YmNjNC4uZjQwMmEwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEvY3NfdHlwZXMuaAorKysgYi9pbmNsdWRlL3BjbWNpYS9jc190eXBlcy5oCkBAIC0yMSw3ICsyMSw4IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX2F2cjMyX18pCisjaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBkZWZpbmVkKF9fYXZyMzJfXykgfHwgXAorCWRlZmluZWQoX19iZmluX18pCiAvKiBUaGlzIChpb2FkZHJfdCkgaXMgZXhwb3NlZCB0byB1c2Vyc3BhY2UgJiBoZW5jZSBjYW5ub3QgYmUgY2hhbmdlZC4gKi8KIHR5cGVkZWYgdV9pbnQgICBpb2FkZHJfdDsKICNlbHNlCkBAIC0zMyw5ICszNCw2IEBACiB0eXBlZGVmIHVfY2hhcgljaXNkYXRhX3Q7CiB0eXBlZGVmIHVfc2hvcnQJcGFnZV90OwogCi1zdHJ1Y3QgcGNtY2lhX2RldmljZTsKLXR5cGVkZWYgc3RydWN0IHBjbWNpYV9kZXZpY2UgKmNsaWVudF9oYW5kbGVfdDsKLQogc3RydWN0IHdpbmRvd190OwogdHlwZWRlZiBzdHJ1Y3Qgd2luZG93X3QgKndpbmRvd19oYW5kbGVfdDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wY21jaWEvZHMuaCBiL2luY2x1ZGUvcGNtY2lhL2RzLmgKaW5kZXggZjA0N2ExZi4uYjMxNjAyNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEvZHMuaAorKysgYi9pbmNsdWRlL3BjbWNpYS9kcy5oCkBAIC0yMCw3ICsyMCw2IEBACiAjaW5jbHVkZSA8bGludXgvbW9kX2RldmljZXRhYmxlLmg+CiAjZW5kaWYKIAotI2luY2x1ZGUgPHBjbWNpYS9idWxrbWVtLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2NzX3R5cGVzLmg+CiAjaW5jbHVkZSA8cGNtY2lhL2RldmljZV9pZC5oPgogCkBAIC01MSw2ICs1MCwyNCBAQAogICAgIHVfaW50CQlDYXJkT2Zmc2V0OwogfSBtdGRfaW5mb190OwogCit0eXBlZGVmIHN0cnVjdCByZWdpb25faW5mb190IHsKKyAgICB1X2ludAkJQXR0cmlidXRlczsKKyAgICB1X2ludAkJQ2FyZE9mZnNldDsKKyAgICB1X2ludAkJUmVnaW9uU2l6ZTsKKyAgICB1X2ludAkJQWNjZXNzU3BlZWQ7CisgICAgdV9pbnQJCUJsb2NrU2l6ZTsKKyAgICB1X2ludAkJUGFydE11bHRpcGxlOworICAgIHVfY2hhcgkJSmVkZWNNZnIsIEplZGVjSW5mbzsKKyAgICBtZW1vcnlfaGFuZGxlX3QJbmV4dDsKK30gcmVnaW9uX2luZm9fdDsKKyNkZWZpbmUgUkVHSU9OX1RZUEUJCTB4MDAwMQorI2RlZmluZSBSRUdJT05fVFlQRV9DTQkJMHgwMDAwCisjZGVmaW5lIFJFR0lPTl9UWVBFX0FNCQkweDAwMDEKKyNkZWZpbmUgUkVHSU9OX1BSRUZFVENICQkweDAwMDgKKyNkZWZpbmUgUkVHSU9OX0NBQ0hFQUJMRQkweDAwMTAKKyNkZWZpbmUgUkVHSU9OX0JBUl9NQVNLCQkweGUwMDAKKyNkZWZpbmUgUkVHSU9OX0JBUl9TSElGVAkxMworCiB0eXBlZGVmIHVuaW9uIGRzX2lvY3RsX2FyZ190IHsKICAgICBhZGp1c3RfdAkJYWRqdXN0OwogICAgIGNvbmZpZ19pbmZvX3QJY29uZmlnOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wY21jaWEvc3MuaCBiL2luY2x1ZGUvcGNtY2lhL3NzLmgKaW5kZXggZjk1ZGNhMC4uZWQ5MTlkZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wY21jaWEvc3MuaAorKysgYi9pbmNsdWRlL3BjbWNpYS9zcy5oCkBAIC0yMSw3ICsyMSw2IEBACiAKICNpbmNsdWRlIDxwY21jaWEvY3NfdHlwZXMuaD4KICNpbmNsdWRlIDxwY21jaWEvY3MuaD4KLSNpbmNsdWRlIDxwY21jaWEvYnVsa21lbS5oPgogI2lmZGVmIENPTkZJR19DQVJEQlVTCiAjaW5jbHVkZSA8bGludXgvcGNpLmg+CiAjZW5kaWYKQEAgLTEzNiw4ICsxMzUsMTQgQEAKIAlzdHJ1Y3QgcmVzb3VyY2UqICgqZmluZF9tZW0pCSh1bnNpZ25lZCBsb25nIGJhc2UsIHVuc2lnbmVkIGxvbmcgbnVtLAogCQkJCQkgdW5zaWduZWQgbG9uZyBhbGlnbiwgaW50IGxvdywKIAkJCQkJIHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKTsKLQlpbnQJKCphZGp1c3RfcmVzb3VyY2UpCShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywKLQkJCQkJIGFkanVzdF90ICphZGopOworCWludAkoKmFkZF9pbykJCShzdHJ1Y3QgcGNtY2lhX3NvY2tldCAqcywKKwkJCQkJIHVuc2lnbmVkIGludCBhY3Rpb24sCisJCQkJCSB1bnNpZ25lZCBsb25nIHJfc3RhcnQsCisJCQkJCSB1bnNpZ25lZCBsb25nIHJfZW5kKTsKKwlpbnQJKCphZGRfbWVtKQkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzLAorCQkJCQkgdW5zaWduZWQgaW50IGFjdGlvbiwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9zdGFydCwKKwkJCQkJIHVuc2lnbmVkIGxvbmcgcl9lbmQpOwogCWludAkoKmluaXQpCQkJKHN0cnVjdCBwY21jaWFfc29ja2V0ICpzKTsKIAl2b2lkCSgqZXhpdCkJCQkoc3RydWN0IHBjbWNpYV9zb2NrZXQgKnMpOwogfTsKQEAgLTI0NSw3ICsyNTAsNiBAQAogCiAJc3RydWN0IHRhc2tfc3RydWN0CQkqdGhyZWFkOwogCXN0cnVjdCBjb21wbGV0aW9uCQl0aHJlYWRfZG9uZTsKLQl3YWl0X3F1ZXVlX2hlYWRfdAkJdGhyZWFkX3dhaXQ7CiAJc3BpbmxvY2tfdAkJCXRocmVhZF9sb2NrOwkvKiBwcm90ZWN0cyB0aHJlYWRfZXZlbnRzICovCiAJdW5zaWduZWQgaW50CQkJdGhyZWFkX2V2ZW50czsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wY21jaWEvdmVyc2lvbi5oIGIvaW5jbHVkZS9wY21jaWEvdmVyc2lvbi5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWQ5YzVlLi4wMDAwMDAwCi0tLSBhL2luY2x1ZGUvcGNtY2lhL3ZlcnNpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotLyogdmVyc2lvbi5oIDEuOTQgMjAwMC8xMC8wMyAxNzo1NTo0OCAoRGF2aWQgSGluZHMpICovCi0KLS8qIFRoaXMgZmlsZSB3aWxsIGJlIHJlbW92ZWQsIHBsZWFzZSBkb24ndCBpbmNsdWRlIGl0ICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfYWRkci5oIGIvaW5jbHVkZS9yZG1hL2liX2FkZHIuaAppbmRleCBjMzY3NTBmLi40ODMwNTdiIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfYWRkci5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9hZGRyLmgKQEAgLTIsMjkgKzIsMzMgQEAKICAqIENvcHlyaWdodCAoYykgMjAwNSBWb2x0YWlyZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChjKSAyMDA1IEludGVsIENvcnBvcmF0aW9uLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCi0gKiBUaGlzIFNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIG9uZSBvZiB0aGUgZm9sbG93aW5nIGxpY2Vuc2VzOgorICogVGhpcyBzb2Z0d2FyZSBpcyBhdmFpbGFibGUgdG8geW91IHVuZGVyIGEgY2hvaWNlIG9mIG9uZSBvZiB0d28KKyAqIGxpY2Vuc2VzLiAgWW91IG1heSBjaG9vc2UgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKKyAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyLCBhdmFpbGFibGUgZnJvbSB0aGUgZmlsZQorICogQ09QWUlORyBpbiB0aGUgbWFpbiBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZSwgb3IgdGhlCisgKiBPcGVuSUIub3JnIEJTRCBsaWNlbnNlIGJlbG93OgogICoKLSAqIDEpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkNvbW1vbiBQdWJsaWMgTGljZW5zZSAxLjAiIGEgY29weSBvZiB3aGljaCBpcwotICogICAgYXZhaWxhYmxlIGZyb20gdGhlIE9wZW4gU291cmNlIEluaXRpYXRpdmUsIHNlZQotICogICAgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9jcGwucGhwLgorICogICAgIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3IKKyAqICAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcKKyAqICAgICBjb25kaXRpb25zIGFyZSBtZXQ6CiAgKgotICogMikgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiVGhlIEJTRCBMaWNlbnNlIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvYnNkLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIuCiAgKgotICogMykgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgVmVyc2lvbiAyIiBhCi0gKiAgICBjb3B5IG9mIHdoaWNoIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UucGhwLgorICogICAgICAtIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgICAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBMaWNlbnNlZSBoYXMgdGhlIHJpZ2h0IHRvIGNob29zZSBvbmUgb2YgdGhlIGFib3ZlIGxpY2Vuc2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UgYW5kIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzLgotICoKLSAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSBib3RoIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgb25lIG9mIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlIGRvY3VtZW50YXRpb24KLSAqIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAorICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAorICogTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUworICogQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOCisgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgorICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICogU09GVFdBUkUuCiAgKi8KIAogI2lmICFkZWZpbmVkKElCX0FERFJfSCkKQEAgLTU3LDYgKzYxLDcgQEAKIAl1bnNpZ25lZCBjaGFyIGRzdF9kZXZfYWRkcltNQVhfQUREUl9MRU5dOwogCXVuc2lnbmVkIGNoYXIgYnJvYWRjYXN0W01BWF9BRERSX0xFTl07CiAJZW51bSByZG1hX25vZGVfdHlwZSBkZXZfdHlwZTsKKwlzdHJ1Y3QgbmV0X2RldmljZSAqc3JjX2RldjsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX2NhY2hlLmggYi9pbmNsdWRlL3JkbWEvaWJfY2FjaGUuaAppbmRleCBmMTc5ZDIzLi4wMGEyYjhlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfY2FjaGUuaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfY2FjaGUuaApAQCAtMzAsOCArMzAsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfY2FjaGUuaCAxMzQ5IDIwMDQtMTItMTYgMjE6MDk6NDNaIHJvbGFuZCAkCiAgKi8KIAogI2lmbmRlZiBfSUJfQ0FDSEVfSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX2NtLmggYi9pbmNsdWRlL3JkbWEvaWJfY20uaAppbmRleCBhNjI3Yzg2Li5lYzdjNmQ5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfY20uaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfY20uaApAQCAtMzEsOCArMzEsNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfY20uaCA0MzExIDIwMDUtMTItMDUgMTg6NDI6MDFaIHNlYW4uaGVmdHkgJAogICovCiAjaWYgIWRlZmluZWQoSUJfQ01fSCkKICNkZWZpbmUgSUJfQ01fSApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX2Ztcl9wb29sLmggYi9pbmNsdWRlL3JkbWEvaWJfZm1yX3Bvb2wuaAppbmRleCAwMGRhZGJmLi5mNjJiODQyIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfZm1yX3Bvb2wuaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfZm1yX3Bvb2wuaApAQCAtMjksOCArMjksNiBAQAogICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KICAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKICAqIFNPRlRXQVJFLgotICoKLSAqICRJZDogaWJfZm1yX3Bvb2wuaCAyNzMwIDIwMDUtMDYtMjggMTY6NDM6MDNaIHNlYW4uaGVmdHkgJAogICovCiAKICNpZiAhZGVmaW5lZChJQl9GTVJfUE9PTF9IKQpAQCAtNjEsNyArNTksNyBAQAogCWludCAgICAgICAgICAgICAgICAgICAgIHBvb2xfc2l6ZTsKIAlpbnQgICAgICAgICAgICAgICAgICAgICBkaXJ0eV93YXRlcm1hcms7CiAJdm9pZCAgICAgICAgICAgICAgICAgICgqZmx1c2hfZnVuY3Rpb24pKHN0cnVjdCBpYl9mbXJfcG9vbCAqcG9vbCwKLQkJCQkJCXZvaWQgKiAgICAgICAgICAgICAgYXJnKTsKKwkJCQkJCXZvaWQgICAgICAgICAgICAgICAqYXJnKTsKIAl2b2lkICAgICAgICAgICAgICAgICAgICpmbHVzaF9hcmc7CiAJdW5zaWduZWQgICAgICAgICAgICAgICAgY2FjaGU6MTsKIH07CmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfbWFkLmggYi9pbmNsdWRlL3JkbWEvaWJfbWFkLmgKaW5kZXggNzIyOGMwNS4uNWY2YzQwZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX21hZC5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9tYWQuaApAQCAtMzIsMTEgKzMyLDkgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX21hZC5oIDU1OTYgMjAwNi0wMy0wMyAwMTowMDowN1ogc2Vhbi5oZWZ0eSAkCiAgKi8KIAotI2lmICFkZWZpbmVkKCBJQl9NQURfSCApCisjaWYgIWRlZmluZWQoSUJfTUFEX0gpCiAjZGVmaW5lIElCX01BRF9ICiAKICNpbmNsdWRlIDxsaW51eC9saXN0Lmg+CkBAIC0xOTQsOCArMTkyLDcgQEAKIAl1OAkJCWRhdGFbSUJfTUdNVF9WRU5ET1JfREFUQV07CiB9OwogCi1zdHJ1Y3QgaWJfY2xhc3NfcG9ydF9pbmZvCi17CitzdHJ1Y3QgaWJfY2xhc3NfcG9ydF9pbmZvIHsKIAl1OAkJCWJhc2VfdmVyc2lvbjsKIAl1OAkJCWNsYXNzX3ZlcnNpb247CiAJX19iZTE2CQkJY2FwYWJpbGl0eV9tYXNrOwpAQCAtNjE0LDExICs2MTEsMTEgQEAKICAqIGFueSBjbGFzcyBzcGVjaWZpYyBoZWFkZXIsIGFuZCBNQUQgZGF0YSBhcmVhLgogICogSWYgQHJtcHBfYWN0aXZlIGlzIHNldCwgdGhlIFJNUFAgaGVhZGVyIHdpbGwgYmUgaW5pdGlhbGl6ZWQgZm9yIHNlbmRpbmcuCiAgKi8KLXN0cnVjdCBpYl9tYWRfc2VuZF9idWYgKiBpYl9jcmVhdGVfc2VuZF9tYWQoc3RydWN0IGliX21hZF9hZ2VudCAqbWFkX2FnZW50LAotCQkJCQkgICAgdTMyIHJlbW90ZV9xcG4sIHUxNiBwa2V5X2luZGV4LAotCQkJCQkgICAgaW50IHJtcHBfYWN0aXZlLAotCQkJCQkgICAgaW50IGhkcl9sZW4sIGludCBkYXRhX2xlbiwKLQkJCQkJICAgIGdmcF90IGdmcF9tYXNrKTsKK3N0cnVjdCBpYl9tYWRfc2VuZF9idWYgKmliX2NyZWF0ZV9zZW5kX21hZChzdHJ1Y3QgaWJfbWFkX2FnZW50ICptYWRfYWdlbnQsCisJCQkJCSAgIHUzMiByZW1vdGVfcXBuLCB1MTYgcGtleV9pbmRleCwKKwkJCQkJICAgaW50IHJtcHBfYWN0aXZlLAorCQkJCQkgICBpbnQgaGRyX2xlbiwgaW50IGRhdGFfbGVuLAorCQkJCQkgICBnZnBfdCBnZnBfbWFzayk7CiAKIC8qKgogICogaWJfaXNfbWFkX2NsYXNzX3JtcHAgLSByZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gbWFuYWdlbWVudCBjbGFzcwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL2liX3BhY2suaCBiL2luY2x1ZGUvcmRtYS9pYl9wYWNrLmgKaW5kZXggZjkyNjAyMC4uZDdmYzQ1YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3BhY2suaAorKysgYi9pbmNsdWRlL3JkbWEvaWJfcGFjay5oCkBAIC0yOCw4ICsyOCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9wYWNrLmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZm5kZWYgSUJfUEFDS19ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfc2EuaCBiL2luY2x1ZGUvcmRtYS9pYl9zYS5oCmluZGV4IDk0MjY5MmIuLjM4NDFjMWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl9zYS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9zYS5oCkBAIC0zMCw4ICszMCw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl9zYS5oIDI4MTEgMjAwNS0wNy0wNiAxODoxMTo0M1ogaGFsciAkCiAgKi8KIAogI2lmbmRlZiBJQl9TQV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfc21pLmggYi9pbmNsdWRlL3JkbWEvaWJfc21pLmgKaW5kZXggZjI5YWYxMy4uYWFjYTA4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3NtaS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl9zbWkuaApAQCAtMzIsMTEgKzMyLDkgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3NtaS5oIDEzODkgMjAwNC0xMi0yNyAyMjo1Njo0N1ogcm9sYW5kICQKICAqLwogCi0jaWYgIWRlZmluZWQoIElCX1NNSV9IICkKKyNpZiAhZGVmaW5lZChJQl9TTUlfSCkKICNkZWZpbmUgSUJfU01JX0gKIAogI2luY2x1ZGUgPHJkbWEvaWJfbWFkLmg+CmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdXNlcl9jbS5oIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfY20uaAppbmRleCAzNzY1MGFmLi5iZDNkMzgwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfdXNlcl9jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl91c2VyX2NtLmgKQEAgLTI5LDggKzI5LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3VzZXJfY20uaCA0MDE5IDIwMDUtMTEtMTEgMDA6MzM6MDlaIHNlYW4uaGVmdHkgJAogICovCiAKICNpZm5kZWYgSUJfVVNFUl9DTV9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdXNlcl9tYWQuaCBiL2luY2x1ZGUvcmRtYS9pYl91c2VyX21hZC5oCmluZGV4IDI5ZDJjNzIuLmQ2ZmNlMWMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pYl91c2VyX21hZC5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl91c2VyX21hZC5oCkBAIC0yOSw4ICsyOSw2IEBACiAgKiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTgogICogQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQogICogU09GVFdBUkUuCi0gKgotICogJElkOiBpYl91c2VyX21hZC5oIDI4MTQgMjAwNS0wNy0wNiAxOToxNDowOVogaGFsciAkCiAgKi8KIAogI2lmbmRlZiBJQl9VU0VSX01BRF9ICmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaWJfdXNlcl92ZXJicy5oIGIvaW5jbHVkZS9yZG1hL2liX3VzZXJfdmVyYnMuaAppbmRleCA4ZDY1YmYwLi5hMTdmNzcxIDEwMDY0NAotLS0gYS9pbmNsdWRlL3JkbWEvaWJfdXNlcl92ZXJicy5oCisrKyBiL2luY2x1ZGUvcmRtYS9pYl91c2VyX3ZlcmJzLmgKQEAgLTMxLDggKzMxLDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3VzZXJfdmVyYnMuaCA0MDE5IDIwMDUtMTEtMTEgMDA6MzM6MDlaIHNlYW4uaGVmdHkgJAogICovCiAKICNpZm5kZWYgSUJfVVNFUl9WRVJCU19ICkBAIC0yOTEsNyArMjg5LDEwIEBACiAJX191MzIgb3Bjb2RlOwogCV9fdTMyIHZlbmRvcl9lcnI7CiAJX191MzIgYnl0ZV9sZW47Ci0JX191MzIgaW1tX2RhdGE7CisJdW5pb24geworCQlfX3UzMiBpbW1fZGF0YTsKKwkJX191MzIgaW52YWxpZGF0ZV9ya2V5OworCX0gZXg7CiAJX191MzIgcXBfbnVtOwogCV9fdTMyIHNyY19xcDsKIAlfX3UzMiB3Y19mbGFnczsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9pYl92ZXJicy5oIGIvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKaW5kZXggOTExYTY2MS4uOTBiNTI5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKKysrIGIvaW5jbHVkZS9yZG1hL2liX3ZlcmJzLmgKQEAgLTM0LDggKzM0LDYgQEAKICAqIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOCiAgKiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAgKiBTT0ZUV0FSRS4KLSAqCi0gKiAkSWQ6IGliX3ZlcmJzLmggMTM0OSAyMDA0LTEyLTE2IDIxOjA5OjQzWiByb2xhbmQgJAogICovCiAKICNpZiAhZGVmaW5lZChJQl9WRVJCU19IKQpAQCAtOTMsNyArOTEsNyBAQAogCUlCX0RFVklDRV9SQ19STlJfTkFLX0dFTgk9ICgxPDwxMiksCiAJSUJfREVWSUNFX1NSUV9SRVNJWkUJCT0gKDE8PDEzKSwKIAlJQl9ERVZJQ0VfTl9OT1RJRllfQ1EJCT0gKDE8PDE0KSwKLQlJQl9ERVZJQ0VfWkVST19TVEFHCQk9ICgxPDwxNSksCisJSUJfREVWSUNFX0xPQ0FMX0RNQV9MS0VZCT0gKDE8PDE1KSwKIAlJQl9ERVZJQ0VfUkVTRVJWRUQJCT0gKDE8PDE2KSwgLyogb2xkIFNFTkRfV19JTlYgKi8KIAlJQl9ERVZJQ0VfTUVNX1dJTkRPVwkJPSAoMTw8MTcpLAogCS8qCkBAIC0xMDUsNyArMTAzLDggQEAKIAkgKi8KIAlJQl9ERVZJQ0VfVURfSVBfQ1NVTQkJPSAoMTw8MTgpLAogCUlCX0RFVklDRV9VRF9UU08JCT0gKDE8PDE5KSwKLQlJQl9ERVZJQ0VfU0VORF9XX0lOVgkJPSAoMTw8MjEpLAorCUlCX0RFVklDRV9NRU1fTUdUX0VYVEVOU0lPTlMJPSAoMTw8MjEpLAorCUlCX0RFVklDRV9CTE9DS19NVUxUSUNBU1RfTE9PUEJBQ0sgPSAoMTw8MjIpLAogfTsKIAogZW51bSBpYl9hdG9taWNfY2FwIHsKQEAgLTE1MSw2ICsxNTAsNyBAQAogCWludAkJCW1heF9zcnE7CiAJaW50CQkJbWF4X3NycV93cjsKIAlpbnQJCQltYXhfc3JxX3NnZTsKKwl1bnNpZ25lZCBpbnQJCW1heF9mYXN0X3JlZ19wYWdlX2xpc3RfbGVuOwogCXUxNgkJCW1heF9wa2V5czsKIAl1OAkJCWxvY2FsX2NhX2Fja19kZWxheTsKIH07CkBAIC0yMjcsNiArMjI3LDU3IEBACiAJfQogfQogCitzdHJ1Y3QgaWJfcHJvdG9jb2xfc3RhdHMgeworCS8qIFRCRC4uLiAqLworfTsKKworc3RydWN0IGl3X3Byb3RvY29sX3N0YXRzIHsKKwl1NjQJaXBJblJlY2VpdmVzOworCXU2NAlpcEluSGRyRXJyb3JzOworCXU2NAlpcEluVG9vQmlnRXJyb3JzOworCXU2NAlpcEluTm9Sb3V0ZXM7CisJdTY0CWlwSW5BZGRyRXJyb3JzOworCXU2NAlpcEluVW5rbm93blByb3RvczsKKwl1NjQJaXBJblRydW5jYXRlZFBrdHM7CisJdTY0CWlwSW5EaXNjYXJkczsKKwl1NjQJaXBJbkRlbGl2ZXJzOworCXU2NAlpcE91dEZvcndEYXRhZ3JhbXM7CisJdTY0CWlwT3V0UmVxdWVzdHM7CisJdTY0CWlwT3V0RGlzY2FyZHM7CisJdTY0CWlwT3V0Tm9Sb3V0ZXM7CisJdTY0CWlwUmVhc21UaW1lb3V0OworCXU2NAlpcFJlYXNtUmVxZHM7CisJdTY0CWlwUmVhc21PS3M7CisJdTY0CWlwUmVhc21GYWlsczsKKwl1NjQJaXBGcmFnT0tzOworCXU2NAlpcEZyYWdGYWlsczsKKwl1NjQJaXBGcmFnQ3JlYXRlczsKKwl1NjQJaXBJbk1jYXN0UGt0czsKKwl1NjQJaXBPdXRNY2FzdFBrdHM7CisJdTY0CWlwSW5CY2FzdFBrdHM7CisJdTY0CWlwT3V0QmNhc3RQa3RzOworCisJdTY0CXRjcFJ0b0FsZ29yaXRobTsKKwl1NjQJdGNwUnRvTWluOworCXU2NAl0Y3BSdG9NYXg7CisJdTY0CXRjcE1heENvbm47CisJdTY0CXRjcEFjdGl2ZU9wZW5zOworCXU2NAl0Y3BQYXNzaXZlT3BlbnM7CisJdTY0CXRjcEF0dGVtcHRGYWlsczsKKwl1NjQJdGNwRXN0YWJSZXNldHM7CisJdTY0CXRjcEN1cnJFc3RhYjsKKwl1NjQJdGNwSW5TZWdzOworCXU2NAl0Y3BPdXRTZWdzOworCXU2NAl0Y3BSZXRyYW5zU2VnczsKKwl1NjQJdGNwSW5FcnJzOworCXU2NAl0Y3BPdXRSc3RzOworfTsKKwordW5pb24gcmRtYV9wcm90b2NvbF9zdGF0cyB7CisJc3RydWN0IGliX3Byb3RvY29sX3N0YXRzCWliOworCXN0cnVjdCBpd19wcm90b2NvbF9zdGF0cwlpdzsKK307CisKIHN0cnVjdCBpYl9wb3J0X2F0dHIgewogCWVudW0gaWJfcG9ydF9zdGF0ZQlzdGF0ZTsKIAllbnVtIGliX210dQkJbWF4X210dTsKQEAgLTQxNCw2ICs0NjUsOCBAQAogCUlCX1dDX0ZFVENIX0FERCwKIAlJQl9XQ19CSU5EX01XLAogCUlCX1dDX0xTTywKKwlJQl9XQ19MT0NBTF9JTlYsCisJSUJfV0NfRkFTVF9SRUdfTVIsCiAvKgogICogU2V0IHZhbHVlIG9mIElCX1dDX1JFQ1Ygc28gY29uc3VtZXJzIGNhbiB0ZXN0IGlmIGEgY29tcGxldGlvbiBpcyBhCiAgKiByZWNlaXZlIGJ5IHRlc3RpbmcgKG9wY29kZSAmIElCX1dDX1JFQ1YpLgpAQCAtNDI0LDcgKzQ3Nyw4IEBACiAKIGVudW0gaWJfd2NfZmxhZ3MgewogCUlCX1dDX0dSSAkJPSAxLAotCUlCX1dDX1dJVEhfSU1NCQk9ICgxPDwxKQorCUlCX1dDX1dJVEhfSU1NCQk9ICgxPDwxKSwKKwlJQl9XQ19XSVRIX0lOVkFMSURBVEUJPSAoMTw8MiksCiB9OwogCiBzdHJ1Y3QgaWJfd2MgewpAQCAtNDM0LDcgKzQ4OCwxMCBAQAogCXUzMgkJCXZlbmRvcl9lcnI7CiAJdTMyCQkJYnl0ZV9sZW47CiAJc3RydWN0IGliX3FwCSAgICAgICAqcXA7Ci0JX19iZTMyCQkJaW1tX2RhdGE7CisJdW5pb24geworCQlfX2JlMzIJCWltbV9kYXRhOworCQl1MzIJCWludmFsaWRhdGVfcmtleTsKKwl9IGV4OwogCXUzMgkJCXNyY19xcDsKIAlpbnQJCQl3Y19mbGFnczsKIAl1MTYJCQlwa2V5X2luZGV4OwpAQCAtNDk5LDcgKzU1Niw4IEBACiB9OwogCiBlbnVtIGliX3FwX2NyZWF0ZV9mbGFncyB7Ci0JSUJfUVBfQ1JFQVRFX0lQT0lCX1VEX0xTTwk9IDEgPDwgMCwKKwlJQl9RUF9DUkVBVEVfSVBPSUJfVURfTFNPCQk9IDEgPDwgMCwKKwlJQl9RUF9DUkVBVEVfQkxPQ0tfTVVMVElDQVNUX0xPT1BCQUNLCT0gMSA8PCAxLAogfTsKIAogc3RydWN0IGliX3FwX2luaXRfYXR0ciB7CkBAIC02MjgsNiArNjg2LDkgQEAKIAlJQl9XUl9BVE9NSUNfRkVUQ0hfQU5EX0FERCwKIAlJQl9XUl9MU08sCiAJSUJfV1JfU0VORF9XSVRIX0lOViwKKwlJQl9XUl9SRE1BX1JFQURfV0lUSF9JTlYsCisJSUJfV1JfTE9DQUxfSU5WLAorCUlCX1dSX0ZBU1RfUkVHX01SLAogfTsKIAogZW51bSBpYl9zZW5kX2ZsYWdzIHsKQEAgLTY0NCw2ICs3MDUsMTIgQEAKIAl1MzIJbGtleTsKIH07CiAKK3N0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgeworCXN0cnVjdCBpYl9kZXZpY2UgICAgICAgKmRldmljZTsKKwl1NjQJCSAgICAgICAqcGFnZV9saXN0OworCXVuc2lnbmVkIGludAkJbWF4X3BhZ2VfbGlzdF9sZW47Cit9OworCiBzdHJ1Y3QgaWJfc2VuZF93ciB7CiAJc3RydWN0IGliX3NlbmRfd3IgICAgICAqbmV4dDsKIAl1NjQJCQl3cl9pZDsKQEAgLTY3Niw2ICs3NDMsMTUgQEAKIAkJCXUxNglwa2V5X2luZGV4OyAvKiB2YWxpZCBmb3IgR1NJIG9ubHkgKi8KIAkJCXU4CXBvcnRfbnVtOyAgIC8qIHZhbGlkIGZvciBEUiBTTVBzIG9uIHN3aXRjaCBvbmx5ICovCiAJCX0gdWQ7CisJCXN0cnVjdCB7CisJCQl1NjQJCQkJaW92YV9zdGFydDsKKwkJCXN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgICAqcGFnZV9saXN0OworCQkJdW5zaWduZWQgaW50CQkJcGFnZV9zaGlmdDsKKwkJCXVuc2lnbmVkIGludAkJCXBhZ2VfbGlzdF9sZW47CisJCQl1MzIJCQkJbGVuZ3RoOworCQkJaW50CQkJCWFjY2Vzc19mbGFnczsKKwkJCXUzMgkJCQlya2V5OworCQl9IGZhc3RfcmVnOwogCX0gd3I7CiB9OwogCkBAIC03NzgsNyArODU0LDcgQEAKIAlzdHJ1Y3QgaWJfdW9iamVjdCAgICAgICp1b2JqZWN0OwogCWliX2NvbXBfaGFuZGxlciAgIAljb21wX2hhbmRsZXI7CiAJdm9pZCAgICAgICAgICAgICAgICAgICgqZXZlbnRfaGFuZGxlcikoc3RydWN0IGliX2V2ZW50ICosIHZvaWQgKik7Ci0Jdm9pZCAqICAgICAgICAgICAgCWNxX2NvbnRleHQ7CisJdm9pZCAgICAgICAgICAgICAgICAgICAqY3FfY29udGV4dDsKIAlpbnQgICAgICAgICAgICAgICAJY3FlOwogCWF0b21pY190ICAgICAgICAgIAl1c2VjbnQ7IC8qIGNvdW50IG51bWJlciBvZiB3b3JrIHF1ZXVlcyAqLwogfTsKQEAgLTg4NCw3ICs5NjAsNyBAQAogCXZvaWQJCSgqc3luY19zaW5nbGVfZm9yX2NwdSkoc3RydWN0IGliX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgdTY0IGRtYV9oYW5kbGUsCiAJCQkJCSAgICAgICBzaXplX3Qgc2l6ZSwKLQkJCQkgICAgICAgICAgICAgICBlbnVtIGRtYV9kYXRhX2RpcmVjdGlvbiBkaXIpOworCQkJCQkgICAgICAgZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKIAl2b2lkCQkoKnN5bmNfc2luZ2xlX2Zvcl9kZXZpY2UpKHN0cnVjdCBpYl9kZXZpY2UgKmRldiwKIAkJCQkJCSAgdTY0IGRtYV9oYW5kbGUsCiAJCQkJCQkgIHNpemVfdCBzaXplLApAQCAtOTIwLDYgKzk5Niw4IEBACiAKIAlzdHJ1Y3QgaXdfY21fdmVyYnMJICAgICAqaXdjbTsKIAorCWludAkJICAgICAgICAgICAoKmdldF9wcm90b2NvbF9zdGF0cykoc3RydWN0IGliX2RldmljZSAqZGV2aWNlLAorCQkJCQkJCSB1bmlvbiByZG1hX3Byb3RvY29sX3N0YXRzICpzdGF0cyk7CiAJaW50CQkgICAgICAgICAgICgqcXVlcnlfZGV2aWNlKShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCiAJCQkJCQkgICBzdHJ1Y3QgaWJfZGV2aWNlX2F0dHIgKmRldmljZV9hdHRyKTsKIAlpbnQJCSAgICAgICAgICAgKCpxdWVyeV9wb3J0KShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsCkBAIC0xMDE0LDYgKzEwOTIsMTEgQEAKIAlpbnQgICAgICAgICAgICAgICAgICAgICAgICAoKnF1ZXJ5X21yKShzdHJ1Y3QgaWJfbXIgKm1yLAogCQkJCQkgICAgICAgc3RydWN0IGliX21yX2F0dHIgKm1yX2F0dHIpOwogCWludCAgICAgICAgICAgICAgICAgICAgICAgICgqZGVyZWdfbXIpKHN0cnVjdCBpYl9tciAqbXIpOworCXN0cnVjdCBpYl9tciAqCQkgICAoKmFsbG9jX2Zhc3RfcmVnX21yKShzdHJ1Y3QgaWJfcGQgKnBkLAorCQkJCQkgICAgICAgaW50IG1heF9wYWdlX2xpc3RfbGVuKTsKKwlzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICogKCphbGxvY19mYXN0X3JlZ19wYWdlX2xpc3QpKHN0cnVjdCBpYl9kZXZpY2UgKmRldmljZSwKKwkJCQkJCQkJICAgaW50IHBhZ2VfbGlzdF9sZW4pOworCXZvaWQJCQkgICAoKmZyZWVfZmFzdF9yZWdfcGFnZV9saXN0KShzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpOwogCWludCAgICAgICAgICAgICAgICAgICAgICAgICgqcmVyZWdfcGh5c19tcikoc3RydWN0IGliX21yICptciwKIAkJCQkJCSAgICBpbnQgbXJfcmVyZWdfbWFzaywKIAkJCQkJCSAgICBzdHJ1Y3QgaWJfcGQgKnBkLApAQCAtMTA2Niw2ICsxMTQ5LDcgQEAKIAogCWNoYXIJCQkgICAgIG5vZGVfZGVzY1s2NF07CiAJX19iZTY0CQkJICAgICBub2RlX2d1aWQ7CisJdTMyCQkJICAgICBsb2NhbF9kbWFfbGtleTsKIAl1OCAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZTsKIAl1OCAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNfcG9ydF9jbnQ7CiB9OwpAQCAtMTgwOCw2ICsxODkyLDU0IEBACiBpbnQgaWJfZGVyZWdfbXIoc3RydWN0IGliX21yICptcik7CiAKIC8qKgorICogaWJfYWxsb2NfZmFzdF9yZWdfbXIgLSBBbGxvY2F0ZXMgbWVtb3J5IHJlZ2lvbiB1c2FibGUgd2l0aCB0aGUKKyAqICAgSUJfV1JfRkFTVF9SRUdfTVIgc2VuZCB3b3JrIHJlcXVlc3QuCisgKiBAcGQ6IFRoZSBwcm90ZWN0aW9uIGRvbWFpbiBhc3NvY2lhdGVkIHdpdGggdGhlIHJlZ2lvbi4KKyAqIEBtYXhfcGFnZV9saXN0X2xlbjogcmVxdWVzdGVkIG1heCBwaHlzaWNhbCBidWZmZXIgbGlzdCBsZW5ndGggdG8gYmUKKyAqICAgdXNlZCB3aXRoIGZhc3QgcmVnaXN0ZXIgd29yayByZXF1ZXN0cyBmb3IgdGhpcyBNUi4KKyAqLworc3RydWN0IGliX21yICppYl9hbGxvY19mYXN0X3JlZ19tcihzdHJ1Y3QgaWJfcGQgKnBkLCBpbnQgbWF4X3BhZ2VfbGlzdF9sZW4pOworCisvKioKKyAqIGliX2FsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCAtIEFsbG9jYXRlcyBhIHBhZ2UgbGlzdCBhcnJheQorICogQGRldmljZSAtIGliIGRldmljZSBwb2ludGVyLgorICogQHBhZ2VfbGlzdF9sZW4gLSBzaXplIG9mIHRoZSBwYWdlIGxpc3QgYXJyYXkgdG8gYmUgYWxsb2NhdGVkLgorICoKKyAqIFRoaXMgYWxsb2NhdGVzIGFuZCByZXR1cm5zIGEgc3RydWN0IGliX2Zhc3RfcmVnX3BhZ2VfbGlzdCAqIGFuZCBhCisgKiBwYWdlX2xpc3QgYXJyYXkgdGhhdCBpcyBhdCBsZWFzdCBwYWdlX2xpc3RfbGVuIGluIHNpemUuICBUaGUgYWN0dWFsCisgKiBzaXplIGlzIHJldHVybmVkIGluIG1heF9wYWdlX2xpc3RfbGVuLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZQorICogZm9yIGluaXRpYWxpemluZyB0aGUgY29udGVudHMgb2YgdGhlIHBhZ2VfbGlzdCBhcnJheSBiZWZvcmUgcG9zdGluZworICogYSBzZW5kIHdvcmsgcmVxdWVzdCB3aXRoIHRoZSBJQl9XQ19GQVNUX1JFR19NUiBvcGNvZGUuCisgKgorICogVGhlIHBhZ2VfbGlzdCBhcnJheSBlbnRyaWVzIG11c3QgYmUgdHJhbnNsYXRlZCB1c2luZyBvbmUgb2YgdGhlCisgKiBpYl9kbWFfKigpIGZ1bmN0aW9ucyBqdXN0IGxpa2UgdGhlIGFkZHJlc3NlcyBwYXNzZWQgdG8KKyAqIGliX21hcF9waHlzX2ZtcigpLiAgT25jZSB0aGUgaWJfcG9zdF9zZW5kKCkgaXMgaXNzdWVkLCB0aGUgc3RydWN0CisgKiBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgbXVzdCBub3QgYmUgbW9kaWZpZWQgYnkgdGhlIGNhbGxlciB1bnRpbCB0aGUKKyAqIElCX1dDX0ZBU1RfUkVHX01SIHdvcmsgcmVxdWVzdCBjb21wbGV0ZXMuCisgKi8KK3N0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgKmliX2FsbG9jX2Zhc3RfcmVnX3BhZ2VfbGlzdCgKKwkJCQlzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsIGludCBwYWdlX2xpc3RfbGVuKTsKKworLyoqCisgKiBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdCAtIERlYWxsb2NhdGVzIGEgcHJldmlvdXNseSBhbGxvY2F0ZWQKKyAqICAgcGFnZSBsaXN0IGFycmF5LgorICogQHBhZ2VfbGlzdCAtIHN0cnVjdCBpYl9mYXN0X3JlZ19wYWdlX2xpc3QgcG9pbnRlciB0byBiZSBkZWFsbG9jYXRlZC4KKyAqLwordm9pZCBpYl9mcmVlX2Zhc3RfcmVnX3BhZ2VfbGlzdChzdHJ1Y3QgaWJfZmFzdF9yZWdfcGFnZV9saXN0ICpwYWdlX2xpc3QpOworCisvKioKKyAqIGliX3VwZGF0ZV9mYXN0X3JlZ19rZXkgLSB1cGRhdGVzIHRoZSBrZXkgcG9ydGlvbiBvZiB0aGUgZmFzdF9yZWcgTVIKKyAqICAgUl9LZXkgYW5kIExfS2V5LgorICogQG1yIC0gc3RydWN0IGliX21yIHBvaW50ZXIgdG8gYmUgdXBkYXRlZC4KKyAqIEBuZXdrZXkgLSBuZXcga2V5IHRvIGJlIHVzZWQuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBpYl91cGRhdGVfZmFzdF9yZWdfa2V5KHN0cnVjdCBpYl9tciAqbXIsIHU4IG5ld2tleSkKK3sKKwltci0+bGtleSA9IChtci0+bGtleSAmIDB4ZmZmZmZmMDApIHwgbmV3a2V5OworCW1yLT5ya2V5ID0gKG1yLT5ya2V5ICYgMHhmZmZmZmYwMCkgfCBuZXdrZXk7Cit9CisKKy8qKgogICogaWJfYWxsb2NfbXcgLSBBbGxvY2F0ZXMgYSBtZW1vcnkgd2luZG93LgogICogQHBkOiBUaGUgcHJvdGVjdGlvbiBkb21haW4gYXNzb2NpYXRlZCB3aXRoIHRoZSBtZW1vcnkgd2luZG93LgogICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3JkbWEvaXdfY20uaCBiL2luY2x1ZGUvcmRtYS9pd19jbS5oCmluZGV4IGFlZWZhOWIuLmNiYjgyMmUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9pd19jbS5oCisrKyBiL2luY2x1ZGUvcmRtYS9pd19jbS5oCkBAIC02Miw3ICs2Miw3IEBACiAJc3RydWN0IHNvY2thZGRyX2luIHJlbW90ZV9hZGRyOwogCXZvaWQgKnByaXZhdGVfZGF0YTsKIAl1OCBwcml2YXRlX2RhdGFfbGVuOwotCXZvaWQqIHByb3ZpZGVyX2RhdGE7CisJdm9pZCAqcHJvdmlkZXJfZGF0YTsKIH07CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9yZG1hL3JkbWFfY20uaCBiL2luY2x1ZGUvcmRtYS9yZG1hX2NtLmgKaW5kZXggMDEwZjg3Ni4uMjJiYjJlNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZG1hL3JkbWFfY20uaAorKysgYi9pbmNsdWRlL3JkbWEvcmRtYV9jbS5oCkBAIC0yLDI5ICsyLDMzIEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgVm9sdGFpcmUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoYykgMjAwNSBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpZiAhZGVmaW5lZChSRE1BX0NNX0gpCkBAIC01NywxMSArNjEsMTEgQEAKIH07CiAKIGVudW0gcmRtYV9wb3J0X3NwYWNlIHsKLQlSRE1BX1BTX1NEUCAgPSAweDAwMDEsCi0JUkRNQV9QU19JUE9JQj0gMHgwMDAyLAotCVJETUFfUFNfVENQICA9IDB4MDEwNiwKLQlSRE1BX1BTX1VEUCAgPSAweDAxMTEsCi0JUkRNQV9QU19TQ1RQID0gMHgwMTgzCisJUkRNQV9QU19TRFAgICA9IDB4MDAwMSwKKwlSRE1BX1BTX0lQT0lCID0gMHgwMDAyLAorCVJETUFfUFNfVENQICAgPSAweDAxMDYsCisJUkRNQV9QU19VRFAgICA9IDB4MDExMSwKKwlSRE1BX1BTX1NDVFAgID0gMHgwMTgzCiB9OwogCiBzdHJ1Y3QgcmRtYV9hZGRyIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcmRtYS9yZG1hX2NtX2liLmggYi9pbmNsdWRlL3JkbWEvcmRtYV9jbV9pYi5oCmluZGV4IDk1MDQyNGIuLjIzODljM2IgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcmRtYS9yZG1hX2NtX2liLmgKKysrIGIvaW5jbHVkZS9yZG1hL3JkbWFfY21faWIuaApAQCAtMSwyOSArMSwzMyBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotICogVGhpcyBTb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciBvbmUgb2YgdGhlIGZvbGxvd2luZyBsaWNlbnNlczoKKyAqIFRoaXMgc29mdHdhcmUgaXMgYXZhaWxhYmxlIHRvIHlvdSB1bmRlciBhIGNob2ljZSBvZiBvbmUgb2YgdHdvCisgKiBsaWNlbnNlcy4gIFlvdSBtYXkgY2hvb3NlIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCisgKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiwgYXZhaWxhYmxlIGZyb20gdGhlIGZpbGUKKyAqIENPUFlJTkcgaW4gdGhlIG1haW4gZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUsIG9yIHRoZQorICogT3BlbklCLm9yZyBCU0QgbGljZW5zZSBiZWxvdzoKICAqCi0gKiAxKSB1bmRlciB0aGUgdGVybXMgb2YgdGhlICJDb21tb24gUHVibGljIExpY2Vuc2UgMS4wIiBhIGNvcHkgb2Ygd2hpY2ggaXMKLSAqICAgIGF2YWlsYWJsZSBmcm9tIHRoZSBPcGVuIFNvdXJjZSBJbml0aWF0aXZlLCBzZWUKLSAqICAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvY3BsLnBocC4KKyAqICAgICBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yCisgKiAgICAgd2l0aG91dCBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nCisgKiAgICAgY29uZGl0aW9ucyBhcmUgbWV0OgogICoKLSAqIDIpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIlRoZSBCU0QgTGljZW5zZSIgYSBjb3B5IG9mIHdoaWNoIGlzCi0gKiAgICBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyLgogICoKLSAqIDMpIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIFZlcnNpb24gMiIgYQotICogICAgY29weSBvZiB3aGljaCBpcyBhdmFpbGFibGUgZnJvbSB0aGUgT3BlbiBTb3VyY2UgSW5pdGlhdGl2ZSwgc2VlCi0gKiAgICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC1saWNlbnNlLnBocC4KKyAqICAgICAgLSBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICAgICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgICAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgICAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogTGljZW5zZWUgaGFzIHRoZSByaWdodCB0byBjaG9vc2Ugb25lIG9mIHRoZSBhYm92ZSBsaWNlbnNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlIGFuZCBvbmUgb2YgdGhlIGxpY2Vuc2Ugbm90aWNlcy4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgYm90aCB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIG9uZSBvZiB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZSBkb2N1bWVudGF0aW9uCi0gKiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyAqIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgorICogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KKyAqIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgogICovCiAKICNpZiAhZGVmaW5lZChSRE1BX0NNX0lCX0gpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2FjOTdfY29kZWMuaCBiL2luY2x1ZGUvc291bmQvYWM5N19jb2RlYy5oCmluZGV4IDA0OWVkYzUuLjljMzA5ZGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvYWM5N19jb2RlYy5oCisrKyBiL2luY2x1ZGUvc291bmQvYWM5N19jb2RlYy5oCkBAIC01MDUsNiArNTA1LDcgQEAKIAkJCXVuc2lnbmVkIHNob3J0IHBjbXJlZ1szXTsJLy8gUENNIHJlZ2lzdGVycwogCQkJdW5zaWduZWQgc2hvcnQgY29kZWNfY2ZnWzNdOwkvLyBDT0RFQ19DRkcgYml0cwogCQkJdW5zaWduZWQgY2hhciBzd2FwX21pY19saW5laW47CS8vIEFEMTk4Ni9BRDE5ODZBIG9ubHkKKwkJCXVuc2lnbmVkIGNoYXIgbG9fYXNfbWFzdGVyOwkvKiBMTyBhcyBtYXN0ZXIgKi8KIAkJfSBhZDE4eHg7CiAJCXVuc2lnbmVkIGludCBkZXZfZmxhZ3M7CQkvKiBkZXZpY2Ugc3BlY2lmaWMgKi8KIAl9IHNwZWM7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2FkMTg0My5oIGIvaW5jbHVkZS9zb3VuZC9hZDE4NDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjM2YTlkCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9zb3VuZC9hZDE4NDMuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogVGhpcyBmaWxlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UuICBTZWUgdGhlIGZpbGUgIkNPUFlJTkciIGluIHRoZSBtYWluIGRpcmVjdG9yeSBvZiB0aGlzIGFyY2hpdmUKKyAqIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogQ29weXJpZ2h0IDIwMDMgVml2aWVuIENoYXBwZWxpZXIgPHZpdmllbi5jaGFwcGVsaWVyQGxpbnV4LW1pcHMub3JnPgorICogQ29weXJpZ2h0IDIwMDggVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAZnJhbmtlbi5kZT4KKyAqLworCisjaWZuZGVmIF9fU09VTkRfQUQxODQzX0gKKyNkZWZpbmUgX19TT1VORF9BRDE4NDNfSAorCitzdHJ1Y3Qgc25kX2FkMTg0MyB7CisJdm9pZCAqY2hpcDsKKwlpbnQgKCpyZWFkKSh2b2lkICpjaGlwLCBpbnQgcmVnKTsKKwlpbnQgKCp3cml0ZSkodm9pZCAqY2hpcCwgaW50IHJlZywgaW50IHZhbCk7Cit9OworCisjZGVmaW5lIEFEMTg0M19HQUlOX1JFQ0xFViAwCisjZGVmaW5lIEFEMTg0M19HQUlOX0xJTkUgICAxCisjZGVmaW5lIEFEMTg0M19HQUlOX0xJTkVfMiAyCisjZGVmaW5lIEFEMTg0M19HQUlOX01JQyAgICAzCisjZGVmaW5lIEFEMTg0M19HQUlOX1BDTV8wICA0CisjZGVmaW5lIEFEMTg0M19HQUlOX1BDTV8xICA1CisjZGVmaW5lIEFEMTg0M19HQUlOX1NJWkUgICAoQUQxODQzX0dBSU5fUENNXzErMSkKKworaW50IGFkMTg0M19nZXRfZ2Fpbl9tYXgoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkKTsKK2ludCBhZDE4NDNfZ2V0X2dhaW4oc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkKTsKK2ludCBhZDE4NDNfc2V0X2dhaW4oc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGlkLCBpbnQgbmV3dmFsKTsKK2ludCBhZDE4NDNfZ2V0X3JlY3NyYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKK2ludCBhZDE4NDNfc2V0X3JlY3NyYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgbmV3c3JjKTsKK3ZvaWQgYWQxODQzX3NldHVwX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgaWQsCisJCSAgICAgIHVuc2lnbmVkIGludCBmcmFtZXJhdGUsCisJCSAgICAgIHNuZF9wY21fZm9ybWF0X3QgZm10LAorCQkgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMpOwordm9pZCBhZDE4NDNfc2h1dGRvd25fZGFjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCQkgdW5zaWduZWQgaW50IGlkKTsKK3ZvaWQgYWQxODQzX3NldHVwX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJhbWVyYXRlLAorCQkgICAgICBzbmRfcGNtX2Zvcm1hdF90IGZtdCwKKwkJICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzKTsKK3ZvaWQgYWQxODQzX3NodXRkb3duX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKK2ludCBhZDE4NDNfaW5pdChzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzKTsKKworI2VuZGlmIC8qIF9fU09VTkRfQUQxODQzX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvY29udHJvbC5oIGIvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKaW5kZXggM2RjMTI5MS4uNDcyMWI0YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9jb250cm9sLmgKQEAgLTEyOSw5ICsxMjksNiBAQAogI2RlZmluZSBzbmRfY3RsX3VucmVnaXN0ZXJfaW9jdGxfY29tcGF0KGZjbikKICNlbmRpZgogCi1pbnQgc25kX2N0bF9lbGVtX3JlYWQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKTsKLWludCBzbmRfY3RsX2VsZW1fd3JpdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9maWxlICpmaWxlLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKTsKLQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgc25kX2N0bF9nZXRfaW9mZm51bShzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2lkICppZCkKIHsKIAlyZXR1cm4gaWQtPm51bWlkIC0ga2N0bC0+aWQubnVtaWQ7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NvcmUuaCBiL2luY2x1ZGUvc291bmQvY29yZS5oCmluZGV4IDY5NWVlNTMuLjU1OGI5NjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvY29yZS5oCisrKyBiL2luY2x1ZGUvc291bmQvY29yZS5oCkBAIC00MTIsMTMgKzQxMiwxMyBAQAogCiAjZW5kaWYgLyogQ09ORklHX1NORF9ERUJVRyAqLwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIC8qKgogICogc25kX3ByaW50ZGQgLSBkZWJ1ZyBwcmludGsKICAqIEBmb3JtYXQ6IGZvcm1hdCBzdHJpbmcKICAqCiAgKiBXb3JrcyBsaWtlIHNuZF9wcmludGsoKSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgotICogSWdub3JlZCB3aGVuIENPTkZJR19TTkRfREVCVUdfREVURUNUIGlzIG5vdCBzZXQuCisgKiBJZ25vcmVkIHdoZW4gQ09ORklHX1NORF9ERUJVR19WRVJCT1NFIGlzIG5vdCBzZXQuCiAgKi8KICNkZWZpbmUgc25kX3ByaW50ZGQoZm9ybWF0LCBhcmdzLi4uKSBzbmRfcHJpbnRrKGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKQEAgLTQ0Miw3ICs0NDIsNyBAQAogCXVuc2lnbmVkIHNob3J0IHN1YnZlbmRvcjsJLyogUENJIHN1YnZlbmRvciBJRCAqLwogCXVuc2lnbmVkIHNob3J0IHN1YmRldmljZTsJLyogUENJIHN1YmRldmljZSBJRCAqLwogCWludCB2YWx1ZTsJCQkvKiB2YWx1ZSAqLwotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJY29uc3QgY2hhciAqbmFtZTsJCS8qIG5hbWUgb2YgdGhlIGRldmljZSAob3B0aW9uYWwpICovCiAjZW5kaWYKIH07CkBAIC00NTAsNyArNDUwLDcgQEAKICNkZWZpbmUgX1NORF9QQ0lfUVVJUktfSUQodmVuZCxkZXYpIFwKIAkuc3VidmVuZG9yID0gKHZlbmQpLCAuc3ViZGV2aWNlID0gKGRldikKICNkZWZpbmUgU05EX1BDSV9RVUlSS19JRCh2ZW5kLGRldikge19TTkRfUENJX1FVSVJLX0lEKHZlbmQsIGRldil9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKICNkZWZpbmUgU05EX1BDSV9RVUlSSyh2ZW5kLGRldix4bmFtZSx2YWwpIFwKIAl7X1NORF9QQ0lfUVVJUktfSUQodmVuZCwgZGV2KSwgLnZhbHVlID0gKHZhbCksIC5uYW1lID0gKHhuYW1lKX0KICNlbHNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS1yZWdzLmggYi9pbmNsdWRlL3NvdW5kL2NzNDIzMS1yZWdzLmgKaW5kZXggZThkMWYzZS4uOTI2NDc1MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9jczQyMzEtcmVncy5oCisrKyBiL2luY2x1ZGUvc291bmQvY3M0MjMxLXJlZ3MuaApAQCAtMTc3LDQgKzE3NywxMiBAQAogI2RlZmluZSBDUzQyMzZfUklHSFRfV0FWRQkweDFjCS8qIHJpZ2h0IHdhdmV0YWJsZSBzZXJpYWwgcG9ydCB2b2x1bWUgKi8KICNkZWZpbmUgQ1M0MjM2X1ZFUlNJT04JCTB4OWMJLyogY2hpcCB2ZXJzaW9uIGFuZCBJRCAqLwogCisvKiBkZWZpbml0aW9ucyBmb3IgZXh0ZW5kZWQgcmVnaXN0ZXJzIC0gT1BUSTkzWCAqLworI2RlZmluZSBPUFRpOTMxX0FVWF9MRUZUX0lOUFVUCTB4MTAKKyNkZWZpbmUgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQJMHgxMQorI2RlZmluZSBPUFRpOTNYX01JQ19MRUZUX0lOUFVUCTB4MTQKKyNkZWZpbmUgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQJMHgxNQorI2RlZmluZSBPUFRpOTNYX09VVF9MRUZUCTB4MTYKKyNkZWZpbmUgT1BUaTkzWF9PVVRfUklHSFQJMHgxNworCiAjZW5kaWYgLyogX19TT1VORF9DUzQyMzFfUkVHU19IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS5oIGIvaW5jbHVkZS9zb3VuZC9jczQyMzEuaAppbmRleCA2NjA1NWQ3Li5mMDc4NWY5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3NvdW5kL2NzNDIzMS5oCisrKyBiL2luY2x1ZGUvc291bmQvY3M0MjMxLmgKQEAgLTU4LDYgKzU4LDcgQEAKIC8qIGNvbXBhdGlibGUsIGJ1dCBjbG9uZXMgKi8KICNkZWZpbmUgQ1M0MjMxX0hXX0lOVEVSV0FWRSAgICAgMHgxMDAwCS8qIEludGVyV2F2ZSBjaGlwICovCiAjZGVmaW5lIENTNDIzMV9IV19PUEwzU0EyICAgICAgIDB4MTEwMQkvKiBPUEwzLVNBMiBjaGlwLCBzaW1pbGFyIHRvIGNzNDIzMSAqLworI2RlZmluZSBDUzQyMzFfSFdfT1BUSTkzWCAJMHgxMTAyCS8qIE9wdGkgOTMwLzkzMS85MzMgKi8KIAogLyogZGVmaW5lcyBmb3IgY29kZWMuaHdzaGFyZSAqLwogI2RlZmluZSBDUzQyMzFfSFdTSEFSRV9JUlEJKDE8PDApCkBAIC0xMjAsNiArMTIxLDggQEAKIHZvaWQgc25kX2NzNDIzMV9tY2VfdXAoc3RydWN0IHNuZF9jczQyMzEgKmNoaXApOwogdm9pZCBzbmRfY3M0MjMxX21jZV9kb3duKHN0cnVjdCBzbmRfY3M0MjMxICpjaGlwKTsKIAordm9pZCBzbmRfY3M0MjMxX292ZXJyYW5nZShzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCk7CisKIGlycXJldHVybl90IHNuZF9jczQyMzFfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCk7CiAKIGNvbnN0IGNoYXIgKnNuZF9jczQyMzFfY2hpcF9pZChzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL2VtdTEwazEuaCBiL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCmluZGV4IDdiN2I5YjEuLjEwZWUyOGUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCisrKyBiL2luY2x1ZGUvc291bmQvZW11MTBrMS5oCkBAIC0xNjcwLDYgKzE2NzAsNyBAQAogCXVuc2lnbmVkIGNoYXIgc3BpX2RhYzsgICAgICAvKiBTUEkgaW50ZXJmYWNlIGZvciBEQUMgKi8KIAl1bnNpZ25lZCBjaGFyIGkyY19hZGM7ICAgICAgLyogSTJDIGludGVyZmFjZSBmb3IgQURDICovCiAJdW5zaWduZWQgY2hhciBhZGNfMTM2MXQ7ICAgIC8qIFVzZSBQaGlsaXBzIDEzNjFUIEFEQyAqLworCXVuc2lnbmVkIGNoYXIgaW52ZXJ0X3NoYXJlZF9zcGRpZjsgLyogYW5hbG9nL2RpZ2l0YWwgc3dpdGNoIGludmVydGVkICovCiAJY29uc3QgY2hhciAqZHJpdmVyOwogCWNvbnN0IGNoYXIgKm5hbWU7CiAJY29uc3QgY2hhciAqaWQ7CQkvKiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAtIGNhbiBiZSBOVUxMIGlmIG5vdCBuZWVkZWQgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvc2VxX2tlcm5lbC5oIGIvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKaW5kZXggZjAyM2MxYi4uM2Q5YWZiNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKKysrIGIvaW5jbHVkZS9zb3VuZC9zZXFfa2VybmVsLmgKQEAgLTEwNSw3ICsxMDUsNyBAQAogCQkJICAgICAgaW50IGNhcCwgaW50IHR5cGUsIGludCBtaWRpX2NoYW5uZWxzLCBpbnQgbWlkaV92b2ljZXMsIGNoYXIgKnBvcnRuYW1lKTsKIGludCBzbmRfc2VxX2V2ZW50X3BvcnRfZGV0YWNoKGludCBjbGllbnQsIGludCBwb3J0KTsKIAotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIHZvaWQgc25kX3NlcV9hdXRvbG9hZF9sb2NrKHZvaWQpOwogdm9pZCBzbmRfc2VxX2F1dG9sb2FkX3VubG9jayh2b2lkKTsKICNlbHNlCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3NvYy1kYXBtLmggYi9pbmNsdWRlL3NvdW5kL3NvYy1kYXBtLmgKaW5kZXggYTEwNWIwMS4uMzAzMGZkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zb2MtZGFwbS5oCisrKyBiL2luY2x1ZGUvc291bmQvc29jLWRhcG0uaApAQCAtMTMwLDYgKzEzMCwxMyBAQAogewkuaWQgPSBzbmRfc29jX2RhcG1fYWRjLCAubmFtZSA9IHduYW1lLCAuc25hbWUgPSBzdG5hbWUsIC5yZWcgPSB3cmVnLCBcCiAJLnNoaWZ0ID0gd3NoaWZ0LCAuaW52ZXJ0ID0gd2ludmVydH0KIAorLyogZ2VuZXJpYyByZWdpc3RlciBtb2RpZmllciB3aWRnZXQgKi8KKyNkZWZpbmUgU05EX1NPQ19EQVBNX1JFRyh3aWQsIHduYW1lLCB3cmVnLCB3c2hpZnQsIHdtYXNrLCB3b25fdmFsLCB3b2ZmX3ZhbCkgXAorewkuaWQgPSB3aWQsIC5uYW1lID0gd25hbWUsIC5rY29udHJvbHMgPSBOVUxMLCAubnVtX2tjb250cm9scyA9IDAsIFwKKwkucmVnID0gLSgod3JlZykgKyAxKSwgLnNoaWZ0ID0gd3NoaWZ0LCAubWFzayA9IHdtYXNrLCBcCisJLm9uX3ZhbCA9IHdvbl92YWwsIC5vZmZfdmFsID0gd29mZl92YWwsIC5ldmVudCA9IGRhcG1fcmVnX2V2ZW50LCBcCisJLmV2ZW50X2ZsYWdzID0gU05EX1NPQ19EQVBNX1BSRV9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUR9CisKIC8qIGRhcG0ga2NvbnRyb2wgdHlwZXMgKi8KICNkZWZpbmUgU09DX0RBUE1fU0lOR0xFKHhuYW1lLCByZWcsIHNoaWZ0LCBtYXgsIGludmVydCkgXAogewkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgXApAQCAtMTkzLDYgKzIwMCw3IEBACiBlbnVtIHNuZF9zb2NfZGFwbV90eXBlOwogc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoOwogc3RydWN0IHNuZF9zb2NfZGFwbV9waW47CitzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlOwogCiAvKiBkYXBtIGNvbnRyb2xzICovCiBpbnQgc25kX3NvY19kYXBtX3B1dF92b2xzdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKQEAgLTIwNSwyNSArMjEzLDMyIEBACiAJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpOwogaW50IHNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCiAJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCk7CitpbnQgc25kX3NvY19kYXBtX25ld19jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndpZGdldCwKKwlpbnQgbnVtKTsKIAogLyogZGFwbSBwYXRoIHNldHVwICovCi1pbnQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAoraW50ICBfX2RlcHJlY2F0ZWQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAogCWNvbnN0IGNoYXIgKnNpbmtfbmFtZSwgY29uc3QgY2hhciAqY29udHJvbF9uYW1lLCBjb25zdCBjaGFyICpzcmNfbmFtZSk7CiBpbnQgc25kX3NvY19kYXBtX25ld193aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CiB2b2lkIHNuZF9zb2NfZGFwbV9mcmVlKHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KTsKK2ludCBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkgICAgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSAqcm91dGUsIGludCBudW0pOwogCiAvKiBkYXBtIGV2ZW50cyAqLwogaW50IHNuZF9zb2NfZGFwbV9zdHJlYW1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpzdHJlYW0sCiAJaW50IGV2ZW50KTsKLWludCBzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2LCBpbnQgZXZlbnQpOworaW50IHNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiwKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCk7CiAKIC8qIGRhcG0gc3lzIGZzIC0gdXNlZCBieSB0aGUgY29yZSAqLwogaW50IHNuZF9zb2NfZGFwbV9zeXNfYWRkKHN0cnVjdCBkZXZpY2UgKmRldik7CiAKLS8qIGRhcG0gYXVkaW8gZW5kcG9pbnQgY29udHJvbCAqLwotaW50IHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAotCWNoYXIgKnBpbiwgaW50IHN0YXR1cyk7Ci1pbnQgc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CisvKiBkYXBtIGF1ZGlvIHBpbiBjb250cm9sIGFuZCBzdGF0dXMgKi8KK2ludCBzbmRfc29jX2RhcG1fZW5hYmxlX3BpbihzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKnBpbik7CitpbnQgc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgY2hhciAqcGluKTsKK2ludCBzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pOworaW50IHNuZF9zb2NfZGFwbV9zeW5jKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CiAKIC8qIGRhcG0gd2lkZ2V0IHR5cGVzICovCiBlbnVtIHNuZF9zb2NfZGFwbV90eXBlIHsKQEAgLTI0NSw2ICsyNjAsMTggQEAKIAlzbmRfc29jX2RhcG1fcG9zdCwJCQkvKiBtYWNoaW5lIHNwZWNpZmljIHBvc3Qgd2lkZ2V0IC0gZXhlYyBsYXN0ICovCiB9OwogCisvKgorICogREFQTSBhdWRpbyByb3V0ZSBkZWZpbml0aW9uLgorICoKKyAqIERlZmluZXMgYW4gYXVkaW8gcm91dGUgb3JpZ2luYXRpbmcgYXQgc291cmNlIHZpYSBjb250cm9sIGFuZCBmaW5pc2hpbmcKKyAqIGF0IHNpbmsuCisgKi8KK3N0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgeworCWNvbnN0IGNoYXIgKnNpbms7CisJY29uc3QgY2hhciAqY29udHJvbDsKKwljb25zdCBjaGFyICpzb3VyY2U7Cit9OworCiAvKiBkYXBtIGF1ZGlvIHBhdGggYmV0d2VlbiB0d28gd2lkZ2V0cyAqLwogc3RydWN0IHNuZF9zb2NfZGFwbV9wYXRoIHsKIAljaGFyICpuYW1lOwpAQCAtMjc3LDYgKzMwNCw5IEBACiAJdW5zaWduZWQgY2hhciBzaGlmdDsJCQkvKiBiaXRzIHRvIHNoaWZ0ICovCiAJdW5zaWduZWQgaW50IHNhdmVkX3ZhbHVlOwkJLyogd2lkZ2V0IHNhdmVkIHZhbHVlICovCiAJdW5zaWduZWQgaW50IHZhbHVlOwkJCQkvKiB3aWRnZXQgY3VycmVudCB2YWx1ZSAqLworCXVuc2lnbmVkIGludCBtYXNrOwkJCS8qIG5vbi1zaGlmdGVkIG1hc2sgKi8KKwl1bnNpZ25lZCBpbnQgb25fdmFsOwkJCS8qIG9uIHN0YXRlIHZhbHVlICovCisJdW5zaWduZWQgaW50IG9mZl92YWw7CQkJLyogb2ZmIHN0YXRlIHZhbHVlICovCiAJdW5zaWduZWQgY2hhciBwb3dlcjoxOwkJCS8qIGJsb2NrIHBvd2VyIHN0YXR1cyAqLwogCXVuc2lnbmVkIGNoYXIgaW52ZXJ0OjE7CQkJLyogaW52ZXJ0IHRoZSBwb3dlciBiaXQgKi8KIAl1bnNpZ25lZCBjaGFyIGFjdGl2ZToxOwkJCS8qIGFjdGl2ZSBzdHJlYW0gb24gREFDLCBBREMncyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9zb3VuZC9zb2MuaCBiL2luY2x1ZGUvc291bmQvc29jLmgKaW5kZXggZDNjOGMwMy4uMTg5MGQ4NyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC9zb2MuaAorKysgYi9pbmNsdWRlL3NvdW5kL3NvYy5oCkBAIC03Myw2ICs3MywxNSBAQAogCS5nZXQgPSBzbmRfc29jX2dldF92b2xzd18yciwgLnB1dCA9IHNuZF9zb2NfcHV0X3ZvbHN3XzJyLCBcCiAJLnByaXZhdGVfdmFsdWUgPSAocmVnX2xlZnQpIHwgKChzaGlmdCkgPDwgOCkgIHwgXAogCQkoKG1heCkgPDwgMTIpIHwgKChpbnZlcnQpIDw8IDIwKSB8ICgocmVnX3JpZ2h0KSA8PCAyNCkgfQorI2RlZmluZSBTT0NfRE9VQkxFX1M4X1RMVih4bmFtZSwgcmVnLCBtaW4sIG1heCwgdGx2X2FycmF5KSBcCit7CS5pZmFjZSAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSAoeG5hbWUpLCBcCisJLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCB8IFwKKwkJICBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLCBcCisJLnRsdi5wICA9ICh0bHZfYXJyYXkpLCBcCisJLmluZm8gICA9IHNuZF9zb2NfaW5mb192b2xzd19zOCwgLmdldCA9IHNuZF9zb2NfZ2V0X3ZvbHN3X3M4LCBcCisJLnB1dCAgICA9IHNuZF9zb2NfcHV0X3ZvbHN3X3M4LCBcCisJLnByaXZhdGVfdmFsdWUgPSAocmVnKSB8ICgoKHNpZ25lZCBjaGFyKW1heCkgPDwgMTYpIHwgXAorCQkJICgoKHNpZ25lZCBjaGFyKW1pbikgPDwgMjQpIH0KICNkZWZpbmUgU09DX0VOVU1fRE9VQkxFKHhyZWcsIHhzaGlmdF9sLCB4c2hpZnRfciwgeG1hc2ssIHh0ZXh0cykgXAogewkucmVnID0geHJlZywgLnNoaWZ0X2wgPSB4c2hpZnRfbCwgLnNoaWZ0X3IgPSB4c2hpZnRfciwgXAogCS5tYXNrID0geG1hc2ssIC50ZXh0cyA9IHh0ZXh0cyB9CkBAIC05MSw2ICsxMDAsMTUgQEAKIAkuaW5mbyA9IHNuZF9zb2NfaW5mb192b2xzdywgXAogCS5nZXQgPSB4aGFuZGxlcl9nZXQsIC5wdXQgPSB4aGFuZGxlcl9wdXQsIFwKIAkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUoeHJlZywgeHNoaWZ0LCB4bWFzaywgeGludmVydCkgfQorI2RlZmluZSBTT0NfU0lOR0xFX0VYVF9UTFYoeG5hbWUsIHhyZWcsIHhzaGlmdCwgeG1hc2ssIHhpbnZlcnQsXAorCSB4aGFuZGxlcl9nZXQsIHhoYW5kbGVyX3B1dCwgdGx2X2FycmF5KSBcCit7CS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCBcCisJLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCB8XAorCQkgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSxcCisJLnRsdi5wID0gKHRsdl9hcnJheSksIFwKKwkuaW5mbyA9IHNuZF9zb2NfaW5mb192b2xzdywgXAorCS5nZXQgPSB4aGFuZGxlcl9nZXQsIC5wdXQgPSB4aGFuZGxlcl9wdXQsIFwKKwkucHJpdmF0ZV92YWx1ZSA9IFNPQ19TSU5HTEVfVkFMVUUoeHJlZywgeHNoaWZ0LCB4bWFzaywgeGludmVydCkgfQogI2RlZmluZSBTT0NfU0lOR0xFX0JPT0xfRVhUKHhuYW1lLCB4ZGF0YSwgeGhhbmRsZXJfZ2V0LCB4aGFuZGxlcl9wdXQpIFwKIHsJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIFwKIAkuaW5mbyA9IHNuZF9zb2NfaW5mb19ib29sX2V4dCwgXApAQCAtMTAzLDYgKzEyMSwyNCBAQAogCS5wcml2YXRlX3ZhbHVlID0gKHVuc2lnbmVkIGxvbmcpJnhlbnVtIH0KIAogLyoKKyAqIEJpYXMgbGV2ZWxzCisgKgorICogQE9OOiAgICAgIEJpYXMgaXMgZnVsbHkgb24gZm9yIGF1ZGlvIHBsYXliYWNrIGFuZCBjYXB0dXJlIG9wZXJhdGlvbnMuCisgKiBAUFJFUEFSRTogUHJlcGFyZSBmb3IgYXVkaW8gb3BlcmF0aW9ucy4gQ2FsbGVkIGJlZm9yZSBEQVBNIHN3aXRjaGluZyBmb3IKKyAqICAgICAgICAgICBzdHJlYW0gc3RhcnQgYW5kIHN0b3Agb3BlcmF0aW9ucy4KKyAqIEBTVEFOREJZOiBMb3cgcG93ZXIgc3RhbmRieSBzdGF0ZSB3aGVuIG5vIHBsYXliYWNrL2NhcHR1cmUgb3BlcmF0aW9ucyBhcmUKKyAqICAgICAgICAgICBpbiBwcm9ncmVzcy4gTk9URTogVGhlIHRyYW5zaXRpb24gdGltZSBiZXR3ZWVuIFNUQU5EQlkgYW5kIE9OCisgKiAgICAgICAgICAgc2hvdWxkIGJlIGFzIGZhc3QgYXMgcG9zc2libGUgYW5kIG5vIGxvbmdlciB0aGFuIDEwbXMuCisgKiBAT0ZGOiAgICAgUG93ZXIgT2ZmLiBObyByZXN0cmljdGlvbnMgb24gdHJhbnNpdGlvbiB0aW1lcy4KKyAqLworZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgeworCVNORF9TT0NfQklBU19PTiwKKwlTTkRfU09DX0JJQVNfUFJFUEFSRSwKKwlTTkRfU09DX0JJQVNfU1RBTkRCWSwKKwlTTkRfU09DX0JJQVNfT0ZGLAorfTsKKworLyoKICAqIERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlIChEQUkpIHR5cGVzCiAgKi8KICNkZWZpbmUgU05EX1NPQ19EQUlfQUM5NwkweDEKQEAgLTE4NSw4ICsyMjEsNyBAQAogc3RydWN0IHNuZF9zb2Nfb3BzOwogc3RydWN0IHNuZF9zb2NfZGFpX21vZGU7CiBzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZTsKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaTsKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWk7CitzdHJ1Y3Qgc25kX3NvY19kYWk7CiBzdHJ1Y3Qgc25kX3NvY19jb2RlYzsKIHN0cnVjdCBzbmRfc29jX21hY2hpbmVfY29uZmlnOwogc3RydWN0IHNvY19lbnVtOwpAQCAtMjIxLDYgKzI1NiwyNyBAQAogCXN0cnVjdCBzbmRfYWM5N19idXNfb3BzICpvcHMsIGludCBudW0pOwogdm9pZCBzbmRfc29jX2ZyZWVfYWM5N19jb2RlYyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpOwogCisvKiBEaWdpdGFsIEF1ZGlvIEludGVyZmFjZSBjbG9ja2luZyBBUEkuKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgY2xrX2lkLAorCXVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKTsKKworaW50IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJaW50IGRpdl9pZCwgaW50IGRpdik7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpOworCisvKiBEaWdpdGFsIEF1ZGlvIGludGVyZmFjZSBmb3JtYXR0aW5nICovCitpbnQgc25kX3NvY19kYWlfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCk7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfdGRtX3Nsb3Qoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cyk7CisKK2ludCBzbmRfc29jX2RhaV9zZXRfdHJpc3RhdGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSk7CisKKy8qIERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlIG11dGUgKi8KK2ludCBzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKTsKKwogLyoKICAqQ29udHJvbHMKICAqLwpAQCAtMjQ5LDYgKzMwNSwxMiBAQAogCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKIGludCBzbmRfc29jX3B1dF92b2xzd18ycihzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKIAlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCk7CitpbnQgc25kX3NvY19pbmZvX3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pOworaW50IHNuZF9zb2NfZ2V0X3ZvbHN3X3M4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKTsKK2ludCBzbmRfc29jX3B1dF92b2xzd19zOChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCk7CiAKIC8qIFNvQyBQQ00gc3RyZWFtIGluZm9ybWF0aW9uICovCiBzdHJ1Y3Qgc25kX3NvY19wY21fc3RyZWFtIHsKQEAgLTI3Miw4NyArMzM0LDQ1IEBACiAJaW50ICgqdHJpZ2dlcikoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICosIGludCk7CiB9OwogCi0vKiBBU29DIGNvZGVjIERBSSBvcHMgKi8KLXN0cnVjdCBzbmRfc29jX2NvZGVjX29wcyB7Ci0JLyogY29kZWMgREFJIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24gKi8KLQlpbnQgKCpzZXRfc3lzY2xrKShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKKy8qIEFTb0MgREFJIG9wcyAqLworc3RydWN0IHNuZF9zb2NfZGFpX29wcyB7CisJLyogREFJIGNsb2NraW5nIGNvbmZpZ3VyYXRpb24gKi8KKwlpbnQgKCpzZXRfc3lzY2xrKShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpOwotCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KTsKLQlpbnQgKCpzZXRfY2xrZGl2KShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKLQkJaW50IGRpdl9pZCwgaW50IGRpdik7CisJaW50ICgqc2V0X2Nsa2Rpdikoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBkaXZfaWQsIGludCBkaXYpOwogCi0JLyogQ1BVIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLwotCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAotCQl1bnNpZ25lZCBpbnQgZm10KTsKLQlpbnQgKCpzZXRfdGRtX3Nsb3QpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorCS8qIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLworCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KTsKKwlpbnQgKCpzZXRfdGRtX3Nsb3QpKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCQl1bnNpZ25lZCBpbnQgbWFzaywgaW50IHNsb3RzKTsKLQlpbnQgKCpzZXRfdHJpc3RhdGUpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqLCBpbnQgdHJpc3RhdGUpOworCWludCAoKnNldF90cmlzdGF0ZSkoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSk7CiAKIAkvKiBkaWdpdGFsIG11dGUgKi8KLQlpbnQgKCpkaWdpdGFsX211dGUpKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqLCBpbnQgbXV0ZSk7CisJaW50ICgqZGlnaXRhbF9tdXRlKShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpOwogfTsKIAotLyogQVNvQyBjcHUgREFJIG9wcyAqLwotc3RydWN0IHNuZF9zb2NfY3B1X29wcyB7Ci0JLyogQ1BVIERBSSBjbG9ja2luZyBjb25maWd1cmF0aW9uICovCi0JaW50ICgqc2V0X3N5c2Nsaykoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpOwotCWludCAoKnNldF9jbGtkaXYpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCWludCBkaXZfaWQsIGludCBkaXYpOwotCWludCAoKnNldF9wbGwpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpOwotCi0JLyogQ1BVIERBSSBmb3JtYXQgY29uZmlndXJhdGlvbiAqLwotCWludCAoKnNldF9mbXQpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCi0JCXVuc2lnbmVkIGludCBmbXQpOwotCWludCAoKnNldF90ZG1fc2xvdCkoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKLQkJdW5zaWduZWQgaW50IG1hc2ssIGludCBzbG90cyk7Ci0JaW50ICgqc2V0X3RyaXN0YXRlKShzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICosIGludCB0cmlzdGF0ZSk7Ci19OwotCi0vKiBTb0MgQ29kZWMgREFJICovCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgewotCWNoYXIgKm5hbWU7Ci0JaW50IGlkOwotCXVuc2lnbmVkIGNoYXIgdHlwZTsKLQotCS8qIERBSSBjYXBhYmlsaXRpZXMgKi8KLQlzdHJ1Y3Qgc25kX3NvY19wY21fc3RyZWFtIHBsYXliYWNrOwotCXN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gY2FwdHVyZTsKLQotCS8qIERBSSBydW50aW1lIGluZm8gKi8KLQlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7Ci0JdW5zaWduZWQgaW50IGFjdGl2ZTsKLQl1bnNpZ25lZCBjaGFyIHBvcF93YWl0OjE7Ci0KLQkvKiBvcHMgKi8KLQlzdHJ1Y3Qgc25kX3NvY19vcHMgb3BzOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX29wcyBkYWlfb3BzOwotCi0JLyogREFJIHByaXZhdGUgZGF0YSAqLwotCXZvaWQgKnByaXZhdGVfZGF0YTsKLX07Ci0KLS8qIFNvQyBDUFUgREFJICovCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIHsKLQorLyogU29DICBEQUkgKERpZ2l0YWwgQXVkaW8gSW50ZXJmYWNlKSAqLworc3RydWN0IHNuZF9zb2NfZGFpIHsKIAkvKiBEQUkgZGVzY3JpcHRpb24gKi8KIAljaGFyICpuYW1lOwogCXVuc2lnbmVkIGludCBpZDsKIAl1bnNpZ25lZCBjaGFyIHR5cGU7CiAKIAkvKiBEQUkgY2FsbGJhY2tzICovCi0JaW50ICgqcHJvYmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOwotCXZvaWQgKCpyZW1vdmUpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpOworCWludCAoKnByb2JlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKKwl2b2lkICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkgICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCWludCAoKnN1c3BlbmQpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSk7CiAJaW50ICgqcmVzdW1lKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCiAJLyogb3BzICovCiAJc3RydWN0IHNuZF9zb2Nfb3BzIG9wczsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfb3BzIGRhaV9vcHM7CisJc3RydWN0IHNuZF9zb2NfZGFpX29wcyBkYWlfb3BzOwogCiAJLyogREFJIGNhcGFiaWxpdGllcyAqLwogCXN0cnVjdCBzbmRfc29jX3BjbV9zdHJlYW0gY2FwdHVyZTsKQEAgLTM2MCw3ICszODAsOSBAQAogCiAJLyogREFJIHJ1bnRpbWUgaW5mbyAqLwogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWU7Ci0JdW5zaWduZWQgY2hhciBhY3RpdmU6MTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJdW5zaWduZWQgaW50IGFjdGl2ZTsKKwl1bnNpZ25lZCBjaGFyIHBvcF93YWl0OjE7CiAJdm9pZCAqZG1hX2RhdGE7CiAKIAkvKiBEQUkgcHJpdmF0ZSBkYXRhICovCkBAIC0zNzQsNyArMzk2LDggQEAKIAlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CiAKIAkvKiBjYWxsYmFja3MgKi8KLQlpbnQgKCpkYXBtX2V2ZW50KShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCk7CisJaW50ICgqc2V0X2JpYXNfbGV2ZWwpKHN0cnVjdCBzbmRfc29jX2NvZGVjICosCisJCQkgICAgICBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCk7CiAKIAkvKiBydW50aW1lICovCiAJc3RydWN0IHNuZF9jYXJkICpjYXJkOwpAQCAtMzk2LDEyICs0MTksMTIgQEAKIAkvKiBkYXBtICovCiAJc3RydWN0IGxpc3RfaGVhZCBkYXBtX3dpZGdldHM7CiAJc3RydWN0IGxpc3RfaGVhZCBkYXBtX3BhdGhzOwotCXVuc2lnbmVkIGludCBkYXBtX3N0YXRlOwotCXVuc2lnbmVkIGludCBzdXNwZW5kX2RhcG1fc3RhdGU7CisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgYmlhc19sZXZlbDsKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBzdXNwZW5kX2JpYXNfbGV2ZWw7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBkZWxheWVkX3dvcms7CiAKIAkvKiBjb2RlYyBEQUkncyAqLwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpOwogCXVuc2lnbmVkIGludCBudW1fZGFpOwogfTsKIApAQCAtNDIwLDEyICs0NDMsMTIgQEAKIAlpbnQgKCpwcm9iZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldik7CiAJaW50ICgqcmVtb3ZlKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAlpbnQgKCpzdXNwZW5kKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpOwogCWludCAoKnJlc3VtZSkoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKTsKIAogCS8qIHBjbSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gKi8KLQlpbnQgKCpwY21fbmV3KShzdHJ1Y3Qgc25kX2NhcmQgKiwgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICosCisJaW50ICgqcGNtX25ldykoc3RydWN0IHNuZF9jYXJkICosIHN0cnVjdCBzbmRfc29jX2RhaSAqLAogCQlzdHJ1Y3Qgc25kX3BjbSAqKTsKIAl2b2lkICgqcGNtX2ZyZWUpKHN0cnVjdCBzbmRfcGNtICopOwogCkBAIC00MzksOCArNDYyLDggQEAKIAljaGFyICpzdHJlYW1fbmFtZTsJCS8qIFN0cmVhbSBuYW1lICovCiAKIAkvKiBEQUkgKi8KLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaTsKIAogCS8qIG1hY2hpbmUgc3RyZWFtIG9wZXJhdGlvbnMgKi8KIAlzdHJ1Y3Qgc25kX3NvY19vcHMgKm9wczsKQEAgLTQ2Nyw3ICs0OTAsOCBAQAogCWludCAoKnJlc3VtZV9wb3N0KShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KTsKIAogCS8qIGNhbGxiYWNrcyAqLwotCWludCAoKmRhcG1fZXZlbnQpKHN0cnVjdCBzbmRfc29jX21hY2hpbmUgKiwgaW50IGV2ZW50KTsKKwlpbnQgKCpzZXRfYmlhc19sZXZlbCkoc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqLAorCQkJICAgICAgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpOwogCiAJLyogQ1BVIDwtLT4gQ29kZWMgREFJIGxpbmtzICAqLwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICpkYWlfbGluazsKQEAgLTQ4Miw2ICs1MDYsNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2UgKmNvZGVjX2RldjsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGRlbGF5ZWRfd29yazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZGVmZXJyZWRfcmVzdW1lX3dvcms7CiAJdm9pZCAqY29kZWNfZGF0YTsKIH07CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvc291bmQvdWRhMTM0MS5oIGIvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKaW5kZXggMmU1NjRiZi4uMTEwZDVkYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKKysrIGIvaW5jbHVkZS9zb3VuZC91ZGExMzQxLmgKQEAgLTE1LDggKzE1LDYgQEAKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZmVhdHVyZXMgc3VwcG9ydAogICovCiAKLS8qICRJZDogdWRhMTM0MS5oLHYgMS44IDIwMDUvMTEvMTcgMTQ6MTc6MjEgdGl3YWkgRXhwICQgKi8KLQogI2RlZmluZSBVREExMzQxX0FMU0FfTkFNRSAic25kLXVkYTEzNDEiCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL3NvdW5kL3ZlcnNpb24uaCBiL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCmluZGV4IGVkNmZiMmUuLjZiNzhhZmYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCisrKyBiL2luY2x1ZGUvc291bmQvdmVyc2lvbi5oCkBAIC0xLDMgKzEsMyBAQAotLyogaW5jbHVkZS92ZXJzaW9uLmguICBHZW5lcmF0ZWQgYnkgYWxzYS9rc3luYyBzY3JpcHQuICAqLwotI2RlZmluZSBDT05GSUdfU05EX1ZFUlNJT04gIjEuMC4xNiIKKy8qIGluY2x1ZGUvdmVyc2lvbi5oICovCisjZGVmaW5lIENPTkZJR19TTkRfVkVSU0lPTiAiMS4wLjE3IgogI2RlZmluZSBDT05GSUdfU05EX0RBVEUgIiIKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2V2ZW50cy5oIGIvaW5jbHVkZS94ZW4vZXZlbnRzLmgKaW5kZXggYWNkOGUwNi4uNjdjNDQzNiAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vZXZlbnRzLmgKKysrIGIvaW5jbHVkZS94ZW4vZXZlbnRzLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogdm9pZCB4ZW5fc2VuZF9JUElfb25lKHVuc2lnbmVkIGludCBjcHUsIGVudW0gaXBpX3ZlY3RvciB2ZWN0b3IpOwogaW50IHJlc2VuZF9pcnFfb25fZXZ0Y2huKHVuc2lnbmVkIGludCBpcnEpOwordm9pZCByZWJpbmRfZXZ0Y2huX2lycShpbnQgZXZ0Y2huLCBpbnQgaXJxKTsKIAogc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeV9yZW1vdGVfdmlhX2V2dGNobihpbnQgcG9ydCkKIHsKQEAgLTQwLDQgKzQxLDcgQEAKIH0KIAogZXh0ZXJuIHZvaWQgbm90aWZ5X3JlbW90ZV92aWFfaXJxKGludCBpcnEpOworCitleHRlcm4gdm9pZCB4ZW5faXJxX3Jlc3VtZSh2b2lkKTsKKwogI2VuZGlmCS8qIF9YRU5fRVZFTlRTX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmggYi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oCmluZGV4IDQ2NjIwNDguLmE0MGYxY2QgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2dyYW50X3RhYmxlLmgKKysrIGIvaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaApAQCAtNTEsNiArNTEsOSBAQAogCXUxNiBjb3VudDsKIH07CiAKK2ludCBnbnR0YWJfc3VzcGVuZCh2b2lkKTsKK2ludCBnbnR0YWJfcmVzdW1lKHZvaWQpOworCiBpbnQgZ250dGFiX2dyYW50X2ZvcmVpZ25fYWNjZXNzKGRvbWlkX3QgZG9taWQsIHVuc2lnbmVkIGxvbmcgZnJhbWUsCiAJCQkJaW50IHJlYWRvbmx5KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaHZjLWNvbnNvbGUuaCBiL2luY2x1ZGUveGVuL2h2Yy1jb25zb2xlLmgKaW5kZXggMjFjMGVjZi4uOThiNzliYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaHZjLWNvbnNvbGUuaAorKysgYi9pbmNsdWRlL3hlbi9odmMtY29uc29sZS5oCkBAIC0zLDQgKzMsMTMgQEAKIAogZXh0ZXJuIHN0cnVjdCBjb25zb2xlIHhlbmJvb3RfY29uc29sZTsKIAorI2lmZGVmIENPTkZJR19IVkNfWEVOCit2b2lkIHhlbl9jb25zb2xlX3Jlc3VtZSh2b2lkKTsKKyNlbHNlCitzdGF0aWMgaW5saW5lIHZvaWQgeGVuX2NvbnNvbGVfcmVzdW1lKHZvaWQpIHsgfQorI2VuZGlmCisKK3ZvaWQgeGVuX3Jhd19jb25zb2xlX3dyaXRlKGNvbnN0IGNoYXIgKnN0cik7Cit2b2lkIHhlbl9yYXdfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKKwogI2VuZGlmCS8qIFhFTl9IVkNfQ09OU09MRV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZWxmbm90ZS5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2VsZm5vdGUuaAppbmRleCBhNjRkM2RmLi43YTgyNjJjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZWxmbm90ZS5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9lbGZub3RlLmgKQEAgLTEyMCw2ICsxMjAsMjYgQEAKICAqLwogI2RlZmluZSBYRU5fRUxGTk9URV9CU0RfU1lNVEFCICAgIDExCiAKKy8qCisgKiBUaGUgbG93ZXN0IGFkZHJlc3MgdGhlIGh5cGVydmlzb3IgaG9sZSBjYW4gYmVnaW4gYXQgKG51bWVyaWMpLgorICoKKyAqIFRoaXMgbXVzdCBub3QgYmUgc2V0IGhpZ2hlciB0aGFuIEhZUEVSVklTT1JfVklSVF9TVEFSVC4gSXRzIHByZXNlbmNlCisgKiBhbHNvIGluZGljYXRlcyB0byB0aGUgaHlwZXJ2aXNvciB0aGF0IHRoZSBrZXJuZWwgY2FuIGRlYWwgd2l0aCB0aGUKKyAqIGhvbGUgc3RhcnRpbmcgYXQgYSBoaWdoZXIgYWRkcmVzcy4KKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9IVl9TVEFSVF9MT1cgIDEyCisKKy8qCisgKiBMaXN0IG9mIG1hZGRyX3Qtc2l6ZWQgbWFzay92YWx1ZSBwYWlycyBkZXNjcmliaW5nIGhvdyB0byByZWNvZ25pemUKKyAqIChub24tcHJlc2VudCkgTDEgcGFnZSB0YWJsZSBlbnRyaWVzIGNhcnJ5aW5nIHZhbGlkIE1GTnMgKG51bWVyaWMpLgorICovCisjZGVmaW5lIFhFTl9FTEZOT1RFX0wxX01GTl9WQUxJRCAgMTMKKworLyoKKyAqIFdoZXRoZXIgb3Igbm90IHRoZSBndWVzdCBzdXBwb3J0cyBjb29wZXJhdGl2ZSBzdXNwZW5kIGNhbmNlbGxhdGlvbi4KKyAqLworI2RlZmluZSBYRU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCAxNAorCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX0VMRk5PVEVfSF9fICovCiAKIC8qCmRpZmYgLS1naXQgYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvZmVhdHVyZXMuaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCmluZGV4IGQ3MzIyOGQuLmY1MWI2NDEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCisrKyBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9mZWF0dXJlcy5oCkBAIC0zOCw2ICszOCw5IEBACiAgKi8KICNkZWZpbmUgWEVORkVBVF9wYWVfcGdkaXJfYWJvdmVfNGdiICAgICAgICA0CiAKKy8qIHg4NjogRG9lcyB0aGlzIFhlbiBob3N0IHN1cHBvcnQgdGhlIE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQgaHlwZXJjYWxsPyAqLworI2RlZmluZSBYRU5GRUFUX21tdV9wdF91cGRhdGVfcHJlc2VydmVfYWQgIDUKKwogI2RlZmluZSBYRU5GRUFUX05SX1NVQk1BUFMgMQogCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX0ZFQVRVUkVTX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2ZiaWYuaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9mYmlmLmgKaW5kZXggNWE5MzRkZC4uOTc0YTUxZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2ZiaWYuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZmJpZi5oCkBAIC00OSwxMSArNDksMjcgQEAKIAlpbnQzMl90IGhlaWdodDsJCS8qIHJlY3QgaGVpZ2h0ICovCiB9OwogCisvKgorICogRnJhbWVidWZmZXIgcmVzaXplIG5vdGlmaWNhdGlvbiBldmVudAorICogQ2FwYWJsZSBiYWNrZW5kIHNldHMgZmVhdHVyZS1yZXNpemUgaW4geGVuc3RvcmUuCisgKi8KKyNkZWZpbmUgWEVORkJfVFlQRV9SRVNJWkUgMworCitzdHJ1Y3QgeGVuZmJfcmVzaXplIHsKKwl1aW50OF90IHR5cGU7CQkvKiBYRU5GQl9UWVBFX1JFU0laRSAqLworCWludDMyX3Qgd2lkdGg7CQkvKiB3aWR0aCBpbiBwaXhlbHMgKi8KKwlpbnQzMl90IGhlaWdodDsJCS8qIGhlaWdodCBpbiBwaXhlbHMgKi8KKwlpbnQzMl90IHN0cmlkZTsJCS8qIHN0cmlkZSBpbiBieXRlcyAqLworCWludDMyX3QgZGVwdGg7CQkvKiBkZXB0aCBpbiBiaXRzICovCisJaW50MzJfdCBvZmZzZXQ7CQkvKiBzdGFydCBvZmZzZXQgd2l0aGluIGZyYW1lYnVmZmVyICovCit9OworCiAjZGVmaW5lIFhFTkZCX09VVF9FVkVOVF9TSVpFIDQwCiAKIHVuaW9uIHhlbmZiX291dF9ldmVudCB7CiAJdWludDhfdCB0eXBlOwogCXN0cnVjdCB4ZW5mYl91cGRhdGUgdXBkYXRlOworCXN0cnVjdCB4ZW5mYl9yZXNpemUgcmVzaXplOwogCWNoYXIgcGFkW1hFTkZCX09VVF9FVkVOVF9TSVpFXTsKIH07CiAKQEAgLTEwNSwxNSArMTIxLDE4IEBACiAJICogRWFjaCBkaXJlY3RvcnkgcGFnZSBob2xkcyBQQUdFX1NJWkUgLyBzaXplb2YoKnBkKQogCSAqIGZyYW1lYnVmZmVyIHBhZ2VzLCBhbmQgY2FuIHRodXMgbWFwIHVwIHRvIFBBR0VfU0laRSAqCiAJICogUEFHRV9TSVpFIC8gc2l6ZW9mKCpwZCkgYnl0ZXMuICBXaXRoIFBBR0VfU0laRSA9PSA0MDk2IGFuZAotCSAqIHNpemVvZih1bnNpZ25lZCBsb25nKSA9PSA0LCB0aGF0J3MgNCBNZWdzLiAgVHdvIGRpcmVjdG9yeQotCSAqIHBhZ2VzIHNob3VsZCBiZSBlbm91Z2ggZm9yIGEgd2hpbGUuCisJICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpID09IDQvOCwgdGhhdCdzIDQgTWVncyAzMiBiaXQgYW5kIDIKKwkgKiBNZWdzIDY0IGJpdC4gIDI1NiBkaXJlY3RvcmllcyBnaXZlIGVub3VnaCByb29tIGZvciBhIDUxMgorCSAqIE1lZyBmcmFtZWJ1ZmZlciB3aXRoIGEgbWF4IHJlc29sdXRpb24gb2YgMTIsODAweDEwLDI0MC4KKwkgKiBTaG91bGQgYmUgZW5vdWdoIGZvciBhIHdoaWxlIHdpdGggcm9vbSBsZWZ0b3ZlciBmb3IKKwkgKiBleHBhbnNpb24uCiAJICovCi0JdW5zaWduZWQgbG9uZyBwZFsyXTsKKwl1bnNpZ25lZCBsb25nIHBkWzI1Nl07CiB9OwogCiAvKgotICogV2FydDogeGVua2JkIG5lZWRzIHRvIGtub3cgcmVzb2x1dGlvbi4gIFB1dCBpdCBoZXJlIHVudGlsIGEgYmV0dGVyCi0gKiBzb2x1dGlvbiBpcyBmb3VuZCwgYnV0IGRvbid0IGxlYWsgaXQgdG8gdGhlIGJhY2tlbmQuCisgKiBXYXJ0OiB4ZW5rYmQgbmVlZHMgdG8ga25vdyBkZWZhdWx0IHJlc29sdXRpb24uICBQdXQgaXQgaGVyZSB1bnRpbCBhCisgKiBiZXR0ZXIgc29sdXRpb24gaXMgZm91bmQsIGJ1dCBkb24ndCBsZWFrIGl0IHRvIHRoZSBiYWNrZW5kLgogICovCiAjaWZkZWYgX19LRVJORUxfXwogI2RlZmluZSBYRU5GQl9XSURUSCA4MDAKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9pby9rYmRpZi5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKaW5kZXggZmI5N2Y0Mi4uODA2NmM3OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL2lvL2tiZGlmLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKIAl1aW50OF90IHR5cGU7CQkvKiBYRU5LQkRfVFlQRV9NT1RJT04gKi8KIAlpbnQzMl90IHJlbF94OwkJLyogcmVsYXRpdmUgWCBtb3Rpb24gKi8KIAlpbnQzMl90IHJlbF95OwkJLyogcmVsYXRpdmUgWSBtb3Rpb24gKi8KKwlpbnQzMl90IHJlbF96OwkJLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdoZWVsKSAqLwogfTsKIAogc3RydWN0IHhlbmtiZF9rZXkgewpAQCAtNjEsNiArNjIsNyBAQAogCXVpbnQ4X3QgdHlwZTsJCS8qIFhFTktCRF9UWVBFX1BPUyAqLwogCWludDMyX3QgYWJzX3g7CQkvKiBhYnNvbHV0ZSBYIHBvc2l0aW9uIChpbiBGQiBwaXhlbHMpICovCiAJaW50MzJfdCBhYnNfeTsJCS8qIGFic29sdXRlIFkgcG9zaXRpb24gKGluIEZCIHBpeGVscykgKi8KKwlpbnQzMl90IHJlbF96OwkJLyogcmVsYXRpdmUgWiBtb3Rpb24gKHdoZWVsKSAqLwogfTsKIAogI2RlZmluZSBYRU5LQkRfSU5fRVZFTlRfU0laRSA0MApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL21lbW9yeS5oCmluZGV4IGRhNzY4NDYuLmFmMzZlYWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS9tZW1vcnkuaAorKysgYi9pbmNsdWRlL3hlbi9pbnRlcmZhY2UvbWVtb3J5LmgKQEAgLTI5LDcgKzI5LDcgQEAKICAgICAgKiAgIE9VVDogR01GTiBiYXNlcyBvZiBleHRlbnRzIHRoYXQgd2VyZSBhbGxvY2F0ZWQKICAgICAgKiAgIChOQi4gVGhpcyBjb21tYW5kIGFsc28gdXBkYXRlcyB0aGUgbWFjaF90b19waHlzIHRyYW5zbGF0aW9uIHRhYmxlKQogICAgICAqLwotICAgIHVsb25nIGV4dGVudF9zdGFydDsKKyAgICBHVUVTVF9IQU5ETEUodWxvbmcpIGV4dGVudF9zdGFydDsKIAogICAgIC8qIE51bWJlciBvZiBleHRlbnRzLCBhbmQgc2l6ZS9hbGlnbm1lbnQgb2YgZWFjaCAoMl5leHRlbnRfb3JkZXIgcGFnZXMpLiAqLwogICAgIHVuc2lnbmVkIGxvbmcgIG5yX2V4dGVudHM7CkBAIC01MCw2ICs1MCw3IEBACiAgICAgZG9taWRfdCAgICAgICAgZG9taWQ7CiAKIH07CitERUZJTkVfR1VFU1RfSEFORExFX1NUUlVDVCh4ZW5fbWVtb3J5X3Jlc2VydmF0aW9uKTsKIAogLyoKICAqIFJldHVybnMgdGhlIG1heGltdW0gbWFjaGluZSBmcmFtZSBudW1iZXIgb2YgbWFwcGVkIFJBTSBpbiB0aGlzIHN5c3RlbS4KQEAgLTg1LDcgKzg2LDcgQEAKICAgICAgKiBhbnkgbGFyZ2UgZGlzY29udGlndWl0aWVzIGluIHRoZSBtYWNoaW5lIGFkZHJlc3Mgc3BhY2UsIDJNQiBnYXBzIGluCiAgICAgICogdGhlIG1hY2hwaHlzIHRhYmxlIHdpbGwgYmUgcmVwcmVzZW50ZWQgYnkgYW4gTUZOIGJhc2Ugb2YgemVyby4KICAgICAgKi8KLSAgICB1bG9uZyBleHRlbnRfc3RhcnQ7CisgICAgR1VFU1RfSEFORExFKHVsb25nKSBleHRlbnRfc3RhcnQ7CiAKICAgICAvKgogICAgICAqIE51bWJlciBvZiBleHRlbnRzIHdyaXR0ZW4gdG8gdGhlIGFib3ZlIGFycmF5LiBUaGlzIHdpbGwgYmUgc21hbGxlcgpAQCAtOTMsNiArOTQsNyBAQAogICAgICAqLwogICAgIHVuc2lnbmVkIGludCBucl9leHRlbnRzOwogfTsKK0RFRklORV9HVUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9tYWNocGh5c19tZm5fbGlzdCk7CiAKIC8qCiAgKiBTZXRzIHRoZSBHUEZOIGF0IHdoaWNoIGEgcGFydGljdWxhciBwYWdlIGFwcGVhcnMgaW4gdGhlIHNwZWNpZmllZCBndWVzdCdzCkBAIC0xMTUsNiArMTE3LDcgQEAKICAgICAvKiBHUEZOIHdoZXJlIHRoZSBzb3VyY2UgbWFwcGluZyBwYWdlIHNob3VsZCBhcHBlYXIuICovCiAgICAgdW5zaWduZWQgbG9uZyBncGZuOwogfTsKK0RFRklORV9HVUVTVF9IQU5ETEVfU1RSVUNUKHhlbl9hZGRfdG9fcGh5c21hcCk7CiAKIC8qCiAgKiBUcmFuc2xhdGVzIGEgbGlzdCBvZiBkb21haW4tc3BlY2lmaWMgR1BGTnMgaW50byBNRk5zLiBSZXR1cm5zIGEgLXZlIGVycm9yCkBAIC0xMjksMTMgKzEzMiwxNCBAQAogICAgIHVuc2lnbmVkIGxvbmcgbnJfZ3BmbnM7CiAKICAgICAvKiBMaXN0IG9mIEdQRk5zIHRvIHRyYW5zbGF0ZS4gKi8KLSAgICB1bG9uZyBncGZuX2xpc3Q7CisgICAgR1VFU1RfSEFORExFKHVsb25nKSBncGZuX2xpc3Q7CiAKICAgICAvKgogICAgICAqIE91dHB1dCBsaXN0IHRvIGNvbnRhaW4gTUZOIHRyYW5zbGF0aW9ucy4gTWF5IGJlIHRoZSBzYW1lIGFzIHRoZSBpbnB1dAogICAgICAqIGxpc3QgKGluIHdoaWNoIGNhc2UgZWFjaCBpbnB1dCBHUEZOIGlzIG92ZXJ3cml0dGVuIHdpdGggdGhlIG91dHB1dCBNRk4pLgogICAgICAqLwotICAgIHVsb25nIG1mbl9saXN0OworICAgIEdVRVNUX0hBTkRMRSh1bG9uZykgbWZuX2xpc3Q7CiB9OworREVGSU5FX0dVRVNUX0hBTkRMRV9TVFJVQ1QoeGVuX3RyYW5zbGF0ZV9ncGZuX2xpc3QpOwogCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX01FTU9SWV9IX18gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAppbmRleCA5YjAxOGRhLi4yYmVmYTNlIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UveGVuLmgKKysrIGIvaW5jbHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oCkBAIC0xMCw2ICsxMCw3IEBACiAjZGVmaW5lIF9fWEVOX1BVQkxJQ19YRU5fSF9fCiAKICNpbmNsdWRlIDxhc20veGVuL2ludGVyZmFjZS5oPgorI2luY2x1ZGUgPGFzbS9wdmNsb2NrLWFiaS5oPgogCiAvKgogICogWEVOICJTWVNURU0gQ0FMTFMiIChhLmsuYS4gSFlQRVJDQUxMUykuCkBAIC0xMTMsOSArMTE0LDE0IEBACiAgKiBwdHJbOjJdICAtLSBNYWNoaW5lIGFkZHJlc3Mgd2l0aGluIHRoZSBmcmFtZSB3aG9zZSBtYXBwaW5nIHRvIG1vZGlmeS4KICAqICAgICAgICAgICAgIFRoZSBmcmFtZSBtdXN0IGJlbG9uZyB0byB0aGUgRkQsIGlmIG9uZSBpcyBzcGVjaWZpZWQuCiAgKiB2YWwgICAgICAtLSBWYWx1ZSB0byB3cml0ZSBpbnRvIHRoZSBtYXBwaW5nIGVudHJ5LgorICoKKyAqIHB0clsxOjBdID09IE1NVV9QVF9VUERBVEVfUFJFU0VSVkVfQUQ6CisgKiBBcyBNTVVfTk9STUFMX1BUX1VQREFURSBhYm92ZSwgYnV0IEEvRCBiaXRzIGN1cnJlbnRseSBpbiB0aGUgUFRFIGFyZSBPUmVkCisgKiB3aXRoIHRob3NlIGluIEB2YWwuCiAgKi8KLSNkZWZpbmUgTU1VX05PUk1BTF9QVF9VUERBVEUgICAgIDAgLyogY2hlY2tlZCAnKnB0ciA9IHZhbCcuIHB0ciBpcyBNQS4gICAgICAgKi8KLSNkZWZpbmUgTU1VX01BQ0hQSFlTX1VQREFURSAgICAgIDEgLyogcHRyID0gTUEgb2YgZnJhbWUgdG8gbW9kaWZ5IGVudHJ5IGZvciAgKi8KKyNkZWZpbmUgTU1VX05PUk1BTF9QVF9VUERBVEUgICAgICAwIC8qIGNoZWNrZWQgJypwdHIgPSB2YWwnLiBwdHIgaXMgTUEuICAgICAgICovCisjZGVmaW5lIE1NVV9NQUNIUEhZU19VUERBVEUgICAgICAgMSAvKiBwdHIgPSBNQSBvZiBmcmFtZSB0byBtb2RpZnkgZW50cnkgZm9yICAqLworI2RlZmluZSBNTVVfUFRfVVBEQVRFX1BSRVNFUlZFX0FEIDIgLyogYXRvbWljYWxseTogKnB0ciA9IHZhbCB8ICgqcHRyJihBfEQpKSAqLwogCiAvKgogICogTU1VIEVYVEVOREVEIE9QRVJBVElPTlMKQEAgLTMzNiw3ICszNDIsNyBAQAogCXVpbnQ4X3QgZXZ0Y2huX3VwY2FsbF9tYXNrOwogCXVuc2lnbmVkIGxvbmcgZXZ0Y2huX3BlbmRpbmdfc2VsOwogCXN0cnVjdCBhcmNoX3ZjcHVfaW5mbyBhcmNoOwotCXN0cnVjdCB2Y3B1X3RpbWVfaW5mbyB0aW1lOworCXN0cnVjdCBwdmNsb2NrX3ZjcHVfdGltZV9pbmZvIHRpbWU7CiB9OyAvKiA2NCBieXRlcyAoeDg2KSAqLwogCiAvKgpAQCAtMzg0LDkgKzM5MCw3IEBACiAJICogV2FsbGNsb2NrIHRpbWU6IHVwZGF0ZWQgb25seSBieSBjb250cm9sIHNvZnR3YXJlLiBHdWVzdHMgc2hvdWxkIGJhc2UKIAkgKiB0aGVpciBnZXR0aW1lb2ZkYXkoKSBzeXNjYWxsIG9uIHRoaXMgd2FsbGNsb2NrLWJhc2UgdmFsdWUuCiAJICovCi0JdWludDMyX3Qgd2NfdmVyc2lvbjsgICAgICAvKiBWZXJzaW9uIGNvdW50ZXI6IHNlZSB2Y3B1X3RpbWVfaW5mb190LiAqLwotCXVpbnQzMl90IHdjX3NlYzsgICAgICAgICAgLyogU2VjcyAgMDA6MDA6MDAgVVRDLCBKYW4gMSwgMTk3MC4gICovCi0JdWludDMyX3Qgd2NfbnNlYzsgICAgICAgICAvKiBOc2VjcyAwMDowMDowMCBVVEMsIEphbiAxLCAxOTcwLiAgKi8KKwlzdHJ1Y3QgcHZjbG9ja193YWxsX2Nsb2NrIHdjOwogCiAJc3RydWN0IGFyY2hfc2hhcmVkX2luZm8gYXJjaDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ZW4veGVuLW9wcy5oIGIvaW5jbHVkZS94ZW4veGVuLW9wcy5oCmluZGV4IDEwZGRmZTAuLmE3MDZkNmEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUveGVuL3hlbi1vcHMuaAorKysgYi9pbmNsdWRlL3hlbi94ZW4tb3BzLmgKQEAgLTUsNCArNSwxMCBAQAogCiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHZjcHVfaW5mbyAqLCB4ZW5fdmNwdSk7CiAKK3ZvaWQgeGVuX3ByZV9zdXNwZW5kKHZvaWQpOwordm9pZCB4ZW5fcG9zdF9zdXNwZW5kKGludCBzdXNwZW5kX2NhbmNlbGxlZCk7CisKK3ZvaWQgeGVuX21tX3Bpbl9hbGwodm9pZCk7Cit2b2lkIHhlbl9tbV91bnBpbl9hbGwodm9pZCk7CisKICNlbmRpZiAvKiBJTkNMVURFX1hFTl9PUFNfSCAqLwpkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmlnIGIvaW5pdC9LY29uZmlnCmluZGV4IDYxMzVkMDcuLjYxOTlkMTEgMTAwNjQ0Ci0tLSBhL2luaXQvS2NvbmZpZworKysgYi9pbml0L0tjb25maWcKQEAgLTEzLDYgKzEzLDcgQEAKIAlkZWZhdWx0ICIvbGliL21vZHVsZXMvJFVOQU1FX1JFTEVBU0UvLmNvbmZpZyIKIAlkZWZhdWx0ICIvZXRjL2tlcm5lbC1jb25maWciCiAJZGVmYXVsdCAiL2Jvb3QvY29uZmlnLSRVTkFNRV9SRUxFQVNFIgorCWRlZmF1bHQgIiRBUkNIX0RFRkNPTkZJRyIKIAlkZWZhdWx0ICJhcmNoLyRBUkNIL2RlZmNvbmZpZyIKIAogbWVudSAiR2VuZXJhbCBzZXR1cCIKZGlmZiAtLWdpdCBhL2luaXQvY2FsaWJyYXRlLmMgYi9pbml0L2NhbGlicmF0ZS5jCmluZGV4IGVjYjM4MjIuLjc5NjNlM2YgMTAwNjQ0Ci0tLSBhL2luaXQvY2FsaWJyYXRlLmMKKysrIGIvaW5pdC9jYWxpYnJhdGUuYwpAQCAtOCw3ICs4LDkgQEAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC90aW1leC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogCit1bnNpZ25lZCBsb25nIGxwal9maW5lOwogdW5zaWduZWQgbG9uZyBwcmVzZXRfbHBqOwogc3RhdGljIGludCBfX2luaXQgbHBqX3NldHVwKGNoYXIgKnN0cikKIHsKQEAgLTMzLDkgKzM1LDkgQEAKIAl1bnNpZ25lZCBsb25nIHByZV9zdGFydCwgc3RhcnQsIHBvc3Rfc3RhcnQ7CiAJdW5zaWduZWQgbG9uZyBwcmVfZW5kLCBlbmQsIHBvc3RfZW5kOwogCXVuc2lnbmVkIGxvbmcgc3RhcnRfamlmZmllczsKLQl1bnNpZ25lZCBsb25nIHRzY19yYXRlX21pbiwgdHNjX3JhdGVfbWF4OwotCXVuc2lnbmVkIGxvbmcgZ29vZF90c2Nfc3VtID0gMDsKLQl1bnNpZ25lZCBsb25nIGdvb2RfdHNjX2NvdW50ID0gMDsKKwl1bnNpZ25lZCBsb25nIHRpbWVyX3JhdGVfbWluLCB0aW1lcl9yYXRlX21heDsKKwl1bnNpZ25lZCBsb25nIGdvb2RfdGltZXJfc3VtID0gMDsKKwl1bnNpZ25lZCBsb25nIGdvb2RfdGltZXJfY291bnQgPSAwOwogCWludCBpOwogCiAJaWYgKHJlYWRfY3VycmVudF90aW1lcigmcHJlX3N0YXJ0KSA8IDAgKQpAQCAtNzksMjIgKzgxLDI0IEBACiAJCX0KIAkJcmVhZF9jdXJyZW50X3RpbWVyKCZwb3N0X2VuZCk7CiAKLQkJdHNjX3JhdGVfbWF4ID0gKHBvc3RfZW5kIC0gcHJlX3N0YXJ0KSAvIERFTEFZX0NBTElCUkFUSU9OX1RJQ0tTOwotCQl0c2NfcmF0ZV9taW4gPSAocHJlX2VuZCAtIHBvc3Rfc3RhcnQpIC8gREVMQVlfQ0FMSUJSQVRJT05fVElDS1M7CisJCXRpbWVyX3JhdGVfbWF4ID0gKHBvc3RfZW5kIC0gcHJlX3N0YXJ0KSAvCisJCQkJCURFTEFZX0NBTElCUkFUSU9OX1RJQ0tTOworCQl0aW1lcl9yYXRlX21pbiA9IChwcmVfZW5kIC0gcG9zdF9zdGFydCkgLworCQkJCQlERUxBWV9DQUxJQlJBVElPTl9USUNLUzsKIAogCQkvKgotCSAJICogSWYgdGhlIHVwcGVyIGxpbWl0IGFuZCBsb3dlciBsaW1pdCBvZiB0aGUgdHNjX3JhdGUgaXMKKwkJICogSWYgdGhlIHVwcGVyIGxpbWl0IGFuZCBsb3dlciBsaW1pdCBvZiB0aGUgdGltZXJfcmF0ZSBpcwogCQkgKiA+PSAxMi41JSBhcGFydCwgcmVkbyBjYWxpYnJhdGlvbi4KIAkJICovCiAJCWlmIChwcmVfc3RhcnQgIT0gMCAmJiBwcmVfZW5kICE9IDAgJiYKLQkJICAgICh0c2NfcmF0ZV9tYXggLSB0c2NfcmF0ZV9taW4pIDwgKHRzY19yYXRlX21heCA+PiAzKSkgewotCQkJZ29vZF90c2NfY291bnQrKzsKLQkJCWdvb2RfdHNjX3N1bSArPSB0c2NfcmF0ZV9tYXg7CisJCSAgICAodGltZXJfcmF0ZV9tYXggLSB0aW1lcl9yYXRlX21pbikgPCAodGltZXJfcmF0ZV9tYXggPj4gMykpIHsKKwkJCWdvb2RfdGltZXJfY291bnQrKzsKKwkJCWdvb2RfdGltZXJfc3VtICs9IHRpbWVyX3JhdGVfbWF4OwogCQl9CiAJfQogCi0JaWYgKGdvb2RfdHNjX2NvdW50KQotCQlyZXR1cm4gKGdvb2RfdHNjX3N1bS9nb29kX3RzY19jb3VudCk7CisJaWYgKGdvb2RfdGltZXJfY291bnQpCisJCXJldHVybiAoZ29vZF90aW1lcl9zdW0vZ29vZF90aW1lcl9jb3VudCk7CiAKIAlwcmludGsoS0VSTl9XQVJOSU5HICJjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KCkgZmFpbGVkIHRvIGdldCBhIGdvb2QgIgogCSAgICAgICAiZXN0aW1hdGUgZm9yIGxvb3BzX3Blcl9qaWZmeS5cblByb2JhYmx5IGR1ZSB0byBsb25nIHBsYXRmb3JtIGludGVycnVwdHMuIENvbnNpZGVyIHVzaW5nIFwibHBqPVwiIGJvb3Qgb3B0aW9uLlxuIik7CkBAIC0xMDgsNiArMTEyLDEwIEBACiAgKiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgYml0cyBvZiBwcmVjaXNpb24gZm9yIHRoZSBsb29wc19wZXJfamlmZnkuICBFYWNoCiAgKiBiaXQgdGFrZXMgb24gYXZlcmFnZSAxLjUvSFogc2Vjb25kcy4gIFRoaXMgKGxpa2UgdGhlIG9yaWdpbmFsKSBpcyBhIGxpdHRsZQogICogYmV0dGVyIHRoYW4gMSUKKyAqIEZvciB0aGUgYm9vdCBjcHUgd2UgY2FuIHNraXAgdGhlIGRlbGF5IGNhbGlicmF0aW9uIGFuZCBhc3NpZ24gaXQgYSB2YWx1ZQorICogY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgdGltZXIgZnJlcXVlbmN5LgorICogRm9yIHRoZSByZXN0IG9mIHRoZSBDUFVzIHdlIGNhbm5vdCBhc3N1bWUgdGhhdCB0aGUgdGltZXIgZnJlcXVlbmN5IGlzIHNhbWUgYXMKKyAqIHRoZSBjcHUgZnJlcXVlbmN5LCBoZW5jZSBkbyB0aGUgY2FsaWJyYXRpb24gZm9yIHRob3NlLgogICovCiAjZGVmaW5lIExQU19QUkVDIDgKIApAQCAtMTE4LDIwICsxMjYsMjAgQEAKIAogCWlmIChwcmVzZXRfbHBqKSB7CiAJCWxvb3BzX3Blcl9qaWZmeSA9IHByZXNldF9scGo7Ci0JCXByaW50aygiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCkuLi4gIgotCQkJIiVsdS4lMDJsdSBCb2dvTUlQUyBwcmVzZXRcbiIsCi0JCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCi0JCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDApOworCQlwcmludGsoS0VSTl9JTkZPCisJCQkiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCkgcHJlc2V0IHZhbHVlLi4gIik7CisJfSBlbHNlIGlmICgoc21wX3Byb2Nlc3Nvcl9pZCgpID09IDApICYmIGxwal9maW5lKSB7CisJCWxvb3BzX3Blcl9qaWZmeSA9IGxwal9maW5lOworCQlwcmludGsoS0VSTl9JTkZPCisJCQkiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcCAoc2tpcHBlZCksICIKKwkJCSJ2YWx1ZSBjYWxjdWxhdGVkIHVzaW5nIHRpbWVyIGZyZXF1ZW5jeS4uICIpOwogCX0gZWxzZSBpZiAoKGxvb3BzX3Blcl9qaWZmeSA9IGNhbGlicmF0ZV9kZWxheV9kaXJlY3QoKSkgIT0gMCkgewotCQlwcmludGsoIkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiAiKTsKLQkJcHJpbnRrKCIlbHUuJTAybHUgQm9nb01JUFMgKGxwaj0lbHUpXG4iLAotCQkJbG9vcHNfcGVyX2ppZmZ5Lyg1MDAwMDAvSFopLAotCQkJKGxvb3BzX3Blcl9qaWZmeS8oNTAwMC9IWikpICUgMTAwLAotCQkJbG9vcHNfcGVyX2ppZmZ5KTsKKwkJcHJpbnRrKEtFUk5fSU5GTworCQkJIkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyIHNwZWNpZmljIHJvdXRpbmUuLiAiKTsKIAl9IGVsc2UgewogCQlsb29wc19wZXJfamlmZnkgPSAoMTw8MTIpOwogCi0JCXByaW50ayhLRVJOX0RFQlVHICJDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uICIpOworCQlwcmludGsoS0VSTl9JTkZPICJDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uICIpOwogCQl3aGlsZSAoKGxvb3BzX3Blcl9qaWZmeSA8PD0gMSkgIT0gMCkgewogCQkJLyogd2FpdCBmb3IgInN0YXJ0IG9mIiBjbG9jayB0aWNrICovCiAJCQl0aWNrcyA9IGppZmZpZXM7CkBAIC0xNjEsMTIgKzE2OSw4IEBACiAJCQlpZiAoamlmZmllcyAhPSB0aWNrcykJLyogbG9uZ2VyIHRoYW4gMSB0aWNrICovCiAJCQkJbG9vcHNfcGVyX2ppZmZ5ICY9IH5sb29wYml0OwogCQl9Ci0KLQkJLyogUm91bmQgdGhlIHZhbHVlIGFuZCBwcmludCBpdCAqLwotCQlwcmludGsoIiVsdS4lMDJsdSBCb2dvTUlQUyAobHBqPSVsdSlcbiIsCi0JCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCi0JCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDAsCi0JCQlsb29wc19wZXJfamlmZnkpOwogCX0KLQorCXByaW50ayhLRVJOX0lORk8gIiVsdS4lMDJsdSBCb2dvTUlQUyAobHBqPSVsdSlcbiIsCisJCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCisJCQkobG9vcHNfcGVyX2ppZmZ5Lyg1MDAwL0haKSkgJSAxMDAsIGxvb3BzX3Blcl9qaWZmeSk7CiB9CmRpZmYgLS1naXQgYS9pbml0L2RvX21vdW50c19tZC5jIGIvaW5pdC9kb19tb3VudHNfbWQuYwppbmRleCA3NDczYjBjLi42OTNkMjQ2IDEwMDY0NAotLS0gYS9pbml0L2RvX21vdW50c19tZC5jCisrKyBiL2luaXQvZG9fbW91bnRzX21kLmMKQEAgLTI0LDcgKzI0LDYgQEAKIAogc3RhdGljIGludCBtZF9zZXR1cF9lbnRzIF9faW5pdGRhdGE7CiAKLWV4dGVybiBpbnQgbWRwX21ham9yOwogLyoKICAqIFBhcnNlIHRoZSBjb21tYW5kLWxpbmUgcGFyYW1ldGVycyBnaXZlbiBvdXIga2VybmVsLCBidXQgZG8gbm90CiAgKiBhY3R1YWxseSB0cnkgdG8gaW52b2tlIHRoZSBNRCBkZXZpY2Ugbm93OyB0aGF0IGlzIGhhbmRsZWQgYnkKZGlmZiAtLWdpdCBhL2lwYy9tc2cuYyBiL2lwYy9tc2cuYwppbmRleCAzMjQ5NGU4Li5iNGVlZTFjIDEwMDY0NAotLS0gYS9pcGMvbXNnLmMKKysrIGIvaXBjL21zZy5jCkBAIC05OCwyMCArOTgsMTUgQEAKIAogCWlmIChhbGxvd2VkIDwgTVNHTU5JKSB7CiAJCW5zLT5tc2dfY3RsbW5pID0gTVNHTU5JOwotCQlnb3RvIG91dF9jYWxsYmFjazsKKwkJcmV0dXJuOwogCX0KIAogCWlmIChhbGxvd2VkID4gSVBDTU5JIC8gbmJfbnMpIHsKIAkJbnMtPm1zZ19jdGxtbmkgPSBJUENNTkkgLyBuYl9uczsKLQkJZ290byBvdXRfY2FsbGJhY2s7CisJCXJldHVybjsKIAl9CiAKIAlucy0+bXNnX2N0bG1uaSA9IGFsbG93ZWQ7Ci0KLW91dF9jYWxsYmFjazoKLQotCXByaW50ayhLRVJOX0lORk8gIm1zZ21uaSBoYXMgYmVlbiBzZXQgdG8gJWQgZm9yIGlwYyBuYW1lc3BhY2UgJXBcbiIsCi0JCW5zLT5tc2dfY3RsbW5pLCBucyk7CiB9CiAKIHZvaWQgbXNnX2luaXRfbnMoc3RydWN0IGlwY19uYW1lc3BhY2UgKm5zKQpAQCAtMTM2LDYgKzEzMSwxMCBAQAogdm9pZCBfX2luaXQgbXNnX2luaXQodm9pZCkKIHsKIAltc2dfaW5pdF9ucygmaW5pdF9pcGNfbnMpOworCisJcHJpbnRrKEtFUk5fSU5GTyAibXNnbW5pIGhhcyBiZWVuIHNldCB0byAlZFxuIiwKKwkJaW5pdF9pcGNfbnMubXNnX2N0bG1uaSk7CisKIAlpcGNfaW5pdF9wcm9jX2ludGVyZmFjZSgic3lzdmlwYy9tc2ciLAogCQkJCSIgICAgICAga2V5ICAgICAgbXNxaWQgcGVybXMgICAgICBjYnl0ZXMgICAgICAgcW51bSBsc3BpZCBscnBpZCAgIHVpZCAgIGdpZCAgY3VpZCAgY2dpZCAgICAgIHN0aW1lICAgICAgcnRpbWUgICAgICBjdGltZVxuIiwKIAkJCQlJUENfTVNHX0lEUywgc3lzdmlwY19tc2dfcHJvY19zaG93KTsKZGlmZiAtLWdpdCBhL2lwYy9zaG0uYyBiL2lwYy9zaG0uYwppbmRleCA1NTQ0MjlhLi43OTAyNDBjIDEwMDY0NAotLS0gYS9pcGMvc2htLmMKKysrIGIvaXBjL3NobS5jCkBAIC04OTQsOCArODk0LDYgQEAKIAlpZiAoIXNmZCkKIAkJZ290byBvdXRfcHV0X2RlbnRyeTsKIAotCWVyciA9IC1FTk9NRU07Ci0KIAlmaWxlID0gYWxsb2NfZmlsZShwYXRoLm1udCwgcGF0aC5kZW50cnksIGZfbW9kZSwgJnNobV9maWxlX29wZXJhdGlvbnMpOwogCWlmICghZmlsZSkKIAkJZ290byBvdXRfZnJlZTsKQEAgLTEwNjAsMTYgKzEwNTgsMTYgQEAKIHN0YXRpYyBpbnQgc3lzdmlwY19zaG1fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqaXQpCiB7CiAJc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwID0gaXQ7Ci0JY2hhciAqZm9ybWF0OwogCi0jZGVmaW5lIFNNQUxMX1NUUklORyAiJTEwZCAlMTBkICAlNG8gJTEwdSAlNXUgJTV1ICAlNWQgJTV1ICU1dSAlNXUgJTV1ICUxMGx1ICUxMGx1ICUxMGx1XG4iCi0jZGVmaW5lIEJJR19TVFJJTkcgICAiJTEwZCAlMTBkICAlNG8gJTIxdSAlNXUgJTV1ICAlNWQgJTV1ICU1dSAlNXUgJTV1ICUxMGx1ICUxMGx1ICUxMGx1XG4iCisjaWYgQklUU19QRVJfTE9ORyA8PSAzMgorI2RlZmluZSBTSVpFX1NQRUMgIiUxMGx1IgorI2Vsc2UKKyNkZWZpbmUgU0laRV9TUEVDICIlMjFsdSIKKyNlbmRpZgogCi0JaWYgKHNpemVvZihzaXplX3QpIDw9IHNpemVvZihpbnQpKQotCQlmb3JtYXQgPSBTTUFMTF9TVFJJTkc7Ci0JZWxzZQotCQlmb3JtYXQgPSBCSUdfU1RSSU5HOwotCXJldHVybiBzZXFfcHJpbnRmKHMsIGZvcm1hdCwKKwlyZXR1cm4gc2VxX3ByaW50ZihzLAorCQkJICAiJTEwZCAlMTBkICAlNG8gIiBTSVpFX1NQRUMgIiAlNXUgJTV1ICAiCisJCQkgICIlNWx1ICU1dSAlNXUgJTV1ICU1dSAlMTBsdSAlMTBsdSAlMTBsdVxuIiwKIAkJCSAgc2hwLT5zaG1fcGVybS5rZXksCiAJCQkgIHNocC0+c2htX3Blcm0uaWQsCiAJCQkgIHNocC0+c2htX3Blcm0ubW9kZSwKZGlmZiAtLWdpdCBhL2tlcm5lbC9NYWtlZmlsZSBiL2tlcm5lbC9NYWtlZmlsZQppbmRleCAxYzk5MzhhLi5mNjMyOGUxIDEwMDY0NAotLS0gYS9rZXJuZWwvTWFrZWZpbGUKKysrIGIva2VybmVsL01ha2VmaWxlCkBAIC0zLDcgKzMsNyBAQAogIwogCiBvYmoteSAgICAgPSBzY2hlZC5vIGZvcmsubyBleGVjX2RvbWFpbi5vIHBhbmljLm8gcHJpbnRrLm8gcHJvZmlsZS5vIFwKLQkgICAgZXhpdC5vIGl0aW1lci5vIHRpbWUubyBzb2Z0aXJxLm8gcmVzb3VyY2UubyBcCisJICAgIGNwdS5vIGV4aXQubyBpdGltZXIubyB0aW1lLm8gc29mdGlycS5vIHJlc291cmNlLm8gXAogCSAgICBzeXNjdGwubyBjYXBhYmlsaXR5Lm8gcHRyYWNlLm8gdGltZXIubyB1c2VyLm8gXAogCSAgICBzaWduYWwubyBzeXMubyBrbW9kLm8gd29ya3F1ZXVlLm8gcGlkLm8gXAogCSAgICByY3VwZGF0ZS5vIGV4dGFibGUubyBwYXJhbXMubyBwb3NpeC10aW1lcnMubyBcCkBAIC0xMSw2ICsxMSwxOCBAQAogCSAgICBocnRpbWVyLm8gcndzZW0ubyBuc3Byb3h5Lm8gc3JjdS5vIHNlbWFwaG9yZS5vIFwKIAkgICAgbm90aWZpZXIubyBrc3lzZnMubyBwbV9xb3NfcGFyYW1zLm8gc2NoZWRfY2xvY2subwogCitDRkxBR1NfUkVNT1ZFX3NjaGVkLm8gPSAtbW5vLXNwZQorCitpZmRlZiBDT05GSUdfRlRSQUNFCisjIERvIG5vdCB0cmFjZSBkZWJ1ZyBmaWxlcyBhbmQgaW50ZXJuYWwgZnRyYWNlIGZpbGVzCitDRkxBR1NfUkVNT1ZFX2xvY2tkZXAubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9sb2NrZGVwX3Byb2MubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9tdXRleC1kZWJ1Zy5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX3J0bXV0ZXgtZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9jZ3JvdXAtZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9zY2hlZF9jbG9jay5vID0gLXBnCitlbmRpZgorCiBvYmotJChDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0spICs9IHN5c2N0bF9jaGVjay5vCiBvYmotJChDT05GSUdfU1RBQ0tUUkFDRSkgKz0gc3RhY2t0cmFjZS5vCiBvYmoteSArPSB0aW1lLwpAQCAtMjcsNyArMzksNyBAQAogb2JqLSQoQ09ORklHX0RFQlVHX1JUX01VVEVYRVMpICs9IHJ0bXV0ZXgtZGVidWcubwogb2JqLSQoQ09ORklHX1JUX01VVEVYX1RFU1RFUikgKz0gcnRtdXRleC10ZXN0ZXIubwogb2JqLSQoQ09ORklHX0dFTkVSSUNfSVNBX0RNQSkgKz0gZG1hLm8KLW9iai0kKENPTkZJR19TTVApICs9IGNwdS5vIHNwaW5sb2NrLm8KK29iai0kKENPTkZJR19TTVApICs9IHNwaW5sb2NrLm8KIG9iai0kKENPTkZJR19ERUJVR19TUElOTE9DSykgKz0gc3BpbmxvY2subwogb2JqLSQoQ09ORklHX1BST1ZFX0xPQ0tJTkcpICs9IHNwaW5sb2NrLm8KIG9iai0kKENPTkZJR19VSUQxNikgKz0gdWlkMTYubwpAQCAtNjksNiArODEsOSBAQAogb2JqLSQoQ09ORklHX1RBU0tTVEFUUykgKz0gdGFza3N0YXRzLm8gdHNhY2N0Lm8KIG9iai0kKENPTkZJR19NQVJLRVJTKSArPSBtYXJrZXIubwogb2JqLSQoQ09ORklHX0xBVEVOQ1lUT1ApICs9IGxhdGVuY3l0b3Aubworb2JqLSQoQ09ORklHX0ZUUkFDRSkgKz0gdHJhY2UvCitvYmotJChDT05GSUdfVFJBQ0lORykgKz0gdHJhY2UvCitvYmotJChDT05GSUdfU01QKSArPSBzY2hlZF9jcHVwcmkubwogCiBpZm5lcSAoJChDT05GSUdfU0NIRURfTk9fTk9fT01JVF9GUkFNRV9QT0lOVEVSKSx5KQogIyBBY2NvcmRpbmcgdG8gQWxhbiBNb2RyYSA8YWxhbkBsaW51eGNhcmUuY29tLmF1PiwgdGhlIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyIGlzCmRpZmYgLS1naXQgYS9rZXJuZWwvYXVkaXQuYyBiL2tlcm5lbC9hdWRpdC5jCmluZGV4IGU4NjkyYTUuLmUwOTJmMWMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9hdWRpdC5jCisrKyBiL2tlcm5lbC9hdWRpdC5jCkBAIC03MzgsNyArNzM4LDcgQEAKIAkJaWYgKCFhdWRpdF9lbmFibGVkICYmIG1zZ190eXBlICE9IEFVRElUX1VTRVJfQVZDKQogCQkJcmV0dXJuIDA7CiAKLQkJZXJyID0gYXVkaXRfZmlsdGVyX3VzZXIoJk5FVExJTktfQ0Ioc2tiKSwgbXNnX3R5cGUpOworCQllcnIgPSBhdWRpdF9maWx0ZXJfdXNlcigmTkVUTElOS19DQihza2IpKTsKIAkJaWYgKGVyciA9PSAxKSB7CiAJCQllcnIgPSAwOwogCQkJaWYgKG1zZ190eXBlID09IEFVRElUX1VTRVJfVFRZKSB7CkBAIC03NzksNyArNzc5LDcgQEAKIAkJfQogCQkvKiBmYWxsdGhyb3VnaCAqLwogCWNhc2UgQVVESVRfTElTVDoKLQkJZXJyID0gYXVkaXRfcmVjZWl2ZV9maWx0ZXIobmxoLT5ubG1zZ190eXBlLCBORVRMSU5LX0NCKHNrYikucGlkLAorCQllcnIgPSBhdWRpdF9yZWNlaXZlX2ZpbHRlcihtc2dfdHlwZSwgTkVUTElOS19DQihza2IpLnBpZCwKIAkJCQkJICAgdWlkLCBzZXEsIGRhdGEsIG5sbXNnX2xlbihubGgpLAogCQkJCQkgICBsb2dpbnVpZCwgc2Vzc2lvbmlkLCBzaWQpOwogCQlicmVhazsKQEAgLTc5OCw3ICs3OTgsNyBAQAogCQl9CiAJCS8qIGZhbGx0aHJvdWdoICovCiAJY2FzZSBBVURJVF9MSVNUX1JVTEVTOgotCQllcnIgPSBhdWRpdF9yZWNlaXZlX2ZpbHRlcihubGgtPm5sbXNnX3R5cGUsIE5FVExJTktfQ0Ioc2tiKS5waWQsCisJCWVyciA9IGF1ZGl0X3JlY2VpdmVfZmlsdGVyKG1zZ190eXBlLCBORVRMSU5LX0NCKHNrYikucGlkLAogCQkJCQkgICB1aWQsIHNlcSwgZGF0YSwgbmxtc2dfbGVuKG5saCksCiAJCQkJCSAgIGxvZ2ludWlkLCBzZXNzaW9uaWQsIHNpZCk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEva2VybmVsL2F1ZGl0ZmlsdGVyLmMgYi9rZXJuZWwvYXVkaXRmaWx0ZXIuYwppbmRleCAwZTBiZDI3ZS4uOThjNTBjYyAxMDA2NDQKLS0tIGEva2VybmVsL2F1ZGl0ZmlsdGVyLmMKKysrIGIva2VybmVsL2F1ZGl0ZmlsdGVyLmMKQEAgLTE1NDQsNiArMTU0NCw3IEBACiAgKiBAZGF0YTogcGF5bG9hZCBkYXRhCiAgKiBAZGF0YXN6OiBzaXplIG9mIHBheWxvYWQgZGF0YQogICogQGxvZ2ludWlkOiBsb2dpbnVpZCBvZiBzZW5kZXIKKyAqIEBzZXNzaW9uaWQ6IHNlc3Npb25pZCBmb3IgbmV0bGluayBhdWRpdCBtZXNzYWdlCiAgKiBAc2lkOiBTRSBMaW51eCBTZWN1cml0eSBJRCBvZiBzZW5kZXIKICAqLwogaW50IGF1ZGl0X3JlY2VpdmVfZmlsdGVyKGludCB0eXBlLCBpbnQgcGlkLCBpbnQgdWlkLCBpbnQgc2VxLCB2b2lkICpkYXRhLApAQCAtMTcyMCw3ICsxNzIxLDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotaW50IGF1ZGl0X2ZpbHRlcl91c2VyKHN0cnVjdCBuZXRsaW5rX3NrYl9wYXJtcyAqY2IsIGludCB0eXBlKQoraW50IGF1ZGl0X2ZpbHRlcl91c2VyKHN0cnVjdCBuZXRsaW5rX3NrYl9wYXJtcyAqY2IpCiB7CiAJZW51bSBhdWRpdF9zdGF0ZSBzdGF0ZSA9IEFVRElUX0RJU0FCTEVEOwogCXN0cnVjdCBhdWRpdF9lbnRyeSAqZTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9jYXBhYmlsaXR5LmMgYi9rZXJuZWwvY2FwYWJpbGl0eS5jCmluZGV4IDM5ZTgxOTMuLjkwMWUwZmQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jYXBhYmlsaXR5LmMKKysrIGIva2VybmVsL2NhcGFiaWxpdHkuYwpAQCAtNTMsMTEgKzUzLDk1IEBACiB9CiAKIC8qCisgKiBWZXJzaW9uIDIgY2FwYWJpbGl0aWVzIHdvcmtlZCBmaW5lLCBidXQgdGhlIGxpbnV4L2NhcGFiaWxpdHkuaCBmaWxlCisgKiB0aGF0IGFjY29tcGFuaWVkIHRoZWlyIGludHJvZHVjdGlvbiBlbmNvdXJhZ2VkIHRoZWlyIHVzZSB3aXRob3V0CisgKiB0aGUgbmVjZXNzYXJ5IHVzZXItc3BhY2Ugc291cmNlIGNvZGUgY2hhbmdlcy4gQXMgc3VjaCwgd2UgaGF2ZQorICogY3JlYXRlZCBhIHZlcnNpb24gMyB3aXRoIGVxdWl2YWxlbnQgZnVuY3Rpb25hbGl0eSB0byB2ZXJzaW9uIDIsIGJ1dAorICogd2l0aCBhIGhlYWRlciBjaGFuZ2UgdG8gcHJvdGVjdCBsZWdhY3kgc291cmNlIGNvZGUgZnJvbSB1c2luZworICogdmVyc2lvbiAyIHdoZW4gaXQgd2FudGVkIHRvIHVzZSB2ZXJzaW9uIDEuIElmIHlvdXIgc3lzdGVtIGhhcyBjb2RlCisgKiB0aGF0IHRyaXBzIHRoZSBmb2xsb3dpbmcgd2FybmluZywgaXQgaXMgdXNpbmcgdmVyc2lvbiAyIHNwZWNpZmljCisgKiBjYXBhYmlsaXRpZXMgYW5kIG1heSBiZSBkb2luZyBzbyBpbnNlY3VyZWx5LgorICoKKyAqIFRoZSByZW1lZHkgaXMgdG8gZWl0aGVyIHVwZ3JhZGUgeW91ciB2ZXJzaW9uIG9mIGxpYmNhcCAodG8gMi4xMCssCisgKiBpZiB0aGUgYXBwbGljYXRpb24gaXMgbGlua2VkIGFnYWluc3QgaXQpLCBvciByZWNvbXBpbGUgeW91cgorICogYXBwbGljYXRpb24gd2l0aCBtb2Rlcm4ga2VybmVsIGhlYWRlcnMgYW5kIHRoaXMgd2FybmluZyB3aWxsIGdvCisgKiBhd2F5LgorICovCisKK3N0YXRpYyB2b2lkIHdhcm5fZGVwcmVjYXRlZF92Mih2b2lkKQoreworCXN0YXRpYyBpbnQgd2FybmVkOworCisJaWYgKCF3YXJuZWQpIHsKKwkJY2hhciBuYW1lW3NpemVvZihjdXJyZW50LT5jb21tKV07CisKKwkJcHJpbnRrKEtFUk5fSU5GTyAid2FybmluZzogYCVzJyB1c2VzIGRlcHJlY2F0ZWQgdjIiCisJCSAgICAgICAiIGNhcGFiaWxpdGllcyBpbiBhIHdheSB0aGF0IG1heSBiZSBpbnNlY3VyZS5cbiIsCisJCSAgICAgICBnZXRfdGFza19jb21tKG5hbWUsIGN1cnJlbnQpKTsKKwkJd2FybmVkID0gMTsKKwl9Cit9CisKKy8qCisgKiBWZXJzaW9uIGNoZWNrLiBSZXR1cm4gdGhlIG51bWJlciBvZiB1MzJzIGluIGVhY2ggY2FwYWJpbGl0eSBmbGFnCisgKiBhcnJheSwgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvci4KKyAqLworc3RhdGljIGludCBjYXBfdmFsaWRhdGVfbWFnaWMoY2FwX3VzZXJfaGVhZGVyX3QgaGVhZGVyLCB1bnNpZ25lZCAqdG9jb3B5KQoreworCV9fdTMyIHZlcnNpb247CisKKwlpZiAoZ2V0X3VzZXIodmVyc2lvbiwgJmhlYWRlci0+dmVyc2lvbikpCisJCXJldHVybiAtRUZBVUxUOworCisJc3dpdGNoICh2ZXJzaW9uKSB7CisJY2FzZSBfTElOVVhfQ0FQQUJJTElUWV9WRVJTSU9OXzE6CisJCXdhcm5fbGVnYWN5X2NhcGFiaWxpdHlfdXNlKCk7CisJCSp0b2NvcHkgPSBfTElOVVhfQ0FQQUJJTElUWV9VMzJTXzE7CisJCWJyZWFrOworCWNhc2UgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8yOgorCQl3YXJuX2RlcHJlY2F0ZWRfdjIoKTsKKwkJLyoKKwkJICogZmFsbCB0aHJvdWdoIC0gdjMgaXMgb3RoZXJ3aXNlIGVxdWl2YWxlbnQgdG8gdjIuCisJCSAqLworCWNhc2UgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8zOgorCQkqdG9jb3B5ID0gX0xJTlVYX0NBUEFCSUxJVFlfVTMyU18zOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlpZiAocHV0X3VzZXIoKHUzMilfS0VSTkVMX0NBUEFCSUxJVFlfVkVSU0lPTiwgJmhlYWRlci0+dmVyc2lvbikpCisJCQlyZXR1cm4gLUVGQVVMVDsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qCiAgKiBGb3Igc3lzX2dldHByb2NjYXAoKSBhbmQgc3lzX3NldHByb2NjYXAoKSwgYW55IG9mIHRoZSB0aHJlZQogICogY2FwYWJpbGl0eSBzZXQgcG9pbnRlcnMgbWF5IGJlIE5VTEwgLS0gaW5kaWNhdGluZyB0aGF0IHRoYXQgc2V0IGlzCiAgKiB1bmludGVyZXN0aW5nIGFuZC9vciBub3QgdG8gYmUgY2hhbmdlZC4KICAqLwogCisvKgorICogQXRvbWljYWxseSBtb2RpZnkgdGhlIGVmZmVjdGl2ZSBjYXBhYmlsaXRpZXMgcmV0dXJuaW5nIHRoZSBvcmlnaW5hbAorICogdmFsdWUuIE5vIHBlcm1pc3Npb24gY2hlY2sgaXMgcGVyZm9ybWVkIGhlcmUgLSBpdCBpcyBhc3N1bWVkIHRoYXQgdGhlCisgKiBjYWxsZXIgaXMgcGVybWl0dGVkIHRvIHNldCB0aGUgZGVzaXJlZCBlZmZlY3RpdmUgY2FwYWJpbGl0aWVzLgorICovCitrZXJuZWxfY2FwX3QgY2FwX3NldF9lZmZlY3RpdmUoY29uc3Qga2VybmVsX2NhcF90IHBFX25ldykKK3sKKwlrZXJuZWxfY2FwX3QgcEVfb2xkOworCisJc3Bpbl9sb2NrKCZ0YXNrX2NhcGFiaWxpdHlfbG9jayk7CisKKwlwRV9vbGQgPSBjdXJyZW50LT5jYXBfZWZmZWN0aXZlOworCWN1cnJlbnQtPmNhcF9lZmZlY3RpdmUgPSBwRV9uZXc7CisKKwlzcGluX3VubG9jaygmdGFza19jYXBhYmlsaXR5X2xvY2spOworCisJcmV0dXJuIHBFX29sZDsKK30KKworRVhQT1JUX1NZTUJPTChjYXBfc2V0X2VmZmVjdGl2ZSk7CisKIC8qKgogICogc3lzX2NhcGdldCAtIGdldCB0aGUgY2FwYWJpbGl0aWVzIG9mIGEgZ2l2ZW4gcHJvY2Vzcy4KICAqIEBoZWFkZXI6IHBvaW50ZXIgdG8gc3RydWN0IHRoYXQgY29udGFpbnMgY2FwYWJpbGl0eSB2ZXJzaW9uIGFuZApAQCAtNzEsMjcgKzE1NSwxMyBAQAogewogCWludCByZXQgPSAwOwogCXBpZF90IHBpZDsKLQlfX3UzMiB2ZXJzaW9uOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0OwogCXVuc2lnbmVkIHRvY29weTsKIAlrZXJuZWxfY2FwX3QgcEUsIHBJLCBwUDsKIAotCWlmIChnZXRfdXNlcih2ZXJzaW9uLCAmaGVhZGVyLT52ZXJzaW9uKSkKLQkJcmV0dXJuIC1FRkFVTFQ7Ci0KLQlzd2l0Y2ggKHZlcnNpb24pIHsKLQljYXNlIF9MSU5VWF9DQVBBQklMSVRZX1ZFUlNJT05fMToKLQkJd2Fybl9sZWdhY3lfY2FwYWJpbGl0eV91c2UoKTsKLQkJdG9jb3B5ID0gX0xJTlVYX0NBUEFCSUxJVFlfVTMyU18xOwotCQlicmVhazsKLQljYXNlIF9MSU5VWF9DQVBBQklMSVRZX1ZFUlNJT05fMjoKLQkJdG9jb3B5ID0gX0xJTlVYX0NBUEFCSUxJVFlfVTMyU18yOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlpZiAocHV0X3VzZXIoX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTiwgJmhlYWRlci0+dmVyc2lvbikpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQorCXJldCA9IGNhcF92YWxpZGF0ZV9tYWdpYyhoZWFkZXIsICZ0b2NvcHkpOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKIAogCWlmIChnZXRfdXNlcihwaWQsICZoZWFkZXItPnBpZCkpCiAJCXJldHVybiAtRUZBVUxUOwpAQCAtMTE4LDcgKzE4OCw3IEBACiAJc3Bpbl91bmxvY2soJnRhc2tfY2FwYWJpbGl0eV9sb2NrKTsKIAogCWlmICghcmV0KSB7Ci0JCXN0cnVjdCBfX3VzZXJfY2FwX2RhdGFfc3RydWN0IGtkYXRhW19MSU5VWF9DQVBBQklMSVRZX1UzMlNdOworCQlzdHJ1Y3QgX191c2VyX2NhcF9kYXRhX3N0cnVjdCBrZGF0YVtfS0VSTkVMX0NBUEFCSUxJVFlfVTMyU107CiAJCXVuc2lnbmVkIGk7CiAKIAkJZm9yIChpID0gMDsgaSA8IHRvY29weTsgaSsrKSB7CkBAIC0xMjgsNyArMTk4LDcgQEAKIAkJfQogCiAJCS8qCi0JCSAqIE5vdGUsIGluIHRoZSBjYXNlLCB0b2NvcHkgPCBfTElOVVhfQ0FQQUJJTElUWV9VMzJTLAorCQkgKiBOb3RlLCBpbiB0aGUgY2FzZSwgdG9jb3B5IDwgX0tFUk5FTF9DQVBBQklMSVRZX1UzMlMsCiAJCSAqIHdlIHNpbGVudGx5IGRyb3AgdGhlIHVwcGVyIGNhcGFiaWxpdGllcyBoZXJlLiBUaGlzCiAJCSAqIGhhcyB0aGUgZWZmZWN0IG9mIG1ha2luZyBvbGRlciBsaWJjYXAKIAkJICogaW1wbGVtZW50YXRpb25zIGltcGxpY2l0bHkgZHJvcCB1cHBlciBjYXBhYmlsaXR5CkBAIC0yNDAsMzAgKzMxMCwxNiBAQAogICovCiBhc21saW5rYWdlIGxvbmcgc3lzX2NhcHNldChjYXBfdXNlcl9oZWFkZXJfdCBoZWFkZXIsIGNvbnN0IGNhcF91c2VyX2RhdGFfdCBkYXRhKQogewotCXN0cnVjdCBfX3VzZXJfY2FwX2RhdGFfc3RydWN0IGtkYXRhW19MSU5VWF9DQVBBQklMSVRZX1UzMlNdOworCXN0cnVjdCBfX3VzZXJfY2FwX2RhdGFfc3RydWN0IGtkYXRhW19LRVJORUxfQ0FQQUJJTElUWV9VMzJTXTsKIAl1bnNpZ25lZCBpLCB0b2NvcHk7CiAJa2VybmVsX2NhcF90IGluaGVyaXRhYmxlLCBwZXJtaXR0ZWQsIGVmZmVjdGl2ZTsKLQlfX3UzMiB2ZXJzaW9uOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0OwogCWludCByZXQ7CiAJcGlkX3QgcGlkOwogCi0JaWYgKGdldF91c2VyKHZlcnNpb24sICZoZWFkZXItPnZlcnNpb24pKQotCQlyZXR1cm4gLUVGQVVMVDsKLQotCXN3aXRjaCAodmVyc2lvbikgewotCWNhc2UgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8xOgotCQl3YXJuX2xlZ2FjeV9jYXBhYmlsaXR5X3VzZSgpOwotCQl0b2NvcHkgPSBfTElOVVhfQ0FQQUJJTElUWV9VMzJTXzE7Ci0JCWJyZWFrOwotCWNhc2UgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTl8yOgotCQl0b2NvcHkgPSBfTElOVVhfQ0FQQUJJTElUWV9VMzJTXzI7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCWlmIChwdXRfdXNlcihfTElOVVhfQ0FQQUJJTElUWV9WRVJTSU9OLCAmaGVhZGVyLT52ZXJzaW9uKSkKLQkJCXJldHVybiAtRUZBVUxUOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9CisJcmV0ID0gY2FwX3ZhbGlkYXRlX21hZ2ljKGhlYWRlciwgJnRvY29weSk7CisJaWYgKHJldCAhPSAwKQorCQlyZXR1cm4gcmV0OwogCiAJaWYgKGdldF91c2VyKHBpZCwgJmhlYWRlci0+cGlkKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CkBAIC0yODEsNyArMzM3LDcgQEAKIAkJcGVybWl0dGVkLmNhcFtpXSA9IGtkYXRhW2ldLnBlcm1pdHRlZDsKIAkJaW5oZXJpdGFibGUuY2FwW2ldID0ga2RhdGFbaV0uaW5oZXJpdGFibGU7CiAJfQotCXdoaWxlIChpIDwgX0xJTlVYX0NBUEFCSUxJVFlfVTMyUykgeworCXdoaWxlIChpIDwgX0tFUk5FTF9DQVBBQklMSVRZX1UzMlMpIHsKIAkJZWZmZWN0aXZlLmNhcFtpXSA9IDA7CiAJCXBlcm1pdHRlZC5jYXBbaV0gPSAwOwogCQlpbmhlcml0YWJsZS5jYXBbaV0gPSAwOwpkaWZmIC0tZ2l0IGEva2VybmVsL2Nncm91cC5jIGIva2VybmVsL2Nncm91cC5jCmluZGV4IGZiYzZmYzguLjE1YWMwZTEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jZ3JvdXAuYworKysgYi9rZXJuZWwvY2dyb3VwLmMKQEAgLTI5MDMsNyArMjkwMyw3IEBACiAJY2cgPSB0c2stPmNncm91cHM7CiAJcGFyZW50ID0gdGFza19jZ3JvdXAodHNrLCBzdWJzeXMtPnN1YnN5c19pZCk7CiAKLQlzbnByaW50Zihub2RlbmFtZSwgTUFYX0NHUk9VUF9UWVBFX05BTUVMRU4sICJub2RlXyVkIiwgdHNrLT5waWQpOworCXNucHJpbnRmKG5vZGVuYW1lLCBNQVhfQ0dST1VQX1RZUEVfTkFNRUxFTiwgIiVkIiwgdHNrLT5waWQpOwogCiAJLyogUGluIHRoZSBoaWVyYXJjaHkgKi8KIAlhdG9taWNfaW5jKCZwYXJlbnQtPnJvb3QtPnNiLT5zX2FjdGl2ZSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvY3B1LmMgYi9rZXJuZWwvY3B1LmMKaW5kZXggYzc3YmMzYS4uYjExZjA2ZCAxMDA2NDQKLS0tIGEva2VybmVsL2NwdS5jCisrKyBiL2tlcm5lbC9jcHUuYwpAQCAtMTUsNiArMTUsMjggQEAKICNpbmNsdWRlIDxsaW51eC9zdG9wX21hY2hpbmUuaD4KICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogCisvKgorICogUmVwcmVzZW50cyBhbGwgY3B1J3MgcHJlc2VudCBpbiB0aGUgc3lzdGVtCisgKiBJbiBzeXN0ZW1zIGNhcGFibGUgb2YgaG90cGx1ZywgdGhpcyBtYXAgY291bGQgZHluYW1pY2FsbHkgZ3JvdworICogYXMgbmV3IGNwdSdzIGFyZSBkZXRlY3RlZCBpbiB0aGUgc3lzdGVtIHZpYSBhbnkgcGxhdGZvcm0gc3BlY2lmaWMKKyAqIG1ldGhvZCwgc3VjaCBhcyBBQ1BJIGZvciBlLmcuCisgKi8KK2NwdW1hc2tfdCBjcHVfcHJlc2VudF9tYXAgX19yZWFkX21vc3RseTsKK0VYUE9SVF9TWU1CT0woY3B1X3ByZXNlbnRfbWFwKTsKKworI2lmbmRlZiBDT05GSUdfU01QCisKKy8qCisgKiBSZXByZXNlbnRzIGFsbCBjcHUncyB0aGF0IGFyZSBjdXJyZW50bHkgb25saW5lLgorICovCitjcHVtYXNrX3QgY3B1X29ubGluZV9tYXAgX19yZWFkX21vc3RseSA9IENQVV9NQVNLX0FMTDsKK0VYUE9SVF9TWU1CT0woY3B1X29ubGluZV9tYXApOworCitjcHVtYXNrX3QgY3B1X3Bvc3NpYmxlX21hcCBfX3JlYWRfbW9zdGx5ID0gQ1BVX01BU0tfQUxMOworRVhQT1JUX1NZTUJPTChjcHVfcG9zc2libGVfbWFwKTsKKworI2Vsc2UgLyogQ09ORklHX1NNUCAqLworCiAvKiBTZXJpYWxpemVzIHRoZSB1cGRhdGVzIHRvIGNwdV9vbmxpbmVfbWFwLCBjcHVfcHJlc2VudF9tYXAgKi8KIHN0YXRpYyBERUZJTkVfTVVURVgoY3B1X2FkZF9yZW1vdmVfbG9jayk7CiAKQEAgLTQwMywzICs0MjUsNSBAQAogCWNwdV9tYXBzX3VwZGF0ZV9kb25lKCk7CiB9CiAjZW5kaWYgLyogQ09ORklHX1BNX1NMRUVQX1NNUCAqLworCisjZW5kaWYgLyogQ09ORklHX1NNUCAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL2NwdXNldC5jIGIva2VybmVsL2NwdXNldC5jCmluZGV4IDg2ZWE5ZTMuLjQ1OWQ2MDEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9jcHVzZXQuYworKysgYi9rZXJuZWwvY3B1c2V0LmMKQEAgLTc5Nyw4ICs3OTcsMTAgQEAKIAkJcmV0dmFsID0gY3B1bGlzdF9wYXJzZShidWYsIHRyaWFsY3MuY3B1c19hbGxvd2VkKTsKIAkJaWYgKHJldHZhbCA8IDApCiAJCQlyZXR1cm4gcmV0dmFsOworCisJCWlmICghY3B1c19zdWJzZXQodHJpYWxjcy5jcHVzX2FsbG93ZWQsIGNwdV9vbmxpbmVfbWFwKSkKKwkJCXJldHVybiAtRUlOVkFMOwogCX0KLQljcHVzX2FuZCh0cmlhbGNzLmNwdXNfYWxsb3dlZCwgdHJpYWxjcy5jcHVzX2FsbG93ZWQsIGNwdV9vbmxpbmVfbWFwKTsKIAlyZXR2YWwgPSB2YWxpZGF0ZV9jaGFuZ2UoY3MsICZ0cmlhbGNzKTsKIAlpZiAocmV0dmFsIDwgMCkKIAkJcmV0dXJuIHJldHZhbDsKQEAgLTkzMiw5ICs5MzQsMTEgQEAKIAkJcmV0dmFsID0gbm9kZWxpc3RfcGFyc2UoYnVmLCB0cmlhbGNzLm1lbXNfYWxsb3dlZCk7CiAJCWlmIChyZXR2YWwgPCAwKQogCQkJZ290byBkb25lOworCisJCWlmICghbm9kZXNfc3Vic2V0KHRyaWFsY3MubWVtc19hbGxvd2VkLAorCQkJCW5vZGVfc3RhdGVzW05fSElHSF9NRU1PUlldKSkKKwkJCXJldHVybiAtRUlOVkFMOwogCX0KLQlub2Rlc19hbmQodHJpYWxjcy5tZW1zX2FsbG93ZWQsIHRyaWFsY3MubWVtc19hbGxvd2VkLAotCQkJCQkJbm9kZV9zdGF0ZXNbTl9ISUdIX01FTU9SWV0pOwogCW9sZG1lbSA9IGNzLT5tZW1zX2FsbG93ZWQ7CiAJaWYgKG5vZGVzX2VxdWFsKG9sZG1lbSwgdHJpYWxjcy5tZW1zX2FsbG93ZWQpKSB7CiAJCXJldHZhbCA9IDA7CQkvKiBUb28gZWFzeSAtIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTEwMzMsOCArMTAzNyw4IEBACiAKIHN0YXRpYyBpbnQgdXBkYXRlX3JlbGF4X2RvbWFpbl9sZXZlbChzdHJ1Y3QgY3B1c2V0ICpjcywgczY0IHZhbCkKIHsKLQlpZiAoKGludCl2YWwgPCAwKQotCQl2YWwgPSAtMTsKKwlpZiAodmFsIDwgLTEgfHwgdmFsID49IFNEX0xWX01BWCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAodmFsICE9IGNzLT5yZWxheF9kb21haW5fbGV2ZWwpIHsKIAkJY3MtPnJlbGF4X2RvbWFpbl9sZXZlbCA9IHZhbDsKQEAgLTExOTAsNiArMTE5NCwxNSBAQAogCiAJaWYgKGNwdXNfZW1wdHkoY3MtPmNwdXNfYWxsb3dlZCkgfHwgbm9kZXNfZW1wdHkoY3MtPm1lbXNfYWxsb3dlZCkpCiAJCXJldHVybiAtRU5PU1BDOworCWlmICh0c2stPmZsYWdzICYgUEZfVEhSRUFEX0JPVU5EKSB7CisJCWNwdW1hc2tfdCBtYXNrOworCisJCW11dGV4X2xvY2soJmNhbGxiYWNrX211dGV4KTsKKwkJbWFzayA9IGNzLT5jcHVzX2FsbG93ZWQ7CisJCW11dGV4X3VubG9jaygmY2FsbGJhY2tfbXV0ZXgpOworCQlpZiAoIWNwdXNfZXF1YWwodHNrLT5jcHVzX2FsbG93ZWQsIG1hc2spKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQogCiAJcmV0dXJuIHNlY3VyaXR5X3Rhc2tfc2V0c2NoZWR1bGVyKHRzaywgMCwgTlVMTCk7CiB9CkBAIC0xMjAzLDExICsxMjE2LDE0IEBACiAJc3RydWN0IG1tX3N0cnVjdCAqbW07CiAJc3RydWN0IGNwdXNldCAqY3MgPSBjZ3JvdXBfY3MoY29udCk7CiAJc3RydWN0IGNwdXNldCAqb2xkY3MgPSBjZ3JvdXBfY3Mob2xkY29udCk7CisJaW50IGVycjsKIAogCW11dGV4X2xvY2soJmNhbGxiYWNrX211dGV4KTsKIAlndWFyYW50ZWVfb25saW5lX2NwdXMoY3MsICZjcHVzKTsKLQlzZXRfY3B1c19hbGxvd2VkX3B0cih0c2ssICZjcHVzKTsKKwllcnIgPSBzZXRfY3B1c19hbGxvd2VkX3B0cih0c2ssICZjcHVzKTsKIAltdXRleF91bmxvY2soJmNhbGxiYWNrX211dGV4KTsKKwlpZiAoZXJyKQorCQlyZXR1cm47CiAKIAlmcm9tID0gb2xkY3MtPm1lbXNfYWxsb3dlZDsKIAl0byA9IGNzLT5tZW1zX2FsbG93ZWQ7CkBAIC0xODc4LDcgKzE4OTQsNyBAQAogICogaW4gb3JkZXIgdG8gbWluaW1pemUgdGV4dCBzaXplLgogICovCiAKLXN0YXRpYyB2b2lkIGNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKHZvaWQpCitzdGF0aWMgdm9pZCBjb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZyhpbnQgcmVidWlsZF9zZCkKIHsKIAljZ3JvdXBfbG9jaygpOwogCkBAIC0xODg2LDYgKzE5MDIsMTMgQEAKIAl0b3BfY3B1c2V0Lm1lbXNfYWxsb3dlZCA9IG5vZGVfc3RhdGVzW05fSElHSF9NRU1PUlldOwogCXNjYW5fZm9yX2VtcHR5X2NwdXNldHMoJnRvcF9jcHVzZXQpOwogCisJLyoKKwkgKiBTY2hlZHVsZXIgZGVzdHJveXMgZG9tYWlucyBvbiBob3RwbHVnIGV2ZW50cy4KKwkgKiBSZWJ1aWxkIHRoZW0gYmFzZWQgb24gdGhlIGN1cnJlbnQgc2V0dGluZ3MuCisJICovCisJaWYgKHJlYnVpbGRfc2QpCisJCXJlYnVpbGRfc2NoZWRfZG9tYWlucygpOworCiAJY2dyb3VwX3VubG9jaygpOwogfQogCkBAIC0xOTAyLDExICsxOTI1LDIyIEBACiBzdGF0aWMgaW50IGNwdXNldF9oYW5kbGVfY3B1aHAoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp1bnVzZWRfbmIsCiAJCQkJdW5zaWduZWQgbG9uZyBwaGFzZSwgdm9pZCAqdW51c2VkX2NwdSkKIHsKLQlpZiAocGhhc2UgPT0gQ1BVX0RZSU5HIHx8IHBoYXNlID09IENQVV9EWUlOR19GUk9aRU4pCisJc3dpdGNoIChwaGFzZSkgeworCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgorCWNhc2UgQ1BVX1VQX0NBTkNFTEVEX0ZST1pFTjoKKwljYXNlIENQVV9ET1dOX0ZBSUxFRDoKKwljYXNlIENQVV9ET1dOX0ZBSUxFRF9GUk9aRU46CisJY2FzZSBDUFVfT05MSU5FOgorCWNhc2UgQ1BVX09OTElORV9GUk9aRU46CisJY2FzZSBDUFVfREVBRDoKKwljYXNlIENQVV9ERUFEX0ZST1pFTjoKKwkJY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcoMSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CiAJCXJldHVybiBOT1RJRllfRE9ORTsKKwl9CiAKLQljb21tb25fY3B1X21lbV9ob3RwbHVnX3VucGx1ZygpOwotCXJldHVybiAwOworCXJldHVybiBOT1RJRllfT0s7CiB9CiAKICNpZmRlZiBDT05GSUdfTUVNT1JZX0hPVFBMVUcKQEAgLTE5MTksNyArMTk1Myw3IEBACiAKIHZvaWQgY3B1c2V0X3RyYWNrX29ubGluZV9ub2Rlcyh2b2lkKQogewotCWNvbW1vbl9jcHVfbWVtX2hvdHBsdWdfdW5wbHVnKCk7CisJY29tbW9uX2NwdV9tZW1faG90cGx1Z191bnBsdWcoMCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEva2VybmVsL2V4aXQuYyBiL2tlcm5lbC9leGl0LmMKaW5kZXggMTUxMGY3OC4uY2ViMjU4NyAxMDA2NDQKLS0tIGEva2VybmVsL2V4aXQuYworKysgYi9rZXJuZWwvZXhpdC5jCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvcGVyc29uYWxpdHkuaD4KICNpbmNsdWRlIDxsaW51eC90dHkuaD4KICNpbmNsdWRlIDxsaW51eC9tbnRfbmFtZXNwYWNlLmg+CisjaW5jbHVkZSA8bGludXgvaW9jb250ZXh0Lmg+CiAjaW5jbHVkZSA8bGludXgva2V5Lmg+CiAjaW5jbHVkZSA8bGludXgvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KQEAgLTEyNiw2ICsxMjcsMTIgQEAKIAogCV9fdW5oYXNoX3Byb2Nlc3ModHNrKTsKIAorCS8qCisJICogRG8gdGhpcyB1bmRlciAtPnNpZ2xvY2ssIHdlIGNhbiByYWNlIHdpdGggYW5vdGhlciB0aHJlYWQKKwkgKiBkb2luZyBzaWdxdWV1ZV9mcmVlKCkgaWYgd2UgaGF2ZSBTSUdRVUVVRV9QUkVBTExPQyBzaWduYWxzLgorCSAqLworCWZsdXNoX3NpZ3F1ZXVlKCZ0c2stPnBlbmRpbmcpOworCiAJdHNrLT5zaWduYWwgPSBOVUxMOwogCXRzay0+c2lnaGFuZCA9IE5VTEw7CiAJc3Bpbl91bmxvY2soJnNpZ2hhbmQtPnNpZ2xvY2spOwpAQCAtMTMzLDcgKzE0MCw2IEBACiAKIAlfX2NsZWFudXBfc2lnaGFuZChzaWdoYW5kKTsKIAljbGVhcl90c2tfdGhyZWFkX2ZsYWcodHNrLFRJRl9TSUdQRU5ESU5HKTsKLQlmbHVzaF9zaWdxdWV1ZSgmdHNrLT5wZW5kaW5nKTsKIAlpZiAoc2lnKSB7CiAJCWZsdXNoX3NpZ3F1ZXVlKCZzaWctPnNoYXJlZF9wZW5kaW5nKTsKIAkJdGFza3N0YXRzX3RnaWRfZnJlZShzaWcpOwpkaWZmIC0tZ2l0IGEva2VybmVsL2ZvcmsuYyBiL2tlcm5lbC9mb3JrLmMKaW5kZXggMTk5MDhiMi4uNGJkMmY1MSAxMDA2NDQKLS0tIGEva2VybmVsL2ZvcmsuYworKysgYi9rZXJuZWwvZm9yay5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2VtLmg+CiAjaW5jbHVkZSA8bGludXgvZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZkdGFibGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pb2NvbnRleHQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXkuaD4KICNpbmNsdWRlIDxsaW51eC9iaW5mbXRzLmg+CiAjaW5jbHVkZSA8bGludXgvbW1hbi5oPgpAQCAtOTA5LDcgKzkxMCw3IEBACiAKIAlydF9tdXRleF9pbml0X3Rhc2socCk7CiAKLSNpZmRlZiBDT05GSUdfVFJBQ0VfSVJRRkxBR1MKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORwogCURFQlVHX0xPQ0tTX1dBUk5fT04oIXAtPmhhcmRpcnFzX2VuYWJsZWQpOwogCURFQlVHX0xPQ0tTX1dBUk5fT04oIXAtPnNvZnRpcnFzX2VuYWJsZWQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9rZXJuZWwvZnV0ZXguYyBiL2tlcm5lbC9mdXRleC5jCmluZGV4IDQ0OWRlZjguLjdkMTEzNmUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9mdXRleC5jCisrKyBiL2tlcm5lbC9mdXRleC5jCkBAIC0xMDk2LDIxICsxMDk2LDY0IEBACiAgKiBwcml2YXRlIGZ1dGV4ZXMuCiAgKi8KIHN0YXRpYyBpbnQgZml4dXBfcGlfc3RhdGVfb3duZXIodTMyIF9fdXNlciAqdWFkZHIsIHN0cnVjdCBmdXRleF9xICpxLAotCQkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV3b3duZXIpCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpuZXdvd25lciwKKwkJCQlzdHJ1Y3Qgcndfc2VtYXBob3JlICpmc2hhcmVkKQogewogCXUzMiBuZXd0aWQgPSB0YXNrX3BpZF92bnIobmV3b3duZXIpIHwgRlVURVhfV0FJVEVSUzsKIAlzdHJ1Y3QgZnV0ZXhfcGlfc3RhdGUgKnBpX3N0YXRlID0gcS0+cGlfc3RhdGU7CisJc3RydWN0IHRhc2tfc3RydWN0ICpvbGRvd25lciA9IHBpX3N0YXRlLT5vd25lcjsKIAl1MzIgdXZhbCwgY3VydmFsLCBuZXd2YWw7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBhdHRlbXB0ID0gMDsKIAogCS8qIE93bmVyIGRpZWQ/ICovCisJaWYgKCFwaV9zdGF0ZS0+b3duZXIpCisJCW5ld3RpZCB8PSBGVVRFWF9PV05FUl9ESUVEOworCisJLyoKKwkgKiBXZSBhcmUgaGVyZSBlaXRoZXIgYmVjYXVzZSB3ZSBzdG9sZSB0aGUgcnRtdXRleCBmcm9tIHRoZQorCSAqIHBlbmRpbmcgb3duZXIgb3Igd2UgYXJlIHRoZSBwZW5kaW5nIG93bmVyIHdoaWNoIGZhaWxlZCB0bworCSAqIGdldCB0aGUgcnRtdXRleC4gV2UgaGF2ZSB0byByZXBsYWNlIHRoZSBwZW5kaW5nIG93bmVyIFRJRAorCSAqIGluIHRoZSB1c2VyIHNwYWNlIHZhcmlhYmxlLiBUaGlzIG11c3QgYmUgYXRvbWljIGFzIHdlIGhhdmUKKwkgKiB0byBwcmVzZXJ2ZSB0aGUgb3duZXIgZGllZCBiaXQgaGVyZS4KKwkgKgorCSAqIE5vdGU6IFdlIHdyaXRlIHRoZSB1c2VyIHNwYWNlIHZhbHVlIF9iZWZvcmVfIGNoYW5naW5nIHRoZQorCSAqIHBpX3N0YXRlIGJlY2F1c2Ugd2UgY2FuIGZhdWx0IGhlcmUuIEltYWdpbmUgc3dhcHBlZCBvdXQKKwkgKiBwYWdlcyBvciBhIGZvcmssIHdoaWNoIHdhcyBydW5uaW5nIHJpZ2h0IGJlZm9yZSB3ZSBhY3F1aXJlZAorCSAqIG1tYXBfc2VtLCB0aGF0IG1hcmtlZCBhbGwgdGhlIGFub255bW91cyBtZW1vcnkgcmVhZG9ubHkgZm9yCisJICogY293LgorCSAqCisJICogTW9kaWZ5aW5nIHBpX3N0YXRlIF9iZWZvcmVfIHRoZSB1c2VyIHNwYWNlIHZhbHVlIHdvdWxkCisJICogbGVhdmUgdGhlIHBpX3N0YXRlIGluIGFuIGluY29uc2lzdGVudCBzdGF0ZSB3aGVuIHdlIGZhdWx0CisJICogaGVyZSwgYmVjYXVzZSB3ZSBuZWVkIHRvIGRyb3AgdGhlIGhhc2ggYnVja2V0IGxvY2sgdG8KKwkgKiBoYW5kbGUgdGhlIGZhdWx0LiBUaGlzIG1pZ2h0IGJlIG9ic2VydmVkIGluIHRoZSBQSUQgY2hlY2sKKwkgKiBpbiBsb29rdXBfcGlfc3RhdGUuCisJICovCityZXRyeToKKwlpZiAoZ2V0X2Z1dGV4X3ZhbHVlX2xvY2tlZCgmdXZhbCwgdWFkZHIpKQorCQlnb3RvIGhhbmRsZV9mYXVsdDsKKworCXdoaWxlICgxKSB7CisJCW5ld3ZhbCA9ICh1dmFsICYgRlVURVhfT1dORVJfRElFRCkgfCBuZXd0aWQ7CisKKwkJY3VydmFsID0gY21weGNoZ19mdXRleF92YWx1ZV9sb2NrZWQodWFkZHIsIHV2YWwsIG5ld3ZhbCk7CisKKwkJaWYgKGN1cnZhbCA9PSAtRUZBVUxUKQorCQkJZ290byBoYW5kbGVfZmF1bHQ7CisJCWlmIChjdXJ2YWwgPT0gdXZhbCkKKwkJCWJyZWFrOworCQl1dmFsID0gY3VydmFsOworCX0KKworCS8qCisJICogV2UgZml4ZWQgdXAgdXNlciBzcGFjZS4gTm93IHdlIG5lZWQgdG8gZml4IHRoZSBwaV9zdGF0ZQorCSAqIGl0c2VsZi4KKwkgKi8KIAlpZiAocGlfc3RhdGUtPm93bmVyICE9IE5VTEwpIHsKIAkJc3Bpbl9sb2NrX2lycSgmcGlfc3RhdGUtPm93bmVyLT5waV9sb2NrKTsKIAkJV0FSTl9PTihsaXN0X2VtcHR5KCZwaV9zdGF0ZS0+bGlzdCkpOwogCQlsaXN0X2RlbF9pbml0KCZwaV9zdGF0ZS0+bGlzdCk7CiAJCXNwaW5fdW5sb2NrX2lycSgmcGlfc3RhdGUtPm93bmVyLT5waV9sb2NrKTsKLQl9IGVsc2UKLQkJbmV3dGlkIHw9IEZVVEVYX09XTkVSX0RJRUQ7CisJfQogCiAJcGlfc3RhdGUtPm93bmVyID0gbmV3b3duZXI7CiAKQEAgLTExMTgsMjYgKzExNjEsMzUgQEAKIAlXQVJOX09OKCFsaXN0X2VtcHR5KCZwaV9zdGF0ZS0+bGlzdCkpOwogCWxpc3RfYWRkKCZwaV9zdGF0ZS0+bGlzdCwgJm5ld293bmVyLT5waV9zdGF0ZV9saXN0KTsKIAlzcGluX3VubG9ja19pcnEoJm5ld293bmVyLT5waV9sb2NrKTsKKwlyZXR1cm4gMDsKIAogCS8qCi0JICogV2Ugb3duIGl0LCBzbyB3ZSBoYXZlIHRvIHJlcGxhY2UgdGhlIHBlbmRpbmcgb3duZXIKLQkgKiBUSUQuIFRoaXMgbXVzdCBiZSBhdG9taWMgYXMgd2UgaGF2ZSBwcmVzZXJ2ZSB0aGUKLQkgKiBvd25lciBkaWVkIGJpdCBoZXJlLgorCSAqIFRvIGhhbmRsZSB0aGUgcGFnZSBmYXVsdCB3ZSBuZWVkIHRvIGRyb3AgdGhlIGhhc2ggYnVja2V0CisJICogbG9jayBoZXJlLiBUaGF0IGdpdmVzIHRoZSBvdGhlciB0YXNrIChlaXRoZXIgdGhlIHBlbmRpbmcKKwkgKiBvd25lciBpdHNlbGYgb3IgdGhlIHRhc2sgd2hpY2ggc3RvbGUgdGhlIHJ0bXV0ZXgpIHRoZQorCSAqIGNoYW5jZSB0byB0cnkgdGhlIGZpeHVwIG9mIHRoZSBwaV9zdGF0ZS4gU28gb25jZSB3ZSBhcmUKKwkgKiBiYWNrIGZyb20gaGFuZGxpbmcgdGhlIGZhdWx0IHdlIG5lZWQgdG8gY2hlY2sgdGhlIHBpX3N0YXRlCisJICogYWZ0ZXIgcmVhY3F1aXJpbmcgdGhlIGhhc2ggYnVja2V0IGxvY2sgYW5kIGJlZm9yZSB0cnlpbmcgdG8KKwkgKiBkbyBhbm90aGVyIGZpeHVwLiBXaGVuIHRoZSBmaXh1cCBoYXMgYmVlbiBkb25lIGFscmVhZHkgd2UKKwkgKiBzaW1wbHkgcmV0dXJuLgogCSAqLwotCXJldCA9IGdldF9mdXRleF92YWx1ZV9sb2NrZWQoJnV2YWwsIHVhZGRyKTsKK2hhbmRsZV9mYXVsdDoKKwlzcGluX3VubG9jayhxLT5sb2NrX3B0cik7CiAKLQl3aGlsZSAoIXJldCkgewotCQluZXd2YWwgPSAodXZhbCAmIEZVVEVYX09XTkVSX0RJRUQpIHwgbmV3dGlkOworCXJldCA9IGZ1dGV4X2hhbmRsZV9mYXVsdCgodW5zaWduZWQgbG9uZyl1YWRkciwgZnNoYXJlZCwgYXR0ZW1wdCsrKTsKIAotCQljdXJ2YWwgPSBjbXB4Y2hnX2Z1dGV4X3ZhbHVlX2xvY2tlZCh1YWRkciwgdXZhbCwgbmV3dmFsKTsKKwlzcGluX2xvY2socS0+bG9ja19wdHIpOwogCi0JCWlmIChjdXJ2YWwgPT0gLUVGQVVMVCkKLQkJCXJldCA9IC1FRkFVTFQ7Ci0JCWlmIChjdXJ2YWwgPT0gdXZhbCkKLQkJCWJyZWFrOwotCQl1dmFsID0gY3VydmFsOwotCX0KLQlyZXR1cm4gcmV0OworCS8qCisJICogQ2hlY2sgaWYgc29tZW9uZSBlbHNlIGZpeGVkIGl0IGZvciB1czoKKwkgKi8KKwlpZiAocGlfc3RhdGUtPm93bmVyICE9IG9sZG93bmVyKQorCQlyZXR1cm4gMDsKKworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlnb3RvIHJldHJ5OwogfQogCiAvKgpAQCAtMTUwNyw3ICsxNTU5LDcgQEAKIAkJICogdGhhdCBjYXNlOgogCQkgKi8KIAkJaWYgKHEucGlfc3RhdGUtPm93bmVyICE9IGN1cnIpCi0JCQlyZXQgPSBmaXh1cF9waV9zdGF0ZV9vd25lcih1YWRkciwgJnEsIGN1cnIpOworCQkJcmV0ID0gZml4dXBfcGlfc3RhdGVfb3duZXIodWFkZHIsICZxLCBjdXJyLCBmc2hhcmVkKTsKIAl9IGVsc2UgewogCQkvKgogCQkgKiBDYXRjaCB0aGUgcmFyZSBjYXNlLCB3aGVyZSB0aGUgbG9jayB3YXMgcmVsZWFzZWQKQEAgLTE1MzksNyArMTU5MSw4IEBACiAJCQkJaW50IHJlczsKIAogCQkJCW93bmVyID0gcnRfbXV0ZXhfb3duZXIoJnEucGlfc3RhdGUtPnBpX211dGV4KTsKLQkJCQlyZXMgPSBmaXh1cF9waV9zdGF0ZV9vd25lcih1YWRkciwgJnEsIG93bmVyKTsKKwkJCQlyZXMgPSBmaXh1cF9waV9zdGF0ZV9vd25lcih1YWRkciwgJnEsIG93bmVyLAorCQkJCQkJCSAgIGZzaGFyZWQpOwogCiAJCQkJLyogcHJvcGFnYXRlIC1FRkFVTFQsIGlmIHRoZSBmaXh1cCBmYWlsZWQgKi8KIAkJCQlpZiAocmVzKQpkaWZmIC0tZ2l0IGEva2VybmVsL2hydGltZXIuYyBiL2tlcm5lbC9ocnRpbWVyLmMKaW5kZXggNDIxYmU1Zi4uMjdhODNlZSAxMDA2NDQKLS0tIGEva2VybmVsL2hydGltZXIuYworKysgYi9rZXJuZWwvaHJ0aW1lci5jCkBAIC0xMDAzLDEwICsxMDAzLDE4IEBACiAJICovCiAJcmFpc2UgPSB0aW1lci0+c3RhdGUgPT0gSFJUSU1FUl9TVEFURV9QRU5ESU5HOwogCisJLyoKKwkgKiBXZSB1c2UgcHJlZW1wdF9kaXNhYmxlIHRvIHByZXZlbnQgdGhpcyB0YXNrIGZyb20gbWlncmF0aW5nIGFmdGVyCisJICogc2V0dGluZyB1cCB0aGUgc29mdGlycSBhbmQgcmFpc2luZyBpdC4gT3RoZXJ3aXNlLCBpZiBtZSBtaWdyYXRlCisJICogd2Ugd2lsbCByYWlzZSB0aGUgc29mdGlycSBvbiB0aGUgd3JvbmcgQ1BVLgorCSAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCiAJdW5sb2NrX2hydGltZXJfYmFzZSh0aW1lciwgJmZsYWdzKTsKIAogCWlmIChyYWlzZSkKIAkJaHJ0aW1lcl9yYWlzZV9zb2Z0aXJxKCk7CisJcHJlZW1wdF9lbmFibGUoKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xMDc4LDcgKzEwODYsNyBAQAogfQogRVhQT1JUX1NZTUJPTF9HUEwoaHJ0aW1lcl9nZXRfcmVtYWluaW5nKTsKIAotI2lmIGRlZmluZWQoQ09ORklHX05PX0lETEVfSFopIHx8IGRlZmluZWQoQ09ORklHX05PX0haKQorI2lmZGVmIENPTkZJR19OT19IWgogLyoqCiAgKiBocnRpbWVyX2dldF9uZXh0X2V2ZW50IC0gZ2V0IHRoZSB0aW1lIHVudGlsIG5leHQgZXhwaXJ5IGV2ZW50CiAgKgpAQCAtMTY2OSw3ICsxNjc3LDcgQEAKIAkJCSAgKHZvaWQgKikobG9uZylzbXBfcHJvY2Vzc29yX2lkKCkpOwogCXJlZ2lzdGVyX2NwdV9ub3RpZmllcigmaHJ0aW1lcnNfbmIpOwogI2lmZGVmIENPTkZJR19ISUdIX1JFU19USU1FUlMKLQlvcGVuX3NvZnRpcnEoSFJUSU1FUl9TT0ZUSVJRLCBydW5faHJ0aW1lcl9zb2Z0aXJxLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoSFJUSU1FUl9TT0ZUSVJRLCBydW5faHJ0aW1lcl9zb2Z0aXJxKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9rZXJuZWwva2dkYi5jIGIva2VybmVsL2tnZGIuYwppbmRleCAxNDc4N2RlLi4zZWMyM2MzIDEwMDY0NAotLS0gYS9rZXJuZWwva2dkYi5jCisrKyBiL2tlcm5lbC9rZ2RiLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlIDxhc20vYnl0ZW9yZGVyLmg+CiAjaW5jbHVkZSA8YXNtL2F0b21pYy5oPgogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KKyNpbmNsdWRlIDxhc20vdW5hbGlnbmVkLmg+CiAKIHN0YXRpYyBpbnQga2dkYl9icmVha19hc2FwOwogCkBAIC0yMjcsOCArMjI4LDYgQEAKICAqIEdEQiByZW1vdGUgcHJvdG9jb2wgcGFyc2VyOgogICovCiAKLXN0YXRpYyBjb25zdCBjaGFyCWhleGNoYXJzW10gPSAiMDEyMzQ1Njc4OWFiY2RlZiI7Ci0KIHN0YXRpYyBpbnQgaGV4KGNoYXIgY2gpCiB7CiAJaWYgKChjaCA+PSAnYScpICYmIChjaCA8PSAnZicpKQpAQCAtMzE2LDggKzMxNSw4IEBACiAJCX0KIAogCQlrZ2RiX2lvX29wcy0+d3JpdGVfY2hhcignIycpOwotCQlrZ2RiX2lvX29wcy0+d3JpdGVfY2hhcihoZXhjaGFyc1tjaGVja3N1bSA+PiA0XSk7Ci0JCWtnZGJfaW9fb3BzLT53cml0ZV9jaGFyKGhleGNoYXJzW2NoZWNrc3VtICYgMHhmXSk7CisJCWtnZGJfaW9fb3BzLT53cml0ZV9jaGFyKGhleF9hc2NfaGkoY2hlY2tzdW0pKTsKKwkJa2dkYl9pb19vcHMtPndyaXRlX2NoYXIoaGV4X2FzY19sbyhjaGVja3N1bSkpOwogCQlpZiAoa2dkYl9pb19vcHMtPmZsdXNoKQogCQkJa2dkYl9pb19vcHMtPmZsdXNoKCk7CiAKQEAgLTQ3OCw4ICs0NzcsOCBAQAogewogCWVycm9yID0gLWVycm9yOwogCXBrdFswXSA9ICdFJzsKLQlwa3RbMV0gPSBoZXhjaGFyc1soZXJyb3IgLyAxMCldOwotCXBrdFsyXSA9IGhleGNoYXJzWyhlcnJvciAlIDEwKV07CisJcGt0WzFdID0gaGV4X2FzY1soZXJyb3IgLyAxMCldOworCXBrdFsyXSA9IGhleF9hc2NbKGVycm9yICUgMTApXTsKIAlwa3RbM10gPSAnXDAnOwogfQogCkBAIC01MTAsMTAgKzUwOSw3IEBACiAJc2NhbiA9ICh1bnNpZ25lZCBjaGFyICopaWQ7CiAJd2hpbGUgKGktLSkKIAkJKnNjYW4rKyA9IDA7Ci0JKnNjYW4rKyA9ICh2YWx1ZSA+PiAyNCkgJiAweGZmOwotCSpzY2FuKysgPSAodmFsdWUgPj4gMTYpICYgMHhmZjsKLQkqc2NhbisrID0gKHZhbHVlID4+IDgpICYgMHhmZjsKLQkqc2NhbisrID0gKHZhbHVlICYgMHhmZik7CisJcHV0X3VuYWxpZ25lZF9iZTMyKHZhbHVlLCBzY2FuKTsKIH0KIAogc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqZ2V0dGhyZWFkKHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgdGlkKQpAQCAtMTUwMyw3ICsxNDk5LDggQEAKIAlyZXR1cm4gMTsKIH0KIAotdm9pZCBrZ2RiX2NvbnNvbGVfd3JpdGUoc3RydWN0IGNvbnNvbGUgKmNvLCBjb25zdCBjaGFyICpzLCB1bnNpZ25lZCBjb3VudCkKK3N0YXRpYyB2b2lkIGtnZGJfY29uc29sZV93cml0ZShzdHJ1Y3QgY29uc29sZSAqY28sIGNvbnN0IGNoYXIgKnMsCisgICB1bnNpZ25lZCBjb3VudCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCmRpZmYgLS1naXQgYS9rZXJuZWwva3Byb2Jlcy5jIGIva2VybmVsL2twcm9iZXMuYwppbmRleCAxZTAyNTBjLi4xNDg1Y2E4IDEwMDY0NAotLS0gYS9rZXJuZWwva3Byb2Jlcy5jCisrKyBiL2tlcm5lbC9rcHJvYmVzLmMKQEAgLTc5LDcgKzc5LDcgQEAKICAqCiAgKiBGb3Igc3VjaCBjYXNlcywgd2Ugbm93IGhhdmUgYSBibGFja2xpc3QKICAqLwotc3RydWN0IGtwcm9iZV9ibGFja3BvaW50IGtwcm9iZV9ibGFja2xpc3RbXSA9IHsKK3N0YXRpYyBzdHJ1Y3Qga3Byb2JlX2JsYWNrcG9pbnQga3Byb2JlX2JsYWNrbGlzdFtdID0gewogCXsicHJlZW1wdF9zY2hlZHVsZSIsfSwKIAl7TlVMTH0gICAgLyogVGVybWluYXRvciAqLwogfTsKQEAgLTY5OSw4ICs2OTksOSBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKIAkJcmV0ID0gX19yZWdpc3Rlcl9rcHJvYmUoa3BzW2ldLCBjYWxsZWRfZnJvbSk7Ci0JCWlmIChyZXQgPCAwICYmIGkgPiAwKSB7Ci0JCQl1bnJlZ2lzdGVyX2twcm9iZXMoa3BzLCBpKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlmIChpID4gMCkKKwkJCQl1bnJlZ2lzdGVyX2twcm9iZXMoa3BzLCBpKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpAQCAtNzc2LDggKzc3Nyw5IEBACiAJCQlqcC0+a3AuYnJlYWtfaGFuZGxlciA9IGxvbmdqbXBfYnJlYWtfaGFuZGxlcjsKIAkJCXJldCA9IF9fcmVnaXN0ZXJfa3Byb2JlKCZqcC0+a3AsIGNhbGxlZF9mcm9tKTsKIAkJfQotCQlpZiAocmV0IDwgMCAmJiBpID4gMCkgewotCQkJdW5yZWdpc3Rlcl9qcHJvYmVzKGpwcywgaSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlpZiAoaSA+IDApCisJCQkJdW5yZWdpc3Rlcl9qcHJvYmVzKGpwcywgaSk7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTkyMCw4ICs5MjIsOSBAQAogCQlyZXR1cm4gLUVJTlZBTDsKIAlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKIAkJcmV0ID0gX19yZWdpc3Rlcl9rcmV0cHJvYmUocnBzW2ldLCBjYWxsZWRfZnJvbSk7Ci0JCWlmIChyZXQgPCAwICYmIGkgPiAwKSB7Ci0JCQl1bnJlZ2lzdGVyX2tyZXRwcm9iZXMocnBzLCBpKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWlmIChpID4gMCkKKwkJCQl1bnJlZ2lzdGVyX2tyZXRwcm9iZXMocnBzLCBpKTsKIAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEva2VybmVsL2t0aHJlYWQuYyBiL2tlcm5lbC9rdGhyZWFkLmMKaW5kZXggYmQxYjllYS4uOTc3NDdjZCAxMDA2NDQKLS0tIGEva2VybmVsL2t0aHJlYWQuYworKysgYi9rZXJuZWwva3RocmVhZC5jCkBAIC0xODAsNiArMTgwLDcgQEAKIAlzZXRfdGFza19jcHUoaywgY3B1KTsKIAlrLT5jcHVzX2FsbG93ZWQgPSBjcHVtYXNrX29mX2NwdShjcHUpOwogCWstPnJ0Lm5yX2NwdXNfYWxsb3dlZCA9IDE7CisJay0+ZmxhZ3MgfD0gUEZfVEhSRUFEX0JPVU5EOwogfQogRVhQT1JUX1NZTUJPTChrdGhyZWFkX2JpbmQpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvbG9ja2RlcC5jIGIva2VybmVsL2xvY2tkZXAuYwppbmRleCA4MWE0ZTRhLi5kMzhhNjQzIDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2RlcC5jCisrKyBiL2tlcm5lbC9sb2NrZGVwLmMKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9pcnFmbGFncy5oPgogI2luY2x1ZGUgPGxpbnV4L3V0c25hbWUuaD4KICNpbmNsdWRlIDxsaW51eC9oYXNoLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CiAKICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4KIApAQCAtODEsNiArODIsOCBAQAogCQlfX3Jhd19zcGluX3VubG9jaygmbG9ja2RlcF9sb2NrKTsKIAkJcmV0dXJuIDA7CiAJfQorCS8qIHByZXZlbnQgYW55IHJlY3Vyc2lvbnMgd2l0aGluIGxvY2tkZXAgZnJvbSBjYXVzaW5nIGRlYWRsb2NrcyAqLworCWN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uKys7CiAJcmV0dXJuIDE7CiB9CiAKQEAgLTg5LDYgKzkyLDcgQEAKIAlpZiAoZGVidWdfbG9ja3MgJiYgIV9fcmF3X3NwaW5faXNfbG9ja2VkKCZsb2NrZGVwX2xvY2spKQogCQlyZXR1cm4gREVCVUdfTE9DS1NfV0FSTl9PTigxKTsKIAorCWN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uLS07CiAJX19yYXdfc3Bpbl91bmxvY2soJmxvY2tkZXBfbG9jayk7CiAJcmV0dXJuIDA7CiB9CkBAIC05ODIsNyArOTg2LDcgQEAKIAlyZXR1cm4gMTsKIH0KIAotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUworI2lmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKSAmJiBkZWZpbmVkKENPTkZJR19QUk9WRV9MT0NLSU5HKQogLyoKICAqIEZvcndhcmRzIGFuZCBiYWNrd2FyZHMgc3ViZ3JhcGggc2VhcmNoaW5nLCBmb3IgdGhlIHB1cnBvc2VzIG9mCiAgKiBwcm92aW5nIHRoYXQgdHdvIHN1YmdyYXBocyBjYW4gYmUgY29ubmVjdGVkIGJ5IGEgbmV3IGRlcGVuZGVuY3kKQEAgLTE0NTgsNyArMTQ2MiwxNCBAQAogfQogCiB1bnNpZ25lZCBsb25nIG5yX2xvY2tfY2hhaW5zOwotc3RhdGljIHN0cnVjdCBsb2NrX2NoYWluIGxvY2tfY2hhaW5zW01BWF9MT0NLREVQX0NIQUlOU107CitzdHJ1Y3QgbG9ja19jaGFpbiBsb2NrX2NoYWluc1tNQVhfTE9DS0RFUF9DSEFJTlNdOworaW50IG5yX2NoYWluX2hsb2NrczsKK3N0YXRpYyB1MTYgY2hhaW5faGxvY2tzW01BWF9MT0NLREVQX0NIQUlOX0hMT0NLU107CisKK3N0cnVjdCBsb2NrX2NsYXNzICpsb2NrX2NoYWluX2dldF9jbGFzcyhzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW4sIGludCBpKQoreworCXJldHVybiBsb2NrX2NsYXNzZXMgKyBjaGFpbl9obG9ja3NbY2hhaW4tPmJhc2UgKyBpXTsKK30KIAogLyoKICAqIExvb2sgdXAgYSBkZXBlbmRlbmN5IGNoYWluLiBJZiB0aGUga2V5IGlzIG5vdCBwcmVzZW50IHlldCB0aGVuCkBAIC0xNDY2LDEwICsxNDc3LDE1IEBACiAgKiB2YWxpZGF0ZWQuIElmIHRoZSBrZXkgaXMgYWxyZWFkeSBoYXNoZWQsIHJldHVybiAwLgogICogKE9uIHJldHVybiB3aXRoIDEgZ3JhcGhfbG9jayBpcyBoZWxkLikKICAqLwotc3RhdGljIGlubGluZSBpbnQgbG9va3VwX2NoYWluX2NhY2hlKHU2NCBjaGFpbl9rZXksIHN0cnVjdCBsb2NrX2NsYXNzICpjbGFzcykKK3N0YXRpYyBpbmxpbmUgaW50IGxvb2t1cF9jaGFpbl9jYWNoZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsCisJCQkJICAgICBzdHJ1Y3QgaGVsZF9sb2NrICpobG9jaywKKwkJCQkgICAgIHU2NCBjaGFpbl9rZXkpCiB7CisJc3RydWN0IGxvY2tfY2xhc3MgKmNsYXNzID0gaGxvY2stPmNsYXNzOwogCXN0cnVjdCBsaXN0X2hlYWQgKmhhc2hfaGVhZCA9IGNoYWluaGFzaGVudHJ5KGNoYWluX2tleSk7CiAJc3RydWN0IGxvY2tfY2hhaW4gKmNoYWluOworCXN0cnVjdCBoZWxkX2xvY2sgKmhsb2NrX2N1cnIsICpobG9ja19uZXh0OworCWludCBpLCBqLCBuLCBjbjsKIAogCWlmIChERUJVR19MT0NLU19XQVJOX09OKCFpcnFzX2Rpc2FibGVkKCkpKQogCQlyZXR1cm4gMDsKQEAgLTE1MTcsNiArMTUzMywzMiBAQAogCX0KIAljaGFpbiA9IGxvY2tfY2hhaW5zICsgbnJfbG9ja19jaGFpbnMrKzsKIAljaGFpbi0+Y2hhaW5fa2V5ID0gY2hhaW5fa2V5OworCWNoYWluLT5pcnFfY29udGV4dCA9IGhsb2NrLT5pcnFfY29udGV4dDsKKwkvKiBGaW5kIHRoZSBmaXJzdCBoZWxkX2xvY2sgb2YgY3VycmVudCBjaGFpbiAqLworCWhsb2NrX25leHQgPSBobG9jazsKKwlmb3IgKGkgPSBjdXJyLT5sb2NrZGVwX2RlcHRoIC0gMTsgaSA+PSAwOyBpLS0pIHsKKwkJaGxvY2tfY3VyciA9IGN1cnItPmhlbGRfbG9ja3MgKyBpOworCQlpZiAoaGxvY2tfY3Vyci0+aXJxX2NvbnRleHQgIT0gaGxvY2tfbmV4dC0+aXJxX2NvbnRleHQpCisJCQlicmVhazsKKwkJaGxvY2tfbmV4dCA9IGhsb2NrOworCX0KKwlpKys7CisJY2hhaW4tPmRlcHRoID0gY3Vyci0+bG9ja2RlcF9kZXB0aCArIDEgLSBpOworCWNuID0gbnJfY2hhaW5faGxvY2tzOworCXdoaWxlIChjbiArIGNoYWluLT5kZXB0aCA8PSBNQVhfTE9DS0RFUF9DSEFJTl9ITE9DS1MpIHsKKwkJbiA9IGNtcHhjaGcoJm5yX2NoYWluX2hsb2NrcywgY24sIGNuICsgY2hhaW4tPmRlcHRoKTsKKwkJaWYgKG4gPT0gY24pCisJCQlicmVhazsKKwkJY24gPSBuOworCX0KKwlpZiAobGlrZWx5KGNuICsgY2hhaW4tPmRlcHRoIDw9IE1BWF9MT0NLREVQX0NIQUlOX0hMT0NLUykpIHsKKwkJY2hhaW4tPmJhc2UgPSBjbjsKKwkJZm9yIChqID0gMDsgaiA8IGNoYWluLT5kZXB0aCAtIDE7IGorKywgaSsrKSB7CisJCQlpbnQgbG9ja19pZCA9IGN1cnItPmhlbGRfbG9ja3NbaV0uY2xhc3MgLSBsb2NrX2NsYXNzZXM7CisJCQljaGFpbl9obG9ja3NbY2hhaW4tPmJhc2UgKyBqXSA9IGxvY2tfaWQ7CisJCX0KKwkJY2hhaW5faGxvY2tzW2NoYWluLT5iYXNlICsgal0gPSBjbGFzcyAtIGxvY2tfY2xhc3NlczsKKwl9CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmNoYWluLT5lbnRyeSwgaGFzaF9oZWFkKTsKIAlkZWJ1Z19hdG9taWNfaW5jKCZjaGFpbl9sb29rdXBfbWlzc2VzKTsKIAlpbmNfY2hhaW5zKCk7CkBAIC0xNTM4LDcgKzE1ODAsNyBAQAogCSAqIGdyYXBoX2xvY2sgZm9yIHVzKQogCSAqLwogCWlmICghaGxvY2stPnRyeWxvY2sgJiYgKGhsb2NrLT5jaGVjayA9PSAyKSAmJgotCQkJbG9va3VwX2NoYWluX2NhY2hlKGNoYWluX2tleSwgaGxvY2stPmNsYXNzKSkgeworCSAgICBsb29rdXBfY2hhaW5fY2FjaGUoY3VyciwgaGxvY2ssIGNoYWluX2tleSkpIHsKIAkJLyoKIAkJICogQ2hlY2sgd2hldGhlciBsYXN0IGhlbGQgbG9jazoKIAkJICoKQEAgLTE2ODAsNyArMTcyMiw3IEBACiBzdGF0aWMgaW50IG1hcmtfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsIHN0cnVjdCBoZWxkX2xvY2sgKnRoaXMsCiAJCSAgICAgZW51bSBsb2NrX3VzYWdlX2JpdCBuZXdfYml0KTsKIAotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUworI2lmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKSAmJiBkZWZpbmVkKENPTkZJR19QUk9WRV9MT0NLSU5HKQogCiAvKgogICogcHJpbnQgaXJxIGludmVyc2lvbiBidWc6CkBAIC0yMDEzLDExICsyMDU1LDEzIEBACiAvKgogICogSGFyZGlycXMgd2lsbCBiZSBlbmFibGVkOgogICovCi12b2lkIHRyYWNlX2hhcmRpcnFzX29uKHZvaWQpCit2b2lkIHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcih1bnNpZ25lZCBsb25nIGEwKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciA9IGN1cnJlbnQ7CiAJdW5zaWduZWQgbG9uZyBpcDsKIAorCXRpbWVfaGFyZGlycXNfb24oQ0FMTEVSX0FERFIwLCBhMCk7CisKIAlpZiAodW5saWtlbHkoIWRlYnVnX2xvY2tzIHx8IGN1cnJlbnQtPmxvY2tkZXBfcmVjdXJzaW9uKSkKIAkJcmV0dXJuOwogCkBAIC0yMDU1LDE2ICsyMDk5LDIzIEBACiAJY3Vyci0+aGFyZGlycV9lbmFibGVfZXZlbnQgPSArK2N1cnItPmlycV9ldmVudHM7CiAJZGVidWdfYXRvbWljX2luYygmaGFyZGlycXNfb25fZXZlbnRzKTsKIH0KK0VYUE9SVF9TWU1CT0wodHJhY2VfaGFyZGlycXNfb25fY2FsbGVyKTsKIAordm9pZCB0cmFjZV9oYXJkaXJxc19vbih2b2lkKQoreworCXRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcihDQUxMRVJfQUREUjApOworfQogRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vbik7CiAKIC8qCiAgKiBIYXJkaXJxcyB3ZXJlIGRpc2FibGVkOgogICovCi12b2lkIHRyYWNlX2hhcmRpcnFzX29mZih2b2lkKQordm9pZCB0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKHVuc2lnbmVkIGxvbmcgYTApCiB7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyID0gY3VycmVudDsKIAorCXRpbWVfaGFyZGlycXNfb2ZmKENBTExFUl9BRERSMCwgYTApOworCiAJaWYgKHVubGlrZWx5KCFkZWJ1Z19sb2NrcyB8fCBjdXJyZW50LT5sb2NrZGVwX3JlY3Vyc2lvbikpCiAJCXJldHVybjsKIApAQCAtMjA4Miw3ICsyMTMzLDEyIEBACiAJfSBlbHNlCiAJCWRlYnVnX2F0b21pY19pbmMoJnJlZHVuZGFudF9oYXJkaXJxc19vZmYpOwogfQorRVhQT1JUX1NZTUJPTCh0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKTsKIAordm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCkKK3sKKwl0cmFjZV9oYXJkaXJxc19vZmZfY2FsbGVyKENBTExFUl9BRERSMCk7Cit9CiBFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZik7CiAKIC8qCkBAIC0yMjQ2LDcgKzIzMDIsNyBAQAogICogTWFyayBhIGxvY2sgd2l0aCBhIHVzYWdlIGJpdCwgYW5kIHZhbGlkYXRlIHRoZSBzdGF0ZSB0cmFuc2l0aW9uOgogICovCiBzdGF0aWMgaW50IG1hcmtfbG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsIHN0cnVjdCBoZWxkX2xvY2sgKnRoaXMsCi0JCSAgICAgZW51bSBsb2NrX3VzYWdlX2JpdCBuZXdfYml0KQorCQkJICAgICBlbnVtIGxvY2tfdXNhZ2VfYml0IG5ld19iaXQpCiB7CiAJdW5zaWduZWQgaW50IG5ld19tYXNrID0gMSA8PCBuZXdfYml0LCByZXQgPSAxOwogCkBAIC0yNjUwLDcgKzI3MDYsOCBAQAogICovCiBzdGF0aWMgdm9pZCBjaGVja19mbGFncyh1bnNpZ25lZCBsb25nIGZsYWdzKQogewotI2lmIGRlZmluZWQoQ09ORklHX0RFQlVHX0xPQ0tERVApICYmIGRlZmluZWQoQ09ORklHX1RSQUNFX0lSUUZMQUdTKQorI2lmIGRlZmluZWQoQ09ORklHX1BST1ZFX0xPQ0tJTkcpICYmIGRlZmluZWQoQ09ORklHX0RFQlVHX0xPQ0tERVApICYmIFwKKyAgICBkZWZpbmVkKENPTkZJR19UUkFDRV9JUlFGTEFHUykKIAlpZiAoIWRlYnVnX2xvY2tzKQogCQlyZXR1cm47CiAKQEAgLTI2ODYsNyArMjc0Myw3IEBACiAgKiBhbmQgYWxzbyBhdm9pZCBsb2NrZGVwIHJlY3Vyc2lvbjoKICAqLwogdm9pZCBsb2NrX2FjcXVpcmUoc3RydWN0IGxvY2tkZXBfbWFwICpsb2NrLCB1bnNpZ25lZCBpbnQgc3ViY2xhc3MsCi0JCSAgaW50IHRyeWxvY2ssIGludCByZWFkLCBpbnQgY2hlY2ssIHVuc2lnbmVkIGxvbmcgaXApCisJCQkgIGludCB0cnlsb2NrLCBpbnQgcmVhZCwgaW50IGNoZWNrLCB1bnNpZ25lZCBsb25nIGlwKQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTI3MDgsNyArMjc2NSw4IEBACiAKIEVYUE9SVF9TWU1CT0xfR1BMKGxvY2tfYWNxdWlyZSk7CiAKLXZvaWQgbG9ja19yZWxlYXNlKHN0cnVjdCBsb2NrZGVwX21hcCAqbG9jaywgaW50IG5lc3RlZCwgdW5zaWduZWQgbG9uZyBpcCkKK3ZvaWQgbG9ja19yZWxlYXNlKHN0cnVjdCBsb2NrZGVwX21hcCAqbG9jaywgaW50IG5lc3RlZCwKKwkJCSAgdW5zaWduZWQgbG9uZyBpcCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvbG9ja2RlcF9pbnRlcm5hbHMuaCBiL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCmluZGV4IDhjZTA5YmMuLmMzNjAwYTAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCisrKyBiL2tlcm5lbC9sb2NrZGVwX2ludGVybmFscy5oCkBAIC0yMyw2ICsyMyw4IEBACiAjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOU19CSVRTCTE0CiAjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOUwkoMVVMIDw8IE1BWF9MT0NLREVQX0NIQUlOU19CSVRTKQogCisjZGVmaW5lIE1BWF9MT0NLREVQX0NIQUlOX0hMT0NLUyAoTUFYX0xPQ0tERVBfQ0hBSU5TKjUpCisKIC8qCiAgKiBTdGFjay10cmFjZTogdGlnaHRseSBwYWNrZWQgYXJyYXkgb2Ygc3RhY2sgYmFja3RyYWNlCiAgKiBhZGRyZXNzZXMuIFByb3RlY3RlZCBieSB0aGUgaGFzaF9sb2NrLgpAQCAtMzAsMTUgKzMyLDE5IEBACiAjZGVmaW5lIE1BWF9TVEFDS19UUkFDRV9FTlRSSUVTCTI2MjE0NFVMCiAKIGV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGFsbF9sb2NrX2NsYXNzZXM7CitleHRlcm4gc3RydWN0IGxvY2tfY2hhaW4gbG9ja19jaGFpbnNbXTsKIAogZXh0ZXJuIHZvaWQKIGdldF91c2FnZV9jaGFycyhzdHJ1Y3QgbG9ja19jbGFzcyAqY2xhc3MsIGNoYXIgKmMxLCBjaGFyICpjMiwgY2hhciAqYzMsIGNoYXIgKmM0KTsKIAogZXh0ZXJuIGNvbnN0IGNoYXIgKiBfX2dldF9rZXlfbmFtZShzdHJ1Y3QgbG9ja2RlcF9zdWJjbGFzc19rZXkgKmtleSwgY2hhciAqc3RyKTsKIAorc3RydWN0IGxvY2tfY2xhc3MgKmxvY2tfY2hhaW5fZ2V0X2NsYXNzKHN0cnVjdCBsb2NrX2NoYWluICpjaGFpbiwgaW50IGkpOworCiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9sb2NrX2NsYXNzZXM7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9saXN0X2VudHJpZXM7CiBleHRlcm4gdW5zaWduZWQgbG9uZyBucl9sb2NrX2NoYWluczsKK2V4dGVybiBpbnQgbnJfY2hhaW5faGxvY2tzOwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnJfc3RhY2tfdHJhY2VfZW50cmllczsKIAogZXh0ZXJuIHVuc2lnbmVkIGludCBucl9oYXJkaXJxX2NoYWluczsKZGlmZiAtLWdpdCBhL2tlcm5lbC9sb2NrZGVwX3Byb2MuYyBiL2tlcm5lbC9sb2NrZGVwX3Byb2MuYwppbmRleCBkYzVkMjk2Li45YjBlOTQwIDEwMDY0NAotLS0gYS9rZXJuZWwvbG9ja2RlcF9wcm9jLmMKKysrIGIva2VybmVsL2xvY2tkZXBfcHJvYy5jCkBAIC0xMzksNyArMTM5LDcgQEAKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZjbGFzcy0+bG9ja3NfYWZ0ZXIsIGVudHJ5KSB7CiAJCWlmIChlbnRyeS0+ZGlzdGFuY2UgPT0gMSkgewotCQkJc2VxX3ByaW50ZihtLCAiIC0+IFslcF0gIiwgZW50cnktPmNsYXNzKTsKKwkJCXNlcV9wcmludGYobSwgIiAtPiBbJXBdICIsIGVudHJ5LT5jbGFzcy0+a2V5KTsKIAkJCXByaW50X25hbWUobSwgZW50cnktPmNsYXNzKTsKIAkJCXNlcV9wdXRzKG0sICJcbiIpOwogCQl9CkBAIC0xNzgsNiArMTc4LDk1IEBACiAJLnJlbGVhc2UJPSBzZXFfcmVsZWFzZSwKIH07CiAKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORworc3RhdGljIHZvaWQgKmxjX25leHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKK3sKKwlzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW47CisKKwkoKnBvcykrKzsKKworCWlmICh2ID09IFNFUV9TVEFSVF9UT0tFTikKKwkJY2hhaW4gPSBtLT5wcml2YXRlOworCWVsc2UgeworCQljaGFpbiA9IHY7CisKKwkJaWYgKCpwb3MgPCBucl9sb2NrX2NoYWlucykKKwkJCWNoYWluID0gbG9ja19jaGFpbnMgKyAqcG9zOworCQllbHNlCisJCQljaGFpbiA9IE5VTEw7CisJfQorCisJcmV0dXJuIGNoYWluOworfQorCitzdGF0aWMgdm9pZCAqbGNfc3RhcnQoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcykKK3sKKwlpZiAoKnBvcyA9PSAwKQorCQlyZXR1cm4gU0VRX1NUQVJUX1RPS0VOOworCisJaWYgKCpwb3MgPCBucl9sb2NrX2NoYWlucykKKwkJcmV0dXJuIGxvY2tfY2hhaW5zICsgKnBvczsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBsY19zdG9wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKK30KKworc3RhdGljIGludCBsY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgbG9ja19jaGFpbiAqY2hhaW4gPSB2OworCXN0cnVjdCBsb2NrX2NsYXNzICpjbGFzczsKKwlpbnQgaTsKKworCWlmICh2ID09IFNFUV9TVEFSVF9UT0tFTikgeworCQlzZXFfcHJpbnRmKG0sICJhbGwgbG9jayBjaGFpbnM6XG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJc2VxX3ByaW50ZihtLCAiaXJxX2NvbnRleHQ6ICVkXG4iLCBjaGFpbi0+aXJxX2NvbnRleHQpOworCisJZm9yIChpID0gMDsgaSA8IGNoYWluLT5kZXB0aDsgaSsrKSB7CisJCWNsYXNzID0gbG9ja19jaGFpbl9nZXRfY2xhc3MoY2hhaW4sIGkpOworCQlzZXFfcHJpbnRmKG0sICJbJXBdICIsIGNsYXNzLT5rZXkpOworCQlwcmludF9uYW1lKG0sIGNsYXNzKTsKKwkJc2VxX3B1dHMobSwgIlxuIik7CisJfQorCXNlcV9wdXRzKG0sICJcbiIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgbG9ja2RlcF9jaGFpbnNfb3BzID0geworCS5zdGFydAk9IGxjX3N0YXJ0LAorCS5uZXh0CT0gbGNfbmV4dCwKKwkuc3RvcAk9IGxjX3N0b3AsCisJLnNob3cJPSBsY19zaG93LAorfTsKKworc3RhdGljIGludCBsb2NrZGVwX2NoYWluc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWludCByZXMgPSBzZXFfb3BlbihmaWxlLCAmbG9ja2RlcF9jaGFpbnNfb3BzKTsKKwlpZiAoIXJlcykgeworCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisKKwkJaWYgKG5yX2xvY2tfY2hhaW5zKQorCQkJbS0+cHJpdmF0ZSA9IGxvY2tfY2hhaW5zOworCQllbHNlCisJCQltLT5wcml2YXRlID0gTlVMTDsKKwl9CisJcmV0dXJuIHJlczsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY19sb2NrZGVwX2NoYWluc19vcGVyYXRpb25zID0geworCS5vcGVuCQk9IGxvY2tkZXBfY2hhaW5zX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSBzZXFfcmVsZWFzZSwKK307CisjZW5kaWYgLyogQ09ORklHX1BST1ZFX0xPQ0tJTkcgKi8KKwogc3RhdGljIHZvaWQgbG9ja2RlcF9zdGF0c19kZWJ1Z19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSkKIHsKICNpZmRlZiBDT05GSUdfREVCVUdfTE9DS0RFUApAQCAtMjk0LDYgKzM4Myw4IEBACiAjaWZkZWYgQ09ORklHX1BST1ZFX0xPQ0tJTkcKIAlzZXFfcHJpbnRmKG0sICIgZGVwZW5kZW5jeSBjaGFpbnM6ICAgICAgICAgICAgICUxMWx1IFttYXg6ICVsdV1cbiIsCiAJCQlucl9sb2NrX2NoYWlucywgTUFYX0xPQ0tERVBfQ0hBSU5TKTsKKwlzZXFfcHJpbnRmKG0sICIgZGVwZW5kZW5jeSBjaGFpbiBobG9ja3M6ICAgICAgICUxMWQgW21heDogJWx1XVxuIiwKKwkJCW5yX2NoYWluX2hsb2NrcywgTUFYX0xPQ0tERVBfQ0hBSU5fSExPQ0tTKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCkBAIC02NjEsNiArNzUyLDEwIEBACiBzdGF0aWMgaW50IF9faW5pdCBsb2NrZGVwX3Byb2NfaW5pdCh2b2lkKQogewogCXByb2NfY3JlYXRlKCJsb2NrZGVwIiwgU19JUlVTUiwgTlVMTCwgJnByb2NfbG9ja2RlcF9vcGVyYXRpb25zKTsKKyNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORworCXByb2NfY3JlYXRlKCJsb2NrZGVwX2NoYWlucyIsIFNfSVJVU1IsIE5VTEwsCisJCSAgICAmcHJvY19sb2NrZGVwX2NoYWluc19vcGVyYXRpb25zKTsKKyNlbmRpZgogCXByb2NfY3JlYXRlKCJsb2NrZGVwX3N0YXRzIiwgU19JUlVTUiwgTlVMTCwKIAkJICAgICZwcm9jX2xvY2tkZXBfc3RhdHNfb3BlcmF0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9tYXJrZXIuYyBiL2tlcm5lbC9tYXJrZXIuYwppbmRleCBiNWE5ZmUxLi4xYWJmYjkyIDEwMDY0NAotLS0gYS9rZXJuZWwvbWFya2VyLmMKKysrIGIva2VybmVsL21hcmtlci5jCkBAIC01NSw4ICs1NSw4IEBACiBzdHJ1Y3QgbWFya2VyX2VudHJ5IHsKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSBobGlzdDsKIAljaGFyICpmb3JtYXQ7Ci0Jdm9pZCAoKmNhbGwpKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLAkvKiBQcm9iZSB3cmFwcGVyICovCi0JCXZvaWQgKmNhbGxfcHJpdmF0ZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOworCQkJLyogUHJvYmUgd3JhcHBlciAqLworCXZvaWQgKCpjYWxsKShjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLCAuLi4pOwogCXN0cnVjdCBtYXJrZXJfcHJvYmVfY2xvc3VyZSBzaW5nbGU7CiAJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKIAlpbnQgcmVmY291bnQ7CS8qIE51bWJlciBvZiB0aW1lcyBhcm1lZC4gMCBpZiBkaXNhcm1lZC4gKi8KQEAgLTkxLDE1ICs5MSwxMyBAQAogICogbWFya2VyX3Byb2JlX2NiIENhbGxiYWNrIHRoYXQgcHJlcGFyZXMgdGhlIHZhcmlhYmxlIGFyZ3VtZW50IGxpc3QgZm9yIHByb2Jlcy4KICAqIEBtZGF0YTogcG9pbnRlciBvZiB0eXBlIHN0cnVjdCBtYXJrZXIKICAqIEBjYWxsX3ByaXZhdGU6IGNhbGxlciBzaXRlIHByaXZhdGUgZGF0YQotICogQGZtdDogZm9ybWF0IHN0cmluZwogICogQC4uLjogIFZhcmlhYmxlIGFyZ3VtZW50IGxpc3QuCiAgKgogICogU2luY2Ugd2UgZG8gbm90IHVzZSAidHlwaWNhbCIgcG9pbnRlciBiYXNlZCBSQ1UgaW4gdGhlIDEgYXJndW1lbnQgY2FzZSwgd2UKICAqIG5lZWQgdG8gcHV0IGEgZnVsbCBzbXBfcm1iKCkgaW4gdGhpcyBicmFuY2guIFRoaXMgaXMgd2h5IHdlIGRvIG5vdCB1c2UKICAqIHJjdV9kZXJlZmVyZW5jZSgpIGZvciB0aGUgcG9pbnRlciByZWFkLgogICovCi12b2lkIG1hcmtlcl9wcm9iZV9jYihjb25zdCBzdHJ1Y3QgbWFya2VyICptZGF0YSwgdm9pZCAqY2FsbF9wcml2YXRlLAotCWNvbnN0IGNoYXIgKmZtdCwgLi4uKQordm9pZCBtYXJrZXJfcHJvYmVfY2IoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsIHZvaWQgKmNhbGxfcHJpdmF0ZSwgLi4uKQogewogCXZhX2xpc3QgYXJnczsKIAljaGFyIHB0eXBlOwpAQCAtMTIwLDggKzExOCw5IEBACiAJCS8qIE11c3QgcmVhZCB0aGUgcHRyIGJlZm9yZSBwcml2YXRlIGRhdGEuIFRoZXkgYXJlIG5vdCBkYXRhCiAJCSAqIGRlcGVuZGFudCwgc28gd2UgcHV0IGFuIGV4cGxpY2l0IHNtcF9ybWIoKSBoZXJlLiAqLwogCQlzbXBfcm1iKCk7Ci0JCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7Ci0JCWZ1bmMobWRhdGEtPnNpbmdsZS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIGZtdCwgJmFyZ3MpOworCQl2YV9zdGFydChhcmdzLCBjYWxsX3ByaXZhdGUpOworCQlmdW5jKG1kYXRhLT5zaW5nbGUucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBtZGF0YS0+Zm9ybWF0LAorCQkJJmFyZ3MpOwogCQl2YV9lbmQoYXJncyk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKQEAgLTEzNiw5ICsxMzUsOSBAQAogCQlzbXBfcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKIAkJbXVsdGkgPSBtZGF0YS0+bXVsdGk7CiAJCWZvciAoaSA9IDA7IG11bHRpW2ldLmZ1bmM7IGkrKykgewotCQkJdmFfc3RhcnQoYXJncywgZm10KTsKLQkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLCBmbXQsCi0JCQkJJmFyZ3MpOworCQkJdmFfc3RhcnQoYXJncywgY2FsbF9wcml2YXRlKTsKKwkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLAorCQkJCW1kYXRhLT5mb3JtYXQsICZhcmdzKTsKIAkJCXZhX2VuZChhcmdzKTsKIAkJfQogCX0KQEAgLTE1MCwxMyArMTQ5LDExIEBACiAgKiBtYXJrZXJfcHJvYmVfY2IgQ2FsbGJhY2sgdGhhdCBkb2VzIG5vdCBwcmVwYXJlIHRoZSB2YXJpYWJsZSBhcmd1bWVudCBsaXN0LgogICogQG1kYXRhOiBwb2ludGVyIG9mIHR5cGUgc3RydWN0IG1hcmtlcgogICogQGNhbGxfcHJpdmF0ZTogY2FsbGVyIHNpdGUgcHJpdmF0ZSBkYXRhCi0gKiBAZm10OiBmb3JtYXQgc3RyaW5nCiAgKiBALi4uOiAgVmFyaWFibGUgYXJndW1lbnQgbGlzdC4KICAqCiAgKiBTaG91bGQgYmUgY29ubmVjdGVkIHRvIG1hcmtlcnMgIk1BUktfTk9BUkdTIi4KICAqLwotdm9pZCBtYXJrZXJfcHJvYmVfY2Jfbm9hcmcoY29uc3Qgc3RydWN0IG1hcmtlciAqbWRhdGEsCi0Jdm9pZCAqY2FsbF9wcml2YXRlLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgbWFya2VyX3Byb2JlX2NiX25vYXJnKGNvbnN0IHN0cnVjdCBtYXJrZXIgKm1kYXRhLCB2b2lkICpjYWxsX3ByaXZhdGUsIC4uLikKIHsKIAl2YV9saXN0IGFyZ3M7CS8qIG5vdCBpbml0aWFsaXplZCAqLwogCWNoYXIgcHR5cGU7CkBAIC0xNzIsNyArMTY5LDggQEAKIAkJLyogTXVzdCByZWFkIHRoZSBwdHIgYmVmb3JlIHByaXZhdGUgZGF0YS4gVGhleSBhcmUgbm90IGRhdGEKIAkJICogZGVwZW5kYW50LCBzbyB3ZSBwdXQgYW4gZXhwbGljaXQgc21wX3JtYigpIGhlcmUuICovCiAJCXNtcF9ybWIoKTsKLQkJZnVuYyhtZGF0YS0+c2luZ2xlLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgZm10LCAmYXJncyk7CisJCWZ1bmMobWRhdGEtPnNpbmdsZS5wcm9iZV9wcml2YXRlLCBjYWxsX3ByaXZhdGUsIG1kYXRhLT5mb3JtYXQsCisJCQkmYXJncyk7CiAJfSBlbHNlIHsKIAkJc3RydWN0IG1hcmtlcl9wcm9iZV9jbG9zdXJlICptdWx0aTsKIAkJaW50IGk7CkBAIC0xODYsOCArMTg0LDggQEAKIAkJc21wX3JlYWRfYmFycmllcl9kZXBlbmRzKCk7CiAJCW11bHRpID0gbWRhdGEtPm11bHRpOwogCQlmb3IgKGkgPSAwOyBtdWx0aVtpXS5mdW5jOyBpKyspCi0JCQltdWx0aVtpXS5mdW5jKG11bHRpW2ldLnByb2JlX3ByaXZhdGUsIGNhbGxfcHJpdmF0ZSwgZm10LAotCQkJCSZhcmdzKTsKKwkJCW11bHRpW2ldLmZ1bmMobXVsdGlbaV0ucHJvYmVfcHJpdmF0ZSwgY2FsbF9wcml2YXRlLAorCQkJCW1kYXRhLT5mb3JtYXQsICZhcmdzKTsKIAl9CiAJcHJlZW1wdF9lbmFibGUoKTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9tb2R1bGUuYyBiL2tlcm5lbC9tb2R1bGUuYwppbmRleCBmNWU5NDkxLi41ZjgwNDc4IDEwMDY0NAotLS0gYS9rZXJuZWwvbW9kdWxlLmMKKysrIGIva2VybmVsL21vZHVsZS5jCkBAIC0xMzM3LDcgKzEzMzcsMTkgQEAKIAlrb2JqZWN0X3B1dCgmbW9kLT5ta29iai5rb2JqKTsKIAlyZXR1cm4gZXJyOwogfQotI2VuZGlmCisKK3N0YXRpYyB2b2lkIG1vZF9zeXNmc19maW5pKHN0cnVjdCBtb2R1bGUgKm1vZCkKK3sKKwlrb2JqZWN0X3B1dCgmbW9kLT5ta29iai5rb2JqKTsKK30KKworI2Vsc2UgLyogQ09ORklHX1NZU0ZTICovCisKK3N0YXRpYyB2b2lkIG1vZF9zeXNmc19maW5pKHN0cnVjdCBtb2R1bGUgKm1vZCkKK3sKK30KKworI2VuZGlmIC8qIENPTkZJR19TWVNGUyAqLwogCiBzdGF0aWMgdm9pZCBtb2Rfa29iamVjdF9yZW1vdmUoc3RydWN0IG1vZHVsZSAqbW9kKQogewpAQCAtMTM0NSw3ICsxMzU3LDcgQEAKIAltb2R1bGVfcGFyYW1fc3lzZnNfcmVtb3ZlKG1vZCk7CiAJa29iamVjdF9wdXQobW9kLT5ta29iai5kcml2ZXJzX2Rpcik7CiAJa29iamVjdF9wdXQobW9kLT5ob2xkZXJzX2Rpcik7Ci0Ja29iamVjdF9wdXQoJm1vZC0+bWtvYmoua29iaik7CisJbW9kX3N5c2ZzX2ZpbmkobW9kKTsKIH0KIAogLyoKQEAgLTE3ODAsNyArMTc5Miw3IEBACiAKIAkvKiBTYW5pdHkgY2hlY2tzIGFnYWluc3QgaW5zbW9kaW5nIGJpbmFyaWVzIG9yIHdyb25nIGFyY2gsCiAgICAgICAgICAgIHdlaXJkIGVsZiB2ZXJzaW9uICovCi0JaWYgKG1lbWNtcChoZHItPmVfaWRlbnQsIEVMRk1BRywgNCkgIT0gMAorCWlmIChtZW1jbXAoaGRyLT5lX2lkZW50LCBFTEZNQUcsIFNFTEZNQUcpICE9IDAKIAkgICAgfHwgaGRyLT5lX3R5cGUgIT0gRVRfUkVMCiAJICAgIHx8ICFlbGZfY2hlY2tfYXJjaChoZHIpCiAJICAgIHx8IGhkci0+ZV9zaGVudHNpemUgIT0gc2l6ZW9mKCpzZWNoZHJzKSkgewpkaWZmIC0tZ2l0IGEva2VybmVsL211dGV4LWRlYnVnLmMgYi9rZXJuZWwvbXV0ZXgtZGVidWcuYwppbmRleCAzYWFhMDZjLi4xZDk0MTYwIDEwMDY0NAotLS0gYS9rZXJuZWwvbXV0ZXgtZGVidWcuYworKysgYi9rZXJuZWwvbXV0ZXgtZGVidWcuYwpAQCAtNzksOCArNzksOCBAQAogCWlmICh1bmxpa2VseSghZGVidWdfbG9ja3MpKQogCQlyZXR1cm47CiAKLQlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiAJREVCVUdfTE9DS1NfV0FSTl9PTihsb2NrLT5tYWdpYyAhPSBsb2NrKTsKKwlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiAJREVCVUdfTE9DS1NfV0FSTl9PTighbG9jay0+d2FpdF9saXN0LnByZXYgJiYgIWxvY2stPndhaXRfbGlzdC5uZXh0KTsKIAlERUJVR19MT0NLU19XQVJOX09OKGxvY2stPm93bmVyICE9IGN1cnJlbnRfdGhyZWFkX2luZm8oKSk7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvbXV0ZXguYyBiL2tlcm5lbC9tdXRleC5jCmluZGV4IGQwNDZhMzQuLmJjZGM5YWMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9tdXRleC5jCisrKyBiL2tlcm5lbC9tdXRleC5jCkBAIC0xNjUsMTAgKzE2NSw3IEBACiAJCSAqIGdvdCBhIHNpZ25hbD8gKFRoaXMgY29kZSBnZXRzIGVsaW1pbmF0ZWQgaW4gdGhlCiAJCSAqIFRBU0tfVU5JTlRFUlJVUFRJQkxFIGNhc2UuKQogCQkgKi8KLQkJaWYgKHVubGlrZWx5KChzdGF0ZSA9PSBUQVNLX0lOVEVSUlVQVElCTEUgJiYKLQkJCQkJc2lnbmFsX3BlbmRpbmcodGFzaykpIHx8Ci0JCQkgICAgICAoc3RhdGUgPT0gVEFTS19LSUxMQUJMRSAmJgotCQkJCQlmYXRhbF9zaWduYWxfcGVuZGluZyh0YXNrKSkpKSB7CisJCWlmICh1bmxpa2VseShzaWduYWxfcGVuZGluZ19zdGF0ZShzdGF0ZSwgdGFzaykpKSB7CiAJCQltdXRleF9yZW1vdmVfd2FpdGVyKGxvY2ssICZ3YWl0ZXIsCiAJCQkJCSAgICB0YXNrX3RocmVhZF9pbmZvKHRhc2spKTsKIAkJCW11dGV4X3JlbGVhc2UoJmxvY2stPmRlcF9tYXAsIDEsIGlwKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9wbV9xb3NfcGFyYW1zLmMgYi9rZXJuZWwvcG1fcW9zX3BhcmFtcy5jCmluZGV4IDBhZmUzMmIuLjhjYjc1NzAgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9wbV9xb3NfcGFyYW1zLmMKKysrIGIva2VybmVsL3BtX3Fvc19wYXJhbXMuYwpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSA8bGludXgvcG1fcW9zX3BhcmFtcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CkBAIC0zNTgsMTUgKzM1OSwxOSBAQAogCWludCByZXQ7CiAJbG9uZyBwbV9xb3NfY2xhc3M7CiAKKwlsb2NrX2tlcm5lbCgpOwogCXBtX3Fvc19jbGFzcyA9IGZpbmRfcG1fcW9zX29iamVjdF9ieV9taW5vcihpbWlub3IoaW5vZGUpKTsKIAlpZiAocG1fcW9zX2NsYXNzID49IDApIHsKIAkJZmlscC0+cHJpdmF0ZV9kYXRhID0gKHZvaWQgKilwbV9xb3NfY2xhc3M7CiAJCXNwcmludGYobmFtZSwgInByb2Nlc3NfJWQiLCBjdXJyZW50LT5waWQpOwogCQlyZXQgPSBwbV9xb3NfYWRkX3JlcXVpcmVtZW50KHBtX3Fvc19jbGFzcywgbmFtZSwKIAkJCQkJUE1fUU9TX0RFRkFVTFRfVkFMVUUpOwotCQlpZiAocmV0ID49IDApCisJCWlmIChyZXQgPj0gMCkgeworCQkJdW5sb2NrX2tlcm5lbCgpOwogCQkJcmV0dXJuIDA7CisJCX0KIAl9CisJdW5sb2NrX2tlcm5lbCgpOwogCiAJcmV0dXJuIC1FUEVSTTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9wcmludGsuYyBiL2tlcm5lbC9wcmludGsuYwppbmRleCA4ZmIwMWMzLi4wN2FkOWU3IDEwMDY0NAotLS0gYS9rZXJuZWwvcHJpbnRrLmMKKysrIGIva2VybmVsL3ByaW50ay5jCkBAIC0zOCw3ICszOCw3IEBACiAvKgogICogQXJjaGl0ZWN0dXJlcyBjYW4gb3ZlcnJpZGUgaXQ6CiAgKi8KLXZvaWQgX19hdHRyaWJ1dGVfXygod2VhaykpIGVhcmx5X3ByaW50ayhjb25zdCBjaGFyICpmbXQsIC4uLikKK3ZvaWQgYXNtbGlua2FnZSBfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgZWFybHlfcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogewogfQogCkBAIC03NSw2ICs3NSw4IEBACiBzdGF0aWMgREVDTEFSRV9NVVRFWChjb25zb2xlX3NlbSk7CiBzdGF0aWMgREVDTEFSRV9NVVRFWChzZWNvbmRhcnlfY29uc29sZV9zZW0pOwogc3RydWN0IGNvbnNvbGUgKmNvbnNvbGVfZHJpdmVyczsKK0VYUE9SVF9TWU1CT0xfR1BMKGNvbnNvbGVfZHJpdmVycyk7CisKIC8qCiAgKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgbWVzcyB0aGF0IGlzIHRoZSBWVCBjb2RlIGJ5CiAgKiBrZWVwaW5nIHRyYWNrIGlmIHdlIGhhdmUgdGhlIGNvbnNvbGUgc2VtYXBob3JlIGhlbGQuIEl0J3MKQEAgLTEyMSw2ICsxMjMsOCBAQAogc3RhdGljIHN0cnVjdCBjb25zb2xlX2NtZGxpbmUgY29uc29sZV9jbWRsaW5lW01BWF9DTURMSU5FQ09OU09MRVNdOwogc3RhdGljIGludCBzZWxlY3RlZF9jb25zb2xlID0gLTE7CiBzdGF0aWMgaW50IHByZWZlcnJlZF9jb25zb2xlID0gLTE7CitpbnQgY29uc29sZV9zZXRfb25fY21kbGluZTsKK0VYUE9SVF9TWU1CT0woY29uc29sZV9zZXRfb25fY21kbGluZSk7CiAKIC8qIEZsYWc6IGNvbnNvbGUgY29kZSBtYXkgY2FsbCBzY2hlZHVsZSgpICovCiBzdGF0aWMgaW50IGNvbnNvbGVfbWF5X3NjaGVkdWxlOwpAQCAtMjMxLDcgKzIzNSw3IEBACiAvKgogICogUmV0dXJuIHRoZSBudW1iZXIgb2YgdW5yZWFkIGNoYXJhY3RlcnMgaW4gdGhlIGxvZyBidWZmZXIuCiAgKi8KLWludCBsb2dfYnVmX2dldF9sZW4odm9pZCkKK3N0YXRpYyBpbnQgbG9nX2J1Zl9nZXRfbGVuKHZvaWQpCiB7CiAJcmV0dXJuIGxvZ2dlZF9jaGFyczsKIH0KQEAgLTI2OCwxOSArMjcyLDYgQEAKIH0KIAogLyoKLSAqIEV4dHJhY3QgYSBzaW5nbGUgY2hhcmFjdGVyIGZyb20gdGhlIGxvZyBidWZmZXIuCi0gKi8KLWludCBsb2dfYnVmX3JlYWQoaW50IGlkeCkKLXsKLQljaGFyIHJldDsKLQotCWlmIChsb2dfYnVmX2NvcHkoJnJldCwgaWR4LCAxKSA9PSAxKQotCQlyZXR1cm4gcmV0OwotCWVsc2UKLQkJcmV0dXJuIC0xOwotfQotCi0vKgogICogQ29tbWFuZHMgdG8gZG9fc3lzbG9nOgogICoKICAqIAkwIC0tIENsb3NlIHRoZSBsb2cuICBDdXJyZW50bHkgYSBOT1AuCkBAIC02NjUsMTggKzY1NiwxNyBAQAogCXNwaW5fdW5sb2NrKCZsb2didWZfbG9jayk7CiAJcmV0dXJuIHJldHZhbDsKIH0KLQotY29uc3QgY2hhciBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cgW10gPQotCQkJS0VSTl9DUklUICJCVUc6IHJlY2VudCBwcmludGsgcmVjdXJzaW9uIVxuIjsKLXN0YXRpYyBpbnQgcHJpbnRrX3JlY3Vyc2lvbl9idWc7CitzdGF0aWMgY29uc3QgY2hhciByZWN1cnNpb25fYnVnX21zZyBbXSA9CisJCUtFUk5fQ1JJVCAiQlVHOiByZWNlbnQgcHJpbnRrIHJlY3Vyc2lvbiFcbiI7CitzdGF0aWMgaW50IHJlY3Vyc2lvbl9idWc7CisJc3RhdGljIGludCBuZXdfdGV4dF9saW5lID0gMTsKK3N0YXRpYyBjaGFyIHByaW50a19idWZbMTAyNF07CiAKIGFzbWxpbmthZ2UgaW50IHZwcmludGsoY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7Ci0Jc3RhdGljIGludCBsb2dfbGV2ZWxfdW5rbm93biA9IDE7Ci0Jc3RhdGljIGNoYXIgcHJpbnRrX2J1ZlsxMDI0XTsKLQotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IHByaW50ZWRfbGVuID0gMDsKKwlpbnQgY3VycmVudF9sb2dfbGV2ZWwgPSBkZWZhdWx0X21lc3NhZ2VfbG9nbGV2ZWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlpbnQgdGhpc19jcHU7CiAJY2hhciAqcDsKIApAQCAtNjk5LDcgKzY4OSw3IEBACiAJCSAqIGl0IGNhbiBiZSBwcmludGVkIGF0IHRoZSBuZXh0IGFwcHJvcHJpYXRlIG1vbWVudDoKIAkJICovCiAJCWlmICghb29wc19pbl9wcm9ncmVzcykgewotCQkJcHJpbnRrX3JlY3Vyc2lvbl9idWcgPSAxOworCQkJcmVjdXJzaW9uX2J1ZyA9IDE7CiAJCQlnb3RvIG91dF9yZXN0b3JlX2lycXM7CiAJCX0KIAkJemFwX2xvY2tzKCk7CkBAIC03MDksNzAgKzY5OSw2MiBAQAogCXNwaW5fbG9jaygmbG9nYnVmX2xvY2spOwogCXByaW50a19jcHUgPSB0aGlzX2NwdTsKIAotCWlmIChwcmludGtfcmVjdXJzaW9uX2J1ZykgewotCQlwcmludGtfcmVjdXJzaW9uX2J1ZyA9IDA7Ci0JCXN0cmNweShwcmludGtfYnVmLCBwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOwotCQlwcmludGVkX2xlbiA9IHNpemVvZihwcmludGtfcmVjdXJzaW9uX2J1Z19tc2cpOworCWlmIChyZWN1cnNpb25fYnVnKSB7CisJCXJlY3Vyc2lvbl9idWcgPSAwOworCQlzdHJjcHkocHJpbnRrX2J1ZiwgcmVjdXJzaW9uX2J1Z19tc2cpOworCQlwcmludGVkX2xlbiA9IHNpemVvZihyZWN1cnNpb25fYnVnX21zZyk7CiAJfQogCS8qIEVtaXQgdGhlIG91dHB1dCBpbnRvIHRoZSB0ZW1wb3JhcnkgYnVmZmVyICovCiAJcHJpbnRlZF9sZW4gKz0gdnNjbnByaW50ZihwcmludGtfYnVmICsgcHJpbnRlZF9sZW4sCiAJCQkJICBzaXplb2YocHJpbnRrX2J1ZikgLSBwcmludGVkX2xlbiwgZm10LCBhcmdzKTsKIAorCiAJLyoKIAkgKiBDb3B5IHRoZSBvdXRwdXQgaW50byBsb2dfYnVmLiAgSWYgdGhlIGNhbGxlciBkaWRuJ3QgcHJvdmlkZQogCSAqIGFwcHJvcHJpYXRlIGxvZyBsZXZlbCB0YWdzLCB3ZSBpbnNlcnQgdGhlbSBoZXJlCiAJICovCiAJZm9yIChwID0gcHJpbnRrX2J1ZjsgKnA7IHArKykgewotCQlpZiAobG9nX2xldmVsX3Vua25vd24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxvZ19sZXZlbF91bmtub3duIHNpZ25hbHMgdGhlIHN0YXJ0IG9mIGEgbmV3IGxpbmUgKi8KKwkJaWYgKG5ld190ZXh0X2xpbmUpIHsKKwkJCS8qIElmIGEgdG9rZW4sIHNldCBjdXJyZW50X2xvZ19sZXZlbCBhbmQgc2tpcCBvdmVyICovCisJCQlpZiAocFswXSA9PSAnPCcgJiYgcFsxXSA+PSAnMCcgJiYgcFsxXSA8PSAnNycgJiYKKwkJCSAgICBwWzJdID09ICc+JykgeworCQkJCWN1cnJlbnRfbG9nX2xldmVsID0gcFsxXSAtICcwJzsKKwkJCQlwICs9IDM7CisJCQkJcHJpbnRlZF9sZW4gLT0gMzsKKwkJCX0KKworCQkJLyogQWx3YXlzIG91dHB1dCB0aGUgdG9rZW4gKi8KKwkJCWVtaXRfbG9nX2NoYXIoJzwnKTsKKwkJCWVtaXRfbG9nX2NoYXIoY3VycmVudF9sb2dfbGV2ZWwgKyAnMCcpOworCQkJZW1pdF9sb2dfY2hhcignPicpOworCQkJcHJpbnRlZF9sZW4gKz0gMzsKKwkJCW5ld190ZXh0X2xpbmUgPSAwOworCiAJCQlpZiAocHJpbnRrX3RpbWUpIHsKLQkJCQlpbnQgbG9nbGV2X2NoYXI7CisJCQkJLyogRm9sbG93IHRoZSB0b2tlbiB3aXRoIHRoZSB0aW1lICovCiAJCQkJY2hhciB0YnVmWzUwXSwgKnRwOwogCQkJCXVuc2lnbmVkIHRsZW47CiAJCQkJdW5zaWduZWQgbG9uZyBsb25nIHQ7CiAJCQkJdW5zaWduZWQgbG9uZyBuYW5vc2VjX3JlbTsKIAotCQkJCS8qCi0JCQkJICogZm9yY2UgdGhlIGxvZyBsZXZlbCB0b2tlbiB0byBiZQotCQkJCSAqIGJlZm9yZSB0aGUgdGltZSBvdXRwdXQuCi0JCQkJICovCi0JCQkJaWYgKHBbMF0gPT0gJzwnICYmIHBbMV0gPj0nMCcgJiYKLQkJCQkgICBwWzFdIDw9ICc3JyAmJiBwWzJdID09ICc+JykgewotCQkJCQlsb2dsZXZfY2hhciA9IHBbMV07Ci0JCQkJCXAgKz0gMzsKLQkJCQkJcHJpbnRlZF9sZW4gLT0gMzsKLQkJCQl9IGVsc2UgewotCQkJCQlsb2dsZXZfY2hhciA9IGRlZmF1bHRfbWVzc2FnZV9sb2dsZXZlbAotCQkJCQkJKyAnMCc7Ci0JCQkJfQogCQkJCXQgPSBjcHVfY2xvY2socHJpbnRrX2NwdSk7CiAJCQkJbmFub3NlY19yZW0gPSBkb19kaXYodCwgMTAwMDAwMDAwMCk7Ci0JCQkJdGxlbiA9IHNwcmludGYodGJ1ZiwKLQkJCQkJCSI8JWM+WyU1bHUuJTA2bHVdICIsCi0JCQkJCQlsb2dsZXZfY2hhciwKLQkJCQkJCSh1bnNpZ25lZCBsb25nKXQsCi0JCQkJCQluYW5vc2VjX3JlbS8xMDAwKTsKKwkJCQl0bGVuID0gc3ByaW50Zih0YnVmLCAiWyU1bHUuJTA2bHVdICIsCisJCQkJCQkodW5zaWduZWQgbG9uZykgdCwKKwkJCQkJCW5hbm9zZWNfcmVtIC8gMTAwMCk7CiAKIAkJCQlmb3IgKHRwID0gdGJ1ZjsgdHAgPCB0YnVmICsgdGxlbjsgdHArKykKIAkJCQkJZW1pdF9sb2dfY2hhcigqdHApOwogCQkJCXByaW50ZWRfbGVuICs9IHRsZW47Ci0JCQl9IGVsc2UgewotCQkJCWlmIChwWzBdICE9ICc8JyB8fCBwWzFdIDwgJzAnIHx8Ci0JCQkJICAgcFsxXSA+ICc3JyB8fCBwWzJdICE9ICc+JykgewotCQkJCQllbWl0X2xvZ19jaGFyKCc8Jyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoZGVmYXVsdF9tZXNzYWdlX2xvZ2xldmVsCi0JCQkJCQkrICcwJyk7Ci0JCQkJCWVtaXRfbG9nX2NoYXIoJz4nKTsKLQkJCQkJcHJpbnRlZF9sZW4gKz0gMzsKLQkJCQl9CiAJCQl9Ci0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDA7CisKIAkJCWlmICghKnApCiAJCQkJYnJlYWs7CiAJCX0KKwogCQllbWl0X2xvZ19jaGFyKCpwKTsKIAkJaWYgKCpwID09ICdcbicpCi0JCQlsb2dfbGV2ZWxfdW5rbm93biA9IDE7CisJCQluZXdfdGV4dF9saW5lID0gMTsKIAl9CiAKIAkvKgpAQCAtODkwLDYgKzg3Miw3IEBACiAJKnMgPSAwOwogCiAJX19hZGRfcHJlZmVycmVkX2NvbnNvbGUoYnVmLCBpZHgsIG9wdGlvbnMsIGJybF9vcHRpb25zKTsKKwljb25zb2xlX3NldF9vbl9jbWRsaW5lID0gMTsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImNvbnNvbGU9IiwgY29uc29sZV9zZXR1cCk7CkBAIC0xMDQxLDcgKzEwMjQsOSBAQAogCQlfbG9nX2VuZCA9IGxvZ19lbmQ7CiAJCWNvbl9zdGFydCA9IGxvZ19lbmQ7CQkvKiBGbHVzaCAqLwogCQlzcGluX3VubG9jaygmbG9nYnVmX2xvY2spOworCQlzdG9wX2NyaXRpY2FsX3RpbWluZ3MoKTsJLyogZG9uJ3QgdHJhY2UgcHJpbnQgbGF0ZW5jeSAqLwogCQljYWxsX2NvbnNvbGVfZHJpdmVycyhfY29uX3N0YXJ0LCBfbG9nX2VuZCk7CisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZ3MoKTsKIAkJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOwogCX0KIAljb25zb2xlX2xvY2tlZCA9IDA7CkBAIC0xMTcyLDggKzExNTcsMTEgQEAKIAkJCWNvbnNvbGUtPmluZGV4ID0gMDsKIAkJaWYgKGNvbnNvbGUtPnNldHVwID09IE5VTEwgfHwKIAkJICAgIGNvbnNvbGUtPnNldHVwKGNvbnNvbGUsIE5VTEwpID09IDApIHsKLQkJCWNvbnNvbGUtPmZsYWdzIHw9IENPTl9FTkFCTEVEIHwgQ09OX0NPTlNERVY7Ci0JCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQljb25zb2xlLT5mbGFncyB8PSBDT05fRU5BQkxFRDsKKwkJCWlmIChjb25zb2xlLT5kZXZpY2UpIHsKKwkJCQljb25zb2xlLT5mbGFncyB8PSBDT05fQ09OU0RFVjsKKwkJCQlwcmVmZXJyZWRfY29uc29sZSA9IDA7CisJCQl9CiAJCX0KIAl9CiAKZGlmZiAtLWdpdCBhL2tlcm5lbC9wdHJhY2UuYyBiL2tlcm5lbC9wdHJhY2UuYwppbmRleCA2YzE5ZTk0Li5lMzM3MzkwIDEwMDY0NAotLS0gYS9rZXJuZWwvcHRyYWNlLmMKKysrIGIva2VybmVsL3B0cmFjZS5jCkBAIC0xMjEsNyArMTIxLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgX19wdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitpbnQgX19wdHJhY2VfbWF5X2FjY2VzcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGludCBtb2RlKQogewogCS8qIE1heSB3ZSBpbnNwZWN0IHRoZSBnaXZlbiB0YXNrPwogCSAqIFRoaXMgY2hlY2sgaXMgdXNlZCBib3RoIGZvciBhdHRhY2hpbmcgd2l0aCBwdHJhY2UKQEAgLTE0OCwxNiArMTQ4LDE2IEBACiAJaWYgKCFkdW1wYWJsZSAmJiAhY2FwYWJsZShDQVBfU1lTX1BUUkFDRSkpCiAJCXJldHVybiAtRVBFUk07CiAKLQlyZXR1cm4gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQsIHRhc2spOworCXJldHVybiBzZWN1cml0eV9wdHJhY2UoY3VycmVudCwgdGFzaywgbW9kZSk7CiB9CiAKLWludCBwdHJhY2VfbWF5X2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spCitib29sIHB0cmFjZV9tYXlfYWNjZXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAJaW50IGVycjsKIAl0YXNrX2xvY2sodGFzayk7Ci0JZXJyID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwllcnIgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIG1vZGUpOwogCXRhc2tfdW5sb2NrKHRhc2spOwotCXJldHVybiAhZXJyOworCXJldHVybiAoIWVyciA/IHRydWUgOiBmYWxzZSk7CiB9CiAKIGludCBwdHJhY2VfYXR0YWNoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykKQEAgLTE5NSw3ICsxOTUsNyBAQAogCS8qIHRoZSBzYW1lIHByb2Nlc3MgY2Fubm90IGJlIGF0dGFjaGVkIG1hbnkgdGltZXMgKi8KIAlpZiAodGFzay0+cHRyYWNlICYgUFRfUFRSQUNFRCkKIAkJZ290byBiYWQ7Ci0JcmV0dmFsID0gX19wdHJhY2VfbWF5X2F0dGFjaCh0YXNrKTsKKwlyZXR2YWwgPSBfX3B0cmFjZV9tYXlfYWNjZXNzKHRhc2ssIFBUUkFDRV9NT0RFX0FUVEFDSCk7CiAJaWYgKHJldHZhbCkKIAkJZ290byBiYWQ7CiAKQEAgLTQ5NCw3ICs0OTQsOCBAQAogCSAqLwogCXRhc2tfbG9jayhjdXJyZW50KTsKIAlpZiAoIShjdXJyZW50LT5wdHJhY2UgJiBQVF9QVFJBQ0VEKSkgewotCQlyZXQgPSBzZWN1cml0eV9wdHJhY2UoY3VycmVudC0+cGFyZW50LCBjdXJyZW50KTsKKwkJcmV0ID0gc2VjdXJpdHlfcHRyYWNlKGN1cnJlbnQtPnBhcmVudCwgY3VycmVudCwKKwkJCQkgICAgICBQVFJBQ0VfTU9ERV9BVFRBQ0gpOwogCQkvKgogCQkgKiBTZXQgdGhlIHB0cmFjZSBiaXQgaW4gdGhlIHByb2Nlc3MgcHRyYWNlIGZsYWdzLgogCQkgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC9yY3VjbGFzc2ljLmMgYi9rZXJuZWwvcmN1Y2xhc3NpYy5jCmluZGV4IGY0ZmZiZDAuLjY1YzA5MDYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9yY3VjbGFzc2ljLmMKKysrIGIva2VybmVsL3JjdWNsYXNzaWMuYwpAQCAtODksOCArODksMjIgQEAKIAkJLyoKIAkJICogRG9uJ3Qgc2VuZCBJUEkgdG8gaXRzZWxmLiBXaXRoIGlycXMgZGlzYWJsZWQsCiAJCSAqIHJkcC0+Y3B1IGlzIHRoZSBjdXJyZW50IGNwdS4KKwkJICoKKwkJICogY3B1X29ubGluZV9tYXAgaXMgdXBkYXRlZCBieSB0aGUgX2NwdV9kb3duKCkKKwkJICogdXNpbmcgc3RvcF9tYWNoaW5lX3J1bigpLiBTaW5jZSB3ZSdyZSBpbiBpcnFzIGRpc2FibGVkCisJCSAqIHNlY3Rpb24sIHN0b3BfbWFjaGluZV9ydW4oKSBpcyBub3QgZXhlY3R1dGluZywgaGVuY2UKKwkJICogdGhlIGNwdV9vbmxpbmVfbWFwIGlzIHN0YWJsZS4KKwkJICoKKwkJICogSG93ZXZlciwgIGEgY3B1IG1pZ2h0IGhhdmUgYmVlbiBvZmZsaW5lZCBfanVzdF8gYmVmb3JlCisJCSAqIHdlIGRpc2FibGVkIGlycXMgd2hpbGUgZW50ZXJpbmcgaGVyZS4KKwkJICogQW5kIHJjdSBzdWJzeXN0ZW0gbWlnaHQgbm90IHlldCBoYXZlIGhhbmRsZWQgdGhlIENQVV9ERUFECisJCSAqIG5vdGlmaWNhdGlvbiwgbGVhZGluZyB0byB0aGUgb2ZmbGluZWQgY3B1J3MgYml0CisJCSAqIGJlaW5nIHNldCBpbiB0aGUgcmNwLT5jcHVtYXNrLgorCQkgKgorCQkgKiBIZW5jZSBjcHVtYXNrID0gKHJjcC0+Y3B1bWFzayAmIGNwdV9vbmxpbmVfbWFwKSB0byBwcmV2ZW50CisJCSAqIHNlbmRpbmcgc21wX3Jlc2NoZWR1bGUoKSB0byBhbiBvZmZsaW5lZCBDUFUuCiAJCSAqLwotCQljcHVtYXNrID0gcmNwLT5jcHVtYXNrOworCQljcHVzX2FuZChjcHVtYXNrLCByY3AtPmNwdW1hc2ssIGNwdV9vbmxpbmVfbWFwKTsKIAkJY3B1X2NsZWFyKHJkcC0+Y3B1LCBjcHVtYXNrKTsKIAkJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBjcHVtYXNrKQogCQkJc21wX3NlbmRfcmVzY2hlZHVsZShjcHUpOwpAQCAtNTI5LDcgKzU0Myw3IEBACiAKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfY3RybGJsaywgcmRwKTsKIAlyY3VfaW5pdF9wZXJjcHVfZGF0YShjcHUsICZyY3VfYmhfY3RybGJsaywgYmhfcmRwKTsKLQlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcywgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJvY2Vzc19jYWxsYmFja3MpOwogfQogCiBzdGF0aWMgaW50IF9fY3B1aW5pdCByY3VfY3B1X25vdGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnNlbGYsCmRpZmYgLS1naXQgYS9rZXJuZWwvcmN1cHJlZW1wdC5jIGIva2VybmVsL3JjdXByZWVtcHQuYwppbmRleCBlMWNkZjE5Li45YmY0NDU2IDEwMDY0NAotLS0gYS9rZXJuZWwvcmN1cHJlZW1wdC5jCisrKyBiL2tlcm5lbC9yY3VwcmVlbXB0LmMKQEAgLTIxNyw4ICsyMTcsNiBAQAogfQogRVhQT1JUX1NZTUJPTF9HUEwocmN1X2JhdGNoZXNfY29tcGxldGVkKTsKIAotRVhQT1JUX1NZTUJPTF9HUEwocmN1X2JhdGNoZXNfY29tcGxldGVkX2JoKTsKLQogdm9pZCBfX3JjdV9yZWFkX2xvY2sodm9pZCkKIHsKIAlpbnQgaWR4OwpAQCAtOTI3LDcgKzkyNSwxNSBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJkcC0+bG9jaywgZmxhZ3MpOwogfQogCi12b2lkIF9fZGV2aW5pdCByY3Vfb25saW5lX2NwdShpbnQgY3B1KQorI2Vsc2UgLyogI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVSAqLworCit2b2lkIHJjdV9vZmZsaW5lX2NwdShpbnQgY3B1KQoreworfQorCisjZW5kaWYgLyogI2Vsc2UgI2lmZGVmIENPTkZJR19IT1RQTFVHX0NQVSAqLworCit2b2lkIF9fY3B1aW5pdCByY3Vfb25saW5lX2NwdShpbnQgY3B1KQogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAgLTkzNiwxOCArOTQyLDYgQEAKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZyY3VfY3RybGJsay5mbGlwbG9jaywgZmxhZ3MpOwogfQogCi0jZWxzZSAvKiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCi0KLXZvaWQgcmN1X29mZmxpbmVfY3B1KGludCBjcHUpCi17Ci19Ci0KLXZvaWQgX19kZXZpbml0IHJjdV9vbmxpbmVfY3B1KGludCBjcHUpCi17Ci19Ci0KLSNlbmRpZiAvKiAjZWxzZSAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVICovCi0KIHN0YXRpYyB2b2lkIHJjdV9wcm9jZXNzX2NhbGxiYWNrcyhzdHJ1Y3Qgc29mdGlycV9hY3Rpb24gKnVudXNlZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMTEyNSw3ICsxMTE5LDcgQEAKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGNwdSkKIAkJcmN1X2NwdV9ub3RpZnkoJnJjdV9uYiwgQ1BVX1VQX1BSRVBBUkUsCSh2b2lkICopKGxvbmcpIGNwdSk7CiAKLQlvcGVuX3NvZnRpcnEoUkNVX1NPRlRJUlEsIHJjdV9wcm9jZXNzX2NhbGxiYWNrcywgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFJDVV9TT0ZUSVJRLCByY3VfcHJvY2Vzc19jYWxsYmFja3MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEva2VybmVsL3JlbGF5LmMgYi9rZXJuZWwvcmVsYXkuYwppbmRleCBiYzI0ZGNkLi43ZGU2NDRjIDEwMDY0NAotLS0gYS9rZXJuZWwvcmVsYXkuYworKysgYi9rZXJuZWwvcmVsYXkuYwpAQCAtMTE5MSw3ICsxMTkxLDcgQEAKIAlyZXQgPSAwOwogCXNwbGljZWQgPSAwOwogCi0Jd2hpbGUgKGxlbikgeworCXdoaWxlIChsZW4gJiYgIXNwbGljZWQpIHsKIAkJcmV0ID0gc3ViYnVmX3NwbGljZV9hY3RvcihpbiwgcHBvcywgcGlwZSwgbGVuLCBmbGFncywgJm5vbnBhZF9yZXQpOwogCQlpZiAocmV0IDwgMCkKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkLmMgYi9rZXJuZWwvc2NoZWQuYwppbmRleCBjZmEyMjJhLi45OWU2ZDg1IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWQuYworKysgYi9rZXJuZWwvc2NoZWQuYwpAQCAtNzAsMTAgKzcwLDEzIEBACiAjaW5jbHVkZSA8bGludXgvYm9vdG1lbS5oPgogI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgogCiAjaW5jbHVkZSA8YXNtL3RsYi5oPgogI2luY2x1ZGUgPGFzbS9pcnFfcmVncy5oPgogCisjaW5jbHVkZSAic2NoZWRfY3B1cHJpLmgiCisKIC8qCiAgKiBDb252ZXJ0IHVzZXItbmljZSB2YWx1ZXMgWyAtMjAgLi4uIDAgLi4uIDE5IF0KICAqIHRvIHN0YXRpYyBwcmlvcml0eSBbIE1BWF9SVF9QUklPLi5NQVhfUFJJTy0xIF0sCkBAIC0xMzYsNyArMTM5LDcgQEAKIAogc3RhdGljIGlubGluZSBpbnQgcnRfcG9saWN5KGludCBwb2xpY3kpCiB7Ci0JaWYgKHVubGlrZWx5KHBvbGljeSA9PSBTQ0hFRF9GSUZPKSB8fCB1bmxpa2VseShwb2xpY3kgPT0gU0NIRURfUlIpKQorCWlmICh1bmxpa2VseShwb2xpY3kgPT0gU0NIRURfRklGTyB8fCBwb2xpY3kgPT0gU0NIRURfUlIpKQogCQlyZXR1cm4gMTsKIAlyZXR1cm4gMDsKIH0KQEAgLTI4OSwxNSArMjkyLDE1IEBACiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX2VudGl0eSwgaW5pdF9zY2hlZF9lbnRpdHkpOwogLyogRGVmYXVsdCB0YXNrIGdyb3VwJ3MgY2ZzX3JxIG9uIGVhY2ggY3B1ICovCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IGNmc19ycSwgaW5pdF9jZnNfcnEpIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX3J0X2VudGl0eSwgaW5pdF9zY2hlZF9ydF9lbnRpdHkpOwogc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBydF9ycSwgaW5pdF9ydF9ycSkgX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKLSNlbmRpZgotI2Vsc2UKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KKyNlbHNlIC8qICFDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogI2RlZmluZSByb290X3Rhc2tfZ3JvdXAgaW5pdF90YXNrX2dyb3VwCi0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogCiAvKiB0YXNrX2dyb3VwX2xvY2sgc2VyaWFsaXplcyBhZGQvcmVtb3ZlIG9mIHRhc2sgZ3JvdXBzIGFuZCBhbHNvIGNoYW5nZXMgdG8KICAqIGEgdGFzayBncm91cCdzIGNwdSBzaGFyZXMuCkBAIC0zMDcsMTcgKzMxMCwyMCBAQAogI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECiAjaWZkZWYgQ09ORklHX1VTRVJfU0NIRUQKICMgZGVmaW5lIElOSVRfVEFTS19HUk9VUF9MT0FECSgyKk5JQ0VfMF9MT0FEKQotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfVVNFUl9TQ0hFRCAqLwogIyBkZWZpbmUgSU5JVF9UQVNLX0dST1VQX0xPQUQJTklDRV8wX0xPQUQKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19VU0VSX1NDSEVEICovCiAKIC8qCi0gKiBBIHdlaWdodCBvZiAwLCAxIG9yIFVMT05HX01BWCBjYW4gY2F1c2UgYXJpdGhtZXRpY3MgcHJvYmxlbXMuCisgKiBBIHdlaWdodCBvZiAwIG9yIDEgY2FuIGNhdXNlIGFyaXRobWV0aWNzIHByb2JsZW1zLgorICogQSB3ZWlnaHQgb2YgYSBjZnNfcnEgaXMgdGhlIHN1bSBvZiB3ZWlnaHRzIG9mIHdoaWNoIGVudGl0aWVzCisgKiBhcmUgcXVldWVkIG9uIHRoaXMgY2ZzX3JxLCBzbyBhIHdlaWdodCBvZiBhIGVudGl0eSBzaG91bGQgbm90IGJlCisgKiB0b28gbGFyZ2UsIHNvIGFzIHRoZSBzaGFyZXMgdmFsdWUgb2YgYSB0YXNrIGdyb3VwLgogICogKFRoZSBkZWZhdWx0IHdlaWdodCBpcyAxMDI0IC0gc28gdGhlcmUncyBubyBwcmFjdGljYWwKICAqICBsaW1pdGF0aW9uIGZyb20gdGhpcy4pCiAgKi8KICNkZWZpbmUgTUlOX1NIQVJFUwkyCi0jZGVmaW5lIE1BWF9TSEFSRVMJKFVMT05HX01BWCAtIDEpCisjZGVmaW5lIE1BWF9TSEFSRVMJKDFVTCA8PCAxOCkKIAogc3RhdGljIGludCBpbml0X3Rhc2tfZ3JvdXBfbG9hZCA9IElOSVRfVEFTS19HUk9VUF9MT0FEOwogI2VuZGlmCkBAIC0zNjAsNiArMzY2LDEwIEBACiAjZWxzZQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0X3Rhc2tfcnEoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KSB7IH0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHRhc2tfZ3JvdXAgKnRhc2tfZ3JvdXAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiBOVUxMOworfQogCiAjZW5kaWYJLyogQ09ORklHX0dST1VQX1NDSEVEICovCiAKQEAgLTM3MCw2ICszODAsNyBAQAogCiAJdTY0IGV4ZWNfY2xvY2s7CiAJdTY0IG1pbl92cnVudGltZTsKKwl1NjQgcGFpcl9zdGFydDsKIAogCXN0cnVjdCByYl9yb290IHRhc2tzX3RpbWVsaW5lOwogCXN0cnVjdCByYl9ub2RlICpyYl9sZWZ0bW9zdDsKQEAgLTQwMCw0MCArNDExLDI4IEBACiAJc3RydWN0IHRhc2tfZ3JvdXAgKnRnOwkvKiBncm91cCB0aGF0ICJvd25zIiB0aGlzIHJ1bnF1ZXVlICovCiAKICNpZmRlZiBDT05GSUdfU01QCi0JdW5zaWduZWQgbG9uZyB0YXNrX3dlaWdodDsKLQl1bnNpZ25lZCBsb25nIHNoYXJlczsKIAkvKgotCSAqIFdlIG5lZWQgc3BhY2UgdG8gYnVpbGQgYSBzY2hlZF9kb21haW4gd2lkZSB2aWV3IG9mIHRoZSBmdWxsIHRhc2sKLQkgKiBncm91cCB0cmVlLCBpbiBvcmRlciB0byBhdm9pZCBkZXBlbmRpbmcgb24gZHluYW1pYyBtZW1vcnkgYWxsb2NhdGlvbgotCSAqIGR1cmluZyB0aGUgbG9hZCBiYWxhbmNpbmcgd2UgcGxhY2UgdGhpcyBpbiB0aGUgcGVyIGNwdSB0YXNrIGdyb3VwCi0JICogaGllcmFyY2h5LiBUaGlzIGxpbWl0cyB0aGUgbG9hZCBiYWxhbmNpbmcgdG8gb25lIGluc3RhbmNlIHBlciBjcHUsCi0JICogYnV0IG1vcmUgc2hvdWxkIG5vdCBiZSBuZWVkZWQgYW55d2F5LgorCSAqIHRoZSBwYXJ0IG9mIGxvYWQud2VpZ2h0IGNvbnRyaWJ1dGVkIGJ5IHRhc2tzCiAJICovCi0Jc3RydWN0IGFnZ3JlZ2F0ZV9zdHJ1Y3QgewotCQkvKgotCQkgKiAgIGxvYWQgPSB3ZWlnaHQoY3B1cykgKiBmKHRnKQotCQkgKgotCQkgKiBXaGVyZSBmKHRnKSBpcyB0aGUgcmVjdXJzaXZlIHdlaWdodCBmcmFjdGlvbiBhc3NpZ25lZCB0bwotCQkgKiB0aGlzIGdyb3VwLgotCQkgKi8KLQkJdW5zaWduZWQgbG9uZyBsb2FkOworCXVuc2lnbmVkIGxvbmcgdGFza193ZWlnaHQ7CiAKLQkJLyoKLQkJICogcGFydCBvZiB0aGUgZ3JvdXAgd2VpZ2h0IGRpc3RyaWJ1dGVkIHRvIHRoaXMgc3Bhbi4KLQkJICovCi0JCXVuc2lnbmVkIGxvbmcgc2hhcmVzOworCS8qCisJICogICBoX2xvYWQgPSB3ZWlnaHQgKiBmKHRnKQorCSAqCisJICogV2hlcmUgZih0ZykgaXMgdGhlIHJlY3Vyc2l2ZSB3ZWlnaHQgZnJhY3Rpb24gYXNzaWduZWQgdG8KKwkgKiB0aGlzIGdyb3VwLgorCSAqLworCXVuc2lnbmVkIGxvbmcgaF9sb2FkOwogCi0JCS8qCi0JCSAqIFRoZSBzdW0gb2YgYWxsIHJ1bnF1ZXVlIHdlaWdodHMgd2l0aGluIHRoaXMgc3Bhbi4KLQkJICovCi0JCXVuc2lnbmVkIGxvbmcgcnFfd2VpZ2h0OworCS8qCisJICogdGhpcyBjcHUncyBwYXJ0IG9mIHRnLT5zaGFyZXMKKwkgKi8KKwl1bnNpZ25lZCBsb25nIHNoYXJlczsKIAotCQkvKgotCQkgKiBXZWlnaHQgY29udHJpYnV0ZWQgYnkgdGFza3M7IHRoaXMgaXMgdGhlIHBhcnQgd2UgY2FuCi0JCSAqIGluZmx1ZW5jZSBieSBtb3ZpbmcgdGFza3MgYXJvdW5kLgotCQkgKi8KLQkJdW5zaWduZWQgbG9uZyB0YXNrX3dlaWdodDsKLQl9IGFnZ3JlZ2F0ZTsKKwkvKgorCSAqIGxvYWQud2VpZ2h0IGF0IHRoZSB0aW1lIHdlIHNldCBzaGFyZXMKKwkgKi8KKwl1bnNpZ25lZCBsb25nIHJxX3dlaWdodDsKICNlbmRpZgogI2VuZGlmCiB9OwpAQCAtNDg2LDYgKzQ4NSw5IEBACiAJICovCiAJY3B1bWFza190IHJ0b19tYXNrOwogCWF0b21pY190IHJ0b19jb3VudDsKKyNpZmRlZiBDT05GSUdfU01QCisJc3RydWN0IGNwdXByaSBjcHVwcmk7CisjZW5kaWYKIH07CiAKIC8qCkBAIC01NjAsNiArNTYyLDkgQEAKIAlpbnQgcHVzaF9jcHU7CiAJLyogY3B1IG9mIHRoaXMgcnVucXVldWU6ICovCiAJaW50IGNwdTsKKwlpbnQgb25saW5lOworCisJdW5zaWduZWQgbG9uZyBhdmdfbG9hZF9wZXJfdGFzazsKIAogCXN0cnVjdCB0YXNrX3N0cnVjdCAqbWlncmF0aW9uX3RocmVhZDsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG1pZ3JhdGlvbl9xdWV1ZTsKQEAgLTY0MSw2ICs2NDYsMjQgQEAKICMgZGVmaW5lIGNvbnN0X2RlYnVnIHN0YXRpYyBjb25zdAogI2VuZGlmCiAKKy8qKgorICogcnVucXVldWVfaXNfbG9ja2VkCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBjdXJyZW50IGNwdSBydW5xdWV1ZSBpcyBsb2NrZWQuCisgKiBUaGlzIGludGVyZmFjZSBhbGxvd3MgcHJpbnRrIHRvIGJlIGNhbGxlZCB3aXRoIHRoZSBydW5xdWV1ZSBsb2NrCisgKiBoZWxkIGFuZCBrbm93IHdoZXRoZXIgb3Igbm90IGl0IGlzIE9LIHRvIHdha2UgdXAgdGhlIGtsb2dkLgorICovCitpbnQgcnVucXVldWVfaXNfbG9ja2VkKHZvaWQpCit7CisJaW50IGNwdSA9IGdldF9jcHUoKTsKKwlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CisJaW50IHJldDsKKworCXJldCA9IHNwaW5faXNfbG9ja2VkKCZycS0+bG9jayk7CisJcHV0X2NwdSgpOworCXJldHVybiByZXQ7Cit9CisKIC8qCiAgKiBEZWJ1Z2dpbmc6IHZhcmlvdXMgZmVhdHVyZSBiaXRzCiAgKi8KQEAgLTc4Myw2ICs4MDYsMTIgQEAKIGNvbnN0X2RlYnVnIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfbnJfbWlncmF0ZSA9IDMyOwogCiAvKgorICogcmF0ZWxpbWl0IGZvciB1cGRhdGluZyB0aGUgZ3JvdXAgc2hhcmVzLgorICogZGVmYXVsdDogMC41bXMKKyAqLworY29uc3RfZGVidWcgdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF9zaGFyZXNfcmF0ZWxpbWl0ID0gNTAwMDAwOworCisvKgogICogcGVyaW9kIG92ZXIgd2hpY2ggd2UgbWVhc3VyZSAtcnQgdGFzayBjcHUgdXNhZ2UgaW4gdXMuCiAgKiBkZWZhdWx0OiAxcwogICovCkBAIC04MDksODIgKzgzOCw2IEBACiAJcmV0dXJuICh1NjQpc3lzY3RsX3NjaGVkX3J0X3J1bnRpbWUgKiBOU0VDX1BFUl9VU0VDOwogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgdGltZV9zeW5jX3RocmVzaCA9IDEwMDAwMDsKLQotc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcgbG9uZywgdGltZV9vZmZzZXQpOwotc3RhdGljIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGxvbmcgbG9uZywgcHJldl9jcHVfdGltZSk7Ci0KLS8qCi0gKiBHbG9iYWwgbG9jayB3aGljaCB3ZSB0YWtlIGV2ZXJ5IG5vdyBhbmQgdGhlbiB0byBzeW5jaHJvbml6ZQotICogdGhlIENQVXMgdGltZS4gVGhpcyBtZXRob2QgaXMgbm90IHdhcnAtc2FmZSwgYnV0IGl0J3MgZ29vZAotICogZW5vdWdoIHRvIHN5bmNocm9uaXplIHNsb3dseSBkaXZlcmdpbmcgdGltZSBzb3VyY2VzIGFuZCB0aHVzCi0gKiBpdCdzIGdvb2QgZW5vdWdoIGZvciB0cmFjaW5nOgotICovCi1zdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRpbWVfc3luY19sb2NrKTsKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgcHJldl9nbG9iYWxfdGltZTsKLQotc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3N5bmNfY3B1X2Nsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyB0aW1lLCBpbnQgY3B1KQotewotCS8qCi0JICogV2Ugd2FudCB0aGlzIGlubGluZWQsIHRvIG5vdCBnZXQgdHJhY2VyIGZ1bmN0aW9uIGNhbGxzCi0JICogaW4gdGhpcyBjcml0aWNhbCBzZWN0aW9uOgotCSAqLwotCXNwaW5fYWNxdWlyZSgmdGltZV9zeW5jX2xvY2suZGVwX21hcCwgMCwgMCwgX1RISVNfSVBfKTsKLQlfX3Jhd19zcGluX2xvY2soJnRpbWVfc3luY19sb2NrLnJhd19sb2NrKTsKLQotCWlmICh0aW1lIDwgcHJldl9nbG9iYWxfdGltZSkgewotCQlwZXJfY3B1KHRpbWVfb2Zmc2V0LCBjcHUpICs9IHByZXZfZ2xvYmFsX3RpbWUgLSB0aW1lOwotCQl0aW1lID0gcHJldl9nbG9iYWxfdGltZTsKLQl9IGVsc2UgewotCQlwcmV2X2dsb2JhbF90aW1lID0gdGltZTsKLQl9Ci0KLQlfX3Jhd19zcGluX3VubG9jaygmdGltZV9zeW5jX2xvY2sucmF3X2xvY2spOwotCXNwaW5fcmVsZWFzZSgmdGltZV9zeW5jX2xvY2suZGVwX21hcCwgMSwgX1RISVNfSVBfKTsKLQotCXJldHVybiB0aW1lOwotfQotCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIF9fY3B1X2Nsb2NrKGludCBjcHUpCi17Ci0JdW5zaWduZWQgbG9uZyBsb25nIG5vdzsKLQotCS8qCi0JICogT25seSBjYWxsIHNjaGVkX2Nsb2NrKCkgaWYgdGhlIHNjaGVkdWxlciBoYXMgYWxyZWFkeSBiZWVuCi0JICogaW5pdGlhbGl6ZWQgKHNvbWUgY29kZSBtaWdodCBjYWxsIGNwdV9jbG9jaygpIHZlcnkgZWFybHkpOgotCSAqLwotCWlmICh1bmxpa2VseSghc2NoZWR1bGVyX3J1bm5pbmcpKQotCQlyZXR1cm4gMDsKLQotCW5vdyA9IHNjaGVkX2Nsb2NrX2NwdShjcHUpOwotCi0JcmV0dXJuIG5vdzsKLX0KLQotLyoKLSAqIEZvciBrZXJuZWwtaW50ZXJuYWwgdXNlOiBoaWdoLXNwZWVkIChidXQgc2xpZ2h0bHkgaW5jb3JyZWN0KSBwZXItY3B1Ci0gKiBjbG9jayBjb25zdHJ1Y3RlZCBmcm9tIHNjaGVkX2Nsb2NrKCk6Ci0gKi8KLXVuc2lnbmVkIGxvbmcgbG9uZyBjcHVfY2xvY2soaW50IGNwdSkKLXsKLQl1bnNpZ25lZCBsb25nIGxvbmcgcHJldl9jcHVfdGltZSwgdGltZSwgZGVsdGFfdGltZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwotCXByZXZfY3B1X3RpbWUgPSBwZXJfY3B1KHByZXZfY3B1X3RpbWUsIGNwdSk7Ci0JdGltZSA9IF9fY3B1X2Nsb2NrKGNwdSkgKyBwZXJfY3B1KHRpbWVfb2Zmc2V0LCBjcHUpOwotCWRlbHRhX3RpbWUgPSB0aW1lLXByZXZfY3B1X3RpbWU7Ci0KLQlpZiAodW5saWtlbHkoZGVsdGFfdGltZSA+IHRpbWVfc3luY190aHJlc2gpKSB7Ci0JCXRpbWUgPSBfX3N5bmNfY3B1X2Nsb2NrKHRpbWUsIGNwdSk7Ci0JCXBlcl9jcHUocHJldl9jcHVfdGltZSwgY3B1KSA9IHRpbWU7Ci0JfQotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLQotCXJldHVybiB0aW1lOwotfQotRVhQT1JUX1NZTUJPTF9HUEwoY3B1X2Nsb2NrKTsKLQogI2lmbmRlZiBwcmVwYXJlX2FyY2hfc3dpdGNoCiAjIGRlZmluZSBwcmVwYXJlX2FyY2hfc3dpdGNoKG5leHQpCWRvIHsgfSB3aGlsZSAoMCkKICNlbmRpZgpAQCAtMTE2MSw2ICsxMTE0LDcgQEAKIAlyZXR1cm4gSFJUSU1FUl9OT1JFU1RBUlQ7CiB9CiAKKyNpZmRlZiBDT05GSUdfU01QCiBzdGF0aWMgdm9pZCBob3RwbHVnX2hydGlja19kaXNhYmxlKGludCBjcHUpCiB7CiAJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwpAQCAtMTIxNiw2ICsxMTcwLDcgQEAKIHsKIAlob3RjcHVfbm90aWZpZXIoaG90cGx1Z19ocnRpY2ssIDApOwogfQorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogc3RhdGljIHZvaWQgaW5pdF9ycV9ocnRpY2soc3RydWN0IHJxICpycSkKIHsKQEAgLTEzNDUsMTUgKzEzMDAsMTUgQEAKIAlpZiAoIXRza19pc19wb2xsaW5nKHJxLT5pZGxlKSkKIAkJc21wX3NlbmRfcmVzY2hlZHVsZShjcHUpOwogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX05PX0haICovCiAKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1NNUCAqLwogc3RhdGljIHZvaWQgX19yZXNjaGVkX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgdGlmX2JpdCkKIHsKIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJnRhc2tfcnEocCktPmxvY2spOwogCXNldF90c2tfdGhyZWFkX2ZsYWcocCwgdGlmX2JpdCk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU01QICovCiAKICNpZiBCSVRTX1BFUl9MT05HID09IDMyCiAjIGRlZmluZSBXTVVMVF9DT05TVAkofjBVTCkKQEAgLTEzNzcsOCArMTMzMiwxMyBAQAogewogCXU2NCB0bXA7CiAKLQlpZiAoIWx3LT5pbnZfd2VpZ2h0KQotCQlsdy0+aW52X3dlaWdodCA9IDEgKyAoV01VTFRfQ09OU1QtbHctPndlaWdodC8yKS8obHctPndlaWdodCsxKTsKKwlpZiAoIWx3LT5pbnZfd2VpZ2h0KSB7CisJCWlmIChCSVRTX1BFUl9MT05HID4gMzIgJiYgdW5saWtlbHkobHctPndlaWdodCA+PSBXTVVMVF9DT05TVCkpCisJCQlsdy0+aW52X3dlaWdodCA9IDE7CisJCWVsc2UKKwkJCWx3LT5pbnZfd2VpZ2h0ID0gMSArIChXTVVMVF9DT05TVC1sdy0+d2VpZ2h0LzIpCisJCQkJLyAobHctPndlaWdodCsxKTsKKwl9CiAKIAl0bXAgPSAodTY0KWRlbHRhX2V4ZWMgKiB3ZWlnaHQ7CiAJLyoKQEAgLTE1MDMsNjMgKzE0NjMsMzUgQEAKICNpZmRlZiBDT05GSUdfU01QCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBzb3VyY2VfbG9hZChpbnQgY3B1LCBpbnQgdHlwZSk7CiBzdGF0aWMgdW5zaWduZWQgbG9uZyB0YXJnZXRfbG9hZChpbnQgY3B1LCBpbnQgdHlwZSk7Ci1zdGF0aWMgdW5zaWduZWQgbG9uZyBjcHVfYXZnX2xvYWRfcGVyX3Rhc2soaW50IGNwdSk7CiBzdGF0aWMgaW50IHRhc2tfaG90KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTY0IG5vdywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpOwogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjcHVfYXZnX2xvYWRfcGVyX3Rhc2soaW50IGNwdSkKK3sKKwlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGNwdSk7CisKKwlpZiAocnEtPm5yX3J1bm5pbmcpCisJCXJxLT5hdmdfbG9hZF9wZXJfdGFzayA9IHJxLT5sb2FkLndlaWdodCAvIHJxLT5ucl9ydW5uaW5nOworCisJcmV0dXJuIHJxLT5hdmdfbG9hZF9wZXJfdGFzazsKK30KKwogI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECiAKLS8qCi0gKiBHcm91cCBsb2FkIGJhbGFuY2luZy4KLSAqCi0gKiBXZSBjYWxjdWxhdGUgYSBmZXcgYmFsYW5jZSBkb21haW4gd2lkZSBhZ2dyZWdhdGUgbnVtYmVyczsgbG9hZCBhbmQgd2VpZ2h0LgotICogR2l2ZW4gdGhlIHBpY3R1cmVzIGJlbG93LCBhbmQgYXNzdW1pbmcgZWFjaCBpdGVtIGhhcyBlcXVhbCB3ZWlnaHQ6Ci0gKgotICogICAgICAgICByb290ICAgICAgICAgIDEgLSB0aHJlYWQKLSAqICAgICAgICAgLyB8IFwgICAgICAgICBBIC0gZ3JvdXAKLSAqICAgICAgICBBICAxICBCCi0gKiAgICAgICAvfFwgICAvIFwKLSAqICAgICAgQyAyIEQgMyAgIDQKLSAqICAgICAgfCAgIHwKLSAqICAgICAgNSAgIDYKLSAqCi0gKiBsb2FkOgotICogICAgQSBhbmQgQiBnZXQgMS8zLXJkIG9mIHRoZSB0b3RhbCBsb2FkLiBDIGFuZCBEIGdldCAxLzMtcmQgb2YgQSdzIDEvMy1yZCwKLSAqICAgIHdoaWNoIGVxdWFscyAxLzktdGggb2YgdGhlIHRvdGFsIGxvYWQuCi0gKgotICogc2hhcmVzOgotICogICAgVGhlIHdlaWdodCBvZiB0aGlzIGdyb3VwIG9uIHRoZSBzZWxlY3RlZCBjcHVzLgotICoKLSAqIHJxX3dlaWdodDoKLSAqICAgIERpcmVjdCBzdW0gb2YgYWxsIHRoZSBjcHUncyB0aGVpciBycSB3ZWlnaHQsIGUuZy4gQSB3b3VsZCBnZXQgMyB3aGlsZQotICogICAgQiB3b3VsZCBnZXQgMi4KLSAqCi0gKiB0YXNrX3dlaWdodDoKLSAqICAgIFBhcnQgb2YgdGhlIHJxX3dlaWdodCBjb250cmlidXRlZCBieSB0YXNrczsgYWxsIGdyb3VwcyBleGNlcHQgQiB3b3VsZAotICogICAgZ2V0IDEsIEIgZ2V0cyAyLgotICovCi0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IGFnZ3JlZ2F0ZV9zdHJ1Y3QgKgotYWdncmVnYXRlKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCi17Ci0JcmV0dXJuICZ0Zy0+Y2ZzX3JxW3NkLT5maXJzdF9jcHVdLT5hZ2dyZWdhdGU7Ci19Ci0KLXR5cGVkZWYgdm9pZCAoKmFnZ3JlZ2F0ZV9mdW5jKShzdHJ1Y3QgdGFza19ncm91cCAqLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICopOwordHlwZWRlZiB2b2lkICgqdGdfdmlzaXRvcikoc3RydWN0IHRhc2tfZ3JvdXAgKiwgaW50LCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICopOwogCiAvKgogICogSXRlcmF0ZSB0aGUgZnVsbCB0cmVlLCBjYWxsaW5nIEBkb3duIHdoZW4gZmlyc3QgZW50ZXJpbmcgYSBub2RlIGFuZCBAdXAgd2hlbgogICogbGVhdmluZyBpdCBmb3IgdGhlIGZpbmFsIHRpbWUuCiAgKi8KLXN0YXRpYwotdm9pZCBhZ2dyZWdhdGVfd2Fsa190cmVlKGFnZ3JlZ2F0ZV9mdW5jIGRvd24sIGFnZ3JlZ2F0ZV9mdW5jIHVwLAotCQkJIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQorc3RhdGljIHZvaWQKK3dhbGtfdGdfdHJlZSh0Z192aXNpdG9yIGRvd24sIHRnX3Zpc2l0b3IgdXAsIGludCBjcHUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQogewogCXN0cnVjdCB0YXNrX2dyb3VwICpwYXJlbnQsICpjaGlsZDsKIAogCXJjdV9yZWFkX2xvY2soKTsKIAlwYXJlbnQgPSAmcm9vdF90YXNrX2dyb3VwOwogZG93bjoKLQkoKmRvd24pKHBhcmVudCwgc2QpOworCSgqZG93bikocGFyZW50LCBjcHUsIHNkKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShjaGlsZCwgJnBhcmVudC0+Y2hpbGRyZW4sIHNpYmxpbmdzKSB7CiAJCXBhcmVudCA9IGNoaWxkOwogCQlnb3RvIGRvd247CkBAIC0xNTY3LDcgKzE0OTksNyBAQAogdXA6CiAJCWNvbnRpbnVlOwogCX0KLQkoKnVwKShwYXJlbnQsIHNkKTsKKwkoKnVwKShwYXJlbnQsIGNwdSwgc2QpOwogCiAJY2hpbGQgPSBwYXJlbnQ7CiAJcGFyZW50ID0gcGFyZW50LT5wYXJlbnQ7CkBAIC0xNTc2LDkwICsxNTA4LDIzIEBACiAJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAKLS8qCi0gKiBDYWxjdWxhdGUgdGhlIGFnZ3JlZ2F0ZSBydW5xdWV1ZSB3ZWlnaHQuCi0gKi8KLXN0YXRpYwotdm9pZCBhZ2dyZWdhdGVfZ3JvdXBfd2VpZ2h0KHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCi17Ci0JdW5zaWduZWQgbG9uZyBycV93ZWlnaHQgPSAwOwotCXVuc2lnbmVkIGxvbmcgdGFza193ZWlnaHQgPSAwOwotCWludCBpOwotCi0JZm9yX2VhY2hfY3B1X21hc2soaSwgc2QtPnNwYW4pIHsKLQkJcnFfd2VpZ2h0ICs9IHRnLT5jZnNfcnFbaV0tPmxvYWQud2VpZ2h0OwotCQl0YXNrX3dlaWdodCArPSB0Zy0+Y2ZzX3JxW2ldLT50YXNrX3dlaWdodDsKLQl9Ci0KLQlhZ2dyZWdhdGUodGcsIHNkKS0+cnFfd2VpZ2h0ID0gcnFfd2VpZ2h0OwotCWFnZ3JlZ2F0ZSh0Zywgc2QpLT50YXNrX3dlaWdodCA9IHRhc2tfd2VpZ2h0OwotfQotCi0vKgotICogQ29tcHV0ZSB0aGUgd2VpZ2h0IG9mIHRoaXMgZ3JvdXAgb24gdGhlIGdpdmVuIGNwdXMuCi0gKi8KLXN0YXRpYwotdm9pZCBhZ2dyZWdhdGVfZ3JvdXBfc2hhcmVzKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCi17Ci0JdW5zaWduZWQgbG9uZyBzaGFyZXMgPSAwOwotCWludCBpOwotCi0JZm9yX2VhY2hfY3B1X21hc2soaSwgc2QtPnNwYW4pCi0JCXNoYXJlcyArPSB0Zy0+Y2ZzX3JxW2ldLT5zaGFyZXM7Ci0KLQlpZiAoKCFzaGFyZXMgJiYgYWdncmVnYXRlKHRnLCBzZCktPnJxX3dlaWdodCkgfHwgc2hhcmVzID4gdGctPnNoYXJlcykKLQkJc2hhcmVzID0gdGctPnNoYXJlczsKLQotCWFnZ3JlZ2F0ZSh0Zywgc2QpLT5zaGFyZXMgPSBzaGFyZXM7Ci19Ci0KLS8qCi0gKiBDb21wdXRlIHRoZSBsb2FkIGZyYWN0aW9uIGFzc2lnbmVkIHRvIHRoaXMgZ3JvdXAsIHJlbGllcyBvbiB0aGUgYWdncmVnYXRlCi0gKiB3ZWlnaHQgYW5kIHRoaXMgZ3JvdXAncyBwYXJlbnQncyBsb2FkLCBpLmUuIHRvcC1kb3duLgotICovCi1zdGF0aWMKLXZvaWQgYWdncmVnYXRlX2dyb3VwX2xvYWQoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKLXsKLQl1bnNpZ25lZCBsb25nIGxvYWQ7Ci0KLQlpZiAoIXRnLT5wYXJlbnQpIHsKLQkJaW50IGk7Ci0KLQkJbG9hZCA9IDA7Ci0JCWZvcl9lYWNoX2NwdV9tYXNrKGksIHNkLT5zcGFuKQotCQkJbG9hZCArPSBjcHVfcnEoaSktPmxvYWQud2VpZ2h0OwotCi0JfSBlbHNlIHsKLQkJbG9hZCA9IGFnZ3JlZ2F0ZSh0Zy0+cGFyZW50LCBzZCktPmxvYWQ7Ci0KLQkJLyoKLQkJICogc2hhcmVzIGlzIG91ciB3ZWlnaHQgaW4gdGhlIHBhcmVudCdzIHJxIHNvCi0JCSAqIHNoYXJlcy9wYXJlbnQtPnJxX3dlaWdodCBnaXZlcyBvdXIgZnJhY3Rpb24gb2YgdGhlIGxvYWQKLQkJICovCi0JCWxvYWQgKj0gYWdncmVnYXRlKHRnLCBzZCktPnNoYXJlczsKLQkJbG9hZCAvPSBhZ2dyZWdhdGUodGctPnBhcmVudCwgc2QpLT5ycV93ZWlnaHQgKyAxOwotCX0KLQotCWFnZ3JlZ2F0ZSh0Zywgc2QpLT5sb2FkID0gbG9hZDsKLX0KLQogc3RhdGljIHZvaWQgX19zZXRfc2Vfc2hhcmVzKHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlLCB1bnNpZ25lZCBsb25nIHNoYXJlcyk7CiAKIC8qCiAgKiBDYWxjdWxhdGUgYW5kIHNldCB0aGUgY3B1J3MgZ3JvdXAgc2hhcmVzLgogICovCiBzdGF0aWMgdm9pZAotX191cGRhdGVfZ3JvdXBfc2hhcmVzX2NwdShzdHJ1Y3QgdGFza19ncm91cCAqdGcsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkLAotCQkJICBpbnQgdGNwdSkKK19fdXBkYXRlX2dyb3VwX3NoYXJlc19jcHUoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBpbnQgY3B1LAorCQkJICB1bnNpZ25lZCBsb25nIHNkX3NoYXJlcywgdW5zaWduZWQgbG9uZyBzZF9ycV93ZWlnaHQpCiB7CiAJaW50IGJvb3N0ID0gMDsKIAl1bnNpZ25lZCBsb25nIHNoYXJlczsKIAl1bnNpZ25lZCBsb25nIHJxX3dlaWdodDsKIAotCWlmICghdGctPnNlW3RjcHVdKQorCWlmICghdGctPnNlW2NwdV0pCiAJCXJldHVybjsKIAotCXJxX3dlaWdodCA9IHRnLT5jZnNfcnFbdGNwdV0tPmxvYWQud2VpZ2h0OworCXJxX3dlaWdodCA9IHRnLT5jZnNfcnFbY3B1XS0+bG9hZC53ZWlnaHQ7CiAKIAkvKgogCSAqIElmIHRoZXJlIGFyZSBjdXJyZW50bHkgbm8gdGFza3Mgb24gdGhlIGNwdSBwcmV0ZW5kIHRoZXJlIGlzIG9uZSBvZgpAQCAtMTY3MSwxNzAgKzE1MzYsMTM5IEBACiAJCXJxX3dlaWdodCA9IE5JQ0VfMF9MT0FEOwogCX0KIAorCWlmICh1bmxpa2VseShycV93ZWlnaHQgPiBzZF9ycV93ZWlnaHQpKQorCQlycV93ZWlnaHQgPSBzZF9ycV93ZWlnaHQ7CisKIAkvKgogCSAqICAgICAgICAgICBcU3VtIHNoYXJlcyAqIHJxX3dlaWdodAogCSAqIHNoYXJlcyA9ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCSAqICAgICAgICAgICAgICAgXFN1bSBycV93ZWlnaHQKIAkgKgogCSAqLwotCXNoYXJlcyA9IGFnZ3JlZ2F0ZSh0Zywgc2QpLT5zaGFyZXMgKiBycV93ZWlnaHQ7Ci0Jc2hhcmVzIC89IGFnZ3JlZ2F0ZSh0Zywgc2QpLT5ycV93ZWlnaHQgKyAxOworCXNoYXJlcyA9IChzZF9zaGFyZXMgKiBycV93ZWlnaHQpIC8gKHNkX3JxX3dlaWdodCArIDEpOwogCiAJLyoKIAkgKiByZWNvcmQgdGhlIGFjdHVhbCBudW1iZXIgb2Ygc2hhcmVzLCBub3QgdGhlIGJvb3N0ZWQgYW1vdW50LgogCSAqLwotCXRnLT5jZnNfcnFbdGNwdV0tPnNoYXJlcyA9IGJvb3N0ID8gMCA6IHNoYXJlczsKKwl0Zy0+Y2ZzX3JxW2NwdV0tPnNoYXJlcyA9IGJvb3N0ID8gMCA6IHNoYXJlczsKKwl0Zy0+Y2ZzX3JxW2NwdV0tPnJxX3dlaWdodCA9IHJxX3dlaWdodDsKIAogCWlmIChzaGFyZXMgPCBNSU5fU0hBUkVTKQogCQlzaGFyZXMgPSBNSU5fU0hBUkVTOwogCWVsc2UgaWYgKHNoYXJlcyA+IE1BWF9TSEFSRVMpCiAJCXNoYXJlcyA9IE1BWF9TSEFSRVM7CiAKLQlfX3NldF9zZV9zaGFyZXModGctPnNlW3RjcHVdLCBzaGFyZXMpOworCV9fc2V0X3NlX3NoYXJlcyh0Zy0+c2VbY3B1XSwgc2hhcmVzKTsKIH0KIAogLyoKLSAqIFJlLWFkanVzdCB0aGUgd2VpZ2h0cyBvbiB0aGUgY3B1IHRoZSB0YXNrIGNhbWUgZnJvbSBhbmQgb24gdGhlIGNwdSB0aGUKLSAqIHRhc2sgd2VudCB0by4KKyAqIFJlLWNvbXB1dGUgdGhlIHRhc2sgZ3JvdXAgdGhlaXIgcGVyIGNwdSBzaGFyZXMgb3ZlciB0aGUgZ2l2ZW4gZG9tYWluLgorICogVGhpcyBuZWVkcyB0byBiZSBkb25lIGluIGEgYm90dG9tLXVwIGZhc2hpb24gYmVjYXVzZSB0aGUgcnEgd2VpZ2h0IG9mIGEKKyAqIHBhcmVudCBncm91cCBkZXBlbmRzIG9uIHRoZSBzaGFyZXMgb2YgaXRzIGNoaWxkIGdyb3Vwcy4KICAqLwogc3RhdGljIHZvaWQKLV9fbW92ZV9ncm91cF9zaGFyZXMoc3RydWN0IHRhc2tfZ3JvdXAgKnRnLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCwKLQkJICAgIGludCBzY3B1LCBpbnQgZGNwdSkKK3RnX3NoYXJlc191cChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQogewotCXVuc2lnbmVkIGxvbmcgc2hhcmVzOwotCi0Jc2hhcmVzID0gdGctPmNmc19ycVtzY3B1XS0+c2hhcmVzICsgdGctPmNmc19ycVtkY3B1XS0+c2hhcmVzOwotCi0JX191cGRhdGVfZ3JvdXBfc2hhcmVzX2NwdSh0Zywgc2QsIHNjcHUpOwotCV9fdXBkYXRlX2dyb3VwX3NoYXJlc19jcHUodGcsIHNkLCBkY3B1KTsKLQotCS8qCi0JICogZW5zdXJlIHdlIG5ldmVyIGxvb3NlIHNoYXJlcyBkdWUgdG8gcm91bmRpbmcgZXJyb3JzIGluIHRoZQotCSAqIGFib3ZlIHJlZGlzdHJpYnV0aW9uLgotCSAqLwotCXNoYXJlcyAtPSB0Zy0+Y2ZzX3JxW3NjcHVdLT5zaGFyZXMgKyB0Zy0+Y2ZzX3JxW2RjcHVdLT5zaGFyZXM7Ci0JaWYgKHNoYXJlcykKLQkJdGctPmNmc19ycVtkY3B1XS0+c2hhcmVzICs9IHNoYXJlczsKLX0KLQotLyoKLSAqIEJlY2F1c2UgY2hhbmdpbmcgYSBncm91cCdzIHNoYXJlcyBjaGFuZ2VzIHRoZSB3ZWlnaHQgb2YgdGhlIHN1cGVyLWdyb3VwCi0gKiB3ZSBuZWVkIHRvIHdhbGsgdXAgdGhlIHRyZWUgYW5kIGNoYW5nZSBhbGwgc2hhcmVzIHVudGlsIHdlIGhpdCB0aGUgcm9vdC4KLSAqLwotc3RhdGljIHZvaWQKLW1vdmVfZ3JvdXBfc2hhcmVzKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QsCi0JCSAgaW50IHNjcHUsIGludCBkY3B1KQotewotCXdoaWxlICh0ZykgewotCQlfX21vdmVfZ3JvdXBfc2hhcmVzKHRnLCBzZCwgc2NwdSwgZGNwdSk7Ci0JCXRnID0gdGctPnBhcmVudDsKLQl9Ci19Ci0KLXN0YXRpYwotdm9pZCBhZ2dyZWdhdGVfZ3JvdXBfc2V0X3NoYXJlcyhzdHJ1Y3QgdGFza19ncm91cCAqdGcsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQotewotCXVuc2lnbmVkIGxvbmcgc2hhcmVzID0gYWdncmVnYXRlKHRnLCBzZCktPnNoYXJlczsKKwl1bnNpZ25lZCBsb25nIHJxX3dlaWdodCA9IDA7CisJdW5zaWduZWQgbG9uZyBzaGFyZXMgPSAwOwogCWludCBpOwogCiAJZm9yX2VhY2hfY3B1X21hc2soaSwgc2QtPnNwYW4pIHsKKwkJcnFfd2VpZ2h0ICs9IHRnLT5jZnNfcnFbaV0tPmxvYWQud2VpZ2h0OworCQlzaGFyZXMgKz0gdGctPmNmc19ycVtpXS0+c2hhcmVzOworCX0KKworCWlmICgoIXNoYXJlcyAmJiBycV93ZWlnaHQpIHx8IHNoYXJlcyA+IHRnLT5zaGFyZXMpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXNkLT5wYXJlbnQgfHwgIShzZC0+cGFyZW50LT5mbGFncyAmIFNEX0xPQURfQkFMQU5DRSkpCisJCXNoYXJlcyA9IHRnLT5zaGFyZXM7CisKKwlpZiAoIXJxX3dlaWdodCkKKwkJcnFfd2VpZ2h0ID0gY3B1c193ZWlnaHQoc2QtPnNwYW4pICogTklDRV8wX0xPQUQ7CisKKwlmb3JfZWFjaF9jcHVfbWFzayhpLCBzZC0+c3BhbikgewogCQlzdHJ1Y3QgcnEgKnJxID0gY3B1X3JxKGkpOwogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOwotCQlfX3VwZGF0ZV9ncm91cF9zaGFyZXNfY3B1KHRnLCBzZCwgaSk7CisJCV9fdXBkYXRlX2dyb3VwX3NoYXJlc19jcHUodGcsIGksIHNoYXJlcywgcnFfd2VpZ2h0KTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAl9Cit9CiAKLQlhZ2dyZWdhdGVfZ3JvdXBfc2hhcmVzKHRnLCBzZCk7CisvKgorICogQ29tcHV0ZSB0aGUgY3B1J3MgaGllcmFyY2hpY2FsIGxvYWQgZmFjdG9yIGZvciBlYWNoIHRhc2sgZ3JvdXAuCisgKiBUaGlzIG5lZWRzIHRvIGJlIGRvbmUgaW4gYSB0b3AtZG93biBmYXNoaW9uIGJlY2F1c2UgdGhlIGxvYWQgb2YgYSBjaGlsZAorICogZ3JvdXAgaXMgYSBmcmFjdGlvbiBvZiBpdHMgcGFyZW50cyBsb2FkLgorICovCitzdGF0aWMgdm9pZAordGdfbG9hZF9kb3duKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCit7CisJdW5zaWduZWQgbG9uZyBsb2FkOwogCi0JLyoKLQkgKiBlbnN1cmUgd2UgbmV2ZXIgbG9vc2Ugc2hhcmVzIGR1ZSB0byByb3VuZGluZyBlcnJvcnMgaW4gdGhlCi0JICogYWJvdmUgcmVkaXN0cmlidXRpb24uCi0JICovCi0Jc2hhcmVzIC09IGFnZ3JlZ2F0ZSh0Zywgc2QpLT5zaGFyZXM7Ci0JaWYgKHNoYXJlcykgewotCQl0Zy0+Y2ZzX3JxW3NkLT5maXJzdF9jcHVdLT5zaGFyZXMgKz0gc2hhcmVzOwotCQlhZ2dyZWdhdGUodGcsIHNkKS0+c2hhcmVzICs9IHNoYXJlczsKKwlpZiAoIXRnLT5wYXJlbnQpIHsKKwkJbG9hZCA9IGNwdV9ycShjcHUpLT5sb2FkLndlaWdodDsKKwl9IGVsc2UgeworCQlsb2FkID0gdGctPnBhcmVudC0+Y2ZzX3JxW2NwdV0tPmhfbG9hZDsKKwkJbG9hZCAqPSB0Zy0+Y2ZzX3JxW2NwdV0tPnNoYXJlczsKKwkJbG9hZCAvPSB0Zy0+cGFyZW50LT5jZnNfcnFbY3B1XS0+bG9hZC53ZWlnaHQgKyAxOworCX0KKworCXRnLT5jZnNfcnFbY3B1XS0+aF9sb2FkID0gbG9hZDsKK30KKworc3RhdGljIHZvaWQKK3RnX25vcChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUsIHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfc2hhcmVzKHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQoreworCXU2NCBub3cgPSBjcHVfY2xvY2socmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJczY0IGVsYXBzZWQgPSBub3cgLSBzZC0+bGFzdF91cGRhdGU7CisKKwlpZiAoZWxhcHNlZCA+PSAoczY0KSh1NjQpc3lzY3RsX3NjaGVkX3NoYXJlc19yYXRlbGltaXQpIHsKKwkJc2QtPmxhc3RfdXBkYXRlID0gbm93OworCQl3YWxrX3RnX3RyZWUodGdfbm9wLCB0Z19zaGFyZXNfdXAsIDAsIHNkKTsKIAl9CiB9CiAKLS8qCi0gKiBDYWxjdWxhdGUgdGhlIGFjY3VtdWxhdGl2ZSB3ZWlnaHQgYW5kIHJlY3Vyc2l2ZSBsb2FkIG9mIGVhY2ggdGFzayBncm91cAotICogd2hpbGUgd2Fsa2luZyBkb3duIHRoZSB0cmVlLgotICovCi1zdGF0aWMKLXZvaWQgYWdncmVnYXRlX2dldF9kb3duKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCitzdGF0aWMgdm9pZCB1cGRhdGVfc2hhcmVzX2xvY2tlZChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKIHsKLQlhZ2dyZWdhdGVfZ3JvdXBfd2VpZ2h0KHRnLCBzZCk7Ci0JYWdncmVnYXRlX2dyb3VwX3NoYXJlcyh0Zywgc2QpOwotCWFnZ3JlZ2F0ZV9ncm91cF9sb2FkKHRnLCBzZCk7CisJc3Bpbl91bmxvY2soJnJxLT5sb2NrKTsKKwl1cGRhdGVfc2hhcmVzKHNkKTsKKwlzcGluX2xvY2soJnJxLT5sb2NrKTsKIH0KIAotLyoKLSAqIFJlYmFsYW5jZSB0aGUgY3B1IHNoYXJlcyB3aGlsZSB3YWxraW5nIGJhY2sgdXAgdGhlIHRyZWUuCi0gKi8KLXN0YXRpYwotdm9pZCBhZ2dyZWdhdGVfZ2V0X3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0Zywgc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCitzdGF0aWMgdm9pZCB1cGRhdGVfaF9sb2FkKGludCBjcHUpCiB7Ci0JYWdncmVnYXRlX2dyb3VwX3NldF9zaGFyZXModGcsIHNkKTsKLX0KLQotc3RhdGljIERFRklORV9QRVJfQ1BVKHNwaW5sb2NrX3QsIGFnZ3JlZ2F0ZV9sb2NrKTsKLQotc3RhdGljIHZvaWQgX19pbml0IGluaXRfYWdncmVnYXRlKHZvaWQpCi17Ci0JaW50IGk7Ci0KLQlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkKLQkJc3Bpbl9sb2NrX2luaXQoJnBlcl9jcHUoYWdncmVnYXRlX2xvY2ssIGkpKTsKLX0KLQotc3RhdGljIGludCBnZXRfYWdncmVnYXRlKHN0cnVjdCBzY2hlZF9kb21haW4gKnNkKQotewotCWlmICghc3Bpbl90cnlsb2NrKCZwZXJfY3B1KGFnZ3JlZ2F0ZV9sb2NrLCBzZC0+Zmlyc3RfY3B1KSkpCi0JCXJldHVybiAwOwotCi0JYWdncmVnYXRlX3dhbGtfdHJlZShhZ2dyZWdhdGVfZ2V0X2Rvd24sIGFnZ3JlZ2F0ZV9nZXRfdXAsIHNkKTsKLQlyZXR1cm4gMTsKLX0KLQotc3RhdGljIHZvaWQgcHV0X2FnZ3JlZ2F0ZShzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKLXsKLQlzcGluX3VubG9jaygmcGVyX2NwdShhZ2dyZWdhdGVfbG9jaywgc2QtPmZpcnN0X2NwdSkpOwotfQotCi1zdGF0aWMgdm9pZCBjZnNfcnFfc2V0X3NoYXJlcyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKQotewotCWNmc19ycS0+c2hhcmVzID0gc2hhcmVzOworCXdhbGtfdGdfdHJlZSh0Z19sb2FkX2Rvd24sIHRnX25vcCwgY3B1LCBOVUxMKTsKIH0KIAogI2Vsc2UKIAotc3RhdGljIGlubGluZSB2b2lkIGluaXRfYWdncmVnYXRlKHZvaWQpCitzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlX3NoYXJlcyhzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKIHsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgZ2V0X2FnZ3JlZ2F0ZShzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVfc2hhcmVzX2xvY2tlZChzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKIHsKLQlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHB1dF9hZ2dyZWdhdGUoc3RydWN0IHNjaGVkX2RvbWFpbiAqc2QpCi17Ci19CiAjZW5kaWYKIAotI2Vsc2UgLyogQ09ORklHX1NNUCAqLworI2VuZGlmCiAKICNpZmRlZiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgY2ZzX3JxX3NldF9zaGFyZXMoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCB1bnNpZ25lZCBsb25nIHNoYXJlcykKIHsKKyNpZmRlZiBDT05GSUdfU01QCisJY2ZzX3JxLT5zaGFyZXMgPSBzaGFyZXM7CisjZW5kaWYKIH0KICNlbmRpZgogCi0jZW5kaWYgLyogQ09ORklHX1NNUCAqLwotCiAjaW5jbHVkZSAic2NoZWRfc3RhdHMuaCIKICNpbmNsdWRlICJzY2hlZF9pZGxldGFzay5jIgogI2luY2x1ZGUgInNjaGVkX2ZhaXIuYyIKQEAgLTE4NDQsNiArMTY3OCw4IEBACiAjZW5kaWYKIAogI2RlZmluZSBzY2hlZF9jbGFzc19oaWdoZXN0ICgmcnRfc2NoZWRfY2xhc3MpCisjZGVmaW5lIGZvcl9lYWNoX2NsYXNzKGNsYXNzKSBcCisgICBmb3IgKGNsYXNzID0gc2NoZWRfY2xhc3NfaGlnaGVzdDsgY2xhc3M7IGNsYXNzID0gY2xhc3MtPm5leHQpCiAKIHN0YXRpYyB2b2lkIGluY19ucl9ydW5uaW5nKHN0cnVjdCBycSAqcnEpCiB7CkBAIC0xODc2LDYgKzE3MTIsMTIgQEAKIAlwLT5zZS5sb2FkLmludl93ZWlnaHQgPSBwcmlvX3RvX3dtdWx0W3AtPnN0YXRpY19wcmlvIC0gTUFYX1JUX1BSSU9dOwogfQogCitzdGF0aWMgdm9pZCB1cGRhdGVfYXZnKHU2NCAqYXZnLCB1NjQgc2FtcGxlKQoreworCXM2NCBkaWZmID0gc2FtcGxlIC0gKmF2ZzsKKwkqYXZnICs9IGRpZmYgPj4gMzsKK30KKwogc3RhdGljIHZvaWQgZW5xdWV1ZV90YXNrKHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHdha2V1cCkKIHsKIAlzY2hlZF9pbmZvX3F1ZXVlZChwKTsKQEAgLTE4ODUsNiArMTcyNywxMyBAQAogCiBzdGF0aWMgdm9pZCBkZXF1ZXVlX3Rhc2soc3RydWN0IHJxICpycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgc2xlZXApCiB7CisJaWYgKHNsZWVwICYmIHAtPnNlLmxhc3Rfd2FrZXVwKSB7CisJCXVwZGF0ZV9hdmcoJnAtPnNlLmF2Z19vdmVybGFwLAorCQkJICAgcC0+c2Uuc3VtX2V4ZWNfcnVudGltZSAtIHAtPnNlLmxhc3Rfd2FrZXVwKTsKKwkJcC0+c2UubGFzdF93YWtldXAgPSAwOworCX0KKworCXNjaGVkX2luZm9fZGVxdWV1ZWQocCk7CiAJcC0+c2NoZWRfY2xhc3MtPmRlcXVldWVfdGFzayhycSwgcCwgc2xlZXApOwogCXAtPnNlLm9uX3JxID0gMDsKIH0KQEAgLTE5NjgsMTIgKzE4MTcsNiBAQAogCXJldHVybiBjcHVfY3Vycih0YXNrX2NwdShwKSkgPT0gcDsKIH0KIAotLyogVXNlZCBpbnN0ZWFkIG9mIHNvdXJjZV9sb2FkIHdoZW4gd2Uga25vdyB0aGUgdHlwZSA9PSAwICovCi11bnNpZ25lZCBsb25nIHdlaWdodGVkX2NwdWxvYWQoY29uc3QgaW50IGNwdSkKLXsKLQlyZXR1cm4gY3B1X3JxKGNwdSktPmxvYWQud2VpZ2h0OwotfQotCiBzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfdGFza19jcHUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBpbnQgY3B1KQogewogCXNldF90YXNrX3JxKHAsIGNwdSk7CkBAIC0yMDAyLDYgKzE4NDUsMTIgQEAKIAogI2lmZGVmIENPTkZJR19TTVAKIAorLyogVXNlZCBpbnN0ZWFkIG9mIHNvdXJjZV9sb2FkIHdoZW4gd2Uga25vdyB0aGUgdHlwZSA9PSAwICovCitzdGF0aWMgdW5zaWduZWQgbG9uZyB3ZWlnaHRlZF9jcHVsb2FkKGNvbnN0IGludCBjcHUpCit7CisJcmV0dXJuIGNwdV9ycShjcHUpLT5sb2FkLndlaWdodDsKK30KKwogLyoKICAqIElzIHRoaXMgdGFzayBsaWtlbHkgY2FjaGUtaG90OgogICovCkBAIC0yMjEyLDcgKzIwNjEsNyBAQAogCXN0cnVjdCBycSAqcnEgPSBjcHVfcnEoY3B1KTsKIAl1bnNpZ25lZCBsb25nIHRvdGFsID0gd2VpZ2h0ZWRfY3B1bG9hZChjcHUpOwogCi0JaWYgKHR5cGUgPT0gMCkKKwlpZiAodHlwZSA9PSAwIHx8ICFzY2hlZF9mZWF0KExCX0JJQVMpKQogCQlyZXR1cm4gdG90YWw7CiAKIAlyZXR1cm4gbWluKHJxLT5jcHVfbG9hZFt0eXBlLTFdLCB0b3RhbCk7CkBAIC0yMjI3LDI1ICsyMDc2LDEzIEBACiAJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwogCXVuc2lnbmVkIGxvbmcgdG90YWwgPSB3ZWlnaHRlZF9jcHVsb2FkKGNwdSk7CiAKLQlpZiAodHlwZSA9PSAwKQorCWlmICh0eXBlID09IDAgfHwgIXNjaGVkX2ZlYXQoTEJfQklBUykpCiAJCXJldHVybiB0b3RhbDsKIAogCXJldHVybiBtYXgocnEtPmNwdV9sb2FkW3R5cGUtMV0sIHRvdGFsKTsKIH0KIAogLyoKLSAqIFJldHVybiB0aGUgYXZlcmFnZSBsb2FkIHBlciB0YXNrIG9uIHRoZSBjcHUncyBydW4gcXVldWUKLSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgY3B1X2F2Z19sb2FkX3Blcl90YXNrKGludCBjcHUpCi17Ci0Jc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwotCXVuc2lnbmVkIGxvbmcgdG90YWwgPSB3ZWlnaHRlZF9jcHVsb2FkKGNwdSk7Ci0JdW5zaWduZWQgbG9uZyBuID0gcnEtPm5yX3J1bm5pbmc7Ci0KLQlyZXR1cm4gbiA/IHRvdGFsIC8gbiA6IFNDSEVEX0xPQURfU0NBTEU7Ci19Ci0KLS8qCiAgKiBmaW5kX2lkbGVzdF9ncm91cCBmaW5kcyBhbmQgcmV0dXJucyB0aGUgbGVhc3QgYnVzeSBDUFUgZ3JvdXAgd2l0aGluIHRoZQogICogZG9tYWluLgogICovCkBAIC0yMzUxLDYgKzIxODgsOSBAQAogCQkJc2QgPSB0bXA7CiAJfQogCisJaWYgKHNkKQorCQl1cGRhdGVfc2hhcmVzKHNkKTsKKwogCXdoaWxlIChzZCkgewogCQljcHVtYXNrX3Qgc3BhbiwgdG1wbWFzazsKIAkJc3RydWN0IHNjaGVkX2dyb3VwICpncm91cDsKQEAgLTI0MTcsNiArMjI1NywyMiBAQAogCWlmICghc2NoZWRfZmVhdChTWU5DX1dBS0VVUFMpKQogCQlzeW5jID0gMDsKIAorI2lmZGVmIENPTkZJR19TTVAKKwlpZiAoc2NoZWRfZmVhdChMQl9XQUtFVVBfVVBEQVRFKSkgeworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZDsKKworCQl0aGlzX2NwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJCWNwdSA9IHRhc2tfY3B1KHApOworCisJCWZvcl9lYWNoX2RvbWFpbih0aGlzX2NwdSwgc2QpIHsKKwkJCWlmIChjcHVfaXNzZXQoY3B1LCBzZC0+c3BhbikpIHsKKwkJCQl1cGRhdGVfc2hhcmVzKHNkKTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKyNlbmRpZgorCiAJc21wX3dtYigpOwogCXJxID0gdGFza19ycV9sb2NrKHAsICZmbGFncyk7CiAJb2xkX3N0YXRlID0gcC0+c3RhdGU7CkBAIC0yNDYzLDcgKzIzMTksNyBAQAogCQkJfQogCQl9CiAJfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1NDSEVEU1RBVFMgKi8KIAogb3V0X2FjdGl2YXRlOgogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KQEAgLTI0ODEsNiArMjMzNyw5IEBACiAJc3VjY2VzcyA9IDE7CiAKIG91dF9ydW5uaW5nOgorCXRyYWNlX21hcmsoa2VybmVsX3NjaGVkX3dha2V1cCwKKwkJInBpZCAlZCBzdGF0ZSAlbGQgIyMgcnEgJXAgdGFzayAlcCBycS0+Y3VyciAlcCIsCisJCXAtPnBpZCwgcC0+c3RhdGUsIHJxLCBwLCBycS0+Y3Vycik7CiAJY2hlY2tfcHJlZW1wdF9jdXJyKHJxLCBwKTsKIAogCXAtPnN0YXRlID0gVEFTS19SVU5OSU5HOwpAQCAtMjQ4OSw2ICsyMzQ4LDggQEAKIAkJcC0+c2NoZWRfY2xhc3MtPnRhc2tfd2FrZV91cChycSwgcCk7CiAjZW5kaWYKIG91dDoKKwljdXJyZW50LT5zZS5sYXN0X3dha2V1cCA9IGN1cnJlbnQtPnNlLnN1bV9leGVjX3J1bnRpbWU7CisKIAl0YXNrX3JxX3VubG9jayhycSwgJmZsYWdzKTsKIAogCXJldHVybiBzdWNjZXNzOwpAQCAtMjYxMSw2ICsyNDcyLDkgQEAKIAkJcC0+c2NoZWRfY2xhc3MtPnRhc2tfbmV3KHJxLCBwKTsKIAkJaW5jX25yX3J1bm5pbmcocnEpOwogCX0KKwl0cmFjZV9tYXJrKGtlcm5lbF9zY2hlZF93YWtldXBfbmV3LAorCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJcC0+cGlkLCBwLT5zdGF0ZSwgcnEsIHAsIHJxLT5jdXJyKTsKIAljaGVja19wcmVlbXB0X2N1cnIocnEsIHApOwogI2lmZGVmIENPTkZJR19TTVAKIAlpZiAocC0+c2NoZWRfY2xhc3MtPnRhc2tfd2FrZV91cCkKQEAgLTI2NjMsNyArMjUyNyw3IEBACiAJCW5vdGlmaWVyLT5vcHMtPnNjaGVkX291dChub3RpZmllciwgbmV4dCk7CiB9CiAKLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIHN0YXRpYyB2b2lkIGZpcmVfc2NoZWRfaW5fcHJlZW1wdF9ub3RpZmllcnMoc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQogewpAQCAtMjY3NSw3ICsyNTM5LDcgQEAKIHsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfTk9USUZJRVJTICovCiAKIC8qKgogICogcHJlcGFyZV90YXNrX3N3aXRjaCAtIHByZXBhcmUgdG8gc3dpdGNoIHRhc2tzCkBAIC0yNzgzLDYgKzI2NDcsMTEgQEAKIAlzdHJ1Y3QgbW1fc3RydWN0ICptbSwgKm9sZG1tOwogCiAJcHJlcGFyZV90YXNrX3N3aXRjaChycSwgcHJldiwgbmV4dCk7CisJdHJhY2VfbWFyayhrZXJuZWxfc2NoZWRfc2NoZWR1bGUsCisJCSJwcmV2X3BpZCAlZCBuZXh0X3BpZCAlZCBwcmV2X3N0YXRlICVsZCAiCisJCSIjIyBycSAlcCBwcmV2ICVwIG5leHQgJXAiLAorCQlwcmV2LT5waWQsIG5leHQtPnBpZCwgcHJldi0+c3RhdGUsCisJCXJxLCBwcmV2LCBuZXh0KTsKIAltbSA9IG5leHQtPm1tOwogCW9sZG1tID0gcHJldi0+YWN0aXZlX21tOwogCS8qCkBAIC0zMTE3LDcgKzI5ODYsNyBAQAogCSAgICAgIGVudW0gY3B1X2lkbGVfdHlwZSBpZGxlLCBpbnQgKmFsbF9waW5uZWQsCiAJICAgICAgaW50ICp0aGlzX2Jlc3RfcHJpbywgc3RydWN0IHJxX2l0ZXJhdG9yICppdGVyYXRvcikKIHsKLQlpbnQgbG9vcHMgPSAwLCBwdWxsZWQgPSAwLCBwaW5uZWQgPSAwLCBza2lwX2Zvcl9sb2FkOworCWludCBsb29wcyA9IDAsIHB1bGxlZCA9IDAsIHBpbm5lZCA9IDA7CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwOwogCWxvbmcgcmVtX2xvYWRfbW92ZSA9IG1heF9sb2FkX21vdmU7CiAKQEAgLTMxMzMsMTQgKzMwMDIsOCBAQAogbmV4dDoKIAlpZiAoIXAgfHwgbG9vcHMrKyA+IHN5c2N0bF9zY2hlZF9ucl9taWdyYXRlKQogCQlnb3RvIG91dDsKLQkvKgotCSAqIFRvIGhlbHAgZGlzdHJpYnV0ZSBoaWdoIHByaW9yaXR5IHRhc2tzIGFjcm9zcyBDUFVzIHdlIGRvbid0Ci0JICogc2tpcCBhIHRhc2sgaWYgaXQgd2lsbCBiZSB0aGUgaGlnaGVzdCBwcmlvcml0eSB0YXNrIChpLmUuIHNtYWxsZXN0Ci0JICogcHJpbyB2YWx1ZSkgb24gaXRzIG5ldyBxdWV1ZSByZWdhcmRsZXNzIG9mIGl0cyBsb2FkIHdlaWdodAotCSAqLwotCXNraXBfZm9yX2xvYWQgPSAocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlICsKLQkJCQkJCQkgU0NIRURfTE9BRF9TQ0FMRV9GVVpaOwotCWlmICgoc2tpcF9mb3JfbG9hZCAmJiBwLT5wcmlvID49ICp0aGlzX2Jlc3RfcHJpbykgfHwKKworCWlmICgocC0+c2UubG9hZC53ZWlnaHQgPj4gMSkgPiByZW1fbG9hZF9tb3ZlIHx8CiAJICAgICFjYW5fbWlncmF0ZV90YXNrKHAsIGJ1c2llc3QsIHRoaXNfY3B1LCBzZCwgaWRsZSwgJnBpbm5lZCkpIHsKIAkJcCA9IGl0ZXJhdG9yLT5uZXh0KGl0ZXJhdG9yLT5hcmcpOwogCQlnb3RvIG5leHQ7CkBAIC0zMTk1LDYgKzMwNTgsMTAgQEAKIAkJCQltYXhfbG9hZF9tb3ZlIC0gdG90YWxfbG9hZF9tb3ZlZCwKIAkJCQlzZCwgaWRsZSwgYWxsX3Bpbm5lZCwgJnRoaXNfYmVzdF9wcmlvKTsKIAkJY2xhc3MgPSBjbGFzcy0+bmV4dDsKKworCQlpZiAoaWRsZSA9PSBDUFVfTkVXTFlfSURMRSAmJiB0aGlzX3JxLT5ucl9ydW5uaW5nKQorCQkJYnJlYWs7CisKIAl9IHdoaWxlIChjbGFzcyAmJiBtYXhfbG9hZF9tb3ZlID4gdG90YWxfbG9hZF9tb3ZlZCk7CiAKIAlyZXR1cm4gdG90YWxfbG9hZF9tb3ZlZCA+IDA7CkBAIC0zMjcxLDYgKzMxMzgsNyBAQAogCW1heF9sb2FkID0gdGhpc19sb2FkID0gdG90YWxfbG9hZCA9IHRvdGFsX3B3ciA9IDA7CiAJYnVzaWVzdF9sb2FkX3Blcl90YXNrID0gYnVzaWVzdF9ucl9ydW5uaW5nID0gMDsKIAl0aGlzX2xvYWRfcGVyX3Rhc2sgPSB0aGlzX25yX3J1bm5pbmcgPSAwOworCiAJaWYgKGlkbGUgPT0gQ1BVX05PVF9JRExFKQogCQlsb2FkX2lkeCA9IHNkLT5idXN5X2lkeDsKIAllbHNlIGlmIChpZGxlID09IENQVV9ORVdMWV9JRExFKQpAQCAtMzI4NSw2ICszMTUzLDggQEAKIAkJaW50IF9fZ3JvdXBfaW1iID0gMDsKIAkJdW5zaWduZWQgaW50IGJhbGFuY2VfY3B1ID0gLTEsIGZpcnN0X2lkbGVfY3B1ID0gMDsKIAkJdW5zaWduZWQgbG9uZyBzdW1fbnJfcnVubmluZywgc3VtX3dlaWdodGVkX2xvYWQ7CisJCXVuc2lnbmVkIGxvbmcgc3VtX2F2Z19sb2FkX3Blcl90YXNrOworCQl1bnNpZ25lZCBsb25nIGF2Z19sb2FkX3Blcl90YXNrOwogCiAJCWxvY2FsX2dyb3VwID0gY3B1X2lzc2V0KHRoaXNfY3B1LCBncm91cC0+Y3B1bWFzayk7CiAKQEAgLTMyOTMsNiArMzE2Myw4IEBACiAKIAkJLyogVGFsbHkgdXAgdGhlIGxvYWQgb2YgYWxsIENQVXMgaW4gdGhlIGdyb3VwICovCiAJCXN1bV93ZWlnaHRlZF9sb2FkID0gc3VtX25yX3J1bm5pbmcgPSBhdmdfbG9hZCA9IDA7CisJCXN1bV9hdmdfbG9hZF9wZXJfdGFzayA9IGF2Z19sb2FkX3Blcl90YXNrID0gMDsKKwogCQltYXhfY3B1X2xvYWQgPSAwOwogCQltaW5fY3B1X2xvYWQgPSB+MFVMOwogCkBAIC0zMzI2LDYgKzMxOTgsOCBAQAogCQkJYXZnX2xvYWQgKz0gbG9hZDsKIAkJCXN1bV9ucl9ydW5uaW5nICs9IHJxLT5ucl9ydW5uaW5nOwogCQkJc3VtX3dlaWdodGVkX2xvYWQgKz0gd2VpZ2h0ZWRfY3B1bG9hZChpKTsKKworCQkJc3VtX2F2Z19sb2FkX3Blcl90YXNrICs9IGNwdV9hdmdfbG9hZF9wZXJfdGFzayhpKTsKIAkJfQogCiAJCS8qCkBAIC0zMzQ3LDcgKzMyMjEsMjAgQEAKIAkJYXZnX2xvYWQgPSBzZ19kaXZfY3B1X3Bvd2VyKGdyb3VwLAogCQkJCWF2Z19sb2FkICogU0NIRURfTE9BRF9TQ0FMRSk7CiAKLQkJaWYgKChtYXhfY3B1X2xvYWQgLSBtaW5fY3B1X2xvYWQpID4gU0NIRURfTE9BRF9TQ0FMRSkKKworCQkvKgorCQkgKiBDb25zaWRlciB0aGUgZ3JvdXAgdW5iYWxhbmNlZCB3aGVuIHRoZSBpbWJhbGFuY2UgaXMgbGFyZ2VyCisJCSAqIHRoYW4gdGhlIGF2ZXJhZ2Ugd2VpZ2h0IG9mIHR3byB0YXNrcy4KKwkJICoKKwkJICogQVBaOiB3aXRoIGNncm91cCB0aGUgYXZnIHRhc2sgd2VpZ2h0IGNhbiB2YXJ5IHdpbGRseSBhbmQKKwkJICogICAgICBtaWdodCBub3QgYmUgYSBzdWl0YWJsZSBudW1iZXIgLSBzaG91bGQgd2Uga2VlcCBhCisJCSAqICAgICAgbm9ybWFsaXplZCBucl9ydW5uaW5nIG51bWJlciBzb21ld2hlcmUgdGhhdCBuZWdhdGVzCisJCSAqICAgICAgdGhlIGhpZXJhcmNoeT8KKwkJICovCisJCWF2Z19sb2FkX3Blcl90YXNrID0gc2dfZGl2X2NwdV9wb3dlcihncm91cCwKKwkJCQlzdW1fYXZnX2xvYWRfcGVyX3Rhc2sgKiBTQ0hFRF9MT0FEX1NDQUxFKTsKKworCQlpZiAoKG1heF9jcHVfbG9hZCAtIG1pbl9jcHVfbG9hZCkgPiAyKmF2Z19sb2FkX3Blcl90YXNrKQogCQkJX19ncm91cF9pbWIgPSAxOwogCiAJCWdyb3VwX2NhcGFjaXR5ID0gZ3JvdXAtPl9fY3B1X3Bvd2VyIC8gU0NIRURfTE9BRF9TQ0FMRTsKQEAgLTM0ODgsOSArMzM3NSw5IEBACiAJCQlpZiAoYnVzaWVzdF9sb2FkX3Blcl90YXNrID4gdGhpc19sb2FkX3Blcl90YXNrKQogCQkJCWltYm4gPSAxOwogCQl9IGVsc2UKLQkJCXRoaXNfbG9hZF9wZXJfdGFzayA9IFNDSEVEX0xPQURfU0NBTEU7CisJCQl0aGlzX2xvYWRfcGVyX3Rhc2sgPSBjcHVfYXZnX2xvYWRfcGVyX3Rhc2sodGhpc19jcHUpOwogCi0JCWlmIChtYXhfbG9hZCAtIHRoaXNfbG9hZCArIFNDSEVEX0xPQURfU0NBTEVfRlVaWiA+PQorCQlpZiAobWF4X2xvYWQgLSB0aGlzX2xvYWQgKyAyKmJ1c2llc3RfbG9hZF9wZXJfdGFzayA+PQogCQkJCQlidXNpZXN0X2xvYWRfcGVyX3Rhc2sgKiBpbWJuKSB7CiAJCQkqaW1iYWxhbmNlID0gYnVzaWVzdF9sb2FkX3Blcl90YXNrOwogCQkJcmV0dXJuIGJ1c2llc3Q7CkBAIC0zNjAwLDEyICszNDg3LDkgQEAKIAl1bnNpZ25lZCBsb25nIGltYmFsYW5jZTsKIAlzdHJ1Y3QgcnEgKmJ1c2llc3Q7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgdW5sb2NrX2FnZ3JlZ2F0ZTsKIAogCWNwdXNfc2V0YWxsKCpjcHVzKTsKIAotCXVubG9ja19hZ2dyZWdhdGUgPSBnZXRfYWdncmVnYXRlKHNkKTsKLQogCS8qCiAJICogV2hlbiBwb3dlciBzYXZpbmdzIHBvbGljeSBpcyBlbmFibGVkIGZvciB0aGUgcGFyZW50IGRvbWFpbiwgaWRsZQogCSAqIHNpYmxpbmcgY2FuIHBpY2sgdXAgbG9hZCBpcnJlc3BlY3RpdmUgb2YgYnVzeSBzaWJsaW5ncy4gSW4gdGhpcyBjYXNlLApAQCAtMzYxOSw2ICszNTAzLDcgQEAKIAlzY2hlZHN0YXRfaW5jKHNkLCBsYl9jb3VudFtpZGxlXSk7CiAKIHJlZG86CisJdXBkYXRlX3NoYXJlcyhzZCk7CiAJZ3JvdXAgPSBmaW5kX2J1c2llc3RfZ3JvdXAoc2QsIHRoaXNfY3B1LCAmaW1iYWxhbmNlLCBpZGxlLCAmc2RfaWRsZSwKIAkJCQkgICBjcHVzLCBiYWxhbmNlKTsKIApAQCAtMzc0Miw4ICszNjI3LDggQEAKIAllbHNlCiAJCWxkX21vdmVkID0gMDsKIG91dDoKLQlpZiAodW5sb2NrX2FnZ3JlZ2F0ZSkKLQkJcHV0X2FnZ3JlZ2F0ZShzZCk7CisJaWYgKGxkX21vdmVkKQorCQl1cGRhdGVfc2hhcmVzKHNkKTsKIAlyZXR1cm4gbGRfbW92ZWQ7CiB9CiAKQEAgLTM3NzksNiArMzY2NCw3IEBACiAKIAlzY2hlZHN0YXRfaW5jKHNkLCBsYl9jb3VudFtDUFVfTkVXTFlfSURMRV0pOwogcmVkbzoKKwl1cGRhdGVfc2hhcmVzX2xvY2tlZCh0aGlzX3JxLCBzZCk7CiAJZ3JvdXAgPSBmaW5kX2J1c2llc3RfZ3JvdXAoc2QsIHRoaXNfY3B1LCAmaW1iYWxhbmNlLCBDUFVfTkVXTFlfSURMRSwKIAkJCQkgICAmc2RfaWRsZSwgY3B1cywgTlVMTCk7CiAJaWYgKCFncm91cCkgewpAQCAtMzgyMiw2ICszNzA4LDcgQEAKIAl9IGVsc2UKIAkJc2QtPm5yX2JhbGFuY2VfZmFpbGVkID0gMDsKIAorCXVwZGF0ZV9zaGFyZXNfbG9ja2VkKHRoaXNfcnEsIHNkKTsKIAlyZXR1cm4gbGRfbW92ZWQ7CiAKIG91dF9iYWxhbmNlZDoKQEAgLTQwMTMsNiArMzkwMCw3IEBACiAJLyogRWFybGllc3QgdGltZSB3aGVuIHdlIGhhdmUgdG8gZG8gcmViYWxhbmNlIGFnYWluICovCiAJdW5zaWduZWQgbG9uZyBuZXh0X2JhbGFuY2UgPSBqaWZmaWVzICsgNjAqSFo7CiAJaW50IHVwZGF0ZV9uZXh0X2JhbGFuY2UgPSAwOworCWludCBuZWVkX3NlcmlhbGl6ZTsKIAljcHVtYXNrX3QgdG1wOwogCiAJZm9yX2VhY2hfZG9tYWluKGNwdSwgc2QpIHsKQEAgLTQwMzAsOCArMzkxOCw5IEBACiAJCWlmIChpbnRlcnZhbCA+IEhaKk5SX0NQVVMvMTApCiAJCQlpbnRlcnZhbCA9IEhaKk5SX0NQVVMvMTA7CiAKKwkJbmVlZF9zZXJpYWxpemUgPSBzZC0+ZmxhZ3MgJiBTRF9TRVJJQUxJWkU7CiAKLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkgeworCQlpZiAobmVlZF9zZXJpYWxpemUpIHsKIAkJCWlmICghc3Bpbl90cnlsb2NrKCZiYWxhbmNpbmcpKQogCQkJCWdvdG8gb3V0OwogCQl9CkBAIC00MDQ3LDcgKzM5MzYsNyBAQAogCQkJfQogCQkJc2QtPmxhc3RfYmFsYW5jZSA9IGppZmZpZXM7CiAJCX0KLQkJaWYgKHNkLT5mbGFncyAmIFNEX1NFUklBTElaRSkKKwkJaWYgKG5lZWRfc2VyaWFsaXplKQogCQkJc3Bpbl91bmxvY2soJmJhbGFuY2luZyk7CiBvdXQ6CiAJCWlmICh0aW1lX2FmdGVyKG5leHRfYmFsYW5jZSwgc2QtPmxhc3RfYmFsYW5jZSArIGludGVydmFsKSkgewpAQCAtNDM2MiwyNiArNDI1MSw0NCBAQAogI2VuZGlmCiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUKSAmJiBkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKQorI2lmIGRlZmluZWQoQ09ORklHX1BSRUVNUFQpICYmIChkZWZpbmVkKENPTkZJR19ERUJVR19QUkVFTVBUKSB8fCBcCisJCQkJZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpKQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X3BhcmVudF9pcCh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJaWYgKGluX2xvY2tfZnVuY3Rpb25zKGFkZHIpKSB7CisJCWFkZHIgPSBDQUxMRVJfQUREUjI7CisJCWlmIChpbl9sb2NrX2Z1bmN0aW9ucyhhZGRyKSkKKwkJCWFkZHIgPSBDQUxMRVJfQUREUjM7CisJfQorCXJldHVybiBhZGRyOworfQogCiB2b2lkIF9fa3Byb2JlcyBhZGRfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCiAJaWYgKERFQlVHX0xPQ0tTX1dBUk5fT04oKHByZWVtcHRfY291bnQoKSA8IDApKSkKIAkJcmV0dXJuOworI2VuZGlmCiAJcHJlZW1wdF9jb3VudCgpICs9IHZhbDsKKyNpZmRlZiBDT05GSUdfREVCVUdfUFJFRU1QVAogCS8qCiAJICogU3BpbmxvY2sgY291bnQgb3ZlcmZsb3dpbmcgc29vbj8KIAkgKi8KIAlERUJVR19MT0NLU19XQVJOX09OKChwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spID49CiAJCQkJUFJFRU1QVF9NQVNLIC0gMTApOworI2VuZGlmCisJaWYgKHByZWVtcHRfY291bnQoKSA9PSB2YWwpCisJCXRyYWNlX3ByZWVtcHRfb2ZmKENBTExFUl9BRERSMCwgZ2V0X3BhcmVudF9pcChDQUxMRVJfQUREUjEpKTsKIH0KIEVYUE9SVF9TWU1CT0woYWRkX3ByZWVtcHRfY291bnQpOwogCiB2b2lkIF9fa3Byb2JlcyBzdWJfcHJlZW1wdF9jb3VudChpbnQgdmFsKQogeworI2lmZGVmIENPTkZJR19ERUJVR19QUkVFTVBUCiAJLyoKIAkgKiBVbmRlcmZsb3c/CiAJICovCkBAIC00MzkzLDcgKzQzMDAsMTAgQEAKIAlpZiAoREVCVUdfTE9DS1NfV0FSTl9PTigodmFsIDwgUFJFRU1QVF9NQVNLKSAmJgogCQkJIShwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX01BU0spKSkKIAkJcmV0dXJuOworI2VuZGlmCiAKKwlpZiAocHJlZW1wdF9jb3VudCgpID09IHZhbCkKKwkJdHJhY2VfcHJlZW1wdF9vbihDQUxMRVJfQUREUjAsIGdldF9wYXJlbnRfaXAoQ0FMTEVSX0FERFIxKSk7CiAJcHJlZW1wdF9jb3VudCgpIC09IHZhbDsKIH0KIEVYUE9SVF9TWU1CT0woc3ViX3ByZWVtcHRfY291bnQpOwpAQCAtNDQxMSw2ICs0MzIxLDcgQEAKIAkJcHJldi0+Y29tbSwgcHJldi0+cGlkLCBwcmVlbXB0X2NvdW50KCkpOwogCiAJZGVidWdfc2hvd19oZWxkX2xvY2tzKHByZXYpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAoaXJxc19kaXNhYmxlZCgpKQogCQlwcmludF9pcnF0cmFjZV9ldmVudHMocHJldik7CiAKQEAgLTQ0MzAsNyArNDM0MSw3IEBACiAJICogc2NoZWR1bGUoKSBhdG9taWNhbGx5LCB3ZSBpZ25vcmUgdGhhdCBwYXRoIGZvciBub3cuCiAJICogT3RoZXJ3aXNlLCB3aGluZSBpZiB3ZSBhcmUgc2NoZWR1bGluZyB3aGVuIHdlIHNob3VsZCBub3QgYmUuCiAJICovCi0JaWYgKHVubGlrZWx5KGluX2F0b21pY19wcmVlbXB0X29mZigpKSAmJiB1bmxpa2VseSghcHJldi0+ZXhpdF9zdGF0ZSkpCisJaWYgKHVubGlrZWx5KGluX2F0b21pY19wcmVlbXB0X29mZigpICYmICFwcmV2LT5leGl0X3N0YXRlKSkKIAkJX19zY2hlZHVsZV9idWcocHJldik7CiAKIAlwcm9maWxlX2hpdChTQ0hFRF9QUk9GSUxJTkcsIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7CkBAIC00NDg0LDcgKzQzOTUsNyBAQAogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcHJldiwgKm5leHQ7CiAJdW5zaWduZWQgbG9uZyAqc3dpdGNoX2NvdW50OwogCXN0cnVjdCBycSAqcnE7Ci0JaW50IGNwdTsKKwlpbnQgY3B1LCBocnRpY2sgPSBzY2hlZF9mZWF0KEhSVElDSyk7CiAKIG5lZWRfcmVzY2hlZDoKIAlwcmVlbXB0X2Rpc2FibGUoKTsKQEAgLTQ0OTksNyArNDQxMCw4IEBACiAKIAlzY2hlZHVsZV9kZWJ1ZyhwcmV2KTsKIAotCWhydGlja19jbGVhcihycSk7CisJaWYgKGhydGljaykKKwkJaHJ0aWNrX2NsZWFyKHJxKTsKIAogCS8qCiAJICogRG8gdGhlIHJxLWNsb2NrIHVwZGF0ZSBvdXRzaWRlIHRoZSBycSBsb2NrOgpAQCAtNDUxMCwxMiArNDQyMiwxMCBAQAogCWNsZWFyX3Rza19uZWVkX3Jlc2NoZWQocHJldik7CiAKIAlpZiAocHJldi0+c3RhdGUgJiYgIShwcmVlbXB0X2NvdW50KCkgJiBQUkVFTVBUX0FDVElWRSkpIHsKLQkJaWYgKHVubGlrZWx5KChwcmV2LT5zdGF0ZSAmIFRBU0tfSU5URVJSVVBUSUJMRSkgJiYKLQkJCQlzaWduYWxfcGVuZGluZyhwcmV2KSkpIHsKKwkJaWYgKHVubGlrZWx5KHNpZ25hbF9wZW5kaW5nX3N0YXRlKHByZXYtPnN0YXRlLCBwcmV2KSkpCiAJCQlwcmV2LT5zdGF0ZSA9IFRBU0tfUlVOTklORzsKLQkJfSBlbHNlIHsKKwkJZWxzZQogCQkJZGVhY3RpdmF0ZV90YXNrKHJxLCBwcmV2LCAxKTsKLQkJfQogCQlzd2l0Y2hfY291bnQgPSAmcHJldi0+bnZjc3c7CiAJfQogCkBAIC00NTQ3LDcgKzQ0NTcsOCBAQAogCX0gZWxzZQogCQlzcGluX3VubG9ja19pcnEoJnJxLT5sb2NrKTsKIAotCWhydGlja19zZXQocnEpOworCWlmIChocnRpY2spCisJCWhydGlja19zZXQocnEpOwogCiAJaWYgKHVubGlrZWx5KHJlYWNxdWlyZV9rZXJuZWxfbG9jayhjdXJyZW50KSA8IDApKQogCQlnb3RvIG5lZWRfcmVzY2hlZF9ub25wcmVlbXB0aWJsZTsKQEAgLTQ3NDEsMjIgKzQ2NTIsMjAgQEAKIAkJCSAgICAgc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpIHx8CiAJCQkgICAgKHN0YXRlID09IFRBU0tfS0lMTEFCTEUgJiYKIAkJCSAgICAgZmF0YWxfc2lnbmFsX3BlbmRpbmcoY3VycmVudCkpKSB7Ci0JCQkJX19yZW1vdmVfd2FpdF9xdWV1ZSgmeC0+d2FpdCwgJndhaXQpOwotCQkJCXJldHVybiAtRVJFU1RBUlRTWVM7CisJCQkJdGltZW91dCA9IC1FUkVTVEFSVFNZUzsKKwkJCQlicmVhazsKIAkJCX0KIAkJCV9fc2V0X2N1cnJlbnRfc3RhdGUoc3RhdGUpOwogCQkJc3Bpbl91bmxvY2tfaXJxKCZ4LT53YWl0LmxvY2spOwogCQkJdGltZW91dCA9IHNjaGVkdWxlX3RpbWVvdXQodGltZW91dCk7CiAJCQlzcGluX2xvY2tfaXJxKCZ4LT53YWl0LmxvY2spOwotCQkJaWYgKCF0aW1lb3V0KSB7Ci0JCQkJX19yZW1vdmVfd2FpdF9xdWV1ZSgmeC0+d2FpdCwgJndhaXQpOwotCQkJCXJldHVybiB0aW1lb3V0OwotCQkJfQotCQl9IHdoaWxlICgheC0+ZG9uZSk7CisJCX0gd2hpbGUgKCF4LT5kb25lICYmIHRpbWVvdXQpOwogCQlfX3JlbW92ZV93YWl0X3F1ZXVlKCZ4LT53YWl0LCAmd2FpdCk7CisJCWlmICgheC0+ZG9uZSkKKwkJCXJldHVybiB0aW1lb3V0OwogCX0KIAl4LT5kb25lLS07Ci0JcmV0dXJuIHRpbWVvdXQ7CisJcmV0dXJuIHRpbWVvdXQgPzogMTsKIH0KIAogc3RhdGljIGxvbmcgX19zY2hlZApAQCAtNTA4NiwxNiArNDk5NSw4IEBACiAJc2V0X2xvYWRfd2VpZ2h0KHApOwogfQogCi0vKioKLSAqIHNjaGVkX3NldHNjaGVkdWxlciAtIGNoYW5nZSB0aGUgc2NoZWR1bGluZyBwb2xpY3kgYW5kL29yIFJUIHByaW9yaXR5IG9mIGEgdGhyZWFkLgotICogQHA6IHRoZSB0YXNrIGluIHF1ZXN0aW9uLgotICogQHBvbGljeTogbmV3IHBvbGljeS4KLSAqIEBwYXJhbTogc3RydWN0dXJlIGNvbnRhaW5pbmcgdGhlIG5ldyBSVCBwcmlvcml0eS4KLSAqCi0gKiBOT1RFIHRoYXQgdGhlIHRhc2sgbWF5IGJlIGFscmVhZHkgZGVhZC4KLSAqLwotaW50IHNjaGVkX3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCi0JCSAgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKQorc3RhdGljIGludCBfX3NjaGVkX3NldHNjaGVkdWxlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCisJCQkJc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSwgYm9vbCB1c2VyKQogewogCWludCByZXR2YWwsIG9sZHByaW8sIG9sZHBvbGljeSA9IC0xLCBvbl9ycSwgcnVubmluZzsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtNTEyNyw3ICs1MDI4LDcgQEAKIAkvKgogCSAqIEFsbG93IHVucHJpdmlsZWdlZCBSVCB0YXNrcyB0byBkZWNyZWFzZSBwcmlvcml0eToKIAkgKi8KLQlpZiAoIWNhcGFibGUoQ0FQX1NZU19OSUNFKSkgeworCWlmICh1c2VyICYmICFjYXBhYmxlKENBUF9TWVNfTklDRSkpIHsKIAkJaWYgKHJ0X3BvbGljeShwb2xpY3kpKSB7CiAJCQl1bnNpZ25lZCBsb25nIHJsaW1fcnRwcmlvOwogCkBAIC01MTYzLDcgKzUwNjQsOCBAQAogCSAqIERvIG5vdCBhbGxvdyByZWFsdGltZSB0YXNrcyBpbnRvIGdyb3VwcyB0aGF0IGhhdmUgbm8gcnVudGltZQogCSAqIGFzc2lnbmVkLgogCSAqLwotCWlmIChydF9wb2xpY3kocG9saWN5KSAmJiB0YXNrX2dyb3VwKHApLT5ydF9iYW5kd2lkdGgucnRfcnVudGltZSA9PSAwKQorCWlmICh1c2VyCisJICAgICYmIHJ0X3BvbGljeShwb2xpY3kpICYmIHRhc2tfZ3JvdXAocCktPnJ0X2JhbmR3aWR0aC5ydF9ydW50aW1lID09IDApCiAJCXJldHVybiAtRVBFUk07CiAjZW5kaWYKIApAQCAtNTIxMiw4ICs1MTE0LDM5IEBACiAKIAlyZXR1cm4gMDsKIH0KKworLyoqCisgKiBzY2hlZF9zZXRzY2hlZHVsZXIgLSBjaGFuZ2UgdGhlIHNjaGVkdWxpbmcgcG9saWN5IGFuZC9vciBSVCBwcmlvcml0eSBvZiBhIHRocmVhZC4KKyAqIEBwOiB0aGUgdGFzayBpbiBxdWVzdGlvbi4KKyAqIEBwb2xpY3k6IG5ldyBwb2xpY3kuCisgKiBAcGFyYW06IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBuZXcgUlQgcHJpb3JpdHkuCisgKgorICogTk9URSB0aGF0IHRoZSB0YXNrIG1heSBiZSBhbHJlYWR5IGRlYWQuCisgKi8KK2ludCBzY2hlZF9zZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcG9saWN5LAorCQkgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkKK3sKKwlyZXR1cm4gX19zY2hlZF9zZXRzY2hlZHVsZXIocCwgcG9saWN5LCBwYXJhbSwgdHJ1ZSk7Cit9CiBFWFBPUlRfU1lNQk9MX0dQTChzY2hlZF9zZXRzY2hlZHVsZXIpOwogCisvKioKKyAqIHNjaGVkX3NldHNjaGVkdWxlcl9ub2NoZWNrIC0gY2hhbmdlIHRoZSBzY2hlZHVsaW5nIHBvbGljeSBhbmQvb3IgUlQgcHJpb3JpdHkgb2YgYSB0aHJlYWQgZnJvbSBrZXJuZWxzcGFjZS4KKyAqIEBwOiB0aGUgdGFzayBpbiBxdWVzdGlvbi4KKyAqIEBwb2xpY3k6IG5ldyBwb2xpY3kuCisgKiBAcGFyYW06IHN0cnVjdHVyZSBjb250YWluaW5nIHRoZSBuZXcgUlQgcHJpb3JpdHkuCisgKgorICogSnVzdCBsaWtlIHNjaGVkX3NldHNjaGVkdWxlciwgb25seSBkb24ndCBib3RoZXIgY2hlY2tpbmcgaWYgdGhlCisgKiBjdXJyZW50IGNvbnRleHQgaGFzIHBlcm1pc3Npb24uICBGb3IgZXhhbXBsZSwgdGhpcyBpcyBuZWVkZWQgaW4KKyAqIHN0b3BfbWFjaGluZSgpOiB3ZSBjcmVhdGUgdGVtcG9yYXJ5IGhpZ2ggcHJpb3JpdHkgd29ya2VyIHRocmVhZHMsCisgKiBidXQgb3VyIGNhbGxlciBtaWdodCBub3QgaGF2ZSB0aGF0IGNhcGFiaWxpdHkuCisgKi8KK2ludCBzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCisJCQkgICAgICAgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkKK3sKKwlyZXR1cm4gX19zY2hlZF9zZXRzY2hlZHVsZXIocCwgcG9saWN5LCBwYXJhbSwgZmFsc2UpOworfQorCiBzdGF0aWMgaW50CiBkb19zY2hlZF9zZXRzY2hlZHVsZXIocGlkX3QgcGlkLCBpbnQgcG9saWN5LCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gX191c2VyICpwYXJhbSkKIHsKQEAgLTU0MTIsMjQgKzUzNDUsNiBAQAogCXJldHVybiBzY2hlZF9zZXRhZmZpbml0eShwaWQsICZuZXdfbWFzayk7CiB9CiAKLS8qCi0gKiBSZXByZXNlbnRzIGFsbCBjcHUncyBwcmVzZW50IGluIHRoZSBzeXN0ZW0KLSAqIEluIHN5c3RlbXMgY2FwYWJsZSBvZiBob3RwbHVnLCB0aGlzIG1hcCBjb3VsZCBkeW5hbWljYWxseSBncm93Ci0gKiBhcyBuZXcgY3B1J3MgYXJlIGRldGVjdGVkIGluIHRoZSBzeXN0ZW0gdmlhIGFueSBwbGF0Zm9ybSBzcGVjaWZpYwotICogbWV0aG9kLCBzdWNoIGFzIEFDUEkgZm9yIGUuZy4KLSAqLwotCi1jcHVtYXNrX3QgY3B1X3ByZXNlbnRfbWFwIF9fcmVhZF9tb3N0bHk7Ci1FWFBPUlRfU1lNQk9MKGNwdV9wcmVzZW50X21hcCk7Ci0KLSNpZm5kZWYgQ09ORklHX1NNUAotY3B1bWFza190IGNwdV9vbmxpbmVfbWFwIF9fcmVhZF9tb3N0bHkgPSBDUFVfTUFTS19BTEw7Ci1FWFBPUlRfU1lNQk9MKGNwdV9vbmxpbmVfbWFwKTsKLQotY3B1bWFza190IGNwdV9wb3NzaWJsZV9tYXAgX19yZWFkX21vc3RseSA9IENQVV9NQVNLX0FMTDsKLUVYUE9SVF9TWU1CT0woY3B1X3Bvc3NpYmxlX21hcCk7Ci0jZW5kaWYKLQogbG9uZyBzY2hlZF9nZXRhZmZpbml0eShwaWRfdCBwaWQsIGNwdW1hc2tfdCAqbWFzaykKIHsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CkBAIC01NzI2LDcgKzU2NDEsNyBAQAogCXJldHVybiByZXR2YWw7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyIHN0YXRfbmFtW10gPSAiUlNEVHRaWCI7CitzdGF0aWMgY29uc3QgY2hhciBzdGF0X25hbVtdID0gVEFTS19TVEFURV9UT19DSEFSX1NUUjsKIAogdm9pZCBzY2hlZF9zaG93X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQogewpAQCAtNTkxMyw2ICs1ODI4LDEyIEBACiAJCWdvdG8gb3V0OwogCX0KIAorCWlmICh1bmxpa2VseSgocC0+ZmxhZ3MgJiBQRl9USFJFQURfQk9VTkQpICYmIHAgIT0gY3VycmVudCAmJgorCQkgICAgICFjcHVzX2VxdWFsKHAtPmNwdXNfYWxsb3dlZCwgKm5ld19tYXNrKSkpIHsKKwkJcmV0ID0gLUVJTlZBTDsKKwkJZ290byBvdXQ7CisJfQorCiAJaWYgKHAtPnNjaGVkX2NsYXNzLT5zZXRfY3B1c19hbGxvd2VkKQogCQlwLT5zY2hlZF9jbGFzcy0+c2V0X2NwdXNfYWxsb3dlZChwLCBuZXdfbWFzayk7CiAJZWxzZSB7CkBAIC01OTY0LDEwICs1ODg1LDEwIEBACiAJZG91YmxlX3JxX2xvY2socnFfc3JjLCBycV9kZXN0KTsKIAkvKiBBbHJlYWR5IG1vdmVkLiAqLwogCWlmICh0YXNrX2NwdShwKSAhPSBzcmNfY3B1KQotCQlnb3RvIG91dDsKKwkJZ290byBkb25lOwogCS8qIEFmZmluaXR5IGNoYW5nZWQgKGFnYWluKS4gKi8KIAlpZiAoIWNwdV9pc3NldChkZXN0X2NwdSwgcC0+Y3B1c19hbGxvd2VkKSkKLQkJZ290byBvdXQ7CisJCWdvdG8gZmFpbDsKIAogCW9uX3JxID0gcC0+c2Uub25fcnE7CiAJaWYgKG9uX3JxKQpAQCAtNTk3OCw4ICs1ODk5LDkgQEAKIAkJYWN0aXZhdGVfdGFzayhycV9kZXN0LCBwLCAwKTsKIAkJY2hlY2tfcHJlZW1wdF9jdXJyKHJxX2Rlc3QsIHApOwogCX0KK2RvbmU6CiAJcmV0ID0gMTsKLW91dDoKK2ZhaWw6CiAJZG91YmxlX3JxX3VubG9jayhycV9zcmMsIHJxX2Rlc3QpOwogCXJldHVybiByZXQ7CiB9CkBAIC02MjI5LDYgKzYxNTEsNyBAQAogCQluZXh0ID0gcGlja19uZXh0X3Rhc2socnEsIHJxLT5jdXJyKTsKIAkJaWYgKCFuZXh0KQogCQkJYnJlYWs7CisJCW5leHQtPnNjaGVkX2NsYXNzLT5wdXRfcHJldl90YXNrKHJxLCBuZXh0KTsKIAkJbWlncmF0ZV9kZWFkKGRlYWRfY3B1LCBuZXh0KTsKIAogCX0KQEAgLTY0MDAsNiArNjMyMywzNiBAQAogfQogI2VuZGlmCiAKK3N0YXRpYyB2b2lkIHNldF9ycV9vbmxpbmUoc3RydWN0IHJxICpycSkKK3sKKwlpZiAoIXJxLT5vbmxpbmUpIHsKKwkJY29uc3Qgc3RydWN0IHNjaGVkX2NsYXNzICpjbGFzczsKKworCQljcHVfc2V0KHJxLT5jcHUsIHJxLT5yZC0+b25saW5lKTsKKwkJcnEtPm9ubGluZSA9IDE7CisKKwkJZm9yX2VhY2hfY2xhc3MoY2xhc3MpIHsKKwkJCWlmIChjbGFzcy0+cnFfb25saW5lKQorCQkJCWNsYXNzLT5ycV9vbmxpbmUocnEpOworCQl9CisJfQorfQorCitzdGF0aWMgdm9pZCBzZXRfcnFfb2ZmbGluZShzdHJ1Y3QgcnEgKnJxKQoreworCWlmIChycS0+b25saW5lKSB7CisJCWNvbnN0IHN0cnVjdCBzY2hlZF9jbGFzcyAqY2xhc3M7CisKKwkJZm9yX2VhY2hfY2xhc3MoY2xhc3MpIHsKKwkJCWlmIChjbGFzcy0+cnFfb2ZmbGluZSkKKwkJCQljbGFzcy0+cnFfb2ZmbGluZShycSk7CisJCX0KKworCQljcHVfY2xlYXIocnEtPmNwdSwgcnEtPnJkLT5vbmxpbmUpOworCQlycS0+b25saW5lID0gMDsKKwl9Cit9CisKIC8qCiAgKiBtaWdyYXRpb25fY2FsbCAtIGNhbGxiYWNrIHRoYXQgZ2V0cyB0cmlnZ2VyZWQgd2hlbiBhIENQVSBpcyBhZGRlZC4KICAqIEhlcmUgd2UgY2FuIHN0YXJ0IHVwIHRoZSBuZWNlc3NhcnkgbWlncmF0aW9uIHRocmVhZCBmb3IgdGhlIG5ldyBDUFUuCkBAIC02NDM3LDcgKzYzOTAsOCBAQAogCQlzcGluX2xvY2tfaXJxc2F2ZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAkJaWYgKHJxLT5yZCkgewogCQkJQlVHX09OKCFjcHVfaXNzZXQoY3B1LCBycS0+cmQtPnNwYW4pKTsKLQkJCWNwdV9zZXQoY3B1LCBycS0+cmQtPm9ubGluZSk7CisKKwkJCXNldF9ycV9vbmxpbmUocnEpOwogCQl9CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWJyZWFrOwpAQCAtNjQ5OCw3ICs2NDUyLDcgQEAKIAkJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CiAJCWlmIChycS0+cmQpIHsKIAkJCUJVR19PTighY3B1X2lzc2V0KGNwdSwgcnEtPnJkLT5zcGFuKSk7Ci0JCQljcHVfY2xlYXIoY3B1LCBycS0+cmQtPm9ubGluZSk7CisJCQlzZXRfcnFfb2ZmbGluZShycSk7CiAJCX0KIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKIAkJYnJlYWs7CkBAIC02NTMyLDYgKzY0ODYsMjggQEAKIAogI2lmZGVmIENPTkZJR19TQ0hFRF9ERUJVRwogCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKnNkX2xldmVsX3RvX3N0cmluZyhlbnVtIHNjaGVkX2RvbWFpbl9sZXZlbCBsdmwpCit7CisJc3dpdGNoIChsdmwpIHsKKwljYXNlIFNEX0xWX05PTkU6CisJCQlyZXR1cm4gIk5PTkUiOworCWNhc2UgU0RfTFZfU0lCTElORzoKKwkJCXJldHVybiAiU0lCTElORyI7CisJY2FzZSBTRF9MVl9NQzoKKwkJCXJldHVybiAiTUMiOworCWNhc2UgU0RfTFZfQ1BVOgorCQkJcmV0dXJuICJDUFUiOworCWNhc2UgU0RfTFZfTk9ERToKKwkJCXJldHVybiAiTk9ERSI7CisJY2FzZSBTRF9MVl9BTExOT0RFUzoKKwkJCXJldHVybiAiQUxMTk9ERVMiOworCWNhc2UgU0RfTFZfTUFYOgorCQkJcmV0dXJuICJNQVgiOworCisJfQorCXJldHVybiAiTUFYIjsKK30KKwogc3RhdGljIGludCBzY2hlZF9kb21haW5fZGVidWdfb25lKHN0cnVjdCBzY2hlZF9kb21haW4gKnNkLCBpbnQgY3B1LCBpbnQgbGV2ZWwsCiAJCQkJICBjcHVtYXNrX3QgKmdyb3VwbWFzaykKIHsKQEAgLTY1NTEsNyArNjUyNyw4IEBACiAJCXJldHVybiAtMTsKIAl9CiAKLQlwcmludGsoS0VSTl9DT05UICJzcGFuICVzXG4iLCBzdHIpOworCXByaW50ayhLRVJOX0NPTlQgInNwYW4gJXMgbGV2ZWwgJXNcbiIsCisJCXN0ciwgc2RfbGV2ZWxfdG9fc3RyaW5nKHNkLT5sZXZlbCkpOwogCiAJaWYgKCFjcHVfaXNzZXQoY3B1LCBzZC0+c3BhbikpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJFUlJPUjogZG9tYWluLT5zcGFuIGRvZXMgbm90IGNvbnRhaW4gIgpAQCAtNjYzNSw5ICs2NjEyLDkgQEAKIAl9CiAJa2ZyZWUoZ3JvdXBtYXNrKTsKIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1NDSEVEX0RFQlVHICovCiAjIGRlZmluZSBzY2hlZF9kb21haW5fZGVidWcoc2QsIGNwdSkgZG8geyB9IHdoaWxlICgwKQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1NDSEVEX0RFQlVHICovCiAKIHN0YXRpYyBpbnQgc2RfZGVnZW5lcmF0ZShzdHJ1Y3Qgc2NoZWRfZG9tYWluICpzZCkKIHsKQEAgLTY2OTcsMjAgKzY2NzQsMTYgQEAKIHN0YXRpYyB2b2lkIHJxX2F0dGFjaF9yb290KHN0cnVjdCBycSAqcnEsIHN0cnVjdCByb290X2RvbWFpbiAqcmQpCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKLQljb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgKmNsYXNzOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CiAKIAlpZiAocnEtPnJkKSB7CiAJCXN0cnVjdCByb290X2RvbWFpbiAqb2xkX3JkID0gcnEtPnJkOwogCi0JCWZvciAoY2xhc3MgPSBzY2hlZF9jbGFzc19oaWdoZXN0OyBjbGFzczsgY2xhc3MgPSBjbGFzcy0+bmV4dCkgewotCQkJaWYgKGNsYXNzLT5sZWF2ZV9kb21haW4pCi0JCQkJY2xhc3MtPmxlYXZlX2RvbWFpbihycSk7Ci0JCX0KKwkJaWYgKGNwdV9pc3NldChycS0+Y3B1LCBvbGRfcmQtPm9ubGluZSkpCisJCQlzZXRfcnFfb2ZmbGluZShycSk7CiAKIAkJY3B1X2NsZWFyKHJxLT5jcHUsIG9sZF9yZC0+c3Bhbik7Ci0JCWNwdV9jbGVhcihycS0+Y3B1LCBvbGRfcmQtPm9ubGluZSk7CiAKIAkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJm9sZF9yZC0+cmVmY291bnQpKQogCQkJa2ZyZWUob2xkX3JkKTsKQEAgLTY3MjEsMTIgKzY2OTQsNyBAQAogCiAJY3B1X3NldChycS0+Y3B1LCByZC0+c3Bhbik7CiAJaWYgKGNwdV9pc3NldChycS0+Y3B1LCBjcHVfb25saW5lX21hcCkpCi0JCWNwdV9zZXQocnEtPmNwdSwgcmQtPm9ubGluZSk7Ci0KLQlmb3IgKGNsYXNzID0gc2NoZWRfY2xhc3NfaGlnaGVzdDsgY2xhc3M7IGNsYXNzID0gY2xhc3MtPm5leHQpIHsKLQkJaWYgKGNsYXNzLT5qb2luX2RvbWFpbikKLQkJCWNsYXNzLT5qb2luX2RvbWFpbihycSk7Ci0JfQorCQlzZXRfcnFfb25saW5lKHJxKTsKIAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJxLT5sb2NrLCBmbGFncyk7CiB9CkBAIC02NzM3LDYgKzY3MDUsOCBAQAogCiAJY3B1c19jbGVhcihyZC0+c3Bhbik7CiAJY3B1c19jbGVhcihyZC0+b25saW5lKTsKKworCWNwdXByaV9pbml0KCZyZC0+Y3B1cHJpKTsKIH0KIAogc3RhdGljIHZvaWQgaW5pdF9kZWZyb290ZG9tYWluKHZvaWQpCkBAIC02ODc5LDkgKzY4NDksOSBAQAogCiAJbWluX3ZhbCA9IElOVF9NQVg7CiAKLQlmb3IgKGkgPSAwOyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgbnJfbm9kZV9pZHM7IGkrKykgewogCQkvKiBTdGFydCBhdCBAbm9kZSAqLwotCQluID0gKG5vZGUgKyBpKSAlIE1BWF9OVU1OT0RFUzsKKwkJbiA9IChub2RlICsgaSkgJSBucl9ub2RlX2lkczsKIAogCQlpZiAoIW5yX2NwdXNfbm9kZShuKSkKIAkJCWNvbnRpbnVlOwpAQCAtNjkzMSw3ICs2OTAxLDcgQEAKIAkJY3B1c19vcigqc3BhbiwgKnNwYW4sICpub2RlbWFzayk7CiAJfQogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX05VTUEgKi8KIAogaW50IHNjaGVkX3NtdF9wb3dlcl9zYXZpbmdzID0gMCwgc2NoZWRfbWNfcG93ZXJfc2F2aW5ncyA9IDA7CiAKQEAgLTY5NTAsNyArNjkyMCw3IEBACiAJCSpzZyA9ICZwZXJfY3B1KHNjaGVkX2dyb3VwX2NwdXMsIGNwdSk7CiAJcmV0dXJuIGNwdTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9TTVQgKi8KIAogLyoKICAqIG11bHRpLWNvcmUgc2NoZWQtZG9tYWluczoKQEAgLTY5NTgsNyArNjkyOCw3IEBACiAjaWZkZWYgQ09ORklHX1NDSEVEX01DCiBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX2RvbWFpbiwgY29yZV9kb21haW5zKTsKIHN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZ3JvdXAsIHNjaGVkX2dyb3VwX2NvcmUpOwotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1NDSEVEX01DICovCiAKICNpZiBkZWZpbmVkKENPTkZJR19TQ0hFRF9NQykgJiYgZGVmaW5lZChDT05GSUdfU0NIRURfU01UKQogc3RhdGljIGludApAQCAtNzA2MCw3ICs3MDMwLDcgQEAKIAkJc2cgPSBzZy0+bmV4dDsKIAl9IHdoaWxlIChzZyAhPSBncm91cF9oZWFkKTsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKICNpZmRlZiBDT05GSUdfTlVNQQogLyogRnJlZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB2YXJpb3VzIHNjaGVkX2dyb3VwIHN0cnVjdHVyZXMgKi8KQEAgLTcwNzUsNyArNzA0NSw3IEBACiAJCWlmICghc2NoZWRfZ3JvdXBfbm9kZXMpCiAJCQljb250aW51ZTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IG5yX25vZGVfaWRzOyBpKyspIHsKIAkJCXN0cnVjdCBzY2hlZF9ncm91cCAqb2xkc2csICpzZyA9IHNjaGVkX2dyb3VwX25vZGVzW2ldOwogCiAJCQkqbm9kZW1hc2sgPSBub2RlX3RvX2NwdW1hc2soaSk7CkBAIC03MDk3LDExICs3MDY3LDExIEBACiAJCXNjaGVkX2dyb3VwX25vZGVzX2J5Y3B1W2NwdV0gPSBOVUxMOwogCX0KIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX05VTUEgKi8KIHN0YXRpYyB2b2lkIGZyZWVfc2NoZWRfZ3JvdXBzKGNvbnN0IGNwdW1hc2tfdCAqY3B1X21hcCwgY3B1bWFza190ICpub2RlbWFzaykKIHsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCiAKIC8qCiAgKiBJbml0aWFsaXplIHNjaGVkIGdyb3VwcyBjcHVfcG93ZXIuCkBAIC03MjE5LDcgKzcxODksMTIgQEAKIAogc3RhdGljIGludCBfX2luaXQgc2V0dXBfcmVsYXhfZG9tYWluX2xldmVsKGNoYXIgKnN0cikKIHsKLQlkZWZhdWx0X3JlbGF4X2RvbWFpbl9sZXZlbCA9IHNpbXBsZV9zdHJ0b3VsKHN0ciwgTlVMTCwgMCk7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwl2YWwgPSBzaW1wbGVfc3RydG91bChzdHIsIE5VTEwsIDApOworCWlmICh2YWwgPCBTRF9MVl9NQVgpCisJCWRlZmF1bHRfcmVsYXhfZG9tYWluX2xldmVsID0gdmFsOworCiAJcmV0dXJuIDE7CiB9CiBfX3NldHVwKCJyZWxheF9kb21haW5fbGV2ZWw9Iiwgc2V0dXBfcmVsYXhfZG9tYWluX2xldmVsKTsKQEAgLTcyNjMsNyArNzIzOCw3IEBACiAJLyoKIAkgKiBBbGxvY2F0ZSB0aGUgcGVyLW5vZGUgbGlzdCBvZiBzY2hlZCBncm91cHMKIAkgKi8KLQlzY2hlZF9ncm91cF9ub2RlcyA9IGtjYWxsb2MoTUFYX05VTU5PREVTLCBzaXplb2Yoc3RydWN0IHNjaGVkX2dyb3VwICopLAorCXNjaGVkX2dyb3VwX25vZGVzID0ga2NhbGxvYyhucl9ub2RlX2lkcywgc2l6ZW9mKHN0cnVjdCBzY2hlZF9ncm91cCAqKSwKIAkJCQkgICAgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzY2hlZF9ncm91cF9ub2RlcykgewogCQlwcmludGsoS0VSTl9XQVJOSU5HICJDYW4gbm90IGFsbG9jIHNjaGVkIGdyb3VwIG5vZGUgbGlzdFxuIik7CkBAIC03MzE2LDcgKzcyOTEsNiBAQAogCQkJU0RfSU5JVChzZCwgQUxMTk9ERVMpOwogCQkJc2V0X2RvbWFpbl9hdHRyaWJ1dGUoc2QsIGF0dHIpOwogCQkJc2QtPnNwYW4gPSAqY3B1X21hcDsKLQkJCXNkLT5maXJzdF9jcHUgPSBmaXJzdF9jcHUoc2QtPnNwYW4pOwogCQkJY3B1X3RvX2FsbG5vZGVzX2dyb3VwKGksIGNwdV9tYXAsICZzZC0+Z3JvdXBzLCB0bXBtYXNrKTsKIAkJCXAgPSBzZDsKIAkJCXNkX2FsbG5vZGVzID0gMTsKQEAgLTczMjcsNyArNzMwMSw2IEBACiAJCVNEX0lOSVQoc2QsIE5PREUpOwogCQlzZXRfZG9tYWluX2F0dHJpYnV0ZShzZCwgYXR0cik7CiAJCXNjaGVkX2RvbWFpbl9ub2RlX3NwYW4oY3B1X3RvX25vZGUoaSksICZzZC0+c3Bhbik7Ci0JCXNkLT5maXJzdF9jcHUgPSBmaXJzdF9jcHUoc2QtPnNwYW4pOwogCQlzZC0+cGFyZW50ID0gcDsKIAkJaWYgKHApCiAJCQlwLT5jaGlsZCA9IHNkOwpAQCAtNzMzOSw3ICs3MzEyLDYgQEAKIAkJU0RfSU5JVChzZCwgQ1BVKTsKIAkJc2V0X2RvbWFpbl9hdHRyaWJ1dGUoc2QsIGF0dHIpOwogCQlzZC0+c3BhbiA9ICpub2RlbWFzazsKLQkJc2QtPmZpcnN0X2NwdSA9IGZpcnN0X2NwdShzZC0+c3Bhbik7CiAJCXNkLT5wYXJlbnQgPSBwOwogCQlpZiAocCkKIAkJCXAtPmNoaWxkID0gc2Q7CkBAIC03MzUxLDcgKzczMjMsNiBAQAogCQlTRF9JTklUKHNkLCBNQyk7CiAJCXNldF9kb21haW5fYXR0cmlidXRlKHNkLCBhdHRyKTsKIAkJc2QtPnNwYW4gPSBjcHVfY29yZWdyb3VwX21hcChpKTsKLQkJc2QtPmZpcnN0X2NwdSA9IGZpcnN0X2NwdShzZC0+c3Bhbik7CiAJCWNwdXNfYW5kKHNkLT5zcGFuLCBzZC0+c3BhbiwgKmNwdV9tYXApOwogCQlzZC0+cGFyZW50ID0gcDsKIAkJcC0+Y2hpbGQgPSBzZDsKQEAgLTczNjQsNyArNzMzNSw2IEBACiAJCVNEX0lOSVQoc2QsIFNJQkxJTkcpOwogCQlzZXRfZG9tYWluX2F0dHJpYnV0ZShzZCwgYXR0cik7CiAJCXNkLT5zcGFuID0gcGVyX2NwdShjcHVfc2libGluZ19tYXAsIGkpOwotCQlzZC0+Zmlyc3RfY3B1ID0gZmlyc3RfY3B1KHNkLT5zcGFuKTsKIAkJY3B1c19hbmQoc2QtPnNwYW4sIHNkLT5zcGFuLCAqY3B1X21hcCk7CiAJCXNkLT5wYXJlbnQgPSBwOwogCQlwLT5jaGlsZCA9IHNkOwpAQCAtNzQwNyw3ICs3Mzc3LDcgQEAKICNlbmRpZgogCiAJLyogU2V0IHVwIHBoeXNpY2FsIGdyb3VwcyAqLwotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKG5vZGVtYXNrLCBhbGxtYXNrcyk7CiAJCVNDSEVEX0NQVU1BU0tfVkFSKHNlbmRfY292ZXJlZCwgYWxsbWFza3MpOwogCkBAIC03NDMxLDcgKzc0MDEsNyBAQAogCQkJCQlzZW5kX2NvdmVyZWQsIHRtcG1hc2spOwogCX0KIAotCWZvciAoaSA9IDA7IGkgPCBNQVhfTlVNTk9ERVM7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKSB7CiAJCS8qIFNldCB1cCBub2RlIGdyb3VwcyAqLwogCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKnNnLCAqcHJldjsKIAkJU0NIRURfQ1BVTUFTS19WQVIobm9kZW1hc2ssIGFsbG1hc2tzKTsKQEAgLTc0NzAsOSArNzQ0MCw5IEBACiAJCWNwdXNfb3IoKmNvdmVyZWQsICpjb3ZlcmVkLCAqbm9kZW1hc2spOwogCQlwcmV2ID0gc2c7CiAKLQkJZm9yIChqID0gMDsgaiA8IE1BWF9OVU1OT0RFUzsgaisrKSB7CisJCWZvciAoaiA9IDA7IGogPCBucl9ub2RlX2lkczsgaisrKSB7CiAJCQlTQ0hFRF9DUFVNQVNLX1ZBUihub3Rjb3ZlcmVkLCBhbGxtYXNrcyk7Ci0JCQlpbnQgbiA9IChpICsgaikgJSBNQVhfTlVNTk9ERVM7CisJCQlpbnQgbiA9IChpICsgaikgJSBucl9ub2RlX2lkczsKIAkJCW5vZGVfdG9fY3B1bWFza19wdHIocG5vZGVtYXNrLCBuKTsKIAogCQkJY3B1c19jb21wbGVtZW50KCpub3Rjb3ZlcmVkLCAqY292ZXJlZCk7CkBAIC03NTI1LDcgKzc0OTUsNyBAQAogCX0KIAogI2lmZGVmIENPTkZJR19OVU1BCi0JZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKQorCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlX2lkczsgaSsrKQogCQlpbml0X251bWFfc2NoZWRfZ3JvdXBzX3Bvd2VyKHNjaGVkX2dyb3VwX25vZGVzW2ldKTsKIAogCWlmIChzZF9hbGxub2RlcykgewpAQCAtNzU2OCw4ICs3NTM4LDggQEAKIAogc3RhdGljIGNwdW1hc2tfdCAqZG9tc19jdXI7CS8qIGN1cnJlbnQgc2NoZWQgZG9tYWlucyAqLwogc3RhdGljIGludCBuZG9tc19jdXI7CQkvKiBudW1iZXIgb2Ygc2NoZWQgZG9tYWlucyBpbiAnZG9tc19jdXInICovCi1zdGF0aWMgc3RydWN0IHNjaGVkX2RvbWFpbl9hdHRyICpkYXR0cl9jdXI7CS8qIGF0dHJpYnVlcyBvZiBjdXN0b20gZG9tYWlucwotCQkJCQkJICAgaW4gJ2RvbXNfY3VyJyAqLworc3RhdGljIHN0cnVjdCBzY2hlZF9kb21haW5fYXR0ciAqZGF0dHJfY3VyOworCQkJCS8qIGF0dHJpYnVlcyBvZiBjdXN0b20gZG9tYWlucyBpbiAnZG9tc19jdXInICovCiAKIC8qCiAgKiBTcGVjaWFsIGNhc2U6IElmIGEga21hbGxvYyBvZiBhIGRvbXNfY3VyIHBhcnRpdGlvbiAoYXJyYXkgb2YKQEAgLTc1ODMsNiArNzU1MywxOCBAQAogfQogCiAvKgorICogRnJlZSBjdXJyZW50IGRvbWFpbiBtYXNrcy4KKyAqIENhbGxlZCBhZnRlciBhbGwgY3B1cyBhcmUgYXR0YWNoZWQgdG8gTlVMTCBkb21haW4uCisgKi8KK3N0YXRpYyB2b2lkIGZyZWVfc2NoZWRfZG9tYWlucyh2b2lkKQoreworCW5kb21zX2N1ciA9IDA7CisJaWYgKGRvbXNfY3VyICE9ICZmYWxsYmFja19kb21zKQorCQlrZnJlZShkb21zX2N1cik7CisJZG9tc19jdXIgPSAmZmFsbGJhY2tfZG9tczsKK30KKworLyoKICAqIFNldCB1cCBzY2hlZHVsZXIgZG9tYWlucyBhbmQgZ3JvdXBzLiBDYWxsZXJzIG11c3QgaG9sZCB0aGUgaG90cGx1ZyBsb2NrLgogICogRm9yIG5vdyB0aGlzIGp1c3QgZXhjbHVkZXMgaXNvbGF0ZWQgY3B1cywgYnV0IGNvdWxkIGJlIHVzZWQgdG8KICAqIGV4Y2x1ZGUgb3RoZXIgc3BlY2lhbCBjYXNlcyBpbiB0aGUgZnV0dXJlLgpAQCAtNzcyOSw2ICs3NzExLDcgQEAKIAlnZXRfb25saW5lX2NwdXMoKTsKIAltdXRleF9sb2NrKCZzY2hlZF9kb21haW5zX211dGV4KTsKIAlkZXRhY2hfZGVzdHJveV9kb21haW5zKCZjcHVfb25saW5lX21hcCk7CisJZnJlZV9zY2hlZF9kb21haW5zKCk7CiAJZXJyID0gYXJjaF9pbml0X3NjaGVkX2RvbWFpbnMoJmNwdV9vbmxpbmVfbWFwKTsKIAltdXRleF91bmxvY2soJnNjaGVkX2RvbWFpbnNfbXV0ZXgpOwogCXB1dF9vbmxpbmVfY3B1cygpOwpAQCAtNzc5Nyw3ICs3NzgwLDcgQEAKICNlbmRpZgogCXJldHVybiBlcnI7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfU0NIRURfTUMgfHwgQ09ORklHX1NDSEVEX1NNVCAqLwogCiAvKgogICogRm9yY2UgYSByZWluaXRpYWxpemF0aW9uIG9mIHRoZSBzY2hlZCBkb21haW5zIGhpZXJhcmNoeS4gVGhlIGRvbWFpbnMKQEAgLTc4MDgsMjAgKzc3OTEsMjggQEAKIHN0YXRpYyBpbnQgdXBkYXRlX3NjaGVkX2RvbWFpbnMoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuZmIsCiAJCQkJdW5zaWduZWQgbG9uZyBhY3Rpb24sIHZvaWQgKmhjcHUpCiB7CisJaW50IGNwdSA9IChpbnQpKGxvbmcpaGNwdTsKKwogCXN3aXRjaCAoYWN0aW9uKSB7Ci0JY2FzZSBDUFVfVVBfUFJFUEFSRToKLQljYXNlIENQVV9VUF9QUkVQQVJFX0ZST1pFTjoKIAljYXNlIENQVV9ET1dOX1BSRVBBUkU6CiAJY2FzZSBDUFVfRE9XTl9QUkVQQVJFX0ZST1pFTjoKKwkJZGlzYWJsZV9ydW50aW1lKGNwdV9ycShjcHUpKTsKKwkJLyogZmFsbC10aHJvdWdoICovCisJY2FzZSBDUFVfVVBfUFJFUEFSRToKKwljYXNlIENQVV9VUF9QUkVQQVJFX0ZST1pFTjoKIAkJZGV0YWNoX2Rlc3Ryb3lfZG9tYWlucygmY3B1X29ubGluZV9tYXApOworCQlmcmVlX3NjaGVkX2RvbWFpbnMoKTsKIAkJcmV0dXJuIE5PVElGWV9PSzsKIAotCWNhc2UgQ1BVX1VQX0NBTkNFTEVEOgotCWNhc2UgQ1BVX1VQX0NBTkNFTEVEX0ZST1pFTjoKKwogCWNhc2UgQ1BVX0RPV05fRkFJTEVEOgogCWNhc2UgQ1BVX0RPV05fRkFJTEVEX0ZST1pFTjoKIAljYXNlIENQVV9PTkxJTkU6CiAJY2FzZSBDUFVfT05MSU5FX0ZST1pFTjoKKwkJZW5hYmxlX3J1bnRpbWUoY3B1X3JxKGNwdSkpOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIENQVV9VUF9DQU5DRUxFRDoKKwljYXNlIENQVV9VUF9DQU5DRUxFRF9GUk9aRU46CiAJY2FzZSBDUFVfREVBRDoKIAljYXNlIENQVV9ERUFEX0ZST1pFTjoKIAkJLyoKQEAgLTc4MzIsOCArNzgyMywxNiBAQAogCQlyZXR1cm4gTk9USUZZX0RPTkU7CiAJfQogCisjaWZuZGVmIENPTkZJR19DUFVTRVRTCisJLyoKKwkgKiBDcmVhdGUgZGVmYXVsdCBkb21haW4gcGFydGl0aW9uaW5nIGlmIGNwdXNldHMgYXJlIGRpc2FibGVkLgorCSAqIE90aGVyd2lzZSB3ZSBsZXQgY3B1c2V0cyByZWJ1aWxkIHRoZSBkb21haW5zIGJhc2VkIG9uIHRoZQorCSAqIGN1cnJlbnQgc2V0dXAuCisJICovCisKIAkvKiBUaGUgaG90cGx1ZyBsb2NrIGlzIGFscmVhZHkgaGVsZCBieSBjcHVfdXAvY3B1X2Rvd24gKi8KIAlhcmNoX2luaXRfc2NoZWRfZG9tYWlucygmY3B1X29ubGluZV9tYXApOworI2VuZGlmCiAKIAlyZXR1cm4gTk9USUZZX09LOwogfQpAQCAtNzk3Myw3ICs3OTcyLDYgQEAKIAllbHNlCiAJCXJ0X3NlLT5ydF9ycSA9IHBhcmVudC0+bXlfcTsKIAotCXJ0X3NlLT5ydF9ycSA9ICZycS0+cnQ7CiAJcnRfc2UtPm15X3EgPSBydF9ycTsKIAlydF9zZS0+cGFyZW50ID0gcGFyZW50OwogCUlOSVRfTElTVF9IRUFEKCZydF9zZS0+cnVuX2xpc3QpOwpAQCAtODAxNCw4ICs4MDEyLDggQEAKIAogCQlyb290X3Rhc2tfZ3JvdXAuY2ZzX3JxID0gKHN0cnVjdCBjZnNfcnEgKiopcHRyOwogCQlwdHIgKz0gbnJfY3B1X2lkcyAqIHNpemVvZih2b2lkICoqKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogI2lmZGVmIENPTkZJR19SVF9HUk9VUF9TQ0hFRAogCQlpbml0X3Rhc2tfZ3JvdXAucnRfc2UgPSAoc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqKilwdHI7CiAJCXB0ciArPSBucl9jcHVfaWRzICogc2l6ZW9mKHZvaWQgKiopOwpAQCAtODAyOSwxMiArODAyNywxMSBAQAogCiAJCXJvb3RfdGFza19ncm91cC5ydF9ycSA9IChzdHJ1Y3QgcnRfcnEgKiopcHRyOwogCQlwdHIgKz0gbnJfY3B1X2lkcyAqIHNpemVvZih2b2lkICoqKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAl9CiAKICNpZmRlZiBDT05GSUdfU01QCi0JaW5pdF9hZ2dyZWdhdGUoKTsKIAlpbml0X2RlZnJvb3Rkb21haW4oKTsKICNlbmRpZgogCkBAIC04MDQ3LDggKzgwNDQsOCBAQAogI2lmZGVmIENPTkZJR19VU0VSX1NDSEVECiAJaW5pdF9ydF9iYW5kd2lkdGgoJnJvb3RfdGFza19ncm91cC5ydF9iYW5kd2lkdGgsCiAJCQlnbG9iYWxfcnRfcGVyaW9kKCksIFJVTlRJTUVfSU5GKTsKLSNlbmRpZgotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1VTRVJfU0NIRUQgKi8KKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19HUk9VUF9TQ0hFRAogCWxpc3RfYWRkKCZpbml0X3Rhc2tfZ3JvdXAubGlzdCwgJnRhc2tfZ3JvdXBzKTsKQEAgLTgwNTgsOCArODA1NSw4IEBACiAJSU5JVF9MSVNUX0hFQUQoJnJvb3RfdGFza19ncm91cC5jaGlsZHJlbik7CiAJaW5pdF90YXNrX2dyb3VwLnBhcmVudCA9ICZyb290X3Rhc2tfZ3JvdXA7CiAJbGlzdF9hZGQoJmluaXRfdGFza19ncm91cC5zaWJsaW5ncywgJnJvb3RfdGFza19ncm91cC5jaGlsZHJlbik7Ci0jZW5kaWYKLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19VU0VSX1NDSEVEICovCisjZW5kaWYgLyogQ09ORklHX0dST1VQX1NDSEVEICovCiAKIAlmb3JfZWFjaF9wb3NzaWJsZV9jcHUoaSkgewogCQlzdHJ1Y3QgcnEgKnJxOwpAQCAtODEzOSw2ICs4MTM2LDcgQEAKIAkJcnEtPm5leHRfYmFsYW5jZSA9IGppZmZpZXM7CiAJCXJxLT5wdXNoX2NwdSA9IDA7CiAJCXJxLT5jcHUgPSBpOworCQlycS0+b25saW5lID0gMDsKIAkJcnEtPm1pZ3JhdGlvbl90aHJlYWQgPSBOVUxMOwogCQlJTklUX0xJU1RfSEVBRCgmcnEtPm1pZ3JhdGlvbl9xdWV1ZSk7CiAJCXJxX2F0dGFjaF9yb290KHJxLCAmZGVmX3Jvb3RfZG9tYWluKTsKQEAgLTgxNTQsNyArODE1Miw3IEBACiAjZW5kaWYKIAogI2lmZGVmIENPTkZJR19TTVAKLQlvcGVuX3NvZnRpcnEoU0NIRURfU09GVElSUSwgcnVuX3JlYmFsYW5jZV9kb21haW5zLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoU0NIRURfU09GVElSUSwgcnVuX3JlYmFsYW5jZV9kb21haW5zKTsKICNlbmRpZgogCiAjaWZkZWYgQ09ORklHX1JUX01VVEVYRVMKQEAgLTgzNzgsNyArODM3Niw3IEBACiB7CiAJbGlzdF9kZWxfcmN1KCZ0Zy0+Y2ZzX3JxW2NwdV0tPmxlYWZfY2ZzX3JxX2xpc3QpOwogfQotI2Vsc2UKKyNlbHNlIC8qICFDT05GR19GQUlSX0dST1VQX1NDSEVEICovCiBzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9mYWlyX3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKIHsKIH0KQEAgLTgzOTYsNyArODM5NCw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgdW5yZWdpc3Rlcl9mYWlyX3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSkKIHsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19GQUlSX0dST1VQX1NDSEVEICovCiAKICNpZmRlZiBDT05GSUdfUlRfR1JPVVBfU0NIRUQKIHN0YXRpYyB2b2lkIGZyZWVfcnRfc2NoZWRfZ3JvdXAoc3RydWN0IHRhc2tfZ3JvdXAgKnRnKQpAQCAtODQ2Nyw3ICs4NDY1LDcgQEAKIHsKIAlsaXN0X2RlbF9yY3UoJnRnLT5ydF9ycVtjcHVdLT5sZWFmX3J0X3JxX2xpc3QpOwogfQotI2Vsc2UKKyNlbHNlIC8qICFDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlX3J0X3NjaGVkX2dyb3VwKHN0cnVjdCB0YXNrX2dyb3VwICp0ZykKIHsKIH0KQEAgLTg0ODUsNyArODQ4Myw3IEBACiBzdGF0aWMgaW5saW5lIHZvaWQgdW5yZWdpc3Rlcl9ydF9zY2hlZF9ncm91cChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUpCiB7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfUlRfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19HUk9VUF9TQ0hFRAogc3RhdGljIHZvaWQgZnJlZV9zY2hlZF9ncm91cChzdHJ1Y3QgdGFza19ncm91cCAqdGcpCkBAIC04NTk2LDcgKzg1OTQsNyBAQAogCiAJdGFza19ycV91bmxvY2socnEsICZmbGFncyk7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfR1JPVVBfU0NIRUQgKi8KIAogI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECiBzdGF0aWMgdm9pZCBfX3NldF9zZV9zaGFyZXMoc3RydWN0IHNjaGVkX2VudGl0eSAqc2UsIHVuc2lnbmVkIGxvbmcgc2hhcmVzKQpAQCAtODczMSw3ICs4NzI5LDcgQEAKIAl9CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlyZXR1cm4gdG90YWwgKyB0b19yYXRpbyhwZXJpb2QsIHJ1bnRpbWUpIDwKKwlyZXR1cm4gdG90YWwgKyB0b19yYXRpbyhwZXJpb2QsIHJ1bnRpbWUpIDw9CiAJCXRvX3JhdGlvKGt0aW1lX3RvX25zKHBhcmVudC0+cnRfYmFuZHdpZHRoLnJ0X3BlcmlvZCksCiAJCQkJcGFyZW50LT5ydF9iYW5kd2lkdGgucnRfcnVudGltZSk7CiB9CkBAIC04ODM0LDYgKzg4MzIsOSBAQAogCXJ0X3BlcmlvZCA9ICh1NjQpcnRfcGVyaW9kX3VzICogTlNFQ19QRVJfVVNFQzsKIAlydF9ydW50aW1lID0gdGctPnJ0X2JhbmR3aWR0aC5ydF9ydW50aW1lOwogCisJaWYgKHJ0X3BlcmlvZCA9PSAwKQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCXJldHVybiB0Z19zZXRfYmFuZHdpZHRoKHRnLCBydF9wZXJpb2QsIHJ0X3J1bnRpbWUpOwogfQogCkBAIC04ODQ4LDE2ICs4ODQ5LDIxIEBACiAKIHN0YXRpYyBpbnQgc2NoZWRfcnRfZ2xvYmFsX2NvbnN0cmFpbnRzKHZvaWQpCiB7CisJc3RydWN0IHRhc2tfZ3JvdXAgKnRnID0gJnJvb3RfdGFza19ncm91cDsKKwl1NjQgcnRfcnVudGltZSwgcnRfcGVyaW9kOwogCWludCByZXQgPSAwOwogCisJcnRfcGVyaW9kID0ga3RpbWVfdG9fbnModGctPnJ0X2JhbmR3aWR0aC5ydF9wZXJpb2QpOworCXJ0X3J1bnRpbWUgPSB0Zy0+cnRfYmFuZHdpZHRoLnJ0X3J1bnRpbWU7CisKIAltdXRleF9sb2NrKCZydF9jb25zdHJhaW50c19tdXRleCk7Ci0JaWYgKCFfX3J0X3NjaGVkdWxhYmxlKE5VTEwsIDEsIDApKQorCWlmICghX19ydF9zY2hlZHVsYWJsZSh0ZywgcnRfcGVyaW9kLCBydF9ydW50aW1lKSkKIAkJcmV0ID0gLUVJTlZBTDsKIAltdXRleF91bmxvY2soJnJ0X2NvbnN0cmFpbnRzX211dGV4KTsKIAogCXJldHVybiByZXQ7CiB9Ci0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogc3RhdGljIGludCBzY2hlZF9ydF9nbG9iYWxfY29uc3RyYWludHModm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtODg3NSw3ICs4ODgxLDcgQEAKIAogCXJldHVybiAwOwogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1JUX0dST1VQX1NDSEVEICovCiAKIGludCBzY2hlZF9ydF9oYW5kbGVyKHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJCXN0cnVjdCBmaWxlICpmaWxwLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCkBAIC04OTgzLDcgKzg5ODksNyBAQAogCiAJcmV0dXJuICh1NjQpIHRnLT5zaGFyZXM7CiB9Ci0jZW5kaWYKKyNlbmRpZiAvKiBDT05GSUdfRkFJUl9HUk9VUF9TQ0hFRCAqLwogCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECiBzdGF0aWMgaW50IGNwdV9ydF9ydW50aW1lX3dyaXRlKHN0cnVjdCBjZ3JvdXAgKmNncnAsIHN0cnVjdCBjZnR5cGUgKmNmdCwKQEAgLTkwMDcsNyArOTAxMyw3IEBACiB7CiAJcmV0dXJuIHNjaGVkX2dyb3VwX3J0X3BlcmlvZChjZ3JvdXBfdGcoY2dycCkpOwogfQotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1JUX0dST1VQX1NDSEVEICovCiAKIHN0YXRpYyBzdHJ1Y3QgY2Z0eXBlIGNwdV9maWxlc1tdID0gewogI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfY2xvY2suYyBiL2tlcm5lbC9zY2hlZF9jbG9jay5jCmluZGV4IDljNTk3ZTMuLjIyZWQ1NWQgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9jbG9jay5jCisrKyBiL2tlcm5lbC9zY2hlZF9jbG9jay5jCkBAIC0zLDYgKzMsOSBAQAogICoKICAqICBDb3B5cmlnaHQgKEMpIDIwMDggUmVkIEhhdCwgSW5jLiwgUGV0ZXIgWmlqbHN0cmEgPHB6aWpsc3RyQHJlZGhhdC5jb20+CiAgKgorICogIFVwZGF0ZXMgYW5kIGVuaGFuY2VtZW50czoKKyAqICAgIENvcHlyaWdodCAoQykgMjAwOCBSZWQgSGF0LCBJbmMuIFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICoKICAqIEJhc2VkIG9uIGNvZGUgYnk6CiAgKiAgIEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgogICogICBHdWlsbGF1bWUgQ2hhemFyYWluIDxndWljaGF6QGdtYWlsLmNvbT4KQEAgLTMyLDYgKzM1LDExIEBACiAKICNpZmRlZiBDT05GSUdfSEFWRV9VTlNUQUJMRV9TQ0hFRF9DTE9DSwogCisjZGVmaW5lIE1VTFRJX1NISUZUIDE1CisvKiBNYXggaXMgZG91YmxlLCBNaW4gaXMgMS8yICovCisjZGVmaW5lIE1BWF9NVUxUSSAoMkxMIDw8IE1VTFRJX1NISUZUKQorI2RlZmluZSBNSU5fTVVMVEkgKDFMTCA8PCAoTVVMVElfU0hJRlQtMSkpCisKIHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhIHsKIAkvKgogCSAqIFJhdyBzcGlubG9jayAtIHRoaXMgaXMgYSBzcGVjaWFsIGNhc2U6IHRoaXMgbWlnaHQgYmUgY2FsbGVkCkBAIC00MCwxMSArNDgsMTUgQEAKIAkgKi8KIAlyYXdfc3BpbmxvY2tfdAkJbG9jazsKIAotCXVuc2lnbmVkIGxvbmcJCXByZXZfamlmZmllczsKKwl1bnNpZ25lZCBsb25nCQl0aWNrX2ppZmZpZXM7CiAJdTY0CQkJcHJldl9yYXc7CiAJdTY0CQkJdGlja19yYXc7CiAJdTY0CQkJdGlja19ndG9kOwogCXU2NAkJCWNsb2NrOworCXM2NAkJCW11bHRpOworI2lmZGVmIENPTkZJR19OT19IWgorCWludAkJCWNoZWNrX21heDsKKyNlbmRpZgogfTsKIAogc3RhdGljIERFRklORV9QRVJfQ1BVX1NIQVJFRF9BTElHTkVEKHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhLCBzY2hlZF9jbG9ja19kYXRhKTsKQEAgLTU5LDQ5ICs3MSwxMDMgQEAKIAlyZXR1cm4gJnBlcl9jcHUoc2NoZWRfY2xvY2tfZGF0YSwgY3B1KTsKIH0KIAorc3RhdGljIF9fcmVhZF9tb3N0bHkgaW50IHNjaGVkX2Nsb2NrX3J1bm5pbmc7CisKIHZvaWQgc2NoZWRfY2xvY2tfaW5pdCh2b2lkKQogewogCXU2NCBrdGltZV9ub3cgPSBrdGltZV90b19ucyhrdGltZV9nZXQoKSk7Ci0JdTY0IG5vdyA9IDA7CisJdW5zaWduZWQgbG9uZyBub3dfamlmZmllcyA9IGppZmZpZXM7CiAJaW50IGNwdTsKIAogCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKIAkJc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCA9IGNwdV9zZGMoY3B1KTsKIAogCQlzY2QtPmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOwotCQlzY2QtPnByZXZfamlmZmllcyA9IGppZmZpZXM7Ci0JCXNjZC0+cHJldl9yYXcgPSBub3c7Ci0JCXNjZC0+dGlja19yYXcgPSBub3c7CisJCXNjZC0+dGlja19qaWZmaWVzID0gbm93X2ppZmZpZXM7CisJCXNjZC0+cHJldl9yYXcgPSAwOworCQlzY2QtPnRpY2tfcmF3ID0gMDsKIAkJc2NkLT50aWNrX2d0b2QgPSBrdGltZV9ub3c7CiAJCXNjZC0+Y2xvY2sgPSBrdGltZV9ub3c7CisJCXNjZC0+bXVsdGkgPSAxIDw8IE1VTFRJX1NISUZUOworI2lmZGVmIENPTkZJR19OT19IWgorCQlzY2QtPmNoZWNrX21heCA9IDE7CisjZW5kaWYKIAl9CisKKwlzY2hlZF9jbG9ja19ydW5uaW5nID0gMTsKIH0KIAorI2lmZGVmIENPTkZJR19OT19IWgorLyoKKyAqIFRoZSBkeW5hbWljIHRpY2tzIG1ha2VzIHRoZSBkZWx0YSBqaWZmaWVzIGluYWNjdXJhdGUuIFRoaXMKKyAqIHByZXZlbnRzIHVzIGZyb20gY2hlY2tpbmcgdGhlIG1heGltdW0gdGltZSB1cGRhdGUuCisgKiBEaXNhYmxlIHRoZSBtYXhpbXVtIGNoZWNrIGR1cmluZyBzdG9wcGVkIHRpY2tzLgorICovCit2b2lkIHNjaGVkX2Nsb2NrX3RpY2tfc3RvcChpbnQgY3B1KQoreworCXN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QgPSBjcHVfc2RjKGNwdSk7CisKKwlzY2QtPmNoZWNrX21heCA9IDA7Cit9CisKK3ZvaWQgc2NoZWRfY2xvY2tfdGlja19zdGFydChpbnQgY3B1KQoreworCXN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QgPSBjcHVfc2RjKGNwdSk7CisKKwlzY2QtPmNoZWNrX21heCA9IDE7Cit9CisKK3N0YXRpYyBpbnQgY2hlY2tfbWF4KHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QpCit7CisJcmV0dXJuIHNjZC0+Y2hlY2tfbWF4OworfQorI2Vsc2UKK3N0YXRpYyBpbnQgY2hlY2tfbWF4KHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QpCit7CisJcmV0dXJuIDE7Cit9CisjZW5kaWYgLyogQ09ORklHX05PX0haICovCisKIC8qCiAgKiB1cGRhdGUgdGhlIHBlcmNwdSBzY2QgZnJvbSB0aGUgcmF3IEBub3cgdmFsdWUKICAqCiAgKiAgLSBmaWx0ZXIgb3V0IGJhY2t3YXJkIG1vdGlvbgogICogIC0gdXNlIGppZmZpZXMgdG8gZ2VuZXJhdGUgYSBtaW4sbWF4IHdpbmRvdyB0byBjbGlwIHRoZSByYXcgdmFsdWVzCiAgKi8KLXN0YXRpYyB2b2lkIF9fdXBkYXRlX3NjaGVkX2Nsb2NrKHN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QsIHU2NCBub3cpCitzdGF0aWMgdm9pZCBfX3VwZGF0ZV9zY2hlZF9jbG9jayhzdHJ1Y3Qgc2NoZWRfY2xvY2tfZGF0YSAqc2NkLCB1NjQgbm93LCB1NjQgKnRpbWUpCiB7CiAJdW5zaWduZWQgbG9uZyBub3dfamlmZmllcyA9IGppZmZpZXM7Ci0JbG9uZyBkZWx0YV9qaWZmaWVzID0gbm93X2ppZmZpZXMgLSBzY2QtPnByZXZfamlmZmllczsKKwlsb25nIGRlbHRhX2ppZmZpZXMgPSBub3dfamlmZmllcyAtIHNjZC0+dGlja19qaWZmaWVzOwogCXU2NCBjbG9jayA9IHNjZC0+Y2xvY2s7CiAJdTY0IG1pbl9jbG9jaywgbWF4X2Nsb2NrOwogCXM2NCBkZWx0YSA9IG5vdyAtIHNjZC0+cHJldl9yYXc7CiAKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7Ci0JbWluX2Nsb2NrID0gc2NkLT50aWNrX2d0b2QgKyBkZWx0YV9qaWZmaWVzICogVElDS19OU0VDOworCisJLyoKKwkgKiBBdCBzY2hlZHVsZSB0aWNrIHRoZSBjbG9jayBjYW4gYmUganVzdCB1bmRlciB0aGUgZ3RvZC4gV2UgZG9uJ3QKKwkgKiB3YW50IHRvIHB1c2ggaXQgdG9vIHByZW1hdHVyZWx5LgorCSAqLworCW1pbl9jbG9jayA9IHNjZC0+dGlja19ndG9kICsgKGRlbHRhX2ppZmZpZXMgKiBUSUNLX05TRUMpOworCWlmIChtaW5fY2xvY2sgPiBUSUNLX05TRUMpCisJCW1pbl9jbG9jayAtPSBUSUNLX05TRUMgLyAyOwogCiAJaWYgKHVubGlrZWx5KGRlbHRhIDwgMCkpIHsKIAkJY2xvY2srKzsKIAkJZ290byBvdXQ7CiAJfQogCi0JbWF4X2Nsb2NrID0gbWluX2Nsb2NrICsgVElDS19OU0VDOworCS8qCisJICogVGhlIGNsb2NrIG11c3Qgc3RheSB3aXRoaW4gYSBqaWZmaWUgb2YgdGhlIGd0b2QuCisJICogQnV0IHNpbmNlIHdlIG1heSBiZSBhdCB0aGUgc3RhcnQgb2YgYSBqaWZmeSBvciB0aGUgZW5kIG9mIG9uZQorCSAqIHdlIGFkZCBhbm90aGVyIGppZmZ5IGJ1ZmZlci4KKwkgKi8KKwltYXhfY2xvY2sgPSBzY2QtPnRpY2tfZ3RvZCArICgyICsgZGVsdGFfamlmZmllcykgKiBUSUNLX05TRUM7CiAKLQlpZiAodW5saWtlbHkoY2xvY2sgKyBkZWx0YSA+IG1heF9jbG9jaykpIHsKKwlkZWx0YSAqPSBzY2QtPm11bHRpOworCWRlbHRhID4+PSBNVUxUSV9TSElGVDsKKworCWlmICh1bmxpa2VseShjbG9jayArIGRlbHRhID4gbWF4X2Nsb2NrKSAmJiBjaGVja19tYXgoc2NkKSkgewogCQlpZiAoY2xvY2sgPCBtYXhfY2xvY2spCiAJCQljbG9jayA9IG1heF9jbG9jazsKIAkJZWxzZQpAQCAtMTE0LDkgKzE4MCwxMiBAQAogCWlmICh1bmxpa2VseShjbG9jayA8IG1pbl9jbG9jaykpCiAJCWNsb2NrID0gbWluX2Nsb2NrOwogCi0Jc2NkLT5wcmV2X3JhdyA9IG5vdzsKLQlzY2QtPnByZXZfamlmZmllcyA9IG5vd19qaWZmaWVzOwotCXNjZC0+Y2xvY2sgPSBjbG9jazsKKwlpZiAodGltZSkKKwkJKnRpbWUgPSBjbG9jazsKKwllbHNlIHsKKwkJc2NkLT5wcmV2X3JhdyA9IG5vdzsKKwkJc2NkLT5jbG9jayA9IGNsb2NrOworCX0KIH0KIAogc3RhdGljIHZvaWQgbG9ja19kb3VibGVfY2xvY2soc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKmRhdGExLApAQCAtMTM2LDYgKzIwNSw5IEBACiAJc3RydWN0IHNjaGVkX2Nsb2NrX2RhdGEgKnNjZCA9IGNwdV9zZGMoY3B1KTsKIAl1NjQgbm93LCBjbG9jazsKIAorCWlmICh1bmxpa2VseSghc2NoZWRfY2xvY2tfcnVubmluZykpCisJCXJldHVybiAwdWxsOworCiAJV0FSTl9PTl9PTkNFKCFpcnFzX2Rpc2FibGVkKCkpOwogCW5vdyA9IHNjaGVkX2Nsb2NrKCk7CiAKQEAgLTE1Myw0MSArMjI1LDY0IEBACiAJCW5vdyAtPSBteV9zY2QtPnRpY2tfcmF3OwogCQlub3cgKz0gc2NkLT50aWNrX3JhdzsKIAotCQlub3cgLT0gbXlfc2NkLT50aWNrX2d0b2Q7Ci0JCW5vdyArPSBzY2QtPnRpY2tfZ3RvZDsKKwkJbm93ICs9IG15X3NjZC0+dGlja19ndG9kOworCQlub3cgLT0gc2NkLT50aWNrX2d0b2Q7CiAKIAkJX19yYXdfc3Bpbl91bmxvY2soJm15X3NjZC0+bG9jayk7CisKKwkJX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3csICZjbG9jayk7CisKKwkJX19yYXdfc3Bpbl91bmxvY2soJnNjZC0+bG9jayk7CisKIAl9IGVsc2UgewogCQlfX3Jhd19zcGluX2xvY2soJnNjZC0+bG9jayk7CisJCV9fdXBkYXRlX3NjaGVkX2Nsb2NrKHNjZCwgbm93LCBOVUxMKTsKKwkJY2xvY2sgPSBzY2QtPmNsb2NrOworCQlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIAl9CiAKLQlfX3VwZGF0ZV9zY2hlZF9jbG9jayhzY2QsIG5vdyk7Ci0JY2xvY2sgPSBzY2QtPmNsb2NrOwotCi0JX19yYXdfc3Bpbl91bmxvY2soJnNjZC0+bG9jayk7Ci0KIAlyZXR1cm4gY2xvY2s7CiB9CiAKIHZvaWQgc2NoZWRfY2xvY2tfdGljayh2b2lkKQogewogCXN0cnVjdCBzY2hlZF9jbG9ja19kYXRhICpzY2QgPSB0aGlzX3NjZCgpOworCXVuc2lnbmVkIGxvbmcgbm93X2ppZmZpZXMgPSBqaWZmaWVzOworCXM2NCBtdWx0LCBkZWx0YV9ndG9kLCBkZWx0YV9yYXc7CiAJdTY0IG5vdywgbm93X2d0b2Q7CiAKKwlpZiAodW5saWtlbHkoIXNjaGVkX2Nsb2NrX3J1bm5pbmcpKQorCQlyZXR1cm47CisKIAlXQVJOX09OX09OQ0UoIWlycXNfZGlzYWJsZWQoKSk7CiAKLQlub3cgPSBzY2hlZF9jbG9jaygpOwogCW5vd19ndG9kID0ga3RpbWVfdG9fbnMoa3RpbWVfZ2V0KCkpOworCW5vdyA9IHNjaGVkX2Nsb2NrKCk7CiAKIAlfX3Jhd19zcGluX2xvY2soJnNjZC0+bG9jayk7Ci0JX191cGRhdGVfc2NoZWRfY2xvY2soc2NkLCBub3cpOworCV9fdXBkYXRlX3NjaGVkX2Nsb2NrKHNjZCwgbm93LCBOVUxMKTsKIAkvKgogCSAqIHVwZGF0ZSB0aWNrX2d0b2QgYWZ0ZXIgX191cGRhdGVfc2NoZWRfY2xvY2soKSBiZWNhdXNlIHRoYXQgd2lsbAogCSAqIGFscmVhZHkgb2JzZXJ2ZSAxIG5ldyBqaWZmeTsgYWRkaW5nIGEgbmV3IHRpY2tfZ3RvZCB0byB0aGF0IHdvdWxkCiAJICogaW5jcmVhc2UgdGhlIGNsb2NrIDIgamlmZmllcy4KIAkgKi8KKwlkZWx0YV9ndG9kID0gbm93X2d0b2QgLSBzY2QtPnRpY2tfZ3RvZDsKKwlkZWx0YV9yYXcgPSBub3cgLSBzY2QtPnRpY2tfcmF3OworCisJaWYgKChsb25nKWRlbHRhX3JhdyA+IDApIHsKKwkJbXVsdCA9IGRlbHRhX2d0b2QgPDwgTVVMVElfU0hJRlQ7CisJCWRvX2RpdihtdWx0LCBkZWx0YV9yYXcpOworCQlzY2QtPm11bHRpID0gbXVsdDsKKwkJaWYgKHNjZC0+bXVsdGkgPiBNQVhfTVVMVEkpCisJCQlzY2QtPm11bHRpID0gTUFYX01VTFRJOworCQllbHNlIGlmIChzY2QtPm11bHRpIDwgTUlOX01VTFRJKQorCQkJc2NkLT5tdWx0aSA9IE1JTl9NVUxUSTsKKwl9IGVsc2UKKwkJc2NkLT5tdWx0aSA9IDEgPDwgTVVMVElfU0hJRlQ7CisKIAlzY2QtPnRpY2tfcmF3ID0gbm93OwogCXNjZC0+dGlja19ndG9kID0gbm93X2d0b2Q7CisJc2NkLT50aWNrX2ppZmZpZXMgPSBub3dfamlmZmllczsKIAlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIH0KIApAQCAtMjE3LDYgKzMxMiw3IEBACiAJX19yYXdfc3Bpbl9sb2NrKCZzY2QtPmxvY2spOwogCXNjZC0+cHJldl9yYXcgPSBub3c7CiAJc2NkLT5jbG9jayArPSBkZWx0YV9uczsKKwlzY2QtPm11bHRpID0gMSA8PCBNVUxUSV9TSElGVDsKIAlfX3Jhd19zcGluX3VubG9jaygmc2NkLT5sb2NrKTsKIAogCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKQEAgLTIzNCwzICszMzAsMTYgQEAKIHsKIAlyZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZylqaWZmaWVzICogKE5TRUNfUEVSX1NFQyAvIEhaKTsKIH0KKwordW5zaWduZWQgbG9uZyBsb25nIGNwdV9jbG9jayhpbnQgY3B1KQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBjbG9jazsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNsb2NrID0gc2NoZWRfY2xvY2tfY3B1KGNwdSk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJcmV0dXJuIGNsb2NrOworfQorRVhQT1JUX1NZTUJPTF9HUEwoY3B1X2Nsb2NrKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9jcHVwcmkuYyBiL2tlcm5lbC9zY2hlZF9jcHVwcmkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjE1NGZlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3NjaGVkX2NwdXByaS5jCkBAIC0wLDAgKzEsMTc0IEBACisvKgorICogIGtlcm5lbC9zY2hlZF9jcHVwcmkuYworICoKKyAqICBDUFUgcHJpb3JpdHkgbWFuYWdlbWVudAorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBOb3ZlbGwKKyAqCisgKiAgQXV0aG9yOiBHcmVnb3J5IEhhc2tpbnMgPGdoYXNraW5zQG5vdmVsbC5jb20+CisgKgorICogIFRoaXMgY29kZSB0cmFja3MgdGhlIHByaW9yaXR5IG9mIGVhY2ggQ1BVIHNvIHRoYXQgZ2xvYmFsIG1pZ3JhdGlvbgorICogIGRlY2lzaW9ucyBhcmUgZWFzeSB0byBjYWxjdWxhdGUuICBFYWNoIENQVSBjYW4gYmUgaW4gYSBzdGF0ZSBhcyBmb2xsb3dzOgorICoKKyAqICAgICAgICAgICAgICAgICAoSU5WQUxJRCksIElETEUsIE5PUk1BTCwgUlQxLCAuLi4gUlQ5OQorICoKKyAqICBnb2luZyBmcm9tIHRoZSBsb3dlc3QgcHJpb3JpdHkgdG8gdGhlIGhpZ2hlc3QuICBDUFVzIGluIHRoZSBJTlZBTElEIHN0YXRlCisgKiAgYXJlIG5vdCBlbGlnaWJsZSBmb3Igcm91dGluZy4gIFRoZSBzeXN0ZW0gbWFpbnRhaW5zIHRoaXMgc3RhdGUgd2l0aAorICogIGEgMiBkaW1lbnNpb25hbCBiaXRtYXAgKHRoZSBmaXJzdCBmb3IgcHJpb3JpdHkgY2xhc3MsIHRoZSBzZWNvbmQgZm9yIGNwdXMKKyAqICBpbiB0aGF0IGNsYXNzKS4gIFRoZXJlZm9yZSBhIHR5cGljYWwgYXBwbGljYXRpb24gd2l0aG91dCBhZmZpbml0eQorICogIHJlc3RyaWN0aW9ucyBjYW4gZmluZCBhIHN1aXRhYmxlIENQVSB3aXRoIE8oMSkgY29tcGxleGl0eSAoZS5nLiB0d28gYml0CisgKiAgc2VhcmNoZXMpLiAgRm9yIHRhc2tzIHdpdGggYWZmaW5pdHkgcmVzdHJpY3Rpb25zLCB0aGUgYWxnb3JpdGhtIGhhcyBhCisgKiAgd29yc3QgY2FzZSBjb21wbGV4aXR5IG9mIE8obWluKDEwMiwgbnJfZG9tY3B1cykpLCB0aG91Z2ggdGhlIHNjZW5hcmlvIHRoYXQKKyAqICB5aWVsZHMgdGhlIHdvcnN0IGNhc2Ugc2VhcmNoIGlzIGZhaXJseSBjb250cml2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIKKyAqICBvZiB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAic2NoZWRfY3B1cHJpLmgiCisKKy8qIENvbnZlcnQgYmV0d2VlbiBhIDE0MCBiYXNlZCB0YXNrLT5wcmlvLCBhbmQgb3VyIDEwMiBiYXNlZCBjcHVwcmkgKi8KK3N0YXRpYyBpbnQgY29udmVydF9wcmlvKGludCBwcmlvKQoreworCWludCBjcHVwcmk7CisKKwlpZiAocHJpbyA9PSBDUFVQUklfSU5WQUxJRCkKKwkJY3B1cHJpID0gQ1BVUFJJX0lOVkFMSUQ7CisJZWxzZSBpZiAocHJpbyA9PSBNQVhfUFJJTykKKwkJY3B1cHJpID0gQ1BVUFJJX0lETEU7CisJZWxzZSBpZiAocHJpbyA+PSBNQVhfUlRfUFJJTykKKwkJY3B1cHJpID0gQ1BVUFJJX05PUk1BTDsKKwllbHNlCisJCWNwdXByaSA9IE1BWF9SVF9QUklPIC0gcHJpbyArIDE7CisKKwlyZXR1cm4gY3B1cHJpOworfQorCisjZGVmaW5lIGZvcl9lYWNoX2NwdXByaV9hY3RpdmUoYXJyYXksIGlkeCkgICAgICAgICAgICAgICAgICAgIFwKKyAgZm9yIChpZHggPSBmaW5kX2ZpcnN0X2JpdChhcnJheSwgQ1BVUFJJX05SX1BSSU9SSVRJRVMpOyAgICAgXAorICAgICAgIGlkeCA8IENQVVBSSV9OUl9QUklPUklUSUVTOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgaWR4ID0gZmluZF9uZXh0X2JpdChhcnJheSwgQ1BVUFJJX05SX1BSSU9SSVRJRVMsIGlkeCsxKSkKKworLyoqCisgKiBjcHVwcmlfZmluZCAtIGZpbmQgdGhlIGJlc3QgKGxvd2VzdC1wcmkpIENQVSBpbiB0aGUgc3lzdGVtCisgKiBAY3A6IFRoZSBjcHVwcmkgY29udGV4dAorICogQHA6IFRoZSB0YXNrCisgKiBAbG93ZXN0X21hc2s6IEEgbWFzayB0byBmaWxsIGluIHdpdGggc2VsZWN0ZWQgQ1BVcworICoKKyAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcmVjb21tZW5kZWQgQ1BVcyBhcyBjYWxjdWxhdGVkIGR1cmluZyB0aGUKKyAqIGN1cnJlbnQgaW52b2thdGlvbi4gIEJ5IHRoZSB0aW1lIHRoZSBjYWxsIHJldHVybnMsIHRoZSBDUFVzIG1heSBoYXZlIGluCisgKiBmYWN0IGNoYW5nZWQgcHJpb3JpdGllcyBhbnkgbnVtYmVyIG9mIHRpbWVzLiAgV2hpbGUgbm90IGlkZWFsLCBpdCBpcyBub3QKKyAqIGFuIGlzc3VlIG9mIGNvcnJlY3RuZXNzIHNpbmNlIHRoZSBub3JtYWwgcmViYWxhbmNlciBsb2dpYyB3aWxsIGNvcnJlY3QKKyAqIGFueSBkaXNjcmVwYW5jaWVzIGNyZWF0ZWQgYnkgcmFjaW5nIGFnYWluc3QgdGhlIHVuY2VydGFpbnR5IG9mIHRoZSBjdXJyZW50CisgKiBwcmlvcml0eSBjb25maWd1cmF0aW9uLgorICoKKyAqIFJldHVybnM6IChpbnQpYm9vbCAtIENQVXMgd2VyZSBmb3VuZAorICovCitpbnQgY3B1cHJpX2ZpbmQoc3RydWN0IGNwdXByaSAqY3AsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKKwkJY3B1bWFza190ICpsb3dlc3RfbWFzaykKK3sKKwlpbnQgICAgICAgICAgICAgICAgICBpZHggICAgICA9IDA7CisJaW50ICAgICAgICAgICAgICAgICAgdGFza19wcmkgPSBjb252ZXJ0X3ByaW8ocC0+cHJpbyk7CisKKwlmb3JfZWFjaF9jcHVwcmlfYWN0aXZlKGNwLT5wcmlfYWN0aXZlLCBpZHgpIHsKKwkJc3RydWN0IGNwdXByaV92ZWMgKnZlYyAgPSAmY3AtPnByaV90b19jcHVbaWR4XTsKKwkJY3B1bWFza190IG1hc2s7CisKKwkJaWYgKGlkeCA+PSB0YXNrX3ByaSkKKwkJCWJyZWFrOworCisJCWNwdXNfYW5kKG1hc2ssIHAtPmNwdXNfYWxsb3dlZCwgdmVjLT5tYXNrKTsKKworCQlpZiAoY3B1c19lbXB0eShtYXNrKSkKKwkJCWNvbnRpbnVlOworCisJCSpsb3dlc3RfbWFzayA9IG1hc2s7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisvKioKKyAqIGNwdXByaV9zZXQgLSB1cGRhdGUgdGhlIGNwdSBwcmlvcml0eSBzZXR0aW5nCisgKiBAY3A6IFRoZSBjcHVwcmkgY29udGV4dAorICogQGNwdTogVGhlIHRhcmdldCBjcHUKKyAqIEBwcmk6IFRoZSBwcmlvcml0eSAoSU5WQUxJRC1SVDk5KSB0byBhc3NpZ24gdG8gdGhpcyBDUFUKKyAqCisgKiBOb3RlOiBBc3N1bWVzIGNwdV9ycShjcHUpLT5sb2NrIGlzIGxvY2tlZAorICoKKyAqIFJldHVybnM6ICh2b2lkKQorICovCit2b2lkIGNwdXByaV9zZXQoc3RydWN0IGNwdXByaSAqY3AsIGludCBjcHUsIGludCBuZXdwcmkpCit7CisJaW50ICAgICAgICAgICAgICAgICAqY3VycnByaSA9ICZjcC0+Y3B1X3RvX3ByaVtjcHVdOworCWludCAgICAgICAgICAgICAgICAgIG9sZHByaSAgPSAqY3VycnByaTsKKwl1bnNpZ25lZCBsb25nICAgICAgICBmbGFnczsKKworCW5ld3ByaSA9IGNvbnZlcnRfcHJpbyhuZXdwcmkpOworCisJQlVHX09OKG5ld3ByaSA+PSBDUFVQUklfTlJfUFJJT1JJVElFUyk7CisKKwlpZiAobmV3cHJpID09IG9sZHByaSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBJZiB0aGUgY3B1IHdhcyBjdXJyZW50bHkgbWFwcGVkIHRvIGEgZGlmZmVyZW50IHZhbHVlLCB3ZQorCSAqIGZpcnN0IG5lZWQgdG8gdW5tYXAgdGhlIG9sZCB2YWx1ZQorCSAqLworCWlmIChsaWtlbHkob2xkcHJpICE9IENQVVBSSV9JTlZBTElEKSkgeworCQlzdHJ1Y3QgY3B1cHJpX3ZlYyAqdmVjICA9ICZjcC0+cHJpX3RvX2NwdVtvbGRwcmldOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKworCQl2ZWMtPmNvdW50LS07CisJCWlmICghdmVjLT5jb3VudCkKKwkJCWNsZWFyX2JpdChvbGRwcmksIGNwLT5wcmlfYWN0aXZlKTsKKwkJY3B1X2NsZWFyKGNwdSwgdmVjLT5tYXNrKTsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKwl9CisKKwlpZiAobGlrZWx5KG5ld3ByaSAhPSBDUFVQUklfSU5WQUxJRCkpIHsKKwkJc3RydWN0IGNwdXByaV92ZWMgKnZlYyA9ICZjcC0+cHJpX3RvX2NwdVtuZXdwcmldOworCisJCXNwaW5fbG9ja19pcnFzYXZlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKworCQljcHVfc2V0KGNwdSwgdmVjLT5tYXNrKTsKKwkJdmVjLT5jb3VudCsrOworCQlpZiAodmVjLT5jb3VudCA9PSAxKQorCQkJc2V0X2JpdChuZXdwcmksIGNwLT5wcmlfYWN0aXZlKTsKKworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2ZWMtPmxvY2ssIGZsYWdzKTsKKwl9CisKKwkqY3VycnByaSA9IG5ld3ByaTsKK30KKworLyoqCisgKiBjcHVwcmlfaW5pdCAtIGluaXRpYWxpemUgdGhlIGNwdXByaSBzdHJ1Y3R1cmUKKyAqIEBjcDogVGhlIGNwdXByaSBjb250ZXh0CisgKgorICogUmV0dXJuczogKHZvaWQpCisgKi8KK3ZvaWQgY3B1cHJpX2luaXQoc3RydWN0IGNwdXByaSAqY3ApCit7CisJaW50IGk7CisKKwltZW1zZXQoY3AsIDAsIHNpemVvZigqY3ApKTsKKworCWZvciAoaSA9IDA7IGkgPCBDUFVQUklfTlJfUFJJT1JJVElFUzsgaSsrKSB7CisJCXN0cnVjdCBjcHVwcmlfdmVjICp2ZWMgPSAmY3AtPnByaV90b19jcHVbaV07CisKKwkJc3Bpbl9sb2NrX2luaXQoJnZlYy0+bG9jayk7CisJCXZlYy0+Y291bnQgPSAwOworCQljcHVzX2NsZWFyKHZlYy0+bWFzayk7CisJfQorCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpCisJCWNwLT5jcHVfdG9fcHJpW2ldID0gQ1BVUFJJX0lOVkFMSUQ7Cit9CisKKwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2NwdXByaS5oIGIva2VybmVsL3NjaGVkX2NwdXByaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNTgxMWIwCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3NjaGVkX2NwdXByaS5oCkBAIC0wLDAgKzEsMzYgQEAKKyNpZm5kZWYgX0xJTlVYX0NQVVBSSV9ICisjZGVmaW5lIF9MSU5VWF9DUFVQUklfSAorCisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKworI2RlZmluZSBDUFVQUklfTlJfUFJJT1JJVElFUwkoTUFYX1JUX1BSSU8gKyAyKQorI2RlZmluZSBDUFVQUklfTlJfUFJJX1dPUkRTCUJJVFNfVE9fTE9OR1MoQ1BVUFJJX05SX1BSSU9SSVRJRVMpCisKKyNkZWZpbmUgQ1BVUFJJX0lOVkFMSUQgLTEKKyNkZWZpbmUgQ1BVUFJJX0lETEUgICAgIDAKKyNkZWZpbmUgQ1BVUFJJX05PUk1BTCAgIDEKKy8qIHZhbHVlcyAyLTEwMSBhcmUgUlQgcHJpb3JpdGllcyAwLTk5ICovCisKK3N0cnVjdCBjcHVwcmlfdmVjIHsKKwlzcGlubG9ja190IGxvY2s7CisJaW50ICAgICAgICBjb3VudDsKKwljcHVtYXNrX3QgIG1hc2s7Cit9OworCitzdHJ1Y3QgY3B1cHJpIHsKKwlzdHJ1Y3QgY3B1cHJpX3ZlYyBwcmlfdG9fY3B1W0NQVVBSSV9OUl9QUklPUklUSUVTXTsKKwlsb25nICAgICAgICAgICAgICBwcmlfYWN0aXZlW0NQVVBSSV9OUl9QUklfV09SRFNdOworCWludCAgICAgICAgICAgICAgIGNwdV90b19wcmlbTlJfQ1BVU107Cit9OworCisjaWZkZWYgQ09ORklHX1NNUAoraW50ICBjcHVwcmlfZmluZChzdHJ1Y3QgY3B1cHJpICpjcCwKKwkJIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY3B1bWFza190ICpsb3dlc3RfbWFzayk7Cit2b2lkIGNwdXByaV9zZXQoc3RydWN0IGNwdXByaSAqY3AsIGludCBjcHUsIGludCBwcmkpOwordm9pZCBjcHVwcmlfaW5pdChzdHJ1Y3QgY3B1cHJpICpjcCk7CisjZWxzZQorI2RlZmluZSBjcHVwcmlfc2V0KGNwLCBjcHUsIHByaSkgZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBjcHVwcmlfaW5pdCgpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjZW5kaWYgLyogX0xJTlVYX0NQVVBSSV9IICovCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfZGVidWcuYyBiL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCmluZGV4IDVmMDYxMTguLmJiZTZiMzEgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCisrKyBiL2tlcm5lbC9zY2hlZF9kZWJ1Zy5jCkBAIC0xMTksOSArMTE5LDcgQEAKIAlzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpsYXN0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSNpZiAhZGVmaW5lZChDT05GSUdfQ0dST1VQX1NDSEVEKSB8fCAhZGVmaW5lZChDT05GSUdfVVNFUl9TQ0hFRCkKLQlTRVFfcHJpbnRmKG0sICJcbmNmc19ycVslZF06XG4iLCBjcHUpOwotI2Vsc2UKKyNpZiBkZWZpbmVkKENPTkZJR19DR1JPVVBfU0NIRUQpICYmIGRlZmluZWQoQ09ORklHX0ZBSVJfR1JPVVBfU0NIRUQpCiAJY2hhciBwYXRoWzEyOF0gPSAiIjsKIAlzdHJ1Y3QgY2dyb3VwICpjZ3JvdXAgPSBOVUxMOwogCXN0cnVjdCB0YXNrX2dyb3VwICp0ZyA9IGNmc19ycS0+dGc7CkBAIC0xMzMsNiArMTMxLDggQEAKIAkJY2dyb3VwX3BhdGgoY2dyb3VwLCBwYXRoLCBzaXplb2YocGF0aCkpOwogCiAJU0VRX3ByaW50ZihtLCAiXG5jZnNfcnFbJWRdOiVzXG4iLCBjcHUsIHBhdGgpOworI2Vsc2UKKwlTRVFfcHJpbnRmKG0sICJcbmNmc19ycVslZF06XG4iLCBjcHUpOwogI2VuZGlmCiAKIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJUxkLiUwNmxkXG4iLCAiZXhlY19jbG9jayIsCkBAIC0xNjIsOCArMTYyLDIzIEBACiAJU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVsZFxuIiwgIm5yX3J1bm5pbmciLCBjZnNfcnEtPm5yX3J1bm5pbmcpOwogCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlbGRcbiIsICJsb2FkIiwgY2ZzX3JxLT5sb2FkLndlaWdodCk7CiAjaWZkZWYgQ09ORklHX1NDSEVEU1RBVFMKLQlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWRcbiIsICJia2xfY291bnQiLAotCQkJcnEtPmJrbF9jb3VudCk7CisjZGVmaW5lIFAobikgU0VRX3ByaW50ZihtLCAiICAuJS0zMHM6ICVkXG4iLCAjbiwgcnEtPm4pOworCisJUCh5bGRfZXhwX2VtcHR5KTsKKwlQKHlsZF9hY3RfZW1wdHkpOworCVAoeWxkX2JvdGhfZW1wdHkpOworCVAoeWxkX2NvdW50KTsKKworCVAoc2NoZWRfc3dpdGNoKTsKKwlQKHNjaGVkX2NvdW50KTsKKwlQKHNjaGVkX2dvaWRsZSk7CisKKwlQKHR0d3VfY291bnQpOworCVAodHR3dV9sb2NhbCk7CisKKwlQKGJrbF9jb3VudCk7CisKKyN1bmRlZiBQCiAjZW5kaWYKIAlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJWxkXG4iLCAibnJfc3ByZWFkX292ZXIiLAogCQkJY2ZzX3JxLT5ucl9zcHJlYWRfb3Zlcik7CkBAIC0xNzQsNiArMTg5LDM5IEBACiAjZW5kaWYKIH0KIAordm9pZCBwcmludF9ydF9ycShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGludCBjcHUsIHN0cnVjdCBydF9ycSAqcnRfcnEpCit7CisjaWYgZGVmaW5lZChDT05GSUdfQ0dST1VQX1NDSEVEKSAmJiBkZWZpbmVkKENPTkZJR19SVF9HUk9VUF9TQ0hFRCkKKwljaGFyIHBhdGhbMTI4XSA9ICIiOworCXN0cnVjdCBjZ3JvdXAgKmNncm91cCA9IE5VTEw7CisJc3RydWN0IHRhc2tfZ3JvdXAgKnRnID0gcnRfcnEtPnRnOworCisJaWYgKHRnKQorCQljZ3JvdXAgPSB0Zy0+Y3NzLmNncm91cDsKKworCWlmIChjZ3JvdXApCisJCWNncm91cF9wYXRoKGNncm91cCwgcGF0aCwgc2l6ZW9mKHBhdGgpKTsKKworCVNFUV9wcmludGYobSwgIlxucnRfcnFbJWRdOiVzXG4iLCBjcHUsIHBhdGgpOworI2Vsc2UKKwlTRVFfcHJpbnRmKG0sICJcbnJ0X3JxWyVkXTpcbiIsIGNwdSk7CisjZW5kaWYKKworCisjZGVmaW5lIFAoeCkgXAorCVNFUV9wcmludGYobSwgIiAgLiUtMzBzOiAlTGRcbiIsICN4LCAobG9uZyBsb25nKShydF9ycS0+eCkpCisjZGVmaW5lIFBOKHgpIFwKKwlTRVFfcHJpbnRmKG0sICIgIC4lLTMwczogJUxkLiUwNmxkXG4iLCAjeCwgU1BMSVRfTlMocnRfcnEtPngpKQorCisJUChydF9ucl9ydW5uaW5nKTsKKwlQKHJ0X3Rocm90dGxlZCk7CisJUE4ocnRfdGltZSk7CisJUE4ocnRfcnVudGltZSk7CisKKyN1bmRlZiBQTgorI3VuZGVmIFAKK30KKwogc3RhdGljIHZvaWQgcHJpbnRfY3B1KHN0cnVjdCBzZXFfZmlsZSAqbSwgaW50IGNwdSkKIHsKIAlzdHJ1Y3QgcnEgKnJxID0gJnBlcl9jcHUocnVucXVldWVzLCBjcHUpOwpAQCAtMjEzLDYgKzI2MSw3IEBACiAjdW5kZWYgUE4KIAogCXByaW50X2Nmc19zdGF0cyhtLCBjcHUpOworCXByaW50X3J0X3N0YXRzKG0sIGNwdSk7CiAKIAlwcmludF9ycShtLCBycSwgY3B1KTsKIH0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zY2hlZF9mYWlyLmMgYi9rZXJuZWwvc2NoZWRfZmFpci5jCmluZGV4IGUyNGVjZDMuLmYyYWE5ODcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zY2hlZF9mYWlyLmMKKysrIGIva2VybmVsL3NjaGVkX2ZhaXIuYwpAQCAtNjMsMTMgKzYzLDEzIEBACiAKIC8qCiAgKiBTQ0hFRF9PVEhFUiB3YWtlLXVwIGdyYW51bGFyaXR5LgotICogKGRlZmF1bHQ6IDEwIG1zZWMgKiAoMSArIGlsb2cobmNwdXMpKSwgdW5pdHM6IG5hbm9zZWNvbmRzKQorICogKGRlZmF1bHQ6IDUgbXNlYyAqICgxICsgaWxvZyhuY3B1cykpLCB1bml0czogbmFub3NlY29uZHMpCiAgKgogICogVGhpcyBvcHRpb24gZGVsYXlzIHRoZSBwcmVlbXB0aW9uIGVmZmVjdHMgb2YgZGVjb3VwbGVkIHdvcmtsb2FkcwogICogYW5kIHJlZHVjZXMgdGhlaXIgb3Zlci1zY2hlZHVsaW5nLiBTeW5jaHJvbm91cyB3b3JrbG9hZHMgd2lsbCBzdGlsbAogICogaGF2ZSBpbW1lZGlhdGUgd2FrZXVwL3NsZWVwIGxhdGVuY2llcy4KICAqLwotdW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHkgPSAxMDAwMDAwMFVMOwordW5zaWduZWQgaW50IHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHkgPSA1MDAwMDAwVUw7CiAKIGNvbnN0X2RlYnVnIHVuc2lnbmVkIGludCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QgPSA1MDAwMDBVTDsKIApAQCAtNDI5LDEyICs0MjksMzggQEAKIAogCWZvcl9lYWNoX3NjaGVkX2VudGl0eShzZSkgewogCQlzdHJ1Y3QgbG9hZF93ZWlnaHQgKnNlX2x3ID0gJnNlLT5sb2FkOworCQl1bnNpZ25lZCBsb25nIHJ3ID0gY2ZzX3JxX29mKHNlKS0+bG9hZC53ZWlnaHQ7CiAKLQkJaWYgKHNlLT5sb2FkLndlaWdodCA8IE5JQ0VfMF9MT0FEKQorI2lmZGVmIENPTkZJR19GQUlSX1NDSEVEX0dST1VQCisJCXN0cnVjdCBjZnNfcnEgKmNmc19ycSA9IHNlLT5teV9xOworCQlzdHJ1Y3QgdGFza19ncm91cCAqdGcgPSBOVUxMCisKKwkJaWYgKGNmc19ycSkKKwkJCXRnID0gY2ZzX3JxLT50ZzsKKworCQlpZiAodGcgJiYgdGctPnNoYXJlcyA8IE5JQ0VfMF9MT0FEKSB7CisJCQkvKgorCQkJICogc2NhbGUgc2hhcmVzIHRvIHdoYXQgaXQgd291bGQgaGF2ZSBiZWVuIGhhZAorCQkJICogdGctPndlaWdodCBiZWVuIE5JQ0VfMF9MT0FEOgorCQkJICoKKwkJCSAqICAgd2VpZ2h0ID0gMTAyNCAqIHNoYXJlcyAvIHRnLT53ZWlnaHQKKwkJCSAqLworCQkJbHcud2VpZ2h0ICo9IHNlLT5sb2FkLndlaWdodDsKKwkJCWx3LndlaWdodCAvPSB0Zy0+c2hhcmVzOworCisJCQlsdy5pbnZfd2VpZ2h0ID0gMDsKKwogCQkJc2VfbHcgPSAmbHc7CisJCQlydyArPSBsdy53ZWlnaHQgLSBzZS0+bG9hZC53ZWlnaHQ7CisJCX0gZWxzZQorI2VuZGlmCiAKLQkJZGVsdGEgPSBjYWxjX2RlbHRhX21pbmUoZGVsdGEsCi0JCQkJY2ZzX3JxX29mKHNlKS0+bG9hZC53ZWlnaHQsIHNlX2x3KTsKKwkJaWYgKHNlLT5sb2FkLndlaWdodCA8IE5JQ0VfMF9MT0FEKSB7CisJCQlzZV9sdyA9ICZsdzsKKwkJCXJ3ICs9IE5JQ0VfMF9MT0FEIC0gc2UtPmxvYWQud2VpZ2h0OworCQl9CisKKwkJZGVsdGEgPSBjYWxjX2RlbHRhX21pbmUoZGVsdGEsIHJ3LCBzZV9sdyk7CiAJfQogCiAJcmV0dXJuIGRlbHRhOwpAQCAtNzAwLDIxICs3MjYsNiBAQAogCQlfX2VucXVldWVfZW50aXR5KGNmc19ycSwgc2UpOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfYXZnKHU2NCAqYXZnLCB1NjQgc2FtcGxlKQotewotCXM2NCBkaWZmID0gc2FtcGxlIC0gKmF2ZzsKLQkqYXZnICs9IGRpZmYgPj4gMzsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX2F2Z19zdGF0cyhzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQotewotCWlmICghc2UtPmxhc3Rfd2FrZXVwKQotCQlyZXR1cm47Ci0KLQl1cGRhdGVfYXZnKCZzZS0+YXZnX292ZXJsYXAsIHNlLT5zdW1fZXhlY19ydW50aW1lIC0gc2UtPmxhc3Rfd2FrZXVwKTsKLQlzZS0+bGFzdF93YWtldXAgPSAwOwotfQotCiBzdGF0aWMgdm9pZAogZGVxdWV1ZV9lbnRpdHkoc3RydWN0IGNmc19ycSAqY2ZzX3JxLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSwgaW50IHNsZWVwKQogewpAQCAtNzI1LDcgKzczNiw2IEBACiAKIAl1cGRhdGVfc3RhdHNfZGVxdWV1ZShjZnNfcnEsIHNlKTsKIAlpZiAoc2xlZXApIHsKLQkJdXBkYXRlX2F2Z19zdGF0cyhjZnNfcnEsIHNlKTsKICNpZmRlZiBDT05GSUdfU0NIRURTVEFUUwogCQlpZiAoZW50aXR5X2lzX3Rhc2soc2UpKSB7CiAJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IHRhc2tfb2Yoc2UpOwpAQCAtNzg3LDE3ICs3OTcsMTYgQEAKIAlzZS0+cHJldl9zdW1fZXhlY19ydW50aW1lID0gc2UtPnN1bV9leGVjX3J1bnRpbWU7CiB9CiAKLXN0YXRpYyBpbnQKLXdha2V1cF9wcmVlbXB0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpjdXJyLCBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICpzZSk7Ci0KIHN0YXRpYyBzdHJ1Y3Qgc2NoZWRfZW50aXR5ICoKIHBpY2tfbmV4dChzdHJ1Y3QgY2ZzX3JxICpjZnNfcnEsIHN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlKQogewotCWlmICghY2ZzX3JxLT5uZXh0KQotCQlyZXR1cm4gc2U7CisJc3RydWN0IHJxICpycSA9IHJxX29mKGNmc19ycSk7CisJdTY0IHBhaXJfc2xpY2UgPSBycS0+Y2xvY2sgLSBjZnNfcnEtPnBhaXJfc3RhcnQ7CiAKLQlpZiAod2FrZXVwX3ByZWVtcHRfZW50aXR5KGNmc19ycS0+bmV4dCwgc2UpICE9IDApCisJaWYgKCFjZnNfcnEtPm5leHQgfHwgcGFpcl9zbGljZSA+IHNjaGVkX3NsaWNlKGNmc19ycSwgY2ZzX3JxLT5uZXh0KSkgeworCQljZnNfcnEtPnBhaXJfc3RhcnQgPSBycS0+Y2xvY2s7CiAJCXJldHVybiBzZTsKKwl9CiAKIAlyZXR1cm4gY2ZzX3JxLT5uZXh0OwogfQpAQCAtODk2LDcgKzkwNSw3IEBACiAJCWhydGlja19zdGFydChycSwgZGVsdGEsIHJlcXVldWUpOwogCX0KIH0KLSNlbHNlCisjZWxzZSAvKiAhQ09ORklHX1NDSEVEX0hSVElDSyAqLwogc3RhdGljIGlubGluZSB2b2lkCiBocnRpY2tfc3RhcnRfZmFpcihzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiB7CkBAIC0xMDM3LDcgKzEwNDYsNyBAQAogCX0KIAlyZXR1cm4gY3B1OwogfQotI2Vsc2UKKyNlbHNlIC8qICFBUkNIX0hBU19TQ0hFRF9XQUtFX0lETEUqLwogc3RhdGljIGlubGluZSBpbnQgd2FrZV9pZGxlKGludCBjcHUsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKIAlyZXR1cm4gY3B1OwpAQCAtMTA0OCw2ICsxMDU3LDg5IEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NoZWRfY2xhc3MgZmFpcl9zY2hlZF9jbGFzczsKIAorI2lmZGVmIENPTkZJR19GQUlSX0dST1VQX1NDSEVECisvKgorICogZWZmZWN0aXZlX2xvYWQoKSBjYWxjdWxhdGVzIHRoZSBsb2FkIGNoYW5nZSBhcyBzZWVuIGZyb20gdGhlIHJvb3RfdGFza19ncm91cAorICoKKyAqIEFkZGluZyBsb2FkIHRvIGEgZ3JvdXAgZG9lc24ndCBtYWtlIGEgZ3JvdXAgaGVhdmllciwgYnV0IGNhbiBjYXVzZSBtb3ZlbWVudAorICogb2YgZ3JvdXAgc2hhcmVzIGJldHdlZW4gY3B1cy4gQXNzdW1pbmcgdGhlIHNoYXJlcyB3ZXJlIHBlcmZlY3RseSBhbGlnbmVkIG9uZQorICogY2FuIGNhbGN1bGF0ZSB0aGUgc2hpZnQgaW4gc2hhcmVzLgorICoKKyAqIFRoZSBwcm9ibGVtIGlzIHRoYXQgcGVyZmVjdGx5IGFsaWduaW5nIHRoZSBzaGFyZXMgaXMgcmF0aGVyIGV4cGVuc2l2ZSwgaGVuY2UKKyAqIHdlIHRyeSB0byBhdm9pZCBkb2luZyB0aGF0IHRvbyBvZnRlbiAtIHNlZSB1cGRhdGVfc2hhcmVzKCksIHdoaWNoIHJhdGVsaW1pdHMKKyAqIHRoaXMgY2hhbmdlLgorICoKKyAqIFdlIGNvbXBlbnNhdGUgdGhpcyBieSBub3Qgb25seSB0YWtpbmcgdGhlIGN1cnJlbnQgZGVsdGEgaW50byBhY2NvdW50LCBidXQKKyAqIGFsc28gY29uc2lkZXJpbmcgdGhlIGRlbHRhIGJldHdlZW4gd2hlbiB0aGUgc2hhcmVzIHdlcmUgbGFzdCBhZGp1c3RlZCBhbmQKKyAqIG5vdy4KKyAqCisgKiBXZSBzdGlsbCBzYXcgYSBwZXJmb3JtYW5jZSBkaXAsIHNvbWUgdHJhY2luZyBsZWFybmVkIHVzIHRoYXQgYmV0d2VlbgorICogY2dyb3VwOi8gYW5kIGNncm91cDovZm9vIGJhbGFuY2luZyB0aGUgbnVtYmVyIG9mIGFmZmluZSB3YWtldXBzIGluY3JlYXNlZAorICogc2lnbmlmaWNhbnRseS4gVGhlcmVmb3JlIHRyeSB0byBiaWFzIHRoZSBlcnJvciBpbiBkaXJlY3Rpb24gb2YgZmFpbGluZworICogdGhlIGFmZmluZSB3YWtldXAuCisgKgorICovCitzdGF0aWMgbG9uZyBlZmZlY3RpdmVfbG9hZChzdHJ1Y3QgdGFza19ncm91cCAqdGcsIGludCBjcHUsCisJCWxvbmcgd2wsIGxvbmcgd2cpCit7CisJc3RydWN0IHNjaGVkX2VudGl0eSAqc2UgPSB0Zy0+c2VbY3B1XTsKKwlsb25nIG1vcmVfdzsKKworCWlmICghdGctPnBhcmVudCkKKwkJcmV0dXJuIHdsOworCisJLyoKKwkgKiBCeSBub3QgdGFraW5nIHRoZSBkZWNyZWFzZSBvZiBzaGFyZXMgb24gdGhlIG90aGVyIGNwdSBpbnRvCisJICogYWNjb3VudCBvdXIgZXJyb3IgbGVhbnMgdG93YXJkcyByZWR1Y2luZyB0aGUgYWZmaW5lIHdha2V1cHMuCisJICovCisJaWYgKCF3bCAmJiBzY2hlZF9mZWF0KEFTWU1fRUZGX0xPQUQpKQorCQlyZXR1cm4gd2w7CisKKwkvKgorCSAqIEluc3RlYWQgb2YgdXNpbmcgdGhpcyBpbmNyZW1lbnQsIGFsc28gYWRkIHRoZSBkaWZmZXJlbmNlCisJICogYmV0d2VlbiB3aGVuIHRoZSBzaGFyZXMgd2VyZSBsYXN0IHVwZGF0ZWQgYW5kIG5vdy4KKwkgKi8KKwltb3JlX3cgPSBzZS0+bXlfcS0+bG9hZC53ZWlnaHQgLSBzZS0+bXlfcS0+cnFfd2VpZ2h0OworCXdsICs9IG1vcmVfdzsKKwl3ZyArPSBtb3JlX3c7CisKKwlmb3JfZWFjaF9zY2hlZF9lbnRpdHkoc2UpIHsKKyNkZWZpbmUgRChuKSAobGlrZWx5KG4pID8gKG4pIDogMSkKKworCQlsb25nIFMsIHJ3LCBzLCBhLCBiOworCisJCVMgPSBzZS0+bXlfcS0+dGctPnNoYXJlczsKKwkJcyA9IHNlLT5teV9xLT5zaGFyZXM7CisJCXJ3ID0gc2UtPm15X3EtPnJxX3dlaWdodDsKKworCQlhID0gUyoocncgKyB3bCk7CisJCWIgPSBTKnJ3ICsgcyp3ZzsKKworCQl3bCA9IHMqKGEtYikvRChiKTsKKwkJLyoKKwkJICogQXNzdW1lIHRoZSBncm91cCBpcyBhbHJlYWR5IHJ1bm5pbmcgYW5kIHdpbGwKKwkJICogdGh1cyBhbHJlYWR5IGJlIGFjY291bnRlZCBmb3IgaW4gdGhlIHdlaWdodC4KKwkJICoKKwkJICogVGhhdCBpcywgbW92aW5nIHNoYXJlcyBiZXR3ZWVuIENQVXMsIGRvZXMgbm90CisJCSAqIGFsdGVyIHRoZSBncm91cCB3ZWlnaHQuCisJCSAqLworCQl3ZyA9IDA7CisjdW5kZWYgRAorCX0KKworCXJldHVybiB3bDsKK30KKworI2Vsc2UKKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGVmZmVjdGl2ZV9sb2FkKHN0cnVjdCB0YXNrX2dyb3VwICp0ZywgaW50IGNwdSwKKwkJdW5zaWduZWQgbG9uZyB3bCwgdW5zaWduZWQgbG9uZyB3ZykKK3sKKwlyZXR1cm4gd2w7Cit9CisKKyNlbmRpZgorCiBzdGF0aWMgaW50CiB3YWtlX2FmZmluZShzdHJ1Y3QgcnEgKnJxLCBzdHJ1Y3Qgc2NoZWRfZG9tYWluICp0aGlzX3NkLCBzdHJ1Y3QgcnEgKnRoaXNfcnEsCiAJICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHByZXZfY3B1LCBpbnQgdGhpc19jcHUsIGludCBzeW5jLApAQCAtMTA1NSwzNiArMTE0Nyw1MCBAQAogCSAgICB1bnNpZ25lZCBpbnQgaW1iYWxhbmNlKQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqY3VyciA9IHRoaXNfcnEtPmN1cnI7CisJc3RydWN0IHRhc2tfZ3JvdXAgKnRnOwogCXVuc2lnbmVkIGxvbmcgdGwgPSB0aGlzX2xvYWQ7CiAJdW5zaWduZWQgbG9uZyB0bF9wZXJfdGFzazsKKwl1bnNpZ25lZCBsb25nIHdlaWdodDsKKwlpbnQgYmFsYW5jZWQ7CiAKLQlpZiAoISh0aGlzX3NkLT5mbGFncyAmIFNEX1dBS0VfQUZGSU5FKSkKKwlpZiAoISh0aGlzX3NkLT5mbGFncyAmIFNEX1dBS0VfQUZGSU5FKSB8fCAhc2NoZWRfZmVhdChBRkZJTkVfV0FLRVVQUykpCiAJCXJldHVybiAwOwogCiAJLyoKLQkgKiBJZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGFzayB3aWxsIHNsZWVwIHdpdGhpbgotCSAqIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSB0aGVuIGF0dHJhY3QgdGhpcyBuZXdseQotCSAqIHdva2VuIHRhc2s6Ci0JICovCi0JaWYgKHN5bmMgJiYgY3Vyci0+c2NoZWRfY2xhc3MgPT0gJmZhaXJfc2NoZWRfY2xhc3MpIHsKLQkJaWYgKGN1cnItPnNlLmF2Z19vdmVybGFwIDwgc3lzY3RsX3NjaGVkX21pZ3JhdGlvbl9jb3N0ICYmCi0JCQkJcC0+c2UuYXZnX292ZXJsYXAgPCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QpCi0JCQlyZXR1cm4gMTsKLQl9Ci0KLQlzY2hlZHN0YXRfaW5jKHAsIHNlLm5yX3dha2V1cHNfYWZmaW5lX2F0dGVtcHRzKTsKLQl0bF9wZXJfdGFzayA9IGNwdV9hdmdfbG9hZF9wZXJfdGFzayh0aGlzX2NwdSk7Ci0KLQkvKgogCSAqIElmIHN5bmMgd2FrZXVwIHRoZW4gc3VidHJhY3QgdGhlIChtYXhpbXVtIHBvc3NpYmxlKQogCSAqIGVmZmVjdCBvZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgdGFzayBmcm9tIHRoZSBsb2FkCiAJICogb2YgdGhlIGN1cnJlbnQgQ1BVOgogCSAqLwotCWlmIChzeW5jKQotCQl0bCAtPSBjdXJyZW50LT5zZS5sb2FkLndlaWdodDsKKwlpZiAoc3luYykgeworCQl0ZyA9IHRhc2tfZ3JvdXAoY3VycmVudCk7CisJCXdlaWdodCA9IGN1cnJlbnQtPnNlLmxvYWQud2VpZ2h0OworCisJCXRsICs9IGVmZmVjdGl2ZV9sb2FkKHRnLCB0aGlzX2NwdSwgLXdlaWdodCwgLXdlaWdodCk7CisJCWxvYWQgKz0gZWZmZWN0aXZlX2xvYWQodGcsIHByZXZfY3B1LCAwLCAtd2VpZ2h0KTsKKwl9CisKKwl0ZyA9IHRhc2tfZ3JvdXAocCk7CisJd2VpZ2h0ID0gcC0+c2UubG9hZC53ZWlnaHQ7CisKKwliYWxhbmNlZCA9IDEwMCoodGwgKyBlZmZlY3RpdmVfbG9hZCh0ZywgdGhpc19jcHUsIHdlaWdodCwgd2VpZ2h0KSkgPD0KKwkJaW1iYWxhbmNlKihsb2FkICsgZWZmZWN0aXZlX2xvYWQodGcsIHByZXZfY3B1LCAwLCB3ZWlnaHQpKTsKKworCS8qCisJICogSWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIHRhc2sgd2lsbCBzbGVlcCB3aXRoaW4KKwkgKiBhIHJlYXNvbmFibGUgYW1vdW50IG9mIHRpbWUgdGhlbiBhdHRyYWN0IHRoaXMgbmV3bHkKKwkgKiB3b2tlbiB0YXNrOgorCSAqLworCWlmIChzeW5jICYmIGJhbGFuY2VkKSB7CisJCWlmIChjdXJyLT5zZS5hdmdfb3ZlcmxhcCA8IHN5c2N0bF9zY2hlZF9taWdyYXRpb25fY29zdCAmJgorCQkgICAgcC0+c2UuYXZnX292ZXJsYXAgPCBzeXNjdGxfc2NoZWRfbWlncmF0aW9uX2Nvc3QpCisJCQlyZXR1cm4gMTsKKwl9CisKKwlzY2hlZHN0YXRfaW5jKHAsIHNlLm5yX3dha2V1cHNfYWZmaW5lX2F0dGVtcHRzKTsKKwl0bF9wZXJfdGFzayA9IGNwdV9hdmdfbG9hZF9wZXJfdGFzayh0aGlzX2NwdSk7CiAKIAlpZiAoKHRsIDw9IGxvYWQgJiYgdGwgKyB0YXJnZXRfbG9hZChwcmV2X2NwdSwgaWR4KSA8PSB0bF9wZXJfdGFzaykgfHwKLQkJCTEwMCoodGwgKyBwLT5zZS5sb2FkLndlaWdodCkgPD0gaW1iYWxhbmNlKmxvYWQpIHsKKwkJCWJhbGFuY2VkKSB7CiAJCS8qCiAJCSAqIFRoaXMgZG9tYWluIGhhcyBTRF9XQUtFX0FGRklORSBhbmQKIAkJICogcCBpcyBjYWNoZSBjb2xkIGluIHRoaXMgZG9tYWluLCBhbmQKQEAgLTExNzIsNyArMTI3OCwxMCBAQAogCSAqIE1vcmUgZWFzaWx5IHByZWVtcHQgLSBuaWNlIHRhc2tzLCB3aGlsZSBub3QgbWFraW5nIGl0IGhhcmRlciBmb3IKIAkgKiArIG5pY2UgdGFza3MuCiAJICovCi0JZ3JhbiA9IGNhbGNfZGVsdGFfYXN5bShzeXNjdGxfc2NoZWRfd2FrZXVwX2dyYW51bGFyaXR5LCBzZSk7CisJaWYgKHNjaGVkX2ZlYXQoQVNZTV9HUkFOKSkKKwkJZ3JhbiA9IGNhbGNfZGVsdGFfYXN5bShzeXNjdGxfc2NoZWRfd2FrZXVwX2dyYW51bGFyaXR5LCBzZSk7CisJZWxzZQorCQlncmFuID0gY2FsY19kZWx0YV9mYWlyKHN5c2N0bF9zY2hlZF93YWtldXBfZ3JhbnVsYXJpdHksIHNlKTsKIAogCXJldHVybiBncmFuOwogfQpAQCAtMTIzNCw3ICsxMzQzLDYgQEAKIAkJcmV0dXJuOwogCX0KIAotCXNlLT5sYXN0X3dha2V1cCA9IHNlLT5zdW1fZXhlY19ydW50aW1lOwogCWlmICh1bmxpa2VseShzZSA9PSBwc2UpKQogCQlyZXR1cm47CiAKQEAgLTEzMzIsMjMgKzE0NDAsMTggQEAKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAgPSBOVUxMOwogCXN0cnVjdCBzY2hlZF9lbnRpdHkgKnNlOwogCi0JaWYgKG5leHQgPT0gJmNmc19ycS0+dGFza3MpCi0JCXJldHVybiBOVUxMOwotCi0JLyogU2tpcCBvdmVyIGVudGl0aWVzIHRoYXQgYXJlIG5vdCB0YXNrcyAqLwotCWRvIHsKKwl3aGlsZSAobmV4dCAhPSAmY2ZzX3JxLT50YXNrcykgewogCQlzZSA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IHNjaGVkX2VudGl0eSwgZ3JvdXBfbm9kZSk7CiAJCW5leHQgPSBuZXh0LT5uZXh0OwotCX0gd2hpbGUgKG5leHQgIT0gJmNmc19ycS0+dGFza3MgJiYgIWVudGl0eV9pc190YXNrKHNlKSk7CiAKLQlpZiAobmV4dCA9PSAmY2ZzX3JxLT50YXNrcykKLQkJcmV0dXJuIE5VTEw7CisJCS8qIFNraXAgb3ZlciBlbnRpdGllcyB0aGF0IGFyZSBub3QgdGFza3MgKi8KKwkJaWYgKGVudGl0eV9pc190YXNrKHNlKSkgeworCQkJcCA9IHRhc2tfb2Yoc2UpOworCQkJYnJlYWs7CisJCX0KKwl9CiAKIAljZnNfcnEtPmJhbGFuY2VfaXRlcmF0b3IgPSBuZXh0OwotCi0JaWYgKGVudGl0eV9pc190YXNrKHNlKSkKLQkJcCA9IHRhc2tfb2Yoc2UpOwotCiAJcmV0dXJuIHA7CiB9CiAKQEAgLTEzOTUsNDAgKzE0OTgsMzIgQEAKIAlzdHJ1Y3QgdGFza19ncm91cCAqdGc7CiAKIAlyY3VfcmVhZF9sb2NrKCk7CisJdXBkYXRlX2hfbG9hZChidXNpZXN0X2NwdSk7CisKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRnLCAmdGFza19ncm91cHMsIGxpc3QpIHsKLQkJbG9uZyBpbWJhbGFuY2U7Ci0JCXVuc2lnbmVkIGxvbmcgdGhpc193ZWlnaHQsIGJ1c2llc3Rfd2VpZ2h0OwotCQlsb25nIHJlbV9sb2FkLCBtYXhfbG9hZCwgbW92ZWRfbG9hZDsKKwkJc3RydWN0IGNmc19ycSAqYnVzaWVzdF9jZnNfcnEgPSB0Zy0+Y2ZzX3JxW2J1c2llc3RfY3B1XTsKKwkJdW5zaWduZWQgbG9uZyBidXNpZXN0X2hfbG9hZCA9IGJ1c2llc3RfY2ZzX3JxLT5oX2xvYWQ7CisJCXVuc2lnbmVkIGxvbmcgYnVzaWVzdF93ZWlnaHQgPSBidXNpZXN0X2Nmc19ycS0+bG9hZC53ZWlnaHQ7CisJCXU2NCByZW1fbG9hZCwgbW92ZWRfbG9hZDsKIAogCQkvKgogCQkgKiBlbXB0eSBncm91cAogCQkgKi8KLQkJaWYgKCFhZ2dyZWdhdGUodGcsIHNkKS0+dGFza193ZWlnaHQpCisJCWlmICghYnVzaWVzdF9jZnNfcnEtPnRhc2tfd2VpZ2h0KQogCQkJY29udGludWU7CiAKLQkJcmVtX2xvYWQgPSByZW1fbG9hZF9tb3ZlICogYWdncmVnYXRlKHRnLCBzZCktPnJxX3dlaWdodDsKLQkJcmVtX2xvYWQgLz0gYWdncmVnYXRlKHRnLCBzZCktPmxvYWQgKyAxOworCQlyZW1fbG9hZCA9ICh1NjQpcmVtX2xvYWRfbW92ZSAqIGJ1c2llc3Rfd2VpZ2h0OworCQlyZW1fbG9hZCA9IGRpdl91NjQocmVtX2xvYWQsIGJ1c2llc3RfaF9sb2FkICsgMSk7CiAKLQkJdGhpc193ZWlnaHQgPSB0Zy0+Y2ZzX3JxW3RoaXNfY3B1XS0+dGFza193ZWlnaHQ7Ci0JCWJ1c2llc3Rfd2VpZ2h0ID0gdGctPmNmc19ycVtidXNpZXN0X2NwdV0tPnRhc2tfd2VpZ2h0OwotCi0JCWltYmFsYW5jZSA9IChidXNpZXN0X3dlaWdodCAtIHRoaXNfd2VpZ2h0KSAvIDI7Ci0KLQkJaWYgKGltYmFsYW5jZSA8IDApCi0JCQlpbWJhbGFuY2UgPSBidXNpZXN0X3dlaWdodDsKLQotCQltYXhfbG9hZCA9IG1heChyZW1fbG9hZCwgaW1iYWxhbmNlKTsKIAkJbW92ZWRfbG9hZCA9IF9fbG9hZF9iYWxhbmNlX2ZhaXIodGhpc19ycSwgdGhpc19jcHUsIGJ1c2llc3QsCi0JCQkJbWF4X2xvYWQsIHNkLCBpZGxlLCBhbGxfcGlubmVkLCB0aGlzX2Jlc3RfcHJpbywKKwkJCQlyZW1fbG9hZCwgc2QsIGlkbGUsIGFsbF9waW5uZWQsIHRoaXNfYmVzdF9wcmlvLAogCQkJCXRnLT5jZnNfcnFbYnVzaWVzdF9jcHVdKTsKIAogCQlpZiAoIW1vdmVkX2xvYWQpCiAJCQljb250aW51ZTsKIAotCQltb3ZlX2dyb3VwX3NoYXJlcyh0Zywgc2QsIGJ1c2llc3RfY3B1LCB0aGlzX2NwdSk7Ci0KLQkJbW92ZWRfbG9hZCAqPSBhZ2dyZWdhdGUodGcsIHNkKS0+bG9hZDsKLQkJbW92ZWRfbG9hZCAvPSBhZ2dyZWdhdGUodGcsIHNkKS0+cnFfd2VpZ2h0ICsgMTsKKwkJbW92ZWRfbG9hZCAqPSBidXNpZXN0X2hfbG9hZDsKKwkJbW92ZWRfbG9hZCA9IGRpdl91NjQobW92ZWRfbG9hZCwgYnVzaWVzdF93ZWlnaHQgKyAxKTsKIAogCQlyZW1fbG9hZF9tb3ZlIC09IG1vdmVkX2xvYWQ7CiAJCWlmIChyZW1fbG9hZF9tb3ZlIDwgMCkKQEAgLTE0NzQsNyArMTU2OSw3IEBACiAKIAlyZXR1cm4gMDsKIH0KLSNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogLyoKICAqIHNjaGVkdWxlciB0aWNrIGhpdHRpbmcgYSB0YXNrIG9mIG91ciBzY2hlZHVsaW5nIGNsYXNzOgpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX2ZlYXR1cmVzLmggYi9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaAppbmRleCAxYzcyODNjLi44NjJiMDZiIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaAorKysgYi9rZXJuZWwvc2NoZWRfZmVhdHVyZXMuaApAQCAtMSw0ICsxLDUgQEAKIFNDSEVEX0ZFQVQoTkVXX0ZBSVJfU0xFRVBFUlMsIDEpCitTQ0hFRF9GRUFUKE5PUk1BTElaRURfU0xFRVBFUiwgMSkKIFNDSEVEX0ZFQVQoV0FLRVVQX1BSRUVNUFQsIDEpCiBTQ0hFRF9GRUFUKFNUQVJUX0RFQklULCAxKQogU0NIRURfRkVBVChBRkZJTkVfV0FLRVVQUywgMSkKQEAgLTYsNSArNyw3IEBACiBTQ0hFRF9GRUFUKFNZTkNfV0FLRVVQUywgMSkKIFNDSEVEX0ZFQVQoSFJUSUNLLCAxKQogU0NIRURfRkVBVChET1VCTEVfVElDSywgMCkKLVNDSEVEX0ZFQVQoTk9STUFMSVpFRF9TTEVFUEVSLCAxKQotU0NIRURfRkVBVChERUFETElORSwgMSkKK1NDSEVEX0ZFQVQoQVNZTV9HUkFOLCAxKQorU0NIRURfRkVBVChMQl9CSUFTLCAwKQorU0NIRURfRkVBVChMQl9XQUtFVVBfVVBEQVRFLCAxKQorU0NIRURfRkVBVChBU1lNX0VGRl9MT0FELCAxKQpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX3J0LmMgYi9rZXJuZWwvc2NoZWRfcnQuYwppbmRleCAwNjBlODdiLi40N2NlYWM5IDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfcnQuYworKysgYi9rZXJuZWwvc2NoZWRfcnQuYwpAQCAtMTIsNiArMTIsOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcnRfc2V0X292ZXJsb2FkKHN0cnVjdCBycSAqcnEpCiB7CisJaWYgKCFycS0+b25saW5lKQorCQlyZXR1cm47CisKIAljcHVfc2V0KHJxLT5jcHUsIHJxLT5yZC0+cnRvX21hc2spOwogCS8qCiAJICogTWFrZSBzdXJlIHRoZSBtYXNrIGlzIHZpc2libGUgYmVmb3JlIHdlIHNldApAQCAtMjYsNiArMjksOSBAQAogCiBzdGF0aWMgaW5saW5lIHZvaWQgcnRfY2xlYXJfb3ZlcmxvYWQoc3RydWN0IHJxICpycSkKIHsKKwlpZiAoIXJxLT5vbmxpbmUpCisJCXJldHVybjsKKwogCS8qIHRoZSBvcmRlciBoZXJlIHJlYWxseSBkb2Vzbid0IG1hdHRlciAqLwogCWF0b21pY19kZWMoJnJxLT5yZC0+cnRvX2NvdW50KTsKIAljcHVfY2xlYXIocnEtPmNwdSwgcnEtPnJkLT5ydG9fbWFzayk7CkBAIC0xNTUsNyArMTYxLDcgQEAKIAlyZXR1cm4gJnJ0X3JxLT50Zy0+cnRfYmFuZHdpZHRoOwogfQogCi0jZWxzZQorI2Vsc2UgLyogIUNPTkZJR19SVF9HUk9VUF9TQ0hFRCAqLwogCiBzdGF0aWMgaW5saW5lIHU2NCBzY2hlZF9ydF9ydW50aW1lKHN0cnVjdCBydF9ycSAqcnRfcnEpCiB7CkBAIC0yMjAsNyArMjI2LDE2MCBAQAogCXJldHVybiAmZGVmX3J0X2JhbmR3aWR0aDsKIH0KIAotI2VuZGlmCisjZW5kaWYgLyogQ09ORklHX1JUX0dST1VQX1NDSEVEICovCisKKyNpZmRlZiBDT05GSUdfU01QCitzdGF0aWMgaW50IGRvX2JhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQoreworCXN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IgPSBzY2hlZF9ydF9iYW5kd2lkdGgocnRfcnEpOworCXN0cnVjdCByb290X2RvbWFpbiAqcmQgPSBjcHVfcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+cmQ7CisJaW50IGksIHdlaWdodCwgbW9yZSA9IDA7CisJdTY0IHJ0X3BlcmlvZDsKKworCXdlaWdodCA9IGNwdXNfd2VpZ2h0KHJkLT5zcGFuKTsKKworCXNwaW5fbG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKKwlydF9wZXJpb2QgPSBrdGltZV90b19ucyhydF9iLT5ydF9wZXJpb2QpOworCWZvcl9lYWNoX2NwdV9tYXNrKGksIHJkLT5zcGFuKSB7CisJCXN0cnVjdCBydF9ycSAqaXRlciA9IHNjaGVkX3J0X3BlcmlvZF9ydF9ycShydF9iLCBpKTsKKwkJczY0IGRpZmY7CisKKwkJaWYgKGl0ZXIgPT0gcnRfcnEpCisJCQljb250aW51ZTsKKworCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisJCWlmIChpdGVyLT5ydF9ydW50aW1lID09IFJVTlRJTUVfSU5GKQorCQkJZ290byBuZXh0OworCisJCWRpZmYgPSBpdGVyLT5ydF9ydW50aW1lIC0gaXRlci0+cnRfdGltZTsKKwkJaWYgKGRpZmYgPiAwKSB7CisJCQlkb19kaXYoZGlmZiwgd2VpZ2h0KTsKKwkJCWlmIChydF9ycS0+cnRfcnVudGltZSArIGRpZmYgPiBydF9wZXJpb2QpCisJCQkJZGlmZiA9IHJ0X3BlcmlvZCAtIHJ0X3JxLT5ydF9ydW50aW1lOworCQkJaXRlci0+cnRfcnVudGltZSAtPSBkaWZmOworCQkJcnRfcnEtPnJ0X3J1bnRpbWUgKz0gZGlmZjsKKwkJCW1vcmUgPSAxOworCQkJaWYgKHJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X3BlcmlvZCkgeworCQkJCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOworCQkJCWJyZWFrOworCQkJfQorCQl9CituZXh0OgorCQlzcGluX3VubG9jaygmaXRlci0+cnRfcnVudGltZV9sb2NrKTsKKwl9CisJc3Bpbl91bmxvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisKKwlyZXR1cm4gbW9yZTsKK30KKworc3RhdGljIHZvaWQgX19kaXNhYmxlX3J1bnRpbWUoc3RydWN0IHJxICpycSkKK3sKKwlzdHJ1Y3Qgcm9vdF9kb21haW4gKnJkID0gcnEtPnJkOworCXN0cnVjdCBydF9ycSAqcnRfcnE7CisKKwlpZiAodW5saWtlbHkoIXNjaGVkdWxlcl9ydW5uaW5nKSkKKwkJcmV0dXJuOworCisJZm9yX2VhY2hfbGVhZl9ydF9ycShydF9ycSwgcnEpIHsKKwkJc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiA9IHNjaGVkX3J0X2JhbmR3aWR0aChydF9ycSk7CisJCXM2NCB3YW50OworCQlpbnQgaTsKKworCQlzcGluX2xvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCWlmIChydF9ycS0+cnRfcnVudGltZSA9PSBSVU5USU1FX0lORiB8fAorCQkJCXJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X2ItPnJ0X3J1bnRpbWUpCisJCQlnb3RvIGJhbGFuY2VkOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisKKwkJd2FudCA9IHJ0X2ItPnJ0X3J1bnRpbWUgLSBydF9ycS0+cnRfcnVudGltZTsKKworCQlmb3JfZWFjaF9jcHVfbWFzayhpLCByZC0+c3BhbikgeworCQkJc3RydWN0IHJ0X3JxICppdGVyID0gc2NoZWRfcnRfcGVyaW9kX3J0X3JxKHJ0X2IsIGkpOworCQkJczY0IGRpZmY7CisKKwkJCWlmIChpdGVyID09IHJ0X3JxKQorCQkJCWNvbnRpbnVlOworCisJCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisJCQlpZiAod2FudCA+IDApIHsKKwkJCQlkaWZmID0gbWluX3QoczY0LCBpdGVyLT5ydF9ydW50aW1lLCB3YW50KTsKKwkJCQlpdGVyLT5ydF9ydW50aW1lIC09IGRpZmY7CisJCQkJd2FudCAtPSBkaWZmOworCQkJfSBlbHNlIHsKKwkJCQlpdGVyLT5ydF9ydW50aW1lIC09IHdhbnQ7CisJCQkJd2FudCAtPSB3YW50OworCQkJfQorCQkJc3Bpbl91bmxvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7CisKKwkJCWlmICghd2FudCkKKwkJCQlicmVhazsKKwkJfQorCisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCUJVR19PTih3YW50KTsKK2JhbGFuY2VkOgorCQlydF9ycS0+cnRfcnVudGltZSA9IFJVTlRJTUVfSU5GOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCX0KK30KKworc3RhdGljIHZvaWQgZGlzYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZycS0+bG9jaywgZmxhZ3MpOworCV9fZGlzYWJsZV9ydW50aW1lKHJxKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZycS0+bG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZCBfX2VuYWJsZV9ydW50aW1lKHN0cnVjdCBycSAqcnEpCit7CisJc3RydWN0IHJ0X3JxICpydF9ycTsKKworCWlmICh1bmxpa2VseSghc2NoZWR1bGVyX3J1bm5pbmcpKQorCQlyZXR1cm47CisKKwlmb3JfZWFjaF9sZWFmX3J0X3JxKHJ0X3JxLCBycSkgeworCQlzdHJ1Y3QgcnRfYmFuZHdpZHRoICpydF9iID0gc2NoZWRfcnRfYmFuZHdpZHRoKHJ0X3JxKTsKKworCQlzcGluX2xvY2soJnJ0X2ItPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXJ0X3JxLT5ydF9ydW50aW1lID0gcnRfYi0+cnRfcnVudGltZTsKKwkJcnRfcnEtPnJ0X3RpbWUgPSAwOworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCXNwaW5fdW5sb2NrKCZydF9iLT5ydF9ydW50aW1lX2xvY2spOworCX0KK30KKworc3RhdGljIHZvaWQgZW5hYmxlX3J1bnRpbWUoc3RydWN0IHJxICpycSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJnJxLT5sb2NrLCBmbGFncyk7CisJX19lbmFibGVfcnVudGltZShycSk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcnEtPmxvY2ssIGZsYWdzKTsKK30KKworc3RhdGljIGludCBiYWxhbmNlX3J1bnRpbWUoc3RydWN0IHJ0X3JxICpydF9ycSkKK3sKKwlpbnQgbW9yZSA9IDA7CisKKwlpZiAocnRfcnEtPnJ0X3RpbWUgPiBydF9ycS0+cnRfcnVudGltZSkgeworCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7CisJCW1vcmUgPSBkb19iYWxhbmNlX3J1bnRpbWUocnRfcnEpOworCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCX0KKworCXJldHVybiBtb3JlOworfQorI2Vsc2UgLyogIUNPTkZJR19TTVAgKi8KK3N0YXRpYyBpbmxpbmUgaW50IGJhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQoreworCXJldHVybiAwOworfQorI2VuZGlmIC8qIENPTkZJR19TTVAgKi8KIAogc3RhdGljIGludCBkb19zY2hlZF9ydF9wZXJpb2RfdGltZXIoc3RydWN0IHJ0X2JhbmR3aWR0aCAqcnRfYiwgaW50IG92ZXJydW4pCiB7CkBAIC0yNDEsNiArNDAwLDggQEAKIAkJCXU2NCBydW50aW1lOwogCiAJCQlzcGluX2xvY2soJnJ0X3JxLT5ydF9ydW50aW1lX2xvY2spOworCQkJaWYgKHJ0X3JxLT5ydF90aHJvdHRsZWQpCisJCQkJYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKIAkJCXJ1bnRpbWUgPSBydF9ycS0+cnRfcnVudGltZTsKIAkJCXJ0X3JxLT5ydF90aW1lIC09IG1pbihydF9ycS0+cnRfdGltZSwgb3ZlcnJ1bipydW50aW1lKTsKIAkJCWlmIChydF9ycS0+cnRfdGhyb3R0bGVkICYmIHJ0X3JxLT5ydF90aW1lIDwgcnVudGltZSkgewpAQCAtMjUwLDcgKzQxMSw4IEBACiAJCQlpZiAocnRfcnEtPnJ0X3RpbWUgfHwgcnRfcnEtPnJ0X25yX3J1bm5pbmcpCiAJCQkJaWRsZSA9IDA7CiAJCQlzcGluX3VubG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7Ci0JCX0KKwkJfSBlbHNlIGlmIChydF9ycS0+cnRfbnJfcnVubmluZykKKwkJCWlkbGUgPSAwOwogCiAJCWlmIChlbnF1ZXVlKQogCQkJc2NoZWRfcnRfcnFfZW5xdWV1ZShydF9ycSk7CkBAIC0yNjAsNDcgKzQyMiw2IEBACiAJcmV0dXJuIGlkbGU7CiB9CiAKLSNpZmRlZiBDT05GSUdfU01QCi1zdGF0aWMgaW50IGJhbGFuY2VfcnVudGltZShzdHJ1Y3QgcnRfcnEgKnJ0X3JxKQotewotCXN0cnVjdCBydF9iYW5kd2lkdGggKnJ0X2IgPSBzY2hlZF9ydF9iYW5kd2lkdGgocnRfcnEpOwotCXN0cnVjdCByb290X2RvbWFpbiAqcmQgPSBjcHVfcnEoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+cmQ7Ci0JaW50IGksIHdlaWdodCwgbW9yZSA9IDA7Ci0JdTY0IHJ0X3BlcmlvZDsKLQotCXdlaWdodCA9IGNwdXNfd2VpZ2h0KHJkLT5zcGFuKTsKLQotCXNwaW5fbG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKLQlydF9wZXJpb2QgPSBrdGltZV90b19ucyhydF9iLT5ydF9wZXJpb2QpOwotCWZvcl9lYWNoX2NwdV9tYXNrKGksIHJkLT5zcGFuKSB7Ci0JCXN0cnVjdCBydF9ycSAqaXRlciA9IHNjaGVkX3J0X3BlcmlvZF9ydF9ycShydF9iLCBpKTsKLQkJczY0IGRpZmY7Ci0KLQkJaWYgKGl0ZXIgPT0gcnRfcnEpCi0JCQljb250aW51ZTsKLQotCQlzcGluX2xvY2soJml0ZXItPnJ0X3J1bnRpbWVfbG9jayk7Ci0JCWRpZmYgPSBpdGVyLT5ydF9ydW50aW1lIC0gaXRlci0+cnRfdGltZTsKLQkJaWYgKGRpZmYgPiAwKSB7Ci0JCQlkb19kaXYoZGlmZiwgd2VpZ2h0KTsKLQkJCWlmIChydF9ycS0+cnRfcnVudGltZSArIGRpZmYgPiBydF9wZXJpb2QpCi0JCQkJZGlmZiA9IHJ0X3BlcmlvZCAtIHJ0X3JxLT5ydF9ydW50aW1lOwotCQkJaXRlci0+cnRfcnVudGltZSAtPSBkaWZmOwotCQkJcnRfcnEtPnJ0X3J1bnRpbWUgKz0gZGlmZjsKLQkJCW1vcmUgPSAxOwotCQkJaWYgKHJ0X3JxLT5ydF9ydW50aW1lID09IHJ0X3BlcmlvZCkgewotCQkJCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOwotCQkJCWJyZWFrOwotCQkJfQotCQl9Ci0JCXNwaW5fdW5sb2NrKCZpdGVyLT5ydF9ydW50aW1lX2xvY2spOwotCX0KLQlzcGluX3VubG9jaygmcnRfYi0+cnRfcnVudGltZV9sb2NrKTsKLQotCXJldHVybiBtb3JlOwotfQotI2VuZGlmCi0KIHN0YXRpYyBpbmxpbmUgaW50IHJ0X3NlX3ByaW8oc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UpCiB7CiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECkBAIC0zMjYsMTggKzQ0NywxMCBAQAogCWlmIChzY2hlZF9ydF9ydW50aW1lKHJ0X3JxKSA+PSBzY2hlZF9ydF9wZXJpb2QocnRfcnEpKQogCQlyZXR1cm4gMDsKIAotI2lmZGVmIENPTkZJR19TTVAKLQlpZiAocnRfcnEtPnJ0X3RpbWUgPiBydW50aW1lKSB7Ci0JCWludCBtb3JlOwotCi0JCXNwaW5fdW5sb2NrKCZydF9ycS0+cnRfcnVudGltZV9sb2NrKTsKLQkJbW9yZSA9IGJhbGFuY2VfcnVudGltZShydF9ycSk7Ci0JCXNwaW5fbG9jaygmcnRfcnEtPnJ0X3J1bnRpbWVfbG9jayk7Ci0KLQkJaWYgKG1vcmUpCi0JCQlydW50aW1lID0gc2NoZWRfcnRfcnVudGltZShydF9ycSk7Ci0JfQotI2VuZGlmCisJYmFsYW5jZV9ydW50aW1lKHJ0X3JxKTsKKwlydW50aW1lID0gc2NoZWRfcnRfcnVudGltZShydF9ycSk7CisJaWYgKHJ1bnRpbWUgPT0gUlVOVElNRV9JTkYpCisJCXJldHVybiAwOwogCiAJaWYgKHJ0X3JxLT5ydF90aW1lID4gcnVudGltZSkgewogCQlydF9ycS0+cnRfdGhyb3R0bGVkID0gMTsKQEAgLTM5MSwxMiArNTA0LDIxIEBACiAJV0FSTl9PTighcnRfcHJpbyhydF9zZV9wcmlvKHJ0X3NlKSkpOwogCXJ0X3JxLT5ydF9ucl9ydW5uaW5nKys7CiAjaWYgZGVmaW5lZCBDT05GSUdfU01QIHx8IGRlZmluZWQgQ09ORklHX1JUX0dST1VQX1NDSEVECi0JaWYgKHJ0X3NlX3ByaW8ocnRfc2UpIDwgcnRfcnEtPmhpZ2hlc3RfcHJpbykKKwlpZiAocnRfc2VfcHJpbyhydF9zZSkgPCBydF9ycS0+aGlnaGVzdF9wcmlvKSB7CisJCXN0cnVjdCBycSAqcnEgPSBycV9vZl9ydF9ycShydF9ycSk7CisKIAkJcnRfcnEtPmhpZ2hlc3RfcHJpbyA9IHJ0X3NlX3ByaW8ocnRfc2UpOworI2lmZGVmIENPTkZJR19TTVAKKwkJaWYgKHJxLT5vbmxpbmUpCisJCQljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwKKwkJCQkgICBydF9zZV9wcmlvKHJ0X3NlKSk7CisjZW5kaWYKKwl9CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfU01QCiAJaWYgKHJ0X3NlLT5ucl9jcHVzX2FsbG93ZWQgPiAxKSB7CiAJCXN0cnVjdCBycSAqcnEgPSBycV9vZl9ydF9ycShydF9ycSk7CisKIAkJcnEtPnJ0LnJ0X25yX21pZ3JhdG9yeSsrOwogCX0KIApAQCAtNDE2LDYgKzUzOCwxMCBAQAogc3RhdGljIGlubGluZQogdm9pZCBkZWNfcnRfdGFza3Moc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UsIHN0cnVjdCBydF9ycSAqcnRfcnEpCiB7CisjaWZkZWYgQ09ORklHX1NNUAorCWludCBoaWdoZXN0X3ByaW8gPSBydF9ycS0+aGlnaGVzdF9wcmlvOworI2VuZGlmCisKIAlXQVJOX09OKCFydF9wcmlvKHJ0X3NlX3ByaW8ocnRfc2UpKSk7CiAJV0FSTl9PTighcnRfcnEtPnJ0X25yX3J1bm5pbmcpOwogCXJ0X3JxLT5ydF9ucl9ydW5uaW5nLS07CkBAIC00MzksNiArNTY1LDE0IEBACiAJCXJxLT5ydC5ydF9ucl9taWdyYXRvcnktLTsKIAl9CiAKKwlpZiAocnRfcnEtPmhpZ2hlc3RfcHJpbyAhPSBoaWdoZXN0X3ByaW8pIHsKKwkJc3RydWN0IHJxICpycSA9IHJxX29mX3J0X3JxKHJ0X3JxKTsKKworCQlpZiAocnEtPm9ubGluZSkKKwkJCWNwdXByaV9zZXQoJnJxLT5yZC0+Y3B1cHJpLCBycS0+Y3B1LAorCQkJCSAgIHJ0X3JxLT5oaWdoZXN0X3ByaW8pOworCX0KKwogCXVwZGF0ZV9ydF9taWdyYXRpb24ocnFfb2ZfcnRfcnEocnRfcnEpKTsKICNlbmRpZiAvKiBDT05GSUdfU01QICovCiAjaWZkZWYgQ09ORklHX1JUX0dST1VQX1NDSEVECkBAIC00NDksMjIgKzU4MywzMyBAQAogI2VuZGlmCiB9CiAKLXN0YXRpYyB2b2lkIGVucXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQorc3RhdGljIHZvaWQgX19lbnF1ZXVlX3J0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKIAlzdHJ1Y3QgcnRfcnEgKnJ0X3JxID0gcnRfcnFfb2Zfc2UocnRfc2UpOwogCXN0cnVjdCBydF9wcmlvX2FycmF5ICphcnJheSA9ICZydF9ycS0+YWN0aXZlOwogCXN0cnVjdCBydF9ycSAqZ3JvdXBfcnEgPSBncm91cF9ydF9ycShydF9zZSk7CisJc3RydWN0IGxpc3RfaGVhZCAqcXVldWUgPSBhcnJheS0+cXVldWUgKyBydF9zZV9wcmlvKHJ0X3NlKTsKIAotCWlmIChncm91cF9ycSAmJiBydF9ycV90aHJvdHRsZWQoZ3JvdXBfcnEpKQorCS8qCisJICogRG9uJ3QgZW5xdWV1ZSB0aGUgZ3JvdXAgaWYgaXRzIHRocm90dGxlZCwgb3Igd2hlbiBlbXB0eS4KKwkgKiBUaGUgbGF0dGVyIGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhlIGZvcm1lciB3aGVuIGEgY2hpbGQgZ3JvdXAKKwkgKiBnZXQgdGhyb3R0bGVkIGFuZCB0aGUgY3VycmVudCBncm91cCBkb2Vzbid0IGhhdmUgYW55IG90aGVyCisJICogYWN0aXZlIG1lbWJlcnMuCisJICovCisJaWYgKGdyb3VwX3JxICYmIChydF9ycV90aHJvdHRsZWQoZ3JvdXBfcnEpIHx8ICFncm91cF9ycS0+cnRfbnJfcnVubmluZykpCiAJCXJldHVybjsKIAotCWxpc3RfYWRkX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgYXJyYXktPnF1ZXVlICsgcnRfc2VfcHJpbyhydF9zZSkpOworCWlmIChydF9zZS0+bnJfY3B1c19hbGxvd2VkID09IDEpCisJCWxpc3RfYWRkKCZydF9zZS0+cnVuX2xpc3QsIHF1ZXVlKTsKKwllbHNlCisJCWxpc3RfYWRkX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgcXVldWUpOworCiAJX19zZXRfYml0KHJ0X3NlX3ByaW8ocnRfc2UpLCBhcnJheS0+Yml0bWFwKTsKIAogCWluY19ydF90YXNrcyhydF9zZSwgcnRfcnEpOwogfQogCi1zdGF0aWMgdm9pZCBkZXF1ZXVlX3J0X2VudGl0eShzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKK3N0YXRpYyB2b2lkIF9fZGVxdWV1ZV9ydF9lbnRpdHkoc3RydWN0IHNjaGVkX3J0X2VudGl0eSAqcnRfc2UpCiB7CiAJc3RydWN0IHJ0X3JxICpydF9ycSA9IHJ0X3JxX29mX3NlKHJ0X3NlKTsKIAlzdHJ1Y3QgcnRfcHJpb19hcnJheSAqYXJyYXkgPSAmcnRfcnEtPmFjdGl2ZTsKQEAgLTQ4MCwxMSArNjI1LDEwIEBACiAgKiBCZWNhdXNlIHRoZSBwcmlvIG9mIGFuIHVwcGVyIGVudHJ5IGRlcGVuZHMgb24gdGhlIGxvd2VyCiAgKiBlbnRyaWVzLCB3ZSBtdXN0IHJlbW92ZSBlbnRyaWVzIHRvcCAtIGRvd24uCiAgKi8KLXN0YXRpYyB2b2lkIGRlcXVldWVfcnRfc3RhY2soc3RydWN0IHRhc2tfc3RydWN0ICpwKQorc3RhdGljIHZvaWQgZGVxdWV1ZV9ydF9zdGFjayhzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSkKIHsKLQlzdHJ1Y3Qgc2NoZWRfcnRfZW50aXR5ICpydF9zZSwgKmJhY2sgPSBOVUxMOworCXN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKmJhY2sgPSBOVUxMOwogCi0JcnRfc2UgPSAmcC0+cnQ7CiAJZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKSB7CiAJCXJ0X3NlLT5iYWNrID0gYmFjazsKIAkJYmFjayA9IHJ0X3NlOwpAQCAtNDkyLDcgKzYzNiwyNiBAQAogCiAJZm9yIChydF9zZSA9IGJhY2s7IHJ0X3NlOyBydF9zZSA9IHJ0X3NlLT5iYWNrKSB7CiAJCWlmIChvbl9ydF9ycShydF9zZSkpCi0JCQlkZXF1ZXVlX3J0X2VudGl0eShydF9zZSk7CisJCQlfX2RlcXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGVucXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQoreworCWRlcXVldWVfcnRfc3RhY2socnRfc2UpOworCWZvcl9lYWNoX3NjaGVkX3J0X2VudGl0eShydF9zZSkKKwkJX19lbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7Cit9CisKK3N0YXRpYyB2b2lkIGRlcXVldWVfcnRfZW50aXR5KHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlKQoreworCWRlcXVldWVfcnRfc3RhY2socnRfc2UpOworCisJZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKSB7CisJCXN0cnVjdCBydF9ycSAqcnRfcnEgPSBncm91cF9ydF9ycShydF9zZSk7CisKKwkJaWYgKHJ0X3JxICYmIHJ0X3JxLT5ydF9ucl9ydW5uaW5nKQorCQkJX19lbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7CiAJfQogfQogCkBAIC01MDYsMTMgKzY2OSw3IEBACiAJaWYgKHdha2V1cCkKIAkJcnRfc2UtPnRpbWVvdXQgPSAwOwogCi0JZGVxdWV1ZV9ydF9zdGFjayhwKTsKLQotCS8qCi0JICogZW5xdWV1ZSBldmVyeWJvZHksIGJvdHRvbSAtIHVwLgotCSAqLwotCWZvcl9lYWNoX3NjaGVkX3J0X2VudGl0eShydF9zZSkKLQkJZW5xdWV1ZV9ydF9lbnRpdHkocnRfc2UpOworCWVucXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKIAogCWluY19jcHVfbG9hZChycSwgcC0+c2UubG9hZC53ZWlnaHQpOwogfQpAQCAtNTIwLDIwICs2NzcsOSBAQAogc3RhdGljIHZvaWQgZGVxdWV1ZV90YXNrX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IHNsZWVwKQogewogCXN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnJ0X3NlID0gJnAtPnJ0OwotCXN0cnVjdCBydF9ycSAqcnRfcnE7CiAKIAl1cGRhdGVfY3Vycl9ydChycSk7Ci0KLQlkZXF1ZXVlX3J0X3N0YWNrKHApOwotCi0JLyoKLQkgKiByZS1lbnF1ZXVlIGFsbCBub24tZW1wdHkgcnRfcnEgZW50aXRpZXMuCi0JICovCi0JZm9yX2VhY2hfc2NoZWRfcnRfZW50aXR5KHJ0X3NlKSB7Ci0JCXJ0X3JxID0gZ3JvdXBfcnRfcnEocnRfc2UpOwotCQlpZiAocnRfcnEgJiYgcnRfcnEtPnJ0X25yX3J1bm5pbmcpCi0JCQllbnF1ZXVlX3J0X2VudGl0eShydF9zZSk7Ci0JfQorCWRlcXVldWVfcnRfZW50aXR5KHJ0X3NlKTsKIAogCWRlY19jcHVfbG9hZChycSwgcC0+c2UubG9hZC53ZWlnaHQpOwogfQpAQCAtNTQ3LDcgKzY5MywxMSBAQAogewogCXN0cnVjdCBydF9wcmlvX2FycmF5ICphcnJheSA9ICZydF9ycS0+YWN0aXZlOwogCi0JbGlzdF9tb3ZlX3RhaWwoJnJ0X3NlLT5ydW5fbGlzdCwgYXJyYXktPnF1ZXVlICsgcnRfc2VfcHJpbyhydF9zZSkpOworCWlmIChvbl9ydF9ycShydF9zZSkpIHsKKwkJbGlzdF9kZWxfaW5pdCgmcnRfc2UtPnJ1bl9saXN0KTsKKwkJbGlzdF9hZGRfdGFpbCgmcnRfc2UtPnJ1bl9saXN0LAorCQkJICAgICAgYXJyYXktPnF1ZXVlICsgcnRfc2VfcHJpbyhydF9zZSkpOworCX0KIH0KIAogc3RhdGljIHZvaWQgcmVxdWV1ZV90YXNrX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKQEAgLTYxMCw4ICs3NjAsMzcgQEAKICAqLwogc3RhdGljIHZvaWQgY2hlY2tfcHJlZW1wdF9jdXJyX3J0KHN0cnVjdCBycSAqcnEsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKIHsKLQlpZiAocC0+cHJpbyA8IHJxLT5jdXJyLT5wcmlvKQorCWlmIChwLT5wcmlvIDwgcnEtPmN1cnItPnByaW8pIHsKIAkJcmVzY2hlZF90YXNrKHJxLT5jdXJyKTsKKwkJcmV0dXJuOworCX0KKworI2lmZGVmIENPTkZJR19TTVAKKwkvKgorCSAqIElmOgorCSAqCisJICogLSB0aGUgbmV3bHkgd29rZW4gdGFzayBpcyBvZiBlcXVhbCBwcmlvcml0eSB0byB0aGUgY3VycmVudCB0YXNrCisJICogLSB0aGUgbmV3bHkgd29rZW4gdGFzayBpcyBub24tbWlncmF0YWJsZSB3aGlsZSBjdXJyZW50IGlzIG1pZ3JhdGFibGUKKwkgKiAtIGN1cnJlbnQgd2lsbCBiZSBwcmVlbXB0ZWQgb24gdGhlIG5leHQgcmVzY2hlZHVsZQorCSAqCisJICogd2Ugc2hvdWxkIGNoZWNrIHRvIHNlZSBpZiBjdXJyZW50IGNhbiByZWFkaWx5IG1vdmUgdG8gYSBkaWZmZXJlbnQKKwkgKiBjcHUuICBJZiBzbywgd2Ugd2lsbCByZXNjaGVkdWxlIHRvIGFsbG93IHRoZSBwdXNoIGxvZ2ljIHRvIHRyeQorCSAqIHRvIG1vdmUgY3VycmVudCBzb21ld2hlcmUgZWxzZSwgbWFraW5nIHJvb20gZm9yIG91ciBub24tbWlncmF0YWJsZQorCSAqIHRhc2suCisJICovCisJaWYoKHAtPnByaW8gPT0gcnEtPmN1cnItPnByaW8pCisJICAgJiYgcC0+cnQubnJfY3B1c19hbGxvd2VkID09IDEKKwkgICAmJiBycS0+Y3Vyci0+cnQubnJfY3B1c19hbGxvd2VkICE9IDEpIHsKKwkJY3B1bWFza190IG1hc2s7CisKKwkJaWYgKGNwdXByaV9maW5kKCZycS0+cmQtPmNwdXByaSwgcnEtPmN1cnIsICZtYXNrKSkKKwkJCS8qCisJCQkgKiBUaGVyZSBhcHBlYXJzIHRvIGJlIG90aGVyIGNwdXMgdGhhdCBjYW4gYWNjZXB0CisJCQkgKiBjdXJyZW50LCBzbyBsZXRzIHJlc2NoZWR1bGUgdG8gdHJ5IGFuZCBwdXNoIGl0IGF3YXkKKwkJCSAqLworCQkJcmVzY2hlZF90YXNrKHJxLT5jdXJyKTsKKwl9CisjZW5kaWYKIH0KIAogc3RhdGljIHN0cnVjdCBzY2hlZF9ydF9lbnRpdHkgKnBpY2tfbmV4dF9ydF9lbnRpdHkoc3RydWN0IHJxICpycSwKQEAgLTcxNCw3MyArODkzLDYgQEAKIAogc3RhdGljIERFRklORV9QRVJfQ1BVKGNwdW1hc2tfdCwgbG9jYWxfY3B1X21hc2spOwogCi1zdGF0aWMgaW50IGZpbmRfbG93ZXN0X2NwdXMoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBjcHVtYXNrX3QgKmxvd2VzdF9tYXNrKQotewotCWludCAgICAgICBsb3dlc3RfcHJpbyA9IC0xOwotCWludCAgICAgICBsb3dlc3RfY3B1ICA9IC0xOwotCWludCAgICAgICBjb3VudCAgICAgICA9IDA7Ci0JaW50ICAgICAgIGNwdTsKLQotCWNwdXNfYW5kKCpsb3dlc3RfbWFzaywgdGFza19ycSh0YXNrKS0+cmQtPm9ubGluZSwgdGFzay0+Y3B1c19hbGxvd2VkKTsKLQotCS8qCi0JICogU2NhbiBlYWNoIHJxIGZvciB0aGUgbG93ZXN0IHByaW8uCi0JICovCi0JZm9yX2VhY2hfY3B1X21hc2soY3B1LCAqbG93ZXN0X21hc2spIHsKLQkJc3RydWN0IHJxICpycSA9IGNwdV9ycShjcHUpOwotCi0JCS8qIFdlIGxvb2sgZm9yIGxvd2VzdCBSVCBwcmlvIG9yIG5vbi1ydCBDUFUgKi8KLQkJaWYgKHJxLT5ydC5oaWdoZXN0X3ByaW8gPj0gTUFYX1JUX1BSSU8pIHsKLQkJCS8qCi0JCQkgKiBpZiB3ZSBhbHJlYWR5IGZvdW5kIGEgbG93IFJUIHF1ZXVlCi0JCQkgKiBhbmQgbm93IHdlIGZvdW5kIHRoaXMgbm9uLXJ0IHF1ZXVlCi0JCQkgKiBjbGVhciB0aGUgbWFzayBhbmQgc2V0IG91ciBiaXQuCi0JCQkgKiBPdGhlcndpc2UganVzdCByZXR1cm4gdGhlIHF1ZXVlIGFzIGlzCi0JCQkgKiBhbmQgdGhlIGNvdW50PT0xIHdpbGwgY2F1c2UgdGhlIGFsZ29yaXRobQotCQkJICogdG8gdXNlIHRoZSBmaXJzdCBiaXQgZm91bmQuCi0JCQkgKi8KLQkJCWlmIChsb3dlc3RfY3B1ICE9IC0xKSB7Ci0JCQkJY3B1c19jbGVhcigqbG93ZXN0X21hc2spOwotCQkJCWNwdV9zZXQocnEtPmNwdSwgKmxvd2VzdF9tYXNrKTsKLQkJCX0KLQkJCXJldHVybiAxOwotCQl9Ci0KLQkJLyogbm8gbG9ja2luZyBmb3Igbm93ICovCi0JCWlmICgocnEtPnJ0LmhpZ2hlc3RfcHJpbyA+IHRhc2stPnByaW8pCi0JCSAgICAmJiAocnEtPnJ0LmhpZ2hlc3RfcHJpbyA+PSBsb3dlc3RfcHJpbykpIHsKLQkJCWlmIChycS0+cnQuaGlnaGVzdF9wcmlvID4gbG93ZXN0X3ByaW8pIHsKLQkJCQkvKiBuZXcgbG93IC0gY2xlYXIgb2xkIGRhdGEgKi8KLQkJCQlsb3dlc3RfcHJpbyA9IHJxLT5ydC5oaWdoZXN0X3ByaW87Ci0JCQkJbG93ZXN0X2NwdSA9IGNwdTsKLQkJCQljb3VudCA9IDA7Ci0JCQl9Ci0JCQljb3VudCsrOwotCQl9IGVsc2UKLQkJCWNwdV9jbGVhcihjcHUsICpsb3dlc3RfbWFzayk7Ci0JfQotCi0JLyoKLQkgKiBDbGVhciBvdXQgYWxsIHRoZSBzZXQgYml0cyB0aGF0IHJlcHJlc2VudAotCSAqIHJ1bnF1ZXVlcyB0aGF0IHdlcmUgb2YgaGlnaGVyIHByaW8gdGhhbgotCSAqIHRoZSBsb3dlc3RfcHJpby4KLQkgKi8KLQlpZiAobG93ZXN0X2NwdSA+IDApIHsKLQkJLyoKLQkJICogUGVyaGFwcyB3ZSBjb3VsZCBhZGQgYW5vdGhlciBjcHVtYXNrIG9wIHRvCi0JCSAqIHplcm8gb3V0IGJpdHMuIExpa2UgY3B1X3plcm9fYml0cyhjcHVtYXNrLCBucmJpdHMpOwotCQkgKiBUaGVuIHRoYXQgY291bGQgYmUgb3B0aW1pemVkIHRvIHVzZSBtZW1zZXQgYW5kIHN1Y2guCi0JCSAqLwotCQlmb3JfZWFjaF9jcHVfbWFzayhjcHUsICpsb3dlc3RfbWFzaykgewotCQkJaWYgKGNwdSA+PSBsb3dlc3RfY3B1KQotCQkJCWJyZWFrOwotCQkJY3B1X2NsZWFyKGNwdSwgKmxvd2VzdF9tYXNrKTsKLQkJfQotCX0KLQotCXJldHVybiBjb3VudDsKLX0KLQogc3RhdGljIGlubGluZSBpbnQgcGlja19vcHRpbWFsX2NwdShpbnQgdGhpc19jcHUsIGNwdW1hc2tfdCAqbWFzaykKIHsKIAlpbnQgZmlyc3Q7CkBAIC04MDIsMTkgKzkxNCwxNCBAQAogCWNwdW1hc2tfdCAqbG93ZXN0X21hc2sgPSAmX19nZXRfY3B1X3Zhcihsb2NhbF9jcHVfbWFzayk7CiAJaW50IHRoaXNfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogCWludCBjcHUgICAgICA9IHRhc2tfY3B1KHRhc2spOwotCWludCBjb3VudCAgICA9IGZpbmRfbG93ZXN0X2NwdXModGFzaywgbG93ZXN0X21hc2spOwogCi0JaWYgKCFjb3VudCkKKwlpZiAodGFzay0+cnQubnJfY3B1c19hbGxvd2VkID09IDEpCisJCXJldHVybiAtMTsgLyogTm8gb3RoZXIgdGFyZ2V0cyBwb3NzaWJsZSAqLworCisJaWYgKCFjcHVwcmlfZmluZCgmdGFza19ycSh0YXNrKS0+cmQtPmNwdXByaSwgdGFzaywgbG93ZXN0X21hc2spKQogCQlyZXR1cm4gLTE7IC8qIE5vIHRhcmdldHMgZm91bmQgKi8KIAogCS8qCi0JICogVGhlcmUgaXMgbm8gc2Vuc2UgaW4gcGVyZm9ybWluZyBhbiBvcHRpbWFsIHNlYXJjaCBpZiBvbmx5IG9uZQotCSAqIHRhcmdldCBpcyBmb3VuZC4KLQkgKi8KLQlpZiAoY291bnQgPT0gMSkKLQkJcmV0dXJuIGZpcnN0X2NwdSgqbG93ZXN0X21hc2spOwotCi0JLyoKIAkgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgYnVpbHQgYSBtYXNrIG9mIGNwdXMgcmVwcmVzZW50aW5nIHRoZQogCSAqIGxvd2VzdCBwcmlvcml0eSB0YXNrcyBpbiB0aGUgc3lzdGVtLiAgTm93IHdlIHdhbnQgdG8gZWxlY3QKIAkgKiB0aGUgYmVzdCBvbmUgYmFzZWQgb24gb3VyIGFmZmluaXR5IGFuZCB0b3BvbG9neS4KQEAgLTExNTcsMTcgKzEyNjQsMjUgQEAKIH0KIAogLyogQXNzdW1lcyBycS0+bG9jayBpcyBoZWxkICovCi1zdGF0aWMgdm9pZCBqb2luX2RvbWFpbl9ydChzdHJ1Y3QgcnEgKnJxKQorc3RhdGljIHZvaWQgcnFfb25saW5lX3J0KHN0cnVjdCBycSAqcnEpCiB7CiAJaWYgKHJxLT5ydC5vdmVybG9hZGVkKQogCQlydF9zZXRfb3ZlcmxvYWQocnEpOworCisJX19lbmFibGVfcnVudGltZShycSk7CisKKwljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwgcnEtPnJ0LmhpZ2hlc3RfcHJpbyk7CiB9CiAKIC8qIEFzc3VtZXMgcnEtPmxvY2sgaXMgaGVsZCAqLwotc3RhdGljIHZvaWQgbGVhdmVfZG9tYWluX3J0KHN0cnVjdCBycSAqcnEpCitzdGF0aWMgdm9pZCBycV9vZmZsaW5lX3J0KHN0cnVjdCBycSAqcnEpCiB7CiAJaWYgKHJxLT5ydC5vdmVybG9hZGVkKQogCQlydF9jbGVhcl9vdmVybG9hZChycSk7CisKKwlfX2Rpc2FibGVfcnVudGltZShycSk7CisKKwljcHVwcmlfc2V0KCZycS0+cmQtPmNwdXByaSwgcnEtPmNwdSwgQ1BVUFJJX0lOVkFMSUQpOwogfQogCiAvKgpAQCAtMTMzMCw4ICsxNDQ1LDggQEAKIAkubG9hZF9iYWxhbmNlCQk9IGxvYWRfYmFsYW5jZV9ydCwKIAkubW92ZV9vbmVfdGFzawkJPSBtb3ZlX29uZV90YXNrX3J0LAogCS5zZXRfY3B1c19hbGxvd2VkICAgICAgID0gc2V0X2NwdXNfYWxsb3dlZF9ydCwKLQkuam9pbl9kb21haW4gICAgICAgICAgICA9IGpvaW5fZG9tYWluX3J0LAotCS5sZWF2ZV9kb21haW4gICAgICAgICAgID0gbGVhdmVfZG9tYWluX3J0LAorCS5ycV9vbmxpbmUgICAgICAgICAgICAgID0gcnFfb25saW5lX3J0LAorCS5ycV9vZmZsaW5lICAgICAgICAgICAgID0gcnFfb2ZmbGluZV9ydCwKIAkucHJlX3NjaGVkdWxlCQk9IHByZV9zY2hlZHVsZV9ydCwKIAkucG9zdF9zY2hlZHVsZQkJPSBwb3N0X3NjaGVkdWxlX3J0LAogCS50YXNrX3dha2VfdXAJCT0gdGFza193YWtlX3VwX3J0LApAQCAtMTM0NCwzICsxNDU5LDE3IEBACiAJLnByaW9fY2hhbmdlZAkJPSBwcmlvX2NoYW5nZWRfcnQsCiAJLnN3aXRjaGVkX3RvCQk9IHN3aXRjaGVkX3RvX3J0LAogfTsKKworI2lmZGVmIENPTkZJR19TQ0hFRF9ERUJVRworZXh0ZXJuIHZvaWQgcHJpbnRfcnRfcnEoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1LCBzdHJ1Y3QgcnRfcnEgKnJ0X3JxKTsKKworc3RhdGljIHZvaWQgcHJpbnRfcnRfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLCBpbnQgY3B1KQoreworCXN0cnVjdCBydF9ycSAqcnRfcnE7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJZm9yX2VhY2hfbGVhZl9ydF9ycShydF9ycSwgY3B1X3JxKGNwdSkpCisJCXByaW50X3J0X3JxKG0sIGNwdSwgcnRfcnEpOworCXJjdV9yZWFkX3VubG9jaygpOworfQorI2VuZGlmIC8qIENPTkZJR19TQ0hFRF9ERUJVRyAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL3NjaGVkX3N0YXRzLmggYi9rZXJuZWwvc2NoZWRfc3RhdHMuaAppbmRleCA1YmFlMmUwLi44Mzg1ZDQzIDEwMDY0NAotLS0gYS9rZXJuZWwvc2NoZWRfc3RhdHMuaAorKysgYi9rZXJuZWwvc2NoZWRfc3RhdHMuaApAQCAtNjcsNiArNjcsNyBAQAogCQlwcmVlbXB0X2VuYWJsZSgpOwogI2VuZGlmCiAJfQorCWtmcmVlKG1hc2tfc3RyKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTE3LDYgKzExOCwxMyBAQAogCWlmIChycSkKIAkJcnEtPnJxX3NjaGVkX2luZm8uY3B1X3RpbWUgKz0gZGVsdGE7CiB9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcnFfc2NoZWRfaW5mb19kZXF1ZXVlZChzdHJ1Y3QgcnEgKnJxLCB1bnNpZ25lZCBsb25nIGxvbmcgZGVsdGEpCit7CisJaWYgKHJxKQorCQlycS0+cnFfc2NoZWRfaW5mby5ydW5fZGVsYXkgKz0gZGVsdGE7Cit9CiAjIGRlZmluZSBzY2hlZHN0YXRfaW5jKHJxLCBmaWVsZCkJZG8geyAocnEpLT5maWVsZCsrOyB9IHdoaWxlICgwKQogIyBkZWZpbmUgc2NoZWRzdGF0X2FkZChycSwgZmllbGQsIGFtdCkJZG8geyAocnEpLT5maWVsZCArPSAoYW10KTsgfSB3aGlsZSAoMCkKICMgZGVmaW5lIHNjaGVkc3RhdF9zZXQodmFyLCB2YWwpCWRvIHsgdmFyID0gKHZhbCk7IH0gd2hpbGUgKDApCkBAIC0xMjUsNiArMTMzLDkgQEAKIHJxX3NjaGVkX2luZm9fYXJyaXZlKHN0cnVjdCBycSAqcnEsIHVuc2lnbmVkIGxvbmcgbG9uZyBkZWx0YSkKIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQKK3JxX3NjaGVkX2luZm9fZGVxdWV1ZWQoc3RydWN0IHJxICpycSwgdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhKQore30KK3N0YXRpYyBpbmxpbmUgdm9pZAogcnFfc2NoZWRfaW5mb19kZXBhcnQoc3RydWN0IHJxICpycSwgdW5zaWduZWQgbG9uZyBsb25nIGRlbHRhKQoge30KICMgZGVmaW5lIHNjaGVkc3RhdF9pbmMocnEsIGZpZWxkKQlkbyB7IH0gd2hpbGUgKDApCkBAIC0xMzMsNiArMTQ0LDExIEBACiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQ09ORklHX1NDSEVEU1RBVFMpIHx8IGRlZmluZWQoQ09ORklHX1RBU0tfREVMQVlfQUNDVCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY2hlZF9pbmZvX3Jlc2V0X2RlcXVldWVkKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKK3sKKwl0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkID0gMDsKK30KKwogLyoKICAqIENhbGxlZCB3aGVuIGEgcHJvY2VzcyBpcyBkZXF1ZXVlZCBmcm9tIHRoZSBhY3RpdmUgYXJyYXkgYW5kIGdpdmVuCiAgKiB0aGUgY3B1LiAgV2Ugc2hvdWxkIG5vdGUgdGhhdCB3aXRoIHRoZSBleGNlcHRpb24gb2YgaW50ZXJhY3RpdmUKQEAgLTE0MiwxNSArMTU4LDIyIEBACiAgKiBhY3RpdmUgcXVldWUsIHRodXMgZGVsYXlpbmcgdGFza3MgaW4gdGhlIGV4cGlyZWQgcXVldWUgZnJvbSBydW5uaW5nOwogICogc2VlIHNjaGVkdWxlcl90aWNrKCkpLgogICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBzY2hlZF9pbmZvX2Fycml2ZSgpLCByYXRoZXIgdGhhbgotICogZGVxdWV1ZV90YXNrKCkuIEV2ZW4gdGhvdWdoIGEgdGFzayBtYXkgYmUgcXVldWVkIGFuZCBkZXF1ZXVlZCBtdWx0aXBsZQotICogdGltZXMgYXMgaXQgaXMgc2h1ZmZsZWQgYWJvdXQsIHdlJ3JlIHJlYWxseSBpbnRlcmVzdGVkIGluIGtub3dpbmcgaG93Ci0gKiBsb25nIGl0IHdhcyBmcm9tIHRoZSAqZmlyc3QqIHRpbWUgaXQgd2FzIHF1ZXVlZCB0byB0aGUgdGltZSB0aGF0IGl0Ci0gKiBmaW5hbGx5IGhpdCBhIGNwdS4KKyAqIFRob3VnaCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiBrbm93aW5nIGhvdyBsb25nIGl0IHdhcyBmcm9tIHRoZSAqZmlyc3QqIHRpbWUgYQorICogdGFzayB3YXMgcXVldWVkIHRvIHRoZSB0aW1lIHRoYXQgaXQgZmluYWxseSBoaXQgYSBjcHUsIHdlIGNhbGwgdGhpcyByb3V0aW5lCisgKiBmcm9tIGRlcXVldWVfdGFzaygpIHRvIGFjY291bnQgZm9yIHBvc3NpYmxlIHJxLT5jbG9jayBza2V3IGFjcm9zcyBjcHVzLiBUaGUKKyAqIGRlbHRhIHRha2VuIG9uIGVhY2ggY3B1IHdvdWxkIGFubnVsIHRoZSBza2V3LgogICovCiBzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfaW5mb19kZXF1ZXVlZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQpCiB7Ci0JdC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZCA9IDA7CisJdW5zaWduZWQgbG9uZyBsb25nIG5vdyA9IHRhc2tfcnEodCktPmNsb2NrLCBkZWx0YSA9IDA7CisKKwlpZiAodW5saWtlbHkoc2NoZWRfaW5mb19vbigpKSkKKwkJaWYgKHQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQpCisJCQlkZWx0YSA9IG5vdyAtIHQtPnNjaGVkX2luZm8ubGFzdF9xdWV1ZWQ7CisJc2NoZWRfaW5mb19yZXNldF9kZXF1ZXVlZCh0KTsKKwl0LT5zY2hlZF9pbmZvLnJ1bl9kZWxheSArPSBkZWx0YTsKKworCXJxX3NjaGVkX2luZm9fZGVxdWV1ZWQodGFza19ycSh0KSwgZGVsdGEpOwogfQogCiAvKgpAQCAtMTY0LDcgKzE4Nyw3IEBACiAKIAlpZiAodC0+c2NoZWRfaW5mby5sYXN0X3F1ZXVlZCkKIAkJZGVsdGEgPSBub3cgLSB0LT5zY2hlZF9pbmZvLmxhc3RfcXVldWVkOwotCXNjaGVkX2luZm9fZGVxdWV1ZWQodCk7CisJc2NoZWRfaW5mb19yZXNldF9kZXF1ZXVlZCh0KTsKIAl0LT5zY2hlZF9pbmZvLnJ1bl9kZWxheSArPSBkZWx0YTsKIAl0LT5zY2hlZF9pbmZvLmxhc3RfYXJyaXZhbCA9IG5vdzsKIAl0LT5zY2hlZF9pbmZvLnBjb3VudCsrOwpAQCAtMTk3LDYgKzIyMCw5IEBACiAvKgogICogQ2FsbGVkIHdoZW4gYSBwcm9jZXNzIGNlYXNlcyBiZWluZyB0aGUgYWN0aXZlLXJ1bm5pbmcgcHJvY2VzcywgZWl0aGVyCiAgKiB2b2x1bnRhcmlseSBvciBpbnZvbHVudGFyaWx5LiAgTm93IHdlIGNhbiBjYWxjdWxhdGUgaG93IGxvbmcgd2UgcmFuLgorICogQWxzbywgaWYgdGhlIHByb2Nlc3MgaXMgc3RpbGwgaW4gdGhlIFRBU0tfUlVOTklORyBzdGF0ZSwgY2FsbAorICogc2NoZWRfaW5mb19xdWV1ZWQoKSB0byBtYXJrIHRoYXQgaXQgaGFzIG5vdyBhZ2FpbiBzdGFydGVkIHdhaXRpbmcgb24KKyAqIHRoZSBydW5xdWV1ZS4KICAqLwogc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2luZm9fZGVwYXJ0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKIHsKQEAgLTIwNSw2ICsyMzEsOSBAQAogCiAJdC0+c2NoZWRfaW5mby5jcHVfdGltZSArPSBkZWx0YTsKIAlycV9zY2hlZF9pbmZvX2RlcGFydCh0YXNrX3JxKHQpLCBkZWx0YSk7CisKKwlpZiAodC0+c3RhdGUgPT0gVEFTS19SVU5OSU5HKQorCQlzY2hlZF9pbmZvX3F1ZXVlZCh0KTsKIH0KIAogLyoKQEAgLTIzNSw3ICsyNjQsOSBAQAogCQlfX3NjaGVkX2luZm9fc3dpdGNoKHByZXYsIG5leHQpOwogfQogI2Vsc2UKLSNkZWZpbmUgc2NoZWRfaW5mb19xdWV1ZWQodCkJCWRvIHsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgc2NoZWRfaW5mb19zd2l0Y2godCwgbmV4dCkJZG8geyB9IHdoaWxlICgwKQorI2RlZmluZSBzY2hlZF9pbmZvX3F1ZXVlZCh0KQkJCWRvIHsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgc2NoZWRfaW5mb19yZXNldF9kZXF1ZXVlZCh0KQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNjaGVkX2luZm9fZGVxdWV1ZWQodCkJCQlkbyB7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNjaGVkX2luZm9fc3dpdGNoKHQsIG5leHQpCQlkbyB7IH0gd2hpbGUgKDApCiAjZW5kaWYgLyogQ09ORklHX1NDSEVEU1RBVFMgfHwgQ09ORklHX1RBU0tfREVMQVlfQUNDVCAqLwogCmRpZmYgLS1naXQgYS9rZXJuZWwvc2VtYXBob3JlLmMgYi9rZXJuZWwvc2VtYXBob3JlLmMKaW5kZXggNWMyOTQyZS4uYWFhZWFlOCAxMDA2NDQKLS0tIGEva2VybmVsL3NlbWFwaG9yZS5jCisrKyBiL2tlcm5lbC9zZW1hcGhvcmUuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAjaW5jbHVkZSA8bGludXgvc2VtYXBob3JlLmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KIAogc3RhdGljIG5vaW5saW5lIHZvaWQgX19kb3duKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSk7CiBzdGF0aWMgbm9pbmxpbmUgaW50IF9fZG93bl9pbnRlcnJ1cHRpYmxlKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSk7CmRpZmYgLS1naXQgYS9rZXJuZWwvc2lnbmFsLmMgYi9rZXJuZWwvc2lnbmFsLmMKaW5kZXggNzJiYjRmNS4uNmMwOTU4ZSAxMDA2NDQKLS0tIGEva2VybmVsL3NpZ25hbC5jCisrKyBiL2tlcm5lbC9zaWduYWwuYwpAQCAtMjMxLDYgKzIzMSw0MCBAQAogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnQtPnNpZ2hhbmQtPnNpZ2xvY2ssIGZsYWdzKTsKIH0KIAorc3RhdGljIHZvaWQgX19mbHVzaF9pdGltZXJfc2lnbmFscyhzdHJ1Y3Qgc2lncGVuZGluZyAqcGVuZGluZykKK3sKKwlzaWdzZXRfdCBzaWduYWwsIHJldGFpbjsKKwlzdHJ1Y3Qgc2lncXVldWUgKnEsICpuOworCisJc2lnbmFsID0gcGVuZGluZy0+c2lnbmFsOworCXNpZ2VtcHR5c2V0KCZyZXRhaW4pOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHEsIG4sICZwZW5kaW5nLT5saXN0LCBsaXN0KSB7CisJCWludCBzaWcgPSBxLT5pbmZvLnNpX3NpZ25vOworCisJCWlmIChsaWtlbHkocS0+aW5mby5zaV9jb2RlICE9IFNJX1RJTUVSKSkgeworCQkJc2lnYWRkc2V0KCZyZXRhaW4sIHNpZyk7CisJCX0gZWxzZSB7CisJCQlzaWdkZWxzZXQoJnNpZ25hbCwgc2lnKTsKKwkJCWxpc3RfZGVsX2luaXQoJnEtPmxpc3QpOworCQkJX19zaWdxdWV1ZV9mcmVlKHEpOworCQl9CisJfQorCisJc2lnb3JzZXRzKCZwZW5kaW5nLT5zaWduYWwsICZzaWduYWwsICZyZXRhaW4pOworfQorCit2b2lkIGZsdXNoX2l0aW1lcl9zaWduYWxzKHZvaWQpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0c2sgPSBjdXJyZW50OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmdHNrLT5zaWdoYW5kLT5zaWdsb2NrLCBmbGFncyk7CisJX19mbHVzaF9pdGltZXJfc2lnbmFscygmdHNrLT5wZW5kaW5nKTsKKwlfX2ZsdXNoX2l0aW1lcl9zaWduYWxzKCZ0c2stPnNpZ25hbC0+c2hhcmVkX3BlbmRpbmcpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRzay0+c2lnaGFuZC0+c2lnbG9jaywgZmxhZ3MpOworfQorCiB2b2lkIGlnbm9yZV9zaWduYWxzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdCkKIHsKIAlpbnQgaTsKQEAgLTEyNDAsMTcgKzEyNzQsMjIgQEAKIAogCUJVR19PTighKHEtPmZsYWdzICYgU0lHUVVFVUVfUFJFQUxMT0MpKTsKIAkvKgotCSAqIElmIHRoZSBzaWduYWwgaXMgc3RpbGwgcGVuZGluZyByZW1vdmUgaXQgZnJvbSB0aGUKLQkgKiBwZW5kaW5nIHF1ZXVlLiBXZSBtdXN0IGhvbGQgLT5zaWdsb2NrIHdoaWxlIHRlc3RpbmcKLQkgKiBxLT5saXN0IHRvIHNlcmlhbGl6ZSB3aXRoIGNvbGxlY3Rfc2lnbmFsKCkuCisJICogV2UgbXVzdCBob2xkIC0+c2lnbG9jayB3aGlsZSB0ZXN0aW5nIHEtPmxpc3QKKwkgKiB0byBzZXJpYWxpemUgd2l0aCBjb2xsZWN0X3NpZ25hbCgpIG9yIHdpdGgKKwkgKiBfX2V4aXRfc2lnbmFsKCktPmZsdXNoX3NpZ3F1ZXVlKCkuCiAJICovCiAJc3Bpbl9sb2NrX2lycXNhdmUobG9jaywgZmxhZ3MpOworCXEtPmZsYWdzICY9IH5TSUdRVUVVRV9QUkVBTExPQzsKKwkvKgorCSAqIElmIGl0IGlzIHF1ZXVlZCBpdCB3aWxsIGJlIGZyZWVkIHdoZW4gZGVxdWV1ZWQsCisJICogbGlrZSB0aGUgInJlZ3VsYXIiIHNpZ3F1ZXVlLgorCSAqLwogCWlmICghbGlzdF9lbXB0eSgmcS0+bGlzdCkpCi0JCWxpc3RfZGVsX2luaXQoJnEtPmxpc3QpOworCQlxID0gTlVMTDsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKTsKIAotCXEtPmZsYWdzICY9IH5TSUdRVUVVRV9QUkVBTExPQzsKLQlfX3NpZ3F1ZXVlX2ZyZWUocSk7CisJaWYgKHEpCisJCV9fc2lncXVldWVfZnJlZShxKTsKIH0KIAogaW50IHNlbmRfc2lncXVldWUoc3RydWN0IHNpZ3F1ZXVlICpxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQsIGludCBncm91cCkKZGlmZiAtLWdpdCBhL2tlcm5lbC9zb2Z0aXJxLmMgYi9rZXJuZWwvc29mdGlycS5jCmluZGV4IDM2ZTA2MTcuLjNlOWU4OTYgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zb2Z0aXJxLmMKKysrIGIva2VybmVsL3NvZnRpcnEuYwpAQCAtMTMxLDQ4ICsxMzEsMTEgQEAKIAogRVhQT1JUX1NZTUJPTChfbG9jYWxfYmhfZW5hYmxlKTsKIAotdm9pZCBsb2NhbF9iaF9lbmFibGUodm9pZCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBfbG9jYWxfYmhfZW5hYmxlX2lwKHVuc2lnbmVkIGxvbmcgaXApCiB7CisJV0FSTl9PTl9PTkNFKGluX2lycSgpIHx8IGlycXNfZGlzYWJsZWQoKSk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQotCVdBUk5fT05fT05DRShpbl9pcnEoKSk7Ci0jZW5kaWYKLQlXQVJOX09OX09OQ0UoaXJxc19kaXNhYmxlZCgpKTsKLQotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKLSNlbmRpZgotCS8qCi0JICogQXJlIHNvZnRpcnFzIGdvaW5nIHRvIGJlIHR1cm5lZCBvbiBub3c6Ci0JICovCi0JaWYgKHNvZnRpcnFfY291bnQoKSA9PSBTT0ZUSVJRX09GRlNFVCkKLQkJdHJhY2Vfc29mdGlycXNfb24oKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKLQkvKgotCSAqIEtlZXAgcHJlZW1wdGlvbiBkaXNhYmxlZCB1bnRpbCB3ZSBhcmUgZG9uZSB3aXRoCi0JICogc29mdGlycSBwcm9jZXNzaW5nOgotIAkgKi8KLSAJc3ViX3ByZWVtcHRfY291bnQoU09GVElSUV9PRkZTRVQgLSAxKTsKLQotCWlmICh1bmxpa2VseSghaW5faW50ZXJydXB0KCkgJiYgbG9jYWxfc29mdGlycV9wZW5kaW5nKCkpKQotCQlkb19zb2Z0aXJxKCk7Ci0KLQlkZWNfcHJlZW1wdF9jb3VudCgpOwotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKLSNlbmRpZgotCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwotfQotRVhQT1JUX1NZTUJPTChsb2NhbF9iaF9lbmFibGUpOwotCi12b2lkIGxvY2FsX2JoX2VuYWJsZV9pcCh1bnNpZ25lZCBsb25nIGlwKQotewotI2lmZGVmIENPTkZJR19UUkFDRV9JUlFGTEFHUwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0KLQlXQVJOX09OX09OQ0UoaW5faXJxKCkpOwotCi0JbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWxvY2FsX2lycV9kaXNhYmxlKCk7CiAjZW5kaWYKIAkvKgogCSAqIEFyZSBzb2Z0aXJxcyBnb2luZyB0byBiZSB0dXJuZWQgb24gbm93OgpAQCAtMTkwLDEwICsxNTMsMjEgQEAKIAogCWRlY19wcmVlbXB0X2NvdW50KCk7CiAjaWZkZWYgQ09ORklHX1RSQUNFX0lSUUZMQUdTCi0JbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCWxvY2FsX2lycV9lbmFibGUoKTsKICNlbmRpZgogCXByZWVtcHRfY2hlY2tfcmVzY2hlZCgpOwogfQorCit2b2lkIGxvY2FsX2JoX2VuYWJsZSh2b2lkKQoreworCV9sb2NhbF9iaF9lbmFibGVfaXAoKHVuc2lnbmVkIGxvbmcpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApKTsKK30KK0VYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlKTsKKwordm9pZCBsb2NhbF9iaF9lbmFibGVfaXAodW5zaWduZWQgbG9uZyBpcCkKK3sKKwlfbG9jYWxfYmhfZW5hYmxlX2lwKGlwKTsKK30KIEVYUE9SVF9TWU1CT0wobG9jYWxfYmhfZW5hYmxlX2lwKTsKIAogLyoKQEAgLTM0Nyw5ICszMjEsOCBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAotdm9pZCBvcGVuX3NvZnRpcnEoaW50IG5yLCB2b2lkICgqYWN0aW9uKShzdHJ1Y3Qgc29mdGlycV9hY3Rpb24qKSwgdm9pZCAqZGF0YSkKK3ZvaWQgb3Blbl9zb2Z0aXJxKGludCBuciwgdm9pZCAoKmFjdGlvbikoc3RydWN0IHNvZnRpcnFfYWN0aW9uICopKQogewotCXNvZnRpcnFfdmVjW25yXS5kYXRhID0gZGF0YTsKIAlzb2Z0aXJxX3ZlY1tucl0uYWN0aW9uID0gYWN0aW9uOwogfQogCkBAIC0zNjAsMTAgKzMzMyw4IEBACiAJc3RydWN0IHRhc2tsZXRfc3RydWN0ICoqdGFpbDsKIH07CiAKLS8qIFNvbWUgY29tcGlsZXJzIGRpc29iZXkgc2VjdGlvbiBhdHRyaWJ1dGUgb24gc3RhdGljcyB3aGVuIG5vdAotICAgaW5pdGlhbGl6ZWQgLS0gUlIgKi8KLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYykgPSB7IE5VTEwgfTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X2hpX3ZlYykgPSB7IE5VTEwgfTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdGFza2xldF9oZWFkLCB0YXNrbGV0X3ZlYyk7CitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRhc2tsZXRfaGVhZCwgdGFza2xldF9oaV92ZWMpOwogCiB2b2lkIF9fdGFza2xldF9zY2hlZHVsZShzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpCiB7CkBAIC01MDMsOCArNDc0LDggQEAKIAkJCSZwZXJfY3B1KHRhc2tsZXRfaGlfdmVjLCBjcHUpLmhlYWQ7CiAJfQogCi0Jb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24sIE5VTEwpOwotCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbiwgTlVMTCk7CisJb3Blbl9zb2Z0aXJxKFRBU0tMRVRfU09GVElSUSwgdGFza2xldF9hY3Rpb24pOworCW9wZW5fc29mdGlycShISV9TT0ZUSVJRLCB0YXNrbGV0X2hpX2FjdGlvbik7CiB9CiAKIHN0YXRpYyBpbnQga3NvZnRpcnFkKHZvaWQgKiBfX2JpbmRfY3B1KQpAQCAtNjQ1LDcgKzYxNiw3IEBACiAKIAkJcCA9IHBlcl9jcHUoa3NvZnRpcnFkLCBob3RjcHUpOwogCQlwZXJfY3B1KGtzb2Z0aXJxZCwgaG90Y3B1KSA9IE5VTEw7Ci0JCXNjaGVkX3NldHNjaGVkdWxlcihwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOworCQlzY2hlZF9zZXRzY2hlZHVsZXJfbm9jaGVjayhwLCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCQlrdGhyZWFkX3N0b3AocCk7CiAJCXRha2VvdmVyX3Rhc2tsZXRzKGhvdGNwdSk7CiAJCWJyZWFrOwpkaWZmIC0tZ2l0IGEva2VybmVsL3NvZnRsb2NrdXAuYyBiL2tlcm5lbC9zb2Z0bG9ja3VwLmMKaW5kZXggMDFiNjUyMi4uYTI3MmQ3OCAxMDA2NDQKLS0tIGEva2VybmVsL3NvZnRsb2NrdXAuYworKysgYi9rZXJuZWwvc29mdGxvY2t1cC5jCkBAIC00OSwxMiArNDksMTcgQEAKIAlyZXR1cm4gY3B1X2Nsb2NrKHRoaXNfY3B1KSA+PiAzMExMOyAgLyogMl4zMCB+PSAxMF45ICovCiB9CiAKLXZvaWQgdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZyh2b2lkKQorc3RhdGljIHZvaWQgX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKHZvaWQpCiB7CiAJaW50IHRoaXNfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAogCV9fcmF3X2dldF9jcHVfdmFyKHRvdWNoX3RpbWVzdGFtcCkgPSBnZXRfdGltZXN0YW1wKHRoaXNfY3B1KTsKIH0KKwordm9pZCB0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKHZvaWQpCit7CisJX19yYXdfZ2V0X2NwdV92YXIodG91Y2hfdGltZXN0YW1wKSA9IDA7Cit9CiBFWFBPUlRfU1lNQk9MKHRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2cpOwogCiB2b2lkIHRvdWNoX2FsbF9zb2Z0bG9ja3VwX3dhdGNoZG9ncyh2b2lkKQpAQCAtODAsNyArODUsNyBAQAogCXVuc2lnbmVkIGxvbmcgbm93OwogCiAJaWYgKHRvdWNoX3RpbWVzdGFtcCA9PSAwKSB7Ci0JCXRvdWNoX3NvZnRsb2NrdXBfd2F0Y2hkb2coKTsKKwkJX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CiAJCXJldHVybjsKIAl9CiAKQEAgLTk1LDcgKzEwMCw3IEBACiAKIAkvKiBkbyBub3QgcHJpbnQgZHVyaW5nIGVhcmx5IGJvb3R1cDogKi8KIAlpZiAodW5saWtlbHkoc3lzdGVtX3N0YXRlICE9IFNZU1RFTV9SVU5OSU5HKSkgewotCQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJCV9fdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwogCQlyZXR1cm47CiAJfQogCkBAIC0xMTUsNiArMTIwLDcgQEAKIAlwcmludGsoS0VSTl9FUlIgIkJVRzogc29mdCBsb2NrdXAgLSBDUFUjJWQgc3R1Y2sgZm9yICVsdXMhIFslczolZF1cbiIsCiAJCQl0aGlzX2NwdSwgbm93IC0gdG91Y2hfdGltZXN0YW1wLAogCQkJY3VycmVudC0+Y29tbSwgdGFza19waWRfbnIoY3VycmVudCkpOworCXByaW50X21vZHVsZXMoKTsKIAlpZiAocmVncykKIAkJc2hvd19yZWdzKHJlZ3MpOwogCWVsc2UKQEAgLTIxNCw3ICsyMjAsNyBAQAogCXNjaGVkX3NldHNjaGVkdWxlcihjdXJyZW50LCBTQ0hFRF9GSUZPLCAmcGFyYW0pOwogCiAJLyogaW5pdGlhbGl6ZSB0aW1lc3RhbXAgKi8KLQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJX190b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CiAKIAlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwogCS8qCkBAIC0yMjMsNyArMjI5LDcgQEAKIAkgKiBkZWJ1Zy1wcmludG91dCB0cmlnZ2VycyBpbiBzb2Z0bG9ja3VwX3RpY2soKS4KIAkgKi8KIAl3aGlsZSAoIWt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgewotCQl0b3VjaF9zb2Z0bG9ja3VwX3dhdGNoZG9nKCk7CisJCV9fdG91Y2hfc29mdGxvY2t1cF93YXRjaGRvZygpOwogCQlzY2hlZHVsZSgpOwogCiAJCWlmIChrdGhyZWFkX3Nob3VsZF9zdG9wKCkpCmRpZmYgLS1naXQgYS9rZXJuZWwvc3BpbmxvY2suYyBiL2tlcm5lbC9zcGlubG9jay5jCmluZGV4IGFlMjhjODIuLmExZmI1NGMgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9zcGlubG9jay5jCisrKyBiL2tlcm5lbC9zcGlubG9jay5jCkBAIC00MzYsNyArNDM2LDcgQEAKIH0KIEVYUE9SVF9TWU1CT0woX3NwaW5fdHJ5bG9ja19iaCk7CiAKLWludCBpbl9sb2NrX2Z1bmN0aW9ucyh1bnNpZ25lZCBsb25nIGFkZHIpCitub3RyYWNlIGludCBpbl9sb2NrX2Z1bmN0aW9ucyh1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAJLyogTGlua2VyIGFkZHMgdGhlc2U6IHN0YXJ0IGFuZCBlbmQgb2YgX19sb2NrZnVuYyBmdW5jdGlvbnMgKi8KIAlleHRlcm4gY2hhciBfX2xvY2tfdGV4dF9zdGFydFtdLCBfX2xvY2tfdGV4dF9lbmRbXTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zdG9wX21hY2hpbmUuYyBiL2tlcm5lbC9zdG9wX21hY2hpbmUuYwppbmRleCAwMTAxYWVlLi5iYTliMjA1IDEwMDY0NAotLS0gYS9rZXJuZWwvc3RvcF9tYWNoaW5lLmMKKysrIGIva2VybmVsL3N0b3BfbWFjaGluZS5jCkBAIC02Miw4ICs2Miw3IEBACiAJCSAqIGhlbHAgb3VyIHNpc3RlcnMgb250byB0aGVpciBDUFVzLiAqLwogCQlpZiAoIXByZXBhcmVkICYmICFpcnFzX2Rpc2FibGVkKQogCQkJeWllbGQoKTsKLQkJZWxzZQotCQkJY3B1X3JlbGF4KCk7CisJCWNwdV9yZWxheCgpOwogCX0KIAogCS8qIEFjazogd2UgYXJlIGV4aXRpbmcuICovCkBAIC0xMDYsOCArMTA1LDEwIEBACiAJfQogCiAJLyogV2FpdCBmb3IgdGhlbSBhbGwgdG8gY29tZSB0byBsaWZlLiAqLwotCXdoaWxlIChhdG9taWNfcmVhZCgmc3RvcG1hY2hpbmVfdGhyZWFkX2FjaykgIT0gc3RvcG1hY2hpbmVfbnVtX3RocmVhZHMpCisJd2hpbGUgKGF0b21pY19yZWFkKCZzdG9wbWFjaGluZV90aHJlYWRfYWNrKSAhPSBzdG9wbWFjaGluZV9udW1fdGhyZWFkcykgewogCQl5aWVsZCgpOworCQljcHVfcmVsYXgoKTsKKwl9CiAKIAkvKiBJZiBzb21lIGZhaWxlZCwga2lsbCB0aGVtIGFsbC4gKi8KIAlpZiAocmV0IDwgMCkgewpAQCAtMTg2LDcgKzE4Nyw3IEBACiAJCXN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHsgLnNjaGVkX3ByaW9yaXR5ID0gTUFYX1JUX1BSSU8tMSB9OwogCiAJCS8qIE9uZSBoaWdoLXByaW8gdGhyZWFkIHBlciBjcHUuICBXZSdsbCBkbyB0aGlzIG9uZS4gKi8KLQkJc2NoZWRfc2V0c2NoZWR1bGVyKHAsIFNDSEVEX0ZJRk8sICZwYXJhbSk7CisJCXNjaGVkX3NldHNjaGVkdWxlcl9ub2NoZWNrKHAsIFNDSEVEX0ZJRk8sICZwYXJhbSk7CiAJCWt0aHJlYWRfYmluZChwLCBjcHUpOwogCQl3YWtlX3VwX3Byb2Nlc3MocCk7CiAJCXdhaXRfZm9yX2NvbXBsZXRpb24oJnNtZGF0YS5kb25lKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC9zeXMuYyBiL2tlcm5lbC9zeXMuYwppbmRleCA4OTVkMmQ0Li4xNGU5NzI4IDEwMDY0NAotLS0gYS9rZXJuZWwvc3lzLmMKKysrIGIva2VybmVsL3N5cy5jCkBAIC0xNjUyLDcgKzE2NTIsNyBAQAogYXNtbGlua2FnZSBsb25nIHN5c19wcmN0bChpbnQgb3B0aW9uLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMywKIAkJCSAgdW5zaWduZWQgbG9uZyBhcmc0LCB1bnNpZ25lZCBsb25nIGFyZzUpCiB7Ci0JbG9uZyB1bmluaXRpYWxpemVkX3ZhcihlcnJvcik7CisJbG9uZyBlcnJvciA9IDA7CiAKIAlpZiAoc2VjdXJpdHlfdGFza19wcmN0bChvcHRpb24sIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUsICZlcnJvcikpCiAJCXJldHVybiBlcnJvcjsKQEAgLTE3MDEsOSArMTcwMSw3IEBACiAJCQllcnJvciA9IFBSX1RJTUlOR19TVEFUSVNUSUNBTDsKIAkJCWJyZWFrOwogCQljYXNlIFBSX1NFVF9USU1JTkc6Ci0JCQlpZiAoYXJnMiA9PSBQUl9USU1JTkdfU1RBVElTVElDQUwpCi0JCQkJZXJyb3IgPSAwOwotCQkJZWxzZQorCQkJaWYgKGFyZzIgIT0gUFJfVElNSU5HX1NUQVRJU1RJQ0FMKQogCQkJCWVycm9yID0gLUVJTlZBTDsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvc3lzY3RsLmMgYi9rZXJuZWwvc3lzY3RsLmMKaW5kZXggMjkxMTY2NS4uMGQ1NjJkNiAxMDA2NDQKLS0tIGEva2VybmVsL3N5c2N0bC5jCisrKyBiL2tlcm5lbC9zeXNjdGwuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPGxpbnV4L25mc19mcy5oPgogI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4KICNpbmNsdWRlIDxsaW51eC9yZWJvb3QuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KIAogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgpAQCAtMTMyLDggKzEzMyw2IEBACiBleHRlcm4gaW50IHNwaW5fcmV0cnk7CiAjZW5kaWYKIAotZXh0ZXJuIGludCBzeXNjdGxfaHpfdGltZXI7Ci0KICNpZmRlZiBDT05GSUdfQlNEX1BST0NFU1NfQUNDVAogZXh0ZXJuIGludCBhY2N0X3Bhcm1bXTsKICNlbmRpZgpAQCAtMjY2LDYgKzI2NSwxNCBAQAogCX0sCiAJewogCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKKwkJLnByb2NuYW1lCT0gInNjaGVkX3NoYXJlc19yYXRlbGltaXQiLAorCQkuZGF0YQkJPSAmc3lzY3RsX3NjaGVkX3NoYXJlc19yYXRlbGltaXQsCisJCS5tYXhsZW4JCT0gc2l6ZW9mKHVuc2lnbmVkIGludCksCisJCS5tb2RlCQk9IDA2NDQsCisJCS5wcm9jX2hhbmRsZXIJPSAmcHJvY19kb2ludHZlYywKKwl9LAorCXsKKwkJLmN0bF9uYW1lCT0gQ1RMX1VOTlVNQkVSRUQsCiAJCS5wcm9jbmFtZQk9ICJzY2hlZF9jaGlsZF9ydW5zX2ZpcnN0IiwKIAkJLmRhdGEJCT0gJnN5c2N0bF9zY2hlZF9jaGlsZF9ydW5zX2ZpcnN0LAogCQkubWF4bGVuCQk9IHNpemVvZih1bnNpZ25lZCBpbnQpLApAQCAtNDU1LDYgKzQ2MiwxNiBAQAogCQkubW9kZQkJPSAwNjQ0LAogCQkucHJvY19oYW5kbGVyCT0gJnByb2NfZG9pbnR2ZWMsCiAJfSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJeworCQkuY3RsX25hbWUJPSBDVExfVU5OVU1CRVJFRCwKKwkJLnByb2NuYW1lCT0gImZ0cmFjZV9lbmFibGVkIiwKKwkJLmRhdGEJCT0gJmZ0cmFjZV9lbmFibGVkLAorCQkubWF4bGVuCQk9IHNpemVvZihpbnQpLAorCQkubW9kZQkJPSAwNjQ0LAorCQkucHJvY19oYW5kbGVyCT0gJmZ0cmFjZV9lbmFibGVfc3lzY3RsLAorCX0sCisjZW5kaWYKICNpZmRlZiBDT05GSUdfS01PRAogCXsKIAkJLmN0bF9uYW1lCT0gS0VSTl9NT0RQUk9CRSwKQEAgLTU2MywxNiArNTgwLDYgQEAKIAkJLnByb2NfaGFuZGxlcgk9ICZwcm9jX2RvaW50dmVjLAogCX0sCiAjZW5kaWYKLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotCXsKLQkJLmN0bF9uYW1lICAgICAgID0gS0VSTl9IWl9USU1FUiwKLQkJLnByb2NuYW1lICAgICAgID0gImh6X3RpbWVyIiwKLQkJLmRhdGEgICAgICAgICAgID0gJnN5c2N0bF9oel90aW1lciwKLQkJLm1heGxlbiAgICAgICAgID0gc2l6ZW9mKGludCksCi0JCS5tb2RlICAgICAgICAgICA9IDA2NDQsCi0JCS5wcm9jX2hhbmRsZXIgICA9ICZwcm9jX2RvaW50dmVjLAotCX0sCi0jZW5kaWYKIAl7CiAJCS5jdGxfbmFtZQk9IEtFUk5fUzM5MF9VU0VSX0RFQlVHX0xPR0dJTkcsCiAJCS5wcm9jbmFtZQk9ICJ1c2VycHJvY2Vzc19kZWJ1ZyIsCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jIGIva2VybmVsL3RpbWUvdGljay1icm9hZGNhc3QuYwppbmRleCA1N2ExZjAyLi42N2Y4MGMyIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS90aWNrLWJyb2FkY2FzdC5jCisrKyBiL2tlcm5lbC90aW1lL3RpY2stYnJvYWRjYXN0LmMKQEAgLTMwLDYgKzMwLDcgQEAKIHN0cnVjdCB0aWNrX2RldmljZSB0aWNrX2Jyb2FkY2FzdF9kZXZpY2U7CiBzdGF0aWMgY3B1bWFza190IHRpY2tfYnJvYWRjYXN0X21hc2s7CiBzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRpY2tfYnJvYWRjYXN0X2xvY2spOworc3RhdGljIGludCB0aWNrX2Jyb2FkY2FzdF9mb3JjZTsKIAogI2lmZGVmIENPTkZJR19USUNLX09ORVNIT1QKIHN0YXRpYyB2b2lkIHRpY2tfYnJvYWRjYXN0X2NsZWFyX29uZXNob3QoaW50IGNwdSk7CkBAIC0yMzIsMTAgKzIzMywxMSBAQAogCQkJCQkJICAgICBDTE9DS19FVlRfTU9ERV9TSFVURE9XTik7CiAJCX0KIAkJaWYgKCpyZWFzb24gPT0gQ0xPQ0tfRVZUX05PVElGWV9CUk9BRENBU1RfRk9SQ0UpCi0JCQlkZXYtPmZlYXR1cmVzIHw9IENMT0NLX0VWVF9GRUFUX0RVTU1ZOworCQkJdGlja19icm9hZGNhc3RfZm9yY2UgPSAxOwogCQlicmVhazsKIAljYXNlIENMT0NLX0VWVF9OT1RJRllfQlJPQURDQVNUX09GRjoKLQkJaWYgKGNwdV9pc3NldChjcHUsIHRpY2tfYnJvYWRjYXN0X21hc2spKSB7CisJCWlmICghdGlja19icm9hZGNhc3RfZm9yY2UgJiYKKwkJICAgIGNwdV9pc3NldChjcHUsIHRpY2tfYnJvYWRjYXN0X21hc2spKSB7CiAJCQljcHVfY2xlYXIoY3B1LCB0aWNrX2Jyb2FkY2FzdF9tYXNrKTsKIAkJCWlmICh0ZC0+bW9kZSA9PSBUSUNLREVWX01PREVfUEVSSU9ESUMpCiAJCQkJdGlja19zZXR1cF9wZXJpb2RpYyhkZXYsIDApOwpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUvdGljay1zY2hlZC5jIGIva2VybmVsL3RpbWUvdGljay1zY2hlZC5jCmluZGV4IGI4NTRhODkuLmQ2MzAwOGIgMTAwNjQ0Ci0tLSBhL2tlcm5lbC90aW1lL3RpY2stc2NoZWQuYworKysgYi9rZXJuZWwvdGltZS90aWNrLXNjaGVkLmMKQEAgLTI3Niw2ICsyNzYsNyBAQAogCQkJdHMtPnRpY2tfc3RvcHBlZCA9IDE7CiAJCQl0cy0+aWRsZV9qaWZmaWVzID0gbGFzdF9qaWZmaWVzOwogCQkJcmN1X2VudGVyX25vaHooKTsKKwkJCXNjaGVkX2Nsb2NrX3RpY2tfc3RvcChjcHUpOwogCQl9CiAKIAkJLyoKQEAgLTM3NSw2ICszNzYsNyBAQAogCXNlbGVjdF9ub2h6X2xvYWRfYmFsYW5jZXIoMCk7CiAJbm93ID0ga3RpbWVfZ2V0KCk7CiAJdGlja19kb191cGRhdGVfamlmZmllczY0KG5vdyk7CisJc2NoZWRfY2xvY2tfdGlja19zdGFydChjcHUpOwogCWNwdV9jbGVhcihjcHUsIG5vaHpfY3B1X21hc2spOwogCiAJLyoKZGlmZiAtLWdpdCBhL2tlcm5lbC90aW1lci5jIGIva2VybmVsL3RpbWVyLmMKaW5kZXggY2VhY2M2Ni4uMDNiYzdmMSAxMDA2NDQKLS0tIGEva2VybmVsL3RpbWVyLmMKKysrIGIva2VybmVsL3RpbWVyLmMKQEAgLTgxMiw3ICs4MTIsNyBAQAogCXNwaW5fdW5sb2NrX2lycSgmYmFzZS0+bG9jayk7CiB9CiAKLSNpZiBkZWZpbmVkKENPTkZJR19OT19JRExFX0haKSB8fCBkZWZpbmVkKENPTkZJR19OT19IWikKKyNpZmRlZiBDT05GSUdfTk9fSFoKIC8qCiAgKiBGaW5kIG91dCB3aGVuIHRoZSBuZXh0IHRpbWVyIGV2ZW50IGlzIGR1ZSB0byBoYXBwZW4uIFRoaXMKICAqIGlzIHVzZWQgb24gUy8zOTAgdG8gc3RvcCBhbGwgYWN0aXZpdHkgd2hlbiBhIGNwdXMgaXMgaWRsZS4KQEAgLTk0NywxNCArOTQ3LDYgQEAKIAogCXJldHVybiBjbXBfbmV4dF9ocnRpbWVyX2V2ZW50KG5vdywgZXhwaXJlcyk7CiB9Ci0KLSNpZmRlZiBDT05GSUdfTk9fSURMRV9IWgotdW5zaWduZWQgbG9uZyBuZXh0X3RpbWVyX2ludGVycnVwdCh2b2lkKQotewotCXJldHVybiBnZXRfbmV4dF90aW1lcl9pbnRlcnJ1cHQoamlmZmllcyk7Ci19Ci0jZW5kaWYKLQogI2VuZGlmCiAKICNpZm5kZWYgQ09ORklHX1ZJUlRfQ1BVX0FDQ09VTlRJTkcKQEAgLTE1MDIsNyArMTQ5NCw3IEBACiAKIAlCVUdfT04oZXJyID09IE5PVElGWV9CQUQpOwogCXJlZ2lzdGVyX2NwdV9ub3RpZmllcigmdGltZXJzX25iKTsKLQlvcGVuX3NvZnRpcnEoVElNRVJfU09GVElSUSwgcnVuX3RpbWVyX3NvZnRpcnEsIE5VTEwpOworCW9wZW5fc29mdGlycShUSU1FUl9TT0ZUSVJRLCBydW5fdGltZXJfc29mdGlycSk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL0tjb25maWcgYi9rZXJuZWwvdHJhY2UvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjNlOWU2Ci0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL0tjb25maWcKQEAgLTAsMCArMSwxMzUgQEAKKyMKKyMgQXJjaGl0ZWN0dXJlcyB0aGF0IG9mZmVyIGFuIEZUUkFDRSBpbXBsZW1lbnRhdGlvbiBzaG91bGQgc2VsZWN0IEhBVkVfRlRSQUNFOgorIworY29uZmlnIEhBVkVfRlRSQUNFCisJYm9vbAorCitjb25maWcgSEFWRV9EWU5BTUlDX0ZUUkFDRQorCWJvb2wKKworY29uZmlnIFRSQUNFUl9NQVhfVFJBQ0UKKwlib29sCisKK2NvbmZpZyBUUkFDSU5HCisJYm9vbAorCXNlbGVjdCBERUJVR19GUworCXNlbGVjdCBTVEFDS1RSQUNFCisKK2NvbmZpZyBGVFJBQ0UKKwlib29sICJLZXJuZWwgRnVuY3Rpb24gVHJhY2VyIgorCWRlcGVuZHMgb24gSEFWRV9GVFJBQ0UKKwlzZWxlY3QgRlJBTUVfUE9JTlRFUgorCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IENPTlRFWFRfU1dJVENIX1RSQUNFUgorCWhlbHAKKwkgIEVuYWJsZSB0aGUga2VybmVsIHRvIHRyYWNlIGV2ZXJ5IGtlcm5lbCBmdW5jdGlvbi4gVGhpcyBpcyBkb25lCisJICBieSB1c2luZyBhIGNvbXBpbGVyIGZlYXR1cmUgdG8gaW5zZXJ0IGEgc21hbGwsIDUtYnl0ZSBOby1PcGVyYXRpb24KKwkgIGluc3RydWN0aW9uIHRvIHRoZSBiZWdpbm5pbmcgb2YgZXZlcnkga2VybmVsIGZ1bmN0aW9uLCB3aGljaCBOT1AKKwkgIHNlcXVlbmNlIGlzIHRoZW4gZHluYW1pY2FsbHkgcGF0Y2hlZCBpbnRvIGEgdHJhY2VyIGNhbGwgd2hlbgorCSAgdHJhY2luZyBpcyBlbmFibGVkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yLiBJZiBpdCdzIHJ1bnRpbWUgZGlzYWJsZWQKKwkgICh0aGUgYm9vdHVwIGRlZmF1bHQpLCB0aGVuIHRoZSBvdmVyaGVhZCBvZiB0aGUgaW5zdHJ1Y3Rpb25zIGlzIHZlcnkKKwkgIHNtYWxsIGFuZCBub3QgbWVhc3VyYWJsZSBldmVuIGluIG1pY3JvLWJlbmNobWFya3MuCisKK2NvbmZpZyBJUlFTT0ZGX1RSQUNFUgorCWJvb2wgIkludGVycnVwdHMtb2ZmIExhdGVuY3kgVHJhY2VyIgorCWRlZmF1bHQgbgorCWRlcGVuZHMgb24gVFJBQ0VfSVJRRkxBR1NfU1VQUE9SVAorCWRlcGVuZHMgb24gR0VORVJJQ19USU1FCisJZGVwZW5kcyBvbiBIQVZFX0ZUUkFDRQorCXNlbGVjdCBUUkFDRV9JUlFGTEFHUworCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IFRSQUNFUl9NQVhfVFJBQ0UKKwloZWxwCisJICBUaGlzIG9wdGlvbiBtZWFzdXJlcyB0aGUgdGltZSBzcGVudCBpbiBpcnFzLW9mZiBjcml0aWNhbAorCSAgc2VjdGlvbnMsIHdpdGggbWljcm9zZWNvbmQgYWNjdXJhY3kuCisKKwkgIFRoZSBkZWZhdWx0IG1lYXN1cmVtZW50IG1ldGhvZCBpcyBhIG1heGltdW0gc2VhcmNoLCB3aGljaCBpcworCSAgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgY2FuIGJlIHJ1bnRpbWUgKHJlLSlzdGFydGVkCisJICB2aWE6CisKKwkgICAgICBlY2hvIDAgPiAvZGVidWdmcy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKworCSAgKE5vdGUgdGhhdCBrZXJuZWwgc2l6ZSBhbmQgb3ZlcmhlYWQgaW5jcmVhc2VzIHdpdGggdGhpcyBvcHRpb24KKwkgIGVuYWJsZWQuIFRoaXMgb3B0aW9uIGFuZCB0aGUgcHJlZW1wdC1vZmYgdGltaW5nIG9wdGlvbiBjYW4gYmUKKwkgIHVzZWQgdG9nZXRoZXIgb3Igc2VwYXJhdGVseS4pCisKK2NvbmZpZyBQUkVFTVBUX1RSQUNFUgorCWJvb2wgIlByZWVtcHRpb24tb2ZmIExhdGVuY3kgVHJhY2VyIgorCWRlZmF1bHQgbgorCWRlcGVuZHMgb24gR0VORVJJQ19USU1FCisJZGVwZW5kcyBvbiBQUkVFTVBUCisJZGVwZW5kcyBvbiBIQVZFX0ZUUkFDRQorCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IFRSQUNFUl9NQVhfVFJBQ0UKKwloZWxwCisJICBUaGlzIG9wdGlvbiBtZWFzdXJlcyB0aGUgdGltZSBzcGVudCBpbiBwcmVlbXB0aW9uIG9mZiBjcml0aWNhbAorCSAgc2VjdGlvbnMsIHdpdGggbWljcm9zZWNvbmQgYWNjdXJhY3kuCisKKwkgIFRoZSBkZWZhdWx0IG1lYXN1cmVtZW50IG1ldGhvZCBpcyBhIG1heGltdW0gc2VhcmNoLCB3aGljaCBpcworCSAgZGlzYWJsZWQgYnkgZGVmYXVsdCBhbmQgY2FuIGJlIHJ1bnRpbWUgKHJlLSlzdGFydGVkCisJICB2aWE6CisKKwkgICAgICBlY2hvIDAgPiAvZGVidWdmcy90cmFjaW5nL3RyYWNpbmdfbWF4X2xhdGVuY3kKKworCSAgKE5vdGUgdGhhdCBrZXJuZWwgc2l6ZSBhbmQgb3ZlcmhlYWQgaW5jcmVhc2VzIHdpdGggdGhpcyBvcHRpb24KKwkgIGVuYWJsZWQuIFRoaXMgb3B0aW9uIGFuZCB0aGUgaXJxcy1vZmYgdGltaW5nIG9wdGlvbiBjYW4gYmUKKwkgIHVzZWQgdG9nZXRoZXIgb3Igc2VwYXJhdGVseS4pCisKK2NvbmZpZyBTWVNQUk9GX1RSQUNFUgorCWJvb2wgIlN5c3Byb2YgVHJhY2VyIgorCWRlcGVuZHMgb24gWDg2CisJc2VsZWN0IFRSQUNJTkcKKwloZWxwCisJICBUaGlzIHRyYWNlciBwcm92aWRlcyB0aGUgdHJhY2UgbmVlZGVkIGJ5IHRoZSAnU3lzcHJvZicgdXNlcnNwYWNlCisJICB0b29sLgorCitjb25maWcgU0NIRURfVFJBQ0VSCisJYm9vbCAiU2NoZWR1bGluZyBMYXRlbmN5IFRyYWNlciIKKwlkZXBlbmRzIG9uIEhBVkVfRlRSQUNFCisJc2VsZWN0IFRSQUNJTkcKKwlzZWxlY3QgQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCisJc2VsZWN0IFRSQUNFUl9NQVhfVFJBQ0UKKwloZWxwCisJICBUaGlzIHRyYWNlciB0cmFja3MgdGhlIGxhdGVuY3kgb2YgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgdGFzaworCSAgdG8gYmUgc2NoZWR1bGVkIGluLCBzdGFydGluZyBmcm9tIHRoZSBwb2ludCBpdCBoYXMgd29rZW4gdXAuCisKK2NvbmZpZyBDT05URVhUX1NXSVRDSF9UUkFDRVIKKwlib29sICJUcmFjZSBwcm9jZXNzIGNvbnRleHQgc3dpdGNoZXMiCisJZGVwZW5kcyBvbiBIQVZFX0ZUUkFDRQorCXNlbGVjdCBUUkFDSU5HCisJc2VsZWN0IE1BUktFUlMKKwloZWxwCisJICBUaGlzIHRyYWNlciBnZXRzIGNhbGxlZCBmcm9tIHRoZSBjb250ZXh0IHN3aXRjaCBhbmQgcmVjb3JkcworCSAgYWxsIHN3aXRjaGluZyBvZiB0YXNrcy4KKworY29uZmlnIERZTkFNSUNfRlRSQUNFCisJYm9vbCAiZW5hYmxlL2Rpc2FibGUgZnRyYWNlIHRyYWNlcG9pbnRzIGR5bmFtaWNhbGx5IgorCWRlcGVuZHMgb24gRlRSQUNFCisJZGVwZW5kcyBvbiBIQVZFX0RZTkFNSUNfRlRSQUNFCisJZGVmYXVsdCB5CisJaGVscAorICAgICAgICAgVGhpcyBvcHRpb24gd2lsbCBtb2RpZnkgYWxsIHRoZSBjYWxscyB0byBmdHJhY2UgZHluYW1pY2FsbHkKKwkgKHdpbGwgcGF0Y2ggdGhlbSBvdXQgb2YgdGhlIGJpbmFyeSBpbWFnZSBhbmQgcmVwbGFjZXMgdGhlbQorCSB3aXRoIGEgTm8tT3AgaW5zdHJ1Y3Rpb24pIGFzIHRoZXkgYXJlIGNhbGxlZC4gQSB0YWJsZSBpcworCSBjcmVhdGVkIHRvIGR5bmFtaWNhbGx5IGVuYWJsZSB0aGVtIGFnYWluLgorCisJIFRoaXMgd2F5IGEgQ09ORklHX0ZUUkFDRSBrZXJuZWwgaXMgc2xpZ2h0bHkgbGFyZ2VyLCBidXQgb3RoZXJ3aXNlCisJIGhhcyBuYXRpdmUgcGVyZm9ybWFuY2UgYXMgbG9uZyBhcyBubyB0cmFjaW5nIGlzIGFjdGl2ZS4KKworCSBUaGUgY2hhbmdlcyB0byB0aGUgY29kZSBhcmUgZG9uZSBieSBhIGtlcm5lbCB0aHJlYWQgdGhhdAorCSB3YWtlcyB1cCBvbmNlIGEgc2Vjb25kIGFuZCBjaGVja3MgdG8gc2VlIGlmIGFueSBmdHJhY2UgY2FsbHMKKwkgd2VyZSBtYWRlLiBJZiBzbywgaXQgcnVucyBzdG9wX21hY2hpbmUgKHN0b3BzIGFsbCBDUFVTKQorCSBhbmQgbW9kaWZpZXMgdGhlIGNvZGUgdG8ganVtcCBvdmVyIHRoZSBjYWxsIHRvIGZ0cmFjZS4KKworY29uZmlnIEZUUkFDRV9TRUxGVEVTVAorCWJvb2wKKworY29uZmlnIEZUUkFDRV9TVEFSVFVQX1RFU1QKKwlib29sICJQZXJmb3JtIGEgc3RhcnR1cCB0ZXN0IG9uIGZ0cmFjZSIKKwlkZXBlbmRzIG9uIFRSQUNJTkcKKwlzZWxlY3QgRlRSQUNFX1NFTEZURVNUCisJaGVscAorCSAgVGhpcyBvcHRpb24gcGVyZm9ybXMgYSBzZXJpZXMgb2Ygc3RhcnR1cCB0ZXN0cyBvbiBmdHJhY2UuIE9uIGJvb3R1cAorCSAgYSBzZXJpZXMgb2YgdGVzdHMgYXJlIG1hZGUgdG8gdmVyaWZ5IHRoYXQgdGhlIHRyYWNlciBpcworCSAgZnVuY3Rpb25pbmcgcHJvcGVybHkuIEl0IHdpbGwgZG8gdGVzdHMgb24gYWxsIHRoZSBjb25maWd1cmVkCisJICB0cmFjZXJzIG9mIGZ0cmFjZS4KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS9NYWtlZmlsZSBiL2tlcm5lbC90cmFjZS9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWQxN2RlCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL01ha2VmaWxlCkBAIC0wLDAgKzEsMjQgQEAKKworIyBEbyBub3QgaW5zdHJ1bWVudCB0aGUgdHJhY2VyIGl0c2VsZjoKKworaWZkZWYgQ09ORklHX0ZUUkFDRQorT1JJR19DRkxBR1MgOj0gJChLQlVJTERfQ0ZMQUdTKQorS0JVSUxEX0NGTEFHUyA9ICQoc3Vic3QgLXBnLCwkKE9SSUdfQ0ZMQUdTKSkKKworIyBzZWxmdGVzdCBuZWVkcyBpbnN0cnVtZW50YXRpb24KK0NGTEFHU190cmFjZV9zZWxmdGVzdF9keW5hbWljLm8gPSAtcGcKK29iai15ICs9IHRyYWNlX3NlbGZ0ZXN0X2R5bmFtaWMubworZW5kaWYKKworb2JqLSQoQ09ORklHX0ZUUkFDRSkgKz0gbGliZnRyYWNlLm8KKworb2JqLSQoQ09ORklHX1RSQUNJTkcpICs9IHRyYWNlLm8KK29iai0kKENPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVIpICs9IHRyYWNlX3NjaGVkX3N3aXRjaC5vCitvYmotJChDT05GSUdfU1lTUFJPRl9UUkFDRVIpICs9IHRyYWNlX3N5c3Byb2Yubworb2JqLSQoQ09ORklHX0ZUUkFDRSkgKz0gdHJhY2VfZnVuY3Rpb25zLm8KK29iai0kKENPTkZJR19JUlFTT0ZGX1RSQUNFUikgKz0gdHJhY2VfaXJxc29mZi5vCitvYmotJChDT05GSUdfUFJFRU1QVF9UUkFDRVIpICs9IHRyYWNlX2lycXNvZmYubworb2JqLSQoQ09ORklHX1NDSEVEX1RSQUNFUikgKz0gdHJhY2Vfc2NoZWRfd2FrZXVwLm8KK29iai0kKENPTkZJR19NTUlPVFJBQ0UpICs9IHRyYWNlX21taW90cmFjZS5vCisKK2xpYmZ0cmFjZS15IDo9IGZ0cmFjZS5vCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvZnRyYWNlLmMgYi9rZXJuZWwvdHJhY2UvZnRyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIzMWEzZAotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYwpAQCAtMCwwICsxLDE3MjcgQEAKKy8qCisgKiBJbmZyYXN0cnVjdHVyZSBmb3IgcHJvZmlsaW5nIGNvZGUgaW5zZXJ0ZWQgYnkgJ2djYyAtcGcnLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogT3JpZ2luYWxseSBwb3J0ZWQgZnJvbSB0aGUgLXJ0IHBhdGNoIGJ5OgorICogICBDb3B5cmlnaHQgKEMpIDIwMDcgQXJuYWxkbyBDYXJ2YWxobyBkZSBNZWxvIDxhY21lQHJlZGhhdC5jb20+CisgKgorICogQmFzZWQgb24gY29kZSBpbiB0aGUgbGF0ZW5jeV90cmFjZXIsIHRoYXQgaXM6CisgKgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEluZ28gTW9sbmFyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IFdpbGxpYW0gTGVlIElyd2luIElJSQorICovCisKKyNpbmNsdWRlIDxsaW51eC9zdG9wX21hY2hpbmUuaD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3N5c2N0bC5oPgorI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisjaW5jbHVkZSA8bGludXgvaGFzaC5oPgorI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KKworI2luY2x1ZGUgPGFzbS9mdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKKy8qIGZ0cmFjZV9lbmFibGVkIGlzIGEgbWV0aG9kIHRvIHR1cm4gZnRyYWNlIG9uIG9yIG9mZiAqLworaW50IGZ0cmFjZV9lbmFibGVkIF9fcmVhZF9tb3N0bHk7CitzdGF0aWMgaW50IGxhc3RfZnRyYWNlX2VuYWJsZWQ7CisKKy8qCisgKiBmdHJhY2VfZGlzYWJsZWQgaXMgc2V0IHdoZW4gYW4gYW5vbWFseSBpcyBkaXNjb3ZlcmVkLgorICogZnRyYWNlX2Rpc2FibGVkIGlzIG11Y2ggc3Ryb25nZXIgdGhhbiBmdHJhY2VfZW5hYmxlZC4KKyAqLworc3RhdGljIGludCBmdHJhY2VfZGlzYWJsZWQgX19yZWFkX21vc3RseTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhmdHJhY2VfbG9jayk7CitzdGF0aWMgREVGSU5FX01VVEVYKGZ0cmFjZV9zeXNjdGxfbG9jayk7CisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX29wcyBmdHJhY2VfbGlzdF9lbmQgX19yZWFkX21vc3RseSA9Cit7CisJLmZ1bmMgPSBmdHJhY2Vfc3R1YiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX29wcyAqZnRyYWNlX2xpc3QgX19yZWFkX21vc3RseSA9ICZmdHJhY2VfbGlzdF9lbmQ7CitmdHJhY2VfZnVuY190IGZ0cmFjZV90cmFjZV9mdW5jdGlvbiBfX3JlYWRfbW9zdGx5ID0gZnRyYWNlX3N0dWI7CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9saXN0X2Z1bmModW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IGZ0cmFjZV9vcHMgKm9wID0gZnRyYWNlX2xpc3Q7CisKKwkvKiBpbiBjYXNlIHNvbWVvbmUgYWN0dWFsbHkgcG9ydHMgdGhpcyB0byBhbHBoYSEgKi8KKwlyZWFkX2JhcnJpZXJfZGVwZW5kcygpOworCisJd2hpbGUgKG9wICE9ICZmdHJhY2VfbGlzdF9lbmQpIHsKKwkJLyogc2lsbHkgYWxwaGEgKi8KKwkJcmVhZF9iYXJyaWVyX2RlcGVuZHMoKTsKKwkJb3AtPmZ1bmMoaXAsIHBhcmVudF9pcCk7CisJCW9wID0gb3AtPm5leHQ7CisJfTsKK30KKworLyoqCisgKiBjbGVhcl9mdHJhY2VfZnVuY3Rpb24gLSByZXNldCB0aGUgZnRyYWNlIGZ1bmN0aW9uCisgKgorICogVGhpcyBOVUxMcyB0aGUgZnRyYWNlIGZ1bmN0aW9uIGFuZCBpbiBlc3NlbmNlIHN0b3BzCisgKiB0cmFjaW5nLiAgVGhlcmUgbWF5IGJlIGxhZworICovCit2b2lkIGNsZWFyX2Z0cmFjZV9mdW5jdGlvbih2b2lkKQoreworCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9zdHViOworfQorCitzdGF0aWMgaW50IF9fcmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKHN0cnVjdCBmdHJhY2Vfb3BzICpvcHMpCit7CisJLyogU2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBieSBpbnRlcnJ1cHRzICovCisJc3Bpbl9sb2NrKCZmdHJhY2VfbG9jayk7CisKKwlvcHMtPm5leHQgPSBmdHJhY2VfbGlzdDsKKwkvKgorCSAqIFdlIGFyZSBlbnRlcmluZyBvcHMgaW50byB0aGUgZnRyYWNlX2xpc3QgYnV0IGFub3RoZXIKKwkgKiBDUFUgbWlnaHQgYmUgd2Fsa2luZyB0aGF0IGxpc3QuIFdlIG5lZWQgdG8gbWFrZSBzdXJlCisJICogdGhlIG9wcy0+bmV4dCBwb2ludGVyIGlzIHZhbGlkIGJlZm9yZSBhbm90aGVyIENQVSBzZWVzCisJICogdGhlIG9wcyBwb2ludGVyIGluY2x1ZGVkIGludG8gdGhlIGZ0cmFjZV9saXN0LgorCSAqLworCXNtcF93bWIoKTsKKwlmdHJhY2VfbGlzdCA9IG9wczsKKworCWlmIChmdHJhY2VfZW5hYmxlZCkgeworCQkvKgorCQkgKiBGb3Igb25lIGZ1bmMsIHNpbXBseSBjYWxsIGl0IGRpcmVjdGx5LgorCQkgKiBGb3IgbW9yZSB0aGFuIG9uZSBmdW5jLCBjYWxsIHRoZSBjaGFpbi4KKwkJICovCisJCWlmIChvcHMtPm5leHQgPT0gJmZ0cmFjZV9saXN0X2VuZCkKKwkJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IG9wcy0+ZnVuYzsKKwkJZWxzZQorCQkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX2xpc3RfZnVuYzsKKwl9CisKKwlzcGluX3VubG9jaygmZnRyYWNlX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX191bnJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbihzdHJ1Y3QgZnRyYWNlX29wcyAqb3BzKQoreworCXN0cnVjdCBmdHJhY2Vfb3BzICoqcDsKKwlpbnQgcmV0ID0gMDsKKworCXNwaW5fbG9jaygmZnRyYWNlX2xvY2spOworCisJLyoKKwkgKiBJZiB3ZSBhcmUgcmVtb3ZpbmcgdGhlIGxhc3QgZnVuY3Rpb24sIHRoZW4gc2ltcGx5IHBvaW50CisJICogdG8gdGhlIGZ0cmFjZV9zdHViLgorCSAqLworCWlmIChmdHJhY2VfbGlzdCA9PSBvcHMgJiYgb3BzLT5uZXh0ID09ICZmdHJhY2VfbGlzdF9lbmQpIHsKKwkJZnRyYWNlX3RyYWNlX2Z1bmN0aW9uID0gZnRyYWNlX3N0dWI7CisJCWZ0cmFjZV9saXN0ID0gJmZ0cmFjZV9saXN0X2VuZDsKKwkJZ290byBvdXQ7CisJfQorCisJZm9yIChwID0gJmZ0cmFjZV9saXN0OyAqcCAhPSAmZnRyYWNlX2xpc3RfZW5kOyBwID0gJigqcCktPm5leHQpCisJCWlmICgqcCA9PSBvcHMpCisJCQlicmVhazsKKworCWlmICgqcCAhPSBvcHMpIHsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworCSpwID0gKCpwKS0+bmV4dDsKKworCWlmIChmdHJhY2VfZW5hYmxlZCkgeworCQkvKiBJZiB3ZSBvbmx5IGhhdmUgb25lIGZ1bmMgbGVmdCwgdGhlbiBjYWxsIHRoYXQgZGlyZWN0bHkgKi8KKwkJaWYgKGZ0cmFjZV9saXN0ID09ICZmdHJhY2VfbGlzdF9lbmQgfHwKKwkJICAgIGZ0cmFjZV9saXN0LT5uZXh0ID09ICZmdHJhY2VfbGlzdF9lbmQpCisJCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2VfbGlzdC0+ZnVuYzsKKwl9CisKKyBvdXQ6CisJc3Bpbl91bmxvY2soJmZ0cmFjZV9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKworc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqZnRyYWNlZF90YXNrOworCitlbnVtIHsKKwlGVFJBQ0VfRU5BQkxFX0NBTExTCQk9ICgxIDw8IDApLAorCUZUUkFDRV9ESVNBQkxFX0NBTExTCQk9ICgxIDw8IDEpLAorCUZUUkFDRV9VUERBVEVfVFJBQ0VfRlVOQwk9ICgxIDw8IDIpLAorCUZUUkFDRV9FTkFCTEVfTUNPVU5UCQk9ICgxIDw8IDMpLAorCUZUUkFDRV9ESVNBQkxFX01DT1VOVAkJPSAoMSA8PCA0KSwKK307CisKK3N0YXRpYyBpbnQgZnRyYWNlX2ZpbHRlcmVkOworc3RhdGljIGludCB0cmFjaW5nX29uOworc3RhdGljIGludCBmcm96ZW5fcmVjb3JkX2NvdW50OworCitzdGF0aWMgc3RydWN0IGhsaXN0X2hlYWQgZnRyYWNlX2hhc2hbRlRSQUNFX0hBU0hTSVpFXTsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgZnRyYWNlX3NodXRkb3duX2Rpc2FibGVfY3B1KTsKKworc3RhdGljIERFRklORV9TUElOTE9DSyhmdHJhY2Vfc2h1dGRvd25fbG9jayk7CitzdGF0aWMgREVGSU5FX01VVEVYKGZ0cmFjZWRfbG9jayk7CitzdGF0aWMgREVGSU5FX01VVEVYKGZ0cmFjZV9yZWdleF9sb2NrKTsKKworc3RydWN0IGZ0cmFjZV9wYWdlIHsKKwlzdHJ1Y3QgZnRyYWNlX3BhZ2UJKm5leHQ7CisJdW5zaWduZWQgbG9uZwkJaW5kZXg7CisJc3RydWN0IGR5bl9mdHJhY2UJcmVjb3Jkc1tdOworfTsKKworI2RlZmluZSBFTlRSSUVTX1BFUl9QQUdFIFwKKyAgKChQQUdFX1NJWkUgLSBzaXplb2Yoc3RydWN0IGZ0cmFjZV9wYWdlKSkgLyBzaXplb2Yoc3RydWN0IGR5bl9mdHJhY2UpKQorCisvKiBlc3RpbWF0ZSBmcm9tIHJ1bm5pbmcgZGlmZmVyZW50IGtlcm5lbHMgKi8KKyNkZWZpbmUgTlJfVE9fSU5JVAkJMTAwMDAKKworc3RhdGljIHN0cnVjdCBmdHJhY2VfcGFnZQkqZnRyYWNlX3BhZ2VzX3N0YXJ0Oworc3RhdGljIHN0cnVjdCBmdHJhY2VfcGFnZQkqZnRyYWNlX3BhZ2VzOworCitzdGF0aWMgaW50IGZ0cmFjZWRfdHJpZ2dlcjsKK3N0YXRpYyBpbnQgZnRyYWNlZF9zdXNwZW5kOworc3RhdGljIGludCBmdHJhY2VkX3N0b3A7CisKK3N0YXRpYyBpbnQgZnRyYWNlX3JlY29yZF9zdXNwZW5kOworCitzdGF0aWMgc3RydWN0IGR5bl9mdHJhY2UgKmZ0cmFjZV9mcmVlX3JlY29yZHM7CisKKworI2lmZGVmIENPTkZJR19LUFJPQkVTCitzdGF0aWMgaW5saW5lIHZvaWQgZnJlZXplX3JlY29yZChzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjKQoreworCWlmICghKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJPWkVOKSkgeworCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9GUk9aRU47CisJCWZyb3plbl9yZWNvcmRfY291bnQrKzsKKwl9Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCB1bmZyZWV6ZV9yZWNvcmQoc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwlpZiAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GUk9aRU4pIHsKKwkJcmVjLT5mbGFncyAmPSB+RlRSQUNFX0ZMX0ZST1pFTjsKKwkJZnJvemVuX3JlY29yZF9jb3VudC0tOworCX0KK30KKworc3RhdGljIGlubGluZSBpbnQgcmVjb3JkX2Zyb3plbihzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjKQoreworCXJldHVybiByZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZST1pFTjsKK30KKyNlbHNlCisjIGRlZmluZSBmcmVlemVfcmVjb3JkKHJlYykJCQkoeyAwOyB9KQorIyBkZWZpbmUgdW5mcmVlemVfcmVjb3JkKHJlYykJCQkoeyAwOyB9KQorIyBkZWZpbmUgcmVjb3JkX2Zyb3plbihyZWMpCQkJKHsgMDsgfSkKKyNlbmRpZiAvKiBDT05GSUdfS1BST0JFUyAqLworCitpbnQgc2tpcF90cmFjZSh1bnNpZ25lZCBsb25nIGlwKQoreworCXVuc2lnbmVkIGxvbmcgZmw7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYzsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZSAqdDsKKwlzdHJ1Y3QgaGxpc3RfaGVhZCAqaGVhZDsKKworCWlmIChmcm96ZW5fcmVjb3JkX2NvdW50ID09IDApCisJCXJldHVybiAwOworCisJaGVhZCA9ICZmdHJhY2VfaGFzaFtoYXNoX2xvbmcoaXAsIEZUUkFDRV9IQVNIQklUUyldOworCWhsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShyZWMsIHQsIGhlYWQsIG5vZGUpIHsKKwkJaWYgKHJlYy0+aXAgPT0gaXApIHsKKwkJCWlmIChyZWNvcmRfZnJvemVuKHJlYykpIHsKKwkJCQlpZiAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GQUlMRUQpCisJCQkJCXJldHVybiAxOworCisJCQkJaWYgKCEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9DT05WRVJURUQpKQorCQkJCQlyZXR1cm4gMTsKKworCQkJCWlmICghdHJhY2luZ19vbiB8fCAhZnRyYWNlX2VuYWJsZWQpCisJCQkJCXJldHVybiAxOworCisJCQkJaWYgKGZ0cmFjZV9maWx0ZXJlZCkgeworCQkJCQlmbCA9IHJlYy0+ZmxhZ3MgJiAoRlRSQUNFX0ZMX0ZJTFRFUiB8CisJCQkJCQkJICAgRlRSQUNFX0ZMX05PVFJBQ0UpOworCQkJCQlpZiAoIWZsIHx8IChmbCAmIEZUUkFDRV9GTF9OT1RSQUNFKSkKKwkJCQkJCXJldHVybiAxOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitmdHJhY2VfaXBfaW5faGFzaCh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIGtleSkKK3sKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcDsKKwlzdHJ1Y3QgaGxpc3Rfbm9kZSAqdDsKKwlpbnQgZm91bmQgPSAwOworCisJaGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHAsIHQsICZmdHJhY2VfaGFzaFtrZXldLCBub2RlKSB7CisJCWlmIChwLT5pcCA9PSBpcCkgeworCQkJZm91bmQgPSAxOworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlyZXR1cm4gZm91bmQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorZnRyYWNlX2FkZF9oYXNoKHN0cnVjdCBkeW5fZnRyYWNlICpub2RlLCB1bnNpZ25lZCBsb25nIGtleSkKK3sKKwlobGlzdF9hZGRfaGVhZF9yY3UoJm5vZGUtPm5vZGUsICZmdHJhY2VfaGFzaFtrZXldKTsKK30KKworLyogY2FsbGVkIGZyb20ga3N0b3BfbWFjaGluZSAqLworc3RhdGljIGlubGluZSB2b2lkIGZ0cmFjZV9kZWxfaGFzaChzdHJ1Y3QgZHluX2Z0cmFjZSAqbm9kZSkKK3sKKwlobGlzdF9kZWwoJm5vZGUtPm5vZGUpOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2VfZnJlZV9yZWMoc3RydWN0IGR5bl9mdHJhY2UgKnJlYykKK3sKKwkvKiBubyBsb2NraW5nLCBvbmx5IGNhbGxlZCBmcm9tIGtzdG9wX21hY2hpbmUgKi8KKworCXJlYy0+aXAgPSAodW5zaWduZWQgbG9uZylmdHJhY2VfZnJlZV9yZWNvcmRzOworCWZ0cmFjZV9mcmVlX3JlY29yZHMgPSByZWM7CisJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRlJFRTsKK30KKworc3RhdGljIHN0cnVjdCBkeW5fZnRyYWNlICpmdHJhY2VfYWxsb2NfZHluX25vZGUodW5zaWduZWQgbG9uZyBpcCkKK3sKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjOworCisJLyogRmlyc3QgY2hlY2sgZm9yIGZyZWVkIHJlY29yZHMgKi8KKwlpZiAoZnRyYWNlX2ZyZWVfcmVjb3JkcykgeworCQlyZWMgPSBmdHJhY2VfZnJlZV9yZWNvcmRzOworCisJCWlmICh1bmxpa2VseSghKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRlJFRSkpKSB7CisJCQlXQVJOX09OX09OQ0UoMSk7CisJCQlmdHJhY2VfZnJlZV9yZWNvcmRzID0gTlVMTDsKKwkJCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJCQlmdHJhY2VfZW5hYmxlZCA9IDA7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCisJCWZ0cmFjZV9mcmVlX3JlY29yZHMgPSAodm9pZCAqKXJlYy0+aXA7CisJCW1lbXNldChyZWMsIDAsIHNpemVvZigqcmVjKSk7CisJCXJldHVybiByZWM7CisJfQorCisJaWYgKGZ0cmFjZV9wYWdlcy0+aW5kZXggPT0gRU5UUklFU19QRVJfUEFHRSkgeworCQlpZiAoIWZ0cmFjZV9wYWdlcy0+bmV4dCkKKwkJCXJldHVybiBOVUxMOworCQlmdHJhY2VfcGFnZXMgPSBmdHJhY2VfcGFnZXMtPm5leHQ7CisJfQorCisJcmV0dXJuICZmdHJhY2VfcGFnZXMtPnJlY29yZHNbZnRyYWNlX3BhZ2VzLT5pbmRleCsrXTsKK30KKworc3RhdGljIHZvaWQKK2Z0cmFjZV9yZWNvcmRfaXAodW5zaWduZWQgbG9uZyBpcCkKK3sKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqbm9kZTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXVuc2lnbmVkIGxvbmcga2V5OworCWludCByZXNjaGVkOworCWludCBhdG9taWM7CisJaW50IGNwdTsKKworCWlmICghZnRyYWNlX2VuYWJsZWQgfHwgZnRyYWNlX2Rpc2FibGVkKQorCQlyZXR1cm47CisKKwlyZXNjaGVkID0gbmVlZF9yZXNjaGVkKCk7CisJcHJlZW1wdF9kaXNhYmxlX25vdHJhY2UoKTsKKworCS8qCisJICogV2Ugc2ltcGx5IG5lZWQgdG8gcHJvdGVjdCBhZ2FpbnN0IHJlY3Vyc2lvbi4KKwkgKiBVc2UgdGhlIHRoZSByYXcgdmVyc2lvbiBvZiBzbXBfcHJvY2Vzc29yX2lkIGFuZCBub3QKKwkgKiBfX2dldF9jcHVfdmFyIHdoaWNoIGNhbiBjYWxsIGRlYnVnIGhvb2tzIHRoYXQgY2FuCisJICogY2F1c2UgYSByZWN1cnNpdmUgY3Jhc2ggaGVyZS4KKwkgKi8KKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCXBlcl9jcHUoZnRyYWNlX3NodXRkb3duX2Rpc2FibGVfY3B1LCBjcHUpKys7CisJaWYgKHBlcl9jcHUoZnRyYWNlX3NodXRkb3duX2Rpc2FibGVfY3B1LCBjcHUpICE9IDEpCisJCWdvdG8gb3V0OworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9yZWNvcmRfc3VzcGVuZCkpCisJCWdvdG8gb3V0OworCisJa2V5ID0gaGFzaF9sb25nKGlwLCBGVFJBQ0VfSEFTSEJJVFMpOworCisJV0FSTl9PTl9PTkNFKGtleSA+PSBGVFJBQ0VfSEFTSFNJWkUpOworCisJaWYgKGZ0cmFjZV9pcF9pbl9oYXNoKGlwLCBrZXkpKQorCQlnb3RvIG91dDsKKworCWF0b21pYyA9IGlycXNfZGlzYWJsZWQoKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZmdHJhY2Vfc2h1dGRvd25fbG9jaywgZmxhZ3MpOworCisJLyogVGhpcyBpcCBtYXkgaGF2ZSBoaXQgdGhlIGhhc2ggYmVmb3JlIHRoZSBsb2NrICovCisJaWYgKGZ0cmFjZV9pcF9pbl9oYXNoKGlwLCBrZXkpKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwlub2RlID0gZnRyYWNlX2FsbG9jX2R5bl9ub2RlKGlwKTsKKwlpZiAoIW5vZGUpCisJCWdvdG8gb3V0X3VubG9jazsKKworCW5vZGUtPmlwID0gaXA7CisKKwlmdHJhY2VfYWRkX2hhc2gobm9kZSwga2V5KTsKKworCWZ0cmFjZWRfdHJpZ2dlciA9IDE7CisKKyBvdXRfdW5sb2NrOgorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZ0cmFjZV9zaHV0ZG93bl9sb2NrLCBmbGFncyk7Cisgb3V0OgorCXBlcl9jcHUoZnRyYWNlX3NodXRkb3duX2Rpc2FibGVfY3B1LCBjcHUpLS07CisKKwkvKiBwcmV2ZW50IHJlY3Vyc2lvbiB3aXRoIHNjaGVkdWxlciAqLworCWlmIChyZXNjaGVkKQorCQlwcmVlbXB0X2VuYWJsZV9ub19yZXNjaGVkX25vdHJhY2UoKTsKKwllbHNlCisJCXByZWVtcHRfZW5hYmxlX25vdHJhY2UoKTsKK30KKworI2RlZmluZSBGVFJBQ0VfQUREUiAoKGxvbmcpKGZ0cmFjZV9jYWxsZXIpKQorCitzdGF0aWMgaW50CitfX2Z0cmFjZV9yZXBsYWNlX2NvZGUoc3RydWN0IGR5bl9mdHJhY2UgKnJlYywKKwkJICAgICAgdW5zaWduZWQgY2hhciAqb2xkLCB1bnNpZ25lZCBjaGFyICpuZXcsIGludCBlbmFibGUpCit7CisJdW5zaWduZWQgbG9uZyBpcCwgZmw7CisKKwlpcCA9IHJlYy0+aXA7CisKKwlpZiAoZnRyYWNlX2ZpbHRlcmVkICYmIGVuYWJsZSkgeworCQkvKgorCQkgKiBJZiBmaWx0ZXJpbmcgaXMgb246CisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCB0byBiZSBmaWx0ZXJlZCBhbmQKKwkJICogaXMgZW5hYmxlZCB0aGVuIGRvIG5vdGhpbmcuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCB0byBiZSBmaWx0ZXJlZCBhbmQKKwkJICogaXQgaXMgbm90IGVuYWJsZWQsIGVuYWJsZSBpdC4KKwkJICoKKwkJICogSWYgdGhpcyByZWNvcmQgaXMgbm90IHNldCB0byBiZSBmaWx0ZXJlZAorCQkgKiBhbmQgaXQgaXMgbm90IGVuYWJsZWQgZG8gbm90aGluZy4KKwkJICoKKwkJICogSWYgdGhpcyByZWNvcmQgaXMgc2V0IG5vdCB0byB0cmFjZSB0aGVuCisJCSAqIGRvIG5vdGhpbmcuCisJCSAqCisJCSAqIElmIHRoaXMgcmVjb3JkIGlzIHNldCBub3QgdG8gdHJhY2UgYW5kCisJCSAqIGl0IGlzIGVuYWJsZWQgdGhlbiBkaXNhYmxlIGl0LgorCQkgKgorCQkgKiBJZiB0aGlzIHJlY29yZCBpcyBub3Qgc2V0IHRvIGJlIGZpbHRlcmVkIGFuZAorCQkgKiBpdCBpcyBlbmFibGVkLCBkaXNhYmxlIGl0LgorCQkgKi8KKworCQlmbCA9IHJlYy0+ZmxhZ3MgJiAoRlRSQUNFX0ZMX0ZJTFRFUiB8IEZUUkFDRV9GTF9OT1RSQUNFIHwKKwkJCQkgICBGVFJBQ0VfRkxfRU5BQkxFRCk7CisKKwkJaWYgKChmbCA9PSAgKEZUUkFDRV9GTF9GSUxURVIgfCBGVFJBQ0VfRkxfRU5BQkxFRCkpIHx8CisJCSAgICAoZmwgPT0gIChGVFJBQ0VfRkxfRklMVEVSIHwgRlRSQUNFX0ZMX05PVFJBQ0UpKSB8fAorCQkgICAgIWZsIHx8IChmbCA9PSBGVFJBQ0VfRkxfTk9UUkFDRSkpCisJCQlyZXR1cm4gMDsKKworCQkvKgorCQkgKiBJZiBpdCBpcyBlbmFibGVkIGRpc2FibGUgaXQsCisJCSAqIG90aGVyd2lzZSBlbmFibGUgaXQhCisJCSAqLworCQlpZiAoZmwgJiBGVFJBQ0VfRkxfRU5BQkxFRCkgeworCQkJLyogc3dhcCBuZXcgYW5kIG9sZCAqLworCQkJbmV3ID0gb2xkOworCQkJb2xkID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgRlRSQUNFX0FERFIpOworCQkJcmVjLT5mbGFncyAmPSB+RlRSQUNFX0ZMX0VOQUJMRUQ7CisJCX0gZWxzZSB7CisJCQluZXcgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCBGVFJBQ0VfQUREUik7CisJCQlyZWMtPmZsYWdzIHw9IEZUUkFDRV9GTF9FTkFCTEVEOworCQl9CisJfSBlbHNlIHsKKworCQlpZiAoZW5hYmxlKSB7CisJCQkvKgorCQkJICogSWYgdGhpcyByZWNvcmQgaXMgc2V0IG5vdCB0byB0cmFjZSBhbmQgaXMKKwkJCSAqIG5vdCBlbmFibGVkLCBkbyBub3RoaW5nLgorCQkJICovCisJCQlmbCA9IHJlYy0+ZmxhZ3MgJiAoRlRSQUNFX0ZMX05PVFJBQ0UgfCBGVFJBQ0VfRkxfRU5BQkxFRCk7CisJCQlpZiAoZmwgPT0gRlRSQUNFX0ZMX05PVFJBQ0UpCisJCQkJcmV0dXJuIDA7CisKKwkJCW5ldyA9IGZ0cmFjZV9jYWxsX3JlcGxhY2UoaXAsIEZUUkFDRV9BRERSKTsKKwkJfSBlbHNlCisJCQlvbGQgPSBmdHJhY2VfY2FsbF9yZXBsYWNlKGlwLCBGVFJBQ0VfQUREUik7CisKKwkJaWYgKGVuYWJsZSkgeworCQkJaWYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRU5BQkxFRCkKKwkJCQlyZXR1cm4gMDsKKwkJCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0VOQUJMRUQ7CisJCX0gZWxzZSB7CisJCQlpZiAoIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0VOQUJMRUQpKQorCQkJCXJldHVybiAwOworCQkJcmVjLT5mbGFncyAmPSB+RlRSQUNFX0ZMX0VOQUJMRUQ7CisJCX0KKwl9CisKKwlyZXR1cm4gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBvbGQsIG5ldyk7Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9yZXBsYWNlX2NvZGUoaW50IGVuYWJsZSkKK3sKKwlpbnQgaSwgZmFpbGVkOworCXVuc2lnbmVkIGNoYXIgKm5ldyA9IE5VTEwsICpvbGQgPSBOVUxMOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWM7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKworCWlmIChlbmFibGUpCisJCW9sZCA9IGZ0cmFjZV9ub3BfcmVwbGFjZSgpOworCWVsc2UKKwkJbmV3ID0gZnRyYWNlX25vcF9yZXBsYWNlKCk7CisKKwlmb3IgKHBnID0gZnRyYWNlX3BhZ2VzX3N0YXJ0OyBwZzsgcGcgPSBwZy0+bmV4dCkgeworCQlmb3IgKGkgPSAwOyBpIDwgcGctPmluZGV4OyBpKyspIHsKKwkJCXJlYyA9ICZwZy0+cmVjb3Jkc1tpXTsKKworCQkJLyogZG9uJ3QgbW9kaWZ5IGNvZGUgdGhhdCBoYXMgYWxyZWFkeSBmYXVsdGVkICovCisJCQlpZiAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GQUlMRUQpCisJCQkJY29udGludWU7CisKKwkJCS8qIGlnbm9yZSB1cGRhdGVzIHRvIHRoaXMgcmVjb3JkJ3MgbWNvdW50IHNpdGUgKi8KKwkJCWlmIChnZXRfa3Byb2JlKCh2b2lkICopcmVjLT5pcCkpIHsKKwkJCQlmcmVlemVfcmVjb3JkKHJlYyk7CisJCQkJY29udGludWU7CisJCQl9IGVsc2UgeworCQkJCXVuZnJlZXplX3JlY29yZChyZWMpOworCQkJfQorCisJCQlmYWlsZWQgPSBfX2Z0cmFjZV9yZXBsYWNlX2NvZGUocmVjLCBvbGQsIG5ldywgZW5hYmxlKTsKKwkJCWlmIChmYWlsZWQgJiYgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfQ09OVkVSVEVEKSkgeworCQkJCXJlYy0+ZmxhZ3MgfD0gRlRSQUNFX0ZMX0ZBSUxFRDsKKwkJCQlpZiAoKHN5c3RlbV9zdGF0ZSA9PSBTWVNURU1fQk9PVElORykgfHwKKwkJCQkgICAgIWNvcmVfa2VybmVsX3RleHQocmVjLT5pcCkpIHsKKwkJCQkJZnRyYWNlX2RlbF9oYXNoKHJlYyk7CisJCQkJCWZ0cmFjZV9mcmVlX3JlYyhyZWMpOworCQkJCX0KKwkJCX0KKwkJfQorCX0KK30KKworc3RhdGljIHZvaWQgZnRyYWNlX3NodXRkb3duX3JlcGxlbmlzaCh2b2lkKQoreworCWlmIChmdHJhY2VfcGFnZXMtPm5leHQpCisJCXJldHVybjsKKworCS8qIGFsbG9jYXRlIGFub3RoZXIgcGFnZSAqLworCWZ0cmFjZV9wYWdlcy0+bmV4dCA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfY29kZV9kaXNhYmxlKHN0cnVjdCBkeW5fZnRyYWNlICpyZWMpCit7CisJdW5zaWduZWQgbG9uZyBpcDsKKwl1bnNpZ25lZCBjaGFyICpub3AsICpjYWxsOworCWludCBmYWlsZWQ7CisKKwlpcCA9IHJlYy0+aXA7CisKKwlub3AgPSBmdHJhY2Vfbm9wX3JlcGxhY2UoKTsKKwljYWxsID0gZnRyYWNlX2NhbGxfcmVwbGFjZShpcCwgTUNPVU5UX0FERFIpOworCisJZmFpbGVkID0gZnRyYWNlX21vZGlmeV9jb2RlKGlwLCBjYWxsLCBub3ApOworCWlmIChmYWlsZWQpIHsKKwkJcmVjLT5mbGFncyB8PSBGVFJBQ0VfRkxfRkFJTEVEOworCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgX19mdHJhY2VfdXBkYXRlX2NvZGUodm9pZCAqaWdub3JlKTsKKworc3RhdGljIGludCBfX2Z0cmFjZV9tb2RpZnlfY29kZSh2b2lkICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKwlpbnQgKmNvbW1hbmQgPSBkYXRhOworCisJaWYgKCpjb21tYW5kICYgRlRSQUNFX0VOQUJMRV9DQUxMUykgeworCQkvKgorCQkgKiBVcGRhdGUgYW55IHJlY29yZGVkIGlwcyBub3cgdGhhdCB3ZSBoYXZlIHRoZQorCQkgKiBtYWNoaW5lIHN0b3BwZWQKKwkJICovCisJCV9fZnRyYWNlX3VwZGF0ZV9jb2RlKE5VTEwpOworCQlmdHJhY2VfcmVwbGFjZV9jb2RlKDEpOworCQl0cmFjaW5nX29uID0gMTsKKwl9IGVsc2UgaWYgKCpjb21tYW5kICYgRlRSQUNFX0RJU0FCTEVfQ0FMTFMpIHsKKwkJZnRyYWNlX3JlcGxhY2VfY29kZSgwKTsKKwkJdHJhY2luZ19vbiA9IDA7CisJfQorCisJaWYgKCpjb21tYW5kICYgRlRSQUNFX1VQREFURV9UUkFDRV9GVU5DKQorCQlmdHJhY2VfdXBkYXRlX2Z0cmFjZV9mdW5jKGZ0cmFjZV90cmFjZV9mdW5jdGlvbik7CisKKwlpZiAoKmNvbW1hbmQgJiBGVFJBQ0VfRU5BQkxFX01DT1VOVCkgeworCQlhZGRyID0gKHVuc2lnbmVkIGxvbmcpZnRyYWNlX3JlY29yZF9pcDsKKwkJZnRyYWNlX21jb3VudF9zZXQoJmFkZHIpOworCX0gZWxzZSBpZiAoKmNvbW1hbmQgJiBGVFJBQ0VfRElTQUJMRV9NQ09VTlQpIHsKKwkJYWRkciA9ICh1bnNpZ25lZCBsb25nKWZ0cmFjZV9zdHViOworCQlmdHJhY2VfbWNvdW50X3NldCgmYWRkcik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoaW50IGNvbW1hbmQpCit7CisJc3RvcF9tYWNoaW5lX3J1bihfX2Z0cmFjZV9tb2RpZnlfY29kZSwgJmNvbW1hbmQsIE5SX0NQVVMpOworfQorCit2b2lkIGZ0cmFjZV9kaXNhYmxlX2RhZW1vbih2b2lkKQoreworCS8qIFN0b3AgdGhlIGRhZW1vbiBmcm9tIGNhbGxpbmcga3N0b3BfbWFjaGluZSAqLworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJZnRyYWNlZF9zdG9wID0gMTsKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisKKwlmdHJhY2VfZm9yY2VfdXBkYXRlKCk7Cit9CisKK3ZvaWQgZnRyYWNlX2VuYWJsZV9kYWVtb24odm9pZCkKK3sKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCWZ0cmFjZWRfc3RvcCA9IDA7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworCisJZnRyYWNlX2ZvcmNlX3VwZGF0ZSgpOworfQorCitzdGF0aWMgZnRyYWNlX2Z1bmNfdCBzYXZlZF9mdHJhY2VfZnVuYzsKKworc3RhdGljIHZvaWQgZnRyYWNlX3N0YXJ0dXAodm9pZCkKK3sKKwlpbnQgY29tbWFuZCA9IDA7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwlmdHJhY2VkX3N1c3BlbmQrKzsKKwlpZiAoZnRyYWNlZF9zdXNwZW5kID09IDEpCisJCWNvbW1hbmQgfD0gRlRSQUNFX0VOQUJMRV9DQUxMUzsKKworCWlmIChzYXZlZF9mdHJhY2VfZnVuYyAhPSBmdHJhY2VfdHJhY2VfZnVuY3Rpb24pIHsKKwkJc2F2ZWRfZnRyYWNlX2Z1bmMgPSBmdHJhY2VfdHJhY2VfZnVuY3Rpb247CisJCWNvbW1hbmQgfD0gRlRSQUNFX1VQREFURV9UUkFDRV9GVU5DOworCX0KKworCWlmICghY29tbWFuZCB8fCAhZnRyYWNlX2VuYWJsZWQpCisJCWdvdG8gb3V0OworCisJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsKKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2Vfc2h1dGRvd24odm9pZCkKK3sKKwlpbnQgY29tbWFuZCA9IDA7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZnRyYWNlZF9sb2NrKTsKKwlmdHJhY2VkX3N1c3BlbmQtLTsKKwlpZiAoIWZ0cmFjZWRfc3VzcGVuZCkKKwkJY29tbWFuZCB8PSBGVFJBQ0VfRElTQUJMRV9DQUxMUzsKKworCWlmIChzYXZlZF9mdHJhY2VfZnVuYyAhPSBmdHJhY2VfdHJhY2VfZnVuY3Rpb24pIHsKKwkJc2F2ZWRfZnRyYWNlX2Z1bmMgPSBmdHJhY2VfdHJhY2VfZnVuY3Rpb247CisJCWNvbW1hbmQgfD0gRlRSQUNFX1VQREFURV9UUkFDRV9GVU5DOworCX0KKworCWlmICghY29tbWFuZCB8fCAhZnRyYWNlX2VuYWJsZWQpCisJCWdvdG8gb3V0OworCisJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsKKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBmdHJhY2Vfc3RhcnR1cF9zeXNjdGwodm9pZCkKK3sKKwlpbnQgY29tbWFuZCA9IEZUUkFDRV9FTkFCTEVfTUNPVU5UOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybjsKKworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJLyogRm9yY2UgdXBkYXRlIG5leHQgdGltZSAqLworCXNhdmVkX2Z0cmFjZV9mdW5jID0gTlVMTDsKKwkvKiBmdHJhY2VkX3N1c3BlbmQgaXMgdHJ1ZSBpZiB3ZSB3YW50IGZ0cmFjZSBydW5uaW5nICovCisJaWYgKGZ0cmFjZWRfc3VzcGVuZCkKKwkJY29tbWFuZCB8PSBGVFJBQ0VfRU5BQkxFX0NBTExTOworCisJZnRyYWNlX3J1bl91cGRhdGVfY29kZShjb21tYW5kKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7Cit9CisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9zaHV0ZG93bl9zeXNjdGwodm9pZCkKK3sKKwlpbnQgY29tbWFuZCA9IEZUUkFDRV9ESVNBQkxFX01DT1VOVDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm47CisKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCS8qIGZ0cmFjZWRfc3VzcGVuZCBpcyB0cnVlIGlmIGZ0cmFjZSBpcyBydW5uaW5nICovCisJaWYgKGZ0cmFjZWRfc3VzcGVuZCkKKwkJY29tbWFuZCB8PSBGVFJBQ0VfRElTQUJMRV9DQUxMUzsKKworCWZ0cmFjZV9ydW5fdXBkYXRlX2NvZGUoY29tbWFuZCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VkX2xvY2spOworfQorCitzdGF0aWMgY3ljbGVfdAkJZnRyYWNlX3VwZGF0ZV90aW1lOworc3RhdGljIHVuc2lnbmVkIGxvbmcJZnRyYWNlX3VwZGF0ZV9jbnQ7Cit1bnNpZ25lZCBsb25nCQlmdHJhY2VfdXBkYXRlX3RvdF9jbnQ7CisKK3N0YXRpYyBpbnQgX19mdHJhY2VfdXBkYXRlX2NvZGUodm9pZCAqaWdub3JlKQoreworCWludCBpLCBzYXZlX2Z0cmFjZV9lbmFibGVkOworCWN5Y2xlX3Qgc3RhcnQsIHN0b3A7CisJc3RydWN0IGR5bl9mdHJhY2UgKnA7CisJc3RydWN0IGhsaXN0X25vZGUgKnQsICpuOworCXN0cnVjdCBobGlzdF9oZWFkICpoZWFkLCB0ZW1wX2xpc3Q7CisKKwkvKiBEb24ndCBiZSByZWNvcmRpbmcgZnVuY3Mgbm93ICovCisJZnRyYWNlX3JlY29yZF9zdXNwZW5kKys7CisJc2F2ZV9mdHJhY2VfZW5hYmxlZCA9IGZ0cmFjZV9lbmFibGVkOworCWZ0cmFjZV9lbmFibGVkID0gMDsKKworCXN0YXJ0ID0gZnRyYWNlX25vdyhyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpKTsKKwlmdHJhY2VfdXBkYXRlX2NudCA9IDA7CisKKwkvKiBObyBsb2NrcyBuZWVkZWQsIHRoZSBtYWNoaW5lIGlzIHN0b3BwZWQhICovCisJZm9yIChpID0gMDsgaSA8IEZUUkFDRV9IQVNIU0laRTsgaSsrKSB7CisJCUlOSVRfSExJU1RfSEVBRCgmdGVtcF9saXN0KTsKKwkJaGVhZCA9ICZmdHJhY2VfaGFzaFtpXTsKKworCQkvKiBhbGwgQ1BVUyBhcmUgc3RvcHBlZCwgd2UgYXJlIHNhZmUgdG8gbW9kaWZ5IGNvZGUgKi8KKwkJaGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwLCB0LCBuLCBoZWFkLCBub2RlKSB7CisJCQkvKiBTa2lwIG92ZXIgZmFpbGVkIHJlY29yZHMgd2hpY2ggaGF2ZSBub3QgYmVlbgorCQkJICogZnJlZWQuICovCisJCQlpZiAocC0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBVbmNvbnZlcnRlZCByZWNvcmRzIGFyZSBhbHdheXMgYXQgdGhlIGhlYWQgb2YgdGhlCisJCQkgKiBoYXNoIGJ1Y2tldC4gT25jZSB3ZSBlbmNvdW50ZXIgYSBjb252ZXJ0ZWQgcmVjb3JkLAorCQkJICogc2ltcGx5IHNraXAgb3ZlciB0byB0aGUgbmV4dCBidWNrZXQuIFNhdmVzIGZ0cmFjZWQKKwkJCSAqIHNvbWUgcHJvY2Vzc29yIGN5Y2xlcyAoZnRyYWNlIGRvZXMgaXRzIGJpZCBmb3IKKwkJCSAqIGdsb2JhbCB3YXJtaW5nIDotcCApLiAqLworCQkJaWYgKHAtPmZsYWdzICYgKEZUUkFDRV9GTF9DT05WRVJURUQpKQorCQkJCWJyZWFrOworCisJCQkvKiBJZ25vcmUgdXBkYXRlcyB0byB0aGlzIHJlY29yZCdzIG1jb3VudCBzaXRlLgorCQkJICogUmVpbnRyb2R1Y2UgdGhpcyByZWNvcmQgYXQgdGhlIGhlYWQgb2YgdGhpcworCQkJICogYnVja2V0IHRvIGF0dGVtcHQgdG8gImNvbnZlcnQiIGl0IGFnYWluIGlmCisJCQkgKiB0aGUga3Byb2JlIG9uIGl0IGlzIHVucmVnaXN0ZXJlZCBiZWZvcmUgdGhlCisJCQkgKiBuZXh0IHJ1bi4gKi8KKwkJCWlmIChnZXRfa3Byb2JlKCh2b2lkICopcC0+aXApKSB7CisJCQkJZnRyYWNlX2RlbF9oYXNoKHApOworCQkJCUlOSVRfSExJU1RfTk9ERSgmcC0+bm9kZSk7CisJCQkJaGxpc3RfYWRkX2hlYWQoJnAtPm5vZGUsICZ0ZW1wX2xpc3QpOworCQkJCWZyZWV6ZV9yZWNvcmQocCk7CisJCQkJY29udGludWU7CisJCQl9IGVsc2UgeworCQkJCXVuZnJlZXplX3JlY29yZChwKTsKKwkJCX0KKworCQkJLyogY29udmVydCByZWNvcmQgKGkuZSwgcGF0Y2ggbWNvdW50LWNhbGwgd2l0aCBOT1ApICovCisJCQlpZiAoZnRyYWNlX2NvZGVfZGlzYWJsZShwKSkgeworCQkJCXAtPmZsYWdzIHw9IEZUUkFDRV9GTF9DT05WRVJURUQ7CisJCQkJZnRyYWNlX3VwZGF0ZV9jbnQrKzsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKChzeXN0ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcpIHx8CisJCQkJICAgICFjb3JlX2tlcm5lbF90ZXh0KHAtPmlwKSkgeworCQkJCQlmdHJhY2VfZGVsX2hhc2gocCk7CisJCQkJCWZ0cmFjZV9mcmVlX3JlYyhwKTsKKwkJCQl9CisJCQl9CisJCX0KKworCQlobGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHAsIHQsIG4sICZ0ZW1wX2xpc3QsIG5vZGUpIHsKKwkJCWhsaXN0X2RlbCgmcC0+bm9kZSk7CisJCQlJTklUX0hMSVNUX05PREUoJnAtPm5vZGUpOworCQkJaGxpc3RfYWRkX2hlYWQoJnAtPm5vZGUsIGhlYWQpOworCQl9CisJfQorCisJc3RvcCA9IGZ0cmFjZV9ub3cocmF3X3NtcF9wcm9jZXNzb3JfaWQoKSk7CisJZnRyYWNlX3VwZGF0ZV90aW1lID0gc3RvcCAtIHN0YXJ0OworCWZ0cmFjZV91cGRhdGVfdG90X2NudCArPSBmdHJhY2VfdXBkYXRlX2NudDsKKwlmdHJhY2VkX3RyaWdnZXIgPSAwOworCisJZnRyYWNlX2VuYWJsZWQgPSBzYXZlX2Z0cmFjZV9lbmFibGVkOworCWZ0cmFjZV9yZWNvcmRfc3VzcGVuZC0tOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgZnRyYWNlX3VwZGF0ZV9jb2RlKHZvaWQpCit7CisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkgfHwKKwkgICAgIWZ0cmFjZV9lbmFibGVkIHx8ICFmdHJhY2VkX3RyaWdnZXIpCisJCXJldHVybiAwOworCisJc3RvcF9tYWNoaW5lX3J1bihfX2Z0cmFjZV91cGRhdGVfY29kZSwgTlVMTCwgTlJfQ1BVUyk7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBmdHJhY2VkKHZvaWQgKmlnbm9yZSkKK3sKKwl1bnNpZ25lZCBsb25nIHVzZWNzOworCisJd2hpbGUgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKworCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOworCisJCS8qIGNoZWNrIG9uY2UgYSBzZWNvbmQgKi8KKwkJc2NoZWR1bGVfdGltZW91dChIWik7CisKKwkJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCQljb250aW51ZTsKKworCQltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCQltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCQlpZiAoIWZ0cmFjZWRfc3VzcGVuZCAmJiAhZnRyYWNlZF9zdG9wICYmCisJCSAgICBmdHJhY2VfdXBkYXRlX2NvZGUoKSkgeworCQkJdXNlY3MgPSBuc2Vjc190b191c2VjcyhmdHJhY2VfdXBkYXRlX3RpbWUpOworCQkJaWYgKGZ0cmFjZV91cGRhdGVfdG90X2NudCA+IDEwMDAwMCkgeworCQkJCWZ0cmFjZV91cGRhdGVfdG90X2NudCA9IDA7CisJCQkJcHJfaW5mbygiaG0sIGRmdHJhY2Ugb3ZlcmZsb3c6ICVsdSBjaGFuZ2UlcyIKKwkJCQkJIiAoJWx1IHRvdGFsKSBpbiAlbHUgdXNlYyVzXG4iLAorCQkJCQlmdHJhY2VfdXBkYXRlX2NudCwKKwkJCQkJZnRyYWNlX3VwZGF0ZV9jbnQgIT0gMSA/ICJzIiA6ICIiLAorCQkJCQlmdHJhY2VfdXBkYXRlX3RvdF9jbnQsCisJCQkJCXVzZWNzLCB1c2VjcyAhPSAxID8gInMiIDogIiIpOworCQkJCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJCQkJV0FSTl9PTl9PTkNFKDEpOworCQkJfQorCQl9CisJCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKKwkJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJCWZ0cmFjZV9zaHV0ZG93bl9yZXBsZW5pc2goKTsKKwl9CisJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9faW5pdCBmdHJhY2VfZHluX3RhYmxlX2FsbG9jKHZvaWQpCit7CisJc3RydWN0IGZ0cmFjZV9wYWdlICpwZzsKKwlpbnQgY250OworCWludCBpOworCisJLyogYWxsb2NhdGUgYSBmZXcgcGFnZXMgKi8KKwlmdHJhY2VfcGFnZXNfc3RhcnQgPSAodm9pZCAqKWdldF96ZXJvZWRfcGFnZShHRlBfS0VSTkVMKTsKKwlpZiAoIWZ0cmFjZV9wYWdlc19zdGFydCkKKwkJcmV0dXJuIC0xOworCisJLyoKKwkgKiBBbGxvY2F0ZSBhIGZldyBtb3JlIHBhZ2VzLgorCSAqCisJICogVE9ETzogaGF2ZSBzb21lIHBhcnNlciBzZWFyY2ggdm1saW51eCBiZWZvcmUKKwkgKiAgIGZpbmFsIGxpbmtpbmcgdG8gZmluZCBhbGwgY2FsbHMgdG8gZnRyYWNlLgorCSAqICAgVGhlbiB3ZSBjYW46CisJICogICAgYSkga25vdyBob3cgbWFueSBwYWdlcyB0byBhbGxvY2F0ZS4KKwkgKiAgICAgYW5kL29yCisJICogICAgYikgc2V0IHVwIHRoZSB0YWJsZSB0aGVuLgorCSAqCisJICogIFRoZSBkeW5hbWljIGNvZGUgaXMgc3RpbGwgbmVjZXNzYXJ5IGZvcgorCSAqICBtb2R1bGVzLgorCSAqLworCisJcGcgPSBmdHJhY2VfcGFnZXMgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisKKwljbnQgPSBOUl9UT19JTklUIC8gRU5UUklFU19QRVJfUEFHRTsKKworCWZvciAoaSA9IDA7IGkgPCBjbnQ7IGkrKykgeworCQlwZy0+bmV4dCA9ICh2b2lkICopZ2V0X3plcm9lZF9wYWdlKEdGUF9LRVJORUwpOworCisJCS8qIElmIHdlIGZhaWwsIHdlJ2xsIHRyeSBsYXRlciBhbnl3YXkgKi8KKwkJaWYgKCFwZy0+bmV4dCkKKwkJCWJyZWFrOworCisJCXBnID0gcGctPm5leHQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2VudW0geworCUZUUkFDRV9JVEVSX0ZJTFRFUgk9ICgxIDw8IDApLAorCUZUUkFDRV9JVEVSX0NPTlQJPSAoMSA8PCAxKSwKKwlGVFJBQ0VfSVRFUl9OT1RSQUNFCT0gKDEgPDwgMiksCisJRlRSQUNFX0lURVJfRkFJTFVSRVMJPSAoMSA8PCAzKSwKK307CisKKyNkZWZpbmUgRlRSQUNFX0JVRkZfTUFYIChLU1lNX1NZTUJPTF9MRU4rNCkgLyogcm9vbSBmb3Igd2lsZGNhcmRzICovCisKK3N0cnVjdCBmdHJhY2VfaXRlcmF0b3IgeworCWxvZmZfdAkJCXBvczsKKwlzdHJ1Y3QgZnRyYWNlX3BhZ2UJKnBnOworCXVuc2lnbmVkCQlpZHg7CisJdW5zaWduZWQJCWZsYWdzOworCXVuc2lnbmVkIGNoYXIJCWJ1ZmZlcltGVFJBQ0VfQlVGRl9NQVgrMV07CisJdW5zaWduZWQJCWJ1ZmZlcl9pZHg7CisJdW5zaWduZWQJCWZpbHRlcmVkOworfTsKKworc3RhdGljIHZvaWQgKgordF9uZXh0KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdiwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisJc3RydWN0IGR5bl9mdHJhY2UgKnJlYyA9IE5VTEw7CisKKwkoKnBvcykrKzsKKworIHJldHJ5OgorCWlmIChpdGVyLT5pZHggPj0gaXRlci0+cGctPmluZGV4KSB7CisJCWlmIChpdGVyLT5wZy0+bmV4dCkgeworCQkJaXRlci0+cGcgPSBpdGVyLT5wZy0+bmV4dDsKKwkJCWl0ZXItPmlkeCA9IDA7CisJCQlnb3RvIHJldHJ5OworCQl9CisJfSBlbHNlIHsKKwkJcmVjID0gJml0ZXItPnBnLT5yZWNvcmRzW2l0ZXItPmlkeCsrXTsKKwkJaWYgKCghKGl0ZXItPmZsYWdzICYgRlRSQUNFX0lURVJfRkFJTFVSRVMpICYmCisJCSAgICAgKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKSkgfHwKKworCQkgICAgKChpdGVyLT5mbGFncyAmIEZUUkFDRV9JVEVSX0ZBSUxVUkVTKSAmJgorCQkgICAgICghKHJlYy0+ZmxhZ3MgJiBGVFJBQ0VfRkxfRkFJTEVEKSB8fAorCQkgICAgICAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GUkVFKSkpIHx8CisKKwkJICAgICgoaXRlci0+ZmxhZ3MgJiBGVFJBQ0VfSVRFUl9GSUxURVIpICYmCisJCSAgICAgIShyZWMtPmZsYWdzICYgRlRSQUNFX0ZMX0ZJTFRFUikpIHx8CisKKwkJICAgICgoaXRlci0+ZmxhZ3MgJiBGVFJBQ0VfSVRFUl9OT1RSQUNFKSAmJgorCQkgICAgICEocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9OT1RSQUNFKSkpIHsKKwkJCXJlYyA9IE5VTEw7CisJCQlnb3RvIHJldHJ5OworCQl9CisJfQorCisJaXRlci0+cG9zID0gKnBvczsKKworCXJldHVybiByZWM7Cit9CisKK3N0YXRpYyB2b2lkICp0X3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqbSwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisJdm9pZCAqcCA9IE5VTEw7CisJbG9mZl90IGwgPSAtMTsKKworCWlmICgqcG9zICE9IGl0ZXItPnBvcykgeworCQlmb3IgKHAgPSB0X25leHQobSwgcCwgJmwpOyBwICYmIGwgPCAqcG9zOyBwID0gdF9uZXh0KG0sIHAsICZsKSkKKwkJCTsKKwl9IGVsc2UgeworCQlsID0gKnBvczsKKwkJcCA9IHRfbmV4dChtLCBwLCAmbCk7CisJfQorCisJcmV0dXJuIHA7Cit9CisKK3N0YXRpYyB2b2lkIHRfc3RvcChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnApCit7Cit9CisKK3N0YXRpYyBpbnQgdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgZHluX2Z0cmFjZSAqcmVjID0gdjsKKwljaGFyIHN0cltLU1lNX1NZTUJPTF9MRU5dOworCisJaWYgKCFyZWMpCisJCXJldHVybiAwOworCisJa2FsbHN5bXNfbG9va3VwKHJlYy0+aXAsIE5VTEwsIE5VTEwsIE5VTEwsIHN0cik7CisKKwlzZXFfcHJpbnRmKG0sICIlc1xuIiwgc3RyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHNlcV9vcGVyYXRpb25zIHNob3dfZnRyYWNlX3NlcV9vcHMgPSB7CisJLnN0YXJ0ID0gdF9zdGFydCwKKwkubmV4dCA9IHRfbmV4dCwKKwkuc3RvcCA9IHRfc3RvcCwKKwkuc2hvdyA9IHRfc2hvdywKK307CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9hdmFpbF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisJaW50IHJldDsKKworCWlmICh1bmxpa2VseShmdHJhY2VfZGlzYWJsZWQpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWl0ZXIgPSBremFsbG9jKHNpemVvZigqaXRlciksIEdGUF9LRVJORUwpOworCWlmICghaXRlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlpdGVyLT5wZyA9IGZ0cmFjZV9wYWdlc19zdGFydDsKKwlpdGVyLT5wb3MgPSAtMTsKKworCXJldCA9IHNlcV9vcGVuKGZpbGUsICZzaG93X2Z0cmFjZV9zZXFfb3BzKTsKKwlpZiAoIXJldCkgeworCQlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSBmaWxlLT5wcml2YXRlX2RhdGE7CisKKwkJbS0+cHJpdmF0ZSA9IGl0ZXI7CisJfSBlbHNlIHsKKwkJa2ZyZWUoaXRlcik7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworaW50IGZ0cmFjZV9hdmFpbF9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBzZXFfZmlsZSAqbSA9IChzdHJ1Y3Qgc2VxX2ZpbGUgKilmaWxlLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisKKwlzZXFfcmVsZWFzZShpbm9kZSwgZmlsZSk7CisJa2ZyZWUoaXRlcik7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZnRyYWNlX2ZhaWx1cmVzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJaW50IHJldDsKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm07CisJc3RydWN0IGZ0cmFjZV9pdGVyYXRvciAqaXRlcjsKKworCXJldCA9IGZ0cmFjZV9hdmFpbF9vcGVuKGlub2RlLCBmaWxlKTsKKwlpZiAoIXJldCkgeworCQltID0gKHN0cnVjdCBzZXFfZmlsZSAqKWZpbGUtPnByaXZhdGVfZGF0YTsKKwkJaXRlciA9IChzdHJ1Y3QgZnRyYWNlX2l0ZXJhdG9yICopbS0+cHJpdmF0ZTsKKwkJaXRlci0+ZmxhZ3MgPSBGVFJBQ0VfSVRFUl9GQUlMVVJFUzsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisKK3N0YXRpYyB2b2lkIGZ0cmFjZV9maWx0ZXJfcmVzZXQoaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3QgZnRyYWNlX3BhZ2UgKnBnOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWM7CisJdW5zaWduZWQgbG9uZyB0eXBlID0gZW5hYmxlID8gRlRSQUNFX0ZMX0ZJTFRFUiA6IEZUUkFDRV9GTF9OT1RSQUNFOworCXVuc2lnbmVkIGk7CisKKwkvKiBrZWVwIGtzdG9wIG1hY2hpbmUgZnJvbSBydW5uaW5nICovCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJaWYgKGVuYWJsZSkKKwkJZnRyYWNlX2ZpbHRlcmVkID0gMDsKKwlwZyA9IGZ0cmFjZV9wYWdlc19zdGFydDsKKwl3aGlsZSAocGcpIHsKKwkJZm9yIChpID0gMDsgaSA8IHBnLT5pbmRleDsgaSsrKSB7CisJCQlyZWMgPSAmcGctPnJlY29yZHNbaV07CisJCQlpZiAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GQUlMRUQpCisJCQkJY29udGludWU7CisJCQlyZWMtPmZsYWdzICY9IH50eXBlOworCQl9CisJCXBnID0gcGctPm5leHQ7CisJfQorCXByZWVtcHRfZW5hYmxlKCk7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9yZWdleF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgZW5hYmxlKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisJaW50IHJldCA9IDA7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpCisJCXJldHVybiAtRU5PTUVNOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCWlmICgoZmlsZS0+Zl9tb2RlICYgRk1PREVfV1JJVEUpICYmCisJICAgICEoZmlsZS0+Zl9mbGFncyAmIE9fQVBQRU5EKSkKKwkJZnRyYWNlX2ZpbHRlcl9yZXNldChlbmFibGUpOworCisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpIHsKKwkJaXRlci0+cGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJCWl0ZXItPnBvcyA9IC0xOworCQlpdGVyLT5mbGFncyA9IGVuYWJsZSA/IEZUUkFDRV9JVEVSX0ZJTFRFUiA6CisJCQlGVFJBQ0VfSVRFUl9OT1RSQUNFOworCisJCXJldCA9IHNlcV9vcGVuKGZpbGUsICZzaG93X2Z0cmFjZV9zZXFfb3BzKTsKKwkJaWYgKCFyZXQpIHsKKwkJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJCW0tPnByaXZhdGUgPSBpdGVyOworCQl9IGVsc2UKKwkJCWtmcmVlKGl0ZXIpOworCX0gZWxzZQorCQlmaWxlLT5wcml2YXRlX2RhdGEgPSBpdGVyOworCW11dGV4X3VubG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAorZnRyYWNlX2ZpbHRlcl9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfb3Blbihpbm9kZSwgZmlsZSwgMSk7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9ub3RyYWNlX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIGZ0cmFjZV9yZWdleF9vcGVuKGlub2RlLCBmaWxlLCAwKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZV9yZWdleF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlpZiAoZmlsZS0+Zl9tb2RlICYgRk1PREVfUkVBRCkKKwkJcmV0dXJuIHNlcV9yZWFkKGZpbGUsIHVidWYsIGNudCwgcHBvcyk7CisJZWxzZQorCQlyZXR1cm4gLUVQRVJNOworfQorCitzdGF0aWMgbG9mZl90CitmdHJhY2VfcmVnZXhfbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnaW4pCit7CisJbG9mZl90IHJldDsKKworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKQorCQlyZXQgPSBzZXFfbHNlZWsoZmlsZSwgb2Zmc2V0LCBvcmlnaW4pOworCWVsc2UKKwkJZmlsZS0+Zl9wb3MgPSByZXQgPSAxOworCisJcmV0dXJuIHJldDsKK30KKworZW51bSB7CisJTUFUQ0hfRlVMTCwKKwlNQVRDSF9GUk9OVF9PTkxZLAorCU1BVENIX01JRERMRV9PTkxZLAorCU1BVENIX0VORF9PTkxZLAorfTsKKworc3RhdGljIHZvaWQKK2Z0cmFjZV9tYXRjaCh1bnNpZ25lZCBjaGFyICpidWZmLCBpbnQgbGVuLCBpbnQgZW5hYmxlKQoreworCWNoYXIgc3RyW0tTWU1fU1lNQk9MX0xFTl07CisJY2hhciAqc2VhcmNoID0gTlVMTDsKKwlzdHJ1Y3QgZnRyYWNlX3BhZ2UgKnBnOworCXN0cnVjdCBkeW5fZnRyYWNlICpyZWM7CisJaW50IHR5cGUgPSBNQVRDSF9GVUxMOworCXVuc2lnbmVkIGxvbmcgZmxhZyA9IGVuYWJsZSA/IEZUUkFDRV9GTF9GSUxURVIgOiBGVFJBQ0VfRkxfTk9UUkFDRTsKKwl1bnNpZ25lZCBpLCBtYXRjaCA9IDAsIHNlYXJjaF9sZW4gPSAwOworCisJZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisJCWlmIChidWZmW2ldID09ICcqJykgeworCQkJaWYgKCFpKSB7CisJCQkJc2VhcmNoID0gYnVmZiArIGkgKyAxOworCQkJCXR5cGUgPSBNQVRDSF9FTkRfT05MWTsKKwkJCQlzZWFyY2hfbGVuID0gbGVuIC0gKGkgKyAxKTsKKwkJCX0gZWxzZSB7CisJCQkJaWYgKHR5cGUgPT0gTUFUQ0hfRU5EX09OTFkpIHsKKwkJCQkJdHlwZSA9IE1BVENIX01JRERMRV9PTkxZOworCQkJCX0gZWxzZSB7CisJCQkJCW1hdGNoID0gaTsKKwkJCQkJdHlwZSA9IE1BVENIX0ZST05UX09OTFk7CisJCQkJfQorCQkJCWJ1ZmZbaV0gPSAwOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJLyoga2VlcCBrc3RvcCBtYWNoaW5lIGZyb20gcnVubmluZyAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCWlmIChlbmFibGUpCisJCWZ0cmFjZV9maWx0ZXJlZCA9IDE7CisJcGcgPSBmdHJhY2VfcGFnZXNfc3RhcnQ7CisJd2hpbGUgKHBnKSB7CisJCWZvciAoaSA9IDA7IGkgPCBwZy0+aW5kZXg7IGkrKykgeworCQkJaW50IG1hdGNoZWQgPSAwOworCQkJY2hhciAqcHRyOworCisJCQlyZWMgPSAmcGctPnJlY29yZHNbaV07CisJCQlpZiAocmVjLT5mbGFncyAmIEZUUkFDRV9GTF9GQUlMRUQpCisJCQkJY29udGludWU7CisJCQlrYWxsc3ltc19sb29rdXAocmVjLT5pcCwgTlVMTCwgTlVMTCwgTlVMTCwgc3RyKTsKKwkJCXN3aXRjaCAodHlwZSkgeworCQkJY2FzZSBNQVRDSF9GVUxMOgorCQkJCWlmIChzdHJjbXAoc3RyLCBidWZmKSA9PSAwKQorCQkJCQltYXRjaGVkID0gMTsKKwkJCQlicmVhazsKKwkJCWNhc2UgTUFUQ0hfRlJPTlRfT05MWToKKwkJCQlpZiAobWVtY21wKHN0ciwgYnVmZiwgbWF0Y2gpID09IDApCisJCQkJCW1hdGNoZWQgPSAxOworCQkJCWJyZWFrOworCQkJY2FzZSBNQVRDSF9NSURETEVfT05MWToKKwkJCQlpZiAoc3Ryc3RyKHN0ciwgc2VhcmNoKSkKKwkJCQkJbWF0Y2hlZCA9IDE7CisJCQkJYnJlYWs7CisJCQljYXNlIE1BVENIX0VORF9PTkxZOgorCQkJCXB0ciA9IHN0cnN0cihzdHIsIHNlYXJjaCk7CisJCQkJaWYgKHB0ciAmJiAocHRyW3NlYXJjaF9sZW5dID09IDApKQorCQkJCQltYXRjaGVkID0gMTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCWlmIChtYXRjaGVkKQorCQkJCXJlYy0+ZmxhZ3MgfD0gZmxhZzsKKwkJfQorCQlwZyA9IHBnLT5uZXh0OworCX0KKwlwcmVlbXB0X2VuYWJsZSgpOworfQorCitzdGF0aWMgc3NpemVfdAorZnRyYWNlX3JlZ2V4X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zLCBpbnQgZW5hYmxlKQoreworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisJY2hhciBjaDsKKwlzaXplX3QgcmVhZCA9IDA7CisJc3NpemVfdCByZXQ7CisKKwlpZiAoIWNudCB8fCBjbnQgPCAwKQorCQlyZXR1cm4gMDsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKKworCWlmIChmaWxlLT5mX21vZGUgJiBGTU9ERV9SRUFEKSB7CisJCXN0cnVjdCBzZXFfZmlsZSAqbSA9IGZpbGUtPnByaXZhdGVfZGF0YTsKKwkJaXRlciA9IG0tPnByaXZhdGU7CisJfSBlbHNlCisJCWl0ZXIgPSBmaWxlLT5wcml2YXRlX2RhdGE7CisKKwlpZiAoISpwcG9zKSB7CisJCWl0ZXItPmZsYWdzICY9IH5GVFJBQ0VfSVRFUl9DT05UOworCQlpdGVyLT5idWZmZXJfaWR4ID0gMDsKKwl9CisKKwlyZXQgPSBnZXRfdXNlcihjaCwgdWJ1ZisrKTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKwlyZWFkKys7CisJY250LS07CisKKwlpZiAoIShpdGVyLT5mbGFncyAmIH5GVFJBQ0VfSVRFUl9DT05UKSkgeworCQkvKiBza2lwIHdoaXRlIHNwYWNlICovCisJCXdoaWxlIChjbnQgJiYgaXNzcGFjZShjaCkpIHsKKwkJCXJldCA9IGdldF91c2VyKGNoLCB1YnVmKyspOworCQkJaWYgKHJldCkKKwkJCQlnb3RvIG91dDsKKwkJCXJlYWQrKzsKKwkJCWNudC0tOworCQl9CisKKwkJaWYgKGlzc3BhY2UoY2gpKSB7CisJCQlmaWxlLT5mX3BvcyArPSByZWFkOworCQkJcmV0ID0gcmVhZDsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJaXRlci0+YnVmZmVyX2lkeCA9IDA7CisJfQorCisJd2hpbGUgKGNudCAmJiAhaXNzcGFjZShjaCkpIHsKKwkJaWYgKGl0ZXItPmJ1ZmZlcl9pZHggPCBGVFJBQ0VfQlVGRl9NQVgpCisJCQlpdGVyLT5idWZmZXJbaXRlci0+YnVmZmVyX2lkeCsrXSA9IGNoOworCQllbHNlIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorCQlyZXQgPSBnZXRfdXNlcihjaCwgdWJ1ZisrKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCQlyZWFkKys7CisJCWNudC0tOworCX0KKworCWlmIChpc3NwYWNlKGNoKSkgeworCQlpdGVyLT5maWx0ZXJlZCsrOworCQlpdGVyLT5idWZmZXJbaXRlci0+YnVmZmVyX2lkeF0gPSAwOworCQlmdHJhY2VfbWF0Y2goaXRlci0+YnVmZmVyLCBpdGVyLT5idWZmZXJfaWR4LCBlbmFibGUpOworCQlpdGVyLT5idWZmZXJfaWR4ID0gMDsKKwl9IGVsc2UKKwkJaXRlci0+ZmxhZ3MgfD0gRlRSQUNFX0lURVJfQ09OVDsKKworCisJZmlsZS0+Zl9wb3MgKz0gcmVhZDsKKworCXJldCA9IHJlYWQ7Cisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZV9maWx0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfd3JpdGUoZmlsZSwgdWJ1ZiwgY250LCBwcG9zLCAxKTsKK30KKworc3RhdGljIHNzaXplX3QKK2Z0cmFjZV9ub3RyYWNlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJcmV0dXJuIGZ0cmFjZV9yZWdleF93cml0ZShmaWxlLCB1YnVmLCBjbnQsIHBwb3MsIDApOworfQorCitzdGF0aWMgdm9pZAorZnRyYWNlX3NldF9yZWdleCh1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4sIGludCByZXNldCwgaW50IGVuYWJsZSkKK3sKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3JlZ2V4X2xvY2spOworCWlmIChyZXNldCkKKwkJZnRyYWNlX2ZpbHRlcl9yZXNldChlbmFibGUpOworCWlmIChidWYpCisJCWZ0cmFjZV9tYXRjaChidWYsIGxlbiwgZW5hYmxlKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9yZWdleF9sb2NrKTsKK30KKworLyoqCisgKiBmdHJhY2Vfc2V0X2ZpbHRlciAtIHNldCBhIGZ1bmN0aW9uIHRvIGZpbHRlciBvbiBpbiBmdHJhY2UKKyAqIEBidWYgLSB0aGUgc3RyaW5nIHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uIGZpbHRlciB0ZXh0LgorICogQGxlbiAtIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZy4KKyAqIEByZXNldCAtIG5vbiB6ZXJvIHRvIHJlc2V0IGFsbCBmaWx0ZXJzIGJlZm9yZSBhcHBseWluZyB0aGlzIGZpbHRlci4KKyAqCisgKiBGaWx0ZXJzIGRlbm90ZSB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIGJlIGVuYWJsZWQgd2hlbiB0cmFjaW5nIGlzIGVuYWJsZWQuCisgKiBJZiBAYnVmIGlzIE5VTEwgYW5kIHJlc2V0IGlzIHNldCwgYWxsIGZ1bmN0aW9ucyB3aWxsIGJlIGVuYWJsZWQgZm9yIHRyYWNpbmcuCisgKi8KK3ZvaWQgZnRyYWNlX3NldF9maWx0ZXIodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQpCit7CisJZnRyYWNlX3NldF9yZWdleChidWYsIGxlbiwgcmVzZXQsIDEpOworfQorCisvKioKKyAqIGZ0cmFjZV9zZXRfbm90cmFjZSAtIHNldCBhIGZ1bmN0aW9uIHRvIG5vdCB0cmFjZSBpbiBmdHJhY2UKKyAqIEBidWYgLSB0aGUgc3RyaW5nIHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uIG5vdHJhY2UgdGV4dC4KKyAqIEBsZW4gLSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCisgKiBAcmVzZXQgLSBub24gemVybyB0byByZXNldCBhbGwgZmlsdGVycyBiZWZvcmUgYXBwbHlpbmcgdGhpcyBmaWx0ZXIuCisgKgorICogTm90cmFjZSBGaWx0ZXJzIGRlbm90ZSB3aGljaCBmdW5jdGlvbnMgc2hvdWxkIG5vdCBiZSBlbmFibGVkIHdoZW4gdHJhY2luZworICogaXMgZW5hYmxlZC4gSWYgQGJ1ZiBpcyBOVUxMIGFuZCByZXNldCBpcyBzZXQsIGFsbCBmdW5jdGlvbnMgd2lsbCBiZSBlbmFibGVkCisgKiBmb3IgdHJhY2luZy4KKyAqLwordm9pZCBmdHJhY2Vfc2V0X25vdHJhY2UodW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbGVuLCBpbnQgcmVzZXQpCit7CisJZnRyYWNlX3NldF9yZWdleChidWYsIGxlbiwgcmVzZXQsIDApOworfQorCitzdGF0aWMgaW50CitmdHJhY2VfcmVnZXhfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IGVuYWJsZSkKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSAoc3RydWN0IHNlcV9maWxlICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXI7CisKKwltdXRleF9sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7CisJaWYgKGZpbGUtPmZfbW9kZSAmIEZNT0RFX1JFQUQpIHsKKwkJaXRlciA9IG0tPnByaXZhdGU7CisKKwkJc2VxX3JlbGVhc2UoaW5vZGUsIGZpbGUpOworCX0gZWxzZQorCQlpdGVyID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJaWYgKGl0ZXItPmJ1ZmZlcl9pZHgpIHsKKwkJaXRlci0+ZmlsdGVyZWQrKzsKKwkJaXRlci0+YnVmZmVyW2l0ZXItPmJ1ZmZlcl9pZHhdID0gMDsKKwkJZnRyYWNlX21hdGNoKGl0ZXItPmJ1ZmZlciwgaXRlci0+YnVmZmVyX2lkeCwgZW5hYmxlKTsKKwl9CisKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCW11dGV4X2xvY2soJmZ0cmFjZWRfbG9jayk7CisJaWYgKGl0ZXItPmZpbHRlcmVkICYmIGZ0cmFjZWRfc3VzcGVuZCAmJiBmdHJhY2VfZW5hYmxlZCkKKwkJZnRyYWNlX3J1bl91cGRhdGVfY29kZShGVFJBQ0VfRU5BQkxFX0NBTExTKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJa2ZyZWUoaXRlcik7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2VfcmVnZXhfbG9jayk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2Z0cmFjZV9maWx0ZXJfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gZnRyYWNlX3JlZ2V4X3JlbGVhc2UoaW5vZGUsIGZpbGUsIDEpOworfQorCitzdGF0aWMgaW50CitmdHJhY2Vfbm90cmFjZV9yZWxlYXNlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiBmdHJhY2VfcmVnZXhfcmVsZWFzZShpbm9kZSwgZmlsZSwgMCk7Cit9CisKK3N0YXRpYyBzc2l6ZV90CitmdHJhY2VkX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwkvKiBkb24ndCB3b3JyeSBhYm91dCByYWNlcyAqLworCWNoYXIgKmJ1ZiA9IGZ0cmFjZWRfc3RvcCA/ICJkaXNhYmxlZFxuIiA6ICJlbmFibGVkXG4iOworCWludCByID0gc3RybGVuKGJ1Zik7CisKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworfQorCitzdGF0aWMgc3NpemVfdAorZnRyYWNlZF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyIGJ1Zls2NF07CisJbG9uZyB2YWw7CisJaW50IHJldDsKKworCWlmIChjbnQgPj0gc2l6ZW9mKGJ1ZikpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKGNvcHlfZnJvbV91c2VyKCZidWYsIHVidWYsIGNudCkpCisJCXJldHVybiAtRUZBVUxUOworCisJaWYgKHN0cm5jbXAoYnVmLCAiZW5hYmxlIiwgNikgPT0gMCkKKwkJdmFsID0gMTsKKwllbHNlIGlmIChzdHJuY21wKGJ1ZiwgImRpc2FibGUiLCA3KSA9PSAwKQorCQl2YWwgPSAwOworCWVsc2UgeworCQlidWZbY250XSA9IDA7CisKKwkJcmV0ID0gc3RyaWN0X3N0cnRvdWwoYnVmLCAxMCwgJnZhbCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKworCQl2YWwgPSAhIXZhbDsKKwl9CisKKwlpZiAodmFsKQorCQlmdHJhY2VfZW5hYmxlX2RhZW1vbigpOworCWVsc2UKKwkJZnRyYWNlX2Rpc2FibGVfZGFlbW9uKCk7CisKKwlmaWxwLT5mX3BvcyArPSBjbnQ7CisKKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2VfYXZhaWxfZm9wcyA9IHsKKwkub3BlbiA9IGZ0cmFjZV9hdmFpbF9vcGVuLAorCS5yZWFkID0gc2VxX3JlYWQsCisJLmxsc2VlayA9IHNlcV9sc2VlaywKKwkucmVsZWFzZSA9IGZ0cmFjZV9hdmFpbF9yZWxlYXNlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZnRyYWNlX2ZhaWx1cmVzX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2VfZmFpbHVyZXNfb3BlbiwKKwkucmVhZCA9IHNlcV9yZWFkLAorCS5sbHNlZWsgPSBzZXFfbHNlZWssCisJLnJlbGVhc2UgPSBmdHJhY2VfYXZhaWxfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZ0cmFjZV9maWx0ZXJfZm9wcyA9IHsKKwkub3BlbiA9IGZ0cmFjZV9maWx0ZXJfb3BlbiwKKwkucmVhZCA9IGZ0cmFjZV9yZWdleF9yZWFkLAorCS53cml0ZSA9IGZ0cmFjZV9maWx0ZXJfd3JpdGUsCisJLmxsc2VlayA9IGZ0cmFjZV9yZWdleF9sc2VlaywKKwkucmVsZWFzZSA9IGZ0cmFjZV9maWx0ZXJfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGZ0cmFjZV9ub3RyYWNlX2ZvcHMgPSB7CisJLm9wZW4gPSBmdHJhY2Vfbm90cmFjZV9vcGVuLAorCS5yZWFkID0gZnRyYWNlX3JlZ2V4X3JlYWQsCisJLndyaXRlID0gZnRyYWNlX25vdHJhY2Vfd3JpdGUsCisJLmxsc2VlayA9IGZ0cmFjZV9yZWdleF9sc2VlaywKKwkucmVsZWFzZSA9IGZ0cmFjZV9ub3RyYWNlX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBmdHJhY2VkX2ZvcHMgPSB7CisJLm9wZW4gPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZCA9IGZ0cmFjZWRfcmVhZCwKKwkud3JpdGUgPSBmdHJhY2VkX3dyaXRlLAorfTsKKworLyoqCisgKiBmdHJhY2VfZm9yY2VfdXBkYXRlIC0gZm9yY2UgYW4gdXBkYXRlIHRvIGFsbCByZWNvcmRpbmcgZnRyYWNlIGZ1bmN0aW9ucworICovCitpbnQgZnRyYWNlX2ZvcmNlX3VwZGF0ZSh2b2lkKQoreworCWludCByZXQgPSAwOworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtRU5PREVWOworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCisJLyoKKwkgKiBJZiBmdHJhY2VkX3RyaWdnZXIgaXMgbm90IHNldCwgdGhlbiB0aGVyZSBpcyBub3RoaW5nCisJICogdG8gdXBkYXRlLgorCSAqLworCWlmIChmdHJhY2VkX3RyaWdnZXIgJiYgIWZ0cmFjZV91cGRhdGVfY29kZSgpKQorCQlyZXQgPSAtRUJVU1k7CisKKwltdXRleF91bmxvY2soJmZ0cmFjZWRfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgZnRyYWNlX2ZvcmNlX3NodXRkb3duKHZvaWQpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOworCWludCBjb21tYW5kID0gRlRSQUNFX0RJU0FCTEVfQ0FMTFMgfCBGVFJBQ0VfVVBEQVRFX1RSQUNFX0ZVTkM7CisKKwltdXRleF9sb2NrKCZmdHJhY2VkX2xvY2spOworCXRhc2sgPSBmdHJhY2VkX3Rhc2s7CisJZnRyYWNlZF90YXNrID0gTlVMTDsKKwlmdHJhY2VkX3N1c3BlbmQgPSAtMTsKKwlmdHJhY2VfcnVuX3VwZGF0ZV9jb2RlKGNvbW1hbmQpOworCW11dGV4X3VubG9jaygmZnRyYWNlZF9sb2NrKTsKKworCWlmICh0YXNrKQorCQlrdGhyZWFkX3N0b3AodGFzayk7Cit9CisKK3N0YXRpYyBfX2luaXQgaW50IGZ0cmFjZV9pbml0X2RlYnVnZnModm9pZCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcjsKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKKworCWRfdHJhY2VyID0gdHJhY2luZ19pbml0X2RlbnRyeSgpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJhdmFpbGFibGVfZmlsdGVyX2Z1bmN0aW9ucyIsIDA0NDQsCisJCQkJICAgIGRfdHJhY2VyLCBOVUxMLCAmZnRyYWNlX2F2YWlsX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ2F2YWlsYWJsZV9maWx0ZXJfZnVuY3Rpb25zJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImZhaWx1cmVzIiwgMDQ0NCwKKwkJCQkgICAgZF90cmFjZXIsIE5VTEwsICZmdHJhY2VfZmFpbHVyZXNfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdmYWlsdXJlcycgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzZXRfZnRyYWNlX2ZpbHRlciIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICBOVUxMLCAmZnRyYWNlX2ZpbHRlcl9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIidzZXRfZnRyYWNlX2ZpbHRlcicgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzZXRfZnRyYWNlX25vdHJhY2UiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJmZ0cmFjZV9ub3RyYWNlX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ3NldF9mdHJhY2Vfbm90cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJmdHJhY2VkX2VuYWJsZWQiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJmZ0cmFjZWRfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICInZnRyYWNlZF9lbmFibGVkJyBlbnRyeVxuIik7CisJcmV0dXJuIDA7Cit9CisKK2ZzX2luaXRjYWxsKGZ0cmFjZV9pbml0X2RlYnVnZnMpOworCitzdGF0aWMgaW50IF9faW5pdCBmdHJhY2VfZHluYW1pY19pbml0KHZvaWQpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwOworCXVuc2lnbmVkIGxvbmcgYWRkcjsKKwlpbnQgcmV0OworCisJYWRkciA9ICh1bnNpZ25lZCBsb25nKWZ0cmFjZV9yZWNvcmRfaXA7CisKKwlzdG9wX21hY2hpbmVfcnVuKGZ0cmFjZV9keW5fYXJjaF9pbml0LCAmYWRkciwgTlJfQ1BVUyk7CisKKwkvKiBmdHJhY2VfZHluX2FyY2hfaW5pdCBwbGFjZXMgdGhlIHJldHVybiBjb2RlIGluIGFkZHIgKi8KKwlpZiAoYWRkcikgeworCQlyZXQgPSAoaW50KWFkZHI7CisJCWdvdG8gZmFpbGVkOworCX0KKworCXJldCA9IGZ0cmFjZV9keW5fdGFibGVfYWxsb2MoKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWxlZDsKKworCXAgPSBrdGhyZWFkX3J1bihmdHJhY2VkLCBOVUxMLCAiZnRyYWNlZCIpOworCWlmIChJU19FUlIocCkpIHsKKwkJcmV0ID0gLTE7CisJCWdvdG8gZmFpbGVkOworCX0KKworCWxhc3RfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZCA9IDE7CisJZnRyYWNlZF90YXNrID0gcDsKKworCXJldHVybiAwOworCisgZmFpbGVkOgorCWZ0cmFjZV9kaXNhYmxlZCA9IDE7CisJcmV0dXJuIHJldDsKK30KKworY29yZV9pbml0Y2FsbChmdHJhY2VfZHluYW1pY19pbml0KTsKKyNlbHNlCisjIGRlZmluZSBmdHJhY2Vfc3RhcnR1cCgpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSBmdHJhY2Vfc2h1dGRvd24oKQkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgZnRyYWNlX3N0YXJ0dXBfc3lzY3RsKCkJZG8geyB9IHdoaWxlICgwKQorIyBkZWZpbmUgZnRyYWNlX3NodXRkb3duX3N5c2N0bCgpCWRvIHsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIGZ0cmFjZV9mb3JjZV9zaHV0ZG93bigpCWRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZiAvKiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UgKi8KKworLyoqCisgKiBmdHJhY2Vfa2lsbF9hdG9taWMgLSBraWxsIGZ0cmFjZSBmcm9tIGNyaXRpY2FsIHNlY3Rpb25zCisgKgorICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBieSBwYW5pYyBjb2RlLiBJdCBzdG9wcyBmdHJhY2UKKyAqIGJ1dCBpbiBhIG5vdCBzbyBuaWNlIHdheS4gSWYgeW91IG5lZWQgdG8gc2ltcGx5IGtpbGwgZnRyYWNlCisgKiBmcm9tIGEgbm9uLWF0b21pYyBzZWN0aW9uLCB1c2UgZnRyYWNlX2tpbGwuCisgKi8KK3ZvaWQgZnRyYWNlX2tpbGxfYXRvbWljKHZvaWQpCit7CisJZnRyYWNlX2Rpc2FibGVkID0gMTsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisJZnRyYWNlZF9zdXNwZW5kID0gLTE7CisjZW5kaWYKKwljbGVhcl9mdHJhY2VfZnVuY3Rpb24oKTsKK30KKworLyoqCisgKiBmdHJhY2Vfa2lsbCAtIHRvdGFsbHkgc2h1dGRvd24gZnRyYWNlCisgKgorICogVGhpcyBpcyBhIHNhZmV0eSBtZWFzdXJlLiBJZiBzb21ldGhpbmcgd2FzIGRldGVjdGVkIHRoYXQgc2VlbXMKKyAqIHdyb25nLCBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBrZWVwIGZ0cmFjZSBmcm9tIGRvaW5nCisgKiBhbnkgbW9yZSBtb2RpZmljYXRpb25zLCBhbmQgdXBkYXRlcy4KKyAqIHVzZWQgd2hlbiBzb21ldGhpbmcgd2VudCB3cm9uZy4KKyAqLwordm9pZCBmdHJhY2Vfa2lsbCh2b2lkKQoreworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJZnRyYWNlX2Rpc2FibGVkID0gMTsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisKKwljbGVhcl9mdHJhY2VfZnVuY3Rpb24oKTsKKwltdXRleF91bmxvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisKKwkvKiBUcnkgdG8gdG90YWxseSBkaXNhYmxlIGZ0cmFjZSAqLworCWZ0cmFjZV9mb3JjZV9zaHV0ZG93bigpOworfQorCisvKioKKyAqIHJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbiAtIHJlZ2lzdGVyIGEgZnVuY3Rpb24gZm9yIHByb2ZpbGluZworICogQG9wcyAtIG9wcyBzdHJ1Y3R1cmUgdGhhdCBob2xkcyB0aGUgZnVuY3Rpb24gZm9yIHByb2ZpbGluZy4KKyAqCisgKiBSZWdpc3RlciBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBieSBhbGwgZnVuY3Rpb25zIGluIHRoZQorICoga2VybmVsLgorICoKKyAqIE5vdGU6IEBvcHMtPmZ1bmMgYW5kIGFsbCB0aGUgZnVuY3Rpb25zIGl0IGNhbGxzIG11c3QgYmUgbGFiZWxlZAorICogICAgICAgd2l0aCAibm90cmFjZSIsIG90aGVyd2lzZSBpdCB3aWxsIGdvIGludG8gYQorICogICAgICAgcmVjdXJzaXZlIGxvb3AuCisgKi8KK2ludCByZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykKK3sKKwlpbnQgcmV0OworCisJaWYgKHVubGlrZWx5KGZ0cmFjZV9kaXNhYmxlZCkpCisJCXJldHVybiAtMTsKKworCW11dGV4X2xvY2soJmZ0cmFjZV9zeXNjdGxfbG9jayk7CisJcmV0ID0gX19yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24ob3BzKTsKKwlmdHJhY2Vfc3RhcnR1cCgpOworCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qKgorICogdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24gLSB1bnJlc2dpc3RlciBhIGZ1bmN0aW9uIGZvciBwcm9maWxpbmcuCisgKiBAb3BzIC0gb3BzIHN0cnVjdHVyZSB0aGF0IGhvbGRzIHRoZSBmdW5jdGlvbiB0byB1bnJlZ2lzdGVyCisgKgorICogVW5yZWdpc3RlciBhIGZ1bmN0aW9uIHRoYXQgd2FzIGFkZGVkIHRvIGJlIGNhbGxlZCBieSBmdHJhY2UgcHJvZmlsaW5nLgorICovCitpbnQgdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oc3RydWN0IGZ0cmFjZV9vcHMgKm9wcykKK3sKKwlpbnQgcmV0OworCisJbXV0ZXhfbG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwlyZXQgPSBfX3VucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKG9wcyk7CisJZnRyYWNlX3NodXRkb3duKCk7CisJbXV0ZXhfdW5sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJcmV0dXJuIHJldDsKK30KKworaW50CitmdHJhY2VfZW5hYmxlX3N5c2N0bChzdHJ1Y3QgY3RsX3RhYmxlICp0YWJsZSwgaW50IHdyaXRlLAorCQkgICAgIHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkIF9fdXNlciAqYnVmZmVyLCBzaXplX3QgKmxlbnAsCisJCSAgICAgbG9mZl90ICpwcG9zKQoreworCWludCByZXQ7CisKKwlpZiAodW5saWtlbHkoZnRyYWNlX2Rpc2FibGVkKSkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwltdXRleF9sb2NrKCZmdHJhY2Vfc3lzY3RsX2xvY2spOworCisJcmV0ICA9IHByb2NfZG9pbnR2ZWModGFibGUsIHdyaXRlLCBmaWxlLCBidWZmZXIsIGxlbnAsIHBwb3MpOworCisJaWYgKHJldCB8fCAhd3JpdGUgfHwgKGxhc3RfZnRyYWNlX2VuYWJsZWQgPT0gZnRyYWNlX2VuYWJsZWQpKQorCQlnb3RvIG91dDsKKworCWxhc3RfZnRyYWNlX2VuYWJsZWQgPSBmdHJhY2VfZW5hYmxlZDsKKworCWlmIChmdHJhY2VfZW5hYmxlZCkgeworCisJCWZ0cmFjZV9zdGFydHVwX3N5c2N0bCgpOworCisJCS8qIHdlIGFyZSBzdGFydGluZyBmdHJhY2UgYWdhaW4gKi8KKwkJaWYgKGZ0cmFjZV9saXN0ICE9ICZmdHJhY2VfbGlzdF9lbmQpIHsKKwkJCWlmIChmdHJhY2VfbGlzdC0+bmV4dCA9PSAmZnRyYWNlX2xpc3RfZW5kKQorCQkJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9saXN0LT5mdW5jOworCQkJZWxzZQorCQkJCWZ0cmFjZV90cmFjZV9mdW5jdGlvbiA9IGZ0cmFjZV9saXN0X2Z1bmM7CisJCX0KKworCX0gZWxzZSB7CisJCS8qIHN0b3BwaW5nIGZ0cmFjZSBjYWxscyAoanVzdCBzZW5kIHRvIGZ0cmFjZV9zdHViKSAqLworCQlmdHJhY2VfdHJhY2VfZnVuY3Rpb24gPSBmdHJhY2Vfc3R1YjsKKworCQlmdHJhY2Vfc2h1dGRvd25fc3lzY3RsKCk7CisJfQorCisgb3V0OgorCW11dGV4X3VubG9jaygmZnRyYWNlX3N5c2N0bF9sb2NrKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEva2VybmVsL3RyYWNlL3RyYWNlLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjhlMTIxCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlLmMKQEAgLTAsMCArMSwzMTYxIEBACisvKgorICogcmluZyBidWZmZXIgYmFzZWQgZnVuY3Rpb24gdHJhY2VyCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDggU3RldmVuIFJvc3RlZHQgPHNyb3N0ZWR0QHJlZGhhdC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhhdC5jb20+CisgKgorICogT3JpZ2luYWxseSB0YWtlbiBmcm9tIHRoZSBSVCBwYXRjaCBieToKKyAqICAgIEFybmFsZG8gQ2FydmFsaG8gZGUgTWVsbyA8YWNtZUByZWRoYXQuY29tPgorICoKKyAqIEJhc2VkIG9uIGNvZGUgZnJvbSB0aGUgbGF0ZW5jeV90cmFjZXIsIHRoYXQgaXM6CisgKiAgQ29weXJpZ2h0IChDKSAyMDA0LTIwMDYgSW5nbyBNb2xuYXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQgV2lsbGlhbSBMZWUgSXJ3aW4gSUlJCisgKi8KKyNpbmNsdWRlIDxsaW51eC91dHNyZWxlYXNlLmg+CisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+CisjaW5jbHVkZSA8bGludXgvaGFyZGlycS5oPgorI2luY2x1ZGUgPGxpbnV4L2xpbmthZ2UuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CisjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L2dmcC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgva3Byb2Jlcy5oPgorI2luY2x1ZGUgPGxpbnV4L3dyaXRlYmFjay5oPgorCisjaW5jbHVkZSA8bGludXgvc3RhY2t0cmFjZS5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKwordW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5CXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAoY3ljbGVfdClVTE9OR19NQVg7Cit1bnNpZ25lZCBsb25nIF9fcmVhZF9tb3N0bHkJdHJhY2luZ190aHJlc2g7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIF9fcmVhZF9tb3N0bHkJdHJhY2luZ19ucl9idWZmZXJzOworc3RhdGljIGNwdW1hc2tfdCBfX3JlYWRfbW9zdGx5CQl0cmFjaW5nX2J1ZmZlcl9tYXNrOworCisjZGVmaW5lIGZvcl9lYWNoX3RyYWNpbmdfY3B1KGNwdSkJXAorCWZvcl9lYWNoX2NwdV9tYXNrKGNwdSwgdHJhY2luZ19idWZmZXJfbWFzaykKKworc3RhdGljIGludCB0cmFjZV9hbGxvY19wYWdlKHZvaWQpOworc3RhdGljIGludCB0cmFjZV9mcmVlX3BhZ2Uodm9pZCk7CisKK3N0YXRpYyBpbnQgdHJhY2luZ19kaXNhYmxlZCA9IDE7CisKK3N0YXRpYyB1bnNpZ25lZCBsb25nIHRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkOworCitsb25nCituczJ1c2VjcyhjeWNsZV90IG5zZWMpCit7CisJbnNlYyArPSA1MDA7CisJZG9fZGl2KG5zZWMsIDEwMDApOworCXJldHVybiBuc2VjOworfQorCitjeWNsZV90IGZ0cmFjZV9ub3coaW50IGNwdSkKK3sKKwlyZXR1cm4gY3B1X2Nsb2NrKGNwdSk7Cit9CisKKy8qCisgKiBUaGUgZ2xvYmFsX3RyYWNlIGlzIHRoZSBkZXNjcmlwdG9yIHRoYXQgaG9sZHMgdGhlIHRyYWNpbmcKKyAqIGJ1ZmZlcnMgZm9yIHRoZSBsaXZlIHRyYWNpbmcuIEZvciBlYWNoIENQVSwgaXQgY29udGFpbnMKKyAqIGEgbGluayBsaXN0IG9mIHBhZ2VzIHRoYXQgd2lsbCBzdG9yZSB0cmFjZSBlbnRyaWVzLiBUaGUKKyAqIHBhZ2UgZGVzY3JpcHRvciBvZiB0aGUgcGFnZXMgaW4gdGhlIG1lbW9yeSBpcyB1c2VkIHRvIGhvbGQKKyAqIHRoZSBsaW5rIGxpc3QgYnkgbGlua2luZyB0aGUgbHJ1IGl0ZW0gaW4gdGhlIHBhZ2UgZGVzY3JpcHRvcgorICogdG8gZWFjaCBvZiB0aGUgcGFnZXMgaW4gdGhlIGJ1ZmZlciBwZXIgQ1BVLgorICoKKyAqIEZvciBlYWNoIGFjdGl2ZSBDUFUgdGhlcmUgaXMgYSBkYXRhIGZpZWxkIHRoYXQgaG9sZHMgdGhlCisgKiBwYWdlcyBmb3IgdGhlIGJ1ZmZlciBmb3IgdGhhdCBDUFUuIEVhY2ggQ1BVIGhhcyB0aGUgc2FtZSBudW1iZXIKKyAqIG9mIHBhZ2VzIGFsbG9jYXRlZCBmb3IgaXRzIGJ1ZmZlci4KKyAqLworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheQlnbG9iYWxfdHJhY2U7CisKK3N0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1LCBnbG9iYWxfdHJhY2VfY3B1KTsKKworLyoKKyAqIFRoZSBtYXhfdHIgaXMgdXNlZCB0byBzbmFwc2hvdCB0aGUgZ2xvYmFsX3RyYWNlIHdoZW4gYSBtYXhpbXVtCisgKiBsYXRlbmN5IGlzIHJlYWNoZWQuIFNvbWUgdHJhY2VycyB3aWxsIHVzZSB0aGlzIHRvIHN0b3JlIGEgbWF4aW11bQorICogdHJhY2Ugd2hpbGUgaXQgY29udGludWVzIGV4YW1pbmluZyBsaXZlIHRyYWNlcy4KKyAqCisgKiBUaGUgYnVmZmVycyBmb3IgdGhlIG1heF90ciBhcmUgc2V0IHVwIHRoZSBzYW1lIGFzIHRoZSBnbG9iYWxfdHJhY2UuCisgKiBXaGVuIGEgc25hcHNob3QgaXMgdGFrZW4sIHRoZSBsaW5rIGxpc3Qgb2YgdGhlIG1heF90ciBpcyBzd2FwcGVkCisgKiB3aXRoIHRoZSBsaW5rIGxpc3Qgb2YgdGhlIGdsb2JhbF90cmFjZSBhbmQgdGhlIGJ1ZmZlcnMgYXJlIHJlc2V0IGZvcgorICogdGhlIGdsb2JhbF90cmFjZSBzbyB0aGUgdHJhY2luZyBjYW4gY29udGludWUuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJbWF4X3RyOworCitzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRyYWNlX2FycmF5X2NwdSwgbWF4X2RhdGEpOworCisvKiB0cmFjZXJfZW5hYmxlZCBpcyB1c2VkIHRvIHRvZ2dsZSBhY3RpdmF0aW9uIG9mIGEgdHJhY2VyICovCitzdGF0aWMgaW50CQkJdHJhY2VyX2VuYWJsZWQgPSAxOworCisvKiBmdW5jdGlvbiB0cmFjaW5nIGVuYWJsZWQgKi8KK2ludAkJCQlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZDsKKworLyoKKyAqIHRyYWNlX25yX2VudHJpZXMgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIHRoYXQgaXMgYWxsb2NhdGVkCisgKiBmb3IgYSBidWZmZXIuIE5vdGUsIHRoZSBudW1iZXIgb2YgZW50cmllcyBpcyBhbHdheXMgcm91bmRlZAorICogdG8gRU5UUklFU19QRVJfUEFHRS4KKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcJCXRyYWNlX25yX2VudHJpZXMgPSA2NTUzNlVMOworCisvKiB0cmFjZV90eXBlcyBob2xkcyBhIGxpbmsgbGlzdCBvZiBhdmFpbGFibGUgdHJhY2Vycy4gKi8KK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyCQkqdHJhY2VfdHlwZXMgX19yZWFkX21vc3RseTsKKworLyogY3VycmVudF90cmFjZSBwb2ludHMgdG8gdGhlIHRyYWNlciB0aGF0IGlzIGN1cnJlbnRseSBhY3RpdmUgKi8KK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyCQkqY3VycmVudF90cmFjZSBfX3JlYWRfbW9zdGx5OworCisvKgorICogbWF4X3RyYWNlcl90eXBlX2xlbiBpcyB1c2VkIHRvIHNpbXBsaWZ5IHRoZSBhbGxvY2F0aW5nIG9mCisgKiBidWZmZXJzIHRvIHJlYWQgdXNlcnNwYWNlIHRyYWNlciBuYW1lcy4gV2Uga2VlcCB0cmFjayBvZgorICogdGhlIGxvbmdlc3QgdHJhY2VyIG5hbWUgcmVnaXN0ZXJlZC4KKyAqLworc3RhdGljIGludAkJCW1heF90cmFjZXJfdHlwZV9sZW47CisKKy8qCisgKiB0cmFjZV90eXBlc19sb2NrIGlzIHVzZWQgdG8gcHJvdGVjdCB0aGUgdHJhY2VfdHlwZXMgbGlzdC4KKyAqIFRoaXMgbG9jayBpcyBhbHNvIHVzZWQgdG8ga2VlcCB1c2VyIGFjY2VzcyBzZXJpYWxpemVkLgorICogQWNjZXNzZXMgZnJvbSB1c2Vyc3BhY2Ugd2lsbCBncmFiIHRoaXMgbG9jayB3aGlsZSB1c2Vyc3BhY2UKKyAqIGFjdGl2aXRpZXMgaGFwcGVuIGluc2lkZSB0aGUga2VybmVsLgorICovCitzdGF0aWMgREVGSU5FX01VVEVYKHRyYWNlX3R5cGVzX2xvY2spOworCisvKiB0cmFjZV93YWl0IGlzIGEgd2FpdHF1ZXVlIGZvciB0YXNrcyBibG9ja2VkIG9uIHRyYWNlX3BvbGwgKi8KK3N0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRCh0cmFjZV93YWl0KTsKKworLyogdHJhY2VfZmxhZ3MgaG9sZHMgaXRlcl9jdHJsIG9wdGlvbnMgKi8KK3Vuc2lnbmVkIGxvbmcgdHJhY2VfZmxhZ3MgPSBUUkFDRV9JVEVSX1BSSU5UX1BBUkVOVDsKKworc3RhdGljIG5vdHJhY2Ugdm9pZCBub190cmFjZV9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaW50IGNwdTsKKworCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMDsKKwlpZih0ci0+Y3RybCkKKwkJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpCisJCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworCXRyYWNlcl9lbmFibGVkID0gMDsKK30KKworLyogZHVtbXkgdHJhY2UgdG8gZGlzYWJsZSB0cmFjaW5nICovCitzdGF0aWMgc3RydWN0IHRyYWNlciBub190cmFjZXIgX19yZWFkX21vc3RseSA9IHsKKwkubmFtZQkJPSAibm9uZSIsCisJLmluaXQJCT0gbm9fdHJhY2VfaW5pdAorfTsKKworCisvKioKKyAqIHRyYWNlX3dha2VfdXAgLSB3YWtlIHVwIHRhc2tzIHdhaXRpbmcgZm9yIHRyYWNlIGlucHV0CisgKgorICogU2ltcGx5IHdha2VzIHVwIGFueSB0YXNrIHRoYXQgaXMgYmxvY2tlZCBvbiB0aGUgdHJhY2Vfd2FpdAorICogcXVldWUuIFRoZXNlIGlzIHVzZWQgd2l0aCB0cmFjZV9wb2xsIGZvciB0YXNrcyBwb2xsaW5nIHRoZSB0cmFjZS4KKyAqLwordm9pZCB0cmFjZV93YWtlX3VwKHZvaWQpCit7CisJLyoKKwkgKiBUaGUgcnVucXVldWVfaXNfbG9ja2VkKCkgY2FuIGZhaWwsIGJ1dCB0aGlzIGlzIHRoZSBiZXN0IHdlCisJICogaGF2ZSBmb3Igbm93OgorCSAqLworCWlmICghKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9CTE9DSykgJiYgIXJ1bnF1ZXVlX2lzX2xvY2tlZCgpKQorCQl3YWtlX3VwKCZ0cmFjZV93YWl0KTsKK30KKworI2RlZmluZSBFTlRSSUVTX1BFUl9QQUdFIChQQUdFX1NJWkUgLyBzaXplb2Yoc3RydWN0IHRyYWNlX2VudHJ5KSkKKworc3RhdGljIGludCBfX2luaXQgc2V0X25yX2VudHJpZXMoY2hhciAqc3RyKQoreworCXVuc2lnbmVkIGxvbmcgbnJfZW50cmllczsKKwlpbnQgcmV0OworCisJaWYgKCFzdHIpCisJCXJldHVybiAwOworCXJldCA9IHN0cmljdF9zdHJ0b3VsKHN0ciwgMCwgJm5yX2VudHJpZXMpOworCS8qIG5yX2VudHJpZXMgY2FuIG5vdCBiZSB6ZXJvICovCisJaWYgKHJldCA8IDAgfHwgbnJfZW50cmllcyA9PSAwKQorCQlyZXR1cm4gMDsKKwl0cmFjZV9ucl9lbnRyaWVzID0gbnJfZW50cmllczsKKwlyZXR1cm4gMTsKK30KK19fc2V0dXAoInRyYWNlX2VudHJpZXM9Iiwgc2V0X25yX2VudHJpZXMpOworCit1bnNpZ25lZCBsb25nIG5zZWNzX3RvX3VzZWNzKHVuc2lnbmVkIGxvbmcgbnNlY3MpCit7CisJcmV0dXJuIG5zZWNzIC8gMTAwMDsKK30KKworLyoKKyAqIHRyYWNlX2ZsYWdfdHlwZSBpcyBhbiBlbnVtZXJhdGlvbiB0aGF0IGhvbGRzIGRpZmZlcmVudAorICogc3RhdGVzIHdoZW4gYSB0cmFjZSBvY2N1cnMuIFRoZXNlIGFyZToKKyAqICBJUlFTX09GRgktIGludGVycnVwdHMgd2VyZSBkaXNhYmxlZAorICogIE5FRURfUkVTQ0VEIC0gcmVzY2hlZHVsZSBpcyByZXF1ZXN0ZWQKKyAqICBIQVJESVJRCS0gaW5zaWRlIGFuIGludGVycnVwdCBoYW5kbGVyCisgKiAgU09GVElSUQktIGluc2lkZSBhIHNvZnRpcnEgaGFuZGxlcgorICovCitlbnVtIHRyYWNlX2ZsYWdfdHlwZSB7CisJVFJBQ0VfRkxBR19JUlFTX09GRgkJPSAweDAxLAorCVRSQUNFX0ZMQUdfTkVFRF9SRVNDSEVECQk9IDB4MDIsCisJVFJBQ0VfRkxBR19IQVJESVJRCQk9IDB4MDQsCisJVFJBQ0VfRkxBR19TT0ZUSVJRCQk9IDB4MDgsCit9OworCisvKgorICogVFJBQ0VfSVRFUl9TWU1fTUFTSyBtYXNrcyB0aGUgb3B0aW9ucyBpbiB0cmFjZV9mbGFncyB0aGF0CisgKiBjb250cm9sIHRoZSBvdXRwdXQgb2Yga2VybmVsIHN5bWJvbHMuCisgKi8KKyNkZWZpbmUgVFJBQ0VfSVRFUl9TWU1fTUFTSyBcCisJKFRSQUNFX0lURVJfUFJJTlRfUEFSRU5UfFRSQUNFX0lURVJfU1lNX09GRlNFVHxUUkFDRV9JVEVSX1NZTV9BRERSKQorCisvKiBUaGVzZSBtdXN0IG1hdGNoIHRoZSBiaXQgcG9zdGlvbnMgaW4gdHJhY2VfaXRlcmF0b3JfZmxhZ3MgKi8KK3N0YXRpYyBjb25zdCBjaGFyICp0cmFjZV9vcHRpb25zW10gPSB7CisJInByaW50LXBhcmVudCIsCisJInN5bS1vZmZzZXQiLAorCSJzeW0tYWRkciIsCisJInZlcmJvc2UiLAorCSJyYXciLAorCSJoZXgiLAorCSJiaW4iLAorCSJibG9jayIsCisJInN0YWNrdHJhY2UiLAorCSJzY2hlZC10cmVlIiwKKwlOVUxMCit9OworCisvKgorICogZnRyYWNlX21heF9sb2NrIGlzIHVzZWQgdG8gcHJvdGVjdCB0aGUgc3dhcHBpbmcgb2YgYnVmZmVycworICogd2hlbiB0YWtpbmcgYSBtYXggc25hcHNob3QuIFRoZSBidWZmZXJzIHRoZW1zZWx2ZXMgYXJlCisgKiBwcm90ZWN0ZWQgYnkgcGVyX2NwdSBzcGlubG9ja3MuIEJ1dCB0aGUgYWN0aW9uIG9mIHRoZSBzd2FwCisgKiBuZWVkcyBpdHMgb3duIGxvY2suCisgKgorICogVGhpcyBpcyBkZWZpbmVkIGFzIGEgcmF3X3NwaW5sb2NrX3QgaW4gb3JkZXIgdG8gaGVscAorICogd2l0aCBwZXJmb3JtYW5jZSB3aGVuIGxvY2tkZXAgZGVidWdnaW5nIGlzIGVuYWJsZWQuCisgKi8KK3N0YXRpYyByYXdfc3BpbmxvY2tfdCBmdHJhY2VfbWF4X2xvY2sgPQorCShyYXdfc3BpbmxvY2tfdClfX1JBV19TUElOX0xPQ0tfVU5MT0NLRUQ7CisKKy8qCisgKiBDb3B5IHRoZSBuZXcgbWF4aW11bSB0cmFjZSBpbnRvIHRoZSBzZXBhcmF0ZSBtYXhpbXVtLXRyYWNlCisgKiBzdHJ1Y3R1cmUuICh0aGlzIHdheSB0aGUgbWF4aW11bSB0cmFjZSBpcyBwZXJtYW5lbnRseSBzYXZlZCwKKyAqIGZvciBsYXRlciByZXRyaWV2YWwgdmlhIC9kZWJ1Z2ZzL3RyYWNpbmcvbGF0ZW5jeV90cmFjZSkKKyAqLworc3RhdGljIHZvaWQKK19fdXBkYXRlX21heF90cihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gdHItPmRhdGFbY3B1XTsKKworCW1heF90ci5jcHUgPSBjcHU7CisJbWF4X3RyLnRpbWVfc3RhcnQgPSBkYXRhLT5wcmVlbXB0X3RpbWVzdGFtcDsKKworCWRhdGEgPSBtYXhfdHIuZGF0YVtjcHVdOworCWRhdGEtPnNhdmVkX2xhdGVuY3kgPSB0cmFjaW5nX21heF9sYXRlbmN5OworCisJbWVtY3B5KGRhdGEtPmNvbW0sIHRzay0+Y29tbSwgVEFTS19DT01NX0xFTik7CisJZGF0YS0+cGlkID0gdHNrLT5waWQ7CisJZGF0YS0+dWlkID0gdHNrLT51aWQ7CisJZGF0YS0+bmljZSA9IHRzay0+c3RhdGljX3ByaW8gLSAyMCAtIE1BWF9SVF9QUklPOworCWRhdGEtPnBvbGljeSA9IHRzay0+cG9saWN5OworCWRhdGEtPnJ0X3ByaW9yaXR5ID0gdHNrLT5ydF9wcmlvcml0eTsKKworCS8qIHJlY29yZCB0aGlzIHRhc2tzIGNvbW0gKi8KKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnJlbnQpOworfQorCisjZGVmaW5lIENIRUNLX0NPTkQoY29uZCkJCQlcCisJaWYgKHVubGlrZWx5KGNvbmQpKSB7CQkJXAorCQl0cmFjaW5nX2Rpc2FibGVkID0gMTsJCVwKKwkJV0FSTl9PTigxKTsJCQlcCisJCXJldHVybiAtMTsJCQlcCisJfQorCisvKioKKyAqIGNoZWNrX3BhZ2VzIC0gaW50ZWdyaXR5IGNoZWNrIG9mIHRyYWNlIGJ1ZmZlcnMKKyAqCisgKiBBcyBhIHNhZnR5IG1lYXN1cmUgd2UgY2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBkYXRhIHBhZ2VzIGhhdmUgbm90CisgKiBiZWVuIGNvcnJ1cHRlZC4KKyAqLworaW50IGNoZWNrX3BhZ2VzKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpCit7CisJc3RydWN0IHBhZ2UgKnBhZ2UsICp0bXA7CisKKwlDSEVDS19DT05EKGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQtPnByZXYgIT0gJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKwlDSEVDS19DT05EKGRhdGEtPnRyYWNlX3BhZ2VzLnByZXYtPm5leHQgIT0gJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCB0bXAsICZkYXRhLT50cmFjZV9wYWdlcywgbHJ1KSB7CisJCUNIRUNLX0NPTkQocGFnZS0+bHJ1Lm5leHQtPnByZXYgIT0gJnBhZ2UtPmxydSk7CisJCUNIRUNLX0NPTkQocGFnZS0+bHJ1LnByZXYtPm5leHQgIT0gJnBhZ2UtPmxydSk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgorICogaGVhZF9wYWdlIC0gcGFnZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBwYWdlIGluIHBlcl9jcHUgYnVmZmVyLgorICoKKyAqIGhlYWRfcGFnZSByZXR1cm5zIHRoZSBwYWdlIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IHBhZ2UgaW4KKyAqIGEgcGVyX2NwdSBidWZmZXIuIFRoaXMgYWxzbyBwcmVmb3JtcyB2YXJpb3VzIGNvbnNpc3RlbmN5CisgKiBjaGVja3MgdG8gbWFrZSBzdXJlIHRoZSBidWZmZXIgaGFzIG5vdCBiZWVuIGNvcnJ1cHRlZC4KKyAqLwordm9pZCAqaGVhZF9wYWdlKHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpCit7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisKKwlpZiAobGlzdF9lbXB0eSgmZGF0YS0+dHJhY2VfcGFnZXMpKQorCQlyZXR1cm4gTlVMTDsKKworCXBhZ2UgPSBsaXN0X2VudHJ5KGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQsIHN0cnVjdCBwYWdlLCBscnUpOworCUJVR19PTigmcGFnZS0+bHJ1ID09ICZkYXRhLT50cmFjZV9wYWdlcyk7CisKKwlyZXR1cm4gcGFnZV9hZGRyZXNzKHBhZ2UpOworfQorCisvKioKKyAqIHRyYWNlX3NlcV9wcmludGYgLSBzZXF1ZW5jZSBwcmludGluZyBvZiB0cmFjZSBpbmZvcm1hdGlvbgorICogQHM6IHRyYWNlIHNlcXVlbmNlIGRlc2NyaXB0b3IKKyAqIEBmbXQ6IHByaW50ZiBmb3JtYXQgc3RyaW5nCisgKgorICogVGhlIHRyYWNlciBtYXkgdXNlIGVpdGhlciBzZXF1ZW5jZSBvcGVyYXRpb25zIG9yIGl0cyBvd24KKyAqIGNvcHkgdG8gdXNlciByb3V0aW5lcy4gVG8gc2ltcGxpZnkgZm9ybWF0aW5nIG9mIGEgdHJhY2UKKyAqIHRyYWNlX3NlcV9wcmludGYgaXMgdXNlZCB0byBzdG9yZSBzdHJpbmdzIGludG8gYSBzcGVjaWFsCisgKiBidWZmZXIgKEBzKS4gVGhlbiB0aGUgb3V0cHV0IG1heSBiZSBlaXRoZXIgdXNlZCBieQorICogdGhlIHNlcXVlbmNlciBvciBwdWxsZWQgaW50byBhbm90aGVyIGJ1ZmZlci4KKyAqLworaW50Cit0cmFjZV9zZXFfcHJpbnRmKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQoreworCWludCBsZW4gPSAoUEFHRV9TSVpFIC0gMSkgLSBzLT5sZW47CisJdmFfbGlzdCBhcDsKKwlpbnQgcmV0OworCisJaWYgKCFsZW4pCisJCXJldHVybiAwOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJcmV0ID0gdnNucHJpbnRmKHMtPmJ1ZmZlciArIHMtPmxlbiwgbGVuLCBmbXQsIGFwKTsKKwl2YV9lbmQoYXApOworCisJLyogSWYgd2UgY2FuJ3Qgd3JpdGUgaXQgYWxsLCBkb24ndCBib3RoZXIgd3JpdGluZyBhbnl0aGluZyAqLworCWlmIChyZXQgPj0gbGVuKQorCQlyZXR1cm4gMDsKKworCXMtPmxlbiArPSByZXQ7CisKKwlyZXR1cm4gbGVuOworfQorCisvKioKKyAqIHRyYWNlX3NlcV9wdXRzIC0gdHJhY2Ugc2VxdWVuY2UgcHJpbnRpbmcgb2Ygc2ltcGxlIHN0cmluZworICogQHM6IHRyYWNlIHNlcXVlbmNlIGRlc2NyaXB0b3IKKyAqIEBzdHI6IHNpbXBsZSBzdHJpbmcgdG8gcmVjb3JkCisgKgorICogVGhlIHRyYWNlciBtYXkgdXNlIGVpdGhlciB0aGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyBvciBpdHMgb3duCisgKiBjb3B5IHRvIHVzZXIgcm91dGluZXMuIFRoaXMgZnVuY3Rpb24gcmVjb3JkcyBhIHNpbXBsZSBzdHJpbmcKKyAqIGludG8gYSBzcGVjaWFsIGJ1ZmZlciAoQHMpIGZvciBsYXRlciByZXRyaWV2YWwgYnkgYSBzZXF1ZW5jZXIKKyAqIG9yIG90aGVyIG1lY2hhbmlzbS4KKyAqLworc3RhdGljIGludAordHJhY2Vfc2VxX3B1dHMoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3QgY2hhciAqc3RyKQoreworCWludCBsZW4gPSBzdHJsZW4oc3RyKTsKKworCWlmIChsZW4gPiAoKFBBR0VfU0laRSAtIDEpIC0gcy0+bGVuKSkKKwkJcmV0dXJuIDA7CisKKwltZW1jcHkocy0+YnVmZmVyICsgcy0+bGVuLCBzdHIsIGxlbik7CisJcy0+bGVuICs9IGxlbjsKKworCXJldHVybiBsZW47Cit9CisKK3N0YXRpYyBpbnQKK3RyYWNlX3NlcV9wdXRjKHN0cnVjdCB0cmFjZV9zZXEgKnMsIHVuc2lnbmVkIGNoYXIgYykKK3sKKwlpZiAocy0+bGVuID49IChQQUdFX1NJWkUgLSAxKSkKKwkJcmV0dXJuIDA7CisKKwlzLT5idWZmZXJbcy0+bGVuKytdID0gYzsKKworCXJldHVybiAxOworfQorCitzdGF0aWMgaW50Cit0cmFjZV9zZXFfcHV0bWVtKHN0cnVjdCB0cmFjZV9zZXEgKnMsIHZvaWQgKm1lbSwgc2l6ZV90IGxlbikKK3sKKwlpZiAobGVuID4gKChQQUdFX1NJWkUgLSAxKSAtIHMtPmxlbikpCisJCXJldHVybiAwOworCisJbWVtY3B5KHMtPmJ1ZmZlciArIHMtPmxlbiwgbWVtLCBsZW4pOworCXMtPmxlbiArPSBsZW47CisKKwlyZXR1cm4gbGVuOworfQorCisjZGVmaW5lIEhFWF9DSEFSUyAxNworc3RhdGljIGNvbnN0IGNoYXIgaGV4MmFzY1tdID0gIjAxMjM0NTY3ODlhYmNkZWYiOworCitzdGF0aWMgaW50Cit0cmFjZV9zZXFfcHV0bWVtX2hleChzdHJ1Y3QgdHJhY2Vfc2VxICpzLCB2b2lkICptZW0sIHNpemVfdCBsZW4pCit7CisJdW5zaWduZWQgY2hhciBoZXhbSEVYX0NIQVJTXTsKKwl1bnNpZ25lZCBjaGFyICpkYXRhID0gbWVtOworCXVuc2lnbmVkIGNoYXIgYnl0ZTsKKwlpbnQgaSwgajsKKworCUJVR19PTihsZW4gPj0gSEVYX0NIQVJTKTsKKworI2lmZGVmIF9fQklHX0VORElBTgorCWZvciAoaSA9IDAsIGogPSAwOyBpIDwgbGVuOyBpKyspIHsKKyNlbHNlCisJZm9yIChpID0gbGVuLTEsIGogPSAwOyBpID49IDA7IGktLSkgeworI2VuZGlmCisJCWJ5dGUgPSBkYXRhW2ldOworCisJCWhleFtqKytdID0gaGV4MmFzY1tieXRlICYgMHgwZl07CisJCWhleFtqKytdID0gaGV4MmFzY1tieXRlID4+IDRdOworCX0KKwloZXhbaisrXSA9ICcgJzsKKworCXJldHVybiB0cmFjZV9zZXFfcHV0bWVtKHMsIGhleCwgaik7Cit9CisKK3N0YXRpYyB2b2lkCit0cmFjZV9zZXFfcmVzZXQoc3RydWN0IHRyYWNlX3NlcSAqcykKK3sKKwlzLT5sZW4gPSAwOworCXMtPnJlYWRwb3MgPSAwOworfQorCitzc2l6ZV90IHRyYWNlX3NlcV90b191c2VyKHN0cnVjdCB0cmFjZV9zZXEgKnMsIGNoYXIgX191c2VyICp1YnVmLCBzaXplX3QgY250KQoreworCWludCBsZW47CisJaW50IHJldDsKKworCWlmIChzLT5sZW4gPD0gcy0+cmVhZHBvcykKKwkJcmV0dXJuIC1FQlVTWTsKKworCWxlbiA9IHMtPmxlbiAtIHMtPnJlYWRwb3M7CisJaWYgKGNudCA+IGxlbikKKwkJY250ID0gbGVuOworCXJldCA9IGNvcHlfdG9fdXNlcih1YnVmLCBzLT5idWZmZXIgKyBzLT5yZWFkcG9zLCBjbnQpOworCWlmIChyZXQpCisJCXJldHVybiAtRUZBVUxUOworCisJcy0+cmVhZHBvcyArPSBsZW47CisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHZvaWQKK3RyYWNlX3ByaW50X3NlcShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB0cmFjZV9zZXEgKnMpCit7CisJaW50IGxlbiA9IHMtPmxlbiA+PSBQQUdFX1NJWkUgPyBQQUdFX1NJWkUgLSAxIDogcy0+bGVuOworCisJcy0+YnVmZmVyW2xlbl0gPSAwOworCXNlcV9wdXRzKG0sIHMtPmJ1ZmZlcik7CisKKwl0cmFjZV9zZXFfcmVzZXQocyk7Cit9CisKKy8qCisgKiBmbGlwIHRoZSB0cmFjZSBidWZmZXJzIGJldHdlZW4gdHdvIHRyYWNlIGRlc2NyaXB0b3JzLgorICogVGhpcyB1c3VhbGx5IGlzIHRoZSBidWZmZXJzIGJldHdlZW4gdGhlIGdsb2JhbF90cmFjZSBhbmQKKyAqIHRoZSBtYXhfdHIgdG8gcmVjb3JkIGEgc25hcHNob3Qgb2YgYSBjdXJyZW50IHRyYWNlLgorICoKKyAqIFRoZSBmdHJhY2VfbWF4X2xvY2sgbXVzdCBiZSBoZWxkLgorICovCitzdGF0aWMgdm9pZAorZmxpcF90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICp0cjEsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKnRyMikKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkIGZsaXBfcGFnZXM7CisKKwlJTklUX0xJU1RfSEVBRCgmZmxpcF9wYWdlcyk7CisKKwltZW1jcHkoJnRyMS0+dHJhY2VfaGVhZF9pZHgsICZ0cjItPnRyYWNlX2hlYWRfaWR4LAorCQlzaXplb2Yoc3RydWN0IHRyYWNlX2FycmF5X2NwdSkgLQorCQlvZmZzZXRvZihzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1LCB0cmFjZV9oZWFkX2lkeCkpOworCisJY2hlY2tfcGFnZXModHIxKTsKKwljaGVja19wYWdlcyh0cjIpOworCWxpc3Rfc3BsaWNlX2luaXQoJnRyMS0+dHJhY2VfcGFnZXMsICZmbGlwX3BhZ2VzKTsKKwlsaXN0X3NwbGljZV9pbml0KCZ0cjItPnRyYWNlX3BhZ2VzLCAmdHIxLT50cmFjZV9wYWdlcyk7CisJbGlzdF9zcGxpY2VfaW5pdCgmZmxpcF9wYWdlcywgJnRyMi0+dHJhY2VfcGFnZXMpOworCUJVR19PTighbGlzdF9lbXB0eSgmZmxpcF9wYWdlcykpOworCWNoZWNrX3BhZ2VzKHRyMSk7CisJY2hlY2tfcGFnZXModHIyKTsKK30KKworLyoqCisgKiB1cGRhdGVfbWF4X3RyIC0gc25hcHNob3QgYWxsIHRyYWNlIGJ1ZmZlcnMgZnJvbSBnbG9iYWxfdHJhY2UgdG8gbWF4X3RyCisgKiBAdHI6IHRyYWNlcgorICogQHRzazogdGhlIHRhc2sgd2l0aCB0aGUgbGF0ZW5jeQorICogQGNwdTogVGhlIGNwdSB0aGF0IGluaXRpYXRlZCB0aGUgdHJhY2UuCisgKgorICogRmxpcCB0aGUgYnVmZmVycyBiZXR3ZWVuIHRoZSBAdHIgYW5kIHRoZSBtYXhfdHIgYW5kIHJlY29yZCBpbmZvcm1hdGlvbgorICogYWJvdXQgd2hpY2ggdGFzayB3YXMgdGhlIGNhdXNlIG9mIHRoaXMgbGF0ZW5jeS4KKyAqLwordm9pZAordXBkYXRlX21heF90cihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgaW50IGNwdSkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCWludCBpOworCisJV0FSTl9PTl9PTkNFKCFpcnFzX2Rpc2FibGVkKCkpOworCV9fcmF3X3NwaW5fbG9jaygmZnRyYWNlX21heF9sb2NrKTsKKwkvKiBjbGVhciBvdXQgYWxsIHRoZSBwcmV2aW91cyB0cmFjZXMgKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWRhdGEgPSB0ci0+ZGF0YVtpXTsKKwkJZmxpcF90cmFjZShtYXhfdHIuZGF0YVtpXSwgZGF0YSk7CisJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJfQorCisJX191cGRhdGVfbWF4X3RyKHRyLCB0c2ssIGNwdSk7CisJX19yYXdfc3Bpbl91bmxvY2soJmZ0cmFjZV9tYXhfbG9jayk7Cit9CisKKy8qKgorICogdXBkYXRlX21heF90cl9zaW5nbGUgLSBvbmx5IGNvcHkgb25lIHRyYWNlIG92ZXIsIGFuZCByZXNldCB0aGUgcmVzdAorICogQHRyIC0gdHJhY2VyCisgKiBAdHNrIC0gdGFzayB3aXRoIHRoZSBsYXRlbmN5CisgKiBAY3B1IC0gdGhlIGNwdSBvZiB0aGUgYnVmZmVyIHRvIGNvcHkuCisgKgorICogRmxpcCB0aGUgdHJhY2Ugb2YgYSBzaW5nbGUgQ1BVIGJ1ZmZlciBiZXR3ZWVuIHRoZSBAdHIgYW5kIHRoZSBtYXhfdHIuCisgKi8KK3ZvaWQKK3VwZGF0ZV9tYXhfdHJfc2luZ2xlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY3B1KQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWludCBpOworCisJV0FSTl9PTl9PTkNFKCFpcnFzX2Rpc2FibGVkKCkpOworCV9fcmF3X3NwaW5fbG9jaygmZnRyYWNlX21heF9sb2NrKTsKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKQorCQl0cmFjaW5nX3Jlc2V0KG1heF90ci5kYXRhW2ldKTsKKworCWZsaXBfdHJhY2UobWF4X3RyLmRhdGFbY3B1XSwgZGF0YSk7CisJdHJhY2luZ19yZXNldChkYXRhKTsKKworCV9fdXBkYXRlX21heF90cih0ciwgdHNrLCBjcHUpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworfQorCisvKioKKyAqIHJlZ2lzdGVyX3RyYWNlciAtIHJlZ2lzdGVyIGEgdHJhY2VyIHdpdGggdGhlIGZ0cmFjZSBzeXN0ZW0uCisgKiBAdHlwZSAtIHRoZSBwbHVnaW4gZm9yIHRoZSB0cmFjZXIKKyAqCisgKiBSZWdpc3RlciBhIG5ldyBwbHVnaW4gdHJhY2VyLgorICovCitpbnQgcmVnaXN0ZXJfdHJhY2VyKHN0cnVjdCB0cmFjZXIgKnR5cGUpCit7CisJc3RydWN0IHRyYWNlciAqdDsKKwlpbnQgbGVuOworCWludCByZXQgPSAwOworCisJaWYgKCF0eXBlLT5uYW1lKSB7CisJCXByX2luZm8oIlRyYWNlciBtdXN0IGhhdmUgYSBuYW1lXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWZvciAodCA9IHRyYWNlX3R5cGVzOyB0OyB0ID0gdC0+bmV4dCkgeworCQlpZiAoc3RyY21wKHR5cGUtPm5hbWUsIHQtPm5hbWUpID09IDApIHsKKwkJCS8qIGFscmVhZHkgZm91bmQgKi8KKwkJCXByX2luZm8oIlRyYWNlICVzIGFscmVhZHkgcmVnaXN0ZXJlZFxuIiwKKwkJCQl0eXBlLT5uYW1lKTsKKwkJCXJldCA9IC0xOworCQkJZ290byBvdXQ7CisJCX0KKwl9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVAorCWlmICh0eXBlLT5zZWxmdGVzdCkgeworCQlzdHJ1Y3QgdHJhY2VyICpzYXZlZF90cmFjZXIgPSBjdXJyZW50X3RyYWNlOworCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCQlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gJmdsb2JhbF90cmFjZTsKKwkJaW50IHNhdmVkX2N0cmwgPSB0ci0+Y3RybDsKKwkJaW50IGk7CisJCS8qCisJCSAqIFJ1biBhIHNlbGZ0ZXN0IG9uIHRoaXMgdHJhY2VyLgorCQkgKiBIZXJlIHdlIHJlc2V0IHRoZSB0cmFjZSBidWZmZXIsIGFuZCBzZXQgdGhlIGN1cnJlbnQKKwkJICogdHJhY2VyIHRvIGJlIHRoaXMgdHJhY2VyLiBUaGUgdHJhY2VyIGNhbiB0aGVuIHJ1biBzb21lCisJCSAqIGludGVybmFsIHRyYWNpbmcgdG8gdmVyaWZ5IHRoYXQgZXZlcnl0aGluZyBpcyBpbiBvcmRlci4KKwkJICogSWYgd2UgZmFpbCwgd2UgZG8gbm90IHJlZ2lzdGVyIHRoaXMgdHJhY2VyLgorCQkgKi8KKwkJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQkJZGF0YSA9IHRyLT5kYXRhW2ldOworCQkJaWYgKCFoZWFkX3BhZ2UoZGF0YSkpCisJCQkJY29udGludWU7CisJCQl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCQl9CisJCWN1cnJlbnRfdHJhY2UgPSB0eXBlOworCQl0ci0+Y3RybCA9IDA7CisJCS8qIHRoZSB0ZXN0IGlzIHJlc3BvbnNpYmxlIGZvciBpbml0aWFsaXppbmcgYW5kIGVuYWJsaW5nICovCisJCXByX2luZm8oIlRlc3RpbmcgdHJhY2VyICVzOiAiLCB0eXBlLT5uYW1lKTsKKwkJcmV0ID0gdHlwZS0+c2VsZnRlc3QodHlwZSwgdHIpOworCQkvKiB0aGUgdGVzdCBpcyByZXNwb25zaWJsZSBmb3IgcmVzZXR0aW5nIHRvbyAqLworCQljdXJyZW50X3RyYWNlID0gc2F2ZWRfdHJhY2VyOworCQl0ci0+Y3RybCA9IHNhdmVkX2N0cmw7CisJCWlmIChyZXQpIHsKKwkJCXByaW50ayhLRVJOX0NPTlQgIkZBSUxFRCFcbiIpOworCQkJZ290byBvdXQ7CisJCX0KKwkJLyogT25seSByZXNldCBvbiBwYXNzaW5nLCB0byBhdm9pZCB0b3VjaGluZyBjb3JydXB0ZWQgYnVmZmVycyAqLworCQlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCQlkYXRhID0gdHItPmRhdGFbaV07CisJCQlpZiAoIWhlYWRfcGFnZShkYXRhKSkKKwkJCQljb250aW51ZTsKKwkJCXRyYWNpbmdfcmVzZXQoZGF0YSk7CisJCX0KKwkJcHJpbnRrKEtFUk5fQ09OVCAiUEFTU0VEXG4iKTsKKwl9CisjZW5kaWYKKworCXR5cGUtPm5leHQgPSB0cmFjZV90eXBlczsKKwl0cmFjZV90eXBlcyA9IHR5cGU7CisJbGVuID0gc3RybGVuKHR5cGUtPm5hbWUpOworCWlmIChsZW4gPiBtYXhfdHJhY2VyX3R5cGVfbGVuKQorCQltYXhfdHJhY2VyX3R5cGVfbGVuID0gbGVuOworCisgb3V0OgorCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisKKwlyZXR1cm4gcmV0OworfQorCit2b2lkIHVucmVnaXN0ZXJfdHJhY2VyKHN0cnVjdCB0cmFjZXIgKnR5cGUpCit7CisJc3RydWN0IHRyYWNlciAqKnQ7CisJaW50IGxlbjsKKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWZvciAodCA9ICZ0cmFjZV90eXBlczsgKnQ7IHQgPSAmKCp0KS0+bmV4dCkgeworCQlpZiAoKnQgPT0gdHlwZSkKKwkJCWdvdG8gZm91bmQ7CisJfQorCXByX2luZm8oIlRyYWNlICVzIG5vdCByZWdpc3RlcmVkXG4iLCB0eXBlLT5uYW1lKTsKKwlnb3RvIG91dDsKKworIGZvdW5kOgorCSp0ID0gKCp0KS0+bmV4dDsKKwlpZiAoc3RybGVuKHR5cGUtPm5hbWUpICE9IG1heF90cmFjZXJfdHlwZV9sZW4pCisJCWdvdG8gb3V0OworCisJbWF4X3RyYWNlcl90eXBlX2xlbiA9IDA7CisJZm9yICh0ID0gJnRyYWNlX3R5cGVzOyAqdDsgdCA9ICYoKnQpLT5uZXh0KSB7CisJCWxlbiA9IHN0cmxlbigoKnQpLT5uYW1lKTsKKwkJaWYgKGxlbiA+IG1heF90cmFjZXJfdHlwZV9sZW4pCisJCQltYXhfdHJhY2VyX3R5cGVfbGVuID0gbGVuOworCX0KKyBvdXQ6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKK30KKwordm9pZCB0cmFjaW5nX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpCit7CisJZGF0YS0+dHJhY2VfaWR4ID0gMDsKKwlkYXRhLT5vdmVycnVuID0gMDsKKwlkYXRhLT50cmFjZV9oZWFkID0gZGF0YS0+dHJhY2VfdGFpbCA9IGhlYWRfcGFnZShkYXRhKTsKKwlkYXRhLT50cmFjZV9oZWFkX2lkeCA9IDA7CisJZGF0YS0+dHJhY2VfdGFpbF9pZHggPSAwOworfQorCisjZGVmaW5lIFNBVkVEX0NNRExJTkVTIDEyOAorc3RhdGljIHVuc2lnbmVkIG1hcF9waWRfdG9fY21kbGluZVtQSURfTUFYX0RFRkFVTFQrMV07CitzdGF0aWMgdW5zaWduZWQgbWFwX2NtZGxpbmVfdG9fcGlkW1NBVkVEX0NNRExJTkVTXTsKK3N0YXRpYyBjaGFyIHNhdmVkX2NtZGxpbmVzW1NBVkVEX0NNRExJTkVTXVtUQVNLX0NPTU1fTEVOXTsKK3N0YXRpYyBpbnQgY21kbGluZV9pZHg7CitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHRyYWNlX2NtZGxpbmVfbG9jayk7CisKKy8qIHRlbXBvcmFyeSBkaXNhYmxlIHJlY29yZGluZyAqLworYXRvbWljX3QgdHJhY2VfcmVjb3JkX2NtZGxpbmVfZGlzYWJsZWQgX19yZWFkX21vc3RseTsKKworc3RhdGljIHZvaWQgdHJhY2VfaW5pdF9jbWRsaW5lcyh2b2lkKQoreworCW1lbXNldCgmbWFwX3BpZF90b19jbWRsaW5lLCAtMSwgc2l6ZW9mKG1hcF9waWRfdG9fY21kbGluZSkpOworCW1lbXNldCgmbWFwX2NtZGxpbmVfdG9fcGlkLCAtMSwgc2l6ZW9mKG1hcF9jbWRsaW5lX3RvX3BpZCkpOworCWNtZGxpbmVfaWR4ID0gMDsKK30KKwordm9pZCB0cmFjZV9zdG9wX2NtZGxpbmVfcmVjb3JkaW5nKHZvaWQpOworCitzdGF0aWMgdm9pZCB0cmFjZV9zYXZlX2NtZGxpbmUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCit7CisJdW5zaWduZWQgbWFwOworCXVuc2lnbmVkIGlkeDsKKworCWlmICghdHNrLT5waWQgfHwgdW5saWtlbHkodHNrLT5waWQgPiBQSURfTUFYX0RFRkFVTFQpKQorCQlyZXR1cm47CisKKwkvKgorCSAqIEl0J3Mgbm90IHRoZSBlbmQgb2YgdGhlIHdvcmxkIGlmIHdlIGRvbid0IGdldAorCSAqIHRoZSBsb2NrLCBidXQgd2UgYWxzbyBkb24ndCB3YW50IHRvIHNwaW4KKwkgKiBub3IgZG8gd2Ugd2FudCB0byBkaXNhYmxlIGludGVycnVwdHMsCisJICogc28gaWYgd2UgbWlzcyBoZXJlLCB0aGVuIGJldHRlciBsdWNrIG5leHQgdGltZS4KKwkgKi8KKwlpZiAoIXNwaW5fdHJ5bG9jaygmdHJhY2VfY21kbGluZV9sb2NrKSkKKwkJcmV0dXJuOworCisJaWR4ID0gbWFwX3BpZF90b19jbWRsaW5lW3Rzay0+cGlkXTsKKwlpZiAoaWR4ID49IFNBVkVEX0NNRExJTkVTKSB7CisJCWlkeCA9IChjbWRsaW5lX2lkeCArIDEpICUgU0FWRURfQ01ETElORVM7CisKKwkJbWFwID0gbWFwX2NtZGxpbmVfdG9fcGlkW2lkeF07CisJCWlmIChtYXAgPD0gUElEX01BWF9ERUZBVUxUKQorCQkJbWFwX3BpZF90b19jbWRsaW5lW21hcF0gPSAodW5zaWduZWQpLTE7CisKKwkJbWFwX3BpZF90b19jbWRsaW5lW3Rzay0+cGlkXSA9IGlkeDsKKworCQljbWRsaW5lX2lkeCA9IGlkeDsKKwl9CisKKwltZW1jcHkoJnNhdmVkX2NtZGxpbmVzW2lkeF0sIHRzay0+Y29tbSwgVEFTS19DT01NX0xFTik7CisKKwlzcGluX3VubG9jaygmdHJhY2VfY21kbGluZV9sb2NrKTsKK30KKworc3RhdGljIGNoYXIgKnRyYWNlX2ZpbmRfY21kbGluZShpbnQgcGlkKQoreworCWNoYXIgKmNtZGxpbmUgPSAiPC4uLj4iOworCXVuc2lnbmVkIG1hcDsKKworCWlmICghcGlkKQorCQlyZXR1cm4gIjxpZGxlPiI7CisKKwlpZiAocGlkID4gUElEX01BWF9ERUZBVUxUKQorCQlnb3RvIG91dDsKKworCW1hcCA9IG1hcF9waWRfdG9fY21kbGluZVtwaWRdOworCWlmIChtYXAgPj0gU0FWRURfQ01ETElORVMpCisJCWdvdG8gb3V0OworCisJY21kbGluZSA9IHNhdmVkX2NtZGxpbmVzW21hcF07CisKKyBvdXQ6CisJcmV0dXJuIGNtZGxpbmU7Cit9CisKK3ZvaWQgdHJhY2luZ19yZWNvcmRfY21kbGluZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKK3sKKwlpZiAoYXRvbWljX3JlYWQoJnRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkKSkKKwkJcmV0dXJuOworCisJdHJhY2Vfc2F2ZV9jbWRsaW5lKHRzayk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGxpc3RfaGVhZCAqCit0cmFjZV9uZXh0X2xpc3Qoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwgc3RydWN0IGxpc3RfaGVhZCAqbmV4dCkKK3sKKwkvKgorCSAqIFJvdW5kcm9iaW4gLSBidXQgc2tpcCB0aGUgaGVhZCAod2hpY2ggaXMgbm90IGEgcmVhbCBwYWdlKToKKwkgKi8KKwluZXh0ID0gbmV4dC0+bmV4dDsKKwlpZiAodW5saWtlbHkobmV4dCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpKQorCQluZXh0ID0gbmV4dC0+bmV4dDsKKwlCVUdfT04obmV4dCA9PSAmZGF0YS0+dHJhY2VfcGFnZXMpOworCisJcmV0dXJuIG5leHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqCit0cmFjZV9uZXh0X3BhZ2Uoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwgdm9pZCAqYWRkcikKK3sKKwlzdHJ1Y3QgbGlzdF9oZWFkICpuZXh0OworCXN0cnVjdCBwYWdlICpwYWdlOworCisJcGFnZSA9IHZpcnRfdG9fcGFnZShhZGRyKTsKKworCW5leHQgPSB0cmFjZV9uZXh0X2xpc3QoZGF0YSwgJnBhZ2UtPmxydSk7CisJcGFnZSA9IGxpc3RfZW50cnkobmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisKKwlyZXR1cm4gcGFnZV9hZGRyZXNzKHBhZ2UpOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCB0cmFjZV9lbnRyeSAqCit0cmFjaW5nX2dldF90cmFjZV9lbnRyeShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgaWR4LCBpZHhfbmV4dDsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCisJZGF0YS0+dHJhY2VfaWR4Kys7CisJaWR4ID0gZGF0YS0+dHJhY2VfaGVhZF9pZHg7CisJaWR4X25leHQgPSBpZHggKyAxOworCisJQlVHX09OKGlkeCAqIFRSQUNFX0VOVFJZX1NJWkUgPj0gUEFHRV9TSVpFKTsKKworCWVudHJ5ID0gZGF0YS0+dHJhY2VfaGVhZCArIGlkeCAqIFRSQUNFX0VOVFJZX1NJWkU7CisKKwlpZiAodW5saWtlbHkoaWR4X25leHQgPj0gRU5UUklFU19QRVJfUEFHRSkpIHsKKwkJZGF0YS0+dHJhY2VfaGVhZCA9IHRyYWNlX25leHRfcGFnZShkYXRhLCBkYXRhLT50cmFjZV9oZWFkKTsKKwkJaWR4X25leHQgPSAwOworCX0KKworCWlmIChkYXRhLT50cmFjZV9oZWFkID09IGRhdGEtPnRyYWNlX3RhaWwgJiYKKwkgICAgaWR4X25leHQgPT0gZGF0YS0+dHJhY2VfdGFpbF9pZHgpIHsKKwkJLyogb3ZlcnJ1biAqLworCQlkYXRhLT5vdmVycnVuKys7CisJCWRhdGEtPnRyYWNlX3RhaWxfaWR4Kys7CisJCWlmIChkYXRhLT50cmFjZV90YWlsX2lkeCA+PSBFTlRSSUVTX1BFUl9QQUdFKSB7CisJCQlkYXRhLT50cmFjZV90YWlsID0KKwkJCQl0cmFjZV9uZXh0X3BhZ2UoZGF0YSwgZGF0YS0+dHJhY2VfdGFpbCk7CisJCQlkYXRhLT50cmFjZV90YWlsX2lkeCA9IDA7CisJCX0KKwl9CisKKwlkYXRhLT50cmFjZV9oZWFkX2lkeCA9IGlkeF9uZXh0OworCisJcmV0dXJuIGVudHJ5OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3RyYWNpbmdfZ2VuZXJpY19lbnRyeV91cGRhdGUoc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayA9IGN1cnJlbnQ7CisJdW5zaWduZWQgbG9uZyBwYzsKKworCXBjID0gcHJlZW1wdF9jb3VudCgpOworCisJZW50cnktPnByZWVtcHRfY291bnQJPSBwYyAmIDB4ZmY7CisJZW50cnktPnBpZAkJPSAodHNrKSA/IHRzay0+cGlkIDogMDsKKwllbnRyeS0+dAkJPSBmdHJhY2Vfbm93KHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOworCWVudHJ5LT5mbGFncyA9IChpcnFzX2Rpc2FibGVkX2ZsYWdzKGZsYWdzKSA/IFRSQUNFX0ZMQUdfSVJRU19PRkYgOiAwKSB8CisJCSgocGMgJiBIQVJESVJRX01BU0spID8gVFJBQ0VfRkxBR19IQVJESVJRIDogMCkgfAorCQkoKHBjICYgU09GVElSUV9NQVNLKSA/IFRSQUNFX0ZMQUdfU09GVElSUSA6IDApIHwKKwkJKG5lZWRfcmVzY2hlZCgpID8gVFJBQ0VfRkxBR19ORUVEX1JFU0NIRUQgOiAwKTsKK30KKwordm9pZAordHJhY2VfZnVuY3Rpb24oc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkgICAgICAgdW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwl1bnNpZ25lZCBsb25nIGlycV9mbGFnczsKKworCXJhd19sb2NhbF9pcnFfc2F2ZShpcnFfZmxhZ3MpOworCV9fcmF3X3NwaW5fbG9jaygmZGF0YS0+bG9jayk7CisJZW50cnkJCQk9IHRyYWNpbmdfZ2V0X3RyYWNlX2VudHJ5KHRyLCBkYXRhKTsKKwl0cmFjaW5nX2dlbmVyaWNfZW50cnlfdXBkYXRlKGVudHJ5LCBmbGFncyk7CisJZW50cnktPnR5cGUJCT0gVFJBQ0VfRk47CisJZW50cnktPmZuLmlwCQk9IGlwOworCWVudHJ5LT5mbi5wYXJlbnRfaXAJPSBwYXJlbnRfaXA7CisJX19yYXdfc3Bpbl91bmxvY2soJmRhdGEtPmxvY2spOworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShpcnFfZmxhZ3MpOworfQorCit2b2lkCitmdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKyAgICAgICB1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHBhcmVudF9pcCwgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlpZiAobGlrZWx5KCFhdG9taWNfcmVhZCgmZGF0YS0+ZGlzYWJsZWQpKSkKKwkJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKK30KKworI2lmZGVmIENPTkZJR19NTUlPVFJBQ0UKK3ZvaWQgX190cmFjZV9tbWlvdHJhY2Vfcncoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQkJCXN0cnVjdCBtbWlvdHJhY2VfcncgKnJ3KQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCisJZW50cnkJCQk9IHRyYWNpbmdfZ2V0X3RyYWNlX2VudHJ5KHRyLCBkYXRhKTsKKwl0cmFjaW5nX2dlbmVyaWNfZW50cnlfdXBkYXRlKGVudHJ5LCAwKTsKKwllbnRyeS0+dHlwZQkJPSBUUkFDRV9NTUlPX1JXOworCWVudHJ5LT5tbWlvcncJCT0gKnJ3OworCisJX19yYXdfc3Bpbl91bmxvY2soJmRhdGEtPmxvY2spOworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShpcnFfZmxhZ3MpOworCisJdHJhY2Vfd2FrZV91cCgpOworfQorCit2b2lkIF9fdHJhY2VfbW1pb3RyYWNlX21hcChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJCQkJc3RydWN0IG1taW90cmFjZV9tYXAgKm1hcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOworCisJcmF3X2xvY2FsX2lycV9zYXZlKGlycV9mbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZkYXRhLT5sb2NrKTsKKworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgMCk7CisJZW50cnktPnR5cGUJCT0gVFJBQ0VfTU1JT19NQVA7CisJZW50cnktPm1taW9tYXAJCT0gKm1hcDsKKworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKKworCXRyYWNlX3dha2VfdXAoKTsKK30KKyNlbmRpZgorCit2b2lkIF9fdHJhY2Vfc3RhY2soc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJICAgdW5zaWduZWQgbG9uZyBmbGFncywKKwkJICAgaW50IHNraXApCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwlzdHJ1Y3Qgc3RhY2tfdHJhY2UgdHJhY2U7CisKKwlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfU1RBQ0tUUkFDRSkpCisJCXJldHVybjsKKworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgZmxhZ3MpOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX1NUQUNLOworCisJbWVtc2V0KCZlbnRyeS0+c3RhY2ssIDAsIHNpemVvZihlbnRyeS0+c3RhY2spKTsKKworCXRyYWNlLm5yX2VudHJpZXMJPSAwOworCXRyYWNlLm1heF9lbnRyaWVzCT0gRlRSQUNFX1NUQUNLX0VOVFJJRVM7CisJdHJhY2Uuc2tpcAkJPSBza2lwOworCXRyYWNlLmVudHJpZXMJCT0gZW50cnktPnN0YWNrLmNhbGxlcjsKKworCXNhdmVfc3RhY2tfdHJhY2UoJnRyYWNlKTsKK30KKwordm9pZAorX190cmFjZV9zcGVjaWFsKHZvaWQgKl9fdHIsIHZvaWQgKl9fZGF0YSwKKwkJdW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gX19kYXRhOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBfX3RyOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgMCk7CisJZW50cnktPnR5cGUJCT0gVFJBQ0VfU1BFQ0lBTDsKKwllbnRyeS0+c3BlY2lhbC5hcmcxCT0gYXJnMTsKKwllbnRyeS0+c3BlY2lhbC5hcmcyCT0gYXJnMjsKKwllbnRyeS0+c3BlY2lhbC5hcmczCT0gYXJnMzsKKwlfX3RyYWNlX3N0YWNrKHRyLCBkYXRhLCBpcnFfZmxhZ3MsIDQpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKKworCXRyYWNlX3dha2VfdXAoKTsKK30KKwordm9pZAordHJhY2luZ19zY2hlZF9zd2l0Y2hfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYsCisJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHQsCisJCQkgICB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgZmxhZ3MpOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX0NUWDsKKwllbnRyeS0+Y3R4LnByZXZfcGlkCT0gcHJldi0+cGlkOworCWVudHJ5LT5jdHgucHJldl9wcmlvCT0gcHJldi0+cHJpbzsKKwllbnRyeS0+Y3R4LnByZXZfc3RhdGUJPSBwcmV2LT5zdGF0ZTsKKwllbnRyeS0+Y3R4Lm5leHRfcGlkCT0gbmV4dC0+cGlkOworCWVudHJ5LT5jdHgubmV4dF9wcmlvCT0gbmV4dC0+cHJpbzsKKwllbnRyeS0+Y3R4Lm5leHRfc3RhdGUJPSBuZXh0LT5zdGF0ZTsKKwlfX3RyYWNlX3N0YWNrKHRyLCBkYXRhLCBmbGFncywgNSk7CisJX19yYXdfc3Bpbl91bmxvY2soJmRhdGEtPmxvY2spOworCXJhd19sb2NhbF9pcnFfcmVzdG9yZShpcnFfZmxhZ3MpOworfQorCit2b2lkCit0cmFjaW5nX3NjaGVkX3dha2V1cF90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJICAgc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCSAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqd2FrZWUsCisJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIsCisJCQkgICB1bnNpZ25lZCBsb25nIGZsYWdzKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnk7CisJdW5zaWduZWQgbG9uZyBpcnFfZmxhZ3M7CisKKwlyYXdfbG9jYWxfaXJxX3NhdmUoaXJxX2ZsYWdzKTsKKwlfX3Jhd19zcGluX2xvY2soJmRhdGEtPmxvY2spOworCWVudHJ5CQkJPSB0cmFjaW5nX2dldF90cmFjZV9lbnRyeSh0ciwgZGF0YSk7CisJdHJhY2luZ19nZW5lcmljX2VudHJ5X3VwZGF0ZShlbnRyeSwgZmxhZ3MpOworCWVudHJ5LT50eXBlCQk9IFRSQUNFX1dBS0U7CisJZW50cnktPmN0eC5wcmV2X3BpZAk9IGN1cnItPnBpZDsKKwllbnRyeS0+Y3R4LnByZXZfcHJpbwk9IGN1cnItPnByaW87CisJZW50cnktPmN0eC5wcmV2X3N0YXRlCT0gY3Vyci0+c3RhdGU7CisJZW50cnktPmN0eC5uZXh0X3BpZAk9IHdha2VlLT5waWQ7CisJZW50cnktPmN0eC5uZXh0X3ByaW8JPSB3YWtlZS0+cHJpbzsKKwllbnRyeS0+Y3R4Lm5leHRfc3RhdGUJPSB3YWtlZS0+c3RhdGU7CisJX190cmFjZV9zdGFjayh0ciwgZGF0YSwgZmxhZ3MsIDYpOworCV9fcmF3X3NwaW5fdW5sb2NrKCZkYXRhLT5sb2NrKTsKKwlyYXdfbG9jYWxfaXJxX3Jlc3RvcmUoaXJxX2ZsYWdzKTsKKworCXRyYWNlX3dha2VfdXAoKTsKK30KKwordm9pZAorZnRyYWNlX3NwZWNpYWwodW5zaWduZWQgbG9uZyBhcmcxLCB1bnNpZ25lZCBsb25nIGFyZzIsIHVuc2lnbmVkIGxvbmcgYXJnMykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gJmdsb2JhbF90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKHRyYWNpbmdfZGlzYWJsZWQgfHwgY3VycmVudF90cmFjZSA9PSAmbm9fdHJhY2VyIHx8ICF0ci0+Y3RybCkKKwkJcmV0dXJuOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCisJaWYgKGxpa2VseShkaXNhYmxlZCA9PSAxKSkKKwkJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCBhcmcxLCBhcmcyLCBhcmczKTsKKworCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCitzdGF0aWMgdm9pZAorZnVuY3Rpb25fdHJhY2VfY2FsbCh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHBhcmVudF9pcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gJmdsb2JhbF90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJaWYgKHVubGlrZWx5KCFmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCkpCisJCXJldHVybjsKKworCWlmIChza2lwX3RyYWNlKGlwKSkKKwkJcmV0dXJuOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCisJaWYgKGxpa2VseShkaXNhYmxlZCA9PSAxKSkKKwkJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKKwlsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZnRyYWNlX29wcyB0cmFjZV9vcHMgX19yZWFkX21vc3RseSA9Cit7CisJLmZ1bmMgPSBmdW5jdGlvbl90cmFjZV9jYWxsLAorfTsKKwordm9pZCB0cmFjaW5nX3N0YXJ0X2Z1bmN0aW9uX3RyYWNlKHZvaWQpCit7CisJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQgPSAwOworCXJlZ2lzdGVyX2Z0cmFjZV9mdW5jdGlvbigmdHJhY2Vfb3BzKTsKKwlpZiAodHJhY2VyX2VuYWJsZWQpCisJCWZ0cmFjZV9mdW5jdGlvbl9lbmFibGVkID0gMTsKK30KKwordm9pZCB0cmFjaW5nX3N0b3BfZnVuY3Rpb25fdHJhY2Uodm9pZCkKK3sKKwlmdHJhY2VfZnVuY3Rpb25fZW5hYmxlZCA9IDA7CisJdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7Cit9CisjZW5kaWYKKworZW51bSB0cmFjZV9maWxlX3R5cGUgeworCVRSQUNFX0ZJTEVfTEFUX0ZNVAk9IDEsCit9OworCitzdGF0aWMgc3RydWN0IHRyYWNlX2VudHJ5ICoKK3RyYWNlX2VudHJ5X2lkeChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIsIGludCBjcHUpCit7CisJc3RydWN0IHBhZ2UgKnBhZ2U7CisJc3RydWN0IHRyYWNlX2VudHJ5ICphcnJheTsKKworCWlmIChpdGVyLT5uZXh0X2lkeFtjcHVdID49IHRyLT5lbnRyaWVzIHx8CisJICAgIGl0ZXItPm5leHRfaWR4W2NwdV0gPj0gZGF0YS0+dHJhY2VfaWR4IHx8CisJICAgIChkYXRhLT50cmFjZV9oZWFkID09IGRhdGEtPnRyYWNlX3RhaWwgJiYKKwkgICAgIGRhdGEtPnRyYWNlX2hlYWRfaWR4ID09IGRhdGEtPnRyYWNlX3RhaWxfaWR4KSkKKwkJcmV0dXJuIE5VTEw7CisKKwlpZiAoIWl0ZXItPm5leHRfcGFnZVtjcHVdKSB7CisJCS8qIEluaXRpYWxpemUgdGhlIGl0ZXJhdG9yIGZvciB0aGlzIGNwdSB0cmFjZSBidWZmZXIgKi8KKwkJV0FSTl9PTighZGF0YS0+dHJhY2VfdGFpbCk7CisJCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoZGF0YS0+dHJhY2VfdGFpbCk7CisJCWl0ZXItPm5leHRfcGFnZVtjcHVdID0gJnBhZ2UtPmxydTsKKwkJaXRlci0+bmV4dF9wYWdlX2lkeFtjcHVdID0gZGF0YS0+dHJhY2VfdGFpbF9pZHg7CisJfQorCisJcGFnZSA9IGxpc3RfZW50cnkoaXRlci0+bmV4dF9wYWdlW2NwdV0sIHN0cnVjdCBwYWdlLCBscnUpOworCUJVR19PTigmZGF0YS0+dHJhY2VfcGFnZXMgPT0gJnBhZ2UtPmxydSk7CisKKwlhcnJheSA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKKworCVdBUk5fT04oaXRlci0+bmV4dF9wYWdlX2lkeFtjcHVdID49IEVOVFJJRVNfUEVSX1BBR0UpOworCXJldHVybiAmYXJyYXlbaXRlci0+bmV4dF9wYWdlX2lkeFtjcHVdXTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZV9lbnRyeSAqCitmaW5kX25leHRfZW50cnkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCBpbnQgKmVudF9jcHUpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGl0ZXItPnRyOworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50LCAqbmV4dCA9IE5VTEw7CisJaW50IG5leHRfY3B1ID0gLTE7CisJaW50IGNwdTsKKworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGNwdSkgeworCQlpZiAoIWhlYWRfcGFnZSh0ci0+ZGF0YVtjcHVdKSkKKwkJCWNvbnRpbnVlOworCQllbnQgPSB0cmFjZV9lbnRyeV9pZHgodHIsIHRyLT5kYXRhW2NwdV0sIGl0ZXIsIGNwdSk7CisJCS8qCisJCSAqIFBpY2sgdGhlIGVudHJ5IHdpdGggdGhlIHNtYWxsZXN0IHRpbWVzdGFtcDoKKwkJICovCisJCWlmIChlbnQgJiYgKCFuZXh0IHx8IGVudC0+dCA8IG5leHQtPnQpKSB7CisJCQluZXh0ID0gZW50OworCQkJbmV4dF9jcHUgPSBjcHU7CisJCX0KKwl9CisKKwlpZiAoZW50X2NwdSkKKwkJKmVudF9jcHUgPSBuZXh0X2NwdTsKKworCXJldHVybiBuZXh0OworfQorCitzdGF0aWMgdm9pZCB0cmFjZV9pdGVyYXRvcl9pbmNyZW1lbnQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCWl0ZXItPmlkeCsrOworCWl0ZXItPm5leHRfaWR4W2l0ZXItPmNwdV0rKzsKKwlpdGVyLT5uZXh0X3BhZ2VfaWR4W2l0ZXItPmNwdV0rKzsKKworCWlmIChpdGVyLT5uZXh0X3BhZ2VfaWR4W2l0ZXItPmNwdV0gPj0gRU5UUklFU19QRVJfUEFHRSkgeworCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gaXRlci0+dHItPmRhdGFbaXRlci0+Y3B1XTsKKworCQlpdGVyLT5uZXh0X3BhZ2VfaWR4W2l0ZXItPmNwdV0gPSAwOworCQlpdGVyLT5uZXh0X3BhZ2VbaXRlci0+Y3B1XSA9CisJCQl0cmFjZV9uZXh0X2xpc3QoZGF0YSwgaXRlci0+bmV4dF9wYWdlW2l0ZXItPmNwdV0pOworCX0KK30KKworc3RhdGljIHZvaWQgdHJhY2VfY29uc3VtZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IGl0ZXItPnRyLT5kYXRhW2l0ZXItPmNwdV07CisKKwlkYXRhLT50cmFjZV90YWlsX2lkeCsrOworCWlmIChkYXRhLT50cmFjZV90YWlsX2lkeCA+PSBFTlRSSUVTX1BFUl9QQUdFKSB7CisJCWRhdGEtPnRyYWNlX3RhaWwgPSB0cmFjZV9uZXh0X3BhZ2UoZGF0YSwgZGF0YS0+dHJhY2VfdGFpbCk7CisJCWRhdGEtPnRyYWNlX3RhaWxfaWR4ID0gMDsKKwl9CisKKwkvKiBDaGVjayBpZiB3ZSBlbXB0eSBpdCwgdGhlbiByZXNldCB0aGUgaW5kZXggKi8KKwlpZiAoZGF0YS0+dHJhY2VfaGVhZCA9PSBkYXRhLT50cmFjZV90YWlsICYmCisJICAgIGRhdGEtPnRyYWNlX2hlYWRfaWR4ID09IGRhdGEtPnRyYWNlX3RhaWxfaWR4KQorCQlkYXRhLT50cmFjZV9pZHggPSAwOworfQorCitzdGF0aWMgdm9pZCAqZmluZF9uZXh0X2VudHJ5X2luYyhzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICpuZXh0OworCWludCBuZXh0X2NwdSA9IC0xOworCisJbmV4dCA9IGZpbmRfbmV4dF9lbnRyeShpdGVyLCAmbmV4dF9jcHUpOworCisJaXRlci0+cHJldl9lbnQgPSBpdGVyLT5lbnQ7CisJaXRlci0+cHJldl9jcHUgPSBpdGVyLT5jcHU7CisKKwlpdGVyLT5lbnQgPSBuZXh0OworCWl0ZXItPmNwdSA9IG5leHRfY3B1OworCisJaWYgKG5leHQpCisJCXRyYWNlX2l0ZXJhdG9yX2luY3JlbWVudChpdGVyKTsKKworCXJldHVybiBuZXh0ID8gaXRlciA6IE5VTEw7Cit9CisKK3N0YXRpYyB2b2lkICpzX25leHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCXZvaWQgKmxhc3RfZW50ID0gaXRlci0+ZW50OworCWludCBpID0gKGludCkqcG9zOworCXZvaWQgKmVudDsKKworCSgqcG9zKSsrOworCisJLyogY2FuJ3QgZ28gYmFja3dhcmRzICovCisJaWYgKGl0ZXItPmlkeCA+IGkpCisJCXJldHVybiBOVUxMOworCisJaWYgKGl0ZXItPmlkeCA8IDApCisJCWVudCA9IGZpbmRfbmV4dF9lbnRyeV9pbmMoaXRlcik7CisJZWxzZQorCQllbnQgPSBpdGVyOworCisJd2hpbGUgKGVudCAmJiBpdGVyLT5pZHggPCBpKQorCQllbnQgPSBmaW5kX25leHRfZW50cnlfaW5jKGl0ZXIpOworCisJaXRlci0+cG9zID0gKnBvczsKKworCWlmIChsYXN0X2VudCAmJiAhZW50KQorCQlzZXFfcHV0cyhtLCAiXG5cbnZpbTpmdD1oZWxwXG4iKTsKKworCXJldHVybiBlbnQ7Cit9CisKK3N0YXRpYyB2b2lkICpzX3N0YXJ0KHN0cnVjdCBzZXFfZmlsZSAqbSwgbG9mZl90ICpwb3MpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gbS0+cHJpdmF0ZTsKKwl2b2lkICpwID0gTlVMTDsKKwlsb2ZmX3QgbCA9IDA7CisJaW50IGk7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWlmICghY3VycmVudF90cmFjZSB8fCBjdXJyZW50X3RyYWNlICE9IGl0ZXItPnRyYWNlKSB7CisJCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJCXJldHVybiBOVUxMOworCX0KKworCWF0b21pY19pbmMoJnRyYWNlX3JlY29yZF9jbWRsaW5lX2Rpc2FibGVkKTsKKworCS8qIGxldCB0aGUgdHJhY2VyIGdyYWIgbG9ja3MgaGVyZSBpZiBuZWVkZWQgKi8KKwlpZiAoY3VycmVudF90cmFjZS0+c3RhcnQpCisJCWN1cnJlbnRfdHJhY2UtPnN0YXJ0KGl0ZXIpOworCisJaWYgKCpwb3MgIT0gaXRlci0+cG9zKSB7CisJCWl0ZXItPmVudCA9IE5VTEw7CisJCWl0ZXItPmNwdSA9IDA7CisJCWl0ZXItPmlkeCA9IC0xOworCQlpdGVyLT5wcmV2X2VudCA9IE5VTEw7CisJCWl0ZXItPnByZXZfY3B1ID0gLTE7CisKKwkJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkgeworCQkJaXRlci0+bmV4dF9pZHhbaV0gPSAwOworCQkJaXRlci0+bmV4dF9wYWdlW2ldID0gTlVMTDsKKwkJfQorCisJCWZvciAocCA9IGl0ZXI7IHAgJiYgbCA8ICpwb3M7IHAgPSBzX25leHQobSwgcCwgJmwpKQorCQkJOworCisJfSBlbHNlIHsKKwkJbCA9ICpwb3MgLSAxOworCQlwID0gc19uZXh0KG0sIHAsICZsKTsKKwl9CisKKwlyZXR1cm4gcDsKK30KKworc3RhdGljIHZvaWQgc19zdG9wKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIgPSBtLT5wcml2YXRlOworCisJYXRvbWljX2RlYygmdHJhY2VfcmVjb3JkX2NtZGxpbmVfZGlzYWJsZWQpOworCisJLyogbGV0IHRoZSB0cmFjZXIgcmVsZWFzZSBsb2NrcyBoZXJlIGlmIG5lZWRlZCAqLworCWlmIChjdXJyZW50X3RyYWNlICYmIGN1cnJlbnRfdHJhY2UgPT0gaXRlci0+dHJhY2UgJiYgaXRlci0+dHJhY2UtPnN0b3ApCisJCWl0ZXItPnRyYWNlLT5zdG9wKGl0ZXIpOworCisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKK30KKworI2RlZmluZSBLUkVUUFJPQkVfTVNHICJbdW5rbm93bi9rcmV0cHJvYmUnZF0iCisKKyNpZmRlZiBDT05GSUdfS1JFVFBST0JFUworc3RhdGljIGlubGluZSBpbnQga3JldHByb2JlZCh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuIGFkZHIgPT0gKHVuc2lnbmVkIGxvbmcpa3JldHByb2JlX3RyYW1wb2xpbmU7Cit9CisjZWxzZQorc3RhdGljIGlubGluZSBpbnQga3JldHByb2JlZCh1bnNpZ25lZCBsb25nIGFkZHIpCit7CisJcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogQ09ORklHX0tSRVRQUk9CRVMgKi8KKworc3RhdGljIGludAorc2VxX3ByaW50X3N5bV9zaG9ydChzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjb25zdCBjaGFyICpmbXQsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKK3sKKyNpZmRlZiBDT05GSUdfS0FMTFNZTVMKKwljaGFyIHN0cltLU1lNX1NZTUJPTF9MRU5dOworCisJa2FsbHN5bXNfbG9va3VwKGFkZHJlc3MsIE5VTEwsIE5VTEwsIE5VTEwsIHN0cik7CisKKwlyZXR1cm4gdHJhY2Vfc2VxX3ByaW50ZihzLCBmbXQsIHN0cik7CisjZW5kaWYKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludAorc2VxX3ByaW50X3N5bV9vZmZzZXQoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3QgY2hhciAqZm10LAorCQkgICAgIHVuc2lnbmVkIGxvbmcgYWRkcmVzcykKK3sKKyNpZmRlZiBDT05GSUdfS0FMTFNZTVMKKwljaGFyIHN0cltLU1lNX1NZTUJPTF9MRU5dOworCisJc3ByaW50X3N5bWJvbChzdHIsIGFkZHJlc3MpOworCXJldHVybiB0cmFjZV9zZXFfcHJpbnRmKHMsIGZtdCwgc3RyKTsKKyNlbmRpZgorCXJldHVybiAxOworfQorCisjaWZuZGVmIENPTkZJR182NEJJVAorIyBkZWZpbmUgSVBfRk1UICIlMDhseCIKKyNlbHNlCisjIGRlZmluZSBJUF9GTVQgIiUwMTZseCIKKyNlbmRpZgorCitzdGF0aWMgaW50CitzZXFfcHJpbnRfaXBfc3ltKHN0cnVjdCB0cmFjZV9zZXEgKnMsIHVuc2lnbmVkIGxvbmcgaXAsIHVuc2lnbmVkIGxvbmcgc3ltX2ZsYWdzKQoreworCWludCByZXQ7CisKKwlpZiAoIWlwKQorCQlyZXR1cm4gdHJhY2Vfc2VxX3ByaW50ZihzLCAiMCIpOworCisJaWYgKHN5bV9mbGFncyAmIFRSQUNFX0lURVJfU1lNX09GRlNFVCkKKwkJcmV0ID0gc2VxX3ByaW50X3N5bV9vZmZzZXQocywgIiVzIiwgaXApOworCWVsc2UKKwkJcmV0ID0gc2VxX3ByaW50X3N5bV9zaG9ydChzLCAiJXMiLCBpcCk7CisKKwlpZiAoIXJldCkKKwkJcmV0dXJuIDA7CisKKwlpZiAoc3ltX2ZsYWdzICYgVFJBQ0VfSVRFUl9TWU1fQUREUikKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiIDwiIElQX0ZNVCAiPiIsIGlwKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBwcmludF9sYXRfaGVscF9oZWFkZXIoc3RydWN0IHNlcV9maWxlICptKQoreworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICAgIF8tLS0tLS09PiBDUFUjICAgICAgICAgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgIC8gXy0tLS0tPT4gaXJxcy1vZmYgICAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgIHwgLyBfLS0tLT0+IG5lZWQtcmVzY2hlZCAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8fCAvIF8tLS09PiBoYXJkaXJxL3NvZnRpcnEgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgICAgICAgICAgICAgfHx8IC8gXy0tPT4gcHJlZW1wdC1kZXB0aCAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgIHx8fHwgLyAgICAgICAgICAgICAgICAgICAgICBcbiIpOworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICAgICB8fHx8fCAgICAgZGVsYXkgICAgICAgICAgICAgXG4iKTsKKwlzZXFfcHV0cyhtLCAiIyAgY21kICAgICBwaWQgfHx8fHwgdGltZSAgfCAgIGNhbGxlciAgICAgIFxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgIFxcICAgLyAgICB8fHx8fCAgIFxcICAgfCAgIC8gICAgICAgICAgIFxuIik7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50X2Z1bmNfaGVscF9oZWFkZXIoc3RydWN0IHNlcV9maWxlICptKQoreworCXNlcV9wdXRzKG0sICIjICAgICAgICAgICBUQVNLLVBJRCAgIENQVSMgICAgVElNRVNUQU1QICBGVU5DVElPTlxuIik7CisJc2VxX3B1dHMobSwgIiMgICAgICAgICAgICAgIHwgfCAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHxcbiIpOworfQorCisKK3N0YXRpYyB2b2lkCitwcmludF90cmFjZV9oZWFkZXIoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJdW5zaWduZWQgbG9uZyBzeW1fZmxhZ3MgPSAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1NZTV9NQVNLKTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gaXRlci0+dHI7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IHRyLT5kYXRhW3RyLT5jcHVdOworCXN0cnVjdCB0cmFjZXIgKnR5cGUgPSBjdXJyZW50X3RyYWNlOworCXVuc2lnbmVkIGxvbmcgdG90YWwgICA9IDA7CisJdW5zaWduZWQgbG9uZyBlbnRyaWVzID0gMDsKKwlpbnQgY3B1OworCWNvbnN0IGNoYXIgKm5hbWUgPSAicHJlZW1wdGlvbiI7CisKKwlpZiAodHlwZSkKKwkJbmFtZSA9IHR5cGUtPm5hbWU7CisKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpIHsKKwkJaWYgKGhlYWRfcGFnZSh0ci0+ZGF0YVtjcHVdKSkgeworCQkJdG90YWwgKz0gdHItPmRhdGFbY3B1XS0+dHJhY2VfaWR4OworCQkJaWYgKHRyLT5kYXRhW2NwdV0tPnRyYWNlX2lkeCA+IHRyLT5lbnRyaWVzKQorCQkJCWVudHJpZXMgKz0gdHItPmVudHJpZXM7CisJCQllbHNlCisJCQkJZW50cmllcyArPSB0ci0+ZGF0YVtjcHVdLT50cmFjZV9pZHg7CisJCX0KKwl9CisKKwlzZXFfcHJpbnRmKG0sICIlcyBsYXRlbmN5IHRyYWNlIHYxLjEuNSBvbiAlc1xuIiwKKwkJICAgbmFtZSwgVVRTX1JFTEVBU0UpOworCXNlcV9wdXRzKG0sICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKKwkJICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCXNlcV9wcmludGYobSwgIiBsYXRlbmN5OiAlbHUgdXMsICMlbHUvJWx1LCBDUFUjJWQgfCIKKwkJICAgIiAoTTolcyBWUDolZCwgS1A6JWQsIFNQOiVkIEhQOiVkIiwKKwkJICAgbnNlY3NfdG9fdXNlY3MoZGF0YS0+c2F2ZWRfbGF0ZW5jeSksCisJCSAgIGVudHJpZXMsCisJCSAgIHRvdGFsLAorCQkgICB0ci0+Y3B1LAorI2lmIGRlZmluZWQoQ09ORklHX1BSRUVNUFRfTk9ORSkKKwkJICAgInNlcnZlciIsCisjZWxpZiBkZWZpbmVkKENPTkZJR19QUkVFTVBUX1ZPTFVOVEFSWSkKKwkJICAgImRlc2t0b3AiLAorI2VsaWYgZGVmaW5lZChDT05GSUdfUFJFRU1QVCkKKwkJICAgInByZWVtcHQiLAorI2Vsc2UKKwkJICAgInVua25vd24iLAorI2VuZGlmCisJCSAgIC8qIFRoZXNlIGFyZSByZXNlcnZlZCBmb3IgbGF0ZXIgdXNlICovCisJCSAgIDAsIDAsIDAsIDApOworI2lmZGVmIENPTkZJR19TTVAKKwlzZXFfcHJpbnRmKG0sICIgI1A6JWQpXG4iLCBudW1fb25saW5lX2NwdXMoKSk7CisjZWxzZQorCXNlcV9wdXRzKG0sICIpXG4iKTsKKyNlbmRpZgorCXNlcV9wdXRzKG0sICIgICAgLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworCXNlcV9wcmludGYobSwgIiAgICB8IHRhc2s6ICUuMTZzLSVkICIKKwkJICAgIih1aWQ6JWQgbmljZTolbGQgcG9saWN5OiVsZCBydF9wcmlvOiVsZClcbiIsCisJCSAgIGRhdGEtPmNvbW0sIGRhdGEtPnBpZCwgZGF0YS0+dWlkLCBkYXRhLT5uaWNlLAorCQkgICBkYXRhLT5wb2xpY3ksIGRhdGEtPnJ0X3ByaW9yaXR5KTsKKwlzZXFfcHV0cyhtLCAiICAgIC0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKworCWlmIChkYXRhLT5jcml0aWNhbF9zdGFydCkgeworCQlzZXFfcHV0cyhtLCAiID0+IHN0YXJ0ZWQgYXQ6ICIpOworCQlzZXFfcHJpbnRfaXBfc3ltKCZpdGVyLT5zZXEsIGRhdGEtPmNyaXRpY2FsX3N0YXJ0LCBzeW1fZmxhZ3MpOworCQl0cmFjZV9wcmludF9zZXEobSwgJml0ZXItPnNlcSk7CisJCXNlcV9wdXRzKG0sICJcbiA9PiBlbmRlZCBhdDogICAiKTsKKwkJc2VxX3ByaW50X2lwX3N5bSgmaXRlci0+c2VxLCBkYXRhLT5jcml0aWNhbF9lbmQsIHN5bV9mbGFncyk7CisJCXRyYWNlX3ByaW50X3NlcShtLCAmaXRlci0+c2VxKTsKKwkJc2VxX3B1dHMobSwgIlxuIik7CisJfQorCisJc2VxX3B1dHMobSwgIlxuIik7Cit9CisKK3N0YXRpYyB2b2lkCitsYXRfcHJpbnRfZ2VuZXJpYyhzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5LCBpbnQgY3B1KQoreworCWludCBoYXJkaXJxLCBzb2Z0aXJxOworCWNoYXIgKmNvbW07CisKKwljb21tID0gdHJhY2VfZmluZF9jbWRsaW5lKGVudHJ5LT5waWQpOworCisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJTguOHMtJS01ZCAiLCBjb21tLCBlbnRyeS0+cGlkKTsKKwl0cmFjZV9zZXFfcHJpbnRmKHMsICIlZCIsIGNwdSk7CisJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJWMlYyIsCisJCQkoZW50cnktPmZsYWdzICYgVFJBQ0VfRkxBR19JUlFTX09GRikgPyAnZCcgOiAnLicsCisJCQkoKGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfTkVFRF9SRVNDSEVEKSA/ICdOJyA6ICcuJykpOworCisJaGFyZGlycSA9IGVudHJ5LT5mbGFncyAmIFRSQUNFX0ZMQUdfSEFSRElSUTsKKwlzb2Z0aXJxID0gZW50cnktPmZsYWdzICYgVFJBQ0VfRkxBR19TT0ZUSVJROworCWlmIChoYXJkaXJxICYmIHNvZnRpcnEpIHsKKwkJdHJhY2Vfc2VxX3B1dGMocywgJ0gnKTsKKwl9IGVsc2UgeworCQlpZiAoaGFyZGlycSkgeworCQkJdHJhY2Vfc2VxX3B1dGMocywgJ2gnKTsKKwkJfSBlbHNlIHsKKwkJCWlmIChzb2Z0aXJxKQorCQkJCXRyYWNlX3NlcV9wdXRjKHMsICdzJyk7CisJCQllbHNlCisJCQkJdHJhY2Vfc2VxX3B1dGMocywgJy4nKTsKKwkJfQorCX0KKworCWlmIChlbnRyeS0+cHJlZW1wdF9jb3VudCkKKwkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiJXgiLCBlbnRyeS0+cHJlZW1wdF9jb3VudCk7CisJZWxzZQorCQl0cmFjZV9zZXFfcHV0cyhzLCAiLiIpOworfQorCit1bnNpZ25lZCBsb25nIHByZWVtcHRfbWFya190aHJlc2ggPSAxMDA7CisKK3N0YXRpYyB2b2lkCitsYXRfcHJpbnRfdGltZXN0YW1wKHN0cnVjdCB0cmFjZV9zZXEgKnMsIHVuc2lnbmVkIGxvbmcgbG9uZyBhYnNfdXNlY3MsCisJCSAgICB1bnNpZ25lZCBsb25nIHJlbF91c2VjcykKK3sKKwl0cmFjZV9zZXFfcHJpbnRmKHMsICIgJTRsbGR1cyIsIGFic191c2Vjcyk7CisJaWYgKHJlbF91c2VjcyA+IHByZWVtcHRfbWFya190aHJlc2gpCisJCXRyYWNlX3NlcV9wdXRzKHMsICIhOiAiKTsKKwllbHNlIGlmIChyZWxfdXNlY3MgPiAxKQorCQl0cmFjZV9zZXFfcHV0cyhzLCAiKzogIik7CisJZWxzZQorCQl0cmFjZV9zZXFfcHV0cyhzLCAiIDogIik7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyIHN0YXRlX3RvX2NoYXJbXSA9IFRBU0tfU1RBVEVfVE9fQ0hBUl9TVFI7CisKK3N0YXRpYyBpbnQKK3ByaW50X2xhdF9mbXQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyLCB1bnNpZ25lZCBpbnQgdHJhY2VfaWR4LCBpbnQgY3B1KQoreworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGxvbmcgc3ltX2ZsYWdzID0gKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9TWU1fTUFTSyk7CisJc3RydWN0IHRyYWNlX2VudHJ5ICpuZXh0X2VudHJ5ID0gZmluZF9uZXh0X2VudHJ5KGl0ZXIsIE5VTEwpOworCXVuc2lnbmVkIGxvbmcgdmVyYm9zZSA9ICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfVkVSQk9TRSk7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSA9IGl0ZXItPmVudDsKKwl1bnNpZ25lZCBsb25nIGFic191c2VjczsKKwl1bnNpZ25lZCBsb25nIHJlbF91c2VjczsKKwljaGFyICpjb21tOworCWludCBTLCBUOworCWludCBpOworCXVuc2lnbmVkIHN0YXRlOworCisJaWYgKCFuZXh0X2VudHJ5KQorCQluZXh0X2VudHJ5ID0gZW50cnk7CisJcmVsX3VzZWNzID0gbnMydXNlY3MobmV4dF9lbnRyeS0+dCAtIGVudHJ5LT50KTsKKwlhYnNfdXNlY3MgPSBuczJ1c2VjcyhlbnRyeS0+dCAtIGl0ZXItPnRyLT50aW1lX3N0YXJ0KTsKKworCWlmICh2ZXJib3NlKSB7CisJCWNvbW0gPSB0cmFjZV9maW5kX2NtZGxpbmUoZW50cnktPnBpZCk7CisJCXRyYWNlX3NlcV9wcmludGYocywgIiUxNnMgJTVkICVkICVkICUwOHggJTA4eCBbJTA4bHhdIgorCQkJCSAiICVsZC4lMDNsZG1zICgrJWxkLiUwM2xkbXMpOiAiLAorCQkJCSBjb21tLAorCQkJCSBlbnRyeS0+cGlkLCBjcHUsIGVudHJ5LT5mbGFncywKKwkJCQkgZW50cnktPnByZWVtcHRfY291bnQsIHRyYWNlX2lkeCwKKwkJCQkgbnMydXNlY3MoZW50cnktPnQpLAorCQkJCSBhYnNfdXNlY3MvMTAwMCwKKwkJCQkgYWJzX3VzZWNzICUgMTAwMCwgcmVsX3VzZWNzLzEwMDAsCisJCQkJIHJlbF91c2VjcyAlIDEwMDApOworCX0gZWxzZSB7CisJCWxhdF9wcmludF9nZW5lcmljKHMsIGVudHJ5LCBjcHUpOworCQlsYXRfcHJpbnRfdGltZXN0YW1wKHMsIGFic191c2VjcywgcmVsX3VzZWNzKTsKKwl9CisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCXNlcV9wcmludF9pcF9zeW0ocywgZW50cnktPmZuLmlwLCBzeW1fZmxhZ3MpOworCQl0cmFjZV9zZXFfcHV0cyhzLCAiICgiKTsKKwkJaWYgKGtyZXRwcm9iZWQoZW50cnktPmZuLnBhcmVudF9pcCkpCisJCQl0cmFjZV9zZXFfcHV0cyhzLCBLUkVUUFJPQkVfTVNHKTsKKwkJZWxzZQorCQkJc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+Zm4ucGFyZW50X2lwLCBzeW1fZmxhZ3MpOworCQl0cmFjZV9zZXFfcHV0cyhzLCAiKVxuIik7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfQ1RYOgorCWNhc2UgVFJBQ0VfV0FLRToKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisKKwkJc3RhdGUgPSBlbnRyeS0+Y3R4LnByZXZfc3RhdGUgPyBfX2ZmcyhlbnRyeS0+Y3R4LnByZXZfc3RhdGUpICsgMSA6IDA7CisJCVMgPSBzdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSAtIDEgPyBzdGF0ZV90b19jaGFyW3N0YXRlXSA6ICdYJzsKKwkJY29tbSA9IHRyYWNlX2ZpbmRfY21kbGluZShlbnRyeS0+Y3R4Lm5leHRfcGlkKTsKKwkJdHJhY2Vfc2VxX3ByaW50ZihzLCAiICU1ZDolM2Q6JWMgJXMgJTVkOiUzZDolYyAlc1xuIiwKKwkJCQkgZW50cnktPmN0eC5wcmV2X3BpZCwKKwkJCQkgZW50cnktPmN0eC5wcmV2X3ByaW8sCisJCQkJIFMsIGVudHJ5LT50eXBlID09IFRSQUNFX0NUWCA/ICI9PT4iIDogIiAgKyIsCisJCQkJIGVudHJ5LT5jdHgubmV4dF9waWQsCisJCQkJIGVudHJ5LT5jdHgubmV4dF9wcmlvLAorCQkJCSBULCBjb21tKTsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCQl0cmFjZV9zZXFfcHJpbnRmKHMsICIjICVsZCAlbGQgJWxkXG4iLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcxLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcyLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TVEFDSzoKKwkJZm9yIChpID0gMDsgaSA8IEZUUkFDRV9TVEFDS19FTlRSSUVTOyBpKyspIHsKKwkJCWlmIChpKQorCQkJCXRyYWNlX3NlcV9wdXRzKHMsICIgPD0gIik7CisJCQlzZXFfcHJpbnRfaXBfc3ltKHMsIGVudHJ5LT5zdGFjay5jYWxsZXJbaV0sIHN5bV9mbGFncyk7CisJCX0KKwkJdHJhY2Vfc2VxX3B1dHMocywgIlxuIik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXRyYWNlX3NlcV9wcmludGYocywgIlVua25vd24gdHlwZSAlZFxuIiwgZW50cnktPnR5cGUpOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBwcmludF90cmFjZV9mbXQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGxvbmcgc3ltX2ZsYWdzID0gKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9TWU1fTUFTSyk7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwl1bnNpZ25lZCBsb25nIHVzZWNfcmVtOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0OworCXVuc2lnbmVkIGxvbmcgc2VjczsKKwljaGFyICpjb21tOworCWludCByZXQ7CisJaW50IFMsIFQ7CisJaW50IGk7CisKKwllbnRyeSA9IGl0ZXItPmVudDsKKworCWNvbW0gPSB0cmFjZV9maW5kX2NtZGxpbmUoaXRlci0+ZW50LT5waWQpOworCisJdCA9IG5zMnVzZWNzKGVudHJ5LT50KTsKKwl1c2VjX3JlbSA9IGRvX2Rpdih0LCAxMDAwMDAwVUxMKTsKKwlzZWNzID0gKHVuc2lnbmVkIGxvbmcpdDsKKworCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiUxNnMtJS01ZCAiLCBjb21tLCBlbnRyeS0+cGlkKTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuIDA7CisJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiWyUwMmRdICIsIGl0ZXItPmNwdSk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiU1bHUuJTA2bHU6ICIsIHNlY3MsIHVzZWNfcmVtKTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuIDA7CisKKwlzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBUUkFDRV9GTjoKKwkJcmV0ID0gc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+Zm4uaXAsIHN5bV9mbGFncyk7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWlmICgoc3ltX2ZsYWdzICYgVFJBQ0VfSVRFUl9QUklOVF9QQVJFTlQpICYmCisJCQkJCQllbnRyeS0+Zm4ucGFyZW50X2lwKSB7CisJCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIgPC0iKTsKKwkJCWlmICghcmV0KQorCQkJCXJldHVybiAwOworCQkJaWYgKGtyZXRwcm9iZWQoZW50cnktPmZuLnBhcmVudF9pcCkpCisJCQkJcmV0ID0gdHJhY2Vfc2VxX3B1dHMocywgS1JFVFBST0JFX01TRyk7CisJCQllbHNlCisJCQkJcmV0ID0gc2VxX3ByaW50X2lwX3N5bShzLCBlbnRyeS0+Zm4ucGFyZW50X2lwLAorCQkJCQkJICAgICAgIHN5bV9mbGFncyk7CisJCQlpZiAoIXJldCkKKwkJCQlyZXR1cm4gMDsKKwkJfQorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICJcbiIpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwljYXNlIFRSQUNFX1dBS0U6CisJCVMgPSBlbnRyeS0+Y3R4LnByZXZfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4LnByZXZfc3RhdGVdIDogJ1gnOworCQlUID0gZW50cnktPmN0eC5uZXh0X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5uZXh0X3N0YXRlXSA6ICdYJzsKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiICU1ZDolM2Q6JWMgJXMgJTVkOiUzZDolY1xuIiwKKwkJCQkgICAgICAgZW50cnktPmN0eC5wcmV2X3BpZCwKKwkJCQkgICAgICAgZW50cnktPmN0eC5wcmV2X3ByaW8sCisJCQkJICAgICAgIFMsCisJCQkJICAgICAgIGVudHJ5LT50eXBlID09IFRSQUNFX0NUWCA/ICI9PT4iIDogIiAgKyIsCisJCQkJICAgICAgIGVudHJ5LT5jdHgubmV4dF9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgubmV4dF9wcmlvLAorCQkJCSAgICAgICBUKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIjICVsZCAlbGQgJWxkXG4iLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcxLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmcyLAorCQkJCSBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TVEFDSzoKKwkJZm9yIChpID0gMDsgaSA8IEZUUkFDRV9TVEFDS19FTlRSSUVTOyBpKyspIHsKKwkJCWlmIChpKSB7CisJCQkJcmV0ID0gdHJhY2Vfc2VxX3B1dHMocywgIiA8PSAiKTsKKwkJCQlpZiAoIXJldCkKKwkJCQkJcmV0dXJuIDA7CisJCQl9CisJCQlyZXQgPSBzZXFfcHJpbnRfaXBfc3ltKHMsIGVudHJ5LT5zdGFjay5jYWxsZXJbaV0sCisJCQkJCSAgICAgICBzeW1fZmxhZ3MpOworCQkJaWYgKCFyZXQpCisJCQkJcmV0dXJuIDA7CisJCX0KKwkJcmV0ID0gdHJhY2Vfc2VxX3B1dHMocywgIlxuIik7CisJCWlmICghcmV0KQorCQkJcmV0dXJuIDA7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBwcmludF9yYXdfZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCWludCByZXQ7CisJaW50IFMsIFQ7CisKKwllbnRyeSA9IGl0ZXItPmVudDsKKworCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiVkICVkICVsbHUgIiwKKwkJZW50cnktPnBpZCwgaXRlci0+Y3B1LCBlbnRyeS0+dCk7CisJaWYgKCFyZXQpCisJCXJldHVybiAwOworCisJc3dpdGNoIChlbnRyeS0+dHlwZSkgeworCWNhc2UgVFJBQ0VfRk46CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiV4ICV4XG4iLAorCQkJCQllbnRyeS0+Zm4uaXAsIGVudHJ5LT5mbi5wYXJlbnRfaXApOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwljYXNlIFRSQUNFX0NUWDoKKwljYXNlIFRSQUNFX1dBS0U6CisJCVMgPSBlbnRyeS0+Y3R4LnByZXZfc3RhdGUgPCBzaXplb2Yoc3RhdGVfdG9fY2hhcikgPworCQkJc3RhdGVfdG9fY2hhcltlbnRyeS0+Y3R4LnByZXZfc3RhdGVdIDogJ1gnOworCQlUID0gZW50cnktPmN0eC5uZXh0X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5uZXh0X3N0YXRlXSA6ICdYJzsKKwkJaWYgKGVudHJ5LT50eXBlID09IFRSQUNFX1dBS0UpCisJCQlTID0gJysnOworCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIlZCAlZCAlYyAlZCAlZCAlY1xuIiwKKwkJCQkgICAgICAgZW50cnktPmN0eC5wcmV2X3BpZCwKKwkJCQkgICAgICAgZW50cnktPmN0eC5wcmV2X3ByaW8sCisJCQkJICAgICAgIFMsCisJCQkJICAgICAgIGVudHJ5LT5jdHgubmV4dF9waWQsCisJCQkJICAgICAgIGVudHJ5LT5jdHgubmV4dF9wcmlvLAorCQkJCSAgICAgICBUKTsKKwkJaWYgKCFyZXQpCisJCQlyZXR1cm4gMDsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9TUEVDSUFMOgorCWNhc2UgVFJBQ0VfU1RBQ0s6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgIiMgJWxkICVsZCAlbGRcbiIsCisJCQkJIGVudHJ5LT5zcGVjaWFsLmFyZzEsCisJCQkJIGVudHJ5LT5zcGVjaWFsLmFyZzIsCisJCQkJIGVudHJ5LT5zcGVjaWFsLmFyZzMpOworCQlpZiAoIXJldCkKKwkJCXJldHVybiAwOworCQlicmVhazsKKwl9CisJcmV0dXJuIDE7Cit9CisKKyNkZWZpbmUgU0VRX1BVVF9GSUVMRF9SRVQocywgeCkJCQkJXAorZG8gewkJCQkJCQlcCisJaWYgKCF0cmFjZV9zZXFfcHV0bWVtKHMsICYoeCksIHNpemVvZih4KSkpCVwKKwkJcmV0dXJuIDA7CQkJCVwKK30gd2hpbGUgKDApCisKKyNkZWZpbmUgU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIHgpCQkJXAorZG8gewkJCQkJCQlcCisJaWYgKCF0cmFjZV9zZXFfcHV0bWVtX2hleChzLCAmKHgpLCBzaXplb2YoeCkpKQlcCisJCXJldHVybiAwOwkJCQlcCit9IHdoaWxlICgwKQorCitzdGF0aWMgaW50IHByaW50X2hleF9mbXQoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9zZXEgKnMgPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGNoYXIgbmV3bGluZSA9ICdcbic7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeTsKKwlpbnQgUywgVDsKKworCWVudHJ5ID0gaXRlci0+ZW50OworCisJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5waWQpOworCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBpdGVyLT5jcHUpOworCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+dCk7CisKKwlzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBUUkFDRV9GTjoKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5pcCk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Zm4ucGFyZW50X2lwKTsKKwkJYnJlYWs7CisJY2FzZSBUUkFDRV9DVFg6CisJY2FzZSBUUkFDRV9XQUtFOgorCQlTID0gZW50cnktPmN0eC5wcmV2X3N0YXRlIDwgc2l6ZW9mKHN0YXRlX3RvX2NoYXIpID8KKwkJCXN0YXRlX3RvX2NoYXJbZW50cnktPmN0eC5wcmV2X3N0YXRlXSA6ICdYJzsKKwkJVCA9IGVudHJ5LT5jdHgubmV4dF9zdGF0ZSA8IHNpemVvZihzdGF0ZV90b19jaGFyKSA/CisJCQlzdGF0ZV90b19jaGFyW2VudHJ5LT5jdHgubmV4dF9zdGF0ZV0gOiAnWCc7CisJCWlmIChlbnRyeS0+dHlwZSA9PSBUUkFDRV9XQUtFKQorCQkJUyA9ICcrJzsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgucHJldl9waWQpOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3ByaW8pOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgUyk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4Lm5leHRfcGlkKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5jdHgubmV4dF9wcmlvKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5mbi5wYXJlbnRfaXApOworCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgVCk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfU1BFQ0lBTDoKKwljYXNlIFRSQUNFX1NUQUNLOgorCQlTRVFfUFVUX0hFWF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMSk7CisJCVNFUV9QVVRfSEVYX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmcyKTsKKwkJU0VRX1BVVF9IRVhfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzMpOworCQlicmVhazsKKwl9CisJU0VRX1BVVF9GSUVMRF9SRVQocywgbmV3bGluZSk7CisKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBwcmludF9iaW5fZm10KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzID0gJml0ZXItPnNlcTsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5OworCisJZW50cnkgPSBpdGVyLT5lbnQ7CisKKwlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+cGlkKTsKKwlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3B1KTsKKwlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+dCk7CisKKwlzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBUUkFDRV9GTjoKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmZuLmlwKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmZuLnBhcmVudF9pcCk7CisJCWJyZWFrOworCWNhc2UgVFJBQ0VfQ1RYOgorCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4LnByZXZfcGlkKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5wcmV2X3ByaW8pOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4LnByZXZfc3RhdGUpOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4Lm5leHRfcGlkKTsKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPmN0eC5uZXh0X3ByaW8pOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+Y3R4Lm5leHRfc3RhdGUpOworCQlicmVhazsKKwljYXNlIFRSQUNFX1NQRUNJQUw6CisJY2FzZSBUUkFDRV9TVEFDSzoKKwkJU0VRX1BVVF9GSUVMRF9SRVQocywgZW50cnktPnNwZWNpYWwuYXJnMSk7CisJCVNFUV9QVVRfRklFTERfUkVUKHMsIGVudHJ5LT5zcGVjaWFsLmFyZzIpOworCQlTRVFfUFVUX0ZJRUxEX1JFVChzLCBlbnRyeS0+c3BlY2lhbC5hcmczKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgaW50IHRyYWNlX2VtcHR5KHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCWludCBjcHU7CisKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpIHsKKwkJZGF0YSA9IGl0ZXItPnRyLT5kYXRhW2NwdV07CisKKwkJaWYgKGhlYWRfcGFnZShkYXRhKSAmJiBkYXRhLT50cmFjZV9pZHggJiYKKwkJICAgIChkYXRhLT50cmFjZV90YWlsICE9IGRhdGEtPnRyYWNlX2hlYWQgfHwKKwkJICAgICBkYXRhLT50cmFjZV90YWlsX2lkeCAhPSBkYXRhLT50cmFjZV9oZWFkX2lkeCkpCisJCQlyZXR1cm4gMDsKKwl9CisJcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQgcHJpbnRfdHJhY2VfbGluZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJaWYgKGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5wcmludF9saW5lKQorCQlyZXR1cm4gaXRlci0+dHJhY2UtPnByaW50X2xpbmUoaXRlcik7CisKKwlpZiAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX0JJTikKKwkJcmV0dXJuIHByaW50X2Jpbl9mbXQoaXRlcik7CisKKwlpZiAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX0hFWCkKKwkJcmV0dXJuIHByaW50X2hleF9mbXQoaXRlcik7CisKKwlpZiAodHJhY2VfZmxhZ3MgJiBUUkFDRV9JVEVSX1JBVykKKwkJcmV0dXJuIHByaW50X3Jhd19mbXQoaXRlcik7CisKKwlpZiAoaXRlci0+aXRlcl9mbGFncyAmIFRSQUNFX0ZJTEVfTEFUX0ZNVCkKKwkJcmV0dXJuIHByaW50X2xhdF9mbXQoaXRlciwgaXRlci0+aWR4LCBpdGVyLT5jcHUpOworCisJcmV0dXJuIHByaW50X3RyYWNlX2ZtdChpdGVyKTsKK30KKworc3RhdGljIGludCBzX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IHY7CisKKwlpZiAoaXRlci0+ZW50ID09IE5VTEwpIHsKKwkJaWYgKGl0ZXItPnRyKSB7CisJCQlzZXFfcHJpbnRmKG0sICIjIHRyYWNlcjogJXNcbiIsIGl0ZXItPnRyYWNlLT5uYW1lKTsKKwkJCXNlcV9wdXRzKG0sICIjXG4iKTsKKwkJfQorCQlpZiAoaXRlci0+aXRlcl9mbGFncyAmIFRSQUNFX0ZJTEVfTEFUX0ZNVCkgeworCQkJLyogcHJpbnQgbm90aGluZyBpZiB0aGUgYnVmZmVycyBhcmUgZW1wdHkgKi8KKwkJCWlmICh0cmFjZV9lbXB0eShpdGVyKSkKKwkJCQlyZXR1cm4gMDsKKwkJCXByaW50X3RyYWNlX2hlYWRlcihtLCBpdGVyKTsKKwkJCWlmICghKHRyYWNlX2ZsYWdzICYgVFJBQ0VfSVRFUl9WRVJCT1NFKSkKKwkJCQlwcmludF9sYXRfaGVscF9oZWFkZXIobSk7CisJCX0gZWxzZSB7CisJCQlpZiAoISh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfVkVSQk9TRSkpCisJCQkJcHJpbnRfZnVuY19oZWxwX2hlYWRlcihtKTsKKwkJfQorCX0gZWxzZSB7CisJCXByaW50X3RyYWNlX2xpbmUoaXRlcik7CisJCXRyYWNlX3ByaW50X3NlcShtLCAmaXRlci0+c2VxKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzZXFfb3BlcmF0aW9ucyB0cmFjZXJfc2VxX29wcyA9IHsKKwkuc3RhcnQJCT0gc19zdGFydCwKKwkubmV4dAkJPSBzX25leHQsCisJLnN0b3AJCT0gc19zdG9wLAorCS5zaG93CQk9IHNfc2hvdywKK307CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKgorX190cmFjaW5nX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUsIGludCAqcmV0KQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcjsKKworCWlmICh0cmFjaW5nX2Rpc2FibGVkKSB7CisJCSpyZXQgPSAtRU5PREVWOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlpdGVyID0ga3phbGxvYyhzaXplb2YoKml0ZXIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWl0ZXIpIHsKKwkJKnJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWlmIChjdXJyZW50X3RyYWNlICYmIGN1cnJlbnRfdHJhY2UtPnByaW50X21heCkKKwkJaXRlci0+dHIgPSAmbWF4X3RyOworCWVsc2UKKwkJaXRlci0+dHIgPSBpbm9kZS0+aV9wcml2YXRlOworCWl0ZXItPnRyYWNlID0gY3VycmVudF90cmFjZTsKKwlpdGVyLT5wb3MgPSAtMTsKKworCS8qIFRPRE8gc3RvcCB0cmFjZXIgKi8KKwkqcmV0ID0gc2VxX29wZW4oZmlsZSwgJnRyYWNlcl9zZXFfb3BzKTsKKwlpZiAoISpyZXQpIHsKKwkJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCQltLT5wcml2YXRlID0gaXRlcjsKKworCQkvKiBzdG9wIHRoZSB0cmFjZSB3aGlsZSBkdW1waW5nICovCisJCWlmIChpdGVyLT50ci0+Y3RybCkgeworCQkJdHJhY2VyX2VuYWJsZWQgPSAwOworCQkJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQgPSAwOworCQl9CisKKwkJaWYgKGl0ZXItPnRyYWNlICYmIGl0ZXItPnRyYWNlLT5vcGVuKQorCQkJaXRlci0+dHJhY2UtPm9wZW4oaXRlcik7CisJfSBlbHNlIHsKKwkJa2ZyZWUoaXRlcik7CisJCWl0ZXIgPSBOVUxMOworCX0KKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisgb3V0OgorCXJldHVybiBpdGVyOworfQorCitpbnQgdHJhY2luZ19vcGVuX2dlbmVyaWMoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJaWYgKHRyYWNpbmdfZGlzYWJsZWQpCisJCXJldHVybiAtRU5PREVWOworCisJZmlscC0+cHJpdmF0ZV9kYXRhID0gaW5vZGUtPmlfcHJpdmF0ZTsKKwlyZXR1cm4gMDsKK30KKworaW50IHRyYWNpbmdfcmVsZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlzdHJ1Y3Qgc2VxX2ZpbGUgKm0gPSAoc3RydWN0IHNlcV9maWxlICopZmlsZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IG0tPnByaXZhdGU7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoaXRlci0+dHJhY2UgJiYgaXRlci0+dHJhY2UtPmNsb3NlKQorCQlpdGVyLT50cmFjZS0+Y2xvc2UoaXRlcik7CisKKwkvKiByZWVuYWJsZSB0cmFjaW5nIGlmIGl0IHdhcyBwcmV2aW91c2x5IGVuYWJsZWQgKi8KKwlpZiAoaXRlci0+dHItPmN0cmwpIHsKKwkJdHJhY2VyX2VuYWJsZWQgPSAxOworCQkvKgorCQkgKiBJdCBpcyBzYWZlIHRvIGVuYWJsZSBmdW5jdGlvbiB0cmFjaW5nIGV2ZW4gaWYgaXQKKwkJICogaXNuJ3QgdXNlZAorCQkgKi8KKwkJZnRyYWNlX2Z1bmN0aW9uX2VuYWJsZWQgPSAxOworCX0KKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJc2VxX3JlbGVhc2UoaW5vZGUsIGZpbGUpOworCWtmcmVlKGl0ZXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHRyYWNpbmdfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlpbnQgcmV0OworCisJX190cmFjaW5nX29wZW4oaW5vZGUsIGZpbGUsICZyZXQpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB0cmFjaW5nX2x0X29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyOworCWludCByZXQ7CisKKwlpdGVyID0gX190cmFjaW5nX29wZW4oaW5vZGUsIGZpbGUsICZyZXQpOworCisJaWYgKCFyZXQpCisJCWl0ZXItPml0ZXJfZmxhZ3MgfD0gVFJBQ0VfRklMRV9MQVRfRk1UOworCisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgdm9pZCAqCit0X25leHQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBsb2ZmX3QgKnBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VyICp0ID0gbS0+cHJpdmF0ZTsKKworCSgqcG9zKSsrOworCisJaWYgKHQpCisJCXQgPSB0LT5uZXh0OworCisJbS0+cHJpdmF0ZSA9IHQ7CisKKwlyZXR1cm4gdDsKK30KKworc3RhdGljIHZvaWQgKnRfc3RhcnQoc3RydWN0IHNlcV9maWxlICptLCBsb2ZmX3QgKnBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VyICp0ID0gbS0+cHJpdmF0ZTsKKwlsb2ZmX3QgbCA9IDA7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlmb3IgKDsgdCAmJiBsIDwgKnBvczsgdCA9IHRfbmV4dChtLCB0LCAmbCkpCisJCTsKKworCXJldHVybiB0OworfQorCitzdGF0aWMgdm9pZCB0X3N0b3Aoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpwKQoreworCW11dGV4X3VubG9jaygmdHJhY2VfdHlwZXNfbG9jayk7Cit9CisKK3N0YXRpYyBpbnQgdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdikKK3sKKwlzdHJ1Y3QgdHJhY2VyICp0ID0gdjsKKworCWlmICghdCkKKwkJcmV0dXJuIDA7CisKKwlzZXFfcHJpbnRmKG0sICIlcyIsIHQtPm5hbWUpOworCWlmICh0LT5uZXh0KQorCQlzZXFfcHV0YyhtLCAnICcpOworCWVsc2UKKwkJc2VxX3B1dGMobSwgJ1xuJyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzZXFfb3BlcmF0aW9ucyBzaG93X3RyYWNlc19zZXFfb3BzID0geworCS5zdGFydAkJPSB0X3N0YXJ0LAorCS5uZXh0CQk9IHRfbmV4dCwKKwkuc3RvcAkJPSB0X3N0b3AsCisJLnNob3cJCT0gdF9zaG93LAorfTsKKworc3RhdGljIGludCBzaG93X3RyYWNlc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCWludCByZXQ7CisKKwlpZiAodHJhY2luZ19kaXNhYmxlZCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlyZXQgPSBzZXFfb3BlbihmaWxlLCAmc2hvd190cmFjZXNfc2VxX29wcyk7CisJaWYgKCFyZXQpIHsKKwkJc3RydWN0IHNlcV9maWxlICptID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCQltLT5wcml2YXRlID0gdHJhY2VfdHlwZXM7CisJfQorCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3BlbiwKKwkucmVhZAkJPSBzZXFfcmVhZCwKKwkubGxzZWVrCQk9IHNlcV9sc2VlaywKKwkucmVsZWFzZQk9IHRyYWNpbmdfcmVsZWFzZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfbHRfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX2x0X29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLmxsc2VlawkJPSBzZXFfbHNlZWssCisJLnJlbGVhc2UJPSB0cmFjaW5nX3JlbGVhc2UsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBzaG93X3RyYWNlc19mb3BzID0geworCS5vcGVuCQk9IHNob3dfdHJhY2VzX29wZW4sCisJLnJlYWQJCT0gc2VxX3JlYWQsCisJLnJlbGVhc2UJPSBzZXFfcmVsZWFzZSwKK307CisKKy8qCisgKiBPbmx5IHRyYWNlIG9uIGEgQ1BVIGlmIHRoZSBiaXRtYXNrIGlzIHNldDoKKyAqLworc3RhdGljIGNwdW1hc2tfdCB0cmFjaW5nX2NwdW1hc2sgPSBDUFVfTUFTS19BTEw7CisKKy8qCisgKiBXaGVuIHRyYWNpbmcvdHJhY2luZ19jcHVfbWFzayBpcyBtb2RpZmllZCB0aGVuIHRoaXMgaG9sZHMKKyAqIHRoZSBuZXcgYml0bWFzayB3ZSBhcmUgYWJvdXQgdG8gaW5zdGFsbDoKKyAqLworc3RhdGljIGNwdW1hc2tfdCB0cmFjaW5nX2NwdW1hc2tfbmV3OworCisvKgorICogVGhlIHRyYWNlciBpdHNlbGYgd2lsbCBub3QgdGFrZSB0aGlzIGxvY2ssIGJ1dCBzdGlsbCB3ZSB3YW50CisgKiB0byBwcm92aWRlIGEgY29uc2lzdGVudCBjcHVtYXNrIHRvIHVzZXItc3BhY2U6CisgKi8KK3N0YXRpYyBERUZJTkVfTVVURVgodHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworLyoKKyAqIFRlbXBvcmFyeSBzdG9yYWdlIGZvciB0aGUgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uIG9mIHRoZQorICogQ1BVIGJpdG1hc2sgKGFuZCBvbmUgbW9yZSBieXRlIGZvciB0aGUgbmV3bGluZSk6CisgKi8KK3N0YXRpYyBjaGFyIG1hc2tfc3RyW05SX0NQVVMgKyAxXTsKKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3B1bWFza19yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY291bnQsIGxvZmZfdCAqcHBvcykKK3sKKwlpbnQgbGVuOworCisJbXV0ZXhfbG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKworCWxlbiA9IGNwdW1hc2tfc2NucHJpbnRmKG1hc2tfc3RyLCBjb3VudCwgdHJhY2luZ19jcHVtYXNrKTsKKwlpZiAoY291bnQgLSBsZW4gPCAyKSB7CisJCWNvdW50ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfZXJyOworCX0KKwlsZW4gKz0gc3ByaW50ZihtYXNrX3N0ciArIGxlbiwgIlxuIik7CisJY291bnQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjb3VudCwgcHBvcywgbWFza19zdHIsIE5SX0NQVVMrMSk7CisKK291dF9lcnI6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjaW5nX2NwdW1hc2tfdXBkYXRlX2xvY2spOworCisJcmV0dXJuIGNvdW50OworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19jcHVtYXNrX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBwb3MpCit7CisJaW50IGVyciwgY3B1OworCisJbXV0ZXhfbG9jaygmdHJhY2luZ19jcHVtYXNrX3VwZGF0ZV9sb2NrKTsKKwllcnIgPSBjcHVtYXNrX3BhcnNlX3VzZXIodWJ1ZiwgY291bnQsIHRyYWNpbmdfY3B1bWFza19uZXcpOworCWlmIChlcnIpCisJCWdvdG8gZXJyX3VubG9jazsKKworCXJhd19sb2NhbF9pcnFfZGlzYWJsZSgpOworCV9fcmF3X3NwaW5fbG9jaygmZnRyYWNlX21heF9sb2NrKTsKKwlmb3JfZWFjaF90cmFjaW5nX2NwdShjcHUpIHsKKwkJLyoKKwkJICogSW5jcmVhc2UvZGVjcmVhc2UgdGhlIGRpc2FibGVkIGNvdW50ZXIgaWYgd2UgYXJlCisJCSAqIGFib3V0IHRvIGZsaXAgYSBiaXQgaW4gdGhlIGNwdW1hc2s6CisJCSAqLworCQlpZiAoY3B1X2lzc2V0KGNwdSwgdHJhY2luZ19jcHVtYXNrKSAmJgorCQkJCSFjcHVfaXNzZXQoY3B1LCB0cmFjaW5nX2NwdW1hc2tfbmV3KSkgeworCQkJYXRvbWljX2luYygmZ2xvYmFsX3RyYWNlLmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworCQl9CisJCWlmICghY3B1X2lzc2V0KGNwdSwgdHJhY2luZ19jcHVtYXNrKSAmJgorCQkJCWNwdV9pc3NldChjcHUsIHRyYWNpbmdfY3B1bWFza19uZXcpKSB7CisJCQlhdG9taWNfZGVjKCZnbG9iYWxfdHJhY2UuZGF0YVtjcHVdLT5kaXNhYmxlZCk7CisJCX0KKwl9CisJX19yYXdfc3Bpbl91bmxvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJcmF3X2xvY2FsX2lycV9lbmFibGUoKTsKKworCXRyYWNpbmdfY3B1bWFzayA9IHRyYWNpbmdfY3B1bWFza19uZXc7CisKKwltdXRleF91bmxvY2soJnRyYWNpbmdfY3B1bWFza191cGRhdGVfbG9jayk7CisKKwlyZXR1cm4gY291bnQ7CisKK2Vycl91bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjaW5nX2NwdW1hc2tfdXBkYXRlX2xvY2spOworCisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19jcHVtYXNrX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19jcHVtYXNrX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfY3B1bWFza193cml0ZSwKK307CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2l0ZXJfY3RybF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwljaGFyICpidWY7CisJaW50IHIgPSAwOworCWludCBsZW4gPSAwOworCWludCBpOworCisJLyogY2FsdWxhdGUgbWF4IHNpemUgKi8KKwlmb3IgKGkgPSAwOyB0cmFjZV9vcHRpb25zW2ldOyBpKyspIHsKKwkJbGVuICs9IHN0cmxlbih0cmFjZV9vcHRpb25zW2ldKTsKKwkJbGVuICs9IDM7IC8qICJubyIgYW5kIHNwYWNlICovCisJfQorCisJLyogKzIgZm9yIFxuIGFuZCBcMCAqLworCWJ1ZiA9IGttYWxsb2MobGVuICsgMiwgR0ZQX0tFUk5FTCk7CisJaWYgKCFidWYpCisJCXJldHVybiAtRU5PTUVNOworCisJZm9yIChpID0gMDsgdHJhY2Vfb3B0aW9uc1tpXTsgaSsrKSB7CisJCWlmICh0cmFjZV9mbGFncyAmICgxIDw8IGkpKQorCQkJciArPSBzcHJpbnRmKGJ1ZiArIHIsICIlcyAiLCB0cmFjZV9vcHRpb25zW2ldKTsKKwkJZWxzZQorCQkJciArPSBzcHJpbnRmKGJ1ZiArIHIsICJubyVzICIsIHRyYWNlX29wdGlvbnNbaV0pOworCX0KKworCXIgKz0gc3ByaW50ZihidWYgKyByLCAiXG4iKTsKKwlXQVJOX09OKHIgPj0gbGVuICsgMik7CisKKwlyID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworCisJa2ZyZWUoYnVmKTsKKworCXJldHVybiByOworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19pdGVyX2N0cmxfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkJc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmWzY0XTsKKwljaGFyICpjbXAgPSBidWY7CisJaW50IG5lZyA9IDA7CisJaW50IGk7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1ZltjbnRdID0gMDsKKworCWlmIChzdHJuY21wKGJ1ZiwgIm5vIiwgMikgPT0gMCkgeworCQluZWcgPSAxOworCQljbXAgKz0gMjsKKwl9CisKKwlmb3IgKGkgPSAwOyB0cmFjZV9vcHRpb25zW2ldOyBpKyspIHsKKwkJaW50IGxlbiA9IHN0cmxlbih0cmFjZV9vcHRpb25zW2ldKTsKKworCQlpZiAoc3RybmNtcChjbXAsIHRyYWNlX29wdGlvbnNbaV0sIGxlbikgPT0gMCkgeworCQkJaWYgKG5lZykKKwkJCQl0cmFjZV9mbGFncyAmPSB+KDEgPDwgaSk7CisJCQllbHNlCisJCQkJdHJhY2VfZmxhZ3MgfD0gKDEgPDwgaSk7CisJCQlicmVhazsKKwkJfQorCX0KKwkvKgorCSAqIElmIG5vIG9wdGlvbiBjb3VsZCBiZSBzZXQsIHJldHVybiBhbiBlcnJvcjoKKwkgKi8KKwlpZiAoIXRyYWNlX29wdGlvbnNbaV0pCisJCXJldHVybiAtRUlOVkFMOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19pdGVyX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX2dlbmVyaWMsCisJLnJlYWQJCT0gdHJhY2luZ19pdGVyX2N0cmxfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19pdGVyX2N0cmxfd3JpdGUsCit9OworCitzdGF0aWMgY29uc3QgY2hhciByZWFkbWVfbXNnW10gPQorCSJ0cmFjaW5nIG1pbmktSE9XVE86XG5cbiIKKwkiIyBta2RpciAvZGVidWdcbiIKKwkiIyBtb3VudCAtdCBkZWJ1Z2ZzIG5vZGV2IC9kZWJ1Z1xuXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2F2YWlsYWJsZV90cmFjZXJzXG4iCisJIndha2V1cCBwcmVlbXB0aXJxc29mZiBwcmVlbXB0b2ZmIGlycXNvZmYgZnRyYWNlIHNjaGVkX3N3aXRjaCBub25lXG5cbiIKKwkiIyBjYXQgL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXJcbiIKKwkibm9uZVxuIgorCSIjIGVjaG8gc2NoZWRfc3dpdGNoID4gL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXJcbiIKKwkiIyBjYXQgL2RlYnVnL3RyYWNpbmcvY3VycmVudF90cmFjZXJcbiIKKwkic2NoZWRfc3dpdGNoXG4iCisJIiMgY2F0IC9kZWJ1Zy90cmFjaW5nL2l0ZXJfY3RybFxuIgorCSJub3ByaW50LXBhcmVudCBub3N5bS1vZmZzZXQgbm9zeW0tYWRkciBub3ZlcmJvc2VcbiIKKwkiIyBlY2hvIHByaW50LXBhcmVudCA+IC9kZWJ1Zy90cmFjaW5nL2l0ZXJfY3RybFxuIgorCSIjIGVjaG8gMSA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZFxuIgorCSIjIGNhdCAvZGVidWcvdHJhY2luZy90cmFjZSA+IC90bXAvdHJhY2UudHh0XG4iCisJImVjaG8gMCA+IC9kZWJ1Zy90cmFjaW5nL3RyYWNpbmdfZW5hYmxlZFxuIgorOworCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19yZWFkbWVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywKKwkJCQkJcmVhZG1lX21zZywgc3RybGVuKHJlYWRtZV9tc2cpKTsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19yZWFkbWVfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX3JlYWRtZV9yZWFkLAorfTsKKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfY3RybF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKwljaGFyIGJ1Zls2NF07CisJaW50IHI7CisKKwlyID0gc3ByaW50ZihidWYsICIlbGRcbiIsIHRyLT5jdHJsKTsKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19jdHJsX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJY2hhciBidWZbNjRdOworCWxvbmcgdmFsOworCWludCByZXQ7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1ZltjbnRdID0gMDsKKworCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJdmFsID0gISF2YWw7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAodHItPmN0cmwgXiB2YWwpIHsKKwkJaWYgKHZhbCkKKwkJCXRyYWNlcl9lbmFibGVkID0gMTsKKwkJZWxzZQorCQkJdHJhY2VyX2VuYWJsZWQgPSAwOworCisJCXRyLT5jdHJsID0gdmFsOworCisJCWlmIChjdXJyZW50X3RyYWNlICYmIGN1cnJlbnRfdHJhY2UtPmN0cmxfdXBkYXRlKQorCQkJY3VycmVudF90cmFjZS0+Y3RybF91cGRhdGUodHIpOworCX0KKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfc2V0X3RyYWNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCWNoYXIgYnVmW21heF90cmFjZXJfdHlwZV9sZW4rMl07CisJaW50IHI7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpZiAoY3VycmVudF90cmFjZSkKKwkJciA9IHNwcmludGYoYnVmLCAiJXNcbiIsIGN1cnJlbnRfdHJhY2UtPm5hbWUpOworCWVsc2UKKwkJciA9IHNwcmludGYoYnVmLCAiXG4iKTsKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfc2V0X3RyYWNlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJCXNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gJmdsb2JhbF90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VyICp0OworCWNoYXIgYnVmW21heF90cmFjZXJfdHlwZV9sZW4rMV07CisJaW50IGk7CisKKwlpZiAoY250ID4gbWF4X3RyYWNlcl90eXBlX2xlbikKKwkJY250ID0gbWF4X3RyYWNlcl90eXBlX2xlbjsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1ZltjbnRdID0gMDsKKworCS8qIHN0cmlwIGVuZGluZyB3aGl0ZXNwYWNlLiAqLworCWZvciAoaSA9IGNudCAtIDE7IGkgPiAwICYmIGlzc3BhY2UoYnVmW2ldKTsgaS0tKQorCQlidWZbaV0gPSAwOworCisJbXV0ZXhfbG9jaygmdHJhY2VfdHlwZXNfbG9jayk7CisJZm9yICh0ID0gdHJhY2VfdHlwZXM7IHQ7IHQgPSB0LT5uZXh0KSB7CisJCWlmIChzdHJjbXAodC0+bmFtZSwgYnVmKSA9PSAwKQorCQkJYnJlYWs7CisJfQorCWlmICghdCB8fCB0ID09IGN1cnJlbnRfdHJhY2UpCisJCWdvdG8gb3V0OworCisJaWYgKGN1cnJlbnRfdHJhY2UgJiYgY3VycmVudF90cmFjZS0+cmVzZXQpCisJCWN1cnJlbnRfdHJhY2UtPnJlc2V0KHRyKTsKKworCWN1cnJlbnRfdHJhY2UgPSB0OworCWlmICh0LT5pbml0KQorCQl0LT5pbml0KHRyKTsKKworIG91dDoKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfbWF4X2xhdF9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJdW5zaWduZWQgbG9uZyAqcHRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgcjsKKworCXIgPSBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJWxkXG4iLAorCQkgICAgICpwdHIgPT0gKHVuc2lnbmVkIGxvbmcpLTEgPyAtMSA6IG5zZWNzX3RvX3VzZWNzKCpwdHIpKTsKKwlpZiAociA+IHNpemVvZihidWYpKQorCQlyID0gc2l6ZW9mKGJ1Zik7CisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfbWF4X2xhdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlsb25nICpwdHIgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJY2hhciBidWZbNjRdOworCWxvbmcgdmFsOworCWludCByZXQ7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1ZltjbnRdID0gMDsKKworCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJKnB0ciA9IHZhbCAqIDEwMDA7CisKKwlyZXR1cm4gY250OworfQorCitzdGF0aWMgYXRvbWljX3QgdHJhY2luZ19yZWFkZXI7CisKK3N0YXRpYyBpbnQgdHJhY2luZ19vcGVuX3BpcGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyOworCisJaWYgKHRyYWNpbmdfZGlzYWJsZWQpCisJCXJldHVybiAtRU5PREVWOworCisJLyogV2Ugb25seSBhbGxvdyBmb3IgcmVhZGVyIG9mIHRoZSBwaXBlICovCisJaWYgKGF0b21pY19pbmNfcmV0dXJuKCZ0cmFjaW5nX3JlYWRlcikgIT0gMSkgeworCQlhdG9taWNfZGVjKCZ0cmFjaW5nX3JlYWRlcik7CisJCXJldHVybiAtRUJVU1k7CisJfQorCisJLyogY3JlYXRlIGEgYnVmZmVyIHRvIHN0b3JlIHRoZSBpbmZvcm1hdGlvbiB0byBwYXNzIHRvIHVzZXJzcGFjZSAqLworCWl0ZXIgPSBremFsbG9jKHNpemVvZigqaXRlciksIEdGUF9LRVJORUwpOworCWlmICghaXRlcikKKwkJcmV0dXJuIC1FTk9NRU07CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKwlpdGVyLT50ciA9ICZnbG9iYWxfdHJhY2U7CisJaXRlci0+dHJhY2UgPSBjdXJyZW50X3RyYWNlOworCWZpbHAtPnByaXZhdGVfZGF0YSA9IGl0ZXI7CisKKwlpZiAoaXRlci0+dHJhY2UtPnBpcGVfb3BlbikKKwkJaXRlci0+dHJhY2UtPnBpcGVfb3BlbihpdGVyKTsKKwltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdHJhY2luZ19yZWxlYXNlX3BpcGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gZmlsZS0+cHJpdmF0ZV9kYXRhOworCisJa2ZyZWUoaXRlcik7CisJYXRvbWljX2RlYygmdHJhY2luZ19yZWFkZXIpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQKK3RyYWNpbmdfcG9sbF9waXBlKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICpwb2xsX3RhYmxlKQoreworCXN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlciA9IGZpbHAtPnByaXZhdGVfZGF0YTsKKworCWlmICh0cmFjZV9mbGFncyAmIFRSQUNFX0lURVJfQkxPQ0spIHsKKwkJLyoKKwkJICogQWx3YXlzIHNlbGVjdCBhcyByZWFkYWJsZSB3aGVuIGluIGJsb2NraW5nIG1vZGUKKwkJICovCisJCXJldHVybiBQT0xMSU4gfCBQT0xMUkROT1JNOworCX0gZWxzZSB7CisJCWlmICghdHJhY2VfZW1wdHkoaXRlcikpCisJCQlyZXR1cm4gUE9MTElOIHwgUE9MTFJETk9STTsKKwkJcG9sbF93YWl0KGZpbHAsICZ0cmFjZV93YWl0LCBwb2xsX3RhYmxlKTsKKwkJaWYgKCF0cmFjZV9lbXB0eShpdGVyKSkKKwkJCXJldHVybiBQT0xMSU4gfCBQT0xMUkROT1JNOworCisJCXJldHVybiAwOworCX0KK30KKworLyoKKyAqIENvbnN1bWVyIHJlYWRlci4KKyAqLworc3RhdGljIHNzaXplX3QKK3RyYWNpbmdfcmVhZF9waXBlKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJc3RhdGljIGNwdW1hc2tfdCBtYXNrOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisjaWZkZWYgQ09ORklHX0ZUUkFDRQorCWludCBmdHJhY2Vfc2F2ZTsKKyNlbmRpZgorCWludCBjcHU7CisJc3NpemVfdCBzcmV0OworCisJLyogcmV0dXJuIGFueSBsZWZ0b3ZlciBkYXRhICovCisJc3JldCA9IHRyYWNlX3NlcV90b191c2VyKCZpdGVyLT5zZXEsIHVidWYsIGNudCk7CisJaWYgKHNyZXQgIT0gLUVCVVNZKQorCQlyZXR1cm4gc3JldDsKKwlzcmV0ID0gMDsKKworCXRyYWNlX3NlcV9yZXNldCgmaXRlci0+c2VxKTsKKworCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCWlmIChpdGVyLT50cmFjZS0+cmVhZCkgeworCQlzcmV0ID0gaXRlci0+dHJhY2UtPnJlYWQoaXRlciwgZmlscCwgdWJ1ZiwgY250LCBwcG9zKTsKKwkJaWYgKHNyZXQpCisJCQlnb3RvIG91dDsKKwl9CisKKwl3aGlsZSAodHJhY2VfZW1wdHkoaXRlcikpIHsKKworCQlpZiAoKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSkgeworCQkJc3JldCA9IC1FQUdBSU47CisJCQlnb3RvIG91dDsKKwkJfQorCisJCS8qCisJCSAqIFRoaXMgaXMgYSBtYWtlLXNoaWZ0IHdhaXRxdWV1ZS4gVGhlIHJlYXNvbiB3ZSBkb24ndCB1c2UKKwkJICogYW4gYWN0dWFsIHdhaXQgcXVldWUgaXMgYmVjYXVzZToKKwkJICogIDEpIHdlIG9ubHkgZXZlciBoYXZlIG9uZSB3YWl0ZXIKKwkJICogIDIpIHRoZSB0cmFjaW5nLCB0cmFjZXMgYWxsIGZ1bmN0aW9ucywgd2UgZG9uJ3Qgd2FudAorCQkgKiAgICAgdGhlIG92ZXJoZWFkIG9mIGNhbGxpbmcgd2FrZV91cCBhbmQgZnJpZW5kcworCQkgKiAgICAgKGFuZCB0cmFjaW5nIHRoZW0gdG9vKQorCQkgKiAgICAgQW55d2F5LCB0aGlzIGlzIHJlYWxseSB2ZXJ5IHByaW1pdGl2ZSB3YWtldXAuCisJCSAqLworCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOworCQlpdGVyLT50ci0+d2FpdGVyID0gY3VycmVudDsKKworCQltdXRleF91bmxvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJCS8qIHNsZWVwIGZvciAxMDAgbXNlY3MsIGFuZCB0cnkgYWdhaW4uICovCisJCXNjaGVkdWxlX3RpbWVvdXQoSFovMTApOworCisJCW11dGV4X2xvY2soJnRyYWNlX3R5cGVzX2xvY2spOworCisJCWl0ZXItPnRyLT53YWl0ZXIgPSBOVUxMOworCisJCWlmIChzaWduYWxfcGVuZGluZyhjdXJyZW50KSkgeworCQkJc3JldCA9IC1FSU5UUjsKKwkJCWdvdG8gb3V0OworCQl9CisKKwkJaWYgKGl0ZXItPnRyYWNlICE9IGN1cnJlbnRfdHJhY2UpCisJCQlnb3RvIG91dDsKKworCQkvKgorCQkgKiBXZSBibG9jayB1bnRpbCB3ZSByZWFkIHNvbWV0aGluZyBhbmQgdHJhY2luZyBpcyBkaXNhYmxlZC4KKwkJICogV2Ugc3RpbGwgYmxvY2sgaWYgdHJhY2luZyBpcyBkaXNhYmxlZCwgYnV0IHdlIGhhdmUgbmV2ZXIKKwkJICogcmVhZCBhbnl0aGluZy4gVGhpcyBhbGxvd3MgYSB1c2VyIHRvIGNhdCB0aGlzIGZpbGUsIGFuZAorCQkgKiB0aGVuIGVuYWJsZSB0cmFjaW5nLiBCdXQgYWZ0ZXIgd2UgaGF2ZSByZWFkIHNvbWV0aGluZywKKwkJICogd2UgZ2l2ZSBhbiBFT0Ygd2hlbiB0cmFjaW5nIGlzIGFnYWluIGRpc2FibGVkLgorCQkgKgorCQkgKiBpdGVyLT5wb3Mgd2lsbCBiZSAwIGlmIHdlIGhhdmVuJ3QgcmVhZCBhbnl0aGluZy4KKwkJICovCisJCWlmICghdHJhY2VyX2VuYWJsZWQgJiYgaXRlci0+cG9zKQorCQkJYnJlYWs7CisKKwkJY29udGludWU7CisJfQorCisJLyogc3RvcCB3aGVuIHRyYWNpbmcgaXMgZmluaXNoZWQgKi8KKwlpZiAodHJhY2VfZW1wdHkoaXRlcikpCisJCWdvdG8gb3V0OworCisJaWYgKGNudCA+PSBQQUdFX1NJWkUpCisJCWNudCA9IFBBR0VfU0laRSAtIDE7CisKKwkvKiByZXNldCBhbGwgYnV0IHRyLCB0cmFjZSwgYW5kIG92ZXJydW5zICovCisJbWVtc2V0KCZpdGVyLT5zZXEsIDAsCisJICAgICAgIHNpemVvZihzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IpIC0KKwkgICAgICAgb2Zmc2V0b2Yoc3RydWN0IHRyYWNlX2l0ZXJhdG9yLCBzZXEpKTsKKwlpdGVyLT5wb3MgPSAtMTsKKworCS8qCisJICogV2UgbmVlZCB0byBzdG9wIGFsbCB0cmFjaW5nIG9uIGFsbCBDUFVTIHRvIHJlYWQgdGhlCisJICogdGhlIG5leHQgYnVmZmVyLiBUaGlzIGlzIGEgYml0IGV4cGVuc2l2ZSwgYnV0IGlzCisJICogbm90IGRvbmUgb2Z0ZW4uIFdlIGZpbGwgYWxsIHdoYXQgd2UgY2FuIHJlYWQsCisJICogYW5kIHRoZW4gcmVsZWFzZSB0aGUgbG9ja3MgYWdhaW4uCisJICovCisKKwljcHVzX2NsZWFyKG1hc2spOworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisJZnRyYWNlX3NhdmUgPSBmdHJhY2VfZW5hYmxlZDsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisjZW5kaWYKKwlzbXBfd21iKCk7CisJZm9yX2VhY2hfdHJhY2luZ19jcHUoY3B1KSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCisJCWlmICghaGVhZF9wYWdlKGRhdGEpIHx8ICFkYXRhLT50cmFjZV9pZHgpCisJCQljb250aW51ZTsKKworCQlhdG9taWNfaW5jKCZkYXRhLT5kaXNhYmxlZCk7CisJCWNwdV9zZXQoY3B1LCBtYXNrKTsKKwl9CisKKwlmb3JfZWFjaF9jcHVfbWFzayhjcHUsIG1hc2spIHsKKwkJZGF0YSA9IGl0ZXItPnRyLT5kYXRhW2NwdV07CisJCV9fcmF3X3NwaW5fbG9jaygmZGF0YS0+bG9jayk7CisKKwkJaWYgKGRhdGEtPm92ZXJydW4gPiBpdGVyLT5sYXN0X292ZXJydW5bY3B1XSkKKwkJCWl0ZXItPm92ZXJydW5bY3B1XSArPQorCQkJCWRhdGEtPm92ZXJydW4gLSBpdGVyLT5sYXN0X292ZXJydW5bY3B1XTsKKwkJaXRlci0+bGFzdF9vdmVycnVuW2NwdV0gPSBkYXRhLT5vdmVycnVuOworCX0KKworCXdoaWxlIChmaW5kX25leHRfZW50cnlfaW5jKGl0ZXIpICE9IE5VTEwpIHsKKwkJaW50IHJldDsKKwkJaW50IGxlbiA9IGl0ZXItPnNlcS5sZW47CisKKwkJcmV0ID0gcHJpbnRfdHJhY2VfbGluZShpdGVyKTsKKwkJaWYgKCFyZXQpIHsKKwkJCS8qIGRvbid0IHByaW50IHBhcnRpYWwgbGluZXMgKi8KKwkJCWl0ZXItPnNlcS5sZW4gPSBsZW47CisJCQlicmVhazsKKwkJfQorCisJCXRyYWNlX2NvbnN1bWUoaXRlcik7CisKKwkJaWYgKGl0ZXItPnNlcS5sZW4gPj0gY250KQorCQkJYnJlYWs7CisJfQorCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBtYXNrKSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCQlfX3Jhd19zcGluX3VubG9jaygmZGF0YS0+bG9jayk7CisJfQorCisJZm9yX2VhY2hfY3B1X21hc2soY3B1LCBtYXNrKSB7CisJCWRhdGEgPSBpdGVyLT50ci0+ZGF0YVtjcHVdOworCQlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJfQorI2lmZGVmIENPTkZJR19GVFJBQ0UKKwlmdHJhY2VfZW5hYmxlZCA9IGZ0cmFjZV9zYXZlOworI2VuZGlmCisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworCisJLyogTm93IGNvcHkgd2hhdCB3ZSBoYXZlIHRvIHRoZSB1c2VyICovCisJc3JldCA9IHRyYWNlX3NlcV90b191c2VyKCZpdGVyLT5zZXEsIHVidWYsIGNudCk7CisJaWYgKGl0ZXItPnNlcS5yZWFkcG9zID49IGl0ZXItPnNlcS5sZW4pCisJCXRyYWNlX3NlcV9yZXNldCgmaXRlci0+c2VxKTsKKwlpZiAoc3JldCA9PSAtRUJVU1kpCisJCXNyZXQgPSAwOworCitvdXQ6CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiBzcmV0OworfQorCitzdGF0aWMgc3NpemVfdAordHJhY2luZ19lbnRyaWVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgIHNpemVfdCBjbnQsIGxvZmZfdCAqcHBvcykKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gZmlscC0+cHJpdmF0ZV9kYXRhOworCWNoYXIgYnVmWzY0XTsKKwlpbnQgcjsKKworCXIgPSBzcHJpbnRmKGJ1ZiwgIiVsdVxuIiwgdHItPmVudHJpZXMpOworCXJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1YnVmLCBjbnQsIHBwb3MsIGJ1Ziwgcik7Cit9CisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX2VudHJpZXNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICp1YnVmLAorCQkgICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJdW5zaWduZWQgbG9uZyB2YWw7CisJY2hhciBidWZbNjRdOworCWludCBpLCByZXQ7CisKKwlpZiAoY250ID49IHNpemVvZihidWYpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChjb3B5X2Zyb21fdXNlcigmYnVmLCB1YnVmLCBjbnQpKQorCQlyZXR1cm4gLUVGQVVMVDsKKworCWJ1ZltjbnRdID0gMDsKKworCXJldCA9IHN0cmljdF9zdHJ0b3VsKGJ1ZiwgMTAsICZ2YWwpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogbXVzdCBoYXZlIGF0IGxlYXN0IDEgZW50cnkgKi8KKwlpZiAoIXZhbCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwltdXRleF9sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCWlmIChjdXJyZW50X3RyYWNlICE9ICZub190cmFjZXIpIHsKKwkJY250ID0gLUVCVVNZOworCQlwcl9pbmZvKCJmdHJhY2U6IHNldCBjdXJyZW50X3RyYWNlciB0byBub25lIgorCQkJIiBiZWZvcmUgbW9kaWZ5aW5nIGJ1ZmZlciBzaXplXG4iKTsKKwkJZ290byBvdXQ7CisJfQorCisJaWYgKHZhbCA+IGdsb2JhbF90cmFjZS5lbnRyaWVzKSB7CisJCWxvbmcgcGFnZXNfcmVxdWVzdGVkOworCQl1bnNpZ25lZCBsb25nIGZyZWVhYmxlX3BhZ2VzOworCisJCS8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGVub3VnaCBtZW1vcnkgYmVmb3JlIG1hcHBpbmcgKi8KKwkJcGFnZXNfcmVxdWVzdGVkID0KKwkJCSh2YWwgKyAoRU5UUklFU19QRVJfUEFHRS0xKSkgLyBFTlRSSUVTX1BFUl9QQUdFOworCisJCS8qIGFjY291bnQgZm9yIGVhY2ggYnVmZmVyIChhbmQgbWF4X3RyKSAqLworCQlwYWdlc19yZXF1ZXN0ZWQgKj0gdHJhY2luZ19ucl9idWZmZXJzICogMjsKKworCQkvKiBDaGVjayBmb3Igb3ZlcmZsb3cgKi8KKwkJaWYgKHBhZ2VzX3JlcXVlc3RlZCA8IDApIHsKKwkJCWNudCA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKKwkJfQorCisJCWZyZWVhYmxlX3BhZ2VzID0gZGV0ZXJtaW5lX2RpcnR5YWJsZV9tZW1vcnkoKTsKKworCQkvKiB3ZSBvbmx5IGFsbG93IHRvIHJlcXVlc3QgMS80IG9mIHVzZWFibGUgbWVtb3J5ICovCisJCWlmIChwYWdlc19yZXF1ZXN0ZWQgPgorCQkgICAgKChmcmVlYWJsZV9wYWdlcyArIHRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkKSAvIDQpKSB7CisJCQljbnQgPSAtRU5PTUVNOworCQkJZ290byBvdXQ7CisJCX0KKworCQl3aGlsZSAoZ2xvYmFsX3RyYWNlLmVudHJpZXMgPCB2YWwpIHsKKwkJCWlmICh0cmFjZV9hbGxvY19wYWdlKCkpIHsKKwkJCQljbnQgPSAtRU5PTUVNOworCQkJCWdvdG8gb3V0OworCQkJfQorCQkJLyogZG91YmxlIGNoZWNrIHRoYXQgd2UgZG9uJ3QgZ28gb3ZlciB0aGUga25vd24gcGFnZXMgKi8KKwkJCWlmICh0cmFjaW5nX3BhZ2VzX2FsbG9jYXRlZCA+IHBhZ2VzX3JlcXVlc3RlZCkKKwkJCQlicmVhazsKKwkJfQorCisJfSBlbHNlIHsKKwkJLyogaW5jbHVkZSB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdmFsIChpbmMgb2YgcGFnZSBlbnRyaWVzKSAqLworCQl3aGlsZSAoZ2xvYmFsX3RyYWNlLmVudHJpZXMgPiB2YWwgKyAoRU5UUklFU19QRVJfUEFHRSAtIDEpKQorCQkJdHJhY2VfZnJlZV9wYWdlKCk7CisJfQorCisJLyogY2hlY2sgaW50ZWdyaXR5ICovCisJZm9yX2VhY2hfdHJhY2luZ19jcHUoaSkKKwkJY2hlY2tfcGFnZXMoZ2xvYmFsX3RyYWNlLmRhdGFbaV0pOworCisJZmlscC0+Zl9wb3MgKz0gY250OworCisJLyogSWYgY2hlY2sgcGFnZXMgZmFpbGVkLCByZXR1cm4gRU5PTUVNICovCisJaWYgKHRyYWNpbmdfZGlzYWJsZWQpCisJCWNudCA9IC1FTk9NRU07Cisgb3V0OgorCW1heF90ci5lbnRyaWVzID0gZ2xvYmFsX3RyYWNlLmVudHJpZXM7CisJbXV0ZXhfdW5sb2NrKCZ0cmFjZV90eXBlc19sb2NrKTsKKworCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfbWF4X2xhdF9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfbWF4X2xhdF9yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX21heF9sYXRfd3JpdGUsCit9OworCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX2N0cmxfZm9wcyA9IHsKKwkub3BlbgkJPSB0cmFjaW5nX29wZW5fZ2VuZXJpYywKKwkucmVhZAkJPSB0cmFjaW5nX2N0cmxfcmVhZCwKKwkud3JpdGUJCT0gdHJhY2luZ19jdHJsX3dyaXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc2V0X3RyYWNlcl9mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfc2V0X3RyYWNlX3JlYWQsCisJLndyaXRlCQk9IHRyYWNpbmdfc2V0X3RyYWNlX3dyaXRlLAorfTsKKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdHJhY2luZ19waXBlX2ZvcHMgPSB7CisJLm9wZW4JCT0gdHJhY2luZ19vcGVuX3BpcGUsCisJLnBvbGwJCT0gdHJhY2luZ19wb2xsX3BpcGUsCisJLnJlYWQJCT0gdHJhY2luZ19yZWFkX3BpcGUsCisJLnJlbGVhc2UJPSB0cmFjaW5nX3JlbGVhc2VfcGlwZSwKK307CisKK3N0YXRpYyBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHRyYWNpbmdfZW50cmllc19mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfZW50cmllc19yZWFkLAorCS53cml0ZQkJPSB0cmFjaW5nX2VudHJpZXNfd3JpdGUsCit9OworCisjaWZkZWYgQ09ORklHX0RZTkFNSUNfRlRSQUNFCisKK3N0YXRpYyBzc2l6ZV90Cit0cmFjaW5nX3JlYWRfbG9uZyhzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKQoreworCXVuc2lnbmVkIGxvbmcgKnAgPSBmaWxwLT5wcml2YXRlX2RhdGE7CisJY2hhciBidWZbNjRdOworCWludCByOworCisJciA9IHNwcmludGYoYnVmLCAiJWxkXG4iLCAqcCk7CisKKwlyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodWJ1ZiwgY250LCBwcG9zLCBidWYsIHIpOworfQorCitzdGF0aWMgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB0cmFjaW5nX3JlYWRfbG9uZ19mb3BzID0geworCS5vcGVuCQk9IHRyYWNpbmdfb3Blbl9nZW5lcmljLAorCS5yZWFkCQk9IHRyYWNpbmdfcmVhZF9sb25nLAorfTsKKyNlbmRpZgorCitzdGF0aWMgc3RydWN0IGRlbnRyeSAqZF90cmFjZXI7CisKK3N0cnVjdCBkZW50cnkgKnRyYWNpbmdfaW5pdF9kZW50cnkodm9pZCkKK3sKKwlzdGF0aWMgaW50IG9uY2U7CisKKwlpZiAoZF90cmFjZXIpCisJCXJldHVybiBkX3RyYWNlcjsKKworCWRfdHJhY2VyID0gZGVidWdmc19jcmVhdGVfZGlyKCJ0cmFjaW5nIiwgTlVMTCk7CisKKwlpZiAoIWRfdHJhY2VyICYmICFvbmNlKSB7CisJCW9uY2UgPSAxOworCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgZGlyZWN0b3J5ICd0cmFjaW5nJ1xuIik7CisJCXJldHVybiBOVUxMOworCX0KKworCXJldHVybiBkX3RyYWNlcjsKK30KKworI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKy8qIExldCBzZWxmdGVzdCBoYXZlIGFjY2VzcyB0byBzdGF0aWMgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSAqLworI2luY2x1ZGUgInRyYWNlX3NlbGZ0ZXN0LmMiCisjZW5kaWYKKworc3RhdGljIF9faW5pdCB2b2lkIHRyYWNlcl9pbml0X2RlYnVnZnModm9pZCkKK3sKKwlzdHJ1Y3QgZGVudHJ5ICpkX3RyYWNlcjsKKwlzdHJ1Y3QgZGVudHJ5ICplbnRyeTsKKworCWRfdHJhY2VyID0gdHJhY2luZ19pbml0X2RlbnRyeSgpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjaW5nX2VuYWJsZWQiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgJmdsb2JhbF90cmFjZSwgJnRyYWNpbmdfY3RybF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNpbmdfZW5hYmxlZCcgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJpdGVyX2N0cmwiLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfaXRlcl9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ2l0ZXJfY3RybCcgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjaW5nX2NwdW1hc2siLCAwNjQ0LCBkX3RyYWNlciwKKwkJCQkgICAgTlVMTCwgJnRyYWNpbmdfY3B1bWFza19mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNpbmdfY3B1bWFzaycgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJsYXRlbmN5X3RyYWNlIiwgMDQ0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZ0cmFjaW5nX2x0X2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAnbGF0ZW5jeV90cmFjZScgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjZSIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZ2xvYmFsX3RyYWNlLCAmdHJhY2luZ19mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNlJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImF2YWlsYWJsZV90cmFjZXJzIiwgMDQ0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZzaG93X3RyYWNlc19mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ3RyYWNlJyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImN1cnJlbnRfdHJhY2VyIiwgMDQ0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZzZXRfdHJhY2VyX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAndHJhY2UnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2luZ19tYXhfbGF0ZW5jeSIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmdHJhY2luZ19tYXhfbGF0ZW5jeSwKKwkJCQkgICAgJnRyYWNpbmdfbWF4X2xhdF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIid0cmFjaW5nX21heF9sYXRlbmN5JyBlbnRyeVxuIik7CisKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoInRyYWNpbmdfdGhyZXNoIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgICZ0cmFjaW5nX3RocmVzaCwgJnRyYWNpbmdfbWF4X2xhdF9mb3BzKTsKKwlpZiAoIWVudHJ5KQorCQlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgIgorCQkJICAgIid0cmFjaW5nX3RocmVhc2gnIGVudHJ5XG4iKTsKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoIlJFQURNRSIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICBOVUxMLCAmdHJhY2luZ19yZWFkbWVfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICdSRUFETUUnIGVudHJ5XG4iKTsKKworCWVudHJ5ID0gZGVidWdmc19jcmVhdGVfZmlsZSgidHJhY2VfcGlwZSIsIDA2NDQsIGRfdHJhY2VyLAorCQkJCSAgICBOVUxMLCAmdHJhY2luZ19waXBlX2ZvcHMpOworCWlmICghZW50cnkpCisJCXByX3dhcm5pbmcoIkNvdWxkIG5vdCBjcmVhdGUgZGVidWdmcyAiCisJCQkgICAiJ3RyYWNpbmdfdGhyZWFzaCcgZW50cnlcbiIpOworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJ0cmFjZV9lbnRyaWVzIiwgMDY0NCwgZF90cmFjZXIsCisJCQkJICAgICZnbG9iYWxfdHJhY2UsICZ0cmFjaW5nX2VudHJpZXNfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICIndHJhY2luZ190aHJlYXNoJyBlbnRyeVxuIik7CisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKKwllbnRyeSA9IGRlYnVnZnNfY3JlYXRlX2ZpbGUoImR5bl9mdHJhY2VfdG90YWxfaW5mbyIsIDA0NDQsIGRfdHJhY2VyLAorCQkJCSAgICAmZnRyYWNlX3VwZGF0ZV90b3RfY250LAorCQkJCSAgICAmdHJhY2luZ19yZWFkX2xvbmdfZm9wcyk7CisJaWYgKCFlbnRyeSkKKwkJcHJfd2FybmluZygiQ291bGQgbm90IGNyZWF0ZSBkZWJ1Z2ZzICIKKwkJCSAgICInZHluX2Z0cmFjZV90b3RhbF9pbmZvJyBlbnRyeVxuIik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfU1lTUFJPRl9UUkFDRVIKKwlpbml0X3RyYWNlcl9zeXNwcm9mX2RlYnVnZnMoZF90cmFjZXIpOworI2VuZGlmCit9CisKK3N0YXRpYyBpbnQgdHJhY2VfYWxsb2NfcGFnZSh2b2lkKQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJc3RydWN0IHBhZ2UgKnBhZ2UsICp0bXA7CisJTElTVF9IRUFEKHBhZ2VzKTsKKwl2b2lkICphcnJheTsKKwl1bnNpZ25lZCBwYWdlc19hbGxvY2F0ZWQgPSAwOworCWludCBpOworCisJLyogZmlyc3QgYWxsb2NhdGUgYSBwYWdlIGZvciBlYWNoIENQVSAqLworCWZvcl9lYWNoX3RyYWNpbmdfY3B1KGkpIHsKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX3BhZ2VzOworCQl9CisKKwkJcGFnZXNfYWxsb2NhdGVkKys7CisJCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoYXJyYXkpOworCQlsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmcGFnZXMpOworCisvKiBPbmx5IGFsbG9jYXRlIGlmIHdlIGFyZSBhY3R1YWxseSB1c2luZyB0aGUgbWF4IHRyYWNlICovCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJYXJyYXkgPSAodm9pZCAqKV9fZ2V0X2ZyZWVfcGFnZShHRlBfS0VSTkVMKTsKKwkJaWYgKGFycmF5ID09IE5VTEwpIHsKKwkJCXByaW50ayhLRVJOX0VSUiAidHJhY2VyOiBmYWlsZWQgdG8gYWxsb2NhdGUgcGFnZSIKKwkJCSAgICAgICAiZm9yIHRyYWNlIGJ1ZmZlciFcbiIpOworCQkJZ290byBmcmVlX3BhZ2VzOworCQl9CisJCXBhZ2VzX2FsbG9jYXRlZCsrOworCQlwYWdlID0gdmlydF90b19wYWdlKGFycmF5KTsKKwkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJnBhZ2VzKTsKKyNlbmRpZgorCX0KKworCS8qIE5vdyB0aGF0IHdlIHN1Y2Nlc3NmdWxseSBhbGxvY2F0ZSBhIHBhZ2UgcGVyIENQVSwgYWRkIHRoZW0gKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWRhdGEgPSBnbG9iYWxfdHJhY2UuZGF0YVtpXTsKKwkJcGFnZSA9IGxpc3RfZW50cnkocGFnZXMubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCWxpc3RfYWRkX3RhaWwoJnBhZ2UtPmxydSwgJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKwkJQ2xlYXJQYWdlTFJVKHBhZ2UpOworCisjaWZkZWYgQ09ORklHX1RSQUNFUl9NQVhfVFJBQ0UKKwkJZGF0YSA9IG1heF90ci5kYXRhW2ldOworCQlwYWdlID0gbGlzdF9lbnRyeShwYWdlcy5uZXh0LCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwkJbGlzdF9kZWxfaW5pdCgmcGFnZS0+bHJ1KTsKKwkJbGlzdF9hZGRfdGFpbCgmcGFnZS0+bHJ1LCAmZGF0YS0+dHJhY2VfcGFnZXMpOworCQlTZXRQYWdlTFJVKHBhZ2UpOworI2VuZGlmCisJfQorCXRyYWNpbmdfcGFnZXNfYWxsb2NhdGVkICs9IHBhZ2VzX2FsbG9jYXRlZDsKKwlnbG9iYWxfdHJhY2UuZW50cmllcyArPSBFTlRSSUVTX1BFUl9QQUdFOworCisJcmV0dXJuIDA7CisKKyBmcmVlX3BhZ2VzOgorCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCB0bXAsICZwYWdlcywgbHJ1KSB7CisJCWxpc3RfZGVsX2luaXQoJnBhZ2UtPmxydSk7CisJCV9fZnJlZV9wYWdlKHBhZ2UpOworCX0KKwlyZXR1cm4gLUVOT01FTTsKK30KKworc3RhdGljIGludCB0cmFjZV9mcmVlX3BhZ2Uodm9pZCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXN0cnVjdCBwYWdlICpwYWdlOworCXN0cnVjdCBsaXN0X2hlYWQgKnA7CisJaW50IGk7CisJaW50IHJldCA9IDA7CisKKwkvKiBmcmVlIG9uZSBwYWdlIGZyb20gZWFjaCBidWZmZXIgKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWRhdGEgPSBnbG9iYWxfdHJhY2UuZGF0YVtpXTsKKwkJcCA9IGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQ7CisJCWlmIChwID09ICZkYXRhLT50cmFjZV9wYWdlcykgeworCQkJLyogc2hvdWxkIG5ldmVyIGhhcHBlbiAqLworCQkJV0FSTl9PTigxKTsKKwkJCXRyYWNpbmdfZGlzYWJsZWQgPSAxOworCQkJcmV0ID0gLTE7CisJCQlicmVhazsKKwkJfQorCQlwYWdlID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwkJQ2xlYXJQYWdlTFJVKHBhZ2UpOworCQlsaXN0X2RlbCgmcGFnZS0+bHJ1KTsKKwkJdHJhY2luZ19wYWdlc19hbGxvY2F0ZWQtLTsKKwkJdHJhY2luZ19wYWdlc19hbGxvY2F0ZWQtLTsKKwkJX19mcmVlX3BhZ2UocGFnZSk7CisKKwkJdHJhY2luZ19yZXNldChkYXRhKTsKKworI2lmZGVmIENPTkZJR19UUkFDRVJfTUFYX1RSQUNFCisJCWRhdGEgPSBtYXhfdHIuZGF0YVtpXTsKKwkJcCA9IGRhdGEtPnRyYWNlX3BhZ2VzLm5leHQ7CisJCWlmIChwID09ICZkYXRhLT50cmFjZV9wYWdlcykgeworCQkJLyogc2hvdWxkIG5ldmVyIGhhcHBlbiAqLworCQkJV0FSTl9PTigxKTsKKwkJCXRyYWNpbmdfZGlzYWJsZWQgPSAxOworCQkJcmV0ID0gLTE7CisJCQlicmVhazsKKwkJfQorCQlwYWdlID0gbGlzdF9lbnRyeShwLCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwkJQ2xlYXJQYWdlTFJVKHBhZ2UpOworCQlsaXN0X2RlbCgmcGFnZS0+bHJ1KTsKKwkJX19mcmVlX3BhZ2UocGFnZSk7CisKKwkJdHJhY2luZ19yZXNldChkYXRhKTsKKyNlbmRpZgorCX0KKwlnbG9iYWxfdHJhY2UuZW50cmllcyAtPSBFTlRSSUVTX1BFUl9QQUdFOworCisJcmV0dXJuIHJldDsKK30KKworX19pbml0IHN0YXRpYyBpbnQgdHJhY2VyX2FsbG9jX2J1ZmZlcnModm9pZCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXZvaWQgKmFycmF5OworCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBwYWdlcyA9IDA7CisJaW50IHJldCA9IC1FTk9NRU07CisJaW50IGk7CisKKwkvKiBUT0RPOiBtYWtlIHRoZSBudW1iZXIgb2YgYnVmZmVycyBob3QgcGx1Z2dhYmxlIHdpdGggQ1BVUyAqLworCXRyYWNpbmdfbnJfYnVmZmVycyA9IG51bV9wb3NzaWJsZV9jcHVzKCk7CisJdHJhY2luZ19idWZmZXJfbWFzayA9IGNwdV9wb3NzaWJsZV9tYXA7CisKKwkvKiBBbGxvY2F0ZSB0aGUgZmlyc3QgcGFnZSBmb3IgYWxsIGJ1ZmZlcnMgKi8KKwlmb3JfZWFjaF90cmFjaW5nX2NwdShpKSB7CisJCWRhdGEgPSBnbG9iYWxfdHJhY2UuZGF0YVtpXSA9ICZwZXJfY3B1KGdsb2JhbF90cmFjZV9jcHUsIGkpOworCQltYXhfdHIuZGF0YVtpXSA9ICZwZXJfY3B1KG1heF9kYXRhLCBpKTsKKworCQlhcnJheSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOworCQlpZiAoYXJyYXkgPT0gTlVMTCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJ0cmFjZXI6IGZhaWxlZCB0byBhbGxvY2F0ZSBwYWdlIgorCQkJICAgICAgICJmb3IgdHJhY2UgYnVmZmVyIVxuIik7CisJCQlnb3RvIGZyZWVfYnVmZmVyczsKKwkJfQorCisJCS8qIHNldCB0aGUgYXJyYXkgdG8gdGhlIGxpc3QgKi8KKwkJSU5JVF9MSVNUX0hFQUQoJmRhdGEtPnRyYWNlX3BhZ2VzKTsKKwkJcGFnZSA9IHZpcnRfdG9fcGFnZShhcnJheSk7CisJCWxpc3RfYWRkKCZwYWdlLT5scnUsICZkYXRhLT50cmFjZV9wYWdlcyk7CisJCS8qIHVzZSB0aGUgTFJVIGZsYWcgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHdvIGJ1ZmZlcnMgKi8KKwkJQ2xlYXJQYWdlTFJVKHBhZ2UpOworCisJCWRhdGEtPmxvY2sgPSAocmF3X3NwaW5sb2NrX3QpX19SQVdfU1BJTl9MT0NLX1VOTE9DS0VEOworCQltYXhfdHIuZGF0YVtpXS0+bG9jayA9IChyYXdfc3BpbmxvY2tfdClfX1JBV19TUElOX0xPQ0tfVU5MT0NLRUQ7CisKKy8qIE9ubHkgYWxsb2NhdGUgaWYgd2UgYXJlIGFjdHVhbGx5IHVzaW5nIHRoZSBtYXggdHJhY2UgKi8KKyNpZmRlZiBDT05GSUdfVFJBQ0VSX01BWF9UUkFDRQorCQlhcnJheSA9ICh2b2lkICopX19nZXRfZnJlZV9wYWdlKEdGUF9LRVJORUwpOworCQlpZiAoYXJyYXkgPT0gTlVMTCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJ0cmFjZXI6IGZhaWxlZCB0byBhbGxvY2F0ZSBwYWdlIgorCQkJICAgICAgICJmb3IgdHJhY2UgYnVmZmVyIVxuIik7CisJCQlnb3RvIGZyZWVfYnVmZmVyczsKKwkJfQorCisJCUlOSVRfTElTVF9IRUFEKCZtYXhfdHIuZGF0YVtpXS0+dHJhY2VfcGFnZXMpOworCQlwYWdlID0gdmlydF90b19wYWdlKGFycmF5KTsKKwkJbGlzdF9hZGQoJnBhZ2UtPmxydSwgJm1heF90ci5kYXRhW2ldLT50cmFjZV9wYWdlcyk7CisJCVNldFBhZ2VMUlUocGFnZSk7CisjZW5kaWYKKwl9CisKKwkvKgorCSAqIFNpbmNlIHdlIGFsbG9jYXRlIGJ5IG9yZGVycyBvZiBwYWdlcywgd2UgbWF5IGJlIGFibGUgdG8KKwkgKiByb3VuZCB1cCBhIGJpdC4KKwkgKi8KKwlnbG9iYWxfdHJhY2UuZW50cmllcyA9IEVOVFJJRVNfUEVSX1BBR0U7CisJcGFnZXMrKzsKKworCXdoaWxlIChnbG9iYWxfdHJhY2UuZW50cmllcyA8IHRyYWNlX25yX2VudHJpZXMpIHsKKwkJaWYgKHRyYWNlX2FsbG9jX3BhZ2UoKSkKKwkJCWJyZWFrOworCQlwYWdlcysrOworCX0KKwltYXhfdHIuZW50cmllcyA9IGdsb2JhbF90cmFjZS5lbnRyaWVzOworCisJcHJfaW5mbygidHJhY2VyOiAlZCBwYWdlcyBhbGxvY2F0ZWQgZm9yICVsZCBlbnRyaWVzIG9mICVsZCBieXRlc1xuIiwKKwkJcGFnZXMsIHRyYWNlX25yX2VudHJpZXMsIChsb25nKVRSQUNFX0VOVFJZX1NJWkUpOworCXByX2luZm8oIiAgIGFjdHVhbCBlbnRyaWVzICVsZFxuIiwgZ2xvYmFsX3RyYWNlLmVudHJpZXMpOworCisJdHJhY2VyX2luaXRfZGVidWdmcygpOworCisJdHJhY2VfaW5pdF9jbWRsaW5lcygpOworCisJcmVnaXN0ZXJfdHJhY2VyKCZub190cmFjZXIpOworCWN1cnJlbnRfdHJhY2UgPSAmbm9fdHJhY2VyOworCisJLyogQWxsIHNlZW1zIE9LLCBlbmFibGUgdHJhY2luZyAqLworCWdsb2JhbF90cmFjZS5jdHJsID0gdHJhY2VyX2VuYWJsZWQ7CisJdHJhY2luZ19kaXNhYmxlZCA9IDA7CisKKwlyZXR1cm4gMDsKKworIGZyZWVfYnVmZmVyczoKKwlmb3IgKGktLSA7IGkgPj0gMDsgaS0tKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlLCAqdG1wOworCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhID0gZ2xvYmFsX3RyYWNlLmRhdGFbaV07CisKKwkJaWYgKGRhdGEpIHsKKwkJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwYWdlLCB0bXAsCisJCQkJCQkgJmRhdGEtPnRyYWNlX3BhZ2VzLCBscnUpIHsKKwkJCQlsaXN0X2RlbF9pbml0KCZwYWdlLT5scnUpOworCQkJCV9fZnJlZV9wYWdlKHBhZ2UpOworCQkJfQorCQl9CisKKyNpZmRlZiBDT05GSUdfVFJBQ0VSX01BWF9UUkFDRQorCQlkYXRhID0gbWF4X3RyLmRhdGFbaV07CisJCWlmIChkYXRhKSB7CisJCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGFnZSwgdG1wLAorCQkJCQkJICZkYXRhLT50cmFjZV9wYWdlcywgbHJ1KSB7CisJCQkJbGlzdF9kZWxfaW5pdCgmcGFnZS0+bHJ1KTsKKwkJCQlfX2ZyZWVfcGFnZShwYWdlKTsKKwkJCX0KKwkJfQorI2VuZGlmCisJfQorCXJldHVybiByZXQ7Cit9Citmc19pbml0Y2FsbCh0cmFjZXJfYWxsb2NfYnVmZmVycyk7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2UuaCBiL2tlcm5lbC90cmFjZS90cmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2OWY4NjcKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2UuaApAQCAtMCwwICsxLDMzOSBAQAorI2lmbmRlZiBfTElOVVhfS0VSTkVMX1RSQUNFX0gKKyNkZWZpbmUgX0xJTlVYX0tFUk5FTF9UUkFDRV9ICisKKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2luY2x1ZGUgPGxpbnV4L2Nsb2Nrc291cmNlLmg+CisjaW5jbHVkZSA8bGludXgvbW1pb3RyYWNlLmg+CisKK2VudW0gdHJhY2VfdHlwZSB7CisJX19UUkFDRV9GSVJTVF9UWVBFID0gMCwKKworCVRSQUNFX0ZOLAorCVRSQUNFX0NUWCwKKwlUUkFDRV9XQUtFLAorCVRSQUNFX1NUQUNLLAorCVRSQUNFX1NQRUNJQUwsCisJVFJBQ0VfTU1JT19SVywKKwlUUkFDRV9NTUlPX01BUCwKKworCV9fVFJBQ0VfTEFTVF9UWVBFCit9OworCisvKgorICogRnVuY3Rpb24gdHJhY2UgZW50cnkgLSBmdW5jdGlvbiBhZGRyZXNzIGFuZCBwYXJlbnQgZnVuY3Rpb24gYWRkcmVzOgorICovCitzdHJ1Y3QgZnRyYWNlX2VudHJ5IHsKKwl1bnNpZ25lZCBsb25nCQlpcDsKKwl1bnNpZ25lZCBsb25nCQlwYXJlbnRfaXA7Cit9OworCisvKgorICogQ29udGV4dCBzd2l0Y2ggdHJhY2UgZW50cnkgLSB3aGljaCB0YXNrIChhbmQgcHJpbykgd2Ugc3dpdGNoZWQgZnJvbS90bzoKKyAqLworc3RydWN0IGN0eF9zd2l0Y2hfZW50cnkgeworCXVuc2lnbmVkIGludAkJcHJldl9waWQ7CisJdW5zaWduZWQgY2hhcgkJcHJldl9wcmlvOworCXVuc2lnbmVkIGNoYXIJCXByZXZfc3RhdGU7CisJdW5zaWduZWQgaW50CQluZXh0X3BpZDsKKwl1bnNpZ25lZCBjaGFyCQluZXh0X3ByaW87CisJdW5zaWduZWQgY2hhcgkJbmV4dF9zdGF0ZTsKK307CisKKy8qCisgKiBTcGVjaWFsIChmcmVlLWZvcm0pIHRyYWNlIGVudHJ5OgorICovCitzdHJ1Y3Qgc3BlY2lhbF9lbnRyeSB7CisJdW5zaWduZWQgbG9uZwkJYXJnMTsKKwl1bnNpZ25lZCBsb25nCQlhcmcyOworCXVuc2lnbmVkIGxvbmcJCWFyZzM7Cit9OworCisvKgorICogU3RhY2stdHJhY2UgZW50cnk6CisgKi8KKworI2RlZmluZSBGVFJBQ0VfU1RBQ0tfRU5UUklFUwk4CisKK3N0cnVjdCBzdGFja19lbnRyeSB7CisJdW5zaWduZWQgbG9uZwkJY2FsbGVyW0ZUUkFDRV9TVEFDS19FTlRSSUVTXTsKK307CisKKy8qCisgKiBUaGUgdHJhY2UgZW50cnkgLSB0aGUgbW9zdCBiYXNpYyB1bml0IG9mIHRyYWNpbmcuIFRoaXMgaXMgd2hhdAorICogaXMgcHJpbnRlZCBpbiB0aGUgZW5kIGFzIGEgc2luZ2xlIGxpbmUgaW4gdGhlIHRyYWNlIG91dHB1dCwgc3VjaCBhczoKKyAqCisgKiAgICAgYmFzaC0xNTgxNiBbMDFdICAgMjM1LjE5NzU4NTogaWRsZV9jcHUgPC0gaXJxX2VudGVyCisgKi8KK3N0cnVjdCB0cmFjZV9lbnRyeSB7CisJY2hhcgkJCXR5cGU7CisJY2hhcgkJCWNwdTsKKwljaGFyCQkJZmxhZ3M7CisJY2hhcgkJCXByZWVtcHRfY291bnQ7CisJaW50CQkJcGlkOworCWN5Y2xlX3QJCQl0OworCXVuaW9uIHsKKwkJc3RydWN0IGZ0cmFjZV9lbnRyeQkJZm47CisJCXN0cnVjdCBjdHhfc3dpdGNoX2VudHJ5CQljdHg7CisJCXN0cnVjdCBzcGVjaWFsX2VudHJ5CQlzcGVjaWFsOworCQlzdHJ1Y3Qgc3RhY2tfZW50cnkJCXN0YWNrOworCQlzdHJ1Y3QgbW1pb3RyYWNlX3J3CQltbWlvcnc7CisJCXN0cnVjdCBtbWlvdHJhY2VfbWFwCQltbWlvbWFwOworCX07Cit9OworCisjZGVmaW5lIFRSQUNFX0VOVFJZX1NJWkUJc2l6ZW9mKHN0cnVjdCB0cmFjZV9lbnRyeSkKKworLyoKKyAqIFRoZSBDUFUgdHJhY2UgYXJyYXkgLSBpdCBjb25zaXN0cyBvZiB0aG91c2FuZHMgb2YgdHJhY2UgZW50cmllcworICogcGx1cyBzb21lIG90aGVyIGRlc2NyaXB0b3IgZGF0YTogKGZvciBleGFtcGxlIHdoaWNoIHRhc2sgc3RhcnRlZAorICogdGhlIHRyYWNlLCBldGMuKQorICovCitzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1IHsKKwlzdHJ1Y3QgbGlzdF9oZWFkCXRyYWNlX3BhZ2VzOworCWF0b21pY190CQlkaXNhYmxlZDsKKwlyYXdfc3BpbmxvY2tfdAkJbG9jazsKKwlzdHJ1Y3QgbG9ja19jbGFzc19rZXkJbG9ja19rZXk7CisKKwkvKiB0aGVzZSBmaWVsZHMgZ2V0IGNvcGllZCBpbnRvIG1heC10cmFjZTogKi8KKwl1bnNpZ25lZAkJdHJhY2VfaGVhZF9pZHg7CisJdW5zaWduZWQJCXRyYWNlX3RhaWxfaWR4OworCXZvaWQJCQkqdHJhY2VfaGVhZDsgLyogcHJvZHVjZXIgKi8KKwl2b2lkCQkJKnRyYWNlX3RhaWw7IC8qIGNvbnN1bWVyICovCisJdW5zaWduZWQgbG9uZwkJdHJhY2VfaWR4OworCXVuc2lnbmVkIGxvbmcJCW92ZXJydW47CisJdW5zaWduZWQgbG9uZwkJc2F2ZWRfbGF0ZW5jeTsKKwl1bnNpZ25lZCBsb25nCQljcml0aWNhbF9zdGFydDsKKwl1bnNpZ25lZCBsb25nCQljcml0aWNhbF9lbmQ7CisJdW5zaWduZWQgbG9uZwkJY3JpdGljYWxfc2VxdWVuY2U7CisJdW5zaWduZWQgbG9uZwkJbmljZTsKKwl1bnNpZ25lZCBsb25nCQlwb2xpY3k7CisJdW5zaWduZWQgbG9uZwkJcnRfcHJpb3JpdHk7CisJY3ljbGVfdAkJCXByZWVtcHRfdGltZXN0YW1wOworCXBpZF90CQkJcGlkOworCXVpZF90CQkJdWlkOworCWNoYXIJCQljb21tW1RBU0tfQ09NTV9MRU5dOworfTsKKworc3RydWN0IHRyYWNlX2l0ZXJhdG9yOworCisvKgorICogVGhlIHRyYWNlIGFycmF5IC0gYW4gYXJyYXkgb2YgcGVyLUNQVSB0cmFjZSBhcnJheXMuIFRoaXMgaXMgdGhlCisgKiBoaWdoZXN0IGxldmVsIGRhdGEgc3RydWN0dXJlIHRoYXQgaW5kaXZpZHVhbCB0cmFjZXJzIGRlYWwgd2l0aC4KKyAqIFRoZXkgaGF2ZSBvbi9vZmYgc3RhdGUgYXMgd2VsbDoKKyAqLworc3RydWN0IHRyYWNlX2FycmF5IHsKKwl1bnNpZ25lZCBsb25nCQllbnRyaWVzOworCWxvbmcJCQljdHJsOworCWludAkJCWNwdTsKKwljeWNsZV90CQkJdGltZV9zdGFydDsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QJKndhaXRlcjsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1CSpkYXRhW05SX0NQVVNdOworfTsKKworLyoKKyAqIEEgc3BlY2lmaWMgdHJhY2VyLCByZXByZXNlbnRlZCBieSBtZXRob2RzIHRoYXQgb3BlcmF0ZSBvbiBhIHRyYWNlIGFycmF5OgorICovCitzdHJ1Y3QgdHJhY2VyIHsKKwljb25zdCBjaGFyCQkqbmFtZTsKKwl2b2lkCQkJKCppbml0KShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKwl2b2lkCQkJKCpyZXNldCkoc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisJdm9pZAkJCSgqb3Blbikoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKTsKKwl2b2lkCQkJKCpwaXBlX29wZW4pKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJdm9pZAkJCSgqY2xvc2UpKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJdm9pZAkJCSgqc3RhcnQpKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcik7CisJdm9pZAkJCSgqc3RvcCkoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKTsKKwlzc2l6ZV90CQkJKCpyZWFkKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIsCisJCQkJCXN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJCQkJc2l6ZV90IGNudCwgbG9mZl90ICpwcG9zKTsKKwl2b2lkCQkJKCpjdHJsX3VwZGF0ZSkoc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TVEFSVFVQX1RFU1QKKwlpbnQJCQkoKnNlbGZ0ZXN0KShzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJICAgIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2VuZGlmCisJaW50CQkJKCpwcmludF9saW5lKShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpOworCXN0cnVjdCB0cmFjZXIJCSpuZXh0OworCWludAkJCXByaW50X21heDsKK307CisKK3N0cnVjdCB0cmFjZV9zZXEgeworCXVuc2lnbmVkIGNoYXIJCWJ1ZmZlcltQQUdFX1NJWkVdOworCXVuc2lnbmVkIGludAkJbGVuOworCXVuc2lnbmVkIGludAkJcmVhZHBvczsKK307CisKKy8qCisgKiBUcmFjZSBpdGVyYXRvciAtIHVzZWQgYnkgcHJpbnRvdXQgcm91dGluZXMgd2hvIHByZXNlbnQgdHJhY2UKKyAqIHJlc3VsdHMgdG8gdXNlcnMgYW5kIHdoaWNoIHJvdXRpbmVzIG1pZ2h0IHNsZWVwLCBldGM6CisgKi8KK3N0cnVjdCB0cmFjZV9pdGVyYXRvciB7CisJc3RydWN0IHRyYWNlX2FycmF5CSp0cjsKKwlzdHJ1Y3QgdHJhY2VyCQkqdHJhY2U7CisJdm9pZAkJCSpwcml2YXRlOworCWxvbmcJCQlsYXN0X292ZXJydW5bTlJfQ1BVU107CisJbG9uZwkJCW92ZXJydW5bTlJfQ1BVU107CisKKwkvKiBUaGUgYmVsb3cgaXMgemVyb2VkIG91dCBpbiBwaXBlX3JlYWQgKi8KKwlzdHJ1Y3QgdHJhY2Vfc2VxCXNlcTsKKwlzdHJ1Y3QgdHJhY2VfZW50cnkJKmVudDsKKwlpbnQJCQljcHU7CisKKwlzdHJ1Y3QgdHJhY2VfZW50cnkJKnByZXZfZW50OworCWludAkJCXByZXZfY3B1OworCisJdW5zaWduZWQgbG9uZwkJaXRlcl9mbGFnczsKKwlsb2ZmX3QJCQlwb3M7CisJdW5zaWduZWQgbG9uZwkJbmV4dF9pZHhbTlJfQ1BVU107CisJc3RydWN0IGxpc3RfaGVhZAkqbmV4dF9wYWdlW05SX0NQVVNdOworCXVuc2lnbmVkCQluZXh0X3BhZ2VfaWR4W05SX0NQVVNdOworCWxvbmcJCQlpZHg7Cit9OworCit2b2lkIHRyYWNpbmdfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSk7CitpbnQgdHJhY2luZ19vcGVuX2dlbmVyaWMoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOworc3RydWN0IGRlbnRyeSAqdHJhY2luZ19pbml0X2RlbnRyeSh2b2lkKTsKK3ZvaWQgaW5pdF90cmFjZXJfc3lzcHJvZl9kZWJ1Z2ZzKHN0cnVjdCBkZW50cnkgKmRfdHJhY2VyKTsKKwordm9pZCBmdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCSAgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJICAgIHVuc2lnbmVkIGxvbmcgaXAsCisJCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsCisJCQkgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7Cit2b2lkIHRyYWNpbmdfc2NoZWRfc3dpdGNoX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0LAorCQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3MpOwordm9pZCB0cmFjaW5nX3JlY29yZF9jbWRsaW5lKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKTsKKwordm9pZCB0cmFjaW5nX3NjaGVkX3dha2V1cF90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkJCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICp3YWtlZSwKKwkJCQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1ciwKKwkJCQl1bnNpZ25lZCBsb25nIGZsYWdzKTsKK3ZvaWQgdHJhY2Vfc3BlY2lhbChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkgICB1bnNpZ25lZCBsb25nIGFyZzEsCisJCSAgIHVuc2lnbmVkIGxvbmcgYXJnMiwKKwkJICAgdW5zaWduZWQgbG9uZyBhcmczKTsKK3ZvaWQgdHJhY2VfZnVuY3Rpb24oc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJICAgIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEsCisJCSAgICB1bnNpZ25lZCBsb25nIGlwLAorCQkgICAgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXAsCisJCSAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKKwordm9pZCB0cmFjaW5nX3N0YXJ0X2NtZGxpbmVfcmVjb3JkKHZvaWQpOwordm9pZCB0cmFjaW5nX3N0b3BfY21kbGluZV9yZWNvcmQodm9pZCk7CitpbnQgcmVnaXN0ZXJfdHJhY2VyKHN0cnVjdCB0cmFjZXIgKnR5cGUpOwordm9pZCB1bnJlZ2lzdGVyX3RyYWNlcihzdHJ1Y3QgdHJhY2VyICp0eXBlKTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnNlY3NfdG9fdXNlY3ModW5zaWduZWQgbG9uZyBuc2Vjcyk7CisKK2V4dGVybiB1bnNpZ25lZCBsb25nIHRyYWNpbmdfbWF4X2xhdGVuY3k7CitleHRlcm4gdW5zaWduZWQgbG9uZyB0cmFjaW5nX3RocmVzaDsKKwordm9pZCB1cGRhdGVfbWF4X3RyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY3B1KTsKK3ZvaWQgdXBkYXRlX21heF90cl9zaW5nbGUoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCSAgc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIGludCBjcHUpOworCitleHRlcm4gY3ljbGVfdCBmdHJhY2Vfbm93KGludCBjcHUpOworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQordm9pZCB0cmFjaW5nX3N0YXJ0X2Z1bmN0aW9uX3RyYWNlKHZvaWQpOwordm9pZCB0cmFjaW5nX3N0b3BfZnVuY3Rpb25fdHJhY2Uodm9pZCk7CisjZWxzZQorIyBkZWZpbmUgdHJhY2luZ19zdGFydF9mdW5jdGlvbl90cmFjZSgpCQlkbyB7IH0gd2hpbGUgKDApCisjIGRlZmluZSB0cmFjaW5nX3N0b3BfZnVuY3Rpb25fdHJhY2UoKQkJZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSCit0eXBlZGVmIHZvaWQKKygqdHJhY2VyX3N3aXRjaF9mdW5jX3QpKHZvaWQgKnByaXZhdGUsCisJCQl2b2lkICpfX3JxLAorCQkJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KTsKKworc3RydWN0IHRyYWNlcl9zd2l0Y2hfb3BzIHsKKwl0cmFjZXJfc3dpdGNoX2Z1bmNfdAkJZnVuYzsKKwl2b2lkCQkJCSpwcml2YXRlOworCXN0cnVjdCB0cmFjZXJfc3dpdGNoX29wcwkqbmV4dDsKK307CisKKyNlbmRpZiAvKiBDT05GSUdfQ09OVEVYVF9TV0lUQ0hfVFJBQ0VSICovCisKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19GVFJBQ0UKK2V4dGVybiB1bnNpZ25lZCBsb25nIGZ0cmFjZV91cGRhdGVfdG90X2NudDsKKyNkZWZpbmUgRFlOX0ZUUkFDRV9URVNUX05BTUUgdHJhY2Vfc2VsZnRlc3RfZHluYW1pY190ZXN0X2Z1bmMKK2V4dGVybiBpbnQgRFlOX0ZUUkFDRV9URVNUX05BTUUodm9pZCk7CisjZW5kaWYKKworI2lmZGVmIENPTkZJR19NTUlPVFJBQ0UKK2V4dGVybiB2b2lkIF9fdHJhY2VfbW1pb3RyYWNlX3J3KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSwKKwkJCQlzdHJ1Y3QgbW1pb3RyYWNlX3J3ICpydyk7CitleHRlcm4gdm9pZCBfX3RyYWNlX21taW90cmFjZV9tYXAoc3RydWN0IHRyYWNlX2FycmF5ICp0ciwKKwkJCQlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkJCXN0cnVjdCBtbWlvdHJhY2VfbWFwICptYXApOworI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NUQVJUVVBfVEVTVAorI2lmZGVmIENPTkZJR19GVFJBQ0UKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9mdW5jdGlvbihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJICAgc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfSVJRU09GRl9UUkFDRVIKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9pcnFzb2ZmKHN0cnVjdCB0cmFjZXIgKnRyYWNlLAorCQkJCQkgIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpOworI2VuZGlmCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitleHRlcm4gaW50IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfcHJlZW1wdG9mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJICAgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoQ09ORklHX0lSUVNPRkZfVFJBQ0VSKSAmJiBkZWZpbmVkKENPTkZJR19QUkVFTVBUX1RSQUNFUikKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9wcmVlbXB0aXJxc29mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwKKwkJCQkJCSBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19TQ0hFRF9UUkFDRVIKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF93YWtldXAoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVIKK2V4dGVybiBpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zY2hlZF9zd2l0Y2goc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICAgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19TWVNQUk9GX1RSQUNFUgorZXh0ZXJuIGludCB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3N5c3Byb2Yoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgICAgICBzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKTsKKyNlbmRpZgorI2VuZGlmIC8qIENPTkZJR19GVFJBQ0VfU1RBUlRVUF9URVNUICovCisKK2V4dGVybiB2b2lkICpoZWFkX3BhZ2Uoc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSk7CitleHRlcm4gaW50IHRyYWNlX3NlcV9wcmludGYoc3RydWN0IHRyYWNlX3NlcSAqcywgY29uc3QgY2hhciAqZm10LCAuLi4pOworZXh0ZXJuIHNzaXplX3QgdHJhY2Vfc2VxX3RvX3VzZXIoc3RydWN0IHRyYWNlX3NlcSAqcywgY2hhciBfX3VzZXIgKnVidWYsCisJCQkJIHNpemVfdCBjbnQpOworZXh0ZXJuIGxvbmcgbnMydXNlY3MoY3ljbGVfdCBuc2VjKTsKKworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgdHJhY2VfZmxhZ3M7CisKKy8qCisgKiB0cmFjZV9pdGVyYXRvcl9mbGFncyBpcyBhbiBlbnVtZXJhdGlvbiB0aGF0IGRlZmluZXMgYml0CisgKiBwb3NpdGlvbnMgaW50byB0cmFjZV9mbGFncyB0aGF0IGNvbnRyb2xzIHRoZSBvdXRwdXQuCisgKgorICogTk9URTogVGhlc2UgYml0cyBtdXN0IG1hdGNoIHRoZSB0cmFjZV9vcHRpb25zIGFycmF5IGluCisgKiAgICAgICB0cmFjZS5jLgorICovCitlbnVtIHRyYWNlX2l0ZXJhdG9yX2ZsYWdzIHsKKwlUUkFDRV9JVEVSX1BSSU5UX1BBUkVOVAkJPSAweDAxLAorCVRSQUNFX0lURVJfU1lNX09GRlNFVAkJPSAweDAyLAorCVRSQUNFX0lURVJfU1lNX0FERFIJCT0gMHgwNCwKKwlUUkFDRV9JVEVSX1ZFUkJPU0UJCT0gMHgwOCwKKwlUUkFDRV9JVEVSX1JBVwkJCT0gMHgxMCwKKwlUUkFDRV9JVEVSX0hFWAkJCT0gMHgyMCwKKwlUUkFDRV9JVEVSX0JJTgkJCT0gMHg0MCwKKwlUUkFDRV9JVEVSX0JMT0NLCQk9IDB4ODAsCisJVFJBQ0VfSVRFUl9TVEFDS1RSQUNFCQk9IDB4MTAwLAorCVRSQUNFX0lURVJfU0NIRURfVFJFRQkJPSAweDIwMCwKK307CisKKyNlbmRpZiAvKiBfTElOVVhfS0VSTkVMX1RSQUNFX0ggKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9mdW5jdGlvbnMuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9mdW5jdGlvbnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTIxNDQ4Ci0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX2Z1bmN0aW9ucy5jCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiByaW5nIGJ1ZmZlciBiYXNlZCBmdW5jdGlvbiB0cmFjZXIKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqCisgKiBCYXNlZCBvbiBjb2RlIGZyb20gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworI2luY2x1ZGUgPGxpbnV4L2RlYnVnZnMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyB2b2lkIGZ1bmN0aW9uX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaW50IGNwdTsKKworCXRyLT50aW1lX3N0YXJ0ID0gZnRyYWNlX25vdyh0ci0+Y3B1KTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworfQorCitzdGF0aWMgdm9pZCBzdGFydF9mdW5jdGlvbl90cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXRyLT5jcHUgPSBnZXRfY3B1KCk7CisJZnVuY3Rpb25fcmVzZXQodHIpOworCXB1dF9jcHUoKTsKKworCXRyYWNpbmdfc3RhcnRfY21kbGluZV9yZWNvcmQoKTsKKwl0cmFjaW5nX3N0YXJ0X2Z1bmN0aW9uX3RyYWNlKCk7Cit9CisKK3N0YXRpYyB2b2lkIHN0b3BfZnVuY3Rpb25fdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0cmFjaW5nX3N0b3BfZnVuY3Rpb25fdHJhY2UoKTsKKwl0cmFjaW5nX3N0b3BfY21kbGluZV9yZWNvcmQoKTsKK30KKworc3RhdGljIHZvaWQgZnVuY3Rpb25fdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfZnVuY3Rpb25fdHJhY2UodHIpOworfQorCitzdGF0aWMgdm9pZCBmdW5jdGlvbl90cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWlmICh0ci0+Y3RybCkKKwkJc3RvcF9mdW5jdGlvbl90cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIGZ1bmN0aW9uX3RyYWNlX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9mdW5jdGlvbl90cmFjZSh0cik7CisJZWxzZQorCQlzdG9wX2Z1bmN0aW9uX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgZnVuY3Rpb25fdHJhY2UgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJICAgICA9ICJmdHJhY2UiLAorCS5pbml0CSAgICAgPSBmdW5jdGlvbl90cmFjZV9pbml0LAorCS5yZXNldAkgICAgID0gZnVuY3Rpb25fdHJhY2VfcmVzZXQsCisJLmN0cmxfdXBkYXRlID0gZnVuY3Rpb25fdHJhY2VfY3RybF91cGRhdGUsCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TRUxGVEVTVAorCS5zZWxmdGVzdCAgICA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZnVuY3Rpb24sCisjZW5kaWYKK307CisKK3N0YXRpYyBfX2luaXQgaW50IGluaXRfZnVuY3Rpb25fdHJhY2Uodm9pZCkKK3sKKwlyZXR1cm4gcmVnaXN0ZXJfdHJhY2VyKCZmdW5jdGlvbl90cmFjZSk7Cit9CisKK2RldmljZV9pbml0Y2FsbChpbml0X2Z1bmN0aW9uX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9pcnFzb2ZmLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2VfaXJxc29mZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMWQ2ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2VfaXJxc29mZi5jCkBAIC0wLDAgKzEsNDg2IEBACisvKgorICogdHJhY2UgaXJxcyBvZmYgY3JpdGljYWxsIHRpbWluZ3MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOCBTdGV2ZW4gUm9zdGVkdCA8c3Jvc3RlZHRAcmVkaGF0LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KKyAqCisgKiBGcm9tIGNvZGUgaW4gdGhlIGxhdGVuY3lfdHJhY2VyLCB0aGF0IGlzOgorICoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNiBJbmdvIE1vbG5hcgorICogIENvcHlyaWdodCAoQykgMjAwNCBXaWxsaWFtIExlZSBJcndpbiBJSUkKKyAqLworI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheQkJKmlycXNvZmZfdHJhY2UgX19yZWFkX21vc3RseTsKK3N0YXRpYyBpbnQJCQkJdHJhY2VyX2VuYWJsZWQgX19yZWFkX21vc3RseTsKKworc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgdHJhY2luZ19jcHUpOworCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKG1heF90cmFjZV9sb2NrKTsKKworZW51bSB7CisJVFJBQ0VSX0lSUVNfT0ZGCQk9ICgxIDw8IDEpLAorCVRSQUNFUl9QUkVFTVBUX09GRgk9ICgxIDw8IDIpLAorfTsKKworc3RhdGljIGludCB0cmFjZV90eXBlIF9fcmVhZF9tb3N0bHk7CisKKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9UUkFDRVIKK3N0YXRpYyBpbmxpbmUgaW50CitwcmVlbXB0X3RyYWNlKHZvaWQpCit7CisJcmV0dXJuICgodHJhY2VfdHlwZSAmIFRSQUNFUl9QUkVFTVBUX09GRikgJiYgcHJlZW1wdF9jb3VudCgpKTsKK30KKyNlbHNlCisjIGRlZmluZSBwcmVlbXB0X3RyYWNlKCkgKDApCisjZW5kaWYKKworI2lmZGVmIENPTkZJR19JUlFTT0ZGX1RSQUNFUgorc3RhdGljIGlubGluZSBpbnQKK2lycV90cmFjZSh2b2lkKQoreworCXJldHVybiAoKHRyYWNlX3R5cGUgJiBUUkFDRVJfSVJRU19PRkYpICYmCisJCWlycXNfZGlzYWJsZWQoKSk7Cit9CisjZWxzZQorIyBkZWZpbmUgaXJxX3RyYWNlKCkgKDApCisjZW5kaWYKKworLyoKKyAqIFNlcXVlbmNlIGNvdW50IC0gd2UgcmVjb3JkIGl0IHdoZW4gc3RhcnRpbmcgYSBtZWFzdXJlbWVudCBhbmQKKyAqIHNraXAgdGhlIGxhdGVuY3kgaWYgdGhlIHNlcXVlbmNlIGhhcyBjaGFuZ2VkIC0gc29tZSBvdGhlciBzZWN0aW9uCisgKiBkaWQgYSBtYXhpbXVtIGFuZCBjb3VsZCBkaXN0dXJiIG91ciBtZWFzdXJlbWVudCB3aXRoIHNlcmlhbCBjb25zb2xlCisgKiBwcmludG91dHMsIGV0Yy4gVHJ1bHkgY29pbmNpZGluZyBtYXhpbXVtIGxhdGVuY2llcyBzaG91bGQgYmUgcmFyZQorICogYW5kIHdoYXQgaGFwcGVucyB0b2dldGhlciBoYXBwZW5zIHNlcGFyYXRlbHkgYXMgd2VsbCwgc28gdGhpcyBkb2VzbnQKKyAqIGRlY3JlYXNlIHRoZSB2YWxpZGl0eSBvZiB0aGUgbWF4aW11bSBmb3VuZDoKKyAqLworc3RhdGljIF9fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wCXVuc2lnbmVkIGxvbmcgbWF4X3NlcXVlbmNlOworCisjaWZkZWYgQ09ORklHX0ZUUkFDRQorLyoKKyAqIGlycXNvZmYgdXNlcyBpdHMgb3duIHRyYWNlciBmdW5jdGlvbiB0byBrZWVwIHRoZSBvdmVyaGVhZCBkb3duOgorICovCitzdGF0aWMgdm9pZAoraXJxc29mZl90cmFjZXJfY2FsbCh1bnNpZ25lZCBsb25nIGlwLCB1bnNpZ25lZCBsb25nIHBhcmVudF9pcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gaXJxc29mZl90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgY3B1OworCisJLyoKKwkgKiBEb2VzIG5vdCBtYXR0ZXIgaWYgd2UgcHJlZW1wdC4gV2UgdGVzdCB0aGUgZmxhZ3MKKwkgKiBhZnRlcndhcmQsIHRvIHNlZSBpZiBpcnFzIGFyZSBkaXNhYmxlZCBvciBub3QuCisJICogSWYgd2UgcHJlZW1wdCBhbmQgZ2V0IGEgZmFsc2UgcG9zaXRpdmUsIHRoZSBmbGFncworCSAqIHRlc3Qgd2lsbCBmYWlsLgorCSAqLworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJaWYgKGxpa2VseSghcGVyX2NwdSh0cmFjaW5nX2NwdSwgY3B1KSkpCisJCXJldHVybjsKKworCWxvY2FsX3NhdmVfZmxhZ3MoZmxhZ3MpOworCS8qIHNsaWdodCBjaGFuY2UgdG8gZ2V0IGEgZmFsc2UgcG9zaXRpdmUgb24gdHJhY2luZ19jcHUgKi8KKwlpZiAoIWlycXNfZGlzYWJsZWRfZmxhZ3MoZmxhZ3MpKQorCQlyZXR1cm47CisKKwlkYXRhID0gdHItPmRhdGFbY3B1XTsKKwlkaXNhYmxlZCA9IGF0b21pY19pbmNfcmV0dXJuKCZkYXRhLT5kaXNhYmxlZCk7CisKKwlpZiAobGlrZWx5KGRpc2FibGVkID09IDEpKQorCQl0cmFjZV9mdW5jdGlvbih0ciwgZGF0YSwgaXAsIHBhcmVudF9pcCwgZmxhZ3MpOworCisJYXRvbWljX2RlYygmZGF0YS0+ZGlzYWJsZWQpOworfQorCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgdHJhY2Vfb3BzIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gaXJxc29mZl90cmFjZXJfY2FsbCwKK307CisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisvKgorICogU2hvdWxkIHRoaXMgbmV3IGxhdGVuY3kgYmUgcmVwb3J0ZWQvcmVjb3JkZWQ/CisgKi8KK3N0YXRpYyBpbnQgcmVwb3J0X2xhdGVuY3koY3ljbGVfdCBkZWx0YSkKK3sKKwlpZiAodHJhY2luZ190aHJlc2gpIHsKKwkJaWYgKGRlbHRhIDwgdHJhY2luZ190aHJlc2gpCisJCQlyZXR1cm4gMDsKKwl9IGVsc2UgeworCQlpZiAoZGVsdGEgPD0gdHJhY2luZ19tYXhfbGF0ZW5jeSkKKwkJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQKK2NoZWNrX2NyaXRpY2FsX3RpbWluZyhzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLAorCQkgICAgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhLAorCQkgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9pcCwKKwkJICAgICAgaW50IGNwdSkKK3sKKwl1bnNpZ25lZCBsb25nIGxhdGVuY3ksIHQwLCB0MTsKKwljeWNsZV90IFQwLCBUMSwgZGVsdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCS8qCisJICogdXNlY3MgY29udmVyc2lvbiBpcyBzbG93IHNvIHdlIHRyeSB0byBkZWxheSB0aGUgY29udmVyc2lvbgorCSAqIGFzIGxvbmcgYXMgcG9zc2libGU6CisJICovCisJVDAgPSBkYXRhLT5wcmVlbXB0X3RpbWVzdGFtcDsKKwlUMSA9IGZ0cmFjZV9ub3coY3B1KTsKKwlkZWx0YSA9IFQxLVQwOworCisJbG9jYWxfc2F2ZV9mbGFncyhmbGFncyk7CisKKwlpZiAoIXJlcG9ydF9sYXRlbmN5KGRlbHRhKSkKKwkJZ290byBvdXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmbWF4X3RyYWNlX2xvY2ssIGZsYWdzKTsKKworCS8qIGNoZWNrIGlmIHdlIGFyZSBzdGlsbCB0aGUgbWF4IGxhdGVuY3kgKi8KKwlpZiAoIXJlcG9ydF9sYXRlbmN5KGRlbHRhKSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIENBTExFUl9BRERSMCwgcGFyZW50X2lwLCBmbGFncyk7CisKKwlsYXRlbmN5ID0gbnNlY3NfdG9fdXNlY3MoZGVsdGEpOworCisJaWYgKGRhdGEtPmNyaXRpY2FsX3NlcXVlbmNlICE9IG1heF9zZXF1ZW5jZSkKKwkJZ290byBvdXRfdW5sb2NrOworCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IGRlbHRhOworCXQwID0gbnNlY3NfdG9fdXNlY3MoVDApOworCXQxID0gbnNlY3NfdG9fdXNlY3MoVDEpOworCisJZGF0YS0+Y3JpdGljYWxfZW5kID0gcGFyZW50X2lwOworCisJdXBkYXRlX21heF90cl9zaW5nbGUodHIsIGN1cnJlbnQsIGNwdSk7CisKKwltYXhfc2VxdWVuY2UrKzsKKworb3V0X3VubG9jazoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZtYXhfdHJhY2VfbG9jaywgZmxhZ3MpOworCitvdXQ6CisJZGF0YS0+Y3JpdGljYWxfc2VxdWVuY2UgPSBtYXhfc2VxdWVuY2U7CisJZGF0YS0+cHJlZW1wdF90aW1lc3RhbXAgPSBmdHJhY2Vfbm93KGNwdSk7CisJdHJhY2luZ19yZXNldChkYXRhKTsKKwl0cmFjZV9mdW5jdGlvbih0ciwgZGF0YSwgQ0FMTEVSX0FERFIwLCBwYXJlbnRfaXAsIGZsYWdzKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzdGFydF9jcml0aWNhbF90aW1pbmcodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJaW50IGNwdTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gaXJxc29mZl90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAobGlrZWx5KCF0cmFjZXJfZW5hYmxlZCkpCisJCXJldHVybjsKKworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisKKwlpZiAocGVyX2NwdSh0cmFjaW5nX2NwdSwgY3B1KSkKKwkJcmV0dXJuOworCisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisKKwlpZiAodW5saWtlbHkoIWRhdGEpIHx8IGF0b21pY19yZWFkKCZkYXRhLT5kaXNhYmxlZCkpCisJCXJldHVybjsKKworCWF0b21pY19pbmMoJmRhdGEtPmRpc2FibGVkKTsKKworCWRhdGEtPmNyaXRpY2FsX3NlcXVlbmNlID0gbWF4X3NlcXVlbmNlOworCWRhdGEtPnByZWVtcHRfdGltZXN0YW1wID0gZnRyYWNlX25vdyhjcHUpOworCWRhdGEtPmNyaXRpY2FsX3N0YXJ0ID0gcGFyZW50X2lwID8gOiBpcDsKKwl0cmFjaW5nX3Jlc2V0KGRhdGEpOworCisJbG9jYWxfc2F2ZV9mbGFncyhmbGFncyk7CisKKwl0cmFjZV9mdW5jdGlvbih0ciwgZGF0YSwgaXAsIHBhcmVudF9pcCwgZmxhZ3MpOworCisJcGVyX2NwdSh0cmFjaW5nX2NwdSwgY3B1KSA9IDE7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RvcF9jcml0aWNhbF90aW1pbmcodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJaW50IGNwdTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gaXJxc29mZl90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCS8qIEFsd2F5cyBjbGVhciB0aGUgdHJhY2luZyBjcHUgb24gc3RvcHBpbmcgdGhlIHRyYWNlICovCisJaWYgKHVubGlrZWx5KHBlcl9jcHUodHJhY2luZ19jcHUsIGNwdSkpKQorCQlwZXJfY3B1KHRyYWNpbmdfY3B1LCBjcHUpID0gMDsKKwllbHNlCisJCXJldHVybjsKKworCWlmICghdHJhY2VyX2VuYWJsZWQpCisJCXJldHVybjsKKworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCisJaWYgKHVubGlrZWx5KCFkYXRhKSB8fCB1bmxpa2VseSghaGVhZF9wYWdlKGRhdGEpKSB8fAorCSAgICAhZGF0YS0+Y3JpdGljYWxfc3RhcnQgfHwgYXRvbWljX3JlYWQoJmRhdGEtPmRpc2FibGVkKSkKKwkJcmV0dXJuOworCisJYXRvbWljX2luYygmZGF0YS0+ZGlzYWJsZWQpOworCisJbG9jYWxfc2F2ZV9mbGFncyhmbGFncyk7CisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKwljaGVja19jcml0aWNhbF90aW1pbmcodHIsIGRhdGEsIHBhcmVudF9pcCA/IDogaXAsIGNwdSk7CisJZGF0YS0+Y3JpdGljYWxfc3RhcnQgPSAwOworCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKK30KKworLyogc3RhcnQgYW5kIHN0b3AgY3JpdGljYWwgdGltaW5ncyB1c2VkIHRvIGZvciBzdG9wcGFnZSAoaW4gaWRsZSkgKi8KK3ZvaWQgc3RhcnRfY3JpdGljYWxfdGltaW5ncyh2b2lkKQoreworCWlmIChwcmVlbXB0X3RyYWNlKCkgfHwgaXJxX3RyYWNlKCkpCisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZyhDQUxMRVJfQUREUjAsIENBTExFUl9BRERSMSk7Cit9CisKK3ZvaWQgc3RvcF9jcml0aWNhbF90aW1pbmdzKHZvaWQpCit7CisJaWYgKHByZWVtcHRfdHJhY2UoKSB8fCBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBDQUxMRVJfQUREUjEpOworfQorCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCisjaWZkZWYgQ09ORklHX1BST1ZFX0xPQ0tJTkcKK3ZvaWQgdGltZV9oYXJkaXJxc19vbih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKQoreworCWlmICghcHJlZW1wdF90cmFjZSgpICYmIGlycV90cmFjZSgpKQorCQlzdG9wX2NyaXRpY2FsX3RpbWluZyhhMCwgYTEpOworfQorCit2b2lkIHRpbWVfaGFyZGlycXNfb2ZmKHVuc2lnbmVkIGxvbmcgYTAsIHVuc2lnbmVkIGxvbmcgYTEpCit7CisJaWYgKCFwcmVlbXB0X3RyYWNlKCkgJiYgaXJxX3RyYWNlKCkpCisJCXN0YXJ0X2NyaXRpY2FsX3RpbWluZyhhMCwgYTEpOworfQorCisjZWxzZSAvKiAhQ09ORklHX1BST1ZFX0xPQ0tJTkcgKi8KKworLyoKKyAqIFN0dWJzOgorICovCisKK3ZvaWQgZWFybHlfYm9vdF9pcnFzX29mZih2b2lkKQoreworfQorCit2b2lkIGVhcmx5X2Jvb3RfaXJxc19vbih2b2lkKQoreworfQorCit2b2lkIHRyYWNlX3NvZnRpcnFzX29uKHVuc2lnbmVkIGxvbmcgaXApCit7Cit9CisKK3ZvaWQgdHJhY2Vfc29mdGlycXNfb2ZmKHVuc2lnbmVkIGxvbmcgaXApCit7Cit9CisKK2lubGluZSB2b2lkIHByaW50X2lycXRyYWNlX2V2ZW50cyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnIpCit7Cit9CisKKy8qCisgKiBXZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIGhhcmRpcnEgb24vb2ZmIGV2ZW50czoKKyAqLwordm9pZCB0cmFjZV9oYXJkaXJxc19vbih2b2lkKQoreworCWlmICghcHJlZW1wdF90cmFjZSgpICYmIGlycV90cmFjZSgpKQorCQlzdG9wX2NyaXRpY2FsX3RpbWluZyhDQUxMRVJfQUREUjAsIENBTExFUl9BRERSMSk7Cit9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29uKTsKKwordm9pZCB0cmFjZV9oYXJkaXJxc19vZmYodm9pZCkKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RhcnRfY3JpdGljYWxfdGltaW5nKENBTExFUl9BRERSMCwgQ0FMTEVSX0FERFIxKTsKK30KK0VYUE9SVF9TWU1CT0wodHJhY2VfaGFyZGlycXNfb2ZmKTsKKwordm9pZCB0cmFjZV9oYXJkaXJxc19vbl9jYWxsZXIodW5zaWduZWQgbG9uZyBjYWxsZXJfYWRkcikKK3sKKwlpZiAoIXByZWVtcHRfdHJhY2UoKSAmJiBpcnFfdHJhY2UoKSkKKwkJc3RvcF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBjYWxsZXJfYWRkcik7Cit9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29uX2NhbGxlcik7CisKK3ZvaWQgdHJhY2VfaGFyZGlycXNfb2ZmX2NhbGxlcih1bnNpZ25lZCBsb25nIGNhbGxlcl9hZGRyKQoreworCWlmICghcHJlZW1wdF90cmFjZSgpICYmIGlycV90cmFjZSgpKQorCQlzdGFydF9jcml0aWNhbF90aW1pbmcoQ0FMTEVSX0FERFIwLCBjYWxsZXJfYWRkcik7Cit9CitFWFBPUlRfU1lNQk9MKHRyYWNlX2hhcmRpcnFzX29mZl9jYWxsZXIpOworCisjZW5kaWYgLyogQ09ORklHX1BST1ZFX0xPQ0tJTkcgKi8KKyNlbmRpZiAvKiAgQ09ORklHX0lSUVNPRkZfVFJBQ0VSICovCisKKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9UUkFDRVIKK3ZvaWQgdHJhY2VfcHJlZW1wdF9vbih1bnNpZ25lZCBsb25nIGEwLCB1bnNpZ25lZCBsb25nIGExKQoreworCXN0b3BfY3JpdGljYWxfdGltaW5nKGEwLCBhMSk7Cit9CisKK3ZvaWQgdHJhY2VfcHJlZW1wdF9vZmYodW5zaWduZWQgbG9uZyBhMCwgdW5zaWduZWQgbG9uZyBhMSkKK3sKKwlzdGFydF9jcml0aWNhbF90aW1pbmcoYTAsIGExKTsKK30KKyNlbmRpZiAvKiBDT05GSUdfUFJFRU1QVF9UUkFDRVIgKi8KKworc3RhdGljIHZvaWQgc3RhcnRfaXJxc29mZl90cmFjZXIoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlyZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7CisJdHJhY2VyX2VuYWJsZWQgPSAxOworfQorCitzdGF0aWMgdm9pZCBzdG9wX2lycXNvZmZfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCXVucmVnaXN0ZXJfZnRyYWNlX2Z1bmN0aW9uKCZ0cmFjZV9vcHMpOworfQorCitzdGF0aWMgdm9pZCBfX2lycXNvZmZfdHJhY2VyX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpcnFzb2ZmX3RyYWNlID0gdHI7CisJLyogbWFrZSBzdXJlIHRoYXQgdGhlIHRyYWNlciBpcyB2aXNpYmxlICovCisJc21wX3dtYigpOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9pcnFzb2ZmX3RyYWNlcih0cik7Cit9CisKK3N0YXRpYyB2b2lkIGlycXNvZmZfdHJhY2VyX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdG9wX2lycXNvZmZfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfY3RybF91cGRhdGUoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X2lycXNvZmZfdHJhY2VyKHRyKTsKKwllbHNlCisJCXN0b3BfaXJxc29mZl90cmFjZXIodHIpOworfQorCitzdGF0aWMgdm9pZCBpcnFzb2ZmX3RyYWNlcl9vcGVuKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwkvKiBzdG9wIHRoZSB0cmFjZSB3aGlsZSBkdW1waW5nICovCisJaWYgKGl0ZXItPnRyLT5jdHJsKQorCQlzdG9wX2lycXNvZmZfdHJhY2VyKGl0ZXItPnRyKTsKK30KKworc3RhdGljIHZvaWQgaXJxc29mZl90cmFjZXJfY2xvc2Uoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RhcnRfaXJxc29mZl90cmFjZXIoaXRlci0+dHIpOworfQorCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCitzdGF0aWMgdm9pZCBpcnFzb2ZmX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdHJhY2VfdHlwZSA9IFRSQUNFUl9JUlFTX09GRjsKKworCV9faXJxc29mZl90cmFjZXJfaW5pdCh0cik7Cit9CitzdGF0aWMgc3RydWN0IHRyYWNlciBpcnFzb2ZmX3RyYWNlciBfX3JlYWRfbW9zdGx5ID0KK3sKKwkubmFtZQkJPSAiaXJxc29mZiIsCisJLmluaXQJCT0gaXJxc29mZl90cmFjZXJfaW5pdCwKKwkucmVzZXQJCT0gaXJxc29mZl90cmFjZXJfcmVzZXQsCisJLm9wZW4JCT0gaXJxc29mZl90cmFjZXJfb3BlbiwKKwkuY2xvc2UJCT0gaXJxc29mZl90cmFjZXJfY2xvc2UsCisJLmN0cmxfdXBkYXRlCT0gaXJxc29mZl90cmFjZXJfY3RybF91cGRhdGUsCisJLnByaW50X21heAk9IDEsCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TRUxGVEVTVAorCS5zZWxmdGVzdCAgICA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfaXJxc29mZiwKKyNlbmRpZgorfTsKKyMgZGVmaW5lIHJlZ2lzdGVyX2lycXNvZmYodHJhY2UpIHJlZ2lzdGVyX3RyYWNlcigmdHJhY2UpCisjZWxzZQorIyBkZWZpbmUgcmVnaXN0ZXJfaXJxc29mZih0cmFjZSkgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfUFJFRU1QVF9UUkFDRVIKK3N0YXRpYyB2b2lkIHByZWVtcHRvZmZfdHJhY2VyX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0cmFjZV90eXBlID0gVFJBQ0VSX1BSRUVNUFRfT0ZGOworCisJX19pcnFzb2ZmX3RyYWNlcl9pbml0KHRyKTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgcHJlZW1wdG9mZl90cmFjZXIgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gInByZWVtcHRvZmYiLAorCS5pbml0CQk9IHByZWVtcHRvZmZfdHJhY2VyX2luaXQsCisJLnJlc2V0CQk9IGlycXNvZmZfdHJhY2VyX3Jlc2V0LAorCS5vcGVuCQk9IGlycXNvZmZfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IGlycXNvZmZfdHJhY2VyX2Nsb3NlLAorCS5jdHJsX3VwZGF0ZQk9IGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlLAorCS5wcmludF9tYXgJPSAxLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRvZmYsCisjZW5kaWYKK307CisjIGRlZmluZSByZWdpc3Rlcl9wcmVlbXB0b2ZmKHRyYWNlKSByZWdpc3Rlcl90cmFjZXIoJnRyYWNlKQorI2Vsc2UKKyMgZGVmaW5lIHJlZ2lzdGVyX3ByZWVtcHRvZmYodHJhY2UpIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChDT05GSUdfSVJRU09GRl9UUkFDRVIpICYmIFwKKwlkZWZpbmVkKENPTkZJR19QUkVFTVBUX1RSQUNFUikKKworc3RhdGljIHZvaWQgcHJlZW1wdGlycXNvZmZfdHJhY2VyX2luaXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0cmFjZV90eXBlID0gVFJBQ0VSX0lSUVNfT0ZGIHwgVFJBQ0VSX1BSRUVNUFRfT0ZGOworCisJX19pcnFzb2ZmX3RyYWNlcl9pbml0KHRyKTsKK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgcHJlZW1wdGlycXNvZmZfdHJhY2VyIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJwcmVlbXB0aXJxc29mZiIsCisJLmluaXQJCT0gcHJlZW1wdGlycXNvZmZfdHJhY2VyX2luaXQsCisJLnJlc2V0CQk9IGlycXNvZmZfdHJhY2VyX3Jlc2V0LAorCS5vcGVuCQk9IGlycXNvZmZfdHJhY2VyX29wZW4sCisJLmNsb3NlCQk9IGlycXNvZmZfdHJhY2VyX2Nsb3NlLAorCS5jdHJsX3VwZGF0ZQk9IGlycXNvZmZfdHJhY2VyX2N0cmxfdXBkYXRlLAorCS5wcmludF9tYXgJPSAxLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3ByZWVtcHRpcnFzb2ZmLAorI2VuZGlmCit9OworCisjIGRlZmluZSByZWdpc3Rlcl9wcmVlbXB0aXJxc29mZih0cmFjZSkgcmVnaXN0ZXJfdHJhY2VyKCZ0cmFjZSkKKyNlbHNlCisjIGRlZmluZSByZWdpc3Rlcl9wcmVlbXB0aXJxc29mZih0cmFjZSkgZG8geyB9IHdoaWxlICgwKQorI2VuZGlmCisKK19faW5pdCBzdGF0aWMgaW50IGluaXRfaXJxc29mZl90cmFjZXIodm9pZCkKK3sKKwlyZWdpc3Rlcl9pcnFzb2ZmKGlycXNvZmZfdHJhY2VyKTsKKwlyZWdpc3Rlcl9wcmVlbXB0b2ZmKHByZWVtcHRvZmZfdHJhY2VyKTsKKwlyZWdpc3Rlcl9wcmVlbXB0aXJxc29mZihwcmVlbXB0aXJxc29mZl90cmFjZXIpOworCisJcmV0dXJuIDA7Cit9CitkZXZpY2VfaW5pdGNhbGwoaW5pdF9pcnFzb2ZmX3RyYWNlcik7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2VfbW1pb3RyYWNlLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2VfbW1pb3RyYWNlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEzZGMxOQotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9tbWlvdHJhY2UuYwpAQCAtMCwwICsxLDI5NSBAQAorLyoKKyAqIE1lbW9yeSBtYXBwZWQgSS9PIHRyYWNpbmcKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggUGVra2EgUGFhbGFuZW4gPHBxQGlraS5maT4KKyAqLworCisjZGVmaW5lIERFQlVHIDEKKworI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21taW90cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3BjaS5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKworc3RydWN0IGhlYWRlcl9pdGVyIHsKKwlzdHJ1Y3QgcGNpX2RldiAqZGV2OworfTsKKworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheSAqbW1pb190cmFjZV9hcnJheTsKK3N0YXRpYyBib29sIG92ZXJydW5fZGV0ZWN0ZWQ7CisKK3N0YXRpYyB2b2lkIG1taW9fcmVzZXRfZGF0YShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCWludCBjcHU7CisKKwlvdmVycnVuX2RldGVjdGVkID0gZmFsc2U7CisJdHItPnRpbWVfc3RhcnQgPSBmdHJhY2Vfbm93KHRyLT5jcHUpOworCisJZm9yX2VhY2hfb25saW5lX2NwdShjcHUpCisJCXRyYWNpbmdfcmVzZXQodHItPmRhdGFbY3B1XSk7Cit9CisKK3N0YXRpYyB2b2lkIG1taW9fdHJhY2VfaW5pdChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXByX2RlYnVnKCJpbiAlc1xuIiwgX19mdW5jX18pOworCW1taW9fdHJhY2VfYXJyYXkgPSB0cjsKKwlpZiAodHItPmN0cmwpIHsKKwkJbW1pb19yZXNldF9kYXRhKHRyKTsKKwkJZW5hYmxlX21taW90cmFjZSgpOworCX0KK30KKworc3RhdGljIHZvaWQgbW1pb190cmFjZV9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXByX2RlYnVnKCJpbiAlc1xuIiwgX19mdW5jX18pOworCWlmICh0ci0+Y3RybCkKKwkJZGlzYWJsZV9tbWlvdHJhY2UoKTsKKwltbWlvX3Jlc2V0X2RhdGEodHIpOworCW1taW9fdHJhY2VfYXJyYXkgPSBOVUxMOworfQorCitzdGF0aWMgdm9pZCBtbWlvX3RyYWNlX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJcHJfZGVidWcoImluICVzXG4iLCBfX2Z1bmNfXyk7CisJaWYgKHRyLT5jdHJsKSB7CisJCW1taW9fcmVzZXRfZGF0YSh0cik7CisJCWVuYWJsZV9tbWlvdHJhY2UoKTsKKwl9IGVsc2UgeworCQlkaXNhYmxlX21taW90cmFjZSgpOworCX0KK30KKworc3RhdGljIGludCBtbWlvX3ByaW50X3BjaWRldihzdHJ1Y3QgdHJhY2Vfc2VxICpzLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZGV2KQoreworCWludCByZXQgPSAwOworCWludCBpOworCXJlc291cmNlX3NpemVfdCBzdGFydCwgZW5kOworCWNvbnN0IHN0cnVjdCBwY2lfZHJpdmVyICpkcnYgPSBwY2lfZGV2X2RyaXZlcihkZXYpOworCisJLyogWFhYOiBpbmNvbXBsZXRlIGNoZWNrcyBmb3IgdHJhY2Vfc2VxX3ByaW50ZigpIHJldHVybiB2YWx1ZSAqLworCXJldCArPSB0cmFjZV9zZXFfcHJpbnRmKHMsICJQQ0lERVYgJTAyeCUwMnggJTA0eCUwNHggJXgiLAorCQkJCWRldi0+YnVzLT5udW1iZXIsIGRldi0+ZGV2Zm4sCisJCQkJZGV2LT52ZW5kb3IsIGRldi0+ZGV2aWNlLCBkZXYtPmlycSk7CisJLyoKKwkgKiBYWFg6IGlzIHBjaV9yZXNvdXJjZV90b191c2VyKCkgYXBwcm9wcmlhdGUsIHNpbmNlIHdlIGFyZQorCSAqIHN1cHBvc2VkIHRvIGludGVycHJldCB0aGUgX19pb3JlbWFwKCkgcGh5c19hZGRyIGFyZ3VtZW50IGJhc2VkIG9uCisJICogdGhlc2UgcHJpbnRlZCB2YWx1ZXM/CisJICovCisJZm9yIChpID0gMDsgaSA8IDc7IGkrKykgeworCQlwY2lfcmVzb3VyY2VfdG9fdXNlcihkZXYsIGksICZkZXYtPnJlc291cmNlW2ldLCAmc3RhcnQsICZlbmQpOworCQlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiICVsbHgiLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZykoc3RhcnQgfAorCQkJKGRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgJiBQQ0lfUkVHSU9OX0ZMQUdfTUFTSykpKTsKKwl9CisJZm9yIChpID0gMDsgaSA8IDc7IGkrKykgeworCQlwY2lfcmVzb3VyY2VfdG9fdXNlcihkZXYsIGksICZkZXYtPnJlc291cmNlW2ldLCAmc3RhcnQsICZlbmQpOworCQlyZXQgKz0gdHJhY2Vfc2VxX3ByaW50ZihzLCAiICVsbHgiLAorCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA8IGRldi0+cmVzb3VyY2VbaV0uZW5kID8KKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpKGVuZCAtIHN0YXJ0KSArIDEgOiAwKTsKKwl9CisJaWYgKGRydikKKwkJcmV0ICs9IHRyYWNlX3NlcV9wcmludGYocywgIiAlc1xuIiwgZHJ2LT5uYW1lKTsKKwllbHNlCisJCXJldCArPSB0cmFjZV9zZXFfcHJpbnRmKHMsICIgXG4iKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBkZXN0cm95X2hlYWRlcl9pdGVyKHN0cnVjdCBoZWFkZXJfaXRlciAqaGl0ZXIpCit7CisJaWYgKCFoaXRlcikKKwkJcmV0dXJuOworCXBjaV9kZXZfcHV0KGhpdGVyLT5kZXYpOworCWtmcmVlKGhpdGVyKTsKK30KKworc3RhdGljIHZvaWQgbW1pb19waXBlX29wZW4oc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCBoZWFkZXJfaXRlciAqaGl0ZXI7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisKKwl0cmFjZV9zZXFfcHJpbnRmKHMsICJWRVJTSU9OIDIwMDcwODI0XG4iKTsKKworCWhpdGVyID0ga3phbGxvYyhzaXplb2YoKmhpdGVyKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFoaXRlcikKKwkJcmV0dXJuOworCisJaGl0ZXItPmRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIE5VTEwpOworCWl0ZXItPnByaXZhdGUgPSBoaXRlcjsKK30KKworLyogWFhYOiBUaGlzIGlzIG5vdCBjYWxsZWQgd2hlbiB0aGUgcGlwZSBpcyBjbG9zZWQhICovCitzdGF0aWMgdm9pZCBtbWlvX2Nsb3NlKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgaGVhZGVyX2l0ZXIgKmhpdGVyID0gaXRlci0+cHJpdmF0ZTsKKwlkZXN0cm95X2hlYWRlcl9pdGVyKGhpdGVyKTsKKwlpdGVyLT5wcml2YXRlID0gTlVMTDsKK30KKworc3RhdGljIHVuc2lnbmVkIGxvbmcgY291bnRfb3ZlcnJ1bnMoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCWludCBjcHU7CisJdW5zaWduZWQgbG9uZyBjbnQgPSAwOworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCWNudCArPSBpdGVyLT5vdmVycnVuW2NwdV07CisJCWl0ZXItPm92ZXJydW5bY3B1XSA9IDA7CisJfQorCXJldHVybiBjbnQ7Cit9CisKK3N0YXRpYyBzc2l6ZV90IG1taW9fcmVhZChzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIsIHN0cnVjdCBmaWxlICpmaWxwLAorCQkJCWNoYXIgX191c2VyICp1YnVmLCBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJc3NpemVfdCByZXQ7CisJc3RydWN0IGhlYWRlcl9pdGVyICpoaXRlciA9IGl0ZXItPnByaXZhdGU7CisJc3RydWN0IHRyYWNlX3NlcSAqcyA9ICZpdGVyLT5zZXE7CisJdW5zaWduZWQgbG9uZyBuOworCisJbiA9IGNvdW50X292ZXJydW5zKGl0ZXIpOworCWlmIChuKSB7CisJCS8qIFhYWDogVGhpcyBpcyBsYXRlciB0aGFuIHdoZXJlIGV2ZW50cyB3ZXJlIGxvc3QuICovCisJCXRyYWNlX3NlcV9wcmludGYocywgIk1BUksgMC4wMDAwMDAgTG9zdCAlbHUgZXZlbnRzLlxuIiwgbik7CisJCWlmICghb3ZlcnJ1bl9kZXRlY3RlZCkKKwkJCXByX3dhcm5pbmcoIm1taW90cmFjZSBoYXMgbG9zdCBldmVudHMuXG4iKTsKKwkJb3ZlcnJ1bl9kZXRlY3RlZCA9IHRydWU7CisJCWdvdG8gcHJpbnRfb3V0OworCX0KKworCWlmICghaGl0ZXIpCisJCXJldHVybiAwOworCisJbW1pb19wcmludF9wY2lkZXYocywgaGl0ZXItPmRldik7CisJaGl0ZXItPmRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIGhpdGVyLT5kZXYpOworCisJaWYgKCFoaXRlci0+ZGV2KSB7CisJCWRlc3Ryb3lfaGVhZGVyX2l0ZXIoaGl0ZXIpOworCQlpdGVyLT5wcml2YXRlID0gTlVMTDsKKwl9CisKK3ByaW50X291dDoKKwlyZXQgPSB0cmFjZV9zZXFfdG9fdXNlcihzLCB1YnVmLCBjbnQpOworCXJldHVybiAocmV0ID09IC1FQlVTWSkgPyAwIDogcmV0OworfQorCitzdGF0aWMgaW50IG1taW9fcHJpbnRfcncoc3RydWN0IHRyYWNlX2l0ZXJhdG9yICppdGVyKQoreworCXN0cnVjdCB0cmFjZV9lbnRyeSAqZW50cnkgPSBpdGVyLT5lbnQ7CisJc3RydWN0IG1taW90cmFjZV9ydyAqcncJPSAmZW50cnktPm1taW9ydzsKKwlzdHJ1Y3QgdHJhY2Vfc2VxICpzCT0gJml0ZXItPnNlcTsKKwl1bnNpZ25lZCBsb25nIGxvbmcgdAk9IG5zMnVzZWNzKGVudHJ5LT50KTsKKwl1bnNpZ25lZCBsb25nIHVzZWNfcmVtCT0gZG9fZGl2KHQsIDEwMDAwMDBVTEwpOworCXVuc2lnbmVkIHNlY3MJCT0gKHVuc2lnbmVkIGxvbmcpdDsKKwlpbnQgcmV0ID0gMTsKKworCXN3aXRjaCAoZW50cnktPm1taW9ydy5vcGNvZGUpIHsKKwljYXNlIE1NSU9fUkVBRDoKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLAorCQkJIlIgJWQgJWx1LiUwNmx1ICVkIDB4JWxseCAweCVseCAweCVseCAlZFxuIiwKKwkJCXJ3LT53aWR0aCwgc2VjcywgdXNlY19yZW0sIHJ3LT5tYXBfaWQsCisJCQkodW5zaWduZWQgbG9uZyBsb25nKXJ3LT5waHlzLAorCQkJcnctPnZhbHVlLCBydy0+cGMsIDApOworCQlicmVhazsKKwljYXNlIE1NSU9fV1JJVEU6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJXICVkICVsdS4lMDZsdSAlZCAweCVsbHggMHglbHggMHglbHggJWRcbiIsCisJCQlydy0+d2lkdGgsIHNlY3MsIHVzZWNfcmVtLCBydy0+bWFwX2lkLAorCQkJKHVuc2lnbmVkIGxvbmcgbG9uZylydy0+cGh5cywKKwkJCXJ3LT52YWx1ZSwgcnctPnBjLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBNTUlPX1VOS05PV05fT1A6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJVTktOT1dOICVsdS4lMDZsdSAlZCAweCVsbHggJTAyeCwlMDJ4LCUwMnggMHglbHggJWRcbiIsCisJCQlzZWNzLCB1c2VjX3JlbSwgcnctPm1hcF9pZCwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpcnctPnBoeXMsCisJCQkocnctPnZhbHVlID4+IDE2KSAmIDB4ZmYsIChydy0+dmFsdWUgPj4gOCkgJiAweGZmLAorCQkJKHJ3LT52YWx1ZSA+PiAwKSAmIDB4ZmYsIHJ3LT5wYywgMCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywgInJ3IHdoYXQ/XG4iKTsKKwkJYnJlYWs7CisJfQorCWlmIChyZXQpCisJCXJldHVybiAxOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1taW9fcHJpbnRfbWFwKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwlzdHJ1Y3QgdHJhY2VfZW50cnkgKmVudHJ5ID0gaXRlci0+ZW50OworCXN0cnVjdCBtbWlvdHJhY2VfbWFwICptCT0gJmVudHJ5LT5tbWlvbWFwOworCXN0cnVjdCB0cmFjZV9zZXEgKnMJPSAmaXRlci0+c2VxOworCXVuc2lnbmVkIGxvbmcgbG9uZyB0CT0gbnMydXNlY3MoZW50cnktPnQpOworCXVuc2lnbmVkIGxvbmcgdXNlY19yZW0JPSBkb19kaXYodCwgMTAwMDAwMFVMTCk7CisJdW5zaWduZWQgc2VjcwkJPSAodW5zaWduZWQgbG9uZyl0OworCWludCByZXQgPSAxOworCisJc3dpdGNoIChlbnRyeS0+bW1pb3J3Lm9wY29kZSkgeworCWNhc2UgTU1JT19QUk9CRToKKwkJcmV0ID0gdHJhY2Vfc2VxX3ByaW50ZihzLAorCQkJIk1BUCAlbHUuJTA2bHUgJWQgMHglbGx4IDB4JWx4IDB4JWx4IDB4JWx4ICVkXG4iLAorCQkJc2VjcywgdXNlY19yZW0sIG0tPm1hcF9pZCwKKwkJCSh1bnNpZ25lZCBsb25nIGxvbmcpbS0+cGh5cywgbS0+dmlydCwgbS0+bGVuLAorCQkJMFVMLCAwKTsKKwkJYnJlYWs7CisJY2FzZSBNTUlPX1VOUFJPQkU6CisJCXJldCA9IHRyYWNlX3NlcV9wcmludGYocywKKwkJCSJVTk1BUCAlbHUuJTA2bHUgJWQgMHglbHggJWRcbiIsCisJCQlzZWNzLCB1c2VjX3JlbSwgbS0+bWFwX2lkLCAwVUwsIDApOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSB0cmFjZV9zZXFfcHJpbnRmKHMsICJtYXAgd2hhdD9cbiIpOworCQlicmVhazsKKwl9CisJaWYgKHJldCkKKwkJcmV0dXJuIDE7CisJcmV0dXJuIDA7Cit9CisKKy8qIHJldHVybiAwIHRvIGFib3J0IHByaW50aW5nIHdpdGhvdXQgY29uc3VtaW5nIGN1cnJlbnQgZW50cnkgaW4gcGlwZSBtb2RlICovCitzdGF0aWMgaW50IG1taW9fcHJpbnRfbGluZShzdHJ1Y3QgdHJhY2VfaXRlcmF0b3IgKml0ZXIpCit7CisJc3dpdGNoIChpdGVyLT5lbnQtPnR5cGUpIHsKKwljYXNlIFRSQUNFX01NSU9fUlc6CisJCXJldHVybiBtbWlvX3ByaW50X3J3KGl0ZXIpOworCWNhc2UgVFJBQ0VfTU1JT19NQVA6CisJCXJldHVybiBtbWlvX3ByaW50X21hcChpdGVyKTsKKwlkZWZhdWx0OgorCQlyZXR1cm4gMTsgLyogaWdub3JlIHVua25vd24gZW50cmllcyAqLworCX0KK30KKworc3RhdGljIHN0cnVjdCB0cmFjZXIgbW1pb190cmFjZXIgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gIm1taW90cmFjZSIsCisJLmluaXQJCT0gbW1pb190cmFjZV9pbml0LAorCS5yZXNldAkJPSBtbWlvX3RyYWNlX3Jlc2V0LAorCS5waXBlX29wZW4JPSBtbWlvX3BpcGVfb3BlbiwKKwkuY2xvc2UJCT0gbW1pb19jbG9zZSwKKwkucmVhZAkJPSBtbWlvX3JlYWQsCisJLmN0cmxfdXBkYXRlCT0gbW1pb190cmFjZV9jdHJsX3VwZGF0ZSwKKwkucHJpbnRfbGluZQk9IG1taW9fcHJpbnRfbGluZSwKK307CisKK19faW5pdCBzdGF0aWMgaW50IGluaXRfbW1pb190cmFjZSh2b2lkKQoreworCXJldHVybiByZWdpc3Rlcl90cmFjZXIoJm1taW9fdHJhY2VyKTsKK30KK2RldmljZV9pbml0Y2FsbChpbml0X21taW9fdHJhY2UpOworCit2b2lkIG1taW9fdHJhY2Vfcncoc3RydWN0IG1taW90cmFjZV9ydyAqcncpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IG1taW9fdHJhY2VfYXJyYXk7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YSA9IHRyLT5kYXRhW3NtcF9wcm9jZXNzb3JfaWQoKV07CisJX190cmFjZV9tbWlvdHJhY2VfcncodHIsIGRhdGEsIHJ3KTsKK30KKwordm9pZCBtbWlvX3RyYWNlX21hcHBpbmcoc3RydWN0IG1taW90cmFjZV9tYXAgKm1hcCkKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gbW1pb190cmFjZV9hcnJheTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJZGF0YSA9IHRyLT5kYXRhW3NtcF9wcm9jZXNzb3JfaWQoKV07CisJX190cmFjZV9tbWlvdHJhY2VfbWFwKHRyLCBkYXRhLCBtYXApOworCXByZWVtcHRfZW5hYmxlKCk7Cit9CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfc3dpdGNoLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2NoZWRfc3dpdGNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I4MTdhMgotLS0gL2Rldi9udWxsCisrKyBiL2tlcm5lbC90cmFjZS90cmFjZV9zY2hlZF9zd2l0Y2guYwpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIHRyYWNlIGNvbnRleHQgc3dpdGNoCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA3IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICoKKyAqLworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CisjaW5jbHVkZSA8bGludXgvZGVidWdmcy5oPgorI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgorI2luY2x1ZGUgPGxpbnV4L21hcmtlci5oPgorI2luY2x1ZGUgPGxpbnV4L2Z0cmFjZS5oPgorCisjaW5jbHVkZSAidHJhY2UuaCIKKworc3RhdGljIHN0cnVjdCB0cmFjZV9hcnJheQkqY3R4X3RyYWNlOworc3RhdGljIGludCBfX3JlYWRfbW9zdGx5CXRyYWNlcl9lbmFibGVkOworc3RhdGljIGF0b21pY190CQkJc2NoZWRfcmVmOworCitzdGF0aWMgdm9pZAorc2NoZWRfc3dpdGNoX2Z1bmModm9pZCAqcHJpdmF0ZSwgdm9pZCAqX19ycSwgc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2LAorCQkJc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KQoreworCXN0cnVjdCB0cmFjZV9hcnJheSAqKnB0ciA9IHByaXZhdGU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICpwdHI7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCWxvbmcgZGlzYWJsZWQ7CisJaW50IGNwdTsKKworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUocHJldik7CisJdHJhY2luZ19yZWNvcmRfY21kbGluZShuZXh0KTsKKworCWlmICghdHJhY2VyX2VuYWJsZWQpCisJCXJldHVybjsKKworCWxvY2FsX2lycV9zYXZlKGZsYWdzKTsKKwljcHUgPSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpOworCWRhdGEgPSB0ci0+ZGF0YVtjcHVdOworCWRpc2FibGVkID0gYXRvbWljX2luY19yZXR1cm4oJmRhdGEtPmRpc2FibGVkKTsKKworCWlmIChsaWtlbHkoZGlzYWJsZWQgPT0gMSkpCisJCXRyYWNpbmdfc2NoZWRfc3dpdGNoX3RyYWNlKHRyLCBkYXRhLCBwcmV2LCBuZXh0LCBmbGFncyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgbm90cmFjZSB2b2lkCitzY2hlZF9zd2l0Y2hfY2FsbGJhY2sodm9pZCAqcHJvYmVfZGF0YSwgdm9pZCAqY2FsbF9kYXRhLAorCQkgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgKmFyZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2OworCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dDsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwlpZiAoIWF0b21pY19yZWFkKCZzY2hlZF9yZWYpKQorCQlyZXR1cm47CisKKwkvKiBza2lwIHByZXZfcGlkICVkIG5leHRfcGlkICVkIHByZXZfc3RhdGUgJWxkICovCisJKHZvaWQpdmFfYXJnKCphcmdzLCBpbnQpOworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJcHJldiA9IHZhX2FyZygqYXJncywgdHlwZW9mKHByZXYpKTsKKwluZXh0ID0gdmFfYXJnKCphcmdzLCB0eXBlb2YobmV4dCkpOworCisJLyoKKwkgKiBJZiB0cmFjZXJfc3dpdGNoX2Z1bmMgb25seSBwb2ludHMgdG8gdGhlIGxvY2FsCisJICogc3dpdGNoIGZ1bmMsIGl0IHN0aWxsIG5lZWRzIHRoZSBwdHIgcGFzc2VkIHRvIGl0LgorCSAqLworCXNjaGVkX3N3aXRjaF9mdW5jKHByb2JlX2RhdGEsIF9fcnEsIHByZXYsIG5leHQpOworfQorCitzdGF0aWMgdm9pZAord2FrZXVwX2Z1bmModm9pZCAqcHJpdmF0ZSwgdm9pZCAqX19ycSwgc3RydWN0IHRhc2tfc3RydWN0ICp3YWtlZSwgc3RydWN0CisJCQl0YXNrX3N0cnVjdCAqY3VycikKK3sKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKipwdHIgPSBwcml2YXRlOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHIgPSAqcHRyOworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlsb25nIGRpc2FibGVkOworCWludCBjcHU7CisKKwlpZiAoIXRyYWNlcl9lbmFibGVkKQorCQlyZXR1cm47CisKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKGN1cnIpOworCisJbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCisJaWYgKGxpa2VseShkaXNhYmxlZCA9PSAxKSkKKwkJdHJhY2luZ19zY2hlZF93YWtldXBfdHJhY2UodHIsIGRhdGEsIHdha2VlLCBjdXJyLCBmbGFncyk7CisKKwlhdG9taWNfZGVjKCZkYXRhLT5kaXNhYmxlZCk7CisJbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOworfQorCitzdGF0aWMgbm90cmFjZSB2b2lkCit3YWtlX3VwX2NhbGxiYWNrKHZvaWQgKnByb2JlX2RhdGEsIHZvaWQgKmNhbGxfZGF0YSwKKwkJIGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCAqYXJncykKK3sKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnI7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOworCXN0cnVjdCBycSAqX19ycTsKKworCWlmIChsaWtlbHkoIXRyYWNlcl9lbmFibGVkKSkKKwkJcmV0dXJuOworCisJLyogU2tpcCBwaWQgJWQgc3RhdGUgJWxkICovCisJKHZvaWQpdmFfYXJnKCphcmdzLCBpbnQpOworCSh2b2lkKXZhX2FyZygqYXJncywgbG9uZyk7CisJLyogbm93IGdldCB0aGUgbWVhdDogInJxICVwIHRhc2sgJXAgcnEtPmN1cnIgJXAiICovCisJX19ycSA9IHZhX2FyZygqYXJncywgdHlwZW9mKF9fcnEpKTsKKwl0YXNrID0gdmFfYXJnKCphcmdzLCB0eXBlb2YodGFzaykpOworCWN1cnIgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihjdXJyKSk7CisKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKHRhc2spOworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUoY3Vycik7CisKKwl3YWtldXBfZnVuYyhwcm9iZV9kYXRhLCBfX3JxLCB0YXNrLCBjdXJyKTsKK30KKworc3RhdGljIHZvaWQgc2NoZWRfc3dpdGNoX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaW50IGNwdTsKKworCXRyLT50aW1lX3N0YXJ0ID0gZnRyYWNlX25vdyh0ci0+Y3B1KTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworfQorCitzdGF0aWMgaW50IHRyYWNpbmdfc2NoZWRfcmVnaXN0ZXIodm9pZCkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gbWFya2VyX3Byb2JlX3JlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwIiwKKwkJCSJwaWQgJWQgc3RhdGUgJWxkICMjIHJxICVwIHRhc2sgJXAgcnEtPmN1cnIgJXAiLAorCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCSZjdHhfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygid2FrZXVwIHRyYWNlOiBDb3VsZG4ndCBhZGQgbWFya2VyIgorCQkJIiBwcm9iZSB0byBrZXJuZWxfc2NoZWRfd2FrZXVwXG4iKTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXBfbmV3IiwKKwkJCSJwaWQgJWQgc3RhdGUgJWxkICMjIHJxICVwIHRhc2sgJXAgcnEtPmN1cnIgJXAiLAorCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCSZjdHhfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygid2FrZXVwIHRyYWNlOiBDb3VsZG4ndCBhZGQgbWFya2VyIgorCQkJIiBwcm9iZSB0byBrZXJuZWxfc2NoZWRfd2FrZXVwX25ld1xuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlOworCX0KKworCXJldCA9IG1hcmtlcl9wcm9iZV9yZWdpc3Rlcigia2VybmVsX3NjaGVkX3NjaGVkdWxlIiwKKwkJInByZXZfcGlkICVkIG5leHRfcGlkICVkIHByZXZfc3RhdGUgJWxkICIKKwkJIiMjIHJxICVwIHByZXYgJXAgbmV4dCAlcCIsCisJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJJmN0eF90cmFjZSk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCJzY2hlZCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3NjaGVkdWxlXG4iKTsKKwkJZ290byBmYWlsX2RlcHJvYmVfd2FrZV9uZXc7CisJfQorCisJcmV0dXJuIHJldDsKK2ZhaWxfZGVwcm9iZV93YWtlX25ldzoKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cF9uZXciLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7CitmYWlsX2RlcHJvYmU6CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXAiLAorCQkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkJJmN0eF90cmFjZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgdHJhY2luZ19zY2hlZF91bnJlZ2lzdGVyKHZvaWQpCit7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCQkJc2NoZWRfc3dpdGNoX2NhbGxiYWNrLAorCQkJCSZjdHhfdHJhY2UpOworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmY3R4X3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmY3R4X3RyYWNlKTsKK30KKworc3RhdGljIHZvaWQgdHJhY2luZ19zdGFydF9zY2hlZF9zd2l0Y2godm9pZCkKK3sKKwlsb25nIHJlZjsKKworCXJlZiA9IGF0b21pY19pbmNfcmV0dXJuKCZzY2hlZF9yZWYpOworCWlmIChyZWYgPT0gMSkKKwkJdHJhY2luZ19zY2hlZF9yZWdpc3RlcigpOworfQorCitzdGF0aWMgdm9pZCB0cmFjaW5nX3N0b3Bfc2NoZWRfc3dpdGNoKHZvaWQpCit7CisJbG9uZyByZWY7CisKKwlyZWYgPSBhdG9taWNfZGVjX2FuZF90ZXN0KCZzY2hlZF9yZWYpOworCWlmIChyZWYpCisJCXRyYWNpbmdfc2NoZWRfdW5yZWdpc3RlcigpOworfQorCit2b2lkIHRyYWNpbmdfc3RhcnRfY21kbGluZV9yZWNvcmQodm9pZCkKK3sKKwl0cmFjaW5nX3N0YXJ0X3NjaGVkX3N3aXRjaCgpOworfQorCit2b2lkIHRyYWNpbmdfc3RvcF9jbWRsaW5lX3JlY29yZCh2b2lkKQoreworCXRyYWNpbmdfc3RvcF9zY2hlZF9zd2l0Y2goKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfc2NoZWRfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlzY2hlZF9zd2l0Y2hfcmVzZXQodHIpOworCXRyYWNpbmdfc3RhcnRfY21kbGluZV9yZWNvcmQoKTsKKwl0cmFjZXJfZW5hYmxlZCA9IDE7Cit9CisKK3N0YXRpYyB2b2lkIHN0b3Bfc2NoZWRfdHJhY2Uoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0cmFjZXJfZW5hYmxlZCA9IDA7CisJdHJhY2luZ19zdG9wX2NtZGxpbmVfcmVjb3JkKCk7Cit9CisKK3N0YXRpYyB2b2lkIHNjaGVkX3N3aXRjaF90cmFjZV9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJY3R4X3RyYWNlID0gdHI7CisKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3NjaGVkX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHZvaWQgc2NoZWRfc3dpdGNoX3RyYWNlX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdG9wX3NjaGVkX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHZvaWQgc2NoZWRfc3dpdGNoX3RyYWNlX2N0cmxfdXBkYXRlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJLyogV2hlbiBzdGFydGluZyBhIG5ldyB0cmFjZSwgcmVzZXQgdGhlIGJ1ZmZlcnMgKi8KKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3NjaGVkX3RyYWNlKHRyKTsKKwllbHNlCisJCXN0b3Bfc2NoZWRfdHJhY2UodHIpOworfQorCitzdGF0aWMgc3RydWN0IHRyYWNlciBzY2hlZF9zd2l0Y2hfdHJhY2UgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gInNjaGVkX3N3aXRjaCIsCisJLmluaXQJCT0gc2NoZWRfc3dpdGNoX3RyYWNlX2luaXQsCisJLnJlc2V0CQk9IHNjaGVkX3N3aXRjaF90cmFjZV9yZXNldCwKKwkuY3RybF91cGRhdGUJPSBzY2hlZF9zd2l0Y2hfdHJhY2VfY3RybF91cGRhdGUsCisjaWZkZWYgQ09ORklHX0ZUUkFDRV9TRUxGVEVTVAorCS5zZWxmdGVzdCAgICA9IHRyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfc2NoZWRfc3dpdGNoLAorI2VuZGlmCit9OworCitfX2luaXQgc3RhdGljIGludCBpbml0X3NjaGVkX3N3aXRjaF90cmFjZSh2b2lkKQoreworCWludCByZXQgPSAwOworCisJaWYgKGF0b21pY19yZWFkKCZzY2hlZF9yZWYpKQorCQlyZXQgPSB0cmFjaW5nX3NjaGVkX3JlZ2lzdGVyKCk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCJlcnJvciByZWdpc3RlcmluZyBzY2hlZHVsZXIgdHJhY2VcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXR1cm4gcmVnaXN0ZXJfdHJhY2VyKCZzY2hlZF9zd2l0Y2hfdHJhY2UpOworfQorZGV2aWNlX2luaXRjYWxsKGluaXRfc2NoZWRfc3dpdGNoX3RyYWNlKTsKZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zY2hlZF93YWtldXAuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9zY2hlZF93YWtldXAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzhkNjFkCi0tLSAvZGV2L251bGwKKysrIGIva2VybmVsL3RyYWNlL3RyYWNlX3NjaGVkX3dha2V1cC5jCkBAIC0wLDAgKzEsNDQ4IEBACisvKgorICogdHJhY2UgdGFzayB3YWtldXAgdGltaW5ncworICoKKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICoKKyAqIEJhc2VkIG9uIGNvZGUgZnJvbSB0aGUgbGF0ZW5jeV90cmFjZXIsIHRoYXQgaXM6CisgKgorICogIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEluZ28gTW9sbmFyCisgKiAgQ29weXJpZ2h0IChDKSAyMDA0IFdpbGxpYW0gTGVlIElyd2luIElJSQorICovCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZnMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CisjaW5jbHVkZSA8bGludXgvZnRyYWNlLmg+CisjaW5jbHVkZSA8bGludXgvbWFya2VyLmg+CisKKyNpbmNsdWRlICJ0cmFjZS5oIgorCitzdGF0aWMgc3RydWN0IHRyYWNlX2FycmF5CSp3YWtldXBfdHJhY2U7CitzdGF0aWMgaW50IF9fcmVhZF9tb3N0bHkJdHJhY2VyX2VuYWJsZWQ7CisKK3N0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QJKndha2V1cF90YXNrOworc3RhdGljIGludAkJCXdha2V1cF9jcHU7CitzdGF0aWMgdW5zaWduZWQJCQl3YWtldXBfcHJpbyA9IC0xOworCitzdGF0aWMgREVGSU5FX1NQSU5MT0NLKHdha2V1cF9sb2NrKTsKKworc3RhdGljIHZvaWQgX193YWtldXBfcmVzZXQoc3RydWN0IHRyYWNlX2FycmF5ICp0cik7CisKKyNpZmRlZiBDT05GSUdfRlRSQUNFCisvKgorICogaXJxc29mZiB1c2VzIGl0cyBvd24gdHJhY2VyIGZ1bmN0aW9uIHRvIGtlZXAgdGhlIG92ZXJoZWFkIGRvd246CisgKi8KK3N0YXRpYyB2b2lkCit3YWtldXBfdHJhY2VyX2NhbGwodW5zaWduZWQgbG9uZyBpcCwgdW5zaWduZWQgbG9uZyBwYXJlbnRfaXApCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9IHdha2V1cF90cmFjZTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJbG9uZyBkaXNhYmxlZDsKKwlpbnQgcmVzY2hlZDsKKwlpbnQgY3B1OworCisJaWYgKGxpa2VseSghd2FrZXVwX3Rhc2spKQorCQlyZXR1cm47CisKKwlyZXNjaGVkID0gbmVlZF9yZXNjaGVkKCk7CisJcHJlZW1wdF9kaXNhYmxlX25vdHJhY2UoKTsKKworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmZGF0YS0+ZGlzYWJsZWQpOworCWlmICh1bmxpa2VseShkaXNhYmxlZCAhPSAxKSkKKwkJZ290byBvdXQ7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmd2FrZXVwX2xvY2ssIGZsYWdzKTsKKworCWlmICh1bmxpa2VseSghd2FrZXVwX3Rhc2spKQorCQlnb3RvIHVubG9jazsKKworCS8qCisJICogVGhlIHRhc2sgY2FuJ3QgZGlzYXBwZWFyIGJlY2F1c2UgaXQgbmVlZHMgdG8KKwkgKiB3YWtlIHVwIGZpcnN0LCBhbmQgd2UgaGF2ZSB0aGUgd2FrZXVwX2xvY2suCisJICovCisJaWYgKHRhc2tfY3B1KHdha2V1cF90YXNrKSAhPSBjcHUpCisJCWdvdG8gdW5sb2NrOworCisJdHJhY2VfZnVuY3Rpb24odHIsIGRhdGEsIGlwLCBwYXJlbnRfaXAsIGZsYWdzKTsKKworIHVubG9jazoKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworCisgb3V0OgorCWF0b21pY19kZWMoJmRhdGEtPmRpc2FibGVkKTsKKworCS8qCisJICogVG8gcHJldmVudCByZWN1cnNpb24gZnJvbSB0aGUgc2NoZWR1bGVyLCBpZiB0aGUKKwkgKiByZXNjaGVkIGZsYWcgd2FzIHNldCBiZWZvcmUgd2UgZW50ZXJlZCwgdGhlbgorCSAqIGRvbid0IHJlc2NoZWR1bGUuCisJICovCisJaWYgKHJlc2NoZWQpCisJCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpOworCWVsc2UKKwkJcHJlZW1wdF9lbmFibGVfbm90cmFjZSgpOworfQorCitzdGF0aWMgc3RydWN0IGZ0cmFjZV9vcHMgdHJhY2Vfb3BzIF9fcmVhZF9tb3N0bHkgPQoreworCS5mdW5jID0gd2FrZXVwX3RyYWNlcl9jYWxsLAorfTsKKyNlbmRpZiAvKiBDT05GSUdfRlRSQUNFICovCisKKy8qCisgKiBTaG91bGQgdGhpcyBuZXcgbGF0ZW5jeSBiZSByZXBvcnRlZC9yZWNvcmRlZD8KKyAqLworc3RhdGljIGludCByZXBvcnRfbGF0ZW5jeShjeWNsZV90IGRlbHRhKQoreworCWlmICh0cmFjaW5nX3RocmVzaCkgeworCQlpZiAoZGVsdGEgPCB0cmFjaW5nX3RocmVzaCkKKwkJCXJldHVybiAwOworCX0gZWxzZSB7CisJCWlmIChkZWx0YSA8PSB0cmFjaW5nX21heF9sYXRlbmN5KQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgdm9pZCBub3RyYWNlCit3YWtldXBfc2NoZWRfc3dpdGNoKHZvaWQgKnByaXZhdGUsIHZvaWQgKnJxLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXYsCisJc3RydWN0IHRhc2tfc3RydWN0ICpuZXh0KQoreworCXVuc2lnbmVkIGxvbmcgbGF0ZW5jeSA9IDAsIHQwID0gMCwgdDEgPSAwOworCXN0cnVjdCB0cmFjZV9hcnJheSAqKnB0ciA9IHByaXZhdGU7CisJc3RydWN0IHRyYWNlX2FycmF5ICp0ciA9ICpwdHI7CisJc3RydWN0IHRyYWNlX2FycmF5X2NwdSAqZGF0YTsKKwljeWNsZV90IFQwLCBUMSwgZGVsdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlsb25nIGRpc2FibGVkOworCWludCBjcHU7CisKKwlpZiAodW5saWtlbHkoIXRyYWNlcl9lbmFibGVkKSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBXaGVuIHdlIHN0YXJ0IGEgbmV3IHRyYWNlLCB3ZSBzZXQgd2FrZXVwX3Rhc2sgdG8gTlVMTAorCSAqIGFuZCB0aGVuIHNldCB0cmFjZXJfZW5hYmxlZCA9IDEuIFdlIHdhbnQgdG8gbWFrZSBzdXJlCisJICogdGhhdCBhbm90aGVyIENQVSBkb2VzIG5vdCBzZWUgdGhlIHRyYWNlcl9lbmFibGVkID0gMQorCSAqIGFuZCB0aGUgd2FrZXVwX3Rhc2sgd2l0aCBhbiBvbGRlciB0YXNrLCB0aGF0IG1pZ2h0CisJICogYWN0dWFsbHkgYmUgdGhlIHNhbWUgYXMgbmV4dC4KKwkgKi8KKwlzbXBfcm1iKCk7CisKKwlpZiAobmV4dCAhPSB3YWtldXBfdGFzaykKKwkJcmV0dXJuOworCisJLyogVGhlIHRhc2sgd2UgYXJlIHdhaXRpbmcgZm9yIGlzIHdha2luZyB1cCAqLworCWRhdGEgPSB0ci0+ZGF0YVt3YWtldXBfY3B1XTsKKworCS8qIGRpc2FibGUgbG9jYWwgZGF0YSwgbm90IHdha2V1cF9jcHUgZGF0YSAqLworCWNwdSA9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCk7CisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmdHItPmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworCWlmIChsaWtlbHkoZGlzYWJsZWQgIT0gMSkpCisJCWdvdG8gb3V0OworCisJc3Bpbl9sb2NrX2lycXNhdmUoJndha2V1cF9sb2NrLCBmbGFncyk7CisKKwkvKiBXZSBjb3VsZCByYWNlIHdpdGggZ3JhYmJpbmcgd2FrZXVwX2xvY2sgKi8KKwlpZiAodW5saWtlbHkoIXRyYWNlcl9lbmFibGVkIHx8IG5leHQgIT0gd2FrZXVwX3Rhc2spKQorCQlnb3RvIG91dF91bmxvY2s7CisKKwl0cmFjZV9mdW5jdGlvbih0ciwgZGF0YSwgQ0FMTEVSX0FERFIxLCBDQUxMRVJfQUREUjIsIGZsYWdzKTsKKworCS8qCisJICogdXNlY3MgY29udmVyc2lvbiBpcyBzbG93IHNvIHdlIHRyeSB0byBkZWxheSB0aGUgY29udmVyc2lvbgorCSAqIGFzIGxvbmcgYXMgcG9zc2libGU6CisJICovCisJVDAgPSBkYXRhLT5wcmVlbXB0X3RpbWVzdGFtcDsKKwlUMSA9IGZ0cmFjZV9ub3coY3B1KTsKKwlkZWx0YSA9IFQxLVQwOworCisJaWYgKCFyZXBvcnRfbGF0ZW5jeShkZWx0YSkpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWxhdGVuY3kgPSBuc2Vjc190b191c2VjcyhkZWx0YSk7CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gZGVsdGE7CisJdDAgPSBuc2Vjc190b191c2VjcyhUMCk7CisJdDEgPSBuc2Vjc190b191c2VjcyhUMSk7CisKKwl1cGRhdGVfbWF4X3RyKHRyLCB3YWtldXBfdGFzaywgd2FrZXVwX2NwdSk7CisKK291dF91bmxvY2s6CisJX193YWtldXBfcmVzZXQodHIpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJndha2V1cF9sb2NrLCBmbGFncyk7CitvdXQ6CisJYXRvbWljX2RlYygmdHItPmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworfQorCitzdGF0aWMgbm90cmFjZSB2b2lkCitzY2hlZF9zd2l0Y2hfY2FsbGJhY2sodm9pZCAqcHJvYmVfZGF0YSwgdm9pZCAqY2FsbF9kYXRhLAorCQkgICAgICBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgKmFyZ3MpCit7CisJc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2OworCXN0cnVjdCB0YXNrX3N0cnVjdCAqbmV4dDsKKwlzdHJ1Y3QgcnEgKl9fcnE7CisKKwkvKiBza2lwIHByZXZfcGlkICVkIG5leHRfcGlkICVkIHByZXZfc3RhdGUgJWxkICovCisJKHZvaWQpdmFfYXJnKCphcmdzLCBpbnQpOworCSh2b2lkKXZhX2FyZygqYXJncywgaW50KTsKKwkodm9pZCl2YV9hcmcoKmFyZ3MsIGxvbmcpOworCV9fcnEgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihfX3JxKSk7CisJcHJldiA9IHZhX2FyZygqYXJncywgdHlwZW9mKHByZXYpKTsKKwluZXh0ID0gdmFfYXJnKCphcmdzLCB0eXBlb2YobmV4dCkpOworCisJdHJhY2luZ19yZWNvcmRfY21kbGluZShwcmV2KTsKKworCS8qCisJICogSWYgdHJhY2VyX3N3aXRjaF9mdW5jIG9ubHkgcG9pbnRzIHRvIHRoZSBsb2NhbAorCSAqIHN3aXRjaCBmdW5jLCBpdCBzdGlsbCBuZWVkcyB0aGUgcHRyIHBhc3NlZCB0byBpdC4KKwkgKi8KKwl3YWtldXBfc2NoZWRfc3dpdGNoKHByb2JlX2RhdGEsIF9fcnEsIHByZXYsIG5leHQpOworfQorCitzdGF0aWMgdm9pZCBfX3dha2V1cF9yZXNldChzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJaW50IGNwdTsKKworCWFzc2VydF9zcGluX2xvY2tlZCgmd2FrZXVwX2xvY2spOworCisJZm9yX2VhY2hfcG9zc2libGVfY3B1KGNwdSkgeworCQlkYXRhID0gdHItPmRhdGFbY3B1XTsKKwkJdHJhY2luZ19yZXNldChkYXRhKTsKKwl9CisKKwl3YWtldXBfY3B1ID0gLTE7CisJd2FrZXVwX3ByaW8gPSAtMTsKKworCWlmICh3YWtldXBfdGFzaykKKwkJcHV0X3Rhc2tfc3RydWN0KHdha2V1cF90YXNrKTsKKworCXdha2V1cF90YXNrID0gTlVMTDsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworCV9fd2FrZXVwX3Jlc2V0KHRyKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ3YWtldXBfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgdm9pZAord2FrZXVwX2NoZWNrX3N0YXJ0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwKKwkJICAgc3RydWN0IHRhc2tfc3RydWN0ICpjdXJyKQoreworCWludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKwlsb25nIGRpc2FibGVkOworCisJaWYgKGxpa2VseSghcnRfdGFzayhwKSkgfHwKKwkJCXAtPnByaW8gPj0gd2FrZXVwX3ByaW8gfHwKKwkJCXAtPnByaW8gPj0gY3Vyci0+cHJpbykKKwkJcmV0dXJuOworCisJZGlzYWJsZWQgPSBhdG9taWNfaW5jX3JldHVybigmdHItPmRhdGFbY3B1XS0+ZGlzYWJsZWQpOworCWlmICh1bmxpa2VseShkaXNhYmxlZCAhPSAxKSkKKwkJZ290byBvdXQ7CisKKwkvKiBpbnRlcnJ1cHRzIHNob3VsZCBiZSBvZmYgZnJvbSB0cnlfdG9fd2FrZV91cCAqLworCXNwaW5fbG9jaygmd2FrZXVwX2xvY2spOworCisJLyogY2hlY2sgZm9yIHJhY2VzLiAqLworCWlmICghdHJhY2VyX2VuYWJsZWQgfHwgcC0+cHJpbyA+PSB3YWtldXBfcHJpbykKKwkJZ290byBvdXRfbG9ja2VkOworCisJLyogcmVzZXQgdGhlIHRyYWNlICovCisJX193YWtldXBfcmVzZXQodHIpOworCisJd2FrZXVwX2NwdSA9IHRhc2tfY3B1KHApOworCXdha2V1cF9wcmlvID0gcC0+cHJpbzsKKworCXdha2V1cF90YXNrID0gcDsKKwlnZXRfdGFza19zdHJ1Y3Qod2FrZXVwX3Rhc2spOworCisJbG9jYWxfc2F2ZV9mbGFncyhmbGFncyk7CisKKwl0ci0+ZGF0YVt3YWtldXBfY3B1XS0+cHJlZW1wdF90aW1lc3RhbXAgPSBmdHJhY2Vfbm93KGNwdSk7CisJdHJhY2VfZnVuY3Rpb24odHIsIHRyLT5kYXRhW3dha2V1cF9jcHVdLAorCQkgICAgICAgQ0FMTEVSX0FERFIxLCBDQUxMRVJfQUREUjIsIGZsYWdzKTsKKworb3V0X2xvY2tlZDoKKwlzcGluX3VubG9jaygmd2FrZXVwX2xvY2spOworb3V0OgorCWF0b21pY19kZWMoJnRyLT5kYXRhW2NwdV0tPmRpc2FibGVkKTsKK30KKworc3RhdGljIG5vdHJhY2Ugdm9pZAord2FrZV91cF9jYWxsYmFjayh2b2lkICpwcm9iZV9kYXRhLCB2b2lkICpjYWxsX2RhdGEsCisJCSBjb25zdCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgKmFyZ3MpCit7CisJc3RydWN0IHRyYWNlX2FycmF5ICoqcHRyID0gcHJvYmVfZGF0YTsKKwlzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyID0gKnB0cjsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN1cnI7CisJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOworCXN0cnVjdCBycSAqX19ycTsKKworCWlmIChsaWtlbHkoIXRyYWNlcl9lbmFibGVkKSkKKwkJcmV0dXJuOworCisJLyogU2tpcCBwaWQgJWQgc3RhdGUgJWxkICovCisJKHZvaWQpdmFfYXJnKCphcmdzLCBpbnQpOworCSh2b2lkKXZhX2FyZygqYXJncywgbG9uZyk7CisJLyogbm93IGdldCB0aGUgbWVhdDogInJxICVwIHRhc2sgJXAgcnEtPmN1cnIgJXAiICovCisJX19ycSA9IHZhX2FyZygqYXJncywgdHlwZW9mKF9fcnEpKTsKKwl0YXNrID0gdmFfYXJnKCphcmdzLCB0eXBlb2YodGFzaykpOworCWN1cnIgPSB2YV9hcmcoKmFyZ3MsIHR5cGVvZihjdXJyKSk7CisKKwl0cmFjaW5nX3JlY29yZF9jbWRsaW5lKHRhc2spOworCXRyYWNpbmdfcmVjb3JkX2NtZGxpbmUoY3Vycik7CisKKwl3YWtldXBfY2hlY2tfc3RhcnQodHIsIHRhc2ssIGN1cnIpOworfQorCitzdGF0aWMgdm9pZCBzdGFydF93YWtldXBfdHJhY2VyKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaW50IHJldDsKKworCXJldCA9IG1hcmtlcl9wcm9iZV9yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkicGlkICVkIHN0YXRlICVsZCAjIyBycSAlcCB0YXNrICVwIHJxLT5jdXJyICVwIiwKKwkJCXdha2VfdXBfY2FsbGJhY2ssCisJCQkmd2FrZXVwX3RyYWNlKTsKKwlpZiAocmV0KSB7CisJCXByX2luZm8oIndha2V1cCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3dha2V1cFxuIik7CisJCXJldHVybjsKKwl9CisKKwlyZXQgPSBtYXJrZXJfcHJvYmVfcmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXBfbmV3IiwKKwkJCSJwaWQgJWQgc3RhdGUgJWxkICMjIHJxICVwIHRhc2sgJXAgcnEtPmN1cnIgJXAiLAorCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCSZ3YWtldXBfdHJhY2UpOworCWlmIChyZXQpIHsKKwkJcHJfaW5mbygid2FrZXVwIHRyYWNlOiBDb3VsZG4ndCBhZGQgbWFya2VyIgorCQkJIiBwcm9iZSB0byBrZXJuZWxfc2NoZWRfd2FrZXVwX25ld1xuIik7CisJCWdvdG8gZmFpbF9kZXByb2JlOworCX0KKworCXJldCA9IG1hcmtlcl9wcm9iZV9yZWdpc3Rlcigia2VybmVsX3NjaGVkX3NjaGVkdWxlIiwKKwkJInByZXZfcGlkICVkIG5leHRfcGlkICVkIHByZXZfc3RhdGUgJWxkICIKKwkJIiMjIHJxICVwIHByZXYgJXAgbmV4dCAlcCIsCisJCXNjaGVkX3N3aXRjaF9jYWxsYmFjaywKKwkJJndha2V1cF90cmFjZSk7CisJaWYgKHJldCkgeworCQlwcl9pbmZvKCJzY2hlZCB0cmFjZTogQ291bGRuJ3QgYWRkIG1hcmtlciIKKwkJCSIgcHJvYmUgdG8ga2VybmVsX3NjaGVkX3NjaGVkdWxlXG4iKTsKKwkJZ290byBmYWlsX2RlcHJvYmVfd2FrZV9uZXc7CisJfQorCisJd2FrZXVwX3Jlc2V0KHRyKTsKKworCS8qCisJICogRG9uJ3QgbGV0IHRoZSB0cmFjZXJfZW5hYmxlZCA9IDEgc2hvdyB1cCBiZWZvcmUKKwkgKiB0aGUgd2FrZXVwX3Rhc2sgaXMgcmVzZXQuIFRoaXMgbWF5IGJlIG92ZXJraWxsIHNpbmNlCisJICogd2FrZXVwX3Jlc2V0IGRvZXMgYSBzcGluX3VubG9jayBhZnRlciBzZXR0aW5nIHRoZQorCSAqIHdha2V1cF90YXNrIHRvIE5VTEwsIGJ1dCBJIHdhbnQgdG8gYmUgc2FmZS4KKwkgKiBUaGlzIGlzIGEgc2xvdyBwYXRoIGFueXdheS4KKwkgKi8KKwlzbXBfd21iKCk7CisKKwlyZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7CisKKwl0cmFjZXJfZW5hYmxlZCA9IDE7CisKKwlyZXR1cm47CitmYWlsX2RlcHJvYmVfd2FrZV9uZXc6CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF93YWtldXBfbmV3IiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZ3YWtldXBfdHJhY2UpOworZmFpbF9kZXByb2JlOgorCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwIiwKKwkJCQl3YWtlX3VwX2NhbGxiYWNrLAorCQkJCSZ3YWtldXBfdHJhY2UpOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3dha2V1cF90cmFjZXIoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl0cmFjZXJfZW5hYmxlZCA9IDA7CisJdW5yZWdpc3Rlcl9mdHJhY2VfZnVuY3Rpb24oJnRyYWNlX29wcyk7CisJbWFya2VyX3Byb2JlX3VucmVnaXN0ZXIoImtlcm5lbF9zY2hlZF9zY2hlZHVsZSIsCisJCQkJc2NoZWRfc3dpdGNoX2NhbGxiYWNrLAorCQkJCSZ3YWtldXBfdHJhY2UpOworCW1hcmtlcl9wcm9iZV91bnJlZ2lzdGVyKCJrZXJuZWxfc2NoZWRfd2FrZXVwX25ldyIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKKwltYXJrZXJfcHJvYmVfdW5yZWdpc3Rlcigia2VybmVsX3NjaGVkX3dha2V1cCIsCisJCQkJd2FrZV91cF9jYWxsYmFjaywKKwkJCQkmd2FrZXVwX3RyYWNlKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJd2FrZXVwX3RyYWNlID0gdHI7CisKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3dha2V1cF90cmFjZXIodHIpOworfQorCitzdGF0aWMgdm9pZCB3YWtldXBfdHJhY2VyX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKSB7CisJCXN0b3Bfd2FrZXVwX3RyYWNlcih0cik7CisJCS8qIG1ha2Ugc3VyZSB3ZSBwdXQgYmFjayBhbnkgdGFza3Mgd2UgYXJlIHRyYWNpbmcgKi8KKwkJd2FrZXVwX3Jlc2V0KHRyKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHdha2V1cF90cmFjZXJfY3RybF91cGRhdGUoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwlpZiAodHItPmN0cmwpCisJCXN0YXJ0X3dha2V1cF90cmFjZXIodHIpOworCWVsc2UKKwkJc3RvcF93YWtldXBfdHJhY2VyKHRyKTsKK30KKworc3RhdGljIHZvaWQgd2FrZXVwX3RyYWNlcl9vcGVuKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwkvKiBzdG9wIHRoZSB0cmFjZSB3aGlsZSBkdW1waW5nICovCisJaWYgKGl0ZXItPnRyLT5jdHJsKQorCQlzdG9wX3dha2V1cF90cmFjZXIoaXRlci0+dHIpOworfQorCitzdGF0aWMgdm9pZCB3YWtldXBfdHJhY2VyX2Nsb3NlKHN0cnVjdCB0cmFjZV9pdGVyYXRvciAqaXRlcikKK3sKKwkvKiBmb3JnZXQgYWJvdXQgYW55IHByb2Nlc3NlcyB3ZSB3ZXJlIHJlY29yZGluZyAqLworCWlmIChpdGVyLT50ci0+Y3RybCkKKwkJc3RhcnRfd2FrZXVwX3RyYWNlcihpdGVyLT50cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHdha2V1cF90cmFjZXIgX19yZWFkX21vc3RseSA9Cit7CisJLm5hbWUJCT0gIndha2V1cCIsCisJLmluaXQJCT0gd2FrZXVwX3RyYWNlcl9pbml0LAorCS5yZXNldAkJPSB3YWtldXBfdHJhY2VyX3Jlc2V0LAorCS5vcGVuCQk9IHdha2V1cF90cmFjZXJfb3BlbiwKKwkuY2xvc2UJCT0gd2FrZXVwX3RyYWNlcl9jbG9zZSwKKwkuY3RybF91cGRhdGUJPSB3YWtldXBfdHJhY2VyX2N0cmxfdXBkYXRlLAorCS5wcmludF9tYXgJPSAxLAorI2lmZGVmIENPTkZJR19GVFJBQ0VfU0VMRlRFU1QKKwkuc2VsZnRlc3QgICAgPSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3dha2V1cCwKKyNlbmRpZgorfTsKKworX19pbml0IHN0YXRpYyBpbnQgaW5pdF93YWtldXBfdHJhY2VyKHZvaWQpCit7CisJaW50IHJldDsKKworCXJldCA9IHJlZ2lzdGVyX3RyYWNlcigmd2FrZXVwX3RyYWNlcik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorZGV2aWNlX2luaXRjYWxsKGluaXRfd2FrZXVwX3RyYWNlcik7CmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3QuYyBiL2tlcm5lbC90cmFjZS90cmFjZV9zZWxmdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5MTFiN2UKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3QuYwpAQCAtMCwwICsxLDU2MyBAQAorLyogSW5jbHVkZSBpbiB0cmFjZS5jICovCisKKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKworc3RhdGljIGlubGluZSBpbnQgdHJhY2VfdmFsaWRfZW50cnkoc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyeSkKK3sKKwlzd2l0Y2ggKGVudHJ5LT50eXBlKSB7CisJY2FzZSBUUkFDRV9GTjoKKwljYXNlIFRSQUNFX0NUWDoKKwljYXNlIFRSQUNFX1dBS0U6CisJY2FzZSBUUkFDRV9TVEFDSzoKKwljYXNlIFRSQUNFX1NQRUNJQUw6CisJCXJldHVybiAxOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAordHJhY2VfdGVzdF9idWZmZXJfY3B1KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsIHN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGEpCit7CisJc3RydWN0IHRyYWNlX2VudHJ5ICplbnRyaWVzOworCXN0cnVjdCBwYWdlICpwYWdlOworCWludCBpZHggPSAwOworCWludCBpOworCisJQlVHX09OKGxpc3RfZW1wdHkoJmRhdGEtPnRyYWNlX3BhZ2VzKSk7CisJcGFnZSA9IGxpc3RfZW50cnkoZGF0YS0+dHJhY2VfcGFnZXMubmV4dCwgc3RydWN0IHBhZ2UsIGxydSk7CisJZW50cmllcyA9IHBhZ2VfYWRkcmVzcyhwYWdlKTsKKworCWNoZWNrX3BhZ2VzKGRhdGEpOworCWlmIChoZWFkX3BhZ2UoZGF0YSkgIT0gZW50cmllcykKKwkJZ290byBmYWlsZWQ7CisKKwkvKgorCSAqIFRoZSBzdGFydGluZyB0cmFjZSBidWZmZXIgYWx3YXlzIGhhcyB2YWxpZCBlbGVtZW50cywKKwkgKiBpZiBhbnkgZWxlbWVudCBleGlzdHMuCisJICovCisJZW50cmllcyA9IGhlYWRfcGFnZShkYXRhKTsKKworCWZvciAoaSA9IDA7IGkgPCB0ci0+ZW50cmllczsgaSsrKSB7CisKKwkJaWYgKGkgPCBkYXRhLT50cmFjZV9pZHggJiYgIXRyYWNlX3ZhbGlkX2VudHJ5KCZlbnRyaWVzW2lkeF0pKSB7CisJCQlwcmludGsoS0VSTl9DT05UICIuLiBpbnZhbGlkIGVudHJ5ICVkICIsCisJCQkJZW50cmllc1tpZHhdLnR5cGUpOworCQkJZ290byBmYWlsZWQ7CisJCX0KKworCQlpZHgrKzsKKwkJaWYgKGlkeCA+PSBFTlRSSUVTX1BFUl9QQUdFKSB7CisJCQlwYWdlID0gdmlydF90b19wYWdlKGVudHJpZXMpOworCQkJaWYgKHBhZ2UtPmxydS5uZXh0ID09ICZkYXRhLT50cmFjZV9wYWdlcykgeworCQkJCWlmIChpICE9IHRyLT5lbnRyaWVzIC0gMSkgeworCQkJCQlwcmludGsoS0VSTl9DT05UICIuLiBlbnRyaWVzIGJ1ZmZlciBtaXNtYXRjaCIpOworCQkJCQlnb3RvIGZhaWxlZDsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCXBhZ2UgPSBsaXN0X2VudHJ5KHBhZ2UtPmxydS5uZXh0LCBzdHJ1Y3QgcGFnZSwgbHJ1KTsKKwkJCQllbnRyaWVzID0gcGFnZV9hZGRyZXNzKHBhZ2UpOworCQkJfQorCQkJaWR4ID0gMDsKKwkJfQorCX0KKworCXBhZ2UgPSB2aXJ0X3RvX3BhZ2UoZW50cmllcyk7CisJaWYgKHBhZ2UtPmxydS5uZXh0ICE9ICZkYXRhLT50cmFjZV9wYWdlcykgeworCQlwcmludGsoS0VSTl9DT05UICIuLiB0b28gbWFueSBlbnRyaWVzIik7CisJCWdvdG8gZmFpbGVkOworCX0KKworCXJldHVybiAwOworCisgZmFpbGVkOgorCS8qIGRpc2FibGUgdHJhY2luZyAqLworCXRyYWNpbmdfZGlzYWJsZWQgPSAxOworCXByaW50ayhLRVJOX0NPTlQgIi4uIGNvcnJ1cHRlZCB0cmFjZSBidWZmZXIgLi4gIik7CisJcmV0dXJuIC0xOworfQorCisvKgorICogVGVzdCB0aGUgdHJhY2UgYnVmZmVyIHRvIHNlZSBpZiBhbGwgdGhlIGVsZW1lbnRzCisgKiBhcmUgc3RpbGwgc2FuZS4KKyAqLworc3RhdGljIGludCB0cmFjZV90ZXN0X2J1ZmZlcihzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyLCB1bnNpZ25lZCBsb25nICpjb3VudCkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzLCBjbnQgPSAwOworCWludCBjcHUsIHJldCA9IDA7CisKKwkvKiBEb24ndCBhbGxvdyBmbGlwcGluZyBvZiBtYXggdHJhY2VzIG5vdyAqLworCXJhd19sb2NhbF9pcnFfc2F2ZShmbGFncyk7CisJX19yYXdfc3Bpbl9sb2NrKCZmdHJhY2VfbWF4X2xvY2spOworCWZvcl9lYWNoX3Bvc3NpYmxlX2NwdShjcHUpIHsKKwkJaWYgKCFoZWFkX3BhZ2UodHItPmRhdGFbY3B1XSkpCisJCQljb250aW51ZTsKKworCQljbnQgKz0gdHItPmRhdGFbY3B1XS0+dHJhY2VfaWR4OworCisJCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyX2NwdSh0ciwgdHItPmRhdGFbY3B1XSk7CisJCWlmIChyZXQpCisJCQlicmVhazsKKwl9CisJX19yYXdfc3Bpbl91bmxvY2soJmZ0cmFjZV9tYXhfbG9jayk7CisJcmF3X2xvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKKworCWlmIChjb3VudCkKKwkJKmNvdW50ID0gY250OworCisJcmV0dXJuIHJldDsKK30KKworI2lmZGVmIENPTkZJR19GVFJBQ0UKKworI2lmZGVmIENPTkZJR19EWU5BTUlDX0ZUUkFDRQorCisjZGVmaW5lIF9fU1RSKHgpICN4CisjZGVmaW5lIFNUUih4KSBfX1NUUih4KQorCisvKiBUZXN0IGR5bmFtaWMgY29kZSBtb2RpZmljYXRpb24gYW5kIGZ0cmFjZSBmaWx0ZXJzICovCitpbnQgdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9keW5hbWljX3RyYWNpbmcoc3RydWN0IHRyYWNlciAqdHJhY2UsCisJCQkJCSAgIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJCQkJCSAgIGludCAoKmZ1bmMpKHZvaWQpKQoreworCXVuc2lnbmVkIGxvbmcgY291bnQ7CisJaW50IHJldDsKKwlpbnQgc2F2ZV9mdHJhY2VfZW5hYmxlZCA9IGZ0cmFjZV9lbmFibGVkOworCWludCBzYXZlX3RyYWNlcl9lbmFibGVkID0gdHJhY2VyX2VuYWJsZWQ7CisJY2hhciAqZnVuY19uYW1lOworCisJLyogVGhlIGZ0cmFjZSB0ZXN0IFBBU1NFRCAqLworCXByaW50ayhLRVJOX0NPTlQgIlBBU1NFRFxuIik7CisJcHJfaW5mbygiVGVzdGluZyBkeW5hbWljIGZ0cmFjZTogIik7CisKKwkvKiBlbmFibGUgdHJhY2luZywgYW5kIHJlY29yZCB0aGUgZmlsdGVyIGZ1bmN0aW9uICovCisJZnRyYWNlX2VuYWJsZWQgPSAxOworCXRyYWNlcl9lbmFibGVkID0gMTsKKworCS8qIHBhc3NlZCBpbiBieSBwYXJhbWV0ZXIgdG8gZm9vbCBnY2MgZnJvbSBvcHRpbWl6aW5nICovCisJZnVuYygpOworCisJLyogdXBkYXRlIHRoZSByZWNvcmRzICovCisJcmV0ID0gZnRyYWNlX2ZvcmNlX3VwZGF0ZSgpOworCWlmIChyZXQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gZnRyYWNlZCBmYWlsZWQgLi4gIik7CisJCXJldHVybiByZXQ7CisJfQorCisJLyoKKwkgKiBTb21lIGFyY2hzICpjb3VnaCpQb3dlclBDKmNvdWdoKiBhZGQgY2hhcmFjaHRlcnMgdG8gdGhlCisJICogc3RhcnQgb2YgdGhlIGZ1bmN0aW9uIG5hbWVzLiBXZSBzaW1wbHkgcHV0IGEgJyonIHRvCisJICogYWNjb21vZGF0ZSB0aGVtLgorCSAqLworCWZ1bmNfbmFtZSA9ICIqIiBTVFIoRFlOX0ZUUkFDRV9URVNUX05BTUUpOworCisJLyogZmlsdGVyIG9ubHkgb24gb3VyIGZ1bmN0aW9uICovCisJZnRyYWNlX3NldF9maWx0ZXIoZnVuY19uYW1lLCBzdHJsZW4oZnVuY19uYW1lKSwgMSk7CisKKwkvKiBlbmFibGUgdHJhY2luZyAqLworCXRyLT5jdHJsID0gMTsKKwl0cmFjZS0+aW5pdCh0cik7CisJLyogU2xlZXAgZm9yIGEgMS8xMCBvZiBhIHNlY29uZCAqLworCW1zbGVlcCgxMDApOworCisJLyogd2Ugc2hvdWxkIGhhdmUgbm90aGluZyBpbiB0aGUgYnVmZmVyICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsICZjb3VudCk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlpZiAoY291bnQpIHsKKwkJcmV0ID0gLTE7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIGZpbHRlciBkaWQgbm90IGZpbHRlciAuLiAiKTsKKwkJZ290byBvdXQ7CisJfQorCisJLyogY2FsbCBvdXIgZnVuY3Rpb24gYWdhaW4gKi8KKwlmdW5jKCk7CisKKwkvKiBzbGVlcCBhZ2FpbiAqLworCW1zbGVlcCgxMDApOworCisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwlmdHJhY2VfZW5hYmxlZCA9IDA7CisKKwkvKiBjaGVjayB0aGUgdHJhY2UgYnVmZmVyICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsICZjb3VudCk7CisJdHJhY2UtPnJlc2V0KHRyKTsKKworCS8qIHdlIHNob3VsZCBvbmx5IGhhdmUgb25lIGl0ZW0gKi8KKwlpZiAoIXJldCAmJiBjb3VudCAhPSAxKSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIGZpbHRlciBmYWlsZWQgY291bnQ9JWxkIC4uIiwgY291bnQpOworCQlyZXQgPSAtMTsKKwkJZ290byBvdXQ7CisJfQorIG91dDoKKwlmdHJhY2VfZW5hYmxlZCA9IHNhdmVfZnRyYWNlX2VuYWJsZWQ7CisJdHJhY2VyX2VuYWJsZWQgPSBzYXZlX3RyYWNlcl9lbmFibGVkOworCisJLyogRW5hYmxlIHRyYWNpbmcgb24gYWxsIGZ1bmN0aW9ucyBhZ2FpbiAqLworCWZ0cmFjZV9zZXRfZmlsdGVyKE5VTEwsIDAsIDEpOworCisJcmV0dXJuIHJldDsKK30KKyNlbHNlCisjIGRlZmluZSB0cmFjZV9zZWxmdGVzdF9zdGFydHVwX2R5bmFtaWNfdHJhY2luZyh0cmFjZSwgdHIsIGZ1bmMpICh7IDA7IH0pCisjZW5kaWYgLyogQ09ORklHX0RZTkFNSUNfRlRSQUNFICovCisvKgorICogU2ltcGxlIHZlcmlmaWNhdGlvbiB0ZXN0IG9mIGZ0cmFjZSBmdW5jdGlvbiB0cmFjZXIuCisgKiBFbmFibGUgZnRyYWNlLCBzbGVlcCAxLzEwIHNlY29uZCwgYW5kIHRoZW4gcmVhZCB0aGUgdHJhY2UKKyAqIGJ1ZmZlciB0byBzZWUgaWYgYWxsIGlzIGluIG9yZGVyLgorICovCitpbnQKK3RyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfZnVuY3Rpb24oc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCWludCBzYXZlX2Z0cmFjZV9lbmFibGVkID0gZnRyYWNlX2VuYWJsZWQ7CisJaW50IHNhdmVfdHJhY2VyX2VuYWJsZWQgPSB0cmFjZXJfZW5hYmxlZDsKKworCS8qIG1ha2Ugc3VyZSBtc2xlZXAgaGFzIGJlZW4gcmVjb3JkZWQgKi8KKwltc2xlZXAoMSk7CisKKwkvKiBmb3JjZSB0aGUgcmVjb3JkZWQgZnVuY3Rpb25zIHRvIGJlIHRyYWNlZCAqLworCXJldCA9IGZ0cmFjZV9mb3JjZV91cGRhdGUoKTsKKwlpZiAocmV0KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIGZ0cmFjZWQgZmFpbGVkIC4uICIpOworCQlyZXR1cm4gcmV0OworCX0KKworCS8qIHN0YXJ0IHRoZSB0cmFjaW5nICovCisJZnRyYWNlX2VuYWJsZWQgPSAxOworCXRyYWNlcl9lbmFibGVkID0gMTsKKworCXRyLT5jdHJsID0gMTsKKwl0cmFjZS0+aW5pdCh0cik7CisJLyogU2xlZXAgZm9yIGEgMS8xMCBvZiBhIHNlY29uZCAqLworCW1zbGVlcCgxMDApOworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJZnRyYWNlX2VuYWJsZWQgPSAwOworCisJLyogY2hlY2sgdGhlIHRyYWNlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwkJZ290byBvdXQ7CisJfQorCisJcmV0ID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9keW5hbWljX3RyYWNpbmcodHJhY2UsIHRyLAorCQkJCQkJICAgICBEWU5fRlRSQUNFX1RFU1RfTkFNRSk7CisKKyBvdXQ6CisJZnRyYWNlX2VuYWJsZWQgPSBzYXZlX2Z0cmFjZV9lbmFibGVkOworCXRyYWNlcl9lbmFibGVkID0gc2F2ZV90cmFjZXJfZW5hYmxlZDsKKworCS8qIGtpbGwgZnRyYWNlIHRvdGFsbHkgaWYgd2UgZmFpbGVkICovCisJaWYgKHJldCkKKwkJZnRyYWNlX2tpbGwoKTsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX0ZUUkFDRSAqLworCisjaWZkZWYgQ09ORklHX0lSUVNPRkZfVFJBQ0VSCitpbnQKK3RyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfaXJxc29mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwgc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl1bnNpZ25lZCBsb25nIHNhdmVfbWF4ID0gdHJhY2luZ19tYXhfbGF0ZW5jeTsKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisKKwkvKiBzdGFydCB0aGUgdHJhY2luZyAqLworCXRyLT5jdHJsID0gMTsKKwl0cmFjZS0+aW5pdCh0cik7CisJLyogcmVzZXQgdGhlIG1heCBsYXRlbmN5ICovCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IDA7CisJLyogZGlzYWJsZSBpbnRlcnJ1cHRzIGZvciBhIGJpdCAqLworCWxvY2FsX2lycV9kaXNhYmxlKCk7CisJdWRlbGF5KDEwMCk7CisJbG9jYWxfaXJxX2VuYWJsZSgpOworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmICghcmV0KQorCQlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcigmbWF4X3RyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gc2F2ZV9tYXg7CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19JUlFTT0ZGX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX1BSRUVNUFRfVFJBQ0VSCitpbnQKK3RyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfcHJlZW1wdG9mZihzdHJ1Y3QgdHJhY2VyICp0cmFjZSwgc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl1bnNpZ25lZCBsb25nIHNhdmVfbWF4ID0gdHJhY2luZ19tYXhfbGF0ZW5jeTsKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisKKwkvKiBzdGFydCB0aGUgdHJhY2luZyAqLworCXRyLT5jdHJsID0gMTsKKwl0cmFjZS0+aW5pdCh0cik7CisJLyogcmVzZXQgdGhlIG1heCBsYXRlbmN5ICovCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IDA7CisJLyogZGlzYWJsZSBwcmVlbXB0aW9uIGZvciBhIGJpdCAqLworCXByZWVtcHRfZGlzYWJsZSgpOworCXVkZWxheSgxMDApOworCXByZWVtcHRfZW5hYmxlKCk7CisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayBib3RoIHRyYWNlIGJ1ZmZlcnMgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgTlVMTCk7CisJaWYgKCFyZXQpCisJCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKCZtYXhfdHIsICZjb3VudCk7CisJdHJhY2UtPnJlc2V0KHRyKTsKKworCWlmICghcmV0ICYmICFjb3VudCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBubyBlbnRyaWVzIGZvdW5kIC4uIik7CisJCXJldCA9IC0xOworCX0KKworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSBzYXZlX21heDsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX1BSRUVNUFRfVFJBQ0VSICovCisKKyNpZiBkZWZpbmVkKENPTkZJR19JUlFTT0ZGX1RSQUNFUikgJiYgZGVmaW5lZChDT05GSUdfUFJFRU1QVF9UUkFDRVIpCitpbnQKK3RyYWNlX3NlbGZ0ZXN0X3N0YXJ0dXBfcHJlZW1wdGlycXNvZmYoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBzYXZlX21heCA9IHRyYWNpbmdfbWF4X2xhdGVuY3k7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCisJLyogcmVzZXQgdGhlIG1heCBsYXRlbmN5ICovCisJdHJhY2luZ19tYXhfbGF0ZW5jeSA9IDA7CisKKwkvKiBkaXNhYmxlIHByZWVtcHRpb24gYW5kIGludGVycnVwdHMgZm9yIGEgYml0ICovCisJcHJlZW1wdF9kaXNhYmxlKCk7CisJbG9jYWxfaXJxX2Rpc2FibGUoKTsKKwl1ZGVsYXkoMTAwKTsKKwlwcmVlbXB0X2VuYWJsZSgpOworCS8qIHJldmVyc2UgdGhlIG9yZGVyIG9mIHByZWVtcHQgdnMgaXJxcyAqLworCWxvY2FsX2lycV9lbmFibGUoKTsKKworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgYm90aCB0cmFjZSBidWZmZXJzICovCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIodHIsIE5VTEwpOworCWlmIChyZXQpCisJCWdvdG8gb3V0OworCisJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKwlpZiAocmV0KQorCQlnb3RvIG91dDsKKworCWlmICghcmV0ICYmICFjb3VudCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBubyBlbnRyaWVzIGZvdW5kIC4uIik7CisJCXJldCA9IC0xOworCQlnb3RvIG91dDsKKwl9CisKKwkvKiBkbyB0aGUgdGVzdCBieSBkaXNhYmxpbmcgaW50ZXJydXB0cyBmaXJzdCB0aGlzIHRpbWUgKi8KKwl0cmFjaW5nX21heF9sYXRlbmN5ID0gMDsKKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwlwcmVlbXB0X2Rpc2FibGUoKTsKKwlsb2NhbF9pcnFfZGlzYWJsZSgpOworCXVkZWxheSgxMDApOworCXByZWVtcHRfZW5hYmxlKCk7CisJLyogcmV2ZXJzZSB0aGUgb3JkZXIgb2YgcHJlZW1wdCB2cyBpcnFzICovCisJbG9jYWxfaXJxX2VuYWJsZSgpOworCisJLyogc3RvcCB0aGUgdHJhY2luZy4gKi8KKwl0ci0+Y3RybCA9IDA7CisJdHJhY2UtPmN0cmxfdXBkYXRlKHRyKTsKKwkvKiBjaGVjayBib3RoIHRyYWNlIGJ1ZmZlcnMgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgTlVMTCk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcigmbWF4X3RyLCAmY291bnQpOworCisJaWYgKCFyZXQgJiYgIWNvdW50KSB7CisJCXByaW50ayhLRVJOX0NPTlQgIi4uIG5vIGVudHJpZXMgZm91bmQgLi4iKTsKKwkJcmV0ID0gLTE7CisJCWdvdG8gb3V0OworCX0KKworIG91dDoKKwl0cmFjZS0+cmVzZXQodHIpOworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSBzYXZlX21heDsKKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX0lSUVNPRkZfVFJBQ0VSICYmIENPTkZJR19QUkVFTVBUX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX1NDSEVEX1RSQUNFUgorc3RhdGljIGludCB0cmFjZV93YWtldXBfdGVzdF90aHJlYWQodm9pZCAqZGF0YSkKK3sKKwkvKiBNYWtlIHRoaXMgYSBSVCB0aHJlYWQsIGRvZXNuJ3QgbmVlZCB0byBiZSB0b28gaGlnaCAqLworCXN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHsgLnNjaGVkX3ByaW9yaXR5ID0gNSB9OworCXN0cnVjdCBjb21wbGV0aW9uICp4ID0gZGF0YTsKKworCXNjaGVkX3NldHNjaGVkdWxlcihjdXJyZW50LCBTQ0hFRF9GSUZPLCAmcGFyYW0pOworCisJLyogTWFrZSBpdCBrbm93IHdlIGhhdmUgYSBuZXcgcHJpbyAqLworCWNvbXBsZXRlKHgpOworCisJLyogbm93IGdvIHRvIHNsZWVwIGFuZCBsZXQgdGhlIHRlc3Qgd2FrZSB1cyB1cCAqLworCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7CisJc2NoZWR1bGUoKTsKKworCS8qIHdlIGFyZSBhd2FrZSwgbm93IHdhaXQgdG8gZGlzYXBwZWFyICovCisJd2hpbGUgKCFrdGhyZWFkX3Nob3VsZF9zdG9wKCkpIHsKKwkJLyoKKwkJICogVGhpcyBpcyBhbiBSVCB0YXNrLCBkbyBzaG9ydCBzbGVlcHMgdG8gbGV0CisJCSAqIG90aGVycyBydW4uCisJCSAqLworCQltc2xlZXAoMTAwKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworaW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3dha2V1cChzdHJ1Y3QgdHJhY2VyICp0cmFjZSwgc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl1bnNpZ25lZCBsb25nIHNhdmVfbWF4ID0gdHJhY2luZ19tYXhfbGF0ZW5jeTsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnA7CisJc3RydWN0IGNvbXBsZXRpb24gaXNydDsKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisKKwlpbml0X2NvbXBsZXRpb24oJmlzcnQpOworCisJLyogY3JlYXRlIGEgaGlnaCBwcmlvIHRocmVhZCAqLworCXAgPSBrdGhyZWFkX3J1bih0cmFjZV93YWtldXBfdGVzdF90aHJlYWQsICZpc3J0LCAiZnRyYWNlLXRlc3QiKTsKKwlpZiAoSVNfRVJSKHApKSB7CisJCXByaW50ayhLRVJOX0NPTlQgIkZhaWxlZCB0byBjcmVhdGUgZnRyYWNlIHdha2V1cCB0ZXN0IHRocmVhZCAiKTsKKwkJcmV0dXJuIC0xOworCX0KKworCS8qIG1ha2Ugc3VyZSB0aGUgdGhyZWFkIGlzIHJ1bm5pbmcgYXQgYW4gUlQgcHJpbyAqLworCXdhaXRfZm9yX2NvbXBsZXRpb24oJmlzcnQpOworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIHJlc2V0IHRoZSBtYXggbGF0ZW5jeSAqLworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSAwOworCisJLyogc2xlZXAgdG8gbGV0IHRoZSBSVCB0aHJlYWQgc2xlZXAgdG9vICovCisJbXNsZWVwKDEwMCk7CisKKwkvKgorCSAqIFllcyB0aGlzIGlzIHNsaWdodGx5IHJhY3kuIEl0IGlzIHBvc3NpYmxlIHRoYXQgZm9yIHNvbWUKKwkgKiBzdHJhbmdlIHJlYXNvbiB0aGF0IHRoZSBSVCB0aHJlYWQgd2UgY3JlYXRlZCwgZGlkIG5vdAorCSAqIGNhbGwgc2NoZWR1bGUgZm9yIDEwMG1zIGFmdGVyIGRvaW5nIHRoZSBjb21wbGV0aW9uLAorCSAqIGFuZCB3ZSBkbyBhIHdha2V1cCBvbiBhIHRhc2sgdGhhdCBhbHJlYWR5IGlzIGF3YWtlLgorCSAqIEJ1dCB0aGF0IGlzIGV4dHJlbWVseSB1bmxpa2VseSwgYW5kIHRoZSB3b3JzdCB0aGluZyB0aGF0CisJICogaGFwcGVucyBpbiBzdWNoIGEgY2FzZSwgaXMgdGhhdCB3ZSBkaXNhYmxlIHRyYWNpbmcuCisJICogSG9uZXN0bHksIGlmIHRoaXMgcmFjZSBkb2VzIGhhcHBlbiBzb21ldGhpbmcgaXMgaG9ycmlibGUKKwkgKiB3cm9uZyB3aXRoIHRoZSBzeXN0ZW0uCisJICovCisKKwl3YWtlX3VwX3Byb2Nlc3MocCk7CisKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIGJvdGggdHJhY2UgYnVmZmVycyAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCBOVUxMKTsKKwlpZiAoIXJldCkKKwkJcmV0ID0gdHJhY2VfdGVzdF9idWZmZXIoJm1heF90ciwgJmNvdW50KTsKKworCisJdHJhY2UtPnJlc2V0KHRyKTsKKworCXRyYWNpbmdfbWF4X2xhdGVuY3kgPSBzYXZlX21heDsKKworCS8qIGtpbGwgdGhlIHRocmVhZCAqLworCWt0aHJlYWRfc3RvcChwKTsKKworCWlmICghcmV0ICYmICFjb3VudCkgeworCQlwcmludGsoS0VSTl9DT05UICIuLiBubyBlbnRyaWVzIGZvdW5kIC4uIik7CisJCXJldCA9IC0xOworCX0KKworCXJldHVybiByZXQ7Cit9CisjZW5kaWYgLyogQ09ORklHX1NDSEVEX1RSQUNFUiAqLworCisjaWZkZWYgQ09ORklHX0NPTlRFWFRfU1dJVENIX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3NjaGVkX3N3aXRjaChzdHJ1Y3QgdHJhY2VyICp0cmFjZSwgc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwl1bnNpZ25lZCBsb25nIGNvdW50OworCWludCByZXQ7CisKKwkvKiBzdGFydCB0aGUgdHJhY2luZyAqLworCXRyLT5jdHJsID0gMTsKKwl0cmFjZS0+aW5pdCh0cik7CisJLyogU2xlZXAgZm9yIGEgMS8xMCBvZiBhIHNlY29uZCAqLworCW1zbGVlcCgxMDApOworCS8qIHN0b3AgdGhlIHRyYWNpbmcuICovCisJdHItPmN0cmwgPSAwOworCXRyYWNlLT5jdHJsX3VwZGF0ZSh0cik7CisJLyogY2hlY2sgdGhlIHRyYWNlIGJ1ZmZlciAqLworCXJldCA9IHRyYWNlX3Rlc3RfYnVmZmVyKHRyLCAmY291bnQpOworCXRyYWNlLT5yZXNldCh0cik7CisKKwlpZiAoIXJldCAmJiAhY291bnQpIHsKKwkJcHJpbnRrKEtFUk5fQ09OVCAiLi4gbm8gZW50cmllcyBmb3VuZCAuLiIpOworCQlyZXQgPSAtMTsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorI2VuZGlmIC8qIENPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVIgKi8KKworI2lmZGVmIENPTkZJR19TWVNQUk9GX1RSQUNFUgoraW50Cit0cmFjZV9zZWxmdGVzdF9zdGFydHVwX3N5c3Byb2Yoc3RydWN0IHRyYWNlciAqdHJhY2UsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJdW5zaWduZWQgbG9uZyBjb3VudDsKKwlpbnQgcmV0OworCisJLyogc3RhcnQgdGhlIHRyYWNpbmcgKi8KKwl0ci0+Y3RybCA9IDE7CisJdHJhY2UtPmluaXQodHIpOworCS8qIFNsZWVwIGZvciBhIDEvMTAgb2YgYSBzZWNvbmQgKi8KKwltc2xlZXAoMTAwKTsKKwkvKiBzdG9wIHRoZSB0cmFjaW5nLiAqLworCXRyLT5jdHJsID0gMDsKKwl0cmFjZS0+Y3RybF91cGRhdGUodHIpOworCS8qIGNoZWNrIHRoZSB0cmFjZSBidWZmZXIgKi8KKwlyZXQgPSB0cmFjZV90ZXN0X2J1ZmZlcih0ciwgJmNvdW50KTsKKwl0cmFjZS0+cmVzZXQodHIpOworCisJcmV0dXJuIHJldDsKK30KKyNlbmRpZiAvKiBDT05GSUdfU1lTUFJPRl9UUkFDRVIgKi8KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zZWxmdGVzdF9keW5hbWljLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZGQ3N2MKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc2VsZnRlc3RfZHluYW1pYy5jCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgInRyYWNlLmgiCisKK2ludCBEWU5fRlRSQUNFX1RFU1RfTkFNRSh2b2lkKQoreworCS8qIHVzZWQgdG8gY2FsbCBtY291bnQgKi8KKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2tlcm5lbC90cmFjZS90cmFjZV9zeXNwcm9mLmMgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzcHJvZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIzMDFlMWUKLS0tIC9kZXYvbnVsbAorKysgYi9rZXJuZWwvdHJhY2UvdHJhY2Vfc3lzcHJvZi5jCkBAIC0wLDAgKzEsMzYzIEBACisvKgorICogdHJhY2Ugc3RhY2sgdHJhY2VzCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIFNvZXJlbiBTYW5kbWFubgorICogQ29weXJpZ2h0IChDKSAyMDA3IFN0ZXZlbiBSb3N0ZWR0IDxzcm9zdGVkdEByZWRoYXQuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDA4IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgorICovCisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CisjaW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC9mdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorCisjaW5jbHVkZSA8YXNtL3N0YWNrdHJhY2UuaD4KKworI2luY2x1ZGUgInRyYWNlLmgiCisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VfYXJyYXkJKnN5c3Byb2ZfdHJhY2U7CitzdGF0aWMgaW50IF9fcmVhZF9tb3N0bHkJdHJhY2VyX2VuYWJsZWQ7CisKKy8qCisgKiAxIG1zZWMgc2FtcGxlIGludGVydmFsIGJ5IGRlZmF1bHQ6CisgKi8KK3N0YXRpYyB1bnNpZ25lZCBsb25nIHNhbXBsZV9wZXJpb2QgPSAxMDAwMDAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBzYW1wbGVfbWF4X2RlcHRoID0gNTEyOworCitzdGF0aWMgREVGSU5FX01VVEVYKHNhbXBsZV90aW1lcl9sb2NrKTsKKy8qCisgKiBQZXIgQ1BVIGhydGltZXJzIHRoYXQgZG8gdGhlIHByb2ZpbGluZzoKKyAqLworc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBocnRpbWVyLCBzdGFja190cmFjZV9ocnRpbWVyKTsKKworc3RydWN0IHN0YWNrX2ZyYW1lIHsKKwljb25zdCB2b2lkIF9fdXNlcgkqbmV4dF9mcDsKKwl1bnNpZ25lZCBsb25nCQlyZXR1cm5fYWRkcmVzczsKK307CisKK3N0YXRpYyBpbnQgY29weV9zdGFja19mcmFtZShjb25zdCB2b2lkIF9fdXNlciAqZnAsIHN0cnVjdCBzdGFja19mcmFtZSAqZnJhbWUpCit7CisJaW50IHJldDsKKworCWlmICghYWNjZXNzX29rKFZFUklGWV9SRUFELCBmcCwgc2l6ZW9mKCpmcmFtZSkpKQorCQlyZXR1cm4gMDsKKworCXJldCA9IDE7CisJcGFnZWZhdWx0X2Rpc2FibGUoKTsKKwlpZiAoX19jb3B5X2Zyb21fdXNlcl9pbmF0b21pYyhmcmFtZSwgZnAsIHNpemVvZigqZnJhbWUpKSkKKwkJcmV0ID0gMDsKKwlwYWdlZmF1bHRfZW5hYmxlKCk7CisKKwlyZXR1cm4gcmV0OworfQorCitzdHJ1Y3QgYmFja3RyYWNlX2luZm8geworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUJKmRhdGE7CisJc3RydWN0IHRyYWNlX2FycmF5CSp0cjsKKwlpbnQJCQlwb3M7Cit9OworCitzdGF0aWMgdm9pZAorYmFja3RyYWNlX3dhcm5pbmdfc3ltYm9sKHZvaWQgKmRhdGEsIGNoYXIgKm1zZywgdW5zaWduZWQgbG9uZyBzeW1ib2wpCit7CisJLyogSWdub3JlIHdhcm5pbmdzICovCit9CisKK3N0YXRpYyB2b2lkIGJhY2t0cmFjZV93YXJuaW5nKHZvaWQgKmRhdGEsIGNoYXIgKm1zZykKK3sKKwkvKiBJZ25vcmUgd2FybmluZ3MgKi8KK30KKworc3RhdGljIGludCBiYWNrdHJhY2Vfc3RhY2sodm9pZCAqZGF0YSwgY2hhciAqbmFtZSkKK3sKKwkvKiBEb24ndCBib3RoZXIgd2l0aCBJUlEgc3RhY2tzIGZvciBub3cgKi8KKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB2b2lkIGJhY2t0cmFjZV9hZGRyZXNzKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxvbmcgYWRkciwgaW50IHJlbGlhYmxlKQoreworCXN0cnVjdCBiYWNrdHJhY2VfaW5mbyAqaW5mbyA9IGRhdGE7CisKKwlpZiAoaW5mby0+cG9zIDwgc2FtcGxlX21heF9kZXB0aCAmJiByZWxpYWJsZSkgeworCQlfX3RyYWNlX3NwZWNpYWwoaW5mby0+dHIsIGluZm8tPmRhdGEsIDEsIGFkZHIsIDApOworCisJCWluZm8tPnBvcysrOworCX0KK30KKworY29uc3Qgc3RhdGljIHN0cnVjdCBzdGFja3RyYWNlX29wcyBiYWNrdHJhY2Vfb3BzID0geworCS53YXJuaW5nCQk9IGJhY2t0cmFjZV93YXJuaW5nLAorCS53YXJuaW5nX3N5bWJvbAkJPSBiYWNrdHJhY2Vfd2FybmluZ19zeW1ib2wsCisJLnN0YWNrCQkJPSBiYWNrdHJhY2Vfc3RhY2ssCisJLmFkZHJlc3MJCT0gYmFja3RyYWNlX2FkZHJlc3MsCit9OworCitzdGF0aWMgaW50Cit0cmFjZV9rZXJuZWwoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCB0cmFjZV9hcnJheSAqdHIsCisJICAgICBzdHJ1Y3QgdHJhY2VfYXJyYXlfY3B1ICpkYXRhKQoreworCXN0cnVjdCBiYWNrdHJhY2VfaW5mbyBpbmZvOworCXVuc2lnbmVkIGxvbmcgYnA7CisJY2hhciAqc3RhY2s7CisKKwlpbmZvLnRyID0gdHI7CisJaW5mby5kYXRhID0gZGF0YTsKKwlpbmZvLnBvcyA9IDE7CisKKwlfX3RyYWNlX3NwZWNpYWwoaW5mby50ciwgaW5mby5kYXRhLCAxLCByZWdzLT5pcCwgMCk7CisKKwlzdGFjayA9ICgoY2hhciAqKXJlZ3MgKyBzaXplb2Yoc3RydWN0IHB0X3JlZ3MpKTsKKyNpZmRlZiBDT05GSUdfRlJBTUVfUE9JTlRFUgorCWJwID0gcmVncy0+YnA7CisjZWxzZQorCWJwID0gMDsKKyNlbmRpZgorCisJZHVtcF90cmFjZShOVUxMLCByZWdzLCAodm9pZCAqKXN0YWNrLCBicCwgJmJhY2t0cmFjZV9vcHMsICZpbmZvKTsKKworCXJldHVybiBpbmZvLnBvczsKK30KKworc3RhdGljIHZvaWQgdGltZXJfbm90aWZ5KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBpbnQgY3B1KQoreworCXN0cnVjdCB0cmFjZV9hcnJheV9jcHUgKmRhdGE7CisJc3RydWN0IHN0YWNrX2ZyYW1lIGZyYW1lOworCXN0cnVjdCB0cmFjZV9hcnJheSAqdHI7CisJY29uc3Qgdm9pZCBfX3VzZXIgKmZwOworCWludCBpc191c2VyOworCWludCBpOworCisJaWYgKCFyZWdzKQorCQlyZXR1cm47CisKKwl0ciA9IHN5c3Byb2ZfdHJhY2U7CisJZGF0YSA9IHRyLT5kYXRhW2NwdV07CisJaXNfdXNlciA9IHVzZXJfbW9kZShyZWdzKTsKKworCWlmICghY3VycmVudCB8fCBjdXJyZW50LT5waWQgPT0gMCkKKwkJcmV0dXJuOworCisJaWYgKGlzX3VzZXIgJiYgY3VycmVudC0+c3RhdGUgIT0gVEFTS19SVU5OSU5HKQorCQlyZXR1cm47CisKKwlfX3RyYWNlX3NwZWNpYWwodHIsIGRhdGEsIDAsIDAsIGN1cnJlbnQtPnBpZCk7CisKKwlpZiAoIWlzX3VzZXIpCisJCWkgPSB0cmFjZV9rZXJuZWwocmVncywgdHIsIGRhdGEpOworCWVsc2UKKwkJaSA9IDA7CisKKwkvKgorCSAqIFRyYWNlIHVzZXIgc3RhY2sgaWYgd2UgYXJlIG5vdCBhIGtlcm5lbCB0aHJlYWQKKwkgKi8KKwlpZiAoY3VycmVudC0+bW0gJiYgaSA8IHNhbXBsZV9tYXhfZGVwdGgpIHsKKwkJcmVncyA9IChzdHJ1Y3QgcHRfcmVncyAqKWN1cnJlbnQtPnRocmVhZC5zcDAgLSAxOworCisJCWZwID0gKHZvaWQgX191c2VyICopcmVncy0+YnA7CisKKwkJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAyLCByZWdzLT5pcCwgMCk7CisKKwkJd2hpbGUgKGkgPCBzYW1wbGVfbWF4X2RlcHRoKSB7CisJCQlmcmFtZS5uZXh0X2ZwID0gMDsKKwkJCWZyYW1lLnJldHVybl9hZGRyZXNzID0gMDsKKwkJCWlmICghY29weV9zdGFja19mcmFtZShmcCwgJmZyYW1lKSkKKwkJCQlicmVhazsKKwkJCWlmICgodW5zaWduZWQgbG9uZylmcCA8IHJlZ3MtPnNwKQorCQkJCWJyZWFrOworCisJCQlfX3RyYWNlX3NwZWNpYWwodHIsIGRhdGEsIDIsIGZyYW1lLnJldHVybl9hZGRyZXNzLAorCQkJCQkodW5zaWduZWQgbG9uZylmcCk7CisJCQlmcCA9IGZyYW1lLm5leHRfZnA7CisKKwkJCWkrKzsKKwkJfQorCisJfQorCisJLyoKKwkgKiBTcGVjaWFsIHRyYWNlIGVudHJ5IGlmIHdlIG92ZXJmbG93IHRoZSBtYXggZGVwdGg6CisJICovCisJaWYgKGkgPT0gc2FtcGxlX21heF9kZXB0aCkKKwkJX190cmFjZV9zcGVjaWFsKHRyLCBkYXRhLCAtMSwgLTEsIC0xKTsKKworCV9fdHJhY2Vfc3BlY2lhbCh0ciwgZGF0YSwgMywgY3VycmVudC0+cGlkLCBpKTsKK30KKworc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IHN0YWNrX3RyYWNlX3RpbWVyX2ZuKHN0cnVjdCBocnRpbWVyICpocnRpbWVyKQoreworCS8qIHRyYWNlIGhlcmUgKi8KKwl0aW1lcl9ub3RpZnkoZ2V0X2lycV9yZWdzKCksIHNtcF9wcm9jZXNzb3JfaWQoKSk7CisKKwlocnRpbWVyX2ZvcndhcmRfbm93KGhydGltZXIsIG5zX3RvX2t0aW1lKHNhbXBsZV9wZXJpb2QpKTsKKworCXJldHVybiBIUlRJTUVSX1JFU1RBUlQ7Cit9CisKK3N0YXRpYyB2b2lkIHN0YXJ0X3N0YWNrX3RpbWVyKGludCBjcHUpCit7CisJc3RydWN0IGhydGltZXIgKmhydGltZXIgPSAmcGVyX2NwdShzdGFja190cmFjZV9ocnRpbWVyLCBjcHUpOworCisJaHJ0aW1lcl9pbml0KGhydGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7CisJaHJ0aW1lci0+ZnVuY3Rpb24gPSBzdGFja190cmFjZV90aW1lcl9mbjsKKwlocnRpbWVyLT5jYl9tb2RlID0gSFJUSU1FUl9DQl9JUlFTQUZFX05PX1NPRlRJUlE7CisKKwlocnRpbWVyX3N0YXJ0KGhydGltZXIsIG5zX3RvX2t0aW1lKHNhbXBsZV9wZXJpb2QpLCBIUlRJTUVSX01PREVfUkVMKTsKK30KKworc3RhdGljIHZvaWQgc3RhcnRfc3RhY2tfdGltZXJzKHZvaWQpCit7CisJY3B1bWFza190IHNhdmVkX21hc2sgPSBjdXJyZW50LT5jcHVzX2FsbG93ZWQ7CisJaW50IGNwdTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CisJCXNldF9jcHVzX2FsbG93ZWRfcHRyKGN1cnJlbnQsICZjcHVtYXNrX29mX2NwdShjcHUpKTsKKwkJc3RhcnRfc3RhY2tfdGltZXIoY3B1KTsKKwl9CisJc2V0X2NwdXNfYWxsb3dlZF9wdHIoY3VycmVudCwgJnNhdmVkX21hc2spOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3N0YWNrX3RpbWVyKGludCBjcHUpCit7CisJc3RydWN0IGhydGltZXIgKmhydGltZXIgPSAmcGVyX2NwdShzdGFja190cmFjZV9ocnRpbWVyLCBjcHUpOworCisJaHJ0aW1lcl9jYW5jZWwoaHJ0aW1lcik7Cit9CisKK3N0YXRpYyB2b2lkIHN0b3Bfc3RhY2tfdGltZXJzKHZvaWQpCit7CisJaW50IGNwdTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQlzdG9wX3N0YWNrX3RpbWVyKGNwdSk7Cit9CisKK3N0YXRpYyB2b2lkIHN0YWNrX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaW50IGNwdTsKKworCXRyLT50aW1lX3N0YXJ0ID0gZnRyYWNlX25vdyh0ci0+Y3B1KTsKKworCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KQorCQl0cmFjaW5nX3Jlc2V0KHRyLT5kYXRhW2NwdV0pOworfQorCitzdGF0aWMgdm9pZCBzdGFydF9zdGFja190cmFjZShzdHJ1Y3QgdHJhY2VfYXJyYXkgKnRyKQoreworCW11dGV4X2xvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKwlzdGFja19yZXNldCh0cik7CisJc3RhcnRfc3RhY2tfdGltZXJzKCk7CisJdHJhY2VyX2VuYWJsZWQgPSAxOworCW11dGV4X3VubG9jaygmc2FtcGxlX3RpbWVyX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBzdG9wX3N0YWNrX3RyYWNlKHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJbXV0ZXhfbG9jaygmc2FtcGxlX3RpbWVyX2xvY2spOworCXN0b3Bfc3RhY2tfdGltZXJzKCk7CisJdHJhY2VyX2VuYWJsZWQgPSAwOworCW11dGV4X3VubG9jaygmc2FtcGxlX3RpbWVyX2xvY2spOworfQorCitzdGF0aWMgdm9pZCBzdGFja190cmFjZV9pbml0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJc3lzcHJvZl90cmFjZSA9IHRyOworCisJaWYgKHRyLT5jdHJsKQorCQlzdGFydF9zdGFja190cmFjZSh0cik7Cit9CisKK3N0YXRpYyB2b2lkIHN0YWNrX3RyYWNlX3Jlc2V0KHN0cnVjdCB0cmFjZV9hcnJheSAqdHIpCit7CisJaWYgKHRyLT5jdHJsKQorCQlzdG9wX3N0YWNrX3RyYWNlKHRyKTsKK30KKworc3RhdGljIHZvaWQgc3RhY2tfdHJhY2VfY3RybF91cGRhdGUoc3RydWN0IHRyYWNlX2FycmF5ICp0cikKK3sKKwkvKiBXaGVuIHN0YXJ0aW5nIGEgbmV3IHRyYWNlLCByZXNldCB0aGUgYnVmZmVycyAqLworCWlmICh0ci0+Y3RybCkKKwkJc3RhcnRfc3RhY2tfdHJhY2UodHIpOworCWVsc2UKKwkJc3RvcF9zdGFja190cmFjZSh0cik7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgdHJhY2VyIHN0YWNrX3RyYWNlIF9fcmVhZF9tb3N0bHkgPQoreworCS5uYW1lCQk9ICJzeXNwcm9mIiwKKwkuaW5pdAkJPSBzdGFja190cmFjZV9pbml0LAorCS5yZXNldAkJPSBzdGFja190cmFjZV9yZXNldCwKKwkuY3RybF91cGRhdGUJPSBzdGFja190cmFjZV9jdHJsX3VwZGF0ZSwKKyNpZmRlZiBDT05GSUdfRlRSQUNFX1NFTEZURVNUCisJLnNlbGZ0ZXN0ICAgID0gdHJhY2Vfc2VsZnRlc3Rfc3RhcnR1cF9zeXNwcm9mLAorI2VuZGlmCit9OworCitfX2luaXQgc3RhdGljIGludCBpbml0X3N0YWNrX3RyYWNlKHZvaWQpCit7CisJcmV0dXJuIHJlZ2lzdGVyX3RyYWNlcigmc3RhY2tfdHJhY2UpOworfQorZGV2aWNlX2luaXRjYWxsKGluaXRfc3RhY2tfdHJhY2UpOworCisjZGVmaW5lIE1BWF9MT05HX0RJR0lUUyAyMgorCitzdGF0aWMgc3NpemVfdAorc3lzcHJvZl9zYW1wbGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKnVidWYsCisJCSAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciBidWZbTUFYX0xPTkdfRElHSVRTXTsKKwlpbnQgcjsKKworCXIgPSBzcHJpbnRmKGJ1ZiwgIiVsZFxuIiwgbnNlY3NfdG9fdXNlY3Moc2FtcGxlX3BlcmlvZCkpOworCisJcmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVidWYsIGNudCwgcHBvcywgYnVmLCByKTsKK30KKworc3RhdGljIHNzaXplX3QKK3N5c3Byb2Zfc2FtcGxlX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLCBjb25zdCBjaGFyIF9fdXNlciAqdWJ1ZiwKKwkJICAgICBzaXplX3QgY250LCBsb2ZmX3QgKnBwb3MpCit7CisJY2hhciBidWZbTUFYX0xPTkdfRElHSVRTXTsKKwl1bnNpZ25lZCBsb25nIHZhbDsKKworCWlmIChjbnQgPiBNQVhfTE9OR19ESUdJVFMtMSkKKwkJY250ID0gTUFYX0xPTkdfRElHSVRTLTE7CisKKwlpZiAoY29weV9mcm9tX3VzZXIoJmJ1ZiwgdWJ1ZiwgY250KSkKKwkJcmV0dXJuIC1FRkFVTFQ7CisKKwlidWZbY250XSA9IDA7CisKKwl2YWwgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDEwKTsKKwkvKgorCSAqIEVuZm9yY2UgYSBtaW5pbXVtIHNhbXBsZSBwZXJpb2Qgb2YgMTAwIHVzZWNzOgorCSAqLworCWlmICh2YWwgPCAxMDApCisJCXZhbCA9IDEwMDsKKworCW11dGV4X2xvY2soJnNhbXBsZV90aW1lcl9sb2NrKTsKKwlzdG9wX3N0YWNrX3RpbWVycygpOworCXNhbXBsZV9wZXJpb2QgPSB2YWwgKiAxMDAwOworCXN0YXJ0X3N0YWNrX3RpbWVycygpOworCW11dGV4X3VubG9jaygmc2FtcGxlX3RpbWVyX2xvY2spOworCisJcmV0dXJuIGNudDsKK30KKworc3RhdGljIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc3lzcHJvZl9zYW1wbGVfZm9wcyA9IHsKKwkucmVhZAkJPSBzeXNwcm9mX3NhbXBsZV9yZWFkLAorCS53cml0ZQkJPSBzeXNwcm9mX3NhbXBsZV93cml0ZSwKK307CisKK3ZvaWQgaW5pdF90cmFjZXJfc3lzcHJvZl9kZWJ1Z2ZzKHN0cnVjdCBkZW50cnkgKmRfdHJhY2VyKQoreworCXN0cnVjdCBkZW50cnkgKmVudHJ5OworCisJZW50cnkgPSBkZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzeXNwcm9mX3NhbXBsZV9wZXJpb2QiLCAwNjQ0LAorCQkJZF90cmFjZXIsIE5VTEwsICZzeXNwcm9mX3NhbXBsZV9mb3BzKTsKKwlpZiAoZW50cnkpCisJCXJldHVybjsKKwlwcl93YXJuaW5nKCJDb3VsZCBub3QgY3JlYXRlIGRlYnVnZnMgJ2R5bl9mdHJhY2VfdG90YWxfaW5mbycgZW50cnlcbiIpOworfQpkaWZmIC0tZ2l0IGEva2VybmVsL3dvcmtxdWV1ZS5jIGIva2VybmVsL3dvcmtxdWV1ZS5jCmluZGV4IDI5ZmMzOWYuLmNlNzc5OTUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC93b3JrcXVldWUuYworKysgYi9rZXJuZWwvd29ya3F1ZXVlLmMKQEAgLTEzLDcgKzEzLDcgQEAKICAqICAgS2FpIFBldHprZSA8d3BwQG1hcmllLnBoeXNpay50dS1iZXJsaW4uZGU+CiAgKiAgIFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+CiAgKgotICogTWFkZSB0byB1c2UgYWxsb2NfcGVyY3B1IGJ5IENocmlzdG9waCBMYW1ldGVyIDxjbGFtZXRlckBzZ2kuY29tPi4KKyAqIE1hZGUgdG8gdXNlIGFsbG9jX3BlcmNwdSBieSBDaHJpc3RvcGggTGFtZXRlci4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZy5kZWJ1ZyBiL2xpYi9LY29uZmlnLmRlYnVnCmluZGV4IDYyNjNlMmQuLmM0NTllODUgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnLmRlYnVnCisrKyBiL2xpYi9LY29uZmlnLmRlYnVnCkBAIC02MzYsNiArNjM2LDggQEAKIAkgIEVuYWJsZSB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIExhdGVuY3lUT1AgdG9vbAogCSAgdG8gZmluZCBvdXQgd2hpY2ggdXNlcnNwYWNlIGlzIGJsb2NraW5nIG9uIHdoYXQga2VybmVsIG9wZXJhdGlvbnMuCiAKK3NvdXJjZSBrZXJuZWwvdHJhY2UvS2NvbmZpZworCiBjb25maWcgUFJPVklERV9PSENJMTM5NF9ETUFfSU5JVAogCWJvb2wgIlJlbW90ZSBkZWJ1Z2dpbmcgb3ZlciBGaXJlV2lyZSBlYXJseSBvbiBib290IgogCWRlcGVuZHMgb24gUENJICYmIFg4NgpkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlIGIvbGliL01ha2VmaWxlCmluZGV4IDc0YjBjZmIuLjRiODM2YTUgMTAwNjQ0Ci0tLSBhL2xpYi9NYWtlZmlsZQorKysgYi9saWIvTWFrZWZpbGUKQEAgLTgsNiArOCwxNSBAQAogCSBzaGExLm8gaXJxX3JlZ3MubyByZWNpcHJvY2FsX2Rpdi5vIGFyZ3Zfc3BsaXQubyBcCiAJIHByb3BvcnRpb25zLm8gcHJpb19oZWFwLm8gcmF0ZWxpbWl0Lm8KIAoraWZkZWYgQ09ORklHX0ZUUkFDRQorIyBEbyBub3QgcHJvZmlsZSBzdHJpbmcubywgc2luY2UgaXQgbWF5IGJlIHVzZWQgaW4gZWFybHkgYm9vdCBvciB2ZHNvCitDRkxBR1NfUkVNT1ZFX3N0cmluZy5vID0gLXBnCisjIEFsc28gZG8gbm90IHByb2ZpbGUgYW55IGRlYnVnIHV0aWxpdGllcworQ0ZMQUdTX1JFTU9WRV9zcGlubG9ja19kZWJ1Zy5vID0gLXBnCitDRkxBR1NfUkVNT1ZFX2xpc3RfZGVidWcubyA9IC1wZworQ0ZMQUdTX1JFTU9WRV9kZWJ1Z29iamVjdHMubyA9IC1wZworZW5kaWYKKwogbGliLSQoQ09ORklHX01NVSkgKz0gaW9yZW1hcC5vCiBsaWItJChDT05GSUdfU01QKSArPSBjcHVtYXNrLm8KIApkaWZmIC0tZ2l0IGEvbGliL2JpdHJldi5jIGIvbGliL2JpdHJldi5jCmluZGV4IDk4OWFmZjcuLjM5NTYyMDMgMTAwNjQ0Ci0tLSBhL2xpYi9iaXRyZXYuYworKysgYi9saWIvYml0cmV2LmMKQEAgLTQyLDEwICs0MiwxMSBAQAogfTsKIEVYUE9SVF9TWU1CT0xfR1BMKGJ5dGVfcmV2X3RhYmxlKTsKIAotc3RhdGljIF9fYWx3YXlzX2lubGluZSB1MTYgYml0cmV2MTYodTE2IHgpCit1MTYgYml0cmV2MTYodTE2IHgpCiB7CiAJcmV0dXJuIChiaXRyZXY4KHggJiAweGZmKSA8PCA4KSB8IGJpdHJldjgoeCA+PiA4KTsKIH0KK0VYUE9SVF9TWU1CT0woYml0cmV2MTYpOwogCiAvKioKICAqIGJpdHJldjMyIC0gcmV2ZXJzZSB0aGUgb3JkZXIgb2YgYml0cyBpbiBhIHUzMiB2YWx1ZQpkaWZmIC0tZ2l0IGEvbGliL2J1Zy5jIGIvbGliL2J1Zy5jCmluZGV4IDUzMGYzOGYuLmJmZWFmZDYgMTAwNjQ0Ci0tLSBhL2xpYi9idWcuYworKysgYi9saWIvYnVnLmMKQEAgLTM3LDYgKzM3LDcgQEAKICAqLwogI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9idWcuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogCkBAIC0xNDksNiArMTUwLDcgQEAKIAkJCSAgICAgICAodm9pZCAqKWJ1Z2FkZHIpOwogCiAJCXNob3dfcmVncyhyZWdzKTsKKwkJYWRkX3RhaW50KFRBSU5UX1dBUk4pOwogCQlyZXR1cm4gQlVHX1RSQVBfVFlQRV9XQVJOOwogCX0KIApkaWZmIC0tZ2l0IGEvbGliL2RlYnVnb2JqZWN0cy5jIGIvbGliL2RlYnVnb2JqZWN0cy5jCmluZGV4IGE3NmE1ZTEuLjg1YjE4ZDcgMTAwNjQ0Ci0tLSBhL2xpYi9kZWJ1Z29iamVjdHMuYworKysgYi9saWIvZGVidWdvYmplY3RzLmMKQEAgLTY4LDYgKzY4LDcgQEAKIHsKIAlnZnBfdCBnZnAgPSBHRlBfQVRPTUlDIHwgX19HRlBfTk9SRVRSWSB8IF9fR0ZQX05PV0FSTjsKIAlzdHJ1Y3QgZGVidWdfb2JqICpuZXc7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWlmIChsaWtlbHkob2JqX3Bvb2xfZnJlZSA+PSBPREVCVUdfUE9PTF9NSU5fTEVWRUwpKQogCQlyZXR1cm4gb2JqX3Bvb2xfZnJlZTsKQEAgLTgxLDEwICs4MiwxMCBAQAogCQlpZiAoIW5ldykKIAkJCXJldHVybiBvYmpfcG9vbF9mcmVlOwogCi0JCXNwaW5fbG9jaygmcG9vbF9sb2NrKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJnBvb2xfbG9jaywgZmxhZ3MpOwogCQlobGlzdF9hZGRfaGVhZCgmbmV3LT5ub2RlLCAmb2JqX3Bvb2wpOwogCQlvYmpfcG9vbF9mcmVlKys7Ci0JCXNwaW5fdW5sb2NrKCZwb29sX2xvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb29sX2xvY2ssIGZsYWdzKTsKIAl9CiAJcmV0dXJuIG9ial9wb29sX2ZyZWU7CiB9CkBAIC0xMTAsMTYgKzExMSwxMyBAQAogfQogCiAvKgotICogQWxsb2NhdGUgYSBuZXcgb2JqZWN0LiBJZiB0aGUgcG9vbCBpcyBlbXB0eSBhbmQgbm8gcmVmaWxsIHBvc3NpYmxlLAotICogc3dpdGNoIG9mZiB0aGUgZGVidWdnZXIuCisgKiBBbGxvY2F0ZSBhIG5ldyBvYmplY3QuIElmIHRoZSBwb29sIGlzIGVtcHR5LCBzd2l0Y2ggb2ZmIHRoZSBkZWJ1Z2dlci4KICAqLwogc3RhdGljIHN0cnVjdCBkZWJ1Z19vYmogKgogYWxsb2Nfb2JqZWN0KHZvaWQgKmFkZHIsIHN0cnVjdCBkZWJ1Z19idWNrZXQgKmIsIHN0cnVjdCBkZWJ1Z19vYmpfZGVzY3IgKmRlc2NyKQogewogCXN0cnVjdCBkZWJ1Z19vYmogKm9iaiA9IE5VTEw7Ci0JaW50IHJldHJ5ID0gMDsKIAotcmVwZWF0OgogCXNwaW5fbG9jaygmcG9vbF9sb2NrKTsKIAlpZiAob2JqX3Bvb2wuZmlyc3QpIHsKIAkJb2JqCSAgICA9IGhsaXN0X2VudHJ5KG9ial9wb29sLmZpcnN0LCB0eXBlb2YoKm9iaiksIG5vZGUpOwpAQCAtMTQxLDkgKzEzOSw2IEBACiAJfQogCXNwaW5fdW5sb2NrKCZwb29sX2xvY2spOwogCi0JaWYgKGZpbGxfcG9vbCgpICYmICFvYmogJiYgIXJldHJ5KyspCi0JCWdvdG8gcmVwZWF0OwotCiAJcmV0dXJuIG9iajsKIH0KIApAQCAtMjYxLDYgKzI1Niw4IEBACiAJc3RydWN0IGRlYnVnX29iaiAqb2JqOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKKwlmaWxsX3Bvb2woKTsKKwogCWRiID0gZ2V0X2J1Y2tldCgodW5zaWduZWQgbG9uZykgYWRkcik7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGItPmxvY2ssIGZsYWdzKTsKZGlmZiAtLWdpdCBhL2xpYi9kaXY2NC5jIGIvbGliL2RpdjY0LmMKaW5kZXggYmI1YmQwYy4uYTExMWViOCAxMDA2NDQKLS0tIGEvbGliL2RpdjY0LmMKKysrIGIvbGliL2RpdjY0LmMKQEAgLTk4LDMgKzk4LDEzIEBACiAjZW5kaWYKIAogI2VuZGlmIC8qIEJJVFNfUEVSX0xPTkcgPT0gMzIgKi8KKworLyoKKyAqIEl0ZXJhdGl2ZSBkaXYvbW9kIGZvciB1c2Ugd2hlbiBkaXZpZGVuZCBpcyBub3QgZXhwZWN0ZWQgdG8gYmUgbXVjaAorICogYmlnZ2VyIHRoYW4gZGl2aXNvci4KKyAqLwordTMyIGl0ZXJfZGl2X3U2NF9yZW0odTY0IGRpdmlkZW5kLCB1MzIgZGl2aXNvciwgdTY0ICpyZW1haW5kZXIpCit7CisJcmV0dXJuIF9faXRlcl9kaXZfdTY0X3JlbShkaXZpZGVuZCwgZGl2aXNvciwgcmVtYWluZGVyKTsKK30KK0VYUE9SVF9TWU1CT0woaXRlcl9kaXZfdTY0X3JlbSk7CmRpZmYgLS1naXQgYS9saWIvcGVyY3B1X2NvdW50ZXIuYyBiL2xpYi9wZXJjcHVfY291bnRlci5jCmluZGV4IDExOTE3NDQuLjRhOGJhNGIgMTAwNjQ0Ci0tLSBhL2xpYi9wZXJjcHVfY291bnRlci5jCisrKyBiL2xpYi9wZXJjcHVfY291bnRlci5jCkBAIC01Miw3ICs1Miw3IEBACiAgKiBBZGQgdXAgYWxsIHRoZSBwZXItY3B1IGNvdW50cywgcmV0dXJuIHRoZSByZXN1bHQuICBUaGlzIGlzIGEgbW9yZSBhY2N1cmF0ZQogICogYnV0IG11Y2ggc2xvd2VyIHZlcnNpb24gb2YgcGVyY3B1X2NvdW50ZXJfcmVhZF9wb3NpdGl2ZSgpCiAgKi8KLXM2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYykKK3M2NCBfX3BlcmNwdV9jb3VudGVyX3N1bShzdHJ1Y3QgcGVyY3B1X2NvdW50ZXIgKmZiYywgaW50IHNldCkKIHsKIAlzNjQgcmV0OwogCWludCBjcHU7CkBAIC02Miw3ICs2MiwxMiBAQAogCWZvcl9lYWNoX29ubGluZV9jcHUoY3B1KSB7CiAJCXMzMiAqcGNvdW50ID0gcGVyX2NwdV9wdHIoZmJjLT5jb3VudGVycywgY3B1KTsKIAkJcmV0ICs9ICpwY291bnQ7CisJCWlmIChzZXQpCisJCQkqcGNvdW50ID0gMDsKIAl9CisJaWYgKHNldCkKKwkJZmJjLT5jb3VudCA9IHJldDsKKwogCXNwaW5fdW5sb2NrKCZmYmMtPmxvY2spOwogCXJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9saWIvcmFkaXgtdHJlZS5jIGIvbGliL3JhZGl4LXRyZWUuYwppbmRleCBiZDUyMTcxLi41NmVjMjFhIDEwMDY0NAotLS0gYS9saWIvcmFkaXgtdHJlZS5jCisrKyBiL2xpYi9yYWRpeC10cmVlLmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDAxIE1vbWNoaWwgVmVsaWtvdgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChDKSAyMDAxIENocmlzdG9waCBIZWxsd2lnCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgU0dJLCBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBTR0ksIENocmlzdG9waCBMYW1ldGVyCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgTmljayBQaWdnaW4KICAqCiAgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC04OCw2ICs4OCw1NyBAQAogCXJldHVybiByb290LT5nZnBfbWFzayAmIF9fR0ZQX0JJVFNfTUFTSzsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHRhZ19zZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKKwkJaW50IG9mZnNldCkKK3sKKwlfX3NldF9iaXQob2Zmc2V0LCBub2RlLT50YWdzW3RhZ10pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgdGFnX2NsZWFyKHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCisJCWludCBvZmZzZXQpCit7CisJX19jbGVhcl9iaXQob2Zmc2V0LCBub2RlLT50YWdzW3RhZ10pOworfQorCitzdGF0aWMgaW5saW5lIGludCB0YWdfZ2V0KHN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUsIHVuc2lnbmVkIGludCB0YWcsCisJCWludCBvZmZzZXQpCit7CisJcmV0dXJuIHRlc3RfYml0KG9mZnNldCwgbm9kZS0+dGFnc1t0YWddKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJvb3RfdGFnX3NldChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290LCB1bnNpZ25lZCBpbnQgdGFnKQoreworCXJvb3QtPmdmcF9tYXNrIHw9IChfX2ZvcmNlIGdmcF90KSgxIDw8ICh0YWcgKyBfX0dGUF9CSVRTX1NISUZUKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCByb290X3RhZ19jbGVhcihzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290LCB1bnNpZ25lZCBpbnQgdGFnKQoreworCXJvb3QtPmdmcF9tYXNrICY9IChfX2ZvcmNlIGdmcF90KX4oMSA8PCAodGFnICsgX19HRlBfQklUU19TSElGVCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcm9vdF90YWdfY2xlYXJfYWxsKHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QpCit7CisJcm9vdC0+Z2ZwX21hc2sgJj0gX19HRlBfQklUU19NQVNLOworfQorCitzdGF0aWMgaW5saW5lIGludCByb290X3RhZ19nZXQoc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqcm9vdCwgdW5zaWduZWQgaW50IHRhZykKK3sKKwlyZXR1cm4gKF9fZm9yY2UgdW5zaWduZWQpcm9vdC0+Z2ZwX21hc2sgJiAoMSA8PCAodGFnICsgX19HRlBfQklUU19TSElGVCkpOworfQorCisvKgorICogUmV0dXJucyAxIGlmIGFueSBzbG90IGluIHRoZSBub2RlIGhhcyB0aGlzIHRhZyBzZXQuCisgKiBPdGhlcndpc2UgcmV0dXJucyAwLgorICovCitzdGF0aWMgaW5saW5lIGludCBhbnlfdGFnX3NldChzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgdGFnKQoreworCWludCBpZHg7CisJZm9yIChpZHggPSAwOyBpZHggPCBSQURJWF9UUkVFX1RBR19MT05HUzsgaWR4KyspIHsKKwkJaWYgKG5vZGUtPnRhZ3NbdGFnXVtpZHhdKQorCQkJcmV0dXJuIDE7CisJfQorCXJldHVybiAwOworfQogLyoKICAqIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSBjYWxsZXIgaGFzIHBlcmZvcm1lZCBhcHByb3ByaWF0ZSBwcmVhbGxvY2F0aW9uLCBhbmQKICAqIHRoYXQgdGhlIGNhbGxlciBoYXMgcGlubmVkIHRoaXMgdGhyZWFkIG9mIGNvbnRyb2wgdG8gdGhlIGN1cnJlbnQgQ1BVLgpAQCAtMTI0LDYgKzE3NSwxNyBAQAogewogCXN0cnVjdCByYWRpeF90cmVlX25vZGUgKm5vZGUgPQogCQkJY29udGFpbmVyX29mKGhlYWQsIHN0cnVjdCByYWRpeF90cmVlX25vZGUsIHJjdV9oZWFkKTsKKworCS8qCisJICogbXVzdCBvbmx5IGZyZWUgemVyb2VkIG5vZGVzIGludG8gdGhlIHNsYWIuIHJhZGl4X3RyZWVfc2hyaW5rCisJICogY2FuIGxlYXZlIHVzIHdpdGggYSBub24tTlVMTCBlbnRyeSBpbiB0aGUgZmlyc3Qgc2xvdCwgc28gY2xlYXIKKwkgKiB0aGF0IGhlcmUgdG8gbWFrZSBzdXJlLgorCSAqLworCXRhZ19jbGVhcihub2RlLCAwLCAwKTsKKwl0YWdfY2xlYXIobm9kZSwgMSwgMCk7CisJbm9kZS0+c2xvdHNbMF0gPSBOVUxMOworCW5vZGUtPmNvdW50ID0gMDsKKwogCWttZW1fY2FjaGVfZnJlZShyYWRpeF90cmVlX25vZGVfY2FjaGVwLCBub2RlKTsKIH0KIApAQCAtMTY1LDU5ICsyMjcsNiBAQAogfQogRVhQT1JUX1NZTUJPTChyYWRpeF90cmVlX3ByZWxvYWQpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgdGFnX3NldChzdHJ1Y3QgcmFkaXhfdHJlZV9ub2RlICpub2RlLCB1bnNpZ25lZCBpbnQgdGFnLAotCQlpbnQgb2Zmc2V0KQotewotCV9fc2V0X2JpdChvZmZzZXQsIG5vZGUtPnRhZ3NbdGFnXSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCB0YWdfY2xlYXIoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKLQkJaW50IG9mZnNldCkKLXsKLQlfX2NsZWFyX2JpdChvZmZzZXQsIG5vZGUtPnRhZ3NbdGFnXSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IHRhZ19nZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZywKLQkJaW50IG9mZnNldCkKLXsKLQlyZXR1cm4gdGVzdF9iaXQob2Zmc2V0LCBub2RlLT50YWdzW3RhZ10pOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcm9vdF90YWdfc2V0KHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QsIHVuc2lnbmVkIGludCB0YWcpCi17Ci0Jcm9vdC0+Z2ZwX21hc2sgfD0gKF9fZm9yY2UgZ2ZwX3QpKDEgPDwgKHRhZyArIF9fR0ZQX0JJVFNfU0hJRlQpKTsKLX0KLQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcm9vdF90YWdfY2xlYXIoc3RydWN0IHJhZGl4X3RyZWVfcm9vdCAqcm9vdCwgdW5zaWduZWQgaW50IHRhZykKLXsKLQlyb290LT5nZnBfbWFzayAmPSAoX19mb3JjZSBnZnBfdCl+KDEgPDwgKHRhZyArIF9fR0ZQX0JJVFNfU0hJRlQpKTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHJvb3RfdGFnX2NsZWFyX2FsbChzdHJ1Y3QgcmFkaXhfdHJlZV9yb290ICpyb290KQotewotCXJvb3QtPmdmcF9tYXNrICY9IF9fR0ZQX0JJVFNfTUFTSzsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgcm9vdF90YWdfZ2V0KHN0cnVjdCByYWRpeF90cmVlX3Jvb3QgKnJvb3QsIHVuc2lnbmVkIGludCB0YWcpCi17Ci0JcmV0dXJuIChfX2ZvcmNlIHVuc2lnbmVkKXJvb3QtPmdmcF9tYXNrICYgKDEgPDwgKHRhZyArIF9fR0ZQX0JJVFNfU0hJRlQpKTsKLX0KLQotLyoKLSAqIFJldHVybnMgMSBpZiBhbnkgc2xvdCBpbiB0aGUgbm9kZSBoYXMgdGhpcyB0YWcgc2V0LgotICogT3RoZXJ3aXNlIHJldHVybnMgMC4KLSAqLwotc3RhdGljIGlubGluZSBpbnQgYW55X3RhZ19zZXQoc3RydWN0IHJhZGl4X3RyZWVfbm9kZSAqbm9kZSwgdW5zaWduZWQgaW50IHRhZykKLXsKLQlpbnQgaWR4OwotCWZvciAoaWR4ID0gMDsgaWR4IDwgUkFESVhfVFJFRV9UQUdfTE9OR1M7IGlkeCsrKSB7Ci0JCWlmIChub2RlLT50YWdzW3RhZ11baWR4XSkKLQkJCXJldHVybiAxOwotCX0KLQlyZXR1cm4gMDsKLX0KLQogLyoKICAqCVJldHVybiB0aGUgbWF4aW11bSBrZXkgd2hpY2ggY2FuIGJlIHN0b3JlIGludG8gYQogICoJcmFkaXggdHJlZSB3aXRoIGhlaWdodCBIRUlHSFQuCkBAIC05MzAsMTEgKzkzOSw2IEBACiAJCQluZXdwdHIgPSByYWRpeF90cmVlX3B0cl90b19pbmRpcmVjdChuZXdwdHIpOwogCQlyb290LT5ybm9kZSA9IG5ld3B0cjsKIAkJcm9vdC0+aGVpZ2h0LS07Ci0JCS8qIG11c3Qgb25seSBmcmVlIHplcm9lZCBub2RlcyBpbnRvIHRoZSBzbGFiICovCi0JCXRhZ19jbGVhcih0b19mcmVlLCAwLCAwKTsKLQkJdGFnX2NsZWFyKHRvX2ZyZWUsIDEsIDApOwotCQl0b19mcmVlLT5zbG90c1swXSA9IE5VTEw7Ci0JCXRvX2ZyZWUtPmNvdW50ID0gMDsKIAkJcmFkaXhfdHJlZV9ub2RlX2ZyZWUodG9fZnJlZSk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvbGliL3NtcF9wcm9jZXNzb3JfaWQuYyBiL2xpYi9zbXBfcHJvY2Vzc29yX2lkLmMKaW5kZXggNmM5MGZiOS4uM2I0ZGMwOSAxMDA2NDQKLS0tIGEvbGliL3NtcF9wcm9jZXNzb3JfaWQuYworKysgYi9saWIvc21wX3Byb2Nlc3Nvcl9pZC5jCkBAIC03LDcgKzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2thbGxzeW1zLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KIAotdW5zaWduZWQgaW50IGRlYnVnX3NtcF9wcm9jZXNzb3JfaWQodm9pZCkKK25vdHJhY2UgdW5zaWduZWQgaW50IGRlYnVnX3NtcF9wcm9jZXNzb3JfaWQodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHByZWVtcHRfY291bnQgPSBwcmVlbXB0X2NvdW50KCk7CiAJaW50IHRoaXNfY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKQEAgLTM3LDcgKzM3LDcgQEAKIAkvKgogCSAqIEF2b2lkIHJlY3Vyc2lvbjoKIAkgKi8KLQlwcmVlbXB0X2Rpc2FibGUoKTsKKwlwcmVlbXB0X2Rpc2FibGVfbm90cmFjZSgpOwogCiAJaWYgKCFwcmludGtfcmF0ZWxpbWl0KCkpCiAJCWdvdG8gb3V0X2VuYWJsZTsKQEAgLTQ5LDcgKzQ5LDcgQEAKIAlkdW1wX3N0YWNrKCk7CiAKIG91dF9lbmFibGU6Ci0JcHJlZW1wdF9lbmFibGVfbm9fcmVzY2hlZCgpOworCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWRfbm90cmFjZSgpOwogb3V0OgogCXJldHVybiB0aGlzX2NwdTsKIH0KZGlmZiAtLWdpdCBhL2xpYi90c19ibS5jIGIvbGliL3RzX2JtLmMKaW5kZXggZDkwODIyYy4uNGE3ZmNlNyAxMDA2NDQKLS0tIGEvbGliL3RzX2JtLmMKKysrIGIvbGliL3RzX2JtLmMKQEAgLTYzLDcgKzYzLDcgQEAKIAlzdHJ1Y3QgdHNfYm0gKmJtID0gdHNfY29uZmlnX3ByaXYoY29uZik7CiAJdW5zaWduZWQgaW50IGksIHRleHRfbGVuLCBjb25zdW1lZCA9IHN0YXRlLT5vZmZzZXQ7CiAJY29uc3QgdTggKnRleHQ7Ci0JaW50IHNoaWZ0ID0gYm0tPnBhdGxlbiwgYnM7CisJaW50IHNoaWZ0ID0gYm0tPnBhdGxlbiAtIDEsIGJzOwogCiAJZm9yICg7OykgewogCQl0ZXh0X2xlbiA9IGNvbmYtPmdldF9uZXh0X2Jsb2NrKGNvbnN1bWVkLCAmdGV4dCwgY29uZiwgc3RhdGUpOwpkaWZmIC0tZ2l0IGEvbGliL3ZzcHJpbnRmLmMgYi9saWIvdnNwcmludGYuYwppbmRleCA2MDIxNzU3Li4xZGMyZDFkIDEwMDY0NAotLS0gYS9saWIvdnNwcmludGYuYworKysgYi9saWIvdnNwcmludGYuYwpAQCAtMjIsNiArMjIsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPgogI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgva2FsbHN5bXMuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKICNpbmNsdWRlIDxhc20vcGFnZS5oPgkJLyogZm9yIFBBR0VfU0laRSAqLwogI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgpAQCAtNDgyLDYgKzQ4NCw4OSBAQAogCXJldHVybiBidWY7CiB9CiAKK3N0YXRpYyBjaGFyICpzdHJpbmcoY2hhciAqYnVmLCBjaGFyICplbmQsIGNoYXIgKnMsIGludCBmaWVsZF93aWR0aCwgaW50IHByZWNpc2lvbiwgaW50IGZsYWdzKQoreworCWludCBsZW4sIGk7CisKKwlpZiAoKHVuc2lnbmVkIGxvbmcpcyA8IFBBR0VfU0laRSkKKwkJcyA9ICI8TlVMTD4iOworCisJbGVuID0gc3RybmxlbihzLCBwcmVjaXNpb24pOworCisJaWYgKCEoZmxhZ3MgJiBMRUZUKSkgeworCQl3aGlsZSAobGVuIDwgZmllbGRfd2lkdGgtLSkgeworCQkJaWYgKGJ1ZiA8IGVuZCkKKwkJCQkqYnVmID0gJyAnOworCQkJKytidWY7CisJCX0KKwl9CisJZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7CisJCWlmIChidWYgPCBlbmQpCisJCQkqYnVmID0gKnM7CisJCSsrYnVmOyArK3M7CisJfQorCXdoaWxlIChsZW4gPCBmaWVsZF93aWR0aC0tKSB7CisJCWlmIChidWYgPCBlbmQpCisJCQkqYnVmID0gJyAnOworCQkrK2J1ZjsKKwl9CisJcmV0dXJuIGJ1ZjsKK30KKworc3RhdGljIGlubGluZSB2b2lkICpkZXJlZmVyZW5jZV9mdW5jdGlvbl9kZXNjcmlwdG9yKHZvaWQgKnB0cikKK3sKKyNpZiBkZWZpbmVkKENPTkZJR19JQTY0KSB8fCBkZWZpbmVkKENPTkZJR19QUEM2NCkKKwl2b2lkICpwOworCWlmICghcHJvYmVfa2VybmVsX2FkZHJlc3MocHRyLCBwKSkKKwkJcHRyID0gcDsKKyNlbmRpZgorCXJldHVybiBwdHI7Cit9CisKK3N0YXRpYyBjaGFyICpzeW1ib2xfc3RyaW5nKGNoYXIgKmJ1ZiwgY2hhciAqZW5kLCB2b2lkICpwdHIsIGludCBmaWVsZF93aWR0aCwgaW50IHByZWNpc2lvbiwgaW50IGZsYWdzKQoreworCXVuc2lnbmVkIGxvbmcgdmFsdWUgPSAodW5zaWduZWQgbG9uZykgcHRyOworI2lmZGVmIENPTkZJR19LQUxMU1lNUworCWNoYXIgc3ltW0tTWU1fU1lNQk9MX0xFTl07CisJc3ByaW50X3N5bWJvbChzeW0sIHZhbHVlKTsKKwlyZXR1cm4gc3RyaW5nKGJ1ZiwgZW5kLCBzeW0sIGZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKKyNlbHNlCisJZmllbGRfd2lkdGggPSAyKnNpemVvZih2b2lkICopOworCWZsYWdzIHw9IFNQRUNJQUwgfCBTTUFMTCB8IFpFUk9QQUQ7CisJcmV0dXJuIG51bWJlcihidWYsIGVuZCwgdmFsdWUsIDE2LCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CisjZW5kaWYKK30KKworLyoKKyAqIFNob3cgYSAnJXAnIHRoaW5nLiAgQSBrZXJuZWwgZXh0ZW5zaW9uIGlzIHRoYXQgdGhlICclcCcgaXMgZm9sbG93ZWQKKyAqIGJ5IGFuIGV4dHJhIHNldCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyB0aGF0IGFyZSBleHRlbmRlZCBmb3JtYXQKKyAqIHNwZWNpZmllcnMuCisgKgorICogUmlnaHQgbm93IHdlIGp1c3QgaGFuZGxlICdGJyAoZm9yIHN5bWJvbGljIEZ1bmN0aW9uIGRlc2NyaXB0b3IgcG9pbnRlcnMpCisgKiBhbmQgJ1MnIChmb3IgU3ltYm9saWMgZGlyZWN0IHBvaW50ZXJzKSwgYnV0IHRoaXMgY2FuIGVhc2lseSBiZQorICogZXh0ZW5kZWQgaW4gdGhlIGZ1dHVyZSAobmV0d29yayBhZGRyZXNzIHR5cGVzIGV0YykuCisgKgorICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAnUycgYW5kICdGJyBpcyB0aGF0IG9uIGlhNjQgYW5kIHBwYzY0IGZ1bmN0aW9uCisgKiBwb2ludGVycyBhcmUgcmVhbGx5IGZ1bmN0aW9uIGRlc2NyaXB0b3JzLCB3aGljaCBjb250YWluIGEgcG9pbnRlciB0aGUKKyAqIHJlYWwgYWRkcmVzcy4gCisgKi8KK3N0YXRpYyBjaGFyICpwb2ludGVyKGNvbnN0IGNoYXIgKmZtdCwgY2hhciAqYnVmLCBjaGFyICplbmQsIHZvaWQgKnB0ciwgaW50IGZpZWxkX3dpZHRoLCBpbnQgcHJlY2lzaW9uLCBpbnQgZmxhZ3MpCit7CisJc3dpdGNoICgqZm10KSB7CisJY2FzZSAnRic6CisJCXB0ciA9IGRlcmVmZXJlbmNlX2Z1bmN0aW9uX2Rlc2NyaXB0b3IocHRyKTsKKwkJLyogRmFsbHRocm91Z2ggKi8KKwljYXNlICdTJzoKKwkJcmV0dXJuIHN5bWJvbF9zdHJpbmcoYnVmLCBlbmQsIHB0ciwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworCX0KKwlmbGFncyB8PSBTTUFMTDsKKwlpZiAoZmllbGRfd2lkdGggPT0gLTEpIHsKKwkJZmllbGRfd2lkdGggPSAyKnNpemVvZih2b2lkICopOworCQlmbGFncyB8PSBaRVJPUEFEOworCX0KKwlyZXR1cm4gbnVtYmVyKGJ1ZiwgZW5kLCAodW5zaWduZWQgbG9uZykgcHRyLCAxNiwgZmllbGRfd2lkdGgsIHByZWNpc2lvbiwgZmxhZ3MpOworfQorCiAvKioKICAqIHZzbnByaW50ZiAtIEZvcm1hdCBhIHN0cmluZyBhbmQgcGxhY2UgaXQgaW4gYSBidWZmZXIKICAqIEBidWY6IFRoZSBidWZmZXIgdG8gcGxhY2UgdGhlIHJlc3VsdCBpbnRvCkBAIC01MDIsMTEgKzU4Nyw5IEBACiAgKi8KIGludCB2c25wcmludGYoY2hhciAqYnVmLCBzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3MpCiB7Ci0JaW50IGxlbjsKIAl1bnNpZ25lZCBsb25nIGxvbmcgbnVtOwotCWludCBpLCBiYXNlOworCWludCBiYXNlOwogCWNoYXIgKnN0ciwgKmVuZCwgYzsKLQljb25zdCBjaGFyICpzOwogCiAJaW50IGZsYWdzOwkJLyogZmxhZ3MgdG8gbnVtYmVyKCkgKi8KIApAQCAtNjIyLDQzICs3MDUsMTggQEAKIAkJCQljb250aW51ZTsKIAogCQkJY2FzZSAncyc6Ci0JCQkJcyA9IHZhX2FyZyhhcmdzLCBjaGFyICopOwotCQkJCWlmICgodW5zaWduZWQgbG9uZylzIDwgUEFHRV9TSVpFKQotCQkJCQlzID0gIjxOVUxMPiI7Ci0KLQkJCQlsZW4gPSBzdHJubGVuKHMsIHByZWNpc2lvbik7Ci0KLQkJCQlpZiAoIShmbGFncyAmIExFRlQpKSB7Ci0JCQkJCXdoaWxlIChsZW4gPCBmaWVsZF93aWR0aC0tKSB7Ci0JCQkJCQlpZiAoc3RyIDwgZW5kKQotCQkJCQkJCSpzdHIgPSAnICc7Ci0JCQkJCQkrK3N0cjsKLQkJCQkJfQotCQkJCX0KLQkJCQlmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKLQkJCQkJaWYgKHN0ciA8IGVuZCkKLQkJCQkJCSpzdHIgPSAqczsKLQkJCQkJKytzdHI7ICsrczsKLQkJCQl9Ci0JCQkJd2hpbGUgKGxlbiA8IGZpZWxkX3dpZHRoLS0pIHsKLQkJCQkJaWYgKHN0ciA8IGVuZCkKLQkJCQkJCSpzdHIgPSAnICc7Ci0JCQkJCSsrc3RyOwotCQkJCX0KKwkJCQlzdHIgPSBzdHJpbmcoc3RyLCBlbmQsIHZhX2FyZyhhcmdzLCBjaGFyICopLCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CiAJCQkJY29udGludWU7CiAKIAkJCWNhc2UgJ3AnOgotCQkJCWZsYWdzIHw9IFNNQUxMOwotCQkJCWlmIChmaWVsZF93aWR0aCA9PSAtMSkgewotCQkJCQlmaWVsZF93aWR0aCA9IDIqc2l6ZW9mKHZvaWQgKik7Ci0JCQkJCWZsYWdzIHw9IFpFUk9QQUQ7Ci0JCQkJfQotCQkJCXN0ciA9IG51bWJlcihzdHIsIGVuZCwKLQkJCQkJCSh1bnNpZ25lZCBsb25nKSB2YV9hcmcoYXJncywgdm9pZCAqKSwKLQkJCQkJCTE2LCBmaWVsZF93aWR0aCwgcHJlY2lzaW9uLCBmbGFncyk7CisJCQkJc3RyID0gcG9pbnRlcihmbXQrMSwgc3RyLCBlbmQsCisJCQkJCQl2YV9hcmcoYXJncywgdm9pZCAqKSwKKwkJCQkJCWZpZWxkX3dpZHRoLCBwcmVjaXNpb24sIGZsYWdzKTsKKwkJCQkvKiBTa2lwIGFsbCBhbHBoYW51bWVyaWMgcG9pbnRlciBzdWZmaXhlcyAqLworCQkJCXdoaWxlIChpc2FsbnVtKGZtdFsxXSkpCisJCQkJCWZtdCsrOwogCQkJCWNvbnRpbnVlOwogCi0KIAkJCWNhc2UgJ24nOgogCQkJCS8qIEZJWE1FOgogCQkJCSogV2hhdCBkb2VzIEM5OSBzYXkgYWJvdXQgdGhlIG92ZXJmbG93IGNhc2UgaGVyZT8gKi8KZGlmZiAtLWdpdCBhL21tL0tjb25maWcgYi9tbS9LY29uZmlnCmluZGV4IDNhYTgxOWQuLmM0ZGU4NTIgMTAwNjQ0Ci0tLSBhL21tL0tjb25maWcKKysrIGIvbW0vS2NvbmZpZwpAQCAtMTI5LDcgKzEyOSw3IEBACiAJYm9vbCAiQWxsb3cgZm9yIG1lbW9yeSBob3QtYWRkIgogCWRlcGVuZHMgb24gU1BBUlNFTUVNIHx8IFg4Nl82NF9BQ1BJX05VTUEKIAlkZXBlbmRzIG9uIEhPVFBMVUcgJiYgIUhJQkVSTkFUSU9OICYmIEFSQ0hfRU5BQkxFX01FTU9SWV9IT1RQTFVHCi0JZGVwZW5kcyBvbiAoSUE2NCB8fCBYODYgfHwgUFBDNjQgfHwgU1VQRVJIKQorCWRlcGVuZHMgb24gKElBNjQgfHwgWDg2IHx8IFBQQzY0IHx8IFNVUEVSSCB8fCBTMzkwKQogCiBjb21tZW50ICJNZW1vcnkgaG90cGx1ZyBpcyBjdXJyZW50bHkgaW5jb21wYXRpYmxlIHdpdGggU29mdHdhcmUgU3VzcGVuZCIKIAlkZXBlbmRzIG9uIFNQQVJTRU1FTSAmJiBIT1RQTFVHICYmIEhJQkVSTkFUSU9OCkBAIC0xOTksNyArMTk5LDcgQEAKIGNvbmZpZyBOUl9RVUlDSwogCWludAogCWRlcGVuZHMgb24gUVVJQ0tMSVNUCi0JZGVmYXVsdCAiMiIgaWYgU1VQRVJICisJZGVmYXVsdCAiMiIgaWYgU1VQRVJIIHx8IEFWUjMyCiAJZGVmYXVsdCAiMSIKIAogY29uZmlnIFZJUlRfVE9fQlVTCmRpZmYgLS1naXQgYS9tbS9hbGxvY3BlcmNwdS5jIGIvbW0vYWxsb2NwZXJjcHUuYwppbmRleCBmNDAyNmJhLi4wNWYyYjQwIDEwMDY0NAotLS0gYS9tbS9hbGxvY3BlcmNwdS5jCisrKyBiL21tL2FsbG9jcGVyY3B1LmMKQEAgLTEsNyArMSw3IEBACiAvKgogICogbGludXgvbW0vYWxsb2NwZXJjcHUuYwogICoKLSAqIFNlcGFyYXRlZCBmcm9tIHNsYWIuYyBBdWd1c3QgMTEsIDIwMDYgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiBTZXBhcmF0ZWQgZnJvbSBzbGFiLmMgQXVndXN0IDExLCAyMDA2IENocmlzdG9waCBMYW1ldGVyCiAgKi8KICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpkaWZmIC0tZ2l0IGEvbW0vYm9vdG1lbS5jIGIvbW0vYm9vdG1lbS5jCmluZGV4IGU4ZmI5MjcuLjhkOWY2MGUgMTAwNjQ0Ci0tLSBhL21tL2Jvb3RtZW0uYworKysgYi9tbS9ib290bWVtLmMKQEAgLTQ0MiwxNSArNDQyLDE3IEBACiAJcmV0dXJuIGluaXRfYm9vdG1lbV9jb3JlKHBnZGF0LCBmcmVlcGZuLCBzdGFydHBmbiwgZW5kcGZuKTsKIH0KIAotdm9pZCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCwgdW5zaWduZWQgbG9uZyBwaHlzYWRkciwKK2ludCBfX2luaXQgcmVzZXJ2ZV9ib290bWVtX25vZGUocGdfZGF0YV90ICpwZ2RhdCwgdW5zaWduZWQgbG9uZyBwaHlzYWRkciwKIAkJCQkgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgZmxhZ3MpCiB7CiAJaW50IHJldDsKIAogCXJldCA9IGNhbl9yZXNlcnZlX2Jvb3RtZW1fY29yZShwZ2RhdC0+YmRhdGEsIHBoeXNhZGRyLCBzaXplLCBmbGFncyk7CiAJaWYgKHJldCA8IDApCi0JCXJldHVybjsKKwkJcmV0dXJuIC1FTk9NRU07CiAJcmVzZXJ2ZV9ib290bWVtX2NvcmUocGdkYXQtPmJkYXRhLCBwaHlzYWRkciwgc2l6ZSwgZmxhZ3MpOworCisJcmV0dXJuIDA7CiB9CiAKIHZvaWQgX19pbml0IGZyZWVfYm9vdG1lbV9ub2RlKHBnX2RhdGFfdCAqcGdkYXQsIHVuc2lnbmVkIGxvbmcgcGh5c2FkZHIsCmRpZmYgLS1naXQgYS9tbS9maWxlbWFwLmMgYi9tbS9maWxlbWFwLmMKaW5kZXggMWU2YTdkMy4uNjVkOWQ5ZSAxMDA2NDQKLS0tIGEvbW0vZmlsZW1hcC5jCisrKyBiL21tL2ZpbGVtYXAuYwpAQCAtMjM2LDExICsyMzYsMTIgQEAKIH0KIEVYUE9SVF9TWU1CT0woZmlsZW1hcF9mZGF0YXdyaXRlKTsKIAotc3RhdGljIGludCBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBzdGFydCwKK2ludCBmaWxlbWFwX2ZkYXRhd3JpdGVfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBzdGFydCwKIAkJCQlsb2ZmX3QgZW5kKQogewogCXJldHVybiBfX2ZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZShtYXBwaW5nLCBzdGFydCwgZW5kLCBXQl9TWU5DX0FMTCk7CiB9CitFWFBPUlRfU1lNQk9MKGZpbGVtYXBfZmRhdGF3cml0ZV9yYW5nZSk7CiAKIC8qKgogICogZmlsZW1hcF9mbHVzaCAtIG1vc3RseSBhIG5vbi1ibG9ja2luZyBmbHVzaApkaWZmIC0tZ2l0IGEvbW0vaHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCmluZGV4IGJiZjk1M2UuLmFiMTcxMjcgMTAwNjQ0Ci0tLSBhL21tL2h1Z2V0bGIuYworKysgYi9tbS9odWdldGxiLmMKQEAgLTc4NSw3ICs3ODUsNyBAQAogCQkJY29udGludWU7CiAKIAkJc3Bpbl9sb2NrKCZkc3QtPnBhZ2VfdGFibGVfbG9jayk7Ci0JCXNwaW5fbG9jaygmc3JjLT5wYWdlX3RhYmxlX2xvY2spOworCQlzcGluX2xvY2tfbmVzdGVkKCZzcmMtPnBhZ2VfdGFibGVfbG9jaywgU0lOR0xFX0RFUFRIX05FU1RJTkcpOwogCQlpZiAoIWh1Z2VfcHRlX25vbmUoaHVnZV9wdGVwX2dldChzcmNfcHRlKSkpIHsKIAkJCWlmIChjb3cpCiAJCQkJaHVnZV9wdGVwX3NldF93cnByb3RlY3Qoc3JjLCBhZGRyLCBzcmNfcHRlKTsKZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggZmI1NjA4YS4uMjMwMmQyMiAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTk5OSwxNyArOTk5LDE1IEBACiAJCWdvdG8gbm9fcGFnZV90YWJsZTsKIAogCXB0ZXAgPSBwdGVfb2Zmc2V0X21hcF9sb2NrKG1tLCBwbWQsIGFkZHJlc3MsICZwdGwpOwotCWlmICghcHRlcCkKLQkJZ290byBvdXQ7CiAKIAlwdGUgPSAqcHRlcDsKIAlpZiAoIXB0ZV9wcmVzZW50KHB0ZSkpCi0JCWdvdG8gdW5sb2NrOworCQlnb3RvIG5vX3BhZ2U7CiAJaWYgKChmbGFncyAmIEZPTExfV1JJVEUpICYmICFwdGVfd3JpdGUocHRlKSkKIAkJZ290byB1bmxvY2s7CiAJcGFnZSA9IHZtX25vcm1hbF9wYWdlKHZtYSwgYWRkcmVzcywgcHRlKTsKIAlpZiAodW5saWtlbHkoIXBhZ2UpKQotCQlnb3RvIHVubG9jazsKKwkJZ290byBiYWRfcGFnZTsKIAogCWlmIChmbGFncyAmIEZPTExfR0VUKQogCQlnZXRfcGFnZShwYWdlKTsKQEAgLTEwMjQsNiArMTAyMiwxNSBAQAogb3V0OgogCXJldHVybiBwYWdlOwogCitiYWRfcGFnZToKKwlwdGVfdW5tYXBfdW5sb2NrKHB0ZXAsIHB0bCk7CisJcmV0dXJuIEVSUl9QVFIoLUVGQVVMVCk7CisKK25vX3BhZ2U6CisJcHRlX3VubWFwX3VubG9jayhwdGVwLCBwdGwpOworCWlmICghcHRlX25vbmUocHRlKSkKKwkJcmV0dXJuIHBhZ2U7CisJLyogRmFsbCB0aHJvdWdoIHRvIFpFUk9fUEFHRSBoYW5kbGluZyAqLwogbm9fcGFnZV90YWJsZToKIAkvKgogCSAqIFdoZW4gY29yZSBkdW1waW5nIGFuIGVub3Jtb3VzIGFub255bW91cyBhcmVhIHRoYXQgbm9ib2R5CkBAIC0xMDM4LDYgKzEwNDUsMjYgQEAKIAlyZXR1cm4gcGFnZTsKIH0KIAorLyogQ2FuIHdlIGRvIHRoZSBGT0xMX0FOT04gb3B0aW1pemF0aW9uPyAqLworc3RhdGljIGlubGluZSBpbnQgdXNlX3plcm9fcGFnZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwkvKgorCSAqIFdlIGRvbid0IHdhbnQgdG8gb3B0aW1pemUgRk9MTF9BTk9OIGZvciBtYWtlX3BhZ2VzX3ByZXNlbnQoKQorCSAqIHdoZW4gaXQgdHJpZXMgdG8gcGFnZSBpbiBhIFZNX0xPQ0tFRCByZWdpb24uIEFzIHRvIFZNX1NIQVJFRCwKKwkgKiB3ZSB3YW50IHRvIGdldCB0aGUgcGFnZSBmcm9tIHRoZSBwYWdlIHRhYmxlcyB0byBtYWtlIHN1cmUKKwkgKiB0aGF0IHdlIHNlcmlhbGl6ZSBhbmQgdXBkYXRlIHdpdGggYW55IG90aGVyIHVzZXIgb2YgdGhhdAorCSAqIG1hcHBpbmcuCisJICovCisJaWYgKHZtYS0+dm1fZmxhZ3MgJiAoVk1fTE9DS0VEIHwgVk1fU0hBUkVEKSkKKwkJcmV0dXJuIDA7CisJLyoKKwkgKiBBbmQgaWYgd2UgaGF2ZSBhIGZhdWx0IG9yIGEgbm9wZm4gcm91dGluZSwgaXQncyBub3QgYW4KKwkgKiBhbm9ueW1vdXMgcmVnaW9uLgorCSAqLworCXJldHVybiAhdm1hLT52bV9vcHMgfHwKKwkJKCF2bWEtPnZtX29wcy0+ZmF1bHQgJiYgIXZtYS0+dm1fb3BzLT5ub3Bmbik7Cit9CisKIGludCBnZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBsZW4sIGludCB3cml0ZSwgaW50IGZvcmNlLAogCQlzdHJ1Y3QgcGFnZSAqKnBhZ2VzLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKip2bWFzKQpAQCAtMTExMiw4ICsxMTM5LDcgQEAKIAkJZm9sbF9mbGFncyA9IEZPTExfVE9VQ0g7CiAJCWlmIChwYWdlcykKIAkJCWZvbGxfZmxhZ3MgfD0gRk9MTF9HRVQ7Ci0JCWlmICghd3JpdGUgJiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fTE9DS0VEKSAmJgotCQkgICAgKCF2bWEtPnZtX29wcyB8fCAhdm1hLT52bV9vcHMtPmZhdWx0KSkKKwkJaWYgKCF3cml0ZSAmJiB1c2VfemVyb19wYWdlKHZtYSkpCiAJCQlmb2xsX2ZsYWdzIHw9IEZPTExfQU5PTjsKIAogCQlkbyB7CkBAIC0xMTI1LDcgKzExNTEsNyBAQAogCQkJICogYmUgcHJvY2Vzc2VkIHVudGlsIHJldHVybmluZyB0byB1c2VyIHNwYWNlLgogCQkJICovCiAJCQlpZiAodW5saWtlbHkodGVzdF90c2tfdGhyZWFkX2ZsYWcodHNrLCBUSUZfTUVNRElFKSkpCi0JCQkJcmV0dXJuIC1FTk9NRU07CisJCQkJcmV0dXJuIGkgPyBpIDogLUVOT01FTTsKIAogCQkJaWYgKHdyaXRlKQogCQkJCWZvbGxfZmxhZ3MgfD0gRk9MTF9XUklURTsKQEAgLTExNTksNiArMTE4NSw4IEBACiAKIAkJCQljb25kX3Jlc2NoZWQoKTsKIAkJCX0KKwkJCWlmIChJU19FUlIocGFnZSkpCisJCQkJcmV0dXJuIGkgPyBpIDogUFRSX0VSUihwYWdlKTsKIAkJCWlmIChwYWdlcykgewogCQkJCXBhZ2VzW2ldID0gcGFnZTsKIApAQCAtMTY2OSw4ICsxNjk3LDE5IEBACiAJc3RydWN0IHBhZ2UgKmRpcnR5X3BhZ2UgPSBOVUxMOwogCiAJb2xkX3BhZ2UgPSB2bV9ub3JtYWxfcGFnZSh2bWEsIGFkZHJlc3MsIG9yaWdfcHRlKTsKLQlpZiAoIW9sZF9wYWdlKQorCWlmICghb2xkX3BhZ2UpIHsKKwkJLyoKKwkJICogVk1fTUlYRURNQVAgIXBmbl92YWxpZCgpIGNhc2UKKwkJICoKKwkJICogV2Ugc2hvdWxkIG5vdCBjb3cgcGFnZXMgaW4gYSBzaGFyZWQgd3JpdGVhYmxlIG1hcHBpbmcuCisJCSAqIEp1c3QgbWFyayB0aGUgcGFnZXMgd3JpdGFibGUgYXMgd2UgY2FuJ3QgZG8gYW55IGRpcnR5CisJCSAqIGFjY291bnRpbmcgb24gcmF3IHBmbiBtYXBzLgorCQkgKi8KKwkJaWYgKCh2bWEtPnZtX2ZsYWdzICYgKFZNX1dSSVRFfFZNX1NIQVJFRCkpID09CisJCQkJICAgICAoVk1fV1JJVEV8Vk1fU0hBUkVEKSkKKwkJCWdvdG8gcmV1c2U7CiAJCWdvdG8gZ290dGVuOworCX0KIAogCS8qCiAJICogVGFrZSBvdXQgYW5vbnltb3VzIHBhZ2VzIGZpcnN0LCBhbm9ueW1vdXMgc2hhcmVkIHZtYXMgYXJlCkBAIC0xNzIzLDYgKzE3NjIsNyBAQAogCX0KIAogCWlmIChyZXVzZSkgeworcmV1c2U6CiAJCWZsdXNoX2NhY2hlX3BhZ2Uodm1hLCBhZGRyZXNzLCBwdGVfcGZuKG9yaWdfcHRlKSk7CiAJCWVudHJ5ID0gcHRlX21reW91bmcob3JpZ19wdGUpOwogCQllbnRyeSA9IG1heWJlX21rd3JpdGUocHRlX21rZGlydHkoZW50cnkpLCB2bWEpOwpAQCAtMTc1Nyw3ICsxNzk3LDYgQEAKIAlwYWdlX3RhYmxlID0gcHRlX29mZnNldF9tYXBfbG9jayhtbSwgcG1kLCBhZGRyZXNzLCAmcHRsKTsKIAlpZiAobGlrZWx5KHB0ZV9zYW1lKCpwYWdlX3RhYmxlLCBvcmlnX3B0ZSkpKSB7CiAJCWlmIChvbGRfcGFnZSkgewotCQkJcGFnZV9yZW1vdmVfcm1hcChvbGRfcGFnZSwgdm1hKTsKIAkJCWlmICghUGFnZUFub24ob2xkX3BhZ2UpKSB7CiAJCQkJZGVjX21tX2NvdW50ZXIobW0sIGZpbGVfcnNzKTsKIAkJCQlpbmNfbW1fY291bnRlcihtbSwgYW5vbl9yc3MpOwpAQCAtMTc3OSw2ICsxODE4LDMyIEBACiAJCWxydV9jYWNoZV9hZGRfYWN0aXZlKG5ld19wYWdlKTsKIAkJcGFnZV9hZGRfbmV3X2Fub25fcm1hcChuZXdfcGFnZSwgdm1hLCBhZGRyZXNzKTsKIAorCQlpZiAob2xkX3BhZ2UpIHsKKwkJCS8qCisJCQkgKiBPbmx5IGFmdGVyIHN3aXRjaGluZyB0aGUgcHRlIHRvIHRoZSBuZXcgcGFnZSBtYXkKKwkJCSAqIHdlIHJlbW92ZSB0aGUgbWFwY291bnQgaGVyZS4gT3RoZXJ3aXNlIGFub3RoZXIKKwkJCSAqIHByb2Nlc3MgbWF5IGNvbWUgYW5kIGZpbmQgdGhlIHJtYXAgY291bnQgZGVjcmVtZW50ZWQKKwkJCSAqIGJlZm9yZSB0aGUgcHRlIGlzIHN3aXRjaGVkIHRvIHRoZSBuZXcgcGFnZSwgYW5kCisJCQkgKiAicmV1c2UiIHRoZSBvbGQgcGFnZSB3cml0aW5nIGludG8gaXQgd2hpbGUgb3VyIHB0ZQorCQkJICogaGVyZSBzdGlsbCBwb2ludHMgaW50byBpdCBhbmQgY2FuIGJlIHJlYWQgYnkgb3RoZXIKKwkJCSAqIHRocmVhZHMuCisJCQkgKgorCQkJICogVGhlIGNyaXRpY2FsIGlzc3VlIGlzIHRvIG9yZGVyIHRoaXMKKwkJCSAqIHBhZ2VfcmVtb3ZlX3JtYXAgd2l0aCB0aGUgcHRwX2NsZWFyX2ZsdXNoIGFib3ZlLgorCQkJICogVGhvc2Ugc3RvcmVzIGFyZSBvcmRlcmVkIGJ5IChpZiBub3RoaW5nIGVsc2UsKQorCQkJICogdGhlIGJhcnJpZXIgcHJlc2VudCBpbiB0aGUgYXRvbWljX2FkZF9uZWdhdGl2ZQorCQkJICogaW4gcGFnZV9yZW1vdmVfcm1hcC4KKwkJCSAqCisJCQkgKiBUaGVuIHRoZSBUTEIgZmx1c2ggaW4gcHRlcF9jbGVhcl9mbHVzaCBlbnN1cmVzIHRoYXQKKwkJCSAqIG5vIHByb2Nlc3MgY2FuIGFjY2VzcyB0aGUgb2xkIHBhZ2UgYmVmb3JlIHRoZQorCQkJICogZGVjcmVtZW50ZWQgbWFwY291bnQgaXMgdmlzaWJsZS4gQW5kIHRoZSBvbGQgcGFnZQorCQkJICogY2Fubm90IGJlIHJldXNlZCB1bnRpbCBhZnRlciB0aGUgZGVjcmVtZW50ZWQKKwkJCSAqIG1hcGNvdW50IGlzIHZpc2libGUuIFNvIHRyYW5zaXRpdmVseSwgVExCcyB0bworCQkJICogb2xkIHBhZ2Ugd2lsbCBiZSBmbHVzaGVkIGJlZm9yZSBpdCBjYW4gYmUgcmV1c2VkLgorCQkJICovCisJCQlwYWdlX3JlbW92ZV9ybWFwKG9sZF9wYWdlLCB2bWEpOworCQl9CisKIAkJLyogRnJlZSB0aGUgb2xkIHBhZ2UuLiAqLwogCQluZXdfcGFnZSA9IG9sZF9wYWdlOwogCQlyZXQgfD0gVk1fRkFVTFRfV1JJVEU7CkBAIC0yMjk1LDggKzIzNjAsNiBAQAogCXZtZi5mbGFncyA9IGZsYWdzOwogCXZtZi5wYWdlID0gTlVMTDsKIAotCUJVR19PTih2bWEtPnZtX2ZsYWdzICYgVk1fUEZOTUFQKTsKLQogCXJldCA9IHZtYS0+dm1fb3BzLT5mYXVsdCh2bWEsICZ2bWYpOwogCWlmICh1bmxpa2VseShyZXQgJiAoVk1fRkFVTFRfRVJST1IgfCBWTV9GQVVMVF9OT1BBR0UpKSkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL21tL21lbXBvbGljeS5jIGIvbW0vbWVtcG9saWN5LmMKaW5kZXggYTM3YTUwMy4uYzk0ZTU4YiAxMDA2NDQKLS0tIGEvbW0vbWVtcG9saWN5LmMKKysrIGIvbW0vbWVtcG9saWN5LmMKQEAgLTcyOSw3ICs3MjksMTEgQEAKIAl9IGVsc2UgewogCQkqcG9saWN5ID0gcG9sID09ICZkZWZhdWx0X3BvbGljeSA/IE1QT0xfREVGQVVMVCA6CiAJCQkJCQlwb2wtPm1vZGU7Ci0JCSpwb2xpY3kgfD0gcG9sLT5mbGFnczsKKwkJLyoKKwkJICogSW50ZXJuYWwgbWVtcG9saWN5IGZsYWdzIG11c3QgYmUgbWFza2VkIG9mZiBiZWZvcmUgZXhwb3NpbmcKKwkJICogdGhlIHBvbGljeSB0byB1c2Vyc3BhY2UuCisJCSAqLworCQkqcG9saWN5IHw9IChwb2wtPmZsYWdzICYgTVBPTF9NT0RFX0ZMQUdTKTsKIAl9CiAKIAlpZiAodm1hKSB7CmRpZmYgLS1naXQgYS9tbS9taWdyYXRlLmMgYi9tbS9taWdyYXRlLmMKaW5kZXggNDQ5ZDc3ZC4uNTViZDM1NSAxMDA2NDQKLS0tIGEvbW0vbWlncmF0ZS5jCisrKyBiL21tL21pZ3JhdGUuYwpAQCAtOSw3ICs5LDcgQEAKICAqIElXQU1PVE8gVG9zaGloaXJvIDxpd2Ftb3RvQHZhbGludXguY28uanA+CiAgKiBIaXJva2F6dSBUYWthaGFzaGkgPHRha2FAdmFsaW51eC5jby5qcD4KICAqIERhdmUgSGFuc2VuIDxoYXZlYmx1ZUB1cy5pYm0uY29tPgotICogQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiBDaHJpc3RvcGggTGFtZXRlcgogICovCiAKICNpbmNsdWRlIDxsaW51eC9taWdyYXRlLmg+CkBAIC04NjUsNiArODY1LDExIEBACiAJCQlnb3RvIHNldF9zdGF0dXM7CiAKIAkJcGFnZSA9IGZvbGxvd19wYWdlKHZtYSwgcHAtPmFkZHIsIEZPTExfR0VUKTsKKworCQllcnIgPSBQVFJfRVJSKHBhZ2UpOworCQlpZiAoSVNfRVJSKHBhZ2UpKQorCQkJZ290byBzZXRfc3RhdHVzOworCiAJCWVyciA9IC1FTk9FTlQ7CiAJCWlmICghcGFnZSkKIAkJCWdvdG8gc2V0X3N0YXR1czsKQEAgLTkyOCw2ICs5MzMsMTEgQEAKIAkJCWdvdG8gc2V0X3N0YXR1czsKIAogCQlwYWdlID0gZm9sbG93X3BhZ2Uodm1hLCBwbS0+YWRkciwgMCk7CisKKwkJZXJyID0gUFRSX0VSUihwYWdlKTsKKwkJaWYgKElTX0VSUihwYWdlKSkKKwkJCWdvdG8gc2V0X3N0YXR1czsKKwogCQllcnIgPSAtRU5PRU5UOwogCQkvKiBVc2UgUGFnZVJlc2VydmVkIHRvIGNoZWNrIGZvciB6ZXJvIHBhZ2UgKi8KIAkJaWYgKCFwYWdlIHx8IFBhZ2VSZXNlcnZlZChwYWdlKSkKZGlmZiAtLWdpdCBhL21tL21tYXAuYyBiL21tL21tYXAuYwppbmRleCBmYWM2NjMzLi4zMzU0ZmRkIDEwMDY0NAotLS0gYS9tbS9tbWFwLmMKKysrIGIvbW0vbW1hcC5jCkBAIC04MCw3ICs4MCw3IEBACiBpbnQgc3lzY3RsX292ZXJjb21taXRfbWVtb3J5ID0gT1ZFUkNPTU1JVF9HVUVTUzsgIC8qIGhldXJpc3RpYyBvdmVyY29tbWl0ICovCiBpbnQgc3lzY3RsX292ZXJjb21taXRfcmF0aW8gPSA1MDsJLyogZGVmYXVsdCBpcyA1MCUgKi8KIGludCBzeXNjdGxfbWF4X21hcF9jb3VudCBfX3JlYWRfbW9zdGx5ID0gREVGQVVMVF9NQVhfTUFQX0NPVU5UOwotYXRvbWljX3Qgdm1fY29tbWl0dGVkX3NwYWNlID0gQVRPTUlDX0lOSVQoMCk7CithdG9taWNfbG9uZ190IHZtX2NvbW1pdHRlZF9zcGFjZSA9IEFUT01JQ19MT05HX0lOSVQoMCk7CiAKIC8qCiAgKiBDaGVjayB0aGF0IGEgcHJvY2VzcyBoYXMgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBhIG5ldyB2aXJ0dWFsCkBAIC0xNzcsNyArMTc3LDcgQEAKIAkgKiBjYXN0IGBhbGxvd2VkJyBhcyBhIHNpZ25lZCBsb25nIGJlY2F1c2Ugdm1fY29tbWl0dGVkX3NwYWNlCiAJICogc29tZXRpbWVzIGhhcyBhIG5lZ2F0aXZlIHZhbHVlCiAJICovCi0JaWYgKGF0b21pY19yZWFkKCZ2bV9jb21taXR0ZWRfc3BhY2UpIDwgKGxvbmcpYWxsb3dlZCkKKwlpZiAoYXRvbWljX2xvbmdfcmVhZCgmdm1fY29tbWl0dGVkX3NwYWNlKSA8IChsb25nKWFsbG93ZWQpCiAJCXJldHVybiAwOwogZXJyb3I6CiAJdm1fdW5hY2N0X21lbW9yeShwYWdlcyk7CkBAIC0yNDUsMTAgKzI0NSwxNiBAQAogCXVuc2lnbmVkIGxvbmcgcmxpbSwgcmV0dmFsOwogCXVuc2lnbmVkIGxvbmcgbmV3YnJrLCBvbGRicms7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSBjdXJyZW50LT5tbTsKKwl1bnNpZ25lZCBsb25nIG1pbl9icms7CiAKIAlkb3duX3dyaXRlKCZtbS0+bW1hcF9zZW0pOwogCi0JaWYgKGJyayA8IG1tLT5zdGFydF9icmspCisjaWZkZWYgQ09ORklHX0NPTVBBVF9CUksKKwltaW5fYnJrID0gbW0tPmVuZF9jb2RlOworI2Vsc2UKKwltaW5fYnJrID0gbW0tPnN0YXJ0X2JyazsKKyNlbmRpZgorCWlmIChicmsgPCBtaW5fYnJrKQogCQlnb3RvIG91dDsKIAogCS8qCmRpZmYgLS1naXQgYS9tbS9tcHJvdGVjdC5jIGIvbW0vbXByb3RlY3QuYwppbmRleCBhNWJmMzFjLi5hY2ZlN2M4IDEwMDY0NAotLS0gYS9tbS9tcHJvdGVjdC5jCisrKyBiL21tL21wcm90ZWN0LmMKQEAgLTQ3LDE5ICs0NywxNyBAQAogCQlpZiAocHRlX3ByZXNlbnQob2xkcHRlKSkgewogCQkJcHRlX3QgcHRlbnQ7CiAKLQkJCS8qIEF2b2lkIGFuIFNNUCByYWNlIHdpdGggaGFyZHdhcmUgdXBkYXRlZCBkaXJ0eS9jbGVhbgotCQkJICogYml0cyBieSB3aXBpbmcgdGhlIHB0ZSBhbmQgdGhlbiBzZXR0aW5nIHRoZSBuZXcgcHRlCi0JCQkgKiBpbnRvIHBsYWNlLgotCQkJICovCi0JCQlwdGVudCA9IHB0ZXBfZ2V0X2FuZF9jbGVhcihtbSwgYWRkciwgcHRlKTsKKwkJCXB0ZW50ID0gcHRlcF9tb2RpZnlfcHJvdF9zdGFydChtbSwgYWRkciwgcHRlKTsKIAkJCXB0ZW50ID0gcHRlX21vZGlmeShwdGVudCwgbmV3cHJvdCk7CisKIAkJCS8qCiAJCQkgKiBBdm9pZCB0YWtpbmcgd3JpdGUgZmF1bHRzIGZvciBwYWdlcyB3ZSBrbm93IHRvIGJlCiAJCQkgKiBkaXJ0eS4KIAkJCSAqLwogCQkJaWYgKGRpcnR5X2FjY291bnRhYmxlICYmIHB0ZV9kaXJ0eShwdGVudCkpCiAJCQkJcHRlbnQgPSBwdGVfbWt3cml0ZShwdGVudCk7Ci0JCQlzZXRfcHRlX2F0KG1tLCBhZGRyLCBwdGUsIHB0ZW50KTsKKworCQkJcHRlcF9tb2RpZnlfcHJvdF9jb21taXQobW0sIGFkZHIsIHB0ZSwgcHRlbnQpOwogI2lmZGVmIENPTkZJR19NSUdSQVRJT04KIAkJfSBlbHNlIGlmICghcHRlX2ZpbGUob2xkcHRlKSkgewogCQkJc3dwX2VudHJ5X3QgZW50cnkgPSBwdGVfdG9fc3dwX2VudHJ5KG9sZHB0ZSk7CmRpZmYgLS1naXQgYS9tbS9ub21tdS5jIGIvbW0vbm9tbXUuYwppbmRleCBlZjhjNjJjLi40NDYyYjZhIDEwMDY0NAotLS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTM5LDcgKzM5LDcgQEAKIHVuc2lnbmVkIGxvbmcgbWF4X21hcG5yOwogdW5zaWduZWQgbG9uZyBudW1fcGh5c3BhZ2VzOwogdW5zaWduZWQgbG9uZyBhc2tlZGFsbG9jLCByZWFsYWxsb2M7Ci1hdG9taWNfdCB2bV9jb21taXR0ZWRfc3BhY2UgPSBBVE9NSUNfSU5JVCgwKTsKK2F0b21pY19sb25nX3Qgdm1fY29tbWl0dGVkX3NwYWNlID0gQVRPTUlDX0xPTkdfSU5JVCgwKTsKIGludCBzeXNjdGxfb3ZlcmNvbW1pdF9tZW1vcnkgPSBPVkVSQ09NTUlUX0dVRVNTOyAvKiBoZXVyaXN0aWMgb3ZlcmNvbW1pdCAqLwogaW50IHN5c2N0bF9vdmVyY29tbWl0X3JhdGlvID0gNTA7IC8qIGRlZmF1bHQgaXMgNTAlICovCiBpbnQgc3lzY3RsX21heF9tYXBfY291bnQgPSBERUZBVUxUX01BWF9NQVBfQ09VTlQ7CkBAIC0xMDksMTYgKzEwOSwyMyBAQAogCSAqIElmIHRoZSBvYmplY3Qgd2UgaGF2ZSBzaG91bGQgbm90IGhhdmUga3NpemUgcGVyZm9ybWVkIG9uIGl0LAogCSAqIHJldHVybiBzaXplIG9mIDAKIAkgKi8KLQlpZiAoIW9ianAgfHwgKHVuc2lnbmVkIGxvbmcpb2JqcCA+PSBtZW1vcnlfZW5kIHx8ICEoKHBhZ2UgPSB2aXJ0X3RvX3BhZ2Uob2JqcCkpKSkKKwlpZiAoIW9ianAgfHwgIXZpcnRfYWRkcl92YWxpZChvYmpwKSkKIAkJcmV0dXJuIDA7CiAKKwlwYWdlID0gdmlydF90b19oZWFkX3BhZ2Uob2JqcCk7CisKKwkvKgorCSAqIElmIHRoZSBhbGxvY2F0b3Igc2V0cyBQYWdlU2xhYiwgd2Uga25vdyB0aGUgcG9pbnRlciBjYW1lIGZyb20KKwkgKiBrbWFsbG9jKCkuCisJICovCiAJaWYgKFBhZ2VTbGFiKHBhZ2UpKQogCQlyZXR1cm4ga3NpemUob2JqcCk7CiAKLQlCVUdfT04ocGFnZS0+aW5kZXggPCAwKTsKLQlCVUdfT04ocGFnZS0+aW5kZXggPj0gTUFYX09SREVSKTsKLQotCXJldHVybiAoUEFHRV9TSVpFIDw8IHBhZ2UtPmluZGV4KTsKKwkvKgorCSAqIFRoZSBrc2l6ZSgpIGZ1bmN0aW9uIGlzIG9ubHkgZ3VhcmFudGVlZCB0byB3b3JrIGZvciBwb2ludGVycworCSAqIHJldHVybmVkIGJ5IGttYWxsb2MoKS4gU28gaGFuZGxlIGFyYml0cmFyeSBwb2ludGVycyBoZXJlLgorCSAqLworCXJldHVybiBQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7CiB9CiAKIC8qCkBAIC0xNDEwLDcgKzE0MTcsNyBAQAogCSAqIGNhc3QgYGFsbG93ZWQnIGFzIGEgc2lnbmVkIGxvbmcgYmVjYXVzZSB2bV9jb21taXR0ZWRfc3BhY2UKIAkgKiBzb21ldGltZXMgaGFzIGEgbmVnYXRpdmUgdmFsdWUKIAkgKi8KLQlpZiAoYXRvbWljX3JlYWQoJnZtX2NvbW1pdHRlZF9zcGFjZSkgPCAobG9uZylhbGxvd2VkKQorCWlmIChhdG9taWNfbG9uZ19yZWFkKCZ2bV9jb21taXR0ZWRfc3BhY2UpIDwgKGxvbmcpYWxsb3dlZCkKIAkJcmV0dXJuIDA7CiBlcnJvcjoKIAl2bV91bmFjY3RfbWVtb3J5KHBhZ2VzKTsKZGlmZiAtLWdpdCBhL21tL3BhZ2Utd3JpdGViYWNrLmMgYi9tbS9wYWdlLXdyaXRlYmFjay5jCmluZGV4IDc4OWI2YWQuLjk0YzZkODkgMTAwNjQ0Ci0tLSBhL21tL3BhZ2Utd3JpdGViYWNrLmMKKysrIGIvbW0vcGFnZS13cml0ZWJhY2suYwpAQCAtMTI2LDggKzEyNiw2IEBACiBzdGF0aWMgc3RydWN0IHByb3BfZGVzY3JpcHRvciB2bV9jb21wbGV0aW9uczsKIHN0YXRpYyBzdHJ1Y3QgcHJvcF9kZXNjcmlwdG9yIHZtX2RpcnRpZXM7CiAKLXN0YXRpYyB1bnNpZ25lZCBsb25nIGRldGVybWluZV9kaXJ0eWFibGVfbWVtb3J5KHZvaWQpOwotCiAvKgogICogY291cGxlIHRoZSBwZXJpb2QgdG8gdGhlIGRpcnR5X3JhdGlvOgogICoKQEAgLTM0Nyw3ICszNDUsMTMgQEAKICNlbmRpZgogfQogCi1zdGF0aWMgdW5zaWduZWQgbG9uZyBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSh2b2lkKQorLyoqCisgKiBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSAtIGFtb3VudCBvZiBtZW1vcnkgdGhhdCBtYXkgYmUgdXNlZAorICoKKyAqIFJldHVybnMgdGhlIG51bWViciBvZiBwYWdlcyB0aGF0IGNhbiBjdXJyZW50bHkgYmUgZnJlZWQgYW5kIHVzZWQKKyAqIGJ5IHRoZSBrZXJuZWwgZm9yIGRpcmVjdCBtYXBwaW5ncy4KKyAqLwordW5zaWduZWQgbG9uZyBkZXRlcm1pbmVfZGlydHlhYmxlX21lbW9yeSh2b2lkKQogewogCXVuc2lnbmVkIGxvbmcgeDsKIApAQCAtOTU2LDYgKzk2MCw5IEBACiAJfQogCWlmICh3YmMtPnJhbmdlX2N5Y2xpYyB8fCAocmFuZ2Vfd2hvbGUgJiYgd2JjLT5ucl90b193cml0ZSA+IDApKQogCQltYXBwaW5nLT53cml0ZWJhY2tfaW5kZXggPSBpbmRleDsKKworCWlmICh3YmMtPnJhbmdlX2NvbnQpCisJCXdiYy0+cmFuZ2Vfc3RhcnQgPSBpbmRleCA8PCBQQUdFX0NBQ0hFX1NISUZUOwogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKHdyaXRlX2NhY2hlX3BhZ2VzKTsKZGlmZiAtLWdpdCBhL21tL3BhZ2VfYWxsb2MuYyBiL21tL3BhZ2VfYWxsb2MuYwppbmRleCA2MzgzNTU3Li5mMDI0YjliIDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIvbW0vcGFnZV9hbGxvYy5jCkBAIC0yMzcsMTYgKzIzNyw3IEBACiAJcHJpbnRrKEtFUk5fRU1FUkcgIlRyeWluZyB0byBmaXggaXQgdXAsIGJ1dCBhIHJlYm9vdCBpcyBuZWVkZWRcbiIKIAkJS0VSTl9FTUVSRyAiQmFja3RyYWNlOlxuIik7CiAJZHVtcF9zdGFjaygpOwotCXBhZ2UtPmZsYWdzICY9IH4oMSA8PCBQR19scnUJfAotCQkJMSA8PCBQR19wcml2YXRlIHwKLQkJCTEgPDwgUEdfbG9ja2VkCXwKLQkJCTEgPDwgUEdfYWN0aXZlCXwKLQkJCTEgPDwgUEdfZGlydHkJfAotCQkJMSA8PCBQR19yZWNsYWltIHwKLQkJCTEgPDwgUEdfc2xhYiAgICB8Ci0JCQkxIDw8IFBHX3N3YXBjYWNoZSB8Ci0JCQkxIDw8IFBHX3dyaXRlYmFjayB8Ci0JCQkxIDw8IFBHX2J1ZGR5ICk7CisJcGFnZS0+ZmxhZ3MgJj0gflBBR0VfRkxBR1NfQ0xFQVJfV0hFTl9CQUQ7CiAJc2V0X3BhZ2VfY291bnQocGFnZSwgMCk7CiAJcmVzZXRfcGFnZV9tYXBjb3VudChwYWdlKTsKIAlwYWdlLT5tYXBwaW5nID0gTlVMTDsKQEAgLTQ2MywxNiArNDU0LDcgQEAKIAkJKHBhZ2UtPm1hcHBpbmcgIT0gTlVMTCkgIHwKIAkJKHBhZ2VfZ2V0X3BhZ2VfY2dyb3VwKHBhZ2UpICE9IE5VTEwpIHwKIAkJKHBhZ2VfY291bnQocGFnZSkgIT0gMCkgIHwKLQkJKHBhZ2UtPmZsYWdzICYgKAotCQkJMSA8PCBQR19scnUJfAotCQkJMSA8PCBQR19wcml2YXRlIHwKLQkJCTEgPDwgUEdfbG9ja2VkCXwKLQkJCTEgPDwgUEdfYWN0aXZlCXwKLQkJCTEgPDwgUEdfc2xhYgl8Ci0JCQkxIDw8IFBHX3N3YXBjYWNoZSB8Ci0JCQkxIDw8IFBHX3dyaXRlYmFjayB8Ci0JCQkxIDw8IFBHX3Jlc2VydmVkIHwKLQkJCTEgPDwgUEdfYnVkZHkgKSkpKQorCQkocGFnZS0+ZmxhZ3MgJiBQQUdFX0ZMQUdTX0NIRUNLX0FUX0ZSRUUpKSkKIAkJYmFkX3BhZ2UocGFnZSk7CiAJaWYgKFBhZ2VEaXJ0eShwYWdlKSkKIAkJX19DbGVhclBhZ2VEaXJ0eShwYWdlKTsKQEAgLTYxNiwxNyArNTk4LDcgQEAKIAkJKHBhZ2UtPm1hcHBpbmcgIT0gTlVMTCkgIHwKIAkJKHBhZ2VfZ2V0X3BhZ2VfY2dyb3VwKHBhZ2UpICE9IE5VTEwpIHwKIAkJKHBhZ2VfY291bnQocGFnZSkgIT0gMCkgIHwKLQkJKHBhZ2UtPmZsYWdzICYgKAotCQkJMSA8PCBQR19scnUJfAotCQkJMSA8PCBQR19wcml2YXRlCXwKLQkJCTEgPDwgUEdfbG9ja2VkCXwKLQkJCTEgPDwgUEdfYWN0aXZlCXwKLQkJCTEgPDwgUEdfZGlydHkJfAotCQkJMSA8PCBQR19zbGFiICAgIHwKLQkJCTEgPDwgUEdfc3dhcGNhY2hlIHwKLQkJCTEgPDwgUEdfd3JpdGViYWNrIHwKLQkJCTEgPDwgUEdfcmVzZXJ2ZWQgfAotCQkJMSA8PCBQR19idWRkeSApKSkpCisJCShwYWdlLT5mbGFncyAmIFBBR0VfRkxBR1NfQ0hFQ0tfQVRfUFJFUCkpKQogCQliYWRfcGFnZShwYWdlKTsKIAogCS8qCkBAIC0xMzk2LDYgKzEzNjgsOSBAQAogCiAJKHZvaWQpZmlyc3Rfem9uZXNfem9uZWxpc3Qoem9uZWxpc3QsIGhpZ2hfem9uZWlkeCwgbm9kZW1hc2ssCiAJCQkJCQkJJnByZWZlcnJlZF96b25lKTsKKwlpZiAoIXByZWZlcnJlZF96b25lKQorCQlyZXR1cm4gTlVMTDsKKwogCWNsYXNzem9uZV9pZHggPSB6b25lX2lkeChwcmVmZXJyZWRfem9uZSk7CiAKIHpvbmVsaXN0X3NjYW46CkBAIC0yMzUzLDcgKzIzMjgsNiBAQAogc3RhdGljIHZvaWQgYnVpbGRfem9uZWxpc3RfY2FjaGUocGdfZGF0YV90ICpwZ2RhdCkKIHsKIAlwZ2RhdC0+bm9kZV96b25lbGlzdHNbMF0uemxjYWNoZV9wdHIgPSBOVUxMOwotCXBnZGF0LT5ub2RlX3pvbmVsaXN0c1sxXS56bGNhY2hlX3B0ciA9IE5VTEw7CiB9CiAKICNlbmRpZgkvKiBDT05GSUdfTlVNQSAqLwpAQCAtMjgwNCw3ICsyNzc4LDcgQEAKIAlhbGxvY19zaXplID0gem9uZS0+d2FpdF90YWJsZV9oYXNoX25yX2VudHJpZXMKIAkJCQkJKiBzaXplb2Yod2FpdF9xdWV1ZV9oZWFkX3QpOwogCi0gCWlmIChzeXN0ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcpIHsKKwlpZiAoIXNsYWJfaXNfYXZhaWxhYmxlKCkpIHsKIAkJem9uZS0+d2FpdF90YWJsZSA9ICh3YWl0X3F1ZXVlX2hlYWRfdCAqKQogCQkJYWxsb2NfYm9vdG1lbV9ub2RlKHBnZGF0LCBhbGxvY19zaXplKTsKIAl9IGVsc2UgewpAQCAtMjk1NSw2ICsyOTI5LDE4IEBACiAJfQogfQogCit2b2lkIF9faW5pdCB3b3JrX3dpdGhfYWN0aXZlX3JlZ2lvbnMoaW50IG5pZCwgd29ya19mbl90IHdvcmtfZm4sIHZvaWQgKmRhdGEpCit7CisJaW50IGk7CisJaW50IHJldDsKKworCWZvcl9lYWNoX2FjdGl2ZV9yYW5nZV9pbmRleF9pbl9uaWQoaSwgbmlkKSB7CisJCXJldCA9IHdvcmtfZm4oZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuLAorCQkJICAgICAgZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiwgZGF0YSk7CisJCWlmIChyZXQpCisJCQlicmVhazsKKwl9Cit9CiAvKioKICAqIHNwYXJzZV9tZW1vcnlfcHJlc2VudF93aXRoX2FjdGl2ZV9yZWdpb25zIC0gQ2FsbCBtZW1vcnlfcHJlc2VudCBmb3IgZWFjaCBhY3RpdmUgcmFuZ2UKICAqIEBuaWQ6IFRoZSBub2RlIHRvIGNhbGwgbWVtb3J5X3ByZXNlbnQgZm9yLiBJZiBNQVhfTlVNTk9ERVMsIGFsbCBub2RlcyB3aWxsIGJlIHVzZWQuCkBAIC0zMzc4LDcgKzMzNjQsOCBAQAogCQkgKiBpcyB1c2VkIGJ5IHRoaXMgem9uZSBmb3IgbWVtbWFwLiBUaGlzIGFmZmVjdHMgdGhlIHdhdGVybWFyawogCQkgKiBhbmQgcGVyLWNwdSBpbml0aWFsaXNhdGlvbnMKIAkJICovCi0JCW1lbW1hcF9wYWdlcyA9IChzaXplICogc2l6ZW9mKHN0cnVjdCBwYWdlKSkgPj4gUEFHRV9TSElGVDsKKwkJbWVtbWFwX3BhZ2VzID0KKwkJCVBBR0VfQUxJR04oc2l6ZSAqIHNpemVvZihzdHJ1Y3QgcGFnZSkpID4+IFBBR0VfU0hJRlQ7CiAJCWlmIChyZWFsc2l6ZSA+PSBtZW1tYXBfcGFnZXMpIHsKIAkJCXJlYWxzaXplIC09IG1lbW1hcF9wYWdlczsKIAkJCXByaW50ayhLRVJOX0RFQlVHCkBAIC0zNDg2LDYgKzM0NzMsMTEgQEAKIAljYWxjdWxhdGVfbm9kZV90b3RhbHBhZ2VzKHBnZGF0LCB6b25lc19zaXplLCB6aG9sZXNfc2l6ZSk7CiAKIAlhbGxvY19ub2RlX21lbV9tYXAocGdkYXQpOworI2lmZGVmIENPTkZJR19GTEFUX05PREVfTUVNX01BUAorCXByaW50ayhLRVJOX0RFQlVHICJmcmVlX2FyZWFfaW5pdF9ub2RlOiBub2RlICVkLCBwZ2RhdCAlMDhseCwgbm9kZV9tZW1fbWFwICUwOGx4XG4iLAorCQluaWQsICh1bnNpZ25lZCBsb25nKXBnZGF0LAorCQkodW5zaWduZWQgbG9uZylwZ2RhdC0+bm9kZV9tZW1fbWFwKTsKKyNlbmRpZgogCiAJZnJlZV9hcmVhX2luaXRfY29yZShwZ2RhdCwgem9uZXNfc2l6ZSwgemhvbGVzX3NpemUpOwogfQpAQCAtMzUyOCw3ICszNTIwLDcgQEAKIHsKIAlpbnQgaTsKIAotCXByaW50ayhLRVJOX0RFQlVHICJFbnRlcmluZyBhZGRfYWN0aXZlX3JhbmdlKCVkLCAlbHUsICVsdSkgIgorCXByaW50ayhLRVJOX0RFQlVHICJFbnRlcmluZyBhZGRfYWN0aXZlX3JhbmdlKCVkLCAlI2x4LCAlI2x4KSAiCiAJCQkgICIlZCBlbnRyaWVzIG9mICVkIHVzZWRcbiIsCiAJCQkgIG5pZCwgc3RhcnRfcGZuLCBlbmRfcGZuLAogCQkJICBucl9ub2RlbWFwX2VudHJpZXMsIE1BWF9BQ1RJVkVfUkVHSU9OUyk7CkBAIC0zNTcyLDI3ICszNTY0LDY4IEBACiB9CiAKIC8qKgotICogc2hyaW5rX2FjdGl2ZV9yYW5nZSAtIFNocmluayBhbiBleGlzdGluZyByZWdpc3RlcmVkIHJhbmdlIG9mIFBGTnMKKyAqIHJlbW92ZV9hY3RpdmVfcmFuZ2UgLSBTaHJpbmsgYW4gZXhpc3RpbmcgcmVnaXN0ZXJlZCByYW5nZSBvZiBQRk5zCiAgKiBAbmlkOiBUaGUgbm9kZSBpZCB0aGUgcmFuZ2UgaXMgb24gdGhhdCBzaG91bGQgYmUgc2hydW5rCi0gKiBAb2xkX2VuZF9wZm46IFRoZSBvbGQgZW5kIFBGTiBvZiB0aGUgcmFuZ2UKLSAqIEBuZXdfZW5kX3BmbjogVGhlIG5ldyBQRk4gb2YgdGhlIHJhbmdlCisgKiBAc3RhcnRfcGZuOiBUaGUgbmV3IFBGTiBvZiB0aGUgcmFuZ2UKKyAqIEBlbmRfcGZuOiBUaGUgbmV3IFBGTiBvZiB0aGUgcmFuZ2UKICAqCiAgKiBpMzg2IHdpdGggTlVNQSB1c2UgYWxsb2NfcmVtYXAoKSB0byBzdG9yZSBhIG5vZGVfbWVtX21hcCBvbiBhIGxvY2FsIG5vZGUuCi0gKiBUaGUgbWFwIGlzIGtlcHQgYXQgdGhlIGVuZCBwaHlzaWNhbCBwYWdlIHJhbmdlIHRoYXQgaGFzIGFscmVhZHkgYmVlbgotICogcmVnaXN0ZXJlZCB3aXRoIGFkZF9hY3RpdmVfcmFuZ2UoKS4gVGhpcyBmdW5jdGlvbiBhbGxvd3MgYW4gYXJjaCB0byBzaHJpbmsKLSAqIGFuIGV4aXN0aW5nIHJlZ2lzdGVyZWQgcmFuZ2UuCisgKiBUaGUgbWFwIGlzIGtlcHQgbmVhciB0aGUgZW5kIHBoeXNpY2FsIHBhZ2UgcmFuZ2UgdGhhdCBoYXMgYWxyZWFkeSBiZWVuCisgKiByZWdpc3RlcmVkLiBUaGlzIGZ1bmN0aW9uIGFsbG93cyBhbiBhcmNoIHRvIHNocmluayBhbiBleGlzdGluZyByZWdpc3RlcmVkCisgKiByYW5nZS4KICAqLwotdm9pZCBfX2luaXQgc2hyaW5rX2FjdGl2ZV9yYW5nZSh1bnNpZ25lZCBpbnQgbmlkLCB1bnNpZ25lZCBsb25nIG9sZF9lbmRfcGZuLAotCQkJCQkJdW5zaWduZWQgbG9uZyBuZXdfZW5kX3BmbikKK3ZvaWQgX19pbml0IHJlbW92ZV9hY3RpdmVfcmFuZ2UodW5zaWduZWQgaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCisJCQkJdW5zaWduZWQgbG9uZyBlbmRfcGZuKQogewotCWludCBpOworCWludCBpLCBqOworCWludCByZW1vdmVkID0gMDsKKworCXByaW50ayhLRVJOX0RFQlVHICJyZW1vdmVfYWN0aXZlX3JhbmdlICglZCwgJWx1LCAlbHUpXG4iLAorCQkJICBuaWQsIHN0YXJ0X3BmbiwgZW5kX3Bmbik7CiAKIAkvKiBGaW5kIHRoZSBvbGQgYWN0aXZlIHJlZ2lvbiBlbmQgYW5kIHNocmluayAqLwotCWZvcl9lYWNoX2FjdGl2ZV9yYW5nZV9pbmRleF9pbl9uaWQoaSwgbmlkKQotCQlpZiAoZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA9PSBvbGRfZW5kX3BmbikgewotCQkJZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA9IG5ld19lbmRfcGZuOwotCQkJYnJlYWs7CisJZm9yX2VhY2hfYWN0aXZlX3JhbmdlX2luZGV4X2luX25pZChpLCBuaWQpIHsKKwkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA+PSBzdGFydF9wZm4gJiYKKwkJICAgIGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPD0gZW5kX3BmbikgeworCQkJLyogY2xlYXIgaXQgKi8KKwkJCWVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA9IDA7CisJCQllYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuID0gMDsKKwkJCXJlbW92ZWQgPSAxOworCQkJY29udGludWU7CiAJCX0KKwkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA8IHN0YXJ0X3BmbiAmJgorCQkgICAgZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA+IHN0YXJ0X3BmbikgeworCQkJdW5zaWduZWQgbG9uZyB0ZW1wX2VuZF9wZm4gPSBlYXJseV9ub2RlX21hcFtpXS5lbmRfcGZuOworCQkJZWFybHlfbm9kZV9tYXBbaV0uZW5kX3BmbiA9IHN0YXJ0X3BmbjsKKwkJCWlmICh0ZW1wX2VuZF9wZm4gPiBlbmRfcGZuKQorCQkJCWFkZF9hY3RpdmVfcmFuZ2UobmlkLCBlbmRfcGZuLCB0ZW1wX2VuZF9wZm4pOworCQkJY29udGludWU7CisJCX0KKwkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLnN0YXJ0X3BmbiA+PSBzdGFydF9wZm4gJiYKKwkJICAgIGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4gPiBlbmRfcGZuICYmCisJCSAgICBlYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPCBlbmRfcGZuKSB7CisJCQllYXJseV9ub2RlX21hcFtpXS5zdGFydF9wZm4gPSBlbmRfcGZuOworCQkJY29udGludWU7CisJCX0KKwl9CisKKwlpZiAoIXJlbW92ZWQpCisJCXJldHVybjsKKworCS8qIHJlbW92ZSB0aGUgYmxhbmsgb25lcyAqLworCWZvciAoaSA9IG5yX25vZGVtYXBfZW50cmllcyAtIDE7IGkgPiAwOyBpLS0pIHsKKwkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLm5pZCAhPSBuaWQpCisJCQljb250aW51ZTsKKwkJaWYgKGVhcmx5X25vZGVfbWFwW2ldLmVuZF9wZm4pCisJCQljb250aW51ZTsKKwkJLyogd2UgZm91bmQgaXQsIGdldCByaWQgb2YgaXQgKi8KKwkJZm9yIChqID0gaTsgaiA8IG5yX25vZGVtYXBfZW50cmllcyAtIDE7IGorKykKKwkJCW1lbWNweSgmZWFybHlfbm9kZV9tYXBbal0sICZlYXJseV9ub2RlX21hcFtqKzFdLAorCQkJCXNpemVvZihlYXJseV9ub2RlX21hcFtqXSkpOworCQlqID0gbnJfbm9kZW1hcF9lbnRyaWVzIC0gMTsKKwkJbWVtc2V0KCZlYXJseV9ub2RlX21hcFtqXSwgMCwgc2l6ZW9mKGVhcmx5X25vZGVfbWFwW2pdKSk7CisJCW5yX25vZGVtYXBfZW50cmllcy0tOworCX0KIH0KIAogLyoqCkBAIC0zNjM2LDcgKzM2NjksNyBAQAogfQogCiAvKiBGaW5kIHRoZSBsb3dlc3QgcGZuIGZvciBhIG5vZGUgKi8KLXVuc2lnbmVkIGxvbmcgX19pbml0IGZpbmRfbWluX3Bmbl9mb3Jfbm9kZSh1bnNpZ25lZCBsb25nIG5pZCkKK3Vuc2lnbmVkIGxvbmcgX19pbml0IGZpbmRfbWluX3Bmbl9mb3Jfbm9kZShpbnQgbmlkKQogewogCWludCBpOwogCXVuc2lnbmVkIGxvbmcgbWluX3BmbiA9IFVMT05HX01BWDsKQEAgLTM2NDcsNyArMzY4MCw3IEBACiAKIAlpZiAobWluX3BmbiA9PSBVTE9OR19NQVgpIHsKIAkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkJIkNvdWxkIG5vdCBmaW5kIHN0YXJ0X3BmbiBmb3Igbm9kZSAlbHVcbiIsIG5pZCk7CisJCQkiQ291bGQgbm90IGZpbmQgc3RhcnRfcGZuIGZvciBub2RlICVkXG4iLCBuaWQpOwogCQlyZXR1cm4gMDsKIAl9CiAKQEAgLTM5MDMsNyArMzkzNiw3IEBACiAJZm9yIChpID0gMDsgaSA8IE1BWF9OUl9aT05FUzsgaSsrKSB7CiAJCWlmIChpID09IFpPTkVfTU9WQUJMRSkKIAkJCWNvbnRpbnVlOwotCQlwcmludGsoIiAgJS04cyAlOGx1IC0+ICU4bHVcbiIsCisJCXByaW50aygiICAlLThzICUwIzEwbHggLT4gJTAjMTBseFxuIiwKIAkJCQl6b25lX25hbWVzW2ldLAogCQkJCWFyY2hfem9uZV9sb3dlc3RfcG9zc2libGVfcGZuW2ldLAogCQkJCWFyY2hfem9uZV9oaWdoZXN0X3Bvc3NpYmxlX3BmbltpXSk7CkBAIC0zOTE5LDcgKzM5NTIsNyBAQAogCS8qIFByaW50IG91dCB0aGUgZWFybHlfbm9kZV9tYXBbXSAqLwogCXByaW50aygiZWFybHlfbm9kZV9tYXBbJWRdIGFjdGl2ZSBQRk4gcmFuZ2VzXG4iLCBucl9ub2RlbWFwX2VudHJpZXMpOwogCWZvciAoaSA9IDA7IGkgPCBucl9ub2RlbWFwX2VudHJpZXM7IGkrKykKLQkJcHJpbnRrKCIgICUzZDogJThsdSAtPiAlOGx1XG4iLCBlYXJseV9ub2RlX21hcFtpXS5uaWQsCisJCXByaW50aygiICAlM2Q6ICUwIzEwbHggLT4gJTAjMTBseFxuIiwgZWFybHlfbm9kZV9tYXBbaV0ubmlkLAogCQkJCQkJZWFybHlfbm9kZV9tYXBbaV0uc3RhcnRfcGZuLAogCQkJCQkJZWFybHlfbm9kZV9tYXBbaV0uZW5kX3Bmbik7CiAKZGlmZiAtLWdpdCBhL21tL3BhZ2V3YWxrLmMgYi9tbS9wYWdld2Fsay5jCmluZGV4IDBhZmQyMzguLmQ1ODc4YmUgMTAwNjQ0Ci0tLSBhL21tL3BhZ2V3YWxrLmMKKysrIGIvbW0vcGFnZXdhbGsuYwpAQCAtMywxNCArMywxNCBAQAogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+CiAKIHN0YXRpYyBpbnQgd2Fsa19wdGVfcmFuZ2UocG1kX3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCSAgY29uc3Qgc3RydWN0IG1tX3dhbGsgKndhbGssIHZvaWQgKnByaXZhdGUpCisJCQkgIHN0cnVjdCBtbV93YWxrICp3YWxrKQogewogCXB0ZV90ICpwdGU7CiAJaW50IGVyciA9IDA7CiAKIAlwdGUgPSBwdGVfb2Zmc2V0X21hcChwbWQsIGFkZHIpOwogCWZvciAoOzspIHsKLQkJZXJyID0gd2Fsay0+cHRlX2VudHJ5KHB0ZSwgYWRkciwgYWRkciArIFBBR0VfU0laRSwgcHJpdmF0ZSk7CisJCWVyciA9IHdhbGstPnB0ZV9lbnRyeShwdGUsIGFkZHIsIGFkZHIgKyBQQUdFX1NJWkUsIHdhbGspOwogCQlpZiAoZXJyKQogCQkgICAgICAgYnJlYWs7CiAJCWFkZHIgKz0gUEFHRV9TSVpFOwpAQCAtMjQsNyArMjQsNyBAQAogfQogCiBzdGF0aWMgaW50IHdhbGtfcG1kX3JhbmdlKHB1ZF90ICpwdWQsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgIGNvbnN0IHN0cnVjdCBtbV93YWxrICp3YWxrLCB2b2lkICpwcml2YXRlKQorCQkJICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKIAlwbWRfdCAqcG1kOwogCXVuc2lnbmVkIGxvbmcgbmV4dDsKQEAgLTM1LDE1ICszNSwxNSBAQAogCQluZXh0ID0gcG1kX2FkZHJfZW5kKGFkZHIsIGVuZCk7CiAJCWlmIChwbWRfbm9uZV9vcl9jbGVhcl9iYWQocG1kKSkgewogCQkJaWYgKHdhbGstPnB0ZV9ob2xlKQotCQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHByaXZhdGUpOworCQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHdhbGspOwogCQkJaWYgKGVycikKIAkJCQlicmVhazsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmICh3YWxrLT5wbWRfZW50cnkpCi0JCQllcnIgPSB3YWxrLT5wbWRfZW50cnkocG1kLCBhZGRyLCBuZXh0LCBwcml2YXRlKTsKKwkJCWVyciA9IHdhbGstPnBtZF9lbnRyeShwbWQsIGFkZHIsIG5leHQsIHdhbGspOwogCQlpZiAoIWVyciAmJiB3YWxrLT5wdGVfZW50cnkpCi0JCQllcnIgPSB3YWxrX3B0ZV9yYW5nZShwbWQsIGFkZHIsIG5leHQsIHdhbGssIHByaXZhdGUpOworCQkJZXJyID0gd2Fsa19wdGVfcmFuZ2UocG1kLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0gd2hpbGUgKHBtZCsrLCBhZGRyID0gbmV4dCwgYWRkciAhPSBlbmQpOwpAQCAtNTIsNyArNTIsNyBAQAogfQogCiBzdGF0aWMgaW50IHdhbGtfcHVkX3JhbmdlKHBnZF90ICpwZ2QsIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCQkgIGNvbnN0IHN0cnVjdCBtbV93YWxrICp3YWxrLCB2b2lkICpwcml2YXRlKQorCQkJICBzdHJ1Y3QgbW1fd2FsayAqd2FsaykKIHsKIAlwdWRfdCAqcHVkOwogCXVuc2lnbmVkIGxvbmcgbmV4dDsKQEAgLTYzLDE1ICs2MywxNSBAQAogCQluZXh0ID0gcHVkX2FkZHJfZW5kKGFkZHIsIGVuZCk7CiAJCWlmIChwdWRfbm9uZV9vcl9jbGVhcl9iYWQocHVkKSkgewogCQkJaWYgKHdhbGstPnB0ZV9ob2xlKQotCQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHByaXZhdGUpOworCQkJCWVyciA9IHdhbGstPnB0ZV9ob2xlKGFkZHIsIG5leHQsIHdhbGspOwogCQkJaWYgKGVycikKIAkJCQlicmVhazsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCWlmICh3YWxrLT5wdWRfZW50cnkpCi0JCQllcnIgPSB3YWxrLT5wdWRfZW50cnkocHVkLCBhZGRyLCBuZXh0LCBwcml2YXRlKTsKKwkJCWVyciA9IHdhbGstPnB1ZF9lbnRyeShwdWQsIGFkZHIsIG5leHQsIHdhbGspOwogCQlpZiAoIWVyciAmJiAod2Fsay0+cG1kX2VudHJ5IHx8IHdhbGstPnB0ZV9lbnRyeSkpCi0JCQllcnIgPSB3YWxrX3BtZF9yYW5nZShwdWQsIGFkZHIsIG5leHQsIHdhbGssIHByaXZhdGUpOworCQkJZXJyID0gd2Fsa19wbWRfcmFuZ2UocHVkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0gd2hpbGUgKHB1ZCsrLCBhZGRyID0gbmV4dCwgYWRkciAhPSBlbmQpOwpAQCAtODUsMTUgKzg1LDE1IEBACiAgKiBAYWRkcjogc3RhcnRpbmcgYWRkcmVzcwogICogQGVuZDogZW5kaW5nIGFkZHJlc3MKICAqIEB3YWxrOiBzZXQgb2YgY2FsbGJhY2tzIHRvIGludm9rZSBmb3IgZWFjaCBsZXZlbCBvZiB0aGUgdHJlZQotICogQHByaXZhdGU6IHByaXZhdGUgZGF0YSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uCiAgKgogICogUmVjdXJzaXZlbHkgd2FsayB0aGUgcGFnZSB0YWJsZSBmb3IgdGhlIG1lbW9yeSBhcmVhIGluIGEgVk1BLAogICogY2FsbGluZyBzdXBwbGllZCBjYWxsYmFja3MuIENhbGxiYWNrcyBhcmUgY2FsbGVkIGluLW9yZGVyIChmaXJzdAogICogUEdELCBmaXJzdCBQVUQsIGZpcnN0IFBNRCwgZmlyc3QgUFRFLCBzZWNvbmQgUFRFLi4uIHNlY29uZCBQTUQsCiAgKiBldGMuKS4gSWYgbG93ZXItbGV2ZWwgY2FsbGJhY2tzIGFyZSBvbWl0dGVkLCB3YWxraW5nIGRlcHRoIGlzIHJlZHVjZWQuCiAgKgotICogRWFjaCBjYWxsYmFjayByZWNlaXZlcyBhbiBlbnRyeSBwb2ludGVyLCB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUKLSAqIGFzc29jaWF0ZWQgcmFuZ2UsIGFuZCBhIGNhbGxlci1zdXBwbGllZCBwcml2YXRlIGRhdGEgcG9pbnRlci4KKyAqIEVhY2ggY2FsbGJhY2sgcmVjZWl2ZXMgYW4gZW50cnkgcG9pbnRlciBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlCisgKiBhc3NvY2lhdGVkIHJhbmdlLCBhbmQgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBtbV93YWxrIGZvciBhY2Nlc3MgdG8KKyAqIHRoZSAtPnByaXZhdGUgb3IgLT5tbSBmaWVsZHMuCiAgKgogICogTm8gbG9ja3MgYXJlIHRha2VuLCBidXQgdGhlIGJvdHRvbSBsZXZlbCBpdGVyYXRvciB3aWxsIG1hcCBQVEUKICAqIGRpcmVjdG9yaWVzIGZyb20gaGlnaG1lbSBpZiBuZWNlc3NhcnkuCkBAIC0xMDEsOSArMTAxLDggQEAKICAqIElmIGFueSBjYWxsYmFjayByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUsIHRoZSB3YWxrIGlzIGFib3J0ZWQgYW5kCiAgKiB0aGUgcmV0dXJuIHZhbHVlIGlzIHByb3BhZ2F0ZWQgYmFjayB0byB0aGUgY2FsbGVyLiBPdGhlcndpc2UgMCBpcyByZXR1cm5lZC4KICAqLwotaW50IHdhbGtfcGFnZV9yYW5nZShjb25zdCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKLQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBlbmQsCi0JCSAgICBjb25zdCBzdHJ1Y3QgbW1fd2FsayAqd2Fsaywgdm9pZCAqcHJpdmF0ZSkKK2ludCB3YWxrX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBsb25nIGVuZCwKKwkJICAgIHN0cnVjdCBtbV93YWxrICp3YWxrKQogewogCXBnZF90ICpwZ2Q7CiAJdW5zaWduZWQgbG9uZyBuZXh0OwpAQCAtMTEyLDIxICsxMTEsMjQgQEAKIAlpZiAoYWRkciA+PSBlbmQpCiAJCXJldHVybiBlcnI7CiAKLQlwZ2QgPSBwZ2Rfb2Zmc2V0KG1tLCBhZGRyKTsKKwlpZiAoIXdhbGstPm1tKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXBnZCA9IHBnZF9vZmZzZXQod2Fsay0+bW0sIGFkZHIpOwogCWRvIHsKIAkJbmV4dCA9IHBnZF9hZGRyX2VuZChhZGRyLCBlbmQpOwogCQlpZiAocGdkX25vbmVfb3JfY2xlYXJfYmFkKHBnZCkpIHsKIAkJCWlmICh3YWxrLT5wdGVfaG9sZSkKLQkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCBwcml2YXRlKTsKKwkJCQllcnIgPSB3YWxrLT5wdGVfaG9sZShhZGRyLCBuZXh0LCB3YWxrKTsKIAkJCWlmIChlcnIpCiAJCQkJYnJlYWs7CiAJCQljb250aW51ZTsKIAkJfQogCQlpZiAod2Fsay0+cGdkX2VudHJ5KQotCQkJZXJyID0gd2Fsay0+cGdkX2VudHJ5KHBnZCwgYWRkciwgbmV4dCwgcHJpdmF0ZSk7CisJCQllcnIgPSB3YWxrLT5wZ2RfZW50cnkocGdkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKCFlcnIgJiYKIAkJICAgICh3YWxrLT5wdWRfZW50cnkgfHwgd2Fsay0+cG1kX2VudHJ5IHx8IHdhbGstPnB0ZV9lbnRyeSkpCi0JCQllcnIgPSB3YWxrX3B1ZF9yYW5nZShwZ2QsIGFkZHIsIG5leHQsIHdhbGssIHByaXZhdGUpOworCQkJZXJyID0gd2Fsa19wdWRfcmFuZ2UocGdkLCBhZGRyLCBuZXh0LCB3YWxrKTsKIAkJaWYgKGVycikKIAkJCWJyZWFrOwogCX0gd2hpbGUgKHBnZCsrLCBhZGRyID0gbmV4dCwgYWRkciAhPSBlbmQpOwpkaWZmIC0tZ2l0IGEvbW0vc2xhYi5jIGIvbW0vc2xhYi5jCmluZGV4IDA2MjM2ZTQuLjA0NjYwN2YgMTAwNjQ0Ci0tLSBhL21tL3NsYWIuYworKysgYi9tbS9zbGFiLmMKQEAgLTMyNjMsOSArMzI2MywxMiBAQAogCiAJCWlmIChjcHVzZXRfem9uZV9hbGxvd2VkX2hhcmR3YWxsKHpvbmUsIGZsYWdzKSAmJgogCQkJY2FjaGUtPm5vZGVsaXN0c1tuaWRdICYmCi0JCQljYWNoZS0+bm9kZWxpc3RzW25pZF0tPmZyZWVfb2JqZWN0cykKKwkJCWNhY2hlLT5ub2RlbGlzdHNbbmlkXS0+ZnJlZV9vYmplY3RzKSB7CiAJCQkJb2JqID0gX19fX2NhY2hlX2FsbG9jX25vZGUoY2FjaGUsCiAJCQkJCWZsYWdzIHwgR0ZQX1RISVNOT0RFLCBuaWQpOworCQkJCWlmIChvYmopCisJCQkJCWJyZWFrOworCQl9CiAJfQogCiAJaWYgKCFvYmopIHsKZGlmZiAtLWdpdCBhL21tL3Nsb2IuYyBiL21tL3Nsb2IuYwppbmRleCA2MDM4Y2JhLi5hM2FkNjY3IDEwMDY0NAotLS0gYS9tbS9zbG9iLmMKKysrIGIvbW0vc2xvYi5jCkBAIC00NjksOCArNDY5LDkgQEAKIAkJCXJldHVybiBaRVJPX1NJWkVfUFRSOwogCiAJCW0gPSBzbG9iX2FsbG9jKHNpemUgKyBhbGlnbiwgZ2ZwLCBhbGlnbiwgbm9kZSk7Ci0JCWlmIChtKQotCQkJKm0gPSBzaXplOworCQlpZiAoIW0pCisJCQlyZXR1cm4gTlVMTDsKKwkJKm0gPSBzaXplOwogCQlyZXR1cm4gKHZvaWQgKiltICsgYWxpZ247CiAJfSBlbHNlIHsKIAkJdm9pZCAqcmV0OwpkaWZmIC0tZ2l0IGEvbW0vc2x1Yi5jIGIvbW0vc2x1Yi5jCmluZGV4IGE1MDVhODIuLjVmNmUyYzQgMTAwNjQ0Ci0tLSBhL21tL3NsdWIuYworKysgYi9tbS9zbHViLmMKQEAgLTUsNyArNSw3IEBACiAgKiBUaGUgYWxsb2NhdG9yIHN5bmNocm9uaXplcyB1c2luZyBwZXIgc2xhYiBsb2NrcyBhbmQgb25seQogICogdXNlcyBhIGNlbnRyYWxpemVkIGxvY2sgdG8gbWFuYWdlIGEgcG9vbCBvZiBwYXJ0aWFsIHNsYWJzLgogICoKLSAqIChDKSAyMDA3IFNHSSwgQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+CisgKiAoQykgMjAwNyBTR0ksIENocmlzdG9waCBMYW1ldGVyCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21tLmg+CkBAIC00MzEsOSArNDMxLDggQEAKIAlpZiAoIXQtPmFkZHIpCiAJCXJldHVybjsKIAotCXByaW50ayhLRVJOX0VSUiAiSU5GTzogJXMgaW4gIiwgcyk7Ci0JX19wcmludF9zeW1ib2woIiVzIiwgKHVuc2lnbmVkIGxvbmcpdC0+YWRkcik7Ci0JcHJpbnRrKCIgYWdlPSVsdSBjcHU9JXUgcGlkPSVkXG4iLCBqaWZmaWVzIC0gdC0+d2hlbiwgdC0+Y3B1LCB0LT5waWQpOworCXByaW50ayhLRVJOX0VSUiAiSU5GTzogJXMgaW4gJXBTIGFnZT0lbHUgY3B1PSV1IHBpZD0lZFxuIiwKKwkJcywgdC0+YWRkciwgamlmZmllcyAtIHQtPndoZW4sIHQtPmNwdSwgdC0+cGlkKTsKIH0KIAogc3RhdGljIHZvaWQgcHJpbnRfdHJhY2tpbmcoc3RydWN0IGttZW1fY2FjaGUgKnMsIHZvaWQgKm9iamVjdCkKQEAgLTE2MjgsOSArMTYyNywxMSBAQAogCXZvaWQgKipvYmplY3Q7CiAJc3RydWN0IGttZW1fY2FjaGVfY3B1ICpjOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJdW5zaWduZWQgaW50IG9ianNpemU7CiAKIAlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAJYyA9IGdldF9jcHVfc2xhYihzLCBzbXBfcHJvY2Vzc29yX2lkKCkpOworCW9ianNpemUgPSBjLT5vYmpzaXplOwogCWlmICh1bmxpa2VseSghYy0+ZnJlZWxpc3QgfHwgIW5vZGVfbWF0Y2goYywgbm9kZSkpKQogCiAJCW9iamVjdCA9IF9fc2xhYl9hbGxvYyhzLCBnZnBmbGFncywgbm9kZSwgYWRkciwgYyk7CkBAIC0xNjQzLDcgKzE2NDQsNyBAQAogCWxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIAogCWlmICh1bmxpa2VseSgoZ2ZwZmxhZ3MgJiBfX0dGUF9aRVJPKSAmJiBvYmplY3QpKQotCQltZW1zZXQob2JqZWN0LCAwLCBjLT5vYmpzaXplKTsKKwkJbWVtc2V0KG9iamVjdCwgMCwgb2Jqc2l6ZSk7CiAKIAlyZXR1cm4gb2JqZWN0OwogfQpAQCAtMjcyNiw5ICsyNzI3LDEwIEBACiAKIAlwYWdlID0gdmlydF90b19oZWFkX3BhZ2Uob2JqZWN0KTsKIAotCWlmICh1bmxpa2VseSghUGFnZVNsYWIocGFnZSkpKQorCWlmICh1bmxpa2VseSghUGFnZVNsYWIocGFnZSkpKSB7CisJCVdBUk5fT04oIVBhZ2VDb21wb3VuZChwYWdlKSk7CiAJCXJldHVybiBQQUdFX1NJWkUgPDwgY29tcG91bmRfb3JkZXIocGFnZSk7Ci0KKwl9CiAJcyA9IHBhZ2UtPnNsYWI7CiAKICNpZmRlZiBDT05GSUdfU0xVQl9ERUJVRwpAQCAtMjk5NCw4ICsyOTk2LDYgQEAKIAkJY3JlYXRlX2ttYWxsb2NfY2FjaGUoJmttYWxsb2NfY2FjaGVzWzFdLAogCQkJCSJrbWFsbG9jLTk2IiwgOTYsIEdGUF9LRVJORUwpOwogCQljYWNoZXMrKzsKLQl9Ci0JaWYgKEtNQUxMT0NfTUlOX1NJWkUgPD0gMTI4KSB7CiAJCWNyZWF0ZV9rbWFsbG9jX2NhY2hlKCZrbWFsbG9jX2NhY2hlc1syXSwKIAkJCQkia21hbGxvYy0xOTIiLCAxOTIsIEdGUF9LRVJORUwpOwogCQljYWNoZXMrKzsKQEAgLTMwMjUsNiArMzAyNSwxNiBAQAogCWZvciAoaSA9IDg7IGkgPCBLTUFMTE9DX01JTl9TSVpFOyBpICs9IDgpCiAJCXNpemVfaW5kZXhbKGkgLSAxKSAvIDhdID0gS01BTExPQ19TSElGVF9MT1c7CiAKKwlpZiAoS01BTExPQ19NSU5fU0laRSA9PSAxMjgpIHsKKwkJLyoKKwkJICogVGhlIDE5MiBieXRlIHNpemVkIGNhY2hlIGlzIG5vdCB1c2VkIGlmIHRoZSBhbGlnbm1lbnQKKwkJICogaXMgMTI4IGJ5dGUuIFJlZGlyZWN0IGttYWxsb2MgdG8gdXNlIHRoZSAyNTYgYnl0ZSBjYWNoZQorCQkgKiBpbnN0ZWFkLgorCQkgKi8KKwkJZm9yIChpID0gMTI4ICsgODsgaSA8PSAxOTI7IGkgKz0gOCkKKwkJCXNpemVfaW5kZXhbKGkgLSAxKSAvIDhdID0gODsKKwl9CisKIAlzbGFiX3N0YXRlID0gVVA7CiAKIAkvKiBQcm92aWRlIHRoZSBjb3JyZWN0IGttYWxsb2MgbmFtZXMgbm93IHRoYXQgdGhlIGNhY2hlcyBhcmUgdXAgKi8KZGlmZiAtLWdpdCBhL21tL3NwYXJzZS12bWVtbWFwLmMgYi9tbS9zcGFyc2Utdm1lbW1hcC5jCmluZGV4IDk5YzRmMzYuLmE5MWI1ZjggMTAwNjQ0Ci0tLSBhL21tL3NwYXJzZS12bWVtbWFwLmMKKysrIGIvbW0vc3BhcnNlLXZtZW1tYXAuYwpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBWaXJ0dWFsIE1lbW9yeSBNYXAgc3VwcG9ydAogICoKLSAqIChDKSAyMDA3IHNnaS4gQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+LgorICogKEMpIDIwMDcgc2dpLiBDaHJpc3RvcGggTGFtZXRlci4KICAqCiAgKiBWaXJ0dWFsIG1lbW9yeSBtYXBzIGFsbG93IFZNIHByaW1pdGl2ZXMgcGZuX3RvX3BhZ2UsIHBhZ2VfdG9fcGZuLAogICogdmlydF90b19wYWdlLCBwYWdlX2FkZHJlc3MoKSB0byBiZSBpbXBsZW1lbnRlZCBhcyBhIGJhc2Ugb2Zmc2V0CmRpZmYgLS1naXQgYS9tbS9zd2FwLmMgYi9tbS9zd2FwLmMKaW5kZXggOTFlMTk0NC4uNDVjOWYyNSAxMDA2NDQKLS0tIGEvbW0vc3dhcC5jCisrKyBiL21tL3N3YXAuYwpAQCAtNTAzLDcgKzUwMyw3IEBACiAJbG9jYWwgPSAmX19nZXRfY3B1X3Zhcihjb21taXR0ZWRfc3BhY2UpOwogCSpsb2NhbCArPSBwYWdlczsKIAlpZiAoKmxvY2FsID4gQUNDVF9USFJFU0hPTEQgfHwgKmxvY2FsIDwgLUFDQ1RfVEhSRVNIT0xEKSB7Ci0JCWF0b21pY19hZGQoKmxvY2FsLCAmdm1fY29tbWl0dGVkX3NwYWNlKTsKKwkJYXRvbWljX2xvbmdfYWRkKCpsb2NhbCwgJnZtX2NvbW1pdHRlZF9zcGFjZSk7CiAJCSpsb2NhbCA9IDA7CiAJfQogCXByZWVtcHRfZW5hYmxlKCk7CkBAIC01MjAsNyArNTIwLDcgQEAKIAogCWNvbW1pdHRlZCA9ICZwZXJfY3B1KGNvbW1pdHRlZF9zcGFjZSwgKGxvbmcpaGNwdSk7CiAJaWYgKGFjdGlvbiA9PSBDUFVfREVBRCB8fCBhY3Rpb24gPT0gQ1BVX0RFQURfRlJPWkVOKSB7Ci0JCWF0b21pY19hZGQoKmNvbW1pdHRlZCwgJnZtX2NvbW1pdHRlZF9zcGFjZSk7CisJCWF0b21pY19sb25nX2FkZCgqY29tbWl0dGVkLCAmdm1fY29tbWl0dGVkX3NwYWNlKTsKIAkJKmNvbW1pdHRlZCA9IDA7CiAJCWRyYWluX2NwdV9wYWdldmVjcygobG9uZyloY3B1KTsKIAl9CmRpZmYgLS1naXQgYS9tbS92bXNjYW4uYyBiL21tL3Ztc2Nhbi5jCmluZGV4IDlhMjk5MDEuLjk2N2QzMGMgMTAwNjQ0Ci0tLSBhL21tL3Ztc2Nhbi5jCisrKyBiL21tL3Ztc2Nhbi5jCkBAIC0xMzA3LDcgKzEzMDcsNyBAQAogCQkJCQlzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykKIHsKIAlpbnQgcHJpb3JpdHk7Ci0JaW50IHJldCA9IDA7CisJdW5zaWduZWQgbG9uZyByZXQgPSAwOwogCXVuc2lnbmVkIGxvbmcgdG90YWxfc2Nhbm5lZCA9IDA7CiAJdW5zaWduZWQgbG9uZyBucl9yZWNsYWltZWQgPSAwOwogCXN0cnVjdCByZWNsYWltX3N0YXRlICpyZWNsYWltX3N0YXRlID0gY3VycmVudC0+cmVjbGFpbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL25ldC84MDIxcS92bGFuLmMgYi9uZXQvODAyMXEvdmxhbi5jCmluZGV4IDUxOTYxMzAuLmFiMjIyNWQgMTAwNjQ0Ci0tLSBhL25ldC84MDIxcS92bGFuLmMKKysrIGIvbmV0LzgwMjFxL3ZsYW4uYwpAQCAtMzg3LDE0ICszODcsOCBAQAogewogCXVuc2lnbmVkIGxvbmcgb2xkX2ZlYXR1cmVzID0gdmxhbmRldi0+ZmVhdHVyZXM7CiAKLQlpZiAoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfVkxBTl9UU08pIHsKLQkJdmxhbmRldi0+ZmVhdHVyZXMgJj0gflZMQU5fVFNPX0ZFQVRVUkVTOwotCQl2bGFuZGV2LT5mZWF0dXJlcyB8PSBkZXYtPmZlYXR1cmVzICYgVkxBTl9UU09fRkVBVFVSRVM7Ci0JfQotCWlmIChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9WTEFOX0NTVU0pIHsKLQkJdmxhbmRldi0+ZmVhdHVyZXMgJj0gfk5FVElGX0ZfQUxMX0NTVU07Ci0JCXZsYW5kZXYtPmZlYXR1cmVzIHw9IGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX0FMTF9DU1VNOwotCX0KKwl2bGFuZGV2LT5mZWF0dXJlcyAmPSB+ZGV2LT52bGFuX2ZlYXR1cmVzOworCXZsYW5kZXYtPmZlYXR1cmVzIHw9IGRldi0+ZmVhdHVyZXMgJiBkZXYtPnZsYW5fZmVhdHVyZXM7CiAKIAlpZiAob2xkX2ZlYXR1cmVzICE9IHZsYW5kZXYtPmZlYXR1cmVzKQogCQluZXRkZXZfZmVhdHVyZXNfY2hhbmdlKHZsYW5kZXYpOwpkaWZmIC0tZ2l0IGEvbmV0LzgwMjFxL3ZsYW4uaCBiL25ldC84MDIxcS92bGFuLmgKaW5kZXggNzk2MjU2OS4uNTIyOWE3MiAxMDA2NDQKLS0tIGEvbmV0LzgwMjFxL3ZsYW4uaAorKysgYi9uZXQvODAyMXEvdmxhbi5oCkBAIC03LDggKzcsNiBAQAogI2RlZmluZSBWTEFOX0dSUF9IQVNIX1NJWkUJKDEgPDwgVkxBTl9HUlBfSEFTSF9TSElGVCkKICNkZWZpbmUgVkxBTl9HUlBfSEFTSF9NQVNLCShWTEFOX0dSUF9IQVNIX1NJWkUgLSAxKQogCi0jZGVmaW5lIFZMQU5fVFNPX0ZFQVRVUkVTCShORVRJRl9GX1RTTyB8IE5FVElGX0ZfVFNPNiB8IE5FVElGX0ZfU0cpCi0KIC8qICBGaW5kIGEgVkxBTiBkZXZpY2UgYnkgdGhlIE1BQyBhZGRyZXNzIG9mIGl0cyBFdGhlcm5ldCBkZXZpY2UsIGFuZAogICogIGl0J3MgVkxBTiBJRC4gIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gaXMgdG8gaGF2ZSBWTEFOJ3Mgc2NvcGUKICAqICB0byBiZSBib3gtd2lkZSwgc28gdGhlIE1BQyB3aWxsIGJlIGlnbm9yZWQuICBUaGUgbWFjIHdpbGwgb25seSBiZQpkaWZmIC0tZ2l0IGEvbmV0LzgwMjFxL3ZsYW5fZGV2LmMgYi9uZXQvODAyMXEvdmxhbl9kZXYuYwppbmRleCBiMWNmYmFhLi41ZDA1NWMyIDEwMDY0NAotLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuYworKysgYi9uZXQvODAyMXEvdmxhbl9kZXYuYwpAQCAtNjYzLDEwICs2NjMsNyBAQAogCQkJCQkgICgxPDxfX0xJTktfU1RBVEVfRE9STUFOVCkpKSB8CiAJCSAgICAgICgxPDxfX0xJTktfU1RBVEVfUFJFU0VOVCk7CiAKLQlpZiAocmVhbF9kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9WTEFOX1RTTykKLQkJZGV2LT5mZWF0dXJlcyB8PSByZWFsX2Rldi0+ZmVhdHVyZXMgJiBWTEFOX1RTT19GRUFUVVJFUzsKLQlpZiAocmVhbF9kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9WTEFOX0NTVU0pCi0JCWRldi0+ZmVhdHVyZXMgfD0gcmVhbF9kZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9BTExfQ1NVTTsKKwlkZXYtPmZlYXR1cmVzIHw9IHJlYWxfZGV2LT5mZWF0dXJlcyAmIHJlYWxfZGV2LT52bGFuX2ZlYXR1cmVzOwogCiAJLyogaXB2NiBzaGFyZWQgY2FyZCByZWxhdGVkIHN0dWZmICovCiAJZGV2LT5kZXZfaWQgPSByZWFsX2Rldi0+ZGV2X2lkOwpkaWZmIC0tZ2l0IGEvbmV0L2F0bS9icjI2ODQuYyBiL25ldC9hdG0vYnIyNjg0LmMKaW5kZXggOWQ1MmViZi4uMDVmYWZkYyAxMDA2NDQKLS0tIGEvbmV0L2F0bS9icjI2ODQuYworKysgYi9uZXQvYXRtL2JyMjY4NC5jCkBAIC0xODgsMTAgKzE4OCwxMyBAQAogCQkJCXJldHVybiAwOwogCQkJfQogCQl9Ci0JfSBlbHNlIHsKLQkJc2tiX3B1c2goc2tiLCAyKTsKLQkJaWYgKGJyZGV2LT5wYXlsb2FkID09IHBfYnJpZGdlZCkKKwl9IGVsc2UgeyAvKiBlX3ZjICovCisJCWlmIChicmRldi0+cGF5bG9hZCA9PSBwX2JyaWRnZWQpIHsKKwkJCXNrYl9wdXNoKHNrYiwgMik7CiAJCQltZW1zZXQoc2tiLT5kYXRhLCAwLCAyKTsKKwkJfSBlbHNlIHsgLyogcF9yb3V0ZWQgKi8KKwkJCXNrYl9wdWxsKHNrYiwgRVRIX0hMRU4pOworCQl9CiAJfQogCXNrYl9kZWJ1Zyhza2IpOwogCkBAIC0zNzcsMTEgKzM4MCw4IEBACiAJCQkJIChza2ItPmRhdGEgKyA2LCBldGhlcnR5cGVfaXB2NCwKIAkJCQkgIHNpemVvZihldGhlcnR5cGVfaXB2NCkpID09IDApCiAJCQkJc2tiLT5wcm90b2NvbCA9IF9fY29uc3RhbnRfaHRvbnMoRVRIX1BfSVApOwotCQkJZWxzZSB7Ci0JCQkJYnJkZXYtPnN0YXRzLnJ4X2Vycm9ycysrOwotCQkJCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJCQlyZXR1cm47Ci0JCQl9CisJCQllbHNlCisJCQkJZ290byBlcnJvcjsKIAkJCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKGxsY19vdWlfaXB2NCkpOwogCQkJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAJCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX0hPU1Q7CkBAIC0zOTQsNDQgKzM5NCw1NiBAQAogCQkJICAgKG1lbWNtcChza2ItPmRhdGEsIGxsY19vdWlfcGlkX3BhZCwgNykgPT0gMCkpIHsKIAkJCXNrYl9wdWxsKHNrYiwgc2l6ZW9mKGxsY19vdWlfcGlkX3BhZCkpOwogCQkJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgbmV0X2Rldik7Ci0JCX0gZWxzZSB7Ci0JCQlicmRldi0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCQlyZXR1cm47Ci0JCX0KKwkJfSBlbHNlCisJCQlnb3RvIGVycm9yOwogCi0JfSBlbHNlIHsKLQkJLyogZmlyc3QgMiBjaGFycyBzaG91bGQgYmUgMCAqLwotCQlpZiAoKigodTE2ICopIChza2ItPmRhdGEpKSAhPSAwKSB7Ci0JCQlicmRldi0+c3RhdHMucnhfZXJyb3JzKys7Ci0JCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCQlyZXR1cm47CisJfSBlbHNlIHsgLyogZV92YyAqLworCQlpZiAoYnJkZXYtPnBheWxvYWQgPT0gcF9yb3V0ZWQpIHsKKwkJCXN0cnVjdCBpcGhkciAqaXBoOworCisJCQlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKKwkJCWlwaCA9IGlwX2hkcihza2IpOworCQkJaWYgKGlwaC0+dmVyc2lvbiA9PSA0KQorCQkJCXNrYi0+cHJvdG9jb2wgPSBfX2NvbnN0YW50X2h0b25zKEVUSF9QX0lQKTsKKwkJCWVsc2UgaWYgKGlwaC0+dmVyc2lvbiA9PSA2KQorCQkJCXNrYi0+cHJvdG9jb2wgPSBfX2NvbnN0YW50X2h0b25zKEVUSF9QX0lQVjYpOworCQkJZWxzZQorCQkJCWdvdG8gZXJyb3I7CisJCQlza2ItPnBrdF90eXBlID0gUEFDS0VUX0hPU1Q7CisJCX0gZWxzZSB7IC8qIHBfYnJpZGdlZCAqLworCQkJLyogZmlyc3QgMiBjaGFycyBzaG91bGQgYmUgMCAqLworCQkJaWYgKCooKHUxNiAqKSAoc2tiLT5kYXRhKSkgIT0gMCkKKwkJCQlnb3RvIGVycm9yOworCQkJc2tiX3B1bGwoc2tiLCBCUjI2ODRfUEFEX0xFTik7CisJCQlza2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJhbnMoc2tiLCBuZXRfZGV2KTsKIAkJfQotCQlza2JfcHVsbChza2IsIEJSMjY4NF9QQURfTEVOICsgRVRIX0hMRU4pOwkvKiBwYWQsIGRzdG1hYywgc3JjbWFjLCBldGh0eXBlICovCi0JCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2IsIG5ldF9kZXYpOwogCX0KIAogI2lmZGVmIENPTkZJR19BVE1fQlIyNjg0X0lQRklMVEVSCi0JaWYgKHVubGlrZWx5KHBhY2tldF9mYWlsc19maWx0ZXIoc2tiLT5wcm90b2NvbCwgYnJ2Y2MsIHNrYikpKSB7Ci0JCWJyZGV2LT5zdGF0cy5yeF9kcm9wcGVkKys7Ci0JCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJcmV0dXJuOwotCX0KKwlpZiAodW5saWtlbHkocGFja2V0X2ZhaWxzX2ZpbHRlcihza2ItPnByb3RvY29sLCBicnZjYywgc2tiKSkpCisJCWdvdG8gZHJvcHBlZDsKICNlbmRpZiAvKiBDT05GSUdfQVRNX0JSMjY4NF9JUEZJTFRFUiAqLwogCXNrYi0+ZGV2ID0gbmV0X2RldjsKIAlBVE1fU0tCKHNrYiktPnZjYyA9IGF0bXZjYzsJLyogbmVlZGVkID8gKi8KIAlwcl9kZWJ1ZygicmVjZWl2ZWQgcGFja2V0J3MgcHJvdG9jb2w6ICV4XG4iLCBudG9ocyhza2ItPnByb3RvY29sKSk7CiAJc2tiX2RlYnVnKHNrYik7Ci0JaWYgKHVubGlrZWx5KCEobmV0X2Rldi0+ZmxhZ3MgJiBJRkZfVVApKSkgewotCQkvKiBzaWdoLCBpbnRlcmZhY2UgaXMgZG93biAqLwotCQlicmRldi0+c3RhdHMucnhfZHJvcHBlZCsrOwotCQlkZXZfa2ZyZWVfc2tiKHNrYik7Ci0JCXJldHVybjsKLQl9CisJLyogc2lnaCwgaW50ZXJmYWNlIGlzIGRvd24/ICovCisJaWYgKHVubGlrZWx5KCEobmV0X2Rldi0+ZmxhZ3MgJiBJRkZfVVApKSkKKwkJZ290byBkcm9wcGVkOwogCWJyZGV2LT5zdGF0cy5yeF9wYWNrZXRzKys7CiAJYnJkZXYtPnN0YXRzLnJ4X2J5dGVzICs9IHNrYi0+bGVuOwogCW1lbXNldChBVE1fU0tCKHNrYiksIDAsIHNpemVvZihzdHJ1Y3QgYXRtX3NrYl9kYXRhKSk7CiAJbmV0aWZfcngoc2tiKTsKKwlyZXR1cm47CisKK2Ryb3BwZWQ6CisJYnJkZXYtPnN0YXRzLnJ4X2Ryb3BwZWQrKzsKKwlnb3RvIGZyZWVfc2tiOworZXJyb3I6CisJYnJkZXYtPnN0YXRzLnJ4X2Vycm9ycysrOworZnJlZV9za2I6CisJZGV2X2tmcmVlX3NrYihza2IpOworCXJldHVybjsKIH0KIAogLyoKQEAgLTUxOCw5ICs1MzAsOSBAQAogCQlzdHJ1Y3Qgc2tfYnVmZiAqbmV4dCA9IHNrYi0+bmV4dDsKIAogCQlza2ItPm5leHQgPSBza2ItPnByZXYgPSBOVUxMOworCQlicjI2ODRfcHVzaChhdG12Y2MsIHNrYik7CiAJCUJSUFJJVihza2ItPmRldiktPnN0YXRzLnJ4X2J5dGVzIC09IHNrYi0+bGVuOwogCQlCUlBSSVYoc2tiLT5kZXYpLT5zdGF0cy5yeF9wYWNrZXRzLS07Ci0JCWJyMjY4NF9wdXNoKGF0bXZjYywgc2tiKTsKIAogCQlza2IgPSBuZXh0OwogCX0KZGlmZiAtLWdpdCBhL25ldC9heDI1L2F4MjVfc3Vici5jIGIvbmV0L2F4MjUvYXgyNV9zdWJyLmMKaW5kZXggZDhmMjE1Ny4uMDM0YWExMCAxMDA2NDQKLS0tIGEvbmV0L2F4MjUvYXgyNV9zdWJyLmMKKysrIGIvbmV0L2F4MjUvYXgyNV9zdWJyLmMKQEAgLTY0LDIwICs2NCwxNSBAQAogCiB2b2lkIGF4MjVfcmVxdWV1ZV9mcmFtZXMoYXgyNV9jYiAqYXgyNSkKIHsKLQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqc2tiX3ByZXYgPSBOVUxMOworCXN0cnVjdCBza19idWZmICpza2I7CiAKIAkvKgogCSAqIFJlcXVldWUgYWxsIHRoZSB1bi1hY2stZWQgZnJhbWVzIG9uIHRoZSBvdXRwdXQgcXVldWUgdG8gYmUgcGlja2VkCiAJICogdXAgYnkgYXgyNV9raWNrIGNhbGxlZCBmcm9tIHRoZSB0aW1lci4gVGhpcyBhcnJhbmdlbWVudCBoYW5kbGVzIHRoZQogCSAqIHBvc3NpYmlsaXR5IG9mIGFuIGVtcHR5IG91dHB1dCBxdWV1ZS4KIAkgKi8KLQl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlKCZheDI1LT5hY2tfcXVldWUpKSAhPSBOVUxMKSB7Ci0JCWlmIChza2JfcHJldiA9PSBOVUxMKQotCQkJc2tiX3F1ZXVlX2hlYWQoJmF4MjUtPndyaXRlX3F1ZXVlLCBza2IpOwotCQllbHNlCi0JCQlza2JfYXBwZW5kKHNrYl9wcmV2LCBza2IsICZheDI1LT53cml0ZV9xdWV1ZSk7Ci0JCXNrYl9wcmV2ID0gc2tiOwotCX0KKwl3aGlsZSAoKHNrYiA9IHNrYl9kZXF1ZXVlX3RhaWwoJmF4MjUtPmFja19xdWV1ZSkpICE9IE5VTEwpCisJCXNrYl9xdWV1ZV9oZWFkKCZheDI1LT53cml0ZV9xdWV1ZSwgc2tiKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL25ldC9ibHVldG9vdGgvcmZjb21tL2NvcmUuYyBiL25ldC9ibHVldG9vdGgvcmZjb21tL2NvcmUuYwppbmRleCBlYjYyNTU4Li4wYzJjOTM3IDEwMDY0NAotLS0gYS9uZXQvYmx1ZXRvb3RoL3JmY29tbS9jb3JlLmMKKysrIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vY29yZS5jCkBAIC00MjMsOCArNDIzLDggQEAKIAogCQlyZmNvbW1fZGxjX2xvY2soZCk7CiAJCWQtPnN0YXRlID0gQlRfQ0xPU0VEOwotCQlyZmNvbW1fZGxjX3VubG9jayhkKTsKIAkJZC0+c3RhdGVfY2hhbmdlKGQsIGVycik7CisJCXJmY29tbV9kbGNfdW5sb2NrKGQpOwogCiAJCXNrYl9xdWV1ZV9wdXJnZSgmZC0+dHhfcXVldWUpOwogCQlyZmNvbW1fZGxjX3VubGluayhkKTsKZGlmZiAtLWdpdCBhL25ldC9ibHVldG9vdGgvcmZjb21tL3R0eS5jIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vdHR5LmMKaW5kZXggYzNmNzQ5YS4uYzkxOTE4NyAxMDA2NDQKLS0tIGEvbmV0L2JsdWV0b290aC9yZmNvbW0vdHR5LmMKKysrIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vdHR5LmMKQEAgLTU2NiwxMSArNTY2LDIyIEBACiAJaWYgKGRsYy0+c3RhdGUgPT0gQlRfQ0xPU0VEKSB7CiAJCWlmICghZGV2LT50dHkpIHsKIAkJCWlmICh0ZXN0X2JpdChSRkNPTU1fUkVMRUFTRV9PTkhVUCwgJmRldi0+ZmxhZ3MpKSB7Ci0JCQkJaWYgKHJmY29tbV9kZXZfZ2V0KGRldi0+aWQpID09IE5VTEwpCisJCQkJLyogRHJvcCBETEMgbG9jayBoZXJlIHRvIGF2b2lkIGRlYWRsb2NrCisJCQkJICogMS4gcmZjb21tX2Rldl9nZXQgd2lsbCB0YWtlIHJmY29tbV9kZXZfbG9jaworCQkJCSAqICAgIGJ1dCBpbiByZmNvbW1fZGV2X2FkZCB0aGVyZSdzIGxvY2sgb3JkZXI6CisJCQkJICogICAgcmZjb21tX2Rldl9sb2NrIC0+IGRsYyBsb2NrCisJCQkJICogMi4gcmZjb21tX2Rldl9wdXQgd2lsbCBkZWFkbG9jayBpZiBpdCdzCisJCQkJICogICAgdGhlIGxhc3QgcmVmZXJlbmNlCisJCQkJICovCisJCQkJcmZjb21tX2RsY191bmxvY2soZGxjKTsKKwkJCQlpZiAocmZjb21tX2Rldl9nZXQoZGV2LT5pZCkgPT0gTlVMTCkgeworCQkJCQlyZmNvbW1fZGxjX2xvY2soZGxjKTsKIAkJCQkJcmV0dXJuOworCQkJCX0KIAogCQkJCXJmY29tbV9kZXZfZGVsKGRldik7CiAJCQkJcmZjb21tX2Rldl9wdXQoZGV2KTsKKwkJCQlyZmNvbW1fZGxjX2xvY2soZGxjKTsKIAkJCX0KIAkJfSBlbHNlCiAJCQl0dHlfaGFuZ3VwKGRldi0+dHR5KTsKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfaWYuYyBiL25ldC9icmlkZ2UvYnJfaWYuYwppbmRleCBjMjM5N2Y1Li5mMzhjYzUzIDEwMDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2lmLmMKKysrIGIvbmV0L2JyaWRnZS9icl9pZi5jCkBAIC00NDIsMTIgKzQ0MiwxNiBAQAogCiB2b2lkIF9fZXhpdCBicl9jbGVhbnVwX2JyaWRnZXModm9pZCkKIHsKLQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCAqbnh0OworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXY7CiAKIAlydG5sX2xvY2soKTsKLQlmb3JfZWFjaF9uZXRkZXZfc2FmZSgmaW5pdF9uZXQsIGRldiwgbnh0KQotCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpCityZXN0YXJ0OgorCWZvcl9lYWNoX25ldGRldigmaW5pdF9uZXQsIGRldikgeworCQlpZiAoZGV2LT5wcml2X2ZsYWdzICYgSUZGX0VCUklER0UpIHsKIAkJCWRlbF9icihkZXYtPnByaXYpOworCQkJZ290byByZXN0YXJ0OworCQl9CisJfQogCXJ0bmxfdW5sb2NrKCk7CiAKIH0KZGlmZiAtLWdpdCBhL25ldC9jYW4vYWZfY2FuLmMgYi9uZXQvY2FuL2FmX2Nhbi5jCmluZGV4IDdlOGNhMjguLjQ4NGJiZjYgMTAwNjQ0Ci0tLSBhL25ldC9jYW4vYWZfY2FuLmMKKysrIGIvbmV0L2Nhbi9hZl9jYW4uYwpAQCAtMjA1LDEyICsyMDUsMTkgQEAKICAqICAtRU5PQlVGUyBvbiBmdWxsIGRyaXZlciBxdWV1ZSAoc2VlIG5ldF94bWl0X2Vycm5vKCkpCiAgKiAgLUVOT01FTSB3aGVuIGxvY2FsIGxvb3BiYWNrIGZhaWxlZCBhdCBjYWxsaW5nIHNrYl9jbG9uZSgpCiAgKiAgLUVQRVJNIHdoZW4gdHJ5aW5nIHRvIHNlbmQgb24gYSBub24tQ0FOIGludGVyZmFjZQorICogIC1FSU5WQUwgd2hlbiB0aGUgc2tiLT5kYXRhIGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBDQU4gZnJhbWUKICAqLwogaW50IGNhbl9zZW5kKHN0cnVjdCBza19idWZmICpza2IsIGludCBsb29wKQogewogCXN0cnVjdCBza19idWZmICpuZXdza2IgPSBOVUxMOworCXN0cnVjdCBjYW5fZnJhbWUgKmNmID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2ItPmRhdGE7CiAJaW50IGVycjsKIAorCWlmIChza2ItPmxlbiAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkgfHwgY2YtPmNhbl9kbGMgPiA4KSB7CisJCWtmcmVlX3NrYihza2IpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKIAlpZiAoc2tiLT5kZXYtPnR5cGUgIT0gQVJQSFJEX0NBTikgewogCQlrZnJlZV9za2Ioc2tiKTsKIAkJcmV0dXJuIC1FUEVSTTsKQEAgLTYwNSw2ICs2MTIsNyBAQAogCQkgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpCiB7CiAJc3RydWN0IGRldl9yY3ZfbGlzdHMgKmQ7CisJc3RydWN0IGNhbl9mcmFtZSAqY2YgPSAoc3RydWN0IGNhbl9mcmFtZSAqKXNrYi0+ZGF0YTsKIAlpbnQgbWF0Y2hlczsKIAogCWlmIChkZXYtPnR5cGUgIT0gQVJQSFJEX0NBTiB8fCBkZXZfbmV0KGRldikgIT0gJmluaXRfbmV0KSB7CkBAIC02MTIsNiArNjIwLDggQEAKIAkJcmV0dXJuIDA7CiAJfQogCisJQlVHX09OKHNrYi0+bGVuICE9IHNpemVvZihzdHJ1Y3QgY2FuX2ZyYW1lKSB8fCBjZi0+Y2FuX2RsYyA+IDgpOworCiAJLyogdXBkYXRlIHN0YXRpc3RpY3MgKi8KIAljYW5fc3RhdHMucnhfZnJhbWVzKys7CiAJY2FuX3N0YXRzLnJ4X2ZyYW1lc19kZWx0YSsrOwpkaWZmIC0tZ2l0IGEvbmV0L2Nhbi9iY20uYyBiL25ldC9jYW4vYmNtLmMKaW5kZXggZDlhM2E5ZC4uNzJjMmNlOSAxMDA2NDQKLS0tIGEvbmV0L2Nhbi9iY20uYworKysgYi9uZXQvY2FuL2JjbS5jCkBAIC0yOTgsNyArMjk4LDcgQEAKIAogCWlmIChoZWFkLT5uZnJhbWVzKSB7CiAJCS8qIGNhbl9mcmFtZXMgc3RhcnRpbmcgaGVyZSAqLwotCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKikgc2tiX3RhaWxfcG9pbnRlcihza2IpOworCQlmaXJzdGZyYW1lID0gKHN0cnVjdCBjYW5fZnJhbWUgKilza2JfdGFpbF9wb2ludGVyKHNrYik7CiAKIAkJbWVtY3B5KHNrYl9wdXQoc2tiLCBkYXRhbGVuKSwgZnJhbWVzLCBkYXRhbGVuKTsKIApAQCAtODI2LDYgKzgyNiwxMCBAQAogCQlmb3IgKGkgPSAwOyBpIDwgbXNnX2hlYWQtPm5mcmFtZXM7IGkrKykgewogCQkJZXJyID0gbWVtY3B5X2Zyb21pb3ZlYygodTggKikmb3AtPmZyYW1lc1tpXSwKIAkJCQkJICAgICAgIG1zZy0+bXNnX2lvdiwgQ0ZTSVopOworCisJCQlpZiAob3AtPmZyYW1lc1tpXS5jYW5fZGxjID4gOCkKKwkJCQllcnIgPSAtRUlOVkFMOworCiAJCQlpZiAoZXJyIDwgMCkKIAkJCQlyZXR1cm4gZXJyOwogCkBAIC04NTgsNiArODYyLDEwIEBACiAJCWZvciAoaSA9IDA7IGkgPCBtc2dfaGVhZC0+bmZyYW1lczsgaSsrKSB7CiAJCQllcnIgPSBtZW1jcHlfZnJvbWlvdmVjKCh1OCAqKSZvcC0+ZnJhbWVzW2ldLAogCQkJCQkgICAgICAgbXNnLT5tc2dfaW92LCBDRlNJWik7CisKKwkJCWlmIChvcC0+ZnJhbWVzW2ldLmNhbl9kbGMgPiA4KQorCQkJCWVyciA9IC1FSU5WQUw7CisKIAkJCWlmIChlcnIgPCAwKSB7CiAJCQkJaWYgKG9wLT5mcmFtZXMgIT0gJm9wLT5zZnJhbWUpCiAJCQkJCWtmcmVlKG9wLT5mcmFtZXMpOwpAQCAtMTE2NCw5ICsxMTcyLDEyIEBACiAKIAlza2ItPmRldiA9IGRldjsKIAlza2ItPnNrICA9IHNrOwotCWNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLworCWVyciA9IGNhbl9zZW5kKHNrYiwgMSk7IC8qIHNlbmQgd2l0aCBsb29wYmFjayAqLwogCWRldl9wdXQoZGV2KTsKIAorCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKIAlyZXR1cm4gQ0ZTSVogKyBNSFNJWjsKIH0KIApAQCAtMTE4NSw2ICsxMTk2LDEwIEBACiAJaWYgKCFiby0+Ym91bmQpCiAJCXJldHVybiAtRU5PVENPTk47CiAKKwkvKiBjaGVjayBmb3IgdmFsaWQgbWVzc2FnZSBsZW5ndGggZnJvbSB1c2Vyc3BhY2UgKi8KKwlpZiAoc2l6ZSA8IE1IU0laIHx8IChzaXplIC0gTUhTSVopICUgQ0ZTSVopCisJCXJldHVybiAtRUlOVkFMOworCiAJLyogY2hlY2sgZm9yIGFsdGVybmF0aXZlIGlmaW5kZXggZm9yIHRoaXMgYmNtX29wICovCiAKIAlpZiAoIWlmaW5kZXggJiYgbXNnLT5tc2dfbmFtZSkgewpAQCAtMTI1OSw4ICsxMjc0LDggQEAKIAkJYnJlYWs7CiAKIAljYXNlIFRYX1NFTkQ6Ci0JCS8qIHdlIG5lZWQgYXQgbGVhc3Qgb25lIGNhbl9mcmFtZSAqLwotCQlpZiAobXNnX2hlYWQubmZyYW1lcyA8IDEpCisJCS8qIHdlIG5lZWQgZXhhY3RseSBvbmUgY2FuX2ZyYW1lIGJlaGluZCB0aGUgbXNnIGhlYWQgKi8KKwkJaWYgKChtc2dfaGVhZC5uZnJhbWVzICE9IDEpIHx8IChzaXplICE9IENGU0laICsgTUhTSVopKQogCQkJcmV0ID0gLUVJTlZBTDsKIAkJZWxzZQogCQkJcmV0ID0gYmNtX3R4X3NlbmQobXNnLCBpZmluZGV4LCBzayk7CmRpZmYgLS1naXQgYS9uZXQvY2FuL3Jhdy5jIGIvbmV0L2Nhbi9yYXcuYwppbmRleCA2OTg3N2I4Li4zZTQ2ZWUzIDEwMDY0NAotLS0gYS9uZXQvY2FuL3Jhdy5jCisrKyBiL25ldC9jYW4vcmF3LmMKQEAgLTYzMiw2ICs2MzIsOSBAQAogCX0gZWxzZQogCQlpZmluZGV4ID0gcm8tPmlmaW5kZXg7CiAKKwlpZiAoc2l6ZSAhPSBzaXplb2Yoc3RydWN0IGNhbl9mcmFtZSkpCisJCXJldHVybiAtRUlOVkFMOworCiAJZGV2ID0gZGV2X2dldF9ieV9pbmRleCgmaW5pdF9uZXQsIGlmaW5kZXgpOwogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOWElPOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA1ODI5NjMwLi44MjFjYjE2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtMTE5LDYgKzExOSw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvY3R5cGUuaD4KICNpbmNsdWRlIDxsaW51eC9pZl9hcnAuaD4KKyNpbmNsdWRlIDxsaW51eC9pZl92bGFuLmg+CiAKICNpbmNsdWRlICJuZXQtc3lzZnMuaCIKIApAQCAtNDUzLDcgKzQ1NCw3IEBACiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gPT0gJ1wwJyB8fCBzW2ldLm5hbWVbMF0gPT0gJyAnKSB7CiAJCQltZW1zZXQoc1tpXS5uYW1lLCAwLCBzaXplb2Yoc1tpXS5uYW1lKSk7Ci0JCQlzdHJjcHkoc1tpXS5uYW1lLCBuYW1lKTsKKwkJCXN0cmxjcHkoc1tpXS5uYW1lLCBuYW1lLCBJRk5BTVNJWik7CiAJCQltZW1jcHkoJnNbaV0ubWFwLCBtYXAsIHNpemVvZihzW2ldLm1hcCkpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTQ3OCw3ICs0NzksNyBAQAogCiAJZm9yIChpID0gMDsgaSA8IE5FVERFVl9CT09UX1NFVFVQX01BWDsgaSsrKSB7CiAJCWlmIChzW2ldLm5hbWVbMF0gIT0gJ1wwJyAmJiBzW2ldLm5hbWVbMF0gIT0gJyAnICYmCi0JCSAgICAhc3RybmNtcChkZXYtPm5hbWUsIHNbaV0ubmFtZSwgc3RybGVuKHNbaV0ubmFtZSkpKSB7CisJCSAgICAhc3RyY21wKGRldi0+bmFtZSwgc1tpXS5uYW1lKSkgewogCQkJZGV2LT5pcnEgCT0gc1tpXS5tYXAuaXJxOwogCQkJZGV2LT5iYXNlX2FkZHIgCT0gc1tpXS5tYXAuYmFzZV9hZGRyOwogCQkJZGV2LT5tZW1fc3RhcnQgCT0gc1tpXS5tYXAubWVtX3N0YXJ0OwpAQCAtMTM2Miw2ICsxMzYzLDI5IEBACiB9CiBFWFBPUlRfU1lNQk9MKG5ldGlmX2RldmljZV9hdHRhY2gpOwogCitzdGF0aWMgYm9vbCBjYW5fY2hlY2tzdW1fcHJvdG9jb2wodW5zaWduZWQgbG9uZyBmZWF0dXJlcywgX19iZTE2IHByb3RvY29sKQoreworCXJldHVybiAoKGZlYXR1cmVzICYgTkVUSUZfRl9HRU5fQ1NVTSkgfHwKKwkJKChmZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSkgJiYKKwkJIHByb3RvY29sID09IGh0b25zKEVUSF9QX0lQKSkgfHwKKwkJKChmZWF0dXJlcyAmIE5FVElGX0ZfSVBWNl9DU1VNKSAmJgorCQkgcHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpKTsKK30KKworc3RhdGljIGJvb2wgZGV2X2Nhbl9jaGVja3N1bShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCWlmIChjYW5fY2hlY2tzdW1fcHJvdG9jb2woZGV2LT5mZWF0dXJlcywgc2tiLT5wcm90b2NvbCkpCisJCXJldHVybiB0cnVlOworCisJaWYgKHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMVEpKSB7CisJCXN0cnVjdCB2bGFuX2V0aGhkciAqdmVoID0gKHN0cnVjdCB2bGFuX2V0aGhkciAqKXNrYi0+ZGF0YTsKKwkJaWYgKGNhbl9jaGVja3N1bV9wcm90b2NvbChkZXYtPmZlYXR1cmVzICYgZGV2LT52bGFuX2ZlYXR1cmVzLAorCQkJCQkgIHZlaC0+aF92bGFuX2VuY2Fwc3VsYXRlZF9wcm90bykpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CiAKIC8qCiAgKiBJbnZhbGlkYXRlIGhhcmR3YXJlIGNoZWNrc3VtIHdoZW4gcGFja2V0IGlzIHRvIGJlIG1hbmdsZWQsIGFuZApAQCAtMTY0MCwxNCArMTY2NCw4IEBACiAJaWYgKHNrYi0+aXBfc3VtbWVkID09IENIRUNLU1VNX1BBUlRJQUwpIHsKIAkJc2tiX3NldF90cmFuc3BvcnRfaGVhZGVyKHNrYiwgc2tiLT5jc3VtX3N0YXJ0IC0KIAkJCQkJICAgICAgc2tiX2hlYWRyb29tKHNrYikpOwotCi0JCWlmICghKGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX0dFTl9DU1VNKSAmJgotCQkgICAgISgoZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfSVBfQ1NVTSkgJiYKLQkJICAgICAgc2tiLT5wcm90b2NvbCA9PSBodG9ucyhFVEhfUF9JUCkpICYmCi0JCSAgICAhKChkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9JUFY2X0NTVU0pICYmCi0JCSAgICAgIHNrYi0+cHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfSVBWNikpKQotCQkJaWYgKHNrYl9jaGVja3N1bV9oZWxwKHNrYikpCi0JCQkJZ290byBvdXRfa2ZyZWVfc2tiOworCQlpZiAoIWRldl9jYW5fY2hlY2tzdW0oZGV2LCBza2IpICYmIHNrYl9jaGVja3N1bV9oZWxwKHNrYikpCisJCQlnb3RvIG91dF9rZnJlZV9za2I7CiAJfQogCiBnc286CkBAIC0yMDU5LDYgKzIwNzcsMTAgQEAKIAogCXJjdV9yZWFkX2xvY2soKTsKIAorCS8qIERvbid0IHJlY2VpdmUgcGFja2V0cyBpbiBhbiBleGl0aW5nIG5ldHdvcmsgbmFtZXNwYWNlICovCisJaWYgKCFuZXRfYWxpdmUoZGV2X25ldChza2ItPmRldikpKQorCQlnb3RvIG91dDsKKwogI2lmZGVmIENPTkZJR19ORVRfQ0xTX0FDVAogCWlmIChza2ItPnRjX3ZlcmQgJiBUQ19OQ0xTKSB7CiAJCXNrYi0+dGNfdmVyZCA9IENMUl9UQ19OQ0xTKHNrYi0+dGNfdmVyZCk7CkBAIC0yOTUxLDcgKzI5NzMsNyBAQAogLyoqCiAgKglkZXZfdW5pY2FzdF9hZGQJCS0gYWRkIGEgc2Vjb25kYXJ5IHVuaWNhc3QgYWRkcmVzcwogICoJQGRldjogZGV2aWNlCi0gKglAYWRkcjogYWRkcmVzcyB0byBkZWxldGUKKyAqCUBhZGRyOiBhZGRyZXNzIHRvIGFkZAogICoJQGFsZW46IGxlbmd0aCBvZiBAYWRkcgogICoKICAqCUFkZCBhIHNlY29uZGFyeSB1bmljYXN0IGFkZHJlc3MgdG8gdGhlIGRldmljZSBvciBpbmNyZWFzZQpAQCAtNDU2Myw4ICs0NTg1LDggQEAKIAogCWRldl9ib290X3BoYXNlID0gMDsKIAotCW9wZW5fc29mdGlycShORVRfVFhfU09GVElSUSwgbmV0X3R4X2FjdGlvbiwgTlVMTCk7Ci0Jb3Blbl9zb2Z0aXJxKE5FVF9SWF9TT0ZUSVJRLCBuZXRfcnhfYWN0aW9uLCBOVUxMKTsKKwlvcGVuX3NvZnRpcnEoTkVUX1RYX1NPRlRJUlEsIG5ldF90eF9hY3Rpb24pOworCW9wZW5fc29mdGlycShORVRfUlhfU09GVElSUSwgbmV0X3J4X2FjdGlvbik7CiAKIAlob3RjcHVfbm90aWZpZXIoZGV2X2NwdV9jYWxsYmFjaywgMCk7CiAJZHN0X2luaXQoKTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpYl9ydWxlcy5jIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKaW5kZXggZTNlOWFiMC4uMjc3YTIzMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmliX3J1bGVzLmMKKysrIGIvbmV0L2NvcmUvZmliX3J1bGVzLmMKQEAgLTIyNiw3ICsyMjYsNyBAQAogCiAJb3BzID0gbG9va3VwX3J1bGVzX29wcyhuZXQsIGZyaC0+ZmFtaWx5KTsKIAlpZiAob3BzID09IE5VTEwpIHsKLQkJZXJyID0gRUFGTk9TVVBQT1JUOworCQllcnIgPSAtRUFGTk9TVVBQT1JUOwogCQlnb3RvIGVycm91dDsKIAl9CiAKQEAgLTM2NSw3ICszNjUsNyBAQAogCiAJb3BzID0gbG9va3VwX3J1bGVzX29wcyhuZXQsIGZyaC0+ZmFtaWx5KTsKIAlpZiAob3BzID09IE5VTEwpIHsKLQkJZXJyID0gRUFGTk9TVVBQT1JUOworCQllcnIgPSAtRUFGTk9TVVBQT1JUOwogCQlnb3RvIGVycm91dDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2ZpbHRlci5jIGIvbmV0L2NvcmUvZmlsdGVyLmMKaW5kZXggNGY4MzY5Ny4uZGYzNzQ0MyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmlsdGVyLmMKKysrIGIvbmV0L2NvcmUvZmlsdGVyLmMKQEAgLTY4LDcgKzY4LDYgQEAKICAqCXNrX2ZpbHRlciAtIHJ1biBhIHBhY2tldCB0aHJvdWdoIGEgc29ja2V0IGZpbHRlcgogICoJQHNrOiBzb2NrIGFzc29jaWF0ZWQgd2l0aCAmc2tfYnVmZgogICoJQHNrYjogYnVmZmVyIHRvIGZpbHRlcgotICoJQG5lZWRsb2NrOiBzZXQgdG8gMSBpZiB0aGUgc29jayBpcyBub3QgbG9ja2VkIGJ5IGNhbGxlci4KICAqCiAgKiBSdW4gdGhlIGZpbHRlciBjb2RlIGFuZCB0aGVuIGN1dCBza2ItPmRhdGEgdG8gY29ycmVjdCBzaXplIHJldHVybmVkIGJ5CiAgKiBza19ydW5fZmlsdGVyLiBJZiBwa3RfbGVuIGlzIDAgd2UgdG9zcyBwYWNrZXQuIElmIHNrYi0+bGVuIGlzIHNtYWxsZXIKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdoYm91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggNWQ5ZDcxMy4uNjVmMDFmNyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKQEAgLTE3MTQsNyArMTcxNCw4IEBACiAJcmV0dXJuIG5sYV9uZXN0X2VuZChza2IsIG5lc3QpOwogCiBubGFfcHV0X2ZhaWx1cmU6Ci0JcmV0dXJuIG5sYV9uZXN0X2NhbmNlbChza2IsIG5lc3QpOworCW5sYV9uZXN0X2NhbmNlbChza2IsIG5lc3QpOworCXJldHVybiAtRU1TR1NJWkU7CiB9CiAKIHN0YXRpYyBpbnQgbmVpZ2h0YmxfZmlsbF9pbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZWlnaF90YWJsZSAqdGJsLApAQCAtMjA1Nyw5ICsyMDU4LDkgQEAKIAkJZ290byBubGFfcHV0X2ZhaWx1cmU7CiAJfQogCi0JY2kubmRtX3VzZWQJID0gbm93IC0gbmVpZ2gtPnVzZWQ7Ci0JY2kubmRtX2NvbmZpcm1lZCA9IG5vdyAtIG5laWdoLT5jb25maXJtZWQ7Ci0JY2kubmRtX3VwZGF0ZWQJID0gbm93IC0gbmVpZ2gtPnVwZGF0ZWQ7CisJY2kubmRtX3VzZWQJID0gamlmZmllc190b19jbG9ja190KG5vdyAtIG5laWdoLT51c2VkKTsKKwljaS5uZG1fY29uZmlybWVkID0gamlmZmllc190b19jbG9ja190KG5vdyAtIG5laWdoLT5jb25maXJtZWQpOworCWNpLm5kbV91cGRhdGVkCSA9IGppZmZpZXNfdG9fY2xvY2tfdChub3cgLSBuZWlnaC0+dXBkYXRlZCk7CiAJY2kubmRtX3JlZmNudAkgPSBhdG9taWNfcmVhZCgmbmVpZ2gtPnJlZmNudCkgLSAxOwogCXJlYWRfdW5sb2NrX2JoKCZuZWlnaC0+bG9jayk7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYyBiL25ldC9jb3JlL25ldF9uYW1lc3BhY2UuYwppbmRleCA3MmI0YzE4Li43YzUyZmUyIDEwMDY0NAotLS0gYS9uZXQvY29yZS9uZXRfbmFtZXNwYWNlLmMKKysrIGIvbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jCkBAIC0xNDAsNiArMTQwLDkgQEAKIAlzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgKm9wczsKIAlzdHJ1Y3QgbmV0ICpuZXQ7CiAKKwkvKiBCZSB2ZXJ5IGNlcnRhaW4gaW5jb21pbmcgbmV0d29yayBwYWNrZXRzIHdpbGwgbm90IGZpbmQgdXMgKi8KKwlyY3VfYmFycmllcigpOworCiAJbmV0ID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBuZXQsIHdvcmspOwogCiAJbXV0ZXhfbG9jaygmbmV0X211dGV4KTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3J0bmV0bGluay5jIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKaW5kZXggY2Y4NTdjNC4uYTlhNzcyMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvcnRuZXRsaW5rLmMKKysrIGIvbmV0L2NvcmUvcnRuZXRsaW5rLmMKQEAgLTQ5OCw3ICs0OTgsOCBAQAogCXJldHVybiBubGFfbmVzdF9lbmQoc2tiLCBteCk7CiAKIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gbmxhX25lc3RfY2FuY2VsKHNrYiwgbXgpOworCW5sYV9uZXN0X2NhbmNlbChza2IsIG14KTsKKwlyZXR1cm4gLUVNU0dTSVpFOwogfQogCiBpbnQgcnRubF9wdXRfY2FjaGVpbmZvKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkc3RfZW50cnkgKmRzdCwgdTMyIGlkLApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCA1YzQ1OWYyLi4zNjY2MjE2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9za2J1ZmYuYworKysgYi9uZXQvY29yZS9za2J1ZmYuYwpAQCAtMTI5MiwxMiArMTI5MiwxNCBAQAogewogCXVuc2lnbmVkIGludCBucl9wYWdlcyA9IHNwZC0+bnJfcGFnZXM7CiAJdW5zaWduZWQgaW50IHBvZmYsIHBsZW4sIGxlbiwgdG9mZiwgdGxlbjsKLQlpbnQgaGVhZGxlbiwgc2VnOworCWludCBoZWFkbGVuLCBzZWcsIGVycm9yID0gMDsKIAogCXRvZmYgPSAqb2Zmc2V0OwogCXRsZW4gPSAqdG90YWxfbGVuOwotCWlmICghdGxlbikKKwlpZiAoIXRsZW4pIHsKKwkJZXJyb3IgPSAxOwogCQlnb3RvIGVycjsKKwl9CiAKIAkvKgogCSAqIGlmIHRoZSBvZmZzZXQgaXMgZ3JlYXRlciB0aGFuIHRoZSBsaW5lYXIgcGFydCwgZ28gZGlyZWN0bHkgdG8KQEAgLTEzMzksNyArMTM0MSw4IEBACiAJCSAqIGp1c3QganVtcCBkaXJlY3RseSB0byB1cGRhdGUgYW5kIHJldHVybiwgbm8gcG9pbnQKIAkJICogaW4gZ29pbmcgb3ZlciBmcmFnbWVudHMgd2hlbiB0aGUgb3V0cHV0IGlzIGZ1bGwuCiAJCSAqLwotCQlpZiAoc3BkX2ZpbGxfcGFnZShzcGQsIHZpcnRfdG9fcGFnZShwKSwgcGxlbiwgcG9mZiwgc2tiKSkKKwkJZXJyb3IgPSBzcGRfZmlsbF9wYWdlKHNwZCwgdmlydF90b19wYWdlKHApLCBwbGVuLCBwb2ZmLCBza2IpOworCQlpZiAoZXJyb3IpCiAJCQlnb3RvIGRvbmU7CiAKIAkJdGxlbiAtPSBwbGVuOwpAQCAtMTM2OSw3ICsxMzcyLDggQEAKIAkJaWYgKCFwbGVuKQogCQkJYnJlYWs7CiAKLQkJaWYgKHNwZF9maWxsX3BhZ2Uoc3BkLCBmLT5wYWdlLCBwbGVuLCBwb2ZmLCBza2IpKQorCQllcnJvciA9IHNwZF9maWxsX3BhZ2Uoc3BkLCBmLT5wYWdlLCBwbGVuLCBwb2ZmLCBza2IpOworCQlpZiAoZXJyb3IpCiAJCQlicmVhazsKIAogCQl0bGVuIC09IHBsZW47CkBAIC0xMzgyLDcgKzEzODYsMTAgQEAKIAkJcmV0dXJuIDA7CiAJfQogZXJyOgotCXJldHVybiAxOworCS8qIHVwZGF0ZSB0aGUgb2Zmc2V0IHRvIHJlZmxlY3QgdGhlIGxpbmVhciBwYXJ0IHNraXAsIGlmIGFueSAqLworCWlmICghZXJyb3IpCisJCSpvZmZzZXQgPSB0b2ZmOworCXJldHVybiBlcnJvcjsKIH0KIAogLyoKQEAgLTE0NDUsNiArMTQ1Miw3IEBACiAKIAlpZiAoc3BkLm5yX3BhZ2VzKSB7CiAJCWludCByZXQ7CisJCXN0cnVjdCBzb2NrICpzayA9IF9fc2tiLT5zazsKIAogCQkvKgogCQkgKiBEcm9wIHRoZSBzb2NrZXQgbG9jaywgb3RoZXJ3aXNlIHdlIGhhdmUgcmV2ZXJzZQpAQCAtMTQ1NSw5ICsxNDYzLDkgQEAKIAkJICogd2UgY2FsbCBpbnRvIC0+c2VuZHBhZ2UoKSB3aXRoIHRoZSBpX211dGV4IGxvY2sgaGVsZAogCQkgKiBhbmQgbmV0d29ya2luZyB3aWxsIGdyYWIgdGhlIHNvY2tldCBsb2NrLgogCQkgKi8KLQkJcmVsZWFzZV9zb2NrKF9fc2tiLT5zayk7CisJCXJlbGVhc2Vfc29jayhzayk7CiAJCXJldCA9IHNwbGljZV90b19waXBlKHBpcGUsICZzcGQpOwotCQlsb2NrX3NvY2soX19za2ItPnNrKTsKKwkJbG9ja19zb2NrKHNrKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3VzZXJfZG1hLmMgYi9uZXQvY29yZS91c2VyX2RtYS5jCmluZGV4IDBhZDFjZDUuLmM3N2FmZjkgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3VzZXJfZG1hLmMKKysrIGIvbmV0L2NvcmUvdXNlcl9kbWEuYwpAQCAtNzUsNyArNzUsNyBAQAogCiAJCWVuZCA9IHN0YXJ0ICsgc2tiX3NoaW5mbyhza2IpLT5mcmFnc1tpXS5zaXplOwogCQljb3B5ID0gZW5kIC0gb2Zmc2V0OwotCQlpZiAoKGNvcHkgPSBlbmQgLSBvZmZzZXQpID4gMCkgeworCQlpZiAoY29weSA+IDApIHsKIAkJCXNrYl9mcmFnX3QgKmZyYWcgPSAmc2tiX3NoaW5mbyhza2IpLT5mcmFnc1tpXTsKIAkJCXN0cnVjdCBwYWdlICpwYWdlID0gZnJhZy0+cGFnZTsKIApkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvYWNrdmVjLmMgYi9uZXQvZGNjcC9hY2t2ZWMuYwppbmRleCA2ZGU0YmQxLi4xZThiZTI0IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9hY2t2ZWMuYworKysgYi9uZXQvZGNjcC9hY2t2ZWMuYwpAQCAtMjkwLDEyICsyOTAsMTIgQEAKIAogCQl3aGlsZSAoMSkgewogCQkJY29uc3QgdTggbGVuID0gZGNjcF9hY2t2ZWNfbGVuKGF2LCBpbmRleCk7Ci0JCQljb25zdCB1OCBzdGF0ZSA9IGRjY3BfYWNrdmVjX3N0YXRlKGF2LCBpbmRleCk7CisJCQljb25zdCB1OCBhdl9zdGF0ZSA9IGRjY3BfYWNrdmVjX3N0YXRlKGF2LCBpbmRleCk7CiAJCQkvKgogCQkJICogdmFsaWQgcGFja2V0cyBub3QgeWV0IGluIGF2X2J1ZiBoYXZlIGEgcmVzZXJ2ZWQKIAkJCSAqIGVudHJ5LCB3aXRoIGEgbGVuIGVxdWFsIHRvIDAuCiAJCQkgKi8KLQkJCWlmIChzdGF0ZSA9PSBEQ0NQX0FDS1ZFQ19TVEFURV9OT1RfUkVDRUlWRUQgJiYKKwkJCWlmIChhdl9zdGF0ZSA9PSBEQ0NQX0FDS1ZFQ19TVEFURV9OT1RfUkVDRUlWRUQgJiYKIAkJCSAgICBsZW4gPT0gMCAmJiBkZWx0YSA9PSAwKSB7IC8qIEZvdW5kIG91cgogCQkJCQkJCSByZXNlcnZlZCBzZWF0ISAqLwogCQkJCWRjY3BfcHJfZGVidWcoIkZvdW5kICVsbHUgcmVzZXJ2ZWQgc2VhdCFcbiIsCkBAIC0zMjUsMzEgKzMyNSw2IEBACiAJcmV0dXJuIC1FSUxTRVE7CiB9CiAKLSNpZmRlZiBDT05GSUdfSVBfRENDUF9ERUJVRwotdm9pZCBkY2NwX2Fja3ZlY3Rvcl9wcmludChjb25zdCB1NjQgYWNrbm8sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZlY3RvciwgaW50IGxlbikKLXsKLQlkY2NwX3ByX2RlYnVnX2NhdCgiQUNLIHZlY3RvciBsZW49JWQsIGFja25vPSVsbHUgfCIsIGxlbiwKLQkJCSAodW5zaWduZWQgbG9uZyBsb25nKWFja25vKTsKLQotCXdoaWxlIChsZW4tLSkgewotCQljb25zdCB1OCBzdGF0ZSA9ICgqdmVjdG9yICYgRENDUF9BQ0tWRUNfU1RBVEVfTUFTSykgPj4gNjsKLQkJY29uc3QgdTggcmwgPSAqdmVjdG9yICYgRENDUF9BQ0tWRUNfTEVOX01BU0s7Ci0KLQkJZGNjcF9wcl9kZWJ1Z19jYXQoIiVkLCVkfCIsIHN0YXRlLCBybCk7Ci0JCSsrdmVjdG9yOwotCX0KLQotCWRjY3BfcHJfZGVidWdfY2F0KCJcbiIpOwotfQotCi12b2lkIGRjY3BfYWNrdmVjX3ByaW50KGNvbnN0IHN0cnVjdCBkY2NwX2Fja3ZlYyAqYXYpCi17Ci0JZGNjcF9hY2t2ZWN0b3JfcHJpbnQoYXYtPmF2X2J1Zl9hY2tubywKLQkJCSAgICAgYXYtPmF2X2J1ZiArIGF2LT5hdl9idWZfaGVhZCwKLQkJCSAgICAgYXYtPmF2X3ZlY19sZW4pOwotfQotI2VuZGlmCi0KIHN0YXRpYyB2b2lkIGRjY3BfYWNrdmVjX3Rocm93X3JlY29yZChzdHJ1Y3QgZGNjcF9hY2t2ZWMgKmF2LAogCQkJCSAgICAgc3RydWN0IGRjY3BfYWNrdmVjX3JlY29yZCAqYXZyKQogewpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYyBiL25ldC9kY2NwL2NjaWRzL2NjaWQzLmMKaW5kZXggY2Q2MWRlYS4uYTE5MjlmMyAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvY2NpZDMuYworKysgYi9uZXQvZGNjcC9jY2lkcy9jY2lkMy5jCkBAIC0xNTksOCArMTU5LDggQEAKIAl9IGVsc2UgaWYgKGt0aW1lX3VzX2RlbHRhKG5vdywgaGN0eC0+Y2NpZDNoY3R4X3RfbGQpCiAJCQkJLSAoczY0KWhjdHgtPmNjaWQzaGN0eF9ydHQgPj0gMCkgewogCi0JCWhjdHgtPmNjaWQzaGN0eF94ID0KLQkJCW1heChtaW4oMiAqIGhjdHgtPmNjaWQzaGN0eF94LCBtaW5fcmF0ZSksCisJCWhjdHgtPmNjaWQzaGN0eF94ID0gbWluKDIgKiBoY3R4LT5jY2lkM2hjdHhfeCwgbWluX3JhdGUpOworCQloY3R4LT5jY2lkM2hjdHhfeCA9IG1heChoY3R4LT5jY2lkM2hjdHhfeCwKIAkJCSAgICBzY2FsZWRfZGl2KCgoX191NjQpaGN0eC0+Y2NpZDNoY3R4X3MpIDw8IDYsCiAJCQkJICAgICAgIGhjdHgtPmNjaWQzaGN0eF9ydHQpKTsKIAkJaGN0eC0+Y2NpZDNoY3R4X3RfbGQgPSBub3c7CkBAIC0xOTMsMjIgKzE5MywxNyBAQAogCiAvKgogICoJVXBkYXRlIFdpbmRvdyBDb3VudGVyIHVzaW5nIHRoZSBhbGdvcml0aG0gZnJvbSBbUkZDIDQzNDIsIDguMV0uCi0gKglUaGUgYWxnb3JpdGhtIGlzIG5vdCBhcHBsaWNhYmxlIGlmIFJUVCA8IDQgbWljcm9zZWNvbmRzLgorICoJQXMgZWxzZXdoZXJlLCBSVFQgPiAwIGlzIGFzc3VtZWQgYnkgdXNpbmcgZGNjcF9zYW1wbGVfcnR0KCkuCiAgKi8KIHN0YXRpYyBpbmxpbmUgdm9pZCBjY2lkM19oY190eF91cGRhdGVfd2luX2NvdW50KHN0cnVjdCBjY2lkM19oY190eF9zb2NrICpoY3R4LAogCQkJCQkJa3RpbWVfdCBub3cpCiB7Ci0JdTMyIHF1YXJ0ZXJfcnR0czsKLQotCWlmICh1bmxpa2VseShoY3R4LT5jY2lkM2hjdHhfcnR0IDwgNCkpCS8qIGF2b2lkIGRpdmlkZS1ieS16ZXJvICovCi0JCXJldHVybjsKLQotCXF1YXJ0ZXJfcnR0cyA9IGt0aW1lX3VzX2RlbHRhKG5vdywgaGN0eC0+Y2NpZDNoY3R4X3RfbGFzdF93aW5fY291bnQpOwotCXF1YXJ0ZXJfcnR0cyAvPSBoY3R4LT5jY2lkM2hjdHhfcnR0IC8gNDsKKwl1MzIgZGVsdGEgPSBrdGltZV91c19kZWx0YShub3csIGhjdHgtPmNjaWQzaGN0eF90X2xhc3Rfd2luX2NvdW50KSwKKwkgICAgcXVhcnRlcl9ydHRzID0gKDQgKiBkZWx0YSkgLyBoY3R4LT5jY2lkM2hjdHhfcnR0OwogCiAJaWYgKHF1YXJ0ZXJfcnR0cyA+IDApIHsKIAkJaGN0eC0+Y2NpZDNoY3R4X3RfbGFzdF93aW5fY291bnQgPSBub3c7Ci0JCWhjdHgtPmNjaWQzaGN0eF9sYXN0X3dpbl9jb3VudAkrPSBtaW5fdCh1MzIsIHF1YXJ0ZXJfcnR0cywgNSk7CisJCWhjdHgtPmNjaWQzaGN0eF9sYXN0X3dpbl9jb3VudCAgKz0gbWluKHF1YXJ0ZXJfcnR0cywgNVUpOwogCQloY3R4LT5jY2lkM2hjdHhfbGFzdF93aW5fY291bnQJJj0gMHhGOwkJLyogbW9kIDE2ICovCiAJfQogfQpAQCAtMzM0LDggKzMyOSwxNCBAQAogCQkJaGN0eC0+Y2NpZDNoY3R4X3ggICAgPSByZmMzMzkwX2luaXRpYWxfcmF0ZShzayk7CiAJCQloY3R4LT5jY2lkM2hjdHhfdF9sZCA9IG5vdzsKIAkJfSBlbHNlIHsKLQkJCS8qIFNlbmRlciBkb2VzIG5vdCBoYXZlIFJUVCBzYW1wbGU6IFhfcHBzID0gMSBwa3Qvc2VjICovCi0JCQloY3R4LT5jY2lkM2hjdHhfeCA9IGhjdHgtPmNjaWQzaGN0eF9zOworCQkJLyoKKwkJCSAqIFNlbmRlciBkb2VzIG5vdCBoYXZlIFJUVCBzYW1wbGU6CisJCQkgKiAtIHNldCBmYWxsYmFjayBSVFQgKFJGQyA0MzQwLCAzLjQpIHNpbmNlIGEgUlRUIHZhbHVlCisJCQkgKiAgIGlzIG5lZWRlZCBpbiBzZXZlcmFsIHBhcnRzIChlLmcuICB3aW5kb3cgY291bnRlcik7CisJCQkgKiAtIHNldCBzZW5kaW5nIHJhdGUgWF9wcHMgPSAxcHBzIGFzIHBlciBSRkMgMzQ0OCwgNC4yLgorCQkJICovCisJCQloY3R4LT5jY2lkM2hjdHhfcnR0ID0gRENDUF9GQUxMQkFDS19SVFQ7CisJCQloY3R4LT5jY2lkM2hjdHhfeCAgID0gaGN0eC0+Y2NpZDNoY3R4X3M7CiAJCQloY3R4LT5jY2lkM2hjdHhfeCA8PD0gNjsKIAkJfQogCQljY2lkM191cGRhdGVfc2VuZF9pbnRlcnZhbChoY3R4KTsKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjLmMgYi9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5jCmluZGV4IGQxZGZiYjguLjk3ZWNlYzAgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjLmMKKysrIGIvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmMuYwpAQCAtMTQsMTQgKzE0LDYgQEAKIE1PRFVMRV9QQVJNX0RFU0ModGZyY19kZWJ1ZywgIkVuYWJsZSBkZWJ1ZyBtZXNzYWdlcyIpOwogI2VuZGlmCiAKLWV4dGVybiBpbnQgIHRmcmNfdHhfcGFja2V0X2hpc3RvcnlfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIHRmcmNfdHhfcGFja2V0X2hpc3RvcnlfZXhpdCh2b2lkKTsKLWV4dGVybiBpbnQgIHRmcmNfcnhfcGFja2V0X2hpc3RvcnlfaW5pdCh2b2lkKTsKLWV4dGVybiB2b2lkIHRmcmNfcnhfcGFja2V0X2hpc3RvcnlfZXhpdCh2b2lkKTsKLQotZXh0ZXJuIGludCAgdGZyY19saV9pbml0KHZvaWQpOwotZXh0ZXJuIHZvaWQgdGZyY19saV9leGl0KHZvaWQpOwotCiBzdGF0aWMgaW50IF9faW5pdCB0ZnJjX21vZHVsZV9pbml0KHZvaWQpCiB7CiAJaW50IHJjID0gdGZyY19saV9pbml0KCk7CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5oIGIvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmMuaAppbmRleCAxZmIxMTg3Li5lZDk4NTc1IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9jY2lkcy9saWIvdGZyYy5oCisrKyBiL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjLmgKQEAgLTE1LDcgKzE1LDcgQEAKICAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICovCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXRoNjQuaD4KICNpbmNsdWRlICIuLi8uLi9kY2NwLmgiCiAvKiBpbnRlcm5hbCBpbmNsdWRlcyB0aGF0IHRoaXMgbW9kdWxlIGV4cG9ydHM6ICovCiAjaW5jbHVkZSAibG9zc19pbnRlcnZhbC5oIgpAQCAtMjksMjEgKzI5LDE5IEBACiAjZW5kaWYKIAogLyogaW50ZWdlci1hcml0aG1ldGljIGRpdmlzaW9ucyBvZiB0eXBlIChhICogMTAwMDAwMCkvYiAqLwotc3RhdGljIGlubGluZSB1NjQgc2NhbGVkX2Rpdih1NjQgYSwgdTMyIGIpCitzdGF0aWMgaW5saW5lIHU2NCBzY2FsZWRfZGl2KHU2NCBhLCB1NjQgYikKIHsKIAlCVUdfT04oYj09MCk7Ci0JYSAqPSAxMDAwMDAwOwotCWRvX2RpdihhLCBiKTsKLQlyZXR1cm4gYTsKKwlyZXR1cm4gZGl2NjRfdTY0KGEgKiAxMDAwMDAwLCBiKTsKIH0KIAotc3RhdGljIGlubGluZSB1MzIgc2NhbGVkX2RpdjMyKHU2NCBhLCB1MzIgYikKK3N0YXRpYyBpbmxpbmUgdTMyIHNjYWxlZF9kaXYzMih1NjQgYSwgdTY0IGIpCiB7CiAJdTY0IHJlc3VsdCA9IHNjYWxlZF9kaXYoYSwgYik7CiAKIAlpZiAocmVzdWx0ID4gVUlOVF9NQVgpIHsKLQkJRENDUF9DUklUKCJPdmVyZmxvdzogYSglbGx1KS9iKCV1KSA+IH4wVSIsCi0JCQkgICh1bnNpZ25lZCBsb25nIGxvbmcpYSwgYik7CisJCURDQ1BfQ1JJVCgiT3ZlcmZsb3c6ICVsbHUvJWxsdSA+IFVJTlRfTUFYIiwKKwkJCSAgKHVuc2lnbmVkIGxvbmcgbG9uZylhLCAodW5zaWduZWQgbG9uZyBsb25nKWIpOwogCQlyZXR1cm4gVUlOVF9NQVg7CiAJfQogCXJldHVybiByZXN1bHQ7CkBAIC01OCw3ICs1NiwxNCBAQAogCXJldHVybiBhdmcgPyAod2VpZ2h0ICogYXZnICsgKDEwIC0gd2VpZ2h0KSAqIG5ld3ZhbCkgLyAxMCA6IG5ld3ZhbDsKIH0KIAotZXh0ZXJuIHUzMiB0ZnJjX2NhbGNfeCh1MTYgcywgdTMyIFIsIHUzMiBwKTsKLWV4dGVybiB1MzIgdGZyY19jYWxjX3hfcmV2ZXJzZV9sb29rdXAodTMyIGZ2YWx1ZSk7CitleHRlcm4gdTMyICB0ZnJjX2NhbGNfeCh1MTYgcywgdTMyIFIsIHUzMiBwKTsKK2V4dGVybiB1MzIgIHRmcmNfY2FsY194X3JldmVyc2VfbG9va3VwKHUzMiBmdmFsdWUpOwogCitleHRlcm4gaW50ICB0ZnJjX3R4X3BhY2tldF9oaXN0b3J5X2luaXQodm9pZCk7CitleHRlcm4gdm9pZCB0ZnJjX3R4X3BhY2tldF9oaXN0b3J5X2V4aXQodm9pZCk7CitleHRlcm4gaW50ICB0ZnJjX3J4X3BhY2tldF9oaXN0b3J5X2luaXQodm9pZCk7CitleHRlcm4gdm9pZCB0ZnJjX3J4X3BhY2tldF9oaXN0b3J5X2V4aXQodm9pZCk7CisKK2V4dGVybiBpbnQgIHRmcmNfbGlfaW5pdCh2b2lkKTsKK2V4dGVybiB2b2lkIHRmcmNfbGlfZXhpdCh2b2lkKTsKICNlbmRpZiAvKiBfVEZSQ19IXyAqLwpkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmNfZXF1YXRpb24uYyBiL25ldC9kY2NwL2NjaWRzL2xpYi90ZnJjX2VxdWF0aW9uLmMKaW5kZXggZTRlNjRiNy4uMmYyMGEyOSAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvY2NpZHMvbGliL3RmcmNfZXF1YXRpb24uYworKysgYi9uZXQvZGNjcC9jY2lkcy9saWIvdGZyY19lcXVhdGlvbi5jCkBAIC02NjEsNyArNjYxLDcgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwodGZyY19jYWxjX3gpOwogCi0vKgorLyoqCiAgKiAgdGZyY19jYWxjX3hfcmV2ZXJzZV9sb29rdXAgIC0gIHRyeSB0byBmaW5kIHAgZ2l2ZW4gZihwKQogICoKICAqICBAZnZhbHVlOiBmdW5jdGlvbiB2YWx1ZSB0byBtYXRjaCwgc2NhbGVkIGJ5IDEwMDAwMDAKQEAgLTY3NiwxMSArNjc2LDExIEBACiAKIAkvKiBFcnJvciBjYXNlcy4gKi8KIAlpZiAoZnZhbHVlIDwgdGZyY19jYWxjX3hfbG9va3VwWzBdWzFdKSB7Ci0JCURDQ1BfV0FSTigiZnZhbHVlICVkIHNtYWxsZXIgdGhhbiByZXNvbHV0aW9uXG4iLCBmdmFsdWUpOwotCQlyZXR1cm4gdGZyY19jYWxjX3hfbG9va3VwWzBdWzFdOworCQlEQ0NQX1dBUk4oImZ2YWx1ZSAldSBzbWFsbGVyIHRoYW4gcmVzb2x1dGlvblxuIiwgZnZhbHVlKTsKKwkJcmV0dXJuIFRGUkNfU01BTExFU1RfUDsKIAl9CiAJaWYgKGZ2YWx1ZSA+IHRmcmNfY2FsY194X2xvb2t1cFtURlJDX0NBTENfWF9BUlJTSVpFIC0gMV1bMF0pIHsKLQkJRENDUF9XQVJOKCJmdmFsdWUgJWQgZXhjZWVkcyBib3VuZHMhXG4iLCBmdmFsdWUpOworCQlEQ0NQX1dBUk4oImZ2YWx1ZSAldSBleGNlZWRzIGJvdW5kcyFcbiIsIGZ2YWx1ZSk7CiAJCXJldHVybiAxMDAwMDAwOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2RjY3AvaXB2NC5jIGIvbmV0L2RjY3AvaXB2NC5jCmluZGV4IGIzNDhkZDcuLjM3ZDI3YmMgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjQuYworKysgYi9uZXQvZGNjcC9pcHY0LmMKQEAgLTU4OSw3ICs1ODksNyBAQAogCWlmIChza19hY2NlcHRxX2lzX2Z1bGwoc2spICYmIGluZXRfY3NrX3JlcXNrX3F1ZXVlX3lvdW5nKHNrKSA+IDEpCiAJCWdvdG8gZHJvcDsKIAotCXJlcSA9IHJlcXNrX2FsbG9jKCZkY2NwX3JlcXVlc3Rfc29ja19vcHMpOworCXJlcSA9IGluZXRfcmVxc2tfYWxsb2MoJmRjY3BfcmVxdWVzdF9zb2NrX29wcyk7CiAJaWYgKHJlcSA9PSBOVUxMKQogCQlnb3RvIGRyb3A7CiAKQEAgLTYwNSw3ICs2MDUsNiBAQAogCWlyZXEgPSBpbmV0X3JzayhyZXEpOwogCWlyZXEtPmxvY19hZGRyID0gaXBfaGRyKHNrYiktPmRhZGRyOwogCWlyZXEtPnJtdF9hZGRyID0gaXBfaGRyKHNrYiktPnNhZGRyOwotCWlyZXEtPm9wdAk9IE5VTEw7CiAKIAkvKgogCSAqIFN0ZXAgMzogUHJvY2VzcyBMSVNURU4gc3RhdGUKQEAgLTczOSw4ICs3MzgsOCBAQAogCSAqIElmIFAudHlwZSBpcyBub3QgRGF0YSwgQWNrLCBvciBEYXRhQWNrIGFuZCBQLlggPT0gMCAodGhlIHBhY2tldAogCSAqIGhhcyBzaG9ydCBzZXF1ZW5jZSBudW1iZXJzKSwgZHJvcCBwYWNrZXQgYW5kIHJldHVybgogCSAqLwotCWlmIChkaC0+ZGNjcGhfdHlwZSA+PSBEQ0NQX1BLVF9EQVRBICAgICYmCi0JICAgIGRoLT5kY2NwaF90eXBlIDw9IERDQ1BfUEtUX0RBVEFBQ0sgJiYgZGgtPmRjY3BoX3ggPT0gMCkgIHsKKwlpZiAoKGRoLT5kY2NwaF90eXBlIDwgRENDUF9QS1RfREFUQSAgICB8fAorCSAgICBkaC0+ZGNjcGhfdHlwZSA+IERDQ1BfUEtUX0RBVEFBQ0spICYmIGRoLT5kY2NwaF94ID09IDApICB7CiAJCURDQ1BfV0FSTigiUC50eXBlICglcykgbm90IERhdGEgfHwgW0RhdGFdQWNrLCB3aGlsZSBQLlggPT0gMFxuIiwKIAkJCSAgZGNjcF9wYWNrZXRfbmFtZShkaC0+ZGNjcGhfdHlwZSkpOwogCQlyZXR1cm4gMTsKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2lwdjYuYyBiL25ldC9kY2NwL2lwdjYuYwppbmRleCA5YjExMjliLi5mN2ZlMmE1IDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pcHY2LmMKKysrIGIvbmV0L2RjY3AvaXB2Ni5jCkBAIC00MjEsNyArNDIxLDYgQEAKIAlpcmVxNiA9IGluZXQ2X3JzayhyZXEpOwogCWlwdjZfYWRkcl9jb3B5KCZpcmVxNi0+cm10X2FkZHIsICZpcHY2X2hkcihza2IpLT5zYWRkcik7CiAJaXB2Nl9hZGRyX2NvcHkoJmlyZXE2LT5sb2NfYWRkciwgJmlwdjZfaGRyKHNrYiktPmRhZGRyKTsKLQlpcmVxNi0+cGt0b3B0cwk9IE5VTEw7CiAKIAlpZiAoaXB2Nl9vcHRfYWNjZXB0ZWQoc2ssIHNrYikgfHwKIAkgICAgbnAtPnJ4b3B0LmJpdHMucnhpbmZvIHx8IG5wLT5yeG9wdC5iaXRzLnJ4b2luZm8gfHwKZGlmZiAtLWdpdCBhL25ldC9kY2NwL21pbmlzb2Nrcy5jIGIvbmV0L2RjY3AvbWluaXNvY2tzLmMKaW5kZXggMzNhZDQ4My4uNjZkY2E1YiAxMDA2NDQKLS0tIGEvbmV0L2RjY3AvbWluaXNvY2tzLmMKKysrIGIvbmV0L2RjY3AvbWluaXNvY2tzLmMKQEAgLTE2NSwxMiArMTY1LDEyIEBACiAJCS8qIFNlZSBkY2NwX3Y0X2Nvbm5fcmVxdWVzdCAqLwogCQluZXdkbXNrLT5kY2NwbXNfc2VxdWVuY2Vfd2luZG93ID0gcmVxLT5yY3Zfd25kOwogCi0JCW5ld2RwLT5kY2Nwc19nYXIgPSBuZXdkcC0+ZGNjcHNfaXNyID0gZHJlcS0+ZHJlcV9pc3I7Ci0JCWRjY3BfdXBkYXRlX2dzcihuZXdzaywgZHJlcS0+ZHJlcV9pc3IpOwotCi0JCW5ld2RwLT5kY2Nwc19pc3MgPSBkcmVxLT5kcmVxX2lzczsKKwkJbmV3ZHAtPmRjY3BzX2dhciA9IG5ld2RwLT5kY2Nwc19pc3MgPSBkcmVxLT5kcmVxX2lzczsKIAkJZGNjcF91cGRhdGVfZ3NzKG5ld3NrLCBkcmVxLT5kcmVxX2lzcyk7CiAKKwkJbmV3ZHAtPmRjY3BzX2lzciA9IGRyZXEtPmRyZXFfaXNyOworCQlkY2NwX3VwZGF0ZV9nc3IobmV3c2ssIGRyZXEtPmRyZXFfaXNyKTsKKwogCQkvKgogCQkgKiBTV0wgYW5kIEFXTCBhcmUgaW5pdGlhbGx5IGFkanVzdGVkIHNvIHRoYXQgdGhleSBhcmUgbm90IGxlc3MgdGhhbgogCQkgKiB0aGUgaW5pdGlhbCBTZXF1ZW5jZSBOdW1iZXJzIHJlY2VpdmVkIGFuZCBzZW50LCByZXNwZWN0aXZlbHk6CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9vcHRpb25zLmMgYi9uZXQvZGNjcC9vcHRpb25zLmMKaW5kZXggZDJhODRhMi4uNDNiYzI0ZSAxMDA2NDQKLS0tIGEvbmV0L2RjY3Avb3B0aW9ucy5jCisrKyBiL25ldC9kY2NwL29wdGlvbnMuYwpAQCAtMTA3LDkgKzEwNywxMSBAQAogCQkgKgogCQkgKiBDQ0lELXNwZWNpZmljIG9wdGlvbnMgYXJlIGlnbm9yZWQgZHVyaW5nIGNvbm5lY3Rpb24gc2V0dXAsIGFzCiAJCSAqIG5lZ290aWF0aW9uIG1heSBzdGlsbCBiZSBpbiBwcm9ncmVzcyAoc2VlIFJGQyA0MzQwLCAxMC4zKS4KKwkJICogVGhlIHNhbWUgYXBwbGllcyB0byBBY2sgVmVjdG9ycywgYXMgdGhlc2UgZGVwZW5kIG9uIHRoZSBDQ0lELgogCQkgKgogCQkgKi8KLQkJaWYgKGRyZXEgIT0gTlVMTCAmJiBvcHQgPj0gMTI4KQorCQlpZiAoZHJlcSAhPSBOVUxMICYmIChvcHQgPj0gMTI4IHx8CisJCSAgICBvcHQgPT0gRENDUE9fQUNLX1ZFQ1RPUl8wIHx8IG9wdCA9PSBEQ0NQT19BQ0tfVkVDVE9SXzEpKQogCQkJZ290byBpZ25vcmVfb3B0aW9uOwogCiAJCXN3aXRjaCAob3B0KSB7CmRpZmYgLS1naXQgYS9uZXQvZGNjcC9vdXRwdXQuYyBiL25ldC9kY2NwL291dHB1dC5jCmluZGV4IDFmOGE5YjYuLmZlMjAwNjggMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL291dHB1dC5jCisrKyBiL25ldC9kY2NwL291dHB1dC5jCkBAIC01MDgsNiArNTA4LDcgQEAKIAogRVhQT1JUX1NZTUJPTF9HUEwoZGNjcF9zZW5kX2Fjayk7CiAKKyNpZiAwCiAvKiBGSVhNRTogSXMgdGhpcyBzdGlsbCBuZWNlc3NhcnkgKDExLjMpIC0gY3VycmVudGx5IG5vd2hlcmUgdXNlZCBieSBEQ0NQLiAqLwogdm9pZCBkY2NwX3NlbmRfZGVsYXllZF9hY2soc3RydWN0IHNvY2sgKnNrKQogewpAQCAtNTM4LDYgKzUzOSw3IEBACiAJaWNzay0+aWNza19hY2sudGltZW91dCA9IHRpbWVvdXQ7CiAJc2tfcmVzZXRfdGltZXIoc2ssICZpY3NrLT5pY3NrX2RlbGFja190aW1lciwgdGltZW91dCk7CiB9CisjZW5kaWYKIAogdm9pZCBkY2NwX3NlbmRfc3luYyhzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHU2NCBhY2tubywKIAkJICAgIGNvbnN0IGVudW0gZGNjcF9wa3RfdHlwZSBwa3RfdHlwZSkKZGlmZiAtLWdpdCBhL25ldC9kY2NwL3Byb2JlLmMgYi9uZXQvZGNjcC9wcm9iZS5jCmluZGV4IDBiY2RjOTIuLjgxMzY4YTcgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL3Byb2JlLmMKKysrIGIvbmV0L2RjY3AvcHJvYmUuYwpAQCAtNDIsNyArNDIsNyBAQAogCiBzdGF0aWMgY29uc3QgY2hhciBwcm9jbmFtZVtdID0gImRjY3Bwcm9iZSI7CiAKLXN0cnVjdCB7CitzdGF0aWMgc3RydWN0IHsKIAlzdHJ1Y3Qga2ZpZm8JICAqZmlmbzsKIAlzcGlubG9ja190CSAgbG9jazsKIAl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZGV2aW5ldC5jIGIvbmV0L2lwdjQvZGV2aW5ldC5jCmluZGV4IDY4NDhlNDcuLjc5YTdlZjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2RldmluZXQuYworKysgYi9uZXQvaXB2NC9kZXZpbmV0LmMKQEAgLTkwLDcgKzkwLDYgQEAKIAlbSUZBX0xPQ0FMXSAgICAgCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbSUZBX0FERFJFU1NdICAgCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbSUZBX0JST0FEQ0FTVF0gCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKLQlbSUZBX0FOWUNBU1RdICAgCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbSUZBX0xBQkVMXSAgICAgCT0geyAudHlwZSA9IE5MQV9TVFJJTkcsIC5sZW4gPSBJRk5BTVNJWiAtIDEgfSwKIH07CiAKQEAgLTUzNiw5ICs1MzUsNiBAQAogCWlmICh0YltJRkFfQlJPQURDQVNUXSkKIAkJaWZhLT5pZmFfYnJvYWRjYXN0ID0gbmxhX2dldF9iZTMyKHRiW0lGQV9CUk9BRENBU1RdKTsKIAotCWlmICh0YltJRkFfQU5ZQ0FTVF0pCi0JCWlmYS0+aWZhX2FueWNhc3QgPSBubGFfZ2V0X2JlMzIodGJbSUZBX0FOWUNBU1RdKTsKLQogCWlmICh0YltJRkFfTEFCRUxdKQogCQlubGFfc3RybGNweShpZmEtPmlmYV9sYWJlbCwgdGJbSUZBX0xBQkVMXSwgSUZOQU1TSVopOwogCWVsc2UKQEAgLTc0NSw3ICs3NDEsNiBAQAogCQkJCWJyZWFrOwogCQkJaW5ldF9kZWxfaWZhKGluX2RldiwgaWZhcCwgMCk7CiAJCQlpZmEtPmlmYV9icm9hZGNhc3QgPSAwOwotCQkJaWZhLT5pZmFfYW55Y2FzdCA9IDA7CiAJCQlpZmEtPmlmYV9zY29wZSA9IDA7CiAJCX0KIApAQCAtMTExMyw3ICsxMTA4LDYgQEAKIAkgICAgICAgKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJRkFfQUREUkVTUyAqLwogCSAgICAgICArIG5sYV90b3RhbF9zaXplKDQpIC8qIElGQV9MT0NBTCAqLwogCSAgICAgICArIG5sYV90b3RhbF9zaXplKDQpIC8qIElGQV9CUk9BRENBU1QgKi8KLQkgICAgICAgKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJRkFfQU5ZQ0FTVCAqLwogCSAgICAgICArIG5sYV90b3RhbF9zaXplKElGTkFNU0laKTsgLyogSUZBX0xBQkVMICovCiB9CiAKQEAgLTExNDMsOSArMTEzNyw2IEBACiAJaWYgKGlmYS0+aWZhX2Jyb2FkY2FzdCkKIAkJTkxBX1BVVF9CRTMyKHNrYiwgSUZBX0JST0FEQ0FTVCwgaWZhLT5pZmFfYnJvYWRjYXN0KTsKIAotCWlmIChpZmEtPmlmYV9hbnljYXN0KQotCQlOTEFfUFVUX0JFMzIoc2tiLCBJRkFfQU5ZQ0FTVCwgaWZhLT5pZmFfYW55Y2FzdCk7Ci0KIAlpZiAoaWZhLT5pZmFfbGFiZWxbMF0pCiAJCU5MQV9QVVRfU1RSSU5HKHNrYiwgSUZBX0xBQkVMLCBpZmEtPmlmYV9sYWJlbCk7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9mcm9udGVuZC5jIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKaW5kZXggMGYxNTU3YS4uMGIyYWM2YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKKysrIGIvbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMKQEAgLTUwNiw3ICs1MDYsNiBAQAogCVtSVEFfUFJFRlNSQ10JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbUlRBX01FVFJJQ1NdCQk9IHsgLnR5cGUgPSBOTEFfTkVTVEVEIH0sCiAJW1JUQV9NVUxUSVBBVEhdCQk9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgcnRuZXh0aG9wKSB9LAotCVtSVEFfUFJPVE9JTkZPXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtSVEFfRkxPV10JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwKIH07CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYyBiL25ldC9pcHY0L2ZpYl9zZW1hbnRpY3MuYwppbmRleCAzYjgzYzM0Li4wZDRkNzI4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKKysrIGIvbmV0L2lwdjQvZmliX3NlbWFudGljcy5jCkBAIC05NjAsNyArOTYwLDEwIEBACiAJcnRtLT5ydG1fZHN0X2xlbiA9IGRzdF9sZW47CiAJcnRtLT5ydG1fc3JjX2xlbiA9IDA7CiAJcnRtLT5ydG1fdG9zID0gdG9zOwotCXJ0bS0+cnRtX3RhYmxlID0gdGJfaWQ7CisJaWYgKHRiX2lkIDwgMjU2KQorCQlydG0tPnJ0bV90YWJsZSA9IHRiX2lkOworCWVsc2UKKwkJcnRtLT5ydG1fdGFibGUgPSBSVF9UQUJMRV9DT01QQVQ7CiAJTkxBX1BVVF9VMzIoc2tiLCBSVEFfVEFCTEUsIHRiX2lkKTsKIAlydG0tPnJ0bV90eXBlID0gdHlwZTsKIAlydG0tPnJ0bV9mbGFncyA9IGZpLT5maWJfZmxhZ3M7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfdHJpZS5jIGIvbmV0L2lwdjQvZmliX3RyaWUuYwppbmRleCA0YjAyZDE0Li5lMTYwMGFkIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9maWJfdHJpZS5jCisrKyBiL25ldC9pcHY0L2ZpYl90cmllLmMKQEAgLTEzNTksMTcgKzEzNTksMTcgQEAKIAkJCXQtPnN0YXRzLnNlbWFudGljX21hdGNoX21pc3MrKzsKICNlbmRpZgogCQlpZiAoZXJyIDw9IDApCi0JCQlyZXR1cm4gcGxlbjsKKwkJCXJldHVybiBlcnI7CiAJfQogCi0JcmV0dXJuIC0xOworCXJldHVybiAxOwogfQogCiBzdGF0aWMgaW50IGZuX3RyaWVfbG9va3VwKHN0cnVjdCBmaWJfdGFibGUgKnRiLCBjb25zdCBzdHJ1Y3QgZmxvd2kgKmZscCwKIAkJCSAgc3RydWN0IGZpYl9yZXN1bHQgKnJlcykKIHsKIAlzdHJ1Y3QgdHJpZSAqdCA9IChzdHJ1Y3QgdHJpZSAqKSB0Yi0+dGJfZGF0YTsKLQlpbnQgcGxlbiwgcmV0ID0gMDsKKwlpbnQgcmV0OwogCXN0cnVjdCBub2RlICpuOwogCXN0cnVjdCB0bm9kZSAqcG47CiAJaW50IHBvcywgYml0czsKQEAgLTEzOTMsMTAgKzEzOTMsNyBAQAogCiAJLyogSnVzdCBhIGxlYWY/ICovCiAJaWYgKElTX0xFQUYobikpIHsKLQkJcGxlbiA9IGNoZWNrX2xlYWYodCwgKHN0cnVjdCBsZWFmICopbiwga2V5LCBmbHAsIHJlcyk7Ci0JCWlmIChwbGVuIDwgMCkKLQkJCWdvdG8gZmFpbGVkOwotCQlyZXQgPSAwOworCQlyZXQgPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOwogCQlnb3RvIGZvdW5kOwogCX0KIApAQCAtMTQyMSwxMSArMTQxOCw5IEBACiAJCX0KIAogCQlpZiAoSVNfTEVBRihuKSkgewotCQkJcGxlbiA9IGNoZWNrX2xlYWYodCwgKHN0cnVjdCBsZWFmICopbiwga2V5LCBmbHAsIHJlcyk7Ci0JCQlpZiAocGxlbiA8IDApCisJCQlyZXQgPSBjaGVja19sZWFmKHQsIChzdHJ1Y3QgbGVhZiAqKW4sIGtleSwgZmxwLCByZXMpOworCQkJaWYgKHJldCA+IDApCiAJCQkJZ290byBiYWNrdHJhY2U7Ci0KLQkJCXJldCA9IDA7CiAJCQlnb3RvIGZvdW5kOwogCQl9CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDgyOGVhMjEuLmVjODM0NDggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtNDE5LDcgKzQxOSw4IEBACiAJc3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrID0gaW5ldF9jc2socGFyZW50KTsKIAlzdHJ1Y3QgcmVxdWVzdF9zb2NrX3F1ZXVlICpxdWV1ZSA9ICZpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZTsKIAlzdHJ1Y3QgbGlzdGVuX3NvY2sgKmxvcHQgPSBxdWV1ZS0+bGlzdGVuX29wdDsKLQlpbnQgdGhyZXNoID0gaWNzay0+aWNza19zeW5fcmV0cmllcyA/IDogc3lzY3RsX3RjcF9zeW5hY2tfcmV0cmllczsKKwlpbnQgbWF4X3JldHJpZXMgPSBpY3NrLT5pY3NrX3N5bl9yZXRyaWVzID8gOiBzeXNjdGxfdGNwX3N5bmFja19yZXRyaWVzOworCWludCB0aHJlc2ggPSBtYXhfcmV0cmllczsKIAl1bnNpZ25lZCBsb25nIG5vdyA9IGppZmZpZXM7CiAJc3RydWN0IHJlcXVlc3Rfc29jayAqKnJlcXAsICpyZXE7CiAJaW50IGksIGJ1ZGdldDsKQEAgLTQ1NSw2ICs0NTYsOSBAQAogCQl9CiAJfQogCisJaWYgKHF1ZXVlLT5yc2txX2RlZmVyX2FjY2VwdCkKKwkJbWF4X3JldHJpZXMgPSBxdWV1ZS0+cnNrcV9kZWZlcl9hY2NlcHQ7CisKIAlidWRnZXQgPSAyICogKGxvcHQtPm5yX3RhYmxlX2VudHJpZXMgLyAodGltZW91dCAvIGludGVydmFsKSk7CiAJaSA9IGxvcHQtPmNsb2NrX2hhbmQ7CiAKQEAgLTQ2Miw4ICs0NjYsOSBAQAogCQlyZXFwPSZsb3B0LT5zeW5fdGFibGVbaV07CiAJCXdoaWxlICgocmVxID0gKnJlcXApICE9IE5VTEwpIHsKIAkJCWlmICh0aW1lX2FmdGVyX2VxKG5vdywgcmVxLT5leHBpcmVzKSkgewotCQkJCWlmIChyZXEtPnJldHJhbnMgPCB0aHJlc2ggJiYKLQkJCQkgICAgIXJlcS0+cnNrX29wcy0+cnR4X3N5bl9hY2socGFyZW50LCByZXEpKSB7CisJCQkJaWYgKChyZXEtPnJldHJhbnMgPCB0aHJlc2ggfHwKKwkJCQkgICAgIChpbmV0X3JzayhyZXEpLT5hY2tlZCAmJiByZXEtPnJldHJhbnMgPCBtYXhfcmV0cmllcykpCisJCQkJICAgICYmICFyZXEtPnJza19vcHMtPnJ0eF9zeW5fYWNrKHBhcmVudCwgcmVxKSkgewogCQkJCQl1bnNpZ25lZCBsb25nIHRpbWVvOwogCiAJCQkJCWlmIChyZXEtPnJldHJhbnMrKyA9PSAwKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jIGIvbmV0L2lwdjQvaW5ldF9mcmFnbWVudC5jCmluZGV4IDRlZDQyOWIuLjA1NDZhMGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pbmV0X2ZyYWdtZW50LmMKQEAgLTE5MiwxNCArMTkyLDIxIEBACiAKIHN0YXRpYyBzdHJ1Y3QgaW5ldF9mcmFnX3F1ZXVlICppbmV0X2ZyYWdfaW50ZXJuKHN0cnVjdCBuZXRuc19mcmFncyAqbmYsCiAJCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnFwX2luLCBzdHJ1Y3QgaW5ldF9mcmFncyAqZiwKLQkJdW5zaWduZWQgaW50IGhhc2gsIHZvaWQgKmFyZykKKwkJdm9pZCAqYXJnKQogewogCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnFwOwogI2lmZGVmIENPTkZJR19TTVAKIAlzdHJ1Y3QgaGxpc3Rfbm9kZSAqbjsKICNlbmRpZgorCXVuc2lnbmVkIGludCBoYXNoOwogCiAJd3JpdGVfbG9jaygmZi0+bG9jayk7CisJLyoKKwkgKiBXaGlsZSB3ZSBzdGF5ZWQgdy9vIHRoZSBsb2NrIG90aGVyIENQVSBjb3VsZCB1cGRhdGUKKwkgKiB0aGUgcm5kIHNlZWQsIHNvIHdlIG5lZWQgdG8gcmUtY2FsY3VsYXRlIHRoZSBoYXNoCisJICogY2hhaW4uIEZvcnR1bmF0ZWxseSB0aGUgcXBfaW4gY2FuIGJlIHVzZWQgdG8gZ2V0IG9uZS4KKwkgKi8KKwloYXNoID0gZi0+aGFzaGZuKHFwX2luKTsKICNpZmRlZiBDT05GSUdfU01QCiAJLyogV2l0aCBTTVAgcmFjZSB3ZSBoYXZlIHRvIHJlY2hlY2sgaGFzaCB0YWJsZSwgYmVjYXVzZQogCSAqIHN1Y2ggZW50cnkgY291bGQgYmUgY3JlYXRlZCBvbiBvdGhlciBjcHUsIHdoaWxlIHdlCkBAIC0yNDcsNyArMjU0LDcgQEAKIH0KIAogc3RhdGljIHN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKmluZXRfZnJhZ19jcmVhdGUoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKLQkJc3RydWN0IGluZXRfZnJhZ3MgKmYsIHZvaWQgKmFyZywgdW5zaWduZWQgaW50IGhhc2gpCisJCXN0cnVjdCBpbmV0X2ZyYWdzICpmLCB2b2lkICphcmcpCiB7CiAJc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqcTsKIApAQCAtMjU1LDcgKzI2Miw3IEBACiAJaWYgKHEgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZXR1cm4gaW5ldF9mcmFnX2ludGVybihuZiwgcSwgZiwgaGFzaCwgYXJnKTsKKwlyZXR1cm4gaW5ldF9mcmFnX2ludGVybihuZiwgcSwgZiwgYXJnKTsKIH0KIAogc3RydWN0IGluZXRfZnJhZ19xdWV1ZSAqaW5ldF9mcmFnX2ZpbmQoc3RydWN0IG5ldG5zX2ZyYWdzICpuZiwKQEAgLTI2NCw3ICsyNzEsNiBAQAogCXN0cnVjdCBpbmV0X2ZyYWdfcXVldWUgKnE7CiAJc3RydWN0IGhsaXN0X25vZGUgKm47CiAKLQlyZWFkX2xvY2soJmYtPmxvY2spOwogCWhsaXN0X2Zvcl9lYWNoX2VudHJ5KHEsIG4sICZmLT5oYXNoW2hhc2hdLCBsaXN0KSB7CiAJCWlmIChxLT5uZXQgPT0gbmYgJiYgZi0+bWF0Y2gocSwga2V5KSkgewogCQkJYXRvbWljX2luYygmcS0+cmVmY250KTsKQEAgLTI3NCw2ICsyODAsNiBAQAogCX0KIAlyZWFkX3VubG9jaygmZi0+bG9jayk7CiAKLQlyZXR1cm4gaW5ldF9mcmFnX2NyZWF0ZShuZiwgZiwga2V5LCBoYXNoKTsKKwlyZXR1cm4gaW5ldF9mcmFnX2NyZWF0ZShuZiwgZiwga2V5KTsKIH0KIEVYUE9SVF9TWU1CT0woaW5ldF9mcmFnX2ZpbmQpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9scm8uYyBiL25ldC9pcHY0L2luZXRfbHJvLmMKaW5kZXggNGE0ZDQ5Zi4uY2ZkMDM0YSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaW5ldF9scm8uYworKysgYi9uZXQvaXB2NC9pbmV0X2xyby5jCkBAIC0zODMsOCArMzgzLDcgQEAKIG91dDI6IC8qIHNlbmQgYWdncmVnYXRlZCBTS0JzIHRvIHN0YWNrICovCiAJbHJvX2ZsdXNoKGxyb19tZ3IsIGxyb19kZXNjKTsKIAotb3V0OiAgLyogT3JpZ2luYWwgU0tCIGhhcyB0byBiZSBwb3N0ZWQgdG8gc3RhY2sgKi8KLQlza2ItPmlwX3N1bW1lZCA9IGxyb19tZ3ItPmlwX3N1bW1lZDsKK291dDoKIAlyZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYyBiL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMKaW5kZXggY2Q2Y2U2YS4uMzcyMjFmNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYworKysgYi9uZXQvaXB2NC9pcF9mcmFnbWVudC5jCkBAIC0yMjksNiArMjI5LDggQEAKIAogCWFyZy5pcGggPSBpcGg7CiAJYXJnLnVzZXIgPSB1c2VyOworCisJcmVhZF9sb2NrKCZpcDRfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwcWhhc2hmbihpcGgtPmlkLCBpcGgtPnNhZGRyLCBpcGgtPmRhZGRyLCBpcGgtPnByb3RvY29sKTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmV0LT5pcHY0LmZyYWdzLCAmaXA0X2ZyYWdzLCAmYXJnLCBoYXNoKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfY29yZS5jIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKaW5kZXggMDQ1Nzg1OS4uZDJhODg3ZiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMKQEAgLTU1Niw3ICs1NTYsNiBAQAogCiAJc3Bpbl9sb2NrX2JoKCZuZl9uYXRfbG9jayk7CiAJaGxpc3RfZGVsX3JjdSgmbmF0LT5ieXNvdXJjZSk7Ci0JbmF0LT5jdCA9IE5VTEw7CiAJc3Bpbl91bmxvY2tfYmgoJm5mX25hdF9sb2NrKTsKIH0KIApAQCAtNTcwLDggKzU2OSw4IEBACiAJCXJldHVybjsKIAogCXNwaW5fbG9ja19iaCgmbmZfbmF0X2xvY2spOwotCWhsaXN0X3JlcGxhY2VfcmN1KCZvbGRfbmF0LT5ieXNvdXJjZSwgJm5ld19uYXQtPmJ5c291cmNlKTsKIAluZXdfbmF0LT5jdCA9IGN0OworCWhsaXN0X3JlcGxhY2VfcmN1KCZvbGRfbmF0LT5ieXNvdXJjZSwgJm5ld19uYXQtPmJ5c291cmNlKTsKIAlzcGluX3VubG9ja19iaCgmbmZfbmF0X2xvY2spOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXRmaWx0ZXIvbmZfbmF0X3NubXBfYmFzaWMuYyBiL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCmluZGV4IDVkYWVmYWQuLmZmZWFmZmMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9uZl9uYXRfc25tcF9iYXNpYy5jCkBAIC0yMzIsNiArMjMyLDExIEBACiAJCQl9CiAJCX0KIAl9CisKKwkvKiBkb24ndCB0cnVzdCBsZW4gYmlnZ2VyIHRoYW4gY3R4IGJ1ZmZlciAqLworCWlmICgqbGVuID4gY3R4LT5lbmQgLSBjdHgtPnBvaW50ZXIpCisJCXJldHVybiAwOworCiAJcmV0dXJuIDE7CiB9CiAKQEAgLTI1MCw2ICsyNTUsMTAgQEAKIAlpZiAoIWFzbjFfbGVuZ3RoX2RlY29kZShjdHgsICZkZWYsICZsZW4pKQogCQlyZXR1cm4gMDsKIAorCS8qIHByaW1pdGl2ZSBzaGFsbCBiZSBkZWZpbml0ZSwgaW5kZWZpbml0ZSBzaGFsbCBiZSBjb25zdHJ1Y3RlZCAqLworCWlmICgqY29uID09IEFTTjFfUFJJICYmICFkZWYpCisJCXJldHVybiAwOworCiAJaWYgKGRlZikKIAkJKmVvYyA9IGN0eC0+cG9pbnRlciArIGxlbjsKIAllbHNlCkBAIC00MzAsMTAgKzQzOSwxNSBAQAogCQkJCSAgICAgdW5zaWduZWQgaW50ICpsZW4pCiB7CiAJdW5zaWduZWQgbG9uZyBzdWJpZDsKLQl1bnNpZ25lZCBpbnQgIHNpemU7CiAJdW5zaWduZWQgbG9uZyAqb3B0cjsKKwlzaXplX3Qgc2l6ZTsKIAogCXNpemUgPSBlb2MgLSBjdHgtPnBvaW50ZXIgKyAxOworCisJLyogZmlyc3Qgc3ViaWQgYWN0dWFsbHkgZW5jb2RlcyBmaXJzdCB0d28gc3ViaWRzICovCisJaWYgKHNpemUgPCAyIHx8IHNpemUgPiBVTE9OR19NQVgvc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKQorCQlyZXR1cm4gMDsKKwogCSpvaWQgPSBrbWFsbG9jKHNpemUgKiBzaXplb2YodW5zaWduZWQgbG9uZyksIEdGUF9BVE9NSUMpOwogCWlmICgqb2lkID09IE5VTEwpIHsKIAkJaWYgKG5ldF9yYXRlbGltaXQoKSkKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Jhdy5jIGIvbmV0L2lwdjQvcmF3LmMKaW5kZXggZmVhZDA0OS4uMzdhMWVjZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcmF3LmMKKysrIGIvbmV0L2lwdjQvcmF3LmMKQEAgLTYwOCw2ICs2MDgsMTQgQEAKIAlza19jb21tb25fcmVsZWFzZShzayk7CiB9CiAKK3N0YXRpYyBpbnQgcmF3X2Rlc3Ryb3koc3RydWN0IHNvY2sgKnNrKQoreworCWxvY2tfc29jayhzayk7CisJaXBfZmx1c2hfcGVuZGluZ19mcmFtZXMoc2spOworCXJlbGVhc2Vfc29jayhzayk7CisJcmV0dXJuIDA7Cit9CisKIC8qIFRoaXMgZ2V0cyByaWQgb2YgYWxsIHRoZSBuYXN0aWVzIGluIGFmX2luZXQuIC1EYXZlTSAqLwogc3RhdGljIGludCByYXdfYmluZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrYWRkciAqdWFkZHIsIGludCBhZGRyX2xlbikKIHsKQEAgLTgyMCw2ICs4MjgsNyBAQAogCS5uYW1lCQkgICA9ICJSQVciLAogCS5vd25lcgkJICAgPSBUSElTX01PRFVMRSwKIAkuY2xvc2UJCSAgID0gcmF3X2Nsb3NlLAorCS5kZXN0cm95CSAgID0gcmF3X2Rlc3Ryb3ksCiAJLmNvbm5lY3QJICAgPSBpcDRfZGF0YWdyYW1fY29ubmVjdCwKIAkuZGlzY29ubmVjdAkgICA9IHVkcF9kaXNjb25uZWN0LAogCS5pb2N0bAkJICAgPSByYXdfaW9jdGwsCkBAIC05MjUsNyArOTM0LDcgQEAKIAkgICAgICBzcmNwICA9IGluZXQtPm51bTsKIAogCXNlcV9wcmludGYoc2VxLCAiJTRkOiAlMDhYOiUwNFggJTA4WDolMDRYIgotCQkiICUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlZCIsCisJCSIgJTAyWCAlMDhYOiUwOFggJTAyWDolMDhsWCAlMDhYICU1ZCAlOGQgJWx1ICVkICVwICVkXG4iLAogCQlpLCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwLCBzcC0+c2tfc3RhdGUsCiAJCWF0b21pY19yZWFkKCZzcC0+c2tfd21lbV9hbGxvYyksCiAJCWF0b21pY19yZWFkKCZzcC0+c2tfcm1lbV9hbGxvYyksCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yb3V0ZS5jIGIvbmV0L2lwdjQvcm91dGUuYwppbmRleCBkZjQxMDI2Li45NmJlMzM2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25ldC9pcHY0L3JvdXRlLmMKQEAgLTE3OTIsNyArMTc5Miw3IEBACiAJaWYgKGVycikKIAkJZmxhZ3MgfD0gUlRDRl9ESVJFQ1RTUkM7CiAKLQlpZiAob3V0X2RldiA9PSBpbl9kZXYgJiYgZXJyICYmICEoZmxhZ3MgJiBSVENGX01BU1EpICYmCisJaWYgKG91dF9kZXYgPT0gaW5fZGV2ICYmIGVyciAmJgogCSAgICAoSU5fREVWX1NIQVJFRF9NRURJQShvdXRfZGV2KSB8fAogCSAgICAgaW5ldF9hZGRyX29ubGluayhvdXRfZGV2LCBzYWRkciwgRklCX1JFU19HVygqcmVzKSkpKQogCQlmbGFncyB8PSBSVENGX0RPUkVESVJFQ1Q7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9zeW5jb29raWVzLmMgYi9uZXQvaXB2NC9zeW5jb29raWVzLmMKaW5kZXggNzNiYTk4OS4uZDE4MmEyYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvc3luY29va2llcy5jCisrKyBiL25ldC9pcHY0L3N5bmNvb2tpZXMuYwpAQCAtMjg1LDcgKzI4NSw3IEBACiAJCWNvb2tpZV9jaGVja190aW1lc3RhbXAoJnRjcF9vcHQpOwogCiAJcmV0ID0gTlVMTDsKLQlyZXEgPSByZXFza19hbGxvYygmdGNwX3JlcXVlc3Rfc29ja19vcHMpOyAvKiBmb3Igc2FmZXR5ICovCisJcmVxID0gaW5ldF9yZXFza19hbGxvYygmdGNwX3JlcXVlc3Rfc29ja19vcHMpOyAvKiBmb3Igc2FmZXR5ICovCiAJaWYgKCFyZXEpCiAJCWdvdG8gb3V0OwogCkBAIC0zMDEsNyArMzAxLDYgQEAKIAlpcmVxLT5ybXRfcG9ydAkJPSB0aC0+c291cmNlOwogCWlyZXEtPmxvY19hZGRyCQk9IGlwX2hkcihza2IpLT5kYWRkcjsKIAlpcmVxLT5ybXRfYWRkcgkJPSBpcF9oZHIoc2tiKS0+c2FkZHI7Ci0JaXJlcS0+b3B0CQk9IE5VTEw7CiAJaXJlcS0+c25kX3dzY2FsZQk9IHRjcF9vcHQuc25kX3dzY2FsZTsKIAlpcmVxLT5yY3Zfd3NjYWxlCT0gdGNwX29wdC5yY3Zfd3NjYWxlOwogCWlyZXEtPnNhY2tfb2sJCT0gdGNwX29wdC5zYWNrX29rOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3AuYwppbmRleCBmODg2NTMxLi4xZDcyM2RlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjU1LDExICsyNTUsMTQgQEAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2F0dGVybGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NwbGljZS5oPgogI2luY2x1ZGUgPGxpbnV4L25ldC5oPgogI2luY2x1ZGUgPGxpbnV4L3NvY2tldC5oPgogI2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgogI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+CisjaW5jbHVkZSA8bGludXgvc3dhcC5oPgogI2luY2x1ZGUgPGxpbnV4L2NhY2hlLmg+CiAjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5jbHVkZSA8bGludXgvY3J5cHRvLmg+CkBAIC0xMjA2LDcgKzEyMDksOCBAQAogCQlyZXR1cm4gLUVOT1RDT05OOwogCXdoaWxlICgoc2tiID0gdGNwX3JlY3Zfc2tiKHNrLCBzZXEsICZvZmZzZXQpKSAhPSBOVUxMKSB7CiAJCWlmIChvZmZzZXQgPCBza2ItPmxlbikgewotCQkJc2l6ZV90IHVzZWQsIGxlbjsKKwkJCWludCB1c2VkOworCQkJc2l6ZV90IGxlbjsKIAogCQkJbGVuID0gc2tiLT5sZW4gLSBvZmZzZXQ7CiAJCQkvKiBTdG9wIHJlYWRpbmcgaWYgd2UgaGl0IGEgcGF0Y2ggb2YgdXJnZW50IGRhdGEgKi8KQEAgLTEyMjcsNyArMTIzMSwxNCBAQAogCQkJCWNvcGllZCArPSB1c2VkOwogCQkJCW9mZnNldCArPSB1c2VkOwogCQkJfQotCQkJaWYgKG9mZnNldCAhPSBza2ItPmxlbikKKwkJCS8qCisJCQkgKiBJZiByZWN2X2FjdG9yIGRyb3BzIHRoZSBsb2NrIChlLmcuIFRDUCBzcGxpY2UKKwkJCSAqIHJlY2VpdmUpIHRoZSBza2IgcG9pbnRlciBtaWdodCBiZSBpbnZhbGlkIHdoZW4KKwkJCSAqIGdldHRpbmcgaGVyZTogdGNwX2NvbGxhcHNlIG1pZ2h0IGhhdmUgZGVsZXRlZCBpdAorCQkJICogd2hpbGUgYWdncmVnYXRpbmcgc2ticyBmcm9tIHRoZSBzb2NrZXQgcXVldWUuCisJCQkgKi8KKwkJCXNrYiA9IHRjcF9yZWN2X3NrYihzaywgc2VxLTEsICZvZmZzZXQpOworCQkJaWYgKCFza2IgfHwgKG9mZnNldCsxICE9IHNrYi0+bGVuKSkKIAkJCQlicmVhazsKIAkJfQogCQlpZiAodGNwX2hkcihza2IpLT5maW4pIHsKQEAgLTIxMDUsMTIgKzIxMTYsMTUgQEAKIAkJYnJlYWs7CiAKIAljYXNlIFRDUF9ERUZFUl9BQ0NFUFQ6Ci0JCWlmICh2YWwgPCAwKSB7Ci0JCQllcnIgPSAtRUlOVkFMOwotCQl9IGVsc2UgewotCQkJaWYgKHZhbCA+IE1BWF9UQ1BfQUNDRVBUX0RFRkVSUkVEKQotCQkJCXZhbCA9IE1BWF9UQ1BfQUNDRVBUX0RFRkVSUkVEOwotCQkJaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQgPSB2YWw7CisJCWljc2stPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ID0gMDsKKwkJaWYgKHZhbCA+IDApIHsKKwkJCS8qIFRyYW5zbGF0ZSB2YWx1ZSBpbiBzZWNvbmRzIHRvIG51bWJlciBvZgorCQkJICogcmV0cmFuc21pdHMgKi8KKwkJCXdoaWxlIChpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCA8IDMyICYmCisJCQkgICAgICAgdmFsID4gKChUQ1BfVElNRU9VVF9JTklUIC8gSFopIDw8CisJCQkJICAgICAgIGljc2stPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0KSkKKwkJCQlpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCsrOworCQkJaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQrKzsKIAkJfQogCQlicmVhazsKIApAQCAtMjI5Miw3ICsyMzA2LDggQEAKIAkJCXZhbCA9ICh2YWwgPyA6IHN5c2N0bF90Y3BfZmluX3RpbWVvdXQpIC8gSFo7CiAJCWJyZWFrOwogCWNhc2UgVENQX0RFRkVSX0FDQ0VQVDoKLQkJdmFsID0gaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQ7CisJCXZhbCA9ICFpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCA/IDAgOgorCQkJKChUQ1BfVElNRU9VVF9JTklUIC8gSFopIDw8IChpY3NrLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCAtIDEpKTsKIAkJYnJlYWs7CiAJY2FzZSBUQ1BfV0lORE9XX0NMQU1QOgogCQl2YWwgPSB0cC0+d2luZG93X2NsYW1wOwpAQCAtMjYwOSw3ICsyNjI0LDcgQEAKIHZvaWQgX19pbml0IHRjcF9pbml0KHZvaWQpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKnNrYiA9IE5VTEw7Ci0JdW5zaWduZWQgbG9uZyBsaW1pdDsKKwl1bnNpZ25lZCBsb25nIG5yX3BhZ2VzLCBsaW1pdDsKIAlpbnQgb3JkZXIsIGksIG1heF9zaGFyZTsKIAogCUJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IHRjcF9za2JfY2IpID4gc2l6ZW9mKHNrYi0+Y2IpKTsKQEAgLTI2NzgsOCArMjY5Myw5IEBACiAJICogaXMgdXAgdG8gMS8yIGF0IDI1NiBNQiwgZGVjcmVhc2luZyB0b3dhcmQgemVybyB3aXRoIHRoZSBhbW91bnQgb2YKIAkgKiBtZW1vcnksIHdpdGggYSBmbG9vciBvZiAxMjggcGFnZXMuCiAJICovCi0JbGltaXQgPSBtaW4obnJfYWxsX3BhZ2VzLCAxVUw8PCgyOC1QQUdFX1NISUZUKSkgPj4gKDIwLVBBR0VfU0hJRlQpOwotCWxpbWl0ID0gKGxpbWl0ICogKG5yX2FsbF9wYWdlcyA+PiAoMjAtUEFHRV9TSElGVCkpKSA+PiAoUEFHRV9TSElGVC0xMSk7CisJbnJfcGFnZXMgPSB0b3RhbHJhbV9wYWdlcyAtIHRvdGFsaGlnaF9wYWdlczsKKwlsaW1pdCA9IG1pbihucl9wYWdlcywgMVVMPDwoMjgtUEFHRV9TSElGVCkpID4+ICgyMC1QQUdFX1NISUZUKTsKKwlsaW1pdCA9IChsaW1pdCAqIChucl9wYWdlcyA+PiAoMjAtUEFHRV9TSElGVCkpKSA+PiAoUEFHRV9TSElGVC0xMSk7CiAJbGltaXQgPSBtYXgobGltaXQsIDEyOFVMKTsKIAlzeXNjdGxfdGNwX21lbVswXSA9IGxpbWl0IC8gNCAqIDM7CiAJc3lzY3RsX3RjcF9tZW1bMV0gPSBsaW1pdDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9pbnB1dC5jIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKaW5kZXggYjU0ZDlkMy4uY2FkNzNiNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX2lucHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX2lucHV0LmMKQEAgLTEzOTIsOSArMTM5Miw5IEBACiAKIAlpZiAoYmVmb3JlKG5leHRfZHVwLT5zdGFydF9zZXEsIHNraXBfdG9fc2VxKSkgewogCQlza2IgPSB0Y3Bfc2Fja3RhZ19za2lwKHNrYiwgc2ssIG5leHRfZHVwLT5zdGFydF9zZXEsIGZhY2tfY291bnQpOwotCQl0Y3Bfc2Fja3RhZ193YWxrKHNrYiwgc2ssIE5VTEwsCi0JCQkJIG5leHRfZHVwLT5zdGFydF9zZXEsIG5leHRfZHVwLT5lbmRfc2VxLAotCQkJCSAxLCBmYWNrX2NvdW50LCByZW9yZCwgZmxhZyk7CisJCXNrYiA9IHRjcF9zYWNrdGFnX3dhbGsoc2tiLCBzaywgTlVMTCwKKwkJCQkgICAgIG5leHRfZHVwLT5zdGFydF9zZXEsIG5leHRfZHVwLT5lbmRfc2VxLAorCQkJCSAgICAgMSwgZmFja19jb3VudCwgcmVvcmQsIGZsYWcpOwogCX0KIAogCXJldHVybiBza2I7CkBAIC0yNDgzLDYgKzI0ODMsMjAgQEAKIAl0Y3BfY2FfZXZlbnQoc2ssIENBX0VWRU5UX0NPTVBMRVRFX0NXUik7CiB9CiAKK3N0YXRpYyB2b2lkIHRjcF90cnlfa2VlcF9vcGVuKHN0cnVjdCBzb2NrICpzaykKK3sKKwlzdHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsKKwlpbnQgc3RhdGUgPSBUQ1BfQ0FfT3BlbjsKKworCWlmICh0Y3BfbGVmdF9vdXQodHApIHx8IHRwLT5yZXRyYW5zX291dCB8fCB0cC0+dW5kb19tYXJrZXIpCisJCXN0YXRlID0gVENQX0NBX0Rpc29yZGVyOworCisJaWYgKGluZXRfY3NrKHNrKS0+aWNza19jYV9zdGF0ZSAhPSBzdGF0ZSkgeworCQl0Y3Bfc2V0X2NhX3N0YXRlKHNrLCBzdGF0ZSk7CisJCXRwLT5oaWdoX3NlcSA9IHRwLT5zbmRfbnh0OworCX0KK30KKwogc3RhdGljIHZvaWQgdGNwX3RyeV90b19vcGVuKHN0cnVjdCBzb2NrICpzaywgaW50IGZsYWcpCiB7CiAJc3RydWN0IHRjcF9zb2NrICp0cCA9IHRjcF9zayhzayk7CkBAIC0yNDk2LDE1ICsyNTEwLDcgQEAKIAkJdGNwX2VudGVyX2N3cihzaywgMSk7CiAKIAlpZiAoaW5ldF9jc2soc2spLT5pY3NrX2NhX3N0YXRlICE9IFRDUF9DQV9DV1IpIHsKLQkJaW50IHN0YXRlID0gVENQX0NBX09wZW47Ci0KLQkJaWYgKHRjcF9sZWZ0X291dCh0cCkgfHwgdHAtPnJldHJhbnNfb3V0IHx8IHRwLT51bmRvX21hcmtlcikKLQkJCXN0YXRlID0gVENQX0NBX0Rpc29yZGVyOwotCi0JCWlmIChpbmV0X2NzayhzayktPmljc2tfY2Ffc3RhdGUgIT0gc3RhdGUpIHsKLQkJCXRjcF9zZXRfY2Ffc3RhdGUoc2ssIHN0YXRlKTsKLQkJCXRwLT5oaWdoX3NlcSA9IHRwLT5zbmRfbnh0OwotCQl9CisJCXRjcF90cnlfa2VlcF9vcGVuKHNrKTsKIAkJdGNwX21vZGVyYXRlX2N3bmQodHApOwogCX0gZWxzZSB7CiAJCXRjcF9jd25kX2Rvd24oc2ssIGZsYWcpOwpAQCAtMzMxMCw4ICszMzE2LDExIEBACiAJcmV0dXJuIDE7CiAKIG9sZF9hY2s6Ci0JaWYgKFRDUF9TS0JfQ0Ioc2tiKS0+c2Fja2VkKQorCWlmIChUQ1BfU0tCX0NCKHNrYiktPnNhY2tlZCkgewogCQl0Y3Bfc2Fja3RhZ193cml0ZV9xdWV1ZShzaywgc2tiLCBwcmlvcl9zbmRfdW5hKTsKKwkJaWYgKGljc2stPmljc2tfY2Ffc3RhdGUgPT0gVENQX0NBX09wZW4pCisJCQl0Y3BfdHJ5X2tlZXBfb3Blbihzayk7CisJfQogCiB1bmludGVyZXN0aW5nX2FjazoKIAlTT0NLX0RFQlVHKHNrLCAiQWNrICV1IG91dCBvZiAldToldVxuIiwgYWNrLCB0cC0+c25kX3VuYSwgdHAtPnNuZF9ueHQpOwpAQCAtNDUzMiw0OSArNDU0MSw2IEBACiAJfQogfQogCi1zdGF0aWMgaW50IHRjcF9kZWZlcl9hY2NlcHRfY2hlY2soc3RydWN0IHNvY2sgKnNrKQotewotCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwotCi0JaWYgKHRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QpIHsKLQkJaW50IHF1ZXVlZF9kYXRhID0gIHRwLT5yY3Zfbnh0IC0gdHAtPmNvcGllZF9zZXE7Ci0JCWludCBoYXNmaW4gPSAgIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX3JlY2VpdmVfcXVldWUpID8KLQkJCXRjcF9oZHIoKHN0cnVjdCBza19idWZmICopCi0JCQkJc2stPnNrX3JlY2VpdmVfcXVldWUucHJldiktPmZpbiA6IDA7Ci0KLQkJaWYgKHF1ZXVlZF9kYXRhICYmIGhhc2ZpbikKLQkJCXF1ZXVlZF9kYXRhLS07Ci0KLQkJaWYgKHF1ZXVlZF9kYXRhICYmCi0JCSAgICB0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4pIHsKLQkJCWlmIChzb2NrX2ZsYWcoc2ssIFNPQ0tfS0VFUE9QRU4pKSB7Ci0JCQkJaW5ldF9jc2tfcmVzZXRfa2VlcGFsaXZlX3RpbWVyKHNrLAotCQkJCQkJCSAgICAgICBrZWVwYWxpdmVfdGltZV93aGVuKHRwKSk7Ci0JCQl9IGVsc2UgewotCQkJCWluZXRfY3NrX2RlbGV0ZV9rZWVwYWxpdmVfdGltZXIoc2spOwotCQkJfQotCi0JCQlpbmV0X2Nza19yZXFza19xdWV1ZV9hZGQoCi0JCQkJdHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrLAotCQkJCXRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QsCi0JCQkJc2spOwotCi0JCQl0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2stPnNrX2RhdGFfcmVhZHkoCi0JCQkJdHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrLCAwKTsKLQotCQkJc29ja19wdXQodHAtPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrKTsKLQkJCXNvY2tfcHV0KHNrKTsKLQkJCXRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zayA9IE5VTEw7Ci0JCQl0cC0+ZGVmZXJfdGNwX2FjY2VwdC5yZXF1ZXN0ID0gTlVMTDsKLQkJfSBlbHNlIGlmIChoYXNmaW4gfHwKLQkJCSAgIHRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zay0+c2tfc3RhdGUgIT0gVENQX0xJU1RFTikgewotCQkJdGNwX3Jlc2V0KHNrKTsKLQkJCXJldHVybiAtMTsKLQkJfQotCX0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCB0Y3BfY29weV90b19pb3ZlYyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIGludCBobGVuKQogewogCXN0cnVjdCB0Y3Bfc29jayAqdHAgPSB0Y3Bfc2soc2spOwpAQCAtNDkzNSw4ICs0OTAxLDYgQEAKIAogCXRjcF9kYXRhX3NuZF9jaGVjayhzayk7CiAJdGNwX2Fja19zbmRfY2hlY2soc2spOwotCi0JdGNwX2RlZmVyX2FjY2VwdF9jaGVjayhzayk7CiAJcmV0dXJuIDA7CiAKIGNzdW1fZXJyb3I6CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaXB2NC5jIGIvbmV0L2lwdjQvdGNwX2lwdjQuYwppbmRleCBjZDYwMWE4Li5mZmU4NjlhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaXB2NC5jCisrKyBiL25ldC9pcHY0L3RjcF9pcHY0LmMKQEAgLTg1LDEwICs4NSw2IEBACiBpbnQgc3lzY3RsX3RjcF90d19yZXVzZSBfX3JlYWRfbW9zdGx5OwogaW50IHN5c2N0bF90Y3BfbG93X2xhdGVuY3kgX19yZWFkX21vc3RseTsKIAotLyogQ2hlY2sgVENQIHNlcXVlbmNlIG51bWJlcnMgaW4gSUNNUCBwYWNrZXRzLiAqLwotI2RlZmluZSBJQ01QX01JTl9MRU5HVEggOAotCi12b2lkIHRjcF92NF9zZW5kX2NoZWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKICNpZmRlZiBDT05GSUdfVENQX01ENVNJRwogc3RhdGljIHN0cnVjdCB0Y3BfbWQ1c2lnX2tleSAqdGNwX3Y0X21kNV9kb19sb29rdXAoc3RydWN0IHNvY2sgKnNrLApAQCAtMTI4NSw3ICsxMjgxLDcgQEAKIAlpZiAoc2tfYWNjZXB0cV9pc19mdWxsKHNrKSAmJiBpbmV0X2Nza19yZXFza19xdWV1ZV95b3VuZyhzaykgPiAxKQogCQlnb3RvIGRyb3A7CiAKLQlyZXEgPSByZXFza19hbGxvYygmdGNwX3JlcXVlc3Rfc29ja19vcHMpOworCXJlcSA9IGluZXRfcmVxc2tfYWxsb2MoJnRjcF9yZXF1ZXN0X3NvY2tfb3BzKTsKIAlpZiAoIXJlcSkKIAkJZ290byBkcm9wOwogCkBAIC0xOTE4LDE0ICsxOTE0LDYgQEAKIAkJc2stPnNrX3NuZG1zZ19wYWdlID0gTlVMTDsKIAl9CiAKLQlpZiAodHAtPmRlZmVyX3RjcF9hY2NlcHQucmVxdWVzdCkgewotCQlyZXFza19mcmVlKHRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QpOwotCQlzb2NrX3B1dCh0cC0+ZGVmZXJfdGNwX2FjY2VwdC5saXN0ZW5fc2spOwotCQlzb2NrX3B1dChzayk7Ci0JCXRwLT5kZWZlcl90Y3BfYWNjZXB0Lmxpc3Rlbl9zayA9IE5VTEw7Ci0JCXRwLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QgPSBOVUxMOwotCX0KLQogCWF0b21pY19kZWMoJnRjcF9zb2NrZXRzX2FsbG9jYXRlZCk7CiAKIAlyZXR1cm4gMDsKQEAgLTIzMDMsNyArMjI5MSw3IEBACiAJfQogCiAJc2VxX3ByaW50ZihmLCAiJTRkOiAlMDhYOiUwNFggJTA4WDolMDRYICUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggIgotCQkJIiUwOFggJTVkICU4ZCAlbHUgJWQgJXAgJXUgJXUgJXUgJXUgJWQlbiIsCisJCQkiJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlbHUgJWx1ICV1ICV1ICVkJW4iLAogCQlpLCBzcmMsIHNyY3AsIGRlc3QsIGRlc3RwLCBzay0+c2tfc3RhdGUsCiAJCXRwLT53cml0ZV9zZXEgLSB0cC0+c25kX3VuYSwKIAkJc2stPnNrX3N0YXRlID09IFRDUF9MSVNURU4gPyBzay0+c2tfYWNrX2JhY2tsb2cgOgpAQCAtMjMxNSw4ICsyMzAzLDggQEAKIAkJaWNzay0+aWNza19wcm9iZXNfb3V0LAogCQlzb2NrX2lfaW5vKHNrKSwKIAkJYXRvbWljX3JlYWQoJnNrLT5za19yZWZjbnQpLCBzaywKLQkJaWNzay0+aWNza19ydG8sCi0JCWljc2stPmljc2tfYWNrLmF0bywKKwkJamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfcnRvKSwKKwkJamlmZmllc190b19jbG9ja190KGljc2stPmljc2tfYWNrLmF0byksCiAJCShpY3NrLT5pY3NrX2Fjay5xdWljayA8PCAxKSB8IGljc2stPmljc2tfYWNrLnBpbmdwb25nLAogCQl0cC0+c25kX2N3bmQsCiAJCXRwLT5zbmRfc3N0aHJlc2ggPj0gMHhGRkZGID8gLTEgOiB0cC0+c25kX3NzdGhyZXNoLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jIGIvbmV0L2lwdjQvdGNwX21pbmlzb2Nrcy5jCmluZGV4IDAxOWM4YzEuLjgyNDUyNDcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYworKysgYi9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMKQEAgLTU3MSw4ICs1NzEsMTAgQEAKIAkgICBkb2VzIHNlcXVlbmNlIHRlc3QsIFNZTiBpcyB0cnVuY2F0ZWQsIGFuZCB0aHVzIHdlIGNvbnNpZGVyCiAJICAgaXQgYSBiYXJlIEFDSy4KIAotCSAgIEJvdGggZW5kcyAobGlzdGVuaW5nIHNvY2tldHMpIGFjY2VwdCB0aGUgbmV3IGluY29taW5nCi0JICAgY29ubmVjdGlvbiBhbmQgdHJ5IHRvIHRhbGsgdG8gZWFjaCBvdGhlci4gOC0pCisJICAgSWYgaWNzay0+aWNza19hY2NlcHRfcXVldWUucnNrcV9kZWZlcl9hY2NlcHQsIHdlIHNpbGVudGx5IGRyb3AgdGhpcworCSAgIGJhcmUgQUNLLiAgT3RoZXJ3aXNlLCB3ZSBjcmVhdGUgYW4gZXN0YWJsaXNoZWQgY29ubmVjdGlvbi4gIEJvdGgKKwkgICBlbmRzIChsaXN0ZW5pbmcgc29ja2V0cykgYWNjZXB0IHRoZSBuZXcgaW5jb21pbmcgY29ubmVjdGlvbiBhbmQgdHJ5CisJICAgdG8gdGFsayB0byBlYWNoIG90aGVyLiA4LSkKIAogCSAgIE5vdGU6IFRoaXMgY2FzZSBpcyBib3RoIGhhcm1sZXNzLCBhbmQgcmFyZS4gIFBvc3NpYmlsaXR5IGlzIGFib3V0IHRoZQogCSAgIHNhbWUgYXMgdXMgZGlzY292ZXJpbmcgaW50ZWxsaWdlbnQgbGlmZSBvbiBhbm90aGVyIHBsYW50IHRvbW9ycm93LgpAQCAtNjQwLDYgKzY0MiwxMyBAQAogCQlpZiAoIShmbGcgJiBUQ1BfRkxBR19BQ0spKQogCQkJcmV0dXJuIE5VTEw7CiAKKwkJLyogSWYgVENQX0RFRkVSX0FDQ0VQVCBpcyBzZXQsIGRyb3AgYmFyZSBBQ0suICovCisJCWlmIChpbmV0X2NzayhzayktPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ICYmCisJCSAgICBUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEgPT0gdGNwX3JzayhyZXEpLT5yY3ZfaXNuICsgMSkgeworCQkJaW5ldF9yc2socmVxKS0+YWNrZWQgPSAxOworCQkJcmV0dXJuIE5VTEw7CisJCX0KKwogCQkvKiBPSywgQUNLIGlzIHZhbGlkLCBjcmVhdGUgYmlnIHNvY2tldCBhbmQKIAkJICogZmVlZCB0aGlzIHNlZ21lbnQgdG8gaXQuIEl0IHdpbGwgcmVwZWF0IGFsbAogCQkgKiB0aGUgdGVzdHMuIFRISVMgU0VHTUVOVCBNVVNUIE1PVkUgU09DS0VUIFRPCkBAIC02NzgsMjQgKzY4Nyw3IEBACiAJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX3VubGluayhzaywgcmVxLCBwcmV2KTsKIAkJaW5ldF9jc2tfcmVxc2tfcXVldWVfcmVtb3ZlZChzaywgcmVxKTsKIAotCQlpZiAoaW5ldF9jc2soc2spLT5pY3NrX2FjY2VwdF9xdWV1ZS5yc2txX2RlZmVyX2FjY2VwdCAmJgotCQkgICAgVENQX1NLQl9DQihza2IpLT5lbmRfc2VxID09IHRjcF9yc2socmVxKS0+cmN2X2lzbiArIDEpIHsKLQotCQkJLyogdGhlIGFjY2VwdCBxdWV1ZSBoYW5kbGluZyBpcyBkb25lIGlzIGVzdCByZWN2IHNsb3cKLQkJCSAqIHBhdGggc28gbGV0cyBtYWtlIHN1cmUgdG8gc3RhcnQgdGhlcmUKLQkJCSAqLwotCQkJdGNwX3NrKGNoaWxkKS0+cHJlZF9mbGFncyA9IDA7Ci0JCQlzb2NrX2hvbGQoc2spOwotCQkJc29ja19ob2xkKGNoaWxkKTsKLQkJCXRjcF9zayhjaGlsZCktPmRlZmVyX3RjcF9hY2NlcHQubGlzdGVuX3NrID0gc2s7Ci0JCQl0Y3Bfc2soY2hpbGQpLT5kZWZlcl90Y3BfYWNjZXB0LnJlcXVlc3QgPSByZXE7Ci0KLQkJCWluZXRfY3NrX3Jlc2V0X2tlZXBhbGl2ZV90aW1lcihjaGlsZCwKLQkJCQkJCSAgICAgICBpbmV0X2NzayhzayktPmljc2tfYWNjZXB0X3F1ZXVlLnJza3FfZGVmZXJfYWNjZXB0ICogSFopOwotCQl9IGVsc2UgewotCQkJaW5ldF9jc2tfcmVxc2tfcXVldWVfYWRkKHNrLCByZXEsIGNoaWxkKTsKLQkJfQotCisJCWluZXRfY3NrX3JlcXNrX3F1ZXVlX2FkZChzaywgcmVxLCBjaGlsZCk7CiAJCXJldHVybiBjaGlsZDsKIAogCWxpc3Rlbl9vdmVyZmxvdzoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwppbmRleCBlMzk5YmRlLi5hZDk5M2VjIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC0yMTMxLDYgKzIxMzEsOCBAQAogCVRDUF9TS0JfQ0Ioc2tiKS0+d2hlbiA9IHRjcF90aW1lX3N0YW1wOwogCWlmICh0Y3BfdHJhbnNtaXRfc2tiKHNrLCBza2IsIDAsIHByaW9yaXR5KSkKIAkJTkVUX0lOQ19TVEFUUyhMSU5VWF9NSUJfVENQQUJPUlRGQUlMRUQpOworCisJVENQX0lOQ19TVEFUUyhUQ1BfTUlCX09VVFJTVFMpOwogfQogCiAvKiBXQVJOSU5HOiBUaGlzIHJvdXRpbmUgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGVuIHdlIGhhdmUgYWxyZWFkeSBzZW50CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfcHJvYmUuYyBiL25ldC9pcHY0L3RjcF9wcm9iZS5jCmluZGV4IDVmZjBjZTYuLjdkZGMzMGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9wcm9iZS5jCisrKyBiL25ldC9pcHY0L3RjcF9wcm9iZS5jCkBAIC0yMjQsNyArMjI0LDcgQEAKIAlpZiAoYnVmc2l6ZSA8IDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0JdGNwX3Byb2JlLmxvZyA9IGtjYWxsb2Moc2l6ZW9mKHN0cnVjdCB0Y3BfbG9nKSwgYnVmc2l6ZSwgR0ZQX0tFUk5FTCk7CisJdGNwX3Byb2JlLmxvZyA9IGtjYWxsb2MoYnVmc2l6ZSwgc2l6ZW9mKHN0cnVjdCB0Y3BfbG9nKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF0Y3BfcHJvYmUubG9nKQogCQlnb3RvIGVycjA7CiAKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF90aW1lci5jIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmMKaW5kZXggNGRlNjhjZi4uNjNlZDlkNiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdGNwX3RpbWVyLmMKKysrIGIvbmV0L2lwdjQvdGNwX3RpbWVyLmMKQEAgLTQ4OSwxMSArNDg5LDYgQEAKIAkJZ290byBkZWF0aDsKIAl9CiAKLQlpZiAodHAtPmRlZmVyX3RjcF9hY2NlcHQucmVxdWVzdCAmJiBzay0+c2tfc3RhdGUgPT0gVENQX0VTVEFCTElTSEVEKSB7Ci0JCXRjcF9zZW5kX2FjdGl2ZV9yZXNldChzaywgR0ZQX0FUT01JQyk7Ci0JCWdvdG8gZGVhdGg7Ci0JfQotCiAJaWYgKCFzb2NrX2ZsYWcoc2ssIFNPQ0tfS0VFUE9QRU4pIHx8IHNrLT5za19zdGF0ZSA9PSBUQ1BfQ0xPU0UpCiAJCWdvdG8gb3V0OwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90dW5uZWw0LmMgYi9uZXQvaXB2NC90dW5uZWw0LmMKaW5kZXggZDNiNzA5YS4uY2IxZjBlOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdHVubmVsNC5jCisrKyBiL25ldC9pcHY0L3R1bm5lbDQuYwpAQCAtOTcsNyArOTcsNyBAQAogewogCXN0cnVjdCB4ZnJtX3R1bm5lbCAqaGFuZGxlcjsKIAotCWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKKwlpZiAoIXBza2JfbWF5X3B1bGwoc2tiLCBzaXplb2Yoc3RydWN0IGlwdjZoZHIpKSkKIAkJZ290byBkcm9wOwogCiAJZm9yIChoYW5kbGVyID0gdHVubmVsNjRfaGFuZGxlcnM7IGhhbmRsZXI7IGhhbmRsZXIgPSBoYW5kbGVyLT5uZXh0KQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCBkYjFjYjdjLi41NmZjZGEzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC91ZHAuYworKysgYi9uZXQvaXB2NC91ZHAuYwpAQCAtNDIwLDcgKzQyMCw3IEBACiAvKgogICogVGhyb3cgYXdheSBhbGwgcGVuZGluZyBkYXRhIGFuZCBjYW5jZWwgdGhlIGNvcmtpbmcuIFNvY2tldCBpcyBsb2NrZWQuCiAgKi8KLXN0YXRpYyB2b2lkIHVkcF9mbHVzaF9wZW5kaW5nX2ZyYW1lcyhzdHJ1Y3Qgc29jayAqc2spCit2b2lkIHVkcF9mbHVzaF9wZW5kaW5nX2ZyYW1lcyhzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHVkcF9zb2NrICp1cCA9IHVkcF9zayhzayk7CiAKQEAgLTQzMCw2ICs0MzAsNyBAQAogCQlpcF9mbHVzaF9wZW5kaW5nX2ZyYW1lcyhzayk7CiAJfQogfQorRVhQT1JUX1NZTUJPTCh1ZHBfZmx1c2hfcGVuZGluZ19mcmFtZXMpOwogCiAvKioKICAqIAl1ZHA0X2h3Y3N1bV9vdXRnb2luZyAgLSAgaGFuZGxlIG91dGdvaW5nIEhXIGNoZWNrc3VtbWluZwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQveGZybTRfbW9kZV90dW5uZWwuYyBiL25ldC9pcHY0L3hmcm00X21vZGVfdHVubmVsLmMKaW5kZXggNTg0ZTZkNy4uNzEzNTI3OSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQveGZybTRfbW9kZV90dW5uZWwuYworKysgYi9uZXQvaXB2NC94ZnJtNF9tb2RlX3R1bm5lbC5jCkBAIC01Miw3ICs1Miw3IEBACiAJCUlQX0VDTl9jbGVhcih0b3BfaXBoKTsKIAogCXRvcF9pcGgtPmZyYWdfb2ZmID0gKGZsYWdzICYgWEZSTV9TVEFURV9OT1BNVFVESVNDKSA/Ci0JCQkgICAgMCA6IFhGUk1fTU9ERV9TS0JfQ0Ioc2tiKS0+ZnJhZ19vZmY7CisJCTAgOiAoWEZSTV9NT0RFX1NLQl9DQihza2IpLT5mcmFnX29mZiAmIGh0b25zKElQX0RGKSk7CiAJaXBfc2VsZWN0X2lkZW50KHRvcF9pcGgsIGRzdC0+Y2hpbGQsIE5VTEwpOwogCiAJdG9wX2lwaC0+dHRsID0gZHN0X21ldHJpYyhkc3QtPmNoaWxkLCBSVEFYX0hPUExJTUlUKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5jCmluZGV4IDNhODM1NTcuLmZmNjFhNWMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNzMxLDggKzczMSwxMyBAQAogCQkJCQkJb25saW5rID0gLTE7CiAKIAkJCQkJc3Bpbl9sb2NrKCZpZmEtPmxvY2spOwotCQkJCQlsaWZldGltZSA9IG1pbl90KHVuc2lnbmVkIGxvbmcsCi0JCQkJCQkJIGlmYS0+dmFsaWRfbGZ0LCAweDdmZmZmZmZmVUwvSFopOworCisJCQkJCWxpZmV0aW1lID0gYWRkcmNvbmZfdGltZW91dF9maXh1cChpZmEtPnZhbGlkX2xmdCwgSFopOworCQkJCQkvKgorCQkJCQkgKiBOb3RlOiBCZWNhdXNlIHRoaXMgYWRkcmVzcyBpcworCQkJCQkgKiBub3QgcGVybWFuZW50LCBsaWZldGltZSA8CisJCQkJCSAqIExPTkdfTUFYIC8gSFogaGVyZS4KKwkJCQkJICovCiAJCQkJCWlmICh0aW1lX2JlZm9yZShleHBpcmVzLAogCQkJCQkJCWlmYS0+dHN0YW1wICsgbGlmZXRpbWUgKiBIWikpCiAJCQkJCQlleHBpcmVzID0gaWZhLT50c3RhbXAgKyBsaWZldGltZSAqIEhaOwpAQCAtNzQ0LDEyICs3NDksMTIgQEAKIAl9CiAJd3JpdGVfdW5sb2NrX2JoKCZpZGV2LT5sb2NrKTsKIAorCWFkZHJjb25mX2RlbF90aW1lcihpZnApOworCiAJaXB2Nl9pZmFfbm90aWZ5KFJUTV9ERUxBRERSLCBpZnApOwogCiAJYXRvbWljX25vdGlmaWVyX2NhbGxfY2hhaW4oJmluZXQ2YWRkcl9jaGFpbiwgTkVUREVWX0RPV04sIGlmcCk7CiAKLQlhZGRyY29uZl9kZWxfdGltZXIoaWZwKTsKLQogCS8qCiAJICogUHVyZ2Ugb3IgdXBkYXRlIGNvcnJlc3BvbmRpbmcgcHJlZml4CiAJICoKQEAgLTE3MjIsNyArMTcyNyw2IEBACiAJX191MzIgdmFsaWRfbGZ0OwogCV9fdTMyIHByZWZlcmVkX2xmdDsKIAlpbnQgYWRkcl90eXBlOwotCXVuc2lnbmVkIGxvbmcgcnRfZXhwaXJlczsKIAlzdHJ1Y3QgaW5ldDZfZGV2ICppbjZfZGV2OwogCiAJcGluZm8gPSAoc3RydWN0IHByZWZpeF9pbmZvICopIG9wdDsKQEAgLTE3NjQsMjggKzE3NjgsMjMgQEAKIAkgKgkyKSBDb25maWd1cmUgcHJlZml4ZXMgd2l0aCB0aGUgYXV0byBmbGFnIHNldAogCSAqLwogCi0JaWYgKHZhbGlkX2xmdCA9PSBJTkZJTklUWV9MSUZFX1RJTUUpCi0JCXJ0X2V4cGlyZXMgPSB+MFVMOwotCWVsc2UgaWYgKHZhbGlkX2xmdCA+PSAweDdGRkZGRkZGL0haKSB7CisJaWYgKHBpbmZvLT5vbmxpbmspIHsKKwkJc3RydWN0IHJ0Nl9pbmZvICpydDsKKwkJdW5zaWduZWQgbG9uZyBydF9leHBpcmVzOworCiAJCS8qIEF2b2lkIGFyaXRobWV0aWMgb3ZlcmZsb3cuIFJlYWxseSwgd2UgY291bGQKIAkJICogc2F2ZSBydF9leHBpcmVzIGluIHNlY29uZHMsIGxpa2VseSB2YWxpZF9sZnQsCiAJCSAqIGJ1dCBpdCB3b3VsZCByZXF1aXJlIGRpdmlzaW9uIGluIGZpYiBnYywgdGhhdCBpdAogCQkgKiBub3QgZ29vZC4KIAkJICovCi0JCXJ0X2V4cGlyZXMgPSAweDdGRkZGRkZGIC0gKDB4N0ZGRkZGRkYgJSBIWik7Ci0JfSBlbHNlCi0JCXJ0X2V4cGlyZXMgPSB2YWxpZF9sZnQgKiBIWjsKKwkJaWYgKEhaID4gVVNFUl9IWikKKwkJCXJ0X2V4cGlyZXMgPSBhZGRyY29uZl90aW1lb3V0X2ZpeHVwKHZhbGlkX2xmdCwgSFopOworCQllbHNlCisJCQlydF9leHBpcmVzID0gYWRkcmNvbmZfdGltZW91dF9maXh1cCh2YWxpZF9sZnQsIFVTRVJfSFopOwogCi0JLyoKLQkgKiBXZSBjb252ZXJ0IHRoaXMgKGluIGppZmZpZXMpIHRvIGNsb2NrX3QgbGF0ZXIuCi0JICogQXZvaWQgYXJpdGhtZXRpYyBvdmVyZmxvdyB0aGVyZSBhcyB3ZWxsLgotCSAqIE92ZXJmbG93IGNhbiBoYXBwZW4gb25seSBpZiBIWiA8IFVTRVJfSFouCi0JICovCi0JaWYgKEhaIDwgVVNFUl9IWiAmJiB+cnRfZXhwaXJlcyAmJiBydF9leHBpcmVzID4gMHg3RkZGRkZGRiAvIFVTRVJfSFopCi0JCXJ0X2V4cGlyZXMgPSAweDdGRkZGRkZGIC8gVVNFUl9IWjsKKwkJaWYgKGFkZHJjb25mX2Zpbml0ZV90aW1lb3V0KHJ0X2V4cGlyZXMpKQorCQkJcnRfZXhwaXJlcyAqPSBIWjsKIAotCWlmIChwaW5mby0+b25saW5rKSB7Ci0JCXN0cnVjdCBydDZfaW5mbyAqcnQ7CiAJCXJ0ID0gcnQ2X2xvb2t1cChkZXZfbmV0KGRldiksICZwaW5mby0+cHJlZml4LCBOVUxMLAogCQkJCWRldi0+aWZpbmRleCwgMSk7CiAKQEAgLTE3OTQsNyArMTc5Myw3IEBACiAJCQlpZiAodmFsaWRfbGZ0ID09IDApIHsKIAkJCQlpcDZfZGVsX3J0KHJ0KTsKIAkJCQlydCA9IE5VTEw7Ci0JCQl9IGVsc2UgaWYgKH5ydF9leHBpcmVzKSB7CisJCQl9IGVsc2UgaWYgKGFkZHJjb25mX2Zpbml0ZV90aW1lb3V0KHJ0X2V4cGlyZXMpKSB7CiAJCQkJLyogbm90IGluZmluaXR5ICovCiAJCQkJcnQtPnJ0NmlfZXhwaXJlcyA9IGppZmZpZXMgKyBydF9leHBpcmVzOwogCQkJCXJ0LT5ydDZpX2ZsYWdzIHw9IFJURl9FWFBJUkVTOwpAQCAtMTgwMyw5ICsxODAyLDkgQEAKIAkJCQlydC0+cnQ2aV9leHBpcmVzID0gMDsKIAkJCX0KIAkJfSBlbHNlIGlmICh2YWxpZF9sZnQpIHsKLQkJCWludCBmbGFncyA9IFJURl9BRERSQ09ORiB8IFJURl9QUkVGSVhfUlQ7CiAJCQljbG9ja190IGV4cGlyZXMgPSAwOwotCQkJaWYgKH5ydF9leHBpcmVzKSB7CisJCQlpbnQgZmxhZ3MgPSBSVEZfQUREUkNPTkYgfCBSVEZfUFJFRklYX1JUOworCQkJaWYgKGFkZHJjb25mX2Zpbml0ZV90aW1lb3V0KHJ0X2V4cGlyZXMpKSB7CiAJCQkJLyogbm90IGluZmluaXR5ICovCiAJCQkJZmxhZ3MgfD0gUlRGX0VYUElSRVM7CiAJCQkJZXhwaXJlcyA9IGppZmZpZXNfdG9fY2xvY2tfdChydF9leHBpcmVzKTsKQEAgLTIwMjcsNyArMjAyNiw3IEBACiAgKglNYW51YWwgY29uZmlndXJhdGlvbiBvZiBhZGRyZXNzIG9uIGFuIGludGVyZmFjZQogICovCiBzdGF0aWMgaW50IGluZXQ2X2FkZHJfYWRkKHN0cnVjdCBuZXQgKm5ldCwgaW50IGlmaW5kZXgsIHN0cnVjdCBpbjZfYWRkciAqcGZ4LAotCQkJICBpbnQgcGxlbiwgX191OCBpZmFfZmxhZ3MsIF9fdTMyIHByZWZlcmVkX2xmdCwKKwkJCSAgdW5zaWduZWQgaW50IHBsZW4sIF9fdTggaWZhX2ZsYWdzLCBfX3UzMiBwcmVmZXJlZF9sZnQsCiAJCQkgIF9fdTMyIHZhbGlkX2xmdCkKIHsKIAlzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnA7CkBAIC0yMDM2LDkgKzIwMzUsMTMgQEAKIAlpbnQgc2NvcGU7CiAJdTMyIGZsYWdzOwogCWNsb2NrX3QgZXhwaXJlczsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CiAKIAlBU1NFUlRfUlROTCgpOwogCisJaWYgKHBsZW4gPiAxMjgpCisJCXJldHVybiAtRUlOVkFMOworCiAJLyogY2hlY2sgdGhlIGxpZmV0aW1lICovCiAJaWYgKCF2YWxpZF9sZnQgfHwgcHJlZmVyZWRfbGZ0ID4gdmFsaWRfbGZ0KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTIwNTIsMjIgKzIwNTUsMjMgQEAKIAogCXNjb3BlID0gaXB2Nl9hZGRyX3Njb3BlKHBmeCk7CiAKLQlpZiAodmFsaWRfbGZ0ID09IElORklOSVRZX0xJRkVfVElNRSkgewotCQlpZmFfZmxhZ3MgfD0gSUZBX0ZfUEVSTUFORU5UOwotCQlmbGFncyA9IDA7Ci0JCWV4cGlyZXMgPSAwOwotCX0gZWxzZSB7Ci0JCWlmICh2YWxpZF9sZnQgPj0gMHg3RkZGRkZGRi9IWikKLQkJCXZhbGlkX2xmdCA9IDB4N0ZGRkZGRkYvSFo7CisJdGltZW91dCA9IGFkZHJjb25mX3RpbWVvdXRfZml4dXAodmFsaWRfbGZ0LCBIWik7CisJaWYgKGFkZHJjb25mX2Zpbml0ZV90aW1lb3V0KHRpbWVvdXQpKSB7CisJCWV4cGlyZXMgPSBqaWZmaWVzX3RvX2Nsb2NrX3QodGltZW91dCAqIEhaKTsKKwkJdmFsaWRfbGZ0ID0gdGltZW91dDsKIAkJZmxhZ3MgPSBSVEZfRVhQSVJFUzsKLQkJZXhwaXJlcyA9IGppZmZpZXNfdG9fY2xvY2tfdCh2YWxpZF9sZnQgKiBIWik7CisJfSBlbHNlIHsKKwkJZXhwaXJlcyA9IDA7CisJCWZsYWdzID0gMDsKKwkJaWZhX2ZsYWdzIHw9IElGQV9GX1BFUk1BTkVOVDsKIAl9CiAKLQlpZiAocHJlZmVyZWRfbGZ0ID09IDApCi0JCWlmYV9mbGFncyB8PSBJRkFfRl9ERVBSRUNBVEVEOwotCWVsc2UgaWYgKChwcmVmZXJlZF9sZnQgPj0gMHg3RkZGRkZGRi9IWikgJiYKLQkJIChwcmVmZXJlZF9sZnQgIT0gSU5GSU5JVFlfTElGRV9USU1FKSkKLQkJcHJlZmVyZWRfbGZ0ID0gMHg3RkZGRkZGRi9IWjsKKwl0aW1lb3V0ID0gYWRkcmNvbmZfdGltZW91dF9maXh1cChwcmVmZXJlZF9sZnQsIEhaKTsKKwlpZiAoYWRkcmNvbmZfZmluaXRlX3RpbWVvdXQodGltZW91dCkpIHsKKwkJaWYgKHRpbWVvdXQgPT0gMCkKKwkJCWlmYV9mbGFncyB8PSBJRkFfRl9ERVBSRUNBVEVEOworCQlwcmVmZXJlZF9sZnQgPSB0aW1lb3V0OworCX0KIAogCWlmcCA9IGlwdjZfYWRkX2FkZHIoaWRldiwgcGZ4LCBwbGVuLCBzY29wZSwgaWZhX2ZsYWdzKTsKIApAQCAtMjA5NSwxMiArMjA5OSwxNSBAQAogfQogCiBzdGF0aWMgaW50IGluZXQ2X2FkZHJfZGVsKHN0cnVjdCBuZXQgKm5ldCwgaW50IGlmaW5kZXgsIHN0cnVjdCBpbjZfYWRkciAqcGZ4LAotCQkJICBpbnQgcGxlbikKKwkJCSAgdW5zaWduZWQgaW50IHBsZW4pCiB7CiAJc3RydWN0IGluZXQ2X2lmYWRkciAqaWZwOwogCXN0cnVjdCBpbmV0Nl9kZXYgKmlkZXY7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldjsKIAorCWlmIChwbGVuID4gMTI4KQorCQlyZXR1cm4gLUVJTlZBTDsKKwogCWRldiA9IF9fZGV2X2dldF9ieV9pbmRleChuZXQsIGlmaW5kZXgpOwogCWlmICghZGV2KQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTMxNjksMjYgKzMxNzYsMjggQEAKIHsKIAl1MzIgZmxhZ3M7CiAJY2xvY2tfdCBleHBpcmVzOworCXVuc2lnbmVkIGxvbmcgdGltZW91dDsKIAogCWlmICghdmFsaWRfbGZ0IHx8IChwcmVmZXJlZF9sZnQgPiB2YWxpZF9sZnQpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCWlmICh2YWxpZF9sZnQgPT0gSU5GSU5JVFlfTElGRV9USU1FKSB7Ci0JCWlmYV9mbGFncyB8PSBJRkFfRl9QRVJNQU5FTlQ7Ci0JCWZsYWdzID0gMDsKLQkJZXhwaXJlcyA9IDA7Ci0JfSBlbHNlIHsKLQkJaWYgKHZhbGlkX2xmdCA+PSAweDdGRkZGRkZGL0haKQotCQkJdmFsaWRfbGZ0ID0gMHg3RkZGRkZGRi9IWjsKKwl0aW1lb3V0ID0gYWRkcmNvbmZfdGltZW91dF9maXh1cCh2YWxpZF9sZnQsIEhaKTsKKwlpZiAoYWRkcmNvbmZfZmluaXRlX3RpbWVvdXQodGltZW91dCkpIHsKKwkJZXhwaXJlcyA9IGppZmZpZXNfdG9fY2xvY2tfdCh0aW1lb3V0ICogSFopOworCQl2YWxpZF9sZnQgPSB0aW1lb3V0OwogCQlmbGFncyA9IFJURl9FWFBJUkVTOwotCQlleHBpcmVzID0gamlmZmllc190b19jbG9ja190KHZhbGlkX2xmdCAqIEhaKTsKKwl9IGVsc2UgeworCQlleHBpcmVzID0gMDsKKwkJZmxhZ3MgPSAwOworCQlpZmFfZmxhZ3MgfD0gSUZBX0ZfUEVSTUFORU5UOwogCX0KIAotCWlmIChwcmVmZXJlZF9sZnQgPT0gMCkKLQkJaWZhX2ZsYWdzIHw9IElGQV9GX0RFUFJFQ0FURUQ7Ci0JZWxzZSBpZiAoKHByZWZlcmVkX2xmdCA+PSAweDdGRkZGRkZGL0haKSAmJgotCQkgKHByZWZlcmVkX2xmdCAhPSBJTkZJTklUWV9MSUZFX1RJTUUpKQotCQlwcmVmZXJlZF9sZnQgPSAweDdGRkZGRkZGL0haOworCXRpbWVvdXQgPSBhZGRyY29uZl90aW1lb3V0X2ZpeHVwKHByZWZlcmVkX2xmdCwgSFopOworCWlmIChhZGRyY29uZl9maW5pdGVfdGltZW91dCh0aW1lb3V0KSkgeworCQlpZiAodGltZW91dCA9PSAwKQorCQkJaWZhX2ZsYWdzIHw9IElGQV9GX0RFUFJFQ0FURUQ7CisJCXByZWZlcmVkX2xmdCA9IHRpbWVvdXQ7CisJfQogCiAJc3Bpbl9sb2NrX2JoKCZpZnAtPmxvY2spOwogCWlmcC0+ZmxhZ3MgPSAoaWZwLT5mbGFncyAmIH4oSUZBX0ZfREVQUkVDQVRFRCB8IElGQV9GX1BFUk1BTkVOVCB8IElGQV9GX05PREFEIHwgSUZBX0ZfSE9NRUFERFJFU1MpKSB8IGlmYV9mbGFnczsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCmluZGV4IDNjNmFhZmIuLmU4NGIzZmQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FmX2luZXQ2LmMKKysrIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwpAQCAtMTkxLDcgKzE5MSw3IEBACiAJbnAtPm1jYXN0X2hvcHMJPSAtMTsKIAlucC0+bWNfbG9vcAk9IDE7CiAJbnAtPnBtdHVkaXNjCT0gSVBWNl9QTVRVRElTQ19XQU5UOwotCW5wLT5pcHY2b25seQk9IGluaXRfbmV0LmlwdjYuc3lzY3RsLmJpbmR2Nm9ubHk7CisJbnAtPmlwdjZvbmx5CT0gbmV0LT5pcHY2LnN5c2N0bC5iaW5kdjZvbmx5OwogCiAJLyogSW5pdCB0aGUgaXB2NCBwYXJ0IG9mIHRoZSBzb2NrZXQgc2luY2Ugd2UgY2FuIGhhdmUgc29ja2V0cwogCSAqIHVzaW5nIHY2IEFQSSBmb3IgaXB2NC4KZGlmZiAtLWdpdCBhL25ldC9pcHY2L2RhdGFncmFtLmMgYi9uZXQvaXB2Ni9kYXRhZ3JhbS5jCmluZGV4IDk0ZmE2YWUuLjBmMGY5NGEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2RhdGFncmFtLmMKKysrIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwpAQCAtNDk2LDcgKzQ5Niw4IEBACiAJcmV0dXJuIDA7CiB9CiAKLWludCBkYXRhZ3JhbV9zZW5kX2N0bChzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBmbG93aSAqZmwsCitpbnQgZGF0YWdyYW1fc2VuZF9jdGwoc3RydWN0IG5ldCAqbmV0LAorCQkgICAgICBzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBmbG93aSAqZmwsCiAJCSAgICAgIHN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0LAogCQkgICAgICBpbnQgKmhsaW1pdCwgaW50ICp0Y2xhc3MpCiB7CkBAIC01MDksNyArNTEwLDYgQEAKIAogCWZvciAoY21zZyA9IENNU0dfRklSU1RIRFIobXNnKTsgY21zZzsgY21zZyA9IENNU0dfTlhUSERSKG1zZywgY21zZykpIHsKIAkJaW50IGFkZHJfdHlwZTsKLQkJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IE5VTEw7CiAKIAkJaWYgKCFDTVNHX09LKG1zZywgY21zZykpIHsKIAkJCWVyciA9IC1FSU5WQUw7CkBAIC01MjIsNiArNTIyLDkgQEAKIAkJc3dpdGNoIChjbXNnLT5jbXNnX3R5cGUpIHsKIAkJY2FzZSBJUFY2X1BLVElORk86CiAJCWNhc2UgSVBWNl8yMjkyUEtUSU5GTzoKKwkJICAgIHsKKwkJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBOVUxMOworCiAJCQlpZiAoY21zZy0+Y21zZ19sZW4gPCBDTVNHX0xFTihzaXplb2Yoc3RydWN0IGluNl9wa3RpbmZvKSkpIHsKIAkJCQllcnIgPSAtRUlOVkFMOwogCQkJCWdvdG8gZXhpdF9mOwpAQCAtNTM1LDMyICs1MzgsMzIgQEAKIAkJCQlmbC0+b2lmID0gc3JjX2luZm8tPmlwaTZfaWZpbmRleDsKIAkJCX0KIAotCQkJYWRkcl90eXBlID0gaXB2Nl9hZGRyX3R5cGUoJnNyY19pbmZvLT5pcGk2X2FkZHIpOworCQkJYWRkcl90eXBlID0gX19pcHY2X2FkZHJfdHlwZSgmc3JjX2luZm8tPmlwaTZfYWRkcik7CiAKLQkJCWlmIChhZGRyX3R5cGUgPT0gSVBWNl9BRERSX0FOWSkKLQkJCQlicmVhazsKKwkJCWlmIChmbC0+b2lmKSB7CisJCQkJZGV2ID0gZGV2X2dldF9ieV9pbmRleChuZXQsIGZsLT5vaWYpOworCQkJCWlmICghZGV2KQorCQkJCQlyZXR1cm4gLUVOT0RFVjsKKwkJCX0gZWxzZSBpZiAoYWRkcl90eXBlICYgSVBWNl9BRERSX0xJTktMT0NBTCkKKwkJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQkJaWYgKGFkZHJfdHlwZSAmIElQVjZfQUREUl9MSU5LTE9DQUwpIHsKLQkJCQlpZiAoIXNyY19pbmZvLT5pcGk2X2lmaW5kZXgpCi0JCQkJCXJldHVybiAtRUlOVkFMOwotCQkJCWVsc2UgewotCQkJCQlkZXYgPSBkZXZfZ2V0X2J5X2luZGV4KCZpbml0X25ldCwgc3JjX2luZm8tPmlwaTZfaWZpbmRleCk7Ci0JCQkJCWlmICghZGV2KQotCQkJCQkJcmV0dXJuIC1FTk9ERVY7Ci0JCQkJfQorCQkJaWYgKGFkZHJfdHlwZSAhPSBJUFY2X0FERFJfQU5ZKSB7CisJCQkJaW50IHN0cmljdCA9IF9faXB2Nl9hZGRyX3NyY19zY29wZShhZGRyX3R5cGUpIDw9IElQVjZfQUREUl9TQ09QRV9MSU5LTE9DQUw7CisJCQkJaWYgKCFpcHY2X2Noa19hZGRyKG5ldCwgJnNyY19pbmZvLT5pcGk2X2FkZHIsCisJCQkJCQkgICBzdHJpY3QgPyBkZXYgOiBOVUxMLCAwKSkKKwkJCQkJZXJyID0gLUVJTlZBTDsKKwkJCQllbHNlCisJCQkJCWlwdjZfYWRkcl9jb3B5KCZmbC0+Zmw2X3NyYywgJnNyY19pbmZvLT5pcGk2X2FkZHIpOwogCQkJfQotCQkJaWYgKCFpcHY2X2Noa19hZGRyKCZpbml0X25ldCwgJnNyY19pbmZvLT5pcGk2X2FkZHIsCi0JCQkJCSAgIGRldiwgMCkpIHsKLQkJCQlpZiAoZGV2KQotCQkJCQlkZXZfcHV0KGRldik7Ci0JCQkJZXJyID0gLUVJTlZBTDsKLQkJCQlnb3RvIGV4aXRfZjsKLQkJCX0KKwogCQkJaWYgKGRldikKIAkJCQlkZXZfcHV0KGRldik7CiAKLQkJCWlwdjZfYWRkcl9jb3B5KCZmbC0+Zmw2X3NyYywgJnNyY19pbmZvLT5pcGk2X2FkZHIpOworCQkJaWYgKGVycikKKwkJCQlnb3RvIGV4aXRfZjsKKwogCQkJYnJlYWs7CisJCSAgICB9CiAKIAkJY2FzZSBJUFY2X0ZMT1dJTkZPOgogCQkJaWYgKGNtc2ctPmNtc2dfbGVuIDwgQ01TR19MRU4oNCkpIHsKQEAgLTcwMiw2ICs3MDUsMTEgQEAKIAkJCX0KIAogCQkJKmhsaW1pdCA9ICooaW50ICopQ01TR19EQVRBKGNtc2cpOworCQkJaWYgKCpobGltaXQgPCAtMSB8fCAqaGxpbWl0ID4gMHhmZikgeworCQkJCWVyciA9IC1FSU5WQUw7CisJCQkJZ290byBleGl0X2Y7CisJCQl9CisKIAkJCWJyZWFrOwogCiAJCWNhc2UgSVBWNl9UQ0xBU1M6CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9leHRoZHJzLmMgYi9uZXQvaXB2Ni9leHRoZHJzLmMKaW5kZXggM2NkMWM5OS4uZGNmOTRmZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZXh0aGRycy5jCisrKyBiL25ldC9pcHY2L2V4dGhkcnMuYwpAQCAtNDQ1LDcgKzQ0NSw3IEBACiAJCQlrZnJlZV9za2Ioc2tiKTsKIAkJCXJldHVybiAtMTsKIAkJfQotCQlpZiAoIWlwdjZfY2hrX2hvbWVfYWRkcigmaW5pdF9uZXQsIGFkZHIpKSB7CisJCWlmICghaXB2Nl9jaGtfaG9tZV9hZGRyKGRldl9uZXQoc2tiLT5kc3QtPmRldiksIGFkZHIpKSB7CiAJCQlJUDZfSU5DX1NUQVRTX0JIKGlwNl9kc3RfaWRldihza2ItPmRzdCksCiAJCQkJCSBJUFNUQVRTX01JQl9JTkFERFJFUlJPUlMpOwogCQkJa2ZyZWVfc2tiKHNrYik7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMgYi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKaW5kZXggZWI3YTk0MDMuLjM3YTRlNzcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9mbG93bGFiZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMKQEAgLTM1NCw3ICszNTQsNyBAQAogCQltc2cubXNnX2NvbnRyb2wgPSAodm9pZCopKGZsLT5vcHQrMSk7CiAJCWZsb3dpLm9pZiA9IDA7CiAKLQkJZXJyID0gZGF0YWdyYW1fc2VuZF9jdGwoJm1zZywgJmZsb3dpLCBmbC0+b3B0LCAmanVuaywgJmp1bmspOworCQllcnIgPSBkYXRhZ3JhbV9zZW5kX2N0bChuZXQsICZtc2csICZmbG93aSwgZmwtPm9wdCwgJmp1bmssICZqdW5rKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gZG9uZTsKIAkJZXJyID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lwNl9pbnB1dC5jIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKaW5kZXggNGU1Yzg2MS4uMTdlYjQ4YiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2lucHV0LmMKKysrIGIvbmV0L2lwdjYvaXA2X2lucHV0LmMKQEAgLTEwMiw2ICsxMDIsMTUgQEAKIAlpZiAoaGRyLT52ZXJzaW9uICE9IDYpCiAJCWdvdG8gZXJyOwogCisJLyoKKwkgKiBSRkM0MjkxIDIuNS4zCisJICogQSBwYWNrZXQgcmVjZWl2ZWQgb24gYW4gaW50ZXJmYWNlIHdpdGggYSBkZXN0aW5hdGlvbiBhZGRyZXNzCisJICogb2YgbG9vcGJhY2sgbXVzdCBiZSBkcm9wcGVkLgorCSAqLworCWlmICghKGRldi0+ZmxhZ3MgJiBJRkZfTE9PUEJBQ0spICYmCisJICAgIGlwdjZfYWRkcl9sb29wYmFjaygmaGRyLT5kYWRkcikpCisJCWdvdG8gZXJyOworCiAJc2tiLT50cmFuc3BvcnRfaGVhZGVyID0gc2tiLT5uZXR3b3JrX2hlYWRlciArIHNpemVvZigqaGRyKTsKIAlJUDZDQihza2IpLT5uaG9mZiA9IG9mZnNldG9mKHN0cnVjdCBpcHY2aGRyLCBuZXh0aGRyKTsKIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvaXA2bXIuYyBiL25ldC9pcHY2L2lwNm1yLmMKaW5kZXggMmRlM2M0Ni4uMTQ3OTYxOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZtci5jCkBAIC0xOTcsNyArMTk3LDcgQEAKIAkJY29uc3QgY2hhciAqbmFtZSA9IHZpZi0+ZGV2ID8gdmlmLT5kZXYtPm5hbWUgOiAibm9uZSI7CiAKIAkJc2VxX3ByaW50ZihzZXEsCi0JCQkgICAiJTJaZCAlLTEwcyAlOGxkICU3bGQgICU4bGQgJTdsZCAlMDVYXG4iLAorCQkJICAgIiUydGQgJS0xMHMgJThsZCAlN2xkICAlOGxkICU3bGQgJTA1WFxuIiwKIAkJCSAgIHZpZiAtIHZpZjZfdGFibGUsCiAJCQkgICBuYW1lLCB2aWYtPmJ5dGVzX2luLCB2aWYtPnBrdF9pbiwKIAkJCSAgIHZpZi0+Ynl0ZXNfb3V0LCB2aWYtPnBrdF9vdXQsCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMgYi9uZXQvaXB2Ni9pcHY2X3NvY2tnbHVlLmMKaW5kZXggNTZkNTVmZS4uODZlMjhhNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXB2Nl9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY2L2lwdjZfc29ja2dsdWUuYwpAQCAtNjcsNyArNjcsNyBAQAogCiAJLyogUkEgcGFja2V0IG1heSBiZSBkZWxpdmVyZWQgT05MWSB0byBJUFBST1RPX1JBVyBzb2NrZXQgKi8KIAlpZiAoc2stPnNrX3R5cGUgIT0gU09DS19SQVcgfHwgaW5ldF9zayhzayktPm51bSAhPSBJUFBST1RPX1JBVykKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiAtRU5PUFJPVE9PUFQ7CiAKIAluZXdfcmEgPSAoc2VsPj0wKSA/IGttYWxsb2Moc2l6ZW9mKCpuZXdfcmEpLCBHRlBfS0VSTkVMKSA6IE5VTEw7CiAKQEAgLTE2MSw5ICsxNjEsMTcgQEAKIAkJCXN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0OwogCQkJc3RydWN0IHNrX2J1ZmYgKnBrdG9wdDsKIAotCQkJaWYgKHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCAmJgotCQkJICAgIHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUExJVEUgJiYKLQkJCSAgICBzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19UQ1ApCisJCQlpZiAoc2stPnNrX3R5cGUgPT0gU09DS19SQVcpCisJCQkJYnJlYWs7CisKKwkJCWlmIChzay0+c2tfcHJvdG9jb2wgPT0gSVBQUk9UT19VRFAgfHwKKwkJCSAgICBzay0+c2tfcHJvdG9jb2wgPT0gSVBQUk9UT19VRFBMSVRFKSB7CisJCQkJc3RydWN0IHVkcF9zb2NrICp1cCA9IHVkcF9zayhzayk7CisJCQkJaWYgKHVwLT5wZW5kaW5nID09IEFGX0lORVQ2KSB7CisJCQkJCXJldHYgPSAtRUJVU1k7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0gZWxzZSBpZiAoc2stPnNrX3Byb3RvY29sICE9IElQUFJPVE9fVENQKQogCQkJCWJyZWFrOwogCiAJCQlpZiAoc2stPnNrX3N0YXRlICE9IFRDUF9FU1RBQkxJU0hFRCkgewpAQCAtMzM3LDE4ICszNDUsMjEgQEAKIAljYXNlIElQVjZfRFNUT1BUUzoKIAl7CiAJCXN0cnVjdCBpcHY2X3R4b3B0aW9ucyAqb3B0OworCisJCS8qIHJlbW92ZSBhbnkgc3RpY2t5IG9wdGlvbnMgaGVhZGVyIHdpdGggYSB6ZXJvIG9wdGlvbgorCQkgKiBsZW5ndGgsIHBlciBSRkMzNTQyLgorCQkgKi8KIAkJaWYgKG9wdGxlbiA9PSAwKQogCQkJb3B0dmFsID0gTlVMTDsKKwkJZWxzZSBpZiAob3B0bGVuIDwgc2l6ZW9mKHN0cnVjdCBpcHY2X29wdF9oZHIpIHx8CisJCQkgb3B0bGVuICYgMHg3IHx8IG9wdGxlbiA+IDggKiAyNTUpCisJCQlnb3RvIGVfaW52YWw7CiAKIAkJLyogaG9wLWJ5LWhvcCAvIGRlc3RpbmF0aW9uIG9wdGlvbnMgYXJlIHByaXZpbGVnZWQgb3B0aW9uICovCiAJCXJldHYgPSAtRVBFUk07CiAJCWlmIChvcHRuYW1lICE9IElQVjZfUlRIRFIgJiYgIWNhcGFibGUoQ0FQX05FVF9SQVcpKQogCQkJYnJlYWs7CiAKLQkJaWYgKG9wdGxlbiA8IHNpemVvZihzdHJ1Y3QgaXB2Nl9vcHRfaGRyKSB8fAotCQkgICAgb3B0bGVuICYgMHg3IHx8IG9wdGxlbiA+IDggKiAyNTUpCi0JCQlnb3RvIGVfaW52YWw7Ci0KIAkJb3B0ID0gaXB2Nl9yZW5ld19vcHRpb25zKHNrLCBucC0+b3B0LCBvcHRuYW1lLAogCQkJCQkgKHN0cnVjdCBpcHY2X29wdF9oZHIgX191c2VyICopb3B0dmFsLAogCQkJCQkgb3B0bGVuKTsKQEAgLTQxNiw3ICs0MjcsNyBAQAogCQltc2cubXNnX2NvbnRyb2xsZW4gPSBvcHRsZW47CiAJCW1zZy5tc2dfY29udHJvbCA9ICh2b2lkKikob3B0KzEpOwogCi0JCXJldHYgPSBkYXRhZ3JhbV9zZW5kX2N0bCgmbXNnLCAmZmwsIG9wdCwgJmp1bmssICZqdW5rKTsKKwkJcmV0diA9IGRhdGFncmFtX3NlbmRfY3RsKG5ldCwgJm1zZywgJmZsLCBvcHQsICZqdW5rLCAmanVuayk7CiAJCWlmIChyZXR2KQogCQkJZ290byBkb25lOwogdXBkYXRlOgpAQCAtNDM4LDcgKzQ0OSw3IEBACiAKIAljYXNlIElQVjZfTVVMVElDQVNUX0hPUFM6CiAJCWlmIChzay0+c2tfdHlwZSA9PSBTT0NLX1NUUkVBTSkKLQkJCWdvdG8gZV9pbnZhbDsKKwkJCWJyZWFrOwogCQlpZiAob3B0bGVuIDwgc2l6ZW9mKGludCkpCiAJCQlnb3RvIGVfaW52YWw7CiAJCWlmICh2YWwgPiAyNTUgfHwgdmFsIDwgLTEpCkBAIC00NTAsMTMgKzQ2MSwxNSBAQAogCWNhc2UgSVBWNl9NVUxUSUNBU1RfTE9PUDoKIAkJaWYgKG9wdGxlbiA8IHNpemVvZihpbnQpKQogCQkJZ290byBlX2ludmFsOworCQlpZiAodmFsICE9IHZhbGJvb2wpCisJCQlnb3RvIGVfaW52YWw7CiAJCW5wLT5tY19sb29wID0gdmFsYm9vbDsKIAkJcmV0diA9IDA7CiAJCWJyZWFrOwogCiAJY2FzZSBJUFY2X01VTFRJQ0FTVF9JRjoKIAkJaWYgKHNrLT5za190eXBlID09IFNPQ0tfU1RSRUFNKQotCQkJZ290byBlX2ludmFsOworCQkJYnJlYWs7CiAJCWlmIChvcHRsZW4gPCBzaXplb2YoaW50KSkKIAkJCWdvdG8gZV9pbnZhbDsKIApAQCAtODMyLDcgKzg0NSw3IEBACiAJbGVuID0gbWluX3QodW5zaWduZWQgaW50LCBsZW4sIGlwdjZfb3B0bGVuKGhkcikpOwogCWlmIChjb3B5X3RvX3VzZXIob3B0dmFsLCBoZHIsIGxlbikpCiAJCXJldHVybiAtRUZBVUxUOwotCXJldHVybiBpcHY2X29wdGxlbihoZHIpOworCXJldHVybiBsZW47CiB9CiAKIHN0YXRpYyBpbnQgZG9faXB2Nl9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKQEAgLTg1Miw3ICs4NjUsNyBAQAogCQlpZiAoc2stPnNrX3Byb3RvY29sICE9IElQUFJPVE9fVURQICYmCiAJCSAgICBzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19VRFBMSVRFICYmCiAJCSAgICBzay0+c2tfcHJvdG9jb2wgIT0gSVBQUk9UT19UQ1ApCi0JCQlyZXR1cm4gLUVJTlZBTDsKKwkJCXJldHVybiAtRU5PUFJPVE9PUFQ7CiAJCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKQogCQkJcmV0dXJuIC1FTk9UQ09OTjsKIAkJdmFsID0gc2stPnNrX2ZhbWlseTsKQEAgLTg2Niw2ICs4NzksOCBAQAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmZ3NmLCBvcHR2YWwsIEdST1VQX0ZJTFRFUl9TSVpFKDApKSkKIAkJCXJldHVybiAtRUZBVUxUOworCQlpZiAoZ3NmLmdmX2dyb3VwLnNzX2ZhbWlseSAhPSBBRl9JTkVUNikKKwkJCXJldHVybiAtRUFERFJOT1RBVkFJTDsKIAkJbG9ja19zb2NrKHNrKTsKIAkJZXJyID0gaXA2X21jX21zZmdldChzaywgJmdzZiwKIAkJCShzdHJ1Y3QgZ3JvdXBfZmlsdGVyIF9fdXNlciAqKW9wdHZhbCwgb3B0bGVuKTsKQEAgLTk3NSw2ICs5OTAsOSBAQAogCQlsZW4gPSBpcHY2X2dldHNvY2tvcHRfc3RpY2t5KHNrLCBucC0+b3B0LAogCQkJCQkgICAgIG9wdG5hbWUsIG9wdHZhbCwgbGVuKTsKIAkJcmVsZWFzZV9zb2NrKHNrKTsKKwkJLyogY2hlY2sgaWYgaXB2Nl9nZXRzb2Nrb3B0X3N0aWNreSgpIHJldHVybnMgZXJyIGNvZGUgKi8KKwkJaWYgKGxlbiA8IDApCisJCQlyZXR1cm4gbGVuOwogCQlyZXR1cm4gcHV0X3VzZXIobGVuLCBvcHRsZW4pOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNnRhYmxlX21hbmdsZS5jIGIvbmV0L2lwdjYvbmV0ZmlsdGVyL2lwNnRhYmxlX21hbmdsZS5jCmluZGV4IDI3YTVlOGIuLmY0MDVjZWEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L25ldGZpbHRlci9pcDZ0YWJsZV9tYW5nbGUuYworKysgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvaXA2dGFibGVfbWFuZ2xlLmMKQEAgLTEyOSw3ICsxMjksNyBAQAogCQkucHJpb3JpdHkJPSBORl9JUDZfUFJJX01BTkdMRSwKIAl9LAogCXsKLQkJLmhvb2sJCT0gaXA2dF9sb2NhbF9ob29rLAorCQkuaG9vawkJPSBpcDZ0X3JvdXRlX2hvb2ssCiAJCS5vd25lcgkJPSBUSElTX01PRFVMRSwKIAkJLnBmCQk9IFBGX0lORVQ2LAogCQkuaG9va251bQk9IE5GX0lORVRfTE9DQUxfSU4sCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMgYi9uZXQvaXB2Ni9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3JlYXNtLmMKaW5kZXggMmRjY2FkNC4uY2YyMGJjNCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19yZWFzbS5jCisrKyBiL25ldC9pcHY2L25ldGZpbHRlci9uZl9jb25udHJhY2tfcmVhc20uYwpAQCAtMjA3LDkgKzIwNywxMiBAQAogCWFyZy5pZCA9IGlkOwogCWFyZy5zcmMgPSBzcmM7CiAJYXJnLmRzdCA9IGRzdDsKKworCXJlYWRfbG9ja19iaCgmbmZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwNnFoYXNoZm4oaWQsIHNyYywgZHN0KTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmZfaW5pdF9mcmFncywgJm5mX2ZyYWdzLCAmYXJnLCBoYXNoKTsKKwlsb2NhbF9iaF9lbmFibGUoKTsKIAlpZiAocSA9PSBOVUxMKQogCQlnb3RvIG9vbTsKIApAQCAtNjM4LDEwICs2NDEsMTAgQEAKIAkJZ290byByZXRfb3JpZzsKIAl9CiAKLQlzcGluX2xvY2soJmZxLT5xLmxvY2spOworCXNwaW5fbG9ja19iaCgmZnEtPnEubG9jayk7CiAKIAlpZiAobmZfY3RfZnJhZzZfcXVldWUoZnEsIGNsb25lLCBmaGRyLCBuaG9mZikgPCAwKSB7Ci0JCXNwaW5fdW5sb2NrKCZmcS0+cS5sb2NrKTsKKwkJc3Bpbl91bmxvY2tfYmgoJmZxLT5xLmxvY2spOwogCQlwcl9kZWJ1ZygiQ2FuJ3QgaW5zZXJ0IHNrYiB0byBxdWV1ZVxuIik7CiAJCWZxX3B1dChmcSk7CiAJCWdvdG8gcmV0X29yaWc7CkBAIC02NTMsNyArNjU2LDcgQEAKIAkJaWYgKHJldF9za2IgPT0gTlVMTCkKIAkJCXByX2RlYnVnKCJDYW4ndCByZWFzc2VtYmxlIGZyYWdtZW50ZWQgcGFja2V0c1xuIik7CiAJfQotCXNwaW5fdW5sb2NrKCZmcS0+cS5sb2NrKTsKKwlzcGluX3VubG9ja19iaCgmZnEtPnEubG9jayk7CiAKIAlmcV9wdXQoZnEpOwogCXJldHVybiByZXRfc2tiOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcmF3LmMgYi9uZXQvaXB2Ni9yYXcuYwppbmRleCAyMzJlMGRjLi4zYWVlMTIzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yYXcuYworKysgYi9uZXQvaXB2Ni9yYXcuYwpAQCAtODEzLDcgKzgxMyw3IEBACiAJCW1lbXNldChvcHQsIDAsIHNpemVvZihzdHJ1Y3QgaXB2Nl90eG9wdGlvbnMpKTsKIAkJb3B0LT50b3RfbGVuID0gc2l6ZW9mKHN0cnVjdCBpcHY2X3R4b3B0aW9ucyk7CiAKLQkJZXJyID0gZGF0YWdyYW1fc2VuZF9jdGwobXNnLCAmZmwsIG9wdCwgJmhsaW1pdCwgJnRjbGFzcyk7CisJCWVyciA9IGRhdGFncmFtX3NlbmRfY3RsKHNvY2tfbmV0KHNrKSwgbXNnLCAmZmwsIG9wdCwgJmhsaW1pdCwgJnRjbGFzcyk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQlmbDZfc29ja19yZWxlYXNlKGZsb3dsYWJlbCk7CiAJCQlyZXR1cm4gZXJyOwpAQCAtMTE2NCw2ICsxMTY0LDE1IEBACiAJc2tfY29tbW9uX3JlbGVhc2Uoc2spOwogfQogCitzdGF0aWMgaW50IHJhdzZfZGVzdHJveShzdHJ1Y3Qgc29jayAqc2spCit7CisJbG9ja19zb2NrKHNrKTsKKwlpcDZfZmx1c2hfcGVuZGluZ19mcmFtZXMoc2spOworCXJlbGVhc2Vfc29jayhzayk7CisKKwlyZXR1cm4gaW5ldDZfZGVzdHJveV9zb2NrKHNrKTsKK30KKwogc3RhdGljIGludCByYXd2Nl9pbml0X3NrKHN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgcmF3Nl9zb2NrICpycCA9IHJhdzZfc2soc2spOwpAQCAtMTE4NywxMSArMTE5NiwxMSBAQAogCS5uYW1lCQkgICA9ICJSQVd2NiIsCiAJLm93bmVyCQkgICA9IFRISVNfTU9EVUxFLAogCS5jbG9zZQkJICAgPSByYXd2Nl9jbG9zZSwKKwkuZGVzdHJveQkgICA9IHJhdzZfZGVzdHJveSwKIAkuY29ubmVjdAkgICA9IGlwNl9kYXRhZ3JhbV9jb25uZWN0LAogCS5kaXNjb25uZWN0CSAgID0gdWRwX2Rpc2Nvbm5lY3QsCiAJLmlvY3RsCQkgICA9IHJhd3Y2X2lvY3RsLAogCS5pbml0CQkgICA9IHJhd3Y2X2luaXRfc2ssCi0JLmRlc3Ryb3kJICAgPSBpbmV0Nl9kZXN0cm95X3NvY2ssCiAJLnNldHNvY2tvcHQJICAgPSByYXd2Nl9zZXRzb2Nrb3B0LAogCS5nZXRzb2Nrb3B0CSAgID0gcmF3djZfZ2V0c29ja29wdCwKIAkuc2VuZG1zZwkgICA9IHJhd3Y2X3NlbmRtc2csCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMgYi9uZXQvaXB2Ni9yZWFzc2VtYmx5LmMKaW5kZXggNzk4Y2FiYy4uYTYwZDdkMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcmVhc3NlbWJseS5jCisrKyBiL25ldC9pcHY2L3JlYXNzZW1ibHkuYwpAQCAtMjQ3LDYgKzI0Nyw4IEBACiAJYXJnLmlkID0gaWQ7CiAJYXJnLnNyYyA9IHNyYzsKIAlhcmcuZHN0ID0gZHN0OworCisJcmVhZF9sb2NrKCZpcDZfZnJhZ3MubG9jayk7CiAJaGFzaCA9IGlwNnFoYXNoZm4oaWQsIHNyYywgZHN0KTsKIAogCXEgPSBpbmV0X2ZyYWdfZmluZCgmbmV0LT5pcHY2LmZyYWdzLCAmaXA2X2ZyYWdzLCAmYXJnLCBoYXNoKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3JvdXRlLmMgYi9uZXQvaXB2Ni9yb3V0ZS5jCmluZGV4IDQ4NTM0YzYuLjdmZjY4NzAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtMjQwLDcgKzI0MCw3IEBACiBzdGF0aWMgaW5saW5lIHN0cnVjdCBydDZfaW5mbyAqcnQ2X2RldmljZV9tYXRjaChzdHJ1Y3QgbmV0ICpuZXQsCiAJCQkJCQkgICAgc3RydWN0IHJ0Nl9pbmZvICpydCwKIAkJCQkJCSAgICBpbnQgb2lmLAotCQkJCQkJICAgIGludCBzdHJpY3QpCisJCQkJCQkgICAgaW50IGZsYWdzKQogewogCXN0cnVjdCBydDZfaW5mbyAqbG9jYWwgPSBOVUxMOwogCXN0cnVjdCBydDZfaW5mbyAqc3BydDsKQEAgLTI1Myw3ICsyNTMsNyBAQAogCQkJaWYgKGRldi0+ZmxhZ3MgJiBJRkZfTE9PUEJBQ0spIHsKIAkJCQlpZiAoc3BydC0+cnQ2aV9pZGV2ID09IE5VTEwgfHwKIAkJCQkgICAgc3BydC0+cnQ2aV9pZGV2LT5kZXYtPmlmaW5kZXggIT0gb2lmKSB7Ci0JCQkJCWlmIChzdHJpY3QgJiYgb2lmKQorCQkJCQlpZiAoZmxhZ3MgJiBSVDZfTE9PS1VQX0ZfSUZBQ0UgJiYgb2lmKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlmIChsb2NhbCAmJiAoIW9pZiB8fAogCQkJCQkJICAgICAgbG9jYWwtPnJ0NmlfaWRldi0+ZGV2LT5pZmluZGV4ID09IG9pZikpCkBAIC0yNjYsNyArMjY2LDcgQEAKIAkJaWYgKGxvY2FsKQogCQkJcmV0dXJuIGxvY2FsOwogCi0JCWlmIChzdHJpY3QpCisJCWlmIChmbGFncyAmIFJUNl9MT09LVVBfRl9JRkFDRSkKIAkJCXJldHVybiBuZXQtPmlwdjYuaXA2X251bGxfZW50cnk7CiAJfQogCXJldHVybiBydDsKQEAgLTQ0Niw3ICs0NDYsNyBAQAogCXN0cnVjdCByb3V0ZV9pbmZvICpyaW5mbyA9IChzdHJ1Y3Qgcm91dGVfaW5mbyAqKSBvcHQ7CiAJc3RydWN0IGluNl9hZGRyIHByZWZpeF9idWYsICpwcmVmaXg7CiAJdW5zaWduZWQgaW50IHByZWY7Ci0JdTMyIGxpZmV0aW1lOworCXVuc2lnbmVkIGxvbmcgbGlmZXRpbWU7CiAJc3RydWN0IHJ0Nl9pbmZvICpydDsKIAogCWlmIChsZW4gPCBzaXplb2Yoc3RydWN0IHJvdXRlX2luZm8pKSB7CkBAIC00NzIsMTMgKzQ3Miw3IEBACiAJaWYgKHByZWYgPT0gSUNNUFY2X1JPVVRFUl9QUkVGX0lOVkFMSUQpCiAJCXByZWYgPSBJQ01QVjZfUk9VVEVSX1BSRUZfTUVESVVNOwogCi0JbGlmZXRpbWUgPSBudG9obChyaW5mby0+bGlmZXRpbWUpOwotCWlmIChsaWZldGltZSA9PSAweGZmZmZmZmZmKSB7Ci0JCS8qIGluZmluaXR5ICovCi0JfSBlbHNlIGlmIChsaWZldGltZSA+IDB4N2ZmZmZmZmYvSFogLSAxKSB7Ci0JCS8qIEF2b2lkIGFyaXRobWV0aWMgb3ZlcmZsb3cgKi8KLQkJbGlmZXRpbWUgPSAweDdmZmZmZmZmL0haIC0gMTsKLQl9CisJbGlmZXRpbWUgPSBhZGRyY29uZl90aW1lb3V0X2ZpeHVwKG50b2hsKHJpbmZvLT5saWZldGltZSksIEhaKTsKIAogCWlmIChyaW5mby0+bGVuZ3RoID09IDMpCiAJCXByZWZpeCA9IChzdHJ1Y3QgaW42X2FkZHIgKilyaW5mby0+cHJlZml4OwpAQCAtNTA2LDcgKzUwMCw3IEBACiAJCQkJIChydC0+cnQ2aV9mbGFncyAmIH5SVEZfUFJFRl9NQVNLKSB8IFJURl9QUkVGKHByZWYpOwogCiAJaWYgKHJ0KSB7Ci0JCWlmIChsaWZldGltZSA9PSAweGZmZmZmZmZmKSB7CisJCWlmICghYWRkcmNvbmZfZmluaXRlX3RpbWVvdXQobGlmZXRpbWUpKSB7CiAJCQlydC0+cnQ2aV9mbGFncyAmPSB+UlRGX0VYUElSRVM7CiAJCX0gZWxzZSB7CiAJCQlydC0+cnQ2aV9leHBpcmVzID0gamlmZmllcyArIEhaICogbGlmZXRpbWU7CkBAIC0yMjAyLDggKzIxOTYsMTIgQEAKIAogCU5MQV9QVVRfVTMyKHNrYiwgUlRBX1BSSU9SSVRZLCBydC0+cnQ2aV9tZXRyaWMpOwogCi0JZXhwaXJlcyA9IChydC0+cnQ2aV9mbGFncyAmIFJURl9FWFBJUkVTKSA/Ci0JCQlydC0+cnQ2aV9leHBpcmVzIC0gamlmZmllcyA6IDA7CisJaWYgKCEocnQtPnJ0NmlfZmxhZ3MgJiBSVEZfRVhQSVJFUykpCisJCWV4cGlyZXMgPSAwOworCWVsc2UgaWYgKHJ0LT5ydDZpX2V4cGlyZXMgLSBqaWZmaWVzIDwgSU5UX01BWCkKKwkJZXhwaXJlcyA9IHJ0LT5ydDZpX2V4cGlyZXMgLSBqaWZmaWVzOworCWVsc2UKKwkJZXhwaXJlcyA9IElOVF9NQVg7CiAKIAlpZiAocnRubF9wdXRfY2FjaGVpbmZvKHNrYiwgJnJ0LT51LmRzdCwgMCwgMCwgMCwKIAkJCSAgICAgICBleHBpcmVzLCBydC0+dS5kc3QuZXJyb3IpIDwgMCkKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3NpdC5jIGIvbmV0L2lwdjYvc2l0LmMKaW5kZXggM2RlNmZmZC4uMzJlODcxYSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc2l0LmMKKysrIGIvbmV0L2lwdjYvc2l0LmMKQEAgLTIyMiwxNSArMjIyLDE4IEBACiAKIH0KIAotc3RhdGljIGludCBpcGlwNl90dW5uZWxfZ2V0X3BybChzdHJ1Y3QgaXBfdHVubmVsICp0LCBzdHJ1Y3QgaXBfdHVubmVsX3BybCAqYSkKK3N0YXRpYyBpbnQgaXBpcDZfdHVubmVsX2dldF9wcmwoc3RydWN0IGlwX3R1bm5lbCAqdCwKKwkJCQlzdHJ1Y3QgaXBfdHVubmVsX3BybCBfX3VzZXIgKmEpCiB7Ci0Jc3RydWN0IGlwX3R1bm5lbF9wcmwgKmtwOworCXN0cnVjdCBpcF90dW5uZWxfcHJsIGtwcmwsICprcDsKIAlzdHJ1Y3QgaXBfdHVubmVsX3BybF9lbnRyeSAqcHJsOwogCXVuc2lnbmVkIGludCBjbWF4LCBjID0gMCwgY2EsIGxlbjsKIAlpbnQgcmV0ID0gMDsKIAotCWNtYXggPSBhLT5kYXRhbGVuIC8gc2l6ZW9mKCphKTsKLQlpZiAoY21heCA+IDEgJiYgYS0+YWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSkKKwlpZiAoY29weV9mcm9tX3VzZXIoJmtwcmwsIGEsIHNpemVvZihrcHJsKSkpCisJCXJldHVybiAtRUZBVUxUOworCWNtYXggPSBrcHJsLmRhdGFsZW4gLyBzaXplb2Yoa3BybCk7CisJaWYgKGNtYXggPiAxICYmIGtwcmwuYWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSkKIAkJY21heCA9IDE7CiAKIAkvKiBGb3Igc2ltcGxlIEdFVCBvciBmb3Igcm9vdCB1c2VycywKQEAgLTI2MSwyNiArMjY0LDI1IEBACiAJZm9yIChwcmwgPSB0LT5wcmw7IHBybDsgcHJsID0gcHJsLT5uZXh0KSB7CiAJCWlmIChjID4gY21heCkKIAkJCWJyZWFrOwotCQlpZiAoYS0+YWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSAmJiBwcmwtPmFkZHIgIT0gYS0+YWRkcikKKwkJaWYgKGtwcmwuYWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSAmJiBwcmwtPmFkZHIgIT0ga3BybC5hZGRyKQogCQkJY29udGludWU7CiAJCWtwW2NdLmFkZHIgPSBwcmwtPmFkZHI7CiAJCWtwW2NdLmZsYWdzID0gcHJsLT5mbGFnczsKIAkJYysrOwotCQlpZiAoYS0+YWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSkKKwkJaWYgKGtwcmwuYWRkciAhPSBodG9ubChJTkFERFJfQU5ZKSkKIAkJCWJyZWFrOwogCX0KIG91dDoKIAlyZWFkX3VubG9jaygmaXBpcDZfbG9jayk7CiAKIAlsZW4gPSBzaXplb2YoKmtwKSAqIGM7Ci0JcmV0ID0gbGVuID8gY29weV90b191c2VyKGEtPmRhdGEsIGtwLCBsZW4pIDogMDsKKwlyZXQgPSAwOworCWlmICgobGVuICYmIGNvcHlfdG9fdXNlcihhICsgMSwga3AsIGxlbikpIHx8IHB1dF91c2VyKGxlbiwgJmEtPmRhdGFsZW4pKQorCQlyZXQgPSAtRUZBVUxUOwogCiAJa2ZyZWUoa3ApOwotCWlmIChyZXQpCi0JCXJldHVybiAtRUZBVUxUOwogCi0JYS0+ZGF0YWxlbiA9IGxlbjsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gcmV0OwogfQogCiBzdGF0aWMgaW50CkBAIC04NzMsMTEgKzg3NSwyMCBAQAogCQlicmVhazsKIAogCWNhc2UgU0lPQ0dFVFBSTDoKKwkJZXJyID0gLUVJTlZBTDsKKwkJaWYgKGRldiA9PSBzaXRuLT5mYl90dW5uZWxfZGV2KQorCQkJZ290byBkb25lOworCQllcnIgPSAtRU5PRU5UOworCQlpZiAoISh0ID0gbmV0ZGV2X3ByaXYoZGV2KSkpCisJCQlnb3RvIGRvbmU7CisJCWVyciA9IGlwaXA2X3R1bm5lbF9nZXRfcHJsKHQsIGlmci0+aWZyX2lmcnUuaWZydV9kYXRhKTsKKwkJYnJlYWs7CisKIAljYXNlIFNJT0NBRERQUkw6CiAJY2FzZSBTSU9DREVMUFJMOgogCWNhc2UgU0lPQ0NIR1BSTDoKIAkJZXJyID0gLUVQRVJNOwotCQlpZiAoY21kICE9IFNJT0NHRVRQUkwgJiYgIWNhcGFibGUoQ0FQX05FVF9BRE1JTikpCisJCWlmICghY2FwYWJsZShDQVBfTkVUX0FETUlOKSkKIAkJCWdvdG8gZG9uZTsKIAkJZXJyID0gLUVJTlZBTDsKIAkJaWYgKGRldiA9PSBzaXRuLT5mYl90dW5uZWxfZGV2KQpAQCAtODkwLDEyICs5MDEsNiBAQAogCQkJZ290byBkb25lOwogCiAJCXN3aXRjaCAoY21kKSB7Ci0JCWNhc2UgU0lPQ0dFVFBSTDoKLQkJCWVyciA9IGlwaXA2X3R1bm5lbF9nZXRfcHJsKHQsICZwcmwpOwotCQkJaWYgKCFlcnIgJiYgY29weV90b191c2VyKGlmci0+aWZyX2lmcnUuaWZydV9kYXRhLAotCQkJCQkJICZwcmwsIHNpemVvZihwcmwpKSkKLQkJCQllcnIgPSAtRUZBVUxUOwotCQkJYnJlYWs7CiAJCWNhc2UgU0lPQ0RFTFBSTDoKIAkJCWVyciA9IGlwaXA2X3R1bm5lbF9kZWxfcHJsKHQsICZwcmwpOwogCQkJYnJlYWs7CkBAIC05MDQsOCArOTA5LDcgQEAKIAkJCWVyciA9IGlwaXA2X3R1bm5lbF9hZGRfcHJsKHQsICZwcmwsIGNtZCA9PSBTSU9DQ0hHUFJMKTsKIAkJCWJyZWFrOwogCQl9Ci0JCWlmIChjbWQgIT0gU0lPQ0dFVFBSTCkKLQkJCW5ldGRldl9zdGF0ZV9jaGFuZ2UoZGV2KTsKKwkJbmV0ZGV2X3N0YXRlX2NoYW5nZShkZXYpOwogCQlicmVhazsKIAogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9zeW5jb29raWVzLmMgYi9uZXQvaXB2Ni9zeW5jb29raWVzLmMKaW5kZXggOTM4Y2U0ZS4uM2VjYzExNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvc3luY29va2llcy5jCisrKyBiL25ldC9pcHY2L3N5bmNvb2tpZXMuYwpAQCAtMTk4LDcgKzE5OCw2IEBACiAJaXJlcSA9IGluZXRfcnNrKHJlcSk7CiAJaXJlcTYgPSBpbmV0Nl9yc2socmVxKTsKIAl0cmVxID0gdGNwX3JzayhyZXEpOwotCWlyZXE2LT5wa3RvcHRzID0gTlVMTDsKIAogCWlmIChzZWN1cml0eV9pbmV0X2Nvbm5fcmVxdWVzdChzaywgc2tiLCByZXEpKSB7CiAJCXJlcXNrX2ZyZWUocmVxKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDcxNTk2NWYuLjQwZWE5YzMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3RjcF9pcHY2LmMKKysrIGIvbmV0L2lwdjYvdGNwX2lwdjYuYwpAQCAtMTI5OSw3ICsxMjk5LDYgQEAKIAl0cmVxID0gaW5ldDZfcnNrKHJlcSk7CiAJaXB2Nl9hZGRyX2NvcHkoJnRyZXEtPnJtdF9hZGRyLCAmaXB2Nl9oZHIoc2tiKS0+c2FkZHIpOwogCWlwdjZfYWRkcl9jb3B5KCZ0cmVxLT5sb2NfYWRkciwgJmlwdjZfaGRyKHNrYiktPmRhZGRyKTsKLQl0cmVxLT5wa3RvcHRzID0gTlVMTDsKIAlpZiAoIXdhbnRfY29va2llKQogCQlUQ1BfRUNOX2NyZWF0ZV9yZXF1ZXN0KHJlcSwgdGNwX2hkcihza2IpKTsKIApAQCAtMjAzNyw3ICsyMDM2LDcgQEAKIAogCXNlcV9wcmludGYoc2VxLAogCQkgICAiJTRkOiAlMDhYJTA4WCUwOFglMDhYOiUwNFggJTA4WCUwOFglMDhYJTA4WDolMDRYICIKLQkJICAgIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAldSAldSAldSAldSAlZFxuIiwKKwkJICAgIiUwMlggJTA4WDolMDhYICUwMlg6JTA4bFggJTA4WCAlNWQgJThkICVsdSAlZCAlcCAlbHUgJWx1ICV1ICV1ICVkXG4iLAogCQkgICBpLAogCQkgICBzcmMtPnM2X2FkZHIzMlswXSwgc3JjLT5zNl9hZGRyMzJbMV0sCiAJCSAgIHNyYy0+czZfYWRkcjMyWzJdLCBzcmMtPnM2X2FkZHIzMlszXSwgc3JjcCwKQEAgLTIwNTMsOCArMjA1Miw4IEBACiAJCSAgIGljc2stPmljc2tfcHJvYmVzX291dCwKIAkJICAgc29ja19pX2lubyhzcCksCiAJCSAgIGF0b21pY19yZWFkKCZzcC0+c2tfcmVmY250KSwgc3AsCi0JCSAgIGljc2stPmljc2tfcnRvLAotCQkgICBpY3NrLT5pY3NrX2Fjay5hdG8sCisJCSAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLT5pY3NrX3J0byksCisJCSAgIGppZmZpZXNfdG9fY2xvY2tfdChpY3NrLT5pY3NrX2Fjay5hdG8pLAogCQkgICAoaWNzay0+aWNza19hY2sucXVpY2sgPDwgMSApIHwgaWNzay0+aWNza19hY2sucGluZ3BvbmcsCiAJCSAgIHRwLT5zbmRfY3duZCwgdHAtPnNuZF9zc3RocmVzaD49MHhGRkZGPy0xOnRwLT5zbmRfc3N0aHJlc2gKIAkJICAgKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY2L3R1bm5lbDYuYyBiL25ldC9pcHY2L3R1bm5lbDYuYwppbmRleCA2MzIzOTIxLi42NjlmMjgwIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90dW5uZWw2LmMKKysrIGIvbmV0L2lwdjYvdHVubmVsNi5jCkBAIC0xMDksNyArMTA5LDcgQEAKIHsKIAlzdHJ1Y3QgeGZybTZfdHVubmVsICpoYW5kbGVyOwogCi0JaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCisJaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgc2l6ZW9mKHN0cnVjdCBpcGhkcikpKQogCQlnb3RvIGRyb3A7CiAKIAlmb3IgKGhhbmRsZXIgPSB0dW5uZWw0Nl9oYW5kbGVyczsgaGFuZGxlcjsgaGFuZGxlciA9IGhhbmRsZXItPm5leHQpCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni91ZHAuYyBiL25ldC9pcHY2L3VkcC5jCmluZGV4IDFmZDc4NGYuLmRkMzA5NjIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3VkcC5jCisrKyBiL25ldC9pcHY2L3VkcC5jCkBAIC01MzQsNyArNTM0LDkgQEAKIHsKIAlzdHJ1Y3QgdWRwX3NvY2sgKnVwID0gdWRwX3NrKHNrKTsKIAotCWlmICh1cC0+cGVuZGluZykgeworCWlmICh1cC0+cGVuZGluZyA9PSBBRl9JTkVUKQorCQl1ZHBfZmx1c2hfcGVuZGluZ19mcmFtZXMoc2spOworCWVsc2UgaWYgKHVwLT5wZW5kaW5nKSB7CiAJCXVwLT5sZW4gPSAwOwogCQl1cC0+cGVuZGluZyA9IDA7CiAJCWlwNl9mbHVzaF9wZW5kaW5nX2ZyYW1lcyhzayk7CkBAIC03MzEsNyArNzMzLDcgQEAKIAkJbWVtc2V0KG9wdCwgMCwgc2l6ZW9mKHN0cnVjdCBpcHY2X3R4b3B0aW9ucykpOwogCQlvcHQtPnRvdF9sZW4gPSBzaXplb2YoKm9wdCk7CiAKLQkJZXJyID0gZGF0YWdyYW1fc2VuZF9jdGwobXNnLCAmZmwsIG9wdCwgJmhsaW1pdCwgJnRjbGFzcyk7CisJCWVyciA9IGRhdGFncmFtX3NlbmRfY3RsKHNvY2tfbmV0KHNrKSwgbXNnLCAmZmwsIG9wdCwgJmhsaW1pdCwgJnRjbGFzcyk7CiAJCWlmIChlcnIgPCAwKSB7CiAJCQlmbDZfc29ja19yZWxlYXNlKGZsb3dsYWJlbCk7CiAJCQlyZXR1cm4gZXJyOwpAQCAtODQ4LDEyICs4NTAsMTQgQEAKIAkJfSBlbHNlIHsKIAkJCWRzdF9yZWxlYXNlKGRzdCk7CiAJCX0KKwkJZHN0ID0gTlVMTDsKIAl9CiAKIAlpZiAoZXJyID4gMCkKIAkJZXJyID0gbnAtPnJlY3ZlcnIgPyBuZXRfeG1pdF9lcnJubyhlcnIpIDogMDsKIAlyZWxlYXNlX3NvY2soc2spOwogb3V0OgorCWRzdF9yZWxlYXNlKGRzdCk7CiAJZmw2X3NvY2tfcmVsZWFzZShmbG93bGFiZWwpOwogCWlmICghZXJyKQogCQlyZXR1cm4gbGVuOwpkaWZmIC0tZ2l0IGEvbmV0L2lyZGEvYWZfaXJkYS5jIGIvbmV0L2lyZGEvYWZfaXJkYS5jCmluZGV4IGFlNTRiMjAuLjNlYjViY2MgMTAwNjQ0Ci0tLSBhL25ldC9pcmRhL2FmX2lyZGEuYworKysgYi9uZXQvaXJkYS9hZl9pcmRhLmMKQEAgLTEwOTMsMTEgKzEwOTMsNiBAQAogCiAJaW5pdF93YWl0cXVldWVfaGVhZCgmc2VsZi0+cXVlcnlfd2FpdCk7CiAKLQkvKiBJbml0aWFsaXNlIG5ldHdvcmtpbmcgc29ja2V0IHN0cnVjdCAqLwotCXNvY2tfaW5pdF9kYXRhKHNvY2ssIHNrKTsJLyogTm90ZSA6IHNldCBzay0+c2tfcmVmY250IHRvIDEgKi8KLQlzay0+c2tfZmFtaWx5ID0gUEZfSVJEQTsKLQlzay0+c2tfcHJvdG9jb2wgPSBwcm90b2NvbDsKLQogCXN3aXRjaCAoc29jay0+dHlwZSkgewogCWNhc2UgU09DS19TVFJFQU06CiAJCXNvY2stPm9wcyA9ICZpcmRhX3N0cmVhbV9vcHM7CkBAIC0xMTI0LDEzICsxMTE5LDIwIEBACiAJCQlzZWxmLT5tYXhfc2R1X3NpemVfcnggPSBUVFBfU0FSX1VOQk9VTkQ7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKKwkJCXNrX2ZyZWUoc2spOwogCQkJcmV0dXJuIC1FU09DS1ROT1NVUFBPUlQ7CiAJCX0KIAkJYnJlYWs7CiAJZGVmYXVsdDoKKwkJc2tfZnJlZShzayk7CiAJCXJldHVybiAtRVNPQ0tUTk9TVVBQT1JUOwogCX0KIAorCS8qIEluaXRpYWxpc2UgbmV0d29ya2luZyBzb2NrZXQgc3RydWN0ICovCisJc29ja19pbml0X2RhdGEoc29jaywgc2spOwkvKiBOb3RlIDogc2V0IHNrLT5za19yZWZjbnQgdG8gMSAqLworCXNrLT5za19mYW1pbHkgPSBQRl9JUkRBOworCXNrLT5za19wcm90b2NvbCA9IHByb3RvY29sOworCiAJLyogUmVnaXN0ZXIgYXMgYSBjbGllbnQgd2l0aCBJckxNUCAqLwogCXNlbGYtPmNrZXkgPSBpcmxtcF9yZWdpc3Rlcl9jbGllbnQoMCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJc2VsZi0+bWFzay53b3JkID0gMHhmZmZmOwpkaWZmIC0tZ2l0IGEvbmV0L2lyZGEvaXJuZXQvaXJuZXQuaCBiL25ldC9pcmRhL2lybmV0L2lybmV0LmgKaW5kZXggYjAwMWMzNi4uYmNjZjRkMCAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJuZXQvaXJuZXQuaAorKysgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldC5oCkBAIC0yNDEsNiArMjQxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CiAjaW5jbHVkZSA8bGludXgvc2tidWZmLmg+CiAjaW5jbHVkZSA8bGludXgvdHR5Lmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgpkaWZmIC0tZ2l0IGEvbmV0L2lyZGEvaXJuZXQvaXJuZXRfcHBwLmMgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYwppbmRleCBlMGVhYjU5Li5lODRhNzBkIDEwMDY0NAotLS0gYS9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYworKysgYi9uZXQvaXJkYS9pcm5ldC9pcm5ldF9wcHAuYwpAQCAtNDc5LDYgKzQ3OSw3IEBACiAgIGFwID0ga3phbGxvYyhzaXplb2YoKmFwKSwgR0ZQX0tFUk5FTCk7CiAgIERBQk9SVChhcCA9PSBOVUxMLCAtRU5PTUVNLCBGU19FUlJPUiwgIkNhbid0IGFsbG9jYXRlIHN0cnVjdCBpcm5ldC4uLlxuIik7CiAKKyAgbG9ja19rZXJuZWwoKTsKICAgLyogaW5pdGlhbGl6ZSB0aGUgaXJuZXQgc3RydWN0dXJlICovCiAgIGFwLT5maWxlID0gZmlsZTsKIApAQCAtNTAwLDYgKzUwMSw3IEBACiAgICAgewogICAgICAgREVSUk9SKEZTX0VSUk9SLCAiQ2FuJ3Qgc2V0dXAgSXJEQSBsaW5rLi4uXG4iKTsKICAgICAgIGtmcmVlKGFwKTsKKyAgICAgIHVubG9ja19rZXJuZWwoKTsKICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCkBAIC01MTAsNiArNTEyLDcgQEAKICAgZmlsZS0+cHJpdmF0ZV9kYXRhID0gYXA7CiAKICAgREVYSVQoRlNfVFJBQ0UsICIgLSBhcD0weCVwXG4iLCBhcCk7CisgIHVubG9ja19rZXJuZWwoKTsKICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9pcmRhL2lybmV0bGluay5jIGIvbmV0L2lyZGEvaXJuZXRsaW5rLmMKaW5kZXggOWUxZmI4Mi4uMmYwNWVjMSAxMDA2NDQKLS0tIGEvbmV0L2lyZGEvaXJuZXRsaW5rLmMKKysrIGIvbmV0L2lyZGEvaXJuZXRsaW5rLmMKQEAgLTEwMSw4ICsxMDEsOCBAQAogCiAJaGRyID0gZ2VubG1zZ19wdXQobXNnLCBpbmZvLT5zbmRfcGlkLCBpbmZvLT5zbmRfc2VxLAogCQkJICAmaXJkYV9ubF9mYW1pbHksIDAsICBJUkRBX05MX0NNRF9HRVRfTU9ERSk7Ci0JaWYgKElTX0VSUihoZHIpKSB7Ci0JCXJldCA9IFBUUl9FUlIoaGRyKTsKKwlpZiAoaGRyID09IE5VTEwpIHsKKwkJcmV0ID0gLUVNU0dTSVpFOwogCQlnb3RvIGVycl9vdXQ7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvaXVjdi9hZl9pdWN2LmMgYi9uZXQvaXVjdi9hZl9pdWN2LmMKaW5kZXggN2IwMDM4Zi4uYmRhNzEwMSAxMDA2NDQKLS0tIGEvbmV0L2l1Y3YvYWZfaXVjdi5jCisrKyBiL25ldC9pdWN2L2FmX2l1Y3YuYwpAQCAtMTEzNSw4ICsxMTM1LDcgQEAKIAkJaWYgKHRoaXMpCiAJCQlrZnJlZV9za2IodGhpcyk7CiAJfQotCWlmICghdGhpcykKLQkJcHJpbnRrKEtFUk5fRVJSICJBRl9JVUNWIG1zZyB0YWcgJXUgbm90IGZvdW5kXG4iLCBtc2ctPnRhZyk7CisJQlVHX09OKCF0aGlzKTsKIAogCWlmIChzay0+c2tfc3RhdGUgPT0gSVVDVl9DTE9TSU5HKSB7CiAJCWlmIChza2JfcXVldWVfZW1wdHkoJml1Y3Zfc2soc2spLT5zZW5kX3NrYl9xKSkgewpAQCAtMTE5Niw3ICsxMTk1LDcgQEAKIAl9CiAJY3BjbWQoIlFVRVJZIFVTRVJJRCIsIGl1Y3ZfdXNlcmlkLCBzaXplb2YoaXVjdl91c2VyaWQpLCAmZXJyKTsKIAlpZiAodW5saWtlbHkoZXJyKSkgewotCQlwcmludGsoS0VSTl9FUlIgIkFGX0lVQ1YgbmVlZHMgdGhlIFZNIHVzZXJpZFxuIik7CisJCVdBUk5fT04oZXJyKTsKIAkJZXJyID0gLUVQUk9UT05PU1VQUE9SVDsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTIxMCw3ICsxMjA5LDYgQEAKIAllcnIgPSBzb2NrX3JlZ2lzdGVyKCZpdWN2X3NvY2tfZmFtaWx5X29wcyk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfcHJvdG87Ci0JcHJpbnRrKEtFUk5fSU5GTyAiQUZfSVVDViBsb3dsZXZlbCBkcml2ZXIgaW5pdGlhbGl6ZWRcbiIpOwogCXJldHVybiAwOwogCiBvdXRfcHJvdG86CkBAIC0xMjI2LDggKzEyMjQsNiBAQAogCXNvY2tfdW5yZWdpc3RlcihQRl9JVUNWKTsKIAlwcm90b191bnJlZ2lzdGVyKCZpdWN2X3Byb3RvKTsKIAlpdWN2X3VucmVnaXN0ZXIoJmFmX2l1Y3ZfaGFuZGxlciwgMCk7Ci0KLQlwcmludGsoS0VSTl9JTkZPICJBRl9JVUNWIGxvd2xldmVsIGRyaXZlciB1bmxvYWRlZFxuIik7CiB9CiAKIG1vZHVsZV9pbml0KGFmaXVjdl9pbml0KTsKZGlmZiAtLWdpdCBhL25ldC9pdWN2L2l1Y3YuYyBiL25ldC9pdWN2L2l1Y3YuYwppbmRleCA5MTg5NzA3Li43ZjgyYjc2IDEwMDY0NAotLS0gYS9uZXQvaXVjdi9pdWN2LmMKKysrIGIvbmV0L2l1Y3YvaXVjdi5jCkBAIC0xNTU5LDE2ICsxNTU5LDExIEBACiAKIAlwID0gaXVjdl9pcnFfZGF0YVtzbXBfcHJvY2Vzc29yX2lkKCldOwogCWlmIChwLT5pcHBhdGhpZCA+PSBpdWN2X21heF9wYXRoaWQpIHsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAiaXVjdl9kb19pbnQ6IEdvdCBpbnRlcnJ1cHQgd2l0aCAiCi0JCSAgICAgICAicGF0aGlkICVkID4gbWF4X2Nvbm5lY3Rpb25zICglbGQpXG4iLAotCQkgICAgICAgcC0+aXBwYXRoaWQsIGl1Y3ZfbWF4X3BhdGhpZCAtIDEpOworCQlXQVJOX09OKHAtPmlwcGF0aGlkID49IGl1Y3ZfbWF4X3BhdGhpZCk7CiAJCWl1Y3Zfc2V2ZXJfcGF0aGlkKHAtPmlwcGF0aGlkLCBpdWN2X2Vycm9yX25vX2xpc3RlbmVyKTsKIAkJcmV0dXJuOwogCX0KLQlpZiAocC0+aXB0eXBlICA8IDB4MDEgfHwgcC0+aXB0eXBlID4gMHgwOSkgewotCQlwcmludGsoS0VSTl9FUlIgIml1Y3ZfZG9faW50OiB1bmtub3duIGl1Y3YgaW50ZXJydXB0XG4iKTsKLQkJcmV0dXJuOwotCX0KKwlCVUdfT04ocC0+aXB0eXBlICA8IDB4MDEgfHwgcC0+aXB0eXBlID4gMHgwOSk7CiAJd29yayA9IGttYWxsb2Moc2l6ZW9mKHN0cnVjdCBpdWN2X2lycV9saXN0KSwgR0ZQX0FUT01JQyk7CiAJaWYgKCF3b3JrKSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgIml1Y3ZfZXh0ZXJuYWxfaW50ZXJydXB0OiBvdXQgb2YgbWVtb3J5XG4iKTsKZGlmZiAtLWdpdCBhL25ldC9rZXkvYWZfa2V5LmMgYi9uZXQva2V5L2FmX2tleS5jCmluZGV4IDliYmE3YWMuLjc0NzBlMzYgMTAwNjQ0Ci0tLSBhL25ldC9rZXkvYWZfa2V5LmMKKysrIGIvbmV0L2tleS9hZl9rZXkuYwpAQCAtMzAzMCw2ICszMDMwLDkgQEAKIAogc3RhdGljIGludCBwZmtleV9zZW5kX25vdGlmeShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwgc3RydWN0IGttX2V2ZW50ICpjKQogeworCWlmIChhdG9taWNfcmVhZCgmcGZrZXlfc29ja3NfbnIpID09IDApCisJCXJldHVybiAwOworCiAJc3dpdGNoIChjLT5ldmVudCkgewogCWNhc2UgWEZSTV9NU0dfRVhQSVJFOgogCQlyZXR1cm4ga2V5X25vdGlmeV9zYV9leHBpcmUoeCwgYyk7CmRpZmYgLS1naXQgYS9uZXQvbGxjL2xsY19zYXAuYyBiL25ldC9sbGMvbGxjX3NhcC5jCmluZGV4IGUyZGRkZTcuLjAwOGRlMWYgMTAwNjQ0Ci0tLSBhL25ldC9sbGMvbGxjX3NhcC5jCisrKyBiL25ldC9sbGMvbGxjX3NhcC5jCkBAIC0yODYsMTIgKzI4NiwxNCBAQAogICoKICAqCVNlbmRzIHJlY2VpdmVkIHBkdXMgdG8gdGhlIHNhcCBzdGF0ZSBtYWNoaW5lLgogICovCi1zdGF0aWMgdm9pZCBsbGNfc2FwX3JjdihzdHJ1Y3QgbGxjX3NhcCAqc2FwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorc3RhdGljIHZvaWQgbGxjX3NhcF9yY3Yoc3RydWN0IGxsY19zYXAgKnNhcCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCXN0cnVjdCBzb2NrICpzaykKIHsKIAlzdHJ1Y3QgbGxjX3NhcF9zdGF0ZV9ldiAqZXYgPSBsbGNfc2FwX2V2KHNrYik7CiAKIAlldi0+dHlwZSAgID0gTExDX1NBUF9FVl9UWVBFX1BEVTsKIAlldi0+cmVhc29uID0gMDsKKwlza2ItPnNrID0gc2s7CiAJbGxjX3NhcF9zdGF0ZV9wcm9jZXNzKHNhcCwgc2tiKTsKIH0KIApAQCAtMzYwLDggKzM2Miw3IEBACiAJCQlicmVhazsKIAogCQlzb2NrX2hvbGQoc2spOwotCQlza2Jfc2V0X293bmVyX3Ioc2tiMSwgc2spOwotCQlsbGNfc2FwX3JjdihzYXAsIHNrYjEpOworCQlsbGNfc2FwX3JjdihzYXAsIHNrYjEsIHNrKTsKIAkJc29ja19wdXQoc2spOwogCX0KIAlyZWFkX3VubG9ja19iaCgmc2FwLT5za19saXN0LmxvY2spOwpAQCAtMzgxLDggKzM4Miw3IEBACiAJfSBlbHNlIHsKIAkJc3RydWN0IHNvY2sgKnNrID0gbGxjX2xvb2t1cF9kZ3JhbShzYXAsICZsYWRkcik7CiAJCWlmIChzaykgewotCQkJc2tiX3NldF9vd25lcl9yKHNrYiwgc2spOwotCQkJbGxjX3NhcF9yY3Yoc2FwLCBza2IpOworCQkJbGxjX3NhcF9yY3Yoc2FwLCBza2IsIHNrKTsKIAkJCXNvY2tfcHV0KHNrKTsKIAkJfSBlbHNlCiAJCQlrZnJlZV9za2Ioc2tiKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9jZmcuYyBiL25ldC9tYWM4MDIxMS9jZmcuYwppbmRleCA2OTlkOTdiLi5hOWZjZTRhIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvY2ZnLmMKKysrIGIvbmV0L21hYzgwMjExL2NmZy5jCkBAIC02NzIsNyArNjcyLDcgQEAKIAlpZiAocGFyYW1zLT52bGFuKSB7CiAJCXNkYXRhID0gSUVFRTgwMjExX0RFVl9UT19TVUJfSUYocGFyYW1zLT52bGFuKTsKIAotCQlpZiAoc2RhdGEtPnZpZi50eXBlICE9IElFRUU4MDIxMV9JRl9UWVBFX1ZMQU4gfHwKKwkJaWYgKHNkYXRhLT52aWYudHlwZSAhPSBJRUVFODAyMTFfSUZfVFlQRV9WTEFOICYmCiAJCSAgICBzZGF0YS0+dmlmLnR5cGUgIT0gSUVFRTgwMjExX0lGX1RZUEVfQVApCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAl9IGVsc2UKQEAgLTc2MCw3ICs3NjAsNyBAQAogCWlmIChwYXJhbXMtPnZsYW4gJiYgcGFyYW1zLT52bGFuICE9IHN0YS0+c2RhdGEtPmRldikgewogCQl2bGFuc2RhdGEgPSBJRUVFODAyMTFfREVWX1RPX1NVQl9JRihwYXJhbXMtPnZsYW4pOwogCi0JCWlmICh2bGFuc2RhdGEtPnZpZi50eXBlICE9IElFRUU4MDIxMV9JRl9UWVBFX1ZMQU4gfHwKKwkJaWYgKHZsYW5zZGF0YS0+dmlmLnR5cGUgIT0gSUVFRTgwMjExX0lGX1RZUEVfVkxBTiAmJgogCQkgICAgdmxhbnNkYXRhLT52aWYudHlwZSAhPSBJRUVFODAyMTFfSUZfVFlQRV9BUCkgewogCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9pZWVlODAyMTFfaS5oIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKaW5kZXggYzczMTRiZi4uMDA2NDg2YiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKKysrIGIvbmV0L21hYzgwMjExL2llZWU4MDIxMV9pLmgKQEAgLTg5OSw3ICs4OTksNyBAQAogCiAKIC8qIGllZWU4MDIxMV9pb2N0bC5jICovCi1pbnQgaWVlZTgwMjExX3NldF9mcmVxKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBpbnQgZnJlcSk7CitpbnQgaWVlZTgwMjExX3NldF9mcmVxKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBmcmVxKTsKIC8qIGllZWU4MDIxMV9zdGEuYyAqLwogdm9pZCBpZWVlODAyMTFfc3RhX3RpbWVyKHVuc2lnbmVkIGxvbmcgZGF0YSk7CiB2b2lkIGllZWU4MDIxMV9zdGFfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2tleS5jIGIvbmV0L21hYzgwMjExL2tleS5jCmluZGV4IDE1MGQ2NmQuLjIyMGU4M2IgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9rZXkuYworKysgYi9uZXQvbWFjODAyMTEva2V5LmMKQEAgLTM4MCw2ICszODAsMTUgQEAKIAlpZiAoIWtleSkKIAkJcmV0dXJuOwogCisJaWYgKCFrZXktPnNkYXRhKSB7CisJCS8qIFRoZSBrZXkgaGFzIG5vdCBiZWVuIGxpbmtlZCB5ZXQsIHNpbXBseSBmcmVlIGl0CisJCSAqIGFuZCBkb24ndCBPb3BzICovCisJCWlmIChrZXktPmNvbmYuYWxnID09IEFMR19DQ01QKQorCQkJaWVlZTgwMjExX2Flc19rZXlfZnJlZShrZXktPnUuY2NtcC50Zm0pOworCQlrZnJlZShrZXkpOworCQlyZXR1cm47CisJfQorCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmtleS0+c2RhdGEtPmxvY2FsLT5rZXlfbG9jaywgZmxhZ3MpOwogCV9faWVlZTgwMjExX2tleV9mcmVlKGtleSk7CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgma2V5LT5zZGF0YS0+bG9jYWwtPmtleV9sb2NrLCBmbGFncyk7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvbWFpbi5jIGIvbmV0L21hYzgwMjExL21haW4uYwppbmRleCA5MTVhZmFkLi5kZjA4MzZmIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvbWFpbi5jCisrKyBiL25ldC9tYWM4MDIxMS9tYWluLmMKQEAgLTUxMSw2ICs1MTEsNyBAQAogCWNhc2UgSUVFRTgwMjExX0lGX1RZUEVfU1RBOgogCWNhc2UgSUVFRTgwMjExX0lGX1RZUEVfSUJTUzoKIAkJc2RhdGEtPnUuc3RhLnN0YXRlID0gSUVFRTgwMjExX0RJU0FCTEVEOworCQltZW1zZXQoc2RhdGEtPnUuc3RhLmJzc2lkLCAwLCBFVEhfQUxFTik7CiAJCWRlbF90aW1lcl9zeW5jKCZzZGF0YS0+dS5zdGEudGltZXIpOwogCQkvKgogCQkgKiBXaGVuIHdlIGdldCBoZXJlLCB0aGUgaW50ZXJmYWNlIGlzIG1hcmtlZCBkb3duLgpAQCAtNTI5LDggKzUzMCw2IEBACiAJCQkJbG9jYWwtPnN0YV9od19zY2FubmluZyA9IDA7CiAJCX0KIAotCQlmbHVzaF93b3JrcXVldWUobG9jYWwtPmh3LndvcmtxdWV1ZSk7Ci0KIAkJc2RhdGEtPnUuc3RhLmZsYWdzICY9IH5JRUVFODAyMTFfU1RBX1BSSVZBQ1lfSU5WT0tFRDsKIAkJa2ZyZWUoc2RhdGEtPnUuc3RhLmV4dHJhX2llKTsKIAkJc2RhdGEtPnUuc3RhLmV4dHJhX2llID0gTlVMTDsKQEAgLTU1NCw2ICs1NTMsOCBAQAogCiAJCWllZWU4MDIxMV9sZWRfcmFkaW8obG9jYWwsIDApOwogCisJCWZsdXNoX3dvcmtxdWV1ZShsb2NhbC0+aHcud29ya3F1ZXVlKTsKKwogCQl0YXNrbGV0X2Rpc2FibGUoJmxvY2FsLT50eF9wZW5kaW5nX3Rhc2tsZXQpOwogCQl0YXNrbGV0X2Rpc2FibGUoJmxvY2FsLT50YXNrbGV0KTsKIAl9CkBAIC0xMzEzLDcgKzEzMTQsNyBAQAogCS8qCiAJICogQ2xlYXIgdGhlIFRYIGZpbHRlciBtYXNrIGZvciB0aGlzIFNUQSB3aGVuIHNlbmRpbmcgdGhlIG5leHQKIAkgKiBwYWNrZXQuIElmIHRoZSBTVEEgd2VudCB0byBwb3dlciBzYXZlIG1vZGUsIHRoaXMgd2lsbCBoYXBwZW4KLQkgKiBoYXBwZW4gd2hlbiBpdCB3YWtlcyB1cCBmb3IgdGhlIG5leHQgdGltZS4KKwkgKiB3aGVuIGl0IHdha2VzIHVwIGZvciB0aGUgbmV4dCB0aW1lLgogCSAqLwogCXN0YS0+ZmxhZ3MgfD0gV0xBTl9TVEFfQ0xFQVJfUFNfRklMVDsKIApkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL21sbWUuYyBiL25ldC9tYWM4MDIxMS9tbG1lLmMKaW5kZXggN2NmZDEyZS4uYjQwNDUzNyAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL21sbWUuYworKysgYi9uZXQvbWFjODAyMTEvbWxtZS5jCkBAIC00NCw3ICs0NCw3IEBACiAjZGVmaW5lIElFRUU4MDIxMV9SRVRSWV9BVVRIX0lOVEVSVkFMICgxICogSFopCiAjZGVmaW5lIElFRUU4MDIxMV9TQ0FOX0lOVEVSVkFMICgyICogSFopCiAjZGVmaW5lIElFRUU4MDIxMV9TQ0FOX0lOVEVSVkFMX1NMT1cgKDE1ICogSFopCi0jZGVmaW5lIElFRUU4MDIxMV9JQlNTX0pPSU5fVElNRU9VVCAoMjAgKiBIWikKKyNkZWZpbmUgSUVFRTgwMjExX0lCU1NfSk9JTl9USU1FT1VUICg3ICogSFopCiAKICNkZWZpbmUgSUVFRTgwMjExX1BST0JFX0RFTEFZIChIWiAvIDMzKQogI2RlZmluZSBJRUVFODAyMTFfQ0hBTk5FTF9USU1FIChIWiAvIDMzKQpAQCAtNTQ3LDE1ICs1NDcsMTQgQEAKIAkJCXNkYXRhLT5ic3NfY29uZi5odF9ic3NfY29uZiA9ICZjb25mLT5odF9ic3NfY29uZjsKIAkJfQogCi0JCW5ldGlmX2NhcnJpZXJfb24oZGV2KTsKIAkJaWZzdGEtPmZsYWdzIHw9IElFRUU4MDIxMV9TVEFfUFJFVl9CU1NJRF9TRVQ7CiAJCW1lbWNweShpZnN0YS0+cHJldl9ic3NpZCwgc2RhdGEtPnUuc3RhLmJzc2lkLCBFVEhfQUxFTik7CiAJCW1lbWNweSh3cnF1LmFwX2FkZHIuc2FfZGF0YSwgc2RhdGEtPnUuc3RhLmJzc2lkLCBFVEhfQUxFTik7CiAJCWllZWU4MDIxMV9zdGFfc2VuZF9hc3NvY2luZm8oZGV2LCBpZnN0YSk7CiAJfSBlbHNlIHsKKwkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAkJaWVlZTgwMjExX3N0YV90ZWFyX2Rvd25fQkFfc2Vzc2lvbnMoZGV2LCBpZnN0YS0+YnNzaWQpOwogCQlpZnN0YS0+ZmxhZ3MgJj0gfklFRUU4MDIxMV9TVEFfQVNTT0NJQVRFRDsKLQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsKIAkJaWVlZTgwMjExX3Jlc2V0X2VycF9pbmZvKGRldik7CiAKIAkJc2RhdGEtPmJzc19jb25mLmFzc29jX2h0ID0gMDsKQEAgLTU2OSw2ICs1NjgsMTAgQEAKIAogCXNkYXRhLT5ic3NfY29uZi5hc3NvYyA9IGFzc29jOwogCWllZWU4MDIxMV9ic3NfaW5mb19jaGFuZ2Vfbm90aWZ5KHNkYXRhLCBjaGFuZ2VkKTsKKworCWlmIChhc3NvYykKKwkJbmV0aWZfY2Fycmllcl9vbihkZXYpOworCiAJd3JxdS5hcF9hZGRyLnNhX2ZhbWlseSA9IEFSUEhSRF9FVEhFUjsKIAl3aXJlbGVzc19zZW5kX2V2ZW50KGRldiwgU0lPQ0dJV0FQLCAmd3JxdSwgTlVMTCk7CiB9CkBAIC0xMzI1LDcgKzEzMjgsNyBAQAogCiAJLyogcHJlcGFyZSByZW9yZGVyaW5nIGJ1ZmZlciAqLwogCXRpZF9hZ2dfcngtPnJlb3JkZXJfYnVmID0KLQkJa21hbGxvYyhidWZfc2l6ZSAqIHNpemVvZihzdHJ1Y3Qgc2tfYnVmICopLCBHRlBfQVRPTUlDKTsKKwkJa21hbGxvYyhidWZfc2l6ZSAqIHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSwgR0ZQX0FUT01JQyk7CiAJaWYgKCF0aWRfYWdnX3J4LT5yZW9yZGVyX2J1ZikgewogCQlpZiAobmV0X3JhdGVsaW1pdCgpKQogCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4gbm90IGFsbG9jYXRlIHJlb3JkZXJpbmcgYnVmZmVyICIKQEAgLTEzMzQsNyArMTMzNyw3IEBACiAJCWdvdG8gZW5kOwogCX0KIAltZW1zZXQodGlkX2FnZ19yeC0+cmVvcmRlcl9idWYsIDAsCi0JCWJ1Zl9zaXplICogc2l6ZW9mKHN0cnVjdCBza19idWYgKikpOworCQlidWZfc2l6ZSAqIHNpemVvZihzdHJ1Y3Qgc2tfYnVmZiAqKSk7CiAKIAlpZiAobG9jYWwtPm9wcy0+YW1wZHVfYWN0aW9uKQogCQlyZXQgPSBsb2NhbC0+b3BzLT5hbXBkdV9hY3Rpb24oaHcsIElFRUU4MDIxMV9BTVBEVV9SWF9TVEFSVCwKQEAgLTE2MTQsNyArMTYxNyw3IEBACiAJICogb25seSBvbmUgYXJndW1lbnQsIGFuZCBib3RoIHN0YV9pbmZvIGFuZCBUSUQgYXJlIG5lZWRlZCwgc28gaW5pdAogCSAqIGZsb3cgaW4gc3RhX2luZm9fY3JlYXRlIGdpdmVzIHRoZSBUSUQgYXMgZGF0YSwgd2hpbGUgdGhlIHRpbWVyX3RvX2lkCiAJICogYXJyYXkgZ2l2ZXMgdGhlIHN0YSB0aHJvdWdoIGNvbnRhaW5lcl9vZiAqLwotCXUxNiB0aWQgPSAqKGludCAqKWRhdGE7CisJdTE2IHRpZCA9ICoodTggKilkYXRhOwogCXN0cnVjdCBzdGFfaW5mbyAqdGVtcF9zdGEgPSBjb250YWluZXJfb2YoKHZvaWQgKilkYXRhLAogCQlzdHJ1Y3Qgc3RhX2luZm8sIHRpbWVyX3RvX3RpZFt0aWRdKTsKIApAQCAtMTY2Miw3ICsxNjY1LDcgQEAKIHZvaWQgc3RhX3J4X2FnZ19zZXNzaW9uX3RpbWVyX2V4cGlyZWQodW5zaWduZWQgbG9uZyBkYXRhKQogewogCS8qIG5vdCBhbiBlbGVnYW50IGRldG91ciwgYnV0IHRoZXJlIGlzIG5vIGNob2ljZSBhcyB0aGUgdGltZXIgcGFzc2VzCi0JICogb25seSBvbmUgYXJndW1lbnQsIGFuZCB2ZXJpb3VzIHN0YV9pbmZvIGFyZSBuZWVkZWQgaGVyZSwgc28gaW5pdAorCSAqIG9ubHkgb25lIGFyZ3VtZW50LCBhbmQgdmFyaW91cyBzdGFfaW5mbyBhcmUgbmVlZGVkIGhlcmUsIHNvIGluaXQKIAkgKiBmbG93IGluIHN0YV9pbmZvX2NyZWF0ZSBnaXZlcyB0aGUgVElEIGFzIGRhdGEsIHdoaWxlIHRoZSB0aW1lcl90b19pZAogCSAqIGFycmF5IGdpdmVzIHRoZSBzdGEgdGhyb3VnaCBjb250YWluZXJfb2YgKi8KIAl1OCAqcHRpZCA9ICh1OCAqKWRhdGE7CkBAIC0yMzM2LDYgKzIzMzksNyBAQAogCXU4ICpwb3M7CiAJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGE7CiAJc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQ7CisJdW5pb24gaXdyZXFfZGF0YSB3cnF1OwogCiAJc2JhbmQgPSBsb2NhbC0+aHcud2lwaHktPmJhbmRzW2xvY2FsLT5ody5jb25mLmNoYW5uZWwtPmJhbmRdOwogCkBAIC0yMzU4LDEzICsyMzYyLDEwIEBACiAJc2RhdGEtPmRyb3BfdW5lbmNyeXB0ZWQgPSBic3MtPmNhcGFiaWxpdHkgJgogCQlXTEFOX0NBUEFCSUxJVFlfUFJJVkFDWSA/IDEgOiAwOwogCi0JcmVzID0gaWVlZTgwMjExX3NldF9mcmVxKGxvY2FsLCBic3MtPmZyZXEpOworCXJlcyA9IGllZWU4MDIxMV9zZXRfZnJlcShkZXYsIGJzcy0+ZnJlcSk7CiAKLQlpZiAobG9jYWwtPm9wZXJfY2hhbm5lbC0+ZmxhZ3MgJiBJRUVFODAyMTFfQ0hBTl9OT19JQlNTKSB7Ci0JCXByaW50ayhLRVJOX0RFQlVHICIlczogSUJTUyBub3QgYWxsb3dlZCBvbiBmcmVxdWVuY3kgIgotCQkgICAgICAgIiVkIE1IelxuIiwgZGV2LT5uYW1lLCBsb2NhbC0+b3Blcl9jaGFubmVsLT5jZW50ZXJfZnJlcSk7Ci0JCXJldHVybiAtMTsKLQl9CisJaWYgKHJlcykKKwkJcmV0dXJuIHJlczsKIAogCS8qIFNldCBiZWFjb24gdGVtcGxhdGUgKi8KIAlza2IgPSBkZXZfYWxsb2Nfc2tiKGxvY2FsLT5ody5leHRyYV90eF9oZWFkcm9vbSArIDQwMCk7CkBAIC0yNDc5LDcgKzI0ODAsOSBAQAogCWlmc3RhLT5zdGF0ZSA9IElFRUU4MDIxMV9JQlNTX0pPSU5FRDsKIAltb2RfdGltZXIoJmlmc3RhLT50aW1lciwgamlmZmllcyArIElFRUU4MDIxMV9JQlNTX01FUkdFX0lOVEVSVkFMKTsKIAotCWllZWU4MDIxMV9yeF9ic3NfcHV0KGRldiwgYnNzKTsKKwltZW1zZXQoJndycXUsIDAsIHNpemVvZih3cnF1KSk7CisJbWVtY3B5KHdycXUuYXBfYWRkci5zYV9kYXRhLCBic3MtPmJzc2lkLCBFVEhfQUxFTik7CisJd2lyZWxlc3Nfc2VuZF9ldmVudChkZXYsIFNJT0NHSVdBUCwgJndycXUsIE5VTEwpOwogCiAJcmV0dXJuIHJlczsKIH0KQEAgLTM0ODgsNyArMzQ5MSw3IEBACiAJc3Bpbl91bmxvY2tfYmgoJmxvY2FsLT5zdGFfYnNzX2xvY2spOwogCiAJaWYgKHNlbGVjdGVkKSB7Ci0JCWllZWU4MDIxMV9zZXRfZnJlcShsb2NhbCwgc2VsZWN0ZWQtPmZyZXEpOworCQlpZWVlODAyMTFfc2V0X2ZyZXEoZGV2LCBzZWxlY3RlZC0+ZnJlcSk7CiAJCWlmICghKGlmc3RhLT5mbGFncyAmIElFRUU4MDIxMV9TVEFfU1NJRF9TRVQpKQogCQkJaWVlZTgwMjExX3N0YV9zZXRfc3NpZChkZXYsIHNlbGVjdGVkLT5zc2lkLAogCQkJCQkgICAgICAgc2VsZWN0ZWQtPnNzaWRfbGVuKTsKQEAgLTM1MjMsNiArMzUyNiw3IEBACiAJc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQ7CiAJdTggYnNzaWRbRVRIX0FMRU5dLCAqcG9zOwogCWludCBpOworCWludCByZXQ7CiAJREVDTEFSRV9NQUNfQlVGKG1hYyk7CiAKICNpZiAwCkBAIC0zNTY3LDcgKzM1NzEsOSBAQAogCQkqcG9zKysgPSAodTgpIChyYXRlIC8gNSk7CiAJfQogCi0JcmV0dXJuIGllZWU4MDIxMV9zdGFfam9pbl9pYnNzKGRldiwgaWZzdGEsIGJzcyk7CisJcmV0ID0gaWVlZTgwMjExX3N0YV9qb2luX2lic3MoZGV2LCBpZnN0YSwgYnNzKTsKKwlpZWVlODAyMTFfcnhfYnNzX3B1dChkZXYsIGJzcyk7CisJcmV0dXJuIHJldDsKIH0KIAogCkBAIC0zNjA4LDE3ICszNjE0LDIyIEBACiAJc3Bpbl91bmxvY2tfYmgoJmxvY2FsLT5zdGFfYnNzX2xvY2spOwogCiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0lCU1NfREVCVUcKLQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCi0JICAgICAgICIlc1xuIiwgcHJpbnRfbWFjKG1hYywgYnNzaWQpLCBwcmludF9tYWMobWFjMiwgaWZzdGEtPmJzc2lkKSk7CisJaWYgKGZvdW5kKQorCQlwcmludGsoS0VSTl9ERUJVRyAiICAgc3RhX2ZpbmRfaWJzczogc2VsZWN0ZWQgJXMgY3VycmVudCAiCisJCSAgICAgICAiJXNcbiIsIHByaW50X21hYyhtYWMsIGJzc2lkKSwKKwkJICAgICAgIHByaW50X21hYyhtYWMyLCBpZnN0YS0+YnNzaWQpKTsKICNlbmRpZiAvKiBDT05GSUdfTUFDODAyMTFfSUJTU19ERUJVRyAqLwogCWlmIChmb3VuZCAmJiBtZW1jbXAoaWZzdGEtPmJzc2lkLCBic3NpZCwgRVRIX0FMRU4pICE9IDAgJiYKIAkgICAgKGJzcyA9IGllZWU4MDIxMV9yeF9ic3NfZ2V0KGRldiwgYnNzaWQsCiAJCQkJCWxvY2FsLT5ody5jb25mLmNoYW5uZWwtPmNlbnRlcl9mcmVxLAogCQkJCQlpZnN0YS0+c3NpZCwgaWZzdGEtPnNzaWRfbGVuKSkpIHsKKwkJaW50IHJldDsKIAkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBTZWxlY3RlZCBJQlNTIEJTU0lEICVzIgogCQkgICAgICAgIiBiYXNlZCBvbiBjb25maWd1cmVkIFNTSURcbiIsCiAJCSAgICAgICBkZXYtPm5hbWUsIHByaW50X21hYyhtYWMsIGJzc2lkKSk7Ci0JCXJldHVybiBpZWVlODAyMTFfc3RhX2pvaW5faWJzcyhkZXYsIGlmc3RhLCBic3MpOworCQlyZXQgPSBpZWVlODAyMTFfc3RhX2pvaW5faWJzcyhkZXYsIGlmc3RhLCBic3MpOworCQlpZWVlODAyMTFfcnhfYnNzX3B1dChkZXYsIGJzcyk7CisJCXJldHVybiByZXQ7CiAJfQogI2lmZGVmIENPTkZJR19NQUM4MDIxMV9JQlNTX0RFQlVHCiAJcHJpbnRrKEtFUk5fREVCVUcgIiAgIGRpZCBub3QgdHJ5IHRvIGpvaW4gaWJzc1xuIik7CkBAIC00MDk1LDE5ICs0MTA2LDE4IEBACiAKIAltZW1zZXQoJml3ZSwgMCwgc2l6ZW9mKGl3ZSkpOwogCWl3ZS5jbWQgPSBTSU9DR0lXRlJFUTsKLQlpd2UudS5mcmVxLm0gPSBic3MtPmZyZXE7Ci0JaXdlLnUuZnJlcS5lID0gNjsKLQljdXJyZW50X2V2ID0gaXdlX3N0cmVhbV9hZGRfZXZlbnQoY3VycmVudF9ldiwgZW5kX2J1ZiwgJml3ZSwKLQkJCQkJICBJV19FVl9GUkVRX0xFTik7Ci0KLQltZW1zZXQoJml3ZSwgMCwgc2l6ZW9mKGl3ZSkpOwotCWl3ZS5jbWQgPSBTSU9DR0lXRlJFUTsKIAlpd2UudS5mcmVxLm0gPSBpZWVlODAyMTFfZnJlcXVlbmN5X3RvX2NoYW5uZWwoYnNzLT5mcmVxKTsKIAlpd2UudS5mcmVxLmUgPSAwOwogCWN1cnJlbnRfZXYgPSBpd2Vfc3RyZWFtX2FkZF9ldmVudChjdXJyZW50X2V2LCBlbmRfYnVmLCAmaXdlLAogCQkJCQkgIElXX0VWX0ZSRVFfTEVOKTsKIAogCW1lbXNldCgmaXdlLCAwLCBzaXplb2YoaXdlKSk7CisJaXdlLmNtZCA9IFNJT0NHSVdGUkVROworCWl3ZS51LmZyZXEubSA9IGJzcy0+ZnJlcTsKKwlpd2UudS5mcmVxLmUgPSA2OworCWN1cnJlbnRfZXYgPSBpd2Vfc3RyZWFtX2FkZF9ldmVudChjdXJyZW50X2V2LCBlbmRfYnVmLCAmaXdlLAorCQkJCQkgIElXX0VWX0ZSRVFfTEVOKTsKKwltZW1zZXQoJml3ZSwgMCwgc2l6ZW9mKGl3ZSkpOwogCWl3ZS5jbWQgPSBJV0VWUVVBTDsKIAlpd2UudS5xdWFsLnF1YWwgPSBic3MtPnNpZ25hbDsKIAlpd2UudS5xdWFsLmxldmVsID0gYnNzLT5yc3NpOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkLmggYi9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWQuaAppbmRleCAwNGFmYzEzLi40ZWE3Yjk3IDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWQuaAorKysgYi9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWQuaApAQCAtMTQxLDcgKzE0MSw2IEBACiAgKglyYXRlIGJlaGF2aW91ciB2YWx1ZXMgKGxvd2VyIG1lYW5zIHdlIHNob3VsZCB0cnVzdCBtb3JlIHdoYXQgd2UgbGVhcm50CiAgKglhYm91dCBiZWhhdmlvdXIgb2YgcmF0ZXMsIGhpZ2hlciBtZWFucyB3ZSBzaG91bGQgdHJ1c3QgbW9yZSB0aGUgbmF0dXJhbAogICoJb3JkZXJpbmcgb2YgcmF0ZXMpCi0gKiBAZmFzdF9zdGFydDogaWYgWSwgcHVzaCBoaWdoIHJhdGVzIHJpZ2h0IGFmdGVyIGluaXRpYWxpemF0aW9uCiAgKi8KIHN0cnVjdCByY19waWRfZGVidWdmc19lbnRyaWVzIHsKIAlzdHJ1Y3QgZGVudHJ5ICpkaXI7CkBAIC0xNTQsNyArMTUzLDYgQEAKIAlzdHJ1Y3QgZGVudHJ5ICpzaGFycGVuX2ZhY3RvcjsKIAlzdHJ1Y3QgZGVudHJ5ICpzaGFycGVuX2R1cmF0aW9uOwogCXN0cnVjdCBkZW50cnkgKm5vcm1fb2Zmc2V0OwotCXN0cnVjdCBkZW50cnkgKmZhc3Rfc3RhcnQ7CiB9OwogCiB2b2lkIHJhdGVfY29udHJvbF9waWRfZXZlbnRfdHhfc3RhdHVzKHN0cnVjdCByY19waWRfZXZlbnRfYnVmZmVyICpidWYsCkBAIC0yNjcsOSArMjY1LDYgQEAKIAkvKiBOb3JtYWxpemF0aW9uIG9mZnNldC4gKi8KIAl1bnNpZ25lZCBpbnQgbm9ybV9vZmZzZXQ7CiAKLQkvKiBGYXN0IHN0YXJzdCBwYXJhbWV0ZXIuICovCi0JdW5zaWduZWQgaW50IGZhc3Rfc3RhcnQ7Ci0KIAkvKiBSYXRlcyBpbmZvcm1hdGlvbi4gKi8KIAlzdHJ1Y3QgcmNfcGlkX3JhdGVpbmZvICpyaW5mbzsKIApkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkX2FsZ28uYyBiL25ldC9tYWM4MDIxMS9yYzgwMjExX3BpZF9hbGdvLmMKaW5kZXggYTg0OWI3NC4uYmNkMjdjMSAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3JjODAyMTFfcGlkX2FsZ28uYworKysgYi9uZXQvbWFjODAyMTEvcmM4MDIxMV9waWRfYWxnby5jCkBAIC0zOTgsMTMgKzM5OCwyNSBAQAogCQlyZXR1cm4gTlVMTDsKIAl9CiAKKwlwaW5mby0+dGFyZ2V0ID0gUkNfUElEX1RBUkdFVF9QRjsKKwlwaW5mby0+c2FtcGxpbmdfcGVyaW9kID0gUkNfUElEX0lOVEVSVkFMOworCXBpbmZvLT5jb2VmZl9wID0gUkNfUElEX0NPRUZGX1A7CisJcGluZm8tPmNvZWZmX2kgPSBSQ19QSURfQ09FRkZfSTsKKwlwaW5mby0+Y29lZmZfZCA9IFJDX1BJRF9DT0VGRl9EOworCXBpbmZvLT5zbW9vdGhpbmdfc2hpZnQgPSBSQ19QSURfU01PT1RISU5HX1NISUZUOworCXBpbmZvLT5zaGFycGVuX2ZhY3RvciA9IFJDX1BJRF9TSEFSUEVOSU5HX0ZBQ1RPUjsKKwlwaW5mby0+c2hhcnBlbl9kdXJhdGlvbiA9IFJDX1BJRF9TSEFSUEVOSU5HX0RVUkFUSU9OOworCXBpbmZvLT5ub3JtX29mZnNldCA9IFJDX1BJRF9OT1JNX09GRlNFVDsKKwlwaW5mby0+cmluZm8gPSByaW5mbzsKKwlwaW5mby0+b2xkcmF0ZSA9IDA7CisKIAkvKiBTb3J0IHRoZSByYXRlcy4gVGhpcyBpcyBvcHRpbWl6ZWQgZm9yIHRoZSBtb3N0IGNvbW1vbiBjYXNlIChpLmUuCiAJICogYWxtb3N0LXNvcnRlZCBDQ0srT0ZETSByYXRlcykuIEtpbmQgb2YgYnViYmxlLXNvcnQgd2l0aCByZXZlcnNlZAogCSAqIG1hcHBpbmcgdG9vLiAqLwogCWZvciAoaSA9IDA7IGkgPCBzYmFuZC0+bl9iaXRyYXRlczsgaSsrKSB7CiAJCXJpbmZvW2ldLmluZGV4ID0gaTsKIAkJcmluZm9baV0ucmV2X2luZGV4ID0gaTsKLQkJaWYgKHBpbmZvLT5mYXN0X3N0YXJ0KQorCQlpZiAoUkNfUElEX0ZBU1RfU1RBUlQpCiAJCQlyaW5mb1tpXS5kaWZmID0gMDsKIAkJZWxzZQogCQkJcmluZm9baV0uZGlmZiA9IGkgKiBwaW5mby0+bm9ybV9vZmZzZXQ7CkBAIC00MjUsMTkgKzQzNyw2IEBACiAJCQlicmVhazsKIAl9CiAKLQlwaW5mby0+dGFyZ2V0ID0gUkNfUElEX1RBUkdFVF9QRjsKLQlwaW5mby0+c2FtcGxpbmdfcGVyaW9kID0gUkNfUElEX0lOVEVSVkFMOwotCXBpbmZvLT5jb2VmZl9wID0gUkNfUElEX0NPRUZGX1A7Ci0JcGluZm8tPmNvZWZmX2kgPSBSQ19QSURfQ09FRkZfSTsKLQlwaW5mby0+Y29lZmZfZCA9IFJDX1BJRF9DT0VGRl9EOwotCXBpbmZvLT5zbW9vdGhpbmdfc2hpZnQgPSBSQ19QSURfU01PT1RISU5HX1NISUZUOwotCXBpbmZvLT5zaGFycGVuX2ZhY3RvciA9IFJDX1BJRF9TSEFSUEVOSU5HX0ZBQ1RPUjsKLQlwaW5mby0+c2hhcnBlbl9kdXJhdGlvbiA9IFJDX1BJRF9TSEFSUEVOSU5HX0RVUkFUSU9OOwotCXBpbmZvLT5ub3JtX29mZnNldCA9IFJDX1BJRF9OT1JNX09GRlNFVDsKLQlwaW5mby0+ZmFzdF9zdGFydCA9IFJDX1BJRF9GQVNUX1NUQVJUOwotCXBpbmZvLT5yaW5mbyA9IHJpbmZvOwotCXBpbmZvLT5vbGRyYXRlID0gMDsKLQogI2lmZGVmIENPTkZJR19NQUM4MDIxMV9ERUJVR0ZTCiAJZGUgPSAmcGluZm8tPmRlbnRyaWVzOwogCWRlLT5kaXIgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoInJjODAyMTFfcGlkIiwKQEAgLTQ2NSw5ICs0NjQsNiBAQAogCWRlLT5ub3JtX29mZnNldCA9IGRlYnVnZnNfY3JlYXRlX3UzMigibm9ybV9vZmZzZXQiLAogCQkJCQkgICAgIFNfSVJVU1IgfCBTX0lXVVNSLCBkZS0+ZGlyLAogCQkJCQkgICAgICZwaW5mby0+bm9ybV9vZmZzZXQpOwotCWRlLT5mYXN0X3N0YXJ0ID0gZGVidWdmc19jcmVhdGVfYm9vbCgiZmFzdF9zdGFydCIsCi0JCQkJCSAgICAgU19JUlVTUiB8IFNfSVdVU1IsIGRlLT5kaXIsCi0JCQkJCSAgICAgJnBpbmZvLT5mYXN0X3N0YXJ0KTsKICNlbmRpZgogCiAJcmV0dXJuIHBpbmZvOwpAQCAtNDc5LDcgKzQ3NSw2IEBACiAjaWZkZWYgQ09ORklHX01BQzgwMjExX0RFQlVHRlMKIAlzdHJ1Y3QgcmNfcGlkX2RlYnVnZnNfZW50cmllcyAqZGUgPSAmcGluZm8tPmRlbnRyaWVzOwogCi0JZGVidWdmc19yZW1vdmUoZGUtPmZhc3Rfc3RhcnQpOwogCWRlYnVnZnNfcmVtb3ZlKGRlLT5ub3JtX29mZnNldCk7CiAJZGVidWdmc19yZW1vdmUoZGUtPnNoYXJwZW5fZHVyYXRpb24pOwogCWRlYnVnZnNfcmVtb3ZlKGRlLT5zaGFycGVuX2ZhY3Rvcik7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvcnguYyBiL25ldC9tYWM4MDIxMS9yeC5jCmluZGV4IDE5NThiZmIzLi4wOTQxZTVkIDEwMDY0NAotLS0gYS9uZXQvbWFjODAyMTEvcnguYworKysgYi9uZXQvbWFjODAyMTEvcnguYwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAKIAl1MTYgZmMsIGhkcmxlbiwgZXRoZXJ0eXBlOwogCXU4ICpwYXlsb2FkOwogCXU4IGRzdFtFVEhfQUxFTl07Ci0JdTggc3JjW0VUSF9BTEVOXTsKKwl1OCBzcmNbRVRIX0FMRU5dIF9fYWxpZ25lZCgyKTsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gcngtPnNrYjsKIAlzdHJ1Y3QgaWVlZTgwMjExX3N1Yl9pZl9kYXRhICpzZGF0YSA9IElFRUU4MDIxMV9ERVZfVE9fU1VCX0lGKGRldik7CiAJREVDTEFSRV9NQUNfQlVGKG1hYyk7CkBAIC0xMjM0LDcgKzEyMzQsNyBAQAogICovCiBzdGF0aWMgYm9vbCBpZWVlODAyMTFfZnJhbWVfYWxsb3dlZChzdHJ1Y3QgaWVlZTgwMjExX3J4X2RhdGEgKnJ4KQogewotCXN0YXRpYyBjb25zdCB1OCBwYWVfZ3JvdXBfYWRkcltFVEhfQUxFTl0KKwlzdGF0aWMgY29uc3QgdTggcGFlX2dyb3VwX2FkZHJbRVRIX0FMRU5dIF9fYWxpZ25lZCgyKQogCQk9IHsgMHgwMSwgMHg4MCwgMHhDMiwgMHgwMCwgMHgwMCwgMHgwMyB9OwogCXN0cnVjdCBldGhoZHIgKmVoZHIgPSAoc3RydWN0IGV0aGhkciAqKSByeC0+c2tiLT5kYXRhOwogCmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvdHguYyBiL25ldC9tYWM4MDIxMS90eC5jCmluZGV4IDFkN2RkNTQuLmM4MGQ1ODkgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS90eC5jCisrKyBiL25ldC9tYWM4MDIxMS90eC5jCkBAIC0xMTMyLDcgKzExMzIsNyBAQAogCWllZWU4MDIxMV90eF9oYW5kbGVyICpoYW5kbGVyOwogCXN0cnVjdCBpZWVlODAyMTFfdHhfZGF0YSB0eDsKIAlpZWVlODAyMTFfdHhfcmVzdWx0IHJlcyA9IFRYX0RST1AsIHJlc19wcmVwYXJlOwotCWludCByZXQsIGk7CisJaW50IHJldCwgaSwgcmV0cmllcyA9IDA7CiAKIAlXQVJOX09OKF9faWVlZTgwMjExX3F1ZXVlX3BlbmRpbmcobG9jYWwsIGNvbnRyb2wtPnF1ZXVlKSk7CiAKQEAgLTEyMTYsNiArMTIxNiwxMyBAQAogCQlpZiAoIV9faWVlZTgwMjExX3F1ZXVlX3N0b3BwZWQobG9jYWwsIGNvbnRyb2wtPnF1ZXVlKSkgewogCQkJY2xlYXJfYml0KElFRUU4MDIxMV9MSU5LX1NUQVRFX1BFTkRJTkcsCiAJCQkJICAmbG9jYWwtPnN0YXRlW2NvbnRyb2wtPnF1ZXVlXSk7CisJCQlyZXRyaWVzKys7CisJCQkvKgorCQkJICogRHJpdmVyIGJ1ZywgaXQncyByZWplY3RpbmcgcGFja2V0cyBidXQKKwkJCSAqIG5vdCBzdG9wcGluZyBxdWV1ZXMuCisJCQkgKi8KKwkJCWlmIChXQVJOX09OX09OQ0UocmV0cmllcyA+IDUpKQorCQkJCWdvdG8gZHJvcDsKIAkJCWdvdG8gcmV0cnk7CiAJCX0KIAkJbWVtY3B5KCZzdG9yZS0+Y29udHJvbCwgY29udHJvbCwKQEAgLTE1NjIsMTMgKzE1NjksMTMgQEAKIAkgKiBiZSBjbG9uZWQuIFRoaXMgY291bGQgaGFwcGVuLCBlLmcuLCB3aXRoIExpbnV4IGJyaWRnZSBjb2RlIHBhc3NpbmcKIAkgKiB1cyBicm9hZGNhc3QgZnJhbWVzLiAqLwogCi0JaWYgKGhlYWRfbmVlZCA+IDAgfHwgc2tiX2hlYWRlcl9jbG9uZWQoc2tiKSkgeworCWlmIChoZWFkX25lZWQgPiAwIHx8IHNrYl9jbG9uZWQoc2tiKSkgewogI2lmIDAKIAkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBuZWVkIHRvIHJlYWxsb2NhdGUgYnVmZmVyIGZvciAlZCBieXRlcyAiCiAJCSAgICAgICAib2YgaGVhZHJvb21cbiIsIGRldi0+bmFtZSwgaGVhZF9uZWVkKTsKICNlbmRpZgogCi0JCWlmIChza2JfaGVhZGVyX2Nsb25lZChza2IpKQorCQlpZiAoc2tiX2Nsb25lZChza2IpKQogCQkJSTgwMl9ERUJVR19JTkMobG9jYWwtPnR4X2V4cGFuZF9za2JfaGVhZF9jbG9uZWQpOwogCQllbHNlCiAJCQlJODAyX0RFQlVHX0lOQyhsb2NhbC0+dHhfZXhwYW5kX3NrYl9oZWFkKTsKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS91dGlsLmMgYi9uZXQvbWFjODAyMTEvdXRpbC5jCmluZGV4IDEzMWU5ZTYuLjRlOTdiMjYgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS91dGlsLmMKKysrIGIvbmV0L21hYzgwMjExL3V0aWwuYwpAQCAtMzQsMTEgKzM0LDExIEBACiAKIC8qIFNlZSBJRUVFIDgwMi4xSCBmb3IgTExDL1NOQVAgZW5jYXBzdWxhdGlvbi9kZWNhcHN1bGF0aW9uICovCiAvKiBFdGhlcm5ldC1JSSBzbmFwIGhlYWRlciAoUkZDMTA0MiBmb3IgbW9zdCBFdGhlclR5cGVzKSAqLwotY29uc3QgdW5zaWduZWQgY2hhciByZmMxMDQyX2hlYWRlcltdID0KK2NvbnN0IHVuc2lnbmVkIGNoYXIgcmZjMTA0Ml9oZWFkZXJbXSBfX2FsaWduZWQoMikgPQogCXsgMHhhYSwgMHhhYSwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCB9OwogCiAvKiBCcmlkZ2UtVHVubmVsIGhlYWRlciAoZm9yIEV0aGVyVHlwZXMgRVRIX1BfQUFSUCBhbmQgRVRIX1BfSVBYKSAqLwotY29uc3QgdW5zaWduZWQgY2hhciBicmlkZ2VfdHVubmVsX2hlYWRlcltdID0KK2NvbnN0IHVuc2lnbmVkIGNoYXIgYnJpZGdlX3R1bm5lbF9oZWFkZXJbXSBfX2FsaWduZWQoMikgPQogCXsgMHhhYSwgMHhhYSwgMHgwMywgMHgwMCwgMHgwMCwgMHhmOCB9OwogCiAKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS93ZXh0LmMgYi9uZXQvbWFjODAyMTEvd2V4dC5jCmluZGV4IDQ1N2ViZjkuLmU4NDA0MjEgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS93ZXh0LmMKKysrIGIvbmV0L21hYzgwMjExL3dleHQuYwpAQCAtOTUsNiArOTUsMTMgQEAKIAkJCX0KIAkJfQogCisJCWlmIChhbGcgPT0gQUxHX1dFUCAmJgorCQkJa2V5X2xlbiAhPSBMRU5fV0VQNDAgJiYga2V5X2xlbiAhPSBMRU5fV0VQMTA0KSB7CisJCQlpZWVlODAyMTFfa2V5X2ZyZWUoa2V5KTsKKwkJCWVyciA9IC1FSU5WQUw7CisJCQlnb3RvIG91dF91bmxvY2s7CisJCX0KKwogCQlpZWVlODAyMTFfa2V5X2xpbmsoa2V5LCBzZGF0YSwgc3RhKTsKIAogCQlpZiAoc2V0X3R4X2tleSB8fCAoIXN0YSAmJiAhc2RhdGEtPmRlZmF1bHRfa2V5ICYmIGtleSkpCkBAIC0yOTAsMTQgKzI5NywyMiBAQAogCXJldHVybiAwOwogfQogCi1pbnQgaWVlZTgwMjExX3NldF9mcmVxKHN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsLCBpbnQgZnJlcU1IeikKK2ludCBpZWVlODAyMTFfc2V0X2ZyZXEoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IGZyZXFNSHopCiB7CiAJaW50IHJldCA9IC1FSU5WQUw7CiAJc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuOworCXN0cnVjdCBpZWVlODAyMTFfbG9jYWwgKmxvY2FsID0gd2Rldl9wcml2KGRldi0+aWVlZTgwMjExX3B0cik7CisJc3RydWN0IGllZWU4MDIxMV9zdWJfaWZfZGF0YSAqc2RhdGEgPSBJRUVFODAyMTFfREVWX1RPX1NVQl9JRihkZXYpOwogCiAJY2hhbiA9IGllZWU4MDIxMV9nZXRfY2hhbm5lbChsb2NhbC0+aHcud2lwaHksIGZyZXFNSHopOwogCiAJaWYgKGNoYW4gJiYgIShjaGFuLT5mbGFncyAmIElFRUU4MDIxMV9DSEFOX0RJU0FCTEVEKSkgeworCQlpZiAoc2RhdGEtPnZpZi50eXBlID09IElFRUU4MDIxMV9JRl9UWVBFX0lCU1MgJiYKKwkJICAgIGNoYW4tPmZsYWdzICYgSUVFRTgwMjExX0NIQU5fTk9fSUJTUykgeworCQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBJQlNTIG5vdCBhbGxvd2VkIG9uIGZyZXF1ZW5jeSAiCisJCQkJIiVkIE1IelxuIiwgZGV2LT5uYW1lLCBjaGFuLT5jZW50ZXJfZnJlcSk7CisJCQlyZXR1cm4gcmV0OworCQl9CiAJCWxvY2FsLT5vcGVyX2NoYW5uZWwgPSBjaGFuOwogCiAJCWlmIChsb2NhbC0+c3RhX3N3X3NjYW5uaW5nIHx8IGxvY2FsLT5zdGFfaHdfc2Nhbm5pbmcpCkBAIC0zMTUsNyArMzMwLDYgQEAKIAkJCQkgICBzdHJ1Y3QgaXdfcmVxdWVzdF9pbmZvICppbmZvLAogCQkJCSAgIHN0cnVjdCBpd19mcmVxICpmcmVxLCBjaGFyICpleHRyYSkKIHsKLQlzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCA9IHdkZXZfcHJpdihkZXYtPmllZWU4MDIxMV9wdHIpOwogCXN0cnVjdCBpZWVlODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhID0gSUVFRTgwMjExX0RFVl9UT19TVUJfSUYoZGV2KTsKIAogCWlmIChzZGF0YS0+dmlmLnR5cGUgPT0gSUVFRTgwMjExX0lGX1RZUEVfU1RBKQpAQCAtMzI5LDE0ICszNDMsMTQgQEAKIAkJCQkJSUVFRTgwMjExX1NUQV9BVVRPX0NIQU5ORUxfU0VMOwogCQkJcmV0dXJuIDA7CiAJCX0gZWxzZQotCQkJcmV0dXJuIGllZWU4MDIxMV9zZXRfZnJlcShsb2NhbCwKKwkJCXJldHVybiBpZWVlODAyMTFfc2V0X2ZyZXEoZGV2LAogCQkJCWllZWU4MDIxMV9jaGFubmVsX3RvX2ZyZXF1ZW5jeShmcmVxLT5tKSk7CiAJfSBlbHNlIHsKIAkJaW50IGksIGRpdiA9IDEwMDAwMDA7CiAJCWZvciAoaSA9IDA7IGkgPCBmcmVxLT5lOyBpKyspCiAJCQlkaXYgLz0gMTA7CiAJCWlmIChkaXYgPiAwKQotCQkJcmV0dXJuIGllZWU4MDIxMV9zZXRfZnJlcShsb2NhbCwgZnJlcS0+bSAvIGRpdik7CisJCQlyZXR1cm4gaWVlZTgwMjExX3NldF9mcmVxKGRldiwgZnJlcS0+bSAvIGRpdik7CiAJCWVsc2UKIAkJCXJldHVybiAtRUlOVkFMOwogCX0KQEAgLTQ4OSw5ICs1MDMsMTUgQEAKIAlzZGF0YSA9IElFRUU4MDIxMV9ERVZfVE9fU1VCX0lGKGRldik7CiAJaWYgKHNkYXRhLT52aWYudHlwZSA9PSBJRUVFODAyMTFfSUZfVFlQRV9TVEEgfHwKIAkgICAgc2RhdGEtPnZpZi50eXBlID09IElFRUU4MDIxMV9JRl9UWVBFX0lCU1MpIHsKLQkJYXBfYWRkci0+c2FfZmFtaWx5ID0gQVJQSFJEX0VUSEVSOwotCQltZW1jcHkoJmFwX2FkZHItPnNhX2RhdGEsIHNkYXRhLT51LnN0YS5ic3NpZCwgRVRIX0FMRU4pOwotCQlyZXR1cm4gMDsKKwkJaWYgKHNkYXRhLT51LnN0YS5zdGF0ZSA9PSBJRUVFODAyMTFfQVNTT0NJQVRFRCB8fAorCQkgICAgc2RhdGEtPnUuc3RhLnN0YXRlID09IElFRUU4MDIxMV9JQlNTX0pPSU5FRCkgeworCQkJYXBfYWRkci0+c2FfZmFtaWx5ID0gQVJQSFJEX0VUSEVSOworCQkJbWVtY3B5KCZhcF9hZGRyLT5zYV9kYXRhLCBzZGF0YS0+dS5zdGEuYnNzaWQsIEVUSF9BTEVOKTsKKwkJCXJldHVybiAwOworCQl9IGVsc2UgeworCQkJbWVtc2V0KCZhcF9hZGRyLT5zYV9kYXRhLCAwLCBFVEhfQUxFTik7CisJCQlyZXR1cm4gMDsKKwkJfQogCX0gZWxzZSBpZiAoc2RhdGEtPnZpZi50eXBlID09IElFRUU4MDIxMV9JRl9UWVBFX1dEUykgewogCQlhcF9hZGRyLT5zYV9mYW1pbHkgPSBBUlBIUkRfRVRIRVI7CiAJCW1lbWNweSgmYXBfYWRkci0+c2FfZGF0YSwgc2RhdGEtPnUud2RzLnJlbW90ZV9hZGRyLCBFVEhfQUxFTik7CmRpZmYgLS1naXQgYS9uZXQvbWFjODAyMTEvd21lLmMgYi9uZXQvbWFjODAyMTEvd21lLmMKaW5kZXggZGMxNTk4Yi4uNWQwOWU4NiAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL3dtZS5jCisrKyBiL25ldC9tYWM4MDIxMS93bWUuYwpAQCAtMzIzLDggKzMyMyw3IEBACiAJc3RydWN0IGllZWU4MDIxMV9odyAqaHcgPSAmbG9jYWwtPmh3OwogCWludCBxdWV1ZTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHEtPmZpbHRlcl9saXN0KTsKLQlxLT5maWx0ZXJfbGlzdCA9IE5VTEw7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnEtPmZpbHRlcl9saXN0KTsKIAogCWZvciAocXVldWU9MDsgcXVldWUgPCBody0+cXVldWVzOyBxdWV1ZSsrKSB7CiAJCXNrYl9xdWV1ZV9wdXJnZSgmcS0+cmVxdWV1ZWRbcXVldWVdKTsKQEAgLTY3Myw3ICs2NzIsNyBAQAogI2lmZGVmIENPTkZJR19NQUM4MDIxMV9IVF9ERUJVRwogCQkJaWYgKG5ldF9yYXRlbGltaXQoKSkKIAkJCQlwcmludGsoS0VSTl9ERUJVRyAiYWxsb2NhdGVkIGFnZ3JlZ2F0aW9uIHF1ZXVlIgotCQkJCQkiICVkIHRpZCAlZCBhZGRyICVzIHBvb2w9MHglbFgiLAorCQkJCQkiICVkIHRpZCAlZCBhZGRyICVzIHBvb2w9MHglbFhcbiIsCiAJCQkJCWksIHRpZCwgcHJpbnRfbWFjKG1hYywgc3RhLT5hZGRyKSwKIAkJCQkJcS0+cWRpc2NfcG9vbFswXSk7CiAjZW5kaWYgLyogQ09ORklHX01BQzgwMjExX0hUX0RFQlVHICovCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19jb3JlLmMKaW5kZXggYzRiMTc5OS4uNjYyYzFjYyAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfY29yZS5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2NvcmUuYwpAQCAtMTk2LDggKzE5Niw2IEBACiAJaWYgKGw0cHJvdG8gJiYgbDRwcm90by0+ZGVzdHJveSkKIAkJbDRwcm90by0+ZGVzdHJveShjdCk7CiAKLQluZl9jdF9leHRfZGVzdHJveShjdCk7Ci0KIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCXNwaW5fbG9ja19iaCgmbmZfY29ubnRyYWNrX2xvY2spOwpAQCAtNTIwLDYgKzUxOCw3IEBACiAKIHZvaWQgbmZfY29ubnRyYWNrX2ZyZWUoc3RydWN0IG5mX2Nvbm4gKmN0KQogeworCW5mX2N0X2V4dF9kZXN0cm95KGN0KTsKIAljYWxsX3JjdSgmY3QtPnJjdSwgbmZfY29ubnRyYWNrX2ZyZWVfcmN1KTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKG5mX2Nvbm50cmFja19mcmVlKTsKZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4cGVjdC5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXhwZWN0LmMKaW5kZXggZTMxYmVlYi4uZThmMGRlYSAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXhwZWN0LmMKKysrIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXhwZWN0LmMKQEAgLTU4NywxMCArNTg3LDEwIEBACiAJcmV0dXJuIDA7CiAKIGVycjM6CisJa21lbV9jYWNoZV9kZXN0cm95KG5mX2N0X2V4cGVjdF9jYWNoZXApOworZXJyMjoKIAluZl9jdF9mcmVlX2hhc2h0YWJsZShuZl9jdF9leHBlY3RfaGFzaCwgbmZfY3RfZXhwZWN0X3ZtYWxsb2MsCiAJCQkgICAgIG5mX2N0X2V4cGVjdF9oc2l6ZSk7Ci1lcnIyOgotCWttZW1fY2FjaGVfZGVzdHJveShuZl9jdF9leHBlY3RfY2FjaGVwKTsKIGVycjE6CiAJcmV0dXJuIGVycjsKIH0KZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2V4dGVuZC5jIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmMKaW5kZXggYmNjMTlmYS4uOGEzZjhiMyAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmMKKysrIGIvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfZXh0ZW5kLmMKQEAgLTU5LDEyICs1OSwxOSBAQAogCWlmICghKmV4dCkKIAkJcmV0dXJuIE5VTEw7CiAKKwlJTklUX1JDVV9IRUFEKCYoKmV4dCktPnJjdSk7CiAJKCpleHQpLT5vZmZzZXRbaWRdID0gb2ZmOwogCSgqZXh0KS0+bGVuID0gbGVuOwogCiAJcmV0dXJuICh2b2lkICopKCpleHQpICsgb2ZmOwogfQogCitzdGF0aWMgdm9pZCBfX25mX2N0X2V4dF9mcmVlX3JjdShzdHJ1Y3QgcmN1X2hlYWQgKmhlYWQpCit7CisJc3RydWN0IG5mX2N0X2V4dCAqZXh0ID0gY29udGFpbmVyX29mKGhlYWQsIHN0cnVjdCBuZl9jdF9leHQsIHJjdSk7CisJa2ZyZWUoZXh0KTsKK30KKwogdm9pZCAqX19uZl9jdF9leHRfYWRkKHN0cnVjdCBuZl9jb25uICpjdCwgZW51bSBuZl9jdF9leHRfaWQgaWQsIGdmcF90IGdmcCkKIHsKIAlzdHJ1Y3QgbmZfY3RfZXh0ICpuZXc7CkBAIC0xMDYsNyArMTEzLDcgQEAKIAkJCQkJKHZvaWQgKiljdC0+ZXh0ICsgY3QtPmV4dC0+b2Zmc2V0W2ldKTsKIAkJCXJjdV9yZWFkX3VubG9jaygpOwogCQl9Ci0JCWtmcmVlKGN0LT5leHQpOworCQljYWxsX3JjdSgmY3QtPmV4dC0+cmN1LCBfX25mX2N0X2V4dF9mcmVlX3JjdSk7CiAJCWN0LT5leHQgPSBuZXc7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19oMzIzX21haW4uYyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2gzMjNfbWFpbi5jCmluZGV4IDk1ZGExYTIuLjJmODNjMTUgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2gzMjNfbWFpbi5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX2gzMjNfbWFpbi5jCkBAIC02MTksNiArNjE5LDcgQEAKIHN0YXRpYyBzdHJ1Y3QgbmZfY29ubnRyYWNrX2hlbHBlciBuZl9jb25udHJhY2tfaGVscGVyX2gyNDUgX19yZWFkX21vc3RseSA9IHsKIAkubmFtZQkJCT0gIkguMjQ1IiwKIAkubWUJCQk9IFRISVNfTU9EVUxFLAorCS50dXBsZS5zcmMubDNudW0JPSBBRl9VTlNQRUMsCiAJLnR1cGxlLmRzdC5wcm90b251bQk9IElQUFJPVE9fVURQLAogCS5oZWxwCQkJPSBoMjQ1X2hlbHAsCiAJLmV4cGVjdF9wb2xpY3kJCT0gJmgyNDVfZXhwX3BvbGljeSwKQEAgLTE3NjUsNiArMTc2Niw3IEBACiAJbmZfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3Jhc1swXSk7CiAJbmZfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3E5MzFbMV0pOwogCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzBdKTsKKwluZl9jb25udHJhY2tfaGVscGVyX3VucmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfaDI0NSk7CiAJa2ZyZWUoaDMyM19idWZmZXIpOwogCXByX2RlYnVnKCJuZl9jdF9oMzIzOiBmaW5pXG4iKTsKIH0KQEAgLTE3NzcsMjggKzE3NzksMzQgQEAKIAloMzIzX2J1ZmZlciA9IGttYWxsb2MoNjU1MzYsIEdGUF9LRVJORUwpOwogCWlmICghaDMyM19idWZmZXIpCiAJCXJldHVybiAtRU5PTUVNOwotCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVswXSk7CisJcmV0ID0gbmZfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9oMjQ1KTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnIxOwotCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcTkzMVsxXSk7CisJcmV0ID0gbmZfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzBdKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnIyOwotCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcmFzWzBdKTsKKwlyZXQgPSBuZl9jb25udHJhY2tfaGVscGVyX3JlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX3E5MzFbMV0pOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycjM7Ci0JcmV0ID0gbmZfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9yYXNbMV0pOworCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcmFzWzBdKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnI0OworCXJldCA9IG5mX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcmFzWzFdKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBlcnI1OwogCXByX2RlYnVnKCJuZl9jdF9oMzIzOiBpbml0IHN1Y2Nlc3NcbiIpOwogCXJldHVybiAwOwogCi1lcnI0OgorZXJyNToKIAluZl9jb25udHJhY2tfaGVscGVyX3VucmVnaXN0ZXIoJm5mX2Nvbm50cmFja19oZWxwZXJfcmFzWzBdKTsKLWVycjM6CitlcnI0OgogCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzFdKTsKLWVycjI6CitlcnIzOgogCW5mX2Nvbm50cmFja19oZWxwZXJfdW5yZWdpc3RlcigmbmZfY29ubnRyYWNrX2hlbHBlcl9xOTMxWzBdKTsKK2VycjI6CisJbmZfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKCZuZl9jb25udHJhY2tfaGVscGVyX2gyNDUpOwogZXJyMToKKwlrZnJlZShoMzIzX2J1ZmZlcik7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fdGNwLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwppbmRleCBiYTk0MDA0Li5kZDI4ZmIyIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b190Y3AuYwpAQCAtMzMxLDEyICszMzEsMTMgQEAKIAogICAgSS4gICBVcHBlciBib3VuZCBmb3IgdmFsaWQgZGF0YToJc2VxIDw9IHNlbmRlci50ZF9tYXhlbmQKICAgIElJLiAgTG93ZXIgYm91bmQgZm9yIHZhbGlkIGRhdGE6CXNlcSArIGxlbiA+PSBzZW5kZXIudGRfZW5kIC0gcmVjZWl2ZXIudGRfbWF4d2luCi0gICBJSUkuCVVwcGVyIGJvdW5kIGZvciB2YWxpZCBhY2s6ICAgICAgc2FjayA8PSByZWNlaXZlci50ZF9lbmQKLSAgIElWLglMb3dlciBib3VuZCBmb3IgdmFsaWQgYWNrOglhY2sgPj0gcmVjZWl2ZXIudGRfZW5kIC0gTUFYQUNLV0lORE9XCisgICBJSUkuCVVwcGVyIGJvdW5kIGZvciB2YWxpZCAocylhY2s6ICAgc2FjayA8PSByZWNlaXZlci50ZF9lbmQKKyAgIElWLglMb3dlciBib3VuZCBmb3IgdmFsaWQgKHMpYWNrOglzYWNrID49IHJlY2VpdmVyLnRkX2VuZCAtIE1BWEFDS1dJTkRPVwogCi0gICB3aGVyZSBzYWNrIGlzIHRoZSBoaWdoZXN0IHJpZ2h0IGVkZ2Ugb2Ygc2FjayBibG9jayBmb3VuZCBpbiB0aGUgcGFja2V0LgorICAgd2hlcmUgc2FjayBpcyB0aGUgaGlnaGVzdCByaWdodCBlZGdlIG9mIHNhY2sgYmxvY2sgZm91bmQgaW4gdGhlIHBhY2tldAorICAgb3IgYWNrIGluIHRoZSBjYXNlIG9mIHBhY2tldCB3aXRob3V0IFNBQ0sgb3B0aW9uLgogCi0gICBUaGUgdXBwZXIgYm91bmQgbGltaXQgZm9yIGEgdmFsaWQgYWNrIGlzIG5vdCBpZ25vcmVkIC0KKyAgIFRoZSB1cHBlciBib3VuZCBsaW1pdCBmb3IgYSB2YWxpZCAocylhY2sgaXMgbm90IGlnbm9yZWQgLQogICAgd2UgZG9lc24ndCBoYXZlIHRvIGRlYWwgd2l0aCBmcmFnbWVudHMuCiAqLwogCkBAIC02MDYsMTIgKzYwNywxMiBAQAogCQkgYmVmb3JlKHNlcSwgc2VuZGVyLT50ZF9tYXhlbmQgKyAxKSwKIAkJIGFmdGVyKGVuZCwgc2VuZGVyLT50ZF9lbmQgLSByZWNlaXZlci0+dGRfbWF4d2luIC0gMSksCiAJCSBiZWZvcmUoc2FjaywgcmVjZWl2ZXItPnRkX2VuZCArIDEpLAotCQkgYWZ0ZXIoYWNrLCByZWNlaXZlci0+dGRfZW5kIC0gTUFYQUNLV0lORE9XKHNlbmRlcikpKTsKKwkJIGFmdGVyKHNhY2ssIHJlY2VpdmVyLT50ZF9lbmQgLSBNQVhBQ0tXSU5ET1coc2VuZGVyKSAtIDEpKTsKIAogCWlmIChiZWZvcmUoc2VxLCBzZW5kZXItPnRkX21heGVuZCArIDEpICYmCiAJICAgIGFmdGVyKGVuZCwgc2VuZGVyLT50ZF9lbmQgLSByZWNlaXZlci0+dGRfbWF4d2luIC0gMSkgJiYKIAkgICAgYmVmb3JlKHNhY2ssIHJlY2VpdmVyLT50ZF9lbmQgKyAxKSAmJgotCSAgICBhZnRlcihhY2ssIHJlY2VpdmVyLT50ZF9lbmQgLSBNQVhBQ0tXSU5ET1coc2VuZGVyKSkpIHsKKwkgICAgYWZ0ZXIoc2FjaywgcmVjZWl2ZXItPnRkX2VuZCAtIE1BWEFDS1dJTkRPVyhzZW5kZXIpIC0gMSkpIHsKIAkJLyoKIAkJICogVGFrZSBpbnRvIGFjY291bnQgd2luZG93IHNjYWxpbmcgKFJGQyAxMzIzKS4KIAkJICovCkBAIC04NDMsOSArODQ0LDE1IEBACiAJCQkvKiBBdHRlbXB0IHRvIHJlb3BlbiBhIGNsb3NlZC9hYm9ydGVkIGNvbm5lY3Rpb24uCiAJCQkgKiBEZWxldGUgdGhpcyBjb25uZWN0aW9uIGFuZCBsb29rIHVwIGFnYWluLiAqLwogCQkJd3JpdGVfdW5sb2NrX2JoKCZ0Y3BfbG9jayk7Ci0JCQlpZiAoZGVsX3RpbWVyKCZjdC0+dGltZW91dCkpCisJCQkvKiBPbmx5IHJlcGVhdCBpZiB3ZSBjYW4gYWN0dWFsbHkgcmVtb3ZlIHRoZSB0aW1lci4KKwkJCSAqIERlc3RydWN0aW9uIG1heSBhbHJlYWR5IGJlIGluIHByb2dyZXNzIGluIHByb2Nlc3MKKwkJCSAqIGNvbnRleHQgYW5kIHdlIG11c3QgZ2l2ZSBpdCBhIGNoYW5jZSB0byB0ZXJtaW5hdGUuCisJCQkgKi8KKwkJCWlmIChkZWxfdGltZXIoJmN0LT50aW1lb3V0KSkgewogCQkJCWN0LT50aW1lb3V0LmZ1bmN0aW9uKCh1bnNpZ25lZCBsb25nKWN0KTsKLQkJCXJldHVybiAtTkZfUkVQRUFUOworCQkJCXJldHVybiAtTkZfUkVQRUFUOworCQkJfQorCQkJcmV0dXJuIC1ORl9EUk9QOwogCQl9CiAJCS8qIEZhbGwgdGhyb3VnaCAqLwogCWNhc2UgVENQX0NPTk5UUkFDS19JR05PUkU6CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2xvZy5jIGIvbmV0L25ldGZpbHRlci9uZl9sb2cuYwppbmRleCBiYzExZDcwLi45ZmRhNmVlIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL25mX2xvZy5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfbG9nLmMKQEAgLTkyLDEwICs5Miw2IEBACiAJCXZzbnByaW50ZihwcmVmaXgsIHNpemVvZihwcmVmaXgpLCBmbXQsIGFyZ3MpOwogCQl2YV9lbmQoYXJncyk7CiAJCWxvZ2dlci0+bG9nZm4ocGYsIGhvb2tudW0sIHNrYiwgaW4sIG91dCwgbG9naW5mbywgcHJlZml4KTsKLQl9IGVsc2UgaWYgKG5ldF9yYXRlbGltaXQoKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJuZl9sb2dfcGFja2V0OiBjYW5cJ3QgbG9nIHNpbmNlICIKLQkJICAgICAgICJubyBiYWNrZW5kIGxvZ2dpbmcgbW9kdWxlIGxvYWRlZCBpbiEgUGxlYXNlIGVpdGhlciAiCi0JCSAgICAgICAibG9hZCBvbmUsIG9yIGRpc2FibGUgbG9nZ2luZyBleHBsaWNpdGx5XG4iKTsKIAl9CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL3h0X2Nvbm5saW1pdC5jIGIvbmV0L25ldGZpbHRlci94dF9jb25ubGltaXQuYwppbmRleCAyZTg5YTAwLi43MDkwN2Y2IDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL3h0X2Nvbm5saW1pdC5jCisrKyBiL25ldC9uZXRmaWx0ZXIveHRfY29ubmxpbWl0LmMKQEAgLTczLDcgKzczLDggQEAKIHN0YXRpYyBpbmxpbmUgYm9vbCBhbHJlYWR5X2Nsb3NlZChjb25zdCBzdHJ1Y3QgbmZfY29ubiAqY29ubikKIHsKIAlpZiAobmZfY3RfcHJvdG9udW0oY29ubikgPT0gSVBQUk9UT19UQ1ApCi0JCXJldHVybiBjb25uLT5wcm90by50Y3Auc3RhdGUgPT0gVENQX0NPTk5UUkFDS19USU1FX1dBSVQ7CisJCXJldHVybiBjb25uLT5wcm90by50Y3Auc3RhdGUgPT0gVENQX0NPTk5UUkFDS19USU1FX1dBSVQgfHwKKwkJICAgICAgIGNvbm4tPnByb3RvLnRjcC5zdGF0ZSA9PSBUQ1BfQ09OTlRSQUNLX0NMT1NFOwogCWVsc2UKIAkJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfY2lwc29fdjQuYyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9jaXBzb192NC5jCmluZGV4IGZkYzE0YTAuLjkwODBjNjEgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9jaXBzb192NC5jCisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9jaXBzb192NC5jCkBAIC01ODQsMTIgKzU4NCw3IEBACiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKIAlnZW5sbXNnX2VuZChhbnNfc2tiLCBkYXRhKTsKLQotCXJldF92YWwgPSBnZW5sbXNnX3JlcGx5KGFuc19za2IsIGluZm8pOwotCWlmIChyZXRfdmFsICE9IDApCi0JCWdvdG8gbGlzdF9mYWlsdXJlOwotCi0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7CiAKIGxpc3RfcmV0cnk6CiAJLyogWFhYIC0gdGhpcyBsaW1pdCBpcyBhIGd1ZXNzdGltYXRlICovCmRpZmYgLS1naXQgYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfbWdtdC5jIGIvbmV0L25ldGxhYmVsL25ldGxhYmVsX21nbXQuYwppbmRleCAyMmMxOTEyLi40NGJlNWQ1IDEwMDY0NAotLS0gYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfbWdtdC5jCisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9tZ210LmMKQEAgLTM4NiwxMSArMzg2LDcgQEAKIAlyY3VfcmVhZF91bmxvY2soKTsKIAogCWdlbmxtc2dfZW5kKGFuc19za2IsIGRhdGEpOwotCi0JcmV0X3ZhbCA9IGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7Ci0JaWYgKHJldF92YWwgIT0gMCkKLQkJZ290byBsaXN0ZGVmX2ZhaWx1cmU7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7CiAKIGxpc3RkZWZfZmFpbHVyZV9sb2NrOgogCXJjdV9yZWFkX3VubG9jaygpOwpAQCAtNTAxLDExICs0OTcsNyBAQAogCQlnb3RvIHZlcnNpb25fZmFpbHVyZTsKIAogCWdlbmxtc2dfZW5kKGFuc19za2IsIGRhdGEpOwotCi0JcmV0X3ZhbCA9IGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7Ci0JaWYgKHJldF92YWwgIT0gMCkKLQkJZ290byB2ZXJzaW9uX2ZhaWx1cmU7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbmxtc2dfcmVwbHkoYW5zX3NrYiwgaW5mbyk7CiAKIHZlcnNpb25fZmFpbHVyZToKIAlrZnJlZV9za2IoYW5zX3NrYik7CmRpZmYgLS1naXQgYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfdW5sYWJlbGVkLmMgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfdW5sYWJlbGVkLmMKaW5kZXggMDA5OWRhNS4uNTZmODA4NyAxMDA2NDQKLS0tIGEvbmV0L25ldGxhYmVsL25ldGxhYmVsX3VubGFiZWxlZC5jCisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuYwpAQCAtMTEwNywxMSArMTEwNyw3IEBACiAJCWdvdG8gbGlzdF9mYWlsdXJlOwogCiAJZ2VubG1zZ19lbmQoYW5zX3NrYiwgZGF0YSk7Ci0KLQlyZXRfdmFsID0gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKLQlpZiAocmV0X3ZhbCAhPSAwKQotCQlnb3RvIGxpc3RfZmFpbHVyZTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZ2VubG1zZ19yZXBseShhbnNfc2tiLCBpbmZvKTsKIAogbGlzdF9mYWlsdXJlOgogCWtmcmVlX3NrYihhbnNfc2tiKTsKQEAgLTE1MzQsNyArMTUzMCw3IEBACiAJCX0KIAl9CiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UoYWRkcjYsICZpZmFjZS0+YWRkcjZfbGlzdCwgbGlzdCkgewotCQlpZiAoYWRkcjYtPnZhbGlkIHx8IGl0ZXJfYWRkcjYrKyA8IHNraXBfYWRkcjYpCisJCWlmICghYWRkcjYtPnZhbGlkIHx8IGl0ZXJfYWRkcjYrKyA8IHNraXBfYWRkcjYpCiAJCQljb250aW51ZTsKIAkJaWYgKG5ldGxibF91bmxhYmVsX3N0YXRpY2xpc3RfZ2VuKE5MQkxfVU5MQUJFTF9DX1NUQVRJQ0xJU1RERUYsCiAJCQkJCSAgIGlmYWNlLApkaWZmIC0tZ2l0IGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jIGIvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCmluZGV4IDliOTdmODAuLjM0OWFiYTEgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTg4Niw3ICs4ODYsNyBAQAogCQlyZXR1cm4gbmV0bGlua191bmljYXN0X2tlcm5lbChzaywgc2tiKTsKIAogCWlmIChza19maWx0ZXIoc2ssIHNrYikpIHsKLQkJaW50IGVyciA9IHNrYi0+bGVuOworCQllcnIgPSBza2ItPmxlbjsKIAkJa2ZyZWVfc2tiKHNrYik7CiAJCXNvY2tfcHV0KHNrKTsKIAkJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2F0dHIuYyBiL25ldC9uZXRsaW5rL2F0dHIuYwppbmRleCBmZWIzMjZmLi4yZDEwNmNmIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9hdHRyLmMKKysrIGIvbmV0L25ldGxpbmsvYXR0ci5jCkBAIC0xMzIsNiArMTMyLDcgQEAKICAqIEBtYXh0eXBlOiBtYXhpbXVtIGF0dHJpYnV0ZSB0eXBlIHRvIGJlIGV4cGVjdGVkCiAgKiBAaGVhZDogaGVhZCBvZiBhdHRyaWJ1dGUgc3RyZWFtCiAgKiBAbGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHN0cmVhbQorICogQHBvbGljeTogdmFsaWRhdGlvbiBwb2xpY3kKICAqCiAgKiBQYXJzZXMgYSBzdHJlYW0gb2YgYXR0cmlidXRlcyBhbmQgc3RvcmVzIGEgcG9pbnRlciB0byBlYWNoIGF0dHJpYnV0ZSBpbgogICogdGhlIHRiIGFycmF5IGFjY2Vzc2FibGUgdmlhIHRoZSBhdHRyaWJ1dGUgdHlwZS4gQXR0cmlidXRlcyB3aXRoIGEgdHlwZQpAQCAtMTk0LDcgKzE5NSw3IEBACiAvKioKICAqIG5sYV9zdHJsY3B5IC0gQ29weSBzdHJpbmcgYXR0cmlidXRlIHBheWxvYWQgaW50byBhIHNpemVkIGJ1ZmZlcgogICogQGRzdDogd2hlcmUgdG8gY29weSB0aGUgc3RyaW5nIHRvCi0gKiBAc3JjOiBhdHRyaWJ1dGUgdG8gY29weSB0aGUgc3RyaW5nIGZyb20KKyAqIEBubGE6IGF0dHJpYnV0ZSB0byBjb3B5IHRoZSBzdHJpbmcgZnJvbQogICogQGRzdHNpemU6IHNpemUgb2YgZGVzdGluYXRpb24gYnVmZmVyCiAgKgogICogQ29waWVzIGF0IG1vc3QgZHN0c2l6ZSAtIDEgYnl0ZXMgaW50byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLgpAQCAtMzQwLDkgKzM0MSw5IEBACiB9CiAKIC8qKgotICogbmxhX3Jlc2VydmUgLSByZXNlcnZlIHJvb20gZm9yIGF0dHJpYnV0ZSB3aXRob3V0IGhlYWRlcgorICogbmxhX3Jlc2VydmVfbm9oZHIgLSByZXNlcnZlIHJvb20gZm9yIGF0dHJpYnV0ZSB3aXRob3V0IGhlYWRlcgogICogQHNrYjogc29ja2V0IGJ1ZmZlciB0byByZXNlcnZlIHJvb20gb24KLSAqIEBsZW46IGxlbmd0aCBvZiBhdHRyaWJ1dGUgcGF5bG9hZAorICogQGF0dHJsZW46IGxlbmd0aCBvZiBhdHRyaWJ1dGUgcGF5bG9hZAogICoKICAqIFJlc2VydmVzIHJvb20gZm9yIGF0dHJpYnV0ZSBwYXlsb2FkIHdpdGhvdXQgYSBoZWFkZXIuCiAgKgpAQCAtNDAwLDEzICs0MDEsMTMgQEAKICAqIEBhdHRybGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHBheWxvYWQKICAqIEBkYXRhOiBoZWFkIG9mIGF0dHJpYnV0ZSBwYXlsb2FkCiAgKgotICogUmV0dXJucyAtMSBpZiB0aGUgdGFpbHJvb20gb2YgdGhlIHNrYiBpcyBpbnN1ZmZpY2llbnQgdG8gc3RvcmUKKyAqIFJldHVybnMgLUVNU0dTSVpFIGlmIHRoZSB0YWlscm9vbSBvZiB0aGUgc2tiIGlzIGluc3VmZmljaWVudCB0byBzdG9yZQogICogdGhlIGF0dHJpYnV0ZSBoZWFkZXIgYW5kIHBheWxvYWQuCiAgKi8KIGludCBubGFfcHV0KHN0cnVjdCBza19idWZmICpza2IsIGludCBhdHRydHlwZSwgaW50IGF0dHJsZW4sIGNvbnN0IHZvaWQgKmRhdGEpCiB7CiAJaWYgKHVubGlrZWx5KHNrYl90YWlscm9vbShza2IpIDwgbmxhX3RvdGFsX3NpemUoYXR0cmxlbikpKQotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU1TR1NJWkU7CiAKIAlfX25sYV9wdXQoc2tiLCBhdHRydHlwZSwgYXR0cmxlbiwgZGF0YSk7CiAJcmV0dXJuIDA7CkBAIC00MTgsMTMgKzQxOSwxMyBAQAogICogQGF0dHJsZW46IGxlbmd0aCBvZiBhdHRyaWJ1dGUgcGF5bG9hZAogICogQGRhdGE6IGhlYWQgb2YgYXR0cmlidXRlIHBheWxvYWQKICAqCi0gKiBSZXR1cm5zIC0xIGlmIHRoZSB0YWlscm9vbSBvZiB0aGUgc2tiIGlzIGluc3VmZmljaWVudCB0byBzdG9yZQorICogUmV0dXJucyAtRU1TR1NJWkUgaWYgdGhlIHRhaWxyb29tIG9mIHRoZSBza2IgaXMgaW5zdWZmaWNpZW50IHRvIHN0b3JlCiAgKiB0aGUgYXR0cmlidXRlIHBheWxvYWQuCiAgKi8KIGludCBubGFfcHV0X25vaGRyKHN0cnVjdCBza19idWZmICpza2IsIGludCBhdHRybGVuLCBjb25zdCB2b2lkICpkYXRhKQogewogCWlmICh1bmxpa2VseShza2JfdGFpbHJvb20oc2tiKSA8IE5MQV9BTElHTihhdHRybGVuKSkpCi0JCXJldHVybiAtMTsKKwkJcmV0dXJuIC1FTVNHU0laRTsKIAogCV9fbmxhX3B1dF9ub2hkcihza2IsIGF0dHJsZW4sIGRhdGEpOwogCXJldHVybiAwOwpAQCAtNDM2LDEzICs0MzcsMTMgQEAKICAqIEBhdHRybGVuOiBsZW5ndGggb2YgYXR0cmlidXRlIHBheWxvYWQKICAqIEBkYXRhOiBoZWFkIG9mIGF0dHJpYnV0ZSBwYXlsb2FkCiAgKgotICogUmV0dXJucyAtMSBpZiB0aGUgdGFpbHJvb20gb2YgdGhlIHNrYiBpcyBpbnN1ZmZpY2llbnQgdG8gc3RvcmUKKyAqIFJldHVybnMgLUVNU0dTSVpFIGlmIHRoZSB0YWlscm9vbSBvZiB0aGUgc2tiIGlzIGluc3VmZmljaWVudCB0byBzdG9yZQogICogdGhlIGF0dHJpYnV0ZSBwYXlsb2FkLgogICovCiBpbnQgbmxhX2FwcGVuZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgYXR0cmxlbiwgY29uc3Qgdm9pZCAqZGF0YSkKIHsKIAlpZiAodW5saWtlbHkoc2tiX3RhaWxyb29tKHNrYikgPCBOTEFfQUxJR04oYXR0cmxlbikpKQotCQlyZXR1cm4gLTE7CisJCXJldHVybiAtRU1TR1NJWkU7CiAKIAltZW1jcHkoc2tiX3B1dChza2IsIGF0dHJsZW4pLCBkYXRhLCBhdHRybGVuKTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2dlbmV0bGluay5jIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKaW5kZXggZDE2OTI5Yy4uM2UxMTkxYyAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKKysrIGIvbmV0L25ldGxpbmsvZ2VuZXRsaW5rLmMKQEAgLTQ0NCw4ICs0NDQsMTEgQEAKIAkJaWYgKG9wcy0+ZHVtcGl0ID09IE5VTEwpCiAJCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAKLQkJcmV0dXJuIG5ldGxpbmtfZHVtcF9zdGFydChnZW5sX3NvY2ssIHNrYiwgbmxoLAotCQkJCQkgIG9wcy0+ZHVtcGl0LCBvcHMtPmRvbmUpOworCQlnZW5sX3VubG9jaygpOworCQllcnIgPSBuZXRsaW5rX2R1bXBfc3RhcnQoZ2VubF9zb2NrLCBza2IsIG5saCwKKwkJCQkJIG9wcy0+ZHVtcGl0LCBvcHMtPmRvbmUpOworCQlnZW5sX2xvY2soKTsKKwkJcmV0dXJuIGVycjsKIAl9CiAKIAlpZiAob3BzLT5kb2l0ID09IE5VTEwpCkBAIC01NTQsNyArNTU3LDggQEAKIAlyZXR1cm4gZ2VubG1zZ19lbmQoc2tiLCBoZHIpOwogCiBubGFfcHV0X2ZhaWx1cmU6Ci0JcmV0dXJuIGdlbmxtc2dfY2FuY2VsKHNrYiwgaGRyKTsKKwlnZW5sbXNnX2NhbmNlbChza2IsIGhkcik7CisJcmV0dXJuIC1FTVNHU0laRTsKIH0KIAogc3RhdGljIGludCBjdHJsX2ZpbGxfbWNncnBfaW5mbyhzdHJ1Y3QgZ2VubF9tdWx0aWNhc3RfZ3JvdXAgKmdycCwgdTMyIHBpZCwKQEAgLTU5MCw3ICs1OTQsOCBAQAogCXJldHVybiBnZW5sbXNnX2VuZChza2IsIGhkcik7CiAKIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gZ2VubG1zZ19jYW5jZWwoc2tiLCBoZHIpOworCWdlbmxtc2dfY2FuY2VsKHNrYiwgaGRyKTsKKwlyZXR1cm4gLUVNU0dTSVpFOwogfQogCiBzdGF0aWMgaW50IGN0cmxfZHVtcGZhbWlseShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCkBAIC02MDEsOSArNjA2LDYgQEAKIAlpbnQgY2hhaW5zX3RvX3NraXAgPSBjYi0+YXJnc1swXTsKIAlpbnQgZmFtc190b19za2lwID0gY2ItPmFyZ3NbMV07CiAKLQlpZiAoY2hhaW5zX3RvX3NraXAgIT0gMCkKLQkJZ2VubF9sb2NrKCk7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgR0VOTF9GQU1fVEFCX1NJWkU7IGkrKykgewogCQlpZiAoaSA8IGNoYWluc190b19za2lwKQogCQkJY29udGludWU7CkBAIC02MjEsOSArNjIzLDYgQEAKIAl9CiAKIGVycm91dDoKLQlpZiAoY2hhaW5zX3RvX3NraXAgIT0gMCkKLQkJZ2VubF91bmxvY2soKTsKLQogCWNiLT5hcmdzWzBdID0gaTsKIAljYi0+YXJnc1sxXSA9IG47CiAKQEAgLTc2OCw3ICs3NjcsNyBAQAogCiAJLyogd2UnbGwgYnVtcCB0aGUgZ3JvdXAgbnVtYmVyIHJpZ2h0IGFmdGVyd2FyZHMgKi8KIAlnZW5sX3NvY2sgPSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUoJmluaXRfbmV0LCBORVRMSU5LX0dFTkVSSUMsIDAsCi0JCQkJCSAgZ2VubF9yY3YsIE5VTEwsIFRISVNfTU9EVUxFKTsKKwkJCQkJICBnZW5sX3JjdiwgJmdlbmxfbXV0ZXgsIFRISVNfTU9EVUxFKTsKIAlpZiAoZ2VubF9zb2NrID09IE5VTEwpCiAJCXBhbmljKCJHRU5MOiBDYW5ub3QgaW5pdGlhbGl6ZSBnZW5lcmljIG5ldGxpbmtcbiIpOwogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvS2NvbmZpZyBiL25ldC9zY2hlZC9LY29uZmlnCmluZGV4IDgyYWRmZTYuLjk0MzdiMjcgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9LY29uZmlnCisrKyBiL25ldC9zY2hlZC9LY29uZmlnCkBAIC0xMDYsMTcgKzEwNiw2IEBACiAJICBUbyBjb21waWxlIHRoaXMgY29kZSBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCiAJICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgc2NoX3ByaW8uCiAKLWNvbmZpZyBORVRfU0NIX1JSCi0JdHJpc3RhdGUgIk11bHRpIEJhbmQgUm91bmQgUm9iaW4gUXVldWluZyAoUlIpIgotCXNlbGVjdCBORVRfU0NIX1BSSU8KLQktLS1oZWxwLS0tCi0JICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBhbiBuLWJhbmQgcm91bmQgcm9iaW4gcGFja2V0Ci0JICBzY2hlZHVsZXIuCi0KLQkgIFRoZSBtb2R1bGUgdXNlcyBzY2hfcHJpbyBmb3IgaXRzIGZyYW1ld29yayBhbmQgaXMgYWxpYXNlZCBhcwotCSAgc2NoX3JyLCBzbyBpdCB3aWxsIGxvYWQgc2NoX3ByaW8sIGFsdGhvdWdoIGl0IGlzIHJlZmVycmVkCi0JICB0byB1c2luZyBzY2hfcnIuCi0KIGNvbmZpZyBORVRfU0NIX1JFRAogCXRyaXN0YXRlICJSYW5kb20gRWFybHkgRGV0ZWN0aW9uIChSRUQpIgogCS0tLWhlbHAtLS0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXBpLmMgYi9uZXQvc2NoZWQvc2NoX2FwaS5jCmluZGV4IGM0MDc3M2MuLjEwZjAxYWQgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXBpLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9hcGkuYwpAQCAtMTI1MiwxMiArMTI1MiwxMiBAQAogCWtmcmVlKHRwKTsKIH0KIAotdm9pZCB0Y2ZfZGVzdHJveV9jaGFpbihzdHJ1Y3QgdGNmX3Byb3RvICpmbCkKK3ZvaWQgdGNmX2Rlc3Ryb3lfY2hhaW4oc3RydWN0IHRjZl9wcm90byAqKmZsKQogewogCXN0cnVjdCB0Y2ZfcHJvdG8gKnRwOwogCi0Jd2hpbGUgKCh0cCA9IGZsKSAhPSBOVUxMKSB7Ci0JCWZsID0gdHAtPm5leHQ7CisJd2hpbGUgKCh0cCA9ICpmbCkgIT0gTlVMTCkgeworCQkqZmwgPSB0cC0+bmV4dDsKIAkJdGNmX2Rlc3Ryb3kodHApOwogCX0KIH0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfYXRtLmMgYi9uZXQvc2NoZWQvc2NoX2F0bS5jCmluZGV4IDMzNTI3MzQuLmRiMGUyM2EgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfYXRtLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9hdG0uYwpAQCAtMTYwLDcgKzE2MCw3IEBACiAJKnByZXYgPSBmbG93LT5uZXh0OwogCXByX2RlYnVnKCJhdG1fdGNfcHV0OiBxZGlzYyAlcFxuIiwgZmxvdy0+cSk7CiAJcWRpc2NfZGVzdHJveShmbG93LT5xKTsKLQl0Y2ZfZGVzdHJveV9jaGFpbihmbG93LT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJmZsb3ctPmZpbHRlcl9saXN0KTsKIAlpZiAoZmxvdy0+c29jaykgewogCQlwcl9kZWJ1ZygiYXRtX3RjX3B1dDogZl9jb3VudCAlZFxuIiwKIAkJCWZpbGVfY291bnQoZmxvdy0+c29jay0+ZmlsZSkpOwpAQCAtNTg2LDEwICs1ODYsMTEgQEAKIAlzdHJ1Y3QgYXRtX2Zsb3dfZGF0YSAqZmxvdzsKIAogCXByX2RlYnVnKCJhdG1fdGNfZGVzdHJveShzY2ggJXAsW3FkaXNjICVwXSlcbiIsIHNjaCwgcCk7CisJZm9yIChmbG93ID0gcC0+Zmxvd3M7IGZsb3c7IGZsb3cgPSBmbG93LT5uZXh0KQorCQl0Y2ZfZGVzdHJveV9jaGFpbigmZmxvdy0+ZmlsdGVyX2xpc3QpOworCiAJLyogcmFjZXMgPyAqLwogCXdoaWxlICgoZmxvdyA9IHAtPmZsb3dzKSkgewotCQl0Y2ZfZGVzdHJveV9jaGFpbihmbG93LT5maWx0ZXJfbGlzdCk7Ci0JCWZsb3ctPmZpbHRlcl9saXN0ID0gTlVMTDsKIAkJaWYgKGZsb3ctPnJlZiA+IDEpCiAJCQlwcmludGsoS0VSTl9FUlIgImF0bV9kZXN0cm95OiAlcC0+cmVmID0gJWRcbiIsIGZsb3csCiAJCQkgICAgICAgZmxvdy0+cmVmKTsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JxLmMgYi9uZXQvc2NoZWQvc2NoX2NicS5jCmluZGV4IDA5OTY5YzEuLjJhM2M5N2YgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfY2JxLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9jYnEuYwpAQCAtMTcwNCw3ICsxNzA0LDcgQEAKIAogCUJVR19UUkFQKCFjbC0+ZmlsdGVycyk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihjbC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOwogCXFkaXNjX2Rlc3Ryb3koY2wtPnEpOwogCXFkaXNjX3B1dF9ydGFiKGNsLT5SX3RhYik7CiAJZ2VuX2tpbGxfZXN0aW1hdG9yKCZjbC0+YnN0YXRzLCAmY2wtPnJhdGVfZXN0KTsKQEAgLTE3MjgsMTAgKzE3MjgsOCBAQAogCSAqIGJlIGJvdW5kIHRvIGNsYXNzZXMgd2hpY2ggaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbHJlYWR5LiAtLVRHUiAnMDQKIAkgKi8KIAlmb3IgKGggPSAwOyBoIDwgMTY7IGgrKykgewotCQlmb3IgKGNsID0gcS0+Y2xhc3Nlc1toXTsgY2w7IGNsID0gY2wtPm5leHQpIHsKLQkJCXRjZl9kZXN0cm95X2NoYWluKGNsLT5maWx0ZXJfbGlzdCk7Ci0JCQljbC0+ZmlsdGVyX2xpc3QgPSBOVUxMOwotCQl9CisJCWZvciAoY2wgPSBxLT5jbGFzc2VzW2hdOyBjbDsgY2wgPSBjbC0+bmV4dCkKKwkJCXRjZl9kZXN0cm95X2NoYWluKCZjbC0+ZmlsdGVyX2xpc3QpOwogCX0KIAlmb3IgKGggPSAwOyBoIDwgMTY7IGgrKykgewogCQlzdHJ1Y3QgY2JxX2NsYXNzICpuZXh0OwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9kc21hcmsuYyBiL25ldC9zY2hlZC9zY2hfZHNtYXJrLmMKaW5kZXggMGRmOTExZi4uYzRjMTMxNyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9kc21hcmsuYworKysgYi9uZXQvc2NoZWQvc2NoX2RzbWFyay5jCkBAIC00MTYsNyArNDE2LDcgQEAKIAogCXByX2RlYnVnKCJkc21hcmtfZGVzdHJveShzY2ggJXAsW3FkaXNjICVwXSlcbiIsIHNjaCwgcCk7CiAKLQl0Y2ZfZGVzdHJveV9jaGFpbihwLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnAtPmZpbHRlcl9saXN0KTsKIAlxZGlzY19kZXN0cm95KHAtPnEpOwogCWtmcmVlKHAtPm1hc2spOwogfQpAQCAtNDQ0LDcgKzQ0NCw4IEBACiAJcmV0dXJuIG5sYV9uZXN0X2VuZChza2IsIG9wdHMpOwogCiBubGFfcHV0X2ZhaWx1cmU6Ci0JcmV0dXJuIG5sYV9uZXN0X2NhbmNlbChza2IsIG9wdHMpOworCW5sYV9uZXN0X2NhbmNlbChza2IsIG9wdHMpOworCXJldHVybiAtRU1TR1NJWkU7CiB9CiAKIHN0YXRpYyBpbnQgZHNtYXJrX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBza19idWZmICpza2IpCkBAIC00NjYsNyArNDY3LDggQEAKIAlyZXR1cm4gbmxhX25lc3RfZW5kKHNrYiwgb3B0cyk7CiAKIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gbmxhX25lc3RfY2FuY2VsKHNrYiwgb3B0cyk7CisJbmxhX25lc3RfY2FuY2VsKHNrYiwgb3B0cyk7CisJcmV0dXJuIC1FTVNHU0laRTsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBRZGlzY19jbGFzc19vcHMgZHNtYXJrX2NsYXNzX29wcyA9IHsKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfZ2VuZXJpYy5jIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKaW5kZXggZDM1NWU1ZS4uMTNhZmE3MiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKQEAgLTQ2OCw3ICs0NjgsNyBAQAogCiAJcmV0dXJuIHNjaDsKIGVycm91dDoKLQlyZXR1cm4gRVJSX1BUUigtZXJyKTsKKwlyZXR1cm4gRVJSX1BUUihlcnIpOwogfQogCiBzdHJ1Y3QgUWRpc2MgKiBxZGlzY19jcmVhdGVfZGZsdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHMsCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2dyZWQuYyBiL25ldC9zY2hlZC9zY2hfZ3JlZC5jCmluZGV4IDNhOWQyMjYuLmM4OWZiYTUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfZ3JlZC5jCisrKyBiL25ldC9zY2hlZC9zY2hfZ3JlZC5jCkBAIC01ODIsNyArNTgyLDggQEAKIAlyZXR1cm4gbmxhX25lc3RfZW5kKHNrYiwgb3B0cyk7CiAKIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gbmxhX25lc3RfY2FuY2VsKHNrYiwgb3B0cyk7CisJbmxhX25lc3RfY2FuY2VsKHNrYiwgb3B0cyk7CisJcmV0dXJuIC1FTVNHU0laRTsKIH0KIAogc3RhdGljIHZvaWQgZ3JlZF9kZXN0cm95KHN0cnVjdCBRZGlzYyAqc2NoKQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9oZnNjLmMgYi9uZXQvc2NoZWQvc2NoX2hmc2MuYwppbmRleCA4NzI5M2QwLi5lODE3YWEwIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2hmc2MuYworKysgYi9uZXQvc2NoZWQvc2NoX2hmc2MuYwpAQCAtMTEyMyw3ICsxMTIzLDcgQEAKIHsKIAlzdHJ1Y3QgaGZzY19zY2hlZCAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKGNsLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJmNsLT5maWx0ZXJfbGlzdCk7CiAJcWRpc2NfZGVzdHJveShjbC0+cWRpc2MpOwogCWdlbl9raWxsX2VzdGltYXRvcigmY2wtPmJzdGF0cywgJmNsLT5yYXRlX2VzdCk7CiAJaWYgKGNsICE9ICZxLT5yb290KQpAQCAtMTM2MCw3ICsxMzYwLDcgQEAKIAogIG5sYV9wdXRfZmFpbHVyZToKIAlubGFfbmVzdF9jYW5jZWwoc2tiLCBuZXN0KTsKLQlyZXR1cm4gLTE7CisJcmV0dXJuIC1FTVNHU0laRTsKIH0KIAogc3RhdGljIGludApAQCAtMTU0MSw2ICsxNTQxLDEwIEBACiAJdW5zaWduZWQgaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgSEZTQ19IU0laRTsgaSsrKSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkoY2wsICZxLT5jbGhhc2hbaV0sIGhsaXN0KQorCQkJdGNmX2Rlc3Ryb3lfY2hhaW4oJmNsLT5maWx0ZXJfbGlzdCk7CisJfQorCWZvciAoaSA9IDA7IGkgPCBIRlNDX0hTSVpFOyBpKyspIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGNsLCBuZXh0LCAmcS0+Y2xoYXNoW2ldLCBobGlzdCkKIAkJCWhmc2NfZGVzdHJveV9jbGFzcyhzY2gsIGNsKTsKIAl9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2h0Yi5jIGIvbmV0L3NjaGVkL3NjaF9odGIuYwppbmRleCA1YmMxZWQ0Li4zZmI1OGY0IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2h0Yi5jCisrKyBiL25ldC9zY2hlZC9zY2hfaHRiLmMKQEAgLTI4LDYgKzI4LDcgQEAKICAqICRJZDogc2NoX2h0Yi5jLHYgMS4yNSAyMDAzLzEyLzA3IDExOjA4OjI1IGRldmlrIEV4cCBkZXZpayAkCiAgKi8KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CkBAIC01MywxMyArNTQsMTcgQEAKICovCiAKICNkZWZpbmUgSFRCX0hTSVpFIDE2CQkvKiBjbGFzc2lkIGhhc2ggc2l6ZSAqLwotI2RlZmluZSBIVEJfSFlTVEVSRVNJUyAxCS8qIHdoZXRoZXIgdG8gdXNlIG1vZGUgaHlzdGVyZXNpcyBmb3Igc3BlZWR1cCAqLworc3RhdGljIGludCBodGJfaHlzdGVyZXNpcyBfX3JlYWRfbW9zdGx5ID0gMDsgLyogd2hldGhlciB0byB1c2UgbW9kZSBoeXN0ZXJlc2lzIGZvciBzcGVlZHVwICovCiAjZGVmaW5lIEhUQl9WRVIgMHgzMDAxMQkJLyogbWFqb3IgbXVzdCBiZSBtYXRjaGVkIHdpdGggbnVtYmVyIHN1cGxpZWQgYnkgVEMgYXMgdmVyc2lvbiAqLwogCiAjaWYgSFRCX1ZFUiA+PiAxNiAhPSBUQ19IVEJfUFJPVE9WRVIKICNlcnJvciAiTWlzbWF0Y2hlZCBzY2hfaHRiLmMgYW5kIHBrdF9zY2guaCIKICNlbmRpZgogCisvKiBNb2R1bGUgcGFyYW1ldGVyIGFuZCBzeXNmcyBleHBvcnQgKi8KK21vZHVsZV9wYXJhbSAgICAoaHRiX2h5c3RlcmVzaXMsIGludCwgMDY0MCk7CitNT0RVTEVfUEFSTV9ERVNDKGh0Yl9oeXN0ZXJlc2lzLCAiSHlzdGVyZXNpcyBtb2RlLCBsZXNzIENQVSBsb2FkLCBsZXNzIGFjY3VyYXRlIik7CisKIC8qIHVzZWQgaW50ZXJuYWx5IHRvIGtlZXAgc3RhdHVzIG9mIHNpbmdsZSBjbGFzcyAqLwogZW51bSBodGJfY21vZGUgewogCUhUQl9DQU5UX1NFTkQsCQkvKiBjbGFzcyBjYW4ndCBzZW5kIGFuZCBjYW4ndCBib3Jyb3cgKi8KQEAgLTQ2MiwxOSArNDY3LDIxIEBACiAJCWh0Yl9yZW1vdmVfY2xhc3NfZnJvbV9yb3cocSwgY2wsIG1hc2spOwogfQogCi0jaWYgSFRCX0hZU1RFUkVTSVMKIHN0YXRpYyBpbmxpbmUgbG9uZyBodGJfbG93YXRlcihjb25zdCBzdHJ1Y3QgaHRiX2NsYXNzICpjbCkKIHsKLQlyZXR1cm4gY2wtPmNtb2RlICE9IEhUQl9DQU5UX1NFTkQgPyAtY2wtPmNidWZmZXIgOiAwOworCWlmIChodGJfaHlzdGVyZXNpcykKKwkJcmV0dXJuIGNsLT5jbW9kZSAhPSBIVEJfQ0FOVF9TRU5EID8gLWNsLT5jYnVmZmVyIDogMDsKKwllbHNlCisJCXJldHVybiAwOwogfQogc3RhdGljIGlubGluZSBsb25nIGh0Yl9oaXdhdGVyKGNvbnN0IHN0cnVjdCBodGJfY2xhc3MgKmNsKQogewotCXJldHVybiBjbC0+Y21vZGUgPT0gSFRCX0NBTl9TRU5EID8gLWNsLT5idWZmZXIgOiAwOworCWlmIChodGJfaHlzdGVyZXNpcykKKwkJcmV0dXJuIGNsLT5jbW9kZSA9PSBIVEJfQ0FOX1NFTkQgPyAtY2wtPmJ1ZmZlciA6IDA7CisJZWxzZQorCQlyZXR1cm4gMDsKIH0KLSNlbHNlCi0jZGVmaW5lIGh0Yl9sb3dhdGVyKGNsKQkoMCkKLSNkZWZpbmUgaHRiX2hpd2F0ZXIoY2wpCSgwKQotI2VuZGlmCisKIAogLyoqCiAgKiBodGJfY2xhc3NfbW9kZSAtIGNvbXB1dGVzIGFuZCByZXR1cm5zIGN1cnJlbnQgY2xhc3MgbW9kZQpAQCAtMTIzMSw3ICsxMjM4LDcgQEAKIAlxZGlzY19wdXRfcnRhYihjbC0+cmF0ZSk7CiAJcWRpc2NfcHV0X3J0YWIoY2wtPmNlaWwpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4oY2wtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmY2wtPmZpbHRlcl9saXN0KTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmY2wtPmNoaWxkcmVuKSkKIAkJaHRiX2Rlc3Ryb3lfY2xhc3Moc2NoLCBsaXN0X2VudHJ5KGNsLT5jaGlsZHJlbi5uZXh0LApAQCAtMTI2MCw3ICsxMjY3LDcgQEAKIAkgICBhbmQgc3VycHJpc2luZ2x5IGl0IHdvcmtlZCBpbiAyLjQuIEJ1dCBpdCBtdXN0IHByZWNlZGUgaXQKIAkgICBiZWNhdXNlIGZpbHRlciBuZWVkIGl0cyB0YXJnZXQgY2xhc3MgYWxpdmUgdG8gYmUgYWJsZSB0byBjYWxsCiAJICAgdW5iaW5kX2ZpbHRlciBvbiBpdCAod2l0aG91dCBPb3BzKS4gKi8KLQl0Y2ZfZGVzdHJveV9jaGFpbihxLT5maWx0ZXJfbGlzdCk7CisJdGNmX2Rlc3Ryb3lfY2hhaW4oJnEtPmZpbHRlcl9saXN0KTsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmcS0+cm9vdCkpCiAJCWh0Yl9kZXN0cm95X2NsYXNzKHNjaCwgbGlzdF9lbnRyeShxLT5yb290Lm5leHQsCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2luZ3Jlc3MuYyBiL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCmluZGV4IDI3NGIxZGQuLjk1NmM4MGEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCisrKyBiL25ldC9zY2hlZC9zY2hfaW5ncmVzcy5jCkBAIC0xMDQsNyArMTA0LDcgQEAKIHsKIAlzdHJ1Y3QgaW5ncmVzc19xZGlzY19kYXRhICpwID0gcWRpc2NfcHJpdihzY2gpOwogCi0JdGNmX2Rlc3Ryb3lfY2hhaW4ocC0+ZmlsdGVyX2xpc3QpOworCXRjZl9kZXN0cm95X2NoYWluKCZwLT5maWx0ZXJfbGlzdCk7CiB9CiAKIHN0YXRpYyBpbnQgaW5ncmVzc19kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9wcmlvLmMgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwppbmRleCA0YWEyYjQ1Li41NTMyZjEwIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3ByaW8uYworKysgYi9uZXQvc2NoZWQvc2NoX3ByaW8uYwpAQCAtMjE5LDcgKzIxOSw3IEBACiAJaW50IHByaW87CiAJc3RydWN0IHByaW9fc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHEtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmcS0+ZmlsdGVyX2xpc3QpOwogCWZvciAocHJpbz0wOyBwcmlvPHEtPmJhbmRzOyBwcmlvKyspCiAJCXFkaXNjX2Rlc3Ryb3kocS0+cXVldWVzW3ByaW9dKTsKIH0KZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfcmVkLmMgYi9uZXQvc2NoZWQvc2NoX3JlZC5jCmluZGV4IDNkY2Q0OTMuLjVjNTY5ODUgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9zY2hfcmVkLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9yZWQuYwpAQCAtMjgxLDcgKzI4MSw4IEBACiAJcmV0dXJuIG5sYV9uZXN0X2VuZChza2IsIG9wdHMpOwogCiBubGFfcHV0X2ZhaWx1cmU6Ci0JcmV0dXJuIG5sYV9uZXN0X2NhbmNlbChza2IsIG9wdHMpOworCW5sYV9uZXN0X2NhbmNlbChza2IsIG9wdHMpOworCXJldHVybiAtRU1TR1NJWkU7CiB9CiAKIHN0YXRpYyBpbnQgcmVkX2R1bXBfc3RhdHMoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVjdCBnbmV0X2R1bXAgKmQpCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3NmcS5jIGIvbmV0L3NjaGVkL3NjaF9zZnEuYwppbmRleCBmMDQ2M2Q3Li42YTk3YWZiIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3NmcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfc2ZxLmMKQEAgLTUyMCw3ICs1MjAsNyBAQAogewogCXN0cnVjdCBzZnFfc2NoZWRfZGF0YSAqcSA9IHFkaXNjX3ByaXYoc2NoKTsKIAotCXRjZl9kZXN0cm95X2NoYWluKHEtPmZpbHRlcl9saXN0KTsKKwl0Y2ZfZGVzdHJveV9jaGFpbigmcS0+ZmlsdGVyX2xpc3QpOwogCXEtPnBlcnR1cmJfcGVyaW9kID0gMDsKIAlkZWxfdGltZXJfc3luYygmcS0+cGVydHVyYl90aW1lcik7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9hc3NvY2lvbGEuYyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCmluZGV4IGI0Y2QyYjcuLjAyNGMzZWIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2Fzc29jaW9sYS5jCisrKyBiL25ldC9zY3RwL2Fzc29jaW9sYS5jCkBAIC00NzQsNiArNDc0LDE1IEBACiB2b2lkIHNjdHBfYXNzb2Nfc2V0X3ByaW1hcnkoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkgICAgc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQpCiB7CisJaW50IGNoYW5nZW92ZXIgPSAwOworCisJLyogaXQncyBhIGNoYW5nZW92ZXIgb25seSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBwcmltYXJ5IHBhdGgKKwkgKiB0aGF0IHdlIGFyZSBjaGFuZ2luZworCSAqLworCWlmIChhc29jLT5wZWVyLnByaW1hcnlfcGF0aCAhPSBOVUxMICYmCisJICAgIGFzb2MtPnBlZXIucHJpbWFyeV9wYXRoICE9IHRyYW5zcG9ydCkKKwkJY2hhbmdlb3ZlciA9IDEgOworCiAJYXNvYy0+cGVlci5wcmltYXJ5X3BhdGggPSB0cmFuc3BvcnQ7CiAKIAkvKiBTZXQgYSBkZWZhdWx0IG1zZ19uYW1lIGZvciBldmVudHMuICovCkBAIC00OTksMTIgKzUwOCwxMiBAQAogCSAqIGRvdWJsZSBzd2l0Y2ggdG8gdGhlIHNhbWUgZGVzdGluYXRpb24gYWRkcmVzcy4KIAkgKi8KIAlpZiAodHJhbnNwb3J0LT5jYWNjLmNoYW5nZW92ZXJfYWN0aXZlKQotCQl0cmFuc3BvcnQtPmNhY2MuY3ljbGluZ19jaGFuZ2VvdmVyID0gMTsKKwkJdHJhbnNwb3J0LT5jYWNjLmN5Y2xpbmdfY2hhbmdlb3ZlciA9IGNoYW5nZW92ZXI7CiAKIAkvKiAyKSBUaGUgc2VuZGVyIE1VU1Qgc2V0IENIQU5HRU9WRVJfQUNUSVZFIHRvIGluZGljYXRlIHRoYXQKIAkgKiBhIGNoYW5nZW92ZXIgaGFzIG9jY3VycmVkLgogCSAqLwotCXRyYW5zcG9ydC0+Y2FjYy5jaGFuZ2VvdmVyX2FjdGl2ZSA9IDE7CisJdHJhbnNwb3J0LT5jYWNjLmNoYW5nZW92ZXJfYWN0aXZlID0gY2hhbmdlb3ZlcjsKIAogCS8qIDMpIFRoZSBzZW5kZXIgTVVTVCBzdG9yZSB0aGUgbmV4dCBUU04gdG8gYmUgc2VudCBpbgogCSAqIG5leHRfdHNuX2F0X2NoYW5nZS4KQEAgLTEyMDMsNiArMTIxMiw5IEBACiAJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCA9ICZhc29jLT5wZWVyLnRyYW5zcG9ydF9hZGRyX2xpc3Q7CiAJc3RydWN0IGxpc3RfaGVhZCAqcG9zOwogCisJaWYgKGFzb2MtPnBlZXIudHJhbnNwb3J0X2NvdW50ID09IDEpCisJCXJldHVybjsKKwogCS8qIEZpbmQgdGhlIG5leHQgdHJhbnNwb3J0IGluIGEgcm91bmQtcm9iaW4gZmFzaGlvbi4gKi8KIAl0ID0gYXNvYy0+cGVlci5yZXRyYW5fcGF0aDsKIAlwb3MgPSAmdC0+dHJhbnNwb3J0czsKQEAgLTEyMTcsNiArMTIyOSwxNSBAQAogCiAJCXQgPSBsaXN0X2VudHJ5KHBvcywgc3RydWN0IHNjdHBfdHJhbnNwb3J0LCB0cmFuc3BvcnRzKTsKIAorCQkvKiBXZSBoYXZlIGV4aGF1c3RlZCB0aGUgbGlzdCwgYnV0IGRpZG4ndCBmaW5kIGFueQorCQkgKiBvdGhlciBhY3RpdmUgdHJhbnNwb3J0cy4gIElmIHNvLCB1c2UgdGhlIG5leHQKKwkJICogdHJhbnNwb3J0LgorCQkgKi8KKwkJaWYgKHQgPT0gYXNvYy0+cGVlci5yZXRyYW5fcGF0aCkgeworCQkJdCA9IG5leHQ7CisJCQlicmVhazsKKwkJfQorCiAJCS8qIFRyeSB0byBmaW5kIGFuIGFjdGl2ZSB0cmFuc3BvcnQuICovCiAKIAkJaWYgKCh0LT5zdGF0ZSA9PSBTQ1RQX0FDVElWRSkgfHwKQEAgLTEyMjksMTUgKzEyNTAsNiBAQAogCQkJaWYgKCFuZXh0KQogCQkJCW5leHQgPSB0OwogCQl9Ci0KLQkJLyogV2UgaGF2ZSBleGhhdXN0ZWQgdGhlIGxpc3QsIGJ1dCBkaWRuJ3QgZmluZCBhbnkKLQkJICogb3RoZXIgYWN0aXZlIHRyYW5zcG9ydHMuICBJZiBzbywgdXNlIHRoZSBuZXh0Ci0JCSAqIHRyYW5zcG9ydC4KLQkJICovCi0JCWlmICh0ID09IGFzb2MtPnBlZXIucmV0cmFuX3BhdGgpIHsKLQkJCXQgPSBuZXh0OwotCQkJYnJlYWs7Ci0JCX0KIAl9CiAKIAlhc29jLT5wZWVyLnJldHJhbl9wYXRoID0gdDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2lwdjYuYyBiL25ldC9zY3RwL2lwdjYuYwppbmRleCBlNDVlNDRjLi5hMmY0ZDRkIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9pcHY2LmMKKysrIGIvbmV0L3NjdHAvaXB2Ni5jCkBAIC0yOTksNyArMjk5LDggQEAKIC8qIEZpbGxzIGluIHRoZSBzb3VyY2UgYWRkcmVzcyhzYWRkcikgYmFzZWQgb24gdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MoZGFkZHIpCiAgKiBhbmQgYXNvYydzIGJpbmQgYWRkcmVzcyBsaXN0LgogICovCi1zdGF0aWMgdm9pZCBzY3RwX3Y2X2dldF9zYWRkcihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKK3N0YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X3NhZGRyKHN0cnVjdCBzY3RwX3NvY2sgKnNrLAorCQkJICAgICAgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QsCiAJCQkgICAgICB1bmlvbiBzY3RwX2FkZHIgKmRhZGRyLAogCQkJICAgICAgdW5pb24gc2N0cF9hZGRyICpzYWRkcikKQEAgLTMxOCw3ICszMTksNyBAQAogCWlmICghYXNvYykgewogCQlpcHY2X2Rldl9nZXRfc2FkZHIoZHN0ID8gaXA2X2RzdF9pZGV2KGRzdCktPmRldiA6IE5VTEwsCiAJCQkJICAgJmRhZGRyLT52Ni5zaW42X2FkZHIsCi0JCQkJICAgaW5ldDZfc2soYXNvYy0+YmFzZS5zayktPnNyY3ByZWZzLAorCQkJCSAgIGluZXQ2X3NrKCZzay0+aW5ldC5zayktPnNyY3ByZWZzLAogCQkJCSAgICZzYWRkci0+djYuc2luNl9hZGRyKTsKIAkJU0NUUF9ERUJVR19QUklOVEsoInNhZGRyIGZyb20gaXB2Nl9nZXRfc2FkZHI6ICIgTklQNl9GTVQgIlxuIiwKIAkJCQkgIE5JUDYoc2FkZHItPnY2LnNpbjZfYWRkcikpOwpAQCAtNzI2LDYgKzcyNywxMSBAQAogCXNlcV9wcmludGYoc2VxLCBOSVA2X0ZNVCAiICIsIE5JUDYoYWRkci0+djYuc2luNl9hZGRyKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNjdHBfdjZfZWNuX2NhcGFibGUoc3RydWN0IHNvY2sgKnNrKQoreworCWluZXQ2X3NrKHNrKS0+dGNsYXNzIHw9IElORVRfRUNOX0VDVF8wOworfQorCiAvKiBJbml0aWFsaXplIGEgUEZfSU5FVDYgc29ja2V0IG1zZ19uYW1lLiAqLwogc3RhdGljIHZvaWQgc2N0cF9pbmV0Nl9tc2duYW1lKGNoYXIgKm1zZ25hbWUsIGludCAqYWRkcl9sZW4pCiB7CkBAIC05OTYsNiArMTAwMiw3IEBACiAJLnNrYl9paWYJICAgPSBzY3RwX3Y2X3NrYl9paWYsCiAJLmlzX2NlCQkgICA9IHNjdHBfdjZfaXNfY2UsCiAJLnNlcV9kdW1wX2FkZHIJICAgPSBzY3RwX3Y2X3NlcV9kdW1wX2FkZHIsCisJLmVjbl9jYXBhYmxlCSAgID0gc2N0cF92Nl9lY25fY2FwYWJsZSwKIAkubmV0X2hlYWRlcl9sZW4JICAgPSBzaXplb2Yoc3RydWN0IGlwdjZoZHIpLAogCS5zb2NrYWRkcl9sZW4JICAgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNiksCiAjaWZkZWYgQ09ORklHX0NPTVBBVApkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvb3V0cHV0LmMgYi9uZXQvc2N0cC9vdXRwdXQuYwppbmRleCBjZjRmOWZiLi42ZDQ1YmFlIDEwMDY0NAotLS0gYS9uZXQvc2N0cC9vdXRwdXQuYworKysgYi9uZXQvc2N0cC9vdXRwdXQuYwpAQCAtNTQ4LDcgKzU0OCw3IEBACiAJICogTm90ZTogVGhlIHdvcmtzIGZvciBJUHY2IGxheWVyIGNoZWNrcyB0aGlzIGJpdCB0b28gbGF0ZXIKIAkgKiBpbiB0cmFuc21pc3Npb24uICBTZWUgSVA2X0VDTl9mbG93X3htaXQoKS4KIAkgKi8KLQlJTkVUX0VDTl94bWl0KG5za2ItPnNrKTsKKwkoKnRwLT5hZl9zcGVjaWZpYy0+ZWNuX2NhcGFibGUpKG5za2ItPnNrKTsKIAogCS8qIFNldCB1cCB0aGUgSVAgb3B0aW9ucy4gICovCiAJLyogQlVHOiBub3QgaW1wbGVtZW50ZWQKZGlmZiAtLWdpdCBhL25ldC9zY3RwL291dHF1ZXVlLmMgYi9uZXQvc2N0cC9vdXRxdWV1ZS5jCmluZGV4IDU5ZWRmZDIuLmFjZTY3NzAgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL291dHF1ZXVlLmMKKysrIGIvbmV0L3NjdHAvb3V0cXVldWUuYwpAQCAtMjA4LDYgKzIwOCw3IEBACiAJSU5JVF9MSVNUX0hFQUQoJnEtPnNhY2tlZCk7CiAJSU5JVF9MSVNUX0hFQUQoJnEtPmFiYW5kb25lZCk7CiAKKwlxLT5mYXN0X3J0eCA9IDA7CiAJcS0+b3V0c3RhbmRpbmdfYnl0ZXMgPSAwOwogCXEtPmVtcHR5ID0gMTsKIAlxLT5jb3JrICA9IDA7CkBAIC01MDAsNiArNTAxLDcgQEAKIAljYXNlIFNDVFBfUlRYUl9GQVNUX1JUWDoKIAkJU0NUUF9JTkNfU1RBVFMoU0NUUF9NSUJfRkFTVF9SRVRSQU5TTUlUUyk7CiAJCXNjdHBfdHJhbnNwb3J0X2xvd2VyX2N3bmQodHJhbnNwb3J0LCBTQ1RQX0xPV0VSX0NXTkRfRkFTVF9SVFgpOworCQlxLT5mYXN0X3J0eCA9IDE7CiAJCWJyZWFrOwogCWNhc2UgU0NUUF9SVFhSX1BNVFVEOgogCQlTQ1RQX0lOQ19TVEFUUyhTQ1RQX01JQl9QTVRVRF9SRVRSQU5TTUlUUyk7CkBAIC01MTgsOSArNTIwLDE1IEBACiAJICogdGhlIHNlbmRlciBTSE9VTEQgdHJ5IHRvIGFkdmFuY2UgdGhlICJBZHZhbmNlZC5QZWVyLkFjay5Qb2ludCIgYnkKIAkgKiBmb2xsb3dpbmcgdGhlIHByb2NlZHVyZXMgb3V0bGluZWQgaW4gQzEgLSBDNS4KIAkgKi8KLQlzY3RwX2dlbmVyYXRlX2Z3ZHRzbihxLCBxLT5hc29jLT5jdHNuX2Fja19wb2ludCk7CisJaWYgKHJlYXNvbiA9PSBTQ1RQX1JUWFJfVDNfUlRYKQorCQlzY3RwX2dlbmVyYXRlX2Z3ZHRzbihxLCBxLT5hc29jLT5jdHNuX2Fja19wb2ludCk7CiAKLQllcnJvciA9IHNjdHBfb3V0cV9mbHVzaChxLCAvKiBydHhfdGltZW91dCAqLyAxKTsKKwkvKiBGbHVzaCB0aGUgcXVldWVzIG9ubHkgb24gdGltZW91dCwgc2luY2UgZmFzdF9ydHggaXMgb25seQorCSAqIHRyaWdnZXJlZCBkdXJpbmcgc2FjayBwcm9jZXNzaW5nIGFuZCB0aGUgcXVldWUKKwkgKiB3aWxsIGJlIGZsdXNoZWQgYXQgdGhlIGVuZC4KKwkgKi8KKwlpZiAocmVhc29uICE9IFNDVFBfUlRYUl9GQVNUX1JUWCkKKwkJZXJyb3IgPSBzY3RwX291dHFfZmx1c2gocSwgLyogcnR4X3RpbWVvdXQgKi8gMSk7CiAKIAlpZiAoZXJyb3IpCiAJCXEtPmFzb2MtPmJhc2Uuc2stPnNrX2VyciA9IC1lcnJvcjsKQEAgLTUzOCwxNyArNTQ2LDIzIEBACiAJCQkgICAgICAgaW50IHJ0eF90aW1lb3V0LCBpbnQgKnN0YXJ0X3RpbWVyKQogewogCXN0cnVjdCBsaXN0X2hlYWQgKmxxdWV1ZTsKLQlzdHJ1Y3QgbGlzdF9oZWFkICpsY2h1bms7CiAJc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQgPSBwa3QtPnRyYW5zcG9ydDsKIAlzY3RwX3htaXRfdCBzdGF0dXM7CiAJc3RydWN0IHNjdHBfY2h1bmsgKmNodW5rLCAqY2h1bmsxOwogCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jOworCWludCBmYXN0X3J0eDsKIAlpbnQgZXJyb3IgPSAwOworCWludCB0aW1lciA9IDA7CisJaW50IGRvbmUgPSAwOwogCiAJYXNvYyA9IHEtPmFzb2M7CiAJbHF1ZXVlID0gJnEtPnJldHJhbnNtaXQ7CisJZmFzdF9ydHggPSBxLT5mYXN0X3J0eDsKIAotCS8qIFJGQyAyOTYwIDYuMy4zIEhhbmRsZSBUMy1ydHggRXhwaXJhdGlvbgorCS8qIFRoaXMgbG9vcCBoYW5kbGVzIHRpbWUtb3V0IHJldHJhbnNtaXNzaW9ucywgZmFzdCByZXRyYW5zbWlzc2lvbnMsCisJICogYW5kIHJldHJhbnNtaXNzaW9ucyBkdWUgdG8gb3BlbmluZyBvZiB3aGluZG93LgorCSAqCisJICogUkZDIDI5NjAgNi4zLjMgSGFuZGxlIFQzLXJ0eCBFeHBpcmF0aW9uCiAJICoKIAkgKiBFMykgRGV0ZXJtaW5lIGhvdyBtYW55IG9mIHRoZSBlYXJsaWVzdCAoaS5lLiwgbG93ZXN0IFRTTikKIAkgKiBvdXRzdGFuZGluZyBEQVRBIGNodW5rcyBmb3IgdGhlIGFkZHJlc3MgZm9yIHdoaWNoIHRoZQpAQCAtNTYzLDEyICs1NzcsMTIgQEAKIAkgKiBbSnVzdCB0byBiZSBwYWluZnVsbHkgY2xlYXIsIGlmIHdlIGFyZSByZXRyYW5zbWl0dGluZwogCSAqIGJlY2F1c2UgYSB0aW1lb3V0IGp1c3QgaGFwcGVuZWQsIHdlIHNob3VsZCBzZW5kIG9ubHkgT05FCiAJICogcGFja2V0IG9mIHJldHJhbnNtaXR0ZWQgZGF0YS5dCisJICoKKwkgKiBGb3IgZmFzdCByZXRyYW5zbWlzc2lvbnMgd2UgYWxzbyBzZW5kIG9ubHkgT05FIHBhY2tldC4gIEhvd2V2ZXIsCisJICogaWYgd2UgYXJlIGp1c3QgZmx1c2hpbmcgdGhlIHF1ZXVlIGR1ZSB0byBvcGVuIHdpbmRvdywgd2UnbGwKKwkgKiB0cnkgdG8gc2VuZCBhcyBtdWNoIGFzIHBvc3NpYmxlLgogCSAqLwotCWxjaHVuayA9IHNjdHBfbGlzdF9kZXF1ZXVlKGxxdWV1ZSk7Ci0KLQl3aGlsZSAobGNodW5rKSB7Ci0JCWNodW5rID0gbGlzdF9lbnRyeShsY2h1bmssIHN0cnVjdCBzY3RwX2NodW5rLAotCQkJCSAgIHRyYW5zbWl0dGVkX2xpc3QpOworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjaHVuaywgY2h1bmsxLCBscXVldWUsIHRyYW5zbWl0dGVkX2xpc3QpIHsKIAogCQkvKiBNYWtlIHN1cmUgdGhhdCBHYXAgQWNrZWQgVFNOcyBhcmUgbm90IHJldHJhbnNtaXR0ZWQuICBBCiAJCSAqIHNpbXBsZSBhcHByb2FjaCBpcyBqdXN0IHRvIG1vdmUgc3VjaCBUU05zIG91dCBvZiB0aGUKQEAgLTU3Niw1OCArNTkwLDYwIEBACiAJCSAqIG5leHQgY2h1bmsuCiAJCSAqLwogCQlpZiAoY2h1bmstPnRzbl9nYXBfYWNrZWQpIHsKLQkJCWxpc3RfYWRkX3RhaWwobGNodW5rLCAmdHJhbnNwb3J0LT50cmFuc21pdHRlZCk7Ci0JCQlsY2h1bmsgPSBzY3RwX2xpc3RfZGVxdWV1ZShscXVldWUpOworCQkJbGlzdF9kZWwoJmNodW5rLT50cmFuc21pdHRlZF9saXN0KTsKKwkJCWxpc3RfYWRkX3RhaWwoJmNodW5rLT50cmFuc21pdHRlZF9saXN0LAorCQkJCQkmdHJhbnNwb3J0LT50cmFuc21pdHRlZCk7CiAJCQljb250aW51ZTsKIAkJfQogCisJCS8qIElmIHdlIGFyZSBkb2luZyBmYXN0IHJldHJhbnNtaXQsIGlnbm9yZSBub24tZmFzdF9ydHJhbnNtaXQKKwkJICogY2h1bmtzCisJCSAqLworCQlpZiAoZmFzdF9ydHggJiYgIWNodW5rLT5mYXN0X3JldHJhbnNtaXQpCisJCQljb250aW51ZTsKKwogCQkvKiBBdHRlbXB0IHRvIGFwcGVuZCB0aGlzIGNodW5rIHRvIHRoZSBwYWNrZXQuICovCiAJCXN0YXR1cyA9IHNjdHBfcGFja2V0X2FwcGVuZF9jaHVuayhwa3QsIGNodW5rKTsKIAogCQlzd2l0Y2ggKHN0YXR1cykgewogCQljYXNlIFNDVFBfWE1JVF9QTVRVX0ZVTEw6CiAJCQkvKiBTZW5kIHRoaXMgcGFja2V0LiAgKi8KLQkJCWlmICgoZXJyb3IgPSBzY3RwX3BhY2tldF90cmFuc21pdChwa3QpKSA9PSAwKQotCQkJCSpzdGFydF90aW1lciA9IDE7CisJCQllcnJvciA9IHNjdHBfcGFja2V0X3RyYW5zbWl0KHBrdCk7CiAKIAkJCS8qIElmIHdlIGFyZSByZXRyYW5zbWl0dGluZywgd2Ugc2hvdWxkIG9ubHkKIAkJCSAqIHNlbmQgYSBzaW5nbGUgcGFja2V0LgogCQkJICovCi0JCQlpZiAocnR4X3RpbWVvdXQpIHsKLQkJCQlsaXN0X2FkZChsY2h1bmssIGxxdWV1ZSk7Ci0JCQkJbGNodW5rID0gTlVMTDsKLQkJCX0KKwkJCWlmIChydHhfdGltZW91dCB8fCBmYXN0X3J0eCkKKwkJCQlkb25lID0gMTsKIAotCQkJLyogQnVuZGxlIGxjaHVuayBpbiB0aGUgbmV4dCByb3VuZC4gICovCisJCQkvKiBCdW5kbGUgbmV4dCBjaHVuayBpbiB0aGUgbmV4dCByb3VuZC4gICovCiAJCQlicmVhazsKIAogCQljYXNlIFNDVFBfWE1JVF9SV05EX0ZVTEw6CiAJCQkvKiBTZW5kIHRoaXMgcGFja2V0LiAqLwotCQkJaWYgKChlcnJvciA9IHNjdHBfcGFja2V0X3RyYW5zbWl0KHBrdCkpID09IDApCi0JCQkJKnN0YXJ0X3RpbWVyID0gMTsKKwkJCWVycm9yID0gc2N0cF9wYWNrZXRfdHJhbnNtaXQocGt0KTsKIAogCQkJLyogU3RvcCBzZW5kaW5nIERBVEEgYXMgdGhlcmUgaXMgbm8gbW9yZSByb29tCiAJCQkgKiBhdCB0aGUgcmVjZWl2ZXIuCiAJCQkgKi8KLQkJCWxpc3RfYWRkKGxjaHVuaywgbHF1ZXVlKTsKLQkJCWxjaHVuayA9IE5VTEw7CisJCQlkb25lID0gMTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgU0NUUF9YTUlUX05BR0xFX0RFTEFZOgogCQkJLyogU2VuZCB0aGlzIHBhY2tldC4gKi8KLQkJCWlmICgoZXJyb3IgPSBzY3RwX3BhY2tldF90cmFuc21pdChwa3QpKSA9PSAwKQotCQkJCSpzdGFydF90aW1lciA9IDE7CisJCQllcnJvciA9IHNjdHBfcGFja2V0X3RyYW5zbWl0KHBrdCk7CiAKIAkJCS8qIFN0b3Agc2VuZGluZyBEQVRBIGJlY2F1c2Ugb2YgbmFnbGUgZGVsYXkuICovCi0JCQlsaXN0X2FkZChsY2h1bmssIGxxdWV1ZSk7Ci0JCQlsY2h1bmsgPSBOVUxMOworCQkJZG9uZSA9IDE7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJLyogVGhlIGFwcGVuZCB3YXMgc3VjY2Vzc2Z1bCwgc28gYWRkIHRoaXMgY2h1bmsgdG8KIAkJCSAqIHRoZSB0cmFuc21pdHRlZCBsaXN0LgogCQkJICovCi0JCQlsaXN0X2FkZF90YWlsKGxjaHVuaywgJnRyYW5zcG9ydC0+dHJhbnNtaXR0ZWQpOworCQkJbGlzdF9kZWwoJmNodW5rLT50cmFuc21pdHRlZF9saXN0KTsKKwkJCWxpc3RfYWRkX3RhaWwoJmNodW5rLT50cmFuc21pdHRlZF9saXN0LAorCQkJCQkmdHJhbnNwb3J0LT50cmFuc21pdHRlZCk7CiAKIAkJCS8qIE1hcmsgdGhlIGNodW5rIGFzIGluZWxpZ2libGUgZm9yIGZhc3QgcmV0cmFuc21pdAogCQkJICogYWZ0ZXIgaXQgaXMgcmV0cmFuc21pdHRlZC4KQEAgLTYzNSwyNyArNjUxLDQ0IEBACiAJCQlpZiAoY2h1bmstPmZhc3RfcmV0cmFuc21pdCA+IDApCiAJCQkJY2h1bmstPmZhc3RfcmV0cmFuc21pdCA9IC0xOwogCi0JCQkqc3RhcnRfdGltZXIgPSAxOwotCQkJcS0+ZW1wdHkgPSAwOworCQkJLyogRm9yY2Ugc3RhcnQgVDMtcnR4IHRpbWVyIHdoZW4gZmFzdCByZXRyYW5zbWl0dGluZworCQkJICogdGhlIGVhcmxpZXN0IG91dHN0YW5kaW5nIFRTTgorCQkJICovCisJCQlpZiAoIXRpbWVyICYmIGZhc3RfcnR4ICYmCisJCQkgICAgbnRvaGwoY2h1bmstPnN1YmguZGF0YV9oZHItPnRzbikgPT0KKwkJCQkJICAgICBhc29jLT5jdHNuX2Fja19wb2ludCArIDEpCisJCQkJdGltZXIgPSAyOwogCi0JCQkvKiBSZXRyaWV2ZSBhIG5ldyBjaHVuayB0byBidW5kbGUuICovCi0JCQlsY2h1bmsgPSBzY3RwX2xpc3RfZGVxdWV1ZShscXVldWUpOworCQkJcS0+ZW1wdHkgPSAwOwogCQkJYnJlYWs7CiAJCX0KIAotCQkvKiBJZiB3ZSBhcmUgaGVyZSBkdWUgdG8gYSByZXRyYW5zbWl0IHRpbWVvdXQgb3IgYSBmYXN0Ci0JCSAqIHJldHJhbnNtaXQgYW5kIGlmIHRoZXJlIGFyZSBhbnkgY2h1bmtzIGxlZnQgaW4gdGhlIHJldHJhbnNtaXQKLQkJICogcXVldWUgdGhhdCBjb3VsZCBub3QgZml0IGluIHRoZSBQTVRVIHNpemVkIHBhY2tldCwgdGhleSBuZWVkCi0JCSAqIHRvIGJlIG1hcmtlZCBhcyBpbmVsaWdpYmxlIGZvciBhIHN1YnNlcXVlbnQgZmFzdCByZXRyYW5zbWl0LgotCQkgKi8KLQkJaWYgKHJ0eF90aW1lb3V0ICYmICFsY2h1bmspIHsKLQkJCWxpc3RfZm9yX2VhY2hfZW50cnkoY2h1bmsxLCBscXVldWUsIHRyYW5zbWl0dGVkX2xpc3QpIHsKLQkJCQlpZiAoY2h1bmsxLT5mYXN0X3JldHJhbnNtaXQgPiAwKQotCQkJCQljaHVuazEtPmZhc3RfcmV0cmFuc21pdCA9IC0xOwotCQkJfQorCQkvKiBTZXQgdGhlIHRpbWVyIGlmIHRoZXJlIHdlcmUgbm8gZXJyb3JzICovCisJCWlmICghZXJyb3IgJiYgIXRpbWVyKQorCQkJdGltZXIgPSAxOworCisJCWlmIChkb25lKQorCQkJYnJlYWs7CisJfQorCisJLyogSWYgd2UgYXJlIGhlcmUgZHVlIHRvIGEgcmV0cmFuc21pdCB0aW1lb3V0IG9yIGEgZmFzdAorCSAqIHJldHJhbnNtaXQgYW5kIGlmIHRoZXJlIGFyZSBhbnkgY2h1bmtzIGxlZnQgaW4gdGhlIHJldHJhbnNtaXQKKwkgKiBxdWV1ZSB0aGF0IGNvdWxkIG5vdCBmaXQgaW4gdGhlIFBNVFUgc2l6ZWQgcGFja2V0LCB0aGV5IG5lZWQKKwkgKiB0byBiZSBtYXJrZWQgYXMgaW5lbGlnaWJsZSBmb3IgYSBzdWJzZXF1ZW50IGZhc3QgcmV0cmFuc21pdC4KKwkgKi8KKwlpZiAocnR4X3RpbWVvdXQgfHwgZmFzdF9ydHgpIHsKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeShjaHVuazEsIGxxdWV1ZSwgdHJhbnNtaXR0ZWRfbGlzdCkgeworCQkJaWYgKGNodW5rMS0+ZmFzdF9yZXRyYW5zbWl0ID4gMCkKKwkJCQljaHVuazEtPmZhc3RfcmV0cmFuc21pdCA9IC0xOwogCQl9CiAJfQogCisJKnN0YXJ0X3RpbWVyID0gdGltZXI7CisKKwkvKiBDbGVhciBmYXN0IHJldHJhbnNtaXQgaGludCAqLworCWlmIChmYXN0X3J0eCkKKwkJcS0+ZmFzdF9ydHggPSAwOworCiAJcmV0dXJuIGVycm9yOwogfQogCkBAIC04NjIsNyArODk1LDggQEAKIAkJCQkJCSAgICBydHhfdGltZW91dCwgJnN0YXJ0X3RpbWVyKTsKIAogCQkJaWYgKHN0YXJ0X3RpbWVyKQotCQkJCXNjdHBfdHJhbnNwb3J0X3Jlc2V0X3RpbWVycyh0cmFuc3BvcnQpOworCQkJCXNjdHBfdHJhbnNwb3J0X3Jlc2V0X3RpbWVycyh0cmFuc3BvcnQsCisJCQkJCQkJICAgIHN0YXJ0X3RpbWVyLTEpOwogCiAJCQkvKiBUaGlzIGNhbiBoYXBwZW4gb24gQ09PS0lFLUVDSE8gcmVzZW5kLiAgT25seQogCQkJICogb25lIGNodW5rIGNhbiBnZXQgYnVuZGxlZCB3aXRoIGEgQ09PS0lFLUVDSE8uCkBAIC05NzcsNyArMTAxMSw3IEBACiAJCQlsaXN0X2FkZF90YWlsKCZjaHVuay0+dHJhbnNtaXR0ZWRfbGlzdCwKIAkJCQkgICAgICAmdHJhbnNwb3J0LT50cmFuc21pdHRlZCk7CiAKLQkJCXNjdHBfdHJhbnNwb3J0X3Jlc2V0X3RpbWVycyh0cmFuc3BvcnQpOworCQkJc2N0cF90cmFuc3BvcnRfcmVzZXRfdGltZXJzKHRyYW5zcG9ydCwgc3RhcnRfdGltZXItMSk7CiAKIAkJCXEtPmVtcHR5ID0gMDsKIApkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvcHJvdG9jb2wuYyBiL25ldC9zY3RwL3Byb3RvY29sLmMKaW5kZXggMGVjMjM0Yi4uOTI1OGRmZSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvcHJvdG9jb2wuYworKysgYi9uZXQvc2N0cC9wcm90b2NvbC5jCkBAIC0xMDgsMTQgKzEwOCwyMyBAQAogCX0KIAogCWlmIChzY3RwX3NubXBfcHJvY19pbml0KCkpCi0JCWdvdG8gb3V0X25vbWVtOworCQlnb3RvIG91dF9zbm1wX3Byb2NfaW5pdDsKIAlpZiAoc2N0cF9lcHNfcHJvY19pbml0KCkpCi0JCWdvdG8gb3V0X25vbWVtOworCQlnb3RvIG91dF9lcHNfcHJvY19pbml0OwogCWlmIChzY3RwX2Fzc29jc19wcm9jX2luaXQoKSkKLQkJZ290byBvdXRfbm9tZW07CisJCWdvdG8gb3V0X2Fzc29jc19wcm9jX2luaXQ7CiAKIAlyZXR1cm4gMDsKIAorb3V0X2Fzc29jc19wcm9jX2luaXQ6CisJc2N0cF9lcHNfcHJvY19leGl0KCk7CitvdXRfZXBzX3Byb2NfaW5pdDoKKwlzY3RwX3NubXBfcHJvY19leGl0KCk7CitvdXRfc25tcF9wcm9jX2luaXQ6CisJaWYgKHByb2NfbmV0X3NjdHApIHsKKwkJcHJvY19uZXRfc2N0cCA9IE5VTEw7CisJCXJlbW92ZV9wcm9jX2VudHJ5KCJzY3RwIiwgaW5pdF9uZXQucHJvY19uZXQpOworCX0KIG91dF9ub21lbToKIAlyZXR1cm4gLUVOT01FTTsKIH0KQEAgLTQ3MCwxMSArNDc5LDExIEBACiAJCS8qIFdhbGsgdGhyb3VnaCB0aGUgYmluZCBhZGRyZXNzIGxpc3QgYW5kIGxvb2sgZm9yIGEgYmluZAogCQkgKiBhZGRyZXNzIHRoYXQgbWF0Y2hlcyB0aGUgc291cmNlIGFkZHJlc3Mgb2YgdGhlIHJldHVybmVkIGRzdC4KIAkJICovCisJCXNjdHBfdjRfZHN0X3NhZGRyKCZkc3Rfc2FkZHIsIGRzdCwgaHRvbnMoYnAtPnBvcnQpKTsKIAkJcmN1X3JlYWRfbG9jaygpOwogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShsYWRkciwgJmJwLT5hZGRyZXNzX2xpc3QsIGxpc3QpIHsKIAkJCWlmICghbGFkZHItPnZhbGlkIHx8IChsYWRkci0+c3RhdGUgIT0gU0NUUF9BRERSX1NSQykpCiAJCQkJY29udGludWU7Ci0JCQlzY3RwX3Y0X2RzdF9zYWRkcigmZHN0X3NhZGRyLCBkc3QsIGh0b25zKGJwLT5wb3J0KSk7CiAJCQlpZiAoc2N0cF92NF9jbXBfYWRkcigmZHN0X3NhZGRyLCAmbGFkZHItPmEpKQogCQkJCWdvdG8gb3V0X3VubG9jazsKIAkJfQpAQCAtNTE5LDcgKzUyOCw4IEBACiAvKiBGb3IgdjQsIHRoZSBzb3VyY2UgYWRkcmVzcyBpcyBjYWNoZWQgaW4gdGhlIHJvdXRlIGVudHJ5KGRzdCkuIFNvIG5vIG5lZWQKICAqIHRvIGNhY2hlIGl0IHNlcGFyYXRlbHkgYW5kIGhlbmNlIHRoaXMgaXMgYW4gZW1wdHkgcm91dGluZS4KICAqLwotc3RhdGljIHZvaWQgc2N0cF92NF9nZXRfc2FkZHIoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCitzdGF0aWMgdm9pZCBzY3RwX3Y0X2dldF9zYWRkcihzdHJ1Y3Qgc2N0cF9zb2NrICpzaywKKwkJCSAgICAgIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogCQkJICAgICAgc3RydWN0IGRzdF9lbnRyeSAqZHN0LAogCQkJICAgICAgdW5pb24gc2N0cF9hZGRyICpkYWRkciwKIAkJCSAgICAgIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIpCkBAIC02MTYsNiArNjI2LDExIEBACiAJc2VxX3ByaW50ZihzZXEsICIlZC4lZC4lZC4lZCAiLCBOSVBRVUFEKGFkZHItPnY0LnNpbl9hZGRyKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHNjdHBfdjRfZWNuX2NhcGFibGUoc3RydWN0IHNvY2sgKnNrKQoreworCUlORVRfRUNOX3htaXQoc2spOworfQorCiAvKiBFdmVudCBoYW5kbGVyIGZvciBpbmV0IGFkZHJlc3MgYWRkaXRpb24vZGVsZXRpb24gZXZlbnRzLgogICogVGhlIHNjdHBfbG9jYWxfYWRkcl9saXN0IG5lZWRzIHRvIGJlIHByb3RvY3RlZCBieSBhIHNwaW4gbG9jayBzaW5jZQogICogbXVsdGlwbGUgbm90aWZpZXJzIChzYXkgSVB2NCBhbmQgSVB2NikgbWF5IGJlIHJ1bm5pbmcgYXQgdGhlIHNhbWUKQEAgLTkzNCw2ICs5NDksNyBAQAogCS5za2JfaWlmCSAgID0gc2N0cF92NF9za2JfaWlmLAogCS5pc19jZQkJICAgPSBzY3RwX3Y0X2lzX2NlLAogCS5zZXFfZHVtcF9hZGRyCSAgID0gc2N0cF92NF9zZXFfZHVtcF9hZGRyLAorCS5lY25fY2FwYWJsZQkgICA9IHNjdHBfdjRfZWNuX2NhcGFibGUsCiAJLm5ldF9oZWFkZXJfbGVuCSAgID0gc2l6ZW9mKHN0cnVjdCBpcGhkciksCiAJLnNvY2thZGRyX2xlbgkgICA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pLAogI2lmZGVmIENPTkZJR19DT01QQVQKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKaW5kZXggMGM5ZDVhNi4uZmNkYjQ1ZCAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKKysrIGIvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMKQEAgLTU4OTksMTIgKzU4OTksNiBAQAogCQlyZXR1cm4gU0NUUF9JRVJST1JfTk9fREFUQTsKIAl9CiAKLQkvKiBJZiBkZWZpbmF0ZWx5IGFjY2VwdGluZyB0aGUgREFUQSBjaHVuaywgcmVjb3JkIGl0cyBUU04sIG90aGVyd2lzZQotCSAqIHdhaXQgZm9yIHJlbmVnZSBwcm9jZXNzaW5nLgotCSAqLwotCWlmIChTQ1RQX0NNRF9DSFVOS19VTFAgPT0gZGVsaXZlcikKLQkJc2N0cF9hZGRfY21kX3NmKGNvbW1hbmRzLCBTQ1RQX0NNRF9SRVBPUlRfVFNOLCBTQ1RQX1UzMih0c24pKTsKLQogCWNodW5rLT5kYXRhX2FjY2VwdGVkID0gMTsKIAogCS8qIE5vdGU6IFNvbWUgY2h1bmtzIG1heSBnZXQgb3ZlcmNvdW50ZWQgKGlmIHdlIGRyb3ApIG9yIG92ZXJjb3VudGVkCkBAIC01OTI0LDYgKzU5MTgsOSBAQAogCSAqIGFuZCBkaXNjYXJkIHRoZSBEQVRBIGNodW5rLgogCSAqLwogCWlmIChudG9ocyhkYXRhX2hkci0+c3RyZWFtKSA+PSBhc29jLT5jLnNpbml0X21heF9pbnN0cmVhbXMpIHsKKwkJLyogTWFyayB0c24gYXMgcmVjZWl2ZWQgZXZlbiB0aG91Z2ggd2UgZHJvcCBpdCAqLworCQlzY3RwX2FkZF9jbWRfc2YoY29tbWFuZHMsIFNDVFBfQ01EX1JFUE9SVF9UU04sIFNDVFBfVTMyKHRzbikpOworCiAJCWVyciA9IHNjdHBfbWFrZV9vcF9lcnJvcihhc29jLCBjaHVuaywgU0NUUF9FUlJPUl9JTlZfU1RSTSwKIAkJCQkJICZkYXRhX2hkci0+c3RyZWFtLAogCQkJCQkgc2l6ZW9mKGRhdGFfaGRyLT5zdHJlYW0pKTsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggZTdlM2JhZi4uMGRiY2RlNiAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTQ0MDEsNyArNDQwMSw5IEBACiAJaWYgKGNvcHlfZnJvbV91c2VyKCZnZXRhZGRycywgb3B0dmFsLCBsZW4pKQogCQlyZXR1cm4gLUVGQVVMVDsKIAotCWlmIChnZXRhZGRycy5hZGRyX251bSA8PSAwKSByZXR1cm4gLUVJTlZBTDsKKwlpZiAoZ2V0YWRkcnMuYWRkcl9udW0gPD0gMCB8fAorCSAgICBnZXRhZGRycy5hZGRyX251bSA+PSAoSU5UX01BWCAvIHNpemVvZih1bmlvbiBzY3RwX2FkZHIpKSkKKwkJcmV0dXJuIC1FSU5WQUw7CiAJLyoKIAkgKiAgRm9yIFVEUC1zdHlsZSBzb2NrZXRzLCBpZCBzcGVjaWZpZXMgdGhlIGFzc29jaWF0aW9uIHRvIHF1ZXJ5LgogCSAqICBJZiB0aGUgaWQgZmllbGQgaXMgc2V0IHRvIHRoZSB2YWx1ZSAnMCcgdGhlbiB0aGUgbG9jYWxseSBib3VuZApkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvdHJhbnNwb3J0LmMgYi9uZXQvc2N0cC90cmFuc3BvcnQuYwppbmRleCBmNDkzOGY2Li4zZjM0ZjYxIDEwMDY0NAotLS0gYS9uZXQvc2N0cC90cmFuc3BvcnQuYworKysgYi9uZXQvc2N0cC90cmFuc3BvcnQuYwpAQCAtNzksNiArNzksNyBAQAogCXBlZXItPnJ0dHZhciA9IDA7CiAJcGVlci0+c3J0dCA9IDA7CiAJcGVlci0+cnRvX3BlbmRpbmcgPSAwOworCXBlZXItPmZhc3RfcmVjb3ZlcnkgPSAwOwogCiAJcGVlci0+bGFzdF90aW1lX2hlYXJkID0gamlmZmllczsKIAlwZWVyLT5sYXN0X3RpbWVfdXNlZCA9IGppZmZpZXM7CkBAIC0xOTAsNyArMTkxLDcgQEAKIC8qIFN0YXJ0IFQzX3J0eCB0aW1lciBpZiBpdCBpcyBub3QgYWxyZWFkeSBydW5uaW5nIGFuZCB1cGRhdGUgdGhlIGhlYXJ0YmVhdAogICogdGltZXIuICBUaGlzIHJvdXRpbmUgaXMgY2FsbGVkIGV2ZXJ5IHRpbWUgYSBEQVRBIGNodW5rIGlzIHNlbnQuCiAgKi8KLXZvaWQgc2N0cF90cmFuc3BvcnRfcmVzZXRfdGltZXJzKHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdHJhbnNwb3J0KQordm9pZCBzY3RwX3RyYW5zcG9ydF9yZXNldF90aW1lcnMoc3RydWN0IHNjdHBfdHJhbnNwb3J0ICp0cmFuc3BvcnQsIGludCBmb3JjZSkKIHsKIAkvKiBSRkMgMjk2MCA2LjMuMiBSZXRyYW5zbWlzc2lvbiBUaW1lciBSdWxlcwogCSAqCkBAIC0yMDAsNyArMjAxLDcgQEAKIAkgKiBhZGRyZXNzLgogCSAqLwogCi0JaWYgKCF0aW1lcl9wZW5kaW5nKCZ0cmFuc3BvcnQtPlQzX3J0eF90aW1lcikpCisJaWYgKGZvcmNlIHx8ICF0aW1lcl9wZW5kaW5nKCZ0cmFuc3BvcnQtPlQzX3J0eF90aW1lcikpCiAJCWlmICghbW9kX3RpbWVyKCZ0cmFuc3BvcnQtPlQzX3J0eF90aW1lciwKIAkJCSAgICAgICBqaWZmaWVzICsgdHJhbnNwb3J0LT5ydG8pKQogCQkJc2N0cF90cmFuc3BvcnRfaG9sZCh0cmFuc3BvcnQpOwpAQCAtMjkxLDcgKzI5Miw3IEBACiAJaWYgKHNhZGRyKQogCQltZW1jcHkoJnRyYW5zcG9ydC0+c2FkZHIsIHNhZGRyLCBzaXplb2YodW5pb24gc2N0cF9hZGRyKSk7CiAJZWxzZQotCQlhZi0+Z2V0X3NhZGRyKGFzb2MsIGRzdCwgZGFkZHIsICZ0cmFuc3BvcnQtPnNhZGRyKTsKKwkJYWYtPmdldF9zYWRkcihvcHQsIGFzb2MsIGRzdCwgZGFkZHIsICZ0cmFuc3BvcnQtPnNhZGRyKTsKIAogCXRyYW5zcG9ydC0+ZHN0ID0gZHN0OwogCWlmICgodHJhbnNwb3J0LT5wYXJhbV9mbGFncyAmIFNQUF9QTVRVRF9ESVNBQkxFKSAmJiB0cmFuc3BvcnQtPnBhdGhtdHUpIHsKQEAgLTQwMywxMSArNDA0LDE2IEBACiAJY3duZCA9IHRyYW5zcG9ydC0+Y3duZDsKIAlmbGlnaHRfc2l6ZSA9IHRyYW5zcG9ydC0+ZmxpZ2h0X3NpemU7CiAKKwkvKiBTZWUgaWYgd2UgbmVlZCB0byBleGl0IEZhc3QgUmVjb3ZlcnkgZmlyc3QgKi8KKwlpZiAodHJhbnNwb3J0LT5mYXN0X3JlY292ZXJ5ICYmCisJICAgIFRTTl9sdGUodHJhbnNwb3J0LT5mYXN0X3JlY292ZXJ5X2V4aXQsIHNhY2tfY3RzbikpCisJCXRyYW5zcG9ydC0+ZmFzdF9yZWNvdmVyeSA9IDA7CisKIAkvKiBUaGUgYXBwcm9wcmlhdGUgY3duZCBpbmNyZWFzZSBhbGdvcml0aG0gaXMgcGVyZm9ybWVkIGlmLCBhbmQgb25seQotCSAqIGlmIHRoZSBjdW11bGF0aXZlIFRTTiBoYXMgYWR2YW5jZWQgYW5kIHRoZSBjb25nZXN0aW9uIHdpbmRvdyBpcworCSAqIGlmIHRoZSBjdW11bGF0aXZlIFRTTiB3aG91bGQgYWR2YW5jZWQgYW5kIHRoZSBjb25nZXN0aW9uIHdpbmRvdyBpcwogCSAqIGJlaW5nIGZ1bGx5IHV0aWxpemVkLgogCSAqLwotCWlmICgodHJhbnNwb3J0LT5hc29jLT5jdHNuX2Fja19wb2ludCA+PSBzYWNrX2N0c24pIHx8CisJaWYgKFRTTl9sdGUoc2Fja19jdHNuLCB0cmFuc3BvcnQtPmFzb2MtPmN0c25fYWNrX3BvaW50KSB8fAogCSAgICAoZmxpZ2h0X3NpemUgPCBjd25kKSkKIAkJcmV0dXJuOwogCkBAIC00MTYsMTcgKzQyMiwyMyBAQAogCXBtdHUgPSB0cmFuc3BvcnQtPmFzb2MtPnBhdGhtdHU7CiAKIAlpZiAoY3duZCA8PSBzc3RocmVzaCkgewotCQkvKiBSRkMgMjk2MCA3LjIuMSwgc2N0cGltcGd1aWRlLTA1IDIuMTQuMiBXaGVuIGN3bmQgaXMgbGVzcwotCQkgKiB0aGFuIG9yIGVxdWFsIHRvIHNzdGhyZXNoIGFuIFNDVFAgZW5kcG9pbnQgTVVTVCB1c2UgdGhlCi0JCSAqIHNsb3cgc3RhcnQgYWxnb3JpdGhtIHRvIGluY3JlYXNlIGN3bmQgb25seSBpZiB0aGUgY3VycmVudAotCQkgKiBjb25nZXN0aW9uIHdpbmRvdyBpcyBiZWluZyBmdWxseSB1dGlsaXplZCBhbmQgYW4gaW5jb21pbmcKLQkJICogU0FDSyBhZHZhbmNlcyB0aGUgQ3VtdWxhdGl2ZSBUU04gQWNrIFBvaW50LiBPbmx5IHdoZW4gdGhlc2UKLQkJICogdHdvIGNvbmRpdGlvbnMgYXJlIG1ldCBjYW4gdGhlIGN3bmQgYmUgaW5jcmVhc2VkIG90aGVyd2lzZQotCQkgKiB0aGUgY3duZCBNVVNUIG5vdCBiZSBpbmNyZWFzZWQuIElmIHRoZXNlIGNvbmRpdGlvbnMgYXJlIG1ldAotCQkgKiB0aGVuIGN3bmQgTVVTVCBiZSBpbmNyZWFzZWQgYnkgYXQgbW9zdCB0aGUgbGVzc2VyIG9mCi0JCSAqIDEpIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBwcmV2aW91c2x5IG91dHN0YW5kaW5nIERBVEEKLQkJICogY2h1bmsocykgYWNrbm93bGVkZ2VkLCBhbmQgMikgdGhlIGRlc3RpbmF0aW9uJ3MgcGF0aCBNVFUuCisJCS8qIFJGQyA0OTYwIDcuMi4xCisJCSAqIG8gIFdoZW4gY3duZCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gc3N0aHJlc2gsIGFuIFNDVFAKKwkJICogICAgZW5kcG9pbnQgTVVTVCB1c2UgdGhlIHNsb3ctc3RhcnQgYWxnb3JpdGhtIHRvIGluY3JlYXNlCisJCSAqICAgIGN3bmQgb25seSBpZiB0aGUgY3VycmVudCBjb25nZXN0aW9uIHdpbmRvdyBpcyBiZWluZyBmdWxseQorCQkgKiAgICB1dGlsaXplZCwgYW4gaW5jb21pbmcgU0FDSyBhZHZhbmNlcyB0aGUgQ3VtdWxhdGl2ZSBUU04KKwkJICogICAgQWNrIFBvaW50LCBhbmQgdGhlIGRhdGEgc2VuZGVyIGlzIG5vdCBpbiBGYXN0IFJlY292ZXJ5LgorCQkgKiAgICBPbmx5IHdoZW4gdGhlc2UgdGhyZWUgY29uZGl0aW9ucyBhcmUgbWV0IGNhbiB0aGUgY3duZCBiZQorCQkgKiAgICBpbmNyZWFzZWQ7IG90aGVyd2lzZSwgdGhlIGN3bmQgTVVTVCBub3QgYmUgaW5jcmVhc2VkLgorCQkgKiAgICBJZiB0aGVzZSBjb25kaXRpb25zIGFyZSBtZXQsIHRoZW4gY3duZCBNVVNUIGJlIGluY3JlYXNlZAorCQkgKiAgICBieSwgYXQgbW9zdCwgdGhlIGxlc3NlciBvZiAxKSB0aGUgdG90YWwgc2l6ZSBvZiB0aGUKKwkJICogICAgcHJldmlvdXNseSBvdXRzdGFuZGluZyBEQVRBIGNodW5rKHMpIGFja25vd2xlZGdlZCwgYW5kCisJCSAqICAgIDIpIHRoZSBkZXN0aW5hdGlvbidzIHBhdGggTVRVLiAgVGhpcyB1cHBlciBib3VuZCBwcm90ZWN0cworCQkgKiAgICBhZ2FpbnN0IHRoZSBBQ0stU3BsaXR0aW5nIGF0dGFjayBvdXRsaW5lZCBpbiBbU0FWQUdFOTldLgogCQkgKi8KKwkJaWYgKHRyYW5zcG9ydC0+ZmFzdF9yZWNvdmVyeSkKKwkJCXJldHVybjsKKwogCQlpZiAoYnl0ZXNfYWNrZWQgPiBwbXR1KQogCQkJY3duZCArPSBwbXR1OwogCQllbHNlCkBAIC01MDIsNiArNTE0LDEzIEBACiAJCSAqICAgICAgY3duZCA9IHNzdGhyZXNoCiAJCSAqICAgICAgcGFydGlhbF9ieXRlc19hY2tlZCA9IDAKIAkJICovCisJCWlmICh0cmFuc3BvcnQtPmZhc3RfcmVjb3ZlcnkpCisJCQlyZXR1cm47CisKKwkJLyogTWFyayBGYXN0IHJlY292ZXJ5ICovCisJCXRyYW5zcG9ydC0+ZmFzdF9yZWNvdmVyeSA9IDE7CisJCXRyYW5zcG9ydC0+ZmFzdF9yZWNvdmVyeV9leGl0ID0gdHJhbnNwb3J0LT5hc29jLT5uZXh0X3RzbiAtIDE7CisKIAkJdHJhbnNwb3J0LT5zc3RocmVzaCA9IG1heCh0cmFuc3BvcnQtPmN3bmQvMiwKIAkJCQkJICA0KnRyYW5zcG9ydC0+YXNvYy0+cGF0aG10dSk7CiAJCXRyYW5zcG9ydC0+Y3duZCA9IHRyYW5zcG9ydC0+c3N0aHJlc2g7CkBAIC01ODYsNiArNjA1LDcgQEAKIAl0LT5mbGlnaHRfc2l6ZSA9IDA7CiAJdC0+ZXJyb3JfY291bnQgPSAwOwogCXQtPnJ0b19wZW5kaW5nID0gMDsKKwl0LT5mYXN0X3JlY292ZXJ5ID0gMDsKIAogCS8qIEluaXRpYWxpemUgdGhlIHN0YXRlIGluZm9ybWF0aW9uIGZvciBTRlItQ0FDQyAqLwogCXQtPmNhY2MuY2hhbmdlb3Zlcl9hY3RpdmUgPSAwOwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvdWxwZXZlbnQuYyBiL25ldC9zY3RwL3VscGV2ZW50LmMKaW5kZXggY2U2Y2RhNi4uYTFmNjU0YSAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvdWxwZXZlbnQuYworKysgYi9uZXQvc2N0cC91bHBldmVudC5jCkBAIC03MTAsNiArNzEwLDExIEBACiAJaWYgKCFza2IpCiAJCWdvdG8gZmFpbDsKIAorCS8qIE5vdyB0aGF0IGFsbCBtZW1vcnkgYWxsb2NhdGlvbnMgZm9yIHRoaXMgY2h1bmsgc3VjY2VlZGVkLCB3ZQorCSAqIGNhbiBtYXJrIGl0IGFzIHJlY2VpdmVkIHNvIHRoZSB0c25fbWFwIGlzIHVwZGF0ZWQgY29ycmVjdGx5LgorCSAqLworCXNjdHBfdHNubWFwX21hcmsoJmFzb2MtPnBlZXIudHNuX21hcCwgbnRvaGwoY2h1bmstPnN1YmguZGF0YV9oZHItPnRzbikpOworCiAJLyogRmlyc3QgY2FsY3VsYXRlIHRoZSBwYWRkaW5nLCBzbyB3ZSBkb24ndCBpbmFkdmVydGVudGx5CiAJICogcGFzcyB1cCB0aGUgd3JvbmcgbGVuZ3RoIHRvIHRoZSB1c2VyLgogCSAqCmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL2F1dGhfZ3NzL3N2Y2F1dGhfZ3NzLmMgYi9uZXQvc3VucnBjL2F1dGhfZ3NzL3N2Y2F1dGhfZ3NzLmMKaW5kZXggNTkwNWQ1Ni4uODFhZTNkNiAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9zdmNhdXRoX2dzcy5jCisrKyBiL25ldC9zdW5ycGMvYXV0aF9nc3Mvc3ZjYXV0aF9nc3MuYwpAQCAtMTE0NCwyMCArMTE0NCwyMCBAQAogCQljYXNlIFJQQ19HU1NfU1ZDX05PTkU6CiAJCQlicmVhazsKIAkJY2FzZSBSUENfR1NTX1NWQ19JTlRFR1JJVFk6CisJCQkvKiBwbGFjZWhvbGRlcnMgZm9yIGxlbmd0aCBhbmQgc2VxLiBudW1iZXI6ICovCisJCQlzdmNfcHV0bmwocmVzdiwgMCk7CisJCQlzdmNfcHV0bmwocmVzdiwgMCk7CiAJCQlpZiAodW53cmFwX2ludGVnX2RhdGEoJnJxc3RwLT5ycV9hcmcsCiAJCQkJCWdjLT5nY19zZXEsIHJzY2ktPm1lY2hjdHgpKQogCQkJCWdvdG8gZ2FyYmFnZV9hcmdzOworCQkJYnJlYWs7CisJCWNhc2UgUlBDX0dTU19TVkNfUFJJVkFDWToKIAkJCS8qIHBsYWNlaG9sZGVycyBmb3IgbGVuZ3RoIGFuZCBzZXEuIG51bWJlcjogKi8KIAkJCXN2Y19wdXRubChyZXN2LCAwKTsKIAkJCXN2Y19wdXRubChyZXN2LCAwKTsKLQkJCWJyZWFrOwotCQljYXNlIFJQQ19HU1NfU1ZDX1BSSVZBQ1k6CiAJCQlpZiAodW53cmFwX3ByaXZfZGF0YShycXN0cCwgJnJxc3RwLT5ycV9hcmcsCiAJCQkJCWdjLT5nY19zZXEsIHJzY2ktPm1lY2hjdHgpKQogCQkJCWdvdG8gZ2FyYmFnZV9hcmdzOwotCQkJLyogcGxhY2Vob2xkZXJzIGZvciBsZW5ndGggYW5kIHNlcS4gbnVtYmVyOiAqLwotCQkJc3ZjX3B1dG5sKHJlc3YsIDApOwotCQkJc3ZjX3B1dG5sKHJlc3YsIDApOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlnb3RvIGF1dGhfZXJyOwpAQCAtMTE3MCw4ICsxMTcwLDYgQEAKIAkJZ290byBvdXQ7CiAJfQogZ2FyYmFnZV9hcmdzOgotCS8qIFJlc3RvcmUgd3JpdGUgcG9pbnRlciB0byBpdHMgb3JpZ2luYWwgdmFsdWU6ICovCi0JeGRyX3Jlc3NpemVfY2hlY2socnFzdHAsIHJlamVjdF9zdGF0KTsKIAlyZXQgPSBTVkNfR0FSQkFHRTsKIAlnb3RvIG91dDsKIGF1dGhfZXJyOgpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9ycGNiX2NsbnQuYyBiL25ldC9zdW5ycGMvcnBjYl9jbG50LmMKaW5kZXggMDUxNzk2Ny4uZTZmYjIxYiAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9ycGNiX2NsbnQuYworKysgYi9uZXQvc3VucnBjL3JwY2JfY2xudC5jCkBAIC0yNDMsMTAgKzI0MywxMCBAQAogfQogRVhQT1JUX1NZTUJPTF9HUEwocnBjYl9nZXRwb3J0X3N5bmMpOwogCi1zdGF0aWMgc3RydWN0IHJwY190YXNrICpycGNiX2NhbGxfYXN5bmMoc3RydWN0IHJwY19jbG50ICpycGNiX2NsbnQsIHN0cnVjdCBycGNiaW5kX2FyZ3MgKm1hcCwgaW50IHZlcnNpb24pCitzdGF0aWMgc3RydWN0IHJwY190YXNrICpycGNiX2NhbGxfYXN5bmMoc3RydWN0IHJwY19jbG50ICpycGNiX2NsbnQsIHN0cnVjdCBycGNiaW5kX2FyZ3MgKm1hcCwgc3RydWN0IHJwY19wcm9jaW5mbyAqcHJvYykKIHsKIAlzdHJ1Y3QgcnBjX21lc3NhZ2UgbXNnID0gewotCQkucnBjX3Byb2MgPSBycGNiX25leHRfdmVyc2lvblt2ZXJzaW9uXS5ycGNfcHJvYywKKwkJLnJwY19wcm9jID0gcHJvYywKIAkJLnJwY19hcmdwID0gbWFwLAogCQkucnBjX3Jlc3AgPSAmbWFwLT5yX3BvcnQsCiAJfTsKQEAgLTI3MSw2ICsyNzEsNyBAQAogdm9pZCBycGNiX2dldHBvcnRfYXN5bmMoc3RydWN0IHJwY190YXNrICp0YXNrKQogewogCXN0cnVjdCBycGNfY2xudCAqY2xudCA9IHRhc2stPnRrX2NsaWVudDsKKwlzdHJ1Y3QgcnBjX3Byb2NpbmZvICpwcm9jOwogCXUzMiBiaW5kX3ZlcnNpb247CiAJc3RydWN0IHJwY194cHJ0ICp4cHJ0ID0gdGFzay0+dGtfeHBydDsKIAlzdHJ1Y3QgcnBjX2NsbnQJKnJwY2JfY2xudDsKQEAgLTI4MCw3ICsyODEsNiBAQAogCXN0cnVjdCBzb2NrYWRkciAqc2FwID0gKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyOwogCXNpemVfdCBzYWxlbjsKIAlpbnQgc3RhdHVzOwotCXN0cnVjdCBycGNiX2luZm8gKmluZm87CiAKIAlkcHJpbnRrKCJSUEM6ICU1dSAlcyglcywgJXUsICV1LCAlZClcbiIsCiAJCXRhc2stPnRrX3BpZCwgX19mdW5jX18sCkBAIC0zMTMsMTAgKzMxMywxMiBAQAogCS8qIERvbid0IGV2ZXIgdXNlIHJwY2JpbmQgdjIgZm9yIEFGX0lORVQ2IHJlcXVlc3RzICovCiAJc3dpdGNoIChzYXAtPnNhX2ZhbWlseSkgewogCWNhc2UgQUZfSU5FVDoKLQkJaW5mbyA9IHJwY2JfbmV4dF92ZXJzaW9uOworCQlwcm9jID0gcnBjYl9uZXh0X3ZlcnNpb25beHBydC0+YmluZF9pbmRleF0ucnBjX3Byb2M7CisJCWJpbmRfdmVyc2lvbiA9IHJwY2JfbmV4dF92ZXJzaW9uW3hwcnQtPmJpbmRfaW5kZXhdLnJwY192ZXJzOwogCQlicmVhazsKIAljYXNlIEFGX0lORVQ2OgotCQlpbmZvID0gcnBjYl9uZXh0X3ZlcnNpb242OworCQlwcm9jID0gcnBjYl9uZXh0X3ZlcnNpb242W3hwcnQtPmJpbmRfaW5kZXhdLnJwY19wcm9jOworCQliaW5kX3ZlcnNpb24gPSBycGNiX25leHRfdmVyc2lvbjZbeHBydC0+YmluZF9pbmRleF0ucnBjX3ZlcnM7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXN0YXR1cyA9IC1FQUZOT1NVUFBPUlQ7CkBAIC0zMjQsMTQgKzMyNiwxMyBAQAogCQkJCXRhc2stPnRrX3BpZCwgX19mdW5jX18pOwogCQlnb3RvIGJhaWxvdXRfbm9mcmVlOwogCX0KLQlpZiAoaW5mb1t4cHJ0LT5iaW5kX2luZGV4XS5ycGNfcHJvYyA9PSBOVUxMKSB7CisJaWYgKHByb2MgPT0gTlVMTCkgewogCQl4cHJ0LT5iaW5kX2luZGV4ID0gMDsKIAkJc3RhdHVzID0gLUVQRk5PU1VQUE9SVDsKIAkJZHByaW50aygiUlBDOiAlNXUgJXM6IG5vIG1vcmUgZ2V0cG9ydCB2ZXJzaW9ucyBhdmFpbGFibGVcbiIsCiAJCQl0YXNrLT50a19waWQsIF9fZnVuY19fKTsKIAkJZ290byBiYWlsb3V0X25vZnJlZTsKIAl9Ci0JYmluZF92ZXJzaW9uID0gaW5mb1t4cHJ0LT5iaW5kX2luZGV4XS5ycGNfdmVyczsKIAogCWRwcmludGsoIlJQQzogJTV1ICVzOiB0cnlpbmcgcnBjYmluZCB2ZXJzaW9uICV1XG4iLAogCQl0YXNrLT50a19waWQsIF9fZnVuY19fLCBiaW5kX3ZlcnNpb24pOwpAQCAtMzYxLDIyICszNjIsMjAgQEAKIAltYXAtPnJfYWRkciA9IHJwY19wZWVyYWRkcjJzdHIocnBjYl9jbG50LCBSUENfRElTUExBWV9VTklWRVJTQUxfQUREUik7CiAJbWFwLT5yX293bmVyID0gUlBDQl9PV05FUl9TVFJJTkc7CS8qIGlnbm9yZWQgZm9yIEdFVEFERFIgKi8KIAotCWNoaWxkID0gcnBjYl9jYWxsX2FzeW5jKHJwY2JfY2xudCwgbWFwLCB4cHJ0LT5iaW5kX2luZGV4KTsKKwljaGlsZCA9IHJwY2JfY2FsbF9hc3luYyhycGNiX2NsbnQsIG1hcCwgcHJvYyk7CiAJcnBjX3JlbGVhc2VfY2xpZW50KHJwY2JfY2xudCk7CiAJaWYgKElTX0VSUihjaGlsZCkpIHsKIAkJc3RhdHVzID0gLUVJTzsKKwkJLyogcnBjYl9tYXBfcmVsZWFzZSgpIGhhcyBmcmVlZCB0aGUgYXJndW1lbnRzICovCiAJCWRwcmludGsoIlJQQzogJTV1ICVzOiBycGNfcnVuX3Rhc2sgZmFpbGVkXG4iLAogCQkJdGFzay0+dGtfcGlkLCBfX2Z1bmNfXyk7Ci0JCWdvdG8gYmFpbG91dDsKKwkJZ290byBiYWlsb3V0X25vZnJlZTsKIAl9CiAJcnBjX3B1dF90YXNrKGNoaWxkKTsKIAogCXRhc2stPnRrX3hwcnQtPnN0YXQuYmluZF9jb3VudCsrOwogCXJldHVybjsKIAotYmFpbG91dDoKLQlrZnJlZShtYXApOwotCXhwcnRfcHV0KHhwcnQpOwogYmFpbG91dF9ub2ZyZWU6CiAJcnBjYl93YWtlX3JwY2JpbmRfd2FpdGVycyh4cHJ0LCBzdGF0dXMpOwogYmFpbG91dF9ub3dha2U6CmRpZmYgLS1naXQgYS9uZXQvdW5peC9hZl91bml4LmMgYi9uZXQvdW5peC9hZl91bml4LmMKaW5kZXggZTE4Y2QzNi4uNzgzMzE3ZCAxMDA2NDQKLS0tIGEvbmV0L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMTY5LDYgKzE2OSwxMSBAQAogCXJldHVybiAodW5peF9wZWVyKG9zaykgPT0gTlVMTCB8fCB1bml4X291cl9wZWVyKHNrLCBvc2spKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgdW5peF9yZWN2cV9mdWxsKHN0cnVjdCBzb2NrIGNvbnN0ICpzaykKK3sKKwlyZXR1cm4gc2tiX3F1ZXVlX2xlbigmc2stPnNrX3JlY2VpdmVfcXVldWUpID4gc2stPnNrX21heF9hY2tfYmFja2xvZzsKK30KKwogc3RhdGljIHN0cnVjdCBzb2NrICp1bml4X3BlZXJfZ2V0KHN0cnVjdCBzb2NrICpzKQogewogCXN0cnVjdCBzb2NrICpwZWVyOwpAQCAtNDgyLDYgKzQ4Nyw4IEBACiBzdGF0aWMgaW50IHVuaXhfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKiwgc3RydWN0IHNvY2tldCAqLCBpbnQpOwogc3RhdGljIGludCB1bml4X2dldG5hbWUoc3RydWN0IHNvY2tldCAqLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50ICosIGludCk7CiBzdGF0aWMgdW5zaWduZWQgaW50IHVuaXhfcG9sbChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgc29ja2V0ICosIHBvbGxfdGFibGUgKik7CitzdGF0aWMgdW5zaWduZWQgaW50IHVuaXhfZGdyYW1fcG9sbChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3Qgc29ja2V0ICosCisJCQkJICAgIHBvbGxfdGFibGUgKik7CiBzdGF0aWMgaW50IHVuaXhfaW9jdGwoc3RydWN0IHNvY2tldCAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwogc3RhdGljIGludCB1bml4X3NodXRkb3duKHN0cnVjdCBzb2NrZXQgKiwgaW50KTsKIHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IHNvY2tldCAqLApAQCAtNTI3LDcgKzUzNCw3IEBACiAJLnNvY2tldHBhaXIgPQl1bml4X3NvY2tldHBhaXIsCiAJLmFjY2VwdCA9CXNvY2tfbm9fYWNjZXB0LAogCS5nZXRuYW1lID0JdW5peF9nZXRuYW1lLAotCS5wb2xsID0JCWRhdGFncmFtX3BvbGwsCisJLnBvbGwgPQkJdW5peF9kZ3JhbV9wb2xsLAogCS5pb2N0bCA9CXVuaXhfaW9jdGwsCiAJLmxpc3RlbiA9CXNvY2tfbm9fbGlzdGVuLAogCS5zaHV0ZG93biA9CXVuaXhfc2h1dGRvd24sCkBAIC01NDgsNyArNTU1LDcgQEAKIAkuc29ja2V0cGFpciA9CXVuaXhfc29ja2V0cGFpciwKIAkuYWNjZXB0ID0JdW5peF9hY2NlcHQsCiAJLmdldG5hbWUgPQl1bml4X2dldG5hbWUsCi0JLnBvbGwgPQkJZGF0YWdyYW1fcG9sbCwKKwkucG9sbCA9CQl1bml4X2RncmFtX3BvbGwsCiAJLmlvY3RsID0JdW5peF9pb2N0bCwKIAkubGlzdGVuID0JdW5peF9saXN0ZW4sCiAJLnNodXRkb3duID0JdW5peF9zaHV0ZG93biwKQEAgLTk4Myw4ICs5OTAsNyBAQAogCiAJc2NoZWQgPSAhc29ja19mbGFnKG90aGVyLCBTT0NLX0RFQUQpICYmCiAJCSEob3RoZXItPnNrX3NodXRkb3duICYgUkNWX1NIVVRET1dOKSAmJgotCQkoc2tiX3F1ZXVlX2xlbigmb3RoZXItPnNrX3JlY2VpdmVfcXVldWUpID4KLQkJIG90aGVyLT5za19tYXhfYWNrX2JhY2tsb2cpOworCQl1bml4X3JlY3ZxX2Z1bGwob3RoZXIpOwogCiAJdW5peF9zdGF0ZV91bmxvY2sob3RoZXIpOwogCkBAIC0xMDU4LDggKzEwNjQsNyBAQAogCWlmIChvdGhlci0+c2tfc3RhdGUgIT0gVENQX0xJU1RFTikKIAkJZ290byBvdXRfdW5sb2NrOwogCi0JaWYgKHNrYl9xdWV1ZV9sZW4oJm90aGVyLT5za19yZWNlaXZlX3F1ZXVlKSA+Ci0JICAgIG90aGVyLT5za19tYXhfYWNrX2JhY2tsb2cpIHsKKwlpZiAodW5peF9yZWN2cV9mdWxsKG90aGVyKSkgewogCQllcnIgPSAtRUFHQUlOOwogCQlpZiAoIXRpbWVvKQogCQkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTQyOCw5ICsxNDMzLDcgQEAKIAkJCWdvdG8gb3V0X3VubG9jazsKIAl9CiAKLQlpZiAodW5peF9wZWVyKG90aGVyKSAhPSBzayAmJgotCSAgICAoc2tiX3F1ZXVlX2xlbigmb3RoZXItPnNrX3JlY2VpdmVfcXVldWUpID4KLQkgICAgIG90aGVyLT5za19tYXhfYWNrX2JhY2tsb2cpKSB7CisJaWYgKHVuaXhfcGVlcihvdGhlcikgIT0gc2sgJiYgdW5peF9yZWN2cV9mdWxsKG90aGVyKSkgewogCQlpZiAoIXRpbWVvKSB7CiAJCQllcnIgPSAtRUFHQUlOOwogCQkJZ290byBvdXRfdW5sb2NrOwpAQCAtMTk5MSw2ICsxOTk0LDYwIEBACiAJcmV0dXJuIG1hc2s7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgdW5peF9kZ3JhbV9wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAorCQkJCSAgICBwb2xsX3RhYmxlICp3YWl0KQoreworCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrLCAqb3RoZXI7CisJdW5zaWduZWQgaW50IG1hc2ssIHdyaXRhYmxlOworCisJcG9sbF93YWl0KGZpbGUsIHNrLT5za19zbGVlcCwgd2FpdCk7CisJbWFzayA9IDA7CisKKwkvKiBleGNlcHRpb25hbCBldmVudHM/ICovCisJaWYgKHNrLT5za19lcnIgfHwgIXNrYl9xdWV1ZV9lbXB0eSgmc2stPnNrX2Vycm9yX3F1ZXVlKSkKKwkJbWFzayB8PSBQT0xMRVJSOworCWlmIChzay0+c2tfc2h1dGRvd24gJiBSQ1ZfU0hVVERPV04pCisJCW1hc2sgfD0gUE9MTFJESFVQOworCWlmIChzay0+c2tfc2h1dGRvd24gPT0gU0hVVERPV05fTUFTSykKKwkJbWFzayB8PSBQT0xMSFVQOworCisJLyogcmVhZGFibGU/ICovCisJaWYgKCFza2JfcXVldWVfZW1wdHkoJnNrLT5za19yZWNlaXZlX3F1ZXVlKSB8fAorCSAgICAoc2stPnNrX3NodXRkb3duICYgUkNWX1NIVVRET1dOKSkKKwkJbWFzayB8PSBQT0xMSU4gfCBQT0xMUkROT1JNOworCisJLyogQ29ubmVjdGlvbi1iYXNlZCBuZWVkIHRvIGNoZWNrIGZvciB0ZXJtaW5hdGlvbiBhbmQgc3RhcnR1cCAqLworCWlmIChzay0+c2tfdHlwZSA9PSBTT0NLX1NFUVBBQ0tFVCkgeworCQlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9DTE9TRSkKKwkJCW1hc2sgfD0gUE9MTEhVUDsKKwkJLyogY29ubmVjdGlvbiBoYXNuJ3Qgc3RhcnRlZCB5ZXQ/ICovCisJCWlmIChzay0+c2tfc3RhdGUgPT0gVENQX1NZTl9TRU5UKQorCQkJcmV0dXJuIG1hc2s7CisJfQorCisJLyogd3JpdGFibGU/ICovCisJd3JpdGFibGUgPSB1bml4X3dyaXRhYmxlKHNrKTsKKwlpZiAod3JpdGFibGUpIHsKKwkJb3RoZXIgPSB1bml4X3BlZXJfZ2V0KHNrKTsKKwkJaWYgKG90aGVyKSB7CisJCQlpZiAodW5peF9wZWVyKG90aGVyKSAhPSBzaykgeworCQkJCXBvbGxfd2FpdChmaWxlLCAmdW5peF9zayhvdGhlciktPnBlZXJfd2FpdCwKKwkJCQkJICB3YWl0KTsKKwkJCQlpZiAodW5peF9yZWN2cV9mdWxsKG90aGVyKSkKKwkJCQkJd3JpdGFibGUgPSAwOworCQkJfQorCisJCQlzb2NrX3B1dChvdGhlcik7CisJCX0KKwl9CisKKwlpZiAod3JpdGFibGUpCisJCW1hc2sgfD0gUE9MTE9VVCB8IFBPTExXUk5PUk0gfCBQT0xMV1JCQU5EOworCWVsc2UKKwkJc2V0X2JpdChTT0NLX0FTWU5DX05PU1BBQ0UsICZzay0+c2tfc29ja2V0LT5mbGFncyk7CisKKwlyZXR1cm4gbWFzazsKK30KIAogI2lmZGVmIENPTkZJR19QUk9DX0ZTCiBzdGF0aWMgc3RydWN0IHNvY2sgKmZpcnN0X3VuaXhfc29ja2V0KGludCAqaSkKZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMgYi9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jCmluZGV4IDJiZGQ0ZGQuLmZiNzVmMjYgMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMKKysrIGIvbmV0L3dpcmVsZXNzL25sODAyMTEuYwpAQCAtMTg3LDcgKzE4Nyw4IEBACiAJcmV0dXJuIGdlbmxtc2dfZW5kKG1zZywgaGRyKTsKIAogIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gZ2VubG1zZ19jYW5jZWwobXNnLCBoZHIpOworCWdlbmxtc2dfY2FuY2VsKG1zZywgaGRyKTsKKwlyZXR1cm4gLUVNU0dTSVpFOwogfQogCiBzdGF0aWMgaW50IG5sODAyMTFfZHVtcF93aXBoeShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCkBAIC0yNzMsNyArMjc0LDggQEAKIAlyZXR1cm4gZ2VubG1zZ19lbmQobXNnLCBoZHIpOwogCiAgbmxhX3B1dF9mYWlsdXJlOgotCXJldHVybiBnZW5sbXNnX2NhbmNlbChtc2csIGhkcik7CisJZ2VubG1zZ19jYW5jZWwobXNnLCBoZHIpOworCXJldHVybiAtRU1TR1NJWkU7CiB9CiAKIHN0YXRpYyBpbnQgbmw4MDIxMV9kdW1wX2ludGVyZmFjZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0bGlua19jYWxsYmFjayAqY2IpCkBAIC05MjgsNyArOTMwLDggQEAKIAlyZXR1cm4gZ2VubG1zZ19lbmQobXNnLCBoZHIpOwogCiAgbmxhX3B1dF9mYWlsdXJlOgotCXJldHVybiBnZW5sbXNnX2NhbmNlbChtc2csIGhkcik7CisJZ2VubG1zZ19jYW5jZWwobXNnLCBoZHIpOworCXJldHVybiAtRU1TR1NJWkU7CiB9CiAKIHN0YXRpYyBpbnQgbmw4MDIxMV9kdW1wX3N0YXRpb24oc3RydWN0IHNrX2J1ZmYgKnNrYiwKQEAgLTEyNjcsNyArMTI3MCw4IEBACiAJcmV0dXJuIGdlbmxtc2dfZW5kKG1zZywgaGRyKTsKIAogIG5sYV9wdXRfZmFpbHVyZToKLQlyZXR1cm4gZ2VubG1zZ19jYW5jZWwobXNnLCBoZHIpOworCWdlbmxtc2dfY2FuY2VsKG1zZywgaGRyKTsKKwlyZXR1cm4gLUVNU0dTSVpFOwogfQogCiBzdGF0aWMgaW50IG5sODAyMTFfZHVtcF9tcGF0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLApkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3JlZy5jIGIvbmV0L3dpcmVsZXNzL3JlZy5jCmluZGV4IDE4NTQ4OGQuLjg1NWJmZjQgMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVzcy9yZWcuYworKysgYi9uZXQvd2lyZWxlc3MvcmVnLmMKQEAgLTgwLDYgKzgwLDIzIEBACiAJCQkJICAgICBJRUVFODAyMTFfQ0hBTl9SQURBUiksCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsX3JhbmdlIGllZWU4MDIxMV9FVV9jaGFubmVsc1tdID0geworCS8qIElFRUUgODAyLjExYi9nLCBjaGFubmVscyAxLi4xMyAqLworCVJBTkdFX1BXUigyNDEyLCAyNDcyLCAyMCwgNiwgMCksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVsIDM2Ki8KKwlSQU5HRV9QV1IoNTE4MCwgNTE4MCwgMjMsIDYsIElFRUU4MDIxMV9DSEFOX1BBU1NJVkVfU0NBTiksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVsIDQwKi8KKwlSQU5HRV9QV1IoNTIwMCwgNTIwMCwgMjMsIDYsIElFRUU4MDIxMV9DSEFOX1BBU1NJVkVfU0NBTiksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVsIDQ0Ki8KKwlSQU5HRV9QV1IoNTIyMCwgNTIyMCwgMjMsIDYsIElFRUU4MDIxMV9DSEFOX1BBU1NJVkVfU0NBTiksCisJLyogSUVFRSA4MDIuMTFhLCBjaGFubmVscyA0OC4uNjQgKi8KKwlSQU5HRV9QV1IoNTI0MCwgNTMyMCwgMjMsIDYsIElFRUU4MDIxMV9DSEFOX05PX0lCU1MgfAorCQkJCSAgICAgSUVFRTgwMjExX0NIQU5fUkFEQVIpLAorCS8qIElFRUUgODAyLjExYSwgY2hhbm5lbHMgMTAwLi4xNDAgKi8KKwlSQU5HRV9QV1IoNTUwMCwgNTcwMCwgMzAsIDYsIElFRUU4MDIxMV9DSEFOX05PX0lCU1MgfAorCQkJCSAgICAgSUVFRTgwMjExX0NIQU5fUkFEQVIpLAorfTsKKwogI2RlZmluZSBSRUdET00oX2NvZGUpCQkJCQkJCVwKIAl7CQkJCQkJCQlcCiAJCS5jb2RlID0gX19zdHJpbmdpZnkoX2NvZGUpLAkJCQlcCkBAIC05MCw2ICsxMDcsNyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfcmVnZG9tYWluIGllZWU4MDIxMV9yZWdkb21zW10gPSB7CiAJUkVHRE9NKFVTKSwKIAlSRUdET00oSlApLAorCVJFR0RPTShFVSksCiB9OwogCiAKZGlmZiAtLWdpdCBhL25ldC94ZnJtL3hmcm1fYWxnby5jIGIvbmV0L3hmcm0veGZybV9hbGdvLmMKaW5kZXggYWM3NjVkZC4uMjNhMmNjMCAxMDA2NDQKLS0tIGEvbmV0L3hmcm0veGZybV9hbGdvLmMKKysrIGIvbmV0L3hmcm0veGZybV9hbGdvLmMKQEAgLTIwMCw4ICsyMDAsOCBAQAogCX0KIH0sCiB7Ci0JLm5hbWUgPSAiaG1hYyhyaXBlbWQxNjApIiwKLQkuY29tcGF0ID0gInJpcGVtZDE2MCIsCisJLm5hbWUgPSAiaG1hYyhybWQxNjApIiwKKwkuY29tcGF0ID0gInJtZDE2MCIsCiAKIAkudWluZm8gPSB7CiAJCS5hdXRoID0gewpkaWZmIC0tZ2l0IGEvbmV0L3hmcm0veGZybV91c2VyLmMgYi9uZXQveGZybS94ZnJtX3VzZXIuYwppbmRleCBiOTc2ZDllLi4wNGM0MTUwIDEwMDY0NAotLS0gYS9uZXQveGZybS94ZnJtX3VzZXIuYworKysgYi9uZXQveGZybS94ZnJtX3VzZXIuYwpAQCAtMjc3LDkgKzI3Nyw4IEBACiAJbWVtY3B5KCZ4LT5wcm9wcy5zYWRkciwgJnAtPnNhZGRyLCBzaXplb2YoeC0+cHJvcHMuc2FkZHIpKTsKIAl4LT5wcm9wcy5mbGFncyA9IHAtPmZsYWdzOwogCi0JaWYgKCF4LT5zZWwuZmFtaWx5KQorCWlmICgheC0+c2VsLmZhbWlseSAmJiAhKHAtPmZsYWdzICYgWEZSTV9TVEFURV9BRl9VTlNQRUMpKQogCQl4LT5zZWwuZmFtaWx5ID0gcC0+ZmFtaWx5OwotCiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdCBiL3NjcmlwdHMvTWFrZWZpbGUuZndpbnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkMmY0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9zY3JpcHRzL01ha2VmaWxlLmZ3aW5zdApAQCAtMCwwICsxLDQ1IEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEluc3RhbGxpbmcgZmlybXdhcmUKKyMKKyMgV2UgZG9uJ3QgaW5jbHVkZSB0aGUgLmNvbmZpZywgc28gYWxsIGZpcm13YXJlIGZpbGVzIGFyZSBpbiAkKGZ3LXNoaXBwZWQtKQorIyByYXRoZXIgdGhhbiBpbiAkKGZ3LXNoaXBwZWQteSkgb3IgJChmdy1zaGlwcGVkLW4pLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJTlNUQUxMIDo9IGluc3RhbGwKK3NyYyA6PSAkKG9iaikKKworIyBGb3IgbW9kdWxlc19pbnN0YWxsIGluc3RhbGxpbmcgZmlybXdhcmUsIHdlIHdhbnQgdG8gc2VlIC5jb25maWcKKyMgQnV0IGZvciBmaXJtd2FyZV9pbnN0YWxsLCB3ZSBkb24ndCBjYXJlLCBidXQgZG9uJ3Qgd2FudCB0byByZXF1aXJlIGl0LgorLWluY2x1ZGUgJChvYmp0cmVlKS8uY29uZmlnCisKK2luY2x1ZGUgc2NyaXB0cy9LYnVpbGQuaW5jbHVkZQoraW5jbHVkZSAkKHNyY3RyZWUpLyQob2JqKS9NYWtlZmlsZQorCitpbmNsdWRlIHNjcmlwdHMvTWFrZWZpbGUuaG9zdAorCittb2QtZncgOj0gJChhZGRwcmVmaXggJChJTlNUQUxMX0ZXX1BBVEgpLywkKGZ3LXNoaXBwZWQtbSkpCisKKyMgSWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTCBpc24ndCBzZXQsIHRoZW4gaW5zdGFsbCB0aGUgCisjIGZpcm13YXJlIGZvciBpbi1rZXJuZWwgZHJpdmVycyB0b28uCitpZm5kZWYgQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTAorbW9kLWZ3ICs9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLXkpKQorZW5kaWYKKworaW5zdGFsbGVkLWZ3IDo9ICQoYWRkcHJlZml4ICQoSU5TVEFMTF9GV19QQVRIKS8sJChmdy1zaGlwcGVkLWFsbCkpCitpbnN0YWxsZWQtZnctZGlycyA6PSAkKHNvcnQgJChkaXIgJChpbnN0YWxsZWQtZncpKSkgJChJTlNUQUxMX0ZXX1BBVEgpLy4KKworcXVpZXRfY21kX2luc3RhbGwgPSBJTlNUQUxMICQoc3Vic3QgJChzcmN0cmVlKS8sLCRAKQorICAgICAgY21kX2luc3RhbGwgPSAkKElOU1RBTEwpIC1tMDY0NCAkPCAkQAorCiskKGluc3RhbGxlZC1mdy1kaXJzKToKKwkkKGNhbGwgY21kLG1rZGlyKQorCiskKGluc3RhbGxlZC1mdyk6ICQoSU5TVEFMTF9GV19QQVRIKS8lOiAkKG9iaikvJSB8ICQoSU5TVEFMTF9GV19QQVRIKS8kJChkaXIgJSkvCisJJChjYWxsIGNtZCxpbnN0YWxsKQorCisuUEhPTlk6IF9fZndfaW5zdGFsbCBfX2Z3X21vZGluc3QgRk9SQ0UKKworX19md19pbnN0YWxsOiAkKGluc3RhbGxlZC1mdykKK19fZndfbW9kaW5zdDogJChtb2QtZncpCisKK0ZPUkNFOgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZS5saWIgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgppbmRleCA4ZTQ0MDIzLi5lYTQ4YjgyIDEwMDY0NAotLS0gYS9zY3JpcHRzL01ha2VmaWxlLmxpYgorKysgYi9zY3JpcHRzL01ha2VmaWxlLmxpYgpAQCAtOTYsNyArOTYsOCBAQAogbW9kbmFtZV9mbGFncyAgPSAkKGlmICQoZmlsdGVyIDEsJCh3b3JkcyAkKG1vZG5hbWUpKSksXAogICAgICAgICAgICAgICAgICAtRCJLQlVJTERfTU9ETkFNRT1LQlVJTERfU1RSKCQoY2FsbCBuYW1lLWZpeCwkKG1vZG5hbWUpKSkiKQogCi1fY19mbGFncyAgICAgICA9ICQoS0JVSUxEX0NGTEFHUykgJChjY2ZsYWdzLXkpICQoQ0ZMQUdTXyQoYmFzZXRhcmdldCkubykKK29yaWdfY19mbGFncyAgID0gJChLQlVJTERfQ0ZMQUdTKSAkKGNjZmxhZ3MteSkgJChDRkxBR1NfJChiYXNldGFyZ2V0KS5vKQorX2NfZmxhZ3MgICAgICAgPSAkKGZpbHRlci1vdXQgJChDRkxBR1NfUkVNT1ZFXyQoYmFzZXRhcmdldCkubyksICQob3JpZ19jX2ZsYWdzKSkKIF9hX2ZsYWdzICAgICAgID0gJChLQlVJTERfQUZMQUdTKSAkKGFzZmxhZ3MteSkgJChBRkxBR1NfJChiYXNldGFyZ2V0KS5vKQogX2NwcF9mbGFncyAgICAgPSAkKEtCVUlMRF9DUFBGTEFHUykgJChjcHBmbGFncy15KSAkKENQUEZMQUdTXyQoQEYpKQogCmRpZmYgLS1naXQgYS9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QgYi9zY3JpcHRzL01ha2VmaWxlLm1vZHBvc3QKaW5kZXggYTA5OGEwNC4uMTcwOTJkNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9NYWtlZmlsZS5tb2Rwb3N0CisrKyBiL3NjcmlwdHMvTWFrZWZpbGUubW9kcG9zdApAQCAtNDMsNyArNDMsMTMgQEAKIGluY2x1ZGUgaW5jbHVkZS9jb25maWcvYXV0by5jb25mCiBpbmNsdWRlIHNjcmlwdHMvS2J1aWxkLmluY2x1ZGUKIAorIyBXaGVuIGJ1aWxkaW5nIGV4dGVybmFsIG1vZHVsZXMgbG9hZCB0aGUgS2J1aWxkIGZpbGUgdG8gcmV0cmVpdmUgRVhUUkFfU1lNQk9MUyBpbmZvCiBpZm5lcSAoJChLQlVJTERfRVhUTU9EKSwpCisKKyMgc2V0IHNyYyArIG9iaiAtIHRoZXkgbWF5IGJlIHVzZWQgd2hlbiBidWlsZGluZyB0aGUgLm1vZC5jIGZpbGUKK29iaiA6PSAkKEtCVUlMRF9FWFRNT0QpCitzcmMgOj0gJChvYmopCisKICMgSW5jbHVkZSB0aGUgbW9kdWxlJ3MgTWFrZWZpbGUgdG8gZmluZCBLQlVJTERfRVhUUkFfU1lNQk9MUwogaW5jbHVkZSAkKGlmICQod2lsZGNhcmQgJChLQlVJTERfRVhUTU9EKS9LYnVpbGQpLCBcCiAgICAgICAgICAgICAgJChLQlVJTERfRVhUTU9EKS9LYnVpbGQsICQoS0JVSUxEX0VYVE1PRCkvTWFrZWZpbGUpCmRpZmYgLS1naXQgYS9zY3JpcHRzL2NoZWNrcGF0Y2gucGwgYi9zY3JpcHRzL2NoZWNrcGF0Y2gucGwKaW5kZXggYjZiYmJjZC4uNjk3MWJmMCAxMDA3NTUKLS0tIGEvc2NyaXB0cy9jaGVja3BhdGNoLnBsCisrKyBiL3NjcmlwdHMvY2hlY2twYXRjaC5wbApAQCAtOSw3ICs5LDcgQEAKIG15ICRQID0gJDA7CiAkUCA9fiBzQC4qL0BAZzsKIAotbXkgJFYgPSAnMC4xOCc7CitteSAkViA9ICcwLjE5JzsKIAogdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIG5vX2F1dG9fYWJicmV2KTsKIApAQCAtMTE1LDYgKzExNSw3IEBACiAJCQlfX2twcm9iZXN8CiAJCQlfXyg/Om1lbXxjcHV8ZGV2fCkoPzppbml0ZGF0YXxpbml0KQogCQkgIH14Oworb3VyICRNb2RpZmllcjsKIG91ciAkSW5saW5lCT0gcXJ7aW5saW5lfF9fYWx3YXlzX2lubGluZXxub2lubGluZX07CiBvdXIgJE1lbWJlcgk9IHFyey0+JElkZW50fFwuJElkZW50fFxbW15dXSpcXX07CiBvdXIgJEx2YWwJPSBxcnskSWRlbnQoPzokTWVtYmVyKSp9OwpAQCAtMTQ0LDE3ICsxNDUsMTcgQEAKIAogb3VyIEB0eXBlTGlzdCA9ICgKIAlxcnt2b2lkfSwKLQlxcntjaGFyfSwKLQlxcntzaG9ydH0sCi0JcXJ7aW50fSwKLQlxcntsb25nfSwKKwlxcnsoPzp1bnNpZ25lZFxzKyk/Y2hhcn0sCisJcXJ7KD86dW5zaWduZWRccyspP3Nob3J0fSwKKwlxcnsoPzp1bnNpZ25lZFxzKyk/aW50fSwKKwlxcnsoPzp1bnNpZ25lZFxzKyk/bG9uZ30sCisJcXJ7KD86dW5zaWduZWRccyspP2xvbmdccytpbnR9LAorCXFyeyg/OnVuc2lnbmVkXHMrKT9sb25nXHMrbG9uZ30sCisJcXJ7KD86dW5zaWduZWRccyspP2xvbmdccytsb25nXHMraW50fSwKIAlxcnt1bnNpZ25lZH0sCiAJcXJ7ZmxvYXR9LAogCXFye2RvdWJsZX0sCiAJcXJ7Ym9vbH0sCi0JcXJ7bG9uZ1xzK2ludH0sCi0JcXJ7bG9uZ1xzK2xvbmd9LAotCXFye2xvbmdccytsb25nXHMraW50fSwKIAlxcnsoPzpfXyk/KD86dXxzfGJlfGxlKSg/Ojh8MTZ8MzJ8NjQpfSwKIAlxcntzdHJ1Y3RccyskSWRlbnR9LAogCXFye3VuaW9uXHMrJElkZW50fSwKQEAgLTE2MywyNiArMTY0LDI5IEBACiAJcXJ7JHtJZGVudH1faGFuZGxlcn0sCiAJcXJ7JHtJZGVudH1faGFuZGxlcl9mbn0sCiApOworb3VyIEBtb2RpZmllckxpc3QgPSAoCisJcXJ7ZmFzdGNhbGx9LAorKTsKIAogc3ViIGJ1aWxkX3R5cGVzIHsKKwlteSAkbW9kcyA9ICIoPzogIFxuIiAuIGpvaW4oInxcbiAgIiwgQG1vZGlmaWVyTGlzdCkgLiAiXG4pIjsKIAlteSAkYWxsID0gIig/OiAgXG4iIC4gam9pbigifFxuICAiLCBAdHlwZUxpc3QpIC4gIlxuKSI7CiAJJE5vbnB0clR5cGUJPSBxcnsKLQkJCVxiCiAJCQkoPzpjb25zdFxzKyk/Ci0JCQkoPzp1bnNpZ25lZFxzKyk/CisJCQkoPzokbW9kc1xzKyk/CiAJCQkoPzoKLQkJCQkkYWxsfAotCQkJCSg/OnR5cGVvZnxfX3R5cGVvZl9fKVxzKlwoXHMqXCoqXHMqJElkZW50XHMqXCkKKwkJCQkoPzp0eXBlb2Z8X190eXBlb2ZfXylccypcKFxzKlwqKlxzKiRJZGVudFxzKlwpfAorCQkJCSg/OiR7YWxsfVxiKQogCQkJKQogCQkJKD86XHMrJFNwYXJzZXxccytjb25zdCkqCi0JCQlcYgogCQkgIH14OwogCSRUeXBlCT0gcXJ7Ci0JCQlcYiROb25wdHJUeXBlXGIKKwkJCSROb25wdHJUeXBlCiAJCQkoPzpccypcKitccypjb25zdHxccypcKit8KD86XHMqXFtccypcXSkrKT8KLQkJCSg/OlxzKyRJbmxpbmV8XHMrJFNwYXJzZXxccyskQXR0cmlidXRlKSoKKwkJCSg/OlxzKyRJbmxpbmV8XHMrJFNwYXJzZXxccyskQXR0cmlidXRlfFxzKyRtb2RzKSoKIAkJICB9eDsKIAkkRGVjbGFyZQk9IHFyeyg/OiRTdG9yYWdlXHMrKT8kVHlwZX07CisJJE1vZGlmaWVyCT0gcXJ7KD86JEF0dHJpYnV0ZXwkU3BhcnNlfCRtb2RzKX07CiB9CiBidWlsZF90eXBlcygpOwogCkBAIC0zMjksNyArMzMzLDcgQEAKIAkJCSRvZmYrKzsKIAkJCW5leHQ7CiAJCX0KLQkJaWYgKHN1YnN0cigkbGluZSwgJG9mZiwgMikgZXEgJHNhbml0aXNlX3F1b3RlKSB7CisJCWlmIChzdWJzdHIoJGxpbmUsICRvZmYsIDIpIGVxICcqLycpIHsKIAkJCSRzYW5pdGlzZV9xdW90ZSA9ICcnOwogCQkJc3Vic3RyKCRyZXMsICRvZmYsIDIsICIkOyQ7Iik7CiAJCQkkb2ZmKys7CkBAIC0zNjYsMTQgKzM3MCwxNCBAQAogCX0KIAogCSMgVGhlIHBhdGhuYW1lIG9uIGEgI2luY2x1ZGUgbWF5IGJlIHN1cnJvdW5kZWQgYnkgJzwnIGFuZCAnPicuCi0JaWYgKCRyZXMgPX4gL14uI1xzKmluY2x1ZGVccytcPCguKilcPi8pIHsKKwlpZiAoJHJlcyA9fiAvXi5ccypcI1xzKmluY2x1ZGVccytcPCguKilcPi8pIHsKIAkJbXkgJGNsZWFuID0gJ1gnIHggbGVuZ3RoKCQxKTsKIAkJJHJlcyA9fiBzQFw8LipcPkA8JGNsZWFuPkA7CiAKIAkjIFRoZSB3aG9sZSBvZiBhICNlcnJvciBpcyBhIHN0cmluZy4KLQl9IGVsc2lmICgkcmVzID1+IC9eLiNccyooPzplcnJvcnx3YXJuaW5nKVxzKyguKilcYi8pIHsKKwl9IGVsc2lmICgkcmVzID1+IC9eLlxzKlwjXHMqKD86ZXJyb3J8d2FybmluZylccysoLiopXGIvKSB7CiAJCW15ICRjbGVhbiA9ICdYJyB4IGxlbmd0aCgkMSk7Ci0JCSRyZXMgPX4gc0AoI1xzKig/OmVycm9yfHdhcm5pbmcpXHMrKS4qQCQxJGNsZWFuQDsKKwkJJHJlcyA9fiBzQChcI1xzKig/OmVycm9yfHdhcm5pbmcpXHMrKS4qQCQxJGNsZWFuQDsKIAl9CiAKIAlyZXR1cm4gJHJlczsKQEAgLTcxNSw3ICs3MTksNyBAQAogCQkJcHJpbnQgIkRFQ0xBUkUoJDEpXG4iIGlmICgkZGJnX3ZhbHVlcyA+IDEpOwogCQkJJHR5cGUgPSAnVCc7CiAKLQkJfSBlbHNpZiAoJGN1ciA9fiAvXigjXHMqZGVmaW5lXHMqJElkZW50KShcKD8pL28pIHsKKwkJfSBlbHNpZiAoJGN1ciA9fiAvXihcI1xzKmRlZmluZVxzKiRJZGVudCkoXCg/KS9vKSB7CiAJCQlwcmludCAiREVGSU5FKCQxLCQyKVxuIiBpZiAoJGRiZ192YWx1ZXMgPiAxKTsKIAkJCSRhdl9wcmVwcm9jZXNzb3IgPSAxOwogCQkJcHVzaChAYXZfcGFyZW5fdHlwZSwgJHR5cGUpOwpAQCAtNzI0LDEyICs3MjgsMTIgQEAKIAkJCX0KIAkJCSR0eXBlID0gJ0UnOwogCi0JCX0gZWxzaWYgKCRjdXIgPX4gL14oI1xzKnVuZGVmXHMqJElkZW50KS9vKSB7CisJCX0gZWxzaWYgKCRjdXIgPX4gL14oXCNccyooPzp1bmRlZlxzKiRJZGVudHxpbmNsdWRlXGIpKS9vKSB7CiAJCQlwcmludCAiVU5ERUYoJDEpXG4iIGlmICgkZGJnX3ZhbHVlcyA+IDEpOwogCQkJJGF2X3ByZXByb2Nlc3NvciA9IDE7CiAJCQlwdXNoKEBhdl9wYXJlbl90eXBlLCAkdHlwZSk7CiAKLQkJfSBlbHNpZiAoJGN1ciA9fiAvXigjXHMqKD86aWZkZWZ8aWZuZGVmfGlmKSkvbykgeworCQl9IGVsc2lmICgkY3VyID1+IC9eKFwjXHMqKD86aWZkZWZ8aWZuZGVmfGlmKSkvbykgewogCQkJcHJpbnQgIlBSRV9TVEFSVCgkMSlcbiIgaWYgKCRkYmdfdmFsdWVzID4gMSk7CiAJCQkkYXZfcHJlcHJvY2Vzc29yID0gMTsKIApAQCAtNzM3LDcgKzc0MSw3IEBACiAJCQlwdXNoKEBhdl9wYXJlbl90eXBlLCAkdHlwZSk7CiAJCQkkdHlwZSA9ICdFJzsKIAotCQl9IGVsc2lmICgkY3VyID1+IC9eKCNccyooPzplbHNlfGVsaWYpKS9vKSB7CisJCX0gZWxzaWYgKCRjdXIgPX4gL14oXCNccyooPzplbHNlfGVsaWYpKS9vKSB7CiAJCQlwcmludCAiUFJFX1JFU1RBUlQoJDEpXG4iIGlmICgkZGJnX3ZhbHVlcyA+IDEpOwogCQkJJGF2X3ByZXByb2Nlc3NvciA9IDE7CiAKQEAgLTc0NSw3ICs3NDksNyBAQAogCiAJCQkkdHlwZSA9ICdFJzsKIAotCQl9IGVsc2lmICgkY3VyID1+IC9eKCNccyooPzplbmRpZikpL28pIHsKKwkJfSBlbHNpZiAoJGN1ciA9fiAvXihcI1xzKig/OmVuZGlmKSkvbykgewogCQkJcHJpbnQgIlBSRV9FTkQoJDEpXG4iIGlmICgkZGJnX3ZhbHVlcyA+IDEpOwogCiAJCQkkYXZfcHJlcHJvY2Vzc29yID0gMTsKQEAgLTgzNywxNCArODQxLDI2IEBACiBzdWIgcG9zc2libGUgewogCW15ICgkcG9zc2libGUsICRsaW5lKSA9IEBfOwogCi0JI3ByaW50ICJDSEVDSzwkcG9zc2libGU+XG4iOworCXByaW50ICJDSEVDSzwkcG9zc2libGU+ICgkbGluZSlcbiIgaWYgKCRkYmdfcG9zc2libGUgPiAxKTsKIAlpZiAoJHBvc3NpYmxlICF+IC9eKD86JFN0b3JhZ2V8JFR5cGV8REVGSU5FX1xTKykkLyAmJgogCSAgICAkcG9zc2libGUgbmUgJ2dvdG8nICYmICRwb3NzaWJsZSBuZSAncmV0dXJuJyAmJgotCSAgICAkcG9zc2libGUgbmUgJ3N0cnVjdCcgJiYgJHBvc3NpYmxlIG5lICdlbnVtJyAmJgogCSAgICAkcG9zc2libGUgbmUgJ2Nhc2UnICYmICRwb3NzaWJsZSBuZSAnZWxzZScgJiYKLQkgICAgJHBvc3NpYmxlIG5lICd0eXBlZGVmJykgewotCQl3YXJuICJQT1NTSUJMRTogJHBvc3NpYmxlICgkbGluZSlcbiIgaWYgKCRkYmdfcG9zc2libGUpOwotCQlwdXNoKEB0eXBlTGlzdCwgJHBvc3NpYmxlKTsKKwkgICAgJHBvc3NpYmxlIG5lICdhc20nICYmCisJICAgICRwb3NzaWJsZSAhfiAvXih0eXBlZGVmfHN0cnVjdHxlbnVtKVxiLykgeworCQkjIENoZWNrIGZvciBtb2RpZmllcnMuCisJCSRwb3NzaWJsZSA9fiBzL1xzKiRTdG9yYWdlXHMqLy9nOworCQkkcG9zc2libGUgPX4gcy9ccyokU3BhcnNlXHMqLy9nOworCQlpZiAoJHBvc3NpYmxlID1+IC9eXHMqJC8pIHsKKworCQl9IGVsc2lmICgkcG9zc2libGUgPX4gL1xzLykgeworCQkJJHBvc3NpYmxlID1+IHMvXHMqJFR5cGVccyovL2c7CisJCQl3YXJuICJNT0RJRklFUjogJHBvc3NpYmxlICgkbGluZSlcbiIgaWYgKCRkYmdfcG9zc2libGUpOworCQkJcHVzaChAbW9kaWZpZXJMaXN0LCAkcG9zc2libGUpOworCisJCX0gZWxzZSB7CisJCQl3YXJuICJQT1NTSUJMRTogJHBvc3NpYmxlICgkbGluZSlcbiIgaWYgKCRkYmdfcG9zc2libGUpOworCQkJcHVzaChAdHlwZUxpc3QsICRwb3NzaWJsZSk7CisJCX0KIAkJYnVpbGRfdHlwZXMoKTsKIAl9CiB9CkBAIC05NDksNiArOTY1LDcgQEAKIAkJCX0gZWxzZSB7CiAJCQkJJHJlYWxjbnQ9MSsxOwogCQkJfQorCQkJJGluX2NvbW1lbnQgPSAwOwogCiAJCQkjIEd1ZXN0aW1hdGUgaWYgdGhpcyBpcyBhIGNvbnRpbnVpbmcgY29tbWVudC4gIFJ1bgogCQkJIyB0aGUgY29udGV4dCBsb29raW5nIGZvciBhIGNvbW1lbnQgImVkZ2UiLiAgSWYgdGhpcwpAQCAtMTExNyw3ICsxMTM0LDkgQEAKIAkJCUVSUk9SKCJ0cmFpbGluZyB3aGl0ZXNwYWNlXG4iIC4gJGhlcmV2ZXQpOwogCQl9CiAjODAgY29sdW1uIGxpbWl0Ci0JCWlmICgkbGluZSA9fiAvXlwrLyAmJiAhKCRwcmV2cmF3bGluZT1+L1wvXCpcKi8pICYmICRsZW5ndGggPiA4MCkgeworCQlpZiAoJGxpbmUgPX4gL15cKy8gJiYgJHByZXZyYXdsaW5lICF+IC9cL1wqXCovICYmCisJCSAgICAkcmF3bGluZSAhfiAvXi5ccypcKlxzKlxAJElkZW50XHMvICYmICRsZW5ndGggPiA4MCkKKwkJewogCQkJV0FSTigibGluZSBvdmVyIDgwIGNoYXJhY3RlcnNcbiIgLiAkaGVyZWN1cnIpOwogCQl9CiAKQEAgLTExNTksMTggKzExNzgsMjAgQEAKIAkJCSMgSWdub3JlIGZ1bmN0aW9ucyBiZWluZyBjYWxsZWQKIAkJCX0gZWxzaWYgKCRzID1+IC9eLlxzKiRJZGVudFxzKlwoL3MpIHsKIAorCQkJIyBkZWNsYXJhdGlvbnMgYWx3YXlzIHN0YXJ0IHdpdGggdHlwZXMKKwkJCX0gZWxzaWYgKCRwcmV2X3ZhbHVlcyBlcSAnRScgJiYgJHMgPX4gL14uXHMqKD86JFN0b3JhZ2VccyspPyg/OiRJbmxpbmVccyspPyg/OmNvbnN0XHMrKT8oKD86XHMqJElkZW50KSspXGIoPzpccyskU3BhcnNlKT9ccypcKipccyooPzokSWRlbnR8XChcKlteXCldKlwpKVxzKig/Ojt8PXwsfFwoKS9zKSB7CisJCQkJbXkgJHR5cGUgPSAkMTsKKwkJCQkkdHlwZSA9fiBzL1xzKy8gL2c7CisJCQkJcG9zc2libGUoJHR5cGUsICJBOiIgLiAkcyk7CisKIAkJCSMgZGVmaW5pdGlvbnMgaW4gZ2xvYmFsIHNjb3BlIGNhbiBvbmx5IHN0YXJ0IHdpdGggdHlwZXMKIAkJCX0gZWxzaWYgKCRzID1+IC9eLig/OiRTdG9yYWdlXHMrKT8oPzokSW5saW5lXHMrKT8oPzpjb25zdFxzKyk/KCRJZGVudClcYi9zKSB7Ci0JCQkJcG9zc2libGUoJDEsICRzKTsKLQotCQkJIyBkZWNsYXJhdGlvbnMgYWx3YXlzIHN0YXJ0IHdpdGggdHlwZXMKLQkJCX0gZWxzaWYgKCRwcmV2X3ZhbHVlcyBlcSAnRScgJiYgJHMgPX4gL14uXHMqKD86JFN0b3JhZ2VccyspPyg/OmNvbnN0XHMrKT8oJElkZW50KVxiKDo/XHMrJFNwYXJzZSk/XHMqXCoqXHMqJElkZW50XHMqKD86O3w9fCwpL3MpIHsKLQkJCQlwb3NzaWJsZSgkMSwgJHMpOworCQkJCXBvc3NpYmxlKCQxLCAiQjoiIC4gJHMpOwogCQkJfQogCiAJCQkjIGFueSAoZm9vIC4uLiAqKSBpcyBhIHBvaW50ZXIgY2FzdCwgYW5kIGZvbyBpcyBhIHR5cGUKIAkJCXdoaWxlICgkcyA9fiAvXCgoJElkZW50KSg/OlxzKyRTcGFyc2UpKlxzKlwqK1xzKlwpL3NnKSB7Ci0JCQkJcG9zc2libGUoJDEsICRzKTsKKwkJCQlwb3NzaWJsZSgkMSwgIkM6IiAuICRzKTsKIAkJCX0KIAogCQkJIyBDaGVjayBmb3IgYW55IHNvcnQgb2YgZnVuY3Rpb24gZGVjbGFyYXRpb24uCkBAIC0xMTg0LDkgKzEyMDUsOSBAQAogCQkJCSRjdHggPX4gcy9cKVteXCldKiQvLzsKIAogCQkJCWZvciBteSAkYXJnIChzcGxpdCgvXHMqLFxzKi8sICRjdHgpKSB7Ci0JCQkJCWlmICgkYXJnID1+IC9eKD86Y29uc3RccyspPygkSWRlbnQpKD86XHMrJFNwYXJzZSkqXHMqXCoqXHMqKDo/XGIkSWRlbnQpPyQvIHx8ICRhcmcgPX4gL14oJElkZW50KSQvKSB7CisJCQkJCWlmICgkYXJnID1+IC9eKD86Y29uc3RccyspPygkSWRlbnQpKD86XHMrJFNwYXJzZSkqXHMqXCoqXHMqKDo/XGIkSWRlbnQpPyQvcyB8fCAkYXJnID1+IC9eKCRJZGVudCkkL3MpIHsKIAotCQkJCQkJcG9zc2libGUoJDEsICRzKTsKKwkJCQkJCXBvc3NpYmxlKCQxLCAiRDoiIC4gJHMpOwogCQkJCQl9CiAJCQkJfQogCQkJfQpAQCAtMTIyMSw3ICsxMjQyLDcgQEAKIAogIyBpZi93aGlsZS9ldGMgYnJhY2UgZG8gbm90IGdvIG9uIG5leHQgbGluZSwgdW5sZXNzIGRlZmluaW5nIGEgZG8gd2hpbGUgbG9vcCwKICMgb3IgaWYgdGhhdCBicmFjZSBvbiB0aGUgbmV4dCBsaW5lIGlzIGZvciBzb21ldGhpbmcgZWxzZQotCQlpZiAoJGxpbmUgPX4gLyguKilcYigoPzppZnx3aGlsZXxmb3J8c3dpdGNoKVxzKlwofGRvXGJ8ZWxzZVxiKS8gJiYgJGxpbmUgIX4gL14uIy8pIHsKKwkJaWYgKCRsaW5lID1+IC8oLiopXGIoKD86aWZ8d2hpbGV8Zm9yfHN3aXRjaClccypcKHxkb1xifGVsc2VcYikvICYmICRsaW5lICF+IC9eLlxzKlwjLykgewogCQkJbXkgJHByZV9jdHggPSAiJDEkMiI7CiAKIAkJCW15ICgkbGV2ZWwsIEBjdHgpID0gY3R4X3N0YXRlbWVudF9sZXZlbCgkbGluZW5yLCAkcmVhbGNudCwgMCk7CkBAIC0xMjM5LDcgKzEyNjAsNyBAQAogCiAJCQlpZiAoJGN0eCAhfiAve1xzKi8gJiYgZGVmaW5lZCgkbGluZXNbJGN0eF9sbiAtMV0pICYmICRsaW5lc1skY3R4X2xuIC0gMV0gPX4gL15cK1xzKnsvKSB7CiAJCQkJRVJST1IoInRoYXQgb3BlbiBicmFjZSB7IHNob3VsZCBiZSBvbiB0aGUgcHJldmlvdXMgbGluZVxuIiAuCi0JCQkJCSIkaGVyZVxuJGN0eFxuJGxpbmVzWyRjdHhfbG4gLSAxXSIpOworCQkJCQkiJGhlcmVcbiRjdHhcbiRsaW5lc1skY3R4X2xuIC0gMV1cbiIpOwogCQkJfQogCQkJaWYgKCRsZXZlbCA9PSAwICYmICRwcmVfY3R4ICF+IC99XHMqd2hpbGVccypcKCQvICYmCiAJCQkgICAgJGN0eCA9fiAvXClccypcO1xzKiQvICYmCkBAIC0xMjQ4LDcgKzEyNjksNyBAQAogCQkJCW15ICgkbmxlbmd0aCwgJG5pbmRlbnQpID0gbGluZV9zdGF0cygkbGluZXNbJGN0eF9sbiAtIDFdKTsKIAkJCQlpZiAoJG5pbmRlbnQgPiAkaW5kZW50KSB7CiAJCQkJCVdBUk4oInRyYWlsaW5nIHNlbWljb2xvbiBpbmRpY2F0ZXMgbm8gc3RhdGVtZW50cywgaW5kZW50IGltcGxpZXMgb3RoZXJ3aXNlXG4iIC4KLQkJCQkJCSIkaGVyZVxuJGN0eFxuJGxpbmVzWyRjdHhfbG4gLSAxXSIpOworCQkJCQkJIiRoZXJlXG4kY3R4XG4kbGluZXNbJGN0eF9sbiAtIDFdXG4iKTsKIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTEyODQsNyArMTMwNSw3IEBACiAjCiAKICMgY2hlY2sgZm9yIG1hbGZvcm1lZCBwYXRocyBpbiAjaW5jbHVkZSBzdGF0ZW1lbnRzICh1c2VzIFJBVyBsaW5lKQotCQlpZiAoJHJhd2xpbmUgPX4gbXteLiNccyppbmNsdWRlXHMrWzwiXSguKilbIj5dfSkgeworCQlpZiAoJHJhd2xpbmUgPX4gbXteLlxzKlwjXHMqaW5jbHVkZVxzK1s8Il0oLiopWyI+XX0pIHsKIAkJCW15ICRwYXRoID0gJDE7CiAJCQlpZiAoJHBhdGggPX4gbXsvL30pIHsKIAkJCQlFUlJPUigibWFsZm9ybWVkICNpbmNsdWRlIGZpbGVuYW1lXG4iIC4KQEAgLTEzMTYsNyArMTMzNyw3IEBACiAJCX0KIAogIyBjaGVjayBmb3IgZXh0ZXJuYWwgaW5pdGlhbGlzZXJzLgotCQlpZiAoJGxpbmUgPX4gL14uJFR5cGVccyokSWRlbnRccyo9XHMqKDB8TlVMTHxmYWxzZSlccyo7LykgeworCQlpZiAoJGxpbmUgPX4gL14uJFR5cGVccyokSWRlbnRccyooPzpccyskTW9kaWZpZXIpKlxzKj1ccyooMHxOVUxMfGZhbHNlKVxzKjsvKSB7CiAJCQlFUlJPUigiZG8gbm90IGluaXRpYWxpc2UgZXh0ZXJuYWxzIHRvIDAgb3IgTlVMTFxuIiAuCiAJCQkJJGhlcmVjdXJyKTsKIAkJfQpAQCAtMTMzMCw2ICsxMzUxLDcgQEAKICMgbWFrZSBzZW5zZS4KIAkJaWYgKCRsaW5lID1+IC9cYnR5cGVkZWZccy8gJiYKIAkJICAgICRsaW5lICF+IC9cYnR5cGVkZWZccyskVHlwZVxzK1woXHMqXCo/JElkZW50XHMqXClccypcKC8gJiYKKwkJICAgICRsaW5lICF+IC9cYnR5cGVkZWZccyskVHlwZVxzKyRJZGVudFxzKlwoLyAmJgogCQkgICAgJGxpbmUgIX4gL1xiX19iaXR3aXNlKD86X198KVxiLykgewogCQkJV0FSTigiZG8gbm90IGFkZCBuZXcgdHlwZWRlZnNcbiIgLiAkaGVyZWN1cnIpOwogCQl9CkBAIC0xMzg4LDggKzE0MTAsOCBAQAogCiAjIGZ1bmN0aW9uIGJyYWNlIGNhbid0IGJlIG9uIHNhbWUgbGluZSwgZXhjZXB0IGZvciAjZGVmaW5lcyBvZiBkbyB3aGlsZSwKICMgb3IgaWYgY2xvc2VkIG9uIHNhbWUgbGluZQotCQlpZiAoKCRsaW5lPX4vJFR5cGVccypbQS1aYS16XGRfXStcKC4qXCkuKlxzey8pIGFuZAotCQkgICAgISgkbGluZT1+L1wjZGVmaW5lLipkb1xzey8pIGFuZCAhKCRsaW5lPX4vfS8pKSB7CisJCWlmICgoJGxpbmU9fi8kVHlwZVxzKiRJZGVudFwoLipcKS4qXHN7LykgYW5kCisJCSAgICAhKCRsaW5lPX4vXCNccypkZWZpbmUuKmRvXHN7LykgYW5kICEoJGxpbmU9fi99LykpIHsKIAkJCUVSUk9SKCJvcGVuIGJyYWNlICd7JyBmb2xsb3dpbmcgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGdvIG9uIHRoZSBuZXh0IGxpbmVcbiIgLiAkaGVyZWN1cnIpOwogCQl9CiAKQEAgLTE0MTYsMTAgKzE0MzgsMTAgQEAKIAkJCSMgY3BwICNkZWZpbmUgc3RhdGVtZW50cyBoYXZlIG5vbi1vcHRpb25hbCBzcGFjZXMsIGllCiAJCQkjIGlmIHRoZXJlIGlzIGEgc3BhY2UgYmV0d2VlbiB0aGUgbmFtZSBhbmQgdGhlIG9wZW4KIAkJCSMgcGFyZW50aGVzaXMgaXQgaXMgc2ltcGx5IG5vdCBhIHBhcmFtZXRlciBncm91cC4KLQkJCX0gZWxzaWYgKCRjdHhfYmVmb3JlID1+IC9eLlwjXHMqZGVmaW5lXHMqJC8pIHsKKwkJCX0gZWxzaWYgKCRjdHhfYmVmb3JlID1+IC9eLlxzKlwjXHMqZGVmaW5lXHMqJC8pIHsKIAogCQkJIyBjcHAgI2VsaWYgc3RhdGVtZW50IGNvbmRpdGlvbiBtYXkgc3RhcnQgd2l0aCBhICgKLQkJCX0gZWxzaWYgKCRjdHggPX4gL14uXCNccyplbGlmXHMqJC8pIHsKKwkJCX0gZWxzaWYgKCRjdHggPX4gL14uXHMqXCNccyplbGlmXHMqJC8pIHsKIAogCQkJIyBJZiB0aGlzIHdob2xlIHRoaW5ncyBlbmRzIHdpdGggYSB0eXBlIGl0cyBtb3N0CiAJCQkjIGxpa2VseSBhIHR5cGVkZWYgZm9yIGEgZnVuY3Rpb24uCkBAIC0xNjI1LDEzICsxNjQ3LDE0IEBACiAJCQlFUlJPUigic3BhY2UgcHJvaGliaXRlZCBiZWZvcmUgdGhhdCBjbG9zZSBzcXVhcmUgYnJhY2tldCAnXSdcbiIgLiAkaGVyZWN1cnIpOwogCQl9CiAKLSMgY2hlY2sgc3BhY2luZyBvbiBwYXJldGhlc2VzCisjIGNoZWNrIHNwYWNpbmcgb24gcGFyZW50aGVzZXMKIAkJaWYgKCRsaW5lID1+IC9cKFxzLyAmJiAkbGluZSAhfiAvXChccyooPzpcXCk/JC8gJiYKIAkJICAgICRsaW5lICF+IC9mb3JccypcKFxzKzsvKSB7CiAJCQlFUlJPUigic3BhY2UgcHJvaGliaXRlZCBhZnRlciB0aGF0IG9wZW4gcGFyZW50aGVzaXMgJygnXG4iIC4gJGhlcmVjdXJyKTsKIAkJfQogCQlpZiAoJGxpbmUgPX4gLyhccyspXCkvICYmICRsaW5lICF+IC9eLlxzKlwpLyAmJgotCQkgICAgJGxpbmUgIX4gL2ZvclxzKlwoLio7XHMrXCkvKSB7CisJCSAgICAkbGluZSAhfiAvZm9yXHMqXCguKjtccytcKS8gJiYKKwkJICAgICRsaW5lICF+IC86XHMrXCkvKSB7CiAJCQlFUlJPUigic3BhY2UgcHJvaGliaXRlZCBiZWZvcmUgdGhhdCBjbG9zZSBwYXJlbnRoZXNpcyAnKSdcbiIgLiAkaGVyZWN1cnIpOwogCQl9CiAKQEAgLTE2NDEsNiArMTY2NCwyMyBAQAogCQkJV0FSTigibGFiZWxzIHNob3VsZCBub3QgYmUgaW5kZW50ZWRcbiIgLiAkaGVyZWN1cnIpOwogCQl9CiAKKyMgUmV0dXJuIGlzIG5vdCBhIGZ1bmN0aW9uLgorCQlpZiAoZGVmaW5lZCgkc3RhdCkgJiYgJHN0YXQgPX4gL14uXHMqcmV0dXJuKFxzKikoXCguKik7L3MpIHsKKwkJCW15ICRzcGFjaW5nID0gJDE7CisJCQlteSAkdmFsdWUgPSAkMjsKKworCQkJIyBGbGF0dGVuIGFueSBwYXJlbnRoZXNlcyBhbmQgYnJhY2VzCisJCQl3aGlsZSAoJHZhbHVlID1+IHMvXChbXlwoXCldKlwpLzEvKSB7CisJCQl9CisKKwkJCWlmICgkdmFsdWUgPX4gL14oPzokSWRlbnR8LT8kQ29uc3RhbnQpJC8pIHsKKwkJCQlFUlJPUigicmV0dXJuIGlzIG5vdCBhIGZ1bmN0aW9uLCBwYXJlbnRoZXNlcyBhcmUgbm90IHJlcXVpcmVkXG4iIC4gJGhlcmVjdXJyKTsKKworCQkJfSBlbHNpZiAoJHNwYWNpbmcgIX4gL1xzKy8pIHsKKwkJCQlFUlJPUigic3BhY2UgcmVxdWlyZWQgYmVmb3JlIHRoZSBvcGVuIHBhcmVudGhlc2lzICcoJ1xuIiAuICRoZXJlY3Vycik7CisJCQl9CisJCX0KKwogIyBOZWVkIGEgc3BhY2UgYmVmb3JlIG9wZW4gcGFyZW50aGVzaXMgYWZ0ZXIgaWYsIHdoaWxlIGV0YwogCQlpZiAoJGxpbmU9fi9cYihpZnx3aGlsZXxmb3J8c3dpdGNoKVwoLykgewogCQkJRVJST1IoInNwYWNlIHJlcXVpcmVkIGJlZm9yZSB0aGUgb3BlbiBwYXJlbnRoZXNpcyAnKCdcbiIgLiAkaGVyZWN1cnIpOwpAQCAtMTY2MCw3ICsxNzAwLDcgQEAKIAkJCSRzID1+IHMvXG4uKi8vZzsKIAkJCSRzID1+IHMvJDsvL2c7IAkjIFJlbW92ZSBhbnkgY29tbWVudHMKIAkJCWlmIChsZW5ndGgoJGMpICYmICRzICF+IC9eXHMqKHt8O3wpXHMqXFwqXHMqJC8gJiYKLQkJCSAgICAkYyAhfiAvXi5cI1xzKmlmLykKKwkJCSAgICAkYyAhfiAvXi5ccypcI1xzKmlmLykKIAkJCXsKIAkJCQlFUlJPUigidHJhaWxpbmcgc3RhdGVtZW50cyBzaG91bGQgYmUgb24gbmV4dCBsaW5lXG4iIC4gJGhlcmVjdXJyKTsKIAkJCX0KQEAgLTE3MTksMTQgKzE3NTksMTYgQEAKICMJCX0KIAogI25vIHNwYWNlcyBhbGxvd2VkIGFmdGVyIFwgaW4gZGVmaW5lCi0JCWlmICgkbGluZT1+L1wjZGVmaW5lLipcXFxzJC8pIHsKKwkJaWYgKCRsaW5lPX4vXCNccypkZWZpbmUuKlxcXHMkLykgewogCQkJV0FSTigiV2hpdGVwc3BhY2UgYWZ0ZXIgXFwgbWFrZXMgbmV4dCBsaW5lcyB1c2VsZXNzXG4iIC4gJGhlcmVjdXJyKTsKIAkJfQogCiAjd2FybiBpZiA8YXNtL2Zvby5oPiBpcyAjaW5jbHVkZWQgYW5kIDxsaW51eC9mb28uaD4gaXMgYXZhaWxhYmxlICh1c2VzIFJBVyBsaW5lKQotCQlpZiAoJHRyZWUgJiYgJHJhd2xpbmUgPX4gbXteLlwjXHMqaW5jbHVkZVxzKlw8YXNtXC8oLiopXC5oXD59KSB7Ci0JCQlteSAkY2hlY2tmaWxlID0gIiRyb290L2luY2x1ZGUvbGludXgvJDEuaCI7Ci0JCQlpZiAoLWYgJGNoZWNrZmlsZSAmJiAkMSBuZSAnaXJxJykgeworCQlpZiAoJHRyZWUgJiYgJHJhd2xpbmUgPX4gbXteLlxzKlwjXHMqaW5jbHVkZVxzKlw8YXNtXC8oLiopXC5oXD59KSB7CisJCQlteSAkY2hlY2tmaWxlID0gImluY2x1ZGUvbGludXgvJDEuaCI7CisJCQlpZiAoLWYgIiRyb290LyRjaGVja2ZpbGUiICYmICRyZWFsZmlsZSBuZSAkY2hlY2tmaWxlICYmCisJCQkgICAgJDEgbmUgJ2lycScpCisJCQl7CiAJCQkJV0FSTigiVXNlICNpbmNsdWRlIDxsaW51eC8kMS5oPiBpbnN0ZWFkIG9mIDxhc20vJDEuaD5cbiIgLgogCQkJCQkkaGVyZWN1cnIpOwogCQkJfQpAQCAtMTczNSw0NSArMTc3Nyw4NyBAQAogIyBtdWx0aS1zdGF0ZW1lbnQgbWFjcm9zIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBhIGRvIHdoaWxlIGxvb3AsIGdyYWIgdGhlCiAjIGZpcnN0IHN0YXRlbWVudCBhbmQgZW5zdXJlIGl0cyB0aGUgd2hvbGUgbWFjcm8gaWYgaXRzIG5vdCBlbmNsb3NlZAogIyBpbiBhIGtub3duIGdvb2QgY29udGFpbmVyCi0JCWlmICgkcHJldmxpbmUgPX4gL1wjZGVmaW5lLipcXC8gJiYKLQkJICAgJHByZXZsaW5lICF+Lyg/OmRvXHMre3xcKFx7fFx7KS8gJiYKLQkJICAgJGxpbmUgIX4gLyg/OmRvXHMre3xcKFx7fFx7KS8gJiYKLQkJICAgJGxpbmUgIX4gL14uXHMqJERlY2xhcmVccy8pIHsKLQkJCSMgR3JhYiB0aGUgZmlyc3Qgc3RhdGVtZW50LCBpZiB0aGF0IGlzIHRoZSBlbnRpcmUgbWFjcm8KLQkJCSMgaXRzIG9rLiAgVGhpcyBtYXkgc3RhcnQgZWl0aGVyIG9uIHRoZSAjZGVmaW5lIGxpbmUKLQkJCSMgb3IgdGhlIG9uZSBiZWxvdy4KKwkJaWYgKCRsaW5lID1+IC9eLlxzKlwjXHMqZGVmaW5lXHMqJElkZW50KFwoKT8vKSB7CiAJCQlteSAkbG4gPSAkbGluZW5yOwogCQkJbXkgJGNudCA9ICRyZWFsY250OwotCQkJbXkgJG9mZiA9IDA7CisJCQlteSAoJG9mZiwgJGRzdGF0LCAkZGNvbmQsICRyZXN0KTsKKwkJCW15ICRjdHggPSAnJzsKIAotCQkJIyBJZiB0aGUgbWFjcm8gc3RhcnRzIG9uIHRoZSBkZWZpbmUgbGluZSBzdGFydAotCQkJIyBncmFiYmluZyB0aGUgc3RhdGVtZW50IGFmdGVyIHRoZSBpZGVudGlmaWVyCi0JCQkkcHJldmxpbmUgPX4gbXteKC4jXHMqZGVmaW5lXHMqJElkZW50KD86XChbXlwpXSpcKSk/XHMqKSguKilcXFxzKiR9OwotCQkJIyNwcmludCAiMTwkMT4gMjwkMj5cbiI7Ci0JCQlpZiAoZGVmaW5lZCAkMiAmJiAkMiBuZSAnJykgewotCQkJCSRvZmYgPSBsZW5ndGgoJDEpOwotCQkJCSRsbi0tOwotCQkJCSRjbnQrKzsKLQkJCQl3aGlsZSAoJGxpbmVzWyRsbiAtIDFdID1+IC9eLS8pIHsKLQkJCQkJJGxuLS07Ci0JCQkJCSRjbnQrKzsKLQkJCQl9CisJCQlteSAkYXJncyA9IGRlZmluZWQoJDEpOworCisJCQkjIEZpbmQgdGhlIGVuZCBvZiB0aGUgbWFjcm8gYW5kIGxpbWl0IG91ciBzdGF0ZW1lbnQKKwkJCSMgc2VhcmNoIHRvIHRoYXQuCisJCQl3aGlsZSAoJGNudCA+IDAgJiYgZGVmaW5lZCAkbGluZXNbJGxuIC0gMV0gJiYKKwkJCQkkbGluZXNbJGxuIC0gMV0gPX4gL14oPzotfC4uKlxcJCkvKQorCQkJeworCQkJCSRjdHggLj0gJHJhd2xpbmVzWyRsbiAtIDFdIC4gIlxuIjsKKwkJCQkkbG4rKzsKKwkJCQkkY250LS07CiAJCQl9Ci0JCQlteSBAY3R4ID0gY3R4X3N0YXRlbWVudCgkbG4sICRjbnQsICRvZmYpOwotCQkJbXkgJGN0eF9sbiA9ICRsbiArICQjY3R4ICsgMTsKLQkJCW15ICRjdHggPSBqb2luKCJcbiIsIEBjdHgpOworCQkJJGN0eCAuPSAkcmF3bGluZXNbJGxuIC0gMV07CiAKLQkJCSMgUHVsbCBpbiBhbnkgZW1wdHkgZXh0ZW5zaW9uIGxpbmVzLgotCQkJd2hpbGUgKCRjdHggPX4gL1xcJC8gJiYKLQkJCSAgICAgICAkbGluZXNbJGN0eF9sbiAtIDFdID1+IC9eLlxzKig/OlxcKT8kLykgewotCQkJCSRjdHggLj0gJGxpbmVzWyRjdHhfbG4gLSAxXTsKLQkJCQkkY3R4X2xuKys7CisJCQkoJGRzdGF0LCAkZGNvbmQsICRsbiwgJGNudCwgJG9mZikgPQorCQkJCWN0eF9zdGF0ZW1lbnRfYmxvY2soJGxpbmVuciwgJGxuIC0gJGxpbmVuciArIDEsIDApOworCQkJI3ByaW50ICJkc3RhdDwkZHN0YXQ+IGRjb25kPCRkY29uZD4gY250PCRjbnQ+IG9mZjwkb2ZmPlxuIjsKKwkJCSNwcmludCAiTElORTwkbGluZXNbJGxuXT4gbGVuPCIgLiBsZW5ndGgoJGxpbmVzWyRsbl0pIC4gIlxuIjsKKworCQkJIyBFeHRyYWN0IHRoZSByZW1haW5kZXIgb2YgdGhlIGRlZmluZSAoaWYgYW55KSBhbmQKKwkJCSMgcmlwIG9mZiBzdXJyb3VuZGluZyBzcGFjZXMsIGFuZCB0cmFpbGluZyBcJ3MuCisJCQkkcmVzdCA9ICcnOworCQkJaWYgKGRlZmluZWQgJGxpbmVzWyRsbiAtIDFdICYmCisJCQkgICAgJG9mZiA+IGxlbmd0aCgkbGluZXNbJGxuIC0gMV0pKQorCQkJeworCQkJCSRsbisrOworCQkJCSRjbnQtLTsKKwkJCQkkb2ZmID0gMDsKKwkJCX0KKwkJCXdoaWxlICgkY250ID4gMCkgeworCQkJCSRyZXN0IC49IHN1YnN0cigkbGluZXNbJGxuIC0gMV0sICRvZmYpIC4gIlxuIjsKKwkJCQkkbG4rKzsKKwkJCQkkY250LS07CisJCQkJJG9mZiA9IDA7CisJCQl9CisJCQkkcmVzdCA9fiBzL1xcXG4uLy9nOworCQkJJHJlc3QgPX4gcy9eXHMqLy9zOworCQkJJHJlc3QgPX4gcy9ccyokLy9zOworCisJCQkjIENsZWFuIHVwIHRoZSBvcmlnaW5hbCBzdGF0ZW1lbnQuCisJCQlpZiAoJGFyZ3MpIHsKKwkJCQlzdWJzdHIoJGRzdGF0LCAwLCBsZW5ndGgoJGRjb25kKSwgJycpOworCQkJfSBlbHNlIHsKKwkJCQkkZHN0YXQgPX4gcy9eLlxzKlwjXHMqZGVmaW5lXHMrJElkZW50XHMqLy87CisJCQl9CisJCQkkZHN0YXQgPX4gcy9cXFxuLi8vZzsKKwkJCSRkc3RhdCA9fiBzL15ccyovL3M7CisJCQkkZHN0YXQgPX4gcy9ccyokLy9zOworCisJCQkjIEZsYXR0ZW4gYW55IHBhcmVudGhlc2VzIGFuZCBicmFjZXMKKwkJCXdoaWxlICgkZHN0YXQgPX4gcy9cKFteXChcKV0qXCkvMS8pIHsKKwkJCX0KKwkJCXdoaWxlICgkZHN0YXQgPX4gcy9ce1teXHtcfV0qXH0vMS8pIHsKIAkJCX0KIAotCQkJaWYgKCRjdHggPX4gL1xcJC8pIHsKLQkJCQlpZiAoJGN0eCA9fiAvOy8pIHsKKwkJCW15ICRleGNlcHRpb25zID0gcXJ7CisJCQkJJERlY2xhcmV8CisJCQkJbW9kdWxlX3BhcmFtX25hbWVkfAorCQkJCU1PRFVMRV9QQVJBTV9ERVNDfAorCQkJCURFQ0xBUkVfUEVSX0NQVXwKKwkJCQlERUZJTkVfUEVSX0NQVXwKKwkJCQlfX3R5cGVvZl9fXCgKKwkJCX14OworCQkJaWYgKCRyZXN0IG5lICcnKSB7CisJCQkJaWYgKCRyZXN0ICF+IC93aGlsZVxzKlwoLyAmJgorCQkJCSAgICAkZHN0YXQgIX4gLyRleGNlcHRpb25zLykKKwkJCQl7CiAJCQkJCUVSUk9SKCJNYWNyb3Mgd2l0aCBtdWx0aXBsZSBzdGF0ZW1lbnRzIHNob3VsZCBiZSBlbmNsb3NlZCBpbiBhIGRvIC0gd2hpbGUgbG9vcFxuIiAuICIkaGVyZVxuJGN0eFxuIik7Ci0JCQkJfSBlbHNlIHsKKwkJCQl9CisKKwkJCX0gZWxzaWYgKCRjdHggIX4gLzsvKSB7CisJCQkJaWYgKCRkc3RhdCBuZSAnJyAmJgorCQkJCSAgICAkZHN0YXQgIX4gL14oPzokSWRlbnR8LT8kQ29uc3RhbnQpJC8gJiYKKwkJCQkgICAgJGRzdGF0ICF+IC8kZXhjZXB0aW9ucy8gJiYKKwkJCQkgICAgJGRzdGF0ID1+IC8kT3BlcmF0b3JzLykKKwkJCQl7CiAJCQkJCUVSUk9SKCJNYWNyb3Mgd2l0aCBjb21wbGV4IHZhbHVlcyBzaG91bGQgYmUgZW5jbG9zZWQgaW4gcGFyZW50aGVzaXNcbiIgLiAiJGhlcmVcbiRjdHhcbiIpOwogCQkJCX0KIAkJCX0KQEAgLTE4ODQsNyArMTk2OCw3IEBACiAKICMgZG9uJ3QgaW5jbHVkZSBkZXByZWNhdGVkIGluY2x1ZGUgZmlsZXMgKHVzZXMgUkFXIGxpbmUpCiAJCWZvciBteSAkaW5jIChAZGVwX2luY2x1ZGVzKSB7Ci0JCQlpZiAoJHJhd2xpbmUgPX4gbUBcI1xzKmluY2x1ZGVccypcPCRpbmM+QCkgeworCQkJaWYgKCRyYXdsaW5lID1+IG1AXi5ccypcI1xzKmluY2x1ZGVccypcPCRpbmM+QCkgewogCQkJCUVSUk9SKCJEb24ndCB1c2UgPCRpbmM+OiBzZWUgRG9jdW1lbnRhdGlvbi9mZWF0dXJlLXJlbW92YWwtc2NoZWR1bGUudHh0XG4iIC4gJGhlcmVjdXJyKTsKIAkJCX0KIAkJfQpAQCAtMTkwOCw3ICsxOTkyLDcgQEAKIAkJfQogCiAjIHdhcm4gYWJvdXQgI2lmIDAKLQkJaWYgKCRsaW5lID1+IC9eLiNccyppZlxzKzBcYi8pIHsKKwkJaWYgKCRsaW5lID1+IC9eLlxzKlwjXHMqaWZccyswXGIvKSB7CiAJCQlDSEsoImlmIHRoaXMgY29kZSBpcyByZWR1bmRhbnQgY29uc2lkZXIgcmVtb3ZpbmcgaXRcbiIgLgogCQkJCSRoZXJlY3Vycik7CiAJCX0KQEAgLTE5MjAsMjMgKzIwMDQsMTYgQEAKIAkJCQlXQVJOKCJrZnJlZShOVUxMKSBpcyBzYWZlIHRoaXMgY2hlY2sgaXMgcHJvYmFiYWxseSBub3QgcmVxdWlyZWRcbiIgLiAkaGVyZXByZXYpOwogCQkJfQogCQl9Ci0jIGNoZWNrIGZvciBuZWVkbGVzcyB1c2JfZnJlZV91cmIoKSBjaGVja3MKLQkJaWYgKCRwcmV2bGluZSA9fiAvXGJpZlxzKlwoKFteXCldKilcKS8pIHsKLQkJCW15ICRleHByID0gJDE7Ci0JCQlpZiAoJGxpbmUgPX4gL1xidXNiX2ZyZWVfdXJiXChcUSRleHByXEVcKTsvKSB7Ci0JCQkJV0FSTigidXNiX2ZyZWVfdXJiKE5VTEwpIGlzIHNhZmUgdGhpcyBjaGVjayBpcyBwcm9iYWJhbGx5IG5vdCByZXF1aXJlZFxuIiAuICRoZXJlcHJldik7Ci0JCQl9Ci0JCX0KIAogIyB3YXJuIGFib3V0ICNpZmRlZnMgaW4gQyBmaWxlcwotIwkJaWYgKCRsaW5lID1+IC9eLiNccyppZih8bilkZWYvICYmICgkcmVhbGZpbGUgPX4gL1wuYyQvKSkgeworIwkJaWYgKCRsaW5lID1+IC9eLlxzKlwjXHMqaWYofG4pZGVmLyAmJiAoJHJlYWxmaWxlID1+IC9cLmMkLykpIHsKICMJCQlwcmludCAiI2lmZGVmIGluIEMgZmlsZXMgc2hvdWxkIGJlIGF2b2lkZWRcbiI7CiAjCQkJcHJpbnQgIiRoZXJlY3VyciI7CiAjCQkJJGNsZWFuID0gMDsKICMJCX0KIAogIyB3YXJuIGFib3V0IHNwYWNpbmcgaW4gI2lmZGVmcwotCQlpZiAoJGxpbmUgPX4gL14uI1xzKihpZmRlZnxpZm5kZWZ8ZWxpZilcc1xzKy8pIHsKKwkJaWYgKCRsaW5lID1+IC9eLlxzKlwjXHMqKGlmZGVmfGlmbmRlZnxlbGlmKVxzXHMrLykgewogCQkJRVJST1IoImV4YWN0bHkgb25lIHNwYWNlIHJlcXVpcmVkIGFmdGVyIHRoYXQgIyQxXG4iIC4gJGhlcmVjdXJyKTsKIAkJfQogCkBAIC0xOTU1LDcgKzIwMzIsNyBAQAogCQkJfQogCQl9CiAjIGNoZWNrIG9mIGhhcmR3YXJlIHNwZWNpZmljIGRlZmluZXMKLQkJaWYgKCRsaW5lID1+IG1AXi4jXHMqaWYuKlxiKF9faTM4Nl9ffF9fcG93ZXJwYzY0X198X19zdW5fX3xfX3MzOTB4X18pXGJAICYmICRyZWFsZmlsZSAhfiBtQGluY2x1ZGUvYXNtLUApIHsKKwkJaWYgKCRsaW5lID1+IG1AXi5ccypcI1xzKmlmLipcYihfX2kzODZfX3xfX3Bvd2VycGM2NF9ffF9fc3VuX198X19zMzkweF9fKVxiQCAmJiAkcmVhbGZpbGUgIX4gbUBpbmNsdWRlL2FzbS1AKSB7CiAJCQlDSEsoImFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkZWZpbmVzIHNob3VsZCBiZSBhdm9pZGVkXG4iIC4gICRoZXJlY3Vycik7CiAJCX0KIApAQCAtMTk3MywxNSArMjA1MCwxOCBAQAogCiAjIGNoZWNrIGZvciBuZXcgZXh0ZXJucyBpbiAuYyBmaWxlcy4KIAkJaWYgKCRyZWFsZmlsZSA9fiAvXC5jJC8gJiYgZGVmaW5lZCAkc3RhdCAmJgotCQkgICAgJHN0YXQgPX4gL14uXHMqKD86ZXh0ZXJuXHMrKT8kVHlwZVxzKyRJZGVudChccyopXCgvcykKKwkJICAgICRzdGF0ID1+IC9eLlxzKig/OmV4dGVyblxzKyk/JFR5cGVccysoJElkZW50KShccyopXCgvcykKIAkJewotCQkJbXkgJHBhcmVuX3NwYWNlID0gJDE7CisJCQlteSAkZnVuY3Rpb25fbmFtZSA9ICQxOworCQkJbXkgJHBhcmVuX3NwYWNlID0gJDI7CiAKIAkJCW15ICRzID0gJHN0YXQ7CiAJCQlpZiAoZGVmaW5lZCAkY29uZCkgewogCQkJCXN1YnN0cigkcywgMCwgbGVuZ3RoKCRjb25kKSwgJycpOwogCQkJfQotCQkJaWYgKCRzID1+IC9eXHMqOy8pIHsKKwkJCWlmICgkcyA9fiAvXlxzKjsvICYmCisJCQkgICAgJGZ1bmN0aW9uX25hbWUgbmUgJ3VuaW5pdGlhbGl6ZWRfdmFyJykKKwkJCXsKIAkJCQlXQVJOKCJleHRlcm5zIHNob3VsZCBiZSBhdm9pZGVkIGluIC5jIGZpbGVzXG4iIC4gICRoZXJlY3Vycik7CiAJCQl9CiAKQEAgLTIwMzAsOCArMjExMCw4IEBACiAjIHVzZSBvZiBOUl9DUFVTIGlzIHVzdWFsbHkgd3JvbmcKICMgaWdub3JlIGRlZmluaXRpb25zIG9mIE5SX0NQVVMgYW5kIHVzYWdlIHRvIGRlZmluZSBhcnJheXMgYXMgbGlrZWx5IHJpZ2h0CiAJCWlmICgkbGluZSA9fiAvXGJOUl9DUFVTXGIvICYmCi0JCSAgICAkbGluZSAhfiAvXi4jXHMqaWZcYi4qXGJOUl9DUFVTXGIvICYmCi0JCSAgICAkbGluZSAhfiAvXi4jXHMqZGVmaW5lXGIuKlxiTlJfQ1BVU1xiLyAmJgorCQkgICAgJGxpbmUgIX4gL14uXHMqXHMqI1xzKmlmXGIuKlxiTlJfQ1BVU1xiLyAmJgorCQkgICAgJGxpbmUgIX4gL14uXHMqXHMqI1xzKmRlZmluZVxiLipcYk5SX0NQVVNcYi8gJiYKIAkJICAgICRsaW5lICF+IC9eLlxzKiREZWNsYXJlXHMuKlxbW15cXV0qTlJfQ1BVU1teXF1dKlxdLyAmJgogCQkgICAgJGxpbmUgIX4gL1xbW15cXV0qXC5cLlwuW15cXV0qTlJfQ1BVU1teXF1dKlxdLyAmJgogCQkgICAgJGxpbmUgIX4gL1xbW15cXV0qTlJfQ1BVU1teXF1dKlwuXC5cLlteXF1dKlxdLykKZGlmZiAtLWdpdCBhL3NjcmlwdHMvZGVjb2RlY29kZSBiL3NjcmlwdHMvZGVjb2RlY29kZQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMgYi9zY3JpcHRzL21vZC9maWxlMmFsaWFzLmMKaW5kZXggY2VhNGE3OS4uMzdkNWMzNiAxMDA2NDQKLS0tIGEvc2NyaXB0cy9tb2QvZmlsZTJhbGlhcy5jCisrKyBiL3NjcmlwdHMvbW9kL2ZpbGUyYWxpYXMuYwpAQCAtMzA0LDYgKzMwNCwxNCBAQAogCXJldHVybiAxOwogfQogCisvKiBsb29rcyBsaWtlOiAiY3NzOnROIiAqLworc3RhdGljIGludCBkb19jc3NfZW50cnkoY29uc3QgY2hhciAqZmlsZW5hbWUsCisJCQlzdHJ1Y3QgY3NzX2RldmljZV9pZCAqaWQsIGNoYXIgKmFsaWFzKQoreworCXNwcmludGYoYWxpYXMsICJjc3M6dCUwMVgiLCBpZC0+dHlwZSk7CisJcmV0dXJuIDE7Cit9CisKIC8qIExvb2tzIGxpa2U6ICJzZXJpbzp0eU5wck5pZE5leE4iICovCiBzdGF0aWMgaW50IGRvX3NlcmlvX2VudHJ5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJICBzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkICppZCwgY2hhciAqYWxpYXMpCkBAIC02ODAsNiArNjg4LDEwIEBACiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3QgYXBfZGV2aWNlX2lkKSwgImFwIiwKIAkJCSBkb19hcF9lbnRyeSwgbW9kKTsKKwllbHNlIGlmIChzeW1faXMoc3ltbmFtZSwgIl9fbW9kX2Nzc19kZXZpY2VfdGFibGUiKSkKKwkJZG9fdGFibGUoc3ltdmFsLCBzeW0tPnN0X3NpemUsCisJCQkgc2l6ZW9mKHN0cnVjdCBjc3NfZGV2aWNlX2lkKSwgImNzcyIsCisJCQkgZG9fY3NzX2VudHJ5LCBtb2QpOwogCWVsc2UgaWYgKHN5bV9pcyhzeW1uYW1lLCAiX19tb2Rfc2VyaW9fZGV2aWNlX3RhYmxlIikpCiAJCWRvX3RhYmxlKHN5bXZhbCwgc3ltLT5zdF9zaXplLAogCQkJIHNpemVvZihzdHJ1Y3Qgc2VyaW9fZGV2aWNlX2lkKSwgInNlcmlvIiwKZGlmZiAtLWdpdCBhL3NjcmlwdHMvbW9kL21vZHBvc3QuYyBiL3NjcmlwdHMvbW9kL21vZHBvc3QuYwppbmRleCA1MDhjNTg5Li5hMDdmOTFhIDEwMDY0NAotLS0gYS9zY3JpcHRzL21vZC9tb2Rwb3N0LmMKKysrIGIvc2NyaXB0cy9tb2QvbW9kcG9zdC5jCkBAIC00NjcsNiArNDY3LDI1IEBACiAJcmVsZWFzZV9maWxlKGluZm8tPmhkciwgaW5mby0+c2l6ZSk7CiB9CiAKK3N0YXRpYyBpbnQgaWdub3JlX3VuZGVmX3N5bWJvbChzdHJ1Y3QgZWxmX2luZm8gKmluZm8sIGNvbnN0IGNoYXIgKnN5bW5hbWUpCit7CisJLyogaWdub3JlIF9fdGhpc19tb2R1bGUsIGl0IHdpbGwgYmUgcmVzb2x2ZWQgc2hvcnRseSAqLworCWlmIChzdHJjbXAoc3ltbmFtZSwgTU9EVUxFX1NZTUJPTF9QUkVGSVggIl9fdGhpc19tb2R1bGUiKSA9PSAwKQorCQlyZXR1cm4gMTsKKwkvKiBpZ25vcmUgZ2xvYmFsIG9mZnNldCB0YWJsZSAqLworCWlmIChzdHJjbXAoc3ltbmFtZSwgIl9HTE9CQUxfT0ZGU0VUX1RBQkxFXyIpID09IDApCisJCXJldHVybiAxOworCWlmIChpbmZvLT5oZHItPmVfbWFjaGluZSA9PSBFTV9QUEMpCisJCS8qIFNwZWNpYWwgcmVnaXN0ZXIgZnVuY3Rpb24gbGlua2VkIG9uIGFsbCBtb2R1bGVzIGR1cmluZyBmaW5hbCBsaW5rIG9mIC5rbyAqLworCQlpZiAoc3RybmNtcChzeW1uYW1lLCAiX3Jlc3RncHJfIiwgc2l6ZW9mKCJfcmVzdGdwcl8iKSAtIDEpID09IDAgfHwKKwkJICAgIHN0cm5jbXAoc3ltbmFtZSwgIl9zYXZlZ3ByXyIsIHNpemVvZigiX3NhdmVncHJfIikgLSAxKSA9PSAwIHx8CisJCSAgICBzdHJuY21wKHN5bW5hbWUsICJfcmVzdDMyZ3ByXyIsIHNpemVvZigiX3Jlc3QzMmdwcl8iKSAtIDEpID09IDAgfHwKKwkJICAgIHN0cm5jbXAoc3ltbmFtZSwgIl9zYXZlMzJncHJfIiwgc2l6ZW9mKCJfc2F2ZTMyZ3ByXyIpIC0gMSkgPT0gMCkKKwkJCXJldHVybiAxOworCS8qIERvIG5vdCBpZ25vcmUgdGhpcyBzeW1ib2wgKi8KKwlyZXR1cm4gMDsKK30KKwogI2RlZmluZSBDUkNfUEZYICAgICBNT0RVTEVfU1lNQk9MX1BSRUZJWCAiX19jcmNfIgogI2RlZmluZSBLU1lNVEFCX1BGWCBNT0RVTEVfU1lNQk9MX1BSRUZJWCAiX19rc3ltdGFiXyIKIApAQCAtNDkzLDExICs1MTIsNyBAQAogCQlpZiAoRUxGX1NUX0JJTkQoc3ltLT5zdF9pbmZvKSAhPSBTVEJfR0xPQkFMICYmCiAJCSAgICBFTEZfU1RfQklORChzeW0tPnN0X2luZm8pICE9IFNUQl9XRUFLKQogCQkJYnJlYWs7Ci0JCS8qIGlnbm9yZSBnbG9iYWwgb2Zmc2V0IHRhYmxlICovCi0JCWlmIChzdHJjbXAoc3ltbmFtZSwgIl9HTE9CQUxfT0ZGU0VUX1RBQkxFXyIpID09IDApCi0JCQlicmVhazsKLQkJLyogaWdub3JlIF9fdGhpc19tb2R1bGUsIGl0IHdpbGwgYmUgcmVzb2x2ZWQgc2hvcnRseSAqLwotCQlpZiAoc3RyY21wKHN5bW5hbWUsIE1PRFVMRV9TWU1CT0xfUFJFRklYICJfX3RoaXNfbW9kdWxlIikgPT0gMCkKKwkJaWYgKGlnbm9yZV91bmRlZl9zeW1ib2woaW5mbywgc3ltbmFtZSkpCiAJCQlicmVhazsKIC8qIGNvcGUgd2l0aCBuZXdlciBnbGliYyAoMi4zLjQgb3IgaGlnaGVyKSBTVFRfIGRlZmluaXRpb24gaW4gZWxmLmggKi8KICNpZiBkZWZpbmVkKFNUVF9SRUdJU1RFUikgfHwgZGVmaW5lZChTVFRfU1BBUkNfUkVHSVNURVIpCmRpZmYgLS1naXQgYS9zY3JpcHRzL3Zlcl9saW51eCBiL3NjcmlwdHMvdmVyX2xpbnV4CmluZGV4IGFiNjllY2UuLjdhYzBlMzAgMTAwNzU1Ci0tLSBhL3NjcmlwdHMvdmVyX2xpbnV4CisrKyBiL3NjcmlwdHMvdmVyX2xpbnV4CkBAIC0xMiwxMiArMTIsOSBAQAogdW5hbWUgLWEKIGVjaG8gJyAnCiAKLWdjYyAtLXZlcnNpb24gMj4mMXwgaGVhZCAtbiAxIHwgZ3JlcCAtdiBnY2MgfCBhd2sgXAorZ2NjIC1kdW1wdmVyc2lvbiAyPiYxfCBhd2sgXAogJ05SPT0xe3ByaW50ICJHbnUgQyAgICAgICAgICAgICAgICAgIiwgJDF9JwogCi1nY2MgLS12ZXJzaW9uIDI+JjF8IGdyZXAgZ2NjIHwgYXdrIFwKLSdOUj09MXtwcmludCAiR251IEMgICAgICAgICAgICAgICAgICIsICQzfScKLQogbWFrZSAtLXZlcnNpb24gMj4mMSB8IGF3ayAtRiwgJ3twcmludCAkMX0nIHwgYXdrIFwKICAgICAgICcvR05VIE1ha2Uve3ByaW50ICJHbnUgbWFrZSAgICAgICAgICAgICAgIiwkTkZ9JwogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9LY29uZmlnIGIvc2VjdXJpdHkvS2NvbmZpZwppbmRleCA0OWI1MWY5Li42MmVkNDcxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9LY29uZmlnCisrKyBiL3NlY3VyaXR5L0tjb25maWcKQEAgLTczLDE3ICs3Myw5IEBACiAJICBJUFNlYy4KIAkgIElmIHlvdSBhcmUgdW5zdXJlIGhvdyB0byBhbnN3ZXIgdGhpcyBxdWVzdGlvbiwgYW5zd2VyIE4uCiAKLWNvbmZpZyBTRUNVUklUWV9DQVBBQklMSVRJRVMKLQlib29sICJEZWZhdWx0IExpbnV4IENhcGFiaWxpdGllcyIKLQlkZXBlbmRzIG9uIFNFQ1VSSVRZCi0JZGVmYXVsdCB5Ci0JaGVscAotCSAgVGhpcyBlbmFibGVzIHRoZSAiZGVmYXVsdCIgTGludXggY2FwYWJpbGl0aWVzIGZ1bmN0aW9uYWxpdHkuCi0JICBJZiB5b3UgYXJlIHVuc3VyZSBob3cgdG8gYW5zd2VyIHRoaXMgcXVlc3Rpb24sIGFuc3dlciBZLgotCiBjb25maWcgU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMKIAlib29sICJGaWxlIFBPU0lYIENhcGFiaWxpdGllcyAoRVhQRVJJTUVOVEFMKSIKLQlkZXBlbmRzIG9uIChTRUNVUklUWT1uIHx8IFNFQ1VSSVRZX0NBUEFCSUxJVElFUyE9bikgJiYgRVhQRVJJTUVOVEFMCisJZGVwZW5kcyBvbiBFWFBFUklNRU5UQUwKIAlkZWZhdWx0IG4KIAloZWxwCiAJICBUaGlzIGVuYWJsZXMgZmlsZXN5c3RlbSBjYXBhYmlsaXRpZXMsIGFsbG93aW5nIHlvdSB0byBnaXZlCmRpZmYgLS1naXQgYS9zZWN1cml0eS9NYWtlZmlsZSBiL3NlY3VyaXR5L01ha2VmaWxlCmluZGV4IDdlZjExMDcuLmY2NTQyNjAgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L01ha2VmaWxlCisrKyBiL3NlY3VyaXR5L01ha2VmaWxlCkBAIC02LDE2ICs2LDEzIEBACiBzdWJkaXItJChDT05GSUdfU0VDVVJJVFlfU0VMSU5VWCkJKz0gc2VsaW51eAogc3ViZGlyLSQoQ09ORklHX1NFQ1VSSVRZX1NNQUNLKQkJKz0gc21hY2sKIAotIyBpZiB3ZSBkb24ndCBzZWxlY3QgYSBzZWN1cml0eSBtb2RlbCwgdXNlIHRoZSBkZWZhdWx0IGNhcGFiaWxpdGllcwotaWZuZXEgKCQoQ09ORklHX1NFQ1VSSVRZKSx5KQorIyBhbHdheXMgZW5hYmxlIGRlZmF1bHQgY2FwYWJpbGl0aWVzCiBvYmoteQkJKz0gY29tbW9uY2FwLm8KLWVuZGlmCiAKICMgT2JqZWN0IGZpbGUgbGlzdHMKLW9iai0kKENPTkZJR19TRUNVUklUWSkJCQkrPSBzZWN1cml0eS5vIGR1bW15Lm8gaW5vZGUubworb2JqLSQoQ09ORklHX1NFQ1VSSVRZKQkJCSs9IHNlY3VyaXR5Lm8gY2FwYWJpbGl0eS5vIGlub2RlLm8KICMgTXVzdCBwcmVjZWRlIGNhcGFiaWxpdHkubyBpbiBvcmRlciB0byBzdGFjayBwcm9wZXJseS4KIG9iai0kKENPTkZJR19TRUNVUklUWV9TRUxJTlVYKQkJKz0gc2VsaW51eC9idWlsdC1pbi5vCi1vYmotJChDT05GSUdfU0VDVVJJVFlfU01BQ0spCQkrPSBjb21tb25jYXAubyBzbWFjay9idWlsdC1pbi5vCi1vYmotJChDT05GSUdfU0VDVVJJVFlfQ0FQQUJJTElUSUVTKQkrPSBjb21tb25jYXAubyBjYXBhYmlsaXR5Lm8KLW9iai0kKENPTkZJR19TRUNVUklUWV9ST09UUExVRykJCSs9IGNvbW1vbmNhcC5vIHJvb3RfcGx1Zy5vCitvYmotJChDT05GSUdfU0VDVVJJVFlfU01BQ0spCQkrPSBzbWFjay9idWlsdC1pbi5vCitvYmotJChDT05GSUdfU0VDVVJJVFlfUk9PVFBMVUcpCQkrPSByb290X3BsdWcubwogb2JqLSQoQ09ORklHX0NHUk9VUF9ERVZJQ0UpCQkrPSBkZXZpY2VfY2dyb3VwLm8KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2NhcGFiaWxpdHkuYyBiL3NlY3VyaXR5L2NhcGFiaWxpdHkuYwppbmRleCAzOGFjNTRlLi41YjAxYzBiIDEwMDY0NAotLS0gYS9zZWN1cml0eS9jYXBhYmlsaXR5LmMKKysrIGIvc2VjdXJpdHkvY2FwYWJpbGl0eS5jCkBAIC0xLDYgKzEsOCBAQAogLyoKICAqICBDYXBhYmlsaXRpZXMgTGludXggU2VjdXJpdHkgTW9kdWxlCiAgKgorICogIFRoaXMgaXMgdGhlIGRlZmF1bHQgc2VjdXJpdHkgbW9kdWxlIGluIGNhc2Ugbm8gb3RoZXIgbW9kdWxlIGlzIGxvYWRlZC4KKyAqCiAgKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCkBAIC04LDc1ICsxMCw5ODggQEAKICAqCiAgKi8KIAotI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KLSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNsdWRlIDxsaW51eC9zZWN1cml0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvc3dhcC5oPgotI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPgotI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4KLSNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KLSNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgogCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgY2FwYWJpbGl0eV9vcHMgPSB7Ci0JLnB0cmFjZSA9CQkJY2FwX3B0cmFjZSwKLQkuY2FwZ2V0ID0JCQljYXBfY2FwZ2V0LAotCS5jYXBzZXRfY2hlY2sgPQkJCWNhcF9jYXBzZXRfY2hlY2ssCi0JLmNhcHNldF9zZXQgPQkJCWNhcF9jYXBzZXRfc2V0LAotCS5jYXBhYmxlID0JCQljYXBfY2FwYWJsZSwKLQkuc2V0dGltZSA9CQkJY2FwX3NldHRpbWUsCi0JLm5ldGxpbmtfc2VuZCA9CQkJY2FwX25ldGxpbmtfc2VuZCwKLQkubmV0bGlua19yZWN2ID0JCQljYXBfbmV0bGlua19yZWN2LAotCi0JLmJwcm1fYXBwbHlfY3JlZHMgPQkJY2FwX2Jwcm1fYXBwbHlfY3JlZHMsCi0JLmJwcm1fc2V0X3NlY3VyaXR5ID0JCWNhcF9icHJtX3NldF9zZWN1cml0eSwKLQkuYnBybV9zZWN1cmVleGVjID0JCWNhcF9icHJtX3NlY3VyZWV4ZWMsCi0KLQkuaW5vZGVfc2V0eGF0dHIgPQkJY2FwX2lub2RlX3NldHhhdHRyLAotCS5pbm9kZV9yZW1vdmV4YXR0ciA9CQljYXBfaW5vZGVfcmVtb3ZleGF0dHIsCi0JLmlub2RlX25lZWRfa2lsbHByaXYgPQkJY2FwX2lub2RlX25lZWRfa2lsbHByaXYsCi0JLmlub2RlX2tpbGxwcml2ID0JCWNhcF9pbm9kZV9raWxscHJpdiwKLQotCS50YXNrX3NldHNjaGVkdWxlciA9CQljYXBfdGFza19zZXRzY2hlZHVsZXIsCi0JLnRhc2tfc2V0aW9wcmlvID0JCWNhcF90YXNrX3NldGlvcHJpbywKLQkudGFza19zZXRuaWNlID0JCQljYXBfdGFza19zZXRuaWNlLAotCS50YXNrX3Bvc3Rfc2V0dWlkID0JCWNhcF90YXNrX3Bvc3Rfc2V0dWlkLAotCS50YXNrX3ByY3RsID0gICAgICAgICAgICAgICAgICAgY2FwX3Rhc2tfcHJjdGwsCi0JLnRhc2tfcmVwYXJlbnRfdG9faW5pdCA9CWNhcF90YXNrX3JlcGFyZW50X3RvX2luaXQsCi0KLQkuc3lzbG9nID0gICAgICAgICAgICAgICAgICAgICAgIGNhcF9zeXNsb2csCi0KLQkudm1fZW5vdWdoX21lbW9yeSA9ICAgICAgICAgICAgIGNhcF92bV9lbm91Z2hfbWVtb3J5LAotfTsKLQotLyogZmxhZyB0byBrZWVwIHRyYWNrIG9mIGhvdyB3ZSB3ZXJlIHJlZ2lzdGVyZWQgKi8KLXN0YXRpYyBpbnQgc2Vjb25kYXJ5OwotCi1zdGF0aWMgaW50IGNhcGFiaWxpdHlfZGlzYWJsZTsKLW1vZHVsZV9wYXJhbV9uYW1lZChkaXNhYmxlLCBjYXBhYmlsaXR5X2Rpc2FibGUsIGludCwgMCk7Ci0KLXN0YXRpYyBpbnQgX19pbml0IGNhcGFiaWxpdHlfaW5pdCAodm9pZCkKK3N0YXRpYyBpbnQgY2FwX2FjY3Qoc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0JaWYgKGNhcGFiaWxpdHlfZGlzYWJsZSkgewotCQlwcmludGsoS0VSTl9JTkZPICJDYXBhYmlsaXRpZXMgZGlzYWJsZWQgYXQgaW5pdGlhbGl6YXRpb25cbiIpOwotCQlyZXR1cm4gMDsKLQl9Ci0JLyogcmVnaXN0ZXIgb3Vyc2VsdmVzIHdpdGggdGhlIHNlY3VyaXR5IGZyYW1ld29yayAqLwotCWlmIChyZWdpc3Rlcl9zZWN1cml0eSAoJmNhcGFiaWxpdHlfb3BzKSkgewotCQkvKiB0cnkgcmVnaXN0ZXJpbmcgd2l0aCBwcmltYXJ5IG1vZHVsZSAqLwotCQlpZiAobW9kX3JlZ19zZWN1cml0eSAoS0JVSUxEX01PRE5BTUUsICZjYXBhYmlsaXR5X29wcykpIHsKLQkJCXByaW50ayAoS0VSTl9JTkZPICJGYWlsdXJlIHJlZ2lzdGVyaW5nIGNhcGFiaWxpdGllcyAiCi0JCQkJIndpdGggcHJpbWFyeSBzZWN1cml0eSBtb2R1bGUuXG4iKTsKLQkJCXJldHVybiAtRUlOVkFMOwotCQl9Ci0JCXNlY29uZGFyeSA9IDE7Ci0JfQotCXByaW50ayAoS0VSTl9JTkZPICJDYXBhYmlsaXR5IExTTSBpbml0aWFsaXplZCVzXG4iLAotCQlzZWNvbmRhcnkgPyAiIGFzIHNlY29uZGFyeSIgOiAiIik7CiAJcmV0dXJuIDA7CiB9CiAKLXNlY3VyaXR5X2luaXRjYWxsIChjYXBhYmlsaXR5X2luaXQpOworc3RhdGljIGludCBjYXBfc3lzY3RsKGN0bF90YWJsZSAqdGFibGUsIGludCBvcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfcXVvdGFjdGwoaW50IGNtZHMsIGludCB0eXBlLCBpbnQgaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3F1b3RhX29uKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfYnBybV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfYnBybV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9icHJtX3Bvc3RfYXBwbHlfY3JlZHMoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKK3sKK30KKworc3RhdGljIGludCBjYXBfYnBybV9jaGVja19zZWN1cml0eShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9jb3B5X2RhdGEoY2hhciAqb3JpZywgY2hhciAqY29weSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2Jfa2Vybl9tb3VudChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9zaG93X29wdGlvbnMoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9zdGF0ZnMoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9tb3VudChjaGFyICpkZXZfbmFtZSwgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnR5cGUsCisJCQl1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zYl9jaGVja19zYihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NiX3Vtb3VudChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgaW50IGZsYWdzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfdW1vdW50X2Nsb3NlKHN0cnVjdCB2ZnNtb3VudCAqbW50KQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfc2JfdW1vdW50X2J1c3koc3RydWN0IHZmc21vdW50ICptbnQpCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9wb3N0X3JlbW91bnQoc3RydWN0IHZmc21vdW50ICptbnQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisJCQkJdm9pZCAqZGF0YSkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NiX3Bvc3RfYWRkbW91bnQoc3RydWN0IHZmc21vdW50ICptbnQsIHN0cnVjdCBwYXRoICpwYXRoKQoreworfQorCitzdGF0aWMgaW50IGNhcF9zYl9waXZvdHJvb3Qoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9wb3N0X3Bpdm90cm9vdChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKK3sKK30KKworc3RhdGljIGludCBjYXBfc2Jfc2V0X21udF9vcHRzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCisJCQkgICAgICAgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQoreworCWlmICh1bmxpa2VseShvcHRzLT5udW1fbW50X29wdHMpKQorCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zYl9jbG9uZV9tbnRfb3B0cyhjb25zdCBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKm9sZHNiLAorCQkJCSAgc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYikKK3sKK30KKworc3RhdGljIGludCBjYXBfc2JfcGFyc2Vfb3B0c19zdHIoY2hhciAqb3B0aW9ucywgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQoreworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9pbml0X3NlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBpbm9kZSAqZGlyLAorCQkJCSAgIGNoYXIgKipuYW1lLCB2b2lkICoqdmFsdWUsIHNpemVfdCAqbGVuKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfY3JlYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCSAgICBpbnQgbWFzaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbGluayhzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LCBzdHJ1Y3QgaW5vZGUgKmlub2RlLAorCQkJICBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV91bmxpbmsoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zeW1saW5rKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCSAgICAgY29uc3QgY2hhciAqbmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbWtkaXIoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgaW50IG1hc2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX3JtZGlyKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfbWtub2Qoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAorCQkJICAgaW50IG1vZGUsIGRldl90IGRldikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfcmVuYW1lKHN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLCBzdHJ1Y3QgZGVudHJ5ICpvbGRfZGVudHJ5LAorCQkJICAgIHN0cnVjdCBpbm9kZSAqbmV3X2lub2RlLCBzdHJ1Y3QgZGVudHJ5ICpuZXdfZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9yZWFkbGluayhzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2ZvbGxvd19saW5rKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwKKwkJCQkgc3RydWN0IG5hbWVpZGF0YSAqbmFtZWlkYXRhKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9wZXJtaXNzaW9uKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGludCBtYXNrLAorCQkJCXN0cnVjdCBuYW1laWRhdGEgKm5kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zZXRhdHRyKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlhdHRyICppYXR0cikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfaW5vZGVfZ2V0YXR0cihzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IGRlbnRyeSAqZGVudHJ5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfZGVsZXRlKHN0cnVjdCBpbm9kZSAqaW5vKQoreworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5vZGVfcG9zdF9zZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQoreworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9nZXR4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2xpc3R4YXR0cihzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2dldHNlY3VyaXR5KGNvbnN0IHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNvbnN0IGNoYXIgKm5hbWUsCisJCQkJIHZvaWQgKipidWZmZXIsIGJvb2wgYWxsb2MpCit7CisJcmV0dXJuIC1FT1BOT1RTVVBQOworfQorCitzdGF0aWMgaW50IGNhcF9pbm9kZV9zZXRzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCSBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncykKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2lub2RlX2xpc3RzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjaGFyICpidWZmZXIsCisJCQkJICBzaXplX3QgYnVmZmVyX3NpemUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pbm9kZV9nZXRzZWNpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKnNlY2lkKQoreworCSpzZWNpZCA9IDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfcGVybWlzc2lvbihzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1hc2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IGZpbGUgKmZpbGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9maWxlX2ZyZWVfc2VjdXJpdHkoc3RydWN0IGZpbGUgKmZpbGUpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2ZpbGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjb21tYW5kLAorCQkJICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBsb25nIHJlcXByb3QsCisJCQkgdW5zaWduZWQgbG9uZyBwcm90LCB1bnNpZ25lZCBsb25nIGZsYWdzLAorCQkJIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBhZGRyX29ubHkpCit7CisJaWYgKChhZGRyIDwgbW1hcF9taW5fYWRkcikgJiYgIWNhcGFibGUoQ0FQX1NZU19SQVdJTykpCisJCXJldHVybiAtRUFDQ0VTOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX21wcm90ZWN0KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIHJlcXByb3QsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgcHJvdCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9sb2NrKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX2ZjbnRsKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAorCQkJICB1bnNpZ25lZCBsb25nIGFyZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9zZXRfZm93bmVyKHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9maWxlX3NlbmRfc2lnaW90YXNrKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAorCQkJCSAgIHN0cnVjdCBmb3duX3N0cnVjdCAqZm93biwgaW50IHNpZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfZmlsZV9yZWNlaXZlKHN0cnVjdCBmaWxlICpmaWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9kZW50cnlfb3BlbihzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19jcmVhdGUodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19hbGxvY19zZWN1cml0eShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF90YXNrX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3NldHVpZCh1aWRfdCBpZDAsIHVpZF90IGlkMSwgdWlkX3QgaWQyLCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfc2V0Z2lkKGdpZF90IGlkMCwgZ2lkX3QgaWQxLCBnaWRfdCBpZDIsIGludCBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRwZ2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgcGlkX3QgcGdpZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRwZ2lkKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRzaWQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfdGFza19nZXRzZWNpZChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIHUzMiAqc2VjaWQpCit7CisJKnNlY2lkID0gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRncm91cHMoc3RydWN0IGdyb3VwX2luZm8gKmdyb3VwX2luZm8pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3Rhc2tfZ2V0aW9wcmlvKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19zZXRybGltaXQodW5zaWduZWQgaW50IHJlc291cmNlLCBzdHJ1Y3QgcmxpbWl0ICpuZXdfcmxpbSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfdGFza19nZXRzY2hlZHVsZXIoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX21vdmVtZW1vcnkoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX3dhaXQoc3RydWN0IHRhc2tfc3RydWN0ICpwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF90YXNrX2tpbGwoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qgc2lnaW5mbyAqaW5mbywKKwkJCSBpbnQgc2lnLCB1MzIgc2VjaWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF90YXNrX3RvX2lub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IGlub2RlICppbm9kZSkKK3sKK30KKworc3RhdGljIGludCBjYXBfaXBjX3Blcm1pc3Npb24oc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHNob3J0IGZsYWcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9pcGNfZ2V0c2VjaWQoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHUzMiAqc2VjaWQpCit7CisJKnNlY2lkID0gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX21zZ19hbGxvY19zZWN1cml0eShzdHJ1Y3QgbXNnX21zZyAqbXNnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfbXNnX21zZ19mcmVlX3NlY3VyaXR5KHN0cnVjdCBtc2dfbXNnICptc2cpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX21zZ19xdWV1ZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9tc2dfcXVldWVfZnJlZV9zZWN1cml0eShzdHJ1Y3QgbXNnX3F1ZXVlICptc3EpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX21zZ19xdWV1ZV9hc3NvY2lhdGUoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBpbnQgbXNxZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9tc2dfcXVldWVfbXNnY3RsKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgaW50IGNtZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX21zZ3NuZChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCisJCQkJaW50IG1zZ2ZsZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfbXNnX3F1ZXVlX21zZ3JjdihzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIHN0cnVjdCBtc2dfbXNnICptc2csCisJCQkJc3RydWN0IHRhc2tfc3RydWN0ICp0YXJnZXQsIGxvbmcgdHlwZSwgaW50IG1vZGUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NobV9hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9zaG1fZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHApCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NobV9hc3NvY2lhdGUoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBpbnQgc2htZmxnKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zaG1fc2htY3RsKHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgaW50IGNtZCkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2htX3NobWF0KHN0cnVjdCBzaG1pZF9rZXJuZWwgKnNocCwgY2hhciBfX3VzZXIgKnNobWFkZHIsCisJCQkgaW50IHNobWZsZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc2VtX2FsbG9jX3NlY3VyaXR5KHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX3NlbV9mcmVlX3NlY3VyaXR5KHN0cnVjdCBzZW1fYXJyYXkgKnNtYSkKK3sKK30KKworc3RhdGljIGludCBjYXBfc2VtX2Fzc29jaWF0ZShzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIGludCBzZW1mbGcpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlbV9zZW1jdGwoc3RydWN0IHNlbV9hcnJheSAqc21hLCBpbnQgY21kKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zZW1fc2Vtb3Aoc3RydWN0IHNlbV9hcnJheSAqc21hLCBzdHJ1Y3Qgc2VtYnVmICpzb3BzLAorCQkJIHVuc2lnbmVkIG5zb3BzLCBpbnQgYWx0ZXIpCit7CisJcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSworc3RhdGljIGludCBjYXBfdW5peF9zdHJlYW1fY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpvdGhlciwKKwkJCQkgICBzdHJ1Y3Qgc29jayAqbmV3c2spCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3VuaXhfbWF5X3NlbmQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqb3RoZXIpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9jcmVhdGUoaW50IGZhbWlseSwgaW50IHR5cGUsIGludCBwcm90b2NvbCwgaW50IGtlcm4pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9wb3N0X2NyZWF0ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmFtaWx5LCBpbnQgdHlwZSwKKwkJCQkgIGludCBwcm90b2NvbCwgaW50IGtlcm4pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9iaW5kKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKKwkJCSAgIGludCBhZGRybGVuKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsCisJCQkgICAgICBpbnQgYWRkcmxlbikKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2FjY2VwdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2V0ICpuZXdzb2NrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc29ja2V0X3Bvc3RfYWNjZXB0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgaW50IHNpemUpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9yZWN2bXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKKwkJCSAgICAgIGludCBzaXplLCBpbnQgZmxhZ3MpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9nZXRzb2NrbmFtZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0cGVlcm5hbWUoc3RydWN0IHNvY2tldCAqc29jaykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2dldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X3NodXRkb3duKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBob3cpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NvY2tldF9zb2NrX3Jjdl9za2Ioc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9zb2NrZXRfZ2V0cGVlcnNlY19zdHJlYW0oc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkJY2hhciBfX3VzZXIgKm9wdHZhbCwKKwkJCQkJaW50IF9fdXNlciAqb3B0bGVuLCB1bnNpZ25lZCBsZW4pCit7CisJcmV0dXJuIC1FTk9QUk9UT09QVDsKK30KKworc3RhdGljIGludCBjYXBfc29ja2V0X2dldHBlZXJzZWNfZGdyYW0oc3RydWN0IHNvY2tldCAqc29jaywKKwkJCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyICpzZWNpZCkKK3sKKwlyZXR1cm4gLUVOT1BST1RPT1BUOworfQorCitzdGF0aWMgaW50IGNhcF9za19hbGxvY19zZWN1cml0eShzdHJ1Y3Qgc29jayAqc2ssIGludCBmYW1pbHksIGdmcF90IHByaW9yaXR5KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfc2tfZnJlZV9zZWN1cml0eShzdHJ1Y3Qgc29jayAqc2spCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9za19jbG9uZV9zZWN1cml0eShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaykKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NrX2dldHNlY2lkKHN0cnVjdCBzb2NrICpzaywgdTMyICpzZWNpZCkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX3NvY2tfZ3JhZnQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2V0ICpwYXJlbnQpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2luZXRfY29ubl9yZXF1ZXN0KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfaW5ldF9jc2tfY2xvbmUoc3RydWN0IHNvY2sgKm5ld3NrLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcSkKK3sKK30KKworc3RhdGljIHZvaWQgY2FwX2luZXRfY29ubl9lc3RhYmxpc2hlZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCit7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9yZXFfY2xhc3NpZnlfZmxvdyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCisJCQkJICBzdHJ1Y3QgZmxvd2kgKmZsKQoreworfQorI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLICovCisKKyNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNCitzdGF0aWMgaW50IGNhcF94ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICoqY3R4cCwKKwkJCQkJICBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2Nsb25lX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKm9sZF9jdHgsCisJCQkJCSAgc3RydWN0IHhmcm1fc2VjX2N0eCAqKm5ld19jdHhwKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjYXBfeGZybV9wb2xpY3lfZnJlZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfYWxsb2Nfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngsCisJCQkJCSBzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgsCisJCQkJCSB1MzIgc2VjaWQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF94ZnJtX3N0YXRlX2ZyZWVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc3RhdGUgKngpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfZGVsZXRlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3N0YXRlICp4KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF94ZnJtX3BvbGljeV9sb29rdXAoc3RydWN0IHhmcm1fc2VjX2N0eCAqY3R4LCB1MzIgc2tfc2lkLCB1OCBkaXIpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3hmcm1fc3RhdGVfcG9sX2Zsb3dfbWF0Y2goc3RydWN0IHhmcm1fc3RhdGUgKngsCisJCQkJCSBzdHJ1Y3QgeGZybV9wb2xpY3kgKnhwLAorCQkJCQkgc3RydWN0IGZsb3dpICpmbCkKK3sKKwlyZXR1cm4gMTsKK30KKworc3RhdGljIGludCBjYXBfeGZybV9kZWNvZGVfc2Vzc2lvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmZsLCBpbnQgY2thbGwpCit7CisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCitzdGF0aWMgdm9pZCBjYXBfZF9pbnN0YW50aWF0ZShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUpCit7Cit9CisKK3N0YXRpYyBpbnQgY2FwX2dldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgY2hhciAqKnZhbHVlKQoreworCXJldHVybiAtRUlOVkFMOworfQorCitzdGF0aWMgaW50IGNhcF9zZXRwcm9jYXR0cihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGNoYXIgKm5hbWUsIHZvaWQgKnZhbHVlLAorCQkJICAgc2l6ZV90IHNpemUpCit7CisJcmV0dXJuIC1FSU5WQUw7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlY2lkX3RvX3NlY2N0eCh1MzIgc2VjaWQsIGNoYXIgKipzZWNkYXRhLCB1MzIgKnNlY2xlbikKK3sKKwlyZXR1cm4gLUVPUE5PVFNVUFA7Cit9CisKK3N0YXRpYyBpbnQgY2FwX3NlY2N0eF90b19zZWNpZChjb25zdCBjaGFyICpzZWNkYXRhLCB1MzIgc2VjbGVuLCB1MzIgKnNlY2lkKQoreworCXJldHVybiAtRU9QTk9UU1VQUDsKK30KKworc3RhdGljIHZvaWQgY2FwX3JlbGVhc2Vfc2VjY3R4KGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4pCit7Cit9CisKKyNpZmRlZiBDT05GSUdfS0VZUworc3RhdGljIGludCBjYXBfa2V5X2FsbG9jKHN0cnVjdCBrZXkgKmtleSwgc3RydWN0IHRhc2tfc3RydWN0ICpjdHgsCisJCQkgdW5zaWduZWQgbG9uZyBmbGFncykKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2FwX2tleV9mcmVlKHN0cnVjdCBrZXkgKmtleSkKK3sKK30KKworc3RhdGljIGludCBjYXBfa2V5X3Blcm1pc3Npb24oa2V5X3JlZl90IGtleV9yZWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY29udGV4dCwKKwkJCSAgICAgIGtleV9wZXJtX3QgcGVybSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfa2V5X2dldHNlY3VyaXR5KHN0cnVjdCBrZXkgKmtleSwgY2hhciAqKl9idWZmZXIpCit7CisJKl9idWZmZXIgPSBOVUxMOworCXJldHVybiAwOworfQorCisjZW5kaWYgLyogQ09ORklHX0tFWVMgKi8KKworI2lmZGVmIENPTkZJR19BVURJVAorc3RhdGljIGludCBjYXBfYXVkaXRfcnVsZV9pbml0KHUzMiBmaWVsZCwgdTMyIG9wLCBjaGFyICpydWxlc3RyLCB2b2lkICoqbHNtcnVsZSkKK3sKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjYXBfYXVkaXRfcnVsZV9rbm93bihzdHJ1Y3QgYXVkaXRfa3J1bGUgKmtydWxlKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGNhcF9hdWRpdF9ydWxlX21hdGNoKHUzMiBzZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKmxzbXJ1bGUsCisJCQkJc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGNhcF9hdWRpdF9ydWxlX2ZyZWUodm9pZCAqbHNtcnVsZSkKK3sKK30KKyNlbmRpZiAvKiBDT05GSUdfQVVESVQgKi8KKworc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZGVmYXVsdF9zZWN1cml0eV9vcHMgPSB7CisJLm5hbWUJPSAiZGVmYXVsdCIsCit9OworCisjZGVmaW5lIHNldF90b19jYXBfaWZfbnVsbChvcHMsIGZ1bmN0aW9uKQkJCQlcCisJZG8gewkJCQkJCQkJXAorCQlpZiAoIW9wcy0+ZnVuY3Rpb24pIHsJCQkJCVwKKwkJCW9wcy0+ZnVuY3Rpb24gPSBjYXBfIyNmdW5jdGlvbjsJCQlcCisJCQlwcl9kZWJ1ZygiSGFkIHRvIG92ZXJyaWRlIHRoZSAiICNmdW5jdGlvbglcCisJCQkJICIgc2VjdXJpdHkgb3BlcmF0aW9uIHdpdGggdGhlIGRlZmF1bHQuXG4iKTtcCisJCQl9CQkJCQkJXAorCX0gd2hpbGUgKDApCisKK3ZvaWQgc2VjdXJpdHlfZml4dXBfb3BzKHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpvcHMpCit7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcHRyYWNlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBjYXBnZXQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGNhcHNldF9jaGVjayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgY2Fwc2V0X3NldCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYWNjdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgY2FwYWJsZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgcXVvdGFjdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHF1b3RhX29uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzeXNjdGwpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHN5c2xvZyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2V0dGltZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdm1fZW5vdWdoX21lbW9yeSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYnBybV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYnBybV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2FwcGx5X2NyZWRzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX3Bvc3RfYXBwbHlfY3JlZHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGJwcm1fc2V0X3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX2NoZWNrX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBicHJtX3NlY3VyZWV4ZWMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9jb3B5X2RhdGEpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2tlcm5fbW91bnQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Nob3dfb3B0aW9ucyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2Jfc3RhdGZzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9tb3VudCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfY2hlY2tfc2IpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Vtb3VudCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfdW1vdW50X2Nsb3NlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl91bW91bnRfYnVzeSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2JfcG9zdF9yZW1vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9wb3N0X2FkZG1vdW50KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9waXZvdHJvb3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX3Bvc3RfcGl2b3Ryb290KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9zZXRfbW50X29wdHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNiX2Nsb25lX21udF9vcHRzKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzYl9wYXJzZV9vcHRzX3N0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2luaXRfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2NyZWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfbGluayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfdW5saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zeW1saW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9ta2Rpcik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcm1kaXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX21rbm9kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9yZW5hbWUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX3JlYWRsaW5rKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9mb2xsb3dfbGluayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfc2V0YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZGVsZXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9zZXR4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcG9zdF9zZXR4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0eGF0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2xpc3R4YXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfcmVtb3ZleGF0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX25lZWRfa2lsbHByaXYpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2tpbGxwcml2KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbm9kZV9nZXRzZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfc2V0c2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlub2RlX2xpc3RzZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5vZGVfZ2V0c2VjaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX2lvY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX21tYXApOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfbXByb3RlY3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGZpbGVfbG9jayk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9mY250bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgZmlsZV9zZXRfZm93bmVyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX3NlbmRfc2lnaW90YXNrKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBmaWxlX3JlY2VpdmUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGRlbnRyeV9vcGVuKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2NyZWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldHVpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19wb3N0X3NldHVpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRnaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0cGdpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRwZ2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX2dldHNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRncm91cHMpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfc2V0bmljZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRpb3ByaW8pOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfZ2V0aW9wcmlvKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3NldHJsaW1pdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19zZXRzY2hlZHVsZXIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2NoZWR1bGVyKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX21vdmVtZW1vcnkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfd2FpdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgdGFza19raWxsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3ByY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB0YXNrX3JlcGFyZW50X3RvX2luaXQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHRhc2tfdG9faW5vZGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGlwY19wZXJtaXNzaW9uKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpcGNfZ2V0c2VjaWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG1zZ19tc2dfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG1zZ19tc2dfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBtc2dfcXVldWVfZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2Fzc29jaWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ2N0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3NuZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3Jjdik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX2FsbG9jX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzaG1fZnJlZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX2Fzc29jaWF0ZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX3NobWN0bCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2htX3NobWF0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlbV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fYXNzb2NpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fc2VtY3RsKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzZW1fc2Vtb3ApOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIG5ldGxpbmtfc2VuZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgbmV0bGlua19yZWN2KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBkX2luc3RhbnRpYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBnZXRwcm9jYXR0cik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2V0cHJvY2F0dHIpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNlY2lkX3RvX3NlY2N0eCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2VjY3R4X3RvX3NlY2lkKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCByZWxlYXNlX3NlY2N0eCk7CisjaWZkZWYgQ09ORklHX1NFQ1VSSVRZX05FVFdPUksKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB1bml4X3N0cmVhbV9jb25uZWN0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB1bml4X21heV9zZW5kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfY3JlYXRlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9jcmVhdGUpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9iaW5kKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfY29ubmVjdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2xpc3Rlbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2FjY2VwdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3Bvc3RfYWNjZXB0KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfc2VuZG1zZyk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3JlY3Ztc2cpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRzb2NrbmFtZSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJuYW1lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfc2V0c29ja29wdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHNvY2tvcHQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNvY2tldF9zaHV0ZG93bik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X3NvY2tfcmN2X3NrYik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJzZWNfc3RyZWFtKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcnNlY19kZ3JhbSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc2tfYWxsb2Nfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNrX2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHNrX2Nsb25lX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBza19nZXRzZWNpZCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgc29ja19ncmFmdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgaW5ldF9jb25uX3JlcXVlc3QpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGluZXRfY3NrX2Nsb25lKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBpbmV0X2Nvbm5fZXN0YWJsaXNoZWQpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHJlcV9jbGFzc2lmeV9mbG93KTsKKyNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSyAqLworI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLX1hGUk0KKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfY2xvbmVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2ZyZWVfc2VjdXJpdHkpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIHhmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9hbGxvY19zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9mcmVlX3NlY3VyaXR5KTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2RlbGV0ZV9zZWN1cml0eSk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfbG9va3VwKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX3BvbF9mbG93X21hdGNoKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCB4ZnJtX2RlY29kZV9zZXNzaW9uKTsKKyNlbmRpZgkvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCisjaWZkZWYgQ09ORklHX0tFWVMKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBrZXlfYWxsb2MpOworCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGtleV9mcmVlKTsKKwlzZXRfdG9fY2FwX2lmX251bGwob3BzLCBrZXlfcGVybWlzc2lvbik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywga2V5X2dldHNlY3VyaXR5KTsKKyNlbmRpZgkvKiBDT05GSUdfS0VZUyAqLworI2lmZGVmIENPTkZJR19BVURJVAorCXNldF90b19jYXBfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfaW5pdCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9rbm93bik7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9tYXRjaCk7CisJc2V0X3RvX2NhcF9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9mcmVlKTsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY29tbW9uY2FwLmMgYi9zZWN1cml0eS9jb21tb25jYXAuYwppbmRleCA1ZWRhYmM3Li4wYjY1MzdhIDEwMDY0NAotLS0gYS9zZWN1cml0eS9jb21tb25jYXAuYworKysgYi9zZWN1cml0eS9jb21tb25jYXAuYwpAQCAtNjMsNyArNjMsOCBAQAogCXJldHVybiAwOwogfQogCi1pbnQgY2FwX3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCitpbnQgY2FwX3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCXVuc2lnbmVkIGludCBtb2RlKQogewogCS8qIERlcml2ZWQgZnJvbSBhcmNoL2kzODYva2VybmVsL3B0cmFjZS5jOnN5c19wdHJhY2UuICovCiAJaWYgKCFjYXBfaXNzdWJzZXQoY2hpbGQtPmNhcF9wZXJtaXR0ZWQsIHBhcmVudC0+Y2FwX3Blcm1pdHRlZCkgJiYKQEAgLTEwMywxMCArMTA0LDE2IEBACiAJcmV0dXJuIChjYXBfY2FwYWJsZShjdXJyZW50LCBDQVBfU0VUUENBUCkgIT0gMCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGNhcF9saW1pdF9wdHJhY2VkX3RhcmdldCh2b2lkKSB7IHJldHVybiAxOyB9CisKICNlbHNlIC8qIGllLiwgbmRlZiBDT05GSUdfU0VDVVJJVFlfRklMRV9DQVBBQklMSVRJRVMgKi8KIAogc3RhdGljIGlubGluZSBpbnQgY2FwX2Jsb2NrX3NldHBjYXAoc3RydWN0IHRhc2tfc3RydWN0ICp0KSB7IHJldHVybiAwOyB9CiBzdGF0aWMgaW5saW5lIGludCBjYXBfaW5oX2lzX2NhcHBlZCh2b2lkKSB7IHJldHVybiAxOyB9CitzdGF0aWMgaW5saW5lIGludCBjYXBfbGltaXRfcHRyYWNlZF90YXJnZXQodm9pZCkKK3sKKwlyZXR1cm4gIWNhcGFibGUoQ0FQX1NFVFBDQVApOworfQogCiAjZW5kaWYgLyogZGVmIENPTkZJR19TRUNVUklUWV9GSUxFX0NBUEFCSUxJVElFUyAqLwogCkBAIC0zNDIsOSArMzQ5LDEwIEBACiAJCQkJYnBybS0+ZV91aWQgPSBjdXJyZW50LT51aWQ7CiAJCQkJYnBybS0+ZV9naWQgPSBjdXJyZW50LT5naWQ7CiAJCQl9Ci0JCQlpZiAoIWNhcGFibGUgKENBUF9TRVRQQ0FQKSkgewotCQkJCW5ld19wZXJtaXR0ZWQgPSBjYXBfaW50ZXJzZWN0IChuZXdfcGVybWl0dGVkLAotCQkJCQkJCWN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOworCQkJaWYgKGNhcF9saW1pdF9wdHJhY2VkX3RhcmdldCgpKSB7CisJCQkJbmV3X3Blcm1pdHRlZCA9CisJCQkJCWNhcF9pbnRlcnNlY3QobmV3X3Blcm1pdHRlZCwKKwkJCQkJCSAgICAgIGN1cnJlbnQtPmNhcF9wZXJtaXR0ZWQpOwogCQkJfQogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jIGIvc2VjdXJpdHkvZGV2aWNlX2Nncm91cC5jCmluZGV4IDRlYTU4MzYuLmRkZDkyY2UgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYworKysgYi9zZWN1cml0eS9kZXZpY2VfY2dyb3VwLmMKQEAgLTQ5LDEwICs0OSwxNCBAQAogCXNwaW5sb2NrX3QgbG9jazsKIH07CiAKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRldl9jZ3JvdXAgKmNzc190b19kZXZjZ3JvdXAoc3RydWN0IGNncm91cF9zdWJzeXNfc3RhdGUgKnMpCit7CisJcmV0dXJuIGNvbnRhaW5lcl9vZihzLCBzdHJ1Y3QgZGV2X2Nncm91cCwgY3NzKTsKK30KKwogc3RhdGljIGlubGluZSBzdHJ1Y3QgZGV2X2Nncm91cCAqY2dyb3VwX3RvX2RldmNncm91cChzdHJ1Y3QgY2dyb3VwICpjZ3JvdXApCiB7Ci0JcmV0dXJuIGNvbnRhaW5lcl9vZihjZ3JvdXBfc3Vic3lzX3N0YXRlKGNncm91cCwgZGV2aWNlc19zdWJzeXNfaWQpLAotCQkJICAgIHN0cnVjdCBkZXZfY2dyb3VwLCBjc3MpOworCXJldHVybiBjc3NfdG9fZGV2Y2dyb3VwKGNncm91cF9zdWJzeXNfc3RhdGUoY2dyb3VwLCBkZXZpY2VzX3N1YnN5c19pZCkpOwogfQogCiBzdHJ1Y3QgY2dyb3VwX3N1YnN5cyBkZXZpY2VzX3N1YnN5czsKQEAgLTEwMiw3ICsxMDYsNyBAQAogc3RhdGljIGludCBkZXZfd2hpdGVsaXN0X2FkZChzdHJ1Y3QgZGV2X2Nncm91cCAqZGV2X2Nncm91cCwKIAkJCXN0cnVjdCBkZXZfd2hpdGVsaXN0X2l0ZW0gKndoKQogewotCXN0cnVjdCBkZXZfd2hpdGVsaXN0X2l0ZW0gKndoY29weTsKKwlzdHJ1Y3QgZGV2X3doaXRlbGlzdF9pdGVtICp3aGNvcHksICp3YWxrOwogCiAJd2hjb3B5ID0ga21hbGxvYyhzaXplb2YoKndoY29weSksIEdGUF9LRVJORUwpOwogCWlmICghd2hjb3B5KQpAQCAtMTEwLDcgKzExNCwyMSBAQAogCiAJbWVtY3B5KHdoY29weSwgd2gsIHNpemVvZigqd2hjb3B5KSk7CiAJc3Bpbl9sb2NrKCZkZXZfY2dyb3VwLT5sb2NrKTsKLQlsaXN0X2FkZF90YWlsKCZ3aGNvcHktPmxpc3QsICZkZXZfY2dyb3VwLT53aGl0ZWxpc3QpOworCWxpc3RfZm9yX2VhY2hfZW50cnkod2FsaywgJmRldl9jZ3JvdXAtPndoaXRlbGlzdCwgbGlzdCkgeworCQlpZiAod2Fsay0+dHlwZSAhPSB3aC0+dHlwZSkKKwkJCWNvbnRpbnVlOworCQlpZiAod2Fsay0+bWFqb3IgIT0gd2gtPm1ham9yKQorCQkJY29udGludWU7CisJCWlmICh3YWxrLT5taW5vciAhPSB3aC0+bWlub3IpCisJCQljb250aW51ZTsKKworCQl3YWxrLT5hY2Nlc3MgfD0gd2gtPmFjY2VzczsKKwkJa2ZyZWUod2hjb3B5KTsKKwkJd2hjb3B5ID0gTlVMTDsKKwl9CisKKwlpZiAod2hjb3B5ICE9IE5VTEwpCisJCWxpc3RfYWRkX3RhaWwoJndoY29weS0+bGlzdCwgJmRldl9jZ3JvdXAtPndoaXRlbGlzdCk7CiAJc3Bpbl91bmxvY2soJmRldl9jZ3JvdXAtPmxvY2spOwogCXJldHVybiAwOwogfQpAQCAtMjA0LDcgKzIyMiw3IEBACiAjZGVmaW5lIERFVkNHX0RFTlkgMgogI2RlZmluZSBERVZDR19MSVNUIDMKIAotI2RlZmluZSBNQUpNSU5MRU4gMTAKKyNkZWZpbmUgTUFKTUlOTEVOIDEzCiAjZGVmaW5lIEFDQ0xFTiA0CiAKIHN0YXRpYyB2b2lkIHNldF9hY2Nlc3MoY2hhciAqYWNjLCBzaG9ydCBhY2Nlc3MpCkBAIC0yMzYsNyArMjU0LDcgQEAKIAlpZiAobSA9PSB+MCkKIAkJc3ByaW50ZihzdHIsICIqIik7CiAJZWxzZQotCQlzbnByaW50ZihzdHIsIE1BSk1JTkxFTiwgIiVkIiwgbSk7CisJCXNucHJpbnRmKHN0ciwgTUFKTUlOTEVOLCAiJXUiLCBtKTsKIH0KIAogc3RhdGljIGludCBkZXZjZ3JvdXBfc2VxX3JlYWQoc3RydWN0IGNncm91cCAqY2dyb3VwLCBzdHJ1Y3QgY2Z0eXBlICpjZnQsCkBAIC0yODIsNyArMzAwLDcgQEAKIAkJCWNvbnRpbnVlOwogCQlpZiAod2hpdGVtLT5taW5vciAhPSB+MCAmJiB3aGl0ZW0tPm1pbm9yICE9IHJlZndoLT5taW5vcikKIAkJCWNvbnRpbnVlOwotCQlpZiAocmVmd2gtPmFjY2VzcyAmICh+KHdoaXRlbS0+YWNjZXNzIHwgQUNDX01BU0spKSkKKwkJaWYgKHJlZndoLT5hY2Nlc3MgJiAofndoaXRlbS0+YWNjZXNzKSkKIAkJCWNvbnRpbnVlOwogCQlyZXR1cm4gMTsKIAl9CkBAIC0zNjQsNiArMzgyLDggQEAKIAljYXNlICdhJzoKIAkJd2gudHlwZSA9IERFVl9BTEw7CiAJCXdoLmFjY2VzcyA9IEFDQ19NQVNLOworCQl3aC5tYWpvciA9IH4wOworCQl3aC5taW5vciA9IH4wOwogCQlnb3RvIGhhbmRsZTsKIAljYXNlICdiJzoKIAkJd2gudHlwZSA9IERFVl9CTE9DSzsKQEAgLTUwMiw3ICs1MjIsNiBAQAogCiBpbnQgZGV2Y2dyb3VwX2lub2RlX3Blcm1pc3Npb24oc3RydWN0IGlub2RlICppbm9kZSwgaW50IG1hc2spCiB7Ci0Jc3RydWN0IGNncm91cCAqY2dyb3VwOwogCXN0cnVjdCBkZXZfY2dyb3VwICpkZXZfY2dyb3VwOwogCXN0cnVjdCBkZXZfd2hpdGVsaXN0X2l0ZW0gKndoOwogCkBAIC01MTEsOCArNTMwLDggQEAKIAkJcmV0dXJuIDA7CiAJaWYgKCFTX0lTQkxLKGlub2RlLT5pX21vZGUpICYmICFTX0lTQ0hSKGlub2RlLT5pX21vZGUpKQogCQlyZXR1cm4gMDsKLQljZ3JvdXAgPSB0YXNrX2Nncm91cChjdXJyZW50LCBkZXZpY2VzX3N1YnN5cy5zdWJzeXNfaWQpOwotCWRldl9jZ3JvdXAgPSBjZ3JvdXBfdG9fZGV2Y2dyb3VwKGNncm91cCk7CisJZGV2X2Nncm91cCA9IGNzc190b19kZXZjZ3JvdXAodGFza19zdWJzeXNfc3RhdGUoY3VycmVudCwKKwkJCQlkZXZpY2VzX3N1YnN5c19pZCkpOwogCWlmICghZGV2X2Nncm91cCkKIAkJcmV0dXJuIDA7CiAKQEAgLTU0MywxMiArNTYyLDExIEBACiAKIGludCBkZXZjZ3JvdXBfaW5vZGVfbWtub2QoaW50IG1vZGUsIGRldl90IGRldikKIHsKLQlzdHJ1Y3QgY2dyb3VwICpjZ3JvdXA7CiAJc3RydWN0IGRldl9jZ3JvdXAgKmRldl9jZ3JvdXA7CiAJc3RydWN0IGRldl93aGl0ZWxpc3RfaXRlbSAqd2g7CiAKLQljZ3JvdXAgPSB0YXNrX2Nncm91cChjdXJyZW50LCBkZXZpY2VzX3N1YnN5cy5zdWJzeXNfaWQpOwotCWRldl9jZ3JvdXAgPSBjZ3JvdXBfdG9fZGV2Y2dyb3VwKGNncm91cCk7CisJZGV2X2Nncm91cCA9IGNzc190b19kZXZjZ3JvdXAodGFza19zdWJzeXNfc3RhdGUoY3VycmVudCwKKwkJCQlkZXZpY2VzX3N1YnN5c19pZCkpOwogCWlmICghZGV2X2Nncm91cCkKIAkJcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2R1bW15LmMgYi9zZWN1cml0eS9kdW1teS5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTBjNmMzLi4wMDAwMDAwCi0tLSBhL3NlY3VyaXR5L2R1bW15LmMKKysrIC9kZXYvbnVsbApAQCAtMSwxMjI5ICswLDAgQEAKLS8qCi0gKiBTdHViIGZ1bmN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgc2VjdXJpdHkgZnVuY3Rpb24gcG9pbnRlcnMgaW4gY2FzZSBubwotICogc2VjdXJpdHkgbW9kZWwgaXMgbG9hZGVkLgotICoKLSAqIENvcHlyaWdodCAoQykgMjAwMSBXaXJlWCBDb21tdW5pY2F0aW9ucywgSW5jIDxjaHJpc0B3aXJleC5jb20+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwMiAgR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVnQGtyb2FoLmNvbT4KLSAqIENvcHlyaWdodCAoQykgMjAwMSBOZXR3b3JrcyBBc3NvY2lhdGVzIFRlY2hub2xvZ3ksIEluYyA8c3NtYWxsZXlAbmFpLmNvbT4KLSAqCi0gKglUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICoJaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAqCXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0gKgkoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICovCi0KLSN1bmRlZiBERUJVRwotCi0jaW5jbHVkZSA8bGludXgvY2FwYWJpbGl0eS5oPgotI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgotI2luY2x1ZGUgPGxpbnV4L21tYW4uaD4KLSNpbmNsdWRlIDxsaW51eC9wYWdlbWFwLmg+Ci0jaW5jbHVkZSA8bGludXgvc3dhcC5oPgotI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2tidWZmLmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0bGluay5oPgotI2luY2x1ZGUgPG5ldC9zb2NrLmg+Ci0jaW5jbHVkZSA8bGludXgveGF0dHIuaD4KLSNpbmNsdWRlIDxsaW51eC9odWdldGxiLmg+Ci0jaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Ci0jaW5jbHVkZSA8bGludXgvZmlsZS5oPgotCi1zdGF0aWMgaW50IGR1bW15X3B0cmFjZSAoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfY2FwZ2V0IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwga2VybmVsX2NhcF90ICogZWZmZWN0aXZlLAotCQkJIGtlcm5lbF9jYXBfdCAqIGluaGVyaXRhYmxlLCBrZXJuZWxfY2FwX3QgKiBwZXJtaXR0ZWQpCi17Ci0JaWYgKHRhcmdldC0+ZXVpZCA9PSAwKSB7Ci0JCWNhcF9zZXRfZnVsbCgqcGVybWl0dGVkKTsKLQkJY2FwX3NldF9pbml0X2VmZigqZWZmZWN0aXZlKTsKLQl9IGVsc2UgewotCQljYXBfY2xlYXIoKnBlcm1pdHRlZCk7Ci0JCWNhcF9jbGVhcigqZWZmZWN0aXZlKTsKLQl9Ci0KLQljYXBfY2xlYXIoKmluaGVyaXRhYmxlKTsKLQotCWlmICh0YXJnZXQtPmZzdWlkICE9IDApIHsKLQkJKnBlcm1pdHRlZCA9IGNhcF9kcm9wX2ZzX3NldCgqcGVybWl0dGVkKTsKLQkJKmVmZmVjdGl2ZSA9IGNhcF9kcm9wX2ZzX3NldCgqZWZmZWN0aXZlKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfY2Fwc2V0X2NoZWNrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwKLQkJCSAgICAgICBrZXJuZWxfY2FwX3QgKiBlZmZlY3RpdmUsCi0JCQkgICAgICAga2VybmVsX2NhcF90ICogaW5oZXJpdGFibGUsCi0JCQkgICAgICAga2VybmVsX2NhcF90ICogcGVybWl0dGVkKQotewotCXJldHVybiAtRVBFUk07Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2NhcHNldF9zZXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LAotCQkJICAgICAga2VybmVsX2NhcF90ICogZWZmZWN0aXZlLAotCQkJICAgICAga2VybmVsX2NhcF90ICogaW5oZXJpdGFibGUsCi0JCQkgICAgICBrZXJuZWxfY2FwX3QgKiBwZXJtaXR0ZWQpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2FjY3QgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2NhcGFibGUgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBpbnQgY2FwKQotewotCWlmIChjYXBfcmFpc2VkICh0c2stPmNhcF9lZmZlY3RpdmUsIGNhcCkpCi0JCXJldHVybiAwOwotCXJldHVybiAtRVBFUk07Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc3lzY3RsIChjdGxfdGFibGUgKiB0YWJsZSwgaW50IG9wKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3F1b3RhY3RsIChpbnQgY21kcywgaW50IHR5cGUsIGludCBpZCwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9xdW90YV9vbiAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3N5c2xvZyAoaW50IHR5cGUpCi17Ci0JaWYgKCh0eXBlICE9IDMgJiYgdHlwZSAhPSAxMCkgJiYgY3VycmVudC0+ZXVpZCkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZXR0aW1lKHN0cnVjdCB0aW1lc3BlYyAqdHMsIHN0cnVjdCB0aW1lem9uZSAqdHopCi17Ci0JaWYgKCFjYXBhYmxlKENBUF9TWVNfVElNRSkpCi0JCXJldHVybiAtRVBFUk07Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdm1fZW5vdWdoX21lbW9yeShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgbG9uZyBwYWdlcykKLXsKLQlpbnQgY2FwX3N5c19hZG1pbiA9IDA7Ci0KLQlpZiAoZHVtbXlfY2FwYWJsZShjdXJyZW50LCBDQVBfU1lTX0FETUlOKSA9PSAwKQotCQljYXBfc3lzX2FkbWluID0gMTsKLQlyZXR1cm4gX192bV9lbm91Z2hfbWVtb3J5KG1tLCBwYWdlcywgY2FwX3N5c19hZG1pbik7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9hbGxvY19zZWN1cml0eSAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfYnBybV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfYnBybV9hcHBseV9jcmVkcyAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSwgaW50IHVuc2FmZSkKLXsKLQlpZiAoYnBybS0+ZV91aWQgIT0gY3VycmVudC0+dWlkIHx8IGJwcm0tPmVfZ2lkICE9IGN1cnJlbnQtPmdpZCkgewotCQlzZXRfZHVtcGFibGUoY3VycmVudC0+bW0sIHN1aWRfZHVtcGFibGUpOwotCi0JCWlmICgodW5zYWZlICYgfkxTTV9VTlNBRkVfUFRSQUNFX0NBUCkgJiYgIWNhcGFibGUoQ0FQX1NFVFVJRCkpIHsKLQkJCWJwcm0tPmVfdWlkID0gY3VycmVudC0+dWlkOwotCQkJYnBybS0+ZV9naWQgPSBjdXJyZW50LT5naWQ7Ci0JCX0KLQl9Ci0KLQljdXJyZW50LT5zdWlkID0gY3VycmVudC0+ZXVpZCA9IGN1cnJlbnQtPmZzdWlkID0gYnBybS0+ZV91aWQ7Ci0JY3VycmVudC0+c2dpZCA9IGN1cnJlbnQtPmVnaWQgPSBjdXJyZW50LT5mc2dpZCA9IGJwcm0tPmVfZ2lkOwotCi0JZHVtbXlfY2FwZ2V0KGN1cnJlbnQsICZjdXJyZW50LT5jYXBfZWZmZWN0aXZlLCAmY3VycmVudC0+Y2FwX2luaGVyaXRhYmxlLCAmY3VycmVudC0+Y2FwX3Blcm1pdHRlZCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2Jwcm1fcG9zdF9hcHBseV9jcmVkcyAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9zZXRfc2VjdXJpdHkgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfYnBybV9jaGVja19zZWN1cml0eSAoc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9icHJtX3NlY3VyZWV4ZWMgKHN0cnVjdCBsaW51eF9iaW5wcm0gKmJwcm0pCi17Ci0JLyogVGhlIG5ldyB1c2VybGFuZCB3aWxsIHNpbXBseSB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkCi0JICAgaW4gdGhlIEFUX1NFQ1VSRSBmaWVsZCB0byBkZWNpZGUgd2hldGhlciBzZWN1cmUgbW9kZQotCSAgIGlzIHJlcXVpcmVkLiAgSGVuY2UsIHRoaXMgbG9naWMgaXMgcmVxdWlyZWQgdG8gcHJlc2VydmUKLQkgICB0aGUgbGVnYWN5IGRlY2lzaW9uIGFsZ29yaXRobSB1c2VkIGJ5IHRoZSBvbGQgdXNlcmxhbmQuICovCi0JcmV0dXJuIChjdXJyZW50LT5ldWlkICE9IGN1cnJlbnQtPnVpZCB8fAotCQljdXJyZW50LT5lZ2lkICE9IGN1cnJlbnQtPmdpZCk7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfYWxsb2Nfc2VjdXJpdHkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2NvcHlfZGF0YSAoY2hhciAqb3JpZywgY2hhciAqY29weSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zYl9rZXJuX21vdW50IChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB2b2lkICpkYXRhKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3N0YXRmcyAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX21vdW50IChjaGFyICpkZXZfbmFtZSwgc3RydWN0IHBhdGggKnBhdGgsIGNoYXIgKnR5cGUsCi0JCQkgICB1bnNpZ25lZCBsb25nIGZsYWdzLCB2b2lkICpkYXRhKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX2NoZWNrX3NiIChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfdW1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl91bW91bnRfY2xvc2UgKHN0cnVjdCB2ZnNtb3VudCAqbW50KQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfdW1vdW50X2J1c3kgKHN0cnVjdCB2ZnNtb3VudCAqbW50KQotewotCXJldHVybjsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfcG9zdF9yZW1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgdW5zaWduZWQgbG9uZyBmbGFncywKLQkJCQkgICB2b2lkICpkYXRhKQotewotCXJldHVybjsKLX0KLQotCi1zdGF0aWMgdm9pZCBkdW1teV9zYl9wb3N0X2FkZG1vdW50IChzdHJ1Y3QgdmZzbW91bnQgKm1udCwgc3RydWN0IHBhdGggKnBhdGgpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3Bpdm90cm9vdCAoc3RydWN0IHBhdGggKm9sZF9wYXRoLCBzdHJ1Y3QgcGF0aCAqbmV3X3BhdGgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NiX3Bvc3RfcGl2b3Ryb290IChzdHJ1Y3QgcGF0aCAqb2xkX3BhdGgsIHN0cnVjdCBwYXRoICpuZXdfcGF0aCkKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfZ2V0X21udF9vcHRzKGNvbnN0IHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCi0JCQkJIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKLXsKLQlzZWN1cml0eV9pbml0X21udF9vcHRzKG9wdHMpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAotCQkJCSBzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCi17Ci0JaWYgKHVubGlrZWx5KG9wdHMtPm51bV9tbnRfb3B0cykpCi0JCXJldHVybiAtRU9QTk9UU1VQUDsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfc2JfY2xvbmVfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpvbGRzYiwKLQkJCQkgICAgc3RydWN0IHN1cGVyX2Jsb2NrICpuZXdzYikKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2JfcGFyc2Vfb3B0c19zdHIoY2hhciAqb3B0aW9ucywgc3RydWN0IHNlY3VyaXR5X21udF9vcHRzICpvcHRzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pbm9kZV9mcmVlX3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9pbml0X3NlY3VyaXR5IChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgaW5vZGUgKmRpciwKLQkJCQkgICAgICBjaGFyICoqbmFtZSwgdm9pZCAqKnZhbHVlLCBzaXplX3QgKmxlbikKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfY3JlYXRlIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkgICAgICAgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbGluayAoc3RydWN0IGRlbnRyeSAqb2xkX2RlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSwKLQkJCSAgICAgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV91bmxpbmsgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9zeW1saW5rIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkJY29uc3QgY2hhciAqbmFtZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9ta2RpciAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJICAgICAgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfcm1kaXIgKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9ta25vZCAoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LAotCQkJICAgICAgaW50IG1vZGUsIGRldl90IGRldikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9yZW5hbWUgKHN0cnVjdCBpbm9kZSAqb2xkX2lub2RlLAotCQkJICAgICAgIHN0cnVjdCBkZW50cnkgKm9sZF9kZW50cnksCi0JCQkgICAgICAgc3RydWN0IGlub2RlICpuZXdfaW5vZGUsCi0JCQkgICAgICAgc3RydWN0IGRlbnRyeSAqbmV3X2RlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9yZWFkbGluayAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2ZvbGxvd19saW5rIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksCi0JCQkJICAgIHN0cnVjdCBuYW1laWRhdGEgKm5hbWVpZGF0YSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9wZXJtaXNzaW9uIChzdHJ1Y3QgaW5vZGUgKmlub2RlLCBpbnQgbWFzaywgc3RydWN0IG5hbWVpZGF0YSAqbmQpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfc2V0YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBzdHJ1Y3QgaWF0dHIgKmlhdHRyKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2dldGF0dHIgKHN0cnVjdCB2ZnNtb3VudCAqbW50LCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2lub2RlX2RlbGV0ZSAoc3RydWN0IGlub2RlICppbm8pCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3NldHhhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUsCi0JCQkJIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwgaW50IGZsYWdzKQotewotCWlmICghc3RybmNtcChuYW1lLCBYQVRUUl9TRUNVUklUWV9QUkVGSVgsCi0JCSAgICAgc2l6ZW9mKFhBVFRSX1NFQ1VSSVRZX1BSRUZJWCkgLSAxKSAmJgotCSAgICAhY2FwYWJsZShDQVBfU1lTX0FETUlOKSkKLQkJcmV0dXJuIC1FUEVSTTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfaW5vZGVfcG9zdF9zZXR4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAotCQkJCSAgICAgICBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsCi0JCQkJICAgICAgIGludCBmbGFncykKLXsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9nZXR4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2xpc3R4YXR0ciAoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX3JlbW92ZXhhdHRyIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0IGNoYXIgKm5hbWUpCi17Ci0JaWYgKCFzdHJuY21wKG5hbWUsIFhBVFRSX1NFQ1VSSVRZX1BSRUZJWCwKLQkJICAgICBzaXplb2YoWEFUVFJfU0VDVVJJVFlfUFJFRklYKSAtIDEpICYmCi0JICAgICFjYXBhYmxlKENBUF9TWVNfQURNSU4pKQotCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX25lZWRfa2lsbHByaXYoc3RydWN0IGRlbnRyeSAqZGVudHJ5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2lub2RlX2tpbGxwcml2KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9nZXRzZWN1cml0eShjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCB2b2lkICoqYnVmZmVyLCBib29sIGFsbG9jKQotewotCXJldHVybiAtRU9QTk9UU1VQUDsKLX0KLQotc3RhdGljIGludCBkdW1teV9pbm9kZV9zZXRzZWN1cml0eShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCB2b2lkICp2YWx1ZSwgc2l6ZV90IHNpemUsIGludCBmbGFncykKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaW5vZGVfbGlzdHNlY3VyaXR5KHN0cnVjdCBpbm9kZSAqaW5vZGUsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmZlcl9zaXplKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pbm9kZV9nZXRzZWNpZChjb25zdCBzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1MzIgKnNlY2lkKQotewotCSpzZWNpZCA9IDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9wZXJtaXNzaW9uIChzdHJ1Y3QgZmlsZSAqZmlsZSwgaW50IG1hc2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9hbGxvY19zZWN1cml0eSAoc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X2ZpbGVfZnJlZV9zZWN1cml0eSAoc3RydWN0IGZpbGUgKmZpbGUpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfaW9jdGwgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY29tbWFuZCwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBhcmcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9tbWFwIChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyByZXFwcm90LAotCQkJICAgIHVuc2lnbmVkIGxvbmcgcHJvdCwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGZsYWdzLAotCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKLQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHJfb25seSkKLXsKLQlpZiAoKGFkZHIgPCBtbWFwX21pbl9hZGRyKSAmJiAhY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKLQkJcmV0dXJuIC1FQUNDRVM7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfZmlsZV9tcHJvdGVjdCAoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCi0JCQkJdW5zaWduZWQgbG9uZyByZXFwcm90LAotCQkJCXVuc2lnbmVkIGxvbmcgcHJvdCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX2xvY2sgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfZmNudGwgKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX3NldF9mb3duZXIgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2ZpbGVfc2VuZF9zaWdpb3Rhc2sgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAotCQkJCSAgICAgIHN0cnVjdCBmb3duX3N0cnVjdCAqZm93biwgaW50IHNpZykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9maWxlX3JlY2VpdmUgKHN0cnVjdCBmaWxlICpmaWxlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2RlbnRyeV9vcGVuIChzdHJ1Y3QgZmlsZSAqZmlsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2NyZWF0ZSAodW5zaWduZWQgbG9uZyBjbG9uZV9mbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfZnJlZV9zZWN1cml0eSAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldHVpZCAodWlkX3QgaWQwLCB1aWRfdCBpZDEsIHVpZF90IGlkMiwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfcG9zdF9zZXR1aWQgKHVpZF90IGlkMCwgdWlkX3QgaWQxLCB1aWRfdCBpZDIsIGludCBmbGFncykKLXsKLQlkdW1teV9jYXBnZXQoY3VycmVudCwgJmN1cnJlbnQtPmNhcF9lZmZlY3RpdmUsICZjdXJyZW50LT5jYXBfaW5oZXJpdGFibGUsICZjdXJyZW50LT5jYXBfcGVybWl0dGVkKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldGdpZCAoZ2lkX3QgaWQwLCBnaWRfdCBpZDEsIGdpZF90IGlkMiwgaW50IGZsYWdzKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0cGdpZCAoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBwaWRfdCBwZ2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfZ2V0cGdpZCAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfZ2V0c2lkIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfZ2V0c2VjaWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgdTMyICpzZWNpZCkKLXsKLQkqc2VjaWQgPSAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0Z3JvdXBzIChzdHJ1Y3QgZ3JvdXBfaW5mbyAqZ3JvdXBfaW5mbykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3NldG5pY2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IG5pY2UpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19zZXRpb3ByaW8gKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgaW50IGlvcHJpbykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2dldGlvcHJpbyAoc3RydWN0IHRhc2tfc3RydWN0ICpwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0cmxpbWl0ICh1bnNpZ25lZCBpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKm5ld19ybGltKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfc2V0c2NoZWR1bGVyIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsIGludCBwb2xpY3ksCi0JCQkJICAgIHN0cnVjdCBzY2hlZF9wYXJhbSAqbHApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfdGFza19nZXRzY2hlZHVsZXIgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX21vdmVtZW1vcnkgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX3dhaXQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV90YXNrX2tpbGwgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHNpZ2luZm8gKmluZm8sCi0JCQkgICAgaW50IHNpZywgdTMyIHNlY2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3Rhc2tfcHJjdGwgKGludCBvcHRpb24sIHVuc2lnbmVkIGxvbmcgYXJnMiwgdW5zaWduZWQgbG9uZyBhcmczLAotCQkJICAgICB1bnNpZ25lZCBsb25nIGFyZzQsIHVuc2lnbmVkIGxvbmcgYXJnNSwgbG9uZyAqcmNfcCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfdGFza19yZXBhcmVudF90b19pbml0IChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCi17Ci0JcC0+ZXVpZCA9IHAtPmZzdWlkID0gMDsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3Rhc2tfdG9faW5vZGUoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQoteyB9Ci0KLXN0YXRpYyBpbnQgZHVtbXlfaXBjX3Blcm1pc3Npb24gKHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwLCBzaG9ydCBmbGFnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9pcGNfZ2V0c2VjaWQoc3RydWN0IGtlcm5faXBjX3Blcm0gKmlwY3AsIHUzMiAqc2VjaWQpCi17Ci0JKnNlY2lkID0gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfbXNnX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3QgbXNnX21zZyAqbXNnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9tc2dfbXNnX2ZyZWVfc2VjdXJpdHkgKHN0cnVjdCBtc2dfbXNnICptc2cpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19xdWV1ZV9hbGxvY19zZWN1cml0eSAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9tc2dfcXVldWVfZnJlZV9zZWN1cml0eSAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9tc2dfcXVldWVfYXNzb2NpYXRlIChzdHJ1Y3QgbXNnX3F1ZXVlICptc3EsIAotCQkJCSAgICAgIGludCBtc3FmbGcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfbXNnX3F1ZXVlX21zZ2N0bCAoc3RydWN0IG1zZ19xdWV1ZSAqbXNxLCBpbnQgY21kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19xdWV1ZV9tc2dzbmQgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgc3RydWN0IG1zZ19tc2cgKm1zZywKLQkJCQkgICBpbnQgbXNnZmxnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X21zZ19xdWV1ZV9tc2dyY3YgKHN0cnVjdCBtc2dfcXVldWUgKm1zcSwgc3RydWN0IG1zZ19tc2cgKm1zZywKLQkJCQkgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhcmdldCwgbG9uZyB0eXBlLAotCQkJCSAgIGludCBtb2RlKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NobV9hbGxvY19zZWN1cml0eSAoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zaG1fZnJlZV9zZWN1cml0eSAoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9zaG1fYXNzb2NpYXRlIChzdHJ1Y3Qgc2htaWRfa2VybmVsICpzaHAsIGludCBzaG1mbGcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2htX3NobWN0bCAoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBpbnQgY21kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NobV9zaG1hdCAoc3RydWN0IHNobWlkX2tlcm5lbCAqc2hwLCBjaGFyIF9fdXNlciAqc2htYWRkciwKLQkJCSAgICBpbnQgc2htZmxnKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlbV9hbGxvY19zZWN1cml0eSAoc3RydWN0IHNlbV9hcnJheSAqc21hKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9zZW1fZnJlZV9zZWN1cml0eSAoc3RydWN0IHNlbV9hcnJheSAqc21hKQotewotCXJldHVybjsKLX0KLQotc3RhdGljIGludCBkdW1teV9zZW1fYXNzb2NpYXRlIChzdHJ1Y3Qgc2VtX2FycmF5ICpzbWEsIGludCBzZW1mbGcpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VtX3NlbWN0bCAoc3RydWN0IHNlbV9hcnJheSAqc21hLCBpbnQgY21kKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlbV9zZW1vcCAoc3RydWN0IHNlbV9hcnJheSAqc21hLCAKLQkJCSAgICBzdHJ1Y3Qgc2VtYnVmICpzb3BzLCB1bnNpZ25lZCBuc29wcywgaW50IGFsdGVyKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X25ldGxpbmtfc2VuZCAoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCU5FVExJTktfQ0Ioc2tiKS5lZmZfY2FwID0gY3VycmVudC0+Y2FwX2VmZmVjdGl2ZTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9uZXRsaW5rX3JlY3YgKHN0cnVjdCBza19idWZmICpza2IsIGludCBjYXApCi17Ci0JaWYgKCFjYXBfcmFpc2VkIChORVRMSU5LX0NCIChza2IpLmVmZl9jYXAsIGNhcCkpCi0JCXJldHVybiAtRVBFUk07Ci0JcmV0dXJuIDA7Ci19Ci0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SSwotc3RhdGljIGludCBkdW1teV91bml4X3N0cmVhbV9jb25uZWN0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLAotCQkJCSAgICAgIHN0cnVjdCBzb2NrZXQgKm90aGVyLAotCQkJCSAgICAgIHN0cnVjdCBzb2NrICpuZXdzaykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV91bml4X21heV9zZW5kIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLAotCQkJCXN0cnVjdCBzb2NrZXQgKm90aGVyKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9jcmVhdGUgKGludCBmYW1pbHksIGludCB0eXBlLAotCQkJCWludCBwcm90b2NvbCwgaW50IGtlcm4pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3Bvc3RfY3JlYXRlIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmFtaWx5LCBpbnQgdHlwZSwKLQkJCQkgICAgIGludCBwcm90b2NvbCwgaW50IGtlcm4pCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2JpbmQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkciAqYWRkcmVzcywKLQkJCSAgICAgIGludCBhZGRybGVuKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9jb25uZWN0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHJlc3MsCi0JCQkJIGludCBhZGRybGVuKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9saXN0ZW4gKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBiYWNrbG9nKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9hY2NlcHQgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3NvY2tldF9wb3N0X2FjY2VwdCAoc3RydWN0IHNvY2tldCAqc29jaywgCi0JCQkJICAgICAgc3RydWN0IHNvY2tldCAqbmV3c29jaykKLXsKLQlyZXR1cm47Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3NlbmRtc2cgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKLQkJCQkgaW50IHNpemUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X3JlY3Ztc2cgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywKLQkJCQkgaW50IHNpemUsIGludCBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfZ2V0c29ja25hbWUgKHN0cnVjdCBzb2NrZXQgKnNvY2spCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2dldHBlZXJuYW1lIChzdHJ1Y3Qgc29ja2V0ICpzb2NrKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9zZXRzb2Nrb3B0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9nZXRzb2Nrb3B0IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NvY2tldF9zaHV0ZG93biAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGhvdykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfc29ja19yY3Zfc2tiIChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc29ja2V0X2dldHBlZXJzZWNfc3RyZWFtKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGNoYXIgX191c2VyICpvcHR2YWwsCi0JCQkJCSAgaW50IF9fdXNlciAqb3B0bGVuLCB1bnNpZ25lZCBsZW4pCi17Ci0JcmV0dXJuIC1FTk9QUk9UT09QVDsKLX0KLQotc3RhdGljIGludCBkdW1teV9zb2NrZXRfZ2V0cGVlcnNlY19kZ3JhbShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKnNlY2lkKQotewotCXJldHVybiAtRU5PUFJPVE9PUFQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X3NrX2FsbG9jX3NlY3VyaXR5IChzdHJ1Y3Qgc29jayAqc2ssIGludCBmYW1pbHksIGdmcF90IHByaW9yaXR5KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfc2tfZnJlZV9zZWN1cml0eSAoc3RydWN0IHNvY2sgKnNrKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfc2tfY2xvbmVfc2VjdXJpdHkgKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2sgKm5ld3NrKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfc2tfZ2V0c2VjaWQoc3RydWN0IHNvY2sgKnNrLCB1MzIgKnNlY2lkKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfc29ja19ncmFmdChzdHJ1Y3Qgc29jayogc2ssIHN0cnVjdCBzb2NrZXQgKnBhcmVudCkKLXsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfaW5ldF9jb25uX3JlcXVlc3Qoc3RydWN0IHNvY2sgKnNrLAotCQkJc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfaW5ldF9jc2tfY2xvbmUoc3RydWN0IHNvY2sgKm5ld3NrLAotCQkJY29uc3Qgc3RydWN0IHJlcXVlc3Rfc29jayAqcmVxKQotewotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfaW5ldF9jb25uX2VzdGFibGlzaGVkKHN0cnVjdCBzb2NrICpzaywKLQkJCXN0cnVjdCBza19idWZmICpza2IpCi17Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBkdW1teV9yZXFfY2xhc3NpZnlfZmxvdyhjb25zdCBzdHJ1Y3QgcmVxdWVzdF9zb2NrICpyZXEsCi0JCQlzdHJ1Y3QgZmxvd2kgKmZsKQotewotfQotI2VuZGlmCS8qIENPTkZJR19TRUNVUklUWV9ORVRXT1JLICovCi0KLSNpZmRlZiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fcG9saWN5X2FsbG9jX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3NlY19jdHggKipjdHhwLAotCQkJCQkgICAgc3RydWN0IHhmcm1fdXNlcl9zZWNfY3R4ICpzZWNfY3R4KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBkdW1teV94ZnJtX3BvbGljeV9jbG9uZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpvbGRfY3R4LAotCQkJCQkgICBzdHJ1Y3QgeGZybV9zZWNfY3R4ICoqbmV3X2N0eHApCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkIGR1bW15X3hmcm1fcG9saWN5X2ZyZWVfc2VjdXJpdHkoc3RydWN0IHhmcm1fc2VjX2N0eCAqY3R4KQotewotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fcG9saWN5X2RlbGV0ZV9zZWN1cml0eShzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9zdGF0ZV9hbGxvY19zZWN1cml0eShzdHJ1Y3QgeGZybV9zdGF0ZSAqeCwKLQlzdHJ1Y3QgeGZybV91c2VyX3NlY19jdHggKnNlY19jdHgsIHUzMiBzZWNpZCkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgZHVtbXlfeGZybV9zdGF0ZV9mcmVlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3N0YXRlICp4KQotewotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fc3RhdGVfZGVsZXRlX3NlY3VyaXR5KHN0cnVjdCB4ZnJtX3N0YXRlICp4KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3hmcm1fcG9saWN5X2xvb2t1cChzdHJ1Y3QgeGZybV9zZWNfY3R4ICpjdHgsCi0JCQkJICAgIHUzMiBza19zaWQsIHU4IGRpcikKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBkdW1teV94ZnJtX3N0YXRlX3BvbF9mbG93X21hdGNoKHN0cnVjdCB4ZnJtX3N0YXRlICp4LAotCQkJCXN0cnVjdCB4ZnJtX3BvbGljeSAqeHAsIHN0cnVjdCBmbG93aSAqZmwpCi17Ci0JcmV0dXJuIDE7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfeGZybV9kZWNvZGVfc2Vzc2lvbihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmZsLCBpbnQgY2thbGwpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFlfTkVUV09SS19YRlJNICovCi1zdGF0aWMgaW50IGR1bW15X3JlZ2lzdGVyX3NlY3VyaXR5IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCXJldHVybiAtRUlOVkFMOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9kX2luc3RhbnRpYXRlIChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0cnVjdCBpbm9kZSAqaW5vZGUpCi17Ci0JcmV0dXJuOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2dldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgY2hhciAqKnZhbHVlKQotewotCXJldHVybiAtRUlOVkFMOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY2hhciAqbmFtZSwgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplKQotewotCXJldHVybiAtRUlOVkFMOwotfQotCi1zdGF0aWMgaW50IGR1bW15X3NlY2lkX3RvX3NlY2N0eCh1MzIgc2VjaWQsIGNoYXIgKipzZWNkYXRhLCB1MzIgKnNlY2xlbikKLXsKLQlyZXR1cm4gLUVPUE5PVFNVUFA7Ci19Ci0KLXN0YXRpYyBpbnQgZHVtbXlfc2VjY3R4X3RvX3NlY2lkKGNvbnN0IGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4sIHUzMiAqc2VjaWQpCi17Ci0JcmV0dXJuIC1FT1BOT1RTVVBQOwotfQotCi1zdGF0aWMgdm9pZCBkdW1teV9yZWxlYXNlX3NlY2N0eChjaGFyICpzZWNkYXRhLCB1MzIgc2VjbGVuKQotewotfQotCi0jaWZkZWYgQ09ORklHX0tFWVMKLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2tleV9hbGxvYyhzdHJ1Y3Qga2V5ICprZXksIHN0cnVjdCB0YXNrX3N0cnVjdCAqY3R4LAotCQkJCSAgdW5zaWduZWQgbG9uZyBmbGFncykKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIGR1bW15X2tleV9mcmVlKHN0cnVjdCBrZXkgKmtleSkKLXsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfa2V5X3Blcm1pc3Npb24oa2V5X3JlZl90IGtleV9yZWYsCi0JCQkJICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY29udGV4dCwKLQkJCQkgICAgICAga2V5X3Blcm1fdCBwZXJtKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IGR1bW15X2tleV9nZXRzZWN1cml0eShzdHJ1Y3Qga2V5ICprZXksIGNoYXIgKipfYnVmZmVyKQotewotCSpfYnVmZmVyID0gTlVMTDsKLQlyZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIENPTkZJR19LRVlTICovCi0KLSNpZmRlZiBDT05GSUdfQVVESVQKLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2F1ZGl0X3J1bGVfaW5pdCh1MzIgZmllbGQsIHUzMiBvcCwgY2hhciAqcnVsZXN0ciwKLQkJCQkJdm9pZCAqKmxzbXJ1bGUpCi17Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGR1bW15X2F1ZGl0X3J1bGVfa25vd24oc3RydWN0IGF1ZGl0X2tydWxlICprcnVsZSkKLXsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZHVtbXlfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUzMiBmaWVsZCwgdTMyIG9wLAotCQkJCQkgdm9pZCAqbHNtcnVsZSwKLQkJCQkJIHN0cnVjdCBhdWRpdF9jb250ZXh0ICphY3R4KQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZHVtbXlfYXVkaXRfcnVsZV9mcmVlKHZvaWQgKmxzbXJ1bGUpCi17IH0KLQotI2VuZGlmIC8qIENPTkZJR19BVURJVCAqLwotCi1zdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyBkdW1teV9zZWN1cml0eV9vcHMgPSB7Ci0JLm5hbWUgPSAiZHVtbXkiLAotfTsKLQotI2RlZmluZSBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGZ1bmN0aW9uKQkJCQlcCi0JZG8gewkJCQkJCQkJXAotCQlpZiAoIW9wcy0+ZnVuY3Rpb24pIHsJCQkJCVwKLQkJCW9wcy0+ZnVuY3Rpb24gPSBkdW1teV8jI2Z1bmN0aW9uOwkJXAotCQkJcHJfZGVidWcoIkhhZCB0byBvdmVycmlkZSB0aGUgIiAjZnVuY3Rpb24JXAotCQkJCSAiIHNlY3VyaXR5IG9wZXJhdGlvbiB3aXRoIHRoZSBkdW1teSBvbmUuXG4iKTtcCi0JCQl9CQkJCQkJXAotCX0gd2hpbGUgKDApCi0KLXZvaWQgc2VjdXJpdHlfZml4dXBfb3BzIChzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcHRyYWNlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGNhcGdldCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBjYXBzZXRfY2hlY2spOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgY2Fwc2V0X3NldCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhY2N0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGNhcGFibGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcXVvdGFjdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcXVvdGFfb24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc3lzY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHN5c2xvZyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZXR0aW1lKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHZtX2Vub3VnaF9tZW1vcnkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9hcHBseV9jcmVkcyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX3Bvc3RfYXBwbHlfY3JlZHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9zZXRfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYnBybV9jaGVja19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBicHJtX3NlY3VyZWV4ZWMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9jb3B5X2RhdGEpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2Jfa2Vybl9tb3VudCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9zdGF0ZnMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfbW91bnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfY2hlY2tfc2IpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfdW1vdW50KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3Vtb3VudF9jbG9zZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl91bW91bnRfYnVzeSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9wb3N0X3JlbW91bnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfcG9zdF9hZGRtb3VudCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9waXZvdHJvb3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfcG9zdF9waXZvdHJvb3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2JfZ2V0X21udF9vcHRzKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNiX3NldF9tbnRfb3B0cyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9jbG9uZV9tbnRfb3B0cyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzYl9wYXJzZV9vcHRzX3N0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2luaXRfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfY3JlYXRlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2xpbmspOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfdW5saW5rKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3N5bWxpbmspOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbWtkaXIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcm1kaXIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfbWtub2QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfcmVuYW1lKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3JlYWRsaW5rKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2ZvbGxvd19saW5rKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3Blcm1pc3Npb24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5vZGVfc2V0YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9nZXRhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2RlbGV0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9zZXR4YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9wb3N0X3NldHhhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2dldHhhdHRyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2xpc3R4YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9yZW1vdmV4YXR0cik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9uZWVkX2tpbGxwcml2KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2tpbGxwcml2KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2dldHNlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX3NldHNlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlub2RlX2xpc3RzZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBpbm9kZV9nZXRzZWNpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX3Blcm1pc3Npb24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9pb2N0bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX21tYXApOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9tcHJvdGVjdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX2xvY2spOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9mY250bCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX3NldF9mb3duZXIpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZmlsZV9zZW5kX3NpZ2lvdGFzayk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBmaWxlX3JlY2VpdmUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgZGVudHJ5X29wZW4pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19jcmVhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXR1aWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19wb3N0X3NldHVpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldGdpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3NldHBnaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19nZXRwZ2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2VjaWQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRncm91cHMpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19zZXRuaWNlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0aW9wcmlvKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZ2V0aW9wcmlvKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0cmxpbWl0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfc2V0c2NoZWR1bGVyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfZ2V0c2NoZWR1bGVyKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfbW92ZW1lbW9yeSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3dhaXQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19raWxsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHRhc2tfcHJjdGwpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgdGFza19yZXBhcmVudF90b19pbml0KTsKLSAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB0YXNrX3RvX2lub2RlKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlwY19wZXJtaXNzaW9uKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGlwY19nZXRzZWNpZCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfbXNnX2FsbG9jX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19tc2dfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX2Fzc29jaWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBtc2dfcXVldWVfbXNnY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIG1zZ19xdWV1ZV9tc2dzbmQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbXNnX3F1ZXVlX21zZ3Jjdik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaG1fYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2htX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2htX2Fzc29jaWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzaG1fc2htY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNobV9zaG1hdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZW1fYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VtX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VtX2Fzc29jaWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZW1fc2VtY3RsKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlbV9zZW1vcCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBuZXRsaW5rX3NlbmQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgbmV0bGlua19yZWN2KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHJlZ2lzdGVyX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRfaW5zdGFudGlhdGUpOwotIAlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGdldHByb2NhdHRyKTsKLSAJc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzZXRwcm9jYXR0cik7Ci0gCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc2VjaWRfdG9fc2VjY3R4KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNlY2N0eF90b19zZWNpZCk7Ci0gCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgcmVsZWFzZV9zZWNjdHgpOwotI2lmZGVmIENPTkZJR19TRUNVUklUWV9ORVRXT1JLCi0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB1bml4X3N0cmVhbV9jb25uZWN0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHVuaXhfbWF5X3NlbmQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2NyZWF0ZSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfcG9zdF9jcmVhdGUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2JpbmQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2Nvbm5lY3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2xpc3Rlbik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfYWNjZXB0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9wb3N0X2FjY2VwdCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfc2VuZG1zZyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfcmVjdm1zZyk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0c29ja25hbWUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgc29ja2V0X2dldHBlZXJuYW1lKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9zZXRzb2Nrb3B0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRzb2Nrb3B0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9zaHV0ZG93bik7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfc29ja19yY3Zfc2tiKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tldF9nZXRwZWVyc2VjX3N0cmVhbSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBzb2NrZXRfZ2V0cGVlcnNlY19kZ3JhbSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBza19hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBza19mcmVlX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNrX2Nsb25lX3NlY3VyaXR5KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNrX2dldHNlY2lkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHNvY2tfZ3JhZnQpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5ldF9jb25uX3JlcXVlc3QpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5ldF9jc2tfY2xvbmUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgaW5ldF9jb25uX2VzdGFibGlzaGVkKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHJlcV9jbGFzc2lmeV9mbG93KTsKLSAjZW5kaWYJLyogQ09ORklHX1NFQ1VSSVRZX05FVFdPUksgKi8KLSNpZmRlZiAgQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTQotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfYWxsb2Nfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfY2xvbmVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfZnJlZV9zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3BvbGljeV9kZWxldGVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9hbGxvY19zZWN1cml0eSk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZnJtX3N0YXRlX2ZyZWVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9zdGF0ZV9kZWxldGVfc2VjdXJpdHkpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9wb2xpY3lfbG9va3VwKTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhmcm1fc3RhdGVfcG9sX2Zsb3dfbWF0Y2gpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgeGZybV9kZWNvZGVfc2Vzc2lvbik7Ci0jZW5kaWYJLyogQ09ORklHX1NFQ1VSSVRZX05FVFdPUktfWEZSTSAqLwotI2lmZGVmIENPTkZJR19LRVlTCi0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBrZXlfYWxsb2MpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywga2V5X2ZyZWUpOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywga2V5X3Blcm1pc3Npb24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywga2V5X2dldHNlY3VyaXR5KTsKLSNlbmRpZgkvKiBDT05GSUdfS0VZUyAqLwotI2lmZGVmIENPTkZJR19BVURJVAotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9pbml0KTsKLQlzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGF1ZGl0X3J1bGVfa25vd24pOwotCXNldF90b19kdW1teV9pZl9udWxsKG9wcywgYXVkaXRfcnVsZV9tYXRjaCk7Ci0Jc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBhdWRpdF9ydWxlX2ZyZWUpOwotI2VuZGlmCi19Ci0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2tleXMvaW50ZXJuYWwuaCBiL3NlY3VyaXR5L2tleXMvaW50ZXJuYWwuaAppbmRleCA4YzA1NTg3Li5iMzlmNWMyIDEwMDY0NAotLS0gYS9zZWN1cml0eS9rZXlzL2ludGVybmFsLmgKKysrIGIvc2VjdXJpdHkva2V5cy9pbnRlcm5hbC5oCkBAIC03OCw3ICs3OCw2IEBACiAKIGV4dGVybiBzdHJ1Y3QgcmJfcm9vdCBrZXlfc2VyaWFsX3RyZWU7CiBleHRlcm4gc3BpbmxvY2tfdCBrZXlfc2VyaWFsX2xvY2s7Ci1leHRlcm4gc3RydWN0IHNlbWFwaG9yZSBrZXlfYWxsb2Nfc2VtOwogZXh0ZXJuIHN0cnVjdCBtdXRleCBrZXlfY29uc3RydWN0aW9uX211dGV4OwogZXh0ZXJuIHdhaXRfcXVldWVfaGVhZF90IHJlcXVlc3Rfa2V5X2NvbnN3cTsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvcm9vdF9wbHVnLmMgYi9zZWN1cml0eS9yb290X3BsdWcuYwppbmRleCBhNDFjZjQyLi5iZTBlYmVjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9yb290X3BsdWcuYworKysgYi9zZWN1cml0eS9yb290X3BsdWcuYwpAQCAtMjgsOSArMjgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L3VzYi5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CiAKLS8qIGZsYWcgdG8ga2VlcCB0cmFjayBvZiBob3cgd2Ugd2VyZSByZWdpc3RlcmVkICovCi1zdGF0aWMgaW50IHNlY29uZGFyeTsKLQogLyogZGVmYXVsdCBpcyBhIGdlbmVyaWMgdHlwZSBvZiB1c2IgdG8gc2VyaWFsIGNvbnZlcnRlciAqLwogc3RhdGljIGludCB2ZW5kb3JfaWQgPSAweDA1NTc7CiBzdGF0aWMgaW50IHByb2R1Y3RfaWQgPSAweDIwMDg7CkBAIC05NywxMyArOTQsNyBAQAogCWlmIChyZWdpc3Rlcl9zZWN1cml0eSAoJnJvb3RwbHVnX3NlY3VyaXR5X29wcykpIHsKIAkJcHJpbnRrIChLRVJOX0lORk8gCiAJCQkiRmFpbHVyZSByZWdpc3RlcmluZyBSb290IFBsdWcgbW9kdWxlIHdpdGggdGhlIGtlcm5lbFxuIik7Ci0JCS8qIHRyeSByZWdpc3RlcmluZyB3aXRoIHByaW1hcnkgbW9kdWxlICovCi0JCWlmIChtb2RfcmVnX3NlY3VyaXR5IChNWV9OQU1FLCAmcm9vdHBsdWdfc2VjdXJpdHlfb3BzKSkgewotCQkJcHJpbnRrIChLRVJOX0lORk8gIkZhaWx1cmUgcmVnaXN0ZXJpbmcgUm9vdCBQbHVnICIKLQkJCQkiIG1vZHVsZSB3aXRoIHByaW1hcnkgc2VjdXJpdHkgbW9kdWxlLlxuIik7CiAJCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlzZWNvbmRhcnkgPSAxOwogCX0KIAlwcmludGsgKEtFUk5fSU5GTyAiUm9vdCBQbHVnIG1vZHVsZSBpbml0aWFsaXplZCwgIgogCQkidmVuZG9yX2lkID0gJTQuNHgsIHByb2R1Y3QgaWQgPSAlNC40eFxuIiwgdmVuZG9yX2lkLCBwcm9kdWN0X2lkKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlY3VyaXR5LmMgYi9zZWN1cml0eS9zZWN1cml0eS5jCmluZGV4IDU5ODM4YTkuLjU5ZjIzYjUgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwpAQCAtMjAsOCArMjAsOCBAQAogLyogQm9vdC10aW1lIExTTSB1c2VyIGNob2ljZSAqLwogc3RhdGljIF9faW5pdGRhdGEgY2hhciBjaG9zZW5fbHNtW1NFQ1VSSVRZX05BTUVfTUFYICsgMV07CiAKLS8qIHRoaW5ncyB0aGF0IGxpdmUgaW4gZHVtbXkuYyAqLwotZXh0ZXJuIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zIGR1bW15X3NlY3VyaXR5X29wczsKKy8qIHRoaW5ncyB0aGF0IGxpdmUgaW4gY2FwYWJpbGl0eS5jICovCitleHRlcm4gc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgZGVmYXVsdF9zZWN1cml0eV9vcHM7CiBleHRlcm4gdm9pZCBzZWN1cml0eV9maXh1cF9vcHMoc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcyk7CiAKIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpzZWN1cml0eV9vcHM7CS8qIEluaXRpYWxpemVkIHRvIE5VTEwgKi8KQEAgLTU3LDEzICs1Nyw4IEBACiB7CiAJcHJpbnRrKEtFUk5fSU5GTyAiU2VjdXJpdHkgRnJhbWV3b3JrIGluaXRpYWxpemVkXG4iKTsKIAotCWlmICh2ZXJpZnkoJmR1bW15X3NlY3VyaXR5X29wcykpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICIlcyBjb3VsZCBub3QgdmVyaWZ5ICIKLQkJICAgICAgICJkdW1teV9zZWN1cml0eV9vcHMgc3RydWN0dXJlLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTzsKLQl9Ci0KLQlzZWN1cml0eV9vcHMgPSAmZHVtbXlfc2VjdXJpdHlfb3BzOworCXNlY3VyaXR5X2ZpeHVwX29wcygmZGVmYXVsdF9zZWN1cml0eV9vcHMpOworCXNlY3VyaXR5X29wcyA9ICZkZWZhdWx0X3NlY3VyaXR5X29wczsKIAlkb19zZWN1cml0eV9pbml0Y2FsbHMoKTsKIAogCXJldHVybiAwOwpAQCAtMTIyLDcgKzExNyw3IEBACiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChzZWN1cml0eV9vcHMgIT0gJmR1bW15X3NlY3VyaXR5X29wcykKKwlpZiAoc2VjdXJpdHlfb3BzICE9ICZkZWZhdWx0X3NlY3VyaXR5X29wcykKIAkJcmV0dXJuIC1FQUdBSU47CiAKIAlzZWN1cml0eV9vcHMgPSBvcHM7CkBAIC0xMzAsNDAgKzEyNSwxMiBAQAogCXJldHVybiAwOwogfQogCi0vKioKLSAqIG1vZF9yZWdfc2VjdXJpdHkgLSBhbGxvd3Mgc2VjdXJpdHkgbW9kdWxlcyB0byBiZSAic3RhY2tlZCIKLSAqIEBuYW1lOiBhIHBvaW50ZXIgdG8gYSBzdHJpbmcgd2l0aCB0aGUgbmFtZSBvZiB0aGUgc2VjdXJpdHlfb3B0aW9ucyB0byBiZSByZWdpc3RlcmVkCi0gKiBAb3BzOiBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBzZWN1cml0eV9vcHRpb25zIHRoYXQgaXMgdG8gYmUgcmVnaXN0ZXJlZAotICoKLSAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHNlY3VyaXR5IG1vZHVsZXMgdG8gYmUgc3RhY2tlZCBpZiB0aGUgY3VycmVudGx5IGxvYWRlZAotICogc2VjdXJpdHkgbW9kdWxlIGFsbG93cyB0aGlzIHRvIGhhcHBlbi4gIEl0IHBhc3NlcyB0aGUgQG5hbWUgYW5kIEBvcHMgdG8gdGhlCi0gKiByZWdpc3Rlcl9zZWN1cml0eSBmdW5jdGlvbiBvZiB0aGUgY3VycmVudGx5IGxvYWRlZCBzZWN1cml0eSBtb2R1bGUuCi0gKgotICogVGhlIHJldHVybiB2YWx1ZSBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgbG9hZGVkIHNlY3VyaXR5IG1vZHVsZSwgd2l0aCAwIGFzCi0gKiBzdWNjZXNzLgotICovCi1pbnQgbW9kX3JlZ19zZWN1cml0eShjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCWlmICh2ZXJpZnkob3BzKSkgewotCQlwcmludGsoS0VSTl9JTkZPICIlcyBjb3VsZCBub3QgdmVyaWZ5ICIKLQkJICAgICAgICJzZWN1cml0eSBvcGVyYXRpb25zLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlpZiAob3BzID09IHNlY3VyaXR5X29wcykgewotCQlwcmludGsoS0VSTl9JTkZPICIlcyBzZWN1cml0eSBvcGVyYXRpb25zICIKLQkJICAgICAgICJhbHJlYWR5IHJlZ2lzdGVyZWQuXG4iLCBfX2Z1bmNfXyk7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCXJldHVybiBzZWN1cml0eV9vcHMtPnJlZ2lzdGVyX3NlY3VyaXR5KG5hbWUsIG9wcyk7Ci19Ci0KIC8qIFNlY3VyaXR5IG9wZXJhdGlvbnMgKi8KIAotaW50IHNlY3VyaXR5X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK2ludCBzZWN1cml0eV9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCSAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5wdHJhY2UocGFyZW50LCBjaGlsZCk7CisJcmV0dXJuIHNlY3VyaXR5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogfQogCiBpbnQgc2VjdXJpdHlfY2FwZ2V0KHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFyZ2V0LApAQCAtMjkxLDYgKzI1OCwxMSBAQAogCXJldHVybiBzZWN1cml0eV9vcHMtPnNiX2tlcm5fbW91bnQoc2IsIGRhdGEpOwogfQogCitpbnQgc2VjdXJpdHlfc2Jfc2hvd19vcHRpb25zKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zYl9zaG93X29wdGlvbnMobSwgc2IpOworfQorCiBpbnQgc2VjdXJpdHlfc2Jfc3RhdGZzKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKIHsKIAlyZXR1cm4gc2VjdXJpdHlfb3BzLT5zYl9zdGF0ZnMoZGVudHJ5KTsKQEAgLTM0MiwxMiArMzE0LDYgQEAKIAlzZWN1cml0eV9vcHMtPnNiX3Bvc3RfcGl2b3Ryb290KG9sZF9wYXRoLCBuZXdfcGF0aCk7CiB9CiAKLWludCBzZWN1cml0eV9zYl9nZXRfbW50X29wdHMoY29uc3Qgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwKLQkJCQlzdHJ1Y3Qgc2VjdXJpdHlfbW50X29wdHMgKm9wdHMpCi17Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+c2JfZ2V0X21udF9vcHRzKHNiLCBvcHRzKTsKLX0KLQogaW50IHNlY3VyaXR5X3NiX3NldF9tbnRfb3B0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogCQkJCXN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKIHsKQEAgLTg5NCw3ICs4NjAsNyBAQAogCiB2b2lkIHNlY3VyaXR5X3JlbGVhc2Vfc2VjY3R4KGNoYXIgKnNlY2RhdGEsIHUzMiBzZWNsZW4pCiB7Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+cmVsZWFzZV9zZWNjdHgoc2VjZGF0YSwgc2VjbGVuKTsKKwlzZWN1cml0eV9vcHMtPnJlbGVhc2Vfc2VjY3R4KHNlY2RhdGEsIHNlY2xlbik7CiB9CiBFWFBPUlRfU1lNQk9MKHNlY3VyaXR5X3JlbGVhc2Vfc2VjY3R4KTsKIApAQCAtMTAxMSwxMiArOTc3LDEyIEBACiAKIHZvaWQgc2VjdXJpdHlfc2tfZnJlZShzdHJ1Y3Qgc29jayAqc2spCiB7Ci0JcmV0dXJuIHNlY3VyaXR5X29wcy0+c2tfZnJlZV9zZWN1cml0eShzayk7CisJc2VjdXJpdHlfb3BzLT5za19mcmVlX3NlY3VyaXR5KHNrKTsKIH0KIAogdm9pZCBzZWN1cml0eV9za19jbG9uZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpuZXdzaykKIHsKLQlyZXR1cm4gc2VjdXJpdHlfb3BzLT5za19jbG9uZV9zZWN1cml0eShzaywgbmV3c2spOworCXNlY3VyaXR5X29wcy0+c2tfY2xvbmVfc2VjdXJpdHkoc2ssIG5ld3NrKTsKIH0KIAogdm9pZCBzZWN1cml0eV9za19jbGFzc2lmeV9mbG93KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpICpmbCkKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYyBiL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYwppbmRleCAxYzg2NGMwLi42M2YxMzFmIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCkBAIC05LDcgKzksOCBAQAogICoJICAgICAgSmFtZXMgTW9ycmlzIDxqbW9ycmlzQHJlZGhhdC5jb20+CiAgKgogICogIENvcHlyaWdodCAoQykgMjAwMSwyMDAyIE5ldHdvcmtzIEFzc29jaWF0ZXMgVGVjaG5vbG9neSwgSW5jLgotICogIENvcHlyaWdodCAoQykgMjAwMyBSZWQgSGF0LCBJbmMuLCBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAwOCBSZWQgSGF0LCBJbmMuLCBKYW1lcyBNb3JyaXMgPGptb3JyaXNAcmVkaGF0LmNvbT4KKyAqCQkJCQkgICBFcmljIFBhcmlzIDxlcGFyaXNAcmVkaGF0LmNvbT4KICAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNSBUcnVzdGVkIENvbXB1dGVyIFNvbHV0aW9ucywgSW5jLgogICoJCQkgICAgPGRnb2VkZGVsQHRydXN0ZWRjcy5jb20+CiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEhld2xldHQtUGFja2FyZCBEZXZlbG9wbWVudCBDb21wYW55LCBMLlAuCkBAIC00Miw5ICs0Myw3IEBACiAjaW5jbHVkZSA8bGludXgvZmR0YWJsZS5oPgogI2luY2x1ZGUgPGxpbnV4L25hbWVpLmg+CiAjaW5jbHVkZSA8bGludXgvbW91bnQuaD4KLSNpbmNsdWRlIDxsaW51eC9leHQyX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPgotI2luY2x1ZGUgPGxpbnV4L2tkLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZmlsdGVyX2lwdjQuaD4KICNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfaXB2Ni5oPgogI2luY2x1ZGUgPGxpbnV4L3R0eS5oPgpAQCAtNTMsNyArNTIsNyBAQAogI2luY2x1ZGUgPG5ldC90Y3AuaD4JCS8qIHN0cnVjdCBvcl9jYWxsYWJsZSB1c2VkIGluIHNvY2tfcmN2X3NrYiAqLwogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8bmV0L25ldGxhYmVsLmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAjaW5jbHVkZSA8YXNtL2lvY3Rscy5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMuaD4KICNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KQEAgLTEwNCw3ICsxMDMsOSBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBlbmZvcmNpbmdfc2V0dXAoY2hhciAqc3RyKQogewotCXNlbGludXhfZW5mb3JjaW5nID0gc2ltcGxlX3N0cnRvbChzdHIsIE5VTEwsIDApOworCXVuc2lnbmVkIGxvbmcgZW5mb3JjaW5nOworCWlmICghc3RyaWN0X3N0cnRvdWwoc3RyLCAwLCAmZW5mb3JjaW5nKSkKKwkJc2VsaW51eF9lbmZvcmNpbmcgPSBlbmZvcmNpbmcgPyAxIDogMDsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImVuZm9yY2luZz0iLCBlbmZvcmNpbmdfc2V0dXApOwpAQCAtMTE1LDcgKzExNiw5IEBACiAKIHN0YXRpYyBpbnQgX19pbml0IHNlbGludXhfZW5hYmxlZF9zZXR1cChjaGFyICpzdHIpCiB7Ci0Jc2VsaW51eF9lbmFibGVkID0gc2ltcGxlX3N0cnRvbChzdHIsIE5VTEwsIDApOworCXVuc2lnbmVkIGxvbmcgZW5hYmxlZDsKKwlpZiAoIXN0cmljdF9zdHJ0b3VsKHN0ciwgMCwgJmVuYWJsZWQpKQorCQlzZWxpbnV4X2VuYWJsZWQgPSBlbmFibGVkID8gMSA6IDA7CiAJcmV0dXJuIDE7CiB9CiBfX3NldHVwKCJzZWxpbnV4PSIsIHNlbGludXhfZW5hYmxlZF9zZXR1cCk7CkBAIC0xMjMsMTMgKzEyNiwxMSBAQAogaW50IHNlbGludXhfZW5hYmxlZCA9IDE7CiAjZW5kaWYKIAotLyogT3JpZ2luYWwgKGR1bW15KSBzZWN1cml0eSBtb2R1bGUuICovCi1zdGF0aWMgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9yaWdpbmFsX29wczsKIAotLyogTWluaW1hbCBzdXBwb3J0IGZvciBhIHNlY29uZGFyeSBzZWN1cml0eSBtb2R1bGUsCi0gICBqdXN0IHRvIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGR1bW15IG9yIGNhcGFiaWxpdHkgbW9kdWxlcy4KLSAgIFRoZSBvd2xzbSBtb2R1bGUgY2FuIGFsdGVybmF0aXZlbHkgYmUgdXNlZCBhcyBhIHNlY29uZGFyeQotICAgbW9kdWxlIGFzIGxvbmcgYXMgQ09ORklHX09XTFNNX0ZEIGlzIG5vdCBlbmFibGVkLiAqLworLyoKKyAqIE1pbmltYWwgc3VwcG9ydCBmb3IgYSBzZWNvbmRhcnkgc2VjdXJpdHkgbW9kdWxlLAorICoganVzdCB0byBhbGxvdyB0aGUgdXNlIG9mIHRoZSBjYXBhYmlsaXR5IG1vZHVsZS4KKyAqLwogc3RhdGljIHN0cnVjdCBzZWN1cml0eV9vcGVyYXRpb25zICpzZWNvbmRhcnlfb3BzOwogCiAvKiBMaXN0cyBvZiBpbm9kZSBhbmQgc3VwZXJibG9jayBzZWN1cml0eSBzdHJ1Y3R1cmVzIGluaXRpYWxpemVkCkBAIC01OTQsNyArNTk1LDcgQEAKIAkgKi8KIAlpZiAoc2JzZWMtPmluaXRpYWxpemVkICYmIChzYi0+c190eXBlLT5mc19mbGFncyAmIEZTX0JJTkFSWV9NT1VOVERBVEEpCiAJICAgICYmIChudW1fb3B0cyA9PSAwKSkKLQkgICAgICAgIGdvdG8gb3V0OworCQlnb3RvIG91dDsKIAogCS8qCiAJICogcGFyc2UgdGhlIG1vdW50IG9wdGlvbnMsIGNoZWNrIGlmIHRoZXkgYXJlIHZhbGlkIHNpZHMuCkBAIC05NTYsNiArOTU3LDU3IEBACiAJcmV0dXJuIHJjOwogfQogCit2b2lkIHNlbGludXhfd3JpdGVfb3B0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzZWN1cml0eV9tbnRfb3B0cyAqb3B0cykKK3sKKwlpbnQgaTsKKwljaGFyICpwcmVmaXg7CisKKwlmb3IgKGkgPSAwOyBpIDwgb3B0cy0+bnVtX21udF9vcHRzOyBpKyspIHsKKwkJY2hhciAqaGFzX2NvbW1hID0gc3RyY2hyKG9wdHMtPm1udF9vcHRzW2ldLCAnLCcpOworCisJCXN3aXRjaCAob3B0cy0+bW50X29wdHNfZmxhZ3NbaV0pIHsKKwkJY2FzZSBDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IENPTlRFWFRfU1RSOworCQkJYnJlYWs7CisJCWNhc2UgRlNDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IEZTQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJY2FzZSBST09UQ09OVEVYVF9NTlQ6CisJCQlwcmVmaXggPSBST09UQ09OVEVYVF9TVFI7CisJCQlicmVhazsKKwkJY2FzZSBERUZDT05URVhUX01OVDoKKwkJCXByZWZpeCA9IERFRkNPTlRFWFRfU1RSOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlCVUcoKTsKKwkJfTsKKwkJLyogd2UgbmVlZCBhIGNvbW1hIGJlZm9yZSBlYWNoIG9wdGlvbiAqLworCQlzZXFfcHV0YyhtLCAnLCcpOworCQlzZXFfcHV0cyhtLCBwcmVmaXgpOworCQlpZiAoaGFzX2NvbW1hKQorCQkJc2VxX3B1dGMobSwgJ1wiJyk7CisJCXNlcV9wdXRzKG0sIG9wdHMtPm1udF9vcHRzW2ldKTsKKwkJaWYgKGhhc19jb21tYSkKKwkJCXNlcV9wdXRjKG0sICdcIicpOworCX0KK30KKworc3RhdGljIGludCBzZWxpbnV4X3NiX3Nob3dfb3B0aW9ucyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCit7CisJc3RydWN0IHNlY3VyaXR5X21udF9vcHRzIG9wdHM7CisJaW50IHJjOworCisJcmMgPSBzZWxpbnV4X2dldF9tbnRfb3B0cyhzYiwgJm9wdHMpOworCWlmIChyYykKKwkJcmV0dXJuIHJjOworCisJc2VsaW51eF93cml0ZV9vcHRzKG0sICZvcHRzKTsKKworCXNlY3VyaXR5X2ZyZWVfbW50X29wdHMoJm9wdHMpOworCisJcmV0dXJuIHJjOworfQorCiBzdGF0aWMgaW5saW5lIHUxNiBpbm9kZV9tb2RlX3RvX3NlY3VyaXR5X2NsYXNzKHVtb2RlX3QgbW9kZSkKIHsKIAlzd2l0Y2ggKG1vZGUgJiBTX0lGTVQpIHsKQEAgLTE2ODIsMTQgKzE3MzQsMjMgQEAKIAogLyogSG9vayBmdW5jdGlvbnMgYmVnaW4gaGVyZS4gKi8KIAotc3RhdGljIGludCBzZWxpbnV4X3B0cmFjZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBhcmVudCwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKK3N0YXRpYyBpbnQgc2VsaW51eF9wdHJhY2Uoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQsCisJCQkgIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQsCisJCQkgIHVuc2lnbmVkIGludCBtb2RlKQogewogCWludCByYzsKIAotCXJjID0gc2Vjb25kYXJ5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQpOworCXJjID0gc2Vjb25kYXJ5X29wcy0+cHRyYWNlKHBhcmVudCwgY2hpbGQsIG1vZGUpOwogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCisJaWYgKG1vZGUgPT0gUFRSQUNFX01PREVfUkVBRCkgeworCQlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBwYXJlbnQtPnNlY3VyaXR5OworCQlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKmNzZWMgPSBjaGlsZC0+c2VjdXJpdHk7CisJCXJldHVybiBhdmNfaGFzX3Blcm0odHNlYy0+c2lkLCBjc2VjLT5zaWQsCisJCQkJICAgIFNFQ0NMQVNTX0ZJTEUsIEZJTEVfX1JFQUQsIE5VTEwpOworCX0KKwogCXJldHVybiB0YXNrX2hhc19wZXJtKHBhcmVudCwgY2hpbGQsIFBST0NFU1NfX1BUUkFDRSk7CiB9CiAKQEAgLTI0OTUsNyArMjU1Niw3IEBACiAJfQogCiAJaWYgKHZhbHVlICYmIGxlbikgewotCQlyYyA9IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KG5ld3NpZCwgJmNvbnRleHQsICZjbGVuKTsKKwkJcmMgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZShuZXdzaWQsICZjb250ZXh0LCAmY2xlbik7CiAJCWlmIChyYykgewogCQkJa2ZyZWUobmFtZXApOwogCQkJcmV0dXJuIHJjOwpAQCAtMjY2OSw2ICsyNzMwLDExIEBACiAJCXJldHVybiByYzsKIAogCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWQodmFsdWUsIHNpemUsICZuZXdzaWQpOworCWlmIChyYyA9PSAtRUlOVkFMKSB7CisJCWlmICghY2FwYWJsZShDQVBfTUFDX0FETUlOKSkKKwkJCXJldHVybiByYzsKKwkJcmMgPSBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZSh2YWx1ZSwgc2l6ZSwgJm5ld3NpZCk7CisJfQogCWlmIChyYykKIAkJcmV0dXJuIHJjOwogCkBAIC0yNjkwLDcgKzI3NTYsNyBAQAogfQogCiBzdGF0aWMgdm9pZCBzZWxpbnV4X2lub2RlX3Bvc3Rfc2V0eGF0dHIoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCBjb25zdCBjaGFyICpuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnZhbHVlLCBzaXplX3Qgc2l6ZSwKKwkJCQkJY29uc3Qgdm9pZCAqdmFsdWUsIHNpemVfdCBzaXplLAogCQkJCQlpbnQgZmxhZ3MpCiB7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IGRlbnRyeS0+ZF9pbm9kZTsKQEAgLTI3MDMsMTAgKzI3NjksMTEgQEAKIAkJcmV0dXJuOwogCX0KIAotCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWQodmFsdWUsIHNpemUsICZuZXdzaWQpOworCXJjID0gc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UodmFsdWUsIHNpemUsICZuZXdzaWQpOwogCWlmIChyYykgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogIHVuYWJsZSB0byBvYnRhaW4gU0lEIGZvciBjb250ZXh0ICIKLQkJICAgICAgICIlcywgcmM9JWRcbiIsIF9fZnVuY19fLCAoY2hhciAqKXZhbHVlLCAtcmMpOworCQlwcmludGsoS0VSTl9FUlIgIlNFTGludXg6ICB1bmFibGUgdG8gbWFwIGNvbnRleHQgdG8gU0lEIgorCQkgICAgICAgImZvciAoJXMsICVsdSksIHJjPSVkXG4iLAorCQkgICAgICAgaW5vZGUtPmlfc2ItPnNfaWQsIGlub2RlLT5pX2lubywgLXJjKTsKIAkJcmV0dXJuOwogCX0KIApAQCAtMjczNSw5ICsyODAyLDcgQEAKIH0KIAogLyoKLSAqIENvcHkgdGhlIGluLWNvcmUgaW5vZGUgc2VjdXJpdHkgY29udGV4dCB2YWx1ZSB0byB0aGUgdXNlci4gIElmIHRoZQotICogZ2V0eGF0dHIoKSBwcmlvciB0byB0aGlzIHN1Y2NlZWRlZCwgY2hlY2sgdG8gc2VlIGlmIHdlIG5lZWQgdG8KLSAqIGNhbm9uaWNhbGl6ZSB0aGUgdmFsdWUgdG8gYmUgZmluYWxseSByZXR1cm5lZCB0byB0aGUgdXNlci4KKyAqIENvcHkgdGhlIGlub2RlIHNlY3VyaXR5IGNvbnRleHQgdmFsdWUgdG8gdGhlIHVzZXIuCiAgKgogICogUGVybWlzc2lvbiBjaGVjayBpcyBoYW5kbGVkIGJ5IHNlbGludXhfaW5vZGVfZ2V0eGF0dHIgaG9vay4KICAqLwpAQCAtMjc0NiwxMiArMjgxMSwzMyBAQAogCXUzMiBzaXplOwogCWludCBlcnJvcjsKIAljaGFyICpjb250ZXh0ID0gTlVMTDsKKwlzdHJ1Y3QgdGFza19zZWN1cml0eV9zdHJ1Y3QgKnRzZWMgPSBjdXJyZW50LT5zZWN1cml0eTsKIAlzdHJ1Y3QgaW5vZGVfc2VjdXJpdHlfc3RydWN0ICppc2VjID0gaW5vZGUtPmlfc2VjdXJpdHk7CiAKIAlpZiAoc3RyY21wKG5hbWUsIFhBVFRSX1NFTElOVVhfU1VGRklYKSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCi0JZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dChpc2VjLT5zaWQsICZjb250ZXh0LCAmc2l6ZSk7CisJLyoKKwkgKiBJZiB0aGUgY2FsbGVyIGhhcyBDQVBfTUFDX0FETUlOLCB0aGVuIGdldCB0aGUgcmF3IGNvbnRleHQKKwkgKiB2YWx1ZSBldmVuIGlmIGl0IGlzIG5vdCBkZWZpbmVkIGJ5IGN1cnJlbnQgcG9saWN5OyBvdGhlcndpc2UsCisJICogdXNlIHRoZSBpbi1jb3JlIHZhbHVlIHVuZGVyIGN1cnJlbnQgcG9saWN5LgorCSAqIFVzZSB0aGUgbm9uLWF1ZGl0aW5nIGZvcm1zIG9mIHRoZSBwZXJtaXNzaW9uIGNoZWNrcyBzaW5jZQorCSAqIGdldHhhdHRyIG1heSBiZSBjYWxsZWQgYnkgdW5wcml2aWxlZ2VkIHByb2Nlc3NlcyBjb21tb25seQorCSAqIGFuZCBsYWNrIG9mIHBlcm1pc3Npb24ganVzdCBtZWFucyB0aGF0IHdlIGZhbGwgYmFjayB0byB0aGUKKwkgKiBpbi1jb3JlIGNvbnRleHQgdmFsdWUsIG5vdCBhIGRlbmlhbC4KKwkgKi8KKwllcnJvciA9IHNlY29uZGFyeV9vcHMtPmNhcGFibGUoY3VycmVudCwgQ0FQX01BQ19BRE1JTik7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBhdmNfaGFzX3Blcm1fbm9hdWRpdCh0c2VjLT5zaWQsIHRzZWMtPnNpZCwKKwkJCQkJICAgICBTRUNDTEFTU19DQVBBQklMSVRZMiwKKwkJCQkJICAgICBDQVBBQklMSVRZMl9fTUFDX0FETUlOLAorCQkJCQkgICAgIDAsCisJCQkJCSAgICAgTlVMTCk7CisJaWYgKCFlcnJvcikKKwkJZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZShpc2VjLT5zaWQsICZjb250ZXh0LAorCQkJCQkJICAgICAgJnNpemUpOworCWVsc2UKKwkJZXJyb3IgPSBzZWN1cml0eV9zaWRfdG9fY29udGV4dChpc2VjLT5zaWQsICZjb250ZXh0LCAmc2l6ZSk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4gZXJyb3I7CiAJZXJyb3IgPSBzaXplOwpAQCAtMjg2NSw0NiArMjk1MSwxNiBAQAogc3RhdGljIGludCBzZWxpbnV4X2ZpbGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGludCBjbWQsCiAJCQkgICAgICB1bnNpZ25lZCBsb25nIGFyZykKIHsKLQlpbnQgZXJyb3IgPSAwOworCXUzMiBhdiA9IDA7CiAKLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgRklPTlJFQUQ6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBGSUJNQVA6Ci0JLyogZmFsbCB0aHJvdWdoICovCi0JY2FzZSBGSUdFVEJTWjoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEVYVDJfSU9DX0dFVEZMQUdTOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRVhUMl9JT0NfR0VUVkVSU0lPTjoKLQkJZXJyb3IgPSBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIEZJTEVfX0dFVEFUVFIpOwotCQlicmVhazsKKwlpZiAoX0lPQ19ESVIoY21kKSAmIF9JT0NfV1JJVEUpCisJCWF2IHw9IEZJTEVfX1dSSVRFOworCWlmIChfSU9DX0RJUihjbWQpICYgX0lPQ19SRUFEKQorCQlhdiB8PSBGSUxFX19SRUFEOworCWlmICghYXYpCisJCWF2ID0gRklMRV9fSU9DVEw7CiAKLQljYXNlIEVYVDJfSU9DX1NFVEZMQUdTOgotCS8qIGZhbGwgdGhyb3VnaCAqLwotCWNhc2UgRVhUMl9JT0NfU0VUVkVSU0lPTjoKLQkJZXJyb3IgPSBmaWxlX2hhc19wZXJtKGN1cnJlbnQsIGZpbGUsIEZJTEVfX1NFVEFUVFIpOwotCQlicmVhazsKLQotCS8qIHN5c19pb2N0bCgpIGNoZWNrcyAqLwotCWNhc2UgRklPTkJJTzoKLQkvKiBmYWxsIHRocm91Z2ggKi8KLQljYXNlIEZJT0FTWU5DOgotCQllcnJvciA9IGZpbGVfaGFzX3Blcm0oY3VycmVudCwgZmlsZSwgMCk7Ci0JCWJyZWFrOwotCi0JY2FzZSBLRFNLQkVOVDoKLQljYXNlIEtEU0tCU0VOVDoKLQkJZXJyb3IgPSB0YXNrX2hhc19jYXBhYmlsaXR5KGN1cnJlbnQsIENBUF9TWVNfVFRZX0NPTkZJRyk7Ci0JCWJyZWFrOwotCi0JLyogZGVmYXVsdCBjYXNlIGFzc3VtZXMgdGhhdCB0aGUgY29tbWFuZCB3aWxsIGdvCi0JICogdG8gdGhlIGZpbGUncyBpb2N0bCgpIGZ1bmN0aW9uLgotCSAqLwotCWRlZmF1bHQ6Ci0JCWVycm9yID0gZmlsZV9oYXNfcGVybShjdXJyZW50LCBmaWxlLCBGSUxFX19JT0NUTCk7Ci0JfQotCXJldHVybiBlcnJvcjsKKwlyZXR1cm4gZmlsZV9oYXNfcGVybShjdXJyZW50LCBmaWxlLCBhdik7CiB9CiAKIHN0YXRpYyBpbnQgZmlsZV9tYXBfcHJvdF9jaGVjayhzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9uZyBwcm90LCBpbnQgc2hhcmVkKQpAQCAtMzY2Myw3ICszNzE5LDcgQEAKIAkJc3RydWN0IHNvY2thZGRyX2luNiAqYWRkcjYgPSBOVUxMOwogCQl1bnNpZ25lZCBzaG9ydCBzbnVtOwogCQlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsKLQkJdTMyIHNpZCwgbm9kZV9wZXJtLCBhZGRybGVuOworCQl1MzIgc2lkLCBub2RlX3Blcm07CiAKIAkJdHNlYyA9IGN1cnJlbnQtPnNlY3VyaXR5OwogCQlpc2VjID0gU09DS19JTk9ERShzb2NrKS0+aV9zZWN1cml0eTsKQEAgLTM2NzEsMTIgKzM3MjcsMTAgQEAKIAkJaWYgKGZhbWlseSA9PSBQRl9JTkVUKSB7CiAJCQlhZGRyNCA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilhZGRyZXNzOwogCQkJc251bSA9IG50b2hzKGFkZHI0LT5zaW5fcG9ydCk7Ci0JCQlhZGRybGVuID0gc2l6ZW9mKGFkZHI0LT5zaW5fYWRkci5zX2FkZHIpOwogCQkJYWRkcnAgPSAoY2hhciAqKSZhZGRyNC0+c2luX2FkZHIuc19hZGRyOwogCQl9IGVsc2UgewogCQkJYWRkcjYgPSAoc3RydWN0IHNvY2thZGRyX2luNiAqKWFkZHJlc3M7CiAJCQlzbnVtID0gbnRvaHMoYWRkcjYtPnNpbjZfcG9ydCk7Ci0JCQlhZGRybGVuID0gc2l6ZW9mKGFkZHI2LT5zaW42X2FkZHIuczZfYWRkcik7CiAJCQlhZGRycCA9IChjaGFyICopJmFkZHI2LT5zaW42X2FkZHIuczZfYWRkcjsKIAkJfQogCkBAIC01MDQ3LDI0ICs1MTAxLDYgQEAKIAkqc2VjaWQgPSBpc2VjLT5zaWQ7CiB9CiAKLS8qIG1vZHVsZSBzdGFja2luZyBvcGVyYXRpb25zICovCi1zdGF0aWMgaW50IHNlbGludXhfcmVnaXN0ZXJfc2VjdXJpdHkoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMgKm9wcykKLXsKLQlpZiAoc2Vjb25kYXJ5X29wcyAhPSBvcmlnaW5hbF9vcHMpIHsKLQkJcHJpbnRrKEtFUk5fRVJSICIlczogIFRoZXJlIGlzIGFscmVhZHkgYSBzZWNvbmRhcnkgc2VjdXJpdHkgIgotCQkgICAgICAgIm1vZHVsZSByZWdpc3RlcmVkLlxuIiwgX19mdW5jX18pOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlzZWNvbmRhcnlfb3BzID0gb3BzOwotCi0JcHJpbnRrKEtFUk5fSU5GTyAiJXM6ICBSZWdpc3RlcmluZyBzZWNvbmRhcnkgbW9kdWxlICVzXG4iLAotCSAgICAgICBfX2Z1bmNfXywKLQkgICAgICAgbmFtZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHZvaWQgc2VsaW51eF9kX2luc3RhbnRpYXRlKHN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3RydWN0IGlub2RlICppbm9kZSkKIHsKIAlpZiAoaW5vZGUpCkBAIC01MTUzLDYgKzUxODksMTIgQEAKIAkJCXNpemUtLTsKIAkJfQogCQllcnJvciA9IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkKHZhbHVlLCBzaXplLCAmc2lkKTsKKwkJaWYgKGVycm9yID09IC1FSU5WQUwgJiYgIXN0cmNtcChuYW1lLCAiZnNjcmVhdGUiKSkgeworCQkJaWYgKCFjYXBhYmxlKENBUF9NQUNfQURNSU4pKQorCQkJCXJldHVybiBlcnJvcjsKKwkJCWVycm9yID0gc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UodmFsdWUsIHNpemUsCisJCQkJCQkJICAgICAgJnNpZCk7CisJCX0KIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIGVycm9yOwogCX0KQEAgLTUxODYsMTIgKzUyMjgsMTIgQEAKIAkJCXN0cnVjdCB0YXNrX3N0cnVjdCAqZywgKnQ7CiAJCQlzdHJ1Y3QgbW1fc3RydWN0ICptbSA9IHAtPm1tOwogCQkJcmVhZF9sb2NrKCZ0YXNrbGlzdF9sb2NrKTsKLQkJCWRvX2VhY2hfdGhyZWFkKGcsIHQpCisJCQlkb19lYWNoX3RocmVhZChnLCB0KSB7CiAJCQkJaWYgKHQtPm1tID09IG1tICYmIHQgIT0gcCkgewogCQkJCQlyZWFkX3VubG9jaygmdGFza2xpc3RfbG9jayk7CiAJCQkJCXJldHVybiAtRVBFUk07CiAJCQkJfQotCQkJd2hpbGVfZWFjaF90aHJlYWQoZywgdCk7CisJCQl9IHdoaWxlX2VhY2hfdGhyZWFkKGcsIHQpOwogCQkJcmVhZF91bmxvY2soJnRhc2tsaXN0X2xvY2spOwogCQl9CiAKQEAgLTUzNDMsMTAgKzUzODUsMTAgQEAKIAkuc2JfZnJlZV9zZWN1cml0eSA9CQlzZWxpbnV4X3NiX2ZyZWVfc2VjdXJpdHksCiAJLnNiX2NvcHlfZGF0YSA9CQkJc2VsaW51eF9zYl9jb3B5X2RhdGEsCiAJLnNiX2tlcm5fbW91bnQgPQkJc2VsaW51eF9zYl9rZXJuX21vdW50LAorCS5zYl9zaG93X29wdGlvbnMgPQkJc2VsaW51eF9zYl9zaG93X29wdGlvbnMsCiAJLnNiX3N0YXRmcyA9CQkJc2VsaW51eF9zYl9zdGF0ZnMsCiAJLnNiX21vdW50ID0JCQlzZWxpbnV4X21vdW50LAogCS5zYl91bW91bnQgPQkJCXNlbGludXhfdW1vdW50LAotCS5zYl9nZXRfbW50X29wdHMgPQkJc2VsaW51eF9nZXRfbW50X29wdHMsCiAJLnNiX3NldF9tbnRfb3B0cyA9CQlzZWxpbnV4X3NldF9tbnRfb3B0cywKIAkuc2JfY2xvbmVfbW50X29wdHMgPQkJc2VsaW51eF9zYl9jbG9uZV9tbnRfb3B0cywKIAkuc2JfcGFyc2Vfb3B0c19zdHIgPSAJCXNlbGludXhfcGFyc2Vfb3B0c19zdHIsCkBAIC01Mzc4LDcgKzU0MjAsNyBAQAogCS5pbm9kZV9saXN0c2VjdXJpdHkgPQkJc2VsaW51eF9pbm9kZV9saXN0c2VjdXJpdHksCiAJLmlub2RlX25lZWRfa2lsbHByaXYgPQkJc2VsaW51eF9pbm9kZV9uZWVkX2tpbGxwcml2LAogCS5pbm9kZV9raWxscHJpdiA9CQlzZWxpbnV4X2lub2RlX2tpbGxwcml2LAotCS5pbm9kZV9nZXRzZWNpZCA9ICAgICAgICAgICAgICAgc2VsaW51eF9pbm9kZV9nZXRzZWNpZCwKKwkuaW5vZGVfZ2V0c2VjaWQgPQkJc2VsaW51eF9pbm9kZV9nZXRzZWNpZCwKIAogCS5maWxlX3Blcm1pc3Npb24gPQkJc2VsaW51eF9maWxlX3Blcm1pc3Npb24sCiAJLmZpbGVfYWxsb2Nfc2VjdXJpdHkgPQkJc2VsaW51eF9maWxlX2FsbG9jX3NlY3VyaXR5LApAQCAtNTQxOSw3ICs1NDYxLDcgQEAKIAkudGFza190b19pbm9kZSA9CQlzZWxpbnV4X3Rhc2tfdG9faW5vZGUsCiAKIAkuaXBjX3Blcm1pc3Npb24gPQkJc2VsaW51eF9pcGNfcGVybWlzc2lvbiwKLQkuaXBjX2dldHNlY2lkID0gICAgICAgICAgICAgICAgIHNlbGludXhfaXBjX2dldHNlY2lkLAorCS5pcGNfZ2V0c2VjaWQgPQkJCXNlbGludXhfaXBjX2dldHNlY2lkLAogCiAJLm1zZ19tc2dfYWxsb2Nfc2VjdXJpdHkgPQlzZWxpbnV4X21zZ19tc2dfYWxsb2Nfc2VjdXJpdHksCiAJLm1zZ19tc2dfZnJlZV9zZWN1cml0eSA9CXNlbGludXhfbXNnX21zZ19mcmVlX3NlY3VyaXR5LApAQCAtNTQ0Myw4ICs1NDg1LDYgQEAKIAkuc2VtX3NlbWN0bCA9CQkJc2VsaW51eF9zZW1fc2VtY3RsLAogCS5zZW1fc2Vtb3AgPQkJCXNlbGludXhfc2VtX3NlbW9wLAogCi0JLnJlZ2lzdGVyX3NlY3VyaXR5ID0JCXNlbGludXhfcmVnaXN0ZXJfc2VjdXJpdHksCi0KIAkuZF9pbnN0YW50aWF0ZSA9CQlzZWxpbnV4X2RfaW5zdGFudGlhdGUsCiAKIAkuZ2V0cHJvY2F0dHIgPQkJCXNlbGludXhfZ2V0cHJvY2F0dHIsCkBAIC01NTM4LDcgKzU1NzgsNyBAQAogCQkJCQkgICAgMCwgU0xBQl9QQU5JQywgTlVMTCk7CiAJYXZjX2luaXQoKTsKIAotCW9yaWdpbmFsX29wcyA9IHNlY29uZGFyeV9vcHMgPSBzZWN1cml0eV9vcHM7CisJc2Vjb25kYXJ5X29wcyA9IHNlY3VyaXR5X29wczsKIAlpZiAoIXNlY29uZGFyeV9vcHMpCiAJCXBhbmljKCJTRUxpbnV4OiBObyBpbml0aWFsIHNlY3VyaXR5IG9wZXJhdGlvbnNcbiIpOwogCWlmIChyZWdpc3Rlcl9zZWN1cml0eSgmc2VsaW51eF9vcHMpKQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2F1ZGl0LmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaAppbmRleCA2YzhiOWVmLi4xYmRmOTczIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXVkaXQuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiBTRUxpbnV4IHN1cHBvcnQgZm9yIHRoZSBBdWRpdCBMU00gaG9va3MKICAqCi0gKiBNb3N0IG9mIGJlbG93IGhlYWRlciB3YXMgbW92ZWQgZnJvbSBpbmNsdWRlL2xpbnV4L3NlbGludXguaCB3aGljaCAKKyAqIE1vc3Qgb2YgYmVsb3cgaGVhZGVyIHdhcyBtb3ZlZCBmcm9tIGluY2x1ZGUvbGludXgvc2VsaW51eC5oIHdoaWNoCiAgKiBpcyByZWxlYXNlZCB1bmRlciBiZWxvdyBjb3B5cmlnaHRzOgogICoKICAqIEF1dGhvcjogSmFtZXMgTW9ycmlzIDxqbW9ycmlzQHJlZGhhdC5jb20+CkBAIC01Miw3ICs1Miw3IEBACiAgKgktZXJybm8gb24gZmFpbHVyZS4KICAqLwogaW50IHNlbGludXhfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2lkLCB1MzIgZmllbGQsIHUzMiBvcCwgdm9pZCAqcnVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpOworCQkJICAgICBzdHJ1Y3QgYXVkaXRfY29udGV4dCAqYWN0eCk7CiAKIC8qKgogICoJc2VsaW51eF9hdWRpdF9ydWxlX2tub3duIC0gY2hlY2sgdG8gc2VlIGlmIHJ1bGUgY29udGFpbnMgc2VsaW51eCBmaWVsZHMuCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXZjLmggYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvYXZjLmgKaW5kZXggOGUyM2Q3YS4uN2I5NzY5ZiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL2F2Yy5oCisrKyBiL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9hdmMuaApAQCAtNzUsMTMgKzc1LDEyIEBACiAKIC8qIEluaXRpYWxpemUgYW4gQVZDIGF1ZGl0IGRhdGEgc3RydWN0dXJlLiAqLwogI2RlZmluZSBBVkNfQVVESVRfREFUQV9JTklUKF9kLF90KSBcCi0gICAgICAgIHsgbWVtc2V0KChfZCksIDAsIHNpemVvZihzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEpKTsgKF9kKS0+dHlwZSA9IEFWQ19BVURJVF9EQVRBXyMjX3Q7IH0KKwl7IG1lbXNldCgoX2QpLCAwLCBzaXplb2Yoc3RydWN0IGF2Y19hdWRpdF9kYXRhKSk7IChfZCktPnR5cGUgPSBBVkNfQVVESVRfREFUQV8jI190OyB9CiAKIC8qCiAgKiBBVkMgc3RhdGlzdGljcwogICovCi1zdHJ1Y3QgYXZjX2NhY2hlX3N0YXRzCi17CitzdHJ1Y3QgYXZjX2NhY2hlX3N0YXRzIHsKIAl1bnNpZ25lZCBpbnQgbG9va3VwczsKIAl1bnNpZ25lZCBpbnQgaGl0czsKIAl1bnNpZ25lZCBpbnQgbWlzc2VzOwpAQCAtOTcsOCArOTYsOCBAQAogdm9pZCBfX2luaXQgYXZjX2luaXQodm9pZCk7CiAKIHZvaWQgYXZjX2F1ZGl0KHUzMiBzc2lkLCB1MzIgdHNpZCwKLSAgICAgICAgICAgICAgIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCi0gICAgICAgICAgICAgICBzdHJ1Y3QgYXZfZGVjaXNpb24gKmF2ZCwgaW50IHJlc3VsdCwgc3RydWN0IGF2Y19hdWRpdF9kYXRhICphdWRpdGRhdGEpOworCSAgICAgICB1MTYgdGNsYXNzLCB1MzIgcmVxdWVzdGVkLAorCSAgICAgICBzdHJ1Y3QgYXZfZGVjaXNpb24gKmF2ZCwgaW50IHJlc3VsdCwgc3RydWN0IGF2Y19hdWRpdF9kYXRhICphdWRpdGRhdGEpOwogCiAjZGVmaW5lIEFWQ19TVFJJQ1QgMSAvKiBJZ25vcmUgcGVybWlzc2l2ZSBtb2RlLiAqLwogaW50IGF2Y19oYXNfcGVybV9ub2F1ZGl0KHUzMiBzc2lkLCB1MzIgdHNpZCwKQEAgLTEwNyw4ICsxMDYsOCBAQAogCQkJIHN0cnVjdCBhdl9kZWNpc2lvbiAqYXZkKTsKIAogaW50IGF2Y19oYXNfcGVybSh1MzIgc3NpZCwgdTMyIHRzaWQsCi0gICAgICAgICAgICAgICAgIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCi0gICAgICAgICAgICAgICAgIHN0cnVjdCBhdmNfYXVkaXRfZGF0YSAqYXVkaXRkYXRhKTsKKwkJIHUxNiB0Y2xhc3MsIHUzMiByZXF1ZXN0ZWQsCisJCSBzdHJ1Y3QgYXZjX2F1ZGl0X2RhdGEgKmF1ZGl0ZGF0YSk7CiAKIHUzMiBhdmNfcG9saWN5X3NlcW5vKHZvaWQpOwogCkBAIC0xMjIsNyArMTIxLDcgQEAKICNkZWZpbmUgQVZDX0NBTExCQUNLX0FVRElUREVOWV9ESVNBQkxFCTEyOAogCiBpbnQgYXZjX2FkZF9jYWxsYmFjayhpbnQgKCpjYWxsYmFjaykodTMyIGV2ZW50LCB1MzIgc3NpZCwgdTMyIHRzaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHRjbGFzcywgdTMyIHBlcm1zLAorCQkJCSAgICAgdTE2IHRjbGFzcywgdTMyIHBlcm1zLAogCQkJCSAgICAgdTMyICpvdXRfcmV0YWluZWQpLAogCQkgICAgIHUzMiBldmVudHMsIHUzMiBzc2lkLCB1MzIgdHNpZCwKIAkJICAgICB1MTYgdGNsYXNzLCB1MzIgcGVybXMpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL29ianNlYy5oCmluZGV4IDAzMmMyMzUuLjkxMDcwYWIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9vYmpzZWMuaAorKysgYi9zZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmgKQEAgLTQ0LDcgKzQ0LDYgQEAKIAl1MTYgc2NsYXNzOwkJLyogc2VjdXJpdHkgY2xhc3Mgb2YgdGhpcyBvYmplY3QgKi8KIAl1bnNpZ25lZCBjaGFyIGluaXRpYWxpemVkOwkvKiBpbml0aWFsaXphdGlvbiBmbGFnICovCiAJc3RydWN0IG11dGV4IGxvY2s7Ci0JdW5zaWduZWQgY2hhciBpbmhlcml0OwkvKiBpbmhlcml0IFNJRCBmcm9tIHBhcmVudCBlbnRyeSAqLwogfTsKIAogc3RydWN0IGZpbGVfc2VjdXJpdHlfc3RydWN0IHsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaW5jbHVkZS9zZWN1cml0eS5oIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKaW5kZXggYWQzMGFjNC4uN2M1NDMwMCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3NlY3VyaXR5LmgKQEAgLTkzLDEyICs5MywxNyBAQAogaW50IHNlY3VyaXR5X3NpZF90b19jb250ZXh0KHUzMiBzaWQsIGNoYXIgKipzY29udGV4dCwKIAl1MzIgKnNjb250ZXh0X2xlbik7CiAKK2ludCBzZWN1cml0eV9zaWRfdG9fY29udGV4dF9mb3JjZSh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsIHUzMiAqc2NvbnRleHRfbGVuKTsKKwogaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAogCXUzMiAqb3V0X3NpZCk7CiAKIGludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9kZWZhdWx0KGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLAogCQkJCSAgICB1MzIgKm91dF9zaWQsIHUzMiBkZWZfc2lkLCBnZnBfdCBnZnBfZmxhZ3MpOwogCitpbnQgc2VjdXJpdHlfY29udGV4dF90b19zaWRfZm9yY2UoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCisJCQkJICB1MzIgKnNpZCk7CisKIGludCBzZWN1cml0eV9nZXRfdXNlcl9zaWRzKHUzMiBjYWxsc2lkLCBjaGFyICp1c2VybmFtZSwKIAkJCSAgIHUzMiAqKnNpZHMsIHUzMiAqbmVsKTsKIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9uZXRub2RlLmMgYi9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYwppbmRleCBiNmNjZDA5Li43MTAwMDcyIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L25ldG5vZGUuYwpAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4KICNpbmNsdWRlIDxuZXQvaXAuaD4KICNpbmNsdWRlIDxuZXQvaXB2Ni5oPgotI2luY2x1ZGUgPGFzbS9idWcuaD4KIAogI2luY2x1ZGUgIm5ldG5vZGUuaCIKICNpbmNsdWRlICJvYmpzZWMuaCIKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvbmV0cG9ydC5jIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRwb3J0LmMKaW5kZXggOTBiNGNmZi4uZmU3ZmJhNiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9uZXRwb3J0LmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9uZXRwb3J0LmMKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlIDxsaW51eC9pcHY2Lmg+CiAjaW5jbHVkZSA8bmV0L2lwLmg+CiAjaW5jbHVkZSA8bmV0L2lwdjYuaD4KLSNpbmNsdWRlIDxhc20vYnVnLmg+CiAKICNpbmNsdWRlICJuZXRwb3J0LmgiCiAjaW5jbHVkZSAib2Jqc2VjLmgiCkBAIC0yNzIsNyArMjcxLDcgQEAKIAl9CiAKIAlyZXQgPSBhdmNfYWRkX2NhbGxiYWNrKHNlbF9uZXRwb3J0X2F2Y19jYWxsYmFjaywgQVZDX0NBTExCQUNLX1JFU0VULAotCSAgICAgICAgICAgICAgICAgICAgICAgU0VDU0lEX05VTEwsIFNFQ1NJRF9OVUxMLCBTRUNDTEFTU19OVUxMLCAwKTsKKwkJCSAgICAgICBTRUNTSURfTlVMTCwgU0VDU0lEX05VTEwsIFNFQ0NMQVNTX05VTEwsIDApOwogCWlmIChyZXQgIT0gMCkKIAkJcGFuaWMoImF2Y19hZGRfY2FsbGJhY2soKSBmYWlsZWQsIGVycm9yICVkXG4iLCByZXQpOwogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWxpbnV4L3NlbGludXhmcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9zZWxpbnV4ZnMuYwppbmRleCBhYzFjY2MxLi42OWM5ZGNjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NlbGludXhmcy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgvc2VsaW51eGZzLmMKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3BlcmNwdS5oPgogI2luY2x1ZGUgPGxpbnV4L2F1ZGl0Lmg+Ci0jaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKyNpbmNsdWRlIDxsaW51eC91YWNjZXNzLmg+CiAKIC8qIHNlbGludXhmcyBwc2V1ZG8gZmlsZXN5c3RlbSBmb3IgZXhwb3J0aW5nIHRoZSBzZWN1cml0eSBwb2xpY3kgQVBJLgogICAgQmFzZWQgb24gdGhlIHByb2MgY29kZSBhbmQgdGhlIGZzL25mc2QvbmZzY3RsLmMgY29kZS4gKi8KQEAgLTU3LDE0ICs1NywxOCBAQAogCiBzdGF0aWMgaW50IF9faW5pdCBjaGVja3JlcXByb3Rfc2V0dXAoY2hhciAqc3RyKQogewotCXNlbGludXhfY2hlY2tyZXFwcm90ID0gc2ltcGxlX3N0cnRvdWwoc3RyLCBOVUxMLCAwKSA/IDEgOiAwOworCXVuc2lnbmVkIGxvbmcgY2hlY2tyZXFwcm90OworCWlmICghc3RyaWN0X3N0cnRvdWwoc3RyLCAwLCAmY2hlY2tyZXFwcm90KSkKKwkJc2VsaW51eF9jaGVja3JlcXByb3QgPSBjaGVja3JlcXByb3QgPyAxIDogMDsKIAlyZXR1cm4gMTsKIH0KIF9fc2V0dXAoImNoZWNrcmVxcHJvdD0iLCBjaGVja3JlcXByb3Rfc2V0dXApOwogCiBzdGF0aWMgaW50IF9faW5pdCBzZWxpbnV4X2NvbXBhdF9uZXRfc2V0dXAoY2hhciAqc3RyKQogewotCXNlbGludXhfY29tcGF0X25ldCA9IHNpbXBsZV9zdHJ0b3VsKHN0ciwgTlVMTCwgMCkgPyAxIDogMDsKKwl1bnNpZ25lZCBsb25nIGNvbXBhdF9uZXQ7CisJaWYgKCFzdHJpY3Rfc3RydG91bChzdHIsIDAsICZjb21wYXRfbmV0KSkKKwkJc2VsaW51eF9jb21wYXRfbmV0ID0gY29tcGF0X25ldCA/IDEgOiAwOwogCXJldHVybiAxOwogfQogX19zZXR1cCgic2VsaW51eF9jb21wYXRfbmV0PSIsIHNlbGludXhfY29tcGF0X25ldF9zZXR1cCk7CkBAIC0zNTIsMTEgKzM1Niw2IEBACiAJCWxlbmd0aCA9IGNvdW50OwogCiBvdXQxOgotCi0JcHJpbnRrKEtFUk5fSU5GTyAiU0VMaW51eDogcG9saWN5IGxvYWRlZCB3aXRoIGhhbmRsZV91bmtub3duPSVzXG4iLAotCSAgICAgICAoc2VjdXJpdHlfZ2V0X3JlamVjdF91bmtub3duKCkgPyAicmVqZWN0IiA6Ci0JCShzZWN1cml0eV9nZXRfYWxsb3dfdW5rbm93bigpID8gImFsbG93IiA6ICJkZW55IikpKTsKLQogCWF1ZGl0X2xvZyhjdXJyZW50LT5hdWRpdF9jb250ZXh0LCBHRlBfS0VSTkVMLCBBVURJVF9NQUNfUE9MSUNZX0xPQUQsCiAJCSJwb2xpY3kgbG9hZGVkIGF1aWQ9JXUgc2VzPSV1IiwKIAkJYXVkaXRfZ2V0X2xvZ2ludWlkKGN1cnJlbnQpLApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9hdnRhYi5jIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9hdnRhYi5jCmluZGV4IDllNjYyNjMuLmExYmU5N2YgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3MvYXZ0YWIuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL2F2dGFiLmMKQEAgLTMxMSw3ICszMTEsNyBAQAogCX0KIAogCXByaW50ayhLRVJOX0RFQlVHICJTRUxpbnV4OiAlczogICVkIGVudHJpZXMgYW5kICVkLyVkIGJ1Y2tldHMgdXNlZCwgIgotCSAgICAgICAibG9uZ2VzdCBjaGFpbiBsZW5ndGggJWQgc3VtIG9mIGNoYWluIGxlbmd0aF4yICVMdVxuIiwKKwkgICAgICAgImxvbmdlc3QgY2hhaW4gbGVuZ3RoICVkIHN1bSBvZiBjaGFpbiBsZW5ndGheMiAlbGx1XG4iLAogCSAgICAgICB0YWcsIGgtPm5lbCwgc2xvdHNfdXNlZCwgaC0+bnNsb3QsIG1heF9jaGFpbl9sZW4sCiAJICAgICAgIGNoYWluMl9sZW5fc3VtKTsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvY29udGV4dC5oIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9jb250ZXh0LmgKaW5kZXggYjlhNmY3Zi4uNjU4YzJiZCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9jb250ZXh0LmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9jb250ZXh0LmgKQEAgLTI4LDYgKzI4LDggQEAKIAl1MzIgcm9sZTsKIAl1MzIgdHlwZTsKIAlzdHJ1Y3QgbWxzX3JhbmdlIHJhbmdlOworCWNoYXIgKnN0cjsJLyogc3RyaW5nIHJlcHJlc2VudGF0aW9uIGlmIGNvbnRleHQgY2Fubm90IGJlIG1hcHBlZC4gKi8KKwl1MzIgbGVuOyAgICAgICAgLyogbGVuZ3RoIG9mIHN0cmluZyBpbiBieXRlcyAqLwogfTsKIAogc3RhdGljIGlubGluZSB2b2lkIG1sc19jb250ZXh0X2luaXQoc3RydWN0IGNvbnRleHQgKmMpCkBAIC0xMDYsMjAgKzEwOCw0MyBAQAogCiBzdGF0aWMgaW5saW5lIGludCBjb250ZXh0X2NweShzdHJ1Y3QgY29udGV4dCAqZHN0LCBzdHJ1Y3QgY29udGV4dCAqc3JjKQogeworCWludCByYzsKKwogCWRzdC0+dXNlciA9IHNyYy0+dXNlcjsKIAlkc3QtPnJvbGUgPSBzcmMtPnJvbGU7CiAJZHN0LT50eXBlID0gc3JjLT50eXBlOwotCXJldHVybiBtbHNfY29udGV4dF9jcHkoZHN0LCBzcmMpOworCWlmIChzcmMtPnN0cikgeworCQlkc3QtPnN0ciA9IGtzdHJkdXAoc3JjLT5zdHIsIEdGUF9BVE9NSUMpOworCQlpZiAoIWRzdC0+c3RyKQorCQkJcmV0dXJuIC1FTk9NRU07CisJCWRzdC0+bGVuID0gc3JjLT5sZW47CisJfSBlbHNlIHsKKwkJZHN0LT5zdHIgPSBOVUxMOworCQlkc3QtPmxlbiA9IDA7CisJfQorCXJjID0gbWxzX2NvbnRleHRfY3B5KGRzdCwgc3JjKTsKKwlpZiAocmMpIHsKKwkJa2ZyZWUoZHN0LT5zdHIpOworCQlyZXR1cm4gcmM7CisJfQorCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgY29udGV4dF9kZXN0cm95KHN0cnVjdCBjb250ZXh0ICpjKQogewogCWMtPnVzZXIgPSBjLT5yb2xlID0gYy0+dHlwZSA9IDA7CisJa2ZyZWUoYy0+c3RyKTsKKwljLT5zdHIgPSBOVUxMOworCWMtPmxlbiA9IDA7CiAJbWxzX2NvbnRleHRfZGVzdHJveShjKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgY29udGV4dF9jbXAoc3RydWN0IGNvbnRleHQgKmMxLCBzdHJ1Y3QgY29udGV4dCAqYzIpCiB7CisJaWYgKGMxLT5sZW4gJiYgYzItPmxlbikKKwkJcmV0dXJuIChjMS0+bGVuID09IGMyLT5sZW4gJiYgIXN0cmNtcChjMS0+c3RyLCBjMi0+c3RyKSk7CisJaWYgKGMxLT5sZW4gfHwgYzItPmxlbikKKwkJcmV0dXJuIDA7CiAJcmV0dXJuICgoYzEtPnVzZXIgPT0gYzItPnVzZXIpICYmCiAJCShjMS0+cm9sZSA9PSBjMi0+cm9sZSkgJiYKIAkJKGMxLT50eXBlID09IGMyLT50eXBlKSAmJgpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuYyBiL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmMKaW5kZXggOGIxNzA2Yi4uNzdkNzQ1ZCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5jCkBAIC0yMzksNyArMjM5LDggQEAKICAqIFBvbGljeSByZWFkLWxvY2sgbXVzdCBiZSBoZWxkIGZvciBzaWR0YWIgbG9va3VwLgogICoKICAqLwotaW50IG1sc19jb250ZXh0X3RvX3NpZChjaGFyIG9sZGMsCitpbnQgbWxzX2NvbnRleHRfdG9fc2lkKHN0cnVjdCBwb2xpY3lkYiAqcG9sLAorCQkgICAgICAgY2hhciBvbGRjLAogCQkgICAgICAgY2hhciAqKnNjb250ZXh0LAogCQkgICAgICAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCiAJCSAgICAgICBzdHJ1Y3Qgc2lkdGFiICpzLApAQCAtMjg2LDcgKzI4Nyw3IEBACiAJCSpwKysgPSAwOwogCiAJZm9yIChsID0gMDsgbCA8IDI7IGwrKykgewotCQlsZXZkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfbGV2ZWxzLnRhYmxlLCBzY29udGV4dHApOworCQlsZXZkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF9sZXZlbHMudGFibGUsIHNjb250ZXh0cCk7CiAJCWlmICghbGV2ZGF0dW0pIHsKIAkJCXJjID0gLUVJTlZBTDsKIAkJCWdvdG8gb3V0OwpAQCAtMzExLDcgKzMxMiw3IEBACiAJCQkJCSpybmdwdHIrKyA9IDA7CiAJCQkJfQogCi0JCQkJY2F0ZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX2NhdHMudGFibGUsCisJCQkJY2F0ZGF0dW0gPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfY2F0cy50YWJsZSwKIAkJCQkJCQkgIHNjb250ZXh0cCk7CiAJCQkJaWYgKCFjYXRkYXR1bSkgewogCQkJCQlyYyA9IC1FSU5WQUw7CkBAIC0zMjcsNyArMzI4LDcgQEAKIAkJCQlpZiAocm5ncHRyKSB7CiAJCQkJCWludCBpOwogCi0JCQkJCXJuZ2RhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF9jYXRzLnRhYmxlLCBybmdwdHIpOworCQkJCQlybmdkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF9jYXRzLnRhYmxlLCBybmdwdHIpOwogCQkJCQlpZiAoIXJuZ2RhdHVtKSB7CiAJCQkJCQlyYyA9IC1FSU5WQUw7CiAJCQkJCQlnb3RvIG91dDsKQEAgLTM5NSw3ICszOTYsNyBAQAogCWlmICghdG1wc3RyKSB7CiAJCXJjID0gLUVOT01FTTsKIAl9IGVsc2UgewotCQlyYyA9IG1sc19jb250ZXh0X3RvX3NpZCgnOicsICZ0bXBzdHIsIGNvbnRleHQsCisJCXJjID0gbWxzX2NvbnRleHRfdG9fc2lkKCZwb2xpY3lkYiwgJzonLCAmdG1wc3RyLCBjb250ZXh0LAogCQkJCQlOVUxMLCBTRUNTSURfTlVMTCk7CiAJCWtmcmVlKGZyZWVzdHIpOwogCX0KQEAgLTQzNiwxMyArNDM3LDEzIEBACiAJCXN0cnVjdCBtbHNfbGV2ZWwgKnVzZXJjb25fY2xyID0gJih1c2VyY29uLT5yYW5nZS5sZXZlbFsxXSk7CiAKIAkJLyogSG9ub3IgdGhlIHVzZXIncyBkZWZhdWx0IGxldmVsIGlmIHdlIGNhbiAqLwotCQlpZiAobWxzX2xldmVsX2JldHdlZW4odXNlcl9kZWYsIGZyb21jb25fc2VuLCBmcm9tY29uX2NscikpIHsKKwkJaWYgKG1sc19sZXZlbF9iZXR3ZWVuKHVzZXJfZGVmLCBmcm9tY29uX3NlbiwgZnJvbWNvbl9jbHIpKQogCQkJKnVzZXJjb25fc2VuID0gKnVzZXJfZGVmOwotCQl9IGVsc2UgaWYgKG1sc19sZXZlbF9iZXR3ZWVuKGZyb21jb25fc2VuLCB1c2VyX2RlZiwgdXNlcl9jbHIpKSB7CisJCWVsc2UgaWYgKG1sc19sZXZlbF9iZXR3ZWVuKGZyb21jb25fc2VuLCB1c2VyX2RlZiwgdXNlcl9jbHIpKQogCQkJKnVzZXJjb25fc2VuID0gKmZyb21jb25fc2VuOwotCQl9IGVsc2UgaWYgKG1sc19sZXZlbF9iZXR3ZWVuKGZyb21jb25fY2xyLCB1c2VyX2xvdywgdXNlcl9kZWYpKSB7CisJCWVsc2UgaWYgKG1sc19sZXZlbF9iZXR3ZWVuKGZyb21jb25fY2xyLCB1c2VyX2xvdywgdXNlcl9kZWYpKQogCQkJKnVzZXJjb25fc2VuID0gKnVzZXJfbG93OwotCQl9IGVsc2UKKwkJZWxzZQogCQkJcmV0dXJuIC1FSU5WQUw7CiAKIAkJLyogTG93ZXIgdGhlIGNsZWFyYW5jZSBvZiBhdmFpbGFibGUgY29udGV4dHMKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmggYi9zZWN1cml0eS9zZWxpbnV4L3NzL21scy5oCmluZGV4IDBmZGY2MjUuLjEyNzY3MTUgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3MvbWxzLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9tbHMuaApAQCAtMzAsNyArMzAsOCBAQAogaW50IG1sc19yYW5nZV9pc3ZhbGlkKHN0cnVjdCBwb2xpY3lkYiAqcCwgc3RydWN0IG1sc19yYW5nZSAqcik7CiBpbnQgbWxzX2xldmVsX2lzdmFsaWQoc3RydWN0IHBvbGljeWRiICpwLCBzdHJ1Y3QgbWxzX2xldmVsICpsKTsKIAotaW50IG1sc19jb250ZXh0X3RvX3NpZChjaGFyIG9sZGMsCitpbnQgbWxzX2NvbnRleHRfdG9fc2lkKHN0cnVjdCBwb2xpY3lkYiAqcCwKKwkJICAgICAgIGNoYXIgb2xkYywKIAkJICAgICAgIGNoYXIgKipzY29udGV4dCwKIAkJICAgICAgIHN0cnVjdCBjb250ZXh0ICpjb250ZXh0LAogCQkgICAgICAgc3RydWN0IHNpZHRhYiAqcywKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuYyBiL3NlY3VyaXR5L3NlbGludXgvc3MvcG9saWN5ZGIuYwppbmRleCA4NGY4Y2M3Li4yMzkxNzYxIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3BvbGljeWRiLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9wb2xpY3lkYi5jCkBAIC0xNDc4LDcgKzE0NzgsOCBAQAogCXN0cnVjdCBvY29udGV4dCAqbCwgKmMsICpuZXdjOwogCXN0cnVjdCBnZW5mcyAqZ2VuZnNfcCwgKmdlbmZzLCAqbmV3Z2VuZnM7CiAJaW50IGksIGosIHJjOwotCV9fbGUzMiBidWZbOF07CisJX19sZTMyIGJ1Zls0XTsKKwl1MzIgbm9kZWJ1Zls4XTsKIAl1MzIgbGVuLCBsZW4yLCBjb25maWcsIG5wcmltLCBuZWwsIG5lbDI7CiAJY2hhciAqcG9saWN5ZGJfc3RyOwogCXN0cnVjdCBwb2xpY3lkYl9jb21wYXRfaW5mbyAqaW5mbzsKQEAgLTE3NDksMTEgKzE3NTAsMTEgQEAKIAkJCQkJZ290byBiYWQ7CiAJCQkJYnJlYWs7CiAJCQljYXNlIE9DT05fTk9ERToKLQkJCQlyYyA9IG5leHRfZW50cnkoYnVmLCBmcCwgc2l6ZW9mKHUzMikgKiAyKTsKKwkJCQlyYyA9IG5leHRfZW50cnkobm9kZWJ1ZiwgZnAsIHNpemVvZih1MzIpICogMik7CiAJCQkJaWYgKHJjIDwgMCkKIAkJCQkJZ290byBiYWQ7Ci0JCQkJYy0+dS5ub2RlLmFkZHIgPSBsZTMyX3RvX2NwdShidWZbMF0pOwotCQkJCWMtPnUubm9kZS5tYXNrID0gbGUzMl90b19jcHUoYnVmWzFdKTsKKwkJCQljLT51Lm5vZGUuYWRkciA9IG5vZGVidWZbMF07IC8qIG5ldHdvcmsgb3JkZXIgKi8KKwkJCQljLT51Lm5vZGUubWFzayA9IG5vZGVidWZbMV07IC8qIG5ldHdvcmsgb3JkZXIgKi8KIAkJCQlyYyA9IGNvbnRleHRfcmVhZF9hbmRfdmFsaWRhdGUoJmMtPmNvbnRleHRbMF0sIHAsIGZwKTsKIAkJCQlpZiAocmMpCiAJCQkJCWdvdG8gYmFkOwpAQCAtMTc4MiwxMyArMTc4MywxMyBAQAogCQkJY2FzZSBPQ09OX05PREU2OiB7CiAJCQkJaW50IGs7CiAKLQkJCQlyYyA9IG5leHRfZW50cnkoYnVmLCBmcCwgc2l6ZW9mKHUzMikgKiA4KTsKKwkJCQlyYyA9IG5leHRfZW50cnkobm9kZWJ1ZiwgZnAsIHNpemVvZih1MzIpICogOCk7CiAJCQkJaWYgKHJjIDwgMCkKIAkJCQkJZ290byBiYWQ7CiAJCQkJZm9yIChrID0gMDsgayA8IDQ7IGsrKykKLQkJCQkJYy0+dS5ub2RlNi5hZGRyW2tdID0gbGUzMl90b19jcHUoYnVmW2tdKTsKKwkJCQkJYy0+dS5ub2RlNi5hZGRyW2tdID0gbm9kZWJ1ZltrXTsKIAkJCQlmb3IgKGsgPSAwOyBrIDwgNDsgaysrKQotCQkJCQljLT51Lm5vZGU2Lm1hc2tba10gPSBsZTMyX3RvX2NwdShidWZbays0XSk7CisJCQkJCWMtPnUubm9kZTYubWFza1trXSA9IG5vZGVidWZbays0XTsKIAkJCQlpZiAoY29udGV4dF9yZWFkX2FuZF92YWxpZGF0ZSgmYy0+Y29udGV4dFswXSwgcCwgZnApKQogCQkJCQlnb3RvIGJhZDsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2VydmljZXMuYyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2VydmljZXMuYwppbmRleCBkY2MyZTFjLi5iNTJmOTIzIDEwMDY0NAotLS0gYS9zZWN1cml0eS9zZWxpbnV4L3NzL3NlcnZpY2VzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jCkBAIC03MSwxNCArNzEsNiBAQAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzZWxpbnV4X2NsYXNzX3Blcm0gc2VsaW51eF9jbGFzc19wZXJtOwogCiBzdGF0aWMgREVGSU5FX1JXTE9DSyhwb2xpY3lfcndsb2NrKTsKLSNkZWZpbmUgUE9MSUNZX1JETE9DSyByZWFkX2xvY2soJnBvbGljeV9yd2xvY2spCi0jZGVmaW5lIFBPTElDWV9XUkxPQ0sgd3JpdGVfbG9ja19pcnEoJnBvbGljeV9yd2xvY2spCi0jZGVmaW5lIFBPTElDWV9SRFVOTE9DSyByZWFkX3VubG9jaygmcG9saWN5X3J3bG9jaykKLSNkZWZpbmUgUE9MSUNZX1dSVU5MT0NLIHdyaXRlX3VubG9ja19pcnEoJnBvbGljeV9yd2xvY2spCi0KLXN0YXRpYyBERUZJTkVfTVVURVgobG9hZF9tdXRleCk7Ci0jZGVmaW5lIExPQURfTE9DSyBtdXRleF9sb2NrKCZsb2FkX211dGV4KQotI2RlZmluZSBMT0FEX1VOTE9DSyBtdXRleF91bmxvY2soJmxvYWRfbXV0ZXgpCiAKIHN0YXRpYyBzdHJ1Y3Qgc2lkdGFiIHNpZHRhYjsKIHN0cnVjdCBwb2xpY3lkYiBwb2xpY3lkYjsKQEAgLTMzMiw3ICszMjQsNyBAQAogCQlnb3RvIGludmFsX2NsYXNzOwogCWlmICh1bmxpa2VseSh0Y2xhc3MgPiBwb2xpY3lkYi5wX2NsYXNzZXMubnByaW0pKQogCQlpZiAodGNsYXNzID4ga2RlZnMtPmN0c19sZW4gfHwKLQkJICAgICFrZGVmcy0+Y2xhc3NfdG9fc3RyaW5nW3RjbGFzcyAtIDFdIHx8CisJCSAgICAha2RlZnMtPmNsYXNzX3RvX3N0cmluZ1t0Y2xhc3NdIHx8CiAJCSAgICAhcG9saWN5ZGIuYWxsb3dfdW5rbm93bikKIAkJCWdvdG8gaW52YWxfY2xhc3M7CiAKQEAgLTQxNSw5ICs0MDcsMTkgQEAKIAlyZXR1cm4gMDsKIAogaW52YWxfY2xhc3M6Ci0JcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAlczogIHVucmVjb2duaXplZCBjbGFzcyAlZFxuIiwgX19mdW5jX18sCi0JCXRjbGFzcyk7Ci0JcmV0dXJuIC1FSU5WQUw7CisJaWYgKCF0Y2xhc3MgfHwgdGNsYXNzID4ga2RlZnMtPmN0c19sZW4gfHwKKwkgICAgIWtkZWZzLT5jbGFzc190b19zdHJpbmdbdGNsYXNzXSkgeworCQlpZiAocHJpbnRrX3JhdGVsaW1pdCgpKQorCQkJcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAlczogIHVucmVjb2duaXplZCBjbGFzcyAlZFxuIiwKKwkJCSAgICAgICBfX2Z1bmNfXywgdGNsYXNzKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyoKKwkgKiBLbm93biB0byB0aGUga2VybmVsLCBidXQgbm90IHRvIHRoZSBwb2xpY3kuCisJICogSGFuZGxlIGFzIGEgZGVuaWFsIChhbGxvd2VkIGlzIDApLgorCSAqLworCXJldHVybiAwOwogfQogCiAvKgpAQCAtNDI5LDcgKzQzMSw3IEBACiAJdTMyIHR5cGU7CiAJaW50IHJjOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJY29udGV4dCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc2lkKTsKIAlCVUdfT04oIWNvbnRleHQpOwpAQCAtNDQxLDcgKzQ0Myw3IEBACiAJICovCiAJcmMgPSBlYml0bWFwX2dldF9iaXQoJnBvbGljeWRiLnBlcm1pc3NpdmVfbWFwLCB0eXBlKTsKIAotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC00ODYsNyArNDg4LDcgQEAKIAlpZiAoIXNzX2luaXRpYWxpemVkKQogCQlyZXR1cm4gMDsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCS8qCiAJICogUmVtYXAgZXh0ZW5kZWQgTmV0bGluayBjbGFzc2VzIGZvciBvbGQgcG9saWN5IHZlcnNpb25zLgpAQCAtNTQzLDcgKzU0NSw3IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTU3OCw3ICs1ODAsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlzY29udGV4dCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc3NpZCk7CiAJaWYgKCFzY29udGV4dCkgewpAQCAtNTk4LDcgKzYwMCw3IEBACiAJcmMgPSBjb250ZXh0X3N0cnVjdF9jb21wdXRlX2F2KHNjb250ZXh0LCB0Y29udGV4dCwgdGNsYXNzLAogCQkJCSAgICAgICByZXF1ZXN0ZWQsIGF2ZCk7CiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTYxNiw2ICs2MTgsMTQgQEAKIAkqc2NvbnRleHQgPSBOVUxMOwogCSpzY29udGV4dF9sZW4gPSAwOwogCisJaWYgKGNvbnRleHQtPmxlbikgeworCQkqc2NvbnRleHRfbGVuID0gY29udGV4dC0+bGVuOworCQkqc2NvbnRleHQgPSBrc3RyZHVwKGNvbnRleHQtPnN0ciwgR0ZQX0FUT01JQyk7CisJCWlmICghKCpzY29udGV4dCkpCisJCQlyZXR1cm4gLUVOT01FTTsKKwkJcmV0dXJuIDA7CisJfQorCiAJLyogQ29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgY29udGV4dC4gKi8KIAkqc2NvbnRleHRfbGVuICs9IHN0cmxlbihwb2xpY3lkYi5wX3VzZXJfdmFsX3RvX25hbWVbY29udGV4dC0+dXNlciAtIDFdKSArIDE7CiAJKnNjb250ZXh0X2xlbiArPSBzdHJsZW4ocG9saWN5ZGIucF9yb2xlX3ZhbF90b19uYW1lW2NvbnRleHQtPnJvbGUgLSAxXSkgKyAxOwpAQCAtNjU1LDE3ICs2NjUsOCBAQAogCXJldHVybiBpbml0aWFsX3NpZF90b19zdHJpbmdbc2lkXTsKIH0KIAotLyoqCi0gKiBzZWN1cml0eV9zaWRfdG9fY29udGV4dCAtIE9idGFpbiBhIGNvbnRleHQgZm9yIGEgZ2l2ZW4gU0lELgotICogQHNpZDogc2VjdXJpdHkgaWRlbnRpZmllciwgU0lECi0gKiBAc2NvbnRleHQ6IHNlY3VyaXR5IGNvbnRleHQKLSAqIEBzY29udGV4dF9sZW46IGxlbmd0aCBpbiBieXRlcwotICoKLSAqIFdyaXRlIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIEBzaWQKLSAqIGludG8gYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RyaW5nIG9mIHRoZSBjb3JyZWN0IHNpemUuICBTZXQgQHNjb250ZXh0Ci0gKiB0byBwb2ludCB0byB0aGlzIHN0cmluZyBhbmQgc2V0IEBzY29udGV4dF9sZW4gdG8gdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgotICovCi1pbnQgc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQodTMyIHNpZCwgY2hhciAqKnNjb250ZXh0LCB1MzIgKnNjb250ZXh0X2xlbikKK3N0YXRpYyBpbnQgc2VjdXJpdHlfc2lkX3RvX2NvbnRleHRfY29yZSh1MzIgc2lkLCBjaGFyICoqc2NvbnRleHQsCisJCQkJCXUzMiAqc2NvbnRleHRfbGVuLCBpbnQgZm9yY2UpCiB7CiAJc3RydWN0IGNvbnRleHQgKmNvbnRleHQ7CiAJaW50IHJjID0gMDsKQEAgLTY5Miw4ICs2OTMsMTEgQEAKIAkJcmMgPSAtRUlOVkFMOwogCQlnb3RvIG91dDsKIAl9Ci0JUE9MSUNZX1JETE9DSzsKLQljb250ZXh0ID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzaWQpOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CisJaWYgKGZvcmNlKQorCQljb250ZXh0ID0gc2lkdGFiX3NlYXJjaF9mb3JjZSgmc2lkdGFiLCBzaWQpOworCWVsc2UKKwkJY29udGV4dCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc2lkKTsKIAlpZiAoIWNvbnRleHQpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAlczogIHVucmVjb2duaXplZCBTSUQgJWRcbiIsCiAJCQlfX2Z1bmNfXywgc2lkKTsKQEAgLTcwMiw1OSArNzA2LDU0IEBACiAJfQogCXJjID0gY29udGV4dF9zdHJ1Y3RfdG9fc3RyaW5nKGNvbnRleHQsIHNjb250ZXh0LCBzY29udGV4dF9sZW4pOwogb3V0X3VubG9jazoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogb3V0OgogCXJldHVybiByYzsKIAogfQogCi1zdGF0aWMgaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2NvcmUoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCi0JCQkJCXUzMiAqc2lkLCB1MzIgZGVmX3NpZCwgZ2ZwX3QgZ2ZwX2ZsYWdzKQorLyoqCisgKiBzZWN1cml0eV9zaWRfdG9fY29udGV4dCAtIE9idGFpbiBhIGNvbnRleHQgZm9yIGEgZ2l2ZW4gU0lELgorICogQHNpZDogc2VjdXJpdHkgaWRlbnRpZmllciwgU0lECisgKiBAc2NvbnRleHQ6IHNlY3VyaXR5IGNvbnRleHQKKyAqIEBzY29udGV4dF9sZW46IGxlbmd0aCBpbiBieXRlcworICoKKyAqIFdyaXRlIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnRleHQgYXNzb2NpYXRlZCB3aXRoIEBzaWQKKyAqIGludG8gYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgc3RyaW5nIG9mIHRoZSBjb3JyZWN0IHNpemUuICBTZXQgQHNjb250ZXh0CisgKiB0byBwb2ludCB0byB0aGlzIHN0cmluZyBhbmQgc2V0IEBzY29udGV4dF9sZW4gdG8gdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nLgorICovCitpbnQgc2VjdXJpdHlfc2lkX3RvX2NvbnRleHQodTMyIHNpZCwgY2hhciAqKnNjb250ZXh0LCB1MzIgKnNjb250ZXh0X2xlbikKIHsKLQljaGFyICpzY29udGV4dDI7Ci0Jc3RydWN0IGNvbnRleHQgY29udGV4dDsKKwlyZXR1cm4gc2VjdXJpdHlfc2lkX3RvX2NvbnRleHRfY29yZShzaWQsIHNjb250ZXh0LCBzY29udGV4dF9sZW4sIDApOworfQorCitpbnQgc2VjdXJpdHlfc2lkX3RvX2NvbnRleHRfZm9yY2UodTMyIHNpZCwgY2hhciAqKnNjb250ZXh0LCB1MzIgKnNjb250ZXh0X2xlbikKK3sKKwlyZXR1cm4gc2VjdXJpdHlfc2lkX3RvX2NvbnRleHRfY29yZShzaWQsIHNjb250ZXh0LCBzY29udGV4dF9sZW4sIDEpOworfQorCisvKgorICogQ2F2ZWF0OiAgTXV0YXRlcyBzY29udGV4dC4KKyAqLworc3RhdGljIGludCBzdHJpbmdfdG9fY29udGV4dF9zdHJ1Y3Qoc3RydWN0IHBvbGljeWRiICpwb2wsCisJCQkJICAgIHN0cnVjdCBzaWR0YWIgKnNpZHRhYnAsCisJCQkJICAgIGNoYXIgKnNjb250ZXh0LAorCQkJCSAgICB1MzIgc2NvbnRleHRfbGVuLAorCQkJCSAgICBzdHJ1Y3QgY29udGV4dCAqY3R4LAorCQkJCSAgICB1MzIgZGVmX3NpZCkKK3sKIAlzdHJ1Y3Qgcm9sZV9kYXR1bSAqcm9sZTsKIAlzdHJ1Y3QgdHlwZV9kYXR1bSAqdHlwZGF0dW07CiAJc3RydWN0IHVzZXJfZGF0dW0gKnVzcmRhdHVtOwogCWNoYXIgKnNjb250ZXh0cCwgKnAsIG9sZGM7CiAJaW50IHJjID0gMDsKIAotCWlmICghc3NfaW5pdGlhbGl6ZWQpIHsKLQkJaW50IGk7Ci0KLQkJZm9yIChpID0gMTsgaSA8IFNFQ0lOSVRTSURfTlVNOyBpKyspIHsKLQkJCWlmICghc3RyY21wKGluaXRpYWxfc2lkX3RvX3N0cmluZ1tpXSwgc2NvbnRleHQpKSB7Ci0JCQkJKnNpZCA9IGk7Ci0JCQkJZ290byBvdXQ7Ci0JCQl9Ci0JCX0KLQkJKnNpZCA9IFNFQ0lOSVRTSURfS0VSTkVMOwotCQlnb3RvIG91dDsKLQl9Ci0JKnNpZCA9IFNFQ1NJRF9OVUxMOwotCi0JLyogQ29weSB0aGUgc3RyaW5nIHNvIHRoYXQgd2UgY2FuIG1vZGlmeSB0aGUgY29weSBhcyB3ZSBwYXJzZSBpdC4KLQkgICBUaGUgc3RyaW5nIHNob3VsZCBhbHJlYWR5IGJ5IG51bGwgdGVybWluYXRlZCwgYnV0IHdlIGFwcGVuZCBhCi0JICAgbnVsbCBzdWZmaXggdG8gdGhlIGNvcHkgdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCB0aGUgZXhpc3RpbmcKLQkgICBhdHRyIHBhY2thZ2UsIHdoaWNoIGRvZXNuJ3QgdmlldyB0aGUgbnVsbCB0ZXJtaW5hdG9yIGFzIHBhcnQKLQkgICBvZiB0aGUgYXR0cmlidXRlIHZhbHVlLiAqLwotCXNjb250ZXh0MiA9IGttYWxsb2Moc2NvbnRleHRfbGVuKzEsIGdmcF9mbGFncyk7Ci0JaWYgKCFzY29udGV4dDIpIHsKLQkJcmMgPSAtRU5PTUVNOwotCQlnb3RvIG91dDsKLQl9Ci0JbWVtY3B5KHNjb250ZXh0Miwgc2NvbnRleHQsIHNjb250ZXh0X2xlbik7Ci0Jc2NvbnRleHQyW3Njb250ZXh0X2xlbl0gPSAwOwotCi0JY29udGV4dF9pbml0KCZjb250ZXh0KTsKLQkqc2lkID0gU0VDU0lEX05VTEw7Ci0KLQlQT0xJQ1lfUkRMT0NLOworCWNvbnRleHRfaW5pdChjdHgpOwogCiAJLyogUGFyc2UgdGhlIHNlY3VyaXR5IGNvbnRleHQuICovCiAKIAlyYyA9IC1FSU5WQUw7Ci0Jc2NvbnRleHRwID0gKGNoYXIgKikgc2NvbnRleHQyOworCXNjb250ZXh0cCA9IChjaGFyICopIHNjb250ZXh0OwogCiAJLyogRXh0cmFjdCB0aGUgdXNlci4gKi8KIAlwID0gc2NvbnRleHRwOwpAQCAtNzYyLDE1ICs3NjEsMTUgQEAKIAkJcCsrOwogCiAJaWYgKCpwID09IDApCi0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAKIAkqcCsrID0gMDsKIAotCXVzcmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF91c2Vycy50YWJsZSwgc2NvbnRleHRwKTsKKwl1c3JkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF91c2Vycy50YWJsZSwgc2NvbnRleHRwKTsKIAlpZiAoIXVzcmRhdHVtKQotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCi0JY29udGV4dC51c2VyID0gdXNyZGF0dW0tPnZhbHVlOworCWN0eC0+dXNlciA9IHVzcmRhdHVtLT52YWx1ZTsKIAogCS8qIEV4dHJhY3Qgcm9sZS4gKi8KIAlzY29udGV4dHAgPSBwOwpAQCAtNzc4LDE0ICs3NzcsMTQgQEAKIAkJcCsrOwogCiAJaWYgKCpwID09IDApCi0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAKIAkqcCsrID0gMDsKIAotCXJvbGUgPSBoYXNodGFiX3NlYXJjaChwb2xpY3lkYi5wX3JvbGVzLnRhYmxlLCBzY29udGV4dHApOworCXJvbGUgPSBoYXNodGFiX3NlYXJjaChwb2wtPnBfcm9sZXMudGFibGUsIHNjb250ZXh0cCk7CiAJaWYgKCFyb2xlKQotCQlnb3RvIG91dF91bmxvY2s7Ci0JY29udGV4dC5yb2xlID0gcm9sZS0+dmFsdWU7CisJCWdvdG8gb3V0OworCWN0eC0+cm9sZSA9IHJvbGUtPnZhbHVlOwogCiAJLyogRXh0cmFjdCB0eXBlLiAqLwogCXNjb250ZXh0cCA9IHA7CkBAIC03OTQsMzYgKzc5Myw5MCBAQAogCW9sZGMgPSAqcDsKIAkqcCsrID0gMDsKIAotCXR5cGRhdHVtID0gaGFzaHRhYl9zZWFyY2gocG9saWN5ZGIucF90eXBlcy50YWJsZSwgc2NvbnRleHRwKTsKKwl0eXBkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBvbC0+cF90eXBlcy50YWJsZSwgc2NvbnRleHRwKTsKIAlpZiAoIXR5cGRhdHVtKQotCQlnb3RvIG91dF91bmxvY2s7CisJCWdvdG8gb3V0OwogCi0JY29udGV4dC50eXBlID0gdHlwZGF0dW0tPnZhbHVlOworCWN0eC0+dHlwZSA9IHR5cGRhdHVtLT52YWx1ZTsKIAotCXJjID0gbWxzX2NvbnRleHRfdG9fc2lkKG9sZGMsICZwLCAmY29udGV4dCwgJnNpZHRhYiwgZGVmX3NpZCk7CisJcmMgPSBtbHNfY29udGV4dF90b19zaWQocG9sLCBvbGRjLCAmcCwgY3R4LCBzaWR0YWJwLCBkZWZfc2lkKTsKIAlpZiAocmMpCi0JCWdvdG8gb3V0X3VubG9jazsKKwkJZ290byBvdXQ7CiAKLQlpZiAoKHAgLSBzY29udGV4dDIpIDwgc2NvbnRleHRfbGVuKSB7CisJaWYgKChwIC0gc2NvbnRleHQpIDwgc2NvbnRleHRfbGVuKSB7CiAJCXJjID0gLUVJTlZBTDsKLQkJZ290byBvdXRfdW5sb2NrOworCQlnb3RvIG91dDsKIAl9CiAKIAkvKiBDaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIG5ldyBjb250ZXh0LiAqLwotCWlmICghcG9saWN5ZGJfY29udGV4dF9pc3ZhbGlkKCZwb2xpY3lkYiwgJmNvbnRleHQpKSB7CisJaWYgKCFwb2xpY3lkYl9jb250ZXh0X2lzdmFsaWQocG9sLCBjdHgpKSB7CiAJCXJjID0gLUVJTlZBTDsKLQkJZ290byBvdXRfdW5sb2NrOworCQljb250ZXh0X2Rlc3Ryb3koY3R4KTsKKwkJZ290byBvdXQ7CiAJfQotCS8qIE9idGFpbiB0aGUgbmV3IHNpZC4gKi8KLQlyYyA9IHNpZHRhYl9jb250ZXh0X3RvX3NpZCgmc2lkdGFiLCAmY29udGV4dCwgc2lkKTsKLW91dF91bmxvY2s6Ci0JUE9MSUNZX1JEVU5MT0NLOwotCWNvbnRleHRfZGVzdHJveSgmY29udGV4dCk7Ci0Ja2ZyZWUoc2NvbnRleHQyKTsKKwlyYyA9IDA7CiBvdXQ6CiAJcmV0dXJuIHJjOwogfQogCitzdGF0aWMgaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkX2NvcmUoY29uc3QgY2hhciAqc2NvbnRleHQsIHUzMiBzY29udGV4dF9sZW4sCisJCQkJCXUzMiAqc2lkLCB1MzIgZGVmX3NpZCwgZ2ZwX3QgZ2ZwX2ZsYWdzLAorCQkJCQlpbnQgZm9yY2UpCit7CisJY2hhciAqc2NvbnRleHQyLCAqc3RyID0gTlVMTDsKKwlzdHJ1Y3QgY29udGV4dCBjb250ZXh0OworCWludCByYyA9IDA7CisKKwlpZiAoIXNzX2luaXRpYWxpemVkKSB7CisJCWludCBpOworCisJCWZvciAoaSA9IDE7IGkgPCBTRUNJTklUU0lEX05VTTsgaSsrKSB7CisJCQlpZiAoIXN0cmNtcChpbml0aWFsX3NpZF90b19zdHJpbmdbaV0sIHNjb250ZXh0KSkgeworCQkJCSpzaWQgPSBpOworCQkJCXJldHVybiAwOworCQkJfQorCQl9CisJCSpzaWQgPSBTRUNJTklUU0lEX0tFUk5FTDsKKwkJcmV0dXJuIDA7CisJfQorCSpzaWQgPSBTRUNTSURfTlVMTDsKKworCS8qIENvcHkgdGhlIHN0cmluZyBzbyB0aGF0IHdlIGNhbiBtb2RpZnkgdGhlIGNvcHkgYXMgd2UgcGFyc2UgaXQuICovCisJc2NvbnRleHQyID0ga21hbGxvYyhzY29udGV4dF9sZW4rMSwgZ2ZwX2ZsYWdzKTsKKwlpZiAoIXNjb250ZXh0MikKKwkJcmV0dXJuIC1FTk9NRU07CisJbWVtY3B5KHNjb250ZXh0Miwgc2NvbnRleHQsIHNjb250ZXh0X2xlbik7CisJc2NvbnRleHQyW3Njb250ZXh0X2xlbl0gPSAwOworCisJaWYgKGZvcmNlKSB7CisJCS8qIFNhdmUgYW5vdGhlciBjb3B5IGZvciBzdG9yaW5nIGluIHVuaW50ZXJwcmV0ZWQgZm9ybSAqLworCQlzdHIgPSBrc3RyZHVwKHNjb250ZXh0MiwgZ2ZwX2ZsYWdzKTsKKwkJaWYgKCFzdHIpIHsKKwkJCWtmcmVlKHNjb250ZXh0Mik7CisJCQlyZXR1cm4gLUVOT01FTTsKKwkJfQorCX0KKworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CisJcmMgPSBzdHJpbmdfdG9fY29udGV4dF9zdHJ1Y3QoJnBvbGljeWRiLCAmc2lkdGFiLAorCQkJCSAgICAgIHNjb250ZXh0Miwgc2NvbnRleHRfbGVuLAorCQkJCSAgICAgICZjb250ZXh0LCBkZWZfc2lkKTsKKwlpZiAocmMgPT0gLUVJTlZBTCAmJiBmb3JjZSkgeworCQljb250ZXh0LnN0ciA9IHN0cjsKKwkJY29udGV4dC5sZW4gPSBzY29udGV4dF9sZW47CisJCXN0ciA9IE5VTEw7CisJfSBlbHNlIGlmIChyYykKKwkJZ290byBvdXQ7CisJcmMgPSBzaWR0YWJfY29udGV4dF90b19zaWQoJnNpZHRhYiwgJmNvbnRleHQsIHNpZCk7CisJaWYgKHJjKQorCQljb250ZXh0X2Rlc3Ryb3koJmNvbnRleHQpOworb3V0OgorCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKKwlrZnJlZShzY29udGV4dDIpOworCWtmcmVlKHN0cik7CisJcmV0dXJuIHJjOworfQorCiAvKioKICAqIHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkIC0gT2J0YWluIGEgU0lEIGZvciBhIGdpdmVuIHNlY3VyaXR5IGNvbnRleHQuCiAgKiBAc2NvbnRleHQ6IHNlY3VyaXR5IGNvbnRleHQKQEAgLTgzOCw3ICs4OTEsNyBAQAogaW50IHNlY3VyaXR5X2NvbnRleHRfdG9fc2lkKGNvbnN0IGNoYXIgKnNjb250ZXh0LCB1MzIgc2NvbnRleHRfbGVuLCB1MzIgKnNpZCkKIHsKIAlyZXR1cm4gc2VjdXJpdHlfY29udGV4dF90b19zaWRfY29yZShzY29udGV4dCwgc2NvbnRleHRfbGVuLAotCQkJCQkgICAgc2lkLCBTRUNTSURfTlVMTCwgR0ZQX0tFUk5FTCk7CisJCQkJCSAgICBzaWQsIFNFQ1NJRF9OVUxMLCBHRlBfS0VSTkVMLCAwKTsKIH0KIAogLyoqCkBAIC04NTUsNiArOTA4LDcgQEAKICAqIFRoZSBkZWZhdWx0IFNJRCBpcyBwYXNzZWQgdG8gdGhlIE1MUyBsYXllciB0byBiZSB1c2VkIHRvIGFsbG93CiAgKiBrZXJuZWwgbGFiZWxpbmcgb2YgdGhlIE1MUyBmaWVsZCBpZiB0aGUgTUxTIGZpZWxkIGlzIG5vdCBwcmVzZW50CiAgKiAoZm9yIHVwZ3JhZGluZyB0byBNTFMgd2l0aG91dCBmdWxsIHJlbGFiZWwpLgorICogSW1wbGljaXRseSBmb3JjZXMgYWRkaW5nIG9mIHRoZSBjb250ZXh0IGV2ZW4gaWYgaXQgY2Fubm90IGJlIG1hcHBlZCB5ZXQuCiAgKiBSZXR1cm5zIC0lRUlOVkFMIGlmIHRoZSBjb250ZXh0IGlzIGludmFsaWQsIC0lRU5PTUVNIGlmIGluc3VmZmljaWVudAogICogbWVtb3J5IGlzIGF2YWlsYWJsZSwgb3IgMCBvbiBzdWNjZXNzLgogICovCkBAIC04NjIsNyArOTE2LDE0IEBACiAJCQkJICAgIHUzMiAqc2lkLCB1MzIgZGVmX3NpZCwgZ2ZwX3QgZ2ZwX2ZsYWdzKQogewogCXJldHVybiBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9jb3JlKHNjb250ZXh0LCBzY29udGV4dF9sZW4sCi0JCQkJCSAgICBzaWQsIGRlZl9zaWQsIGdmcF9mbGFncyk7CisJCQkJCSAgICBzaWQsIGRlZl9zaWQsIGdmcF9mbGFncywgMSk7Cit9CisKK2ludCBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9mb3JjZShjb25zdCBjaGFyICpzY29udGV4dCwgdTMyIHNjb250ZXh0X2xlbiwKKwkJCQkgIHUzMiAqc2lkKQoreworCXJldHVybiBzZWN1cml0eV9jb250ZXh0X3RvX3NpZF9jb3JlKHNjb250ZXh0LCBzY29udGV4dF9sZW4sCisJCQkJCSAgICBzaWQsIFNFQ1NJRF9OVUxMLCBHRlBfS0VSTkVMLCAxKTsKIH0KIAogc3RhdGljIGludCBjb21wdXRlX3NpZF9oYW5kbGVfaW52YWxpZF9jb250ZXh0KApAQCAtOTIyLDcgKzk4Myw3IEBACiAKIAljb250ZXh0X2luaXQoJm5ld2NvbnRleHQpOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJc2NvbnRleHQgPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIHNzaWQpOwogCWlmICghc2NvbnRleHQpIHsKQEAgLTEwMjcsNyArMTA4OCw3IEBACiAJLyogT2J0YWluIHRoZSBzaWQgZm9yIHRoZSBjb250ZXh0LiAqLwogCXJjID0gc2lkdGFiX2NvbnRleHRfdG9fc2lkKCZzaWR0YWIsICZuZXdjb250ZXh0LCBvdXRfc2lkKTsKIG91dF91bmxvY2s6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAljb250ZXh0X2Rlc3Ryb3koJm5ld2NvbnRleHQpOwogb3V0OgogCXJldHVybiByYzsKQEAgLTExMTAsNiArMTE3MSw3IEBACiAJY29uc3Qgc3RydWN0IHNlbGludXhfY2xhc3NfcGVybSAqa2RlZnMgPSAmc2VsaW51eF9jbGFzc19wZXJtOwogCWNvbnN0IGNoYXIgKmRlZl9jbGFzcywgKmRlZl9wZXJtLCAqcG9sX2NsYXNzOwogCXN0cnVjdCBzeW10YWIgKnBlcm1zOworCWJvb2wgcHJpbnRfdW5rbm93bl9oYW5kbGUgPSAwOwogCiAJaWYgKHAtPmFsbG93X3Vua25vd24pIHsKIAkJdTMyIG51bV9jbGFzc2VzID0ga2RlZnMtPmN0c19sZW47CkBAIC0xMTMwLDYgKzExOTIsNyBAQAogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJaWYgKHAtPmFsbG93X3Vua25vd24pCiAJCQkJcC0+dW5kZWZpbmVkX3Blcm1zW2ktMV0gPSB+MFU7CisJCQlwcmludF91bmtub3duX2hhbmRsZSA9IDE7CiAJCQljb250aW51ZTsKIAkJfQogCQlwb2xfY2xhc3MgPSBwLT5wX2NsYXNzX3ZhbF90b19uYW1lW2ktMV07CkBAIC0xMTU5LDYgKzEyMjIsNyBAQAogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJaWYgKHAtPmFsbG93X3Vua25vd24pCiAJCQkJcC0+dW5kZWZpbmVkX3Blcm1zW2NsYXNzX3ZhbC0xXSB8PSBwZXJtX3ZhbDsKKwkJCXByaW50X3Vua25vd25faGFuZGxlID0gMTsKIAkJCWNvbnRpbnVlOwogCQl9CiAJCXBlcmRhdHVtID0gaGFzaHRhYl9zZWFyY2gocGVybXMtPnRhYmxlLCBkZWZfcGVybSk7CkBAIC0xMjA2LDYgKzEyNzAsNyBAQAogCQkJCQlyZXR1cm4gLUVJTlZBTDsKIAkJCQlpZiAocC0+YWxsb3dfdW5rbm93bikKIAkJCQkJcC0+dW5kZWZpbmVkX3Blcm1zW2NsYXNzX3ZhbC0xXSB8PSAoMSA8PCBqKTsKKwkJCQlwcmludF91bmtub3duX2hhbmRsZSA9IDE7CiAJCQkJY29udGludWU7CiAJCQl9CiAJCQlwZXJkYXR1bSA9IGhhc2h0YWJfc2VhcmNoKHBlcm1zLT50YWJsZSwgZGVmX3Blcm0pOwpAQCAtMTIyMyw2ICsxMjg4LDkgQEAKIAkJCX0KIAkJfQogCX0KKwlpZiAocHJpbnRfdW5rbm93bl9oYW5kbGUpCisJCXByaW50ayhLRVJOX0lORk8gIlNFTGludXg6IHRoZSBhYm92ZSB1bmtub3duIGNsYXNzZXMgYW5kIHBlcm1pc3Npb25zIHdpbGwgYmUgJXNcbiIsCisJCQkoc2VjdXJpdHlfZ2V0X2FsbG93X3Vua25vd24oKSA/ICJhbGxvd2VkIiA6ICJkZW5pZWQiKSk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEyNDYsOSArMTMxNCwxMiBAQAogCQljaGFyICpzOwogCQl1MzIgbGVuOwogCi0JCWNvbnRleHRfc3RydWN0X3RvX3N0cmluZyhjb250ZXh0LCAmcywgJmxlbik7Ci0JCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogIGNvbnRleHQgJXMgaXMgaW52YWxpZFxuIiwgcyk7Ci0JCWtmcmVlKHMpOworCQlpZiAoIWNvbnRleHRfc3RydWN0X3RvX3N0cmluZyhjb250ZXh0LCAmcywgJmxlbikpIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJICAgICAgICJTRUxpbnV4OiAgQ29udGV4dCAlcyB3b3VsZCBiZSBpbnZhbGlkIGlmIGVuZm9yY2luZ1xuIiwKKwkJCSAgICAgICBzKTsKKwkJCWtmcmVlKHMpOworCQl9CiAJfQogCXJldHVybiByYzsKIH0KQEAgLTEyODAsNiArMTM1MSwzNyBAQAogCiAJYXJncyA9IHA7CiAKKwlpZiAoYy0+c3RyKSB7CisJCXN0cnVjdCBjb250ZXh0IGN0eDsKKwkJcyA9IGtzdHJkdXAoYy0+c3RyLCBHRlBfS0VSTkVMKTsKKwkJaWYgKCFzKSB7CisJCQlyYyA9IC1FTk9NRU07CisJCQlnb3RvIG91dDsKKwkJfQorCQlyYyA9IHN0cmluZ190b19jb250ZXh0X3N0cnVjdChhcmdzLT5uZXdwLCBOVUxMLCBzLAorCQkJCQkgICAgICBjLT5sZW4sICZjdHgsIFNFQ1NJRF9OVUxMKTsKKwkJa2ZyZWUocyk7CisJCWlmICghcmMpIHsKKwkJCXByaW50ayhLRVJOX0lORk8KKwkJICAgICAgICJTRUxpbnV4OiAgQ29udGV4dCAlcyBiZWNhbWUgdmFsaWQgKG1hcHBlZCkuXG4iLAorCQkJICAgICAgIGMtPnN0cik7CisJCQkvKiBSZXBsYWNlIHN0cmluZyB3aXRoIG1hcHBlZCByZXByZXNlbnRhdGlvbi4gKi8KKwkJCWtmcmVlKGMtPnN0cik7CisJCQltZW1jcHkoYywgJmN0eCwgc2l6ZW9mKCpjKSk7CisJCQlnb3RvIG91dDsKKwkJfSBlbHNlIGlmIChyYyA9PSAtRUlOVkFMKSB7CisJCQkvKiBSZXRhaW4gc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBsYXRlciBtYXBwaW5nLiAqLworCQkJcmMgPSAwOworCQkJZ290byBvdXQ7CisJCX0gZWxzZSB7CisJCQkvKiBPdGhlciBlcnJvciBjb25kaXRpb24sIGUuZy4gRU5PTUVNLiAqLworCQkJcHJpbnRrKEtFUk5fRVJSCisJCSAgICAgICAiU0VMaW51eDogICBVbmFibGUgdG8gbWFwIGNvbnRleHQgJXMsIHJjID0gJWQuXG4iLAorCQkJICAgICAgIGMtPnN0ciwgLXJjKTsKKwkJCWdvdG8gb3V0OworCQl9CisJfQorCiAJcmMgPSBjb250ZXh0X2NweSgmb2xkYywgYyk7CiAJaWYgKHJjKQogCQlnb3RvIG91dDsKQEAgLTEzMTksMTMgKzE0MjEsMjEgQEAKIAl9CiAKIAljb250ZXh0X2Rlc3Ryb3koJm9sZGMpOworCXJjID0gMDsKIG91dDoKIAlyZXR1cm4gcmM7CiBiYWQ6Ci0JY29udGV4dF9zdHJ1Y3RfdG9fc3RyaW5nKCZvbGRjLCAmcywgJmxlbik7CisJLyogTWFwIG9sZCByZXByZXNlbnRhdGlvbiB0byBzdHJpbmcgYW5kIHNhdmUgaXQuICovCisJaWYgKGNvbnRleHRfc3RydWN0X3RvX3N0cmluZygmb2xkYywgJnMsICZsZW4pKQorCQlyZXR1cm4gLUVOT01FTTsKIAljb250ZXh0X2Rlc3Ryb3koJm9sZGMpOwotCXByaW50ayhLRVJOX0VSUiAiU0VMaW51eDogIGludmFsaWRhdGluZyBjb250ZXh0ICVzXG4iLCBzKTsKLQlrZnJlZShzKTsKKwljb250ZXh0X2Rlc3Ryb3koYyk7CisJYy0+c3RyID0gczsKKwljLT5sZW4gPSBsZW47CisJcHJpbnRrKEtFUk5fSU5GTworCSAgICAgICAiU0VMaW51eDogIENvbnRleHQgJXMgYmVjYW1lIGludmFsaWQgKHVubWFwcGVkKS5cbiIsCisJICAgICAgIGMtPnN0cik7CisJcmMgPSAwOwogCWdvdG8gb3V0OwogfQogCkBAIC0xMzU5LDE3ICsxNDY5LDEzIEBACiAJaW50IHJjID0gMDsKIAlzdHJ1Y3QgcG9saWN5X2ZpbGUgZmlsZSA9IHsgZGF0YSwgbGVuIH0sICpmcCA9ICZmaWxlOwogCi0JTE9BRF9MT0NLOwotCiAJaWYgKCFzc19pbml0aWFsaXplZCkgewogCQlhdnRhYl9jYWNoZV9pbml0KCk7CiAJCWlmIChwb2xpY3lkYl9yZWFkKCZwb2xpY3lkYiwgZnApKSB7Ci0JCQlMT0FEX1VOTE9DSzsKIAkJCWF2dGFiX2NhY2hlX2Rlc3Ryb3koKTsKIAkJCXJldHVybiAtRUlOVkFMOwogCQl9CiAJCWlmIChwb2xpY3lkYl9sb2FkX2lzaWRzKCZwb2xpY3lkYiwgJnNpZHRhYikpIHsKLQkJCUxPQURfVU5MT0NLOwogCQkJcG9saWN5ZGJfZGVzdHJveSgmcG9saWN5ZGIpOwogCQkJYXZ0YWJfY2FjaGVfZGVzdHJveSgpOwogCQkJcmV0dXJuIC1FSU5WQUw7CkBAIC0xMzc4LDcgKzE0ODQsNiBAQAogCQlpZiAodmFsaWRhdGVfY2xhc3NlcygmcG9saWN5ZGIpKSB7CiAJCQlwcmludGsoS0VSTl9FUlIKIAkJCSAgICAgICAiU0VMaW51eDogIHRoZSBkZWZpbml0aW9uIG9mIGEgY2xhc3MgaXMgaW5jb3JyZWN0XG4iKTsKLQkJCUxPQURfVU5MT0NLOwogCQkJc2lkdGFiX2Rlc3Ryb3koJnNpZHRhYik7CiAJCQlwb2xpY3lkYl9kZXN0cm95KCZwb2xpY3lkYik7CiAJCQlhdnRhYl9jYWNoZV9kZXN0cm95KCk7CkBAIC0xMzg4LDcgKzE0OTMsNiBAQAogCQlwb2xpY3lkYl9sb2FkZWRfdmVyc2lvbiA9IHBvbGljeWRiLnBvbGljeXZlcnM7CiAJCXNzX2luaXRpYWxpemVkID0gMTsKIAkJc2Vxbm8gPSArK2xhdGVzdF9ncmFudGluZzsKLQkJTE9BRF9VTkxPQ0s7CiAJCXNlbGludXhfY29tcGxldGVfaW5pdCgpOwogCQlhdmNfc3NfcmVzZXQoc2Vxbm8pOwogCQlzZWxubF9ub3RpZnlfcG9saWN5bG9hZChzZXFubyk7CkBAIC0xNDAxLDEyICsxNTA1LDEzIEBACiAJc2lkdGFiX2hhc2hfZXZhbCgmc2lkdGFiLCAic2lkcyIpOwogI2VuZGlmCiAKLQlpZiAocG9saWN5ZGJfcmVhZCgmbmV3cG9saWN5ZGIsIGZwKSkgewotCQlMT0FEX1VOTE9DSzsKKwlpZiAocG9saWN5ZGJfcmVhZCgmbmV3cG9saWN5ZGIsIGZwKSkKIAkJcmV0dXJuIC1FSU5WQUw7Ci0JfQogCi0Jc2lkdGFiX2luaXQoJm5ld3NpZHRhYik7CisJaWYgKHNpZHRhYl9pbml0KCZuZXdzaWR0YWIpKSB7CisJCXBvbGljeWRiX2Rlc3Ryb3koJm5ld3BvbGljeWRiKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQogCiAJLyogVmVyaWZ5IHRoYXQgdGhlIGtlcm5lbCBkZWZpbmVkIGNsYXNzZXMgYXJlIGNvcnJlY3QuICovCiAJaWYgKHZhbGlkYXRlX2NsYXNzZXMoJm5ld3BvbGljeWRiKSkgewpAQCAtMTQyOSwyNSArMTUzNCwyOCBAQAogCQlnb3RvIGVycjsKIAl9CiAKLQkvKiBDb252ZXJ0IHRoZSBpbnRlcm5hbCByZXByZXNlbnRhdGlvbnMgb2YgY29udGV4dHMKLQkgICBpbiB0aGUgbmV3IFNJRCB0YWJsZSBhbmQgcmVtb3ZlIGludmFsaWQgU0lEcy4gKi8KKwkvKgorCSAqIENvbnZlcnQgdGhlIGludGVybmFsIHJlcHJlc2VudGF0aW9ucyBvZiBjb250ZXh0cworCSAqIGluIHRoZSBuZXcgU0lEIHRhYmxlLgorCSAqLwogCWFyZ3Mub2xkcCA9ICZwb2xpY3lkYjsKIAlhcmdzLm5ld3AgPSAmbmV3cG9saWN5ZGI7Ci0Jc2lkdGFiX21hcF9yZW1vdmVfb25fZXJyb3IoJm5ld3NpZHRhYiwgY29udmVydF9jb250ZXh0LCAmYXJncyk7CisJcmMgPSBzaWR0YWJfbWFwKCZuZXdzaWR0YWIsIGNvbnZlcnRfY29udGV4dCwgJmFyZ3MpOworCWlmIChyYykKKwkJZ290byBlcnI7CiAKIAkvKiBTYXZlIHRoZSBvbGQgcG9saWN5ZGIgYW5kIFNJRCB0YWJsZSB0byBmcmVlIGxhdGVyLiAqLwogCW1lbWNweSgmb2xkcG9saWN5ZGIsICZwb2xpY3lkYiwgc2l6ZW9mIHBvbGljeWRiKTsKIAlzaWR0YWJfc2V0KCZvbGRzaWR0YWIsICZzaWR0YWIpOwogCiAJLyogSW5zdGFsbCB0aGUgbmV3IHBvbGljeWRiIGFuZCBTSUQgdGFibGUuICovCi0JUE9MSUNZX1dSTE9DSzsKKwl3cml0ZV9sb2NrX2lycSgmcG9saWN5X3J3bG9jayk7CiAJbWVtY3B5KCZwb2xpY3lkYiwgJm5ld3BvbGljeWRiLCBzaXplb2YgcG9saWN5ZGIpOwogCXNpZHRhYl9zZXQoJnNpZHRhYiwgJm5ld3NpZHRhYik7CiAJc2VjdXJpdHlfbG9hZF9wb2xpY3ljYXBzKCk7CiAJc2Vxbm8gPSArK2xhdGVzdF9ncmFudGluZzsKIAlwb2xpY3lkYl9sb2FkZWRfdmVyc2lvbiA9IHBvbGljeWRiLnBvbGljeXZlcnM7Ci0JUE9MSUNZX1dSVU5MT0NLOwotCUxPQURfVU5MT0NLOworCXdyaXRlX3VubG9ja19pcnEoJnBvbGljeV9yd2xvY2spOwogCiAJLyogRnJlZSB0aGUgb2xkIHBvbGljeWRiIGFuZCBTSUQgdGFibGUuICovCiAJcG9saWN5ZGJfZGVzdHJveSgmb2xkcG9saWN5ZGIpOwpAQCAtMTQ2MSw3ICsxNTY5LDYgQEAKIAlyZXR1cm4gMDsKIAogZXJyOgotCUxPQURfVU5MT0NLOwogCXNpZHRhYl9kZXN0cm95KCZuZXdzaWR0YWIpOwogCXBvbGljeWRiX2Rlc3Ryb3koJm5ld3BvbGljeWRiKTsKIAlyZXR1cm4gcmM7CkBAIC0xNDc5LDcgKzE1ODYsNyBAQAogCXN0cnVjdCBvY29udGV4dCAqYzsKIAlpbnQgcmMgPSAwOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJYyA9IHBvbGljeWRiLm9jb250ZXh0c1tPQ09OX1BPUlRdOwogCXdoaWxlIChjKSB7CkBAIC0xNTA0LDcgKzE2MTEsNyBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xNTE4LDcgKzE2MjUsNyBAQAogCWludCByYyA9IDA7CiAJc3RydWN0IG9jb250ZXh0ICpjOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJYyA9IHBvbGljeWRiLm9jb250ZXh0c1tPQ09OX05FVElGXTsKIAl3aGlsZSAoYykgewpAQCAtMTU0NSw3ICsxNjUyLDcgQEAKIAkJKmlmX3NpZCA9IFNFQ0lOSVRTSURfTkVUSUY7CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMTU3Nyw3ICsxNjg0LDcgQEAKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBvY29udGV4dCAqYzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXN3aXRjaCAoZG9tYWluKSB7CiAJY2FzZSBBRl9JTkVUOiB7CkBAIC0xNjMyLDcgKzE3MzksNyBAQAogCX0KIAogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0xNjcxLDcgKzE3NzgsOSBAQAogCWlmICghc3NfaW5pdGlhbGl6ZWQpCiAJCWdvdG8gb3V0OwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOworCisJY29udGV4dF9pbml0KCZ1c2VyY29uKTsKIAogCWZyb21jb24gPSBzaWR0YWJfc2VhcmNoKCZzaWR0YWIsIGZyb21zaWQpOwogCWlmICghZnJvbWNvbikgewpAQCAtMTcyMiw3ICsxODMxLDcgQEAKIAl9CiAKIG91dF91bmxvY2s6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlpZiAocmMgfHwgIW15bmVsKSB7CiAJCWtmcmVlKG15c2lkcyk7CiAJCWdvdG8gb3V0OwpAQCAtMTc3NSw3ICsxODg0LDcgQEAKIAl3aGlsZSAocGF0aFswXSA9PSAnLycgJiYgcGF0aFsxXSA9PSAnLycpCiAJCXBhdGgrKzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWZvciAoZ2VuZnMgPSBwb2xpY3lkYi5nZW5mczsgZ2VuZnM7IGdlbmZzID0gZ2VuZnMtPm5leHQpIHsKIAkJY21wID0gc3RyY21wKGZzdHlwZSwgZ2VuZnMtPmZzdHlwZSk7CkBAIC0xODEyLDcgKzE5MjEsNyBAQAogCiAJKnNpZCA9IGMtPnNpZFswXTsKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMTgzMCw3ICsxOTM5LDcgQEAKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBvY29udGV4dCAqYzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWMgPSBwb2xpY3lkYi5vY29udGV4dHNbT0NPTl9GU1VTRV07CiAJd2hpbGUgKGMpIHsKQEAgLTE4NjAsNyArMTk2OSw3IEBACiAJfQogCiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiB9CiAKQEAgLTE4NjgsNyArMTk3Nyw3IEBACiB7CiAJaW50IGksIHJjID0gLUVOT01FTTsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAkqbmFtZXMgPSBOVUxMOwogCSp2YWx1ZXMgPSBOVUxMOwogCkBAIC0xODk4LDcgKzIwMDcsNyBAQAogCX0KIAlyYyA9IDA7CiBvdXQ6Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiBlcnI6CiAJaWYgKCpuYW1lcykgewpAQCAtMTkxNiw3ICsyMDI1LDcgQEAKIAlpbnQgbGVucCwgc2Vxbm8gPSAwOwogCXN0cnVjdCBjb25kX25vZGUgKmN1cjsKIAotCVBPTElDWV9XUkxPQ0s7CisJd3JpdGVfbG9ja19pcnEoJnBvbGljeV9yd2xvY2spOwogCiAJbGVucCA9IHBvbGljeWRiLnBfYm9vbHMubnByaW07CiAJaWYgKGxlbiAhPSBsZW5wKSB7CkBAIC0xOTUwLDcgKzIwNTksNyBAQAogCXNlcW5vID0gKytsYXRlc3RfZ3JhbnRpbmc7CiAKIG91dDoKLQlQT0xJQ1lfV1JVTkxPQ0s7CisJd3JpdGVfdW5sb2NrX2lycSgmcG9saWN5X3J3bG9jayk7CiAJaWYgKCFyYykgewogCQlhdmNfc3NfcmVzZXQoc2Vxbm8pOwogCQlzZWxubF9ub3RpZnlfcG9saWN5bG9hZChzZXFubyk7CkBAIC0xOTY0LDcgKzIwNzMsNyBAQAogCWludCByYyA9IDA7CiAJaW50IGxlbjsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWxlbiA9IHBvbGljeWRiLnBfYm9vbHMubnByaW07CiAJaWYgKGJvb2wgPj0gbGVuKSB7CkBAIC0xOTc0LDcgKzIwODMsNyBAQAogCiAJcmMgPSBwb2xpY3lkYi5ib29sX3ZhbF90b19zdHJ1Y3RbYm9vbF0tPnN0YXRlOwogb3V0OgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogCkBAIC0yMDI5LDcgKzIxMzgsNyBAQAogCiAJY29udGV4dF9pbml0KCZuZXdjb24pOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCWNvbnRleHQxID0gc2lkdGFiX3NlYXJjaCgmc2lkdGFiLCBzaWQpOwogCWlmICghY29udGV4dDEpIHsKIAkJcHJpbnRrKEtFUk5fRVJSICJTRUxpbnV4OiAlczogIHVucmVjb2duaXplZCBTSUQgJWRcbiIsCkBAIC0yMDcxLDcgKzIxODAsNyBAQAogCX0KIAogb3V0X3VubG9jazoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCWNvbnRleHRfZGVzdHJveSgmbmV3Y29uKTsKIG91dDoKIAlyZXR1cm4gcmM7CkBAIC0yMTI4LDcgKzIyMzcsNyBAQAogCQlyZXR1cm4gMDsKIAl9CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlubGJsX2N0eCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgbmxibF9zaWQpOwogCWlmICghbmxibF9jdHgpIHsKQEAgLTIxNDcsNyArMjI1Niw3IEBACiAJcmMgPSAobWxzX2NvbnRleHRfY21wKG5sYmxfY3R4LCB4ZnJtX2N0eCkgPyAwIDogLUVBQ0NFUyk7CiAKIG91dF9zbG93cGF0aDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCWlmIChyYyA9PSAwKQogCQkvKiBhdCBwcmVzZW50IE5ldExhYmVsIFNJRHMvbGFiZWxzIHJlYWxseSBvbmx5IGNhcnJ5IE1MUwogCQkgKiBpbmZvcm1hdGlvbiBzbyBpZiB0aGUgTUxTIHBvcnRpb24gb2YgdGhlIE5ldExhYmVsIFNJRApAQCAtMjE3Nyw3ICsyMjg2LDcgQEAKIHsKIAlpbnQgcmMgPSAtRU5PTUVNOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJKm5jbGFzc2VzID0gcG9saWN5ZGIucF9jbGFzc2VzLm5wcmltOwogCSpjbGFzc2VzID0ga2NhbGxvYygqbmNsYXNzZXMsIHNpemVvZigqY2xhc3NlcyksIEdGUF9BVE9NSUMpOwpAQCAtMjE5NCw3ICsyMzAzLDcgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIH0KIApAQCAtMjIxNiw3ICsyMzI1LDcgQEAKIAlpbnQgcmMgPSAtRU5PTUVNLCBpOwogCXN0cnVjdCBjbGFzc19kYXR1bSAqbWF0Y2g7CiAKLQlQT0xJQ1lfUkRMT0NLOworCXJlYWRfbG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAltYXRjaCA9IGhhc2h0YWJfc2VhcmNoKHBvbGljeWRiLnBfY2xhc3Nlcy50YWJsZSwgY2xhc3MpOwogCWlmICghbWF0Y2gpIHsKQEAgLTIyNDQsMTEgKzIzNTMsMTEgQEAKIAkJZ290byBlcnI7CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiByYzsKIAogZXJyOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJZm9yIChpID0gMDsgaSA8ICpucGVybXM7IGkrKykKIAkJa2ZyZWUoKCpwZXJtcylbaV0pOwogCWtmcmVlKCpwZXJtcyk7CkBAIC0yMjc5LDkgKzIzODgsOSBAQAogewogCWludCByYzsKIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyYyA9IGViaXRtYXBfZ2V0X2JpdCgmcG9saWN5ZGIucG9saWN5Y2FwcywgcmVxX2NhcCk7Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCXJldHVybiByYzsKIH0KQEAgLTIzNDUsNyArMjQ1NCw3IEBACiAKIAljb250ZXh0X2luaXQoJnRtcHJ1bGUtPmF1X2N0eHQpOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJdG1wcnVsZS0+YXVfc2Vxbm8gPSBsYXRlc3RfZ3JhbnRpbmc7CiAKQEAgLTIzODIsNyArMjQ5MSw3IEBACiAJCWJyZWFrOwogCX0KIAotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAKIAlpZiAocmMpIHsKIAkJc2VsaW51eF9hdWRpdF9ydWxlX2ZyZWUodG1wcnVsZSk7CkBAIC0yNDIwLDcgKzI1MjksNyBAQAogfQogCiBpbnQgc2VsaW51eF9hdWRpdF9ydWxlX21hdGNoKHUzMiBzaWQsIHUzMiBmaWVsZCwgdTMyIG9wLCB2b2lkICp2cnVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGF1ZGl0X2NvbnRleHQgKmFjdHgpCisJCQkgICAgIHN0cnVjdCBhdWRpdF9jb250ZXh0ICphY3R4KQogewogCXN0cnVjdCBjb250ZXh0ICpjdHh0OwogCXN0cnVjdCBtbHNfbGV2ZWwgKmxldmVsOwpAQCAtMjQzMyw3ICsyNTQyLDcgQEAKIAkJcmV0dXJuIC1FTk9FTlQ7CiAJfQogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCiAJaWYgKHJ1bGUtPmF1X3NlcW5vIDwgbGF0ZXN0X2dyYW50aW5nKSB7CiAJCWF1ZGl0X2xvZyhhY3R4LCBHRlBfQVRPTUlDLCBBVURJVF9TRUxJTlVYX0VSUiwKQEAgLTI1MjcsMTQgKzI2MzYsMTQgQEAKIAl9CiAKIG91dDoKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCXJldHVybiBtYXRjaDsKIH0KIAogc3RhdGljIGludCAoKmF1cnVsZV9jYWxsYmFjaykodm9pZCkgPSBhdWRpdF91cGRhdGVfbHNtX3J1bGVzOwogCiBzdGF0aWMgaW50IGF1cnVsZV9hdmNfY2FsbGJhY2sodTMyIGV2ZW50LCB1MzIgc3NpZCwgdTMyIHRzaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IGNsYXNzLCB1MzIgcGVybXMsIHUzMiAqcmV0YWluZWQpCisJCQkgICAgICAgdTE2IGNsYXNzLCB1MzIgcGVybXMsIHUzMiAqcmV0YWluZWQpCiB7CiAJaW50IGVyciA9IDA7CiAKQEAgLTI2MTUsNyArMjcyNCw3IEBACiAJCXJldHVybiAwOwogCX0KIAotCVBPTElDWV9SRExPQ0s7CisJcmVhZF9sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAogCWlmIChzZWNhdHRyLT5mbGFncyAmIE5FVExCTF9TRUNBVFRSX0NBQ0hFKSB7CiAJCSpzaWQgPSAqKHUzMiAqKXNlY2F0dHItPmNhY2hlLT5kYXRhOwpAQCAtMjY2MCw3ICsyNzY5LDcgQEAKIAl9CiAKIG5ldGxibF9zZWNhdHRyX3RvX3NpZF9yZXR1cm46Ci0JUE9MSUNZX1JEVU5MT0NLOworCXJlYWRfdW5sb2NrKCZwb2xpY3lfcndsb2NrKTsKIAlyZXR1cm4gcmM7CiBuZXRsYmxfc2VjYXR0cl90b19zaWRfcmV0dXJuX2NsZWFudXA6CiAJZWJpdG1hcF9kZXN0cm95KCZjdHhfbmV3LnJhbmdlLmxldmVsWzBdLmNhdCk7CkBAIC0yNjg1LDcgKzI3OTQsNyBAQAogCWlmICghc3NfaW5pdGlhbGl6ZWQpCiAJCXJldHVybiAwOwogCi0JUE9MSUNZX1JETE9DSzsKKwlyZWFkX2xvY2soJnBvbGljeV9yd2xvY2spOwogCWN0eCA9IHNpZHRhYl9zZWFyY2goJnNpZHRhYiwgc2lkKTsKIAlpZiAoY3R4ID09IE5VTEwpCiAJCWdvdG8gbmV0bGJsX3NpZF90b19zZWNhdHRyX2ZhaWx1cmU7CkBAIC0yNjk2LDEyICsyODA1LDEyIEBACiAJcmMgPSBtbHNfZXhwb3J0X25ldGxibF9jYXQoY3R4LCBzZWNhdHRyKTsKIAlpZiAocmMgIT0gMCkKIAkJZ290byBuZXRsYmxfc2lkX3RvX3NlY2F0dHJfZmFpbHVyZTsKLQlQT0xJQ1lfUkRVTkxPQ0s7CisJcmVhZF91bmxvY2soJnBvbGljeV9yd2xvY2spOwogCiAJcmV0dXJuIDA7CiAKIG5ldGxibF9zaWRfdG9fc2VjYXR0cl9mYWlsdXJlOgotCVBPTElDWV9SRFVOTE9DSzsKKwlyZWFkX3VubG9jaygmcG9saWN5X3J3bG9jayk7CiAJcmV0dXJuIHJjOwogfQogI2VuZGlmIC8qIENPTkZJR19ORVRMQUJFTCAqLwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuYyBiL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmMKaW5kZXggNGE1MTZmZi4uYTgxZGVkMSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuYworKysgYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5jCkBAIC0xNCwxMCArMTQsNiBAQAogI2RlZmluZSBTSURUQUJfSEFTSChzaWQpIFwKIChzaWQgJiBTSURUQUJfSEFTSF9NQVNLKQogCi0jZGVmaW5lIElOSVRfU0lEVEFCX0xPQ0socykgc3Bpbl9sb2NrX2luaXQoJnMtPmxvY2spCi0jZGVmaW5lIFNJRFRBQl9MT0NLKHMsIHgpIHNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCB4KQotI2RlZmluZSBTSURUQUJfVU5MT0NLKHMsIHgpIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIHgpCi0KIGludCBzaWR0YWJfaW5pdChzdHJ1Y3Qgc2lkdGFiICpzKQogewogCWludCBpOwpAQCAtMzAsNyArMjYsNyBAQAogCXMtPm5lbCA9IDA7CiAJcy0+bmV4dF9zaWQgPSAxOwogCXMtPnNodXRkb3duID0gMDsKLQlJTklUX1NJRFRBQl9MT0NLKHMpOworCXNwaW5fbG9ja19pbml0KCZzLT5sb2NrKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtODYsNyArODIsNyBAQAogCXJldHVybiByYzsKIH0KIAotc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2goc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCkKK3N0YXRpYyBzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaF9jb3JlKHN0cnVjdCBzaWR0YWIgKnMsIHUzMiBzaWQsIGludCBmb3JjZSkKIHsKIAlpbnQgaHZhbHVlOwogCXN0cnVjdCBzaWR0YWJfbm9kZSAqY3VyOwpAQCAtOTksNyArOTUsMTAgQEAKIAl3aGlsZSAoY3VyICE9IE5VTEwgJiYgc2lkID4gY3VyLT5zaWQpCiAJCWN1ciA9IGN1ci0+bmV4dDsKIAotCWlmIChjdXIgPT0gTlVMTCB8fCBzaWQgIT0gY3VyLT5zaWQpIHsKKwlpZiAoZm9yY2UgJiYgY3VyICYmIHNpZCA9PSBjdXItPnNpZCAmJiBjdXItPmNvbnRleHQubGVuKQorCQlyZXR1cm4gJmN1ci0+Y29udGV4dDsKKworCWlmIChjdXIgPT0gTlVMTCB8fCBzaWQgIT0gY3VyLT5zaWQgfHwgY3VyLT5jb250ZXh0LmxlbikgewogCQkvKiBSZW1hcCBpbnZhbGlkIFNJRHMgdG8gdGhlIHVubGFiZWxlZCBTSUQuICovCiAJCXNpZCA9IFNFQ0lOSVRTSURfVU5MQUJFTEVEOwogCQlodmFsdWUgPSBTSURUQUJfSEFTSChzaWQpOwpAQCAtMTEzLDYgKzExMiwxNiBAQAogCXJldHVybiAmY3VyLT5jb250ZXh0OwogfQogCitzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaChzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkKQoreworCXJldHVybiBzaWR0YWJfc2VhcmNoX2NvcmUocywgc2lkLCAwKTsKK30KKworc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2hfZm9yY2Uoc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCkKK3sKKwlyZXR1cm4gc2lkdGFiX3NlYXJjaF9jb3JlKHMsIHNpZCwgMSk7Cit9CisKIGludCBzaWR0YWJfbWFwKHN0cnVjdCBzaWR0YWIgKnMsCiAJICAgICAgIGludCAoKmFwcGx5KSAodTMyIHNpZCwKIAkJCSAgICAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCkBAIC0xMzgsNDMgKzE0Nyw2IEBACiAJcmV0dXJuIHJjOwogfQogCi12b2lkIHNpZHRhYl9tYXBfcmVtb3ZlX29uX2Vycm9yKHN0cnVjdCBzaWR0YWIgKnMsCi0JCQkJaW50ICgqYXBwbHkpICh1MzIgc2lkLAotCQkJCQkgICAgICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKLQkJCQkJICAgICAgdm9pZCAqYXJncyksCi0JCQkJdm9pZCAqYXJncykKLXsKLQlpbnQgaSwgcmV0OwotCXN0cnVjdCBzaWR0YWJfbm9kZSAqbGFzdCwgKmN1ciwgKnRlbXA7Ci0KLQlpZiAoIXMpCi0JCXJldHVybjsKLQotCWZvciAoaSA9IDA7IGkgPCBTSURUQUJfU0laRTsgaSsrKSB7Ci0JCWxhc3QgPSBOVUxMOwotCQljdXIgPSBzLT5odGFibGVbaV07Ci0JCXdoaWxlIChjdXIgIT0gTlVMTCkgewotCQkJcmV0ID0gYXBwbHkoY3VyLT5zaWQsICZjdXItPmNvbnRleHQsIGFyZ3MpOwotCQkJaWYgKHJldCkgewotCQkJCWlmIChsYXN0KQotCQkJCQlsYXN0LT5uZXh0ID0gY3VyLT5uZXh0OwotCQkJCWVsc2UKLQkJCQkJcy0+aHRhYmxlW2ldID0gY3VyLT5uZXh0OwotCQkJCXRlbXAgPSBjdXI7Ci0JCQkJY3VyID0gY3VyLT5uZXh0OwotCQkJCWNvbnRleHRfZGVzdHJveSgmdGVtcC0+Y29udGV4dCk7Ci0JCQkJa2ZyZWUodGVtcCk7Ci0JCQkJcy0+bmVsLS07Ci0JCQl9IGVsc2UgewotCQkJCWxhc3QgPSBjdXI7Ci0JCQkJY3VyID0gY3VyLT5uZXh0OwotCQkJfQotCQl9Ci0JfQotCi0JcmV0dXJuOwotfQotCiBzdGF0aWMgaW5saW5lIHUzMiBzaWR0YWJfc2VhcmNoX2NvbnRleHQoc3RydWN0IHNpZHRhYiAqcywKIAkJCQkJCSAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQpCiB7CkBAIC0yMDQsNyArMTc2LDcgQEAKIAogCXNpZCA9IHNpZHRhYl9zZWFyY2hfY29udGV4dChzLCBjb250ZXh0KTsKIAlpZiAoIXNpZCkgewotCQlTSURUQUJfTE9DSyhzLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCBmbGFncyk7CiAJCS8qIFJlc2NhbiBub3cgdGhhdCB3ZSBob2xkIHRoZSBsb2NrLiAqLwogCQlzaWQgPSBzaWR0YWJfc2VhcmNoX2NvbnRleHQocywgY29udGV4dCk7CiAJCWlmIChzaWQpCkBAIC0yMTUsMTEgKzE4NywxNSBAQAogCQkJZ290byB1bmxvY2tfb3V0OwogCQl9CiAJCXNpZCA9IHMtPm5leHRfc2lkKys7CisJCWlmIChjb250ZXh0LT5sZW4pCisJCQlwcmludGsoS0VSTl9JTkZPCisJCSAgICAgICAiU0VMaW51eDogIENvbnRleHQgJXMgaXMgbm90IHZhbGlkIChsZWZ0IHVubWFwcGVkKS5cbiIsCisJCQkgICAgICAgY29udGV4dC0+c3RyKTsKIAkJcmV0ID0gc2lkdGFiX2luc2VydChzLCBzaWQsIGNvbnRleHQpOwogCQlpZiAocmV0KQogCQkJcy0+bmV4dF9zaWQtLTsKIHVubG9ja19vdXQ6Ci0JCVNJRFRBQl9VTkxPQ0socywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzLT5sb2NrLCBmbGFncyk7CiAJfQogCiAJaWYgKHJldCkKQEAgLTI4NCwxOSArMjYwLDE5IEBACiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAotCVNJRFRBQl9MT0NLKHNyYywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzcmMtPmxvY2ssIGZsYWdzKTsKIAlkc3QtPmh0YWJsZSA9IHNyYy0+aHRhYmxlOwogCWRzdC0+bmVsID0gc3JjLT5uZWw7CiAJZHN0LT5uZXh0X3NpZCA9IHNyYy0+bmV4dF9zaWQ7CiAJZHN0LT5zaHV0ZG93biA9IDA7Ci0JU0lEVEFCX1VOTE9DSyhzcmMsIGZsYWdzKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzcmMtPmxvY2ssIGZsYWdzKTsKIH0KIAogdm9pZCBzaWR0YWJfc2h1dGRvd24oc3RydWN0IHNpZHRhYiAqcykKIHsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCi0JU0lEVEFCX0xPQ0socywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzLT5sb2NrLCBmbGFncyk7CiAJcy0+c2h1dGRvd24gPSAxOwotCVNJRFRBQl9VTkxPQ0socywgZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnMtPmxvY2ssIGZsYWdzKTsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmggYi9zZWN1cml0eS9zZWxpbnV4L3NzL3NpZHRhYi5oCmluZGV4IDJmZTlkZmEuLjY0ZWE1YjEgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlbGludXgvc3Mvc2lkdGFiLmgKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9zcy9zaWR0YWIuaApAQCAtMzIsNiArMzIsNyBAQAogaW50IHNpZHRhYl9pbml0KHN0cnVjdCBzaWR0YWIgKnMpOwogaW50IHNpZHRhYl9pbnNlcnQoc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCwgc3RydWN0IGNvbnRleHQgKmNvbnRleHQpOwogc3RydWN0IGNvbnRleHQgKnNpZHRhYl9zZWFyY2goc3RydWN0IHNpZHRhYiAqcywgdTMyIHNpZCk7CitzdHJ1Y3QgY29udGV4dCAqc2lkdGFiX3NlYXJjaF9mb3JjZShzdHJ1Y3Qgc2lkdGFiICpzLCB1MzIgc2lkKTsKIAogaW50IHNpZHRhYl9tYXAoc3RydWN0IHNpZHRhYiAqcywKIAkgICAgICAgaW50ICgqYXBwbHkpICh1MzIgc2lkLApAQCAtMzksMTIgKzQwLDYgQEAKIAkJCSAgICAgdm9pZCAqYXJncyksCiAJICAgICAgIHZvaWQgKmFyZ3MpOwogCi12b2lkIHNpZHRhYl9tYXBfcmVtb3ZlX29uX2Vycm9yKHN0cnVjdCBzaWR0YWIgKnMsCi0JCQkJaW50ICgqYXBwbHkpICh1MzIgc2lkLAotCQkJCQkgICAgICBzdHJ1Y3QgY29udGV4dCAqY29udGV4dCwKLQkJCQkJICAgICAgdm9pZCAqYXJncyksCi0JCQkJdm9pZCAqYXJncyk7Ci0KIGludCBzaWR0YWJfY29udGV4dF90b19zaWQoc3RydWN0IHNpZHRhYiAqcywKIAkJCSAgc3RydWN0IGNvbnRleHQgKmNvbnRleHQsCiAJCQkgIHUzMiAqc2lkKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jIGIvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMKaW5kZXggYjVjOGY5Mi4uZWU1YTUxYyAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMKKysrIGIvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMKQEAgLTk1LDExICs5NSwxMiBAQAogICoKICAqIERvIHRoZSBjYXBhYmlsaXR5IGNoZWNrcywgYW5kIHJlcXVpcmUgcmVhZCBhbmQgd3JpdGUuCiAgKi8KLXN0YXRpYyBpbnQgc21hY2tfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHRwLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN0cCkKK3N0YXRpYyBpbnQgc21hY2tfcHRyYWNlKHN0cnVjdCB0YXNrX3N0cnVjdCAqcHRwLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmN0cCwKKwkJCXVuc2lnbmVkIGludCBtb2RlKQogewogCWludCByYzsKIAotCXJjID0gY2FwX3B0cmFjZShwdHAsIGN0cCk7CisJcmMgPSBjYXBfcHRyYWNlKHB0cCwgY3RwLCBtb2RlKTsKIAlpZiAocmMgIT0gMCkKIAkJcmV0dXJuIHJjOwogCkBAIC0xODIxLDI3ICsxODIyLDYgQEAKIAkqc2VjaWQgPSBzbWFja190b19zZWNpZChzbWFjayk7CiB9CiAKLS8qIG1vZHVsZSBzdGFja2luZyBvcGVyYXRpb25zICovCi0KLS8qKgotICogc21hY2tfcmVnaXN0ZXJfc2VjdXJpdHkgLSBzdGFjayBjYXBhYmlsaXR5IG1vZHVsZQotICogQG5hbWU6IG1vZHVsZSBuYW1lCi0gKiBAb3BzOiBtb2R1bGUgb3BlcmF0aW9ucyAtIGlnbm9yZWQKLSAqCi0gKiBBbGxvdyB0aGUgY2FwYWJpbGl0eSBtb2R1bGUgdG8gcmVnaXN0ZXIuCi0gKi8KLXN0YXRpYyBpbnQgc21hY2tfcmVnaXN0ZXJfc2VjdXJpdHkoY29uc3QgY2hhciAqbmFtZSwKLQkJCQkgICBzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyAqb3BzKQotewotCWlmIChzdHJjbXAobmFtZSwgImNhcGFiaWxpdHkiKSAhPSAwKQotCQlyZXR1cm4gLUVJTlZBTDsKLQotCXByaW50ayhLRVJOX0lORk8gIiVzOiAgUmVnaXN0ZXJpbmcgc2Vjb25kYXJ5IG1vZHVsZSAlc1xuIiwKLQkgICAgICAgX19mdW5jX18sIG5hbWUpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIC8qKgogICogc21hY2tfZF9pbnN0YW50aWF0ZSAtIE1ha2Ugc3VyZSB0aGUgYmxvYiBpcyBjb3JyZWN0IG9uIGFuIGlub2RlCiAgKiBAb3B0X2RlbnRyeTogdW51c2VkCkBAIC0xODgxLDYgKzE4NjEsMTggQEAKIAlmaW5hbCA9IHNic3AtPnNta19kZWZhdWx0OwogCiAJLyoKKwkgKiBJZiB0aGlzIGlzIHRoZSByb290IGlub2RlIHRoZSBzdXBlcmJsb2NrCisJICogbWF5IGJlIGluIHRoZSBwcm9jZXNzIG9mIGluaXRpYWxpemF0aW9uLgorCSAqIElmIHRoYXQgaXMgdGhlIGNhc2UgdXNlIHRoZSByb290IHZhbHVlIG91dAorCSAqIG9mIHRoZSBzdXBlcmJsb2NrLgorCSAqLworCWlmIChvcHRfZGVudHJ5LT5kX3BhcmVudCA9PSBvcHRfZGVudHJ5KSB7CisJCWlzcC0+c21rX2lub2RlID0gc2JzcC0+c21rX3Jvb3Q7CisJCWlzcC0+c21rX2ZsYWdzIHw9IFNNS19JTk9ERV9JTlNUQU5UOworCQlnb3RvIHVubG9ja2FuZG91dDsKKwl9CisKKwkvKgogCSAqIFRoaXMgaXMgcHJldHR5IGhhY2tpc2guCiAJICogQ2FzZXkgc2F5cyB0aGF0IHdlIHNob3VsZG4ndCBoYXZlIHRvIGRvCiAJICogZmlsZSBzeXN0ZW0gc3BlY2lmaWMgY29kZSwgYnV0IGl0IGRvZXMgaGVscApAQCAtMjY2MCw4ICsyNjUyLDYgQEAKIAkubmV0bGlua19zZW5kID0JCQljYXBfbmV0bGlua19zZW5kLAogCS5uZXRsaW5rX3JlY3YgPSAJCWNhcF9uZXRsaW5rX3JlY3YsCiAKLQkucmVnaXN0ZXJfc2VjdXJpdHkgPSAJCXNtYWNrX3JlZ2lzdGVyX3NlY3VyaXR5LAotCiAJLmRfaW5zdGFudGlhdGUgPSAJCXNtYWNrX2RfaW5zdGFudGlhdGUsCiAKIAkuZ2V0cHJvY2F0dHIgPSAJCQlzbWFja19nZXRwcm9jYXR0ciwKZGlmZiAtLWdpdCBhL3NvdW5kL0tjb25maWcgYi9zb3VuZC9LY29uZmlnCmluZGV4IDQyNDc0MDYuLmEzN2JlZTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL0tjb25maWcKKysrIGIvc291bmQvS2NvbmZpZwpAQCAtMSwxMSArMSw5IEBACiAjIHNvdW5kL0NvbmZpZy5pbgogIwogCi1tZW51ICJTb3VuZCIKLQlkZXBlbmRzIG9uIEhBU19JT01FTQotCi1jb25maWcgU09VTkQKK21lbnVjb25maWcgU09VTkQKIAl0cmlzdGF0ZSAiU291bmQgY2FyZCBzdXBwb3J0IgorCWRlcGVuZHMgb24gSEFTX0lPTUVNCiAJaGVscAogCSAgSWYgeW91IGhhdmUgYSBzb3VuZCBjYXJkIGluIHlvdXIgY29tcHV0ZXIsIGkuZS4gaWYgaXQgY2FuIHNheSBtb3JlCiAJICB0aGFuIGFuIG9jY2FzaW9uYWwgYmVlcCwgc2F5IFkuICBCZSBzdXJlIHRvIGhhdmUgYWxsIHRoZSBpbmZvcm1hdGlvbgpAQCAtMjgsMjIgKzI2LDIyIEBACiAJICBhbmQgcmVhZCA8ZmlsZTpEb2N1bWVudGF0aW9uL3NvdW5kL29zcy9SRUFETUUubW9kdWxlcz47IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNvdW5kY29yZS4KIAoraWYgU09VTkQKKwogc291cmNlICJzb3VuZC9vc3MvZG1hc291bmQvS2NvbmZpZyIKIAogaWYgIU02OEsKIAotbWVudSAiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlIgotCWRlcGVuZHMgb24gU09VTkQhPW4KLQotY29uZmlnIFNORAorbWVudWNvbmZpZyBTTkQKIAl0cmlzdGF0ZSAiQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlIgotCWRlcGVuZHMgb24gU09VTkQKIAloZWxwCiAJICBTYXkgJ1knIG9yICdNJyB0byBlbmFibGUgQUxTQSAoQWR2YW5jZWQgTGludXggU291bmQgQXJjaGl0ZWN0dXJlKSwKIAkgIHRoZSBuZXcgYmFzZSBzb3VuZCBzeXN0ZW0uCiAKIAkgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPGh0dHA6Ly93d3cuYWxzYS1wcm9qZWN0Lm9yZy8+CiAKK2lmIFNORAorCiBzb3VyY2UgInNvdW5kL2NvcmUvS2NvbmZpZyIKIAogc291cmNlICJzb3VuZC9kcml2ZXJzL0tjb25maWciCkBAIC01OCw5ICs1Niw3IEBACiAKIHNvdXJjZSAic291bmQvYXJtL0tjb25maWciCiAKLWlmIFNQSQogc291cmNlICJzb3VuZC9zcGkvS2NvbmZpZyIKLWVuZGlmCiAKIHNvdXJjZSAic291bmQvbWlwcy9LY29uZmlnIgogCkBAIC04MCwyMiArNzYsMjAgQEAKIAogc291cmNlICJzb3VuZC9zb2MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYgIyBTTkQKIAotbWVudSAiT3BlbiBTb3VuZCBTeXN0ZW0iCi0JZGVwZW5kcyBvbiBTT1VORCE9bgotCi1jb25maWcgU09VTkRfUFJJTUUKK21lbnVjb25maWcgU09VTkRfUFJJTUUKIAl0cmlzdGF0ZSAiT3BlbiBTb3VuZCBTeXN0ZW0gKERFUFJFQ0FURUQpIgotCWRlcGVuZHMgb24gU09VTkQKIAloZWxwCiAJICBTYXkgJ1knIG9yICdNJyB0byBlbmFibGUgT3BlbiBTb3VuZCBTeXN0ZW0gZHJpdmVycy4KIAoraWYgU09VTkRfUFJJTUUKKwogc291cmNlICJzb3VuZC9vc3MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYgIyBTT1VORF9QUklNRQogCi1lbmRpZgorZW5kaWYgIyAhTTY4SwogCiBjb25maWcgQUM5N19CVVMKIAl0cmlzdGF0ZQpAQCAtMTA1LDQgKzk5LDQgQEAKIAkgIHNvdW5kIGFsdGhvdWdoIHRoZXkncmUgc2hhcmluZyB0aGUgQUM5NyBidXMuIENvbmNlcm5lZCBkcml2ZXJzCiAJICBzaG91bGQgInNlbGVjdCIgdGhpcy4KIAotZW5kbWVudQorZW5kaWYgIyBTT1VORApkaWZmIC0tZ2l0IGEvc291bmQvYW9hL0tjb25maWcgYi9zb3VuZC9hb2EvS2NvbmZpZwppbmRleCA1ZDU4MTNjLi5jMDgxZTE4IDEwMDY0NAotLS0gYS9zb3VuZC9hb2EvS2NvbmZpZworKysgYi9zb3VuZC9hb2EvS2NvbmZpZwpAQCAtMSwxOCArMSwxNyBAQAotbWVudSAiQXBwbGUgT25ib2FyZCBBdWRpbyBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUFBDX1BNQUMKLQotY29uZmlnIFNORF9BT0EKK21lbnVjb25maWcgU05EX0FPQQogCXRyaXN0YXRlICJBcHBsZSBPbmJvYXJkIEF1ZGlvIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAorCWRlcGVuZHMgb24gUFBDX1BNQUMKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIAlUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBuZXcgZHJpdmVyIGZvciB0aGUgdmFyaW91cwogCUFwcGxlIE9uYm9hcmQgQXVkaW8gY29tcG9uZW50cy4KIAoraWYgU05EX0FPQQorCiBzb3VyY2UgInNvdW5kL2FvYS9mYWJyaWNzL0tjb25maWciCiAKIHNvdXJjZSAic291bmQvYW9hL2NvZGVjcy9LY29uZmlnIgogCiBzb3VyY2UgInNvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnIgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9BT0EKZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZyBiL3NvdW5kL2FvYS9jb2RlY3MvS2NvbmZpZwppbmRleCBkNWZiZDYwLi44MDhlYjExIDEwMDY0NAotLS0gYS9zb3VuZC9hb2EvY29kZWNzL0tjb25maWcKKysrIGIvc291bmQvYW9hL2NvZGVjcy9LY29uZmlnCkBAIC0xLDYgKzEsNSBAQAogY29uZmlnIFNORF9BT0FfT05ZWAogCXRyaXN0YXRlICJzdXBwb3J0IE9ueXggY2hpcCIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19QT1dFUk1BQwogCS0tLWhlbHAtLS0KQEAgLTEwLDcgKzksNiBAQAogCiAjY29uZmlnIFNORF9BT0FfVE9QQVoKICMJdHJpc3RhdGUgInN1cHBvcnQgVG9wYXogY2hpcHMiCi0jCWRlcGVuZHMgb24gU05EX0FPQQogIwktLS1oZWxwLS0tCiAjCVRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIFRvcGF6IChDUzg0eHgpCiAjCWNvZGVjIGNoaXBzIGZvdW5kIGluIHRoZSBsYXRlc3QgQXBwbGUgbWFjaGluZXMsCkBAIC0xOSw3ICsxNyw2IEBACiAKIGNvbmZpZyBTTkRfQU9BX1RBUwogCXRyaXN0YXRlICJzdXBwb3J0IFRBUyBjaGlwcyIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgSTJDCiAJc2VsZWN0IEkyQ19QT1dFUk1BQwogCS0tLWhlbHAtLS0KQEAgLTI5LDcgKzI2LDYgQEAKIAogY29uZmlnIFNORF9BT0FfVE9PTklFCiAJdHJpc3RhdGUgInN1cHBvcnQgVG9vbmllIGNoaXAiCi0JZGVwZW5kcyBvbiBTTkRfQU9BCiAJLS0taGVscC0tLQogCVRoaXMgb3B0aW9uIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIHRvb25pZSBjb2RlYwogCWZvdW5kIGluIHRoZSBNYWMgTWluaS4gSWYgeW91IGhhdmUgYSBNYWMgTWluaSBhbmQKZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9mYWJyaWNzL0tjb25maWcgYi9zb3VuZC9hb2EvZmFicmljcy9LY29uZmlnCmluZGV4IDUwZDcwMjEuLjNjYTQ3NWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FvYS9mYWJyaWNzL0tjb25maWcKKysrIGIvc291bmQvYW9hL2ZhYnJpY3MvS2NvbmZpZwpAQCAtMSw2ICsxLDUgQEAKIGNvbmZpZyBTTkRfQU9BX0ZBQlJJQ19MQVlPVVQKIAl0cmlzdGF0ZSAibGF5b3V0LWlkIGZhYnJpYyIKLQlkZXBlbmRzIG9uIFNORF9BT0EKIAlzZWxlY3QgU05EX0FPQV9TT1VOREJVUwogCXNlbGVjdCBTTkRfQU9BX1NPVU5EQlVTX0kyUwogCS0tLWhlbHAtLS0KZGlmZiAtLWdpdCBhL3NvdW5kL2FvYS9zb3VuZGJ1cy9LY29uZmlnIGIvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKaW5kZXggNzM2OGI3ZC4uODM5ZDExMyAxMDA2NDQKLS0tIGEvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKKysrIGIvc291bmQvYW9hL3NvdW5kYnVzL0tjb25maWcKQEAgLTEsNiArMSw1IEBACiBjb25maWcgU05EX0FPQV9TT1VOREJVUwogCXRyaXN0YXRlICJBcHBsZSBTb3VuZGJ1cyBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkQKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIAlUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSBnZW5lcmljIGRyaXZlciBmb3IgdGhlIHNvdW5kYnVzCmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vS2NvbmZpZyBiL3NvdW5kL2FybS9LY29uZmlnCmluZGV4IDJlNGE1ZTAuLjM1MWUxOWUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FybS9LY29uZmlnCisrKyBiL3NvdW5kL2FybS9LY29uZmlnCkBAIC0xLDExICsxLDE5IEBACiAjIEFMU0EgQVJNIGRyaXZlcnMKIAotbWVudSAiQUxTQSBBUk0gZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBBUk0KK21lbnVjb25maWcgU05EX0FSTQorCWJvb2wgIkFSTSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gQVJNCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBzcGVjaWZpYyB0byBBUk0gYXJjaGl0ZWN0dXJlcy4KKwkgIERyaXZlcnMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgb24gQVNvQyBjYW4gYmUgZm91bmQgaW4KKwkgICJBTFNBIGZvciBTb0MgYXVkaW8gc3VwcG9ydCIgc2VjdGlvbi4KKworaWYgU05EX0FSTQogCiBjb25maWcgU05EX1NBMTFYWF9VREExMzQxCiAJdHJpc3RhdGUgIlNBMTF4eCBVREExMzQxVFMgZHJpdmVyIChpUGFxIEgzNjAwKSIKLQlkZXBlbmRzIG9uIEFSQ0hfU0ExMTAwICYmIFNORCAmJiBMMworCWRlcGVuZHMgb24gQVJDSF9TQTExMDAgJiYgTDMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgaWYgeW91IGhhdmUgYSBDb21wYXEgaVBhcSBIM3gwMCBoYW5kaGVsZCBjb21wdXRlcgpAQCAtMTYsNyArMjQsNyBAQAogCiBjb25maWcgU05EX0FSTUFBQ0kKIAl0cmlzdGF0ZSAiQVJNIFByaW1lQ2VsbCBQTDA0MSBBQyBMaW5rIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgQVJNX0FNQkEKKwlkZXBlbmRzIG9uIEFSTV9BTUJBCiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIApAQCAtMjYsMTEgKzM0LDEyIEBACiAKIGNvbmZpZyBTTkRfUFhBMlhYX0FDOTcKIAl0cmlzdGF0ZSAiQUM5NyBkcml2ZXIgZm9yIHRoZSBJbnRlbCBQWEEyeHggY2hpcCIKLQlkZXBlbmRzIG9uIEFSQ0hfUFhBICYmIFNORAorCWRlcGVuZHMgb24gQVJDSF9QWEEKIAlzZWxlY3QgU05EX1BYQTJYWF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgYW55IEFDOTcgY29kZWMgYXR0YWNoZWQgdG8KIAkgIHRoZSBQWEEyeHggQUM5NyBpbnRlcmZhY2UuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX0FSTQorCmRpZmYgLS1naXQgYS9zb3VuZC9hcm0vc2ExMXh4LXVkYTEzNDEuYyBiL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCmluZGV4IDBlZmYzM2MuLmZhZWRkZjMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCisrKyBiL3NvdW5kL2FybS9zYTExeHgtdWRhMTM0MS5jCkBAIC0yMSw4ICsyMSw2IEBACiAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlZCBIQUwgbGF5ZXIgKHBhdGNoZXMgZnJvbSBCcmlhbikKICAqLwogCi0vKiAkSWQ6IHNhMTF4eC11ZGExMzQxLmMsdiAxLjI3IDIwMDUvMTIvMDcgMDk6MTM6NDIgY2xhZGlzY2ggRXhwICQgKi8KLQogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBUbyB1bmRlcnN0YW5kIHdoYXQgQWxzYSBEcml2ZXJzIHNob3VsZCBiZSBkb2luZyBsb29rIGF0ICJXcml0aW5nIGFuIEFsc2EgRHJpdmVyIiBieSBUYWthc2hpIEl3YWkKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvS2NvbmZpZyBiL3NvdW5kL2NvcmUvS2NvbmZpZwppbmRleCBhOGQ3MWM2Li4zMzVkNDVlIDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL0tjb25maWcKKysrIGIvc291bmQvY29yZS9LY29uZmlnCkBAIC0xLDI0ICsxLDE5IEBACiAjIEFMU0Egc291bmRjYXJkLWNvbmZpZ3VyYXRpb24KIGNvbmZpZyBTTkRfVElNRVIKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05ECiAKIGNvbmZpZyBTTkRfUENNCiAJdHJpc3RhdGUKIAlzZWxlY3QgU05EX1RJTUVSCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9IV0RFUAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9SQVdNSURJCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORAogCiBjb25maWcgU05EX1NFUVVFTkNFUgogCXRyaXN0YXRlICJTZXF1ZW5jZXIgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfVElNRVIKIAloZWxwCiAJICBTYXkgWSBvciBNIHRvIGVuYWJsZSBNSURJIHNlcXVlbmNlciBhbmQgcm91dGVyIHN1cHBvcnQuICBUaGlzCkBAIC00NCwxMSArMzksOSBAQAogCiBjb25maWcgU05EX09TU0VNVUwKIAlib29sCi0JZGVwZW5kcyBvbiBTTkQKIAogY29uZmlnIFNORF9NSVhFUl9PU1MKIAl0cmlzdGF0ZSAiT1NTIE1peGVyIEFQSSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1NTRU1VTAogCWhlbHAKIAkgIFRvIGVuYWJsZSBPU1MgbWl4ZXIgQVBJIGVtdWxhdGlvbiAoL2Rldi9taXhlciopLCBzYXkgWSBoZXJlCkBAIC02MSw3ICs1NCw2IEBACiAKIGNvbmZpZyBTTkRfUENNX09TUwogCXRyaXN0YXRlICJPU1MgUENNIChkaWdpdGFsIGF1ZGlvKSBBUEkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09TU0VNVUwKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTg0LDcgKzc2LDcgQEAKIAogY29uZmlnIFNORF9TRVFVRU5DRVJfT1NTCiAJYm9vbCAiT1NTIFNlcXVlbmNlciBBUEkiCi0JZGVwZW5kcyBvbiBTTkQgJiYgU05EX1NFUVVFTkNFUgorCWRlcGVuZHMgb24gU05EX1NFUVVFTkNFUgogCXNlbGVjdCBTTkRfT1NTRU1VTAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIE9TUyBzZXF1ZW5jZXIgZW11bGF0aW9uIChib3RoCkBAIC05OCw3ICs5MCw3IEBACiAKIGNvbmZpZyBTTkRfUlRDVElNRVIKIAl0cmlzdGF0ZSAiUlRDIFRpbWVyIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUlRDCisJZGVwZW5kcyBvbiBSVEMKIAlzZWxlY3QgU05EX1RJTUVSCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgUlRDIHRpbWVyIHN1cHBvcnQgZm9yIEFMU0EuICBBTFNBIHVzZXMKQEAgLTEyMyw3ICsxMTUsNiBAQAogCiBjb25maWcgU05EX0RZTkFNSUNfTUlOT1JTCiAJYm9vbCAiRHluYW1pYyBkZXZpY2UgZmlsZSBtaW5vciBudW1iZXJzIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgSWYgeW91IHNheSBZIGhlcmUsIHRoZSBtaW5vciBudW1iZXJzIG9mIEFMU0EgZGV2aWNlIGZpbGVzIGluCiAJICAvZGV2L3NuZC8gYXJlIGFsbG9jYXRlZCBkeW5hbWljYWxseS4gIFRoaXMgYWxsb3dzIHlvdSB0byBoYXZlCkBAIC0xMzQsNyArMTI1LDYgQEAKIAogY29uZmlnIFNORF9TVVBQT1JUX09MRF9BUEkKIAlib29sICJTdXBwb3J0IG9sZCBBTFNBIEFQSSIKLQlkZXBlbmRzIG9uIFNORAogCWRlZmF1bHQgeQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gc3VwcG9ydCB0aGUgb2Jzb2xldGUgQUxTQSBQQ00gQVBJICh2ZXIuMC45LjAgcmMzCkBAIC0xNDIsNyArMTMyLDcgQEAKIAogY29uZmlnIFNORF9WRVJCT1NFX1BST0NGUwogCWJvb2wgIlZlcmJvc2UgcHJvY2ZzIGNvbnRlbnRzIgotCWRlcGVuZHMgb24gU05EICYmIFBST0NfRlMKKwlkZXBlbmRzIG9uIFBST0NfRlMKIAlkZWZhdWx0IHkKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgY29kZSBmb3IgdmVyYm9zZSBwcm9jZnMgY29udGVudHMgKHByb3ZpZGVzCkBAIC0xNTEsNyArMTQxLDYgQEAKIAogY29uZmlnIFNORF9WRVJCT1NFX1BSSU5USwogCWJvb2wgIlZlcmJvc2UgcHJpbnRrIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgdmVyYm9zZSBsb2cgbWVzc2FnZXMuICBUaGVzZSBtZXNzYWdlcwogCSAgd2lsbCBoZWxwIHRvIGlkZW50aWZ5IHNvdXJjZSBmaWxlIGFuZCBwb3NpdGlvbiBjb250YWluaW5nCkBAIC0xNjEsMTYgKzE1MCwxNyBAQAogCiBjb25maWcgU05EX0RFQlVHCiAJYm9vbCAiRGVidWciCi0JZGVwZW5kcyBvbiBTTkQKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGVuYWJsZSBBTFNBIGRlYnVnIGNvZGUuCiAKLWNvbmZpZyBTTkRfREVCVUdfREVURUNUCi0JYm9vbCAiRGVidWcgZGV0ZWN0aW9uIgorY29uZmlnIFNORF9ERUJVR19WRVJCT1NFCisJYm9vbCAiTW9yZSB2ZXJib3NlIGRlYnVnIgogCWRlcGVuZHMgb24gU05EX0RFQlVHCiAJaGVscAotCSAgU2F5IFkgaGVyZSB0byBlbmFibGUgZXh0cmEtdmVyYm9zZSBsb2cgbWVzc2FnZXMgcHJpbnRlZCB3aGVuCi0JICBkZXRlY3RpbmcgZGV2aWNlcy4KKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIGV4dHJhLXZlcmJvc2UgZGVidWdnaW5nIG1lc3NhZ2VzLgorCSAgCisJICBMZXQgbWUgcmVwZWF0OiBpdCBlbmFibGVzIEVYVFJBLVZFUkJPU0UgREVCVUdHSU5HIG1lc3NhZ2VzLgorCSAgU28sIHNheSBZIG9ubHkgaWYgeW91IGFyZSByZWFkeSB0byBiZSBhbm5veWVkLgogCiBjb25maWcgU05EX1BDTV9YUlVOX0RFQlVHCiAJYm9vbCAiRW5hYmxlIFBDTSByaW5nIGJ1ZmZlciBvdmVycnVuL3VuZGVycnVuIGRlYnVnZ2luZyIKQEAgLTE4NCw0ICsxNzQsMyBAQAogCiBjb25maWcgU05EX1ZNQVNURVIKIAlib29sCi0JZGVwZW5kcyBvbiBTTkQKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvY29udHJvbC5jIGIvc291bmQvY29yZS9jb250cm9sLmMKaW5kZXggMDFhMWE1YS4uMjgxYjJlMiAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9jb250cm9sLmMKKysrIGIvc291bmQvY29yZS9jb250cm9sLmMKQEAgLTY4NCw3ICs2ODQsOCBAQAogCXJldHVybiByZXN1bHQ7CiB9CiAKLWludCBzbmRfY3RsX2VsZW1fcmVhZChzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKmNvbnRyb2wpCitzdGF0aWMgaW50IHNuZF9jdGxfZWxlbV9yZWFkKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCSAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqY29udHJvbCkKIHsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOwogCXN0cnVjdCBzbmRfa2NvbnRyb2xfdm9sYXRpbGUgKnZkOwpAQCAtNzM0LDggKzczNSw4IEBACiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotaW50IHNuZF9jdGxfZWxlbV93cml0ZShzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfY3RsX2ZpbGUgKmZpbGUsCi0JCSAgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICpjb250cm9sKQorc3RhdGljIGludCBzbmRfY3RsX2VsZW1fd3JpdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2N0bF9maWxlICpmaWxlLAorCQkJICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqY29udHJvbCkKIHsKIAlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOwogCXN0cnVjdCBzbmRfa2NvbnRyb2xfdm9sYXRpbGUgKnZkOwpkaWZmIC0tZ2l0IGEvc291bmQvY29yZS9pbml0LmMgYi9zb3VuZC9jb3JlL2luaXQuYwppbmRleCBhYzA1NzM0Li41YzI1NGQ0IDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL2luaXQuYworKysgYi9zb3VuZC9jb3JlL2luaXQuYwpAQCAtNDYsMTcgKzQ2LDI0IEBACiBtb2R1bGVfcGFyYW1fYXJyYXkoc2xvdHMsIGNoYXJwLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0Moc2xvdHMsICJNb2R1bGUgbmFtZXMgYXNzaWduZWQgdG8gdGhlIHNsb3RzLiIpOwogCi0vKiByZXR1cm4gbm9uLXplcm8gaWYgdGhlIGdpdmVuIGluZGV4IGlzIGFscmVhZHkgcmVzZXJ2ZWQgZm9yIGFub3RoZXIKKy8qIHJldHVybiBub24temVybyBpZiB0aGUgZ2l2ZW4gaW5kZXggaXMgcmVzZXJ2ZWQgZm9yIHRoZSBnaXZlbgogICogbW9kdWxlIHZpYSBzbG90cyBvcHRpb24KICAqLwotc3RhdGljIGludCBtb2R1bGVfc2xvdF9taXNtYXRjaChzdHJ1Y3QgbW9kdWxlICptb2R1bGUsIGludCBpZHgpCitzdGF0aWMgaW50IG1vZHVsZV9zbG90X21hdGNoKHN0cnVjdCBtb2R1bGUgKm1vZHVsZSwgaW50IGlkeCkKIHsKKwlpbnQgbWF0Y2ggPSAxOwogI2lmZGVmIE1PRFVMRQotCWNoYXIgKnMxLCAqczI7CisJY29uc3QgY2hhciAqczEsICpzMjsKKwogCWlmICghbW9kdWxlIHx8ICFtb2R1bGUtPm5hbWUgfHwgIXNsb3RzW2lkeF0pCiAJCXJldHVybiAwOwotCXMxID0gc2xvdHNbaWR4XTsKLQlzMiA9IG1vZHVsZS0+bmFtZTsKKworCXMxID0gbW9kdWxlLT5uYW1lOworCXMyID0gc2xvdHNbaWR4XTsKKwlpZiAoKnMyID09ICchJykgeworCQltYXRjaCA9IDA7IC8qIG5lZ2F0aXZlIG1hdGNoICovCisJCXMyKys7CisJfQogCS8qIGNvbXBhcmUgbW9kdWxlIG5hbWUgc3RyaW5ncwogCSAqIGh5cGhlbnMgYXJlIGhhbmRsZWQgYXMgZXF1aXZhbGVudCB3aXRoIHVuZGVyc2NvcmUKIAkgKi8KQEAgLTY4LDEyICs3NSwxMiBAQAogCQlpZiAoYzIgPT0gJy0nKQogCQkJYzIgPSAnXyc7CiAJCWlmIChjMSAhPSBjMikKLQkJCXJldHVybiAxOworCQkJcmV0dXJuICFtYXRjaDsKIAkJaWYgKCFjMSkKIAkJCWJyZWFrOwogCX0KLSNlbmRpZgotCXJldHVybiAwOworI2VuZGlmIC8qIE1PRFVMRSAqLworCXJldHVybiBtYXRjaDsKIH0KIAogI2lmIGRlZmluZWQoQ09ORklHX1NORF9NSVhFUl9PU1MpIHx8IGRlZmluZWQoQ09ORklHX1NORF9NSVhFUl9PU1NfTU9EVUxFKQpAQCAtMTI5LDcgKzEzNiw3IEBACiAJCQkgc3RydWN0IG1vZHVsZSAqbW9kdWxlLCBpbnQgZXh0cmFfc2l6ZSkKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7Ci0JaW50IGVycjsKKwlpbnQgZXJyLCBpZHgyOwogCiAJaWYgKGV4dHJhX3NpemUgPCAwKQogCQlleHRyYV9zaXplID0gMDsKQEAgLTE0NCwzNSArMTUxLDQxIEBACiAJZXJyID0gMDsKIAltdXRleF9sb2NrKCZzbmRfY2FyZF9tdXRleCk7CiAJaWYgKGlkeCA8IDApIHsKLQkJaW50IGlkeDI7CiAJCWZvciAoaWR4MiA9IDA7IGlkeDIgPCBTTkRSVl9DQVJEUzsgaWR4MisrKQogCQkJLyogaWR4ID09IC0xID09IDB4ZmZmZiBtZWFuczogdGFrZSBhbnkgZnJlZSBzbG90ICovCiAJCQlpZiAofnNuZF9jYXJkc19sb2NrICYgaWR4ICYgMTw8aWR4MikgewotCQkJCWlmIChtb2R1bGVfc2xvdF9taXNtYXRjaChtb2R1bGUsIGlkeDIpKQotCQkJCQljb250aW51ZTsKLQkJCQlpZHggPSBpZHgyOwotCQkJCWlmIChpZHggPj0gc25kX2VjYXJkc19saW1pdCkKLQkJCQkJc25kX2VjYXJkc19saW1pdCA9IGlkeCArIDE7Ci0JCQkJYnJlYWs7CisJCQkJaWYgKG1vZHVsZV9zbG90X21hdGNoKG1vZHVsZSwgaWR4MikpIHsKKwkJCQkJaWR4ID0gaWR4MjsKKwkJCQkJYnJlYWs7CisJCQkJfQogCQkJfQotCX0gZWxzZSB7Ci0JCSBpZiAoaWR4IDwgc25kX2VjYXJkc19saW1pdCkgewotCQkJaWYgKHNuZF9jYXJkc19sb2NrICYgKDEgPDwgaWR4KSkKLQkJCQllcnIgPSAtRUJVU1k7CS8qIGludmFsaWQgKi8KLQkJfSBlbHNlIHsKLQkJCWlmIChpZHggPCBTTkRSVl9DQVJEUykKLQkJCQlzbmRfZWNhcmRzX2xpbWl0ID0gaWR4ICsgMTsgLyogaW5jcmVhc2UgdGhlIGxpbWl0ICovCi0JCQllbHNlCi0JCQkJZXJyID0gLUVOT0RFVjsKLQkJfQogCX0KLQlpZiAoaWR4IDwgMCB8fCBlcnIgPCAwKSB7CisJaWYgKGlkeCA8IDApIHsKKwkJZm9yIChpZHgyID0gMDsgaWR4MiA8IFNORFJWX0NBUkRTOyBpZHgyKyspCisJCQkvKiBpZHggPT0gLTEgPT0gMHhmZmZmIG1lYW5zOiB0YWtlIGFueSBmcmVlIHNsb3QgKi8KKwkJCWlmICh+c25kX2NhcmRzX2xvY2sgJiBpZHggJiAxPDxpZHgyKSB7CisJCQkJaWYgKCFzbG90c1tpZHgyXSB8fCAhKnNsb3RzW2lkeDJdKSB7CisJCQkJCWlkeCA9IGlkeDI7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCX0KKwl9CisJaWYgKGlkeCA8IDApCisJCWVyciA9IC1FTk9ERVY7CisJZWxzZSBpZiAoaWR4IDwgc25kX2VjYXJkc19saW1pdCkgeworCQlpZiAoc25kX2NhcmRzX2xvY2sgJiAoMSA8PCBpZHgpKQorCQkJZXJyID0gLUVCVVNZOwkvKiBpbnZhbGlkICovCisJfSBlbHNlIGlmIChpZHggPj0gU05EUlZfQ0FSRFMpCisJCWVyciA9IC1FTk9ERVY7CisJaWYgKGVyciA8IDApIHsKIAkJbXV0ZXhfdW5sb2NrKCZzbmRfY2FyZF9tdXRleCk7CiAJCXNuZF9wcmludGsoS0VSTl9FUlIgImNhbm5vdCBmaW5kIHRoZSBzbG90IGZvciBpbmRleCAlZCAocmFuZ2UgMC0laSksIGVycm9yOiAlZFxuIiwKIAkJCSBpZHgsIHNuZF9lY2FyZHNfbGltaXQgLSAxLCBlcnIpOwogCQlnb3RvIF9fZXJyb3I7CiAJfQogCXNuZF9jYXJkc19sb2NrIHw9IDEgPDwgaWR4OwkJLyogbG9jayBpdCAqLworCWlmIChpZHggPj0gc25kX2VjYXJkc19saW1pdCkKKwkJc25kX2VjYXJkc19saW1pdCA9IGlkeCArIDE7IC8qIGluY3JlYXNlIHRoZSBsaW1pdCAqLwogCW11dGV4X3VubG9jaygmc25kX2NhcmRfbXV0ZXgpOwogCWNhcmQtPm51bWJlciA9IGlkeDsKIAljYXJkLT5tb2R1bGUgPSBtb2R1bGU7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL21lbWFsbG9jLmMgYi9zb3VuZC9jb3JlL21lbWFsbG9jLmMKaW5kZXggMjNiN2JjMC4uZjVkNmQ4ZCAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9tZW1hbGxvYy5jCisrKyBiL3NvdW5kL2NvcmUvbWVtYWxsb2MuYwpAQCAtODAsNjggKzgwLDYgQEAKICNlbmRpZgogCiAvKgotICogIEhhY2tzCi0gKi8KLQotI2lmIGRlZmluZWQoX19pMzg2X18pCi0vKgotICogQSBoYWNrIHRvIGFsbG9jYXRlIGxhcmdlIGJ1ZmZlcnMgdmlhIGRtYV9hbGxvY19jb2hlcmVudCgpCi0gKgotICogc2luY2UgZG1hX2FsbG9jX2NvaGVyZW50IGFsd2F5cyB0cmllcyBHRlBfRE1BIHdoZW4gdGhlIHJlcXVlc3RlZAotICogcGNpIG1lbW9yeSByZWdpb24gaXMgYmVsb3cgMzJiaXQsIGl0IGhhcHBlbnMgcXVpdGUgb2Z0ZW4gdGhhdCBldmVuCi0gKiAyIG9yZGVyIG9mIHBhZ2VzIGNhbm5vdCBiZSBhbGxvY2F0ZWQuCi0gKgotICogc28gaW4gdGhlIGZvbGxvd2luZywgd2UgYWxsb2NhdGUgYXQgZmlyc3Qgd2l0aG91dCBkbWFfbWFzaywgc28gdGhhdAotICogYWxsb2NhdGlvbiB3aWxsIGJlIGRvbmUgd2l0aG91dCBHRlBfRE1BLiAgaWYgdGhlIGFyZWEgZG9lc24ndCBtYXRjaAotICogd2l0aCB0aGUgcmVxdWVzdGVkIHJlZ2lvbiwgdGhlbiByZWFsbG9hdGUgd2l0aCB0aGUgb3JpZ2luYWwgZG1hX21hc2sKLSAqIGFnYWluLgotICoKLSAqIFJlYWxseSwgd2Ugd2FudCB0byBtb3ZlIHRoaXMgdHlwZSBvZiB0aGluZyBpbnRvIGRtYV9hbGxvY19jb2hlcmVudCgpCi0gKiBzbyBkbWFfbWFzayBkb2Vzbid0IGhhdmUgdG8gYmUgbWVzc2VkIHdpdGguCi0gKi8KLQotc3RhdGljIHZvaWQgKnNuZF9kbWFfaGFja19hbGxvY19jb2hlcmVudChzdHJ1Y3QgZGV2aWNlICpkZXYsIHNpemVfdCBzaXplLAotCQkJCQkgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSwKLQkJCQkJIGdmcF90IGZsYWdzKQotewotCXZvaWQgKnJldDsKLQl1NjQgZG1hX21hc2ssIGNvaGVyZW50X2RtYV9tYXNrOwotCi0JaWYgKGRldiA9PSBOVUxMIHx8ICFkZXYtPmRtYV9tYXNrKQotCQlyZXR1cm4gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCWRtYV9tYXNrID0gKmRldi0+ZG1hX21hc2s7Ci0JY29oZXJlbnRfZG1hX21hc2sgPSBkZXYtPmNvaGVyZW50X2RtYV9tYXNrOwotCSpkZXYtPmRtYV9tYXNrID0gMHhmZmZmZmZmZjsgCS8qIGRvIHdpdGhvdXQgbWFza2luZyAqLwotCWRldi0+Y29oZXJlbnRfZG1hX21hc2sgPSAweGZmZmZmZmZmOyAJLyogZG8gd2l0aG91dCBtYXNraW5nICovCi0JcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCSpkZXYtPmRtYV9tYXNrID0gZG1hX21hc2s7CS8qIHJlc3RvcmUgKi8KLQlkZXYtPmNvaGVyZW50X2RtYV9tYXNrID0gY29oZXJlbnRfZG1hX21hc2s7CS8qIHJlc3RvcmUgKi8KLQlpZiAocmV0KSB7Ci0JCS8qIG9idGFpbmVkIGFkZHJlc3MgaXMgb3V0IG9mIHJhbmdlPyAqLwotCQlpZiAoKCh1bnNpZ25lZCBsb25nKSpkbWFfaGFuZGxlICsgc2l6ZSAtIDEpICYgfmRtYV9tYXNrKSB7Ci0JCQkvKiByZWFsbG9jYXRlIHdpdGggdGhlIHByb3BlciBtYXNrICovCi0JCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIHNpemUsIHJldCwgKmRtYV9oYW5kbGUpOwotCQkJcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCQl9Ci0JfSBlbHNlIHsKLQkJLyogd2lzaCB0byBzdWNjZXNzIG5vdyB3aXRoIHRoZSBwcm9wZXIgbWFzay4uLiAqLwotCQlpZiAoZG1hX21hc2sgIT0gMHhmZmZmZmZmZlVMKSB7Ci0JCQkvKiBhbGxvY2F0aW9uIHdpdGggR0ZQX0FUT01JQyB0byBhdm9pZCB0aGUgbG9uZyBzdGFsbCAqLwotCQkJZmxhZ3MgJj0gfkdGUF9LRVJORUw7Ci0JCQlmbGFncyB8PSBHRlBfQVRPTUlDOwotCQkJcmV0ID0gZG1hX2FsbG9jX2NvaGVyZW50KGRldiwgc2l6ZSwgZG1hX2hhbmRsZSwgZmxhZ3MpOwotCQl9Ci0JfQotCXJldHVybiByZXQ7Ci19Ci0KLS8qIHJlZGVmaW5lIGRtYV9hbGxvY19jb2hlcmVudCBmb3Igc29tZSBhcmNoaXRlY3R1cmVzICovCi0jdW5kZWYgZG1hX2FsbG9jX2NvaGVyZW50Ci0jZGVmaW5lIGRtYV9hbGxvY19jb2hlcmVudCBzbmRfZG1hX2hhY2tfYWxsb2NfY29oZXJlbnQKLQotI2VuZGlmIC8qIGFyY2ggKi8KLQotLyoKICAqCiAgKiAgR2VuZXJpYyBtZW1vcnkgYWxsb2NhdG9ycwogICoKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvcGNtX25hdGl2ZS5jIGIvc291bmQvY29yZS9wY21fbmF0aXZlLmMKaW5kZXggNjFmNWQ0Mi4uYzQ5YjlkOSAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9wY21fbmF0aXZlLmMKKysrIGIvc291bmQvY29yZS9wY21fbmF0aXZlLmMKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tbS5oPgogI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90aW1lLmg+CiAjaW5jbHVkZSA8bGludXgvcG1fcW9zX3BhcmFtcy5oPgogI2luY2x1ZGUgPGxpbnV4L3Vpby5oPgpAQCAtMzI0OSwxNCArMzI1MCwxNyBAQAogCXN0cnVjdCBzbmRfcGNtX2ZpbGUgKiBwY21fZmlsZTsKIAlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbTsKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lOwotCWludCBlcnI7CisJaW50IGVyciA9IC1FTlhJTzsKIAorCWxvY2tfa2VybmVsKCk7CiAJcGNtX2ZpbGUgPSBmaWxlLT5wcml2YXRlX2RhdGE7CiAJc3Vic3RyZWFtID0gcGNtX2ZpbGUtPnN1YnN0cmVhbTsKLQlzbmRfYXNzZXJ0KHN1YnN0cmVhbSAhPSBOVUxMLCByZXR1cm4gLUVOWElPKTsKKwlzbmRfYXNzZXJ0KHN1YnN0cmVhbSAhPSBOVUxMLCBnb3RvIG91dCk7CiAJcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAogCWVyciA9IGZhc3luY19oZWxwZXIoZmQsIGZpbGUsIG9uLCAmcnVudGltZS0+ZmFzeW5jKTsKK291dDoKKwl1bmxvY2tfa2VybmVsKCk7CiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBlcnI7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMgYi9zb3VuZC9jb3JlL3NlcS9zZXFfY2xpZW50bWdyLmMKaW5kZXggNDdjZmE1MS4uN2ExNTQ1ZCAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9zZXEvc2VxX2NsaWVudG1nci5jCisrKyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9jbGllbnRtZ3IuYwpAQCAtMTQ4LDcgKzE0OCw3IEBACiAJCXJldHVybiBOVUxMOwogCX0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjbGllbnRzX2xvY2ssIGZsYWdzKTsKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAJaWYgKCFpbl9pbnRlcnJ1cHQoKSkgewogCQlzdGF0aWMgY2hhciBjbGllbnRfcmVxdWVzdGVkW1NORFJWX1NFUV9HTE9CQUxfQ0xJRU5UU107CiAJCXN0YXRpYyBjaGFyIGNhcmRfcmVxdWVzdGVkW1NORFJWX0NBUkRTXTsKZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvc2VxL3NlcV9kZXZpY2UuYyBiL3NvdW5kL2NvcmUvc2VxL3NlcV9kZXZpY2UuYwppbmRleCAyZjAwYWQyLi4wNTQxMGU1IDEwMDY0NAotLS0gYS9zb3VuZC9jb3JlL3NlcS9zZXFfZGV2aWNlLmMKKysrIGIvc291bmQvY29yZS9zZXEvc2VxX2RldmljZS5jCkBAIC0xMjQsNyArMTI0LDcgQEAKICAqIGxvYWQgYWxsIHJlZ2lzdGVyZWQgZHJpdmVycyAoY2FsbGVkIGZyb20gc2VxX2NsaWVudG1nci5jKQogICovCiAKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAvKiBhdm9pZCBhdXRvLWxvYWRpbmcgZHVyaW5nIG1vZHVsZV9pbml0KCkgKi8KIHN0YXRpYyBpbnQgc25kX3NlcV9pbl9pbml0Owogdm9pZCBzbmRfc2VxX2F1dG9sb2FkX2xvY2sodm9pZCkKQEAgLTE0MCw3ICsxNDAsNyBAQAogCiB2b2lkIHNuZF9zZXFfZGV2aWNlX2xvYWRfZHJpdmVycyh2b2lkKQogewotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIAlzdHJ1Y3Qgb3BzX2xpc3QgKm9wczsKIAogCS8qIENhbGxpbmcgcmVxdWVzdF9tb2R1bGUgZHVyaW5nIG1vZHVsZV9pbml0KCkKQEAgLTU2Niw3ICs1NjYsNSBAQAogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV9uZXcpOwogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV9yZWdpc3Rlcl9kcml2ZXIpOwogRVhQT1JUX1NZTUJPTChzbmRfc2VxX2RldmljZV91bnJlZ2lzdGVyX2RyaXZlcik7Ci0jaWZkZWYgQ09ORklHX0tNT0QKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9hdXRvbG9hZF9sb2NrKTsKIEVYUE9SVF9TWU1CT0woc25kX3NlcV9hdXRvbG9hZF91bmxvY2spOwotI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9jb3JlL3NvdW5kLmMgYi9zb3VuZC9jb3JlL3NvdW5kLmMKaW5kZXggNmM4YWI0OC4uMTAwM2FlMyAxMDA2NDQKLS0tIGEvc291bmQvY29yZS9zb3VuZC5jCisrKyBiL3NvdW5kL2NvcmUvc291bmQuYwpAQCAtMjEsNiArMjEsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KICNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgpAQCAtNjAsMTQgKzYxLDE0IEBACiBzdGF0aWMgc3RydWN0IHNuZF9taW5vciAqc25kX21pbm9yc1tTTkRSVl9PU19NSU5PUlNdOwogc3RhdGljIERFRklORV9NVVRFWChzb3VuZF9tdXRleCk7CiAKLSNpZmRlZiBDT05GSUdfS01PRAorI2lmZGVmIENPTkZJR19NT0RVTEVTCiAKIC8qKgogICogc25kX3JlcXVlc3RfY2FyZCAtIHRyeSB0byBsb2FkIHRoZSBjYXJkIG1vZHVsZQogICogQGNhcmQ6IHRoZSBjYXJkIG51bWJlcgogICoKICAqIFRyaWVzIHRvIGxvYWQgdGhlIG1vZHVsZSAic25kLWNhcmQtWCIgZm9yIHRoZSBnaXZlbiBjYXJkIG51bWJlcgotICogdmlhIEtNT0QuICBSZXR1cm5zIGltbWVkaWF0ZWx5IGlmIGFscmVhZHkgbG9hZGVkLgorICogdmlhIHJlcXVlc3RfbW9kdWxlLiAgUmV0dXJucyBpbW1lZGlhdGVseSBpZiBhbHJlYWR5IGxvYWRlZC4KICAqLwogdm9pZCBzbmRfcmVxdWVzdF9jYXJkKGludCBjYXJkKQogewpAQCAtOTIsNyArOTMsNyBAQAogCXJlcXVlc3RfbW9kdWxlKHN0cik7CiB9CiAKLSNlbmRpZgkJCQkvKiByZXF1ZXN0X21vZHVsZSBzdXBwb3J0ICovCisjZW5kaWYJLyogbW9kdWxhciBrZXJuZWwgKi8KIAogLyoqCiAgKiBzbmRfbG9va3VwX21pbm9yX2RhdGEgLSBnZXQgdXNlciBkYXRhIG9mIGEgcmVnaXN0ZXJlZCBkZXZpY2UKQEAgLTEyMSw3ICsxMjIsNyBAQAogCiBFWFBPUlRfU1lNQk9MKHNuZF9sb29rdXBfbWlub3JfZGF0YSk7CiAKLXN0YXRpYyBpbnQgc25kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCitzdGF0aWMgaW50IF9fc25kX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCiB7CiAJdW5zaWduZWQgaW50IG1pbm9yID0gaW1pbm9yKGlub2RlKTsKIAlzdHJ1Y3Qgc25kX21pbm9yICptcHRyID0gTlVMTDsKQEAgLTEzMiw3ICsxMzMsNyBAQAogCQlyZXR1cm4gLUVOT0RFVjsKIAltcHRyID0gc25kX21pbm9yc1ttaW5vcl07CiAJaWYgKG1wdHIgPT0gTlVMTCkgewotI2lmZGVmIENPTkZJR19LTU9ECisjaWZkZWYgQ09ORklHX01PRFVMRVMKIAkJaW50IGRldiA9IFNORFJWX01JTk9SX0RFVklDRShtaW5vcik7CiAJCWlmIChkZXYgPT0gU05EUlZfTUlOT1JfQ09OVFJPTCkgewogCQkJLyogL2Rldi9hbG9hZEM/ICovCkBAIC0xNjMsNiArMTY0LDE4IEBACiAJcmV0dXJuIGVycjsKIH0KIAorCisvKiBCS0wgcHVzaGRvd246IG5hc3R5ICNpZmRlZiBhdm9pZGFuY2Ugd3JhcHBlciAqLworc3RhdGljIGludCBzbmRfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKK3sKKwlpbnQgcmV0OworCisJbG9ja19rZXJuZWwoKTsKKwlyZXQgPSBfX3NuZF9vcGVuKGlub2RlLCBmaWxlKTsKKwl1bmxvY2tfa2VybmVsKCk7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgc25kX2ZvcHMgPQogewogCS5vd25lciA9CVRISVNfTU9EVUxFLApkaWZmIC0tZ2l0IGEvc291bmQvY29yZS90aW1lci5jIGIvc291bmQvY29yZS90aW1lci5jCmluZGV4IDlkODE4NGEuLjBhZjMzN2UgMTAwNjQ0Ci0tLSBhL3NvdW5kL2NvcmUvdGltZXIuYworKysgYi9zb3VuZC9jb3JlL3RpbWVyLmMKQEAgLTE0Niw3ICsxNDYsNyBAQAogCXJldHVybiBOVUxMOwogfQogCi0jaWZkZWYgQ09ORklHX0tNT0QKKyNpZmRlZiBDT05GSUdfTU9EVUxFUwogCiBzdGF0aWMgdm9pZCBzbmRfdGltZXJfcmVxdWVzdChzdHJ1Y3Qgc25kX3RpbWVyX2lkICp0aWQpCiB7CkBAIC0yNTksOCArMjU5LDggQEAKIAkvKiBvcGVuIGEgbWFzdGVyIGluc3RhbmNlICovCiAJbXV0ZXhfbG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwogCXRpbWVyID0gc25kX3RpbWVyX2ZpbmQodGlkKTsKLSNpZmRlZiBDT05GSUdfS01PRAotCWlmICh0aW1lciA9PSBOVUxMKSB7CisjaWZkZWYgQ09ORklHX01PRFVMRVMKKwlpZiAoIXRpbWVyKSB7CiAJCW11dGV4X3VubG9jaygmcmVnaXN0ZXJfbXV0ZXgpOwogCQlzbmRfdGltZXJfcmVxdWVzdCh0aWQpOwogCQltdXRleF9sb2NrKCZyZWdpc3Rlcl9tdXRleCk7CmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL0tjb25maWcgYi9zb3VuZC9kcml2ZXJzL0tjb25maWcKaW5kZXggNjAyYjU4ZS4uMjU1ZmQxOCAxMDA2NDQKLS0tIGEvc291bmQvZHJpdmVycy9LY29uZmlnCisrKyBiL3NvdW5kL2RyaXZlcnMvS2NvbmZpZwpAQCAtMSwxNSArMSw0MSBAQAotIyBBTFNBIGdlbmVyaWMgZHJpdmVycworY29uZmlnIFNORF9NUFU0MDFfVUFSVAorICAgICAgICB0cmlzdGF0ZQorICAgICAgICBzZWxlY3QgU05EX1JBV01JREkKIAotbWVudSAiR2VuZXJpYyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uCitjb25maWcgU05EX09QTDNfTElCCisJdHJpc3RhdGUKKwlzZWxlY3QgU05EX1RJTUVSCisJc2VsZWN0IFNORF9IV0RFUAogCitjb25maWcgU05EX09QTDRfTElCCisJdHJpc3RhdGUKKwlzZWxlY3QgU05EX1RJTUVSCisJc2VsZWN0IFNORF9IV0RFUAorCitjb25maWcgU05EX1ZYX0xJQgorCXRyaXN0YXRlCisJc2VsZWN0IFNORF9IV0RFUAorCXNlbGVjdCBTTkRfUENNCisKK2NvbmZpZyBTTkRfQUM5N19DT0RFQworCXRyaXN0YXRlCisJc2VsZWN0IFNORF9QQ00KKwlzZWxlY3QgQUM5N19CVVMKKwlzZWxlY3QgU05EX1ZNQVNURVIKKworbWVudWNvbmZpZyBTTkRfRFJJVkVSUworCWJvb2wgIkdlbmVyaWMgc291bmQgZGV2aWNlcyIKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBnZW5lcmljIHNvdW5kIGRldmljZXMuCisgIAoraWYgU05EX0RSSVZFUlMKIAogY29uZmlnIFNORF9QQ1NQCiAJdHJpc3RhdGUgIlBDLVNwZWFrZXIgc3VwcG9ydCAoUkVBRCBIRUxQISkiCiAJZGVwZW5kcyBvbiBQQ1NQS1JfUExBVEZPUk0gJiYgWDg2X1BDICYmIEhJR0hfUkVTX1RJTUVSUwogCWRlcGVuZHMgb24gSU5QVVQKIAlkZXBlbmRzIG9uIEVYUEVSSU1FTlRBTAotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBJZiB5b3UgZG9uJ3QgaGF2ZSBhIHNvdW5kIGNhcmQgaW4geW91ciBjb21wdXRlciwgeW91IGNhbiBpbmNsdWRlIGEKQEAgLTM1LDMzICs2MSw4IEBACiAJICBTYXkgTSBpZiB5b3UgZG9uJ3QuCiAJICBTYXkgWSBvbmx5IGlmIHlvdSByZWFsbHkga25vdyB3aGF0IHlvdSBkby4KIAotY29uZmlnIFNORF9NUFU0MDFfVUFSVAotICAgICAgICB0cmlzdGF0ZQotICAgICAgICBzZWxlY3QgU05EX1JBV01JREkKLQotY29uZmlnIFNORF9PUEwzX0xJQgotCXRyaXN0YXRlCi0Jc2VsZWN0IFNORF9USU1FUgotCXNlbGVjdCBTTkRfSFdERVAKLQotY29uZmlnIFNORF9PUEw0X0xJQgotCXRyaXN0YXRlCi0Jc2VsZWN0IFNORF9USU1FUgotCXNlbGVjdCBTTkRfSFdERVAKLQotY29uZmlnIFNORF9WWF9MSUIKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfSFdERVAKLQlzZWxlY3QgU05EX1BDTQotCi1jb25maWcgU05EX0FDOTdfQ09ERUMKLQl0cmlzdGF0ZQotCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IEFDOTdfQlVTCi0KIGNvbmZpZyBTTkRfRFVNTVkKIAl0cmlzdGF0ZSAiRHVtbXkgKC9kZXYvbnVsbCkgc291bmRjYXJkIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIGR1bW15IGRyaXZlci4gIFRoaXMgZHJpdmVyIGRvZXMKQEAgLTkwLDcgKzkxLDYgQEAKIAogY29uZmlnIFNORF9NVFBBVgogCXRyaXN0YXRlICJNT1RVIE1pZGlUaW1lUGllY2UgQVYgbXVsdGlwb3J0IE1JREkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAloZWxwCiAJICBUbyB1c2UgYSBNT1RVIE1pZGlUaW1lUGllY2UgQVYgbXVsdGlwb3J0IE1JREkgYWRhcHRlcgpAQCAtMTAyLDcgKzEwMiw3IEBACiAKIGNvbmZpZyBTTkRfTVRTNjQKIAl0cmlzdGF0ZSAiRVNJIE1pZGl0ZXJtaW5hbCA0MTQwIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORCAmJiBQQVJQT1JUCisJZGVwZW5kcyBvbiBQQVJQT1JUCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJaGVscAogCSAgVGhlIEVTSSBNaWRpdGVybWluYWwgNDE0MCBpcyBhIDQgSW4gNCBPdXQgTUlESSBJbnRlcmZhY2Ugd2l0aCAKQEAgLTExNSw3ICsxMTUsNiBAQAogCiBjb25maWcgU05EX1NFUklBTF9VMTY1NTAKIAl0cmlzdGF0ZSAiVUFSVDE2NTUwIHNlcmlhbCBNSURJIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKIAkgIFRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTUlESSBzZXJpYWwgcG9ydCBpbnRlcmZhY2VzLCBzYXkgWSBoZXJlCkBAIC0xMzEsNyArMTMwLDYgQEAKIAogY29uZmlnIFNORF9NUFU0MDEKIAl0cmlzdGF0ZSAiR2VuZXJpYyBNUFUtNDAxIFVBUlQgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBNSURJIHBvcnRzIGNvbXBhdGlibGUgd2l0aApAQCAtMTQyLDcgKzE0MCw3IEBACiAKIGNvbmZpZyBTTkRfUE9SVE1BTjJYNAogCXRyaXN0YXRlICJQb3J0bWFuIDJ4NCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUEFSUE9SVAorCWRlcGVuZHMgb24gUEFSUE9SVAogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBNaWRpbWFuIFBvcnRtYW4gMng0IHBhcmFsbGVsCkBAIC0xNTMsNyArMTUxLDcgQEAKIAogY29uZmlnIFNORF9NTDQwM19BQzk3Q1IKIAl0cmlzdGF0ZSAiWGlsaW54IE1MNDAzIEFDOTcgQ29udHJvbGxlciBSZWZlcmVuY2UiCi0JZGVwZW5kcyBvbiBTTkQgJiYgWElMSU5YX1ZJUlRFWAorCWRlcGVuZHMgb24gWElMSU5YX1ZJUlRFWAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUKQEAgLTE2Myw0ICsxNjEsMjUgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1tbDQwM19hYzk3Y3IuCiAKLWVuZG1lbnUKK2NvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFCisJYm9vbCAiQUM5NyBQb3dlci1TYXZpbmcgTW9kZSIKKwlkZXBlbmRzIG9uIFNORF9BQzk3X0NPREVDICYmIEVYUEVSSU1FTlRBTAorCWRlZmF1bHQgbgorCWhlbHAKKwkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBhZ2dyZXNzaXZlIHBvd2VyLXNhdmluZyBzdXBwb3J0IG9mCisJICBBQzk3IGNvZGVjcy4gIEluIHRoaXMgbW9kZSwgdGhlIHBvd2VyLW1vZGUgaXMgZHluYW1pY2FsbHkKKwkgIGNvbnRyb2xsZWQgYXQgZWFjaCBvcGVuL2Nsb3NlLgorCisJICBUaGUgbW9kZSBpcyBhY3RpdmF0ZWQgYnkgcGFzc2luZyBwb3dlcl9zYXZlPTEgb3B0aW9uIHRvCisJICBzbmQtYWM5Ny1jb2RlYyBkcml2ZXIuICBZb3UgY2FuIHRvZ2dsZSBpdCBkeW5hbWljYWxseSBvdmVyCisJICBzeXNmcywgdG9vLgorCitjb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRV9ERUZBVUxUCisJaW50ICJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZSIKKwlkZXBlbmRzIG9uIFNORF9BQzk3X1BPV0VSX1NBVkUKKwlkZWZhdWx0IDAKKwloZWxwCisJICBUaGUgZGVmYXVsdCB0aW1lLW91dCB2YWx1ZSBpbiBzZWNvbmRzIGZvciBBQzk3IGF1dG9tYXRpYworCSAgcG93ZXItc2F2ZSBtb2RlLiAgMCBtZWFucyB0byBkaXNhYmxlIHRoZSBwb3dlci1zYXZlIG1vZGUuCisKK2VuZGlmCSMgU05EX0RSSVZFUlMKZGlmZiAtLWdpdCBhL3NvdW5kL2RyaXZlcnMvcGNzcC9wY3NwLmggYi9zb3VuZC9kcml2ZXJzL3Bjc3AvcGNzcC5oCmluZGV4IGYwN2NjMWUuLjFkNjYxZjcgMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvcGNzcC9wY3NwLmgKKysrIGIvc291bmQvZHJpdmVycy9wY3NwL3Bjc3AuaApAQCAtMjQsNyArMjQsOCBAQAogLyogZGVmYXVsdCB0aW1lciBmcmVxIGZvciBQQy1TcGVha2VyOiAxODY0MyBIeiAqLwogI2RlZmluZSBESVZfMThLSFogNjQKICNkZWZpbmUgTUFYX0RJViBESVZfMThLSFoKLSNkZWZpbmUgQ1VSX0RJVigpIChNQVhfRElWID4+IGNoaXAtPnRyZWJsZSkKKyNkZWZpbmUgQ0FMQ19ESVYoZCkgKE1BWF9ESVYgPj4gKGQpKQorI2RlZmluZSBDVVJfRElWKCkgQ0FMQ19ESVYoY2hpcC0+dHJlYmxlKQogI2RlZmluZSBQQ1NQX01BWF9UUkVCTEUgMQogCiAvKiB1bmZvcnR1bmF0ZWx5LCB3aXRoIGhydGltZXJzIDM3S0h6IGRvZXMgbm90IHdvcmsgdmVyeSB3ZWxsIDooICovCkBAIC0zNiw3ICszNyw4IEBACiAjZGVmaW5lIFBDU1BfREVGQVVMVF9TRElWIChESVZfMThLSFogPj4gMSkKICNkZWZpbmUgUENTUF9ERUZBVUxUX1NSQVRFIChQSVRfVElDS19SQVRFIC8gUENTUF9ERUZBVUxUX1NESVYpCiAjZGVmaW5lIFBDU1BfSU5ERVhfSU5DKCkgKDEgPDwgKFBDU1BfTUFYX1RSRUJMRSAtIGNoaXAtPnRyZWJsZSkpCi0jZGVmaW5lIFBDU1BfUkFURSgpIChQSVRfVElDS19SQVRFIC8gQ1VSX0RJVigpKQorI2RlZmluZSBQQ1NQX0NBTENfUkFURShpKSAoUElUX1RJQ0tfUkFURSAvIENBTENfRElWKGkpKQorI2RlZmluZSBQQ1NQX1JBVEUoKSBQQ1NQX0NBTENfUkFURShjaGlwLT50cmVibGUpCiAjZGVmaW5lIFBDU1BfTUlOX1JBVEVfXzEgTUFYX0RJVi9QSVRfVElDS19SQVRFCiAjZGVmaW5lIFBDU1BfTUFYX1JBVEVfXzEgTUlOX0RJVi9QSVRfVElDS19SQVRFCiAjZGVmaW5lIFBDU1BfTUFYX1BFUklPRF9OUyAoMTAwMDAwMDAwMFVMTCAqIFBDU1BfTUlOX1JBVEVfXzEpCmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL3Bjc3AvcGNzcF9taXhlci5jIGIvc291bmQvZHJpdmVycy9wY3NwL3Bjc3BfbWl4ZXIuYwppbmRleCA2NGE2OTVmLi5jYWViMGY1IDEwMDY0NAotLS0gYS9zb3VuZC9kcml2ZXJzL3Bjc3AvcGNzcF9taXhlci5jCisrKyBiL3NvdW5kL2RyaXZlcnMvcGNzcC9wY3NwX21peGVyLmMKQEAgLTUwLDcgKzUwLDggQEAKIAl1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtcyA9IGNoaXAtPm1heF90cmVibGUgKyAxOwogCWlmICh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtID4gY2hpcC0+bWF4X3RyZWJsZSkKIAkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IGNoaXAtPm1heF90cmVibGU7Ci0Jc3ByaW50Zih1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCAiJWQiLCBQQ1NQX1JBVEUoKSk7CisJc3ByaW50Zih1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCAiJWQiLAorCQkJUENTUF9DQUxDX1JBVEUodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSkpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2NvcmUuYyBiL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCmluZGV4IDk5NTM4ODYuLjU4NWFmMmUgMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCisrKyBiL3NvdW5kL2RyaXZlcnMvdngvdnhfY29yZS5jCkBAIC00NTMsNyArNDUzLDcgQEAKIAkJCXZ4X291dGIoY2hpcCwgVFhNLCAwKTsKIAkJCXZ4X291dGIoY2hpcCwgVFhMLCAwKTsKIAkJfSBlbHNlIHsKLQkJCXVuc2lnbmVkIGNoYXIgKmltYWdlID0gYm9vdC0+ZGF0YSArIGk7CisJCQljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZSA9IGJvb3QtPmRhdGEgKyBpOwogCQkJaWYgKHZ4X3dhaXRfaXNyX2JpdChjaGlwLCBJU1JfVFhfRU1QVFkpIDwgMCkgewogCQkJCXNuZF9wcmludGsoS0VSTl9FUlIgImRzcCBib290IGZhaWxlZCBhdCAlZFxuIiwgaSk7CiAJCQkJcmV0dXJuIC1FSU87CkBAIC02NzEsNyArNjcxLDcgQEAKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgZXJyOwogCXVuc2lnbmVkIGludCBjc3VtID0gMDsKLQl1bnNpZ25lZCBjaGFyICppbWFnZSwgKmNwdHI7CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW1hZ2UsICpjcHRyOwogCiAJc25kX2Fzc2VydChkc3AtPnNpemUgJSAzID09IDAsIHJldHVybiAtRUlOVkFMKTsKIApkaWZmIC0tZ2l0IGEvc291bmQvZHJpdmVycy92eC92eF9od2RlcC5jIGIvc291bmQvZHJpdmVycy92eC92eF9od2RlcC5jCmluZGV4IDFkZmU2OTQuLmVmZDIyZTkgMTAwNjQ0Ci0tLSBhL3NvdW5kL2RyaXZlcnMvdngvdnhfaHdkZXAuYworKysgYi9zb3VuZC9kcml2ZXJzL3Z4L3Z4X2h3ZGVwLmMKQEAgLTE4Myw3ICsxODMsNyBAQAogCQlrZnJlZShmdyk7CiAJCXJldHVybiAtRU5PTUVNOwogCX0KLQlpZiAoY29weV9mcm9tX3VzZXIoZnctPmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgeworCWlmIChjb3B5X2Zyb21fdXNlcigodm9pZCAqKWZ3LT5kYXRhLCBkc3AtPmltYWdlLCBkc3AtPmxlbmd0aCkpIHsKIAkJZnJlZV9mdyhmdyk7CiAJCXJldHVybiAtRUZBVUxUOwogCX0KZGlmZiAtLWdpdCBhL3NvdW5kL2kyYy9jczg0MjcuYyBiL3NvdW5kL2kyYy9jczg0MjcuYwppbmRleCBlNTdlOWNiLi45YzNkMzYxIDEwMDY0NAotLS0gYS9zb3VuZC9pMmMvY3M4NDI3LmMKKysrIGIvc291bmQvaTJjL2NzODQyNy5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgogI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgpAQCAtMjY0LDEwICsyNjUsNyBAQAogCQlnb3RvIF9fZmFpbDsKIAl9CiAJLyogd3JpdGUgZGVmYXVsdCBjaGFubmVsIHN0YXR1cyBieXRlcyAqLwotCWJ1ZlswXSA9ICgodW5zaWduZWQgY2hhcikoU05EUlZfUENNX0RFRkFVTFRfQ09OX1NQRElGID4+IDApKTsKLQlidWZbMV0gPSAoKHVuc2lnbmVkIGNoYXIpKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiA+PiA4KSk7Ci0JYnVmWzJdID0gKCh1bnNpZ25lZCBjaGFyKShTTkRSVl9QQ01fREVGQVVMVF9DT05fU1BESUYgPj4gMTYpKTsKLQlidWZbM10gPSAoKHVuc2lnbmVkIGNoYXIpKFNORFJWX1BDTV9ERUZBVUxUX0NPTl9TUERJRiA+PiAyNCkpOworCXB1dF91bmFsaWduZWRfbGUzMihTTkRSVl9QQ01fREVGQVVMVF9DT05fU1BESUYsIGJ1Zik7CiAJbWVtc2V0KGJ1ZiArIDQsIDAsIDI0IC0gNCk7CiAJaWYgKHNuZF9jczg0Mjdfc2VuZF9jb3J1ZGF0YShkZXZpY2UsIDAsIGJ1ZiwgMjQpIDwgMCkKIAkJZ290byBfX2ZhaWw7CmRpZmYgLS1naXQgYS9zb3VuZC9pMmMvbDMvdWRhMTM0MS5jIGIvc291bmQvaTJjL2wzL3VkYTEzNDEuYwppbmRleCBiZmE1ZDJjLi4xZjQ5NDJlIDEwMDY0NAotLS0gYS9zb3VuZC9pMmMvbDMvdWRhMTM0MS5jCisrKyBiL3NvdW5kL2kyYy9sMy91ZGExMzQxLmMKQEAgLTE3LDggKzE3LDYgQEAKICAqIDIwMDItMDUtMTIgICBUb21hcyBLYXNwYXJlayAgYW5vdGhlciBjb2RlIGNsZWFudXAKICAqLwogCi0vKiAkSWQ6IHVkYTEzNDEuYyx2IDEuMTggMjAwNS8xMS8xNyAxNDoxNzoyMSB0aXdhaSBFeHAgJCAqLwotCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9pc2EvS2NvbmZpZyBiL3NvdW5kL2lzYS9LY29uZmlnCmluZGV4IDI2MzlhNmEuLjU3NjlhMTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9LY29uZmlnCisrKyBiL3NvdW5kL2lzYS9LY29uZmlnCkBAIC0yMSwxMiArMjEsMTcgQEAKICAgICAgICAgc2VsZWN0IFNORF9QQ00KICAgICAgICAgc2VsZWN0IFNORF9TQl9DT01NT04KIAotbWVudSAiSVNBIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgSVNBICYmIElTQV9ETUFfQVBJCittZW51Y29uZmlnIFNORF9JU0EKKwlib29sICJJU0Egc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIElTQSAmJiBJU0FfRE1BX0FQSQorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgSVNBIGJ1cy4KKworaWYgU05EX0lTQQogCiBjb25maWcgU05EX0FETElCCiAJdHJpc3RhdGUgIkFkTGliIEZNIGNhcmQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEFkTGliIEZNIGNhcmRzLgpAQCAtMzYsNyArNDEsNyBAQAogCiBjb25maWcgU05EX0FEMTgxNkEKIAl0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgU291bmRQb3J0IEFEMTgxNkEiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC01MCw3ICs1NSw2IEBACiAKIGNvbmZpZyBTTkRfQUQxODQ4CiAJdHJpc3RhdGUgIkdlbmVyaWMgQUQxODQ4L0NTNDI0OCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FEMTg0OF9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQUQxODQ4IChBbmFsb2cgRGV2aWNlcykgb3IKQEAgLTY0LDcgKzY4LDcgQEAKIAogY29uZmlnIFNORF9BTFMxMDAKIAl0cmlzdGF0ZSAiQXZhbmNlIExvZ2ljIEFMUzEwMC9BTFMxMjAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC03OCw3ICs4Miw3IEBACiAKIGNvbmZpZyBTTkRfQVpUMjMyMAogCXRyaXN0YXRlICJBenRlY2ggU3lzdGVtcyBBWlQyMzIwIgotCWRlcGVuZHMgb24gU05EICYmIFBOUCAmJiBJU0EKKwlkZXBlbmRzIG9uIFBOUAogCXNlbGVjdCBJU0FQTlAKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtOTIsNyArOTYsNiBAQAogCiBjb25maWcgU05EX0NNSTgzMzAKIAl0cmlzdGF0ZSAiQy1NZWRpYSBDTUk4MzMwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BRDE4NDhfTElCCiAJc2VsZWN0IFNORF9TQjE2X0RTUAogCWhlbHAKQEAgLTEwNCw3ICsxMDcsNiBAQAogCiBjb25maWcgU05EX0NTNDIzMQogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzEgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgogCWhlbHAKQEAgLTExNiw3ICsxMTgsNiBAQAogCiBjb25maWcgU05EX0NTNDIzMgogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzIgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTEyOSw3ICsxMzAsNiBAQAogCiBjb25maWcgU05EX0NTNDIzNgogCXRyaXN0YXRlICJHZW5lcmljIENpcnJ1cyBMb2dpYyBDUzQyMzYrIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCkBAIC0xNDIsNyArMTQyLDcgQEAKIAogY29uZmlnIFNORF9EVDAxOVgKIAl0cmlzdGF0ZSAiRGlhbW9uZCBUZWNobm9sb2dpZXMgRFQtMDE5WCwgQXZhbmNlIExvZ2ljIEFMUy0wMDciCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0xNTYsNyArMTU2LDcgQEAKIAogY29uZmlnIFNORF9FUzk2OAogCXRyaXN0YXRlICJHZW5lcmljIEVTUyBFUzk2OCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IElTQVBOUAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCOF9EU1AKQEAgLTE2OCw3ICsxNjgsNiBAQAogCiBjb25maWcgU05EX0VTMTY4OAogCXRyaXN0YXRlICJHZW5lcmljIEVTUyBFUzY4OC9FUzE2ODggZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTgxLDcgKzE4MCw2IEBACiAKIGNvbmZpZyBTTkRfRVMxOFhYCiAJdHJpc3RhdGUgIkdlbmVyaWMgRVNTIEVTMTh4eCBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCkBAIC0xOTMsNyArMTkxLDcgQEAKIAogY29uZmlnIFNORF9TQzYwMDAKIAl0cmlzdGF0ZSAiR2FsbGFudCBTQy02MDAwLCBBdWRpbyBFeGNlbCBEU1AgMTYiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSEFTX0lPUE9SVAorCWRlcGVuZHMgb24gSEFTX0lPUE9SVAogCXNlbGVjdCBTTkRfQUQxODQ4X0xJQgogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0yMDQsMTUgKzIwMiwxMCBAQAogCSAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlIG1vZHVsZQogCSAgd2lsbCBiZSBjYWxsZWQgc25kLXNjNjAwMC4KIAotY29uZmlnIFNORF9HVVNfU1lOVEgKLQl0cmlzdGF0ZQotCiBjb25maWcgU05EX0dVU0NMQVNTSUMKIAl0cmlzdGF0ZSAiR3JhdmlzIFVsdHJhU291bmQgQ2xhc3NpYyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgQ2xhc3NpYwogCSAgc291bmRjYXJkcy4KQEAgLTIyMiwxMSArMjE1LDkgQEAKIAogY29uZmlnIFNORF9HVVNFWFRSRU1FCiAJdHJpc3RhdGUgIkdyYXZpcyBVbHRyYVNvdW5kIEV4dHJlbWUiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0hXREVQCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfUENNCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgRXh0cmVtZQogCSAgc291bmRjYXJkcy4KQEAgLTIzNiwxMCArMjI3LDggQEAKIAogY29uZmlnIFNORF9HVVNNQVgKIAl0cmlzdGF0ZSAiR3JhdmlzIFVsdHJhU291bmQgTUFYIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgR3JhdmlzIFVsdHJhU291bmQgTUFYCiAJICBzb3VuZGNhcmRzLgpAQCAtMjQ5LDEwICsyMzgsOSBAQAogCiBjb25maWcgU05EX0lOVEVSV0FWRQogCXRyaXN0YXRlICJBTUQgSW50ZXJXYXZlLCBHcmF2aXMgVWx0cmFTb3VuZCBQblAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUE5QICYmIElTQQorCWRlcGVuZHMgb24gUE5QCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCi0Jc2VsZWN0IFNORF9HVVNfU1lOVEgKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQU1EIEludGVyV2F2ZSBiYXNlZAogCSAgc291bmRjYXJkcyAoR3JhdmlzIFVsdHJhU291bmQgUGx1ZyAmIFBsYXksIFNUQiBTb3VuZFJhZ2UzMiwKQEAgLTI2MywxMCArMjUxLDkgQEAKIAogY29uZmlnIFNORF9JTlRFUldBVkVfU1RCCiAJdHJpc3RhdGUgIkFNRCBJbnRlcldhdmUgKyBURUE2MzMwVCAoVWx0cmFTb3VuZCAzMi1Qcm8pIgotCWRlcGVuZHMgb24gU05EICYmIFBOUCAmJiBJU0EKKwlkZXBlbmRzIG9uIFBOUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgotCXNlbGVjdCBTTkRfR1VTX1NZTlRICiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEFNRCBJbnRlcldhdmUgYmFzZWQKIAkgIHNvdW5kY2FyZHMgd2l0aCBhIFRFQTYzMzBUIGJhc3MgYW5kIHRyZWJsZSByZWd1bGF0b3IKQEAgLTI3Nyw3ICsyNjQsNiBAQAogCiBjb25maWcgU05EX09QTDNTQTIKIAl0cmlzdGF0ZSAiWWFtYWhhIE9QTDMtU0EyL1NBMyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9DUzQyMzFfTElCCkBAIC0yOTAsNyArMjc2LDYgQEAKIAogY29uZmlnIFNORF9PUFRJOTJYX0FEMTg0OAogCXRyaXN0YXRlICJPUFRpIDgyQzkyeCAtIEFEMTg0OCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX09QTDRfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtMzA0LDcgKzI4OSw2IEBACiAKIGNvbmZpZyBTTkRfT1BUSTkyWF9DUzQyMzEKIAl0cmlzdGF0ZSAiT1BUaSA4MkM5MnggLSBDUzQyMzEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9PUEw0X0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKQEAgLTMxOCwxMCArMzAyLDkgQEAKIAogY29uZmlnIFNORF9PUFRJOTNYCiAJdHJpc3RhdGUgIk9QVGkgODJDOTN4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKLQlzZWxlY3QgU05EX1BDTQorCXNlbGVjdCBTTkRfQ1M0MjMxX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBzb3VuZGNhcmRzIGJhc2VkIG9uIE9wdGkKIAkgIDgyQzkzeCBjaGlwcy4KQEAgLTMzMSw3ICszMTQsNiBAQAogCiBjb25maWcgU05EX01JUk8KIAl0cmlzdGF0ZSAiTWlybyBtaXJvU09VTkQgUENNMXByby9QQ00xMi9QQ00yMHJhZGlvIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMNF9MSUIKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC0zNDUsNyArMzI3LDYgQEAKIAogY29uZmlnIFNORF9TQjgKIAl0cmlzdGF0ZSAiU291bmQgQmxhc3RlciAxLjAvMi4wL1BybyAoOC1iaXQpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfU0I4X0RTUApAQCAtMzU4LDcgKzMzOSw2IEBACiAKIGNvbmZpZyBTTkRfU0IxNgogCXRyaXN0YXRlICJTb3VuZCBCbGFzdGVyIDE2IChQblApIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCMTZfRFNQCkBAIC0zNzEsNyArMzUxLDYgQEAKIAogY29uZmlnIFNORF9TQkFXRQogCXRyaXN0YXRlICJTb3VuZCBCbGFzdGVyIEFXRSAoMzIsNjQpIChQblApIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1NCMTZfRFNQCkBAIC0zOTEsMTggKzM3MCw4IEBACiAJICBjb3Byb2Nlc3NvciBjYW4gZG8gdmFyaWFibGUgdGFza3MgbGlrZSB2YXJpb3VzIGNvbXByZXNzaW9uIGFuZAogCSAgZGVjb21wcmVzc2lvbiBhbGdvcml0aG1zLgogCi1jb25maWcgU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWJvb2wgIkluLWtlcm5lbCBmaXJtd2FyZSBmb3IgU0IxNiBDU1AiCi0JZGVwZW5kcyBvbiBTTkRfU0IxNl9DU1AKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIHN0YXRpYyBmaXJtd2FyZSBidWlsdCBpbiB0aGUga2VybmVsCi0JICBmb3IgdGhlIFNCMTYgQ1NQIGNvbnRyb2xsZXIuICBJZiB5b3UgY2hvb3NlIE4gaGVyZSwgeW91IG5lZWQKLQkgIHRvIGluc3RhbGwgdGhlIGZpcm13YXJlIGZpbGVzIGZyb20gdGhlIGFsc2EtZmlybXdhcmUgcGFja2FnZS4KLQogY29uZmlnIFNORF9TR0FMQVhZCiAJdHJpc3RhdGUgIkF6dGVjaCBTb3VuZCBHYWxheHkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FEMTg0OF9MSUIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQXp0ZWNoIFNvdW5kIEdhbGF4eQpAQCAtNDEzLDcgKzM4Miw2IEBACiAKIGNvbmZpZyBTTkRfU1NDQVBFCiAJdHJpc3RhdGUgIkVuc29uaXEgU291bmRTY2FwZSBQblAgZHJpdmVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0NTNDIzMV9MSUIKQEAgLTQyNiw3ICszOTQsNiBAQAogCiBjb25maWcgU05EX1dBVkVGUk9OVAogCXRyaXN0YXRlICJUdXJ0bGUgQmVhY2ggTWF1aSxUcm9wZXosVHJvcGV6KyAoV2F2ZWZyb250KSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVApAQCAtNDQ4LDQgKzQxNSw1IEBACiAJICB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZQogCSAgYWxzYS1maXJtd2FyZSBwYWNrYWdlLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9JU0EKKwpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL2NzNDIzeC9jczQyMzFfbGliLmMgYi9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYwppbmRleCAwYWE4NjQ5Li41MjFkYjcwIDEwMDY0NAotLS0gYS9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYworKysgYi9zb3VuZC9pc2EvY3M0MjN4L2NzNDIzMV9saWIuYwpAQCAtMTE5LDYgKzExOSw0MiBAQAogCTB4MDAsCQkJLyogMWYvMzEgLSBjYnJsICovCiB9OwogCitzdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZVszMl0gPQoreworCTB4MDAsCQkvKiAwMC8wMCAtIGxfbWl4b3V0X291dGN0cmwgKi8KKwkweDAwLAkJLyogMDEvMDEgLSByX21peG91dF9vdXRjdHJsICovCisJMHg4OCwJCS8qIDAyLzAyIC0gbF9jZF9pbmN0cmwgKi8KKwkweDg4LAkJLyogMDMvMDMgLSByX2NkX2luY3RybCAqLworCTB4ODgsCQkvKiAwNC8wNCAtIGxfYTEvZm1faW5jdHJsICovCisJMHg4OCwJCS8qIDA1LzA1IC0gcl9hMS9mbV9pbmN0cmwgKi8KKwkweDgwLAkJLyogMDYvMDYgLSBsX2RhY19pbmN0cmwgKi8KKwkweDgwLAkJLyogMDcvMDcgLSByX2RhY19pbmN0cmwgKi8KKwkweDAwLAkJLyogMDgvMDggLSBwbHlfZGF0YWZvcm1fcmVnICovCisJMHgwMCwJCS8qIDA5LzA5IC0gaWZfY29uZiAqLworCTB4MDAsCQkvKiAwYS8xMCAtIHBpbl9jdHJsICovCisJMHgwMCwJCS8qIDBiLzExIC0gZXJyX2luaXRfcmVnICovCisJMHgwYSwJCS8qIDBjLzEyIC0gaWRfcmVnICovCisJMHgwMCwJCS8qIDBkLzEzIC0gcmVzZXJ2ZWQgKi8KKwkweDAwLAkJLyogMGUvMTQgLSBwbHlfdXBjb3VudF9yZWcgKi8KKwkweDAwLAkJLyogMGYvMTUgLSBwbHlfbG93Y291bnRfcmVnICovCisJMHg4OCwJCS8qIDEwLzE2IC0gcmVzZXJ2ZWQvbF9hMV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMTEvMTcgLSByZXNlcnZlZC9yX2ExX2luY3RybCAqLworCTB4ODgsCQkvKiAxMi8xOCAtIGxfbGluZV9pbmN0cmwgKi8KKwkweDg4LAkJLyogMTMvMTkgLSByX2xpbmVfaW5jdHJsICovCisJMHg4OCwJCS8qIDE0LzIwIC0gbF9taWNfaW5jdHJsICovCisJMHg4OCwJCS8qIDE1LzIxIC0gcl9taWNfaW5jdHJsICovCisJMHg4MCwJCS8qIDE2LzIyIC0gbF9vdXRfb3V0Y3RybCAqLworCTB4ODAsCQkvKiAxNy8yMyAtIHJfb3V0X291dGN0cmwgKi8KKwkweDAwLAkJLyogMTgvMjQgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxOS8yNSAtIHJlc2VydmVkICovCisJMHgwMCwJCS8qIDFhLzI2IC0gcmVzZXJ2ZWQgKi8KKwkweDAwLAkJLyogMWIvMjcgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxYy8yOCAtIGNhcF9kYXRhZm9ybV9yZWcgKi8KKwkweDAwLAkJLyogMWQvMjkgLSByZXNlcnZlZCAqLworCTB4MDAsCQkvKiAxZS8zMCAtIGNhcF91cGNvdW50X3JlZyAqLworCTB4MDAJCS8qIDFmLzMxIC0gY2FwX2xvd2NvdW50X3JlZyAqLworfTsKKwogLyoKICAqICBCYXNpYyBJL08gZnVuY3Rpb25zCiAgKi8KQEAgLTg5NSw3ICs5MzEsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBzbmRfY3M0MjMxX292ZXJyYW5nZShzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCkKK3ZvaWQgc25kX2NzNDIzMV9vdmVycmFuZ2Uoc3RydWN0IHNuZF9jczQyMzEgKmNoaXApCiB7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAl1bnNpZ25lZCBjaGFyIHJlczsKQEAgLTEwNTQsOCArMTA5MCwxMSBAQAogCWNoaXAtPmltYWdlW0NTNDIzMV9JRkFDRV9DVFJMXSA9CiAJICAgIChjaGlwLT5pbWFnZVtDUzQyMzFfSUZBQ0VfQ1RSTF0gJiB+Q1M0MjMxX1NJTkdMRV9ETUEpIHwKIAkgICAgKGNoaXAtPnNpbmdsZV9kbWEgPyBDUzQyMzFfU0lOR0xFX0RNQSA6IDApOwotCWNoaXAtPmltYWdlW0NTNDIzMV9BTFRfRkVBVFVSRV8xXSA9IDB4ODA7Ci0JY2hpcC0+aW1hZ2VbQ1M0MjMxX0FMVF9GRUFUVVJFXzJdID0gY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX0lOVEVSV0FWRSA/IDB4YzIgOiAweDAxOworCWlmIChjaGlwLT5oYXJkd2FyZSAhPSBDUzQyMzFfSFdfT1BUSTkzWCkgeworCQljaGlwLT5pbWFnZVtDUzQyMzFfQUxUX0ZFQVRVUkVfMV0gPSAweDgwOworCQljaGlwLT5pbWFnZVtDUzQyMzFfQUxUX0ZFQVRVUkVfMl0gPQorCQkJY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX0lOVEVSV0FWRSA/IDB4YzIgOiAweDAxOworCX0KIAlwdHIgPSAodW5zaWduZWQgY2hhciAqKSAmY2hpcC0+aW1hZ2U7CiAJc25kX2NzNDIzMV9tY2VfZG93bihjaGlwKTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKQEAgLTEzNzYsNiArMTQxNSw3IEBACiAJY2FzZSBDUzQyMzFfSFdfSU5URVJXQVZFOiByZXR1cm4gIkFNRCBJbnRlcldhdmUiOwogCWNhc2UgQ1M0MjMxX0hXX09QTDNTQTI6IHJldHVybiBjaGlwLT5jYXJkLT5zaG9ydG5hbWU7CiAJY2FzZSBDUzQyMzFfSFdfQUQxODQ1OiByZXR1cm4gIkFEMTg0NSI7CisJY2FzZSBDUzQyMzFfSFdfT1BUSTkzWDogcmV0dXJuICJPUFRpIDkzeCI7CiAJZGVmYXVsdDogcmV0dXJuICI/Pz8iOwogCX0KIH0KQEAgLTE0MDEsOCArMTQ0MSwxMyBAQAogCWNoaXAtPnJhdGVfY29uc3RyYWludCA9IHNuZF9jczQyMzFfeHJhdGU7CiAJY2hpcC0+c2V0X3BsYXliYWNrX2Zvcm1hdCA9IHNuZF9jczQyMzFfcGxheWJhY2tfZm9ybWF0OwogCWNoaXAtPnNldF9jYXB0dXJlX2Zvcm1hdCA9IHNuZF9jczQyMzFfY2FwdHVyZV9mb3JtYXQ7Ci0gICAgICAgIG1lbWNweSgmY2hpcC0+aW1hZ2UsICZzbmRfY3M0MjMxX29yaWdpbmFsX2ltYWdlLCBzaXplb2Yoc25kX2NzNDIzMV9vcmlnaW5hbF9pbWFnZSkpOwotICAgICAgICAKKwlpZiAoY2hpcC0+aGFyZHdhcmUgPT0gQ1M0MjMxX0hXX09QVEk5M1gpCisJCW1lbWNweSgmY2hpcC0+aW1hZ2UsICZzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZSwKKwkJICAgICAgIHNpemVvZihzbmRfb3B0aTkzeF9vcmlnaW5hbF9pbWFnZSkpOworCWVsc2UKKwkJbWVtY3B5KCZjaGlwLT5pbWFnZSwgJnNuZF9jczQyMzFfb3JpZ2luYWxfaW1hZ2UsCisJCSAgICAgICBzaXplb2Yoc25kX2NzNDIzMV9vcmlnaW5hbF9pbWFnZSkpOworCiAgICAgICAgICpyY2hpcCA9IGNoaXA7CiAgICAgICAgIHJldHVybiAwOwogfQpAQCAtMTc5MCw2ICsxODM1LDQ4IEBACiBDUzQyMzFfU0lOR0xFKCJMb29wYmFjayBDYXB0dXJlIFZvbHVtZSIsIDAsIENTNDIzMV9MT09QQkFDSywgMiwgNjMsIDEpCiB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9vcHRpOTN4X2NvbnRyb2xzW10gPSB7CitDUzQyMzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgMSwgMSwgMzEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfT1VUUFVULCBDUzQyMzFfUklHSFRfT1VUUFVULCA3LCA3LCAxLCAxKSwKK0NTNDIzMV9ET1VCTEUoIlBDTSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX09VVFBVVCwgQ1M0MjMxX1JJR0hUX09VVFBVVCwgMCwgMCwgMzEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiRk0gUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBDUzQyMzFfQVVYMl9MRUZUX0lOUFVULCBDUzQyMzFfQVVYMl9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJGTSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9BVVgyX0xFRlRfSU5QVVQsIENTNDIzMV9BVVgyX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0xFRlRfTElORV9JTiwgQ1M0MjMxX1JJR0hUX0xJTkVfSU4sIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiTGluZSBQbGF5YmFjayBWb2x1bWUiLCAwLAorCSAgICAgIENTNDIzMV9MRUZUX0xJTkVfSU4sIENTNDIzMV9SSUdIVF9MSU5FX0lOLCAwLCAwLCAxNSwgMSksCitDUzQyMzFfRE9VQkxFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMCwKKwkgICAgICBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCitDUzQyMzFfRE9VQkxFKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBPUFRpOTNYX01JQ19MRUZUX0lOUFVULCBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLAorQ1M0MjMxX0RPVUJMRSgiTWljIEJvb3N0IiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9JTlBVVCwgQ1M0MjMxX1JJR0hUX0lOUFVULCA1LCA1LCAxLCAwKSwKK0NTNDIzMV9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgQ1M0MjMxX0FVWDFfTEVGVF9JTlBVVCwgQ1M0MjMxX0FVWDFfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQ0QgUGxheWJhY2sgVm9sdW1lIiwgMCwKKwkgICAgICBDUzQyMzFfQVVYMV9MRUZUX0lOUFVULCBDUzQyMzFfQVVYMV9SSUdIVF9JTlBVVCwgMSwgMSwgMTUsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsCisJICAgICAgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDcsIDcsIDEsIDEpLAorQ1M0MjMxX0RPVUJMRSgiQXV4IFBsYXliYWNrIFZvbHVtZSIsIDAsCisJICAgICAgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwKK0NTNDIzMV9ET1VCTEUoIkNhcHR1cmUgVm9sdW1lIiwgMCwKKwkgICAgICBDUzQyMzFfTEVGVF9JTlBVVCwgQ1M0MjMxX1JJR0hUX0lOUFVULCAwLCAwLCAxNSwgMCksCit7CisJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgPSAiQ2FwdHVyZSBTb3VyY2UiLAorCS5pbmZvID0gc25kX2NzNDIzMV9pbmZvX211eCwKKwkuZ2V0ID0gc25kX2NzNDIzMV9nZXRfbXV4LAorCS5wdXQgPSBzbmRfY3M0MjMxX3B1dF9tdXgsCit9Cit9OworCiBpbnQgc25kX2NzNDIzMV9taXhlcihzdHJ1Y3Qgc25kX2NzNDIzMSAqY2hpcCkKIHsKIAlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CkBAIC0xODAyLDEwICsxODg5LDIyIEBACiAKIAlzdHJjcHkoY2FyZC0+bWl4ZXJuYW1lLCBjaGlwLT5wY20tPm5hbWUpOwogCi0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9jczQyMzFfY29udHJvbHMpOyBpZHgrKykgewotCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNhcmQsIHNuZF9jdGxfbmV3MSgmc25kX2NzNDIzMV9jb250cm9sc1tpZHhdLCBjaGlwKSkpIDwgMCkKLQkJCXJldHVybiBlcnI7Ci0JfQorCWlmIChjaGlwLT5oYXJkd2FyZSA9PSBDUzQyMzFfSFdfT1BUSTkzWCkKKwkJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9vcHRpOTN4X2NvbnRyb2xzKTsgaWR4KyspIHsKKwkJCWVyciA9IHNuZF9jdGxfYWRkKGNhcmQsCisJCQkJCXNuZF9jdGxfbmV3MSgmc25kX29wdGk5M3hfY29udHJvbHNbaWR4XSwKKwkJCQkJCSAgICAgY2hpcCkpOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJuIGVycjsKKwkJfQorCWVsc2UKKwkJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9jczQyMzFfY29udHJvbHMpOyBpZHgrKykgeworCQkJZXJyID0gc25kX2N0bF9hZGQoY2FyZCwKKwkJCQkJc25kX2N0bF9uZXcxKCZzbmRfY3M0MjMxX2NvbnRyb2xzW2lkeF0sCisJCQkJCQkgICAgIGNoaXApKTsKKwkJCWlmIChlcnIgPCAwKQorCQkJCXJldHVybiBlcnI7CisJCX0KIAlyZXR1cm4gMDsKIH0KIApAQCAtMTgxNSw2ICsxOTE0LDcgQEAKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzNl9leHRfaW4pOwogRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX21jZV91cCk7CiBFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfbWNlX2Rvd24pOworRVhQT1JUX1NZTUJPTChzbmRfY3M0MjMxX292ZXJyYW5nZSk7CiBFWFBPUlRfU1lNQk9MKHNuZF9jczQyMzFfaW50ZXJydXB0KTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9jaGlwX2lkKTsKIEVYUE9SVF9TWU1CT0woc25kX2NzNDIzMV9jcmVhdGUpOwpkaWZmIC0tZ2l0IGEvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYyBiL3NvdW5kL2lzYS9vcHRpOXh4L29wdGk5MngtYWQxODQ4LmMKaW5kZXggZmUxYWZjMS4uNDFjMDQ3ZSAxMDA2NDQKLS0tIGEvc291bmQvaXNhL29wdGk5eHgvb3B0aTkyeC1hZDE4NDguYworKysgYi9zb3VuZC9pc2Evb3B0aTl4eC9vcHRpOTJ4LWFkMTg0OC5jCkBAIC0zMywxNSArMzMsMTAgQEAKICNpbmNsdWRlIDxhc20vaW8uaD4KICNpbmNsdWRlIDxhc20vZG1hLmg+CiAjaW5jbHVkZSA8c291bmQvY29yZS5oPgotI2lmZGVmIENTNDIzMQorI2lmIGRlZmluZWQoQ1M0MjMxKSB8fCBkZWZpbmVkKE9QVGk5M1gpCiAjaW5jbHVkZSA8c291bmQvY3M0MjMxLmg+CiAjZWxzZQotI2lmbmRlZiBPUFRpOTNYCiAjaW5jbHVkZSA8c291bmQvYWQxODQ4Lmg+Ci0jZWxzZQotI2luY2x1ZGUgPHNvdW5kL2NvbnRyb2wuaD4KLSNpbmNsdWRlIDxzb3VuZC9wY20uaD4KLSNlbmRpZgkvKiBPUFRpOTNYICovCiAjZW5kaWYJLyogQ1M0MjMxICovCiAjaW5jbHVkZSA8c291bmQvbXB1NDAxLmg+CiAjaW5jbHVkZSA8c291bmQvb3BsMy5oPgpAQCAtMTA5LDcgKzEwNCw2IEBACiBNT0RVTEVfUEFSTV9ERVNDKGRtYTIsICIybmQgZG1hICMgZm9yIG9wdGk5eHggZHJpdmVyLiIpOwogI2VuZGlmCS8qIENTNDIzMSB8fCBPUFRpOTNYICovCiAKLSNkZWZpbmUgT1BUaTlYWF9IV19ERVRFQ1QJMAogI2RlZmluZSBPUFRpOVhYX0hXXzgyQzkyOAkxCiAjZGVmaW5lIE9QVGk5WFhfSFdfODJDOTI5CTIKICNkZWZpbmUgT1BUaTlYWF9IV184MkM5MjQJMwpAQCAtMTIzLDEwNSArMTE3LDEyIEBACiAKICNpZmRlZiBPUFRpOTNYCiAKLSNkZWZpbmUgT1BUaTkzWF9JTkRFWAkJCTB4MDAKLSNkZWZpbmUgT1BUaTkzWF9EQVRBCQkJMHgwMQogI2RlZmluZSBPUFRpOTNYX1NUQVRVUwkJCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9EREFUQQkJCTB4MDMKICNkZWZpbmUgT1BUaTkzWF9QT1JUKGNoaXAsIHIpCQkoKGNoaXApLT5wb3J0ICsgT1BUaTkzWF8jI3IpCiAKLSNkZWZpbmUgT1BUaTkzWF9NSVhPVVRfTEVGVAkJMHgwMAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9SSUdIVAkJMHgwMQotI2RlZmluZSBPUFRpOTNYX0NEX0xFRlRfSU5QVVQJCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9DRF9SSUdIVF9JTlBVVAkJMHgwMwotI2RlZmluZSBPUFRpOTMwX0FVWF9MRUZUX0lOUFVUCQkweDA0Ci0jZGVmaW5lIE9QVGk5MzBfQVVYX1JJR0hUX0lOUFVUCQkweDA1Ci0jZGVmaW5lIE9QVGk5MzFfRk1fTEVGVF9JTlBVVAkJMHgwNAotI2RlZmluZSBPUFRpOTMxX0ZNX1JJR0hUX0lOUFVUCQkweDA1Ci0jZGVmaW5lIE9QVGk5M1hfREFDX0xFRlQJCTB4MDYKLSNkZWZpbmUgT1BUaTkzWF9EQUNfUklHSFQJCTB4MDcKLSNkZWZpbmUgT1BUaTkzWF9QTEFZX0ZPUk1BVAkJMHgwOAotI2RlZmluZSBPUFRpOTNYX0lGQUNFX0NPTkYJCTB4MDkKLSNkZWZpbmUgT1BUaTkzWF9QSU5fQ1RSTAkJMHgwYQotI2RlZmluZSBPUFRpOTNYX0VSUl9JTklUCQkweDBiCi0jZGVmaW5lIE9QVGk5M1hfSUQJCQkweDBjCi0jZGVmaW5lIE9QVGk5M1hfUExBWV9VUFJfQ05UCQkweDBlCi0jZGVmaW5lIE9QVGk5M1hfUExBWV9MV1JfQ05UCQkweDBmCi0jZGVmaW5lIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQJCTB4MTAKLSNkZWZpbmUgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQJCTB4MTEKLSNkZWZpbmUgT1BUaTkzWF9MSU5FX0xFRlRfSU5QVVQJCTB4MTIKLSNkZWZpbmUgT1BUaTkzWF9MSU5FX1JJR0hUX0lOUFVUCTB4MTMKLSNkZWZpbmUgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVAkJMHgxNAotI2RlZmluZSBPUFRpOTNYX01JQ19SSUdIVF9JTlBVVAkJMHgxNQotI2RlZmluZSBPUFRpOTNYX09VVF9MRUZUCQkweDE2Ci0jZGVmaW5lIE9QVGk5M1hfT1VUX1JJR0hUCQkweDE3Ci0jZGVmaW5lIE9QVGk5M1hfQ0FQVF9GT1JNQVQJCTB4MWMKLSNkZWZpbmUgT1BUaTkzWF9DQVBUX1VQUl9DTlQJCTB4MWUKLSNkZWZpbmUgT1BUaTkzWF9DQVBUX0xXUl9DTlQJCTB4MWYKLQotI2RlZmluZSBPUFRpOTNYX1RSRAkJCTB4MjAKLSNkZWZpbmUgT1BUaTkzWF9NQ0UJCQkweDQwCi0jZGVmaW5lIE9QVGk5M1hfSU5JVAkJCTB4ODAKLQotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9NSUNfR0FJTgkJMHgyMAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9MSU5FCQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX0NECQkweDQwCi0jZGVmaW5lIE9QVGk5M1hfTUlYT1VUX01JQwkJMHg4MAotI2RlZmluZSBPUFRpOTNYX01JWE9VVF9NSVhFUgkJMHhjMAotCi0jZGVmaW5lIE9QVGk5M1hfU1RFUkVPCQkJMHgxMAotI2RlZmluZSBPUFRpOTNYX0xJTkVBUl84CQkweDAwCi0jZGVmaW5lIE9QVGk5M1hfVUxBV184CQkJMHgyMAotI2RlZmluZSBPUFRpOTNYX0xJTkVBUl8xNl9MSVQJCTB4NDAKLSNkZWZpbmUgT1BUaTkzWF9BTEFXXzgJCQkweDYwCi0jZGVmaW5lIE9QVGk5M1hfQURQQ01fMTYJCTB4YTAKLSNkZWZpbmUgT1BUaTkzWF9MSU5FQVJfMTZfQklHCQkweGMwCi0KLSNkZWZpbmUgT1BUaTkzWF9DQVBUVVJFX1BJTwkJMHg4MAotI2RlZmluZSBPUFRpOTNYX1BMQVlCQUNLX1BJTwkJMHg0MAotI2RlZmluZSBPUFRpOTNYX0FVVE9DQUxJQgkJMHgwOAotI2RlZmluZSBPUFRpOTNYX1NJTkdMRV9ETUEJCTB4MDQKLSNkZWZpbmUgT1BUaTkzWF9DQVBUVVJFX0VOQUJMRQkJMHgwMgotI2RlZmluZSBPUFRpOTNYX1BMQVlCQUNLX0VOQUJMRQkJMHgwMQotCi0jZGVmaW5lIE9QVGk5M1hfSVJRX0VOQUJMRQkJMHgwMgotCi0jZGVmaW5lIE9QVGk5M1hfRE1BX1JFUVVFU1QJCTB4MTAKLSNkZWZpbmUgT1BUaTkzWF9DQUxJQl9JTl9QUk9HUkVTUwkweDIwCi0KICNkZWZpbmUgT1BUaTkzWF9JUlFfUExBWUJBQ0sJCTB4MDQKICNkZWZpbmUgT1BUaTkzWF9JUlFfQ0FQVFVSRQkJMHgwOAogCi0KLXN0cnVjdCBzbmRfb3B0aTkzeCB7Ci0JdW5zaWduZWQgbG9uZyBwb3J0OwotCXN0cnVjdCByZXNvdXJjZSAqcmVzX3BvcnQ7Ci0JaW50IGlycTsKLQlpbnQgZG1hMTsKLQlpbnQgZG1hMjsKLQotCXN0cnVjdCBzbmRfb3B0aTl4eCAqY2hpcDsKLQl1bnNpZ25lZCBzaG9ydCBoYXJkd2FyZTsKLQl1bnNpZ25lZCBjaGFyIGltYWdlWzMyXTsKLQotCXVuc2lnbmVkIGNoYXIgbWNlX2JpdDsKLQl1bnNpZ25lZCBzaG9ydCBtb2RlOwotCWludCBtdXRlOwotCi0Jc3BpbmxvY2tfdCBsb2NrOwotCi0Jc3RydWN0IHNuZF9jYXJkICpjYXJkOwotCXN0cnVjdCBzbmRfcGNtICpwY207Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpwbGF5YmFja19zdWJzdHJlYW07Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpjYXB0dXJlX3N1YnN0cmVhbTsKLQl1bnNpZ25lZCBpbnQgcF9kbWFfc2l6ZTsKLQl1bnNpZ25lZCBpbnQgY19kbWFfc2l6ZTsKLX07Ci0KLSNkZWZpbmUgT1BUaTkzWF9NT0RFX05PTkUJMHgwMAotI2RlZmluZSBPUFRpOTNYX01PREVfUExBWQkweDAxCi0jZGVmaW5lIE9QVGk5M1hfTU9ERV9DQVBUVVJFCTB4MDIKLSNkZWZpbmUgT1BUaTkzWF9NT0RFX09QRU4JKE9QVGk5M1hfTU9ERV9QTEFZIHwgT1BUaTkzWF9NT0RFX0NBUFRVUkUpCi0KICNlbmRpZiAvKiBPUFRpOTNYICovCiAKIHN0cnVjdCBzbmRfb3B0aTl4eCB7CkBAIC0yMzQsNiArMTM1LDcgQEAKIAl1bnNpZ25lZCBsb25nIG1jX2Jhc2Vfc2l6ZTsKICNpZmRlZiBPUFRpOTNYCiAJdW5zaWduZWQgbG9uZyBtY19pbmRpcl9pbmRleDsKKwlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWM7CiAjZW5kaWYJLyogT1BUaTkzWCAqLwogCXVuc2lnbmVkIGxvbmcgcHdkX3JlZzsKIApAQCAtNDkxLDE2ICszOTMsOSBAQAogCQlicmVhazsKIAogI2Vsc2UJLyogT1BUaTkzWCAqLwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzA6CiAJY2FzZSBPUFRpOVhYX0hXXzgyQzkzMToKIAljYXNlIE9QVGk5WFhfSFdfODJDOTMzOgotCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDYpLCAweDAyLCAweDAzKTsKLQkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygzKSwgMHgwMCwgMHhmZik7Ci0JCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNCksIDB4MTAgfAotCQkJKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwID8gMHgwMCA6IDB4MDQpLAotCQkJMHgzNCk7Ci0JCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNSksIDB4MjAsIDB4YmYpOwotCQkvKiAKKwkJLyoKIAkJICogVGhlIEJUQyAxODE3RFcgaGFzIFFTMTAwMCB3YXZldGFibGUgd2hpY2ggaXMgY29ubmVjdGVkCiAJCSAqIHRvIHRoZSBzZXJpYWwgZGlnaXRhbCBpbnB1dCBvZiB0aGUgT1BUSTkzMS4KIAkJICovCkBAIC01MTAsNiArNDA1LDEzIEBACiAJCSAqIG9yIGRpZ2l0YWwgaW5wdXQgc2lnbmFsLgogCQkgKi8KIAkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygyNiksIDB4MDEsIDB4MDEpOworCWNhc2UgT1BUaTlYWF9IV184MkM5MzA6IC8qIEZBTEwgVEhST1VHSCAqLworCQlzbmRfb3B0aTl4eF93cml0ZV9tYXNrKGNoaXAsIE9QVGk5WFhfTUNfUkVHKDYpLCAweDAyLCAweDAzKTsKKwkJc25kX29wdGk5eHhfd3JpdGVfbWFzayhjaGlwLCBPUFRpOVhYX01DX1JFRygzKSwgMHgwMCwgMHhmZik7CisJCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNCksIDB4MTAgfAorCQkJKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwID8gMHgwMCA6IDB4MDQpLAorCQkJMHgzNCk7CisJCXNuZF9vcHRpOXh4X3dyaXRlX21hc2soY2hpcCwgT1BUaTlYWF9NQ19SRUcoNSksIDB4MjAsIDB4YmYpOwogCQlicmVhazsKICNlbmRpZgkvKiBPUFRpOTNYICovCiAKQEAgLTY1NCw5NzkgKzU1NiwyMyBAQAogCiAjaWZkZWYgT1BUaTkzWAogCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfb3B0aTkzeF9kZWZhdWx0X2ltYWdlWzMyXSA9Ci17Ci0JMHgwMCwJCS8qIDAwLzAwIC0gbF9taXhvdXRfb3V0Y3RybCAqLwotCTB4MDAsCQkvKiAwMS8wMSAtIHJfbWl4b3V0X291dGN0cmwgKi8KLQkweDg4LAkJLyogMDIvMDIgLSBsX2NkX2luY3RybCAqLwotCTB4ODgsCQkvKiAwMy8wMyAtIHJfY2RfaW5jdHJsICovCi0JMHg4OCwJCS8qIDA0LzA0IC0gbF9hMS9mbV9pbmN0cmwgKi8KLQkweDg4LAkJLyogMDUvMDUgLSByX2ExL2ZtX2luY3RybCAqLwotCTB4ODAsCQkvKiAwNi8wNiAtIGxfZGFjX2luY3RybCAqLwotCTB4ODAsCQkvKiAwNy8wNyAtIHJfZGFjX2luY3RybCAqLwotCTB4MDAsCQkvKiAwOC8wOCAtIHBseV9kYXRhZm9ybV9yZWcgKi8KLQkweDAwLAkJLyogMDkvMDkgLSBpZl9jb25mICovCi0JMHgwMCwJCS8qIDBhLzEwIC0gcGluX2N0cmwgKi8KLQkweDAwLAkJLyogMGIvMTEgLSBlcnJfaW5pdF9yZWcgKi8KLQkweDBhLAkJLyogMGMvMTIgLSBpZF9yZWcgKi8KLQkweDAwLAkJLyogMGQvMTMgLSByZXNlcnZlZCAqLwotCTB4MDAsCQkvKiAwZS8xNCAtIHBseV91cGNvdW50X3JlZyAqLwotCTB4MDAsCQkvKiAwZi8xNSAtIHBseV9sb3djb3VudF9yZWcgKi8KLQkweDg4LAkJLyogMTAvMTYgLSByZXNlcnZlZC9sX2ExX2luY3RybCAqLwotCTB4ODgsCQkvKiAxMS8xNyAtIHJlc2VydmVkL3JfYTFfaW5jdHJsICovCi0JMHg4OCwJCS8qIDEyLzE4IC0gbF9saW5lX2luY3RybCAqLwotCTB4ODgsCQkvKiAxMy8xOSAtIHJfbGluZV9pbmN0cmwgKi8KLQkweDg4LAkJLyogMTQvMjAgLSBsX21pY19pbmN0cmwgKi8KLQkweDg4LAkJLyogMTUvMjEgLSByX21pY19pbmN0cmwgKi8KLQkweDgwLAkJLyogMTYvMjIgLSBsX291dF9vdXRjdHJsICovCi0JMHg4MCwJCS8qIDE3LzIzIC0gcl9vdXRfb3V0Y3RybCAqLwotCTB4MDAsCQkvKiAxOC8yNCAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDE5LzI1IC0gcmVzZXJ2ZWQgKi8KLQkweDAwLAkJLyogMWEvMjYgLSByZXNlcnZlZCAqLwotCTB4MDAsCQkvKiAxYi8yNyAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDFjLzI4IC0gY2FwX2RhdGFmb3JtX3JlZyAqLwotCTB4MDAsCQkvKiAxZC8yOSAtIHJlc2VydmVkICovCi0JMHgwMCwJCS8qIDFlLzMwIC0gY2FwX3VwY291bnRfcmVnICovCi0JMHgwMAkJLyogMWYvMzEgLSBjYXBfbG93Y291bnRfcmVnICovCi19OwotCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfYnVzeV93YWl0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlpbnQgdGltZW91dDsKLQotCWZvciAodGltZW91dCA9IDI1MDsgdGltZW91dC0tID4gMDsgdWRlbGF5KDEwKSkKLQkJaWYgKCEoaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBJTkRFWCkpICYgT1BUaTkzWF9JTklUKSkKLQkJCXJldHVybiAwOwotCi0Jc25kX3ByaW50aygiY2hpcCBzdGlsbCBidXN5LlxuIik7Ci0JcmV0dXJuIC1FQlVTWTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX29wdGk5M3hfaW4oc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBjaGFyIHJlZykKLXsKLQlzbmRfb3B0aTkzeF9idXN5X3dhaXQoY2hpcCk7Ci0Jb3V0YihjaGlwLT5tY2VfYml0IHwgKHJlZyAmIDB4MWYpLCBPUFRpOTNYX1BPUlQoY2hpcCwgSU5ERVgpKTsKLQlyZXR1cm4gaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBEQVRBKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X291dChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGNoYXIgcmVnLAotCQkJICAgIHVuc2lnbmVkIGNoYXIgdmFsdWUpCi17Ci0Jc25kX29wdGk5M3hfYnVzeV93YWl0KGNoaXApOwotCW91dGIoY2hpcC0+bWNlX2JpdCB8IChyZWcgJiAweDFmKSwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci0Jb3V0Yih2YWx1ZSwgT1BUaTkzWF9QT1JUKGNoaXAsIERBVEEpKTsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3V0X2ltYWdlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciByZWcsCi0JCQkJICB1bnNpZ25lZCBjaGFyIHZhbHVlKQotewotCXNuZF9vcHRpOTN4X291dChjaGlwLCByZWcsIGNoaXAtPmltYWdlW3JlZ10gPSB2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X291dF9tYXNrKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciByZWcsCi0JCQkJIHVuc2lnbmVkIGNoYXIgbWFzaywgdW5zaWduZWQgY2hhciB2YWx1ZSkKLXsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgcmVnLAotCQkoY2hpcC0+aW1hZ2VbcmVnXSAmIH5tYXNrKSB8ICh2YWx1ZSAmIG1hc2spKTsKLX0KLQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9tY2VfdXAoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwKQotewotCXNuZF9vcHRpOTN4X2J1c3lfd2FpdChjaGlwKTsKLQotCWNoaXAtPm1jZV9iaXQgPSBPUFRpOTNYX01DRTsKLQlpZiAoIShpbmIoT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSkgJiBPUFRpOTNYX01DRSkpCi0JCW91dGIoY2hpcC0+bWNlX2JpdCwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X21jZV9kb3duKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlzbmRfb3B0aTkzeF9idXN5X3dhaXQoY2hpcCk7Ci0KLQljaGlwLT5tY2VfYml0ID0gMDsKLQlpZiAoaW5iKE9QVGk5M1hfUE9SVChjaGlwLCBJTkRFWCkpICYgT1BUaTkzWF9NQ0UpCi0JCW91dGIoY2hpcC0+bWNlX2JpdCwgT1BUaTkzWF9QT1JUKGNoaXAsIElOREVYKSk7Ci19Ci0KLSNkZWZpbmUgc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgcmVnLCBtdXRlKQlcCi0Jc25kX29wdGk5M3hfb3V0KGNoaXAsIHJlZywgbXV0ZSA/IDB4ODAgOiBjaGlwLT5pbWFnZVtyZWddKTsKLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfbXV0ZShzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIGludCBtdXRlKQotewotCW11dGUgPSBtdXRlID8gMSA6IDA7Ci0JaWYgKGNoaXAtPm11dGUgPT0gbXV0ZSkKLQkJcmV0dXJuOwotCi0JY2hpcC0+bXV0ZSA9IG11dGU7Ci0KLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0NEX0xFRlRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfQ0RfUklHSFRfSU5QVVQsIG11dGUpOwotCXN3aXRjaCAoY2hpcC0+aGFyZHdhcmUpIHsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMwOgotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMwX0FVWF9MRUZUX0lOUFVULCBtdXRlKTsKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMF9BVVhfUklHSFRfSU5QVVQsIG11dGUpOwotCQlicmVhazsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMxOgotCWNhc2UgT1BUaTlYWF9IV184MkM5MzM6Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzFfRk1fTEVGVF9JTlBVVCwgbXV0ZSk7Ci0JCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5MzFfRk1fUklHSFRfSU5QVVQsIG11dGUpOwotCQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTMxX0FVWF9MRUZUX0lOUFVULCBtdXRlKTsKLQkJc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIG11dGUpOwotCX0KLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0RBQ19MRUZULCBtdXRlKTsKLQlzbmRfb3B0aTkzeF9tdXRlX3JlZyhjaGlwLCBPUFRpOTNYX0RBQ19SSUdIVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9MSU5FX0xFRlRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfTElORV9SSUdIVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVCwgbXV0ZSk7Ci0Jc25kX29wdGk5M3hfbXV0ZV9yZWcoY2hpcCwgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfT1VUX0xFRlQsIG11dGUpOwotCXNuZF9vcHRpOTN4X211dGVfcmVnKGNoaXAsIE9QVGk5M1hfT1VUX1JJR0hULCBtdXRlKTsKLX0KLQotCi1zdGF0aWMgdW5zaWduZWQgaW50IHNuZF9vcHRpOTN4X2dldF9jb3VudCh1bnNpZ25lZCBjaGFyIGZvcm1hdCwKLQkJCQkJICB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzd2l0Y2ggKGZvcm1hdCAmIDB4ZTApIHsKLQljYXNlIE9QVGk5M1hfTElORUFSXzE2X0xJVDoKLQljYXNlIE9QVGk5M1hfTElORUFSXzE2X0JJRzoKLQkJc2l6ZSA+Pj0gMTsKLQkJYnJlYWs7Ci0JY2FzZSBPUFRpOTNYX0FEUENNXzE2OgotCQlyZXR1cm4gc2l6ZSA+PiAyOwotCX0KLQlyZXR1cm4gKGZvcm1hdCAmIE9QVGk5M1hfU1RFUkVPKSA/IChzaXplID4+IDEpIDogc2l6ZTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIGludCByYXRlc1tdID0geyAgNTUxMiwgIDY2MTUsICA4MDAwLCAgOTYwMCwgMTEwMjUsIDE2MDAwLCAKLQkJCQkxODkwMCwgMjIwNTAsIDI3NDI4LCAzMjAwMCwgMzMwNzUsIDM3ODAwLAotCQkJCTQ0MTAwLCA0ODAwMCB9OwotI2RlZmluZSBSQVRFUyBBUlJBWV9TSVpFKHJhdGVzKQotCi1zdGF0aWMgc3RydWN0IHNuZF9wY21faHdfY29uc3RyYWludF9saXN0IGh3X2NvbnN0cmFpbnRzX3JhdGVzID0gewotCS5jb3VudCA9IFJBVEVTLAotCS5saXN0ID0gcmF0ZXMsCi0JLm1hc2sgPSAwLAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYml0c1tdID0geyAgMHgwMSwgIDB4MGYsICAweDAwLCAgMHgwZSwgIDB4MDMsICAweDAyLAotCQkJCSAweDA1LCAgMHgwNywgIDB4MDQsICAweDA2LCAgMHgwZCwgIDB4MDksCi0JCQkJIDB4MGIsICAweDBjfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgc25kX29wdGk5M3hfZ2V0X2ZyZXEodW5zaWduZWQgaW50IHJhdGUpCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgUkFURVM7IGkrKykgewotCQlpZiAocmF0ZSA9PSByYXRlc1tpXSkKLQkJCXJldHVybiBiaXRzW2ldOwotCX0KLQlzbmRfQlVHKCk7Ci0JcmV0dXJuIGJpdHNbUkFURVMtMV07Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBjaGFyIHNuZF9vcHRpOTN4X2dldF9mb3JtYXQoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLAotCQkJCQkgICAgdW5zaWduZWQgaW50IGZvcm1hdCwgaW50IGNoYW5uZWxzKQotewotCXVuc2lnbmVkIGNoYXIgcmV0dmFsID0gT1BUaTkzWF9MSU5FQVJfODsKLQotCXN3aXRjaCAoZm9ybWF0KSB7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoKLQkJcmV0dmFsID0gT1BUaTkzWF9VTEFXXzg7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9BX0xBVzoKLQkJcmV0dmFsID0gT1BUaTkzWF9BTEFXXzg7Ci0JCWJyZWFrOwotCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6Ci0JCXJldHZhbCA9IE9QVGk5M1hfTElORUFSXzE2X0xJVDsKLQkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9CRToKLQkJcmV0dmFsID0gT1BUaTkzWF9MSU5FQVJfMTZfQklHOwotCQlicmVhazsKLQljYXNlIFNORFJWX1BDTV9GT1JNQVRfSU1BX0FEUENNOgotCQlyZXR2YWwgPSBPUFRpOTNYX0FEUENNXzE2OwotCX0KLQlyZXR1cm4gKGNoYW5uZWxzID4gMSkgPyAocmV0dmFsIHwgT1BUaTkzWF9TVEVSRU8pIDogcmV0dmFsOwotfQotCi0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X3BsYXliYWNrX2Zvcm1hdChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAsIHVuc2lnbmVkIGNoYXIgZm10KQotewotCXVuc2lnbmVkIGNoYXIgbWFzazsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMSk7Ci0KLQlzbmRfb3B0aTkzeF9tY2VfdXAoY2hpcCk7Ci0JbWFzayA9IChjaGlwLT5tb2RlICYgT1BUaTkzWF9NT0RFX0NBUFRVUkUpID8gMHhmMCA6IDB4ZmY7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9QTEFZX0ZPUk1BVCwgbWFzaywgZm10KTsKLQlzbmRfb3B0aTkzeF9tY2VfZG93bihjaGlwKTsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9vcHRpOTN4X2NhcHR1cmVfZm9ybWF0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCwgdW5zaWduZWQgY2hhciBmbXQpCi17Ci0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAxKTsKLQotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQlpZiAoIShjaGlwLT5tb2RlICYgT1BUaTkzWF9NT0RFX1BMQVkpKQotCQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX1BMQVlfRk9STUFULCAweDBmLCBmbXQpOwotCWVsc2UKLQkJZm10ID0gY2hpcC0+aW1hZ2VbT1BUaTkzWF9QTEFZX0ZPUk1BVF0gJiAweGYwOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX0NBUFRfRk9STUFULCBmbXQpOwotCXNuZF9vcHRpOTN4X21jZV9kb3duKGNoaXApOwotCi0Jc25kX29wdGk5M3hfbXV0ZShjaGlwLCAwKTsKLX0KLQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X29wZW4oc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBpbnQgbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWlmIChjaGlwLT5tb2RlICYgbW9kZSkgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybiAtRUFHQUlOOwotCX0KLQotCWlmICghKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfT1BFTikpIHsKLQkJb3V0YigweDAwLCBPUFRpOTNYX1BPUlQoY2hpcCwgU1RBVFVTKSk7Ci0JCXNuZF9vcHRpOTN4X291dF9tYXNrKGNoaXAsIE9QVGk5M1hfUElOX0NUUkwsCi0JCQlPUFRpOTNYX0lSUV9FTkFCTEUsIE9QVGk5M1hfSVJRX0VOQUJMRSk7Ci0JCWNoaXAtPm1vZGUgPSBtb2RlOwotCX0KLQllbHNlCi0JCWNoaXAtPm1vZGUgfD0gbW9kZTsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfY2xvc2Uoc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwLCB1bnNpZ25lZCBpbnQgbW9kZSkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWNoaXAtPm1vZGUgJj0gfm1vZGU7Ci0JaWYgKGNoaXAtPm1vZGUgJiBPUFRpOTNYX01PREVfT1BFTikgewotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JCXJldHVybjsKLQl9Ci0KLQlzbmRfb3B0aTkzeF9tdXRlKGNoaXAsIDEpOwotCi0Jb3V0YigwLCBPUFRpOTNYX1BPUlQoY2hpcCwgU1RBVFVTKSk7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9QSU5fQ1RSTCwgT1BUaTkzWF9JUlFfRU5BQkxFLAotCQl+T1BUaTkzWF9JUlFfRU5BQkxFKTsKLQotCXNuZF9vcHRpOTN4X21jZV91cChjaGlwKTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLCAweDAwKTsKLQlzbmRfb3B0aTkzeF9tY2VfZG93bihjaGlwKTsKLQljaGlwLT5tb2RlID0gMDsKLQotCXNuZF9vcHRpOTN4X211dGUoY2hpcCwgMCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIAotCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgd2hhdCwgaW50IGNtZCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0KLQlzd2l0Y2ggKGNtZCkgewotCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6Ci0JY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgotCXsKLQkJdW5zaWduZWQgaW50IHdoYXQgPSAwOwotCQlzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnM7Ci0JCXNuZF9wY21fZ3JvdXBfZm9yX2VhY2hfZW50cnkocywgc3Vic3RyZWFtKSB7Ci0JCQlpZiAocyA9PSBjaGlwLT5wbGF5YmFja19zdWJzdHJlYW0pIHsKLQkJCQl3aGF0IHw9IE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFOwotCQkJCXNuZF9wY21fdHJpZ2dlcl9kb25lKHMsIHN1YnN0cmVhbSk7Ci0JCQl9IGVsc2UgaWYgKHMgPT0gY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0pIHsKLQkJCQl3aGF0IHw9IE9QVGk5M1hfQ0FQVFVSRV9FTkFCTEU7Ci0JCQkJc25kX3BjbV90cmlnZ2VyX2RvbmUocywgc3Vic3RyZWFtKTsKLQkJCX0KLQkJfQotCQlzcGluX2xvY2soJmNoaXAtPmxvY2spOwotCQlpZiAoY21kID09IFNORFJWX1BDTV9UUklHR0VSX1NUQVJUKSB7Ci0JCQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsIHdoYXQsIHdoYXQpOwotCQkJaWYgKHdoYXQgJiBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFKQotCQkJCXVkZWxheSg1MCk7Ci0JCX0gZWxzZQotCQkJc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLCB3aGF0LCAweDAwKTsKLQkJc3Bpbl91bmxvY2soJmNoaXAtPmxvY2spOwotCQlicmVhazsKLQl9Ci0JZGVmYXVsdDoKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCi17Ci0JcmV0dXJuIHNuZF9vcHRpOTN4X3RyaWdnZXIoc3Vic3RyZWFtLAotCQkJCSAgIE9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFLCBjbWQpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKLXsKLQlyZXR1cm4gc25kX29wdGk5M3hfdHJpZ2dlcihzdWJzdHJlYW0sCi0JCQkJICAgT1BUaTkzWF9DQVBUVVJFX0VOQUJMRSwgY21kKTsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCi0JCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqaHdfcGFyYW1zKQotewotCXJldHVybiBzbmRfcGNtX2xpYl9tYWxsb2NfcGFnZXMoc3Vic3RyZWFtLCBwYXJhbXNfYnVmZmVyX2J5dGVzKGh3X3BhcmFtcykpOwotfQotCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzbmRfcGNtX2xpYl9mcmVlX3BhZ2VzKHN1YnN0cmVhbSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wbGF5YmFja19wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgY2hhciBmb3JtYXQ7Ci0JdW5zaWduZWQgaW50IGNvdW50ID0gc25kX3BjbV9saWJfcGVyaW9kX2J5dGVzKHN1YnN0cmVhbSk7Ci0JdW5zaWduZWQgaW50IHNpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKLQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0KLQljaGlwLT5wX2RtYV9zaXplID0gc2l6ZTsKLQlzbmRfb3B0aTkzeF9vdXRfbWFzayhjaGlwLCBPUFRpOTNYX0lGQUNFX0NPTkYsCi0JCU9QVGk5M1hfUExBWUJBQ0tfRU5BQkxFIHwgT1BUaTkzWF9QTEFZQkFDS19QSU8sCi0JCX4oT1BUaTkzWF9QTEFZQkFDS19FTkFCTEUgfCBPUFRpOTNYX1BMQVlCQUNLX1BJTykpOwotCi0Jc25kX2RtYV9wcm9ncmFtKGNoaXAtPmRtYTEsIHJ1bnRpbWUtPmRtYV9hZGRyLCBzaXplLAotCQlETUFfTU9ERV9XUklURSB8IERNQV9BVVRPSU5JVCk7Ci0KLQlmb3JtYXQgPSBzbmRfb3B0aTkzeF9nZXRfZnJlcShydW50aW1lLT5yYXRlKTsKLQlmb3JtYXQgfD0gc25kX29wdGk5M3hfZ2V0X2Zvcm1hdChjaGlwLCBydW50aW1lLT5mb3JtYXQsCi0JCXJ1bnRpbWUtPmNoYW5uZWxzKTsKLQlzbmRfb3B0aTkzeF9wbGF5YmFja19mb3JtYXQoY2hpcCwgZm9ybWF0KTsKLQlmb3JtYXQgPSBjaGlwLT5pbWFnZVtPUFRpOTNYX1BMQVlfRk9STUFUXTsKLQotCWNvdW50ID0gc25kX29wdGk5M3hfZ2V0X2NvdW50KGZvcm1hdCwgY291bnQpIC0gMTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9QTEFZX0xXUl9DTlQsIGNvdW50KTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9QTEFZX1VQUl9DTlQsIGNvdW50ID4+IDgpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGNoYXIgZm9ybWF0OwotCXVuc2lnbmVkIGludCBjb3VudCA9IHNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pOwotCXVuc2lnbmVkIGludCBzaXplID0gc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSk7Ci0KLQlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JY2hpcC0+Y19kbWFfc2l6ZSA9IHNpemU7Ci0Jc25kX29wdGk5M3hfb3V0X21hc2soY2hpcCwgT1BUaTkzWF9JRkFDRV9DT05GLAotCQlPUFRpOTNYX0NBUFRVUkVfRU5BQkxFIHwgT1BUaTkzWF9DQVBUVVJFX1BJTywgMCk7Ci0KLQlzbmRfZG1hX3Byb2dyYW0oY2hpcC0+ZG1hMiwgcnVudGltZS0+ZG1hX2FkZHIsIHNpemUsCi0JCURNQV9NT0RFX1JFQUQgfCBETUFfQVVUT0lOSVQpOwotCi0JZm9ybWF0ID0gc25kX29wdGk5M3hfZ2V0X2ZyZXEocnVudGltZS0+cmF0ZSk7Ci0JZm9ybWF0IHw9IHNuZF9vcHRpOTN4X2dldF9mb3JtYXQoY2hpcCwgcnVudGltZS0+Zm9ybWF0LAotCQlydW50aW1lLT5jaGFubmVscyk7Ci0Jc25kX29wdGk5M3hfY2FwdHVyZV9mb3JtYXQoY2hpcCwgZm9ybWF0KTsKLQlmb3JtYXQgPSBjaGlwLT5pbWFnZVtPUFRpOTNYX0NBUFRfRk9STUFUXTsKLQotCWNvdW50ID0gc25kX29wdGk5M3hfZ2V0X2NvdW50KGZvcm1hdCwgY291bnQpIC0gMTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9DQVBUX0xXUl9DTlQsIGNvdW50KTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgT1BUaTkzWF9DQVBUX1VQUl9DTlQsIGNvdW50ID4+IDgpOwotCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgc25kX3BjbV91ZnJhbWVzX3Qgc25kX29wdGk5M3hfcGxheWJhY2tfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc2l6ZV90IHB0cjsKLQotCWlmICghKGNoaXAtPmltYWdlW09QVGk5M1hfSUZBQ0VfQ09ORl0gJiBPUFRpOTNYX1BMQVlCQUNLX0VOQUJMRSkpCi0JCXJldHVybiAwOwotCi0JcHRyID0gc25kX2RtYV9wb2ludGVyKGNoaXAtPmRtYTEsIGNoaXAtPnBfZG1hX3NpemUpOwotCXJldHVybiBieXRlc190b19mcmFtZXMoc3Vic3RyZWFtLT5ydW50aW1lLCBwdHIpOwotfQotCi1zdGF0aWMgc25kX3BjbV91ZnJhbWVzX3Qgc25kX29wdGk5M3hfY2FwdHVyZV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzaXplX3QgcHRyOwotCQotCWlmICghKGNoaXAtPmltYWdlW09QVGk5M1hfSUZBQ0VfQ09ORl0gJiBPUFRpOTNYX0NBUFRVUkVfRU5BQkxFKSkKLQkJcmV0dXJuIDA7Ci0KLQlwdHIgPSBzbmRfZG1hX3BvaW50ZXIoY2hpcC0+ZG1hMiwgY2hpcC0+Y19kbWFfc2l6ZSk7Ci0JcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHB0cik7Ci19Ci0KLQotc3RhdGljIHZvaWQgc25kX29wdGk5M3hfb3ZlcnJhbmdlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQotCWlmIChzbmRfb3B0aTkzeF9pbihjaGlwLCBPUFRpOTNYX0VSUl9JTklUKSAmICgweDA4IHwgMHgwMikpCi0JCWNoaXAtPmNhcHR1cmVfc3Vic3RyZWFtLT5ydW50aW1lLT5vdmVycmFuZ2UrKzsKLQotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLX0KLQogc3RhdGljIGlycXJldHVybl90IHNuZF9vcHRpOTN4X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjb2RlYyA9IGRldl9pZDsKKwlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWMgPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY29kZWMtPmNhcmQtPnByaXZhdGVfZGF0YTsKIAl1bnNpZ25lZCBjaGFyIHN0YXR1czsKIAotCXN0YXR1cyA9IHNuZF9vcHRpOXh4X3JlYWQoY29kZWMtPmNoaXAsIE9QVGk5WFhfTUNfUkVHKDExKSk7CisJc3RhdHVzID0gc25kX29wdGk5eHhfcmVhZChjaGlwLCBPUFRpOVhYX01DX1JFRygxMSkpOwogCWlmICgoc3RhdHVzICYgT1BUaTkzWF9JUlFfUExBWUJBQ0spICYmIGNvZGVjLT5wbGF5YmFja19zdWJzdHJlYW0pCiAJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoY29kZWMtPnBsYXliYWNrX3N1YnN0cmVhbSk7CiAJaWYgKChzdGF0dXMgJiBPUFRpOTNYX0lSUV9DQVBUVVJFKSAmJiBjb2RlYy0+Y2FwdHVyZV9zdWJzdHJlYW0pIHsKLQkJc25kX29wdGk5M3hfb3ZlcnJhbmdlKGNvZGVjKTsKKwkJc25kX2NzNDIzMV9vdmVycmFuZ2UoY29kZWMpOwogCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNvZGVjLT5jYXB0dXJlX3N1YnN0cmVhbSk7CiAJfQogCW91dGIoMHgwMCwgT1BUaTkzWF9QT1JUKGNvZGVjLCBTVEFUVVMpKTsKIAlyZXR1cm4gSVJRX0hBTkRMRUQ7CiB9CiAKLQotc3RhdGljIHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlIHNuZF9vcHRpOTN4X3BsYXliYWNrID0gewotCS5pbmZvID0JCQkoU05EUlZfUENNX0lORk9fTU1BUCB8IFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKLQkJCQkgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8IFNORFJWX1BDTV9JTkZPX1NZTkNfU1RBUlQpLAotCS5mb3JtYXRzID0JCShTTkRSVl9QQ01fRk1UQklUX01VX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfQV9MQVcgfCBTTkRSVl9QQ01fRk1UQklUX0lNQV9BRFBDTSB8Ci0JCQkJIFNORFJWX1BDTV9GTVRCSVRfVTggfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFKSwKLQkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfS05PVCB8IFNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAsCi0JLnJhdGVfbWluID0JCTU1MTIsCi0JLnJhdGVfbWF4ID0JCTQ4MDAwLAotCS5jaGFubmVsc19taW4gPQkJMSwKLQkuY2hhbm5lbHNfbWF4ID0JCTIsCi0JLmJ1ZmZlcl9ieXRlc19tYXggPQkoMTI4KjEwMjQpLAotCS5wZXJpb2RfYnl0ZXNfbWluID0JNjQsCi0JLnBlcmlvZF9ieXRlc19tYXggPQkoMTI4KjEwMjQpLAotCS5wZXJpb2RzX21pbiA9CQkxLAotCS5wZXJpb2RzX21heCA9CQkxMDI0LAotCS5maWZvX3NpemUgPQkJMCwKLX07Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBzbmRfb3B0aTkzeF9jYXB0dXJlID0gewotCS5pbmZvID0JCQkoU05EUlZfUENNX0lORk9fTU1BUCB8IFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKLQkJCQkgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8IFNORFJWX1BDTV9JTkZPX1NZTkNfU1RBUlQpLAotCS5mb3JtYXRzID0JCShTTkRSVl9QQ01fRk1UQklUX01VX0xBVyB8IFNORFJWX1BDTV9GTVRCSVRfQV9MQVcgfCBTTkRSVl9QQ01fRk1UQklUX0lNQV9BRFBDTSB8Ci0JCQkJIFNORFJWX1BDTV9GTVRCSVRfVTggfCBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFKSwKLQkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKLQkucmF0ZV9taW4gPQkJNTUxMiwKLQkucmF0ZV9tYXggPQkJNDgwMDAsCi0JLmNoYW5uZWxzX21pbiA9CQkxLAotCS5jaGFubmVsc19tYXggPQkJMiwKLQkuYnVmZmVyX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZF9ieXRlc19taW4gPQk2NCwKLQkucGVyaW9kX2J5dGVzX21heCA9CSgxMjgqMTAyNCksCi0JLnBlcmlvZHNfbWluID0JCTEsCi0JLnBlcmlvZHNfbWF4ID0JCTEwMjQsCi0JLmZpZm9fc2l6ZSA9CQkwLAotfTsKLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wbGF5YmFja19vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9vcGVuKGNoaXAsIE9QVGk5M1hfTU9ERV9QTEFZKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0Jc25kX3BjbV9zZXRfc3luYyhzdWJzdHJlYW0pOwotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKLQlydW50aW1lLT5odyA9IHNuZF9vcHRpOTN4X3BsYXliYWNrOwotCXNuZF9wY21fbGltaXRfaXNhX2RtYV9zaXplKGNoaXAtPmRtYTEsICZydW50aW1lLT5ody5idWZmZXJfYnl0ZXNfbWF4KTsKLQlzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdChydW50aW1lLCAwLCBTTkRSVl9QQ01fSFdfUEFSQU1fUkFURSwgJmh3X2NvbnN0cmFpbnRzX3JhdGVzKTsKLQlyZXR1cm4gZXJyb3I7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7Ci0Jc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKLQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9vcGVuKGNoaXAsIE9QVGk5M1hfTU9ERV9DQVBUVVJFKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0JcnVudGltZS0+aHcgPSBzbmRfb3B0aTkzeF9jYXB0dXJlOwotCXNuZF9wY21fc2V0X3N5bmMoc3Vic3RyZWFtKTsKLQljaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKLQlzbmRfcGNtX2xpbWl0X2lzYV9kbWFfc2l6ZShjaGlwLT5kbWEyLCAmcnVudGltZS0+aHcuYnVmZmVyX2J5dGVzX21heCk7Ci0Jc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QocnVudGltZSwgMCwgU05EUlZfUENNX0hXX1BBUkFNX1JBVEUsICZod19jb25zdHJhaW50c19yYXRlcyk7Ci0JcmV0dXJuIGVycm9yOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3BsYXliYWNrX2Nsb3NlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQotCWNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSA9IE5VTEw7Ci0Jc25kX29wdGk5M3hfY2xvc2UoY2hpcCwgT1BUaTkzWF9NT0RFX1BMQVkpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2NhcHR1cmVfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwotCi0JY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0gPSBOVUxMOwotCXNuZF9vcHRpOTN4X2Nsb3NlKGNoaXAsIE9QVGk5M1hfTU9ERV9DQVBUVVJFKTsKLQlyZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgdm9pZCBzbmRfb3B0aTkzeF9pbml0KHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBpOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlzbmRfb3B0aTkzeF9tY2VfdXAoY2hpcCk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgMzI7IGkrKykKLQkJc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIGksIHNuZF9vcHRpOTN4X2RlZmF1bHRfaW1hZ2VbaV0pOwotCi0Jc25kX29wdGk5M3hfbWNlX2Rvd24oY2hpcCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3Byb2JlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCXVuc2lnbmVkIGNoYXIgdmFsOwotCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwgPSBzbmRfb3B0aTkzeF9pbihjaGlwLCBPUFRpOTNYX0lEKSAmIDB4MGY7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCi0JcmV0dXJuICh2YWwgPT0gMHgwYSkgPyAwIDogLUVOT0RFVjsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9mcmVlKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlyZWxlYXNlX2FuZF9mcmVlX3Jlc291cmNlKGNoaXAtPnJlc19wb3J0KTsKLQlpZiAoY2hpcC0+ZG1hMSA+PSAwKSB7Ci0JCWRpc2FibGVfZG1hKGNoaXAtPmRtYTEpOwotCQlmcmVlX2RtYShjaGlwLT5kbWExKTsKLQl9Ci0JaWYgKGNoaXAtPmRtYTIgPj0gMCkgewotCQlkaXNhYmxlX2RtYShjaGlwLT5kbWEyKTsKLQkJZnJlZV9kbWEoY2hpcC0+ZG1hMik7Ci0JfQotCWlmIChjaGlwLT5pcnEgPj0gMCkgewotCSAgZnJlZV9pcnEoY2hpcC0+aXJxLCBjaGlwKTsKLQl9Ci0Ja2ZyZWUoY2hpcCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfZGV2X2ZyZWUoc3RydWN0IHNuZF9kZXZpY2UgKmRldmljZSkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBkZXZpY2UtPmRldmljZV9kYXRhOwotCXJldHVybiBzbmRfb3B0aTkzeF9mcmVlKGNoaXApOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqc25kX29wdGk5M3hfY2hpcF9pZChzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjKQotewotCXN3aXRjaCAoY29kZWMtPmhhcmR3YXJlKSB7Ci0JY2FzZSBPUFRpOVhYX0hXXzgyQzkzMDogcmV0dXJuICI4MkM5MzAiOwotCWNhc2UgT1BUaTlYWF9IV184MkM5MzE6IHJldHVybiAiODJDOTMxIjsKLQljYXNlIE9QVGk5WFhfSFdfODJDOTMzOiByZXR1cm4gIjgyQzkzMyI7Ci0JZGVmYXVsdDoJCXJldHVybiAiPz8/IjsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwLAotCQkJICAgICAgaW50IGRtYTEsIGludCBkbWEyLAotCQkJICAgICAgc3RydWN0IHNuZF9vcHRpOTN4ICoqcmNvZGVjKQotewotCXN0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgb3BzID0gewotCQkuZGV2X2ZyZWUgPQlzbmRfb3B0aTkzeF9kZXZfZnJlZSwKLQl9OwotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjOwotCi0JKnJjb2RlYyA9IE5VTEw7Ci0JY29kZWMgPSBremFsbG9jKHNpemVvZigqY29kZWMpLCBHRlBfS0VSTkVMKTsKLQlpZiAoY29kZWMgPT0gTlVMTCkKLQkJcmV0dXJuIC1FTk9NRU07Ci0JY29kZWMtPmlycSA9IC0xOwotCWNvZGVjLT5kbWExID0gLTE7Ci0JY29kZWMtPmRtYTIgPSAtMTsKLQotCWlmICgoY29kZWMtPnJlc19wb3J0ID0gcmVxdWVzdF9yZWdpb24oY2hpcC0+d3NzX2Jhc2UgKyA0LCA0LCAiT1BUSTkzeCBDT0RFQyIpKSA9PSBOVUxMKSB7Ci0JCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgcG9ydCAweCVseFxuIiwgY2hpcC0+d3NzX2Jhc2UgKyA0KTsKLQkJc25kX29wdGk5M3hfZnJlZShjb2RlYyk7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCWlmIChyZXF1ZXN0X2RtYShkbWExLCAiT1BUSTkzeCAtIDEiKSkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJvcHRpOXh4OiBjYW4ndCBncmFiIERNQTEgJWRcbiIsIGRtYTEpOwotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0JY29kZWMtPmRtYTEgPSBjaGlwLT5kbWExOwotCWlmIChyZXF1ZXN0X2RtYShkbWEyLCAiT1BUSTkzeCAtIDIiKSkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJvcHRpOXh4OiBjYW4ndCBncmFiIERNQTIgJWRcbiIsIGRtYTIpOwotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIC1FQlVTWTsKLQl9Ci0JY29kZWMtPmRtYTIgPSBjaGlwLT5kbWEyOwotCi0JaWYgKHJlcXVlc3RfaXJxKGNoaXAtPmlycSwgc25kX29wdGk5M3hfaW50ZXJydXB0LCBJUlFGX0RJU0FCTEVELCBERVZfTkFNRSIgLSBXU1MiLCBjb2RlYykpIHsKLQkJc25kX3ByaW50ayhLRVJOX0VSUiAib3B0aTl4eDogY2FuJ3QgZ3JhYiBJUlEgJWRcbiIsIGNoaXAtPmlycSk7Ci0JCXNuZF9vcHRpOTN4X2ZyZWUoY29kZWMpOwotCQlyZXR1cm4gLUVCVVNZOwotCX0KLQotCWNvZGVjLT5jYXJkID0gY2FyZDsKLQljb2RlYy0+cG9ydCA9IGNoaXAtPndzc19iYXNlICsgNDsKLQljb2RlYy0+aXJxID0gY2hpcC0+aXJxOwotCi0Jc3Bpbl9sb2NrX2luaXQoJmNvZGVjLT5sb2NrKTsKLQljb2RlYy0+aGFyZHdhcmUgPSBjaGlwLT5oYXJkd2FyZTsKLQljb2RlYy0+Y2hpcCA9IGNoaXA7Ci0KLQlpZiAoKGVycm9yID0gc25kX29wdGk5M3hfcHJvYmUoY29kZWMpKSkgewotCQlzbmRfb3B0aTkzeF9mcmVlKGNvZGVjKTsKLQkJcmV0dXJuIGVycm9yOwotCX0KLQotCXNuZF9vcHRpOTN4X2luaXQoY29kZWMpOwotCi0JLyogUmVnaXN0ZXIgZGV2aWNlICovCi0JaWYgKChlcnJvciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY29kZWMsICZvcHMpKSA8IDApIHsKLQkJc25kX29wdGk5M3hfZnJlZShjb2RlYyk7Ci0JCXJldHVybiBlcnJvcjsKLQl9Ci0KLQkqcmNvZGVjID0gY29kZWM7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX29wdGk5M3hfcGxheWJhY2tfb3BzID0gewotCS5vcGVuID0JCXNuZF9vcHRpOTN4X3BsYXliYWNrX29wZW4sCi0JLmNsb3NlID0Jc25kX29wdGk5M3hfcGxheWJhY2tfY2xvc2UsCi0JLmlvY3RsID0Jc25kX3BjbV9saWJfaW9jdGwsCi0JLmh3X3BhcmFtcyA9CXNuZF9vcHRpOTN4X2h3X3BhcmFtcywKLQkuaHdfZnJlZSA9CXNuZF9vcHRpOTN4X2h3X2ZyZWUsCi0JLnByZXBhcmUgPQlzbmRfb3B0aTkzeF9wbGF5YmFja19wcmVwYXJlLAotCS50cmlnZ2VyID0Jc25kX29wdGk5M3hfcGxheWJhY2tfdHJpZ2dlciwKLQkucG9pbnRlciA9CXNuZF9vcHRpOTN4X3BsYXliYWNrX3BvaW50ZXIsCi19OwotCi1zdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIHNuZF9vcHRpOTN4X2NhcHR1cmVfb3BzID0gewotCS5vcGVuID0JCXNuZF9vcHRpOTN4X2NhcHR1cmVfb3BlbiwKLQkuY2xvc2UgPQlzbmRfb3B0aTkzeF9jYXB0dXJlX2Nsb3NlLAotCS5pb2N0bCA9CXNuZF9wY21fbGliX2lvY3RsLAotCS5od19wYXJhbXMgPQlzbmRfb3B0aTkzeF9od19wYXJhbXMsCi0JLmh3X2ZyZWUgPQlzbmRfb3B0aTkzeF9od19mcmVlLAotCS5wcmVwYXJlID0Jc25kX29wdGk5M3hfY2FwdHVyZV9wcmVwYXJlLAotCS50cmlnZ2VyID0Jc25kX29wdGk5M3hfY2FwdHVyZV90cmlnZ2VyLAotCS5wb2ludGVyID0Jc25kX29wdGk5M3hfY2FwdHVyZV9wb2ludGVyLAotfTsKLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wY20oc3RydWN0IHNuZF9vcHRpOTN4ICpjb2RlYywgaW50IGRldmljZSwgc3RydWN0IHNuZF9wY20gKipycGNtKQotewotCWludCBlcnJvcjsKLQlzdHJ1Y3Qgc25kX3BjbSAqcGNtOwotCi0JaWYgKChlcnJvciA9IHNuZF9wY21fbmV3KGNvZGVjLT5jYXJkLCAiT1BUaSA4MkM5M1giLCBkZXZpY2UsIDEsIDEsICZwY20pKSA8IDApCi0JCXJldHVybiBlcnJvcjsKLQotCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0ssICZzbmRfb3B0aTkzeF9wbGF5YmFja19vcHMpOwotCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRSwgJnNuZF9vcHRpOTN4X2NhcHR1cmVfb3BzKTsKLQotCXBjbS0+cHJpdmF0ZV9kYXRhID0gY29kZWM7Ci0JcGNtLT5pbmZvX2ZsYWdzID0gU05EUlZfUENNX0lORk9fSk9JTlRfRFVQTEVYOwotCi0Jc3RyY3B5KHBjbS0+bmFtZSwgc25kX29wdGk5M3hfY2hpcF9pZChjb2RlYykpOwotCi0Jc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKLQkJCQkJICAgICAgc25kX2RtYV9pc2FfZGF0YSgpLAotCQkJCQkgICAgICA2NCoxMDI0LCBjb2RlYy0+ZG1hMSA+IDMgfHwgY29kZWMtPmRtYTIgPiAzID8gMTI4KjEwMjQgOiA2NCoxMDI0KTsKLQotCWNvZGVjLT5wY20gPSBwY207Ci0JaWYgKHJwY20pCi0JCSpycGNtID0gcGNtOwotCXJldHVybiAwOwotfQotCi0vKgotICogIE1JWEVSIHBhcnQKLSAqLwotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2luZm9fbXV4KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCXN0YXRpYyBjaGFyICp0ZXh0c1s0XSA9IHsKLQkJIkxpbmUxIiwgIkF1eCIsICJNaWMiLCAiTWl4IgotCX07Ci0KLQl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfRU5VTUVSQVRFRDsKLQl1aW5mby0+Y291bnQgPSAyOwotCXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1zID0gNDsKLQlpZiAodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA+IDMpCi0JCXVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0gPSAzOwotCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0c1t1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfZ2V0X211eChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0gKGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX0xFRlRdICYgT1BUaTkzWF9NSVhPVVRfTUlYRVIpID4+IDY7Ci0JdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsxXSA9IChjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9SSUdIVF0gJiBPUFRpOTNYX01JWE9VVF9NSVhFUikgPj4gNjsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfcHV0X211eChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9vcHRpOTN4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JdW5zaWduZWQgc2hvcnQgbGVmdCwgcmlnaHQ7Ci0JaW50IGNoYW5nZTsKLQkKLQlpZiAodWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA+IDMgfHwKLQkgICAgdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsxXSA+IDMpCi0JCXJldHVybiAtRUlOVkFMOwotCWxlZnQgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdIDw8IDY7Ci0JcmlnaHQgPSB1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzFdIDw8IDY7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlsZWZ0ID0gKGNoaXAtPmltYWdlW09QVGk5M1hfTUlYT1VUX0xFRlRdICYgfk9QVGk5M1hfTUlYT1VUX01JWEVSKSB8IGxlZnQ7Ci0JcmlnaHQgPSAoY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfUklHSFRdICYgfk9QVGk5M1hfTUlYT1VUX01JWEVSKSB8IHJpZ2h0OwotCWNoYW5nZSA9IGxlZnQgIT0gY2hpcC0+aW1hZ2VbT1BUaTkzWF9NSVhPVVRfTEVGVF0gfHwKLQkgICAgICAgICByaWdodCAhPSBjaGlwLT5pbWFnZVtPUFRpOTNYX01JWE9VVF9SSUdIVF07Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIE9QVGk5M1hfTUlYT1VUX0xFRlQsIGxlZnQpOwotCXNuZF9vcHRpOTN4X291dF9pbWFnZShjaGlwLCBPUFRpOTNYX01JWE9VVF9SSUdIVCwgcmlnaHQpOwotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi0jaWYgMAotCi0jZGVmaW5lIE9QVGk5M1hfU0lOR0xFKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX29wdGk5M3hfaW5mb19zaW5nbGUsIFwKLSAgLmdldCA9IHNuZF9vcHRpOTN4X2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfb3B0aTkzeF9wdXRfc2luZ2xlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDgpIHwgKG1hc2sgPDwgMTYpIHwgKGludmVydCA8PCAyNCkgfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2luZm9fc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQotewotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4ZmY7Ci0KLQl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKLQl1aW5mby0+Y291bnQgPSAxOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9nZXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChjaGlwLT5pbWFnZVtyZWddID4+IHNoaWZ0KSAmIG1hc2s7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCWlmIChpbnZlcnQpCi0JCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gbWFzayAtIHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X3B1dF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgY2hhbmdlOwotCXVuc2lnbmVkIHNob3J0IHZhbDsKLQkKLQl2YWwgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrKTsKLQlpZiAoaW52ZXJ0KQotCQl2YWwgPSBtYXNrIC0gdmFsOwotCXZhbCA8PD0gc2hpZnQ7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwgPSAoY2hpcC0+aW1hZ2VbcmVnXSAmIH4obWFzayA8PCBzaGlmdCkpIHwgdmFsOwotCWNoYW5nZSA9IHZhbCAhPSBjaGlwLT5pbWFnZVtyZWddOwotCXNuZF9vcHRpOTN4X291dChjaGlwLCByZWcsIHZhbCk7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLSNlbmRpZiAvKiBzaW5nbGUgKi8KLQotI2RlZmluZSBPUFRpOTNYX0RPVUJMRSh4bmFtZSwgeGluZGV4LCBsZWZ0X3JlZywgcmlnaHRfcmVnLCBzaGlmdF9sZWZ0LCBzaGlmdF9yaWdodCwgbWFzaywgaW52ZXJ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfb3B0aTkzeF9pbmZvX2RvdWJsZSwgXAotICAuZ2V0ID0gc25kX29wdGk5M3hfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9vcHRpOTN4X3B1dF9kb3VibGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAoc2hpZnRfbGVmdCA8PCAxNikgfCAoc2hpZnRfcmlnaHQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQotCi0jZGVmaW5lIE9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoeGN0bCkgXAotCWRvIHsgeGN0bC5wcml2YXRlX3ZhbHVlIF49IDIyOyB9IHdoaWxlICgwKQotI2RlZmluZSBPUFRpOTNYX0RPVUJMRV9DSEFOR0VfUkVHUyh4Y3RsLCBsZWZ0X3JlZywgcmlnaHRfcmVnKSBcCi0JZG8geyB4Y3RsLnByaXZhdGVfdmFsdWUgJj0gfjB4MDAwMGZmZmY7IFwKLQkgICAgIHhjdGwucHJpdmF0ZV92YWx1ZSB8PSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCk7IH0gd2hpbGUgKDApCi0KLXN0YXRpYyBpbnQgc25kX29wdGk5M3hfaW5mb19kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQotCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOwotCXVpbmZvLT5jb3VudCA9IDI7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9vcHRpOTN4X2dldF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQl1bnNpZ25lZCBsb25nIGZsYWdzOwotCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgc2hpZnRfbGVmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCBzaGlmdF9yaWdodCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCQotCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAoY2hpcC0+aW1hZ2VbbGVmdF9yZWddID4+IHNoaWZ0X2xlZnQpICYgbWFzazsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IChjaGlwLT5pbWFnZVtyaWdodF9yZWddID4+IHNoaWZ0X3JpZ2h0KSAmIG1hc2s7Ci0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+bG9jaywgZmxhZ3MpOwotCWlmIChpbnZlcnQpIHsKLQkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBtYXNrIC0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07Ci0JCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gbWFzayAtIHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdOwotCX0KLQlyZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBzbmRfb3B0aTkzeF9wdXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgbG9uZyBmbGFnczsKLQlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IHNoaWZ0X2xlZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgc2hpZnRfcmlnaHQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgY2hhbmdlOwotCXVuc2lnbmVkIHNob3J0IHZhbDEsIHZhbDI7Ci0JCi0JdmFsMSA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKLQl2YWwyID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiBtYXNrOwotCWlmIChpbnZlcnQpIHsKLQkJdmFsMSA9IG1hc2sgLSB2YWwxOwotCQl2YWwyID0gbWFzayAtIHZhbDI7Ci0JfQotCXZhbDEgPDw9IHNoaWZ0X2xlZnQ7Ci0JdmFsMiA8PD0gc2hpZnRfcmlnaHQ7Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmxvY2ssIGZsYWdzKTsKLQl2YWwxID0gKGNoaXAtPmltYWdlW2xlZnRfcmVnXSAmIH4obWFzayA8PCBzaGlmdF9sZWZ0KSkgfCB2YWwxOwotCXZhbDIgPSAoY2hpcC0+aW1hZ2VbcmlnaHRfcmVnXSAmIH4obWFzayA8PCBzaGlmdF9yaWdodCkpIHwgdmFsMjsKLQljaGFuZ2UgPSB2YWwxICE9IGNoaXAtPmltYWdlW2xlZnRfcmVnXSB8fCB2YWwyICE9IGNoaXAtPmltYWdlW3JpZ2h0X3JlZ107Ci0Jc25kX29wdGk5M3hfb3V0X2ltYWdlKGNoaXAsIGxlZnRfcmVnLCB2YWwxKTsKLQlzbmRfb3B0aTkzeF9vdXRfaW1hZ2UoY2hpcCwgcmlnaHRfcmVnLCB2YWwyKTsKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5sb2NrLCBmbGFncyk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9vcHRpOTN4X2NvbnRyb2xzW10gX19kZXZpbml0ZGF0YSA9IHsKLU9QVGk5M1hfRE9VQkxFKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9PVVRfTEVGVCwgT1BUaTkzWF9PVVRfUklHSFQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX09VVF9MRUZULCBPUFRpOTNYX09VVF9SSUdIVCwgMSwgMSwgMzEsIDEpLCAKLU9QVGk5M1hfRE9VQkxFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgMCwgT1BUaTkzWF9EQUNfTEVGVCwgT1BUaTkzWF9EQUNfUklHSFQsIDcsIDcsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIlBDTSBQbGF5YmFjayBWb2x1bWUiLCAwLCBPUFRpOTNYX0RBQ19MRUZULCBPUFRpOTNYX0RBQ19SSUdIVCwgMCwgMCwgMzEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkZNIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5MzFfRk1fTEVGVF9JTlBVVCwgT1BUaTkzMV9GTV9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiRk0gUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzMV9GTV9MRUZUX0lOUFVULCBPUFRpOTMxX0ZNX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAwLCBPUFRpOTNYX0xJTkVfTEVGVF9JTlBVVCwgT1BUaTkzWF9MSU5FX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFZvbHVtZSIsIDAsIE9QVGk5M1hfTElORV9MRUZUX0lOUFVULCBPUFRpOTNYX0xJTkVfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5M1hfTUlDX0xFRlRfSU5QVVQsIE9QVGk5M1hfTUlDX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzWF9NSUNfTEVGVF9JTlBVVCwgT1BUaTkzWF9NSUNfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiTWljIEJvb3N0IiwgMCwgT1BUaTkzWF9NSVhPVVRfTEVGVCwgT1BUaTkzWF9NSVhPVVRfUklHSFQsIDUsIDUsIDEsIDEpLAotT1BUaTkzWF9ET1VCTEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5M1hfQ0RfTEVGVF9JTlBVVCwgT1BUaTkzWF9DRF9SSUdIVF9JTlBVVCwgNywgNywgMSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiQ0QgUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzWF9DRF9MRUZUX0lOUFVULCBPUFRpOTNYX0NEX1JJR0hUX0lOUFVULCAxLCAxLCAxNSwgMSksCi1PUFRpOTNYX0RPVUJMRSgiQXV4IFBsYXliYWNrIFN3aXRjaCIsIDAsIE9QVGk5MzFfQVVYX0xFRlRfSU5QVVQsIE9QVGk5MzFfQVVYX1JJR0hUX0lOUFVULCA3LCA3LCAxLCAxKSwKLU9QVGk5M1hfRE9VQkxFKCJBdXggUGxheWJhY2sgVm9sdW1lIiwgMCwgT1BUaTkzMV9BVVhfTEVGVF9JTlBVVCwgT1BUaTkzMV9BVVhfUklHSFRfSU5QVVQsIDEsIDEsIDE1LCAxKSwgCi1PUFRpOTNYX0RPVUJMRSgiQ2FwdHVyZSBWb2x1bWUiLCAwLCBPUFRpOTNYX01JWE9VVF9MRUZULCBPUFRpOTNYX01JWE9VVF9SSUdIVCwgMCwgMCwgMTUsIDApLAotewotCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAotCS5uYW1lID0gIkNhcHR1cmUgU291cmNlIiwKLQkuaW5mbyA9IHNuZF9vcHRpOTN4X2luZm9fbXV4LAotCS5nZXQgPSBzbmRfb3B0aTkzeF9nZXRfbXV4LAotCS5wdXQgPSBzbmRfb3B0aTkzeF9wdXRfbXV4LAotfQotfTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLXN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9vcHRpOTN4X21peGVyKHN0cnVjdCBzbmRfb3B0aTkzeCAqY2hpcCkKLXsKLQlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7Ci0Jc3RydWN0IHNuZF9rY29udHJvbF9uZXcga25ldzsKLQlpbnQgZXJyOwotCXVuc2lnbmVkIGludCBpZHg7Ci0KLQlzbmRfYXNzZXJ0KGNoaXAgIT0gTlVMTCAmJiBjaGlwLT5jYXJkICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKLQotCWNhcmQgPSBjaGlwLT5jYXJkOwotCi0Jc3RyY3B5KGNhcmQtPm1peGVybmFtZSwgc25kX29wdGk5M3hfY2hpcF9pZChjaGlwKSk7Ci0KLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX29wdGk5M3hfY29udHJvbHMpOyBpZHgrKykgewotCQlrbmV3ID0gc25kX29wdGk5M3hfY29udHJvbHNbaWR4XTsKLQkJaWYgKGNoaXAtPmhhcmR3YXJlID09IE9QVGk5WFhfSFdfODJDOTMwKSB7Ci0JCQlpZiAoc3Ryc3RyKGtuZXcubmFtZSwgIkZNIikpCS8qIHNraXAgRk0gY29udHJvbHMgKi8KLQkJCQljb250aW51ZTsKLQkJCWVsc2UgaWYgKHN0cmNtcChrbmV3Lm5hbWUsICJNaWMgUGxheWJhY2sgVm9sdW1lIikpCi0JCQkJT1BUaTkzWF9ET1VCTEVfSU5WRVJUX0lOVkVSVChrbmV3KTsKLQkJCWVsc2UgaWYgKHN0cnN0cihrbmV3Lm5hbWUsICJBdXgiKSkKLQkJCQlPUFRpOTNYX0RPVUJMRV9DSEFOR0VfUkVHUyhrbmV3LCBPUFRpOTMwX0FVWF9MRUZUX0lOUFVULCBPUFRpOTMwX0FVWF9SSUdIVF9JTlBVVCk7Ci0JCQllbHNlIGlmIChzdHJjbXAoa25ldy5uYW1lLCAiUENNIFBsYXliYWNrIFZvbHVtZSIpKQotCQkJCU9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoa25ldyk7Ci0JCQllbHNlIGlmIChzdHJjbXAoa25ldy5uYW1lLCAiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIpKQotCQkJCU9QVGk5M1hfRE9VQkxFX0lOVkVSVF9JTlZFUlQoa25ldyk7Ci0JCX0KLQkJaWYgKChlcnIgPSBzbmRfY3RsX2FkZChjYXJkLCBzbmRfY3RsX25ldzEoJnNuZF9vcHRpOTN4X2NvbnRyb2xzW2lkeF0sIGNoaXApKSkgPCAwKQotCQkJcmV0dXJuIGVycjsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KICNlbmRpZiAvKiBPUFRpOTNYICovCiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9jYXJkX29wdGk5eHhfZGV0ZWN0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKQEAgLTE3MzksOCArNjg1LDE2IEBACiB7CiAJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOwogICAgICAgICAKLQlpZiAoY2hpcCkKKwlpZiAoY2hpcCkgeworI2lmZGVmIE9QVGk5M1gKKwkJc3RydWN0IHNuZF9jczQyMzEgKmNvZGVjID0gY2hpcC0+Y29kZWM7CisJCWlmIChjb2RlYy0+aXJxID4gMCkgeworCQkJZGlzYWJsZV9pcnEoY29kZWMtPmlycSk7CisJCQlmcmVlX2lycShjb2RlYy0+aXJxLCBjb2RlYyk7CisJCX0KKyNlbmRpZgogCQlyZWxlYXNlX2FuZF9mcmVlX3Jlc291cmNlKGNoaXAtPnJlc19tY19iYXNlKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9vcHRpOXh4X3Byb2JlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCkKQEAgLTE3NDgsMTEgKzcwMiwxMSBAQAogCXN0YXRpYyBsb25nIHBvc3NpYmxlX3BvcnRzW10gPSB7MHg1MzAsIDB4ZTgwLCAweGY0MCwgMHg2MDQsIC0xfTsKIAlpbnQgZXJyb3I7CiAJc3RydWN0IHNuZF9vcHRpOXh4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOwotI2lmIGRlZmluZWQoT1BUaTkzWCkKLQlzdHJ1Y3Qgc25kX29wdGk5M3ggKmNvZGVjOwotI2VsaWYgZGVmaW5lZChDUzQyMzEpCisjaWYgZGVmaW5lZChDUzQyMzEpIHx8IGRlZmluZWQoT1BUaTkzWCkKIAlzdHJ1Y3Qgc25kX2NzNDIzMSAqY29kZWM7CisjaWZkZWYgQ1M0MjMxCiAJc3RydWN0IHNuZF90aW1lciAqdGltZXI7CisjZW5kaWYKICNlbHNlCiAJc3RydWN0IHNuZF9hZDE4NDggKmNvZGVjOwogI2VuZGlmCkBAIC0xNzg0LDI2ICs3MzgsMzQgQEAKIAlpZiAoKGVycm9yID0gc25kX29wdGk5eHhfY29uZmlndXJlKGNoaXApKSkKIAkJcmV0dXJuIGVycm9yOwogCi0jaWYgZGVmaW5lZChPUFRpOTNYKQotCWlmICgoZXJyb3IgPSBzbmRfb3B0aTkzeF9jcmVhdGUoY2FyZCwgY2hpcCwgY2hpcC0+ZG1hMSwgY2hpcC0+ZG1hMiwgJmNvZGVjKSkpCi0JCXJldHVybiBlcnJvcjsKLQlpZiAoKGVycm9yID0gc25kX29wdGk5M3hfcGNtKGNvZGVjLCAwLCAmcGNtKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0JaWYgKChlcnJvciA9IHNuZF9vcHRpOTN4X21peGVyKGNvZGVjKSkgPCAwKQotCQlyZXR1cm4gZXJyb3I7Ci0jZWxpZiBkZWZpbmVkKENTNDIzMSkKKyNpZiBkZWZpbmVkKENTNDIzMSkgfHwgZGVmaW5lZChPUFRpOTNYKQogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX2NyZWF0ZShjYXJkLCBjaGlwLT53c3NfYmFzZSArIDQsIC0xLAogCQkJCSAgICAgICBjaGlwLT5pcnEsIGNoaXAtPmRtYTEsIGNoaXAtPmRtYTIsCi0JCQkJICAgICAgIENTNDIzMV9IV19ERVRFQ1QsCi0JCQkJICAgICAgIDAsCisjaWZkZWYgQ1M0MjMxCisJCQkJICAgICAgIENTNDIzMV9IV19ERVRFQ1QsIDAsCisjZWxzZSAvKiBPUFRpOTN4ICovCisJCQkJICAgICAgIENTNDIzMV9IV19PUFRJOTNYLCBDUzQyMzFfSFdTSEFSRV9JUlEsCisjZW5kaWYKIAkJCQkgICAgICAgJmNvZGVjKSkgPCAwKQogCQlyZXR1cm4gZXJyb3I7CisjaWZkZWYgT1BUaTkzWAorCWNoaXAtPmNvZGVjID0gY29kZWM7CisjZW5kaWYKIAlpZiAoKGVycm9yID0gc25kX2NzNDIzMV9wY20oY29kZWMsIDAsICZwY20pKSA8IDApCiAJCXJldHVybiBlcnJvcjsKIAlpZiAoKGVycm9yID0gc25kX2NzNDIzMV9taXhlcihjb2RlYykpIDwgMCkKIAkJcmV0dXJuIGVycm9yOworI2lmZGVmIENTNDIzMQogCWlmICgoZXJyb3IgPSBzbmRfY3M0MjMxX3RpbWVyKGNvZGVjLCAwLCAmdGltZXIpKSA8IDApCiAJCXJldHVybiBlcnJvcjsKKyNlbHNlIC8qIE9QVEk5M1ggKi8KKwllcnJvciA9IHJlcXVlc3RfaXJxKGNoaXAtPmlycSwgc25kX29wdGk5M3hfaW50ZXJydXB0LAorCQkJICAgIElSUUZfRElTQUJMRUQsIERFVl9OQU1FIiAtIFdTUyIsIGNvZGVjKTsKKwlpZiAoZXJyb3IgPCAwKSB7CisJCXNuZF9wcmludGsoS0VSTl9FUlIgIm9wdGk5eHg6IGNhbid0IGdyYWIgSVJRICVkXG4iLCBjaGlwLT5pcnEpOworCQlyZXR1cm4gZXJyb3I7CisJfQorI2VuZGlmCiAjZWxzZQogCWlmICgoZXJyb3IgPSBzbmRfYWQxODQ4X2NyZWF0ZShjYXJkLCBjaGlwLT53c3NfYmFzZSArIDQsCiAJCQkJICAgICAgIGNoaXAtPmlycSwgY2hpcC0+ZG1hMSwKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9NYWtlZmlsZSBiL3NvdW5kL2lzYS9zYi9NYWtlZmlsZQppbmRleCBjOWQxYzk4Li4xMDk4YTU2IDEwMDY0NAotLS0gYS9zb3VuZC9pc2Evc2IvTWFrZWZpbGUKKysrIGIvc291bmQvaXNhL3NiL01ha2VmaWxlCkBAIC0zNCw1ICszNCwzIEBACiAgIG9iai0kKENPTkZJR19TTkRfU0JBV0UpICs9IHNuZC1zYjE2LWNzcC5vCiBlbmRpZgogb2JqLSQoY2FsbCBzZXF1ZW5jZXIsJChDT05GSUdfU05EX1NCQVdFKSkgKz0gc25kLWVtdTgwMDAtc3ludGgubwotCi1vYmotbSA6PSAkKHNvcnQgJChvYmotbSkpCmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evc2Ivc2IxNl9jc3AuYyBiL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCmluZGV4IGYzZmQ3YjQuLjM1ZjNkN2IgMTAwNjQ0Ci0tLSBhL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCisrKyBiL3NvdW5kL2lzYS9zYi9zYjE2X2NzcC5jCkBAIC0zNSwxMyArMzUsMTEgQEAKIE1PRFVMRV9BVVRIT1IoIlVyb3MgQml6amFrIDx1cm9zQGtzcy1sb2thLnNpPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIGRyaXZlciBmb3IgU0IxNiBDcmVhdGl2ZSBTaWduYWwgUHJvY2Vzc29yIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0jaWZuZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCiBNT0RVTEVfRklSTVdBUkUoInNiMTYvbXVsYXdfbWFpbi5jc3AiKTsKIE1PRFVMRV9GSVJNV0FSRSgic2IxNi9hbGF3X21haW4uY3NwIik7CiBNT0RVTEVfRklSTVdBUkUoInNiMTYvaW1hX2FkcGNtX2luaXQuY3NwIik7CiBNT0RVTEVfRklSTVdBUkUoInNiMTYvaW1hX2FkcGNtX3BsYXliYWNrLmNzcCIpOwogTU9EVUxFX0ZJUk1XQVJFKCJzYjE2L2ltYV9hZHBjbV9jYXB0dXJlLmNzcCIpOwotI2VuZGlmCiAKICNpZmRlZiBTTkRSVl9MSVRUTEVfRU5ESUFOCiAjZGVmaW5lIENTUF9IRFJfVkFMVUUoYSxiLGMsZCkJKChhKSB8ICgoYik8PDgpIHwgKChjKTw8MTYpIHwgKChkKTw8MjQpKQpAQCAtMTY4LDE3ICsxNjYsMTMgQEAKICAqLwogc3RhdGljIHZvaWQgc25kX3NiX2NzcF9mcmVlKHN0cnVjdCBzbmRfaHdkZXAgKmh3ZGVwKQogewotI2lmbmRlZiBDT05GSUdfU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAogCWludCBpOwotI2VuZGlmCiAJc3RydWN0IHNuZF9zYl9jc3AgKnAgPSBod2RlcC0+cHJpdmF0ZV9kYXRhOwogCWlmIChwKSB7CiAJCWlmIChwLT5ydW5uaW5nICYgU05EUlZfU0JfQ1NQX1NUX1JVTk5JTkcpCiAJCQlzbmRfc2JfY3NwX3N0b3AocCk7Ci0jaWZuZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCiAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHAtPmNzcF9wcm9ncmFtcyk7ICsraSkKIAkJCXJlbGVhc2VfZmlybXdhcmUocC0+Y3NwX3Byb2dyYW1zW2ldKTsKLSNlbmRpZgogCQlrZnJlZShwKTsKIAl9CiB9CkBAIC03MDEsMTggKzY5NSw2IEBACiAJcmV0dXJuIGVycjsKIH0KIAotI2lmZGVmIENPTkZJR19TTkRfU0IxNl9DU1BfRklSTVdBUkVfSU5fS0VSTkVMCi0jaW5jbHVkZSAic2IxNl9jc3BfY29kZWNzLmgiCi0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlybXdhcmUgc25kX3NiX2NzcF9zdGF0aWNfcHJvZ3JhbXNbXSA9IHsKLQl7IC5kYXRhID0gbXVsYXdfbWFpbiwgLnNpemUgPSBzaXplb2YgbXVsYXdfbWFpbiB9LAotCXsgLmRhdGEgPSBhbGF3X21haW4sIC5zaXplID0gc2l6ZW9mIGFsYXdfbWFpbiB9LAotCXsgLmRhdGEgPSBpbWFfYWRwY21faW5pdCwgLnNpemUgPSBzaXplb2YgaW1hX2FkcGNtX2luaXQgfSwKLQl7IC5kYXRhID0gaW1hX2FkcGNtX3BsYXliYWNrLCAuc2l6ZSA9IHNpemVvZiBpbWFfYWRwY21fcGxheWJhY2sgfSwKLQl7IC5kYXRhID0gaW1hX2FkcGNtX2NhcHR1cmUsIC5zaXplID0gc2l6ZW9mIGltYV9hZHBjbV9jYXB0dXJlIH0sCi19OwotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc25kX3NiX2NzcF9maXJtd2FyZV9sb2FkKHN0cnVjdCBzbmRfc2JfY3NwICpwLCBpbnQgaW5kZXgsIGludCBmbGFncykKIHsKIAlzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgbmFtZXNbXSA9IHsKQEAgLTcyNywxNCArNzA5LDEwIEBACiAJQlVJTERfQlVHX09OKEFSUkFZX1NJWkUobmFtZXMpICE9IENTUF9QUk9HUkFNX0NPVU5UKTsKIAlwcm9ncmFtID0gcC0+Y3NwX3Byb2dyYW1zW2luZGV4XTsKIAlpZiAoIXByb2dyYW0pIHsKLSNpZmRlZiBDT05GSUdfU05EX1NCMTZfQ1NQX0ZJUk1XQVJFX0lOX0tFUk5FTAotCQlwcm9ncmFtID0gJnNuZF9zYl9jc3Bfc3RhdGljX3Byb2dyYW1zW2luZGV4XTsKLSNlbHNlCiAJCWludCBlcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZwcm9ncmFtLCBuYW1lc1tpbmRleF0sCiAJCQkJICAgICAgIHAtPmNoaXAtPmNhcmQtPmRldik7CiAJCWlmIChlcnIgPCAwKQogCQkJcmV0dXJuIGVycjsKLSNlbmRpZgogCQlwLT5jc3BfcHJvZ3JhbXNbaW5kZXhdID0gcHJvZ3JhbTsKIAl9CiAJcmV0dXJuIHNuZF9zYl9jc3BfbG9hZChwLCBwcm9ncmFtLT5kYXRhLCBwcm9ncmFtLT5zaXplLCBmbGFncyk7CmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evc2Ivc2IxNl9jc3BfY29kZWNzLmggYi9zb3VuZC9pc2Evc2Ivc2IxNl9jc3BfY29kZWNzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwZThiMGQuLjAwMDAwMDAKLS0tIGEvc291bmQvaXNhL3NiL3NiMTZfY3NwX2NvZGVjcy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTQ5ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChjKSAxOTk0IENyZWF0aXZlIFRlY2hub2xvZ3kgTHRkLgotICogIE1pY3JvY29kZSBmaWxlcyBmb3IgU0IxNiBBZHZhbmNlZCBTaWduYWwgUHJvY2Vzc29yCi0gKgotICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQotICoKLSAqLwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBtdWxhd19tYWluW10gPSB7Ci0JMHgwMCwgMHgxMCwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGIxLCAweDAwLCAweDQ0LCAweDAwLCAweDYxLCAweDAwLCAweDQ0LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4NjEsIDB4YTgsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDIwLCAweDAxLCAweDA5LCAweDBlLCAweDIwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YTgsIDB4MDEsIDB4YTgsIDB4ODAsIDB4ODgsIDB4MDEsIDB4YTgsIDB4ODAsCi0JMHhhOCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhkMiwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweDg4LCAweDAwLCAweGE4LCAweDgwLCAweGE4LCAweDA0LCAweGIzLCAweDgwLAotCTB4MjAsIDB4MDcsIDB4YjMsIDB4ODAsIDB4ODgsIDB4MDMsIDB4YjEsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwOSwgMHg1YywgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGExLCAweDAwLCAweDcxLCAweDhiLCAweGNkLCAweDAwLCAweDA0LCAweDE5LAotCTB4YTIsIDB4MjAsIDB4NzEsIDB4OGIsIDB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDQwLCAweDAwLCAweDE0LCAweDA4LCAweDQwLCAweDA0LCAweDI0LAotCTB4MDAsIDB4MDAsIDB4MzQsIDB4NDksIDB4MGMsIDB4NDAsIDB4MDAsIDB4NDQsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDMyLCAweDAwLCAweDA5LCAweDVjLCAweDAwLCAweDAwLCAweDBjLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4NDAsIDB4NDAsIDB4MDksIDB4ZWYsCi0JMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHg2MywgMHhhMSwKLQkweDUwLCAweDAzLCAweDMzLCAweDgwLCAweDAwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MDAsIDB4ZDAsIDB4MDQsIDB4NTQsCi0JMHgwNCwgMHhlMCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMywgMHg4MCwgMHhjMCwKLQkweDMwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDdhLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGZmLCAweGMyLCAweDhiLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsIDB4MDgsIDB4MzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDFlLCAweDQyLCAweDhiLCAweDBjLCAweGIyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwgMHgwOCwgMHg1MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweGJlLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsIDB4MDQsIDB4NzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwgMHgwMCwgMHhkMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDU1LCAweDQyLCAweDhiLCAweDAwLCAweDYwLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MjAsIDB4MDEsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHgzMCwgMHg0MiwgMHg4YiwgMHgwOCwgMHg4MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDcxLCAweDhiLAotCTB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHgwMCwgMHhiMiwgMHgwMCwgMHhjNCwKLQkweDBmLCAweGYyLCAweGE4LCAweGE4LCAweDIwLCAweDAwLCAweGIxLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NDEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHhjMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDBkLCAweGYyLCAweGEzLCAweGE4LCAweDRkLCAweGYyLCAweDAwLCAweDM5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgxMCwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDYwLCAweDAwLCAweDQ0LCAweGZmLCAweDIwLCAweGUyLCAweGFiLAotCTB4NjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDAwLCAweGUyLCAweDAwLCAweDg0LAotCTB4MDMsIDB4MDMsIDB4MDQsIDB4NDksIDB4MDgsIDB4YzIsIDB4MDAsIDB4NTQsCi0JMHgwMCwgMHg2MCwgMHgwNCwgMHg2NCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAwLCAweDIwLCAweGUyLCAweDhiLCAweDBjLCAweGYyLCAweDAwLCAweDg0LAotCTB4M2UsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwOCwgMHgwMSwgMHgwMCwgMHg0NCwgMHg2YywgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMwLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAyLCAweGUyLCAweDhiLAotCTB4MDQsIDB4MjEsIDB4MDAsIDB4ODQsIDB4ZmQsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMiwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgxMSwgMHgwMCwgMHg0NCwKLQkweGZlLCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4ZTUsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweGMxLCAweDIwLCAweDA0LCAweDE5LAotCTB4YzMsIDB4MjAsIDB4MDQsIDB4MTksIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjNywgMHgyMCwgMHgwNCwgMHgxOSwgMHg1ZSwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNmLCAweDAwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzYsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjYSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDIwLCAweDAwLCAweDcxLCAweDhiLCAweGNjLCAweDIwLCAweDA0LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgwOSwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBiLCAweDA0LCAweDYxLCAweGE4LCAweGNhLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4NjAsIDB4MDAsIDB4ZDQsIDB4MGQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDBmLCAweDAwLCAweDYxLCAweDBhLCAweDAwLCAweDQwLCAweDA5LCAweDhmLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4ODIsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwgMHgwMiwgMHgwMCwgMHg2MSwgMHgyMiwKLQkweDQzLCAweDI1LCAweDYxLCAweDIyLCAweDQwLCAweDMzLCAweDAwLCAweDgwLAotCTB4MDgsIDB4YTgsIDB4MDAsIDB4NDQsIDB4MjAsIDB4MzEsIDB4NDksIDB4NWMsCi0JMHg5MiwgMHgwMCwgMHgwOSwgMHg0ZSwgMHgwMiwgMHgwMywgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAwLCAweGEzLCAweDAyLCAweGMwLCAweDAwLCAweDcxLCAweGMwLAotCTB4MjAsIDB4MDAsIDB4ZWIsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHg4MCwgMHgwMCwgMHgwNCwgMHg3YSwgMHgwMiwKLQkweGNiLCAweDAwLCAweGE4LCAweDU4LCAweGIwLCAweDA1LCAweGYzLCAweDgwLAotCTB4MjAsIDB4MDQsIDB4YTgsIDB4MTAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MzksCi0JMHhiMCwgMHgwMCwgMHhlMCwgMHg4YiwgMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDYzLCAweGNiLCAweDAwLCAweDAwLCAweDdhLCAweDAyLAotCTB4NDAsIDB4MDAsIDB4MDEsIDB4NWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg0YSwgMHhjYiwgMHgyMCwgMHgwMCwgMHgxMywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweGUwLCAweDIxLCAweDAwLCAweGMwLAotCTB4MDgsIDB4MDAsIDB4MDgsIDB4NDksIDB4MTAsIDB4NDEsIDB4MDksIDB4OGUsCi0JMHhmZiwgMHhmZiwgMHg2MiwgMHg4YiwgMHgwMCwgMHgwNCwgMHg2MSwgMHgyMiwKLQkweDAwLCAweDAzLCAweDAwLCAweDQ1LCAweDIyLCAweDAxLCAweDMzLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4YTMsIDB4MDIsIDB4MDAsIDB4MDAsIDB4N2EsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg4MiwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDA4LCAweDgzLCAweDAwLCAweDg0LCAweDQwLCAweDIxLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDUsIDB4OTMsIDB4MTAsIDB4YzcsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwNywgMHgyMCwgMHg0MCwgMHgwYSwKLQkweDBjLCAweGEzLCAweDAwLCAweDg0LCAweDA4LCAweDAwLCAweDAwLCAweDgyLAotCTB4MGMsIDB4MjQsIDB4NjEsIDB4NTAsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHhjNywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDA0LCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4NDIsIDB4MDEsIDB4MDksIDB4MGUsIDB4MDIsIDB4MjAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwgMHgwYywgMHgyMCwgMHg2MCwgMHgwYSwKLQkweDAwLCAweDczLCAweDAwLCAweDg0LCAweDAwLCAweDA0LCAweGIxLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MzksIDB4MGMsIDB4NjEsIDB4MDQsIDB4ZDQsCi0JMHgwMCwgMHgyNCwgMHg3MSwgMHhjMCwgMHgyMCwgMHgzMywgMHgzMywgMHhjMCwKLQkweGUwLCAweDAxLCAweGEzLCAweDgyLCAweDIyLCAweDAzLCAweDdhLCAweDAyLAotCTB4YzMsIDB4MDEsIDB4YTMsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHhjMiwgMHgwMSwgMHhiMywgMHg1MCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweDcxLCAweDgwLAotCTB4MDAsIDB4ZjMsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MjAsIDB4NjAsIDB4MGEsCi0JMHgwMCwgMHhkMywgMHgwMCwgMHg4NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDM5LCAweDBjLCAweDYxLCAweDA0LCAweGQ0LAotCTB4MDAsIDB4MDAsIDB4YjMsIDB4MTAsIDB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHhjMCwgMHgwMCwgMHhmMywgMHgwMCwgMHg0NCwKLQkweGNjLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDIwLCAweDcxLCAweGMwLAotCTB4MDAsIDB4MzAsIDB4NzEsIDB4YzAsIDB4MDAsIDB4ZjMsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHhmZiwgMHhmZiwgMHg2MiwgMHg4YiwKLQkweDIwLCAweDAxLCAweDMzLCAweDgwLCAweDAwLCAweDAwLCAweDgzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4MjAsIDB4ZTEsIDB4MDksIDB4NWMsCi0JMHg4MiwgMHgwMCwgMHgwOSwgMHgyZiwgMHg4MCwgMHg0YSwgMHgwOSwgMHg4ZSwKLQkweGUwLCAweDAxLCAweGIzLCAweDgyLCAweDIwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4Y2IsIDB4MDMsIDB4MDAsIDB4YTgsIDB4MTgsCi0JMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwgMHgwOCwgMHgwNCwgMHhlYSwgMHgxMCwKLQkweDA4LCAweDA0LCAweDdhLCAweDEwLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDAsIDB4MjEsIDB4Y2IsIDB4MGMsIDB4MDAsIDB4ZTgsIDB4MTAsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHgwYywgMHgwMCwgMHhlYiwgMHgxMCwKLQkweGYyLCAweDAxLCAweDAwLCAweDgyLCAweDQwLCAweDIxLCAweDMzLCAweDAyLAotCTB4MDgsIDB4MjAsIDB4NjEsIDB4MGEsIDB4YzQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHhjNywgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweGU4LCAweDA0LCAweDE0LCAweDAxLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4YjgsIDB4MDQsIDB4NTQsCi0JMHhjMywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhiOCwgMHgwMCwgMHg0NCwKLQkweDA4LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGI4LCAweDA0LCAweDU0LAotCTB4YzgsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwOSwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHg2OCwgMHgwNCwgMHg1NCwKLQkweGM5LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDY4LCAweDAwLCAweDQ0LAotCTB4MGIsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4NjgsIDB4MDQsIDB4NTQsCi0JMHhjYiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA2LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweDc4LCAweDA0LCAweDU0LAotCTB4YzYsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4NzgsIDB4MDAsIDB4NDQsCi0JMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHg3OCwgMHgwNCwgMHg1NCwKLQkweGM1LCAweDAwLCAweDA0LCAweDE5LCAweDA3LCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4ZTgsIDB4MDQsIDB4NTQsCi0JMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHhlOCwgMHgwMCwgMHg0NCwKLQkweDBlLCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweGU4LCAweDA0LCAweDU0LAotCTB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgyMCwgMHgxMCwgMHg3MSwgMHg4YiwgMHgwOSwgMHgzZiwgMHgwNywgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgYWxhd19tYWluW10gPSB7Ci0JMHgwMCwgMHgxMCwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGIxLCAweDAwLCAweDQ0LCAweDAwLCAweDYxLCAweDAwLCAweDQ0LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4NjEsIDB4YTgsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDIwLCAweDAxLCAweDA5LCAweDBlLCAweDIwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YTgsIDB4MDEsIDB4YTgsIDB4ODAsIDB4ODgsIDB4MDEsIDB4YTgsIDB4ODAsCi0JMHhhOCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhkMiwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweDg4LCAweDAwLCAweGE4LCAweDgwLCAweGE4LCAweDA0LCAweGIzLCAweDgwLAotCTB4MjAsIDB4MDcsIDB4YjMsIDB4ODAsIDB4ODgsIDB4MDMsIDB4YjEsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHgwOSwgMHg1YywgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGExLCAweDAwLCAweDcxLCAweDhiLCAweGNkLCAweDAwLCAweDA0LCAweDE5LAotCTB4MjEsIDB4MjAsIDB4NzEsIDB4OGIsIDB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDQwLCAweDAwLCAweDE0LCAweDA4LCAweDQwLCAweDA0LCAweDI0LAotCTB4MDAsIDB4MDAsIDB4MzQsIDB4NDksIDB4MGMsIDB4NDAsIDB4MDAsIDB4NDQsCi0JMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDMyLCAweDAwLCAweDA5LCAweDVjLCAweDAwLCAweDAwLCAweDBjLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4NDAsIDB4NDAsIDB4MDksIDB4ZWYsCi0JMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHg2MywgMHhhMSwKLQkweDUwLCAweDAzLCAweDMzLCAweDgwLCAweDAwLCAweDA0LCAweGEzLCAweDgwLAotCTB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsIDB4MDAsIDB4ZDAsIDB4MDQsIDB4NTQsCi0JMHgwNCwgMHhlMCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMywgMHg4MCwgMHhjMCwKLQkweDMwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDdhLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweGZmLCAweGMyLCAweDhiLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsIDB4MDgsIDB4MzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwgMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDFlLCAweDQyLCAweDhiLCAweDBjLCAweGIyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsIDB4MDAsIDB4NjIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwgMHgwOCwgMHg1MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweGJlLCAweDQyLCAweDhiLCAweDA4LCAweDUyLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsIDB4MDQsIDB4NzIsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwgMHgwMCwgMHhkMiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDU1LCAweDQyLCAweDhiLCAweDAwLCAweDYwLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MjAsIDB4MDEsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHgzMCwgMHg0MiwgMHg4YiwgMHgwOCwgMHg4MiwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDcxLCAweDhiLAotCTB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwgMHgwMCwgMHhiMiwgMHgwMCwgMHhjNCwKLQkweDBmLCAweGYyLCAweGE4LCAweGE4LCAweDIwLCAweDAwLCAweGIxLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NDEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksCi0JMHhjMCwgMHgwMSwgMHgwMCwgMHg4MiwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDBkLCAweGYyLCAweGEzLCAweGE4LCAweDRkLCAweGYyLCAweDAwLCAweDM5LAotCTB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDA0LCAweDE5LCAweDAwLCAweDYwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgxMCwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDYwLCAweDAwLCAweDQ0LCAweGZmLCAweDIwLCAweGUyLCAweGFiLAotCTB4NjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDAwLCAweGUyLCAweDAwLCAweDg0LAotCTB4MDMsIDB4MDMsIDB4MDQsIDB4NDksIDB4MDQsIDB4YzIsIDB4MDAsIDB4NTQsCi0JMHgwMCwgMHg2MCwgMHgwNCwgMHg2NCwgMHgwMCwgMHg2MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAwLCAweDIwLCAweGUyLCAweDhiLCAweDBjLCAweGYyLCAweDAwLCAweDg0LAotCTB4YmUsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwOCwgMHgwMSwgMHgwMCwgMHg0NCwgMHhlYywgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMwLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAyLCAweGUyLCAweDhiLAotCTB4MDQsIDB4MjEsIDB4MDAsIDB4ODQsIDB4M2YsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMiwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgxMSwgMHgwMCwgMHg0NCwKLQkweDNkLCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4ZTUsIDB4MDAsIDB4NzEsIDB4OGIsIDB4Y2QsIDB4MDAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweGMxLCAweDIwLCAweDA0LCAweDE5LAotCTB4YzMsIDB4MjAsIDB4MDQsIDB4MTksIDB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjNywgMHgyMCwgMHgwNCwgMHgxOSwgMHhkZSwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGNmLCAweDAwLCAweDAwLCAweDM5LCAweDAwLCAweDAxLCAweGIxLCAweDgwLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4YzYsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwgMHhjYSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDIwLCAweDAwLCAweDcxLCAweDhiLCAweGNjLCAweDIwLCAweDA0LCAweDE5LAotCTB4MDMsIDB4MDAsIDB4MDQsIDB4NDksIDB4MDAsIDB4NjAsIDB4MDAsIDB4NDQsCi0JMHgwOSwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBiLCAweDA0LCAweDYxLCAweGE4LCAweGNhLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4NjAsIDB4MDAsIDB4ZDQsIDB4MGQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHg5MCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDBmLCAweDAwLCAweDYxLCAweDBhLCAweDAwLCAweDQwLCAweDA5LCAweDhmLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4ODIsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwgMHgwMiwgMHgwMCwgMHg2MSwgMHgyMiwKLQkweDQzLCAweDI1LCAweDYxLCAweDIyLCAweDQwLCAweDMzLCAweDAwLCAweDgwLAotCTB4MDgsIDB4NDgsIDB4MDAsIDB4NDQsIDB4MjAsIDB4YjEsIDB4NDksIDB4NWMsCi0JMHg5MiwgMHgwMCwgMHgwOSwgMHg0ZSwgMHgwMiwgMHgwMywgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAwLCAweGEzLCAweDAyLCAweGMwLCAweDAwLCAweDcxLCAweGMwLAotCTB4MjAsIDB4MDAsIDB4ZWIsIDB4ODAsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHg4MCwgMHgwMCwgMHgwNCwgMHg3YSwgMHgwMiwKLQkweGMwLCAweDAwLCAweDAwLCAweDgyLCAweDBjLCAweGMzLCAweDA4LCAweDQ5LAotCTB4YjAsIDB4MDEsIDB4ZjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MTAsIDB4MzksCi0JMHgyMCwgMHgwMCwgMHgwYywgMHg4OSwgMHgwYywgMHg4OCwgMHgwOCwgMHg0OSwKLQkweDAzLCAweDAwLCAweGE4LCAweDE4LCAweDAwLCAweDAwLCAweDEwLCAweDM5LAotCTB4YmQsIDB4ZmYsIDB4NjIsIDB4OGIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MywgMHhjYiwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwMiwKLQkweDQwLCAweDAwLCAweDAxLCAweDViLCAweDIwLCAweDAwLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NGEsIDB4Y2IsIDB4MjAsIDB4MDAsIDB4MTMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHhlMCwgMHgyMSwgMHgwMCwgMHhjMCwKLQkweDA4LCAweDAwLCAweDA4LCAweDQ5LCAweDEwLCAweDQxLCAweDA5LCAweDhlLAotCTB4YWUsIDB4YWUsIDB4NjIsIDB4OGIsIDB4MDAsIDB4MDQsIDB4NjEsIDB4MjIsCi0JMHgwMCwgMHgwMywgMHgwMCwgMHg0NSwgMHgyMiwgMHgwMSwgMHgzMywgMHg4MCwKLQkweDIwLCAweDAxLCAweGEzLCAweDAyLCAweDAwLCAweDAwLCAweDdhLCAweDgwLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MDcsIDB4MjAsIDB4NDAsIDB4MGEsCi0JMHgwOCwgMHhhMywgMHgwMCwgMHg4NCwgMHg0MCwgMHgyMSwgMHgwMCwgMHg4MCwKLQkweDQwLCAweDA1LCAweDkzLCAweDEwLCAweGM3LCAweDIwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDcsIDB4MjAsIDB4NDAsIDB4MGEsCi0JMHgwYywgMHg5MywgMHgwMCwgMHg4NCwgMHgwOCwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDBjLCAweDI0LCAweDYxLCAweDUwLCAweDQwLCAweDAxLCAweDAwLCAweDgwLAotCTB4YzcsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDQyLCAweDAxLCAweDA5LCAweDBlLCAweDAyLCAweDIwLCAweDYxLCAweDBhLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4MGMsIDB4MjAsIDB4NjAsIDB4MGEsCi0JMHgwMCwgMHhjMywgMHgwMCwgMHg4NCwgMHgwMCwgMHgwNCwgMHhiMSwgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDM5LCAweDBjLCAweDYxLCAweDA0LCAweGQ0LAotCTB4MDAsIDB4MjQsIDB4NzEsIDB4YzAsIDB4MjAsIDB4MzMsIDB4MzMsIDB4YzAsCi0JMHhlMCwgMHgwMSwgMHhhMywgMHg4MiwgMHgyMiwgMHgwMywgMHg3YSwgMHgwMiwKLQkweGMzLCAweDAxLCAweGEzLCAweDgyLCAweDIwLCAweDAxLCAweDMzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4YzIsIDB4MDEsIDB4YjMsIDB4NTAsCi0JMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg3MSwgMHg4MCwKLQkweDAwLCAweDA4LCAweDAwLCAweDQ0LCAweDBjLCAweDIwLCAweDYwLCAweDBhLAotCTB4MDAsIDB4ZjMsIDB4MDAsIDB4ODQsIDB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwgMHgwYywgMHg2MSwgMHgwNCwgMHhkNCwKLQkweDAwLCAweDAwLCAweDcxLCAweGMwLCAweDAwLCAweDAwLCAweDkzLCAweDEwLAotCTB4Y2MsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDgsIDB4MDAsIDB4NDQsCi0JMHhjYywgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgyMCwgMHgwMCwgMHhjMCwKLQkweDAwLCAweDMwLCAweDcxLCAweGMwLCAweDAwLCAweDA4LCAweDAwLCAweDQ0LAotCTB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4YWUsIDB4YWUsIDB4NjIsIDB4OGIsCi0JMHgyMCwgMHgwMSwgMHgzMywgMHg4MCwgMHgwMCwgMHgwMCwgMHg4MywgMHg4MCwKLQkweDIwLCAweDAwLCAweDdhLCAweDgwLCAweDIwLCAweGExLCAweDQ5LCAweDVjLAotCTB4ODIsIDB4MDAsIDB4MDksIDB4NmUsIDB4ODAsIDB4NGEsIDB4MDksIDB4OGUsCi0JMHhlMCwgMHgwMSwgMHhiMywgMHg4MiwgMHgyMCwgMHgwNCwgMHhhMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDdhLCAweGNiLCAweDI4LCAweDA0LCAweGVhLCAweDEwLAotCTB4MGMsIDB4MDQsIDB4N2EsIDB4MTAsIDB4NzAsIDB4MDAsIDB4YzAsIDB4OGIsCi0JMHgwMCwgMHgwMCwgMHgxMCwgMHgzOSwgMHg5MCwgMHgwMywgMHgwMCwgMHg4MCwKLQkweDQwLCAweDAwLCAweDIxLCAweDViLCAweDkwLCAweDAwLCAweDYxLCAweDgwLAotCTB4MGMsIDB4OGEsIDB4MDgsIDB4NDksIDB4MDAsIDB4MDAsIDB4MWMsIDB4MTksCi0JMHg0MCwgMHgwMCwgMHgwOCwgMHg1YiwgMHgwOCwgMHgwMCwgMHgwOCwgMHg0OSwKLQkweDIwLCAweDAyLCAweDAwLCAweDgwLCAweDAzLCAweDAwLCAweGE4LCAweDE4LAotCTB4MDAsIDB4MDAsIDB4MTQsIDB4MTksIDB4NDAsIDB4MDAsIDB4MjEsIDB4Y2IsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwgMHgwMCwgMHgwMCwgMHhlYiwgMHg4MCwKLQkweGYyLCAweDAxLCAweDAwLCAweDgyLCAweDQwLCAweDIxLCAweDMzLCAweDAyLAotCTB4MDgsIDB4MjAsIDB4NjEsIDB4MGEsIDB4YzQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHhjNywgMHgwMCwgMHgwMCwgMHg5OSwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweDBhLCAweDA0LCAweDE0LCAweDAxLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4NTgsIDB4MDQsIDB4NTQsCi0JMHhjMywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHg1OCwgMHgwMCwgMHg0NCwKLQkweDA4LCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweDU4LCAweDA0LCAweDU0LAotCTB4YzgsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwOSwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhjOCwgMHgwNCwgMHg1NCwKLQkweGM5LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGM4LCAweDAwLCAweDQ0LAotCTB4MGIsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4YzgsIDB4MDQsIDB4NTQsCi0JMHhjYiwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDA2LCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGQ4LCAweDA0LCAweDU0LAotCTB4YzYsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4ZDgsIDB4MDAsIDB4NDQsCi0JMHgwNSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhkOCwgMHgwNCwgMHg1NCwKLQkweGM1LCAweDAwLCAweDA0LCAweDE5LCAweDA3LCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4MDAsIDB4NDgsIDB4MGEsIDB4MDAsIDB4MGEsIDB4MDQsIDB4NTQsCi0JMHhjYywgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYywgMHgwYSwgMHgwMCwgMHg0NCwKLQkweDBlLCAweDAwLCAweGM4LCAweDBhLCAweDBjLCAweDBhLCAweDA0LCAweDU0LAotCTB4Y2UsIDB4MDAsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgyMCwgMHgxMCwgMHg3MSwgMHg4YiwgMHgwOCwgMHg0MiwgMHgwNiwgMHgwMAotfTsKLQotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbWFfYWRwY21faW5pdFtdID0gewotCTB4MDAsIDB4MTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweGFhLCAweGFhLCAweDcxLCAweDhiLAotCTB4NDQsIDB4MDQsIDB4MDQsIDB4MTksIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHhmZiwgMHg2ZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZiwgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDUsIDB4YjEsIDB4ODAsIDB4NjIsIDB4MDAsIDB4MTksIDB4MGUsCi0JMHgyMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg2MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDUwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGUwLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDIyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MzIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhhMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NjIsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjMiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGYyLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhhMSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDYxLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZTEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxMywgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGIzLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzMsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxOCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDY4LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MGEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg0YSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDI5LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzksIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5YiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE0LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZjQsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlNiwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGU1LCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZDcsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyZSwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDlkLCAweDAwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZWYsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhiMiwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDMzLCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MmEsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgzYiwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDQ2LCAweDIwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MmMsIDB4MjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkZCwgMHgyMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAxLCAweDEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OWEsIDB4MTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxNiwgMHgxMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDhlLCAweDEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzIsIDB4MzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjOSwgMHgzMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDNjLCAweDMwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ODEsIDB4ODAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkNCwgMHg4MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDEwLCAweGEwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4MzQsIDB4YTAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgwMiwgMHg5MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDc1LCAweDkwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OWEsIDB4YjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgxMiwgMHg0MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDBkLCAweDQwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4M2MsIDB4NjAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhlNywgMHg1MCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDBlLCAweDcwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZmYsIDB4YzAsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhjOCwgMHhkMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDU3LCAweGYwLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YzgsIDB4MjIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhiMCwgMHgzMiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGRkLCAweDgyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4OTAsIDB4YjIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg4YSwgMHg2MiwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGNlLCAweDcyLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4YTUsIDB4ZDIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg5NywgMHgyMSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweGEyLCAweGExLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NWMsIDB4NDEsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhmZSwgMHhjMSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDdhLCAweDIzLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4NzgsIDB4OTMsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHg2NywgMHg3MywgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE3LCAweDI4LCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ODgsIDB4NDgsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkYiwgMHhmOCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDJiLCAweGJhLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZjEsIDB4MDksIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHhkYywgMHg2OSwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDE5LCAweDhiLCAweDcxLCAweDhiLCAweDg4LCAweDAwLCAweDAwLCAweDgwLAotCTB4ZmYsIDB4ZmIsIDB4NzEsIDB4OGIsIDB4ODgsIDB4MDAsIDB4MDAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4OCwgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDUyLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4ZmYsIDB4ZmYsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweDEwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHg5MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweDQwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4ZmYsIDB4ZmYsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAwLCAweDAwLCAweDgyLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4MTAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDkwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4NDAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHhmZiwgMHhmYiwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDA0LCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4NGEsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDAsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgxMCwgMHgwMCwgMHgwOSwgMHg0ZiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGMyLCAweDAxLCAweDAwLCAweDgyLCAweGMyLCAweDAxLCAweDAwLCAweDgyLAotCTB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsIDB4YzIsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDAwLCAweDEwLCAweDcxLCAweDhiLCAweGMxLCAweDMwLCAweDA0LCAweDE5LAotCTB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsIDB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwgMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwKLQkweDAwLCAweDA4LCAweDAwLCAweDQ0LCAweGM4LCAweDU0LCAweDExLCAweDAwCi19OwotCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbWFfYWRwY21fcGxheWJhY2tbXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MGMsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4NzAsIDB4MDAsIDB4NDQsCi0JMHgwNCwgMHg3MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwZCwgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsCi0JMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwgMHg1MSwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNkLCAweDAwLCAweDA0LCAweDE5LCAweGU0LCAweDIwLCAweDcxLCAweDhiLAotCTB4Y2YsIDB4MDAsIDB4MDQsIDB4MTksIDB4ODAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjYiwgMHgyMCwgMHgwNCwgMHgxOSwgMHgxMCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGM0LCAweDIwLCAweDA0LCAweDE5LCAweDY1LCAweDAwLCAweDUxLCAweDhiLAotCTB4YzIsIDB4MjAsIDB4MDAsIDB4MzksIDB4MDAsIDB4MDAsIDB4YjEsIDB4ODAsCi0JMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwKLQkweGMxLCAweGEwLCAweDA0LCAweDE5LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgwNCwgMHg0MCwgMHgwMCwgMHgxNCwgMHgwYywgMHg0MCwgMHgwMCwgMHgxNCwKLQkweDAwLCAweDA0LCAweDYxLCAweGE4LCAweDAyLCAweDA0LCAweDYxLCAweGE4LAotCTB4MDQsIDB4NjAsIDB4MDQsIDB4MjQsIDB4MDAsIDB4MDAsIDB4MzQsIDB4NDksCi0JMHgwMCwgMHg1MCwgMHgwMCwgMHg0NCwgMHg0NCwgMHgwNCwgMHgwNCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsCi0JMHg0MCwgMHg0MCwgMHgwOSwgMHhlZiwgMHhmZiwgMHgyMCwgMHgwOSwgMHhjZiwKLQkweDAwLCAweDA0LCAweDYzLCAweGExLCAweDUwLCAweDAzLCAweDMzLCAweDgwLAotCTB4MDAsIDB4MDQsIDB4YTMsIDB4ODAsIDB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsCi0JMHgwOCwgMHhmMCwgMHgwNCwgMHg1NCwgMHgwYywgMHhkMCwgMHgwMCwgMHhjNCwKLQkweDIwLCAweDAzLCAweDgwLCAweGMwLCAweDMwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsIDB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHhjMCwgMHgwMCwgMHgwMCwgMHg5OSwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweDAwLCAweGZmLCAweGMyLCAweDhiLAotCTB4MjAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MGQsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhhMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwZSwgMHg0MiwgMHg4YiwKLQkweDBjLCAweDkyLCAweDAwLCAweGM0LCAweDAwLCAweDFlLCAweDQyLCAweDhiLAotCTB4MDQsIDB4NjIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4OGUsIDB4NDIsIDB4OGIsCi0JMHgwYywgMHg1MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHg5ZSwgMHg0MiwgMHg4YiwKLQkweDAwLCAweGMyLCAweDAwLCAweGM0LCAweDAwLCAweGJlLCAweDQyLCAweDhiLAotCTB4MDAsIDB4YzIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MDQsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhmMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgyNCwgMHg0MiwgMHg4YiwKLQkweDAwLCAweDkxLCAweDAwLCAweGM0LCAweDAwLCAweDU1LCAweDQyLCAweDhiLAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4YzQsIDB4MDAsIDB4M2YsIDB4NDIsIDB4OGIsCi0JMHgwOCwgMHhlMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDIwLCAweDAxLCAweDc5LCAweDgwLCAweDAwLCAweDMwLCAweDQyLCAweDhiLAotCTB4MDAsIDB4OTIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsCi0JMHgwMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDA4LCAweDUwLCAweDAwLCAweDQ0LCAweGZmLCAweDAwLCAweGUyLCAweGFiLAotCTB4MGMsIDB4NDIsIDB4MDAsIDB4YzQsIDB4MGYsIDB4ZjIsIDB4YTgsIDB4YTgsCi0JMHgyMCwgMHgwMCwgMHhiMSwgMHg4OCwgMHgwMCwgMHgwMCwgMHg0MSwgMHgwMiwKLQkweDRkLCAweGYyLCAweDAwLCAweDM5LCAweGMwLCAweDAxLCAweDAwLCAweDgyLAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MGQsIDB4ZjIsIDB4YTMsIDB4YTgsCi0JMHg0ZCwgMHhmMiwgMHgwMCwgMHgzOSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDAwLCAweGUyLCAweGFiLCAweDIwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4MDIsIDB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHhmZiwgMHgwMCwgMHhlMiwgMHhhYiwKLQkweGEwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAwLCAweDYxLCAweDEwLAotCTB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHhmZiwgMHgyMCwgMHhlMiwgMHhhYiwgMHg2MCwgMHgwMCwgMHgwMCwgMHg4OCwKLQkweDAwLCAweDAwLCAweDcxLCAweGMwLCAweDRkLCAweGYyLCAweDA0LCAweDE5LAotCTB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDAsIDB4N2EsIDB4MGEsCi0JMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMSwgMHhhMCwgMHg0MSwgMHgwYSwKLQkweDA0LCAweGQyLCAweDAwLCAweGM0LCAweDIwLCAweDAxLCAweGYwLCAweDgwLAotCTB4YzEsIDB4MzAsIDB4MDQsIDB4MTksIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwMCwgMHg3OSwgMHg4MCwgMHgwMCwgMHhhMSwgMHgwMCwgMHg4NCwKLQkweGI1LCAweDAwLCAweDUxLCAweDhiLCAweGNmLCAweDAwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4ODgsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4YSwgMHgwMCwgMHgwNCwgMHgxOSwgMHhjOCwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweGNhLCAweDIwLCAweDA0LCAweDE5LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHhiMCwgMHgwMCwgMHg3MSwgMHg4YiwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDhlLCAweDAwLCAweDA0LCAweDE5LCAweDEwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzQsIDB4MjAsIDB4MDQsIDB4MTksIDB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsCi0JMHhjZCwgMHgzMCwgMHgwMCwgMHgwOSwgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDAzLCAweDAzLCAweDA0LCAweDQ5LCAweDA0LCAweDgxLCAweDAwLCAweDU0LAotCTB4MDgsIDB4NTAsIDB4MDQsIDB4NjQsIDB4MDgsIDB4NTAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwKLQkweDAzLCAweDAwLCAweDA0LCAweDQ5LCAweDA4LCAweDUwLCAweDAwLCAweDQ0LAotCTB4MjAsIDB4MDEsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MTksCi0JMHgwMCwgMHgwMiwgMHhlMiwgMHg4YiwgMHgwOCwgMHg0MSwgMHgwMCwgMHg4NCwKLQkweDY1LCAweDAwLCAweDUxLCAweDhiLCAweGMyLCAweDIwLCAweDAwLCAweDM5LAotCTB4MDAsIDB4MDAsIDB4NjMsIDB4ODAsIDB4YzEsIDB4YTAsIDB4MDQsIDB4MTksCi0JMHgwOCwgMHg2MSwgMHgwMCwgMHg0NCwgMHgyZCwgMHgwMCwgMHg1MSwgMHg4YiwKLQkweGMyLCAweDIwLCAweDAwLCAweDM5LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzEsIDB4YTAsIDB4MDQsIDB4MTksIDB4MDMsIDB4MDAsIDB4MDQsIDB4NDksCi0JMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMiwgMHgyMCwgMHg2MSwgMHgwYSwKLQkweDAwLCAweDAxLCAweDAwLCAweDQ1LCAweDAyLCAweDMwLCAweDYxLCAweDBhLAotCTB4MDQsIDB4MDMsIDB4MDAsIDB4YzQsIDB4MDUsIDB4YjAsIDB4YzgsIDB4MTgsCi0JMHgwNCwgMHg3MSwgMHgwMCwgMHhjNCwgMHgwMCwgMHgxMywgMHgwMCwgMHg0NCwKLQkweDAwLCAweDc5LCAweDA4LCAweDQ0LCAweDAwLCAweDA0LCAweDc5LCAweDgwLAotCTB4MDAsIDB4NDksIDB4MDAsIDB4YzQsIDB4Y2EsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHg0YSwgMHgwNCwgMHgwNCwgMHgxOSwgMHhmZiwgMHgwMCwgMHhlMiwgMHg4YiwKLQkweDBjLCAweGY5LCAweDA4LCAweDQ0LCAweGNmLCAweDEwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4MmIsIDB4MDgsIDB4NDQsIDB4OGUsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwMywgMHgzMCwgMHg2MSwgMHgwYSwgMHhjOCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDQ4LCAweDA0LCAweDAwLCAweDM5LCAweDBhLCAweDMwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4ZjksIDB4MDgsIDB4NDQsIDB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHgyYiwgMHgwOCwgMHg0NCwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwKLQkweGNhLCAweDMwLCAweDAwLCAweDk5LCAweDBjLCAweGQ5LCAweDA4LCAweDQ0LAotCTB4NDIsIDB4MGEsIDB4MDksIDB4MGUsIDB4MDAsIDB4MDEsIDB4MzMsIDB4MTEsCi0JMHg4YywgMHgwMSwgMHhhMywgMHg4MCwgMHgwMCwgMHgwMSwgMHg3YSwgMHgxMCwKLQkweDgwLCAweDA1LCAweGIxLCAweDgwLCAweDA1LCAweGIwLCAweGUwLCAweDE4LAotCTB4MDAsIDB4OTMsIDB4MDAsIDB4ODQsIDB4MDAsIDB4NzksIDB4MDgsIDB4NDQsCi0JMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwgMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwKLQkweDBjLCAweDFiLCAweDA4LCAweDQ0LCAweDg4LCAweDAwLCAweDA0LCAweDE5LAotCTB4OGEsIDB4MDAsIDB4MDAsIDB4OTksIDB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsCi0JMHg0MiwgMHgwYSwgMHgwOSwgMHgwZSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDA0LCAweGIxLCAweDgyLCAweDEwLCAweDAwLCAweGUwLCAweDBiLAotCTB4MDAsIDB4NDMsIDB4MDAsIDB4ODQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwMCwgMHg0MywgMHgwMCwgMHg4NCwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MGMsIDB4YTgsIDB4MDAsIDB4NDQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHhkMywgMHgwMCwgMHhjNCwgMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwKLQkweDA0LCAweDYzLCAweDAwLCAweGM0LCAweDA4LCAweGYzLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGZmLCAweDAwLCAweGUyLCAweDhiLCAweDBjLCAweGY5LCAweDA4LCAweDQ0LAotCTB4Y2QsIDB4MTAsIDB4MDQsIDB4MTksIDB4Y2YsIDB4MTAsIDB4MDQsIDB4MTksCi0JMHgwYywgMHgyYiwgMHgwOCwgMHg0NCwgMHg4YywgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDhlLCAweDAwLCAweDA0LCAweDE5LCAweDAzLCAweDMwLCAweDYxLCAweDBhLAotCTB4YzgsIDB4MjAsIDB4MDAsIDB4MzksIDB4Y2EsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHg0OCwgMHgwNCwgMHgwMCwgMHgzOSwgMHg0YSwgMHgwNCwgMHgwMCwgMHgzOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzksIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDQsIDB4NzksIDB4ODAsCi0JMHgwMCwgMHg0OSwgMHgwMCwgMHhjNCwgMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweGQ5LCAweDA4LCAweDQ0LCAweDQyLCAweDBhLCAweDA5LCAweDBlLAotCTB4MDUsIDB4YjAsIDB4ZTAsIDB4MTgsIDB4MDAsIDB4MTgsIDB4MDAsIDB4ODQsCi0JMHgwMCwgMHg3OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwNCwgMHg3OSwgMHg4MCwKLQkweDAwLCAweDQ5LCAweDAwLCAweGM0LCAweDBjLCAweDFiLCAweDA4LCAweDQ0LAotCTB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MGMsIDB4ZDksIDB4MDgsIDB4NDQsCi0JMHg0MiwgMHgwYSwgMHgwOSwgMHgwZSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDA0LCAweGIxLCAweDgyLCAweDEwLCAweDAwLCAweGUwLCAweDBiLAotCTB4MDAsIDB4ODgsIDB4MDAsIDB4ODQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwMCwgMHg4OCwgMHgwMCwgMHg4NCwKLQkweDAwLCAweDAwLCAweGIxLCAweDgwLCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4MDAsIDB4MGYsIDB4ZTIsIDB4OGIsCi0JMHgwMCwgMHgwMCwgMHg0MSwgMHhjYiwgMHg4YywgMHgwMCwgMHgwMCwgMHg4MCwKLQkweDAwLCAweDAwLCAweDQ4LCAweGNiLCAweDIwLCAweDAwLCAweDdhLCAweDgwLAotCTB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4ODIsIDB4MGMsIDB4MDksIDB4NmUsCi0JMHgwMywgMHgwOCwgMHgwOSwgMHgwZSwgMHg4MCwgMHg0MCwgMHgwOSwgMHhjZiwKLQkweDAwLCAweDAxLCAweDcxLCAweGMyLCAweDAwLCAweDA4LCAweGMyLCAweDFiLAotCTB4MDQsIDB4YjgsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsCi0JMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhjMiwgMHgxYiwKLQkweDA0LCAweDQ4LCAweDAwLCAweGM0LCAweDIwLCAweDA1LCAweGE4LCAweDgwLAotCTB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsIDB4MDAsIDB4MDIsIDB4YzIsIDB4MWIsCi0JMHgwNCwgMHg2OCwgMHgwMCwgMHhjNCwgMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDIwLCAweDAzLCAweGE4LCAweDgwLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4MTEsIDB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsCi0JMHgwOCwgMHg3OCwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweDAwLCAweDAwLCAweDRhLCAweGNiLAotCTB4MjAsIDB4MDAsIDB4YTgsIDB4MjIsIDB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHg0MCwgMHgwMSwgMHgwMCwgMHg4MCwgMHhjNCwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweGIwLCAweDAwLCAweGUyLCAweDhiLCAweDA2LCAweDIwLCAweGE4LCAweDBhLAotCTB4MmQsIDB4MTAsIDB4NjEsIDB4MGEsIDB4ZDEsIDB4MDgsIDB4MDksIDB4MmUsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgwMiwgMHgwYywgMHhmOSwgMHgwOCwgMHg0NCwKLQkweGNkLCAweDEwLCAweDA0LCAweDE5LCAweDBjLCAweDJiLCAweDA4LCAweDQ0LAotCTB4MDMsIDB4MDgsIDB4MDksIDB4MGUsIDB4OWEsIDB4MjUsIDB4YjEsIDB4NjAsCi0JMHhhMiwgMHgwZSwgMHgwOSwgMHg2ZSwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZiwKLQkweDAwLCAweDAxLCAweDcxLCAweDgyLCAweDIwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4Y2IsIDB4ODAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMywgMHgwMCwgMHgwOSwgMHgwZiwgMHgwMCwgMHgwMSwgMHg3MSwgMHhjMiwKLQkweDAwLCAweDA4LCAweGMyLCAweDFiLCAweDBjLCAweDJhLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDUsIDB4YTgsIDB4ODAsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgwMCwgMHgwMSwgMHhjMiwgMHgxYiwgMHgwYywgMHgxYSwgMHgwMCwgMHhjNCwKLQkweDIwLCAweDA1LCAweGE4LCAweDgwLCAweDIwLCAweDAxLCAweGYwLCAweDgwLAotCTB4MDAsIDB4MDIsIDB4YzIsIDB4MWIsIDB4MGMsIDB4M2EsIDB4MDAsIDB4YzQsCi0JMHgyMCwgMHgwNSwgMHhhOCwgMHg4MCwgMHgyMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAzLCAweGE4LCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDExLAotCTB4MDAsIDB4MDQsIDB4YzIsIDB4OGIsIDB4MDQsIDB4YWEsIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwgMHgwNSwgMHhiMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAwLCAweDRhLCAweGNiLCAweDIwLCAweDAwLCAweGE4LCAweDIyLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4NDAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHhjNywgMHgwMCwgMHgwNCwgMHgxOSwgMHhiMCwgMHgwMCwgMHhlMiwgMHg4YiwKLQkweDA2LCAweDIwLCAweGE4LCAweDBhLCAweDJmLCAweDEwLCAweDYxLCAweDBhLAotCTB4ZjEsIDB4MDgsIDB4MDksIDB4MmUsIDB4MDAsIDB4MDEsIDB4YTgsIDB4MDIsCi0JMHgwYywgMHhmOSwgMHgwOCwgMHg0NCwgMHhjZiwgMHgxMCwgMHgwNCwgMHgxOSwKLQkweDBjLCAweDJiLCAweDA4LCAweDQ0LCAweDlmLCAweDM1LCAweGIxLCAweDYwLAotCTB4MDMsIDB4MDgsIDB4MDksIDB4MGUsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsCi0JMHgyMCwgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwKLQkweDgwLCAweDAxLCAweDAwLCAweDgwLCAweGU0LCAweDIwLCAweDcxLCAweDhiLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4OTAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgwMCwgMHgwNSwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDA4LCAweDE5LCAweDA0LCAweGQ0LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsIDB4MGQsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgyMCwgMHgwNCwgMHg2MSwgMHhhOCwgMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwKLQkweDAyLCAweDA0LCAweDYxLCAweGE4LCAweGMyLCAweDAwLCAweDAwLCAweDgyLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4MDIsIDB4MDAsIDB4MDAsIDB4MDIsCi0JMHgwMiwgMHgwMCwgMHgwMCwgMHgwMiwgMHhjMCwgMHg4MCwgMHgwMCwgMHgwOSwKLQkweDIwLCAweDAwLCAweDA5LCAweDQ5LCAweDBmLCAweDMwLCAweDYxLCAweDBhLAotCTB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsIDB4MDAsIDB4MjksIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHg4MCwgMHhjOCwgMHgwYSwgMHgwMCwgMHgyOSwgMHgwMCwgMHhjNCwKLQkweDAwLCAweDA0LCAweGIxLCAweDgwLCAweDAwLCAweDAwLCAweDA2LCAweDM5LAotCTB4YzksIDB4MjAsIDB4MDQsIDB4MzksIDB4MDAsIDB4MzksIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHgwNCwgMHg2MywgMHg4MCwgMHgwMCwgMHgwMCwgMHgwNiwgMHgzOSwKLQkweDAwLCAweDA0LCAweGIxLCAweDgwLCAweGM5LCAweDIwLCAweDA0LCAweDM5LAotCTB4MDAsIDB4MzksIDB4MDAsIDB4NDQsIDB4MDksIDB4MjAsIDB4MjMsIDB4MGEsCi0JMHgwMCwgMHgwMCwgMHgwNiwgMHgxOSwgMHhjOSwgMHgyMCwgMHgwNCwgMHgxOSwKLQkweDAwLCAweDAwLCAweDQwLCAweDQ1LCAweDAyLCAweDAwLCAweDYxLCAweDBhLAotCTB4MGMsIDB4YjksIDB4MDQsIDB4MTQsIDB4MDQsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwNiwgMHgwMCwgMHg0OCwgMHgwYSwgMHgwMCwgMHhhOSwgMHgwNCwgMHg1NCwKLQkweGM2LCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweGE5LCAweDAwLCAweDQ0LAotCTB4MDUsIDB4MDAsIDB4YzgsIDB4MGEsIDB4MGMsIDB4YTksIDB4MDQsIDB4NTQsCi0JMHhjNSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwNywgMHgwMCwgMHg2MSwgMHgwYSwKLQkweDBjLCAweDAwLCAweDQ4LCAweDBhLCAweDAwLCAweGI5LCAweDA0LCAweDU0LAotCTB4Y2MsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YjksIDB4MDAsIDB4NDQsCi0JMHgwZSwgMHgwMCwgMHhjOCwgMHgwYSwgMHgwYywgMHhiOSwgMHgwNCwgMHg1NCwKLQkweGNlLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4ODIsIDB4MGQsIDB4MDksIDB4MmUsIDB4ODAsIDB4NDAsIDB4MDksIDB4Y2YsCi0JMHgwMCwgMHhkZiwgMHg3MSwgMHg4YiwgMHg4MCwgMHgwMSwgMHgwMCwgMHg4MCwKLQkweDAyLCAweGMxLCAweDAwLCAweDIyLCAweDAzLCAweGMxLCAweDAwLCAweDIyLAotCTB4MDAsIDB4MDEsIDB4NjUsIDB4ODAsIDB4ZDIsIDB4MDUsIDB4NjUsIDB4ODIsCi0JMHg0MCwgMHgyMSwgMHgwMCwgMHg4MCwgMHhkMywgMHgwMywgMHgwMCwgMHg4MiwKLQkweDQwLCAweDMzLCAweDAwLCAweDgwLCAweDBjLCAweDVhLCAweDAwLCAweDQ0LAotCTB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsCi0JMHgwOCwgMHhkOSwgMHgwMCwgMHhjNCwgMHg5MywgMHgwMCwgMHgwMSwgMHg0ZiwKLQkweGU3LCAweDAwLCAweDAxLCAweDZmLCAweDBmLCAweDMwLCAweDYxLCAweDBhLAotCTB4MjAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDIsIDB4MDAsIDB4NjEsIDB4MDIsCi0JMHgwMiwgMHgwMCwgMHgwMCwgMHgwMywgMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwKLQkweDIwLCAweDAwLCAweDA5LCAweDQ5LCAweDAwLCAweDA0LCAweDYzLCAweDgwLAotCTB4MDQsIDB4ZDksIDB4MDAsIDB4NDQsIDB4MDAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4MGUsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHgwYiwgMHgwNCwgMHgxNCwgMHgwZSwgMHgxMCwgMHg2MSwgMHgwYSwKLQkweDA0LCAweDJiLCAweDAwLCAweDQ0LCAweDBjLCAweDEwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4MmIsIDB4MDQsIDB4NTQsIDB4MGMsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgwMCwgMHgxMCwgMHhhOCwgMHgxOCwKLQkweGEwLCAweDAwLCAweDAwLCAweDg4LCAweDAwLCAweDAxLCAweDcxLCAweDgyLAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4MDAsIDB4MDQsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg4MywgMHg4MCwgMHgyMCwgMHgwNCwgMHg3YSwgMHg4MCwKLQkweDIwLCAweDAxLCAweDMzLCAweDgwLCAweDAwLCAweDAwLCAweDgzLCAweDgwLAotCTB4MjAsIDB4MDAsIDB4N2EsIDB4ODAsIDB4MjAsIDB4MDMsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHgwMCwgMHg0NiwgMHgxNiwgMHhjZSwgMHgxMSwgMHgwMAotfTsKLQotc3RhdGljIHVuc2lnbmVkIGNoYXIgaW1hX2FkcGNtX2NhcHR1cmVbXSA9IHsKLQkweDAwLCAweDEwLCAweDAwLCAweDQ0LCAweDA4LCAweDAwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4NzAsIDB4MDAsIDB4NDQsIDB4MDgsIDB4ZDAsIDB4MDAsIDB4NDQsCi0JMHgwMCwgMHhmMCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHg2MSwgMHhhOCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDE5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDYsIDB4MzksCi0JMHhmZiwgMHgyZSwgMHgyMSwgMHg0OSwgMHhmZiwgMHgwYywgMHhkNCwgMHg0OSwKLQkweDQwLCAweDQ5LCAweDM5LCAweGFjLCAweDU1LCAweDU1LCAweDcxLCAweDhiLAotCTB4NTAsIDB4MDEsIDB4YjEsIDB4ODAsIDB4MDAsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwgMHhjMCwgMHhhMCwgMHgwNCwgMHgxOSwKLQkweGMyLCAweGEwLCAweDA0LCAweDE5LCAweDg5LCAweDAwLCAweDcxLCAweDhiLAotCTB4YzgsIDB4MzAsIDB4MDQsIDB4MTksIDB4NzEsIDB4MDAsIDB4NzEsIDB4OGIsCi0JMHhjZCwgMHgwMCwgMHgwNCwgMHgxOSwgMHhjZiwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDgwLCAweDAwLCAweDcxLCAweDhiLCAweGNiLCAweDIwLCAweDA0LCAweDE5LAotCTB4MjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzQsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHg0NywgMHgwMCwgMHg1MSwgMHg4YiwgMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAwLCAweDYzLCAweDgwLCAweGMxLCAweGEwLCAweDA0LCAweDE5LAotCTB4OTMsIDB4MDAsIDB4MDEsIDB4NGYsIDB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHhjZiwgMHgzMCwgMHgwMCwgMHgwOSwgMHgwYywgMHg0MCwgMHgwMCwgMHgxNCwKLQkweDAwLCAweDYwLCAweDAwLCAweDE0LCAweDAwLCAweDA0LCAweDYxLCAweGE4LAotCTB4MDIsIDB4MDQsIDB4NjEsIDB4YTgsIDB4MGMsIDB4NjAsIDB4MDQsIDB4MjQsCi0JMHgwMCwgMHgwMCwgMHgzNCwgMHg0OSwgMHgwOCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDQ0LCAweDA0LCAweDA0LCAweDM5LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MDgsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MDUsIDB4YjAsIDB4ZTgsIDB4MTgsCi0JMHgwYywgMHhjMCwgMHgwNCwgMHg1NCwgMHhjOCwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweDA5LCAweDA0LCAweDAwLCAweGE4LCAweDBiLCAweDA0LCAweDAwLCAweGE4LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4MDksIDB4MDQsIDB4NjEsIDB4YTgsCi0JMHhjMSwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg2MSwgMHhhOCwKLQkweGNhLCAweDAwLCAweDA0LCAweDE5LCAweDBkLCAweDAwLCAweDYxLCAweDBhLAotCTB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsIDB4MGYsIDB4MDAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHg0MCwgMHgwOSwgMHg4ZiwgMHgwMCwgMHgwMSwgMHgwMCwgMHg0NSwKLQkweDQwLCAweDQwLCAweDA5LCAweGVmLCAweGZmLCAweDIwLCAweDA5LCAweGNmLAotCTB4MDAsIDB4MDQsIDB4NjMsIDB4YTEsIDB4NTAsIDB4MDMsIDB4MzMsIDB4ODAsCi0JMHgwMCwgMHgwNCwgMHhhMywgMHg4MCwgMHgwMCwgMHhmZiwgMHhjMiwgMHg4YiwKLQkweDBjLCAweDEyLCAweDA0LCAweDU0LCAweDA4LCAweDEyLCAweDAwLCAweGM0LAotCTB4MjAsIDB4MDMsIDB4ODAsIDB4YzAsIDB4MzAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweGMwLCAweDAwLCAweDAwLCAweDk5LAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4MDAsIDB4ZmYsIDB4YzIsIDB4OGIsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwZCwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDQyLCAweDAwLCAweGM0LCAweDAwLCAweDBlLCAweDQyLCAweDhiLAotCTB4MDgsIDB4NTIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4MWUsIDB4NDIsIDB4OGIsCi0JMHgwMCwgMHhlMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHg4ZSwgMHg0MiwgMHg4YiwKLQkweDA4LCAweGQyLCAweDAwLCAweGM0LCAweDAwLCAweDllLCAweDQyLCAweDhiLAotCTB4MDQsIDB4ZjIsIDB4MDAsIDB4YzQsIDB4MDAsIDB4YmUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHhmMiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwNCwgMHg0MiwgMHg4YiwKLQkweDA0LCAweDExLCAweDAwLCAweGM0LCAweDAwLCAweDI0LCAweDQyLCAweDhiLAotCTB4MGMsIDB4NjEsIDB4MDAsIDB4YzQsIDB4MDAsIDB4NTUsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHhjNCwgMHgwMCwgMHgzZiwgMHg0MiwgMHg4YiwKLQkweDBjLCAweDAxLCAweDAwLCAweGM0LCAweDAwLCAweDAwLCAweDQwLCAweDQ1LAotCTB4MjAsIDB4MDEsIDB4NzksIDB4ODAsIDB4MDAsIDB4MzAsIDB4NDIsIDB4OGIsCi0JMHgwNCwgMHg2MiwgMHgwMCwgMHhjNCwgMHgwMCwgMHgwMCwgMHg0MCwgMHg0NSwKLQkweDAwLCAweDAwLCAweDcxLCAweDhiLCAweDQwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDQsIDB4NTAsIDB4MDAsIDB4NDQsIDB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsCi0JMHgwOCwgMHhjMiwgMHgwMCwgMHhjNCwgMHgwZiwgMHhmMiwgMHhhOCwgMHhhOCwKLQkweDIwLCAweDAwLCAweGIxLCAweDg4LCAweDAwLCAweDAwLCAweDQxLCAweDAyLAotCTB4NGQsIDB4ZjIsIDB4MDAsIDB4MzksIDB4YzAsIDB4MDEsIDB4MDAsIDB4ODIsCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwZCwgMHhmMiwgMHhhMywgMHhhOCwKLQkweDRkLCAweGYyLCAweDAwLCAweDM5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4ZmYsIDB4MDAsIDB4ZTIsIDB4YWIsIDB4MjAsIDB4MDAsIDB4MDAsIDB4ODgsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHgwMiwgMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweGZmLCAweDAwLCAweGUyLCAweGFiLAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDAsIDB4NjEsIDB4MTAsCi0JMHg0ZCwgMHhmMiwgMHgwNCwgMHgxOSwgMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweGZmLCAweDIwLCAweGUyLCAweGFiLCAweDYwLCAweDAwLCAweDAwLCAweDg4LAotCTB4MDAsIDB4MDAsIDB4NzEsIDB4YzAsIDB4NGQsIDB4ZjIsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg3YSwgMHgwYSwKLQkweDIwLCAweDAxLCAweGYwLCAweDgwLCAweDAxLCAweGEwLCAweDQxLCAweDBhLAotCTB4MDAsIDB4MTEsIDB4MDAsIDB4YzQsIDB4MjAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHhjMSwgMHgzMCwgMHgwNCwgMHgxOSwgMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwKLQkweDAwLCAweDAwLCAweDc5LCAweDgwLCAweDBjLCAweDQxLCAweDAwLCAweDg0LAotCTB4ODksIDB4MDAsIDB4NzEsIDB4OGIsIDB4YzgsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHg5NywgMHgwMCwgMHg3MSwgMHg4YiwgMHhjZCwgMHgwMCwgMHgwMCwgMHgzOSwKLQkweDAwLCAweDAxLCAweGIxLCAweDgwLCAweDgwLCAweDAwLCAweDA0LCAweDE5LAotCTB4ODIsIDB4MDAsIDB4MDQsIDB4MTksIDB4YzEsIDB4MjAsIDB4MDQsIDB4MTksCi0JMHhjMywgMHgyMCwgMHgwNCwgMHgxOSwgMHhjMiwgMHgzMCwgMHgwNCwgMHgxOSwKLQkweGNkLCAweDEwLCAweDA0LCAweDE5LCAweGNmLCAweDEwLCAweDA0LCAweDE5LAotCTB4YjAsIDB4MDAsIDB4NzEsIDB4OGIsIDB4ODQsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHg4NiwgMHgwMCwgMHgwNCwgMHgxOSwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGNiLCAweDIwLCAweDA0LCAweDE5LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4Y2QsIDB4MzAsIDB4MDAsIDB4MDksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgwMywgMHgwMiwgMHgwNCwgMHg0OSwgMHgwOCwgMHg0MSwgMHgwMCwgMHgxNCwKLQkweDA0LCAweDUwLCAweDAwLCAweDQ0LCAweDAwLCAweDAwLCAweDYzLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4MDYsIDB4MTksIDB4MDMsIDB4MDAsIDB4MDQsIDB4NDksCi0JMHgwNCwgMHg1MCwgMHgwMCwgMHg0NCwgMHgyMCwgMHgwMSwgMHg2MywgMHg4MCwKLQkweDAwLCAweDAwLCAweDA2LCAweDE5LCAweDAwLCAweDIwLCAweGUyLCAweDhiLAotCTB4MDAsIDB4YzEsIDB4MDAsIDB4ODQsIDB4NDcsIDB4MDAsIDB4NTEsIDB4OGIsCi0JMHhjMCwgMHgyMCwgMHgwMCwgMHgzOSwgMHgwMCwgMHgwMCwgMHg2MywgMHg4MCwKLQkweGMxLCAweGEwLCAweDA0LCAweDE5LCAweDAwLCAweGUxLCAweDAwLCAweDQ0LAotCTB4YmQsIDB4MDAsIDB4NTEsIDB4OGIsIDB4YzAsIDB4MjAsIDB4MDAsIDB4MzksCi0JMHgwMCwgMHgwMCwgMHhiMSwgMHg4MCwgMHhjMSwgMHhhMCwgMHgwNCwgMHgxOSwKLQkweDAzLCAweDAwLCAweDA0LCAweDQ5LCAweDA0LCAweDUwLCAweDAwLCAweDQ0LAotCTB4MDAsIDB4MjAsIDB4NjEsIDB4MGEsIDB4MDAsIDB4MDEsIDB4MDAsIDB4NDUsCi0JMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwYywgMHg4MywgMHgwMCwgMHhjNCwKLQkweDBjLCAweDc4LCAweDA4LCAweDQ0LCAweDA0LCAweDVhLCAweDA4LCAweDQ0LAotCTB4YjIsIDB4MDAsIDB4MDksIDB4NGYsIDB4MTAsIDB4NDIsIDB4MDksIDB4OGUsCi0JMHgwNSwgMHhiMCwgMHhlMCwgMHgxOCwgMHgwNCwgMHgyMywgMHgwMCwgMHg4NCwKLQkweDBjLCAweDAxLCAweDAwLCAweDExLCAweDA4LCAweDA1LCAweDYxLCAweDEwLAotCTB4MDAsIDB4NDksIDB4MDgsIDB4NDQsIDB4MDAsIDB4NDgsIDB4MDgsIDB4NDQsCi0JMHhiMiwgMHgwMCwgMHgwOSwgMHg0ZiwgMHg4MCwgMHgwMCwgMHg3MSwgMHg4YiwKLQkweGMwLCAweDAwLCAweDAwLCAweDgyLCAweDBjLCAweDAxLCAweDMzLCAweDEwLAotCTB4MjgsIDB4MDEsIDB4YTMsIDB4MTAsIDB4MDAsIDB4MDEsIDB4N2EsIDB4ODAsCi0JMHg4YywgMHgwMSwgMHgwMCwgMHg4MCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDIwLCAweDAwLCAweDA0LCAweDE5LCAweDBjLCAweDgzLCAweDAwLCAweGM0LAotCTB4MDUsIDB4YjAsIDB4YzgsIDB4MTgsIDB4MDgsIDB4NDMsIDB4MDAsIDB4YzQsCi0JMHgwMSwgMHgzMCwgMHhjOCwgMHgwYSwgMHgwYywgMHgzOCwgMHgwMCwgMHhjNCwKLQkweDA4LCAweDg4LCAweDAwLCAweDQ0LCAweDBjLCAweDc4LCAweDA4LCAweDQ0LAotCTB4MDQsIDB4NWEsIDB4MDgsIDB4NDQsIDB4MDAsIDB4MDAsIDB4YTMsIDB4MTgsCi0JMHg4MCwgMHgwMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg2MSwgMHhhOCwKLQkweGMzLCAweDIwLCAweDAwLCAweDM5LCAweGMzLCAweDMwLCAweDA0LCAweDE5LAotCTB4MGYsIDB4MTAsIDB4NjEsIDB4MGEsIDB4Y2EsIDB4MzAsIDB4MDQsIDB4MTksCi0JMHgwOSwgMHgwNCwgMHg0MSwgMHhhOCwgMHhlMSwgMHgyMCwgMHgwMCwgMHgzOSwKLQkweGQxLCAweDAwLCAweDA5LCAweDRmLCAweDAwLCAweDA0LCAweDYxLCAweDAyLAotCTB4MDgsIDB4NjMsIDB4MDAsIDB4NDQsIDB4MDMsIDB4MzAsIDB4NDEsIDB4MGEsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHgzOSwgMHhhMywgMHgwMCwgMHgwOSwgMHg0ZiwKLQkweDAwLCAweDA0LCAweDYxLCAweDAyLCAweDAwLCAweDQ4LCAweDA4LCAweDQ0LAotCTB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHhjNCwgMHgwYywgMHg3OCwgMHgwOCwgMHg0NCwKLQkweDA0LCAweDVhLCAweDA4LCAweDQ0LCAweGIyLCAweDAwLCAweDA5LCAweDBmLAotCTB4MTAsIDB4NDAsIDB4MDksIDB4OGUsIDB4MDAsIDB4MDAsIDB4NjgsIDB4NWIsCi0JMHgyMCwgMHgwNCwgMHhiMSwgMHg4MCwgMHgwMiwgMHgwMCwgMHg2MSwgMHg1YiwKLQkweDg4LCAweDAzLCAweDdhLCAweDgwLCAweGFjLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDUsIDB4YjAsIDB4ZTAsIDB4MTgsIDB4MDAsIDB4ZDMsIDB4MDAsIDB4ODQsCi0JMHgwMCwgMHg0OSwgMHgwOCwgMHg0NCwgMHgwMCwgMHg0OCwgMHgwOCwgMHg0NCwKLQkweGIyLCAweDAwLCAweDA5LCAweDBmLCAweDgwLCAweDAwLCAweDcxLCAweDhiLAotCTB4YzAsIDB4MDAsIDB4MDAsIDB4ODIsIDB4MDIsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgwMCwgMHgwOCwgMHgwMCwgMHhjNCwgMHgwNSwgMHhiMCwgMHhjOCwgMHgxOCwKLQkweDBjLCAweDE4LCAweDAwLCAweGM0LCAweDAxLCAweDMwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4MzgsIDB4MDAsIDB4YzQsIDB4MDgsIDB4ODgsIDB4MDAsIDB4NDQsCi0JMHgwYywgMHg3OCwgMHgwOCwgMHg0NCwgMHgwMCwgMHgwMCwgMHg2MSwgMHgxOCwKLQkweDIwLCAweDA1LCAweGIxLCAweDgwLCAweDAwLCAweDAwLCAweDY4LCAweGNiLAotCTB4ODAsIDB4MDAsIDB4MDQsIDB4MTksIDB4MGQsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHhjMywgMHgzMCwgMHgwNCwgMHgxOSwgMHgwYiwgMHgwNCwgMHg0MSwgMHhhOCwKLQkweDA5LCAweDA0LCAweDQxLCAweGE4LCAweGUxLCAweDIwLCAweDAwLCAweDM5LAotCTB4MDgsIDB4MzgsIDB4MDAsIDB4NDQsIDB4MDMsIDB4MzAsIDB4NDEsIDB4MGEsCi0JMHgyMCwgMHgwNCwgMHhiMSwgMHg4MCwgMHgwMCwgMHg0OCwgMHgwOCwgMHg0NCwKLQkweDA4LCAweDg4LCAweDAwLCAweDQ0LCAweDAwLCAweDAwLCAweGIxLCAweDgwLAotCTB4YzIsIDB4MzAsIDB4MDQsIDB4MTksIDB4MGMsIDB4YjgsIDB4MDAsIDB4ZDQsCi0JMHgwZiwgMHgzMCwgMHg2MSwgMHgwYSwgMHgwZCwgMHgzMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweGI4LCAweDAwLCAweGM0LCAweDkzLCAweDAwLCAweDAxLCAweDRmLAotCTB4ZTcsIDB4MDAsIDB4MDEsIDB4NmYsIDB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsCi0JMHgyMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMiwgMHgwMCwgMHg2MSwgMHgwMiwKLQkweDQxLCAweDA0LCAweDA0LCAweDE5LCAweDAyLCAweDA0LCAweDYxLCAweDAyLAotCTB4NDMsIDB4MDQsIDB4MDQsIDB4MzksIDB4Y2YsIDB4MzAsIDB4MDAsIDB4MDksCi0JMHgyMCwgMHgwMCwgMHgwOSwgMHg0OSwgMHgwMCwgMHg1OSwgMHgwMCwgMHg0NCwKLQkweDkzLCAweDAwLCAweDAxLCAweDRmLCAweGU3LCAweDAwLCAweDAxLCAweDZmLAotCTB4MGQsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MjAsIDB4MDAsIDB4NjEsIDB4ODgsCi0JMHhjMiwgMHgwMCwgMHgwMCwgMHg4MiwgMHhjMiwgMHgwMywgMHgwMCwgMHg4MiwKLQkweGNkLCAweDMwLCAweDAwLCAweDA5LCAweDIwLCAweDAwLCAweDA5LCAweDQ5LAotCTB4MGYsIDB4MzAsIDB4NjEsIDB4MGEsIDB4MGQsIDB4MzAsIDB4YzgsIDB4MGEsCi0JMHgwYywgMHg1OCwgMHgwMCwgMHg4NCwgMHgwMiwgMHgzMCwgMHg2MSwgMHgwYSwKLQkweDA1LCAweGIwLCAweGE4LCAweDE4LCAweGMyLCAweDMwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsIDB4OTAsIDB4NDAsIDB4MDksIDB4OGYsCi0JMHgxMiwgMHgwNCwgMHgwOSwgMHg2ZSwgMHgwMywgMHgwMCwgMHgwOSwgMHgwZSwKLQkweDAwLCAweDAxLCAweDcxLCAweDgyLCAweDIwLCAweDAxLCAweDAwLCAweDgwLAotCTB4MDAsIDB4MDAsIDB4NjEsIDB4Y2IsIDB4ODAsIDB4MDQsIDB4YjEsIDB4ODAsCi0JMHgwMCwgMHgwMSwgMHhlMCwgMHg2MCwgMHgwYywgMHhkOCwgMHgwNCwgMHgxNCwKLQkweDAwLCAweDAxLCAweGViLCAweDgwLCAweDQwLCAweDAwLCAweDUyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4NzksIDB4ODAsIDB4YzAsIDB4MDEsIDB4NzEsIDB4YzIsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwOCwgMHgwYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDgwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwYywgMHgyYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDEwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDEsIDB4ZjAsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHhjMCwgMHg4MCwgMHgwOCwgMHgzYSwgMHgwNCwgMHg1NCwKLQkweGMwLCAweDA0LCAweGE4LCAweDgyLCAweDIwLCAweDAwLCAweDcyLCAweDFiLAotCTB4ODAsIDB4MDAsIDB4MDAsIDB4ODAsIDB4YzAsIDB4MDMsIDB4ZjAsIDB4ODIsCi0JMHgyMCwgMHgwMCwgMHhhMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgxMSwKLQkweDQwLCAweDAwLCAweGMyLCAweDhiLCAweDAwLCAweGFhLCAweDAwLCAweGM0LAotCTB4MDAsIDB4MDAsIDB4ZTksIDB4ODAsIDB4MDUsIDB4YjAsIDB4YTgsIDB4MTgsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgyMiwgMHhkMCwgMHgwMSwgMHgwMCwgMHg4MiwKLQkweGYwLCAweDAwLCAweGUyLCAweDFiLCAweDA2LCAweDIwLCAweGE4LCAweDBhLAotCTB4MmQsIDB4MTAsIDB4NjEsIDB4MGEsIDB4ZDEsIDB4MDAsIDB4MDksIDB4MmUsCi0JMHgwMCwgMHgwMSwgMHhhOCwgMHgwMiwgMHgwZSwgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDBjLCAweGJhLCAweDA0LCAweDE0LCAweDBlLCAweDEwLCAweDYxLCAweDBhLAotCTB4MDQsIDB4NGEsIDB4MDAsIDB4NDQsIDB4MGMsIDB4MTAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHg0YSwgMHgwNCwgMHg1NCwgMHgwYywgMHgxMCwgMHg2MSwgMHgwYSwKLQkweGQwLCAweDAxLCAweDAwLCAweDgyLCAweDAwLCAweDEwLCAweGE4LCAweDE4LAotCTB4YTAsIDB4MDAsIDB4MDAsIDB4ODgsIDB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsCi0JMHgwMywgMHgwMCwgMHgwOSwgMHgwZSwgMHg5YSwgMHgwMSwgMHgwMCwgMHg2MCwKLQkweDMyLCAweDAwLCAweDA5LCAweDJlLCAweDAwLCAweDAwLCAweDAwLCAweDQ2LAotCTB4MDAsIDB4MDEsIDB4NzEsIDB4ODIsIDB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsCi0JMHgwMCwgMHgwMCwgMHg2MSwgMHhjYiwgMHg4MCwgMHgyNCwgMHhiMSwgMHhjMCwKLQkweDAwLCAweDMxLCAweGUwLCAweDYwLCAweDBjLCAweGNhLCAweDA0LCAweDE0LAotCTB4MDAsIDB4MDEsIDB4ZWIsIDB4ODAsIDB4NDAsIDB4MDAsIDB4NTIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHg3OSwgMHg4MCwgMHhjMCwgMHgwMSwgMHg3MSwgMHhjMiwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweGRhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4ODAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDBjLCAweGZhLCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MTAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHgwMCwgMHgwMSwgMHhmMCwgMHg4MCwKLQkweDIwLCAweDAwLCAweGMwLCAweDgwLCAweDA4LCAweDI5LCAweDA0LCAweDU0LAotCTB4YzAsIDB4MDQsIDB4YTgsIDB4ODIsIDB4MjAsIDB4MDAsIDB4NzIsIDB4MWIsCi0JMHg4MCwgMHgwMCwgMHgwMCwgMHg4MCwgMHhjMCwgMHgwMywgMHhmMCwgMHg4MiwKLQkweDIwLCAweDAwLCAweGEwLCAweDgwLCAweDAwLCAweDAxLCAweDAwLCAweDExLAotCTB4NDAsIDB4MDAsIDB4YzIsIDB4OGIsIDB4MDAsIDB4MzksIDB4MDAsIDB4YzQsCi0JMHgwMCwgMHgwMCwgMHhlOSwgMHg4MCwgMHgwNSwgMHhiMCwgMHhhOCwgMHgxOCwKLQkweDAwLCAweDAxLCAweGE4LCAweDIyLCAweGQwLCAweDAxLCAweDAwLCAweDgyLAotCTB4YjAsIDB4MDAsIDB4ZTIsIDB4MWIsIDB4MDYsIDB4MjAsIDB4YTgsIDB4MGEsCi0JMHgyZiwgMHgxMCwgMHg2MSwgMHgwYSwgMHhmMSwgMHgwMCwgMHgwOSwgMHgyZSwKLQkweDAwLCAweDAxLCAweGE4LCAweDAyLCAweDBlLCAweDEwLCAweGM4LCAweDBhLAotCTB4MGMsIDB4YTksIDB4MDQsIDB4MTQsIDB4MGUsIDB4MTAsIDB4NjEsIDB4MGEsCi0JMHgwNCwgMHg5OSwgMHgwMCwgMHg0NCwgMHgwYywgMHgxMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDk5LCAweDA0LCAweDU0LCAweDBjLCAweDEwLCAweDYxLCAweDBhLAotCTB4ZDAsIDB4MDEsIDB4MDAsIDB4ODIsIDB4MDAsIDB4MTAsIDB4YTgsIDB4MTgsCi0JMHhhMCwgMHgwMCwgMHgwMCwgMHg4OCwgMHgwMCwgMHgwMSwgMHg3MSwgMHg4MiwKLQkweDlmLCAweDAxLCAweDAwLCAweDYwLCAweDAwLCAweDAwLCAweDAwLCAweDQ2LAotCTB4MDAsIDB4MDAsIDB4MzMsIDB4ODAsIDB4MDAsIDB4MDAsIDB4ODMsIDB4ODAsCi0JMHgyMCwgMHgwMCwgMHg3YSwgMHg4MCwgMHgyMCwgMHgwNywgMHgzMywgMHg4MCwKLQkweDAwLCAweDAwLCAweDgzLCAweDgwLCAweDIwLCAweDA0LCAweDdhLCAweDgwLAotCTB4MjAsIDB4MDEsIDB4MDAsIDB4ODAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4NDYsCi0JMHgwMiwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwNCwgMHgxYiwgMHgwNCwgMHgxNCwKLQkweDAxLCAweDAwLCAweDYxLCAweDBhLCAweDAzLCAweDAwLCAweDQ4LCAweDBhLAotCTB4MGMsIDB4NzksIDB4MDQsIDB4NTQsIDB4YzMsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHhjOSwgMHgwMCwgMHg0NCwgMHgwOCwgMHgwMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweGM5LCAweDA0LCAweDU0LCAweGM4LCAweDAwLCAweDA0LCAweDE5LAotCTB4MGEsIDB4MDAsIDB4NjEsIDB4MGEsIDB4MDksIDB4MDAsIDB4NDgsIDB4MGEsCi0JMHgwYywgMHhlOSwgMHgwNCwgMHg1NCwgMHhjOSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA0LCAweGQ5LCAweDAwLCAweDQ0LCAweDBiLCAweDAwLCAweGM4LCAweDBhLAotCTB4MDQsIDB4ZDksIDB4MDQsIDB4NTQsIDB4Y2IsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHgwMCwgMHg2MSwgMHgwYSwgMHgwNiwgMHgwMCwgMHg0OCwgMHgwYSwKLQkweDBjLCAweGY5LCAweDA0LCAweDU0LCAweGM2LCAweDAwLCAweDA0LCAweDE5LAotCTB4MDQsIDB4MGIsIDB4MDAsIDB4NDQsIDB4MDUsIDB4MDAsIDB4YzgsIDB4MGEsCi0JMHgwNCwgMHgwYiwgMHgwNCwgMHg1NCwgMHhjNSwgMHgwMCwgMHgwNCwgMHgxOSwKLQkweDA3LCAweDAwLCAweDYxLCAweDBhLCAweDBjLCAweDAwLCAweDQ4LCAweDBhLAotCTB4MGMsIDB4MmIsIDB4MDQsIDB4NTQsIDB4Y2MsIDB4MDAsIDB4MDQsIDB4MTksCi0JMHgwNCwgMHgxYiwgMHgwMCwgMHg0NCwgMHgwZSwgMHgwMCwgMHhjOCwgMHgwYSwKLQkweDA0LCAweDFiLCAweDA0LCAweDU0LCAweGNlLCAweDAwLCAweDA0LCAweDE5LAotCTB4MDAsIDB4MDAsIDB4NDAsIDB4NDUsIDB4OTIsIDB4MjAsIDB4NzEsIDB4OGIsCi0JMHhhNiwgMHhjNSwgMHgxMSwgMHgwMAotfTsKZGlmZiAtLWdpdCBhL3NvdW5kL2lzYS9zYi9zYl9taXhlci5jIGIvc291bmQvaXNhL3NiL3NiX21peGVyLmMKaW5kZXggOTFkMTQyMi4uNzNkNDU3MiAxMDA2NDQKLS0tIGEvc291bmQvaXNhL3NiL3NiX21peGVyLmMKKysrIGIvc291bmQvaXNhL3NiL3NiX21peGVyLmMKQEAgLTkyNSw3ICs5MjUsNyBAQAogc3RhdGljIHZvaWQgc2F2ZV9taXhlcihzdHJ1Y3Qgc25kX3NiICpjaGlwLCB1bnNpZ25lZCBjaGFyICpyZWdzLCBpbnQgbnVtX3JlZ3MpCiB7CiAJdW5zaWduZWQgY2hhciAqdmFsID0gY2hpcC0+c2F2ZWRfcmVnczsKLQlzbmRfYXNzZXJ0KG51bV9yZWdzID4gQVJSQVlfU0laRShjaGlwLT5zYXZlZF9yZWdzKSwgcmV0dXJuKTsKKwlzbmRfYXNzZXJ0KG51bV9yZWdzIDw9IEFSUkFZX1NJWkUoY2hpcC0+c2F2ZWRfcmVncyksIHJldHVybik7CiAJZm9yICg7IG51bV9yZWdzOyBudW1fcmVncy0tKQogCQkqdmFsKysgPSBzbmRfc2JtaXhlcl9yZWFkKGNoaXAsICpyZWdzKyspOwogfQpAQCAtOTMzLDcgKzkzMyw3IEBACiBzdGF0aWMgdm9pZCByZXN0b3JlX21peGVyKHN0cnVjdCBzbmRfc2IgKmNoaXAsIHVuc2lnbmVkIGNoYXIgKnJlZ3MsIGludCBudW1fcmVncykKIHsKIAl1bnNpZ25lZCBjaGFyICp2YWwgPSBjaGlwLT5zYXZlZF9yZWdzOwotCXNuZF9hc3NlcnQobnVtX3JlZ3MgPiBBUlJBWV9TSVpFKGNoaXAtPnNhdmVkX3JlZ3MpLCByZXR1cm4pOworCXNuZF9hc3NlcnQobnVtX3JlZ3MgPD0gQVJSQVlfU0laRShjaGlwLT5zYXZlZF9yZWdzKSwgcmV0dXJuKTsKIAlmb3IgKDsgbnVtX3JlZ3M7IG51bV9yZWdzLS0pCiAJCXNuZF9zYm1peGVyX3dyaXRlKGNoaXAsICpyZWdzKyssICp2YWwrKyk7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9pc2Evd2F2ZWZyb250L3dhdmVmcm9udF9zeW50aC5jIGIvc291bmQvaXNhL3dhdmVmcm9udC93YXZlZnJvbnRfc3ludGguYwppbmRleCA5NWVlY2ExLi4wYmI5YjkyIDEwMDY0NAotLS0gYS9zb3VuZC9pc2Evd2F2ZWZyb250L3dhdmVmcm9udF9zeW50aC5jCisrKyBiL3NvdW5kL2lzYS93YXZlZnJvbnQvd2F2ZWZyb250X3N5bnRoLmMKQEAgLTE5MzksNyArMTkzOSw3IEBACiB3YXZlZnJvbnRfZG93bmxvYWRfZmlybXdhcmUgKHNuZF93YXZlZnJvbnRfdCAqZGV2LCBjaGFyICpwYXRoKQogCiB7Ci0JdW5zaWduZWQgY2hhciAqYnVmOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmJ1ZjsKIAlpbnQgbGVuLCBlcnI7CiAJaW50IHNlY3Rpb25fY250X2Rvd25sb2FkZWQgPSAwOwogCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZmlybXdhcmU7CmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL0tjb25maWcgYi9zb3VuZC9taXBzL0tjb25maWcKaW5kZXggNTMxZjhiYS4uYTk4MjNmYSAxMDA2NDQKLS0tIGEvc291bmQvbWlwcy9LY29uZmlnCisrKyBiL3NvdW5kL21pcHMvS2NvbmZpZwpAQCAtMSwxNSArMSwzNCBAQAogIyBBTFNBIE1JUFMgZHJpdmVycwogCi1tZW51ICJBTFNBIE1JUFMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBNSVBTCittZW51Y29uZmlnIFNORF9NSVBTCisJYm9vbCAiTUlQUyBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gTUlQUworCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgb2YgTUlQUyBhcmNoaXRlY3R1cmVzLgorCitpZiBTTkRfTUlQUworCitjb25maWcgU05EX1NHSV9PMgorCXRyaXN0YXRlICJTR0kgTzIgQXVkaW8iCisJZGVwZW5kcyBvbiBTR0lfSVAzMgorICAgICAgICBoZWxwCisgICAgICAgICAgICAgICAgU291bmQgc3VwcG9ydCBmb3IgdGhlIFNHSSBPMiBXb3Jrc3RhdGlvbi4gCisKK2NvbmZpZyBTTkRfU0dJX0hBTDIKKyAgICAgICAgdHJpc3RhdGUgIlNHSSBIQUwyIEF1ZGlvIgorICAgICAgICBkZXBlbmRzIG9uIFNHSV9IQVNfSEFMMgorICAgICAgICBoZWxwCisgICAgICAgICAgICAgICAgU291bmQgc3VwcG9ydCBmb3IgdGhlIFNHSSBJbmR5IGFuZCBJbmRpZ28yIFdvcmtzdGF0aW9uLgorCiAKIGNvbmZpZyBTTkRfQVUxWDAwCiAJdHJpc3RhdGUgIkF1MXgwMCBBQzk3IFBvcnQgRHJpdmVyIgotCWRlcGVuZHMgb24gKFNPQ19BVTEwMDAgfHwgU09DX0FVMTEwMCB8fCBTT0NfQVUxNTAwKSAmJiBTTkQKKwlkZXBlbmRzIG9uIFNPQ19BVTEwMDAgfHwgU09DX0FVMTEwMCB8fCBTT0NfQVUxNTAwCiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBBTFNBIFNvdW5kIGRyaXZlciBmb3IgdGhlIEF1MXgwMCdzIEFDOTcgcG9ydC4KIAotZW5kbWVudQorZW5kaWYJIyBTTkRfTUlQUwogCmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL01ha2VmaWxlIGIvc291bmQvbWlwcy9NYWtlZmlsZQppbmRleCA0N2FmZWQ5Li44NjFlYzBhIDEwMDY0NAotLS0gYS9zb3VuZC9taXBzL01ha2VmaWxlCisrKyBiL3NvdW5kL21pcHMvTWFrZWZpbGUKQEAgLTMsNiArMywxMCBAQAogIwogCiBzbmQtYXUxeDAwLW9ianMgOj0gYXUxeDAwLm8KK3NuZC1zZ2ktbzItb2JqcyA6PSBzZ2lvMmF1ZGlvLm8gYWQxODQzLm8KK3NuZC1zZ2ktaGFsMi1vYmpzIDo9IGhhbDIubwogCiAjIFRvcGxldmVsIE1vZHVsZSBEZXBlbmRlbmN5CiBvYmotJChDT05GSUdfU05EX0FVMVgwMCkgKz0gc25kLWF1MXgwMC5vCitvYmotJChDT05GSUdfU05EX1NHSV9PMikgKz0gc25kLXNnaS1vMi5vCitvYmotJChDT05GSUdfU05EX1NHSV9IQUwyKSArPSBzbmQtc2dpLWhhbDIubwpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9hZDE4NDMuYyBiL3NvdW5kL21pcHMvYWQxODQzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYyNDUxMAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL21pcHMvYWQxODQzLmMKQEAgLTAsMCArMSw1NjEgQEAKKy8qCisgKiAgIEFEMTg0MyBsb3cgbGV2ZWwgZHJpdmVyCisgKgorICogICBDb3B5cmlnaHQgMjAwMyBWaXZpZW4gQ2hhcHBlbGllciA8dml2aWVuLmNoYXBwZWxpZXJAbGludXgtbWlwcy5vcmc+CisgKiAgIENvcHlyaWdodCAyMDA4IFRob21hcyBCb2dlbmRvZXJmZXIgPHRzYm9nZW5kQGFscGhhLmZyYW5rZW4uZGU+CisgKgorICogICBpbnNwaXJlZCBmcm9tIHZ3c25kLmMgKFNHSSBWVyBhdWRpbyBkcml2ZXIpCisgKiAgICAgQ29weXJpZ2h0IDE5OTkgU2lsaWNvbiBHcmFwaGljcywgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKyNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9hZDE4NDMuaD4KKworLyoKKyAqIEFEMTg0MyBiaXRmaWVsZCBkZWZpbml0aW9ucy4gIEFsbCBhcmUgbmFtZWQgYXMgaW4gdGhlIEFEMTg0MyBkYXRhCisgKiBzaGVldCwgd2l0aCBhZDE4NDNfIHByZXBlbmRlZCBhbmQgaW5kaXZpZHVhbCBiaXQgbnVtYmVycyByZW1vdmVkLgorICoKKyAqIEUuZy4sIGJpdHMgTFNTMCB0aHJvdWdoIExTUzIgYmVjb21lIGFkMTg0M19MU1MuCisgKgorICogT25seSB0aGUgYml0ZmllbGRzIHdlIG5lZWQgYXJlIGRlZmluZWQuCisgKi8KKworc3RydWN0IGFkMTg0M19iaXRmaWVsZCB7CisJY2hhciByZWc7CisJY2hhciBsb19iaXQ7CisJY2hhciBuYml0czsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkCisJYWQxODQzX1BETk8gICA9IHsgIDAsIDE0LCAgMSB9LAkvKiBDb252ZXJ0ZXIgUG93ZXItRG93biBGbGFnICovCisJYWQxODQzX0lOSVQgICA9IHsgIDAsIDE1LCAgMSB9LAkvKiBDbG9jayBJbml0aWFsaXphdGlvbiBGbGFnICovCisJYWQxODQzX1JJRyAgICA9IHsgIDIsICAwLCAgNCB9LAkvKiBSaWdodCBBREMgSW5wdXQgR2FpbiAqLworCWFkMTg0M19STUdFICAgPSB7ICAyLCAgNCwgIDEgfSwJLyogUmlnaHQgQURDIE1pYyBHYWluIEVuYWJsZSAqLworCWFkMTg0M19SU1MgICAgPSB7ICAyLCAgNSwgIDMgfSwJLyogUmlnaHQgQURDIFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfTElHICAgID0geyAgMiwgIDgsICA0IH0sCS8qIExlZnQgQURDIElucHV0IEdhaW4gKi8KKwlhZDE4NDNfTE1HRSAgID0geyAgMiwgMTIsICAxIH0sCS8qIExlZnQgQURDIE1pYyBHYWluIEVuYWJsZSAqLworCWFkMTg0M19MU1MgICAgPSB7ICAyLCAxMywgIDMgfSwJLyogTGVmdCBBREMgU291cmNlIFNlbGVjdCAqLworCWFkMTg0M19SRDJNICAgPSB7ICAzLCAgMCwgIDUgfSwJLyogUmlnaHQgREFDIDIgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfUkQyTU0gID0geyAgMywgIDcsICAxIH0sCS8qIFJpZ2h0IERBQyAyIE1peCBNdXRlICovCisJYWQxODQzX0xEMk0gICA9IHsgIDMsICA4LCAgNSB9LAkvKiBMZWZ0IERBQyAyIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX0xEMk1NICA9IHsgIDMsIDE1LCAgMSB9LAkvKiBMZWZ0IERBQyAyIE1peCBNdXRlICovCisJYWQxODQzX1JYMU0gICA9IHsgIDQsICAwLCAgNSB9LAkvKiBSaWdodCBBdXggMSBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19SWDFNTSAgPSB7ICA0LCAgNywgIDEgfSwJLyogUmlnaHQgQXV4IDEgTWl4IE11dGUgKi8KKwlhZDE4NDNfTFgxTSAgID0geyAgNCwgIDgsICA1IH0sCS8qIExlZnQgQXV4IDEgTWl4IEdhaW4vQXR0ZW4gKi8KKwlhZDE4NDNfTFgxTU0gID0geyAgNCwgMTUsICAxIH0sCS8qIExlZnQgQXV4IDEgTWl4IE11dGUgKi8KKwlhZDE4NDNfUlgyTSAgID0geyAgNSwgIDAsICA1IH0sCS8qIFJpZ2h0IEF1eCAyIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX1JYMk1NICA9IHsgIDUsICA3LCAgMSB9LAkvKiBSaWdodCBBdXggMiBNaXggTXV0ZSAqLworCWFkMTg0M19MWDJNICAgPSB7ICA1LCAgOCwgIDUgfSwJLyogTGVmdCBBdXggMiBNaXggR2Fpbi9BdHRlbiAqLworCWFkMTg0M19MWDJNTSAgPSB7ICA1LCAxNSwgIDEgfSwJLyogTGVmdCBBdXggMiBNaXggTXV0ZSAqLworCWFkMTg0M19STUNNICAgPSB7ICA3LCAgMCwgIDUgfSwJLyogUmlnaHQgTWljIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX1JNQ01NICA9IHsgIDcsICA3LCAgMSB9LAkvKiBSaWdodCBNaWMgTWl4IE11dGUgKi8KKwlhZDE4NDNfTE1DTSAgID0geyAgNywgIDgsICA1IH0sCS8qIExlZnQgTWljIE1peCBHYWluL0F0dGVuICovCisJYWQxODQzX0xNQ01NICA9IHsgIDcsIDE1LCAgMSB9LAkvKiBMZWZ0IE1pYyBNaXggTXV0ZSAqLworCWFkMTg0M19IUE9TICAgPSB7ICA4LCAgNCwgIDEgfSwJLyogSGVhZHBob25lIE91dHB1dCBWb2x0YWdlIFN3aW5nICovCisJYWQxODQzX0hQT00gICA9IHsgIDgsICA1LCAgMSB9LAkvKiBIZWFkcGhvbmUgT3V0cHV0IE11dGUgKi8KKwlhZDE4NDNfTVBPTSAgID0geyAgOCwgIDYsICAxIH0sCS8qIE1vbm8gT3V0cHV0IE11dGUgKi8KKwlhZDE4NDNfUkRBMUcgID0geyAgOSwgIDAsICA2IH0sCS8qIFJpZ2h0IERBQzEgQW5hbG9nL0RpZ2l0YWwgR2FpbiAqLworCWFkMTg0M19SREExR00gPSB7ICA5LCAgNywgIDEgfSwJLyogUmlnaHQgREFDMSBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19MREExRyAgPSB7ICA5LCAgOCwgIDYgfSwJLyogTGVmdCBEQUMxIEFuYWxvZy9EaWdpdGFsIEdhaW4gKi8KKwlhZDE4NDNfTERBMUdNID0geyAgOSwgMTUsICAxIH0sCS8qIExlZnQgREFDMSBBbmFsb2cgTXV0ZSAqLworCWFkMTg0M19SREEyRyAgPSB7IDEwLCAgMCwgIDYgfSwJLyogUmlnaHQgREFDMiBBbmFsb2cvRGlnaXRhbCBHYWluICovCisJYWQxODQzX1JEQTJHTSA9IHsgMTAsICA3LCAgMSB9LAkvKiBSaWdodCBEQUMyIEFuYWxvZyBNdXRlICovCisJYWQxODQzX0xEQTJHICA9IHsgMTAsICA4LCAgNiB9LAkvKiBMZWZ0IERBQzIgQW5hbG9nL0RpZ2l0YWwgR2FpbiAqLworCWFkMTg0M19MREEyR00gPSB7IDEwLCAxNSwgIDEgfSwJLyogTGVmdCBEQUMyIEFuYWxvZyBNdXRlICovCisJYWQxODQzX1JEQTFBTSA9IHsgMTEsICA3LCAgMSB9LAkvKiBSaWdodCBEQUMxIERpZ2l0YWwgTXV0ZSAqLworCWFkMTg0M19MREExQU0gPSB7IDExLCAxNSwgIDEgfSwJLyogTGVmdCBEQUMxIERpZ2l0YWwgTXV0ZSAqLworCWFkMTg0M19SREEyQU0gPSB7IDEyLCAgNywgIDEgfSwJLyogUmlnaHQgREFDMiBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfTERBMkFNID0geyAxMiwgMTUsICAxIH0sCS8qIExlZnQgREFDMiBEaWdpdGFsIE11dGUgKi8KKwlhZDE4NDNfQURMQyAgID0geyAxNSwgIDAsICAyIH0sCS8qIEFEQyBMZWZ0IFNhbXBsZSBSYXRlIFNvdXJjZSAqLworCWFkMTg0M19BRFJDICAgPSB7IDE1LCAgMiwgIDIgfSwJLyogQURDIFJpZ2h0IFNhbXBsZSBSYXRlIFNvdXJjZSAqLworCWFkMTg0M19EQTFDICAgPSB7IDE1LCAgOCwgIDIgfSwJLyogREFDMSBTYW1wbGUgUmF0ZSBTb3VyY2UgKi8KKwlhZDE4NDNfREEyQyAgID0geyAxNSwgMTAsICAyIH0sCS8qIERBQzIgU2FtcGxlIFJhdGUgU291cmNlICovCisJYWQxODQzX0MxQyAgICA9IHsgMTcsICAwLCAxNiB9LAkvKiBDbG9jayAxIFNhbXBsZSBSYXRlIFNlbGVjdCAqLworCWFkMTg0M19DMkMgICAgPSB7IDIwLCAgMCwgMTYgfSwJLyogQ2xvY2sgMiBTYW1wbGUgUmF0ZSBTZWxlY3QgKi8KKwlhZDE4NDNfQzNDICAgID0geyAyMywgIDAsIDE2IH0sCS8qIENsb2NrIDMgU2FtcGxlIFJhdGUgU2VsZWN0ICovCisJYWQxODQzX0RBQURMICA9IHsgMjUsICA0LCAgMiB9LAkvKiBEaWdpdGFsIEFEQyBMZWZ0IFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfREFBRFIgID0geyAyNSwgIDYsICAyIH0sCS8qIERpZ2l0YWwgQURDIFJpZ2h0IFNvdXJjZSBTZWxlY3QgKi8KKwlhZDE4NDNfREFNSVggID0geyAyNSwgMTQsICAxIH0sCS8qIERBQyBEaWdpdGFsIE1peCBFbmFibGUgKi8KKwlhZDE4NDNfRFJTRkxUID0geyAyNSwgMTUsICAxIH0sCS8qIERpZ2l0YWwgUmVhbXBsZXIgRmlsdGVyIE1vZGUgKi8KKwlhZDE4NDNfQURMRiAgID0geyAyNiwgIDAsICAyIH0sIC8qIEFEQyBMZWZ0IENoYW5uZWwgRGF0YSBGb3JtYXQgKi8KKwlhZDE4NDNfQURSRiAgID0geyAyNiwgIDIsICAyIH0sIC8qIEFEQyBSaWdodCBDaGFubmVsIERhdGEgRm9ybWF0ICovCisJYWQxODQzX0FEVExLICA9IHsgMjYsICA0LCAgMSB9LAkvKiBBREMgVHJhbnNtaXQgTG9jayBNb2RlIFNlbGVjdCAqLworCWFkMTg0M19TQ0YgICAgPSB7IDI2LCAgNywgIDEgfSwJLyogU0NMSyBGcmVxdWVuY3kgU2VsZWN0ICovCisJYWQxODQzX0RBMUYgICA9IHsgMjYsICA4LCAgMiB9LAkvKiBEQUMxIERhdGEgRm9ybWF0IFNlbGVjdCAqLworCWFkMTg0M19EQTJGICAgPSB7IDI2LCAxMCwgIDIgfSwJLyogREFDMiBEYXRhIEZvcm1hdCBTZWxlY3QgKi8KKwlhZDE4NDNfREExU00gID0geyAyNiwgMTQsICAxIH0sCS8qIERBQzEgU3RlcmVvL01vbm8gTW9kZSBTZWxlY3QgKi8KKwlhZDE4NDNfREEyU00gID0geyAyNiwgMTUsICAxIH0sCS8qIERBQzIgU3RlcmVvL01vbm8gTW9kZSBTZWxlY3QgKi8KKwlhZDE4NDNfQURMRU4gID0geyAyNywgIDAsICAxIH0sCS8qIEFEQyBMZWZ0IENoYW5uZWwgRW5hYmxlICovCisJYWQxODQzX0FEUkVOICA9IHsgMjcsICAxLCAgMSB9LAkvKiBBREMgUmlnaHQgQ2hhbm5lbCBFbmFibGUgKi8KKwlhZDE4NDNfQUFNRU4gID0geyAyNywgIDQsICAxIH0sCS8qIEFuYWxvZyB0byBBbmFsb2cgTWl4IEVuYWJsZSAqLworCWFkMTg0M19BTkFFTiAgPSB7IDI3LCAgNywgIDEgfSwJLyogQW5hbG9nIENoYW5uZWwgRW5hYmxlICovCisJYWQxODQzX0RBMUVOICA9IHsgMjcsICA4LCAgMSB9LAkvKiBEQUMxIEVuYWJsZSAqLworCWFkMTg0M19EQTJFTiAgPSB7IDI3LCAgOSwgIDEgfSwJLyogREFDMiBFbmFibGUgKi8KKwlhZDE4NDNfRERNRU4gID0geyAyNywgMTIsICAxIH0sCS8qIERBQzIgdG8gREFDMSBNaXggIEVuYWJsZSAqLworCWFkMTg0M19DMUVOICAgPSB7IDI4LCAxMSwgIDEgfSwJLyogQ2xvY2sgR2VuZXJhdG9yIDEgRW5hYmxlICovCisJYWQxODQzX0MyRU4gICA9IHsgMjgsIDEyLCAgMSB9LAkvKiBDbG9jayBHZW5lcmF0b3IgMiBFbmFibGUgKi8KKwlhZDE4NDNfQzNFTiAgID0geyAyOCwgMTMsICAxIH0sCS8qIENsb2NrIEdlbmVyYXRvciAzIEVuYWJsZSAqLworCWFkMTg0M19QRE5JICAgPSB7IDI4LCAxNSwgIDEgfTsJLyogQ29udmVydGVyIFBvd2VyIERvd24gKi8KKworLyoKKyAqIFRoZSB2YXJpb3VzIHJlZ2lzdGVycyBvZiB0aGUgQUQxODQzIHVzZSB0aHJlZSBkaWZmZXJlbnQgZm9ybWF0cyBmb3IKKyAqIHNwZWNpZnlpbmcgZ2Fpbi4gIFRoZSBhZDE4NDNfZ2FpbiBzdHJ1Y3R1cmUgcGFyYW1ldGVyaXplcyB0aGUKKyAqIGZvcm1hdHMuCisgKi8KKworc3RydWN0IGFkMTg0M19nYWluIHsKKwlpbnQJbmVnYXRpdmU7CQkvKiBub256ZXJvIGlmIGdhaW4gaXMgbmVnYXRpdmUuICovCisJY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqbGZpZWxkOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKnJmaWVsZDsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpsbXV0ZTsKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICpybXV0ZTsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fUkVDTEVWID0geworCS5uZWdhdGl2ZSA9IDAsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MSUcsCisJLnJmaWVsZCAgID0gJmFkMTg0M19SSUcKK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX0xJTkUgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xYMU0sCisJLnJmaWVsZCAgID0gJmFkMTg0M19SWDFNLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTFgxTU0sCisJLnJtdXRlICAgID0gJmFkMTg0M19SWDFNTQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fTElORV8yID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MREEyRywKKwkucmZpZWxkICAgPSAmYWQxODQzX1JEQTJHLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTERBMkdNLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUkRBMkdNCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiBhZDE4NDNfZ2Fpbl9NSUMgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xNQ00sCisJLnJmaWVsZCAgID0gJmFkMTg0M19STUNNLAorCS5sbXV0ZSAgICA9ICZhZDE4NDNfTE1DTU0sCisJLnJtdXRlICAgID0gJmFkMTg0M19STUNNTQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gYWQxODQzX2dhaW5fUENNXzAgPSB7CisJLm5lZ2F0aXZlID0gMSwKKwkubGZpZWxkICAgPSAmYWQxODQzX0xEQTFHLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUkRBMUcsCisJLmxtdXRlICAgID0gJmFkMTg0M19MREExR00sCisJLnJtdXRlICAgID0gJmFkMTg0M19SREExR00KK307CitzdGF0aWMgY29uc3Qgc3RydWN0IGFkMTg0M19nYWluIGFkMTg0M19nYWluX1BDTV8xID0geworCS5uZWdhdGl2ZSA9IDEsCisJLmxmaWVsZCAgID0gJmFkMTg0M19MRDJNLAorCS5yZmllbGQgICA9ICZhZDE4NDNfUkQyTSwKKwkubG11dGUgICAgPSAmYWQxODQzX0xEMk1NLAorCS5ybXV0ZSAgICA9ICZhZDE4NDNfUkQyTU0KK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmFkMTg0M19nYWluW0FEMTg0M19HQUlOX1NJWkVdID0KK3sKKwkmYWQxODQzX2dhaW5fUkVDTEVWLAorCSZhZDE4NDNfZ2Fpbl9MSU5FLAorCSZhZDE4NDNfZ2Fpbl9MSU5FXzIsCisJJmFkMTg0M19nYWluX01JQywKKwkmYWQxODQzX2dhaW5fUENNXzAsCisJJmFkMTg0M19nYWluX1BDTV8xLAorfTsKKworLyogcmVhZCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhbiBBRDE4NDMgYml0ZmllbGQuICovCisKK3N0YXRpYyBpbnQgYWQxODQzX3JlYWRfYml0cyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkJICAgIGNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZpZWxkKQoreworCWludCB3OworCisJdyA9IGFkMTg0My0+cmVhZChhZDE4NDMtPmNoaXAsIGZpZWxkLT5yZWcpOworCXJldHVybiB3ID4+IGZpZWxkLT5sb19iaXQgJiAoKDEgPDwgZmllbGQtPm5iaXRzKSAtIDEpOworfQorCisvKgorICogd3JpdGUgYSBuZXcgdmFsdWUgdG8gYW4gQUQxODQzIGJpdGZpZWxkIGFuZCByZXR1cm4gdGhlIG9sZCB2YWx1ZS4KKyAqLworCitzdGF0aWMgaW50IGFkMTg0M193cml0ZV9iaXRzKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZpZWxkLAorCQkJICAgICBpbnQgbmV3dmFsKQoreworCWludCB3LCBtYXNrLCBvbGR2YWwsIG5ld2JpdHM7CisKKwl3ID0gYWQxODQzLT5yZWFkKGFkMTg0My0+Y2hpcCwgZmllbGQtPnJlZyk7CisJbWFzayA9ICgoMSA8PCBmaWVsZC0+bmJpdHMpIC0gMSkgPDwgZmllbGQtPmxvX2JpdDsKKwlvbGR2YWwgPSAodyAmIG1hc2spID4+IGZpZWxkLT5sb19iaXQ7CisJbmV3Yml0cyA9IChuZXd2YWwgPDwgZmllbGQtPmxvX2JpdCkgJiBtYXNrOworCXcgPSAodyAmIH5tYXNrKSB8IG5ld2JpdHM7CisJYWQxODQzLT53cml0ZShhZDE4NDMtPmNoaXAsIGZpZWxkLT5yZWcsIHcpOworCisJcmV0dXJuIG9sZHZhbDsKK30KKworLyoKKyAqIGFkMTg0M19yZWFkX211bHRpIHJlYWRzIG11bHRpcGxlIGJpdGZpZWxkcyBmcm9tIHRoZSBzYW1lIEFEMTg0MworICogcmVnaXN0ZXIuICBJdCB1c2VzIGEgc2luZ2xlIHJlYWQgY3ljbGUgdG8gZG8gaXQuICAoUmVhZGluZyB0aGUKKyAqIGFkMTg0MyByZXF1aXJlcyAyNTYgYml0IHRpbWVzIGF0IDEyLjI4OCBNSHosIG9yIG5lYXJseSAyMAorICogbWljcm9zZWNvbmRzLikKKyAqCisgKiBDYWxsZWQgbGlrZSB0aGlzLgorICoKKyAqICBhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIG5maWVsZHMsCisgKgkJICAgICAgJmFkMTg0M19GSUVMRDEsICZ2YWwxLAorICoJCSAgICAgICZhZDE4NDNfRklFTEQyLCAmdmFsMiwgLi4uKTsKKyAqLworCitzdGF0aWMgdm9pZCBhZDE4NDNfcmVhZF9tdWx0aShzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgYXJnY291bnQsIC4uLikKK3sKKwl2YV9saXN0IGFwOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZwOworCWludCB3ID0gMCwgbWFzaywgKnZhbHVlLCByZWcgPSAtMTsKKworCXZhX3N0YXJ0KGFwLCBhcmdjb3VudCk7CisJd2hpbGUgKC0tYXJnY291bnQgPj0gMCkgeworCQlmcCA9IHZhX2FyZyhhcCwgY29uc3Qgc3RydWN0IGFkMTg0M19iaXRmaWVsZCAqKTsKKwkJdmFsdWUgPSB2YV9hcmcoYXAsIGludCAqKTsKKwkJaWYgKHJlZyA9PSAtMSkgeworCQkJcmVnID0gZnAtPnJlZzsKKwkJCXcgPSBhZDE4NDMtPnJlYWQoYWQxODQzLT5jaGlwLCByZWcpOworCQl9CisKKwkJbWFzayA9ICgxIDw8IGZwLT5uYml0cykgLSAxOworCQkqdmFsdWUgPSB3ID4+IGZwLT5sb19iaXQgJiBtYXNrOworCX0KKwl2YV9lbmQoYXApOworfQorCisvKgorICogYWQxODQzX3dyaXRlX211bHRpIHN0b3JlcyBtdWx0aXBsZSBiaXRmaWVsZHMgaW50byB0aGUgc2FtZSBBRDE4NDMKKyAqIHJlZ2lzdGVyLiAgSXQgdXNlcyBvbmUgcmVhZCBhbmQgb25lIHdyaXRlIGN5Y2xlIHRvIGRvIGl0LgorICoKKyAqIENhbGxlZCBsaWtlIHRoaXMuCisgKgorICogIGFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIG5maWVsZHMsCisgKgkJICAgICAgICZhZDE4NDNfRklFTEQxLCB2YWwxLAorICoJCSAgICAgICAmYWQxODQzX0ZJRUxGMiwgdmFsMiwgLi4uKTsKKyAqLworCitzdGF0aWMgdm9pZCBhZDE4NDNfd3JpdGVfbXVsdGkoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IGFyZ2NvdW50LCAuLi4pCit7CisJdmFfbGlzdCBhcDsKKwlpbnQgcmVnOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfYml0ZmllbGQgKmZwOworCWludCB2YWx1ZTsKKwlpbnQgdywgbSwgbWFzaywgYml0czsKKworCW1hc2sgPSAwOworCWJpdHMgPSAwOworCXJlZyA9IC0xOworCisJdmFfc3RhcnQoYXAsIGFyZ2NvdW50KTsKKwl3aGlsZSAoLS1hcmdjb3VudCA+PSAwKSB7CisJCWZwID0gdmFfYXJnKGFwLCBjb25zdCBzdHJ1Y3QgYWQxODQzX2JpdGZpZWxkICopOworCQl2YWx1ZSA9IHZhX2FyZyhhcCwgaW50KTsKKwkJaWYgKHJlZyA9PSAtMSkKKwkJCXJlZyA9IGZwLT5yZWc7CisJCWVsc2UKKwkJCUJVR19PTihyZWcgIT0gZnAtPnJlZyk7CisJCW0gPSAoKDEgPDwgZnAtPm5iaXRzKSAtIDEpIDw8IGZwLT5sb19iaXQ7CisJCW1hc2sgfD0gbTsKKwkJYml0cyB8PSAodmFsdWUgPDwgZnAtPmxvX2JpdCkgJiBtOworCX0KKwl2YV9lbmQoYXApOworCisJaWYgKH5tYXNrICYgMHhGRkZGKQorCQl3ID0gYWQxODQzLT5yZWFkKGFkMTg0My0+Y2hpcCwgcmVnKTsKKwllbHNlCisJCXcgPSAwOworCXcgPSAodyAmIH5tYXNrKSB8IGJpdHM7CisJYWQxODQzLT53cml0ZShhZDE4NDMtPmNoaXAsIHJlZywgdyk7Cit9CisKK2ludCBhZDE4NDNfZ2V0X2dhaW5fbWF4KHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBpZCkKK3sKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmdwID0gYWQxODQzX2dhaW5baWRdOworCWludCByZXQ7CisKKwlyZXQgPSAoMSA8PCBncC0+bGZpZWxkLT5uYml0cyk7CisJaWYgKCFncC0+bG11dGUpCisJCXJldCAtPSAxOworCXJldHVybiByZXQ7Cit9CisKKy8qCisgKiBhZDE4NDNfZ2V0X2dhaW4gcmVhZHMgdGhlIHNwZWNpZmllZCByZWdpc3RlciBhbmQgZXh0cmFjdHMgdGhlIGdhaW4gdmFsdWUKKyAqIHVzaW5nIHRoZSBzdXBwbGllZCBnYWluIHR5cGUuCisgKi8KKworaW50IGFkMTg0M19nZXRfZ2FpbihzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCBpbnQgaWQpCit7CisJaW50IGxnLCByZywgbG0sIHJtOworCWNvbnN0IHN0cnVjdCBhZDE4NDNfZ2FpbiAqZ3AgPSBhZDE4NDNfZ2FpbltpZF07CisJdW5zaWduZWQgc2hvcnQgbWFzayA9ICgxIDw8IGdwLT5sZmllbGQtPm5iaXRzKSAtIDE7CisKKwlhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIDIsIGdwLT5sZmllbGQsICZsZywgZ3AtPnJmaWVsZCwgJnJnKTsKKwlpZiAoZ3AtPm5lZ2F0aXZlKSB7CisJCWxnID0gbWFzayAtIGxnOworCQlyZyA9IG1hc2sgLSByZzsKKwl9CisJaWYgKGdwLT5sbXV0ZSkgeworCQlhZDE4NDNfcmVhZF9tdWx0aShhZDE4NDMsIDIsIGdwLT5sbXV0ZSwgJmxtLCBncC0+cm11dGUsICZybSk7CisJCWlmIChsbSkKKwkJCWxnID0gMDsKKwkJaWYgKHJtKQorCQkJcmcgPSAwOworCX0KKwlyZXR1cm4gbGcgPDwgMCB8IHJnIDw8IDg7Cit9CisKKy8qCisgKiBTZXQgYW4gYXVkaW8gY2hhbm5lbCdzIGdhaW4uCisgKgorICogUmV0dXJucyB0aGUgbmV3IGdhaW4sIHdoaWNoIG1heSBiZSBsb3dlciB0aGFuIHRoZSBvbGQgZ2Fpbi4KKyAqLworCitpbnQgYWQxODQzX3NldF9nYWluKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMsIGludCBpZCwgaW50IG5ld3ZhbCkKK3sKKwljb25zdCBzdHJ1Y3QgYWQxODQzX2dhaW4gKmdwID0gYWQxODQzX2dhaW5baWRdOworCXVuc2lnbmVkIHNob3J0IG1hc2sgPSAoMSA8PCBncC0+bGZpZWxkLT5uYml0cykgLSAxOworCisJaW50IGxnID0gKG5ld3ZhbCA+PiAwKSAmIG1hc2s7CisJaW50IHJnID0gKG5ld3ZhbCA+PiA4KSAmIG1hc2s7CisJaW50IGxtID0gKGxnID09IDApID8gMSA6IDA7CisJaW50IHJtID0gKHJnID09IDApID8gMSA6IDA7CisKKwlpZiAoZ3AtPm5lZ2F0aXZlKSB7CisJCWxnID0gbWFzayAtIGxnOworCQlyZyA9IG1hc2sgLSByZzsKKwl9CisJaWYgKGdwLT5sbXV0ZSkKKwkJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgZ3AtPmxtdXRlLCBsbSwgZ3AtPnJtdXRlLCBybSk7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgZ3AtPmxmaWVsZCwgbGcsIGdwLT5yZmllbGQsIHJnKTsKKwlyZXR1cm4gYWQxODQzX2dldF9nYWluKGFkMTg0MywgaWQpOworfQorCisvKiBSZXR1cm5zIHRoZSBjdXJyZW50IHJlY29yZGluZyBzb3VyY2UgKi8KKworaW50IGFkMTg0M19nZXRfcmVjc3JjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJaW50IHZhbCA9IGFkMTg0M19yZWFkX2JpdHMoYWQxODQzLCAmYWQxODQzX0xTUyk7CisKKwlpZiAodmFsIDwgMCB8fCB2YWwgPiAyKSB7CisJCXZhbCA9IDI7CisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsCisJCQkJICAgJmFkMTg0M19MU1MsIHZhbCwgJmFkMTg0M19SU1MsIHZhbCk7CisJfQorCXJldHVybiB2YWw7Cit9CisKKy8qCisgKiBTZXQgcmVjb3JkaW5nIHNvdXJjZS4KKyAqCisgKiBSZXR1cm5zIG5ld3NyYyBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4KKyAqLworCitpbnQgYWQxODQzX3NldF9yZWNzcmMoc3RydWN0IHNuZF9hZDE4NDMgKmFkMTg0MywgaW50IG5ld3NyYykKK3sKKwlpZiAobmV3c3JjIDwgMCB8fCBuZXdzcmMgPiAyKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsICZhZDE4NDNfTFNTLCBuZXdzcmMsICZhZDE4NDNfUlNTLCBuZXdzcmMpOworCXJldHVybiBuZXdzcmM7Cit9CisKKy8qIFNldHVwIGFkMTg0MyBmb3IgRC9BIGNvbnZlcnNpb24uICovCisKK3ZvaWQgYWQxODQzX3NldHVwX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgaWQsCisJCSAgICAgIHVuc2lnbmVkIGludCBmcmFtZXJhdGUsCisJCSAgICAgIHNuZF9wY21fZm9ybWF0X3QgZm10LAorCQkgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMpCit7CisJaW50IGFkX2ZtdCA9IDAsIGFkX21vZGUgPSAwOworCisJc3dpdGNoIChmbXQpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzg6CisJCWFkX2ZtdCA9IDA7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9VODoKKwkJYWRfZm10ID0gMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToKKwkJYWRfZm10ID0gMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoKKwkJYWRfZm10ID0gMjsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX0FfTEFXOgorCQlhZF9mbXQgPSAzOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlzd2l0Y2ggKGNoYW5uZWxzKSB7CisJY2FzZSAyOgorCQlhZF9tb2RlID0gMDsKKwkJYnJlYWs7CisJY2FzZSAxOgorCQlhZF9tb2RlID0gMTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJaWYgKGlkKSB7CisJCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19DMkMsIGZyYW1lcmF0ZSk7CisJCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDIsCisJCQkJICAgJmFkMTg0M19EQTJTTSwgYWRfbW9kZSwKKwkJCQkgICAmYWQxODQzX0RBMkYsIGFkX2ZtdCk7CisJfSBlbHNlIHsKKwkJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0MxQywgZnJhbWVyYXRlKTsKKwkJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwKKwkJCQkgICAmYWQxODQzX0RBMVNNLCBhZF9tb2RlLAorCQkJCSAgICZhZDE4NDNfREExRiwgYWRfZm10KTsKKwl9Cit9CisKK3ZvaWQgYWQxODQzX3NodXRkb3duX2RhYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLCB1bnNpZ25lZCBpbnQgaWQpCit7CisJaWYgKGlkKQorCQlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfREEyRiwgMSk7CisJZWxzZQorCQlhZDE4NDNfd3JpdGVfYml0cyhhZDE4NDMsICZhZDE4NDNfREExRiwgMSk7Cit9CisKK3ZvaWQgYWQxODQzX3NldHVwX2FkYyhzdHJ1Y3Qgc25kX2FkMTg0MyAqYWQxODQzLAorCQkgICAgICB1bnNpZ25lZCBpbnQgZnJhbWVyYXRlLAorCQkgICAgICBzbmRfcGNtX2Zvcm1hdF90IGZtdCwKKwkJICAgICAgdW5zaWduZWQgaW50IGNoYW5uZWxzKQoreworCWludCBkYV9mbXQgPSAwOworCisJc3dpdGNoIChmbXQpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzg6CWRhX2ZtdCA9IDA7IGJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9VODoJZGFfZm10ID0gMDsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRToJZGFfZm10ID0gMTsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX01VX0xBVzoJZGFfZm10ID0gMjsgYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX0FfTEFXOglkYV9mbXQgPSAzOyBicmVhazsKKwlkZWZhdWx0OgkJYnJlYWs7CisJfQorCisJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX0MzQywgZnJhbWVyYXRlKTsKKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAyLAorCQkJICAgJmFkMTg0M19BRExGLCBkYV9mbXQsICZhZDE4NDNfQURSRiwgZGFfZm10KTsKK30KKwordm9pZCBhZDE4NDNfc2h1dGRvd25fYWRjKHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJLyogbm90aGluZyB0byBkbyAqLworfQorCisvKgorICogRnVsbHkgaW5pdGlhbGl6ZSB0aGUgYWQxODQzLiAgQXMgZGVzY3JpYmVkIGluIHRoZSBBRDE4NDMgZGF0YQorICogc2hlZXQsIHNlY3Rpb24gIlNUQVJULVVQIFNFUVVFTkNFIi4gIFRoZSBudW1iZXJlZCBjb21tZW50cyBhcmUKKyAqIHN1YnNlY3Rpb24gaGVhZGluZ3MgZnJvbSB0aGUgZGF0YSBzaGVldC4gIFNlZSB0aGUgZGF0YSBzaGVldCwgcGFnZXMKKyAqIDUyLTU0LCBmb3IgbW9yZSBpbmZvLgorICoKKyAqIHJldHVybiAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLiAgKi8KKworaW50IGFkMTg0M19pbml0KHN0cnVjdCBzbmRfYWQxODQzICphZDE4NDMpCit7CisJdW5zaWduZWQgbG9uZyBsYXRlcjsKKworCWlmIChhZDE4NDNfcmVhZF9iaXRzKGFkMTg0MywgJmFkMTg0M19JTklUKSAhPSAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYWQxODQzOiBBRDE4NDMgd29uJ3QgaW5pdGlhbGl6ZVxuIik7CisJCXJldHVybiAtRUlPOworCX0KKworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19TQ0YsIDEpOworCisJLyogNC4gUHV0IHRoZSBjb252ZXJzaW9uIHJlc291cmNlcyBpbnRvIHN0YW5kYnkuICovCisJYWQxODQzX3dyaXRlX2JpdHMoYWQxODQzLCAmYWQxODQzX1BETkksIDApOworCWxhdGVyID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoNTAwKTsKKworCXdoaWxlIChhZDE4NDNfcmVhZF9iaXRzKGFkMTg0MywgJmFkMTg0M19QRE5PKSkgeworCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBsYXRlcikpIHsKKwkJCXByaW50ayhLRVJOX0VSUgorCQkJICAgICAgICJhZDE4NDM6IEFEMTg0MyB3b24ndCBwb3dlciB1cFxuIik7CisJCQlyZXR1cm4gLUVJTzsKKwkJfQorCQlzY2hlZHVsZV90aW1lb3V0X2ludGVycnVwdGlibGUoNSk7CisJfQorCisJLyogNS4gUG93ZXIgdXAgdGhlIGNsb2NrIGdlbmVyYXRvcnMgYW5kIGVuYWJsZSBjbG9jayBvdXRwdXQgcGlucy4gKi8KKwlhZDE4NDNfd3JpdGVfbXVsdGkoYWQxODQzLCAzLAorCQkJICAgJmFkMTg0M19DMUVOLCAxLAorCQkJICAgJmFkMTg0M19DMkVOLCAxLAorCQkJICAgJmFkMTg0M19DM0VOLCAxKTsKKworCS8qIDYuIENvbmZpZ3VyZSBjb252ZXJzaW9uIHJlc291cmNlcyB3aGlsZSB0aGV5IGFyZSBpbiBzdGFuZGJ5LiAqLworCisJLyogREFDMS8yIHVzZSBjbG9jayAxLzIgYXMgc291cmNlLCBBREMgdXNlcyBjbG9jayAzLiAgQWx3YXlzLiAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDQsCisJCQkgICAmYWQxODQzX0RBMUMsIDEsCisJCQkgICAmYWQxODQzX0RBMkMsIDIsCisJCQkgICAmYWQxODQzX0FETEMsIDMsCisJCQkgICAmYWQxODQzX0FEUkMsIDMpOworCisJLyogNy4gRW5hYmxlIGNvbnZlcnNpb24gcmVzb3VyY2VzLiAqLworCWFkMTg0M193cml0ZV9iaXRzKGFkMTg0MywgJmFkMTg0M19BRFRMSywgMSk7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgNywKKwkJCSAgICZhZDE4NDNfQU5BRU4sIDEsCisJCQkgICAmYWQxODQzX0FBTUVOLCAxLAorCQkJICAgJmFkMTg0M19EQTFFTiwgMSwKKwkJCSAgICZhZDE4NDNfREEyRU4sIDEsCisJCQkgICAmYWQxODQzX0RETUVOLCAxLAorCQkJICAgJmFkMTg0M19BRExFTiwgMSwKKwkJCSAgICZhZDE4NDNfQURSRU4sIDEpOworCisJLyogOC4gQ29uZmlndXJlIGNvbnZlcnNpb24gcmVzb3VyY2VzIHdoaWxlIHRoZXkgYXJlIGVuYWJsZWQuICovCisKKwkvKiBzZXQgZ2FpbiB0byAwIGZvciBhbGwgY2hhbm5lbHMgKi8KKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9SRUNMRVYsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX0xJTkUsIDApOworCWFkMTg0M19zZXRfZ2FpbihhZDE4NDMsIEFEMTg0M19HQUlOX0xJTkVfMiwgMCk7CisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fTUlDLCAwKTsKKwlhZDE4NDNfc2V0X2dhaW4oYWQxODQzLCBBRDE4NDNfR0FJTl9QQ01fMCwgMCk7CisJYWQxODQzX3NldF9nYWluKGFkMTg0MywgQUQxODQzX0dBSU5fUENNXzEsIDApOworCisJLyogVW5tdXRlIGFsbCBjaGFubmVscy4gKi8KKwkvKiBEQUMxICovCisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MREExR00sIDAsICZhZDE4NDNfUkRBMUdNLCAwKTsKKwkvKiBEQUMyICovCisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MREEyR00sIDAsICZhZDE4NDNfUkRBMkdNLCAwKTsKKworCS8qIFNldCBkZWZhdWx0IHJlY29yZGluZyBzb3VyY2UgdG8gTGluZSBJbiBhbmQgc2V0CisJICogbWljIGdhaW4gdG8gKzIwIGRCLgorCSAqLworCWFkMTg0M19zZXRfcmVjc3JjKGFkMTg0MywgMik7CisJYWQxODQzX3dyaXRlX211bHRpKGFkMTg0MywgMiwgJmFkMTg0M19MTUdFLCAxLCAmYWQxODQzX1JNR0UsIDEpOworCisJLyogU2V0IFNwZWFrZXIgT3V0IGxldmVsIHRvICsvLSA0ViBhbmQgdW5tdXRlIGl0LiAqLworCWFkMTg0M193cml0ZV9tdWx0aShhZDE4NDMsIDMsCisJCQkgICAmYWQxODQzX0hQT1MsIDEsCisJCQkgICAmYWQxODQzX0hQT00sIDAsCisJCQkgICAmYWQxODQzX01QT00sIDApOworCisJcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9zb3VuZC9taXBzL2hhbDIuYyBiL3NvdW5kL21pcHMvaGFsMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNDk1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9taXBzL2hhbDIuYwpAQCAtMCwwICsxLDk0NyBAQAorLyoKKyAqICBEcml2ZXIgZm9yIEEyIGF1ZGlvIHN5c3RlbSB1c2VkIGluIFNHSSBtYWNoaW5lcworICogIENvcHlyaWdodCAoYykgMjAwOCBUaG9tYXMgQm9nZW5kb2VyZmVyIDx0c2JvZ2VuZEBhbHBoYS5mYW5rZW4uZGU+CisgKgorICogIEJhc2VkIG9uIE9TUyBjb2RlIGZyb20gTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPiwgd2hpY2gKKyAqICB3YXMgYmFzZWQgb24gY29kZSBmcm9tIFVsZiBDYXJsc3NvbgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiAgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KKyAqCisgKi8KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL3NnaS9ocGMzLmg+CisjaW5jbHVkZSA8YXNtL3NnaS9pcDIyLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvY29udHJvbC5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS1pbmRpcmVjdC5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKworI2luY2x1ZGUgImhhbDIuaCIKKworc3RhdGljIGludCBpbmRleCA9IFNORFJWX0RFRkFVTFRfSURYMTsgIC8qIEluZGV4IDAtTUFYICovCitzdGF0aWMgY2hhciAqaWQgPSBTTkRSVl9ERUZBVUxUX1NUUjE7ICAgLyogSUQgZm9yIHRoaXMgY2FyZCAqLworCittb2R1bGVfcGFyYW0oaW5kZXgsIGludCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGluZGV4LCAiSW5kZXggdmFsdWUgZm9yIFNHSSBIQUwyIHNvdW5kY2FyZC4iKTsKK21vZHVsZV9wYXJhbShpZCwgY2hhcnAsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpZCwgIklEIHN0cmluZyBmb3IgU0dJIEhBTDIgc291bmRjYXJkLiIpOworTU9EVUxFX0RFU0NSSVBUSU9OKCJBTFNBIGRyaXZlciBmb3IgU0dJIEhBTDIgYXVkaW8iKTsKK01PRFVMRV9BVVRIT1IoIlRob21hcyBCb2dlbmRvZXJmZXIiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKKworCisjZGVmaW5lIEgyX0JMT0NLX1NJWkUJMTAyNAorI2RlZmluZSBIMl9CVUZfU0laRQkxNjM4NAorCitzdHJ1Y3QgaGFsMl9wYnVzIHsKKwlzdHJ1Y3QgaHBjM19wYnVzX2RtYWNyZWdzICpwYnVzOworCWludCBwYnVzbnI7CisJdW5zaWduZWQgaW50IGN0cmw7CQkvKiBDdXJyZW50IHN0YXRlIG9mIHBidXMtPnBiZG1hX2N0cmwgKi8KK307CisKK3N0cnVjdCBoYWwyX2Rlc2MgeworCXN0cnVjdCBocGNfZG1hX2Rlc2MgZGVzYzsKKwl1MzIgcGFkOwkJCS8qIHBhZGRpbmcgKi8KK307CisKK3N0cnVjdCBoYWwyX2NvZGVjIHsKKwlzdHJ1Y3Qgc25kX3BjbV9pbmRpcmVjdCBwY21faW5kaXJlY3Q7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisKKwl1bnNpZ25lZCBjaGFyICpidWZmZXI7CisJZG1hX2FkZHJfdCBidWZmZXJfZG1hOworCXN0cnVjdCBoYWwyX2Rlc2MgKmRlc2M7CisJZG1hX2FkZHJfdCBkZXNjX2RtYTsKKwlpbnQgZGVzY19jb3VudDsKKwlzdHJ1Y3QgaGFsMl9wYnVzIHBidXM7CisJaW50IHZvaWNlczsJCQkvKiBtb25vL3N0ZXJlbyAqLworCXVuc2lnbmVkIGludCBzYW1wbGVfcmF0ZTsKKwl1bnNpZ25lZCBpbnQgbWFzdGVyOwkJLyogTWFzdGVyIGZyZXF1ZW5jeSAqLworCXVuc2lnbmVkIHNob3J0IG1vZDsJCS8qIE1PRCB2YWx1ZSAqLworCXVuc2lnbmVkIHNob3J0IGluYzsJCS8qIElOQyB2YWx1ZSAqLworfTsKKworI2RlZmluZSBIMl9NSVhfT1VUUFVUX0FUVAkwCisjZGVmaW5lIEgyX01JWF9JTlBVVF9HQUlOCTEKKworc3RydWN0IHNuZF9oYWwyIHsKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CisKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqY3RsX3JlZ3M7CS8qIEhBTDIgY3RsIHJlZ2lzdGVycyAqLworCXN0cnVjdCBoYWwyX2Flc19yZWdzICphZXNfcmVnczsJLyogSEFMMiBhZXMgcmVnaXN0ZXJzICovCisJc3RydWN0IGhhbDJfdm9sX3JlZ3MgKnZvbF9yZWdzOwkvKiBIQUwyIHZvbCByZWdpc3RlcnMgKi8KKwlzdHJ1Y3QgaGFsMl9zeW5fcmVncyAqc3luX3JlZ3M7CS8qIEhBTDIgc3luIHJlZ2lzdGVycyAqLworCisJc3RydWN0IGhhbDJfY29kZWMgZGFjOworCXN0cnVjdCBoYWwyX2NvZGVjIGFkYzsKK307CisKKyNkZWZpbmUgSDJfSU5ESVJFQ1RfV0FJVChyZWdzKQl3aGlsZSAoaGFsMl9yZWFkKCZyZWdzLT5pc3IpICYgSDJfSVNSX1RTVEFUVVMpOworCisjZGVmaW5lIEgyX1JFQURfQUREUihhZGRyKQkoYWRkciB8ICgxPDw3KSkKKyNkZWZpbmUgSDJfV1JJVEVfQUREUihhZGRyKQkoYWRkcikKKworc3RhdGljIGlubGluZSB1MzIgaGFsMl9yZWFkKHUzMiAqcmVnKQoreworCXJldHVybiBfX3Jhd19yZWFkbChyZWcpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaGFsMl93cml0ZSh1MzIgdmFsLCB1MzIgKnJlZykKK3sKKwlfX3Jhd193cml0ZWwodmFsLCByZWcpOworfQorCisKK3N0YXRpYyB1MzIgaGFsMl9pX3JlYWQzMihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyKQoreworCXUzMiByZXQ7CisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKnJlZ3MgPSBoYWwyLT5jdGxfcmVnczsKKworCWhhbDJfd3JpdGUoSDJfUkVBRF9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworCXJldCA9IGhhbDJfcmVhZCgmcmVncy0+aWRyMCkgJiAweGZmZmY7CisJaGFsMl93cml0ZShIMl9SRUFEX0FERFIoYWRkcikgfCAweDEsICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7CisJcmV0IHw9IChoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmKSA8PCAxNjsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBoYWwyX2lfd3JpdGUxNihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyLCB1MTYgdmFsKQoreworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKHZhbCwgJnJlZ3MtPmlkcjApOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjEpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjIpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjMpOworCWhhbDJfd3JpdGUoSDJfV1JJVEVfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX3dyaXRlMzIoc3RydWN0IHNuZF9oYWwyICpoYWwyLCB1MTYgYWRkciwgdTMyIHZhbCkKK3sKKwlzdHJ1Y3QgaGFsMl9jdGxfcmVncyAqcmVncyA9IGhhbDItPmN0bF9yZWdzOworCisJaGFsMl93cml0ZSh2YWwgJiAweGZmZmYsICZyZWdzLT5pZHIwKTsKKwloYWwyX3dyaXRlKHZhbCA+PiAxNiwgJnJlZ3MtPmlkcjEpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjIpOworCWhhbDJfd3JpdGUoMCwgJnJlZ3MtPmlkcjMpOworCWhhbDJfd3JpdGUoSDJfV1JJVEVfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9pX3NldGJpdDE2KHN0cnVjdCBzbmRfaGFsMiAqaGFsMiwgdTE2IGFkZHIsIHUxNiBiaXQpCit7CisJc3RydWN0IGhhbDJfY3RsX3JlZ3MgKnJlZ3MgPSBoYWwyLT5jdGxfcmVnczsKKworCWhhbDJfd3JpdGUoSDJfUkVBRF9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworCWhhbDJfd3JpdGUoKGhhbDJfcmVhZCgmcmVncy0+aWRyMCkgJiAweGZmZmYpIHwgYml0LCAmcmVncy0+aWRyMCk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMSk7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMik7CisJaGFsMl93cml0ZSgwLCAmcmVncy0+aWRyMyk7CisJaGFsMl93cml0ZShIMl9XUklURV9BRERSKGFkZHIpLCAmcmVncy0+aWFyKTsKKwlIMl9JTkRJUkVDVF9XQUlUKHJlZ3MpOworfQorCitzdGF0aWMgdm9pZCBoYWwyX2lfY2xlYXJiaXQxNihzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIsIHUxNiBhZGRyLCB1MTYgYml0KQoreworCXN0cnVjdCBoYWwyX2N0bF9yZWdzICpyZWdzID0gaGFsMi0+Y3RsX3JlZ3M7CisKKwloYWwyX3dyaXRlKEgyX1JFQURfQUREUihhZGRyKSwgJnJlZ3MtPmlhcik7CisJSDJfSU5ESVJFQ1RfV0FJVChyZWdzKTsKKwloYWwyX3dyaXRlKChoYWwyX3JlYWQoJnJlZ3MtPmlkcjApICYgMHhmZmZmKSAmIH5iaXQsICZyZWdzLT5pZHIwKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIxKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIyKTsKKwloYWwyX3dyaXRlKDAsICZyZWdzLT5pZHIzKTsKKwloYWwyX3dyaXRlKEgyX1dSSVRFX0FERFIoYWRkciksICZyZWdzLT5pYXIpOworCUgyX0lORElSRUNUX1dBSVQocmVncyk7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAyOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJc3dpdGNoICgoaW50KWtjb250cm9sLT5wcml2YXRlX3ZhbHVlKSB7CisJY2FzZSBIMl9NSVhfT1VUUFVUX0FUVDoKKwkJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gMzE7CisJCWJyZWFrOworCWNhc2UgSDJfTUlYX0lOUFVUX0dBSU46CisJCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IDE1OworCQlicmVhazsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX2dldChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJdTMyIHRtcDsKKwlpbnQgbCwgcjsKKworCXN3aXRjaCAoKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSkgeworCWNhc2UgSDJfTUlYX09VVFBVVF9BVFQ6CisJCXRtcCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0RBQ19DMik7CisJCWlmICh0bXAgJiBIMklfQzJfTVVURSkgeworCQkJbCA9IDA7CisJCQlyID0gMDsKKwkJfSBlbHNlIHsKKwkJCWwgPSAzMSAtICgodG1wID4+IEgySV9DMl9MX0FUVF9TSElGVCkgJiAzMSk7CisJCQlyID0gMzEgLSAoKHRtcCA+PiBIMklfQzJfUl9BVFRfU0hJRlQpICYgMzEpOworCQl9CisJCWJyZWFrOworCWNhc2UgSDJfTUlYX0lOUFVUX0dBSU46CisJCXRtcCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0FEQ19DMik7CisJCWwgPSAodG1wID4+IEgySV9DMl9MX0dBSU5fU0hJRlQpICYgMTU7CisJCXIgPSAodG1wID4+IEgySV9DMl9SX0dBSU5fU0hJRlQpICYgMTU7CisJCWJyZWFrOworCX0KKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IGw7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSByOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9nYWluX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCSBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJdTMyIG9sZCwgbmV3OworCWludCBsLCByOworCisJbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOworCXIgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXTsKKworCXN3aXRjaCAoKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSkgeworCWNhc2UgSDJfTUlYX09VVFBVVF9BVFQ6CisJCW9sZCA9IGhhbDJfaV9yZWFkMzIoaGFsMiwgSDJJX0RBQ19DMik7CisJCW5ldyA9IG9sZCAmIH4oSDJJX0MyX0xfQVRUX00gfCBIMklfQzJfUl9BVFRfTSB8IEgySV9DMl9NVVRFKTsKKwkJaWYgKGwgfCByKSB7CisJCQlsID0gMzEgLSBsOworCQkJciA9IDMxIC0gcjsKKwkJCW5ldyB8PSAobCA8PCBIMklfQzJfTF9BVFRfU0hJRlQpOworCQkJbmV3IHw9IChyIDw8IEgySV9DMl9SX0FUVF9TSElGVCk7CisJCX0gZWxzZQorCQkJbmV3IHw9IEgySV9DMl9MX0FUVF9NIHwgSDJJX0MyX1JfQVRUX00gfCBIMklfQzJfTVVURTsKKwkJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0RBQ19DMiwgbmV3KTsKKwkJYnJlYWs7CisJY2FzZSBIMl9NSVhfSU5QVVRfR0FJTjoKKwkJb2xkID0gaGFsMl9pX3JlYWQzMihoYWwyLCBIMklfQURDX0MyKTsKKwkJbmV3ID0gb2xkICYgfihIMklfQzJfTF9HQUlOX00gfCBIMklfQzJfUl9HQUlOX00pOworCQluZXcgfD0gKGwgPDwgSDJJX0MyX0xfR0FJTl9TSElGVCk7CisJCW5ldyB8PSAociA8PCBIMklfQzJfUl9HQUlOX1NISUZUKTsKKwkJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0FEQ19DMiwgbmV3KTsKKwkJYnJlYWs7CisJfQorCXJldHVybiBvbGQgIT0gbmV3OworfQorCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgaGFsMl9jdHJsX2hlYWRwaG9uZSBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJIZWFkcGhvbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEgyX01JWF9PVVRQVVRfQVRULAorCS5pbmZvICAgICAgICAgICA9IGhhbDJfZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IGhhbDJfZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gaGFsMl9nYWluX3B1dCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBoYWwyX2N0cmxfbWljIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIk1pYyBDYXB0dXJlIFZvbHVtZSIsCisJLmFjY2VzcyAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSwKKwkucHJpdmF0ZV92YWx1ZSAgPSBIMl9NSVhfSU5QVVRfR0FJTiwKKwkuaW5mbyAgICAgICAgICAgPSBoYWwyX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBoYWwyX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IGhhbDJfZ2Fpbl9wdXQsCit9OworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBoYWwyX21peGVyX2NyZWF0ZShzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJaW50IGVycjsKKworCS8qIG11dGUgREFDICovCisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0RBQ19DMiwKKwkJICAgICAgIEgySV9DMl9MX0FUVF9NIHwgSDJJX0MyX1JfQVRUX00gfCBIMklfQzJfTVVURSk7CisJLyogbXV0ZSBBREMgKi8KKwloYWwyX2lfd3JpdGUzMihoYWwyLCBIMklfQURDX0MyLCAwKTsKKworCWVyciA9IHNuZF9jdGxfYWRkKGhhbDItPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmaGFsMl9jdHJsX2hlYWRwaG9uZSwgaGFsMikpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoaGFsMi0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZoYWwyX2N0cmxfbWljLCBoYWwyKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlycXJldHVybl90IGhhbDJfaW50ZXJydXB0KGludCBpcnEsIHZvaWQgKmRldl9pZCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBkZXZfaWQ7CisJaXJxcmV0dXJuX3QgcmV0ID0gSVJRX05PTkU7CisKKwkvKiBkZWNpZGUgd2hhdCBjYXVzZWQgdGhpcyBpbnRlcnJ1cHQgKi8KKwlpZiAoaGFsMi0+ZGFjLnBidXMucGJ1cy0+cGJkbWFfY3RybCAmIEhQQzNfUERNQUNUUkxfSU5UKSB7CisJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoaGFsMi0+ZGFjLnN1YnN0cmVhbSk7CisJCXJldCA9IElSUV9IQU5ETEVEOworCX0KKwlpZiAoaGFsMi0+YWRjLnBidXMucGJ1cy0+cGJkbWFfY3RybCAmIEhQQzNfUERNQUNUUkxfSU5UKSB7CisJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoaGFsMi0+YWRjLnN1YnN0cmVhbSk7CisJCXJldCA9IElSUV9IQU5ETEVEOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGhhbDJfY29tcHV0ZV9yYXRlKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJhdGUpCit7CisJdW5zaWduZWQgc2hvcnQgbW9kOworCisJaWYgKDQ0MTAwICUgcmF0ZSA8IDQ4MDAwICUgcmF0ZSkgeworCQltb2QgPSA0ICogNDQxMDAgLyByYXRlOworCQljb2RlYy0+bWFzdGVyID0gNDQxMDA7CisJfSBlbHNlIHsKKwkJbW9kID0gNCAqIDQ4MDAwIC8gcmF0ZTsKKwkJY29kZWMtPm1hc3RlciA9IDQ4MDAwOworCX0KKworCWNvZGVjLT5pbmMgPSA0OworCWNvZGVjLT5tb2QgPSBtb2Q7CisJcmF0ZSA9IDQgKiBjb2RlYy0+bWFzdGVyIC8gbW9kOworCisJcmV0dXJuIHJhdGU7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0X2RhY19yYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgbWFzdGVyID0gaGFsMi0+ZGFjLm1hc3RlcjsKKwlpbnQgaW5jID0gaGFsMi0+ZGFjLmluYzsKKwlpbnQgbW9kID0gaGFsMi0+ZGFjLm1vZDsKKworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9CUkVTMV9DMSwgKG1hc3RlciA9PSA0NDEwMCkgPyAxIDogMCk7CisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0JSRVMxX0MyLAorCQkgICAgICAgKCgweGZmZmYgJiAoaW5jIC0gbW9kIC0gMSkpIDw8IDE2KSB8IGluYyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0X2FkY19yYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgbWFzdGVyID0gaGFsMi0+YWRjLm1hc3RlcjsKKwlpbnQgaW5jID0gaGFsMi0+YWRjLmluYzsKKwlpbnQgbW9kID0gaGFsMi0+YWRjLm1vZDsKKworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9CUkVTMl9DMSwgKG1hc3RlciA9PSA0NDEwMCkgPyAxIDogMCk7CisJaGFsMl9pX3dyaXRlMzIoaGFsMiwgSDJJX0JSRVMyX0MyLAorCQkgICAgICAgKCgweGZmZmYgJiAoaW5jIC0gbW9kIC0gMSkpIDw8IDE2KSB8IGluYyk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0dXBfZGFjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgZmlmb2JlZywgZmlmb2VuZCwgaGlnaHdhdGVyLCBzYW1wbGVfc2l6ZTsKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmRhYy5wYnVzOworCisJLyogTm93IHdlIHNldCB1cCBzb21lIFBCVVMgaW5mb3JtYXRpb24uIFRoZSBQQlVTIG5lZWRzIGluZm9ybWF0aW9uIGFib3V0CisJICogd2hhdCBwb3J0aW9uIG9mIHRoZSBmaWZvIGl0IHdpbGwgdXNlLiBJZiBpdCdzIHJlY2VpdmluZyBvcgorCSAqIHRyYW5zbWl0dGluZywgYW5kIGZpbmFsbHkgd2hldGhlciB0aGUgc3RyZWFtIGlzIGxpdHRsZSBlbmRpYW4gb3IgYmlnCisJICogZW5kaWFuLiBUaGUgaW5mb3JtYXRpb24gaXMgd3JpdHRlbiBsYXRlciwgb24gdGhlIHN0YXJ0IGNhbGwuCisJICovCisJc2FtcGxlX3NpemUgPSAyICogaGFsMi0+ZGFjLnZvaWNlczsKKwkvKiBGaWZvIHNob3VsZCBiZSBzZXQgdG8gaG9sZCBleGFjdGx5IGZvdXIgc2FtcGxlcy4gSGlnaHdhdGVyIG1hcmsKKwkgKiBzaG91bGQgYmUgc2V0IHRvIHR3byBzYW1wbGVzLiAqLworCWhpZ2h3YXRlciA9IChzYW1wbGVfc2l6ZSAqIDIpID4+IDE7CS8qIGhhbGZ3b3JkcyAqLworCWZpZm9iZWcgPSAwOwkJCQkvKiBwbGF5YmFjayBpcyBmaXJzdCAqLworCWZpZm9lbmQgPSAoc2FtcGxlX3NpemUgKiA0KSA+PiAzOwkvKiBkb3VibGV3b3JkcyAqLworCXBidXMtPmN0cmwgPSBIUEMzX1BETUFDVFJMX1JUIHwgSFBDM19QRE1BQ1RSTF9MRCB8CisJCSAgICAgKGhpZ2h3YXRlciA8PCA4KSB8IChmaWZvYmVnIDw8IDE2KSB8IChmaWZvZW5kIDw8IDI0KTsKKwkvKiBXZSBkaXNhYmxlIGV2ZXJ5dGhpbmcgYmVmb3JlIHdlIGRvIGFueXRoaW5nIGF0IGFsbCAqLworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworCWhhbDJfaV9jbGVhcmJpdDE2KGhhbDIsIEgySV9ETUFfUE9SVF9FTiwgSDJJX0RNQV9QT1JUX0VOX0NPREVDVFgpOworCS8qIFNldHVwIHRoZSBIQUwyIGZvciBwbGF5YmFjayAqLworCWhhbDJfc2V0X2RhY19yYXRlKGhhbDIpOworCS8qIFNldCBlbmRpYW5lc3MgKi8KKwloYWwyX2lfY2xlYXJiaXQxNihoYWwyLCBIMklfRE1BX0VORCwgSDJJX0RNQV9FTkRfQ09ERUNUWCk7CisJLyogU2V0IERNQSBidXMgKi8KKwloYWwyX2lfc2V0Yml0MTYoaGFsMiwgSDJJX0RNQV9EUlYsICgxIDw8IHBidXMtPnBidXNucikpOworCS8qIFdlIGFyZSB1c2luZyAxc3QgQnJlc2VuaGFtIGNsb2NrIGdlbmVyYXRvciBmb3IgcGxheWJhY2sgKi8KKwloYWwyX2lfd3JpdGUxNihoYWwyLCBIMklfREFDX0MxLCAocGJ1cy0+cGJ1c25yIDw8IEgySV9DMV9ETUFfU0hJRlQpCisJCQl8ICgxIDw8IEgySV9DMV9DTEtJRF9TSElGVCkKKwkJCXwgKGhhbDItPmRhYy52b2ljZXMgPDwgSDJJX0MxX0RBVEFUX1NISUZUKSk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbDJfc2V0dXBfYWRjKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwl1bnNpZ25lZCBpbnQgZmlmb2JlZywgZmlmb2VuZCwgaGlnaHdhdGVyLCBzYW1wbGVfc2l6ZTsKKwlzdHJ1Y3QgaGFsMl9wYnVzICpwYnVzID0gJmhhbDItPmFkYy5wYnVzOworCisJc2FtcGxlX3NpemUgPSAyICogaGFsMi0+YWRjLnZvaWNlczsKKwloaWdod2F0ZXIgPSAoc2FtcGxlX3NpemUgKiAyKSA+PiAxOwkJLyogaGFsZndvcmRzICovCisJZmlmb2JlZyA9ICg0ICogNCkgPj4gMzsJCQkJLyogcmVjb3JkIGlzIHNlY29uZCAqLworCWZpZm9lbmQgPSAoNCAqIDQgKyBzYW1wbGVfc2l6ZSAqIDQpID4+IDM7CS8qIGRvdWJsZXdvcmRzICovCisJcGJ1cy0+Y3RybCA9IEhQQzNfUERNQUNUUkxfUlQgfCBIUEMzX1BETUFDVFJMX1JDViB8IEhQQzNfUERNQUNUUkxfTEQgfAorCQkgICAgIChoaWdod2F0ZXIgPDwgOCkgfCAoZmlmb2JlZyA8PCAxNikgfCAoZmlmb2VuZCA8PCAyNCk7CisJcGJ1cy0+cGJ1cy0+cGJkbWFfY3RybCA9IEhQQzNfUERNQUNUUkxfTEQ7CisJaGFsMl9pX2NsZWFyYml0MTYoaGFsMiwgSDJJX0RNQV9QT1JUX0VOLCBIMklfRE1BX1BPUlRfRU5fQ09ERUNSKTsKKwkvKiBTZXR1cCB0aGUgSEFMMiBmb3IgcmVjb3JkICovCisJaGFsMl9zZXRfYWRjX3JhdGUoaGFsMik7CisJLyogU2V0IGVuZGlhbmVzcyAqLworCWhhbDJfaV9jbGVhcmJpdDE2KGhhbDIsIEgySV9ETUFfRU5ELCBIMklfRE1BX0VORF9DT0RFQ1IpOworCS8qIFNldCBETUEgYnVzICovCisJaGFsMl9pX3NldGJpdDE2KGhhbDIsIEgySV9ETUFfRFJWLCAoMSA8PCBwYnVzLT5wYnVzbnIpKTsKKwkvKiBXZSBhcmUgdXNpbmcgMm5kIEJyZXNlbmhhbSBjbG9jayBnZW5lcmF0b3IgZm9yIHJlY29yZCAqLworCWhhbDJfaV93cml0ZTE2KGhhbDIsIEgySV9BRENfQzEsIChwYnVzLT5wYnVzbnIgPDwgSDJJX0MxX0RNQV9TSElGVCkKKwkJCXwgKDIgPDwgSDJJX0MxX0NMS0lEX1NISUZUKQorCQkJfCAoaGFsMi0+YWRjLnZvaWNlcyA8PCBIMklfQzFfREFUQVRfU0hJRlQpKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9zdGFydF9kYWMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXN0cnVjdCBoYWwyX3BidXMgKnBidXMgPSAmaGFsMi0+ZGFjLnBidXM7CisKKwlwYnVzLT5wYnVzLT5wYmRtYV9kcHRyID0gaGFsMi0+ZGFjLmRlc2NfZG1hOworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBwYnVzLT5jdHJsIHwgSFBDM19QRE1BQ1RSTF9BQ1Q7CisJLyogZW5hYmxlIERBQyAqLworCWhhbDJfaV9zZXRiaXQxNihoYWwyLCBIMklfRE1BX1BPUlRfRU4sIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1RYKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9zdGFydF9hZGMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXN0cnVjdCBoYWwyX3BidXMgKnBidXMgPSAmaGFsMi0+YWRjLnBidXM7CisKKwlwYnVzLT5wYnVzLT5wYmRtYV9kcHRyID0gaGFsMi0+YWRjLmRlc2NfZG1hOworCXBidXMtPnBidXMtPnBiZG1hX2N0cmwgPSBwYnVzLT5jdHJsIHwgSFBDM19QRE1BQ1RSTF9BQ1Q7CisJLyogZW5hYmxlIEFEQyAqLworCWhhbDJfaV9zZXRiaXQxNihoYWwyLCBIMklfRE1BX1BPUlRfRU4sIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1IpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgaGFsMl9zdG9wX2RhYyhzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIpCit7CisJaGFsMi0+ZGFjLnBidXMucGJ1cy0+cGJkbWFfY3RybCA9IEhQQzNfUERNQUNUUkxfTEQ7CisJLyogVGhlIEhBTDIgaXRzZWxmIG1heSByZW1haW4gZW5hYmxlZCBzYWZlbHkgKi8KK30KKworc3RhdGljIGlubGluZSB2b2lkIGhhbDJfc3RvcF9hZGMoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCWhhbDItPmFkYy5wYnVzLnBidXMtPnBiZG1hX2N0cmwgPSBIUEMzX1BETUFDVFJMX0xEOworfQorCitzdGF0aWMgaW50IGhhbDJfYWxsb2NfZG1hYnVmKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYykKK3sKKwlzdHJ1Y3QgaGFsMl9kZXNjICpkZXNjOworCWRtYV9hZGRyX3QgZGVzY19kbWEsIGJ1ZmZlcl9kbWE7CisJaW50IGNvdW50ID0gSDJfQlVGX1NJWkUgLyBIMl9CTE9DS19TSVpFOworCWludCBpOworCisJY29kZWMtPmJ1ZmZlciA9IGRtYV9hbGxvY19ub25jb2hlcmVudChOVUxMLCBIMl9CVUZfU0laRSwKKwkJCQkJICAgICAgJmJ1ZmZlcl9kbWEsIEdGUF9LRVJORUwpOworCWlmICghY29kZWMtPmJ1ZmZlcikKKwkJcmV0dXJuIC1FTk9NRU07CisJZGVzYyA9IGRtYV9hbGxvY19ub25jb2hlcmVudChOVUxMLCBjb3VudCAqIHNpemVvZihzdHJ1Y3QgaGFsMl9kZXNjKSwKKwkJCQkgICAgICZkZXNjX2RtYSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkZXNjKSB7CisJCWRtYV9mcmVlX25vbmNvaGVyZW50KE5VTEwsIEgyX0JVRl9TSVpFLAorCQkJCSAgICAgY29kZWMtPmJ1ZmZlciwgYnVmZmVyX2RtYSk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKwljb2RlYy0+YnVmZmVyX2RtYSA9IGJ1ZmZlcl9kbWE7CisJY29kZWMtPmRlc2NfZG1hID0gZGVzY19kbWE7CisJY29kZWMtPmRlc2MgPSBkZXNjOworCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisJCWRlc2MtPmRlc2MucGJ1ZiA9IGJ1ZmZlcl9kbWEgKyBpICogSDJfQkxPQ0tfU0laRTsKKwkJZGVzYy0+ZGVzYy5jbnRpbmZvID0gSFBDRE1BX1hJRSB8IEgyX0JMT0NLX1NJWkU7CisJCWRlc2MtPmRlc2MucG5leHQgPSAoaSA9PSBjb3VudCAtIDEpID8KKwkJICAgICAgZGVzY19kbWEgOiBkZXNjX2RtYSArIChpICsgMSkgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyk7CisJCWRlc2MrKzsKKwl9CisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgY29kZWMtPmRlc2MsIGNvdW50ICogc2l6ZW9mKHN0cnVjdCBoYWwyX2Rlc2MpLAorCQkgICAgICAgRE1BX1RPX0RFVklDRSk7CisJY29kZWMtPmRlc2NfY291bnQgPSBjb3VudDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaGFsMl9mcmVlX2RtYWJ1ZihzdHJ1Y3QgaGFsMl9jb2RlYyAqY29kZWMpCit7CisJZG1hX2ZyZWVfbm9uY29oZXJlbnQoTlVMTCwgY29kZWMtPmRlc2NfY291bnQgKiBzaXplb2Yoc3RydWN0IGhhbDJfZGVzYyksCisJCQkgICAgIGNvZGVjLT5kZXNjLCBjb2RlYy0+ZGVzY19kbWEpOworCWRtYV9mcmVlX25vbmNvaGVyZW50KE5VTEwsIEgyX0JVRl9TSVpFLCBjb2RlYy0+YnVmZmVyLAorCQkJICAgICBjb2RlYy0+YnVmZmVyX2RtYSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBoYWwyX3BjbV9odyA9IHsKKwkuaW5mbyA9IChTTkRSVl9QQ01fSU5GT19NTUFQIHwKKwkJIFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfAorCQkgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAorCQkgU05EUlZfUENNX0lORk9fQkxPQ0tfVFJBTlNGRVIpLAorCS5mb3JtYXRzID0gICAgICAgICAgU05EUlZfUENNX0ZNVEJJVF9TMTZfQkUsCisJLnJhdGVzID0gICAgICAgICAgICBTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwLAorCS5yYXRlX21pbiA9ICAgICAgICAgODAwMCwKKwkucmF0ZV9tYXggPSAgICAgICAgIDQ4MDAwLAorCS5jaGFubmVsc19taW4gPSAgICAgMiwKKwkuY2hhbm5lbHNfbWF4ID0gICAgIDIsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSA2NTUzNiwKKwkucGVyaW9kX2J5dGVzX21pbiA9IDEwMjQsCisJLnBlcmlvZF9ieXRlc19tYXggPSA2NTUzNiwKKwkucGVyaW9kc19taW4gPSAgICAgIDIsCisJLnBlcmlvZHNfbWF4ID0gICAgICAxMDI0LAorfTsKKworc3RhdGljIGludCBoYWwyX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlpbnQgZXJyOworCisJZXJyID0gc25kX3BjbV9saWJfbWFsbG9jX3BhZ2VzKHN1YnN0cmVhbSwgcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJcmV0dXJuIHNuZF9wY21fbGliX2ZyZWVfcGFnZXMoc3Vic3RyZWFtKTsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJaW50IGVycjsKKworCXJ1bnRpbWUtPmh3ID0gaGFsMl9wY21faHc7CisKKwllcnIgPSBoYWwyX2FsbG9jX2RtYWJ1ZigmaGFsMi0+ZGFjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfcGxheWJhY2tfY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJaGFsMl9mcmVlX2RtYWJ1ZigmaGFsMi0+ZGFjKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlkYWMtPnZvaWNlcyA9IHJ1bnRpbWUtPmNoYW5uZWxzOworCWRhYy0+c2FtcGxlX3JhdGUgPSBoYWwyX2NvbXB1dGVfcmF0ZShkYWMsIHJ1bnRpbWUtPnJhdGUpOworCW1lbXNldCgmZGFjLT5wY21faW5kaXJlY3QsIDAsIHNpemVvZihkYWMtPnBjbV9pbmRpcmVjdCkpOworCWRhYy0+cGNtX2luZGlyZWN0Lmh3X2J1ZmZlcl9zaXplID0gSDJfQlVGX1NJWkU7CisJZGFjLT5wY21faW5kaXJlY3Quc3dfYnVmZmVyX3NpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKKwlkYWMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwloYWwyX3NldHVwX2RhYyhoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorCQloYWwyLT5kYWMucGNtX2luZGlyZWN0Lmh3X2lvID0gaGFsMi0+ZGFjLmJ1ZmZlcl9kbWE7CisJCWhhbDItPmRhYy5wY21faW5kaXJlY3QuaHdfZGF0YSA9IDA7CisJCXN1YnN0cmVhbS0+b3BzLT5hY2soc3Vic3RyZWFtKTsKKwkJaGFsMl9zdGFydF9kYWMoaGFsMik7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwkJaGFsMl9zdG9wX2RhYyhoYWwyKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2hhbDJfcGxheWJhY2tfcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlyZXR1cm4gc25kX3BjbV9pbmRpcmVjdF9wbGF5YmFja19wb2ludGVyKHN1YnN0cmVhbSwgJmRhYy0+cGNtX2luZGlyZWN0LAorCQkJCQkJIGRhYy0+cGJ1cy5wYnVzLT5wYmRtYV9icHRyKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9wbGF5YmFja190cmFuc2ZlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkgICBzdHJ1Y3Qgc25kX3BjbV9pbmRpcmVjdCAqcmVjLCBzaXplX3QgYnl0ZXMpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IGhhbDItPmRhYy5idWZmZXIgKyByZWMtPmh3X2RhdGE7CisKKwltZW1jcHkoYnVmLCBzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhICsgcmVjLT5zd19kYXRhLCBieXRlcyk7CisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgYnVmLCBieXRlcywgRE1BX1RPX0RFVklDRSk7CisKK30KKworc3RhdGljIGludCBoYWwyX3BsYXliYWNrX2FjayhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmRhYyA9ICZoYWwyLT5kYWM7CisKKwlkYWMtPnBjbV9pbmRpcmVjdC5od19xdWV1ZV9zaXplID0gSDJfQlVGX1NJWkUgLyAyOworCXNuZF9wY21faW5kaXJlY3RfcGxheWJhY2tfdHJhbnNmZXIoc3Vic3RyZWFtLAorCQkJCQkgICAmZGFjLT5wY21faW5kaXJlY3QsCisJCQkJCSAgIGhhbDJfcGxheWJhY2tfdHJhbnNmZXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOworCXN0cnVjdCBoYWwyX2NvZGVjICphZGMgPSAmaGFsMi0+YWRjOworCWludCBlcnI7CisKKwlydW50aW1lLT5odyA9IGhhbDJfcGNtX2h3OworCisJZXJyID0gaGFsMl9hbGxvY19kbWFidWYoYWRjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisKKwloYWwyX2ZyZWVfZG1hYnVmKCZoYWwyLT5hZGMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY2FwdHVyZV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBoYWwyX2NvZGVjICphZGMgPSAmaGFsMi0+YWRjOworCisJYWRjLT52b2ljZXMgPSBydW50aW1lLT5jaGFubmVsczsKKwlhZGMtPnNhbXBsZV9yYXRlID0gaGFsMl9jb21wdXRlX3JhdGUoYWRjLCBydW50aW1lLT5yYXRlKTsKKwltZW1zZXQoJmFkYy0+cGNtX2luZGlyZWN0LCAwLCBzaXplb2YoYWRjLT5wY21faW5kaXJlY3QpKTsKKwlhZGMtPnBjbV9pbmRpcmVjdC5od19idWZmZXJfc2l6ZSA9IEgyX0JVRl9TSVpFOworCWFkYy0+cGNtX2luZGlyZWN0Lmh3X3F1ZXVlX3NpemUgPSBIMl9CVUZfU0laRSAvIDI7CisJYWRjLT5wY21faW5kaXJlY3Quc3dfYnVmZmVyX3NpemUgPSBzbmRfcGNtX2xpYl9idWZmZXJfYnl0ZXMoc3Vic3RyZWFtKTsKKwlhZGMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwloYWwyX3NldHVwX2FkYyhoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2NhcHR1cmVfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisKKwlzd2l0Y2ggKGNtZCkgeworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RBUlQ6CisJCWhhbDItPmFkYy5wY21faW5kaXJlY3QuaHdfaW8gPSBoYWwyLT5hZGMuYnVmZmVyX2RtYTsKKwkJaGFsMi0+YWRjLnBjbV9pbmRpcmVjdC5od19kYXRhID0gMDsKKwkJcHJpbnRrKEtFUk5fREVCVUcgImJ1ZmZlcl9kbWEgJXhcbiIsIGhhbDItPmFkYy5idWZmZXJfZG1hKTsKKwkJaGFsMl9zdGFydF9hZGMoaGFsMik7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwkJaGFsMl9zdG9wX2FkYyhoYWwyKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2hhbDJfY2FwdHVyZV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3QgaGFsMl9jb2RlYyAqYWRjID0gJmhhbDItPmFkYzsKKworCXJldHVybiBzbmRfcGNtX2luZGlyZWN0X2NhcHR1cmVfcG9pbnRlcihzdWJzdHJlYW0sICZhZGMtPnBjbV9pbmRpcmVjdCwKKwkJCQkJCWFkYy0+cGJ1cy5wYnVzLT5wYmRtYV9icHRyKTsKK30KKworc3RhdGljIHZvaWQgaGFsMl9jYXB0dXJlX3RyYW5zZmVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgc3RydWN0IHNuZF9wY21faW5kaXJlY3QgKnJlYywgc2l6ZV90IGJ5dGVzKQoreworCXN0cnVjdCBzbmRfaGFsMiAqaGFsMiA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwl1bnNpZ25lZCBjaGFyICpidWYgPSBoYWwyLT5hZGMuYnVmZmVyICsgcmVjLT5od19kYXRhOworCisJZG1hX2NhY2hlX3N5bmMoTlVMTCwgYnVmLCBieXRlcywgRE1BX0ZST01fREVWSUNFKTsKKwltZW1jcHkoc3Vic3RyZWFtLT5ydW50aW1lLT5kbWFfYXJlYSArIHJlYy0+c3dfZGF0YSwgYnVmLCBieXRlcyk7Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9jYXB0dXJlX2FjayhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX2hhbDIgKmhhbDIgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IGhhbDJfY29kZWMgKmFkYyA9ICZoYWwyLT5hZGM7CisKKwlzbmRfcGNtX2luZGlyZWN0X2NhcHR1cmVfdHJhbnNmZXIoc3Vic3RyZWFtLAorCQkJCQkgICZhZGMtPnBjbV9pbmRpcmVjdCwKKwkJCQkJICBoYWwyX2NhcHR1cmVfdHJhbnNmZXIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIGhhbDJfcGxheWJhY2tfb3BzID0geworCS5vcGVuID0gICAgICAgIGhhbDJfcGxheWJhY2tfb3BlbiwKKwkuY2xvc2UgPSAgICAgICBoYWwyX3BsYXliYWNrX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIGhhbDJfcGNtX2h3X3BhcmFtcywKKwkuaHdfZnJlZSA9ICAgICBoYWwyX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gICAgIGhhbDJfcGxheWJhY2tfcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBoYWwyX3BsYXliYWNrX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgaGFsMl9wbGF5YmFja19wb2ludGVyLAorCS5hY2sgPSAgICAgICAgIGhhbDJfcGxheWJhY2tfYWNrLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBoYWwyX2NhcHR1cmVfb3BzID0geworCS5vcGVuID0gICAgICAgIGhhbDJfY2FwdHVyZV9vcGVuLAorCS5jbG9zZSA9ICAgICAgIGhhbDJfY2FwdHVyZV9jbG9zZSwKKwkuaW9jdGwgPSAgICAgICBzbmRfcGNtX2xpYl9pb2N0bCwKKwkuaHdfcGFyYW1zID0gICBoYWwyX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgaGFsMl9wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9ICAgICBoYWwyX2NhcHR1cmVfcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBoYWwyX2NhcHR1cmVfdHJpZ2dlciwKKwkucG9pbnRlciA9ICAgICBoYWwyX2NhcHR1cmVfcG9pbnRlciwKKwkuYWNrID0gICAgICAgICBoYWwyX2NhcHR1cmVfYWNrLAorfTsKKworc3RhdGljIGludCBfX2RldmluaXQgaGFsMl9wY21fY3JlYXRlKHN0cnVjdCBzbmRfaGFsMiAqaGFsMikKK3sKKwlzdHJ1Y3Qgc25kX3BjbSAqcGNtOworCWludCBlcnI7CisKKwkvKiBjcmVhdGUgZmlyc3QgcGNtIGRldmljZSB3aXRoIG9uZSBvdXRwdXRzIGFuZCBvbmUgaW5wdXQgKi8KKwllcnIgPSBzbmRfcGNtX25ldyhoYWwyLT5jYXJkLCAiU0dJIEhBTDIgQXVkaW8iLCAwLCAxLCAxLCAmcGNtKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCXBjbS0+cHJpdmF0ZV9kYXRhID0gaGFsMjsKKwlzdHJjcHkocGNtLT5uYW1lLCAiU0dJIEhBTDIiKTsKKworCS8qIHNldCBvcGVyYXRvcnMgKi8KKwlzbmRfcGNtX3NldF9vcHMocGNtLCBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLLAorCQkJJmhhbDJfcGxheWJhY2tfb3BzKTsKKwlzbmRfcGNtX3NldF9vcHMocGNtLCBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUsCisJCQkmaGFsMl9jYXB0dXJlX29wcyk7CisJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0NPTlRJTlVPVVMsCisJCQkJCSAgIHNuZF9kbWFfY29udGludW91c19kYXRhKEdGUF9LRVJORUwpLAorCQkJCQkgICAwLCAxMDI0ICogMTAyNCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBoYWwyX2Rldl9mcmVlKHN0cnVjdCBzbmRfZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyID0gZGV2aWNlLT5kZXZpY2VfZGF0YTsKKworCWZyZWVfaXJxKFNHSV9IUENETUFfSVJRLCBoYWwyKTsKKwlrZnJlZShoYWwyKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBoYWwyX29wcyA9IHsKKwkuZGV2X2ZyZWUgPSBoYWwyX2Rldl9mcmVlLAorfTsKKworc3RhdGljIHZvaWQgaGFsMl9pbml0X2NvZGVjKHN0cnVjdCBoYWwyX2NvZGVjICpjb2RlYywgc3RydWN0IGhwYzNfcmVncyAqaHBjMywKKwkJCSAgICBpbnQgaW5kZXgpCit7CisJY29kZWMtPnBidXMucGJ1c25yID0gaW5kZXg7CisJY29kZWMtPnBidXMucGJ1cyA9ICZocGMzLT5wYmRtYVtpbmRleF07Cit9CisKK3N0YXRpYyBpbnQgaGFsMl9kZXRlY3Qoc3RydWN0IHNuZF9oYWwyICpoYWwyKQoreworCXVuc2lnbmVkIHNob3J0IGJvYXJkLCBtYWpvciwgbWlub3I7CisJdW5zaWduZWQgc2hvcnQgcmV2OworCisJLyogcmVzZXQgSEFMMiAqLworCWhhbDJfd3JpdGUoMCwgJmhhbDItPmN0bF9yZWdzLT5pc3IpOworCisJLyogcmVsZWFzZSByZXNldCAqLworCWhhbDJfd3JpdGUoSDJfSVNSX0dMT0JBTF9SRVNFVF9OIHwgSDJfSVNSX0NPREVDX1JFU0VUX04sCisJCSAgICZoYWwyLT5jdGxfcmVncy0+aXNyKTsKKworCisJaGFsMl9pX3dyaXRlMTYoaGFsMiwgSDJJX1JFTEFZX0MsIEgySV9SRUxBWV9DX1NUQVRFKTsKKwlyZXYgPSBoYWwyX3JlYWQoJmhhbDItPmN0bF9yZWdzLT5yZXYpOworCWlmIChyZXYgJiBIMl9SRVZfQVVESU9fUFJFU0VOVCkKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwlib2FyZCA9IChyZXYgJiBIMl9SRVZfQk9BUkRfTSkgPj4gMTI7CisJbWFqb3IgPSAocmV2ICYgSDJfUkVWX01BSk9SX0NISVBfTSkgPj4gNDsKKwltaW5vciA9IChyZXYgJiBIMl9SRVZfTUlOT1JfQ0hJUF9NKTsKKworCXByaW50ayhLRVJOX0lORk8gIlNHSSBIQUwyIHJldmlzaW9uICVpLiVpLiVpXG4iLAorCSAgICAgICBib2FyZCwgbWFqb3IsIG1pbm9yKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGhhbDJfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9oYWwyICoqcmNoaXApCit7CisJc3RydWN0IHNuZF9oYWwyICpoYWwyOworCXN0cnVjdCBocGMzX3JlZ3MgKmhwYzMgPSBocGMzYzA7CisJaW50IGVycjsKKworCWhhbDIgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX2hhbDIpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWhhbDIpCisJCXJldHVybiAtRU5PTUVNOworCisJaGFsMi0+Y2FyZCA9IGNhcmQ7CisKKwlpZiAocmVxdWVzdF9pcnEoU0dJX0hQQ0RNQV9JUlEsIGhhbDJfaW50ZXJydXB0LCBJUlFGX1NIQVJFRCwKKwkJCSJTR0kgSEFMMiIsIGhhbDIpKSB7CisJCXByaW50ayhLRVJOX0VSUiAiSEFMMjogQ2FuJ3QgZ2V0IGlycSAlZFxuIiwgU0dJX0hQQ0RNQV9JUlEpOworCQlrZnJlZShoYWwyKTsKKwkJcmV0dXJuIC1FQUdBSU47CisJfQorCisJaGFsMi0+Y3RsX3JlZ3MgPSAoc3RydWN0IGhhbDJfY3RsX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMF07CisJaGFsMi0+YWVzX3JlZ3MgPSAoc3RydWN0IGhhbDJfYWVzX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMV07CisJaGFsMi0+dm9sX3JlZ3MgPSAoc3RydWN0IGhhbDJfdm9sX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbMl07CisJaGFsMi0+c3luX3JlZ3MgPSAoc3RydWN0IGhhbDJfc3luX3JlZ3MgKilocGMzLT5wYnVzX2V4dHJlZ3NbM107CisKKwlpZiAoaGFsMl9kZXRlY3QoaGFsMikgPCAwKSB7CisJCWtmcmVlKGhhbDIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwloYWwyX2luaXRfY29kZWMoJmhhbDItPmRhYywgaHBjMywgMCk7CisJaGFsMl9pbml0X2NvZGVjKCZoYWwyLT5hZGMsIGhwYzMsIDEpOworCisJLyoKKwkgKiBBbGwgRE1BIGNoYW5uZWwgaW50ZXJmYWNlcyBpbiBIQUwyIGFyZSBkZXNpZ25lZCB0byBvcGVyYXRlIHdpdGgKKwkgKiBQQlVTIHByb2dyYW1tZWQgZm9yIDIgY3ljbGVzIGluIEQzLCAyIGN5Y2xlcyBpbiBENCBhbmQgMiBjeWNsZXMKKwkgKiBpbiBENS4gSEFMMiBpcyBhIDE2LWJpdCBkZXZpY2Ugd2hpY2ggY2FuIGFjY2VwdCBib3RoIGJpZyBhbmQgbGl0dGxlCisJICogZW5kaWFuIGZvcm1hdC4gSXQgYXNzdW1lcyB0aGF0IGV2ZW4gYWRkcmVzcyBieXRlcyBhcmUgb24gaGlnaAorCSAqIHBvcnRpb24gb2YgUEJVUyAoMTU6OCkgYW5kIGFzc3VtZXMgdGhhdCBIUEMzIGlzIHByb2dyYW1tZWQgdG8KKwkgKiBhY2NlcHQgYSBsaXZlICh1bnN5bmNocm9uaXplZCkgdmVyc2lvbiBvZiBQX0RSRVFfTiBmcm9tIEhBTDIuCisJICovCisjZGVmaW5lIEhBTDJfUEJVU19ETUFDRkcgKCgwIDw8IEhQQzNfRE1BQ0ZHX0QzUl9TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q0Ul9TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q1Ul9TSElGVCkgfCBcCisJCQkgICgwIDw8IEhQQzNfRE1BQ0ZHX0QzV19TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q0V19TSElGVCkgfCBcCisJCQkgICgyIDw8IEhQQzNfRE1BQ0ZHX0Q1V19TSElGVCkgfCBcCisJCQkJSFBDM19ETUFDRkdfRFMxNiB8IFwKKwkJCQlIUEMzX0RNQUNGR19FVkVOSEkgfCBcCisJCQkJSFBDM19ETUFDRkdfUlRJTUUgfCBcCisJCQkgICg4IDw8IEhQQzNfRE1BQ0ZHX0JVUlNUX1NISUZUKSB8IFwKKwkJCQlIUEMzX0RNQUNGR19EUlFMSVZFKQorCS8qCisJICogSWdub3JlIHdoYXQncyBtZW50aW9uZWQgaW4gdGhlIHNwZWNpZmljYXRpb24gYW5kIHdyaXRlIHZhbHVlIHdoaWNoCisJICogd29ya3MgaW4gVGhlIFJlYWwgV29ybGQgKFRNKQorCSAqLworCWhwYzMtPnBidXNfZG1hY2ZnW2hhbDItPmRhYy5wYnVzLnBidXNucl1bMF0gPSAweDgyMDg4NDQ7CisJaHBjMy0+cGJ1c19kbWFjZmdbaGFsMi0+YWRjLnBidXMucGJ1c25yXVswXSA9IDB4ODIwODg0NDsKKworCWVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgaGFsMiwgJmhhbDJfb3BzKTsKKwlpZiAoZXJyIDwgMCkgeworCQlmcmVlX2lycShTR0lfSFBDRE1BX0lSUSwgaGFsMik7CisJCWtmcmVlKGhhbDIpOworCQlyZXR1cm4gZXJyOworCX0KKwkqcmNoaXAgPSBoYWwyOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBoYWwyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkOworCXN0cnVjdCBzbmRfaGFsMiAqY2hpcDsKKwlpbnQgZXJyOworCisJY2FyZCA9IHNuZF9jYXJkX25ldyhpbmRleCwgaWQsIFRISVNfTU9EVUxFLCAwKTsKKwlpZiAoY2FyZCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWVyciA9IGhhbDJfY3JlYXRlKGNhcmQsICZjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKwlzbmRfY2FyZF9zZXRfZGV2KGNhcmQsICZwZGV2LT5kZXYpOworCisJZXJyID0gaGFsMl9wY21fY3JlYXRlKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCWVyciA9IGhhbDJfbWl4ZXJfY3JlYXRlKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCisJc3RyY3B5KGNhcmQtPmRyaXZlciwgIlNHSSBIQUwyIEF1ZGlvIik7CisJc3RyY3B5KGNhcmQtPnNob3J0bmFtZSwgIlNHSSBIQUwyIEF1ZGlvIik7CisJc3ByaW50ZihjYXJkLT5sb25nbmFtZSwgIiVzIGlycSAlaSIsCisJCWNhcmQtPnNob3J0bmFtZSwKKwkJU0dJX0hQQ0RNQV9JUlEpOworCisJZXJyID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCk7CisJaWYgKGVyciA8IDApIHsKKwkJc25kX2NhcmRfZnJlZShjYXJkKTsKKwkJcmV0dXJuIGVycjsKKwl9CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgY2FyZCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgX19leGl0IGhhbDJfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlzbmRfY2FyZF9mcmVlKGNhcmQpOworCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBoYWwyX2RyaXZlciA9IHsKKwkucHJvYmUJPSBoYWwyX3Byb2JlLAorCS5yZW1vdmUJPSBfX2RldmV4aXRfcChoYWwyX3JlbW92ZSksCisJLmRyaXZlciA9IHsKKwkJLm5hbWUJPSAic2dpaGFsMiIsCisJCS5vd25lcgk9IFRISVNfTU9EVUxFLAorCX0KK307CisKK3N0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF9oYWwyX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZoYWwyX2RyaXZlcik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhbHNhX2NhcmRfaGFsMl9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJmhhbDJfZHJpdmVyKTsKK30KKworbW9kdWxlX2luaXQoYWxzYV9jYXJkX2hhbDJfaW5pdCk7Cittb2R1bGVfZXhpdChhbHNhX2NhcmRfaGFsMl9leGl0KTsKZGlmZiAtLWdpdCBhL3NvdW5kL21pcHMvaGFsMi5oIGIvc291bmQvbWlwcy9oYWwyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE5ODI4YgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL21pcHMvaGFsMi5oCkBAIC0wLDAgKzEsMjQ1IEBACisjaWZuZGVmIF9fSEFMMl9ICisjZGVmaW5lIF9fSEFMMl9ICisKKy8qCisgKiAgRHJpdmVyIGZvciBIQUwyIHNvdW5kIHByb2Nlc3NvcnMKKyAqICBDb3B5cmlnaHQgKGMpIDE5OTkgVWxmIENhcmxzc29uIDx1bGZjQGJ1bi5mYWxrZW5iZXJnLnNlPgorICogIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMyBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyogSW5kaXJlY3Qgc3RhdHVzIHJlZ2lzdGVyICovCisKKyNkZWZpbmUgSDJfSVNSX1RTVEFUVVMJCTB4MDEJLyogUk86IHRyYW5zYWN0aW9uIHN0YXR1cyAxPWJ1c3kgKi8KKyNkZWZpbmUgSDJfSVNSX1VTVEFUVVMJCTB4MDIJLyogUk86IHV0aW1lIHN0YXR1cyBiaXQgMT1hcm1lZCAqLworI2RlZmluZSBIMl9JU1JfUVVBRF9NT0RFCTB4MDQJLyogY29kZWMgbW9kZSAwPWluZGlnbyAxPXF1YWQgKi8KKyNkZWZpbmUgSDJfSVNSX0dMT0JBTF9SRVNFVF9OCTB4MDgJLyogY2hpcCBnbG9iYWwgcmVzZXQgMD1yZXNldCAqLworI2RlZmluZSBIMl9JU1JfQ09ERUNfUkVTRVRfTgkweDEwCS8qIGNvZGVjL3N5bnRoIHJlc2V0IDA9cmVzZXQgICovCisKKy8qIFJldmlzaW9uIHJlZ2lzdGVyICovCisKKyNkZWZpbmUgSDJfUkVWX0FVRElPX1BSRVNFTlQJMHg4MDAwCS8qIFJPOiBhdWRpbyBwcmVzZW50IDA9cHJlc2VudCAqLworI2RlZmluZSBIMl9SRVZfQk9BUkRfTQkJMHg3MDAwCS8qIFJPOiBiaXRzIDE0OjEyLCBib2FyZCByZXZpc2lvbiAqLworI2RlZmluZSBIMl9SRVZfTUFKT1JfQ0hJUF9NCTB4MDBGMAkvKiBSTzogYml0cyA3OjQsIG1ham9yIGNoaXAgcmV2aXNpb24gKi8KKyNkZWZpbmUgSDJfUkVWX01JTk9SX0NISVBfTQkweDAwMEYJLyogUk86IGJpdHMgMzowLCBtaW5vciBjaGlwIHJldmlzaW9uICovCisKKy8qIEluZGlyZWN0IGFkZHJlc3MgcmVnaXN0ZXIgKi8KKworLyoKKyAqIEFkZHJlc3Mgb2YgaW5kaXJlY3QgaW50ZXJuYWwgcmVnaXN0ZXIgdG8gYmUgYWNjZXNzZWQuIEEgd3JpdGUgdG8gdGhpcworICogcmVnaXN0ZXIgaW5pdGlhdGVzIHJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHRoZSBpbmRpcmVjdCByZWdpc3RlcnMgaW4gdGhlCisgKiBIQUwyLiBOb3RlIHRoYXQgdGhlcmUgYWYgZm91ciBpbmRpcmVjdCBkYXRhIHJlZ2lzdGVycyBmb3Igd3JpdGUgYWNjZXNzIHRvCisgKiByZWdpc3RlcnMgbGFyZ2VyIHRoYW4gMTYgYnl0ZS4KKyAqLworCisjZGVmaW5lIEgyX0lBUl9UWVBFX00JCTB4RjAwMAkvKiBiaXRzIDE1OjEyLCB0eXBlIG9mIGZ1bmN0aW9uYWwgKi8KKwkJCQkJLyogYmxvY2sgdGhlIHJlZ2lzdGVyIHJlc2lkZXMgaW4gKi8KKwkJCQkJLyogMT1ETUEgUG9ydCAqLworCQkJCQkvKiA5PUdsb2JhbCBETUEgQ29udHJvbCAqLworCQkJCQkvKiAyPUJyZXNlbmhhbSAqLworCQkJCQkvKiAzPVVuaXggVGltZXIgKi8KKyNkZWZpbmUgSDJfSUFSX05VTV9NCQkweDBGMDAJLyogYml0cyAxMTo4IGluc3RhbmNlIG9mIHRoZSAqLworCQkJCQkvKiBibG9ja2luIHdoaWNoIHRoZSBpbmRpcmVjdCAqLworCQkJCQkvKiByZWdpc3RlciByZXNpZGVzICovCisJCQkJCS8qIElmIElBUl9UWVBFX009RE1BIFBvcnQ6ICovCisJCQkJCS8qIDE9U3ludGggSW4gKi8KKwkJCQkJLyogMj1BRVMgSW4gKi8KKwkJCQkJLyogMz1BRVMgT3V0ICovCisJCQkJCS8qIDQ9REFDIE91dCAqLworCQkJCQkvKiA1PUFEQyBPdXQgKi8KKwkJCQkJLyogNj1TeW50aCBDb250cm9sICovCisJCQkJCS8qIElmIElBUl9UWVBFX009R2xvYmFsIERNQSBDb250cm9sOiAqLworCQkJCQkvKiAxPUNvbnRyb2wgKi8KKwkJCQkJLyogSWYgSUFSX1RZUEVfTT1CcmVzZW5oYW06ICovCisJCQkJCS8qIDE9QnJlc2VuaGFtIENsb2NrIEdlbiAxICovCisJCQkJCS8qIDI9QnJlc2VuaGFtIENsb2NrIEdlbiAyICovCisJCQkJCS8qIDM9QnJlc2VuaGFtIENsb2NrIEdlbiAzICovCisJCQkJCS8qIElmIElBUl9UWVBFX009VW5peCBUaW1lcjogKi8KKwkJCQkJLyogMT1Vbml4IFRpbWVyICovCisjZGVmaW5lIEgyX0lBUl9BQ0NFU1NfU0VMRUNUCTB4MDA4MAkvKiAxPXJlYWQgMD13cml0ZSAqLworI2RlZmluZSBIMl9JQVJfUEFSQU0JCTB4MDAwQwkvKiBQYXJhbWV0ZXIgU2VsZWN0ICovCisjZGVmaW5lIEgyX0lBUl9SQl9JTkRFWF9NCTB4MDAwMwkvKiBSZWFkIEJhY2sgSW5kZXggKi8KKwkJCQkJLyogMDA6d29yZDAgKi8KKwkJCQkJLyogMDE6d29yZDEgKi8KKwkJCQkJLyogMTA6d29yZDIgKi8KKwkJCQkJLyogMTE6d29yZDMgKi8KKy8qCisgKiBIQUwyIGludGVybmFsIGFkZHJlc3NpbmcKKyAqCisgKiBUaGUgSEFMMiBoYXMgImluZGlyZWN0IHJlZ2lzdGVycyIgKGlkcikgd2hpY2ggYXJlIGFjY2Vzc2VkIGJ5IHdyaXRpbmcgdG8gdGhlCisgKiBJbmRpcmVjdCBEYXRhIHJlZ2lzdGVycy4gV3JpdGUgdGhlIGFkZHJlc3MgdG8gdGhlIEluZGlyZWN0IEFkZHJlc3MgcmVnaXN0ZXIKKyAqIHRvIHRyYW5zZmVyIHRoZSBkYXRhLgorICoKKyAqIFdlIGRlZmluZSB0aGUgSDJJUl8qIHRvIHRoZSByZWFkIGFkZHJlc3MgYW5kIEgySVdfKiB0byB0aGUgd3JpdGUgYWRkcmVzcyBhbmQKKyAqIEgySV8qIHRvIGJlIGZpZWxkcyBpbiB3aGF0ZXZlciByZWdpc3RlciBpcyByZWZlcnJlZCB0by4KKyAqCisgKiBXaGVuIHdlIHdyaXRlIHRvIGluZGlyZWN0IHJlZ2lzdGVycyB3aGljaCBhcmUgbGFyZ2VyIHRoYW4gb25lIHdvcmQgKDE2IGJpdCkKKyAqIHdlIGhhdmUgdG8gZmlsbCBtb3JlIHRoYW4gb25lIGluZGlyZWN0IHJlZ2lzdGVyIGJlZm9yZSB3cml0aW5nLiBXaGVuIHdlIHJlYWQKKyAqIGJhY2sgaG93ZXZlciB3ZSBoYXZlIHRvIHJlYWQgc2V2ZXJhbCB0aW1lcywgZWFjaCB0aW1lIHdpdGggZGlmZmVyZW50IFJlYWQKKyAqIEJhY2sgSW5kZXhlcyAodGhlcmUgYXJlIGRlZnMgZm9yIGRvaW5nIHRoaXMgZWFzaWx5KS4KKyAqLworCisvKgorICogUmVsYXkgQ29udHJvbAorICovCisjZGVmaW5lIEgySV9SRUxBWV9DCQkweDkxMDAKKyNkZWZpbmUgSDJJX1JFTEFZX0NfU1RBVEUJMHgwMQkJLyogc3RhdGUgb2YgUkVMQVkgcGluIHNpZ25hbCAqLworCisvKiBETUEgcG9ydCBlbmFibGUgKi8KKworI2RlZmluZSBIMklfRE1BX1BPUlRfRU4JCTB4OTEwNAorI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fU1lfSU4JMHgwMQkJLyogU3ludGhfaW4gRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9QT1JUX0VOX0FFU1JYCTB4MDIJCS8qIEFFUyByZWNlaXZlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX1BPUlRfRU5fQUVTVFgJMHgwNAkJLyogQUVTIHRyYW5zbWl0dGVyIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1RYCTB4MDgJCS8qIENPREVDIHRyYW5zbWl0IERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfUE9SVF9FTl9DT0RFQ1IJMHgxMAkJLyogQ09ERUMgcmVjZWl2ZSBETUEgcG9ydCAqLworCisjZGVmaW5lIEgySV9ETUFfRU5ECQkweDkxMDggCQkvKiBnbG9iYWwgZG1hIGVuZGlhbiBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0RNQV9FTkRfU1lfSU4JMHgwMQkJLyogU3ludGhfaW4gRE1BIHBvcnQgKi8KKyNkZWZpbmUgSDJJX0RNQV9FTkRfQUVTUlgJMHgwMgkJLyogQUVTIHJlY2VpdmVyIERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX0FFU1RYCTB4MDQJCS8qIEFFUyB0cmFuc21pdHRlciBETUEgcG9ydCAqLworI2RlZmluZSBIMklfRE1BX0VORF9DT0RFQ1RYCTB4MDgJCS8qIENPREVDIHRyYW5zbWl0IERNQSBwb3J0ICovCisjZGVmaW5lIEgySV9ETUFfRU5EX0NPREVDUgkweDEwCQkvKiBDT0RFQyByZWNlaXZlIERNQSBwb3J0ICovCisJCQkJCQkvKiAwPWJfZW5kIDE9bF9lbmQgKi8KKworI2RlZmluZSBIMklfRE1BX0RSVgkJMHg5MTBDICAJLyogZ2xvYmFsIFBCVVMgRE1BIGVuYWJsZSAqLworCisjZGVmaW5lIEgySV9TWU5USF9DCQkweDExMDQJCS8qIFN5bnRoIERNQSBjb250cm9sICovCisKKyNkZWZpbmUgSDJJX0FFU1JYX0MJCTB4MTIwNAkgCS8qIEFFUyBSWCBkbWEgY29udHJvbCAqLworCisjZGVmaW5lIEgySV9DX1RTX0VOCQkweDIwCQkvKiBUaW1lc3RhbXAgZW5hYmxlICovCisjZGVmaW5lIEgySV9DX1RTX0ZSTVQJCTB4NDAJCS8qIFRpbWVzdGFtcCBmb3JtYXQgKi8KKyNkZWZpbmUgSDJJX0NfTkFVRElPCQkweDgwCQkvKiBTaWduIGV4dGVuZCAqLworCisvKiBBRVNSWCBDVEwsIDE2IGJpdCAqLworCisjZGVmaW5lIEgySV9BRVNUWF9DCQkweDEzMDQJCS8qIEFFUyBUWCBETUEgY29udHJvbCAqLworI2RlZmluZSBIMklfQUVTVFhfQ19DTEtJRF9TSElGVAkzCQkvKiBCcmVzZW5oYW0gQ2xvY2sgR2VuIDEtMyAqLworI2RlZmluZSBIMklfQUVTVFhfQ19DTEtJRF9NCTB4MTgKKyNkZWZpbmUgSDJJX0FFU1RYX0NfREFUQVRfU0hJRlQJOAkJLyogMT1tb25vIDI9c3RlcmVvICgzPXF1YWQpICovCisjZGVmaW5lIEgySV9BRVNUWF9DX0RBVEFUX00JMHgzMDAKKworLyogQ09ERUMgcmVnaXN0ZXJzICovCisKKyNkZWZpbmUgSDJJX0RBQ19DMQkJMHgxNDA0IAkJLyogREFDIERNQSBjb250cm9sLCAxNiBiaXQgKi8KKyNkZWZpbmUgSDJJX0RBQ19DMgkJMHgxNDA4CQkvKiBEQUMgRE1BIGNvbnRyb2wsIDMyIGJpdCAqLworI2RlZmluZSBIMklfQURDX0MxCQkweDE1MDQgCQkvKiBBREMgRE1BIGNvbnRyb2wsIDE2IGJpdCAqLworI2RlZmluZSBIMklfQURDX0MyCQkweDE1MDgJCS8qIEFEQyBETUEgY29udHJvbCwgMzIgYml0ICovCisKKy8qIEJpdHMgaW4gQ1RMMSByZWdpc3RlciAqLworCisjZGVmaW5lIEgySV9DMV9ETUFfU0hJRlQJMAkJLyogRE1BIGNoYW5uZWwgKi8KKyNkZWZpbmUgSDJJX0MxX0RNQV9NCQkweDcKKyNkZWZpbmUgSDJJX0MxX0NMS0lEX1NISUZUCTMJCS8qIEJyZXNlbmhhbSBDbG9jayBHZW4gMS0zICovCisjZGVmaW5lIEgySV9DMV9DTEtJRF9NCQkweDE4CisjZGVmaW5lIEgySV9DMV9EQVRBVF9TSElGVAk4CQkvKiAxPW1vbm8gMj1zdGVyZW8gKDM9cXVhZCkgKi8KKyNkZWZpbmUgSDJJX0MxX0RBVEFUX00JCTB4MzAwCisKKy8qIEJpdHMgaW4gQ1RMMiByZWdpc3RlciAqLworCisjZGVmaW5lIEgySV9DMl9SX0dBSU5fU0hJRlQJMAkJLyogcmlnaHQgYS9kIGlucHV0IGdhaW4gKi8KKyNkZWZpbmUgSDJJX0MyX1JfR0FJTl9NCQkweGYKKyNkZWZpbmUgSDJJX0MyX0xfR0FJTl9TSElGVAk0CQkvKiBsZWZ0IGEvZCBpbnB1dCBnYWluICovCisjZGVmaW5lIEgySV9DMl9MX0dBSU5fTQkJMHhmMAorI2RlZmluZSBIMklfQzJfUl9TRUwJCTB4MTAwCQkvKiByaWdodCBpbnB1dCBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0MyX0xfU0VMCQkweDIwMAkJLyogbGVmdCBpbnB1dCBzZWxlY3QgKi8KKyNkZWZpbmUgSDJJX0MyX01VVEUJCTB4NDAwCQkvKiBtdXRlICovCisjZGVmaW5lIEgySV9DMl9ETzEJCTB4MDAwMTAwMDAJLyogZGlnaXRhbCBvdXRwdXQgcG9ydCBiaXQgMCAqLworI2RlZmluZSBIMklfQzJfRE8yCQkweDAwMDIwMDAwCS8qIGRpZ2l0YWwgb3V0cHV0IHBvcnQgYml0IDEgKi8KKyNkZWZpbmUgSDJJX0MyX1JfQVRUX1NISUZUCTE4CQkvKiByaWdodCBkL2Egb3V0cHV0IC0gKi8KKyNkZWZpbmUgSDJJX0MyX1JfQVRUX00JCTB4MDA3YzAwMDAJLyogYXR0ZW51YXRpb24gKi8KKyNkZWZpbmUgSDJJX0MyX0xfQVRUX1NISUZUCTIzCQkvKiBsZWZ0IGQvYSBvdXRwdXQgLSAqLworI2RlZmluZSBIMklfQzJfTF9BVFRfTQkJMHgwZjgwMDAwMAkvKiBhdHRlbnVhdGlvbiAqLworCisjZGVmaW5lIEgySV9TWU5USF9NQVBfQwkJMHgxMTA0CQkvKiBzeW50aCBkbWEgaGFuZHNoYWtlIGN0cmwgKi8KKworLyogQ2xvY2sgZ2VuZXJhdG9yIENUTCAxLCAxNiBiaXQgKi8KKworI2RlZmluZSBIMklfQlJFUzFfQzEJCTB4MjEwNAorI2RlZmluZSBIMklfQlJFUzJfQzEJCTB4MjIwNAorI2RlZmluZSBIMklfQlJFUzNfQzEJCTB4MjMwNAorCisjZGVmaW5lIEgySV9CUkVTX0MxX1NISUZUCTAJCS8qIDA9NDguMCAxPTQ0LjEgMj1hZXNfcnggKi8KKyNkZWZpbmUgSDJJX0JSRVNfQzFfTQkJMHgwMworCisvKiBDbG9jayBnZW5lcmF0b3IgQ1RMIDIsIDMyIGJpdCAqLworCisjZGVmaW5lIEgySV9CUkVTMV9DMgkJMHgyMTA4CisjZGVmaW5lIEgySV9CUkVTMl9DMgkJMHgyMjA4CisjZGVmaW5lIEgySV9CUkVTM19DMgkJMHgyMzA4CisKKyNkZWZpbmUgSDJJX0JSRVNfQzJfSU5DX1NISUZUCTAJCS8qIGluY3JlbWVudCB2YWx1ZSAqLworI2RlZmluZSBIMklfQlJFU19DMl9JTkNfTQkweGZmZmYKKyNkZWZpbmUgSDJJX0JSRVNfQzJfTU9EX1NISUZUCTE2CQkvKiBtb2Rjb250cm9sIHZhbHVlICovCisjZGVmaW5lIEgySV9CUkVTX0MyX01PRF9NCTB4ZmZmZjAwMDAJLyogbW9kY3RybD0weGZmZmYmKG1vZGluYy0xKSAqLworCisvKiBVbml4IHRpbWVyLCA2NCBiaXQgKi8KKworI2RlZmluZSBIMklfVVRJTUUJCTB4MzEwNAorI2RlZmluZSBIMklfVVRJTUVfMF9MRAkJMHhmZmZmCQkvKiBtaWNyb3NlY29uZHMsIExTQidzICovCisjZGVmaW5lIEgySV9VVElNRV8xX0xEMAkJMHgwZgkJLyogbWljcm9zZWNvbmRzLCBNU0IncyAqLworI2RlZmluZSBIMklfVVRJTUVfMV9MRDEJCTB4ZjAJCS8qIHRlbnRocyBvZiBtaWNyb3NlY29uZHMgKi8KKyNkZWZpbmUgSDJJX1VUSU1FXzJfTEQJCTB4ZmZmZgkJLyogc2Vjb25kcywgTFNCJ3MgKi8KKyNkZWZpbmUgSDJJX1VUSU1FXzNfTEQJCTB4ZmZmZgkJLyogc2Vjb25kcywgTVNCJ3MgKi8KKworc3RydWN0IGhhbDJfY3RsX3JlZ3MgeworCXUzMiBfdW51c2VkMFs0XTsKKwl1MzIgaXNyOwkJLyogMHgxMCBTdGF0dXMgUmVnaXN0ZXIgKi8KKwl1MzIgX3VudXNlZDFbM107CisJdTMyIHJldjsJCS8qIDB4MjAgUmV2aXNpb24gUmVnaXN0ZXIgKi8KKwl1MzIgX3VudXNlZDJbM107CisJdTMyIGlhcjsJCS8qIDB4MzAgSW5kaXJlY3QgQWRkcmVzcyBSZWdpc3RlciAqLworCXUzMiBfdW51c2VkM1szXTsKKwl1MzIgaWRyMDsJCS8qIDB4NDAgSW5kaXJlY3QgRGF0YSBSZWdpc3RlciAwICovCisJdTMyIF91bnVzZWQ0WzNdOworCXUzMiBpZHIxOwkJLyogMHg1MCBJbmRpcmVjdCBEYXRhIFJlZ2lzdGVyIDEgKi8KKwl1MzIgX3VudXNlZDVbM107CisJdTMyIGlkcjI7CQkvKiAweDYwIEluZGlyZWN0IERhdGEgUmVnaXN0ZXIgMiAqLworCXUzMiBfdW51c2VkNlszXTsKKwl1MzIgaWRyMzsJCS8qIDB4NzAgSW5kaXJlY3QgRGF0YSBSZWdpc3RlciAzICovCit9OworCitzdHJ1Y3QgaGFsMl9hZXNfcmVncyB7CisJdTMyIHJ4X3N0YXRbMl07CS8qIFN0YXR1cyByZWdpc3RlcnMgKi8KKwl1MzIgcnhfY3JbMl07CQkvKiBDb250cm9sIHJlZ2lzdGVycyAqLworCXUzMiByeF91ZFs0XTsJCS8qIFVzZXIgZGF0YSB3aW5kb3cgKi8KKwl1MzIgcnhfc3RbMjRdOwkJLyogQ2hhbm5lbCBzdGF0dXMgZGF0YSAqLworCisJdTMyIHR4X3N0YXRbMV07CS8qIFN0YXR1cyByZWdpc3RlciAqLworCXUzMiB0eF9jclszXTsJCS8qIENvbnRyb2wgcmVnaXN0ZXJzICovCisJdTMyIHR4X3VkWzRdOwkJLyogVXNlciBkYXRhIHdpbmRvdyAqLworCXUzMiB0eF9zdFsyNF07CQkvKiBDaGFubmVsIHN0YXR1cyBkYXRhICovCit9OworCitzdHJ1Y3QgaGFsMl92b2xfcmVncyB7CisJdTMyIHJpZ2h0OwkJLyogUmlnaHQgdm9sdW1lICovCisJdTMyIGxlZnQ7CQkvKiBMZWZ0IHZvbHVtZSAqLworfTsKKworc3RydWN0IGhhbDJfc3luX3JlZ3MgeworCXUzMiBfdW51c2VkMFsyXTsKKwl1MzIgcGFnZTsJCS8qIERPQyBQYWdlIHJlZ2lzdGVyICovCisJdTMyIHJlZ3NlbDsJCS8qIERPQyBSZWdpc3RlciBzZWxlY3Rpb24gKi8KKwl1MzIgZGxvdzsJCS8qIERPQyBEYXRhIGxvdyAqLworCXUzMiBkaGlnaDsJCS8qIERPQyBEYXRhIGhpZ2ggKi8KKwl1MzIgaXJxOwkJLyogSVJRIFN0YXR1cyAqLworCXUzMiBkcmFtOwkJLyogRFJBTSBBY2Nlc3MgKi8KK307CisKKyNlbmRpZgkvKiBfX0hBTDJfSCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvbWlwcy9zZ2lvMmF1ZGlvLmMgYi9zb3VuZC9taXBzL3NnaW8yYXVkaW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzYzNTA0Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvbWlwcy9zZ2lvMmF1ZGlvLmMKQEAgLTAsMCArMSwxMDA2IEBACisvKgorICogICBTb3VuZCBkcml2ZXIgZm9yIFNpbGljb24gR3JhcGhpY3MgTzIgV29ya3N0YXRpb25zIEEvViBib2FyZCBhdWRpby4KKyAqCisgKiAgIENvcHlyaWdodCAyMDAzIFZpdmllbiBDaGFwcGVsaWVyIDx2aXZpZW4uY2hhcHBlbGllckBsaW51eC1taXBzLm9yZz4KKyAqICAgQ29weXJpZ2h0IDIwMDggVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYWxwaGEuZnJhbmtlbi5kZT4KKyAqICAgTXhpZXIgcGFydCB0YWtlbiBmcm9tIG1hY2VfYXVkaW8uYzoKKyAqICAgQ29weXJpZ2h0IDIwMDcgVGhvcmJlbiBKw6RuZGxpbmcgPHRqLnRyZXZlbHlhbkBnbWFpbC5jb20+CisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KKyNpbmNsdWRlIDxsaW51eC9nZnAuaD4KKyNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9pby5oPgorCisjaW5jbHVkZSA8YXNtL2lwMzIvaXAzMl9pbnRzLmg+CisjaW5jbHVkZSA8YXNtL2lwMzIvbWFjZS5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL2NvbnRyb2wuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNkZWZpbmUgU05EUlZfR0VUX0lECisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL2FkMTg0My5oPgorCisKK01PRFVMRV9BVVRIT1IoIlZpdmllbiBDaGFwcGVsaWVyIDx2aXZpZW4uY2hhcHBlbGllckBsaW51eC1taXBzLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiU0dJIE8yIEF1ZGlvIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tTaWxpY29uIEdyYXBoaWNzLCBPMiBBdWRpb319Iik7CisKK3N0YXRpYyBpbnQgaW5kZXggPSBTTkRSVl9ERUZBVUxUX0lEWDE7ICAvKiBJbmRleCAwLU1BWCAqLworc3RhdGljIGNoYXIgKmlkID0gU05EUlZfREVGQVVMVF9TVFIxOyAgIC8qIElEIGZvciB0aGlzIGNhcmQgKi8KKworbW9kdWxlX3BhcmFtKGluZGV4LCBpbnQsIDA0NDQpOworTU9EVUxFX1BBUk1fREVTQyhpbmRleCwgIkluZGV4IHZhbHVlIGZvciBTR0kgTzIgc291bmRjYXJkLiIpOworbW9kdWxlX3BhcmFtKGlkLCBjaGFycCwgMDQ0NCk7CitNT0RVTEVfUEFSTV9ERVNDKGlkLCAiSUQgc3RyaW5nIGZvciBTR0kgTzIgc291bmRjYXJkLiIpOworCisKKyNkZWZpbmUgQVVESU9fQ09OVFJPTF9SRVNFVCAgICAgICAgICAgICAgQklUKDApIC8qIDE6IHJlc2V0IGF1ZGlvIGludGVyZmFjZSAqLworI2RlZmluZSBBVURJT19DT05UUk9MX0NPREVDX1BSRVNFTlQgICAgICBCSVQoMSkgLyogMTogY29kZWMgZGV0ZWN0ZWQgKi8KKworI2RlZmluZSBDT0RFQ19DT05UUk9MX1dPUkRfU0hJRlQgICAgICAgIDAKKyNkZWZpbmUgQ09ERUNfQ09OVFJPTF9SRUFEICAgICAgICAgICAgICBCSVQoMTYpCisjZGVmaW5lIENPREVDX0NPTlRST0xfQUREUkVTU19TSElGVCAgICAgMTcKKworI2RlZmluZSBDSEFOTkVMX0NPTlRST0xfUkVTRVQgICAgICAgICAgIEJJVCgxMCkgLyogMTogcmVzZXQgY2hhbm5lbCAqLworI2RlZmluZSBDSEFOTkVMX0RNQV9FTkFCTEUgICAgICAgICAgICAgIEJJVCg5KSAgLyogMTogZW5hYmxlIERNQSB0cmFuc2ZlciAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRElTQUJMRUQgICgwIDw8IDUpIC8qIGludGVycnVwdCBkaXNhYmxlZCAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfMjUgICAgICAgICgxIDw8IDUpIC8qIGludCBvbiBidWZmZXIgPjI1JSBmdWxsICovCisjZGVmaW5lIENIQU5ORUxfSU5UX1RIUkVTSE9MRF81MCAgICAgICAgKDIgPDwgNSkgLyogaW50IG9uIGJ1ZmZlciA+NTAlIGZ1bGwgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEXzc1ICAgICAgICAoMyA8PCA1KSAvKiBpbnQgb24gYnVmZmVyID43NSUgZnVsbCAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRU1QVFkgICAgICg0IDw8IDUpIC8qIGludCBvbiBidWZmZXIgZW1wdHkgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX05PVF9FTVBUWSAoNSA8PCA1KSAvKiBpbnQgb24gYnVmZmVyICFlbXB0eSAqLworI2RlZmluZSBDSEFOTkVMX0lOVF9USFJFU0hPTERfRlVMTCAgICAgICg2IDw8IDUpIC8qIGludCBvbiBidWZmZXIgZW1wdHkgKi8KKyNkZWZpbmUgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEX05PVF9GVUxMICAoNyA8PCA1KSAvKiBpbnQgb24gYnVmZmVyICFlbXB0eSAqLworCisjZGVmaW5lIENIQU5ORUxfUklOR19TSElGVCAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgQ0hBTk5FTF9SSU5HX1NJWkUgICAgICAgICAgICAgICAoMSA8PCBDSEFOTkVMX1JJTkdfU0hJRlQpCisjZGVmaW5lIENIQU5ORUxfUklOR19NQVNLICAgICAgICAgICAgICAgKENIQU5ORUxfUklOR19TSVpFIC0gMSkKKworI2RlZmluZSBDSEFOTkVMX0xFRlRfU0hJRlQgNDAKKyNkZWZpbmUgQ0hBTk5FTF9SSUdIVF9TSElGVCA4CisKK3N0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuIHsKKwlpbnQgaWR4OworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCWludCBwb3M7CisJc25kX3BjbV91ZnJhbWVzX3Qgc2l6ZTsKKwlzcGlubG9ja190IGxvY2s7Cit9OworCisvKiBkZWZpbml0aW9uIG9mIHRoZSBjaGlwLXNwZWNpZmljIHJlY29yZCAqLworc3RydWN0IHNuZF9zZ2lvMmF1ZGlvIHsKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQ7CisKKwkvKiBjb2RlYyAqLworCXN0cnVjdCBzbmRfYWQxODQzIGFkMTg0MzsKKwlzcGlubG9ja190IGFkMTg0M19sb2NrOworCisJLyogY2hhbm5lbHMgKi8KKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW9fY2hhbiBjaGFubmVsWzNdOworCisJLyogcmVzb3VyY2VzICovCisJdm9pZCAqcmluZ19iYXNlOworCWRtYV9hZGRyX3QgcmluZ19iYXNlX2RtYTsKK307CisKKy8qIEFEMTg0MyBhY2Nlc3MgKi8KKworLyoKKyAqIHJlYWRfYWQxODQzX3JlZyByZXR1cm5zIHRoZSBjdXJyZW50IGNvbnRlbnRzIG9mIGEgMTYgYml0IEFEMTg0MyByZWdpc3Rlci4KKyAqCisgKiBSZXR1cm5zIHVuc2lnbmVkIHJlZ2lzdGVyIHZhbHVlIG9uIHN1Y2Nlc3MsIC1lcnJubyBvbiBmYWlsdXJlLgorICovCitzdGF0aWMgaW50IHJlYWRfYWQxODQzX3JlZyh2b2lkICpwcml2LCBpbnQgcmVnKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHByaXY7CisJaW50IHZhbDsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisKKwl3cml0ZXEoKHJlZyA8PCBDT0RFQ19DT05UUk9MX0FERFJFU1NfU0hJRlQpIHwKKwkgICAgICAgQ09ERUNfQ09OVFJPTF9SRUFELCAmbWFjZS0+cGVyaWYuYXVkaW8uY29kZWNfY29udHJvbCk7CisJd21iKCk7CisJdmFsID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOyAvKiBmbHVzaCBidXMgKi8KKwl1ZGVsYXkoMjAwKTsKKworCXZhbCA9IHJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jb2RlY19yZWFkKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisJcmV0dXJuIHZhbDsKK30KKworLyoKKyAqIHdyaXRlX2FkMTg0M19yZWcgd3JpdGVzIHRoZSBzcGVjaWZpZWQgdmFsdWUgdG8gYSAxNiBiaXQgQUQxODQzIHJlZ2lzdGVyLgorICovCitzdGF0aWMgaW50IHdyaXRlX2FkMTg0M19yZWcodm9pZCAqcHJpdiwgaW50IHJlZywgaW50IHdvcmQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gcHJpdjsKKwlpbnQgdmFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+YWQxODQzX2xvY2ssIGZsYWdzKTsKKworCXdyaXRlcSgocmVnIDw8IENPREVDX0NPTlRST0xfQUREUkVTU19TSElGVCkgfAorCSAgICAgICAod29yZCA8PCBDT0RFQ19DT05UUk9MX1dPUkRfU0hJRlQpLAorCSAgICAgICAmbWFjZS0+cGVyaWYuYXVkaW8uY29kZWNfY29udHJvbCk7CisJd21iKCk7CisJdmFsID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNvZGVjX2NvbnRyb2wpOyAvKiBmbHVzaCBidXMgKi8KKwl1ZGVsYXkoMjAwKTsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmFkMTg0M19sb2NrLCBmbGFncyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc2dpbzJhdWRpb19nYWluX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisKKwl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAyOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gYWQxODQzX2dldF9nYWluX21heCgmY2hpcC0+YWQxODQzLAorCQkJCQkgICAgIChpbnQpa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fZ2Fpbl9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCB2b2w7CisKKwl2b2wgPSBhZDE4NDNfZ2V0X2dhaW4oJmNoaXAtPmFkMTg0MywgKGludClrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSk7CisKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9ICh2b2wgPj4gOCkgJiAweEZGOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gdm9sICYgMHhGRjsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fZ2Fpbl9wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IG5ld3ZvbCwgb2xkdm9sOworCisJb2xkdm9sID0gYWQxODQzX2dldF9nYWluKCZjaGlwLT5hZDE4NDMsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKKwluZXd2b2wgPSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPDwgOCkgfAorCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXTsKKworCW5ld3ZvbCA9IGFkMTg0M19zZXRfZ2FpbigmY2hpcC0+YWQxODQzLCBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSwKKwkJbmV3dm9sKTsKKworCXJldHVybiBuZXd2b2wgIT0gb2xkdm9sOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fc291cmNlX2luZm8oc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqdGV4dHNbM10gPSB7CisJCSJDYW0gTWljIiwgIk1pYyIsICJMaW5lIgorCX07CisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0VOVU1FUkFURUQ7CisJdWluZm8tPmNvdW50ID0gMTsKKwl1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtcyA9IDM7CisJaWYgKHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0gPj0gMykKKwkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IDE7CisJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsCisJICAgICAgIHRleHRzW3VpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1dKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzZ2lvMmF1ZGlvX3NvdXJjZV9nZXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICAgICAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCisJdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVswXSA9IGFkMTg0M19nZXRfcmVjc3JjKCZjaGlwLT5hZDE4NDMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNnaW8yYXVkaW9fc291cmNlX3B1dChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwkJCXN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgbmV3c3JjLCBvbGRzcmM7CisKKwlvbGRzcmMgPSBhZDE4NDNfZ2V0X3JlY3NyYygmY2hpcC0+YWQxODQzKTsKKwluZXdzcmMgPSBhZDE4NDNfc2V0X3JlY3NyYygmY2hpcC0+YWQxODQzLAorCQkJCSAgIHVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0pOworCisJcmV0dXJuIG5ld3NyYyAhPSBvbGRzcmM7Cit9CisKKy8qIGRhYzEvcGNtMCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3BjbTAgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiUENNIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMCwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1BDTV8wLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIGRhYzIvcGNtMSBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3BjbTEgX19kZXZpbml0ZGF0YSA9IHsKKwkuaWZhY2UgICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKKwkubmFtZSAgICAgICAgICAgPSAiUENNIFBsYXliYWNrIFZvbHVtZSIsCisJLmluZGV4ICAgICAgICAgID0gMSwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1BDTV8xLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIHJlY29yZCBsZXZlbCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX3JlY2xldmVsIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkNhcHR1cmUgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX1JFQ0xFViwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiByZWNvcmQgbGV2ZWwgc291cmNlIGNvbnRyb2wgKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzZ2lvMmF1ZGlvX2N0cmxfcmVjc291cmNlIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkNhcHR1cmUgU291cmNlIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fc291cmNlX2luZm8sCisJLmdldCAgICAgICAgICAgID0gc2dpbzJhdWRpb19zb3VyY2VfZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fc291cmNlX3B1dCwKK307CisKKy8qIGxpbmUgbWl4ZXIgY29udHJvbCAqLworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNnaW8yYXVkaW9fY3RybF9saW5lIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuaW5kZXggICAgICAgICAgPSAwLAorCS5hY2Nlc3MgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsCisJLnByaXZhdGVfdmFsdWUgID0gQUQxODQzX0dBSU5fTElORSwKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisvKiBjZCBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX2NkIF9fZGV2aW5pdGRhdGEgPSB7CisJLmlmYWNlICAgICAgICAgID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJLm5hbWUgICAgICAgICAgID0gIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwKKwkuaW5kZXggICAgICAgICAgPSAxLAorCS5hY2Nlc3MgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsCisJLnByaXZhdGVfdmFsdWUgID0gQUQxODQzX0dBSU5fTElORV8yLAorCS5pbmZvICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9pbmZvLAorCS5nZXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9nZXQsCisJLnB1dCAgICAgICAgICAgID0gc2dpbzJhdWRpb19nYWluX3B1dCwKK307CisKKy8qIG1pYyBtaXhlciBjb250cm9sICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc2dpbzJhdWRpb19jdHJsX21pYyBfX2RldmluaXRkYXRhID0geworCS5pZmFjZSAgICAgICAgICA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lICAgICAgICAgICA9ICJNaWMgUGxheWJhY2sgVm9sdW1lIiwKKwkuYWNjZXNzICAgICAgICAgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5wcml2YXRlX3ZhbHVlICA9IEFEMTg0M19HQUlOX01JQywKKwkuaW5mbyAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5faW5mbywKKwkuZ2V0ICAgICAgICAgICAgPSBzZ2lvMmF1ZGlvX2dhaW5fZ2V0LAorCS5wdXQgICAgICAgICAgICA9IHNnaW8yYXVkaW9fZ2Fpbl9wdXQsCit9OworCisKK3N0YXRpYyBpbnQgX19kZXZpbml0IHNuZF9zZ2lvMmF1ZGlvX25ld19taXhlcihzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXApCit7CisJaW50IGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3BjbTAsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3BjbTEsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKworCWVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsCisJCQkgIHNuZF9jdGxfbmV3MSgmc2dpbzJhdWRpb19jdHJsX3JlY2xldmVsLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9yZWNzb3VyY2UsIGNoaXApKTsKKwlpZiAoZXJyIDwgMCkKKwkJcmV0dXJuIGVycjsKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9saW5lLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfY3RsX2FkZChjaGlwLT5jYXJkLAorCQkJICBzbmRfY3RsX25ldzEoJnNnaW8yYXVkaW9fY3RybF9jZCwgY2hpcCkpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZXJyID0gc25kX2N0bF9hZGQoY2hpcC0+Y2FyZCwKKwkJCSAgc25kX2N0bF9uZXcxKCZzZ2lvMmF1ZGlvX2N0cmxfbWljLCBjaGlwKSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlyZXR1cm4gMDsKK30KKworLyogbG93LWxldmVsIGF1ZGlvIGludGVyZmFjZSBETUEgKi8KKworLyogZ2V0IGRhdGEgb3V0IG9mIGJvdW5jZSBidWZmZXIsIGNvdW50IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMiAqLworLyogcmV0dXJucyAxIGlmIGEgcGVyaW9kIGhhcyBlbGFwc2VkICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2RtYV9wdWxsX2ZyYWcoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwLAorCQkJCQl1bnNpZ25lZCBpbnQgY2gsIHVuc2lnbmVkIGludCBjb3VudCkKK3sKKwlpbnQgcmV0OworCXVuc2lnbmVkIGxvbmcgc3JjX2Jhc2UsIHNyY19wb3MsIGRzdF9tYXNrOworCXVuc2lnbmVkIGNoYXIgKmRzdF9iYXNlOworCWludCBkc3RfcG9zOworCXU2NCAqc3JjOworCXMxNiAqZHN0OworCXU2NCB4OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGNoaXAtPmNoYW5uZWxbY2hdLnN1YnN0cmVhbS0+cnVudGltZTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5jaGFubmVsW2NoXS5sb2NrLCBmbGFncyk7CisKKwlzcmNfYmFzZSA9ICh1bnNpZ25lZCBsb25nKSBjaGlwLT5yaW5nX2Jhc2UgfCAoY2ggPDwgQ0hBTk5FTF9SSU5HX1NISUZUKTsKKwlzcmNfcG9zID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLnJlYWRfcHRyKTsKKwlkc3RfYmFzZSA9IHJ1bnRpbWUtPmRtYV9hcmVhOworCWRzdF9wb3MgPSBjaGlwLT5jaGFubmVsW2NoXS5wb3M7CisJZHN0X21hc2sgPSBmcmFtZXNfdG9fYnl0ZXMocnVudGltZSwgcnVudGltZS0+YnVmZmVyX3NpemUpIC0gMTsKKworCS8qIGNoZWNrIGlmIGEgcGVyaW9kIGhhcyBlbGFwc2VkICovCisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSArPSAoY291bnQgPj4gMyk7IC8qIGluIGZyYW1lcyAqLworCXJldCA9IGNoaXAtPmNoYW5uZWxbY2hdLnNpemUgPj0gcnVudGltZS0+cGVyaW9kX3NpemU7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSAlPSBydW50aW1lLT5wZXJpb2Rfc2l6ZTsKKworCXdoaWxlIChjb3VudCkgeworCQlzcmMgPSAodTY0ICopKHNyY19iYXNlICsgc3JjX3Bvcyk7CisJCWRzdCA9IChzMTYgKikoZHN0X2Jhc2UgKyBkc3RfcG9zKTsKKworCQl4ID0gKnNyYzsKKwkJZHN0WzBdID0gKHggPj4gQ0hBTk5FTF9MRUZUX1NISUZUKSAmIDB4ZmZmZjsKKwkJZHN0WzFdID0gKHggPj4gQ0hBTk5FTF9SSUdIVF9TSElGVCkgJiAweGZmZmY7CisKKwkJc3JjX3BvcyA9IChzcmNfcG9zICsgc2l6ZW9mKHU2NCkpICYgQ0hBTk5FTF9SSU5HX01BU0s7CisJCWRzdF9wb3MgPSAoZHN0X3BvcyArIDIgKiBzaXplb2YoczE2KSkgJiBkc3RfbWFzazsKKwkJY291bnQgLT0gc2l6ZW9mKHU2NCk7CisJfQorCisJd3JpdGVxKHNyY19wb3MsICZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5yZWFkX3B0cik7IC8qIGluIGJ5dGVzICovCisJY2hpcC0+Y2hhbm5lbFtjaF0ucG9zID0gZHN0X3BvczsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmV0OworfQorCisvKiBwdXQgc29tZSBETUEgZGF0YSBpbiBib3VuY2UgYnVmZmVyLCBjb3VudCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzIgKi8KKy8qIHJldHVybnMgMSBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kbWFfcHVzaF9mcmFnKHN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCwKKwkJCQkJdW5zaWduZWQgaW50IGNoLCB1bnNpZ25lZCBpbnQgY291bnQpCit7CisJaW50IHJldDsKKwlzNjQgbCwgcjsKKwl1bnNpZ25lZCBsb25nIGRzdF9iYXNlLCBkc3RfcG9zLCBzcmNfbWFzazsKKwl1bnNpZ25lZCBjaGFyICpzcmNfYmFzZTsKKwlpbnQgc3JjX3BvczsKKwl1NjQgKmRzdDsKKwlzMTYgKnNyYzsKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBjaGlwLT5jaGFubmVsW2NoXS5zdWJzdHJlYW0tPnJ1bnRpbWU7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCisJZHN0X2Jhc2UgPSAodW5zaWduZWQgbG9uZyljaGlwLT5yaW5nX2Jhc2UgfCAoY2ggPDwgQ0hBTk5FTF9SSU5HX1NISUZUKTsKKwlkc3RfcG9zID0gcmVhZHEoJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLndyaXRlX3B0cik7CisJc3JjX2Jhc2UgPSBydW50aW1lLT5kbWFfYXJlYTsKKwlzcmNfcG9zID0gY2hpcC0+Y2hhbm5lbFtjaF0ucG9zOworCXNyY19tYXNrID0gZnJhbWVzX3RvX2J5dGVzKHJ1bnRpbWUsIHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKSAtIDE7CisKKwkvKiBjaGVjayBpZiBhIHBlcmlvZCBoYXMgZWxhcHNlZCAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgKz0gKGNvdW50ID4+IDMpOyAvKiBpbiBmcmFtZXMgKi8KKwlyZXQgPSBjaGlwLT5jaGFubmVsW2NoXS5zaXplID49IHJ1bnRpbWUtPnBlcmlvZF9zaXplOworCWNoaXAtPmNoYW5uZWxbY2hdLnNpemUgJT0gcnVudGltZS0+cGVyaW9kX3NpemU7CisKKwl3aGlsZSAoY291bnQpIHsKKwkJc3JjID0gKHMxNiAqKShzcmNfYmFzZSArIHNyY19wb3MpOworCQlkc3QgPSAodTY0ICopKGRzdF9iYXNlICsgZHN0X3Bvcyk7CisKKwkJbCA9IHNyY1swXTsgLyogc2lnbiBleHRlbmQgKi8KKwkJciA9IHNyY1sxXTsgLyogc2lnbiBleHRlbmQgKi8KKworCQkqZHN0ID0gKChsICYgMHgwMGZmZmZmZikgPDwgQ0hBTk5FTF9MRUZUX1NISUZUKSB8CisJCQkoKHIgJiAweDAwZmZmZmZmKSA8PCBDSEFOTkVMX1JJR0hUX1NISUZUKTsKKworCQlkc3RfcG9zID0gKGRzdF9wb3MgKyBzaXplb2YodTY0KSkgJiBDSEFOTkVMX1JJTkdfTUFTSzsKKwkJc3JjX3BvcyA9IChzcmNfcG9zICsgMiAqIHNpemVvZihzMTYpKSAmIHNyY19tYXNrOworCQljb3VudCAtPSBzaXplb2YodTY0KTsKKwl9CisKKwl3cml0ZXEoZHN0X3BvcywgJm1hY2UtPnBlcmlmLmF1ZGlvLmNoYW5bY2hdLndyaXRlX3B0cik7IC8qIGluIGJ5dGVzICovCisJY2hpcC0+Y2hhbm5lbFtjaF0ucG9zID0gc3JjX3BvczsKKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPmNoYW5uZWxbY2hdLmxvY2ssIGZsYWdzKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2RtYV9zdGFydChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlpbnQgY2ggPSBjaGFuLT5pZHg7CisKKwkvKiByZXNldCBETUEgY2hhbm5lbCAqLworCXdyaXRlcShDSEFOTkVMX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5jb250cm9sKTsKKwl1ZGVsYXkoMTApOworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uY29udHJvbCk7CisKKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgeworCQkvKiBwdXNoIGEgZnVsbCBidWZmZXIgKi8KKwkJc25kX3NnaW8yYXVkaW9fZG1hX3B1c2hfZnJhZyhjaGlwLCBjaCwgQ0hBTk5FTF9SSU5HX1NJWkUgLSAzMik7CisJfQorCS8qIHNldCBETUEgdG8gd2FrZSBvbiA1MCUgZW1wdHkgYW5kIGVuYWJsZSBpbnRlcnJ1cHQgKi8KKwl3cml0ZXEoQ0hBTk5FTF9ETUFfRU5BQkxFIHwgQ0hBTk5FTF9JTlRfVEhSRVNIT0xEXzUwLAorCSAgICAgICAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaF0uY29udHJvbCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fZG1hX3N0b3Aoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCXdyaXRlcSgwLCAmbWFjZS0+cGVyaWYuYXVkaW8uY2hhbltjaGFuLT5pZHhdLmNvbnRyb2wpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaXJxcmV0dXJuX3Qgc25kX3NnaW8yYXVkaW9fZG1hX2luX2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBjb3VudCwgY2g7CisKKwlzdWJzdHJlYW0gPSBjaGFuLT5zdWJzdHJlYW07CisJY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwljaCA9IGNoYW4tPmlkeDsKKworCS8qIGVtcHR5IHRoZSByaW5nICovCisJY291bnQgPSBDSEFOTkVMX1JJTkdfU0laRSAtCisJCXJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5kZXB0aCkgLSAzMjsKKwlpZiAoc25kX3NnaW8yYXVkaW9fZG1hX3B1bGxfZnJhZyhjaGlwLCBjaCwgY291bnQpKQorCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKHN1YnN0cmVhbSk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzbmRfc2dpbzJhdWRpb19kbWFfb3V0X2lzcihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBkZXZfaWQ7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwOworCWludCBjb3VudCwgY2g7CisKKwlzdWJzdHJlYW0gPSBjaGFuLT5zdWJzdHJlYW07CisJY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwljaCA9IGNoYW4tPmlkeDsKKwkvKiBmaWxsIHRoZSByaW5nICovCisJY291bnQgPSBDSEFOTkVMX1JJTkdfU0laRSAtCisJCXJlYWRxKCZtYWNlLT5wZXJpZi5hdWRpby5jaGFuW2NoXS5kZXB0aCkgLSAzMjsKKwlpZiAoc25kX3NnaW8yYXVkaW9fZG1hX3B1c2hfZnJhZyhjaGlwLCBjaCwgY291bnQpKQorCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKHN1YnN0cmVhbSk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisKK3N0YXRpYyBpcnFyZXR1cm5fdCBzbmRfc2dpbzJhdWRpb19lcnJvcl9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gZGV2X2lkOworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCisJc3Vic3RyZWFtID0gY2hhbi0+c3Vic3RyZWFtOworCXNuZF9zZ2lvMmF1ZGlvX2RtYV9zdG9wKHN1YnN0cmVhbSk7CisJc25kX3NnaW8yYXVkaW9fZG1hX3N0YXJ0KHN1YnN0cmVhbSk7CisJcmV0dXJuIElSUV9IQU5ETEVEOworfQorCisvKiBQQ00gcGFydCAqLworLyogUENNIGhhcmR3YXJlIGRlZmluaXRpb24gKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBzbmRfc2dpbzJhdWRpb19wY21faHcgPSB7CisJLmluZm8gPSAoU05EUlZfUENNX0lORk9fTU1BUCB8CisJCSBTTkRSVl9QQ01fSU5GT19NTUFQX1ZBTElEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0lOVEVSTEVBVkVEIHwKKwkJIFNORFJWX1BDTV9JTkZPX0JMT0NLX1RSQU5TRkVSKSwKKwkuZm9ybWF0cyA9ICAgICAgICAgIFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFLAorCS5yYXRlcyA9ICAgICAgICAgICAgU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCwKKwkucmF0ZV9taW4gPSAgICAgICAgIDgwMDAsCisJLnJhdGVfbWF4ID0gICAgICAgICA0ODAwMCwKKwkuY2hhbm5lbHNfbWluID0gICAgIDIsCisJLmNoYW5uZWxzX21heCA9ICAgICAyLAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gNjU1MzYsCisJLnBlcmlvZF9ieXRlc19taW4gPSAzMjc2OCwKKwkucGVyaW9kX2J5dGVzX21heCA9IDY1NTM2LAorCS5wZXJpb2RzX21pbiA9ICAgICAgMSwKKwkucGVyaW9kc19tYXggPSAgICAgIDEwMjQsCit9OworCisvKiBQQ00gcGxheWJhY2sgb3BlbiBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazFfb3BlbihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPmh3ID0gc25kX3NnaW8yYXVkaW9fcGNtX2h3OworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9ICZjaGlwLT5jaGFubmVsWzFdOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMl9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCisJcnVudGltZS0+aHcgPSBzbmRfc2dpbzJhdWRpb19wY21faHc7CisJcnVudGltZS0+cHJpdmF0ZV9kYXRhID0gJmNoaXAtPmNoYW5uZWxbMl07CisJcmV0dXJuIDA7Cit9CisKKy8qIFBDTSBjYXB0dXJlIG9wZW4gY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fY2FwdHVyZV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCisJcnVudGltZS0+aHcgPSBzbmRfc2dpbzJhdWRpb19wY21faHc7CisJcnVudGltZS0+cHJpdmF0ZV9kYXRhID0gJmNoaXAtPmNoYW5uZWxbMF07CisJcmV0dXJuIDA7Cit9CisKKy8qIFBDTSBjbG9zZSBjYWxsYmFjayAqLworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKworCXJ1bnRpbWUtPnByaXZhdGVfZGF0YSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKKworLyogaHdfcGFyYW1zIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqaHdfcGFyYW1zKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJaW50IHNpemUgPSBwYXJhbXNfYnVmZmVyX2J5dGVzKGh3X3BhcmFtcyk7CisKKwkvKiBhbGxvYyB2aXJ0dWFsICdkbWEnIGFyZWEgKi8KKwlpZiAocnVudGltZS0+ZG1hX2FyZWEpCisJCXZmcmVlKHJ1bnRpbWUtPmRtYV9hcmVhKTsKKwlydW50aW1lLT5kbWFfYXJlYSA9IHZtYWxsb2Moc2l6ZSk7CisJaWYgKHJ1bnRpbWUtPmRtYV9hcmVhID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCXJ1bnRpbWUtPmRtYV9ieXRlcyA9IHNpemU7CisJcmV0dXJuIDA7Cit9CisKKy8qIGh3X2ZyZWUgY2FsbGJhY2sgKi8KK3N0YXRpYyBpbnQgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJaWYgKHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEpCisJCXZmcmVlKHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEpOworCXN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FyZWEgPSBOVUxMOworCXJldHVybiAwOworfQorCisvKiBwcmVwYXJlIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV9wcmVwYXJlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBzbmRfc2dpbzJhdWRpb19jaGFuICpjaGFuID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisJaW50IGNoID0gY2hhbi0+aWR4OworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCisJLyogU2V0dXAgdGhlIHBzZXVkby1kbWEgdHJhbnNmZXIgcG9pbnRlcnMuICAqLworCWNoaXAtPmNoYW5uZWxbY2hdLnBvcyA9IDA7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc2l6ZSA9IDA7CisJY2hpcC0+Y2hhbm5lbFtjaF0uc3Vic3RyZWFtID0gc3Vic3RyZWFtOworCisJLyogc2V0IEFEMTg0MyBmb3JtYXQgKi8KKwkvKiBoYXJkd2FyZSBmb3JtYXQgaXMgYWx3YXlzIFMxNl9MRSAqLworCXN3aXRjaCAoc3Vic3RyZWFtLT5zdHJlYW0pIHsKKwljYXNlIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0s6CisJCWFkMTg0M19zZXR1cF9kYWMoJmNoaXAtPmFkMTg0MywKKwkJCQkgY2ggLSAxLAorCQkJCSBydW50aW1lLT5yYXRlLAorCQkJCSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRSwKKwkJCQkgcnVudGltZS0+Y2hhbm5lbHMpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRToKKwkJYWQxODQzX3NldHVwX2FkYygmY2hpcC0+YWQxODQzLAorCQkJCSBydW50aW1lLT5yYXRlLAorCQkJCSBTTkRSVl9QQ01fRk9STUFUX1MxNl9MRSwKKwkJCQkgcnVudGltZS0+Y2hhbm5lbHMpOworCQlicmVhazsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+Y2hhbm5lbFtjaF0ubG9jaywgZmxhZ3MpOworCXJldHVybiAwOworfQorCisvKiB0cmlnZ2VyIGNhbGxiYWNrICovCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX3BjbV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgICAgIGludCBjbWQpCit7CisJc3dpdGNoIChjbWQpIHsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUQVJUOgorCQkvKiBzdGFydCB0aGUgUENNIGVuZ2luZSAqLworCQlzbmRfc2dpbzJhdWRpb19kbWFfc3RhcnQoc3Vic3RyZWFtKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCQkvKiBzdG9wIHRoZSBQQ00gZW5naW5lICovCisJCXNuZF9zZ2lvMmF1ZGlvX2RtYV9zdG9wKHN1YnN0cmVhbSk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKwlyZXR1cm4gMDsKK30KKworLyogcG9pbnRlciBjYWxsYmFjayAqLworc3RhdGljIHNuZF9wY21fdWZyYW1lc190CitzbmRfc2dpbzJhdWRpb19wY21fcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CisJc3RydWN0IHNuZF9zZ2lvMmF1ZGlvX2NoYW4gKmNoYW4gPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCS8qIGdldCB0aGUgY3VycmVudCBoYXJkd2FyZSBwb2ludGVyICovCisJcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsCisJCQkgICAgICAgY2hpcC0+Y2hhbm5lbFtjaGFuLT5pZHhdLnBvcyk7Cit9CisKKy8qIGdldCB0aGUgcGh5c2ljYWwgcGFnZSBwb2ludGVyIG9uIHRoZSBnaXZlbiBvZmZzZXQgKi8KK3N0YXRpYyBzdHJ1Y3QgcGFnZSAqc25kX3NnaW8yYXVkaW9fcGFnZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCQkJdW5zaWduZWQgbG9uZyBvZmZzZXQpCit7CisJcmV0dXJuIHZtYWxsb2NfdG9fcGFnZShzdWJzdHJlYW0tPnJ1bnRpbWUtPmRtYV9hcmVhICsgb2Zmc2V0KTsKK30KKworLyogb3BlcmF0b3JzICovCitzdGF0aWMgc3RydWN0IHNuZF9wY21fb3BzIHNuZF9zZ2lvMmF1ZGlvX3BsYXliYWNrMV9vcHMgPSB7CisJLm9wZW4gPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGxheWJhY2sxX29wZW4sCisJLmNsb3NlID0gICAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIsCisJLnBhZ2UgPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGFnZSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3BjbV9vcHMgc25kX3NnaW8yYXVkaW9fcGxheWJhY2syX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19wbGF5YmFjazJfb3BlbiwKKwkuY2xvc2UgPSAgICAgICBzbmRfc2dpbzJhdWRpb19wY21fY2xvc2UsCisJLmlvY3RsID0gICAgICAgc25kX3BjbV9saWJfaW9jdGwsCisJLmh3X3BhcmFtcyA9ICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X3BhcmFtcywKKwkuaHdfZnJlZSA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21faHdfZnJlZSwKKwkucHJlcGFyZSA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fcHJlcGFyZSwKKwkudHJpZ2dlciA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fdHJpZ2dlciwKKwkucG9pbnRlciA9ICAgICBzbmRfc2dpbzJhdWRpb19wY21fcG9pbnRlciwKKwkucGFnZSA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19wYWdlLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBzbmRfc2dpbzJhdWRpb19jYXB0dXJlX29wcyA9IHsKKwkub3BlbiA9ICAgICAgICBzbmRfc2dpbzJhdWRpb19jYXB0dXJlX29wZW4sCisJLmNsb3NlID0gICAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2Nsb3NlLAorCS5pb2N0bCA9ICAgICAgIHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSAgIHNuZF9zZ2lvMmF1ZGlvX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX2h3X2ZyZWUsCisJLnByZXBhcmUgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3ByZXBhcmUsCisJLnRyaWdnZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSAgICAgc25kX3NnaW8yYXVkaW9fcGNtX3BvaW50ZXIsCisJLnBhZ2UgPSAgICAgICAgc25kX3NnaW8yYXVkaW9fcGFnZSwKK307CisKKy8qCisgKiAgZGVmaW5pdGlvbnMgb2YgY2FwdHVyZSBhcmUgb21pdHRlZCBoZXJlLi4uCisgKi8KKworLyogY3JlYXRlIGEgcGNtIGRldmljZSAqLworc3RhdGljIGludCBfX2RldmluaXQgc25kX3NnaW8yYXVkaW9fbmV3X3BjbShzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXApCit7CisJc3RydWN0IHNuZF9wY20gKnBjbTsKKwlpbnQgZXJyOworCisJLyogY3JlYXRlIGZpcnN0IHBjbSBkZXZpY2Ugd2l0aCBvbmUgb3V0cHV0cyBhbmQgb25lIGlucHV0ICovCisJZXJyID0gc25kX3BjbV9uZXcoY2hpcC0+Y2FyZCwgIlNHSSBPMiBBdWRpbyIsIDAsIDEsIDEsICZwY20pOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJcGNtLT5wcml2YXRlX2RhdGEgPSBjaGlwOworCXN0cmNweShwY20tPm5hbWUsICJTR0kgTzIgREFDMSIpOworCisJLyogc2V0IG9wZXJhdG9ycyAqLworCXNuZF9wY21fc2V0X29wcyhwY20sIFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0ssCisJCQkmc25kX3NnaW8yYXVkaW9fcGxheWJhY2sxX29wcyk7CisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9DQVBUVVJFLAorCQkJJnNuZF9zZ2lvMmF1ZGlvX2NhcHR1cmVfb3BzKTsKKworCS8qIGNyZWF0ZSBzZWNvbmQgIHBjbSBkZXZpY2Ugd2l0aCBvbmUgb3V0cHV0cyBhbmQgbm8gaW5wdXQgKi8KKwllcnIgPSBzbmRfcGNtX25ldyhjaGlwLT5jYXJkLCAiU0dJIE8yIEF1ZGlvIiwgMSwgMSwgMCwgJnBjbSk7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwlwY20tPnByaXZhdGVfZGF0YSA9IGNoaXA7CisJc3RyY3B5KHBjbS0+bmFtZSwgIlNHSSBPMiBEQUMyIik7CisKKwkvKiBzZXQgb3BlcmF0b3JzICovCisJc25kX3BjbV9zZXRfb3BzKHBjbSwgU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSywKKwkJCSZzbmRfc2dpbzJhdWRpb19wbGF5YmFjazJfb3BzKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHsKKwlpbnQgaWR4OworCWludCBpcnE7CisJaXJxcmV0dXJuX3QgKCppc3IpKGludCwgdm9pZCAqKTsKKwljb25zdCBjaGFyICpkZXNjOworfSBzbmRfc2dpbzJfaXNyX3RhYmxlW10gPSB7CisJeworCQkuaWR4ID0gMCwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8xX0RNQVRfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZG1hX2luX2lzciwKKwkJLmRlc2MgPSAiQ2FwdHVyZSBETUEgQ2hhbm5lbCAwIgorCX0sIHsKKwkJLmlkeCA9IDAsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPMV9PRl9JUlEsCisJCS5pc3IgPSBzbmRfc2dpbzJhdWRpb19lcnJvcl9pc3IsCisJCS5kZXNjID0gIkNhcHR1cmUgT3ZlcmZsb3ciCisJfSwgeworCQkuaWR4ID0gMSwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8yX0RNQVRfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZG1hX291dF9pc3IsCisJCS5kZXNjID0gIlBsYXliYWNrIERNQSBDaGFubmVsIDEiCisJfSwgeworCQkuaWR4ID0gMSwKKwkJLmlycSA9IE1BQ0VJU0FfQVVESU8yX01FUlJfSVJRLAorCQkuaXNyID0gc25kX3NnaW8yYXVkaW9fZXJyb3JfaXNyLAorCQkuZGVzYyA9ICJNZW1vcnkgRXJyb3IgQ2hhbm5lbCAxIgorCX0sIHsKKwkJLmlkeCA9IDIsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPM19ETUFUX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2RtYV9vdXRfaXNyLAorCQkuZGVzYyA9ICJQbGF5YmFjayBETUEgQ2hhbm5lbCAyIgorCX0sIHsKKwkJLmlkeCA9IDIsCisJCS5pcnEgPSBNQUNFSVNBX0FVRElPM19NRVJSX0lSUSwKKwkJLmlzciA9IHNuZF9zZ2lvMmF1ZGlvX2Vycm9yX2lzciwKKwkJLmRlc2MgPSAiTWVtb3J5IEVycm9yIENoYW5uZWwgMiIKKwl9Cit9OworCisvKiBBTFNBIGRyaXZlciAqLworCitzdGF0aWMgaW50IHNuZF9zZ2lvMmF1ZGlvX2ZyZWUoc3RydWN0IHNuZF9zZ2lvMmF1ZGlvICpjaGlwKQoreworCWludCBpOworCisJLyogcmVzZXQgaW50ZXJmYWNlICovCisJd3JpdGVxKEFVRElPX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwl1ZGVsYXkoMSk7CisJd3JpdGVxKDAsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKworCS8qIHJlbGVhc2UgSVJRJ3MgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzbmRfc2dpbzJfaXNyX3RhYmxlKTsgaSsrKQorCQlmcmVlX2lycShzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlycSwKKwkJCSAmY2hpcC0+Y2hhbm5lbFtzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlkeF0pOworCisJZG1hX2ZyZWVfY29oZXJlbnQoTlVMTCwgTUFDRUlTQV9SSU5HQlVGRkVSU19TSVpFLAorCQkJICBjaGlwLT5yaW5nX2Jhc2UsIGNoaXAtPnJpbmdfYmFzZV9kbWEpOworCisJLyogcmVsZWFzZSBjYXJkIGRhdGEgKi8KKwlrZnJlZShjaGlwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfc2dpbzJhdWRpb19kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfc2dpbzJhdWRpbyAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7CisKKwlyZXR1cm4gc25kX3NnaW8yYXVkaW9fZnJlZShjaGlwKTsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfZGV2aWNlX29wcyBvcHMgPSB7CisJLmRldl9mcmVlID0gc25kX3NnaW8yYXVkaW9fZGV2X2ZyZWUsCit9OworCitzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc2dpbzJhdWRpb19jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLAorCQkJCQkgICBzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKipyY2hpcCkKK3sKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXA7CisJaW50IGksIGVycjsKKworCSpyY2hpcCA9IE5VTEw7CisKKwkvKiBjaGVjayBpZiBhIGNvZGVjIGlzIGF0dGFjaGVkIHRvIHRoZSBpbnRlcmZhY2UgKi8KKwkvKiAoQXVkaW8gb3IgQXVkaW8vVmlkZW8gYm9hcmQgcHJlc2VudCkgKi8KKwlpZiAoIShyZWFkcSgmbWFjZS0+cGVyaWYuYXVkaW8uY29udHJvbCkgJiBBVURJT19DT05UUk9MX0NPREVDX1BSRVNFTlQpKQorCQlyZXR1cm4gLUVOT0VOVDsKKworCWNoaXAgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoY2hpcCA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCWNoaXAtPmNhcmQgPSBjYXJkOworCisJY2hpcC0+cmluZ19iYXNlID0gZG1hX2FsbG9jX2NvaGVyZW50KE5VTEwsIE1BQ0VJU0FfUklOR0JVRkZFUlNfU0laRSwKKwkJCQkJICAgICAmY2hpcC0+cmluZ19iYXNlX2RtYSwgR0ZQX1VTRVIpOworCWlmIChjaGlwLT5yaW5nX2Jhc2UgPT0gTlVMTCkgeworCQlwcmludGsoS0VSTl9FUlIKKwkJICAgICAgICJzZ2lvMmF1ZGlvOiBjb3VsZCBub3QgYWxsb2NhdGUgcmluZyBidWZmZXJzXG4iKTsKKwkJa2ZyZWUoY2hpcCk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCXNwaW5fbG9ja19pbml0KCZjaGlwLT5hZDE4NDNfbG9jayk7CisKKwkvKiBpbml0aWFsaXplIGNoYW5uZWxzICovCisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgeworCQlzcGluX2xvY2tfaW5pdCgmY2hpcC0+Y2hhbm5lbFtpXS5sb2NrKTsKKwkJY2hpcC0+Y2hhbm5lbFtpXS5pZHggPSBpOworCX0KKworCS8qIGFsbG9jYXRlIElSUXMgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzbmRfc2dpbzJfaXNyX3RhYmxlKTsgaSsrKSB7CisJCWlmIChyZXF1ZXN0X2lycShzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlycSwKKwkJCQlzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlzciwKKwkJCQkwLAorCQkJCXNuZF9zZ2lvMl9pc3JfdGFibGVbaV0uZGVzYywKKwkJCQkmY2hpcC0+Y2hhbm5lbFtzbmRfc2dpbzJfaXNyX3RhYmxlW2ldLmlkeF0pKSB7CisJCQlzbmRfc2dpbzJhdWRpb19mcmVlKGNoaXApOworCQkJcHJpbnRrKEtFUk5fRVJSICJzZ2lvMmF1ZGlvOiBjYW5ub3QgYWxsb2NhdGUgaXJxICVkXG4iLAorCQkJICAgICAgIHNuZF9zZ2lvMl9pc3JfdGFibGVbaV0uaXJxKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwl9CisKKwkvKiByZXNldCB0aGUgaW50ZXJmYWNlICovCisJd3JpdGVxKEFVRElPX0NPTlRST0xfUkVTRVQsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwl1ZGVsYXkoMSk7CisJd3JpdGVxKDAsICZtYWNlLT5wZXJpZi5hdWRpby5jb250cm9sKTsKKwltc2xlZXBfaW50ZXJydXB0aWJsZSgxKTsgLyogZ2l2ZSB0aW1lIHRvIHJlY292ZXIgKi8KKworCS8qIHNldCByaW5nIGJhc2UgKi8KKwl3cml0ZXEoY2hpcC0+cmluZ19iYXNlX2RtYSwgJm1hY2UtPnBlcmlmLmN0cmwucmluZ2Jhc2UpOworCisJLyogYXR0YWNoIHRoZSBBRDE4NDMgY29kZWMgKi8KKwljaGlwLT5hZDE4NDMucmVhZCA9IHJlYWRfYWQxODQzX3JlZzsKKwljaGlwLT5hZDE4NDMud3JpdGUgPSB3cml0ZV9hZDE4NDNfcmVnOworCWNoaXAtPmFkMTg0My5jaGlwID0gY2hpcDsKKworCS8qIGluaXRpYWxpemUgdGhlIEFEMTg0MyBjb2RlYyAqLworCWVyciA9IGFkMTg0M19pbml0KCZjaGlwLT5hZDE4NDMpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9zZ2lvMmF1ZGlvX2ZyZWUoY2hpcCk7CisJCXJldHVybiBlcnI7CisJfQorCisJZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0xPV0xFVkVMLCBjaGlwLCAmb3BzKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfc2dpbzJhdWRpb19mcmVlKGNoaXApOworCQlyZXR1cm4gZXJyOworCX0KKwkqcmNoaXAgPSBjaGlwOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc2dpbzJhdWRpb19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfY2FyZCAqY2FyZDsKKwlzdHJ1Y3Qgc25kX3NnaW8yYXVkaW8gKmNoaXA7CisJaW50IGVycjsKKworCWNhcmQgPSBzbmRfY2FyZF9uZXcoaW5kZXgsIGlkLCBUSElTX01PRFVMRSwgMCk7CisJaWYgKGNhcmQgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwllcnIgPSBzbmRfc2dpbzJhdWRpb19jcmVhdGUoY2FyZCwgJmNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCXNuZF9jYXJkX3NldF9kZXYoY2FyZCwgJnBkZXYtPmRldik7CisKKwllcnIgPSBzbmRfc2dpbzJhdWRpb19uZXdfcGNtKGNoaXApOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCWVyciA9IHNuZF9zZ2lvMmF1ZGlvX25ld19taXhlcihjaGlwKTsKKwlpZiAoZXJyIDwgMCkgeworCQlzbmRfY2FyZF9mcmVlKGNhcmQpOworCQlyZXR1cm4gZXJyOworCX0KKworCXN0cmNweShjYXJkLT5kcml2ZXIsICJTR0kgTzIgQXVkaW8iKTsKKwlzdHJjcHkoY2FyZC0+c2hvcnRuYW1lLCAiU0dJIE8yIEF1ZGlvIik7CisJc3ByaW50ZihjYXJkLT5sb25nbmFtZSwgIiVzIGlycSAlaS0laSIsCisJCWNhcmQtPnNob3J0bmFtZSwKKwkJTUFDRUlTQV9BVURJTzFfRE1BVF9JUlEsCisJCU1BQ0VJU0FfQVVESU8zX01FUlJfSVJRKTsKKworCWVyciA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNhcmQpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJCXJldHVybiBlcnI7CisJfQorCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGNhcmQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IF9fZXhpdCBzbmRfc2dpbzJhdWRpb19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgTlVMTCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHNnaW8yYXVkaW9fZHJpdmVyID0geworCS5wcm9iZQk9IHNuZF9zZ2lvMmF1ZGlvX3Byb2JlLAorCS5yZW1vdmUJPSBfX2RldmV4aXRfcChzbmRfc2dpbzJhdWRpb19yZW1vdmUpLAorCS5kcml2ZXIgPSB7CisJCS5uYW1lCT0gInNnaW8yYXVkaW8iLAorCQkub3duZXIJPSBUSElTX01PRFVMRSwKKwl9Cit9OworCitzdGF0aWMgaW50IF9faW5pdCBhbHNhX2NhcmRfc2dpbzJhdWRpb19pbml0KHZvaWQpCit7CisJcmV0dXJuIHBsYXRmb3JtX2RyaXZlcl9yZWdpc3Rlcigmc2dpbzJhdWRpb19kcml2ZXIpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYWxzYV9jYXJkX3NnaW8yYXVkaW9fZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzZ2lvMmF1ZGlvX2RyaXZlcik7Cit9CisKK21vZHVsZV9pbml0KGFsc2FfY2FyZF9zZ2lvMmF1ZGlvX2luaXQpCittb2R1bGVfZXhpdChhbHNhX2NhcmRfc2dpbzJhdWRpb19leGl0KQpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL0tjb25maWcgYi9zb3VuZC9vc3MvS2NvbmZpZwppbmRleCAzYmUyZGMxLi4zMzk0MDEzIDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvS2NvbmZpZworKysgYi9zb3VuZC9vc3MvS2NvbmZpZwpAQCAtNyw3ICs3LDcgQEAKIAogY29uZmlnIFNPVU5EX0JDTV9DUzQyOTdBCiAJdHJpc3RhdGUgIkNyeXN0YWwgU291bmQgQ1M0Mjk3YSAoZm9yIFN3YXJtKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNJQllURV9TV0FSTQorCWRlcGVuZHMgb24gU0lCWVRFX1NXQVJNCiAJaGVscAogCSAgVGhlIEJDTTkxMjUwQSBoYXMgYSBDcnlzdGFsIENTNDI5N2Egb24gc3luY2hyb25vdXMgc2VyaWFsCiAJICBwb3J0IEIgKGluIGFkZGl0aW9uIHRvIHRoZSBEQi05IHNlcmlhbCBwb3J0KS4gIFNheSBZIG9yIE0KQEAgLTE3LDcgKzE3LDcgQEAKIAogY29uZmlnIFNPVU5EX1ZXU05ECiAJdHJpc3RhdGUgIlNHSSBWaXN1YWwgV29ya3N0YXRpb24gU291bmQiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiBYODZfVklTV1MKKwlkZXBlbmRzIG9uIFg4Nl9WSVNXUwogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IGhhdmUgYW4gU0dJIFZpc3VhbCBXb3Jrc3RhdGlvbiBhbmQgeW91IHdhbnQgdG8gYmUKIAkgIGFibGUgdG8gdXNlIGl0cyBvbi1ib2FyZCBhdWRpby4gIFJlYWQKQEAgLTI2LDE5ICsyNiwxOCBAQAogCiBjb25maWcgU09VTkRfSEFMMgogCXRyaXN0YXRlICJTR0kgSEFMMiBzb3VuZCAoRVhQRVJJTUVOVEFMKSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIFNHSV9JUDIyICYmIEVYUEVSSU1FTlRBTAorCWRlcGVuZHMgb24gU0dJX0lQMjIgJiYgRVhQRVJJTUVOVEFMCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3UgaGF2ZSBhbiBTR0kgSW5keSBvciBJbmRpZ28yIHN5c3RlbSBhbmQgd2FudCB0byBiZSBhYmxlIHRvCiAJICB1c2UgaXRzIG9uLWJvYXJkIEEyIGF1ZGlvIHN5c3RlbS4KIAogY29uZmlnIFNPVU5EX0FVMTU1MF9BQzk3CiAJdHJpc3RhdGUgIkF1MTU1MC9BdTEyMDAgQUM5NyBTb3VuZCIKLQlzZWxlY3QgU05EX0FDOTdfQ09ERUMKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIChTT0NfQVUxNTUwIHx8IFNPQ19BVTEyMDApCisJZGVwZW5kcyBvbiBTT0NfQVUxNTUwIHx8IFNPQ19BVTEyMDAKIAogY29uZmlnIFNPVU5EX1RSSURFTlQKIAl0cmlzdGF0ZSAiVHJpZGVudCA0RFdhdmUgRFgvTlgsIFNpUyA3MDE4IG9yIEFMaSA1NDUxIFBDSSBBdWRpbyBDb3JlIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgUENJCisJZGVwZW5kcyBvbiBQQ0kKIAktLS1oZWxwLS0tCiAJICBTYXkgWSBvciBNIGlmIHlvdSBoYXZlIGEgUENJIHNvdW5kIGNhcmQgdXRpbGl6aW5nIHRoZSBUcmlkZW50CiAJICA0RFdhdmUtRFgvTlggY2hpcHNldCBvciB5b3VyIG1vdGhlciBib2FyZCBjaGlwc2V0IGhhcyBTaVMgNzAxOApAQCAtNzksNyArNzgsNyBAQAogCiBjb25maWcgU09VTkRfTVNORENMQVMKIAl0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgVHVydGxlIEJlYWNoIE11bHRpU291bmQgQ2xhc3NpYywgVGFoaXRpLCBNb250ZXJleSIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIChtIHx8ICFTVEFOREFMT05FKSAmJiBJU0EKKwlkZXBlbmRzIG9uIChtIHx8ICFTVEFOREFMT05FKSAmJiBJU0EKIAloZWxwCiAJICBTYXkgTSBoZXJlIGlmIHlvdSBoYXZlIGEgVHVydGxlIEJlYWNoIE11bHRpU291bmQgQ2xhc3NpYywgVGFoaXRpIG9yCiAJICBNb250ZXJleSAobm90IGZvciB0aGUgUGlubmFjbGUgb3IgRmlqaSkuCkBAIC0xNDMsNyArMTQyLDcgQEAKIAogY29uZmlnIFNPVU5EX01TTkRQSU4KIAl0cmlzdGF0ZSAiU3VwcG9ydCBmb3IgVHVydGxlIEJlYWNoIE11bHRpU291bmQgUGlubmFjbGUsIEZpamkiCi0JZGVwZW5kcyBvbiBTT1VORF9QUklNRSAmJiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCisJZGVwZW5kcyBvbiAobSB8fCAhU1RBTkRBTE9ORSkgJiYgSVNBCiAJaGVscAogCSAgU2F5IE0gaGVyZSBpZiB5b3UgaGF2ZSBhIFR1cnRsZSBCZWFjaCBNdWx0aVNvdW5kIFBpbm5hY2xlIG9yIEZpamkuCiAJICBTZWUgPGZpbGU6RG9jdW1lbnRhdGlvbi9zb3VuZC9vc3MvTXVsdGlTb3VuZD4gZm9yIGltcG9ydGFudCBpbmZvcm1hdGlvbgpAQCAtMjI5LDcgKzIyOCw3IEBACiAJICBjb25maWd1cmUgdGhlIGNhcmQncyByZXNvdXJjZXMuCiAKIGNvbW1lbnQgIk1TTkQgUGlubmFjbGUgRFNQIHNlY3Rpb24gd2lsbCBiZSBjb25maWd1cmVkIHRvIGFib3ZlIHBhcmFtZXRlcnMuIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCisJZGVwZW5kcyBvbiBTT1VORF9NU05EUElOPXkgJiYgTVNORFBJTl9OT05QTlAKIAogY29uZmlnIE1TTkRQSU5fQ0ZHCiAJaGV4ICJNU05EIFBpbm5hY2xlIGNvbmZpZyBwb3J0IDI1MCwyNjAsMjcwIgpAQCAtMjQyLDcgKzI0MSw3IEBACiAJICBNb2RlIi4KIAogY29tbWVudCAiUGlubmFjbGUtc3BlY2lmaWMgRGV2aWNlIENvbmZpZ3VyYXRpb24gKDAgZGlzYWJsZXMpIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgU09VTkRfTVNORFBJTj15ICYmIE1TTkRQSU5fTk9OUE5QCisJZGVwZW5kcyBvbiBTT1VORF9NU05EUElOPXkgJiYgTVNORFBJTl9OT05QTlAKIAogY29uZmlnIE1TTkRQSU5fTVBVX0lPCiAJaGV4ICJNU05EIFBpbm5hY2xlIE1QVSBJL08gKGUuZy4gMzMwKSIKQEAgLTI5NCw3ICsyOTMsNyBAQAogCiBjb25maWcgTVNORF9GSUZPU0laRQogCWludCAiTVNORCBidWZmZXIgc2l6ZSAoa0IpIgotCWRlcGVuZHMgb24gU09VTkRfUFJJTUUgJiYgKFNPVU5EX01TTkRQSU49eSB8fCBTT1VORF9NU05EQ0xBUz15KQorCWRlcGVuZHMgb24gU09VTkRfTVNORFBJTj15IHx8IFNPVU5EX01TTkRDTEFTPXkKIAlkZWZhdWx0ICIxMjgiCiAJaGVscAogCSAgQ29uZmlndXJlcyB0aGUgc2l6ZSBvZiBlYWNoIGF1ZGlvIGJ1ZmZlciwgaW4ga2lsb2J5dGVzLCBmb3IKQEAgLTMwMiw5ICszMDEsOSBAQAogCSAgYW5kIFBpbm5hY2xlKS4gTGFyZ2VyIHZhbHVlcyByZWR1Y2UgdGhlIGNoYW5jZSBvZiBkYXRhIG92ZXJydW5zIGF0CiAJICB0aGUgZXhwZW5zZSBvZiBvdmVyYWxsIGxhdGVuY3kuIElmIHVuc3VyZSwgdXNlIHRoZSBkZWZhdWx0LgogCi1jb25maWcgU09VTkRfT1NTCittZW51Y29uZmlnIFNPVU5EX09TUwogCXRyaXN0YXRlICJPU1Mgc291bmQgbW9kdWxlcyIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIElTQV9ETUFfQVBJICYmIFZJUlRfVE9fQlVTCisJZGVwZW5kcyBvbiBJU0FfRE1BX0FQSSAmJiBWSVJUX1RPX0JVUwogCWhlbHAKIAkgIE9TUyBpcyB0aGUgT3BlbiBTb3VuZCBTeXN0ZW0gc3VpdGUgb2Ygc291bmQgY2FyZCBkcml2ZXJzLiAgVGhleSBtYWtlCiAJICBzb3VuZCBwcm9ncmFtbWluZyBlYXNpZXIgc2luY2UgdGhleSBwcm92aWRlIGEgY29tbW9uIEFQSS4gIFNheSBZIG9yCkBAIC0zMTIsMTYgKzMxMSwxNiBAQAogCSAgZHJpdmVyIGZvciB5b3VyIHNvdW5kIGNhcmQgYWJvdmUsIHRoZW4gcGljayB5b3VyIGRyaXZlciBmcm9tIHRoZQogCSAgbGlzdCBiZWxvdy4KIAoraWYgU09VTkRfT1NTCisKIGNvbmZpZyBTT1VORF9UUkFDRUlOSVQKIAlib29sICJWZXJib3NlIGluaXRpYWxpc2F0aW9uIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgVmVyYm9zZSBzb3VuZGNhcmQgaW5pdGlhbGl6YXRpb24gLS0gYWZmZWN0cyB0aGUgZm9ybWF0IG9mIGF1dG9wcm9iZQogCSAgYW5kIGluaXRpYWxpemF0aW9uIG1lc3NhZ2VzIGF0IGJvb3QgdGltZS4KIAogY29uZmlnIFNPVU5EX0RNQVAKIAlib29sICJQZXJzaXN0ZW50IERNQSBidWZmZXJzIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgTGludXggY2FuIG9mdGVuIGhhdmUgcHJvYmxlbXMgYWxsb2NhdGluZyBETUEgYnVmZmVycyBmb3IgSVNBIHNvdW5kCiAJICBjYXJkcyBvbiBtYWNoaW5lcyB3aXRoIG1vcmUgdGhhbiAxNk1CIG9mIFJBTS4gVGhpcyBpcyBiZWNhdXNlIElTQQpAQCAtMzM4LDggKzMzNyw2IEBACiAKIGNvbmZpZyBTT1VORF9TU0NBUEUKIAl0cmlzdGF0ZSAiRW5zb25pcSBTb3VuZFNjYXBlIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKLQlkZXBlbmRzIG9uIFZJUlRfVE9fQlVTCiAJaGVscAogCSAgQW5zd2VyIFkgaWYgeW91IGhhdmUgYSBzb3VuZCBjYXJkIGJhc2VkIG9uIHRoZSBFbnNvbmlxIFNvdW5kU2NhcGUKIAkgIGNoaXBzZXQuIFN1Y2ggY2FyZHMgYXJlIGJlaW5nIG1hbnVmYWN0dXJlZCBhdCBsZWFzdCBieSBFbnNvbmlxLCBTcGVhCkBAIC0zNTIsMTMgKzM0OSwxMSBAQAogCiBjb25maWcgU09VTkRfVk1JREkKIAl0cmlzdGF0ZSAiTG9vcGJhY2sgTUlESSBkZXZpY2Ugc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCWhlbHAKIAkgIFN1cHBvcnQgZm9yIE1JREkgbG9vcGJhY2sgb24gcG9ydCAxIG9yIDIuCiAKIGNvbmZpZyBTT1VORF9UUklYCiAJdHJpc3RhdGUgIk1lZGlhVHJpeCBBdWRpb1RyaXggUHJvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAloZWxwCiAJICBBbnN3ZXIgWSBpZiB5b3UgaGF2ZSB0aGUgQXVkaW9UcmlYIFBybyBzb3VuZCBjYXJkIG1hbnVmYWN0dXJlZAogCSAgYnkgTWVkaWFUcml4LgpAQCAtMzgyLDcgKzM3Nyw2IEBACiAKIGNvbmZpZyBTT1VORF9NU1MKIAl0cmlzdGF0ZSAiTWljcm9zb2Z0IFNvdW5kIFN5c3RlbSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQWdhaW4gdGhpbmsgY2FyZWZ1bGx5IGJlZm9yZSBhbnN3ZXJpbmcgWSB0byB0aGlzIHF1ZXN0aW9uLiAgSXQncwogCSAgc2FmZSB0byBhbnN3ZXIgWSBpZiB5b3UgaGF2ZSB0aGUgb3JpZ2luYWwgV2luZG93cyBTb3VuZCBTeXN0ZW0gY2FyZApAQCAtNDE0LDcgKzQwOCw2IEBACiAKIGNvbmZpZyBTT1VORF9NUFU0MDEKIAl0cmlzdGF0ZSAiTVBVLTQwMSBzdXBwb3J0IChOT1QgZm9yIFNCMTYpIgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQmUgY2FyZWZ1bCB3aXRoIHRoaXMgcXVlc3Rpb24uICBUaGUgTVBVNDAxIGludGVyZmFjZSBpcyBzdXBwb3J0ZWQgYnkKIAkgIGFsbCBzb3VuZCBjYXJkcy4gIEhvd2V2ZXIsIHNvbWUgbmF0aXZlbHkgc3VwcG9ydGVkIGNhcmRzIGhhdmUgdGhlaXIKQEAgLTQzMCw3ICs0MjMsNiBAQAogCiBjb25maWcgU09VTkRfUEFTCiAJdHJpc3RhdGUgIlByb0F1ZGlvU3BlY3RydW0gMTYgc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFuc3dlciBZIG9ubHkgaWYgeW91IGhhdmUgYSBQcm8gQXVkaW8gU3BlY3RydW0gMTYsIFByb0F1ZGlvIFN0dWRpbwogCSAgMTYgb3IgTG9naXRlY2ggU291bmRNYW4gMTYgc291bmQgY2FyZC4gQW5zd2VyIE4gaWYgeW91IGhhdmUgc29tZQpAQCAtNDUyLDcgKzQ0NCw2IEBACiAKIGNvbmZpZyBTT1VORF9QU1MKIAl0cmlzdGF0ZSAiUFNTIChBRDE4NDgsIEFEU1AtMjExNSwgRVNDNjE0KSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgQW5zd2VyIFkgb3IgTSBpZiB5b3UgaGF2ZSBhbiBPcmNoaWQgU1czMiwgQ2FyZGluYWwgRFNQMTYsIEJlZXRob3ZlbgogCSAgQURTUC0xNiBvciBzb21lIG90aGVyIGNhcmQgYmFzZWQgb24gdGhlIFBTUyBjaGlwc2V0IChBRDE4NDggY29kZWMgKwpAQCAtNDk1LDcgKzQ4Niw2IEBACiAKIGNvbmZpZyBTT1VORF9TQgogCXRyaXN0YXRlICIxMDAlIFNvdW5kIEJsYXN0ZXIgY29tcGF0aWJsZXMgKFNCMTYvMzIvNjQsIEVTUywgSmF6ejE2KSBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJLS0taGVscC0tLQogCSAgQW5zd2VyIFkgaWYgeW91IGhhdmUgYW4gb3JpZ2luYWwgU291bmQgQmxhc3RlciBjYXJkIG1hZGUgYnkgQ3JlYXRpdmUKIAkgIExhYnMgb3IgYSAxMDAlIGhhcmR3YXJlIGNvbXBhdGlibGUgY2xvbmUgKGxpa2UgdGhlIFRodW5kZXJib2FyZCBvcgpAQCAtNTIyLDcgKzUxMiw2IEBACiAKIGNvbmZpZyBTT1VORF9ZTTM4MTIKIAl0cmlzdGF0ZSAiWWFtYWhhIEZNIHN5bnRoZXNpemVyIChZTTM4MTIvT1BMLTMpIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTT1VORF9PU1MKIAktLS1oZWxwLS0tCiAJICBBbnN3ZXIgWSBpZiB5b3VyIGNhcmQgaGFzIGEgRk0gY2hpcCBtYWRlIGJ5IFlhbWFoYSAoT1BMMi9PUEwzL09QTDQpLgogCSAgQW5zd2VyaW5nIFkgaXMgdXN1YWxseSBhIHNhZmUgYW5kIHJlY29tbWVuZGVkIGNob2ljZSwgaG93ZXZlciBzb21lCkBAIC01MzgsNyArNTI3LDYgQEAKIAogY29uZmlnIFNPVU5EX1VBUlQ2ODUwCiAJdHJpc3RhdGUgIjY4NTAgVUFSVCBzdXBwb3J0IgotCWRlcGVuZHMgb24gU09VTkRfT1NTCiAJaGVscAogCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBNSURJIGludGVyZmFjZXMgYmFzZWQgb24gdGhlIDY4NTAKIAkgIFVBUlQgY2hpcC4gVGhpcyBpbnRlcmZhY2UgaXMgcmFyZWx5IGZvdW5kIG9uIHNvdW5kIGNhcmRzLiBJdCdzIHNhZmUKQEAgLTU0OSw3ICs1MzcsNiBAQAogCiBjb25maWcgU09VTkRfQUVEU1AxNgogCXRyaXN0YXRlICJHYWxsYW50IEF1ZGlvIENhcmRzIChTQy02MDAwIGFuZCBTQy02NjAwIGJhc2VkKSIKLQlkZXBlbmRzIG9uIFNPVU5EX09TUwogCS0tLWhlbHAtLS0KIAkgIEFuc3dlciBZIGlmIHlvdSBoYXZlIGEgR2FsbGFudCdzIEF1ZGlvIEV4Y2VsIERTUCAxNiBjYXJkLiBUaGlzCiAJICBkcml2ZXIgc3VwcG9ydHMgQXVkaW8gRXhjZWwgRFNQIDE2IGJ1dCBub3QgdGhlIElJSSBub3IgUG5QIHZlcnNpb25zCkBAIC02MzAsMTQgKzYxNywxNCBAQAogCiBjb25maWcgU09VTkRfVklEQwogCXRyaXN0YXRlICJWSURDIDE2LWJpdCBzb3VuZCIKLQlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9BQ09STiB8fCBBUkNIX0NMUFM3NTAwKSAmJiBTT1VORF9PU1MKKwlkZXBlbmRzIG9uIEFSTSAmJiAoQVJDSF9BQ09STiB8fCBBUkNIX0NMUFM3NTAwKQogCWhlbHAKIAkgIDE2LWJpdCBzdXBwb3J0IGZvciB0aGUgVklEQyBvbmJvYXJkIHNvdW5kIGhhcmR3YXJlIGZvdW5kIG9uIEFjb3JuCiAJICBtYWNoaW5lcy4KIAogY29uZmlnIFNPVU5EX1dBVkVBUlRJU1QKIAl0cmlzdGF0ZSAiTmV0d2luZGVyIFdhdmVBcnRpc3QiCi0JZGVwZW5kcyBvbiBBUk0gJiYgU09VTkRfT1NTICYmIEFSQ0hfTkVUV0lOREVSCisJZGVwZW5kcyBvbiBBUk0gJiYgQVJDSF9ORVRXSU5ERVIKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIFJvY2t3ZWxsIFdhdmVBcnRpc3Qgc291bmQKIAkgIHN5c3RlbS4gIFRoaXMgZHJpdmVyIGlzIG1haW5seSBmb3IgdGhlIE5ldFdpbmRlci4KQEAgLTY0Niw5ICs2MzMsMTEgQEAKIAl0cmlzdGF0ZSAiWHByZXNzQXVkaW8gU291bmQgQmxhc3RlciBlbXVsYXRpb24iCiAJZGVwZW5kcyBvbiBTT1VORF9TQgogCitlbmRpZgkjIFNPVU5EX09TUworCiBjb25maWcgU09VTkRfU0hfREFDX0FVRElPCiAJdHJpc3RhdGUgIlN1cGVySCBEQUMgYXVkaW8gc3VwcG9ydCIKLQlkZXBlbmRzIG9uIFNPVU5EX1BSSU1FICYmIENQVV9TSDMKKwlkZXBlbmRzIG9uIENQVV9TSDMKIAogY29uZmlnIFNPVU5EX1NIX0RBQ19BVURJT19DSEFOTkVMCiAJaW50ICJEQUMgY2hhbm5lbCIKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9jb3JlLmMgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfY29yZS5jCmluZGV4IGEwMDNjMGUuLjk1ZmM1YzYgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9jb3JlLmMKKysrIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX2NvcmUuYwpAQCAtMjExLDEwICsyMTEsNiBAQAogc3RhdGljIGludCBpcnFfaW5zdGFsbGVkOwogI2VuZGlmIC8qIE1PRFVMRSAqLwogCi0vKiBzb2Z0d2FyZSBpbXBsZW1lbnRlZCByZWNvcmRpbmcgdm9sdW1lISAqLwotdWludCBzb2Z0d2FyZV9pbnB1dF92b2x1bWUgPSBTV19JTlBVVF9WT0xVTUVfU0NBTEUgKiBTV19JTlBVVF9WT0xVTUVfREVGQVVMVDsKLUVYUE9SVF9TWU1CT0woc29mdHdhcmVfaW5wdXRfdm9sdW1lKTsKLQogLyogY29udHJvbCBvdmVyIHdobyBjYW4gbW9kaWZ5IHJlc291cmNlcyBzaGFyZWQgYmV0d2VlbiBwbGF5L3JlY29yZCAqLwogc3RhdGljIG1vZGVfdCBzaGFyZWRfcmVzb3VyY2Vfb3duZXI7CiBzdGF0aWMgaW50IHNoYXJlZF9yZXNvdXJjZXNfaW5pdGlhbGlzZWQ7CkBAIC0xMTg4LDcgKzExODQsNyBAQAogCiAvKiBwdWJsaXNoIHRoaXMgZnVuY3Rpb24gZm9yIHVzZSBieSBsb3ctbGV2ZWwgY29kZSwgaWYgcmVxdWlyZWQgKi8KIAotY2hhciAqZ2V0X2FmbXRfc3RyaW5nKGludCBhZm10KQorc3RhdGljIGNoYXIgKmdldF9hZm10X3N0cmluZyhpbnQgYWZtdCkKIHsKICAgICAgICAgc3dpdGNoKGFmbXQpIHsKICAgICAgICAgICAgIGNhc2UgQUZNVF9NVV9MQVc6CkBAIC0xNTUxLDQgKzE1NDcsMyBAQAogRVhQT1JUX1NZTUJPTChkbWFzb3VuZF91bGF3MmRtYTgpOwogRVhQT1JUX1NZTUJPTChkbWFzb3VuZF9hbGF3MmRtYTgpOwogI2VuZGlmCi1FWFBPUlRfU1lNQk9MKGdldF9hZm10X3N0cmluZykgOwpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3BhdWxhLmMgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYwppbmRleCAyMDJlODEwLi4wNmU5ZTg4IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYworKysgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcGF1bGEuYwpAQCAtNzEwLDcgKzcxMCw3IEBACiAvKioqIENvbmZpZyAmIFNldHVwICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIAotaW50IF9faW5pdCBkbWFzb3VuZF9wYXVsYV9pbml0KHZvaWQpCitzdGF0aWMgaW50IF9faW5pdCBkbWFzb3VuZF9wYXVsYV9pbml0KHZvaWQpCiB7CiAJaW50IGVycjsKIApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3E0MC5jIGIvc291bmQvb3NzL2RtYXNvdW5kL2RtYXNvdW5kX3E0MC5jCmluZGV4IGIzMzc5ZGQuLjE4NTViMTQgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9kbWFzb3VuZC9kbWFzb3VuZF9xNDAuYworKysgYi9zb3VuZC9vc3MvZG1hc291bmQvZG1hc291bmRfcTQwLmMKQEAgLTYxMSw3ICs2MTEsNyBAQAogLyoqKiBDb25maWcgJiBTZXR1cCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAKLWludCBfX2luaXQgZG1hc291bmRfcTQwX2luaXQodm9pZCkKK3N0YXRpYyBpbnQgX19pbml0IGRtYXNvdW5kX3E0MF9pbml0KHZvaWQpCiB7CiAJaWYgKE1BQ0hfSVNfUTQwKSB7CiAJICAgIGRtYXNvdW5kLm1hY2ggPSBtYWNoUTQwOwpkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmQuYyBiL3NvdW5kL29zcy9tc25kLmMKaW5kZXggYmEzOGQ2MjAuLmU0MjgyZDkgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kLmMKKysrIGIvc291bmQvb3NzL21zbmQuYwpAQCAtMjAsOCArMjAsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZC5jLHYgMS4xNyAxOTk5LzAzLzIxIDE2OjUwOjA5IGFuZHJld3R2IEV4cCAkCi0gKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9vc3MvbXNuZC5oIGIvc291bmQvb3NzL21zbmQuaAppbmRleCBkMGNhNTgyLi42MWIzOTU1IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvbXNuZC5oCisrKyBiL3NvdW5kL29zcy9tc25kLmgKQEAgLTI0LDggKzI0LDYgQEAKICAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgKiBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KICAqCi0gKiAkSWQ6IG1zbmQuaCx2IDEuMzYgMTk5OS8wMy8yMSAxNzowNTo0MiBhbmRyZXd0diBFeHAgJAotICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpZm5kZWYgX19NU05EX0gKICNkZWZpbmUgX19NU05EX0gKZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kX2NsYXNzaWMuaCBiL3NvdW5kL29zcy9tc25kX2NsYXNzaWMuaAppbmRleCA3ZmZlYTUyLi4xYTE3ZGRlIDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvbXNuZF9jbGFzc2ljLmgKKysrIGIvc291bmQvb3NzL21zbmRfY2xhc3NpYy5oCkBAIC0yNCw4ICsyNCw2IEBACiAgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAgKiAKLSAqICRJZDogbXNuZF9jbGFzc2ljLmgsdiAxLjEwIDE5OTkvMDMvMjEgMTc6MzY6MDkgYW5kcmV3dHYgRXhwICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAjaWZuZGVmIF9fTVNORF9DTEFTU0lDX0gKICNkZWZpbmUgX19NU05EX0NMQVNTSUNfSApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuYyBiL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmMKaW5kZXggZjFmNDllYi4uYmYyN2UwMCAxMDA2NDQKLS0tIGEvc291bmQvb3NzL21zbmRfcGlubmFjbGUuYworKysgYi9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5jCkBAIC0yOSwxMyArMjksOCBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZF9waW5uYWNsZS5jLHYgMS44IDIwMDAvMTIvMzAgMDA6MzM6MjEgc3ljYW1vcmUgRXhwICQKLSAqCiAgKiAxMi0zLTIwMDAgIE1vZGlmaWVkIElPIHBvcnQgdmFsaWRhdGlvbiAgU3RldmUgU3ljYW1vcmUKICAqCi0gKgotICogJCQkOiBtc25kX3Bpbm5hY2xlLmMsdiAxLjc1IDE5OTkvMDMvMjEgMTY6NTA6MDkgYW5kcmV3dHYgJCQkICQKLSAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KZGlmZiAtLWdpdCBhL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmggYi9zb3VuZC9vc3MvbXNuZF9waW5uYWNsZS5oCmluZGV4IGNjZTkxMTQuLmMxOGQ2NmMgMTAwNjQ0Ci0tLSBhL3NvdW5kL29zcy9tc25kX3Bpbm5hY2xlLmgKKysrIGIvc291bmQvb3NzL21zbmRfcGlubmFjbGUuaApAQCAtMjQsOCArMjQsNiBAQAogICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAqIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogICoKLSAqICRJZDogbXNuZF9waW5uYWNsZS5oLHYgMS4xMSAxOTk5LzAzLzIxIDE3OjM2OjA5IGFuZHJld3R2IEV4cCAkCi0gKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogI2lmbmRlZiBfX01TTkRfUElOTkFDTEVfSAogI2RlZmluZSBfX01TTkRfUElOTkFDTEVfSApkaWZmIC0tZ2l0IGEvc291bmQvb3NzL3Z3c25kLmMgYi9zb3VuZC9vc3MvdndzbmQuYwppbmRleCAyYzVhYWE1Li5kY2JiM2Y3IDEwMDY0NAotLS0gYS9zb3VuZC9vc3MvdndzbmQuYworKysgYi9zb3VuZC9vc3MvdndzbmQuYwpAQCAtMTUwLDcgKzE1MCw3IEBACiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+CiAjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KIAotI2luY2x1ZGUgPGFzbS9tYWNoLXZpc3dzL2NvYmFsdC5oPgorI2luY2x1ZGUgPGFzbS92aXN3cy9jb2JhbHQuaD4KIAogI2luY2x1ZGUgInNvdW5kX2NvbmZpZy5oIgogCmRpZmYgLS1naXQgYS9zb3VuZC9wYXJpc2MvS2NvbmZpZyBiL3NvdW5kL3BhcmlzYy9LY29uZmlnCmluZGV4IGE1YTdmOWQuLjliNjFkOTUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BhcmlzYy9LY29uZmlnCisrKyBiL3NvdW5kL3BhcmlzYy9LY29uZmlnCkBAIC0xLDE1ICsxLDIwIEBACiAjIEFMU0EgUEEtUklTQyBkcml2ZXJzCiAKLW1lbnUgIkdTQyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIEdTQworbWVudWNvbmZpZyBTTkRfR1NDCisJYm9vbCAiR1NDIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBHU0MKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBHU0Mgc291bmQgZGV2aWNlcyBvbiBQQS1SSVNDIGFyY2hpdGVjdHVyZXMuCisKK2lmIFNORF9HU0MKIAogY29uZmlnIFNORF9IQVJNT05ZCiAJdHJpc3RhdGUgIkhhcm1vbnkvVml2YWNlIHNvdW5kIGNoaXAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSAnWScgb3IgJ00nIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIEhhcm1vbnkvVml2YWNlIHNvdW5kCiAJICBjaGlwIGZvdW5kIGluIG1vc3QgR1NDLWJhc2VkIFBBLVJJU0Mgd29ya3N0YXRpb25zLiAgSXQncyBmcmVxdWVudGx5CiAJICBwcm92aWRlZCBhcyBwYXJ0IG9mIHRoZSBMYXNpIG11bHRpLWZ1bmN0aW9uIElDLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9HU0MKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9LY29uZmlnIGIvc291bmQvcGNpL0tjb25maWcKaW5kZXggN2U0NzQyMS4uZjdkOTViMiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL0tjb25maWcKKysrIGIvc291bmQvcGNpL0tjb25maWcKQEAgLTEsMTEgKzEsMTYgQEAKICMgQUxTQSBQQ0kgZHJpdmVycwogCi1tZW51ICJQQ0kgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBQQ0kKK21lbnVjb25maWcgU05EX1BDSQorCWJvb2wgIlBDSSBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gUENJCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBQQ0kgYnVzLgorCitpZiBTTkRfUENJCiAKIGNvbmZpZyBTTkRfQUQxODg5CiAJdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFEMTg4OSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgaW50ZWdyYXRlZCBBQzk3IHNvdW5kCkBAIC0xNyw3ICsyMiw2IEBACiAKIGNvbmZpZyBTTkRfQUxTMzAwCiAJdHJpc3RhdGUgIkF2YW5jZSBMb2dpYyBBTFMzMDAvQUxTMzAwKyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9PUEwzX0xJQgpAQCAtMjksNyArMzMsNyBAQAogCiBjb25maWcgU05EX0FMUzQwMDAKIAl0cmlzdGF0ZSAiQXZhbmNlIExvZ2ljIEFMUzQwMDAiCi0JZGVwZW5kcyBvbiBTTkQgJiYgSVNBX0RNQV9BUEkKKwlkZXBlbmRzIG9uIElTQV9ETUFfQVBJCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtNDMsNyArNDcsNiBAQAogCiBjb25maWcgU05EX0FMSTU0NTEKIAl0cmlzdGF0ZSAiQUxpIE01NDUxIFBDSSBBdWRpbyBDb250cm9sbGVyIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTU3LDcgKzYwLDYgQEAKIAogY29uZmlnIFNORF9BVElJWFAKIAl0cmlzdGF0ZSAiQVRJIElYUCBBQzk3IENvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgQUM5NyBzb3VuZApAQCAtNjksNyArNzEsNiBAQAogCiBjb25maWcgU05EX0FUSUlYUF9NT0RFTQogCXRyaXN0YXRlICJBVEkgSVhQIE1vZGVtIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIE1DOTcgbW9kZW0gb24KQEAgLTgwLDcgKzgxLDYgQEAKIAogY29uZmlnIFNORF9BVTg4MTAKIAl0cmlzdGF0ZSAiQXVyZWFsIEFkdmFudGFnZSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC05NSw3ICs5NSw2IEBACiAKIGNvbmZpZyBTTkRfQVU4ODIwCiAJdHJpc3RhdGUgIkF1cmVhbCBWb3J0ZXgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtMTA5LDcgKzEwOCw2IEBACiAKIGNvbmZpZyBTTkRfQVU4ODMwCiAJdHJpc3RhdGUgIkF1cmVhbCBWb3J0ZXggMiIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC0xMjQsNyArMTIyLDYgQEAKIAogY29uZmlnIFNORF9BVzIKIAl0cmlzdGF0ZSAiRW1hZ2ljIEF1ZGlvd2VyayAyIgotCWRlcGVuZHMgb24gU05ECiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEVtYWdpYyBBdWRpb3dlcmsgMiBzb3VuZGNhcmRzLgogCkBAIC0xMzksNyArMTM2LDcgQEAKIAogY29uZmlnIFNORF9BWlQzMzI4CiAJdHJpc3RhdGUgIkF6dGVjaCBBWkYzMzI4IC8gUENJMTY4IChFWFBFUklNRU5UQUwpIgotCWRlcGVuZHMgb24gU05EICYmIEVYUEVSSU1FTlRBTAorCWRlcGVuZHMgb24gRVhQRVJJTUVOVEFMCiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMTUyLDcgKzE0OSw2IEBACiAKIGNvbmZpZyBTTkRfQlQ4N1gKIAl0cmlzdGF0ZSAiQnQ4N3ggQXVkaW8gQ2FwdHVyZSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgSWYgeW91IHdhbnQgdG8gcmVjb3JkIGF1ZGlvIGZyb20gVFYgY2FyZHMgYmFzZWQgb24KQEAgLTE3NCw3ICsxNzAsNiBAQAogCiBjb25maWcgU05EX0NBMDEwNgogCXRyaXN0YXRlICJTQiBBdWRpZ3kgTFMgLyBMaXZlIDI0Yml0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9WTUFTVEVSCkBAIC0xODcsNyArMTgyLDYgQEAKIAogY29uZmlnIFNORF9DTUlQQ0kKIAl0cmlzdGF0ZSAiQy1NZWRpYSA4MzM4LCA4NzM4LCA4NzY4LCA4NzcwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PUEwzX0xJQgogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX1BDTQpAQCAtMjAxLDEzICsxOTUsMTEgQEAKIAogY29uZmlnIFNORF9PWFlHRU5fTElCCiAgICAgICAgIHRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAogY29uZmlnIFNORF9PWFlHRU4KIAl0cmlzdGF0ZSAiQy1NZWRpYSA4Nzg4IChPeHlnZW4pIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PWFlHRU5fTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kIGNhcmRzIGJhc2VkIG9uIHRoZQpAQCAtMjI1LDcgKzIxNyw2IEBACiAKIGNvbmZpZyBTTkRfQ1M0MjgxCiAJdHJpc3RhdGUgIkNpcnJ1cyBMb2dpYyAoU291bmQgRnVzaW9uKSBDUzQyODEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC0yMzcsNyArMjI4LDYgQEAKIAogY29uZmlnIFNORF9DUzQ2WFgKIAl0cmlzdGF0ZSAiQ2lycnVzIExvZ2ljIChTb3VuZCBGdXNpb24pIENTNDI4MC9DUzQ2MXgvQ1M0NjJ4L0NTNDYzeCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTI1OCw3ICsyNDgsNyBAQAogCiBjb25maWcgU05EX0NTNTUzMAogCXRyaXN0YXRlICJDUzU1MzAgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQgJiYgSVNBX0RNQV9BUEkKKwlkZXBlbmRzIG9uIElTQV9ETUFfQVBJCiAJc2VsZWN0IFNORF9TQjE2X0RTUAogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBhdWRpbyBvbiBDeXJpeC9OYXRTZW1pIENTNTUzMCBjaGlwcy4KQEAgLTI2OCw3ICsyNTgsNyBAQAogCiBjb25maWcgU05EX0NTNTUzNUFVRElPCiAJdHJpc3RhdGUgIkNTNTUzNS9DUzU1MzYgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQgJiYgWDg2ICYmICFYODZfNjQKKwlkZXBlbmRzIG9uIFg4NiAmJiAhWDg2XzY0CiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC0yODYsNyArMjc2LDYgQEAKIAogY29uZmlnIFNORF9EQVJMQTIwCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIERhcmxhMjAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0yOTcsNyArMjg2LDYgQEAKIAogY29uZmlnIFNORF9HSU5BMjAKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgR2luYTIwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtMzA4LDcgKzI5Niw2IEBACiAKIGNvbmZpZyBTTkRfTEFZTEEyMAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBMYXlsYTIwIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0zMjAsNyArMzA3LDYgQEAKIAogY29uZmlnIFNORF9EQVJMQTI0CiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIERhcmxhMjQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCkBAIC0zMzEsNyArMzE3LDYgQEAKIAogY29uZmlnIFNORF9HSU5BMjQKIAl0cmlzdGF0ZSAiKEVjaG9hdWRpbykgR2luYTI0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUENNCiAJaGVscApAQCAtMzQyLDcgKzMyNyw2IEBACiAKIGNvbmZpZyBTTkRfTEFZTEEyNAogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBMYXlsYTI0IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0zNTQsNyArMzM4LDYgQEAKIAogY29uZmlnIFNORF9NT05BCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIE1vbmEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTM2Niw3ICszNDksNiBAQAogCiBjb25maWcgU05EX01JQQogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSBNaWEiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgRldfTE9BREVSCiAJc2VsZWN0IFNORF9SQVdNSURJCiAJc2VsZWN0IFNORF9QQ00KQEAgLTM3OCw3ICszNjAsNiBAQAogCiBjb25maWcgU05EX0VDSE8zRwogCXRyaXN0YXRlICIoRWNob2F1ZGlvKSAzRyBjYXJkcyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMzkwLDcgKzM3MSw2IEBACiAKIGNvbmZpZyBTTkRfSU5ESUdPCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQwMSw3ICszODEsNiBAQAogCiBjb25maWcgU05EX0lORElHT0lPCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyBJTyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQxMiw3ICszOTEsNiBAQAogCiBjb25maWcgU05EX0lORElHT0RKCiAJdHJpc3RhdGUgIihFY2hvYXVkaW8pIEluZGlnbyBESiIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBGV19MT0FERVIKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQyMyw3ICs0MDEsNiBAQAogCiBjb25maWcgU05EX0VNVTEwSzEKIAl0cmlzdGF0ZSAiRW11MTBrMSAoU0IgTGl2ZSEsIEF1ZGlneSwgRS1tdSBBUFMpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKQEAgLTQ0MSw3ICs0MTgsNiBAQAogCiBjb25maWcgU05EX0VNVTEwSzFYCiAJdHJpc3RhdGUgIkVtdTEwazFYIChEZWxsIE9FTSBWZXJzaW9uKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfUkFXTUlESQogCWhlbHAKQEAgLTQ1Myw3ICs0MjksNiBAQAogCiBjb25maWcgU05EX0VOUzEzNzAKIAl0cmlzdGF0ZSAiKENyZWF0aXZlKSBFbnNvbmlxIEF1ZGlvUENJIDEzNzAiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTQ2NCw3ICs0MzksNiBAQAogCiBjb25maWcgU05EX0VOUzEzNzEKIAl0cmlzdGF0ZSAiKENyZWF0aXZlKSBFbnNvbmlxIEF1ZGlvUENJIDEzNzEvMTM3MyIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTQ3Niw3ICs0NTAsNiBAQAogCiBjb25maWcgU05EX0VTMTkzOAogCXRyaXN0YXRlICJFU1MgRVMxOTM4LzE5NDYvMTk2OSAoU29sby0xKSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC00ODksNyArNDYyLDYgQEAKIAogY29uZmlnIFNORF9FUzE5NjgKIAl0cmlzdGF0ZSAiRVNTIEVTMTk2OC8xOTc4IChNYWVzdHJvLTEvMi8yRSkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscApAQCAtNTAxLDcgKzQ3Myw2IEBACiAKIGNvbmZpZyBTTkRfRk04MDEKIAl0cmlzdGF0ZSAiRm9ydGVNZWRpYSBGTTgwMSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC01MjgsNyArNDk5LDYgQEAKIAogY29uZmlnIFNORF9IREFfSU5URUwKIAl0cmlzdGF0ZSAiSW50ZWwgSEQgQXVkaW8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCXNlbGVjdCBTTkRfVk1BU1RFUgogCWhlbHAKQEAgLTYzNyw3ICs2MDcsNiBAQAogCiBjb25maWcgU05EX0hEU1AKIAl0cmlzdGF0ZSAiUk1FIEhhbW1lcmZhbGwgRFNQIEF1ZGlvIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC02NTAsNyArNjE5LDYgQEAKIAogY29uZmlnIFNORF9IRFNQTQogCXRyaXN0YXRlICJSTUUgSGFtbWVyZmFsbCBEU1AgTUFESSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtNjYzLDcgKzYzMSw2IEBACiAKIGNvbmZpZyBTTkRfSElGSUVSCiAJdHJpc3RhdGUgIlRlbXBvVGVjIEhpRmllciBGYW50YXNpYSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfT1hZR0VOX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgTWVkaWFUZWsvVGVtcG9UZWMgSGlGaWVyCkBAIC02NzQsNyArNjQxLDYgQEAKIAogY29uZmlnIFNORF9JQ0UxNzEyCiAJdHJpc3RhdGUgIklDRW5zZW1ibGUgSUNFMTcxMiAoRW52eTI0KSIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC02OTEsOCArNjU3LDcgQEAKIAogY29uZmlnIFNORF9JQ0UxNzI0CiAJdHJpc3RhdGUgIklDRS9WVDE3MjQvMTcyMCAoRW52eTI0SFQvUFQpIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IFNORF9NUFU0MDFfVUFSVAorCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCXNlbGVjdCBTTkRfVk1BU1RFUgogCWhlbHAKQEAgLTcwOSw3ICs2NzQsNiBAQAogCiBjb25maWcgU05EX0lOVEVMOFgwCiAJdHJpc3RhdGUgIkludGVsL1NpUy9uVmlkaWEvQU1EL0FMaSBBQzk3IENvbnRyb2xsZXIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgQUM5NyBzb3VuZApAQCAtNzIyLDcgKzY4Niw2IEBACiAKIGNvbmZpZyBTTkRfSU5URUw4WDBNCiAJdHJpc3RhdGUgIkludGVsL1NpUy9uVmlkaWEvQU1EIE1DOTcgTW9kZW0iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgdGhlIGludGVncmF0ZWQgTUM5NyBtb2RlbSBvbgpAQCAtNzMzLDggKzY5Niw2IEBACiAKIGNvbmZpZyBTTkRfS09SRzEyMTIKIAl0cmlzdGF0ZSAiS29yZyAxMjEyIElPIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IEZXX0xPQURFUiBpZiAhU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIEtvcmcgMTIxMklPIHNvdW5kY2FyZHMuCkBAIC03NDIsMTkgKzcwMyw4IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQta29yZzEyMTIuCiAKLWNvbmZpZyBTTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCi0JYm9vbCAiSW4ta2VybmVsIGZpcm13YXJlIGZvciBLb3JnMTIxMiBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkRfS09SRzEyMTIKLQlkZWZhdWx0IHkKLQloZWxwCi0JICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgdGhlIHN0YXRpYyBmaXJtd2FyZSBidWlsdCBpbiB0aGUga2VybmVsCi0JICBmb3IgdGhlIEtvcmcxMjEyIGRyaXZlci4gIElmIHlvdSBjaG9vc2UgTiBoZXJlLCB5b3UgbmVlZCB0bwotCSAgaW5zdGFsbCB0aGUgZmlybXdhcmUgZmlsZXMgZnJvbSB0aGUgYWxzYS1maXJtd2FyZSBwYWNrYWdlLgotCiBjb25maWcgU05EX01BRVNUUk8zCiAJdHJpc3RhdGUgIkVTUyBBbGxlZ3JvL01hZXN0cm8zIgotCWRlcGVuZHMgb24gU05ECi0Jc2VsZWN0IEZXX0xPQURFUiBpZiAhU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBzb3VuZGNhcmRzIGJhc2VkIG9uIEVTUyBNYWVzdHJvIDMKQEAgLTc2MywxOCArNzEzLDggQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1tYWVzdHJvMy4KIAotY29uZmlnIFNORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKLQlib29sICJJbi1rZXJuZWwgZmlybXdhcmUgZm9yIE1hZXN0cm8zIGRyaXZlciIKLQlkZXBlbmRzIG9uIFNORF9NQUVTVFJPMwotCWRlZmF1bHQgeQotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSB0aGUgc3RhdGljIGZpcm13YXJlIGJ1aWx0IGluIHRoZSBrZXJuZWwKLQkgIGZvciB0aGUgTWFlc3RybzMgZHJpdmVyLiAgSWYgeW91IGNob29zZSBOIGhlcmUsIHlvdSBuZWVkIHRvCi0JICBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZSBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCi0KIGNvbmZpZyBTTkRfTUlYQVJUCiAJdHJpc3RhdGUgIkRpZ2lncmFtIG1pWGFydCIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKQEAgLTc4Niw3ICs3MjYsNiBAQAogCiBjb25maWcgU05EX05NMjU2CiAJdHJpc3RhdGUgIk5lb01hZ2ljIE5NMjU2QVYvWlgiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgTmVvTWFnaWMgTk0yNTZBVi9aWCBjaGlwcy4KQEAgLTc5Niw3ICs3MzUsNiBAQAogCiBjb25maWcgU05EX1BDWEhSCiAJdHJpc3RhdGUgIkRpZ2lncmFtIFBDWEhSIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAlzZWxlY3QgU05EX0hXREVQCiAJaGVscApAQCAtODA3LDcgKzc0NSw2IEBACiAKIGNvbmZpZyBTTkRfUklQVElERQogCXRyaXN0YXRlICJDb25leGFudCBSaXB0aWRlIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IEZXX0xPQURFUgogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCkBAIC04MjAsNyArNzU3LDYgQEAKIAogY29uZmlnIFNORF9STUUzMgogCXRyaXN0YXRlICJSTUUgRGlnaTMyLCAzMi84LCAzMiBQUk8iCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgUk1FIERpZ2kzMiwgRGlnaTMyIFBSTyBhbmQKQEAgLTgzMiw3ICs3NjgsNiBAQAogCiBjb25maWcgU05EX1JNRTk2CiAJdHJpc3RhdGUgIlJNRSBEaWdpOTYsIDk2LzgsIDk2LzggUFJPIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgUk1FIERpZ2k5NiwgRGlnaTk2LzggYW5kCkBAIC04NDMsNyArNzc4LDYgQEAKIAogY29uZmlnIFNORF9STUU5NjUyCiAJdHJpc3RhdGUgIlJNRSBEaWdpOTY1MiAoSGFtbWVyZmFsbCkiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBSTUUgSGFtbWVyZmFsbCAoUk1FCkBAIC04NTQsNyArNzg4LDcgQEAKIAogY29uZmlnIFNORF9TSVM3MDE5CiAJdHJpc3RhdGUgIlNpUyA3MDE5IEF1ZGlvIEFjY2VsZXJhdG9yIgotCWRlcGVuZHMgb24gU05EICYmIFg4NiAmJiAhWDg2XzY0CisJZGVwZW5kcyBvbiBYODYgJiYgIVg4Nl82NAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciB0aGUgU2lTIDcwMTkgQXVkaW8gQWNjZWxlcmF0b3IuCkBAIC04NjQsNyArNzk4LDYgQEAKIAogY29uZmlnIFNORF9TT05JQ1ZJQkVTCiAJdHJpc3RhdGUgIlMzIFNvbmljVmliZXMiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX09QTDNfTElCCiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwpAQCAtODc3LDcgKzgxMCw2IEBACiAKIGNvbmZpZyBTTkRfVFJJREVOVAogCXRyaXN0YXRlICJUcmlkZW50IDRELVdhdmUgRFgvTlg7IFNpUyA3MDE4IgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9NUFU0MDFfVUFSVAogCXNlbGVjdCBTTkRfQUM5N19DT0RFQwogCWhlbHAKQEAgLTg4OSw3ICs4MjEsNiBAQAogCiBjb25maWcgU05EX1ZJQTgyWFgKIAl0cmlzdGF0ZSAiVklBIDgyQzY4NkEvQiwgODIzMy84MjM1IEFDOTcgQ29udHJvbGxlciIKLQlkZXBlbmRzIG9uIFNORAogCXNlbGVjdCBTTkRfTVBVNDAxX1VBUlQKIAlzZWxlY3QgU05EX0FDOTdfQ09ERUMKIAloZWxwCkBAIC05MDEsNyArODMyLDYgQEAKIAogY29uZmlnIFNORF9WSUE4MlhYX01PREVNCiAJdHJpc3RhdGUgIlZJQSA4MkM2ODZBL0IsIDgyMzMgYmFzZWQgTW9kZW1zIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIE1DOTcgbW9kZW0gb24KQEAgLTkxMiw3ICs4NDIsNiBAQAogCiBjb25maWcgU05EX1ZJUlRVT1NPCiAJdHJpc3RhdGUgIkFzdXMgVmlydHVvc28gMTAwLzIwMCAoWG9uYXIpIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9PWFlHRU5fTElCCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHNvdW5kIGNhcmRzIGJhc2VkIG9uIHRoZQpAQCAtOTIzLDcgKzg1Miw2IEBACiAKIGNvbmZpZyBTTkRfVlgyMjIKIAl0cmlzdGF0ZSAiRGlnaWdyYW0gVlgyMjIiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1ZYX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEaWdpZ3JhbSBWWDIyMiBzb3VuZGNhcmRzLgpAQCAtOTMzLDggKzg2MSw2IEBACiAKIGNvbmZpZyBTTkRfWU1GUENJCiAJdHJpc3RhdGUgIllhbWFoYSBZTUY3MjQvNzQwLzc0NC83NTQiCi0JZGVwZW5kcyBvbiBTTkQKLQlzZWxlY3QgRldfTE9BREVSIGlmICFTTkRfWU1GUENJX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXNlbGVjdCBTTkRfT1BMM19MSUIKIAlzZWxlY3QgU05EX01QVTQwMV9VQVJUCiAJc2VsZWN0IFNORF9BQzk3X0NPREVDCkBAIC05NDUsMzQgKzg3MSw0IEBACiAJICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlCiAJICB3aWxsIGJlIGNhbGxlZCBzbmQteW1mcGNpLgogCi1jb25maWcgU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLQlib29sICJJbi1rZXJuZWwgZmlybXdhcmUgZm9yIFlNRlBDSSBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkRfWU1GUENJCi0JZGVmYXVsdCB5Ci0JaGVscAotCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHRoZSBzdGF0aWMgZmlybXdhcmUgYnVpbHQgaW4gdGhlIGtlcm5lbAotCSAgZm9yIHRoZSBZTUZQQ0kgZHJpdmVyLiAgSWYgeW91IGNob29zZSBOIGhlcmUsIHlvdSBuZWVkIHRvCi0JICBpbnN0YWxsIHRoZSBmaXJtd2FyZSBmaWxlcyBmcm9tIHRoZSBhbHNhLWZpcm13YXJlIHBhY2thZ2UuCi0KLWNvbmZpZyBTTkRfQUM5N19QT1dFUl9TQVZFCi0JYm9vbCAiQUM5NyBQb3dlci1TYXZpbmcgTW9kZSIKLQlkZXBlbmRzIG9uIFNORF9BQzk3X0NPREVDICYmIEVYUEVSSU1FTlRBTAotCWRlZmF1bHQgbgotCWhlbHAKLQkgIFNheSBZIGhlcmUgdG8gZW5hYmxlIHRoZSBhZ2dyZXNzaXZlIHBvd2VyLXNhdmluZyBzdXBwb3J0IG9mCi0JICBBQzk3IGNvZGVjcy4gIEluIHRoaXMgbW9kZSwgdGhlIHBvd2VyLW1vZGUgaXMgZHluYW1pY2FsbHkKLQkgIGNvbnRyb2xsZWQgYXQgZWFjaCBvcGVuL2Nsb3NlLgotCi0JICBUaGUgbW9kZSBpcyBhY3RpdmF0ZWQgYnkgcGFzc2luZyBwb3dlcl9zYXZlPTEgb3B0aW9uIHRvCi0JICBzbmQtYWM5Ny1jb2RlYyBkcml2ZXIuICBZb3UgY2FuIHRvZ2dsZSBpdCBkeW5hbWljYWxseSBvdmVyCi0JICBzeXNmcywgdG9vLgotCi1jb25maWcgU05EX0FDOTdfUE9XRVJfU0FWRV9ERUZBVUxUCi0JaW50ICJEZWZhdWx0IHRpbWUtb3V0IGZvciBBQzk3IHBvd2VyLXNhdmUgbW9kZSIKLQlkZXBlbmRzIG9uIFNORF9BQzk3X1BPV0VSX1NBVkUKLQlkZWZhdWx0IDAKLQloZWxwCi0JICBUaGUgZGVmYXVsdCB0aW1lLW91dCB2YWx1ZSBpbiBzZWNvbmRzIGZvciBBQzk3IGF1dG9tYXRpYwotCSAgcG93ZXItc2F2ZSBtb2RlLiAgMCBtZWFucyB0byBkaXNhYmxlIHRoZSBwb3dlci1zYXZlIG1vZGUuCi0KLWVuZG1lbnUKK2VuZGlmCSMgU05EX1BDSQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL01ha2VmaWxlIGIvc291bmQvcGNpL01ha2VmaWxlCmluZGV4IDg1ZWYxNGIuLjY1YjI1ZDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9NYWtlZmlsZQorKysgYi9zb3VuZC9wY2kvTWFrZWZpbGUKQEAgLTEzLDcgKzEzLDcgQEAKIHNuZC1jbWlwY2ktb2JqcyA6PSBjbWlwY2kubwogc25kLWNzNDI4MS1vYmpzIDo9IGNzNDI4MS5vCiBzbmQtY3M1NTMwLW9ianMgOj0gY3M1NTMwLm8KLXNuZC1lbnMxMzcwLW9ianMgOj0gZW5zMTM3MC5vCitzbmQtZW5zMTM3MC1vYmpzIDo9IGVuczEzNzAubyBhazQ1MzFfY29kZWMubwogc25kLWVuczEzNzEtb2JqcyA6PSBlbnMxMzcxLm8KIHNuZC1lczE5Mzgtb2JqcyA6PSBlczE5Mzgubwogc25kLWVzMTk2OC1vYmpzIDo9IGVzMTk2OC5vCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9NYWtlZmlsZSBiL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCmluZGV4IDBiZTQ4YjEuLjQxZmEzMjIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCisrKyBiL3NvdW5kL3BjaS9hYzk3L01ha2VmaWxlCkBAIC0zLDE2ICszLDggQEAKICMgQ29weXJpZ2h0IChjKSAyMDAxIGJ5IEphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+CiAjCiAKLXNuZC1hYzk3LWNvZGVjLW9ianMgOj0gYWM5N19jb2RlYy5vIGFjOTdfcGNtLm8KLQotaWZuZXEgKCQoQ09ORklHX1BST0NfRlMpLCkKLXNuZC1hYzk3LWNvZGVjLW9ianMgKz0gYWM5N19wcm9jLm8KLWVuZGlmCi0KLXNuZC1hazQ1MzEtY29kZWMtb2JqcyA6PSBhazQ1MzFfY29kZWMubworc25kLWFjOTctY29kZWMteSA6PSBhYzk3X2NvZGVjLm8gYWM5N19wY20ubworc25kLWFjOTctY29kZWMtJChDT05GSUdfUFJPQ19GUykgKz0gYWM5N19wcm9jLm8KIAogIyBUb3BsZXZlbCBNb2R1bGUgRGVwZW5kZW5jeQogb2JqLSQoQ09ORklHX1NORF9BQzk3X0NPREVDKSArPSBzbmQtYWM5Ny1jb2RlYy5vCi1vYmotJChDT05GSUdfU05EX0VOUzEzNzApICs9IHNuZC1hazQ1MzEtY29kZWMubwotCi1vYmotbSA6PSAkKHNvcnQgJChvYmotbSkpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYWM5Ny9hYzk3X2NvZGVjLmMgYi9zb3VuZC9wY2kvYWM5Ny9hYzk3X2NvZGVjLmMKaW5kZXggNDVmZDI5MC4uMDczNjRjMCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2FjOTcvYWM5N19jb2RlYy5jCisrKyBiL3NvdW5kL3BjaS9hYzk3L2FjOTdfY29kZWMuYwpAQCAtNDksOCArNDksOSBAQAogCiAjaWZkZWYgQ09ORklHX1NORF9BQzk3X1BPV0VSX1NBVkUKIHN0YXRpYyBpbnQgcG93ZXJfc2F2ZSA9IENPTkZJR19TTkRfQUM5N19QT1dFUl9TQVZFX0RFRkFVTFQ7Ci1tb2R1bGVfcGFyYW0ocG93ZXJfc2F2ZSwgYm9vbCwgMDY0NCk7Ci1NT0RVTEVfUEFSTV9ERVNDKHBvd2VyX3NhdmUsICJFbmFibGUgQUM5NyBwb3dlci1zYXZpbmcgY29udHJvbCIpOworbW9kdWxlX3BhcmFtKHBvd2VyX3NhdmUsIGludCwgMDY0NCk7CitNT0RVTEVfUEFSTV9ERVNDKHBvd2VyX3NhdmUsICJBdXRvbWF0aWMgcG93ZXItc2F2aW5nIHRpbWVvdXQgIgorCQkgIihpbiBzZWNvbmQsIDAgPSBkaXNhYmxlKS4iKTsKICNlbmRpZgogLyoKIApAQCAtMjI5NCw5ICsyMjk1LDExIEBACiAJcG93ZXIgfD0gQUM5N19QRF9QUjAgfCBBQzk3X1BEX1BSMTsJLyogQURDICYgREFDIHBvd2VyZG93biAqLwogCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJdWRlbGF5KDEwMCk7Ci0JcG93ZXIgfD0gQUM5N19QRF9QUjIgfCBBQzk3X1BEX1BSMzsJLyogQW5hbG9nIE1peGVyIHBvd2VyZG93biAqLworCXBvd2VyIHw9IEFDOTdfUERfUFIyOwkvKiBBbmFsb2cgTWl4ZXIgcG93ZXJkb3duIChWcmVmIG9uKSAqLwogCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJaWYgKGFjOTdfaXNfcG93ZXJfc2F2ZV9tb2RlKGFjOTcpKSB7CisJCXBvd2VyIHw9IEFDOTdfUERfUFIzOwkvKiBBbmFsb2cgTWl4ZXIgcG93ZXJkb3duICovCisJCXNuZF9hYzk3X3dyaXRlKGFjOTcsIEFDOTdfUE9XRVJET1dOLCBwb3dlcik7CiAJCXVkZWxheSgxMDApOwogCQkvKiBBQy1saW5rIHBvd2VyZG93biwgaW50ZXJuYWwgQ2xrIGRpc2FibGUgKi8KIAkJLyogRklYTUU6IHRoaXMgbWF5IGNhdXNlIGNsaWNrIG5vaXNlcyBvbiBzb21lIGJvYXJkcyAqLwpAQCAtMjM2Miw3ICsyMzY1LDcgQEAKIAkJICogIHRoYXQgb3Blbi9jbG9zZSBmcmVxdWVudGx5KQogCQkgKi8KIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZhYzk3LT5wb3dlcl93b3JrLAotCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoMjAwMCkpOworCQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMocG93ZXJfc2F2ZSAqIDEwMDApKTsKIAllbHNlIHsKIAkJY2FuY2VsX2RlbGF5ZWRfd29yaygmYWM5Ny0+cG93ZXJfd29yayk7CiAJCXVwZGF0ZV9wb3dlcl9yZWdzKGFjOTcpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2FjOTcvYWM5N19wYXRjaC5jIGIvc291bmQvcGNpL2FjOTcvYWM5N19wYXRjaC5jCmluZGV4IDJkYTg5ODEuLjA3NDZlOWMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9hYzk3L2FjOTdfcGF0Y2guYworKysgYi9zb3VuZC9wY2kvYWM5Ny9hYzk3X3BhdGNoLmMKQEAgLTY2OSw2ICs2NjksNyBAQAogQUM5N19TSU5HTEUoIk1pYyAyIFZvbHVtZSIsIEFDOTdfTUlDLCAwLCAzMSwgMSksCiBBQzk3X1NJTkdMRSgiTWljIDIwZEIgQm9vc3QgU3dpdGNoIiwgQUM5N19NSUMsIDcsIDEsIDApLAogCitBQzk3X1NJTkdMRSgiTWFzdGVyIExlZnQgSW52IFN3aXRjaCIsIEFDOTdfTUFTVEVSLCA2LCAxLCAwKSwKIEFDOTdfU0lOR0xFKCJNYXN0ZXIgWkMgU3dpdGNoIiwgQUM5N19NQVNURVIsIDcsIDEsIDApLAogQUM5N19TSU5HTEUoIkhlYWRwaG9uZSBaQyBTd2l0Y2giLCBBQzk3X0hFQURQSE9ORSwgNywgMSwgMCksCiBBQzk3X1NJTkdMRSgiTW9ubyBaQyBTd2l0Y2giLCBBQzk3X01BU1RFUl9NT05PLCA3LCAxLCAwKSwKQEAgLTE5NzEsNiArMTk3Miw5IEBACiAKIAl2YWwgPSBhYzk3LT5yZWdzW0FDOTdfQURfTUlTQ107CiAJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAhKHZhbCAmIEFDOTdfQUQxOThYX0xPU0VMKTsKKwlpZiAoYWM5Ny0+c3BlYy5hZDE4eHgubG9fYXNfbWFzdGVyKQorCQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9CisJCQkhdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF07CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTE5NzksOCArMTk4MywxMCBAQAogCXN0cnVjdCBzbmRfYWM5NyAqYWM5NyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAl1bnNpZ25lZCBzaG9ydCB2YWw7CiAKLQl2YWwgPSAhdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0KLQkJPyAoQUM5N19BRDE5OFhfTE9TRUwgfCBBQzk3X0FEMTk4WF9IUFNFTCkgOiAwOworCXZhbCA9ICF1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKKwlpZiAoYWM5Ny0+c3BlYy5hZDE4eHgubG9fYXNfbWFzdGVyKQorCQl2YWwgPSAhdmFsOworCXZhbCA9IHZhbCA/IChBQzk3X0FEMTk4WF9MT1NFTCB8IEFDOTdfQUQxOThYX0hQU0VMKSA6IDA7CiAJcmV0dXJuIHNuZF9hYzk3X3VwZGF0ZV9iaXRzKGFjOTcsIEFDOTdfQURfTUlTQywKIAkJCQkgICAgQUM5N19BRDE5OFhfTE9TRUwgfCBBQzk3X0FEMTk4WF9IUFNFTCwgdmFsKTsKIH0KQEAgLTIwMzEsNyArMjAzNyw3IEBACiB7CiAJdW5zaWduZWQgc2hvcnQgdmFsID0gMDsKIAkvKiBjbGVhciBMT0RJUyBpZiBzaGFyZWQgamFjayBpcyB0byBiZSB1c2VkIGZvciBTdXJyb3VuZCBvdXQgKi8KLQlpZiAoaXNfc2hhcmVkX2xpbmVpbihhYzk3KSkKKwlpZiAoIWFjOTctPnNwZWMuYWQxOHh4LmxvX2FzX21hc3RlciAmJiBpc19zaGFyZWRfbGluZWluKGFjOTcpKQogCQl2YWwgfD0gKDEgPDwgMTIpOwogCS8qIGNsZWFyIENMRElTIGlmIHNoYXJlZCBqYWNrIGlzIHRvIGJlIHVzZWQgZm9yIEMvTEZFIG91dCAqLwogCWlmIChpc19zaGFyZWRfbWljaW4oYWM5NykpCkBAIC0yMDY3LDkgKzIwNzMsMTMgQEAKIAogc3RhdGljIGludCBwYXRjaF9hZDE4ODhfc3BlY2lmaWMoc3RydWN0IHNuZF9hYzk3ICphYzk3KQogewotCS8qIHJlbmFtZSAweDA0IGFzICJNYXN0ZXIiIGFuZCAweDAyIGFzICJNYXN0ZXIgU3Vycm91bmQiICovCi0Jc25kX2FjOTdfcmVuYW1lX3ZvbF9jdGwoYWM5NywgIk1hc3RlciBQbGF5YmFjayIsICJNYXN0ZXIgU3Vycm91bmQgUGxheWJhY2siKTsKLQlzbmRfYWM5N19yZW5hbWVfdm9sX2N0bChhYzk3LCAiSGVhZHBob25lIFBsYXliYWNrIiwgIk1hc3RlciBQbGF5YmFjayIpOworCWlmICghYWM5Ny0+c3BlYy5hZDE4eHgubG9fYXNfbWFzdGVyKSB7CisJCS8qIHJlbmFtZSAweDA0IGFzICJNYXN0ZXIiIGFuZCAweDAyIGFzICJNYXN0ZXIgU3Vycm91bmQiICovCisJCXNuZF9hYzk3X3JlbmFtZV92b2xfY3RsKGFjOTcsICJNYXN0ZXIgUGxheWJhY2siLAorCQkJCQkiTWFzdGVyIFN1cnJvdW5kIFBsYXliYWNrIik7CisJCXNuZF9hYzk3X3JlbmFtZV92b2xfY3RsKGFjOTcsICJIZWFkcGhvbmUgUGxheWJhY2siLAorCQkJCQkiTWFzdGVyIFBsYXliYWNrIik7CisJfQogCXJldHVybiBwYXRjaF9idWlsZF9jb250cm9scyhhYzk3LCBzbmRfYWM5N19hZDE4ODhfY29udHJvbHMsIEFSUkFZX1NJWkUoc25kX2FjOTdfYWQxODg4X2NvbnRyb2xzKSk7CiB9CiAKQEAgLTIwODgsMTYgKzIwOTgsMjcgQEAKIAkKIAlwYXRjaF9hZDE4ODEoYWM5Nyk7CiAJYWM5Ny0+YnVpbGRfb3BzID0gJnBhdGNoX2FkMTg4OF9idWlsZF9vcHM7Ci0JLyogU3dpdGNoIEZST05UL1NVUlJPVU5EIExJTkUtT1VUL0hQLU9VVCBkZWZhdWx0IGNvbm5lY3Rpb24gKi8KLQkvKiBpdCBzZWVtcyB0aGF0IG1vc3QgdmVuZG9ycyBjb25uZWN0IGxpbmUtb3V0IGNvbm5lY3RvciB0byBoZWFkcGhvbmUgb3V0IG9mIEFDJzk3ICovCisKKwkvKgorCSAqIExPIGNhbiBiZSB1c2VkIGFzIGEgcmVhbCBsaW5lLW91dCBvbiBzb21lIGRldmljZXMsCisJICogYW5kIHdlIG5lZWQgdG8gcmV2ZXJ0IHRoZSBmcm9udC9zdXJyb3VuZCBtaXhlciBzd2l0Y2hlcworCSAqLworCWlmIChhYzk3LT5zdWJzeXN0ZW1fdmVuZG9yID09IDB4MTA0MyAmJgorCSAgICBhYzk3LT5zdWJzeXN0ZW1fZGV2aWNlID09IDB4MTE5MykgLyogQVNVUyBBOVQgbGFwdG9wICovCisJCWFjOTctPnNwZWMuYWQxOHh4LmxvX2FzX21hc3RlciA9IDE7CisKKwltaXNjID0gc25kX2FjOTdfcmVhZChhYzk3LCBBQzk3X0FEX01JU0MpOwogCS8qIEFELWNvbXBhdGlibGUgbW9kZSAqLwogCS8qIFN0ZXJlbyBtdXRlcyBlbmFibGVkICovCi0JbWlzYyA9IHNuZF9hYzk3X3JlYWQoYWM5NywgQUM5N19BRF9NSVNDKTsKLQlzbmRfYWM5N193cml0ZV9jYWNoZShhYzk3LCBBQzk3X0FEX01JU0MsIG1pc2MgfAotCQkJICAgICBBQzk3X0FEMTk4WF9MT1NFTCB8Ci0JCQkgICAgIEFDOTdfQUQxOThYX0hQU0VMIHwKLQkJCSAgICAgQUM5N19BRDE5OFhfTVNQTFQgfAotCQkJICAgICBBQzk3X0FEMTk4WF9BQzk3TkMpOworCW1pc2MgfD0gQUM5N19BRDE5OFhfTVNQTFQgfCBBQzk3X0FEMTk4WF9BQzk3TkM7CisJaWYgKCFhYzk3LT5zcGVjLmFkMTh4eC5sb19hc19tYXN0ZXIpCisJCS8qIFN3aXRjaCBGUk9OVC9TVVJST1VORCBMSU5FLU9VVC9IUC1PVVQgZGVmYXVsdCBjb25uZWN0aW9uICovCisJCS8qIGl0IHNlZW1zIHRoYXQgbW9zdCB2ZW5kb3JzIGNvbm5lY3QgbGluZS1vdXQgY29ubmVjdG9yIHRvCisJCSAqIGhlYWRwaG9uZSBvdXQgb2YgQUMnOTcKKwkJICovCisJCW1pc2MgfD0gQUM5N19BRDE5OFhfTE9TRUwgfCBBQzk3X0FEMTk4WF9IUFNFTDsKKworCXNuZF9hYzk3X3dyaXRlX2NhY2hlKGFjOTcsIEFDOTdfQURfTUlTQywgbWlzYyk7CiAJYWM5Ny0+ZmxhZ3MgfD0gQUM5N19TVEVSRU9fTVVURVM7CiAJcmV0dXJuIDA7CiB9CkBAIC0zMzMyLDggKzMzNTMsNjYgQEAKIEFDOTdfU0lOR0xFKCJEb3dubWl4IFN1cnJvdW5kIHRvIEZyb250IiwgMHg1YSwgMTEsIDEsIDApLAogfTsKIAorc3RhdGljIGNvbnN0IGNoYXIgKnNsYXZlX3ZvbHNfdnQxNjE2W10gPSB7CisJIkZyb250IFBsYXliYWNrIFZvbHVtZSIsCisJIlN1cnJvdW5kIFBsYXliYWNrIFZvbHVtZSIsCisJIkNlbnRlciBQbGF5YmFjayBWb2x1bWUiLAorCSJMRkUgUGxheWJhY2sgVm9sdW1lIiwKKwlOVUxMCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqc2xhdmVfc3dzX3Z0MTYxNltdID0geworCSJGcm9udCBQbGF5YmFjayBTd2l0Y2giLAorCSJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLAorCSJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwKKwkiTEZFIFBsYXliYWNrIFN3aXRjaCIsCisJTlVMTAorfTsKKworLyogZmluZCBhIG1peGVyIGNvbnRyb2wgZWxlbWVudCB3aXRoIHRoZSBnaXZlbiBuYW1lICovCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbCAqc25kX2FjOTdfZmluZF9taXhlcl9jdGwoc3RydWN0IHNuZF9hYzk3ICphYzk3LAorCQkJCQkJICAgIGNvbnN0IGNoYXIgKm5hbWUpCit7CisJc3RydWN0IHNuZF9jdGxfZWxlbV9pZCBpZDsKKwltZW1zZXQoJmlkLCAwLCBzaXplb2YoaWQpKTsKKwlpZC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSOworCXN0cmNweShpZC5uYW1lLCBuYW1lKTsKKwlyZXR1cm4gc25kX2N0bF9maW5kX2lkKGFjOTctPmJ1cy0+Y2FyZCwgJmlkKTsKK30KKworLyogY3JlYXRlIGEgdmlydHVhbCBtYXN0ZXIgY29udHJvbCBhbmQgYWRkIHNsYXZlcyAqLworaW50IHNuZF9hYzk3X2FkZF92bWFzdGVyKHN0cnVjdCBzbmRfYWM5NyAqYWM5NywgY2hhciAqbmFtZSwKKwkJCSBjb25zdCB1bnNpZ25lZCBpbnQgKnRsdiwgY29uc3QgY2hhciAqKnNsYXZlcykKK3sKKwlzdHJ1Y3Qgc25kX2tjb250cm9sICprY3RsOworCWNvbnN0IGNoYXIgKipzOworCWludCBlcnI7CisKKwlrY3RsID0gc25kX2N0bF9tYWtlX3ZpcnR1YWxfbWFzdGVyKG5hbWUsIHRsdik7CisJaWYgKCFrY3RsKQorCQlyZXR1cm4gLUVOT01FTTsKKwllcnIgPSBzbmRfY3RsX2FkZChhYzk3LT5idXMtPmNhcmQsIGtjdGwpOworCWlmIChlcnIgPCAwKQorCQlyZXR1cm4gZXJyOworCisJZm9yIChzID0gc2xhdmVzOyAqczsgcysrKSB7CisJCXN0cnVjdCBzbmRfa2NvbnRyb2wgKnNjdGw7CisKKwkJc2N0bCA9IHNuZF9hYzk3X2ZpbmRfbWl4ZXJfY3RsKGFjOTcsICpzKTsKKwkJaWYgKCFzY3RsKSB7CisJCQlzbmRfcHJpbnRkZCgiQ2Fubm90IGZpbmQgc2xhdmUgJXMsIHNraXBwZWRcbiIsICpzKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCWVyciA9IHNuZF9jdGxfYWRkX3NsYXZlKGtjdGwsIHNjdGwpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHBhdGNoX3Z0MTYxNl9zcGVjaWZpYyhzdHJ1Y3Qgc25kX2FjOTcgKiBhYzk3KQogeworCXN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjdGw7CiAJaW50IGVycjsKIAogCWlmIChzbmRfYWM5N190cnlfYml0KGFjOTcsIDB4NWEsIDkpKQpAQCAtMzM0MSw2ICszNDIwLDI0IEBACiAJCQlyZXR1cm4gZXJyOwogCWlmICgoZXJyID0gcGF0Y2hfYnVpbGRfY29udHJvbHMoYWM5NywgJnNuZF9hYzk3X2NvbnRyb2xzX3Z0MTYxNlsxXSwgQVJSQVlfU0laRShzbmRfYWM5N19jb250cm9sc192dDE2MTYpIC0gMSkpIDwgMCkKIAkJcmV0dXJuIGVycjsKKworCS8qIFRoZXJlIGlzIGFscmVhZHkgYSBtaXNuYW1lZCBtYXN0ZXIgc3dpdGNoLiAgUmVuYW1lIGl0LiAgKi8KKwlrY3RsID0gc25kX2FjOTdfZmluZF9taXhlcl9jdGwoYWM5NywgIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiKTsKKwlpZiAoIWtjdGwpCisJCXJldHVybiAtRUlOVkFMOworCisJc25kX2FjOTdfcmVuYW1lX3ZvbF9jdGwoYWM5NywgIk1hc3RlciBQbGF5YmFjayIsICJGcm9udCBQbGF5YmFjayIpOworCisJZXJyID0gc25kX2FjOTdfYWRkX3ZtYXN0ZXIoYWM5NywgIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLAorCQkJCSAgIGtjdGwtPnRsdi5wLCBzbGF2ZV92b2xzX3Z0MTYxNik7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKKwllcnIgPSBzbmRfYWM5N19hZGRfdm1hc3RlcihhYzk3LCAiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsCisJCQkJICAgTlVMTCwgc2xhdmVfc3dzX3Z0MTYxNik7CisJaWYgKGVyciA8IDApCisJCXJldHVybiBlcnI7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzYxMyw3ICszNzEwLDcgQEAKIHsKIAlhYzk3LT5idWlsZF9vcHMgPSAmcGF0Y2hfdWNiMTQwMF9vcHM7CiAJLyogZW5hYmxlIGhlYWRwaG9uZSBkcml2ZXIgYW5kIHNtYXJ0IGxvdyBwb3dlciBtb2RlIGJ5IGRlZmF1bHQgKi8KLQlzbmRfYWM5N193cml0ZShhYzk3LCAweDZhLCAweDAwNTApOwotCXNuZF9hYzk3X3dyaXRlKGFjOTcsIDB4NmMsIDB4MDAzMCk7CisJc25kX2FjOTdfd3JpdGVfY2FjaGUoYWM5NywgMHg2YSwgMHgwMDUwKTsKKwlzbmRfYWM5N193cml0ZV9jYWNoZShhYzk3LCAweDZjLCAweDAwMzApOwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2FjOTcvYWs0NTMxX2NvZGVjLmMgYi9zb3VuZC9wY2kvYWM5Ny9hazQ1MzFfY29kZWMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzBjMTYzMzkuLjAwMDAwMDAKLS0tIGEvc291bmQvcGNpL2FjOTcvYWs0NTMxX2NvZGVjLmMKKysrIC9kZXYvbnVsbApAQCAtMSw1MDggKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKGMpIGJ5IEphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+Ci0gKiAgVW5pdmVyc2FsIHJvdXRpbmVzIGZvciBBSzQ1MzEgY29kZWMKLSAqCi0gKgotICogICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICogICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3IFVTQQotICoKLSAqLwotCi0jaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc2xhYi5oPgotI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0KLSNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+Ci0jaW5jbHVkZSA8c291bmQvYWs0NTMxX2NvZGVjLmg+Ci0jaW5jbHVkZSA8c291bmQvdGx2Lmg+Ci0KLU1PRFVMRV9BVVRIT1IoIkphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+Iik7Ci1NT0RVTEVfREVTQ1JJUFRJT04oIlVuaXZlcnNhbCByb3V0aW5lcyBmb3IgQUs0NTMxIGNvZGVjIik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci0KLSNpZmRlZiBDT05GSUdfUFJPQ19GUwotc3RhdGljIHZvaWQgc25kX2FrNDUzMV9wcm9jX2luaXQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKTsKLSNlbHNlCi0jZGVmaW5lIHNuZF9hazQ1MzFfcHJvY19pbml0KGNhcmQsYWspCi0jZW5kaWYKLQotLyoKLSAqCi0gKi8KLSAKLSNpZiAwCi0KLXN0YXRpYyB2b2lkIHNuZF9hazQ1MzFfZHVtcChzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQotewotCWludCBpZHg7Ci0JCi0JZm9yIChpZHggPSAwOyBpZHggPCAweDE5OyBpZHgrKykKLQkJcHJpbnRrKCJhazQ1MzEgMHgleDogMHgleFxuIiwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSk7Ci19Ci0KLSNlbmRpZgotCi0vKgotICoKLSAqLwotCi0jZGVmaW5lIEFLNDUzMV9TSU5HTEUoeG5hbWUsIHhpbmRleCwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0KSBcCi17IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fc2luZ2xlLCBcCi0gIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9zaW5nbGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9zaW5nbGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSByZWcgfCAoc2hpZnQgPDwgMTYpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMikgfQotI2RlZmluZSBBSzQ1MzFfU0lOR0xFX1RMVih4bmFtZSwgeGluZGV4LCByZWcsIHNoaWZ0LCBtYXNrLCBpbnZlcnQsIHh0bHYpICAgIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIFwKLSAgLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUgfCBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQsIFwKLSAgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX3NpbmdsZSwgXAotICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfc2luZ2xlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfc2luZ2xlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDE2KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpLCBcCi0gIC50bHYgPSB7IC5wID0gKHh0bHYpIH0gfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCi17Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQotCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOwotCXVpbmZvLT5jb3VudCA9IDE7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOwotCXJldHVybiAwOwotfQotIAotc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9zaW5nbGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgdmFsOwotCi0JbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXZhbCA9IChhazQ1MzEtPnJlZ3NbcmVnXSA+PiBzaGlmdCkgJiBtYXNrOwotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCWlmIChpbnZlcnQpIHsKLQkJdmFsID0gbWFzayAtIHZhbDsKLQl9Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSB2YWw7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7Ci0JaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKLQlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7Ci0JaW50IGNoYW5nZTsKLQlpbnQgdmFsOwotCi0JdmFsID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiBtYXNrOwotCWlmIChpbnZlcnQpIHsKLQkJdmFsID0gbWFzayAtIHZhbDsKLQl9Ci0JdmFsIDw8PSBzaGlmdDsKLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JdmFsID0gKGFrNDUzMS0+cmVnc1tyZWddICYgfihtYXNrIDw8IHNoaWZ0KSkgfCB2YWw7Ci0JY2hhbmdlID0gdmFsICE9IGFrNDUzMS0+cmVnc1tyZWddOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcsIGFrNDUzMS0+cmVnc1tyZWddID0gdmFsKTsKLQltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlyZXR1cm4gY2hhbmdlOwotfQotCi0jZGVmaW5lIEFLNDUzMV9ET1VCTEUoeG5hbWUsIHhpbmRleCwgbGVmdF9yZWcsIHJpZ2h0X3JlZywgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQsIG1hc2ssIGludmVydCkgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCi0gIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2RvdWJsZSwgXAotICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfZG91YmxlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfZG91YmxlLCBcCi0gIC5wcml2YXRlX3ZhbHVlID0gbGVmdF9yZWcgfCAocmlnaHRfcmVnIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDE5KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpIH0KLSNkZWZpbmUgQUs0NTMxX0RPVUJMRV9UTFYoeG5hbWUsIHhpbmRleCwgbGVmdF9yZWcsIHJpZ2h0X3JlZywgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQsIG1hc2ssIGludmVydCwgeHRsdikgXAoteyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgXAotICAuYWNjZXNzID0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1JFQURXUklURSB8IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCwgXAotICAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKLSAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9fZG91YmxlLCBcCi0gIC5nZXQgPSBzbmRfYWs0NTMxX2dldF9kb3VibGUsIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9kb3VibGUsIFwKLSAgLnByaXZhdGVfdmFsdWUgPSBsZWZ0X3JlZyB8IChyaWdodF9yZWcgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMTkpIHwgKG1hc2sgPDwgMjQpIHwgKGludmVydCA8PCAyMiksIFwKLSAgLnRsdiA9IHsgLnAgPSAoeHRsdikgfSB9Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9pbmZvX2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKLXsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCi0JdWluZm8tPnR5cGUgPSBtYXNrID09IDEgPyBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU4gOiBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7Ci0JdWluZm8tPmNvdW50ID0gMjsKLQl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1hc2s7Ci0JcmV0dXJuIDA7Ci19Ci0gCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKLQlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7Ci0JaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKLQlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKLQlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOwotCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKLQlpbnQgbGVmdCwgcmlnaHQ7Ci0KLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID4+IGxlZnRfc2hpZnQpICYgbWFzazsKLQlyaWdodCA9IChhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSA+PiByaWdodF9zaGlmdCkgJiBtYXNrOwotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCWlmIChpbnZlcnQpIHsKLQkJbGVmdCA9IG1hc2sgLSBsZWZ0OwotCQlyaWdodCA9IG1hc2sgLSByaWdodDsKLQl9Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSBsZWZ0OwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdID0gcmlnaHQ7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9wdXRfZG91YmxlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCBsZWZ0X3JlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKLQlpbnQgcmlnaHRfcmVnID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OwotCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxOSkgJiAweDA3OwotCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7Ci0JaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOwotCWludCBjaGFuZ2U7Ci0JaW50IGxlZnQsIHJpZ2h0OwotCi0JbGVmdCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKLQlyaWdodCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdICYgbWFzazsKLQlpZiAoaW52ZXJ0KSB7Ci0JCWxlZnQgPSBtYXNrIC0gbGVmdDsKLQkJcmlnaHQgPSBtYXNrIC0gcmlnaHQ7Ci0JfQotCWxlZnQgPDw9IGxlZnRfc2hpZnQ7Ci0JcmlnaHQgPDw9IHJpZ2h0X3NoaWZ0OwotCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKLQlpZiAobGVmdF9yZWcgPT0gcmlnaHRfcmVnKSB7Ci0JCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSAmIH4oKG1hc2sgPDwgbGVmdF9zaGlmdCkgfCAobWFzayA8PCByaWdodF9zaGlmdCkpKSB8IGxlZnQgfCByaWdodDsKLQkJY2hhbmdlID0gbGVmdCAhPSBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddOwotCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgbGVmdF9yZWcsIGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPSBsZWZ0KTsKLQl9IGVsc2UgewotCQlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gJiB+KG1hc2sgPDwgbGVmdF9zaGlmdCkpIHwgbGVmdDsKLQkJcmlnaHQgPSAoYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gJiB+KG1hc2sgPDwgcmlnaHRfc2hpZnQpKSB8IHJpZ2h0OwotCQljaGFuZ2UgPSBsZWZ0ICE9IGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gfHwgcmlnaHQgIT0gYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ107Ci0JCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBsZWZ0X3JlZywgYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA9IGxlZnQpOwotCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmlnaHRfcmVnLCBhazQ1MzEtPnJlZ3NbcmlnaHRfcmVnXSA9IHJpZ2h0KTsKLQl9Ci0JbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JcmV0dXJuIGNoYW5nZTsKLX0KLQotI2RlZmluZSBBSzQ1MzFfSU5QVVRfU1coeG5hbWUsIHhpbmRleCwgcmVnMSwgcmVnMiwgbGVmdF9zaGlmdCwgcmlnaHRfc2hpZnQpIFwKLXsgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAotICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19pbnB1dF9zdywgXAotICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfaW5wdXRfc3csIC5wdXQgPSBzbmRfYWs0NTMxX3B1dF9pbnB1dF9zdywgXAotICAucHJpdmF0ZV92YWx1ZSA9IHJlZzEgfCAocmVnMiA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAyNCkgfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKLXsKLQl1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTjsKLQl1aW5mby0+Y291bnQgPSA0OwotCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7Ci0JdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gMTsKLQlyZXR1cm4gMDsKLX0KLSAKLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfaW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JaW50IHJlZzEgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7Ci0JaW50IHJlZzIgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOwotCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MGY7Ci0JaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4MGY7Ci0KLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPSAoYWs0NTMxLT5yZWdzW3JlZzFdID4+IGxlZnRfc2hpZnQpICYgMTsKLQl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IChhazQ1MzEtPnJlZ3NbcmVnMl0gPj4gbGVmdF9zaGlmdCkgJiAxOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzJdID0gKGFrNDUzMS0+cmVnc1tyZWcxXSA+PiByaWdodF9zaGlmdCkgJiAxOwotCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzNdID0gKGFrNDUzMS0+cmVnc1tyZWcyXSA+PiByaWdodF9zaGlmdCkgJiAxOwotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXJldHVybiAwOwotfQotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKLXsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwotCWludCByZWcxID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOwotCWludCByZWcyID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKLQlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDBmOwotCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweDBmOwotCWludCBjaGFuZ2U7Ci0JaW50IHZhbDEsIHZhbDI7Ci0KLQltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7Ci0JdmFsMSA9IGFrNDUzMS0+cmVnc1tyZWcxXSAmIH4oKDEgPDwgbGVmdF9zaGlmdCkgfCAoMSA8PCByaWdodF9zaGlmdCkpOwotCXZhbDIgPSBhazQ1MzEtPnJlZ3NbcmVnMl0gJiB+KCgxIDw8IGxlZnRfc2hpZnQpIHwgKDEgPDwgcmlnaHRfc2hpZnQpKTsKLQl2YWwxIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIDEpIDw8IGxlZnRfc2hpZnQ7Ci0JdmFsMiB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gJiAxKSA8PCBsZWZ0X3NoaWZ0OwotCXZhbDEgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzJdICYgMSkgPDwgcmlnaHRfc2hpZnQ7Ci0JdmFsMiB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbM10gJiAxKSA8PCByaWdodF9zaGlmdDsKLQljaGFuZ2UgPSB2YWwxICE9IGFrNDUzMS0+cmVnc1tyZWcxXSB8fCB2YWwyICE9IGFrNDUzMS0+cmVnc1tyZWcyXTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnMSwgYWs0NTMxLT5yZWdzW3JlZzFdID0gdmFsMSk7Ci0JYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZzIsIGFrNDUzMS0+cmVnc1tyZWcyXSA9IHZhbDIpOwotCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCXJldHVybiBjaGFuZ2U7Ci19Ci0KLXN0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9tYXN0ZXIsIC02MjAwLCAyMDAsIDApOwotc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX21vbm8sIC0yODAwLCA0MDAsIDApOwotc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRiX3NjYWxlX2lucHV0LCAtNTAwMCwgMjAwLCAwKTsKLQotc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHNuZF9hazQ1MzFfY29udHJvbHNbXSA9IHsKLQotQUs0NTMxX0RPVUJMRV9UTFYoIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLCAwLAotCQkgIEFLNDUzMV9MTUFTVEVSLCBBSzQ1MzFfUk1BU1RFUiwgNywgNywgMSwgMSwKLQkJICBkYl9zY2FsZV9tYXN0ZXIpLAotQUs0NTMxX0RPVUJMRSgiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIsIDAsIEFLNDUzMV9MTUFTVEVSLCBBSzQ1MzFfUk1BU1RFUiwgMCwgMCwgMHgxZiwgMSksCi0KLUFLNDUzMV9TSU5HTEVfVExWKCJNYXN0ZXIgTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfTU9OT19PVVQsIDcsIDEsIDEsCi0JCSAgZGJfc2NhbGVfbW9ubyksCi1BSzQ1MzFfU0lOR0xFKCJNYXN0ZXIgTW9ubyBQbGF5YmFjayBWb2x1bWUiLCAwLCBBSzQ1MzFfTU9OT19PVVQsIDAsIDB4MDcsIDEpLAotCi1BSzQ1MzFfRE9VQkxFKCJQQ00gU3dpdGNoIiwgMCwgQUs0NTMxX0xWT0lDRSwgQUs0NTMxX1JWT0lDRSwgNywgNywgMSwgMSksCi1BSzQ1MzFfRE9VQkxFX1RMVigiUENNIFZvbHVtZSIsIDAsIEFLNDUzMV9MVk9JQ0UsIEFLNDUzMV9SVk9JQ0UsIDAsIDAsIDB4MWYsIDEsCi0JCSAgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCBBSzQ1MzFfT1VUX1NXMiwgMywgMiwgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJQQ00gQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDIsIDIsIDEsIDApLAotCi1BSzQ1MzFfRE9VQkxFKCJQQ00gU3dpdGNoIiwgMSwgQUs0NTMxX0xGTSwgQUs0NTMxX1JGTSwgNywgNywgMSwgMSksCi1BSzQ1MzFfRE9VQkxFX1RMVigiUENNIFZvbHVtZSIsIDEsIEFLNDUzMV9MRk0sIEFLNDUzMV9SRk0sIDAsIDAsIDB4MWYsIDEsCi0JCSAgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDEsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgNiwgNSwgMSwgMCksCi1BSzQ1MzFfSU5QVVRfU1coIlBDTSBDYXB0dXJlIFJvdXRlIiwgMSwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCA2LCA1KSwKLQotQUs0NTMxX0RPVUJMRSgiQ0QgU3dpdGNoIiwgMCwgQUs0NTMxX0xDRCwgQUs0NTMxX1JDRCwgNywgNywgMSwgMSksCi1BSzQ1MzFfRE9VQkxFX1RMVigiQ0QgVm9sdW1lIiwgMCwgQUs0NTMxX0xDRCwgQUs0NTMxX1JDRCwgMCwgMCwgMHgxZiwgMSwKLQkJICBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfRE9VQkxFKCJDRCBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDIsIDEsIDEsIDApLAotQUs0NTMxX0lOUFVUX1NXKCJDRCBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCAyLCAxKSwKLQotQUs0NTMxX0RPVUJMRSgiTGluZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTExJTkUsIEFLNDUzMV9STElORSwgNywgNywgMSwgMSksCi1BSzQ1MzFfRE9VQkxFX1RMVigiTGluZSBWb2x1bWUiLCAwLCBBSzQ1MzFfTExJTkUsIEFLNDUzMV9STElORSwgMCwgMCwgMHgxZiwgMSwKLQkJICBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgNCwgMywgMSwgMCksCi1BSzQ1MzFfSU5QVVRfU1coIkxpbmUgQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgNCwgMyksCi0KLUFLNDUzMV9ET1VCTEUoIkF1eCBTd2l0Y2giLCAwLCBBSzQ1MzFfTEFVWEEsIEFLNDUzMV9SQVVYQSwgNywgNywgMSwgMSksCi1BSzQ1MzFfRE9VQkxFX1RMVigiQXV4IFZvbHVtZSIsIDAsIEFLNDUzMV9MQVVYQSwgQUs0NTMxX1JBVVhBLCAwLCAwLCAweDFmLCAxLAotCQkgIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9ET1VCTEUoIkF1eCBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgQUs0NTMxX09VVF9TVzIsIDUsIDQsIDEsIDApLAotQUs0NTMxX0lOUFVUX1NXKCJBdXggQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNCwgMyksCi0KLUFLNDUzMV9TSU5HTEUoIk1vbm8gU3dpdGNoIiwgMCwgQUs0NTMxX01PTk8xLCA3LCAxLCAxKSwKLUFLNDUzMV9TSU5HTEVfVExWKCJNb25vIFZvbHVtZSIsIDAsIEFLNDUzMV9NT05PMSwgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAotQUs0NTMxX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgMCwgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJNb25vIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAwLCAwLCAxLCAwKSwKLQotQUs0NTMxX1NJTkdMRSgiTW9ubyBTd2l0Y2giLCAxLCBBSzQ1MzFfTU9OTzIsIDcsIDEsIDEpLAotQUs0NTMxX1NJTkdMRV9UTFYoIk1vbm8gVm9sdW1lIiwgMSwgQUs0NTMxX01PTk8yLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCi1BSzQ1MzFfU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIDEsIEFLNDUzMV9PVVRfU1cyLCAxLCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIk1vbm8gQ2FwdHVyZSBTd2l0Y2giLCAxLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDEsIDEsIDEsIDApLAotCi1BSzQ1MzFfU0lOR0xFX1RMVigiTWljIFZvbHVtZSIsIDAsIEFLNDUzMV9NSUMsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKLUFLNDUzMV9TSU5HTEUoIk1pYyBTd2l0Y2giLCAwLCBBSzQ1MzFfTUlDLCA3LCAxLCAxKSwKLUFLNDUzMV9TSU5HTEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgMCwgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJNaWMgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDAsIDAsIDEsIDApLAotCi1BSzQ1MzFfRE9VQkxFKCJNaWMgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA3LCA3LCAxLCAwKSwKLUFLNDUzMV9ET1VCTEUoIk1vbm8xIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNiwgNiwgMSwgMCksCi1BSzQ1MzFfRE9VQkxFKCJNb25vMiBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDUsIDUsIDEsIDApLAotCi1BSzQ1MzFfU0lOR0xFKCJBRCBJbnB1dCBTZWxlY3QiLCAwLCBBSzQ1MzFfQURfSU4sIDAsIDEsIDApLAotQUs0NTMxX1NJTkdMRSgiTWljIEJvb3N0ICgrMzBkQikiLCAwLCBBSzQ1MzFfTUlDX0dBSU4sIDAsIDEsIDApCi19OwotCi1zdGF0aWMgaW50IHNuZF9hazQ1MzFfZnJlZShzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQotewotCWlmIChhazQ1MzEpIHsKLQkJaWYgKGFrNDUzMS0+cHJpdmF0ZV9mcmVlKQotCQkJYWs0NTMxLT5wcml2YXRlX2ZyZWUoYWs0NTMxKTsKLQkJa2ZyZWUoYWs0NTMxKTsKLQl9Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgc25kX2FrNDUzMV9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQotewotCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBkZXZpY2UtPmRldmljZV9kYXRhOwotCXJldHVybiBzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKLX0KLQotc3RhdGljIHU4IHNuZF9hazQ1MzFfaW5pdGlhbF9tYXBbMHgxOSArIDFdID0gewotCTB4OWYsCQkvKiAwMDogTWFzdGVyIFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMDE6IE1hc3RlciBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDAyOiBWb2ljZSBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDAzOiBWb2ljZSBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDA0OiBGTSBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDA1OiBGTSBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDA2OiBDRCBBdWRpbyBWb2x1bWUgTGNoICovCi0JMHg5ZiwJCS8qIDA3OiBDRCBBdWRpbyBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDA4OiBMaW5lIFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMDk6IExpbmUgVm9sdW1lIFJjaCAqLwotCTB4OWYsCQkvKiAwYTogQXV4IFZvbHVtZSBMY2ggKi8KLQkweDlmLAkJLyogMGI6IEF1eCBWb2x1bWUgUmNoICovCi0JMHg5ZiwJCS8qIDBjOiBNb25vMSBWb2x1bWUgKi8KLQkweDlmLAkJLyogMGQ6IE1vbm8yIFZvbHVtZSAqLwotCTB4OWYsCQkvKiAwZTogTWljIFZvbHVtZSAqLwotCTB4ODcsCQkvKiAwZjogTW9uby1vdXQgVm9sdW1lICovCi0JMHgwMCwJCS8qIDEwOiBPdXRwdXQgTWl4ZXIgU1cxICovCi0JMHgwMCwJCS8qIDExOiBPdXRwdXQgTWl4ZXIgU1cyICovCi0JMHgwMCwJCS8qIDEyOiBMY2ggSW5wdXQgTWl4ZXIgU1cxICovCi0JMHgwMCwJCS8qIDEzOiBSY2ggSW5wdXQgTWl4ZXIgU1cxICovCi0JMHgwMCwJCS8qIDE0OiBMY2ggSW5wdXQgTWl4ZXIgU1cyICovCi0JMHgwMCwJCS8qIDE1OiBSY2ggSW5wdXQgTWl4ZXIgU1cyICovCi0JMHgwMCwJCS8qIDE2OiBSZXNldCAmIFBvd2VyIERvd24gKi8KLQkweDAwLAkJLyogMTc6IENsb2NrIFNlbGVjdCAqLwotCTB4MDAsCQkvKiAxODogQUQgSW5wdXQgU2VsZWN0ICovCi0JMHgwMQkJLyogMTk6IE1pYyBBbXAgU2V0dXAgKi8KLX07Ci0KLWludCBzbmRfYWs0NTMxX21peGVyKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9hazQ1MzEgKl9hazQ1MzEsCi0JCSAgICAgc3RydWN0IHNuZF9hazQ1MzEgKipyYWs0NTMxKQotewotCXVuc2lnbmVkIGludCBpZHg7Ci0JaW50IGVycjsKLQlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxOwotCXN0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgb3BzID0gewotCQkuZGV2X2ZyZWUgPQlzbmRfYWs0NTMxX2Rldl9mcmVlLAotCX07Ci0KLQlzbmRfYXNzZXJ0KHJhazQ1MzEgIT0gTlVMTCwgcmV0dXJuIC1FSU5WQUwpOwotCSpyYWs0NTMxID0gTlVMTDsKLQlzbmRfYXNzZXJ0KGNhcmQgIT0gTlVMTCAmJiBfYWs0NTMxICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKLQlhazQ1MzEgPSBremFsbG9jKHNpemVvZigqYWs0NTMxKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKGFrNDUzMSA9PSBOVUxMKQotCQlyZXR1cm4gLUVOT01FTTsKLQkqYWs0NTMxID0gKl9hazQ1MzE7Ci0JbXV0ZXhfaW5pdCgmYWs0NTMxLT5yZWdfbXV0ZXgpOwotCWlmICgoZXJyID0gc25kX2NvbXBvbmVudF9hZGQoY2FyZCwgIkFLNDUzMSIpKSA8IDApIHsKLQkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7Ci0JCXJldHVybiBlcnI7Ci0JfQotCXN0cmNweShjYXJkLT5taXhlcm5hbWUsICJBc2FoaSBLYXNlaSBBSzQ1MzEiKTsKLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAzKTsJLyogbm8gUlNULCBQRCAqLwotCXVkZWxheSgxMDApOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfQ0xPQ0ssIDB4MDApOwkvKiBDT0RFQyBBREMgYW5kIENPREVDIERBQyB1c2Uge0xSLEJ9Q0xLMiBhbmQgcnVuIG9mZiBMUkNMSzIgUExMICovCi0JZm9yIChpZHggPSAwOyBpZHggPD0gMHgxOTsgaWR4KyspIHsKLQkJaWYgKGlkeCA9PSBBSzQ1MzFfUkVTRVQgfHwgaWR4ID09IEFLNDUzMV9DTE9DSykKLQkJCWNvbnRpbnVlOwotCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSA9IHNuZF9hazQ1MzFfaW5pdGlhbF9tYXBbaWR4XSk7CS8qIHJlY29yZGluZyBzb3VyY2UgaXMgbWl4ZXIgKi8KLQl9Ci0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hazQ1MzFfY29udHJvbHMpOyBpZHgrKykgewotCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNhcmQsIHNuZF9jdGxfbmV3MSgmc25kX2FrNDUzMV9jb250cm9sc1tpZHhdLCBhazQ1MzEpKSkgPCAwKSB7Ci0JCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKLQkJCXJldHVybiBlcnI7Ci0JCX0KLQl9Ci0Jc25kX2FrNDUzMV9wcm9jX2luaXQoY2FyZCwgYWs0NTMxKTsKLQlpZiAoKGVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9DT0RFQywgYWs0NTMxLCAmb3BzKSkgPCAwKSB7Ci0JCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOwotCQlyZXR1cm4gZXJyOwotCX0KLQotI2lmIDAKLQlzbmRfYWs0NTMxX2R1bXAoYWs0NTMxKTsKLSNlbmRpZgotCSpyYWs0NTMxID0gYWs0NTMxOwotCXJldHVybiAwOwotfQotCi0vKgotICogcG93ZXIgbWFuYWdlbWVudAotICovCi0jaWZkZWYgQ09ORklHX1BNCi12b2lkIHNuZF9hazQ1MzFfc3VzcGVuZChzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQotewotCS8qIG11dGUgKi8KLQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0xNQVNURVIsIDB4OWYpOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUk1BU1RFUiwgMHg5Zik7Ci0JLyogcG93ZXJkb3duICovCi0JYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMSk7Ci19Ci0KLXZvaWQgc25kX2FrNDUzMV9yZXN1bWUoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKLXsKLQlpbnQgaWR4OwotCi0JLyogaW5pdGlhbGl6ZSAqLwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDMpOwotCXVkZWxheSgxMDApOwotCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfQ0xPQ0ssIDB4MDApOwotCS8qIHJlc3RvcmUgbWl4ZXIgcmVnaXN0ZXJzICovCi0JZm9yIChpZHggPSAwOyBpZHggPD0gMHgxOTsgaWR4KyspIHsKLQkJaWYgKGlkeCA9PSBBSzQ1MzFfUkVTRVQgfHwgaWR4ID09IEFLNDUzMV9DTE9DSykKLQkJCWNvbnRpbnVlOwotCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSk7Ci0JfQotfQotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfUFJPQ19GUwotLyoKLSAqIC9wcm9jIGludGVyZmFjZQotICovCi0KLXN0YXRpYyB2b2lkIHNuZF9hazQ1MzFfcHJvY19yZWFkKHN0cnVjdCBzbmRfaW5mb19lbnRyeSAqZW50cnksIAotCQkJCSBzdHJ1Y3Qgc25kX2luZm9fYnVmZmVyICpidWZmZXIpCi17Ci0Jc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IGVudHJ5LT5wcml2YXRlX2RhdGE7Ci0KLQlzbmRfaXByaW50ZihidWZmZXIsICJBc2FoaSBLYXNlaSBBSzQ1MzFcblxuIik7Ci0Jc25kX2lwcmludGYoYnVmZmVyLCAiUmVjb3JkaW5nIHNvdXJjZSAgIDogJXNcbiIKLQkJICAgICJNSUMgZ2FpbiAgICAgICAgICAgOiAlc1xuIiwKLQkJICAgIGFrNDUzMS0+cmVnc1tBSzQ1MzFfQURfSU5dICYgMSA/ICJleHRlcm5hbCIgOiAibWl4ZXIiLAotCQkgICAgYWs0NTMxLT5yZWdzW0FLNDUzMV9NSUNfR0FJTl0gJiAxID8gIiszMGRCIiA6ICIrMGRCIik7Ci19Ci0KLXN0YXRpYyB2b2lkIHNuZF9hazQ1MzFfcHJvY19pbml0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKLXsKLQlzdHJ1Y3Qgc25kX2luZm9fZW50cnkgKmVudHJ5OwotCi0JaWYgKCEgc25kX2NhcmRfcHJvY19uZXcoY2FyZCwgImFrNDUzMSIsICZlbnRyeSkpCi0JCXNuZF9pbmZvX3NldF90ZXh0X29wcyhlbnRyeSwgYWs0NTMxLCBzbmRfYWs0NTMxX3Byb2NfcmVhZCk7Ci19Ci0jZW5kaWYKLQotRVhQT1JUX1NZTUJPTChzbmRfYWs0NTMxX21peGVyKTsKLSNpZmRlZiBDT05GSUdfUE0KLUVYUE9SVF9TWU1CT0woc25kX2FrNDUzMV9zdXNwZW5kKTsKLUVYUE9SVF9TWU1CT0woc25kX2FrNDUzMV9yZXN1bWUpOwotI2VuZGlmCi0KLS8qCi0gKiAgSU5JVCBwYXJ0Ci0gKi8KLQotc3RhdGljIGludCBfX2luaXQgYWxzYV9hazQ1MzFfaW5pdCh2b2lkKQotewotCXJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4aXQgYWxzYV9hazQ1MzFfZXhpdCh2b2lkKQotewotfQotCi1tb2R1bGVfaW5pdChhbHNhX2FrNDUzMV9pbml0KQotbW9kdWxlX2V4aXQoYWxzYV9hazQ1MzFfZXhpdCkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hazQ1MzFfY29kZWMuYyBiL3NvdW5kL3BjaS9hazQ1MzFfY29kZWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2QzN2IxCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvcGNpL2FrNDUzMV9jb2RlYy5jCkBAIC0wLDAgKzEsNDkwIEBACisvKgorICogIENvcHlyaWdodCAoYykgYnkgSmFyb3NsYXYgS3lzZWxhIDxwZXJleEBwZXJleC5jej4KKyAqICBVbml2ZXJzYWwgcm91dGluZXMgZm9yIEFLNDUzMSBjb2RlYworICoKKyAqCisgKiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgVVNBCisgKgorICovCisKKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9hazQ1MzFfY29kZWMuaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KKworLyoKK01PRFVMRV9BVVRIT1IoIkphcm9zbGF2IEt5c2VsYSA8cGVyZXhAcGVyZXguY3o+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIlVuaXZlcnNhbCByb3V0aW5lcyBmb3IgQUs0NTMxIGNvZGVjIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CisqLworCisjaWZkZWYgQ09ORklHX1BST0NfRlMKK3N0YXRpYyB2b2lkIHNuZF9hazQ1MzFfcHJvY19pbml0KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSk7CisjZWxzZQorI2RlZmluZSBzbmRfYWs0NTMxX3Byb2NfaW5pdChjYXJkLGFrKQorI2VuZGlmCisKKy8qCisgKgorICovCisgCisjaWYgMAorCitzdGF0aWMgdm9pZCBzbmRfYWs0NTMxX2R1bXAoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKK3sKKwlpbnQgaWR4OworCQorCWZvciAoaWR4ID0gMDsgaWR4IDwgMHgxOTsgaWR4KyspCisJCXByaW50aygiYWs0NTMxIDB4JXg6IDB4JXhcbiIsIGlkeCwgYWs0NTMxLT5yZWdzW2lkeF0pOworfQorCisjZW5kaWYKKworLyoKKyAqCisgKi8KKworI2RlZmluZSBBSzQ1MzFfU0lOR0xFKHhuYW1lLCB4aW5kZXgsIHJlZywgc2hpZnQsIG1hc2ssIGludmVydCkgXAoreyAuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCisgIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX3NpbmdsZSwgXAorICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfc2luZ2xlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfc2luZ2xlLCBcCisgIC5wcml2YXRlX3ZhbHVlID0gcmVnIHwgKHNoaWZ0IDw8IDE2KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpIH0KKyNkZWZpbmUgQUs0NTMxX1NJTkdMRV9UTFYoeG5hbWUsIHhpbmRleCwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0LCB4dGx2KSAgICBcCit7IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCBcCisgIC5hY2Nlc3MgPSBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfUkVBRFdSSVRFIHwgU05EUlZfQ1RMX0VMRU1fQUNDRVNTX1RMVl9SRUFELCBcCisgIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAorICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19zaW5nbGUsIFwKKyAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X3NpbmdsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X3NpbmdsZSwgXAorICAucHJpdmF0ZV92YWx1ZSA9IHJlZyB8IChzaGlmdCA8PCAxNikgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSwgXAorICAudGx2ID0geyAucCA9ICh4dGx2KSB9IH0KKworc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9fc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX2luZm8gKnVpbmZvKQoreworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisKKwl1aW5mby0+dHlwZSA9IG1hc2sgPT0gMSA/IFNORFJWX0NUTF9FTEVNX1RZUEVfQk9PTEVBTiA6IFNORFJWX0NUTF9FTEVNX1RZUEVfSU5URUdFUjsKKwl1aW5mby0+Y291bnQgPSAxOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1pbiA9IDA7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWF4ID0gbWFzazsKKwlyZXR1cm4gMDsKK30KKyAKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9nZXRfc2luZ2xlKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKwlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7CisJaW50IHZhbDsKKworCW11dGV4X2xvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwl2YWwgPSAoYWs0NTMxLT5yZWdzW3JlZ10gPj4gc2hpZnQpICYgbWFzazsKKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlpZiAoaW52ZXJ0KSB7CisJCXZhbCA9IG1hc2sgLSB2YWw7CisJfQorCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gdmFsOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X3NpbmdsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCBzaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDA3OworCWludCBtYXNrID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmY7CisJaW50IGludmVydCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyMikgJiAxOworCWludCBjaGFuZ2U7CisJaW50IHZhbDsKKworCXZhbCA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdICYgbWFzazsKKwlpZiAoaW52ZXJ0KSB7CisJCXZhbCA9IG1hc2sgLSB2YWw7CisJfQorCXZhbCA8PD0gc2hpZnQ7CisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXZhbCA9IChhazQ1MzEtPnJlZ3NbcmVnXSAmIH4obWFzayA8PCBzaGlmdCkpIHwgdmFsOworCWNoYW5nZSA9IHZhbCAhPSBhazQ1MzEtPnJlZ3NbcmVnXTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgcmVnLCBhazQ1MzEtPnJlZ3NbcmVnXSA9IHZhbCk7CisJbXV0ZXhfdW5sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJcmV0dXJuIGNoYW5nZTsKK30KKworI2RlZmluZSBBSzQ1MzFfRE9VQkxFKHhuYW1lLCB4aW5kZXgsIGxlZnRfcmVnLCByaWdodF9yZWcsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0LCBtYXNrLCBpbnZlcnQpIFwKK3sgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIC5uYW1lID0geG5hbWUsIC5pbmRleCA9IHhpbmRleCwgXAorICAuaW5mbyA9IHNuZF9hazQ1MzFfaW5mb19kb3VibGUsIFwKKyAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2RvdWJsZSwgLnB1dCA9IHNuZF9hazQ1MzFfcHV0X2RvdWJsZSwgXAorICAucHJpdmF0ZV92YWx1ZSA9IGxlZnRfcmVnIHwgKHJpZ2h0X3JlZyA8PCA4KSB8IChsZWZ0X3NoaWZ0IDw8IDE2KSB8IChyaWdodF9zaGlmdCA8PCAxOSkgfCAobWFzayA8PCAyNCkgfCAoaW52ZXJ0IDw8IDIyKSB9CisjZGVmaW5lIEFLNDUzMV9ET1VCTEVfVExWKHhuYW1lLCB4aW5kZXgsIGxlZnRfcmVnLCByaWdodF9yZWcsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0LCBtYXNrLCBpbnZlcnQsIHh0bHYpIFwKK3sgLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsIFwKKyAgLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUgfCBTTkRSVl9DVExfRUxFTV9BQ0NFU1NfVExWX1JFQUQsIFwKKyAgLm5hbWUgPSB4bmFtZSwgLmluZGV4ID0geGluZGV4LCBcCisgIC5pbmZvID0gc25kX2FrNDUzMV9pbmZvX2RvdWJsZSwgXAorICAuZ2V0ID0gc25kX2FrNDUzMV9nZXRfZG91YmxlLCAucHV0ID0gc25kX2FrNDUzMV9wdXRfZG91YmxlLCBcCisgIC5wcml2YXRlX3ZhbHVlID0gbGVmdF9yZWcgfCAocmlnaHRfcmVnIDw8IDgpIHwgKGxlZnRfc2hpZnQgPDwgMTYpIHwgKHJpZ2h0X3NoaWZ0IDw8IDE5KSB8IChtYXNrIDw8IDI0KSB8IChpbnZlcnQgPDwgMjIpLCBcCisgIC50bHYgPSB7IC5wID0gKHh0bHYpIH0gfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfaW5mb19kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKworCXVpbmZvLT50eXBlID0gbWFzayA9PSAxID8gU05EUlZfQ1RMX0VMRU1fVFlQRV9CT09MRUFOIDogU05EUlZfQ1RMX0VMRU1fVFlQRV9JTlRFR0VSOworCXVpbmZvLT5jb3VudCA9IDI7CisJdWluZm8tPnZhbHVlLmludGVnZXIubWluID0gMDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5tYXggPSBtYXNrOworCXJldHVybiAwOworfQorIAorc3RhdGljIGludCBzbmRfYWs0NTMxX2dldF9kb3VibGUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IGxlZnRfcmVnID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByaWdodF9yZWcgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gOCkgJiAweGZmOworCWludCBsZWZ0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE2KSAmIDB4MDc7CisJaW50IHJpZ2h0X3NoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDE5KSAmIDB4MDc7CisJaW50IG1hc2sgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZjsKKwlpbnQgaW52ZXJ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDIyKSAmIDE7CisJaW50IGxlZnQsIHJpZ2h0OworCisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCWxlZnQgPSAoYWs0NTMxLT5yZWdzW2xlZnRfcmVnXSA+PiBsZWZ0X3NoaWZ0KSAmIG1hc2s7CisJcmlnaHQgPSAoYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gPj4gcmlnaHRfc2hpZnQpICYgbWFzazsKKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlpZiAoaW52ZXJ0KSB7CisJCWxlZnQgPSBtYXNrIC0gbGVmdDsKKwkJcmlnaHQgPSBtYXNrIC0gcmlnaHQ7CisJfQorCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gbGVmdDsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9IHJpZ2h0OworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfcHV0X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgbGVmdF9yZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHJpZ2h0X3JlZyA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7CisJaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwNzsKKwlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTkpICYgMHgwNzsKKwlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweGZmOworCWludCBpbnZlcnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjIpICYgMTsKKwlpbnQgY2hhbmdlOworCWludCBsZWZ0LCByaWdodDsKKworCWxlZnQgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSAmIG1hc2s7CisJcmlnaHQgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSAmIG1hc2s7CisJaWYgKGludmVydCkgeworCQlsZWZ0ID0gbWFzayAtIGxlZnQ7CisJCXJpZ2h0ID0gbWFzayAtIHJpZ2h0OworCX0KKwlsZWZ0IDw8PSBsZWZ0X3NoaWZ0OworCXJpZ2h0IDw8PSByaWdodF9zaGlmdDsKKwltdXRleF9sb2NrKCZhazQ1MzEtPnJlZ19tdXRleCk7CisJaWYgKGxlZnRfcmVnID09IHJpZ2h0X3JlZykgeworCQlsZWZ0ID0gKGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gJiB+KChtYXNrIDw8IGxlZnRfc2hpZnQpIHwgKG1hc2sgPDwgcmlnaHRfc2hpZnQpKSkgfCBsZWZ0IHwgcmlnaHQ7CisJCWNoYW5nZSA9IGxlZnQgIT0gYWs0NTMxLT5yZWdzW2xlZnRfcmVnXTsKKwkJYWs0NTMxLT53cml0ZShhazQ1MzEsIGxlZnRfcmVnLCBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddID0gbGVmdCk7CisJfSBlbHNlIHsKKwkJbGVmdCA9IChhazQ1MzEtPnJlZ3NbbGVmdF9yZWddICYgfihtYXNrIDw8IGxlZnRfc2hpZnQpKSB8IGxlZnQ7CisJCXJpZ2h0ID0gKGFrNDUzMS0+cmVnc1tyaWdodF9yZWddICYgfihtYXNrIDw8IHJpZ2h0X3NoaWZ0KSkgfCByaWdodDsKKwkJY2hhbmdlID0gbGVmdCAhPSBhazQ1MzEtPnJlZ3NbbGVmdF9yZWddIHx8IHJpZ2h0ICE9IGFrNDUzMS0+cmVnc1tyaWdodF9yZWddOworCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgbGVmdF9yZWcsIGFrNDUzMS0+cmVnc1tsZWZ0X3JlZ10gPSBsZWZ0KTsKKwkJYWs0NTMxLT53cml0ZShhazQ1MzEsIHJpZ2h0X3JlZywgYWs0NTMxLT5yZWdzW3JpZ2h0X3JlZ10gPSByaWdodCk7CisJfQorCW11dGV4X3VubG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXJldHVybiBjaGFuZ2U7Cit9CisKKyNkZWZpbmUgQUs0NTMxX0lOUFVUX1NXKHhuYW1lLCB4aW5kZXgsIHJlZzEsIHJlZzIsIGxlZnRfc2hpZnQsIHJpZ2h0X3NoaWZ0KSBcCit7IC5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCAuaW5kZXggPSB4aW5kZXgsIFwKKyAgLmluZm8gPSBzbmRfYWs0NTMxX2luZm9faW5wdXRfc3csIFwKKyAgLmdldCA9IHNuZF9hazQ1MzFfZ2V0X2lucHV0X3N3LCAucHV0ID0gc25kX2FrNDUzMV9wdXRfaW5wdXRfc3csIFwKKyAgLnByaXZhdGVfdmFsdWUgPSByZWcxIHwgKHJlZzIgPDwgOCkgfCAobGVmdF9zaGlmdCA8PCAxNikgfCAocmlnaHRfc2hpZnQgPDwgMjQpIH0KKworc3RhdGljIGludCBzbmRfYWs0NTMxX2luZm9faW5wdXRfc3coc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIHN0cnVjdCBzbmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0JPT0xFQU47CisJdWluZm8tPmNvdW50ID0gNDsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IDE7CisJcmV0dXJuIDA7Cit9CisgCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfZ2V0X2lucHV0X3N3KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcxID0ga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgJiAweGZmOworCWludCByZWcyID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHhmZjsKKwlpbnQgbGVmdF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweDBmOworCWludCByaWdodF9zaGlmdCA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAyNCkgJiAweDBmOworCisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gKGFrNDUzMS0+cmVnc1tyZWcxXSA+PiBsZWZ0X3NoaWZ0KSAmIDE7CisJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMV0gPSAoYWs0NTMxLT5yZWdzW3JlZzJdID4+IGxlZnRfc2hpZnQpICYgMTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsyXSA9IChhazQ1MzEtPnJlZ3NbcmVnMV0gPj4gcmlnaHRfc2hpZnQpICYgMTsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVszXSA9IChhazQ1MzEtPnJlZ3NbcmVnMl0gPj4gcmlnaHRfc2hpZnQpICYgMTsKKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBzbmRfYWs0NTMxX3B1dF9pbnB1dF9zdyhzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKKwlpbnQgcmVnMSA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgcmVnMiA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiA4KSAmIDB4ZmY7CisJaW50IGxlZnRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHgwZjsKKwlpbnQgcmlnaHRfc2hpZnQgPSAoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHgwZjsKKwlpbnQgY2hhbmdlOworCWludCB2YWwxLCB2YWwyOworCisJbXV0ZXhfbG9jaygmYWs0NTMxLT5yZWdfbXV0ZXgpOworCXZhbDEgPSBhazQ1MzEtPnJlZ3NbcmVnMV0gJiB+KCgxIDw8IGxlZnRfc2hpZnQpIHwgKDEgPDwgcmlnaHRfc2hpZnQpKTsKKwl2YWwyID0gYWs0NTMxLT5yZWdzW3JlZzJdICYgfigoMSA8PCBsZWZ0X3NoaWZ0KSB8ICgxIDw8IHJpZ2h0X3NoaWZ0KSk7CisJdmFsMSB8PSAodWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gJiAxKSA8PCBsZWZ0X3NoaWZ0OworCXZhbDIgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzFdICYgMSkgPDwgbGVmdF9zaGlmdDsKKwl2YWwxIHw9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsyXSAmIDEpIDw8IHJpZ2h0X3NoaWZ0OworCXZhbDIgfD0gKHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzNdICYgMSkgPDwgcmlnaHRfc2hpZnQ7CisJY2hhbmdlID0gdmFsMSAhPSBhazQ1MzEtPnJlZ3NbcmVnMV0gfHwgdmFsMiAhPSBhazQ1MzEtPnJlZ3NbcmVnMl07CisJYWs0NTMxLT53cml0ZShhazQ1MzEsIHJlZzEsIGFrNDUzMS0+cmVnc1tyZWcxXSA9IHZhbDEpOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCByZWcyLCBhazQ1MzEtPnJlZ3NbcmVnMl0gPSB2YWwyKTsKKwltdXRleF91bmxvY2soJmFrNDUzMS0+cmVnX211dGV4KTsKKwlyZXR1cm4gY2hhbmdlOworfQorCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUoZGJfc2NhbGVfbWFzdGVyLCAtNjIwMCwgMjAwLCAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9tb25vLCAtMjgwMCwgNDAwLCAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShkYl9zY2FsZV9pbnB1dCwgLTUwMDAsIDIwMCwgMCk7CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzbmRfYWs0NTMxX2NvbnRyb2xzW10gX19kZXZpbml0ZGF0YSA9IHsKKworQUs0NTMxX0RPVUJMRV9UTFYoIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLCAwLAorCQkgIEFLNDUzMV9MTUFTVEVSLCBBSzQ1MzFfUk1BU1RFUiwgNywgNywgMSwgMSwKKwkJICBkYl9zY2FsZV9tYXN0ZXIpLAorQUs0NTMxX0RPVUJMRSgiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIsIDAsIEFLNDUzMV9MTUFTVEVSLCBBSzQ1MzFfUk1BU1RFUiwgMCwgMCwgMHgxZiwgMSksCisKK0FLNDUzMV9TSU5HTEVfVExWKCJNYXN0ZXIgTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfTU9OT19PVVQsIDcsIDEsIDEsCisJCSAgZGJfc2NhbGVfbW9ubyksCitBSzQ1MzFfU0lOR0xFKCJNYXN0ZXIgTW9ubyBQbGF5YmFjayBWb2x1bWUiLCAwLCBBSzQ1MzFfTU9OT19PVVQsIDAsIDB4MDcsIDEpLAorCitBSzQ1MzFfRE9VQkxFKCJQQ00gU3dpdGNoIiwgMCwgQUs0NTMxX0xWT0lDRSwgQUs0NTMxX1JWT0lDRSwgNywgNywgMSwgMSksCitBSzQ1MzFfRE9VQkxFX1RMVigiUENNIFZvbHVtZSIsIDAsIEFLNDUzMV9MVk9JQ0UsIEFLNDUzMV9SVk9JQ0UsIDAsIDAsIDB4MWYsIDEsCisJCSAgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cyLCBBSzQ1MzFfT1VUX1NXMiwgMywgMiwgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJQQ00gQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDIsIDIsIDEsIDApLAorCitBSzQ1MzFfRE9VQkxFKCJQQ00gU3dpdGNoIiwgMSwgQUs0NTMxX0xGTSwgQUs0NTMxX1JGTSwgNywgNywgMSwgMSksCitBSzQ1MzFfRE9VQkxFX1RMVigiUENNIFZvbHVtZSIsIDEsIEFLNDUzMV9MRk0sIEFLNDUzMV9SRk0sIDAsIDAsIDB4MWYsIDEsCisJCSAgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX0RPVUJMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDEsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgNiwgNSwgMSwgMCksCitBSzQ1MzFfSU5QVVRfU1coIlBDTSBDYXB0dXJlIFJvdXRlIiwgMSwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCA2LCA1KSwKKworQUs0NTMxX0RPVUJMRSgiQ0QgU3dpdGNoIiwgMCwgQUs0NTMxX0xDRCwgQUs0NTMxX1JDRCwgNywgNywgMSwgMSksCitBSzQ1MzFfRE9VQkxFX1RMVigiQ0QgVm9sdW1lIiwgMCwgQUs0NTMxX0xDRCwgQUs0NTMxX1JDRCwgMCwgMCwgMHgxZiwgMSwKKwkJICBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfRE9VQkxFKCJDRCBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgQUs0NTMxX09VVF9TVzEsIDIsIDEsIDEsIDApLAorQUs0NTMxX0lOUFVUX1NXKCJDRCBDYXB0dXJlIFJvdXRlIiwgMCwgQUs0NTMxX0xJTl9TVzEsIEFLNDUzMV9SSU5fU1cxLCAyLCAxKSwKKworQUs0NTMxX0RPVUJMRSgiTGluZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTExJTkUsIEFLNDUzMV9STElORSwgNywgNywgMSwgMSksCitBSzQ1MzFfRE9VQkxFX1RMVigiTGluZSBWb2x1bWUiLCAwLCBBSzQ1MzFfTExJTkUsIEFLNDUzMV9STElORSwgMCwgMCwgMHgxZiwgMSwKKwkJICBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfRE9VQkxFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDAsIEFLNDUzMV9PVVRfU1cxLCBBSzQ1MzFfT1VUX1NXMSwgNCwgMywgMSwgMCksCitBSzQ1MzFfSU5QVVRfU1coIkxpbmUgQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cxLCBBSzQ1MzFfUklOX1NXMSwgNCwgMyksCisKK0FLNDUzMV9ET1VCTEUoIkF1eCBTd2l0Y2giLCAwLCBBSzQ1MzFfTEFVWEEsIEFLNDUzMV9SQVVYQSwgNywgNywgMSwgMSksCitBSzQ1MzFfRE9VQkxFX1RMVigiQXV4IFZvbHVtZSIsIDAsIEFLNDUzMV9MQVVYQSwgQUs0NTMxX1JBVVhBLCAwLCAwLCAweDFmLCAxLAorCQkgIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9ET1VCTEUoIkF1eCBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgQUs0NTMxX09VVF9TVzIsIDUsIDQsIDEsIDApLAorQUs0NTMxX0lOUFVUX1NXKCJBdXggQ2FwdHVyZSBSb3V0ZSIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNCwgMyksCisKK0FLNDUzMV9TSU5HTEUoIk1vbm8gU3dpdGNoIiwgMCwgQUs0NTMxX01PTk8xLCA3LCAxLCAxKSwKK0FLNDUzMV9TSU5HTEVfVExWKCJNb25vIFZvbHVtZSIsIDAsIEFLNDUzMV9NT05PMSwgMCwgMHgxZiwgMSwgZGJfc2NhbGVfaW5wdXQpLAorQUs0NTMxX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMiwgMCwgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJNb25vIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCAwLCAwLCAxLCAwKSwKKworQUs0NTMxX1NJTkdMRSgiTW9ubyBTd2l0Y2giLCAxLCBBSzQ1MzFfTU9OTzIsIDcsIDEsIDEpLAorQUs0NTMxX1NJTkdMRV9UTFYoIk1vbm8gVm9sdW1lIiwgMSwgQUs0NTMxX01PTk8yLCAwLCAweDFmLCAxLCBkYl9zY2FsZV9pbnB1dCksCitBSzQ1MzFfU0lOR0xFKCJNb25vIFBsYXliYWNrIFN3aXRjaCIsIDEsIEFLNDUzMV9PVVRfU1cyLCAxLCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIk1vbm8gQ2FwdHVyZSBTd2l0Y2giLCAxLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDEsIDEsIDEsIDApLAorCitBSzQ1MzFfU0lOR0xFX1RMVigiTWljIFZvbHVtZSIsIDAsIEFLNDUzMV9NSUMsIDAsIDB4MWYsIDEsIGRiX3NjYWxlX2lucHV0KSwKK0FLNDUzMV9TSU5HTEUoIk1pYyBTd2l0Y2giLCAwLCBBSzQ1MzFfTUlDLCA3LCAxLCAxKSwKK0FLNDUzMV9TSU5HTEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAwLCBBSzQ1MzFfT1VUX1NXMSwgMCwgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJNaWMgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMSwgQUs0NTMxX1JJTl9TVzEsIDAsIDAsIDEsIDApLAorCitBSzQ1MzFfRE9VQkxFKCJNaWMgQnlwYXNzIENhcHR1cmUgU3dpdGNoIiwgMCwgQUs0NTMxX0xJTl9TVzIsIEFLNDUzMV9SSU5fU1cyLCA3LCA3LCAxLCAwKSwKK0FLNDUzMV9ET1VCTEUoIk1vbm8xIEJ5cGFzcyBDYXB0dXJlIFN3aXRjaCIsIDAsIEFLNDUzMV9MSU5fU1cyLCBBSzQ1MzFfUklOX1NXMiwgNiwgNiwgMSwgMCksCitBSzQ1MzFfRE9VQkxFKCJNb25vMiBCeXBhc3MgQ2FwdHVyZSBTd2l0Y2giLCAwLCBBSzQ1MzFfTElOX1NXMiwgQUs0NTMxX1JJTl9TVzIsIDUsIDUsIDEsIDApLAorCitBSzQ1MzFfU0lOR0xFKCJBRCBJbnB1dCBTZWxlY3QiLCAwLCBBSzQ1MzFfQURfSU4sIDAsIDEsIDApLAorQUs0NTMxX1NJTkdMRSgiTWljIEJvb3N0ICgrMzBkQikiLCAwLCBBSzQ1MzFfTUlDX0dBSU4sIDAsIDEsIDApCit9OworCitzdGF0aWMgaW50IHNuZF9hazQ1MzFfZnJlZShzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQoreworCWlmIChhazQ1MzEpIHsKKwkJaWYgKGFrNDUzMS0+cHJpdmF0ZV9mcmVlKQorCQkJYWs0NTMxLT5wcml2YXRlX2ZyZWUoYWs0NTMxKTsKKwkJa2ZyZWUoYWs0NTMxKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX2FrNDUzMV9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQoreworCXN0cnVjdCBzbmRfYWs0NTMxICphazQ1MzEgPSBkZXZpY2UtPmRldmljZV9kYXRhOworCXJldHVybiBzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKK30KKworc3RhdGljIHU4IHNuZF9hazQ1MzFfaW5pdGlhbF9tYXBbMHgxOSArIDFdID0geworCTB4OWYsCQkvKiAwMDogTWFzdGVyIFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMDE6IE1hc3RlciBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDAyOiBWb2ljZSBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDAzOiBWb2ljZSBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDA0OiBGTSBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDA1OiBGTSBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDA2OiBDRCBBdWRpbyBWb2x1bWUgTGNoICovCisJMHg5ZiwJCS8qIDA3OiBDRCBBdWRpbyBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDA4OiBMaW5lIFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMDk6IExpbmUgVm9sdW1lIFJjaCAqLworCTB4OWYsCQkvKiAwYTogQXV4IFZvbHVtZSBMY2ggKi8KKwkweDlmLAkJLyogMGI6IEF1eCBWb2x1bWUgUmNoICovCisJMHg5ZiwJCS8qIDBjOiBNb25vMSBWb2x1bWUgKi8KKwkweDlmLAkJLyogMGQ6IE1vbm8yIFZvbHVtZSAqLworCTB4OWYsCQkvKiAwZTogTWljIFZvbHVtZSAqLworCTB4ODcsCQkvKiAwZjogTW9uby1vdXQgVm9sdW1lICovCisJMHgwMCwJCS8qIDEwOiBPdXRwdXQgTWl4ZXIgU1cxICovCisJMHgwMCwJCS8qIDExOiBPdXRwdXQgTWl4ZXIgU1cyICovCisJMHgwMCwJCS8qIDEyOiBMY2ggSW5wdXQgTWl4ZXIgU1cxICovCisJMHgwMCwJCS8qIDEzOiBSY2ggSW5wdXQgTWl4ZXIgU1cxICovCisJMHgwMCwJCS8qIDE0OiBMY2ggSW5wdXQgTWl4ZXIgU1cyICovCisJMHgwMCwJCS8qIDE1OiBSY2ggSW5wdXQgTWl4ZXIgU1cyICovCisJMHgwMCwJCS8qIDE2OiBSZXNldCAmIFBvd2VyIERvd24gKi8KKwkweDAwLAkJLyogMTc6IENsb2NrIFNlbGVjdCAqLworCTB4MDAsCQkvKiAxODogQUQgSW5wdXQgU2VsZWN0ICovCisJMHgwMQkJLyogMTk6IE1pYyBBbXAgU2V0dXAgKi8KK307CisKK2ludCBfX2RldmluaXQgc25kX2FrNDUzMV9taXhlcihzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCisJCQkgICAgICAgc3RydWN0IHNuZF9hazQ1MzEgKl9hazQ1MzEsCisJCQkgICAgICAgc3RydWN0IHNuZF9hazQ1MzEgKipyYWs0NTMxKQoreworCXVuc2lnbmVkIGludCBpZHg7CisJaW50IGVycjsKKwlzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxOworCXN0YXRpYyBzdHJ1Y3Qgc25kX2RldmljZV9vcHMgb3BzID0geworCQkuZGV2X2ZyZWUgPQlzbmRfYWs0NTMxX2Rldl9mcmVlLAorCX07CisKKwlzbmRfYXNzZXJ0KHJhazQ1MzEgIT0gTlVMTCwgcmV0dXJuIC1FSU5WQUwpOworCSpyYWs0NTMxID0gTlVMTDsKKwlzbmRfYXNzZXJ0KGNhcmQgIT0gTlVMTCAmJiBfYWs0NTMxICE9IE5VTEwsIHJldHVybiAtRUlOVkFMKTsKKwlhazQ1MzEgPSBremFsbG9jKHNpemVvZigqYWs0NTMxKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGFrNDUzMSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKwkqYWs0NTMxID0gKl9hazQ1MzE7CisJbXV0ZXhfaW5pdCgmYWs0NTMxLT5yZWdfbXV0ZXgpOworCWlmICgoZXJyID0gc25kX2NvbXBvbmVudF9hZGQoY2FyZCwgIkFLNDUzMSIpKSA8IDApIHsKKwkJc25kX2FrNDUzMV9mcmVlKGFrNDUzMSk7CisJCXJldHVybiBlcnI7CisJfQorCXN0cmNweShjYXJkLT5taXhlcm5hbWUsICJBc2FoaSBLYXNlaSBBSzQ1MzEiKTsKKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX1JFU0VULCAweDAzKTsJLyogbm8gUlNULCBQRCAqLworCXVkZWxheSgxMDApOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfQ0xPQ0ssIDB4MDApOwkvKiBDT0RFQyBBREMgYW5kIENPREVDIERBQyB1c2Uge0xSLEJ9Q0xLMiBhbmQgcnVuIG9mZiBMUkNMSzIgUExMICovCisJZm9yIChpZHggPSAwOyBpZHggPD0gMHgxOTsgaWR4KyspIHsKKwkJaWYgKGlkeCA9PSBBSzQ1MzFfUkVTRVQgfHwgaWR4ID09IEFLNDUzMV9DTE9DSykKKwkJCWNvbnRpbnVlOworCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSA9IHNuZF9hazQ1MzFfaW5pdGlhbF9tYXBbaWR4XSk7CS8qIHJlY29yZGluZyBzb3VyY2UgaXMgbWl4ZXIgKi8KKwl9CisJZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hazQ1MzFfY29udHJvbHMpOyBpZHgrKykgeworCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNhcmQsIHNuZF9jdGxfbmV3MSgmc25kX2FrNDUzMV9jb250cm9sc1tpZHhdLCBhazQ1MzEpKSkgPCAwKSB7CisJCQlzbmRfYWs0NTMxX2ZyZWUoYWs0NTMxKTsKKwkJCXJldHVybiBlcnI7CisJCX0KKwl9CisJc25kX2FrNDUzMV9wcm9jX2luaXQoY2FyZCwgYWs0NTMxKTsKKwlpZiAoKGVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9DT0RFQywgYWs0NTMxLCAmb3BzKSkgPCAwKSB7CisJCXNuZF9hazQ1MzFfZnJlZShhazQ1MzEpOworCQlyZXR1cm4gZXJyOworCX0KKworI2lmIDAKKwlzbmRfYWs0NTMxX2R1bXAoYWs0NTMxKTsKKyNlbmRpZgorCSpyYWs0NTMxID0gYWs0NTMxOworCXJldHVybiAwOworfQorCisvKgorICogcG93ZXIgbWFuYWdlbWVudAorICovCisjaWZkZWYgQ09ORklHX1BNCit2b2lkIHNuZF9hazQ1MzFfc3VzcGVuZChzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQoreworCS8qIG11dGUgKi8KKwlhazQ1MzEtPndyaXRlKGFrNDUzMSwgQUs0NTMxX0xNQVNURVIsIDB4OWYpOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUk1BU1RFUiwgMHg5Zik7CisJLyogcG93ZXJkb3duICovCisJYWs0NTMxLT53cml0ZShhazQ1MzEsIEFLNDUzMV9SRVNFVCwgMHgwMSk7Cit9CisKK3ZvaWQgc25kX2FrNDUzMV9yZXN1bWUoc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSkKK3sKKwlpbnQgaWR4OworCisJLyogaW5pdGlhbGl6ZSAqLworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfUkVTRVQsIDB4MDMpOworCXVkZWxheSgxMDApOworCWFrNDUzMS0+d3JpdGUoYWs0NTMxLCBBSzQ1MzFfQ0xPQ0ssIDB4MDApOworCS8qIHJlc3RvcmUgbWl4ZXIgcmVnaXN0ZXJzICovCisJZm9yIChpZHggPSAwOyBpZHggPD0gMHgxOTsgaWR4KyspIHsKKwkJaWYgKGlkeCA9PSBBSzQ1MzFfUkVTRVQgfHwgaWR4ID09IEFLNDUzMV9DTE9DSykKKwkJCWNvbnRpbnVlOworCQlhazQ1MzEtPndyaXRlKGFrNDUzMSwgaWR4LCBhazQ1MzEtPnJlZ3NbaWR4XSk7CisJfQorfQorI2VuZGlmCisKKyNpZmRlZiBDT05GSUdfUFJPQ19GUworLyoKKyAqIC9wcm9jIGludGVyZmFjZQorICovCisKK3N0YXRpYyB2b2lkIHNuZF9hazQ1MzFfcHJvY19yZWFkKHN0cnVjdCBzbmRfaW5mb19lbnRyeSAqZW50cnksIAorCQkJCSBzdHJ1Y3Qgc25kX2luZm9fYnVmZmVyICpidWZmZXIpCit7CisJc3RydWN0IHNuZF9hazQ1MzEgKmFrNDUzMSA9IGVudHJ5LT5wcml2YXRlX2RhdGE7CisKKwlzbmRfaXByaW50ZihidWZmZXIsICJBc2FoaSBLYXNlaSBBSzQ1MzFcblxuIik7CisJc25kX2lwcmludGYoYnVmZmVyLCAiUmVjb3JkaW5nIHNvdXJjZSAgIDogJXNcbiIKKwkJICAgICJNSUMgZ2FpbiAgICAgICAgICAgOiAlc1xuIiwKKwkJICAgIGFrNDUzMS0+cmVnc1tBSzQ1MzFfQURfSU5dICYgMSA/ICJleHRlcm5hbCIgOiAibWl4ZXIiLAorCQkgICAgYWs0NTMxLT5yZWdzW0FLNDUzMV9NSUNfR0FJTl0gJiAxID8gIiszMGRCIiA6ICIrMGRCIik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZGV2aW5pdAorc25kX2FrNDUzMV9wcm9jX2luaXQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX2FrNDUzMSAqYWs0NTMxKQoreworCXN0cnVjdCBzbmRfaW5mb19lbnRyeSAqZW50cnk7CisKKwlpZiAoISBzbmRfY2FyZF9wcm9jX25ldyhjYXJkLCAiYWs0NTMxIiwgJmVudHJ5KSkKKwkJc25kX2luZm9fc2V0X3RleHRfb3BzKGVudHJ5LCBhazQ1MzEsIHNuZF9hazQ1MzFfcHJvY19yZWFkKTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2F1ODh4MC9hdTg4eDBfZ2FtZS5jIGIvc291bmQvcGNpL2F1ODh4MC9hdTg4eDBfZ2FtZS5jCmluZGV4IGJjMjEyZjQuLmUyOTFhYTUgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9hdTg4eDAvYXU4OHgwX2dhbWUuYworKysgYi9zb3VuZC9wY2kvYXU4OHgwL2F1ODh4MF9nYW1lLmMKQEAgLTEsNiArMSw0IEBACiAvKgotICogJElkOiBhdTg4eDBfZ2FtZS5jLHYgMS45IDIwMDMvMDkvMjIgMDM6NTE6MjggbWphbmRlciBFeHAgJAotICoKICAqICBNYW51ZWwgSmFuZGVyLgogICoKICAqICBCYXNlZCBvbiB0aGUgd29yayBvZjoKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9hdzIvYXcyLWFsc2EuYyBiL3NvdW5kL3BjaS9hdzIvYXcyLWFsc2EuYwppbmRleCA1NmY4N2NkLi4zZjAwZGRmIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvYXcyL2F3Mi1hbHNhLmMKKysrIGIvc291bmQvcGNpL2F3Mi9hdzItYWxzYS5jCkBAIC0zMTYsNiArMzE2LDggQEAKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCisJLyogKDIpIGluaXRpYWxpemF0aW9uIG9mIHRoZSBjaGlwIGhhcmR3YXJlICovCisJc25kX2F3Ml9zYWE3MTQ2X3NldHVwKCZjaGlwLT5zYWE3MTQ2LCBjaGlwLT5pb2Jhc2VfdmlydCk7CiAKIAlpZiAocmVxdWVzdF9pcnEocGNpLT5pcnEsIHNuZF9hdzJfc2FhNzE0Nl9pbnRlcnJ1cHQsCiAJCQlJUlFGX1NIQVJFRCwgIkF1ZGlvd2VyazIiLCBjaGlwKSkgewpAQCAtMzI5LDggKzMzMSw2IEBACiAJfQogCWNoaXAtPmlycSA9IHBjaS0+aXJxOwogCi0JLyogKDIpIGluaXRpYWxpemF0aW9uIG9mIHRoZSBjaGlwIGhhcmR3YXJlICovCi0Jc25kX2F3Ml9zYWE3MTQ2X3NldHVwKCZjaGlwLT5zYWE3MTQ2LCBjaGlwLT5pb2Jhc2VfdmlydCk7CiAJZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0xPV0xFVkVMLCBjaGlwLCAmb3BzKTsKIAlpZiAoZXJyIDwgMCkgewogCQlmcmVlX2lycShjaGlwLT5pcnEsICh2b2lkICopY2hpcCk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYXp0MzMyOC5jIGIvc291bmQvcGNpL2F6dDMzMjguYwppbmRleCA1ZjYzYWY2Li4yMmYxOGYzIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvYXp0MzMyOC5jCisrKyBiL3NvdW5kL3BjaS9henQzMzI4LmMKQEAgLTEsNiArMSw2IEBACiAvKgogICogIGF6dDMzMjguYyAtIGRyaXZlciBmb3IgQXp0ZWNoIEFaRjMzMjggYmFzZWQgc291bmRjYXJkcyAoZS5nLiBQQ0kxNjgpLgotICogIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNSwgMjAwNiwgMjAwNyBieSBBbmRyZWFzIE1vaHIgPGFuZGkgQVQgbGlzYXMuZGU+CisgKiAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA1IC0gMjAwOCBieSBBbmRyZWFzIE1vaHIgPGFuZGkgQVQgbGlzYXMuZGU+CiAgKgogICogIEZyYW1ld29yayBib3Jyb3dlZCBmcm9tIEJhcnQgSGFydGdlcnMncyBhbHM0MDAwLmMuCiAgKiAgRHJpdmVyIGRldmVsb3BlZCBvbiBQQ0kxNjggQVAoVykgdmVyc2lvbiAoUENJIHJldi4gMTAsIHN1YnN5c3RlbSBJRCAxODAxKSwKQEAgLTM1LDkgKzM1LDIwIEBACiAgKiAgKDMgd2Vla3MnIHdvcnRoIG9mIGV2ZW5pbmdzIGZpbGxlZCB3aXRoIGRyaXZlciB3b3JrKS4KICAqICAoYW5kIG5vLCBJIGRpZCBOT1QgZ28gdGhlIGVhc3kgd2F5OiB0byBwaWNrIHVwIGEgU0IgUENJMTI4IGZvciA5IEV1cm9zKQogICoKLSAqICBUaGUgQVpGMzMyOCBjaGlwIChub3RlOiBBWkYzMzI4LCAqbm90KiBBWlQzMzI4LCB0aGF0J3MganVzdCB0aGUgZHJpdmVyIG5hbWUKLSAqICBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zKSBoYXMgdGhlIGZvbGxvd2luZyBmZWF0dXJlczoKKyAqICBJdCBpcyBxdWl0ZSBsaWtlbHkgdGhhdCB0aGUgQVpGMzMyOCBjaGlwIGlzIHRoZSBQQ0kgY291c2luIG9mIHRoZQorICogIEFaRjMzMTggKCJhenQxMDIwIHBucCIsICJNTSBQcm8gMTYiKSBJU0EgY2hpcCwgZ2l2ZW4gdmVyeSBzaW1pbGFyIHNwZWNzLgogICoKKyAqICBUaGUgQVpGMzMyOCBjaGlwIChub3RlOiBBWkYzMzI4LCAqbm90KiBBWlQzMzI4LCB0aGF0J3MganVzdCB0aGUgZHJpdmVyIG5hbWUKKyAqICBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zKSBmcm9tIEF6ZmluIChqb2ludC12ZW50dXJlIG9mIEF6dGVjaCBhbmQgRmluY2l0ZWMsCisgKiAgRmluY2l0ZWMgYWNxdWlyZWQgYnkgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvciBpbiAyMDAyLCB0b2dldGhlciB3aXRoIHRoZQorICogIEZpbmNpdGVjLXJlbGF0ZWQgY29tcGFueSBBUlNtaWtybykgaGFzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6CisgKgorICogIC0gY29tcGF0aWJpbGl0eSAmIGNvbXBsaWFuY2U6CisgKiAgICAtIE1pY3Jvc29mdCBQQyA5NyAoIlBDIDk3IEhhcmR3YXJlIERlc2lnbiBHdWlkZSIsCisgKiAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3doZGMvYXJjaGl2ZS9wY2d1aWRlcy5tc3B4KQorICogICAgLSBNaWNyb3NvZnQgUEMgOTggQmFzZWxpbmUgQXVkaW8KKyAqICAgIC0gTVBVNDAxIFVBUlQKKyAqICAgIC0gU291bmQgQmxhc3RlciBFbXVsYXRpb24gKERPUyBCb3gpCiAgKiAgLSBidWlsdGluIEFDOTcgY29uZm9ybWFudCBjb2RlYyAoU05SIG92ZXIgODBkQikKICAqICAgIE5vdGUgdGhhdCAiY29uZm9ybWFudCIgIT0gImNvbXBsaWFudCIhISB0aGlzIGNoaXAncyBtaXhlciByZWdpc3RlciBsYXlvdXQKICAqICAgICpkaWZmZXJzKiBmcm9tIHRoZSBzdGFuZGFyZCBBQzk3IGxheW91dDoKQEAgLTQ4LDIxICs1OSwyOCBAQAogICogICAgYWRkcmVzc2VzIGlsbGVnYWxseS4gU28gZmFyIHVuZm9ydHVuYXRlbHkgaXQgbG9va3MgbGlrZSB0aGUgdmVyeSBmbGV4aWJsZQogICogICAgQUxTQSBBQzk3IHN1cHBvcnQgaXMgc3RpbGwgbm90IGVub3VnaCB0byBlYXNpbHkgY29tcGVuc2F0ZSBmb3Igc3VjaCBhCiAgKiAgICBncmF2ZSBsYXlvdXQgdmlvbGF0aW9uIGRlc3BpdGUgYWxsIHR3ZWFrcyBhbmQgcXVpcmtzIG1lY2hhbmlzbXMgaXQgb2ZmZXJzLgotICogIC0gYnVpbHRpbiBnZW51aW5lIE9QTDMKKyAqICAtIGJ1aWx0aW4gZ2VudWluZSBPUEwzIC0gdmVyaWZpZWQgdG8gd29yayBmaW5lLCAyMDA4MDUwNgogICogIC0gZnVsbCBkdXBsZXggMTZiaXQgcGxheWJhY2svcmVjb3JkIGF0IGluZGVwZW5kZW50IHNhbXBsaW5nIHJhdGUKLSAqICAtIE1QVTQwMSAoKyBsZWdhY3kgYWRkcmVzcyBzdXBwb3J0KSBGSVhNRTogaG93IHRvIGVuYWJsZSBsZWdhY3kgYWRkcj8/CisgKiAgLSBNUFU0MDEgKCsgbGVnYWN5IGFkZHJlc3Mgc3VwcG9ydCwgY2xhaW1lZCBieSBvbmUgb2ZmaWNpYWwgc3BlYyBzaGVldCkKKyAqICAgIEZJWE1FOiBob3cgdG8gZW5hYmxlIGxlZ2FjeSBhZGRyPz8KICAqICAtIGdhbWUgcG9ydCAobGVnYWN5IGFkZHJlc3Mgc3VwcG9ydCkKLSAqICAtIGJ1aWx0aW4gM0QgZW5oYW5jZW1lbnQgKHNhaWQgdG8gYmUgWUFNQUhBIFltZXJzaW9uKQogICogIC0gYnVpbHRpbiBEaXJlY3RJbnB1dCBzdXBwb3J0LCBoZWxwcyByZWR1Y2UgQ1BVIG92ZXJoZWFkIChpbnRlcnJ1cHQtZHJpdmVuCi0gKiAgICBmZWF0dXJlcyBzdXBwb3J0ZWQpCisgKiAgICBmZWF0dXJlcyBzdXBwb3J0ZWQpLiAtIFNlZSBjb21tb24gdGVybSAiRGlnaXRhbCBFbmhhbmNlZCBHYW1lIFBvcnQiLi4uCisgKiAgICAocHJvYmFibHkgRGlyZWN0SW5wdXQgMy4wIHNwZWMgLSBjb25maXJtKQorICogIC0gYnVpbHRpbiAzRCBlbmhhbmNlbWVudCAoc2FpZCB0byBiZSBZQU1BSEEgWW1lcnNpb24pCiAgKiAgLSBidWlsdC1pbiBHZW5lcmFsIERpcmVjdFggdGltZXIgaGF2aW5nIGEgMjAgYml0cyBjb3VudGVyCiAgKiAgICB3aXRoIDF1cyByZXNvbHV0aW9uIChzZWUgYmVsb3chKQotICogIC0gSTJTIHNlcmlhbCBwb3J0IGZvciBleHRlcm5hbCBEQUMKKyAqICAtIEkyUyBzZXJpYWwgb3V0cHV0IHBvcnQgZm9yIGV4dGVybmFsIERBQwogICogIC0gc3VwcG9ydHMgMzNNSHogUENJIHNwZWMgMi4xLCBQQ0kgcG93ZXIgbWFuYWdlbWVudCAxLjAsIGNvbXBsaWFudCB3aXRoIEFDUEkKICAqICAtIHN1cHBvcnRzIGhhcmR3YXJlIHZvbHVtZSBjb250cm9sCiAgKiAgLSBzaW5nbGUgY2hpcCBsb3cgY29zdCBzb2x1dGlvbiAoMTI4IHBpbiBRRlApCiAgKiAgLSBzdXBwb3J0cyBwcm9ncmFtbWFibGUgU3ViLXZlbmRvciBhbmQgU3ViLXN5c3RlbSBJRAogICogICAgcmVxdWlyZWQgZm9yIE1pY3Jvc29mdCdzIGxvZ28gY29tcGxpYW5jZSAoRklYTUU6IHdoZXJlPykKKyAqICAgIEF0IGxlYXN0IHRoZSBUcmlkZW50IDREIFdhdmUgRFggaGFzIG9uZSBiaXQgc29tZXdoZXJlCisgKiAgICB0byBlbmFibGUgd3JpdGVzIHRvIFBDSSBzdWJzeXN0ZW0gVklEIHJlZ2lzdGVycywgdGhhdCBzaG91bGQgYmUgaXQuCisgKiAgICBUaGlzIG1pZ2h0IGVhc2lseSBiZSBpbiBleHRlbmRlZCBQQ0kgcmVnIHNwYWNlLCBzaW5jZSBQQ0kxNjggYWxzbyBoYXMKKyAqICAgIHNvbWUgY3VzdG9tIGRhdGEgc3RhcnRpbmcgYXQgMHg4MC4gV2hhdCBraW5kIG9mIGNvbmZpZyBzZXR0aW5ncworICogICAgYXJlIGxvY2F0ZWQgaW4gb3VyIGV4dGVuZGVkIFBDSSBzcGFjZSBhbnl3YXk/PwogICogIC0gUENJMTY4IEFQKFcpIGNhcmQ6IHBvd2VyIGFtcGxpZmllciB3aXRoIDQgV2F0dHMvY2hhbm5lbCBhdCA0IE9obXMKICAqCiAgKiAgTm90ZSB0aGF0IHRoaXMgZHJpdmVyIG5vdyBpcyBhY3R1YWxseSAqYmV0dGVyKiB0aGFuIHRoZSBXaW5kb3dzIGRyaXZlciwKQEAgLTc0LDYgKzkyLDI0IEBACiAgKiAgLSAidGltaWRpdHkgLWlBdiAtQjIsOCAtT3MgLUVGcmV2ZXJiPTAiCiAgKiAgLSAicG1pZGkgLXAgMTI4OjAgamF6ei5taWQiCiAgKgorICogIE9QTDMgaGFyZHdhcmUgcGxheWJhY2sgdGVzdGluZywgdHJ5IHNvbWV0aGluZyBsaWtlOgorICogIGNhdCAvcHJvYy9hc291bmQvaHdkZXAKKyAqICBhbmQKKyAqICBhY29ubmVjdCAtbworICogIFRoZW4gdXNlCisgKiAgc2JpbG9hZCAtRGh3OngseSAtLW9wbDMgL3Vzci9zaGFyZS9zb3VuZHMvb3BsMy9zdGQubzMgLi4uLi4uLi9kcnVtcy5vMworICogIHdoZXJlIHgseSBpcyB0aGUgeHgteXkgbnVtYmVyIGFzIGdpdmVuIGluIGh3ZGVwLgorICogIFRoZW4gdHJ5CisgKiAgcG1pZGkgLXAgYTpiIGphenoubWlkCisgKiAgd2hlcmUgYTpiIGlzIHRoZSBjbGllbnQgbnVtYmVyIHBsdXMgMCB1c3VhbGx5LCBhcyBnaXZlbiBieSBhY29ubmVjdCBhYm92ZS4KKyAqICBPaCwgYW5kIG1ha2Ugc3VyZSB0byB1bm11dGUgdGhlIEZNIG1peGVyIGNvbnRyb2wgKGRvaCEpCisgKiAgTk9URTogcG93ZXIgdXNlIGR1cmluZyBPUEwzIHBsYXliYWNrIGlzIF9WRVJZXyBoaWdoICg3MFcgLS0+IDkwVyEpCisgKiAgZGVzcGl0ZSBubyBDUFUgYWN0aXZpdHksIHBvc3NpYmx5IGR1ZSB0byBoaW5kZXJpbmcgQUNQSSBpZGxpbmcgc29tZWhvdy4KKyAqICBTaG91bGRuJ3QgYmUgYSBwcm9ibGVtIG9mIHRoZSBBWkYzMzI4IGNoaXAgaXRzZWxmLCBJJ2QgaG9wZS4KKyAqICBIaWdoZXIgUENNIC8gRk0gbWl4ZXIgbGV2ZWxzIHNlZW0gdG8gY29uZmxpY3QgKGNhdXNlcyBjcmFja2xpbmcpLAorICogIGF0IGxlYXN0IHNvbWV0aW1lcy4gICBNYXliZSBldmVuIHVzZSB3aXRoIGhhcmR3YXJlIHNlcXVlbmNlciB0aW1lciBhYm92ZSA6KQorICogIGFkcGxheS9hZHBsdWctdXRpbHMgbWlnaHQgc29vbiBvZmZlciBoYXJkd2FyZS1iYXNlZCBPUEwzIHBsYXliYWNrLCB0b28uCisgKgogICogIENlcnRhaW4gUENJIHZlcnNpb25zIG9mIHRoaXMgY2FyZCBhcmUgc3VzY2VwdGlibGUgdG8gRE1BIHRyYWZmaWMgdW5kZXJydW5zCiAgKiAgaW4gc29tZSBzeXN0ZW1zIChyZXN1bHRpbmcgaW4gc291bmQgY3JhY2tsaW5nL2NsaWNraW5nL3BvcHBpbmcpLAogICogIHByb2JhYmx5IGJlY2F1c2UgdGhleSBkb24ndCBoYXZlIGEgRE1BIEZJRk8gYnVmZmVyIG9yIHNvLgpAQCAtODcsNiArMTIzLDggQEAKICAqICBiZXR0ZXIgdGhhbiBhIFZJQSwgeWV0IGlyb25pY2FsbHkgSSBzdGlsbCBnZXQgY3JhY2tsaW5nLCBsaWtlIG1hbnkgb3RoZXIKICAqICBwZW9wbGUgd2l0aCB0aGUgc2FtZSBjaGlwc2V0LgogICogIFBvc3NpYmxlIHJlbWVkaWVzOgorICogIC0gdXNlIHNwZWFrZXIgKGFtcGxpZmllcikgb3V0cHV0IGluc3RlYWQgb2YgaGVhZHBob25lIG91dHB1dAorICogICAgKGluIGNhc2UgY3JhY2tsaW5nIGlzIGR1ZSB0byBvdmVybG9hZGVkIG91dHB1dCBjbGlwcGluZykKICAqICAtIHBsdWcgY2FyZCBpbnRvIGEgZGlmZmVyZW50IFBDSSBzbG90LCBwcmVmZXJyYWJseSBvbmUgdGhhdCBpc24ndCBzaGFyZWQKICAqICAgIHRvbyBtdWNoICh0aGlzIGhlbHBzIGEgbG90LCBidXQgbm90IGNvbXBsZXRlbHkhKQogICogIC0gZ2V0IHJpZCBvZiBQQ0kgVkdBIGNhcmQsIHVzZSBBR1AgaW5zdGVhZApAQCAtOTQsMTggKzEzMiwyMyBAQAogICogIC0gZmlkZGxlIHdpdGggUENJIGxhdGVuY3kgc2V0dGluZ3MgKHNldHBjaSAtdiAtcyBCVVNJRCBsYXRlbmN5X3RpbWVyPVhYKQogICogICAgTm90IHRvbyBoZWxwZnVsLgogICogIC0gRGlzYWJsZSBBQ1BJL3Bvd2VyIG1hbmFnZW1lbnQvIkF1dG8gRGV0ZWN0IFJBTS9QQ0kgQ2xrIiBpbiBCSU9TCi0gKiAKKyAqCiAgKiBCVUdTCi0gKiAgLSBmdWxsLWR1cGxleCBtaWdodCAqc3RpbGwqIGJlIHByb2JsZW1hdGljLCBub3QgZnVsbHkgdGVzdGVkIHJlY2VudGx5CisgKiAgLSBmdWxsLWR1cGxleCBtaWdodCAqc3RpbGwqIGJlIHByb2JsZW1hdGljLCBob3dldmVyIGEgcmVjZW50IHRlc3Qgd2FzIGZpbmUKICAqICAtIChub24tYnVnKSAiQmFzcy9UcmVibGUgb3IgM0Qgc2V0dGluZ3MgZG9uJ3Qgd29yayIgLSB0aGV5IGRvIGdldCBldmFsdWF0ZWQKICAqICAgIGlmIHlvdSBzZXQgUENNIG91dHB1dCBzd2l0Y2ggdG8gInByZSAzRCIgaW5zdGVhZCBvZiAicG9zdCAzRCIuCiAgKiAgICBJZiB0aGlzIGNhbid0IGJlIHNldCwgdGhlbiBnZXQgYSBtaXhlciBhcHBsaWNhdGlvbiB0aGF0IElzbid0IFN0dXBpZCAodG0pCiAgKiAgICAoZS5nLiBrbWl4LCBnYW1peCkgLSB1bmZvcnR1bmF0ZWx5IHNldmVyYWwgYXJlISEKLSAqIAorICogIC0gbG9ja2luZyBpcyBub3QgZW50aXJlbHkgY2xlYW4sIGVzcGVjaWFsbHkgdGhlIGF1ZGlvIHN0cmVhbSBhY3Rpdml0eQorICogICAgaW50cyAtLT4gbWF5IGJlIHJhY3kKKyAqICAtIGFuIF91bmNvbm5lY3RlZF8gc2Vjb25kYXJ5IGpveXN0aWNrIGF0IHRoZSBnYW1lcG9ydCB3aWxsIGJlIHJlcG9ydGVkCisgKiAgICB0byBiZSAiYWN0aXZlIiAoZmxvYXRpbmcgdmFsdWVzLCBub3QgcHJlY2lzZWx5IC0xKSBkdWUgdG8gdGhlIHdheSB3ZSBuZWVkCisgKiAgICB0byByZWFkIHRoZSBEaWdpdGFsIEVuaGFuY2VkIEdhbWUgUG9ydC4gTm90IHN1cmUgd2hldGhlciBpdCBpcyBmaXhhYmxlLgorICoKICAqIFRPRE8KICAqICAtIHRlc3QgTVBVNDAxIE1JREkgcGxheWJhY2sgZXRjLgotICogIC0gYWRkIHNvbWUgcG93ZXIgbWljcm8tbWFuYWdlbWVudCAoZGlzYWJsZSB2YXJpb3VzIHVuaXRzIG9mIHRoZSBjYXJkCi0gKiAgICBhcyBsb25nIGFzIHRoZXkncmUgdW51c2VkKS4gSG93ZXZlciB0aGlzIHJlcXVpcmVzIEkvTyBwb3J0cyB3aGljaCBJCisgKiAgLSBhZGQgbW9yZSBwb3dlciBtaWNyby1tYW5hZ2VtZW50IChkaXNhYmxlIHZhcmlvdXMgdW5pdHMgb2YgdGhlIGNhcmQKKyAqICAgIGFzIGxvbmcgYXMgdGhleSdyZSB1bnVzZWQpLiBIb3dldmVyIHRoaXMgcmVxdWlyZXMgbW9yZSBJL08gcG9ydHMgd2hpY2ggSQogICogICAgaGF2ZW4ndCBmaWd1cmVkIG91dCB5ZXQgYW5kIHdoaWNoIHRodXMgbWlnaHQgbm90IGV2ZW4gZXhpc3QuLi4KICAqICAgIFRoZSBzdGFuZGFyZCBzdXNwZW5kL3Jlc3VtZSBmdW5jdGlvbmFsaXR5IGNvdWxkIHByb2JhYmx5IG1ha2UgdXNlIG9mCiAgKiAgICBzb21lIGltcHJvdmVtZW50LCB0b28uLi4KQEAgLTExMyw2ICsxNTYsNyBAQAogICogIC0gZmlndXJlIG91dCBzb21lIGNsZXZlcmx5IGV2aWwgc2NoZW1lIHRvIHBvc3NpYmx5IG1ha2UgQUxTQSBBQzk3IGNvZGUKICAqICAgIGZ1bGx5IGFjY2VwdCBvdXIgcXVpdGUgaW5jb21wYXRpYmxlICIiQUM5NyIiIG1peGVyIGFuZCB0aHVzIHNhdmUgc29tZQogICogICAgY29kZSAoYnV0IEknbSBub3QgdG9vIG9wdGltaXN0aWMgdGhhdCBkb2luZyB0aGlzIGlzIHBvc3NpYmxlIGF0IGFsbCkKKyAqICAtIHVzZSBNTUlPIChtZW1vcnktbWFwcGVkIEkvTyk/IFNsaWdodGx5IGZhc3RlciBhY2Nlc3MsIGUuZy4gZm9yIGdhbWVwb3J0LgogICovCiAKICNpbmNsdWRlIDxhc20vaW8uaD4KQEAgLTEzOCw3ICsxODIsNyBAQAogTU9EVUxFX1NVUFBPUlRFRF9ERVZJQ0UoInt7QXp0ZWNoLEFaRjMzMjh9fSIpOwogCiAjaWYgZGVmaW5lZChDT05GSUdfR0FNRVBPUlQpIHx8IChkZWZpbmVkKE1PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfR0FNRVBPUlRfTU9EVUxFKSkKLSNkZWZpbmUgU1VQUE9SVF9KT1lTVElDSyAxCisjZGVmaW5lIFNVUFBPUlRfR0FNRVBPUlQgMQogI2VuZGlmCiAKICNkZWZpbmUgREVCVUdfTUlTQwkwCkBAIC0xNDcsMTMgKzE5MSwxNCBAQAogI2RlZmluZSBERUJVR19QTEFZX1JFQwkwCiAjZGVmaW5lIERFQlVHX0lPCTAKICNkZWZpbmUgREVCVUdfVElNRVIJMAorI2RlZmluZSBERUJVR19HQU1FCTAKICNkZWZpbmUgTUlYRVJfVEVTVElORwkwCiAKICNpZiBERUJVR19NSVNDCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ21pc2MoZm9ybWF0LCBhcmdzLi4uKSBwcmludGsoS0VSTl9FUlIgZm9ybWF0LCAjI2FyZ3MpCiAjZWxzZQogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdtaXNjKGZvcm1hdCwgYXJncy4uLikKLSNlbmRpZgkJCisjZW5kaWYKIAogI2lmIERFQlVHX0NBTExTCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ2NhbGxzKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKGZvcm1hdCwgIyNhcmdzKQpAQCAtMTYzLDI1ICsyMDgsMzEgQEAKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnY2FsbHMoZm9ybWF0LCBhcmdzLi4uKQogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKQogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKQotI2VuZGlmCQkKKyNlbmRpZgogCiAjaWYgREVCVUdfTUlYRVIKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnbWl4ZXIoZm9ybWF0LCBhcmdzLi4uKSBwcmludGsoZm9ybWF0LCAjI2FyZ3MpCiAjZWxzZQogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdtaXhlcihmb3JtYXQsIGFyZ3MuLi4pCi0jZW5kaWYJCQorI2VuZGlmCiAKICNpZiBERUJVR19QTEFZX1JFQwogI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdwbGF5KGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKEtFUk5fRVJSIGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJncGxheShmb3JtYXQsIGFyZ3MuLi4pCi0jZW5kaWYJCQorI2VuZGlmCiAKICNpZiBERUJVR19NSVNDCiAjZGVmaW5lIHNuZF9hemYzMzI4X2RiZ3RpbWVyKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKEtFUk5fRVJSIGZvcm1hdCwgIyNhcmdzKQogI2Vsc2UKICNkZWZpbmUgc25kX2F6ZjMzMjhfZGJndGltZXIoZm9ybWF0LCBhcmdzLi4uKQotI2VuZGlmCQkKKyNlbmRpZgorCisjaWYgREVCVUdfR0FNRQorI2RlZmluZSBzbmRfYXpmMzMyOF9kYmdnYW1lKGZvcm1hdCwgYXJncy4uLikgcHJpbnRrKEtFUk5fRVJSIGZvcm1hdCwgIyNhcmdzKQorI2Vsc2UKKyNkZWZpbmUgc25kX2F6ZjMzMjhfZGJnZ2FtZShmb3JtYXQsIGFyZ3MuLi4pCisjZW5kaWYKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsJLyogSW5kZXggMC1NQVggKi8KIG1vZHVsZV9wYXJhbV9hcnJheShpbmRleCwgaW50LCBOVUxMLCAwNDQ0KTsKQEAgLTE5NSw1MSArMjQ2LDYyIEBACiBtb2R1bGVfcGFyYW1fYXJyYXkoZW5hYmxlLCBib29sLCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlLCAiRW5hYmxlIEFaRjMzMjggc291bmRjYXJkLiIpOwogCi0jaWZkZWYgU1VQUE9SVF9KT1lTVElDSwotc3RhdGljIGludCBqb3lzdGlja1tTTkRSVl9DQVJEU107Ci1tb2R1bGVfcGFyYW1fYXJyYXkoam95c3RpY2ssIGJvb2wsIE5VTEwsIDA0NDQpOwotTU9EVUxFX1BBUk1fREVTQyhqb3lzdGljaywgIkVuYWJsZSBqb3lzdGljayBmb3IgQVpGMzMyOCBzb3VuZGNhcmQuIik7Ci0jZW5kaWYKLQogc3RhdGljIGludCBzZXF0aW1lcl9zY2FsaW5nID0gMTI4OwogbW9kdWxlX3BhcmFtKHNlcXRpbWVyX3NjYWxpbmcsIGludCwgMDQ0NCk7CiBNT0RVTEVfUEFSTV9ERVNDKHNlcXRpbWVyX3NjYWxpbmcsICJTZXQgMTAyNDAwMEh6IHNlcXVlbmNlciB0aW1lciBzY2FsZSBmYWN0b3IgKGxvY2t1cCBkYW5nZXIhKS4gRGVmYXVsdCAxMjguIik7CiAKK3N0cnVjdCBzbmRfYXpmMzMyOF9hdWRpb19zdHJlYW0geworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCWludCBlbmFibGVkOworCWludCBydW5uaW5nOworCXVuc2lnbmVkIGxvbmcgcG9ydGJhc2U7Cit9OworCitlbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCB7CisgIEFaRl9QTEFZQkFDSyA9IDAsCisgIEFaRl9DQVBUVVJFID0gMSwKK307CisKIHN0cnVjdCBzbmRfYXpmMzMyOCB7CiAJLyogb2Z0ZW4tdXNlZCBmaWVsZHMgdG93YXJkcyBiZWdpbm5pbmcsIHRoZW4gZ3JvdXBlZCAqLwotCXVuc2lnbmVkIGxvbmcgY29kZWNfcG9ydDsKLQl1bnNpZ25lZCBsb25nIGlvMl9wb3J0OwotCXVuc2lnbmVkIGxvbmcgbXB1X3BvcnQ7Ci0JdW5zaWduZWQgbG9uZyBzeW50aF9wb3J0OwotCXVuc2lnbmVkIGxvbmcgbWl4ZXJfcG9ydDsKKworCXVuc2lnbmVkIGxvbmcgY29kZWNfaW87IC8qIHVzdWFsbHkgMHhiMDAwLCBzaXplIDEyOCAqLworCXVuc2lnbmVkIGxvbmcgZ2FtZV9pbzsgIC8qIHVzdWFsbHkgMHhiNDAwLCBzaXplIDggKi8KKwl1bnNpZ25lZCBsb25nIG1wdV9pbzsgICAvKiB1c3VhbGx5IDB4YjgwMCwgc2l6ZSA0ICovCisJdW5zaWduZWQgbG9uZyBvcGwzX2lvOyAvKiB1c3VhbGx5IDB4YmMwMCwgc2l6ZSA4ICovCisJdW5zaWduZWQgbG9uZyBtaXhlcl9pbzsgLyogdXN1YWxseSAweGMwMDAsIHNpemUgNjQgKi8KIAogCXNwaW5sb2NrX3QgcmVnX2xvY2s7CiAKIAlzdHJ1Y3Qgc25kX3RpbWVyICp0aW1lcjsKLQkKKwogCXN0cnVjdCBzbmRfcGNtICpwY207Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpwbGF5YmFja19zdWJzdHJlYW07Ci0Jc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpjYXB0dXJlX3N1YnN0cmVhbTsKLQl1bnNpZ25lZCBpbnQgaXNfcGxheWluZzsKLQl1bnNpZ25lZCBpbnQgaXNfcmVjb3JkaW5nOworCXN0cnVjdCBzbmRfYXpmMzMyOF9hdWRpb19zdHJlYW0gYXVkaW9fc3RyZWFtWzJdOwogCiAJc3RydWN0IHNuZF9jYXJkICpjYXJkOwogCXN0cnVjdCBzbmRfcmF3bWlkaSAqcm1pZGk7CiAKLSNpZmRlZiBTVVBQT1JUX0pPWVNUSUNLCisjaWZkZWYgU1VQUE9SVF9HQU1FUE9SVAogCXN0cnVjdCBnYW1lcG9ydCAqZ2FtZXBvcnQ7CisJaW50IGF4ZXNbNF07CiAjZW5kaWYKIAogCXN0cnVjdCBwY2lfZGV2ICpwY2k7CiAJaW50IGlycTsKIAorCS8qIHJlZ2lzdGVyIDB4NmEgaXMgd3JpdGUtb25seSwgdGh1cyBuZWVkIHRvIHJlbWVtYmVyIHNldHRpbmcuCisJICogSWYgd2UgbmVlZCB0byBhZGQgbW9yZSByZWdpc3RlcnMgaGVyZSwgdGhlbiB3ZSBtaWdodCB0cnkgdG8gZm9sZCB0aGlzCisJICogaW50byBzb21lIHRyYW5zcGFyZW50IGNvbWJpbmVkIHNoYWRvdyByZWdpc3RlciBoYW5kbGluZyB3aXRoCisJICogQ09ORklHX1BNIHJlZ2lzdGVyIHN0b3JhZ2UgYmVsb3csIGJ1dCB0aGF0J3Mgc2xpZ2h0bHkgZGlmZmljdWx0LiAqLworCXUxNiBzaGFkb3dfcmVnX2NvZGVjXzZBSDsKKwogI2lmZGVmIENPTkZJR19QTQogCS8qIHJlZ2lzdGVyIHZhbHVlIGNvbnRhaW5lcnMgZm9yIHBvd2VyIG1hbmFnZW1lbnQKIAkgKiBOb3RlOiBub3QgYWx3YXlzIGZ1bGwgSS9PIHJhbmdlIHByZXNlcnZlZCAoanVzdCBsaWtlIFdpbiBkcml2ZXIhKSAqLwotCXUxNiBzYXZlZF9yZWdzX2NvZGVjIFtBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDJdOwotCXUxNiBzYXZlZF9yZWdzX2lvMiAgIFtBWkZfSU9fU0laRV9JTzJfUE0gLyAyXTsKLQl1MTYgc2F2ZWRfcmVnc19tcHUgICBbQVpGX0lPX1NJWkVfTVBVX1BNIC8gMl07Ci0JdTE2IHNhdmVkX3JlZ3Nfc3ludGhbQVpGX0lPX1NJWkVfU1lOVEhfUE0gLyAyXTsKKwl1MTYgc2F2ZWRfcmVnc19jb2RlY1tBWkZfSU9fU0laRV9DT0RFQ19QTSAvIDJdOworCXUxNiBzYXZlZF9yZWdzX2dhbWUgW0FaRl9JT19TSVpFX0dBTUVfUE0gLyAyXTsKKwl1MTYgc2F2ZWRfcmVnc19tcHUgIFtBWkZfSU9fU0laRV9NUFVfUE0gLyAyXTsKKwl1MTYgc2F2ZWRfcmVnc19vcGwzIFtBWkZfSU9fU0laRV9PUEwzX1BNIC8gMl07CiAJdTE2IHNhdmVkX3JlZ3NfbWl4ZXJbQVpGX0lPX1NJWkVfTUlYRVJfUE0gLyAyXTsKICNlbmRpZgogfTsKQEAgLTI1MiwxMjYgKzMxNCwxNjYgQEAKIAogTU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHNuZF9hemYzMzI4X2lkcyk7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfY29kZWNfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHU4IHZhbHVlKQorCitzdGF0aWMgaW50CitzbmRfYXpmMzMyOF9pb19yZWdfc2V0Yih1bnNpZ25lZCByZWcsIHU4IG1hc2ssIGludCBkb19zZXQpCiB7Ci0Jb3V0Yih2YWx1ZSwgY2hpcC0+Y29kZWNfcG9ydCArIHJlZyk7CisJdTggcHJldiA9IGluYihyZWcpLCBuZXc7CisKKwluZXcgPSAoZG9fc2V0KSA/IChwcmV2fG1hc2spIDogKHByZXYgJiB+bWFzayk7CisJLyogd2UgbmVlZCB0byBhbHdheXMgd3JpdGUgdGhlIG5ldyB2YWx1ZSBubyBtYXR0ZXIgd2hldGhlciBpdCBkaWZmZXJzCisJICogb3Igbm90LCBzaW5jZSBzb21lIHJlZ2lzdGVyIGJpdHMgZG9uJ3QgaW5kaWNhdGUgdGhlaXIgc2V0dGluZyAqLworCW91dGIobmV3LCByZWcpOworCWlmIChuZXcgIT0gcHJldikKKwkJcmV0dXJuIDE7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnLCB1OCB2YWx1ZSkKK3sKKwlvdXRiKHZhbHVlLCBjaGlwLT5jb2RlY19pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTgKLXNuZF9hemYzMzI4X2NvZGVjX2luYihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcpCitzbmRfYXpmMzMyOF9jb2RlY19pbmIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcpCiB7Ci0JcmV0dXJuIGluYihjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlyZXR1cm4gaW5iKGNoaXAtPmNvZGVjX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1zbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZywgdTE2IHZhbHVlKQorc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTE2IHZhbHVlKQogewotCW91dHcodmFsdWUsIGNoaXAtPmNvZGVjX3BvcnQgKyByZWcpOworCW91dHcodmFsdWUsIGNoaXAtPmNvZGVjX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB1MTYKLXNuZF9hemYzMzI4X2NvZGVjX2ludyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcpCitzbmRfYXpmMzMyOF9jb2RlY19pbncoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcpCiB7Ci0JcmV0dXJuIGludyhjaGlwLT5jb2RlY19wb3J0ICsgcmVnKTsKKwlyZXR1cm4gaW53KGNoaXAtPmNvZGVjX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1zbmRfYXpmMzMyOF9jb2RlY19vdXRsKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZywgdTMyIHZhbHVlKQorc25kX2F6ZjMzMjhfY29kZWNfb3V0bChjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZywgdTMyIHZhbHVlKQogewotCW91dGwodmFsdWUsIGNoaXAtPmNvZGVjX3BvcnQgKyByZWcpOworCW91dGwodmFsdWUsIGNoaXAtPmNvZGVjX2lvICsgcmVnKTsKK30KKworc3RhdGljIGlubGluZSB1MzIKK3NuZF9hemYzMzI4X2NvZGVjX2lubChjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIHVuc2lnbmVkIHJlZykKK3sKKwlyZXR1cm4gaW5sKGNoaXAtPmNvZGVjX2lvICsgcmVnKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1zbmRfYXpmMzMyOF9pbzJfb3V0Yihjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHU4IHZhbHVlKQorc25kX2F6ZjMzMjhfZ2FtZV9vdXRiKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnLCB1OCB2YWx1ZSkKIHsKLQlvdXRiKHZhbHVlLCBjaGlwLT5pbzJfcG9ydCArIHJlZyk7CisJb3V0Yih2YWx1ZSwgY2hpcC0+Z2FtZV9pbyArIHJlZyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZV9vdXR3KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnLCB1MTYgdmFsdWUpCit7CisJb3V0dyh2YWx1ZSwgY2hpcC0+Z2FtZV9pbyArIHJlZyk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTgKLXNuZF9hemYzMzI4X2lvMl9pbmIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgcmVnKQorc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcpCiB7Ci0JcmV0dXJuIGluYihjaGlwLT5pbzJfcG9ydCArIHJlZyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfbWl4ZXJfb3V0dyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHUxNiB2YWx1ZSkKLXsKLQlvdXR3KHZhbHVlLCBjaGlwLT5taXhlcl9wb3J0ICsgcmVnKTsKKwlyZXR1cm4gaW5iKGNoaXAtPmdhbWVfaW8gKyByZWcpOwogfQogCiBzdGF0aWMgaW5saW5lIHUxNgotc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZykKK3NuZF9hemYzMzI4X2dhbWVfaW53KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQogewotCXJldHVybiBpbncoY2hpcC0+bWl4ZXJfcG9ydCArIHJlZyk7CisJcmV0dXJuIGludyhjaGlwLT5nYW1lX2lvICsgcmVnKTsKIH0KIAotc3RhdGljIHZvaWQKLXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IHJlZywgaW50IGRvX211dGUpCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X21peGVyX291dHcoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCB1bnNpZ25lZCByZWcsIHUxNiB2YWx1ZSkKIHsKLQl1bnNpZ25lZCBsb25nIHBvcnRiYXNlID0gY2hpcC0+bWl4ZXJfcG9ydCArIHJlZyArIDE7Ci0JdW5zaWduZWQgY2hhciBvbGR2YWw7CisJb3V0dyh2YWx1ZSwgY2hpcC0+bWl4ZXJfaW8gKyByZWcpOworfQorCitzdGF0aWMgaW5saW5lIHUxNgorc25kX2F6ZjMzMjhfbWl4ZXJfaW53KGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgdW5zaWduZWQgcmVnKQoreworCXJldHVybiBpbncoY2hpcC0+bWl4ZXJfaW8gKyByZWcpOworfQorCisjZGVmaW5lIEFaRl9NVVRFX0JJVCAweDgwCisKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNvbnN0IHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwKKwkJCSAgIHVuc2lnbmVkIHJlZywgaW50IGRvX211dGUKKykKK3sKKwl1bnNpZ25lZCBsb25nIHBvcnRiYXNlID0gY2hpcC0+bWl4ZXJfaW8gKyByZWcgKyAxOworCWludCB1cGRhdGVkOwogCiAJLyogdGhlIG11dGUgYml0IGlzIG9uIHRoZSAqc2Vjb25kKiAoaS5lLiByaWdodCkgcmVnaXN0ZXIgb2YgYQogCSAqIGxlZnQvcmlnaHQgY2hhbm5lbCBzZXR0aW5nICovCi0Jb2xkdmFsID0gaW5iKHBvcnRiYXNlKTsKLQlpZiAoZG9fbXV0ZSkKLQkJb2xkdmFsIHw9IDB4ODA7Ci0JZWxzZQotCQlvbGR2YWwgJj0gfjB4ODA7Ci0Jb3V0YihvbGR2YWwsIHBvcnRiYXNlKTsKKwl1cGRhdGVkID0gc25kX2F6ZjMzMjhfaW9fcmVnX3NldGIocG9ydGJhc2UsIEFaRl9NVVRFX0JJVCwgZG9fbXV0ZSk7CisKKwkvKiBpbmRpY2F0ZSB3aGV0aGVyIGl0IHdhcyBtdXRlZCBiZWZvcmUgKi8KKwlyZXR1cm4gKGRvX211dGUpID8gIXVwZGF0ZWQgOiB1cGRhdGVkOwogfQogCiBzdGF0aWMgdm9pZAotc25kX2F6ZjMzMjhfbWl4ZXJfd3JpdGVfdm9sdW1lX2dyYWR1YWxseShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCByZWcsIHVuc2lnbmVkIGNoYXIgZHN0X3ZvbF9sZWZ0LCB1bnNpZ25lZCBjaGFyIGRzdF92b2xfcmlnaHQsIGludCBjaGFuX3NlbCwgaW50IGRlbGF5KQorc25kX2F6ZjMzMjhfbWl4ZXJfd3JpdGVfdm9sdW1lX2dyYWR1YWxseShjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkJCSB1bnNpZ25lZCByZWcsCisJCQkJCSB1bnNpZ25lZCBjaGFyIGRzdF92b2xfbGVmdCwKKwkJCQkJIHVuc2lnbmVkIGNoYXIgZHN0X3ZvbF9yaWdodCwKKwkJCQkJIGludCBjaGFuX3NlbCwgaW50IGRlbGF5CispCiB7Ci0JdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX3BvcnQgKyByZWc7CisJdW5zaWduZWQgbG9uZyBwb3J0YmFzZSA9IGNoaXAtPm1peGVyX2lvICsgcmVnOwogCXVuc2lnbmVkIGNoYXIgY3Vycl92b2xfbGVmdCA9IDAsIGN1cnJfdm9sX3JpZ2h0ID0gMDsKLQlpbnQgbGVmdF9kb25lID0gMCwgcmlnaHRfZG9uZSA9IDA7Ci0JCisJaW50IGxlZnRfY2hhbmdlID0gMCwgcmlnaHRfY2hhbmdlID0gMDsKKwogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwotCWlmIChjaGFuX3NlbCAmIFNFVF9DSEFOX0xFRlQpCisKKwlpZiAoY2hhbl9zZWwgJiBTRVRfQ0hBTl9MRUZUKSB7CiAJCWN1cnJfdm9sX2xlZnQgID0gaW5iKHBvcnRiYXNlICsgMSk7Ci0JZWxzZQotCQlsZWZ0X2RvbmUgPSAxOwotCWlmIChjaGFuX3NlbCAmIFNFVF9DSEFOX1JJR0hUKQorCisJCS8qIHRha2UgY2FyZSBvZiBtdXRpbmcgZmxhZyBjb250YWluZWQgaW4gbGVmdCBjaGFubmVsICovCisJCWlmIChjdXJyX3ZvbF9sZWZ0ICYgQVpGX01VVEVfQklUKQorCQkJZHN0X3ZvbF9sZWZ0IHw9IEFaRl9NVVRFX0JJVDsKKwkJZWxzZQorCQkJZHN0X3ZvbF9sZWZ0ICY9IH5BWkZfTVVURV9CSVQ7CisKKwkJbGVmdF9jaGFuZ2UgPSAoY3Vycl92b2xfbGVmdCA+IGRzdF92b2xfbGVmdCkgPyAtMSA6IDE7CisJfQorCisJaWYgKGNoYW5fc2VsICYgU0VUX0NIQU5fUklHSFQpIHsKIAkJY3Vycl92b2xfcmlnaHQgPSBpbmIocG9ydGJhc2UgKyAwKTsKLQllbHNlCi0JCXJpZ2h0X2RvbmUgPSAxOwotCQotCS8qIHRha2UgY2FyZSBvZiBtdXRpbmcgZmxhZyAoMHg4MCkgY29udGFpbmVkIGluIGxlZnQgY2hhbm5lbCAqLwotCWlmIChjdXJyX3ZvbF9sZWZ0ICYgMHg4MCkKLQkJZHN0X3ZvbF9sZWZ0IHw9IDB4ODA7Ci0JZWxzZQotCQlkc3Rfdm9sX2xlZnQgJj0gfjB4ODA7CisKKwkJcmlnaHRfY2hhbmdlID0gKGN1cnJfdm9sX3JpZ2h0ID4gZHN0X3ZvbF9yaWdodCkgPyAtMSA6IDE7CisJfQogCiAJZG8gewotCQlpZiAoIWxlZnRfZG9uZSkgewotCQkJaWYgKGN1cnJfdm9sX2xlZnQgPiBkc3Rfdm9sX2xlZnQpCi0JCQkJY3Vycl92b2xfbGVmdC0tOwotCQkJZWxzZQotCQkJaWYgKGN1cnJfdm9sX2xlZnQgPCBkc3Rfdm9sX2xlZnQpCi0JCQkJY3Vycl92b2xfbGVmdCsrOwotCQkJZWxzZQotCQkJICAgIGxlZnRfZG9uZSA9IDE7Ci0JCQlvdXRiKGN1cnJfdm9sX2xlZnQsIHBvcnRiYXNlICsgMSk7CisJCWlmIChsZWZ0X2NoYW5nZSkgeworCQkJaWYgKGN1cnJfdm9sX2xlZnQgIT0gZHN0X3ZvbF9sZWZ0KSB7CisJCQkJY3Vycl92b2xfbGVmdCArPSBsZWZ0X2NoYW5nZTsKKwkJCQlvdXRiKGN1cnJfdm9sX2xlZnQsIHBvcnRiYXNlICsgMSk7CisJCQl9IGVsc2UKKwkJCSAgICBsZWZ0X2NoYW5nZSA9IDA7CiAJCX0KLQkJaWYgKCFyaWdodF9kb25lKSB7Ci0JCQlpZiAoY3Vycl92b2xfcmlnaHQgPiBkc3Rfdm9sX3JpZ2h0KQotCQkJCWN1cnJfdm9sX3JpZ2h0LS07Ci0JCQllbHNlCi0JCQlpZiAoY3Vycl92b2xfcmlnaHQgPCBkc3Rfdm9sX3JpZ2h0KQotCQkJCWN1cnJfdm9sX3JpZ2h0Kys7Ci0JCQllbHNlCi0JCQkgICAgcmlnaHRfZG9uZSA9IDE7CisJCWlmIChyaWdodF9jaGFuZ2UpIHsKKwkJCWlmIChjdXJyX3ZvbF9yaWdodCAhPSBkc3Rfdm9sX3JpZ2h0KSB7CisJCQkJY3Vycl92b2xfcmlnaHQgKz0gcmlnaHRfY2hhbmdlOworCiAJCQkvKiBkdXJpbmcgdm9sdW1lIGNoYW5nZSwgdGhlIHJpZ2h0IGNoYW5uZWwgaXMgY3JhY2tsaW5nCiAJCQkgKiBzb21ld2hhdCBtb3JlIHRoYW4gdGhlIGxlZnQgY2hhbm5lbCwgdW5mb3J0dW5hdGVseS4KIAkJCSAqIFRoaXMgc2VlbXMgdG8gYmUgYSBoYXJkd2FyZSBpc3N1ZS4gKi8KLQkJCW91dGIoY3Vycl92b2xfcmlnaHQsIHBvcnRiYXNlICsgMCk7CisJCQkJb3V0YihjdXJyX3ZvbF9yaWdodCwgcG9ydGJhc2UgKyAwKTsKKwkJCX0gZWxzZQorCQkJICAgIHJpZ2h0X2NoYW5nZSA9IDA7CiAJCX0KIAkJaWYgKGRlbGF5KQogCQkJbWRlbGF5KGRlbGF5KTsKLQl9IHdoaWxlICgoIWxlZnRfZG9uZSkgfHwgKCFyaWdodF9kb25lKSk7CisJfSB3aGlsZSAoKGxlZnRfY2hhbmdlKSB8fCAocmlnaHRfY2hhbmdlKSk7CiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiB9CiAKQEAgLTM3OSw3ICs0ODEsNyBAQAogICogZ2VuZXJhbCBtaXhlciBlbGVtZW50CiAgKi8KIHN0cnVjdCBhemYzMzI4X21peGVyX3JlZyB7Ci0JdW5zaWduZWQgaW50IHJlZzsKKwl1bnNpZ25lZCByZWc7CiAJdW5zaWduZWQgaW50IGxjaGFuX3NoaWZ0LCByY2hhbl9zaGlmdDsKIAl1bnNpZ25lZCBpbnQgbWFzazsKIAl1bnNpZ25lZCBpbnQgaW52ZXJ0OiAxOwpAQCAtNTQ0LDEzICs2NDYsMTQgQEAKIAkJIk1peCIsICJNaWMiCiAJfTsKIAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHRleHRzM1tdID0gewotICAgICAgICAgICAgICAgICJNaWMiLCAiQ0QiLCAiVmlkZW8iLCAiQXV4IiwKKwkJIk1pYyIsICJDRCIsICJWaWRlbyIsICJBdXgiLAogCQkiTGluZSIsICJNaXgiLCAiTWl4IE1vbm8iLCAiUGhvbmUiCiAgICAgICAgIH07CiAJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0ZXh0czRbXSA9IHsKIAkJInByZSAzRCIsICJwb3N0IDNEIgogICAgICAgICB9OwogCXN0cnVjdCBhemYzMzI4X21peGVyX3JlZyByZWc7CisJY29uc3QgY2hhciAqIGNvbnN0ICpwID0gTlVMTDsKIAogCXNuZF9hemYzMzI4X21peGVyX3JlZ19kZWNvZGUoJnJlZywga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpOwogICAgICAgICB1aW5mby0+dHlwZSA9IFNORFJWX0NUTF9FTEVNX1RZUEVfRU5VTUVSQVRFRDsKQEAgLTU2MSwxOCArNjY0LDIwIEBACiAJaWYgKHJlZy5yZWcgPT0gSURYX01JWEVSX0FEVkNUTDIpIHsKIAkJc3dpdGNoKHJlZy5sY2hhbl9zaGlmdCkgewogCQljYXNlIDg6IC8qIG1vZGVtIG91dCBzZWwgKi8KLQkJCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czFbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0pOworCQkJcCA9IHRleHRzMTsKIAkJCWJyZWFrOwogCQljYXNlIDk6IC8qIG1vbm8gc2VsIHNvdXJjZSAqLwotCQkJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsIHRleHRzMlt1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7CisJCQlwID0gdGV4dHMyOwogCQkJYnJlYWs7CiAJCWNhc2UgMTU6IC8qIFBDTSBPdXQgUGF0aCAqLwotCQkJc3RyY3B5KHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLm5hbWUsIHRleHRzNFt1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7CisJCQlwID0gdGV4dHM0OwogCQkJYnJlYWs7CiAJCX0KIAl9IGVsc2UKLSAgICAgICAgCXN0cmNweSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCB0ZXh0czNbdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbV0KLSk7CisJaWYgKHJlZy5yZWcgPT0gSURYX01JWEVSX1JFQ19TRUxFQ1QpCisJCXAgPSB0ZXh0czM7CisKKwlzdHJjcHkodWluZm8tPnZhbHVlLmVudW1lcmF0ZWQubmFtZSwgcFt1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5pdGVtXSk7CiAgICAgICAgIHJldHVybiAwOwogfQogCkBAIC01ODMsNyArNjg4LDcgQEAKICAgICAgICAgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOwogCXN0cnVjdCBhemYzMzI4X21peGVyX3JlZyByZWc7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IHZhbDsKLSAgICAgICAgCisKIAlzbmRfYXpmMzMyOF9taXhlcl9yZWdfZGVjb2RlKCZyZWcsIGtjb250cm9sLT5wcml2YXRlX3ZhbHVlKTsKIAl2YWwgPSBzbmRfYXpmMzMyOF9taXhlcl9pbncoY2hpcCwgcmVnLnJlZyk7CiAJaWYgKHJlZy5yZWcgPT0gSURYX01JWEVSX1JFQ19TRUxFQ1QpIHsKQEAgLTYwNSw3ICs3MTAsNyBAQAogICAgICAgICBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CiAJc3RydWN0IGF6ZjMzMjhfbWl4ZXJfcmVnIHJlZzsKIAl1bnNpZ25lZCBpbnQgb3JlZywgbnJlZywgdmFsOwotICAgICAgICAKKwogCXNuZF9hemYzMzI4X21peGVyX3JlZ19kZWNvZGUoJnJlZywga2NvbnRyb2wtPnByaXZhdGVfdmFsdWUpOwogCW9yZWcgPSBzbmRfYXpmMzMyOF9taXhlcl9pbncoY2hpcCwgcmVnLnJlZyk7CiAJdmFsID0gb3JlZzsKQEAgLTYzMSw5ICs3MzYsMTEgQEAKIHN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBzbmRfYXpmMzMyOF9taXhlcl9jb250cm9sc1tdIF9fZGV2aW5pdGRhdGEgPSB7CiAJQVpGMzMyOF9NSVhFUl9TV0lUQ0goIk1hc3RlciBQbGF5YmFjayBTd2l0Y2giLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDE1LCAxKSwKIAlBWkYzMzI4X01JWEVSX1ZPTF9TVEVSRU8oIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDB4MWYsIDEpLAotCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJXYXZlIFBsYXliYWNrIFN3aXRjaCIsIElEWF9NSVhFUl9XQVZFT1VULCAxNSwgMSksCi0JQVpGMzMyOF9NSVhFUl9WT0xfU1RFUkVPKCJXYXZlIFBsYXliYWNrIFZvbHVtZSIsIElEWF9NSVhFUl9XQVZFT1VULCAweDFmLCAxKSwKLQlBWkYzMzI4X01JWEVSX1NXSVRDSCgiV2F2ZSAzRCBCeXBhc3MgUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX0FEVkNUTDIsIDcsIDEpLAorCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgSURYX01JWEVSX1dBVkVPVVQsIDE1LCAxKSwKKwlBWkYzMzI4X01JWEVSX1ZPTF9TVEVSRU8oIlBDTSBQbGF5YmFjayBWb2x1bWUiLAorCQkJCQlJRFhfTUlYRVJfV0FWRU9VVCwgMHgxZiwgMSksCisJQVpGMzMyOF9NSVhFUl9TV0lUQ0goIlBDTSAzRCBCeXBhc3MgUGxheWJhY2sgU3dpdGNoIiwKKwkJCQkJSURYX01JWEVSX0FEVkNUTDIsIDcsIDEpLAogCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJGTSBQbGF5YmFjayBTd2l0Y2giLCBJRFhfTUlYRVJfRk1TWU5USCwgMTUsIDEpLAogCUFaRjMzMjhfTUlYRVJfVk9MX1NURVJFTygiRk0gUGxheWJhY2sgVm9sdW1lIiwgSURYX01JWEVSX0ZNU1lOVEgsIDB4MWYsIDEpLAogCUFaRjMzMjhfTUlYRVJfU1dJVENIKCJDRCBQbGF5YmFjayBTd2l0Y2giLCBJRFhfTUlYRVJfQ0RBVURJTywgMTUsIDEpLApAQCAtNzE3LDE1ICs4MjQsMTYgQEAKIAlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsIElEWF9NSVhFUl9SRVNFVCwgMHgwMDAwKTsKIAogCS8qIG11dGUgYW5kIHplcm8gdm9sdW1lIGNoYW5uZWxzICovCi0JZm9yIChpZHggPSAwOyBpZHggPCBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X2luaXRfdmFsdWVzKTsgaWR4KyspIHsKKwlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfaW5pdF92YWx1ZXMpOyArK2lkeCkgewogCQlzbmRfYXpmMzMyOF9taXhlcl9vdXR3KGNoaXAsCiAJCQlzbmRfYXpmMzMyOF9pbml0X3ZhbHVlc1tpZHhdWzBdLAogCQkJc25kX2F6ZjMzMjhfaW5pdF92YWx1ZXNbaWR4XVsxXSk7CiAJfQotCQorCiAJLyogYWRkIG1peGVyIGNvbnRyb2xzICovCiAJc3cgPSBzbmRfYXpmMzMyOF9taXhlcl9jb250cm9sczsKLQlmb3IgKGlkeCA9IDA7IGlkeCA8IEFSUkFZX1NJWkUoc25kX2F6ZjMzMjhfbWl4ZXJfY29udHJvbHMpOyBpZHgrKywgc3crKykgeworCWZvciAoaWR4ID0gMDsgaWR4IDwgQVJSQVlfU0laRShzbmRfYXpmMzMyOF9taXhlcl9jb250cm9scyk7CisJCQkrK2lkeCwgKytzdykgewogCQlpZiAoKGVyciA9IHNuZF9jdGxfYWRkKGNoaXAtPmNhcmQsIHNuZF9jdGxfbmV3MShzdywgY2hpcCkpKSA8IDApCiAJCQlyZXR1cm4gZXJyOwogCX0KQEAgLTc1Nyw5ICs4NjUsOSBAQAogfQogCiBzdGF0aWMgdm9pZAotc25kX2F6ZjMzMjhfc2V0Zm10KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwKLQkJCSAgICAgICB1bnNpZ25lZCBpbnQgcmVnLAotCQkJICAgICAgIHVuc2lnbmVkIGludCBiaXRyYXRlLAorc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwKKwkJCSAgICAgICB1bnNpZ25lZCByZWcsCisJCQkgICAgICAgZW51bSBhemZfZnJlcV90IGJpdHJhdGUsCiAJCQkgICAgICAgdW5zaWduZWQgaW50IGZvcm1hdF93aWR0aCwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgY2hhbm5lbHMKICkKQEAgLTc2OSwyNCArODc3LDI1IEBACiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKIAlzd2l0Y2ggKGJpdHJhdGUpIHsKLQljYXNlICA0MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNDAwMDsgYnJlYWs7Ci0JY2FzZSAgNDgwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQ4MDA7IGJyZWFrOwotCWNhc2UgIDU1MTI6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzU1MTA7IGJyZWFrOyAvKiB0aGUgQVpGMzMyOCBuYW1lcyBpdCAiNTUxMCIgZm9yIHNvbWUgc3RyYW5nZSByZWFzb24gKi8KLQljYXNlICA2NjIwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV82NjIwOyBicmVhazsKLQljYXNlICA4MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV84MDAwOyBicmVhazsKLQljYXNlICA5NjAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV85NjAwOyBicmVhazsKLQljYXNlIDExMDI1OiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8xMTAyNTsgYnJlYWs7Ci0JY2FzZSAxMzI0MDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzEzMjQwOyBicmVhazsKLQljYXNlIDE2MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8xNjAwMDsgYnJlYWs7Ci0JY2FzZSAyMjA1MDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMjIwNTA7IGJyZWFrOwotCWNhc2UgMzIwMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzMyMDAwOyBicmVhazsKLQljYXNlIDQ0MTAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV80NDEwMDsgYnJlYWs7Ci0JY2FzZSA0ODAwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNDgwMDA7IGJyZWFrOwotCWNhc2UgNjYyMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF82NjIwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV80MDAwOiAgdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQwMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfNDgwMDogIHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRX1NVU1BFQ1RFRF80ODAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzU1MTI6CisJCS8qIHRoZSBBWkYzMzI4IG5hbWVzIGl0ICI1NTEwIiBmb3Igc29tZSBzdHJhbmdlIHJlYXNvbiAqLworCQkJICAgICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV81NTEwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzY2MjA6ICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV82NjIwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzgwMDA6ICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV84MDAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzk2MDA6ICB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV85NjAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzExMDI1OiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8xMTAyNTsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8xMzI0MDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzEzMjQwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzE2MDAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV8xNjAwMDsgYnJlYWs7CisJY2FzZSBBWkZfRlJFUV8yMjA1MDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfMjIwNTA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfMzIwMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzMyMDAwOyBicmVhazsKIAlkZWZhdWx0OgogCQlzbmRfcHJpbnRrKEtFUk5fV0FSTklORyAidW5rbm93biBiaXRyYXRlICVkLCBhc3N1bWluZyA0NC4xa0h6IVxuIiwgYml0cmF0ZSk7Ci0JCXZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ0MTAwOwotCQlicmVhazsKKwkJLyogZmFsbC10aHJvdWdoICovCisJY2FzZSBBWkZfRlJFUV80NDEwMDogdmFsIHw9IFNPVU5ERk9STUFUX0ZSRVFfNDQxMDA7IGJyZWFrOworCWNhc2UgQVpGX0ZSRVFfNDgwMDA6IHZhbCB8PSBTT1VOREZPUk1BVF9GUkVRXzQ4MDAwOyBicmVhazsKKwljYXNlIEFaRl9GUkVRXzY2MjAwOiB2YWwgfD0gU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNjYyMDA7IGJyZWFrOwogCX0KIAkvKiB2YWwgPSAweGZmMDc7IDNtMjcuOTkzcyAoNjUzMDFIejsgLT4gNjQwMDBIej8/PykgaG1tLCA2NjEyMCwgNjU5NjcsIDY2MTIzICovCiAJLyogdmFsID0gMHhmZjA5OyAxN20xNS4wOThzICgxMzEyMyw0NzhIejsgLT4gMTIwMDBIej8/PykgaG1tLCAxMzIzNy4ySHo/ICovCkBAIC04MDUsMTAgKzkxNCwxMCBAQAogCQl2YWwgfD0gU09VTkRGT1JNQVRfRkxBR18xNkJJVDsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwotCQorCiAJLyogc2V0IGJpdHJhdGUvZm9ybWF0ICovCiAJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCByZWcsIHZhbCk7Ci0JCisKIAkvKiBjaGFuZ2luZyB0aGUgYml0cmF0ZS9mb3JtYXQgc2V0dGluZ3Mgc3dpdGNoZXMgb2ZmIHRoZQogCSAqIGF1ZGlvIG91dHB1dCB3aXRoIGFuIGFubm95aW5nIGNsaWNrIGluIGNhc2Ugb2YgOC8xNmJpdCBmb3JtYXQgY2hhbmdlCiAJICogKG1heWJlIHNodXR0aW5nIGRvd24gREFDL0FEQz8pLCB0aHVzIGltbWVkaWF0ZWx5CkBAIC04MzAsMzEgKzkzOSw5NSBAQAogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQKK3NuZF9hemYzMzI4X2NvZGVjX3NldGZtdF9sb3dwb3dlcihzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkgICAgdW5zaWduZWQgcmVnCispCit7CisJLyogY2hvb3NlIGxvd2VzdCBmcmVxdWVuY3kgZm9yIGxvdyBwb3dlciBjb25zdW1wdGlvbi4KKwkgKiBXaGlsZSB0aGlzIHdpbGwgY2F1c2UgbG91ZGVyIG5vaXNlIGR1ZSB0byByYXRoZXIgY29hcnNlIGZyZXF1ZW5jeSwKKwkgKiBpdCBzaG91bGQgbmV2ZXIgbWF0dGVyIHNpbmNlIG91dHB1dCBzaG91bGQgYWx3YXlzCisJICogZ2V0IGRpc2FibGVkIHByb3Blcmx5IHdoZW4gaWRsZSBhbnl3YXkuICovCisJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIHJlZywgQVpGX0ZSRVFfNDAwMCwgOCwgMSk7Cit9CisKK3N0YXRpYyB2b2lkCitzbmRfYXpmMzMyOF9jb2RlY19yZWdfNkFIX3VwZGF0ZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCisJCQkJCXVuc2lnbmVkIGJpdG1hc2ssCisJCQkJCWludCBlbmFibGUKKykKK3sKKwlpZiAoZW5hYmxlKQorCQljaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSCAmPSB+Yml0bWFzazsKKwllbHNlCisJCWNoaXAtPnNoYWRvd19yZWdfY29kZWNfNkFIIHw9IGJpdG1hc2s7CisJc25kX2F6ZjMzMjhfZGJncGxheSgiNkFIX3VwZGF0ZSBtYXNrIDB4JTA0eCBlbmFibGUgJWQ6IHZhbCAweCUwNHhcbiIsCisJCQliaXRtYXNrLCBlbmFibGUsIGNoaXAtPnNoYWRvd19yZWdfY29kZWNfNkFIKTsKKwlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT182QUgsIGNoaXAtPnNoYWRvd19yZWdfY29kZWNfNkFIKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9jb2RlY19lbmFibGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZW5hYmxlKQoreworCXNuZF9hemYzMzI4X2RiZ3BsYXkoImNvZGVjX2VuYWJsZSAlZFxuIiwgZW5hYmxlKTsKKwkvKiBubyBpZGVhIHdoYXQgZXhhY3RseSBpcyBiZWluZyBkb25lIGhlcmUsIGJ1dCBJIHN0cm9uZ2x5IGFzc3VtZSBpdCdzCisJICogUE0gcmVsYXRlZCAqLworCXNuZF9hemYzMzI4X2NvZGVjX3JlZ182QUhfdXBkYXRlKAorCQljaGlwLCBJT182QV9QQVVTRV9QTEFZQkFDS19CSVQ4LCBlbmFibGUKKwkpOworfQorCitzdGF0aWMgdm9pZAorc25kX2F6ZjMzMjhfY29kZWNfYWN0aXZpdHkoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLAorCQkJCWVudW0gc25kX2F6ZjMzMjhfc3RyZWFtX2luZGV4IHN0cmVhbV90eXBlLAorCQkJCWludCBlbmFibGUKKykKK3sKKwlpbnQgbmVlZF9jaGFuZ2UgPSAoY2hpcC0+YXVkaW9fc3RyZWFtW3N0cmVhbV90eXBlXS5ydW5uaW5nICE9IGVuYWJsZSk7CisKKwlzbmRfYXpmMzMyOF9kYmdwbGF5KAorCQkiY29kZWNfYWN0aXZpdHk6IHR5cGUgJWQsIGVuYWJsZSAlZCwgbmVlZF9jaGFuZ2UgJWRcbiIsCisJCQkJc3RyZWFtX3R5cGUsIGVuYWJsZSwgbmVlZF9jaGFuZ2UKKwkpOworCWlmIChuZWVkX2NoYW5nZSkgeworCQllbnVtIHNuZF9hemYzMzI4X3N0cmVhbV9pbmRleCBvdGhlciA9CisJCQkoc3RyZWFtX3R5cGUgPT0gQVpGX1BMQVlCQUNLKSA/CisJCQkJQVpGX0NBUFRVUkUgOiBBWkZfUExBWUJBQ0s7CisJCS8qIHNtYWxsIGNoZWNrIHRvIHByZXZlbnQgc2h1dHRpbmcgZG93biB0aGUgb3RoZXIgcGFydHkKKwkJICogaW4gY2FzZSBpdCdzIGFjdGl2ZSAqLworCQlpZiAoKGVuYWJsZSkgfHwgIShjaGlwLT5hdWRpb19zdHJlYW1bb3RoZXJdLnJ1bm5pbmcpKQorCQkJc25kX2F6ZjMzMjhfY29kZWNfZW5hYmxlKGNoaXAsIGVuYWJsZSk7CisKKwkJLyogLi4uYW5kIGFkanVzdCBjbG9jaywgdG9vCisJCSAqIChyZWR1Y2Ugbm9pc2UgYW5kIHBvd2VyIGNvbnN1bXB0aW9uKSAqLworCQlpZiAoIWVuYWJsZSkKKwkJCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdF9sb3dwb3dlcigKKwkJCQljaGlwLAorCQkJCWNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucG9ydGJhc2UKKwkJCQkJKyBJRFhfSU9fUExBWV9TT1VOREZPUk1BVAorCQkJKTsKKwl9CisJY2hpcC0+YXVkaW9fc3RyZWFtW3N0cmVhbV90eXBlXS5ydW5uaW5nID0gZW5hYmxlOworfQorCiBzdGF0aWMgdm9pZAogc25kX2F6ZjMzMjhfc2V0ZG1hYShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsCiAJCQkJbG9uZyB1bnNpZ25lZCBpbnQgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSwKLQkJCQlpbnQgZG9fcmVjb3JkaW5nKQorCQkJCWVudW0gc25kX2F6ZjMzMjhfc3RyZWFtX2luZGV4IHN0cmVhbV90eXBlCispCiB7Ci0JdW5zaWduZWQgbG9uZyBmbGFncywgcG9ydGJhc2U7Ci0JdW5zaWduZWQgaW50IGlzX3J1bm5pbmc7Ci0KIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKLQlpZiAoZG9fcmVjb3JkaW5nKSB7Ci0JCS8qIGFjY2VzcyBjYXB0dXJlIHJlZ2lzdGVycywgaS5lLiBza2lwIHBsYXliYWNrIHJlZyBzZWN0aW9uICovCi0JCXBvcnRiYXNlID0gY2hpcC0+Y29kZWNfcG9ydCArIDB4MjA7Ci0JCWlzX3J1bm5pbmcgPSBjaGlwLT5pc19yZWNvcmRpbmc7Ci0JfSBlbHNlIHsKLQkJLyogYWNjZXNzIHRoZSBwbGF5YmFjayByZWdpc3RlciBzZWN0aW9uICovCi0JCXBvcnRiYXNlID0gY2hpcC0+Y29kZWNfcG9ydCArIDB4MDA7Ci0JCWlzX3J1bm5pbmcgPSBjaGlwLT5pc19wbGF5aW5nOwotCX0KKwlpZiAoIWNoaXAtPmF1ZGlvX3N0cmVhbVtzdHJlYW1fdHlwZV0ucnVubmluZykgeworCQkvKiBBWkYzMzI4IHVzZXMgYSB0d28gYnVmZmVyIHBvaW50ZXIgRE1BIHBsYXliYWNrIGFwcHJvYWNoICovCiAKLQkvKiBBWkYzMzI4IHVzZXMgYSB0d28gYnVmZmVyIHBvaW50ZXIgRE1BIHBsYXliYWNrIGFwcHJvYWNoICovCi0JaWYgKCFpc19ydW5uaW5nKSB7Ci0JCXVuc2lnbmVkIGxvbmcgYWRkcl9hcmVhMjsKLQkJdW5zaWduZWQgbG9uZyBjb3VudF9hcmVhcywgY291bnRfdG1wOyAvKiB3aWR0aCAzMmJpdCAtLSBvdmVyZmxvdyEhICovCisJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHBvcnRiYXNlLCBhZGRyX2FyZWEyOworCisJCS8qIHdpZHRoIDMyYml0IChwcmV2ZW50IG92ZXJmbG93KTogKi8KKwkJdW5zaWduZWQgbG9uZyBjb3VudF9hcmVhcywgY291bnRfdG1wOworCisJCXBvcnRiYXNlID0gY2hpcC0+YXVkaW9fc3RyZWFtW3N0cmVhbV90eXBlXS5wb3J0YmFzZTsKIAkJY291bnRfYXJlYXMgPSBzaXplLzI7CiAJCWFkZHJfYXJlYTIgPSBhZGRyK2NvdW50X2FyZWFzOwogCQljb3VudF9hcmVhcy0tOyAvKiBtYXguIGluZGV4ICovCkBAIC04ODQsMTEgKzEwNTcsMTEgQEAKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwogI2lmIDAKLQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQsCisJc25kX2F6ZjMzMjhfY29kZWNfc2V0Zm10KGNoaXAsIElEWF9JT19QTEFZX1NPVU5ERk9STUFULAogCQlydW50aW1lLT5yYXRlLAogCQlzbmRfcGNtX2Zvcm1hdF93aWR0aChydW50aW1lLT5mb3JtYXQpLAogCQlydW50aW1lLT5jaGFubmVscyk7Ci0Jc25kX2F6ZjMzMjhfc2V0ZG1hYShjaGlwLCBydW50aW1lLT5kbWFfYWRkciwgY291bnQsIHNpemUsIDApOworCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsIGNvdW50LCBzaXplLCBBWkZfUExBWUJBQ0spOwogI2VuZGlmCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIDA7CkBAIC05MDYsMTEgKzEwNzksMTEgQEAKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxlbnRlcigpOwogI2lmIDAKLQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1JFQ19TT1VOREZPUk1BVCwKKwlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXQoY2hpcCwgSURYX0lPX1JFQ19TT1VOREZPUk1BVCwKIAkJcnVudGltZS0+cmF0ZSwKIAkJc25kX3BjbV9mb3JtYXRfd2lkdGgocnVudGltZS0+Zm9ybWF0KSwKIAkJcnVudGltZS0+Y2hhbm5lbHMpOwotCXNuZF9hemYzMzI4X3NldGRtYWEoY2hpcCwgcnVudGltZS0+ZG1hX2FkZHIsIGNvdW50LCBzaXplLCAxKTsKKwlzbmRfYXpmMzMyOF9zZXRkbWFhKGNoaXAsIHJ1bnRpbWUtPmRtYV9hZGRyLCBjb3VudCwgc2l6ZSwgQVpGX0NBUFRVUkUpOwogI2VuZGlmCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CiAJcmV0dXJuIDA7CkBAIC05MjMsNiArMTA5Niw3IEBACiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKIAlpbnQgcmVzdWx0ID0gMDsKIAl1bnNpZ25lZCBpbnQgc3RhdHVzMTsKKwlpbnQgcHJldmlvdXNseV9tdXRlZDsKIAogCXNuZF9hemYzMzI4X2RiZ2NhbGxzKCJzbmRfYXpmMzMyOF9wbGF5YmFja190cmlnZ2VyIGNtZCAlZFxuIiwgY21kKTsKIApAQCAtOTMwLDIwICsxMTA0LDIzIEBACiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RBUlQgUExBWUJBQ0tcbiIpOwogCi0JCS8qIG11dGUgV2F2ZU91dCAqLwotCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CisJCS8qIG11dGUgV2F2ZU91dCAoYXZvaWQgY2xpY2tpbmcgZHVyaW5nIHNldHVwKSAqLworCQlwcmV2aW91c2x5X211dGVkID0KKwkJCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAxKTsKIAotCQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQsCisJCXNuZF9hemYzMzI4X2NvZGVjX3NldGZtdChjaGlwLCBJRFhfSU9fUExBWV9TT1VOREZPUk1BVCwKIAkJCXJ1bnRpbWUtPnJhdGUsCiAJCQlzbmRfcGNtX2Zvcm1hdF93aWR0aChydW50aW1lLT5mb3JtYXQpLAogCQkJcnVudGltZS0+Y2hhbm5lbHMpOwogCiAJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwotCQkvKiBzdG9wIHBsYXliYWNrICovCisJCS8qIGZpcnN0LCByZW1lbWJlciBjdXJyZW50IHZhbHVlOiAqLwogCQlzdGF0dXMxID0gc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTKTsKKworCQkvKiBzdG9wIHBsYXliYWNrICovCiAJCXN0YXR1czEgJj0gfkRNQV9SRVNVTUU7CiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MsIHN0YXR1czEpOwotCSAgICAKKwogCQkvKiBGSVhNRTogY2xlYXIgaW50ZXJydXB0cyBvciB3aGF0Pz8/ICovCiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1BMQVlfSVJRVFlQRSwgMHhmZmZmKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKQEAgLTk1MSw3ICsxMTI4LDcgQEAKIAkJc25kX2F6ZjMzMjhfc2V0ZG1hYShjaGlwLCBydW50aW1lLT5kbWFfYWRkciwKIAkJCXNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pLAogCQkJc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSksCi0JCQkwKTsKKwkJCUFaRl9QTEFZQkFDSyk7CiAKIAkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAjaWZkZWYgV0lOOVgKQEAgLTk3OCwzMCArMTE1NSwzNSBAQAogCQkJRE1BX1NPTUVUSElOR19FTFNFKTsKICNlbmRpZgogCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOworCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfUExBWUJBQ0ssIDEpOwogCiAJCS8qIG5vdyB1bm11dGUgV2F2ZU91dCAqLwotCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMCk7CisJCWlmICghcHJldmlvdXNseV9tdXRlZCkKKwkJCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAwKTsKIAotCQljaGlwLT5pc19wbGF5aW5nID0gMTsKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RBUlRFRCBQTEFZQkFDS1xuIik7CiAJCWJyZWFrOwogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUkVTVU1FOgogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJSRVNVTUUgUExBWUJBQ0tcbiIpOwogCQkvKiByZXN1bWUgcGxheWJhY2sgaWYgd2Ugd2VyZSBhY3RpdmUgKi8KLQkJaWYgKGNoaXAtPmlzX3BsYXlpbmcpCisJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOworCQlpZiAoY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9QTEFZQkFDS10ucnVubmluZykKIAkJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MsCiAJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTKSB8IERNQV9SRVNVTUUpOworCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUT1AgUExBWUJBQ0tcbiIpOwogCi0JCS8qIG11dGUgV2F2ZU91dCAqLwotCQlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfV0FWRU9VVCwgMSk7CisJCS8qIG11dGUgV2F2ZU91dCAoYXZvaWQgY2xpY2tpbmcgZHVyaW5nIHNldHVwKSAqLworCQlwcmV2aW91c2x5X211dGVkID0KKwkJCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAxKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCBwbGF5YmFjayAqLworCQkvKiBmaXJzdCwgcmVtZW1iZXIgY3VycmVudCB2YWx1ZTogKi8KIAkJc3RhdHVzMSA9IHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUyk7CiAKKwkJLyogc3RvcCBwbGF5YmFjayAqLwogCQlzdGF0dXMxICY9IH5ETUFfUkVTVU1FOwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCBzdGF0dXMxKTsKIApAQCAtMTAxMywxMCArMTE5NSwxMiBAQAogCQlzdGF0dXMxICY9IH5ETUFfUExBWV9TT01FVEhJTkcxOwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19QTEFZX0ZMQUdTLCBzdGF0dXMxKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkgICAgCisJCXNuZF9hemYzMzI4X2NvZGVjX2FjdGl2aXR5KGNoaXAsIEFaRl9QTEFZQkFDSywgMCk7CisKIAkJLyogbm93IHVubXV0ZSBXYXZlT3V0ICovCi0JCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAwKTsKLQkJY2hpcC0+aXNfcGxheWluZyA9IDA7CisJCWlmICghcHJldmlvdXNseV9tdXRlZCkKKwkJCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9XQVZFT1VULCAwKTsKKwogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVE9QUEVEIFBMQVlCQUNLXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgpAQCAtMTAzNSw3ICsxMjE5LDcgQEAKIAkJcHJpbnRrKEtFUk5fRVJSICJGSVhNRTogdW5rbm93biB0cmlnZ2VyIG1vZGUhXG4iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAl9Ci0JCisKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTA1NywxNyArMTI0MSwxOSBAQAogCiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlNUQVJUIENBUFRVUkVcbiIpOwogCi0JCXNuZF9hemYzMzI4X3NldGZtdChjaGlwLCBJRFhfSU9fUkVDX1NPVU5ERk9STUFULAorCQlzbmRfYXpmMzMyOF9jb2RlY19zZXRmbXQoY2hpcCwgSURYX0lPX1JFQ19TT1VOREZPUk1BVCwKIAkJCXJ1bnRpbWUtPnJhdGUsCiAJCQlzbmRfcGNtX2Zvcm1hdF93aWR0aChydW50aW1lLT5mb3JtYXQpLAogCQkJcnVudGltZS0+Y2hhbm5lbHMpOwogCiAJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwotCQkvKiBzdG9wIHJlY29yZGluZyAqLworCQkvKiBmaXJzdCwgcmVtZW1iZXIgY3VycmVudCB2YWx1ZTogKi8KIAkJc3RhdHVzMSA9IHNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTKTsKKworCQkvKiBzdG9wIHJlY29yZGluZyAqLwogCQlzdGF0dXMxICY9IH5ETUFfUkVTVU1FOwogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXR3KGNoaXAsIElEWF9JT19SRUNfRkxBR1MsIHN0YXR1czEpOwotCSAgICAKKwogCQkvKiBGSVhNRTogY2xlYXIgaW50ZXJydXB0cyBvciB3aGF0Pz8/ICovCiAJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19JUlFUWVBFLCAweGZmZmYpOwogCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwpAQCAtMTA3NSw3ICsxMjYxLDcgQEAKIAkJc25kX2F6ZjMzMjhfc2V0ZG1hYShjaGlwLCBydW50aW1lLT5kbWFfYWRkciwKIAkJCXNuZF9wY21fbGliX3BlcmlvZF9ieXRlcyhzdWJzdHJlYW0pLAogCQkJc25kX3BjbV9saWJfYnVmZmVyX2J5dGVzKHN1YnN0cmVhbSksCi0JCQkxKTsKKwkJCUFaRl9DQVBUVVJFKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKICNpZmRlZiBXSU45WApAQCAtMTEwMiwyNCArMTI4OCwyNyBAQAogCQkJRE1BX1NPTUVUSElOR19FTFNFKTsKICNlbmRpZgogCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOworCQlzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eShjaGlwLCBBWkZfQ0FQVFVSRSwgMSk7CiAKLQkJY2hpcC0+aXNfcmVjb3JkaW5nID0gMTsKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RBUlRFRCBDQVBUVVJFXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CiAJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlJFU1VNRSBDQVBUVVJFXG4iKTsKIAkJLyogcmVzdW1lIHJlY29yZGluZyBpZiB3ZSB3ZXJlIGFjdGl2ZSAqLwotCQlpZiAoY2hpcC0+aXNfcmVjb3JkaW5nKQorCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJaWYgKGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0ucnVubmluZykKIAkJCXNuZF9hemYzMzI4X2NvZGVjX291dHcoY2hpcCwgSURYX0lPX1JFQ19GTEFHUywKIAkJCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1JFQ19GTEFHUykgfCBETUFfUkVTVU1FKTsKKwkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKIAkJYnJlYWs7CiAgICAgICAgIGNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKIAkJc25kX2F6ZjMzMjhfZGJncGxheSgiU1RPUCBDQVBUVVJFXG4iKTsKIAogCQlzcGluX2xvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkJLyogc3RvcCByZWNvcmRpbmcgKi8KKwkJLyogZmlyc3QsIHJlbWVtYmVyIGN1cnJlbnQgdmFsdWU6ICovCiAJCXN0YXR1czEgPSBzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1JFQ19GTEFHUyk7CiAKKwkJLyogc3RvcCByZWNvcmRpbmcgKi8KIAkJc3RhdHVzMSAmPSB+RE1BX1JFU1VNRTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTLCBzdGF0dXMxKTsKIApAQCAtMTEyOSw4ICsxMzE4LDggQEAKIAkJc3RhdHVzMSAmPSB+RE1BX1BMQVlfU09NRVRISU5HMTsKIAkJc25kX2F6ZjMzMjhfY29kZWNfb3V0dyhjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTLCBzdGF0dXMxKTsKIAkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKLQkgICAgCi0JCWNoaXAtPmlzX3JlY29yZGluZyA9IDA7CisJCXNuZF9hemYzMzI4X2NvZGVjX2FjdGl2aXR5KGNoaXAsIEFaRl9DQVBUVVJFLCAwKTsKKwogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJTVE9QUEVEIENBUFRVUkVcbiIpOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CkBAIC0xMTQ5LDcgKzEzMzgsNyBAQAogCQlwcmludGsoS0VSTl9FUlIgIkZJWE1FOiB1bmtub3duIHRyaWdnZXIgbW9kZSFcbiIpOwogICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCX0KLQkKKwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYyLDExICsxMzUxLDExIEBACiAJc25kX3BjbV91ZnJhbWVzX3QgZnJtcmVzOwogCiAjaWZkZWYgUVVFUllfSEFSRFdBUkUKLQlidWZwdHIgPSBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUExBWV9ETUFfU1RBUlRfMSk7CisJYnVmcHRyID0gc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19QTEFZX0RNQV9TVEFSVF8xKTsKICNlbHNlCiAJYnVmcHRyID0gc3Vic3RyZWFtLT5ydW50aW1lLT5kbWFfYWRkcjsKICNlbmRpZgotCXJlc3VsdCA9IGlubChjaGlwLT5jb2RlY19wb3J0K0lEWF9JT19QTEFZX0RNQV9DVVJSUE9TKTsKKwlyZXN1bHQgPSBzbmRfYXpmMzMyOF9jb2RlY19pbmwoY2hpcCwgSURYX0lPX1BMQVlfRE1BX0NVUlJQT1MpOwogCiAJLyogY2FsY3VsYXRlIG9mZnNldCAqLwogCXJlc3VsdCAtPSBidWZwdHI7CkBAIC0xMTgzLDExICsxMzcyLDExIEBACiAJc25kX3BjbV91ZnJhbWVzX3QgZnJtcmVzOwogCiAjaWZkZWYgUVVFUllfSEFSRFdBUkUKLQlidWZwdHIgPSBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUkVDX0RNQV9TVEFSVF8xKTsKKwlidWZwdHIgPSBzbmRfYXpmMzMyOF9jb2RlY19pbmwoY2hpcCwgSURYX0lPX1JFQ19ETUFfU1RBUlRfMSk7CiAjZWxzZQogCWJ1ZnB0ciA9IHN1YnN0cmVhbS0+cnVudGltZS0+ZG1hX2FkZHI7CiAjZW5kaWYKLQlyZXN1bHQgPSBpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUkVDX0RNQV9DVVJSUE9TKTsKKwlyZXN1bHQgPSBzbmRfYXpmMzMyOF9jb2RlY19pbmwoY2hpcCwgSURYX0lPX1JFQ19ETUFfQ1VSUlBPUyk7CiAKIAkvKiBjYWxjdWxhdGUgb2Zmc2V0ICovCiAJcmVzdWx0IC09IGJ1ZnB0cjsKQEAgLTExOTYsMjcgKzEzODUsMjQxIEBACiAJcmV0dXJuIGZybXJlczsKIH0KIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIFNVUFBPUlRfR0FNRVBPUlQKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaXJxX2VuYWJsZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBlbmFibGUpCit7CisJc25kX2F6ZjMzMjhfaW9fcmVnX3NldGIoCisJCWNoaXAtPmdhbWVfaW8rSURYX0dBTUVfSFdDT05GSUcsCisJCUdBTUVfSFdDRkdfSVJRX0VOQUJMRSwKKwkJZW5hYmxlCisJKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9sZWdhY3lfYWRkcmVzc19lbmFibGUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwLCBpbnQgZW5hYmxlKQoreworCXNuZF9hemYzMzI4X2lvX3JlZ19zZXRiKAorCQljaGlwLT5nYW1lX2lvK0lEWF9HQU1FX0hXQ09ORklHLAorCQlHQU1FX0hXQ0ZHX0xFR0FDWV9BRERSRVNTX0VOQUJMRSwKKwkJZW5hYmxlCisJKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9heGlzX2NpcmN1aXRfZW5hYmxlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGVuYWJsZSkKK3sKKwlzbmRfYXpmMzMyOF9jb2RlY19yZWdfNkFIX3VwZGF0ZSgKKwkJY2hpcCwgSU9fNkFfU09NRVRISU5HMl9HQU1FUE9SVCwgZW5hYmxlCisJKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9pbnRlcnJ1cHQoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQoreworCS8qCisJICogc2tlbGV0b24gaGFuZGxlciBvbmx5CisJICogKHdlIGRvIG5vdCB3YW50IGF4aXMgcmVhZGluZyBpbiBpbnRlcnJ1cHQgaGFuZGxlciAtIHRvbyBtdWNoIGxvYWQhKQorCSAqLworCXNuZF9hemYzMzI4X2RiZ2dhbWUoImdhbWVwb3J0IGlycVxuIik7CisKKwkgLyogdGhpcyBzaG91bGQgQUNLIHRoZSBnYW1lcG9ydCBJUlEgcHJvcGVybHksIGhvcGVmdWxseS4gKi8KKwlzbmRfYXpmMzMyOF9nYW1lX2ludyhjaGlwLCBJRFhfR0FNRV9BWElTX1ZBTFVFKTsKK30KKworc3RhdGljIGludAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfb3BlbihzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0LCBpbnQgbW9kZSkKK3sKKwlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBnYW1lcG9ydF9nZXRfcG9ydF9kYXRhKGdhbWVwb3J0KTsKKwlpbnQgcmVzOworCisJc25kX2F6ZjMzMjhfZGJnZ2FtZSgiZ2FtZXBvcnRfb3BlbiwgbW9kZSAlZFxuIiwgbW9kZSk7CisJc3dpdGNoIChtb2RlKSB7CisJY2FzZSBHQU1FUE9SVF9NT0RFX0NPT0tFRDoKKwljYXNlIEdBTUVQT1JUX01PREVfUkFXOgorCQlyZXMgPSAwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXMgPSAtMTsKKwkJYnJlYWs7CisJfQorCisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfYXhpc19jaXJjdWl0X2VuYWJsZShjaGlwLCAocmVzID09IDApKTsKKworCXJldHVybiByZXM7Cit9CisKK3N0YXRpYyB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9jbG9zZShzdHJ1Y3QgZ2FtZXBvcnQgKmdhbWVwb3J0KQoreworCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGdhbWVwb3J0X2dldF9wb3J0X2RhdGEoZ2FtZXBvcnQpOworCisJc25kX2F6ZjMzMjhfZGJnZ2FtZSgiZ2FtZXBvcnRfY2xvc2VcbiIpOworCXNuZF9hemYzMzI4X2dhbWVwb3J0X2F4aXNfY2lyY3VpdF9lbmFibGUoY2hpcCwgMCk7Cit9CisKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X2dhbWVwb3J0X2Nvb2tlZF9yZWFkKHN0cnVjdCBnYW1lcG9ydCAqZ2FtZXBvcnQsCisJCQkJIGludCAqYXhlcywKKwkJCQkgaW50ICpidXR0b25zCispCit7CisJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gZ2FtZXBvcnRfZ2V0X3BvcnRfZGF0YShnYW1lcG9ydCk7CisJaW50IGk7CisJdTggdmFsOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzbmRfYXNzZXJ0KGNoaXAsIHJldHVybiAwKTsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOworCXZhbCA9IHNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIElEWF9HQU1FX0xFR0FDWV9DT01QQVRJQkxFKTsKKwkqYnV0dG9ucyA9ICh+KHZhbCkgPj4gNCkgJiAweGY7CisKKwkvKiBvaywgdGhpcyBvbmUgaXMgYSBiaXQgZGlydHk6IGNvb2tlZF9yZWFkIGlzIGJlaW5nIHBvbGxlZCBieSBhIHRpbWVyLAorCSAqIHRodXMgd2UncmUgYXRvbWljIGFuZCBjYW5ub3QgYWN0aXZlbHkgd2FpdCBpbiBoZXJlCisJICogKHdoaWNoIHdvdWxkIGJlIHVzZWZ1bCBmb3IgdXMgc2luY2UgaXQgcHJvYmFibHkgd291bGQgYmUgYmV0dGVyCisJICogdG8gdHJpZ2dlciBhIG1lYXN1cmVtZW50IGluIGhlcmUsIHRoZW4gd2FpdCBhIHNob3J0IGFtb3VudCBvZgorCSAqIHRpbWUgdW50aWwgaXQncyBmaW5pc2hlZCwgdGhlbiByZWFkIHZhbHVlcyBvZiBfdGhpc18gbWVhc3VyZW1lbnQpLgorCSAqCisJICogVGh1cyB3ZSBzaW1wbHkgcmVzb3J0IHRvIHJlYWRpbmcgdmFsdWVzIGlmIHRoZXkncmUgYXZhaWxhYmxlIGFscmVhZHkKKwkgKiBhbmQgdHJpZ2dlciB0aGUgbmV4dCBtZWFzdXJlbWVudC4KKwkgKi8KKworCXZhbCA9IHNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIElEWF9HQU1FX0FYRVNfQ09ORklHKTsKKwlpZiAodmFsICYgR0FNRV9BWEVTX1NBTVBMSU5HX1JFQURZKSB7CisJCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKwkJCS8qIGNvbmZpZ3VyZSB0aGUgYXhpcyB0byByZWFkICovCisJCQl2YWwgPSAoaSA8PCA0KSB8IDB4MGY7CisJCQlzbmRfYXpmMzMyOF9nYW1lX291dGIoY2hpcCwgSURYX0dBTUVfQVhFU19DT05GSUcsIHZhbCk7CisKKwkJCWNoaXAtPmF4ZXNbaV0gPSBzbmRfYXpmMzMyOF9nYW1lX2ludygKKwkJCQkJCWNoaXAsIElEWF9HQU1FX0FYSVNfVkFMVUUKKwkJCQkJKTsKKwkJfQorCX0KKworCS8qIHRyaWdnZXIgbmV4dCBheGVzIHNhbXBsaW5nLCB0byBiZSBldmFsdWF0ZWQgdGhlIG5leHQgdGltZSB3ZQorCSAqIGVudGVyIHRoaXMgZnVuY3Rpb24gKi8KKworCS8qIGZvciBzb21lIHZlcnksIHZlcnkgc3RyYW5nZSByZWFzb24gd2UgY2Fubm90IGVuYWJsZQorCSAqIE1lYXN1cmVtZW50IFJlYWR5IG1vbml0b3JpbmcgZm9yIGFsbCBheGVzIGhlcmUsCisJICogYXQgbGVhc3Qgbm90IHdoZW4gb25seSBvbmUgam95c3RpY2sgY29ubmVjdGVkICovCisJdmFsID0gMHgwMzsgLyogd2UncmUgYWJsZSB0byBtb25pdG9yIGF4ZXMgMSBhbmQgMiBvbmx5ICovCisJc25kX2F6ZjMzMjhfZ2FtZV9vdXRiKGNoaXAsIElEWF9HQU1FX0FYRVNfQ09ORklHLCB2YWwpOworCisJc25kX2F6ZjMzMjhfZ2FtZV9vdXR3KGNoaXAsIElEWF9HQU1FX0FYSVNfVkFMVUUsIDB4ZmZmZik7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY2hpcC0+cmVnX2xvY2ssIGZsYWdzKTsKKworCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJYXhlc1tpXSA9IGNoaXAtPmF4ZXNbaV07CisJCWlmIChheGVzW2ldID09IDB4ZmZmZikKKwkJCWF4ZXNbaV0gPSAtMTsKKwl9CisKKwlzbmRfYXpmMzMyOF9kYmdnYW1lKCJjb29rZWRfcmVhZDogYXhlcyAlZCAlZCAlZCAlZCBidXR0b25zICVkXG4iLAorCQlheGVzWzBdLCBheGVzWzFdLCBheGVzWzJdLCBheGVzWzNdLCAqYnV0dG9ucworCSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBfX2RldmluaXQKK3NuZF9hemYzMzI4X2dhbWVwb3J0KHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCwgaW50IGRldikKK3sKKwlzdHJ1Y3QgZ2FtZXBvcnQgKmdwOworCisJY2hpcC0+Z2FtZXBvcnQgPSBncCA9IGdhbWVwb3J0X2FsbG9jYXRlX3BvcnQoKTsKKwlpZiAoIWdwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYXp0MzMyODogY2Fubm90IGFsbG9jIG1lbW9yeSBmb3IgZ2FtZXBvcnRcbiIpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisKKwlnYW1lcG9ydF9zZXRfbmFtZShncCwgIkFaRjMzMjggR2FtZXBvcnQiKTsKKwlnYW1lcG9ydF9zZXRfcGh5cyhncCwgInBjaSVzL2dhbWVwb3J0MCIsIHBjaV9uYW1lKGNoaXAtPnBjaSkpOworCWdhbWVwb3J0X3NldF9kZXZfcGFyZW50KGdwLCAmY2hpcC0+cGNpLT5kZXYpOworCWdwLT5pbyA9IGNoaXAtPmdhbWVfaW87CisJZ2FtZXBvcnRfc2V0X3BvcnRfZGF0YShncCwgY2hpcCk7CisKKwlncC0+b3BlbiA9IHNuZF9hemYzMzI4X2dhbWVwb3J0X29wZW47CisJZ3AtPmNsb3NlID0gc25kX2F6ZjMzMjhfZ2FtZXBvcnRfY2xvc2U7CisJZ3AtPmZ1enogPSAxNjsgLyogc2VlbXMgb2sgKi8KKwlncC0+Y29va2VkX3JlYWQgPSBzbmRfYXpmMzMyOF9nYW1lcG9ydF9jb29rZWRfcmVhZDsKKworCS8qIERJU0FCTEUgbGVnYWN5IGFkZHJlc3M6IHdlIGRvbid0IG5lZWQgaXQhICovCisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfbGVnYWN5X2FkZHJlc3NfZW5hYmxlKGNoaXAsIDApOworCisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfYXhpc19jaXJjdWl0X2VuYWJsZShjaGlwLCAwKTsKKworCWdhbWVwb3J0X3JlZ2lzdGVyX3BvcnQoY2hpcC0+Z2FtZXBvcnQpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9mcmVlKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKK3sKKwlpZiAoY2hpcC0+Z2FtZXBvcnQpIHsKKwkJZ2FtZXBvcnRfdW5yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKKwkJY2hpcC0+Z2FtZXBvcnQgPSBOVUxMOworCX0KKwlzbmRfYXpmMzMyOF9nYW1lcG9ydF9pcnFfZW5hYmxlKGNoaXAsIDApOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgaW50CitzbmRfYXpmMzMyOF9nYW1lcG9ydChzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBkZXYpIHsgcmV0dXJuIC1FTk9TWVM7IH0KK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfZ2FtZXBvcnRfZnJlZShzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApIHsgfQorc3RhdGljIGlubGluZSB2b2lkCitzbmRfYXpmMzMyOF9nYW1lcG9ydF9pbnRlcnJ1cHQoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQoreworCXByaW50ayhLRVJOX1dBUk5JTkcgImh1aCwgZ2FtZSBwb3J0IElSUSBvY2N1cnJlZCE/XG4iKTsKK30KKyNlbmRpZiAvKiBTVVBQT1JUX0dBTUVQT1JUICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc25kX2F6ZjMzMjhfaXJxX2xvZ191bmtub3duX3R5cGUodTggd2hpY2gpCit7CisJc25kX2F6ZjMzMjhfZGJncGxheSgKKwkiYXp0MzMyODogdW5rbm93biBJUlEgdHlwZSAoJXgpIG9jY3VycmVkLCBwbGVhc2UgcmVwb3J0IVxuIiwKKwkJd2hpY2gKKwkpOworfQorCiBzdGF0aWMgaXJxcmV0dXJuX3QKIHNuZF9hemYzMzI4X2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiB7CiAJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gZGV2X2lkOwogCXU4IHN0YXR1cywgd2hpY2g7CisjaWYgREVCVUdfUExBWV9SRUMKIAlzdGF0aWMgdW5zaWduZWQgbG9uZyBpcnFfY291bnQ7CisjZW5kaWYKIAogCXN0YXR1cyA9IHNuZF9hemYzMzI4X2NvZGVjX2luYihjaGlwLCBJRFhfSU9fSVJRU1RBVFVTKTsKIAogICAgICAgICAvKiBmYXN0IHBhdGggb3V0LCB0byBlYXNlIGludGVycnVwdCBzaGFyaW5nICovCi0JaWYgKCEoc3RhdHVzICYgKElSUV9QTEFZQkFDS3xJUlFfUkVDT1JESU5HfElSUV9NUFU0MDF8SVJRX1RJTUVSKSkpCisJaWYgKCEoc3RhdHVzICYKKwkJKElSUV9QTEFZQkFDS3xJUlFfUkVDT1JESU5HfElSUV9HQU1FUE9SVHxJUlFfTVBVNDAxfElSUV9USU1FUikKKwkpKQogCQlyZXR1cm4gSVJRX05PTkU7IC8qIG11c3QgYmUgaW50ZXJydXB0IGZvciBhbm90aGVyIGRldmljZSAqLwogCi0Jc25kX2F6ZjMzMjhfZGJncGxheSgiSW50ZXJydXB0ICVsZCFcbklEWF9JT19QTEFZX0ZMQUdTICUwNHgsIElEWF9JT19QTEFZX0lSUVRZUEUgJTA0eCwgSURYX0lPX0lSUVNUQVRVUyAlMDR4XG4iLAotCQlpcnFfY291bnQsCi0JCXNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUyksCi0JCXNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9JUlFUWVBFKSwKLQkJc3RhdHVzKTsKLQkJCisJc25kX2F6ZjMzMjhfZGJncGxheSgKKwkJImlycV9jb3VudCAlbGQhIElEWF9JT19QTEFZX0ZMQUdTICUwNHgsICIKKwkJIklEWF9JT19QTEFZX0lSUVRZUEUgJTA0eCwgSURYX0lPX0lSUVNUQVRVUyAlMDR4XG4iLAorCQkJaXJxX2NvdW50KysgLyogZGVidWctb25seSAqLywKKwkJCXNuZF9hemYzMzI4X2NvZGVjX2ludyhjaGlwLCBJRFhfSU9fUExBWV9GTEFHUyksCisJCQlzbmRfYXpmMzMyOF9jb2RlY19pbncoY2hpcCwgSURYX0lPX1BMQVlfSVJRVFlQRSksCisJCQlzdGF0dXMKKwkpOworCiAJaWYgKHN0YXR1cyAmIElSUV9USU1FUikgewotCQkvKiBzbmRfYXpmMzMyOF9kYmdwbGF5KCJ0aW1lciAlbGRcbiIsIGlubChjaGlwLT5jb2RlY19wb3J0K0lEWF9JT19USU1FUl9WQUxVRSkgJiBUSU1FUl9WQUxVRV9NQVNLKTsgKi8KKwkJLyogc25kX2F6ZjMzMjhfZGJncGxheSgidGltZXIgJWxkXG4iLAorCQkJc25kX2F6ZjMzMjhfY29kZWNfaW5sKGNoaXAsIElEWF9JT19USU1FUl9WQUxVRSkKKwkJCQkmIFRJTUVSX1ZBTFVFX01BU0sKKwkJKTsgKi8KIAkJaWYgKGNoaXAtPnRpbWVyKQogCQkJc25kX3RpbWVyX2ludGVycnVwdChjaGlwLT50aW1lciwgY2hpcC0+dGltZXItPnN0aWNrcyk7CiAJCS8qIEFDSyB0aW1lciAqLwpAQCAtMTIzMiwxNSArMTYzNSwyMCBAQAogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19QTEFZX0lSUVRZUEUsIHdoaWNoKTsKICAgICAgICAgICAgICAgIAlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwogCi0JCWlmIChjaGlwLT5wY20gJiYgY2hpcC0+cGxheWJhY2tfc3Vic3RyZWFtKSB7Ci0JCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNoaXAtPnBsYXliYWNrX3N1YnN0cmVhbSk7CisJCWlmIChjaGlwLT5wY20gJiYgY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9QTEFZQkFDS10uc3Vic3RyZWFtKSB7CisJCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKAorCQkJCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnN1YnN0cmVhbQorCQkJKTsKIAkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoIlBMQVkgcGVyaW9kIGRvbmUgKCMleCksIEAgJXhcbiIsCiAJCQkJd2hpY2gsCi0JCQkJaW5sKGNoaXAtPmNvZGVjX3BvcnQrSURYX0lPX1BMQVlfRE1BX0NVUlJQT1MpKTsKKwkJCQlzbmRfYXpmMzMyOF9jb2RlY19pbmwoCisJCQkJCWNoaXAsIElEWF9JT19QTEFZX0RNQV9DVVJSUE9TCisJCQkJKQorCQkJKTsKIAkJfSBlbHNlCi0JCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJhenQzMzI4OiBvdWNoLCBpcnEgaGFuZGxlciBwcm9ibGVtIVxuIik7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJhenQzMzI4OiBpcnEgaGFuZGxlciBwcm9ibGVtIVxuIik7CiAJCWlmICh3aGljaCAmIElSUV9QTEFZX1NPTUVUSElORykKLQkJCXNuZF9hemYzMzI4X2RiZ3BsYXkoImF6dDMzMjg6IHVua25vd24gcGxheSBJUlEgdHlwZSBvY2N1cnJlZCwgcGxlYXNlIHJlcG9ydCFcbiIpOworCQkJc25kX2F6ZjMzMjhfaXJxX2xvZ191bmtub3duX3R5cGUod2hpY2gpOwogCX0KIAlpZiAoc3RhdHVzICYgSVJRX1JFQ09SRElORykgewogICAgICAgICAgICAgICAgIHNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOwpAQCAtMTI0OSwxNiArMTY1NywyMyBAQAogCQlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19SRUNfSVJRVFlQRSwgd2hpY2gpOwogCQlzcGluX3VubG9jaygmY2hpcC0+cmVnX2xvY2spOwogCi0JCWlmIChjaGlwLT5wY20gJiYgY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0pIHsKLQkJCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoY2hpcC0+Y2FwdHVyZV9zdWJzdHJlYW0pOworCQlpZiAoY2hpcC0+cGNtICYmIGNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0uc3Vic3RyZWFtKSB7CisJCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKAorCQkJCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfQ0FQVFVSRV0uc3Vic3RyZWFtCisJCQkpOwogCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiUkVDICBwZXJpb2QgZG9uZSAoIyV4KSwgQCAleFxuIiwKIAkJCQl3aGljaCwKLQkJCQlpbmwoY2hpcC0+Y29kZWNfcG9ydCtJRFhfSU9fUkVDX0RNQV9DVVJSUE9TKSk7CisJCQkJc25kX2F6ZjMzMjhfY29kZWNfaW5sKAorCQkJCQljaGlwLCBJRFhfSU9fUkVDX0RNQV9DVVJSUE9TCisJCQkJKQorCQkJKTsKIAkJfSBlbHNlCi0JCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJhenQzMzI4OiBvdWNoLCBpcnEgaGFuZGxlciBwcm9ibGVtIVxuIik7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJhenQzMzI4OiBpcnEgaGFuZGxlciBwcm9ibGVtIVxuIik7CiAJCWlmICh3aGljaCAmIElSUV9SRUNfU09NRVRISU5HKQotCQkJc25kX2F6ZjMzMjhfZGJncGxheSgiYXp0MzMyODogdW5rbm93biByZWMgSVJRIHR5cGUgb2NjdXJyZWQsIHBsZWFzZSByZXBvcnQhXG4iKTsKKwkJCXNuZF9hemYzMzI4X2lycV9sb2dfdW5rbm93bl90eXBlKHdoaWNoKTsKIAl9CisJaWYgKHN0YXR1cyAmIElSUV9HQU1FUE9SVCkKKwkJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfaW50ZXJydXB0KGNoaXApOwogCS8qIE1QVTQwMSBoYXMgbGVzcyBjcml0aWNhbCBJUlEgcmVxdWlyZW1lbnRzCiAJICogdGhhbiB0aW1lciBhbmQgcGxheWJhY2svcmVjb3JkaW5nLCByaWdodD8gKi8KIAlpZiAoc3RhdHVzICYgSVJRX01QVTQwMSkgewpAQCAtMTI2OCw3ICsxNjgzLDYgQEAKIAkJICogSWYgc28sIHRoZW4gSSBkb24ndCBrbm93IGhvdy4uLiAqLwogCQlzbmRfYXpmMzMyOF9kYmdwbGF5KCJhenQzMzI4OiBNUFU0MDEgSVJRXG4iKTsKIAl9Ci0JaXJxX2NvdW50Kys7CiAJcmV0dXJuIElSUV9IQU5ETEVEOwogfQogCkBAIC0xMjg3LDggKzE3MDEsOCBAQAogCS5yYXRlcyA9CQlTTkRSVl9QQ01fUkFURV81NTEyIHwKIAkJCQlTTkRSVl9QQ01fUkFURV84MDAwXzQ4MDAwIHwKIAkJCQlTTkRSVl9QQ01fUkFURV9LTk9ULAotCS5yYXRlX21pbiA9CQk0MDAwLAotCS5yYXRlX21heCA9CQk2NjIwMCwKKwkucmF0ZV9taW4gPQkJQVpGX0ZSRVFfNDAwMCwKKwkucmF0ZV9tYXggPQkJQVpGX0ZSRVFfNjYyMDAsCiAJLmNoYW5uZWxzX21pbiA9CQkxLAogCS5jaGFubmVsc19tYXggPQkJMiwKIAkuYnVmZmVyX2J5dGVzX21heCA9CTY1NTM2LApAQCAtMTMxNSw4ICsxNzI5LDggQEAKIAkucmF0ZXMgPQkJU05EUlZfUENNX1JBVEVfNTUxMiB8CiAJCQkJU05EUlZfUENNX1JBVEVfODAwMF80ODAwMCB8CiAJCQkJU05EUlZfUENNX1JBVEVfS05PVCwKLQkucmF0ZV9taW4gPQkJNDAwMCwKLQkucmF0ZV9tYXggPQkJNjYyMDAsCisJLnJhdGVfbWluID0JCUFaRl9GUkVRXzQwMDAsCisJLnJhdGVfbWF4ID0JCUFaRl9GUkVRXzY2MjAwLAogCS5jaGFubmVsc19taW4gPQkJMSwKIAkuY2hhbm5lbHNfbWF4ID0JCTIsCiAJLmJ1ZmZlcl9ieXRlc19tYXggPQk2NTUzNiwKQEAgLTEzMjksMTAgKzE3NDMsMjQgQEAKIAogCiBzdGF0aWMgdW5zaWduZWQgaW50IHNuZF9hemYzMzI4X2ZpeGVkX3JhdGVzW10gPSB7Ci0JNDAwMCwgNDgwMCwgNTUxMiwgNjYyMCwgODAwMCwgOTYwMCwgMTEwMjUsIDEzMjQwLCAxNjAwMCwgMjIwNTAsIDMyMDAwLAotCTQ0MTAwLCA0ODAwMCwgNjYyMDAgfTsKKwlBWkZfRlJFUV80MDAwLAorCUFaRl9GUkVRXzQ4MDAsCisJQVpGX0ZSRVFfNTUxMiwKKwlBWkZfRlJFUV82NjIwLAorCUFaRl9GUkVRXzgwMDAsCisJQVpGX0ZSRVFfOTYwMCwKKwlBWkZfRlJFUV8xMTAyNSwKKwlBWkZfRlJFUV8xMzI0MCwKKwlBWkZfRlJFUV8xNjAwMCwKKwlBWkZfRlJFUV8yMjA1MCwKKwlBWkZfRlJFUV8zMjAwMCwKKwlBWkZfRlJFUV80NDEwMCwKKwlBWkZfRlJFUV80ODAwMCwKKwlBWkZfRlJFUV82NjIwMAorfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbGlzdCBzbmRfYXpmMzMyOF9od19jb25zdHJhaW50c19yYXRlcyA9IHsKLQkuY291bnQgPSBBUlJBWV9TSVpFKHNuZF9hemYzMzI4X2ZpeGVkX3JhdGVzKSwgCisJLmNvdW50ID0gQVJSQVlfU0laRShzbmRfYXpmMzMyOF9maXhlZF9yYXRlcyksCiAJLmxpc3QgPSBzbmRfYXpmMzMyOF9maXhlZF9yYXRlcywKIAkubWFzayA9IDAsCiB9OwpAQCAtMTM0Niw3ICsxNzc0LDcgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+cGxheWJhY2tfc3Vic3RyZWFtID0gc3Vic3RyZWFtOworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKIAlydW50aW1lLT5odyA9IHNuZF9hemYzMzI4X3BsYXliYWNrOwogCXNuZF9wY21faHdfY29uc3RyYWludF9saXN0KHJ1bnRpbWUsIDAsIFNORFJWX1BDTV9IV19QQVJBTV9SQVRFLAogCQkJCSAgICZzbmRfYXpmMzMyOF9od19jb25zdHJhaW50c19yYXRlcyk7CkBAIC0xMzYxLDcgKzE3ODksNyBAQAogCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKLQljaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX0NBUFRVUkVdLnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKIAlydW50aW1lLT5odyA9IHNuZF9hemYzMzI4X2NhcHR1cmU7CiAJc25kX3BjbV9od19jb25zdHJhaW50X2xpc3QocnVudGltZSwgMCwgU05EUlZfUENNX0hXX1BBUkFNX1JBVEUsCiAJCQkJICAgJnNuZF9hemYzMzI4X2h3X2NvbnN0cmFpbnRzX3JhdGVzKTsKQEAgLTEzNzUsNyArMTgwMyw3IEBACiAJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gc25kX3BjbV9zdWJzdHJlYW1fY2hpcChzdWJzdHJlYW0pOwogCiAJc25kX2F6ZjMzMjhfZGJnY2FsbGVudGVyKCk7Ci0JY2hpcC0+cGxheWJhY2tfc3Vic3RyZWFtID0gTlVMTDsKKwljaGlwLT5hdWRpb19zdHJlYW1bQVpGX1BMQVlCQUNLXS5zdWJzdHJlYW0gPSBOVUxMOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwogfQpAQCAtMTM4Niw3ICsxODE0LDcgQEAKIAlzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAgPSBzbmRfcGNtX3N1YnN0cmVhbV9jaGlwKHN1YnN0cmVhbSk7CiAKIAlzbmRfYXpmMzMyOF9kYmdjYWxsZW50ZXIoKTsKLQljaGlwLT5jYXB0dXJlX3N1YnN0cmVhbSA9IE5VTEw7CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9DQVBUVVJFXS5zdWJzdHJlYW0gPSBOVUxMOwogCXNuZF9hemYzMzI4X2RiZ2NhbGxsZWF2ZSgpOwogCXJldHVybiAwOwogfQpAQCAtMTQ0MSwxMDIgKzE4NjksOCBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0jaWZkZWYgU1VQUE9SVF9KT1lTVElDSwotc3RhdGljIGludCBfX2RldmluaXQKLXNuZF9hemYzMzI4X2NvbmZpZ19qb3lzdGljayhzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBkZXYpCi17Ci0Jc3RydWN0IGdhbWVwb3J0ICpncDsKLQlzdHJ1Y3QgcmVzb3VyY2UgKnI7Ci0KLQlpZiAoIWpveXN0aWNrW2Rldl0pCi0JCXJldHVybiAtRU5PREVWOwotCi0JaWYgKCEociA9IHJlcXVlc3RfcmVnaW9uKDB4MjAwLCA4LCAiQVpGMzMyOCBnYW1lcG9ydCIpKSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJhenQzMzI4OiBjYW5ub3QgcmVzZXJ2ZSBqb3lzdGljayBwb3J0c1xuIik7Ci0JCXJldHVybiAtRUJVU1k7Ci0JfQotCi0JY2hpcC0+Z2FtZXBvcnQgPSBncCA9IGdhbWVwb3J0X2FsbG9jYXRlX3BvcnQoKTsKLQlpZiAoIWdwKSB7Ci0JCXByaW50ayhLRVJOX0VSUiAiYXp0MzMyODogY2Fubm90IGFsbG9jYXRlIG1lbW9yeSBmb3IgZ2FtZXBvcnRcbiIpOwotCQlyZWxlYXNlX2FuZF9mcmVlX3Jlc291cmNlKHIpOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KLQlnYW1lcG9ydF9zZXRfbmFtZShncCwgIkFaRjMzMjggR2FtZXBvcnQiKTsKLQlnYW1lcG9ydF9zZXRfcGh5cyhncCwgInBjaSVzL2dhbWVwb3J0MCIsIHBjaV9uYW1lKGNoaXAtPnBjaSkpOwotCWdhbWVwb3J0X3NldF9kZXZfcGFyZW50KGdwLCAmY2hpcC0+cGNpLT5kZXYpOwotCWdwLT5pbyA9IDB4MjAwOwotCWdhbWVwb3J0X3NldF9wb3J0X2RhdGEoZ3AsIHIpOwotCi0Jc25kX2F6ZjMzMjhfaW8yX291dGIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUiwKLQkJCSAgICAgIHNuZF9hemYzMzI4X2lvMl9pbmIoY2hpcCwgSURYX0lPMl9MRUdBQ1lfQUREUikgfCBMRUdBQ1lfSk9ZKTsKLQotCWdhbWVwb3J0X3JlZ2lzdGVyX3BvcnQoY2hpcC0+Z2FtZXBvcnQpOwotCi0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyB2b2lkCi1zbmRfYXpmMzMyOF9mcmVlX2pveXN0aWNrKHN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCkKLXsKLQlpZiAoY2hpcC0+Z2FtZXBvcnQpIHsKLQkJc3RydWN0IHJlc291cmNlICpyID0gZ2FtZXBvcnRfZ2V0X3BvcnRfZGF0YShjaGlwLT5nYW1lcG9ydCk7Ci0KLQkJZ2FtZXBvcnRfdW5yZWdpc3Rlcl9wb3J0KGNoaXAtPmdhbWVwb3J0KTsKLQkJY2hpcC0+Z2FtZXBvcnQgPSBOVUxMOwotCQkvKiBkaXNhYmxlIGdhbWVwb3J0ICovCi0JCXNuZF9hemYzMzI4X2lvMl9vdXRiKGNoaXAsIElEWF9JTzJfTEVHQUNZX0FERFIsCi0JCQkJICAgICAgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCBJRFhfSU8yX0xFR0FDWV9BRERSKSAmIH5MRUdBQ1lfSk9ZKTsKLQkJcmVsZWFzZV9hbmRfZnJlZV9yZXNvdXJjZShyKTsKLQl9Ci19Ci0jZWxzZQotc3RhdGljIGlubGluZSBpbnQKLXNuZF9hemYzMzI4X2NvbmZpZ19qb3lzdGljayhzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXAsIGludCBkZXYpIHsgcmV0dXJuIC1FTk9TWVM7IH0KLXN0YXRpYyBpbmxpbmUgdm9pZAotc25kX2F6ZjMzMjhfZnJlZV9qb3lzdGljayhzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApIHsgfQotI2VuZGlmCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBpbnQKLXNuZF9hemYzMzI4X2ZyZWUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQotewotICAgICAgICBpZiAoY2hpcC0+aXJxIDwgMCkKLSAgICAgICAgICAgICAgICBnb3RvIF9fZW5kX2h3OwotCi0JLyogcmVzZXQgKGNsb3NlKSBtaXhlciAqLwotCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9QTEFZX01BU1RFUiwgMSk7IC8qIGZpcnN0IG11dGUgbWFzdGVyIHZvbHVtZSAqLwotCXNuZF9hemYzMzI4X21peGVyX291dHcoY2hpcCwgSURYX01JWEVSX1JFU0VULCAweDAwMDApOwotCi0gICAgICAgIC8qIGludGVycnVwdCBzZXR1cCAtIG1hc2sgZXZlcnl0aGluZyAoRklYTUUhKSAqLwotCS8qIHdlbGwsIGF0IGxlYXN0IHdlIGtub3cgaG93IHRvIGRpc2FibGUgdGhlIHRpbWVyIElSUSAqLwotCXNuZF9hemYzMzI4X2NvZGVjX291dGIoY2hpcCwgSURYX0lPX1RJTUVSX1ZBTFVFICsgMywgMHgwMCk7Ci0KLQlpZiAoY2hpcC0+aXJxID49IDApCi0gICAgICAgIAlzeW5jaHJvbml6ZV9pcnEoY2hpcC0+aXJxKTsKLV9fZW5kX2h3OgotCXNuZF9hemYzMzI4X2ZyZWVfam95c3RpY2soY2hpcCk7Ci0gICAgICAgIGlmIChjaGlwLT5pcnEgPj0gMCkKLQkJZnJlZV9pcnEoY2hpcC0+aXJxLCBjaGlwKTsKLQlwY2lfcmVsZWFzZV9yZWdpb25zKGNoaXAtPnBjaSk7Ci0JcGNpX2Rpc2FibGVfZGV2aWNlKGNoaXAtPnBjaSk7Ci0KLSAgICAgICAga2ZyZWUoY2hpcCk7Ci0gICAgICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci1zbmRfYXpmMzMyOF9kZXZfZnJlZShzdHJ1Y3Qgc25kX2RldmljZSAqZGV2aWNlKQotewotCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGRldmljZS0+ZGV2aWNlX2RhdGE7Ci0JcmV0dXJuIHNuZF9hemYzMzI4X2ZyZWUoY2hpcCk7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qKiogTk9URTogdGhlIHBoeXNpY2FsIHRpbWVyIHJlc29sdXRpb24gYWN0dWFsbHkgaXMgMTAyNDAwMCB0aWNrcyBwZXIgc2Vjb25kLAorLyoqKiBOT1RFOiB0aGUgcGh5c2ljYWwgdGltZXIgcmVzb2x1dGlvbiBhY3R1YWxseSBpcyAxMDI0MDAwIHRpY2tzIHBlciBzZWNvbmQKKyAqKiogKHByb2JhYmx5IGRlcml2ZWQgZnJvbSBtYWluIGNyeXN0YWwgdmlhIGEgZGl2aWRlciBvZiAyNCksCiAgKioqIGJ1dCBhbm5vdW5jaW5nIHRob3NlIGF0dHJpYnV0ZXMgdG8gdXNlci1zcGFjZSB3b3VsZCBtYWtlIHByb2dyYW1zCiAgKioqIGNvbmZpZ3VyZSB0aGUgdGltZXIgdG8gYSAxIHRpY2sgdmFsdWUsIHJlc3VsdGluZyBpbiBhbiBhYnNvbHV0ZWx5IGZhdGFsCiAgKioqIHRpbWVyIElSUSBzdG9ybS4KQEAgLTE1NjQsNyArMTg5OCw3IEBACiAJCWRlbGF5ID0gNDk7IC8qIG1pbmltdW0gdGltZSBpcyA0OSB0aWNrcyAqLwogCX0KIAlzbmRfYXpmMzMyOF9kYmd0aW1lcigic2V0dGluZyB0aW1lciBjb3VudGRvd24gdmFsdWUgJWQsIGFkZCBDT1VOVERPV058SVJRXG4iLCBkZWxheSk7Ci0JZGVsYXkgfD0gVElNRVJfRU5BQkxFX0NPVU5URE9XTiB8IFRJTUVSX0VOQUJMRV9JUlE7CisJZGVsYXkgfD0gVElNRVJfQ09VTlRET1dOX0VOQUJMRSB8IFRJTUVSX0lSUV9FTkFCTEU7CiAJc3Bpbl9sb2NrX2lycXNhdmUoJmNoaXAtPnJlZ19sb2NrLCBmbGFncyk7CiAJc25kX2F6ZjMzMjhfY29kZWNfb3V0bChjaGlwLCBJRFhfSU9fVElNRVJfVkFMVUUsIGRlbGF5KTsKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwpAQCAtMTU4Miw3ICsxOTE2LDcgQEAKIAljaGlwID0gc25kX3RpbWVyX2NoaXAodGltZXIpOwogCXNwaW5fbG9ja19pcnFzYXZlKCZjaGlwLT5yZWdfbG9jaywgZmxhZ3MpOwogCS8qIGRpc2FibGUgdGltZXIgY291bnRkb3duIGFuZCBpbnRlcnJ1cHQgKi8KLQkvKiBGSVhNRTogc2hvdWxkIHdlIHdyaXRlIFRJTUVSX0FDS19JUlEgaGVyZT8gKi8KKwkvKiBGSVhNRTogc2hvdWxkIHdlIHdyaXRlIFRJTUVSX0lSUV9BQ0sgaGVyZT8gKi8KIAlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19USU1FUl9WQUxVRSArIDMsIDApOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmNoaXAtPnJlZ19sb2NrLCBmbGFncyk7CiAJc25kX2F6ZjMzMjhfZGJnY2FsbGxlYXZlKCk7CkBAIC0xNjI2LDkgKzE5NjAsMTAgQEAKIAogCXNuZF9hemYzMzI4X3RpbWVyX2h3LnJlc29sdXRpb24gKj0gc2VxdGltZXJfc2NhbGluZzsKIAlzbmRfYXpmMzMyOF90aW1lcl9ody50aWNrcyAvPSBzZXF0aW1lcl9zY2FsaW5nOwotCWlmICgoZXJyID0gc25kX3RpbWVyX25ldyhjaGlwLT5jYXJkLCAiQVpGMzMyOCIsICZ0aWQsICZ0aW1lcikpIDwgMCkgeworCisJZXJyID0gc25kX3RpbWVyX25ldyhjaGlwLT5jYXJkLCAiQVpGMzMyOCIsICZ0aWQsICZ0aW1lcik7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0OwotCX0KIAogCXN0cmNweSh0aW1lci0+bmFtZSwgIkFaRjMzMjggdGltZXIiKTsKIAl0aW1lci0+cHJpdmF0ZV9kYXRhID0gY2hpcDsKQEAgLTE2MzYsNiArMTk3MSw4IEBACiAKIAljaGlwLT50aW1lciA9IHRpbWVyOwogCisJc25kX2F6ZjMzMjhfdGltZXJfc3RvcCh0aW1lcik7CisKIAllcnIgPSAwOwogCiBvdXQ6CkBAIC0xNjQ1LDEwICsxOTgyLDQ0IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X2ZyZWUoc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKQoreworCWlmIChjaGlwLT5pcnEgPCAwKQorCQlnb3RvIF9fZW5kX2h3OworCisJLyogcmVzZXQgKGNsb3NlKSBtaXhlcjoKKwkgKiBmaXJzdCBtdXRlIG1hc3RlciB2b2x1bWUsIHRoZW4gcmVzZXQKKwkgKi8KKwlzbmRfYXpmMzMyOF9taXhlcl9zZXRfbXV0ZShjaGlwLCBJRFhfTUlYRVJfUExBWV9NQVNURVIsIDEpOworCXNuZF9hemYzMzI4X21peGVyX291dHcoY2hpcCwgSURYX01JWEVSX1JFU0VULCAweDAwMDApOworCisJc25kX2F6ZjMzMjhfdGltZXJfc3RvcChjaGlwLT50aW1lcik7CisJc25kX2F6ZjMzMjhfZ2FtZXBvcnRfZnJlZShjaGlwKTsKKworCWlmIChjaGlwLT5pcnEgPj0gMCkKKwkJc3luY2hyb25pemVfaXJxKGNoaXAtPmlycSk7CitfX2VuZF9odzoKKwlpZiAoY2hpcC0+aXJxID49IDApCisJCWZyZWVfaXJxKGNoaXAtPmlycSwgY2hpcCk7CisJcGNpX3JlbGVhc2VfcmVnaW9ucyhjaGlwLT5wY2kpOworCXBjaV9kaXNhYmxlX2RldmljZShjaGlwLT5wY2kpOworCisJa2ZyZWUoY2hpcCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3NuZF9hemYzMzI4X2Rldl9mcmVlKHN0cnVjdCBzbmRfZGV2aWNlICpkZXZpY2UpCit7CisJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gZGV2aWNlLT5kZXZpY2VfZGF0YTsKKwlyZXR1cm4gc25kX2F6ZjMzMjhfZnJlZShjaGlwKTsKK30KKwogI2lmIDAKIC8qIGNoZWNrIHdoZXRoZXIgYSBiaXQgY2FuIGJlIG1vZGlmaWVkICovCiBzdGF0aWMgdm9pZAotc25kX2F6ZjMzMjhfdGVzdF9iaXQodW5zaWduZWQgaW50IHJlZywgaW50IGJpdCkKK3NuZF9hemYzMzI4X3Rlc3RfYml0KHVuc2lnbmVkIHVuc2lnbmVkIHJlZywgaW50IGJpdCkKIHsKIAl1bnNpZ25lZCBjaGFyIHZhbCwgdmFsb2ZmLCB2YWxvbjsKIApAQCAtMTY1OSw0MiArMjAzMCw3NCBAQAogCiAJb3V0Yih2YWx8KDEgPDwgYml0KSwgcmVnKTsKIAl2YWxvbiA9IGluYihyZWcpOwotCQorCiAJb3V0Yih2YWwsIHJlZyk7CiAKLQlwcmludGsoS0VSTl9FUlIgInJlZyAlMDR4IGJpdCAlZDogJTAyeCAlMDJ4ICUwMnhcbiIsIHJlZywgYml0LCB2YWwsIHZhbG9mZiwgdmFsb24pOworCXByaW50ayhLRVJOX0VSUiAicmVnICUwNHggYml0ICVkOiAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJCQlyZWcsIGJpdCwgdmFsLCB2YWxvZmYsIHZhbG9uCisJKTsKIH0KICNlbmRpZgogCi0jaWYgREVCVUdfTUlTQwotc3RhdGljIHZvaWQKK3N0YXRpYyBpbmxpbmUgdm9pZAogc25kX2F6ZjMzMjhfZGVidWdfc2hvd19wb3J0cyhjb25zdCBzdHJ1Y3Qgc25kX2F6ZjMzMjggKmNoaXApCiB7CisjaWYgREVCVUdfTUlTQwogCXUxNiB0bXA7CiAKLQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJjb2RlY19wb3J0IDB4JWx4LCBpbzJfcG9ydCAweCVseCwgbXB1X3BvcnQgMHglbHgsIHN5bnRoX3BvcnQgMHglbHgsIG1peGVyX3BvcnQgMHglbHgsIGlycSAlZFxuIiwgY2hpcC0+Y29kZWNfcG9ydCwgY2hpcC0+aW8yX3BvcnQsIGNoaXAtPm1wdV9wb3J0LCBjaGlwLT5zeW50aF9wb3J0LCBjaGlwLT5taXhlcl9wb3J0LCBjaGlwLT5pcnEpOworCXNuZF9hemYzMzI4X2RiZ21pc2MoCisJCSJjb2RlY19pbyAweCVseCwgZ2FtZV9pbyAweCVseCwgbXB1X2lvIDB4JWx4LCAiCisJCSJvcGwzX2lvIDB4JWx4LCBtaXhlcl9pbyAweCVseCwgaXJxICVkXG4iLAorCQljaGlwLT5jb2RlY19pbywgY2hpcC0+Z2FtZV9pbywgY2hpcC0+bXB1X2lvLAorCQljaGlwLT5vcGwzX2lvLCBjaGlwLT5taXhlcl9pbywgY2hpcC0+aXJxCisJKTsKIAotCXNuZF9hemYzMzI4X2RiZ21pc2MoImlvMiAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCAwKSwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCAxKSwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCAyKSwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCAzKSwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCA0KSwgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCA1KSk7CisJc25kX2F6ZjMzMjhfZGJnbWlzYygiZ2FtZSAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeFxuIiwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgMCksCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDEpLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCAyKSwKKwkJc25kX2F6ZjMzMjhfZ2FtZV9pbmIoY2hpcCwgMyksCisJCXNuZF9hemYzMzI4X2dhbWVfaW5iKGNoaXAsIDQpLAorCQlzbmRfYXpmMzMyOF9nYW1lX2luYihjaGlwLCA1KQorCSk7CiAKLQlmb3IgKHRtcD0wOyB0bXAgPD0gMHgwMTsgdG1wICs9IDEpCi0JCXNuZF9hemYzMzI4X2RiZ21pc2MoIjB4JTAyeDogb3BsIDB4JTA0eCwgbXB1MzAwIDB4JTA0eCwgbXB1MzEwIDB4JTA0eCwgbXB1MzIwIDB4JTA0eCwgbXB1MzMwIDB4JTA0eFxuIiwgdG1wLCBpbmIoMHgzODggKyB0bXApLCBpbmIoMHgzMDAgKyB0bXApLCBpbmIoMHgzMTAgKyB0bXApLCBpbmIoMHgzMjAgKyB0bXApLCBpbmIoMHgzMzAgKyB0bXApKTsKKwlmb3IgKHRtcCA9IDA7IHRtcCA8IDB4MDc7IHRtcCArPSAxKQorCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJtcHVfaW8gMHglMDR4XG4iLCBpbmIoY2hpcC0+bXB1X2lvICsgdG1wKSk7CisKKwlmb3IgKHRtcCA9IDA7IHRtcCA8PSAweDA3OyB0bXAgKz0gMSkKKwkJc25kX2F6ZjMzMjhfZGJnbWlzYygiMHglMDJ4OiBnYW1lMjAwIDB4JTA0eCwgZ2FtZTIwOCAweCUwNHhcbiIsCisJCQl0bXAsIGluYigweDIwMCArIHRtcCksIGluYigweDIwOCArIHRtcCkpOworCisJZm9yICh0bXAgPSAwOyB0bXAgPD0gMHgwMTsgdG1wICs9IDEpCisJCXNuZF9hemYzMzI4X2RiZ21pc2MoCisJCQkiMHglMDJ4OiBtcHUzMDAgMHglMDR4LCBtcHUzMTAgMHglMDR4LCBtcHUzMjAgMHglMDR4LCAiCisJCQkibXB1MzMwIDB4JTA0eCBvcGwzODggMHglMDR4IG9wbDM4YyAweCUwNHhcbiIsCisJCQkJdG1wLAorCQkJCWluYigweDMwMCArIHRtcCksCisJCQkJaW5iKDB4MzEwICsgdG1wKSwKKwkJCQlpbmIoMHgzMjAgKyB0bXApLAorCQkJCWluYigweDMzMCArIHRtcCksCisJCQkJaW5iKDB4Mzg4ICsgdG1wKSwKKwkJCQlpbmIoMHgzOGMgKyB0bXApCisJCSk7CiAKIAlmb3IgKHRtcCA9IDA7IHRtcCA8IEFaRl9JT19TSVpFX0NPREVDOyB0bXAgKz0gMikKLQkJc25kX2F6ZjMzMjhfZGJnbWlzYygiY29kZWMgMHglMDJ4OiAweCUwNHhcbiIsIHRtcCwgc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIHRtcCkpOworCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJjb2RlYyAweCUwMng6IDB4JTA0eFxuIiwKKwkJCXRtcCwgc25kX2F6ZjMzMjhfY29kZWNfaW53KGNoaXAsIHRtcCkKKwkJKTsKIAogCWZvciAodG1wID0gMDsgdG1wIDwgQVpGX0lPX1NJWkVfTUlYRVI7IHRtcCArPSAyKQotCQlzbmRfYXpmMzMyOF9kYmdtaXNjKCJtaXhlciAweCUwMng6IDB4JTA0eFxuIiwgdG1wLCBzbmRfYXpmMzMyOF9taXhlcl9pbncoY2hpcCwgdG1wKSk7CisJCXNuZF9hemYzMzI4X2RiZ21pc2MoIm1peGVyIDB4JTAyeDogMHglMDR4XG4iLAorCQkJdG1wLCBzbmRfYXpmMzMyOF9taXhlcl9pbncoY2hpcCwgdG1wKQorCQkpOworI2VuZGlmIC8qIERFQlVHX01JU0MgKi8KIH0KLSNlbHNlCi1zdGF0aWMgaW5saW5lIHZvaWQKLXNuZF9hemYzMzI4X2RlYnVnX3Nob3dfcG9ydHMoY29uc3Qgc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwKSB7fQotI2VuZGlmCiAKIHN0YXRpYyBpbnQgX19kZXZpbml0CiBzbmRfYXpmMzMyOF9jcmVhdGUoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGNpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRldmljZV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc25kX2F6ZjMzMjggKiogcmNoaXApCisJCSAgIHN0cnVjdCBwY2lfZGV2ICpwY2ksCisJCSAgIHVuc2lnbmVkIGxvbmcgZGV2aWNlX3R5cGUsCisJCSAgIHN0cnVjdCBzbmRfYXpmMzMyOCAqKnJjaGlwKQogewogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcDsKIAlpbnQgZXJyOwpAQCAtMTcwNSw3ICsyMTA4LDggQEAKIAogCSpyY2hpcCA9IE5VTEw7CiAKLQlpZiAoKGVyciA9IHBjaV9lbmFibGVfZGV2aWNlKHBjaSkpIDwgMCkKKwllcnIgPSBwY2lfZW5hYmxlX2RldmljZShwY2kpOworCWlmIChlcnIgPCAwKQogCQlyZXR1cm4gZXJyOwogCiAJY2hpcCA9IGt6YWxsb2Moc2l6ZW9mKCpjaGlwKSwgR0ZQX0tFUk5FTCk7CkBAIC0xNzIxLDIwICsyMTI1LDI1IEBACiAJLyogY2hlY2sgaWYgd2UgY2FuIHJlc3RyaWN0IFBDSSBETUEgdHJhbnNmZXJzIHRvIDI0IGJpdHMgKi8KIAlpZiAocGNpX3NldF9kbWFfbWFzayhwY2ksIERNQV8yNEJJVF9NQVNLKSA8IDAgfHwKIAkgICAgcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKHBjaSwgRE1BXzI0QklUX01BU0spIDwgMCkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhcmNoaXRlY3R1cmUgZG9lcyBub3Qgc3VwcG9ydCAyNGJpdCBQQ0kgYnVzbWFzdGVyIERNQVxuIik7CisJCXNuZF9wcmludGsoS0VSTl9FUlIgImFyY2hpdGVjdHVyZSBkb2VzIG5vdCBzdXBwb3J0ICIKKwkJCQkJIjI0Yml0IFBDSSBidXNtYXN0ZXIgRE1BXG4iCisJCSk7CiAJCWVyciA9IC1FTlhJTzsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWlmICgoZXJyID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwY2ksICJBenRlY2ggQVpGMzMyOCIpKSA8IDApIHsKKwllcnIgPSBwY2lfcmVxdWVzdF9yZWdpb25zKHBjaSwgIkF6dGVjaCBBWkYzMzI4Iik7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKLQljaGlwLT5jb2RlY19wb3J0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMCk7Ci0JY2hpcC0+aW8yX3BvcnQgICA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDEpOwotCWNoaXAtPm1wdV9wb3J0ICAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAyKTsKLQljaGlwLT5zeW50aF9wb3J0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMyk7Ci0JY2hpcC0+bWl4ZXJfcG9ydCA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDQpOworCWNoaXAtPmNvZGVjX2lvID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMCk7CisJY2hpcC0+Z2FtZV9pbyAgPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAxKTsKKwljaGlwLT5tcHVfaW8gICA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDIpOworCWNoaXAtPm9wbDNfaW8gPSBwY2lfcmVzb3VyY2Vfc3RhcnQocGNpLCAzKTsKKwljaGlwLT5taXhlcl9pbyA9IHBjaV9yZXNvdXJjZV9zdGFydChwY2ksIDQpOworCisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9QTEFZQkFDS10ucG9ydGJhc2UgPSBjaGlwLT5jb2RlY19pbyArIDB4MDA7CisJY2hpcC0+YXVkaW9fc3RyZWFtW0FaRl9DQVBUVVJFXS5wb3J0YmFzZSAgID0gY2hpcC0+Y29kZWNfaW8gKyAweDIwOwogCiAJaWYgKHJlcXVlc3RfaXJxKHBjaS0+aXJxLCBzbmRfYXpmMzMyOF9pbnRlcnJ1cHQsCiAJCQlJUlFGX1NIQVJFRCwgY2FyZC0+c2hvcnRuYW1lLCBjaGlwKSkgewpAQCAtMTc0NywyOSArMjE1NiwyOSBAQAogCXN5bmNocm9uaXplX2lycShjaGlwLT5pcnEpOwogCiAJc25kX2F6ZjMzMjhfZGVidWdfc2hvd19wb3J0cyhjaGlwKTsKLQkKLQlpZiAoKGVyciA9IHNuZF9kZXZpY2VfbmV3KGNhcmQsIFNORFJWX0RFVl9MT1dMRVZFTCwgY2hpcCwgJm9wcykpIDwgMCkgeworCisJZXJyID0gc25kX2RldmljZV9uZXcoY2FyZCwgU05EUlZfREVWX0xPV0xFVkVMLCBjaGlwLCAmb3BzKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwotCX0KIAogCS8qIGNyZWF0ZSBtaXhlciBpbnRlcmZhY2UgJiBzd2l0Y2hlcyAqLwotCWlmICgoZXJyID0gc25kX2F6ZjMzMjhfbWl4ZXJfbmV3KGNoaXApKSA8IDApCisJZXJyID0gc25kX2F6ZjMzMjhfbWl4ZXJfbmV3KGNoaXApOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7CiAKLSNpZiAwCi0JLyogc2V0IHZlcnkgbG93IGJpdHJhdGUgdG8gcmVkdWNlIG5vaXNlIGFuZCBwb3dlciBjb25zdW1wdGlvbj8gKi8KLQlzbmRfYXpmMzMyOF9zZXRmbXQoY2hpcCwgSURYX0lPX1BMQVlfU09VTkRGT1JNQVQsIDU1MTIsIDgsIDEpOwotI2VuZGlmCisJLyogc2h1dGRvd24gY29kZWNzIHRvIHNhdmUgcG93ZXIgKi8KKwkJLyogaGF2ZSBzbmRfYXpmMzMyOF9jb2RlY19hY3Rpdml0eSgpIGFjdCBwcm9wZXJseSAqLworCWNoaXAtPmF1ZGlvX3N0cmVhbVtBWkZfUExBWUJBQ0tdLnJ1bm5pbmcgPSAxOworCXNuZF9hemYzMzI4X2NvZGVjX2FjdGl2aXR5KGNoaXAsIEFaRl9QTEFZQkFDSywgMCk7CiAKIAkvKiBzdGFuZGFyZCBjaGlwIGluaXQgc3R1ZmYgKi8KLQkvKiBkZWZhdWx0IElSUSBpbml0IHZhbHVlICovCisJCS8qIGRlZmF1bHQgSVJRIGluaXQgdmFsdWUgKi8KIAl0bXAgPSBETUFfUExBWV9TT01FVEhJTkcyfERNQV9FUElMT0dVRV9TT01FVEhJTkd8RE1BX1NPTUVUSElOR19FTFNFOwogCiAJc3Bpbl9sb2NrX2lycSgmY2hpcC0+cmVnX2xvY2spOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGIoY2hpcCwgSURYX0lPX1BMQVlfRkxBR1MsIHRtcCk7CiAJc25kX2F6ZjMzMjhfY29kZWNfb3V0YihjaGlwLCBJRFhfSU9fUkVDX0ZMQUdTLCB0bXApOwogCXNuZF9hemYzMzI4X2NvZGVjX291dGIoY2hpcCwgSURYX0lPX1NPTUVUSElOR19GTEFHUywgdG1wKTsKLQlzbmRfYXpmMzMyOF9jb2RlY19vdXRiKGNoaXAsIElEWF9JT19USU1FUl9WQUxVRSArIDMsIDB4MDApOyAvKiBkaXNhYmxlIHRpbWVyICovCiAJc3Bpbl91bmxvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CiAKIAlzbmRfY2FyZF9zZXRfZGV2KGNhcmQsICZwY2ktPmRldik7CkBAIC0xODA1LDUyICsyMjE0LDYxIEBACiAJCXJldHVybiAtRU5PRU5UOwogCX0KIAotCWNhcmQgPSBzbmRfY2FyZF9uZXcoaW5kZXhbZGV2XSwgaWRbZGV2XSwgVEhJU19NT0RVTEUsIDAgKTsKKwljYXJkID0gc25kX2NhcmRfbmV3KGluZGV4W2Rldl0sIGlkW2Rldl0sIFRISVNfTU9EVUxFLCAwKTsKIAlpZiAoY2FyZCA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCXN0cmNweShjYXJkLT5kcml2ZXIsICJBWkYzMzI4Iik7CiAJc3RyY3B5KGNhcmQtPnNob3J0bmFtZSwgIkF6dGVjaCBBWkYzMzI4IChQQ0kxNjgpIik7CiAKLSAgICAgICAgaWYgKChlcnIgPSBzbmRfYXpmMzMyOF9jcmVhdGUoY2FyZCwgcGNpLCBwY2lfaWQtPmRyaXZlcl9kYXRhLCAmY2hpcCkpIDwgMCkgeworCWVyciA9IHNuZF9hemYzMzI4X2NyZWF0ZShjYXJkLCBwY2ksIHBjaV9pZC0+ZHJpdmVyX2RhdGEsICZjaGlwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwotCX0KIAogCWNhcmQtPnByaXZhdGVfZGF0YSA9IGNoaXA7CiAKLQlpZiAoKGVyciA9IHNuZF9tcHU0MDFfdWFydF9uZXcoIGNhcmQsIDAsIE1QVTQwMV9IV19NUFU0MDEsCi0JCQkJICAgICAgICBjaGlwLT5tcHVfcG9ydCwgTVBVNDAxX0lORk9fSU5URUdSQVRFRCwKLQkJCQkJcGNpLT5pcnEsIDAsICZjaGlwLT5ybWlkaSkpIDwgMCkgewotCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBubyBNUFUtNDAxIGRldmljZSBhdCAweCVseD9cbiIsIGNoaXAtPm1wdV9wb3J0KTsKKwllcnIgPSBzbmRfbXB1NDAxX3VhcnRfbmV3KAorCQljYXJkLCAwLCBNUFU0MDFfSFdfTVBVNDAxLCBjaGlwLT5tcHVfaW8sIE1QVTQwMV9JTkZPX0lOVEVHUkFURUQsCisJCXBjaS0+aXJxLCAwLCAmY2hpcC0+cm1pZGkKKwkpOworCWlmIChlcnIgPCAwKSB7CisJCXNuZF9wcmludGsoS0VSTl9FUlIgImF6ZjMzMjg6IG5vIE1QVS00MDEgZGV2aWNlIGF0IDB4JWx4P1xuIiwKKwkJCQljaGlwLT5tcHVfaW8KKwkJKTsKIAkJZ290byBvdXRfZXJyOwogCX0KIAotCWlmICgoZXJyID0gc25kX2F6ZjMzMjhfdGltZXIoY2hpcCwgMCkpIDwgMCkgeworCWVyciA9IHNuZF9hemYzMzI4X3RpbWVyKGNoaXAsIDApOworCWlmIChlcnIgPCAwKQogCQlnb3RvIG91dF9lcnI7Ci0JfQogCi0JaWYgKChlcnIgPSBzbmRfYXpmMzMyOF9wY20oY2hpcCwgMCkpIDwgMCkgeworCWVyciA9IHNuZF9hemYzMzI4X3BjbShjaGlwLCAwKTsKKwlpZiAoZXJyIDwgMCkKIAkJZ290byBvdXRfZXJyOwotCX0KIAotCWlmIChzbmRfb3BsM19jcmVhdGUoY2FyZCwgY2hpcC0+c3ludGhfcG9ydCwgY2hpcC0+c3ludGhfcG9ydCsyLAorCWlmIChzbmRfb3BsM19jcmVhdGUoY2FyZCwgY2hpcC0+b3BsM19pbywgY2hpcC0+b3BsM19pbysyLAogCQkJICAgIE9QTDNfSFdfQVVUTywgMSwgJm9wbDMpIDwgMCkgewogCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJhemYzMzI4OiBubyBPUEwzIGRldmljZSBhdCAweCVseC0weCVseD9cbiIsCi0JCQkgICBjaGlwLT5zeW50aF9wb3J0LCBjaGlwLT5zeW50aF9wb3J0KzIgKTsKKwkJCSAgIGNoaXAtPm9wbDNfaW8sIGNoaXAtPm9wbDNfaW8rMgorCQkpOwogCX0gZWxzZSB7Ci0JCWlmICgoZXJyID0gc25kX29wbDNfaHdkZXBfbmV3KG9wbDMsIDAsIDEsIE5VTEwpKSA8IDApIHsKKwkJLyogbmVlZCB0byB1c2UgSURzIDEsIDIgc2luY2UgSUQgMCBpcyBzbmRfYXpmMzMyOF90aW1lciBhYm92ZSAqLworCQllcnIgPSBzbmRfb3BsM190aW1lcl9uZXcob3BsMywgMSwgMik7CisJCWlmIChlcnIgPCAwKQogCQkJZ290byBvdXRfZXJyOwotCQl9CisJCWVyciA9IHNuZF9vcGwzX2h3ZGVwX25ldyhvcGwzLCAwLCAxLCBOVUxMKTsKKwkJaWYgKGVyciA8IDApCisJCQlnb3RvIG91dF9lcnI7CiAJfQogCiAJb3BsMy0+cHJpdmF0ZV9kYXRhID0gY2hpcDsKIAogCXNwcmludGYoY2FyZC0+bG9uZ25hbWUsICIlcyBhdCAweCVseCwgaXJxICVpIiwKLQkJY2FyZC0+c2hvcnRuYW1lLCBjaGlwLT5jb2RlY19wb3J0LCBjaGlwLT5pcnEpOworCQljYXJkLT5zaG9ydG5hbWUsIGNoaXAtPmNvZGVjX2lvLCBjaGlwLT5pcnEpOwogCi0JaWYgKChlcnIgPSBzbmRfY2FyZF9yZWdpc3RlcihjYXJkKSkgPCAwKSB7CisJZXJyID0gc25kX2NhcmRfcmVnaXN0ZXIoY2FyZCk7CisJaWYgKGVyciA8IDApCiAJCWdvdG8gb3V0X2VycjsKLQl9CiAKICNpZmRlZiBNT0RVTEUKIAlwcmludGsoCkBAIC0xODYxLDE5ICsyMjc5LDE4IEBACiAJMTAyNDAwMCAvIHNlcXRpbWVyX3NjYWxpbmcsIHNlcXRpbWVyX3NjYWxpbmcpOwogI2VuZGlmCiAKLQlpZiAoc25kX2F6ZjMzMjhfY29uZmlnX2pveXN0aWNrKGNoaXAsIGRldikgPCAwKQotCQlzbmRfYXpmMzMyOF9pbzJfb3V0YihjaGlwLCBJRFhfSU8yX0xFR0FDWV9BRERSLAotCQkJICAgICAgc25kX2F6ZjMzMjhfaW8yX2luYihjaGlwLCBJRFhfSU8yX0xFR0FDWV9BRERSKSAmIH5MRUdBQ1lfSk9ZKTsKKwlzbmRfYXpmMzMyOF9nYW1lcG9ydChjaGlwLCBkZXYpOwogCiAJcGNpX3NldF9kcnZkYXRhKHBjaSwgY2FyZCk7CiAJZGV2Kys7CiAKIAllcnIgPSAwOwogCWdvdG8gb3V0OwotCQorCiBvdXRfZXJyOgorCXNuZF9wcmludGsoS0VSTl9FUlIgImF6ZjMzMjg6IHNvbWV0aGluZyBmYWlsZWQsIGV4aXRpbmdcbiIpOwogCXNuZF9jYXJkX2ZyZWUoY2FyZCk7Ci0JCisKIG91dDoKIAlzbmRfYXpmMzMyOF9kYmdjYWxsbGVhdmUoKTsKIAlyZXR1cm4gZXJyOwpAQCAtMTg5NCwyNyArMjMxMSwzMSBAQAogewogCXN0cnVjdCBzbmRfY2FyZCAqY2FyZCA9IHBjaV9nZXRfZHJ2ZGF0YShwY2kpOwogCXN0cnVjdCBzbmRfYXpmMzMyOCAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKLQlpbnQgcmVnOworCXVuc2lnbmVkIHJlZzsKIAogCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKLQkKKwogCXNuZF9wY21fc3VzcGVuZF9hbGwoY2hpcC0+cGNtKTsKIAotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTUlYRVJfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19taXhlcltyZWddID0gaW53KGNoaXAtPm1peGVyX3BvcnQgKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01JWEVSX1BNIC8gMjsgKytyZWcpCisJCWNoaXAtPnNhdmVkX3JlZ3NfbWl4ZXJbcmVnXSA9IGludyhjaGlwLT5taXhlcl9pbyArIHJlZyAqIDIpOwogCiAJLyogbWFrZSBzdXJlIHRvIGRpc2FibGUgbWFzdGVyIHZvbHVtZSBldGMuIHRvIHByZXZlbnQgbG9vcGluZyBzb3VuZCAqLwogCXNuZF9hemYzMzI4X21peGVyX3NldF9tdXRlKGNoaXAsIElEWF9NSVhFUl9QTEFZX01BU1RFUiwgMSk7CiAJc25kX2F6ZjMzMjhfbWl4ZXJfc2V0X211dGUoY2hpcCwgSURYX01JWEVSX1dBVkVPVVQsIDEpOwotCQotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19jb2RlY1tyZWddID0gaW53KGNoaXAtPmNvZGVjX3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0lPMl9QTSAvIDI7IHJlZysrKQotCQljaGlwLT5zYXZlZF9yZWdzX2lvMltyZWddID0gaW53KGNoaXAtPmlvMl9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19tcHVbcmVnXSA9IGludyhjaGlwLT5tcHVfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfU1lOVEhfUE0gLyAyOyByZWcrKykKLQkJY2hpcC0+c2F2ZWRfcmVnc19zeW50aFtyZWddID0gaW53KGNoaXAtPnN5bnRoX3BvcnQgKyByZWcgKiAyKTsKKworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfQ09ERUNfUE0gLyAyOyArK3JlZykKKwkJY2hpcC0+c2F2ZWRfcmVnc19jb2RlY1tyZWddID0gaW53KGNoaXAtPmNvZGVjX2lvICsgcmVnICogMik7CisKKwkvKiBtYW51YWxseSBzdG9yZSB0aGUgb25lIGN1cnJlbnRseSByZWxldmFudCB3cml0ZS1vbmx5IHJlZywgdG9vICovCisJY2hpcC0+c2F2ZWRfcmVnc19jb2RlY1tJRFhfSU9fNkFIIC8gMl0gPSBjaGlwLT5zaGFkb3dfcmVnX2NvZGVjXzZBSDsKKworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfR0FNRV9QTSAvIDI7ICsrcmVnKQorCQljaGlwLT5zYXZlZF9yZWdzX2dhbWVbcmVnXSA9IGludyhjaGlwLT5nYW1lX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NUFVfUE0gLyAyOyArK3JlZykKKwkJY2hpcC0+c2F2ZWRfcmVnc19tcHVbcmVnXSA9IGludyhjaGlwLT5tcHVfaW8gKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX09QTDNfUE0gLyAyOyArK3JlZykKKwkJY2hpcC0+c2F2ZWRfcmVnc19vcGwzW3JlZ10gPSBpbncoY2hpcC0+b3BsM19pbyArIHJlZyAqIDIpOwogCiAJcGNpX2Rpc2FibGVfZGV2aWNlKHBjaSk7CiAJcGNpX3NhdmVfc3RhdGUocGNpKTsKQEAgLTE5MjcsNyArMjM0OCw3IEBACiB7CiAJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGNpX2dldF9kcnZkYXRhKHBjaSk7CiAJc3RydWN0IHNuZF9hemYzMzI4ICpjaGlwID0gY2FyZC0+cHJpdmF0ZV9kYXRhOwotCWludCByZWc7CisJdW5zaWduZWQgcmVnOwogCiAJcGNpX3NldF9wb3dlcl9zdGF0ZShwY2ksIFBDSV9EMCk7CiAJcGNpX3Jlc3RvcmVfc3RhdGUocGNpKTsKQEAgLTE5MzksMjMgKzIzNjAsMjEgQEAKIAl9CiAJcGNpX3NldF9tYXN0ZXIocGNpKTsKIAotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfSU8yX1BNIC8gMjsgcmVnKyspCi0JCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19pbzJbcmVnXSwgY2hpcC0+aW8yX3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01QVV9QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10sIGNoaXAtPm1wdV9wb3J0ICsgcmVnICogMik7Ci0JZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9TWU5USF9QTSAvIDI7IHJlZysrKQotCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3Nfc3ludGhbcmVnXSwgY2hpcC0+c3ludGhfcG9ydCArIHJlZyAqIDIpOwotCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfTUlYRVJfUE0gLyAyOyByZWcrKykKLQkJb3V0dyhjaGlwLT5zYXZlZF9yZWdzX21peGVyW3JlZ10sIGNoaXAtPm1peGVyX3BvcnQgKyByZWcgKiAyKTsKLQlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgcmVnKyspCi0JCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19jb2RlY1tyZWddLCBjaGlwLT5jb2RlY19wb3J0ICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9HQU1FX1BNIC8gMjsgKytyZWcpCisJCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19nYW1lW3JlZ10sIGNoaXAtPmdhbWVfaW8gKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX01QVV9QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfbXB1W3JlZ10sIGNoaXAtPm1wdV9pbyArIHJlZyAqIDIpOworCWZvciAocmVnID0gMDsgcmVnIDwgQVpGX0lPX1NJWkVfT1BMM19QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3Nfb3BsM1tyZWddLCBjaGlwLT5vcGwzX2lvICsgcmVnICogMik7CisJZm9yIChyZWcgPSAwOyByZWcgPCBBWkZfSU9fU0laRV9NSVhFUl9QTSAvIDI7ICsrcmVnKQorCQlvdXR3KGNoaXAtPnNhdmVkX3JlZ3NfbWl4ZXJbcmVnXSwgY2hpcC0+bWl4ZXJfaW8gKyByZWcgKiAyKTsKKwlmb3IgKHJlZyA9IDA7IHJlZyA8IEFaRl9JT19TSVpFX0NPREVDX1BNIC8gMjsgKytyZWcpCisJCW91dHcoY2hpcC0+c2F2ZWRfcmVnc19jb2RlY1tyZWddLCBjaGlwLT5jb2RlY19pbyArIHJlZyAqIDIpOwogCiAJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjYXJkLCBTTkRSVl9DVExfUE9XRVJfRDApOwogCXJldHVybiAwOwogfQotI2VuZGlmCi0KLQorI2VuZGlmIC8qIENPTkZJR19QTSAqLwogCiAKIHN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBkcml2ZXIgPSB7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvYXp0MzMyOC5oIGIvc291bmQvcGNpL2F6dDMzMjguaAppbmRleCA2NzlmYTk5Li43ZTNlODk0IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvYXp0MzMyOC5oCisrKyBiL3NvdW5kL3BjaS9henQzMzI4LmgKQEAgLTEsNyArMSw4IEBACiAjaWZuZGVmIF9fU09VTkRfQVpUMzMyOF9ICiAjZGVmaW5lIF9fU09VTkRfQVpUMzMyOF9ICiAKLS8qICJQVSIgPT0gInBvd2VyLXVwIHZhbHVlIiwgYXMgdGVzdGVkIG9uIFBDSTE2OCBQQ0kgcmV2LiAxMCAqLworLyogIlBVIiA9PSAicG93ZXItdXAgdmFsdWUiLCBhcyB0ZXN0ZWQgb24gUENJMTY4IFBDSSByZXYuIDEwCisgKiAiV1JJVEVfT05MWSIgID09IHJlZ2lzdGVyIGRvZXMgbm90IGluZGljYXRlIGFjdHVhbCBiaXQgdmFsdWVzICovCiAKIC8qKiogbWFpbiBJL08gYXJlYSBwb3J0IGluZGljZXMgKioqLwogLyogKG9ubHkgMHg3MCBvZiAweDgwIGJ5dGVzIHNhdmVkL3Jlc3RvcmVkIGJ5IFdpbmRvd3MgZHJpdmVyKSAqLwpAQCAtNTQsNyArNTUsMTAgQEAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9YVEFMMQkJMHgwMAogICAjZGVmaW5lIFNPVU5ERk9STUFUX1hUQUwyCQkweDAxCiAgICAgLyogYWxsIF9TVVNQRUNURURfIHZhbHVlcyBhcmUgbm90IHVzZWQgYnkgV2luZG93cyBkcml2ZXJzLCBzbyB3ZSBkb24ndAotICAgICAqIGhhdmUgYW55IGhhcmQgZmFjdHMsIG9ubHkgcm91Z2ggbWVhc3VyZW1lbnRzICovCisgICAgICogaGF2ZSBhbnkgaGFyZCBmYWN0cywgb25seSByb3VnaCBtZWFzdXJlbWVudHMuCisgICAgICogQWxsIHdlIGtub3cgaXMgdGhhdCB0aGUgY3J5c3RhbCB1c2VkIG9uIHRoZSBib2FyZCBoYXMgMjQuNTc2TUh6LAorICAgICAqIGxpa2UgbWFueSBzb3VuZGNhcmRzICh3aGljaCByZXN1bHRzIGluIHRoZSBmcmVxdWVuY2llcyBiZWxvdyB3aGVuCisgICAgICogdXNpbmcgY2VydGFpbiBkaXZpZGVyIHZhbHVlcyBzZWxlY3RlZCBieSB0aGUgdmFsdWVzIGJlbG93KSAqLwogICAgICNkZWZpbmUgU09VTkRGT1JNQVRfRlJFUV9TVVNQRUNURURfNDAwMAkweDBjIHwgU09VTkRGT1JNQVRfWFRBTDEKICAgICAjZGVmaW5lIFNPVU5ERk9STUFUX0ZSRVFfU1VTUEVDVEVEXzQ4MDAJMHgwYSB8IFNPVU5ERk9STUFUX1hUQUwxCiAgICAgI2RlZmluZSBTT1VOREZPUk1BVF9GUkVRXzU1MTAJCTB4MGMgfCBTT1VOREZPUk1BVF9YVEFMMgpAQCAtNzIsNiArNzYsMjYgQEAKICAgI2RlZmluZSBTT1VOREZPUk1BVF9GTEFHXzE2QklUCTB4MDAxMAogICAjZGVmaW5lIFNPVU5ERk9STUFUX0ZMQUdfMkNIQU5ORUxTCTB4MDAyMAogCisvKiBkZWZpbmUgZnJlcXVlbmN5IGhlbHBlcnMsIGZvciBtYXhpbXVtIHZhbHVlIHNhZmV0eSAqLworZW51bSBhemZfZnJlcV90IHsKKyNkZWZpbmUgQVpGX0ZSRVEocmF0ZSkgQVpGX0ZSRVFfIyNyYXRlID0gcmF0ZQorICBBWkZfRlJFUSg0MDAwKSwKKyAgQVpGX0ZSRVEoNDgwMCksCisgIEFaRl9GUkVRKDU1MTIpLAorICBBWkZfRlJFUSg2NjIwKSwKKyAgQVpGX0ZSRVEoODAwMCksCisgIEFaRl9GUkVRKDk2MDApLAorICBBWkZfRlJFUSgxMTAyNSksCisgIEFaRl9GUkVRKDEzMjQwKSwKKyAgQVpGX0ZSRVEoMTYwMDApLAorICBBWkZfRlJFUSgyMjA1MCksCisgIEFaRl9GUkVRKDMyMDAwKSwKKyAgQVpGX0ZSRVEoNDQxMDApLAorICBBWkZfRlJFUSg0ODAwMCksCisgIEFaRl9GUkVRKDY2MjAwKSwKKyN1bmRlZiBBWkZfRlJFUQorfSBBWkZfRlJFUVVFTkNJRVM7CisKIC8qKiByZWNvcmRpbmcgYXJlYSAoc2VlIGFsc286IHBsYXliYWNrIGJpdCBmbGFnIGRlZmluaXRpb25zKSAqKi8KICNkZWZpbmUgSURYX0lPX1JFQ19GTEFHUwkweDIwIC8qID8/LCBQVToweDAwMDAgKi8KICNkZWZpbmUgSURYX0lPX1JFQ19JUlFUWVBFCTB4MjIgLyogPz8sIFBVOjB4MDAwMCAqLwpAQCAtOTcsNDAgKzEyMSwxNzEgQEAKIAogLyoqIERpcmVjdFggdGltZXIsIG1haW4gaW50ZXJydXB0IGFyZWEgKEZJWE1FOiBhbmQgc29tZXRoaW5nIGVsc2U/KSAqKi8gCiAjZGVmaW5lIElEWF9JT19USU1FUl9WQUxVRQkweDYwIC8qIGZvdW5kIHRoaXMgdGltZXIgYXJlYSBieSBwdXJlIGx1Y2sgOi0pICovCi0gICNkZWZpbmUgVElNRVJfVkFMVUVfTUFTSwkJMHgwMDBmZmZmZlVMIC8qIHRpbWVyIGNvdW50ZG93biB2YWx1ZTsgdHJpZ2dlcnMgSVJRIHdoZW4gdGltZXIgaXMgZmluaXNoZWQgKi8KLSAgI2RlZmluZSBUSU1FUl9FTkFCTEVfQ09VTlRET1dOCTB4MDEwMDAwMDBVTCAvKiBhY3RpdmF0ZSB0aGUgdGltZXIgY291bnRkb3duICovCi0gICNkZWZpbmUgVElNRVJfRU5BQkxFX0lSUQkJMHgwMjAwMDAwMFVMIC8qIHRyaWdnZXIgdGltZXIgSVJRIG9uIHplcm8gdHJhbnNpdGlvbiAqLwotICAjZGVmaW5lIFRJTUVSX0FDS19JUlEJCQkweDA0MDAwMDAwVUwgLyogYmVpbmcgc2V0IGluIElSUSBoYW5kbGVyIGluIGNhc2UgcG9ydCAweDAwIChobW0sIG5vdCBwb3J0IDB4NjQhPyE/KSBoYWQgMHgwMDIwIHNldCB1cG9uIElSUSBoYW5kbGVyICovCisgIC8qIHRpbWVyIGNvdW50ZG93biB2YWx1ZTsgdHJpZ2dlcnMgSVJRIHdoZW4gdGltZXIgaXMgZmluaXNoZWQgKi8KKyAgI2RlZmluZSBUSU1FUl9WQUxVRV9NQVNLCQkweDAwMGZmZmZmVUwKKyAgLyogYWN0aXZhdGUgdGltZXIgY291bnRkb3duICovCisgICNkZWZpbmUgVElNRVJfQ09VTlRET1dOX0VOQUJMRQkweDAxMDAwMDAwVUwKKyAgLyogdHJpZ2dlciB0aW1lciBJUlEgb24gemVybyB0cmFuc2l0aW9uICovCisgICNkZWZpbmUgVElNRVJfSVJRX0VOQUJMRQkJMHgwMjAwMDAwMFVMCisgIC8qIGJlaW5nIHNldCBpbiBJUlEgaGFuZGxlciBpbiBjYXNlIHBvcnQgMHgwMCAoaG1tLCBub3QgcG9ydCAweDY0IT8hPykKKyAgICogaGFkIDB4MDAyMCBzZXQgdXBvbiBJUlEgaGFuZGxlciAqLworICAjZGVmaW5lIFRJTUVSX0lSUV9BQ0sJCQkweDA0MDAwMDAwVUwKICNkZWZpbmUgSURYX0lPX0lSUVNUQVRVUyAgICAgICAgMHg2NAotICAjZGVmaW5lIElSUV9QTEFZQkFDSwkJCTB4MDAwMQotICAjZGVmaW5lIElSUV9SRUNPUkRJTkcJCQkweDAwMDIKLSAgI2RlZmluZSBJUlFfTVBVNDAxCQkJMHgwMDEwCi0gICNkZWZpbmUgSVJRX1RJTUVSCQkJMHgwMDIwIC8qIERpcmVjdFggdGltZXIgKi8KLSAgI2RlZmluZSBJUlFfVU5LTk9XTjEJCQkweDAwNDAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gb3IgZ2FtZXBvcnQgSVJRPyAqLwotICAjZGVmaW5lIElSUV9VTktOT1dOMgkJCTB4MDA4MCAvKiBwcm9iYWJseSB1bnVzZWQsIG9yIHBvc3NpYmx5IEkyUyBwb3J0PyBvciBnYW1lcG9ydCBJUlE/ICovCisgIC8qIHNvbWUgSVJRIGJpdCBpbiBoZXJlIG1pZ2h0IGFsc28gYmUgdXNlZCB0byBzaWduYWwgYSBwb3dlci1tYW5hZ2VtZW50IHRpbWVyCisgICAqIHRpbWVvdXQsIHRvIHJlcXVlc3Qgc2h1dGRvd24gb2YgdGhlIGNoaXAgKGUuZy4gQUQxODE1SlMgaGFzIHN1Y2ggYSB0aGluZykuCisgICAqIFNvbWUgT1BMMyBoYXJkd2FyZSAoZS5nLiBpbiBMTTQ1NjApIGhhcyBzb21lIHNwZWNpYWwgdGltZXIgaGFyZHdhcmUgd2hpY2gKKyAgICogY2FuIHRyaWdnZXIgYW4gT1BMMyB0aW1lciBJUlEsIHNvIG1heWJlIHRoZXJlJ3Mgc3VjaCBhIHRoaW5nIGFzIHdlbGwuLi4gKi8KKworICAjZGVmaW5lIElSUV9QTEFZQkFDSwkweDAwMDEKKyAgI2RlZmluZSBJUlFfUkVDT1JESU5HCTB4MDAwMgorICAjZGVmaW5lIElSUV9VTktOT1dOMQkweDAwMDQgLyogbW9zdCBwcm9iYWJseSBJMlMgcG9ydCAqLworICAjZGVmaW5lIElSUV9HQU1FUE9SVAkweDAwMDggLyogSW50ZXJydXB0IG9mIERpZ2l0YWwobHkpIEVuaGFuY2VkIEdhbWUgUG9ydCAqLworICAjZGVmaW5lIElSUV9NUFU0MDEJMHgwMDEwCisgICNkZWZpbmUgSVJRX1RJTUVSCTB4MDAyMCAvKiBEaXJlY3RYIHRpbWVyICovCisgICNkZWZpbmUgSVJRX1VOS05PV04yCTB4MDA0MCAvKiBwcm9iYWJseSB1bnVzZWQsIG9yIHBvc3NpYmx5IEkyUyBwb3J0PyAqLworICAjZGVmaW5lIElSUV9VTktOT1dOMwkweDAwODAgLyogcHJvYmFibHkgdW51c2VkLCBvciBwb3NzaWJseSBJMlMgcG9ydD8gKi8KICNkZWZpbmUgSURYX0lPXzY2SAkJMHg2NiAgICAvKiB3cml0aW5nIDB4ZmZmZiByZXR1cm5zIDB4MDAwMCAqLwotI2RlZmluZSBJRFhfSU9fU09NRV9WQUxVRQkweDY4CS8qIHRoaXMgaXMgc2V0IHRvIGUuZy4gMHgzZmYgb3IgMHgzMDAsIGFuZCB3cml0YWJsZTsgbWF5YmUgc29tZSBidWZmZXIgbGltaXQsIGJ1dCBJIGNvdWxkbid0IGZpbmQgb3V0IG1vcmUsIFBVOjB4MDBmZiAqLwotI2RlZmluZSBJRFhfSU9fNkFICQkweDZBCS8qIHRoaXMgV09SRCBjYW4gYmUgc2V0IHRvIGhhdmUgYml0cyAweDAwMjggYWN0aXZhdGVkIChGSVhNRTogY29ycmVjdD8/KTsgYWN0dWFsbHkgaW5oaWJpdHMgUENNIHBsYXliYWNrISEhIG1heWJlIHBvd2VyIG1hbmFnZW1lbnQ/PyAqLwotICAjZGVmaW5lIElPXzZBX1BBVVNFX1BMQVlCQUNLCQkweDAyMDAgLyogYml0IDk7IHN1cmUsIHRoaXMgcGF1c2VzIHBsYXliYWNrLCBidXQgd2hhdCB0aGUgaGVjayBpcyB0aGlzIHJlYWxseSBhYm91dD8/ICovCi0jZGVmaW5lIElEWF9JT182Q0gJCTB4NkMKLSNkZWZpbmUgSURYX0lPXzZFSAkJMHg2RQkvKiB3cml0aW5nIDB4ZmZmZiByZXR1cm5zIDB4ODNmZSAqLwotLyogZnVydGhlciBJL08gaW5kaWNlcyBub3Qgc2F2ZWQvcmVzdG9yZWQsIHNvIHByb2JhYmx5IG5vdCB1c2VkICovCisgIC8qIHRoaXMgaXMgc2V0IHRvIGUuZy4gMHgzZmYgb3IgMHgzMDAsIGFuZCB3cml0YWJsZTsKKyAgICogbWF5YmUgc29tZSBidWZmZXIgbGltaXQsIGJ1dCBJIGNvdWxkbid0IGZpbmQgb3V0IG1vcmUsIFBVOjB4MDBmZjogKi8KKyNkZWZpbmUgSURYX0lPX1NPTUVfVkFMVUUJMHg2OAorICAjZGVmaW5lIElPXzY4X1JBTkRPTV9UT0dHTEUxCTB4MDEwMAkvKiB0b2dnbGVzIHJhbmRvbWx5ICovCisgICNkZWZpbmUgSU9fNjhfUkFORE9NX1RPR0dMRTIJMHgwMjAwCS8qIHRvZ2dsZXMgcmFuZG9tbHkgKi8KKyAgLyogdW1tLCBub3BlLCBiZWhhdmlvdXIgb2YgdGhlc2UgYml0cyBjaGFuZ2VzIGRlcGVuZGluZyBvbiB3aGF0IHdlIHdyb3RlCisgICAqIHRvIDB4NmIhIQorICAgKiBBbmQgdGhleSBjaGFuZ2UgdXBvbiBwbGF5YmFjay9zdG9wLCB0b286CisgICAqIFdyaXRpbmcgYSB2YWx1ZSB0byAweDY4IHdpbGwgZGlzcGxheSB0aGlzIGV4YWN0IHZhbHVlIGR1cmluZyBwbGF5YmFjaywKKyAgICogdG9vIGJ1dCB3aGVuIHN0b3BwZWQgaXQgY2FuIGZhbGwgYmFjayB0byBhIHJhdGhlciBkaWZmZXJlbnQKKyAgICogc2VlbWluZ2x5IHJhbmRvbSB2YWx1ZSkuIEhtbSwgcG9zc2libHkgdGhpcyBpcyBhIHJlZ2lzdGVyIHdoaWNoCisgICAqIGhhcyBhIHJlbW90ZSBzaGFkb3cgd2hpY2ggbmVlZHMgcHJvcGVyIGRldmljZSBzdXBwbHkgd2hpY2ggb25seSBleGlzdHMKKyAgICogaW4gY2FzZSBwbGF5YmFjayBpcyBhY3RpdmU/IE9yIGlzIHRoaXMgZHJpdmVyLWluZHVjZWQ/CisgICAqLworCisvKiB0aGlzIFdPUkQgY2FuIGJlIHNldCB0byBoYXZlIGJpdHMgMHgwMDI4IGFjdGl2YXRlZCAoRklYTUU6IGNvcnJlY3Q/Pyk7CisgKiBhY3R1YWxseSBpbmhpYml0cyBQQ00gcGxheWJhY2shISEgbWF5YmUgcG93ZXIgbWFuYWdlbWVudD8/OiAqLworI2RlZmluZSBJRFhfSU9fNkFICQkweDZBIC8qIFdSSVRFX09OTFkhICovCisgIC8qIGJpdCA1OiBlbmFibGluZyB0aGlzIHdpbGwgYWN0aXZhdGUgcGVybWFuZW50IGNvdW50aW5nIG9mIGJ5dGVzIDIvMworICAgKiBhdCBnYW1lcG9ydCBJL08gKDB4YjQwMi8zKSAoZXF1YWwgdmFsdWVzIGVhY2gpIGFuZCBjYXVzZQorICAgKiBnYW1lcG9ydCBsZWdhY3kgSS9PIGF0IDB4MDIwMCB0byBiZSBfRElTQUJMRURfIQorICAgKiBJcyB0aGlzIERpZ2l0YWwgRW5oYW5jZWQgR2FtZSBQb3J0IEVuYWJsZT8/PyBPciBtYXliZSBpdCdzIFRlc3Rtb2RlCisgICAqIGZvciBFbmhhbmNlZCBEaWdpdGFsIEdhbWVwb3J0IChzZWUgNEQgV2F2ZSBEWCBjYXJkKTogKi8KKyAgI2RlZmluZSBJT182QV9TT01FVEhJTkcxX0dBTUVQT1JUCTB4MDAyMAorICAvKiBiaXQgODsgc3VyZSwgdGhpcyBfcGF1c2VzXyBwbGF5YmFjayAobGF0ZXIgcmVzdW1lcyBhdCBzYW1lIHNwb3QhKSwKKyAgICogYnV0IHdoYXQgdGhlIGhlY2sgaXMgdGhpcyByZWFsbHkgYWJvdXQ/PzogKi8KKyAgI2RlZmluZSBJT182QV9QQVVTRV9QTEFZQkFDS19CSVQ4CTB4MDEwMAorICAvKiBiaXQgOTsgc3VyZSwgdGhpcyBfcGF1c2VzXyBwbGF5YmFjayAobGF0ZXIgcmVzdW1lcyBhdCBzYW1lIHNwb3QhKSwKKyAgICogYnV0IHdoYXQgdGhlIGhlY2sgaXMgdGhpcyByZWFsbHkgYWJvdXQ/PzogKi8KKyAgI2RlZmluZSBJT182QV9QQVVTRV9QTEFZQkFDS19CSVQ5CTB4MDIwMAorCS8qIEJJVDggYW5kIEJJVDkgYXJlIF9OT1RfIGFibGUgdG8gYWZmZWN0IE9QTDMgTUlESSBwbGF5YmFjaywKKwkgKiB0aHVzIGl0IHN1Z2dlc3RzIGluZmx1ZW5jZSBvbiBQQ00gb25seSEhCisJICogSG93ZXZlciBPVE9IIHRoZXJlIHNlZW1zIHRvIGJlIG5vIGJpdCBhbnl3aGVyZSBhcm91bmQgaGVyZQorCSAqIHdoaWNoIGlzIGFibGUgdG8gZGlzYWJsZSBPUEwzLi4uICovCisgIC8qIGJpdCAxMDogZW5hYmxpbmcgdGhpcyBhY3R1YWxseSBjaGFuZ2VzIHZhbHVlcyBhdCBsZWdhY3kgZ2FtZXBvcnQKKyAgICogSS9PIGFkZHJlc3MgKDB4MjAwKTsgaXMgdGhpcyBlbmFibGluZyBvZiB0aGUgRGlnaXRhbCBFbmhhbmNlZCBHYW1lIFBvcnQ/Pz8KKyAgICogT3IgbWF5YmUgdGhpcyBzaW1wbHkgc3dpdGNoZXMgb2ZmIHRoZSBORTU1OCBjaXJjdWl0LCBzaW5jZSBlbmFibGluZyB0aGlzCisgICAqIHN0aWxsIGxldHMgdXMgZXZhbHVhdGUgYnV0dG9uIHN0YXRlcywgYnV0IG5vdCBheGlzIHN0YXRlcyAqLworICAjZGVmaW5lIElPXzZBX1NPTUVUSElORzJfR0FNRVBPUlQgICAgICAweDA0MDAKKwkvKiB3cml0aW5nIDB4MDMwMDogY2F1c2VzIHF1aXRlIHNvbWUgY3JhY2tsaW5nIGR1cmluZworCSAqIFBDIGFjdGl2aXR5IHN1Y2ggYXMgc3dpdGNoaW5nIHdpbmRvd3MgKFBDSSB0cmFmZmljPz8KKwkgKiAtLT4gRklGTy90aW1pbmcgc2V0dGluZ3M/Pz8pICovCisJLyogd3JpdGluZyAweDAxMDAgcGx1cy9vciAweDAyMDAgaW5oaWJpdHMgcGxheWJhY2sgKi8KKwkvKiBzaW5jZSB0aGUgV2luZG93cyAuSU5GIGZpbGUgaGFzIEZsYWdfRW5hYmxlX0pveVN0aWNrIGFuZAorCSAqIEZsYWdfRW5hYmxlX1NCX0RPU19FbXVsYXRpb24gZGlyZWN0bHkgdG9nZXRoZXIsIGl0IHN0YW5kcyB0byByZWFzb24KKwkgKiB0aGF0IHNvbWUgb3RoZXIgYml0IGluIHRoaXMgc2FtZSByZWdpc3RlciBtaWdodCBiZSByZXNwb25zaWJsZQorCSAqIGZvciBTQiBET1MgRW11bGF0aW9uIGFjdGl2YXRpb24gKG5vdGUgdGhhdCB0aGUgZmlsZSBkaWQgTk9UIGRlZmluZQorCSAqIGEgc3dpdGNoIGZvciBPUEwzISkgKi8KKyNkZWZpbmUgSURYX0lPXzZDSAkJMHg2QwkvKiB1bmtub3duOyBmdWxseSByZWFkLXdyaXRhYmxlICovCisjZGVmaW5lIElEWF9JT182RUgJCTB4NkUKKwkvKiB3cml0aW5nIDB4ZmZmZiByZXR1cm5zIDB4ODNmZSAob3IgMHgwM2ZlIG9ubHkpLgorCSAqIHdyaXRpbmcgMHg4MyAoYW5kIG9ubHkgMHg4MyEhKSB0byAweDZmIHdpbGwgY2F1c2UgMHg2YyB0byBzd2l0Y2gKKwkgKiBmcm9tIDAwMDAgdG8gZmZmZi4gKi8KKworLyogZnVydGhlciBJL08gaW5kaWNlcyBub3Qgc2F2ZWQvcmVzdG9yZWQgYW5kIG5vdCByZWFkYWJsZSBhZnRlciB3cml0aW5nLAorICogc28gcHJvYmFibHkgbm90IHVzZWQgKi8KIAogCi0vKioqIEkvTyAyIGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KKy8qKiogR2FtZXBvcnQgYXJlYSBwb3J0IGluZGljZXMgKioqLwogLyogKG9ubHkgMHgwNiBvZiAweDA4IGJ5dGVzIHNhdmVkL3Jlc3RvcmVkIGJ5IFdpbmRvd3MgZHJpdmVyKSAqLyAKLSNkZWZpbmUgQVpGX0lPX1NJWkVfSU8yCQkweDA4Ci0jZGVmaW5lIEFaRl9JT19TSVpFX0lPMl9QTQkweDA2CisjZGVmaW5lIEFaRl9JT19TSVpFX0dBTUUJCTB4MDgKKyNkZWZpbmUgQVpGX0lPX1NJWkVfR0FNRV9QTQkweDA2CiAKLSNkZWZpbmUgSURYX0lPMl9MRUdBQ1lfQUREUgkweDA0Ci0gICNkZWZpbmUgTEVHQUNZX1NPTUVUSElORwkJMHgwMSAvKiBPUEwzPz8gKi8KLSAgI2RlZmluZSBMRUdBQ1lfSk9ZCQkJMHgwOAorZW51bSB7CisJQVpGX0dBTUVfTEVHQUNZX0lPX1BPUlQgPSAweDIwMAorfSBBWkZfR0FNRV9DT05GSUdTOwogCisjZGVmaW5lIElEWF9HQU1FX0xFR0FDWV9DT01QQVRJQkxFCTB4MDAKKwkvKiBpbiBzb21lIG9wZXJhdGlvbiBtb2RlLCB3cml0aW5nIGFueXRoaW5nIHRvIHRoaXMgcG9ydAorCSAqIHRyaWdnZXJzIGFuIGludGVycnVwdDoKKwkgKiB5dXAsIHRoYXQncyBpbiBjYXNlIElEWF9HQU1FXzAxSCBoYXMgb25lIG9mIHRoZQorCSAqIGF4aXMgbWVhc3VyZW1lbnQgYml0cyBlbmFibGVkCisJICogKGFuZCBvZiBjb3Vyc2Ugb25lIG5lZWRzIHRvIGhhdmUgR0FNRV9IV0NGR19JUlFfRU5BQkxFLCB0b28pICovCisKKyNkZWZpbmUgSURYX0dBTUVfQVhFU19DT05GSUcgICAgICAgICAgICAweDAxCisJLyogTk9URTogbGF5b3V0IG9mIHRoaXMgcmVnaXN0ZXIgYXdmdWxseSBzaW1pbGFyIChyZWFkOiAiaWRlbnRpY2FsPz8iKQorCSAqIHRvIEFEMTgxNUpTLnBkZiAocC4yOSkgKi8KKworICAvKiBlbmFibGVzIGF4aXMgMSAoWCBheGlzKSBtZWFzdXJlbWVudDogKi8KKyAgI2RlZmluZSBHQU1FX0FYRVNfRU5BQkxFXzEJCTB4MDEKKyAgLyogZW5hYmxlcyBheGlzIDIgKFkgYXhpcykgbWVhc3VyZW1lbnQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX0VOQUJMRV8yCQkweDAyCisgIC8qIGVuYWJsZXMgYXhpcyAzIChYIGF4aXMpIG1lYXN1cmVtZW50OiAqLworICAjZGVmaW5lIEdBTUVfQVhFU19FTkFCTEVfMwkJMHgwNAorICAvKiBlbmFibGVzIGF4aXMgNCAoWSBheGlzKSBtZWFzdXJlbWVudDogKi8KKyAgI2RlZmluZSBHQU1FX0FYRVNfRU5BQkxFXzQJCTB4MDgKKyAgLyogc2VsZWN0cyB0aGUgY3VycmVudCBheGlzIHRvIHJlYWQgdGhlIG1lYXN1cmVkIHZhbHVlIG9mCisgICAqIChhdCBJRFhfR0FNRV9BWElTX1ZBTFVFKToKKyAgICogMDAgPSBheGlzIDEsIDAxID0gYXhpcyAyLCAxMCA9IGF4aXMgMywgMTEgPSBheGlzIDQ6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX1JFQURfTUFTSwkJMHgzMAorICAvKiBlbmFibGUgdG8gaGF2ZSB0aGUgbGF0Y2ggY29udGludW91c2x5IGFjY2VwdCBBREMgdmFsdWVzCisgICAqIChhbmQgY29udGludW91c2x5IGNhdXNlIGludGVycnVwdHMgaW4gY2FzZSBpbnRlcnJ1cHRzIGFyZSBlbmFibGVkKTsKKyAgICogQUQxODE1SlMucGRmIHNheXMgaXQncyB+MTZtcyBpbnRlcnZhbCB0aGVyZTogKi8KKyAgI2RlZmluZSBHQU1FX0FYRVNfTEFUQ0hfRU5BQkxFCTB4NDAKKyAgLyogam95c3RpY2sgZGF0YSAobWVhc3VyZWQgYXhlcykgcmVhZHkgZm9yIHJlYWRpbmc6ICovCisgICNkZWZpbmUgR0FNRV9BWEVTX1NBTVBMSU5HX1JFQURZCTB4ODAKKworICAvKiBOT1RFOiBvdGhlciBjYXJkIHNwZWNzIChTaVM5NjAgYW5kIG90aGVycyEpIHN0YXRlIHRoYXQgdGhlCisgICAqIGdhbWUgcG9zaXRpb24gbGF0Y2hlcyBzaG91bGQgYmUgZnJvemVuIHdoZW4gcmVhZGluZyBhbmQgYmUgZnJlZWQKKyAgICogKD09IHJlc2V0PykgYWZ0ZXIgcmVhZGluZyEhIQorICAgKiBGcmVlemluZyBtb3N0IGxpa2VseSBtZWFucyBkaXNhYmxpbmcgMHg0MCAoR0FNRV9BWEVTX0xBVENIX0VOQUJMRSksCisgICAqICBidXQgaG93IHRvIGZyZWUgdGhlIHZhbHVlPyAqLworICAvKiBBbiBpbnRlcm5ldCBzZWFyY2ggZm9yICJnYW1lcG9ydCBsYXRjaCBBREMiIHNob3VsZCBwcm92aWRlIHNvbWUgaW5zaWdodAorICAgKiBpbnRvIGhvdyB0byBwcm9ncmFtIHN1Y2ggYSBnYW1lcG9ydCBzeXN0ZW0uICovCisKKyAgLyogd3JpdGluZyAweGYwIHRvIDAxSCBvbmNlIHJlc2V0IGJvdGggY291bnRlcnMgdG8gMCwgaW4gc29tZSBzcGVjaWFsIG1vZGUhPworICAgKiB5dXAsIGluIGNhc2UgNkFIIDB4MjAgaXMgbm90IGVuYWJsZWQKKyAgICogKGFuZCAweDQwIGlzIHN1ZmZpY2llbnQsIDB4ZjAgaXMgbm90IG5lZWRlZCkgKi8KKworI2RlZmluZSBJRFhfR0FNRV9BWElTX1ZBTFVFCTB4MDIKKwkvKiBSOiB2YWx1ZSBvZiBjdXJyZW50bHkgY29uZmlndXJlZCBheGlzICh3b3JkIHZhbHVlISk7CisJICogVzogdHJpZ2dlciBheGlzIG1lYXN1cmVtZW50ICovCisKKyNkZWZpbmUgSURYX0dBTUVfSFdDT05GSUcJMHgwNAorCS8qIG5vdGU6IGJpdHMgNCB0byA3IGFyZSBuZXZlciBzZXQgKD09IDApIHdoZW4gcmVhZGluZyEKKwkgKiAtLT4gcmVzZXJ2ZWQgYml0cz8gKi8KKyAgLyogZW5hYmxlcyBJUlEgbm90aWZpY2F0aW9uIHVwb24gYXhlcyBtZWFzdXJlbWVudCByZWFkeTogKi8KKyAgI2RlZmluZSBHQU1FX0hXQ0ZHX0lSUV9FTkFCTEUJCQkweDAxCisgIC8qIHRoZXNlIGJpdHMgY2hvb3NlIGEgZGlmZmVyZW50IGZyZXF1ZW5jeSBmb3IgdGhlCisgICAqICBpbnRlcm5hbCBBREMgY291bnRlciBpbmNyZW1lbnQuCisgICAqIGhtbSwgc2VlbXMgdG8gYmUgYSBjb21ibyBvZiBiaXRzOgorICAgKiAwMCAtLT4gc3RhbmRhcmQgZnJlcXVlbmN5CisgICAqIDEwIC0tPiAxLzIKKyAgICogMDEgLS0+IDEvMjAKKyAgICogMTEgLS0+IDEvMjAwOiAqLworICAjZGVmaW5lIEdBTUVfSFdDRkdfQURDX0NPVU5URVJfRlJFUV9NQVNLCTB4MDYKKworICAvKiBlbmFibGUgZ2FtZXBvcnQgbGVnYWN5IEkvTyBhZGRyZXNzICgweDIwMCkKKyAgICogSSB3YXMgdW5hYmxlIHRvIGxvY2F0ZSBhbnkgY29uZmlndXJhYmlsaXR5IGZvciBhIGRpZmZlcmVudCBhZGRyZXNzOiAqLworICAjZGVmaW5lIEdBTUVfSFdDRkdfTEVHQUNZX0FERFJFU1NfRU5BQkxFCTB4MDgKKworLyoqKiBNUFU0MDEgKioqLwogI2RlZmluZSBBWkZfSU9fU0laRV9NUFUJCTB4MDQKICNkZWZpbmUgQVpGX0lPX1NJWkVfTVBVX1BNCTB4MDQKIAotI2RlZmluZSBBWkZfSU9fU0laRV9TWU5USAkweDA4Ci0jZGVmaW5lIEFaRl9JT19TSVpFX1NZTlRIX1BNCTB4MDYKKy8qKiogT1BMMyBzeW50aCAqKiovCisjZGVmaW5lIEFaRl9JT19TSVpFX09QTDMJMHgwOAorI2RlZmluZSBBWkZfSU9fU0laRV9PUEwzX1BNCTB4MDYKKy8qIGhtbSwgZ2l2ZW4gdGhhdCBhIHN0YW5kYXJkIE9QTDMgaGFzIDQgcmVnaXN0ZXJzIG9ubHksCisgKiB0aGVyZSBtaWdodCBiZSBzb21lIGVuaGFuY2VkIGZ1bmN0aW9uYWxpdHkgbHVya2luZyBhdCB0aGUgZW5kCisgKiAoZXNwZWNpYWxseSBzaW5jZSByZWdpc3RlciAweDA0IGhhcyBhICJub24tZW1wdHkiIHZhbHVlIDB4ZmUpICovCiAKIC8qKiogbWl4ZXIgSS9PIGFyZWEgcG9ydCBpbmRpY2VzICoqKi8KIC8qIChvbmx5IDB4MjIgb2YgMHg0MCBieXRlcyBzYXZlZC9yZXN0b3JlZCBieSBXaW5kb3dzIGRyaXZlcikKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9jYTAxMDYvY2EwMTA2X21haW4uYyBiL3NvdW5kL3BjaS9jYTAxMDYvY2EwMTA2X21haW4uYwppbmRleCBlY2JlNzliLi4yZjhiMjhhIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvY2EwMTA2L2NhMDEwNl9tYWluLmMKKysrIGIvc291bmQvcGNpL2NhMDEwNi9jYTAxMDZfbWFpbi5jCkBAIC0yNDksNiArMjQ5LDExIEBACiAJICAgLm5hbWUgICA9ICJNU0kgSzhOIERpYW1vbmQgTUIgW1NCMDQzOF0iLAogCSAgIC5ncGlvX3R5cGUgPSAyLAogCSAgIC5pMmNfYWRjID0gMSB9ICwKKwkgLyogQW5vdGhlciBNU0kgSzhOIERpYW1vbmQgTUIsIHdoaWNoIGhhcyBhcHByZW50bHkgYSBkaWZmZXJlbnQgU1NJRCAqLworCSB7IC5zZXJpYWwgPSAweDEwMDkxMTAyLAorCSAgIC5uYW1lICAgPSAiTVNJIEs4TiBEaWFtb25kIE1CIiwKKwkgICAuZ3Bpb190eXBlID0gMiwKKwkgICAuaTJjX2FkYyA9IDEgfSAsCiAJIC8qIFNodXR0bGUgWFBDIFNEMzFQIHdoaWNoIGhhcyBhbiBvbmJvYXJkIENyZWF0aXZlIExhYnMKIAkgICogU291bmQgQmxhc3RlciBMaXZlISAyNC1iaXQgRUFYCiAJICAqIGhpZ2gtZGVmaW5pdGlvbiA3LjEgYXVkaW8gcHJvY2Vzc29yIi4KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdTEwazFfbWFpbi5jIGIvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9tYWluLmMKaW5kZXggYWJkZTViOS4uMmYyODNlYSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9tYWluLmMKKysrIGIvc291bmQvcGNpL2VtdTEwazEvZW11MTBrMV9tYWluLmMKQEAgLTE1MjgsNiArMTUyOCw3IEBACiAJIC5jYTAxNTFfY2hpcCA9IDEsCiAJIC5zcGs3MSA9IDEsCiAJIC5zcGRpZl9idWcgPSAxLAorCSAuaW52ZXJ0X3NoYXJlZF9zcGRpZiA9IDEsCS8qIGRpZ2l0YWwvYW5hbG9nIHN3aXRjaCBzd2FwcGVkICovCiAJIC5hZGNfMTM2MXQgPSAxLCAgLyogMjQgYml0IGNhcHR1cmUgaW5zdGVhZCBvZiAxNmJpdC4gRml4ZXMgQUxTQSBidWcjMzI0ICovCiAJIC5hYzk3X2NoaXAgPSAxfSAsCiAJey52ZW5kb3IgPSAweDExMDIsIC5kZXZpY2UgPSAweDAwMDQsIC5yZXZpc2lvbiA9IDB4MDQsCkBAIC0xODE4LDEzICsxODE5LDYgQEAKIAl9CiAJZW11LT5wb3J0ID0gcGNpX3Jlc291cmNlX3N0YXJ0KHBjaSwgMCk7CiAKLQlpZiAocmVxdWVzdF9pcnEocGNpLT5pcnEsIHNuZF9lbXUxMGsxX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsCi0JCQkiRU1VMTBLMSIsIGVtdSkpIHsKLQkJZXJyID0gLUVCVVNZOwotCQlnb3RvIGVycm9yOwotCX0KLQllbXUtPmlycSA9IHBjaS0+aXJxOwotCiAJZW11LT5tYXhfY2FjaGVfcGFnZXMgPSBtYXhfY2FjaGVfYnl0ZXMgPj4gUEFHRV9TSElGVDsKIAlpZiAoc25kX2RtYV9hbGxvY19wYWdlcyhTTkRSVl9ETUFfVFlQRV9ERVYsIHNuZF9kbWFfcGNpX2RhdGEocGNpKSwKIAkJCQkzMiAqIDEwMjQsICZlbXUtPnB0Yl9wYWdlcykgPCAwKSB7CkBAIC0xODg3LDYgKzE4ODEsMTQgQEAKIAllbXUtPmZ4ODAxMC5ldHJhbV9wYWdlcy5hcmVhID0gTlVMTDsKIAllbXUtPmZ4ODAxMC5ldHJhbV9wYWdlcy5ieXRlcyA9IDA7CiAKKwkvKiBpcnEgaGFuZGxlciBtdXN0IGJlIHJlZ2lzdGVyZWQgYWZ0ZXIgSS9PIHBvcnRzIGFyZSBhY3RpdmF0ZWQgKi8KKwlpZiAocmVxdWVzdF9pcnEocGNpLT5pcnEsIHNuZF9lbXUxMGsxX2ludGVycnVwdCwgSVJRRl9TSEFSRUQsCisJCQkiRU1VMTBLMSIsIGVtdSkpIHsKKwkJZXJyID0gLUVCVVNZOworCQlnb3RvIGVycm9yOworCX0KKwllbXUtPmlycSA9IHBjaS0+aXJxOworCiAJLyoKIAkgKiAgSW5pdCB0byAweDAyMTA5MjA0IDoKIAkgKiAgQ2xvY2sgYWNjdXJhY3kgICAgPSAwICAgICAoMTAwMHBwbSkKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdW1peGVyLmMgYi9zb3VuZC9wY2kvZW11MTBrMS9lbXVtaXhlci5jCmluZGV4IGZkMjIxMjAuLmYzNGJiZmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9lbXUxMGsxL2VtdW1peGVyLmMKKysrIGIvc291bmQvcGNpL2VtdTEwazEvZW11bWl4ZXIuYwpAQCAtMTU3OCw2ICsxNTc4LDEwIEBACiAJCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gaW5sKGVtdS0+cG9ydCArIEFfSU9DRkcpICYgQV9JT0NGR19HUE9VVDAgPyAxIDogMDsKIAllbHNlCiAJCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0gaW5sKGVtdS0+cG9ydCArIEhDRkcpICYgSENGR19HUE9VVDAgPyAxIDogMDsKKwlpZiAoZW11LT5jYXJkX2NhcGFiaWxpdGllcy0+aW52ZXJ0X3NoYXJlZF9zcGRpZikKKwkJdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPQorCQkJIXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOworCQkKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTU4NiwxNSArMTU5MCwxOCBAQAogewogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJc3RydWN0IHNuZF9lbXUxMGsxICplbXUgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7Ci0JdW5zaWduZWQgaW50IHJlZywgdmFsOworCXVuc2lnbmVkIGludCByZWcsIHZhbCwgc3c7CiAJaW50IGNoYW5nZSA9IDA7CiAKKwlzdyA9IHVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdOworCWlmIChlbXUtPmNhcmRfY2FwYWJpbGl0aWVzLT5pbnZlcnRfc2hhcmVkX3NwZGlmKQorCQlzdyA9ICFzdzsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW11LT5yZWdfbG9jaywgZmxhZ3MpOwogCWlmICggZW11LT5jYXJkX2NhcGFiaWxpdGllcy0+aTJjX2FkYykgewogCQkvKiBEbyBub3RoaW5nIGZvciBBdWRpZ3kgMiBaUyBOb3RlYm9vayAqLwogCX0gZWxzZSBpZiAoZW11LT5hdWRpZ3kpIHsKIAkJcmVnID0gaW5sKGVtdS0+cG9ydCArIEFfSU9DRkcpOwotCQl2YWwgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA/IEFfSU9DRkdfR1BPVVQwIDogMDsKKwkJdmFsID0gc3cgPyBBX0lPQ0ZHX0dQT1VUMCA6IDA7CiAJCWNoYW5nZSA9IChyZWcgJiBBX0lPQ0ZHX0dQT1VUMCkgIT0gdmFsOwogCQlpZiAoY2hhbmdlKSB7CiAJCQlyZWcgJj0gfkFfSU9DRkdfR1BPVVQwOwpAQCAtMTYwMyw3ICsxNjEwLDcgQEAKIAkJfQogCX0KIAlyZWcgPSBpbmwoZW11LT5wb3J0ICsgSENGRyk7Ci0JdmFsID0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0gPyBIQ0ZHX0dQT1VUMCA6IDA7CisJdmFsID0gc3cgPyBIQ0ZHX0dQT1VUMCA6IDA7CiAJY2hhbmdlIHw9IChyZWcgJiBIQ0ZHX0dQT1VUMCkgIT0gdmFsOwogCWlmIChjaGFuZ2UpIHsKIAkJcmVnICY9IH5IQ0ZHX0dQT1VUMDsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9lbXUxMGsxL21lbW9yeS5jIGIvc291bmQvcGNpL2VtdTEwazEvbWVtb3J5LmMKaW5kZXggOTE2YzFkYi4uN2QzNzlmNSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2VtdTEwazEvbWVtb3J5LmMKKysrIGIvc291bmQvcGNpL2VtdTEwazEvbWVtb3J5LmMKQEAgLTQzNyw0MyArNDM3LDQ5IEBACiAJKmxhc3RfcGFnZV9yZXQgPSBsYXN0X3BhZ2U7CiB9CiAKKy8qIHJlbGVhc2UgYWxsb2NhdGVkIHBhZ2VzICovCitzdGF0aWMgdm9pZCBfX3N5bnRoX2ZyZWVfcGFnZXMoc3RydWN0IHNuZF9lbXUxMGsxICplbXUsIGludCBmaXJzdF9wYWdlLAorCQkJICAgICAgIGludCBsYXN0X3BhZ2UpCit7CisJaW50IHBhZ2U7CisKKwlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKSB7CisJCWZyZWVfcGFnZSgodW5zaWduZWQgbG9uZyllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdKTsKKwkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSAwOworCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gTlVMTDsKKwl9Cit9CisKIC8qCiAgKiBhbGxvY2F0ZSBrZXJuZWwgcGFnZXMKICAqLwogc3RhdGljIGludCBzeW50aF9hbGxvY19wYWdlcyhzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSwgc3RydWN0IHNuZF9lbXUxMGsxX21lbWJsayAqYmxrKQogewogCWludCBwYWdlLCBmaXJzdF9wYWdlLCBsYXN0X3BhZ2U7Ci0Jc3RydWN0IHNuZF9kbWFfYnVmZmVyIGRtYWI7CiAKIAllbXUxMGsxX21lbWJsa19pbml0KGJsayk7CiAJZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKGVtdS0+bWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKIAkvKiBhbGxvY2F0ZSBrZXJuZWwgcGFnZXMgKi8KIAlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKSB7Ci0JCWlmIChzbmRfZG1hX2FsbG9jX3BhZ2VzKFNORFJWX0RNQV9UWVBFX0RFViwgc25kX2RtYV9wY2lfZGF0YShlbXUtPnBjaSksCi0JCQkJCVBBR0VfU0laRSwgJmRtYWIpIDwgMCkKLQkJCWdvdG8gX19mYWlsOwotCQlpZiAoISBpc192YWxpZF9wYWdlKGVtdSwgZG1hYi5hZGRyKSkgewotCQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQkJCWdvdG8gX19mYWlsOworCQkvKiBmaXJzdCB0cnkgdG8gYWxsb2NhdGUgZnJvbSA8NEdCIHpvbmUgKi8KKwkJc3RydWN0IHBhZ2UgKnAgPSBhbGxvY19wYWdlKEdGUF9LRVJORUwgfCBHRlBfRE1BMzIgfAorCQkJCQkgICAgX19HRlBfTk9XQVJOKTsKKwkJaWYgKCFwIHx8IChwYWdlX3RvX3BmbihwKSAmIH4oZW11LT5kbWFfbWFzayA+PiBQQUdFX1NISUZUKSkpIHsKKwkJCWlmIChwKQorCQkJCV9fZnJlZV9wYWdlKHApOworCQkJLyogdHJ5IHRvIGFsbG9jYXRlIGZyb20gPDE2TUIgem9uZSAqLworCQkJcCA9IGFsbG9jX3BhZ2UoR0ZQX0FUT01JQyB8IEdGUF9ETUEgfAorCQkJCSAgICAgICBfX0dGUF9OT1JFVFJZIHwgLyogbm8gT09NLWtpbGxlciAqLworCQkJCSAgICAgICBfX0dGUF9OT1dBUk4pOwogCQl9Ci0JCWVtdS0+cGFnZV9hZGRyX3RhYmxlW3BhZ2VdID0gZG1hYi5hZGRyOwotCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gZG1hYi5hcmVhOworCQlpZiAoIXApIHsKKwkJCV9fc3ludGhfZnJlZV9wYWdlcyhlbXUsIGZpcnN0X3BhZ2UsIHBhZ2UgLSAxKTsKKwkJCXJldHVybiAtRU5PTUVNOworCQl9CisJCWVtdS0+cGFnZV9hZGRyX3RhYmxlW3BhZ2VdID0gcGFnZV90b19waHlzKHApOworCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gcGFnZV9hZGRyZXNzKHApOwogCX0KIAlyZXR1cm4gMDsKLQotX19mYWlsOgotCS8qIHJlbGVhc2UgYWxsb2NhdGVkIHBhZ2VzICovCi0JbGFzdF9wYWdlID0gcGFnZSAtIDE7Ci0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykgewotCQlkbWFiLmFyZWEgPSBlbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdOwotCQlkbWFiLmFkZHIgPSBlbXUtPnBhZ2VfYWRkcl90YWJsZVtwYWdlXTsKLQkJZG1hYi5ieXRlcyA9IFBBR0VfU0laRTsKLQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQkJZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV0gPSAwOwotCQllbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID0gTlVMTDsKLQl9Ci0KLQlyZXR1cm4gLUVOT01FTTsKIH0KIAogLyoKQEAgLTQ4MSwyMyArNDg3LDEwIEBACiAgKi8KIHN0YXRpYyBpbnQgc3ludGhfZnJlZV9wYWdlcyhzdHJ1Y3Qgc25kX2VtdTEwazEgKmVtdSwgc3RydWN0IHNuZF9lbXUxMGsxX21lbWJsayAqYmxrKQogewotCWludCBwYWdlLCBmaXJzdF9wYWdlLCBsYXN0X3BhZ2U7Ci0Jc3RydWN0IHNuZF9kbWFfYnVmZmVyIGRtYWI7CisJaW50IGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKIAogCWdldF9zaW5nbGVfcGFnZV9yYW5nZShlbXUtPm1lbWhkciwgYmxrLCAmZmlyc3RfcGFnZSwgJmxhc3RfcGFnZSk7Ci0JZG1hYi5kZXYudHlwZSA9IFNORFJWX0RNQV9UWVBFX0RFVjsKLQlkbWFiLmRldi5kZXYgPSBzbmRfZG1hX3BjaV9kYXRhKGVtdS0+cGNpKTsKLQlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKSB7Ci0JCWlmIChlbXUtPnBhZ2VfcHRyX3RhYmxlW3BhZ2VdID09IE5VTEwpCi0JCQljb250aW51ZTsKLQkJZG1hYi5hcmVhID0gZW11LT5wYWdlX3B0cl90YWJsZVtwYWdlXTsKLQkJZG1hYi5hZGRyID0gZW11LT5wYWdlX2FkZHJfdGFibGVbcGFnZV07Ci0JCWRtYWIuYnl0ZXMgPSBQQUdFX1NJWkU7Ci0JCXNuZF9kbWFfZnJlZV9wYWdlcygmZG1hYik7Ci0JCWVtdS0+cGFnZV9hZGRyX3RhYmxlW3BhZ2VdID0gMDsKLQkJZW11LT5wYWdlX3B0cl90YWJsZVtwYWdlXSA9IE5VTEw7Ci0JfQotCisJX19zeW50aF9mcmVlX3BhZ2VzKGVtdSwgZmlyc3RfcGFnZSwgbGFzdF9wYWdlKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYyBiL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmMKaW5kZXggYTZiZTZlMy4uZDJlMTA5MyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuYworKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jCkBAIC0yMzM1LDcgKzIzMzUsNyBAQAogCWlmICghdGJsKQogCQlyZXR1cm4gLTE7CiAJaWYgKHRibC0+dmFsdWUgPj0gMCAmJiB0YmwtPnZhbHVlIDwgbnVtX2NvbmZpZ3MpIHsKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQljaGFyIHRtcFsxMF07CiAJCWNvbnN0IGNoYXIgKm1vZGVsID0gTlVMTDsKIAkJaWYgKG1vZGVscykKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmggYi9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5oCmluZGV4IGRjZDM5MGIuLmVmYzY4MjggMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2NvZGVjLmgKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfY29kZWMuaApAQCAtNzgsNyArNzgsNyBAQAogI2RlZmluZSBBQ19WRVJCX0dFVF9CRUVQX0NPTlRST0wJCTB4MGYwYQogI2RlZmluZSBBQ19WRVJCX0dFVF9FQVBEX0JUTEVOQUJMRQkJMHgwZjBjCiAjZGVmaW5lIEFDX1ZFUkJfR0VUX0RJR0lfQ09OVkVSVF8xCQkweDBmMGQKLSNkZWZpbmUgQUNfVkVSQl9HRVRfRElHSV9DT05WRVJUXzIJCTB4MGYwZQorI2RlZmluZSBBQ19WRVJCX0dFVF9ESUdJX0NPTlZFUlRfMgkJMHgwZjBlIC8qIHVudXNlZCAqLwogI2RlZmluZSBBQ19WRVJCX0dFVF9WT0xVTUVfS05PQl9DT05UUk9MCQkweDBmMGYKIC8qIGYxMC1mMWE6IEdQSU8gKi8KICNkZWZpbmUgQUNfVkVSQl9HRVRfR1BJT19EQVRBCQkJMHgwZjE1CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9od2RlcC5jIGIvc291bmQvcGNpL2hkYS9oZGFfaHdkZXAuYwppbmRleCAyMTc3ZDlhLi42ZTE4YTQyIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9od2RlcC5jCisrKyBiL3NvdW5kL3BjaS9oZGEvaGRhX2h3ZGVwLmMKQEAgLTg4LDcgKzg4LDcgQEAKIAogc3RhdGljIGludCBoZGFfaHdkZXBfb3BlbihzdHJ1Y3Qgc25kX2h3ZGVwICpodywgc3RydWN0IGZpbGUgKmZpbGUpCiB7Ci0jaWZuZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZuZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCWlmICghY2FwYWJsZShDQVBfU1lTX1JBV0lPKSkKIAkJcmV0dXJuIC1FQUNDRVM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jCmluZGV4IGIzYTYxOGUuLjE2NzE1YTYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvaGRhX2ludGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYwpAQCAtNTUsNiArNTUsNyBAQAogc3RhdGljIGludCBlbmFibGVbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9FTkFCTEVfUE5QOwogc3RhdGljIGNoYXIgKm1vZGVsW1NORFJWX0NBUkRTXTsKIHN0YXRpYyBpbnQgcG9zaXRpb25fZml4W1NORFJWX0NBUkRTXTsKK3N0YXRpYyBpbnQgYmRsX3Bvc19hZGpbU05EUlZfQ0FSRFNdID0ge1swIC4uLiAoU05EUlZfQ0FSRFMtMSldID0gLTF9Owogc3RhdGljIGludCBwcm9iZV9tYXNrW1NORFJWX0NBUkRTXSA9IHtbMCAuLi4gKFNORFJWX0NBUkRTLTEpXSA9IC0xfTsKIHN0YXRpYyBpbnQgc2luZ2xlX2NtZDsKIHN0YXRpYyBpbnQgZW5hYmxlX21zaTsKQEAgLTY5LDcgKzcwLDkgQEAKIE1PRFVMRV9QQVJNX0RFU0MobW9kZWwsICJVc2UgdGhlIGdpdmVuIGJvYXJkIG1vZGVsLiIpOwogbW9kdWxlX3BhcmFtX2FycmF5KHBvc2l0aW9uX2ZpeCwgaW50LCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MocG9zaXRpb25fZml4LCAiRml4IERNQSBwb2ludGVyICIKLQkJICIoMCA9IGF1dG8sIDEgPSBub25lLCAyID0gUE9TQlVGLCAzID0gRklGTyBzaXplKS4iKTsKKwkJICIoMCA9IGF1dG8sIDEgPSBub25lLCAyID0gUE9TQlVGKS4iKTsKK21vZHVsZV9wYXJhbV9hcnJheShiZGxfcG9zX2FkaiwgaW50LCBOVUxMLCAwNjQ0KTsKK01PRFVMRV9QQVJNX0RFU0MoYmRsX3Bvc19hZGosICJCREwgcG9zaXRpb24gYWRqdXN0bWVudCBvZmZzZXQuIik7CiBtb2R1bGVfcGFyYW1fYXJyYXkocHJvYmVfbWFzaywgaW50LCBOVUxMLCAwNDQ0KTsKIE1PRFVMRV9QQVJNX0RFU0MocHJvYmVfbWFzaywgIkJpdG1hc2sgdG8gcHJvYmUgY29kZWNzIChkZWZhdWx0ID0gLTEpLiIpOwogbW9kdWxlX3BhcmFtKHNpbmdsZV9jbWQsIGJvb2wsIDA0NDQpOwpAQCAtMTk3LDYgKzIwMCwxMCBAQAogI2RlZmluZSBBVElIRE1JX05VTV9DQVBUVVJFCTAKICNkZWZpbmUgQVRJSERNSV9OVU1fUExBWUJBQ0sJMQogCisvKiBURVJBIGhhcyA0IHBsYXliYWNrIGFuZCAzIGNhcHR1cmUgKi8KKyNkZWZpbmUgVEVSQV9OVU1fQ0FQVFVSRQkzCisjZGVmaW5lIFRFUkFfTlVNX1BMQVlCQUNLCTQKKwogLyogdGhpcyBudW1iZXIgaXMgc3RhdGljYWxseSBkZWZpbmVkIGZvciBzaW1wbGljaXR5ICovCiAjZGVmaW5lIE1BWF9BWlhfREVWCQkxNgogCkBAIC0yNTksOSArMjY2LDggQEAKIC8qIHBvc2l0aW9uIGZpeCBtb2RlICovCiBlbnVtIHsKIAlQT1NfRklYX0FVVE8sCi0JUE9TX0ZJWF9OT05FLAorCVBPU19GSVhfTFBJQiwKIAlQT1NfRklYX1BPU0JVRiwKLQlQT1NfRklYX0ZJRk8sCiB9OwogCiAvKiBEZWZpbmVzIGZvciBBVEkgSEQgQXVkaW8gc3VwcG9ydCBpbiBTQjQ1MCBzb3V0aCBicmlkZ2UgKi8KQEAgLTI4NSw2ICsyOTEsNyBAQAogCXUzMiAqcG9zYnVmOwkJLyogcG9zaXRpb24gYnVmZmVyIHBvaW50ZXIgKi8KIAogCXVuc2lnbmVkIGludCBidWZzaXplOwkvKiBzaXplIG9mIHRoZSBwbGF5IGJ1ZmZlciBpbiBieXRlcyAqLworCXVuc2lnbmVkIGludCBwZXJpb2RfYnl0ZXM7IC8qIHNpemUgb2YgdGhlIHBlcmlvZCBpbiBieXRlcyAqLwogCXVuc2lnbmVkIGludCBmcmFnczsJLyogbnVtYmVyIGZvciBwZXJpb2QgaW4gdGhlIHBsYXkgYnVmZmVyICovCiAJdW5zaWduZWQgaW50IGZpZm9fc2l6ZTsJLyogRklGTyBzaXplICovCiAKQEAgLTMwMSwxMSArMzA4LDExIEBACiAJCQkJCSAqLwogCXVuc2lnbmVkIGNoYXIgc3RyZWFtX3RhZzsJLyogYXNzaWduZWQgc3RyZWFtICovCiAJdW5zaWduZWQgY2hhciBpbmRleDsJCS8qIHN0cmVhbSBpbmRleCAqLwotCS8qIGZvciBzYW5pdHkgY2hlY2sgb2YgcG9zaXRpb24gYnVmZmVyICovCi0JdW5zaWduZWQgaW50IHBlcmlvZF9pbnRyOwogCiAJdW5zaWduZWQgaW50IG9wZW5lZCA6MTsKIAl1bnNpZ25lZCBpbnQgcnVubmluZyA6MTsKKwl1bnNpZ25lZCBpbnQgaXJxX3BlbmRpbmcgOjE7CisJdW5zaWduZWQgaW50IGlycV9pZ25vcmUgOjE7CiB9OwogCiAvKiBDT1JCL1JJUkIgKi8KQEAgLTMyMyw2ICszMzAsNyBAQAogc3RydWN0IGF6eCB7CiAJc3RydWN0IHNuZF9jYXJkICpjYXJkOwogCXN0cnVjdCBwY2lfZGV2ICpwY2k7CisJaW50IGRldl9pbmRleDsKIAogCS8qIGNoaXAgdHlwZSBzcGVjaWZpYyAqLwogCWludCBkcml2ZXJfdHlwZTsKQEAgLTM2Niw5ICszNzQsMTMgQEAKIAl1bnNpZ25lZCBpbnQgc2luZ2xlX2NtZCA6MTsKIAl1bnNpZ25lZCBpbnQgcG9sbGluZ19tb2RlIDoxOwogCXVuc2lnbmVkIGludCBtc2kgOjE7CisJdW5zaWduZWQgaW50IGlycV9wZW5kaW5nX3dhcm5lZCA6MTsKIAogCS8qIGZvciBkZWJ1Z2dpbmcgKi8KIAl1bnNpZ25lZCBpbnQgbGFzdF9jbWQ7CS8qIGxhc3QgaXNzdWVkIGNvbW1hbmQgKHRvIHN5bmMpICovCisKKwkvKiBmb3IgcGVuZGluZyBpcnFzICovCisJc3RydWN0IHdvcmtfc3RydWN0IGlycV9wZW5kaW5nX3dvcms7CiB9OwogCiAvKiBkcml2ZXIgdHlwZXMgKi8KQEAgLTM4MSw2ICszOTMsNyBAQAogCUFaWF9EUklWRVJfU0lTLAogCUFaWF9EUklWRVJfVUxJLAogCUFaWF9EUklWRVJfTlZJRElBLAorCUFaWF9EUklWRVJfVEVSQSwKIH07CiAKIHN0YXRpYyBjaGFyICpkcml2ZXJfc2hvcnRfbmFtZXNbXSBfX2RldmluaXRkYXRhID0gewpAQCAtMzkyLDYgKzQwNSw3IEBACiAJW0FaWF9EUklWRVJfU0lTXSA9ICJIREEgU0lTOTY2IiwKIAlbQVpYX0RSSVZFUl9VTEldID0gIkhEQSBVTEkgTTU0NjEiLAogCVtBWlhfRFJJVkVSX05WSURJQV0gPSAiSERBIE5WaWRpYSIsCisJW0FaWF9EUklWRVJfVEVSQV0gPSAiSERBIFRlcmFkaWNpIiwgCiB9OwogCiAvKgpAQCAtNDI2LDExICs0NDAsNiBAQAogLyogZm9yIHBjbSBzdXBwb3J0ICovCiAjZGVmaW5lIGdldF9henhfZGV2KHN1YnN0cmVhbSkgKHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhKQogCi0vKiBHZXQgdGhlIHVwcGVyIDMyYml0IG9mIHRoZSBnaXZlbiBkbWFfYWRkcl90Ci0gKiBDb21waWxlciBzaG91bGQgb3B0aW1pemUgYW5kIGVsaW1pbmF0ZSB0aGUgY29kZSBpZiBkbWFfYWRkcl90IGlzIDMyYml0Ci0gKi8KLSNkZWZpbmUgdXBwZXJfMzJiaXQoYWRkcikgKHNpemVvZihhZGRyKSA+IDQgPyAodTMyKSgoYWRkcikgPj4gMzIpIDogKHUzMikwKQotCiBzdGF0aWMgaW50IGF6eF9hY3F1aXJlX2lycShzdHJ1Y3QgYXp4ICpjaGlwLCBpbnQgZG9fZGlzY29ubmVjdCk7CiAKIC8qCkBAIC00NjEsNyArNDcwLDcgQEAKIAljaGlwLT5jb3JiLmFkZHIgPSBjaGlwLT5yYi5hZGRyOwogCWNoaXAtPmNvcmIuYnVmID0gKHUzMiAqKWNoaXAtPnJiLmFyZWE7CiAJYXp4X3dyaXRlbChjaGlwLCBDT1JCTEJBU0UsICh1MzIpY2hpcC0+Y29yYi5hZGRyKTsKLQlhenhfd3JpdGVsKGNoaXAsIENPUkJVQkFTRSwgdXBwZXJfMzJiaXQoY2hpcC0+Y29yYi5hZGRyKSk7CisJYXp4X3dyaXRlbChjaGlwLCBDT1JCVUJBU0UsIHVwcGVyXzMyX2JpdHMoY2hpcC0+Y29yYi5hZGRyKSk7CiAKIAkvKiBzZXQgdGhlIGNvcmIgc2l6ZSB0byAyNTYgZW50cmllcyAoVUxJIHJlcXVpcmVzIGV4cGxpY2l0bHkpICovCiAJYXp4X3dyaXRlYihjaGlwLCBDT1JCU0laRSwgMHgwMik7CkBAIC00NzYsNyArNDg1LDcgQEAKIAljaGlwLT5yaXJiLmFkZHIgPSBjaGlwLT5yYi5hZGRyICsgMjA0ODsKIAljaGlwLT5yaXJiLmJ1ZiA9ICh1MzIgKikoY2hpcC0+cmIuYXJlYSArIDIwNDgpOwogCWF6eF93cml0ZWwoY2hpcCwgUklSQkxCQVNFLCAodTMyKWNoaXAtPnJpcmIuYWRkcik7Ci0JYXp4X3dyaXRlbChjaGlwLCBSSVJCVUJBU0UsIHVwcGVyXzMyYml0KGNoaXAtPnJpcmIuYWRkcikpOworCWF6eF93cml0ZWwoY2hpcCwgUklSQlVCQVNFLCB1cHBlcl8zMl9iaXRzKGNoaXAtPnJpcmIuYWRkcikpOwogCiAJLyogc2V0IHRoZSByaXJiIHNpemUgdG8gMjU2IGVudHJpZXMgKFVMSSByZXF1aXJlcyBleHBsaWNpdGx5KSAqLwogCWF6eF93cml0ZWIoY2hpcCwgUklSQlNJWkUsIDB4MDIpOwpAQCAtODQ3LDcgKzg1Niw3IEBACiAKIAkvKiBwcm9ncmFtIHRoZSBwb3NpdGlvbiBidWZmZXIgKi8KIAlhenhfd3JpdGVsKGNoaXAsIERQTEJBU0UsICh1MzIpY2hpcC0+cG9zYnVmLmFkZHIpOwotCWF6eF93cml0ZWwoY2hpcCwgRFBVQkFTRSwgdXBwZXJfMzJiaXQoY2hpcC0+cG9zYnVmLmFkZHIpKTsKKwlhenhfd3JpdGVsKGNoaXAsIERQVUJBU0UsIHVwcGVyXzMyX2JpdHMoY2hpcC0+cG9zYnVmLmFkZHIpKTsKIAogCWNoaXAtPmluaXRpYWxpemVkID0gMTsKIH0KQEAgLTkwOCw2ICs5MTcsOCBAQAogfQogCiAKK3N0YXRpYyBpbnQgYXp4X3Bvc2l0aW9uX29rKHN0cnVjdCBhenggKmNoaXAsIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KTsKKwogLyoKICAqIGludGVycnVwdCBoYW5kbGVyCiAgKi8KQEAgLTkzMCwxMSArOTQxLDIzIEBACiAJCWF6eF9kZXYgPSAmY2hpcC0+YXp4X2RldltpXTsKIAkJaWYgKHN0YXR1cyAmIGF6eF9kZXYtPnNkX2ludF9zdGFfbWFzaykgewogCQkJYXp4X3NkX3dyaXRlYihhenhfZGV2LCBTRF9TVFMsIFNEX0lOVF9NQVNLKTsKLQkJCWlmIChhenhfZGV2LT5zdWJzdHJlYW0gJiYgYXp4X2Rldi0+cnVubmluZykgewotCQkJCWF6eF9kZXYtPnBlcmlvZF9pbnRyKys7CisJCQlpZiAoIWF6eF9kZXYtPnN1YnN0cmVhbSB8fCAhYXp4X2Rldi0+cnVubmluZykKKwkJCQljb250aW51ZTsKKwkJCS8qIGlnbm9yZSB0aGUgZmlyc3QgZHVtbXkgSVJRIChkdWUgdG8gcG9zX2FkaikgKi8KKwkJCWlmIChhenhfZGV2LT5pcnFfaWdub3JlKSB7CisJCQkJYXp4X2Rldi0+aXJxX2lnbm9yZSA9IDA7CisJCQkJY29udGludWU7CisJCQl9CisJCQkvKiBjaGVjayB3aGV0aGVyIHRoaXMgSVJRIGlzIHJlYWxseSBhY2NlcHRhYmxlICovCisJCQlpZiAoYXp4X3Bvc2l0aW9uX29rKGNoaXAsIGF6eF9kZXYpKSB7CisJCQkJYXp4X2Rldi0+aXJxX3BlbmRpbmcgPSAwOwogCQkJCXNwaW5fdW5sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAJCQkJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChhenhfZGV2LT5zdWJzdHJlYW0pOwogCQkJCXNwaW5fbG9jaygmY2hpcC0+cmVnX2xvY2spOworCQkJfSBlbHNlIHsKKwkJCQkvKiBib2d1cyBJUlEsIHByb2Nlc3MgaXQgbGF0ZXIgKi8KKwkJCQlhenhfZGV2LT5pcnFfcGVuZGluZyA9IDE7CisJCQkJc2NoZWR1bGVfd29yaygmY2hpcC0+aXJxX3BlbmRpbmdfd29yayk7CiAJCQl9CiAJCX0KIAl9CkBAIC05NTksNTkgKzk4MiwxMDcgQEAKIAogCiAvKgotICogc2V0IHVwIEJETCBlbnRyaWVzCisgKiBzZXQgdXAgYSBCREwgZW50cnkKICAqLwotc3RhdGljIGludCBhenhfc2V0dXBfcGVyaW9kcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKLQkJCSAgICAgc3RydWN0IGF6eF9kZXYgKmF6eF9kZXYpCitzdGF0aWMgaW50IHNldHVwX2JkbGUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCSAgICAgIHN0cnVjdCBhenhfZGV2ICphenhfZGV2LCB1MzIgKipiZGxwLAorCQkgICAgICBpbnQgb2ZzLCBpbnQgc2l6ZSwgaW50IHdpdGhfaW9jKQogewogCXN0cnVjdCBzbmRfc2dfYnVmICpzZ2J1ZiA9IHNuZF9wY21fc3Vic3RyZWFtX3NnYnVmKHN1YnN0cmVhbSk7CisJdTMyICpiZGwgPSAqYmRscDsKKworCXdoaWxlIChzaXplID4gMCkgeworCQlkbWFfYWRkcl90IGFkZHI7CisJCWludCBjaHVuazsKKworCQlpZiAoYXp4X2Rldi0+ZnJhZ3MgPj0gQVpYX01BWF9CRExfRU5UUklFUykKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWFkZHIgPSBzbmRfcGNtX3NnYnVmX2dldF9hZGRyKHNnYnVmLCBvZnMpOworCQkvKiBwcm9ncmFtIHRoZSBhZGRyZXNzIGZpZWxkIG9mIHRoZSBCREwgZW50cnkgKi8KKwkJYmRsWzBdID0gY3B1X3RvX2xlMzIoKHUzMilhZGRyKTsKKwkJYmRsWzFdID0gY3B1X3RvX2xlMzIodXBwZXJfMzJfYml0cyhhZGRyKSk7CisJCS8qIHByb2dyYW0gdGhlIHNpemUgZmllbGQgb2YgdGhlIEJETCBlbnRyeSAqLworCQljaHVuayA9IFBBR0VfU0laRSAtIChvZnMgJSBQQUdFX1NJWkUpOworCQlpZiAoc2l6ZSA8IGNodW5rKQorCQkJY2h1bmsgPSBzaXplOworCQliZGxbMl0gPSBjcHVfdG9fbGUzMihjaHVuayk7CisJCS8qIHByb2dyYW0gdGhlIElPQyB0byBlbmFibGUgaW50ZXJydXB0CisJCSAqIG9ubHkgd2hlbiB0aGUgd2hvbGUgZnJhZ21lbnQgaXMgcHJvY2Vzc2VkCisJCSAqLworCQlzaXplIC09IGNodW5rOworCQliZGxbM10gPSAoc2l6ZSB8fCAhd2l0aF9pb2MpID8gMCA6IGNwdV90b19sZTMyKDB4MDEpOworCQliZGwgKz0gNDsKKwkJYXp4X2Rldi0+ZnJhZ3MrKzsKKwkJb2ZzICs9IGNodW5rOworCX0KKwkqYmRscCA9IGJkbDsKKwlyZXR1cm4gb2ZzOworfQorCisvKgorICogc2V0IHVwIEJETCBlbnRyaWVzCisgKi8KK3N0YXRpYyBpbnQgYXp4X3NldHVwX3BlcmlvZHMoc3RydWN0IGF6eCAqY2hpcCwKKwkJCSAgICAgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgIHN0cnVjdCBhenhfZGV2ICphenhfZGV2KQorewogCXUzMiAqYmRsOwogCWludCBpLCBvZnMsIHBlcmlvZHMsIHBlcmlvZF9ieXRlczsKKwlpbnQgcG9zX2FkajsKIAogCS8qIHJlc2V0IEJETCBhZGRyZXNzICovCiAJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgMCk7CiAJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQVSwgMCk7CiAKIAlwZXJpb2RfYnl0ZXMgPSBzbmRfcGNtX2xpYl9wZXJpb2RfYnl0ZXMoc3Vic3RyZWFtKTsKKwlhenhfZGV2LT5wZXJpb2RfYnl0ZXMgPSBwZXJpb2RfYnl0ZXM7CiAJcGVyaW9kcyA9IGF6eF9kZXYtPmJ1ZnNpemUgLyBwZXJpb2RfYnl0ZXM7CiAKIAkvKiBwcm9ncmFtIHRoZSBpbml0aWFsIEJETCBlbnRyaWVzICovCiAJYmRsID0gKHUzMiAqKWF6eF9kZXYtPmJkbC5hcmVhOwogCW9mcyA9IDA7CiAJYXp4X2Rldi0+ZnJhZ3MgPSAwOwotCWZvciAoaSA9IDA7IGkgPCBwZXJpb2RzOyBpKyspIHsKLQkJaW50IHNpemUsIHJlc3Q7Ci0JCWlmIChpID49IEFaWF9NQVhfQkRMX0VOVFJJRVMpIHsKLQkJCXNuZF9wcmludGsoS0VSTl9FUlIgIlRvbyBtYW55IEJETCBlbnRyaWVzOiAiCi0JCQkJICAgImJ1ZmZlcj0lZCwgcGVyaW9kPSVkXG4iLAotCQkJCSAgIGF6eF9kZXYtPmJ1ZnNpemUsIHBlcmlvZF9ieXRlcyk7Ci0JCQkvKiByZXNldCAqLwotCQkJYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQTCwgMCk7Ci0JCQlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCAwKTsKLQkJCXJldHVybiAtRUlOVkFMOworCWF6eF9kZXYtPmlycV9pZ25vcmUgPSAwOworCXBvc19hZGogPSBiZGxfcG9zX2FkaltjaGlwLT5kZXZfaW5kZXhdOworCWlmIChwb3NfYWRqID4gMCkgeworCQlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCQlwb3NfYWRqID0gKHBvc19hZGogKiBydW50aW1lLT5yYXRlICsgNDc5OTkpIC8gNDgwMDA7CisJCWlmICghcG9zX2FkaikKKwkJCXBvc19hZGogPSAxOworCQlwb3NfYWRqID0gZnJhbWVzX3RvX2J5dGVzKHJ1bnRpbWUsIHBvc19hZGopOworCQlpZiAocG9zX2FkaiA+PSBwZXJpb2RfYnl0ZXMpIHsKKwkJCXNuZF9wcmludGsoS0VSTl9XQVJOSU5HICJUb28gYmlnIGFkanVzdG1lbnQgJWRcbiIsCisJCQkJICAgYmRsX3Bvc19hZGpbY2hpcC0+ZGV2X2luZGV4XSk7CisJCQlwb3NfYWRqID0gMDsKKwkJfSBlbHNlIHsKKwkJCW9mcyA9IHNldHVwX2JkbGUoc3Vic3RyZWFtLCBhenhfZGV2LAorCQkJCQkgJmJkbCwgb2ZzLCBwb3NfYWRqLCAxKTsKKwkJCWlmIChvZnMgPCAwKQorCQkJCWdvdG8gZXJyb3I7CisJCQlhenhfZGV2LT5pcnFfaWdub3JlID0gMTsKIAkJfQotCQlyZXN0ID0gcGVyaW9kX2J5dGVzOwotCQlkbyB7Ci0JCQlkbWFfYWRkcl90IGFkZHIgPSBzbmRfcGNtX3NnYnVmX2dldF9hZGRyKHNnYnVmLCBvZnMpOwotCQkJLyogcHJvZ3JhbSB0aGUgYWRkcmVzcyBmaWVsZCBvZiB0aGUgQkRMIGVudHJ5ICovCi0JCQliZGxbMF0gPSBjcHVfdG9fbGUzMigodTMyKWFkZHIpOwotCQkJYmRsWzFdID0gY3B1X3RvX2xlMzIodXBwZXJfMzJiaXQoYWRkcikpOwotCQkJLyogcHJvZ3JhbSB0aGUgc2l6ZSBmaWVsZCBvZiB0aGUgQkRMIGVudHJ5ICovCi0JCQlzaXplID0gUEFHRV9TSVpFIC0gKG9mcyAlIFBBR0VfU0laRSk7Ci0JCQlpZiAocmVzdCA8IHNpemUpCi0JCQkJc2l6ZSA9IHJlc3Q7Ci0JCQliZGxbMl0gPSBjcHVfdG9fbGUzMihzaXplKTsKLQkJCS8qIHByb2dyYW0gdGhlIElPQyB0byBlbmFibGUgaW50ZXJydXB0Ci0JCQkgKiBvbmx5IHdoZW4gdGhlIHdob2xlIGZyYWdtZW50IGlzIHByb2Nlc3NlZAotCQkJICovCi0JCQlyZXN0IC09IHNpemU7Ci0JCQliZGxbM10gPSByZXN0ID8gMCA6IGNwdV90b19sZTMyKDB4MDEpOwotCQkJYmRsICs9IDQ7Ci0JCQlhenhfZGV2LT5mcmFncysrOwotCQkJb2ZzICs9IHNpemU7Ci0JCX0gd2hpbGUgKHJlc3QgPiAwKTsKKwl9IGVsc2UKKwkJcG9zX2FkaiA9IDA7CisJZm9yIChpID0gMDsgaSA8IHBlcmlvZHM7IGkrKykgeworCQlpZiAoaSA9PSBwZXJpb2RzIC0gMSAmJiBwb3NfYWRqKQorCQkJb2ZzID0gc2V0dXBfYmRsZShzdWJzdHJlYW0sIGF6eF9kZXYsICZiZGwsIG9mcywKKwkJCQkJIHBlcmlvZF9ieXRlcyAtIHBvc19hZGosIDApOworCQllbHNlCisJCQlvZnMgPSBzZXR1cF9iZGxlKHN1YnN0cmVhbSwgYXp4X2RldiwgJmJkbCwgb2ZzLAorCQkJCQkgcGVyaW9kX2J5dGVzLCAxKTsKKwkJaWYgKG9mcyA8IDApCisJCQlnb3RvIGVycm9yOwogCX0KIAlyZXR1cm4gMDsKKworIGVycm9yOgorCXNuZF9wcmludGsoS0VSTl9FUlIgIlRvbyBtYW55IEJETCBlbnRyaWVzOiBidWZmZXI9JWQsIHBlcmlvZD0lZFxuIiwKKwkJICAgYXp4X2Rldi0+YnVmc2l6ZSwgcGVyaW9kX2J5dGVzKTsKKwkvKiByZXNldCAqLworCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUEwsIDApOworCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUFUsIDApOworCXJldHVybiAtRUlOVkFMOwogfQogCiAvKgpAQCAtMTA2Miw3ICsxMTMzLDcgQEAKIAkvKiBsb3dlciBCREwgYWRkcmVzcyAqLwogCWF6eF9zZF93cml0ZWwoYXp4X2RldiwgU0RfQkRMUEwsICh1MzIpYXp4X2Rldi0+YmRsLmFkZHIpOwogCS8qIHVwcGVyIEJETCBhZGRyZXNzICovCi0JYXp4X3NkX3dyaXRlbChhenhfZGV2LCBTRF9CRExQVSwgdXBwZXJfMzJiaXQoYXp4X2Rldi0+YmRsLmFkZHIpKTsKKwlhenhfc2Rfd3JpdGVsKGF6eF9kZXYsIFNEX0JETFBVLCB1cHBlcl8zMl9iaXRzKGF6eF9kZXYtPmJkbC5hZGRyKSk7CiAKIAkvKiBlbmFibGUgdGhlIHBvc2l0aW9uIGJ1ZmZlciAqLwogCWlmIChjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9QT1NCVUYgfHwKQEAgLTEwODUsNyArMTE1Niw3IEBACiAgKi8KIAogc3RhdGljIHVuc2lnbmVkIGludCBhenhfbWF4X2NvZGVjc1tdIF9fZGV2aW5pdGRhdGEgPSB7Ci0JW0FaWF9EUklWRVJfSUNIXSA9IDMsCisJW0FaWF9EUklWRVJfSUNIXSA9IDQsCQkvKiBTb21lIElDSDkgYm9hcmRzIHVzZSBTRDMgKi8KIAlbQVpYX0RSSVZFUl9TQ0hdID0gMywKIAlbQVpYX0RSSVZFUl9BVEldID0gNCwKIAlbQVpYX0RSSVZFUl9BVElIRE1JXSA9IDQsCkBAIC0xMDkzLDYgKzExNjQsNyBAQAogCVtBWlhfRFJJVkVSX1NJU10gPSAzLAkJLyogRklYTUU6IGNvcnJlY3Q/ICovCiAJW0FaWF9EUklWRVJfVUxJXSA9IDMsCQkvKiBGSVhNRTogY29ycmVjdD8gKi8KIAlbQVpYX0RSSVZFUl9OVklESUFdID0gMywJLyogRklYTUU6IGNvcnJlY3Q/ICovCisJW0FaWF9EUklWRVJfVEVSQV0gPSAxLAogfTsKIAogc3RhdGljIGludCBfX2RldmluaXQgYXp4X2NvZGVjX2NyZWF0ZShzdHJ1Y3QgYXp4ICpjaGlwLCBjb25zdCBjaGFyICptb2RlbCwKQEAgLTEzMTYsNyArMTM4OCw3IEBACiAKIAlzbmRfcHJpbnRkZCgiYXp4X3BjbV9wcmVwYXJlOiBidWZzaXplPTB4JXgsIGZvcm1hdD0weCV4XG4iLAogCQkgICAgYXp4X2Rldi0+YnVmc2l6ZSwgYXp4X2Rldi0+Zm9ybWF0X3ZhbCk7Ci0JaWYgKGF6eF9zZXR1cF9wZXJpb2RzKHN1YnN0cmVhbSwgYXp4X2RldikgPCAwKQorCWlmIChhenhfc2V0dXBfcGVyaW9kcyhjaGlwLCBzdWJzdHJlYW0sIGF6eF9kZXYpIDwgMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAJYXp4X3NldHVwX2NvbnRyb2xsZXIoY2hpcCwgYXp4X2Rldik7CiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCkBAIC0xNDIxLDM1ICsxNDkzLDExMyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QgYXp4X3BjbV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQorc3RhdGljIHVuc2lnbmVkIGludCBhenhfZ2V0X3Bvc2l0aW9uKHN0cnVjdCBhenggKmNoaXAsCisJCQkJICAgICBzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldikKIHsKLQlzdHJ1Y3QgYXp4X3BjbSAqYXBjbSA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKLQlzdHJ1Y3QgYXp4ICpjaGlwID0gYXBjbS0+Y2hpcDsKLQlzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldiA9IGdldF9henhfZGV2KHN1YnN0cmVhbSk7CiAJdW5zaWduZWQgaW50IHBvczsKIAogCWlmIChjaGlwLT5wb3NpdGlvbl9maXggPT0gUE9TX0ZJWF9QT1NCVUYgfHwKIAkgICAgY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfQVVUTykgewogCQkvKiB1c2UgdGhlIHBvc2l0aW9uIGJ1ZmZlciAqLwogCQlwb3MgPSBsZTMyX3RvX2NwdSgqYXp4X2Rldi0+cG9zYnVmKTsKLQkJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX0FVVE8gJiYKLQkJICAgIGF6eF9kZXYtPnBlcmlvZF9pbnRyID09IDEgJiYgIXBvcykgewotCQkJcHJpbnRrKEtFUk5fV0FSTklORwotCQkJICAgICAgICJoZGEtaW50ZWw6IEludmFsaWQgcG9zaXRpb24gYnVmZmVyLCAiCi0JCQkgICAgICAgInVzaW5nIExQSUIgcmVhZCBtZXRob2QgaW5zdGVhZC5cbiIpOwotCQkJY2hpcC0+cG9zaXRpb25fZml4ID0gUE9TX0ZJWF9OT05FOwotCQkJZ290byByZWFkX2xwaWI7Ci0JCX0KIAl9IGVsc2UgewotCXJlYWRfbHBpYjoKIAkJLyogcmVhZCBMUElCICovCiAJCXBvcyA9IGF6eF9zZF9yZWFkbChhenhfZGV2LCBTRF9MUElCKTsKLQkJaWYgKGNoaXAtPnBvc2l0aW9uX2ZpeCA9PSBQT1NfRklYX0ZJRk8pCi0JCQlwb3MgKz0gYXp4X2Rldi0+Zmlmb19zaXplOwogCX0KIAlpZiAocG9zID49IGF6eF9kZXYtPmJ1ZnNpemUpCiAJCXBvcyA9IDA7Ci0JcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHBvcyk7CisJcmV0dXJuIHBvczsKK30KKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190IGF6eF9wY21fcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXp4X3BjbSAqYXBjbSA9IHNuZF9wY21fc3Vic3RyZWFtX2NoaXAoc3Vic3RyZWFtKTsKKwlzdHJ1Y3QgYXp4ICpjaGlwID0gYXBjbS0+Y2hpcDsKKwlzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldiA9IGdldF9henhfZGV2KHN1YnN0cmVhbSk7CisJcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsCisJCQkgICAgICAgYXp4X2dldF9wb3NpdGlvbihjaGlwLCBhenhfZGV2KSk7Cit9CisKKy8qCisgKiBDaGVjayB3aGV0aGVyIHRoZSBjdXJyZW50IERNQSBwb3NpdGlvbiBpcyBhY2NlcHRhYmxlIGZvciB1cGRhdGluZworICogcGVyaW9kcy4gIFJldHVybnMgbm9uLXplcm8gaWYgaXQncyBPSy4KKyAqCisgKiBNYW55IEhELWF1ZGlvIGNvbnRyb2xsZXJzIGFwcGVhciBwcmV0dHkgaW5hY2N1cmF0ZSBhYm91dAorICogdGhlIHVwZGF0ZS1JUlEgdGltaW5nLiAgVGhlIElSUSBpcyBpc3N1ZWQgYmVmb3JlIGFjdHVhbGx5IHRoZQorICogZGF0YSBpcyBwcm9jZXNzZWQuICBTbywgd2UgbmVlZCB0byBwcm9jZXNzIGl0IGFmdGVyd29yZHMgaW4gYQorICogd29ya3F1ZXVlLgorICovCitzdGF0aWMgaW50IGF6eF9wb3NpdGlvbl9vayhzdHJ1Y3QgYXp4ICpjaGlwLCBzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldikKK3sKKwl1bnNpZ25lZCBpbnQgcG9zOworCisJcG9zID0gYXp4X2dldF9wb3NpdGlvbihjaGlwLCBhenhfZGV2KTsKKwlpZiAoY2hpcC0+cG9zaXRpb25fZml4ID09IFBPU19GSVhfQVVUTykgeworCQlpZiAoIXBvcykgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJICAgICAgICJoZGEtaW50ZWw6IEludmFsaWQgcG9zaXRpb24gYnVmZmVyLCAiCisJCQkgICAgICAgInVzaW5nIExQSUIgcmVhZCBtZXRob2QgaW5zdGVhZC5cbiIpOworCQkJY2hpcC0+cG9zaXRpb25fZml4ID0gUE9TX0ZJWF9MUElCOworCQkJcG9zID0gYXp4X2dldF9wb3NpdGlvbihjaGlwLCBhenhfZGV2KTsKKwkJfSBlbHNlCisJCQljaGlwLT5wb3NpdGlvbl9maXggPSBQT1NfRklYX1BPU0JVRjsKKwl9CisKKwlpZiAocG9zICUgYXp4X2Rldi0+cGVyaW9kX2J5dGVzID4gYXp4X2Rldi0+cGVyaW9kX2J5dGVzIC8gMikKKwkJcmV0dXJuIDA7IC8qIE5HIC0gaXQncyBiZWxvdyB0aGUgcGVyaW9kIGJvdW5kYXJ5ICovCisJcmV0dXJuIDE7IC8qIE9LLCBpdCdzIGZpbmUgKi8KK30KKworLyoKKyAqIFRoZSB3b3JrIGZvciBwZW5kaW5nIFBDTSBwZXJpb2QgdXBkYXRlcy4KKyAqLworc3RhdGljIHZvaWQgYXp4X2lycV9wZW5kaW5nX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBhenggKmNoaXAgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGF6eCwgaXJxX3BlbmRpbmdfd29yayk7CisJaW50IGksIHBlbmRpbmc7CisKKwlpZiAoIWNoaXAtPmlycV9wZW5kaW5nX3dhcm5lZCkgeworCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCSAgICAgICAiaGRhLWludGVsOiBJUlEgdGltaW5nIHdvcmthcm91bmQgaXMgYWN0aXZhdGVkICIKKwkJICAgICAgICJmb3IgY2FyZCAjJWQuIFN1Z2dlc3QgYSBiaWdnZXIgYmRsX3Bvc19hZGouXG4iLAorCQkgICAgICAgY2hpcC0+Y2FyZC0+bnVtYmVyKTsKKwkJY2hpcC0+aXJxX3BlbmRpbmdfd2FybmVkID0gMTsKKwl9CisKKwlmb3IgKDs7KSB7CisJCXBlbmRpbmcgPSAwOworCQlzcGluX2xvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisJCWZvciAoaSA9IDA7IGkgPCBjaGlwLT5udW1fc3RyZWFtczsgaSsrKSB7CisJCQlzdHJ1Y3QgYXp4X2RldiAqYXp4X2RldiA9ICZjaGlwLT5henhfZGV2W2ldOworCQkJaWYgKCFhenhfZGV2LT5pcnFfcGVuZGluZyB8fAorCQkJICAgICFhenhfZGV2LT5zdWJzdHJlYW0gfHwKKwkJCSAgICAhYXp4X2Rldi0+cnVubmluZykKKwkJCQljb250aW51ZTsKKwkJCWlmIChhenhfcG9zaXRpb25fb2soY2hpcCwgYXp4X2RldikpIHsKKwkJCQlhenhfZGV2LT5pcnFfcGVuZGluZyA9IDA7CisJCQkJc3Bpbl91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKKwkJCQlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGF6eF9kZXYtPnN1YnN0cmVhbSk7CisJCQkJc3Bpbl9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CisJCQl9IGVsc2UKKwkJCQlwZW5kaW5nKys7CisJCX0KKwkJc3Bpbl91bmxvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisJCWlmICghcGVuZGluZykKKwkJCXJldHVybjsKKwkJY29uZF9yZXNjaGVkKCk7CisJfQorfQorCisvKiBjbGVhciBpcnFfcGVuZGluZyBmbGFncyBhbmQgYXNzdXJlIG5vIG9uLWdvaW5nIHdvcmtxICovCitzdGF0aWMgdm9pZCBhenhfY2xlYXJfaXJxX3BlbmRpbmcoc3RydWN0IGF6eCAqY2hpcCkKK3sKKwlpbnQgaTsKKworCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwlmb3IgKGkgPSAwOyBpIDwgY2hpcC0+bnVtX3N0cmVhbXM7IGkrKykKKwkJY2hpcC0+YXp4X2RldltpXS5pcnFfcGVuZGluZyA9IDA7CisJc3Bpbl91bmxvY2tfaXJxKCZjaGlwLT5yZWdfbG9jayk7CisJZmx1c2hfc2NoZWR1bGVkX3dvcmsoKTsKIH0KIAogc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBhenhfcGNtX29wcyA9IHsKQEAgLTE2NzYsNiArMTgyNiw3IEBACiAJaW50IGk7CiAKIAlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJYXp4X2NsZWFyX2lycV9wZW5kaW5nKGNoaXApOwogCWZvciAoaSA9IDA7IGkgPCBBWlhfTUFYX1BDTVM7IGkrKykKIAkJc25kX3BjbV9zdXNwZW5kX2FsbChjaGlwLT5wY21baV0pOwogCWlmIChjaGlwLT5pbml0aWFsaXplZCkKQEAgLTE3MzIsNiArMTg4Myw3IEBACiAJaW50IGk7CiAKIAlpZiAoY2hpcC0+aW5pdGlhbGl6ZWQpIHsKKwkJYXp4X2NsZWFyX2lycV9wZW5kaW5nKGNoaXApOwogCQlmb3IgKGkgPSAwOyBpIDwgY2hpcC0+bnVtX3N0cmVhbXM7IGkrKykKIAkJCWF6eF9zdHJlYW1fc3RvcChjaGlwLCAmY2hpcC0+YXp4X2RldltpXSk7CiAJCWF6eF9zdG9wX2NoaXAoY2hpcCk7CkBAIC0xNzcwLDkgKzE5MjIsOSBAQAogICogd2hpdGUvYmxhY2stbGlzdGluZyBmb3IgcG9zaXRpb25fZml4CiAgKi8KIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBwb3NpdGlvbl9maXhfbGlzdFtdIF9fZGV2aW5pdGRhdGEgPSB7Ci0JU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFjYywgIkRlbGwgRDgyMCIsIFBPU19GSVhfTk9ORSksCi0JU05EX1BDSV9RVUlSSygweDEwMjgsIDB4MDFkZSwgIkRlbGwgUHJlY2lzaW9uIDM5MCIsIFBPU19GSVhfTk9ORSksCi0JU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODEzZCwgIkFTVVMgUDVBRDIiLCBQT1NfRklYX05PTkUpLAorCVNORF9QQ0lfUVVJUksoMHgxMDI4LCAweDAxY2MsICJEZWxsIEQ4MjAiLCBQT1NfRklYX0xQSUIpLAorCVNORF9QQ0lfUVVJUksoMHgxMDI4LCAweDAxZGUsICJEZWxsIFByZWNpc2lvbiAzOTAiLCBQT1NfRklYX0xQSUIpLAorCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxM2QsICJBU1VTIFA1QUQyIiwgUE9TX0ZJWF9MUElCKSwKIAl7fQogfTsKIApAQCAtMTg1NywxMiArMjAwOSwyNSBAQAogCWNoaXAtPmlycSA9IC0xOwogCWNoaXAtPmRyaXZlcl90eXBlID0gZHJpdmVyX3R5cGU7CiAJY2hpcC0+bXNpID0gZW5hYmxlX21zaTsKKwljaGlwLT5kZXZfaW5kZXggPSBkZXY7CisJSU5JVF9XT1JLKCZjaGlwLT5pcnFfcGVuZGluZ193b3JrLCBhenhfaXJxX3BlbmRpbmdfd29yayk7CiAKIAljaGlwLT5wb3NpdGlvbl9maXggPSBjaGVja19wb3NpdGlvbl9maXgoY2hpcCwgcG9zaXRpb25fZml4W2Rldl0pOwogCWNoZWNrX3Byb2JlX21hc2soY2hpcCwgZGV2KTsKIAogCWNoaXAtPnNpbmdsZV9jbWQgPSBzaW5nbGVfY21kOwogCisJaWYgKGJkbF9wb3NfYWRqW2Rldl0gPCAwKSB7CisJCXN3aXRjaCAoY2hpcC0+ZHJpdmVyX3R5cGUpIHsKKwkJY2FzZSBBWlhfRFJJVkVSX0lDSDoKKwkJCWJkbF9wb3NfYWRqW2Rldl0gPSAxOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQliZGxfcG9zX2FkaltkZXZdID0gMzI7CisJCQlicmVhazsKKwkJfQorCX0KKwogI2lmIEJJVFNfUEVSX0xPTkcgIT0gNjQKIAkvKiBGaXggdXAgYmFzZSBhZGRyZXNzIG9uIFVMSSBNNTQ2MSAqLwogCWlmIChjaGlwLT5kcml2ZXJfdHlwZSA9PSBBWlhfRFJJVkVSX1VMSSkgewpAQCAtMjA4OSw2ICsyMjU0LDcgQEAKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI3ZDgpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjY5YSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyODRiKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKKwl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDI5MTEpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LAogCXsgUENJX0RFVklDRSgweDgwODYsIDB4MjkzZSksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfSUNIIH0sCiAJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHgyOTNmKSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9JQ0ggfSwKIAl7IFBDSV9ERVZJQ0UoMHg4MDg2LCAweDNhM2UpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX0lDSCB9LApAQCAtMjE0MSw2ICsyMzA3LDggQEAKIAl7IFBDSV9ERVZJQ0UoMHgxMGRlLCAweDBiZDUpLCAuZHJpdmVyX2RhdGEgPSBBWlhfRFJJVkVSX05WSURJQSB9LAogCXsgUENJX0RFVklDRSgweDEwZGUsIDB4MGJkNiksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfTlZJRElBIH0sCiAJeyBQQ0lfREVWSUNFKDB4MTBkZSwgMHgwYmQ3KSwgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9OVklESUEgfSwKKwkvKiBUZXJhZGljaSAqLworCXsgUENJX0RFVklDRSgweDY1NDksIDB4MTIwMCksIC5kcml2ZXJfZGF0YSA9IEFaWF9EUklWRVJfVEVSQSB9LAogCXsgMCwgfQogfTsKIE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBhenhfaWRzKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvaGRhX3Byb2MuYyBiL3NvdW5kL3BjaS9oZGEvaGRhX3Byb2MuYwppbmRleCA1NjMzZjc3Li4xZTVhZmY1IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9wcm9jLmMKKysrIGIvc291bmQvcGNpL2hkYS9oZGFfcHJvYy5jCkBAIC0zNjYsOCArMzY2LDYgQEAKIHsKIAl1bnNpZ25lZCBpbnQgZGlnaTEgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIG5pZCwgMCwKIAkJCQkJCUFDX1ZFUkJfR0VUX0RJR0lfQ09OVkVSVF8xLCAwKTsKLQl1bnNpZ25lZCBpbnQgZGlnaTIgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIG5pZCwgMCwKLQkJCQkJCUFDX1ZFUkJfR0VUX0RJR0lfQ09OVkVSVF8yLCAwKTsKIAlzbmRfaXByaW50ZihidWZmZXIsICIgIERpZ2l0YWw6Iik7CiAJaWYgKGRpZ2kxICYgQUNfRElHMV9FTkFCTEUpCiAJCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiBFbmFibGVkIik7CkBAIC0zODYsNyArMzg0LDggQEAKIAlpZiAoZGlnaTEgJiBBQ19ESUcxX0xFVkVMKQogCQlzbmRfaXByaW50ZihidWZmZXIsICIgR2VuTGV2ZWwiKTsKIAlzbmRfaXByaW50ZihidWZmZXIsICJcbiIpOwotCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIiAgRGlnaXRhbCBjYXRlZ29yeTogMHgleFxuIiwgZGlnaTIgJiBBQ19ESUcyX0NDKTsKKwlzbmRfaXByaW50ZihidWZmZXIsICIgIERpZ2l0YWwgY2F0ZWdvcnk6IDB4JXhcbiIsCisJCSAgICAoZGlnaTEgPj4gOCkgJiBBQ19ESUcyX0NDKTsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgKmdldF9wd3Jfc3RhdGUodTMyIHN0YXRlKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfYW5hbG9nLmMKaW5kZXggZTBhNjA1YS4uZTgwMDNkOSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9hbmFsb2cuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX2FuYWxvZy5jCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVkZSA8bGludXgvcGNpLmg+Ci0jaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KIAogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlICJoZGFfY29kZWMuaCIKQEAgLTY0LDcgKzYzLDYgQEAKIAkvKiBQQ00gaW5mb3JtYXRpb24gKi8KIAlzdHJ1Y3QgaGRhX3BjbSBwY21fcmVjWzNdOwkvKiB1c2VkIGluIGFsY19idWlsZF9wY21zKCkgKi8KIAotCXN0cnVjdCBtdXRleCBhbXBfbXV0ZXg7CS8qIFBDTSB2b2x1bWUvbXV0ZSBjb250cm9sIG11dGV4ICovCiAJdW5zaWduZWQgaW50IHNwZGlmX3JvdXRlOwogCiAJLyogZHluYW1pYyBjb250cm9scywgaW5pdF92ZXJicyBhbmQgaW5wdXRfbXV4ICovCkBAIC0xNjE4LDYgKzE2MTYsNyBAQAogCiBzdGF0aWMgc3RydWN0IHNuZF9wY2lfcXVpcmsgYWQxOTgxX2NmZ190YmxbXSA9IHsKIAlTTkRfUENJX1FVSVJLKDB4MTAxNCwgMHgwNTk3LCAiTGVub3ZvIFo2MCIsIEFEMTk4MV9USElOS1BBRCksCisJU05EX1BDSV9RVUlSSygweDEwMTQsIDB4MDViNywgIkxlbm92byBaNjBtIiwgQUQxOTgxX1RISU5LUEFEKSwKIAkvKiBBbGwgSFAgbW9kZWxzICovCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDAsICJIUCBueCIsIEFEMTk4MV9IUCksCiAJU05EX1BDSV9RVUlSSygweDExNzksIDB4MDAwMSwgIlRvc2hpYmEgVTIwNSIsIEFEMTk4MV9UT1NISUJBKSwKQEAgLTI2MjMsNyArMjYyMiw3IEBACiB7CiAJc3RydWN0IGFkMTk4eF9zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CiAJaGRhX25pZF90IG5pZDsKLQlpbnQgaWR4LCBlcnI7CisJaW50IGksIGlkeCwgZXJyOwogCWNoYXIgbmFtZVszMl07CiAKIAlpZiAoISBwaW4pCkBAIC0yNjMxLDE2ICsyNjMwLDI2IEBACiAKIAlpZHggPSBhZDE5ODhfcGluX2lkeChwaW4pOwogCW5pZCA9IGFkMTk4OF9pZHhfdG9fZGFjKGNvZGVjLCBpZHgpOwotCS8qIHNwZWNpZnkgdGhlIERBQyBhcyB0aGUgZXh0cmEgb3V0cHV0ICovCi0JaWYgKCEgc3BlYy0+bXVsdGlvdXQuaHBfbmlkKQotCQlzcGVjLT5tdWx0aW91dC5ocF9uaWQgPSBuaWQ7Ci0JZWxzZQotCQlzcGVjLT5tdWx0aW91dC5leHRyYV9vdXRfbmlkWzBdID0gbmlkOwotCS8qIGNvbnRyb2wgSFAgdm9sdW1lL3N3aXRjaCBvbiB0aGUgb3V0cHV0IG1peGVyIGFtcCAqLwotCXNwcmludGYobmFtZSwgIiVzIFBsYXliYWNrIFZvbHVtZSIsIHBmeCk7Ci0JaWYgKChlcnIgPSBhZGRfY29udHJvbChzcGVjLCBBRF9DVExfV0lER0VUX1ZPTCwgbmFtZSwKLQkJCSAgICAgICBIREFfQ09NUE9TRV9BTVBfVkFMKG5pZCwgMywgMCwgSERBX09VVFBVVCkpKSA8IDApCi0JCXJldHVybiBlcnI7CisJLyogY2hlY2sgd2hldGhlciB0aGUgY29ycmVzcG9uZGluZyBEQUMgd2FzIGFscmVhZHkgdGFrZW4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgc3BlYy0+YXV0b2NmZy5saW5lX291dHM7IGkrKykgeworCQloZGFfbmlkX3QgcGluID0gc3BlYy0+YXV0b2NmZy5saW5lX291dF9waW5zW2ldOworCQloZGFfbmlkX3QgZGFjID0gYWQxOTg4X2lkeF90b19kYWMoY29kZWMsIGFkMTk4OF9waW5faWR4KHBpbikpOworCQlpZiAoZGFjID09IG5pZCkKKwkJCWJyZWFrOworCX0KKwlpZiAoaSA+PSBzcGVjLT5hdXRvY2ZnLmxpbmVfb3V0cykgeworCQkvKiBzcGVjaWZ5IHRoZSBEQUMgYXMgdGhlIGV4dHJhIG91dHB1dCAqLworCQlpZiAoIXNwZWMtPm11bHRpb3V0LmhwX25pZCkKKwkJCXNwZWMtPm11bHRpb3V0LmhwX25pZCA9IG5pZDsKKwkJZWxzZQorCQkJc3BlYy0+bXVsdGlvdXQuZXh0cmFfb3V0X25pZFswXSA9IG5pZDsKKwkJLyogY29udHJvbCBIUCB2b2x1bWUvc3dpdGNoIG9uIHRoZSBvdXRwdXQgbWl4ZXIgYW1wICovCisJCXNwcmludGYobmFtZSwgIiVzIFBsYXliYWNrIFZvbHVtZSIsIHBmeCk7CisJCWVyciA9IGFkZF9jb250cm9sKHNwZWMsIEFEX0NUTF9XSURHRVRfVk9MLCBuYW1lLAorCQkJCSAgSERBX0NPTVBPU0VfQU1QX1ZBTChuaWQsIDMsIDAsIEhEQV9PVVRQVVQpKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KIAluaWQgPSBhZDE5ODhfbWl4ZXJfbmlkc1tpZHhdOwogCXNwcmludGYobmFtZSwgIiVzIFBsYXliYWNrIFN3aXRjaCIsIHBmeCk7CiAJaWYgKChlcnIgPSBhZGRfY29udHJvbChzcGVjLCBBRF9DVExfQklORF9NVVRFLCBuYW1lLApAQCAtMjg1OCw2ICsyODY3LDcgQEAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhZDE5ODhfY2ZnX3RibFtdID0gewogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxZWMsICJBc3VzIFA1Qi1ETFgiLCBBRDE5ODhfNlNUQUNLX0RJRyksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODFmNiwgIkFzdXMgTTJOLVNMSSIsIEFEMTk4OF82U1RBQ0tfRElHKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHg4Mjc3LCAiQXN1cyBQNUstRS9XSUZJLUFQIiwgQUQxOTg4XzZTVEFDS19ESUcpLAogCXt9CiB9OwogCkBAIC0zMTc2LDcgKzMxODYsNiBAQAogCWlmIChzcGVjID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtMzY0MywzMyArMzY1MiwxNyBAQAogCXsgfSAvKiBlbmQgKi8KIH07CiAKLXN0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhZDE4ODRhX21vYmlsZV9jYXB0dXJlX3NvdXJjZSA9IHsKLQkubnVtX2l0ZW1zID0gMiwKLQkuaXRlbXMgPSB7Ci0JCXsgIk1pYyIsIDB4MSB9LCAvKiBwb3J0LUMgKi8KLQkJeyAiTWl4IiwgMHgzIH0sCi0JfSwKLX07Ci0KIHN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhZDE4ODRhX21vYmlsZV9taXhlcnNbXSA9IHsKIAlIREFfQ09ERUNfVk9MVU1FKCJNYXN0ZXIgUGxheWJhY2sgVm9sdW1lIiwgMHgyMSwgMHgwLCBIREFfT1VUUFVUKSwKIAlIREFfQ09ERUNfTVVURSgiTWFzdGVyIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiUENNIFBsYXliYWNrIFZvbHVtZSIsIDB4MjAsIDB4NSwgSERBX0lOUFVUKSwKIAlIREFfQ09ERUNfTVVURSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIDB4MjAsIDB4NSwgSERBX0lOUFVUKSwKLQlIREFfQ09ERUNfVk9MVU1FKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgyMCwgMHgwMSwgSERBX0lOUFVUKSwKLQlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MjAsIDB4MDEsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiQmVlcCBQbGF5YmFjayBWb2x1bWUiLCAweDIwLCAweDAzLCBIREFfSU5QVVQpLAogCUhEQV9DT0RFQ19NVVRFKCJCZWVwIFBsYXliYWNrIFN3aXRjaCIsIDB4MjAsIDB4MDMsIEhEQV9JTlBVVCksCi0JSERBX0NPREVDX1ZPTFVNRSgiTWljIEJvb3N0IiwgMHgxNSwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBDYXB0dXJlIFZvbHVtZSIsIDB4MTQsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJJbnRlcm5hbCBNaWMgQ2FwdHVyZSBWb2x1bWUiLCAweDE1LCAweDAsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiQ2FwdHVyZSBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAogCUhEQV9DT0RFQ19NVVRFKCJDYXB0dXJlIFN3aXRjaCIsIDB4MGMsIDB4MCwgSERBX09VVFBVVCksCi0JewotCQkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwKLQkJLm5hbWUgPSAiQ2FwdHVyZSBTb3VyY2UiLAotCQkuaW5mbyA9IGFkMTk4eF9tdXhfZW51bV9pbmZvLAotCQkuZ2V0ID0gYWQxOTh4X211eF9lbnVtX2dldCwKLQkJLnB1dCA9IGFkMTk4eF9tdXhfZW51bV9wdXQsCi0JfSwKIAl7IH0gLyogZW5kICovCiB9OwogCkBAIC0zNjg2LDE0ICszNjc5LDMxIEBACiAJCQkgICAgcHJlc2VudCA/IDB4MDAgOiAweDAyKTsKIH0KIAorLyogc3dpdGNoIHRvIGV4dGVybmFsIG1pYyBpZiBwbHVnZ2VkICovCitzdGF0aWMgdm9pZCBhZDE4ODRhX2hwX2F1dG9taWMoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDE0LCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKSAmIDB4ODAwMDAwMDA7CisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgMHgwYywgMCwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsCisJCQkgICAgcHJlc2VudCA/IDAgOiAxKTsKK30KKwogI2RlZmluZSBBRDE4ODRBX0hQX0VWRU5UCQkweDM3CisjZGVmaW5lIEFEMTg4NEFfTUlDX0VWRU5UCQkweDM2CiAKIC8qIHVuc29saWNpdGVkIGV2ZW50IGZvciBIUCBqYWNrIHNlbnNpbmcgKi8KIHN0YXRpYyB2b2lkIGFkMTg4NGFfaHBfdW5zb2xfZXZlbnQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZXMpCiB7Ci0JaWYgKChyZXMgPj4gMjYpICE9IEFEMTg4NEFfSFBfRVZFTlQpCi0JCXJldHVybjsKLQlhZDE4ODRhX2hwX2F1dG9tdXRlKGNvZGVjKTsKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUQxODg0QV9IUF9FVkVOVDoKKwkJYWQxODg0YV9ocF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUQxODg0QV9NSUNfRVZFTlQ6CisJCWFkMTg4NGFfaHBfYXV0b21pYyhjb2RlYyk7CisJCWJyZWFrOworCX0KIH0KIAogLyogaW5pdGlhbGl6ZSBqYWNrLXNlbnNpbmcsIHRvbyAqLwpAQCAtMzcwMSw2ICszNzExLDcgQEAKIHsKIAlhZDE5OHhfaW5pdChjb2RlYyk7CiAJYWQxODg0YV9ocF9hdXRvbXV0ZShjb2RlYyk7CisJYWQxODg0YV9ocF9hdXRvbWljKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMzcxNCwxMCArMzcyNSwxNSBAQAogCS8qIFBvcnQtRiBwaW4gKi8KIAl7MHgxNiwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fSFB9LAogCXsweDE2LCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEV9LAorCS8qIFBvcnQtQyBwaW4gLSBpbnRlcm5hbCBtaWMtaW4gKi8KKwl7MHgxNSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fVlJFRjgwfSwKKwl7MHgxNCwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgMHg3MDAyfSwgLyogcmFpc2UgbWljIGFzIGRlZmF1bHQgKi8KKwl7MHgxNSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgMHg3MDAyfSwgLyogcmFpc2UgbWljIGFzIGRlZmF1bHQgKi8KIAkvKiBhbmFsb2cgbWl4ICovCiAJezB4MjAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9NVVRFKDQpfSwKIAkvKiB1bnNvbGljaXRlZCBldmVudCBmb3IgcGluLXNlbnNlICovCiAJezB4MTEsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBRDE4ODRBX0hQX0VWRU5UfSwKKwl7MHgxNCwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFEMTg4NEFfTUlDX0VWRU5UfSwKIAl7IH0gLyogZW5kICovCiB9OwogCkBAIC0zODM5LDcgKzM4NTUsNiBAQAogCWlmIChzcGVjID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JbXV0ZXhfaW5pdCgmc3BlYy0+YW1wX211dGV4KTsKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKIAlzcGVjLT5tdWx0aW91dC5tYXhfY2hhbm5lbHMgPSAyOwpAQCAtMzg3Nyw3ICszODkyLDYgQEAKIAkJc3BlYy0+bWl4ZXJzWzBdID0gYWQxODg0YV9tb2JpbGVfbWl4ZXJzOwogCQlzcGVjLT5pbml0X3ZlcmJzW3NwZWMtPm51bV9pbml0X3ZlcmJzKytdID0gYWQxODg0YV9sYXB0b3BfdmVyYnM7CiAJCXNwZWMtPm11bHRpb3V0LmRpZ19vdXRfbmlkID0gMDsKLQkJc3BlYy0+aW5wdXRfbXV4ID0gJmFkMTg4NGFfbW9iaWxlX2NhcHR1cmVfc291cmNlOwogCQljb2RlYy0+cGF0Y2hfb3BzLnVuc29sX2V2ZW50ID0gYWQxODg0YV9ocF91bnNvbF9ldmVudDsKIAkJY29kZWMtPnBhdGNoX29wcy5pbml0ID0gYWQxODg0YV9ocF9pbml0OwogCQlicmVhazsKQEAgLTQxNDUsNyArNDE1OSw2IEBACiAJaWYgKHNwZWMgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDY7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NtZWRpYS5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9jbWVkaWEuYwppbmRleCBjNzNjZTA3Li42ZWY1N2ZiIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NtZWRpYS5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY21lZGlhLmMKQEAgLTYxMSw2ICs2MTEsNyBAQAogCiBzdGF0aWMgc3RydWN0IHNuZF9wY2lfcXVpcmsgY21pOTg4MF9jZmdfdGJsW10gPSB7CiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODEzZCwgIkFTVVMgUDVBRDIiLCBDTUlfRlVMTF9ESUcpLAorCVNORF9QQ0lfUVVJUksoMHgxODU0LCAweDAwMmIsICJMRyBMUzc1IiwgQ01JX01JTklNQUwpLAogCVNORF9QQ0lfUVVJUksoMHgxODU0LCAweDAwMzIsICJMRyIsIENNSV9GVUxMX0RJRyksCiAJe30gLyogdGVybWluYXRvciAqLwogfTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfY29uZXhhbnQuYwppbmRleCAzNmZkODUyLi43YzFlYjIzIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9jb25leGFudC5jCkBAIC04Miw3ICs4Miw2IEBACiAJLyogUENNIGluZm9ybWF0aW9uICovCiAJc3RydWN0IGhkYV9wY20gcGNtX3JlY1syXTsJLyogdXNlZCBpbiBidWlsZF9wY21zKCkgKi8KIAotCXN0cnVjdCBtdXRleCBhbXBfbXV0ZXg7CS8qIFBDTSB2b2x1bWUvbXV0ZSBjb250cm9sIG11dGV4ICovCiAJdW5zaWduZWQgaW50IHNwZGlmX3JvdXRlOwogCiAJLyogZHluYW1pYyBjb250cm9scywgaW5pdF92ZXJicyBhbmQgaW5wdXRfbXV4ICovCkBAIC02ODcsNyArNjg2LDcgQEAKIAogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBjeHQ1MDQ1X2luaXRfdmVyYnNbXSA9IHsKIAkvKiBMaW5lIGluLCBNaWMgKi8KLQl7MHgxMiwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fSU4gfSwKKwl7MHgxMiwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fSU58QUNfUElOQ1RMX1ZSRUZfODAgfSwKIAl7MHgxNCwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fSU58QUNfUElOQ1RMX1ZSRUZfODAgfSwKIAkvKiBIUCwgQW1wICAqLwogCXsweDEwLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVR9LApAQCAtOTA3LDEwICs5MDYsMTIgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMGNmLCAiSFAgRFY5NTMzRUciLCBDWFQ1MDQ1X0xBUFRPUF9IUFNFTlNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMGQ1LCAiSFAgNTMwIiwgQ1hUNTA0NV9MQVBUT1BfSFA1MzApLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwZDksICJIUCBTcGFydGFuIiwgQ1hUNTA0NV9MQVBUT1BfSFBTRU5TRSksCisJU05EX1BDSV9RVUlSSygweDExNzksIDB4ZmYzMSwgIlRvc2hpYmEgUDEwNSIsIENYVDUwNDVfTEFQVE9QX01JQ1NFTlNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTUyZCwgMHgwNzUzLCAiQmVucSBSNTVFIiwgQ1hUNTA0NV9CRU5RKSwKIAlTTkRfUENJX1FVSVJLKDB4MTczNCwgMHgxMGFkLCAiRnVqaXRzdSBTaTE1MjAiLCBDWFQ1MDQ1X0xBUFRPUF9NSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBjYiwgIkZ1aml0c3UgU2kzNTE1IiwgQ1hUNTA0NV9MQVBUT1BfSFBNSUNTRU5TRSksCi0JU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTEwZSwgIkZ1aml0c3UgVjU1MDUiLCBDWFQ1MDQ1X0xBUFRPUF9IUFNFTlNFKSwKKwlTTkRfUENJX1FVSVJLKDB4MTczNCwgMHgxMTBlLCAiRnVqaXRzdSBWNTUwNSIsCisJCSAgICAgIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLAogCVNORF9QQ0lfUVVJUksoMHgxNTA5LCAweDFlNDAsICJGSUMiLCBDWFQ1MDQ1X0xBUFRPUF9IUE1JQ1NFTlNFKSwKIAlTTkRfUENJX1FVSVJLKDB4MTUwOSwgMHgyZjA1LCAiRklDIiwgQ1hUNTA0NV9MQVBUT1BfSFBNSUNTRU5TRSksCiAJU05EX1BDSV9RVUlSSygweDE1MDksIDB4MmYwNiwgIkZJQyIsIENYVDUwNDVfTEFQVE9QX0hQTUlDU0VOU0UpLApAQCAtOTI4LDcgKzkyOSw2IEBACiAJc3BlYyA9IGt6YWxsb2Moc2l6ZW9mKCpzcGVjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzcGVjKQogCQlyZXR1cm4gLUVOT01FTTsKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCXNwZWMtPm11bHRpb3V0Lm1heF9jaGFubmVscyA9IDI7CkBAIC05NjMsNiArOTYzLDcgQEAKIAkJY29kZWMtPnBhdGNoX29wcy5pbml0ID0gY3h0NTA0NV9pbml0OwogCQlicmVhazsKIAljYXNlIENYVDUwNDVfTEFQVE9QX01JQ1NFTlNFOgorCQljb2RlYy0+cGF0Y2hfb3BzLnVuc29sX2V2ZW50ID0gY3h0NTA0NV9ocF91bnNvbF9ldmVudDsKIAkJc3BlYy0+aW5wdXRfbXV4ID0gJmN4dDUwNDVfY2FwdHVyZV9zb3VyY2U7CiAJCXNwZWMtPm51bV9pbml0X3ZlcmJzID0gMjsKIAkJc3BlYy0+aW5pdF92ZXJic1sxXSA9IGN4dDUwNDVfbWljX3NlbnNlX2luaXRfdmVyYnM7CkBAIC0xMDA3LDE1ICsxMDA4LDE5IEBACiAjZW5kaWYJCiAJfQogCi0JLyoKLQkgKiBGaXggbWF4IFBDTSBsZXZlbCB0byAwIGRCCi0JICogKG9yaWdpbmFsbCBpdCBoYXMgMHgyYiBzdGVwcyB3aXRoIDBkQiBvZmZzZXQgMHgxNCkKLQkgKi8KLQlzbmRfaGRhX292ZXJyaWRlX2FtcF9jYXBzKGNvZGVjLCAweDE3LCBIREFfSU5QVVQsCi0JCQkJICAoMHgxNCA8PCBBQ19BTVBDQVBfT0ZGU0VUX1NISUZUKSB8Ci0JCQkJICAoMHgxNCA8PCBBQ19BTVBDQVBfTlVNX1NURVBTX1NISUZUKSB8Ci0JCQkJICAoMHgwNSA8PCBBQ19BTVBDQVBfU1RFUF9TSVpFX1NISUZUKSB8Ci0JCQkJICAoMSA8PCBBQ19BTVBDQVBfTVVURV9TSElGVCkpOworCXN3aXRjaCAoY29kZWMtPnN1YnN5c3RlbV9pZCA+PiAxNikgeworCWNhc2UgMHgxMDNjOgorCQkvKiBIUCBsYXB0b3AgaGFzIGEgcmVhbGx5IGJhZCBzb3VuZCBvdmVyIDBkQiBvbiBOSUQgMHgxNy4KKwkJICogRml4IG1heCBQQ00gbGV2ZWwgdG8gMCBkQgorCQkgKiAob3JpZ2luYWxsIGl0IGhhcyAweDJiIHN0ZXBzIHdpdGggMGRCIG9mZnNldCAweDE0KQorCQkgKi8KKwkJc25kX2hkYV9vdmVycmlkZV9hbXBfY2Fwcyhjb2RlYywgMHgxNywgSERBX0lOUFVULAorCQkJCQkgICgweDE0IDw8IEFDX0FNUENBUF9PRkZTRVRfU0hJRlQpIHwKKwkJCQkJICAoMHgxNCA8PCBBQ19BTVBDQVBfTlVNX1NURVBTX1NISUZUKSB8CisJCQkJCSAgKDB4MDUgPDwgQUNfQU1QQ0FQX1NURVBfU0laRV9TSElGVCkgfAorCQkJCQkgICgxIDw8IEFDX0FNUENBUF9NVVRFX1NISUZUKSk7CisJCWJyZWFrOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtMTQ3Nyw3ICsxNDgyLDYgQEAKIAlzcGVjID0ga3phbGxvYyhzaXplb2YoKnNwZWMpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXNwZWMpCiAJCXJldHVybiAtRU5PTUVNOwotCW11dGV4X2luaXQoJnNwZWMtPmFtcF9tdXRleCk7CiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCiAJc3BlYy0+bXVsdGlvdXQubWF4X2NoYW5uZWxzID0gMjsKQEAgLTE3MzYsNyArMTc0MCw2IEBACiAJc3BlYyA9IGt6YWxsb2Moc2l6ZW9mKCpzcGVjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFzcGVjKQogCQlyZXR1cm4gLUVOT01FTTsKLQltdXRleF9pbml0KCZzcGVjLT5hbXBfbXV0ZXgpOwogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAogCWNvZGVjLT5wYXRjaF9vcHMgPSBjb25leGFudF9wYXRjaF9vcHM7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCmluZGV4IDg2NGIyZjUuLjI4MDdiYzggMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfcmVhbHRlay5jCkBAIC0xNjMsNiArMTYzLDEwIEBACiAJQUxDNjYyX0xFTk9WT18xMDFFLAogCUFMQzY2Ml9BU1VTX0VFRVBDX1A3MDEsCiAJQUxDNjYyX0FTVVNfRUVFUENfRVAyMCwKKwlBTEM2NjNfQVNVU19NNTFWQSwKKwlBTEM2NjNfQVNVU19HNzFWLAorCUFMQzY2M19BU1VTX0gxMywKKwlBTEM2NjNfQVNVU19HNTBWLAogCUFMQzY2Ml9BVVRPLAogCUFMQzY2Ml9NT0RFTF9MQVNULAogfTsKQEAgLTIwNSw2ICsyMDksNyBAQAogCUFMQzg4M19NSVRBQywKIAlBTEM4ODNfQ0xFVk9fTTcyMCwKIAlBTEM4ODNfRlVKSVRTVV9QSTI1MTUsCisJQUxDODgzXzNTVF82Y2hfSU5URUwsCiAJQUxDODgzX0FVVE8sCiAJQUxDODgzX01PREVMX0xBU1QsCiB9OwpAQCAtMjgwLDYgKzI4NSwxMCBAQAogI2lmZGVmIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUKIAlzdHJ1Y3QgaGRhX2xvb3BiYWNrX2NoZWNrIGxvb3BiYWNrOwogI2VuZGlmCisKKwkvKiBmb3IgUExMIGZpeCAqLworCWhkYV9uaWRfdCBwbGxfbmlkOworCXVuc2lnbmVkIGludCBwbGxfY29lZl9pZHgsIHBsbF9jb2VmX2JpdDsKIH07CiAKIC8qCkBAIC03NDcsNiArNzU2LDM4IEBACiAJeyB9CiB9OwogCisvKgorICogRml4IGhhcmR3YXJlIFBMTCBpc3N1ZQorICogT24gc29tZSBjb2RlY3MsIHRoZSBhbmFsb2cgUExMIGdhdGluZyBjb250cm9sIG11c3QgYmUgb2ZmIHdoaWxlCisgKiB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAxLgorICovCitzdGF0aWMgdm9pZCBhbGNfZml4X3BsbChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKK3sKKwlzdHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKKwl1bnNpZ25lZCBpbnQgdmFsOworCisJaWYgKCFzcGVjLT5wbGxfbmlkKQorCQlyZXR1cm47CisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgc3BlYy0+cGxsX25pZCwgMCwgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwKKwkJCSAgICBzcGVjLT5wbGxfY29lZl9pZHgpOworCXZhbCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgc3BlYy0+cGxsX25pZCwgMCwKKwkJCQkgQUNfVkVSQl9HRVRfUFJPQ19DT0VGLCAwKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCBzcGVjLT5wbGxfbmlkLCAwLCBBQ19WRVJCX1NFVF9DT0VGX0lOREVYLAorCQkJICAgIHNwZWMtPnBsbF9jb2VmX2lkeCk7CisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgc3BlYy0+cGxsX25pZCwgMCwgQUNfVkVSQl9TRVRfUFJPQ19DT0VGLAorCQkJICAgIHZhbCAmIH4oMSA8PCBzcGVjLT5wbGxfY29lZl9iaXQpKTsKK30KKworc3RhdGljIHZvaWQgYWxjX2ZpeF9wbGxfaW5pdChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IG5pZCwKKwkJCSAgICAgdW5zaWduZWQgaW50IGNvZWZfaWR4LCB1bnNpZ25lZCBpbnQgY29lZl9iaXQpCit7CisJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CisJc3BlYy0+cGxsX25pZCA9IG5pZDsKKwlzcGVjLT5wbGxfY29lZl9pZHggPSBjb2VmX2lkeDsKKwlzcGVjLT5wbGxfY29lZl9iaXQgPSBjb2VmX2JpdDsKKwlhbGNfZml4X3BsbChjb2RlYyk7Cit9CisKIHN0YXRpYyB2b2lkIGFsY19za3VfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCiB7CiAJc3RydWN0IGFsY19zcGVjICpzcGVjID0gY29kZWMtPnNwZWM7CkBAIC03NzYsNiArODE3LDI0IEBACiAJYWxjX3NrdV9hdXRvbXV0ZShjb2RlYyk7CiB9CiAKKy8qIGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb24gZm9yIEFMQzg4OCB2YXJpYW50cyAqLworc3RhdGljIHZvaWQgYWxjODg4X2NvZWZfaW5pdChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgdG1wOworCisJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgMHgyMCwgMCwgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwgMCk7CisJdG1wID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIwLCAwLCBBQ19WRVJCX0dFVF9QUk9DX0NPRUYsIDApOworCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MjAsIDAsIEFDX1ZFUkJfU0VUX0NPRUZfSU5ERVgsIDcpOworCWlmICgodG1wICYgMHhmMCkgPT0gMikKKwkJLyogYWxjODg4Uy1WQyAqLworCQlzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIDB4MjAsIDAsCisJCQkJICAgQUNfVkVSQl9TRVRfUFJPQ19DT0VGLCAweDgzMCk7CisJIGVsc2UKKwkJIC8qIGFsYzg4OC1WQiAqLworCQkgc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIwLCAwLAorCQkJCSAgICBBQ19WRVJCX1NFVF9QUk9DX0NPRUYsIDB4MzAzMCk7Cit9CisKIC8qIDMyLWJpdCBzdWJzeXN0ZW0gSUQgZm9yIEJJT1MgbG9hZGluZyBpbiBIRCBBdWRpbyBjb2RlYy4KICAqCTMxIH4gMTYgOglNYW51ZmFjdHVyZSBJRAogICoJMTUgfiA4CToJU0tVIElECkBAIC04NTEsOCArOTEwLDExIEBACiAJCWNhc2UgMHgxMGVjMDI2NzoKIAkJY2FzZSAweDEwZWMwMjY4OgogCQljYXNlIDB4MTBlYzAyNjk6CisJCWNhc2UgMHgxMGVjMDY2MDoKKwkJY2FzZSAweDEwZWMwNjYyOgorCQljYXNlIDB4MTBlYzA2NjM6CiAJCWNhc2UgMHgxMGVjMDg2MjoKLQkJY2FzZSAweDEwZWMwNjYyOgkKKwkJY2FzZSAweDEwZWMwODg5OgogCQkJc25kX2hkYV9jb2RlY193cml0ZShjb2RlYywgMHgxNCwgMCwKIAkJCQkJICAgIEFDX1ZFUkJfU0VUX0VBUERfQlRMRU5BQkxFLCAyKTsKIAkJCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIDB4MTUsIDAsCkBAIC04NzYsNyArOTM4LDcgQEAKIAkJY2FzZSAweDEwZWMwODgyOgogCQljYXNlIDB4MTBlYzA4ODM6CiAJCWNhc2UgMHgxMGVjMDg4NToKLQkJY2FzZSAweDEwZWMwODg4OgorCQljYXNlIDB4MTBlYzA4ODk6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLAogCQkJCQkgICAgQUNfVkVSQl9TRVRfQ09FRl9JTkRFWCwgNyk7CiAJCQl0bXAgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIDB4MjAsIDAsCkBAIC04ODcsNiArOTQ5LDkgQEAKIAkJCQkJICAgIEFDX1ZFUkJfU0VUX1BST0NfQ09FRiwKIAkJCQkJICAgIHRtcCB8IDB4MjAxMCk7CiAJCQlicmVhazsKKwkJY2FzZSAweDEwZWMwODg4OgorCQkJYWxjODg4X2NvZWZfaW5pdChjb2RlYyk7CisJCQlicmVhazsKIAkJY2FzZSAweDEwZWMwMjY3OgogCQljYXNlIDB4MTBlYzAyNjg6CiAJCQlzbmRfaGRhX2NvZGVjX3dyaXRlKGNvZGVjLCAweDIwLCAwLApAQCAtOTQwLDcgKzEwMDUsNiBAQAogCQkJICAgIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwKIAkJCSAgICBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVCk7CiAJc3BlYy0+dW5zb2xfZXZlbnQgPSBhbGNfc2t1X3Vuc29sX2V2ZW50OwotCXNwZWMtPmluaXRfaG9vayA9IGFsY19za3VfYXV0b211dGU7CQogfQogCiAvKgpAQCAtMjM3Miw2ICsyNDM2LDggQEAKIAlzdHJ1Y3QgYWxjX3NwZWMgKnNwZWMgPSBjb2RlYy0+c3BlYzsKIAl1bnNpZ25lZCBpbnQgaTsKIAorCWFsY19maXhfcGxsKGNvZGVjKTsKKwogCWZvciAoaSA9IDA7IGkgPCBzcGVjLT5udW1faW5pdF92ZXJiczsgaSsrKQogCQlzbmRfaGRhX3NlcXVlbmNlX3dyaXRlKGNvZGVjLCBzcGVjLT5pbml0X3ZlcmJzW2ldKTsKIApAQCAtMzAwOCw2ICszMDc0LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDBkLCAiRVBvWCIsIEFMQzg4MF81U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTY5NSwgMHg0MDEyLCAiRVBveCBFUC01TERBIiwgQUxDODgwXzVTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwN2MsICJGU0MgRjE3MzQiLCBBTEM4ODBfRjE3MzQpLAorCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwOTQsICJGU0MgQW1pbG8gTTE0NTFHIiwgQUxDODgwX0ZVSklUU1UpLAogCVNORF9QQ0lfUVVJUksoMHgxNzM0LCAweDEwYWMsICJGU0MiLCBBTEM4ODBfVU5JV0lMTCksCiAJU05EX1BDSV9RVUlSSygweDE3MzQsIDB4MTBiMCwgIkZ1aml0c3UiLCBBTEM4ODBfRlVKSVRTVSksCiAJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MDAxOCwgIkxHIExXMjAiLCBBTEM4ODBfTEdfTFcpLApAQCAtNTEwMCw3ICs1MTY3LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgyODA4LCAiSFAgZDU3MDAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MjgwYSwgIkhQIGQ1NzUwIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTAsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKLQlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDExLCAiSFAiLCBBTEMyNjBfSFApLAorCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTEsICJIUCIsIEFMQzI2MF9IUF8zMDEzKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgzMDEyLCAiSFAiLCBBTEMyNjBfSFBfMzAxMyksCiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MzAxMywgIkhQIiwgQUxDMjYwX0hQXzMwMTMpLAogCVNORF9QQ0lfUVVJUksoMHgxMDNjLCAweDMwMTQsICJIUCIsIEFMQzI2MF9IUCksCkBAIC02MTI2LDYgKzYxOTMsNyBAQAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxN2YsICJBc3VzIFA1TEQyIiwgQUxDODgyXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgxZDgsICJBc3VzIFA1V0QiLCBBTEM4ODJfNlNUX0RJRyksCiAJU05EX1BDSV9RVUlSSygweDEwNWIsIDB4NjY2OCwgIkZveGNvbm4iLCBBTEM4ODJfNlNUX0RJRyksCisJU05EX1BDSV9RVUlSSygweDEwNmIsIDB4MDBhMCwgIkFwcGxlIGlNYWMgMjQnJyIsIEFMQzg4NV9JTUFDMjQpLAogCVNORF9QQ0lfUVVJUksoMHgxNDU4LCAweGEwMDIsICJHaWdhYnl0ZSBQMzUgRFMzUiIsIEFMQzg4Ml82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHgyOGZiLCAiVGFyZ2EgVDgiLCBBTEM4ODJfVEFSR0EpLCAvKiBNU0ktMTA0OSBUOCAgKi8KIAlTTkRfUENJX1FVSVJLKDB4MTQ2MiwgMHg2NjY4LCAiTVNJIiwgQUxDODgyXzZTVF9ESUcpLApAQCAtNjM1Miw3ICs2NDIwLDkgQEAKIAkJCWNvbnRpbnVlOwogCQl2cmVmID0gUElOX0lOOwogCQlpZiAoMSAvKmkgPD0gQVVUT19QSU5fRlJPTlRfTUlDKi8pIHsKLQkJCWlmIChzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApICYKKwkJCXVuc2lnbmVkIGludCBwaW5jYXA7CisJCQlwaW5jYXAgPSBzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX1BJTl9DQVApOworCQkJaWYgKChwaW5jYXAgPj4gQUNfUElOQ0FQX1ZSRUZfU0hJRlQpICYKIAkJCSAgICBBQ19QSU5DQVBfVlJFRl84MCkKIAkJCQl2cmVmID0gUElOX1ZSRUY4MDsKIAkJfQpAQCAtNjQ0OSw4ICs2NTE5LDkgQEAKIAkJY2FzZSAweDEwNmIxMDAwOiAvKiBpTWFjIDI0ICovCiAJCQlib2FyZF9jb25maWcgPSBBTEM4ODVfSU1BQzI0OwogCQkJYnJlYWs7Ci0JCWNhc2UgMHgxMDZiMDBhMTogLyogTWFjYm9vayAqLworCQljYXNlIDB4MTA2YjAwYTE6IC8qIE1hY2Jvb2sgKG1pZ2h0IGJlIHdyb25nIC0gUENJIFNTSUQ/KSAqLwogCQljYXNlIDB4MTA2YjJjMDA6IC8qIE1hY2Jvb2sgUHJvIHJldjMgKi8KKwkJY2FzZSAweDEwNmIzNjAwOiAvKiBNYWNib29rIDMuMSAqLwogCQkJYm9hcmRfY29uZmlnID0gQUxDODg1X01CUDM7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKQEAgLTY0ODQsMTQgKzY1NTUsMjAgQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzg4Ml9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzg4Ml9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MiBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzA4ODUpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4NSBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4NSBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDODgyIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDODgyIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODgyX3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzg4Ml9wY21fYW5hbG9nX2NhcHR1cmU7CiAJLyogRklYTUU6IHNldHVwIERBQzUgKi8KIAkvKnNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X3BsYXliYWNrID0gJmFsYzg4MF9wY21fYW5hbG9nX2FsdF9wbGF5YmFjazsqLwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X2NhcHR1cmUgPSAmYWxjODgwX3BjbV9hbmFsb2dfYWx0X2NhcHR1cmU7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MiBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfY2FwdHVyZSA9ICZhbGM4ODJfcGNtX2RpZ2l0YWxfY2FwdHVyZTsKIApAQCAtNjU2OCw2ICs2NjQ1LDE2IEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM4ODNfM3N0YWNrXzZjaF9pbnRlbCA9IHsKKwkubnVtX2l0ZW1zID0gNCwKKwkuaXRlbXMgPSB7CisJCXsgIk1pYyIsIDB4MSB9LAorCQl7ICJGcm9udCBNaWMiLCAweDAgfSwKKwkJeyAiTGluZSIsIDB4MiB9LAorCQl7ICJDRCIsIDB4NCB9LAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IGhkYV9pbnB1dF9tdXggYWxjODgzX2xlbm92b18xMDFlX2NhcHR1cmVfc291cmNlID0gewogCS5udW1faXRlbXMgPSAyLAogCS5pdGVtcyA9IHsKQEAgLTY2NDksNiArNjczNiw0OCBAQAogfTsKIAogLyoKKyAqIDJjaCBtb2RlCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjODgzXzNTVF9jaDJfaW50ZWxfaW5pdFtdID0geworCXsgMHgxOSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fVlJFRjgwIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IDB4MWEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0lOIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX01VVEUgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNGNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9WUkVGODAgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCisvKgorICogNmNoIG1vZGUKKyAqLworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0W10gPSB7CisJeyAweDE5LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVQgfSwKKwl7IDB4MTksIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFIH0sCisJeyAweDE5LCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMiB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fT1VUIH0sCisJeyAweDFhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfT1VUX1VOTVVURSB9LAorCXsgMHgxYSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDEgfSwKKwl7IH0gLyogZW5kICovCit9OworCitzdGF0aWMgc3RydWN0IGhkYV9jaGFubmVsX21vZGUgYWxjODgzXzNTVF82Y2hfaW50ZWxfbW9kZXNbM10gPSB7CisJeyAyLCBhbGM4ODNfM1NUX2NoMl9pbnRlbF9pbml0IH0sCisJeyA0LCBhbGM4ODNfM1NUX2NoNF9pbnRlbF9pbml0IH0sCisJeyA2LCBhbGM4ODNfM1NUX2NoNl9pbnRlbF9pbml0IH0sCit9OworCisvKgogICogNmNoIG1vZGUKICAqLwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM4ODNfc2l4c3RhY2tfY2g2X2luaXRbXSA9IHsKQEAgLTY4ODAsMTUgKzcwMDksNTQgQEAKIAl7IH0gLyogZW5kICovCiB9OwogCitzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWxjODgzXzNTVF82Y2hfaW50ZWxfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwKKwkJCSAgICAgIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiTEZFIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0JJTkRfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgwZSwgMSwgMiwgSERBX0lOUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkxGRSBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAyLCAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJDRCBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJDRCBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDA0LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkxpbmUgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwMiwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTGluZSBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIEJvb3N0IiwgMHgxOSwgMCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoIkZyb250IE1pYyBCb29zdCIsIDB4MTgsIDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkZyb250IE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiUEMgU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDA1LCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDUsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiQ2FwdHVyZSBWb2x1bWUiLCAweDA4LCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIkNhcHR1cmUgU3dpdGNoIiwgMHgwOCwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUVfSURYKCJDYXB0dXJlIFZvbHVtZSIsIDEsIDB4MDksIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURV9JRFgoIkNhcHR1cmUgU3dpdGNoIiwgMSwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLAorCXsKKwkJLmlmYWNlID0gU05EUlZfQ1RMX0VMRU1fSUZBQ0VfTUlYRVIsCisJCS8qIC5uYW1lID0gIkNhcHR1cmUgU291cmNlIiwgKi8KKwkJLm5hbWUgPSAiSW5wdXQgU291cmNlIiwKKwkJLmNvdW50ID0gMiwKKwkJLmluZm8gPSBhbGM4ODNfbXV4X2VudW1faW5mbywKKwkJLmdldCA9IGFsYzg4M19tdXhfZW51bV9nZXQsCisJCS5wdXQgPSBhbGM4ODNfbXV4X2VudW1fcHV0LAorCX0sCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzg4M19maXZlc3RhY2tfbWl4ZXJbXSA9IHsKIAlIREFfQ09ERUNfVk9MVU1FKCJGcm9udCBQbGF5YmFjayBWb2x1bWUiLCAweDBjLCAweDAsIEhEQV9PVVRQVVQpLAotCUhEQV9DT0RFQ19NVVRFKCJGcm9udCBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9CSU5EX01VVEUoIkZyb250IFBsYXliYWNrIFN3aXRjaCIsIDB4MGMsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX1ZPTFVNRSgiU3Vycm91bmQgUGxheWJhY2sgVm9sdW1lIiwgMHgwZCwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURSgiU3Vycm91bmQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFKCJTdXJyb3VuZCBQbGF5YmFjayBTd2l0Y2giLCAweDBkLCAyLCBIREFfSU5QVVQpLAogCUhEQV9DT0RFQ19WT0xVTUVfTU9OTygiQ2VudGVyIFBsYXliYWNrIFZvbHVtZSIsIDB4MGUsIDEsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9NT05PKCJMRkUgUGxheWJhY2sgVm9sdW1lIiwgMHgwZSwgMiwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJDZW50ZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMSwgMHgwLCBIREFfT1VUUFVUKSwKLQlIREFfQ09ERUNfTVVURV9NT05PKCJMRkUgUGxheWJhY2sgU3dpdGNoIiwgMHgxNiwgMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQklORF9NVVRFX01PTk8oIkNlbnRlciBQbGF5YmFjayBTd2l0Y2giLCAweDBlLCAxLCAyLCBIREFfSU5QVVQpLAorCUhEQV9CSU5EX01VVEVfTU9OTygiTEZFIFBsYXliYWNrIFN3aXRjaCIsIDB4MGUsIDIsIDIsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkhlYWRwaG9uZSBQbGF5YmFjayBTd2l0Y2giLCAweDFiLCAweDAsIEhEQV9PVVRQVVQpLAogCUhEQV9DT0RFQ19WT0xVTUUoIkNEIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCiAJSERBX0NPREVDX01VVEUoIkNEIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDQsIEhEQV9JTlBVVCksCkBAIC03NzI4LDYgKzc4OTYsNyBAQAogCVtBTEM4ODNfTUlUQUNdCQk9ICJtaXRhYyIsCiAJW0FMQzg4M19DTEVWT19NNzIwXQk9ICJjbGV2by1tNzIwIiwKIAlbQUxDODgzX0ZVSklUU1VfUEkyNTE1XSA9ICJmdWppdHN1LXBpMjUxNSIsCisJW0FMQzg4M18zU1RfNmNoX0lOVEVMXQk9ICIzc3RhY2stNmNoLWludGVsIiwKIAlbQUxDODgzX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKQEAgLTc3NDMsNiArNzkxMiw3IEBACiAJU05EX1BDSV9RVUlSSygweDEwM2MsIDB4MmE2MCwgIkhQIEx1Y2tub3ciLCBBTEM4ODhfM1NUX0hQKSwKIAlTTkRfUENJX1FVSVJLKDB4MTAzYywgMHgyYTYxLCAiSFAgTmV0dGxlIiwgQUxDODgzXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyNDksICJBc3VzIE0yQS1WTSBIRE1JIiwgQUxDODgzXzNTVF82Y2hfRElHKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA1YiwgMHgwY2U4LCAiRm94Y29ubiBQMzVBWC1TIiwgQUxDODgzXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDViLCAweDY2NjgsICJGb3hjb25uIiwgQUxDODgzXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDcxLCAweDgyNTMsICJNaXRhYyA4MjUyZCIsIEFMQzg4M19NSVRBQyksCiAJU05EX1BDSV9RVUlSSygweDEwNzEsIDB4ODI1OCwgIkV2ZXNoYW0gVm95YWVnZXIiLCBBTEM4ODNfTEFQVE9QX0VBUEQpLApAQCAtNzc4NCw2ICs3OTU0LDggQEAKIAlTTkRfUENJX1FVSVJLKDB4MTdjMCwgMHg0MDcxLCAiTUVESU9OIE1EMiIsIEFMQzg4M19NRURJT05fTUQyKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdmMiwgMHg1MDAwLCAiQWxiYXRyb24gS0k2OTAtQU0yIiwgQUxDODgzXzZTVF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxOTkxLCAweDU2MjUsICJIYWllciBXNjYiLCBBTEM4ODNfSEFJRVJfVzY2KSwKKwlTTkRfUENJX1FVSVJLKDB4ODA4NiwgMHgwMDAxLCAiREczM0JVQyIsIEFMQzg4M18zU1RfNmNoX0lOVEVMKSwKKwlTTkRfUENJX1FVSVJLKDB4ODA4NiwgMHgwMDAyLCAiREczM0ZCQyIsIEFMQzg4M18zU1RfNmNoX0lOVEVMKSwKIAlTTkRfUENJX1FVSVJLKDB4ODA4NiwgMHhkNjAxLCAiRDEwMkdHQyIsIEFMQzg4M18zU1RfNmNoKSwKIAl7fQogfTsKQEAgLTc4MjIsNiArNzk5NCwxOCBAQAogCQkubmVlZF9kYWNfZml4ID0gMSwKIAkJLmlucHV0X211eCA9ICZhbGM4ODNfY2FwdHVyZV9zb3VyY2UsCiAJfSwKKwlbQUxDODgzXzNTVF82Y2hfSU5URUxdID0geworCQkubWl4ZXJzID0geyBhbGM4ODNfM1NUXzZjaF9pbnRlbF9taXhlciwgYWxjODgzX2NobW9kZV9taXhlciB9LAorCQkuaW5pdF92ZXJicyA9IHsgYWxjODgzX2luaXRfdmVyYnMgfSwKKwkJLm51bV9kYWNzID0gQVJSQVlfU0laRShhbGM4ODNfZGFjX25pZHMpLAorCQkuZGFjX25pZHMgPSBhbGM4ODNfZGFjX25pZHMsCisJCS5kaWdfb3V0X25pZCA9IEFMQzg4M19ESUdPVVRfTklELAorCQkuZGlnX2luX25pZCA9IEFMQzg4M19ESUdJTl9OSUQsCisJCS5udW1fY2hhbm5lbF9tb2RlID0gQVJSQVlfU0laRShhbGM4ODNfM1NUXzZjaF9pbnRlbF9tb2RlcyksCisJCS5jaGFubmVsX21vZGUgPSBhbGM4ODNfM1NUXzZjaF9pbnRlbF9tb2RlcywKKwkJLm5lZWRfZGFjX2ZpeCA9IDEsCisJCS5pbnB1dF9tdXggPSAmYWxjODgzXzNzdGFja182Y2hfaW50ZWwsCisJfSwKIAlbQUxDODgzXzZTVF9ESUddID0gewogCQkubWl4ZXJzID0geyBhbGM4ODNfYmFzZV9taXhlciwgYWxjODgzX2NobW9kZV9taXhlciB9LAogCQkuaW5pdF92ZXJicyA9IHsgYWxjODgzX2luaXRfdmVyYnMgfSwKQEAgLTgxNDMsNiArODMyNyw4IEBACiAKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKKwlhbGNfZml4X3BsbF9pbml0KGNvZGVjLCAweDIwLCAweDBhLCAxMCk7CisKIAlib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywgQUxDODgzX01PREVMX0xBU1QsCiAJCQkJCQkgIGFsYzg4M19tb2RlbHMsCiAJCQkJCQkgIGFsYzg4M19jZmdfdGJsKTsKQEAgLTgxNjksMTIgKzgzNTUsMjUgQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzg4M19BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzg4M19wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4MyBBbmFsb2ciOworCXN3aXRjaCAoY29kZWMtPnZlbmRvcl9pZCkgeworCWNhc2UgMHgxMGVjMDg4ODoKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg4OCBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4OCBEaWdpdGFsIjsKKwkJYnJlYWs7CisJY2FzZSAweDEwZWMwODg5OgorCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDODg5IEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDODg5IERpZ2l0YWwiOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDODgzIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDODgzIERpZ2l0YWwiOworCQlicmVhazsKKwl9CisKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX3BsYXliYWNrID0gJmFsYzg4M19wY21fYW5hbG9nX3BsYXliYWNrOwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfY2FwdHVyZSA9ICZhbGM4ODNfcGNtX2FuYWxvZ19jYXB0dXJlOwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfYWx0X2NhcHR1cmUgPSAmYWxjODgzX3BjbV9hbmFsb2dfYWx0X2NhcHR1cmU7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg4MyBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4ODNfcGNtX2RpZ2l0YWxfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2RpZ2l0YWxfY2FwdHVyZSA9ICZhbGM4ODNfcGNtX2RpZ2l0YWxfY2FwdHVyZTsKIApAQCAtODE4Nyw2ICs4Mzg2LDkgQEAKIAljb2RlYy0+cGF0Y2hfb3BzID0gYWxjX3BhdGNoX29wczsKIAlpZiAoYm9hcmRfY29uZmlnID09IEFMQzg4M19BVVRPKQogCQlzcGVjLT5pbml0X2hvb2sgPSBhbGM4ODNfYXV0b19pbml0OworCWVsc2UgaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDg4OCkKKwkJc3BlYy0+aW5pdF9ob29rID0gYWxjODg4X2NvZWZfaW5pdDsKKwogI2lmZGVmIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUKIAlpZiAoIXNwZWMtPmxvb3BiYWNrLmFtcGxpc3QpCiAJCXNwZWMtPmxvb3BiYWNrLmFtcGxpc3QgPSBhbGM4ODNfbG9vcGJhY2tzOwpAQCAtODY0MCw2ICs4ODQyLDcgQEAKIAogCXsweDE1LCBBQ19WRVJCX1NFVF9VTlNPTElDSVRFRF9FTkFCTEUsIEFDX1VTUlNQX0VOIHwgQUxDODgwX0hQX0VWRU5UfSwKIAl7MHgxNSwgQUNfVkVSQl9TRVRfUElOX1dJREdFVF9DT05UUk9MLCBQSU5fSFB9LAorCXt9CiB9OwogCiAvKiBtdXRlL3VubXV0ZSBpbnRlcm5hbCBzcGVha2VyIGFjY29yZGluZyB0byB0aGUgaHAgamFjayBhbmQgbXV0ZSBzdGF0ZSAqLwpAQCAtOTUxOSw2ICs5NzIyLDggQEAKIAlTTkRfUENJX1FVSVJLKDB4MTA0ZCwgMHg4MjBmLCAiU29ueSBBU1NBTUQiLCBBTEMyNjJfU09OWV9BU1NBTUQpLAogCVNORF9QQ0lfUVVJUksoMHgxMDRkLCAweDkwMGUsICJTb255IEFTU0FNRCIsIEFMQzI2Ml9TT05ZX0FTU0FNRCksCiAJU05EX1BDSV9RVUlSSygweDEwNGQsIDB4OTAxNSwgIlNvbnkgMHg5MDE1IiwgQUxDMjYyX1NPTllfQVNTQU1EKSwKKwlTTkRfUENJX1FVSVJLKDB4MTE3OSwgMHgwMDAxLCAiVG9zaGliYSBkeW5hYm9vayBTUyBSWDEiLAorCQkgICAgICBBTEMyNjJfU09OWV9BU1NBTUQpLAogCVNORF9QQ0lfUVVJUksoMHgxMGNmLCAweDEzOTcsICJGdWppdHN1IiwgQUxDMjYyX0ZVSklUU1UpLAogCVNORF9QQ0lfUVVJUksoMHgxMGNmLCAweDE0MmQsICJGdWppdHN1IExpZmVib29rIEU4NDEwIiwgQUxDMjYyX0ZVSklUU1UpLAogCVNORF9QQ0lfUVVJUksoMHgxNDRkLCAweGMwMzIsICJTYW1zdW5nIFExIFVsdHJhIiwgQUxDMjYyX1VMVFJBKSwKQEAgLTk3MjYsNiArOTkzMSw4IEBACiAJfQogI2VuZGlmCiAKKwlhbGNfZml4X3BsbF9pbml0KGNvZGVjLCAweDIwLCAweDBhLCAxMCk7CisKIAlib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywgQUxDMjYyX01PREVMX0xBU1QsCiAJCQkJCQkgIGFsYzI2Ml9tb2RlbHMsCiAJCQkJCQkgIGFsYzI2Ml9jZmdfdGJsKTsKQEAgLTEwNTEwLDYgKzEwNzE3LDcgQEAKIAlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxMjA1LCAiQVNVUyBXN0oiLCBBTEMyNjhfM1NUKSwKIAlTTkRfUENJX1FVSVJLKDB4MTE3OSwgMHhmZjEwLCAiVE9TSElCQSBBMjA1IiwgQUxDMjY4X1RPU0hJQkEpLAogCVNORF9QQ0lfUVVJUksoMHgxMTc5LCAweGZmNTAsICJUT1NISUJBIEEzMDUiLCBBTEMyNjhfVE9TSElCQSksCisJU05EX1BDSV9RVUlSSygweDE0YzAsIDB4MDAyNSwgIkNPTVBBTCBJRkw5MC9KRkwtOTIiLCBBTEMyNjhfVE9TSElCQSksCiAJU05EX1BDSV9RVUlSSygweDE1MmQsIDB4MDc2MywgIkRpdmVyc2UgKENQUjIwMDApIiwgQUxDMjY4X0FDRVIpLAogCVNORF9QQ0lfUVVJUksoMHgxNTJkLCAweDA3NzEsICJRdWFudGEgSUwxIiwgQUxDMjY3X1FVQU5UQV9JTDEpLAogCVNORF9QQ0lfUVVJUksoMHgxMTcwLCAweDAwNDAsICJaRVBUTyIsIEFMQzI2OF9aRVBUTyksCkBAIC0xMDY3MCwxMiArMTA4NzgsMTggQEAKIAlpZiAoYm9hcmRfY29uZmlnICE9IEFMQzI2OF9BVVRPKQogCQlzZXR1cF9wcmVzZXQoc3BlYywgJmFsYzI2OF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2OCBBbmFsb2ciOworCWlmIChjb2RlYy0+dmVuZG9yX2lkID09IDB4MTBlYzAyNjcpIHsKKwkJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzI2NyBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzI2NyBEaWdpdGFsIjsKKwl9IGVsc2UgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDMjY4IEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjMjY4X3BjbV9hbmFsb2dfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJmFsYzI2OF9wY21fYW5hbG9nX2NhcHR1cmU7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19hbHRfY2FwdHVyZSA9ICZhbGMyNjhfcGNtX2FuYWxvZ19hbHRfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDMjY4IERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzI2OF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAogCWlmICghcXVlcnlfYW1wX2NhcHMoY29kZWMsIDB4MWQsIEhEQV9JTlBVVCkpCkBAIC0xMTAyOSw2ICsxMTI0Myw4IEBACiAKIAljb2RlYy0+c3BlYyA9IHNwZWM7CiAKKwlhbGNfZml4X3BsbF9pbml0KGNvZGVjLCAweDIwLCAweDA0LCAxNSk7CisKIAlib2FyZF9jb25maWcgPSBzbmRfaGRhX2NoZWNrX2JvYXJkX2NvbmZpZyhjb2RlYywgQUxDMjY5X01PREVMX0xBU1QsCiAJCQkJCQkgIGFsYzI2OV9tb2RlbHMsCiAJCQkJCQkgIGFsYzI2OV9jZmdfdGJsKTsKQEAgLTEyNjI3LDYgKzEyODQzLDEyIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2MHZkX2VhcGRfdmVyYnNbXSA9IHsKKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisJeyB9Cit9OworCiBzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzg2MXZkX2xlbm92b191bnNvbF92ZXJic1tdID0gewogCXsweDBjLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7MHgwYywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCkBAIC0xMjc4Miw2ICsxMzAwNCw3IEBACiAJU05EX1BDSV9RVUlSSygweDE1NjUsIDB4ODIwZCwgIkJpb3N0YXIgTkY2MVMgU0UiLCBBTEM4NjFWRF82U1RfRElHKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgyMDY2LCAiTGVub3ZvIiwgQUxDODYxVkRfTEVOT1ZPKSwKIAlTTkRfUENJX1FVSVJLKDB4MTdhYSwgMHgzODAyLCAiTGVub3ZvIDMwMDAgQzIwMCIsIEFMQzg2MVZEX0xFTk9WTyksCisJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4Mzg0ZSwgIkxlbm92byAzMDAwIE4yMDAiLCBBTEM4NjFWRF9MRU5PVk8pLAogCVNORF9QQ0lfUVVJUksoMHgxODQ5LCAweDA4NjIsICJBU1JvY2sgSzhORjZHLVZTVEEiLCBBTEM4NjFWRF82U1RfRElHKSwKIAl7fQogfTsKQEAgLTEzMTY0LDExICsxMzM4NywxOSBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDODYxVkRfQVVUTykKIAkJc2V0dXBfcHJlc2V0KHNwZWMsICZhbGM4NjF2ZF9wcmVzZXRzW2JvYXJkX2NvbmZpZ10pOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIkFMQzg2MVZEIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MCkgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYwLVZEIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYwLVZEIERpZ2l0YWwiOworCQkvKiBhbHdheXMgdHVybiBvbiBFQVBEICovCisJCXNwZWMtPmluaXRfdmVyYnNbc3BlYy0+bnVtX2luaXRfdmVyYnMrK10gPSBhbGM2NjB2ZF9lYXBkX3ZlcmJzOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM4NjFWRCBBbmFsb2ciOworCQlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIkFMQzg2MVZEIERpZ2l0YWwiOworCX0KKwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjODYxdmRfcGNtX2FuYWxvZ19jYXB0dXJlOwogCi0Jc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM4NjFWRCBEaWdpdGFsIjsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9wbGF5YmFjayA9ICZhbGM4NjF2ZF9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzg2MXZkX3BjbV9kaWdpdGFsX2NhcHR1cmU7CiAKQEAgLTEzMjQ3LDYgKzEzNDc4LDIzIEBACiAJfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgaGRhX2lucHV0X211eCBhbGM2NjNfY2FwdHVyZV9zb3VyY2UgPSB7CisJLm51bV9pdGVtcyA9IDMsCisJLml0ZW1zID0geworCQl7ICJNaWMiLCAweDAgfSwKKwkJeyAiRnJvbnQgTWljIiwgMHgxIH0sCisJCXsgIkxpbmUiLCAweDIgfSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfaW5wdXRfbXV4IGFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSA9IHsKKwkubnVtX2l0ZW1zID0gMiwKKwkuaXRlbXMgPSB7CisJCXsgIkV4dC1NaWMiLCAweDAgfSwKKwkJeyAiRC1NaWMiLCAweDkgfSwKKwl9LAorfTsKKwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1faW5mbyBhbGNfbXV4X2VudW1faW5mbwogI2RlZmluZSBhbGM2NjJfbXV4X2VudW1fZ2V0IGFsY19tdXhfZW51bV9nZXQKICNkZWZpbmUgYWxjNjYyX211eF9lbnVtX3B1dCBhbGM4ODJfbXV4X2VudW1fcHV0CkBAIC0xMzQyNyw2ICsxMzY3NSw0NCBAQAogCXsgfSAvKiBlbmQgKi8KIH07CiAKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfbTUxdmFfbWl4ZXJbXSA9IHsKKwlIREFfQ09ERUNfVk9MVU1FKCJTcGVha2VyIFBsYXliYWNrIFZvbHVtZSIsIDB4MDIsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX01VVEUoIlNwZWFrZXIgUGxheWJhY2sgU3dpdGNoIiwgMHgxNCwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiTWljIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MCwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRE1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDIzLCAweDksIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKworc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2M19nNzF2X21peGVyW10gPSB7CisJSERBX0NPREVDX1ZPTFVNRSgiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCAweDAyLCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJTcGVha2VyIFBsYXliYWNrIFN3aXRjaCIsIDB4MTQsIDB4MCwgSERBX09VVFBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiRnJvbnQgUGxheWJhY2sgVm9sdW1lIiwgMHgwMywgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiRnJvbnQgUGxheWJhY2sgU3dpdGNoIiwgMHgxNSwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiSGVhZHBob25lIFBsYXliYWNrIFN3aXRjaCIsIDB4MjEsIDB4MCwgSERBX09VVFBVVCksCisKKwlIREFfQ09ERUNfVk9MVU1FKCJNaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJNaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgwLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19WT0xVTUUoImktTWljIFBsYXliYWNrIFZvbHVtZSIsIDB4MGIsIDB4MSwgSERBX0lOUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiaS1NaWMgUGxheWJhY2sgU3dpdGNoIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCXsgfSAvKiBlbmQgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjNfZzUwdl9taXhlcltdID0geworCUhEQV9DT0RFQ19WT0xVTUUoIlNwZWFrZXIgUGxheWJhY2sgVm9sdW1lIiwgMHgwMiwgMHgwLCBIREFfT1VUUFVUKSwKKwlIREFfQ09ERUNfTVVURSgiU3BlYWtlciBQbGF5YmFjayBTd2l0Y2giLCAweDE0LCAweDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJIZWFkcGhvbmUgUGxheWJhY2sgU3dpdGNoIiwgMHgyMSwgMHgwLCBIREFfT1VUUFVUKSwKKworCUhEQV9DT0RFQ19WT0xVTUUoIk1pYyBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX01VVEUoIk1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDAsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiaS1NaWMgUGxheWJhY2sgVm9sdW1lIiwgMHgwYiwgMHgxLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJpLU1pYyBQbGF5YmFjayBTd2l0Y2giLCAweDBiLCAweDEsIEhEQV9JTlBVVCksCisJSERBX0NPREVDX1ZPTFVNRSgiTGluZSBQbGF5YmFjayBWb2x1bWUiLCAweDBiLCAweDAyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJMaW5lIFBsYXliYWNrIFN3aXRjaCIsIDB4MGIsIDB4MDIsIEhEQV9JTlBVVCksCisJeyB9IC8qIGVuZCAqLworfTsKKwogc3RhdGljIHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFsYzY2Ml9jaG1vZGVfbWl4ZXJbXSA9IHsKIAl7CiAJCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLApAQCAtMTM0OTcsNiArMTM3ODMsMTEgQEAKIAl7MHgyMywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgxKX0sCiAJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMil9LAogCXsweDIzLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDQpfSwKKworCS8qIGFsd2F5cyB0cnVuIG9uIEVBUEQgKi8KKwl7MHgxNCwgQUNfVkVSQl9TRVRfRUFQRF9CVExFTkFCTEUsIDJ9LAorCXsweDE1LCBBQ19WRVJCX1NFVF9FQVBEX0JUTEVOQUJMRSwgMn0sCisKIAl7IH0KIH07CiAKQEAgLTEzNTY3LDYgKzEzODU4LDQzIEBACiAJeyB9CiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV92ZXJiIGFsYzY2M19tNTF2YV9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MjMsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoOSl9LAorCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKK3N0YXRpYyBzdHJ1Y3QgaGRhX3ZlcmIgYWxjNjYzX2c3MXZfaW5pdF92ZXJic1tdID0geworCXsweDE1LCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJLyogezB4MTUsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwgKi8KKwkvKiB7MHgxNSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDF9LCAqLyAvKiBIZWFkcGhvbmUgKi8KKworCXsweDIxLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9IUH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9PVVRfVU5NVVRFfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4MDB9LAkvKiBIZWFkcGhvbmUgKi8KKworCXsweDE1LCBBQ19WRVJCX1NFVF9VTlNPTElDSVRFRF9FTkFCTEUsIEFDX1VTUlNQX0VOfEFMQzg4MF9GUk9OVF9FVkVOVH0sCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX01JQ19FVkVOVH0sCisJezB4MjEsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU58QUxDODgwX0hQX0VWRU5UfSwKKwl7fQorfTsKKworc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBhbGM2NjNfZzUwdl9pbml0X3ZlcmJzW10gPSB7CisJezB4MjEsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX0hQfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX09VVF9VTk1VVEV9LAorCXsweDIxLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgwMH0sCS8qIEhlYWRwaG9uZSAqLworCisJezB4MTgsIEFDX1ZFUkJfU0VUX1VOU09MSUNJVEVEX0VOQUJMRSwgQUNfVVNSU1BfRU4gfCBBTEM4ODBfTUlDX0VWRU5UfSwKKwl7MHgyMSwgQUNfVkVSQl9TRVRfVU5TT0xJQ0lURURfRU5BQkxFLCBBQ19VU1JTUF9FTiB8IEFMQzg4MF9IUF9FVkVOVH0sCisJe30KK307CisKIC8qIGNhcHR1cmUgbWl4ZXIgZWxlbWVudHMgKi8KIHN0YXRpYyBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhbGM2NjJfY2FwdHVyZV9taXhlcltdID0gewogCUhEQV9DT0RFQ19WT0xVTUUoIkNhcHR1cmUgVm9sdW1lIiwgMHgwOSwgMHgwLCBIREFfSU5QVVQpLApAQCAtMTM2ODgsNiArMTQwMTYsMTI1IEBACiAJYWxjNjYyX2VlZXBjX2VwMjBfYXV0b211dGUoY29kZWMpOwogfQogCitzdGF0aWMgdm9pZCBhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykKK3sKKwl1bnNpZ25lZCBpbnQgcHJlc2VudDsKKwl1bnNpZ25lZCBjaGFyIGJpdHM7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDIxLCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCWJpdHMgPSBwcmVzZW50ID8gSERBX0FNUF9NVVRFIDogMDsKKwlzbmRfaGRhX2NvZGVjX2FtcF9zdGVyZW8oY29kZWMsIDB4MTQsIEhEQV9PVVRQVVQsIDAsCisJCQkJIEhEQV9BTVBfTVVURSwgYml0cyk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV9taWNfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisKKwlwcmVzZW50ID0gc25kX2hkYV9jb2RlY19yZWFkKGNvZGVjLCAweDE4LCAwLAorCQkJCSAgICAgQUNfVkVSQl9HRVRfUElOX1NFTlNFLCAwKQorCQkmIEFDX1BJTlNFTlNFX1BSRVNFTkNFOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjIsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDAgPDwgOCkgfCAocHJlc2VudCA/IDAgOiAweDgwKSk7CisJc25kX2hkYV9jb2RlY193cml0ZV9jYWNoZShjb2RlYywgMHgyMywgMCwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwKKwkJCSAgICAweDcwMDAgfCAoMHgwMCA8PCA4KSB8IChwcmVzZW50ID8gMCA6IDB4ODApKTsKKwlzbmRfaGRhX2NvZGVjX3dyaXRlX2NhY2hlKGNvZGVjLCAweDIyLCAwLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLAorCQkJICAgIDB4NzAwMCB8ICgweDA5IDw8IDgpIHwgKHByZXNlbnQgPyAweDgwIDogMCkpOworCXNuZF9oZGFfY29kZWNfd3JpdGVfY2FjaGUoY29kZWMsIDB4MjMsIDAsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsCisJCQkgICAgMHg3MDAwIHwgKDB4MDkgPDwgOCkgfCAocHJlc2VudCA/IDB4ODAgOiAwKSk7Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19tNTF2YV91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfbTUxdmFfc3BlYWtlcl9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYzX201MXZhX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX201MXZhX2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjNfbTUxdmFfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaHBfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgyMSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE1LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworCXNuZF9oZGFfY29kZWNfYW1wX3N0ZXJlbyhjb2RlYywgMHgxNCwgSERBX09VVFBVVCwgMCwKKwkJCQkgSERBX0FNUF9NVVRFLCBiaXRzKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJdW5zaWduZWQgaW50IHByZXNlbnQ7CisJdW5zaWduZWQgY2hhciBiaXRzOworCisJcHJlc2VudCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgMHgxNSwgMCwKKwkJCQkgICAgIEFDX1ZFUkJfR0VUX1BJTl9TRU5TRSwgMCkKKwkJJiBBQ19QSU5TRU5TRV9QUkVTRU5DRTsKKwliaXRzID0gcHJlc2VudCA/IEhEQV9BTVBfTVVURSA6IDA7CisJc25kX2hkYV9jb2RlY19hbXBfc3RlcmVvKGNvZGVjLCAweDE0LCBIREFfT1VUUFVULCAwLAorCQkJCSBIREFfQU1QX01VVEUsIGJpdHMpOworfQorCitzdGF0aWMgdm9pZCBhbGM2NjNfZzcxdl91bnNvbF9ldmVudChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywKKwkJCQkJICAgdW5zaWduZWQgaW50IHJlcykKK3sKKwlzd2l0Y2ggKHJlcyA+PiAyNikgeworCWNhc2UgQUxDODgwX0hQX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9ocF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX0ZST05UX0VWRU5UOgorCQlhbGM2NjNfZzcxdl9mcm9udF9hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCWNhc2UgQUxDODgwX01JQ19FVkVOVDoKKwkJYWxjNjYyX2VlZXBjX21pY19hdXRvbXV0ZShjb2RlYyk7CisJCWJyZWFrOworCX0KK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c3MXZfaW5pdGhvb2soc3RydWN0IGhkYV9jb2RlYyAqY29kZWMpCit7CisJYWxjNjYzX2c3MXZfZnJvbnRfYXV0b211dGUoY29kZWMpOworCWFsYzY2M19nNzF2X2hwX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKworc3RhdGljIHZvaWQgYWxjNjYzX2c1MHZfdW5zb2xfZXZlbnQoc3RydWN0IGhkYV9jb2RlYyAqY29kZWMsCisJCQkJCSAgIHVuc2lnbmVkIGludCByZXMpCit7CisJc3dpdGNoIChyZXMgPj4gMjYpIHsKKwljYXNlIEFMQzg4MF9IUF9FVkVOVDoKKwkJYWxjNjYzX201MXZhX3NwZWFrZXJfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwljYXNlIEFMQzg4MF9NSUNfRVZFTlQ6CisJCWFsYzY2Ml9lZWVwY19taWNfYXV0b211dGUoY29kZWMpOworCQlicmVhazsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGFsYzY2M19nNTB2X2luaXRob29rKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjKQoreworCWFsYzY2M19tNTF2YV9zcGVha2VyX2F1dG9tdXRlKGNvZGVjKTsKKwlhbGM2NjJfZWVlcGNfbWljX2F1dG9tdXRlKGNvZGVjKTsKK30KKwogI2lmZGVmIENPTkZJR19TTkRfSERBX1BPV0VSX1NBVkUKICNkZWZpbmUgYWxjNjYyX2xvb3BiYWNrcwlhbGM4ODBfbG9vcGJhY2tzCiAjZW5kaWYKQEAgLTEzNzEwLDE0ICsxNDE1NywyNCBAQAogCVtBTEM2NjJfTEVOT1ZPXzEwMUVdCT0gImxlbm92by0xMDFlIiwKIAlbQUxDNjYyX0FTVVNfRUVFUENfUDcwMV0gPSAiZWVlcGMtcDcwMSIsCiAJW0FMQzY2Ml9BU1VTX0VFRVBDX0VQMjBdID0gImVlZXBjLWVwMjAiLAorCVtBTEM2NjNfQVNVU19NNTFWQV0gPSAibTUxdmEiLAorCVtBTEM2NjNfQVNVU19HNzFWXSA9ICJnNzF2IiwKKwlbQUxDNjYzX0FTVVNfSDEzXSA9ICJoMTMiLAorCVtBTEM2NjNfQVNVU19HNTBWXSA9ICJnNTB2IiwKIAlbQUxDNjYyX0FVVE9dCQk9ICJhdXRvIiwKIH07CiAKIHN0YXRpYyBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBhbGM2NjJfY2ZnX3RibFtdID0geworCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDExYzMsICJBU1VTIEc3MVYiLCBBTEM2NjNfQVNVU19HNzFWKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxODc4LCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX001MVZBKSwKKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxOWEzLCAiQVNVUyBNNTFWQSIsIEFMQzY2M19BU1VTX0c1MFYpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyOTAsICJBU1VTIFA1R0MtTVgiLCBBTEM2NjJfM1NUXzZjaF9ESUcpLAogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgyYTEsICJBU1VTIEVlZXBjIiwgQUxDNjYyX0FTVVNfRUVFUENfUDcwMSksCiAJU05EX1BDSV9RVUlSSygweDEwNDMsIDB4ODJkMSwgIkFTVVMgRWVlcGMgRVAyMCIsIEFMQzY2Ml9BU1VTX0VFRVBDX0VQMjApLAogCVNORF9QQ0lfUVVJUksoMHgxN2FhLCAweDEwMWUsICJMZW5vdm8iLCBBTEM2NjJfTEVOT1ZPXzEwMUUpLAorCVNORF9QQ0lfUVVJUksoMHgxODU0LCAweDIwMDAsICJBU1VTIEgxMy0yMDAwIiwgQUxDNjYzX0FTVVNfSDEzKSwKKwlTTkRfUENJX1FVSVJLKDB4MTg1NCwgMHgyMDAxLCAiQVNVUyBIMTMtMjAwMSIsIEFMQzY2M19BU1VTX0gxMyksCisJU05EX1BDSV9RVUlSSygweDE4NTQsIDB4MjAwMiwgIkFTVVMgSDEzLTIwMDIiLCBBTEM2NjNfQVNVU19IMTMpLAogCXt9CiB9OwogCkBAIC0xMzgwNSw3ICsxNDI2Miw1MyBAQAogCQkudW5zb2xfZXZlbnQgPSBhbGM2NjJfZWVlcGNfZXAyMF91bnNvbF9ldmVudCwKIAkJLmluaXRfaG9vayA9IGFsYzY2Ml9lZWVwY19lcDIwX2luaXRob29rLAogCX0sCi0KKwlbQUxDNjYzX0FTVVNfTTUxVkFdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLmRpZ19vdXRfbmlkID0gQUxDNjYyX0RJR09VVF9OSUQsCisJCS5udW1fY2hhbm5lbF9tb2RlID0gQVJSQVlfU0laRShhbGM2NjJfM1NUXzJjaF9tb2RlcyksCisJCS5jaGFubmVsX21vZGUgPSBhbGM2NjJfM1NUXzJjaF9tb2RlcywKKwkJLmlucHV0X211eCA9ICZhbGM2NjNfbTUxdmFfY2FwdHVyZV9zb3VyY2UsCisJCS51bnNvbF9ldmVudCA9IGFsYzY2M19tNTF2YV91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19tNTF2YV9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19HNzFWXSA9IHsKKwkJLm1peGVycyA9IHsgYWxjNjYzX2c3MXZfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfZzcxdl9pbml0X3ZlcmJzIH0sCisJCS5udW1fZGFjcyA9IEFSUkFZX1NJWkUoYWxjNjYyX2RhY19uaWRzKSwKKwkJLmRhY19uaWRzID0gYWxjNjYyX2RhY19uaWRzLAorCQkuZGlnX291dF9uaWQgPSBBTEM2NjJfRElHT1VUX05JRCwKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2Ml9lZWVwY19jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX2c3MXZfdW5zb2xfZXZlbnQsCisJCS5pbml0X2hvb2sgPSBhbGM2NjNfZzcxdl9pbml0aG9vaywKKwl9LAorCVtBTEM2NjNfQVNVU19IMTNdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfbTUxdmFfbWl4ZXIsIGFsYzY2Ml9jYXB0dXJlX21peGVyfSwKKwkJLmluaXRfdmVyYnMgPSB7IGFsYzY2Ml9pbml0X3ZlcmJzLCBhbGM2NjNfbTUxdmFfaW5pdF92ZXJicyB9LAorCQkubnVtX2RhY3MgPSBBUlJBWV9TSVpFKGFsYzY2Ml9kYWNfbmlkcyksCisJCS5kYWNfbmlkcyA9IGFsYzY2Ml9kYWNfbmlkcywKKwkJLm51bV9jaGFubmVsX21vZGUgPSBBUlJBWV9TSVpFKGFsYzY2Ml8zU1RfMmNoX21vZGVzKSwKKwkJLmNoYW5uZWxfbW9kZSA9IGFsYzY2Ml8zU1RfMmNoX21vZGVzLAorCQkuaW5wdXRfbXV4ID0gJmFsYzY2M19tNTF2YV9jYXB0dXJlX3NvdXJjZSwKKwkJLnVuc29sX2V2ZW50ID0gYWxjNjYzX201MXZhX3Vuc29sX2V2ZW50LAorCQkuaW5pdF9ob29rID0gYWxjNjYzX201MXZhX2luaXRob29rLAorCX0sCisJW0FMQzY2M19BU1VTX0c1MFZdID0geworCQkubWl4ZXJzID0geyBhbGM2NjNfZzUwdl9taXhlciwgYWxjNjYyX2NhcHR1cmVfbWl4ZXJ9LAorCQkuaW5pdF92ZXJicyA9IHsgYWxjNjYyX2luaXRfdmVyYnMsIGFsYzY2M19nNTB2X2luaXRfdmVyYnMgfSwKKwkJLm51bV9kYWNzID0gQVJSQVlfU0laRShhbGM2NjJfZGFjX25pZHMpLAorCQkuZGFjX25pZHMgPSBhbGM2NjJfZGFjX25pZHMsCisJCS5kaWdfb3V0X25pZCA9IEFMQzY2Ml9ESUdPVVRfTklELAorCQkubnVtX2NoYW5uZWxfbW9kZSA9IEFSUkFZX1NJWkUoYWxjNjYyXzNTVF82Y2hfbW9kZXMpLAorCQkuY2hhbm5lbF9tb2RlID0gYWxjNjYyXzNTVF82Y2hfbW9kZXMsCisJCS5pbnB1dF9tdXggPSAmYWxjNjYzX2NhcHR1cmVfc291cmNlLAorCQkudW5zb2xfZXZlbnQgPSBhbGM2NjNfZzUwdl91bnNvbF9ldmVudCwKKwkJLmluaXRfaG9vayA9IGFsYzY2M19nNTB2X2luaXRob29rLAorCX0sCiB9OwogCiAKQEAgLTE0MDc4LDYgKzE0NTgxLDggQEAKIAogCWNvZGVjLT5zcGVjID0gc3BlYzsKIAorCWFsY19maXhfcGxsX2luaXQoY29kZWMsIDB4MjAsIDB4MDQsIDE1KTsKKwogCWJvYXJkX2NvbmZpZyA9IHNuZF9oZGFfY2hlY2tfYm9hcmRfY29uZmlnKGNvZGVjLCBBTEM2NjJfTU9ERUxfTEFTVCwKIAkJCQkJCSAgYWxjNjYyX21vZGVscywKIAkJCSAgCSAgICAgICAgICAgICAgICAgIGFsYzY2Ml9jZmdfdGJsKTsKQEAgLTE0MTA0LDExICsxNDYwOSwxNyBAQAogCWlmIChib2FyZF9jb25maWcgIT0gQUxDNjYyX0FVVE8pCiAJCXNldHVwX3ByZXNldChzcGVjLCAmYWxjNjYyX3ByZXNldHNbYm9hcmRfY29uZmlnXSk7CiAKLQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYyIEFuYWxvZyI7CisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMGVjMDY2MykgeworCQlzcGVjLT5zdHJlYW1fbmFtZV9hbmFsb2cgPSAiQUxDNjYzIEFuYWxvZyI7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYzIERpZ2l0YWwiOworCX0gZWxzZSB7CisJCXNwZWMtPnN0cmVhbV9uYW1lX2FuYWxvZyA9ICJBTEM2NjIgQW5hbG9nIjsKKwkJc3BlYy0+c3RyZWFtX25hbWVfZGlnaXRhbCA9ICJBTEM2NjIgRGlnaXRhbCI7CisJfQorCiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZhbGM2NjJfcGNtX2FuYWxvZ19wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fYW5hbG9nX2NhcHR1cmUgPSAmYWxjNjYyX3BjbV9hbmFsb2dfY2FwdHVyZTsKIAotCXNwZWMtPnN0cmVhbV9uYW1lX2RpZ2l0YWwgPSAiQUxDNjYyIERpZ2l0YWwiOwogCXNwZWMtPnN0cmVhbV9kaWdpdGFsX3BsYXliYWNrID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9wbGF5YmFjazsKIAlzcGVjLT5zdHJlYW1fZGlnaXRhbF9jYXB0dXJlID0gJmFsYzY2Ml9wY21fZGlnaXRhbF9jYXB0dXJlOwogCkBAIC0xNDE0Nyw2ICsxNDY1OCw3IEBACiAJICAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKIAl7IC5pZCA9IDB4MTBlYzA2NjIsIC5yZXYgPSAweDEwMDEwMSwgLm5hbWUgPSAiQUxDNjYyIHJldjEiLAogCSAgLnBhdGNoID0gcGF0Y2hfYWxjNjYyIH0sCisJeyAuaWQgPSAweDEwZWMwNjYzLCAubmFtZSA9ICJBTEM2NjMiLCAucGF0Y2ggPSBwYXRjaF9hbGM2NjIgfSwKIAl7IC5pZCA9IDB4MTBlYzA4ODAsIC5uYW1lID0gIkFMQzg4MCIsIC5wYXRjaCA9IHBhdGNoX2FsYzg4MCB9LAogCXsgLmlkID0gMHgxMGVjMDg4MiwgLm5hbWUgPSAiQUxDODgyIiwgLnBhdGNoID0gcGF0Y2hfYWxjODgyIH0sCiAJeyAuaWQgPSAweDEwZWMwODgzLCAubmFtZSA9ICJBTEM4ODMiLCAucGF0Y2ggPSBwYXRjaF9hbGM4ODMgfSwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYwppbmRleCAzOTNmN2ZkLi4wOGNiNzdmIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRlbC5jCkBAIC02MzYsMjEgKzYzNiwyOCBAQAogCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiB9OwogCisjZGVmaW5lIEhEX0RJU0FCTEVfUE9SVEYgMwogc3RhdGljIHN0cnVjdCBoZGFfdmVyYiBzdGFjOTJoZDcxYnh4X2FuYWxvZ19jb3JlX2luaXRbXSA9IHsKKwkvKiBzdGFydCBvZiBjb25maWcgIzEgKi8KKworCS8qIGNvbm5lY3QgcG9ydCAwZiB0byBhdWRpbyBtaXhlciAqLworCXsgMHgwZiwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCisJeyAweDBmLCBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVR9LCAvKiBTcGVha2VyICovCisJLyogdW5tdXRlIHJpZ2h0IGFuZCBsZWZ0IGNoYW5uZWxzIGZvciBub2RlIDB4MGYgKi8KKwl7IDB4MGYsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAorCS8qIHN0YXJ0IG9mIGNvbmZpZyAjMiAqLworCiAJLyogc2V0IG1hc3RlciB2b2x1bWUgYW5kIGRpcmVjdCBjb250cm9sICovCiAJeyAweDI4LCBBQ19WRVJCX1NFVF9WT0xVTUVfS05PQl9DT05UUk9MLCAweGZmfSwKIAkvKiBjb25uZWN0IGhlYWRwaG9uZSBqYWNrIHRvIGRhYzEgKi8KIAl7IDB4MGEsIEFDX1ZFUkJfU0VUX0NPTk5FQ1RfU0VMLCAweDAxfSwKLQkvKiBjb25uZWN0IHBvcnRzIDBkIGFuZCAwZiB0byBhdWRpbyBtaXhlciAqLworCS8qIGNvbm5lY3QgcG9ydCAwZCB0byBhdWRpbyBtaXhlciAqLwogCXsgMHgwZCwgQUNfVkVSQl9TRVRfQ09OTkVDVF9TRUwsIDB4Mn0sCi0JeyAweDBmLCBBQ19WRVJCX1NFVF9DT05ORUNUX1NFTCwgMHgyfSwKLQl7IDB4MGYsIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgUElOX09VVH0sIC8qIFNwZWFrZXIgKi8KIAkvKiB1bm11dGUgZGFjMCBpbnB1dCBpbiBhdWRpbyBtaXhlciAqLwogCXsgMHgxNywgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgMHg3MDFmfSwKLQkvKiB1bm11dGUgcmlnaHQgYW5kIGxlZnQgY2hhbm5lbHMgZm9yIG5vZGVzIDB4MGEsIDB4ZCwgMHgwZiAqLworCS8qIHVubXV0ZSByaWdodCBhbmQgbGVmdCBjaGFubmVscyBmb3Igbm9kZXMgMHgwYSwgMHhkICovCiAJeyAweDBhLCBBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRFLCBBTVBfSU5fVU5NVVRFKDApfSwKIAl7IDB4MGQsIEFDX1ZFUkJfU0VUX0FNUF9HQUlOX01VVEUsIEFNUF9JTl9VTk1VVEUoMCl9LAotCXsgMHgwZiwgQUNfVkVSQl9TRVRfQU1QX0dBSU5fTVVURSwgQU1QX0lOX1VOTVVURSgwKX0sCiAJe30KIH07CiAKQEAgLTgxOCw2ICs4MjUsOSBAQAogCUhEQV9DT0RFQ19NVVRFX0lEWCgiQ2FwdHVyZSBTd2l0Y2giLCAweDEsIDB4MWQsIDB4MCwgSERBX09VVFBVVCksCiAJSERBX0NPREVDX1ZPTFVNRV9JRFgoIkNhcHR1cmUgTXV4IFZvbHVtZSIsIDB4MSwgMHgxYiwgMHgwLCBIREFfT1VUUFVUKSwKIAorCUhEQV9DT0RFQ19WT0xVTUUoIlBDIEJlZXAgVm9sdW1lIiwgMHgxNywgMHgyLCBIREFfSU5QVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJQQyBCZWVwIFN3aXRjaCIsIDB4MTcsIDB4MiwgSERBX0lOUFVUKSwKKwogCUhEQV9DT0RFQ19NVVRFKCJBbmFsb2cgTG9vcGJhY2sgMSIsIDB4MTcsIDB4MywgSERBX0lOUFVUKSwKIAlIREFfQ09ERUNfTVVURSgiQW5hbG9nIExvb3BiYWNrIDIiLCAweDE3LCAweDQsIEhEQV9JTlBVVCksCiAJeyB9IC8qIGVuZCAqLwpAQCAtODQwLDcgKzg1MCw3IEBACiBzdGF0aWMgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgc3RhYzkyNXhfbWl4ZXJbXSA9IHsKIAlTVEFDX0lOUFVUX1NPVVJDRSgxKSwKIAlIREFfQ09ERUNfVk9MVU1FKCJDYXB0dXJlIFZvbHVtZSIsIDB4MDksIDAsIEhEQV9PVVRQVVQpLAotCUhEQV9DT0RFQ19NVVRFKCJDYXB0dXJlIFN3aXRjaCIsIDB4MDksIDAsIEhEQV9PVVRQVVQpLAorCUhEQV9DT0RFQ19NVVRFKCJDYXB0dXJlIFN3aXRjaCIsIDB4MTQsIDAsIEhEQV9PVVRQVVQpLAogCUhEQV9DT0RFQ19WT0xVTUUoIkNhcHR1cmUgTXV4IFZvbHVtZSIsIDB4MGYsIDAsIEhEQV9PVVRQVVQpLAogCXsgfSAvKiBlbmQgKi8KIH07CkBAIC0xMzE3LDEzICsxMzI3LDEzIEBACiAJMHg5MGEwMDBmMCwgMHgwMTQ1MjA1MCwKIH07CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgZGVsbF9tNF8xX3Bpbl9jb25maWdzWzEzXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZGVsbF9tNF8xX3Bpbl9jb25maWdzWzEwXSA9IHsKIAkweDA0MjExMDFmLCAweDA0YTExMjIxLCAweDQwZjAwMGYwLCAweDkwMTcwMTEwLAogCTB4MjNhMTkwMmUsIDB4MjMwMTQyNTAsIDB4NDBmMDAwZjAsIDB4OTBhMDAwZjAsCiAJMHg0MGYwMDBmMCwgMHg0ZjAwMDBmMCwKIH07CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgZGVsbF9tNF8yX3Bpbl9jb25maWdzWzEzXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBpbnQgZGVsbF9tNF8yX3Bpbl9jb25maWdzWzEwXSA9IHsKIAkweDA0MjExMDFmLCAweDA0YTExMjIxLCAweDkwYTcwMzMwLCAweDkwMTcwMTEwLAogCTB4MjNhMTkwMmUsIDB4MjMwMTQyNTAsIDB4NDBmMDAwZjAsIDB4NDBmMDAwZjAsCiAJMHg0MGYwMDBmMCwgMHgwNDQ0MTNiMCwKQEAgLTE3NTQsMTIgKzE3NjQsOCBAQAogCQkgICAgICAidW5rbm93biBEZWxsIiwgU1RBQ185MjA1X0RFTExfTTQyKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWY4LAogCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMWMsCi0JCQkgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmOSwKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFiLAotCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZmEsCiAJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCiAJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmYywKQEAgLTE3NzAsMTggKzE3NzYsMTQgQEAKIAkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWZmLAogCQkgICAgICAiRGVsbCBQcmVjaXNpb24gTTQzMDAiLCBTVEFDXzkyMDVfREVMTF9NNDMpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMDYsCi0JCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmMSwKLQkJICAgICAgIkRlbGwgSW5zcGlyb24iLCBTVEFDXzkyMDVfREVMTF9NNDQpLAotCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAxZjIsCi0JCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKLQlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMWZjLAotCQkgICAgICAiRGVsbCBJbnNwaXJvbiIsIFNUQUNfOTIwNV9ERUxMX000NCksCi0JU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDFmZCwKLQkJICAgICAgIkRlbGwgSW5zcGlyb24iLCBTVEFDXzkyMDVfREVMTF9NNDQpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMDQsCiAJCSAgICAgICJ1bmtub3duIERlbGwiLCBTVEFDXzkyMDVfREVMTF9NNDIpLAorCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMDYsCisJCSAgICAgICJEZWxsIFByZWNpc2lvbiIsIFNUQUNfOTIwNV9ERUxMX000MyksCisJU05EX1BDSV9RVUlSSyhQQ0lfVkVORE9SX0lEX0RFTEwsIDB4MDIxYiwKKwkJICAgICAgIkRlbGwgUHJlY2lzaW9uIiwgU1RBQ185MjA1X0RFTExfTTQzKSwKKwlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjFjLAorCQkgICAgICAiRGVsbCBQcmVjaXNpb24iLCBTVEFDXzkyMDVfREVMTF9NNDMpLAogCVNORF9QQ0lfUVVJUksoUENJX1ZFTkRPUl9JRF9ERUxMLCAweDAyMWYsCiAJCSAgICAgICJEZWxsIEluc3Bpcm9uIiwgU1RBQ185MjA1X0RFTExfTTQ0KSwKIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfREVMTCwgMHgwMjI4LApAQCAtMzEwMywxMyArMzEwNSwxNiBAQAogCQkJCQkwLCBBQ19WRVJCX0dFVF9QSU5fV0lER0VUX0NPTlRST0wsIDApOwogCQlpbnQgZGVmX2NvbmYgPSBzbmRfaGRhX2NvZGVjX3JlYWQoY29kZWMsIHNwZWMtPnB3cl9uaWRzW2ldLAogCQkJCQkwLCBBQ19WRVJCX0dFVF9DT05GSUdfREVGQVVMVCwgMCk7CisJCWRlZl9jb25mID0gZ2V0X2RlZmNmZ19jb25uZWN0KGRlZl9jb25mKTsKIAkJLyogb3V0cHV0cyBhcmUgb25seSBwb3J0cyBjYXBhYmxlIG9mIHBvd2VyIG1hbmFnZW1lbnQKIAkJICogYW55IGF0dGVtcHRzIG9uIHBvd2VyaW5nIGRvd24gYSBpbnB1dCBwb3J0IGNhdXNlIHRoZQogCQkgKiByZWZlcmVuY2VkIFZSRUYgdG8gYWN0IHF1aXJreS4KIAkJICovCiAJCWlmIChwaW5jdGwgJiBBQ19QSU5DVExfSU5fRU4pCiAJCQljb250aW51ZTsKLQkJaWYgKGdldF9kZWZjZmdfY29ubmVjdChkZWZfY29uZikgIT0gQUNfSkFDS19QT1JUX0ZJWEVEKQorCQkvKiBza2lwIGFueSBwb3J0cyB0aGF0IGRvbid0IGhhdmUgamFja3Mgc2luY2UgcHJlc2VuY2UKKyAJCSAqIGRldGVjdGlvbiBpcyB1c2VsZXNzICovCisJCWlmIChkZWZfY29uZiAmJiBkZWZfY29uZiAhPSBBQ19KQUNLX1BPUlRfRklYRUQpCiAJCQljb250aW51ZTsKIAkJZW5hYmxlX3Bpbl9kZXRlY3QoY29kZWMsIHNwZWMtPnB3cl9uaWRzW2ldLCBldmVudCB8IGkpOwogCQljb2RlYy0+cGF0Y2hfb3BzLnVuc29sX2V2ZW50KGNvZGVjLCAoZXZlbnQgfCBpKSA8PCAyNik7CkBAIC0zNjE0LDYgKzM2MTksNyBAQAogCiAJY29kZWMtPnNwZWMgPSBzcGVjOwogCXNwZWMtPm51bV9waW5zID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X3Bpbl9uaWRzKTsKKwlzcGVjLT5udW1fcHdycyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9wd3Jfbmlkcyk7CiAJc3BlYy0+cGluX25pZHMgPSBzdGFjOTJoZDcxYnh4X3Bpbl9uaWRzOwogCXNwZWMtPmJvYXJkX2NvbmZpZyA9IHNuZF9oZGFfY2hlY2tfYm9hcmRfY29uZmlnKGNvZGVjLAogCQkJCQkJCVNUQUNfOTJIRDcxQlhYX01PREVMUywKQEAgLTM2NDIsNiArMzY0OCwxOSBAQAogCQlzcGVjLT5taXhlciA9IHN0YWM5MmhkNzFieHhfbWl4ZXI7CiAJCXNwZWMtPmluaXQgPSBzdGFjOTJoZDcxYnh4X2NvcmVfaW5pdDsKIAkJYnJlYWs7CisJY2FzZSAweDExMWQ3NjA4OiAvKiA1IFBvcnQgd2l0aCBBbmFsb2cgTWl4ZXIgKi8KKwkJLyogbm8gb3V0cHV0IGFtcHMgKi8KKwkJc3BlYy0+bnVtX3B3cnMgPSAwOworCQlzcGVjLT5taXhlciA9IHN0YWM5MmhkNzFieHhfYW5hbG9nX21peGVyOworCisJCS8qIGRpc2FibGUgVlNXICovCisJCXNwZWMtPmluaXQgPSAmc3RhYzkyaGQ3MWJ4eF9hbmFsb2dfY29yZV9pbml0W0hEX0RJU0FCTEVfUE9SVEZdOworCQlzdGFjOTJ4eF9zZXRfY29uZmlnX3JlZyhjb2RlYywgMHhmLCAweDQwZjAwMGYwKTsKKwkJYnJlYWs7CisJY2FzZSAweDExMWQ3NjAzOiAvKiA2IFBvcnQgd2l0aCBBbmFsb2cgTWl4ZXIgKi8KKwkJLyogbm8gb3V0cHV0IGFtcHMgKi8KKwkJc3BlYy0+bnVtX3B3cnMgPSAwOworCQkvKiBmYWxsdGhydSAqLwogCWRlZmF1bHQ6CiAJCXNwZWMtPm1peGVyID0gc3RhYzkyaGQ3MWJ4eF9hbmFsb2dfbWl4ZXI7CiAJCXNwZWMtPmluaXQgPSBzdGFjOTJoZDcxYnh4X2FuYWxvZ19jb3JlX2luaXQ7CkBAIC0zNjUzLDIyICszNjcyLDE5IEBACiAJLyogR1BJTzAgSGlnaCA9IEVBUEQgKi8KIAlzcGVjLT5ncGlvX21hc2sgPSAweDAxOwogCXNwZWMtPmdwaW9fZGlyID0gMHgwMTsKLQlzcGVjLT5ncGlvX21hc2sgPSAweDAxOwogCXNwZWMtPmdwaW9fZGF0YSA9IDB4MDE7CiAKIAlzcGVjLT5tdXhfbmlkcyA9IHN0YWM5MmhkNzFieHhfbXV4X25pZHM7CiAJc3BlYy0+YWRjX25pZHMgPSBzdGFjOTJoZDcxYnh4X2FkY19uaWRzOwogCXNwZWMtPmRtaWNfbmlkcyA9IHN0YWM5MmhkNzFieHhfZG1pY19uaWRzOwogCXNwZWMtPmRtdXhfbmlkcyA9IHN0YWM5MmhkNzFieHhfZG11eF9uaWRzOworCXNwZWMtPnB3cl9uaWRzID0gc3RhYzkyaGQ3MWJ4eF9wd3JfbmlkczsKIAogCXNwZWMtPm51bV9tdXhlcyA9IEFSUkFZX1NJWkUoc3RhYzkyaGQ3MWJ4eF9tdXhfbmlkcyk7CiAJc3BlYy0+bnVtX2FkY3MgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfYWRjX25pZHMpOwogCXNwZWMtPm51bV9kbWljcyA9IFNUQUM5MkhENzFCWFhfTlVNX0RNSUNTOwogCXNwZWMtPm51bV9kbXV4ZXMgPSBBUlJBWV9TSVpFKHN0YWM5MmhkNzFieHhfZG11eF9uaWRzKTsKIAotCXNwZWMtPm51bV9wd3JzID0gQVJSQVlfU0laRShzdGFjOTJoZDcxYnh4X3B3cl9uaWRzKTsKLQlzcGVjLT5wd3JfbmlkcyA9IHN0YWM5MmhkNzFieHhfcHdyX25pZHM7Ci0KIAlzcGVjLT5tdWx0aW91dC5udW1fZGFjcyA9IDE7CiAJc3BlYy0+bXVsdGlvdXQuaHBfbmlkID0gMHgxMTsKIAlzcGVjLT5tdWx0aW91dC5kYWNfbmlkcyA9IHN0YWM5MmhkNzFieHhfZGFjX25pZHM7CkBAIC00MzA2LDEwICs0MzIyLDExIEBACiAgCXsgLmlkID0gMHg4Mzg0NzZhNSwgLm5hbWUgPSAiU1RBQzkyNTVEIiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyMDUgfSwKICAJeyAuaWQgPSAweDgzODQ3NmE2LCAubmFtZSA9ICJTVEFDOTI1NCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MjA1IH0sCiAgCXsgLmlkID0gMHg4Mzg0NzZhNywgLm5hbWUgPSAiU1RBQzkyNTREIiwgLnBhdGNoID0gcGF0Y2hfc3RhYzkyMDUgfSwKKwl7IC5pZCA9IDB4MTExZDc2MDMsIC5uYW1lID0gIjkySEQ3NUIzWDUiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4fSwKKwl7IC5pZCA9IDB4MTExZDc2MDgsIC5uYW1lID0gIjkySEQ3NUIyWDUiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDcxYnh4fSwKIAl7IC5pZCA9IDB4MTExZDc2NzQsIC5uYW1lID0gIjkySEQ3M0QxWDUiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDczeHggfSwKIAl7IC5pZCA9IDB4MTExZDc2NzUsIC5uYW1lID0gIjkySEQ3M0MxWDUiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDczeHggfSwKIAl7IC5pZCA9IDB4MTExZDc2NzYsIC5uYW1lID0gIjkySEQ3M0UxWDUiLCAucGF0Y2ggPSBwYXRjaF9zdGFjOTJoZDczeHggfSwKLQl7IC5pZCA9IDB4MTExZDc2MDgsIC5uYW1lID0gIjkySEQ3MUJYWCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MmhkNzFieHggfSwKIAl7IC5pZCA9IDB4MTExZDc2YjAsIC5uYW1lID0gIjkySEQ3MUI4WCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MmhkNzFieHggfSwKIAl7IC5pZCA9IDB4MTExZDc2YjEsIC5uYW1lID0gIjkySEQ3MUI4WCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MmhkNzFieHggfSwKIAl7IC5pZCA9IDB4MTExZDc2YjIsIC5uYW1lID0gIjkySEQ3MUI3WCIsIC5wYXRjaCA9IHBhdGNoX3N0YWM5MmhkNzFieHggfSwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfdmlhLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3ZpYS5jCmluZGV4IDUyYjFkODEuLmU3ZTQzNTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfdmlhLmMKKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF92aWEuYwpAQCAtNDQ3LDYgKzQ0NywyMyBAQAogCX0sCiB9OwogCitzdGF0aWMgc3RydWN0IGhkYV9wY21fc3RyZWFtIHZ0MTcwOF9wY21fYW5hbG9nX3MxNl9wbGF5YmFjayA9IHsKKwkuc3Vic3RyZWFtcyA9IDEsCisJLmNoYW5uZWxzX21pbiA9IDIsCisJLmNoYW5uZWxzX21heCA9IDgsCisJLm5pZCA9IDB4MTAsIC8qIE5JRCB0byBxdWVyeSBmb3JtYXRzIGFuZCByYXRlcyAqLworCS8qIFdlIGdvdCBub2lzeSBvdXRwdXRzIG9uIHRoZSByaWdodCBjaGFubmVsIG9uIFZUMTcwOCB3aGVuCisJICogMjRiaXQgc2FtcGxlcyBhcmUgdXNlZC4gIFVudGlsIGFueSB3b3JrYXJvdW5kIGlzIGZvdW5kLAorCSAqIGRpc2FibGUgdGhlIDI0Yml0IGZvcm1hdCwgc28gZmFyLgorCSAqLworCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsCisJLm9wcyA9IHsKKwkJLm9wZW4gPSB2aWFfcGxheWJhY2tfcGNtX29wZW4sCisJCS5wcmVwYXJlID0gdmlhX3BsYXliYWNrX3BjbV9wcmVwYXJlLAorCQkuY2xlYW51cCA9IHZpYV9wbGF5YmFja19wY21fY2xlYW51cAorCX0sCit9OworCiBzdGF0aWMgc3RydWN0IGhkYV9wY21fc3RyZWFtIHZ0MTcwOF9wY21fYW5hbG9nX2NhcHR1cmUgPSB7CiAJLnN1YnN0cmVhbXMgPSAyLAogCS5jaGFubmVsc19taW4gPSAyLApAQCAtODk5LDYgKzkxNiw5IEBACiAJCiAJc3BlYy0+c3RyZWFtX25hbWVfYW5hbG9nID0gIlZUMTcwOCBBbmFsb2ciOwogCXNwZWMtPnN0cmVhbV9hbmFsb2dfcGxheWJhY2sgPSAmdnQxNzA4X3BjbV9hbmFsb2dfcGxheWJhY2s7CisJLyogZGlzYWJsZSAzMmJpdCBmb3JtYXQgb24gVlQxNzA4ICovCisJaWYgKGNvZGVjLT52ZW5kb3JfaWQgPT0gMHgxMTA2MTcwOCkKKwkJc3BlYy0+c3RyZWFtX2FuYWxvZ19wbGF5YmFjayA9ICZ2dDE3MDhfcGNtX2FuYWxvZ19zMTZfcGxheWJhY2s7CiAJc3BlYy0+c3RyZWFtX2FuYWxvZ19jYXB0dXJlID0gJnZ0MTcwOF9wY21fYW5hbG9nX2NhcHR1cmU7CiAKIAlzcGVjLT5zdHJlYW1fbmFtZV9kaWdpdGFsID0gIlZUMTcwOCBEaWdpdGFsIjsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9pY2UxNzEyL2VudnkyNGh0LmggYi9zb3VuZC9wY2kvaWNlMTcxMi9lbnZ5MjRodC5oCmluZGV4IDQzYjllM2UuLmEwYzVlMDAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9pY2UxNzEyL2VudnkyNGh0LmgKKysrIGIvc291bmQvcGNpL2ljZTE3MTIvZW52eTI0aHQuaApAQCAtOTMsOSArOTMsMTMgQEAKICNkZWZpbmUgVlQxNzI0X1JFR19NUFVfVFhGSUZPCQkweDBhCS8qYnl0ZSByby4gbnVtYmVyIG9mIGJ5dGVzIGluIFRYIGZpZm8qLwogI2RlZmluZSBWVDE3MjRfUkVHX01QVV9SWEZJRk8JCTB4MGIJLypieXRlIHJvLiBudW1iZXIgb2YgYnl0ZXMgaW4gUlggZmlmbyovCiAKLS8vYXJlIHRoZXNlIDIgdGhlIHdyb25nIHdheSBhcm91bmQ/IHRoZXkgZG9uJ3Qgc2VlbSB0byBiZSB1c2VkIHlldCBhbnl3YXkKLSNkZWZpbmUgVlQxNzI0X1JFR19NUFVfQ1RSTAkJMHgwYwkvKiBieXRlICovCi0jZGVmaW5lIFZUMTcyNF9SRUdfTVBVX0RBVEEJCTB4MGQJLyogYnl0ZSAqLworI2RlZmluZSBWVDE3MjRfUkVHX01QVV9EQVRBCQkweDBjCS8qIGJ5dGUgKi8KKyNkZWZpbmUgVlQxNzI0X1JFR19NUFVfQ1RSTAkJMHgwZAkvKiBieXRlICovCisjZGVmaW5lICAgVlQxNzI0X01QVV9VQVJUCTB4MDEKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1RYX0VNUFRZCTB4MDIKKyNkZWZpbmUgICBWVDE3MjRfTVBVX1RYX0ZVTEwJMHgwNAorI2RlZmluZSAgIFZUMTcyNF9NUFVfUlhfRU1QVFkJMHgwOAorI2RlZmluZSAgIFZUMTcyNF9NUFVfUlhfRlVMTAkweDEwCiAKICNkZWZpbmUgVlQxNzI0X1JFR19NUFVfRklGT19XTQkweDBlCS8qYnl0ZSBzZXQgdGhlIGhpZ2gvbG93IHdhdGVybWFya3MgZm9yIFJYL1RYIGZpZm9zKi8KICNkZWZpbmUgICBWVDE3MjRfTVBVX1JYX0ZJRk8JMHgyMAkvLzE9cnggZmlmbyB3YXRlcm1hcmsgMD10eCBmaWZvIHdhdGVybWFyawpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcxMi5oIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcxMi5oCmluZGV4IDMyMDg5MDEuLjc2MmZiZDcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIuaAorKysgYi9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzEyLmgKQEAgLTMzMyw2ICszMzMsOCBAQAogCXVuc2lnbmVkIGludCBoYXNfc3BkaWY6IDE7CS8qIFZUMTcyMC80IC0gaGFzIFNQRElGIEkvTyAqLwogCXVuc2lnbmVkIGludCBmb3JjZV9wZG1hNDogMTsJLyogVlQxNzIwLzQgLSBQRE1BNCBhcyBub24tc3BkaWYgKi8KIAl1bnNpZ25lZCBpbnQgZm9yY2VfcmRtYTE6IDE7CS8qIFZUMTcyMC80IC0gUkRNQTEgYXMgbm9uLXNwZGlmICovCisJdW5zaWduZWQgaW50IG1pZGlfb3V0cHV0OiAxOwkvKiBWVDE3MjAvNDogTUlESSBvdXRwdXQgdHJpZ2dlcmVkICovCisJdW5zaWduZWQgaW50IG1pZGlfaW5wdXQ6IDE7CS8qIFZUMTcyMC80OiBNSURJIGlucHV0IHRyaWdnZXJlZCAqLwogCXVuc2lnbmVkIGludCBudW1fdG90YWxfZGFjczsJLyogdG90YWwgREFDcyAqLwogCXVuc2lnbmVkIGludCBudW1fdG90YWxfYWRjczsJLyogdG90YWwgQURDcyAqLwogCXVuc2lnbmVkIGludCBjdXJfcmF0ZTsJCS8qIGN1cnJlbnQgcmF0ZSAqLwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcyNC5jIGIvc291bmQvcGNpL2ljZTE3MTIvaWNlMTcyNC5jCmluZGV4IDY3MzUwOTAuLmU1OTZkNzcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MjQuYworKysgYi9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzI0LmMKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9pbmZvLmg+Ci0jaW5jbHVkZSA8c291bmQvbXB1NDAxLmg+CisjaW5jbHVkZSA8c291bmQvcmF3bWlkaS5oPgogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KIAogI2luY2x1ZGUgPHNvdW5kL2Fzb3VuZGVmLmg+CkBAIC0yMjMsMzAgKzIyMywxNTMgQEAKIH0KIAogLyoKLSAqIE1QVTQwMSBhY2Nlc3NvcgorICogTUlESQogICovCi1zdGF0aWMgdW5zaWduZWQgY2hhciBzbmRfdnQxNzI0X21wdTQwMV9yZWFkKHN0cnVjdCBzbmRfbXB1NDAxICptcHUsCi0JCQkJCSAgICB1bnNpZ25lZCBsb25nIGFkZHIpCisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9taWRpX2NsZWFyX3J4KHN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlKQogewotCS8qIGZpeCBzdGF0dXMgYml0cyB0byB0aGUgc3RhbmRhcmQgcG9zaXRpb24gKi8KLQkvKiBvbmx5IFJYX0VNUFRZIGFuZCBUWF9GVUxMIGFyZSBjaGVja2VkICovCi0JaWYgKGFkZHIgPT0gTVBVNDAxQyhtcHUpKQotCQlyZXR1cm4gKGluYihhZGRyKSAmIDB4MGMpIDw8IDQ7Ci0JZWxzZQotCQlyZXR1cm4gaW5iKGFkZHIpOworCXVuc2lnbmVkIGludCBjb3VudDsKKworCWZvciAoY291bnQgPSBpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9SWEZJRk8pKTsgY291bnQgPiAwOyAtLWNvdW50KQorCQlpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9EQVRBKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNuZF92dDE3MjRfbXB1NDAxX3dyaXRlKHN0cnVjdCBzbmRfbXB1NDAxICptcHUsCi0JCQkJICAgIHVuc2lnbmVkIGNoYXIgZGF0YSwgdW5zaWduZWQgbG9uZyBhZGRyKQorc3RhdGljIGlubGluZSBzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICoKK2dldF9yYXdtaWRpX3N1YnN0cmVhbShzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSwgdW5zaWduZWQgaW50IHN0cmVhbSkKIHsKLQlpZiAoYWRkciA9PSBNUFU0MDFDKG1wdSkpIHsKLQkJaWYgKGRhdGEgPT0gTVBVNDAxX0VOVEVSX1VBUlQpCi0JCQlvdXRiKDB4MDEsIGFkZHIpOwotCQkvKiB3aGF0IGVsc2U/ICovCi0JfSBlbHNlCi0JCW91dGIoZGF0YSwgYWRkcik7CisJcmV0dXJuIGxpc3RfZmlyc3RfZW50cnkoJmljZS0+cm1pZGlbMF0tPnN0cmVhbXNbc3RyZWFtXS5zdWJzdHJlYW1zLAorCQkJCXN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0sIGxpc3QpOwogfQogCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV93cml0ZShzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSkKK3sKKwlzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzOworCWludCBjb3VudCwgaTsKKwl1OCBidWZmZXJbMzJdOworCisJcyA9IGdldF9yYXdtaWRpX3N1YnN0cmVhbShpY2UsIFNORFJWX1JBV01JRElfU1RSRUFNX09VVFBVVCk7CisJY291bnQgPSAzMSAtIGluYihJQ0VSRUcxNzI0KGljZSwgTVBVX1RYRklGTykpOworCWlmIChjb3VudCA+IDApIHsKKwkJY291bnQgPSBzbmRfcmF3bWlkaV90cmFuc21pdChzLCBidWZmZXIsIGNvdW50KTsKKwkJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCisJCQlvdXRiKGJ1ZmZlcltpXSwgSUNFUkVHMTcyNChpY2UsIE1QVV9EQVRBKSk7CisJfQorfQorCitzdGF0aWMgdm9pZCB2dDE3MjRfbWlkaV9yZWFkKHN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlKQoreworCXN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnM7CisJaW50IGNvdW50LCBpOworCXU4IGJ1ZmZlclszMl07CisKKwlzID0gZ2V0X3Jhd21pZGlfc3Vic3RyZWFtKGljZSwgU05EUlZfUkFXTUlESV9TVFJFQU1fSU5QVVQpOworCWNvdW50ID0gaW5iKElDRVJFRzE3MjQoaWNlLCBNUFVfUlhGSUZPKSk7CisJaWYgKGNvdW50ID4gMCkgeworCQljb3VudCA9IG1pbihjb3VudCwgMzIpOworCQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKwkJCWJ1ZmZlcltpXSA9IGluYihJQ0VSRUcxNzI0KGljZSwgTVBVX0RBVEEpKTsKKwkJc25kX3Jhd21pZGlfcmVjZWl2ZShzLCBidWZmZXIsIGNvdW50KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9lbmFibGVfbWlkaV9pcnEoc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgIHU4IGZsYWcsIGludCBlbmFibGUpCit7CisJc3RydWN0IHNuZF9pY2UxNzEyICppY2UgPSBzdWJzdHJlYW0tPnJtaWRpLT5wcml2YXRlX2RhdGE7CisJdTggbWFzazsKKworCXNwaW5fbG9ja19pcnEoJmljZS0+cmVnX2xvY2spOworCW1hc2sgPSBpbmIoSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwlpZiAoZW5hYmxlKQorCQltYXNrICY9IH5mbGFnOworCWVsc2UKKwkJbWFzayB8PSBmbGFnOworCW91dGIobWFzaywgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwlzcGluX3VubG9ja19pcnEoJmljZS0+cmVnX2xvY2spOworfQorCitzdGF0aWMgaW50IHZ0MTcyNF9taWRpX291dHB1dF9vcGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMpCit7CisJdnQxNzI0X2VuYWJsZV9taWRpX2lycShzLCBWVDE3MjRfSVJRX01QVV9UWCwgMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdnQxNzI0X21pZGlfb3V0cHV0X2Nsb3NlKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMpCit7CisJdnQxNzI0X2VuYWJsZV9taWRpX2lycShzLCBWVDE3MjRfSVJRX01QVV9UWCwgMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9taWRpX291dHB1dF90cmlnZ2VyKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMsIGludCB1cCkKK3sKKwlzdHJ1Y3Qgc25kX2ljZTE3MTIgKmljZSA9IHMtPnJtaWRpLT5wcml2YXRlX2RhdGE7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZpY2UtPnJlZ19sb2NrLCBmbGFncyk7CisJaWYgKHVwKSB7CisJCWljZS0+bWlkaV9vdXRwdXQgPSAxOworCQl2dDE3MjRfbWlkaV93cml0ZShpY2UpOworCX0gZWxzZSB7CisJCWljZS0+bWlkaV9vdXRwdXQgPSAwOworCX0KKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpY2UtPnJlZ19sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyB2b2lkIHZ0MTcyNF9taWRpX291dHB1dF9kcmFpbihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzKQoreworCXN0cnVjdCBzbmRfaWNlMTcxMiAqaWNlID0gcy0+cm1pZGktPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBsb25nIHRpbWVvdXQ7CisKKwkvKiAzMiBieXRlcyBzaG91bGQgYmUgdHJhbnNtaXR0ZWQgaW4gbGVzcyB0aGFuIGFib3V0IDEyIG1zICovCisJdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDE1KTsKKwlkbyB7CisJCWlmIChpbmIoSUNFUkVHMTcyNChpY2UsIE1QVV9DVFJMKSkgJiBWVDE3MjRfTVBVX1RYX0VNUFRZKQorCQkJYnJlYWs7CisJCXNjaGVkdWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxlKDEpOworCX0gd2hpbGUgKHRpbWVfYWZ0ZXIodGltZW91dCwgamlmZmllcykpOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9yYXdtaWRpX29wcyB2dDE3MjRfbWlkaV9vdXRwdXRfb3BzID0geworCS5vcGVuID0gdnQxNzI0X21pZGlfb3V0cHV0X29wZW4sCisJLmNsb3NlID0gdnQxNzI0X21pZGlfb3V0cHV0X2Nsb3NlLAorCS50cmlnZ2VyID0gdnQxNzI0X21pZGlfb3V0cHV0X3RyaWdnZXIsCisJLmRyYWluID0gdnQxNzI0X21pZGlfb3V0cHV0X2RyYWluLAorfTsKKworc3RhdGljIGludCB2dDE3MjRfbWlkaV9pbnB1dF9vcGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnMpCit7CisJdnQxNzI0X21pZGlfY2xlYXJfcngocy0+cm1pZGktPnByaXZhdGVfZGF0YSk7CisJdnQxNzI0X2VuYWJsZV9taWRpX2lycShzLCBWVDE3MjRfSVJRX01QVV9SWCwgMSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdnQxNzI0X21pZGlfaW5wdXRfY2xvc2Uoc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqcykKK3sKKwl2dDE3MjRfZW5hYmxlX21pZGlfaXJxKHMsIFZUMTcyNF9JUlFfTVBVX1JYLCAwKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgdnQxNzI0X21pZGlfaW5wdXRfdHJpZ2dlcihzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzLCBpbnQgdXApCit7CisJc3RydWN0IHNuZF9pY2UxNzEyICppY2UgPSBzLT5ybWlkaS0+cHJpdmF0ZV9kYXRhOworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworCWlmICh1cCkgeworCQlpY2UtPm1pZGlfaW5wdXQgPSAxOworCQl2dDE3MjRfbWlkaV9yZWFkKGljZSk7CisJfSBlbHNlIHsKKwkJaWNlLT5taWRpX2lucHV0ID0gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaWNlLT5yZWdfbG9jaywgZmxhZ3MpOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9yYXdtaWRpX29wcyB2dDE3MjRfbWlkaV9pbnB1dF9vcHMgPSB7CisJLm9wZW4gPSB2dDE3MjRfbWlkaV9pbnB1dF9vcGVuLAorCS5jbG9zZSA9IHZ0MTcyNF9taWRpX2lucHV0X2Nsb3NlLAorCS50cmlnZ2VyID0gdnQxNzI0X21pZGlfaW5wdXRfdHJpZ2dlciwKK307CisKIAogLyoKICAqICBJbnRlcnJ1cHQgaGFuZGxlcgpAQCAtMjc4LDEzICs0MDEsMTAgQEAKICNlbmRpZgogCQloYW5kbGVkID0gMTsJCQogCQlpZiAoc3RhdHVzICYgVlQxNzI0X0lSUV9NUFVfVFgpIHsKLQkJCWlmIChpY2UtPnJtaWRpWzBdKQotCQkJCXNuZF9tcHU0MDFfdWFydF9pbnRlcnJ1cHRfdHgoaXJxLAotCQkJCQlpY2UtPnJtaWRpWzBdLT5wcml2YXRlX2RhdGEpOwotCQkJZWxzZSAvKiBkaXNhYmxlIFRYIHRvIGJlIHN1cmUgKi8KLQkJCQlvdXRiKGluYihJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpIHwKLQkJCQkgICAgIFZUMTcyNF9JUlFfTVBVX1RYLAotCQkJCSAgICAgSUNFUkVHMTcyNChpY2UsIElSUU1BU0spKTsKKwkJCXNwaW5fbG9jaygmaWNlLT5yZWdfbG9jayk7CisJCQlpZiAoaWNlLT5taWRpX291dHB1dCkKKwkJCQl2dDE3MjRfbWlkaV93cml0ZShpY2UpOworCQkJc3Bpbl91bmxvY2soJmljZS0+cmVnX2xvY2spOwogCQkJLyogRHVlIHRvIG15c3RlcmljYWwgcmVhc29ucywgTVBVX1RYIGlzIGFsd2F5cwogCQkJICogZ2VuZXJhdGVkIChhbmQgY2FuJ3QgYmUgY2xlYXJlZCkgd2hlbiBhIFBDTQogCQkJICogcGxheWJhY2sgaXMgZ29pbmcuICBTbyBsZXQncyBpZ25vcmUgYXQgdGhlCkBAIC0yOTMsMTMgKzQxMywxMiBAQAogCQkJc3RhdHVzX21hc2sgJj0gflZUMTcyNF9JUlFfTVBVX1RYOwogCQl9CiAJCWlmIChzdGF0dXMgJiBWVDE3MjRfSVJRX01QVV9SWCkgewotCQkJaWYgKGljZS0+cm1pZGlbMF0pCi0JCQkJc25kX21wdTQwMV91YXJ0X2ludGVycnVwdChpcnEsCi0JCQkJCWljZS0+cm1pZGlbMF0tPnByaXZhdGVfZGF0YSk7Ci0JCQllbHNlIC8qIGRpc2FibGUgUlggdG8gYmUgc3VyZSAqLwotCQkJCW91dGIoaW5iKElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSkgfAotCQkJCSAgICAgVlQxNzI0X0lSUV9NUFVfUlgsCi0JCQkJICAgICBJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpOworCQkJc3Bpbl9sb2NrKCZpY2UtPnJlZ19sb2NrKTsKKwkJCWlmIChpY2UtPm1pZGlfaW5wdXQpCisJCQkJdnQxNzI0X21pZGlfcmVhZChpY2UpOworCQkJZWxzZQorCQkJCXZ0MTcyNF9taWRpX2NsZWFyX3J4KGljZSk7CisJCQlzcGluX3VubG9jaygmaWNlLT5yZWdfbG9jayk7CiAJCX0KIAkJLyogYWNrIE1QVSBpcnEgKi8KIAkJb3V0YihzdGF0dXMsIElDRVJFRzE3MjQoaWNlLCBJUlFTVEFUKSk7CkBAIC0yNDI1LDI4ICsyNTQ0LDMwIEBACiAKIAlpZiAoISBjLT5ub19tcHU0MDEpIHsKIAkJaWYgKGljZS0+ZWVwcm9tLmRhdGFbSUNFX0VFUDJfU1lTQ09ORl0gJiBWVDE3MjRfQ0ZHX01QVTQwMSkgewotCQkJc3RydWN0IHNuZF9tcHU0MDEgKm1wdTsKLQkJCWlmICgoZXJyID0gc25kX21wdTQwMV91YXJ0X25ldyhjYXJkLCAwLCBNUFU0MDFfSFdfSUNFMTcxMiwKLQkJCQkJCSAgICAgICBJQ0VSRUcxNzI0KGljZSwgTVBVX0NUUkwpLAotCQkJCQkJICAgICAgIChNUFU0MDFfSU5GT19JTlRFR1JBVEVEIHwKLQkJCQkJCQlNUFU0MDFfSU5GT19OT19BQ0sgfAotCQkJCQkJCU1QVTQwMV9JTkZPX1RYX0lSUSksCi0JCQkJCQkgICAgICAgaWNlLT5pcnEsIDAsCi0JCQkJCQkgICAgICAgJmljZS0+cm1pZGlbMF0pKSA8IDApIHsKKwkJCXN0cnVjdCBzbmRfcmF3bWlkaSAqcm1pZGk7CisKKwkJCWVyciA9IHNuZF9yYXdtaWRpX25ldyhjYXJkLCAiTUlESSIsIDAsIDEsIDEsICZybWlkaSk7CisJCQlpZiAoZXJyIDwgMCkgewogCQkJCXNuZF9jYXJkX2ZyZWUoY2FyZCk7CiAJCQkJcmV0dXJuIGVycjsKIAkJCX0KLQkJCW1wdSA9IGljZS0+cm1pZGlbMF0tPnByaXZhdGVfZGF0YTsKLQkJCW1wdS0+cmVhZCA9IHNuZF92dDE3MjRfbXB1NDAxX3JlYWQ7Ci0JCQltcHUtPndyaXRlID0gc25kX3Z0MTcyNF9tcHU0MDFfd3JpdGU7Ci0JCQkvKiB1bm1hc2sgTVBVIFJYL1RYIGlycXMgKi8KLQkJCW91dGIoaW5iKElDRVJFRzE3MjQoaWNlLCBJUlFNQVNLKSkgJgotCQkJICAgICB+KFZUMTcyNF9JUlFfTVBVX1JYIHwgVlQxNzI0X0lSUV9NUFVfVFgpLAotCQkJICAgICBJQ0VSRUcxNzI0KGljZSwgSVJRTUFTSykpOworCQkJaWNlLT5ybWlkaVswXSA9IHJtaWRpOworCQkJcm1pZGktPnByaXZhdGVfZGF0YSA9IGljZTsKKwkJCXN0cmNweShybWlkaS0+bmFtZSwgIklDRTE3MjQgTUlESSIpOworCQkJcm1pZGktPmluZm9fZmxhZ3MgPSBTTkRSVl9SQVdNSURJX0lORk9fT1VUUFVUIHwKKwkJCQkJICAgIFNORFJWX1JBV01JRElfSU5GT19JTlBVVCB8CisJCQkJCSAgICBTTkRSVl9SQVdNSURJX0lORk9fRFVQTEVYOworCQkJc25kX3Jhd21pZGlfc2V0X29wcyhybWlkaSwgU05EUlZfUkFXTUlESV9TVFJFQU1fT1VUUFVULAorCQkJCQkgICAgJnZ0MTcyNF9taWRpX291dHB1dF9vcHMpOworCQkJc25kX3Jhd21pZGlfc2V0X29wcyhybWlkaSwgU05EUlZfUkFXTUlESV9TVFJFQU1fSU5QVVQsCisJCQkJCSAgICAmdnQxNzI0X21pZGlfaW5wdXRfb3BzKTsKKwogCQkJLyogc2V0IHdhdGVybWFya3MgKi8KIAkJCW91dGIoVlQxNzI0X01QVV9SWF9GSUZPIHwgMHgxLAogCQkJICAgICBJQ0VSRUcxNzI0KGljZSwgTVBVX0ZJRk9fV00pKTsKIAkJCW91dGIoMHgxLCBJQ0VSRUcxNzI0KGljZSwgTVBVX0ZJRk9fV00pKTsKKwkJCS8qIHNldCBVQVJUIG1vZGUgKi8KKwkJCW91dGIoVlQxNzI0X01QVV9VQVJULCBJQ0VSRUcxNzI0KGljZSwgTVBVX0NUUkwpKTsKIAkJfQogCX0KIApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLWZpcm13YXJlLmggYi9zb3VuZC9wY2kva29yZzEyMTIva29yZzEyMTItZmlybXdhcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZmNWI5MS4uMDAwMDAwMAotLS0gYS9zb3VuZC9wY2kva29yZzEyMTIva29yZzEyMTItZmlybXdhcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDk4NyArMCwwIEBACi1zdGF0aWMgY2hhciBkc3BDb2RlIFtdID0gewotMHgwMSwweGZmLDB4MTgsMHhmZiwweGY1LDB4ZmYsMHhjZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDI2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MzgsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZGYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAzLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGZjLDB4ZmYsMHg2NywweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MGMsMHhmZiwKLTB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NywweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwYSwweGZmLAotMHg4MiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4N2EsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg3MiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg1ZiwweGZmLDB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDAyLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAyLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weGZmLDB4ZmYsMHg0NywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgxNywweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MTcsMHhmZiwKLTB4ODAsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweDg0LDB4ZmYsMHgzYiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weDAyLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHgwMiwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHgwMSwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyYiwweGZmLDB4MDEsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MmIsMHhmZiwKLTB4ODAsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDgyLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDgxLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4MiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4NCwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4ODUsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDgyLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDgxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHg4OCwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDhjLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4MywweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4OGEsMHhmZiwweDQzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg4ZSwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgzLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDgwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHhlMCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhiNiwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjIsMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTYsMHhmZiwweDYyLDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGE2LDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE2LDB4ZmYsMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHg0MCwweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YjYsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDYyLDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGE2LDB4ZmYsMHg2MiwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNiwweGZmLDB4MDUsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGJiLDB4ZmYsCi0weDAyLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgyLDB4ZmYsMHhlMCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjYiwweGZmLDB4MDUsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGRiLDB4ZmYsCi0weDIwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLDB4MDAsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgyLDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDliLDB4ZmYsMHgwMywweGZmLDB4NDEsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHhlMCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTIsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YmIsMHhmZiwweDIwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MjEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDQwLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAyLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4MGEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YWUsMHhmZiwKLTB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLAotMHgwYSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhmZSwweGZmLDB4MDAsMHhmZiwweGEwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDMsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAyLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgwYiwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLAotMHgwMCwweGZmLDB4YTAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4NzgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NWYsMHhmZiwweDAzLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDc4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDVmLDB4ZmYsMHg1YiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLDB4ODAsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweGRmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weGZlLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg4MCwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4YzEsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAzLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweGZjLDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHgwMiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgyMywweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NTksMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZGYsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgxOCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwYywweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhlNCwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4MDAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBkLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDIyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MjIsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4MGMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NmYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg3NiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLAotMHg4NiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLDB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NjQsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDgxLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHg2MSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhhZiwweGZmLDB4NzcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4YWYsMHhmZiwKLTB4NjMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweDA1LDB4ZmYsMHgzNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDkyLDB4ZmYsMHgzYiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NjUsMHhmZiwKLTB4MGYsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NmUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDUsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4N2YsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg2NSwweGZmLAotMHgxMCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgwZSwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg3OSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MGUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDE1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4ZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDE2LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgwZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg3NSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4ZiwweGZmLDB4ODAsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgxMSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODcsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDkwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAyLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLDB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwKLTB4MDMsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDYzLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDgzLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDc1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHg4MywweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4NywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4NmEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDAsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDgwLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg4YiwweGZmLDB4ODcsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4N2UsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsMHgxMywweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhiZSwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4OGIsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDA1LDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDkyLDB4ZmYsMHg0MywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMSwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDE1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsCi0weDc1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDhmLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NTMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwKLTB4NzIsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwKLTB4MzgsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDQ4LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MzAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgyMCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhjZiwweGZmLDB4MTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg2YSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhiZiwweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLDB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwKLTB4NjcsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4M2YsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDA4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NjksMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NWQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwweDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsCi0weDc5LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1ZCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgyZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWQsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDdmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLAotMHgxOCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlZiwweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4N2YsMHhmZiwKLTB4MTgsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZWYsMHhmZiwweDVkLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDJmLDB4ZmYsCi0weDE4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGVmLDB4ZmYsMHg2NiwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg1YywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg3ZiwweGZmLDB4MTYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4ODMsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDM4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDE5LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4MDQsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLAotMHgwOCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0NiwweGZmLAotMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4OGIsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwKLTB4ODMsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDgzLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGUxLDB4ZmYsCi0weDg3LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg2ZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhiZiwweGZmLAotMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OTIsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4N2YsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDdlLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDIzLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4MywweGZmLDB4ODcsMHhmZiwweGZmLDB4ZmYsMHhmMSwweGZmLDB4ODYsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4NDEsMHhmZiwKLTB4NmMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwweDg3LDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHg0MCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NTUsMHhmZiwKLTB4MWIsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4Y2UsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUxLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4OGIsMHhmZiwweDliLDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4OGIsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDdlLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg1NSwweGZmLDB4MWQsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4M2UsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwKLTB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MTMsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDhiLDB4ZmYsMHg5NywweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg4YiwweGZmLDB4ODcsMHhmZiwweGZmLDB4ZmYsMHg2MSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MjYsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDgzLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NTEsMHhmZiwKLTB4NzksMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGI0LDB4ZmYsCi0weDM4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxZSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhkNSwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLDB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDA0LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg4MywweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg0NiwweGZmLDB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4OGIsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwweDgzLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDgzLDB4ZmYsMHg4YiwweGZmLDB4ZmYsMHhmZiwweGUxLDB4ZmYsMHg4NywweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg2ZSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhiZiwweGZmLDB4ODcsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OTIsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDdmLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDIzLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4MywweGZmLDB4ODcsMHhmZiwweGZmLDB4ZmYsMHhmMSwweGZmLDB4ODYsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4NDEsMHhmZiwKLTB4NmMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MmYsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4ZiwweGZmLDB4ZmYsMHhmZiwweGM1LDB4ZmYsMHgyMCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHhhZSwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ODQsMHhmZiwweDAwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDhhLDB4ZmYsMHg2NCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4ZTUsMHhmZiwweDIxLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDVlLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDFjLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDIsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDc4LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDQ4LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weGIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUxLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDBjLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDkwLDB4ZmYsCi0weDBjLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDZmLDB4ZmYsMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA5LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgyNiwweGZmLAotMHg5OCwweGZmLDB4Y2MsMHhmZiwweGZmLDB4ZmYsMHgzNywweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4YTUsMHhmZiwKLTB4MjQsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZmUsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsCi0weDA4LDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLDB4NjksMHhmZiwweGNjLDB4ZmYsMHhmZiwweGZmLDB4MzcsMHhmZiwKLTB4MDAsMHhmZiwweDA1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDk4LDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHg3MiwweGZmLAotMHgwOCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwKLTB4NjksMHhmZiwweGNjLDB4ZmYsMHhmZiwweGZmLDB4MzcsMHhmZiwweDAwLDB4ZmYsMHgwNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4MDgsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4YzYsMHhmZiwweDY5LDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNSwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NTgsMHhmZiwweGZmLDB4ZmYsMHhjNiwweGZmLAotMHgzMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDQ3LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDU4LDB4ZmYsCi0weDEwLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg2NiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgyNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5NCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDgwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHgxNiwweGZmLDB4MGYsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHg2NiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MzgsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwKLTB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwweDQ3LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDBhLDB4ZmYsCi0weDgyLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3YSwweGZmLAotMHg3YSwweGZmLDB4MjYsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MzgsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwweDI3LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQyLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MjksMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4OTIsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxYywweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MWMsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDQsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4MDAsMHhmZiwweDA0LDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDAwLDB4ZmYsMHgwNCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDBkLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzMSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgxMiwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsCi0weDkwLDB4ZmYsMHgzNywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMiwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgzNCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NTUsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRlLDB4ZmYsMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTgsMHhmZiwweDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVlLDB4ZmYsMHhhZiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NDgsMHhmZiwweDEwLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweGZlLDB4ZmYsCi0weDg3LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGZlLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLAotMHgwMiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4ZTAsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTEsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDI4LDB4ZmYsCi0weDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLAotMHhhNywweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDM4LDB4ZmYsCi0weDAwLDB4ZmYsMHgwZSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1ZSwweGZmLAotMHhhZiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsCi0weDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NjMsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwweDQ5LDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGEsMHhmZiwKLTB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsMHg2MywweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLDB4NDksMHhmZiwweDZhLDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEwLDB4ZmYsCi0weDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0YSwweGZmLAotMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NWEsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDYzLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDRhLDB4ZmYsMHg0OSwweGZmLDB4NmEsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwKLTB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0MiwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDQ0LDB4ZmYsCi0weDA4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg4YSwweGZmLDB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MzUsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZDIsMHhmZiwKLTB4MDAsMHhmZiwweDRjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBiLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MGEsMHhmZiwweDdhLDB4ZmYsMHgyNiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDM1LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzMywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhjNSwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgxMCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ODUsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MGQsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHhmZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4OTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDEwLDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDM3LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDQyLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDUwLDB4ZmYsCi0weDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4MTAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDM5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDIyLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDM4LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDg0LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDMwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0MSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgzMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhkNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDcsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4YjQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ4LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhhNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGEsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDk0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0YywweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ODQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDRkLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NGYsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDY0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0ZiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGUsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwZSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhlNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDUsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzZCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDNmLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwYSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4M2YsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDBhLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDM0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgzZiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MGEsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDQsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgyMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgyNSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4ZTksMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4ZWQsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ0LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweGYxLDB4ZmYsMHg0MSwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsMHg0NiwweGZmLDB4ODQsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4NCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDIyLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjIsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHg0NiwweGZmLDB4ODgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwKLTB4MDAsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4MjMsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjIsMHhmZiwKLTB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwweDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHhmZiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4ZmYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjIsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGYyLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGUzLDB4ZmYsMHhmNywweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLAotMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwKLTB4NDYsMHhmZiwweDg0LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgyMiwweGZmLAotMHg2NywweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2MiwweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4NCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDMyLDB4ZmYsMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHg3MiwweGZmLAotMHg2NywweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2NywweGZmLDB4ZjcsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjQsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzQsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDgsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MDAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgwMywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBjLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg0NiwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YzAsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YzcsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDY3LDB4ZmYsCi0weGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHg0NiwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3NCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLDB4NDYsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU3LDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDYsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NjcsMHhmZiwweGY3LDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsCi0weDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDc0LDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ2LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHgxOCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg1MSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4MSwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YSwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTYsMHhmZiwweDEwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDkwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDcxLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLAotMHgwZiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4ODgsMHhmZiwweDYzLDB4ZmYsMHhmZiwweGZmLDB4MjcsMHhmZiwweGU4LDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsCi0weDYyLDB4ZmYsMHg2MSwweGZmLDB4ZmYsMHhmZiwweDI3LDB4ZmYsMHg4OCwweGZmLDB4MmIsMHhmZiwweGZmLDB4ZmYsMHg4YiwweGZmLAotMHhlOCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4NjIsMHhmZiwweDYxLDB4ZmYsMHhmZiwweGZmLDB4MTcsMHhmZiwKLTB4ODgsMHhmZiwweDJmLDB4ZmYsMHhmZiwweGZmLDB4ZmIsMHhmZiwweDg5LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDk4LDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHhlYSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhhYiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YjgsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4Y2YsMHhmZiwweDYyLDB4ZmYsMHgyMSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDEwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4ODAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDUxLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGViLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NTEsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGQsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4YWMsMHhmZiwweDgyLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsCi0weDU0LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDJlLDB4ZmYsMHhmZiwweGZmLDB4M2YsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLAotMHg1NCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgxZSwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDUxLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDBjLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhhNCwweGZmLAotMHhlMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NTMsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4YjMsMHhmZiwKLTB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhiYSwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmNSwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmIsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTQsMHhmZiwweDE4LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDU1LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDIxLDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLAotMHg4MCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGU0LDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg2MCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDJhLDB4ZmYsMHhmZiwweGZmLDB4ZWEsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGVlLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDVhLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYSwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MzEsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweGM5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsCi0weDU0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQ1LDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg1YSwweGZmLDB4ODIsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ZmYsMHhmZiwweDRmLDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwweGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weGM5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsMHg1NiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhiNCwweGZmLAotMHg1NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhkZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgxNiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg0ZiwweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweGEwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHgxOCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NTcsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OTEsMHhmZiwKLTB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHhhMCwweGZmLDB4MjMsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NmEsMHhmZiwKLTB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE2LDB4ZmYsCi0weDEwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg5MCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg3MSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDg4LDB4ZmYsMHg2MywweGZmLDB4ZmYsMHhmZiwweDI3LDB4ZmYsCi0weGU4LDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDA3LDB4ZmYsMHg2MiwweGZmLDB4NjEsMHhmZiwweGZmLDB4ZmYsMHgyNywweGZmLAotMHg4OCwweGZmLDB4MmIsMHhmZiwweGZmLDB4ZmYsMHg4YiwweGZmLDB4ZTgsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwKLTB4NjIsMHhmZiwweDYxLDB4ZmYsMHhmZiwweGZmLDB4MTcsMHhmZiwweDg4LDB4ZmYsMHgyZiwweGZmLDB4ZmYsMHhmZiwweGZiLDB4ZmYsCi0weDg5LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHhlYSwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YWIsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YjgsMHhmZiwweDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweGNmLDB4ZmYsCi0weDYyLDB4ZmYsMHgyMSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgxMCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2MiwweGZmLDB4MjEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwKLTB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwweDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDU3LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlYiwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhmYywweGZmLDB4NWMsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4M2YsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDU3LDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDFmLDB4ZmYsCi0weDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGFjLDB4ZmYsMHg4MiwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg0NSwweGZmLAotMHg1YSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwKLTB4NWEsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4M2UsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg1NywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgxZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYywweGZmLDB4OGQsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4YTQsMHhmZiwKLTB4ZTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDU5LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweGQzLDB4ZmYsCi0weDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4YTAsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YmEsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGY1LDB4ZmYsCi0weDVjLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDNmLDB4ZmYsMHgxMSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg2YiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLDB4MTgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NWIsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4NjEsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDgwLDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZTQsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDYwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OSwweGZmLDB4MmEsMHhmZiwweGZmLDB4ZmYsMHhlYSwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZWUsMHhmZiwKLTB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ZmEsMHhmZiwweDVlLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDViLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MGQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZjEsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDQ5LDB4ZmYsMHgyYSwweGZmLDB4ZmYsMHhmZiwweGVhLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhlZSwweGZmLAotMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDE0LDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhmMSwweGZmLDB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDksMHhmZiwweDJhLDB4ZmYsMHhmZiwweGZmLDB4ZWEsMHhmZiwweDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGZhLDB4ZmYsCi0weDhiLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGVlLDB4ZmYsMHgwYywweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4NzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NWUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDA4LDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NWYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4NTQsMHhmZiwKLTB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwweDkwLDB4ZmYsMHg4MCwweGZmLDB4ZmYsMHhmZiwweGE4LDB4ZmYsCi0weDEwLDB4ZmYsMHgwZiwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHg5MCwweGZmLDB4ODAsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHg4OCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4YjYsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ZmEsMHhmZiwweGYyLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDBhLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MzgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsCi0weGUyLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MGYsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4ZjUsMHhmZiwKLTB4OTAsMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGUyLDB4ZmYsCi0weDg4LDB4ZmYsMHgyNywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg5OCwweGZmLDB4MjAsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNywweGZmLDB4ZTgsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YWMsMHhmZiwweGYyLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDBhLDB4ZmYsMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHhlMiwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzQsMHhmZiwweDE4LDB4ZmYsMHhmZiwweGZmLDB4ZTIsMHhmZiwKLTB4MzgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGUyLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3NCwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHhlMiwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ZDQsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsCi0weGZmLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweDg5LDB4ZmYsMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhiOCwweGZmLDB4MDAsMHhmZiwweDBlLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwweGE3LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhhOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhiMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDIsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDI2LDB4ZmYsMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhkOCwweGZmLAotMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4NGUsMHhmZiwKLTB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDg5LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGM4LDB4ZmYsMHgwMCwweGZmLDB4MGUsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg0ZSwweGZmLDB4YTcsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YTMsMHhmZiwweDAwLDB4ZmYsMHgwOSwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGQwLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLAotMHgwMSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4MzAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDksMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHgwMCwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDEsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDA3LDB4ZmYsMHg0MiwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsCi0weDAzLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMiwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLDB4MDgsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDMsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDAxLDB4ZmYsMHg5MSwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwNCwweGZmLDB4OTEsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDQsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4MDAsMHhmZiwweDkxLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDEsMHhmZiwweDQyLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDQ5LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsCi0weDYyLDB4ZmYsMHgxYywweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwKLTB4MDUsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDkyLDB4ZmYsMHgzYiwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLAotMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHg2NSwweGZmLDB4NjUsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OWUsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMSwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4NDksMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwKLTB4NjIsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHg4MSwweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgyMSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg3MSwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NDksMHhmZiwweDgwLDB4ZmYsMHhmZiwweGZmLDB4NDgsMHhmZiwKLTB4MTAsMHhmZiwweDBmLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDY2LDB4ZmYsMHgyMywweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDc0LDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDU0LDB4ZmYsMHg4NiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg0OSwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLDB4NjIsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKLTB4ODYsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4ODAsMHhmZiwweDAxLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weGUwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg4YSwweGZmLAotMHg2NywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ODYsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4ZDAsMHhmZiwKLTB4NzUsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHg4MiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDgsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODYsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweGY0LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4ODksMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwweDg5LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDU1LDB4ZmYsCi0weDYwLDB4ZmYsMHgyNiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg0OSwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLDB4MTAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YTAsMHhmZiwweDhkLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsCi0weDg5LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDI0LDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLAotMHg4OSwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHgzNSwweGZmLDB4NjAsMHhmZiwweDI2LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NDksMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGEzLDB4ZmYsCi0weDEwLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhhMywweGZmLAotMHg4ZCwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4MjAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDQsMHhmZiwKLTB4NjAsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDhkLDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDZhLDB4ZmYsCi0weDBjLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ODYsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAxLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsCi0weDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsMHhmZiwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHg4OSwweGZmLAotMHgwMCwweGZmLDB4MDksMHhmZiwweGZmLDB4ZmYsMHgwMSwweGZmLDB4ODcsMHhmZiwweDhiLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4ODgsMHhmZiwweDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODcsMHhmZiwweDliLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwKLTB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAxLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHg2YSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg5ZSwweGZmLAotMHg2NywweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHgzZiwweGZmLDB4NjksMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NjYsMHhmZiwweDFjLDB4ZmYsMHhmZiwweGZmLDB4MWYsMHhmZiwweDM4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDZhLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDg1LDB4ZmYsMHg4YiwweGZmLDB4ODMsMHhmZiwweGZmLDB4ZmYsMHg0MCwweGZmLAotMHg3OCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDgyLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg2YSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhmNCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDg3LDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweGYwLDB4ZmYsCi0weDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg2MCwweGZmLDB4ODIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwKLTB4ODYsMHhmZiwweDg3LDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDAyLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDA4LDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4NjAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODksMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg5LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4OSwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg4NiwweGZmLDB4OTcsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NjQsMHhmZiwweDAwLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDM1LDB4ZmYsCi0weDAxLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDk2LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgzNCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg2NSwweGZmLDB4MDEsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4OTYsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAyLDB4ZmYsMHgzNCwweGZmLDB4ZmYsMHhmZiwweDQ5LDB4ZmYsCi0weDAyLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDQ5LDB4ZmYsMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwNiwweGZmLAotMHgxMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMiwweGZmLDB4MzAsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4MjUsMHhmZiwweDZkLDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGJlLDB4ZmYsCi0weDk4LDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsMHg4OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLAotMHg4MywweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNSwweGZmLDB4ODgsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDk4LDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsMHg4OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLAotMHg4MywweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHhjNCwweGZmLDB4ODgsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwKLTB4ODMsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwweDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDk4LDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDczLDB4ZmYsMHg4OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLAotMHg4MywweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhjNSwweGZmLDB4ODgsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwKLTB4ODMsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGM2LDB4ZmYsCi0weDAwLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDI1LDB4ZmYsMHg2ZSwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHg4ZSwweGZmLAotMHg5OCwweGZmLDB4NTAsMHhmZiwweGZmLDB4ZmYsMHg3MywweGZmLDB4ODgsMHhmZiwweDUwLDB4ZmYsMHhmZiwweGZmLDB4NzMsMHhmZiwKLTB4ODMsMHhmZiwweDc4LDB4ZmYsMHhmZiwweGZmLDB4YzQsMHhmZiwweDg4LDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsCi0weDAwLDB4ZmYsMHg3OCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHgyMCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ZTksMHhmZiwKLTB4MDEsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MjgsMHhmZiwweDAxLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDI5LDB4ZmYsCi0weDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDY2LDB4ZmYsMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgzNCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHg3NSwweGZmLDB4MTAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwKLTB4MDAsMHhmZiwweDQxLDB4ZmYsMHhmZiwweGZmLDB4MDcsMHhmZiwweDMwLDB4ZmYsMHgwYywweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDk4LDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4M2MsMHhmZiwweGZmLDB4ZmYsMHgyNSwweGZmLAotMHg3MCwweGZmLDB4MTQsMHhmZiwweGZmLDB4ZmYsMHgyZSwweGZmLDB4ODAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4NDIsMHhmZiwKLTB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDgwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsMHg2MywweGZmLDB4NzIsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4NDYsMHhmZiwKLTB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDgwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weDAwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsMHg2MywweGZmLDB4NzIsMHhmZiwweGZmLDB4ZmYsMHgyMCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4ODAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4NDIsMHhmZiwKLTB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDgwLDB4ZmYsMHg3MCwweGZmLDB4ZmYsMHhmZiwweDQxLDB4ZmYsCi0weDYzLDB4ZmYsMHg2YSwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLAotMHg4MCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLDB4MDAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDgwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weGYwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDA1LDB4ZmYsMHgwMCwweGZmLDB4NGYsMHhmZiwweGZmLDB4ZmYsMHgwNCwweGZmLAotMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYiwweGZmLDB4ODAsMHhmZiwweDI3LDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ODgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweGVhLDB4ZmYsMHgyMCwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDc0LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHhhNywweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgyNCwweGZmLDB4ODAsMHhmZiwweDcwLDB4ZmYsMHhmZiwweGZmLDB4NDQsMHhmZiwKLTB4NjMsMHhmZiwweDcyLDB4ZmYsMHhmZiwweGZmLDB4MjQsMHhmZiwweDgwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsCi0weDAwLDB4ZmYsMHg0ZiwweGZmLDB4ZmYsMHhmZiwweDA0LDB4ZmYsMHgwMCwweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHgwYiwweGZmLAotMHg4MCwweGZmLDB4MjcsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODgsMHhmZiwweDIzLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ZWEsMHhmZiwweDIwLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwweDc0LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweGE3LDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzIsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MzUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4MzAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwZSwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgxMCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLDB4MDgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MTAsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4OTAsMHhmZiwweDAyLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgxMCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhiMCwweGZmLDB4YjAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NTAsMHhmZiwweDMwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsMHg3OCwweGZmLDB4NDIsMHhmZiwweGZmLDB4ZmYsMHg1MCwweGZmLAotMHg0OCwweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLDB4NDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDksMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDE4LDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDQ3LDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDcwLDB4ZmYsMHgxOCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHgxMCwweGZmLAotMHg0NywweGZmLDB4OTAsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLDB4MTgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweDYwLDB4ZmYsMHg4ZCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLAotMHgwYiwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4MTEsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4MDAsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MTAsMHhmZiwweDExLDB4ZmYsMHg5MCwweGZmLDB4ZmYsMHhmZiwweGUwLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDgsMHhmZiwweDQwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4NDcsMHhmZiwweDkwLDB4ZmYsMHhmZiwweGZmLDB4MjAsMHhmZiwweDIyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDlmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDEwLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLDB4MDAsMHhmZiwweDQ4LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4ODYsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NzAsMHhmZiwweDIyLDB4ZmYsMHgxOCwweGZmLDB4ZmYsMHhmZiwweDlmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0OCwweGZmLDB4ZmYsMHhmZiwweDIwLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg3MCwweGZmLAotMHgyMiwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg5ZiwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NDgsMHhmZiwKLTB4MDAsMHhmZiwweDYwLDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDg2LDB4ZmYsMHg5MywweGZmLDB4ZmYsMHhmZiwweGIwLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg4NiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHhjMCwweGZmLAotMHg4NiwweGZmLDB4OTcsMHhmZiwweGZmLDB4ZmYsMHhkMCwweGZmLDB4MDAsMHhmZiwweDBhLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4ODAsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDIsMHhmZiwweDg0LDB4ZmYsMHgzYiwweGZmLDB4ZmYsMHhmZiwweDAyLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDBiLDB4ZmYsMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHg5MCwweGZmLAotMHgwMCwweGZmLDB4NzAsMHhmZiwweGZmLDB4ZmYsMHgwYiwweGZmLDB4MGMsMHhmZiwweDBkLDB4ZmYsMHhmZiwweGZmLDB4YjAsMHhmZiwKLTB4ODgsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDMsMHhmZiwweDhjLDB4ZmYsMHgzYiwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAxLDB4ZmYsMHg4YiwweGZmLDB4OTMsMHhmZiwweGZmLDB4ZmYsMHg1MSwweGZmLAotMHg4MiwweGZmLDB4NDMsMHhmZiwweGZmLDB4ZmYsMHg4MCwweGZmLDB4OGIsMHhmZiwweDkzLDB4ZmYsMHhmZiwweGZmLDB4NjAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4ODksMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDBjLDB4ZmYsMHgwZCwweGZmLDB4ZmYsMHhmZiwweDgwLDB4ZmYsMHgwYywweGZmLDB4MGQsMHhmZiwweGZmLDB4ZmYsMHhhMCwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4ODAsMHhmZiwweDM3LDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwKLTB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwweDAyLDB4ZmYsMHgzYywweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsCi0weDc2LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweGRlLDB4ZmYsMHgwMCwweGZmLDB4YTAsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLAotMHg4NCwweGZmLDB4MzcsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4MDgsMHhmZiwKLTB4MDIsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4NDUsMHhmZiwweDc3LDB4ZmYsMHgxNCwweGZmLDB4ZmYsMHhmZiwweDJlLDB4ZmYsCi0weDAwLDB4ZmYsMHhhMCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHg3ZSwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLAotMHgwMCwweGZmLDB4MzgsMHhmZiwweGZmLDB4ZmYsMHgwOCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4ZTUsMHhmZiwKLTB4NzcsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4OGUsMHhmZiwweDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAwLDB4ZmYsMHg1OCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHg2NCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg0ZiwweGZmLDB4MzgsMHhmZiwweDIyLDB4ZmYsMHhmZiwweGZmLDB4MGYsMHhmZiwKLTB4NzcsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4ZTUsMHhmZiwweDhiLDB4ZmYsMHg4MywweGZmLDB4ZmYsMHhmZiwweDQwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg2NCwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHg4ZiwweGZmLAotMHgzOCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4NzgsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4MzUsMHhmZiwKLTB4OGIsMHhmZiwweDgzLDB4ZmYsMHhmZiwweGZmLDB4NDAsMHhmZiwweDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHgwOSwweGZmLAotMHgwMCwweGZmLDB4MzQsMHhmZiwweGZmLDB4ZmYsMHg4NSwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4NTYsMHhmZiwKLTB4MDAsMHhmZiwweDA5LDB4ZmYsMHhmZiwweGZmLDB4MDYsMHhmZiwweDIwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsCi0weDAxLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGMxLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHg0NCwweGZmLAotMHgwMCwweGZmLDB4NjgsMHhmZiwweGZmLDB4ZmYsMHgwNSwweGZmLDB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MTUsMHhmZiwKLTB4MDAsMHhmZiwweDY4LDB4ZmYsMHhmZiwweGZmLDB4MDUsMHhmZiwweDAwLDB4ZmYsMHg2OCwweGZmLDB4ZmYsMHhmZiwweDQ1LDB4ZmYsCi0weDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg4NiwweGZmLDB4ODcsMHhmZiwweGZmLDB4ZmYsMHhmMCwweGZmLAotMHg4NiwweGZmLDB4OGIsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLDB4MDAsMHhmZiwweDM0LDB4ZmYsMHhmZiwweGZmLDB4YzgsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4YzgsMHhmZiwweDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDAzLDB4ZmYsCi0weDAwLDB4ZmYsMHg2MCwweGZmLDB4ZmYsMHhmZiwweDEzLDB4ZmYsMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgxMywweGZmLAotMHgwMCwweGZmLDB4NzgsMHhmZiwweGZmLDB4ZmYsMHgwMywweGZmLDB4ODYsMHhmZiwweDk3LDB4ZmYsMHhmZiwweGZmLDB4ZjAsMHhmZiwKLTB4ODYsMHhmZiwweDliLDB4ZmYsMHhmZiwweGZmLDB4ZTAsMHhmZiwweDA1LDB4ZmYsMHg4MSwweGZmLDB4ZmYsMHhmZiwweGMwLDB4ZmYsCi0weDc4LDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHgyMSwweGZmLDB4MTgsMHhmZiwweGZmLDB4ZmYsMHg3MSwweGZmLAotMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4N2YsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDEsMHhmZiwKLTB4MDAsMHhmZiwweDM4LDB4ZmYsMHhmZiwweGZmLDB4MDksMHhmZiwweDAwLDB4ZmYsMHgzOCwweGZmLDB4ZmYsMHhmZiwweDA2LDB4ZmYsCi0weDdlLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4NDAsMHhmZiwweGZmLDB4ZmYsMHhiMSwweGZmLAotMHgwOCwweGZmLDB4MGMsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDNjLDB4ZmYsMHhmZiwweGZmLDB4YzUsMHhmZiwKLTB4N2EsMHhmZiwweDE0LDB4ZmYsMHhmZiwweGZmLDB4YmUsMHhmZiwweDAwLDB4ZmYsMHg1MCwweGZmLDB4ZmYsMHhmZiwweDQ2LDB4ZmYsCi0weGUxLDB4ZmYsMHgyMiwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsMHg3YSwweGZmLDB4MWMsMHhmZiwweGZmLDB4ZmYsMHhlMCwweGZmLAotMHg2MCwweGZmLDB4MjIsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLDB4MDAsMHhmZiwweDU4LDB4ZmYsMHhmZiwweGZmLDB4YTcsMHhmZiwKLTB4MGMsMHhmZiwweDBjLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwYSwweGZmLDB4ZmYsMHhmZiwweDBmLDB4ZmYsCi0weDAwLDB4ZmYsMHg0MCwweGZmLDB4ZmYsMHhmZiwweGM0LDB4ZmYsMHgwMCwweGZmLDB4MGEsMHhmZiwweGZmLDB4ZmYsMHgwZiwweGZmLAotMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKLTB4ZmYsMHhmZiwweGZmLDB4ZmYgfTsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9rb3JnMTIxMi9rb3JnMTIxMi5jIGIvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLmMKaW5kZXggZjRjODViNS4uNGE0NGMwZiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLmMKKysrIGIvc291bmQvcGNpL2tvcmcxMjEyL2tvcmcxMjEyLmMKQEAgLTI2MCwxNCArMjYwLDYgQEAKICNkZWZpbmUgQ09NTUFORF9BQ0tfREVMQVkgICAxMyAgICAgICAgIC8vIG51bWJlciBvZiBSVEMgdGlja3MgdG8gd2FpdCBmb3IgYW4gYWNrbm93bGVkZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICBmcm9tIHRoZSBjYXJkIGFmdGVyIHNlbmRpbmcgYSBjb21tYW5kLgogCi0jaWZkZWYgQ09ORklHX1NORF9LT1JHMTIxMl9GSVJNV0FSRV9JTl9LRVJORUwKLSNpbmNsdWRlICJrb3JnMTIxMi1maXJtd2FyZS5oIgotc3RhdGljIGNvbnN0IHN0cnVjdCBmaXJtd2FyZSBzdGF0aWNfZHNwX2NvZGUgPSB7Ci0JLmRhdGEgPSAodTggKilkc3BDb2RlLAotCS5zaXplID0gc2l6ZW9mIGRzcENvZGUKLX07Ci0jZW5kaWYKLQogZW51bSBDbG9ja1NvdXJjZUluZGV4IHsKICAgIEsxMjEyX0NMS0lEWF9BZGF0QXQ0NF8xSyA9IDAsICAgIC8vIHNlbGVjdHMgc291cmNlIGFzIEFEQVQgYXQgNDQuMSBrSHoKICAgIEsxMjEyX0NMS0lEWF9BZGF0QXQ0OEssICAgICAgICAgIC8vIHNlbGVjdHMgc291cmNlIGFzIEFEQVQgYXQgNDgga0h6CkBAIC00MTIsOSArNDA0LDcgQEAKIE1PRFVMRV9ERVNDUklQVElPTigia29yZzEyMTIiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0tPUkcsa29yZzEyMTJ9fSIpOwotI2lmbmRlZiBDT05GSUdfU05EX0tPUkcxMjEyX0ZJUk1XQVJFX0lOX0tFUk5FTAogTU9EVUxFX0ZJUk1XQVJFKCJrb3JnL2sxMjEyLmRzcCIpOwotI2VuZGlmCiAKIHN0YXRpYyBpbnQgaW5kZXhbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9JRFg7ICAgICAvKiBJbmRleCAwLU1BWCAqLwogc3RhdGljIGNoYXIgKmlkW1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfU1RSOwkgICAvKiBJRCBmb3IgdGhpcyBjYXJkICovCkBAIC0yMzQ4LDkgKzIzMzgsNiBAQAogICAgICAgICBrb3JnMTIxMi0+QWRhdFRpbWVDb2RlUGh5ID0ga29yZzEyMTItPnNoYXJlZEJ1ZmZlclBoeSArCiAJCW9mZnNldG9mKHN0cnVjdCBLb3JnU2hhcmVkQnVmZmVyLCBBZGF0VGltZUNvZGUpOwogCi0jaWZkZWYgQ09ORklHX1NORF9LT1JHMTIxMl9GSVJNV0FSRV9JTl9LRVJORUwKLQlkc3BfY29kZSA9ICZzdGF0aWNfZHNwX2NvZGU7Ci0jZWxzZQogCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmRzcF9jb2RlLCAia29yZy9rMTIxMi5kc3AiLCAmcGNpLT5kZXYpOwogCWlmIChlcnIgPCAwKSB7CiAJCXJlbGVhc2VfZmlybXdhcmUoZHNwX2NvZGUpOwpAQCAtMjM1OCwxNSArMjM0NSwxMiBAQAogCQlzbmRfa29yZzEyMTJfZnJlZShrb3JnMTIxMik7CiAJCXJldHVybiBlcnI7CiAJfQotI2VuZGlmCiAKIAlpZiAoc25kX2RtYV9hbGxvY19wYWdlcyhTTkRSVl9ETUFfVFlQRV9ERVYsIHNuZF9kbWFfcGNpX2RhdGEocGNpKSwKIAkJCQlkc3BfY29kZS0+c2l6ZSwgJmtvcmcxMjEyLT5kbWFfZHNwKSA8IDApIHsKIAkJc25kX3ByaW50ayhLRVJOX0VSUiAia29yZzEyMTI6IGNhbm5vdCBhbGxvY2F0ZSBkc3AgY29kZSBtZW1vcnkgKCV6ZCBieXRlcylcbiIsIGRzcF9jb2RlLT5zaXplKTsKICAgICAgICAgICAgICAgICBzbmRfa29yZzEyMTJfZnJlZShrb3JnMTIxMik7Ci0jaWZuZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCiAJCXJlbGVhc2VfZmlybXdhcmUoZHNwX2NvZGUpOwotI2VuZGlmCiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0KIApAQCAtMjM3Niw5ICsyMzYwLDcgQEAKIAogCW1lbWNweShrb3JnMTIxMi0+ZG1hX2RzcC5hcmVhLCBkc3BfY29kZS0+ZGF0YSwgZHNwX2NvZGUtPnNpemUpOwogCi0jaWZuZGVmIENPTkZJR19TTkRfS09SRzEyMTJfRklSTVdBUkVfSU5fS0VSTkVMCiAJcmVsZWFzZV9maXJtd2FyZShkc3BfY29kZSk7Ci0jZW5kaWYKIAogCXJjID0gc25kX2tvcmcxMjEyX1NlbmQxMjEyQ29tbWFuZChrb3JnMTIxMiwgSzEyMTJfREJfUmVib290Q2FyZCwgMCwgMCwgMCwgMCk7CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9tYWVzdHJvMy5jIGIvc291bmQvcGNpL21hZXN0cm8zLmMKaW5kZXggYTUzNmM1OS4uMDAzN2JlNyAxMDA2NDQKLS0tIGEvc291bmQvcGNpL21hZXN0cm8zLmMKKysrIGIvc291bmQvcGNpL21hZXN0cm8zLmMKQEAgLTU4LDEwICs1OCw4IEBACiAJCSJ7RVNTLEFsbGVncm8gUENJfSwiCiAJCSJ7RVNTLEFsbGVncm8tMSBQQ0l9LCIKIAkgICAgICAgICJ7RVNTLENhbnlvbjNELTIvTEUgUENJfX0iKTsKLSNpZm5kZWYgQ09ORklHX1NORF9NQUVTVFJPM19GSVJNV0FSRV9JTl9LRVJORUwKIE1PRFVMRV9GSVJNV0FSRSgiZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3Iik7CiBNT0RVTEVfRklSTVdBUkUoImVzcy9tYWVzdHJvM19hc3NwX21pbmlzcmMuZnciKTsKLSNlbmRpZgogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOwkvKiBJbmRleCAwLU1BWCAqLwogc3RhdGljIGNoYXIgKmlkW1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfU1RSOwkvKiBJRCBmb3IgdGhpcyBjYXJkICovCkBAIC0yMTAxLDE2MyArMjA5OSw2IEBACiB9CiAKIAotI2lmZGVmIENPTkZJR19TTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMCi0KLS8qCi0gKiBEU1AgQ29kZSBpbWFnZXMKLSAqLwotCi1zdGF0aWMgY29uc3QgdTE2IGFzc3Bfa2VybmVsX2ltYWdlW10gPSB7Ci0gICAgMHg3OTgwLCAweDAwMzAsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAwRkIsIDB4Nzk4MCwgMHgwMERELCAweDc5ODAsIDB4MDNCNCwgCi0gICAgMHg3OTgwLCAweDAzMzIsIDB4Nzk4MCwgMHgwMjg3LCAweDc5ODAsIDB4MDNCNCwgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgCi0gICAgMHg3OTgwLCAweDAzMUEsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDIyRiwgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgCi0gICAgMHg3OTgwLCAweDAzQjQsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDA2MywgMHg3OTgwLCAweDAwNkIsIDB4Nzk4MCwgMHgwM0I0LCAweDc5ODAsIDB4MDNCNCwgCi0gICAgMHhCRjgwLCAweDJDN0MsIDB4ODgwNiwgMHg4ODA0LCAweEJFNDAsIDB4QkMyMCwgMHhBRTA5LCAweDEwMDAsIDB4QUUwQSwgMHgwMDAxLCAweDY5MzgsIDB4RUIwOCwgCi0gICAgMHgwMDUzLCAweDY5NUEsIDB4RUIwOCwgMHgwMEQ2LCAweDAwMDksIDB4OEI4OCwgMHg2OTgwLCAweEUzODgsIDB4MDAzNiwgMHhCRTMwLCAweEJDMjAsIDB4NjkwOSwgCi0gICAgMHhCODAxLCAweDkwMDksIDB4QkU0MSwgMHhCRTQxLCAweDY5MjgsIDB4RUI4OCwgMHgwMDc4LCAweEJFNDEsIDB4QkU0MCwgMHg3OTgwLCAweDAwMzgsIDB4QkU0MSwgCi0gICAgMHhCRTQxLCAweDkwM0EsIDB4NjkzOCwgMHhFMzA4LCAweDAwNTYsIDB4OTAzQSwgMHhCRTQxLCAweEJFNDAsIDB4RUYwMCwgMHg5MDNBLCAweDY5MzksIDB4RTMwOCwgCi0gICAgMHgwMDVFLCAweDkwM0EsIDB4RUYwMCwgMHg2OTBCLCAweDY2MEMsIDB4RUY4QywgMHg2OTBBLCAweDY2MEMsIDB4NjIwQiwgMHg2NjA5LCAweEVGMDAsIDB4NjkxMCwgCi0gICAgMHg2NjBGLCAweEVGMDQsIDB4RTM4OCwgMHgwMDc1LCAweDY5MEUsIDB4NjYwRiwgMHg2MjEwLCAweDY2MEQsIDB4RUYwMCwgMHg2OTBFLCAweDY2MEQsIDB4RUYwMCwgCi0gICAgMHhBRTcwLCAweDAwMDEsIDB4QkMyMCwgMHhBRTI3LCAweDAwMDEsIDB4NjkzOSwgMHhFQjA4LCAweDAwNUQsIDB4NjkyNiwgMHhCODAxLCAweDkwMjYsIDB4MDAyNiwgCi0gICAgMHg4Qjg4LCAweDY5ODAsIDB4RTM4OCwgMHgwMENCLCAweDkwMjgsIDB4MEQyOCwgMHg0MjExLCAweEUxMDAsIDB4MDA3QSwgMHg0NzExLCAweEUxMDAsIDB4MDBBMCwgCi0gICAgMHg3QTgwLCAweDAwNjMsIDB4QjgxMSwgMHg2NjBBLCAweDYyMDksIDB4RTMwNCwgMHgwMDdBLCAweDBDMEIsIDB4NDAwNSwgMHgxMDBBLCAweEJBMDEsIDB4OTAxMiwgCi0gICAgMHgwQzEyLCAweDQwMDIsIDB4Nzk4MCwgMHgwMEFGLCAweDdBODAsIDB4MDA2QiwgMHhCRTAyLCAweDYyMEUsIDB4NjYwRCwgMHhCQTEwLCAweEUzNDQsIDB4MDA3QSwgCi0gICAgMHgwQzEwLCAweDQwMDUsIDB4MTAwRSwgMHhCQTAxLCAweDkwMTIsIDB4MEMxMiwgMHg0MDAyLCAweDEwMDMsIDB4QkEwMiwgMHg5MDEyLCAweDBDMTIsIDB4NDAwMCwgCi0gICAgMHgxMDAzLCAweEUzODgsIDB4MDBCQSwgMHgxMDA0LCAweDc5ODAsIDB4MDBCQywgMHgxMDA0LCAweEJBMDEsIDB4OTAxMiwgMHgwQzEyLCAweDQwMDEsIDB4MEMwNSwgCi0gICAgMHg0MDAzLCAweDBDMDYsIDB4NDAwNCwgMHgxMDExLCAweEJGQjAsIDB4MDFGRiwgMHg5MDEyLCAweDBDMTIsIDB4NDAwNiwgMHhCQzIwLCAweEVGMDAsIDB4QUUyNiwgCi0gICAgMHgxMDI4LCAweDY5NzAsIDB4QkZEMCwgMHgwMDAxLCAweDkwNzAsIDB4RTM4OCwgMHgwMDdBLCAweEFFMjgsIDB4MDAwMCwgMHhFRjAwLCAweEFFNzAsIDB4MDMwMCwgCi0gICAgMHgwQzcwLCAweEIwMEMsIDB4QUU1QSwgMHgwMDAwLCAweEVGMDAsIDB4N0E4MCwgMHgwMzhBLCAweDY5N0YsIDB4QjgwMSwgMHg5MDdGLCAweDAwNTYsIDB4OEI4OCwgCi0gICAgMHgwQ0EwLCAweEIwMDgsIDB4QUY3MSwgMHhCMDAwLCAweDRFNzEsIDB4RTIwMCwgMHgwMEYzLCAweEFFNTYsIDB4MTA1NywgMHgwMDU2LCAweDBDQTAsIDB4QjAwOCwgCi0gICAgMHg4MDU2LCAweDc5ODAsIDB4MDNBMSwgMHgwODEwLCAweEJGQTAsIDB4MTA1OSwgMHhFMzA0LCAweDAzQTEsIDB4ODA1NiwgMHg3OTgwLCAweDAzQTEsIDB4N0E4MCwgCi0gICAgMHgwMzhBLCAweEJGMDEsIDB4QkU0MywgMHhCRTU5LCAweDkwN0MsIDB4NjkzNywgMHhFMzg4LCAweDAxMEQsIDB4QkEwMSwgMHhFMzA4LCAweDAxMEMsIDB4QUU3MSwgCi0gICAgMHgwMDA0LCAweDBDNzEsIDB4NTAwMCwgMHg2OTM2LCAweDkwMzcsIDB4QkYwQSwgMHgxMDlFLCAweDhCOEEsIDB4QUY4MCwgMHg4MDE0LCAweDRDODAsIDB4QkYwQSwgCi0gICAgMHgwNTYwLCAweEY1MDAsIDB4QkYwQSwgMHgwNTIwLCAweEI5MDAsIDB4QkIxNywgMHg5MEEwLCAweDY5MTcsIDB4RTM4OCwgMHgwMTQ4LCAweDBEMTcsIDB4RTEwMCwgCi0gICAgMHgwMTI3LCAweEJGMEMsIDB4MDU3OCwgMHhCRjBELCAweDA1N0MsIDB4Nzk4MCwgMHgwMTJCLCAweEJGMEMsIDB4MDUzOCwgMHhCRjBELCAweDA1M0MsIDB4NjkwMCwgCi0gICAgMHhFMzA4LCAweDAxMzUsIDB4OEI4QywgMHhCRTU5LCAweEJCMDcsIDB4OTBBMCwgMHhCQzIwLCAweDc5ODAsIDB4MDE1NywgMHgwMzBDLCAweDhCOEIsIDB4QjkwMywgCi0gICAgMHg4ODA5LCAweEJFQzYsIDB4MDEzRSwgMHg2OUFDLCAweDkwQUIsIDB4NjlBRCwgMHg5MEFCLCAweDA4MTMsIDB4NjYwQSwgMHhFMzQ0LCAweDAxNDQsIDB4MDMwOSwgCi0gICAgMHg4MzBDLCAweEJDMjAsIDB4Nzk4MCwgMHgwMTU3LCAweDY5NTUsIDB4RTM4OCwgMHgwMTU3LCAweDdDMzgsIDB4QkYwQiwgMHgwNTc4LCAweEY1MDAsIDB4QkYwQiwgCi0gICAgMHgwNTM4LCAweEI5MDcsIDB4ODgwOSwgMHhCRUM2LCAweDAxNTYsIDB4MTBBQiwgMHg5MEFBLCAweDY5NzQsIDB4RTM4OCwgMHgwMTYzLCAweEFFNzIsIDB4MDU0MCwgCi0gICAgMHhGNTAwLCAweEFFNzIsIDB4MDUwMCwgMHhBRTYxLCAweDEwM0IsIDB4N0E4MCwgMHgwMkY2LCAweDY5NzgsIDB4RTM4OCwgMHgwMTgyLCAweDhCOEMsIDB4QkYwQywgCi0gICAgMHgwNTYwLCAweEU1MDAsIDB4N0M0MCwgMHgwODE0LCAweEJBMjAsIDB4ODgxMiwgMHg3MzNELCAweDdBODAsIDB4MDM4MCwgMHg3MzNFLCAweDdBODAsIDB4MDM4MCwgCi0gICAgMHg4QjhDLCAweEJGMEMsIDB4MDU2QywgMHhFNTAwLCAweDdDNDAsIDB4MDgxNCwgMHhCQTJDLCAweDg4MTIsIDB4NzMzRiwgMHg3QTgwLCAweDAzODAsIDB4NzM0MCwgCi0gICAgMHg3QTgwLCAweDAzODAsIDB4Njk3NSwgMHhFMzg4LCAweDAxOEUsIDB4QUU3MiwgMHgwNTQ4LCAweEY1MDAsIDB4QUU3MiwgMHgwNTA4LCAweEFFNjEsIDB4MTA0MSwgCi0gICAgMHg3QTgwLCAweDAyRjYsIDB4Njk3OSwgMHhFMzg4LCAweDAxQUQsIDB4OEI4QywgMHhCRjBDLCAweDA1NjAsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkExOCwgCi0gICAgMHg4ODEyLCAweDczNDMsIDB4N0E4MCwgMHgwMzgwLCAweDczNDQsIDB4N0E4MCwgMHgwMzgwLCAweDhCOEMsIDB4QkYwQywgMHgwNTZDLCAweEU1MDAsIDB4N0M0MCwgCi0gICAgMHgwODE0LCAweEJBMjQsIDB4ODgxMiwgMHg3MzQ1LCAweDdBODAsIDB4MDM4MCwgMHg3MzQ2LCAweDdBODAsIDB4MDM4MCwgMHg2OTc2LCAweEUzODgsIDB4MDFCOSwgCi0gICAgMHhBRTcyLCAweDA1NTgsIDB4RjUwMCwgMHhBRTcyLCAweDA1MTgsIDB4QUU2MSwgMHgxMDQ3LCAweDdBODAsIDB4MDJGNiwgMHg2OTdBLCAweEUzODgsIDB4MDFEOCwgCi0gICAgMHg4QjhDLCAweEJGMEMsIDB4MDU2MCwgMHhFNTAwLCAweDdDNDAsIDB4MDgxNCwgMHhCQTA4LCAweDg4MTIsIDB4NzM0OSwgMHg3QTgwLCAweDAzODAsIDB4NzM0QSwgCi0gICAgMHg3QTgwLCAweDAzODAsIDB4OEI4QywgMHhCRjBDLCAweDA1NkMsIDB4RTUwMCwgMHg3QzQwLCAweDA4MTQsIDB4QkExNCwgMHg4ODEyLCAweDczNEIsIDB4N0E4MCwgCi0gICAgMHgwMzgwLCAweDczNEMsIDB4N0E4MCwgMHgwMzgwLCAweEJDMjEsIDB4QUUxQywgMHgxMDkwLCAweDhCOEEsIDB4QkYwQSwgMHgwNTYwLCAweEU1MDAsIDB4N0M0MCwgCi0gICAgMHgwODEyLCAweEI4MDQsIDB4ODgxMywgMHg4QjhELCAweEJGMEQsIDB4MDU2QywgMHhFNTAwLCAweDdDNDAsIDB4MDgxNSwgMHhCODA0LCAweDg4MTEsIDB4N0E4MCwgCi0gICAgMHgwMzRBLCAweDhCOEEsIDB4QkYwQSwgMHgwNTYwLCAweEU1MDAsIDB4N0M0MCwgMHg3MzFGLCAweEI5MDMsIDB4ODgwOSwgMHhCRUM2LCAweDAxRjksIDB4NTQ4QSwgCi0gICAgMHhCRTAzLCAweDk4QTAsIDB4NzMyMCwgMHhCOTAzLCAweDg4MDksIDB4QkVDNiwgMHgwMjAxLCAweDU0OEEsIDB4QkUwMywgMHg5OEEwLCAweDFGMjAsIDB4MkYxRiwgCi0gICAgMHg5ODI2LCAweEJDMjAsIDB4NjkzNSwgMHhFMzg4LCAweDAzQTEsIDB4NjkzMywgMHhCODAxLCAweDkwMzMsIDB4QkZBMCwgMHgwMkVFLCAweEUzMDgsIDB4MDNBMSwgCi0gICAgMHg5MDMzLCAweEJGMDAsIDB4Njk1MSwgMHhFMzg4LCAweDAyMUYsIDB4NzMzNCwgMHhCRTgwLCAweDU3NjAsIDB4QkUwMywgMHg5RjdFLCAweEJFNTksIDB4OTAzNCwgCi0gICAgMHg2OTdFLCAweDBENTEsIDB4OTAxMywgMHhCQzIwLCAweDY5NUMsIDB4RTM4OCwgMHgwM0ExLCAweDczNUUsIDB4QkU4MCwgMHg1NzYwLCAweEJFMDMsIDB4OUY3RSwgCi0gICAgMHhCRTU5LCAweDkwNUUsIDB4Njk3RSwgMHgwRDVDLCAweDkwMTMsIDB4Nzk4MCwgMHgwM0ExLCAweDdBODAsIDB4MDM4QSwgMHhCRjAxLCAweEJFNDMsIDB4Njk3NywgCi0gICAgMHhFMzg4LCAweDAyNEUsIDB4QUU2MSwgMHgxMDRELCAweDAwNjEsIDB4OEI4OCwgMHg2OTgwLCAweEUzODgsIDB4MDI0RSwgMHg5MDcxLCAweDBENzEsIDB4MDAwQiwgCi0gICAgMHhBRkEwLCAweDgwMTAsIDB4QUZBMCwgMHg4MDEwLCAweDA4MTAsIDB4NjYwQSwgMHhFMzA4LCAweDAyNDksIDB4MDAwOSwgMHgwODEwLCAweDY2MEMsIDB4RTM4OCwgCi0gICAgMHgwMjRFLCAweDgwMEIsIDB4QkMyMCwgMHg2OTdCLCAweEUzODgsIDB4MDNBMSwgMHhCRjBBLCAweDEwOUUsIDB4OEI4QSwgMHhBRjgwLCAweDgwMTQsIDB4NEM4MCwgCi0gICAgMHhFMTAwLCAweDAyNjYsIDB4Njk3QywgMHhCRjkwLCAweDA1NjAsIDB4OTA3MiwgMHgwMzcyLCAweDY5N0MsIDB4QkY5MCwgMHgwNTY0LCAweDkwNzMsIDB4MDQ3MywgCi0gICAgMHg3OTgwLCAweDAyNzAsIDB4Njk3QywgMHhCRjkwLCAweDA1MjAsIDB4OTA3MiwgMHgwMzcyLCAweDY5N0MsIDB4QkY5MCwgMHgwNTI0LCAweDkwNzMsIDB4MDQ3MywgCi0gICAgMHg2OTdDLCAweEI4MDEsIDB4OTA3QywgMHhCRjBBLCAweDEwRkQsIDB4OEI4QSwgMHhBRjgwLCAweDgwMTAsIDB4NzM0RiwgMHg1NDhBLCAweEJFMDMsIDB4OTg4MCwgCi0gICAgMHhCQzIxLCAweDczMjYsIDB4NTQ4QiwgMHhCRTAzLCAweDYxOEIsIDB4OTg4QywgMHhCRTAzLCAweDYxODAsIDB4OTg4MCwgMHg3OTgwLCAweDAzQTEsIDB4N0E4MCwgCi0gICAgMHgwMzhBLCAweDBEMjgsIDB4NDcxMSwgMHhFMTAwLCAweDAyQkUsIDB4QUYxMiwgMHg0MDA2LCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEUzODgsIDB4MDJCNiwgCi0gICAgMHhCRkEwLCAweDA4MDAsIDB4RTM4OCwgMHgwMkIyLCAweDY5MTIsIDB4QkZCMCwgMHgwQzAwLCAweEJGQTAsIDB4MDQwMCwgMHhFMzg4LCAweDAyQTMsIDB4NjkwOSwgCi0gICAgMHg5MDBCLCAweDc5ODAsIDB4MDJBNSwgMHhBRjBCLCAweDQwMDUsIDB4NjkwMSwgMHg5MDA1LCAweDY5MDIsIDB4OTAwNiwgMHg0MzExLCAweEUxMDAsIDB4MDJFRCwgCi0gICAgMHg2OTExLCAweEJGQzAsIDB4MjAwMCwgMHg5MDExLCAweDc5ODAsIDB4MDJFRCwgMHg2OTA5LCAweDkwMEIsIDB4Nzk4MCwgMHgwMkI4LCAweEFGMEIsIDB4NDAwNSwgCi0gICAgMHhBRjA1LCAweDQwMDMsIDB4QUYwNiwgMHg0MDA0LCAweDc5ODAsIDB4MDJFRCwgMHhBRjEyLCAweDQwMDYsIDB4NjkxMiwgMHhCRkIwLCAweDBDMDAsIDB4RTM4OCwgCi0gICAgMHgwMkU3LCAweEJGQTAsIDB4MDgwMCwgMHhFMzg4LCAweDAyRTMsIDB4NjkxMiwgMHhCRkIwLCAweDBDMDAsIDB4QkZBMCwgMHgwNDAwLCAweEUzODgsIDB4MDJENCwgCi0gICAgMHg2OTBELCAweDkwMTAsIDB4Nzk4MCwgMHgwMkQ2LCAweEFGMTAsIDB4NDAwNSwgMHg2OTAxLCAweDkwMDUsIDB4NjkwMiwgMHg5MDA2LCAweDQzMTEsIDB4RTEwMCwgCi0gICAgMHgwMkVELCAweDY5MTEsIDB4QkZDMCwgMHgyMDAwLCAweDkwMTEsIDB4Nzk4MCwgMHgwMkVELCAweDY5MEQsIDB4OTAxMCwgMHg3OTgwLCAweDAyRTksIDB4QUYxMCwgCi0gICAgMHg0MDA1LCAweEFGMDUsIDB4NDAwMywgMHhBRjA2LCAweDQwMDQsIDB4QkMyMCwgMHg2OTcwLCAweDkwNzEsIDB4N0E4MCwgMHgwMDc4LCAweDY5NzEsIDB4OTA3MCwgCi0gICAgMHg3OTgwLCAweDAzQTEsIDB4QkMyMCwgMHgwMzYxLCAweDhCOEIsIDB4Njk4MCwgMHhFRjg4LCAweDAyNzIsIDB4MDM3MiwgMHg3ODA0LCAweDkwNzEsIDB4MEQ3MSwgCi0gICAgMHg4QjhBLCAweDAwMEIsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDMwOSwgMHg2OUE4LCAweDkwQUIsIDB4NjlBOCwgMHg5MEFBLCAweDA4MTAsIDB4NjYwQSwgCi0gICAgMHhFMzQ0LCAweDAzMEYsIDB4MDAwOSwgMHgwODEwLCAweDY2MEMsIDB4RTM4OCwgMHgwMzE0LCAweDgwMEIsIDB4QkMyMCwgMHg2OTYxLCAweEI4MDEsIDB4OTA2MSwgCi0gICAgMHg3OTgwLCAweDAyRjcsIDB4N0E4MCwgMHgwMzhBLCAweDVEMzUsIDB4MDAwMSwgMHg2OTM0LCAweEI4MDEsIDB4OTAzNCwgMHhCRjBBLCAweDEwOUUsIDB4OEI4QSwgCi0gICAgMHhBRjgwLCAweDgwMTQsIDB4NDg4MCwgMHhBRTcyLCAweDA1NTAsIDB4RjUwMCwgMHhBRTcyLCAweDA1MTAsIDB4QUU2MSwgMHgxMDUxLCAweDdBODAsIDB4MDJGNiwgCi0gICAgMHg3OTgwLCAweDAzQTEsIDB4N0E4MCwgMHgwMzhBLCAweDVEMzUsIDB4MDAwMiwgMHg2OTVFLCAweEI4MDEsIDB4OTA1RSwgMHhCRjBBLCAweDEwOUUsIDB4OEI4QSwgCi0gICAgMHhBRjgwLCAweDgwMTQsIDB4NDc4MCwgMHhBRTcyLCAweDA1NTgsIDB4RjUwMCwgMHhBRTcyLCAweDA1MTgsIDB4QUU2MSwgMHgxMDVDLCAweDdBODAsIDB4MDJGNiwgCi0gICAgMHg3OTgwLCAweDAzQTEsIDB4MDAxQywgMHg4Qjg4LCAweDY5ODAsIDB4RUY4OCwgMHg5MDFELCAweDBEMUQsIDB4MTAwRiwgMHg2NjEwLCAweEUzOEMsIDB4MDM1OCwgCi0gICAgMHg2OTBFLCAweDY2MTAsIDB4NjIwRiwgMHg2NjBELCAweEJBMEYsIDB4RTMwMSwgMHgwMzdBLCAweDA0MTAsIDB4OEI4QSwgMHhCOTAzLCAweDg4MDksIDB4QkVDNiwgCi0gICAgMHgwMzZDLCAweDZBOEMsIDB4NjFBQSwgMHg5OEFCLCAweDZBOEMsIDB4NjFBQiwgMHg5OEFELCAweDZBOEMsIDB4NjFBRCwgMHg5OEE5LCAweDZBOEMsIDB4NjFBOSwgCi0gICAgMHg5OEFBLCAweDdDMDQsIDB4OEI4QiwgMHg3QzA0LCAweDhCOEQsIDB4N0MwNCwgMHg4Qjg5LCAweDdDMDQsIDB4MDgxNCwgMHg2NjBFLCAweEUzMDgsIDB4MDM3OSwgCi0gICAgMHgwNDBELCAweDg0MTAsIDB4QkMyMSwgMHg2OTFDLCAweEI4MDEsIDB4OTAxQywgMHg3OTgwLCAweDAzNEEsIDB4QjkwMywgMHg4ODA5LCAweDhCOEEsIDB4QkVDNiwgCi0gICAgMHgwMzg4LCAweDU0QUMsIDB4QkUwMywgMHg2MThDLCAweDk4QUEsIDB4RUYwMCwgMHhCQzIwLCAweEJFNDYsIDB4MDgwOSwgMHg5MDZCLCAweDA4MEEsIDB4OTA2QywgCi0gICAgMHgwODBCLCAweDkwNkQsIDB4MDgxQSwgMHg5MDYyLCAweDA4MUIsIDB4OTA2MywgMHgwODFFLCAweDkwNjQsIDB4QkU1OSwgMHg4ODFFLCAweDgwNjUsIDB4ODE2NiwgCi0gICAgMHg4MjY3LCAweDgzNjgsIDB4ODQ2OSwgMHg4NTZBLCAweEVGMDAsIDB4QkMyMCwgMHg2OTZCLCAweDg4MDksIDB4Njk2QywgMHg4ODBBLCAweDY5NkQsIDB4ODgwQiwgCi0gICAgMHg2OTYyLCAweDg4MUEsIDB4Njk2MywgMHg4ODFCLCAweDY5NjQsIDB4ODgxRSwgMHgwMDY1LCAweDAxNjYsIDB4MDI2NywgMHgwMzY4LCAweDA0NjksIDB4MDU2QSwgCi0gICAgMHhCRTNBLCAKLX07Ci0KLS8qCi0gKiBNaW5pIHNhbXBsZSByYXRlIGNvbnZlcnRlciBjb2RlIGltYWdlCi0gKiB0aGF0IGlzIHRvIGJlIGxvYWRlZCBhdCAweDQwMCBvbiB0aGUgRFNQLgotICovCi1zdGF0aWMgY29uc3QgdTE2IGFzc3BfbWluaXNyY19pbWFnZVtdID0gewotCi0gICAgMHhCRjgwLCAweDEwMUUsIDB4OTA2RSwgMHgwMDZFLCAweDhCODgsIDB4Njk4MCwgMHhFRjg4LCAweDkwNkYsIDB4MEQ2RiwgMHg2OTAwLCAweEVCMDgsIDB4MDQxMiwgCi0gICAgMHhCQzIwLCAweDY5NkUsIDB4QjgwMSwgMHg5MDZFLCAweDc5ODAsIDB4MDQwMywgMHhCOTBFLCAweDg4MDcsIDB4QkU0MywgMHhCRjAxLCAweEJFNDcsIDB4QkU0MSwgCi0gICAgMHg3QTgwLCAweDAwMkEsIDB4QkU0MCwgMHgzMDI5LCAweEVGQ0MsIDB4QkU0MSwgMHg3QTgwLCAweDAwMjgsIDB4QkU0MCwgMHgzMDI4LCAweEVGQ0MsIDB4NjkwNywgCi0gICAgMHhFMzA4LCAweDA0MkEsIDB4NjkwOSwgMHg5MDJDLCAweDc5ODAsIDB4MDQyQywgMHg2OTBELCAweDkwMkMsIDB4MTAwOSwgMHg4ODFBLCAweDEwMEEsIDB4QkEwMSwgCi0gICAgMHg4ODFCLCAweDEwMEQsIDB4ODgxQywgMHgxMDBFLCAweEJBMDEsIDB4ODgxRCwgMHhCRjgwLCAweDAwRUQsIDB4ODgxRSwgMHgwNTBDLCAweDAxMjQsIDB4QjkwNCwgCi0gICAgMHg5MDI3LCAweDY5MTgsIDB4RTMwOCwgMHgwNEIzLCAweDkwMkQsIDB4NjkxMywgMHhCRkEwLCAweDc1OTgsIDB4RjcwNCwgMHhBRTJELCAweDAwRkYsIDB4OEI4RCwgCi0gICAgMHg2OTE5LCAweEUzMDgsIDB4MDQ2MywgMHg2OTFBLCAweEUzMDgsIDB4MDQ1NiwgMHhCOTA3LCAweDg4MDksIDB4QkVDNiwgMHgwNDUzLCAweDEwQTksIDB4OTBBRCwgCi0gICAgMHg3OTgwLCAweDA0N0MsIDB4QjkwMywgMHg4ODA5LCAweEJFQzYsIDB4MDQ2MCwgMHgxODg5LCAweDZDMjIsIDB4OTBBRCwgMHgxMEE5LCAweDZFMjMsIDB4NkMyMiwgCi0gICAgMHg5MEFELCAweDc5ODAsIDB4MDQ3QywgMHgxMDFBLCAweEUzMDgsIDB4MDQ2RiwgMHhCOTAzLCAweDg4MDksIDB4QkVDNiwgMHgwNDZDLCAweDEwQTksIDB4OTBBMCwgCi0gICAgMHg5MEFELCAweDc5ODAsIDB4MDQ3QywgMHhCOTAxLCAweDg4MDksIDB4QkVDNiwgMHgwNDdCLCAweDE4ODksIDB4NkMyMiwgMHg5MEEwLCAweDkwQUQsIDB4MTBBOSwgCi0gICAgMHg2RTIzLCAweDZDMjIsIDB4OTBBMCwgMHg5MEFELCAweDY5MkQsIDB4RTMwOCwgMHgwNDlDLCAweDAxMjQsIDB4QjcwMywgMHhCOTAyLCAweDg4MTgsIDB4OEI4OSwgCi0gICAgMHgwMjJDLCAweDEwOEEsIDB4N0MwNCwgMHg5MEEwLCAweDY5MkIsIDB4ODgxRiwgMHg3RTgwLCAweDA1NUIsIDB4NjkyQSwgMHg4ODA5LCAweDhCODksIDB4OTlBMCwgCi0gICAgMHgxMDhBLCAweDkwQTAsIDB4NjkyQiwgMHg4ODFGLCAweDdFODAsIDB4MDU1QiwgMHg2OTJBLCAweDg4MDksIDB4OEI4OSwgMHg5OUFGLCAweDdCOTksIDB4MDQ4NCwgCi0gICAgMHgwMTI0LCAweDA2MEYsIDB4MTAxQiwgMHgyMDEzLCAweDkwMUIsIDB4QkZBMCwgMHg3RkZGLCAweEUzNDQsIDB4MDRBQywgMHg5MDFCLCAweDhCODksIDB4N0E4MCwgCi0gICAgMHgwNTFBLCAweDY5MjcsIDB4QkEwMSwgMHg5MDI3LCAweDdBODAsIDB4MDUyMywgMHg2OTI3LCAweEUzMDgsIDB4MDQ5RSwgMHg3OTgwLCAweDA1MEYsIDB4MDYyNCwgCi0gICAgMHgxMDI2LCAweDIwMTMsIDB4OTAyNiwgMHhCRkEwLCAweDdGRkYsIDB4RTMwNCwgMHgwNEMwLCAweDhCOEQsIDB4N0E4MCwgMHgwNTFBLCAweDc5ODAsIDB4MDRCNCwgCi0gICAgMHg5MDI2LCAweDEwMTMsIDB4MzAyNiwgMHg5MDFCLCAweDhCOEQsIDB4N0E4MCwgMHgwNTFBLCAweDdBODAsIDB4MDUyMywgMHgxMDI3LCAweEJBMDEsIDB4OTAyNywgCi0gICAgMHhFMzA4LCAweDA0QjQsIDB4MDEyNCwgMHgwNjBGLCAweDhCODksIDB4NjkxQSwgMHhFMzA4LCAweDA0RUEsIDB4NjkxOSwgMHhFMzg4LCAweDA0RTAsIDB4QjkwMywgCi0gICAgMHg4ODA5LCAweEJFQzYsIDB4MDRERCwgMHgxRkEwLCAweDJGQUUsIDB4OThBOSwgMHg3OTgwLCAweDA1MEYsIDB4QjkwMSwgMHg4ODE4LCAweEI5MDcsIDB4ODgwOSwgCi0gICAgMHhCRUM2LCAweDA0RTcsIDB4MTBFRSwgMHg5MEE5LCAweDc5ODAsIDB4MDUwRiwgMHg2OTE5LCAweEUzMDgsIDB4MDRGRSwgMHhCOTAzLCAweDg4MDksIDB4QkU0NiwgCi0gICAgMHhCRUM2LCAweDA0RkEsIDB4MTdBMCwgMHhCRTFFLCAweDFGQUUsIDB4QkZCRiwgMHhGRjAwLCAweEJFMTMsIDB4QkZERiwgMHg4MDgwLCAweDk5QTksIDB4QkU0NywgCi0gICAgMHg3OTgwLCAweDA1MEYsIDB4QjkwMSwgMHg4ODA5LCAweEJFQzYsIDB4MDUwRSwgMHgxNkEwLCAweDI2QTAsIDB4QkZCNywgMHhGRjAwLCAweEJFMUUsIDB4MUVBMCwgCi0gICAgMHgyRUFFLCAweEJGQkYsIDB4RkYwMCwgMHhCRTEzLCAweEJGREYsIDB4ODA4MCwgMHg5OUE5LCAweDg1MEMsIDB4ODYwRiwgMHg2OTA3LCAweEUzODgsIDB4MDUxNiwgCi0gICAgMHgwRDA3LCAweDg1MTAsIDB4QkU1OSwgMHg4ODFFLCAweEJFNEEsIDB4RUYwMCwgMHgxMDFFLCAweDkwMUMsIDB4MTAxRiwgMHg5MDFELCAweDEwQTAsIDB4OTAxRSwgCi0gICAgMHgxMEEwLCAweDkwMUYsIDB4RUYwMCwgMHgxMDFFLCAweDMwMUMsIDB4OTAyMCwgMHg3MzFCLCAweDU0MjAsIDB4QkUwMywgMHg5ODI1LCAweDEwMjUsIDB4MjAxQywgCi0gICAgMHg5MDI1LCAweDczMjUsIDB4NTQxNCwgMHhCRTAzLCAweDhCOEUsIDB4OTg4MCwgMHg2OTJGLCAweEUzODgsIDB4MDUzOSwgMHhCRTU5LCAweEJCMDcsIDB4NjE4MCwgCi0gICAgMHg5ODgwLCAweDhCQTAsIDB4MTAxRiwgMHgzMDFELCAweDkwMjEsIDB4NzMxQiwgMHg1NDIxLCAweEJFMDMsIDB4OTgyRSwgMHgxMDJFLCAweDIwMUQsIDB4OTAyRSwgCi0gICAgMHg3MzJFLCAweDU0MTUsIDB4QkUwMywgMHg5ODgwLCAweDY5MkYsIDB4RTM4OCwgMHgwNTRGLCAweEJFNTksIDB4QkIwNywgMHg2MTgwLCAweDk4ODAsIDB4OEJBMCwgCi0gICAgMHg2OTE4LCAweEVGMDgsIDB4NzMyNSwgMHg1NDE2LCAweEJFMDMsIDB4OThBMCwgMHg3MzJFLCAweDU0MTcsIDB4QkUwMywgMHg5OEEwLCAweEVGMDAsIDB4OEJBMCwgCi0gICAgMHhCRUM2LCAweDA1NkIsIDB4QkU1OSwgMHhCQjA0LCAweEFBOTAsIDB4QkUwNCwgMHhCRTFFLCAweDk5RTAsIDB4OEJFMCwgMHg2OUEwLCAweDkwRDAsIDB4NjlBMCwgCi0gICAgMHg5MEQwLCAweDA4MUYsIDB4QjgwNSwgMHg4ODFGLCAweDhCOTAsIDB4NjlBMCwgMHg5MEQwLCAweDY5QTAsIDB4OTA5MCwgMHg4QkQwLCAweDhCRDgsIDB4QkUxRiwgCi0gICAgMHhFRjAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgCi0gICAgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgCi19OwotCi1zdGF0aWMgY29uc3Qgc3RydWN0IGZpcm13YXJlIGFzc3Bfa2VybmVsID0gewotCS5kYXRhID0gKHU4ICopYXNzcF9rZXJuZWxfaW1hZ2UsCi0JLnNpemUgPSBzaXplb2YgYXNzcF9rZXJuZWxfaW1hZ2UKLX07Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGZpcm13YXJlIGFzc3BfbWluaXNyYyA9IHsKLQkuZGF0YSA9ICh1OCAqKWFzc3BfbWluaXNyY19pbWFnZSwKLQkuc2l6ZSA9IHNpemVvZiBhc3NwX21pbmlzcmNfaW1hZ2UKLX07Ci0KLSNlbHNlIC8qIENPTkZJR19TTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMICovCi0KLSNpZmRlZiBfX0xJVFRMRV9FTkRJQU4KLXN0YXRpYyBpbmxpbmUgdm9pZCBzbmRfbTNfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpIHsgfQotI2Vsc2UKLXN0YXRpYyB2b2lkIHNuZF9tM19jb252ZXJ0X2Zyb21fbGUoY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdykKLXsKLQlpbnQgaTsKLQl1MTYgKmRhdGEgPSAodTE2ICopZnctPmRhdGE7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgZnctPnNpemUgLyAyOyArK2kpCi0JCWxlMTZfdG9fY3B1cygmZGF0YVtpXSk7Ci19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIENPTkZJR19TTkRfTUFFU1RSTzNfRklSTVdBUkVfSU5fS0VSTkVMICovCi0KLQogLyoKICAqIGluaXRpYWxpemUgQVNTUAogICovCkBAIC0yMjcxLDcgKzIxMTIsNyBAQAogc3RhdGljIHZvaWQgc25kX20zX2Fzc3BfaW5pdChzdHJ1Y3Qgc25kX20zICpjaGlwKQogewogCXVuc2lnbmVkIGludCBpOwotCXUxNiAqZGF0YTsKKwljb25zdCB1MTYgKmRhdGE7CiAKIAkvKiB6ZXJvIGtlcm5lbCBkYXRhICovCiAJZm9yIChpID0gMDsgaSA8IChSRVZfQl9EQVRBX01FTU9SWV9VTklUX0xFTkdUSCAqIE5VTV9VTklUU19LRVJORUxfREFUQSkgLyAyOyBpKyspCkBAIC0yMjg5LDEwICsyMTMwLDExIEBACiAJCQkgIEtEQVRBX0RNQV9YRkVSMCk7CiAKIAkvKiB3cml0ZSBrZXJuZWwgaW50byBjb2RlIG1lbW9yeS4uICovCi0JZGF0YSA9ICh1MTYgKiljaGlwLT5hc3NwX2tlcm5lbF9pbWFnZS0+ZGF0YTsKKwlkYXRhID0gKGNvbnN0IHUxNiAqKWNoaXAtPmFzc3Bfa2VybmVsX2ltYWdlLT5kYXRhOwogCWZvciAoaSA9IDAgOyBpICogMiA8IGNoaXAtPmFzc3Bfa2VybmVsX2ltYWdlLT5zaXplOyBpKyspIHsKIAkJc25kX20zX2Fzc3Bfd3JpdGUoY2hpcCwgTUVNVFlQRV9JTlRFUk5BTF9DT0RFLCAKLQkJCQkgIFJFVl9CX0NPREVfTUVNT1JZX0JFR0lOICsgaSwgZGF0YVtpXSk7CisJCQkJICBSRVZfQl9DT0RFX01FTU9SWV9CRUdJTiArIGksCisJCQkJICBsZTE2X3RvX2NwdShkYXRhW2ldKSk7CiAJfQogCiAJLyoKQEAgLTIzMDEsMTAgKzIxNDMsMTAgQEAKIAkgKiBkcm9wIGl0IHRoZXJlLiAgSXQgc2VlbXMgdGhhdCB0aGUgbWluaXNyYyBkb2Vzbid0CiAJICogbmVlZCB2ZWN0b3JzLCBzbyB3ZSB3b24ndCBib3RoZXIgd2l0aCB0aGVtLi4KIAkgKi8KLQlkYXRhID0gKHUxNiAqKWNoaXAtPmFzc3BfbWluaXNyY19pbWFnZS0+ZGF0YTsKKwlkYXRhID0gKGNvbnN0IHUxNiAqKWNoaXAtPmFzc3BfbWluaXNyY19pbWFnZS0+ZGF0YTsKIAlmb3IgKGkgPSAwOyBpICogMiA8IGNoaXAtPmFzc3BfbWluaXNyY19pbWFnZS0+c2l6ZTsgaSsrKSB7CiAJCXNuZF9tM19hc3NwX3dyaXRlKGNoaXAsIE1FTVRZUEVfSU5URVJOQUxfQ09ERSwgCi0JCQkJICAweDQwMCArIGksIGRhdGFbaV0pOworCQkJCSAgMHg0MDAgKyBpLCBsZTE2X3RvX2NwdShkYXRhW2ldKSk7CiAJfQogCiAJLyoKQEAgLTI0MjcsNiArMjI2OSwyOSBAQAogCW91dHcoMHhmZmZmLCBpbyArIEdQSU9fTUFTSyk7CiB9CiAKK3N0YXRpYyB2b2lkCitzbmRfbTNfaHZfaW5pdChzdHJ1Y3Qgc25kX20zICpjaGlwKQoreworCXVuc2lnbmVkIGxvbmcgaW8gPSBjaGlwLT5pb2Jhc2U7CisJdTE2IHZhbCA9IEdQSV9WT0xfRE9XTiB8IEdQSV9WT0xfVVA7CisKKwlpZiAoIWNoaXAtPmlzX29tbmlib29rKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFZvbHVtZSBidXR0b25zIG9uIHNvbWUgSFAgT21uaUJvb2sgbGFwdG9wcworCSAqIHJlcXVpcmUgc29tZSBHUElPIG1hZ2ljIHRvIHdvcmsgY29ycmVjdGx5LgorCSAqLworCW91dHcoMHhmZmZmLCBpbyArIEdQSU9fTUFTSyk7CisJb3V0dygweDAwMDAsIGlvICsgR1BJT19EQVRBKTsKKworCW91dHcofnZhbCwgaW8gKyBHUElPX01BU0spOworCW91dHcoaW53KGlvICsgR1BJT19ESVJFQ1RJT04pICYgfnZhbCwgaW8gKyBHUElPX0RJUkVDVElPTik7CisJb3V0dyh2YWwsIGlvICsgR1BJT19NQVNLKTsKKworCW91dHcoMHhmZmZmLCBpbyArIEdQSU9fTUFTSyk7Cit9CisKIHN0YXRpYyBpbnQKIHNuZF9tM19jaGlwX2luaXQoc3RydWN0IHNuZF9tMyAqY2hpcCkKIHsKQEAgLTI0NDIsMjEgKzIzMDcsNiBAQAogCSAgICAgICBESVNBQkxFX0xFR0FDWSk7CiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBjaWRldiwgUENJX0xFR0FDWV9BVURJT19DVFJMLCB3KTsKIAotCWlmIChjaGlwLT5pc19vbW5pYm9vaykgewotCQkvKgotCQkgKiBWb2x1bWUgYnV0dG9ucyBvbiBzb21lIEhQIE9tbmlCb29rIGxhcHRvcHMgZG9uJ3Qgd29yawotCQkgKiBjb3JyZWN0bHkuIFRoaXMgbWFrZXMgdGhlbSB3b3JrIGZvciB0aGUgbW9zdCBwYXJ0LgotCQkgKgotCQkgKiBWb2x1bWUgdXAgYW5kIGRvd24gYnV0dG9ucyBvbiB0aGUgbGFwdG9wIHNpZGUgd29yay4KLQkJICogRm4rY3Vyc29yX3VwICh2b2xtZSB1cCkgd29ya3MuCi0JCSAqIEZuK2N1cnNvcl9kb3duICh2b2x1bWUgZG93bikgZG9lc24ndCB3b3JrLgotCQkgKiBGbitGNyAobXV0ZSkgd29ya3MgYWN0cyBhcyB2b2x1bWUgdXAuCi0JCSAqLwotCQlvdXR3KH4oR1BJX1ZPTF9ET1dOfEdQSV9WT0xfVVApLCBpbyArIEdQSU9fTUFTSyk7Ci0JCW91dHcoaW53KGlvICsgR1BJT19ESVJFQ1RJT04pICYgfihHUElfVk9MX0RPV058R1BJX1ZPTF9VUCksIGlvICsgR1BJT19ESVJFQ1RJT04pOwotCQlvdXR3KChHUElfVk9MX0RPV058R1BJX1ZPTF9VUCksIGlvICsgR1BJT19EQVRBKTsKLQkJb3V0dygweGZmZmYsIGlvICsgR1BJT19NQVNLKTsKLQl9CiAJcGNpX3JlYWRfY29uZmlnX2R3b3JkKHBjaWRldiwgUENJX0FMTEVHUk9fQ09ORklHLCAmbik7CiAJbiAmPSB+KEhWX0NUUkxfRU5BQkxFIHwgUkVEVUNFRF9ERUJPVU5DRSB8IEhWX0JVVFRPTl9GUk9NX0dEKTsKIAluIHw9IGNoaXAtPmh2X2NvbmZpZzsKQEAgLTI1NDgsMTAgKzIzOTgsOCBAQAogCWlmIChjaGlwLT5pb2Jhc2UpCiAJCXBjaV9yZWxlYXNlX3JlZ2lvbnMoY2hpcC0+cGNpKTsKIAotI2lmbmRlZiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAogCXJlbGVhc2VfZmlybXdhcmUoY2hpcC0+YXNzcF9rZXJuZWxfaW1hZ2UpOwogCXJlbGVhc2VfZmlybXdhcmUoY2hpcC0+YXNzcF9taW5pc3JjX2ltYWdlKTsKLSNlbmRpZgogCiAJcGNpX2Rpc2FibGVfZGV2aWNlKGNoaXAtPnBjaSk7CiAJa2ZyZWUoY2hpcCk7CkBAIC0yNjQyLDYgKzI0OTAsOCBAQAogCXNuZF9tM19lbmFibGVfaW50cyhjaGlwKTsKIAlzbmRfbTNfYW1wX2VuYWJsZShjaGlwLCAxKTsKIAorCXNuZF9tM19odl9pbml0KGNoaXApOworCiAJc25kX3Bvd2VyX2NoYW5nZV9zdGF0ZShjYXJkLCBTTkRSVl9DVExfUE9XRVJfRDApOwogCXJldHVybiAwOwogfQpAQCAtMjc0MSwyOSArMjU5MSwxOSBAQAogCQlyZXR1cm4gLUVOT01FTTsKIAl9CiAKLSNpZmRlZiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWNoaXAtPmFzc3Bfa2VybmVsX2ltYWdlID0gJmFzc3Bfa2VybmVsOwotI2Vsc2UKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZjaGlwLT5hc3NwX2tlcm5lbF9pbWFnZSwKIAkJCSAgICAgICAiZXNzL21hZXN0cm8zX2Fzc3Bfa2VybmVsLmZ3IiwgJnBjaS0+ZGV2KTsKIAlpZiAoZXJyIDwgMCkgewogCQlzbmRfbTNfZnJlZShjaGlwKTsKIAkJcmV0dXJuIGVycjsKLQl9IGVsc2UKLQkJc25kX20zX2NvbnZlcnRfZnJvbV9sZShjaGlwLT5hc3NwX2tlcm5lbF9pbWFnZSk7Ci0jZW5kaWYKKwl9CiAKLSNpZmRlZiBDT05GSUdfU05EX01BRVNUUk8zX0ZJUk1XQVJFX0lOX0tFUk5FTAotCWNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSA9ICZhc3NwX21pbmlzcmM7Ci0jZWxzZQogCWVyciA9IHJlcXVlc3RfZmlybXdhcmUoJmNoaXAtPmFzc3BfbWluaXNyY19pbWFnZSwKIAkJCSAgICAgICAiZXNzL21hZXN0cm8zX2Fzc3BfbWluaXNyYy5mdyIsICZwY2ktPmRldik7CiAJaWYgKGVyciA8IDApIHsKIAkJc25kX20zX2ZyZWUoY2hpcCk7CiAJCXJldHVybiBlcnI7Ci0JfSBlbHNlCi0JCXNuZF9tM19jb252ZXJ0X2Zyb21fbGUoY2hpcC0+YXNzcF9taW5pc3JjX2ltYWdlKTsKLSNlbmRpZgorCX0KIAogCWlmICgoZXJyID0gcGNpX3JlcXVlc3RfcmVnaW9ucyhwY2ksIGNhcmQtPmRyaXZlcikpIDwgMCkgewogCQlzbmRfbTNfZnJlZShjaGlwKTsKQEAgLTI3ODEsNiArMjYyMSw4IEBACiAKIAlzbmRfbTNfYW1wX2VuYWJsZShjaGlwLCAxKTsKIAorCXNuZF9tM19odl9pbml0KGNoaXApOworCiAJdGFza2xldF9pbml0KCZjaGlwLT5od3ZvbF90cSwgc25kX20zX3VwZGF0ZV9od192b2x1bWUsICh1bnNpZ25lZCBsb25nKWNoaXApOwogCiAJaWYgKHJlcXVlc3RfaXJxKHBjaS0+aXJxLCBzbmRfbTNfaW50ZXJydXB0LCBJUlFGX1NIQVJFRCwKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9taXhhcnQvbWl4YXJ0X2h3ZGVwLmMgYi9zb3VuZC9wY2kvbWl4YXJ0L21peGFydF9od2RlcC5jCmluZGV4IDEyMmMyOGUuLmY5ODYwMzEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9taXhhcnQvbWl4YXJ0X2h3ZGVwLmMKKysrIGIvc291bmQvcGNpL21peGFydC9taXhhcnRfaHdkZXAuYwpAQCAtNjEzLDcgKzYxMyw3IEBACiAJCQkgICAoaW50KWRzcC0+bGVuZ3RoKTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQotCWlmIChjb3B5X2Zyb21fdXNlcihmdy5kYXRhLCBkc3AtPmltYWdlLCBkc3AtPmxlbmd0aCkpIHsKKwlpZiAoY29weV9mcm9tX3VzZXIoKHZvaWQgKikgZncuZGF0YSwgZHNwLT5pbWFnZSwgZHNwLT5sZW5ndGgpKSB7CiAJCXZmcmVlKGZ3LmRhdGEpOwogCQlyZXR1cm4gLUVGQVVMVDsKIAl9CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvbm0yNTYvbm0yNTYuYyBiL3NvdW5kL3BjaS9ubTI1Ni9ubTI1Ni5jCmluZGV4IDdlZmI4MzguLjA2ZDEzZTcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9ubTI1Ni9ubTI1Ni5jCisrKyBiL3NvdW5kL3BjaS9ubTI1Ni9ubTI1Ni5jCkBAIC0xMzAyLDggKzEzMDIsOCBAQAogCQkucmVhZCA9IHNuZF9ubTI1Nl9hYzk3X3JlYWQsCiAJfTsKIAotCWNoaXAtPmFjOTdfcmVncyA9IGtjYWxsb2Moc2l6ZW9mKHNob3J0KSwKLQkJCQkgIEFSUkFZX1NJWkUobm0yNTZfYWM5N19pbml0X3ZhbCksIEdGUF9LRVJORUwpOworCWNoaXAtPmFjOTdfcmVncyA9IGtjYWxsb2MoQVJSQVlfU0laRShubTI1Nl9hYzk3X2luaXRfdmFsKSwKKwkJCQkgIHNpemVvZihzaG9ydCksIEdGUF9LRVJORUwpOwogCWlmICghIGNoaXAtPmFjOTdfcmVncykKIAkJcmV0dXJuIC1FTk9NRU07CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vaGlmaWVyLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL2hpZmllci5jCmluZGV4IDA5MGRkNDMuLjc0NDI0NjAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9veHlnZW4vaGlmaWVyLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9oaWZpZXIuYwpAQCAtMjgsNyArMjgsNyBAQAogCiBNT0RVTEVfQVVUSE9SKCJDbGVtZW5zIExhZGlzY2ggPGNsZW1lbnNAbGFkaXNjaC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiVGVtcG9UZWMgSGlGaWVyIGRyaXZlciIpOwotTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOwogc3RhdGljIGNoYXIgKmlkW1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfU1RSOwpAQCAtNjIsMTYgKzYyLDI4IEBACiAJCQkgQUs0Mzk2X1dSSVRFIHwgKHJlZyA8PCA4KSB8IHZhbHVlKTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0xDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbMF0pOworCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfUkNIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVsxXSk7Cit9CisKK3N0YXRpYyB2b2lkIGhpZmllcl9yZWdpc3RlcnNfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCBoaWZpZXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0NPTlRST0xfMSwgQUs0Mzk2X0RJRl8yNF9NU0IgfCBBSzQzOTZfUlNUTik7CisJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzIsIGRhdGEtPmFrNDM5Nl9jdGwyKTsKKwlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0NPTlRST0xfMywgQUs0Mzk2X1BDTSk7CisJdXBkYXRlX2FrNDM5Nl92b2x1bWUoY2hpcCk7Cit9CisKIHN0YXRpYyB2b2lkIGhpZmllcl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGhpZmllcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKIAogCWRhdGEtPmFrNDM5Nl9jdGwyID0gQUs0Mzk2X1NNVVRFIHwgQUs0Mzk2X0RFTV9PRkYgfCBBSzQzOTZfREZTX05PUk1BTDsKLQlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0NPTlRST0xfMSwgQUs0Mzk2X0RJRl8yNF9NU0IgfCBBSzQzOTZfUlNUTik7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzIsIGRhdGEtPmFrNDM5Nl9jdGwyKTsKLQlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X0NPTlRST0xfMywgQUs0Mzk2X1BDTSk7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9MQ0hfQVRULCAwKTsKLQlhazQzOTZfd3JpdGUoY2hpcCwgQUs0Mzk2X1JDSF9BVFQsIDApOworCWhpZmllcl9yZWdpc3RlcnNfaW5pdChjaGlwKTsKIAogCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJBSzQzOTYiKTsKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M1MzQwIik7CkBAIC0xMDAsMTIgKzExMiw2IEBACiAJYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9DT05UUk9MXzEsIEFLNDM5Nl9ESUZfMjRfTVNCIHwgQUs0Mzk2X1JTVE4pOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X3ZvbHVtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCWFrNDM5Nl93cml0ZShjaGlwLCBBSzQzOTZfTENIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVswXSk7Ci0JYWs0Mzk2X3dyaXRlKGNoaXAsIEFLNDM5Nl9SQ0hfQVRULCBjaGlwLT5kYWNfdm9sdW1lWzFdKTsKLX0KLQogc3RhdGljIHZvaWQgdXBkYXRlX2FrNDM5Nl9tdXRlKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IGhpZmllcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKQEAgLTE0MCw2ICsxNDYsNyBAQAogCS5pbml0ID0gaGlmaWVyX2luaXQsCiAJLmNvbnRyb2xfZmlsdGVyID0gaGlmaWVyX2NvbnRyb2xfZmlsdGVyLAogCS5jbGVhbnVwID0gaGlmaWVyX2NsZWFudXAsCisJLnJlc3VtZSA9IGhpZmllcl9yZWdpc3RlcnNfaW5pdCwKIAkuc2V0X2RhY19wYXJhbXMgPSBzZXRfYWs0Mzk2X3BhcmFtcywKIAkuc2V0X2FkY19wYXJhbXMgPSBzZXRfY3M1MzQwX3BhcmFtcywKIAkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfYWs0Mzk2X3ZvbHVtZSwKQEAgLTE4MCw2ICsxODcsMTAgQEAKIAkuaWRfdGFibGUgPSBoaWZpZXJfaWRzLAogCS5wcm9iZSA9IGhpZmllcl9wcm9iZSwKIAkucmVtb3ZlID0gX19kZXZleGl0X3Aob3h5Z2VuX3BjaV9yZW1vdmUpLAorI2lmZGVmIENPTkZJR19QTQorCS5zdXNwZW5kID0gb3h5Z2VuX3BjaV9zdXNwZW5kLAorCS5yZXN1bWUgPSBveHlnZW5fcGNpX3Jlc3VtZSwKKyNlbmRpZgogfTsKIAogc3RhdGljIGludCBfX2luaXQgYWxzYV9jYXJkX2hpZmllcl9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5jIGIvc291bmQvcGNpL294eWdlbi9veHlnZW4uYwppbmRleCA2M2YxODVjLi43YzhhZTMxIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmMKQEAgLTQzLDcgKzQzLDcgQEAKIAogTU9EVUxFX0FVVEhPUigiQ2xlbWVucyBMYWRpc2NoIDxjbGVtZW5zQGxhZGlzY2guZGU+Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkMtTWVkaWEgQ01JODc4OCBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0MtTWVkaWEsQ01JODc4OH19Iik7CiAKIHN0YXRpYyBpbnQgaW5kZXhbU05EUlZfQ0FSRFNdID0gU05EUlZfREVGQVVMVF9JRFg7CkBAIC04MCw2ICs4MCw3IEBACiAKIHN0cnVjdCBnZW5lcmljX2RhdGEgewogCXU4IGFrNDM5Nl9jdGwyOworCXUxNiBzYXZlZF93bTg3ODVfcmVnaXN0ZXJzWzJdOwogfTsKIAogc3RhdGljIHZvaWQgYWs0Mzk2X3dyaXRlKHN0cnVjdCBveHlnZW4gKmNoaXAsIHVuc2lnbmVkIGludCBjb2RlYywKQEAgLTk5LDIwICsxMDAsMzUgQEAKIAogc3RhdGljIHZvaWQgd204Nzg1X3dyaXRlKHN0cnVjdCBveHlnZW4gKmNoaXAsIHU4IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQogeworCXN0cnVjdCBnZW5lcmljX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCiAJb3h5Z2VuX3dyaXRlX3NwaShjaGlwLCBPWFlHRU5fU1BJX1RSSUdHRVIgfAogCQkJIE9YWUdFTl9TUElfREFUQV9MRU5HVEhfMiB8CiAJCQkgT1hZR0VOX1NQSV9DTE9DS18xNjAgfAogCQkJICgzIDw8IE9YWUdFTl9TUElfQ09ERUNfU0hJRlQpIHwKIAkJCSBPWFlHRU5fU1BJX0NFTl9MQVRDSF9DTE9DS19MTywKIAkJCSAocmVnIDw8IDkpIHwgdmFsdWUpOworCWlmIChyZWcgPCBBUlJBWV9TSVpFKGRhdGEtPnNhdmVkX3dtODc4NV9yZWdpc3RlcnMpKQorCQlkYXRhLT5zYXZlZF93bTg3ODVfcmVnaXN0ZXJzW3JlZ10gPSB2YWx1ZTsKIH0KIAotc3RhdGljIHZvaWQgYWs0Mzk2X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3N0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJdW5zaWduZWQgaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CisJCWFrNDM5Nl93cml0ZShjaGlwLCBpLAorCQkJICAgICBBSzQzOTZfTENIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOworCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKKwkJCSAgICAgQUs0Mzk2X1JDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDIgKyAxXSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBhazQzOTZfcmVnaXN0ZXJzX2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKIAlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKIAl1bnNpZ25lZCBpbnQgaTsKIAotCWRhdGEtPmFrNDM5Nl9jdGwyID0gQUs0Mzk2X1NNVVRFIHwgQUs0Mzk2X0RFTV9PRkYgfCBBSzQzOTZfREZTX05PUk1BTDsKIAlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7CiAJCWFrNDM5Nl93cml0ZShjaGlwLCBpLAogCQkJICAgICBBSzQzOTZfQ09OVFJPTF8xLCBBSzQzOTZfRElGXzI0X01TQiB8IEFLNDM5Nl9SU1ROKTsKQEAgLTEyMCw5ICsxMzYsMTYgQEAKIAkJCSAgICAgQUs0Mzk2X0NPTlRST0xfMiwgZGF0YS0+YWs0Mzk2X2N0bDIpOwogCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKIAkJCSAgICAgQUs0Mzk2X0NPTlRST0xfMywgQUs0Mzk2X1BDTSk7Ci0JCWFrNDM5Nl93cml0ZShjaGlwLCBpLCBBSzQzOTZfTENIX0FUVCwgMCk7Ci0JCWFrNDM5Nl93cml0ZShjaGlwLCBpLCBBSzQzOTZfUkNIX0FUVCwgMCk7CiAJfQorCXVwZGF0ZV9hazQzOTZfdm9sdW1lKGNoaXApOworfQorCitzdGF0aWMgdm9pZCBhazQzOTZfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCBnZW5lcmljX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJZGF0YS0+YWs0Mzk2X2N0bDIgPSBBSzQzOTZfU01VVEUgfCBBSzQzOTZfREVNX09GRiB8IEFLNDM5Nl9ERlNfTk9STUFMOworCWFrNDM5Nl9yZWdpc3RlcnNfaW5pdChjaGlwKTsKIAlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQUs0Mzk2Iik7CiB9CiAKQEAgLTEzMywxMiArMTU2LDIzIEBACiAJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkFLNTM4NSIpOwogfQogCitzdGF0aWMgdm9pZCB3bTg3ODVfcmVnaXN0ZXJzX2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjcsIDApOworCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjAsIGRhdGEtPnNhdmVkX3dtODc4NV9yZWdpc3RlcnNbMF0pOworCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjEsIGRhdGEtPnNhdmVkX3dtODc4NV9yZWdpc3RlcnNbMV0pOworfQorCiBzdGF0aWMgdm9pZCB3bTg3ODVfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewotCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjcsIDApOwotCXdtODc4NV93cml0ZShjaGlwLCBXTTg3ODVfUjAsIFdNODc4NV9NQ1JfU0xBVkUgfAotCQkgICAgIFdNODc4NV9PU1JfU0lOR0xFIHwgV004Nzg1X0ZPUk1BVF9MSlVTVCk7Ci0Jd204Nzg1X3dyaXRlKGNoaXAsIFdNODc4NV9SMSwgV004Nzg1X1dMXzI0KTsKKwlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPnNhdmVkX3dtODc4NV9yZWdpc3RlcnNbMF0gPSBXTTg3ODVfTUNSX1NMQVZFIHwKKwkJV004Nzg1X09TUl9TSU5HTEUgfCBXTTg3ODVfRk9STUFUX0xKVVNUOworCWRhdGEtPnNhdmVkX3dtODc4NV9yZWdpc3RlcnNbMV0gPSBXTTg3ODVfV0xfMjQ7CisJd204Nzg1X3JlZ2lzdGVyc19pbml0KGNoaXApOwogCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJXTTg3ODUiKTsKIH0KIApAQCAtMTU4LDYgKzE5MiwxMiBAQAogewogfQogCitzdGF0aWMgdm9pZCBnZW5lcmljX3Jlc3VtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCWFrNDM5Nl9yZWdpc3RlcnNfaW5pdChjaGlwKTsKKwl3bTg3ODVfcmVnaXN0ZXJzX2luaXQoY2hpcCk7Cit9CisKIHN0YXRpYyB2b2lkIHNldF9hazQzOTZfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCiAJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKQEAgLTE4MywxOCArMjIzLDYgQEAKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZV9hazQzOTZfdm9sdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0JdW5zaWduZWQgaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKSB7Ci0JCWFrNDM5Nl93cml0ZShjaGlwLCBpLAotCQkJICAgICBBSzQzOTZfTENIX0FUVCwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOwotCQlhazQzOTZfd3JpdGUoY2hpcCwgaSwKLQkJCSAgICAgQUs0Mzk2X1JDSF9BVFQsIGNoaXAtPmRhY192b2x1bWVbaSAqIDIgKyAxXSk7Ci0JfQotfQotCiBzdGF0aWMgdm9pZCB1cGRhdGVfYWs0Mzk2X211dGUoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKIAlzdHJ1Y3QgZ2VuZXJpY19kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKQEAgLTI1Niw2ICsyODQsNyBAQAogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5pbml0ID0gZ2VuZXJpY19pbml0LAogCS5jbGVhbnVwID0gZ2VuZXJpY19jbGVhbnVwLAorCS5yZXN1bWUgPSBnZW5lcmljX3Jlc3VtZSwKIAkuc2V0X2RhY19wYXJhbXMgPSBzZXRfYWs0Mzk2X3BhcmFtcywKIAkuc2V0X2FkY19wYXJhbXMgPSBzZXRfd204Nzg1X3BhcmFtcywKIAkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfYWs0Mzk2X3ZvbHVtZSwKQEAgLTI4Myw2ICszMTIsNyBAQAogCS5vd25lciA9IFRISVNfTU9EVUxFLAogCS5pbml0ID0gbWVyaWRpYW5faW5pdCwKIAkuY2xlYW51cCA9IGdlbmVyaWNfY2xlYW51cCwKKwkucmVzdW1lID0gYWs0Mzk2X3JlZ2lzdGVyc19pbml0LAogCS5zZXRfZGFjX3BhcmFtcyA9IHNldF9hazQzOTZfcGFyYW1zLAogCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9hazUzODVfcGFyYW1zLAogCS51cGRhdGVfZGFjX3ZvbHVtZSA9IHVwZGF0ZV9hazQzOTZfdm9sdW1lLApAQCAtMzMxLDYgKzM2MSwxMCBAQAogCS5pZF90YWJsZSA9IG94eWdlbl9pZHMsCiAJLnByb2JlID0gZ2VuZXJpY19veHlnZW5fcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKG94eWdlbl9wY2lfcmVtb3ZlKSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZCA9IG94eWdlbl9wY2lfc3VzcGVuZCwKKwkucmVzdW1lID0gb3h5Z2VuX3BjaV9yZXN1bWUsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF9veHlnZW5faW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uaCBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuLmgKaW5kZXggYTcxYzZlMC4uNzRhNjQ0OCAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW4uaAorKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbi5oCkBAIC0xNiw2ICsxNiw4IEBACiAjZGVmaW5lIFBDTV9BQzk3CTUKICNkZWZpbmUgUENNX0NPVU5UCTYKIAorI2RlZmluZSBPWFlHRU5fSU9fU0laRQkweDEwMAorCiAvKiBtb2RlbC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIG9mIG91dHB1dHMvaW5wdXRzICovCiAjZGVmaW5lIFBMQVlCQUNLXzBfVE9fSTJTCTB4MDAxCiAjZGVmaW5lIFBMQVlCQUNLXzFfVE9fU1BESUYJMHgwMDQKQEAgLTc4LDYgKzgwLDEyIEBACiAJc3RydWN0IHdvcmtfc3RydWN0IHNwZGlmX2lucHV0X2JpdHNfd29yazsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgZ3Bpb193b3JrOwogCXdhaXRfcXVldWVfaGVhZF90IGFjOTdfd2FpdHF1ZXVlOworCXVuaW9uIHsKKwkJdTggXzhbT1hZR0VOX0lPX1NJWkVdOworCQlfX2xlMTYgXzE2W09YWUdFTl9JT19TSVpFIC8gMl07CisJCV9fbGUzMiBfMzJbT1hZR0VOX0lPX1NJWkUgLyA0XTsKKwl9IHNhdmVkX3JlZ2lzdGVyczsKKwl1MTYgc2F2ZWRfYWM5N19yZWdpc3RlcnNbMl1bMHg0MF07CiB9OwogCiBzdHJ1Y3Qgb3h5Z2VuX21vZGVsIHsKQEAgLTg5LDYgKzk3LDggQEAKIAlpbnQgKCpjb250cm9sX2ZpbHRlcikoc3RydWN0IHNuZF9rY29udHJvbF9uZXcgKnRlbXBsYXRlKTsKIAlpbnQgKCptaXhlcl9pbml0KShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKTsKIAl2b2lkICgqY2xlYW51cCkoc3RydWN0IG94eWdlbiAqY2hpcCk7CisJdm9pZCAoKnN1c3BlbmQpKHN0cnVjdCBveHlnZW4gKmNoaXApOworCXZvaWQgKCpyZXN1bWUpKHN0cnVjdCBveHlnZW4gKmNoaXApOwogCXZvaWQgKCpwY21faGFyZHdhcmVfZmlsdGVyKSh1bnNpZ25lZCBpbnQgY2hhbm5lbCwKIAkJCQkgICAgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgKmhhcmR3YXJlKTsKIAl2b2lkICgqc2V0X2RhY19wYXJhbXMpKHN0cnVjdCBveHlnZW4gKmNoaXAsCkBAIC0xMTcsNiArMTI3LDEwIEBACiBpbnQgb3h5Z2VuX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpLCBpbnQgaW5kZXgsIGNoYXIgKmlkLAogCQkgICAgIGNvbnN0IHN0cnVjdCBveHlnZW5fbW9kZWwgKm1vZGVsKTsKIHZvaWQgb3h5Z2VuX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBjaSk7CisjaWZkZWYgQ09ORklHX1BNCitpbnQgb3h5Z2VuX3BjaV9zdXNwZW5kKHN0cnVjdCBwY2lfZGV2ICpwY2ksIHBtX21lc3NhZ2VfdCBzdGF0ZSk7CitpbnQgb3h5Z2VuX3BjaV9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKnBjaSk7CisjZW5kaWYKIAogLyogb3h5Z2VuX21peGVyLmMgKi8KIApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW5faW8uYyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX2lvLmMKaW5kZXggNTU2OTYwNi4uODNmMTM1ZiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5faW8uYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9pby5jCkBAIC00NCwxOCArNDQsMjEgQEAKIHZvaWQgb3h5Z2VuX3dyaXRlOChzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgcmVnLCB1OCB2YWx1ZSkKIHsKIAlvdXRiKHZhbHVlLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzhbcmVnXSA9IHZhbHVlOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fd3JpdGU4KTsKIAogdm9pZCBveHlnZW5fd3JpdGUxNihzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgcmVnLCB1MTYgdmFsdWUpCiB7CiAJb3V0dyh2YWx1ZSwgY2hpcC0+YWRkciArIHJlZyk7CisJY2hpcC0+c2F2ZWRfcmVnaXN0ZXJzLl8xNltyZWcgLyAyXSA9IGNwdV90b19sZTE2KHZhbHVlKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMTYpOwogCiB2b2lkIG94eWdlbl93cml0ZTMyKHN0cnVjdCBveHlnZW4gKmNoaXAsIHVuc2lnbmVkIGludCByZWcsIHUzMiB2YWx1ZSkKIHsKIAlvdXRsKHZhbHVlLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzMyW3JlZyAvIDRdID0gY3B1X3RvX2xlMzIodmFsdWUpOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fd3JpdGUzMik7CiAKQEAgLTYzLDcgKzY2LDEwIEBACiAJCQkgIHU4IHZhbHVlLCB1OCBtYXNrKQogewogCXU4IHRtcCA9IGluYihjaGlwLT5hZGRyICsgcmVnKTsKLQlvdXRiKCh0bXAgJiB+bWFzaykgfCAodmFsdWUgJiBtYXNrKSwgY2hpcC0+YWRkciArIHJlZyk7CisJdG1wICY9IH5tYXNrOworCXRtcCB8PSB2YWx1ZSAmIG1hc2s7CisJb3V0Yih0bXAsIGNoaXAtPmFkZHIgKyByZWcpOworCWNoaXAtPnNhdmVkX3JlZ2lzdGVycy5fOFtyZWddID0gdG1wOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fd3JpdGU4X21hc2tlZCk7CiAKQEAgLTcxLDcgKzc3LDEwIEBACiAJCQkgICB1MTYgdmFsdWUsIHUxNiBtYXNrKQogewogCXUxNiB0bXAgPSBpbncoY2hpcC0+YWRkciArIHJlZyk7Ci0Jb3V0dygodG1wICYgfm1hc2spIHwgKHZhbHVlICYgbWFzayksIGNoaXAtPmFkZHIgKyByZWcpOworCXRtcCAmPSB+bWFzazsKKwl0bXAgfD0gdmFsdWUgJiBtYXNrOworCW91dHcodG1wLCBjaGlwLT5hZGRyICsgcmVnKTsKKwljaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzE2W3JlZyAvIDJdID0gY3B1X3RvX2xlMTYodG1wKTsKIH0KIEVYUE9SVF9TWU1CT0wob3h5Z2VuX3dyaXRlMTZfbWFza2VkKTsKIApAQCAtNzksNyArODgsMTAgQEAKIAkJCSAgIHUzMiB2YWx1ZSwgdTMyIG1hc2spCiB7CiAJdTMyIHRtcCA9IGlubChjaGlwLT5hZGRyICsgcmVnKTsKLQlvdXRsKCh0bXAgJiB+bWFzaykgfCAodmFsdWUgJiBtYXNrKSwgY2hpcC0+YWRkciArIHJlZyk7CisJdG1wICY9IH5tYXNrOworCXRtcCB8PSB2YWx1ZSAmIG1hc2s7CisJb3V0bCh0bXAsIGNoaXAtPmFkZHIgKyByZWcpOworCWNoaXAtPnNhdmVkX3JlZ2lzdGVycy5fMzJbcmVnIC8gNF0gPSBjcHVfdG9fbGUzMih0bXApOwogfQogRVhQT1JUX1NZTUJPTChveHlnZW5fd3JpdGUzMl9tYXNrZWQpOwogCkBAIC0xMjgsOCArMTQwLDEwIEBACiAJCW94eWdlbl93cml0ZTMyKGNoaXAsIE9YWUdFTl9BQzk3X1JFR1MsIHJlZyk7CiAJCS8qIHJlcXVpcmUgdHdvICJjb21wbGV0ZWQiIHdyaXRlcywganVzdCB0byBiZSBzdXJlICovCiAJCWlmIChveHlnZW5fYWM5N193YWl0KGNoaXAsIE9YWUdFTl9BQzk3X0lOVF9XUklURV9ET05FKSA+PSAwICYmCi0JCSAgICArK3N1Y2NlZWRlZCA+PSAyKQorCQkgICAgKytzdWNjZWVkZWQgPj0gMikgeworCQkJY2hpcC0+c2F2ZWRfYWM5N19yZWdpc3RlcnNbY29kZWNdW2luZGV4IC8gMl0gPSBkYXRhOwogCQkJcmV0dXJuOworCQl9CiAJfQogCXNuZF9wcmludGsoS0VSTl9FUlIgIkFDJzk3IHdyaXRlIHRpbWVvdXRcbiIpOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fbGliLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9saWIuYwppbmRleCA4OTc2OTdkLi4yMmYzNzg1IDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9saWIuYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9saWIuYwpAQCAtMzIsNyArMzIsNyBAQAogCiBNT0RVTEVfQVVUSE9SKCJDbGVtZW5zIExhZGlzY2ggPGNsZW1lbnNAbGFkaXNjaC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQy1NZWRpYSBDTUk4Nzg4IGhlbHBlciBsaWJyYXJ5Iik7Ci1NT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7CiAKIAogc3RhdGljIGlycXJldHVybl90IG94eWdlbl9pbnRlcnJ1cHQoaW50IGR1bW15LCB2b2lkICpkZXZfaWQpCkBAIC0xNzMsNyArMTczLDcgQEAKIAlpbnQgaSwgajsKIAogCXNuZF9pcHJpbnRmKGJ1ZmZlciwgIkNNSTg3ODhcblxuIik7Ci0JZm9yIChpID0gMDsgaSA8IDB4MTAwOyBpICs9IDB4MTApIHsKKwlmb3IgKGkgPSAwOyBpIDwgT1hZR0VOX0lPX1NJWkU7IGkgKz0gMHgxMCkgewogCQlzbmRfaXByaW50ZihidWZmZXIsICIlMDJ4OiIsIGkpOwogCQlmb3IgKGogPSAwOyBqIDwgMHgxMDsgKytqKQogCQkJc25kX2lwcmludGYoYnVmZmVyLCAiICUwMngiLCBveHlnZW5fcmVhZDgoY2hpcCwgaSArIGopKTsKQEAgLTMxNCw2ICszMTQsMTAgQEAKIAkJCQkgICAgT1hZR0VOX1NQRElGX0xPQ0tfTUFTSyB8CiAJCQkJICAgIE9YWUdFTl9TUERJRl9SQVRFX01BU0spOwogCW94eWdlbl93cml0ZTMyKGNoaXAsIE9YWUdFTl9TUERJRl9PVVRQVVRfQklUUywgY2hpcC0+c3BkaWZfYml0cyk7CisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOXzJXSVJFX0JVU19TVEFUVVMsCisJCSAgICAgICBPWFlHRU5fMldJUkVfTEVOR1RIXzggfAorCQkgICAgICAgT1hZR0VOXzJXSVJFX0lOVEVSUlVQVF9NQVNLIHwKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9TUEVFRF9TVEFOREFSRCk7CiAJb3h5Z2VuX2NsZWFyX2JpdHM4KGNoaXAsIE9YWUdFTl9NUFU0MDFfQ09OVFJPTCwgT1hZR0VOX01QVTQwMV9MT09QQkFDSyk7CiAJb3h5Z2VuX3dyaXRlOChjaGlwLCBPWFlHRU5fR1BJX0lOVEVSUlVQVF9NQVNLLCAwKTsKIAlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fR1BJT19JTlRFUlJVUFRfTUFTSywgMCk7CkBAIC00NTUsNyArNDU5LDcgQEAKIAl9CiAKIAlpZiAoIShwY2lfcmVzb3VyY2VfZmxhZ3MocGNpLCAwKSAmIElPUkVTT1VSQ0VfSU8pIHx8Ci0JICAgIHBjaV9yZXNvdXJjZV9sZW4ocGNpLCAwKSA8IDB4MTAwKSB7CisJICAgIHBjaV9yZXNvdXJjZV9sZW4ocGNpLCAwKSA8IE9YWUdFTl9JT19TSVpFKSB7CiAJCXNuZF9wcmludGsoS0VSTl9FUlIgImludmFsaWQgUENJIEkvTyByYW5nZVxuIik7CiAJCWVyciA9IC1FTlhJTzsKIAkJZ290byBlcnJfcGNpX3JlZ2lvbnM7CkBAIC01MzQsMyArNTM4LDk5IEBACiAJcGNpX3NldF9kcnZkYXRhKHBjaSwgTlVMTCk7CiB9CiBFWFBPUlRfU1lNQk9MKG94eWdlbl9wY2lfcmVtb3ZlKTsKKworI2lmZGVmIENPTkZJR19QTQoraW50IG94eWdlbl9wY2lfc3VzcGVuZChzdHJ1Y3QgcGNpX2RldiAqcGNpLCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGNpX2dldF9kcnZkYXRhKHBjaSk7CisJc3RydWN0IG94eWdlbiAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaSwgc2F2ZWRfaW50ZXJydXB0X21hc2s7CisKKwlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNhcmQsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgUENNX0NPVU5UOyArK2kpCisJCWlmIChjaGlwLT5zdHJlYW1zW2ldKQorCQkJc25kX3BjbV9zdXNwZW5kKGNoaXAtPnN0cmVhbXNbaV0pOworCisJaWYgKGNoaXAtPm1vZGVsLT5zdXNwZW5kKQorCQljaGlwLT5tb2RlbC0+c3VzcGVuZChjaGlwKTsKKworCXNwaW5fbG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKwlzYXZlZF9pbnRlcnJ1cHRfbWFzayA9IGNoaXAtPmludGVycnVwdF9tYXNrOworCWNoaXAtPmludGVycnVwdF9tYXNrID0gMDsKKwlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fRE1BX1NUQVRVUywgMCk7CisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0lOVEVSUlVQVF9NQVNLLCAwKTsKKwlzcGluX3VubG9ja19pcnEoJmNoaXAtPnJlZ19sb2NrKTsKKworCXN5bmNocm9uaXplX2lycShjaGlwLT5pcnEpOworCWZsdXNoX3NjaGVkdWxlZF93b3JrKCk7CisJY2hpcC0+aW50ZXJydXB0X21hc2sgPSBzYXZlZF9pbnRlcnJ1cHRfbWFzazsKKworCXBjaV9kaXNhYmxlX2RldmljZShwY2kpOworCXBjaV9zYXZlX3N0YXRlKHBjaSk7CisJcGNpX3NldF9wb3dlcl9zdGF0ZShwY2ksIHBjaV9jaG9vc2Vfc3RhdGUocGNpLCBzdGF0ZSkpOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChveHlnZW5fcGNpX3N1c3BlbmQpOworCitzdGF0aWMgY29uc3QgdTMyIHJlZ2lzdGVyc190b19yZXN0b3JlW09YWUdFTl9JT19TSVpFIC8gMzJdID0geworCTB4ZmZmZmZmZmYsIDB4MDBmZjA3N2YsIDB4MDAwMTFkMDgsIDB4MDA3ZjAwZmYsCisJMHgwMDMwMDAwMCwgMHgwMDAwMGZlNCwgMHgwZmY3MDAxZiwgMHgwMDAwMDAwMAorfTsKK3N0YXRpYyBjb25zdCB1MzIgYWM5N19yZWdpc3RlcnNfdG9fcmVzdG9yZVsyXVsweDQwIC8gMzJdID0geworCXsgMHgxODI4NGZhMiwgMHgwMzA2MDAwMCB9LAorCXsgMHgwMDAwN2ZhNiwgMHgwMDIwMDAwMCB9Cit9OworCitzdGF0aWMgaW5saW5lIGludCBpc19iaXRfc2V0KGNvbnN0IHUzMiAqYml0bWFwLCB1bnNpZ25lZCBpbnQgYml0KQoreworCXJldHVybiBiaXRtYXBbYml0IC8gMzJdICYgKDEgPDwgKGJpdCAmIDMxKSk7Cit9CisKK3N0YXRpYyB2b2lkIG94eWdlbl9yZXN0b3JlX2FjOTcoc3RydWN0IG94eWdlbiAqY2hpcCwgdW5zaWduZWQgaW50IGNvZGVjKQoreworCXVuc2lnbmVkIGludCBpOworCisJb3h5Z2VuX3dyaXRlX2FjOTcoY2hpcCwgY29kZWMsIEFDOTdfUkVTRVQsIDApOworCW1zbGVlcCgxKTsKKwlmb3IgKGkgPSAxOyBpIDwgMHg0MDsgKytpKQorCQlpZiAoaXNfYml0X3NldChhYzk3X3JlZ2lzdGVyc190b19yZXN0b3JlW2NvZGVjXSwgaSkpCisJCQlveHlnZW5fd3JpdGVfYWM5NyhjaGlwLCBjb2RlYywgaSAqIDIsCisJCQkJCSAgY2hpcC0+c2F2ZWRfYWM5N19yZWdpc3RlcnNbY29kZWNdW2ldKTsKK30KKworaW50IG94eWdlbl9wY2lfcmVzdW1lKHN0cnVjdCBwY2lfZGV2ICpwY2kpCit7CisJc3RydWN0IHNuZF9jYXJkICpjYXJkID0gcGNpX2dldF9kcnZkYXRhKHBjaSk7CisJc3RydWN0IG94eWdlbiAqY2hpcCA9IGNhcmQtPnByaXZhdGVfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCXBjaV9zZXRfcG93ZXJfc3RhdGUocGNpLCBQQ0lfRDApOworCXBjaV9yZXN0b3JlX3N0YXRlKHBjaSk7CisJaWYgKHBjaV9lbmFibGVfZGV2aWNlKHBjaSkgPCAwKSB7CisJCXNuZF9wcmludGsoS0VSTl9FUlIgImNhbm5vdCByZWVuYWJsZSBkZXZpY2UiKTsKKwkJc25kX2NhcmRfZGlzY29ubmVjdChjYXJkKTsKKwkJcmV0dXJuIC1FSU87CisJfQorCXBjaV9zZXRfbWFzdGVyKHBjaSk7CisKKwlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fRE1BX1NUQVRVUywgMCk7CisJb3h5Z2VuX3dyaXRlMTYoY2hpcCwgT1hZR0VOX0lOVEVSUlVQVF9NQVNLLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgT1hZR0VOX0lPX1NJWkU7ICsraSkKKwkJaWYgKGlzX2JpdF9zZXQocmVnaXN0ZXJzX3RvX3Jlc3RvcmUsIGkpKQorCQkJb3h5Z2VuX3dyaXRlOChjaGlwLCBpLCBjaGlwLT5zYXZlZF9yZWdpc3RlcnMuXzhbaV0pOworCWlmIChjaGlwLT5oYXNfYWM5N18wKQorCQlveHlnZW5fcmVzdG9yZV9hYzk3KGNoaXAsIDApOworCWlmIChjaGlwLT5oYXNfYWM5N18xKQorCQlveHlnZW5fcmVzdG9yZV9hYzk3KGNoaXAsIDEpOworCisJaWYgKGNoaXAtPm1vZGVsLT5yZXN1bWUpCisJCWNoaXAtPm1vZGVsLT5yZXN1bWUoY2hpcCk7CisKKwlveHlnZW5fd3JpdGUxNihjaGlwLCBPWFlHRU5fSU5URVJSVVBUX01BU0ssIGNoaXAtPmludGVycnVwdF9tYXNrKTsKKworCXNuZF9wb3dlcl9jaGFuZ2Vfc3RhdGUoY2FyZCwgU05EUlZfQ1RMX1BPV0VSX0QwKTsKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wob3h5Z2VuX3BjaV9yZXN1bWUpOworI2VuZGlmIC8qIENPTkZJR19QTSAqLwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fbWl4ZXIuYyBiL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX21peGVyLmMKaW5kZXggY2MwY2RkYS4uNmZhY2FjNSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fbWl4ZXIuYworKysgYi9zb3VuZC9wY2kvb3h5Z2VuL294eWdlbl9taXhlci5jCkBAIC05MzYsMTEgKzkzNiwxMyBAQAogCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKIAkJdGVtcGxhdGUgPSBjb250cm9sc1tpXTsKLQkJZXJyID0gY2hpcC0+bW9kZWwtPmNvbnRyb2xfZmlsdGVyKCZ0ZW1wbGF0ZSk7Ci0JCWlmIChlcnIgPCAwKQotCQkJcmV0dXJuIGVycjsKLQkJaWYgKGVyciA9PSAxKQotCQkJY29udGludWU7CisJCWlmIChjaGlwLT5tb2RlbC0+Y29udHJvbF9maWx0ZXIpIHsKKwkJCWVyciA9IGNoaXAtPm1vZGVsLT5jb250cm9sX2ZpbHRlcigmdGVtcGxhdGUpOworCQkJaWYgKGVyciA8IDApCisJCQkJcmV0dXJuIGVycjsKKwkJCWlmIChlcnIgPT0gMSkKKwkJCQljb250aW51ZTsKKwkJfQogCQlpZiAoIXN0cmNtcCh0ZW1wbGF0ZS5uYW1lLCAiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIpICYmCiAJCSAgICBjaGlwLT5tb2RlbC0+ZGFjX3RsdikgewogCQkJdGVtcGxhdGUudGx2LnAgPSBjaGlwLT5tb2RlbC0+ZGFjX3RsdjsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9veHlnZW4vb3h5Z2VuX3BjbS5jIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKaW5kZXggYjE3YzQwNS4uYzRhZDY1YSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKKysrIGIvc291bmQvcGNpL294eWdlbi9veHlnZW5fcGNtLmMKQEAgLTI0LDYgKzI0LDE2IEBACiAjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgogI2luY2x1ZGUgIm94eWdlbi5oIgogCisvKiBtb3N0IERNQSBjaGFubmVscyBoYXZlIGEgMTYtYml0IGNvdW50ZXIgZm9yIDMyLWJpdCB3b3JkcyAqLworI2RlZmluZSBCVUZGRVJfQllURVNfTUFYCQkoKDEgPDwgMTYpICogNCkKKy8qIHRoZSBtdWx0aWNoYW5uZWwgRE1BIGNoYW5uZWwgaGFzIGEgMjQtYml0IGNvdW50ZXIgKi8KKyNkZWZpbmUgQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNICSgoMSA8PCAyNCkgKiA0KQorCisjZGVmaW5lIFBFUklPRF9CWVRFU19NSU4JCTY0CisKKyNkZWZpbmUgREVGQVVMVF9CVUZGRVJfQllURVMJCShCVUZGRVJfQllURVNfTUFYIC8gMikKKyNkZWZpbmUgREVGQVVMVF9CVUZGRVJfQllURVNfTVVMVElDSAkoMTAyNCAqIDEwMjQpCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBveHlnZW5fc3RlcmVvX2hhcmR3YXJlID0gewogCS5pbmZvID0gU05EUlZfUENNX0lORk9fTU1BUCB8CiAJCVNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfApAQCAtNDQsMTEgKzU0LDExIEBACiAJLnJhdGVfbWF4ID0gMTkyMDAwLAogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSAyLAotCS5idWZmZXJfYnl0ZXNfbWF4ID0gMjU2ICogMTAyNCwKLQkucGVyaW9kX2J5dGVzX21pbiA9IDEyOCwKLQkucGVyaW9kX2J5dGVzX21heCA9IDEyOCAqIDEwMjQsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSBCVUZGRVJfQllURVNfTUFYLAorCS5wZXJpb2RfYnl0ZXNfbWluID0gUEVSSU9EX0JZVEVTX01JTiwKKwkucGVyaW9kX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVggLyAyLAogCS5wZXJpb2RzX21pbiA9IDIsCi0JLnBlcmlvZHNfbWF4ID0gMjA0OCwKKwkucGVyaW9kc19tYXggPSBCVUZGRVJfQllURVNfTUFYIC8gUEVSSU9EX0JZVEVTX01JTiwKIH07CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgb3h5Z2VuX211bHRpY2hhbm5lbF9oYXJkd2FyZSA9IHsKIAkuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfApAQCAtNzAsMTEgKzgwLDExIEBACiAJLnJhdGVfbWF4ID0gMTkyMDAwLAogCS5jaGFubmVsc19taW4gPSAyLAogCS5jaGFubmVsc19tYXggPSA4LAotCS5idWZmZXJfYnl0ZXNfbWF4ID0gMjA0OCAqIDEwMjQsCi0JLnBlcmlvZF9ieXRlc19taW4gPSAxMjgsCi0JLnBlcmlvZF9ieXRlc19tYXggPSAyNTYgKiAxMDI0LAorCS5idWZmZXJfYnl0ZXNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWF9NVUxUSUNILAorCS5wZXJpb2RfYnl0ZXNfbWluID0gUEVSSU9EX0JZVEVTX01JTiwKKwkucGVyaW9kX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVhfTVVMVElDSCAvIDIsCiAJLnBlcmlvZHNfbWluID0gMiwKLQkucGVyaW9kc19tYXggPSAxNjM4NCwKKwkucGVyaW9kc19tYXggPSBCVUZGRVJfQllURVNfTUFYX01VTFRJQ0ggLyBQRVJJT0RfQllURVNfTUlOLAogfTsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBveHlnZW5fYWM5N19oYXJkd2FyZSA9IHsKIAkuaW5mbyA9IFNORFJWX1BDTV9JTkZPX01NQVAgfApAQCAtODgsMTEgKzk4LDExIEBACiAJLnJhdGVfbWF4ID0gNDgwMDAsCiAJLmNoYW5uZWxzX21pbiA9IDIsCiAJLmNoYW5uZWxzX21heCA9IDIsCi0JLmJ1ZmZlcl9ieXRlc19tYXggPSAyNTYgKiAxMDI0LAotCS5wZXJpb2RfYnl0ZXNfbWluID0gMTI4LAotCS5wZXJpb2RfYnl0ZXNfbWF4ID0gMTI4ICogMTAyNCwKKwkuYnVmZmVyX2J5dGVzX21heCA9IEJVRkZFUl9CWVRFU19NQVgsCisJLnBlcmlvZF9ieXRlc19taW4gPSBQRVJJT0RfQllURVNfTUlOLAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gQlVGRkVSX0JZVEVTX01BWCAvIDIsCiAJLnBlcmlvZHNfbWluID0gMiwKLQkucGVyaW9kc19tYXggPSAyMDQ4LAorCS5wZXJpb2RzX21heCA9IEJVRkZFUl9CWVRFU19NQVggLyBQRVJJT0RfQllURVNfTUlOLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNtX2hhcmR3YXJlICpjb25zdCBveHlnZW5faGFyZHdhcmVbUENNX0NPVU5UXSA9IHsKQEAgLTE1NSw2ICsxNjUsMTIgQEAKIAkJaWYgKGVyciA8IDApCiAJCQlyZXR1cm4gZXJyOwogCX0KKwlpZiAoY2hhbm5lbCA9PSBQQ01fTVVMVElDSCkgeworCQllcnIgPSBzbmRfcGNtX2h3X2NvbnN0cmFpbnRfbWlubWF4CisJCQkocnVudGltZSwgU05EUlZfUENNX0hXX1BBUkFNX1BFUklPRF9USU1FLCAwLCA4MTkyMDAwKTsKKwkJaWYgKGVyciA8IDApCisJCQlyZXR1cm4gZXJyOworCX0KIAlzbmRfcGNtX3NldF9zeW5jKHN1YnN0cmVhbSk7CiAJY2hpcC0+c3RyZWFtc1tjaGFubmVsXSA9IHN1YnN0cmVhbTsKIApAQCAtNTE3LDYgKzUzMyw3IEBACiAJc3dpdGNoIChjbWQpIHsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CiAJCXBhdXNpbmcgPSAwOwogCQlicmVhazsKIAljYXNlIFNORFJWX1BDTV9UUklHR0VSX1BBVVNFX1BVU0g6CkBAIC02NjMsMTIgKzY4MCwxNCBAQAogCQkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXMocGNtLT5zdHJlYW1zW1NORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0tdLnN1YnN0cmVhbSwKIAkJCQkJCSAgICAgIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDUxMiAqIDEwMjQsIDIwNDggKiAxMDI0KTsKKwkJCQkJCSAgICAgIERFRkFVTFRfQlVGRkVSX0JZVEVTX01VTFRJQ0gsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYX01VTFRJQ0gpOwogCQlpZiAoaW5zKQogCQkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXMocGNtLT5zdHJlYW1zW1NORFJWX1BDTV9TVFJFQU1fQ0FQVFVSRV0uc3Vic3RyZWFtLAogCQkJCQkJICAgICAgU05EUlZfRE1BX1RZUEVfREVWLAogCQkJCQkJICAgICAgc25kX2RtYV9wY2lfZGF0YShjaGlwLT5wY2kpLAotCQkJCQkJICAgICAgMTI4ICogMTAyNCwgMjU2ICogMTAyNCk7CisJCQkJCQkgICAgICBERUZBVUxUX0JVRkZFUl9CWVRFUywKKwkJCQkJCSAgICAgIEJVRkZFUl9CWVRFU19NQVgpOwogCX0KIAogCW91dHMgPSAhIShjaGlwLT5tb2RlbC0+cGNtX2Rldl9jZmcgJiBQTEFZQkFDS18xX1RPX1NQRElGKTsKQEAgLTY4OCw3ICs3MDcsOCBAQAogCQlzdHJjcHkocGNtLT5uYW1lLCAiRGlnaXRhbCIpOwogCQlzbmRfcGNtX2xpYl9wcmVhbGxvY2F0ZV9wYWdlc19mb3JfYWxsKHBjbSwgU05EUlZfRE1BX1RZUEVfREVWLAogCQkJCQkJICAgICAgc25kX2RtYV9wY2lfZGF0YShjaGlwLT5wY2kpLAotCQkJCQkJICAgICAgMTI4ICogMTAyNCwgMjU2ICogMTAyNCk7CisJCQkJCQkgICAgICBERUZBVUxUX0JVRkZFUl9CWVRFUywKKwkJCQkJCSAgICAgIEJVRkZFUl9CWVRFU19NQVgpOwogCX0KIAogCWlmIChjaGlwLT5oYXNfYWM5N18xKSB7CkBAIC03MTgsNyArNzM4LDggQEAKIAkJc3RyY3B5KHBjbS0+bmFtZSwgb3V0cyA/ICJGcm9udCBQYW5lbCIgOiAiQW5hbG9nIDIiKTsKIAkJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKIAkJCQkJCSAgICAgIHNuZF9kbWFfcGNpX2RhdGEoY2hpcC0+cGNpKSwKLQkJCQkJCSAgICAgIDEyOCAqIDEwMjQsIDI1NiAqIDEwMjQpOworCQkJCQkJICAgICAgREVGQVVMVF9CVUZGRVJfQllURVMsCisJCQkJCQkgICAgICBCVUZGRVJfQllURVNfTUFYKTsKIAl9CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMgYi9zb3VuZC9wY2kvb3h5Z2VuL3ZpcnR1b3NvLmMKaW5kZXggN2Y4NGZhNS4uOWEyYzE2YiAxMDA2NDQKLS0tIGEvc291bmQvcGNpL294eWdlbi92aXJ0dW9zby5jCisrKyBiL3NvdW5kL3BjaS9veHlnZW4vdmlydHVvc28uYwpAQCAtNzksNyArNzksNyBAQAogCiBNT0RVTEVfQVVUSE9SKCJDbGVtZW5zIExhZGlzY2ggPGNsZW1lbnNAbGFkaXNjaC5kZT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQXN1cyBBVngwMCBkcml2ZXIiKTsKLU1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0FzdXMsQVYxMDB9LHtBc3VzLEFWMjAwfX0iKTsKIAogc3RhdGljIGludCBpbmRleFtTTkRSVl9DQVJEU10gPSBTTkRSVl9ERUZBVUxUX0lEWDsKQEAgLTEzMiw2ICsxMzIsOSBAQAogCXU4IGV4dF9wb3dlcl9pbnRfcmVnOwogCXU4IGV4dF9wb3dlcl9iaXQ7CiAJdTggaGFzX3Bvd2VyOworCXU4IHBjbTE3OTZfb3ZlcnNhbXBsaW5nOworCXU4IGNzNDM5OF9mbTsKKwl1OCBjczQzNjJhX2ZtOwogfTsKIAogc3RhdGljIHZvaWQgcGNtMTc5Nl93cml0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwLCB1bnNpZ25lZCBpbnQgY29kZWMsCkBAIC0xNTksNiArMTYyLDE0IEBACiAJb3h5Z2VuX3dyaXRlX2kyYyhjaGlwLCBJMkNfREVWSUNFX0NTNDM2MkEsIHJlZywgdmFsdWUpOwogfQogCitzdGF0aWMgdm9pZCB4b25hcl9lbmFibGVfb3V0cHV0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJbXNsZWVwKGRhdGEtPmFudGlfcG9wX2RlbGF5KTsKKwlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7Cit9CisKIHN0YXRpYyB2b2lkIHhvbmFyX2NvbW1vbl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwpAQCAtMTcwLDMyICsxODEsNTkgQEAKIAkJZGF0YS0+aGFzX3Bvd2VyID0gISEob3h5Z2VuX3JlYWQ4KGNoaXAsIGRhdGEtPmV4dF9wb3dlcl9yZWcpCiAJCQkJICAgICAmIGRhdGEtPmV4dF9wb3dlcl9iaXQpOwogCX0KLQlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLCBHUElPX0NTNTN4MV9NX01BU0spOworCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0NPTlRST0wsCisJCQkgIEdQSU9fQ1M1M3gxX01fTUFTSyB8IGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKIAlveHlnZW5fd3JpdGUxNl9tYXNrZWQoY2hpcCwgT1hZR0VOX0dQSU9fREFUQSwKIAkJCSAgICAgIEdQSU9fQ1M1M3gxX01fU0lOR0xFLCBHUElPX0NTNTN4MV9NX01BU0spOwogCW94eWdlbl9hYzk3X3NldF9iaXRzKGNoaXAsIDAsIENNOTc4MF9KQUNLLCBDTTk3ODBfRk1JQzJNSUMpOwotCW1zbGVlcChkYXRhLT5hbnRpX3BvcF9kZWxheSk7Ci0Jb3h5Z2VuX3NldF9iaXRzMTYoY2hpcCwgT1hZR0VOX0dQSU9fQ09OVFJPTCwgZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQpOwotCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsIGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKKwl4b25hcl9lbmFibGVfb3V0cHV0KGNoaXApOworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfcGNtMTc5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwl1bnNpZ25lZCBpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKKwkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNiwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE3LCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOworCX0KK30KKworc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXVuc2lnbmVkIGludCBpOworCXU4IHZhbHVlOworCisJdmFsdWUgPSBQQ00xNzk2X0RNRl9ESVNBQkxFRCB8IFBDTTE3OTZfRk1UXzI0X0xKVVNUIHwgUENNMTc5Nl9BVExEOworCWlmIChjaGlwLT5kYWNfbXV0ZSkKKwkJdmFsdWUgfD0gUENNMTc5Nl9NVVRFOworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTgsIHZhbHVlKTsKK30KKworc3RhdGljIHZvaWQgcGNtMTc5Nl9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCXVuc2lnbmVkIGludCBpOworCisJZm9yIChpID0gMDsgaSA8IDQ7ICsraSkgeworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE5LCBQQ00xNzk2X0ZMVF9TSEFSUCB8IFBDTTE3OTZfQVRTXzEpOworCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIwLCBkYXRhLT5wY20xNzk2X292ZXJzYW1wbGluZyk7CisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjEsIDApOworCX0KKwl1cGRhdGVfcGNtMTc5Nl9tdXRlKGNoaXApOyAvKiBzZXQgQVRMRCBiZWZvcmUgQVRML0FUUiAqLworCXVwZGF0ZV9wY20xNzk2X3ZvbHVtZShjaGlwKTsKIH0KIAogc3RhdGljIHZvaWQgeG9uYXJfZDJfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQogewogCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKLQl1bnNpZ25lZCBpbnQgaTsKIAogCWRhdGEtPmFudGlfcG9wX2RlbGF5ID0gMzAwOwogCWRhdGEtPm91dHB1dF9lbmFibGVfYml0ID0gR1BJT19EMl9PVVRQVVRfRU5BQkxFOworCWRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nID0gUENNMTc5Nl9PU182NDsKIAotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxOCwgUENNMTc5Nl9NVVRFIHwgUENNMTc5Nl9ETUZfRElTQUJMRUQgfAotCQkJICAgICAgUENNMTc5Nl9GTVRfMjRfTEpVU1QgfCBQQ00xNzk2X0FUTEQpOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE5LCBQQ00xNzk2X0ZMVF9TSEFSUCB8IFBDTTE3OTZfQVRTXzEpOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDIwLCBQQ00xNzk2X09TXzY0KTsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMSwgMCk7Ci0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTYsIDB4MGYpOyAvKiBzZXQgQVRML0FUUiBhZnRlciBBVExEICovCi0JCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMTcsIDB4MGYpOwotCX0KKwlwY20xNzk2X2luaXQoY2hpcCk7CiAKIAlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLCBHUElPX0QyX0FMVCk7CiAJb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBHUElPX0QyX0FMVCk7CkBAIC0yMTcsMTUxICsyNTUsNiBAQAogCXhvbmFyX2QyX2luaXQoY2hpcCk7CiB9CiAKLXN0YXRpYyB2b2lkIHhvbmFyX2R4X2luaXQoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7Ci0KLQlkYXRhLT5hbnRpX3BvcF9kZWxheSA9IDgwMDsKLQlkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCA9IEdQSU9fRFhfT1VUUFVUX0VOQUJMRTsKLQlkYXRhLT5leHRfcG93ZXJfcmVnID0gT1hZR0VOX0dQSV9EQVRBOwotCWRhdGEtPmV4dF9wb3dlcl9pbnRfcmVnID0gT1hZR0VOX0dQSV9JTlRFUlJVUFRfTUFTSzsKLQlkYXRhLT5leHRfcG93ZXJfYml0ID0gR1BJX0RYX0VYVF9QT1dFUjsKLQotCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAotCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKLQkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8Ci0JCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfRkFTVCk7Ci0KLQkvKiBzZXQgQ1BFTiAoY29udHJvbCBwb3J0IG1vZGUpIGFuZCBwb3dlciBkb3duICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDgsIENTNDM5OF9DUEVOIHwgQ1M0Mzk4X1BETik7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX1BETiB8IENTNDM2MkFfQ1BFTik7Ci0JLyogY29uZmlndXJlICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIENTNDM5OF9GTV9TSU5HTEUgfAotCQkgICAgIENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1QpOwotCWNzNDM5OF93cml0ZShjaGlwLCAzLCBDUzQzOThfQVRBUElfQl9SIHwgQ1M0Mzk4X0FUQVBJX0FfTCk7Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDQsIENTNDM5OF9NVVRFUF9MT1cgfCBDUzQzOThfUEFNVVRFKTsKLQljczQzOThfd3JpdGUoY2hpcCwgNSwgMHhmZSk7Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDYsIDB4ZmUpOwotCWNzNDM5OF93cml0ZShjaGlwLCA3LCBDUzQzOThfUk1QX0ROIHwgQ1M0Mzk4X1JNUF9VUCB8Ci0JCSAgICAgQ1M0Mzk4X1pFUk9fQ1JPU1MgfCBDUzQzOThfU09GVF9SQU1QKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDIsIENTNDM2MkFfRElGX0xKVVNUKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDMsIENTNDM2MkFfTVVURUNfNiB8IENTNDM2MkFfQU1VVEUgfAotCQkgICAgICBDUzQzNjJBX1JNUF9VUCB8IENTNDM2MkFfWkVST19DUk9TUyB8IENTNDM2MkFfU09GVF9SQU1QKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDQsIENTNDM2MkFfUk1QX0ROIHwgQ1M0MzYyQV9ERU1fTk9ORSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA1LCAwKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIENTNDM2MkFfRk1fU0lOR0xFIHwKLQkJICAgICAgQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA3LCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDgsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgQ1M0MzYyQV9GTV9TSU5HTEUgfAotCQkgICAgICBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MGEsIDB4N2YgfCBDUzQzNjJBX01VVEUpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYiwgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBDUzQzNjJBX0ZNX1NJTkdMRSB8Ci0JCSAgICAgIENTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0wpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwZCwgMHg3ZiB8IENTNDM2MkFfTVVURSk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDBlLCAweDdmIHwgQ1M0MzYyQV9NVVRFKTsKLQkvKiBjbGVhciBwb3dlciBkb3duICovCi0JY3M0Mzk4X3dyaXRlKGNoaXAsIDgsIENTNDM5OF9DUEVOKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDEsIENTNDM2MkFfQ1BFTik7Ci0KLQlveHlnZW5fc2V0X2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19DT05UUk9MLAotCQkJICBHUElPX0RYX0ZST05UX1BBTkVMIHwgR1BJT19EWF9JTlBVVF9ST1VURSk7Ci0Jb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAotCQkJICAgIEdQSU9fRFhfRlJPTlRfUEFORUwgfCBHUElPX0RYX0lOUFVUX1JPVVRFKTsKLQotCXhvbmFyX2NvbW1vbl9pbml0KGNoaXApOwotCi0Jc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNDM5OCIpOwotCXNuZF9jb21wb25lbnRfYWRkKGNoaXAtPmNhcmQsICJDUzQzNjJBIik7Ci0Jc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNTM2MSIpOwotfQotCi1zdGF0aWMgdm9pZCB4b25hcl9jbGVhbnVwKHN0cnVjdCBveHlnZW4gKmNoaXApCi17Ci0Jc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwotCi0Jb3h5Z2VuX2NsZWFyX2JpdHMxNihjaGlwLCBPWFlHRU5fR1BJT19EQVRBLCBkYXRhLT5vdXRwdXRfZW5hYmxlX2JpdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHhvbmFyX2R4X2NsZWFudXAoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQl4b25hcl9jbGVhbnVwKGNoaXApOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwMSwgQ1M0MzYyQV9QRE4gfCBDUzQzNjJBX0NQRU4pOwotCW94eWdlbl9jbGVhcl9iaXRzOChjaGlwLCBPWFlHRU5fRlVOQ1RJT04sIE9YWUdFTl9GVU5DVElPTl9SRVNFVF9DT0RFQyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9wY20xNzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAotCQkJICAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQotewotCXVuc2lnbmVkIGludCBpOwotCXU4IHZhbHVlOwotCi0JdmFsdWUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpID49IDk2MDAwID8gUENNMTc5Nl9PU18zMiA6IFBDTTE3OTZfT1NfNjQ7Ci0JZm9yIChpID0gMDsgaSA8IDQ7ICsraSkKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAyMCwgdmFsdWUpOwotfQotCi1zdGF0aWMgdm9pZCB1cGRhdGVfcGNtMTc5Nl92b2x1bWUoc3RydWN0IG94eWdlbiAqY2hpcCkKLXsKLQl1bnNpZ25lZCBpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpIHsKLQkJcGNtMTc5Nl93cml0ZShjaGlwLCBpLCAxNiwgY2hpcC0+ZGFjX3ZvbHVtZVtpICogMl0pOwotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE3LCBjaGlwLT5kYWNfdm9sdW1lW2kgKiAyICsgMV0pOwotCX0KLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlX3BjbTE3OTZfbXV0ZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQotewotCXVuc2lnbmVkIGludCBpOwotCXU4IHZhbHVlOwotCi0JdmFsdWUgPSBQQ00xNzk2X0ZNVF8yNF9MSlVTVCB8IFBDTTE3OTZfQVRMRDsKLQlpZiAoY2hpcC0+ZGFjX211dGUpCi0JCXZhbHVlIHw9IFBDTTE3OTZfTVVURTsKLQlmb3IgKGkgPSAwOyBpIDwgNDsgKytpKQotCQlwY20xNzk2X3dyaXRlKGNoaXAsIGksIDE4LCB2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9jczUzeDFfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKLXsKLQl1bnNpZ25lZCBpbnQgdmFsdWU7Ci0KLQlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSA1NDAwMCkKLQkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX1NJTkdMRTsKLQllbHNlIGlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDEwODAwMCkKLQkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX0RPVUJMRTsKLQllbHNlCi0JCXZhbHVlID0gR1BJT19DUzUzeDFfTV9RVUFEOwotCW94eWdlbl93cml0ZTE2X21hc2tlZChjaGlwLCBPWFlHRU5fR1BJT19EQVRBLAotCQkJICAgICAgdmFsdWUsIEdQSU9fQ1M1M3gxX01fTUFTSyk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9jczQzeHhfcGFyYW1zKHN0cnVjdCBveHlnZW4gKmNoaXAsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKLXsKLQl1OCBmbV9jczQzOTgsIGZtX2NzNDM2MmE7Ci0KLQlmbV9jczQzOTggPSBDUzQzOThfREVNX05PTkUgfCBDUzQzOThfRElGX0xKVVNUOwotCWZtX2NzNDM2MmEgPSBDUzQzNjJBX0FUQVBJX0JfUiB8IENTNDM2MkFfQVRBUElfQV9MOwotCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDUwMDAwKSB7Ci0JCWZtX2NzNDM5OCB8PSBDUzQzOThfRk1fU0lOR0xFOwotCQlmbV9jczQzNjJhIHw9IENTNDM2MkFfRk1fU0lOR0xFOwotCX0gZWxzZSBpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA8PSAxMDAwMDApIHsKLQkJZm1fY3M0Mzk4IHw9IENTNDM5OF9GTV9ET1VCTEU7Ci0JCWZtX2NzNDM2MmEgfD0gQ1M0MzYyQV9GTV9ET1VCTEU7Ci0JfSBlbHNlIHsKLQkJZm1fY3M0Mzk4IHw9IENTNDM5OF9GTV9RVUFEOwotCQlmbV9jczQzNjJhIHw9IENTNDM2MkFfRk1fUVVBRDsKLQl9Ci0JY3M0Mzk4X3dyaXRlKGNoaXAsIDIsIGZtX2NzNDM5OCk7Ci0JY3M0MzYyYV93cml0ZShjaGlwLCAweDA2LCBmbV9jczQzNjJhKTsKLQljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDksIGZtX2NzNDM2MmEpOwotCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwYywgZm1fY3M0MzYyYSk7Ci19Ci0KIHN0YXRpYyB2b2lkIHVwZGF0ZV9jczQzNjJhX3ZvbHVtZXMoc3RydWN0IG94eWdlbiAqY2hpcCkKIHsKIAl1OCBtdXRlOwpAQCAtMzkzLDYgKzI4NiwxNDEgQEAKIAl1cGRhdGVfY3M0MzYyYV92b2x1bWVzKGNoaXApOwogfQogCitzdGF0aWMgdm9pZCBjczQzeHhfaW5pdChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCS8qIHNldCBDUEVOIChjb250cm9sIHBvcnQgbW9kZSkgYW5kIHBvd2VyIGRvd24gKi8KKwljczQzOThfd3JpdGUoY2hpcCwgOCwgQ1M0Mzk4X0NQRU4gfCBDUzQzOThfUEROKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDEsIENTNDM2MkFfUEROIHwgQ1M0MzYyQV9DUEVOKTsKKwkvKiBjb25maWd1cmUgKi8KKwljczQzOThfd3JpdGUoY2hpcCwgMiwgZGF0YS0+Y3M0Mzk4X2ZtKTsKKwljczQzOThfd3JpdGUoY2hpcCwgMywgQ1M0Mzk4X0FUQVBJX0JfUiB8IENTNDM5OF9BVEFQSV9BX0wpOworCWNzNDM5OF93cml0ZShjaGlwLCA3LCBDUzQzOThfUk1QX0ROIHwgQ1M0Mzk4X1JNUF9VUCB8CisJCSAgICAgQ1M0Mzk4X1pFUk9fQ1JPU1MgfCBDUzQzOThfU09GVF9SQU1QKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDIsIENTNDM2MkFfRElGX0xKVVNUKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDMsIENTNDM2MkFfTVVURUNfNiB8IENTNDM2MkFfQU1VVEUgfAorCQkgICAgICBDUzQzNjJBX1JNUF9VUCB8IENTNDM2MkFfWkVST19DUk9TUyB8IENTNDM2MkFfU09GVF9SQU1QKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDQsIENTNDM2MkFfUk1QX0ROIHwgQ1M0MzYyQV9ERU1fTk9ORSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDA1LCAwKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgZGF0YS0+Y3M0MzYyYV9mbSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBkYXRhLT5jczQzNjJhX2ZtKTsKKwl1cGRhdGVfY3M0M3h4X3ZvbHVtZShjaGlwKTsKKwl1cGRhdGVfY3M0M3h4X211dGUoY2hpcCk7CisJLyogY2xlYXIgcG93ZXIgZG93biAqLworCWNzNDM5OF93cml0ZShjaGlwLCA4LCBDUzQzOThfQ1BFTik7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX0NQRU4pOworfQorCitzdGF0aWMgdm9pZCB4b25hcl9keF9pbml0KHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOworCisJZGF0YS0+YW50aV9wb3BfZGVsYXkgPSA4MDA7CisJZGF0YS0+b3V0cHV0X2VuYWJsZV9iaXQgPSBHUElPX0RYX09VVFBVVF9FTkFCTEU7CisJZGF0YS0+ZXh0X3Bvd2VyX3JlZyA9IE9YWUdFTl9HUElfREFUQTsKKwlkYXRhLT5leHRfcG93ZXJfaW50X3JlZyA9IE9YWUdFTl9HUElfSU5URVJSVVBUX01BU0s7CisJZGF0YS0+ZXh0X3Bvd2VyX2JpdCA9IEdQSV9EWF9FWFRfUE9XRVI7CisJZGF0YS0+Y3M0Mzk4X2ZtID0gQ1M0Mzk4X0ZNX1NJTkdMRSB8IENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1Q7CisJZGF0YS0+Y3M0MzYyYV9mbSA9IENTNDM2MkFfRk1fU0lOR0xFIHwKKwkJQ1M0MzYyQV9BVEFQSV9CX1IgfCBDUzQzNjJBX0FUQVBJX0FfTDsKKworCW94eWdlbl93cml0ZTE2KGNoaXAsIE9YWUdFTl8yV0lSRV9CVVNfU1RBVFVTLAorCQkgICAgICAgT1hZR0VOXzJXSVJFX0xFTkdUSF84IHwKKwkJICAgICAgIE9YWUdFTl8yV0lSRV9JTlRFUlJVUFRfTUFTSyB8CisJCSAgICAgICBPWFlHRU5fMldJUkVfU1BFRURfRkFTVCk7CisKKwljczQzeHhfaW5pdChjaGlwKTsKKworCW94eWdlbl9zZXRfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0NPTlRST0wsCisJCQkgIEdQSU9fRFhfRlJPTlRfUEFORUwgfCBHUElPX0RYX0lOUFVUX1JPVVRFKTsKKwlveHlnZW5fY2xlYXJfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsCisJCQkgICAgR1BJT19EWF9GUk9OVF9QQU5FTCB8IEdQSU9fRFhfSU5QVVRfUk9VVEUpOworCisJeG9uYXJfY29tbW9uX2luaXQoY2hpcCk7CisKKwlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M0Mzk4Iik7CisJc25kX2NvbXBvbmVudF9hZGQoY2hpcC0+Y2FyZCwgIkNTNDM2MkEiKTsKKwlzbmRfY29tcG9uZW50X2FkZChjaGlwLT5jYXJkLCAiQ1M1MzYxIik7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2NsZWFudXAoc3RydWN0IG94eWdlbiAqY2hpcCkKK3sKKwlzdHJ1Y3QgeG9uYXJfZGF0YSAqZGF0YSA9IGNoaXAtPm1vZGVsX2RhdGE7CisKKwlveHlnZW5fY2xlYXJfYml0czE2KGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsIGRhdGEtPm91dHB1dF9lbmFibGVfYml0KTsKK30KKworc3RhdGljIHZvaWQgeG9uYXJfZHhfY2xlYW51cChzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCXhvbmFyX2NsZWFudXAoY2hpcCk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDAxLCBDUzQzNjJBX1BETiB8IENTNDM2MkFfQ1BFTik7CisJb3h5Z2VuX2NsZWFyX2JpdHM4KGNoaXAsIE9YWUdFTl9GVU5DVElPTiwgT1hZR0VOX0ZVTkNUSU9OX1JFU0VUX0NPREVDKTsKK30KKworc3RhdGljIHZvaWQgeG9uYXJfZDJfcmVzdW1lKHN0cnVjdCBveHlnZW4gKmNoaXApCit7CisJcGNtMTc5Nl9pbml0KGNoaXApOworCXhvbmFyX2VuYWJsZV9vdXRwdXQoY2hpcCk7Cit9CisKK3N0YXRpYyB2b2lkIHhvbmFyX2R4X3Jlc3VtZShzdHJ1Y3Qgb3h5Z2VuICpjaGlwKQoreworCWNzNDN4eF9pbml0KGNoaXApOworCXhvbmFyX2VuYWJsZV9vdXRwdXQoY2hpcCk7Cit9CisKK3N0YXRpYyB2b2lkIHNldF9wY20xNzk2X3BhcmFtcyhzdHJ1Y3Qgb3h5Z2VuICpjaGlwLAorCQkJICAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKwl1bnNpZ25lZCBpbnQgaTsKKworCWRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nID0KKwkJcGFyYW1zX3JhdGUocGFyYW1zKSA+PSA5NjAwMCA/IFBDTTE3OTZfT1NfMzIgOiBQQ00xNzk2X09TXzY0OworCWZvciAoaSA9IDA7IGkgPCA0OyArK2kpCisJCXBjbTE3OTZfd3JpdGUoY2hpcCwgaSwgMjAsIGRhdGEtPnBjbTE3OTZfb3ZlcnNhbXBsaW5nKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2NzNTN4MV9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXVuc2lnbmVkIGludCB2YWx1ZTsKKworCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDU0MDAwKQorCQl2YWx1ZSA9IEdQSU9fQ1M1M3gxX01fU0lOR0xFOworCWVsc2UgaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gMTA4MDAwKQorCQl2YWx1ZSA9IEdQSU9fQ1M1M3gxX01fRE9VQkxFOworCWVsc2UKKwkJdmFsdWUgPSBHUElPX0NTNTN4MV9NX1FVQUQ7CisJb3h5Z2VuX3dyaXRlMTZfbWFza2VkKGNoaXAsIE9YWUdFTl9HUElPX0RBVEEsCisJCQkgICAgICB2YWx1ZSwgR1BJT19DUzUzeDFfTV9NQVNLKTsKK30KKworc3RhdGljIHZvaWQgc2V0X2NzNDN4eF9wYXJhbXMoc3RydWN0IG94eWdlbiAqY2hpcCwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCB4b25hcl9kYXRhICpkYXRhID0gY2hpcC0+bW9kZWxfZGF0YTsKKworCWRhdGEtPmNzNDM5OF9mbSA9IENTNDM5OF9ERU1fTk9ORSB8IENTNDM5OF9ESUZfTEpVU1Q7CisJZGF0YS0+Y3M0MzYyYV9mbSA9IENTNDM2MkFfQVRBUElfQl9SIHwgQ1M0MzYyQV9BVEFQSV9BX0w7CisJaWYgKHBhcmFtc19yYXRlKHBhcmFtcykgPD0gNTAwMDApIHsKKwkJZGF0YS0+Y3M0Mzk4X2ZtIHw9IENTNDM5OF9GTV9TSU5HTEU7CisJCWRhdGEtPmNzNDM2MmFfZm0gfD0gQ1M0MzYyQV9GTV9TSU5HTEU7CisJfSBlbHNlIGlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDw9IDEwMDAwMCkgeworCQlkYXRhLT5jczQzOThfZm0gfD0gQ1M0Mzk4X0ZNX0RPVUJMRTsKKwkJZGF0YS0+Y3M0MzYyYV9mbSB8PSBDUzQzNjJBX0ZNX0RPVUJMRTsKKwl9IGVsc2UgeworCQlkYXRhLT5jczQzOThfZm0gfD0gQ1M0Mzk4X0ZNX1FVQUQ7CisJCWRhdGEtPmNzNDM2MmFfZm0gfD0gQ1M0MzYyQV9GTV9RVUFEOworCX0KKwljczQzOThfd3JpdGUoY2hpcCwgMiwgZGF0YS0+Y3M0Mzk4X2ZtKTsKKwljczQzNjJhX3dyaXRlKGNoaXAsIDB4MDYsIGRhdGEtPmNzNDM2MmFfZm0pOworCWNzNDM2MmFfd3JpdGUoY2hpcCwgMHgwOSwgZGF0YS0+Y3M0MzYyYV9mbSk7CisJY3M0MzYyYV93cml0ZShjaGlwLCAweDBjLCBkYXRhLT5jczQzNjJhX2ZtKTsKK30KKwogc3RhdGljIHZvaWQgeG9uYXJfZ3Bpb19jaGFuZ2VkKHN0cnVjdCBveHlnZW4gKmNoaXApCiB7CiAJc3RydWN0IHhvbmFyX2RhdGEgKmRhdGEgPSBjaGlwLT5tb2RlbF9kYXRhOwpAQCAtNTM1LDYgKzU2Myw4IEBACiAJCS5jb250cm9sX2ZpbHRlciA9IHhvbmFyX2QyX2NvbnRyb2xfZmlsdGVyLAogCQkubWl4ZXJfaW5pdCA9IHhvbmFyX21peGVyX2luaXQsCiAJCS5jbGVhbnVwID0geG9uYXJfY2xlYW51cCwKKwkJLnN1c3BlbmQgPSB4b25hcl9jbGVhbnVwLAorCQkucmVzdW1lID0geG9uYXJfZDJfcmVzdW1lLAogCQkuc2V0X2RhY19wYXJhbXMgPSBzZXRfcGNtMTc5Nl9wYXJhbXMsCiAJCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9jczUzeDFfcGFyYW1zLAogCQkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfcGNtMTc5Nl92b2x1bWUsCkBAIC01NjMsNiArNTkzLDggQEAKIAkJLmNvbnRyb2xfZmlsdGVyID0geG9uYXJfZDJfY29udHJvbF9maWx0ZXIsCiAJCS5taXhlcl9pbml0ID0geG9uYXJfbWl4ZXJfaW5pdCwKIAkJLmNsZWFudXAgPSB4b25hcl9jbGVhbnVwLAorCQkuc3VzcGVuZCA9IHhvbmFyX2NsZWFudXAsCisJCS5yZXN1bWUgPSB4b25hcl9kMl9yZXN1bWUsCiAJCS5zZXRfZGFjX3BhcmFtcyA9IHNldF9wY20xNzk2X3BhcmFtcywKIAkJLnNldF9hZGNfcGFyYW1zID0gc2V0X2NzNTN4MV9wYXJhbXMsCiAJCS51cGRhdGVfZGFjX3ZvbHVtZSA9IHVwZGF0ZV9wY20xNzk2X3ZvbHVtZSwKQEAgLTU5Miw2ICs2MjQsOCBAQAogCQkuY29udHJvbF9maWx0ZXIgPSB4b25hcl9keF9jb250cm9sX2ZpbHRlciwKIAkJLm1peGVyX2luaXQgPSB4b25hcl9keF9taXhlcl9pbml0LAogCQkuY2xlYW51cCA9IHhvbmFyX2R4X2NsZWFudXAsCisJCS5zdXNwZW5kID0geG9uYXJfZHhfY2xlYW51cCwKKwkJLnJlc3VtZSA9IHhvbmFyX2R4X3Jlc3VtZSwKIAkJLnNldF9kYWNfcGFyYW1zID0gc2V0X2NzNDN4eF9wYXJhbXMsCiAJCS5zZXRfYWRjX3BhcmFtcyA9IHNldF9jczUzeDFfcGFyYW1zLAogCQkudXBkYXRlX2RhY192b2x1bWUgPSB1cGRhdGVfY3M0M3h4X3ZvbHVtZSwKQEAgLTYzNiw2ICs2NzAsMTAgQEAKIAkuaWRfdGFibGUgPSB4b25hcl9pZHMsCiAJLnByb2JlID0geG9uYXJfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKG94eWdlbl9wY2lfcmVtb3ZlKSwKKyNpZmRlZiBDT05GSUdfUE0KKwkuc3VzcGVuZCA9IG94eWdlbl9wY2lfc3VzcGVuZCwKKwkucmVzdW1lID0gb3h5Z2VuX3BjaV9yZXN1bWUsCisjZW5kaWYKIH07CiAKIHN0YXRpYyBpbnQgX19pbml0IGFsc2FfY2FyZF94b25hcl9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHIuYyBiL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCmluZGV4IDdmZGNkYzguLjJjN2UyNTMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hoci5jCkBAIC01MTYsNyArNTE2LDcgQEAKIAlpbnQgY2FwdHVyZV9tYXNrID0gMDsKIAlpbnQgcGxheWJhY2tfbWFzayA9IDA7CiAKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCXN0cnVjdCB0aW1ldmFsIG15X3R2MSwgbXlfdHYyOwogCWRvX2dldHRpbWVvZmRheSgmbXlfdHYxKTsKICNlbmRpZgpAQCAtNjIzLDcgKzYyMyw3IEBACiAKIAltdXRleF91bmxvY2soJm1nci0+c2V0dXBfbXV0ZXgpOwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2Mik7CiAJc25kX3ByaW50ZGQoIioqKlRSSUdHRVIgVEFTS0xFVCoqKiBUSU1FID0gJWxkIChlcnIgPSAleClcbiIsCiAJCSAgICAobG9uZykobXlfdHYyLnR2X3VzZWMgLSBteV90djEudHZfdXNlYyksIGVycik7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfY29yZS5jIGIvc291bmQvcGNpL3BjeGhyL3BjeGhyX2NvcmUuYwppbmRleCA3OGFhODFmLi4wMDBlNmZlIDEwMDY0NAotLS0gYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfY29yZS5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9jb3JlLmMKQEAgLTI2OSw3ICsyNjksNyBAQAogCXVuc2lnbmVkIGludCBjaGlwc2M7CiAJdW5zaWduZWQgY2hhciBkYXRhOwogCXVuc2lnbmVkIGNoYXIgbWFzazsKLQl1bnNpZ25lZCBjaGFyICppbWFnZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZTsKIAogCS8qIHRlc3QgZmlyc3QgeGlsaW54ICovCiAJY2hpcHNjID0gUENYSFJfSU5QTChtZ3IsIFBDWEhSX1BMWF9DSElQU0MpOwpAQCAtMzE2LDcgKzMxNiw3IEBACiAJaW50IGVycjsKIAl1bnNpZ25lZCBpbnQgaTsKIAl1bnNpZ25lZCBpbnQgbGVuOwotCXVuc2lnbmVkIGNoYXIgKmRhdGE7CisJY29uc3QgdW5zaWduZWQgY2hhciAqZGF0YTsKIAl1bnNpZ25lZCBjaGFyIGR1bW15OwogCS8qIGNoZWNrIHRoZSBsZW5ndGggb2YgYm9vdCBpbWFnZSAqLwogCXNuZF9hc3NlcnQoZHNwLT5zaXplID4gMCwgcmV0dXJuIC1FSU5WQUwpOwpAQCAtNDczLDcgKzQ3Myw3IEBACiBbQ01EX0FVRElPX0xFVkVMX0FESlVTVF0gPQkJeyAweGMyMjAwMCwgMCwgUk1IX1NTSVpFX0ZJWEVEIH0sCiB9OwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIHN0YXRpYyBjaGFyKiBjbWRfbmFtZXNbXSA9IHsKIFtDTURfVkVSU0lPTl0gPQkJCQkiQ01EX1ZFUlNJT04iLAogW0NNRF9TVVBQT1JURURdID0JCQkiQ01EX1NVUFBPUlRFRCIsCkBAIC01NDksNyArNTQ5LDcgQEAKIAkJCQl9CiAJCQl9CiAJCX0KLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQlpZiAocm1oLT5jbWRfaWR4IDwgQ01EX0xBU1RfSU5ERVgpCiAJCQlzbmRfcHJpbnRkZCgiICAgIHN0YXRbJWRdPSV4XG4iLCBpLCBkYXRhKTsKICNlbmRpZgpAQCAtNTk3LDcgKzU5Nyw3IEBACiAJCWRhdGEgfD0gMHgwMDgwMDA7CS8qIE1BU0tfTU9SRV9USEFOXzFfV09SRF9DT01NQU5EICovCiAJZWxzZQogCQlkYXRhICY9IDB4ZmY3ZmZmOwkvKiBNQVNLXzFfV09SRF9DT01NQU5EICovCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlpZiAocm1oLT5jbWRfaWR4IDwgQ01EX0xBU1RfSU5ERVgpCiAJCXNuZF9wcmludGRkKCJNU0cgY21kWzBdPSV4ICglcylcbiIsIGRhdGEsIGNtZF9uYW1lc1tybWgtPmNtZF9pZHhdKTsKICNlbmRpZgpAQCAtNjI0LDcgKzYyNCw3IEBACiAJCWZvciAoaT0xOyBpIDwgcm1oLT5jbWRfbGVuOyBpKyspIHsKIAkJCS8qIHNlbmQgb3RoZXIgd29yZHMgKi8KIAkJCWRhdGEgPSBybWgtPmNtZFtpXTsKLSNpZmRlZiBDT05GSUdfU05EX0RFQlVHX0RFVEVDVAorI2lmZGVmIENPTkZJR19TTkRfREVCVUdfVkVSQk9TRQogCQkJaWYgKHJtaC0+Y21kX2lkeCA8IENNRF9MQVNUX0lOREVYKQogCQkJCXNuZF9wcmludGRkKCIgICAgY21kWyVkXT0leFxuIiwgaSwgZGF0YSk7CiAjZW5kaWYKQEAgLTg0Nyw3ICs4NDcsNyBAQAogCWludCBzdGF0ZSwgaSwgZXJyOwogCWludCBhdWRpb19tYXNrOwogCi0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlzdHJ1Y3QgdGltZXZhbCBteV90djEsIG15X3R2MjsKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2MSk7CiAjZW5kaWYKQEAgLTg5NCw3ICs4OTQsNyBAQAogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAl9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlkb19nZXR0aW1lb2ZkYXkoJm15X3R2Mik7CiAJc25kX3ByaW50ZGQoIioqKlNFVCBQSVBFIFNUQVRFKioqIFRJTUUgPSAlbGQgKGVyciA9ICV4KVxuIiwKIAkJICAgIChsb25nKShteV90djIudHZfdXNlYyAtIG15X3R2MS50dl91c2VjKSwgZXJyKTsKQEAgLTk1MSw3ICs5NTEsNyBAQAogCQkJCSAgZW51bSBwY3hocl9hc3luY19lcnJfc3JjIGVycl9zcmMsIGludCBwaXBlLAogCQkJCSAgaW50IGlzX2NhcHR1cmUpCiB7Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlzdGF0aWMgY2hhciogZXJyX3NyY19uYW1lW10gPSB7CiAJCVtQQ1hIUl9FUlJfUElQRV0JPSAiUGlwZSIsCiAJCVtQQ1hIUl9FUlJfU1RSRUFNXQk9ICJTdHJlYW0iLApAQCAtMTE2OSw3ICsxMTY5LDcgQEAKIAkJCQkgICAgbWdyLT5kc3BfdGltZV9sYXN0LCBkc3BfdGltZV9uZXcpOwogCQkJbWdyLT5kc3BfdGltZV9lcnIrKzsKIAkJfQotI2lmZGVmIENPTkZJR19TTkRfREVCVUdfREVURUNUCisjaWZkZWYgQ09ORklHX1NORF9ERUJVR19WRVJCT1NFCiAJCWlmIChkc3BfdGltZV9kaWZmID09IDApCiAJCQlzbmRfcHJpbnRkZCgiRVJST1IgRFNQIFRJTUUgTk8gRElGRiB0aW1lKCVkKVxuIiwgZHNwX3RpbWVfbmV3KTsKIAkJZWxzZSBpZiAoZHNwX3RpbWVfZGlmZiA+PSAoMipQQ1hIUl9HUkFOVUxBUklUWSkpCkBAIC0xMjA4LDcgKzEyMDgsNyBAQAogCQltZ3ItPnNyY19pdF9kc3AgPSByZWc7CiAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJm1nci0+bXNnX3Rhc2txKTsKIAl9Ci0jaWZkZWYgQ09ORklHX1NORF9ERUJVR19ERVRFQ1QKKyNpZmRlZiBDT05GSUdfU05EX0RFQlVHX1ZFUkJPU0UKIAlpZiAocmVnICYgUENYSFJfRkFUQUxfRFNQX0VSUikKIAkJc25kX3ByaW50ZGQoIkZBVEFMIERTUCBFUlJPUiA6ICV4XG4iLCByZWcpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvcGN4aHIvcGN4aHJfaHdkZXAuYyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCmluZGV4IGU2YTRiZmIuLmQyZjA0MzIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCisrKyBiL3NvdW5kL3BjaS9wY3hoci9wY3hocl9od2RlcC5jCkBAIC0zOTQsNyArMzk0LDcgQEAKIAkJCSAgICh1bnNpZ25lZCBsb25nKWZ3LnNpemUpOwogCQlyZXR1cm4gLUVOT01FTTsKIAl9Ci0JaWYgKGNvcHlfZnJvbV91c2VyKGZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgeworCWlmIChjb3B5X2Zyb21fdXNlcigodm9pZCAqKWZ3LmRhdGEsIGRzcC0+aW1hZ2UsIGRzcC0+bGVuZ3RoKSkgewogCQl2ZnJlZShmdy5kYXRhKTsKIAkJcmV0dXJuIC1FRkFVTFQ7CiAJfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3JpcHRpZGUvcmlwdGlkZS5jIGIvc291bmQvcGNpL3JpcHRpZGUvcmlwdGlkZS5jCmluZGV4IDk3OWY3ZGEuLjZhMzU5NjIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9yaXB0aWRlL3JpcHRpZGUuYworKysgYi9zb3VuZC9wY2kvcmlwdGlkZS9yaXB0aWRlLmMKQEAgLTY4Miw3ICs2ODIsNyBAQAogCX0sCiB9OwogCi1zdGF0aWMgdTMyIGF0b2godW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgdTMyIGF0b2goY29uc3QgdW5zaWduZWQgY2hhciAqaW4sIHVuc2lnbmVkIGludCBsZW4pCiB7CiAJdTMyIHN1bSA9IDA7CiAJdW5zaWduZWQgaW50IG11bHQgPSAxOwpAQCAtNzAyLDEyICs3MDIsMTIgQEAKIAlyZXR1cm4gc3VtOwogfQogCi1zdGF0aWMgaW50IHNlbmRkYXRhKHN0cnVjdCBjbWRpZiAqY2lmLCB1bnNpZ25lZCBjaGFyICppbiwgdTMyIG9mZnNldCkKK3N0YXRpYyBpbnQgc2VuZGRhdGEoc3RydWN0IGNtZGlmICpjaWYsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCB1MzIgb2Zmc2V0KQogewogCXUzMiBhZGRyOwogCXUzMiBkYXRhOwogCXUzMiBpOwotCXVuc2lnbmVkIGNoYXIgKnA7CisJY29uc3QgdW5zaWduZWQgY2hhciAqcDsKIAogCWkgPSBhdG9oKCZpblsxXSwgMik7CiAJYWRkciA9IG9mZnNldCArIGF0b2goJmluWzNdLCA0KTsKQEAgLTcyNiwxMCArNzI2LDEwIEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbG9hZGZpcm13YXJlKHN0cnVjdCBjbWRpZiAqY2lmLCB1bnNpZ25lZCBjaGFyICppbWcsCitzdGF0aWMgaW50IGxvYWRmaXJtd2FyZShzdHJ1Y3QgY21kaWYgKmNpZiwgY29uc3QgdW5zaWduZWQgY2hhciAqaW1nLAogCQkJdW5zaWduZWQgaW50IHNpemUpCiB7Ci0JdW5zaWduZWQgY2hhciAqaW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqaW47CiAJdTMyIGxhZGRyLCBzYWRkciwgdCwgdmFsOwogCWludCBlcnIgPSAwOwogCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21haW4uYyBiL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCmluZGV4IGJiY2VlMmMuLmE2OWI0MjAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCisrKyBiL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWFpbi5jCkBAIC0xNTkwLDcgKzE1OTAsMTAgQEAKIAlpZiAoc3BkaWZfZmxhZykgewogCQlpZiAodHJpZGVudC0+ZGV2aWNlICE9IFRSSURFTlRfREVWSUNFX0lEX1NJNzAxOCkgewogCQkJb3V0bCh0cmlkZW50LT5zcGRpZl9wY21fYml0cywgVFJJRF9SRUcodHJpZGVudCwgTlhfU1BDU1RBVFVTKSk7Ci0JCQlvdXRiKHRyaWRlbnQtPnNwZGlmX3BjbV9jdHJsLCBUUklEX1JFRyh0cmlkZW50LCBOWF9TUENUUkxfU1BDU08gKyAzKSk7CisJCQl2YWwgPSB0cmlkZW50LT5zcGRpZl9wY21fY3RybDsKKwkJCWlmICghZ28pCisJCQkJdmFsICY9IH4oMHgyOCk7CisJCQlvdXRiKHZhbCwgVFJJRF9SRUcodHJpZGVudCwgTlhfU1BDVFJMX1NQQ1NPICsgMykpOwogCQl9IGVsc2UgewogCQkJb3V0bCh0cmlkZW50LT5zcGRpZl9wY21fYml0cywgVFJJRF9SRUcodHJpZGVudCwgU0lfU1BESUZfQ1MpKTsKIAkJCXZhbCA9IGlubChUUklEX1JFRyh0cmlkZW50LCBTSV9TRVJJQUxfSU5URl9DVFJMKSkgfCBTUERJRl9FTjsKZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWVtb3J5LmMgYi9zb3VuZC9wY2kvdHJpZGVudC90cmlkZW50X21lbW9yeS5jCmluZGV4IGRmOWI0ODcuLjNmZDdmMWIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS90cmlkZW50L3RyaWRlbnRfbWVtb3J5LmMKKysrIGIvc291bmQvcGNpL3RyaWRlbnQvdHJpZGVudF9tZW1vcnkuYwpAQCAtMzEwLDE4MSArMzEwLDMgQEAKIAltdXRleF91bmxvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwogCXJldHVybiAwOwogfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogbWVtb3J5IGFsbG9jYXRpb24gdXNpbmcgbXVsdGlwbGUgcGFnZXMgKGZvciBzeW50aCkKLSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogVW5saWtlIHRoZSBETUEgYWxsb2NhdGlvbiBhYm92ZSwgbm9uLWNvbnRpZ3VvdXMgcGFnZXMgYXJlCi0gKiBhc3NpZ25lZCB0byBUTEIuCi0gKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0vKgotICovCi1zdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsayk7Ci1zdGF0aWMgaW50IHN5bnRoX2ZyZWVfcGFnZXMoc3RydWN0IHNuZF90cmlkZW50ICpodywgc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrKTsKLQotLyoKLSAqIGFsbG9jYXRlIGEgc3ludGggc2FtcGxlIGFyZWEKLSAqLwotc3RydWN0IHNuZF91dGlsX21lbWJsayAqCi1zbmRfdHJpZGVudF9zeW50aF9hbGxvYyhzdHJ1Y3Qgc25kX3RyaWRlbnQgKmh3LCB1bnNpZ25lZCBpbnQgc2l6ZSkKLXsKLQlzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGs7Ci0Jc3RydWN0IHNuZF91dGlsX21lbWhkciAqaGRyID0gaHctPnRsYi5tZW1oZHI7IAotCi0JbXV0ZXhfbG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JYmxrID0gX19zbmRfdXRpbF9tZW1fYWxsb2MoaGRyLCBzaXplKTsKLQlpZiAoYmxrID09IE5VTEwpIHsKLQkJbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCWlmIChzeW50aF9hbGxvY19wYWdlcyhodywgYmxrKSkgewotCQlfX3NuZF91dGlsX21lbV9mcmVlKGhkciwgYmxrKTsKLQkJbXV0ZXhfdW5sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCW11dGV4X3VubG9jaygmaGRyLT5ibG9ja19tdXRleCk7Ci0JcmV0dXJuIGJsazsKLX0KLQotRVhQT1JUX1NZTUJPTChzbmRfdHJpZGVudF9zeW50aF9hbGxvYyk7Ci0KLS8qCi0gKiBmcmVlIGEgc3ludGggc2FtcGxlIGFyZWEKLSAqLwotaW50Ci1zbmRfdHJpZGVudF9zeW50aF9mcmVlKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaykKLXsKLQlzdHJ1Y3Qgc25kX3V0aWxfbWVtaGRyICpoZHIgPSBody0+dGxiLm1lbWhkcjsgCi0KLQltdXRleF9sb2NrKCZoZHItPmJsb2NrX211dGV4KTsKLQlzeW50aF9mcmVlX3BhZ2VzKGh3LCBibGspOwotCSBfX3NuZF91dGlsX21lbV9mcmVlKGhkciwgYmxrKTsKLQltdXRleF91bmxvY2soJmhkci0+YmxvY2tfbXV0ZXgpOwotCXJldHVybiAwOwotfQotCi1FWFBPUlRfU1lNQk9MKHNuZF90cmlkZW50X3N5bnRoX2ZyZWUpOwotCi0vKgotICogcmVzZXQgVExCIGVudHJ5IGFuZCBmcmVlIGtlcm5lbCBwYWdlCi0gKi8KLXN0YXRpYyB2b2lkIGNsZWFyX3RsYihzdHJ1Y3Qgc25kX3RyaWRlbnQgKnRyaWRlbnQsIGludCBwYWdlKQotewotCXZvaWQgKnB0ciA9IHBhZ2VfdG9fcHRyKHRyaWRlbnQsIHBhZ2UpOwotCWRtYV9hZGRyX3QgYWRkciA9IHBhZ2VfdG9fYWRkcih0cmlkZW50LCBwYWdlKTsKLQlzZXRfc2lsZW50X3RsYih0cmlkZW50LCBwYWdlKTsKLQlpZiAocHRyKSB7Ci0JCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciBkbWFiOwotCQlkbWFiLmRldi50eXBlID0gU05EUlZfRE1BX1RZUEVfREVWOwotCQlkbWFiLmRldi5kZXYgPSBzbmRfZG1hX3BjaV9kYXRhKHRyaWRlbnQtPnBjaSk7Ci0JCWRtYWIuYXJlYSA9IHB0cjsKLQkJZG1hYi5hZGRyID0gYWRkcjsKLQkJZG1hYi5ieXRlcyA9IEFMSUdOX1BBR0VfU0laRTsKLQkJc25kX2RtYV9mcmVlX3BhZ2VzKCZkbWFiKTsKLQl9Ci19Ci0KLS8qIGNoZWNrIG5ldyBhbGxvY2F0aW9uIHJhbmdlICovCi1zdGF0aWMgdm9pZCBnZXRfc2luZ2xlX3BhZ2VfcmFuZ2Uoc3RydWN0IHNuZF91dGlsX21lbWhkciAqaGRyLAotCQkJCSAgc3RydWN0IHNuZF91dGlsX21lbWJsayAqYmxrLAotCQkJCSAgaW50ICpmaXJzdF9wYWdlX3JldCwgaW50ICpsYXN0X3BhZ2VfcmV0KQotewotCXN0cnVjdCBsaXN0X2hlYWQgKnA7Ci0Jc3RydWN0IHNuZF91dGlsX21lbWJsayAqcTsKLQlpbnQgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwotCWZpcnN0X3BhZ2UgPSBmaXJzdHBnKGJsayk7Ci0JaWYgKChwID0gYmxrLT5saXN0LnByZXYpICE9ICZoZHItPmJsb2NrKSB7Ci0JCXEgPSBsaXN0X2VudHJ5KHAsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGssIGxpc3QpOwotCQlpZiAobGFzdHBnKHEpID09IGZpcnN0X3BhZ2UpCi0JCQlmaXJzdF9wYWdlKys7ICAvKiBmaXJzdCBwYWdlIHdhcyBhbHJlYWR5IGFsbG9jYXRlZCAqLwotCX0KLQlsYXN0X3BhZ2UgPSBsYXN0cGcoYmxrKTsKLQlpZiAoKHAgPSBibGstPmxpc3QubmV4dCkgIT0gJmhkci0+YmxvY2spIHsKLQkJcSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHNuZF91dGlsX21lbWJsaywgbGlzdCk7Ci0JCWlmIChmaXJzdHBnKHEpID09IGxhc3RfcGFnZSkKLQkJCWxhc3RfcGFnZS0tOyAvKiBsYXN0IHBhZ2Ugd2FzIGFscmVhZHkgYWxsb2NhdGVkICovCi0JfQotCSpmaXJzdF9wYWdlX3JldCA9IGZpcnN0X3BhZ2U7Ci0JKmxhc3RfcGFnZV9yZXQgPSBsYXN0X3BhZ2U7Ci19Ci0KLS8qCi0gKiBhbGxvY2F0ZSBrZXJuZWwgcGFnZXMgYW5kIGFzc2lnbiB0aGVtIHRvIFRMQgotICovCi1zdGF0aWMgaW50IHN5bnRoX2FsbG9jX3BhZ2VzKHN0cnVjdCBzbmRfdHJpZGVudCAqaHcsIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaykKLXsKLQlpbnQgcGFnZSwgZmlyc3RfcGFnZSwgbGFzdF9wYWdlOwotCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciBkbWFiOwotCi0JZmlyc3RwZyhibGspID0gZ2V0X2FsaWduZWRfcGFnZShibGstPm9mZnNldCk7Ci0JbGFzdHBnKGJsaykgPSBnZXRfYWxpZ25lZF9wYWdlKGJsay0+b2Zmc2V0ICsgYmxrLT5zaXplIC0gMSk7Ci0JZ2V0X3NpbmdsZV9wYWdlX3JhbmdlKGh3LT50bGIubWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQotCS8qIGFsbG9jYXRlIGEga2VybmVsIHBhZ2UgZm9yIGVhY2ggVHJpZGVudCBwYWdlIC0KLQkgKiBmb3J0dW5hdGVseSBUcmlkZW50IHBhZ2Ugc2l6ZSBhbmQga2VybmVsIFBBR0VfU0laRSBpcyBpZGVudGljYWwhCi0JICovCi0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykgewotCQlpZiAoc25kX2RtYV9hbGxvY19wYWdlcyhTTkRSVl9ETUFfVFlQRV9ERVYsIHNuZF9kbWFfcGNpX2RhdGEoaHctPnBjaSksCi0JCQkJCUFMSUdOX1BBR0VfU0laRSwgJmRtYWIpIDwgMCkKLQkJCWdvdG8gX19mYWlsOwotCQlpZiAoISBpc192YWxpZF9wYWdlKGRtYWIuYWRkcikpIHsKLQkJCXNuZF9kbWFfZnJlZV9wYWdlcygmZG1hYik7Ci0JCQlnb3RvIF9fZmFpbDsKLQkJfQotCQlzZXRfdGxiX2J1cyhodywgcGFnZSwgKHVuc2lnbmVkIGxvbmcpZG1hYi5hcmVhLCBkbWFiLmFkZHIpOwotCX0KLQlyZXR1cm4gMDsKLQotX19mYWlsOgotCS8qIHJlbGVhc2UgYWxsb2NhdGVkIHBhZ2VzICovCi0JbGFzdF9wYWdlID0gcGFnZSAtIDE7Ci0JZm9yIChwYWdlID0gZmlyc3RfcGFnZTsgcGFnZSA8PSBsYXN0X3BhZ2U7IHBhZ2UrKykKLQkJY2xlYXJfdGxiKGh3LCBwYWdlKTsKLQotCXJldHVybiAtRU5PTUVNOwotfQotCi0vKgotICogZnJlZSBwYWdlcwotICovCi1zdGF0aWMgaW50IHN5bnRoX2ZyZWVfcGFnZXMoc3RydWN0IHNuZF90cmlkZW50ICp0cmlkZW50LCBzdHJ1Y3Qgc25kX3V0aWxfbWVtYmxrICpibGspCi17Ci0JaW50IHBhZ2UsIGZpcnN0X3BhZ2UsIGxhc3RfcGFnZTsKLQotCWdldF9zaW5nbGVfcGFnZV9yYW5nZSh0cmlkZW50LT50bGIubWVtaGRyLCBibGssICZmaXJzdF9wYWdlLCAmbGFzdF9wYWdlKTsKLQlmb3IgKHBhZ2UgPSBmaXJzdF9wYWdlOyBwYWdlIDw9IGxhc3RfcGFnZTsgcGFnZSsrKQotCQljbGVhcl90bGIodHJpZGVudCwgcGFnZSk7Ci0KLQlyZXR1cm4gMDsKLX0KLQotLyoKLSAqIGNvcHlfZnJvbV91c2VyKGJsayArIG9mZnNldCwgZGF0YSwgc2l6ZSkKLSAqLwotaW50IHNuZF90cmlkZW50X3N5bnRoX2NvcHlfZnJvbV91c2VyKHN0cnVjdCBzbmRfdHJpZGVudCAqdHJpZGVudCwKLQkJCQkgICAgIHN0cnVjdCBzbmRfdXRpbF9tZW1ibGsgKmJsaywKLQkJCQkgICAgIGludCBvZmZzZXQsIGNvbnN0IGNoYXIgX191c2VyICpkYXRhLCBpbnQgc2l6ZSkKLXsKLQlpbnQgcGFnZSwgbmV4dG9mcywgZW5kX29mZnNldCwgdGVtcCwgdGVtcDE7Ci0KLQlvZmZzZXQgKz0gYmxrLT5vZmZzZXQ7Ci0JZW5kX29mZnNldCA9IG9mZnNldCArIHNpemU7Ci0JcGFnZSA9IGdldF9hbGlnbmVkX3BhZ2Uob2Zmc2V0KSArIDE7Ci0JZG8gewotCQluZXh0b2ZzID0gYWxpZ25lZF9wYWdlX29mZnNldChwYWdlKTsKLQkJdGVtcCA9IG5leHRvZnMgLSBvZmZzZXQ7Ci0JCXRlbXAxID0gZW5kX29mZnNldCAtIG9mZnNldDsKLQkJaWYgKHRlbXAxIDwgdGVtcCkKLQkJCXRlbXAgPSB0ZW1wMTsKLQkJaWYgKGNvcHlfZnJvbV91c2VyKG9mZnNldF9wdHIodHJpZGVudCwgb2Zmc2V0KSwgZGF0YSwgdGVtcCkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJb2Zmc2V0ID0gbmV4dG9mczsKLQkJZGF0YSArPSB0ZW1wOwotCQlwYWdlKys7Ci0JfSB3aGlsZSAob2Zmc2V0IDwgZW5kX29mZnNldCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLUVYUE9SVF9TWU1CT0woc25kX3RyaWRlbnRfc3ludGhfY29weV9mcm9tX3VzZXIpOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ZpYTgyeHguYyBiL3NvdW5kL3BjaS92aWE4Mnh4LmMKaW5kZXggYjU4NWNjMy4uNjc4MWJlOSAxMDA2NDQKLS0tIGEvc291bmQvcGNpL3ZpYTgyeHguYworKysgYi9zb3VuZC9wY2kvdmlhODJ4eC5jCkBAIC0xNzU3LDYgKzE3NTcsMTIgQEAKIAkJLnR5cGUgPSBBQzk3X1RVTkVfSFBfT05MWQogCX0sCiAJeworCQkuc3VidmVuZG9yID0gMHgxMDE5LAorCQkuc3ViZGV2aWNlID0gMHgxODQxLAorCQkubmFtZSA9ICJFQ1MgSzdWVEEzIiwKKwkJLnR5cGUgPSBBQzk3X1RVTkVfSFBfT05MWQorCX0sCisJewogCQkuc3VidmVuZG9yID0gMHgxODQ5LAogCQkuc3ViZGV2aWNlID0gMHgzMDU5LAogCQkubmFtZSA9ICJBU1JvY2sgSzdWTTIiLApkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3Z4MjIyL3Z4MjIyX29wcy5jIGIvc291bmQvcGNpL3Z4MjIyL3Z4MjIyX29wcy5jCmluZGV4IGI0YmZjMWEuLjYzMWYzYTYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS92eDIyMi92eDIyMl9vcHMuYworKysgYi9zb3VuZC9wY2kvdngyMjIvdngyMjJfb3BzLmMKQEAgLTM1OSw3ICszNTksNyBAQAogewogCXVuc2lnbmVkIGludCBpOwogCXVuc2lnbmVkIGludCBwb3J0OwotCXVuc2lnbmVkIGNoYXIgKmltYWdlOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmltYWdlOwogCiAJLyogWElMSU5YIHJlc2V0ICh3YWl0IGF0IGxlYXN0IDEgbWlsaXNlY29uZCBiZXR3ZWVuIHJlc2V0IG9uIGFuZCBvZmYpLiAqLwogCXZ4X291dGwoY2hpcCwgQ05UUkwsIFZYX0NOVFJMX1JFR0lTVEVSX1ZBTFVFIHwgVlhfWElMSU5YX1JFU0VUX01BU0spOwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfaW1hZ2UuaCBiL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX2ltYWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMmYyZmYuLjAwMDAwMDAKLS0tIGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfaW1hZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDE1NjUgKzAsMCBAQAotI2lmbmRlZiBfSFdNQ09ERV8KLSNkZWZpbmUgX0hXTUNPREVfCi0KLXN0YXRpYyB1MzIgRHNwSW5zdFtZRFNYR19EU1BMRU5HVEggLyA0XSA9IHsKLQkweDAwMDAwMDgxLCAweDAwMDAwMWE0LCAweDAwMDAwMDBhLCAweDAwMDAwMDJmLAotCTB4MDAwODAyNTMsIDB4MDE4MDAzMTcsIDB4MDAwMDQwN2IsIDB4MDAwMDg0M2YsCi0JMHgwMDAxNDgzYywgMHgwMDAxOTQzYywgMHgwMDA1ZDgzYywgMHgwMDAwMWMzYywKLQkweDAwMDBjMDdiLCAweDAwMDUwYzNmLCAweDAxMjE1MDNjLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsCi0JMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKLQkweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAKLX07Ci0KLXN0YXRpYyB1MzIgQ250cmxJbnN0W1lEU1hHX0NUUkxMRU5HVEggLyA0XSA9IHsKLQkweDAwMDAwNywgMHgyNDAwMDcsIDB4MEMwMDA3LCAweDFDMDAwNywKLQkweDA2MDAwNywgMHg3MDAwMDIsIDB4MDAwMDIwLCAweDAzMDA0MCwKLQkweDAwNzEwNCwgMHgwMDQyODYsIDB4MDMwMDQwLCAweDAwMEYwRCwKLQkweDAwMDgxMCwgMHgyMDA0M0EsIDB4MDAwMjgyLCAweDAwMDIwRCwKLQkweDAwMDgxMCwgMHgyMDA0M0EsIDB4MDAxMjgyLCAweDIwMEU4MiwKLQkweDAwMUE4MiwgMHgwMzJEMEQsIDB4MDAwODEwLCAweDEwMDQzQSwKLQkweDAyRDM4RCwgMHgwMDA4MTAsIDB4MTgwNDNBLCAweDAwMDEwRCwKLQkweDAyMDAxNSwgMHgwMDAwRkQsIDB4MDAwMDIwLCAweDAzODg2MCwKLQkweDAzOTA2MCwgMHgwMzgwNjAsIDB4MDM4MDQwLCAweDAzODA0MCwKLQkweDAzODA0MCwgMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MCwKLQkweDAzODA0MCwgMHgwMTgwNDAsIDB4MjAwNDAyLCAweDAwMDg4MiwKLQkweDA4MDAxQSwgMHgwMDA5MDQsIDB4MDE1OTg2LCAweDAwMDAwNywKLQkweDI2MDAwNywgMHgwMDAwMDcsIDB4MDAwMDA3LCAweDAxOEEwNiwKLQkweDAwMDAwNywgMHgwMzBDOEQsIDB4MDAwODEwLCAweDE4MDQzQSwKLQkweDI2MDAwNywgMHgwMDA4N0QsIDB4MDE4MDQyLCAweDAwMTYwQSwKLQkweDA0QTIwNiwgMHgwMDAwMDcsIDB4MDAyMThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyMUMyMDYsIDB4MDAwMDA3LCAweDAwMDdGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDAyOTM4NiwKLQkweDAwMDE5NSwgMHgwOTBEMDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAwMDBGNSwgMHgwMDBCN0QsIDB4MDFGMDYwLCAweDAwMDBGRCwKLQkweDAzMjIwNiwgMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MiwKLQkweDEzODA0QSwgMHgxODAwMEEsIDB4MDAxODIwLCAweDA1OTA2MCwKLQkweDA1ODg2MCwgMHgwMTgwNDAsIDB4MDAwMEZELCAweDAxODA0MiwKLQkweDcwMDAwQSwgMHgwMDAxMTUsIDB4MDcxMTQ0LCAweDAzMjM4NiwKLQkweDAzMDAwMCwgMHgwMDcwMjAsIDB4MDM0QTA2LCAweDAxODA0MCwKLQkweDAwMzQ4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDIxRUEwNiwKLQkweDAwMDAwNywgMHgwMkQzOEQsIDB4MDAwODEwLCAweDE4MDQzQSwKLQkweDAxODIwNiwgMHgwMDAwMDcsIDB4MjQwMDA3LCAweDAwMEY4RCwKLQkweDAwMDgxMCwgMHgwMDE2M0EsIDB4MDAyNDAyLCAweDAwNUMwMiwKLQkweDAwMjhGRCwgMHgwMDAwMjAsIDB4MDE4MDQwLCAweDA4MDAwRCwKLQkweDAwMDgxNSwgMHg1MTA5ODQsIDB4MDAwMDA3LCAweDAwMDA0RCwKLQkweDAwMEU1RCwgMHgwMDBFMDIsIDB4MDA0MThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyQzhBMDYsIDB4MDAwMDA3LCAweDAwMDA4RCwKLQkweDAwMDkyNCwgMHgwMDBGMDIsIDB4MDA0NThELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyQzhBMDYsIDB4MDAwMDA3LCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAxMDE1LCAweDAxMDk4NCwKLQkweDAxODM4NiwgMHgwMDAwMDcsIDB4MDFBQTA2LCAweDAwMDAwNywKLQkweDAwMDhGRCwgMHgwMTgwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwKLQkweDIxODA4NiwgMHgyODAwMDcsIDB4MDAxODEwLCAweDI4MDQzQSwKLQkweDI4MEMwMiwgMHgwMDAwMEQsIDB4MDAwODEwLCAweDI4MTQzQSwKLQkweDA4ODA4RCwgMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwKLQkweDIwMDAwNywgMHgwMDAyMEQsIDB4MTg5OTA0LCAweDAwMDAwNywKLQkweDAwNDAyRCwgMHgwMDAwQkQsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MDU1QTg2LCAweDAwMDAwNywKLQkweDAwMDEwMCwgMHgwMDBBMjAsIDB4MDAwNDdELCAweDAxODA0MCwKLQkweDAxODA0MiwgMHgyMDAwMEEsIDB4MDAzMDE1LCAweDAxMjE0NCwKLQkweDAzNDk4NiwgMHgwMDAwMDcsIDB4MDAyMTA0LCAweDAzNDk4NiwKLQkweDAwMDAwNywgMHgwMDBGOEQsIDB4MDAwODEwLCAweDI4MEMzQSwKLQkweDAyMzk0NCwgMHgwNkM5ODYsIDB4MDAwMDA3LCAweDAwMTgxMCwKLQkweDI4MDQzQSwgMHgwODgxMEQsIDB4MDAwODIwLCAweDAwMDJGRCwKLQkweDAxODA0MCwgMHgyMDAwMDcsIDB4MDAyODEwLCAweDc4MDAzQSwKLQkweDAwNjg4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDI4OEEwNiwKLQkweDAwMDAwNywgMHgwMDQwMEQsIDB4MDAxMDE1LCAweDE4OTkwNCwKLQkweDI5MjkwNCwgMHgzOTM5MDQsIDB4MDAwMDA3LCAweDA2MDIwNiwKLQkweDAwMDAwNywgMHgwMDA0RjUsIDB4MDAwMDdELCAweDAwMDAyMCwKLQkweDAwMDA4RCwgMHgwMTA4NjAsIDB4MDE4MDQwLCAweDAwMDQ3RCwKLQkweDAzODA0MiwgMHgyMTgwNEEsIDB4MTgwMDBBLCAweDAyMTk0NCwKLQkweDIxNTg4NiwgMHgwMDAwMDcsIDB4MDA0MDc1LCAweDcxRjEwNCwKLQkweDAwMDAwNywgMHgwMTAwNDIsIDB4MjgwMDBBLCAweDAwMjkwNCwKLQkweDIxMjA4NiwgMHgwMDAwMDcsIDB4MDAzQzBELCAweDMwQTkwNCwKLQkweDAwMDAwNywgMHgwMDA3N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgwN0RBODYsIDB4MDAwNTdELCAweDAwMjgyMCwKLQkweDAzQjA2MCwgMHgwN0YyMDYsIDB4MDE4MDQwLCAweDAwMzAyMCwKLQkweDAzQTg2MCwgMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MDdGQTg2LCAweDAwMDAwNywKLQkweDAwMDU3RCwgMHgwMTgwNDIsIDB4MjgwNDBBLCAweDAwMEU4RCwKLQkweDAwMDgxMCwgMHgyODBDM0EsIDB4MDAwMDBELCAweDAwMDgxMCwKLQkweDI4MTQzQSwgMHgwOTAwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwKLQkweDAxODA0MCwgMHgyMDAwMDcsIDB4MDAzREZELCAweDAwMDAyMCwKLQkweDAxODA0MCwgMHgwMDEwN0QsIDB4MDA4RDhELCAweDAwMDgxMCwKLQkweDA4MDQzQSwgMHgyODhBMDYsIDB4MDAwMDA3LCAweDAwMDgxNSwKLQkweDA4MDAxQSwgMHgwMTA5ODQsIDB4MDk1MTg2LCAweDAwMTM3RCwKLQkweDIwMDUwMCwgMHgyODBGMjAsIDB4MzM4RjYwLCAweDNCOEY2MCwKLQkweDQzOEY2MCwgMHg0QjhGNjAsIDB4NTM4RjYwLCAweDVCOEY2MCwKLQkweDAzOEE2MCwgMHgwMTgwNDAsIDB4MDA3RkJELCAweDM4M0RDNCwKLQkweDAwMDAwNywgMHgwMDFBN0QsIDB4MDAxMzc1LCAweDAxODA0MiwKLQkweDA5MDA0QSwgMHgxMDAwMEEsIDB4MEI4RDA0LCAweDEzOTUwNCwKLQkweDAwMDAwNywgMHgwMDA4MjAsIDB4MDE5MDYwLCAweDAwMTEwNCwKLQkweDIxMjA4NiwgMHgwMTAwNDAsIDB4MDAxN0ZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjEyMjg2LCAweDAwMDAwNywKLQkweDAwMTk3RCwgMHgwMzgwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwKLQkweDAwMDkyNCwgMHgwMDE2NjQsIDB4MDAxMUZELCAweDAzODA0MiwKLQkweDJCODA0QSwgMHgxOTgwNEEsIDB4MDAwMDhELCAweDIxODk0NCwKLQkweDAwMDAwNywgMHgwMDIyNDQsIDB4MEFFMTg2LCAweDAwMDAwNywKLQkweDAwMUE2NCwgMHgwMDJBMjQsIDB4MDAxOTdELCAweDA4MDEwMiwKLQkweDEwMDEyMiwgMHgwMDA4MjAsIDB4MDM5MDYwLCAweDAxODA0MCwKLQkweDAwM0RGRCwgMHgwMDAwOEQsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMTM3NSwgMHgwMDFBN0QsIDB4MDEwMDQyLCAweDA5ODA0QSwKLQkweDEwMDAwQSwgMHgwMDAyMUQsIDB4MDE4OUU0LCAweDI5OTJFNCwKLQkweDMwOTE0NCwgMHgwMDAwMDcsIDB4MDAwNjBELCAweDAwMEExNSwKLQkweDAwMEMxRCwgMHgwMDEwMjUsIDB4MDBBOUU0LCAweDAxMkJFNCwKLQkweDAwMDQ2NCwgMHgwMUIzRTQsIDB4MDIzMkU0LCAweDAwMDQ2NCwKLQkweDAwMDQ2NCwgMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDQwRCwKLQkweDA4QjFDNCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAwMEJGNSwKLQkweDAzMDA0MCwgMHgwMDE5N0QsIDB4MDM4MDQyLCAweDA5ODA0QSwKLQkweDAwMEEyNCwgMHgwODAwMEEsIDB4MDgwRTY0LCAweDAwMDAwNywKLQkweDEwMDEyMiwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAxMDA0MCwKLQkweDAwNjRBQywgMHgwMDAyN0QsIDB4MDAwMDIwLCAweDAxODA0MCwKLQkweDAwMTA3RCwgMHgwMTgwNDIsIDB4MDAxMUZELCAweDNCODA0QSwKLQkweDA5ODA0QSwgMHgyMDAwMEEsIDB4MDAwMDk1LCAweDFBMTE0NCwKLQkweDAwQTE0NCwgMHgwRDIwODYsIDB4MDAwNDBELCAweDAwQjk4NCwKLQkweDBEMjE4NiwgMHgwMDE4RkQsIDB4MDE4MDQyLCAweDAwMTBGRCwKLQkweDA5ODA0QSwgMHgyODAwMEEsIDB4MDAwMDk1LCAweDAxMDkyNCwKLQkweDAwMkE2NCwgMHgwRDExODYsIDB4MDAwMDA3LCAweDAwMjkwNCwKLQkweDBEMjI4NiwgMHgwMDAwMDcsIDB4MEQyQTA2LCAweDA4MDAwMiwKLQkweDAwMDA4RCwgMHgwMDM4N0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMTI3RCwgMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMzkwNCwKLQkweDBERDE4NiwgMHgwMDA4MEQsIDB4N0ZGRkI1LCAweDAwQjk4NCwKLQkweDBEQTE4NiwgMHgwMDAwMjUsIDB4MEU3QTA2LCAweDAwMDAyRCwKLQkweDAwMDAxNSwgMHgwMDA4MkQsIDB4MDJDNzhELCAweDAwMDgyMCwKLQkweDBFQzIwNiwgMHgwMDAwMEQsIDB4N0Y4MDM1LCAweDAwQjk4NCwKLQkweDBFNzE4NiwgMHg0MDAwMjUsIDB4MDAwMDhELCAweDExMDk0NCwKLQkweDAwMDAwNywgMHgwMDAxOEQsIDB4MTA5NTA0LCAweDAwMDAwNywKLQkweDAwOTE2NCwgMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDEwMDEwMiwgMHgyODAwMDIsIDB4MDJDNjhELCAweDAwMDgyMCwKLQkweDBFQzIwNiwgMHgwMDAxOEQsIDB4MDAwNDJELCAweDAwMDA4RCwKLQkweDEwOTUwNCwgMHgwMDAwMDcsIDB4MDAwMjBELCAweDEwOTE4NCwKLQkweDAwMDAwNywgMHgwMkM3MEQsIDB4MDAwODIwLCAweDAwMDA4RCwKLQkweDAwMzhGRCwgMHgwMTgwNDAsIDB4MDAzQkZELCAweDAwMTAyMCwKLQkweDAzQTg2MCwgMHgwMDA4MTUsIDB4MzEzMTg0LCAweDIxMjE4NCwKLQkweDAwMDAwNywgMHgwM0IwNjAsIDB4MDNBMDYwLCAweDAxODA0MCwKLQkweDAwMjJGRCwgMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDEyNjQsIDB4MTAwMTAyLCAweDAwMDgyMCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAxOTI0LCAweDAwRkI4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDExN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMEEyNCwgMHgyODA1MDIsIDB4MjgwQzAyLCAweDA5ODAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywKLQkweDAwMjJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDA5NSwKLQkweDI4MERDNCwgMHgwMTE5MjQsIDB4MDAxOTdELCAweDAxODA0MiwKLQkweDAwMTFGRCwgMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMDBCNSwKLQkweDExMzE0NCwgMHgwQThEMDQsIDB4MDAwMDA3LCAweDA4MEE0NCwKLQkweDEyOTUwNCwgMHgwMDAwMDcsIDB4MDAyM0ZELCAweDAwMTAyMCwKLQkweDAzODA0MCwgMHgxMDEyNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTBGQTg2LCAweDAwMDAwNywKLQkweDAwM0JGRCwgMHgwMDAxMDAsIDB4MDAwQTEwLCAweDBCODA3QSwKLQkweDEzODA0QSwgMHgwOTA5ODQsIDB4MDAwMDA3LCAweDAwMDA5NSwKLQkweDAxM0QwNCwgMHgxMTgwODYsIDB4MTAwMDBBLCAweDEwMDAwMiwKLQkweDA5MDk4NCwgMHgwMDAwMDcsIDB4MDM4MDQyLCAweDExODA0QSwKLQkweDA5MEQwNCwgMHgwMDAwMDcsIDB4MTAwMDBBLCAweDA5MEQ4NCwKLQkweDAwMDAwNywgMHgwMDI1N0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDAwMDEwRCwgMHgwMDA4MTAsIDB4MjgxNDNBLCAweDAwMTI3RCwKLQkweDAxODA0MiwgMHgyMDAwMEEsIDB4MDAxOTdELCAweDAxODA0MiwKLQkweDAwMTE3RCwgMHgzMTgwNEEsIDB4MTAwMDBBLCAweDAwMzEyNCwKLQkweDAxMjgwRCwgMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwKLQkweDAzODA0MiwgMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwKLQkweDMwMDEwMiwgMHgwMDMxMjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDAwMTIyNCwgMHgyODA1MDIsIDB4MDAxQTRDLCAweDEzMDE4NiwKLQkweDcwMDAwMiwgMHgwMDAwMkQsIDB4MDMwMDAwLCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgxMDAwMEEsIDB4MTMyQTA2LCAweDAwMjEyNCwKLQkweDAwMDBBRCwgMHgxMDAwMDIsIDB4MDAwMTBELCAweDAwMDkyNCwKLQkweDAwNkIyNCwgMHgwMTM2OEQsIDB4MDAzOTdELCAweDAwMDgyMCwKLQkweDA1ODA0MCwgMHgwMzgwNDIsIDB4MDk4NDRBLCAweDAwMDYwNiwKLQkweDA4MDQwQSwgMHgwMDMyNjQsIDB4MDAwMDhELCAweDAwMEEyNCwKLQkweDAwMTAyMCwgMHgwMDIyN0QsIDB4MDE4MDQwLCAweDAxM0MwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MjlEMjA2LCAweDAwMDAwNywKLQkweDAwMjgyMCwgMHgwMDIwN0QsIDB4MDE4MDQwLCAweDAwMTE3RCwKLQkweDAzODA0MiwgMHgxMzgwNEEsIDB4MzM4MDBBLCAweDAwMzg3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDE2M0E4NiwKLQkweDAwMDAwNywgMHgwMDAwOEQsIDB4MDMwOTY0LCAweDAxNDc4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDM4MDEwMiwKLQkweDAwMDQyNCwgMHgwMDA0MjQsIDB4MDAxMjI0LCAweDAwMDJGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDE0QTI4NiwKLQkweDAwMDAwNywgMHgyODA1MDIsIDB4MDAxQTRDLCAweDE2Mzk4NiwKLQkweDAwMDAwNywgMHgwMzIxNjQsIDB4MDA2MzJDLCAweDAwM0RGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwMDk1LCAweDA5MDkwNCwKLQkweDAwMDAwNywgMHgwMDA4MjAsIDB4MDAxQTRDLCAweDE1NjE4NiwKLQkweDAxODA0MCwgMHgwMzAwMDAsIDB4MTU3QTA2LCAweDAwMjEyNCwKLQkweDAwMDEwRCwgMHgwMDA5MjQsIDB4MDA2QjI0LCAweDAxNUI4RCwKLQkweDAwMzk3RCwgMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwKLQkweDA5ODQ0QSwgMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwM0E2NCwKLQkweDAwMDA5NSwgMHgwMDEyMjQsIDB4MDAwMkZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTVEQTg2LCAweDAwMDAwNywKLQkweDAxNjI4RCwgMHgwMDA4MTAsIDB4MDgwNDNBLCAweDI5RDIwNiwKLQkweDAwMDAwNywgMHgxNEQyMDYsIDB4MDAwMDA3LCAweDAwNzAyMCwKLQkweDA4MDEwQSwgMHgxMDAxMkEsIDB4MDAyMEZELCAweDAzODg2MCwKLQkweDAzOTA2MCwgMHgwMTgwNDAsIDB4MDAyMjdELCAweDAxODA0MiwKLQkweDAwM0RGRCwgMHgwODAwMEEsIDB4MzE4NDRBLCAweDAwMDkwNCwKLQkweDE2RDg4NiwgMHgxODAwOEIsIDB4MDAwMDhELCAweDE4OTkwNCwKLQkweDAwMzEyQywgMHgxN0FBMDYsIDB4MDAwMDA3LCAweDAwMzI0QywKLQkweDE3MzM4NiwgMHgwMDAwMDcsIDB4MDAxOTA0LCAweDE3MzA4NiwKLQkweDAwMDAwNywgMHgwMDAwOTUsIDB4MTk5MTQ0LCAweDAwMjIyQywKLQkweDAwMzEyNCwgMHgwMDYzNkMsIDB4MDAwRTNELCAweDAwMTM3NSwKLQkweDAwMEJGRCwgMHgwMTAwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwKLQkweDAzOEFFQywgMHgwMzkzRUMsIDB4MDAyMjRDLCAweDE3QTk4NiwKLQkweDAwMDAwNywgMHgwMDAwOEQsIDB4MTg5OTA0LCAweDAwMjI2QywKLQkweDAwMzIyQywgMHgzMDA1MEEsIDB4MzAxREFCLCAweDAwMjA4MywKLQkweDAwMThGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAxODkyNCwKLQkweDMwMDUwMiwgMHgwMDEwODMsIDB4MDAxODc1LCAweDAxMDA0MiwKLQkweDEwMDAwQSwgMHgwMDAwOEQsIDB4MDEwOTI0LCAweDAwMTM3NSwKLQkweDMzMDU0MiwgMHgzMzBDQ0IsIDB4MzMyQ0NCLCAweDMzMzRDQiwKLQkweDMzM0NDQiwgMHgzMzQ0Q0IsIDB4MzM0Q0NCLCAweDMzNTRDQiwKLQkweDMwNUM4QiwgMHgwMDYwODMsIDB4MDAwMkY1LCAweDAxMDA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MTg3QTg2LCAweDAwMDAwNywKLQkweDAwMUUyRCwgMHgwMDA1RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAyODkyNCwgMHgyODA1MDIsIDB4MDAwNjBELCAweDAwMDgxMCwKLQkweDI4MEMzQSwgMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwKLQkweDBBODA4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDEyNzUsIDB4MDMwMDQyLCAweDIxMDA0QSwKLQkweDAwMDA4RCwgMHgxQTA5NDQsIDB4MDAwMDA3LCAweDAxOTgwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MkIyMjA2LCAweDAwMDAwNywKLQkweDAwMDFGNSwgMHgwMzAwNDIsIDB4MEQwMDRBLCAweDEwMDAwQSwKLQkweDA4OTE0NCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwKLQkweDAwMjVGNSwgMHgwQTMxNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwKLQkweDAzMjg2MCwgMHgwMzAwNDAsIDB4MDAyMTdELCAweDAzODA0MiwKLQkweDBCODA0QSwgMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAzMDA0MCwgMHgwMDAwOEQsIDB4MDAwMTI0LCAweDAwMDEyQywKLQkweDAwMEU2NCwgMHgwMDFBNjQsIDB4MDA2MzZDLCAweDA4MDEwQSwKLQkweDEwMDEyQSwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwKLQkweDAwMjBGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMjI3RCwKLQkweDAxODA0MiwgMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAzMDA0MCwgMHgwMDE5N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMjJGRCwgMHgwMzgwNDIsIDB4MTAwMDBBLCAweDAwMDgyMCwKLQkweDAzMTA2MCwgMHgwMzAwNDAsIDB4MDkwRDA0LCAweDAwMDAwNywKLQkweDAwMDgyMCwgMHgwMzAwNDAsIDB4MDM4MDQyLCAweDBCODA0QSwKLQkweDEwMDAwQSwgMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwKLQkweDAzODA0MiwgMHgxMzgwNEEsIDB4MTk4MDRBLCAweDExMEQwNCwKLQkweDE5OEQwNCwgMHgwMDAwMDcsIDB4MDgwMDBBLCAweDAwMTAyMCwKLQkweDAzMTg2MCwgMHgwMzA4NjAsIDB4MDMwMDQwLCAweDAwMDA4RCwKLQkweDBCMDk0NCwgMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwKLQkweDAwMDVGNSwgMHgwMzAwNDIsIDB4MDgwMDBBLCAweDAwMDgyMCwKLQkweDAxMDA0MCwgMHgwMDAwRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgxQzYwODYsIDB4MDAxRTc1LCAweDAzMDA0MiwKLQkweDAxMDQ0QSwgMHgwMDBDMEEsIDB4MUM3MjA2LCAweDAwMDAwNywKLQkweDAwMDQwMiwgMHgwMDBDMDIsIDB4MDAxNzdELCAweDAwMUFGNSwKLQkweDAxODA0MiwgMHgwMzE0NEEsIDB4MDMxQzRBLCAweDAzMjQ0QSwKLQkweDAzMkM0QSwgMHgwMzM0NEEsIDB4MDMzQzRBLCAweDAzNDQ0QSwKLQkweDAwNEMwQSwgMHgwMDA0M0QsIDB4MDAxM0Y1LCAweDAwMUFGRCwKLQkweDAzMDA0MiwgMHgwQjAwNEEsIDB4MUI4MDRBLCAweDEzODA0QSwKLQkweDIwMDAwQSwgMHgwODkxNDQsIDB4MTlBMTQ0LCAweDAzODlFNCwKLQkweDAzOTlFQywgMHgwMDU1MDIsIDB4MDA1RDBBLCAweDAzMDA0MiwKLQkweDBCMDA0QSwgMHgxQjgwNEEsIDB4MTM4MDRBLCAweDIwMDAwQSwKLQkweDA4OTE0NCwgMHgxOUExNDQsIDB4MDM4OUU0LCAweDAzOTlFQywKLQkweDAwNjUwMiwgMHgwMDZEMEEsIDB4MDMwMDQyLCAweDBCMDA0QSwKLQkweDE5MDA0QSwgMHgyQjgwNEEsIDB4MTM4MDRBLCAweDIxODA0QSwKLQkweDMwMDAwQSwgMHgwODkxNDQsIDB4MTlBMTQ0LCAweDJBQjE0NCwKLQkweDAzODlFNCwgMHgwMzk5RUMsIDB4MDA3NTAyLCAweDAwN0QwQSwKLQkweDAzQTlFNCwgMHgwMDA3MDIsIDB4MDAxMDdELCAweDAwMDQxNSwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDEwOUU0LCAweDAwMEYwMiwKLQkweDAwMkFGNSwgMHgwMDE5RkQsIDB4MDEwMDQyLCAweDA5ODA0QSwKLQkweDEwMDAwQSwgMHgwMDA5MzQsIDB4MDAxNjc0LCAweDAwMjlGNSwKLQkweDAxMDA0MiwgMHgxMDAwMEEsIDB4MDA5MTdDLCAweDAwMjA3NSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDFFRDI4NiwKLQkweDAwMjZGNSwgMHgwMDI3RjUsIDB4MDMwMDQyLCAweDA5MDA0QSwKLQkweDEwMDAwQSwgMHgwMDBBM0MsIDB4MDAxNjdDLCAweDAwMUE3NSwKLQkweDAwMEJGRCwgMHgwMTAwNDIsIDB4NTE4MDRBLCAweDQ4MDAwQSwKLQkweDE2MDAwNywgMHgwMDEwNzUsIDB4MDEwMDQyLCAweDI4MkMwQSwKLQkweDI4MUQxMiwgMHgyODI1MTIsIDB4MDAxRjMyLCAweDFFMDAwNywKLQkweDBFMDAwNywgMHgwMDE5NzUsIDB4MDEwMDQyLCAweDAwMkRGNSwKLQkweDBEMDA0QSwgMHgxMDAwMEEsIDB4MDA5MTQ0LCAweDFGQjI4NiwKLQkweDAxMDA0MiwgMHgyODM0MEEsIDB4MDAwRTVELCAweDAwMDA4RCwKLQkweDAwMDM3NSwgMHgwMDA4MjAsIDB4MDEwMDQwLCAweDA1RDJGNCwKLQkweDU0RDEwNCwgMHgwMDczNUMsIDB4MjA1Mzg2LCAweDAwMDAwNywKLQkweDBDMDAwNywgMHgwODAwMDcsIDB4MEEwMDA3LCAweDAyMDQwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MzMyMjA2LCAweDAwMDAwNywKLQkweDIwNUEwNiwgMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMjI3NSwKLQkweDAxMDA0MiwgMHgyMDAwMEEsIDB4MDAyMTA0LCAweDIxMjA4NiwKLQkweDAwMUUyRCwgMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgyMDkyODYsIDB4MDAwMDA3LCAweDAwMjAxMCwKLQkweDMwMDQzQSwgMHgwMDA1N0QsIDB4MDE4MEMzLCAweDA4MDAwQSwKLQkweDAyODkyNCwgMHgyODA1MDIsIDB4MjgwQzAyLCAweDBBODEwRCwKLQkweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLCAweDIyMDAwNywKLQkweDAwMDRGRCwgMHgwMTgwNDIsIDB4NzAwMDBBLCAweDAzMDAwMCwKLQkweDAwNzAyMCwgMHgwNkZBMDYsIDB4MDE4MDQwLCAweDAyMTgwRCwKLQkweDAwMDgxMCwgMHgwODA0M0EsIDB4MkIyMjA2LCAweDAwMDAwNywKLQkweDAwMDJGRCwgMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDIxOEE4NiwgMHgwMDAwMDcsIDB4MDFGMjA2LCAweDAwMDAwNywKLQkweDAwMDg3NSwgMHgwMDA5RkQsIDB4MDAwMTBELCAweDIyMEEwNiwKLQkweDAwMDI5NSwgMHgwMDBCNzUsIDB4MDAwOTdELCAweDAwMDAwRCwKLQkweDAwMDUxNSwgMHgwMTAwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwKLQkweDI4Nzg4NiwgMHgwMDA2RjUsIDB4MDAxMDIwLCAweDAxMDA0MCwKLQkweDAwMDRGNSwgMHgwMDA4MjAsIDB4MDEwMDQwLCAweDAwMDc3NSwKLQkweDAxMDA0MiwgMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMTEyNCwKLQkweDAwMDkwNCwgMHgyMkJBODYsIDB4MDAwODE1LCAweDA4MDEwMiwKLQkweDEwMTIwNCwgMHgyMkRBMDYsIDB4MDAwNTc1LCAweDA4MTIwNCwKLQkweDAwMDAwNywgMHgxMDAxMDIsIDB4MDAwNTc1LCAweDAwMDQyNSwKLQkweDAyMTEyNCwgMHgxMDAxMDIsIDB4MDAwODIwLCAweDAzMTA2MCwKLQkweDAxMDA0MCwgMHgwMDE5MjQsIDB4Mjg3ODg2LCAweDAwMDA4RCwKLQkweDAwMDQ2NCwgMHgwMDlEMDQsIDB4Mjc4ODg2LCAweDE4MDEwMiwKLQkweDAwMDU3NSwgMHgwMTAwNDIsIDB4MjgwNDBBLCAweDAwMDE4RCwKLQkweDAwMDkyNCwgMHgyODBEMDIsIDB4MDAwMDBELCAweDAwMDkyNCwKLQkweDI4MTUwMiwgMHgxMDAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwKLQkweDAxMDA0MCwgMHgyMDAwMDcsIDB4MDAxMTc1LCAweDAwMDJGRCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDIzQzI4NiwKLQkweDAwMDAwNywgMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzMEI2MCwKLQkweDFCMEI2MCwgMHgwMzBBNjAsIDB4MDEwMDQwLCAweDA1MDA0MiwKLQkweDNEMDA0QSwgMHgzNTAwNEEsIDB4MkQwMDRBLCAweDIwMDAwQSwKLQkweDAwMDZGNSwgMHgwMTAwNDIsIDB4MjgxNDBBLCAweDAwMDRGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwKLQkweDI0Q0E4NiwgMHgwMDQwMTUsIDB4MDAwMDk1LCAweDAxMEQwNCwKLQkweDI0Qjg4NiwgMHgxMDAwMjIsIDB4MTAwMDJBLCAweDI0RTIwNiwKLQkweDAwMDAwNywgMHgzMzMxMDQsIDB4MkFBOTA0LCAweDAwMDAwNywKLQkweDAzMjEyNCwgMHgyODA1MDIsIDB4MDAxMTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDMyMjQsIDB4MDAyOTJDLCAweDAwNjM2QywKLQkweDI1RjM4NiwgMHgwMDAwMDcsIDB4MDJCMTY0LCAweDAwMDQ2NCwKLQkweDAwMDQ2NCwgMHgwMDAwOEQsIDB4MDAwQTY0LCAweDI4MEQwMiwKLQkweDEwMDA4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDAwOEQsIDB4MzhCOTA0LCAweDAwMDAwNywKLQkweDAzMjk2QywgMHgzMDAxMEEsIDB4MDAwMkY1LCAweDAxMDA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MjVCQTg2LCAweDAwMDAwNywKLQkweDAyMzEyQywgMHgyODA1MEEsIDB4MDAwMDhELCAweDAxMDk2QywKLQkweDI4MEQwQSwgMHgxMDAxMEQsIDB4MDAwODIwLCAweDAwMDJGNSwKLQkweDAxMDA0MCwgMHgyMjAwMDcsIDB4MDAxMTI0LCAweDAwMDQyNCwKLQkweDAwMDQyNCwgMHgwMDMyMjQsIDB4MzAwMTAyLCAweDAzMjk0NCwKLQkweDI2N0E4NiwgMHgwMDAwMDcsIDB4MzAwMDAyLCAweDAwMDRGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwKLQkweDI2QzA4NiwgMHgwMDMxMjQsIDB4MDAwNDY0LCAweDMwMDEwMiwKLQkweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDI2Q0E4NiwgMHgwMDAwMDcsIDB4MDAzMTI0LCAweDMwMDUwMiwKLQkweDAwMzkyNCwgMHgzMDA1ODMsIDB4MDAwODgzLCAweDAwMDVGNSwKLQkweDAxMDA0MiwgMHgyODA0MEEsIDB4MDAwMDhELCAweDAwODEyNCwKLQkweDI4MEQwMiwgMHgwMDAwOEQsIDB4MDA4MTI0LCAweDI4MTUwMiwKLQkweDEwMDE4RCwgMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwKLQkweDIyMDAwNywgMHgwMDEwMjUsIDB4MDAwNTc1LCAweDAzMDA0MiwKLQkweDA5MDA0QSwgMHgxMDAwMEEsIDB4MEEwOTA0LCAweDEyMTEwNCwKLQkweDAwMDAwNywgMHgwMDEwMjAsIDB4MDUwODYwLCAweDA1MDA0MCwKLQkweDAwMDZGRCwgMHgwMTgwNDIsIDB4MDkwMDRBLCAweDEwMDAwQSwKLQkweDAwMDBBNSwgMHgwQTA5MDQsIDB4MTIxMTA0LCAweDAwMDAwNywKLQkweDAwMDgyMCwgMHgwMTkwNjAsIDB4MDEwMDQwLCAweDAwMDJGNSwKLQkweDAxMDA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDI4NDI4NiwKLQkweDAwMDAwNywgMHgyMzBBMDYsIDB4MDAwMDA3LCAweDAwMDYwNiwKLQkweDAwMDAwNywgMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMDkwNCwgMHgyODkyODYsIDB4MDAwMDA3LCAweDAwMDEwMCwKLQkweDA4MEIyMCwgMHgxMzhCNjAsIDB4MUI4QjYwLCAweDIzOEI2MCwKLQkweDJCOEI2MCwgMHgzMzhCNjAsIDB4M0I4QjYwLCAweDQzOEI2MCwKLQkweDRCOEI2MCwgMHg1MzhCNjAsIDB4NUI4QjYwLCAweDYzOEI2MCwKLQkweDZCOEI2MCwgMHg3MzhCNjAsIDB4N0I4QjYwLCAweDAzOEY2MCwKLQkweDBCOEY2MCwgMHgxMzhGNjAsIDB4MUI4RjYwLCAweDIzOEY2MCwKLQkweDJCOEY2MCwgMHgzMzhGNjAsIDB4M0I4RjYwLCAweDQzOEY2MCwKLQkweDRCOEY2MCwgMHg1MzhGNjAsIDB4NUI4RjYwLCAweDYzOEY2MCwKLQkweDZCOEY2MCwgMHg3MzhGNjAsIDB4N0I4RjYwLCAweDAzOEE2MCwKLQkweDAwMDYwNiwgMHgwMTgwNDAsIDB4MDAwMDhELCAweDAwMEE2NCwKLQkweDI4MEQwMiwgMHgwMDBBMjQsIDB4MDAwMjdELCAweDAxODA0MiwKLQkweDEwMDAwQSwgMHgwMDEyMjQsIDB4MDAwM0ZELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkE4Mjg2LCAweDAwMDAwNywKLQkweDAwMDE4RCwgMHgwMDBBMjQsIDB4MDAwNDY0LCAweDAwMDQ2NCwKLQkweDA4MDEwMiwgMHgwMDA5MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwKLQkweDEwMDEwMiwgMHgwMjAwMEQsIDB4MDA5MTQ0LCAweDJBRDk4NiwKLQkweDAwMDAwNywgMHgwMDAxRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwKLQkweDAwMEE0NCwgMHgyQUJCODYsIDB4MDE4MDQyLCAweDBBMDAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywKLQkweDAwMDI3RCwgMHgwMDEwMjAsIDB4MDAwNjA2LCAweDAxODA0MCwKLQkweDAwMDJGNSwgMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwKLQkweDJCMkE4NiwgMHgwMDAwMDcsIDB4MDAwMzdELCAweDAxODA0MiwKLQkweDA4MDAwQSwgMHgwMDA5MDQsIDB4MkI1QTg2LCAweDAwMDAwNywKLQkweDAwMDA3NSwgMHgwMDJFN0QsIDB4MDEwMDQyLCAweDBCODA0QSwKLQkweDAwMDAyMCwgMHgwMDA5MDQsIDB4MDAwNjg2LCAweDAxMDA0MCwKLQkweDMxODQ0QSwgMHgzMDA0OEIsIDB4MDAwODgzLCAweDAwMDA4RCwKLQkweDAwMDgxMCwgMHgyODE0M0EsIDB4MDAwMDhELCAweDAwMDgxMCwKLQkweDI4MEMzQSwgMHgwMDA2NzUsIDB4MDEwMDQyLCAweDA4MDAwQSwKLQkweDAwMzgxNSwgMHgwMTA5MjQsIDB4MjgwNTAyLCAweDBCMDAwRCwKLQkweDAwMDgyMCwgMHgwMDAyRjUsIDB4MDEwMDQwLCAweDAwMDYwNiwKLQkweDIyMDAwNywgMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDYwNiwKLQkweDAwMDAwNywgMHgwMDAxMzQsIDB4MDA3RjhELCAweDAwMDkzQywKLQkweDI4MUQxMiwgMHgyODI1MTIsIDB4MDAxRjMyLCAweDBFMDAwNywKLQkweDAwMDEwRCwgMHgwMDAzN0QsIDB4MDAwODIwLCAweDAxODA0MCwKLQkweDA1RDJGNCwgMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMDM3RCwKLQkweDAxODA0MiwgMHgwODAwMEEsIDB4MDAwOTA0LCAweDJEMDI4NiwKLQkweDAwMDAwNywgMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDAwNywKLQkweDAwMDAxMiwgMHgxMDAwMDcsIDB4MzIwMDA3LCAweDYwMDAwNywKLQkweDEwMDA4MCwgMHg0ODAwMUEsIDB4MDA0OTA0LCAweDJENjE4NiwKLQkweDAwMDAwNywgMHgwMDEyMTAsIDB4NTgwMDNBLCAweDAwMDE0NSwKLQkweDVDNUQwNCwgMHgwMDAwMDcsIDB4MDAwMDgwLCAweDQ4MDAxQSwKLQkweDAwNDkwNCwgMHgyREIxODYsIDB4MDAwMDA3LCAweDAwMTIxMCwKLQkweDUwMDAzQSwgMHgwMDU5MDQsIDB4MkUwODg2LCAweDAwMDA0NSwKLQkweDAwMDBDNSwgMHg3RkZGRjUsIDB4N0ZGRjdELCAweDA3RDUyNCwKLQkweDAwNDIyNCwgMHg1MDAxMDIsIDB4MjAwNTAyLCAweDAwMDA4MiwKLQkweDQwMDAxQSwgMHgwMDQxMDQsIDB4MkUzOTg2LCAweDAwMDAwNywKLQkweDAwMzg2NSwgMHg0MDAwMUEsIDB4MDA0MDIwLCAweDAwMTA0RCwKLQkweDA0QzE4NCwgMHgzMDFCODYsIDB4MDAwMDQwLCAweDA0MDAwNywKLQkweDAwMDE2NSwgMHgwMDAxNDUsIDB4MDA0MDIwLCAweDAwMDA0MCwKLQkweDAwMDc2NSwgMHgwODAwODAsIDB4NDAwMDFBLCAweDAwNDEwNCwKLQkweDJFQzk4NiwgMHgwMDAwMDcsIDB4MDAxMjEwLCAweDQwMDAzQSwKLQkweDAwNDEwNCwgMHgyRjIyODYsIDB4MDAwMDRELCAweDAwMDBDRCwKLQkweDAwNDgxMCwgMHgyMDA0M0EsIDB4MDAwODgyLCAweDQwMDAxQSwKLQkweDAwNDEwNCwgMHgyRjMxODYsIDB4MDAwMDA3LCAweDAwNDgyMCwKLQkweDAwNTkwNCwgMHgzMDA4ODYsIDB4MDAwMDQwLCAweDAwMDdFNSwKLQkweDIwMDQ4MCwgMHgyODE2QTAsIDB4MzIxNkUwLCAweDNBMTZFMCwKLQkweDQyMTZFMCwgMHgwMjEyNjAsIDB4MDAwMDQwLCAweDAwMDAzMiwKLQkweDQwMDA3NSwgMHgwMDAwN0QsIDB4MDdENTc0LCAweDIwMDUxMiwKLQkweDAwMDA4MiwgMHg0MDAwMUEsIDB4MDA0MTA0LCAweDJGRTE4NiwKLQkweDAwMDAwNywgMHgwMzcyMDYsIDB4NjQwMDA3LCAweDA2MDAwNywKLQkweDAwMDBFNSwgMHgwMDAwMjAsIDB4MDAwMDQwLCAweDAwMEE2NSwKLQkweDAwMDAyMCwgMHgwMjAwNDAsIDB4MDIwMDQwLCAweDAwMDA0MCwKLQkweDAwMDE2NSwgMHgwMDAwNDIsIDB4NzAwMDBBLCAweDAwNzEwNCwKLQkweDMwQTI4NiwgMHgwMDAwMDcsIDB4MDE4MjA2LCAweDY0MDAwNywKLQkweDA1MDAwMCwgMHgwMDcwMjAsIDB4MDAwMDQwLCAweDAzNzIwNiwKLQkweDY0MDAwNywgMHgwMDAwMDcsIDB4MDAzMDZELCAweDAyODg2MCwKLQkweDAyOTA2MCwgMHgwODAwMEEsIDB4MDI4ODYwLCAweDAwODA0MCwKLQkweDEwMDAxMiwgMHgwMDEwMEQsIDB4MDA5MTg0LCAweDMxNDE4NiwKLQkweDAwMEUwRCwgMHgwMDkxODQsIDB4MzI1MTg2LCAweDAwMDAwNywKLQkweDMwMDAwNywgMHgwMDEwMjAsIDB4MDAzQjZELCAweDAwODA0MCwKLQkweDAwMDA4MCwgMHgwODAwMUEsIDB4MDAwOTA0LCAweDMxNjE4NiwKLQkweDAwMDAwNywgMHgwMDEyMjAsIDB4MDAwREVELCAweDAwODA0MCwKLQkweDAwODA0MiwgMHgxMDAwMEEsIDB4NDAwMDBELCAweDEwOTU0NCwKLQkweDAwMDAwNywgMHgwMDEwMjAsIDB4MDAwREVELCAweDAwODA0MCwKLQkweDAwODA0MiwgMHgyMDA0MEEsIDB4MDAwMDgyLCAweDA4MDAxQSwKLQkweDAwMDkwNCwgMHgzMUYxODYsIDB4MDAwMDA3LCAweDAwM0I2RCwKLQkweDAwODA0MiwgMHgwODAwMEEsIDB4MDAwRTE1LCAweDAxMDk4NCwKLQkweDMyOUI4NiwgMHg2MDAwMDcsIDB4MDgwMDFBLCAweDAwMEMxNSwKLQkweDAxMDk4NCwgMHgzMjgzODYsIDB4MDAwMDIwLCAweDFBMDAwNywKLQkweDAwMDJFRCwgMHgwMDgwNDAsIDB4NjIwMDA3LCAweDAwMzA2RCwKLQkweDAyODA0MiwgMHgwQTgwNEEsIDB4MDAwODIwLCAweDBBODA0QSwKLQkweDAwMDYwNiwgMHgxMDgwNEEsIDB4MDAwMDA3LCAweDI4MjUxMiwKLQkweDAwMUYzMiwgMHgwNUQyRjQsIDB4NTREMTA0LCAweDAwNzM1QywKLQkweDAwMDc4NiwgMHgwMDAwMDcsIDB4MEMwMDA3LCAweDBBMDAwNywKLQkweDFDMDAwNywgMHgwMDM0NjUsIDB4MDIwMDQwLCAweDAwNDgyMCwKLQkweDAyNTA2MCwgMHg0MDAwMEEsIDB4MDI0MDYwLCAweDAwMDA0MCwKLQkweDQ1NDk0NCwgMHgwMDAwMDcsIDB4MDA0MDIwLCAweDAwM0FFNSwKLQkweDAwMDA0MCwgMHgwMDI4RTUsIDB4MDAwMDQyLCAweDQ4MDAwQSwKLQkweDAwNDkwNCwgMHgzODY4ODYsIDB4MDAyQzY1LCAweDAwMDA0MiwKLQkweDQwMDAwQSwgMHgwMDAwRDUsIDB4NDU0MTA0LCAweDAwMDAwNywKLQkweDAwMDY1NSwgMHgwNTQ1MDQsIDB4MzRGMjg2LCAweDAwMDFENSwKLQkweDA1NDUwNCwgMHgzNEYwODYsIDB4MDAyQjY1LCAweDAwMDA0MiwKLQkweDAwM0FFNSwgMHg1MDAwNEEsIDB4NDAwMDBBLCAweDQ1QzNENCwKLQkweDAwMDAwNywgMHg0NTQ1MDQsIDB4MDAwMDA3LCAweDAwMDBDRCwKLQkweDQ0NDk0NCwgMHgwMDAwMDcsIDB4NDU0NTA0LCAweDAwMDAwNywKLQkweDAwMDE0RCwgMHg1NTQ5NDQsIDB4MDAwMDA3LCAweDA0NTE0NCwKLQkweDM0RTk4NiwgMHgwMDJDNjUsIDB4MDAwMDQyLCAweDQ4MDAwQSwKLQkweDRDRDEwNCwgMHgwMDAwMDcsIDB4MDRDMTQ0LCAweDM0RjM4NiwKLQkweDAwMDAwNywgMHgxNjAwMDcsIDB4MDAyQ0U1LCAweDA0MDA0MiwKLQkweDQwMDAwQSwgMHgwMDQwMjAsIDB4MDAwMDQwLCAweDAwMjk2NSwKLQkweDAwMDA0MiwgMHg0MDAwMEEsIDB4MDA0MTA0LCAweDM1NjA4NiwKLQkweDAwMDAwNywgMHgwMDI0MDIsIDB4MzZBMjA2LCAweDAwNUMwMiwKLQkweDAwMjVFNSwgMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDI3NCwKLQkweDAwMkFFNSwgMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDI3NCwKLQkweDUwMDExMiwgMHgwMDI5RTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDIzNCwgMHg0NTQxMDQsIDB4MDAwMDA3LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHgwMDNFRTUsIDB4MDAwMDIwLCAweDAwMDA0MCwKLQkweDAwMkRFNSwgMHg0MDAxNTIsIDB4NTAwMDBBLCAweDA0NTE0NCwKLQkweDM2NEE4NiwgMHgwMDAwQzUsIDB4MDAzRUU1LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHgwMDJCRTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDQwNDI1NCwgMHgwMDAwMDcsIDB4MDAyQUU1LCAweDAwNDAyMCwKLQkweDAwMDA0MCwgMHg1MDAxMzIsIDB4MDQwMTM0LCAweDAwNTY3NCwKLQkweDAwMjlFNSwgMHgwMjAwNDIsIDB4NDIwMDBBLCAweDAwMDA0MiwKLQkweDUwMDAwQSwgMHgwNTQxN0MsIDB4MDAyOEU1LCAweDAwMDA0MiwKLQkweDQ4MDAwQSwgMHgwMDAwQzUsIDB4NENDMTQ0LCAweDM3MTA4NiwKLQkweDAwMjZFNSwgMHgwMDI3RTUsIDB4MDIwMDQyLCAweDQwMDA0QSwKLQkweDUwMDAwQSwgMHgwMDQyM0MsIDB4MDA1NjdDLCAweDAwMjhFNSwKLQkweDAwNDgyMCwgMHgwMDAwNDAsIDB4MjgxRDEyLCAweDI4MjUxMiwKLQkweDAwMUY3MiwgMHgwMDI5NjUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDEwNCwgMHgzN0FBODYsIDB4MEUwMDA3LCAweDE2MDAwNywKLQkweDFFMDAwNywgMHgwMDNFRTUsIDB4MDAwMDQyLCAweDQwMDAwQSwKLQkweDAwNDEwNCwgMHgzN0U4ODYsIDB4MDAyRDY1LCAweDAwMDA0MiwKLQkweDI4MzQwQSwgMHgwMDM0NjUsIDB4MDIwMDQyLCAweDQyMDA0QSwKLQkweDAwNDAyMCwgMHg0QTAwNEEsIDB4NTAwMDRBLCAweDA1RDJGNCwKLQkweDU0RDEwNCwgMHgwMDczNUMsIDB4Mzg1MTg2LCAweDAwMDAwNywKLQkweDAwMDYwNiwgMHgwODAwMDcsIDB4MEMwMDA3LCAweDA4MDAwNywKLQkweDBBMDAwNywgMHgwMDAxRTUsIDB4MDIwMDQ1LCAweDAwNDAyMCwKLQkweDAwMDA2MCwgMHgwMDAzNjUsIDB4MDAwMDQwLCAweDAwMkU2NSwKLQkweDAwMUEyMCwgMHgwQTFBNjAsIDB4MDAwMDQwLCAweDAwMzQ2NSwKLQkweDAyMDA0MiwgMHg0MjAwNEEsIDB4MDA0MDIwLCAweDRBMDA0QSwKLQkweDAwMDYwNiwgMHg1MDAwNEEsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwKLQkweDAwMDAwMCwgMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMAotfTsKLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vICBEUy0xRSBDb250cm9sbGVyIEluc3RydWN0aW9uUkFNIENvZGUKLS8vCTE5OTkvMDYvMjEKLS8vCUJ1ZjQ0MSBzbG90IGlzIEVuYWJsZWQuCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gMDQvMDkgIGNyZWF0Ci0vLyAwNC8xMiAgc3RvcCBuaXNlIGZpeAotLy8gMDYvMjEgIFdvcmtpbmdPZmYgdGltbWluZwotc3RhdGljIHUzMiBDbnRybEluc3QxRVtZRFNYR19DVFJMTEVOR1RIIC8gNF0gPSB7Ci0JMHgwMDAwMDcsIDB4MjQwMDA3LCAweDBDMDAwNywgMHgxQzAwMDcsCi0JMHgwNjAwMDcsIDB4NzAwMDAyLCAweDAwMDAyMCwgMHgwMzAwNDAsCi0JMHgwMDcxMDQsIDB4MDA0Mjg2LCAweDAzMDA0MCwgMHgwMDBGMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMDI4MiwgMHgwMDAyMEQsCi0JMHgwMDA4MTAsIDB4MjAwNDNBLCAweDAwMTI4MiwgMHgyMDBFODIsCi0JMHgwMDgwMEQsIDB4MDAwODEwLCAweDIwMDQzQSwgMHgwMDFBODIsCi0JMHgwMzQ2MEQsIDB4MDAwODEwLCAweDEwMDQzQSwgMHgwMkVDMEQsCi0JMHgwMDA4MTAsIDB4MTgwNDNBLCAweDAwMDEwRCwgMHgwMjAwMTUsCi0JMHgwMDAwRkQsIDB4MDAwMDIwLCAweDAzODg2MCwgMHgwMzkwNjAsCi0JMHgwMzgwNjAsIDB4MDM4MDQwLCAweDAzODA0MCwgMHgwMzgwNDAsCi0JMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MCwgMHgwMzgwNDAsCi0JMHgwMTgwNDAsIDB4MjAwNDAyLCAweDAwMDg4MiwgMHgwODAwMUEsCi0JMHgwMDA5MDQsIDB4MDE3MTg2LCAweDAwMDAwNywgMHgyNjAwMDcsCi0JMHg0MDAwMDcsIDB4MDAwMDA3LCAweDAzMjU4RCwgMHgwMDA4MTAsCi0JMHgxODA0M0EsIDB4MjYwMDA3LCAweDI4NDQwMiwgMHgwMDA4N0QsCi0JMHgwMTgwNDIsIDB4MDAxNjBBLCAweDA1QTIwNiwgMHgwMDAwMDcsCi0JMHg0NDAwMDcsIDB4MDAyMzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyMkZBMDYsIDB4MDAwMDA3LCAweDAwMDdGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDAyQUI4NiwgMHgwMDAxOTUsCi0JMHgwOTBEMDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMDAwRjUsCi0JMHgwMDBCN0QsIDB4MDFGMDYwLCAweDAwMDBGRCwgMHgwMzNBMDYsCi0JMHgwMTgwNDAsIDB4MDAwQTdELCAweDAzODA0MiwgMHgxMzgwNEEsCi0JMHgxODAwMEEsIDB4MDAxODIwLCAweDA1OTA2MCwgMHgwNTg4NjAsCi0JMHgwMTgwNDAsIDB4MDAwMEZELCAweDAxODA0MiwgMHg3MDAwMEEsCi0JMHgwMDAxMTUsIDB4MDcxMTQ0LCAweDAzM0I4NiwgMHgwMzAwMDAsCi0JMHgwMDcwMjAsIDB4MDM2MjA2LCAweDAxODA0MCwgMHgwMDM2MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDIzMjIwNiwgMHgwMDAwMDcsCi0JMHgwMkVDMEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwMTlBMDYsCi0JMHgwMDAwMDcsIDB4MjQwMDA3LCAweDAwMEY4RCwgMHgwMDA4MTAsCi0JMHgwMDE2M0EsIDB4MDAyNDAyLCAweDAwNUMwMiwgMHgwMDI4RkQsCi0JMHgwMDAwMjAsIDB4MDE4MDQwLCAweDA4MDAwRCwgMHgwMDA4MTUsCi0JMHg1MTA5ODQsIDB4MDAwMDA3LCAweDAwMDA0RCwgMHgwMDBFNUQsCi0JMHgwMDBFMDIsIDB4MDA0MzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyRTEyMDYsIDB4MDAwMDA3LCAweDAwMDA4RCwgMHgwMDA5MjQsCi0JMHgwMDBGMDIsIDB4MDA0NzBELCAweDAwMDgxMCwgMHgwODA0M0EsCi0JMHgyRTEyMDYsIDB4MDAwMDA3LCAweDQ4MDQ4MCwgMHgwMDEyMTAsCi0JMHgyODA0M0EsIDB4MDA3NzhELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMDA2OEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgyODQ0MDIsCi0JMHgwMzI1OEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwN0ZGOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyNjAwMDcsCi0JMHgyMDAwMDcsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MDUxMjg2LCAweDAwMDAwNywgMHgyNDAwMDcsCi0JMHgwMkVDMEQsIDB4MDAwODEwLCAweDE4MDQzQSwgMHgwMDM4N0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMTAxNSwgMHgwMTA5ODQsCi0JMHgwMTlCODYsIDB4MDAwMDA3LCAweDAxQjIwNiwgMHgwMDAwMDcsCi0JMHgwMDA4RkQsIDB4MDE4MDQyLCAweDE4MDAwQSwgMHgwMDE5MDQsCi0JMHgyMkI4ODYsIDB4MjgwMDA3LCAweDAwMTgxMCwgMHgyODA0M0EsCi0JMHgyODBDMDIsIDB4MDAwMDBELCAweDAwMDgxMCwgMHgyODE0M0EsCi0JMHgwODgwOEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAwMjBELCAweDE4OTkwNCwgMHgwMDAwMDcsCi0JMHgwMDQwMkQsIDB4MDAwMEJELCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA2NUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDAwQTIwLCAweDAwMDQ3RCwgMHgwMTgwNDAsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAwMzAxNSwgMHgwMTIxNDQsCi0JMHgwMzYxODYsIDB4MDAwMDA3LCAweDAwMjEwNCwgMHgwMzYxODYsCi0JMHgwMDAwMDcsIDB4MDAwRjhELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMjM5NDQsIDB4MDdDOTg2LCAweDAwMDAwNywgMHgwMDE4MTAsCi0JMHgyODA0M0EsIDB4MDg4MTBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwMjgxMCwgMHg3ODAwM0EsCi0JMHgwMDc4OEQsIDB4MDAwODEwLCAweDA4MDQzQSwgMHgyQTEyMDYsCi0JMHgwMDAwMDcsIDB4MDA0MDBELCAweDAwMTAxNSwgMHgxODk5MDQsCi0JMHgyOTI5MDQsIDB4MzkzOTA0LCAweDAwMDAwNywgMHgwNzAyMDYsCi0JMHgwMDAwMDcsIDB4MDAwNEY1LCAweDAwMDA3RCwgMHgwMDAwMjAsCi0JMHgwMDAwOEQsIDB4MDEwODYwLCAweDAxODA0MCwgMHgwMDA0N0QsCi0JMHgwMzgwNDIsIDB4MjE4MDRBLCAweDE4MDAwQSwgMHgwMjE5NDQsCi0JMHgyMjkwODYsIDB4MDAwMDA3LCAweDAwNDA3NSwgMHg3MUYxMDQsCi0JMHgwMDAwMDcsIDB4MDEwMDQyLCAweDI4MDAwQSwgMHgwMDI5MDQsCi0JMHgyMjU4ODYsIDB4MDAwMDA3LCAweDAwM0MwRCwgMHgzMEE5MDQsCi0JMHgwMDAwMDcsIDB4MDAwNzdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MDhEQTg2LCAweDAwMDU3RCwgMHgwMDI4MjAsCi0JMHgwM0IwNjAsIDB4MDhGMjA2LCAweDAxODA0MCwgMHgwMDMwMjAsCi0JMHgwM0E4NjAsIDB4MDE4MDQwLCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDA4RkE4NiwgMHgwMDAwMDcsCi0JMHgwMDA1N0QsIDB4MDE4MDQyLCAweDI4MDQwQSwgMHgwMDBFOEQsCi0JMHgwMDA4MTAsIDB4MjgwQzNBLCAweDAwMDAwRCwgMHgwMDA4MTAsCi0JMHgyODE0M0EsIDB4MDkwMDBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwM0RGRCwgMHgwMDAwMjAsCi0JMHgwMTgwNDAsIDB4MDAxMDdELCAweDAwOUQ4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkExMjA2LCAweDAwMDAwNywgMHgwMDA4MTUsCi0JMHgwODAwMUEsIDB4MDEwOTg0LCAweDBBNTE4NiwgMHgwMDEzN0QsCi0JMHgyMDA1MDAsIDB4MjgwRjIwLCAweDMzOEY2MCwgMHgzQjhGNjAsCi0JMHg0MzhGNjAsIDB4NEI4RjYwLCAweDUzOEY2MCwgMHg1QjhGNjAsCi0JMHgwMzhBNjAsIDB4MDE4MDQwLCAweDAwMTA3RCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwMjE1LCAweDAxMDk4NCwgMHgzQTgxODYsCi0JMHgwMDAwMDcsIDB4MDA3RkJELCAweDM4M0RDNCwgMHgwMDAwMDcsCi0JMHgwMDFBN0QsIDB4MDAxMzc1LCAweDAxODA0MiwgMHgwOTAwNEEsCi0JMHgxMDAwMEEsIDB4MEI4RDA0LCAweDEzOTUwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDE5MDYwLCAweDAwMTEwNCwgMHgyMjU4ODYsCi0JMHgwMTAwNDAsIDB4MDAxN0ZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MjI1QTg2LCAweDAwMDAwNywgMHgwMDE5N0QsCi0JMHgwMzgwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMDA5MjQsCi0JMHgwMDE2NjQsIDB4MDAxMUZELCAweDAzODA0MiwgMHgyQjgwNEEsCi0JMHgxOTgwNEEsIDB4MDAwMDhELCAweDIxODk0NCwgMHgwMDAwMDcsCi0JMHgwMDIyNDQsIDB4MEMxOTg2LCAweDAwMDAwNywgMHgwMDFBNjQsCi0JMHgwMDJBMjQsIDB4MDAxOTdELCAweDA4MDEwMiwgMHgxMDAxMjIsCi0JMHgwMDA4MjAsIDB4MDM5MDYwLCAweDAxODA0MCwgMHgwMDNERkQsCi0JMHgwMDAwOEQsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDEzNzUsCi0JMHgwMDFBN0QsIDB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMDAyMUQsIDB4MDE4OUU0LCAweDI5OTJFNCwgMHgzMDkxNDQsCi0JMHgwMDAwMDcsIDB4MDAwNjBELCAweDAwMEExNSwgMHgwMDBDMUQsCi0JMHgwMDEwMjUsIDB4MDBBOUU0LCAweDAxMkJFNCwgMHgwMDA0NjQsCi0JMHgwMUIzRTQsIDB4MDIzMkU0LCAweDAwMDQ2NCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDQwRCwgMHgwOEIxQzQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAwMEJGNSwgMHgwMzAwNDAsCi0JMHgwMDE5N0QsIDB4MDM4MDQyLCAweDA5ODA0QSwgMHgwMDBBMjQsCi0JMHgwODAwMEEsIDB4MDgwRTY0LCAweDAwMDAwNywgMHgxMDAxMjIsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAxMDA0MCwgMHgwMDY0QUMsCi0JMHgwMDAyN0QsIDB4MDAwMDIwLCAweDAxODA0MCwgMHgwMDEwN0QsCi0JMHgwMTgwNDIsIDB4MDAxMUZELCAweDNCODA0QSwgMHgwOTgwNEEsCi0JMHgyMDAwMEEsIDB4MDAwMDk1LCAweDFBMTE0NCwgMHgwMEExNDQsCi0JMHgwRTU4ODYsIDB4MDAwNDBELCAweDAwQjk4NCwgMHgwRTU5ODYsCi0JMHgwMDE4RkQsIDB4MDE4MDQyLCAweDAwMTBGRCwgMHgwOTgwNEEsCi0JMHgyODAwMEEsIDB4MDAwMDk1LCAweDAxMDkyNCwgMHgwMDJBNjQsCi0JMHgwRTQ5ODYsIDB4MDAwMDA3LCAweDAwMjkwNCwgMHgwRTVBODYsCi0JMHgwMDAwMDcsIDB4MEU2MjA2LCAweDA4MDAwMiwgMHgwMDAwOEQsCi0JMHgwMDM4N0QsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDEyN0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMzkwNCwgMHgwRjA5ODYsCi0JMHgwMDA4MEQsIDB4N0ZGRkI1LCAweDAwQjk4NCwgMHgwRUQ5ODYsCi0JMHgwMDAwMjUsIDB4MEZCMjA2LCAweDAwMDAyRCwgMHgwMDAwMTUsCi0JMHgwMDA4MkQsIDB4MDJFMDBELCAweDAwMDgyMCwgMHgwRkZBMDYsCi0JMHgwMDAwMEQsIDB4N0Y4MDM1LCAweDAwQjk4NCwgMHgwRkE5ODYsCi0JMHg0MDAwMjUsIDB4MDAwMDhELCAweDExMDk0NCwgMHgwMDAwMDcsCi0JMHgwMDAxOEQsIDB4MTA5NTA0LCAweDAwMDAwNywgMHgwMDkxNjQsCi0JMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMDQyNCwgMHgxMDAxMDIsCi0JMHgyODAwMDIsIDB4MDJERjBELCAweDAwMDgyMCwgMHgwRkZBMDYsCi0JMHgwMDAxOEQsIDB4MDAwNDJELCAweDAwMDA4RCwgMHgxMDk1MDQsCi0JMHgwMDAwMDcsIDB4MDAwMjBELCAweDEwOTE4NCwgMHgwMDAwMDcsCi0JMHgwMkRGOEQsIDB4MDAwODIwLCAweDAwMDA4RCwgMHgwMDM4RkQsCi0JMHgwMTgwNDAsIDB4MDAzQkZELCAweDAwMTAyMCwgMHgwM0E4NjAsCi0JMHgwMDA4MTUsIDB4MzEzMTg0LCAweDIxMjE4NCwgMHgwMDAwMDcsCi0JMHgwM0IwNjAsIDB4MDNBMDYwLCAweDAxODA0MCwgMHgwMDIyRkQsCi0JMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDEyNjQsIDB4MTAwMTAyLCAweDAwMDgyMCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAxOTI0LCAweDAxMEYwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDExN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDBBMjQsCi0JMHgyODA1MDIsIDB4MjgwQzAyLCAweDA5ODAwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIwMDAwNywgMHgwMDIyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDA5NSwgMHgyODBEQzQsCi0JMHgwMTE5MjQsIDB4MDAxOTdELCAweDAxODA0MiwgMHgwMDExRkQsCi0JMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMDBCNSwgMHgxMTMxNDQsCi0JMHgwQThEMDQsIDB4MDAwMDA3LCAweDA4MEE0NCwgMHgxMjk1MDQsCi0JMHgwMDAwMDcsIDB4MDAyM0ZELCAweDAwMTAyMCwgMHgwMzgwNDAsCi0JMHgxMDEyNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTIzMjg2LCAweDAwMDAwNywgMHgwMDNCRkQsCi0JMHgwMDAxMDAsIDB4MDAwQTEwLCAweDBCODA3QSwgMHgxMzgwNEEsCi0JMHgwOTA5ODQsIDB4MDAwMDA3LCAweDAwMDA5NSwgMHgwMTNEMDQsCi0JMHgxMkI4ODYsIDB4MTAwMDBBLCAweDEwMDAwMiwgMHgwOTA5ODQsCi0JMHgwMDAwMDcsIDB4MDM4MDQyLCAweDExODA0QSwgMHgwOTBEMDQsCi0JMHgwMDAwMDcsIDB4MTAwMDBBLCAweDA5MEQ4NCwgMHgwMDAwMDcsCi0JMHgwMDI1N0QsIDB4MDAwODIwLCAweDAxODA0MCwgMHgwMDAxMEQsCi0JMHgwMDA4MTAsIDB4MjgxNDNBLCAweDAwMTI3RCwgMHgwMTgwNDIsCi0JMHgyMDAwMEEsIDB4MDAxOTdELCAweDAxODA0MiwgMHgwMDExN0QsCi0JMHgzMTgwNEEsIDB4MTAwMDBBLCAweDAwMzEyNCwgMHgwMTNCOEQsCi0JMHgwMDM5N0QsIDB4MDAwODIwLCAweDA1ODA0MCwgMHgwMzgwNDIsCi0JMHgwOTg0NEEsIDB4MDAwNjA2LCAweDA4MDQwQSwgMHgzMDAxMDIsCi0JMHgwMDMxMjQsIDB4MDAwNDI0LCAweDAwMDQyNCwgMHgwMDEyMjQsCi0JMHgyODA1MDIsIDB4MDAxQTRDLCAweDE0Mzk4NiwgMHg3MDAwMDIsCi0JMHgwMDAwMkQsIDB4MDMwMDAwLCAweDAwMzg3RCwgMHgwMTgwNDIsCi0JMHgxMDAwMEEsIDB4MTQ2MjA2LCAweDAwMjEyNCwgMHgwMDAwQUQsCi0JMHgxMDAwMDIsIDB4MDAwMTBELCAweDAwMDkyNCwgMHgwMDZCMjQsCi0JMHgwMTRBMEQsIDB4MDAzOTdELCAweDAwMDgyMCwgMHgwNTgwNDAsCi0JMHgwMzgwNDIsIDB4MDk4NDRBLCAweDAwMDYwNiwgMHgwODA0MEEsCi0JMHgwMDMyNjQsIDB4MDAwMDhELCAweDAwMEEyNCwgMHgwMDEwMjAsCi0JMHgwMDIyN0QsIDB4MDE4MDQwLCAweDAxNEY4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkI1QTA2LCAweDAwMDAwNywgMHgwMDI4MjAsCi0JMHgwMDIwN0QsIDB4MDE4MDQwLCAweDAwMTE3RCwgMHgwMzgwNDIsCi0JMHgxMzgwNEEsIDB4MzM4MDBBLCAweDAwMzg3RCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE3NzI4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOEQsIDB4MDMwOTY0LCAweDAxNUIwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDM4MDEwMiwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAxMjI0LCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDE1REE4NiwgMHgwMDAwMDcsCi0JMHgyODA1MDIsIDB4MDAxQTRDLCAweDE3NzE4NiwgMHgwMDAwMDcsCi0JMHgwMzIxNjQsIDB4MDA2MzJDLCAweDAwM0RGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwMDk1LCAweDA5MDkwNCwgMHgwMDAwMDcsCi0JMHgwMDA4MjAsIDB4MDAxQTRDLCAweDE2OTk4NiwgMHgwMTgwNDAsCi0JMHgwMzAwMDAsIDB4MTZCMjA2LCAweDAwMjEyNCwgMHgwMDAxMEQsCi0JMHgwMDA5MjQsIDB4MDA2QjI0LCAweDAxNkYwRCwgMHgwMDM5N0QsCi0JMHgwMDA4MjAsIDB4MDU4MDQwLCAweDAzODA0MiwgMHgwOTg0NEEsCi0JMHgwMDA2MDYsIDB4MDgwNDBBLCAweDAwM0E2NCwgMHgwMDAwOTUsCi0JMHgwMDEyMjQsIDB4MDAwMkZELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTcxMjg2LCAweDAwMDAwNywgMHgwMTc2MEQsCi0JMHgwMDA4MTAsIDB4MDgwNDNBLCAweDJCNUEwNiwgMHgwMDAwMDcsCi0JMHgxNjBBMDYsIDB4MDAwMDA3LCAweDAwNzAyMCwgMHgwODAxMEEsCi0JMHgxMDAxMkEsIDB4MDAyMEZELCAweDAzODg2MCwgMHgwMzkwNjAsCi0JMHgwMTgwNDAsIDB4MDAyMjdELCAweDAxODA0MiwgMHgwMDNERkQsCi0JMHgwODAwMEEsIDB4MzE4NDRBLCAweDAwMDkwNCwgMHgxODEwODYsCi0JMHgxODAwOEIsIDB4MDAwMDhELCAweDE4OTkwNCwgMHgwMDMxMkMsCi0JMHgxOEUyMDYsIDB4MDAwMDA3LCAweDAwMzI0QywgMHgxODZCODYsCi0JMHgwMDAwMDcsIDB4MDAxOTA0LCAweDE4Njg4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOTUsIDB4MTk5MTQ0LCAweDAwMjIyQywgMHgwMDMxMjQsCi0JMHgwMDYzNkMsIDB4MDAwRTNELCAweDAwMTM3NSwgMHgwMDBCRkQsCi0JMHgwMTAwNDIsIDB4MDk4MDRBLCAweDEwMDAwQSwgMHgwMzhBRUMsCi0JMHgwMzkzRUMsIDB4MDAyMjRDLCAweDE4RTE4NiwgMHgwMDAwMDcsCi0JMHgwMDAwOEQsIDB4MTg5OTA0LCAweDAwMjI2QywgMHgwMDMyMkMsCi0JMHgzMDA1MEEsIDB4MzAxREFCLCAweDAwMjA4MywgMHgwMDE4RkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAxODkyNCwgMHgzMDA1MDIsCi0JMHgwMDEwODMsIDB4MDAxODc1LCAweDAxMDA0MiwgMHgxMDAwMEEsCi0JMHgwMDAwOEQsIDB4MDEwOTI0LCAweDAwMTM3NSwgMHgzMzA1NDIsCi0JMHgzMzBDQ0IsIDB4MzMyQ0NCLCAweDMzMzRDQiwgMHgzMzNDQ0IsCi0JMHgzMzQ0Q0IsIDB4MzM0Q0NCLCAweDMzNTRDQiwgMHgzMDVDOEIsCi0JMHgwMDYwODMsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MTlCMjg2LCAweDAwMDAwNywgMHgwMDFFMkQsCi0JMHgwMDA1RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMjg5MjQsCi0JMHgyODA1MDIsIDB4MDAwNjBELCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgwQTgwOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkY1LCAweDAxMDA0MCwgMHgyMjAwMDcsCi0JMHgwMDEyNzUsIDB4MDMwMDQyLCAweDIxMDA0QSwgMHgwMDAwOEQsCi0JMHgxQTA5NDQsIDB4MDAwMDA3LCAweDAxQUI4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkNBQTA2LCAweDAwMDAwNywgMHgwMDAxRjUsCi0JMHgwMzAwNDIsIDB4MEQwMDRBLCAweDEwMDAwQSwgMHgwODkxNDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDI1RjUsCi0JMHgwQTMxNDQsIDB4MDAwMDA3LCAweDAwMDgyMCwgMHgwMzI4NjAsCi0JMHgwMzAwNDAsIDB4MDAyMTdELCAweDAzODA0MiwgMHgwQjgwNEEsCi0JMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMDAwOEQsIDB4MDAwMTI0LCAweDAwMDEyQywgMHgwMDBFNjQsCi0JMHgwMDFBNjQsIDB4MDA2MzZDLCAweDA4MDEwQSwgMHgxMDAxMkEsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwgMHgwMDIwRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMjI3RCwgMHgwMTgwNDIsCi0JMHgxMDAwMEEsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMzAwNDAsCi0JMHgwMDE5N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDIyRkQsCi0JMHgwMzgwNDIsIDB4MTAwMDBBLCAweDAwMDgyMCwgMHgwMzEwNjAsCi0JMHgwMzAwNDAsIDB4MDkwRDA0LCAweDAwMDAwNywgMHgwMDA4MjAsCi0JMHgwMzAwNDAsIDB4MDM4MDQyLCAweDBCODA0QSwgMHgxMDAwMEEsCi0JMHgwMDA4MjAsIDB4MDMxMDYwLCAweDAzMDA0MCwgMHgwMzgwNDIsCi0JMHgxMzgwNEEsIDB4MTk4MDRBLCAweDExMEQwNCwgMHgxOThEMDQsCi0JMHgwMDAwMDcsIDB4MDgwMDBBLCAweDAwMTAyMCwgMHgwMzE4NjAsCi0JMHgwMzA4NjAsIDB4MDMwMDQwLCAweDAwMDA4RCwgMHgwQjA5NDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxMDA0MCwgMHgwMDA1RjUsCi0JMHgwMzAwNDIsIDB4MDgwMDBBLCAweDAwMDgyMCwgMHgwMTAwNDAsCi0JMHgwMDAwRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgxRDk4ODYsIDB4MDAxRTc1LCAweDAzMDA0MiwgMHgwMTA0NEEsCi0JMHgwMDBDMEEsIDB4MURBQTA2LCAweDAwMDAwNywgMHgwMDA0MDIsCi0JMHgwMDBDMDIsIDB4MDAxNzdELCAweDAwMUFGNSwgMHgwMTgwNDIsCi0JMHgwMzE0NEEsIDB4MDMxQzRBLCAweDAzMjQ0QSwgMHgwMzJDNEEsCi0JMHgwMzM0NEEsIDB4MDMzQzRBLCAweDAzNDQ0QSwgMHgwMDRDMEEsCi0JMHgwMDA0M0QsIDB4MDAxM0Y1LCAweDAwMUFGRCwgMHgwMzAwNDIsCi0JMHgwQjAwNEEsIDB4MUI4MDRBLCAweDEzODA0QSwgMHgyMDAwMEEsCi0JMHgwODkxNDQsIDB4MTlBMTQ0LCAweDAzODlFNCwgMHgwMzk5RUMsCi0JMHgwMDU1MDIsIDB4MDA1RDBBLCAweDAzMDA0MiwgMHgwQjAwNEEsCi0JMHgxQjgwNEEsIDB4MTM4MDRBLCAweDIwMDAwQSwgMHgwODkxNDQsCi0JMHgxOUExNDQsIDB4MDM4OUU0LCAweDAzOTlFQywgMHgwMDY1MDIsCi0JMHgwMDZEMEEsIDB4MDMwMDQyLCAweDBCMDA0QSwgMHgxOTAwNEEsCi0JMHgyQjgwNEEsIDB4MTM4MDRBLCAweDIxODA0QSwgMHgzMDAwMEEsCi0JMHgwODkxNDQsIDB4MTlBMTQ0LCAweDJBQjE0NCwgMHgwMzg5RTQsCi0JMHgwMzk5RUMsIDB4MDA3NTAyLCAweDAwN0QwQSwgMHgwM0E5RTQsCi0JMHgwMDA3MDIsIDB4MDAxMDdELCAweDAwMDQxNSwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDEwOUU0LCAweDAwMEYwMiwgMHgwMDJBRjUsCi0JMHgwMDE5RkQsIDB4MDEwMDQyLCAweDA5ODA0QSwgMHgxMDAwMEEsCi0JMHgwMDA5MzQsIDB4MDAxNjc0LCAweDAwMjlGNSwgMHgwMTAwNDIsCi0JMHgxMDAwMEEsIDB4MDA5MTdDLCAweDAwMjA3NSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDIwMEE4NiwgMHgwMDI2RjUsCi0JMHgwMDI3RjUsIDB4MDMwMDQyLCAweDA5MDA0QSwgMHgxMDAwMEEsCi0JMHgwMDBBM0MsIDB4MDAxNjdDLCAweDAwMUE3NSwgMHgwMDBCRkQsCi0JMHgwMTAwNDIsIDB4NTE4MDRBLCAweDQ4MDAwQSwgMHgxNjAwMDcsCi0JMHgwMDEwNzUsIDB4MDEwMDQyLCAweDI4MkMwQSwgMHgyODFEMTIsCi0JMHgyODI1MTIsIDB4MDAxRjMyLCAweDFFMDAwNywgMHgwRTAwMDcsCi0JMHgwMDE5NzUsIDB4MDEwMDQyLCAweDAwMkRGNSwgMHgwRDAwNEEsCi0JMHgxMDAwMEEsIDB4MDA5MTQ0LCAweDIwRUE4NiwgMHgwMTAwNDIsCi0JMHgyODM0MEEsIDB4MDAwRTVELCAweDAwMDA4RCwgMHgwMDAzNzUsCi0JMHgwMDA4MjAsIDB4MDEwMDQwLCAweDA1RDJGNCwgMHg1NEQxMDQsCi0JMHgwMDczNUMsIDB4MjE4Qjg2LCAweDAwMDAwNywgMHgwQzAwMDcsCi0JMHgwODAwMDcsIDB4MEEwMDA3LCAweDAyMTc4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MzRCMjA2LCAweDAwMDAwNywgMHgyMTkyMDYsCi0JMHgwMDAwMDcsIDB4MDgwMDA3LCAweDAwMjI3NSwgMHgwMTAwNDIsCi0JMHgyMDAwMEEsIDB4MDAyMTA0LCAweDIyNTg4NiwgMHgwMDFFMkQsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyMUNBODYsIDB4MDAwMDA3LCAweDAwMjAxMCwgMHgzMDA0M0EsCi0JMHgwMDA1N0QsIDB4MDE4MEMzLCAweDA4MDAwQSwgMHgwMjg5MjQsCi0JMHgyODA1MDIsIDB4MjgwQzAyLCAweDBBODEwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRjUsIDB4MDEwMDQwLCAweDIyMDAwNywgMHgwMDA0RkQsCi0JMHgwMTgwNDIsIDB4NzAwMDBBLCAweDAzMDAwMCwgMHgwMDcwMjAsCi0JMHgwN0ZBMDYsIDB4MDE4MDQwLCAweDAyMkI4RCwgMHgwMDA4MTAsCi0JMHgwODA0M0EsIDB4MkNBQTA2LCAweDAwMDAwNywgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyMkMyODYsCi0JMHgwMDAwMDcsIDB4MDIwMjA2LCAweDAwMDAwNywgMHgwMDA4NzUsCi0JMHgwMDA5RkQsIDB4MDAwMTBELCAweDIzNDIwNiwgMHgwMDAyOTUsCi0JMHgwMDBCNzUsIDB4MDAwOTdELCAweDAwMDAwRCwgMHgwMDA1MTUsCi0JMHgwMTAwNDIsIDB4MTgwMDBBLCAweDAwMTkwNCwgMHgyQTAwODYsCi0JMHgwMDA2RjUsIDB4MDAxMDIwLCAweDAxMDA0MCwgMHgwMDA0RjUsCi0JMHgwMDA4MjAsIDB4MDEwMDQwLCAweDAwMDc3NSwgMHgwMTAwNDIsCi0JMHgwOTgwNEEsIDB4MTAwMDBBLCAweDAwMTEyNCwgMHgwMDA5MDQsCi0JMHgyM0YyODYsIDB4MDAwODE1LCAweDA4MDEwMiwgMHgxMDEyMDQsCi0JMHgyNDEyMDYsIDB4MDAwNTc1LCAweDA4MTIwNCwgMHgwMDAwMDcsCi0JMHgxMDAxMDIsIDB4MDAwNTc1LCAweDAwMDQyNSwgMHgwMjExMjQsCi0JMHgxMDAxMDIsIDB4MDAwODIwLCAweDAzMTA2MCwgMHgwMTAwNDAsCi0JMHgwMDE5MjQsIDB4MkEwMDg2LCAweDAwMDA4RCwgMHgwMDA0NjQsCi0JMHgwMDlEMDQsIDB4MjkxMDg2LCAweDE4MDEwMiwgMHgwMDA1NzUsCi0JMHgwMTAwNDIsIDB4MjgwNDBBLCAweDAwMDE4RCwgMHgwMDA5MjQsCi0JMHgyODBEMDIsIDB4MDAwMDBELCAweDAwMDkyNCwgMHgyODE1MDIsCi0JMHgxMDAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgyMDAwMDcsIDB4MDAxMTc1LCAweDAwMDJGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDI0RkE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzMEI2MCwgMHgxQjBCNjAsCi0JMHgwMzBBNjAsIDB4MDEwMDQwLCAweDA1MDA0MiwgMHgzRDAwNEEsCi0JMHgzNTAwNEEsIDB4MkQwMDRBLCAweDIwMDAwQSwgMHgwMDA2RjUsCi0JMHgwMTAwNDIsIDB4MjgxNDBBLCAweDAwMDRGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwMzE1LCAweDAxMEQwNCwgMHgyNjAyODYsCi0JMHgwMDQwMTUsIDB4MDAwMDk1LCAweDAxMEQwNCwgMHgyNUYwODYsCi0JMHgxMDAwMjIsIDB4MTAwMDJBLCAweDI2MUEwNiwgMHgwMDAwMDcsCi0JMHgzMzMxMDQsIDB4MkFBOTA0LCAweDAwMDAwNywgMHgwMzIxMjQsCi0JMHgyODA1MDIsIDB4Mjg0NDAyLCAweDAwMTEyNCwgMHg0MDAxMDIsCi0JMHgwMDA0MjQsIDB4MDAwNDI0LCAweDAwMzIyNCwgMHgwMDI5MkMsCi0JMHgwMDYzNkMsIDB4Mjc3Mzg2LCAweDAwMDAwNywgMHgwMkIxNjQsCi0JMHgwMDA0NjQsIDB4MDAwNDY0LCAweDAwMDA4RCwgMHgwMDBBNjQsCi0JMHgyODBEMDIsIDB4MTAwMDhELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwMDA4RCwgMHgzOEI5MDQsCi0JMHgwMDAwMDcsIDB4MDMyOTZDLCAweDMwMDEwQSwgMHgwMDAyRjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyNzAyODYsCi0JMHgwMDAwMDcsIDB4MDAyMTJDLCAweDI4MDUwQSwgMHgwMDMxNkMsCi0JMHgwMDA0NkMsIDB4MDAwNDZDLCAweDI4NDUwQSwgMHgwMDExMjQsCi0JMHgwMDZCNjQsIDB4MTAwMTAyLCAweDAwMDA4RCwgMHgwMTA5NkMsCi0JMHgyODBEMEEsIDB4MTAwMTBELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwNDEyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MDAzMjI0LCAweDMwMDEwMiwgMHgwMzI5NDQsCi0JMHgyN0ZBODYsIDB4MDAwMDA3LCAweDMwMDAwMiwgMHgwMDA0RjUsCi0JMHgwMTAwNDIsIDB4MDgwMDBBLCAweDAwMDMxNSwgMHgwMTBEMDQsCi0JMHgyODQwODYsIDB4MDAzMTI0LCAweDAwMDQ2NCwgMHgzMDAxMDIsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyODRBODYsIDB4MDAwMDA3LCAweDI4NDQwMiwgMHgwMDMxMjQsCi0JMHgzMDA1MDIsIDB4MDAzOTI0LCAweDMwMDU4MywgMHgwMDA4ODMsCi0JMHgwMDA1RjUsIDB4MDEwMDQyLCAweDI4MDQwQSwgMHgwMDAwOEQsCi0JMHgwMDgxMjQsIDB4MjgwRDAyLCAweDAwMDA4RCwgMHgwMDgxMjQsCi0JMHgyODE1MDIsIDB4MTAwMThELCAweDAwMDgyMCwgMHgwMDAyRjUsCi0JMHgwMTAwNDAsIDB4MjIwMDA3LCAweDAwMTAyNSwgMHgwMDA1NzUsCi0JMHgwMzAwNDIsIDB4MDkwMDRBLCAweDEwMDAwQSwgMHgwQTA5MDQsCi0JMHgxMjExMDQsIDB4MDAwMDA3LCAweDAwMTAyMCwgMHgwNTA4NjAsCi0JMHgwNTAwNDAsIDB4MDAwNkZELCAweDAxODA0MiwgMHgwOTAwNEEsCi0JMHgxMDAwMEEsIDB4MDAwMEE1LCAweDBBMDkwNCwgMHgxMjExMDQsCi0JMHgwMDAwMDcsIDB4MDAwODIwLCAweDAxOTA2MCwgMHgwMTAwNDAsCi0JMHgwMDAyRjUsIDB4MDEwMDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyOUNBODYsIDB4MDAwMDA3LCAweDI0NDIwNiwgMHgwMDAwMDcsCi0JMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDJGNSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAwOTA0LCAweDJBMUE4NiwgMHgwMDAwMDcsCi0JMHgwMDAxMDAsIDB4MDgwQjIwLCAweDEzOEI2MCwgMHgxQjhCNjAsCi0JMHgyMzhCNjAsIDB4MkI4QjYwLCAweDMzOEI2MCwgMHgzQjhCNjAsCi0JMHg0MzhCNjAsIDB4NEI4QjYwLCAweDUzOEI2MCwgMHg1QjhCNjAsCi0JMHg2MzhCNjAsIDB4NkI4QjYwLCAweDczOEI2MCwgMHg3QjhCNjAsCi0JMHgwMzhGNjAsIDB4MEI4RjYwLCAweDEzOEY2MCwgMHgxQjhGNjAsCi0JMHgyMzhGNjAsIDB4MkI4RjYwLCAweDMzOEY2MCwgMHgzQjhGNjAsCi0JMHg0MzhGNjAsIDB4NEI4RjYwLCAweDUzOEY2MCwgMHg1QjhGNjAsCi0JMHg2MzhGNjAsIDB4NkI4RjYwLCAweDczOEY2MCwgMHg3QjhGNjAsCi0JMHgwMzhBNjAsIDB4MDAwNjA2LCAweDAxODA0MCwgMHgwMDAwOEQsCi0JMHgwMDBBNjQsIDB4MjgwRDAyLCAweDAwMEEyNCwgMHgwMDAyN0QsCi0JMHgwMTgwNDIsIDB4MTAwMDBBLCAweDAwMTIyNCwgMHgwMDAzRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyQzBBODYsCi0JMHgwMDAwMDcsIDB4MDAwMThELCAweDAwMEEyNCwgMHgwMDA0NjQsCi0JMHgwMDA0NjQsIDB4MDgwMTAyLCAweDAwMDkyNCwgMHgwMDA0MjQsCi0JMHgwMDA0MjQsIDB4MTAwMTAyLCAweDAyMDAwRCwgMHgwMDkxNDQsCi0JMHgyQzYxODYsIDB4MDAwMDA3LCAweDAwMDFGRCwgMHgwMTgwNDIsCi0JMHgwODAwMEEsIDB4MDAwQTQ0LCAweDJDNDM4NiwgMHgwMTgwNDIsCi0JMHgwQTAwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAwMjdELCAweDAwMTAyMCwgMHgwMDA2MDYsCi0JMHgwMTgwNDAsIDB4MDAwMkY1LCAweDAxMDA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4MkNCMjg2LCAweDAwMDAwNywgMHgwMDAzN0QsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgyQ0UyODYsCi0JMHgwMDAwMDcsIDB4MDAwMDc1LCAweDAwMkU3RCwgMHgwMTAwNDIsCi0JMHgwQjgwNEEsIDB4MDAwMDIwLCAweDAwMDkwNCwgMHgwMDA2ODYsCi0JMHgwMTAwNDAsIDB4MzE4NDRBLCAweDMwMDQ4QiwgMHgwMDA4ODMsCi0JMHgwMDAwOEQsIDB4MDAwODEwLCAweDI4MTQzQSwgMHgwMDAwOEQsCi0JMHgwMDA4MTAsIDB4MjgwQzNBLCAweDAwMDY3NSwgMHgwMTAwNDIsCi0JMHgwODAwMEEsIDB4MDAzODE1LCAweDAxMDkyNCwgMHgyODA1MDIsCi0JMHgwQjAwMEQsIDB4MDAwODIwLCAweDAwMDJGNSwgMHgwMTAwNDAsCi0JMHgwMDA2MDYsIDB4MjIwMDA3LCAweDAwMDQ2NCwgMHgwMDA0NjQsCi0JMHgwMDA2MDYsIDB4MDAwMDA3LCAweDAwMDEzNCwgMHgwMDdGOEQsCi0JMHgwMDA5M0MsIDB4MjgxRDEyLCAweDI4MjUxMiwgMHgwMDFGMzIsCi0JMHgwRTAwMDcsIDB4MDAwMTBELCAweDAwMDM3RCwgMHgwMDA4MjAsCi0JMHgwMTgwNDAsIDB4MDVEMkY0LCAweDAwMDAwNywgMHgwODAwMDcsCi0JMHgwMDAzN0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyRThBODYsIDB4MDAwMDA3LCAweDAwMDYwNiwgMHgwMDAwMDcsCi0JMHgwMDAwMDcsIDB4MDAwMDEyLCAweDEwMDAwNywgMHgzMjAwMDcsCi0JMHg2MDAwMDcsIDB4NDYwMDA3LCAweDEwMDA4MCwgMHg0ODAwMUEsCi0JMHgwMDQ5MDQsIDB4MkVGMTg2LCAweDAwMDAwNywgMHgwMDEyMTAsCi0JMHg1ODAwM0EsIDB4MDAwMTQ1LCAweDVDNUQwNCwgMHgwMDAwMDcsCi0JMHgwMDAwODAsIDB4NDgwMDFBLCAweDAwNDkwNCwgMHgyRjQxODYsCi0JMHgwMDAwMDcsIDB4MDAxMjEwLCAweDUwMDAzQSwgMHgwMDU5MDQsCi0JMHgyRjk4ODYsIDB4MDAwMDQ1LCAweDAwMDBDNSwgMHg3RkZGRjUsCi0JMHg3RkZGN0QsIDB4MDdENTI0LCAweDAwNDIyNCwgMHg1MDAxMDIsCi0JMHgyMDA1MDIsIDB4MDAwMDgyLCAweDQwMDAxQSwgMHgwMDQxMDQsCi0JMHgyRkM5ODYsIDB4MDAwMDA3LCAweDAwMzg2NSwgMHg0MDAwMUEsCi0JMHgwMDQwMjAsIDB4MDAxMDRELCAweDA0QzE4NCwgMHgzMUFCODYsCi0JMHgwMDAwNDAsIDB4MDQwMDA3LCAweDAwMDE2NSwgMHgwMDAxNDUsCi0JMHgwMDQwMjAsIDB4MDAwMDQwLCAweDAwMDc2NSwgMHgwODAwODAsCi0JMHg0MDAwMUEsIDB4MDA0MTA0LCAweDMwNTk4NiwgMHgwMDAwMDcsCi0JMHgwMDEyMTAsIDB4NDAwMDNBLCAweDAwNDEwNCwgMHgzMEIyODYsCi0JMHgwMDAwNEQsIDB4MDAwMENELCAweDAwNDgxMCwgMHgyMDA0M0EsCi0JMHgwMDA4ODIsIDB4NDAwMDFBLCAweDAwNDEwNCwgMHgzMEMxODYsCi0JMHgwMDAwMDcsIDB4MDA0ODIwLCAweDAwNTkwNCwgMHgzMTk4ODYsCi0JMHgwMDAwNDAsIDB4MDAwN0U1LCAweDIwMDQ4MCwgMHgyODE2QTAsCi0JMHgzMjE2RTAsIDB4M0ExNkUwLCAweDQyMTZFMCwgMHgwMjEyNjAsCi0JMHgwMDAwNDAsIDB4MDAwMDMyLCAweDQwMDA3NSwgMHgwMDAwN0QsCi0JMHgwN0Q1NzQsIDB4MjAwNTEyLCAweDAwMDA4MiwgMHg0MDAwMUEsCi0JMHgwMDQxMDQsIDB4MzE3MTg2LCAweDAwMDAwNywgMHgwMzhBMDYsCi0JMHg2NDAwMDcsIDB4MDAwMEU1LCAweDAwMDAyMCwgMHgwMDAwNDAsCi0JMHgwMDBBNjUsIDB4MDAwMDIwLCAweDAyMDA0MCwgMHgwMjAwNDAsCi0JMHgwMDAwNDAsIDB4MDAwMTY1LCAweDAwMDA0MiwgMHg3MDAwMEEsCi0JMHgwMDcxMDQsIDB4MzIzMjg2LCAweDAwMDAwNywgMHgwNjAwMDcsCi0JMHgwMTlBMDYsIDB4NjQwMDA3LCAweDA1MDAwMCwgMHgwMDcwMjAsCi0JMHgwMDAwNDAsIDB4MDM4QTA2LCAweDY0MDAwNywgMHgwMDAwMDcsCi0JMHgwMDMwNkQsIDB4MDI4ODYwLCAweDAyOTA2MCwgMHgwODAwMEEsCi0JMHgwMjg4NjAsIDB4MDA4MDQwLCAweDEwMDAxMiwgMHgwMDEwMEQsCi0JMHgwMDkxODQsIDB4MzJEMTg2LCAweDAwMEUwRCwgMHgwMDkxODQsCi0JMHgzM0UxODYsIDB4MDAwMDA3LCAweDMwMDAwNywgMHgwMDEwMjAsCi0JMHgwMDNCNkQsIDB4MDA4MDQwLCAweDAwMDA4MCwgMHgwODAwMUEsCi0JMHgwMDA5MDQsIDB4MzJGMTg2LCAweDAwMDAwNywgMHgwMDEyMjAsCi0JMHgwMDBERUQsIDB4MDA4MDQwLCAweDAwODA0MiwgMHgxMDAwMEEsCi0JMHg0MDAwMEQsIDB4MTA5NTQ0LCAweDAwMDAwNywgMHgwMDEwMjAsCi0JMHgwMDBERUQsIDB4MDA4MDQwLCAweDAwODA0MiwgMHgyMDA0MEEsCi0JMHgwMDAwODIsIDB4MDgwMDFBLCAweDAwMDkwNCwgMHgzMzgxODYsCi0JMHgwMDAwMDcsIDB4MDAzQjZELCAweDAwODA0MiwgMHgwODAwMEEsCi0JMHgwMDBFMTUsIDB4MDEwOTg0LCAweDM0MkI4NiwgMHg2MDAwMDcsCi0JMHgwODAwMUEsIDB4MDAwQzE1LCAweDAxMDk4NCwgMHgzNDEzODYsCi0JMHgwMDAwMjAsIDB4MUEwMDA3LCAweDAwMDJFRCwgMHgwMDgwNDAsCi0JMHg2MjAwMDcsIDB4MDAzMDZELCAweDAyODA0MiwgMHgwQTgwNEEsCi0JMHgwMDA4MjAsIDB4MEE4MDRBLCAweDAwMDYwNiwgMHgxMDgwNEEsCi0JMHgwMDAwMDcsIDB4MjgyNTEyLCAweDAwMUYzMiwgMHgwNUQyRjQsCi0JMHg1NEQxMDQsIDB4MDA3MzVDLCAweDAwMDc4NiwgMHgwMDAwMDcsCi0JMHgwQzAwMDcsIDB4MEEwMDA3LCAweDFDMDAwNywgMHgwMDM0NjUsCi0JMHgwMjAwNDAsIDB4MDA0ODIwLCAweDAyNTA2MCwgMHg0MDAwMEEsCi0JMHgwMjQwNjAsIDB4MDAwMDQwLCAweDQ1NDk0NCwgMHgwMDAwMDcsCi0JMHgwMDQwMjAsIDB4MDAzQUU1LCAweDAwMDA0MCwgMHgwMDI4RTUsCi0JMHgwMDAwNDIsIDB4NDgwMDBBLCAweDAwNDkwNCwgMHgzOUY4ODYsCi0JMHgwMDJDNjUsIDB4MDAwMDQyLCAweDQwMDAwQSwgMHgwMDAwRDUsCi0JMHg0NTQxMDQsIDB4MDAwMDA3LCAweDAwMDY1NSwgMHgwNTQ1MDQsCi0JMHgzNjgyODYsIDB4MDAwMUQ1LCAweDA1NDUwNCwgMHgzNjgwODYsCi0JMHgwMDJCNjUsIDB4MDAwMDQyLCAweDAwM0FFNSwgMHg1MDAwNEEsCi0JMHg0MDAwMEEsIDB4NDVDM0Q0LCAweDAwMDAwNywgMHg0NTQ1MDQsCi0JMHgwMDAwMDcsIDB4MDAwMENELCAweDQ0NDk0NCwgMHgwMDAwMDcsCi0JMHg0NTQ1MDQsIDB4MDAwMDA3LCAweDAwMDE0RCwgMHg1NTQ5NDQsCi0JMHgwMDAwMDcsIDB4MDQ1MTQ0LCAweDM2Nzk4NiwgMHgwMDJDNjUsCi0JMHgwMDAwNDIsIDB4NDgwMDBBLCAweDRDRDEwNCwgMHgwMDAwMDcsCi0JMHgwNEMxNDQsIDB4MzY4Mzg2LCAweDAwMDAwNywgMHgxNjAwMDcsCi0JMHgwMDJDRTUsIDB4MDQwMDQyLCAweDQwMDAwQSwgMHgwMDQwMjAsCi0JMHgwMDAwNDAsIDB4MDAyOTY1LCAweDAwMDA0MiwgMHg0MDAwMEEsCi0JMHgwMDQxMDQsIDB4MzZGMDg2LCAweDAwMDAwNywgMHgwMDI0MDIsCi0JMHgzODMyMDYsIDB4MDA1QzAyLCAweDAwMjVFNSwgMHgwMDAwNDIsCi0JMHg0MDAwMEEsIDB4MDA0Mjc0LCAweDAwMkFFNSwgMHgwMDAwNDIsCi0JMHg0MDAwMEEsIDB4MDA0Mjc0LCAweDUwMDExMiwgMHgwMDI5RTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDIzNCwgMHg0NTQxMDQsCi0JMHgwMDAwMDcsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDNFRTUsCi0JMHgwMDAwMjAsIDB4MDAwMDQwLCAweDAwMkRFNSwgMHg0MDAxNTIsCi0JMHg1MDAwMEEsIDB4MDQ1MTQ0LCAweDM3REE4NiwgMHgwMDAwQzUsCi0JMHgwMDNFRTUsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHgwMDJCRTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDQwNDI1NCwgMHgwMDAwMDcsCi0JMHgwMDJBRTUsIDB4MDA0MDIwLCAweDAwMDA0MCwgMHg1MDAxMzIsCi0JMHgwNDAxMzQsIDB4MDA1Njc0LCAweDAwMjlFNSwgMHgwMjAwNDIsCi0JMHg0MjAwMEEsIDB4MDAwMDQyLCAweDUwMDAwQSwgMHgwNTQxN0MsCi0JMHgwMDI4RTUsIDB4MDAwMDQyLCAweDQ4MDAwQSwgMHgwMDAwQzUsCi0JMHg0Q0MxNDQsIDB4MzhBMDg2LCAweDAwMjZFNSwgMHgwMDI3RTUsCi0JMHgwMjAwNDIsIDB4NDAwMDRBLCAweDUwMDAwQSwgMHgwMDQyM0MsCi0JMHgwMDU2N0MsIDB4MDAyOEU1LCAweDAwNDgyMCwgMHgwMDAwNDAsCi0JMHgyODFEMTIsIDB4MjgyNTEyLCAweDAwMUY3MiwgMHgwMDI5NjUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDEwNCwgMHgzOTNBODYsCi0JMHgwRTAwMDcsIDB4MTYwMDA3LCAweDFFMDAwNywgMHgwMDNFRTUsCi0JMHgwMDAwNDIsIDB4NDAwMDBBLCAweDAwNDEwNCwgMHgzOTc4ODYsCi0JMHgwMDJENjUsIDB4MDAwMDQyLCAweDI4MzQwQSwgMHgwMDM0NjUsCi0JMHgwMjAwNDIsIDB4NDIwMDRBLCAweDAwNDAyMCwgMHg0QTAwNEEsCi0JMHg1MDAwNEEsIDB4MDVEMkY0LCAweDU0RDEwNCwgMHgwMDczNUMsCi0JMHgzOUUxODYsIDB4MDAwMDA3LCAweDAwMDYwNiwgMHgwODAwMDcsCi0JMHgwQzAwMDcsIDB4MDgwMDA3LCAweDBBMDAwNywgMHgwMDAxRTUsCi0JMHgwMjAwNDUsIDB4MDA0MDIwLCAweDAwMDA2MCwgMHgwMDAzNjUsCi0JMHgwMDAwNDAsIDB4MDAyRTY1LCAweDAwMUEyMCwgMHgwQTFBNjAsCi0JMHgwMDAwNDAsIDB4MDAzNDY1LCAweDAyMDA0MiwgMHg0MjAwNEEsCi0JMHgwMDQwMjAsIDB4NEEwMDRBLCAweDAwMDYwNiwgMHg1MDAwNEEsCi0JMHgwMDE3RkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgyMjVBODYsIDB4MDAwMDA3LCAweDAwMTA3RCwgMHgwMTgwNDIsCi0JMHgwMDExRkQsIDB4MzM4MDRBLCAweDE5ODA0QSwgMHgyMDAwMEEsCi0JMHgwMDAwOTUsIDB4MkExMTQ0LCAweDAxQTE0NCwgMHgzQjkwODYsCi0JMHgwMDA0MEQsIDB4MDBCMTg0LCAweDNCOTE4NiwgMHgwMDE4RkQsCi0JMHgwMTgwNDIsIDB4MDAxMEZELCAweDA5ODA0QSwgMHgzODAwMEEsCi0JMHgwMDAwOTUsIDB4MDEwOTI0LCAweDAwM0E2NCwgMHgzQjgxODYsCi0JMHgwMDAwMDcsIDB4MDAzOTA0LCAweDNCOTI4NiwgMHgwMDAwMDcsCi0JMHgzQjlBMDYsIDB4MDAwMDBELCAweDAwMDA4RCwgMHgwMDA4MjAsCi0JMHgwMDM4N0QsIDB4MDE4MDQwLCAweDcwMDAwMiwgMHgwMDExN0QsCi0JMHgwMTgwNDIsIDB4MDAxOTdELCAweDI5ODA0QSwgMHgzMDAwMEEsCi0JMHgzODAwMDIsIDB4MDAzMTI0LCAweDAwMDQyNCwgMHgwMDA0MjQsCi0JMHgwMDJBMjQsIDB4MjgwNTAyLCAweDAwMDY4RCwgMHgwMDA4MTAsCi0JMHgyODE0M0EsIDB4MDA3NTBELCAweDAwQjEyNCwgMHgwMDIyNjQsCi0JMHgzRDAzODYsIDB4Mjg0NDAyLCAweDAwMDgxMCwgMHgyODBDM0EsCi0JMHgwQjgwMEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDA3NThELCAweDAwQjEyNCwgMHgxMDAxMDIsCi0JMHgwMTIxNDQsIDB4M0U0OTg2LCAweDAwMTgxMCwgMHgxMDAwM0EsCi0JMHgwMDM4N0QsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgzRTQ4ODYsIDB4MDMwMDAwLCAweDNFNEEwNiwgMHgwMDAwQkQsCi0JMHgwMDAwOEQsIDB4MDIzMTY0LCAweDAwMEE2NCwgMHgyODBEMDIsCi0JMHgwQjgwOEQsIDB4MDAwODIwLCAweDAwMDJGRCwgMHgwMTgwNDAsCi0JMHgyMDAwMDcsIDB4MDAzODdELCAweDAxODA0MiwgMHgwODAwMEEsCi0JMHgwMDA5MDQsIDB4M0UzMjg2LCAweDAzMDAwMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDIsIDB4MDgwMDBBLCAweDAwMDkwNCwgMHgzRDgyODYsCi0JMHgwMDAwMDcsIDB4MDAyODEwLCAweDI4MDQzQSwgMHgwMDc1MEQsCi0JMHgwMzA5MjQsIDB4MDAyMjY0LCAweDI4MEQwMiwgMHgwMjMxNkMsCi0JMHgyODQ1MEEsIDB4MEI4MTBELCAweDAwMDgyMCwgMHgwMDAyRkQsCi0JMHgwMTgwNDAsIDB4MjAwMDA3LCAweDAwMDA4RCwgMHgwMDBBMjQsCi0JMHgzRTRBMDYsIDB4MTAwMTAyLCAweDAwMTgxMCwgMHgxMDAwM0EsCi0JMHgwMDAwQkQsIDB4MDAzODEwLCAweDMwMDQzQSwgMHgwMDE4N0QsCi0JMHgwMTgwNDIsIDB4MDAxOEZELCAweDA5ODA0QSwgMHgyMDAwMEEsCi0JMHgwMDAwQUQsIDB4MDI4OTI0LCAweDA3MjEyQywgMHgwMDEwMTAsCi0JMHgzMDA1ODMsIDB4MzAwRDhCLCAweDMwMTRCQiwgMHgzMDFDODMsCi0JMHgwMDIwODMsIDB4MDAxMzdELCAweDAzODA0MiwgMHgzMzg0NEEsCi0JMHgzM0FDQ0IsIDB4MzNCNENCLCAweDMzQkNDQiwgMHgzM0M0Q0IsCi0JMHgzM0NDQ0IsIDB4MzNENENCLCAweDMwNUM4QiwgMHgwMDYwODMsCi0JMHgwMDFFMEQsIDB4MDAwNUZELCAweDAxODA0MiwgMHgyMDAwMEEsCi0JMHgwMjA5MjQsIDB4MDAwNjhELCAweDAwQTk2QywgMHgwMDAwOUQsCi0JMHgwMDAyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHgzRjZBODYsIDB4MDAwMDA3LCAweDI4MDUwMiwgMHgyODBEMEEsCi0JMHgyODQ0MDIsIDB4MDAxODEwLCAweDI4MTQzQSwgMHgwQzAwOEQsCi0JMHgwMDA4MjAsIDB4MDAwMkZELCAweDAxODA0MCwgMHgyMjAwMDcsCi0JMHgwMDM5MDQsIDB4MjI1ODg2LCAweDAwMUUwRCwgMHgwMDA1N0QsCi0JMHgwMTgwNDIsIDB4MjAwMDBBLCAweDAyMDkyNCwgMHgwMDAwQTUsCi0JMHgwMDAyRkQsIDB4MDE4MDQyLCAweDA4MDAwQSwgMHgwMDA5MDQsCi0JMHg0MDJBODYsIDB4MDAwMDA3LCAweDI4MDUwMiwgMHgyODBDMDIsCi0JMHgwMDIwMTAsIDB4MjgxNDNBLCAweDBDMDEwRCwgMHgwMDA4MjAsCi0JMHgwMDAyRkQsIDB4MDE4MDQwLCAweDIyNUEwNiwgMHgyMjAwMDcsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAsCi0JMHgwMDAwMDAsIDB4MDAwMDAwLCAweDAwMDAwMCwgMHgwMDAwMDAKLX07Ci0KLSNlbmRpZgkvL19IV01DT0RFXwpkaWZmIC0tZ2l0IGEvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jIGIvc291bmQvcGNpL3ltZnBjaS95bWZwY2lfbWFpbi5jCmluZGV4IDI5YjMwNTYuLjkyZDQ5YWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS95bWZwY2kveW1mcGNpX21haW4uYworKysgYi9zb3VuZC9wY2kveW1mcGNpL3ltZnBjaV9tYWluLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+CisjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KIAogI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KICNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+CkBAIC0xOTkzLDU1ICsxOTk0LDYgQEAKIAl9CiB9CiAKLSNpZmRlZiBDT05GSUdfU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLQotI2luY2x1ZGUgInltZnBjaV9pbWFnZS5oIgotCi1zdGF0aWMgc3RydWN0IGZpcm13YXJlIHNuZF95bWZwY2lfZHNwX21pY3JvY29kZSA9IHsKLQkuc2l6ZSA9IFlEU1hHX0RTUExFTkdUSCwKLQkuZGF0YSA9ICh1OCAqKURzcEluc3QsCi19Owotc3RhdGljIHN0cnVjdCBmaXJtd2FyZSBzbmRfeW1mcGNpX2NvbnRyb2xsZXJfbWljcm9jb2RlID0gewotCS5zaXplID0gWURTWEdfQ1RSTExFTkdUSCwKLQkuZGF0YSA9ICh1OCAqKUNudHJsSW5zdCwKLX07Ci1zdGF0aWMgc3RydWN0IGZpcm13YXJlIHNuZF95bWZwY2lfY29udHJvbGxlcl8xZV9taWNyb2NvZGUgPSB7Ci0JLnNpemUgPSBZRFNYR19DVFJMTEVOR1RILAotCS5kYXRhID0gKHU4ICopQ250cmxJbnN0MUUsCi19OwotI2VuZGlmCi0KLSNpZmRlZiBDT05GSUdfU05EX1lNRlBDSV9GSVJNV0FSRV9JTl9LRVJORUwKLXN0YXRpYyBpbnQgc25kX3ltZnBjaV9yZXF1ZXN0X2Zpcm13YXJlKHN0cnVjdCBzbmRfeW1mcGNpICpjaGlwKQotewotCWNoaXAtPmRzcF9taWNyb2NvZGUgPSAmc25kX3ltZnBjaV9kc3BfbWljcm9jb2RlOwotCWlmIChjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzI0RiB8fAotCSAgICBjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzQwQyB8fAotCSAgICBjaGlwLT5kZXZpY2VfaWQgPT0gUENJX0RFVklDRV9JRF9ZQU1BSEFfNzQ0IHx8Ci0JICAgIGNoaXAtPmRldmljZV9pZCA9PSBQQ0lfREVWSUNFX0lEX1lBTUFIQV83NTQpCi0JCWNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlID0KLQkJCSZzbmRfeW1mcGNpX2NvbnRyb2xsZXJfMWVfbWljcm9jb2RlOwotCWVsc2UKLQkJY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUgPQotCQkJJnNuZF95bWZwY2lfY29udHJvbGxlcl9taWNyb2NvZGU7Ci0JcmV0dXJuIDA7Ci19Ci0KLSNlbHNlIC8qIHVzZSBmd19sb2FkZXIgKi8KLQotI2lmZGVmIF9fTElUVExFX0VORElBTgotc3RhdGljIGlubGluZSB2b2lkIHNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpIHsgfQotI2Vsc2UKLXN0YXRpYyB2b2lkIHNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpCi17Ci0JaW50IGk7Ci0JdTMyICpkYXRhID0gKHUzMiAqKWZ3LT5kYXRhOwotCi0JZm9yIChpID0gMDsgaSA8IGZ3LT5zaXplIC8gNDsgKytpKQotCQlsZTMyX3RvX2NwdXMoJmRhdGFbaV0pOwotfQotI2VuZGlmCi0KIHN0YXRpYyBpbnQgc25kX3ltZnBjaV9yZXF1ZXN0X2Zpcm13YXJlKHN0cnVjdCBzbmRfeW1mcGNpICpjaGlwKQogewogCWludCBlcnIsIGlzXzFlOwpAQCAtMjA1MCw5ICsyMDAyLDcgQEAKIAllcnIgPSByZXF1ZXN0X2Zpcm13YXJlKCZjaGlwLT5kc3BfbWljcm9jb2RlLCAieWFtYWhhL2RzMV9kc3AuZnciLAogCQkJICAgICAgICZjaGlwLT5wY2ktPmRldik7CiAJaWYgKGVyciA+PSAwKSB7Ci0JCWlmIChjaGlwLT5kc3BfbWljcm9jb2RlLT5zaXplID09IFlEU1hHX0RTUExFTkdUSCkKLQkJCXNuZF95bWZwY2lfY29udmVydF9mcm9tX2xlKGNoaXAtPmRzcF9taWNyb2NvZGUpOwotCQllbHNlIHsKKwkJaWYgKGNoaXAtPmRzcF9taWNyb2NvZGUtPnNpemUgIT0gWURTWEdfRFNQTEVOR1RIKSB7CiAJCQlzbmRfcHJpbnRrKEtFUk5fRVJSICJEU1AgbWljcm9jb2RlIGhhcyB3cm9uZyBzaXplXG4iKTsKIAkJCWVyciA9IC1FSU5WQUw7CiAJCX0KQEAgLTIwNjcsOSArMjAxNyw3IEBACiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZSgmY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUsIG5hbWUsCiAJCQkgICAgICAgJmNoaXAtPnBjaS0+ZGV2KTsKIAlpZiAoZXJyID49IDApIHsKLQkJaWYgKGNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLT5zaXplID09IFlEU1hHX0NUUkxMRU5HVEgpCi0JCQlzbmRfeW1mcGNpX2NvbnZlcnRfZnJvbV9sZShjaGlwLT5jb250cm9sbGVyX21pY3JvY29kZSk7Ci0JCWVsc2UgeworCQlpZiAoY2hpcC0+Y29udHJvbGxlcl9taWNyb2NvZGUtPnNpemUgIT0gWURTWEdfQ1RSTExFTkdUSCkgewogCQkJc25kX3ByaW50ayhLRVJOX0VSUiAiY29udHJvbGxlciBtaWNyb2NvZGUiCiAJCQkJICAgIiBoYXMgd3Jvbmcgc2l6ZVxuIik7CiAJCQllcnIgPSAtRUlOVkFMOwpAQCAtMjA4NCwxMyArMjAzMiwxMSBAQAogTU9EVUxFX0ZJUk1XQVJFKCJ5YW1haGEvZHMxX2N0cmwuZnciKTsKIE1PRFVMRV9GSVJNV0FSRSgieWFtYWhhL2RzMWVfY3RybC5mdyIpOwogCi0jZW5kaWYKLQogc3RhdGljIHZvaWQgc25kX3ltZnBjaV9kb3dubG9hZF9pbWFnZShzdHJ1Y3Qgc25kX3ltZnBjaSAqY2hpcCkKIHsKIAlpbnQgaTsKIAl1MTYgY3RybDsKLQl1MzIgKmluc3Q7CisJY29uc3QgX19sZTMyICppbnN0OwogCiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX05BVElWRURBQ09VVFZPTCwgMHgwMDAwMDAwMCk7CiAJc25kX3ltZnBjaV9kaXNhYmxlX2RzcChjaGlwKTsKQEAgLTIxMDUsMTQgKzIwNTEsMTYgQEAKIAlzbmRfeW1mcGNpX3dyaXRldyhjaGlwLCBZRFNYR1JfR0xPQkFMQ1RSTCwgY3RybCAmIH4weDAwMDcpOwogCiAJLyogc2V0dXAgRFNQIGluc3RydWN0aW9uIGNvZGUgKi8KLQlpbnN0ID0gKHUzMiAqKWNoaXAtPmRzcF9taWNyb2NvZGUtPmRhdGE7CisJaW5zdCA9IChjb25zdCBfX2xlMzIgKiljaGlwLT5kc3BfbWljcm9jb2RlLT5kYXRhOwogCWZvciAoaSA9IDA7IGkgPCBZRFNYR19EU1BMRU5HVEggLyA0OyBpKyspCi0JCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9EU1BJTlNUUkFNICsgKGkgPDwgMiksIGluc3RbaV0pOworCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfRFNQSU5TVFJBTSArIChpIDw8IDIpLAorCQkJCSAgbGUzMl90b19jcHUoaW5zdFtpXSkpOwogCiAJLyogc2V0dXAgY29udHJvbCBpbnN0cnVjdGlvbiBjb2RlICovCi0JaW5zdCA9ICh1MzIgKiljaGlwLT5jb250cm9sbGVyX21pY3JvY29kZS0+ZGF0YTsKKwlpbnN0ID0gKGNvbnN0IF9fbGUzMiAqKWNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlLT5kYXRhOwogCWZvciAoaSA9IDA7IGkgPCBZRFNYR19DVFJMTEVOR1RIIC8gNDsgaSsrKQotCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQ1RSTElOU1RSQU0gKyAoaSA8PCAyKSwgaW5zdFtpXSk7CisJCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9DVFJMSU5TVFJBTSArIChpIDw8IDIpLAorCQkJCSAgbGUzMl90b19jcHUoaW5zdFtpXSkpOwogCiAJc25kX3ltZnBjaV9lbmFibGVfZHNwKGNoaXApOwogfQpAQCAtMjIwNSw2ICsyMTUzLDcgQEAKIAlmb3IgKHJlZyA9IDB4ODA7IHJlZyA8IDB4YzA7IHJlZyArPSA0KQogCQlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCByZWcsIDApOwogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9OQVRJVkVEQUNPVVRWT0wsIDB4M2ZmZjNmZmYpOworCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9CVUY0NDFPVVRWT0wsIDB4M2ZmZjNmZmYpOwogCXNuZF95bWZwY2lfd3JpdGVsKGNoaXAsIFlEU1hHUl9aVk9VVFZPTCwgMHgzZmZmM2ZmZik7CiAJc25kX3ltZnBjaV93cml0ZWwoY2hpcCwgWURTWEdSX1NQRElGT1VUVk9MLCAweDNmZmYzZmZmKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfTkFUSVZFQURDSU5WT0wsIDB4M2ZmZjNmZmYpOwpAQCAtMjI2NCwxMCArMjIxMyw4IEBACiAJcGNpX3dyaXRlX2NvbmZpZ193b3JkKGNoaXAtPnBjaSwgMHg0MCwgY2hpcC0+b2xkX2xlZ2FjeV9jdHJsKTsKIAkKIAlwY2lfZGlzYWJsZV9kZXZpY2UoY2hpcC0+cGNpKTsKLSNpZm5kZWYgQ09ORklHX1NORF9ZTUZQQ0lfRklSTVdBUkVfSU5fS0VSTkVMCiAJcmVsZWFzZV9maXJtd2FyZShjaGlwLT5kc3BfbWljcm9jb2RlKTsKIAlyZWxlYXNlX2Zpcm13YXJlKGNoaXAtPmNvbnRyb2xsZXJfbWljcm9jb2RlKTsKLSNlbmRpZgogCWtmcmVlKGNoaXApOwogCXJldHVybiAwOwogfQpAQCAtMjMyNCw2ICsyMjcxLDcgQEAKIAkJY2hpcC0+c2F2ZWRfcmVnc1tpXSA9IHNuZF95bWZwY2lfcmVhZGwoY2hpcCwgc2F2ZWRfcmVnc19pbmRleFtpXSk7CiAJY2hpcC0+c2F2ZWRfeWRzeGdyX21vZGUgPSBzbmRfeW1mcGNpX3JlYWRsKGNoaXAsIFlEU1hHUl9NT0RFKTsKIAlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfTkFUSVZFREFDT1VUVk9MLCAwKTsKKwlzbmRfeW1mcGNpX3dyaXRlbChjaGlwLCBZRFNYR1JfQlVGNDQxT1VUVk9MLCAwKTsKIAlzbmRfeW1mcGNpX2Rpc2FibGVfZHNwKGNoaXApOwogCXBjaV9kaXNhYmxlX2RldmljZShwY2kpOwogCXBjaV9zYXZlX3N0YXRlKHBjaSk7CmRpZmYgLS1naXQgYS9zb3VuZC9wY21jaWEvS2NvbmZpZyBiL3NvdW5kL3BjbWNpYS9LY29uZmlnCmluZGV4IGM5ZmExYTIuLjdmYmIxOTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjbWNpYS9LY29uZmlnCisrKyBiL3NvdW5kL3BjbWNpYS9LY29uZmlnCkBAIC0xLDExICsxLDE2IEBACiAjIEFMU0EgUENNQ0lBIGRyaXZlcnMKIAotbWVudSAiUENNQ0lBIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUENNQ0lBCittZW51Y29uZmlnIFNORF9QQ01DSUEKKwlib29sICJQQ01DSUEgc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFBDTUNJQQorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgY29ubmVjdGVkIHZpYSB0aGUgUENNQ0lBIGJ1cy4KKworaWYgU05EX1BDTUNJQSAmJiBQQ01DSUEKIAogY29uZmlnIFNORF9WWFBPQ0tFVAogCXRyaXN0YXRlICJEaWdpZ3JhbSBWWHBvY2tldCIKLQlkZXBlbmRzIG9uIFNORCAmJiBQQ01DSUEKIAlzZWxlY3QgU05EX1ZYX0xJQgogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBEaWdpZ3JhbSBWWHBvY2tldCBhbmQKQEAgLTE2LDcgKzIxLDYgQEAKIAogY29uZmlnIFNORF9QREFVRElPQ0YKIAl0cmlzdGF0ZSAiU291bmQgQ29yZSBQREF1ZGlvQ0YiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUENNQ0lBCiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgU291bmQgQ29yZSBQREF1ZGlvQ0YKQEAgLTI1LDQgKzI5LDUgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1wZGF1ZGlvY2YuCiAKLWVuZG1lbnUKK2VuZGlmCSMgU05EX1BDTUNJQQorCmRpZmYgLS1naXQgYS9zb3VuZC9wY21jaWEvdngvdnhwX29wcy5jIGIvc291bmQvcGNtY2lhL3Z4L3Z4cF9vcHMuYwppbmRleCAxNTdiMGI1Li45OWJmMmE2IDEwMDY0NAotLS0gYS9zb3VuZC9wY21jaWEvdngvdnhwX29wcy5jCisrKyBiL3NvdW5kL3BjbWNpYS92eC92eHBfb3BzLmMKQEAgLTE1MSw3ICsxNTEsNyBAQAogCXVuc2lnbmVkIGludCBpOwogCWludCBjOwogCWludCByZWdDU1VFUiwgcmVnUlVFUjsKLQl1bnNpZ25lZCBjaGFyICppbWFnZTsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbWFnZTsKIAl1bnNpZ25lZCBjaGFyIGRhdGE7CiAKIAkvKiBTd2l0Y2ggdG8gcHJvZ3JhbW1hdGlvbiBtb2RlICovCmRpZmYgLS1naXQgYS9zb3VuZC9wcGMvS2NvbmZpZyBiL3NvdW5kL3BwYy9LY29uZmlnCmluZGV4IGNhY2IwYjEuLjc3N2RlMmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy9LY29uZmlnCisrKyBiL3NvdW5kL3BwYy9LY29uZmlnCkBAIC0xLDE3ICsxLDE3IEBACiAjIEFMU0EgUG93ZXJNYWMgZHJpdmVycwogCi1tZW51ICJBTFNBIFBvd2VyTWFjIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgUFBDCittZW51Y29uZmlnIFNORF9QUEMKKwlib29sICJQb3dlclBDIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBQUEM2NCB8fCBQUEMzMgorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gUG93ZXJQQyBhcmNoaXRlY3R1cmVzLgogCi1jb21tZW50ICJBTFNBIFBvd2VyTWFjIHJlcXVpcmVzIEkyQyIKLQlkZXBlbmRzIG9uIFNORCAmJiBJMkM9bgotCi1jb21tZW50ICJBTFNBIFBvd2VyTWFjIHJlcXVpcmVzIElOUFVUIgotCWRlcGVuZHMgb24gU05EICYmIElOUFVUPW4KK2lmIFNORF9QUEMKIAogY29uZmlnIFNORF9QT1dFUk1BQwogCXRyaXN0YXRlICJQb3dlck1hYyAoQVdBQ1MsIERBQ0EsIEJ1cmd1bmR5LCBUdW1ibGVyLCBLZXl3ZXN0KSIKLQlkZXBlbmRzIG9uIFNORCAmJiBJMkMgJiYgSU5QVVQgJiYgUFBDX1BNQUMKKwlkZXBlbmRzIG9uIEkyQyAmJiBJTlBVVCAmJiBQUENfUE1BQwogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIHRoZSBpbnRlZ3JhdGVkIHNvdW5kIGRldmljZS4KQEAgLTMyLDE0ICszMiw5IEBACiAJICBOb3RlIHRoYXQgeW91IGNhbiB0dXJuIG9uL29mZiBEUkMgbWFudWFsbHkgZXZlbiB3aXRob3V0IHRoaXMKIAkgIG9wdGlvbi4KIAotZW5kbWVudQotCi1tZW51ICJBTFNBIFBvd2VyUEMgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiAoIFBQQzY0IHx8IFBQQzMyICkKLQogY29uZmlnIFNORF9QUzMKIAl0cmlzdGF0ZSAiUFMzIEF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQgJiYgUFMzX1BTM0FWCisJZGVwZW5kcyBvbiBQUzNfUFMzQVYKIAlzZWxlY3QgU05EX1BDTQogCWRlZmF1bHQgbQogCWhlbHAKQEAgLTUyLDQgKzQ3LDUgQEAKIAlpbnQgIlN0YXJ0dXAgZGVsYXkgdGltZSBpbiBtcyIKIAlkZXBlbmRzIG9uIFNORF9QUzMKIAlkZWZhdWx0ICIyMDAwIgotZW5kbWVudQorCitlbmRpZgkjIFNORF9QUEMKZGlmZiAtLWdpdCBhL3NvdW5kL3BwYy9kYWNhLmMgYi9zb3VuZC9wcGMvZGFjYS5jCmluZGV4IGNhOTQ1MjkuLjhhNWIyOTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy9kYWNhLmMKKysrIGIvc291bmQvcHBjL2RhY2EuYwpAQCAtMjQ5LDkgKzI0OSw3IEBACiAJaW50IGksIGVycjsKIAlzdHJ1Y3QgcG1hY19kYWNhICptaXg7CiAKLSNpZmRlZiBDT05GSUdfS01PRAogCXJlcXVlc3RfbW9kdWxlKCJpMmMtcG93ZXJtYWMiKTsKLSNlbmRpZiAvKiBDT05GSUdfS01PRCAqLwogCiAJbWl4ID0ga3phbGxvYyhzaXplb2YoKm1peCksIEdGUF9LRVJORUwpOwogCWlmICghIG1peCkKZGlmZiAtLWdpdCBhL3NvdW5kL3BwYy90dW1ibGVyLmMgYi9zb3VuZC9wcGMvdHVtYmxlci5jCmluZGV4IDNmOGQ3MTYuLjAwOWRmOGQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BwYy90dW1ibGVyLmMKKysrIGIvc291bmQvcHBjL3R1bWJsZXIuYwpAQCAtMTM1MCw5ICsxMzUwLDcgQEAKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnRhc19ub2RlLCAqbnA7CiAJY2hhciAqY2hpcG5hbWU7CiAKLSNpZmRlZiBDT05GSUdfS01PRAogCXJlcXVlc3RfbW9kdWxlKCJpMmMtcG93ZXJtYWMiKTsKLSNlbmRpZiAvKiBDT05GSUdfS01PRCAqLwogCiAJbWl4ID0ga3phbGxvYyhzaXplb2YoKm1peCksIEdGUF9LRVJORUwpOwogCWlmICghIG1peCkKZGlmZiAtLWdpdCBhL3NvdW5kL3NoL0tjb25maWcgYi9zb3VuZC9zaC9LY29uZmlnCmluZGV4IGI3ZTA4ZWYuLmNmYzE0MzkgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NoL0tjb25maWcKKysrIGIvc291bmQvc2gvS2NvbmZpZwpAQCAtMSwxNCArMSwyMiBAQAogIyBBTFNBIFNIIGRyaXZlcnMKIAotbWVudSAiU1VQRVJIIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQhPW4gJiYgU1VQRVJICittZW51Y29uZmlnIFNORF9TVVBFUkgKKwlib29sICJTVVBFUkggc291bmQgZGV2aWNlcyIKKwlkZXBlbmRzIG9uIFNVUEVSSAorCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gU1VQRVJIIGFyY2hpdGVjdHVyZXMuCisJICBEcml2ZXJzIHRoYXQgYXJlIGltcGxlbWVudGVkIG9uIEFTb0MgY2FuIGJlIGZvdW5kIGluCisJICAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQiIHNlY3Rpb24uCisKK2lmIFNORF9TVVBFUkgKIAogY29uZmlnIFNORF9BSUNBCiAJdHJpc3RhdGUgIkRyZWFtY2FzdCBZYW1haGEgQUlDQSBzb3VuZCIKLQlkZXBlbmRzIG9uIFNIX0RSRUFNQ0FTVCAmJiBTTkQKKwlkZXBlbmRzIG9uIFNIX0RSRUFNQ0FTVAogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgQUxTQSBTb3VuZCBkcml2ZXIgZm9yIHRoZSBTRUdBIERyZWFtY2FzdCBjb25zb2xlLgogCi1lbmRtZW51CitlbmRpZgkjIFNORF9TVVBFUkgKIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL0tjb25maWcgYi9zb3VuZC9zb2MvS2NvbmZpZwppbmRleCAxOGYyOGFjLi5mNzQzNTMwIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvS2NvbmZpZwpAQCAtMiwxNSArMiw4IEBACiAjIFNvQyBhdWRpbyBjb25maWd1cmF0aW9uCiAjCiAKLW1lbnUgIlN5c3RlbSBvbiBDaGlwIGF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQhPW4KLQotY29uZmlnIFNORF9TT0NfQUM5N19CVVMKLQlib29sCi0KLWNvbmZpZyBTTkRfU09DCittZW51Y29uZmlnIFNORF9TT0MKIAl0cmlzdGF0ZSAiQUxTQSBmb3IgU29DIGF1ZGlvIHN1cHBvcnQiCi0JZGVwZW5kcyBvbiBTTkQKIAlzZWxlY3QgU05EX1BDTQogCS0tLWhlbHAtLS0KIApAQCAtMjMsOCArMTYsMTUgQEAKIAkgIFRoaXMgQVNvQyBhdWRpbyBzdXBwb3J0IGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1zb2MtY29yZS4KIAoraWYgU05EX1NPQworCitjb25maWcgU05EX1NPQ19BQzk3X0JVUworCWJvb2wKKwogIyBBbGwgdGhlIHN1cHBvcnRlZCBTb2Mncworc291cmNlICJzb3VuZC9zb2MvYXQzMi9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2MvYXQ5MS9LY29uZmlnIgorc291cmNlICJzb3VuZC9zb2MvYXUxeC9LY29uZmlnIgogc291cmNlICJzb3VuZC9zb2MvcHhhL0tjb25maWciCiBzb3VyY2UgInNvdW5kL3NvYy9zM2MyNHh4L0tjb25maWciCiBzb3VyY2UgInNvdW5kL3NvYy9zaC9LY29uZmlnIgpAQCAtMzUsNCArMzUsNSBAQAogIyBTdXBwb3J0ZWQgY29kZWNzCiBzb3VyY2UgInNvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZyIKIAotZW5kbWVudQorZW5kaWYJIyBTTkRfU09DCisKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9NYWtlZmlsZSBiL3NvdW5kL3NvYy9NYWtlZmlsZQppbmRleCA3ODJkYjIxLi45MzNhNjZkIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvTWFrZWZpbGUKKysrIGIvc291bmQvc29jL01ha2VmaWxlCkBAIC0xLDQgKzEsNSBAQAogc25kLXNvYy1jb3JlLW9ianMgOj0gc29jLWNvcmUubyBzb2MtZGFwbS5vCiAKIG9iai0kKENPTkZJR19TTkRfU09DKQkrPSBzbmQtc29jLWNvcmUubwotb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IGNvZGVjcy8gYXQ5MS8gcHhhLyBzM2MyNHh4LyBzaC8gZnNsLyBkYXZpbmNpLyBvbWFwLworb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IGNvZGVjcy8gYXQzMi8gYXQ5MS8gcHhhLyBzM2MyNHh4LyBzaC8gZnNsLyBkYXZpbmNpLworb2JqLSQoQ09ORklHX1NORF9TT0MpCSs9IG9tYXAvIGF1MXgvCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9LY29uZmlnIGIvc291bmQvc29jL2F0MzIvS2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDc2NWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvS2NvbmZpZwpAQCAtMCwwICsxLDM0IEBACitjb25maWcgU05EX0FUMzJfU09DCisgICAgICAgIHRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBBdG1lbCBBVDMyIFN5c3RlbS1vbi1hLUNoaXAiCisgICAgICAgIGRlcGVuZHMgb24gQVZSMzIgJiYgU05EX1NPQworICAgICAgICBoZWxwCisgICAgICAgICAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvIAorICAgICAgICAgIHRoZSBBVDMyIFNTQyBpbnRlcmZhY2UuICBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8KKyAgICAgICAgICB0byBzZWxlY3QgdGhlIGF1ZGlvIGludGVyZmFjZXMgdG8gc3VwcG9ydCBiZWxvdy4KKworCitjb25maWcgU05EX0FUMzJfU09DX1NTQworICAgICAgICB0cmlzdGF0ZQorCisKKworY29uZmlnIFNORF9BVDMyX1NPQ19QTEFZUEFRCisgICAgICAgIHRyaXN0YXRlICJTb0MgQXVkaW8gc3VwcG9ydCBmb3IgUGxheVBhcSB3aXRoIFdNODUxMCIKKyAgICAgICAgZGVwZW5kcyBvbiBTTkRfQVQzMl9TT0MgJiYgQk9BUkRfUExBWVBBUQorICAgICAgICBzZWxlY3QgU05EX0FUMzJfU09DX1NTQworICAgICAgICBzZWxlY3QgU05EX1NPQ19XTTg1MTAKKyAgICAgICAgaGVscAorICAgICAgICAgIFNheSBZIG9yIE0gaGVyZSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgU29DIGF1ZGlvCisgICAgICAgICAgb24gdGhlIExSUyBQbGF5UGFxLgorCisKKworY29uZmlnIFNORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisgICAgICAgIGJvb2wgIlJ1biBDT0RFQyBvbiBQbGF5UGFxIGluIHNsYXZlIG1vZGUiCisgICAgICAgIGRlcGVuZHMgb24gU05EX0FUMzJfU09DX1BMQVlQQVEKKyAgICAgICAgZGVmYXVsdCBuCisgICAgICAgIGhlbHAKKyAgICAgICAgICBTYXkgWSBpZiB5b3Ugd2FudCB0byBydW4gd2l0aCB0aGUgQVQzMiBTU0MgZ2VuZXJhdGluZyB0aGUgQkNMSworICAgICAgICAgIGFuZCBGUkFNRSBzaWduYWxzIG9uIHRoZSBQbGF5UGFxLiAgVW5sZXNzIHlvdSB3YW50IHRvIHBsYXkKKyAgICAgICAgICB3aXRoIHRoZSBBVDMyIGFzIHRoZSBTU0MgbWFzdGVyLCB5b3UgcHJvYmFibHkgd2FudCB0byBzYXkgTiBoZXJlLAorICAgICAgICAgIGFzIHRoaXMgd2lsbCBnaXZlIHlvdSBiZXR0ZXIgc291bmQgcXVhbGl0eS4KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL01ha2VmaWxlIGIvc291bmQvc29jL2F0MzIvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAzZTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL01ha2VmaWxlCkBAIC0wLDAgKzEsMTEgQEAKKyMgQVQzMiBQbGF0Zm9ybSBTdXBwb3J0CitzbmQtc29jLWF0MzItb2JqcyA6PSBhdDMyLXBjbS5vCitzbmQtc29jLWF0MzItc3NjLW9ianMgOj0gYXQzMi1zc2MubworCitvYmotJChDT05GSUdfU05EX0FUMzJfU09DKSArPSBzbmQtc29jLWF0MzIubworb2JqLSQoQ09ORklHX1NORF9BVDMyX1NPQ19TU0MpICs9IHNuZC1zb2MtYXQzMi1zc2MubworCisjIEFUMzIgTWFjaGluZSBTdXBwb3J0CitzbmQtc29jLXBsYXlwYXEtb2JqcyA6PSBwbGF5cGFxX3dtODUxMC5vCisKK29iai0kKENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUSkgKz0gc25kLXNvYy1wbGF5cGFxLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmMgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNWYxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCkBAIC0wLDAgKzEsNDkxIEBACisvKiBzb3VuZC9zb2MvYXQzMi9hdDMyLXBjbS5jCisgKiBBU29DIFBDTSBpbnRlcmZhY2UgZm9yIEF0bWVsIEFUMzIgU29DCisgKgorICogQ29weXJpZ2h0IChDKSAyMDA4IExvbmcgUmFuZ2UgU3lzdGVtcworICogICAgR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+CisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBOb3RlIHRoYXQgdGhpcyBpcyBiYXNpY2FsbHkgYSBwb3J0IG9mIHRoZSBzb3VuZC9zb2MvYXQ5MS1wY20uYyB0bworICogdGhlIEFWUjMyIGtlcm5lbC4gIFRoYW5rcyB0byBGcmFuayBNYW5kYXJpbm8gZm9yIHRoYXQgY29kZS4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51eC9kbWEtbWFwcGluZy5oPgorI2luY2x1ZGUgPGxpbnV4L2F0bWVsX3BkYy5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKworI2luY2x1ZGUgImF0MzItcGNtLmgiCisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEhhcmR3YXJlIGRlZmluaXRpb24KK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogVE9ETzogVGhlc2UgdmFsdWVzIHdlcmUgdGFrZW4gZnJvbSB0aGUgQVQ5MSBwbGF0Zm9ybSBkcml2ZXIsIGNoZWNrCisgKgkgdGhlbSBhZ2FpbnN0IHJlYWwgdmFsdWVzIGZvciBBVDMyCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBhdDMyX3BjbV9oYXJkd2FyZSA9IHsKKwkuaW5mbyA9IChTTkRSVl9QQ01fSU5GT19NTUFQIHwKKwkJIFNORFJWX1BDTV9JTkZPX01NQVBfVkFMSUQgfAorCQkgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQgfAorCQkgU05EUlZfUENNX0lORk9fQkxPQ0tfVFJBTlNGRVIgfAorCQkgU05EUlZfUENNX0lORk9fUEFVU0UpLAorCisJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNiwKKwkucGVyaW9kX2J5dGVzX21pbiA9IDMyLAorCS5wZXJpb2RfYnl0ZXNfbWF4ID0gODE5MiwJLyogNTEyIGZyYW1lcyAqIDE2IGJ5dGVzIC8gZnJhbWUgKi8KKwkucGVyaW9kc19taW4gPSAyLAorCS5wZXJpb2RzX21heCA9IDEwMjQsCisJLmJ1ZmZlcl9ieXRlc19tYXggPSAzMiAqIDEwMjQsCit9OworCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBEYXRhIHR5cGVzCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSB7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtczsKKwlkbWFfYWRkcl90IGRtYV9idWZmZXI7CS8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgRE1BIGJ1ZmZlciAqLworCWRtYV9hZGRyX3QgZG1hX2J1ZmZlcl9lbmQ7IC8qIGZpcnN0IGFkZHJlc3MgYmV5b25kIERNQSBidWZmZXIgKi8KKwlzaXplX3QgcGVyaW9kX3NpemU7CisKKwlkbWFfYWRkcl90IHBlcmlvZF9wdHI7CS8qIHBoeXNpY2FsIGFkZHJlc3Mgb2YgbmV4dCBwZXJpb2QgKi8KKwlpbnQgcGVyaW9kczsJCS8qIHBlcmlvZCBpbmRleCBvZiBwZXJpb2RfcHRyICovCisKKwkvKiBTYXZlIFBEQyByZWdpc3RlcnMgKGZvciBwb3dlciBtYW5hZ2VtZW50KSAqLworCXUzMiBwZGNfeHByX3NhdmU7CisJdTMyIHBkY194Y3Jfc2F2ZTsKKwl1MzIgcGRjX3hucHJfc2F2ZTsKKwl1MzIgcGRjX3huY3Jfc2F2ZTsKK307CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEhlbHBlciBmdW5jdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIGludCBhdDMyX3BjbV9wcmVhbGxvY2F0ZV9kbWFfYnVmZmVyKHN0cnVjdCBzbmRfcGNtICpwY20sIGludCBzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0gPSBwY20tPnN0cmVhbXNbc3RyZWFtXS5zdWJzdHJlYW07CisJc3RydWN0IHNuZF9kbWFfYnVmZmVyICpkbWFidWYgPSAmc3Vic3RyZWFtLT5kbWFfYnVmZmVyOworCXNpemVfdCBzaXplID0gYXQzMl9wY21faGFyZHdhcmUuYnVmZmVyX2J5dGVzX21heDsKKworCWRtYWJ1Zi0+ZGV2LnR5cGUgPSBTTkRSVl9ETUFfVFlQRV9ERVY7CisJZG1hYnVmLT5kZXYuZGV2ID0gcGNtLT5jYXJkLT5kZXY7CisJZG1hYnVmLT5wcml2YXRlX2RhdGEgPSBOVUxMOworCWRtYWJ1Zi0+YXJlYSA9IGRtYV9hbGxvY19jb2hlcmVudChwY20tPmNhcmQtPmRldiwgc2l6ZSwKKwkJCQkJICAmZG1hYnVmLT5hZGRyLCBHRlBfS0VSTkVMKTsKKwlwcl9kZWJ1ZygiYXQzMl9wY206IHByZWFsbG9jYXRlX2RtYV9idWZmZXI6ICIKKwkJICJhcmVhPSVwLCBhZGRyPSVwLCBzaXplPSVsZFxuIiwKKwkJICh2b2lkICopZG1hYnVmLT5hcmVhLCAodm9pZCAqKWRtYWJ1Zi0+YWRkciwgc2l6ZSk7CisKKwlpZiAoIWRtYWJ1Zi0+YXJlYSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkbWFidWYtPmJ5dGVzID0gc2l6ZTsKKwlyZXR1cm4gMDsKK30KKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogSVNSCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkIGF0MzJfcGNtX2RtYV9pcnEodTMyIHNzY19zciwgc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHJ0ZC0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisJc3RhdGljIGludCBjb3VudDsKKworCWNvdW50Kys7CisJaWYgKHNzY19zciAmIHBhcmFtcy0+bWFzay0+c3NjX2VuZGJ1ZikgeworCQlwcl93YXJuaW5nKCJhdDMyLXBjbTogYnVmZmVyICVzIG9uICVzIChTU0NfU1I9JSN4LCBjb3VudD0lZClcbiIsCisJCQkgICBzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLID8KKwkJCSAgICJ1bmRlcnJ1biIgOiAib3ZlcnJ1biIsIHBhcmFtcy0+bmFtZSwgc3NjX3NyLCBjb3VudCk7CisKKwkJLyogcmUtc3RhcnQgdGhlIFBEQyAqLworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCQlwcnRkLT5wZXJpb2RfcHRyICs9IHBydGQtPnBlcmlvZF9zaXplOworCQlpZiAocHJ0ZC0+cGVyaW9kX3B0ciA+PSBwcnRkLT5kbWFfYnVmZmVyX2VuZCkKKwkJCXBydGQtPnBlcmlvZF9wdHIgPSBwcnRkLT5kbWFfYnVmZmVyOworCisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJfQorCisKKwlpZiAoc3NjX3NyICYgcGFyYW1zLT5tYXNrLT5zc2NfZW5keCkgeworCQkvKiBMb2FkIHRoZSBQREMgbmV4dCBwb2ludGVyIGFuZCBjb3VudGVyIHJlZ2lzdGVycyAqLworCQlwcnRkLT5wZXJpb2RfcHRyICs9IHBydGQtPnBlcmlvZF9zaXplOworCQlpZiAocHJ0ZC0+cGVyaW9kX3B0ciA+PSBwcnRkLT5kbWFfYnVmZmVyX2VuZCkKKwkJCXBydGQtPnBlcmlvZF9wdHIgPSBwcnRkLT5kbWFfYnVmZmVyOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jciwKKwkJCSAgIHBydGQtPnBlcmlvZF9zaXplIC8gcGFyYW1zLT5wZGNfeGZlcl9zaXplKTsKKwl9CisKKworCXNuZF9wY21fcGVyaW9kX2VsYXBzZWQoc3Vic3RyZWFtKTsKK30KKworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogUENNIG9wZXJhdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIGludCBhdDMyX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkgICAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisKKwkvKiB0aGlzIG1heSBnZXQgY2FsbGVkIHNldmVyYWwgdGltZXMgYnkgb3NzIGVtdWxhdGlvbgorCSAqIHdpdGggZGlmZmVyZW50IHBhcmFtcworCSAqLworCXNuZF9wY21fc2V0X3J1bnRpbWVfYnVmZmVyKHN1YnN0cmVhbSwgJnN1YnN0cmVhbS0+ZG1hX2J1ZmZlcik7CisJcnVudGltZS0+ZG1hX2J5dGVzID0gcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpOworCisJcHJ0ZC0+cGFyYW1zID0gcnRkLT5kYWktPmNwdV9kYWktPmRtYV9kYXRhOworCXBydGQtPnBhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciA9IGF0MzJfcGNtX2RtYV9pcnE7CisKKwlwcnRkLT5kbWFfYnVmZmVyID0gcnVudGltZS0+ZG1hX2FkZHI7CisJcHJ0ZC0+ZG1hX2J1ZmZlcl9lbmQgPSBydW50aW1lLT5kbWFfYWRkciArIHJ1bnRpbWUtPmRtYV9ieXRlczsKKwlwcnRkLT5wZXJpb2Rfc2l6ZSA9IHBhcmFtc19wZXJpb2RfYnl0ZXMocGFyYW1zKTsKKworCXByX2RlYnVnKCJod19wYXJhbXM6IERNQSBmb3IgJXMgaW5pdGlhbGl6ZWQgIgorCQkgIihkbWFfYnl0ZXM9JWxkLCBwZXJpb2Rfc2l6ZT0lbGQpXG4iLAorCQkgcHJ0ZC0+cGFyYW1zLT5uYW1lLCBydW50aW1lLT5kbWFfYnl0ZXMsIHBydGQtPnBlcmlvZF9zaXplKTsKKworCXJldHVybiAwOworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9od19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZCA9IHN1YnN0cmVhbS0+cnVudGltZS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisKKwlpZiAocGFyYW1zICE9IE5VTEwpIHsKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgU1NDX1BEQ19QVENSLAorCQkJICAgcGFyYW1zLT5tYXNrLT5wZGNfZGlzYWJsZSk7CisJCXBydGQtPnBhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciA9IE5VTEw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gc3Vic3RyZWFtLT5ydW50aW1lLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19JRFIsCisJCSAgIHBhcmFtcy0+bWFzay0+c3NjX2VuZHggfCBwYXJhbXMtPm1hc2stPnNzY19lbmRidWYpOworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIEFUTUVMX1BEQ19QVENSLAorCQkgICBwYXJhbXMtPm1hc2stPnBkY19kaXNhYmxlKTsKKworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkID0gcnRkLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKwlpbnQgcmV0ID0gMDsKKworCXByX2RlYnVnKCJhdDMyX3BjbV90cmlnZ2VyOiBidWZmZXJfc2l6ZSA9ICVsZCwgIgorCQkgImRtYV9hcmVhID0gJXAsIGRtYV9ieXRlcyA9ICVsZFxuIiwKKwkJIHJ0ZC0+YnVmZmVyX3NpemUsIHJ0ZC0+ZG1hX2FyZWEsIHJ0ZC0+ZG1hX2J5dGVzKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwkJcHJ0ZC0+cGVyaW9kX3B0ciA9IHBydGQtPmRtYV9idWZmZXI7CisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciwKKwkJCSAgIHBydGQtPnBlcmlvZF9wdHIpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCisJCXBydGQtPnBlcmlvZF9wdHIgKz0gcHJ0ZC0+cGVyaW9kX3NpemU7CisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3B0cik7CisJCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bmNyLAorCQkJICAgcHJ0ZC0+cGVyaW9kX3NpemUgLyBwYXJhbXMtPnBkY194ZmVyX3NpemUpOworCisJCXByX2RlYnVnKCJ0cmlnZ2VyOiBwZXJpb2RfcHRyPSVseCwgeHByPSV4LCAiCisJCQkgInhjcj0lZCwgeG5wcj0leCwgeG5jcj0lZFxuIiwKKwkJCSAodW5zaWduZWQgbG9uZylwcnRkLT5wZXJpb2RfcHRyLAorCQkJIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwciksCisJCQkgc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eGNyKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bmNyKSk7CisKKwkJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgU1NDX0lFUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+c3NjX2VuZHggfCBwYXJhbXMtPm1hc2stPnNzY19lbmRidWYpOworCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBTU0NfUERDX1BUQ1IsCisJCQkgICBwYXJhbXMtPm1hc2stPnBkY19lbmFibGUpOworCisJCXByX2RlYnVnKCJzcj0leCwgaW1yPSV4XG4iLAorCQkJIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgU1NDX1NSKSwKKwkJCSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIFNTQ19JRVIpKTsKKwkJYnJlYWs7CQkvKiBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVCAqLworCisKKworCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1RPUDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NVU1BFTkQ6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9QVVNIOgorCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCQlicmVhazsKKworCisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9SRVNVTUU6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVTRV9SRUxFQVNFOgorCQlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBBVE1FTF9QRENfUFRDUiwKKwkJCSAgIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIHNuZF9wY21fdWZyYW1lc190IGF0MzJfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IHN1YnN0cmVhbS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtcyA9IHBydGQtPnBhcmFtczsKKwlkbWFfYWRkcl90IHB0cjsKKwlzbmRfcGNtX3VmcmFtZXNfdCB4OworCisJcHRyID0gKGRtYV9hZGRyX3QpIHNzY19yZWFkeChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhwcik7CisJeCA9IGJ5dGVzX3RvX2ZyYW1lcyhydW50aW1lLCBwdHIgLSBwcnRkLT5kbWFfYnVmZmVyKTsKKworCWlmICh4ID09IHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKQorCQl4ID0gMDsKKworCXJldHVybiB4OworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9vcGVuKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF0MzJfcnVudGltZV9kYXRhICpwcnRkOworCWludCByZXQgPSAwOworCisJc25kX3NvY19zZXRfcnVudGltZV9od3BhcmFtcyhzdWJzdHJlYW0sICZhdDMyX3BjbV9oYXJkd2FyZSk7CisKKwkvKiBlbnN1cmUgdGhhdCBidWZmZXIgc2l6ZSBpcyBhIG11bHRpcGxlIG9mIHBlcmlvZCBzaXplICovCisJcmV0ID0gc25kX3BjbV9od19jb25zdHJhaW50X2ludGVnZXIocnVudGltZSwKKwkJCQkJICAgIFNORFJWX1BDTV9IV19QQVJBTV9QRVJJT0RTKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlwcnRkID0ga3phbGxvYyhzaXplb2YoKnBydGQpLCBHRlBfS0VSTkVMKTsKKwlpZiAocHJ0ZCA9PSBOVUxMKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KKwlydW50aW1lLT5wcml2YXRlX2RhdGEgPSBwcnRkOworCisKK291dDoKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIGludCBhdDMyX3BjbV9jbG9zZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKworCWtmcmVlKHBydGQpOworCXJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fbW1hcChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlyZXR1cm4gcmVtYXBfcGZuX3JhbmdlKHZtYSwgdm1hLT52bV9zdGFydCwKKwkJCSAgICAgICBzdWJzdHJlYW0tPmRtYV9idWZmZXIuYWRkciA+PiBQQUdFX1NISUZULAorCQkJICAgICAgIHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydCwgdm1hLT52bV9wYWdlX3Byb3QpOworfQorCisKKworc3RhdGljIHN0cnVjdCBzbmRfcGNtX29wcyBhdDMyX3BjbV9vcHMgPSB7CisJLm9wZW4gPSBhdDMyX3BjbV9vcGVuLAorCS5jbG9zZSA9IGF0MzJfcGNtX2Nsb3NlLAorCS5pb2N0bCA9IHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMgPSBhdDMyX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUgPSBhdDMyX3BjbV9od19mcmVlLAorCS5wcmVwYXJlID0gYXQzMl9wY21fcHJlcGFyZSwKKwkudHJpZ2dlciA9IGF0MzJfcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIgPSBhdDMyX3BjbV9wb2ludGVyLAorCS5tbWFwID0gYXQzMl9wY21fbW1hcCwKK307CisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIEFTb0MgcGxhdGZvcm0gZHJpdmVyCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB1NjQgYXQzMl9wY21fZG1hbWFzayA9IDB4ZmZmZmZmZmY7CisKK3N0YXRpYyBpbnQgYXQzMl9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwKKwkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCQkJc3RydWN0IHNuZF9wY20gKnBjbSkKK3sKKwlpbnQgcmV0ID0gMDsKKworCWlmICghY2FyZC0+ZGV2LT5kbWFfbWFzaykKKwkJY2FyZC0+ZGV2LT5kbWFfbWFzayA9ICZhdDMyX3BjbV9kbWFtYXNrOworCWlmICghY2FyZC0+ZGV2LT5jb2hlcmVudF9kbWFfbWFzaykKKwkJY2FyZC0+ZGV2LT5jb2hlcmVudF9kbWFfbWFzayA9IDB4ZmZmZmZmZmY7CisKKwlpZiAoZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4pIHsKKwkJcmV0ID0gYXQzMl9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcigKKwkJCSAgcGNtLCBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKworCWlmIChkYWktPmNhcHR1cmUuY2hhbm5lbHNfbWluKSB7CisJCXByX2RlYnVnKCJhdDMyLXBjbTogQWxsb2NhdGluZyBQQ00gY2FwdHVyZSBETUEgYnVmZmVyXG4iKTsKKwkJcmV0ID0gYXQzMl9wY21fcHJlYWxsb2NhdGVfZG1hX2J1ZmZlcigKKwkJCSAgcGNtLCBTTkRSVl9QQ01fU1RSRUFNX0NBUFRVUkUpOworCQlpZiAocmV0KQorCQkJZ290byBvdXQ7CisJfQorCisKK291dDoKKwlyZXR1cm4gcmV0OworfQorCisKKworc3RhdGljIHZvaWQgYXQzMl9wY21fZnJlZV9kbWFfYnVmZmVycyhzdHJ1Y3Qgc25kX3BjbSAqcGNtKQoreworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXN0cnVjdCBzbmRfZG1hX2J1ZmZlciAqYnVmOworCWludCBzdHJlYW07CisKKwlmb3IgKHN0cmVhbSA9IDA7IHN0cmVhbSA8IDI7IHN0cmVhbSsrKSB7CisJCXN1YnN0cmVhbSA9IHBjbS0+c3RyZWFtc1tzdHJlYW1dLnN1YnN0cmVhbTsKKwkJaWYgKHN1YnN0cmVhbSA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJYnVmID0gJnN1YnN0cmVhbS0+ZG1hX2J1ZmZlcjsKKwkJaWYgKCFidWYtPmFyZWEpCisJCQljb250aW51ZTsKKwkJZG1hX2ZyZWVfY29oZXJlbnQocGNtLT5jYXJkLT5kZXYsIGJ1Zi0+Ynl0ZXMsCisJCQkJICBidWYtPmFyZWEsIGJ1Zi0+YWRkcik7CisJCWJ1Zi0+YXJlYSA9IE5VTEw7CisJfQorfQorCisKKworI2lmZGVmIENPTkZJR19QTQorc3RhdGljIGludCBhdDMyX3BjbV9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKKwlzdHJ1Y3QgYXQzMl9ydW50aW1lX2RhdGEgKnBydGQ7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKnBhcmFtczsKKworCWlmIChydW50aW1lID09IE5VTEwpCisJCXJldHVybiAwOworCXBydGQgPSBydW50aW1lLT5wcml2YXRlX2RhdGE7CisJcGFyYW1zID0gcHJ0ZC0+cGFyYW1zOworCisJLyogRGlzYWJsZSB0aGUgUERDIGFuZCBzYXZlIHRoZSBQREMgcmVnaXN0ZXJzICovCisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgUERDX1BUQ1IsIHBhcmFtcy0+bWFzay0+cGRjX2Rpc2FibGUpOworCisJcHJ0ZC0+cGRjX3hwcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eHByKTsKKwlwcnRkLT5wZGNfeGNyX3NhdmUgPSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54Y3IpOworCXBydGQtPnBkY194bnByX3NhdmUgPSBzc2NfcmVhZHgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54bnByKTsKKwlwcnRkLT5wZGNfeG5jcl9zYXZlID0gc3NjX3JlYWR4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5jcik7CisKKwlyZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBpbnQgYXQzMl9wY21fcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gZGFpLT5ydW50aW1lOworCXN0cnVjdCBhdDMyX3J1bnRpbWVfZGF0YSAqcHJ0ZDsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqcGFyYW1zOworCisJaWYgKHJ1bnRpbWUgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisJcHJ0ZCA9IHJ1bnRpbWUtPnByaXZhdGVfZGF0YTsKKwlwYXJhbXMgPSBwcnRkLT5wYXJhbXM7CisKKwkvKiBSZXN0b3JlIHRoZSBQREMgcmVnaXN0ZXJzIGFuZCBlbmFibGUgdGhlIFBEQyAqLworCXNzY193cml0ZXgocGFyYW1zLT5zc2MtPnJlZ3MsIHBhcmFtcy0+cGRjLT54cHIsIHBydGQtPnBkY194cHJfc2F2ZSk7CisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhjciwgcHJ0ZC0+cGRjX3hjcl9zYXZlKTsKKwlzc2Nfd3JpdGV4KHBhcmFtcy0+c3NjLT5yZWdzLCBwYXJhbXMtPnBkYy0+eG5wciwgcHJ0ZC0+cGRjX3hucHJfc2F2ZSk7CisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgcGFyYW1zLT5wZGMtPnhuY3IsIHBydGQtPnBkY194bmNyX3NhdmUpOworCisJc3NjX3dyaXRleChwYXJhbXMtPnNzYy0+cmVncywgUERDX1BUQ1IsIHBhcmFtcy0+bWFzay0+cGRjX2VuYWJsZSk7CisJcmV0dXJuIDA7Cit9CisjZWxzZSAvKiBDT05GSUdfUE0gKi8KKyMgIGRlZmluZSBhdDMyX3BjbV9zdXNwZW5kCU5VTEwKKyMgIGRlZmluZSBhdDMyX3BjbV9yZXN1bWUJTlVMTAorI2VuZGlmIC8qIENPTkZJR19QTSAqLworCisKKworc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gYXQzMl9zb2NfcGxhdGZvcm0gPSB7CisJLm5hbWUgPSAiYXQzMi1hdWRpbyIsCisJLnBjbV9vcHMgPSAmYXQzMl9wY21fb3BzLAorCS5wY21fbmV3ID0gYXQzMl9wY21fbmV3LAorCS5wY21fZnJlZSA9IGF0MzJfcGNtX2ZyZWVfZG1hX2J1ZmZlcnMsCisJLnN1c3BlbmQgPSBhdDMyX3BjbV9zdXNwZW5kLAorCS5yZXN1bWUgPSBhdDMyX3BjbV9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXQzMl9zb2NfcGxhdGZvcm0pOworCisKKworTU9EVUxFX0FVVEhPUigiR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF0bWVsIEFUMzIgUENNIG1vZHVsZSIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F0MzIvYXQzMi1wY20uaCBiL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1MjQzMAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdDMyL2F0MzItcGNtLmgKQEAgLTAsMCArMSw3OSBAQAorLyogc291bmQvc29jL2F0MzIvYXQzMi1wY20uaAorICogQVNvQyBQQ00gaW50ZXJmYWNlIGZvciBBdG1lbCBBVDMyIFNvQworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2lmbmRlZiBfX1NPVU5EX1NPQ19BVDMyX0FUMzJfUENNX0gKKyNkZWZpbmUgX19TT1VORF9TT0NfQVQzMl9BVDMyX1BDTV9IIF9fRklMRV9fCisKKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworCisvKgorICogUmVnaXN0ZXJzIGFuZCBzdGF0dXMgYml0cyB0aGF0IGFyZSByZXF1aXJlZCBieSB0aGUgUENNIGRyaXZlcgorICogVE9ETzogSXMgcHRjciByZWFsbHkgdXNlZD8KKyAqLworc3RydWN0IGF0MzJfcGRjX3JlZ3MgeworCXUzMiB4cHI7CQkvKiBQREMgUlgvVFggcG9pbnRlciAqLworCXUzMiB4Y3I7CQkvKiBQREMgUlgvVFggY291bnRlciAqLworCXUzMiB4bnByOwkJLyogUERDIG5leHQgUlgvVFggcG9pbnRlciAqLworCXUzMiB4bmNyOwkJLyogUERDIG5leHQgUlgvVFggY291bnRlciAqLworCXUzMiBwdGNyOwkJLyogUERDIHRyYW5zZmVyIGNvbnRyb2wgKi8KK307CisKKworCisvKgorICogU1NDIG1hc2sgaW5mbworICovCitzdHJ1Y3QgYXQzMl9zc2NfbWFzayB7CisJdTMyIHNzY19lbmFibGU7CQkvKiBTU0MgUlgvVFggZW5hYmxlICovCisJdTMyIHNzY19kaXNhYmxlOwkvKiBTU0MgUlgvVFggZGlzYWJsZSAqLworCXUzMiBzc2NfZW5keDsJCS8qIFNTQyBFTkRUWCBvciBFTkRSWCAqLworCXUzMiBzc2NfZW5kYnVmOwkJLyogU1NDIFRYQlVGRiBvciBSWEJVRkYgKi8KKwl1MzIgcGRjX2VuYWJsZTsJCS8qIFBEQyBSWC9UWCBlbmFibGUgKi8KKwl1MzIgcGRjX2Rpc2FibGU7CS8qIFBEQyBSWC9UWCBkaXNhYmxlICovCit9OworCisKKworLyoKKyAqIFRoaXMgc3RydWN0dXJlLCBzaGFyZWQgYmV0d2VlbiB0aGUgUENNIGRyaXZlciBhbmQgdGhlIGludGVyZmFjZSwKKyAqIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBieSB0aGUgUENNIGRyaXZlciB0byBwZXJmb3JtIHRoZQorICogUERDIERNQSBvcGVyYXRpb24uICBBbGwgZmllbGRzIGV4Y2VwdCBkbWFfaW50cl9oYW5kbGVyKCkgYXJlIGluaXRpYWxpemVkCisgKiBieSB0aGUgaW50ZXJmYWNlLiAgVGhlIGRtc19pbnRyX2hhbmRsZXIoKSBwb2ludGVyIGlzIHNldCBieSB0aGUgUENNCisgKiBkcml2ZXIgYW5kIGNhbGxlZCBieSB0aGUgaW50ZXJmYWNlIFNTQyBpbnRlcnJ1cHQgaGFuZGxlciBpZiBpdCBpcworICogbm9uLU5VTEwuCisgKi8KK3N0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zIHsKKwljaGFyICpuYW1lOwkJLyogc3RyZWFtIGlkZW50aWZpZXIgKi8KKwlpbnQgcGRjX3hmZXJfc2l6ZTsJLyogUERDIGNvdW50ZXIgaW5jcmVtZW50IGluIGJ5dGVzICovCisJc3RydWN0IHNzY19kZXZpY2UgKnNzYzsJLyogU1NDIGRldmljZSBmb3Igc3RyZWFtICovCisJc3RydWN0IGF0MzJfcGRjX3JlZ3MgKnBkYzsJLyogUERDIHJlZ2lzdGVyIGluZm8gKi8KKwlzdHJ1Y3QgYXQzMl9zc2NfbWFzayAqbWFzazsJLyogU1NDIG1hc2sgaW5mbyAqLworCXN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtOworCXZvaWQgKCpkbWFfaW50cl9oYW5kbGVyKSAodTMyLCBzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKik7Cit9OworCisKKworLyoKKyAqIFRoZSBBVDMyIEFTb0MgcGxhdGZvcm0gZHJpdmVyCisgKi8KK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBhdDMyX3NvY19wbGF0Zm9ybTsKKworCisKKy8qCisgKiBTU0MgcmVnaXN0ZXIgYWNjZXNzIChzaW5jZSBzc2Nfd3JpdGVsKCkgLyBzc2NfcmVhZGwoKSByZXF1aXJlIGxpdGVyYWwgbmFtZSkKKyAqLworI2RlZmluZSBzc2NfcmVhZHgoYmFzZSwgcmVnKSAgICAgICAgICAgIChfX3Jhd19yZWFkbCgoYmFzZSkgKyAocmVnKSkpCisjZGVmaW5lIHNzY193cml0ZXgoYmFzZSwgcmVnLCB2YWx1ZSkgICAgX19yYXdfd3JpdGVsKCh2YWx1ZSksIChiYXNlKSArIChyZWcpKQorCisjZW5kaWYgLyogX19TT1VORF9TT0NfQVQzMl9BVDMyX1BDTV9IICovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5jIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWY2NDkyCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYwpAQCAtMCwwICsxLDg0OSBAQAorLyogc291bmQvc29jL2F0MzIvYXQzMi1zc2MuYworICogQVNvQyBwbGF0Zm9ybSBkcml2ZXIgZm9yIEFUMzIgdXNpbmcgU1NDIGFzIERBSQorICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTm90ZSB0aGF0IHRoaXMgaXMgYmFzaWNhbGx5IGEgcG9ydCBvZiB0aGUgc291bmQvc29jL2F0OTEtc3NjLmMgdG8KKyAqIHRoZSBBVlIzMiBrZXJuZWwuICBUaGFua3MgdG8gRnJhbmsgTWFuZGFyaW5vIGZvciB0aGF0IGNvZGUuCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvY2xrLmg+CisjaW5jbHVkZSA8bGludXgvaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbF9wZGMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorCisjaW5jbHVkZSAiYXQzMi1wY20uaCIKKyNpbmNsdWRlICJhdDMyLXNzYy5oIgorCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIENvbnN0YW50cworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNkZWZpbmUgTlVNX1NTQ19ERVZJQ0VTCQkzCisKKy8qCisgKiBTU0MgZGlyZWN0aW9uIG1hc2tzCisgKi8KKyNkZWZpbmUgU1NDX0RJUl9NQVNLX1VOVVNFRAkwCisjZGVmaW5lIFNTQ19ESVJfTUFTS19QTEFZQkFDSwkxCisjZGVmaW5lIFNTQ19ESVJfTUFTS19DQVBUVVJFCTIKKworLyoKKyAqIFNTQyByZWdpc3RlciB2YWx1ZXMgdGhhdCBBdG1lbCBsZWZ0IG91dCBvZiA8bGludXgvYXRtZWwtc3NjLmg+LiAgVGhlc2UKKyAqIGFyZSBleHBlY3RlZCB0byBiZSB1c2VkIHdpdGggU1NDX0JGCisgKi8KKy8qIFNUQVJUIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX1NUQVJUX0NPTlRJTlVPVVMJMAorI2RlZmluZSBTU0NfU1RBUlRfVFhfUlgJCTEKKyNkZWZpbmUgU1NDX1NUQVJUX0xPV19SRgkyCisjZGVmaW5lIFNTQ19TVEFSVF9ISUdIX1JGCTMKKyNkZWZpbmUgU1NDX1NUQVJUX0ZBTExJTkdfUkYJNAorI2RlZmluZSBTU0NfU1RBUlRfUklTSU5HX1JGCTUKKyNkZWZpbmUgU1NDX1NUQVJUX0xFVkVMX1JGCTYKKyNkZWZpbmUgU1NDX1NUQVJUX0VER0VfUkYJNworI2RlZmluZSBTU1NfU1RBUlRfQ09NUEFSRV8wCTgKKworLyogQ0tJIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0NLSV9GQUxMSU5HCQkwCisjZGVmaW5lIFNTQ19DS0lfUklTSU5HCQkxCisKKy8qIENLTyBiaXQgZmllbGQgdmFsdWVzICovCisjZGVmaW5lIFNTQ19DS09fTk9ORQkJMAorI2RlZmluZSBTU0NfQ0tPX0NPTlRJTlVPVVMJMQorI2RlZmluZSBTU0NfQ0tPX1RSQU5TRkVSCTIKKworLyogQ0tTIGJpdCBmaWVsZCB2YWx1ZXMgKi8KKyNkZWZpbmUgU1NDX0NLU19ESVYJCTAKKyNkZWZpbmUgU1NDX0NLU19DTE9DSwkJMQorI2RlZmluZSBTU0NfQ0tTX1BJTgkJMgorCisvKiBGU0VER0UgYml0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBTU0NfRlNFREdFX1BPU0lUSVZFCTAKKyNkZWZpbmUgU1NDX0ZTRURHRV9ORUdBVElWRQkxCisKKy8qIEZTT1MgYml0IGZpZWxkIHZhbHVlcyAqLworI2RlZmluZSBTU0NfRlNPU19OT05FCQkwCisjZGVmaW5lIFNTQ19GU09TX05FR0FUSVZFCTEKKyNkZWZpbmUgU1NDX0ZTT1NfUE9TSVRJVkUJMgorI2RlZmluZSBTU0NfRlNPU19MT1cJCTMKKyNkZWZpbmUgU1NDX0ZTT1NfSElHSAkJNAorI2RlZmluZSBTU0NfRlNPU19UT0dHTEUJCTUKKworI2RlZmluZSBTVEFSVF9ERUxBWQkJMQorCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIE1vZHVsZSBkYXRhCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIFNTQyBQREMgcmVnaXN0ZXJlZCByZXF1aXJlZCBieSB0aGUgUENNIERNQSBlbmdpbmUKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3BkY19yZWdzIHBkY190eF9yZWcgPSB7CisJLnhwciA9IFNTQ19QRENfVFBSLAorCS54Y3IgPSBTU0NfUERDX1RDUiwKKwkueG5wciA9IFNTQ19QRENfVE5QUiwKKwkueG5jciA9IFNTQ19QRENfVE5DUiwKK307CisKKworCitzdGF0aWMgc3RydWN0IGF0MzJfcGRjX3JlZ3MgcGRjX3J4X3JlZyA9IHsKKwkueHByID0gU1NDX1BEQ19SUFIsCisJLnhjciA9IFNTQ19QRENfUkNSLAorCS54bnByID0gU1NDX1BEQ19STlBSLAorCS54bmNyID0gU1NDX1BEQ19STkNSLAorfTsKKworCisKKy8qCisgKiBTU0MgYW5kIFBEQyBzdGF0dXMgYml0cyBmb3IgdHJhbnNtaXQgYW5kIHJlY2VpdmUKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3NzY19tYXNrIHNzY190eF9tYXNrID0geworCS5zc2NfZW5hYmxlID0gU1NDX0JJVChDUl9UWEVOKSwKKwkuc3NjX2Rpc2FibGUgPSBTU0NfQklUKENSX1RYRElTKSwKKwkuc3NjX2VuZHggPSBTU0NfQklUKFNSX0VORFRYKSwKKwkuc3NjX2VuZGJ1ZiA9IFNTQ19CSVQoU1JfVFhCVUZFKSwKKwkucGRjX2VuYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfVFhURU4pLAorCS5wZGNfZGlzYWJsZSA9IFNTQ19CSVQoUERDX1BUQ1JfVFhURElTKSwKK307CisKKworCitzdGF0aWMgc3RydWN0IGF0MzJfc3NjX21hc2sgc3NjX3J4X21hc2sgPSB7CisJLnNzY19lbmFibGUgPSBTU0NfQklUKENSX1JYRU4pLAorCS5zc2NfZGlzYWJsZSA9IFNTQ19CSVQoQ1JfUlhESVMpLAorCS5zc2NfZW5keCA9IFNTQ19CSVQoU1JfRU5EUlgpLAorCS5zc2NfZW5kYnVmID0gU1NDX0JJVChTUl9SWEJVRkYpLAorCS5wZGNfZW5hYmxlID0gU1NDX0JJVChQRENfUFRDUl9SWFRFTiksCisJLnBkY19kaXNhYmxlID0gU1NDX0JJVChQRENfUFRDUl9SWFRESVMpLAorfTsKKworCisKKy8qCisgKiBETUEgcGFyYW1ldGVycyBmb3IgZWFjaCBTU0MKKyAqLworc3RhdGljIHN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zIHNzY19kbWFfcGFyYW1zW05VTV9TU0NfREVWSUNFU11bMl0gPSB7CisJeworCSB7CisJICAubmFtZSA9ICJTU0MwIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MwIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCisJeworCSB7CisJICAubmFtZSA9ICJTU0MxIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MxIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCisJeworCSB7CisJICAubmFtZSA9ICJTU0MyIFBDTSBvdXQiLAorCSAgLnBkYyA9ICZwZGNfdHhfcmVnLAorCSAgLm1hc2sgPSAmc3NjX3R4X21hc2ssCisJICB9LAorCSB7CisJICAubmFtZSA9ICJTU0MyIFBDTSBpbiIsCisJICAucGRjID0gJnBkY19yeF9yZWcsCisJICAubWFzayA9ICZzc2NfcnhfbWFzaywKKwkgIH0sCisJIH0sCit9OworCisKKworc3RhdGljIHN0cnVjdCBhdDMyX3NzY19pbmZvIHNzY19pbmZvW05VTV9TU0NfREVWSUNFU10gPSB7CisJeworCSAubmFtZSA9ICJzc2MwIiwKKwkgLmxvY2sgPSBfX1NQSU5fTE9DS19VTkxPQ0tFRChzc2NfaW5mb1swXS5sb2NrKSwKKwkgLmRpcl9tYXNrID0gU1NDX0RJUl9NQVNLX1VOVVNFRCwKKwkgLmluaXRpYWxpemVkID0gMCwKKwkgfSwKKwl7CisJIC5uYW1lID0gInNzYzEiLAorCSAubG9jayA9IF9fU1BJTl9MT0NLX1VOTE9DS0VEKHNzY19pbmZvWzFdLmxvY2spLAorCSAuZGlyX21hc2sgPSBTU0NfRElSX01BU0tfVU5VU0VELAorCSAuaW5pdGlhbGl6ZWQgPSAwLAorCSB9LAorCXsKKwkgLm5hbWUgPSAic3NjMiIsCisJIC5sb2NrID0gX19TUElOX0xPQ0tfVU5MT0NLRUQoc3NjX2luZm9bMl0ubG9jayksCisJIC5kaXJfbWFzayA9IFNTQ19ESVJfTUFTS19VTlVTRUQsCisJIC5pbml0aWFsaXplZCA9IDAsCisJIH0sCit9OworCisKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAorICogSVNSCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIFNTQyBpbnRlcnJ1cHQgaGFuZGxlci4gIFBhc3NlcyBQREMgaW50ZXJydXB0cyB0byB0aGUgRE1BIGludGVycnVwdAorICogaGFuZGxlciBpbiB0aGUgUENNIGRyaXZlci4KKyAqLworc3RhdGljIGlycXJldHVybl90IGF0MzJfc3NjX2ludGVycnVwdChpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gZGV2X2lkOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpkbWFfcGFyYW1zOworCXUzMiBzc2Nfc3I7CisJdTMyIHNzY19zdWJzdHJlYW1fbWFzazsKKwlpbnQgaTsKKworCXNzY19zciA9IChzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgU1IpICYKKwkJICBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgSU1SKSk7CisKKwkvKgorCSAqIExvb3AgdGhyb3VnaCBzdWJzdHJlYW1zIGF0dGFjaGVkIHRvIHRoaXMgU1NDLiAgSWYgYSBETUEtcmVsYXRlZAorCSAqIGludGVycnVwdCBvY2N1cmVkIG9uIHRoYXQgc3Vic3RyZWFtLCBjYWxsIHRoZSBETUEgaW50ZXJydXB0CisJICogaGFuZGxlciBmdW5jdGlvbiwgaWYgb25lIGhhcyBiZWVuIHJlZ2lzdGVyZWQgaW4gdGhlIGRtYV9wYXJhbQorCSAqIHN0cnVjdHVyZSBieSB0aGUgUENNIGRyaXZlci4KKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShzc2NfcC0+ZG1hX3BhcmFtcyk7IGkrKykgeworCQlkbWFfcGFyYW1zID0gc3NjX3AtPmRtYV9wYXJhbXNbaV07CisKKwkJaWYgKChkbWFfcGFyYW1zICE9IE5VTEwpICYmCisJCSAgICAoZG1hX3BhcmFtcy0+ZG1hX2ludHJfaGFuZGxlciAhPSBOVUxMKSkgeworCQkJc3NjX3N1YnN0cmVhbV9tYXNrID0gKGRtYV9wYXJhbXMtPm1hc2stPnNzY19lbmR4IHwKKwkJCQkJICAgICAgZG1hX3BhcmFtcy0+bWFzay0+c3NjX2VuZGJ1Zik7CisJCQlpZiAoc3NjX3NyICYgc3NjX3N1YnN0cmVhbV9tYXNrKSB7CisJCQkJZG1hX3BhcmFtcy0+ZG1hX2ludHJfaGFuZGxlcihzc2Nfc3IsCisJCQkJCQkJICAgICBkbWFfcGFyYW1zLT4KKwkJCQkJCQkgICAgIHN1YnN0cmVhbSk7CisJCQl9CisJCX0KKwl9CisKKworCXJldHVybiBJUlFfSEFORExFRDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIERBSSBmdW5jdGlvbnMKK1wqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKgorICogU3RhcnR1cC4gIE9ubHkgdGhhdCBvbmUgc3Vic3RyZWFtIGFsbG93ZWQgaW4gZWFjaCBkaXJlY3Rpb24uCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW3J0ZC0+ZGFpLT5jcHVfZGFpLT5pZF07CisJaW50IGRpcl9tYXNrOworCisJZGlyX21hc2sgPSAoKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spID8KKwkJICAgIFNTQ19ESVJfTUFTS19QTEFZQkFDSyA6IFNTQ19ESVJfTUFTS19DQVBUVVJFKTsKKworCXNwaW5fbG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKwlpZiAoc3NjX3AtPmRpcl9tYXNrICYgZGlyX21hc2spIHsKKwkJc3Bpbl91bmxvY2tfaXJxKCZzc2NfcC0+bG9jayk7CisJCXJldHVybiAtRUJVU1k7CisJfQorCXNzY19wLT5kaXJfbWFzayB8PSBkaXJfbWFzazsKKwlzcGluX3VubG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKworCXJldHVybiAwOworfQorCisKKworLyoKKyAqIFNodXRkb3duLiAgQ2xlYXIgRE1BIHBhcmFtZXRlcnMgYW5kIHNodXRkb3duIHRoZSBTU0MgaWYgdGhlcmUKKyAqIGFyZSBubyBvdGhlciBzdWJzdHJlYW1zIG9wZW4uCisgKi8KK3N0YXRpYyB2b2lkIGF0MzJfc3NjX3NodXRkb3duKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bcnRkLT5kYWktPmNwdV9kYWktPmlkXTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKwlpbnQgZGlyX21hc2s7CisKKwlkbWFfcGFyYW1zID0gc3NjX3AtPmRtYV9wYXJhbXNbc3Vic3RyZWFtLT5zdHJlYW1dOworCisJaWYgKGRtYV9wYXJhbXMgIT0gTlVMTCkgeworCQlzc2Nfd3JpdGVsKGRtYV9wYXJhbXMtPnNzYy0+cmVncywgQ1IsCisJCQkgICBkbWFfcGFyYW1zLT5tYXNrLT5zc2NfZGlzYWJsZSk7CisJCXByX2RlYnVnKCIlcyBkaXNhYmxlZCBTU0NfU1I9MHglMDh4XG4iLAorCQkJIChzdWJzdHJlYW0tPnN0cmVhbSA/ICJyZWNlaXZlciIgOiAidHJhbnNtaXQiKSwKKwkJCSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgU1IpKTsKKworCQlkbWFfcGFyYW1zLT5zc2MgPSBOVUxMOworCQlkbWFfcGFyYW1zLT5zdWJzdHJlYW0gPSBOVUxMOworCQlzc2NfcC0+ZG1hX3BhcmFtc1tzdWJzdHJlYW0tPnN0cmVhbV0gPSBOVUxMOworCX0KKworCisJZGlyX21hc2sgPSAxIDw8IHN1YnN0cmVhbS0+c3RyZWFtOworCXNwaW5fbG9ja19pcnEoJnNzY19wLT5sb2NrKTsKKwlzc2NfcC0+ZGlyX21hc2sgJj0gfmRpcl9tYXNrOworCWlmICghc3NjX3AtPmRpcl9tYXNrKSB7CisJCS8qIFNodXRkb3duIHRoZSBTU0MgY2xvY2sgKi8KKwkJcHJfZGVidWcoImF0MzItc3NjOiBTdG9wcGluZyB1c2VyICVkIGNsb2NrXG4iLAorCQkJIHNzY19wLT5zc2MtPnVzZXIpOworCQljbGtfZGlzYWJsZShzc2NfcC0+c3NjLT5jbGspOworCisJCWlmIChzc2NfcC0+aW5pdGlhbGl6ZWQpIHsKKwkJCWZyZWVfaXJxKHNzY19wLT5zc2MtPmlycSwgc3NjX3ApOworCQkJc3NjX3AtPmluaXRpYWxpemVkID0gMDsKKwkJfQorCisJCS8qIFJlc2V0IHRoZSBTU0MgKi8KKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgU1NDX0JJVChDUl9TV1JTVCkpOworCisJCS8qIGNsZWFyIHRoZSBTU0MgZGl2aWRlcnMgKi8KKwkJc3NjX3AtPmNtcl9kaXYgPSAwOworCQlzc2NfcC0+dGNtcl9wZXJpb2QgPSAwOworCQlzc2NfcC0+cmNtcl9wZXJpb2QgPSAwOworCX0KKwlzcGluX3VubG9ja19pcnEoJnNzY19wLT5sb2NrKTsKK30KKworCisKKy8qCisgKiBTZXQgdGhlIFNTQyBzeXN0ZW0gY2xvY2sgcmF0ZQorICovCitzdGF0aWMgaW50IGF0MzJfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKKwkJCQkgICBpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKK3sKKwkvKiBUT0RPOiBXaGF0IHRoZSBoZWNrIGRvIEkgZG8gaGVyZT8gKi8KKwlyZXR1cm4gMDsKK30KKworCisKKy8qCisgKiBSZWNvcmQgREFJIGZvcm1hdCBmb3IgdXNlIGJ5IGh3X3BhcmFtcygpCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorCQkJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2NwdV9kYWktPmlkXTsKKworCXNzY19wLT5kYWlmbXQgPSBmbXQ7CisJcmV0dXJuIDA7Cit9CisKKworCisvKgorICogUmVjb3JkIFNTQyBjbG9jayBkaXZpZGVycyBmb3IgdXNlIGluIGh3X3BhcmFtcygpCisgKi8KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAorCQkJCSAgIGludCBkaXZfaWQsIGludCBkaXYpCit7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2NwdV9kYWktPmlkXTsKKworCXN3aXRjaCAoZGl2X2lkKSB7CisJY2FzZSBBVDMyX1NTQ19DTVJfRElWOgorCQkvKgorCQkgKiBUaGUgc2FtZSBtYXN0ZXIgY2xvY2sgZGl2aWRlciBpcyB1c2VkIGZvciBib3RoCisJCSAqIHRyYW5zbWl0IGFuZCByZWNlaXZlLCBzbyBpZiBhIHZhbHVlIGhhcyBhbHJlYWR5CisJCSAqIGJlZW4gc2V0LCBpdCBtdXN0IG1hdGNoIHRoaXMgdmFsdWUKKwkJICovCisJCWlmIChzc2NfcC0+Y21yX2RpdiA9PSAwKQorCQkJc3NjX3AtPmNtcl9kaXYgPSBkaXY7CisJCWVsc2UgaWYgKGRpdiAhPSBzc2NfcC0+Y21yX2RpdikKKwkJCXJldHVybiAtRUJVU1k7CisJCWJyZWFrOworCisJY2FzZSBBVDMyX1NTQ19UQ01SX1BFUklPRDoKKwkJc3NjX3AtPnRjbXJfcGVyaW9kID0gZGl2OworCQlicmVhazsKKworCWNhc2UgQVQzMl9TU0NfUkNNUl9QRVJJT0Q6CisJCXNzY19wLT5yY21yX3BlcmlvZCA9IGRpdjsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworCisKKy8qCisgKiBDb25maWd1cmUgdGhlIFNTQworICovCitzdGF0aWMgaW50IGF0MzJfc3NjX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwkJCSAgICAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlpbnQgaWQgPSBydGQtPmRhaS0+Y3B1X2RhaS0+aWQ7CisJc3RydWN0IGF0MzJfc3NjX2luZm8gKnNzY19wID0gJnNzY19pbmZvW2lkXTsKKwlzdHJ1Y3QgYXQzMl9wY21fZG1hX3BhcmFtcyAqZG1hX3BhcmFtczsKKwlpbnQgY2hhbm5lbHMsIGJpdHM7CisJdTMyIHRmbXIsIHJmbXIsIHRjbXIsIHJjbXI7CisJaW50IHN0YXJ0X2V2ZW50OworCWludCByZXQ7CisKKworCS8qCisJICogQ3VycmVudGx5LCB0aGVyZSBpcyBvbmx5IG9uZSBzZXQgb2YgZG1hX3BhcmFtcyBmb3IgZWFjaCBkaXJlY3Rpb24uCisJICogSWYgbW9yZSBhcmUgYWRkZWQsIHRoaXMgY29kZSB3aWxsIGhhdmUgdG8gYmUgY2hhbmdlZCB0byBzZWxlY3QKKwkgKiB0aGUgcHJvcGVyIHNldAorCSAqLworCWRtYV9wYXJhbXMgPSAmc3NjX2RtYV9wYXJhbXNbaWRdW3N1YnN0cmVhbS0+c3RyZWFtXTsKKwlkbWFfcGFyYW1zLT5zc2MgPSBzc2NfcC0+c3NjOworCWRtYV9wYXJhbXMtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKworCXNzY19wLT5kbWFfcGFyYW1zW3N1YnN0cmVhbS0+c3RyZWFtXSA9IGRtYV9wYXJhbXM7CisKKworCS8qCisJICogVGhlIGNwdV9kYWktPmRtYV9kYXRhIGZpZWxkIGlzIG9ubHkgdXNlZCB0byBjb21tdW5pY2F0ZSB0aGUKKwkgKiBhcHByb3ByaWF0ZSBETUEgcGFyYW1ldGVycyB0byB0aGUgUENNIGRyaXZlcidzIGh3X3BhcmFtcygpCisJICogZnVuY3Rpb24uICBJdCBzaG91bGQgbm90IGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzIGFzIGl0CisJICogaXMgY29tbW9uIHRvIGFsbCBzdWJzdHJlYW1zLgorCSAqLworCXJ0ZC0+ZGFpLT5jcHVfZGFpLT5kbWFfZGF0YSA9IGRtYV9wYXJhbXM7CisKKwljaGFubmVscyA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpOworCisKKwkvKgorCSAqIERldGVybWluZSBzYW1wbGUgc2l6ZSBpbiBiaXRzIGFuZCB0aGUgUERDIGluY3JlbWVudAorCSAqLworCXN3aXRjaCAocGFyYW1zX2Zvcm1hdChwYXJhbXMpKSB7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1M4OgorCQliaXRzID0gODsKKwkJZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSA9IDE7CisJCWJyZWFrOworCisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MxNjoKKwkJYml0cyA9IDE2OworCQlkbWFfcGFyYW1zLT5wZGNfeGZlcl9zaXplID0gMjsKKwkJYnJlYWs7CisKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzI0OgorCQliaXRzID0gMjQ7CisJCWRtYV9wYXJhbXMtPnBkY194ZmVyX3NpemUgPSA0OworCQlicmVhazsKKworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMzI6CisJCWJpdHMgPSAzMjsKKwkJZG1hX3BhcmFtcy0+cGRjX3hmZXJfc2l6ZSA9IDQ7CisJCWJyZWFrOworCisJZGVmYXVsdDoKKwkJcHJfd2FybmluZygiYXQzMi1zc2M6IFVuc3VwcG9ydGVkIFBDTSBmb3JtYXQgJWQiLAorCQkJICAgcGFyYW1zX2Zvcm1hdChwYXJhbXMpKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXByX2RlYnVnKCJhdDMyLXNzYzogYml0cyA9ICVkLCBwZGNfeGZlcl9zaXplID0gJWQsIGNoYW5uZWxzID0gJWRcbiIsCisJCSBiaXRzLCBkbWFfcGFyYW1zLT5wZGNfeGZlcl9zaXplLCBjaGFubmVscyk7CisKKworCS8qCisJICogVGhlIFNTQyBvbmx5IHN1cHBvcnRzIHVwIHRvIDE2LWJpdCBzYW1wbGVzIGluIEkyUyBmb3JtYXQsIGR1ZQorCSAqIHRvIHRoZSBzaXplIG9mIHRoZSBGcmFtZSBNb2RlIFJlZ2lzdGVyIEZTTEVOIGZpZWxkLgorCSAqLworCWlmICgoc3NjX3AtPmRhaWZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSA9PSBTTkRfU09DX0RBSUZNVF9JMlMpCisJCWlmIChiaXRzID4gMTYpIHsKKwkJCXByX3dhcm5pbmcoImF0MzItc3NjOiAiCisJCQkJICAgInNhbXBsZSBzaXplICVkIGlzIHRvbyBsYXJnZSBmb3IgSTJTXG4iLAorCQkJCSAgIGJpdHMpOworCQkJcmV0dXJuIC1FSU5WQUw7CisJCX0KKworCisJLyoKKwkgKiBDb21wdXRlIHRoZSBTU0MgcmVnaXN0ZXIgc2V0dGluZ3MKKwkgKi8KKwlzd2l0Y2ggKHNzY19wLT5kYWlmbXQgJiAoU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0sgfAorCQkJCSBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykpIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCS8qCisJCSAqIEkyUyBmb3JtYXQsIFNTQyBwcm92aWRlcyBCQ0xLIGFuZCBMUlMgY2xvY2tzLgorCQkgKgorCQkgKiBUaGUgU1NDIHRyYW5zbWl0IGFuZCByZWNlaXZlIGNsb2NrcyBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlCisJCSAqIE1DSyBkaXZpZGVyLCBhbmQgdGhlIEJDTEsgc2lnbmFsIGlzIG91dHB1dCBvbiB0aGUgU1NDIFRLIGxpbmUKKwkJICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU1NDIG1vZGUgaXMgSTJTIEJDTEsgLyBGUkFNRSBtYXN0ZXJcbiIpOworCQlyY21yID0gKFNTQ19CRihSQ01SX1BFUklPRCwgc3NjX3AtPnJjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoUkNNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJUX0ZBTExJTkdfUkYpIHwKKwkJCVNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpIHwKKwkJCVNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoUkNNUl9DS1MsIFNTQ19DS1NfRElWKSk7CisKKwkJcmZtciA9IChTU0NfQkYoUkZNUl9GU0VER0UsIFNTQ19GU0VER0VfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0ZTT1MsIFNTQ19GU09TX05FR0FUSVZFKSB8CisJCQlTU0NfQkYoUkZNUl9GU0xFTiwgYml0cyAtIDEpIHwKKwkJCVNTQ19CRihSRk1SX0RBVE5CLCBjaGFubmVscyAtIDEpIHwKKwkJCVNTQ19CSVQoUkZNUl9NU0JGKSB8IFNTQ19CRihSRk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKworCQl0Y21yID0gKFNTQ19CRihUQ01SX1BFUklPRCwgc3NjX3AtPnRjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoVENNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoVENNUl9TVEFSVCwgU1NDX1NUQVJUX0ZBTExJTkdfUkYpIHwKKwkJCVNTQ19CRihUQ01SX0NLSSwgU1NDX0NLSV9GQUxMSU5HKSB8CisJCQlTU0NfQkYoVENNUl9DS08sIFNTQ19DS09fQ09OVElOVU9VUykgfAorCQkJU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVikpOworCisJCXRmbXIgPSAoU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoVEZNUl9GU09TLCBTU0NfRlNPU19ORUdBVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNMRU4sIGJpdHMgLSAxKSB8CisJCQlTU0NfQkYoVEZNUl9EQVROQiwgY2hhbm5lbHMgLSAxKSB8IFNTQ19CSVQoVEZNUl9NU0JGKSB8CisJCQlTU0NfQkYoVEZNUl9EQVRMRU4sIGJpdHMgLSAxKSk7CisJCWJyZWFrOworCisKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJCS8qCisJCSAqIEkyUyBmb3JtYXQsIENPREVDIHN1cHBsaWVzIEJDTEsgYW5kIExSQyBjbG9jay4KKwkJICoKKwkJICogVGhlIFNTQyB0cmFuc21pdCBjbG9jayBpcyBvYnRhaW5lZCBmcm9tIHRoZSBCQ0xLIHNpZ25hbAorCQkgKiBvbiB0aGUgVEsgbGluZSwgYW5kIHRoZSBTU0MgcmVjZWl2ZSBjbG9jayBpcyBnZW5lcmF0ZWQgZnJvbQorCQkgKiB0aGUgdHJhbnNtaXQgY2xvY2suCisJCSAqCisJCSAqIEZvciBzaW5nbGUgY2hhbm5lbCBkYXRhLCBvbmUgc2FtcGxlIGlzIHRyYW5zZmVycmVkIG9uIHRoZQorCQkgKiBmYWxsaW5nIGVkZ2Ugb2YgdGhlIExSQyBjbG9jay4gIEZvciB0d28gY2hhbm5lbCBkYXRhLCBvbmUKKwkJICogc2FtcGxlIGlzIHRyYW5zZmVycmVkIG9uIGJvdGggZWRnZXMgb2YgdGhlIExSQyBjbG9jay4KKwkJICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU1NDIG1vZGUgaXMgSTJTIEJDTEsgLyBGUkFNRSBzbGF2ZVxuIik7CisJCXN0YXJ0X2V2ZW50ID0gKChjaGFubmVscyA9PSAxKSA/CisJCQkgICAgICAgU1NDX1NUQVJUX0ZBTExJTkdfUkYgOiBTU0NfU1RBUlRfRURHRV9SRik7CisKKwkJcmNtciA9IChTU0NfQkYoUkNNUl9TVFRETFksIFNUQVJUX0RFTEFZKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgc3RhcnRfZXZlbnQpIHwKKwkJCVNTQ19CRihSQ01SX0NLSSwgU1NDX0NLSV9SSVNJTkcpIHwKKwkJCVNTQ19CRihSQ01SX0NLTywgU1NDX0NLT19OT05FKSB8CisJCQlTU0NfQkYoUkNNUl9DS1MsIFNTQ19DS1NfQ0xPQ0spKTsKKworCQlyZm1yID0gKFNTQ19CRihSRk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFJGTVJfRlNPUywgU1NDX0ZTT1NfTk9ORSkgfAorCQkJU1NDX0JJVChSRk1SX01TQkYpIHwgU1NDX0JGKFJGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCisJCXRjbXIgPSAoU1NDX0JGKFRDTVJfU1RURExZLCBTVEFSVF9ERUxBWSkgfAorCQkJU1NDX0JGKFRDTVJfU1RBUlQsIHN0YXJ0X2V2ZW50KSB8CisJCQlTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfRkFMTElORykgfAorCQkJU1NDX0JGKFRDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpIHwKKwkJCVNTQ19CRihUQ01SX0NLUywgU1NDX0NLU19QSU4pKTsKKworCQl0Zm1yID0gKFNTQ19CRihURk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfRlNPUywgU1NDX0ZTT1NfTk9ORSkgfAorCQkJU1NDX0JJVChURk1SX01TQkYpIHwgU1NDX0JGKFRGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCQlicmVhazsKKworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQSB8IFNORF9TT0NfREFJRk1UX0NCU19DRlM6CisJCS8qCisJCSAqIERTUC9QQ00gTW9kZSBBIGZvcm1hdCwgU1NDIHByb3ZpZGVzIEJDTEsgYW5kIExSQyBjbG9ja3MuCisJCSAqCisJCSAqIFRoZSBTU0MgdHJhbnNtaXQgYW5kIHJlY2VpdmUgY2xvY2tzIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUKKwkJICogTUNLIGRpdmlkZXIsIGFuZCB0aGUgQkNMSyBzaWduYWwgaXMgb3V0cHV0IG9uIHRoZSBTU0MgVEsgbGluZQorCQkgKi8KKwkJcHJfZGVidWcoImF0MzItc3NjOiBTU0MgbW9kZSBpcyBEU1AgQSBCQ0xLIC8gRlJBTUUgbWFzdGVyXG4iKTsKKwkJcmNtciA9IChTU0NfQkYoUkNNUl9QRVJJT0QsIHNzY19wLT5yY21yX3BlcmlvZCkgfAorCQkJU1NDX0JGKFJDTVJfU1RURExZLCAxKSB8CisJCQlTU0NfQkYoUkNNUl9TVEFSVCwgU1NDX1NUQVJUX1JJU0lOR19SRikgfAorCQkJU1NDX0JGKFJDTVJfQ0tJLCBTU0NfQ0tJX1JJU0lORykgfAorCQkJU1NDX0JGKFJDTVJfQ0tPLCBTU0NfQ0tPX05PTkUpIHwKKwkJCVNTQ19CRihSQ01SX0NLUywgU1NDX0NLU19ESVYpKTsKKworCQlyZm1yID0gKFNTQ19CRihSRk1SX0ZTRURHRSwgU1NDX0ZTRURHRV9QT1NJVElWRSkgfAorCQkJU1NDX0JGKFJGTVJfRlNPUywgU1NDX0ZTT1NfUE9TSVRJVkUpIHwKKwkJCVNTQ19CRihSRk1SX0RBVE5CLCBjaGFubmVscyAtIDEpIHwKKwkJCVNTQ19CSVQoUkZNUl9NU0JGKSB8IFNTQ19CRihSRk1SX0RBVExFTiwgYml0cyAtIDEpKTsKKworCQl0Y21yID0gKFNTQ19CRihUQ01SX1BFUklPRCwgc3NjX3AtPnRjbXJfcGVyaW9kKSB8CisJCQlTU0NfQkYoVENNUl9TVFRETFksIDEpIHwKKwkJCVNTQ19CRihUQ01SX1NUQVJULCBTU0NfU1RBUlRfUklTSU5HX1JGKSB8CisJCQlTU0NfQkYoVENNUl9DS0ksIFNTQ19DS0lfUklTSU5HKSB8CisJCQlTU0NfQkYoVENNUl9DS08sIFNTQ19DS09fQ09OVElOVU9VUykgfAorCQkJU1NDX0JGKFRDTVJfQ0tTLCBTU0NfQ0tTX0RJVikpOworCisJCXRmbXIgPSAoU1NDX0JGKFRGTVJfRlNFREdFLCBTU0NfRlNFREdFX1BPU0lUSVZFKSB8CisJCQlTU0NfQkYoVEZNUl9GU09TLCBTU0NfRlNPU19QT1NJVElWRSkgfAorCQkJU1NDX0JGKFRGTVJfREFUTkIsIGNoYW5uZWxzIC0gMSkgfAorCQkJU1NDX0JJVChURk1SX01TQkYpIHwgU1NDX0JGKFRGTVJfREFUTEVOLCBiaXRzIC0gMSkpOworCQlicmVhazsKKworCisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQSB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJZGVmYXVsdDoKKwkJcHJfd2FybmluZygiYXQzMi1zc2M6IHVuc3VwcG9ydGVkIERBSSBmb3JtYXQgMHgleFxuIiwKKwkJCSAgIHNzY19wLT5kYWlmbXQpOworCQlyZXR1cm4gLUVJTlZBTDsKKwkJYnJlYWs7CisJfQorCXByX2RlYnVnKCJhdDMyLXNzYzogUkNNUj0lMDh4IFJGTVI9JTA4eCBUQ01SPSUwOHggVEZNUj0lMDh4XG4iLAorCQkgcmNtciwgcmZtciwgdGNtciwgdGZtcik7CisKKworCWlmICghc3NjX3AtPmluaXRpYWxpemVkKSB7CisJCS8qIGVuYWJsZSBwZXJpcGhlcmFsIGNsb2NrICovCisJCXByX2RlYnVnKCJhdDMyLXNzYzogU3RhcnRpbmcgY2xvY2tcbiIpOworCQljbGtfZW5hYmxlKHNzY19wLT5zc2MtPmNsayk7CisKKwkJLyogUmVzZXQgdGhlIFNTQyBhbmQgaXRzIFBEQyByZWdpc3RlcnMgKi8KKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDUiwgU1NDX0JJVChDUl9TV1JTVCkpOworCisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JQUiwgMCk7CisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JDUiwgMCk7CisJCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUERDX1JOUFIsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19STkNSLCAwKTsKKworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UUFIsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UQ1IsIDApOworCQlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFBEQ19UTlBSLCAwKTsKKwkJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBQRENfVE5DUiwgMCk7CisKKwkJcmV0ID0gcmVxdWVzdF9pcnEoc3NjX3AtPnNzYy0+aXJxLCBhdDMyX3NzY19pbnRlcnJ1cHQsIDAsCisJCQkJICBzc2NfcC0+bmFtZSwgc3NjX3ApOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJfd2FybmluZygiYXQzMi1zc2M6IHJlcXVlc3QgaXJxIGZhaWxlZCAoJWQpXG4iLCByZXQpOworCQkJcHJfZGVidWcoImF0MzItc3NjOiBTdG9wcGluZyBjbG9ja1xuIik7CisJCQljbGtfZGlzYWJsZShzc2NfcC0+c3NjLT5jbGspOworCQkJcmV0dXJuIHJldDsKKwkJfQorCisJCXNzY19wLT5pbml0aWFsaXplZCA9IDE7CisJfQorCisJLyogU2V0IFNTQyBjbG9jayBtb2RlIHJlZ2lzdGVyICovCisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDTVIsIHNzY19wLT5jbXJfZGl2KTsKKworCS8qIHNldCByZWNlaXZlIGNsb2NrIG1vZGUgYW5kIGZvcm1hdCAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUkNNUiwgcmNtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBSRk1SLCByZm1yKTsKKworCS8qIHNldCB0cmFuc21pdCBjbG9jayBtb2RlIGFuZCBmb3JtYXQgKi8KKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFRDTVIsIHRjbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgVEZNUiwgdGZtcik7CisKKwlwcl9kZWJ1ZygiYXQzMi1zc2M6IFNTQyBpbml0aWFsaXplZFxuIik7CisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfc3NjX3ByZXBhcmUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tydGQtPmRhaS0+Y3B1X2RhaS0+aWRdOworCXN0cnVjdCBhdDMyX3BjbV9kbWFfcGFyYW1zICpkbWFfcGFyYW1zOworCisJZG1hX3BhcmFtcyA9IHNzY19wLT5kbWFfcGFyYW1zW3N1YnN0cmVhbS0+c3RyZWFtXTsKKworCXNzY193cml0ZWwoZG1hX3BhcmFtcy0+c3NjLT5yZWdzLCBDUiwgZG1hX3BhcmFtcy0+bWFzay0+c3NjX2VuYWJsZSk7CisKKwlyZXR1cm4gMDsKK30KKworCisKKyNpZmRlZiBDT05GSUdfUE0KK3N0YXRpYyBpbnQgYXQzMl9zc2Nfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3A7CisKKwlpZiAoIWNwdV9kYWktPmFjdGl2ZSkKKwkJcmV0dXJuIDA7CisKKwlzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwkvKiBTYXZlIHRoZSBzdGF0dXMgcmVnaXN0ZXIgYmVmb3JlIGRpc2FibGluZyB0cmFuc21pdCBhbmQgcmVjZWl2ZSAqLworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX3NyID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFNSKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIENSLCBTU0NfQklUKENSX1RYRElTKSB8IFNTQ19CSVQoQ1JfUlhESVMpKTsKKworCS8qIFNhdmUgdGhlIGN1cnJlbnQgaW50ZXJydXB0IG1hc2ssIHRoZW4gZGlzYWJsZSB1bm1hc2tlZCBpbnRlcnJ1cHRzICovCisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfaW1yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIElNUik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBJRFIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX2ltcik7CisKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19jbXIgPSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgQ01SKTsKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY19yY21yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFJDTVIpOworCXNzY19wLT5zc2Nfc3RhdGUuc3NjX3JmbXIgPSBzc2NfcmVhZGwoc3NjX3AtPnNzYy0+cmVncywgUkZNUik7CisJc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGNtciA9IHNzY19yZWFkbChzc2NfcC0+c3NjLT5yZWdzLCBUQ01SKTsKKwlzc2NfcC0+c3NjX3N0YXRlLnNzY190Zm1yID0gc3NjX3JlYWRsKHNzY19wLT5zc2MtPnJlZ3MsIFRGTVIpOworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgaW50IGF0MzJfc3NjX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpKQoreworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcDsKKwl1MzIgY3I7CisKKwlpZiAoIWNwdV9kYWktPmFjdGl2ZSkKKwkJcmV0dXJuIDA7CisKKwlzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CisKKwkvKiByZXN0b3JlIFNTQyByZWdpc3RlciBzZXR0aW5ncyAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgVEZNUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfdGZtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBUQ01SLCBzc2NfcC0+c3NjX3N0YXRlLnNzY190Y21yKTsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIFJGTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX3JmbXIpOworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgUkNNUiwgc3NjX3AtPnNzY19zdGF0ZS5zc2NfcmNtcik7CisJc3NjX3dyaXRlbChzc2NfcC0+c3NjLT5yZWdzLCBDTVIsIHNzY19wLT5zc2Nfc3RhdGUuc3NjX2Ntcik7CisKKwkvKiByZS1lbmFibGUgaW50ZXJydXB0cyAqLworCXNzY193cml0ZWwoc3NjX3AtPnNzYy0+cmVncywgSUVSLCBzc2NfcC0+c3NjX3N0YXRlLnNzY19pbXIpOworCisJLyogUmUtZW5hYmxlIHJlY2lldmUgYW5kIHRyYW5zbWl0IGFzIGFwcHJvcHJpYXRlICovCisJY3IgPSAwOworCWNyIHw9CisJICAgIChzc2NfcC0+c3NjX3N0YXRlLnNzY19zciAmIFNTQ19CSVQoU1JfUlhFTikpID8gU1NDX0JJVChDUl9SWEVOKSA6IDA7CisJY3IgfD0KKwkgICAgKHNzY19wLT5zc2Nfc3RhdGUuc3NjX3NyICYgU1NDX0JJVChTUl9UWEVOKSkgPyBTU0NfQklUKENSX1RYRU4pIDogMDsKKwlzc2Nfd3JpdGVsKHNzY19wLT5zc2MtPnJlZ3MsIENSLCBjcik7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlIC8qIENPTkZJR19QTSAqLworIyAgZGVmaW5lIGF0MzJfc3NjX3N1c3BlbmQJTlVMTAorIyAgZGVmaW5lIGF0MzJfc3NjX3Jlc3VtZQlOVUxMCisjZW5kaWYgLyogQ09ORklHX1BNICovCisKKworI2RlZmluZSBBVDMyX1NTQ19SQVRFUyBcCisgICAgKFNORFJWX1BDTV9SQVRFXzgwMDAgIHwgU05EUlZfUENNX1JBVEVfMTEwMjUgfCBTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFwKKyAgICAgU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV8zMjAwMCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgXAorICAgICBTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzg4MjAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCisKKworI2RlZmluZSBBVDMyX1NTQ19GT1JNQVRTIFwKKyAgICAoU05EUlZfUENNX0ZNVEJJVF9TOCAgfCBTTkRSVl9QQ01fRk1UQklUX1MxNiB8IFwKKyAgICAgU05EUlZfUENNX0ZNVEJJVF9TMjQgfCBTTkRSVl9QQ01fRk1UQklUX1MzMikKKworCitzdHJ1Y3Qgc25kX3NvY19kYWkgYXQzMl9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CisJeworCSAubmFtZSA9ICJhdDMyLXNzYzAiLAorCSAuaWQgPSAwLAorCSAudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKKwkgLnN1c3BlbmQgPSBhdDMyX3NzY19zdXNwZW5kLAorCSAucmVzdW1lID0gYXQzMl9zc2NfcmVzdW1lLAorCSAucGxheWJhY2sgPSB7CisJCSAgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICAgfSwKKwkgLmNhcHR1cmUgPSB7CisJCSAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgLnJhdGVzID0gQVQzMl9TU0NfUkFURVMsCisJCSAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgIH0sCisJIC5vcHMgPSB7CisJCSAuc3RhcnR1cCA9IGF0MzJfc3NjX3N0YXJ0dXAsCisJCSAuc2h1dGRvd24gPSBhdDMyX3NzY19zaHV0ZG93biwKKwkJIC5wcmVwYXJlID0gYXQzMl9zc2NfcHJlcGFyZSwKKwkJIC5od19wYXJhbXMgPSBhdDMyX3NzY19od19wYXJhbXMsCisJCSB9LAorCSAuZGFpX29wcyA9IHsKKwkJICAgICAuc2V0X3N5c2NsayA9IGF0MzJfc3NjX3NldF9kYWlfc3lzY2xrLAorCQkgICAgIC5zZXRfZm10ID0gYXQzMl9zc2Nfc2V0X2RhaV9mbXQsCisJCSAgICAgLnNldF9jbGtkaXYgPSBhdDMyX3NzY19zZXRfZGFpX2Nsa2RpdiwKKwkJICAgICB9LAorCSAucHJpdmF0ZV9kYXRhID0gJnNzY19pbmZvWzBdLAorCSB9LAorCXsKKwkgLm5hbWUgPSAiYXQzMi1zc2MxIiwKKwkgLmlkID0gMSwKKwkgLnR5cGUgPSBTTkRfU09DX0RBSV9QQ00sCisJIC5zdXNwZW5kID0gYXQzMl9zc2Nfc3VzcGVuZCwKKwkgLnJlc3VtZSA9IGF0MzJfc3NjX3Jlc3VtZSwKKwkgLnBsYXliYWNrID0geworCQkgICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAgLmNoYW5uZWxzX21heCA9IDIsCisJCSAgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgIH0sCisJIC5jYXB0dXJlID0geworCQkgICAgIC5jaGFubmVsc19taW4gPSAxLAorCQkgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgIC5yYXRlcyA9IEFUMzJfU1NDX1JBVEVTLAorCQkgICAgIC5mb3JtYXRzID0gQVQzMl9TU0NfRk9STUFUUywKKwkJICAgICB9LAorCSAub3BzID0geworCQkgLnN0YXJ0dXAgPSBhdDMyX3NzY19zdGFydHVwLAorCQkgLnNodXRkb3duID0gYXQzMl9zc2Nfc2h1dGRvd24sCisJCSAucHJlcGFyZSA9IGF0MzJfc3NjX3ByZXBhcmUsCisJCSAuaHdfcGFyYW1zID0gYXQzMl9zc2NfaHdfcGFyYW1zLAorCQkgfSwKKwkgLmRhaV9vcHMgPSB7CisJCSAgICAgLnNldF9zeXNjbGsgPSBhdDMyX3NzY19zZXRfZGFpX3N5c2NsaywKKwkJICAgICAuc2V0X2ZtdCA9IGF0MzJfc3NjX3NldF9kYWlfZm10LAorCQkgICAgIC5zZXRfY2xrZGl2ID0gYXQzMl9zc2Nfc2V0X2RhaV9jbGtkaXYsCisJCSAgICAgfSwKKwkgLnByaXZhdGVfZGF0YSA9ICZzc2NfaW5mb1sxXSwKKwkgfSwKKwl7CisJIC5uYW1lID0gImF0MzItc3NjMiIsCisJIC5pZCA9IDIsCisJIC50eXBlID0gU05EX1NPQ19EQUlfUENNLAorCSAuc3VzcGVuZCA9IGF0MzJfc3NjX3N1c3BlbmQsCisJIC5yZXN1bWUgPSBhdDMyX3NzY19yZXN1bWUsCisJIC5wbGF5YmFjayA9IHsKKwkJICAgICAgLmNoYW5uZWxzX21pbiA9IDEsCisJCSAgICAgIC5jaGFubmVsc19tYXggPSAyLAorCQkgICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAgLmZvcm1hdHMgPSBBVDMyX1NTQ19GT1JNQVRTLAorCQkgICAgICB9LAorCSAuY2FwdHVyZSA9IHsKKwkJICAgICAuY2hhbm5lbHNfbWluID0gMSwKKwkJICAgICAuY2hhbm5lbHNfbWF4ID0gMiwKKwkJICAgICAucmF0ZXMgPSBBVDMyX1NTQ19SQVRFUywKKwkJICAgICAuZm9ybWF0cyA9IEFUMzJfU1NDX0ZPUk1BVFMsCisJCSAgICAgfSwKKwkgLm9wcyA9IHsKKwkJIC5zdGFydHVwID0gYXQzMl9zc2Nfc3RhcnR1cCwKKwkJIC5zaHV0ZG93biA9IGF0MzJfc3NjX3NodXRkb3duLAorCQkgLnByZXBhcmUgPSBhdDMyX3NzY19wcmVwYXJlLAorCQkgLmh3X3BhcmFtcyA9IGF0MzJfc3NjX2h3X3BhcmFtcywKKwkJIH0sCisJIC5kYWlfb3BzID0geworCQkgICAgIC5zZXRfc3lzY2xrID0gYXQzMl9zc2Nfc2V0X2RhaV9zeXNjbGssCisJCSAgICAgLnNldF9mbXQgPSBhdDMyX3NzY19zZXRfZGFpX2ZtdCwKKwkJICAgICAuc2V0X2Nsa2RpdiA9IGF0MzJfc3NjX3NldF9kYWlfY2xrZGl2LAorCQkgICAgIH0sCisJIC5wcml2YXRlX2RhdGEgPSAmc3NjX2luZm9bMl0sCisJIH0sCit9OworRVhQT1JUX1NZTUJPTF9HUEwoYXQzMl9zc2NfZGFpKTsKKworCitNT0RVTEVfQVVUSE9SKCJHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQVQzMiBTU0MgQVNvQyBJbnRlcmZhY2UiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmggYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjMDUyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9hdDMyLXNzYy5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qIHNvdW5kL3NvYy9hdDMyL2F0MzItc3NjLmgKKyAqIEFTb0MgU1NDIGludGVyZmFjZSBmb3IgQXRtZWwgQVQzMiBTb0MKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggTG9uZyBSYW5nZSBTeXN0ZW1zCisgKiAgICBHZW9mZnJleSBXb3NzdW0gPGd3b3NzdW1AYWNtLm9yZz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX19TT1VORF9TT0NfQVQzMl9BVDMyX1NTQ19ICisjZGVmaW5lIF9fU09VTkRfU09DX0FUMzJfQVQzMl9TU0NfSCBfX0ZJTEVfXworCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9hdG1lbC1zc2MuaD4KKworI2luY2x1ZGUgImF0MzItcGNtLmgiCisKKworCitzdHJ1Y3QgYXQzMl9zc2Nfc3RhdGUgeworCXUzMiBzc2NfY21yOworCXUzMiBzc2NfcmNtcjsKKwl1MzIgc3NjX3JmbXI7CisJdTMyIHNzY190Y21yOworCXUzMiBzc2NfdGZtcjsKKwl1MzIgc3NjX3NyOworCXUzMiBzc2NfaW1yOworfTsKKworCisKK3N0cnVjdCBhdDMyX3NzY19pbmZvIHsKKwljaGFyICpuYW1lOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2M7CisJc3BpbmxvY2tfdCBsb2NrOwkvKiBsb2NrIGZvciBkaXJfbWFzayAqLworCXVuc2lnbmVkIHNob3J0IGRpcl9tYXNrOwkvKiAwPXVudXNlZCwgMT1wbGF5YmFjaywgMj1jYXB0dXJlICovCisJdW5zaWduZWQgc2hvcnQgaW5pdGlhbGl6ZWQ7CS8qIHRydWUgaWYgU1NDIGhhcyBiZWVuIGluaXRpYWxpemVkICovCisJdW5zaWduZWQgc2hvcnQgZGFpZm10OworCXVuc2lnbmVkIHNob3J0IGNtcl9kaXY7CisJdW5zaWduZWQgc2hvcnQgdGNtcl9wZXJpb2Q7CisJdW5zaWduZWQgc2hvcnQgcmNtcl9wZXJpb2Q7CisJc3RydWN0IGF0MzJfcGNtX2RtYV9wYXJhbXMgKmRtYV9wYXJhbXNbMl07CisJc3RydWN0IGF0MzJfc3NjX3N0YXRlIHNzY19zdGF0ZTsKK307CisKKworLyogU1NDIGRpdmlkZXIgaWRzICovCisjZGVmaW5lIEFUMzJfU1NDX0NNUl9ESVYgICAgICAgIDAJLyogTUNLIGRpdmlkZXIgZm9yIEJDTEsgKi8KKyNkZWZpbmUgQVQzMl9TU0NfVENNUl9QRVJJT0QgICAgMQkvKiBCQ0xLIGRpdmlkZXIgZm9yIHRyYW5zbWl0IEZTICovCisjZGVmaW5lIEFUMzJfU1NDX1JDTVJfUEVSSU9EICAgIDIJLyogQkNMSyBkaXZpZGVyIGZvciByZWNlaXZlIEZTICovCisKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdDMyX3NzY19kYWlbXTsKKworCisKKyNlbmRpZiAvKiBfX1NPVU5EX1NPQ19BVDMyX0FUMzJfU1NDX0ggKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDMyL3BsYXlwYXFfd204NTEwLmMgYi9zb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlZTVmOGUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCkBAIC0wLDAgKzEsNTIyIEBACisvKiBzb3VuZC9zb2MvYXQzMi9wbGF5cGFxX3dtODUxMC5jCisgKiBBU29DIG1hY2hpbmUgZHJpdmVyIGZvciBQbGF5UGFxIHVzaW5nIFdNODUxMCBjb2RlYworICoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBMb25nIFJhbmdlIFN5c3RlbXMKKyAqICAgIEdlb2ZmcmV5IFdvc3N1bSA8Z3dvc3N1bUBhY20ub3JnPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBjb2RlIGlzIGxhcmdlbHkgaW5zcGlyZWQgYnkgc291bmQvc29jL2F0OTEvZXRpX2IxX3dtODczMS5jCisgKgorICogTk9URTogSWYgeW91IGRvbid0IGhhdmUgdGhlIEFUMzIgZW5oYW5jZWQgcG9ydG11eCBjb25maWd1cmVkICh3aGljaAorICogaXNuJ3QgY3VycmVudGx5IGluIHRoZSBtYWlubGluZSBvciBBdG1lbCBwYXRjaGVkIGtlcm5lbCksIHlvdSB3aWxsCisgKiBuZWVkIHRvIHNldCB0aGUgTUNMSyBwaW4gKFBBMzApIHRvIHBlcmlwaGVyYWwgQSBpbiB5b3VyIGJvYXJkIGluaXRpYWxpemF0aW9uCisgKiBjb2RlLiAgU29tZXRoaW5nIGxpa2U6CisgKglhdDMyX3NlbGVjdF9wZXJpcGgoR1BJT19QSU5fUEEoMzApLCBHUElPX1BFUklQSF9BLCAwKTsKKyAqCisgKi8KKworLyogI2RlZmluZSBERUJVRyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KKyNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorCisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbV9wYXJhbXMuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorCisjaW5jbHVkZSA8YXNtL2FyY2gvYXQzMmFwNzAweC5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL3BvcnRtdXguaD4KKworI2luY2x1ZGUgIi4uL2NvZGVjcy93bTg1MTAuaCIKKyNpbmNsdWRlICJhdDMyLXBjbS5oIgorI2luY2x1ZGUgImF0MzItc3NjLmgiCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIGNvbnN0YW50cworXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNkZWZpbmUgTUNMS19QSU4JCUdQSU9fUElOX1BBKDMwKQorI2RlZmluZSBNQ0xLX1BFUklQSAkJR1BJT19QRVJJUEhfQQorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBkYXRhIHR5cGVzCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogU1NDIGNsb2NraW5nIGRhdGEgKi8KK3N0cnVjdCBzc2NfY2xvY2tfZGF0YSB7CisJLyogQ01SIGRpdiAqLworCXVuc2lnbmVkIGludCBjbXJfZGl2OworCisJLyogRnJhbWUgcGVyaW9kIChhcyBuZWVkZWQgYnkgeENNUi5QRVJJT0QpICovCisJdW5zaWduZWQgaW50IHBlcmlvZDsKKworCS8qIFRoZSBTU0MgY2xvY2sgcmF0ZSB0aGVzZSBzZXR0aW5ncyB3aGVyZSBjYWxjdWxhdGVkIGZvciAqLworCXVuc2lnbmVkIGxvbmcgc3NjX3JhdGU7Cit9OworCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCisgKiBtb2R1bGUgZGF0YQorXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzdHJ1Y3QgY2xrICpfZ2NsazA7CitzdGF0aWMgc3RydWN0IGNsayAqX3BsbDA7CisKKyNkZWZpbmUgQ09ERUNfQ0xLIChfZ2NsazApCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKKyAqIFNvdW5kIFNPQyBvcGVyYXRpb25zCitcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2lmIGRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCitzdGF0aWMgc3RydWN0IHNzY19jbG9ja19kYXRhIHBsYXlwYXFfd204NTEwX2NhbGNfc3NjX2Nsb2NrKAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zLAorCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNzY19kZXZpY2UgKnNzYyA9IHNzY19wLT5zc2M7CisJc3RydWN0IHNzY19jbG9ja19kYXRhIGNkOworCXVuc2lnbmVkIGludCByYXRlLCB3aWR0aF9iaXRzLCBjaGFubmVsczsKKwl1bnNpZ25lZCBpbnQgYml0cmF0ZSwgc3NjX2RpdjsKKwl1bnNpZ25lZCBhY3R1YWxfcmF0ZTsKKworCisJLyoKKwkgKiBGaWd1cmUgb3V0IHJlcXVpcmVkIGJpdHJhdGUKKwkgKi8KKwlyYXRlID0gcGFyYW1zX3JhdGUocGFyYW1zKTsKKwljaGFubmVscyA9IHBhcmFtc19jaGFubmVscyhwYXJhbXMpOworCXdpZHRoX2JpdHMgPSBzbmRfcGNtX2Zvcm1hdF9waHlzaWNhbF93aWR0aChwYXJhbXNfZm9ybWF0KHBhcmFtcykpOworCWJpdHJhdGUgPSByYXRlICogd2lkdGhfYml0cyAqIGNoYW5uZWxzOworCisKKwkvKgorCSAqIEZpZ3VyZSBvdXQgcmVxdWlyZWQgU1NDIGRpdmlkZXIgYW5kIHBlcmlvZCBmb3IgcmVxdWlyZWQgYml0cmF0ZQorCSAqLworCWNkLnNzY19yYXRlID0gY2xrX2dldF9yYXRlKHNzYy0+Y2xrKTsKKwlzc2NfZGl2ID0gY2Quc3NjX3JhdGUgLyBiaXRyYXRlOworCWNkLmNtcl9kaXYgPSBzc2NfZGl2IC8gMjsKKwlpZiAoc3NjX2RpdiAmIDEpIHsKKwkJLyogcm91bmQgY21yX2RpdiB1cCAqLworCQljZC5jbXJfZGl2Kys7CisJfQorCWNkLnBlcmlvZCA9IHdpZHRoX2JpdHMgLSAxOworCisKKwkvKgorCSAqIEZpbmQgYWN0dWFsIHJhdGUsIGNvbXBhcmUgdG8gcmVxdWVzdGVkIHJhdGUKKwkgKi8KKwlhY3R1YWxfcmF0ZSA9IChjZC5zc2NfcmF0ZSAvIChjZC5jbXJfZGl2ICogMikpIC8gKDIgKiAoY2QucGVyaW9kICsgMSkpOworCXByX2RlYnVnKCJwbGF5cGFxX3dtODUxMDogUmVxdWVzdCByYXRlID0gJWQsIGFjdHVhbCByYXRlID0gJWRcbiIsCisJCSByYXRlLCBhY3R1YWxfcmF0ZSk7CisKKworCXJldHVybiBjZDsKK30KKyNlbmRpZiAvKiBDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVFfU0xBVkUgKi8KKworCisKK3N0YXRpYyBpbnQgcGxheXBhcV93bTg1MTBfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9IGNwdV9kYWktPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc3NjX2RldmljZSAqc3NjID0gc3NjX3AtPnNzYzsKKwl1bnNpZ25lZCBpbnQgcGxsX291dCA9IDAsIGJjbGsgPSAwLCBtY2xrX2RpdiA9IDA7CisJaW50IHJldDsKKworCisJLyogRHVlIHRvIGRpZmZpY3VsdGllcyB3aXRoIGdldHRpbmcgdGhlIGNvcnJlY3QgY2xvY2tzIGZyb20gdGhlIEFUMzIncworCSAqIFBMTDAsIHdlJ3JlIGdvaW5nIHRvIGxldCB0aGUgQ09ERUMgYmUgaW4gY2hhcmdlIG9mIGFsbCB0aGUgY2xvY2tzCisJICovCisjaWYgIWRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisJY29uc3QgdW5zaWduZWQgaW50IGZtdCA9IChTTkRfU09DX0RBSUZNVF9JMlMgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfTkJfTkYgfAorCQkJCSAgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CisjZWxzZQorCXN0cnVjdCBzc2NfY2xvY2tfZGF0YSBjZDsKKwljb25zdCB1bnNpZ25lZCBpbnQgZm10ID0gKFNORF9TT0NfREFJRk1UX0kyUyB8CisJCQkJICBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CisJCQkJICBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKKyNlbmRpZgorCisJaWYgKHNzYyA9PSBOVUxMKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwX2h3X3BhcmFtczogc3NjIGlzIE5VTEwhXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisKKwkvKgorCSAqIEZpZ3VyZSBvdXQgUExMIGFuZCBCQ0xLIGRpdmlkZXJzIGZvciBXTTg1MTAKKwkgKi8KKwlzd2l0Y2ggKHBhcmFtc19yYXRlKHBhcmFtcykpIHsKKwljYXNlIDQ4MDAwOgorCQlwbGxfb3V0ID0gMTIyODgwMDA7CisJCW1jbGtfZGl2ID0gV004NTEwX01DTEtESVZfMTsKKwkJYmNsayA9IFdNODUxMF9CQ0xLRElWXzg7CisJCWJyZWFrOworCisJY2FzZSA0NDEwMDoKKwkJcGxsX291dCA9IDExMjg5NjAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzE7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgMjIwNTA6CisJCXBsbF9vdXQgPSAxMTI4OTYwMDsKKwkJbWNsa19kaXYgPSBXTTg1MTBfTUNMS0RJVl8yOworCQliY2xrID0gV004NTEwX0JDTEtESVZfODsKKwkJYnJlYWs7CisKKwljYXNlIDE2MDAwOgorCQlwbGxfb3V0ID0gMTIyODgwMDA7CisJCW1jbGtfZGl2ID0gV004NTEwX01DTEtESVZfMzsKKwkJYmNsayA9IFdNODUxMF9CQ0xLRElWXzg7CisJCWJyZWFrOworCisJY2FzZSAxMTAyNToKKwkJcGxsX291dCA9IDExMjg5NjAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzQ7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWNhc2UgODAwMDoKKwkJcGxsX291dCA9IDEyMjg4MDAwOworCQltY2xrX2RpdiA9IFdNODUxMF9NQ0xLRElWXzY7CisJCWJjbGsgPSBXTTg1MTBfQkNMS0RJVl84OworCQlicmVhazsKKworCWRlZmF1bHQ6CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBVbnN1cHBvcnRlZCBzYW1wbGUgcmF0ZSAlZFxuIiwKKwkJCSAgIHBhcmFtc19yYXRlKHBhcmFtcykpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKworCS8qCisJICogc2V0IENQVSBhbmQgQ09ERUMgREFJIGNvbmZpZ3VyYXRpb24KKwkgKi8KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgZm10KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogIgorCQkJICAgIkZhaWxlZCB0byBzZXQgQ09ERUMgREFJIGZvcm1hdCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBmbXQpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiAiCisJCQkgICAiRmFpbGVkIHRvIHNldCBDUFUgREFJIGZvcm1hdCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKworCS8qCisJICogU2V0IENQVSBjbG9jayBjb25maWd1cmF0aW9uCisJICovCisjaWYgZGVmaW5lZCBDT05GSUdfU05EX0FUMzJfU09DX1BMQVlQQVFfU0xBVkUKKwljZCA9IHBsYXlwYXFfd204NTEwX2NhbGNfc3NjX2Nsb2NrKHBhcmFtcywgY3B1X2RhaSk7CisJcHJfZGVidWcoInBsYXlwYXFfd204NTEwOiBjbXJfZGl2ID0gJWQsIHBlcmlvZCA9ICVkXG4iLAorCQkgY2QuY21yX2RpdiwgY2QucGVyaW9kKTsKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksIEFUMzJfU1NDX0NNUl9ESVYsIGNkLmNtcl9kaXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENQVSBDTVJfRElWICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNwdV9kYWksIEFUMzJfU1NDX1RDTVJfUEVSSU9ELAorCQkJCQkgIGNkLnBlcmlvZCk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfd2FybmluZygicGxheXBhcV93bTg1MTA6ICIKKwkJCSAgICJGYWlsZWQgdG8gc2V0IENQVSB0cmFuc21pdCBwZXJpb2QgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorI2VuZGlmIC8qIENPTkZJR19TTkRfQVQzMl9TT0NfUExBWVBBUV9TTEFWRSAqLworCisKKwkvKgorCSAqIFNldCBDT0RFQyBjbG9jayBjb25maWd1cmF0aW9uCisJICovCisJcHJfZGVidWcoInBsYXlwYXFfd204NTEwOiAiCisJCSAicGxsX2luID0gJWxkLCBwbGxfb3V0ID0gJXUsIGJjbGsgPSAleCwgbWNsayA9ICV4XG4iLAorCQkgY2xrX2dldF9yYXRlKENPREVDX0NMSyksIHBsbF9vdXQsIGJjbGssIG1jbGtfZGl2KTsKKworCisjaWYgIWRlZmluZWQgQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODUxMF9CQ0xLRElWLCBiY2xrKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nCisJCSAgICAoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENPREVDIERBSSBCQ0xLRElWICglZClcbiIsCisJCSAgICAgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisjZW5kaWYgLyogQ09ORklHX1NORF9BVDMyX1NPQ19QTEFZUEFRX1NMQVZFICovCisKKworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9wbGwoY29kZWNfZGFpLCAwLAorCQkJCQkgY2xrX2dldF9yYXRlKENPREVDX0NMSyksIHBsbF9vdXQpOworCWlmIChyZXQgPCAwKSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBGYWlsZWQgdG8gc2V0IENPREVDIERBSSBQTEwgKCVkKVxuIiwKKwkJCSAgIHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfY2xrZGl2KGNvZGVjX2RhaSwgV004NTEwX01DTEtESVYsIG1jbGtfZGl2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl93YXJuaW5nKCJwbGF5cGFxX3dtODUxMDogRmFpbGVkIHRvIHNldCBDT0RFQyBNQ0xLRElWICglZClcbiIsCisJCQkgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCisJcmV0dXJuIDA7Cit9CisKKworCitzdGF0aWMgc3RydWN0IHNuZF9zb2Nfb3BzIHBsYXlwYXFfd204NTEwX29wcyA9IHsKKwkuaHdfcGFyYW1zID0gcGxheXBhcV93bTg1MTBfaHdfcGFyYW1zLAorfTsKKworCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCBwbGF5cGFxX2RhcG1fd2lkZ2V0c1tdID0geworCVNORF9TT0NfREFQTV9NSUMoIkludCBNaWMiLCBOVUxMKSwKKwlTTkRfU09DX0RBUE1fU1BLKCJFeHQgU3BrIiwgTlVMTCksCit9OworCisKKworc3RhdGljIGNvbnN0IGNoYXIgKmludGVyY29uW11bM10gPSB7CisJLyogc3BlYWtlciBjb25uZWN0ZWQgdG8gU1BLT1VUICovCisJeyJFeHQgU3BrIiwgTlVMTCwgIlNQS09VVFAifSwKKwl7IkV4dCBTcGsiLCBOVUxMLCAiU1BLT1VUTiJ9LAorCisJeyJNaWMgQmlhcyIsIE5VTEwsICJJbnQgTWljIn0sCisJeyJNSUNOIiwgTlVMTCwgIk1pYyBCaWFzIn0sCisJeyJNSUNQIiwgTlVMTCwgIk1pYyBCaWFzIn0sCisKKwkvKiBUZXJtaW5hdG9yICovCisJe05VTEwsIE5VTEwsIE5VTEx9LAorfTsKKworCisKK3N0YXRpYyBpbnQgcGxheXBhcV93bTg1MTBfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJaW50IGk7CisKKwkvKgorCSAqIEFkZCBEQVBNIHdpZGdldHMKKwkgKi8KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShwbGF5cGFxX2RhcG1fd2lkZ2V0cyk7IGkrKykKKwkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmcGxheXBhcV9kYXBtX3dpZGdldHNbaV0pOworCisKKworCS8qCisJICogU2V0dXAgYXVkaW8gcGF0aCBpbnRlcmNvbm5lY3RzCisJICovCisJZm9yIChpID0gMDsgaW50ZXJjb25baV1bMF0gIT0gTlVMTDsgaSsrKSB7CisJCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLAorCQkJCQkgICBpbnRlcmNvbltpXVswXSwKKwkJCQkJICAgaW50ZXJjb25baV1bMV0sIGludGVyY29uW2ldWzJdKTsKKwl9CisKKworCS8qIGFsd2F5cyBjb25uZWN0ZWQgcGlucyAqLworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSW50IE1pYyIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKKworCisKKwkvKiBNYWtlIENTQiBzaG93IFBMTCByYXRlICovCisJc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlYy0+ZGFpLCBXTTg1MTBfT1BDTEtESVYsCisJCQkJICAgICAgIFdNODUxMF9PUENMS0RJVl8xIHwgNCk7CisKKwlyZXR1cm4gMDsKK30KKworCisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayBwbGF5cGFxX3dtODUxMF9kYWkgPSB7CisJLm5hbWUgPSAiV004NTEwIiwKKwkuc3RyZWFtX25hbWUgPSAiV004NTEwIFBDTSIsCisJLmNwdV9kYWkgPSAmYXQzMl9zc2NfZGFpWzBdLAorCS5jb2RlY19kYWkgPSAmd204NTEwX2RhaSwKKwkuaW5pdCA9IHBsYXlwYXFfd204NTEwX2luaXQsCisJLm9wcyA9ICZwbGF5cGFxX3dtODUxMF9vcHMsCit9OworCisKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX21hY2hpbmUgc25kX3NvY19tYWNoaW5lX3BsYXlwYXEgPSB7CisJLm5hbWUgPSAiTFJTX1BsYXlQYXFfV004NTEwIiwKKwkuZGFpX2xpbmsgPSAmcGxheXBhcV93bTg1MTBfZGFpLAorCS5udW1fbGlua3MgPSAxLAorfTsKKworCisKK3N0YXRpYyBzdHJ1Y3Qgd204NTEwX3NldHVwX2RhdGEgcGxheXBhcV93bTg1MTBfc2V0dXAgPSB7CisJLmkyY19hZGRyZXNzID0gMHgxYSwKK307CisKKworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlIHBsYXlwYXFfd204NTEwX3NuZF9kZXZkYXRhID0geworCS5tYWNoaW5lID0gJnNuZF9zb2NfbWFjaGluZV9wbGF5cGFxLAorCS5wbGF0Zm9ybSA9ICZhdDMyX3NvY19wbGF0Zm9ybSwKKwkuY29kZWNfZGV2ID0gJnNvY19jb2RlY19kZXZfd204NTEwLAorCS5jb2RlY19kYXRhID0gJnBsYXlwYXFfd204NTEwX3NldHVwLAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBsYXlwYXFfc25kX2RldmljZTsKKworCitzdGF0aWMgaW50IF9faW5pdCBwbGF5cGFxX2Fzb2NfaW5pdCh2b2lkKQoreworCWludCByZXQgPSAwOworCXN0cnVjdCBhdDMyX3NzY19pbmZvICpzc2NfcCA9IHBsYXlwYXFfd204NTEwX2RhaS5jcHVfZGFpLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNzY19kZXZpY2UgKnNzYyA9IE5VTEw7CisKKworCS8qCisJICogUmVxdWVzdCBTU0MgZGV2aWNlCisJICovCisJc3NjID0gc3NjX3JlcXVlc3QoMCk7CisJaWYgKElTX0VSUihzc2MpKSB7CisJCXJldCA9IFBUUl9FUlIoc3NjKTsKKwkJc3NjID0gTlVMTDsKKwkJZ290byBlcnJfc3NjOworCX0KKwlzc2NfcC0+c3NjID0gc3NjOworCisKKwkvKgorCSAqIENvbmZpZ3VyZSBNQ0xLIGZvciBXTTg1MTAKKwkgKi8KKwlfZ2NsazAgPSBjbGtfZ2V0KE5VTEwsICJnY2xrMCIpOworCWlmIChJU19FUlIoX2djbGswKSkgeworCQlfZ2NsazAgPSBOVUxMOworCQlnb3RvIGVycl9nY2xrMDsKKwl9CisJX3BsbDAgPSBjbGtfZ2V0KE5VTEwsICJwbGwwIik7CisJaWYgKElTX0VSUihfcGxsMCkpIHsKKwkJX3BsbDAgPSBOVUxMOworCQlnb3RvIGVycl9wbGwwOworCX0KKwlpZiAoY2xrX3NldF9wYXJlbnQoX2djbGswLCBfcGxsMCkpIHsKKwkJcHJfd2FybmluZygic25kLXNvYy1wbGF5cGFxOiAiCisJCQkgICAiRmFpbGVkIHRvIHNldCBQTEwwIGFzIHBhcmVudCBmb3IgREFDIGNsb2NrXG4iKTsKKwkJZ290byBlcnJfc2V0X2NsazsKKwl9CisJY2xrX3NldF9yYXRlKENPREVDX0NMSywgMTIwMDAwMDApOworCWNsa19lbmFibGUoQ09ERUNfQ0xLKTsKKworI2lmIGRlZmluZWQgQ09ORklHX0FUMzJfRU5IQU5DRURfUE9SVE1VWAorCWF0MzJfc2VsZWN0X3BlcmlwaChNQ0xLX1BJTiwgTUNMS19QRVJJUEgsIDApOworI2VuZGlmCisKKworCS8qCisJICogQ3JlYXRlIGFuZCByZWdpc3RlciBwbGF0Zm9ybSBkZXZpY2UKKwkgKi8KKwlwbGF5cGFxX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIDApOworCWlmIChwbGF5cGFxX3NuZF9kZXZpY2UgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGVycl9kZXZpY2VfYWxsb2M7CisJfQorCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGxheXBhcV9zbmRfZGV2aWNlLCAmcGxheXBhcV93bTg1MTBfc25kX2RldmRhdGEpOworCXBsYXlwYXFfd204NTEwX3NuZF9kZXZkYXRhLmRldiA9ICZwbGF5cGFxX3NuZF9kZXZpY2UtPmRldjsKKworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQocGxheXBhcV9zbmRfZGV2aWNlKTsKKwlpZiAocmV0KSB7CisJCXByX3dhcm5pbmcoInBsYXlwYXFfd204NTEwOiBwbGF0Zm9ybV9kZXZpY2VfYWRkIGZhaWxlZCAoJWQpXG4iLAorCQkJICAgcmV0KTsKKwkJZ290byBlcnJfZGV2aWNlX2FkZDsKKwl9CisKKwlyZXR1cm4gMDsKKworCitlcnJfZGV2aWNlX2FkZDoKKwlpZiAocGxheXBhcV9zbmRfZGV2aWNlICE9IE5VTEwpIHsKKwkJcGxhdGZvcm1fZGV2aWNlX3B1dChwbGF5cGFxX3NuZF9kZXZpY2UpOworCQlwbGF5cGFxX3NuZF9kZXZpY2UgPSBOVUxMOworCX0KK2Vycl9kZXZpY2VfYWxsb2M6CitlcnJfc2V0X2NsazoKKwlpZiAoX3BsbDAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9wbGwwKTsKKwkJX3BsbDAgPSBOVUxMOworCX0KK2Vycl9wbGwwOgorCWlmIChfZ2NsazAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9nY2xrMCk7CisJCV9nY2xrMCA9IE5VTEw7CisJfQorZXJyX2djbGswOgorCWlmIChzc2MgIT0gTlVMTCkgeworCQlzc2NfZnJlZShzc2MpOworCQlzc2MgPSBOVUxMOworCX0KK2Vycl9zc2M6CisJcmV0dXJuIHJldDsKK30KKworCitzdGF0aWMgdm9pZCBfX2V4aXQgcGxheXBhcV9hc29jX2V4aXQodm9pZCkKK3sKKwlzdHJ1Y3QgYXQzMl9zc2NfaW5mbyAqc3NjX3AgPSBwbGF5cGFxX3dtODUxMF9kYWkuY3B1X2RhaS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzc2NfZGV2aWNlICpzc2M7CisKKwlpZiAoc3NjX3AgIT0gTlVMTCkgeworCQlzc2MgPSBzc2NfcC0+c3NjOworCQlpZiAoc3NjICE9IE5VTEwpCisJCQlzc2NfZnJlZShzc2MpOworCQlzc2NfcC0+c3NjID0gTlVMTDsKKwl9CisKKwlpZiAoX2djbGswICE9IE5VTEwpIHsKKwkJY2xrX3B1dChfZ2NsazApOworCQlfZ2NsazAgPSBOVUxMOworCX0KKwlpZiAoX3BsbDAgIT0gTlVMTCkgeworCQljbGtfcHV0KF9wbGwwKTsKKwkJX3BsbDAgPSBOVUxMOworCX0KKworI2lmIGRlZmluZWQgQ09ORklHX0FUMzJfRU5IQU5DRURfUE9SVE1VWAorCWF0MzJfZnJlZV9waW4oTUNMS19QSU4pOworI2VuZGlmCisKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihwbGF5cGFxX3NuZF9kZXZpY2UpOworCXBsYXlwYXFfc25kX2RldmljZSA9IE5VTEw7Cit9CisKK21vZHVsZV9pbml0KHBsYXlwYXFfYXNvY19pbml0KTsKK21vZHVsZV9leGl0KHBsYXlwYXFfYXNvY19leGl0KTsKKworTU9EVUxFX0FVVEhPUigiR2VvZmZyZXkgV29zc3VtIDxnd29zc3VtQGFjbS5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFTb0MgbWFjaGluZSBkcml2ZXIgZm9yIExSUyBQbGF5UGFxIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9LY29uZmlnIGIvc291bmQvc29jL2F0OTEvS2NvbmZpZwppbmRleCA1Y2I5M2ZkLi45MDUxODY1IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9hdDkxL0tjb25maWcKQEAgLTEsNiArMSw2IEBACiBjb25maWcgU05EX0FUOTFfU09DCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBmb3IgdGhlIEF0bWVsIEFUOTEgU3lzdGVtLW9uLUNoaXAiCi0JZGVwZW5kcyBvbiBBUkNIX0FUOTEgJiYgU05EX1NPQworCWRlcGVuZHMgb24gQVJDSF9BVDkxCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvCiAJICB0aGUgQVQ5MSBTU0MgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtcGNtLmMgYi9zb3VuZC9zb2MvYXQ5MS9hdDkxLXBjbS5jCmluZGV4IGNjYWM2YmQuLmQ0NzQ5MmIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtcGNtLmMKKysrIGIvc291bmQvc29jL2F0OTEvYXQ5MS1wY20uYwpAQCAtMzE4LDcgKzMxOCw3IEBACiBzdGF0aWMgdTY0IGF0OTFfcGNtX2RtYW1hc2sgPSAweGZmZmZmZmZmOwogCiBzdGF0aWMgaW50IGF0OTFfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCi0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIHN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJaW50IHJldCA9IDA7CiAKQEAgLTM2Nyw3ICszNjcsNyBAQAogCiAjaWZkZWYgQ09ORklHX1BNCiBzdGF0aWMgaW50IGF0OTFfcGNtX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKIAlzdHJ1Y3QgYXQ5MV9ydW50aW1lX2RhdGEgKnBydGQ7CkBAIC0zOTIsNyArMzkyLDcgQEAKIH0KIAogc3RhdGljIGludCBhdDkxX3BjbV9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJc3RydWN0IHNuZF9wY21fcnVudGltZSAqcnVudGltZSA9IGRhaS0+cnVudGltZTsKIAlzdHJ1Y3QgYXQ5MV9ydW50aW1lX2RhdGEgKnBydGQ7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5jIGIvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuYwppbmRleCBiYzM1ZDAwLi4wOTBlNjA3IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5jCisrKyBiL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmMKQEAgLTQxLDcgKzQxLDcgQEAKICNkZWZpbmUJREJHKHguLi4pCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoQ09ORklHX0FSQ0hfQVQ5MVNBTTkyNjApCisjaWYgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOTI2MCkgfHwgZGVmaW5lZChDT05GSUdfQVJDSF9BVDkxU0FNOUcyMCkKICNkZWZpbmUgTlVNX1NTQ19ERVZJQ0VTCQkxCiAjZWxzZQogI2RlZmluZSBOVU1fU1NDX0RFVklDRVMJCTMKQEAgLTI4MSw3ICsyODEsNyBAQAogLyoKICAqIFJlY29yZCB0aGUgU1NDIHN5c3RlbSBjbG9jayByYXRlLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJLyoKQEAgLTMwMyw3ICszMDMsNyBAQAogLyoKICAqIFJlY29yZCB0aGUgREFJIGZvcm1hdCBmb3IgdXNlIGluIGh3X3BhcmFtcygpLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3QgYXQ5MV9zc2NfaW5mbyAqc3NjX3AgPSAmc3NjX2luZm9bY3B1X2RhaS0+aWRdOwpAQCAtMzE1LDcgKzMxNSw3IEBACiAvKgogICogUmVjb3JkIFNTQyBjbG9jayBkaXZpZGVycyBmb3IgdXNlIGluIGh3X3BhcmFtcygpLgogICovCi1zdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IGF0OTFfc3NjX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAlpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXN0cnVjdCBhdDkxX3NzY19pbmZvICpzc2NfcCA9ICZzc2NfaW5mb1tjcHVfZGFpLT5pZF07CkBAIC02MzQsNyArNjM0LDcgQEAKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCBhdDkxX3NzY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkpCiB7CiAJc3RydWN0IGF0OTFfc3NjX2luZm8gKnNzY19wOwogCkBAIC02NjIsNyArNjYyLDcgQEAKIH0KIAogc3RhdGljIGludCBhdDkxX3NzY19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKIHsKIAlzdHJ1Y3QgYXQ5MV9zc2NfaW5mbyAqc3NjX3A7CiAKQEAgLTcwMCw3ICs3MDAsNyBAQAogI2RlZmluZSBBVDkxX1NTQ19GT1JNQVRTIChTTkRSVl9QQ01fRk1UQklUX1M4ICAgICB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHxcCiAJCQkgIFNORFJWX1BDTV9GTVRCSVRfUzI0X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgYXQ5MV9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgYXQ5MV9zc2NfZGFpW05VTV9TU0NfREVWSUNFU10gPSB7CiAJewkubmFtZSA9ICJhdDkxLXNzYzAiLAogCQkuaWQgPSAwLAogCQkudHlwZSA9IFNORF9TT0NfREFJX1BDTSwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmggYi9zb3VuZC9zb2MvYXQ5MS9hdDkxLXNzYy5oCmluZGV4IGIxODhmOTcuLjZiN2JmMzggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9hdDkxL2F0OTEtc3NjLmgKKysrIGIvc291bmQvc29jL2F0OTEvYXQ5MS1zc2MuaApAQCAtMjEsNyArMjEsNyBAQAogI2RlZmluZSBBVDkxU1NDX1RDTVJfUEVSSU9ECTEgLyogQkNMSyBkaXZpZGVyIGZvciB0cmFuc21pdCBGUyAqLwogI2RlZmluZSBBVDkxU1NDX1JDTVJfUEVSSU9ECTIgLyogQkNMSyBkaXZpZGVyIGZvciByZWNlaXZlIEZTICovCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGF0OTFfc3NjX2RhaVtdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhdDkxX3NzY19kYWlbXTsKIAogI2VuZGlmIC8qIF9BVDkxX1NTQ19IICovCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYyBiL3NvdW5kL3NvYy9hdDkxL2V0aV9iMV93bTg3MzEuYwppbmRleCAxMzQ3ZGNmLi5kNTMyZGU5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvYXQ5MS9ldGlfYjFfd204NzMxLmMKKysrIGIvc291bmQvc29jL2F0OTEvZXRpX2IxX3dtODczMS5jCkBAIC01MywxOCArNTMsMTggQEAKIHN0YXRpYyBpbnQgZXRpX2IxX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCByZXQ7CiAKIAkvKiBjcHUgY2xvY2sgaXMgdGhlIEFUOTEgbWFzdGVyIGNsb2NrIHNlbnQgdG8gdGhlIFNTQyAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X3N5c2NsayhjcHVfZGFpLCBBVDkxX1NZU0NMS19NQ0ssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBBVDkxX1NZU0NMS19NQ0ssCiAJCTYwMDAwMDAwLCBTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIGNvZGVjIHN5c3RlbSBjbG9jayBpcyBzdXBwbGllZCBieSBQQ0sxLCBzZXQgdG8gMTJNSHogKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssCiAJCTEyMDAwMDAwLCBTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTg3LDggKzg3LDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJaW50IHJldDsKIAogI2lmZGVmIENPTkZJR19TTkRfQVQ5MV9TT0NfRVRJX1NMQVZFCkBAIC05NiwxMyArOTYsMTMgQEAKIAlpbnQgY21yX2RpdiwgcGVyaW9kOwogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE0MSwxNyArMTQxLDE3IEBACiAJfQogCiAJLyogc2V0IHRoZSBNQ0sgZGl2aWRlciBmb3IgQkNMSyAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLCBBVDkxU1NDX0NNUl9ESVYsIGNtcl9kaXYpOworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwgQVQ5MVNTQ19DTVJfRElWLCBjbXJfZGl2KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKSB7CiAJCS8qIHNldCB0aGUgQkNMSyBkaXZpZGVyIGZvciBEQUNMUkMgKi8KLQkJcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KGNwdV9kYWksCisJCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY3B1X2RhaSwKIAkJCQkJCUFUOTFTU0NfVENNUl9QRVJJT0QsIHBlcmlvZCk7CiAJfSBlbHNlIHsKIAkJLyogc2V0IHRoZSBCQ0xLIGRpdmlkZXIgZm9yIEFEQ0xSQyAqLwotCQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYoY3B1X2RhaSwKKwkJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLAogCQkJCQkJQVQ5MVNTQ19SQ01SX1BFUklPRCwgcGVyaW9kKTsKIAl9CiAJaWYgKHJldCA8IDApCkBAIC0xNjMsMTMgKzE2MywxMyBAQAogCSAqLwogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNwdSBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTE5MSw3ICsxOTEsNyBAQAogCVNORF9TT0NfREFQTV9TUEsoIkV4dCBTcGsiLCBOVUxMKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICppbnRlcmNvbltdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgaW50ZXJjb25bXSA9IHsKIAogCS8qIHNwZWFrZXIgY29ubmVjdGVkIHRvIExIUE9VVCAqLwogCXsiRXh0IFNwayIsIE5VTEwsICJMSFBPVVQifSwKQEAgLTE5OSw5ICsxOTksNiBAQAogCS8qIG1pYyBpcyBjb25uZWN0ZWQgdG8gTWljIEphY2ssIHdpdGggV004NzMxIE1pYyBCaWFzICovCiAJeyJNSUNJTiIsIE5VTEwsICJNaWMgQmlhcyJ9LAogCXsiTWljIEJpYXMiLCBOVUxMLCAiSW50IE1pYyJ9LAotCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIC8qCkBAIC0yMDksMzAgKzIwNiwyNCBAQAogICovCiBzdGF0aWMgaW50IGV0aV9iMV93bTg3MzFfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7Ci0KIAlEQkcoImV0aV9iMV93bTg3MzFfaW5pdCgpIGNhbGxlZFxuIik7CiAKIAkvKiBBZGQgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvcihpID0gMDsgaSA8IEFSUkFZX1NJWkUoZXRpX2IxX2RhcG1fd2lkZ2V0cyk7IGkrKykgewotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZldGlfYjFfZGFwbV93aWRnZXRzW2ldKTsKLQl9CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgZXRpX2IxX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUoZXRpX2IxX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIHNwZWNpZmljIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cyAqLwotCWZvcihpID0gMDsgaW50ZXJjb25baV1bMF0gIT0gTlVMTDsgaSsrKSB7Ci0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBpbnRlcmNvbltpXVswXSwKLQkJCWludGVyY29uW2ldWzFdLCBpbnRlcmNvbltpXVsyXSk7Ci0JfQorCXNuZF9zb2NfZGFwbV9hZGRfcm91dGUoY29kZWMsIGludGVyY29uLCBBUlJBWV9TSVpFKGludGVyY29uKSk7CiAKIAkvKiBub3QgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJMSU5FSU4iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTExJTkVJTiIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJMSU5FSU4iKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMTElORUlOIik7CiAKIAkvKiBhbHdheXMgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkludCBNaWMiLCAxKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIDEpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSW50IE1pYyIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiRXh0IFNwayIpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L0tjb25maWcgYi9zb3VuZC9zb2MvYXUxeC9LY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMGE4OTMKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9LY29uZmlnCkBAIC0wLDAgKzEsMzIgQEAKKyMjCisjIyBBdTEyMDAvQXUxNTUwIFBTQyArIERCRE1BCisjIworY29uZmlnIFNORF9TT0NfQVUxWFBTQworCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIEF1MTIwMC9BdTEyNTAvQXUxNTUwIgorCWRlcGVuZHMgb24gU09DX0FVMTIwMCB8fCBTT0NfQVUxNTUwCisJaGVscAorCSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgUHJvZ3JhbW1hYmxlIFNlcmlhbAorCSAgQ29udHJvbGxlcnMgaW4gQUM5NyBhbmQgSTJTIG1vZGUsIGFuZCB0aGUgRGVzY3JpcHRvci1CYXNlZCBETUEKKwkgIENvbnRyb2xsZXIgKERCRE1BKSBhcyBmb3VuZCBvbiB0aGUgQXUxMjAwL0F1MTI1MC9BdTE1NTAgU29DLgorCitjb25maWcgU05EX1NPQ19BVTFYUFNDX0kyUworCXRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX0FVMVhQU0NfQUM5NworCXRyaXN0YXRlCisJc2VsZWN0IEFDOTdfQlVTCisJc2VsZWN0IFNORF9BQzk3X0NPREVDCisJc2VsZWN0IFNORF9TT0NfQUM5N19CVVMKKworCisjIworIyMgQm9hcmRzCisjIworY29uZmlnIFNORF9TT0NfU0FNUExFX1BTQ19BQzk3CisJdHJpc3RhdGUgIlNhbXBsZSBBdTEyeDAvQXUxNTUwIFBTQyBBQzk3IHNvdW5kIG1hY2hpbmUiCisJZGVwZW5kcyBvbiBTTkRfU09DX0FVMVhQU0MKKwlzZWxlY3QgU05EX1NPQ19BVTFYUFNDX0FDOTcKKwlzZWxlY3QgU05EX1NPQ19BQzk3X0NPREVDCisJaGVscAorCSAgVGhpcyBpcyBhIHNhbXBsZSBBQzk3IHNvdW5kIG1hY2hpbmUgZm9yIHVzZSBpbiBBdTEyeDAvQXUxNTUwCisJICBiYXNlZCBzeXN0ZW1zIHdoaWNoIGhhdmUgYXVkaW8gb24gUFNDMSAoZS5nLiBEYjEyMDAgZGVtb2JvYXJkKS4KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L01ha2VmaWxlIGIvc291bmQvc29jL2F1MXgvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM2OTUwYgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L01ha2VmaWxlCkBAIC0wLDAgKzEsMTMgQEAKKyMgQXUxMjAwL0F1MTU1MCBQU0MgYXVkaW8KK3NuZC1zb2MtYXUxeHBzYy1kYmRtYS1vYmpzIDo9IGRiZG1hMi5vCitzbmQtc29jLWF1MXhwc2MtaTJzLW9ianMgOj0gcHNjLWkycy5vCitzbmQtc29jLWF1MXhwc2MtYWM5Ny1vYmpzIDo9IHBzYy1hYzk3Lm8KKworb2JqLSQoQ09ORklHX1NORF9TT0NfQVUxWFBTQykgKz0gc25kLXNvYy1hdTF4cHNjLWRiZG1hLm8KK29iai0kKENPTkZJR19TTkRfU09DX0FVMVhQU0NfSTJTKSArPSBzbmQtc29jLWF1MXhwc2MtaTJzLm8KK29iai0kKENPTkZJR19TTkRfU09DX0FVMVhQU0NfQUM5NykgKz0gc25kLXNvYy1hdTF4cHNjLWFjOTcubworCisjIEJvYXJkcworc25kLXNvYy1zYW1wbGUtYWM5Ny1vYmpzIDo9IHNhbXBsZS1hYzk3Lm8KKworb2JqLSQoQ09ORklHX1NORF9TT0NfU0FNUExFX1BTQ19BQzk3KSArPSBzbmQtc29jLXNhbXBsZS1hYzk3Lm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L2RiZG1hMi5jIGIvc291bmQvc29jL2F1MXgvZGJkbWEyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ2NmQ5MwotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L2RiZG1hMi5jCkBAIC0wLDAgKzEsNDIxIEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIERNQSBnbHVlIGZvciBBdTF4LVBTQyBhdWRpby4KKyAqCisgKiBOT1RFOiBhbGwgb2YgdGhlc2UgZHJpdmVycyBjYW4gb25seSB3b3JrIHdpdGggYSBTSU5HTEUgaW5zdGFuY2UKKyAqCSBvZiBhIFBTQy4gTXVsdGlwbGUgaW5kZXBlbmRlbnQgYXVkaW8gZGV2aWNlcyBhcmUgaW1wb3NzaWJsZQorICoJIHdpdGggQVNvQyB2MS4KKyAqLworCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1tYXBwaW5nLmg+CisKKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MTAwMC5oPgorI2luY2x1ZGUgPGFzbS9tYWNoLWF1MXgwMC9hdTF4eHhfZGJkbWEuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxeHh4X3BzYy5oPgorCisjaW5jbHVkZSAicHNjLmgiCisKKy8qI2RlZmluZSBQQ01fREVCVUcqLworCisjZGVmaW5lIE1TRyh4Li4uKQlwcmludGsoS0VSTl9JTkZPICJhdTF4cHNjX3BjbTogIiB4KQorI2lmZGVmIFBDTV9ERUJVRworI2RlZmluZSBEQkcJCU1TRworI2Vsc2UKKyNkZWZpbmUgREJHKHguLi4pCWRvIHt9IHdoaWxlICgwKQorI2VuZGlmCisKK3N0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgeworCS8qIERETUEgY29udHJvbCBkYXRhICovCisJdW5zaWduZWQgaW50IGRkbWFfaWQ7CQkvKiBERE1BIGRpcmVjdGlvbiBJRCBmb3IgdGhpcyBQU0MgKi8KKwl1MzIgZGRtYV9jaGFuOwkJCS8qIERETUEgY29udGV4dCAqLworCisJLyogUENNIGNvbnRleHQgKGZvciBpcnEgaGFuZGxlcnMpICovCisJc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW07CisJdW5zaWduZWQgbG9uZyBjdXJyX3BlcmlvZDsJLyogY3VycmVudCBzZWdtZW50IERETUEgaXMgd29ya2luZyBvbiAqLworCXVuc2lnbmVkIGxvbmcgcV9wZXJpb2Q7CQkvKiBxdWV1ZSBwZXJpb2QocykgKi8KKwl1bnNpZ25lZCBsb25nIGRtYV9hcmVhOwkJLyogYWRkcmVzcyBvZiBxdWV1ZWQgRE1BIGFyZWEgKi8KKwl1bnNpZ25lZCBsb25nIGRtYV9hcmVhX3M7CS8qIHN0YXJ0IGFkZHJlc3Mgb2YgRE1BIGFyZWEgKi8KKwl1bnNpZ25lZCBsb25nIHBvczsJCS8qIGN1cnJlbnQgYnl0ZSBwb3NpdGlvbiBiZWluZyBwbGF5ZWQgKi8KKwl1bnNpZ25lZCBsb25nIHBlcmlvZHM7CQkvKiBudW1iZXIgb2YgU0cgc2VnbWVudHMgaW4gdG90YWwgKi8KKwl1bnNpZ25lZCBsb25nIHBlcmlvZF9ieXRlczsJLyogc2l6ZSBpbiBieXRlcyBvZiBvbmUgU0cgc2VnbWVudCAqLworCisJLyogcnVudGltZSBkYXRhICovCisJaW50IG1zYml0czsKK307CisKKy8qIGluc3RhbmNlIGRhdGEuIFRoZXJlIGNhbiBiZSBvbmx5IG9uZSwgTWFjTGVvZCEhISEgKi8KK3N0YXRpYyBzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICphdTF4cHNjX2F1ZGlvX3BjbWRtYVsyXTsKKworLyoKKyAqIFRoZXNlIHNldHRpbmdzIGFyZSBzb21ld2hhdCBva2F5LCBhdCBsZWFzdCBvbiBteSBtYWNoaW5lIGF1ZGlvIHBsYXlzCisgKiBhbG1vc3Qgc2tpcC1mcmVlLiBFc3BlY2lhbGx5IHRoZSA2NGtCIGJ1ZmZlciBzZWVtcyB0byBoZWxwIGEgTE9ULgorICovCisjZGVmaW5lIEFVMVhQU0NfUEVSSU9EX01JTl9CWVRFUwkxMDI0CisjZGVmaW5lIEFVMVhQU0NfQlVGRkVSX01JTl9CWVRFUwk2NTUzNgorCisjZGVmaW5lIEFVMVhQU0NfUENNX0ZNVFMJCQkJCVwKKwkoU05EUlZfUENNX0ZNVEJJVF9TOCAgICAgfCBTTkRSVl9QQ01fRk1UQklUX1U4IHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzE2X0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1UxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfVTE2X0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0JFIHwJXAorCSBTTkRSVl9QQ01fRk1UQklUX1UzMl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfVTMyX0JFIHwJXAorCSAwKQorCisvKiBQQ00gaGFyZHdhcmUgRE1BIGNhcGFiaWxpdGllcyAtIHBsYXRmb3JtIHNwZWNpZmljICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY21faGFyZHdhcmUgYXUxeHBzY19wY21faGFyZHdhcmUgPSB7CisJLmluZm8JCSAgPSBTTkRSVl9QQ01fSU5GT19NTUFQIHwgU05EUlZfUENNX0lORk9fTU1BUF9WQUxJRCB8CisJCQkgICAgU05EUlZfUENNX0lORk9fSU5URVJMRUFWRUQsCisJLmZvcm1hdHMJICA9IEFVMVhQU0NfUENNX0ZNVFMsCisJLnBlcmlvZF9ieXRlc19taW4gPSBBVTFYUFNDX1BFUklPRF9NSU5fQllURVMsCisJLnBlcmlvZF9ieXRlc19tYXggPSA0MDk2ICogMTAyNCAtIDEsCisJLnBlcmlvZHNfbWluCSAgPSAyLAorCS5wZXJpb2RzX21heAkgID0gNDA5NiwJLyogMiB0byBhcy1tdWNoLWFzLXlvdS1saWtlICovCisJLmJ1ZmZlcl9ieXRlc19tYXggPSA0MDk2ICogMTAyNCAtIDEsCisJLmZpZm9fc2l6ZQkgID0gMTYsCQkvKiBmaWZvIGVudHJpZXMgb2YgQUM5Ny9JMlMgUFNDICovCit9OworCitzdGF0aWMgdm9pZCBhdTF4X3BjbV9xdWV1ZV90eChzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpjZCkKK3sKKwlhdTF4eHhfZGJkbWFfcHV0X3NvdXJjZV9mbGFncyhjZC0+ZGRtYV9jaGFuLAorCQkJCSh2b2lkICopcGh5c190b192aXJ0KGNkLT5kbWFfYXJlYSksCisJCQkJY2QtPnBlcmlvZF9ieXRlcywgRERNQV9GTEFHU19JRSk7CisKKwkvKiB1cGRhdGUgbmV4dC10by1xdWV1ZSBwZXJpb2QgKi8KKwkrK2NkLT5xX3BlcmlvZDsKKwljZC0+ZG1hX2FyZWEgKz0gY2QtPnBlcmlvZF9ieXRlczsKKwlpZiAoY2QtPnFfcGVyaW9kID49IGNkLT5wZXJpb2RzKSB7CisJCWNkLT5xX3BlcmlvZCA9IDA7CisJCWNkLT5kbWFfYXJlYSA9IGNkLT5kbWFfYXJlYV9zOworCX0KK30KKworc3RhdGljIHZvaWQgYXUxeF9wY21fcXVldWVfcngoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqY2QpCit7CisJYXUxeHh4X2RiZG1hX3B1dF9kZXN0X2ZsYWdzKGNkLT5kZG1hX2NoYW4sCisJCQkJKHZvaWQgKilwaHlzX3RvX3ZpcnQoY2QtPmRtYV9hcmVhKSwKKwkJCQljZC0+cGVyaW9kX2J5dGVzLCBERE1BX0ZMQUdTX0lFKTsKKworCS8qIHVwZGF0ZSBuZXh0LXRvLXF1ZXVlIHBlcmlvZCAqLworCSsrY2QtPnFfcGVyaW9kOworCWNkLT5kbWFfYXJlYSArPSBjZC0+cGVyaW9kX2J5dGVzOworCWlmIChjZC0+cV9wZXJpb2QgPj0gY2QtPnBlcmlvZHMpIHsKKwkJY2QtPnFfcGVyaW9kID0gMDsKKwkJY2QtPmRtYV9hcmVhID0gY2QtPmRtYV9hcmVhX3M7CisJfQorfQorCitzdGF0aWMgdm9pZCBhdTF4X3BjbV9kbWF0eF9jYihpbnQgaXJxLCB2b2lkICpkZXZfaWQpCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqY2QgPSBkZXZfaWQ7CisKKwljZC0+cG9zICs9IGNkLT5wZXJpb2RfYnl0ZXM7CisJaWYgKCsrY2QtPmN1cnJfcGVyaW9kID49IGNkLT5wZXJpb2RzKSB7CisJCWNkLT5wb3MgPSAwOworCQljZC0+Y3Vycl9wZXJpb2QgPSAwOworCX0KKwlzbmRfcGNtX3BlcmlvZF9lbGFwc2VkKGNkLT5zdWJzdHJlYW0pOworCWF1MXhfcGNtX3F1ZXVlX3R4KGNkKTsKK30KKworc3RhdGljIHZvaWQgYXUxeF9wY21fZG1hcnhfY2IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEgKmNkID0gZGV2X2lkOworCisJY2QtPnBvcyArPSBjZC0+cGVyaW9kX2J5dGVzOworCWlmICgrK2NkLT5jdXJyX3BlcmlvZCA+PSBjZC0+cGVyaW9kcykgeworCQljZC0+cG9zID0gMDsKKwkJY2QtPmN1cnJfcGVyaW9kID0gMDsKKwl9CisJc25kX3BjbV9wZXJpb2RfZWxhcHNlZChjZC0+c3Vic3RyZWFtKTsKKwlhdTF4X3BjbV9xdWV1ZV9yeChjZCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhfcGNtX2RiZG1hX2ZyZWUoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkKQoreworCWlmIChwY2QtPmRkbWFfY2hhbikgeworCQlhdTF4eHhfZGJkbWFfc3RvcChwY2QtPmRkbWFfY2hhbik7CisJCWF1MXh4eF9kYmRtYV9yZXNldChwY2QtPmRkbWFfY2hhbik7CisJCWF1MXh4eF9kYmRtYV9jaGFuX2ZyZWUocGNkLT5kZG1hX2NoYW4pOworCQlwY2QtPmRkbWFfY2hhbiA9IDA7CisJCXBjZC0+bXNiaXRzID0gMDsKKwl9Cit9CisKKy8qIGluIGNhc2Ugb2YgbWlzc2luZyBETUEgcmluZyBvciBjaGFuZ2VkIFRYLXNvdXJjZSAvIFJYLWRlc3QgYml0IHdpZHRocywKKyAqIGFsbG9jYXRlIChvciByZWFsbG9jYXRlKSBhIDItZGVzY3JpcHRvciBETUEgcmluZyB3aXRoIGJpdCBkZXB0aCBhY2NvcmRpbmcKKyAqIHRvIEFMU0Etc3VwcGxpZWQgc2FtcGxlIGRlcHRoLiAgVGhpcyBpcyBkdWUgdG8gbGltaXRhdGlvbnMgaW4gdGhlIGRiZG1hIGFwaQorICogKGNhbm5vdCBhZGp1c3Qgc291cmNlL2Rlc3Qgd2lkdGhzIG9mIGFscmVhZHkgYWxsb2NhdGVkIGRlc2NyaXB0b3IgcmluZykuCisgKi8KK3N0YXRpYyBpbnQgYXUxeF9wY21fZGJkbWFfcmVhbGxvYyhzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpwY2QsCisJCQkJIGludCBzdHlwZSwgaW50IG1zYml0cykKK3sKKwkvKiBETUEgb25seSBpbiA4LzE2LzMyIGJpdCB3aWR0aHMgKi8KKwlpZiAobXNiaXRzID09IDI0KQorCQltc2JpdHMgPSAzMjsKKworCS8qIGNoZWNrIGN1cnJlbnQgY29uZmlnOiBjb3JyZWN0IGJpdHMgYW5kIGRlc2NyaXB0b3JzIGFsbG9jYXRlZD8gKi8KKwlpZiAoKHBjZC0+ZGRtYV9jaGFuKSAmJiAobXNiaXRzID09IHBjZC0+bXNiaXRzKSkKKwkJZ290byBvdXQ7CS8qIGFsbCBvayEgKi8KKworCWF1MXhfcGNtX2RiZG1hX2ZyZWUocGNkKTsKKworCWlmIChzdHlwZSA9PSBQQ01fUlgpCisJCXBjZC0+ZGRtYV9jaGFuID0gYXUxeHh4X2RiZG1hX2NoYW5fYWxsb2MocGNkLT5kZG1hX2lkLAorCQkJCQlEU0NSX0NNRDBfQUxXQVlTLAorCQkJCQlhdTF4X3BjbV9kbWFyeF9jYiwgKHZvaWQgKilwY2QpOworCWVsc2UKKwkJcGNkLT5kZG1hX2NoYW4gPSBhdTF4eHhfZGJkbWFfY2hhbl9hbGxvYyhEU0NSX0NNRDBfQUxXQVlTLAorCQkJCQlwY2QtPmRkbWFfaWQsCisJCQkJCWF1MXhfcGNtX2RtYXR4X2NiLCAodm9pZCAqKXBjZCk7CisKKwlpZiAoIXBjZC0+ZGRtYV9jaGFuKQorCQlyZXR1cm4gLUVOT01FTTs7CisKKwlhdTF4eHhfZGJkbWFfc2V0X2RldndpZHRoKHBjZC0+ZGRtYV9jaGFuLCBtc2JpdHMpOworCWF1MXh4eF9kYmRtYV9yaW5nX2FsbG9jKHBjZC0+ZGRtYV9jaGFuLCAyKTsKKworCXBjZC0+bXNiaXRzID0gbXNiaXRzOworCisJYXUxeHh4X2RiZG1hX3N0b3AocGNkLT5kZG1hX2NoYW4pOworCWF1MXh4eF9kYmRtYV9yZXNldChwY2QtPmRkbWFfY2hhbik7CisKK291dDoKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUgPSBzdWJzdHJlYW0tPnJ1bnRpbWU7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSAqcGNkOworCWludCBzdHlwZSwgcmV0OworCisJcmV0ID0gc25kX3BjbV9saWJfbWFsbG9jX3BhZ2VzKHN1YnN0cmVhbSwgcGFyYW1zX2J1ZmZlcl9ieXRlcyhwYXJhbXMpKTsKKwlpZiAocmV0IDwgMCkKKwkJZ290byBvdXQ7CisKKwlzdHlwZSA9IFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSk7CisJcGNkID0gYXUxeHBzY19hdWRpb19wY21kbWFbc3R5cGVdOworCisJREJHKCJydW50aW1lLT5kbWFfYXJlYSA9IDB4JTA4bHggZG1hX2FkZHJfdCA9IDB4JTA4bHggZG1hX3NpemUgPSAlZCAiCisJICAgICJydW50aW1lLT5taW5fYWxpZ24gJWRcbiIsCisJCSh1bnNpZ25lZCBsb25nKXJ1bnRpbWUtPmRtYV9hcmVhLAorCQkodW5zaWduZWQgbG9uZylydW50aW1lLT5kbWFfYWRkciwgcnVudGltZS0+ZG1hX2J5dGVzLAorCQlydW50aW1lLT5taW5fYWxpZ24pOworCisJREJHKCJiaXRzICVkICBmcmFncyAlZCAgZnJhZ19ieXRlcyAlZCAgaXNfcnggJWRcbiIsIHBhcmFtcy0+bXNiaXRzLAorCQlwYXJhbXNfcGVyaW9kcyhwYXJhbXMpLCBwYXJhbXNfcGVyaW9kX2J5dGVzKHBhcmFtcyksIHN0eXBlKTsKKworCXJldCA9IGF1MXhfcGNtX2RiZG1hX3JlYWxsb2MocGNkLCBzdHlwZSwgcGFyYW1zLT5tc2JpdHMpOworCWlmIChyZXQpIHsKKwkJTVNHKCJERE1BIGNoYW5uZWwgKHJlKWFsbG9jIGZhaWxlZCFcbiIpOworCQlnb3RvIG91dDsKKwl9CisKKwlwY2QtPnN1YnN0cmVhbSA9IHN1YnN0cmVhbTsKKwlwY2QtPnBlcmlvZF9ieXRlcyA9IHBhcmFtc19wZXJpb2RfYnl0ZXMocGFyYW1zKTsKKwlwY2QtPnBlcmlvZHMgPSBwYXJhbXNfcGVyaW9kcyhwYXJhbXMpOworCXBjZC0+ZG1hX2FyZWFfcyA9IHBjZC0+ZG1hX2FyZWEgPSAodW5zaWduZWQgbG9uZylydW50aW1lLT5kbWFfYWRkcjsKKwlwY2QtPnFfcGVyaW9kID0gMDsKKwlwY2QtPmN1cnJfcGVyaW9kID0gMDsKKwlwY2QtPnBvcyA9IDA7CisKKwlyZXQgPSAwOworb3V0OgorCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21faHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzbmRfcGNtX2xpYl9mcmVlX3BhZ2VzKHN1YnN0cmVhbSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21fcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kbWFkYXRhICpwY2QgPQorCQkJYXUxeHBzY19hdWRpb19wY21kbWFbU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKV07CisKKwlhdTF4eHhfZGJkbWFfcmVzZXQocGNkLT5kZG1hX2NoYW4pOworCisJaWYgKFNVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSkgPT0gUENNX1JYKSB7CisJCWF1MXhfcGNtX3F1ZXVlX3J4KHBjZCk7CisJCWF1MXhfcGNtX3F1ZXVlX3J4KHBjZCk7CisJfSBlbHNlIHsKKwkJYXUxeF9wY21fcXVldWVfdHgocGNkKTsKKwkJYXUxeF9wY21fcXVldWVfdHgocGNkKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX3BjbV90cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgY21kKQoreworCXUzMiBjID0gYXUxeHBzY19hdWRpb19wY21kbWFbU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKV0tPmRkbWFfY2hhbjsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJYXUxeHh4X2RiZG1hX3N0YXJ0KGMpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgorCQlhdTF4eHhfZGJkbWFfc3RvcChjKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3QKK2F1MXhwc2NfcGNtX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsCisJCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1NVQlNUUkVBTV9UWVBFKHN1YnN0cmVhbSldLT5wb3MpOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX29wZW4oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJc25kX3NvY19zZXRfcnVudGltZV9od3BhcmFtcyhzdWJzdHJlYW0sICZhdTF4cHNjX3BjbV9oYXJkd2FyZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19wY21fY2xvc2Uoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCit7CisJYXUxeF9wY21fZGJkbWFfZnJlZShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pXSk7CisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfcGNtX29wcyBhdTF4cHNjX3BjbV9vcHMgPSB7CisJLm9wZW4JCT0gYXUxeHBzY19wY21fb3BlbiwKKwkuY2xvc2UJCT0gYXUxeHBzY19wY21fY2xvc2UsCisJLmlvY3RsCQk9IHNuZF9wY21fbGliX2lvY3RsLAorCS5od19wYXJhbXMJPSBhdTF4cHNjX3BjbV9od19wYXJhbXMsCisJLmh3X2ZyZWUJPSBhdTF4cHNjX3BjbV9od19mcmVlLAorCS5wcmVwYXJlCT0gYXUxeHBzY19wY21fcHJlcGFyZSwKKwkudHJpZ2dlcgk9IGF1MXhwc2NfcGNtX3RyaWdnZXIsCisJLnBvaW50ZXIJPSBhdTF4cHNjX3BjbV9wb2ludGVyLAorfTsKKworc3RhdGljIHZvaWQgYXUxeHBzY19wY21fZnJlZV9kbWFfYnVmZmVycyhzdHJ1Y3Qgc25kX3BjbSAqcGNtKQoreworCXNuZF9wY21fbGliX3ByZWFsbG9jYXRlX2ZyZWVfZm9yX2FsbChwY20pOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwkJCSAgIHN0cnVjdCBzbmRfcGNtICpwY20pCit7CisJc25kX3BjbV9saWJfcHJlYWxsb2NhdGVfcGFnZXNfZm9yX2FsbChwY20sIFNORFJWX0RNQV9UWVBFX0RFViwKKwkJY2FyZC0+ZGV2LCBBVTFYUFNDX0JVRkZFUl9NSU5fQllURVMsICg0MDk2ICogMTAyNCkgLSAxKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHJlc291cmNlICpyOworCWludCByZXQ7CisKKwlpZiAoYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXSB8fCBhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdKQorCQlyZXR1cm4gLUVCVVNZOworCisJLyogVFggRE1BICovCisJYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1RYXQorCQk9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RtYWRhdGEpLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0pCisJCXJldHVybiAtRU5PTUVNOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX0RNQSwgMCk7CisJaWYgKCFyKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0MTsKKwl9CisJKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0pLT5kZG1hX2lkID0gci0+c3RhcnQ7CisKKwkvKiBSWCBETUEgKi8KKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fUlhdCisJCT0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZG1hZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlyID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfRE1BLCAxKTsKKwlpZiAoIXIpIHsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXQyOworCX0KKwkoYXUxeHBzY19hdWRpb19wY21kbWFbUENNX1JYXSktPmRkbWFfaWQgPSByLT5zdGFydDsKKworCXJldHVybiAwOworCitvdXQyOgorCWtmcmVlKGF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0pOworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0gPSBOVUxMOworb3V0MToKKwlrZnJlZShhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdKTsKKwlhdTF4cHNjX2F1ZGlvX3BjbWRtYVtQQ01fVFhdID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfcGNtX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IDI7IGkrKykgeworCQlpZiAoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pIHsKKwkJCWF1MXhfcGNtX2RiZG1hX2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pOworCQkJa2ZyZWUoYXUxeHBzY19hdWRpb19wY21kbWFbaV0pOworCQkJYXUxeHBzY19hdWRpb19wY21kbWFbaV0gPSBOVUxMOworCQl9CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIGF1MXhwc2MgYXVkaW8gcGxhdGZvcm0gKi8KK3N0cnVjdCBzbmRfc29jX3BsYXRmb3JtIGF1MXhwc2Nfc29jX3BsYXRmb3JtID0geworCS5uYW1lCQk9ICJhdTF4cHNjLXBjbS1kYmRtYSIsCisJLnByb2JlCQk9IGF1MXhwc2NfcGNtX3Byb2JlLAorCS5yZW1vdmUJCT0gYXUxeHBzY19wY21fcmVtb3ZlLAorCS5wY21fb3BzIAk9ICZhdTF4cHNjX3BjbV9vcHMsCisJLnBjbV9uZXcJPSBhdTF4cHNjX3BjbV9uZXcsCisJLnBjbV9mcmVlCT0gYXUxeHBzY19wY21fZnJlZV9kbWFfYnVmZmVycywKK307CitFWFBPUlRfU1lNQk9MX0dQTChhdTF4cHNjX3NvY19wbGF0Zm9ybSk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF1MXhwc2NfYXVkaW9fZGJkbWFfaW5pdCh2b2lkKQoreworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9UWF0gPSBOVUxMOworCWF1MXhwc2NfYXVkaW9fcGNtZG1hW1BDTV9SWF0gPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYXUxeHBzY19hdWRpb19kYmRtYV9leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2NfYXVkaW9fZGJkbWFfaW5pdCk7Cittb2R1bGVfZXhpdChhdTF4cHNjX2F1ZGlvX2RiZG1hX2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MTJ4MC9BdTE1NTAgUFNDIEF1ZGlvIERNQSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4iKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L3BzYy1hYzk3LmMgYi9zb3VuZC9zb2MvYXUxeC9wc2MtYWM5Ny5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3ZmFjYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MtYWM5Ny5jCkBAIC0wLDAgKzEsMzg3IEBACisvKgorICogQXUxMngwL0F1MTU1MCBQU0MgQUxTQSBBU29DIGF1ZGlvIHN1cHBvcnQuCisgKgorICogKGMpIDIwMDctMjAwOCBNU0MgVmVydHJpZWJzZ2VzLm0uYi5ILiwKKyAqCU1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIEF1MXh4eC1QU0MgQUM5NyBnbHVlLgorICoKKyAqIE5PVEU6IGFsbCBvZiB0aGVzZSBkcml2ZXJzIGNhbiBvbmx5IHdvcmsgd2l0aCBhIFNJTkdMRSBpbnN0YW5jZQorICoJIG9mIGEgUFNDLiBNdWx0aXBsZSBpbmRlcGVuZGVudCBhdWRpbyBkZXZpY2VzIGFyZSBpbXBvc3NpYmxlCisgKgkgd2l0aCBBU29DIHYxLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxMDAwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKworI2luY2x1ZGUgInBzYy5oIgorCisjZGVmaW5lIEFDOTdfRElSCVwKKwkoU05EX1NPQ19EQUlESVJfUExBWUJBQ0sgfCBTTkRfU09DX0RBSURJUl9DQVBUVVJFKQorCisjZGVmaW5lIEFDOTdfUkFURVMJXAorCVNORFJWX1BDTV9SQVRFXzgwMDBfNDgwMDAKKworI2RlZmluZSBBQzk3X0ZNVFMJXAorCShTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzIwXzNCRSkKKworI2RlZmluZSBBQzk3UENSX1NUQVJUKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVFMgOiBQU0NfQUM5N1BDUl9SUykKKyNkZWZpbmUgQUM5N1BDUl9TVE9QKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVFAgOiBQU0NfQUM5N1BDUl9SUCkKKyNkZWZpbmUgQUM5N1BDUl9DTFJGSUZPKHN0eXBlKQlcCisJKChzdHlwZSkgPT0gUENNX1RYID8gUFNDX0FDOTdQQ1JfVEMgOiBQU0NfQUM5N1BDUl9SQykKKworLyogaW5zdGFuY2UgZGF0YS4gVGhlcmUgY2FuIGJlIG9ubHkgb25lLCBNYWNMZW9kISEhISAqLworc3RhdGljIHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKmF1MXhwc2NfYWM5N193b3JrZGF0YTsKKworLyogQUM5NyBjb250cm9sbGVyIHJlYWRzIGNvZGVjIHJlZ2lzdGVyICovCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgYXUxeHBzY19hYzk3X3JlYWQoc3RydWN0IHNuZF9hYzk3ICphYzk3LAorCQkJCQl1bnNpZ25lZCBzaG9ydCByZWcpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCXVuc2lnbmVkIHNob3J0IGRhdGEsIHRtbzsKKworCWF1X3dyaXRlbChQU0NfQUM5N0NEQ19SRCB8IFBTQ19BQzk3Q0RDX0lORFgocmVnKSwgQUM5N19DREMocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXRtbyA9IDEwMDA7CisJd2hpbGUgKCghKGF1X3JlYWRsKEFDOTdfRVZOVChwc2NkYXRhKSkgJiBQU0NfQUM5N0VWTlRfQ0QpKSAmJiAtLXRtbykKKwkJdWRlbGF5KDIpOworCisJaWYgKCF0bW8pCisJCWRhdGEgPSAweGZmZmY7CisJZWxzZQorCQlkYXRhID0gYXVfcmVhZGwoQUM5N19DREMocHNjZGF0YSkpICYgMHhmZmZmOworCisJYXVfd3JpdGVsKFBTQ19BQzk3RVZOVF9DRCwgQUM5N19FVk5UKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlyZXR1cm4gZGF0YTsKK30KKworLyogQUM5NyBjb250cm9sbGVyIHdyaXRlcyB0byBjb2RlYyByZWdpc3RlciAqLworc3RhdGljIHZvaWQgYXUxeHBzY19hYzk3X3dyaXRlKHN0cnVjdCBzbmRfYWM5NyAqYWM5NywgdW5zaWduZWQgc2hvcnQgcmVnLAorCQkJCXVuc2lnbmVkIHNob3J0IHZhbCkKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJdW5zaWduZWQgaW50IHRtbzsKKworCWF1X3dyaXRlbChQU0NfQUM5N0NEQ19JTkRYKHJlZykgfCAodmFsICYgMHhmZmZmKSwgQUM5N19DREMocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwl0bW8gPSAxMDAwOworCXdoaWxlICgoIShhdV9yZWFkbChBQzk3X0VWTlQocHNjZGF0YSkpICYgUFNDX0FDOTdFVk5UX0NEKSkgJiYgLS10bW8pCisJCWF1X3N5bmMoKTsKKworCWF1X3dyaXRlbChQU0NfQUM5N0VWTlRfQ0QsIEFDOTdfRVZOVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworfQorCisvKiBBQzk3IGNvbnRyb2xsZXIgYXNzZXJ0cyBhIHdhcm0gcmVzZXQgKi8KK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N193YXJtX3Jlc2V0KHN0cnVjdCBzbmRfYWM5NyAqYWM5NykKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisKKwlhdV93cml0ZWwoUFNDX0FDOTdSU1RfU05DLCBBQzk3X1JTVChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCW1zbGVlcCgxMCk7CisJYXVfd3JpdGVsKDAsIEFDOTdfUlNUKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1MXhwc2NfYWM5N19jb2xkX3Jlc2V0KHN0cnVjdCBzbmRfYWM5NyAqYWM5NykKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJaW50IGk7CisKKwkvKiBkaXNhYmxlIFBTQyBkdXJpbmcgY29sZCByZXNldCAqLworCWF1X3dyaXRlbCgwLCBBQzk3X0NGRyhhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBpc3N1ZSBjb2xkIHJlc2V0ICovCisJYXVfd3JpdGVsKFBTQ19BQzk3UlNUX1JTVCwgQUM5N19SU1QocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwltc2xlZXAoNTAwKTsKKwlhdV93cml0ZWwoMCwgQUM5N19SU1QocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIGVuYWJsZSBQU0MgKi8KKwlhdV93cml0ZWwoUFNDX0NUUkxfRU5BQkxFLCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3IgUFNDIHRvIGluZGljYXRlIGl0J3MgcmVhZHkgKi8KKwlpID0gMTAwMDAwOworCXdoaWxlICghKChhdV9yZWFkbChBQzk3X1NUQVQocHNjZGF0YSkpICYgUFNDX0FDOTdTVEFUX1NSKSkgJiYgKC0taSkpCisJCWF1X3N5bmMoKTsKKworCWlmIChpID09IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJhdTF4cHNjLWFjOTc6IFBTQyBub3QgcmVhZHkhXG4iKTsKKwkJcmV0dXJuOworCX0KKworCS8qIGVuYWJsZSB0aGUgYWM5NyBmdW5jdGlvbiAqLworCWF1X3dyaXRlbChwc2NkYXRhLT5jZmcgfCBQU0NfQUM5N0NGR19ERV9FTkFCTEUsIEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiB3YWl0IGZvciBBQzk3IGNvcmUgdG8gYmVjb21lIHJlYWR5ICovCisJaSA9IDEwMDAwMDsKKwl3aGlsZSAoISgoYXVfcmVhZGwoQUM5N19TVEFUKHBzY2RhdGEpKSAmIFBTQ19BQzk3U1RBVF9EUikpICYmICgtLWkpKQorCQlhdV9zeW5jKCk7CisJaWYgKGkgPT0gMCkKKwkJcHJpbnRrKEtFUk5fRVJSICJhdTF4cHNjLWFjOTc6IEFDOTcgY3RybCBub3QgcmVhZHlcbiIpOworfQorCisvKiBBQzk3IGNvbnRyb2xsZXIgb3BlcmF0aW9ucyAqLworc3RydWN0IHNuZF9hYzk3X2J1c19vcHMgc29jX2FjOTdfb3BzID0geworCS5yZWFkCQk9IGF1MXhwc2NfYWM5N19yZWFkLAorCS53cml0ZQkJPSBhdTF4cHNjX2FjOTdfd3JpdGUsCisJLnJlc2V0CQk9IGF1MXhwc2NfYWM5N19jb2xkX3Jlc2V0LAorCS53YXJtX3Jlc2V0CT0gYXUxeHBzY19hYzk3X3dhcm1fcmVzZXQsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2FjOTdfb3BzKTsKKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCQkJCSAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJLyogRklYTUUgKi8KKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19hYzk3X3dvcmtkYXRhOworCXVuc2lnbmVkIGxvbmcgciwgc3RhdDsKKwlpbnQgY2hhbnMsIHN0eXBlID0gU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKTsKKworCWNoYW5zID0gcGFyYW1zX2NoYW5uZWxzKHBhcmFtcyk7CisKKwlyID0gYXVfcmVhZGwoQUM5N19DRkcocHNjZGF0YSkpOworCXN0YXQgPSBhdV9yZWFkbChBQzk3X1NUQVQocHNjZGF0YSkpOworCisJLyogYWxyZWFkeSBhY3RpdmU/ICovCisJaWYgKHN0YXQgJiAoUFNDX0FDOTdTVEFUX1RCIHwgUFNDX0FDOTdTVEFUX1JCKSkgeworCQkvKiByZWplY3QgcGFyYW1ldGVycyBub3QgY3VycmVudGx5IHNldCB1cCAqLworCQlpZiAoKFBTQ19BQzk3Q0ZHX0dFVF9MRU4ocikgIT0gcGFyYW1zLT5tc2JpdHMpIHx8CisJCSAgICAocHNjZGF0YS0+cmF0ZSAhPSBwYXJhbXNfcmF0ZShwYXJhbXMpKSkKKwkJCXJldHVybiAtRUlOVkFMOworCX0gZWxzZSB7CisJCS8qIGRpc2FibGUgQUM5NyBkZXZpY2UgY29udHJvbGxlciBmaXJzdCAqLworCQlhdV93cml0ZWwociAmIH5QU0NfQUM5N0NGR19ERV9FTkFCTEUsIEFDOTdfQ0ZHKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCisJCS8qIHNldCBzYW1wbGUgYml0ZGVwdGg6IFJFR1syNDoyMV09KEJJVFMtMikvMiAqLworCQlyICY9IH5QU0NfQUM5N0NGR19MRU5fTUFTSzsKKwkJciB8PSBQU0NfQUM5N0NGR19TRVRfTEVOKHBhcmFtcy0+bXNiaXRzKTsKKworCQkvKiBjaGFubmVsczogZW5hYmxlIHNsb3RzIGZvciBmcm9udCBML1IgY2hhbm5lbCAqLworCQlpZiAoc3R5cGUgPT0gUENNX1RYKSB7CisJCQlyICY9IH5QU0NfQUM5N0NGR19UWFNMT1RfTUFTSzsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfVFhTTE9UX0VOQSgzKTsKKwkJCXIgfD0gUFNDX0FDOTdDRkdfVFhTTE9UX0VOQSg0KTsKKwkJfSBlbHNlIHsKKwkJCXIgJj0gflBTQ19BQzk3Q0ZHX1JYU0xPVF9NQVNLOworCQkJciB8PSBQU0NfQUM5N0NGR19SWFNMT1RfRU5BKDMpOworCQkJciB8PSBQU0NfQUM5N0NGR19SWFNMT1RfRU5BKDQpOworCQl9CisKKwkJLyogZmluYWxseSBlbmFibGUgdGhlIEFDOTcgY29udHJvbGxlciBhZ2FpbiAqLworCQlhdV93cml0ZWwociB8IFBTQ19BQzk3Q0ZHX0RFX0VOQUJMRSwgQUM5N19DRkcocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisKKwkJcHNjZGF0YS0+Y2ZnID0gcjsKKwkJcHNjZGF0YS0+cmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19hYzk3X3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJaW50IGNtZCkKK3sKKwkvKiBGSVhNRSAqLworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2FjOTdfd29ya2RhdGE7CisJaW50IHJldCwgc3R5cGUgPSBTVUJTVFJFQU1fVFlQRShzdWJzdHJlYW0pOworCisJcmV0ID0gMDsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJYXVfd3JpdGVsKEFDOTdQQ1JfU1RBUlQoc3R5cGUpLCBBQzk3X1BDUihwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgorCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfU1VTUEVORDoKKwkJYXVfd3JpdGVsKEFDOTdQQ1JfU1RPUChzdHlwZSksIEFDOTdfUENSKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXQgPSAtRUlOVkFMOworCX0KKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCit7CisJaW50IHJldDsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJdW5zaWduZWQgbG9uZyBzZWw7CisKKwlpZiAoYXUxeHBzY19hYzk3X3dvcmtkYXRhKQorCQlyZXR1cm4gLUVCVVNZOworCisJYXUxeHBzY19hYzk3X3dvcmtkYXRhID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19hYzk3X3dvcmtkYXRhKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXIgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2UocGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOworCWlmICghcikgeworCQlyZXQgPSAtRU5PREVWOworCQlnb3RvIG91dDA7CisJfQorCisJcmV0ID0gLUVCVVNZOworCWF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhID0KKwkJcmVxdWVzdF9tZW1fcmVnaW9uKHItPnN0YXJ0LCByLT5lbmQgLSByLT5zdGFydCArIDEsCisJCQkJCSJhdTF4cHNjX2FjOTciKTsKKwlpZiAoIWF1MXhwc2NfYWM5N193b3JrZGF0YS0+aW9hcmVhKQorCQlnb3RvIG91dDA7CisKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEtPm1taW8gPSBpb3JlbWFwKHItPnN0YXJ0LCAweGZmZmYpOworCWlmICghYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5tbWlvKQorCQlnb3RvIG91dDE7CisKKwkvKiBjb25maWd1cmF0aW9uOiBtYXggZG1hIHRyaWdnZXIgdGhyZXNob2xkLCBlbmFibGUgYWM5NyAqLworCSBhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmNmZyA9IFBTQ19BQzk3Q0ZHX1JUX0ZJRk84IHwKKwkJCQkgICAgICBQU0NfQUM5N0NGR19UVF9GSUZPOCB8CisJCQkJICAgICAgUFNDX0FDOTdDRkdfREVfRU5BQkxFOworCisJLyogcHJlc2VydmUgUFNDIGNsb2NrIHNvdXJjZSBzZXQgdXAgYnkgcGxhdGZvcm0gKGRldi5wbGF0Zm9ybV9kYXRhCisJICogaXMgYWxyZWFkeSBvY2N1cGllZCBieSBzb2MgbGF5ZXIpCisJICovCisJc2VsID0gYXVfcmVhZGwoUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKSAmIFBTQ19TRUxfQ0xLX01BU0s7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoMCwgUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19TRUxfUFNfQUM5N01PREUgfCBzZWwsIFBTQ19TRUwoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCS8qIG5leHQgdXA6IGNvbGQgcmVzZXQuICBEb250IGNoZWNrIGZvciBQU0MtcmVhZHkgbm93IHNpbmNlCisJICogdGhlcmUgbWF5IG5vdCBiZSBhbnkgY29kZWMgY2xvY2sgeWV0LgorCSAqLworCisJcmV0dXJuIDA7CisKK291dDE6CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSk7CisJa2ZyZWUoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworb3V0MDoKKwlrZnJlZShhdTF4cHNjX2FjOTdfd29ya2RhdGEpOworCWF1MXhwc2NfYWM5N193b3JrZGF0YSA9IE5VTEw7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgYXUxeHBzY19hYzk3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCS8qIGRpc2FibGUgUFNDIGNvbXBsZXRlbHkgKi8KKwlhdV93cml0ZWwoMCwgQUM5N19DRkcoYXUxeHBzY19hYzk3X3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlpb3VubWFwKGF1MXhwc2NfYWM5N193b3JrZGF0YS0+bW1pbyk7CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2FjOTdfd29ya2RhdGEtPmlvYXJlYSk7CisJa2ZyZWUoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfYWM5N193b3JrZGF0YSk7CisJYXUxeHBzY19hYzk3X3dvcmtkYXRhID0gTlVMTDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2FjOTdfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQoreworCS8qIHNhdmUgaW50ZXJlc3RpbmcgcmVnaXN0ZXJzIGFuZCBkaXNhYmxlIFBTQyAqLworCWF1MXhwc2NfYWM5N193b3JrZGF0YS0+cG1bMF0gPQorCQkJYXVfcmVhZGwoUFNDX1NFTChhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKworCWF1X3dyaXRlbCgwLCBBQzk3X0NGRyhhdTF4cHNjX2FjOTdfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfYWM5N19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwkvKiByZXN0b3JlIFBTQyBjbG9jayBjb25maWcgKi8KKwlhdV93cml0ZWwoYXUxeHBzY19hYzk3X3dvcmtkYXRhLT5wbVswXSB8IFBTQ19TRUxfUFNfQUM5N01PREUsCisJCQlQU0NfU0VMKGF1MXhwc2NfYWM5N193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIGFmdGVyIHRoaXMgcG9pbnQgdGhlIGFjOTcgY29yZSB3aWxsIGNvbGQtcmVzZXQgdGhlIGNvZGVjLgorCSAqIER1cmluZyBjb2xkLXJlc2V0IHRoZSBQU0MgaXMgcmVpbml0aWFsaXplZCBhbmQgdGhlIGxhc3QKKwkgKiBjb25maWd1cmF0aW9uIHNldCB1cCBpbiBod19wYXJhbXMoKSBpcyByZXN0b3JlZC4KKwkgKi8KKwlyZXR1cm4gMDsKK30KKworc3RydWN0IHNuZF9zb2NfZGFpIGF1MXhwc2NfYWM5N19kYWkgPSB7CisJLm5hbWUJCQk9ICJhdTF4cHNjX2FjOTciLAorCS50eXBlCQkJPSBTTkRfU09DX0RBSV9BQzk3LAorCS5wcm9iZQkJCT0gYXUxeHBzY19hYzk3X3Byb2JlLAorCS5yZW1vdmUJCQk9IGF1MXhwc2NfYWM5N19yZW1vdmUsCisJLnN1c3BlbmQJCT0gYXUxeHBzY19hYzk3X3N1c3BlbmQsCisJLnJlc3VtZQkJCT0gYXUxeHBzY19hYzk3X3Jlc3VtZSwKKwkucGxheWJhY2sgPSB7CisJCS5yYXRlcwkJPSBBQzk3X1JBVEVTLAorCQkuZm9ybWF0cwk9IEFDOTdfRk1UUywKKwkJLmNoYW5uZWxzX21pbgk9IDIsCisJCS5jaGFubmVsc19tYXgJPSAyLAorCX0sCisJLmNhcHR1cmUgPSB7CisJCS5yYXRlcwkJPSBBQzk3X1JBVEVTLAorCQkuZm9ybWF0cwk9IEFDOTdfRk1UUywKKwkJLmNoYW5uZWxzX21pbgk9IDIsCisJCS5jaGFubmVsc19tYXgJPSAyLAorCX0sCisJLm9wcyA9IHsKKwkJLnRyaWdnZXIJPSBhdTF4cHNjX2FjOTdfdHJpZ2dlciwKKwkJLmh3X3BhcmFtcwk9IGF1MXhwc2NfYWM5N19od19wYXJhbXMsCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChhdTF4cHNjX2FjOTdfZGFpKTsKKworc3RhdGljIGludCBfX2luaXQgYXUxeHBzY19hYzk3X2luaXQodm9pZCkKK3sKKwlhdTF4cHNjX2FjOTdfd29ya2RhdGEgPSBOVUxMOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgYXUxeHBzY19hYzk3X2V4aXQodm9pZCkKK3sKK30KKworbW9kdWxlX2luaXQoYXUxeHBzY19hYzk3X2luaXQpOworbW9kdWxlX2V4aXQoYXUxeHBzY19hYzk3X2V4aXQpOworCitNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkF1MTJ4MC9BdTE1NTAgUFNDIEFDOTcgQUxTQSBBU29DIGF1ZGlvIGRyaXZlciIpOworTU9EVUxFX0FVVEhPUigiTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PiIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2F1MXgvcHNjLWkycy5jIGIvc291bmQvc29jL2F1MXgvcHNjLWkycy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhNGI1YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvYXUxeC9wc2MtaTJzLmMKQEAgLTAsMCArMSw0MTQgQEAKKy8qCisgKiBBdTEyeDAvQXUxNTUwIFBTQyBBTFNBIEFTb0MgYXVkaW8gc3VwcG9ydC4KKyAqCisgKiAoYykgMjAwNy0yMDA4IE1TQyBWZXJ0cmllYnNnZXMubS5iLkguLAorICoJTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogQXUxeHh4LVBTQyBJMlMgZ2x1ZS4KKyAqCisgKiBOT1RFOiBhbGwgb2YgdGhlc2UgZHJpdmVycyBjYW4gb25seSB3b3JrIHdpdGggYSBTSU5HTEUgaW5zdGFuY2UKKyAqCSBvZiBhIFBTQy4gTXVsdGlwbGUgaW5kZXBlbmRlbnQgYXVkaW8gZGV2aWNlcyBhcmUgaW1wb3NzaWJsZQorICoJIHdpdGggQVNvQyB2MS4KKyAqIE5PVEU6IHNvIGZhciBvbmx5IFBTQyBzbGF2ZSBtb2RlIChiaXQtIGFuZCBmcmFtZWNsb2NrKSBpcyBzdXBwb3J0ZWQuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9zdXNwZW5kLmg+CisjaW5jbHVkZSA8c291bmQvY29yZS5oPgorI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgorI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxMDAwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKworI2luY2x1ZGUgInBzYy5oIgorCisvKiBzdXBwb3J0ZWQgSTJTIERBSSBoYXJkd2FyZSBmb3JtYXRzICovCisjZGVmaW5lIEFVMVhQU0NfSTJTX0RBSUZNVCBcCisJKFNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX0xFRlRfSiB8CVwKKwkgU05EX1NPQ19EQUlGTVRfTkJfTkYpCisKKy8qIHN1cHBvcnRlZCBJMlMgZGlyZWN0aW9uICovCisjZGVmaW5lIEFVMVhQU0NfSTJTX0RJUiBcCisJKFNORF9TT0NfREFJRElSX1BMQVlCQUNLIHwgU05EX1NPQ19EQUlESVJfQ0FQVFVSRSkKKworI2RlZmluZSBBVTFYUFNDX0kyU19SQVRFUyBcCisJU05EUlZfUENNX1JBVEVfODAwMF8xOTIwMDAKKworI2RlZmluZSBBVTFYUFNDX0kyU19GTVRTIFwKKwkoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSkKKworI2RlZmluZSBJMlNTVEFUX0JVU1koc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTU1RBVF9UQiA6IFBTQ19JMlNTVEFUX1JCKQorI2RlZmluZSBJMlNQQ1JfU1RBUlQoc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RTIDogUFNDX0kyU1BDUl9SUykKKyNkZWZpbmUgSTJTUENSX1NUT1Aoc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RQIDogUFNDX0kyU1BDUl9SUCkKKyNkZWZpbmUgSTJTUENSX0NMUkZJRk8oc3R5cGUpCVwKKwkoKHN0eXBlKSA9PSBQQ01fVFggPyBQU0NfSTJTUENSX1RDIDogUFNDX0kyU1BDUl9SQykKKworCisvKiBpbnN0YW5jZSBkYXRhLiBUaGVyZSBjYW4gYmUgb25seSBvbmUsIE1hY0xlb2QhISEhICovCitzdGF0aWMgc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqYXUxeHBzY19pMnNfd29ya2RhdGE7CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCisJCQkgICAgICAgdW5zaWduZWQgaW50IGZtdCkKK3sKKwlzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhID0gYXUxeHBzY19pMnNfd29ya2RhdGE7CisJdW5zaWduZWQgbG9uZyBjdDsKKwlpbnQgcmV0OworCisJcmV0ID0gLUVJTlZBTDsKKworCWN0ID0gcHNjZGF0YS0+Y2ZnOworCisJY3QgJj0gfihQU0NfSTJTQ0ZHX1hNIHwgUFNDX0kyU0NGR19NTEopOwkvKiBsZWZ0LWp1c3RpZmllZCAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUzoKKwkJY3QgfD0gUFNDX0kyU0NGR19YTTsJLyogZW5hYmxlIEkyUyBtb2RlICovCisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTVNCOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xTQjoKKwkJY3QgfD0gUFNDX0kyU0NGR19NTEo7CS8qIExTQiAocmlnaHQtKSBqdXN0aWZpZWQgKi8KKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZ290byBvdXQ7CisJfQorCisJY3QgJj0gfihQU0NfSTJTQ0ZHX0JJIHwgUFNDX0kyU0NGR19XSSk7CQkvKiBJQi1JRiAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfSU5WX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX05CX05GOgorCQljdCB8PSBQU0NfSTJTQ0ZHX0JJIHwgUFNDX0kyU0NGR19XSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9JRjoKKwkJY3QgfD0gUFNDX0kyU0NGR19CSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9ORjoKKwkJY3QgfD0gUFNDX0kyU0NGR19XSTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JQl9JRjoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJZ290byBvdXQ7CisJfQorCisJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgeworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTToJLyogQ09ERUMgbWFzdGVyICovCisJCWN0IHw9IFBTQ19JMlNDRkdfTVM7CS8qIFBTQyBJMlMgc2xhdmUgbW9kZSAqLworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRlM6CS8qIENPREVDIHNsYXZlICovCisJCWN0ICY9IH5QU0NfSTJTQ0ZHX01TOwkvKiBQU0MgSTJTIE1hc3RlciBtb2RlICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWdvdG8gb3V0OworCX0KKworCXBzY2RhdGEtPmNmZyA9IGN0OworCXJldCA9IDA7CitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJCQkJIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEgPSBhdTF4cHNjX2kyc193b3JrZGF0YTsKKworCWludCBjZmdiaXRzOworCXVuc2lnbmVkIGxvbmcgc3RhdDsKKworCS8qIGNoZWNrIGlmIHRoZSBQU0MgaXMgYWxyZWFkeSBzdHJlYW1pbmcgZGF0YSAqLworCXN0YXQgPSBhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSk7CisJaWYgKHN0YXQgJiAoUFNDX0kyU1NUQVRfVEIgfCBQU0NfSTJTU1RBVF9SQikpIHsKKwkJLyogcmVqZWN0IHBhcmFtZXRlcnMgbm90IGN1cnJlbnRseSBzZXQgdXAgaW4gaGFyZHdhcmUgKi8KKwkJY2ZnYml0cyA9IGF1X3JlYWRsKEkyU19DRkcocHNjZGF0YSkpOworCQlpZiAoKFBTQ19JMlNDRkdfR0VUX0xFTihjZmdiaXRzKSAhPSBwYXJhbXMtPm1zYml0cykgfHwKKwkJICAgIChwYXJhbXNfcmF0ZShwYXJhbXMpICE9IHBzY2RhdGEtPnJhdGUpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfSBlbHNlIHsKKwkJLyogc2V0IHNhbXBsZSBiaXRkZXB0aCAqLworCQlwc2NkYXRhLT5jZmcgJj0gfigweDFmIDw8IDQpOworCQlwc2NkYXRhLT5jZmcgfD0gUFNDX0kyU0NGR19TRVRfTEVOKHBhcmFtcy0+bXNiaXRzKTsKKwkJLyogcmVtZW1iZXIgY3VycmVudCByYXRlIGZvciBvdGhlciBzdHJlYW0gKi8KKwkJcHNjZGF0YS0+cmF0ZSA9IHBhcmFtc19yYXRlKHBhcmFtcyk7CisJfQorCXJldHVybiAwOworfQorCisvKiBDb25maWd1cmUgUFNDIGxhdGU6ICBvbiBteSBkZXZlbCBzeXN0ZW1zIHRoZSBjb2RlYyAgaXMgSTJTIG1hc3RlciBhbmQKKyAqIHN1cHBsaWVzIHRoZSBpMnNiaXRjbG9jayBfX0FORF9fIGkyc01jbGsgKCEpIHRvIHRoZSBQU0MgdW5pdC4gIEFTb0MKKyAqIHVzZXMgYWdncmVzc2l2ZSBQTSBhbmQgIHN3aXRjaGVzIHRoZSBjb2RlYyBvZmYgIHdoZW4gaXQgaXMgbm90IGluIHVzZQorICogd2hpY2ggYWxzbyBtZWFucyB0aGUgUFNDIHVuaXQgZG9lc24ndCBnZXQgYW55IGNsb2NrcyBhbmQgaXMgdGhlcmVmb3JlCisgKiBkZWFkLiBUaGF0J3Mgd2h5IHRoaXMgY2h1bmsgaGVyZSBnZXRzIGNhbGxlZCBmcm9tIHRoZSB0cmlnZ2VyIGNhbGxiYWNrCisgKiBiZWNhdXNlIEkgY2FuIGJlIHJlYXNvbmFibHkgY2VydGFpbiB0aGUgY29kZWMgaXMgZHJpdmluZyB0aGUgY2xvY2tzLgorICovCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX2NvbmZpZ3VyZShzdHJ1Y3QgYXUxeHBzY19hdWRpb19kYXRhICpwc2NkYXRhKQoreworCXVuc2lnbmVkIGxvbmcgdG1vOworCisJLyogYnJpbmcgUFNDIG91dCBvZiBzbGVlcCwgYW5kIGNvbmZpZ3VyZSBJMlMgdW5pdCAqLworCWF1X3dyaXRlbChQU0NfQ1RSTF9FTkFCTEUsIFBTQ19DVFJMKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwl0bW8gPSAxMDAwMDAwOworCXdoaWxlICghKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIFBTQ19JMlNTVEFUX1NSKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKCF0bW8pCisJCWdvdG8gcHNjX2VycjsKKworCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisJYXVfd3JpdGVsKHBzY2RhdGEtPmNmZyB8IFBTQ19JMlNDRkdfREVfRU5BQkxFLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiB3YWl0IGZvciBJMlMgY29udHJvbGxlciB0byBiZWNvbWUgcmVhZHkgKi8KKwl0bW8gPSAxMDAwMDAwOworCXdoaWxlICghKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIFBTQ19JMlNTVEFUX0RSKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKHRtbykKKwkJcmV0dXJuIDA7CisKK3BzY19lcnI6CisJYXVfd3JpdGVsKDAsIEkyU19DRkcocHNjZGF0YSkpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9TVVNQRU5ELCBQU0NfQ1RSTChwc2NkYXRhKSk7CisJYXVfc3luYygpOworCXJldHVybiAtRVRJTUVET1VUOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3N0YXJ0KHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEsIGludCBzdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIHRtbywgc3RhdDsKKwlpbnQgcmV0OworCisJcmV0ID0gMDsKKworCS8qIGlmIGJvdGggVFggYW5kIFJYIGFyZSBpZGxlLCBjb25maWd1cmUgdGhlIFBTQyAgKi8KKwlzdGF0ID0gYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpOworCWlmICghKHN0YXQgJiAoUFNDX0kyU1NUQVRfVEIgfCBQU0NfSTJTU1RBVF9SQikpKSB7CisJCXJldCA9IGF1MXhwc2NfaTJzX2NvbmZpZ3VyZShwc2NkYXRhKTsKKwkJaWYgKHJldCkKKwkJCWdvdG8gb3V0OworCX0KKworCWF1X3dyaXRlbChJMlNQQ1JfQ0xSRklGTyhzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoSTJTUENSX1NUQVJUKHN0eXBlKSwgSTJTX1BDUihwc2NkYXRhKSk7CisJYXVfc3luYygpOworCisJLyogd2FpdCBmb3Igc3RhcnQgY29uZmlybWF0aW9uICovCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoIShhdV9yZWFkbChJMlNfU1RBVChwc2NkYXRhKSkgJiBJMlNTVEFUX0JVU1koc3R5cGUpKSAmJiB0bW8pCisJCXRtby0tOworCisJaWYgKCF0bW8pIHsKKwkJYXVfd3JpdGVsKEkyU1BDUl9TVE9QKHN0eXBlKSwgSTJTX1BDUihwc2NkYXRhKSk7CisJCWF1X3N5bmMoKTsKKwkJcmV0ID0gLUVUSU1FRE9VVDsKKwl9CitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19zdG9wKHN0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgKnBzY2RhdGEsIGludCBzdHlwZSkKK3sKKwl1bnNpZ25lZCBsb25nIHRtbywgc3RhdDsKKworCWF1X3dyaXRlbChJMlNQQ1JfU1RPUChzdHlwZSksIEkyU19QQ1IocHNjZGF0YSkpOworCWF1X3N5bmMoKTsKKworCS8qIHdhaXQgZm9yIHN0b3AgY29uZmlybWF0aW9uICovCisJdG1vID0gMTAwMDAwMDsKKwl3aGlsZSAoKGF1X3JlYWRsKEkyU19TVEFUKHBzY2RhdGEpKSAmIEkyU1NUQVRfQlVTWShzdHlwZSkpICYmIHRtbykKKwkJdG1vLS07CisKKwkvKiBpZiBib3RoIFRYIGFuZCBSWCBhcmUgaWRsZSwgZGlzYWJsZSBQU0MgKi8KKwlzdGF0ID0gYXVfcmVhZGwoSTJTX1NUQVQocHNjZGF0YSkpOworCWlmICghKHN0YXQgJiAoUFNDX0kyU1NUQVRfUkIgfCBQU0NfSTJTU1RBVF9SQikpKSB7CisJCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKHBzY2RhdGEpKTsKKwkJYXVfc3luYygpOworCQlhdV93cml0ZWwoUFNDX0NUUkxfU1VTUEVORCwgUFNDX0NUUkwocHNjZGF0YSkpOworCQlhdV9zeW5jKCk7CisJfQorCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3RyaWdnZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBjbWQpCit7CisJc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSAqcHNjZGF0YSA9IGF1MXhwc2NfaTJzX3dvcmtkYXRhOworCWludCByZXQsIHN0eXBlID0gU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVEFSVDoKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1JFU1VNRToKKwkJcmV0ID0gYXUxeHBzY19pMnNfc3RhcnQocHNjZGF0YSwgc3R5cGUpOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9UUklHR0VSX1NUT1A6CisJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9TVVNQRU5EOgorCQlyZXQgPSBhdTF4cHNjX2kyc19zdG9wKHBzY2RhdGEsIHN0eXBlKTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0ID0gLUVJTlZBTDsKKwl9CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBhdTF4cHNjX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CisJdW5zaWduZWQgbG9uZyBzZWw7CisJaW50IHJldDsKKworCWlmIChhdTF4cHNjX2kyc193b3JrZGF0YSkKKwkJcmV0dXJuIC1FQlVTWTsKKworCWF1MXhwc2NfaTJzX3dvcmtkYXRhID0KKwkJa3phbGxvYyhzaXplb2Yoc3RydWN0IGF1MXhwc2NfYXVkaW9fZGF0YSksIEdGUF9LRVJORUwpOworCWlmICghYXUxeHBzY19pMnNfd29ya2RhdGEpCisJCXJldHVybiAtRU5PTUVNOworCisJciA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7CisJaWYgKCFyKSB7CisJCXJldCA9IC1FTk9ERVY7CisJCWdvdG8gb3V0MDsKKwl9CisKKwlyZXQgPSAtRUJVU1k7CisJYXUxeHBzY19pMnNfd29ya2RhdGEtPmlvYXJlYSA9CisJCXJlcXVlc3RfbWVtX3JlZ2lvbihyLT5zdGFydCwgci0+ZW5kIC0gci0+c3RhcnQgKyAxLAorCQkJCQkiYXUxeHBzY19pMnMiKTsKKwlpZiAoIWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpCisJCWdvdG8gb3V0MDsKKworCWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvID0gaW9yZW1hcChyLT5zdGFydCwgMHhmZmZmKTsKKwlpZiAoIWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvKQorCQlnb3RvIG91dDE7CisKKwkvKiBwcmVzZXJ2ZSBQU0MgY2xvY2sgc291cmNlIHNldCB1cCBieSBwbGF0Zm9ybSAoZGV2LnBsYXRmb3JtX2RhdGEKKwkgKiBpcyBhbHJlYWR5IG9jY3VwaWVkIGJ5IHNvYyBsYXllcikKKwkgKi8KKwlzZWwgPSBhdV9yZWFkbChQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSkgJiBQU0NfU0VMX0NMS19NQVNLOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX1NFTF9QU19JMlNNT0RFIHwgc2VsLCBQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfd3JpdGVsKDAsIEkyU19DRkcoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwkvKiBwcmVjb25maWd1cmU6IHNldCBtYXggcngvdHggZmlmbyBkZXB0aHMgKi8KKwlhdTF4cHNjX2kyc193b3JrZGF0YS0+Y2ZnIHw9CisJCQlQU0NfSTJTQ0ZHX1JUX0ZJRk84IHwgUFNDX0kyU0NGR19UVF9GSUZPODsKKworCS8qIGRvbid0IHdhaXQgZm9yIEkyUyBjb3JlIHRvIGJlY29tZSByZWFkeSBub3c7IGNsb2NrcyBtYXkgbm90CisJICogYmUgcnVubmluZyB5ZXQ7IGRlcGVuZGluZyBvbiBjbG9jayBpbnB1dCBmb3IgUFNDIGEgd2FpdCBtaWdodAorCSAqIHRpbWUgb3V0LgorCSAqLworCisJcmV0dXJuIDA7CisKK291dDE6CisJcmVsZWFzZV9yZXNvdXJjZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKKwlrZnJlZShhdTF4cHNjX2kyc193b3JrZGF0YS0+aW9hcmVhKTsKK291dDA6CisJa2ZyZWUoYXUxeHBzY19pMnNfd29ya2RhdGEpOworCWF1MXhwc2NfaTJzX3dvcmtkYXRhID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgdm9pZCBhdTF4cHNjX2kyc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKKwkJCSAgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKK3sKKwlhdV93cml0ZWwoMCwgSTJTX0NGRyhhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKwlhdV93cml0ZWwoUFNDX0NUUkxfRElTQUJMRSwgUFNDX0NUUkwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKwlhdV9zeW5jKCk7CisKKwlpb3VubWFwKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5tbWlvKTsKKwlyZWxlYXNlX3Jlc291cmNlKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfaTJzX3dvcmtkYXRhLT5pb2FyZWEpOworCWtmcmVlKGF1MXhwc2NfaTJzX3dvcmtkYXRhKTsKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9IE5VTEw7Cit9CisKK3N0YXRpYyBpbnQgYXUxeHBzY19pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKK3sKKwkvKiBzYXZlIGludGVyZXN0aW5nIHJlZ2lzdGVyIGFuZCBkaXNhYmxlIFBTQyAqLworCWF1MXhwc2NfaTJzX3dvcmtkYXRhLT5wbVswXSA9CisJCWF1X3JlYWRsKFBTQ19TRUwoYXUxeHBzY19pMnNfd29ya2RhdGEpKTsKKworCWF1X3dyaXRlbCgwLCBJMlNfQ0ZHKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChQU0NfQ1RSTF9ESVNBQkxFLCBQU0NfQ1RSTChhdTF4cHNjX2kyc193b3JrZGF0YSkpOworCWF1X3N5bmMoKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGF1MXhwc2NfaTJzX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpKQoreworCS8qIHNlbGVjdCBJMlMgbW9kZSBhbmQgUFNDIGNsb2NrICovCisJYXVfd3JpdGVsKFBTQ19DVFJMX0RJU0FCTEUsIFBTQ19DVFJMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbCgwLCBQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCWF1X3dyaXRlbChhdTF4cHNjX2kyc193b3JrZGF0YS0+cG1bMF0sCisJCQlQU0NfU0VMKGF1MXhwc2NfaTJzX3dvcmtkYXRhKSk7CisJYXVfc3luYygpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2RhaSBhdTF4cHNjX2kyc19kYWkgPSB7CisJLm5hbWUJCQk9ICJhdTF4cHNjX2kycyIsCisJLnR5cGUJCQk9IFNORF9TT0NfREFJX0kyUywKKwkucHJvYmUJCQk9IGF1MXhwc2NfaTJzX3Byb2JlLAorCS5yZW1vdmUJCQk9IGF1MXhwc2NfaTJzX3JlbW92ZSwKKwkuc3VzcGVuZAkJPSBhdTF4cHNjX2kyc19zdXNwZW5kLAorCS5yZXN1bWUJCQk9IGF1MXhwc2NfaTJzX3Jlc3VtZSwKKwkucGxheWJhY2sgPSB7CisJCS5yYXRlcwkJPSBBVTFYUFNDX0kyU19SQVRFUywKKwkJLmZvcm1hdHMJPSBBVTFYUFNDX0kyU19GTVRTLAorCQkuY2hhbm5lbHNfbWluCT0gMiwKKwkJLmNoYW5uZWxzX21heAk9IDgsCS8qIDIgd2l0aG91dCBleHRlcm5hbCBoZWxwICovCisJfSwKKwkuY2FwdHVyZSA9IHsKKwkJLnJhdGVzCQk9IEFVMVhQU0NfSTJTX1JBVEVTLAorCQkuZm9ybWF0cwk9IEFVMVhQU0NfSTJTX0ZNVFMsCisJCS5jaGFubmVsc19taW4JPSAyLAorCQkuY2hhbm5lbHNfbWF4CT0gOCwJLyogMiB3aXRob3V0IGV4dGVybmFsIGhlbHAgKi8KKwl9LAorCS5vcHMgPSB7CisJCS50cmlnZ2VyCT0gYXUxeHBzY19pMnNfdHJpZ2dlciwKKwkJLmh3X3BhcmFtcwk9IGF1MXhwc2NfaTJzX2h3X3BhcmFtcywKKwl9LAorCS5kYWlfb3BzID0geworCQkuc2V0X2ZtdAk9IGF1MXhwc2NfaTJzX3NldF9mbXQsCisJfSwKK307CitFWFBPUlRfU1lNQk9MKGF1MXhwc2NfaTJzX2RhaSk7CisKK3N0YXRpYyBpbnQgX19pbml0IGF1MXhwc2NfaTJzX2luaXQodm9pZCkKK3sKKwlhdTF4cHNjX2kyc193b3JrZGF0YSA9IE5VTEw7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBhdTF4cHNjX2kyc19leGl0KHZvaWQpCit7Cit9CisKK21vZHVsZV9pbml0KGF1MXhwc2NfaTJzX2luaXQpOworbW9kdWxlX2V4aXQoYXUxeHBzY19pMnNfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiQXUxMngwL0F1MTU1MCBQU0MgSTJTIEFMU0EgQVNvQyBhdWRpbyBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIk1hbnVlbCBMYXVzcyA8bWFub0Byb2FyaW5lbGsuaG9tZWxpbnV4Lm5ldD4iKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9hdTF4L3BzYy5oIGIvc291bmQvc29jL2F1MXgvcHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZkYjFhMAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9hdTF4L3BzYy5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBBdTEyeDAvQXUxNTUwIFBTQyBBTFNBIEFTb0MgYXVkaW8gc3VwcG9ydC4KKyAqCisgKiAoYykgMjAwNy0yMDA4IE1TQyBWZXJ0cmllYnNnZXMubS5iLkguLAorICoJTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogTk9URTogYWxsIG9mIHRoZXNlIGRyaXZlcnMgY2FuIG9ubHkgd29yayB3aXRoIGEgU0lOR0xFIGluc3RhbmNlCisgKgkgb2YgYSBQU0MuIE11bHRpcGxlIGluZGVwZW5kZW50IGF1ZGlvIGRldmljZXMgYXJlIGltcG9zc2libGUKKyAqCSB3aXRoIEFTb0MgdjEuCisgKi8KKworI2lmbmRlZiBfQVUxWF9QQ01fSAorI2RlZmluZSBfQVUxWF9QQ01fSAorCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGF1MXhwc2NfYWM5N19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGF1MXhwc2NfaTJzX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSBhdTF4cHNjX3NvY19wbGF0Zm9ybTsKK2V4dGVybiBzdHJ1Y3Qgc25kX2FjOTdfYnVzX29wcyBzb2NfYWM5N19vcHM7CisKK3N0cnVjdCBhdTF4cHNjX2F1ZGlvX2RhdGEgeworCXZvaWQgX19pb21lbSAqbW1pbzsKKworCXVuc2lnbmVkIGxvbmcgY2ZnOworCXVuc2lnbmVkIGxvbmcgcmF0ZTsKKworCXVuc2lnbmVkIGxvbmcgcG1bMl07CisJc3RydWN0IHJlc291cmNlICppb2FyZWE7Cit9OworCisjZGVmaW5lIFBDTV9UWAkwCisjZGVmaW5lIFBDTV9SWAkxCisKKyNkZWZpbmUgU1VCU1RSRUFNX1RZUEUoc3Vic3RyZWFtKSBcCisJKChzdWJzdHJlYW0pLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSyA/IFBDTV9UWCA6IFBDTV9SWCkKKworLyogZWFzeSBhY2Nlc3MgbWFjcm9zICovCisjZGVmaW5lIFBTQ19DVFJMKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19DVFJMX09GRlNFVCkKKyNkZWZpbmUgUFNDX1NFTCh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfU0VMX09GRlNFVCkKKyNkZWZpbmUgSTJTX1NUQVQoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX0kyU1NUQVRfT0ZGU0VUKQorI2RlZmluZSBJMlNfQ0ZHKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19JMlNDRkdfT0ZGU0VUKQorI2RlZmluZSBJMlNfUENSKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19JMlNQQ1JfT0ZGU0VUKQorI2RlZmluZSBBQzk3X0NGRyh4KQkoKHVuc2lnbmVkIGxvbmcpKCh4KS0+bW1pbykgKyBQU0NfQUM5N0NGR19PRkZTRVQpCisjZGVmaW5lIEFDOTdfQ0RDKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3Q0RDX09GRlNFVCkKKyNkZWZpbmUgQUM5N19FVk5UKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3RVZOVF9PRkZTRVQpCisjZGVmaW5lIEFDOTdfUENSKHgpCSgodW5zaWduZWQgbG9uZykoKHgpLT5tbWlvKSArIFBTQ19BQzk3UENSX09GRlNFVCkKKyNkZWZpbmUgQUM5N19SU1QoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX0FDOTdSU1RfT0ZGU0VUKQorI2RlZmluZSBBQzk3X1NUQVQoeCkJKCh1bnNpZ25lZCBsb25nKSgoeCktPm1taW8pICsgUFNDX0FDOTdTVEFUX09GRlNFVCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvYXUxeC9zYW1wbGUtYWM5Ny5jIGIvc291bmQvc29jL2F1MXgvc2FtcGxlLWFjOTcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzVhZTdmCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2F1MXgvc2FtcGxlLWFjOTcuYwpAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIFNhbXBsZSBBdTEyeDAvQXUxNTUwIFBTQyBBQzk3IHNvdW5kIG1hY2hpbmUuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDA3LTIwMDggTWFudWVsIExhdXNzIDxtYW5vQHJvYXJpbmVsay5ob21lbGludXgubmV0PgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvdXRsaW5lZCBpbiB0aGUgZmlsZSBDT1BZSU5HIGF0IHRoZSByb290IG9mIHRoaXMKKyAqICBzb3VyY2UgYXJjaGl2ZS4KKyAqCisgKiBUaGlzIGlzIGEgdmVyeSBnZW5lcmljIEFDOTcgc291bmQgbWFjaGluZSBkcml2ZXIgZm9yIGJvYXJkcyB3aGljaAorICogaGF2ZSAoQUM5NykgYXVkaW8gYXQgUFNDMSAoZS5nLiBEQjEyMDAgZGVtb2JvYXJkcykuCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxMDAwLmg+CisjaW5jbHVkZSA8YXNtL21hY2gtYXUxeDAwL2F1MXh4eF9wc2MuaD4KKyNpbmNsdWRlIDxhc20vbWFjaC1hdTF4MDAvYXUxeHh4X2RiZG1hLmg+CisKKyNpbmNsdWRlICIuLi9jb2RlY3MvYWM5Ny5oIgorI2luY2x1ZGUgInBzYy5oIgorCitzdGF0aWMgaW50IGF1MXhwc2Nfc2FtcGxlX2FjOTdfaW5pdChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgYXUxeHBzY19zYW1wbGVfYWM5N19kYWkgPSB7CisJLm5hbWUJCT0gIkFDOTciLAorCS5zdHJlYW1fbmFtZQk9ICJBQzk3IEhpRmkiLAorCS5jcHVfZGFpCT0gJmF1MXhwc2NfYWM5N19kYWksCS8qIHNlZSBwc2MtYWM5Ny5jICovCisJLmNvZGVjX2RhaQk9ICZhYzk3X2RhaSwJCS8qIHNlZSBjb2RlY3MvYWM5Ny5jICovCisJLmluaXQJCT0gYXUxeHBzY19zYW1wbGVfYWM5N19pbml0LAorCS5vcHMJCT0gTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lIGF1MXhwc2Nfc2FtcGxlX2FjOTdfbWFjaGluZSA9IHsKKwkubmFtZQkJPSAiQXUxeHh4IFBTQyBBQzk3IEF1ZGlvIiwKKwkuZGFpX2xpbmsJPSAmYXUxeHBzY19zYW1wbGVfYWM5N19kYWksCisJLm51bV9saW5rcwk9IDEsCit9OworCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlIGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2ZGF0YSA9IHsKKwkubWFjaGluZQk9ICZhdTF4cHNjX3NhbXBsZV9hYzk3X21hY2hpbmUsCisJLnBsYXRmb3JtCT0gJmF1MXhwc2Nfc29jX3BsYXRmb3JtLCAvKiBzZWUgZGJkbWEyLmMgKi8KKwkuY29kZWNfZGV2CT0gJnNvY19jb2RlY19kZXZfYWM5NywKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgYXUxeHBzY19wc2MxX3Jlc1tdID0geworCVswXSA9IHsKKwkJLnN0YXJ0CT0gQ1BIWVNBRERSKFBTQzFfQkFTRV9BRERSKSwKKwkJLmVuZAk9IENQSFlTQUREUihQU0MxX0JBU0VfQUREUikgKyAweDAwMGZmZmZmLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX01FTSwKKwl9LAorCVsxXSA9IHsKKyNpZmRlZiBDT05GSUdfU09DX0FVMTIwMAorCQkuc3RhcnQJPSBBVTEyMDBfUFNDMV9JTlQsCisJCS5lbmQJPSBBVTEyMDBfUFNDMV9JTlQsCisjZWxpZiBkZWZpbmVkKENPTkZJR19TT0NfQVUxNTUwKQorCQkuc3RhcnQJPSBBVTE1NTBfUFNDMV9JTlQsCisJCS5lbmQJPSBBVTE1NTBfUFNDMV9JTlQsCisjZW5kaWYKKwkJLmZsYWdzCT0gSU9SRVNPVVJDRV9JUlEsCisJfSwKKwlbMl0gPSB7CisJCS5zdGFydAk9IERTQ1JfQ01EMF9QU0MxX1RYLAorCQkuZW5kCT0gRFNDUl9DTUQwX1BTQzFfVFgsCisJCS5mbGFncwk9IElPUkVTT1VSQ0VfRE1BLAorCX0sCisJWzNdID0geworCQkuc3RhcnQJPSBEU0NSX0NNRDBfUFNDMV9SWCwKKwkJLmVuZAk9IERTQ1JfQ01EMF9QU0MxX1JYLAorCQkuZmxhZ3MJPSBJT1JFU09VUkNFX0RNQSwKKwl9LAorfTsKKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2OworCitzdGF0aWMgaW50IF9faW5pdCBhdTF4cHNjX3NhbXBsZV9hYzk3X2xvYWQodm9pZCkKK3sKKwlpbnQgcmV0OworCisjaWZkZWYgQ09ORklHX1NPQ19BVTEyMDAKKwl1bnNpZ25lZCBsb25nIGlvOworCisJLyogbW9kaWZ5IHN5c19waW5mdW5jIGZvciBBQzk3IG9uIFBTQzEgKi8KKwlpbyA9IGF1X3JlYWRsKFNZU19QSU5GVU5DKTsKKwlpbyB8PSBTWVNfUElORlVOQ19QMUM7CisJaW8gJj0gfihTWVNfUElORlVOQ19QMUEgfCBTWVNfUElORlVOQ19QMUIpOworCWF1X3dyaXRlbChpbywgU1lTX1BJTkZVTkMpOworCWF1X3N5bmMoKTsKKyNlbmRpZgorCisJcmV0ID0gLUVOT01FTTsKKworCS8qIHNldHVwIFBTQyBjbG9jayBzb3VyY2UgZm9yIEFDOTcgcGFydDogZXh0ZXJuYWwgY2xvY2sgcHJvdmlkZWQKKwkgKiBieSBjb2RlYy4gIFRoZSBwc2MtYWM5Ny5jIGRyaXZlciBkZXBlbmRzIG9uIHRoaXMgc2V0dGluZyEKKwkgKi8KKwlhdV93cml0ZWwoUFNDX1NFTF9DTEtfU0VSQ0xLLCBQU0MxX0JBU0VfQUREUiArIFBTQ19TRUxfT0ZGU0VUKTsKKwlhdV9zeW5jKCk7CisKKwlhdTF4cHNjX3NhbXBsZV9hYzk3X2RldiA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic29jLWF1ZGlvIiwgLTEpOworCWlmICghYXUxeHBzY19zYW1wbGVfYWM5N19kZXYpCisJCWdvdG8gb3V0OworCisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYtPnJlc291cmNlID0KKwkJa21lbWR1cChhdTF4cHNjX3BzYzFfcmVzLCBzaXplb2Yoc3RydWN0IHJlc291cmNlKSAqCisJCQlBUlJBWV9TSVpFKGF1MXhwc2NfcHNjMV9yZXMpLCBHRlBfS0VSTkVMKTsKKwlhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldi0+bnVtX3Jlc291cmNlcyA9IEFSUkFZX1NJWkUoYXUxeHBzY19wc2MxX3Jlcyk7CisJYXUxeHBzY19zYW1wbGVfYWM5N19kZXYtPmlkID0gMTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LAorCQkJICAgICAmYXUxeHBzY19zYW1wbGVfYWM5N19kZXZkYXRhKTsKKwlhdTF4cHNjX3NhbXBsZV9hYzk3X2RldmRhdGEuZGV2ID0gJmF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2LT5kZXY7CisJcmV0ID0gcGxhdGZvcm1fZGV2aWNlX2FkZChhdTF4cHNjX3NhbXBsZV9hYzk3X2Rldik7CisKKwlpZiAocmV0KSB7CisJCXBsYXRmb3JtX2RldmljZV9wdXQoYXUxeHBzY19zYW1wbGVfYWM5N19kZXYpOworCQlhdTF4cHNjX3NhbXBsZV9hYzk3X2RldiA9IE5VTEw7CisJfQorCitvdXQ6CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGF1MXhwc2Nfc2FtcGxlX2FjOTdfZXhpdCh2b2lkKQoreworCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKGF1MXhwc2Nfc2FtcGxlX2FjOTdfZGV2KTsKK30KKworbW9kdWxlX2luaXQoYXUxeHBzY19zYW1wbGVfYWM5N19sb2FkKTsKK21vZHVsZV9leGl0KGF1MXhwc2Nfc2FtcGxlX2FjOTdfZXhpdCk7CisKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKK01PRFVMRV9ERVNDUklQVElPTigiQXUxeHh4IFBTQyBzYW1wbGUgQUM5NyBtYWNoaW5lIik7CitNT0RVTEVfQVVUSE9SKCJNYW51ZWwgTGF1c3MgPG1hbm9Acm9hcmluZWxrLmhvbWVsaW51eC5uZXQ+Iik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcgYi9zb3VuZC9zb2MvY29kZWNzL0tjb25maWcKaW5kZXggMzkwM2FiNy4uMWRiMDRhMiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvS2NvbmZpZwpAQCAtMSwzMSArMSwzNyBAQAogY29uZmlnIFNORF9TT0NfQUM5N19DT0RFQwogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DCisJc2VsZWN0IFNORF9BQzk3X0NPREVDCisKK2NvbmZpZyBTTkRfU09DX0FLNDUzNQorCXRyaXN0YXRlCisKK2NvbmZpZyBTTkRfU09DX1VEQTEzODAKKyAgICAgICAgdHJpc3RhdGUKKworY29uZmlnIFNORF9TT0NfV004NTEwCisJdHJpc3RhdGUKIAogY29uZmlnIFNORF9TT0NfV004NzMxCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogY29uZmlnIFNORF9TT0NfV004NzUwCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogY29uZmlnIFNORF9TT0NfV004NzUzCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKKworY29uZmlnIFNORF9TT0NfV004OTkwCisJdHJpc3RhdGUKIAogY29uZmlnIFNORF9TT0NfV005NzEyCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogY29uZmlnIFNORF9TT0NfV005NzEzCiAJdHJpc3RhdGUKLQlkZXBlbmRzIG9uIFNORF9TT0MKIAogIyBDaXJydXMgTG9naWMgQ1M0MjcwIENvZGVjCiBjb25maWcgU05EX1NPQ19DUzQyNzAKIAl0cmlzdGF0ZQotCWRlcGVuZHMgb24gU05EX1NPQwogCiAjIENpcnJ1cyBMb2dpYyBDUzQyNzAgQ29kZWMgSGFyZHdhcmUgTXV0ZSBTdXBwb3J0CiAjIFNlbGVjdCBpZiB5b3UgaGF2ZSBleHRlcm5hbCBtdXRpbmcgY2lyY3VpdHJ5IGF0dGFjaGVkIHRvIHlvdXIgQ1M0MjcwLgpAQCAtNDMsNCArNDksNCBAQAogCiBjb25maWcgU05EX1NPQ19UTFYzMjBBSUMzWAogCXRyaXN0YXRlCi0JZGVwZW5kcyBvbiBTTkRfU09DICYmIEkyQworCWRlcGVuZHMgb24gSTJDCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlIGIvc291bmQvc29jL2NvZGVjcy9NYWtlZmlsZQppbmRleCA0ZTEzMTRjLi5kN2I5N2FiIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL01ha2VmaWxlCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvTWFrZWZpbGUKQEAgLTEsMTYgKzEsMjQgQEAKIHNuZC1zb2MtYWM5Ny1vYmpzIDo9IGFjOTcubworc25kLXNvYy1hazQ1MzUtb2JqcyA6PSBhazQ1MzUubworc25kLXNvYy11ZGExMzgwLW9ianMgOj0gdWRhMTM4MC5vCitzbmQtc29jLXdtODUxMC1vYmpzIDo9IHdtODUxMC5vCiBzbmQtc29jLXdtODczMS1vYmpzIDo9IHdtODczMS5vCiBzbmQtc29jLXdtODc1MC1vYmpzIDo9IHdtODc1MC5vCiBzbmQtc29jLXdtODc1My1vYmpzIDo9IHdtODc1My5vCitzbmQtc29jLXdtODk5MC1vYmpzIDo9IHdtODk5MC5vCiBzbmQtc29jLXdtOTcxMi1vYmpzIDo9IHdtOTcxMi5vCiBzbmQtc29jLXdtOTcxMy1vYmpzIDo9IHdtOTcxMy5vCiBzbmQtc29jLWNzNDI3MC1vYmpzIDo9IGNzNDI3MC5vCiBzbmQtc29jLXRsdjMyMGFpYzN4LW9ianMgOj0gdGx2MzIwYWljM3gubwogCiBvYmotJChDT05GSUdfU05EX1NPQ19BQzk3X0NPREVDKQkrPSBzbmQtc29jLWFjOTcubworb2JqLSQoQ09ORklHX1NORF9TT0NfQUs0NTM1KQkrPSBzbmQtc29jLWFrNDUzNS5vCitvYmotJChDT05GSUdfU05EX1NPQ19VREExMzgwKQkrPSBzbmQtc29jLXVkYTEzODAubworb2JqLSQoQ09ORklHX1NORF9TT0NfV004NTEwKQkrPSBzbmQtc29jLXdtODUxMC5vCiBvYmotJChDT05GSUdfU05EX1NPQ19XTTg3MzEpCSs9IHNuZC1zb2Mtd204NzMxLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNODc1MCkJKz0gc25kLXNvYy13bTg3NTAubwogb2JqLSQoQ09ORklHX1NORF9TT0NfV004NzUzKQkrPSBzbmQtc29jLXdtODc1My5vCitvYmotJChDT05GSUdfU05EX1NPQ19XTTg5OTApCSs9IHNuZC1zb2Mtd204OTkwLm8KIG9iai0kKENPTkZJR19TTkRfU09DX1dNOTcxMikJKz0gc25kLXNvYy13bTk3MTIubwogb2JqLSQoQ09ORklHX1NORF9TT0NfV005NzEzKQkrPSBzbmQtc29jLXdtOTcxMy5vCiBvYmotJChDT05GSUdfU05EX1NPQ19DUzQyNzApCSs9IHNuZC1zb2MtY3M0MjcwLm8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5jIGIvc291bmQvc29jL2NvZGVjcy9hYzk3LmMKaW5kZXggMmExZmZlMy4uNjFmZDk2YyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9hYzk3LmMKKysrIGIvc291bmQvc29jL2NvZGVjcy9hYzk3LmMKQEAgLTEwLDkgKzEwLDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAxN3RoIE9jdCAyMDA1ICAgSW5pdGlhbCB2ZXJzaW9uLgotICoKICAqIEdlbmVyaWMgQUM5NyBzdXBwb3J0LgogICovCiAKQEAgLTI0LDYgKzIxLDcgQEAKICNpbmNsdWRlIDxzb3VuZC9hYzk3X2NvZGVjLmg+CiAjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgogI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgImFjOTcuaCIKIAogI2RlZmluZSBBQzk3X1ZFUlNJT04gIjAuNiIKIApAQCAtNDMsNyArNDEsNyBAQAogCQlTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHxcCiAJCVNORFJWX1BDTV9SQVRFXzQ4MDAwKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgYWM5N19kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgYWM5N19kYWkgPSB7CiAJLm5hbWUgPSAiQUM5NyBIaUZpIiwKIAkudHlwZSA9IFNORF9TT0NfREFJX0FDOTcsCiAJLnBsYXliYWNrID0gewpAQCAtMTQ2LDkgKzE0NCwzNCBAQAogCXJldHVybiAwOwogfQogCisjaWZkZWYgQ09ORklHX1BNCitzdGF0aWMgaW50IGFjOTdfc29jX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IG1zZykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCisJc25kX2FjOTdfc3VzcGVuZChzb2NkZXYtPmNvZGVjLT5hYzk3KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFjOTdfc29jX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisKKwlzbmRfYWM5N19yZXN1bWUoc29jZGV2LT5jb2RlYy0+YWM5Nyk7CisKKwlyZXR1cm4gMDsKK30KKyNlbHNlCisjZGVmaW5lIGFjOTdfc29jX3N1c3BlbmQgTlVMTAorI2RlZmluZSBhYzk3X3NvY19yZXN1bWUgTlVMTAorI2VuZGlmCisKIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FjOTcgPSB7CiAJLnByb2JlID0gCWFjOTdfc29jX3Byb2JlLAogCS5yZW1vdmUgPSAJYWM5N19zb2NfcmVtb3ZlLAorCS5zdXNwZW5kID0JYWM5N19zb2Nfc3VzcGVuZCwKKwkucmVzdW1lID0JYWM5N19zb2NfcmVzdW1lLAogfTsKIEVYUE9SVF9TWU1CT0xfR1BMKHNvY19jb2RlY19kZXZfYWM5Nyk7CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvYWM5Ny5oIGIvc291bmQvc29jL2NvZGVjcy9hYzk3LmgKaW5kZXggMmJmNmQ2OS4uMjgxYWE0MiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9hYzk3LmgKKysrIGIvc291bmQvc29jL2NvZGVjcy9hYzk3LmgKQEAgLTE0LDYgKzE0LDYgQEAKICNkZWZpbmUgX19MSU5VWF9TTkRfU09DX0FDOTdfSAogCiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfYWM5NzsKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgYWM5N19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIGFjOTdfZGFpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvYWs0NTM1LmMgYi9zb3VuZC9zb2MvY29kZWNzL2FrNDUzNS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyNjAwM2MKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL2FrNDUzNS5jCkBAIC0wLDAgKzEsNjk2IEBACisvKgorICogYWs0NTM1LmMgIC0tICBBSzQ1MzUgQUxTQSBTb2MgQXVkaW8gZHJpdmVyCisgKgorICogQ29weXJpZ2h0IDIwMDUgT3BlbmVkaGFuZCBMdGQuCisgKgorICogQXV0aG9yOiBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZEBvcGVuZWRoYW5kLmNvbT4KKyAqCisgKiBCYXNlZCBvbiB3bTg3NTMuYyBieSBMaWFtIEdpcmR3b29kCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CisjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9wbS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9wY21fcGFyYW1zLmg+CisjaW5jbHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlIDxzb3VuZC9pbml0dmFsLmg+CisKKyNpbmNsdWRlICJhazQ1MzUuaCIKKworI2RlZmluZSBBVURJT19OQU1FICJhazQ1MzUiCisjZGVmaW5lIEFLNDUzNV9WRVJTSU9OICIwLjMiCisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FrNDUzNTsKKworLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCitzdHJ1Y3QgYWs0NTM1X3ByaXYgeworCXVuc2lnbmVkIGludCBzeXNjbGs7Cit9OworCisvKgorICogYWs0NTM1IHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBjb25zdCB1MTYgYWs0NTM1X3JlZ1tBSzQ1MzVfQ0FDSEVSRUdOVU1dID0geworICAgIDB4MDAwMCwgMHgwMDgwLCAweDAwMDAsIDB4MDAwMywKKyAgICAweDAwMDIsIDB4MDAwMCwgMHgwMDExLCAweDAwMDEsCisgICAgMHgwMDAwLCAweDAwNDAsIDB4MDAzNiwgMHgwMDEwLAorICAgIDB4MDAwMCwgMHgwMDAwLCAweDAwNTcsIDB4MDAwMCwKK307CisKKy8qCisgKiByZWFkIGFrNDUzNSByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBhazQ1MzVfcmVhZF9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXVuc2lnbmVkIGludCByZWcpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaWYgKHJlZyA+PSBBSzQ1MzVfQ0FDSEVSRUdOVU0pCisJCXJldHVybiAtMTsKKwlyZXR1cm4gY2FjaGVbcmVnXTsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgYWs0NTM1X3JlYWQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXVuc2lnbmVkIGludCByZWcpCit7CisJdTggZGF0YTsKKwlkYXRhID0gcmVnOworCisJaWYgKGNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCAmZGF0YSwgMSkgIT0gMSkKKwkJcmV0dXJuIC1FSU87CisKKwlpZiAoY29kZWMtPmh3X3JlYWQoY29kZWMtPmNvbnRyb2xfZGF0YSwgJmRhdGEsIDEpICE9IDEpCisJCXJldHVybiAtRUlPOworCisJcmV0dXJuIGRhdGE7Cit9OworCisvKgorICogd3JpdGUgYWs0NTM1IHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBhazQ1MzVfd3JpdGVfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1MTYgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaWYgKHJlZyA+PSBBSzQ1MzVfQ0FDSEVSRUdOVU0pCisJCXJldHVybjsKKwljYWNoZVtyZWddID0gdmFsdWU7Cit9CisKKy8qCisgKiB3cml0ZSB0byB0aGUgQUs0NTM1IHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgYWs0NTM1X3dyaXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwl1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTggZGF0YVsyXTsKKworCS8qIGRhdGEgaXMKKwkgKiAgIEQxNS4uRDggQUs0NTM1IHJlZ2lzdGVyIG9mZnNldAorCSAqICAgRDcuLi5EMCByZWdpc3RlciBkYXRhCisJICovCisJZGF0YVswXSA9IHJlZyAmIDB4ZmY7CisJZGF0YVsxXSA9IHZhbHVlICYgMHhmZjsKKworCWFrNDUzNV93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgdmFsdWUpOworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMikgPT0gMikKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTzsKK30KKworc3RhdGljIGludCBhazQ1MzVfc3luYyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaW50IGksIHIgPSAwOworCisJZm9yIChpID0gMDsgaSA8IEFLNDUzNV9DQUNIRVJFR05VTTsgaSsrKQorCQlyIHw9IGFrNDUzNV93cml0ZShjb2RlYywgaSwgY2FjaGVbaV0pOworCisJcmV0dXJuIHI7Cit9OworCitzdGF0aWMgY29uc3QgY2hhciAqYWs0NTM1X21vbm9fZ2FpbltdID0geyIrNmRCIiwgIi0xN2RCIn07CitzdGF0aWMgY29uc3QgY2hhciAqYWs0NTM1X21vbm9fb3V0W10gPSB7IihMICsgUikvMiIsICJIaS1aIn07CitzdGF0aWMgY29uc3QgY2hhciAqYWs0NTM1X2hwX291dFtdID0geyJTdGVyZW8iLCAiTW9ubyJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9kZWVtcFtdID0geyI0NC4xa0h6IiwgIk9mZiIsICI0OGtIeiIsICIzMmtIeiJ9Oworc3RhdGljIGNvbnN0IGNoYXIgKmFrNDUzNV9taWNfc2VsZWN0W10gPSB7IkludGVybmFsIiwgIkV4dGVybmFsIn07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gYWs0NTM1X2VudW1bXSA9IHsKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X1NJRzEsIDcsIDIsIGFrNDUzNV9tb25vX2dhaW4pLAorCVNPQ19FTlVNX1NJTkdMRShBSzQ1MzVfU0lHMSwgNiwgMiwgYWs0NTM1X21vbm9fb3V0KSwKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X01PREUyLCAyLCAyLCBhazQ1MzVfaHBfb3V0KSwKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X0RBQywgMCwgNCwgYWs0NTM1X2RlZW1wKSwKKwlTT0NfRU5VTV9TSU5HTEUoQUs0NTM1X01JQywgMSwgMiwgYWs0NTM1X21pY19zZWxlY3QpLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9zbmRfY29udHJvbHNbXSA9IHsKKwlTT0NfU0lOR0xFKCJBTEMyIFN3aXRjaCIsIEFLNDUzNV9TSUcxLCAxLCAxLCAwKSwKKwlTT0NfRU5VTSgiTW9ubyAxIE91dHB1dCIsIGFrNDUzNV9lbnVtWzFdKSwKKwlTT0NfRU5VTSgiTW9ubyAxIEdhaW4iLCBhazQ1MzVfZW51bVswXSksCisJU09DX0VOVU0oIkhlYWRwaG9uZSBPdXRwdXQiLCBhazQ1MzVfZW51bVsyXSksCisJU09DX0VOVU0oIlBsYXliYWNrIERlZW1waGFzaXMiLCBhazQ1MzVfZW51bVszXSksCisJU09DX1NJTkdMRSgiQmFzcyBWb2x1bWUiLCBBSzQ1MzVfREFDLCAyLCAzLCAwKSwKKwlTT0NfU0lOR0xFKCJNaWMgQm9vc3QgKCsyMGRCKSBTd2l0Y2giLCBBSzQ1MzVfTUlDLCAwLCAxLCAwKSwKKwlTT0NfRU5VTSgiTWljIFNlbGVjdCIsIGFrNDUzNV9lbnVtWzRdKSwKKwlTT0NfU0lOR0xFKCJBTEMgT3BlcmF0aW9uIFRpbWUiLCBBSzQ1MzVfVElNRVIsIDAsIDMsIDApLAorCVNPQ19TSU5HTEUoIkFMQyBSZWNvdmVyeSBUaW1lIiwgQUs0NTM1X1RJTUVSLCAyLCAzLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgWkMgVGltZSIsIEFLNDUzNV9USU1FUiwgNCwgMywgMCksCisJU09DX1NJTkdMRSgiQUxDIDEgU3dpdGNoIiwgQUs0NTM1X0FMQzEsIDUsIDEsIDApLAorCVNPQ19TSU5HTEUoIkFMQyAyIFN3aXRjaCIsIEFLNDUzNV9BTEMxLCA2LCAxLCAwKSwKKwlTT0NfU0lOR0xFKCJBTEMgVm9sdW1lIiwgQUs0NTM1X0FMQzIsIDAsIDEyNywgMCksCisJU09DX1NJTkdMRSgiQ2FwdHVyZSBWb2x1bWUiLCBBSzQ1MzVfUEdBLCAwLCAxMjcsIDApLAorCVNPQ19TSU5HTEUoIkxlZnQgUGxheWJhY2sgVm9sdW1lIiwgQUs0NTM1X0xBVFQsIDAsIDEyNywgMSksCisJU09DX1NJTkdMRSgiUmlnaHQgUGxheWJhY2sgVm9sdW1lIiwgQUs0NTM1X1JBVFQsIDAsIDEyNywgMSksCisJU09DX1NJTkdMRSgiQVVYIEJ5cGFzcyBWb2x1bWUiLCBBSzQ1MzVfVk9MLCAwLCAxNSwgMCksCisJU09DX1NJTkdMRSgiTWljIFNpZGV0b25lIFZvbHVtZSIsIEFLNDUzNV9WT0wsIDQsIDcsIDApLAorfTsKKworLyogYWRkIG5vbiBkYXBtIGNvbnRyb2xzICovCitzdGF0aWMgaW50IGFrNDUzNV9hZGRfY29udHJvbHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCWludCBlcnIsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhazQ1MzVfc25kX2NvbnRyb2xzKTsgaSsrKSB7CisJCWVyciA9IHNuZF9jdGxfYWRkKGNvZGVjLT5jYXJkLAorCQkJc25kX3NvY19jbmV3KCZhazQ1MzVfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywgTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIE1vbm8gMSBNaXhlciAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9tb25vMV9taXhlcl9jb250cm9sc1tdID0geworCVNPQ19EQVBNX1NJTkdMRSgiTWljIFNpZGV0b25lIFN3aXRjaCIsIEFLNDUzNV9TSUcxLCA0LCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIk1vbm8gUGxheWJhY2sgU3dpdGNoIiwgQUs0NTM1X1NJRzEsIDUsIDEsIDApLAorfTsKKworLyogU3RlcmVvIE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWs0NTM1X3N0ZXJlb19taXhlcl9jb250cm9sc1tdID0geworCVNPQ19EQVBNX1NJTkdMRSgiTWljIFNpZGV0b25lIFN3aXRjaCIsIEFLNDUzNV9TSUcyLCA0LCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIlBsYXliYWNrIFN3aXRjaCIsIEFLNDUzNV9TSUcyLCA3LCAxLCAwKSwKKwlTT0NfREFQTV9TSU5HTEUoIkF1eCBCeXBhc3MgU3dpdGNoIiwgQUs0NTM1X1NJRzIsIDUsIDEsIDApLAorfTsKKworLyogSW5wdXQgTWl4ZXIgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfaW5wdXRfbWl4ZXJfY29udHJvbHNbXSA9IHsKKwlTT0NfREFQTV9TSU5HTEUoIk1pYyBDYXB0dXJlIFN3aXRjaCIsIEFLNDUzNV9NSUMsIDIsIDEsIDApLAorCVNPQ19EQVBNX1NJTkdMRSgiQXV4IENhcHR1cmUgU3dpdGNoIiwgQUs0NTM1X01JQywgNSwgMSwgMCksCit9OworCisvKiBJbnB1dCBtdXggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfaW5wdXRfbXV4X2NvbnRyb2wgPQorCVNPQ19EQVBNX0VOVU0oIklucHV0IFNlbGVjdCIsIGFrNDUzNV9lbnVtWzRdKTsKKworLyogSFAgTCBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfaHBsX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzIsIDEsIDEsIDEpOworCisvKiBIUCBSIHN3aXRjaCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9ocHJfY29udHJvbCA9CisJU09DX0RBUE1fU0lOR0xFKCJTd2l0Y2giLCBBSzQ1MzVfU0lHMiwgMCwgMSwgMSk7CisKKy8qIG1vbm8gMiBzd2l0Y2ggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhazQ1MzVfbW9ubzJfY29udHJvbCA9CisJU09DX0RBUE1fU0lOR0xFKCJTd2l0Y2giLCBBSzQ1MzVfU0lHMSwgMCwgMSwgMCk7CisKKy8qIExpbmUgb3V0IHN3aXRjaCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFrNDUzNV9saW5lX2NvbnRyb2wgPQorCVNPQ19EQVBNX1NJTkdMRSgiU3dpdGNoIiwgQUs0NTM1X1NJRzIsIDYsIDEsIDApOworCisvKiBhazQ1MzUgZGFwbSB3aWRnZXRzICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgYWs0NTM1X2RhcG1fd2lkZ2V0c1tdID0geworCVNORF9TT0NfREFQTV9NSVhFUigiU3RlcmVvIE1peGVyIiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmYWs0NTM1X3N0ZXJlb19taXhlcl9jb250cm9sc1swXSwKKwkJQVJSQVlfU0laRShhazQ1MzVfc3RlcmVvX21peGVyX2NvbnRyb2xzKSksCisJU05EX1NPQ19EQVBNX01JWEVSKCJNb25vMSBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9tb25vMV9taXhlcl9jb250cm9sc1swXSwKKwkJQVJSQVlfU0laRShhazQ1MzVfbW9ubzFfbWl4ZXJfY29udHJvbHMpKSwKKwlTTkRfU09DX0RBUE1fTUlYRVIoIklucHV0IE1peGVyIiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmYWs0NTM1X2lucHV0X21peGVyX2NvbnRyb2xzWzBdLAorCQlBUlJBWV9TSVpFKGFrNDUzNV9pbnB1dF9taXhlcl9jb250cm9scykpLAorCVNORF9TT0NfREFQTV9NVVgoIklucHV0IE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9pbnB1dF9tdXhfY29udHJvbCksCisJU05EX1NPQ19EQVBNX0RBQygiREFDIiwgIlBsYXliYWNrIiwgQUs0NTM1X1BNMiwgMCwgMCksCisJU05EX1NPQ19EQVBNX1NXSVRDSCgiTW9ubyAyIEVuYWJsZSIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9tb25vMl9jb250cm9sKSwKKwkvKiBzcGVha2VyIHBvd2Vyc2F2ZSBiaXQgKi8KKwlTTkRfU09DX0RBUE1fUEdBKCJTcGVha2VyIEVuYWJsZSIsIEFLNDUzNV9NT0RFMiwgMCwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1NXSVRDSCgiTGluZSBPdXQgRW5hYmxlIiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmYWs0NTM1X2xpbmVfY29udHJvbCksCisJU05EX1NPQ19EQVBNX1NXSVRDSCgiTGVmdCBIUCBFbmFibGUiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZhazQ1MzVfaHBsX2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9TV0lUQ0goIlJpZ2h0IEhQIEVuYWJsZSIsIFNORF9TT0NfTk9QTSwgMCwgMCwKKwkJJmFrNDUzNV9ocHJfY29udHJvbCksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiTE9VVCIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIkhQTCIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIlJPVVQiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJIUFIiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJTUFAiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJTUE4iKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJNT1VUMSIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIk1PVVQyIiksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiTUlDT1VUIiksCisJU05EX1NPQ19EQVBNX0FEQygiQURDIiwgIkNhcHR1cmUiLCBBSzQ1MzVfUE0xLCAwLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJTcGsgQW1wIiwgQUs0NTM1X1BNMiwgMywgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiSFAgUiBBbXAiLCBBSzQ1MzVfUE0yLCAxLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJIUCBMIEFtcCIsIEFLNDUzNV9QTTIsIDIsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIk1pYyIsIEFLNDUzNV9QTTEsIDEsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIkxpbmUgT3V0IiwgQUs0NTM1X1BNMSwgNCwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX1BHQSgiTW9ubyBPdXQiLCBBSzQ1MzVfUE0xLCAzLCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJBVVggSW4iLCBBSzQ1MzVfUE0xLCAyLCAwLCBOVUxMLCAwKSwKKworCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgSW50IEJpYXMiLCBBSzQ1MzVfTUlDLCAzLCAwKSwKKwlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEV4dCBCaWFzIiwgQUs0NTM1X01JQywgNCwgMCksCisJU05EX1NPQ19EQVBNX0lOUFVUKCJNSUNJTiIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiTUlDRVhUIiksCisJU05EX1NPQ19EQVBNX0lOUFVUKCJBVVgiKSwKKwlTTkRfU09DX0RBUE1fSU5QVVQoIk1JTiIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiQUlOIiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKKwkvKnN0ZXJlbyBtaXhlciAqLworCXsiU3RlcmVvIE1peGVyIiwgIlBsYXliYWNrIFN3aXRjaCIsICJEQUMifSwKKwl7IlN0ZXJlbyBNaXhlciIsICJNaWMgU2lkZXRvbmUgU3dpdGNoIiwgIk1pYyJ9LAorCXsiU3RlcmVvIE1peGVyIiwgIkF1eCBCeXBhc3MgU3dpdGNoIiwgIkFVWCBJbiJ9LAorCisJLyogbW9ubzEgbWl4ZXIgKi8KKwl7Ik1vbm8xIE1peGVyIiwgIk1pYyBTaWRldG9uZSBTd2l0Y2giLCAiTWljIn0sCisJeyJNb25vMSBNaXhlciIsICJNb25vIFBsYXliYWNrIFN3aXRjaCIsICJEQUMifSwKKworCS8qIE1pYyAqLworCXsiTWljIiwgTlVMTCwgIkFJTiJ9LAorCXsiSW5wdXQgTXV4IiwgIkludGVybmFsIiwgIk1pYyBJbnQgQmlhcyJ9LAorCXsiSW5wdXQgTXV4IiwgIkV4dGVybmFsIiwgIk1pYyBFeHQgQmlhcyJ9LAorCXsiTWljIEludCBCaWFzIiwgTlVMTCwgIk1JQ0lOIn0sCisJeyJNaWMgRXh0IEJpYXMiLCBOVUxMLCAiTUlDRVhUIn0sCisJeyJNSUNPVVQiLCBOVUxMLCAiSW5wdXQgTXV4In0sCisKKwkvKiBsaW5lIG91dCAqLworCXsiTE9VVCIsIE5VTEwsICJMaW5lIE91dCBFbmFibGUifSwKKwl7IlJPVVQiLCBOVUxMLCAiTGluZSBPdXQgRW5hYmxlIn0sCisJeyJMaW5lIE91dCBFbmFibGUiLCAiU3dpdGNoIiwgIkxpbmUgT3V0In0sCisJeyJMaW5lIE91dCIsIE5VTEwsICJTdGVyZW8gTWl4ZXIifSwKKworCS8qIG1vbm8xIG91dCAqLworCXsiTU9VVDEiLCBOVUxMLCAiTW9ubyBPdXQifSwKKwl7Ik1vbm8gT3V0IiwgTlVMTCwgIk1vbm8xIE1peGVyIn0sCisKKwkvKiBsZWZ0IEhQICovCisJeyJIUEwiLCBOVUxMLCAiTGVmdCBIUCBFbmFibGUifSwKKwl7IkxlZnQgSFAgRW5hYmxlIiwgIlN3aXRjaCIsICJIUCBMIEFtcCJ9LAorCXsiSFAgTCBBbXAiLCBOVUxMLCAiU3RlcmVvIE1peGVyIn0sCisKKwkvKiByaWdodCBIUCAqLworCXsiSFBSIiwgTlVMTCwgIlJpZ2h0IEhQIEVuYWJsZSJ9LAorCXsiUmlnaHQgSFAgRW5hYmxlIiwgIlN3aXRjaCIsICJIUCBSIEFtcCJ9LAorCXsiSFAgUiBBbXAiLCBOVUxMLCAiU3RlcmVvIE1peGVyIn0sCisKKwkvKiBzcGVha2VyICovCisJeyJTUFAiLCBOVUxMLCAiU3BlYWtlciBFbmFibGUifSwKKwl7IlNQTiIsIE5VTEwsICJTcGVha2VyIEVuYWJsZSJ9LAorCXsiU3BlYWtlciBFbmFibGUiLCAiU3dpdGNoIiwgIlNwayBBbXAifSwKKwl7IlNwayBBbXAiLCBOVUxMLCAiTUlOIn0sCisKKwkvKiBtb25vIDIgKi8KKwl7Ik1PVVQyIiwgTlVMTCwgIk1vbm8gMiBFbmFibGUifSwKKwl7Ik1vbm8gMiBFbmFibGUiLCAiU3dpdGNoIiwgIlN0ZXJlbyBNaXhlciJ9LAorCisJLyogQXV4IEluICovCisJeyJBdXggSW4iLCBOVUxMLCAiQVVYIn0sCisKKwkvKiBBREMgKi8KKwl7IkFEQyIsIE5VTEwsICJJbnB1dCBNaXhlciJ9LAorCXsiSW5wdXQgTWl4ZXIiLCAiTWljIENhcHR1cmUgU3dpdGNoIiwgIk1pYyJ9LAorCXsiSW5wdXQgTWl4ZXIiLCAiQXV4IENhcHR1cmUgU3dpdGNoIiwgIkF1eCBJbiJ9LAorfTsKKworc3RhdGljIGludCBhazQ1MzVfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIGFrNDUzNV9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGFrNDUzNV9kYXBtX3dpZGdldHMpKTsKKworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXN0cnVjdCBhazQ1MzVfcHJpdiAqYWs0NTM1ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKKworCWFrNDUzNS0+c3lzY2xrID0gZnJlcTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfaHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGFrNDUzNV9wcml2ICphazQ1MzUgPSBjb2RlYy0+cHJpdmF0ZV9kYXRhOworCXU4IG1vZGUyID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfTU9ERTIpICYgfigweDMgPDwgNSk7CisJaW50IHJhdGUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpLCBmcyA9IDI1NjsKKworCWlmIChyYXRlKQorCQlmcyA9IGFrNDUzNS0+c3lzY2xrIC8gcmF0ZTsKKworCS8qIHNldCBmcyAqLworCXN3aXRjaCAoZnMpIHsKKwljYXNlIDEwMjQ6CisJCW1vZGUyIHw9ICgweDIgPDwgNSk7CisJCWJyZWFrOworCWNhc2UgNTEyOgorCQltb2RlMiB8PSAoMHgxIDw8IDUpOworCQlicmVhazsKKwljYXNlIDI1NjoKKwkJYnJlYWs7CisJfQorCisJLyogc2V0IHJhdGUgKi8KKwlhazQ1MzVfd3JpdGUoY29kZWMsIEFLNDUzNV9NT0RFMiwgbW9kZTIpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKKwkJdW5zaWduZWQgaW50IGZtdCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXU4IG1vZGUxID0gMDsKKworCS8qIGludGVyZmFjZSBmb3JtYXQgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCW1vZGUxID0gMHgwMDAyOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0xFRlRfSjoKKwkJbW9kZTEgPSAweDAwMDE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIHVzZSAzMiBmcyBmb3IgQkNMSyB0byBzYXZlIHBvd2VyICovCisJbW9kZTEgfD0gMHg0OworCisJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfTU9ERTEsIG1vZGUxKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBhazQ1MzVfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKKwl1MTYgbXV0ZV9yZWcgPSBhazQ1MzVfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFLNDUzNV9EQUMpICYgMHhmZmRmOworCWlmICghbXV0ZSkKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfREFDLCBtdXRlX3JlZyk7CisJZWxzZQorCQlhazQ1MzVfd3JpdGUoY29kZWMsIEFLNDUzNV9EQUMsIG11dGVfcmVnIHwgMHgyMCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKK3sKKwl1MTYgaTsKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKKwkJYWs0NTM1X211dGUoY29kZWMtPmRhaSwgMCk7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CisJCWFrNDUzNV9tdXRlKGNvZGVjLT5kYWksIDEpOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgorCQlpID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfUE0xKTsKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfUE0xLCBpIHwgMHg4MCk7CisJCWkgPSBhazQ1MzVfcmVhZF9yZWdfY2FjaGUoY29kZWMsIEFLNDUzNV9QTTIpOworCQlhazQ1MzVfd3JpdGUoY29kZWMsIEFLNDUzNV9QTTIsIGkgJiAofjB4ODApKTsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgorCQlpID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSzQ1MzVfUE0xKTsKKwkJYWs0NTM1X3dyaXRlKGNvZGVjLCBBSzQ1MzVfUE0xLCBpICYgKH4weDgwKSk7CisJCWJyZWFrOworCX0KKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOworCXJldHVybiAwOworfQorCisjZGVmaW5lIEFLNDUzNV9SQVRFUyAoU05EUlZfUENNX1JBVEVfODAwMCB8IFNORFJWX1BDTV9SQVRFXzExMDI1IHxcCisJCVNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfFwKKwkJU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9QQ01fUkFURV80ODAwMCkKKworc3RydWN0IHNuZF9zb2NfZGFpIGFrNDUzNV9kYWkgPSB7CisJLm5hbWUgPSAiQUs0NTM1IiwKKwkucGxheWJhY2sgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gQUs0NTM1X1JBVEVTLAorCQkuZm9ybWF0cyA9IFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFLH0sCisJLmNhcHR1cmUgPSB7CisJCS5zdHJlYW1fbmFtZSA9ICJDYXB0dXJlIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBBSzQ1MzVfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gYWs0NTM1X2h3X3BhcmFtcywKKwl9LAorCS5kYWlfb3BzID0geworCQkuc2V0X2ZtdCA9IGFrNDUzNV9zZXRfZGFpX2ZtdCwKKwkJLmRpZ2l0YWxfbXV0ZSA9IGFrNDUzNV9tdXRlLAorCQkuc2V0X3N5c2NsayA9IGFrNDUzNV9zZXRfZGFpX3N5c2NsaywKKwl9LAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKGFrNDUzNV9kYWkpOworCitzdGF0aWMgaW50IGFrNDUzNV9zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisKKwlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGFrNDUzNV9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJYWs0NTM1X3N5bmMoY29kZWMpOworCWFrNDUzNV9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCWFrNDUzNV9zZXRfYmlhc19sZXZlbChjb2RlYywgY29kZWMtPnN1c3BlbmRfYmlhc19sZXZlbCk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBpbml0aWFsaXNlIHRoZSBBSzQ1MzUgZHJpdmVyCisgKiByZWdpc3RlciB0aGUgbWl4ZXIgYW5kIGRzcCBpbnRlcmZhY2VzIHdpdGggdGhlIGtlcm5lbAorICovCitzdGF0aWMgaW50IGFrNDUzNV9pbml0KHN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJaW50IHJldCA9IDA7CisKKwljb2RlYy0+bmFtZSA9ICJBSzQ1MzUiOworCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOworCWNvZGVjLT5yZWFkID0gYWs0NTM1X3JlYWRfcmVnX2NhY2hlOworCWNvZGVjLT53cml0ZSA9IGFrNDUzNV93cml0ZTsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSBhazQ1MzVfc2V0X2JpYXNfbGV2ZWw7CisJY29kZWMtPmRhaSA9ICZhazQ1MzVfZGFpOworCWNvZGVjLT5udW1fZGFpID0gMTsKKwljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBBUlJBWV9TSVpFKGFrNDUzNV9yZWcpOworCWNvZGVjLT5yZWdfY2FjaGUgPSBrbWVtZHVwKGFrNDUzNV9yZWcsIHNpemVvZihhazQ1MzVfcmVnKSwgR0ZQX0tFUk5FTCk7CisKKwlpZiAoY29kZWMtPnJlZ19jYWNoZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIHJlZ2lzdGVyIHBjbXMgKi8KKwlyZXQgPSBzbmRfc29jX25ld19wY21zKHNvY2RldiwgU05EUlZfREVGQVVMVF9JRFgxLCBTTkRSVl9ERUZBVUxUX1NUUjEpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYWs0NTM1OiBmYWlsZWQgdG8gY3JlYXRlIHBjbXNcbiIpOworCQlnb3RvIHBjbV9lcnI7CisJfQorCisJLyogcG93ZXIgb24gZGV2aWNlICovCisJYWs0NTM1X3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisKKwlhazQ1MzVfYWRkX2NvbnRyb2xzKGNvZGVjKTsKKwlhazQ1MzVfYWRkX3dpZGdldHMoY29kZWMpOworCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAiYWs0NTM1OiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2FyZFxuIik7CisJCWdvdG8gY2FyZF9lcnI7CisJfQorCisJcmV0dXJuIHJldDsKKworY2FyZF9lcnI6CisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworcGNtX2VycjoKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKmFrNDUzNV9zb2NkZXY7CisKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisKKyNkZWZpbmUgSTJDX0RSSVZFUklEX0FLNDUzNSAweGZlZmUgLyogbGlhbSAtICBuZWVkIGEgcHJvcGVyIGlkICovCisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7IDAsIEkyQ19DTElFTlRfRU5EIH07CisKKy8qIE1hZ2ljIGRlZmluaXRpb24gb2YgYWxsIG90aGVyIHZhcmlhYmxlcyBhbmQgdGhpbmdzICovCitJMkNfQ0xJRU5UX0lOU01PRDsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIGFrNDUzNV9pMmNfZHJpdmVyOworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0ZTsKKworLyogSWYgdGhlIGkyYyBsYXllciB3ZXJlbid0IHNvIGJyb2tlbiwgd2UgY291bGQgcGFzcyB0aGlzIGtpbmQgb2YgZGF0YQorICAgYXJvdW5kICovCitzdGF0aWMgaW50IGFrNDUzNV9jb2RlY19wcm9iZShzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXAsIGludCBhZGRyLCBpbnQga2luZCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IGFrNDUzNV9zb2NkZXY7CisJc3RydWN0IGFrNDUzNV9zZXR1cF9kYXRhICpzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBpMmNfY2xpZW50ICppMmM7CisJaW50IHJldDsKKworCWlmIChhZGRyICE9IHNldHVwLT5pMmNfYWRkcmVzcykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljbGllbnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXA7CisJY2xpZW50X3RlbXBsYXRlLmFkZHIgPSBhZGRyOworCisJaTJjID0ga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IGFrNDUzNV9pbml0KHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJmYWlsZWQgdG8gaW5pdGlhbGlzZSBBSzQ1MzVcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50KTsKKwlpMmNfZGV0YWNoX2NsaWVudChjbGllbnQpOworCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCWtmcmVlKGNsaWVudCk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYWs0NTM1X2kyY19hdHRhY2goc3RydWN0IGkyY19hZGFwdGVyICphZGFwKQoreworCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgYWs0NTM1X2NvZGVjX3Byb2JlKTsKK30KKworLyogY29yZ2kgaTJjIGNvZGVjIGNvbnRyb2wgbGF5ZXIgKi8KK3N0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBhazQ1MzVfaTJjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJBSzQ1MzUgSTJDIENvZGVjIiwKKwkJLm93bmVyID0gVEhJU19NT0RVTEUsCisJfSwKKwkuaWQgPSAgICAgICAgICAgICBJMkNfRFJJVkVSSURfQUs0NTM1LAorCS5hdHRhY2hfYWRhcHRlciA9IGFrNDUzNV9pMmNfYXR0YWNoLAorCS5kZXRhY2hfY2xpZW50ID0gIGFrNDUzNV9pMmNfZGV0YWNoLAorCS5jb21tYW5kID0gICAgICAgIE5VTEwsCit9OworCitzdGF0aWMgc3RydWN0IGkyY19jbGllbnQgY2xpZW50X3RlbXBsYXRlID0geworCS5uYW1lID0gICAiQUs0NTM1IiwKKwkuZHJpdmVyID0gJmFrNDUzNV9pMmNfZHJpdmVyLAorfTsKKyNlbmRpZgorCitzdGF0aWMgaW50IGFrNDUzNV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IGFrNDUzNV9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJc3RydWN0IGFrNDUzNV9wcml2ICphazQ1MzU7CisJaW50IHJldCA9IDA7CisKKwlwcmludGsoS0VSTl9JTkZPICJBSzQ1MzUgQXVkaW8gQ29kZWMgJXMiLCBBSzQ1MzVfVkVSU0lPTik7CisKKwlzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGNvZGVjID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJYWs0NTM1ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFrNDUzNV9wcml2KSwgR0ZQX0tFUk5FTCk7CisJaWYgKGFrNDUzNSA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJY29kZWMtPnByaXZhdGVfZGF0YSA9IGFrNDUzNTsKKwlzb2NkZXYtPmNvZGVjID0gY29kZWM7CisJbXV0ZXhfaW5pdCgmY29kZWMtPm11dGV4KTsKKwlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fd2lkZ2V0cyk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3BhdGhzKTsKKworCWFrNDUzNV9zb2NkZXYgPSBzb2NkZXY7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCWlmIChzZXR1cC0+aTJjX2FkZHJlc3MpIHsKKwkJbm9ybWFsX2kyY1swXSA9IHNldHVwLT5pMmNfYWRkcmVzczsKKwkJY29kZWMtPmh3X3dyaXRlID0gKGh3X3dyaXRlX3QpaTJjX21hc3Rlcl9zZW5kOworCQljb2RlYy0+aHdfcmVhZCA9IChod19yZWFkX3QpaTJjX21hc3Rlcl9yZWN2OworCQlyZXQgPSBpMmNfYWRkX2RyaXZlcigmYWs0NTM1X2kyY19kcml2ZXIpOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGsoS0VSTl9FUlIgImNhbid0IGFkZCBpMmMgZHJpdmVyIik7CisJfQorI2Vsc2UKKwkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgYWs0NTM1X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQorCQlhazQ1MzVfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpMmNfZGVsX2RyaXZlcigmYWs0NTM1X2kyY19kcml2ZXIpOworI2VuZGlmCisJa2ZyZWUoY29kZWMtPnByaXZhdGVfZGF0YSk7CisJa2ZyZWUoY29kZWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X2FrNDUzNSA9IHsKKwkucHJvYmUgPSAJYWs0NTM1X3Byb2JlLAorCS5yZW1vdmUgPSAJYWs0NTM1X3JlbW92ZSwKKwkuc3VzcGVuZCA9IAlhazQ1MzVfc3VzcGVuZCwKKwkucmVzdW1lID0JYWs0NTM1X3Jlc3VtZSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X2FrNDUzNSk7CisKK01PRFVMRV9ERVNDUklQVElPTigiU29jIEFLNDUzNSBkcml2ZXIiKTsKK01PRFVMRV9BVVRIT1IoIlJpY2hhcmQgUHVyZGllIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL2FrNDUzNS5oIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWZlMzBlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy9hazQ1MzUuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogYWs0NTM1LmggIC0tICBBSzQ1MzUgU29jIEF1ZGlvIGRyaXZlcgorICoKKyAqIENvcHlyaWdodCAyMDA1IE9wZW5lZGhhbmQgTHRkLgorICoKKyAqIEF1dGhvcjogUmljaGFyZCBQdXJkaWUgPHJpY2hhcmRAb3BlbmVkaGFuZC5jb20+CisgKgorICogQmFzZWQgb24gd204NzUzLmgKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX0FLNDUzNV9ICisjZGVmaW5lIF9BSzQ1MzVfSAorCisvKiBBSzQ1MzUgcmVnaXN0ZXIgc3BhY2UgKi8KKworI2RlZmluZSBBSzQ1MzVfUE0xCQkweDAKKyNkZWZpbmUgQUs0NTM1X1BNMgkJMHgxCisjZGVmaW5lIEFLNDUzNV9TSUcxCQkweDIKKyNkZWZpbmUgQUs0NTM1X1NJRzIJCTB4MworI2RlZmluZSBBSzQ1MzVfTU9ERTEJCTB4NAorI2RlZmluZSBBSzQ1MzVfTU9ERTIJCTB4NQorI2RlZmluZSBBSzQ1MzVfREFDCQkweDYKKyNkZWZpbmUgQUs0NTM1X01JQwkJMHg3CisjZGVmaW5lIEFLNDUzNV9USU1FUgkJMHg4CisjZGVmaW5lIEFLNDUzNV9BTEMxCQkweDkKKyNkZWZpbmUgQUs0NTM1X0FMQzIJCTB4YQorI2RlZmluZSBBSzQ1MzVfUEdBCQkweGIKKyNkZWZpbmUgQUs0NTM1X0xBVFQJCTB4YworI2RlZmluZSBBSzQ1MzVfUkFUVAkJMHhkCisjZGVmaW5lIEFLNDUzNV9WT0wJCTB4ZQorI2RlZmluZSBBSzQ1MzVfU1RBVFVTCQkweGYKKworI2RlZmluZSBBSzQ1MzVfQ0FDSEVSRUdOVU0gCTB4MTAKKworc3RydWN0IGFrNDUzNV9zZXR1cF9kYXRhIHsKKwl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKK307CisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgYWs0NTM1X2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl9hazQ1MzU7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9jczQyNzAuYyBiL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmMKaW5kZXggZTczZmNmZC4uOWRlYjhjNyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9jczQyNzAuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5jCkBAIC0yMDEsNyArMjAxLDcgQEAKICAqIGRyaXZlciB3aGF0IHRoZSBpbnB1dCBzZXR0aW5ncyBjYW4gYmUuICBUaGlzIHdvdWxkIG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQKICAqIGZvciBzdGFuZC1hbG9uZSBtb2RlIHRvIHdvcmsuCiAgKi8KLXN0YXRpYyBpbnQgY3M0MjcwX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBjczQyNzBfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCQkJIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0yNTEsNyArMjUxLDcgQEAKICAqIGRhdGEgZm9yIHBsYXliYWNrIG9ubHksIGJ1dCBBU29DIGN1cnJlbnRseSBkb2VzIG5vdCBzdXBwb3J0IGRpZmZlcmVudAogICogZm9ybWF0cyBmb3IgcGxheWJhY2sgdnMuIHJlY29yZC4KICAqLwotc3RhdGljIGludCBjczQyNzBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IGNzNDI3MF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJCSAgICAgIHVuc2lnbmVkIGludCBmb3JtYXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTQ3MSw3ICs0NzEsNyBAQAogICogYm9hcmQgZG9lcyBub3QgaGF2ZSB0aGUgTVVURUEgb3IgTVVURUIgcGlucyBjb25uZWN0ZWQgdG8gc3VjaCBjaXJjdWl0cnksCiAgKiB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkbyBub3RoaW5nLgogICovCi1zdGF0aWMgaW50IGNzNDI3MF9tdXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3N0YXRpYyBpbnQgY3M0MjcwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CiAJaW50IHJlZzY7CkBAIC02NjcsNyArNjY3LDcgQEAKIAogI2VuZGlmIC8qIFVTRV9JMkMqLwogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgY3M0MjcwX2RhaSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBjczQyNzBfZGFpID0gewogCS5uYW1lID0gIkNTNDI3MCIsCiAJLnBsYXliYWNrID0gewogCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy9jczQyNzAuaCBiL3NvdW5kL3NvYy9jb2RlY3MvY3M0MjcwLmgKaW5kZXggMGNlZDQ5Yi4uYWRjNmNkOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy9jczQyNzAuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL2NzNDI3MC5oCkBAIC0xNiw3ICsxNiw3IEBACiAgKiBUaGUgQVNvQyBjb2RlYyBEQUkgc3RydWN0dXJlIGZvciB0aGUgQ1M0MjcwLiAgQXNzaWduIHRoaXMgc3RydWN0dXJlIHRvCiAgKiB0aGUgLmNvZGVjX2RhaSBmaWVsZCBvZiB5b3VyIG1hY2hpbmUgZHJpdmVyJ3Mgc25kX3NvY19kYWlfbGluayBzdHJ1Y3R1cmUuCiAgKi8KLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgY3M0MjcwX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgY3M0MjcwX2RhaTsKIAogLyoKICAqIFRoZSBBU29DIGNvZGVjIGRldmljZSBzdHJ1Y3R1cmUgZm9yIHRoZSBDUzQyNzAuICBBc3NpZ24gdGhpcyBzdHJ1Y3R1cmUKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guYyBiL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guYwppbmRleCAwOWIxNjYxLi5iMWRjZTVmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmMKKysrIGIvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5jCkBAIC0yOSw3ICsyOSw3IEBACiAgKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgogICogIEhlbmNlIHRoZSBtYWNoaW5lIGxheWVyIHNob3VsZCBkaXNhYmxlIHVuc3VwcG9ydGVkIGlucHV0cy9vdXRwdXRzIGJ5Ci0gKiAgc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk9fTE9VVCIsIDApLCBldGMuCisgKiAgc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTU9OT19MT1VUIiksIGV0Yy4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC00OSw3ICs0OSw3IEBACiAjaW5jbHVkZSAidGx2MzIwYWljM3guaCIKIAogI2RlZmluZSBBVURJT19OQU1FICJhaWMzeCIKLSNkZWZpbmUgQUlDM1hfVkVSU0lPTiAiMC4xIgorI2RlZmluZSBBSUMzWF9WRVJTSU9OICIwLjIiCiAKIC8qIGNvZGVjIHByaXZhdGUgZGF0YSAqLwogc3RydWN0IGFpYzN4X3ByaXYgewpAQCAtMTM4LDYgKzEzOCwyMCBAQAogCQlyZXR1cm4gLUVJTzsKIH0KIAorLyoKKyAqIHJlYWQgZnJvbSB0aGUgYWljM3ggcmVnaXN0ZXIgc3BhY2UKKyAqLworc3RhdGljIGludCBhaWMzeF9yZWFkKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgdW5zaWduZWQgaW50IHJlZywKKwkJICAgICAgdTggKnZhbHVlKQoreworCSp2YWx1ZSA9IHJlZyAmIDB4ZmY7CisJaWYgKGNvZGVjLT5od19yZWFkKGNvZGVjLT5jb250cm9sX2RhdGEsIHZhbHVlLCAxKSAhPSAxKQorCQlyZXR1cm4gLUVJTzsKKworCWFpYzN4X3dyaXRlX3JlZ19jYWNoZShjb2RlYywgcmVnLCAqdmFsdWUpOworCXJldHVybiAwOworfQorCiAjZGVmaW5lIFNPQ19EQVBNX1NJTkdMRV9BSUMzWCh4bmFtZSwgcmVnLCBzaGlmdCwgbWFzaywgaW52ZXJ0KSBcCiB7CS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLCAubmFtZSA9IHhuYW1lLCBcCiAJLmluZm8gPSBzbmRfc29jX2luZm9fdm9sc3csIFwKQEAgLTE5Miw3ICsyMDYsNyBAQAogCQl9CiAKIAkJaWYgKGZvdW5kKQotCQkJc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKHdpZGdldC0+Y29kZWMpOworCQkJc25kX3NvY19kYXBtX3N5bmMod2lkZ2V0LT5jb2RlYyk7CiAJfQogCiAJcmV0ID0gc25kX3NvY191cGRhdGVfYml0cyh3aWRnZXQtPmNvZGVjLCByZWcsIHZhbF9tYXNrLCB2YWwpOwpAQCAtMjA5LDYgKzIyMyw4IEBACiAgICAgeyAiZGlmZmVyZW50aWFsIG9mIEhQUk9VVCIsICJjb25zdGFudCBWQ00iLCAic2luZ2xlLWVuZGVkIiwKICAgICAgICJkaWZmZXJlbnRpYWwgb2YgSFBMQ09NIiwgImV4dGVybmFsIGZlZWRiYWNrIiB9Owogc3RhdGljIGNvbnN0IGNoYXIgKmFpYzN4X2xpbmVpbl9tb2RlX211eFtdID0geyAic2luZ2xlLWVuZGVkIiwgImRpZmZlcmVudGlhbCIgfTsKK3N0YXRpYyBjb25zdCBjaGFyICphaWMzeF9hZGNfaHBmW10gPQorICAgIHsgIkRpc2FibGVkIiwgIjAuMDA0NXhGcyIsICIwLjAxMjV4RnMiLCAiMC4wMjV4RnMiIH07CiAKICNkZWZpbmUgTERBQ19FTlVNCTAKICNkZWZpbmUgUkRBQ19FTlVNCTEKQEAgLTIxOCw2ICsyMzQsNyBAQAogI2RlZmluZSBMSU5FMVJfRU5VTQk1CiAjZGVmaW5lIExJTkUyTF9FTlVNCTYKICNkZWZpbmUgTElORTJSX0VOVU0JNworI2RlZmluZSBBRENfSFBGX0VOVU0JOAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIGFpYzN4X2VudW1bXSA9IHsKIAlTT0NfRU5VTV9TSU5HTEUoREFDX0xJTkVfTVVYLCA2LCAzLCBhaWMzeF9sZWZ0X2RhY19tdXgpLApAQCAtMjI4LDYgKzI0NSw3IEBACiAJU09DX0VOVU1fU0lOR0xFKExJTkUxUl8yX1JBRENfQ1RSTCwgNywgMiwgYWljM3hfbGluZWluX21vZGVfbXV4KSwKIAlTT0NfRU5VTV9TSU5HTEUoTElORTJMXzJfTEFEQ19DVFJMLCA3LCAyLCBhaWMzeF9saW5laW5fbW9kZV9tdXgpLAogCVNPQ19FTlVNX1NJTkdMRShMSU5FMlJfMl9SQURDX0NUUkwsIDcsIDIsIGFpYzN4X2xpbmVpbl9tb2RlX211eCksCisJU09DX0VOVU1fRE9VQkxFKEFJQzNYX0NPREVDX0RGSUxUX0NUUkwsIDYsIDQsIDQsIGFpYzN4X2FkY19ocGYpLAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IGFpYzN4X3NuZF9jb250cm9sc1tdID0gewpAQCAtMjc4LDYgKzI5Niw4IEBACiAJLyogSW5wdXQgKi8KIAlTT0NfRE9VQkxFX1IoIlBHQSBDYXB0dXJlIFZvbHVtZSIsIExBRENfVk9MLCBSQURDX1ZPTCwgMCwgMHg3ZiwgMCksCiAJU09DX0RPVUJMRV9SKCJQR0EgQ2FwdHVyZSBTd2l0Y2giLCBMQURDX1ZPTCwgUkFEQ19WT0wsIDcsIDB4MDEsIDEpLAorCisJU09DX0VOVU0oIkFEQyBIUEYgQ3V0LW9mZiIsIGFpYzN4X2VudW1bQURDX0hQRl9FTlVNXSksCiB9OwogCiAvKiBhZGQgbm9uIGRhcG0gY29udHJvbHMgKi8KQEAgLTQ0MSwxMSArNDYxLDM0IEBACiAJU05EX1NPQ19EQVBNX01VWCgiUmlnaHQgTGluZTJSIE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKIAkJCSAmYWljM3hfcmlnaHRfbGluZTJfbXV4X2NvbnRyb2xzKSwKIAorCS8qCisJICogTm90IGEgcmVhbCBtaWMgYmlhcyB3aWRnZXQgYnV0IHNpbWlsYXIgZnVuY3Rpb24uIFRoaXMgaXMgZm9yIGR5bmFtaWMKKwkgKiBjb250cm9sIG9mIEdQSU8xIGRpZ2l0YWwgbWljIG1vZHVsYXRvciBjbG9jayBvdXRwdXQgZnVuY3Rpb24gd2hlbgorCSAqIHVzaW5nIGRpZ2l0YWwgbWljLgorCSAqLworCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJHUElPMSBkbWljIG1vZGNsayIsCisJCQkgQUlDM1hfR1BJTzFfUkVHLCA0LCAweGYsCisJCQkgQUlDM1hfR1BJTzFfRlVOQ19ESUdJVEFMX01JQ19NT0RDTEssCisJCQkgQUlDM1hfR1BJTzFfRlVOQ19ESVNBQkxFRCksCisKKwkvKgorCSAqIEFsc28gc2ltaWxhciBmdW5jdGlvbiBsaWtlIG1pYyBiaWFzLiBTZWxlY3RzIGRpZ2l0YWwgbWljIHdpdGgKKwkgKiBjb25maWd1cmFibGUgb3ZlcnNhbXBsaW5nIHJhdGUgaW5zdGVhZCBvZiBBREMgY29udmVydGVyLgorCSAqLworCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJETWljIFJhdGUgMTI4IiwKKwkJCSBBSUMzWF9BU0RfSU5URl9DVFJMQSwgMCwgMywgMSwgMCksCisJU05EX1NPQ19EQVBNX1JFRyhzbmRfc29jX2RhcG1fbWljYmlhcywgIkRNaWMgUmF0ZSA2NCIsCisJCQkgQUlDM1hfQVNEX0lOVEZfQ1RSTEEsIDAsIDMsIDIsIDApLAorCVNORF9TT0NfREFQTV9SRUcoc25kX3NvY19kYXBtX21pY2JpYXMsICJETWljIFJhdGUgMzIiLAorCQkJIEFJQzNYX0FTRF9JTlRGX0NUUkxBLCAwLCAzLCAzLCAwKSwKKwogCS8qIE1pYyBCaWFzICovCi0JU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBCaWFzIDJWIiwgTUlDQklBU19DVFJMLCA2LCAwKSwKLQlTTkRfU09DX0RBUE1fTUlDQklBUygiTWljIEJpYXMgMi41ViIsIE1JQ0JJQVNfQ1RSTCwgNywgMCksCi0JU05EX1NPQ19EQVBNX01JQ0JJQVMoIk1pYyBCaWFzIEFWREQiLCBNSUNCSUFTX0NUUkwsIDYsIDApLAotCVNORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyBBVkREIiwgTUlDQklBU19DVFJMLCA3LCAwKSwKKwlTTkRfU09DX0RBUE1fUkVHKHNuZF9zb2NfZGFwbV9taWNiaWFzLCAiTWljIEJpYXMgMlYiLAorCQkJIE1JQ0JJQVNfQ1RSTCwgNiwgMywgMSwgMCksCisJU05EX1NPQ19EQVBNX1JFRyhzbmRfc29jX2RhcG1fbWljYmlhcywgIk1pYyBCaWFzIDIuNVYiLAorCQkJIE1JQ0JJQVNfQ1RSTCwgNiwgMywgMiwgMCksCisJU05EX1NPQ19EQVBNX1JFRyhzbmRfc29jX2RhcG1fbWljYmlhcywgIk1pYyBCaWFzIEFWREQiLAorCQkJIE1JQ0JJQVNfQ1RSTCwgNiwgMywgMywgMCksCiAKIAkvKiBMZWZ0IFBHQSB0byBMZWZ0IE91dHB1dCBieXBhc3MgKi8KIAlTTkRfU09DX0RBUE1fTUlYRVIoIkxlZnQgUEdBIEJ5cGFzcyBNaXhlciIsIFNORF9TT0NfTk9QTSwgMCwgMCwKQEAgLTQ4Myw3ICs1MjYsNyBAQAogCVNORF9TT0NfREFQTV9JTlBVVCgiTElORTJSIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqaW50ZXJjb25bXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGludGVyY29uW10gPSB7CiAJLyogTGVmdCBPdXRwdXQgKi8KIAl7IkxlZnQgREFDIE11eCIsICJEQUNfTDEiLCAiTGVmdCBEQUMifSwKIAl7IkxlZnQgREFDIE11eCIsICJEQUNfTDIiLCAiTGVmdCBEQUMifSwKQEAgLTU1NCw2ICs1OTcsNyBAQAogCXsiTGVmdCBQR0EgTWl4ZXIiLCAiTWljM0wgU3dpdGNoIiwgIk1JQzNMIn0sCiAKIAl7IkxlZnQgQURDIiwgTlVMTCwgIkxlZnQgUEdBIE1peGVyIn0sCisJeyJMZWZ0IEFEQyIsIE5VTEwsICJHUElPMSBkbWljIG1vZGNsayJ9LAogCiAJLyogUmlnaHQgSW5wdXQgKi8KIAl7IlJpZ2h0IExpbmUxUiBNdXgiLCAic2luZ2xlLWVuZGVkIiwgIkxJTkUxUiJ9LApAQCAtNTY3LDYgKzYxMSw3IEBACiAJeyJSaWdodCBQR0EgTWl4ZXIiLCAiTWljM1IgU3dpdGNoIiwgIk1JQzNSIn0sCiAKIAl7IlJpZ2h0IEFEQyIsIE5VTEwsICJSaWdodCBQR0EgTWl4ZXIifSwKKwl7IlJpZ2h0IEFEQyIsIE5VTEwsICJHUElPMSBkbWljIG1vZGNsayJ9LAogCiAJLyogTGVmdCBQR0EgQnlwYXNzICovCiAJeyJMZWZ0IFBHQSBCeXBhc3MgTWl4ZXIiLCAiTGluZSBTd2l0Y2giLCAiTGVmdCBQR0EgTWl4ZXIifSwKQEAgLTYyOCwxMDEgKzY3MywyNyBAQAogCXsiTW9ubyBPdXQiLCBOVUxMLCAiUmlnaHQgTGluZTIgQnlwYXNzIE1peGVyIn0sCiAJeyJSaWdodCBIUCBPdXQiLCBOVUxMLCAiUmlnaHQgTGluZTIgQnlwYXNzIE1peGVyIn0sCiAKLQkvKiB0ZXJtaW5hdG9yICovCi0Je05VTEwsIE5VTEwsIE5VTEx9LAorCS8qCisJICogTG9naWNhbCBwYXRoIGJldHdlZW4gZGlnaXRhbCBtaWMgZW5hYmxlIGFuZCBHUElPMSBtb2R1bGF0b3IgY2xvY2sKKwkgKiBvdXRwdXQgZnVuY3Rpb24KKwkgKi8KKwl7IkdQSU8xIGRtaWMgbW9kY2xrIiwgTlVMTCwgIkRNaWMgUmF0ZSAxMjgifSwKKwl7IkdQSU8xIGRtaWMgbW9kY2xrIiwgTlVMTCwgIkRNaWMgUmF0ZSA2NCJ9LAorCXsiR1BJTzEgZG1pYyBtb2RjbGsiLCBOVUxMLCAiRE1pYyBSYXRlIDMyIn0sCiB9OwogCiBzdGF0aWMgaW50IGFpYzN4X2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmYWljM3hfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhaWMzeF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGFpYzN4X2RhcG1fd2lkZ2V0cykpOwogCiAJLyogc2V0IHVwIGF1ZGlvIHBhdGggaW50ZXJjb25uZWN0cyAqLwotCWZvciAoaSA9IDA7IGludGVyY29uW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGludGVyY29uW2ldWzBdLAotCQkJCQkgICBpbnRlcmNvbltpXVsxXSwgaW50ZXJjb25baV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBpbnRlcmNvbiwgQVJSQVlfU0laRShpbnRlcmNvbikpOwogCiAJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIAotc3RydWN0IGFpYzN4X3JhdGVfZGl2cyB7Ci0JdTMyIG1jbGs7Ci0JdTMyIHJhdGU7Ci0JdTMyIGZzcmVmX3JlZzsKLQl1OCBzcl9yZWc6NDsKLQl1OCBwbGxqX3JlZzsKLQl1MTYgcGxsZF9yZWc7Ci19OwotCi0vKiBBSUMzWCBjb2RlYyBtY2xrIGNsb2NrIGRpdmlkZXIgY29lZmZpY2llbnRzICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IGFpYzN4X3JhdGVfZGl2cyBhaWMzeF9kaXZzW10gPSB7Ci0JLyogOGsgKi8KLQl7MTIwMDAwMDAsIDgwMDAsIDQ4MDAwLCAweGEsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDgwMDAsIDQ4MDAwLCAweGEsIDEwLCAyNDAwfSwKLQl7MjI1NzkyMDAsIDgwMDAsIDQ4MDAwLCAweGEsIDgsIDcwNzV9LAotCXszMzg2ODgwMCwgODAwMCwgNDgwMDAsIDB4YSwgNSwgODA0OX0sCi0JLyogMTEuMDI1ayAqLwotCXsxMjAwMDAwMCwgMTEwMjUsIDQ0MTAwLCAweDYsIDE1LCA1Mjh9LAotCXsxOTIwMDAwMCwgMTEwMjUsIDQ0MTAwLCAweDYsIDksIDQwODB9LAotCXsyMjU3OTIwMCwgMTEwMjUsIDQ0MTAwLCAweDYsIDgsIDB9LAotCXszMzg2ODgwMCwgMTEwMjUsIDQ0MTAwLCAweDYsIDUsIDMzMzN9LAotCS8qIDE2ayAqLwotCXsxMjAwMDAwMCwgMTYwMDAsIDQ4MDAwLCAweDQsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDE2MDAwLCA0ODAwMCwgMHg0LCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCAxNjAwMCwgNDgwMDAsIDB4NCwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCAxNjAwMCwgNDgwMDAsIDB4NCwgNSwgODA0OX0sCi0JLyogMjIuMDVrICovCi0JezEyMDAwMDAwLCAyMjA1MCwgNDQxMDAsIDB4MiwgMTUsIDUyOH0sCi0JezE5MjAwMDAwLCAyMjA1MCwgNDQxMDAsIDB4MiwgOSwgNDA4MH0sCi0JezIyNTc5MjAwLCAyMjA1MCwgNDQxMDAsIDB4MiwgOCwgMH0sCi0JezMzODY4ODAwLCAyMjA1MCwgNDQxMDAsIDB4MiwgNSwgMzMzM30sCi0JLyogMzJrICovCi0JezEyMDAwMDAwLCAzMjAwMCwgNDgwMDAsIDB4MSwgMTYsIDM4NDB9LAotCXsxOTIwMDAwMCwgMzIwMDAsIDQ4MDAwLCAweDEsIDEwLCAyNDAwfSwKLQl7MjI1NzkyMDAsIDMyMDAwLCA0ODAwMCwgMHgxLCA4LCA3MDc1fSwKLQl7MzM4Njg4MDAsIDMyMDAwLCA0ODAwMCwgMHgxLCA1LCA4MDQ5fSwKLQkvKiA0NC4xayAqLwotCXsxMjAwMDAwMCwgNDQxMDAsIDQ0MTAwLCAweDAsIDE1LCA1Mjh9LAotCXsxOTIwMDAwMCwgNDQxMDAsIDQ0MTAwLCAweDAsIDksIDQwODB9LAotCXsyMjU3OTIwMCwgNDQxMDAsIDQ0MTAwLCAweDAsIDgsIDB9LAotCXszMzg2ODgwMCwgNDQxMDAsIDQ0MTAwLCAweDAsIDUsIDMzMzN9LAotCS8qIDQ4ayAqLwotCXsxMjAwMDAwMCwgNDgwMDAsIDQ4MDAwLCAweDAsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDQ4MDAwLCA0ODAwMCwgMHgwLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA0ODAwMCwgNDgwMDAsIDB4MCwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCA0ODAwMCwgNDgwMDAsIDB4MCwgNSwgODA0OX0sCi0JLyogNjRrICovCi0JezEyMDAwMDAwLCA2NDAwMCwgOTYwMDAsIDB4MSwgMTYsIDM4NDB9LAotCXsxOTIwMDAwMCwgNjQwMDAsIDk2MDAwLCAweDEsIDEwLCAyNDAwfSwKLQl7MjI1NzkyMDAsIDY0MDAwLCA5NjAwMCwgMHgxLCA4LCA3MDc1fSwKLQl7MzM4Njg4MDAsIDY0MDAwLCA5NjAwMCwgMHgxLCA1LCA4MDQ5fSwKLQkvKiA4OC4yayAqLwotCXsxMjAwMDAwMCwgODgyMDAsIDg4MjAwLCAweDAsIDE1LCA1Mjh9LAotCXsxOTIwMDAwMCwgODgyMDAsIDg4MjAwLCAweDAsIDksIDQwODB9LAotCXsyMjU3OTIwMCwgODgyMDAsIDg4MjAwLCAweDAsIDgsIDB9LAotCXszMzg2ODgwMCwgODgyMDAsIDg4MjAwLCAweDAsIDUsIDMzMzN9LAotCS8qIDk2ayAqLwotCXsxMjAwMDAwMCwgOTYwMDAsIDk2MDAwLCAweDAsIDE2LCAzODQwfSwKLQl7MTkyMDAwMDAsIDk2MDAwLCA5NjAwMCwgMHgwLCAxMCwgMjQwMH0sCi0JezIyNTc5MjAwLCA5NjAwMCwgOTYwMDAsIDB4MCwgOCwgNzA3NX0sCi0JezMzODY4ODAwLCA5NjAwMCwgOTYwMDAsIDB4MCwgNSwgODA0OX0sCi19OwotCi1zdGF0aWMgaW5saW5lIGludCBhaWMzeF9nZXRfZGl2cyhpbnQgbWNsaywgaW50IHJhdGUpCi17Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhaWMzeF9kaXZzKTsgaSsrKSB7Ci0JCWlmIChhaWMzeF9kaXZzW2ldLnJhdGUgPT0gcmF0ZSAmJiBhaWMzeF9kaXZzW2ldLm1jbGsgPT0gbWNsaykKLQkJCXJldHVybiBpOwotCX0KLQotCXJldHVybiAwOwotfQotCiBzdGF0aWMgaW50IGFpYzN4X2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKIAkJCSAgIHN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewpAQCAtNzMwLDU3ICs3MDEsOSBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAlzdHJ1Y3QgYWljM3hfcHJpdiAqYWljM3ggPSBjb2RlYy0+cHJpdmF0ZV9kYXRhOwotCWludCBpOwotCXU4IGRhdGEsIHBsbF9wLCBwbGxfciwgcGxsX2o7Ci0JdTE2IHBsbF9kOwotCi0JaSA9IGFpYzN4X2dldF9kaXZzKGFpYzN4LT5zeXNjbGssIHBhcmFtc19yYXRlKHBhcmFtcykpOwotCi0JLyogUm91dGUgTGVmdCBEQUMgdG8gbGVmdCBjaGFubmVsIGlucHV0IGFuZAotCSAqIHJpZ2h0IERBQyB0byByaWdodCBjaGFubmVsIGlucHV0ICovCi0JZGF0YSA9IChMREFDMkxDSCB8IFJEQUMyUkNIKTsKLQlzd2l0Y2ggKGFpYzN4X2RpdnNbaV0uZnNyZWZfcmVnKSB7Ci0JY2FzZSA0NDEwMDoKLQkJZGF0YSB8PSBGU1JFRl80NDEwMDsKLQkJYnJlYWs7Ci0JY2FzZSA0ODAwMDoKLQkJZGF0YSB8PSBGU1JFRl80ODAwMDsKLQkJYnJlYWs7Ci0JY2FzZSA4ODIwMDoKLQkJZGF0YSB8PSBGU1JFRl80NDEwMCB8IERVQUxfUkFURV9NT0RFOwotCQlicmVhazsKLQljYXNlIDk2MDAwOgotCQlkYXRhIHw9IEZTUkVGXzQ4MDAwIHwgRFVBTF9SQVRFX01PREU7Ci0JCWJyZWFrOwotCX0KLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfQ09ERUNfREFUQVBBVEhfUkVHLCBkYXRhKTsKLQotCS8qIGNvZGVjIHNhbXBsZSByYXRlIHNlbGVjdCAqLwotCWRhdGEgPSBhaWMzeF9kaXZzW2ldLnNyX3JlZzsKLQlkYXRhIHw9IChkYXRhIDw8IDQpOwotCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9TQU1QTEVfUkFURV9TRUxfUkVHLCBkYXRhKTsKLQotCS8qIFVzZSBQTEwgZm9yIGdlbmVyYXRpb24gRnNyZWYgYnkgZXF1YXRpb246Ci0JICogRnNyZWYgPSAoTUNMSyAqIEsgKiBSKS8oMjA0OCAqIFApOwotCSAqIEZpeCBQID0gMiBhbmQgUiA9IDEgYW5kIGNhbGN1bGF0ZSBLLCBpZgotCSAqIEsgPSBKLkQsIGkuZS4gSiAtIGFuIGludGVyZ2VyIHBvcnRpb24gb2YgSyBhbmQgRCBpcyB0aGUgZnJhY3Rpb25hbAotCSAqIG9uZSB3aXRoIDQgZGlnaXRzIG9mIHByZWNpc2lvbjsKLQkgKiBFeGFtcGxlOgotCSAqIEZvciBNQ0xLID0gMjIuNTc5MiBNSHogYW5kIEZzcmVmID0gNDhrSHo6Ci0JICogU2VsZWN0IFAgPSAyLCBSPSAxLCBLID0gOC43MDc0LCB3aGljaCByZXN1bHRzIGluIEogPSA4LCBEID0gNzA3NAotCSAqLwotCXBsbF9wID0gMjsKLQlwbGxfciA9IDE7Ci0JcGxsX2ogPSBhaWMzeF9kaXZzW2ldLnBsbGpfcmVnOwotCXBsbF9kID0gYWljM3hfZGl2c1tpXS5wbGxkX3JlZzsKLQotCWRhdGEgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRyk7Ci0JYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQV9SRUcsIGRhdGEgfCAocGxsX3AgPDwgUExMUF9TSElGVCkpOwotCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9PVlJGX1NUQVRVU19BTkRfUExMUl9SRUcsIHBsbF9yIDw8IFBMTFJfU0hJRlQpOwotCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0JfUkVHLCBwbGxfaiA8PCBQTExKX1NISUZUKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dDX1JFRywgKHBsbF9kID4+IDYpIDw8IFBMTERfTVNCX1NISUZUKTsKLQlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dEX1JFRywKLQkJICAgIChwbGxfZCAmIDB4M0YpIDw8IFBMTERfTFNCX1NISUZUKTsKKwlpbnQgY29kZWNfY2xrID0gMCwgYnlwYXNzX3BsbCA9IDAsIGZzcmVmLCBsYXN0X2NsayA9IDA7CisJdTggZGF0YSwgciwgcCwgcGxsX3EsIHBsbF9wID0gMSwgcGxsX3IgPSAxLCBwbGxfaiA9IDE7CisJdTE2IHBsbF9kID0gMTsKIAogCS8qIHNlbGVjdCBkYXRhIHdvcmQgbGVuZ3RoICovCiAJZGF0YSA9CkBAIC04MDAsMTAgKzcyMyw5OCBAQAogCX0KIAlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfQVNEX0lOVEZfQ1RSTEIsIGRhdGEpOwogCisJLyogRnNyZWYgY2FuIGJlIDQ0MTAwIG9yIDQ4MDAwICovCisJZnNyZWYgPSAocGFyYW1zX3JhdGUocGFyYW1zKSAlIDExMDI1ID09IDApID8gNDQxMDAgOiA0ODAwMDsKKworCS8qIFRyeSB0byBmaW5kIGEgdmFsdWUgZm9yIFEgd2hpY2ggYWxsb3dzIHVzIHRvIGJ5cGFzcyB0aGUgUExMIGFuZAorCSAqIGdlbmVyYXRlIENPREVDX0NMSyBkaXJlY3RseS4gKi8KKwlmb3IgKHBsbF9xID0gMjsgcGxsX3EgPCAxODsgcGxsX3ErKykKKwkJaWYgKGFpYzN4LT5zeXNjbGsgLyAoMTI4ICogcGxsX3EpID09IGZzcmVmKSB7CisJCQlieXBhc3NfcGxsID0gMTsKKwkJCWJyZWFrOworCQl9CisKKwlpZiAoYnlwYXNzX3BsbCkgeworCQlwbGxfcSAmPSAweGY7CisJCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0FfUkVHLCBwbGxfcSA8PCBQTExRX1NISUZUKTsKKwkJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0dQSU9CX1JFRywgQ09ERUNfQ0xLSU5fQ0xLRElWKTsKKwl9IGVsc2UKKwkJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0dQSU9CX1JFRywgQ09ERUNfQ0xLSU5fUExMRElWKTsKKworCS8qIFJvdXRlIExlZnQgREFDIHRvIGxlZnQgY2hhbm5lbCBpbnB1dCBhbmQKKwkgKiByaWdodCBEQUMgdG8gcmlnaHQgY2hhbm5lbCBpbnB1dCAqLworCWRhdGEgPSAoTERBQzJMQ0ggfCBSREFDMlJDSCk7CisJZGF0YSB8PSAoZnNyZWYgPT0gNDQxMDApID8gRlNSRUZfNDQxMDAgOiBGU1JFRl80ODAwMDsKKwlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSA+PSA2NDAwMCkKKwkJZGF0YSB8PSBEVUFMX1JBVEVfTU9ERTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfQ09ERUNfREFUQVBBVEhfUkVHLCBkYXRhKTsKKworCS8qIGNvZGVjIHNhbXBsZSByYXRlIHNlbGVjdCAqLworCWRhdGEgPSAoZnNyZWYgKiAyMCkgLyBwYXJhbXNfcmF0ZShwYXJhbXMpOworCWlmIChwYXJhbXNfcmF0ZShwYXJhbXMpIDwgNjQwMDApCisJCWRhdGEgLz0gMjsKKwlkYXRhIC89IDU7CisJZGF0YSAtPSAyOworCWRhdGEgfD0gKGRhdGEgPDwgNCk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1NBTVBMRV9SQVRFX1NFTF9SRUcsIGRhdGEpOworCisJaWYgKGJ5cGFzc19wbGwpCisJCXJldHVybiAwOworCisJLyogVXNlIFBMTAorCSAqIGZpbmQgYW4gYXByb3ByaWF0ZSBzZXR1cCBmb3IgaiwgZCwgciBhbmQgcCBieSBpdGVyYXRpbmcgb3ZlcgorCSAqIHAgYW5kIHIgLSBqIGFuZCBkIGFyZSBjYWxjdWxhdGVkIGZvciBlYWNoIGZyYWN0aW9uLgorCSAqIFVwIHRvIDEyOCB2YWx1ZXMgYXJlIHByb2JlZCwgdGhlIGNsb3Nlc3Qgb25lIHdpbnMgdGhlIGdhbWUuCisJICogVGhlIHN5c2NsayBpcyBkaXZpZGVkIGJ5IDEwMDAgdG8gcHJldmVudCBpbnRlZ2VyIG92ZXJmbG93cy4KKwkgKi8KKwljb2RlY19jbGsgPSAoMjA0OCAqIGZzcmVmKSAvIChhaWMzeC0+c3lzY2xrIC8gMTAwMCk7CisKKwlmb3IgKHIgPSAxOyByIDw9IDE2OyByKyspCisJCWZvciAocCA9IDE7IHAgPD0gODsgcCsrKSB7CisJCQlpbnQgY2xrLCB0bXAgPSAoY29kZWNfY2xrICogcGxsX3IgKiAxMCkgLyBwbGxfcDsKKwkJCXU4IGogPSB0bXAgLyAxMDAwMDsKKwkJCXUxNiBkID0gdG1wICUgMTAwMDA7CisKKwkJCWlmIChqID4gNjMpCisJCQkJY29udGludWU7CisKKwkJCWlmIChkICE9IDAgJiYgYWljM3gtPnN5c2NsayA8IDEwMDAwMDAwKQorCQkJCWNvbnRpbnVlOworCisJCQkvKiBUaGlzIGlzIGFjdHVhbGx5IDEwMDAgKiAoKGogKyAoZC8xMDAwMCkpICogcikgLyBwCisJCQkgKiBUaGUgdGVybSBoYWQgdG8gYmUgY29udmVydGVkIHRvIGdldCByaWQgb2YgdGhlCisJCQkgKiBkaXZpc2lvbiBieSAxMDAwMCAqLworCQkJY2xrID0gKCgxMDAwMCAqIGogKiByKSArIChkICogcikpIC8gKDEwICogcCk7CisKKwkJCS8qIGNoZWNrIHdoZXRoZXIgdGhpcyB2YWx1ZXMgZ2V0IGNsb3NlciB0aGFuIHRoZSBiZXN0CisJCQkgKiBvbmVzIHdlIGhhZCBiZWZvcmUgKi8KKwkJCWlmIChhYnMoY29kZWNfY2xrIC0gY2xrKSA8IGFicyhjb2RlY19jbGsgLSBsYXN0X2NsaykpIHsKKwkJCQlwbGxfaiA9IGo7IHBsbF9kID0gZDsgcGxsX3IgPSByOyBwbGxfcCA9IHA7CisJCQkJbGFzdF9jbGsgPSBjbGs7CisJCQl9CisKKwkJCS8qIEVhcmx5IGV4aXQgZm9yIGV4YWN0IG1hdGNoZXMgKi8KKwkJCWlmIChjbGsgPT0gY29kZWNfY2xrKQorCQkJCWJyZWFrOworCQl9CisKKwlpZiAobGFzdF9jbGsgPT0gMCkgeworCQlwcmludGsoS0VSTl9FUlIgIiVzKCk6IHVuYWJsZSB0byBzZXR1cCBQTExcbiIsIF9fZnVuY19fKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJZGF0YSA9IGFpYzN4X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0FfUkVHKTsKKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfUExMX1BST0dBX1JFRywgZGF0YSB8IChwbGxfcCA8PCBQTExQX1NISUZUKSk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX09WUkZfU1RBVFVTX0FORF9QTExSX1JFRywgcGxsX3IgPDwgUExMUl9TSElGVCk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX1BMTF9QUk9HQl9SRUcsIHBsbF9qIDw8IFBMTEpfU0hJRlQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0NfUkVHLCAocGxsX2QgPj4gNikgPDwgUExMRF9NU0JfU0hJRlQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCBBSUMzWF9QTExfUFJPR0RfUkVHLAorCQkgICAgKHBsbF9kICYgMHgzRikgPDwgUExMRF9MU0JfU0hJRlQpOworCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWljM3hfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IGFpYzN4X211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CiAJdTggbGRhY19yZWcgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgTERBQ19WT0wpICYgfk1VVEVfT047CkBAIC04MjAsMzEgKzgzMSwyNSBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGFpYzN4X3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCBhaWMzeF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwogCXN0cnVjdCBhaWMzeF9wcml2ICphaWMzeCA9IGNvZGVjLT5wcml2YXRlX2RhdGE7CiAKLQlzd2l0Y2ggKGZyZXEpIHsKLQljYXNlIDEyMDAwMDAwOgotCWNhc2UgMTkyMDAwMDA6Ci0JY2FzZSAyMjU3OTIwMDoKLQljYXNlIDMzODY4ODAwOgotCQlhaWMzeC0+c3lzY2xrID0gZnJlcTsKLQkJcmV0dXJuIDA7Ci0JfQotCi0JcmV0dXJuIC1FSU5WQUw7CisJYWljM3gtPnN5c2NsayA9IGZyZXE7CisJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYWljM3hfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IGFpYzN4X3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQkJICAgICB1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CiAJc3RydWN0IGFpYzN4X3ByaXYgKmFpYzN4ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKLQl1OCBpZmFjZV9hcmVnID0gMDsKLQl1OCBpZmFjZV9icmVnID0gMDsKKwl1OCBpZmFjZV9hcmVnLCBpZmFjZV9icmVnOworCisJaWZhY2VfYXJlZyA9IGFpYzN4X3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBBSUMzWF9BU0RfSU5URl9DVFJMQSkgJiAweDNmOworCWlmYWNlX2JyZWcgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgQUlDM1hfQVNEX0lOVEZfQ1RSTEIpICYgMHgzZjsKIAogCS8qIHNldCBtYXN0ZXIvc2xhdmUgYXVkaW8gaW50ZXJmYWNlICovCiAJc3dpdGNoIChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgewpAQCAtODgzLDEzICs4ODgsMTQgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBhaWMzeF9kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCBhaWMzeF9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJc3RydWN0IGFpYzN4X3ByaXYgKmFpYzN4ID0gY29kZWMtPnByaXZhdGVfZGF0YTsKIAl1OCByZWc7CiAKLQlzd2l0Y2ggKGV2ZW50KSB7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDA6CisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgogCQkvKiBhbGwgcG93ZXIgaXMgZHJpdmVuIGJ5IERBUE0gc3lzdGVtICovCiAJCWlmIChhaWMzeC0+bWFzdGVyKSB7CiAJCQkvKiBlbmFibGUgcGxsICovCkBAIC04OTgsMTAgKzkwNCw5IEBACiAJCQkJICAgIHJlZyB8IFBMTF9FTkFCTEUpOwogCQl9CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOgotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOgorCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OgorCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qCiAJCSAqIGFsbCBwb3dlciBpcyBkcml2ZW4gYnkgREFQTSBzeXN0ZW0sCiAJCSAqIHNvIG91dHB1dCBwb3dlciBpcyBzYWZlIGlmIGJ5cGFzcyB3YXMgc2V0CkBAIC05MTMsNyArOTE4LDcgQEAKIAkJCQkgICAgcmVnICYgflBMTF9FTkFCTEUpOwogCQl9CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDoKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CiAJCS8qIGZvcmNlIGFsbCBwb3dlciBvZmYgKi8KIAkJcmVnID0gYWljM3hfcmVhZF9yZWdfY2FjaGUoY29kZWMsIExJTkUxTF8yX0xBRENfQ1RSTCk7CiAJCWFpYzN4X3dyaXRlKGNvZGVjLCBMSU5FMUxfMl9MQURDX0NUUkwsIHJlZyAmIH5MQURDX1BXUl9PTik7CkBAIC05NDksMTYgKzk1NCw0MyBAQAogCQl9CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAKIAlyZXR1cm4gMDsKIH0KIAordm9pZCBhaWMzeF9zZXRfZ3BpbyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBncGlvLCBpbnQgc3RhdGUpCit7CisJdTggcmVnID0gZ3BpbyA/IEFJQzNYX0dQSU8yX1JFRyA6IEFJQzNYX0dQSU8xX1JFRzsKKwl1OCBiaXQgPSBncGlvID8gMzogMDsKKwl1OCB2YWwgPSBhaWMzeF9yZWFkX3JlZ19jYWNoZShjb2RlYywgcmVnKSAmIH4oMSA8PCBiaXQpOworCWFpYzN4X3dyaXRlKGNvZGVjLCByZWcsIHZhbCB8ICghIXN0YXRlIDw8IGJpdCkpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWljM3hfc2V0X2dwaW8pOworCitpbnQgYWljM3hfZ2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3BpbykKK3sKKwl1OCByZWcgPSBncGlvID8gQUlDM1hfR1BJTzJfUkVHIDogQUlDM1hfR1BJTzFfUkVHOworCXU4IHZhbCwgYml0ID0gZ3BpbyA/IDI6IDE7CisKKwlhaWMzeF9yZWFkKGNvZGVjLCByZWcsICZ2YWwpOworCXJldHVybiAodmFsID4+IGJpdCkgJiAxOworfQorRVhQT1JUX1NZTUJPTF9HUEwoYWljM3hfZ2V0X2dwaW8pOworCitpbnQgYWljM3hfaGVhZHNldF9kZXRlY3RlZChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJdTggdmFsOworCWFpYzN4X3JlYWQoY29kZWMsIEFJQzNYX1JUX0lSUV9GTEFHU19SRUcsICZ2YWwpOworCXJldHVybiAodmFsID4+IDIpICYgMTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGFpYzN4X2hlYWRzZXRfZGV0ZWN0ZWQpOworCiAjZGVmaW5lIEFJQzNYX1JBVEVTCVNORFJWX1BDTV9SQVRFXzgwMDBfOTYwMDAKICNkZWZpbmUgQUlDM1hfRk9STUFUUwkoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyMF8zTEUgfCBcCiAJCQkgU05EUlZfUENNX0ZNVEJJVF9TMjRfM0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMzJfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSBhaWMzeF9kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgYWljM3hfZGFpID0gewogCS5uYW1lID0gImFpYzN4IiwKIAkucGxheWJhY2sgPSB7CiAJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCkBAIC05ODgsNyArMTAyMCw3IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCi0JYWljM3hfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDA4LDcgKzEwNDAsNyBAQAogCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CiAJfQogCi0JYWljM3hfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSk7CisJYWljM3hfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMDIwLDE2ICsxMDUyLDE3IEBACiBzdGF0aWMgaW50IGFpYzN4X2luaXQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgYWljM3hfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CiAJaW50IHJlZywgcmV0ID0gMDsKIAogCWNvZGVjLT5uYW1lID0gImFpYzN4IjsKIAljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKIAljb2RlYy0+cmVhZCA9IGFpYzN4X3JlYWRfcmVnX2NhY2hlOwogCWNvZGVjLT53cml0ZSA9IGFpYzN4X3dyaXRlOwotCWNvZGVjLT5kYXBtX2V2ZW50ID0gYWljM3hfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSBhaWMzeF9zZXRfYmlhc19sZXZlbDsKIAljb2RlYy0+ZGFpID0gJmFpYzN4X2RhaTsKIAljb2RlYy0+bnVtX2RhaSA9IDE7Ci0JY29kZWMtPnJlZ19jYWNoZV9zaXplID0gc2l6ZW9mKGFpYzN4X3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRShhaWMzeF9yZWcpOwogCWNvZGVjLT5yZWdfY2FjaGUgPSBrbWVtZHVwKGFpYzN4X3JlZywgc2l6ZW9mKGFpYzN4X3JlZyksIEdGUF9LRVJORUwpOwogCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMTEwOCw3ICsxMTQxLDExIEBACiAJYWljM3hfd3JpdGUoY29kZWMsIExJTkUyUl8yX01PTk9MT1BNX1ZPTCwgREVGQVVMVF9WT0wpOwogCiAJLyogb2ZmLCB3aXRoIHBvd2VyIG9uICovCi0JYWljM3hfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwlhaWMzeF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCisJLyogc2V0dXAgR1BJTyBmdW5jdGlvbnMgKi8KKwlhaWMzeF93cml0ZShjb2RlYywgQUlDM1hfR1BJTzFfUkVHLCAoc2V0dXAtPmdwaW9fZnVuY1swXSAmIDB4ZikgPDwgNCk7CisJYWljM3hfd3JpdGUoY29kZWMsIEFJQzNYX0dQSU8yX1JFRywgKHNldHVwLT5ncGlvX2Z1bmNbMV0gJiAweGYpIDw8IDQpOwogCiAJYWljM3hfYWRkX2NvbnRyb2xzKGNvZGVjKTsKIAlhaWMzeF9hZGRfd2lkZ2V0cyhjb2RlYyk7CkBAIC0xMjE3LDYgKzEyNTQsMTIgQEAKIAkubmFtZSA9ICJBSUMzWCIsCiAJLmRyaXZlciA9ICZhaWMzeF9pMmNfZHJpdmVyLAogfTsKKworc3RhdGljIGludCBhaWMzeF9pMmNfcmVhZChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCB1OCAqdmFsdWUsIGludCBsZW4pCit7CisJdmFsdWVbMF0gPSBpMmNfc21idXNfcmVhZF9ieXRlX2RhdGEoY2xpZW50LCB2YWx1ZVswXSk7CisJcmV0dXJuIChsZW4gPT0gMSk7Cit9CiAjZW5kaWYKIAogc3RhdGljIGludCBhaWMzeF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQpAQCAtMTI1MSw2ICsxMjk0LDcgQEAKIAlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CiAJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CiAJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KSBpMmNfbWFzdGVyX3NlbmQ7CisJCWNvZGVjLT5od19yZWFkID0gKGh3X3JlYWRfdCkgYWljM3hfaTJjX3JlYWQ7CiAJCXJldCA9IGkyY19hZGRfZHJpdmVyKCZhaWMzeF9pMmNfZHJpdmVyKTsKIAkJaWYgKHJldCAhPSAwKQogCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOwpAQCAtMTI2OCw3ICsxMzEyLDcgQEAKIAogCS8qIHBvd2VyIGRvd24gY2hpcCAqLwogCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQotCQlhaWMzeF9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDMpOworCQlhaWMzeF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAKIAlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOwogCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmggYi9zb3VuZC9zb2MvY29kZWNzL3RsdjMyMGFpYzN4LmgKaW5kZXggZDBjZGVlYi4uZDc2YzA3OSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy90bHYzMjBhaWMzeC5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3MvdGx2MzIwYWljM3guaApAQCAtMzcsNiArMzcsOCBAQAogI2RlZmluZSBBSUMzWF9BU0RfSU5URl9DVFJMQgkJOQogLyogQXVkaW8gb3ZlcmZsb3cgc3RhdHVzIGFuZCBQTEwgUiB2YWx1ZSBwcm9ncmFtbWluZyByZWdpc3RlciAqLwogI2RlZmluZSBBSUMzWF9PVlJGX1NUQVRVU19BTkRfUExMUl9SRUcJMTEKKy8qIEF1ZGlvIGNvZGVjIGRpZ2l0YWwgZmlsdGVyIGNvbnRyb2wgcmVnaXN0ZXIgKi8KKyNkZWZpbmUgQUlDM1hfQ09ERUNfREZJTFRfQ1RSTAkJMTIKIAogLyogQURDIFBHQSBHYWluIGNvbnRyb2wgcmVnaXN0ZXJzICovCiAjZGVmaW5lIExBRENfVk9MCQkJMTUKQEAgLTEwOCw2ICsxMTAsMTMgQEAKICNkZWZpbmUgREFDUjFfMl9STE9QTV9WT0wJCTkyCiAjZGVmaW5lIExMT1BNX0NUUkwJCQk4NgogI2RlZmluZSBSTE9QTV9DVFJMCQkJOTMKKy8qIEdQSU8vSVJRIHJlZ2lzdGVycyAqLworI2RlZmluZSBBSUMzWF9TVElDS1lfSVJRX0ZMQUdTX1JFRwk5NgorI2RlZmluZSBBSUMzWF9SVF9JUlFfRkxBR1NfUkVHCQk5NworI2RlZmluZSBBSUMzWF9HUElPMV9SRUcJCQk5OAorI2RlZmluZSBBSUMzWF9HUElPMl9SRUcJCQk5OQorI2RlZmluZSBBSUMzWF9HUElPQV9SRUcJCQkxMDAKKyNkZWZpbmUgQUlDM1hfR1BJT0JfUkVHCQkJMTAxCiAvKiBDbG9jayBnZW5lcmF0aW9uIGNvbnRyb2wgcmVnaXN0ZXIgKi8KICNkZWZpbmUgQUlDM1hfQ0xLR0VOX0NUUkxfUkVHCQkxMDIKIApAQCAtMTI4LDEyICsxMzcsMTUgQEAKIAogLyogUExMIHJlZ2lzdGVycyBiaXRmaWVsZHMgKi8KICNkZWZpbmUgUExMUF9TSElGVAkJMAorI2RlZmluZSBQTExRX1NISUZUCQkzCiAjZGVmaW5lIFBMTFJfU0hJRlQJCTAKICNkZWZpbmUgUExMSl9TSElGVAkJMgogI2RlZmluZSBQTExEX01TQl9TSElGVAkJMAogI2RlZmluZSBQTExEX0xTQl9TSElGVAkJMgogCiAvKiBDbG9jayBnZW5lcmF0aW9uIHJlZ2lzdGVyIGJpdHMgKi8KKyNkZWZpbmUgQ09ERUNfQ0xLSU5fUExMRElWCTAKKyNkZWZpbmUgQ09ERUNfQ0xLSU5fQ0xLRElWCTEKICNkZWZpbmUgUExMX0NMS0lOX1NISUZUCQk0CiAjZGVmaW5lIE1DTEtfU09VUkNFCQkweDAKICNkZWZpbmUgUExMX0NMS0RJVl9TSElGVAkwCkBAIC0xNzEsMTEgKzE4Myw1MiBAQAogLyogRGVmYXVsdCBpbnB1dCB2b2x1bWUgKi8KICNkZWZpbmUgREVGQVVMVF9HQUlOICAgIDB4MjAKIAotc3RydWN0IGFpYzN4X3NldHVwX2RhdGEgewotCXVuc2lnbmVkIHNob3J0IGkyY19hZGRyZXNzOworLyogR1BJTyBBUEkgKi8KK2VudW0geworCUFJQzNYX0dQSU8xX0ZVTkNfRElTQUJMRUQJCT0gMCwKKwlBSUMzWF9HUElPMV9GVU5DX0FVRElPX1dPUkRDTEtfQURDCT0gMSwKKwlBSUMzWF9HUElPMV9GVU5DX0NMT0NLX01VWAkJPSAyLAorCUFJQzNYX0dQSU8xX0ZVTkNfQ0xPQ0tfTVVYX0RJVjIJCT0gMywKKwlBSUMzWF9HUElPMV9GVU5DX0NMT0NLX01VWF9ESVY0CQk9IDQsCisJQUlDM1hfR1BJTzFfRlVOQ19DTE9DS19NVVhfRElWOAkJPSA1LAorCUFJQzNYX0dQSU8xX0ZVTkNfU0hPUlRfQ0lSQ1VJVF9JUlEJPSA2LAorCUFJQzNYX0dQSU8xX0ZVTkNfQUdDX05PSVNFX0lSUQkJPSA3LAorCUFJQzNYX0dQSU8xX0ZVTkNfSU5QVVQJCQk9IDgsCisJQUlDM1hfR1BJTzFfRlVOQ19PVVRQVVQJCQk9IDksCisJQUlDM1hfR1BJTzFfRlVOQ19ESUdJVEFMX01JQ19NT0RDTEsJPSAxMCwKKwlBSUMzWF9HUElPMV9GVU5DX0FVRElPX1dPUkRDTEsJCT0gMTEsCisJQUlDM1hfR1BJTzFfRlVOQ19CVVRUT05fSVJRCQk9IDEyLAorCUFJQzNYX0dQSU8xX0ZVTkNfSEVBRFNFVF9ERVRFQ1RfSVJRCT0gMTMsCisJQUlDM1hfR1BJTzFfRlVOQ19IRUFEU0VUX0RFVEVDVF9PUl9CVVRUT05fSVJRCT0gMTQsCisJQUlDM1hfR1BJTzFfRlVOQ19BTExfSVJRCQk9IDE2CiB9OwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIGFpYzN4X2RhaTsKK2VudW0geworCUFJQzNYX0dQSU8yX0ZVTkNfRElTQUJMRUQJCT0gMCwKKwlBSUMzWF9HUElPMl9GVU5DX0hFQURTRVRfREVURUNUX0lSUQk9IDIsCisJQUlDM1hfR1BJTzJfRlVOQ19JTlBVVAkJCT0gMywKKwlBSUMzWF9HUElPMl9GVU5DX09VVFBVVAkJCT0gNCwKKwlBSUMzWF9HUElPMl9GVU5DX0RJR0lUQUxfTUlDX0lOUFVUCT0gNSwKKwlBSUMzWF9HUElPMl9GVU5DX0FVRElPX0JJVENMSwkJPSA4LAorCUFJQzNYX0dQSU8yX0ZVTkNfSEVBRFNFVF9ERVRFQ1RfT1JfQlVUVE9OX0lSUSA9IDksCisJQUlDM1hfR1BJTzJfRlVOQ19BTExfSVJRCQk9IDEwLAorCUFJQzNYX0dQSU8yX0ZVTkNfU0hPUlRfQ0lSQ1VJVF9PUl9BR0NfSVJRID0gMTEsCisJQUlDM1hfR1BJTzJfRlVOQ19IRUFEU0VUX09SX0JVVFRPTl9QUkVTU19PUl9TSE9SVF9DSVJDVUlUX0lSUSA9IDEyLAorCUFJQzNYX0dQSU8yX0ZVTkNfU0hPUlRfQ0lSQ1VJVF9JUlEJPSAxMywKKwlBSUMzWF9HUElPMl9GVU5DX0FHQ19OT0lTRV9JUlEJCT0gMTQsCisJQUlDM1hfR1BJTzJfRlVOQ19CVVRUT05fUFJFU1NfSVJRCT0gMTUKK307CisKK3ZvaWQgYWljM3hfc2V0X2dwaW8oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZ3BpbywgaW50IHN0YXRlKTsKK2ludCBhaWMzeF9nZXRfZ3BpbyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBncGlvKTsKK2ludCBhaWMzeF9oZWFkc2V0X2RldGVjdGVkKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyk7CisKK3N0cnVjdCBhaWMzeF9zZXR1cF9kYXRhIHsKKwl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKKwl1bnNpZ25lZCBpbnQgZ3Bpb19mdW5jWzJdOworfTsKKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBhaWMzeF9kYWk7CiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfYWljM3g7CiAKICNlbmRpZiAvKiBfQUlDM1hfSCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmMgYi9zb3VuZC9zb2MvY29kZWNzL3VkYTEzODAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNTJkNmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy91ZGExMzgwLmMKQEAgLTAsMCArMSw4NTIgQEAKKy8qCisgKiB1ZGExMzgwLmMgLSBQaGlsaXBzIFVEQTEzODAgQUxTQSBTb0MgYXVkaW8gZHJpdmVyCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgUGhpbGlwcCBaYWJlbCA8cGhpbGlwcC56YWJlbEBnbWFpbC5jb20+CisgKiBJbXByb3ZlZCBzdXBwb3J0IGZvciBEQVBNIGFuZCBhdWRpbyByb3V0aW5nL21peGluZyBjYXBhYmlsaXRpZXMsCisgKiBhZGRlZCBUTFYgc3VwcG9ydC4KKyAqCisgKiBNb2RpZmllZCBieSBSaWNoYXJkIFB1cmRpZSA8cmljaGFyZEBvcGVuZWRoYW5kLmNvbT4gdG8gZml0IGludG8gU29DCisgKiBjb2RlYyBtb2RlbC4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUgR2lvcmdpbyBQYWRyaW4gPGdpb3JnaW9AbWFuZGFyaW5sb2dpcS5vcmc+CisgKiBDb3B5cmlnaHQgMjAwNSBPcGVuZWRoYW5kIEx0ZC4KKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+CisjaW5jbHVkZSA8bGludXgvc2xhYi5oPgorI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CisjaW5jbHVkZSA8bGludXgvaW9jdGwuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb250cm9sLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL2luZm8uaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPgorCisjaW5jbHVkZSAidWRhMTM4MC5oIgorCisjZGVmaW5lIFVEQTEzODBfVkVSU0lPTiAiMC42IgorI2RlZmluZSBBVURJT19OQU1FICJ1ZGExMzgwIgorCisvKgorICogdWRhMTM4MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgY29uc3QgdTE2IHVkYTEzODBfcmVnW1VEQTEzODBfQ0FDSEVSRUdOVU1dID0geworCTB4MDUwMiwgMHgwMDAwLCAweDAwMDAsIDB4M2YzZiwKKwkweDAyMDIsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4ZmYwMCwgMHgwMDAwLCAweDQ4MDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDgwMDAsIDB4MDAwMiwgMHgwMDAwLAorfTsKKworLyoKKyAqIHJlYWQgdWRhMTM4MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPT0gVURBMTM4MF9SRVNFVCkKKwkJcmV0dXJuIDA7CisJaWYgKHJlZyA+PSBVREExMzgwX0NBQ0hFUkVHTlVNKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIGNhY2hlW3JlZ107Cit9CisKKy8qCisgKiB3cml0ZSB1ZGExMzgwIHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB1ZGExMzgwX3dyaXRlX3JlZ19jYWNoZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJdTE2IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKQoreworCXUxNiAqY2FjaGUgPSBjb2RlYy0+cmVnX2NhY2hlOworCWlmIChyZWcgPj0gVURBMTM4MF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuOworCWNhY2hlW3JlZ10gPSB2YWx1ZTsKK30KKworLyoKKyAqIHdyaXRlIHRvIHRoZSBVREExMzgwIHJlZ2lzdGVyIHNwYWNlCisgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF93cml0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCByZWcsCisJdW5zaWduZWQgaW50IHZhbHVlKQoreworCXU4IGRhdGFbM107CisKKwkvKiBkYXRhIGlzCisJICogICBkYXRhWzBdIGlzIHJlZ2lzdGVyIG9mZnNldAorCSAqICAgZGF0YVsxXSBpcyBNUyBieXRlCisJICogICBkYXRhWzJdIGlzIExTIGJ5dGUKKwkgKi8KKwlkYXRhWzBdID0gcmVnOworCWRhdGFbMV0gPSAodmFsdWUgJiAweGZmMDApID4+IDg7CisJZGF0YVsyXSA9IHZhbHVlICYgMHgwMGZmOworCisJdWRhMTM4MF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgdmFsdWUpOworCisJLyogdGhlIGludGVycG9sYXRvciAmIGRlY2ltYXRvciByZWdzIG11c3Qgb25seSBiZSB3cml0dGVuIHdoZW4gdGhlCisJICogY29kZWMgREFJIGlzIGFjdGl2ZS4KKwkgKi8KKwlpZiAoIWNvZGVjLT5hY3RpdmUgJiYgKHJlZyA+PSBVREExMzgwX01WT0wpKQorCQlyZXR1cm4gMDsKKwlwcl9kZWJ1ZygidWRhMTM4MDogaHcgd3JpdGUgJXggdmFsICV4XG4iLCByZWcsIHZhbHVlKTsKKwlpZiAoY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDMpID09IDMpIHsKKwkJdW5zaWduZWQgaW50IHZhbDsKKwkJaTJjX21hc3Rlcl9zZW5kKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDEpOworCQlpMmNfbWFzdGVyX3JlY3YoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CisJCXZhbCA9IChkYXRhWzBdPDw4KSB8IGRhdGFbMV07CisJCWlmICh2YWwgIT0gdmFsdWUpIHsKKwkJCXByX2RlYnVnKCJ1ZGExMzgwOiBSRUFEIEJBQ0sgVkFMICV4XG4iLAorCQkJCQkoZGF0YVswXTw8OCkgfCBkYXRhWzFdKTsKKwkJCXJldHVybiAtRUlPOworCQl9CisJCXJldHVybiAwOworCX0gZWxzZQorCQlyZXR1cm4gLUVJTzsKK30KKworI2RlZmluZSB1ZGExMzgwX3Jlc2V0KGMpCXVkYTEzODBfd3JpdGUoYywgVURBMTM4MF9SRVNFVCwgMCkKKworLyogZGVjbGFyYXRpb25zIG9mIEFMU0EgcmVnX2VsZW1fUkVBTCBjb250cm9scyAqLworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfZGVlbXBbXSA9IHsKKwkiTm9uZSIsCisJIjMya0h6IiwKKwkiNDQuMWtIeiIsCisJIjQ4a0h6IiwKKwkiOTZrSHoiLAorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX2lucHV0X3NlbFtdID0geworCSJMaW5lIiwKKwkiTWljICsgTGluZSBSIiwKKwkiTGluZSBMIiwKKwkiTWljIiwKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9vdXRwdXRfc2VsW10gPSB7CisJIkRBQyIsCisJIkFuYWxvZyBNaXhlciIsCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfc3BmX21vZGVbXSA9IHsKKwkiRmxhdCIsCisJIk1pbmltdW0xIiwKKwkiTWluaW11bTIiLAorCSJNYXhpbXVtIgorfTsKK3N0YXRpYyBjb25zdCBjaGFyICp1ZGExMzgwX2NhcHR1cmVfc2VsW10gPSB7CisJIkFEQyIsCisJIkRpZ2l0YWwgTWl4ZXIiCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfc2VsX25zW10gPSB7CisJIjNyZC1vcmRlciIsCisJIjV0aC1vcmRlciIKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9taXhfY29udHJvbFtdID0geworCSJvZmYiLAorCSJQQ00gb25seSIsCisJImJlZm9yZSBzb3VuZCBwcm9jZXNzaW5nIiwKKwkiYWZ0ZXIgc291bmQgcHJvY2Vzc2luZyIKK307CitzdGF0aWMgY29uc3QgY2hhciAqdWRhMTM4MF9zZGV0X3NldHRpbmdbXSA9IHsKKwkiMzIwMCIsCisJIjQ4MDAiLAorCSI5NjAwIiwKKwkiMTkyMDAiCit9Oworc3RhdGljIGNvbnN0IGNoYXIgKnVkYTEzODBfb3Nfc2V0dGluZ1tdID0geworCSJzaW5nbGUtc3BlZWQiLAorCSJkb3VibGUtc3BlZWQgKG5vIG1peGluZykiLAorCSJxdWFkLXNwZWVkIChubyBtaXhpbmcpIgorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX2RlZW1wX2VudW1bXSA9IHsKKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9ERUVNUCwgOCwgNSwgdWRhMTM4MF9kZWVtcCksCisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfREVFTVAsIDAsIDUsIHVkYTEzODBfZGVlbXApLAorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9pbnB1dF9zZWxfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfQURDLCAyLCA0LCB1ZGExMzgwX2lucHV0X3NlbCk7CQkvKiBTRUxfTUlDLCBTRUxfTE5BICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfb3V0cHV0X3NlbF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9QTSwgNywgMiwgdWRhMTM4MF9vdXRwdXRfc2VsKTsJCS8qIFIwMl9FTl9BVkMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9zcGZfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTU9ERSwgMTQsIDQsIHVkYTEzODBfc3BmX21vZGUpOwkJLyogTSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX2NhcHR1cmVfc2VsX2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX0lGQUNFLCA2LCAyLCB1ZGExMzgwX2NhcHR1cmVfc2VsKTsJLyogU0VMX1NPVVJDRSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX3NlbF9uc19lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9NSVhFUiwgMTQsIDIsIHVkYTEzODBfc2VsX25zKTsJCS8qIFNFTF9OUyAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB1ZGExMzgwX21peF9lbnVtID0KKwlTT0NfRU5VTV9TSU5HTEUoVURBMTM4MF9NSVhFUiwgMTIsIDQsIHVkYTEzODBfbWl4X2NvbnRyb2wpOwkvKiBNSVgsIE1JWF9QT1MgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gdWRhMTM4MF9zZGV0X2VudW0gPQorCVNPQ19FTlVNX1NJTkdMRShVREExMzgwX01JWEVSLCA0LCA0LCB1ZGExMzgwX3NkZXRfc2V0dGluZyk7CS8qIFNEX1ZBTFVFICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHVkYTEzODBfb3NfZW51bSA9CisJU09DX0VOVU1fU0lOR0xFKFVEQTEzODBfTUlYRVIsIDAsIDMsIHVkYTEzODBfb3Nfc2V0dGluZyk7CS8qIE9TICovCisKKy8qCisgKiBmcm9tIC00OCBkQiBpbiAxLjUgZEIgc3RlcHMgKG11dGUgaW5zdGVhZCBvZiAtNDkuNSBkQikKKyAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKGFtaXhfdGx2LCAtNDk1MCwgMTUwLCAxKTsKKworLyoKKyAqIGZyb20gLTc4IGRCIGluIDEgZEIgc3RlcHMgKDMgZEIgc3RlcHMsIHJlYWxseS4gTFNCIGFyZSBpZ25vcmVkKSwKKyAqIGZyb20gLTY2IGRCIGluIDAuNSBkQiBzdGVwcyAoMiBkQiBzdGVwcywgcmVhbGx5KSBhbmQKKyAqIGZyb20gLTUyIGRCIGluIDAuMjUgZEIgc3RlcHMKKyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBtdm9sX3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDMpLAorCTAsIDE1LCBUTFZfREJfU0NBTEVfSVRFTSgtODIwMCwgMTAwLCAxKSwKKwkxNiwgNDMsIFRMVl9EQl9TQ0FMRV9JVEVNKC02NjAwLCA1MCwgMCksCisJNDQsIDI1MiwgVExWX0RCX1NDQUxFX0lURU0oLTUyMDAsIDI1LCAwKSwKK307CisKKy8qCisgKiBmcm9tIC03MiBkQiBpbiAxLjUgZEIgc3RlcHMgKDYgZEIgc3RlcHMgcmVhbGx5KSwKKyAqIGZyb20gLTY2IGRCIGluIDAuNzUgZEIgc3RlcHMgKDMgZEIgc3RlcHMgcmVhbGx5KSwKKyAqIGZyb20gLTYwIGRCIGluIDAuNSBkQiBzdGVwcyAoMiBkQiBzdGVwcyByZWFsbHkpIGFuZAorICogZnJvbSAtNDYgZEIgaW4gMC4yNSBkQiBzdGVwcworICovCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IHZjX3RsdltdID0geworCVRMVl9EQl9SQU5HRV9IRUFEKDQpLAorCTAsIDcsIFRMVl9EQl9TQ0FMRV9JVEVNKC03ODAwLCAxNTAsIDEpLAorCTgsIDE1LCBUTFZfREJfU0NBTEVfSVRFTSgtNjYwMCwgNzUsIDApLAorCTE2LCA0MywgVExWX0RCX1NDQUxFX0lURU0oLTYwMDAsIDUwLCAwKSwKKwk0NCwgMjI4LCBUTFZfREJfU0NBTEVfSVRFTSgtNDYwMCwgMjUsIDApLAorfTsKKworLyogZnJvbSAwIHRvIDYgZEIgaW4gMiBkQiBzdGVwcyBpZiBTUEYgbW9kZSAhPSBmbGF0ICovCitzdGF0aWMgREVDTEFSRV9UTFZfREJfU0NBTEUodHJfdGx2LCAwLCAyMDAsIDApOworCisvKiBmcm9tIDAgdG8gMjQgZEIgaW4gMiBkQiBzdGVwcywgaWYgU1BGIG1vZGUgPT0gbWF4aW11bSwgb3RoZXJ3aXNlIGN1dHMKKyAqIG9mZiBhdCAxOCBkQiBtYXgpICovCitzdGF0aWMgREVDTEFSRV9UTFZfREJfU0NBTEUoYmJfdGx2LCAwLCAyMDAsIDApOworCisvKiBmcm9tIC02MyB0byAyNCBkQiBpbiAwLjUgZEIgc3RlcHMgKC0xMjguLi40OCkgKi8KK3N0YXRpYyBERUNMQVJFX1RMVl9EQl9TQ0FMRShkZWNfdGx2LCAtNjQwMCwgNTAsIDEpOworCisvKiBmcm9tIDAgdG8gMjQgZEIgaW4gMyBkQiBzdGVwcyAqLworc3RhdGljIERFQ0xBUkVfVExWX0RCX1NDQUxFKHBnYV90bHYsIDAsIDMwMCwgMCk7CisKKy8qIGZyb20gMCB0byAzMCBkQiBpbiAyIGRCIHN0ZXBzICovCitzdGF0aWMgREVDTEFSRV9UTFZfREJfU0NBTEUodmdhX3RsdiwgMCwgMjAwLCAwKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHVkYTEzODBfc25kX2NvbnRyb2xzW10gPSB7CisJU09DX0RPVUJMRV9UTFYoIkFuYWxvZyBNaXhlciBWb2x1bWUiLCBVREExMzgwX0FNSVgsIDAsIDgsIDQ0LCAxLCBhbWl4X3RsdiksCS8qIEFWQ1IsIEFWQ0wgKi8KKwlTT0NfRE9VQkxFX1RMVigiTWFzdGVyIFBsYXliYWNrIFZvbHVtZSIsIFVEQTEzODBfTVZPTCwgMCwgOCwgMjUyLCAxLCBtdm9sX3RsdiksCS8qIE1WQ0wsIE1WQ1IgKi8KKwlTT0NfU0lOR0xFX1RMVigiQURDIFBsYXliYWNrIFZvbHVtZSIsIFVEQTEzODBfTUlYVk9MLCA4LCAyMjgsIDEsIHZjX3RsdiksCS8qIFZDMiAqLworCVNPQ19TSU5HTEVfVExWKCJQQ00gUGxheWJhY2sgVm9sdW1lIiwgVURBMTM4MF9NSVhWT0wsIDAsIDIyOCwgMSwgdmNfdGx2KSwJLyogVkMxICovCisJU09DX0VOVU0oIlNvdW5kIFByb2Nlc3NpbmcgRmlsdGVyIiwgdWRhMTM4MF9zcGZfZW51bSksCQkJCS8qIE0gKi8KKwlTT0NfRE9VQkxFX1RMVigiVG9uZSBDb250cm9sIC0gVHJlYmxlIiwgVURBMTM4MF9NT0RFLCA0LCAxMiwgMywgMCwgdHJfdGx2KSwgCS8qIFRSTCwgVFJSICovCisJU09DX0RPVUJMRV9UTFYoIlRvbmUgQ29udHJvbCAtIEJhc3MiLCBVREExMzgwX01PREUsIDAsIDgsIDE1LCAwLCBiYl90bHYpLAkvKiBCQkwsIEJCUiAqLworLyoqLwlTT0NfU0lOR0xFKCJNYXN0ZXIgUGxheWJhY2sgU3dpdGNoIiwgVURBMTM4MF9ERUVNUCwgMTQsIDEsIDEpLAkJLyogTVRNICovCisJU09DX1NJTkdMRSgiQURDIFBsYXliYWNrIFN3aXRjaCIsIFVEQTEzODBfREVFTVAsIDExLCAxLCAxKSwJCS8qIE1UMiBmcm9tIGRlY2ltYXRpb24gZmlsdGVyICovCisJU09DX0VOVU0oIkFEQyBQbGF5YmFjayBEZS1lbXBoYXNpcyIsIHVkYTEzODBfZGVlbXBfZW51bVswXSksCQkvKiBERTIgKi8KKwlTT0NfU0lOR0xFKCJQQ00gUGxheWJhY2sgU3dpdGNoIiwgVURBMTM4MF9ERUVNUCwgMywgMSwgMSksCQkvKiBNVDEsIGZyb20gZGlnaXRhbCBkYXRhIGlucHV0ICovCisJU09DX0VOVU0oIlBDTSBQbGF5YmFjayBEZS1lbXBoYXNpcyIsIHVkYTEzODBfZGVlbXBfZW51bVsxXSksCQkvKiBERTEgKi8KKwlTT0NfU0lOR0xFKCJEQUMgUG9sYXJpdHkgaW52ZXJ0aW5nIFN3aXRjaCIsIFVEQTEzODBfTUlYRVIsIDE1LCAxLCAwKSwJLyogREFfUE9MX0lOViAqLworCVNPQ19FTlVNKCJOb2lzZSBTaGFwZXIiLCB1ZGExMzgwX3NlbF9uc19lbnVtKSwJCQkJLyogU0VMX05TICovCisJU09DX0VOVU0oIkRpZ2l0YWwgTWl4ZXIgU2lnbmFsIENvbnRyb2wiLCB1ZGExMzgwX21peF9lbnVtKSwJCS8qIE1JWF9QT1MsIE1JWCAqLworCVNPQ19TSU5HTEUoIlNpbGVuY2UgU3dpdGNoIiwgVURBMTM4MF9NSVhFUiwgNywgMSwgMCksCQkJLyogU0lMRU5DRSwgZm9yY2UgREFDIG91dHB1dCB0byBzaWxlbmNlICovCisJU09DX1NJTkdMRSgiU2lsZW5jZSBEZXRlY3RvciBTd2l0Y2giLCBVREExMzgwX01JWEVSLCA2LCAxLCAwKSwJCS8qIFNERVRfT04gKi8KKwlTT0NfRU5VTSgiU2lsZW5jZSBEZXRlY3RvciBTZXR0aW5nIiwgdWRhMTM4MF9zZGV0X2VudW0pLAkJLyogU0RfVkFMVUUgKi8KKwlTT0NfRU5VTSgiT3ZlcnNhbXBsaW5nIElucHV0IiwgdWRhMTM4MF9vc19lbnVtKSwJCQkvKiBPUyAqLworCVNPQ19ET1VCTEVfUzhfVExWKCJBREMgQ2FwdHVyZSBWb2x1bWUiLCBVREExMzgwX0RFQywgLTEyOCwgNDgsIGRlY190bHYpLAkvKiBNTF9ERUMsIE1SX0RFQyAqLworLyoqLwlTT0NfU0lOR0xFKCJBREMgQ2FwdHVyZSBTd2l0Y2giLCBVREExMzgwX1BHQSwgMTUsIDEsIDEpLAkJLyogTVRfQURDICovCisJU09DX0RPVUJMRV9UTFYoIkxpbmUgQ2FwdHVyZSBWb2x1bWUiLCBVREExMzgwX1BHQSwgMCwgOCwgOCwgMCwgcGdhX3RsdiksIC8qIFBHQV9HQUlOQ1RSTEwsIFBHQV9HQUlOQ1RSTFIgKi8KKwlTT0NfU0lOR0xFKCJBREMgUG9sYXJpdHkgaW52ZXJ0aW5nIFN3aXRjaCIsIFVEQTEzODBfQURDLCAxMiwgMSwgMCksCS8qIEFEQ1BPTF9JTlYgKi8KKwlTT0NfU0lOR0xFX1RMVigiTWljIENhcHR1cmUgVm9sdW1lIiwgVURBMTM4MF9BREMsIDgsIDE1LCAwLCB2Z2FfdGx2KSwJLyogVkdBX0NUUkwgKi8KKwlTT0NfU0lOR0xFKCJEQyBGaWx0ZXIgQnlwYXNzIFN3aXRjaCIsIFVEQTEzODBfQURDLCAxLCAxLCAwKSwJCS8qIFNLSVBfRENGSUwgKGJlZm9yZSBkZWNpbWF0b3IpICovCisJU09DX1NJTkdMRSgiREMgRmlsdGVyIEVuYWJsZSBTd2l0Y2giLCBVREExMzgwX0FEQywgMCwgMSwgMCksCQkvKiBFTl9EQ0ZJTCAoYXQgb3V0cHV0IG9mIGRlY2ltYXRvcikgKi8KKwlTT0NfU0lOR0xFKCJBR0MgVGltaW5nIiwgVURBMTM4MF9BR0MsIDgsIDcsIDApLAkJCS8qIFRPRE86IGVudW0sIHNlZSB0YWJsZSA2MiAqLworCVNPQ19TSU5HTEUoIkFHQyBUYXJnZXQgbGV2ZWwiLCBVREExMzgwX0FHQywgMiwgMywgMSksCQkJLyogQUdDX0xFVkVMICovCisJLyogLTUuNSwgLTgsIC0xMS41LCAtMTQgZEJGUyAqLworCVNPQ19TSU5HTEUoIkFHQyBTd2l0Y2giLCBVREExMzgwX0FHQywgMCwgMSwgMCksCit9OworCisvKiBhZGQgbm9uIGRhcG0gY29udHJvbHMgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9hZGRfY29udHJvbHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCWludCBlcnIsIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh1ZGExMzgwX3NuZF9jb250cm9scyk7IGkrKykgeworCQllcnIgPSBzbmRfY3RsX2FkZChjb2RlYy0+Y2FyZCwKKwkJCXNuZF9zb2NfY25ldygmdWRhMTM4MF9zbmRfY29udHJvbHNbaV0sIGNvZGVjLCBOVUxMKSk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworLyogSW5wdXQgbXV4ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgdWRhMTM4MF9pbnB1dF9tdXhfY29udHJvbCA9CisJU09DX0RBUE1fRU5VTSgiUm91dGUiLCB1ZGExMzgwX2lucHV0X3NlbF9lbnVtKTsKKworLyogT3V0cHV0IG11eCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHVkYTEzODBfb3V0cHV0X211eF9jb250cm9sID0KKwlTT0NfREFQTV9FTlVNKCJSb3V0ZSIsIHVkYTEzODBfb3V0cHV0X3NlbF9lbnVtKTsKKworLyogQ2FwdHVyZSBtdXggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB1ZGExMzgwX2NhcHR1cmVfbXV4X2NvbnRyb2wgPQorCVNPQ19EQVBNX0VOVU0oIlJvdXRlIiwgdWRhMTM4MF9jYXB0dXJlX3NlbF9lbnVtKTsKKworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgdWRhMTM4MF9kYXBtX3dpZGdldHNbXSA9IHsKKwlTTkRfU09DX0RBUE1fTVVYKCJJbnB1dCBNdXgiLCBTTkRfU09DX05PUE0sIDAsIDAsCisJCSZ1ZGExMzgwX2lucHV0X211eF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fTVVYKCJPdXRwdXQgTXV4IiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmdWRhMTM4MF9vdXRwdXRfbXV4X2NvbnRyb2wpLAorCVNORF9TT0NfREFQTV9NVVgoIkNhcHR1cmUgTXV4IiwgU05EX1NPQ19OT1BNLCAwLCAwLAorCQkmdWRhMTM4MF9jYXB0dXJlX211eF9jb250cm9sKSwKKwlTTkRfU09DX0RBUE1fUEdBKCJMZWZ0IFBHQSIsIFVEQTEzODBfUE0sIDMsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIlJpZ2h0IFBHQSIsIFVEQTEzODBfUE0sIDEsIDAsIE5VTEwsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIk1pYyBMTkEiLCBVREExMzgwX1BNLCA0LCAwLCBOVUxMLCAwKSwKKwlTTkRfU09DX0RBUE1fQURDKCJMZWZ0IEFEQyIsICJMZWZ0IENhcHR1cmUiLCBVREExMzgwX1BNLCAyLCAwKSwKKwlTTkRfU09DX0RBUE1fQURDKCJSaWdodCBBREMiLCAiUmlnaHQgQ2FwdHVyZSIsIFVEQTEzODBfUE0sIDAsIDApLAorCVNORF9TT0NfREFQTV9JTlBVVCgiVklOTSIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiVklOTCIpLAorCVNORF9TT0NfREFQTV9JTlBVVCgiVklOUiIpLAorCVNORF9TT0NfREFQTV9NSVhFUigiQW5hbG9nIE1peGVyIiwgVURBMTM4MF9QTSwgNiwgMCwgTlVMTCwgMCksCisJU05EX1NPQ19EQVBNX09VVFBVVCgiVk9VVExIUCIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIlZPVVRSSFAiKSwKKwlTTkRfU09DX0RBUE1fT1VUUFVUKCJWT1VUTCIpLAorCVNORF9TT0NfREFQTV9PVVRQVVQoIlZPVVRSIiksCisJU05EX1NPQ19EQVBNX0RBQygiREFDIiwgIlBsYXliYWNrIiwgVURBMTM4MF9QTSwgMTAsIDApLAorCVNORF9TT0NfREFQTV9QR0EoIkhlYWRQaG9uZSBEcml2ZXIiLCBVREExMzgwX1BNLCAxMywgMCwgTlVMTCwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKKworCS8qIG91dHB1dCBtdXggKi8KKwl7IkhlYWRQaG9uZSBEcml2ZXIiLCBOVUxMLCAiT3V0cHV0IE11eCJ9LAorCXsiVk9VVFIiLCBOVUxMLCAiT3V0cHV0IE11eCJ9LAorCXsiVk9VVEwiLCBOVUxMLCAiT3V0cHV0IE11eCJ9LAorCisJeyJBbmFsb2cgTWl4ZXIiLCBOVUxMLCAiVklOUiJ9LAorCXsiQW5hbG9nIE1peGVyIiwgTlVMTCwgIlZJTkwifSwKKwl7IkFuYWxvZyBNaXhlciIsIE5VTEwsICJEQUMifSwKKworCXsiT3V0cHV0IE11eCIsICJEQUMiLCAiREFDIn0sCisJeyJPdXRwdXQgTXV4IiwgIkFuYWxvZyBNaXhlciIsICJBbmFsb2cgTWl4ZXIifSwKKworCS8qIHsiREFDIiwgIkRpZ2l0YWwgTWl4ZXIiLCAiSTJTIiB9ICovCisKKwkvKiBoZWFkcGhvbmUgZHJpdmVyICovCisJeyJWT1VUTEhQIiwgTlVMTCwgIkhlYWRQaG9uZSBEcml2ZXIifSwKKwl7IlZPVVRSSFAiLCBOVUxMLCAiSGVhZFBob25lIERyaXZlciJ9LAorCisJLyogaW5wdXQgbXV4ICovCisJeyJMZWZ0IEFEQyIsIE5VTEwsICJJbnB1dCBNdXgifSwKKwl7IklucHV0IE11eCIsICJNaWMiLCAiTWljIExOQSJ9LAorCXsiSW5wdXQgTXV4IiwgIk1pYyArIExpbmUgUiIsICJNaWMgTE5BIn0sCisJeyJJbnB1dCBNdXgiLCAiTGluZSBMIiwgIkxlZnQgUEdBIn0sCisJeyJJbnB1dCBNdXgiLCAiTGluZSIsICJMZWZ0IFBHQSJ9LAorCisJLyogcmlnaHQgaW5wdXQgKi8KKwl7IlJpZ2h0IEFEQyIsICJNaWMgKyBMaW5lIFIiLCAiUmlnaHQgUEdBIn0sCisJeyJSaWdodCBBREMiLCAiTGluZSIsICJSaWdodCBQR0EifSwKKworCS8qIGlucHV0cyAqLworCXsiTWljIExOQSIsIE5VTEwsICJWSU5NIn0sCisJeyJMZWZ0IFBHQSIsIE5VTEwsICJWSU5MIn0sCisJeyJSaWdodCBQR0EiLCBOVUxMLCAiVklOUiJ9LAorfTsKKworc3RhdGljIGludCB1ZGExMzgwX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB1ZGExMzgwX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUodWRhMTM4MF9kYXBtX3dpZGdldHMpKTsKKworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwlpbnQgaWZhY2U7CisKKwkvKiBzZXQgdXAgREFJIGJhc2VkIHVwb24gZm10ICovCisJaWZhY2UgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0lGQUNFKTsKKwlpZmFjZSAmPSB+KFIwMV9TRk9SSV9NQVNLIHwgUjAxX1NJTSB8IFIwMV9TRk9ST19NQVNLKTsKKworCS8qIEZJWE1FOiBob3cgdG8gc2VsZWN0IEkyUyBmb3IgREFUQU8gYW5kIE1TQiBmb3IgREFUQUkgY29ycmVjdGx5PyAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUzoKKwkJaWZhY2UgfD0gUjAxX1NGT1JJX0kyUyB8IFIwMV9TRk9ST19JMlM7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTFNCOgorCQlpZmFjZSB8PSBSMDFfU0ZPUklfTFNCMTYgfCBSMDFfU0ZPUk9fSTJTOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX01TQjoKKwkJaWZhY2UgfD0gUjAxX1NGT1JJX01TQiB8IFIwMV9TRk9ST19JMlM7CisJfQorCisJaWYgKChmbXQgJiBTTkRfU09DX0RBSUZNVF9NQVNURVJfTUFTSykgPT0gU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSkKKwkJaWZhY2UgfD0gUjAxX1NJTTsKKworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfSUZBQ0UsIGlmYWNlKTsKKworCXJldHVybiAwOworfQorCisvKgorICogRmx1c2ggcmVnIGNhY2hlCisgKiBXZSBjYW4gb25seSB3cml0ZSB0aGUgaW50ZXJwb2xhdG9yIGFuZCBkZWNpbWF0b3IgcmVnaXN0ZXJzCisgKiB3aGVuIHRoZSBEQUkgaXMgYmVpbmcgY2xvY2tlZCBieSB0aGUgQ1BVIERBSS4gSXQncyB1cCB0byB0aGUKKyAqIG1hY2hpbmUgYW5kIGNwdSBEQUkgZHJpdmVyIHRvIGRvIHRoaXMgYmVmb3JlIHdlIGFyZSBjYWxsZWQuCisgKi8KK3N0YXRpYyBpbnQgdWRhMTM4MF9wY21fcHJlcGFyZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZWcsIHJlZ19zdGFydCwgcmVnX2VuZCwgY2xrOworCisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsKKwkJcmVnX3N0YXJ0ID0gVURBMTM4MF9NVk9MOworCQlyZWdfZW5kID0gVURBMTM4MF9NSVhFUjsKKwl9IGVsc2UgeworCQlyZWdfc3RhcnQgPSBVREExMzgwX0RFQzsKKwkJcmVnX2VuZCA9IFVEQTEzODBfQUdDOworCX0KKworCS8qIEZJWE1FIGRpc2FibGUgREFDX0NMSyAqLworCWNsayA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfQ0xLKTsKKwl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0NMSywgY2xrICYgflIwMF9EQUNfQ0xLKTsKKworCWZvciAocmVnID0gcmVnX3N0YXJ0OyByZWcgPD0gcmVnX2VuZDsgcmVnKyspIHsKKwkJcHJfZGVidWcoInVkYTEzODA6IGZsdXNoIHJlZyAleCB2YWwgJXg6IiwgcmVnLAorCQkJCXVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZykpOworCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCByZWcsIHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIHJlZykpOworCX0KKworCS8qIEZJWE1FIGVuYWJsZSBEQUNfQ0xLICovCisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIGNsayB8IFIwMF9EQUNfQ0xLKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfcGNtX2h3X3BhcmFtcyhzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKKwlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXUxNiBjbGsgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0NMSyk7CisKKwkvKiBzZXQgV1NQTEwgcG93ZXIgYW5kIGRpdmlkZXIgaWYgcnVubmluZyBmcm9tIHRoaXMgY2xvY2sgKi8KKwlpZiAoY2xrICYgUjAwX0RBQ19DTEspIHsKKwkJaW50IHJhdGUgPSBwYXJhbXNfcmF0ZShwYXJhbXMpOworCQl1MTYgcG0gPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX1BNKTsKKwkJY2xrICY9IH4weDM7IC8qIGNsZWFyIFNFTF9MT09QX0RJViAqLworCQlzd2l0Y2ggKHJhdGUpIHsKKwkJY2FzZSA2MjUwIC4uLiAxMjUwMDoKKwkJCWNsayB8PSAweDA7CisJCQlicmVhazsKKwkJY2FzZSAxMjUwMSAuLi4gMjUwMDA6CisJCQljbGsgfD0gMHgxOworCQkJYnJlYWs7CisJCWNhc2UgMjUwMDEgLi4uIDUwMDAwOgorCQkJY2xrIHw9IDB4MjsKKwkJCWJyZWFrOworCQljYXNlIDUwMDAxIC4uLiAxMDAwMDA6CisJCQljbGsgfD0gMHgzOworCQkJYnJlYWs7CisJCX0KKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9QTSwgUjAyX1BPTl9QTEwgfCBwbSk7CisJfQorCisJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCisJCWNsayB8PSBSMDBfRU5fREFDIHwgUjAwX0VOX0lOVDsKKwllbHNlCisJCWNsayB8PSBSMDBfRU5fQURDIHwgUjAwX0VOX0RFQzsKKworCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfQ0xLLCBjbGspOworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCB1ZGExMzgwX3BjbV9zaHV0ZG93bihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXUxNiBjbGsgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0NMSyk7CisKKwkvKiBzaHV0IGRvd24gV1NQTEwgcG93ZXIgaWYgcnVubmluZyBmcm9tIHRoaXMgY2xvY2sgKi8KKwlpZiAoY2xrICYgUjAwX0RBQ19DTEspIHsKKwkJdTE2IHBtID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9QTSk7CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIH5SMDJfUE9OX1BMTCAmIHBtKTsKKwl9CisKKwlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKKwkJY2xrICY9IH4oUjAwX0VOX0RBQyB8IFIwMF9FTl9JTlQpOworCWVsc2UKKwkJY2xrICY9IH4oUjAwX0VOX0FEQyB8IFIwMF9FTl9ERUMpOworCisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIGNsayk7Cit9CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLCBpbnQgbXV0ZSkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXUxNiBtdXRlX3JlZyA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFVEQTEzODBfREVFTVApICYgflIxM19NVE07CisKKwkvKiBGSVhNRTogbXV0ZShjb2RlYywwKSBpcyBjYWxsZWQgd2hlbiB0aGUgbWFnaWNpYW4gY2xvY2sgaXMgYWxyZWFkeQorCSAqIHNldCB0byBXU1BMTCwgYnV0IGZvciBzb21lIHVua25vd24gcmVhc29uIHdyaXRpbmcgdG8gaW50ZXJwb2xhdG9yCisJICogcmVnaXN0ZXJzIHdvcmtzIG9ubHkgd2hlbiBjbG9ja2VkIGJ5IFNZU0NMSyAqLworCXUxNiBjbGsgPSB1ZGExMzgwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBVREExMzgwX0NMSyk7CisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIH5SMDBfREFDX0NMSyAmIGNsayk7CisJaWYgKG11dGUpCisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfREVFTVAsIG11dGVfcmVnIHwgUjEzX01UTSk7CisJZWxzZQorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0RFRU1QLCBtdXRlX3JlZyk7CisJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9DTEssIGNsayk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCit7CisJaW50IHBtID0gdWRhMTM4MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgVURBMTM4MF9QTSk7CisKKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwkJdWRhMTM4MF93cml0ZShjb2RlYywgVURBMTM4MF9QTSwgUjAyX1BPTl9CSUFTIHwgcG0pOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX1BNLCBSMDJfUE9OX0JJQVMpOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19PRkY6CisJCXVkYTEzODBfd3JpdGUoY29kZWMsIFVEQTEzODBfUE0sIDB4MCk7CisJCWJyZWFrOworCX0KKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOworCXJldHVybiAwOworfQorCisjZGVmaW5lIFVEQTEzODBfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAorCQkgICAgICAgU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8XAorCQkgICAgICAgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9QQ01fUkFURV80ODAwMCkKKworc3RydWN0IHNuZF9zb2NfZGFpIHVkYTEzODBfZGFpW10gPSB7Cit7CisJLm5hbWUgPSAiVURBMTM4MCIsCisJLnBsYXliYWNrID0geworCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFVEQTEzODBfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsfSwKKwkuY2FwdHVyZSA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIkNhcHR1cmUiLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFVEQTEzODBfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gdWRhMTM4MF9wY21faHdfcGFyYW1zLAorCQkuc2h1dGRvd24gPSB1ZGExMzgwX3BjbV9zaHV0ZG93biwKKwkJLnByZXBhcmUgPSB1ZGExMzgwX3BjbV9wcmVwYXJlLAorCX0sCisJLmRhaV9vcHMgPSB7CisJCS5kaWdpdGFsX211dGUgPSB1ZGExMzgwX211dGUsCisJCS5zZXRfZm10ID0gdWRhMTM4MF9zZXRfZGFpX2ZtdCwKKwl9LAorfSwKK3sgLyogcGxheWJhY2sgb25seSAtIGR1YWwgaW50ZXJmYWNlICovCisJLm5hbWUgPSAiVURBMTM4MCIsCisJLnBsYXliYWNrID0geworCQkuc3RyZWFtX25hbWUgPSAiUGxheWJhY2siLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFVEQTEzODBfUkFURVMsCisJCS5mb3JtYXRzID0gU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUsCisJfSwKKwkub3BzID0geworCQkuaHdfcGFyYW1zID0gdWRhMTM4MF9wY21faHdfcGFyYW1zLAorCQkuc2h1dGRvd24gPSB1ZGExMzgwX3BjbV9zaHV0ZG93biwKKwkJLnByZXBhcmUgPSB1ZGExMzgwX3BjbV9wcmVwYXJlLAorCX0sCisJLmRhaV9vcHMgPSB7CisJCS5kaWdpdGFsX211dGUgPSB1ZGExMzgwX211dGUsCisJCS5zZXRfZm10ID0gdWRhMTM4MF9zZXRfZGFpX2ZtdCwKKwl9LAorfSwKK3sgLyogY2FwdHVyZSBvbmx5IC0gZHVhbCBpbnRlcmZhY2UqLworCS5uYW1lID0gIlVEQTEzODAiLAorCS5jYXB0dXJlID0geworCQkuc3RyZWFtX25hbWUgPSAiQ2FwdHVyZSIsCisJCS5jaGFubmVsc19taW4gPSAxLAorCQkuY2hhbm5lbHNfbWF4ID0gMiwKKwkJLnJhdGVzID0gVURBMTM4MF9SQVRFUywKKwkJLmZvcm1hdHMgPSBTTkRSVl9QQ01fRk1UQklUX1MxNl9MRSwKKwl9LAorCS5vcHMgPSB7CisJCS5od19wYXJhbXMgPSB1ZGExMzgwX3BjbV9od19wYXJhbXMsCisJCS5zaHV0ZG93biA9IHVkYTEzODBfcGNtX3NodXRkb3duLAorCQkucHJlcGFyZSA9IHVkYTEzODBfcGNtX3ByZXBhcmUsCisJfSwKKwkuZGFpX29wcyA9IHsKKwkJLnNldF9mbXQgPSB1ZGExMzgwX3NldF9kYWlfZm10LAorCX0sCit9LAorfTsKK0VYUE9SVF9TWU1CT0xfR1BMKHVkYTEzODBfZGFpKTsKKworc3RhdGljIGludCB1ZGExMzgwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCXVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCBpOworCXU4IGRhdGFbMl07CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisKKwkvKiBTeW5jIHJlZ19jYWNoZSB3aXRoIHRoZSBoYXJkd2FyZSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHVkYTEzODBfcmVnKTsgaSsrKSB7CisJCWRhdGFbMF0gPSAoaSA8PCAxKSB8ICgoY2FjaGVbaV0gPj4gOCkgJiAweDAwMDEpOworCQlkYXRhWzFdID0gY2FjaGVbaV0gJiAweDAwZmY7CisJCWNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAyKTsKKwl9CisJdWRhMTM4MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOworCXVkYTEzODBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOworCXJldHVybiAwOworfQorCisvKgorICogaW5pdGlhbGlzZSB0aGUgVURBMTM4MCBkcml2ZXIKKyAqIHJlZ2lzdGVyIG1peGVyIGFuZCBkc3AgaW50ZXJmYWNlcyB3aXRoIHRoZSBrZXJuZWwKKyAqLworc3RhdGljIGludCB1ZGExMzgwX2luaXQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYsIGludCBkYWNfY2xrKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJaW50IHJldCA9IDA7CisKKwljb2RlYy0+bmFtZSA9ICJVREExMzgwIjsKKwljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwljb2RlYy0+cmVhZCA9IHVkYTEzODBfcmVhZF9yZWdfY2FjaGU7CisJY29kZWMtPndyaXRlID0gdWRhMTM4MF93cml0ZTsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB1ZGExMzgwX3NldF9iaWFzX2xldmVsOworCWNvZGVjLT5kYWkgPSB1ZGExMzgwX2RhaTsKKwljb2RlYy0+bnVtX2RhaSA9IEFSUkFZX1NJWkUodWRhMTM4MF9kYWkpOworCWNvZGVjLT5yZWdfY2FjaGUgPSBrbWVtZHVwKHVkYTEzODBfcmVnLCBzaXplb2YodWRhMTM4MF9yZWcpLAorCQkJCSAgIEdGUF9LRVJORUwpOworCWlmIChjb2RlYy0+cmVnX2NhY2hlID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IEFSUkFZX1NJWkUodWRhMTM4MF9yZWcpOworCWNvZGVjLT5yZWdfY2FjaGVfc3RlcCA9IDE7CisJdWRhMTM4MF9yZXNldChjb2RlYyk7CisKKwkvKiByZWdpc3RlciBwY21zICovCisJcmV0ID0gc25kX3NvY19uZXdfcGNtcyhzb2NkZXYsIFNORFJWX0RFRkFVTFRfSURYMSwgU05EUlZfREVGQVVMVF9TVFIxKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoInVkYTEzODA6IGZhaWxlZCB0byBjcmVhdGUgcGNtc1xuIik7CisJCWdvdG8gcGNtX2VycjsKKwl9CisKKwkvKiBwb3dlciBvbiBkZXZpY2UgKi8KKwl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisJLyogc2V0IGNsb2NrIGlucHV0ICovCisJc3dpdGNoIChkYWNfY2xrKSB7CisJY2FzZSBVREExMzgwX0RBQ19DTEtfU1lTQ0xLOgorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0NMSywgMCk7CisJCWJyZWFrOworCWNhc2UgVURBMTM4MF9EQUNfQ0xLX1dTUExMOgorCQl1ZGExMzgwX3dyaXRlKGNvZGVjLCBVREExMzgwX0NMSywgUjAwX0RBQ19DTEspOworCQlicmVhazsKKwl9CisKKwkvKiB1ZGExMzgwIGluaXQgKi8KKwl1ZGExMzgwX2FkZF9jb250cm9scyhjb2RlYyk7CisJdWRhMTM4MF9hZGRfd2lkZ2V0cyhjb2RlYyk7CisJcmV0ID0gc25kX3NvY19yZWdpc3Rlcl9jYXJkKHNvY2Rldik7CisJaWYgKHJldCA8IDApIHsKKwkJcHJfZXJyKCJ1ZGExMzgwOiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2FyZFxuIik7CisJCWdvdG8gY2FyZF9lcnI7CisJfQorCisJcmV0dXJuIHJldDsKKworY2FyZF9lcnI6CisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworcGNtX2VycjoKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgc3RydWN0IHNuZF9zb2NfZGV2aWNlICp1ZGExMzgwX3NvY2RldjsKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKworI2RlZmluZSBJMkNfRFJJVkVSSURfVURBMTM4MCAweGZlZmUgLyogbGlhbSAtICBuZWVkIGEgcHJvcGVyIGlkICovCisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7IDAsIEkyQ19DTElFTlRfRU5EIH07CisKKy8qIE1hZ2ljIGRlZmluaXRpb24gb2YgYWxsIG90aGVyIHZhcmlhYmxlcyBhbmQgdGhpbmdzICovCitJMkNfQ0xJRU5UX0lOU01PRDsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHVkYTEzODBfaTJjX2RyaXZlcjsKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGU7CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworCitzdGF0aWMgaW50IHVkYTEzODBfY29kZWNfcHJvYmUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCBpbnQgYWRkciwgaW50IGtpbmQpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSB1ZGExMzgwX3NvY2RldjsKKwlzdHJ1Y3QgdWRhMTM4MF9zZXR1cF9kYXRhICpzZXR1cCA9IHNvY2Rldi0+Y29kZWNfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCXN0cnVjdCBpMmNfY2xpZW50ICppMmM7CisJaW50IHJldDsKKworCWlmIChhZGRyICE9IHNldHVwLT5pMmNfYWRkcmVzcykKKwkJcmV0dXJuIC1FTk9ERVY7CisKKwljbGllbnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXA7CisJY2xpZW50X3RlbXBsYXRlLmFkZHIgPSBhZGRyOworCisJaTJjID0ga21lbWR1cCgmY2xpZW50X3RlbXBsYXRlLCBzaXplb2YoY2xpZW50X3RlbXBsYXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKGkyYyA9PSBOVUxMKSB7CisJCWtmcmVlKGNvZGVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCWkyY19zZXRfY2xpZW50ZGF0YShpMmMsIGNvZGVjKTsKKwljb2RlYy0+Y29udHJvbF9kYXRhID0gaTJjOworCisJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoInVkYTEzODA6IGZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCWdvdG8gZXJyOworCX0KKworCXJldCA9IHVkYTEzODBfaW5pdChzb2NkZXYsIHNldHVwLT5kYWNfY2xrKTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoInVkYTEzODA6IGZhaWxlZCB0byBpbml0aWFsaXNlIFVEQTEzODBcbiIpOworCQlnb3RvIGVycjsKKwl9CisJcmV0dXJuIHJldDsKKworZXJyOgorCWtmcmVlKGNvZGVjKTsKKwlrZnJlZShpMmMpOworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgdWRhMTM4MF9pMmNfZGV0YWNoKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gaTJjX2dldF9jbGllbnRkYXRhKGNsaWVudCk7CisJaTJjX2RldGFjaF9jbGllbnQoY2xpZW50KTsKKwlrZnJlZShjb2RlYy0+cmVnX2NhY2hlKTsKKwlrZnJlZShjbGllbnQpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHVkYTEzODBfaTJjX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCit7CisJcmV0dXJuIGkyY19wcm9iZShhZGFwLCAmYWRkcl9kYXRhLCB1ZGExMzgwX2NvZGVjX3Byb2JlKTsKK30KKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHVkYTEzODBfaTJjX2RyaXZlciA9IHsKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICAiVURBMTM4MCBJMkMgQ29kZWMiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwl9LAorCS5pZCA9ICAgICAgICAgICAgIEkyQ19EUklWRVJJRF9VREExMzgwLAorCS5hdHRhY2hfYWRhcHRlciA9IHVkYTEzODBfaTJjX2F0dGFjaCwKKwkuZGV0YWNoX2NsaWVudCA9ICB1ZGExMzgwX2kyY19kZXRhY2gsCisJLmNvbW1hbmQgPSAgICAgICAgTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGUgPSB7CisJLm5hbWUgPSAgICJVREExMzgwIiwKKwkuZHJpdmVyID0gJnVkYTEzODBfaTJjX2RyaXZlciwKK307CisjZW5kaWYKKworc3RhdGljIGludCB1ZGExMzgwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3QgdWRhMTM4MF9zZXR1cF9kYXRhICpzZXR1cDsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWM7CisJaW50IHJldCA9IDA7CisKKwlwcl9pbmZvKCJVREExMzgwIEF1ZGlvIENvZGVjICVzIiwgVURBMTM4MF9WRVJTSU9OKTsKKworCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzb2NkZXYtPmNvZGVjID0gY29kZWM7CisJbXV0ZXhfaW5pdCgmY29kZWMtPm11dGV4KTsKKwlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fd2lkZ2V0cyk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3BhdGhzKTsKKworCXVkYTEzODBfc29jZGV2ID0gc29jZGV2OworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJnVkYTEzODBfaTJjX2RyaXZlcik7CisJCWlmIChyZXQgIT0gMCkKKwkJCXByaW50ayhLRVJOX0VSUiAiY2FuJ3QgYWRkIGkyYyBkcml2ZXIiKTsKKwl9CisjZWxzZQorCS8qIEFkZCBvdGhlciBpbnRlcmZhY2VzIGhlcmUgKi8KKyNlbmRpZgorCXJldHVybiByZXQ7Cit9CisKKy8qIHBvd2VyIGRvd24gY2hpcCAqLworc3RhdGljIGludCB1ZGExMzgwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQorCQl1ZGExMzgwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKworCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKKyNpZiBkZWZpbmVkKENPTkZJR19JMkMpIHx8IGRlZmluZWQoQ09ORklHX0kyQ19NT0RVTEUpCisJaTJjX2RlbF9kcml2ZXIoJnVkYTEzODBfaTJjX2RyaXZlcik7CisjZW5kaWYKKwlrZnJlZShjb2RlYyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfdWRhMTM4MCA9IHsKKwkucHJvYmUgPSAJdWRhMTM4MF9wcm9iZSwKKwkucmVtb3ZlID0gCXVkYTEzODBfcmVtb3ZlLAorCS5zdXNwZW5kID0gCXVkYTEzODBfc3VzcGVuZCwKKwkucmVzdW1lID0JdWRhMTM4MF9yZXN1bWUsCit9OworRVhQT1JUX1NZTUJPTF9HUEwoc29jX2NvZGVjX2Rldl91ZGExMzgwKTsKKworTU9EVUxFX0FVVEhPUigiR2lvcmdpbyBQYWRyaW4iKTsKK01PRFVMRV9ERVNDUklQVElPTigiQXVkaW8gc3VwcG9ydCBmb3IgY29kZWMgUGhpbGlwcyBVREExMzgwIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3VkYTEzODAuaCBiL3NvdW5kL3NvYy9jb2RlY3MvdWRhMTM4MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwYzYwM2UKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3VkYTEzODAuaApAQCAtMCwwICsxLDg5IEBACisvKgorICogQXVkaW8gc3VwcG9ydCBmb3IgUGhpbGlwcyBVREExMzgwCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDUgR2lvcmdpbyBQYWRyaW4gPGdpb3JnaW9AbWFuZGFyaW5sb2dpcS5vcmc+CisgKi8KKworI2lmbmRlZiBfVURBMTM4MF9ICisjZGVmaW5lIF9VREExMzgwX0gKKworI2RlZmluZSBVREExMzgwX0NMSwkweDAwCisjZGVmaW5lIFVEQTEzODBfSUZBQ0UJMHgwMQorI2RlZmluZSBVREExMzgwX1BNCTB4MDIKKyNkZWZpbmUgVURBMTM4MF9BTUlYCTB4MDMKKyNkZWZpbmUgVURBMTM4MF9IUAkweDA0CisjZGVmaW5lIFVEQTEzODBfTVZPTAkweDEwCisjZGVmaW5lIFVEQTEzODBfTUlYVk9MCTB4MTEKKyNkZWZpbmUgVURBMTM4MF9NT0RFCTB4MTIKKyNkZWZpbmUgVURBMTM4MF9ERUVNUAkweDEzCisjZGVmaW5lIFVEQTEzODBfTUlYRVIJMHgxNAorI2RlZmluZSBVREExMzgwX0lOVFNUQVQJMHgxOAorI2RlZmluZSBVREExMzgwX0RFQwkweDIwCisjZGVmaW5lIFVEQTEzODBfUEdBCTB4MjEKKyNkZWZpbmUgVURBMTM4MF9BREMJMHgyMgorI2RlZmluZSBVREExMzgwX0FHQwkweDIzCisjZGVmaW5lIFVEQTEzODBfREVDU1RBVAkweDI4CisjZGVmaW5lIFVEQTEzODBfUkVTRVQJMHg3ZgorCisjZGVmaW5lIFVEQTEzODBfQ0FDSEVSRUdOVU0gMHgyNAorCisvKiBSZWdpc3RlciBmbGFncyAqLworI2RlZmluZSBSMDBfRU5fQURDCTB4MDgwMAorI2RlZmluZSBSMDBfRU5fREVDCTB4MDQwMAorI2RlZmluZSBSMDBfRU5fREFDCTB4MDIwMAorI2RlZmluZSBSMDBfRU5fSU5UCTB4MDEwMAorI2RlZmluZSBSMDBfREFDX0NMSwkweDAwMTAKKyNkZWZpbmUgUjAxX1NGT1JJX0kyUyAgIDB4MDAwMAorI2RlZmluZSBSMDFfU0ZPUklfTFNCMTYgMHgwMTAwCisjZGVmaW5lIFIwMV9TRk9SSV9MU0IxOCAweDAyMDAKKyNkZWZpbmUgUjAxX1NGT1JJX0xTQjIwIDB4MDMwMAorI2RlZmluZSBSMDFfU0ZPUklfTVNCICAgMHgwNTAwCisjZGVmaW5lIFIwMV9TRk9SSV9NQVNLICAweDA3MDAKKyNkZWZpbmUgUjAxX1NGT1JPX0kyUyAgIDB4MDAwMAorI2RlZmluZSBSMDFfU0ZPUk9fTFNCMTYgMHgwMDAxCisjZGVmaW5lIFIwMV9TRk9ST19MU0IxOCAweDAwMDIKKyNkZWZpbmUgUjAxX1NGT1JPX0xTQjIwIDB4MDAwMworI2RlZmluZSBSMDFfU0ZPUk9fTFNCMjQgMHgwMDA0CisjZGVmaW5lIFIwMV9TRk9ST19NU0IgICAweDAwMDUKKyNkZWZpbmUgUjAxX1NGT1JPX01BU0sgIDB4MDAwNworI2RlZmluZSBSMDFfU0VMX1NPVVJDRSAgMHgwMDQwCisjZGVmaW5lIFIwMV9TSU0JCTB4MDAxMAorI2RlZmluZSBSMDJfUE9OX1BMTAkweDgwMDAKKyNkZWZpbmUgUjAyX1BPTl9IUAkweDIwMDAKKyNkZWZpbmUgUjAyX1BPTl9EQUMJMHgwNDAwCisjZGVmaW5lIFIwMl9QT05fQklBUwkweDAxMDAKKyNkZWZpbmUgUjAyX0VOX0FWQwkweDAwODAKKyNkZWZpbmUgUjAyX1BPTl9BVkMJMHgwMDQwCisjZGVmaW5lIFIwMl9QT05fTE5BCTB4MDAxMAorI2RlZmluZSBSMDJfUE9OX1BHQUwJMHgwMDA4CisjZGVmaW5lIFIwMl9QT05fQURDTAkweDAwMDQKKyNkZWZpbmUgUjAyX1BPTl9QR0FSCTB4MDAwMgorI2RlZmluZSBSMDJfUE9OX0FEQ1IJMHgwMDAxCisjZGVmaW5lIFIxM19NVE0JCTB4NDAwMAorI2RlZmluZSBSMTRfU0lMRU5DRQkweDAwODAKKyNkZWZpbmUgUjE0X1NERVRfT04JMHgwMDQwCisjZGVmaW5lIFIyMV9NVF9BREMJMHg4MDAwCisjZGVmaW5lIFIyMl9TRUxfTE5BCTB4MDAwOAorI2RlZmluZSBSMjJfU0VMX01JQwkweDAwMDQKKyNkZWZpbmUgUjIyX1NLSVBfRENGSUwJMHgwMDAyCisjZGVmaW5lIFIyM19BR0NfRU4JMHgwMDAxCisKK3N0cnVjdCB1ZGExMzgwX3NldHVwX2RhdGEgeworCXVuc2lnbmVkIHNob3J0IGkyY19hZGRyZXNzOworCWludCAgICAgICAgICAgIGRhY19jbGs7CisjZGVmaW5lIFVEQTEzODBfREFDX0NMS19TWVNDTEsgMAorI2RlZmluZSBVREExMzgwX0RBQ19DTEtfV1NQTEwgIDEKK307CisKKyNkZWZpbmUgVURBMTM4MF9EQUlfRFVQTEVYCTAgLyogcGxheWJhY2sgYW5kIGNhcHR1cmUgb24gc2luZ2xlIERBSSAqLworI2RlZmluZSBVREExMzgwX0RBSV9QTEFZQkFDSwkxIC8qIHBsYXliYWNrIERBSSAqLworI2RlZmluZSBVREExMzgwX0RBSV9DQVBUVVJFCTIgLyogY2FwdHVyZSBEQUkgKi8KKworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB1ZGExMzgwX2RhaVszXTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl91ZGExMzgwOworCisjZW5kaWYgLyogX1VEQTEzODBfSCAqLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg1MTAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjczMjVmZAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NTEwLmMKQEAgLTAsMCArMSw4MTcgQEAKKy8qCisgKiB3bTg1MTAuYyAgLS0gIFdNODUxMCBBTFNBIFNvYyBBdWRpbyBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMjAwNiBXb2xmc29uIE1pY3JvZWxlY3Ryb25pY3MgUExDLgorICoKKyAqIEF1dGhvcjogTGlhbSBHaXJkd29vZCA8bGlhbS5naXJkd29vZEB3b2xmc29ubWljcm8uY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorCisjaW5jbHVkZSAid204NTEwLmgiCisKKyNkZWZpbmUgQVVESU9fTkFNRSAid204NTEwIgorI2RlZmluZSBXTTg1MTBfVkVSU0lPTiAiMC42IgorCitzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg1MTA7CisKKy8qCisgKiB3bTg1MTAgcmVnaXN0ZXIgY2FjaGUKKyAqIFdlIGNhbid0IHJlYWQgdGhlIFdNODUxMCByZWdpc3RlciBzcGFjZSB3aGVuIHdlIGFyZQorICogdXNpbmcgMiB3aXJlIGZvciBkZXZpY2UgY29udHJvbCwgc28gd2UgY2FjaGUgdGhlbSBpbnN0ZWFkLgorICovCitzdGF0aWMgY29uc3QgdTE2IHdtODUxMF9yZWdbV004NTEwX0NBQ0hFUkVHTlVNXSA9IHsKKwkweDAwMDAsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDUwLCAweDAwMDAsIDB4MDE0MCwgMHgwMDAwLAorCTB4MDAwMCwgMHgwMDAwLCAweDAwMDAsIDB4MDBmZiwKKwkweDAwMDAsIDB4MDAwMCwgMHgwMTAwLCAweDAwZmYsCisJMHgwMDAwLCAweDAwMDAsIDB4MDEyYywgMHgwMDJjLAorCTB4MDAyYywgMHgwMDJjLCAweDAwMmMsIDB4MDAwMCwKKwkweDAwMzIsIDB4MDAwMCwgMHgwMDAwLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAzOCwgMHgwMDBiLCAweDAwMzIsIDB4MDAwMCwKKwkweDAwMDgsIDB4MDAwYywgMHgwMDkzLCAweDAwZTksCisJMHgwMDAwLCAweDAwMDAsIDB4MDAwMCwgMHgwMDAwLAorCTB4MDAwMywgMHgwMDEwLCAweDAwMDAsIDB4MDAwMCwKKwkweDAwMDAsIDB4MDAwMiwgMHgwMDAxLCAweDAwMDAsCisJMHgwMDAwLCAweDAwMDAsIDB4MDAzOSwgMHgwMDAwLAorCTB4MDAwMSwKK307CisKKy8qCisgKiByZWFkIHdtODUxMCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXVuc2lnbmVkIGludCByZWcpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJaWYgKHJlZyA9PSBXTTg1MTBfUkVTRVQpCisJCXJldHVybiAwOworCWlmIChyZWcgPj0gV004NTEwX0NBQ0hFUkVHTlVNKQorCQlyZXR1cm4gLTE7CisJcmV0dXJuIGNhY2hlW3JlZ107Cit9CisKKy8qCisgKiB3cml0ZSB3bTg1MTAgcmVnaXN0ZXIgY2FjaGUKKyAqLworc3RhdGljIGlubGluZSB2b2lkIHdtODUxMF93cml0ZV9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXUxNiByZWcsIHVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1MTYgKmNhY2hlID0gY29kZWMtPnJlZ19jYWNoZTsKKwlpZiAocmVnID49IFdNODUxMF9DQUNIRVJFR05VTSkKKwkJcmV0dXJuOworCWNhY2hlW3JlZ10gPSB2YWx1ZTsKK30KKworLyoKKyAqIHdyaXRlIHRvIHRoZSBXTTg1MTAgcmVnaXN0ZXIgc3BhY2UKKyAqLworc3RhdGljIGludCB3bTg1MTBfd3JpdGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgcmVnLAorCXVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1OCBkYXRhWzJdOworCisJLyogZGF0YSBpcworCSAqICAgRDE1Li5EOSBXTTg1MTAgcmVnaXN0ZXIgb2Zmc2V0CisJICogICBEOC4uLkQwIHJlZ2lzdGVyIGRhdGEKKwkgKi8KKwlkYXRhWzBdID0gKHJlZyA8PCAxKSB8ICgodmFsdWUgPj4gOCkgJiAweDAwMDEpOworCWRhdGFbMV0gPSB2YWx1ZSAmIDB4MDBmZjsKKworCXdtODUxMF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgdmFsdWUpOworCWlmIChjb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMikgPT0gMikKKwkJcmV0dXJuIDA7CisJZWxzZQorCQlyZXR1cm4gLUVJTzsKK30KKworI2RlZmluZSB3bTg1MTBfcmVzZXQoYykJd204NTEwX3dyaXRlKGMsIFdNODUxMF9SRVNFVCwgMCkKKworc3RhdGljIGNvbnN0IGNoYXIgKndtODUxMF9jb21wYW5kaW5nW10gPSB7ICJPZmYiLCAiTkMiLCAidS1sYXciLCAiQS1sYXciIH07CitzdGF0aWMgY29uc3QgY2hhciAqd204NTEwX2RlZW1wW10gPSB7ICJOb25lIiwgIjMya0h6IiwgIjQ0LjFrSHoiLCAiNDhrSHoiIH07CitzdGF0aWMgY29uc3QgY2hhciAqd204NTEwX2FsY1tdID0geyAiQUxDIiwgIkxpbWl0ZXIiIH07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204NTEwX2VudW1bXSA9IHsKKwlTT0NfRU5VTV9TSU5HTEUoV004NTEwX0NPTVAsIDEsIDQsIHdtODUxMF9jb21wYW5kaW5nKSwgLyogYWRjICovCisJU09DX0VOVU1fU0lOR0xFKFdNODUxMF9DT01QLCAzLCA0LCB3bTg1MTBfY29tcGFuZGluZyksIC8qIGRhYyAqLworCVNPQ19FTlVNX1NJTkdMRShXTTg1MTBfREFDLCAgNCwgNCwgd204NTEwX2RlZW1wKSwKKwlTT0NfRU5VTV9TSU5HTEUoV004NTEwX0FMQzMsICA4LCAyLCB3bTg1MTBfYWxjKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg1MTBfc25kX2NvbnRyb2xzW10gPSB7CisKK1NPQ19TSU5HTEUoIkRpZ2l0YWwgTG9vcGJhY2sgU3dpdGNoIiwgV004NTEwX0NPTVAsIDAsIDEsIDApLAorCitTT0NfRU5VTSgiREFDIENvbXBhbmRpbmciLCB3bTg1MTBfZW51bVsxXSksCitTT0NfRU5VTSgiQURDIENvbXBhbmRpbmciLCB3bTg1MTBfZW51bVswXSksCisKK1NPQ19FTlVNKCJQbGF5YmFjayBEZS1lbXBoYXNpcyIsIHdtODUxMF9lbnVtWzJdKSwKK1NPQ19TSU5HTEUoIkRBQyBJbnZlcnNpb24gU3dpdGNoIiwgV004NTEwX0RBQywgMCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIk1hc3RlciBQbGF5YmFjayBWb2x1bWUiLCBXTTg1MTBfREFDVk9MLCAwLCAxMjcsIDApLAorCitTT0NfU0lOR0xFKCJIaWdoIFBhc3MgRmlsdGVyIFN3aXRjaCIsIFdNODUxMF9BREMsIDgsIDEsIDApLAorU09DX1NJTkdMRSgiSGlnaCBQYXNzIEN1dCBPZmYiLCBXTTg1MTBfQURDLCA0LCA3LCAwKSwKK1NPQ19TSU5HTEUoIkFEQyBJbnZlcnNpb24gU3dpdGNoIiwgV004NTEwX0NPTVAsIDAsIDEsIDApLAorCitTT0NfU0lOR0xFKCJDYXB0dXJlIFZvbHVtZSIsIFdNODUxMF9BRENWT0wsICAwLCAxMjcsIDApLAorCitTT0NfU0lOR0xFKCJEQUMgUGxheWJhY2sgTGltaXRlciBTd2l0Y2giLCBXTTg1MTBfREFDTElNMSwgIDgsIDEsIDApLAorU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgRGVjYXkiLCBXTTg1MTBfREFDTElNMSwgIDQsIDE1LCAwKSwKK1NPQ19TSU5HTEUoIkRBQyBQbGF5YmFjayBMaW1pdGVyIEF0dGFjayIsIFdNODUxMF9EQUNMSU0xLCAgMCwgMTUsIDApLAorCitTT0NfU0lOR0xFKCJEQUMgUGxheWJhY2sgTGltaXRlciBUaHJlc2hvbGQiLCBXTTg1MTBfREFDTElNMiwgIDQsIDcsIDApLAorU09DX1NJTkdMRSgiREFDIFBsYXliYWNrIExpbWl0ZXIgQm9vc3QiLCBXTTg1MTBfREFDTElNMiwgIDAsIDE1LCAwKSwKKworU09DX1NJTkdMRSgiQUxDIEVuYWJsZSBTd2l0Y2giLCBXTTg1MTBfQUxDMSwgIDgsIDEsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgTWF4IEdhaW4iLCBXTTg1MTBfQUxDMSwgIDMsIDcsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgTWluIEdhaW4iLCBXTTg1MTBfQUxDMSwgIDAsIDcsIDApLAorCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBaQyBTd2l0Y2giLCBXTTg1MTBfQUxDMiwgIDgsIDEsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgSG9sZCIsIFdNODUxMF9BTEMyLCAgNCwgNywgMCksCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBUYXJnZXQiLCBXTTg1MTBfQUxDMiwgIDAsIDE1LCAwKSwKKworU09DX0VOVU0oIkFMQyBDYXB0dXJlIE1vZGUiLCB3bTg1MTBfZW51bVszXSksCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBEZWNheSIsIFdNODUxMF9BTEMzLCAgNCwgMTUsIDApLAorU09DX1NJTkdMRSgiQUxDIENhcHR1cmUgQXR0YWNrIiwgV004NTEwX0FMQzMsICAwLCAxNSwgMCksCisKK1NPQ19TSU5HTEUoIkFMQyBDYXB0dXJlIE5vaXNlIEdhdGUgU3dpdGNoIiwgV004NTEwX05HQVRFLCAgMywgMSwgMCksCitTT0NfU0lOR0xFKCJBTEMgQ2FwdHVyZSBOb2lzZSBHYXRlIFRocmVzaG9sZCIsIFdNODUxMF9OR0FURSwgIDAsIDcsIDApLAorCitTT0NfU0lOR0xFKCJDYXB0dXJlIFBHQSBaQyBTd2l0Y2giLCBXTTg1MTBfSU5QUEdBLCAgNywgMSwgMCksCitTT0NfU0lOR0xFKCJDYXB0dXJlIFBHQSBWb2x1bWUiLCBXTTg1MTBfSU5QUEdBLCAgMCwgNjMsIDApLAorCitTT0NfU0lOR0xFKCJTcGVha2VyIFBsYXliYWNrIFpDIFN3aXRjaCIsIFdNODUxMF9TUEtWT0wsICA3LCAxLCAwKSwKK1NPQ19TSU5HTEUoIlNwZWFrZXIgUGxheWJhY2sgU3dpdGNoIiwgV004NTEwX1NQS1ZPTCwgIDYsIDEsIDEpLAorU09DX1NJTkdMRSgiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCBXTTg1MTBfU1BLVk9MLCAgMCwgNjMsIDApLAorU09DX1NJTkdMRSgiU3BlYWtlciBCb29zdCIsIFdNODUxMF9PVVRQVVQsIDIsIDEsIDApLAorCitTT0NfU0lOR0xFKCJDYXB0dXJlIEJvb3N0KCsyMGRCKSIsIFdNODUxMF9BRENCT09TVCwgIDgsIDEsIDApLAorU09DX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfTU9OT01JWCwgNiwgMSwgMSksCit9OworCisvKiBhZGQgbm9uIGRhcG0gY29udHJvbHMgKi8KK3N0YXRpYyBpbnQgd204NTEwX2FkZF9jb250cm9scyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJaW50IGVyciwgaTsKKworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODUxMF9zbmRfY29udHJvbHMpOyBpKyspIHsKKwkJZXJyID0gc25kX2N0bF9hZGQoY29kZWMtPmNhcmQsCisJCQkJc25kX3NvY19jbmV3KCZ3bTg1MTBfc25kX2NvbnRyb2xzW2ldLCBjb2RlYywKKwkJCQkJTlVMTCkpOworCQlpZiAoZXJyIDwgMCkKKwkJCXJldHVybiBlcnI7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qIFNwZWFrZXIgT3V0cHV0IE1peGVyICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX3NwZWFrZXJfbWl4ZXJfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTGluZSBCeXBhc3MgU3dpdGNoIiwgV004NTEwX1NQS01JWCwgMSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkF1eCBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfU1BLTUlYLCA1LCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUENNIFBsYXliYWNrIFN3aXRjaCIsIFdNODUxMF9TUEtNSVgsIDAsIDEsIDApLAorfTsKKworLyogTW9ubyBPdXRwdXQgTWl4ZXIgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg1MTBfbW9ub19taXhlcl9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMaW5lIEJ5cGFzcyBTd2l0Y2giLCBXTTg1MTBfTU9OT01JWCwgMSwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkF1eCBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfTU9OT01JWCwgMiwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlBDTSBQbGF5YmFjayBTd2l0Y2giLCBXTTg1MTBfTU9OT01JWCwgMCwgMSwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX2Jvb3N0X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIk1pYyBQR0EgU3dpdGNoIiwgV004NTEwX0lOUFBHQSwgIDYsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJBdXggVm9sdW1lIiwgV004NTEwX0FEQ0JPT1NULCAwLCA3LCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTWljIFZvbHVtZSIsIFdNODUxMF9BRENCT09TVCwgNCwgNywgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204NTEwX21pY3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJNSUNQIFN3aXRjaCIsIFdNODUxMF9JTlBVVCwgMCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIk1JQ04gU3dpdGNoIiwgV004NTEwX0lOUFVULCAxLCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiQVVYIFN3aXRjaCIsIFdNODUxMF9JTlBVVCwgMiwgMSwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgd204NTEwX2RhcG1fd2lkZ2V0c1tdID0geworU05EX1NPQ19EQVBNX01JWEVSKCJTcGVha2VyIE1peGVyIiwgV004NTEwX1BPV0VSMywgMiwgMCwKKwkmd204NTEwX3NwZWFrZXJfbWl4ZXJfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg1MTBfc3BlYWtlcl9taXhlcl9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJNb25vIE1peGVyIiwgV004NTEwX1BPV0VSMywgMywgMCwKKwkmd204NTEwX21vbm9fbWl4ZXJfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg1MTBfbW9ub19taXhlcl9jb250cm9scykpLAorU05EX1NPQ19EQVBNX0RBQygiREFDIiwgIkhpRmkgUGxheWJhY2siLCBXTTg1MTBfUE9XRVIzLCAwLCAwKSwKK1NORF9TT0NfREFQTV9BREMoIkFEQyIsICJIaUZpIENhcHR1cmUiLCBXTTg1MTBfUE9XRVIyLCAwLCAwKSwKK1NORF9TT0NfREFQTV9QR0EoIkF1eCBJbnB1dCIsIFdNODUxMF9QT1dFUjEsIDYsIDAsIE5VTEwsIDApLAorU05EX1NPQ19EQVBNX1BHQSgiU3BrTiBPdXQiLCBXTTg1MTBfUE9XRVIzLCA1LCAwLCBOVUxMLCAwKSwKK1NORF9TT0NfREFQTV9QR0EoIlNwa1AgT3V0IiwgV004NTEwX1BPV0VSMywgNiwgMCwgTlVMTCwgMCksCitTTkRfU09DX0RBUE1fUEdBKCJNb25vIE91dCIsIFdNODUxMF9QT1dFUjMsIDcsIDAsIE5VTEwsIDApLAorCitTTkRfU09DX0RBUE1fUEdBKCJNaWMgUEdBIiwgV004NTEwX1BPV0VSMiwgMiwgMCwKKwkJICZ3bTg1MTBfbWljcGdhX2NvbnRyb2xzWzBdLAorCQkgQVJSQVlfU0laRSh3bTg1MTBfbWljcGdhX2NvbnRyb2xzKSksCitTTkRfU09DX0RBUE1fTUlYRVIoIkJvb3N0IE1peGVyIiwgV004NTEwX1BPV0VSMiwgNCwgMCwKKwkmd204NTEwX2Jvb3N0X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204NTEwX2Jvb3N0X2NvbnRyb2xzKSksCisKK1NORF9TT0NfREFQTV9NSUNCSUFTKCJNaWMgQmlhcyIsIFdNODUxMF9QT1dFUjEsIDQsIDApLAorCitTTkRfU09DX0RBUE1fSU5QVVQoIk1JQ04iKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiTUlDUCIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJBVVgiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIk1PTk9PVVQiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlNQS09VVFAiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlNQS09VVE4iKSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0geworCS8qIE1vbm8gb3V0cHV0IG1peGVyICovCisJeyJNb25vIE1peGVyIiwgIlBDTSBQbGF5YmFjayBTd2l0Y2giLCAiREFDIn0sCisJeyJNb25vIE1peGVyIiwgIkF1eCBQbGF5YmFjayBTd2l0Y2giLCAiQXV4IElucHV0In0sCisJeyJNb25vIE1peGVyIiwgIkxpbmUgQnlwYXNzIFN3aXRjaCIsICJCb29zdCBNaXhlciJ9LAorCisJLyogU3BlYWtlciBvdXRwdXQgbWl4ZXIgKi8KKwl7IlNwZWFrZXIgTWl4ZXIiLCAiUENNIFBsYXliYWNrIFN3aXRjaCIsICJEQUMifSwKKwl7IlNwZWFrZXIgTWl4ZXIiLCAiQXV4IFBsYXliYWNrIFN3aXRjaCIsICJBdXggSW5wdXQifSwKKwl7IlNwZWFrZXIgTWl4ZXIiLCAiTGluZSBCeXBhc3MgU3dpdGNoIiwgIkJvb3N0IE1peGVyIn0sCisKKwkvKiBPdXRwdXRzICovCisJeyJNb25vIE91dCIsIE5VTEwsICJNb25vIE1peGVyIn0sCisJeyJNT05PT1VUIiwgTlVMTCwgIk1vbm8gT3V0In0sCisJeyJTcGtOIE91dCIsIE5VTEwsICJTcGVha2VyIE1peGVyIn0sCisJeyJTcGtQIE91dCIsIE5VTEwsICJTcGVha2VyIE1peGVyIn0sCisJeyJTUEtPVVROIiwgTlVMTCwgIlNwa04gT3V0In0sCisJeyJTUEtPVVRQIiwgTlVMTCwgIlNwa1AgT3V0In0sCisKKwkvKiBNaWNyb3Bob25lIFBHQSAqLworCXsiTWljIFBHQSIsICJNSUNOIFN3aXRjaCIsICJNSUNOIn0sCisJeyJNaWMgUEdBIiwgIk1JQ1AgU3dpdGNoIiwgIk1JQ1AifSwKKwl7ICJNaWMgUEdBIiwgIkFVWCBTd2l0Y2giLCAiQXV4IElucHV0IiB9LAorCisJLyogQm9vc3QgTWl4ZXIgKi8KKwl7IkJvb3N0IE1peGVyIiwgIk1pYyBQR0EgU3dpdGNoIiwgIk1pYyBQR0EifSwKKwl7IkJvb3N0IE1peGVyIiwgIk1pYyBWb2x1bWUiLCAiTUlDUCJ9LAorCXsiQm9vc3QgTWl4ZXIiLCAiQXV4IFZvbHVtZSIsICJBdXggSW5wdXQifSwKKworCXsiQURDIiwgTlVMTCwgIkJvb3N0IE1peGVyIn0sCit9OworCitzdGF0aWMgaW50IHdtODUxMF9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCit7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NTEwX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NTEwX2RhcG1fd2lkZ2V0cykpOworCisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKKworCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBwbGxfIHsKKwl1bnNpZ25lZCBpbnQgcHJlX2Rpdjo0OyAvKiBwcmVzY2FsZSAtIDEgKi8KKwl1bnNpZ25lZCBpbnQgbjo0OworCXVuc2lnbmVkIGludCBrOworfTsKKworc3RhdGljIHN0cnVjdCBwbGxfIHBsbF9kaXY7CisKKy8qIFRoZSBzaXplIGluIGJpdHMgb2YgdGhlIHBsbCBkaXZpZGUgbXVsdGlwbGllZCBieSAxMAorICogdG8gYWxsb3cgcm91bmRpbmcgbGF0ZXIgKi8KKyNkZWZpbmUgRklYRURfUExMX1NJWkUgKCgxIDw8IDI0KSAqIDEwKQorCitzdGF0aWMgdm9pZCBwbGxfZmFjdG9ycyh1bnNpZ25lZCBpbnQgdGFyZ2V0LCB1bnNpZ25lZCBpbnQgc291cmNlKQoreworCXVuc2lnbmVkIGxvbmcgbG9uZyBLcGFydDsKKwl1bnNpZ25lZCBpbnQgSywgTmRpdiwgTm1vZDsKKworCU5kaXYgPSB0YXJnZXQgLyBzb3VyY2U7CisJaWYgKE5kaXYgPCA2KSB7CisJCXNvdXJjZSA+Pj0gMTsKKwkJcGxsX2Rpdi5wcmVfZGl2ID0gMTsKKwkJTmRpdiA9IHRhcmdldCAvIHNvdXJjZTsKKwl9IGVsc2UKKwkJcGxsX2Rpdi5wcmVfZGl2ID0gMDsKKworCWlmICgoTmRpdiA8IDYpIHx8IChOZGl2ID4gMTIpKQorCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiV004NTEwIE4gdmFsdWUgJWQgb3V0d2l0aCByZWNvbW1lbmRlZCByYW5nZSFkXG4iLAorCQkJTmRpdik7CisKKwlwbGxfZGl2Lm4gPSBOZGl2OworCU5tb2QgPSB0YXJnZXQgJSBzb3VyY2U7CisJS3BhcnQgPSBGSVhFRF9QTExfU0laRSAqIChsb25nIGxvbmcpTm1vZDsKKworCWRvX2RpdihLcGFydCwgc291cmNlKTsKKworCUsgPSBLcGFydCAmIDB4RkZGRkZGRkY7CisKKwkvKiBDaGVjayBpZiB3ZSBuZWVkIHRvIHJvdW5kICovCisJaWYgKChLICUgMTApID49IDUpCisJCUsgKz0gNTsKKworCS8qIE1vdmUgZG93biB0byBwcm9wZXIgcmFuZ2Ugbm93IHJvdW5kaW5nIGlzIGRvbmUgKi8KKwlLIC89IDEwOworCisJcGxsX2Rpdi5rID0gSzsKK30KKworc3RhdGljIGludCB3bTg1MTBfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgcmVnOworCisJaWYgKGZyZXFfaW4gPT0gMCB8fCBmcmVxX291dCA9PSAwKSB7CisJCS8qIENsb2NrIENPREVDIGRpcmVjdGx5IGZyb20gTUNMSyAqLworCQlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9DTE9DSyk7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCByZWcgJiAweDBmZik7CisKKwkJLyogVHVybiBvZmYgUExMICovCisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX1BPV0VSMSk7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMSwgcmVnICYgMHgxZGYpOworCQlyZXR1cm4gMDsKKwl9CisKKwlwbGxfZmFjdG9ycyhmcmVxX291dCo4LCBmcmVxX2luKTsKKworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BMTE4sIChwbGxfZGl2LnByZV9kaXYgPDwgNCkgfCBwbGxfZGl2Lm4pOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BMTEsxLCBwbGxfZGl2LmsgPj4gMTgpOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BMTEsyLCAocGxsX2Rpdi5rID4+IDkpICYgMHgxZmYpOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BMTEszLCBwbGxfZGl2LmsgJiAweDFmZik7CisJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfUE9XRVIxKTsKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjEsIHJlZyB8IDB4MDIwKTsKKworCS8qIFJ1biBDT0RFQyBmcm9tIFBMTCBpbnN0ZWFkIG9mIE1DTEsgKi8KKwlyZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9DTE9DSyk7CisJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQ0xPQ0ssIHJlZyB8IDB4MTAwKTsKKworCXJldHVybiAwOworfQorCisvKgorICogQ29uZmlndXJlIFdNODUxMCBjbG9jayBkaXZpZGVycy4KKyAqLworc3RhdGljIGludCB3bTg1MTBfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCWludCBkaXZfaWQsIGludCBkaXYpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgcmVnOworCisJc3dpdGNoIChkaXZfaWQpIHsKKwljYXNlIFdNODUxMF9PUENMS0RJVjoKKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfR1BJTykgJiAweDFjZjsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfR1BJTywgcmVnIHwgZGl2KTsKKwkJYnJlYWs7CisJY2FzZSBXTTg1MTBfTUNMS0RJVjoKKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spICYgMHgxZjsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfQ0xPQ0ssIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004NTEwX0FEQ0NMSzoKKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQURDKSAmIDB4MWY3OworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9BREMsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004NTEwX0RBQ0NMSzoKKwkJcmVnID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfREFDKSAmIDB4MWY3OworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9EQUMsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004NTEwX0JDTEtESVY6CisJCXJlZyA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0NMT0NLKSAmIDB4MWUzOworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9DTE9DSywgcmVnIHwgZGl2KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgd204NTEwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQl1bnNpZ25lZCBpbnQgZm10KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CisJdTE2IGlmYWNlID0gMDsKKwl1MTYgY2xrID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfQ0xPQ0spICYgMHgxZmU7CisKKwkvKiBzZXQgbWFzdGVyL3NsYXZlIGF1ZGlvIGludGVyZmFjZSAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVSX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06CisJCWNsayB8PSAweDAwMDE7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzoKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogaW50ZXJmYWNlIGZvcm1hdCAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX0kyUzoKKwkJaWZhY2UgfD0gMHgwMDEwOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX1JJR0hUX0o6CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfTEVGVF9KOgorCQlpZmFjZSB8PSAweDAwMDg7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfRFNQX0E6CisJCWlmYWNlIHw9IDB4MDAwMTg7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCS8qIGNsb2NrIGludmVyc2lvbiAqLworCXN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfSU5WX01BU0spIHsKKwljYXNlIFNORF9TT0NfREFJRk1UX05CX05GOgorCQlicmVhazsKKwljYXNlIFNORF9TT0NfREFJRk1UX0lCX0lGOgorCQlpZmFjZSB8PSAweDAxODA7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfSUJfTkY6CisJCWlmYWNlIHw9IDB4MDEwMDsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9OQl9JRjoKKwkJaWZhY2UgfD0gMHgwMDgwOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9JRkFDRSwgaWZhY2UpOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0NMT0NLLCBjbGspOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdtODUxMF9wY21faHdfcGFyYW1zKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtLAorCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQoreworCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJdTE2IGlmYWNlID0gd204NTEwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg1MTBfSUZBQ0UpICYgMHgxOWY7CisJdTE2IGFkbiA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NTEwX0FERCkgJiAweDFmMTsKKworCS8qIGJpdCBzaXplICovCisJc3dpdGNoIChwYXJhbXNfZm9ybWF0KHBhcmFtcykpIHsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzE2X0xFOgorCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzIwXzNMRToKKwkJaWZhY2UgfD0gMHgwMDIwOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9GT1JNQVRfUzI0X0xFOgorCQlpZmFjZSB8PSAweDAwNDA7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMzJfTEU6CisJCWlmYWNlIHw9IDB4MDA2MDsKKwkJYnJlYWs7CisJfQorCisJLyogZmlsdGVyIGNvZWZmaWNpZW50ICovCisJc3dpdGNoIChwYXJhbXNfcmF0ZShwYXJhbXMpKSB7CisJY2FzZSBTTkRSVl9QQ01fUkFURV84MDAwOgorCQlhZG4gfD0gMHg1IDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfMTEwMjU6CisJCWFkbiB8PSAweDQgPDwgMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fUkFURV8xNjAwMDoKKwkJYWRuIHw9IDB4MyA8PCAxOworCQlicmVhazsKKwljYXNlIFNORFJWX1BDTV9SQVRFXzIyMDUwOgorCQlhZG4gfD0gMHgyIDw8IDE7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX1JBVEVfMzIwMDA6CisJCWFkbiB8PSAweDEgPDwgMTsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fUkFURV80NDEwMDoKKwljYXNlIFNORFJWX1BDTV9SQVRFXzQ4MDAwOgorCQlicmVhazsKKwl9CisKKwl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9JRkFDRSwgaWZhY2UpOworCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0FERCwgYWRuKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg1MTBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKKwl1MTYgbXV0ZV9yZWcgPSB3bTg1MTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODUxMF9EQUMpICYgMHhmZmJmOworCisJaWYgKG11dGUpCisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0RBQywgbXV0ZV9yZWcgfCAweDQwKTsKKwllbHNlCisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX0RBQywgbXV0ZV9yZWcpOworCXJldHVybiAwOworfQorCisvKiBsaWFtIG5lZWQgdG8gbWFrZSB0aGlzIGxvd2VyIHBvd2VyIHdpdGggZGFwbSAqLworc3RhdGljIGludCB3bTg1MTBfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQoreworCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgorCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjEsIDB4MWZmKTsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIyLCAweDFmZik7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMywgMHgxZmYpOworCQlicmVhazsKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgorCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJLyogZXZlcnl0aGluZyBvZmYsIGRhYyBtdXRlLCBpbmFjdGl2ZSAqLworCQl3bTg1MTBfd3JpdGUoY29kZWMsIFdNODUxMF9QT1dFUjEsIDB4MCk7CisJCXdtODUxMF93cml0ZShjb2RlYywgV004NTEwX1BPV0VSMiwgMHgwKTsKKwkJd204NTEwX3dyaXRlKGNvZGVjLCBXTTg1MTBfUE9XRVIzLCAweDApOworCQlicmVhazsKKwl9CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBXTTg1MTBfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAorCQlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHxcCisJCVNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgU05EUlZfUENNX1JBVEVfNDgwMDApCisKKyNkZWZpbmUgV004NTEwX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCisJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSkKKworc3RydWN0IHNuZF9zb2NfZGFpIHdtODUxMF9kYWkgPSB7CisJLm5hbWUgPSAiV004NTEwIEhpRmkiLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDIsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg1MTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004NTEwX0ZPUk1BVFMsfSwKKwkuY2FwdHVyZSA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIkNhcHR1cmUiLAorCQkuY2hhbm5lbHNfbWluID0gMiwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFdNODUxMF9SQVRFUywKKwkJLmZvcm1hdHMgPSBXTTg1MTBfRk9STUFUUyx9LAorCS5vcHMgPSB7CisJCS5od19wYXJhbXMgPSB3bTg1MTBfcGNtX2h3X3BhcmFtcywKKwl9LAorCS5kYWlfb3BzID0geworCQkuZGlnaXRhbF9tdXRlID0gd204NTEwX211dGUsCisJCS5zZXRfZm10ID0gd204NTEwX3NldF9kYWlfZm10LAorCQkuc2V0X2Nsa2RpdiA9IHdtODUxMF9zZXRfZGFpX2Nsa2RpdiwKKwkJLnNldF9wbGwgPSB3bTg1MTBfc2V0X2RhaV9wbGwsCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTCh3bTg1MTBfZGFpKTsKKworc3RhdGljIGludCB3bTg1MTBfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCisJd204NTEwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg1MTBfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCBpOworCXU4IGRhdGFbMl07CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisKKwkvKiBTeW5jIHJlZ19jYWNoZSB3aXRoIHRoZSBoYXJkd2FyZSAqLworCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODUxMF9yZWcpOyBpKyspIHsKKwkJZGF0YVswXSA9IChpIDw8IDEpIHwgKChjYWNoZVtpXSA+PiA4KSAmIDB4MDAwMSk7CisJCWRhdGFbMV0gPSBjYWNoZVtpXSAmIDB4MDBmZjsKKwkJY29kZWMtPmh3X3dyaXRlKGNvZGVjLT5jb250cm9sX2RhdGEsIGRhdGEsIDIpOworCX0KKwl3bTg1MTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwl3bTg1MTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOworCXJldHVybiAwOworfQorCisvKgorICogaW5pdGlhbGlzZSB0aGUgV004NTEwIGRyaXZlcgorICogcmVnaXN0ZXIgdGhlIG1peGVyIGFuZCBkc3AgaW50ZXJmYWNlcyB3aXRoIHRoZSBrZXJuZWwKKyAqLworc3RhdGljIGludCB3bTg1MTBfaW5pdChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiV004NTEwIjsKKwljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwljb2RlYy0+cmVhZCA9IHdtODUxMF9yZWFkX3JlZ19jYWNoZTsKKwljb2RlYy0+d3JpdGUgPSB3bTg1MTBfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd204NTEwX3NldF9iaWFzX2xldmVsOworCWNvZGVjLT5kYWkgPSAmd204NTEwX2RhaTsKKwljb2RlYy0+bnVtX2RhaSA9IDE7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg1MTBfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg1MTBfcmVnLCBzaXplb2Yod204NTEwX3JlZyksIEdGUF9LRVJORUwpOworCisJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl3bTg1MTBfcmVzZXQoY29kZWMpOworCisJLyogcmVnaXN0ZXIgcGNtcyAqLworCXJldCA9IHNuZF9zb2NfbmV3X3BjbXMoc29jZGV2LCBTTkRSVl9ERUZBVUxUX0lEWDEsIFNORFJWX0RFRkFVTFRfU1RSMSk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ3bTg1MTA6IGZhaWxlZCB0byBjcmVhdGUgcGNtc1xuIik7CisJCWdvdG8gcGNtX2VycjsKKwl9CisKKwkvKiBwb3dlciBvbiBkZXZpY2UgKi8KKwl3bTg1MTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwl3bTg1MTBfYWRkX2NvbnRyb2xzKGNvZGVjKTsKKwl3bTg1MTBfYWRkX3dpZGdldHMoY29kZWMpOworCXJldCA9IHNuZF9zb2NfcmVnaXN0ZXJfY2FyZChzb2NkZXYpOworCWlmIChyZXQgPCAwKSB7CisJCXByaW50ayhLRVJOX0VSUiAid204NTEwOiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2FyZFxuIik7CisJCWdvdG8gY2FyZF9lcnI7CisJfQorCXJldHVybiByZXQ7CisKK2NhcmRfZXJyOgorCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CisJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKK3BjbV9lcnI6CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSAqd204NTEwX3NvY2RldjsKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKworLyoKKyAqIFdNODUxMCAyIHdpcmUgYWRkcmVzcyBpcyAweDFhCisgKi8KKyNkZWZpbmUgSTJDX0RSSVZFUklEX1dNODUxMCAweGZlZmUgLyogbGlhbSAtICBuZWVkIGEgcHJvcGVyIGlkICovCisKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7IDAsIEkyQ19DTElFTlRfRU5EIH07CisKKy8qIE1hZ2ljIGRlZmluaXRpb24gb2YgYWxsIG90aGVyIHZhcmlhYmxlcyBhbmQgdGhpbmdzICovCitJMkNfQ0xJRU5UX0lOU01PRDsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHdtODUxMF9pMmNfZHJpdmVyOworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0ZTsKKworLyogSWYgdGhlIGkyYyBsYXllciB3ZXJlbid0IHNvIGJyb2tlbiwgd2UgY291bGQgcGFzcyB0aGlzIGtpbmQgb2YgZGF0YQorICAgYXJvdW5kICovCisKK3N0YXRpYyBpbnQgd204NTEwX2NvZGVjX3Byb2JlKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCwgaW50IGFkZHIsIGludCBraW5kKQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gd204NTEwX3NvY2RldjsKKwlzdHJ1Y3Qgd204NTEwX3NldHVwX2RhdGEgKnNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IGkyY19jbGllbnQgKmkyYzsKKwlpbnQgcmV0OworCisJaWYgKGFkZHIgIT0gc2V0dXAtPmkyY19hZGRyZXNzKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWNsaWVudF90ZW1wbGF0ZS5hZGFwdGVyID0gYWRhcDsKKwljbGllbnRfdGVtcGxhdGUuYWRkciA9IGFkZHI7CisKKwlpMmMgPSBrbWVtZHVwKCZjbGllbnRfdGVtcGxhdGUsIHNpemVvZihjbGllbnRfdGVtcGxhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoaTJjID09IE5VTEwpIHsKKwkJa2ZyZWUoY29kZWMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJaTJjX3NldF9jbGllbnRkYXRhKGkyYywgY29kZWMpOworCWNvZGVjLT5jb250cm9sX2RhdGEgPSBpMmM7CisKKwlyZXQgPSBpMmNfYXR0YWNoX2NsaWVudChpMmMpOworCWlmIChyZXQgPCAwKSB7CisJCXByX2VycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKKwkJZ290byBlcnI7CisJfQorCisJcmV0ID0gd204NTEwX2luaXQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODUxMFxuIik7CisJCWdvdG8gZXJyOworCX0KKwlyZXR1cm4gcmV0OworCitlcnI6CisJa2ZyZWUoY29kZWMpOworCWtmcmVlKGkyYyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB3bTg1MTBfaTJjX2RldGFjaChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCWkyY19kZXRhY2hfY2xpZW50KGNsaWVudCk7CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJa2ZyZWUoY2xpZW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg1MTBfaTJjX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCit7CisJcmV0dXJuIGkyY19wcm9iZShhZGFwLCAmYWRkcl9kYXRhLCB3bTg1MTBfY29kZWNfcHJvYmUpOworfQorCisvKiBjb3JnaSBpMmMgY29kZWMgY29udHJvbCBsYXllciAqLworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHdtODUxMF9pMmNfZHJpdmVyID0geworCS5kcml2ZXIgPSB7CisJCS5uYW1lID0gIldNODUxMCBJMkMgQ29kZWMiLAorCQkub3duZXIgPSBUSElTX01PRFVMRSwKKwl9LAorCS5pZCA9ICAgICAgICAgICAgIEkyQ19EUklWRVJJRF9XTTg1MTAsCisJLmF0dGFjaF9hZGFwdGVyID0gd204NTEwX2kyY19hdHRhY2gsCisJLmRldGFjaF9jbGllbnQgPSAgd204NTEwX2kyY19kZXRhY2gsCisJLmNvbW1hbmQgPSAgICAgICAgTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGUgPSB7CisJLm5hbWUgPSAgICJXTTg1MTAiLAorCS5kcml2ZXIgPSAmd204NTEwX2kyY19kcml2ZXIsCit9OworI2VuZGlmCisKK3N0YXRpYyBpbnQgd204NTEwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgd204NTEwX3NldHVwX2RhdGEgKnNldHVwOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKKwlpbnQgcmV0ID0gMDsKKworCXByX2luZm8oIldNODUxMCBBdWRpbyBDb2RlYyAlcyIsIFdNODUxMF9WRVJTSU9OKTsKKworCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOworCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKKwlpZiAoY29kZWMgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzb2NkZXYtPmNvZGVjID0gY29kZWM7CisJbXV0ZXhfaW5pdCgmY29kZWMtPm11dGV4KTsKKwlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fd2lkZ2V0cyk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3BhdGhzKTsKKworCXdtODUxMF9zb2NkZXYgPSBzb2NkZXY7CisjaWYgZGVmaW5lZChDT05GSUdfSTJDKSB8fCBkZWZpbmVkKENPTkZJR19JMkNfTU9EVUxFKQorCWlmIChzZXR1cC0+aTJjX2FkZHJlc3MpIHsKKwkJbm9ybWFsX2kyY1swXSA9IHNldHVwLT5pMmNfYWRkcmVzczsKKwkJY29kZWMtPmh3X3dyaXRlID0gKGh3X3dyaXRlX3QpaTJjX21hc3Rlcl9zZW5kOworCQlyZXQgPSBpMmNfYWRkX2RyaXZlcigmd204NTEwX2kyY19kcml2ZXIpOworCQlpZiAocmV0ICE9IDApCisJCQlwcmludGsoS0VSTl9FUlIgImNhbid0IGFkZCBpMmMgZHJpdmVyIik7CisJfQorI2Vsc2UKKwkvKiBBZGQgb3RoZXIgaW50ZXJmYWNlcyBoZXJlICovCisjZW5kaWYKKwlyZXR1cm4gcmV0OworfQorCisvKiBwb3dlciBkb3duIGNoaXAgKi8KK3N0YXRpYyBpbnQgd204NTEwX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKworCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQorCQl3bTg1MTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOworCisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpMmNfZGVsX2RyaXZlcigmd204NTEwX2kyY19kcml2ZXIpOworI2VuZGlmCisJa2ZyZWUoY29kZWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODUxMCA9IHsKKwkucHJvYmUgPSAJd204NTEwX3Byb2JlLAorCS5yZW1vdmUgPSAJd204NTEwX3JlbW92ZSwKKwkuc3VzcGVuZCA9IAl3bTg1MTBfc3VzcGVuZCwKKwkucmVzdW1lID0Jd204NTEwX3Jlc3VtZSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X3dtODUxMCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiQVNvQyBXTTg1MTAgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJMaWFtIEdpcmR3b29kIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODUxMC5oIGIvc291bmQvc29jL2NvZGVjcy93bTg1MTAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWQyZTQyCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg1MTAuaApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIHdtODUxMC5oICAtLSAgV004NTEwIFNvYyBBdWRpbyBkcml2ZXIKKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICovCisKKyNpZm5kZWYgX1dNODUxMF9ICisjZGVmaW5lIF9XTTg1MTBfSAorCisvKiBXTTg1MTAgcmVnaXN0ZXIgc3BhY2UgKi8KKworI2RlZmluZSBXTTg1MTBfUkVTRVQJCTB4MAorI2RlZmluZSBXTTg1MTBfUE9XRVIxCQkweDEKKyNkZWZpbmUgV004NTEwX1BPV0VSMgkJMHgyCisjZGVmaW5lIFdNODUxMF9QT1dFUjMJCTB4MworI2RlZmluZSBXTTg1MTBfSUZBQ0UJCTB4NAorI2RlZmluZSBXTTg1MTBfQ09NUAkJCTB4NQorI2RlZmluZSBXTTg1MTBfQ0xPQ0sJCTB4NgorI2RlZmluZSBXTTg1MTBfQURECQkJMHg3CisjZGVmaW5lIFdNODUxMF9HUElPCQkJMHg4CisjZGVmaW5lIFdNODUxMF9EQUMJCQkweGEKKyNkZWZpbmUgV004NTEwX0RBQ1ZPTAkJMHhiCisjZGVmaW5lIFdNODUxMF9BREMJCQkweGUKKyNkZWZpbmUgV004NTEwX0FEQ1ZPTAkJMHhmCisjZGVmaW5lIFdNODUxMF9FUTEJCQkweDEyCisjZGVmaW5lIFdNODUxMF9FUTIJCQkweDEzCisjZGVmaW5lIFdNODUxMF9FUTMJCQkweDE0CisjZGVmaW5lIFdNODUxMF9FUTQJCQkweDE1CisjZGVmaW5lIFdNODUxMF9FUTUJCQkweDE2CisjZGVmaW5lIFdNODUxMF9EQUNMSU0xCQkweDE4CisjZGVmaW5lIFdNODUxMF9EQUNMSU0yCQkweDE5CisjZGVmaW5lIFdNODUxMF9OT1RDSDEJCTB4MWIKKyNkZWZpbmUgV004NTEwX05PVENIMgkJMHgxYworI2RlZmluZSBXTTg1MTBfTk9UQ0gzCQkweDFkCisjZGVmaW5lIFdNODUxMF9OT1RDSDQJCTB4MWUKKyNkZWZpbmUgV004NTEwX0FMQzEJCQkweDIwCisjZGVmaW5lIFdNODUxMF9BTEMyCQkJMHgyMQorI2RlZmluZSBXTTg1MTBfQUxDMwkJCTB4MjIKKyNkZWZpbmUgV004NTEwX05HQVRFCQkweDIzCisjZGVmaW5lIFdNODUxMF9QTExOCQkJMHgyNAorI2RlZmluZSBXTTg1MTBfUExMSzEJCTB4MjUKKyNkZWZpbmUgV004NTEwX1BMTEsyCQkweDI2CisjZGVmaW5lIFdNODUxMF9QTExLMwkJMHgyNworI2RlZmluZSBXTTg1MTBfQVRURU4JCTB4MjgKKyNkZWZpbmUgV004NTEwX0lOUFVUCQkweDJjCisjZGVmaW5lIFdNODUxMF9JTlBQR0EJCTB4MmQKKyNkZWZpbmUgV004NTEwX0FEQ0JPT1NUCQkweDJmCisjZGVmaW5lIFdNODUxMF9PVVRQVVQJCTB4MzEKKyNkZWZpbmUgV004NTEwX1NQS01JWAkJMHgzMgorI2RlZmluZSBXTTg1MTBfU1BLVk9MCQkweDM2CisjZGVmaW5lIFdNODUxMF9NT05PTUlYCQkweDM4CisKKyNkZWZpbmUgV004NTEwX0NBQ0hFUkVHTlVNIAk1NworCisvKiBDbG9jayBkaXZpZGVyIElkJ3MgKi8KKyNkZWZpbmUgV004NTEwX09QQ0xLRElWCQkwCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWCQkxCisjZGVmaW5lIFdNODUxMF9BRENDTEsJCTIKKyNkZWZpbmUgV004NTEwX0RBQ0NMSwkJMworI2RlZmluZSBXTTg1MTBfQkNMS0RJVgkJNAorCisvKiBEQUMgY2xvY2sgZGl2aWRlcnMgKi8KKyNkZWZpbmUgV004NTEwX0RBQ0NMS19GMgkoMSA8PCAzKQorI2RlZmluZSBXTTg1MTBfREFDQ0xLX0Y0CSgwIDw8IDMpCisKKy8qIEFEQyBjbG9jayBkaXZpZGVycyAqLworI2RlZmluZSBXTTg1MTBfQURDQ0xLX0YyCSgxIDw8IDMpCisjZGVmaW5lIFdNODUxMF9BRENDTEtfRjQJKDAgPDwgMykKKworLyogUExMIE91dCBkaXZpZGVycyAqLworI2RlZmluZSBXTTg1MTBfT1BDTEtESVZfMQkoMCA8PCA0KQorI2RlZmluZSBXTTg1MTBfT1BDTEtESVZfMgkoMSA8PCA0KQorI2RlZmluZSBXTTg1MTBfT1BDTEtESVZfMwkoMiA8PCA0KQorI2RlZmluZSBXTTg1MTBfT1BDTEtESVZfNAkoMyA8PCA0KQorCisvKiBCQ0xLIGNsb2NrIGRpdmlkZXJzICovCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzEJKDAgPDwgMikKKyNkZWZpbmUgV004NTEwX0JDTEtESVZfMgkoMSA8PCAyKQorI2RlZmluZSBXTTg1MTBfQkNMS0RJVl80CSgyIDw8IDIpCisjZGVmaW5lIFdNODUxMF9CQ0xLRElWXzgJKDMgPDwgMikKKyNkZWZpbmUgV004NTEwX0JDTEtESVZfMTYJKDQgPDwgMikKKyNkZWZpbmUgV004NTEwX0JDTEtESVZfMzIJKDUgPDwgMikKKworLyogTUNMSyBjbG9jayBkaXZpZGVycyAqLworI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8xCSgwIDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzFfNQkoMSA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl8yCSgyIDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzMJKDMgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfNAkoNCA8PCA1KQorI2RlZmluZSBXTTg1MTBfTUNMS0RJVl82CSg1IDw8IDUpCisjZGVmaW5lIFdNODUxMF9NQ0xLRElWXzgJKDYgPDwgNSkKKyNkZWZpbmUgV004NTEwX01DTEtESVZfMTIJKDcgPDwgNSkKKworc3RydWN0IHdtODUxMF9zZXR1cF9kYXRhIHsKKwl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKK307CisKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NTEwX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg1MTA7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmMKaW5kZXggMGNmOTI2NS4uMzY5ZDM5YyAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3MzEuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5jCkBAIC0zMSwyNSArMzEsNiBAQAogI2RlZmluZSBBVURJT19OQU1FICJ3bTg3MzEiCiAjZGVmaW5lIFdNODczMV9WRVJTSU9OICIwLjEzIgogCi0vKgotICogRGVidWcKLSAqLwotCi0jZGVmaW5lIFdNODczMV9ERUJVRyAwCi0KLSNpZmRlZiBXTTg3MzFfREVCVUcKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2Vsc2UKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBkbyB7fSB3aGlsZSAoMCkKLSNlbmRpZgotI2RlZmluZSBlcnIoZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9FUlIgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fSU5GTyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZGVmaW5lIHdhcm4oZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLQogc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204NzMxOwogCiAvKiBjb2RlYyBwcml2YXRlIGRhdGEgKi8KQEAgLTE5Myw3ICsxNzQsNyBAQAogU05EX1NPQ19EQVBNX0lOUFVUKCJMTElORUlOIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqaW50ZXJjb25bXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGludGVyY29uW10gPSB7CiAJLyogb3V0cHV0IG1peGVyICovCiAJeyJPdXRwdXQgTWl4ZXIiLCAiTGluZSBCeXBhc3MgU3dpdGNoIiwgIkxpbmUgSW5wdXQifSwKIAl7Ik91dHB1dCBNaXhlciIsICJIaUZpIFBsYXliYWNrIFN3aXRjaCIsICJEQUMifSwKQEAgLTIxNCwyMiArMTk1LDE0IEBACiAJeyJMaW5lIElucHV0IiwgTlVMTCwgIkxMSU5FSU4ifSwKIAl7IkxpbmUgSW5wdXQiLCBOVUxMLCAiUkxJTkVJTiJ9LAogCXsiTWljIEJpYXMiLCBOVUxMLCAiTUlDSU4ifSwKLQotCS8qIHRlcm1pbmF0b3IgKi8KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgaW50IHdtODczMV9hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzMxX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cykpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzMxX2RhcG1fd2lkZ2V0c1tpXSk7Ci0KLQkvKiBzZXQgdXAgYXVkaW8gcGF0aCBpbnRlcmNvbm5lY3RzICovCi0JZm9yIChpID0gMDsgaW50ZXJjb25baV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgaW50ZXJjb25baV1bMF0sCi0JCQlpbnRlcmNvbltpXVsxXSwgaW50ZXJjb25baV1bMl0pOworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBpbnRlcmNvbiwgQVJSQVlfU0laRShpbnRlcmNvbikpOwogCiAJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKIAlyZXR1cm4gMDsKQEAgLTM0NSw3ICszMTgsNyBAQAogCX0KIH0KIAotc3RhdGljIGludCB3bTg3MzFfbXV0ZShzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgaW50IG11dGUpCitzdGF0aWMgaW50IHdtODczMV9tdXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgbXV0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBkYWktPmNvZGVjOwogCXUxNiBtdXRlX3JlZyA9IHdtODczMV9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004NzMxX0FQRElHSSkgJiAweGZmZjc7CkBAIC0zNTcsNyArMzMwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTg3MzFfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODczMV9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTM3Niw3ICszNDksNyBAQAogfQogCiAKLXN0YXRpYyBpbnQgd204NzMxX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3MzFfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTQzNSwyOSArNDA4LDI5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzMxX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtODczMV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXUxNiByZWcgPSB3bTg3MzFfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODczMV9QV1IpICYgMHhmZjdmOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOiAvKiBmdWxsIE9uICovCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgogCQkvKiB2cmVmL21pZCwgb3NjIG9uLCBkYWMgdW5tdXRlICovCiAJCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX1BXUiwgcmVnKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6IC8qIHBhcnRpYWwgT24gKi8KLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjogLyogcGFydGlhbCBPbiAqLworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzaG90OiAvKiBPZmYsIHdpdGggcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgogCQkvKiBldmVyeXRoaW5nIG9mZiBleGNlcHQgdnJlZi92bWlkLCAqLwogCQl3bTg3MzFfd3JpdGUoY29kZWMsIFdNODczMV9QV1IsIHJlZyB8IDB4MDA0MCk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDogLyogT2ZmLCB3aXRob3V0IHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQkvKiBldmVyeXRoaW5nIG9mZiwgZGFjIG11dGUsIGluYWN0aXZlICovCiAJCXdtODczMV93cml0ZShjb2RlYywgV004NzMxX0FDVElWRSwgMHgwKTsKIAkJd204NzMxX3dyaXRlKGNvZGVjLCBXTTg3MzFfUFdSLCAweGZmZmYpOwogCQlicmVhazsKIAl9Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBldmVudDsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IGxldmVsOwogCXJldHVybiAwOwogfQogCkBAIC00NzAsNyArNDQzLDcgQEAKICNkZWZpbmUgV004NzMxX0ZPUk1BVFMgKFNORFJWX1BDTV9GTVRCSVRfUzE2X0xFIHwgU05EUlZfUENNX0ZNVEJJVF9TMjBfM0xFIHxcCiAJU05EUlZfUENNX0ZNVEJJVF9TMjRfTEUpCiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3MzFfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHdtODczMV9kYWkgPSB7CiAJLm5hbWUgPSAiV004NzMxIiwKIAkucGxheWJhY2sgPSB7CiAJCS5zdHJlYW1fbmFtZSA9ICJQbGF5YmFjayIsCkBAIC01MDMsNyArNDc2LDcgQEAKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCiAJd204NzMxX3dyaXRlKGNvZGVjLCBXTTg3MzFfQUNUSVZFLCAweDApOwotCXdtODczMV9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJldHVybiAwOwogfQogCkBAIC01MjEsOCArNDk0LDggQEAKIAkJZGF0YVsxXSA9IGNhY2hlW2ldICYgMHgwMGZmOwogCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CiAJfQotCXdtODczMV9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOwotCXdtODczMV9kYXBtX2V2ZW50KGNvZGVjLCBjb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlKTsKKwl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwpOwogCXJldHVybiAwOwogfQogCkBAIC01MzksMTAgKzUxMiwxMCBAQAogCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOwogCWNvZGVjLT5yZWFkID0gd204NzMxX3JlYWRfcmVnX2NhY2hlOwogCWNvZGVjLT53cml0ZSA9IHdtODczMV93cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtODczMV9kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODczMV9zZXRfYmlhc19sZXZlbDsKIAljb2RlYy0+ZGFpID0gJndtODczMV9kYWk7CiAJY29kZWMtPm51bV9kYWkgPSAxOwotCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IHNpemVvZih3bTg3MzFfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBBUlJBWV9TSVpFKHdtODczMV9yZWcpOwogCWNvZGVjLT5yZWdfY2FjaGUgPSBrbWVtZHVwKHdtODczMV9yZWcsIHNpemVvZih3bTg3MzFfcmVnKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC01NTcsNyArNTMwLDcgQEAKIAl9CiAKIAkvKiBwb3dlciBvbiBkZXZpY2UgKi8KLQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTg3MzFfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAogCS8qIHNldCB0aGUgdXBkYXRlIGJpdHMgKi8KIAlyZWcgPSB3bTg3MzFfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODczMV9MT1VUMVYpOwpAQCAtNjMyLDEzICs2MDUsMTMgQEAKIAogCXJldCA9IGkyY19hdHRhY2hfY2xpZW50KGkyYyk7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gYXR0YWNoIGNvZGVjIGF0IGFkZHIgJXhcbiIsIGFkZHIpOworCQlwcl9lcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CiAJCWdvdG8gZXJyOwogCX0KIAogCXJldCA9IHdtODczMV9pbml0KHNvY2Rldik7CiAJaWYgKHJldCA8IDApIHsKLQkJZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3MzFcbiIpOworCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODczMVxuIik7CiAJCWdvdG8gZXJyOwogCX0KIAlyZXR1cm4gcmV0OwpAQCAtNjg5LDcgKzY2Miw3IEBACiAJc3RydWN0IHdtODczMV9wcml2ICp3bTg3MzE7CiAJaW50IHJldCA9IDA7CiAKLQlpbmZvKCJXTTg3MzEgQXVkaW8gQ29kZWMgJXMiLCBXTTg3MzFfVkVSU0lPTik7CisJcHJfaW5mbygiV004NzMxIEF1ZGlvIENvZGVjICVzIiwgV004NzMxX1ZFUlNJT04pOwogCiAJc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CiAJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOwpAQCAtNzMwLDcgKzcwMyw3IEBACiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAogCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQotCQl3bTg3MzFfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJCXdtODczMV9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAKIAlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOwogCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5oIGIvc291bmQvc29jL2NvZGVjcy93bTg3MzEuaAppbmRleCA1YmNhYjZhLi45OWYyZTNjIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODczMS5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzMxLmgKQEAgLTM4LDcgKzM4LDcgQEAKIAl1bnNpZ25lZCBzaG9ydCBpMmNfYWRkcmVzczsKIH07CiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd204NzMxX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzMxX2RhaTsKIGV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2Ugc29jX2NvZGVjX2Rldl93bTg3MzE7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3NTAuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmMKaW5kZXggMTZjZDVkNC4uZTIzY2IwOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3NTAuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5jCkBAIC0zMSwyNSArMzEsNiBAQAogI2RlZmluZSBBVURJT19OQU1FICJXTTg3NTAiCiAjZGVmaW5lIFdNODc1MF9WRVJTSU9OICIwLjEyIgogCi0vKgotICogRGVidWcKLSAqLwotCi0jZGVmaW5lIFdNODc1MF9ERUJVRyAwCi0KLSNpZmRlZiBXTTg3NTBfREVCVUcKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fREVCVUcgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2Vsc2UKLSNkZWZpbmUgZGJnKGZvcm1hdCwgYXJnLi4uKSBkbyB7fSB3aGlsZSAoMCkKLSNlbmRpZgotI2RlZmluZSBlcnIoZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9FUlIgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotI2RlZmluZSBpbmZvKGZvcm1hdCwgYXJnLi4uKSBcCi0JcHJpbnRrKEtFUk5fSU5GTyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZGVmaW5lIHdhcm4oZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9XQVJOSU5HIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLQogLyogY29kZWMgcHJpdmF0ZSBkYXRhICovCiBzdHJ1Y3Qgd204NzUwX3ByaXYgewogCXVuc2lnbmVkIGludCBzeXNjbGs7CkBAIC0zNzgsNyArMzU5LDcgQEAKIAlTTkRfU09DX0RBUE1fSU5QVVQoIlJJTlBVVDMiKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCS8qIGxlZnQgbWl4ZXIgKi8KIAl7IkxlZnQgTWl4ZXIiLCAiUGxheWJhY2sgU3dpdGNoIiwgIkxlZnQgREFDIn0sCiAJeyJMZWZ0IE1peGVyIiwgIkxlZnQgQnlwYXNzIFN3aXRjaCIsICJMZWZ0IExpbmUgTXV4In0sCkBAIC00NzAsMjIgKzQ1MSwxNCBAQAogCS8qIEFEQyAqLwogCXsiTGVmdCBBREMiLCBOVUxMLCAiTGVmdCBBREMgTXV4In0sCiAJeyJSaWdodCBBREMiLCBOVUxMLCAiUmlnaHQgQURDIE11eCJ9LAotCi0JLyogdGVybWluYXRvciAqLwotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBpbnQgd204NzUwX2FkZF93aWRnZXRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTBfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTBfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTBfZGFwbV93aWRnZXRzW2ldKTsKLQotCS8qIHNldCB1cCBhdWRpbyBwYXRoIGF1ZGlvX21hcG5lY3RzICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOwogCiAJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKIAlyZXR1cm4gMDsKQEAgLTU2Myw3ICs1MzYsNyBAQAogCXJldHVybiAtRUlOVkFMOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUwX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtNTgxLDcgKzU1NCw3IEBACiAJcmV0dXJuIC1FSU5WQUw7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUwX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpLAorc3RhdGljIGludCB3bTg3NTBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTY3NCw3ICs2NDcsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHdtODc1MF9tdXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3N0YXRpYyBpbnQgd204NzUwX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CiAJdTE2IG11dGVfcmVnID0gd204NzUwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3NTBfQURDREFDKSAmIDB4ZmZmNzsKQEAgLTY4NiwyOSArNjU5LDI5IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUwX2RhcG1fZXZlbnQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBpbnQgZXZlbnQpCitzdGF0aWMgaW50IHdtODc1MF9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJCQkJIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQogewogCXUxNiBwd3JfcmVnID0gd204NzUwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3NTBfUFdSMSkgJiAweGZlM2U7CiAKLQlzd2l0Y2ggKGV2ZW50KSB7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDA6IC8qIGZ1bGwgT24gKi8KKwlzd2l0Y2ggKGxldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CiAJCS8qIHNldCB2bWlkIHRvIDUwayBhbmQgdW5tdXRlIGRhYyAqLwogCQl3bTg3NTBfd3JpdGUoY29kZWMsIFdNODc1MF9QV1IxLCBwd3JfcmVnIHwgMHgwMGMwKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6IC8qIHBhcnRpYWwgT24gKi8KLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjogLyogcGFydGlhbCBPbiAqLworCWNhc2UgU05EX1NPQ19CSUFTX1BSRVBBUkU6CiAJCS8qIHNldCB2bWlkIHRvIDVrIGZvciBxdWljayBwb3dlciB1cCAqLwogCQl3bTg3NTBfd3JpdGUoY29kZWMsIFdNODc1MF9QV1IxLCBwd3JfcmVnIHwgMHgwMWMxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6IC8qIE9mZiwgd2l0aCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX1NUQU5EQlk6CiAJCS8qIG11dGUgZGFjIGFuZCBzZXQgdm1pZCB0byA1MDBrLCBlbmFibGUgVlJFRiAqLwogCQl3bTg3NTBfd3JpdGUoY29kZWMsIFdNODc1MF9QV1IxLCBwd3JfcmVnIHwgMHgwMTQxKTsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNjb2xkOiAvKiBPZmYsIHdpdGhvdXQgcG93ZXIgKi8KKwljYXNlIFNORF9TT0NfQklBU19PRkY6CiAJCXdtODc1MF93cml0ZShjb2RlYywgV004NzUwX1BXUjEsIDB4MDAwMSk7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTcxOSw3ICs2OTIsNyBAQAogI2RlZmluZSBXTTg3NTBfRk9STUFUUyAoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyMF8zTEUgfFwKIAlTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtODc1MF9kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgd204NzUwX2RhaSA9IHsKIAkubmFtZSA9ICJXTTg3NTAiLAogCS5wbGF5YmFjayA9IHsKIAkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKQEAgLTc0OCw3ICs3MjEsNyBAQAogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9CiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qgc25kX3NvY19jb2RlYywgZGVsYXllZF93b3JrLndvcmspOwotCXdtODc1MF9kYXBtX2V2ZW50KGNvZGVjLCBjb2RlYy0+ZGFwbV9zdGF0ZSk7CisJd204NzUwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBjb2RlYy0+Ymlhc19sZXZlbCk7CiB9CiAKIHN0YXRpYyBpbnQgd204NzUwX3N1c3BlbmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgcG1fbWVzc2FnZV90IHN0YXRlKQpAQCAtNzU2LDcgKzcyOSw3IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCi0Jd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCXdtODc1MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTc3NywxMiArNzUwLDEyIEBACiAJCWNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAyKTsKIAl9CiAKLQl3bTg3NTBfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAogCS8qIGNoYXJnZSB3bTg3NTAgY2FwcyAqLwotCWlmIChjb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlID09IFNORFJWX0NUTF9QT1dFUl9EMCkgewotCQl3bTg3NTBfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QyKTsKLQkJY29kZWMtPmRhcG1fc3RhdGUgPSBTTkRSVl9DVExfUE9XRVJfRDA7CisJaWYgKGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPT0gU05EX1NPQ19CSUFTX09OKSB7CisJCXdtODc1MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1BSRVBBUkUpOworCQljb2RlYy0+Ymlhc19sZXZlbCA9IFNORF9TT0NfQklBU19PTjsKIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZjb2RlYy0+ZGVsYXllZF93b3JrLAogCQkJCQltc2Vjc190b19qaWZmaWVzKDEwMDApKTsKIAl9CkBAIC04MDMsMTAgKzc3NiwxMCBAQAogCWNvZGVjLT5vd25lciA9IFRISVNfTU9EVUxFOwogCWNvZGVjLT5yZWFkID0gd204NzUwX3JlYWRfcmVnX2NhY2hlOwogCWNvZGVjLT53cml0ZSA9IHdtODc1MF93cml0ZTsKLQljb2RlYy0+ZGFwbV9ldmVudCA9IHdtODc1MF9kYXBtX2V2ZW50OworCWNvZGVjLT5zZXRfYmlhc19sZXZlbCA9IHdtODc1MF9zZXRfYmlhc19sZXZlbDsKIAljb2RlYy0+ZGFpID0gJndtODc1MF9kYWk7CiAJY29kZWMtPm51bV9kYWkgPSAxOwotCWNvZGVjLT5yZWdfY2FjaGVfc2l6ZSA9IHNpemVvZih3bTg3NTBfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBBUlJBWV9TSVpFKHdtODc1MF9yZWcpOwogCWNvZGVjLT5yZWdfY2FjaGUgPSBrbWVtZHVwKHdtODc1MF9yZWcsIHNpemVvZih3bTg3NTBfcmVnKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC04MjEsOCArNzk0LDggQEAKIAl9CiAKIAkvKiBjaGFyZ2Ugb3V0cHV0IGNhcHMgKi8KLQl3bTg3NTBfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QyKTsKLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IFNORFJWX0NUTF9QT1dFUl9EM2hvdDsKKwl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19QUkVQQVJFKTsKKwljb2RlYy0+Ymlhc19sZXZlbCA9IFNORF9TT0NfQklBU19TVEFOREJZOwogCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29kZWMtPmRlbGF5ZWRfd29yaywgbXNlY3NfdG9famlmZmllcygxMDAwKSk7CiAKIAkvKiBzZXQgdGhlIHVwZGF0ZSBiaXRzICovCkBAIC05MDQsMTMgKzg3NywxMyBAQAogCiAJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKIAlpZiAocmV0IDwgMCkgewotCQllcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCXByX2VycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKIAkJZ290byBlcnI7CiAJfQogCiAJcmV0ID0gd204NzUwX2luaXQoc29jZGV2KTsKIAlpZiAocmV0IDwgMCkgewotCWVycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzUwXG4iKTsKKwkJcHJfZXJyKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBXTTg3NTBcbiIpOwogCQlnb3RvIGVycjsKIAl9CiAJcmV0dXJuIHJldDsKQEAgLTk2MSw3ICs5MzQsNyBAQAogCXN0cnVjdCB3bTg3NTBfcHJpdiAqd204NzUwOwogCWludCByZXQgPSAwOwogCi0JaW5mbygiV004NzUwIEF1ZGlvIENvZGVjICVzIiwgV004NzUwX1ZFUlNJT04pOworCXByX2luZm8oIldNODc1MCBBdWRpbyBDb2RlYyAlcyIsIFdNODc1MF9WRVJTSU9OKTsKIAljb2RlYyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NvZGVjKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKGNvZGVjID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMTAyMSw3ICs5OTQsNyBAQAogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAlpZiAoY29kZWMtPmNvbnRyb2xfZGF0YSkKLQkJd204NzUwX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQpOworCQl3bTg3NTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJ1bl9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmspOwogCXNuZF9zb2NfZnJlZV9wY21zKHNvY2Rldik7CiAJc25kX3NvY19kYXBtX2ZyZWUoc29jZGV2KTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmggYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1MC5oCmluZGV4IGE5N2E1NGEuLjhlZjMwZTYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUwLmgKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTAuaApAQCAtNjEsNyArNjEsNyBAQAogCXVuc2lnbmVkIHNob3J0IGkyY19hZGRyZXNzOwogfTsKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTBfZGFpOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTBfZGFpOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODc1MDsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5jIGIvc291bmQvc29jL2NvZGVjcy93bTg3NTMuYwppbmRleCBmYjQxODI2Li44NjA0ODA5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmMKQEAgLTU1LDI1ICs1NSw2IEBACiAjZGVmaW5lIEFVRElPX05BTUUgIndtODc1MyIKICNkZWZpbmUgV004NzUzX1ZFUlNJT04gIjAuMTYiCiAKLS8qCi0gKiBEZWJ1ZwotICovCi0KLSNkZWZpbmUgV004NzUzX0RFQlVHIDAKLQotI2lmZGVmIFdNODc1M19ERUJVRwotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9ERUJVRyBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZWxzZQotI2RlZmluZSBkYmcoZm9ybWF0LCBhcmcuLi4pIGRvIHt9IHdoaWxlICgwKQotI2VuZGlmCi0jZGVmaW5lIGVycihmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX0VSUiBBVURJT19OQU1FICI6ICIgZm9ybWF0ICJcbiIgLCAjIyBhcmcpCi0jZGVmaW5lIGluZm8oZm9ybWF0LCBhcmcuLi4pIFwKLQlwcmludGsoS0VSTl9JTkZPIEFVRElPX05BTUUgIjogIiBmb3JtYXQgIlxuIiAsICMjIGFyZykKLSNkZWZpbmUgd2Fybihmb3JtYXQsIGFyZy4uLikgXAotCXByaW50ayhLRVJOX1dBUk5JTkcgQVVESU9fTkFNRSAiOiAiIGZvcm1hdCAiXG4iICwgIyMgYXJnKQotCiBzdGF0aWMgaW50IGNhcHNfY2hhcmdlID0gMjAwMDsKIG1vZHVsZV9wYXJhbShjYXBzX2NoYXJnZSwgaW50LCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoY2Fwc19jaGFyZ2UsICJXTTg3NTMgY2FwIGNoYXJnZSB0aW1lIChtc2VjcykiKTsKQEAgLTI2MCwyOCArMjQxLDUwIEBACiAJcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIocmVjX21peF90bHYsIC0xNTAwLCA2MDApOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKHJlY19taXhfdGx2LCAtMTUwMCwgMzAwLCAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShtaWNfcHJlYW1wX3RsdiwgMTIwMCwgNjAwLCAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShhZGNfdGx2LCAtOTc1MCwgNTAsIDEpOworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX1NDQUxFKGRhY190bHYsIC0xMjc1MCwgNTAsIDEpOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBvdXRfdGx2W10gPSB7CisJVExWX0RCX1JBTkdFX0hFQUQoMiksCisJLyogMDAwMDAwMCAtIDAxMDExMTEgPSAiQW5hbG9ndWUgbXV0ZSIgKi8KKwkwLCA0OCwgVExWX0RCX1NDQUxFX0lURU0oLTI1NTAwLCAwLCAwKSwKKwk0OCwgMTI3LCBUTFZfREJfU0NBTEVfSVRFTSgtNzMwMCwgMTAwLCAwKSwKK307CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUobWl4X3RsdiwgLTE1MDAsIDMwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUodm9pY2VfbWl4X3RsdiwgLTEyMDAsIDMwMCwgMCk7CitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfU0NBTEUocGdhX3RsdiwgLTE3MjUsIDc1LCAwKTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODc1M19zbmRfY29udHJvbHNbXSA9IHsKLVNPQ19ET1VCTEVfUigiUENNIFZvbHVtZSIsIFdNODc1M19MREFDLCBXTTg3NTNfUkRBQywgMCwgMjU1LCAwKSwKK1NPQ19ET1VCTEVfUl9UTFYoIlBDTSBWb2x1bWUiLCBXTTg3NTNfTERBQywgV004NzUzX1JEQUMsIDAsIDI1NSwgMCwgZGFjX3RsdiksCiAKLVNPQ19ET1VCTEVfUigiQURDIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0xBREMsIFdNODc1M19SQURDLCAwLCAyNTUsIDApLAorU09DX0RPVUJMRV9SX1RMVigiQURDIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0xBREMsIFdNODc1M19SQURDLCAwLCAyNTUsIDAsCisJCSBhZGNfdGx2KSwKIAotU09DX0RPVUJMRV9SKCJIZWFkcGhvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVQxViwgV004NzUzX1JPVVQxViwgMCwgMTI3LCAwKSwKLVNPQ19ET1VCTEVfUigiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVDJWLCBXTTg3NTNfUk9VVDJWLCAwLCAxMjcsIDApLAorU09DX0RPVUJMRV9SX1RMVigiSGVhZHBob25lIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUMVYsIFdNODc1M19ST1VUMVYsCisJCSAwLCAxMjcsIDAsIG91dF90bHYpLAorU09DX0RPVUJMRV9SX1RMVigiU3BlYWtlciBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVDJWLCBXTTg3NTNfUk9VVDJWLCAwLAorCQkgMTI3LCAwLCBvdXRfdGx2KSwKIAotU09DX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVFYsIDAsIDEyNywgMCksCitTT0NfU0lOR0xFX1RMVigiTW9ubyBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVFYsIDAsIDEyNywgMCwgb3V0X3RsdiksCiAKLVNPQ19ET1VCTEVfUigiQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19MT1VUTTEsIFdNODc1M19ST1VUTTEsIDQsIDcsIDEpLAotU09DX0RPVUJMRV9SKCJTaWRldG9uZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTE9VVE0yLCBXTTg3NTNfUk9VVE0yLCA0LCA3LCAxKSwKLVNPQ19ET1VCTEVfUigiVm9pY2UgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMiwgV004NzUzX1JPVVRNMiwgMCwgNywgMSksCitTT0NfRE9VQkxFX1JfVExWKCJCeXBhc3MgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMSwgV004NzUzX1JPVVRNMSwgNCwgNywKKwkJIDEsIG1peF90bHYpLAorU09DX0RPVUJMRV9SX1RMVigiU2lkZXRvbmUgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMiwgV004NzUzX1JPVVRNMiwgNCwKKwkJIDcsIDEsIG1peF90bHYpLAorU09DX0RPVUJMRV9SX1RMVigiVm9pY2UgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX0xPVVRNMiwgV004NzUzX1JPVVRNMiwgMCwgNywKKwkJIDEsIHZvaWNlX21peF90bHYpLAogCi1TT0NfRE9VQkxFX1IoIkhlYWRwaG9uZSBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTE9VVDFWLCBXTTg3NTNfUk9VVDFWLCA3LCAxLCAwKSwKLVNPQ19ET1VCTEVfUigiU3BlYWtlciBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTE9VVDJWLCBXTTg3NTNfUk9VVDJWLCA3LCAxLCAwKSwKK1NPQ19ET1VCTEVfUigiSGVhZHBob25lIFBsYXliYWNrIFpDIFN3aXRjaCIsIFdNODc1M19MT1VUMVYsIFdNODc1M19ST1VUMVYsIDcsCisJICAgICAxLCAwKSwKK1NPQ19ET1VCTEVfUigiU3BlYWtlciBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTE9VVDJWLCBXTTg3NTNfUk9VVDJWLCA3LAorCSAgICAgMSwgMCksCiAKLVNPQ19TSU5HTEUoIk1vbm8gQnlwYXNzIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTEsIDQsIDcsIDEpLAotU09DX1NJTkdMRSgiTW9ubyBTaWRldG9uZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0yLCA0LCA3LCAxKSwKLVNPQ19TSU5HTEUoIk1vbm8gVm9pY2UgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMiwgMCwgNywgMSksCitTT0NfU0lOR0xFX1RMVigiTW9ubyBCeXBhc3MgUGxheWJhY2sgVm9sdW1lIiwgV004NzUzX01PVVRNMSwgNCwgNywgMSwgbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTW9ubyBTaWRldG9uZSBQbGF5YmFjayBWb2x1bWUiLCBXTTg3NTNfTU9VVE0yLCA0LCA3LCAxLAorCSAgICAgICBtaXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJNb25vIFZvaWNlIFBsYXliYWNrIFZvbHVtZSIsIFdNODc1M19NT1VUTTIsIDAsIDcsIDEsCisJICAgICAgIHZvaWNlX21peF90bHYpLAogU09DX1NJTkdMRSgiTW9ubyBQbGF5YmFjayBaQyBTd2l0Y2giLCBXTTg3NTNfTU9VVFYsIDcsIDEsIDApLAogCiBTT0NfRU5VTSgiQmFzcyBCb29zdCIsIHdtODc1M19lbnVtWzBdKSwKQEAgLTI5MSwxMCArMjk0LDEzIEBACiBTT0NfU0lOR0xFKCJUcmVibGUgVm9sdW1lIiwgV004NzUzX1RSRUJMRSwgMCwgMTUsIDEpLAogU09DX0VOVU0oIlRyZWJsZSBDdXQtb2ZmIiwgd204NzUzX2VudW1bMl0pLAogCi1TT0NfRE9VQkxFX1RMVigiU2lkZXRvbmUgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfUkVDTUlYMSwgMCwgNCwgNywgMSwgcmVjX21peF90bHYpLAotU09DX1NJTkdMRV9UTFYoIlZvaWNlIFNpZGV0b25lIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX1JFQ01JWDIsIDAsIDcsIDEsIHJlY19taXhfdGx2KSwKK1NPQ19ET1VCTEVfVExWKCJTaWRldG9uZSBDYXB0dXJlIFZvbHVtZSIsIFdNODc1M19SRUNNSVgxLCAwLCA0LCA3LCAxLAorCSAgICAgICByZWNfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiVm9pY2UgU2lkZXRvbmUgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfUkVDTUlYMiwgMCwgNywgMSwKKwkgICAgICAgcmVjX21peF90bHYpLAogCi1TT0NfRE9VQkxFX1IoIkNhcHR1cmUgVm9sdW1lIiwgV004NzUzX0xJTlZPTCwgV004NzUzX1JJTlZPTCwgMCwgNjMsIDApLAorU09DX0RPVUJMRV9SX1RMVigiQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfTElOVk9MLCBXTTg3NTNfUklOVk9MLCAwLCA2MywgMCwKKwkJIHBnYV90bHYpLAogU09DX0RPVUJMRV9SKCJDYXB0dXJlIFpDIFN3aXRjaCIsIFdNODc1M19MSU5WT0wsIFdNODc1M19SSU5WT0wsIDYsIDEsIDApLAogU09DX0RPVUJMRV9SKCJDYXB0dXJlIFN3aXRjaCIsIFdNODc1M19MSU5WT0wsIFdNODc1M19SSU5WT0wsIDcsIDEsIDEpLAogCkBAIC0zMjYsOCArMzMyLDggQEAKIFNPQ19FTlVNKCJQbGF5YmFjayBNb25vIE1peCIsIHdtODc1M19lbnVtWzldKSwKIFNPQ19FTlVNKCJQbGF5YmFjayBQaGFzZSIsIHdtODc1M19lbnVtWzEwXSksCiAKLVNPQ19TSU5HTEUoIk1pYzIgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfSU5DVEwxLCA3LCAzLCAwKSwKLVNPQ19TSU5HTEUoIk1pYzEgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfSU5DVEwxLCA1LCAzLCAwKSwKK1NPQ19TSU5HTEVfVExWKCJNaWMyIENhcHR1cmUgVm9sdW1lIiwgV004NzUzX0lOQ1RMMSwgNywgMywgMCwgbWljX3ByZWFtcF90bHYpLAorU09DX1NJTkdMRV9UTFYoIk1pYzEgQ2FwdHVyZSBWb2x1bWUiLCBXTTg3NTNfSU5DVEwxLCA1LCAzLCAwLCBtaWNfcHJlYW1wX3RsdiksCiAKIFNPQ19FTlVNX0VYVCgiREFJIE1vZGUiLCB3bTg3NTNfZW51bVsyNl0sIHdtODc1M19nZXRfZGFpLCB3bTg3NTNfc2V0X2RhaSksCiAKQEAgLTUyMyw3ICs1MjksNyBAQAogU05EX1NPQ19EQVBNX1ZNSUQoIlZSRUYiKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCS8qIGxlZnQgbWl4ZXIgKi8KIAl7IkxlZnQgTWl4ZXIiLCAiTGVmdCBQbGF5YmFjayBTd2l0Y2giLCAiTGVmdCBEQUMifSwKIAl7IkxlZnQgTWl4ZXIiLCAiVm9pY2UgUGxheWJhY2sgU3dpdGNoIiwgIlZvaWNlIERBQyJ9LApAQCAtNjc0LDIzICs2ODAsMTQgQEAKIAogCS8qIEFDT1AgKi8KIAl7IkFDT1AiLCBOVUxMLCAiQUxDIE1peGVyIn0sCi0KLQkvKiB0ZXJtaW5hdG9yICovCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTg3NTNfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODc1M19kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODc1M19kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODc1M19kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODc1M19kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIHRoZSBXTTg3NTMgYXVkaW8gbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykgewotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOwotCX0KKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOwogCiAJc25kX3NvY19kYXBtX25ld193aWRnZXRzKGNvZGVjKTsKIAlyZXR1cm4gMDsKQEAgLTc0Myw3ICs3NDAsNyBAQAogCXBsbF9kaXYtPmsgPSBLOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19zZXRfZGFpX3BsbChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX3NldF9kYWlfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQlpbnQgcGxsX2lkLCB1bnNpZ25lZCBpbnQgZnJlcV9pbiwgdW5zaWduZWQgaW50IGZyZXFfb3V0KQogewogCXUxNiByZWcsIGVuYWJsZTsKQEAgLTg2Niw3ICs4NjMsNyBAQAogLyoKICAqIENsb2NrIGFmdGVyIFBMTCBhbmQgZGl2aWRlcnMKICAqLwotc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19zZXRfZGFpX3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTg5Myw3ICs4OTAsNyBAQAogLyoKICAqIFNldCdzIEFEQyBhbmQgVm9pY2UgREFDIGZvcm1hdC4KICAqLwotc3RhdGljIGludCB3bTg3NTNfdmRhY19hZGNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M192ZGFjX2FkY19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtOTYzLDcgKzk2MCw3IEBACiAvKgogICogU2V0J3MgUENNIGRhaSBmbXQgYW5kIEJDTEsuCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX3BjbV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX3BjbV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTAyOSw3ICsxMDI2LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IGRpdl9pZCwgaW50IGRpdikKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTA1Nyw3ICsxMDU0LDcgQEAKIC8qCiAgKiBTZXQncyBIaUZpIERBQyBmb3JtYXQuCiAgKi8KLXN0YXRpYyBpbnQgd204NzUzX2hkYWNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19oZGFjX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMDkwLDcgKzEwODcsNyBAQAogLyoKICAqIFNldCdzIEkyUyBEQUkgZm9ybWF0LgogICovCi1zdGF0aWMgaW50IHdtODc1M19pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtODc1M19pMnNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTExOTgsNyArMTE5NSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX21vZGUxdl9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX21vZGUxdl9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtMTIxMyw3ICsxMjEwLDcgQEAKIAlyZXR1cm4gd204NzUzX3BjbV9zZXRfZGFpX2ZtdChjb2RlY19kYWksIGZtdCk7CiB9CiAKLXN0YXRpYyBpbnQgd204NzUzX21vZGUxaF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX21vZGUxaF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlpZiAod204NzUzX2hkYWNfc2V0X2RhaV9mbXQoY29kZWNfZGFpLCBmbXQpIDwgMCkKQEAgLTEyMjEsNyArMTIxOCw3IEBACiAJcmV0dXJuIHdtODc1M19pMnNfc2V0X2RhaV9mbXQoY29kZWNfZGFpLCBmbXQpOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tb2RlMl9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX21vZGUyX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQl1bnNpZ25lZCBpbnQgZm10KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC0xMjM2LDcgKzEyMzMsNyBAQAogCXJldHVybiB3bTg3NTNfaTJzX3NldF9kYWlfZm10KGNvZGVjX2RhaSwgZm10KTsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfbW9kZTNfNF9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd204NzUzX21vZGUzXzRfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCiAJCXVuc2lnbmVkIGludCBmbXQpCiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKQEAgLTEyNTMsNyArMTI1MCw3IEBACiAJcmV0dXJuIHdtODc1M19pMnNfc2V0X2RhaV9mbXQoY29kZWNfZGFpLCBmbXQpOwogfQogCi1zdGF0aWMgaW50IHdtODc1M19tdXRlKHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLCBpbnQgbXV0ZSkKK3N0YXRpYyBpbnQgd204NzUzX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGRhaS0+Y29kZWM7CiAJdTE2IG11dGVfcmVnID0gd204NzUzX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg3NTNfREFDKSAmIDB4ZmZmNzsKQEAgLTEyNzQsMjkgKzEyNzEsMjkgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTg3NTNfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgd204NzUzX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCQkgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7CiAJdTE2IHB3cl9yZWcgPSB3bTg3NTNfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODc1M19QV1IxKSAmIDB4ZmUzZTsKIAotCXN3aXRjaCAoZXZlbnQpIHsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMDogLyogZnVsbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKIAkJLyogc2V0IHZtaWQgdG8gNTBrIGFuZCB1bm11dGUgZGFjICovCiAJCXdtODc1M193cml0ZShjb2RlYywgV004NzUzX1BXUjEsIHB3cl9yZWcgfCAweDAwYzApOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMTogLyogcGFydGlhbCBPbiAqLwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QyOiAvKiBwYXJ0aWFsIE9uICovCisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKIAkJLyogc2V0IHZtaWQgdG8gNWsgZm9yIHF1aWNrIHBvd2VyIHVwICovCiAJCXdtODc1M193cml0ZShjb2RlYywgV004NzUzX1BXUjEsIHB3cl9yZWcgfCAweDAxYzEpOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDogLyogT2ZmLCB3aXRoIHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKIAkJLyogbXV0ZSBkYWMgYW5kIHNldCB2bWlkIHRvIDUwMGssIGVuYWJsZSBWUkVGICovCiAJCXdtODc1M193cml0ZShjb2RlYywgV004NzUzX1BXUjEsIHB3cl9yZWcgfCAweDAxNDEpOwogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2NvbGQ6IC8qIE9mZiwgd2l0aG91dCBwb3dlciAqLworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKIAkJd204NzUzX3dyaXRlKGNvZGVjLCBXTTg3NTNfUFdSMSwgMHgwMDAxKTsKIAkJYnJlYWs7CiAJfQotCWNvZGVjLT5kYXBtX3N0YXRlID0gZXZlbnQ7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTMxOSw3ICsxMzE2LDcgQEAKICAqIDMuIFZvaWNlIGRpc2FibGVkIC0gSElGSSBvdmVyIEhJRkkKICAqIDQuIFZvaWNlIGRpc2FibGVkIC0gSElGSSBvdmVyIEhJRkksIHVzZXMgdm9pY2UgREFJIExSQyBmb3IgY2FwdHVyZQogICovCi1zdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtODc1M19hbGxfZGFpW10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFpIHdtODc1M19hbGxfZGFpW10gPSB7CiAvKiBEQUkgSGlGaSBtb2RlIDEgKi8KIHsJLm5hbWUgPSAiV004NzUzIEhpRmkiLAogCS5pZCA9IDEsCkBAIC0xNDU5LDcgKzE0NTYsNyBAQAogfSwKIH07CiAKLXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTNfZGFpWzJdOworc3RydWN0IHNuZF9zb2NfZGFpIHdtODc1M19kYWlbMl07CiBFWFBPUlRfU1lNQk9MX0dQTCh3bTg3NTNfZGFpKTsKIAogc3RhdGljIHZvaWQgd204NzUzX3NldF9kYWlfbW9kZShzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIHVuc2lnbmVkIGludCBtb2RlKQpAQCAtMTUwMCw3ICsxNDk3LDcgQEAKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPQogCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHNuZF9zb2NfY29kZWMsIGRlbGF5ZWRfd29yay53b3JrKTsKLQl3bTg3NTNfZGFwbV9ldmVudChjb2RlYywgY29kZWMtPmRhcG1fc3RhdGUpOworCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgY29kZWMtPmJpYXNfbGV2ZWwpOwogfQogCiBzdGF0aWMgaW50IHdtODc1M19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKQEAgLTE1MTIsNyArMTUwOSw3IEBACiAJaWYgKCFjb2RlYy0+Y2FyZCkKIAkJcmV0dXJuIDA7CiAKLQl3bTg3NTNfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJd204NzUzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMTUzNywxMiArMTUzNCwxMiBAQAogCQljb2RlYy0+aHdfd3JpdGUoY29kZWMtPmNvbnRyb2xfZGF0YSwgZGF0YSwgMik7CiAJfQogCi0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd204NzUzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBjaGFyZ2Ugd204NzUzIGNhcHMgKi8KLQlpZiAoY29kZWMtPnN1c3BlbmRfZGFwbV9zdGF0ZSA9PSBTTkRSVl9DVExfUE9XRVJfRDApIHsKLQkJd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JCWNvZGVjLT5kYXBtX3N0YXRlID0gU05EUlZfQ1RMX1BPV0VSX0QwOworCWlmIChjb2RlYy0+c3VzcGVuZF9iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PTikgeworCQl3bTg3NTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19QUkVQQVJFKTsKKwkJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfT047CiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29kZWMtPmRlbGF5ZWRfd29yaywKIAkJCW1zZWNzX3RvX2ppZmZpZXMoY2Fwc19jaGFyZ2UpKTsKIAl9CkBAIC0xNTYzLDEwICsxNTYwLDEwIEBACiAJY29kZWMtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJY29kZWMtPnJlYWQgPSB3bTg3NTNfcmVhZF9yZWdfY2FjaGU7CiAJY29kZWMtPndyaXRlID0gd204NzUzX3dyaXRlOwotCWNvZGVjLT5kYXBtX2V2ZW50ID0gd204NzUzX2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd204NzUzX3NldF9iaWFzX2xldmVsOwogCWNvZGVjLT5kYWkgPSB3bTg3NTNfZGFpOwogCWNvZGVjLT5udW1fZGFpID0gMjsKLQljb2RlYy0+cmVnX2NhY2hlX3NpemUgPSBzaXplb2Yod204NzUzX3JlZyk7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg3NTNfcmVnKTsKIAljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg3NTNfcmVnLCBzaXplb2Yod204NzUzX3JlZyksIEdGUF9LRVJORUwpOwogCiAJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKQEAgLTE1ODQsOCArMTU4MSw4IEBACiAJfQogCiAJLyogY2hhcmdlIG91dHB1dCBjYXBzICovCi0Jd204NzUzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMik7Ci0JY29kZWMtPmRhcG1fc3RhdGUgPSBTTkRSVl9DVExfUE9XRVJfRDNob3Q7CisJd204NzUzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfUFJFUEFSRSk7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBTTkRfU09DX0JJQVNfU1RBTkRCWTsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmNvZGVjLT5kZWxheWVkX3dvcmssCiAJCW1zZWNzX3RvX2ppZmZpZXMoY2Fwc19jaGFyZ2UpKTsKIApAQCAtMTY3MywxMyArMTY3MCwxMyBAQAogCiAJcmV0ID0gaTJjX2F0dGFjaF9jbGllbnQoaTJjKTsKIAlpZiAocmV0IDwgMCkgewotCQllcnIoImZhaWxlZCB0byBhdHRhY2ggY29kZWMgYXQgYWRkciAleFxuIiwgYWRkcik7CisJCXByX2VycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKIAkJZ290byBlcnI7CiAJfQogCiAJcmV0ID0gd204NzUzX2luaXQoc29jZGV2KTsKIAlpZiAocmV0IDwgMCkgewotCQllcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODc1M1xuIik7CisJCXByX2VycigiZmFpbGVkIHRvIGluaXRpYWxpc2UgV004NzUzXG4iKTsKIAkJZ290byBlcnI7CiAJfQogCkBAIC0xNzMxLDcgKzE3MjgsNyBAQAogCXN0cnVjdCB3bTg3NTNfcHJpdiAqd204NzUzOwogCWludCByZXQgPSAwOwogCi0JaW5mbygiV004NzUzIEF1ZGlvIENvZGVjICVzIiwgV004NzUzX1ZFUlNJT04pOworCXByX2luZm8oIldNODc1MyBBdWRpbyBDb2RlYyAlcyIsIFdNODc1M19WRVJTSU9OKTsKIAogCXNldHVwID0gc29jZGV2LT5jb2RlY19kYXRhOwogCWNvZGVjID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHNuZF9zb2NfY29kZWMpLCBHRlBfS0VSTkVMKTsKQEAgLTE3OTIsNyArMTc4OSw3IEBACiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAogCWlmIChjb2RlYy0+Y29udHJvbF9kYXRhKQotCQl3bTg3NTNfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzY29sZCk7CisJCXdtODc1M19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CiAJcnVuX2RlbGF5ZWRfd29yaygmY29kZWMtPmRlbGF5ZWRfd29yayk7CiAJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKIAlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuaCBiL3NvdW5kL3NvYy9jb2RlY3Mvd204NzUzLmgKaW5kZXggOTVlMmExZi4uNDRmNWYxZiAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTg3NTMuaAorKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtODc1My5oCkBAIC0xMjAsNyArMTIwLDcgQEAKICNkZWZpbmUgV004NzUzX0RBSV9ISUZJCQkwCiAjZGVmaW5lIFdNODc1M19EQUlfVk9JQ0UJCTEKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTg3NTNfZGFpWzJdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTg3NTNfZGFpWzJdOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODc1MzsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODk5MC5jIGIvc291bmQvc29jL2NvZGVjcy93bTg5OTAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZWNjZTUxCi0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5OTAuYwpAQCAtMCwwICsxLDE2MjYgQEAKKy8qCisgKiB3bTg5OTAuYyAgLS0gIFdNODk5MCBBTFNBIFNvYyBBdWRpbyBkcml2ZXIKKyAqCisgKiBDb3B5cmlnaHQgMjAwOCBXb2xmc29uIE1pY3JvZWxlY3Ryb25pY3MgUExDLgorICogQXV0aG9yOiBMaWFtIEdpcmR3b29kCisgKiAgICAgICAgIGxnQG9wZW5zb3VyY2Uud29sZnNvbm1pY3JvLmNvbSBvciBsaW51eEB3b2xmc29ubWljcm8uY29tCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBpdAorICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgorICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvaW5pdC5oPgorI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvcG0uaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy5oPgorI2luY2x1ZGUgPHNvdW5kL3NvYy1kYXBtLmg+CisjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgorI2luY2x1ZGUgPHNvdW5kL3Rsdi5oPgorI2luY2x1ZGUgPGFzbS9kaXY2NC5oPgorCisjaW5jbHVkZSAid204OTkwLmgiCisKKyNkZWZpbmUgQVVESU9fTkFNRSAid204OTkwIgorI2RlZmluZSBXTTg5OTBfVkVSU0lPTiAiMC4yIgorCisvKiBjb2RlYyBwcml2YXRlIGRhdGEgKi8KK3N0cnVjdCB3bTg5OTBfcHJpdiB7CisJdW5zaWduZWQgaW50IHN5c2NsazsKKwl1bnNpZ25lZCBpbnQgcGNtY2xrOworfTsKKworLyoKKyAqIHdtODk5MCByZWdpc3RlciBjYWNoZS4gIE5vdGUgdGhhdCByZWdpc3RlciAwIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUKKyAqIGNhY2hlLgorICovCitzdGF0aWMgY29uc3QgdTE2IHdtODk5MF9yZWdbXSA9IHsKKwkweDg5OTAsICAgICAvKiBSMCAgLSBSZXNldCAqLworCTB4MDAwMCwgICAgIC8qIFIxICAtIFBvd2VyIE1hbmFnZW1lbnQgKDEpICovCisJMHg2MDAwLCAgICAgLyogUjIgIC0gUG93ZXIgTWFuYWdlbWVudCAoMikgKi8KKwkweDAwMDAsICAgICAvKiBSMyAgLSBQb3dlciBNYW5hZ2VtZW50ICgzKSAqLworCTB4NDA1MCwgICAgIC8qIFI0ICAtIEF1ZGlvIEludGVyZmFjZSAoMSkgKi8KKwkweDQwMDAsICAgICAvKiBSNSAgLSBBdWRpbyBJbnRlcmZhY2UgKDIpICovCisJMHgwMUM4LCAgICAgLyogUjYgIC0gQ2xvY2tpbmcgKDEpICovCisJMHgwMDAwLCAgICAgLyogUjcgIC0gQ2xvY2tpbmcgKDIpICovCisJMHgwMDQwLCAgICAgLyogUjggIC0gQXVkaW8gSW50ZXJmYWNlICgzKSAqLworCTB4MDA0MCwgICAgIC8qIFI5ICAtIEF1ZGlvIEludGVyZmFjZSAoNCkgKi8KKwkweDAwMDQsICAgICAvKiBSMTAgLSBEQUMgQ1RSTCAqLworCTB4MDBDMCwgICAgIC8qIFIxMSAtIExlZnQgREFDIERpZ2l0YWwgVm9sdW1lICovCisJMHgwMEMwLCAgICAgLyogUjEyIC0gUmlnaHQgREFDIERpZ2l0YWwgVm9sdW1lICovCisJMHgwMDAwLCAgICAgLyogUjEzIC0gRGlnaXRhbCBTaWRlIFRvbmUgKi8KKwkweDAxMDAsICAgICAvKiBSMTQgLSBBREMgQ1RSTCAqLworCTB4MDBDMCwgICAgIC8qIFIxNSAtIExlZnQgQURDIERpZ2l0YWwgVm9sdW1lICovCisJMHgwMEMwLCAgICAgLyogUjE2IC0gUmlnaHQgQURDIERpZ2l0YWwgVm9sdW1lICovCisJMHgwMDAwLCAgICAgLyogUjE3ICovCisJMHgwMDAwLCAgICAgLyogUjE4IC0gR1BJTyBDVFJMIDEgKi8KKwkweDEwMDAsICAgICAvKiBSMTkgLSBHUElPMSAmIEdQSU8yICovCisJMHgxMDEwLCAgICAgLyogUjIwIC0gR1BJTzMgJiBHUElPNCAqLworCTB4MTAxMCwgICAgIC8qIFIyMSAtIEdQSU81ICYgR1BJTzYgKi8KKwkweDgwMDAsICAgICAvKiBSMjIgLSBHUElPQ1RSTCAyICovCisJMHgwODAwLCAgICAgLyogUjIzIC0gR1BJT19QT0wgKi8KKwkweDAwOEIsICAgICAvKiBSMjQgLSBMZWZ0IExpbmUgSW5wdXQgMSYyIFZvbHVtZSAqLworCTB4MDA4QiwgICAgIC8qIFIyNSAtIExlZnQgTGluZSBJbnB1dCAzJjQgVm9sdW1lICovCisJMHgwMDhCLCAgICAgLyogUjI2IC0gUmlnaHQgTGluZSBJbnB1dCAxJjIgVm9sdW1lICovCisJMHgwMDhCLCAgICAgLyogUjI3IC0gUmlnaHQgTGluZSBJbnB1dCAzJjQgVm9sdW1lICovCisJMHgwMDAwLCAgICAgLyogUjI4IC0gTGVmdCBPdXRwdXQgVm9sdW1lICovCisJMHgwMDAwLCAgICAgLyogUjI5IC0gUmlnaHQgT3V0cHV0IFZvbHVtZSAqLworCTB4MDA2NiwgICAgIC8qIFIzMCAtIExpbmUgT3V0cHV0cyBWb2x1bWUgKi8KKwkweDAwMjIsICAgICAvKiBSMzEgLSBPdXQzLzQgVm9sdW1lICovCisJMHgwMDc5LCAgICAgLyogUjMyIC0gTGVmdCBPUEdBIFZvbHVtZSAqLworCTB4MDA3OSwgICAgIC8qIFIzMyAtIFJpZ2h0IE9QR0EgVm9sdW1lICovCisJMHgwMDAzLCAgICAgLyogUjM0IC0gU3BlYWtlciBWb2x1bWUgKi8KKwkweDAwMDMsICAgICAvKiBSMzUgLSBDbGFzc0QxICovCisJMHgwMDAwLCAgICAgLyogUjM2ICovCisJMHgwMTAwLCAgICAgLyogUjM3IC0gQ2xhc3NEMyAqLworCTB4MDAwMCwgICAgIC8qIFIzOCAqLworCTB4MDAwMCwgICAgIC8qIFIzOSAtIElucHV0IE1peGVyMSAqLworCTB4MDAwMCwgICAgIC8qIFI0MCAtIElucHV0IE1peGVyMiAqLworCTB4MDAwMCwgICAgIC8qIFI0MSAtIElucHV0IE1peGVyMyAqLworCTB4MDAwMCwgICAgIC8qIFI0MiAtIElucHV0IE1peGVyNCAqLworCTB4MDAwMCwgICAgIC8qIFI0MyAtIElucHV0IE1peGVyNSAqLworCTB4MDAwMCwgICAgIC8qIFI0NCAtIElucHV0IE1peGVyNiAqLworCTB4MDAwMCwgICAgIC8qIFI0NSAtIE91dHB1dCBNaXhlcjEgKi8KKwkweDAwMDAsICAgICAvKiBSNDYgLSBPdXRwdXQgTWl4ZXIyICovCisJMHgwMDAwLCAgICAgLyogUjQ3IC0gT3V0cHV0IE1peGVyMyAqLworCTB4MDAwMCwgICAgIC8qIFI0OCAtIE91dHB1dCBNaXhlcjQgKi8KKwkweDAwMDAsICAgICAvKiBSNDkgLSBPdXRwdXQgTWl4ZXI1ICovCisJMHgwMDAwLCAgICAgLyogUjUwIC0gT3V0cHV0IE1peGVyNiAqLworCTB4MDE4MCwgICAgIC8qIFI1MSAtIE91dDMvNCBNaXhlciAqLworCTB4MDAwMCwgICAgIC8qIFI1MiAtIExpbmUgTWl4ZXIxICovCisJMHgwMDAwLCAgICAgLyogUjUzIC0gTGluZSBNaXhlcjIgKi8KKwkweDAwMDAsICAgICAvKiBSNTQgLSBTcGVha2VyIE1peGVyICovCisJMHgwMDAwLCAgICAgLyogUjU1IC0gQWRkaXRpb25hbCBDb250cm9sICovCisJMHgwMDAwLCAgICAgLyogUjU2IC0gQW50aVBPUDEgKi8KKwkweDAwMDAsICAgICAvKiBSNTcgLSBBbnRpUE9QMiAqLworCTB4MDAwMCwgICAgIC8qIFI1OCAtIE1JQ0JJQVMgKi8KKwkweDAwMDAsICAgICAvKiBSNTkgKi8KKwkweDAwMDgsICAgICAvKiBSNjAgLSBQTEwxICovCisJMHgwMDMxLCAgICAgLyogUjYxIC0gUExMMiAqLworCTB4MDAyNiwgICAgIC8qIFI2MiAtIFBMTDMgKi8KK307CisKKy8qCisgKiByZWFkIHdtODk5MCByZWdpc3RlciBjYWNoZQorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCXVuc2lnbmVkIGludCByZWcpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJQlVHX09OKHJlZyA+IChBUlJBWV9TSVpFKHdtODk5MF9yZWcpKSAtIDEpOworCXJldHVybiBjYWNoZVtyZWddOworfQorCisvKgorICogd3JpdGUgd204OTkwIHJlZ2lzdGVyIGNhY2hlCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCB3bTg5OTBfd3JpdGVfcmVnX2NhY2hlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwl1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpCit7CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisJQlVHX09OKHJlZyA+IChBUlJBWV9TSVpFKHdtODk5MF9yZWcpKSAtIDEpOworCisJLyogUmVzZXQgcmVnaXN0ZXIgaXMgdW5jYWNoZWQgKi8KKwlpZiAocmVnID09IDApCisJCXJldHVybjsKKworCWNhY2hlW3JlZ10gPSB2YWx1ZTsKK30KKworLyoKKyAqIHdyaXRlIHRvIHRoZSB3bTg5OTAgcmVnaXN0ZXIgc3BhY2UKKyAqLworc3RhdGljIGludCB3bTg5OTBfd3JpdGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCB1bnNpZ25lZCBpbnQgcmVnLAorCXVuc2lnbmVkIGludCB2YWx1ZSkKK3sKKwl1OCBkYXRhWzNdOworCisJZGF0YVswXSA9IHJlZyAmIDB4RkY7CisJZGF0YVsxXSA9ICh2YWx1ZSA+PiA4KSAmIDB4RkY7CisJZGF0YVsyXSA9IHZhbHVlICYgMHhGRjsKKworCXdtODk5MF93cml0ZV9yZWdfY2FjaGUoY29kZWMsIHJlZywgdmFsdWUpOworCisJaWYgKGNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAzKSA9PSAyKQorCQlyZXR1cm4gMDsKKwllbHNlCisJCXJldHVybiAtRUlPOworfQorCisjZGVmaW5lIHdtODk5MF9yZXNldChjKSB3bTg5OTBfd3JpdGUoYywgV004OTkwX1JFU0VULCAwKQorCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKHJlY19taXhfdGx2LCAtMTUwMCwgNjAwKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihpbl9wZ2FfdGx2LCAtMTY1MCwgMzAwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X21peF90bHYsIDAsIC0yMTAwKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihvdXRfcGdhX3RsdiwgLTczMDAsIDYwMCk7CisKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9MSU5FQVIob3V0X29taXhfdGx2LCAtNjAwLCAwKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihvdXRfZGFjX3RsdiwgLTcxNjMsIDApOworCitzdGF0aWMgY29uc3QgREVDTEFSRV9UTFZfREJfTElORUFSKGluX2FkY190bHYsIC03MTYzLCAxNzYzKTsKKworc3RhdGljIGNvbnN0IERFQ0xBUkVfVExWX0RCX0xJTkVBUihvdXRfc2lkZXRvbmVfdGx2LCAtMzYwMCwgMCk7CisKK3N0YXRpYyBpbnQgd204OTl4X291dHBnYV9wdXRfdm9sc3dfdnUoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IHJldDsKKwl1MTYgdmFsOworCisJcmV0ID0gc25kX3NvY19wdXRfdm9sc3coa2NvbnRyb2wsIHVjb250cm9sKTsKKwlpZiAocmV0IDwgMCkKKwkJcmV0dXJuIHJldDsKKworCS8qIG5vdyBoaXQgdGhlIHZvbHVtZSB1cGRhdGUgYml0cyAoYWx3YXlzIGJpdCA4KSAqLworCXZhbCA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgcmVnKTsKKwlyZXR1cm4gd204OTkwX3dyaXRlKGNvZGVjLCByZWcsIHZhbCB8IDB4MDEwMCk7Cit9CisKKyNkZWZpbmUgU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKHhuYW1lLCByZWcsIHNoaWZ0LCBtYXgsIGludmVydCxcCisJIHRsdl9hcnJheSkge1wKKwkuaWZhY2UgPSBTTkRSVl9DVExfRUxFTV9JRkFDRV9NSVhFUiwgLm5hbWUgPSAoeG5hbWUpLCBcCisJLmFjY2VzcyA9IFNORFJWX0NUTF9FTEVNX0FDQ0VTU19UTFZfUkVBRCB8XAorCQkgIFNORFJWX0NUTF9FTEVNX0FDQ0VTU19SRUFEV1JJVEUsXAorCS50bHYucCA9ICh0bHZfYXJyYXkpLCBcCisJLmluZm8gPSBzbmRfc29jX2luZm9fdm9sc3csIFwKKwkuZ2V0ID0gc25kX3NvY19nZXRfdm9sc3csIC5wdXQgPSB3bTg5OXhfb3V0cGdhX3B1dF92b2xzd192dSwgXAorCS5wcml2YXRlX3ZhbHVlID0gU09DX1NJTkdMRV9WQUxVRShyZWcsIHNoaWZ0LCBtYXgsIGludmVydCkgfQorCisKK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfZGlnaXRhbF9zaWRldG9uZVtdID0KKwl7Ik5vbmUiLCAiTGVmdCBBREMiLCAiUmlnaHQgQURDIiwgIlJlc2VydmVkIn07CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gd204OTkwX2xlZnRfZGlnaXRhbF9zaWRldG9uZV9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ19UT19EQUNMX1NISUZULAorCVdNODk5MF9BRENfVE9fREFDTF9NQVNLLAorCXdtODk5MF9kaWdpdGFsX3NpZGV0b25lKTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfcmlnaHRfZGlnaXRhbF9zaWRldG9uZV9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfRElHSVRBTF9TSURFX1RPTkUsCisJV004OTkwX0FEQ19UT19EQUNSX1NISUZULAorCVdNODk5MF9BRENfVE9fREFDUl9NQVNLLAorCXdtODk5MF9kaWdpdGFsX3NpZGV0b25lKTsKKworc3RhdGljIGNvbnN0IGNoYXIgKndtODk5MF9hZGNtb2RlW10gPQorCXsiSGktZmkgbW9kZSIsICJWb2ljZSBtb2RlIDEiLCAiVm9pY2UgbW9kZSAyIiwgIlZvaWNlIG1vZGUgMyJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODk5MF9yaWdodF9hZGNtb2RlX2VudW0gPQorU09DX0VOVU1fU0lOR0xFKFdNODk5MF9BRENfQ1RSTCwKKwlXTTg5OTBfQURDX0hQRl9DVVRfU0hJRlQsCisJV004OTkwX0FEQ19IUEZfQ1VUX01BU0ssCisJd204OTkwX2FkY21vZGUpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX3NuZF9jb250cm9sc1tdID0geworLyogSU5NSVhMICovCitTT0NfU0lOR0xFKCJMSU4xMiBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfTDEyTU5CU1RfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIkxJTjM0IFBHQSBCb29zdCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMzRNTkJTVF9CSVQsIDEsIDApLAorLyogSU5NSVhSICovCitTT0NfU0lOR0xFKCJSSU4xMiBQR0EgQm9vc3QiLCBXTTg5OTBfSU5QVVRfTUlYRVIzLCBXTTg5OTBfUjEyTU5CU1RfQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIlJJTjM0IFBHQSBCb29zdCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9SMzRNTkJTVF9CSVQsIDEsIDApLAorCisvKiBMT01JWCAqLworU09DX1NJTkdMRV9UTFYoIkxPTUlYIExJTjMgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVIzLAorCVdNODk5MF9MTEkzTE9WT0xfU0hJRlQsIFdNODk5MF9MTEkzTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIkxPTUlYIFJJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjMsCisJV004OTkwX0xSMTJMT1ZPTF9TSElGVCwgV004OTkwX0xSMTJMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggTElOMTIgUEdBIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSMywKKwlXTTg5OTBfTEwxMkxPVk9MX1NISUZULCBXTTg5OTBfTEwxMkxPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJMT01JWCBSSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNSwKKwlXTTg5OTBfTFJJM0xPVk9MX1NISUZULCBXTTg5OTBfTFJJM0xPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJMT01JWCBBSU5STVVYIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNSwKKwlXTTg5OTBfTFJCTE9WT0xfU0hJRlQsIFdNODk5MF9MUkJMT1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiTE9NSVggQUlOTE1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjUsCisJV004OTkwX0xSQkxPVk9MX1NISUZULCBXTTg5OTBfTFJCTE9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorCisvKiBST01JWCAqLworU09DX1NJTkdMRV9UTFYoIlJPTUlYIFJJTjMgQnlwYXNzIFZvbHVtZSIsIFdNODk5MF9PVVRQVVRfTUlYRVI0LAorCVdNODk5MF9SUkkzUk9WT0xfU0hJRlQsIFdNODk5MF9SUkkzUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorU09DX1NJTkdMRV9UTFYoIlJPTUlYIExJTjEyIFBHQSBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjQsCisJV004OTkwX1JMMTJST1ZPTF9TSElGVCwgV004OTkwX1JMMTJST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggUklOMTIgUEdBIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNCwKKwlXTTg5OTBfUlIxMlJPVk9MX1NISUZULCBXTTg5OTBfUlIxMlJPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJST01JWCBMSU4zIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNiwKKwlXTTg5OTBfUkxJM1JPVk9MX1NISUZULCBXTTg5OTBfUkxJM1JPVk9MX01BU0ssIDEsIG91dF9taXhfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJST01JWCBBSU5MTVVYIEJ5cGFzcyBWb2x1bWUiLCBXTTg5OTBfT1VUUFVUX01JWEVSNiwKKwlXTTg5OTBfUkxCUk9WT0xfU0hJRlQsIFdNODk5MF9STEJST1ZPTF9NQVNLLCAxLCBvdXRfbWl4X3RsdiksCitTT0NfU0lOR0xFX1RMVigiUk9NSVggQUlOUk1VWCBCeXBhc3MgVm9sdW1lIiwgV004OTkwX09VVFBVVF9NSVhFUjYsCisJV004OTkwX1JSQlJPVk9MX1NISUZULCBXTTg5OTBfUlJCUk9WT0xfTUFTSywgMSwgb3V0X21peF90bHYpLAorCisvKiBMT1VUICovCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIkxPVVQgVm9sdW1lIiwgV004OTkwX0xFRlRfT1VUUFVUX1ZPTFVNRSwKKwlXTTg5OTBfTE9VVFZPTF9TSElGVCwgV004OTkwX0xPVVRWT0xfTUFTSywgMCwgb3V0X3BnYV90bHYpLAorU09DX1NJTkdMRSgiTE9VVCBaQyIsIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUsIFdNODk5MF9MT1pDX0JJVCwgMSwgMCksCisKKy8qIFJPVVQgKi8KK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUk9VVCBWb2x1bWUiLCBXTTg5OTBfUklHSFRfT1VUUFVUX1ZPTFVNRSwKKwlXTTg5OTBfUk9VVFZPTF9TSElGVCwgV004OTkwX1JPVVRWT0xfTUFTSywgMCwgb3V0X3BnYV90bHYpLAorU09DX1NJTkdMRSgiUk9VVCBaQyIsIFdNODk5MF9SSUdIVF9PVVRQVVRfVk9MVU1FLCBXTTg5OTBfUk9aQ19CSVQsIDEsIDApLAorCisvKiBMT1BHQSAqLworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJMT1BHQSBWb2x1bWUiLCBXTTg5OTBfTEVGVF9PUEdBX1ZPTFVNRSwKKwlXTTg5OTBfTE9QR0FWT0xfU0hJRlQsIFdNODk5MF9MT1BHQVZPTF9NQVNLLCAwLCBvdXRfcGdhX3RsdiksCitTT0NfU0lOR0xFKCJMT1BHQSBaQyBTd2l0Y2giLCBXTTg5OTBfTEVGVF9PUEdBX1ZPTFVNRSwKKwlXTTg5OTBfTE9QR0FaQ19CSVQsIDEsIDApLAorCisvKiBST1BHQSAqLworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJST1BHQSBWb2x1bWUiLCBXTTg5OTBfUklHSFRfT1BHQV9WT0xVTUUsCisJV004OTkwX1JPUEdBVk9MX1NISUZULCBXTTg5OTBfUk9QR0FWT0xfTUFTSywgMCwgb3V0X3BnYV90bHYpLAorU09DX1NJTkdMRSgiUk9QR0EgWkMgU3dpdGNoIiwgV004OTkwX1JJR0hUX09QR0FfVk9MVU1FLAorCVdNODk5MF9ST1BHQVpDX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIkxPTiBNdXRlIFN3aXRjaCIsIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FLAorCVdNODk5MF9MT05NVVRFX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJMT1AgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfTE9QTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiTE9QIEF0dGVudWF0aW9uIFN3aXRjaCIsIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FLAorCVdNODk5MF9MT0FUVE5fQklULCAxLCAwKSwKK1NPQ19TSU5HTEUoIlJPTiBNdXRlIFN3aXRjaCIsIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FLAorCVdNODk5MF9ST05NVVRFX0JJVCwgMSwgMCksCitTT0NfU0lOR0xFKCJST1AgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTElORV9PVVRQVVRTX1ZPTFVNRSwKKwlXTTg5OTBfUk9QTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiUk9QIEF0dGVudWF0aW9uIFN3aXRjaCIsIFdNODk5MF9MSU5FX09VVFBVVFNfVk9MVU1FLAorCVdNODk5MF9ST0FUVE5fQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiT1VUMyBNdXRlIFN3aXRjaCIsIFdNODk5MF9PVVQzXzRfVk9MVU1FLAorCVdNODk5MF9PVVQzTVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiT1VUMyBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUM0FUVE5fQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiT1VUNCBNdXRlIFN3aXRjaCIsIFdNODk5MF9PVVQzXzRfVk9MVU1FLAorCVdNODk5MF9PVVQ0TVVURV9CSVQsIDEsIDApLAorU09DX1NJTkdMRSgiT1VUNCBBdHRlbnVhdGlvbiBTd2l0Y2giLCBXTTg5OTBfT1VUM180X1ZPTFVNRSwKKwlXTTg5OTBfT1VUNEFUVE5fQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiU3BlYWtlciBNb2RlIFN3aXRjaCIsIFdNODk5MF9DTEFTU0QxLAorCVdNODk5MF9DRE1PREVfQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiU3BlYWtlciBPdXRwdXQgQXR0ZW51YXRpb24gVm9sdW1lIiwgV004OTkwX1NQRUFLRVJfVk9MVU1FLAorCVdNODk5MF9TUEtWT0xfU0hJRlQsIFdNODk5MF9TUEtWT0xfTUFTSywgMCksCitTT0NfU0lOR0xFKCJTcGVha2VyIERDIEJvb3N0IFZvbHVtZSIsIFdNODk5MF9DTEFTU0QzLAorCVdNODk5MF9EQ0dBSU5fU0hJRlQsIFdNODk5MF9EQ0dBSU5fTUFTSywgMCksCitTT0NfU0lOR0xFKCJTcGVha2VyIEFDIEJvb3N0IFZvbHVtZSIsIFdNODk5MF9DTEFTU0QzLAorCVdNODk5MF9BQ0dBSU5fU0hJRlQsIFdNODk5MF9BQ0dBSU5fTUFTSywgMCksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTGVmdCBEQUMgRGlnaXRhbCBWb2x1bWUiLAorCVdNODk5MF9MRUZUX0RBQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfREFDTF9WT0xfU0hJRlQsCisJV004OTkwX0RBQ0xfVk9MX01BU0ssCisJMCwKKwlvdXRfZGFjX3RsdiksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiUmlnaHQgREFDIERpZ2l0YWwgVm9sdW1lIiwKKwlXTTg5OTBfUklHSFRfREFDX0RJR0lUQUxfVk9MVU1FLAorCVdNODk5MF9EQUNSX1ZPTF9TSElGVCwKKwlXTTg5OTBfREFDUl9WT0xfTUFTSywKKwkwLAorCW91dF9kYWNfdGx2KSwKKworU09DX0VOVU0oIkxlZnQgRGlnaXRhbCBTaWRldG9uZSIsIHdtODk5MF9sZWZ0X2RpZ2l0YWxfc2lkZXRvbmVfZW51bSksCitTT0NfRU5VTSgiUmlnaHQgRGlnaXRhbCBTaWRldG9uZSIsIHdtODk5MF9yaWdodF9kaWdpdGFsX3NpZGV0b25lX2VudW0pLAorCitTT0NfU0lOR0xFX1RMVigiTGVmdCBEaWdpdGFsIFNpZGV0b25lIFZvbHVtZSIsIFdNODk5MF9ESUdJVEFMX1NJREVfVE9ORSwKKwlXTTg5OTBfQURDTF9EQUNfU1ZPTF9TSElGVCwgV004OTkwX0FEQ0xfREFDX1NWT0xfTUFTSywgMCwKKwlvdXRfc2lkZXRvbmVfdGx2KSwKK1NPQ19TSU5HTEVfVExWKCJSaWdodCBEaWdpdGFsIFNpZGV0b25lIFZvbHVtZSIsIFdNODk5MF9ESUdJVEFMX1NJREVfVE9ORSwKKwlXTTg5OTBfQURDUl9EQUNfU1ZPTF9TSElGVCwgV004OTkwX0FEQ1JfREFDX1NWT0xfTUFTSywgMCwKKwlvdXRfc2lkZXRvbmVfdGx2KSwKKworU09DX1NJTkdMRSgiQURDIERpZ2l0YWwgSGlnaCBQYXNzIEZpbHRlciBTd2l0Y2giLCBXTTg5OTBfQURDX0NUUkwsCisJV004OTkwX0FEQ19IUEZfRU5BX0JJVCwgMSwgMCksCisKK1NPQ19FTlVNKCJBREMgSFBGIE1vZGUiLCB3bTg5OTBfcmlnaHRfYWRjbW9kZV9lbnVtKSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJMZWZ0IEFEQyBEaWdpdGFsIFZvbHVtZSIsCisJV004OTkwX0xFRlRfQURDX0RJR0lUQUxfVk9MVU1FLAorCVdNODk5MF9BRENMX1ZPTF9TSElGVCwKKwlXTTg5OTBfQURDTF9WT0xfTUFTSywKKwkwLAorCWluX2FkY190bHYpLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJpZ2h0IEFEQyBEaWdpdGFsIFZvbHVtZSIsCisJV004OTkwX1JJR0hUX0FEQ19ESUdJVEFMX1ZPTFVNRSwKKwlXTTg5OTBfQURDUl9WT0xfU0hJRlQsCisJV004OTkwX0FEQ1JfVk9MX01BU0ssCisJMCwKKwlpbl9hZGNfdGx2KSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJMSU4xMiBWb2x1bWUiLAorCVdNODk5MF9MRUZUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfTElOMTJWT0xfU0hJRlQsCisJV004OTkwX0xJTjEyVk9MX01BU0ssCisJMCwKKwlpbl9wZ2FfdGx2KSwKKworU09DX1NJTkdMRSgiTElOMTIgWkMgU3dpdGNoIiwgV004OTkwX0xFRlRfTElORV9JTlBVVF8xXzJfVk9MVU1FLAorCVdNODk5MF9MSTEyWkNfQklULCAxLCAwKSwKKworU09DX1NJTkdMRSgiTElOMTIgTXV0ZSBTd2l0Y2giLCBXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzFfMl9WT0xVTUUsCisJV004OTkwX0xJMTJNVVRFX0JJVCwgMSwgMCksCisKK1NPQ19XTTg5OVhfT1VUUEdBX1NJTkdMRV9SX1RMVigiTElOMzQgVm9sdW1lIiwKKwlXTTg5OTBfTEVGVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX0xJTjM0Vk9MX1NISUZULAorCVdNODk5MF9MSU4zNFZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIkxJTjM0IFpDIFN3aXRjaCIsIFdNODk5MF9MRUZUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSwKKwlXTTg5OTBfTEkzNFpDX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIkxJTjM0IE11dGUgU3dpdGNoIiwgV004OTkwX0xFRlRfTElORV9JTlBVVF8zXzRfVk9MVU1FLAorCVdNODk5MF9MSTM0TVVURV9CSVQsIDEsIDApLAorCitTT0NfV004OTlYX09VVFBHQV9TSU5HTEVfUl9UTFYoIlJJTjEyIFZvbHVtZSIsCisJV004OTkwX1JJR0hUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfUklOMTJWT0xfU0hJRlQsCisJV004OTkwX1JJTjEyVk9MX01BU0ssCisJMCwKKwlpbl9wZ2FfdGx2KSwKKworU09DX1NJTkdMRSgiUklOMTIgWkMgU3dpdGNoIiwgV004OTkwX1JJR0hUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfUkkxMlpDX0JJVCwgMSwgMCksCisKK1NPQ19TSU5HTEUoIlJJTjEyIE11dGUgU3dpdGNoIiwgV004OTkwX1JJR0hUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSwKKwlXTTg5OTBfUkkxMk1VVEVfQklULCAxLCAwKSwKKworU09DX1dNODk5WF9PVVRQR0FfU0lOR0xFX1JfVExWKCJSSU4zNCBWb2x1bWUiLAorCVdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX1JJTjM0Vk9MX1NISUZULAorCVdNODk5MF9SSU4zNFZPTF9NQVNLLAorCTAsCisJaW5fcGdhX3RsdiksCisKK1NPQ19TSU5HTEUoIlJJTjM0IFpDIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX1JJMzRaQ19CSVQsIDEsIDApLAorCitTT0NfU0lOR0xFKCJSSU4zNCBNdXRlIFN3aXRjaCIsIFdNODk5MF9SSUdIVF9MSU5FX0lOUFVUXzNfNF9WT0xVTUUsCisJV004OTkwX1JJMzRNVVRFX0JJVCwgMSwgMCksCisKK307CisKKy8qIGFkZCBub24gZGFwbSBjb250cm9scyAqLworc3RhdGljIGludCB3bTg5OTBfYWRkX2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK3sKKwlpbnQgZXJyLCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204OTkwX3NuZF9jb250cm9scyk7IGkrKykgeworCQllcnIgPSBzbmRfY3RsX2FkZChjb2RlYy0+Y2FyZCwKKwkJCQlzbmRfc29jX2NuZXcoJndtODk5MF9zbmRfY29udHJvbHNbaV0sIGNvZGVjLAorCQkJCQlOVUxMKSk7CisJCWlmIChlcnIgPCAwKQorCQkJcmV0dXJuIGVycjsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBfREFQTV8gQ29udHJvbHMKKyAqLworCitzdGF0aWMgaW50IGlubWl4ZXJfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncsCisJc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsIGludCBldmVudCkKK3sKKwl1MTYgcmVnLCBmYWtlcG93ZXI7CisKKwlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUody0+Y29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIpOworCWZha2Vwb3dlciA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX0lOVERSSVZCSVRTKTsKKworCWlmIChmYWtlcG93ZXIgJiAoKDEgPDwgV004OTkwX0lOTUlYTF9QV1JfQklUKSB8CisJCSgxIDw8IFdNODk5MF9BSU5MTVVYX1BXUl9CSVQpKSkgeworCQlyZWcgfD0gV004OTkwX0FJTkxfRU5BOworCX0gZWxzZSB7CisJCXJlZyAmPSB+V004OTkwX0FJTkxfRU5BOworCX0KKworCWlmIChmYWtlcG93ZXIgJiAoKDEgPDwgV004OTkwX0lOTUlYUl9QV1JfQklUKSB8CisJCSgxIDw8IFdNODk5MF9BSU5STVVYX1BXUl9CSVQpKSkgeworCQlyZWcgfD0gV004OTkwX0FJTlJfRU5BOworCX0gZWxzZSB7CisJCXJlZyAmPSB+V004OTkwX0FJTkxfRU5BOworCX0KKwl3bTg5OTBfd3JpdGUody0+Y29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBvdXRtaXhlcl9ldmVudChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywKKwlzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQoreworCXUzMiByZWdfc2hpZnQgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmZmOworCWludCByZXQgPSAwOworCXUxNiByZWc7CisKKwlzd2l0Y2ggKHJlZ19zaGlmdCkgeworCWNhc2UgV004OTkwX1NQRUFLRVJfTUlYRVIgfCAoV004OTkwX0xEU1BLX0JJVCA8PCA4KSA6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX09VVFBVVF9NSVhFUjEpOworCQlpZiAocmVnICYgV004OTkwX0xETE8pIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJDYW5ub3Qgc2V0IGFzIE91dHB1dCBNaXhlciAxIExETE8gU2V0XG4iKTsKKwkJCXJldCA9IC0xOworCQl9CisJCWJyZWFrOworCWNhc2UgV004OTkwX1NQRUFLRVJfTUlYRVIgfCAoV004OTkwX1JEU1BLX0JJVCA8PCA4KToKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKHctPmNvZGVjLCBXTTg5OTBfT1VUUFVUX01JWEVSMik7CisJCWlmIChyZWcgJiBXTTg5OTBfUkRSTykgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJIkNhbm5vdCBzZXQgYXMgT3V0cHV0IE1peGVyIDIgUkRSTyBTZXRcbiIpOworCQkJcmV0ID0gLTE7CisJCX0KKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfT1VUUFVUX01JWEVSMSB8IChXTTg5OTBfTERMT19CSVQgPDwgOCk6CisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZSh3LT5jb2RlYywgV004OTkwX1NQRUFLRVJfTUlYRVIpOworCQlpZiAocmVnICYgV004OTkwX0xEU1BLKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCQkiQ2Fubm90IHNldCBhcyBTcGVha2VyIE1peGVyIExEU1BLIFNldFxuIik7CisJCQlyZXQgPSAtMTsKKwkJfQorCQlicmVhazsKKwljYXNlIFdNODk5MF9PVVRQVVRfTUlYRVIyIHwgKFdNODk5MF9SRFJPX0JJVCA8PCA4KToKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKHctPmNvZGVjLCBXTTg5OTBfU1BFQUtFUl9NSVhFUik7CisJCWlmIChyZWcgJiBXTTg5OTBfUkRTUEspIHsKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcKKwkJCSJDYW5ub3Qgc2V0IGFzIFNwZWFrZXIgTWl4ZXIgUkRTUEsgU2V0XG4iKTsKKwkJCXJldCA9IC0xOworCQl9CisJCWJyZWFrOworCX0KKworCXJldHVybiByZXQ7Cit9CisKKy8qIElOTUlYIGRCIHZhbHVlcyAqLworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBpbl9taXhfdGx2W10gPSB7CisJVExWX0RCX1JBTkdFX0hFQUQoMSksCisJMCwgNywgVExWX0RCX0xJTkVBUl9JVEVNKC0xMjAwLCA2MDApLAorfTsKKworLyogTGVmdCBJbiBQR0EgQ29ubmVjdGlvbnMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9saW4xMl9wZ2FfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTElOMSBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfTE1OMV9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMSU4yIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9MTVAyX0JJVCwgMSwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fbGluMzRfcGdhX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxJTjMgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX0xNTjNfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTElONCBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfTE1QNF9CSVQsIDEsIDApLAorfTsKKworLyogUmlnaHQgSW4gUEdBIENvbm5lY3Rpb25zICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcmluMTJfcGdhX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIlJJTjEgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX1JNTjFfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUklOMiBTd2l0Y2giLCBXTTg5OTBfSU5QVVRfTUlYRVIyLCBXTTg5OTBfUk1QMl9CSVQsIDEsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3JpbjM0X3BnYV9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJSSU4zIFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjIsIFdNODk5MF9STU4zX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJJTjQgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMiwgV004OTkwX1JNUDRfQklULCAxLCAwKSwKK307CisKKy8qIElOTUlYTCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2lubWl4bF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFX1RMVigiUmVjb3JkIExlZnQgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSMywKKwlXTTg5OTBfTERCVk9MX1NISUZULCBXTTg5OTBfTERCVk9MX01BU0ssIDAsIGluX21peF90bHYpLAorU09DX0RBUE1fU0lOR0xFX1RMVigiTElOMiBWb2x1bWUiLCBXTTg5OTBfSU5QVVRfTUlYRVI1LCBXTTg5OTBfTEkyQlZPTF9TSElGVCwKKwk3LCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRSgiTElOUEdBMTIgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX0wxMk1OQl9CSVQsCisJMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxJTlBHQTM0IFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMzRNTkJfQklULAorCTEsIDApLAorfTsKKworLyogSU5NSVhSICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1faW5taXhyX2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEVfVExWKCJSZWNvcmQgUmlnaHQgVm9sdW1lIiwgV004OTkwX0lOUFVUX01JWEVSNCwKKwlXTTg5OTBfUkRCVk9MX1NISUZULCBXTTg5OTBfUkRCVk9MX01BU0ssIDAsIGluX21peF90bHYpLAorU09DX0RBUE1fU0lOR0xFX1RMVigiUklOMiBWb2x1bWUiLCBXTTg5OTBfSU5QVVRfTUlYRVI2LCBXTTg5OTBfUkkyQlZPTF9TSElGVCwKKwk3LCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRSgiUklOUEdBMTIgU3dpdGNoIiwgV004OTkwX0lOUFVUX01JWEVSMywgV004OTkwX0wxMk1OQl9CSVQsCisJMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJJTlBHQTM0IFN3aXRjaCIsIFdNODk5MF9JTlBVVF9NSVhFUjMsIFdNODk5MF9MMzRNTkJfQklULAorCTEsIDApLAorfTsKKworLyogQUlOTE1VWCAqLworc3RhdGljIGNvbnN0IGNoYXIgKndtODk5MF9haW5sbXV4W10gPQorCXsiSU5NSVhMIE1peCIsICJSWFZPSUNFIE1peCIsICJESUZGSU5MIE1peCJ9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvY19lbnVtIHdtODk5MF9haW5sbXV4X2VudW0gPQorU09DX0VOVU1fU0lOR0xFKFdNODk5MF9JTlBVVF9NSVhFUjEsIFdNODk5MF9BSU5MTU9ERV9TSElGVCwKKwlBUlJBWV9TSVpFKHdtODk5MF9haW5sbXV4KSwgd204OTkwX2FpbmxtdXgpOworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fYWlubG11eF9jb250cm9scyA9CitTT0NfREFQTV9FTlVNKCJSb3V0ZSIsIHdtODk5MF9haW5sbXV4X2VudW0pOworCisvKiBESUZGSU5MICovCisKKy8qIEFJTlJNVVggKi8KK3N0YXRpYyBjb25zdCBjaGFyICp3bTg5OTBfYWlucm11eFtdID0KKwl7IklOTUlYUiBNaXgiLCAiUlhWT0lDRSBNaXgiLCAiRElGRklOUiBNaXgifTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2NfZW51bSB3bTg5OTBfYWlucm11eF9lbnVtID0KK1NPQ19FTlVNX1NJTkdMRShXTTg5OTBfSU5QVVRfTUlYRVIxLCBXTTg5OTBfQUlOUk1PREVfU0hJRlQsCisJQVJSQVlfU0laRSh3bTg5OTBfYWlucm11eCksIHdtODk5MF9haW5ybXV4KTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2FpbnJtdXhfY29udHJvbHMgPQorU09DX0RBUE1fRU5VTSgiUm91dGUiLCB3bTg5OTBfYWlucm11eF9lbnVtKTsKKworLyogUlhWT0lDRSAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3J4dm9pY2VfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIkxJTjQvUlhOIiwgV004OTkwX0lOUFVUX01JWEVSNSwgV004OTkwX0xSNEJWT0xfU0hJRlQsCisJCQlXTTg5OTBfTFI0QlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK1NPQ19EQVBNX1NJTkdMRV9UTFYoIlJJTjQvUlhQIiwgV004OTkwX0lOUFVUX01JWEVSNiwgV004OTkwX1JMNEJWT0xfU0hJRlQsCisJCQlXTTg5OTBfUkw0QlZPTF9NQVNLLCAwLCBpbl9taXhfdGx2KSwKK307CisKKy8qIExPTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fbG9taXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggUmlnaHQgQURDIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTFJCTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIxLAorCVdNODk5MF9MTEJMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBSSU4zIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTFJJM0xPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIExJTjMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIxLAorCVdNODk5MF9MTEkzTE9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9NSVggUklOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTFIxMkxPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTUlYIExJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjEsCisJV004OTkwX0xMMTJMT19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT01JWCBMZWZ0IERBQyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMSwKKwlXTTg5OTBfTERMT19CSVQsIDEsIDApLAorfTsKKworLyogUk9NSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yb21peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJST01JWCBMZWZ0IEFEQyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JMQlJPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJpZ2h0IEFEQyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JSQlJPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIExJTjMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9STEkzUk9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVFBVVF9NSVhFUjIsCisJV004OTkwX1JSSTNST19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9PVVRQVVRfTUlYRVIyLAorCVdNODk5MF9STDEyUk9fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9NSVggUklOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUlIxMlJPX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPTUlYIFJpZ2h0IERBQyBTd2l0Y2giLCBXTTg5OTBfT1VUUFVUX01JWEVSMiwKKwlXTTg5OTBfUkRST19CSVQsIDEsIDApLAorfTsKKworLyogTE9OTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fbG9ubWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIkxPTk1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xMT1BHQUxPTl9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJMT05NSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMSwKKwlXTTg5OTBfTFJPUEdBTE9OX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIkxPTk1JWCBJbnZlcnRlZCBMT1AgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIxLAorCVdNODk5MF9MT1BMT05fQklULCAxLCAwKSwKK307CisKKy8qIExPUE1JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX2xvcG1peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJMT1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xSMTJMT1BfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9QTUlYIExlZnQgTWljIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjEsCisJV004OTkwX0xMMTJMT1BfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiTE9QTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMSwKKwlXTTg5OTBfTExPUEdBTE9QX0JJVCwgMSwgMCksCit9OworCisvKiBST05NSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9yb25taXhfY29udHJvbHNbXSA9IHsKK1NPQ19EQVBNX1NJTkdMRSgiUk9OTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JST1BHQVJPTl9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST05NSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9STE9QR0FST05fQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiUk9OTUlYIEludmVydGVkIFJPUCBTd2l0Y2giLCBXTTg5OTBfTElORV9NSVhFUjIsCisJV004OTkwX1JPUFJPTl9CSVQsIDEsIDApLAorfTsKKworLyogUk9QTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fcm9wbWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIlJPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX0xJTkVfTUlYRVIyLAorCVdNODk5MF9STDEyUk9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlJPUE1JWCBSaWdodCBNaWMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUlIxMlJPUF9CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJST1BNSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsIFdNODk5MF9MSU5FX01JWEVSMiwKKwlXTTg5OTBfUlJPUEdBUk9QX0JJVCwgMSwgMCksCit9OworCisvKiBPVVQzTUlYICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgd204OTkwX2RhcG1fb3V0M21peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJPVVQzTUlYIExJTjQvUlhQIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfT1VUM180X01JWEVSLAorCVdNODk5MF9MSTRPM19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJPVVQzTUlYIExlZnQgT3V0IFBHQSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X01JWEVSLAorCVdNODk5MF9MUEdBTzNfQklULCAxLCAwKSwKK307CisKKy8qIE9VVDRNSVggKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg5OTBfZGFwbV9vdXQ0bWl4X2NvbnRyb2xzW10gPSB7CitTT0NfREFQTV9TSU5HTEUoIk9VVDRNSVggUmlnaHQgT3V0IFBHQSBTd2l0Y2giLCBXTTg5OTBfT1VUM180X01JWEVSLAorCVdNODk5MF9SUEdBTzRfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiT1VUNE1JWCBSSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgV004OTkwX09VVDNfNF9NSVhFUiwKKwlXTTg5OTBfUkk0TzRfQklULCAxLCAwKSwKK307CisKKy8qIFNQS01JWCAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IHdtODk5MF9kYXBtX3Nwa21peF9jb250cm9sc1tdID0geworU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggTElOMiBCeXBhc3MgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX0xJMlNQS19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggTEFEQyBCeXBhc3MgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX0xCMlNQS19CSVQsIDEsIDApLAorU09DX0RBUE1fU0lOR0xFKCJTUEtNSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgV004OTkwX1NQRUFLRVJfTUlYRVIsCisJV004OTkwX0xPUEdBU1BLX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBMZWZ0IERBQyBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfTERTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIFJpZ2h0IERBQyBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfUkRTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfUk9QR0FTUEtfQklULCAxLCAwKSwKK1NPQ19EQVBNX1NJTkdMRSgiU1BLTUlYIFJBREMgQnlwYXNzIFN3aXRjaCIsIFdNODk5MF9TUEVBS0VSX01JWEVSLAorCVdNODk5MF9STDEyUk9QX0JJVCwgMSwgMCksCitTT0NfREFQTV9TSU5HTEUoIlNQS01JWCBSSU4yIEJ5cGFzcyBTd2l0Y2giLCBXTTg5OTBfU1BFQUtFUl9NSVhFUiwKKwlXTTg5OTBfUkkyU1BLX0JJVCwgMSwgMCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgd204OTkwX2RhcG1fd2lkZ2V0c1tdID0geworLyogSW5wdXQgU2lkZSAqLworLyogSW5wdXQgTGluZXMgKi8KK1NORF9TT0NfREFQTV9JTlBVVCgiTElOMSIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJMSU4yIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIkxJTjMiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiTElONC9SWE4iKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiUklOMyIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJSSU40L1JYUCIpLAorU05EX1NPQ19EQVBNX0lOUFVUKCJSSU4xIiksCitTTkRfU09DX0RBUE1fSU5QVVQoIlJJTjIiKSwKK1NORF9TT0NfREFQTV9JTlBVVCgiSW50ZXJuYWwgQURDIFNvdXJjZSIpLAorCisvKiBEQUNzICovCitTTkRfU09DX0RBUE1fQURDKCJMZWZ0IEFEQyIsICJMZWZ0IENhcHR1cmUiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLAorCVdNODk5MF9BRENMX0VOQV9CSVQsIDApLAorU05EX1NPQ19EQVBNX0FEQygiUmlnaHQgQURDIiwgIlJpZ2h0IENhcHR1cmUiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLAorCVdNODk5MF9BRENSX0VOQV9CSVQsIDApLAorCisvKiBJbnB1dCBQR0FzICovCitTTkRfU09DX0RBUE1fTUlYRVIoIkxJTjEyIFBHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIFdNODk5MF9MSU4xMl9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9saW4xMl9wZ2FfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9saW4xMl9wZ2FfY29udHJvbHMpKSwKK1NORF9TT0NfREFQTV9NSVhFUigiTElOMzQgUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwgV004OTkwX0xJTjM0X0VOQV9CSVQsCisJMCwgJndtODk5MF9kYXBtX2xpbjM0X3BnYV9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX2xpbjM0X3BnYV9jb250cm9scykpLAorU05EX1NPQ19EQVBNX01JWEVSKCJSSU4xMiBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yLCBXTTg5OTBfUklOMTJfRU5BX0JJVCwKKwkwLCAmd204OTkwX2RhcG1fcmluMTJfcGdhX2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fcmluMTJfcGdhX2NvbnRyb2xzKSksCitTTkRfU09DX0RBUE1fTUlYRVIoIlJJTjM0IFBHQSIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIFdNODk5MF9SSU4zNF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9yaW4zNF9wZ2FfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yaW4zNF9wZ2FfY29udHJvbHMpKSwKKworLyogSU5NSVhMICovCitTTkRfU09DX0RBUE1fTUlYRVJfRSgiSU5NSVhMIiwgV004OTkwX0lOVERSSVZCSVRTLCBXTTg5OTBfSU5NSVhMX1BXUl9CSVQsIDAsCisJJndtODk5MF9kYXBtX2lubWl4bF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX2lubWl4bF9jb250cm9scyksCisJaW5taXhlcl9ldmVudCwgU05EX1NPQ19EQVBNX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BPU1RfUE1EKSwKKworLyogQUlOTE1VWCAqLworU05EX1NPQ19EQVBNX01VWF9FKCJBSUxOTVVYIiwgV004OTkwX0lOVERSSVZCSVRTLCBXTTg5OTBfQUlOTE1VWF9QV1JfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9haW5sbXV4X2NvbnRyb2xzLCBpbm1peGVyX2V2ZW50LAorCVNORF9TT0NfREFQTV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksCisKKy8qIElOTUlYUiAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIklOTUlYUiIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0lOTUlYUl9QV1JfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9pbm1peHJfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9pbm1peHJfY29udHJvbHMpLAorCWlubWl4ZXJfZXZlbnQsIFNORF9TT0NfREFQTV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QT1NUX1BNRCksCisKKy8qIEFJTlJNVVggKi8KK1NORF9TT0NfREFQTV9NVVhfRSgiQUlSTk1VWCIsIFdNODk5MF9JTlREUklWQklUUywgV004OTkwX0FJTlJNVVhfUFdSX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fYWlucm11eF9jb250cm9scywgaW5taXhlcl9ldmVudCwKKwlTTkRfU09DX0RBUE1fUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUE9TVF9QTUQpLAorCisvKiBPdXRwdXQgU2lkZSAqLworLyogREFDcyAqLworU05EX1NPQ19EQVBNX0RBQygiTGVmdCBEQUMiLCAiTGVmdCBQbGF5YmFjayIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsCisJV004OTkwX0RBQ0xfRU5BX0JJVCwgMCksCitTTkRfU09DX0RBUE1fREFDKCJSaWdodCBEQUMiLCAiUmlnaHQgUGxheWJhY2siLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLAorCVdNODk5MF9EQUNSX0VOQV9CSVQsIDApLAorCisvKiBMT01JWCAqLworU05EX1NPQ19EQVBNX01JWEVSX0UoIkxPTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPTUlYX0VOQV9CSVQsCisJMCwgJndtODk5MF9kYXBtX2xvbWl4X2NvbnRyb2xzWzBdLAorCUFSUkFZX1NJWkUod204OTkwX2RhcG1fbG9taXhfY29udHJvbHMpLAorCW91dG1peGVyX2V2ZW50LCBTTkRfU09DX0RBUE1fUFJFX1JFRyksCisKKy8qIExPTk1JWCAqLworU05EX1NPQ19EQVBNX01JWEVSKCJMT05NSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLCBXTTg5OTBfTE9OX0VOQV9CSVQsIDAsCisJJndtODk5MF9kYXBtX2xvbm1peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX2xvbm1peF9jb250cm9scykpLAorCisvKiBMT1BNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiTE9QTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX0xPUF9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9sb3BtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9sb3BtaXhfY29udHJvbHMpKSwKKworLyogT1VUM01JWCAqLworU05EX1NPQ19EQVBNX01JWEVSKCJPVVQzTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX09VVDNfRU5BX0JJVCwgMCwKKwkmd204OTkwX2RhcG1fb3V0M21peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX291dDNtaXhfY29udHJvbHMpKSwKKworLyogU1BLTUlYICovCitTTkRfU09DX0RBUE1fTUlYRVJfRSgiU1BLTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgV004OTkwX1NQS19FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9zcGttaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9zcGttaXhfY29udHJvbHMpLCBvdXRtaXhlcl9ldmVudCwKKwlTTkRfU09DX0RBUE1fUFJFX1JFRyksCisKKy8qIE9VVDRNSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiT1VUNE1JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzEsIFdNODk5MF9PVVQ0X0VOQV9CSVQsIDAsCisJJndtODk5MF9kYXBtX291dDRtaXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9vdXQ0bWl4X2NvbnRyb2xzKSksCisKKy8qIFJPUE1JWCAqLworU05EX1NPQ19EQVBNX01JWEVSKCJST1BNSVgiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLCBXTTg5OTBfUk9QX0VOQV9CSVQsIDAsCisJJndtODk5MF9kYXBtX3JvcG1peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX3JvcG1peF9jb250cm9scykpLAorCisvKiBST05NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUigiUk9OTUlYIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX1JPTl9FTkFfQklULCAwLAorCSZ3bTg5OTBfZGFwbV9yb25taXhfY29udHJvbHNbMF0sCisJQVJSQVlfU0laRSh3bTg5OTBfZGFwbV9yb25taXhfY29udHJvbHMpKSwKKworLyogUk9NSVggKi8KK1NORF9TT0NfREFQTV9NSVhFUl9FKCJST01JWCIsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzMsIFdNODk5MF9ST01JWF9FTkFfQklULAorCTAsICZ3bTg5OTBfZGFwbV9yb21peF9jb250cm9sc1swXSwKKwlBUlJBWV9TSVpFKHdtODk5MF9kYXBtX3JvbWl4X2NvbnRyb2xzKSwKKwlvdXRtaXhlcl9ldmVudCwgU05EX1NPQ19EQVBNX1BSRV9SRUcpLAorCisvKiBMT1VUIFBHQSAqLworU05EX1NPQ19EQVBNX1BHQSgiTE9VVCBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCBXTTg5OTBfTE9VVF9FTkFfQklULCAwLAorCU5VTEwsIDApLAorCisvKiBST1VUIFBHQSAqLworU05EX1NPQ19EQVBNX1BHQSgiUk9VVCBQR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCBXTTg5OTBfUk9VVF9FTkFfQklULCAwLAorCU5VTEwsIDApLAorCisvKiBMT1BHQSAqLworU05EX1NPQ19EQVBNX1BHQSgiTE9QR0EiLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8zLCBXTTg5OTBfTE9QR0FfRU5BX0JJVCwgMCwKKwlOVUxMLCAwKSwKKworLyogUk9QR0EgKi8KK1NORF9TT0NfREFQTV9QR0EoIlJPUEdBIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMywgV004OTkwX1JPUEdBX0VOQV9CSVQsIDAsCisJTlVMTCwgMCksCisKKy8qIE1JQ0JJQVMgKi8KK1NORF9TT0NfREFQTV9NSUNCSUFTKCJNSUNCSUFTIiwgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwKKwlXTTg5OTBfTUlDQklBU19FTkFfQklULCAwKSwKKworU05EX1NPQ19EQVBNX09VVFBVVCgiTE9OIiksCitTTkRfU09DX0RBUE1fT1VUUFVUKCJMT1AiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIk9VVDMiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIkxPVVQiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlNQS04iKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlNQS1AiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlJPVVQiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIk9VVDQiKSwKK1NORF9TT0NfREFQTV9PVVRQVVQoIlJPUCIpLAorU05EX1NPQ19EQVBNX09VVFBVVCgiUk9OIiksCisKK1NORF9TT0NfREFQTV9PVVRQVVQoIkludGVybmFsIERBQyBTaW5rIiksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKKwkvKiBNYWtlIERBQ3MgdHVybiBvbiB3aGVuIHBsYXlpbmcgZXZlbiBpZiBub3QgbWl4ZWQgaW50byBhbnkgb3V0cHV0cyAqLworCXsiSW50ZXJuYWwgREFDIFNpbmsiLCBOVUxMLCAiTGVmdCBEQUMifSwKKwl7IkludGVybmFsIERBQyBTaW5rIiwgTlVMTCwgIlJpZ2h0IERBQyJ9LAorCisJLyogTWFrZSBBRENzIHR1cm4gb24gd2hlbiByZWNvcmRpbmcgZXZlbiBpZiBub3QgbWl4ZWQgZnJvbSBhbnkgaW5wdXRzICovCisJeyJMZWZ0IEFEQyIsIE5VTEwsICJJbnRlcm5hbCBBREMgU291cmNlIn0sCisJeyJSaWdodCBBREMiLCBOVUxMLCAiSW50ZXJuYWwgQURDIFNvdXJjZSJ9LAorCisJLyogSW5wdXQgU2lkZSAqLworCS8qIExJTjEyIFBHQSAqLworCXsiTElOMTIgUEdBIiwgIkxJTjEgU3dpdGNoIiwgIkxJTjEifSwKKwl7IkxJTjEyIFBHQSIsICJMSU4yIFN3aXRjaCIsICJMSU4yIn0sCisJLyogTElOMzQgUEdBICovCisJeyJMSU4zNCBQR0EiLCAiTElOMyBTd2l0Y2giLCAiTElOMyJ9LAorCXsiTElOMzQgUEdBIiwgIkxJTjQgU3dpdGNoIiwgIkxJTjQifSwKKwkvKiBJTk1JWEwgKi8KKwl7IklOTUlYTCIsICJSZWNvcmQgTGVmdCBWb2x1bWUiLCAiTE9NSVgifSwKKwl7IklOTUlYTCIsICJMSU4yIFZvbHVtZSIsICJMSU4yIn0sCisJeyJJTk1JWEwiLCAiTElOUEdBMTIgU3dpdGNoIiwgIkxJTjEyIFBHQSJ9LAorCXsiSU5NSVhMIiwgIkxJTlBHQTM0IFN3aXRjaCIsICJMSU4zNCBQR0EifSwKKwkvKiBBSUxOTVVYICovCisJeyJBSUxOTVVYIiwgIklOTUlYTCBNaXgiLCAiSU5NSVhMIn0sCisJeyJBSUxOTVVYIiwgIkRJRkZJTkwgTWl4IiwgIkxJTjEyUEdBIn0sCisJeyJBSUxOTVVYIiwgIkRJRkZJTkwgTWl4IiwgIkxJTjM0UEdBIn0sCisJeyJBSUxOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIkxJTjQvUlhOIn0sCisJeyJBSUxOTVVYIiwgIlJYVk9JQ0UgTWl4IiwgIlJJTjQvUlhQIn0sCisJLyogQURDICovCisJeyJMZWZ0IEFEQyIsIE5VTEwsICJBSUxOTVVYIn0sCisKKwkvKiBSSU4xMiBQR0EgKi8KKwl7IlJJTjEyIFBHQSIsICJSSU4xIFN3aXRjaCIsICJSSU4xIn0sCisJeyJSSU4xMiBQR0EiLCAiUklOMiBTd2l0Y2giLCAiUklOMiJ9LAorCS8qIFJJTjM0IFBHQSAqLworCXsiUklOMzQgUEdBIiwgIlJJTjMgU3dpdGNoIiwgIlJJTjMifSwKKwl7IlJJTjM0IFBHQSIsICJSSU40IFN3aXRjaCIsICJSSU40In0sCisJLyogSU5NSVhMICovCisJeyJJTk1JWFIiLCAiUmVjb3JkIFJpZ2h0IFZvbHVtZSIsICJST01JWCJ9LAorCXsiSU5NSVhSIiwgIlJJTjIgVm9sdW1lIiwgIlJJTjIifSwKKwl7IklOTUlYUiIsICJSSU5QR0ExMiBTd2l0Y2giLCAiUklOMTIgUEdBIn0sCisJeyJJTk1JWFIiLCAiUklOUEdBMzQgU3dpdGNoIiwgIlJJTjM0IFBHQSJ9LAorCS8qIEFJUk5NVVggKi8KKwl7IkFJUk5NVVgiLCAiSU5NSVhSIE1peCIsICJJTk1JWFIifSwKKwl7IkFJUk5NVVgiLCAiRElGRklOUiBNaXgiLCAiUklOMTJQR0EifSwKKwl7IkFJUk5NVVgiLCAiRElGRklOUiBNaXgiLCAiUklOMzRQR0EifSwKKwl7IkFJUk5NVVgiLCAiUlhWT0lDRSBNaXgiLCAiUklONC9SWE4ifSwKKwl7IkFJUk5NVVgiLCAiUlhWT0lDRSBNaXgiLCAiUklONC9SWFAifSwKKwkvKiBBREMgKi8KKwl7IlJpZ2h0IEFEQyIsIE5VTEwsICJBSVJOTVVYIn0sCisKKwkvKiBMT01JWCAqLworCXsiTE9NSVgiLCAiTE9NSVggUklOMyBCeXBhc3MgU3dpdGNoIiwgIlJJTjMifSwKKwl7IkxPTUlYIiwgIkxPTUlYIExJTjMgQnlwYXNzIFN3aXRjaCIsICJMSU4zIn0sCisJeyJMT01JWCIsICJMT01JWCBMSU4xMiBQR0EgQnlwYXNzIFN3aXRjaCIsICJMSU4xMiBQR0EifSwKKwl7IkxPTUlYIiwgIkxPTUlYIFJJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgIlJJTjEyIFBHQSJ9LAorCXsiTE9NSVgiLCAiTE9NSVggUmlnaHQgQURDIEJ5cGFzcyBTd2l0Y2giLCAiQUlOUk1VWCJ9LAorCXsiTE9NSVgiLCAiTE9NSVggTGVmdCBBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5MTVVYIn0sCisJeyJMT01JWCIsICJMT01JWCBMZWZ0IERBQyBTd2l0Y2giLCAiTGVmdCBEQUMifSwKKworCS8qIFJPTUlYICovCisJeyJST01JWCIsICJST01JWCBSSU4zIEJ5cGFzcyBTd2l0Y2giLCAiUklOMyJ9LAorCXsiUk9NSVgiLCAiUk9NSVggTElOMyBCeXBhc3MgU3dpdGNoIiwgIkxJTjMifSwKKwl7IlJPTUlYIiwgIlJPTUlYIExJTjEyIFBHQSBCeXBhc3MgU3dpdGNoIiwgIkxJTjEyIFBHQSJ9LAorCXsiUk9NSVgiLCAiUk9NSVggUklOMTIgUEdBIEJ5cGFzcyBTd2l0Y2giLCAiUklOMTIgUEdBIn0sCisJeyJST01JWCIsICJST01JWCBSaWdodCBBREMgQnlwYXNzIFN3aXRjaCIsICJBSU5STVVYIn0sCisJeyJST01JWCIsICJST01JWCBMZWZ0IEFEQyBCeXBhc3MgU3dpdGNoIiwgIkFJTkxNVVgifSwKKwl7IlJPTUlYIiwgIlJPTUlYIFJpZ2h0IERBQyBTd2l0Y2giLCAiUmlnaHQgREFDIn0sCisKKwkvKiBTUEtNSVggKi8KKwl7IlNQS01JWCIsICJTUEtNSVggTElOMiBCeXBhc3MgU3dpdGNoIiwgIkxJTjIifSwKKwl7IlNQS01JWCIsICJTUEtNSVggUklOMiBCeXBhc3MgU3dpdGNoIiwgIlJJTjIifSwKKwl7IlNQS01JWCIsICJTUEtNSVggTEFEQyBCeXBhc3MgU3dpdGNoIiwgIkFJTkxNVVgifSwKKwl7IlNQS01JWCIsICJTUEtNSVggUkFEQyBCeXBhc3MgU3dpdGNoIiwgIkFJTlJNVVgifSwKKwl7IlNQS01JWCIsICJTUEtNSVggTGVmdCBNaXhlciBQR0EgU3dpdGNoIiwgIkxPUEdBIn0sCisJeyJTUEtNSVgiLCAiU1BLTUlYIFJpZ2h0IE1peGVyIFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKwl7IlNQS01JWCIsICJTUEtNSVggUmlnaHQgREFDIFN3aXRjaCIsICJSaWdodCBEQUMifSwKKwl7IlNQS01JWCIsICJTUEtNSVggTGVmdCBEQUMgU3dpdGNoIiwgIlJpZ2h0IERBQyJ9LAorCisJLyogTE9OTUlYICovCisJeyJMT05NSVgiLCAiTE9OTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCXsiTE9OTUlYIiwgIkxPTk1JWCBSaWdodCBNaXhlciBQR0EgU3dpdGNoIiwgIlJPUEdBIn0sCisJeyJMT05NSVgiLCAiTE9OTUlYIEludmVydGVkIExPUCBTd2l0Y2giLCAiTE9QTUlYIn0sCisKKwkvKiBMT1BNSVggKi8KKwl7IkxPUE1JWCIsICJMT1BNSVggUmlnaHQgTWljIEJ5cGFzcyBTd2l0Y2giLCAiUklOMTIgUEdBIn0sCisJeyJMT1BNSVgiLCAiTE9QTUlYIExlZnQgTWljIEJ5cGFzcyBTd2l0Y2giLCAiTElOMTIgUEdBIn0sCisJeyJMT1BNSVgiLCAiTE9QTUlYIExlZnQgTWl4ZXIgUEdBIFN3aXRjaCIsICJMT1BHQSJ9LAorCisJLyogT1VUM01JWCAqLworCXsiT1VUM01JWCIsICJPVVQzTUlYIExJTjQvUlhQIEJ5cGFzcyBTd2l0Y2giLCAiTElONC9SWFAifSwKKwl7Ik9VVDNNSVgiLCAiT1VUM01JWCBMZWZ0IE91dCBQR0EgU3dpdGNoIiwgIkxPUEdBIn0sCisKKwkvKiBPVVQ0TUlYICovCisJeyJPVVQ0TUlYIiwgIk9VVDRNSVggUmlnaHQgT3V0IFBHQSBTd2l0Y2giLCAiUk9QR0EifSwKKwl7Ik9VVDRNSVgiLCAiT1VUNE1JWCBSSU40L1JYUCBCeXBhc3MgU3dpdGNoIiwgIlJJTjQvUlhQIn0sCisKKwkvKiBST05NSVggKi8KKwl7IlJPTk1JWCIsICJST05NSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsICJST1BHQSJ9LAorCXsiUk9OTUlYIiwgIlJPTk1JWCBMZWZ0IE1peGVyIFBHQSBTd2l0Y2giLCAiTE9QR0EifSwKKwl7IlJPTk1JWCIsICJST05NSVggSW52ZXJ0ZWQgUk9QIFN3aXRjaCIsICJST1BNSVgifSwKKworCS8qIFJPUE1JWCAqLworCXsiUk9QTUlYIiwgIlJPUE1JWCBMZWZ0IE1pYyBCeXBhc3MgU3dpdGNoIiwgIkxJTjEyIFBHQSJ9LAorCXsiUk9QTUlYIiwgIlJPUE1JWCBSaWdodCBNaWMgQnlwYXNzIFN3aXRjaCIsICJSSU4xMiBQR0EifSwKKwl7IlJPUE1JWCIsICJST1BNSVggUmlnaHQgTWl4ZXIgUEdBIFN3aXRjaCIsICJST1BHQSJ9LAorCisJLyogT3V0IE1peGVyIFBHQXMgKi8KKwl7IkxPUEdBIiwgTlVMTCwgIkxPTUlYIn0sCisJeyJST1BHQSIsIE5VTEwsICJST01JWCJ9LAorCisJeyJMT1VUIFBHQSIsIE5VTEwsICJMT01JWCJ9LAorCXsiUk9VVCBQR0EiLCBOVUxMLCAiUk9NSVgifSwKKworCS8qIE91dHB1dCBQaW5zICovCisJeyJMT04iLCBOVUxMLCAiTE9OTUlYIn0sCisJeyJMT1AiLCBOVUxMLCAiTE9QTUlYIn0sCisJeyJPVVQiLCBOVUxMLCAiT1VUM01JWCJ9LAorCXsiTE9VVCIsIE5VTEwsICJMT1VUIFBHQSJ9LAorCXsiU1BLTiIsIE5VTEwsICJTUEtNSVgifSwKKwl7IlJPVVQiLCBOVUxMLCAiUk9VVCBQR0EifSwKKwl7Ik9VVDQiLCBOVUxMLCAiT1VUNE1JWCJ9LAorCXsiUk9QIiwgTlVMTCwgIlJPUE1JWCJ9LAorCXsiUk9OIiwgTlVMTCwgIlJPTk1JWCJ9LAorfTsKKworc3RhdGljIGludCB3bTg5OTBfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQoreworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODk5MF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODk5MF9kYXBtX3dpZGdldHMpKTsKKworCS8qIHNldCB1cCB0aGUgV004OTkwIGF1ZGlvIG1hcCAqLworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwlzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMoY29kZWMpOworCXJldHVybiAwOworfQorCisvKiBQTEwgZGl2aXNvcnMgKi8KK3N0cnVjdCBfcGxsX2RpdiB7CisJdTMyIGRpdjI7CisJdTMyIG47CisJdTMyIGs7Cit9OworCisvKiBUaGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSBwbGwgZGl2aWRlIG11bHRpcGxpZWQgYnkgMTAKKyAqIHRvIGFsbG93IHJvdW5kaW5nIGxhdGVyICovCisjZGVmaW5lIEZJWEVEX1BMTF9TSVpFICgoMSA8PCAxNikgKiAxMCkKKworc3RhdGljIHZvaWQgcGxsX2ZhY3RvcnMoc3RydWN0IF9wbGxfZGl2ICpwbGxfZGl2LCB1bnNpZ25lZCBpbnQgdGFyZ2V0LAorCXVuc2lnbmVkIGludCBzb3VyY2UpCit7CisJdTY0IEtwYXJ0OworCXVuc2lnbmVkIGludCBLLCBOZGl2LCBObW9kOworCisKKwlOZGl2ID0gdGFyZ2V0IC8gc291cmNlOworCWlmIChOZGl2IDwgNikgeworCQlzb3VyY2UgPj49IDE7CisJCXBsbF9kaXYtPmRpdjIgPSAxOworCQlOZGl2ID0gdGFyZ2V0IC8gc291cmNlOworCX0gZWxzZQorCQlwbGxfZGl2LT5kaXYyID0gMDsKKworCWlmICgoTmRpdiA8IDYpIHx8IChOZGl2ID4gMTIpKQorCQlwcmludGsoS0VSTl9XQVJOSU5HCisJCSJXTTg5OTAgTiB2YWx1ZSBvdXR3aXRoIHJlY29tbWVuZGVkIHJhbmdlISBOID0gJWRcbiIsIE5kaXYpOworCisJcGxsX2Rpdi0+biA9IE5kaXY7CisJTm1vZCA9IHRhcmdldCAlIHNvdXJjZTsKKwlLcGFydCA9IEZJWEVEX1BMTF9TSVpFICogKGxvbmcgbG9uZylObW9kOworCisJZG9fZGl2KEtwYXJ0LCBzb3VyY2UpOworCisJSyA9IEtwYXJ0ICYgMHhGRkZGRkZGRjsKKworCS8qIENoZWNrIGlmIHdlIG5lZWQgdG8gcm91bmQgKi8KKwlpZiAoKEsgJSAxMCkgPj0gNSkKKwkJSyArPSA1OworCisJLyogTW92ZSBkb3duIHRvIHByb3BlciByYW5nZSBub3cgcm91bmRpbmcgaXMgZG9uZSAqLworCUsgLz0gMTA7CisKKwlwbGxfZGl2LT5rID0gSzsKK30KKworc3RhdGljIGludCB3bTg5OTBfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpCit7CisJdTE2IHJlZzsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXN0cnVjdCBfcGxsX2RpdiBwbGxfZGl2OworCisJaWYgKGZyZXFfaW4gJiYgZnJlcV9vdXQpIHsKKwkJcGxsX2ZhY3RvcnMoJnBsbF9kaXYsIGZyZXFfb3V0ICogNCwgZnJlcV9pbik7CisKKwkJLyogVHVybiBvbiBQTEwgKi8KKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8yKTsKKwkJcmVnIHw9IFdNODk5MF9QTExfRU5BOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIsIHJlZyk7CisKKwkJLyogc3lzY2xrIGNvbWVzIGZyb20gUExMICovCisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIpOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yLCByZWcgfCBXTTg5OTBfU1lTQ0xLX1NSQyk7CisKKwkJLyogc2V0IHVwIE4gLCBmcmFjdGlvbmFsIG1vZGUgYW5kIHByZS1kaXZpc29yIGlmIG5lY2Nlc3NhcnkgKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUExMMSwgcGxsX2Rpdi5uIHwgV004OTkwX1NETSB8CisJCQkocGxsX2Rpdi5kaXYyP1dNODk5MF9QUkVTQ0FMRTowKSk7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BMTDIsICh1OCkocGxsX2Rpdi5rPj44KSk7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BMTDMsICh1OCkocGxsX2Rpdi5rICYgMHhGRikpOworCX0gZWxzZSB7CisJCS8qIFR1cm4gb24gUExMICovCisJCXJlZyA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMik7CisJCXJlZyAmPSB+V004OTkwX1BMTF9FTkE7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwgcmVnKTsKKwl9CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDbG9jayBhZnRlciBQTEwgYW5kIGRpdmlkZXJzCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAorCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOworCXN0cnVjdCB3bTg5OTBfcHJpdiAqd204OTkwID0gY29kZWMtPnByaXZhdGVfZGF0YTsKKworCXdtODk5MC0+c3lzY2xrID0gZnJlcTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNldCdzIEFEQyBhbmQgVm9pY2UgREFDIGZvcm1hdC4KKyAqLworc3RhdGljIGludCB3bTg5OTBfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCXVuc2lnbmVkIGludCBmbXQpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgYXVkaW8xLCBhdWRpbzM7CisKKwlhdWRpbzEgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMSk7CisJYXVkaW8zID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzMpOworCisJLyogc2V0IG1hc3Rlci9zbGF2ZSBhdWRpbyBpbnRlcmZhY2UgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX01BU1RFUl9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTOgorCQlhdWRpbzMgJj0gfldNODk5MF9BSUZfTVNUUjE7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTToKKwkJYXVkaW8zIHw9IFdNODk5MF9BSUZfTVNUUjE7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9GTVRfTUFTSzsKKworCS8qIGludGVyZmFjZSBmb3JtYXQgKi8KKwlzd2l0Y2ggKGZtdCAmIFNORF9TT0NfREFJRk1UX0ZPUk1BVF9NQVNLKSB7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9JMlM6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9JMlM7CisJCWF1ZGlvMSAmPSB+V004OTkwX0FJRl9MUkNMS19JTlY7CisJCWJyZWFrOworCWNhc2UgU05EX1NPQ19EQUlGTVRfUklHSFRfSjoKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfVE1GX1JJR0hUSjsKKwkJYXVkaW8xICY9IH5XTTg5OTBfQUlGX0xSQ0xLX0lOVjsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9MRUZUX0o6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1RNRl9MRUZUSjsKKwkJYXVkaW8xICY9IH5XTTg5OTBfQUlGX0xSQ0xLX0lOVjsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQToKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfVE1GX0RTUDsKKwkJYXVkaW8xICY9IH5XTTg5OTBfQUlGX0xSQ0xLX0lOVjsKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0RBSUZNVF9EU1BfQjoKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfVE1GX0RTUCB8IFdNODk5MF9BSUZfTFJDTEtfSU5WOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMSwgYXVkaW8xKTsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMywgYXVkaW8zKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfc2V0X2RhaV9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCisJCWludCBkaXZfaWQsIGludCBkaXYpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gY29kZWNfZGFpLT5jb2RlYzsKKwl1MTYgcmVnOworCisJc3dpdGNoIChkaXZfaWQpIHsKKwljYXNlIFdNODk5MF9NQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMikgJgorCQkJfldNODk5MF9NQ0xLX0RJVl9NQVNLOworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yLCByZWcgfCBkaXYpOworCQlicmVhazsKKwljYXNlIFdNODk5MF9EQUNDTEtfRElWOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18yKSAmCisJCQl+V004OTkwX0RBQ19DTEtESVZfTUFTSzsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMiwgcmVnIHwgZGl2KTsKKwkJYnJlYWs7CisJY2FzZSBXTTg5OTBfQURDQ0xLX0RJVjoKKwkJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQ0xPQ0tJTkdfMikgJgorCQkJfldNODk5MF9BRENfQ0xLRElWX01BU0s7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzIsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWNhc2UgV004OTkwX0JDTEtfRElWOgorCQlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9DTE9DS0lOR18xKSAmCisJCQl+V004OTkwX0JDTEtfRElWX01BU0s7CisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0NMT0NLSU5HXzEsIHJlZyB8IGRpdik7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogU2V0IFBDTSBEQUkgYml0IHNpemUgYW5kIHNhbXBsZSByYXRlLgorICovCitzdGF0aWMgaW50IHdtODk5MF9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCisJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCit7CisJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgYXVkaW8xID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzEpOworCisJYXVkaW8xICY9IH5XTTg5OTBfQUlGX1dMX01BU0s7CisJLyogYml0IHNpemUgKi8KKwlzd2l0Y2ggKHBhcmFtc19mb3JtYXQocGFyYW1zKSkgeworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMTZfTEU6CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMjBfM0xFOgorCQlhdWRpbzEgfD0gV004OTkwX0FJRl9XTF8yMEJJVFM7CisJCWJyZWFrOworCWNhc2UgU05EUlZfUENNX0ZPUk1BVF9TMjRfTEU6CisJCWF1ZGlvMSB8PSBXTTg5OTBfQUlGX1dMXzI0QklUUzsKKwkJYnJlYWs7CisJY2FzZSBTTkRSVl9QQ01fRk9STUFUX1MzMl9MRToKKwkJYXVkaW8xIHw9IFdNODk5MF9BSUZfV0xfMzJCSVRTOworCQlicmVhazsKKwl9CisKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfMSwgYXVkaW8xKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfbXV0ZShzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgaW50IG11dGUpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gZGFpLT5jb2RlYzsKKwl1MTYgdmFsOworCisJdmFsICA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0RBQ19DVFJMKSAmIH5XTTg5OTBfREFDX01VVEU7CisKKwlpZiAobXV0ZSkKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfREFDX0NUUkwsIHZhbCB8IFdNODk5MF9EQUNfTVVURSk7CisJZWxzZQorCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9EQUNfQ1RSTCwgdmFsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHdtODk5MF9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCisJZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCit7CisJdTE2IHZhbDsKKworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfUFJFUEFSRToKKwkJYnJlYWs7CisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKKwkJaWYgKGNvZGVjLT5iaWFzX2xldmVsID09IFNORF9TT0NfQklBU19PRkYpIHsKKwkJCS8qIEVuYWJsZSBhbGwgb3V0cHV0IGRpc2NoYXJnZSBiaXRzICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMSwgV004OTkwX0RJU19MTElORSB8CisJCQkJV004OTkwX0RJU19STElORSB8IFdNODk5MF9ESVNfT1VUMyB8CisJCQkJV004OTkwX0RJU19PVVQ0IHwgV004OTkwX0RJU19MT1VUIHwKKwkJCQlXTTg5OTBfRElTX1JPVVQpOworCisJCQkvKiBFbmFibGUgUE9CQ1RSTCwgU09GVF9TVCwgVk1JRFRPRyBhbmQgQlVGRENPUEVOICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX1NPRlRTVCB8CisJCQkJICAgICBXTTg5OTBfQlVGRENPUEVOIHwgV004OTkwX1BPQkNUUkwgfAorCQkJCSAgICAgV004OTkwX1ZNSURUT0cpOworCisJCQkvKiBEZWxheSB0byBhbGxvdyBvdXRwdXQgY2FwcyB0byBkaXNjaGFyZ2UgKi8KKwkJCW1zbGVlcChtc2Vjc190b19qaWZmaWVzKDMwMCkpOworCisJCQkvKiBEaXNhYmxlIFZNSURUT0cgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AyLCBXTTg5OTBfU09GVFNUIHwKKwkJCQkgICAgIFdNODk5MF9CVUZEQ09QRU4gfCBXTTg5OTBfUE9CQ1RSTCk7CisKKwkJCS8qIGRpc2FibGUgYWxsIG91dHB1dCBkaXNjaGFyZ2UgYml0cyAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDEsIDApOworCisJCQkvKiBFbmFibGUgb3V0cHV0cyAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCAweDFiMDApOworCisJCQltc2xlZXAobXNlY3NfdG9famlmZmllcyg1MCkpOworCisJCQkvKiBFbmFibGUgVk1JRCBhdCAyeDUwayAqLworCQkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCAweDFmMDIpOworCisJCQltc2xlZXAobXNlY3NfdG9famlmZmllcygxMDApKTsKKworCQkJLyogRW5hYmxlIFZSRUYgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAzKTsKKworCQkJbXNsZWVwKG1zZWNzX3RvX2ppZmZpZXMoNjAwKSk7CisKKwkJCS8qIEVuYWJsZSBCVUZJT0VOICovCisJCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX1NPRlRTVCB8CisJCQkJICAgICBXTTg5OTBfQlVGRENPUEVOIHwgV004OTkwX1BPQkNUUkwgfAorCQkJCSAgICAgV004OTkwX0JVRklPRU4pOworCisJCQkvKiBEaXNhYmxlIG91dHB1dHMgKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgzKTsKKworCQkJLyogZGlzYWJsZSBQT0JDVFJMLCBTT0ZUX1NUIGFuZCBCVUZEQ09QRU4gKi8KKwkJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AyLCBXTTg5OTBfQlVGSU9FTik7CisJCX0gZWxzZSB7CisJCQkvKiBPTiAtPiBzdGFuZGJ5ICovCisKKwkJfQorCQlicmVhazsKKworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJLyogRW5hYmxlIFBPQkNUUkwgYW5kIFNPRlRfU1QgKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQU5USVBPUDIsIFdNODk5MF9TT0ZUU1QgfAorCQkJV004OTkwX1BPQkNUUkwgfCBXTTg5OTBfQlVGSU9FTik7CisKKwkJLyogRW5hYmxlIFBPQkNUUkwsIFNPRlRfU1QgYW5kIEJVRkRDT1BFTiAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgV004OTkwX1NPRlRTVCB8CisJCQlXTTg5OTBfQlVGRENPUEVOIHwgV004OTkwX1BPQkNUUkwgfAorCQkJV004OTkwX0JVRklPRU4pOworCisJCS8qIG11dGUgREFDICovCisJCXZhbCA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZShjb2RlYywgV004OTkwX0RBQ19DVFJMKTsKKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfREFDX0NUUkwsIHZhbCB8IFdNODk5MF9EQUNfTVVURSk7CisKKwkJLyogRW5hYmxlIGFueSBkaXNhYmxlZCBvdXRwdXRzICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgxZjAzKTsKKworCQkvKiBEaXNhYmxlIFZNSUQgKi8KKwkJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfUE9XRVJfTUFOQUdFTUVOVF8xLCAweDFmMDEpOworCisJCW1zbGVlcChtc2Vjc190b19qaWZmaWVzKDMwMCkpOworCisJCS8qIEVuYWJsZSBhbGwgb3V0cHV0IGRpc2NoYXJnZSBiaXRzICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX0FOVElQT1AxLCBXTTg5OTBfRElTX0xMSU5FIHwKKwkJCVdNODk5MF9ESVNfUkxJTkUgfCBXTTg5OTBfRElTX09VVDMgfAorCQkJV004OTkwX0RJU19PVVQ0IHwgV004OTkwX0RJU19MT1VUIHwKKwkJCVdNODk5MF9ESVNfUk9VVCk7CisKKwkJLyogRGlzYWJsZSBWUkVGICovCisJCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSwgMHgwKTsKKworCQkvKiBkaXNhYmxlIFBPQkNUUkwsIFNPRlRfU1QgYW5kIEJVRkRDT1BFTiAqLworCQl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9BTlRJUE9QMiwgMHgwKTsKKwkJYnJlYWs7CisJfQorCisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKKwlyZXR1cm4gMDsKK30KKworI2RlZmluZSBXTTg5OTBfUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgfCBTTkRSVl9QQ01fUkFURV8xMTAyNSB8XAorCVNORFJWX1BDTV9SQVRFXzE2MDAwIHwgU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8IFwKKwlTTkRSVl9QQ01fUkFURV80ODAwMCkKKworI2RlZmluZSBXTTg5OTBfRk9STUFUUyAoU05EUlZfUENNX0ZNVEJJVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk1UQklUX1MyMF8zTEUgfFwKKwlTTkRSVl9QQ01fRk1UQklUX1MyNF9MRSB8IFNORFJWX1BDTV9GTVRCSVRfUzMyX0xFKQorCisvKgorICogVGhlIFdNODk5MCBzdXBwb3J0cyAyIGRpZmZlcmVudCBhbmQgbXV0dWFsbHkgZXhjbHVzaXZlIERBSQorICogY29uZmlndXJhdGlvbnMuCisgKgorICogMS4gQURDL0RBQyBvbiBQcmltYXJ5IEludGVyZmFjZQorICogMi4gQURDIG9uIFByaW1hcnkgSW50ZXJmYWNlL0RBQyBvbiBzZWNvbmRhcnkKKyAqLworc3RydWN0IHNuZF9zb2NfZGFpIHdtODk5MF9kYWkgPSB7CisvKiBBREMvREFDIG9uIHByaW1hcnkgKi8KKwkubmFtZSA9ICJXTTg5OTAgQURDL0RBQyBQcmltYXJ5IiwKKwkuaWQgPSAxLAorCS5wbGF5YmFjayA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIlBsYXliYWNrIiwKKwkJLmNoYW5uZWxzX21pbiA9IDEsCisJCS5jaGFubmVsc19tYXggPSAyLAorCQkucmF0ZXMgPSBXTTg5OTBfUkFURVMsCisJCS5mb3JtYXRzID0gV004OTkwX0ZPUk1BVFMsfSwKKwkuY2FwdHVyZSA9IHsKKwkJLnN0cmVhbV9uYW1lID0gIkNhcHR1cmUiLAorCQkuY2hhbm5lbHNfbWluID0gMSwKKwkJLmNoYW5uZWxzX21heCA9IDIsCisJCS5yYXRlcyA9IFdNODk5MF9SQVRFUywKKwkJLmZvcm1hdHMgPSBXTTg5OTBfRk9STUFUUyx9LAorCS5vcHMgPSB7CisJCS5od19wYXJhbXMgPSB3bTg5OTBfaHdfcGFyYW1zLH0sCisJLmRhaV9vcHMgPSB7CisJCS5kaWdpdGFsX211dGUgPSB3bTg5OTBfbXV0ZSwKKwkJLnNldF9mbXQgPSB3bTg5OTBfc2V0X2RhaV9mbXQsCisJCS5zZXRfY2xrZGl2ID0gd204OTkwX3NldF9kYWlfY2xrZGl2LAorCQkuc2V0X3BsbCA9IHdtODk5MF9zZXRfZGFpX3BsbCwKKwkJLnNldF9zeXNjbGsgPSB3bTg5OTBfc2V0X2RhaV9zeXNjbGssCisJfSwKK307CitFWFBPUlRfU1lNQk9MX0dQTCh3bTg5OTBfZGFpKTsKKworc3RhdGljIGludCB3bTg5OTBfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCisJLyogd2Ugb25seSBuZWVkIHRvIHN1c3BlbmQgaWYgd2UgYXJlIGEgdmFsaWQgY2FyZCAqLworCWlmICghY29kZWMtPmNhcmQpCisJCXJldHVybiAwOworCisJd204OTkwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfT0ZGKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCWludCBpOworCXU4IGRhdGFbMl07CisJdTE2ICpjYWNoZSA9IGNvZGVjLT5yZWdfY2FjaGU7CisKKwkvKiB3ZSBvbmx5IG5lZWQgdG8gcmVzdW1lIGlmIHdlIGFyZSBhIHZhbGlkIGNhcmQgKi8KKwlpZiAoIWNvZGVjLT5jYXJkKQorCQlyZXR1cm4gMDsKKworCS8qIFN5bmMgcmVnX2NhY2hlIHdpdGggdGhlIGhhcmR3YXJlICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204OTkwX3JlZyk7IGkrKykgeworCQlpZiAoaSArIDEgPT0gV004OTkwX1JFU0VUKQorCQkJY29udGludWU7CisJCWRhdGFbMF0gPSAoKGkgKyAxKSA8PCAxKSB8ICgoY2FjaGVbaV0gPj4gOCkgJiAweDAwMDEpOworCQlkYXRhWzFdID0gY2FjaGVbaV0gJiAweDAwZmY7CisJCWNvZGVjLT5od193cml0ZShjb2RlYy0+Y29udHJvbF9kYXRhLCBkYXRhLCAyKTsKKwl9CisKKwl3bTg5OTBfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIGluaXRpYWxpc2UgdGhlIFdNODk5MCBkcml2ZXIKKyAqIHJlZ2lzdGVyIHRoZSBtaXhlciBhbmQgZHNwIGludGVyZmFjZXMgd2l0aCB0aGUga2VybmVsCisgKi8KK3N0YXRpYyBpbnQgd204OTkwX2luaXQoc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwl1MTYgcmVnOworCWludCByZXQgPSAwOworCisJY29kZWMtPm5hbWUgPSAiV004OTkwIjsKKwljb2RlYy0+b3duZXIgPSBUSElTX01PRFVMRTsKKwljb2RlYy0+cmVhZCA9IHdtODk5MF9yZWFkX3JlZ19jYWNoZTsKKwljb2RlYy0+d3JpdGUgPSB3bTg5OTBfd3JpdGU7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd204OTkwX3NldF9iaWFzX2xldmVsOworCWNvZGVjLT5kYWkgPSAmd204OTkwX2RhaTsKKwljb2RlYy0+bnVtX2RhaSA9IDI7CisJY29kZWMtPnJlZ19jYWNoZV9zaXplID0gQVJSQVlfU0laRSh3bTg5OTBfcmVnKTsKKwljb2RlYy0+cmVnX2NhY2hlID0ga21lbWR1cCh3bTg5OTBfcmVnLCBzaXplb2Yod204OTkwX3JlZyksIEdGUF9LRVJORUwpOworCisJaWYgKGNvZGVjLT5yZWdfY2FjaGUgPT0gTlVMTCkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwl3bTg5OTBfcmVzZXQoY29kZWMpOworCisJLyogcmVnaXN0ZXIgcGNtcyAqLworCXJldCA9IHNuZF9zb2NfbmV3X3BjbXMoc29jZGV2LCBTTkRSVl9ERUZBVUxUX0lEWDEsIFNORFJWX0RFRkFVTFRfU1RSMSk7CisJaWYgKHJldCA8IDApIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJ3bTg5OTA6IGZhaWxlZCB0byBjcmVhdGUgcGNtc1xuIik7CisJCWdvdG8gcGNtX2VycjsKKwl9CisKKwkvKiBjaGFyZ2Ugb3V0cHV0IGNhcHMgKi8KKwljb2RlYy0+Ymlhc19sZXZlbCA9IFNORF9TT0NfQklBU19PRkY7CisJd204OTkwX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CisKKwlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9BVURJT19JTlRFUkZBQ0VfNCk7CisJd204OTkwX3dyaXRlKGNvZGVjLCBXTTg5OTBfQVVESU9fSU5URVJGQUNFXzQsIHJlZyB8IFdNODk5MF9BTFJDR1BJTzEpOworCisJcmVnID0gd204OTkwX3JlYWRfcmVnX2NhY2hlKGNvZGVjLCBXTTg5OTBfR1BJTzFfR1BJTzIpICYKKwkJfldNODk5MF9HUElPMV9TRUxfTUFTSzsKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9HUElPMV9HUElPMiwgcmVnIHwgMSk7CisKKwlyZWcgPSB3bTg5OTBfcmVhZF9yZWdfY2FjaGUoY29kZWMsIFdNODk5MF9QT1dFUl9NQU5BR0VNRU5UXzIpOworCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiwgcmVnIHwgV004OTkwX09QQ0xLX0VOQSk7CisKKwl3bTg5OTBfd3JpdGUoY29kZWMsIFdNODk5MF9MRUZUX09VVFBVVF9WT0xVTUUsIDB4NTAgfCAoMTw8OCkpOworCXdtODk5MF93cml0ZShjb2RlYywgV004OTkwX1JJR0hUX09VVFBVVF9WT0xVTUUsIDB4NTAgfCAoMTw8OCkpOworCisJd204OTkwX2FkZF9jb250cm9scyhjb2RlYyk7CisJd204OTkwX2FkZF93aWRnZXRzKGNvZGVjKTsKKwlyZXQgPSBzbmRfc29jX3JlZ2lzdGVyX2NhcmQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcmludGsoS0VSTl9FUlIgIndtODk5MDogZmFpbGVkIHRvIHJlZ2lzdGVyIGNhcmRcbiIpOworCQlnb3RvIGNhcmRfZXJyOworCX0KKwlyZXR1cm4gcmV0OworCitjYXJkX2VycjoKKwlzbmRfc29jX2ZyZWVfcGNtcyhzb2NkZXYpOworCXNuZF9zb2NfZGFwbV9mcmVlKHNvY2Rldik7CitwY21fZXJyOgorCWtmcmVlKGNvZGVjLT5yZWdfY2FjaGUpOworCXJldHVybiByZXQ7Cit9CisKKy8qIElmIHRoZSBpMmMgbGF5ZXIgd2VyZW4ndCBzbyBicm9rZW4sIHdlIGNvdWxkIHBhc3MgdGhpcyBraW5kIG9mIGRhdGEKKyAgIGFyb3VuZCAqLworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSAqd204OTkwX3NvY2RldjsKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKworLyoKKyAqIFdNODkxIDIgd2lyZSBhZGRyZXNzIGlzIGRldGVybWluZWQgYnkgR1BJTzUKKyAqIHN0YXRlIGR1cmluZyBwb3dlcnVwLgorICogICAgbG93ICA9IDB4MzQKKyAqICAgIGhpZ2ggPSAweDM2CisgKi8KK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7IDAsIEkyQ19DTElFTlRfRU5EIH07CisKKy8qIE1hZ2ljIGRlZmluaXRpb24gb2YgYWxsIG90aGVyIHZhcmlhYmxlcyBhbmQgdGhpbmdzICovCitJMkNfQ0xJRU5UX0lOU01PRDsKKworc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIHdtODk5MF9pMmNfZHJpdmVyOworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0ZTsKKworc3RhdGljIGludCB3bTg5OTBfY29kZWNfcHJvYmUoc3RydWN0IGkyY19hZGFwdGVyICphZGFwLCBpbnQgYWRkciwgaW50IGtpbmQpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSB3bTg5OTBfc29jZGV2OworCXN0cnVjdCB3bTg5OTBfc2V0dXBfZGF0YSAqc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjOworCWludCByZXQ7CisKKwlpZiAoYWRkciAhPSBzZXR1cC0+aTJjX2FkZHJlc3MpCisJCXJldHVybiAtRU5PREVWOworCisJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOworCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKKworCWkyYyA9ICBrbWVtZHVwKCZjbGllbnRfdGVtcGxhdGUsIHNpemVvZihjbGllbnRfdGVtcGxhdGUpLCBHRlBfS0VSTkVMKTsKKwlpZiAoaTJjID09IE5VTEwpIHsKKwkJa2ZyZWUoY29kZWMpOworCQlyZXR1cm4gLUVOT01FTTsKKwl9CisJaTJjX3NldF9jbGllbnRkYXRhKGkyYywgY29kZWMpOworCWNvZGVjLT5jb250cm9sX2RhdGEgPSBpMmM7CisKKwlyZXQgPSBpMmNfYXR0YWNoX2NsaWVudChpMmMpOworCWlmIChyZXQgPCAwKSB7CisJCXByX2VycigiZmFpbGVkIHRvIGF0dGFjaCBjb2RlYyBhdCBhZGRyICV4XG4iLCBhZGRyKTsKKwkJZ290byBlcnI7CisJfQorCisJcmV0ID0gd204OTkwX2luaXQoc29jZGV2KTsKKwlpZiAocmV0IDwgMCkgeworCQlwcl9lcnIoImZhaWxlZCB0byBpbml0aWFsaXNlIFdNODk5MFxuIik7CisJCWdvdG8gZXJyOworCX0KKwlyZXR1cm4gcmV0OworCitlcnI6CisJa2ZyZWUoY29kZWMpOworCWtmcmVlKGkyYyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCB3bTg5OTBfaTJjX2RldGFjaChzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGkyY19nZXRfY2xpZW50ZGF0YShjbGllbnQpOworCWkyY19kZXRhY2hfY2xpZW50KGNsaWVudCk7CisJa2ZyZWUoY29kZWMtPnJlZ19jYWNoZSk7CisJa2ZyZWUoY2xpZW50KTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCB3bTg5OTBfaTJjX2F0dGFjaChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXApCit7CisJcmV0dXJuIGkyY19wcm9iZShhZGFwLCAmYWRkcl9kYXRhLCB3bTg5OTBfY29kZWNfcHJvYmUpOworfQorCitzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgd204OTkwX2kyY19kcml2ZXIgPSB7CisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiV004OTkwIEkyQyBDb2RlYyIsCisJCS5vd25lciA9IFRISVNfTU9EVUxFLAorCX0sCisJLmF0dGFjaF9hZGFwdGVyID0gd204OTkwX2kyY19hdHRhY2gsCisJLmRldGFjaF9jbGllbnQgPSAgd204OTkwX2kyY19kZXRhY2gsCisJLmNvbW1hbmQgPSAgICAgICAgTlVMTCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgaTJjX2NsaWVudCBjbGllbnRfdGVtcGxhdGUgPSB7CisJLm5hbWUgPSAgICJXTTg5OTAiLAorCS5kcml2ZXIgPSAmd204OTkwX2kyY19kcml2ZXIsCit9OworI2VuZGlmCisKK3N0YXRpYyBpbnQgd204OTkwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgd204OTkwX3NldHVwX2RhdGEgKnNldHVwOworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYzsKKwlzdHJ1Y3Qgd204OTkwX3ByaXYgKndtODk5MDsKKwlpbnQgcmV0ID0gMDsKKworCXByX2luZm8oIldNODk5MCBBdWRpbyBDb2RlYyAlc1xuIiwgV004OTkwX1ZFUlNJT04pOworCisJc2V0dXAgPSBzb2NkZXYtPmNvZGVjX2RhdGE7CisJY29kZWMgPSBremFsbG9jKHNpemVvZihzdHJ1Y3Qgc25kX3NvY19jb2RlYyksIEdGUF9LRVJORUwpOworCWlmIChjb2RlYyA9PSBOVUxMKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXdtODk5MCA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCB3bTg5OTBfcHJpdiksIEdGUF9LRVJORUwpOworCWlmICh3bTg5OTAgPT0gTlVMTCkgeworCQlrZnJlZShjb2RlYyk7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWNvZGVjLT5wcml2YXRlX2RhdGEgPSB3bTg5OTA7CisJc29jZGV2LT5jb2RlYyA9IGNvZGVjOworCW11dGV4X2luaXQoJmNvZGVjLT5tdXRleCk7CisJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOworCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CisJd204OTkwX3NvY2RldiA9IHNvY2RldjsKKworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpZiAoc2V0dXAtPmkyY19hZGRyZXNzKSB7CisJCW5vcm1hbF9pMmNbMF0gPSBzZXR1cC0+aTJjX2FkZHJlc3M7CisJCWNvZGVjLT5od193cml0ZSA9IChod193cml0ZV90KWkyY19tYXN0ZXJfc2VuZDsKKwkJcmV0ID0gaTJjX2FkZF9kcml2ZXIoJndtODk5MF9pMmNfZHJpdmVyKTsKKwkJaWYgKHJldCAhPSAwKQorCQkJcHJpbnRrKEtFUk5fRVJSICJjYW4ndCBhZGQgaTJjIGRyaXZlciIpOworCX0KKyNlbHNlCisJCS8qIEFkZCBvdGhlciBpbnRlcmZhY2VzIGhlcmUgKi8KKyNlbmRpZgorCXJldHVybiByZXQ7Cit9CisKKy8qIHBvd2VyIGRvd24gY2hpcCAqLworc3RhdGljIGludCB3bTg5OTBfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOworCisJaWYgKGNvZGVjLT5jb250cm9sX2RhdGEpCisJCXdtODk5MF9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09GRik7CisJc25kX3NvY19mcmVlX3BjbXMoc29jZGV2KTsKKwlzbmRfc29jX2RhcG1fZnJlZShzb2NkZXYpOworI2lmIGRlZmluZWQoQ09ORklHX0kyQykgfHwgZGVmaW5lZChDT05GSUdfSTJDX01PRFVMRSkKKwlpMmNfZGVsX2RyaXZlcigmd204OTkwX2kyY19kcml2ZXIpOworI2VuZGlmCisJa2ZyZWUoY29kZWMtPnByaXZhdGVfZGF0YSk7CisJa2ZyZWUoY29kZWMpOworCisJcmV0dXJuIDA7Cit9CisKK3N0cnVjdCBzbmRfc29jX2NvZGVjX2RldmljZSBzb2NfY29kZWNfZGV2X3dtODk5MCA9IHsKKwkucHJvYmUgPQl3bTg5OTBfcHJvYmUsCisJLnJlbW92ZSA9CXdtODk5MF9yZW1vdmUsCisJLnN1c3BlbmQgPQl3bTg5OTBfc3VzcGVuZCwKKwkucmVzdW1lID0Jd204OTkwX3Jlc3VtZSwKK307CitFWFBPUlRfU1lNQk9MX0dQTChzb2NfY29kZWNfZGV2X3dtODk5MCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiQVNvQyBXTTg5OTAgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJMaWFtIEdpcmR3b29kIik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODk5MC5oIGIvc291bmQvc29jL2NvZGVjcy93bTg5OTAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmVhNTc0Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTg5OTAuaApAQCAtMCwwICsxLDgzMiBAQAorLyoKKyAqIHdtODk5MC5oICAtLSAgYXVkaW8gZHJpdmVyIGZvciBXTTg5OTAKKyAqCisgKiBDb3B5cmlnaHQgMjAwNyBXb2xmc29uIE1pY3JvZWxlY3Ryb25pY3MgUExDLgorICogQXV0aG9yOiBHcmFlbWUgR3JlZ29yeQorICogICAgICAgICBncmFlbWUuZ3JlZ29yeUB3b2xmc29ubWljcm8uY29tIG9yIGxpbnV4QHdvbGZzb25taWNyby5jb20KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlICBpdCBhbmQvb3IgbW9kaWZ5IGl0CisgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCisgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKi8KKworI2lmbmRlZiBfX1dNODk5MFJFR0lTVEVSREVGU19IX18KKyNkZWZpbmUgX19XTTg5OTBSRUdJU1RFUkRFRlNfSF9fCisKKy8qCisgKiBSZWdpc3RlciB2YWx1ZXMuCisgKi8KKyNkZWZpbmUgV004OTkwX1JFU0VUICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAKKyNkZWZpbmUgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMSAgICAgICAgICAgICAgIDB4MDEKKyNkZWZpbmUgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMiAgICAgICAgICAgICAgIDB4MDIKKyNkZWZpbmUgV004OTkwX1BPV0VSX01BTkFHRU1FTlRfMyAgICAgICAgICAgICAgIDB4MDMKKyNkZWZpbmUgV004OTkwX0FVRElPX0lOVEVSRkFDRV8xICAgICAgICAgICAgICAgIDB4MDQKKyNkZWZpbmUgV004OTkwX0FVRElPX0lOVEVSRkFDRV8yICAgICAgICAgICAgICAgIDB4MDUKKyNkZWZpbmUgV004OTkwX0NMT0NLSU5HXzEgICAgICAgICAgICAgICAgICAgICAgIDB4MDYKKyNkZWZpbmUgV004OTkwX0NMT0NLSU5HXzIgICAgICAgICAgICAgICAgICAgICAgIDB4MDcKKyNkZWZpbmUgV004OTkwX0FVRElPX0lOVEVSRkFDRV8zICAgICAgICAgICAgICAgIDB4MDgKKyNkZWZpbmUgV004OTkwX0FVRElPX0lOVEVSRkFDRV80ICAgICAgICAgICAgICAgIDB4MDkKKyNkZWZpbmUgV004OTkwX0RBQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEEKKyNkZWZpbmUgV004OTkwX0xFRlRfREFDX0RJR0lUQUxfVk9MVU1FICAgICAgICAgIDB4MEIKKyNkZWZpbmUgV004OTkwX1JJR0hUX0RBQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgIDB4MEMKKyNkZWZpbmUgV004OTkwX0RJR0lUQUxfU0lERV9UT05FICAgICAgICAgICAgICAgIDB4MEQKKyNkZWZpbmUgV004OTkwX0FEQ19DVFJMICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUKKyNkZWZpbmUgV004OTkwX0xFRlRfQURDX0RJR0lUQUxfVk9MVU1FICAgICAgICAgIDB4MEYKKyNkZWZpbmUgV004OTkwX1JJR0hUX0FEQ19ESUdJVEFMX1ZPTFVNRSAgICAgICAgIDB4MTAKKyNkZWZpbmUgV004OTkwX0dQSU9fQ1RSTF8xICAgICAgICAgICAgICAgICAgICAgIDB4MTIKKyNkZWZpbmUgV004OTkwX0dQSU8xX0dQSU8yICAgICAgICAgICAgICAgICAgICAgIDB4MTMKKyNkZWZpbmUgV004OTkwX0dQSU8zX0dQSU80ICAgICAgICAgICAgICAgICAgICAgIDB4MTQKKyNkZWZpbmUgV004OTkwX0dQSU81X0dQSU82ICAgICAgICAgICAgICAgICAgICAgIDB4MTUKKyNkZWZpbmUgV004OTkwX0dQSU9DVFJMXzIgICAgICAgICAgICAgICAgICAgICAgIDB4MTYKKyNkZWZpbmUgV004OTkwX0dQSU9fUE9MICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTcKKyNkZWZpbmUgV004OTkwX0xFRlRfTElORV9JTlBVVF8xXzJfVk9MVU1FICAgICAgIDB4MTgKKyNkZWZpbmUgV004OTkwX0xFRlRfTElORV9JTlBVVF8zXzRfVk9MVU1FICAgICAgIDB4MTkKKyNkZWZpbmUgV004OTkwX1JJR0hUX0xJTkVfSU5QVVRfMV8yX1ZPTFVNRSAgICAgIDB4MUEKKyNkZWZpbmUgV004OTkwX1JJR0hUX0xJTkVfSU5QVVRfM180X1ZPTFVNRSAgICAgIDB4MUIKKyNkZWZpbmUgV004OTkwX0xFRlRfT1VUUFVUX1ZPTFVNRSAgICAgICAgICAgICAgIDB4MUMKKyNkZWZpbmUgV004OTkwX1JJR0hUX09VVFBVVF9WT0xVTUUgICAgICAgICAgICAgIDB4MUQKKyNkZWZpbmUgV004OTkwX0xJTkVfT1VUUFVUU19WT0xVTUUgICAgICAgICAgICAgIDB4MUUKKyNkZWZpbmUgV004OTkwX09VVDNfNF9WT0xVTUUgICAgICAgICAgICAgICAgICAgIDB4MUYKKyNkZWZpbmUgV004OTkwX0xFRlRfT1BHQV9WT0xVTUUgICAgICAgICAgICAgICAgIDB4MjAKKyNkZWZpbmUgV004OTkwX1JJR0hUX09QR0FfVk9MVU1FICAgICAgICAgICAgICAgIDB4MjEKKyNkZWZpbmUgV004OTkwX1NQRUFLRVJfVk9MVU1FICAgICAgICAgICAgICAgICAgIDB4MjIKKyNkZWZpbmUgV004OTkwX0NMQVNTRDEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjMKKyNkZWZpbmUgV004OTkwX0NMQVNTRDMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjUKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSMSAgICAgICAgICAgICAgICAgICAgIDB4MjcKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSMiAgICAgICAgICAgICAgICAgICAgIDB4MjgKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSMyAgICAgICAgICAgICAgICAgICAgIDB4MjkKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSNCAgICAgICAgICAgICAgICAgICAgIDB4MkEKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSNSAgICAgICAgICAgICAgICAgICAgIDB4MkIKKyNkZWZpbmUgV004OTkwX0lOUFVUX01JWEVSNiAgICAgICAgICAgICAgICAgICAgIDB4MkMKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjEgICAgICAgICAgICAgICAgICAgIDB4MkQKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjIgICAgICAgICAgICAgICAgICAgIDB4MkUKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjMgICAgICAgICAgICAgICAgICAgIDB4MkYKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjQgICAgICAgICAgICAgICAgICAgIDB4MzAKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjUgICAgICAgICAgICAgICAgICAgIDB4MzEKKyNkZWZpbmUgV004OTkwX09VVFBVVF9NSVhFUjYgICAgICAgICAgICAgICAgICAgIDB4MzIKKyNkZWZpbmUgV004OTkwX09VVDNfNF9NSVhFUiAgICAgICAgICAgICAgICAgICAgIDB4MzMKKyNkZWZpbmUgV004OTkwX0xJTkVfTUlYRVIxICAgICAgICAgICAgICAgICAgICAgIDB4MzQKKyNkZWZpbmUgV004OTkwX0xJTkVfTUlYRVIyICAgICAgICAgICAgICAgICAgICAgIDB4MzUKKyNkZWZpbmUgV004OTkwX1NQRUFLRVJfTUlYRVIgICAgICAgICAgICAgICAgICAgIDB4MzYKKyNkZWZpbmUgV004OTkwX0FERElUSU9OQUxfQ09OVFJPTCAgICAgICAgICAgICAgIDB4MzcKKyNkZWZpbmUgV004OTkwX0FOVElQT1AxICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzgKKyNkZWZpbmUgV004OTkwX0FOVElQT1AyICAgICAgICAgICAgICAgICAgICAgICAgIDB4MzkKKyNkZWZpbmUgV004OTkwX01JQ0JJQVMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0EKKyNkZWZpbmUgV004OTkwX1BMTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0MKKyNkZWZpbmUgV004OTkwX1BMTDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0QKKyNkZWZpbmUgV004OTkwX1BMTDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4M0UKKyNkZWZpbmUgV004OTkwX0lOVERSSVZCSVRTCQkJMHgzRgorCisjZGVmaW5lIFdNODk5MF9SRUdJU1RFUl9DT1VOVCAgICAgICAgICAgICAgICAgICA2MAorI2RlZmluZSBXTTg5OTBfTUFYX1JFR0lTVEVSICAgICAgICAgICAgICAgICAgICAgMHgzRgorCisvKgorICogRmllbGQgRGVmaW5pdGlvbnMuCisgKi8KKworLyoKKyAqIFIwICgweDAwKSAtIFJlc2V0CisgKi8KKyNkZWZpbmUgV004OTkwX1NXX1JFU0VUX0NISVBfSURfTUFTSyAgICAgICAgICAgIDB4RkZGRiAgLyogU1dfUkVTRVRfQ0hJUF9JRCAqLworCisvKgorICogUjEgKDB4MDEpIC0gUG93ZXIgTWFuYWdlbWVudCAoMSkKKyAqLworI2RlZmluZSBXTTg5OTBfU1BLX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBTUEtfRU5BICovCisjZGVmaW5lIFdNODk5MF9TUEtfRU5BX0JJVAkJCTEyCisjZGVmaW5lIFdNODk5MF9PVVQzX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIE9VVDNfRU5BICovCisjZGVmaW5lIFdNODk5MF9PVVQzX0VOQV9CSVQJCQkxMQorI2RlZmluZSBXTTg5OTBfT1VUNF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBPVVQ0X0VOQSAqLworI2RlZmluZSBXTTg5OTBfT1VUNF9FTkFfQklUCQkJMTAKKyNkZWZpbmUgV004OTkwX0xPVVRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTE9VVF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xPVVRfRU5BX0JJVAkJCTkKKyNkZWZpbmUgV004OTkwX1JPVVRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUk9VVF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1JPVVRfRU5BX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX01JQ0JJQVNfRU5BICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTUlDQklBU19FTkEgKi8KKyNkZWZpbmUgV004OTkwX01JQ0JJQVNfRU5BX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX1ZNSURfTU9ERV9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDAwNiAgLyogVk1JRF9NT0RFIC0gWzI6MV0gKi8KKyNkZWZpbmUgV004OTkwX1ZSRUZfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogVlJFRl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1ZSRUZfRU5BX0JJVAkJCTAKKworLyoKKyAqIFIyICgweDAyKSAtIFBvd2VyIE1hbmFnZW1lbnQgKDIpCisgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogUExMX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUExMX0VOQV9CSVQJCQkxNQorI2RlZmluZSBXTTg5OTBfVFNIVVRfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBUU0hVVF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX1RTSFVUX0VOQV9CSVQJCQkxNAorI2RlZmluZSBXTTg5OTBfVFNIVVRfT1BESVMgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwICAvKiBUU0hVVF9PUERJUyAqLworI2RlZmluZSBXTTg5OTBfVFNIVVRfT1BESVNfQklUCQkJMTMKKyNkZWZpbmUgV004OTkwX09QQ0xLX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogT1BDTEtfRU5BICovCisjZGVmaW5lIFdNODk5MF9PUENMS19FTkFfQklUCQkJMTEKKyNkZWZpbmUgV004OTkwX0FJTkxfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogQUlOTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FJTkxfRU5BX0JJVAkJCTkKKyNkZWZpbmUgV004OTkwX0FJTlJfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogQUlOUl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0FJTlJfRU5BX0JJVAkJCTgKKyNkZWZpbmUgV004OTkwX0xJTjM0X0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTElOMzRfRU5BICovCisjZGVmaW5lIFdNODk5MF9MSU4zNF9FTkFfQklUCQkJNworI2RlZmluZSBXTTg5OTBfTElOMTJfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBMSU4xMl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xJTjEyX0VOQV9CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9SSU4zNF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIFJJTjM0X0VOQSAqLworI2RlZmluZSBXTTg5OTBfUklOMzRfRU5BX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX1JJTjEyX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogUklOMTJfRU5BICovCisjZGVmaW5lIFdNODk5MF9SSU4xMl9FTkFfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfQURDTF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBBRENMX0VOQSAqLworI2RlZmluZSBXTTg5OTBfQURDTF9FTkFfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfQURDUl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBBRENSX0VOQSAqLworI2RlZmluZSBXTTg5OTBfQURDUl9FTkFfQklUCQkJMAorCisvKgorICogUjMgKDB4MDMpIC0gUG93ZXIgTWFuYWdlbWVudCAoMykKKyAqLworI2RlZmluZSBXTTg5OTBfTE9OX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwICAvKiBMT05fRU5BICovCisjZGVmaW5lIFdNODk5MF9MT05fRU5BX0JJVAkJCTEzCisjZGVmaW5lIFdNODk5MF9MT1BfRU5BICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIExPUF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xPUF9FTkFfQklUCQkJMTIKKyNkZWZpbmUgV004OTkwX1JPTl9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogUk9OX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9OX0VOQV9CSVQJCQkxMQorI2RlZmluZSBXTTg5OTBfUk9QX0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNDAwICAvKiBST1BfRU5BICovCisjZGVmaW5lIFdNODk5MF9ST1BfRU5BX0JJVAkJCTEwCisjZGVmaW5lIFdNODk5MF9MT1BHQV9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExPUEdBX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FfRU5BX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JPUEdBX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUk9QR0FfRU5BICovCisjZGVmaW5lIFdNODk5MF9ST1BHQV9FTkFfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTE9NSVhfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMT01JWF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0xPTUlYX0VOQV9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9ST01JWF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFJPTUlYX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUk9NSVhfRU5BX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0RBQ0xfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogREFDTF9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xfRU5BX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX0RBQ1JfRU5BICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogREFDUl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0RBQ1JfRU5BX0JJVAkJCTAKKworLyoKKyAqIFI0ICgweDA0KSAtIEF1ZGlvIEludGVyZmFjZSAoMSkKKyAqLworI2RlZmluZSBXTTg5OTBfQUlGQURDTF9TUkMgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBBSUZBRENMX1NSQyAqLworI2RlZmluZSBXTTg5OTBfQUlGQURDUl9TUkMgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBBSUZBRENSX1NSQyAqLworI2RlZmluZSBXTTg5OTBfQUlGQURDX1RETSAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwICAvKiBBSUZBRENfVERNICovCisjZGVmaW5lIFdNODk5MF9BSUZBRENfVERNX0NIQU4gICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIEFJRkFEQ19URE1fQ0hBTiAqLworI2RlZmluZSBXTTg5OTBfQUlGX0JDTEtfSU5WICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBBSUZfQkNMS19JTlYgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9MUkNMS19JTlYgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogQUlGX0xSQ0xLX0lOViAqLworI2RlZmluZSBXTTg5OTBfQUlGX1dMX01BU0sgICAgICAgICAgICAgICAgICAgICAgMHgwMDYwICAvKiBBSUZfV0wgLSBbNjo1XSAqLworI2RlZmluZSBXTTg5OTBfQUlGX1dMXzE2QklUUwkJCSgwIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BSUZfV0xfMjBCSVRTCQkJKDEgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FJRl9XTF8yNEJJVFMJCQkoMiA8PCA1KQorI2RlZmluZSBXTTg5OTBfQUlGX1dMXzMyQklUUwkJCSgzIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BSUZfRk1UX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAwMTggIC8qIEFJRl9GTVQgLSBbNDozXSAqLworI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9SSUdIVEoJCQkoMCA8PCAzKQorI2RlZmluZSBXTTg5OTBfQUlGX1RNRl9MRUZUSgkJCSgxIDw8IDMpCisjZGVmaW5lIFdNODk5MF9BSUZfVE1GX0kyUwkJCSgyIDw8IDMpCisjZGVmaW5lIFdNODk5MF9BSUZfVE1GX0RTUAkJCSgzIDw8IDMpCisKKy8qCisgKiBSNSAoMHgwNSkgLSBBdWRpbyBJbnRlcmZhY2UgKDIpCisgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xfU1JDICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogREFDTF9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0RBQ1JfU1JDICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogREFDUl9TUkMgKi8KKyNkZWZpbmUgV004OTkwX0FJRkRBQ19URE0gICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQUlGREFDX1RETSAqLworI2RlZmluZSBXTTg5OTBfQUlGREFDX1RETV9DSEFOICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBBSUZEQUNfVERNX0NIQU4gKi8KKyNkZWZpbmUgV004OTkwX0RBQ19CT09TVF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MEMwMCAgLyogREFDX0JPT1NUICovCisjZGVmaW5lIFdNODk5MF9EQUNfQ09NUCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIERBQ19DT01QICovCisjZGVmaW5lIFdNODk5MF9EQUNfQ09NUE1PREUgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIERBQ19DT01QTU9ERSAqLworI2RlZmluZSBXTTg5OTBfQURDX0NPTVAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBBRENfQ09NUCAqLworI2RlZmluZSBXTTg5OTBfQURDX0NPTVBNT0RFICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBBRENfQ09NUE1PREUgKi8KKyNkZWZpbmUgV004OTkwX0xPT1BCQUNLICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogTE9PUEJBQ0sgKi8KKworLyoKKyAqIFI2ICgweDA2KSAtIENsb2NraW5nICgxKQorICovCisjZGVmaW5lIFdNODk5MF9UT0NMS19SQVRFICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIFRPQ0xLX1JBVEUgKi8KKyNkZWZpbmUgV004OTkwX1RPQ0xLX0VOQSAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogVE9DTEtfRU5BICovCisjZGVmaW5lIFdNODk5MF9PUENMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgICAweDFFMDAgIC8qIE9QQ0xLRElWIC0gWzEyOjldICovCisjZGVmaW5lIFdNODk5MF9EQ0xLRElWX01BU0sgICAgICAgICAgICAgICAgICAgICAweDAxQzAgIC8qIERDTEtESVYgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFFICAvKiBCQ0xLX0RJViAtIFs0OjFdICovCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8xCQkJKDB4MCA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMV81CQkJKDB4MSA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMgkJCSgweDIgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzMJCQkoMHgzIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl80CQkJKDB4NCA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNV81CQkJKDB4NSA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfNgkJCSgweDYgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzgJCQkoMHg3IDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8xMQkJCSgweDggPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzEyCQkJKDB4OSA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMTYJCQkoMHhBIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl8yMgkJCSgweEIgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzI0CQkJKDB4QyA8PCAxKQorI2RlZmluZSBXTTg5OTBfQkNMS19ESVZfMzIJCQkoMHhEIDw8IDEpCisjZGVmaW5lIFdNODk5MF9CQ0xLX0RJVl80NAkJCSgweEUgPDwgMSkKKyNkZWZpbmUgV004OTkwX0JDTEtfRElWXzQ4CQkJKDB4RiA8PCAxKQorCisvKgorICogUjcgKDB4MDcpIC0gQ2xvY2tpbmcgKDIpCisgKi8KKyNkZWZpbmUgV004OTkwX01DTEtfU1JDICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogTUNMS19TUkMgKi8KKyNkZWZpbmUgV004OTkwX1NZU0NMS19TUkMgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogU1lTQ0xLX1NSQyAqLworI2RlZmluZSBXTTg5OTBfQ0xLX0ZPUkNFICAgICAgICAgICAgICAgICAgICAgICAgMHgyMDAwICAvKiBDTEtfRk9SQ0UgKi8KKyNkZWZpbmUgV004OTkwX01DTEtfRElWX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MTgwMCAgLyogTUNMS19ESVYgLSBbMTI6MTFdICovCisjZGVmaW5lIFdNODk5MF9NQ0xLX0RJVl8xCQkJKDAgPDwgMTEpCisjZGVmaW5lIFdNODk5MF9NQ0xLX0RJVl8yCQkJKDIgPDwgMTEpCisjZGVmaW5lIFdNODk5MF9NQ0xLX0lOViAgICAgICAgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1DTEtfSU5WICovCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWX01BU0sgICAgICAgICAgICAgICAgICAweDAwRTAgIC8qIEFEQ19DTEtESVYgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19DTEtESVZfMQkJCSgwIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzFfNQkJCSgxIDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzIJCQkoMiA8PCA1KQorI2RlZmluZSBXTTg5OTBfQURDX0NMS0RJVl8zCQkJKDMgPDwgNSkKKyNkZWZpbmUgV004OTkwX0FEQ19DTEtESVZfNAkJCSg0IDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzVfNQkJCSg1IDw8IDUpCisjZGVmaW5lIFdNODk5MF9BRENfQ0xLRElWXzYJCQkoNiA8PCA1KQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl9NQVNLICAgICAgICAgICAgICAgICAgMHgwMDFDICAvKiBEQUNfQ0xLRElWIC0gWzQ6Ml0gKi8KKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfMQkJCSgwIDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzFfNQkJCSgxIDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzIJCQkoMiA8PCAyKQorI2RlZmluZSBXTTg5OTBfREFDX0NMS0RJVl8zCQkJKDMgPDwgMikKKyNkZWZpbmUgV004OTkwX0RBQ19DTEtESVZfNAkJCSg0IDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzVfNQkJCSg1IDw8IDIpCisjZGVmaW5lIFdNODk5MF9EQUNfQ0xLRElWXzYJCQkoNiA8PCAyKQorCisvKgorICogUjggKDB4MDgpIC0gQXVkaW8gSW50ZXJmYWNlICgzKQorICovCisjZGVmaW5lIFdNODk5MF9BSUZfTVNUUjEgICAgICAgICAgICAgICAgICAgICAgICAweDgwMDAgIC8qIEFJRl9NU1RSMSAqLworI2RlZmluZSBXTTg5OTBfQUlGX01TVFIyICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwICAvKiBBSUZfTVNUUjIgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQUlGX1NFTCAqLworI2RlZmluZSBXTTg5OTBfQURDTFJDX0RJUiAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBBRENMUkNfRElSICovCisjZGVmaW5lIFdNODk5MF9BRENMUkNfUkFURV9NQVNLICAgICAgICAgICAgICAgICAweDA3RkYgIC8qIEFEQ0xSQ19SQVRFICovCisKKy8qCisgKiBSOSAoMHgwOSkgLSBBdWRpbyBJbnRlcmZhY2UgKDQpCisgKi8KKyNkZWZpbmUgV004OTkwX0FMUkNHUElPMSAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMCAgLyogQUxSQ0dQSU8xICovCisjZGVmaW5lIFdNODk5MF9BTFJDQkdQSU82ICAgICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIEFMUkNCR1BJTzYgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9UUklTICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogQUlGX1RSSVMgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xSQ19ESVIgICAgICAgICAgICAgICAgICAgICAgIDB4MDgwMCAgLyogREFDTFJDX0RJUiAqLworI2RlZmluZSBXTTg5OTBfREFDTFJDX1JBVEVfTUFTSyAgICAgICAgICAgICAgICAgMHgwN0ZGICAvKiBEQUNMUkNfUkFURSAqLworCisvKgorICogUjEwICgweDBBKSAtIERBQyBDVFJMCisgKi8KKyNkZWZpbmUgV004OTkwX0FJRl9MUkNMS1JBVEUgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogQUlGX0xSQ0xLUkFURSAqLworI2RlZmluZSBXTTg5OTBfREFDX01PTk8gICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwICAvKiBEQUNfTU9OTyAqLworI2RlZmluZSBXTTg5OTBfREFDX1NCX0ZJTFQgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBEQUNfU0JfRklMVCAqLworI2RlZmluZSBXTTg5OTBfREFDX01VVEVSQVRFICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBEQUNfTVVURVJBVEUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NVVRFTU9ERSAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogREFDX01VVEVNT0RFICovCisjZGVmaW5lIFdNODk5MF9ERUVNUF9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwMzAgIC8qIERFRU1QIC0gWzU6NF0gKi8KKyNkZWZpbmUgV004OTkwX0RBQ19NVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogREFDX01VVEUgKi8KKyNkZWZpbmUgV004OTkwX0RBQ0xfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogREFDTF9EQVRJTlYgKi8KKyNkZWZpbmUgV004OTkwX0RBQ1JfREFUSU5WICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogREFDUl9EQVRJTlYgKi8KKworLyoKKyAqIFIxMSAoMHgwQikgLSBMZWZ0IERBQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9EQUNfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIERBQ19WVSAqLworI2RlZmluZSBXTTg5OTBfREFDTF9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBEQUNMX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9EQUNMX1ZPTF9TSElGVAkJCTAKKy8qCisgKiBSMTIgKDB4MEMpIC0gUmlnaHQgREFDIERpZ2l0YWwgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0RBQ19WVSAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogREFDX1ZVICovCisjZGVmaW5lIFdNODk5MF9EQUNSX1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwRkYgIC8qIERBQ1JfVk9MIC0gWzc6MF0gKi8KKyNkZWZpbmUgV004OTkwX0RBQ1JfVk9MX1NISUZUCQkJMAorLyoKKyAqIFIxMyAoMHgwRCkgLSBEaWdpdGFsIFNpZGUgVG9uZQorICovCisjZGVmaW5lIFdNODk5MF9BRENMX0RBQ19TVk9MX01BU0sgICAgICAgICAgICAgICAweDBGICAvKiBBRENMX0RBQ19TVk9MICovCisjZGVmaW5lIFdNODk5MF9BRENMX0RBQ19TVk9MX1NISUZUCQk5CisjZGVmaW5lIFdNODk5MF9BRENSX0RBQ19TVk9MX01BU0sgICAgICAgICAgICAgICAweDBGICAvKiBBRENSX0RBQ19TVk9MICovCisjZGVmaW5lIFdNODk5MF9BRENSX0RBQ19TVk9MX1NISUZUCQk1CisjZGVmaW5lIFdNODk5MF9BRENfVE9fREFDTF9NQVNLICAgICAgICAgICAgICAgICAweDAzICAvKiBBRENfVE9fREFDTCAtIFszOjJdICovCisjZGVmaW5lIFdNODk5MF9BRENfVE9fREFDTF9TSElGVAkJMgorI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ1JfTUFTSyAgICAgICAgICAgICAgICAgMHgwMyAgLyogQURDX1RPX0RBQ1IgLSBbMTowXSAqLworI2RlZmluZSBXTTg5OTBfQURDX1RPX0RBQ1JfU0hJRlQJCTAKKworLyoKKyAqIFIxNCAoMHgwRSkgLSBBREMgQ1RSTAorICovCisjZGVmaW5lIFdNODk5MF9BRENfSFBGX0VOQSAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFEQ19IUEZfRU5BICovCisjZGVmaW5lIFdNODk5MF9BRENfSFBGX0VOQV9CSVQJCQk4CisjZGVmaW5lIFdNODk5MF9BRENfSFBGX0NVVF9NQVNLICAgICAgICAgICAgICAgICAweDAzICAvKiBBRENfSFBGX0NVVCAtIFs2OjVdICovCisjZGVmaW5lIFdNODk5MF9BRENfSFBGX0NVVF9TSElGVAkJNQorI2RlZmluZSBXTTg5OTBfQURDTF9EQVRJTlYgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBBRENMX0RBVElOViAqLworI2RlZmluZSBXTTg5OTBfQURDTF9EQVRJTlZfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfQURDUl9EQVRJTlYgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBBRENSX0RBVElOViAqLworI2RlZmluZSBXTTg5OTBfQURDUl9EQVRJTlZfQklUCQkJMAorCisvKgorICogUjE1ICgweDBGKSAtIExlZnQgQURDIERpZ2l0YWwgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0FEQ19WVSAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogQURDX1ZVICovCisjZGVmaW5lIFdNODk5MF9BRENMX1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwRkYgIC8qIEFEQ0xfVk9MIC0gWzc6MF0gKi8KKyNkZWZpbmUgV004OTkwX0FEQ0xfVk9MX1NISUZUCQkJMAorCisvKgorICogUjE2ICgweDEwKSAtIFJpZ2h0IEFEQyBEaWdpdGFsIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9BRENfVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIEFEQ19WVSAqLworI2RlZmluZSBXTTg5OTBfQURDUl9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMEZGICAvKiBBRENSX1ZPTCAtIFs3OjBdICovCisjZGVmaW5lIFdNODk5MF9BRENSX1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIxOCAoMHgxMikgLSBHUElPIENUUkwgMQorICovCisjZGVmaW5lIFdNODk5MF9JUlEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwMDAgIC8qIElSUSAqLworI2RlZmluZSBXTTg5OTBfVEVNUE9LICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwICAvKiBURU1QT0sgKi8KKyNkZWZpbmUgV004OTkwX01JQ1NIUlQgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogTUlDU0hSVCAqLworI2RlZmluZSBXTTg5OTBfTUlDREVUICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMjAwICAvKiBNSUNERVQgKi8KKyNkZWZpbmUgV004OTkwX1BMTF9MQ0sgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUExMX0xDSyAqLworI2RlZmluZSBXTTg5OTBfR1BJOF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUEk4X1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJN19TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBHUEk3X1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzZfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBHUElPNl9TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzVfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIEdQSU80X1NUQVRVUyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBHUElPM19TVEFUVVMgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogR1BJTzJfU1RBVFVTICovCisjZGVmaW5lIFdNODk5MF9HUElPMV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIEdQSU8xX1NUQVRVUyAqLworCisvKgorICogUjE5ICgweDEzKSAtIEdQSU8xICYgR1BJTzIKKyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzJfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBHUElPMl9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPMl9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIEdQSU8yX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogR1BJTzJfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogR1BJTzJfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MEYwMCAgLyogR1BJTzJfU0VMIC0gWzExOjhdICovCisjZGVmaW5lIFdNODk5MF9HUElPMV9ERUJfRU5BICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEdQSU8xX0RFQl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8xX0lSUV9FTkEgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJTzFfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfUFUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBHUElPMV9QVSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfUEQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBHUElPMV9QRCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzFfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDBGICAvKiBHUElPMV9TRUwgLSBbMzowXSAqLworCisvKgorICogUjIwICgweDE0KSAtIEdQSU8zICYgR1BJTzQKKyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzRfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBHUElPNF9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIEdQSU80X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU80X1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogR1BJTzRfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU80X1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogR1BJTzRfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU80X1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MEYwMCAgLyogR1BJTzRfU0VMIC0gWzExOjhdICovCisjZGVmaW5lIFdNODk5MF9HUElPM19ERUJfRU5BICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEdQSU8zX0RFQl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8zX0lSUV9FTkEgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJTzNfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfUFUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBHUElPM19QVSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfUEQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBHUElPM19QRCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDBGICAvKiBHUElPM19TRUwgLSBbMzowXSAqLworCisvKgorICogUjIxICgweDE1KSAtIEdQSU81ICYgR1BJTzYKKyAqLworI2RlZmluZSBXTTg5OTBfR1BJTzZfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBHUElPNl9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUElPNl9JUlFfRU5BICAgICAgICAgICAgICAgICAgICAweDQwMDAgIC8qIEdQSU82X0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1BVICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAwMCAgLyogR1BJTzZfUFUgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1BEICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAwMCAgLyogR1BJTzZfUEQgKi8KKyNkZWZpbmUgV004OTkwX0dQSU82X1NFTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MEYwMCAgLyogR1BJTzZfU0VMIC0gWzExOjhdICovCisjZGVmaW5lIFdNODk5MF9HUElPNV9ERUJfRU5BICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIEdQSU81X0RFQl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X0lSUV9FTkEgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogR1BJTzVfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzVfUFUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBHUElPNV9QVSAqLworI2RlZmluZSBXTTg5OTBfR1BJTzVfUEQgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBHUElPNV9QRCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzVfU0VMX01BU0sgICAgICAgICAgICAgICAgICAgMHgwMDBGICAvKiBHUElPNV9TRUwgLSBbMzowXSAqLworCisvKgorICogUjIyICgweDE2KSAtIEdQSU9DVFJMIDIKKyAqLworI2RlZmluZSBXTTg5OTBfUkRfM1dfRU5BICAgICAgICAgICAgICAgICAgICAgICAgMHg4MDAwICAvKiBSRF8zV19FTkEgKi8KKyNkZWZpbmUgV004OTkwX01PREVfM1c0VyAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAwMCAgLyogTU9ERV8zVzRXICovCisjZGVmaW5lIFdNODk5MF9URU1QT0tfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIFRFTVBPS19JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9NSUNTSFJUX0lSUV9FTkEgICAgICAgICAgICAgICAgICAweDA0MDAgIC8qIE1JQ1NIUlRfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfTUlDREVUX0lSUV9FTkEgICAgICAgICAgICAgICAgICAgMHgwMjAwICAvKiBNSUNERVRfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfUExMX0xDS19JUlFfRU5BICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBQTExfTENLX0lSUV9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSThfREVCX0VOQSAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogR1BJOF9ERUJfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk4X0lSUV9FTkEgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIEdQSThfSVJRX0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJOF9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBHUEk4X0VOQSAqLworI2RlZmluZSBXTTg5OTBfR1BJN19ERUJfRU5BICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBHUEk3X0RFQl9FTkEgKi8KKyNkZWZpbmUgV004OTkwX0dQSTdfSVJRX0VOQSAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogR1BJN19JUlFfRU5BICovCisjZGVmaW5lIFdNODk5MF9HUEk3X0VOQSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIEdQSTdfRU5BICovCisKKy8qCisgKiBSMjMgKDB4MTcpIC0gR1BJT19QT0wKKyAqLworI2RlZmluZSBXTTg5OTBfSVJRX0lOViAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMDAwICAvKiBJUlFfSU5WICovCisjZGVmaW5lIFdNODk5MF9URU1QT0tfUE9MICAgICAgICAgICAgICAgICAgICAgICAweDA4MDAgIC8qIFRFTVBPS19QT0wgKi8KKyNkZWZpbmUgV004OTkwX01JQ1NIUlRfUE9MICAgICAgICAgICAgICAgICAgICAgIDB4MDQwMCAgLyogTUlDU0hSVF9QT0wgKi8KKyNkZWZpbmUgV004OTkwX01JQ0RFVF9QT0wgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMCAgLyogTUlDREVUX1BPTCAqLworI2RlZmluZSBXTTg5OTBfUExMX0xDS19QT0wgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBQTExfTENLX1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJOF9QT0wgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBHUEk4X1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJN19QT0wgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBHUEk3X1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzZfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBHUElPNl9QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU81X1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogR1BJTzVfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPNF9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIEdQSU80X1BPTCAqLworI2RlZmluZSBXTTg5OTBfR1BJTzNfUE9MICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBHUElPM19QT0wgKi8KKyNkZWZpbmUgV004OTkwX0dQSU8yX1BPTCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogR1BJTzJfUE9MICovCisjZGVmaW5lIFdNODk5MF9HUElPMV9QT0wgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIEdQSU8xX1BPTCAqLworCisvKgorICogUjI0ICgweDE4KSAtIExlZnQgTGluZSBJbnB1dCAxJjIgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0lQVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogSVBWVSAqLworI2RlZmluZSBXTTg5OTBfTEkxMk1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMSTEyTVVURSAqLworI2RlZmluZSBXTTg5OTBfTEkxMk1VVEVfQklUCQkJNworI2RlZmluZSBXTTg5OTBfTEkxMlpDICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBMSTEyWkMgKi8KKyNkZWZpbmUgV004OTkwX0xJMTJaQ19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9MSU4xMlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMUYgIC8qIExJTjEyVk9MIC0gWzQ6MF0gKi8KKyNkZWZpbmUgV004OTkwX0xJTjEyVk9MX1NISUZUCQkJMAorLyoKKyAqIFIyNSAoMHgxOSkgLSBMZWZ0IExpbmUgSW5wdXQgMyY0IFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9JUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIElQVlUgKi8KKyNkZWZpbmUgV004OTkwX0xJMzRNVVRFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTEkzNE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xJMzRNVVRFX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX0xJMzRaQyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTEkzNFpDICovCisjZGVmaW5lIFdNODk5MF9MSTM0WkNfQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTElOMzRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDFGICAvKiBMSU4zNFZPTCAtIFs0OjBdICovCisjZGVmaW5lIFdNODk5MF9MSU4zNFZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIyNiAoMHgxQSkgLSBSaWdodCBMaW5lIElucHV0IDEmMiBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfSVBWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBJUFZVICovCisjZGVmaW5lIFdNODk5MF9SSTEyTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJJMTJNVVRFICovCisjZGVmaW5lIFdNODk5MF9SSTEyTVVURV9CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9SSTEyWkMgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFJJMTJaQyAqLworI2RlZmluZSBXTTg5OTBfUkkxMlpDX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX1JJTjEyVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAxRiAgLyogUklOMTJWT0wgLSBbNDowXSAqLworI2RlZmluZSBXTTg5OTBfUklOMTJWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMjcgKDB4MUIpIC0gUmlnaHQgTGluZSBJbnB1dCAzJjQgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0lQVlUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogSVBWVSAqLworI2RlZmluZSBXTTg5OTBfUkkzNE1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBSSTM0TVVURSAqLworI2RlZmluZSBXTTg5OTBfUkkzNE1VVEVfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUkkzNFpDICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBSSTM0WkMgKi8KKyNkZWZpbmUgV004OTkwX1JJMzRaQ19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9SSU4zNFZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMUYgIC8qIFJJTjM0Vk9MIC0gWzQ6MF0gKi8KKyNkZWZpbmUgV004OTkwX1JJTjM0Vk9MX1NISUZUCQkJMAorCisvKgorICogUjI4ICgweDFDKSAtIExlZnQgT3V0cHV0IFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9PUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIE9QVlUgKi8KKyNkZWZpbmUgV004OTkwX0xPWkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTE9aQyAqLworI2RlZmluZSBXTTg5OTBfTE9aQ19CSVQJCQkJNworI2RlZmluZSBXTTg5OTBfTE9VVFZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwMDdGICAvKiBMT1VUVk9MIC0gWzY6MF0gKi8KKyNkZWZpbmUgV004OTkwX0xPVVRWT0xfU0hJRlQJCQkwCisvKgorICogUjI5ICgweDFEKSAtIFJpZ2h0IE91dHB1dCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9ST1pDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIFJPWkMgKi8KKyNkZWZpbmUgV004OTkwX1JPWkNfQklUCQkJCTcKKyNkZWZpbmUgV004OTkwX1JPVVRWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDA3RiAgLyogUk9VVFZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9ST1VUVk9MX1NISUZUCQkJMAorLyoKKyAqIFIzMCAoMHgxRSkgLSBMaW5lIE91dHB1dHMgVm9sdW1lCisgKi8KKyNkZWZpbmUgV004OTkwX0xPTk1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTE9OTVVURSAqLworI2RlZmluZSBXTTg5OTBfTE9OTVVURV9CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9MT1BNVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIExPUE1VVEUgKi8KKyNkZWZpbmUgV004OTkwX0xPUE1VVEVfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTE9BVFROICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMT0FUVE4gKi8KKyNkZWZpbmUgV004OTkwX0xPQVRUTl9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9ST05NVVRFICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIFJPTk1VVEUgKi8KKyNkZWZpbmUgV004OTkwX1JPTk1VVEVfQklUCQkJMgorI2RlZmluZSBXTTg5OTBfUk9QTVVURSAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBST1BNVVRFICovCisjZGVmaW5lIFdNODk5MF9ST1BNVVRFX0JJVAkJCTEKKyNkZWZpbmUgV004OTkwX1JPQVRUTiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUk9BVFROICovCisjZGVmaW5lIFdNODk5MF9ST0FUVE5fQklUCQkJMAorCisvKgorICogUjMxICgweDFGKSAtIE91dDMvNCBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1VUM01VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBPVVQzTVVURSAqLworI2RlZmluZSBXTTg5OTBfT1VUM01VVEVfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfT1VUM0FUVE4gICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBPVVQzQVRUTiAqLworI2RlZmluZSBXTTg5OTBfT1VUM0FUVE5fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfT1VUNE1VVEUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBPVVQ0TVVURSAqLworI2RlZmluZSBXTTg5OTBfT1VUNE1VVEVfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfT1VUNEFUVE4gICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBPVVQ0QVRUTiAqLworI2RlZmluZSBXTTg5OTBfT1VUNEFUVE5fQklUCQkJMAorCisvKgorICogUjMyICgweDIwKSAtIExlZnQgT1BHQSBWb2x1bWUKKyAqLworI2RlZmluZSBXTTg5OTBfT1BWVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMTAwICAvKiBPUFZVICovCisjZGVmaW5lIFdNODk5MF9MT1BHQVpDICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAgIC8qIExPUEdBWkMgKi8KKyNkZWZpbmUgV004OTkwX0xPUEdBWkNfQklUCQkJNworI2RlZmluZSBXTTg5OTBfTE9QR0FWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwMDdGICAvKiBMT1BHQVZPTCAtIFs2OjBdICovCisjZGVmaW5lIFdNODk5MF9MT1BHQVZPTF9TSElGVAkJCTAKKworLyoKKyAqIFIzMyAoMHgyMSkgLSBSaWdodCBPUEdBIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9PUFZVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIE9QVlUgKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBWkMgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUk9QR0FaQyAqLworI2RlZmluZSBXTTg5OTBfUk9QR0FaQ19CSVQJCQk3CisjZGVmaW5lIFdNODk5MF9ST1BHQVZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwN0YgIC8qIFJPUEdBVk9MIC0gWzY6MF0gKi8KKyNkZWZpbmUgV004OTkwX1JPUEdBVk9MX1NISUZUCQkJMAorLyoKKyAqIFIzNCAoMHgyMikgLSBTcGVha2VyIFZvbHVtZQorICovCisjZGVmaW5lIFdNODk5MF9TUEtWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDMgIC8qIFNQS1ZPTCAtIFsxOjBdICovCisjZGVmaW5lIFdNODk5MF9TUEtWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSMzUgKDB4MjMpIC0gQ2xhc3NEMQorICovCisjZGVmaW5lIFdNODk5MF9DRE1PREUgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAgIC8qIENETU9ERSAqLworI2RlZmluZSBXTTg5OTBfQ0RNT0RFX0JJVAkJCTgKKworLyoKKyAqIFIzNyAoMHgyNSkgLSBDbGFzc0QzCisgKi8KKyNkZWZpbmUgV004OTkwX0RDR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNyAgLyogRENHQUlOIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0RDR0FJTl9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX0FDR0FJTl9NQVNLICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNyAgLyogQUNHQUlOIC0gWzI6MF0gKi8KKyNkZWZpbmUgV004OTkwX0FDR0FJTl9TSElGVAkJCTAKKy8qCisgKiBSMzkgKDB4MjcpIC0gSW5wdXQgTWl4ZXIxCisgKi8KKyNkZWZpbmUgV004OTkwX0FJTkxNT0RFX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDAwQyAgLyogQUlOTE1PREUgLSBbMzoyXSAqLworI2RlZmluZSBXTTg5OTBfQUlOTE1PREVfU0hJRlQJCQkyCisjZGVmaW5lIFdNODk5MF9BSU5STU9ERV9NQVNLICAgICAgICAgICAgICAgICAgICAweDAwMDMgIC8qIEFJTlJNT0RFIC0gWzE6MF0gKi8KKyNkZWZpbmUgV004OTkwX0FJTlJNT0RFX1NISUZUCQkJMAorCisvKgorICogUjQwICgweDI4KSAtIElucHV0IE1peGVyMgorICovCisjZGVmaW5lIFdNODk5MF9MTVA0CQkJCTB4MDA4MAkvKiBMTVA0ICovCisjZGVmaW5lIFdNODk5MF9MTVA0X0JJVCAgICAgICAgICAgICAgICAgICAgICAgICA3CS8qIExNUDQgKi8KKyNkZWZpbmUgV004OTkwX0xNTjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogTE1OMyAqLworI2RlZmluZSBXTTg5OTBfTE1OM19CSVQgICAgICAgICAgICAgICAgICAgICAgICAgNiAgICAgICAvKiBMTU4zICovCisjZGVmaW5lIFdNODk5MF9MTVAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIExNUDIgKi8KKyNkZWZpbmUgV004OTkwX0xNUDJfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDUgICAgICAgLyogTE1QMiAqLworI2RlZmluZSBXTTg5OTBfTE1OMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMTU4xICovCisjZGVmaW5lIFdNODk5MF9MTU4xX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICA0ICAgICAgIC8qIExNTjEgKi8KKyNkZWZpbmUgV004OTkwX1JNUDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogUk1QNCAqLworI2RlZmluZSBXTTg5OTBfUk1QNF9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgMyAgICAgICAvKiBSTVA0ICovCisjZGVmaW5lIFdNODk5MF9STU4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIFJNTjMgKi8KKyNkZWZpbmUgV004OTkwX1JNTjNfQklUICAgICAgICAgICAgICAgICAgICAgICAgIDIgICAgICAgLyogUk1OMyAqLworI2RlZmluZSBXTTg5OTBfUk1QMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBSTVAyICovCisjZGVmaW5lIFdNODk5MF9STVAyX0JJVCAgICAgICAgICAgICAgICAgICAgICAgICAxICAgICAgIC8qIFJNUDIgKi8KKyNkZWZpbmUgV004OTkwX1JNTjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogUk1OMSAqLworI2RlZmluZSBXTTg5OTBfUk1OMV9CSVQgICAgICAgICAgICAgICAgICAgICAgICAgMCAgICAgICAvKiBSTU4xICovCisKKy8qCisgKiBSNDEgKDB4MjkpIC0gSW5wdXQgTWl4ZXIzCisgKi8KKyNkZWZpbmUgV004OTkwX0wzNE1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogTDM0TU5CICovCisjZGVmaW5lIFdNODk5MF9MMzRNTkJfQklUCQkJOAorI2RlZmluZSBXTTg5OTBfTDM0TU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMMzRNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfTDM0TU5CU1RfQklUCQkJNworI2RlZmluZSBXTTg5OTBfTDEyTU5CICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMMTJNTkIgKi8KKyNkZWZpbmUgV004OTkwX0wxMk1OQl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9MMTJNTkJTVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIEwxMk1OQlNUICovCisjZGVmaW5lIFdNODk5MF9MMTJNTkJTVF9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9MREJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIExEQlZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9MREJWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDIgKDB4MkEpIC0gSW5wdXQgTWl4ZXI0CisgKi8KKyNkZWZpbmUgV004OTkwX1IzNE1OQiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEwMCAgLyogUjM0TU5CICovCisjZGVmaW5lIFdNODk5MF9SMzRNTkJfQklUCQkJOAorI2RlZmluZSBXTTg5OTBfUjM0TU5CU1QgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBSMzRNTkJTVCAqLworI2RlZmluZSBXTTg5OTBfUjM0TU5CU1RfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUjEyTU5CICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBSMTJNTkIgKi8KKyNkZWZpbmUgV004OTkwX1IxMk1OQl9CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9SMTJNTkJTVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIFIxMk1OQlNUICovCisjZGVmaW5lIFdNODk5MF9SMTJNTkJTVF9CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9SREJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMDcgIC8qIFJEQlZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9SREJWT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDMgKDB4MkIpIC0gSW5wdXQgTWl4ZXI1CisgKi8KKyNkZWZpbmUgV004OTkwX0xJMkJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExJMkJWT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfTEkyQlZPTF9TSElGVAkJCTYKKyNkZWZpbmUgV004OTkwX0xSNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExSNEJWT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfTFI0QlZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX0xMNEJWT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExMNEJWT0wgLSBbMjowXSAqLworI2RlZmluZSBXTTg5OTBfTEw0QlZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI0NCAoMHgyQykgLSBJbnB1dCBNaXhlcjYKKyAqLworI2RlZmluZSBXTTg5OTBfUkkyQlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUkkyQlZPTCAtIFs4OjZdICovCisjZGVmaW5lIFdNODk5MF9SSTJCVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfUkw0QlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUkw0QlZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9STDRCVk9MX1NISUZUCQkJMworI2RlZmluZSBXTTg5OTBfUlI0QlZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUlI0QlZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9SUjRCVk9MX1NISUZUCQkJMAorCisvKgorICogUjQ1ICgweDJEKSAtIE91dHB1dCBNaXhlcjEKKyAqLworI2RlZmluZSBXTTg5OTBfTFJCTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBMUkJMTyAqLworI2RlZmluZSBXTTg5OTBfTFJCTE9fQklUCQkJNworI2RlZmluZSBXTTg5OTBfTExCTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBMTEJMTyAqLworI2RlZmluZSBXTTg5OTBfTExCTE9fQklUCQkJNgorI2RlZmluZSBXTTg5OTBfTFJJM0xPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMUkkzTE8gKi8KKyNkZWZpbmUgV004OTkwX0xSSTNMT19CSVQJCQk1CisjZGVmaW5lIFdNODk5MF9MTEkzTE8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMTAgIC8qIExMSTNMTyAqLworI2RlZmluZSBXTTg5OTBfTExJM0xPX0JJVAkJCTQKKyNkZWZpbmUgV004OTkwX0xSMTJMTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogTFIxMkxPICovCisjZGVmaW5lIFdNODk5MF9MUjEyTE9fQklUCQkJMworI2RlZmluZSBXTTg5OTBfTEwxMkxPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBMTDEyTE8gKi8KKyNkZWZpbmUgV004OTkwX0xMMTJMT19CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9MRExPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIExETE8gKi8KKyNkZWZpbmUgV004OTkwX0xETE9fQklUCQkJCTAKKworLyoKKyAqIFI0NiAoMHgyRSkgLSBPdXRwdXQgTWl4ZXIyCisgKi8KKyNkZWZpbmUgV004OTkwX1JMQlJPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogUkxCUk8gKi8KKyNkZWZpbmUgV004OTkwX1JMQlJPX0JJVAkJCTcKKyNkZWZpbmUgV004OTkwX1JSQlJPICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUlJCUk8gKi8KKyNkZWZpbmUgV004OTkwX1JSQlJPX0JJVAkJCTYKKyNkZWZpbmUgV004OTkwX1JMSTNSTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMCAgLyogUkxJM1JPICovCisjZGVmaW5lIFdNODk5MF9STEkzUk9fQklUCQkJNQorI2RlZmluZSBXTTg5OTBfUlJJM1JPICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBSUkkzUk8gKi8KKyNkZWZpbmUgV004OTkwX1JSSTNST19CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9STDEyUk8gICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDggIC8qIFJMMTJSTyAqLworI2RlZmluZSBXTTg5OTBfUkwxMlJPX0JJVAkJCTMKKyNkZWZpbmUgV004OTkwX1JSMTJSTyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogUlIxMlJPICovCisjZGVmaW5lIFdNODk5MF9SUjEyUk9fQklUCQkJMgorI2RlZmluZSBXTTg5OTBfUkRSTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSRFJPICovCisjZGVmaW5lIFdNODk5MF9SRFJPX0JJVAkJCQkwCisKKy8qCisgKiBSNDcgKDB4MkYpIC0gT3V0cHV0IE1peGVyMworICovCisjZGVmaW5lIFdNODk5MF9MTEkzTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTEkzTE9WT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfTExJM0xPVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfTFIxMkxPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTFIxMkxPVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX0xSMTJMT1ZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX0xMMTJMT1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIExMMTJMT1ZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9MTDEyTE9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDggKDB4MzApIC0gT3V0cHV0IE1peGVyNAorICovCisjZGVmaW5lIFdNODk5MF9SUkkzUk9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSUkkzUk9WT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfUlJJM1JPVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfUkwxMlJPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogUkwxMlJPVk9MIC0gWzU6M10gKi8KKyNkZWZpbmUgV004OTkwX1JMMTJST1ZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX1JSMTJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJSMTJST1ZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9SUjEyUk9WT0xfU0hJRlQJCQkwCisKKy8qCisgKiBSNDkgKDB4MzEpIC0gT3V0cHV0IE1peGVyNQorICovCisjZGVmaW5lIFdNODk5MF9MUkkzTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMUkkzTE9WT0wgLSBbODo2XSAqLworI2RlZmluZSBXTTg5OTBfTFJJM0xPVk9MX1NISUZUCQkJNgorI2RlZmluZSBXTTg5OTBfTFJCTE9WT0xfTUFTSyAgICAgICAgICAgICAgICAgICAgMHgwNyAgLyogTFJCTE9WT0wgLSBbNTozXSAqLworI2RlZmluZSBXTTg5OTBfTFJCTE9WT0xfU0hJRlQJCQkzCisjZGVmaW5lIFdNODk5MF9MTEJMT1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBMTEJMT1ZPTCAtIFsyOjBdICovCisjZGVmaW5lIFdNODk5MF9MTEJMT1ZPTF9TSElGVAkJCTAKKworLyoKKyAqIFI1MCAoMHgzMikgLSBPdXRwdXQgTWl4ZXI2CisgKi8KKyNkZWZpbmUgV004OTkwX1JMSTNST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJMSTNST1ZPTCAtIFs4OjZdICovCisjZGVmaW5lIFdNODk5MF9STEkzUk9WT0xfU0hJRlQJCQk2CisjZGVmaW5lIFdNODk5MF9STEJST1ZPTF9NQVNLICAgICAgICAgICAgICAgICAgICAweDA3ICAvKiBSTEJST1ZPTCAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9STEJST1ZPTF9TSElGVAkJCTMKKyNkZWZpbmUgV004OTkwX1JSQlJPVk9MX01BU0sgICAgICAgICAgICAgICAgICAgIDB4MDcgIC8qIFJSQlJPVk9MIC0gWzI6MF0gKi8KKyNkZWZpbmUgV004OTkwX1JSQlJPVk9MX1NISUZUCQkJMAorCisvKgorICogUjUxICgweDMzKSAtIE91dDMvNCBNaXhlcgorICovCisjZGVmaW5lIFdNODk5MF9WU0VMX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAweDAxODAgIC8qIFZTRUwgLSBbODo3XSAqLworI2RlZmluZSBXTTg5OTBfTEk0TzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwICAvKiBMSTRPMyAqLworI2RlZmluZSBXTTg5OTBfTEk0TzNfQklUCQkJNQorI2RlZmluZSBXTTg5OTBfTFBHQU8zICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBMUEdBTzMgKi8KKyNkZWZpbmUgV004OTkwX0xQR0FPM19CSVQJCQk0CisjZGVmaW5lIFdNODk5MF9SSTRPNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDIgIC8qIFJJNE80ICovCisjZGVmaW5lIFdNODk5MF9SSTRPNF9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9SUEdBTzQgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJQR0FPNCAqLworI2RlZmluZSBXTTg5OTBfUlBHQU80X0JJVAkJCTAKKy8qCisgKiBSNTIgKDB4MzQpIC0gTGluZSBNaXhlcjEKKyAqLworI2RlZmluZSBXTTg5OTBfTExPUEdBTE9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBMTE9QR0FMT04gKi8KKyNkZWZpbmUgV004OTkwX0xMT1BHQUxPTl9CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9MUk9QR0FMT04gICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIExST1BHQUxPTiAqLworI2RlZmluZSBXTTg5OTBfTFJPUEdBTE9OX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX0xPUExPTiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogTE9QTE9OICovCisjZGVmaW5lIFdNODk5MF9MT1BMT05fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfTFIxMkxPUCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBMUjEyTE9QICovCisjZGVmaW5lIFdNODk5MF9MUjEyTE9QX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX0xMMTJMT1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogTEwxMkxPUCAqLworI2RlZmluZSBXTTg5OTBfTEwxMkxPUF9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9MTE9QR0FMT1AgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIExMT1BHQUxPUCAqLworI2RlZmluZSBXTTg5OTBfTExPUEdBTE9QX0JJVAkJCTAKKy8qCisgKiBSNTMgKDB4MzUpIC0gTGluZSBNaXhlcjIKKyAqLworI2RlZmluZSBXTTg5OTBfUlJPUEdBUk9OICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBSUk9QR0FST04gKi8KKyNkZWZpbmUgV004OTkwX1JST1BHQVJPTl9CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9STE9QR0FST04gICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIFJMT1BHQVJPTiAqLworI2RlZmluZSBXTTg5OTBfUkxPUEdBUk9OX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX1JPUFJPTiAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogUk9QUk9OICovCisjZGVmaW5lIFdNODk5MF9ST1BST05fQklUCQkJNAorI2RlZmluZSBXTTg5OTBfUkwxMlJPUCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBSTDEyUk9QICovCisjZGVmaW5lIFdNODk5MF9STDEyUk9QX0JJVAkJCTIKKyNkZWZpbmUgV004OTkwX1JSMTJST1AgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogUlIxMlJPUCAqLworI2RlZmluZSBXTTg5OTBfUlIxMlJPUF9CSVQJCQkxCisjZGVmaW5lIFdNODk5MF9SUk9QR0FST1AgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFJST1BHQVJPUCAqLworI2RlZmluZSBXTTg5OTBfUlJPUEdBUk9QX0JJVAkJCTAKKworLyoKKyAqIFI1NCAoMHgzNikgLSBTcGVha2VyIE1peGVyCisgKi8KKyNkZWZpbmUgV004OTkwX0xCMlNQSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA4MCAgLyogTEIyU1BLICovCisjZGVmaW5lIFdNODk5MF9MQjJTUEtfQklUCQkJNworI2RlZmluZSBXTTg5OTBfUkIyU1BLICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQwICAvKiBSQjJTUEsgKi8KKyNkZWZpbmUgV004OTkwX1JCMlNQS19CSVQJCQk2CisjZGVmaW5lIFdNODk5MF9MSTJTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIExJMlNQSyAqLworI2RlZmluZSBXTTg5OTBfTEkyU1BLX0JJVAkJCTUKKyNkZWZpbmUgV004OTkwX1JJMlNQSyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAxMCAgLyogUkkyU1BLICovCisjZGVmaW5lIFdNODk5MF9SSTJTUEtfQklUCQkJNAorI2RlZmluZSBXTTg5OTBfTE9QR0FTUEsgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBMT1BHQVNQSyAqLworI2RlZmluZSBXTTg5OTBfTE9QR0FTUEtfQklUCQkJMworI2RlZmluZSBXTTg5OTBfUk9QR0FTUEsgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA0ICAvKiBST1BHQVNQSyAqLworI2RlZmluZSBXTTg5OTBfUk9QR0FTUEtfQklUCQkJMgorI2RlZmluZSBXTTg5OTBfTERTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBMRFNQSyAqLworI2RlZmluZSBXTTg5OTBfTERTUEtfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfUkRTUEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBSRFNQSyAqLworI2RlZmluZSBXTTg5OTBfUkRTUEtfQklUCQkJMAorCisvKgorICogUjU1ICgweDM3KSAtIEFkZGl0aW9uYWwgQ29udHJvbAorICovCisjZGVmaW5lIFdNODk5MF9WUk9JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFZST0kgKi8KKworLyoKKyAqIFI1NiAoMHgzOCkgLSBBbnRpUE9QMQorICovCisjZGVmaW5lIFdNODk5MF9ESVNfTExJTkUgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAgIC8qIERJU19MTElORSAqLworI2RlZmluZSBXTTg5OTBfRElTX1JMSU5FICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwICAvKiBESVNfUkxJTkUgKi8KKyNkZWZpbmUgV004OTkwX0RJU19PVVQzICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwOCAgLyogRElTX09VVDMgKi8KKyNkZWZpbmUgV004OTkwX0RJU19PVVQ0ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwNCAgLyogRElTX09VVDQgKi8KKyNkZWZpbmUgV004OTkwX0RJU19MT1VUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMiAgLyogRElTX0xPVVQgKi8KKyNkZWZpbmUgV004OTkwX0RJU19ST1VUICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMSAgLyogRElTX1JPVVQgKi8KKworLyoKKyAqIFI1NyAoMHgzOSkgLSBBbnRpUE9QMgorICovCisjZGVmaW5lIFdNODk5MF9TT0ZUU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAgIC8qIFNPRlRTVCAqLworI2RlZmluZSBXTTg5OTBfQlVGSU9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4ICAvKiBCVUZJT0VOICovCisjZGVmaW5lIFdNODk5MF9CVUZEQ09QRU4gICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIEJVRkRDT1BFTiAqLworI2RlZmluZSBXTTg5OTBfUE9CQ1RSTCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyICAvKiBQT0JDVFJMICovCisjZGVmaW5lIFdNODk5MF9WTUlEVE9HICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEgIC8qIFZNSURUT0cgKi8KKworLyoKKyAqIFI1OCAoMHgzQSkgLSBNSUNCSUFTCisgKi8KKyNkZWZpbmUgV004OTkwX01DRFNDVEhfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDBDMCAgLyogTUNEU0NUSCAtIFs3OjZdICovCisjZGVmaW5lIFdNODk5MF9NQ0RUSFJfTUFTSyAgICAgICAgICAgICAgICAgICAgICAweDAwMzggIC8qIE1DRFRIUiAtIFs1OjNdICovCisjZGVmaW5lIFdNODk5MF9NQ0QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDQgIC8qIE1DRCAqLworI2RlZmluZSBXTTg5OTBfTUJTRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxICAvKiBNQlNFTCAqLworCisvKgorICogUjYwICgweDNDKSAtIFBMTDEKKyAqLworI2RlZmluZSBXTTg5OTBfU0RNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDgwICAvKiBTRE0gKi8KKyNkZWZpbmUgV004OTkwX1BSRVNDQUxFICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA0MCAgLyogUFJFU0NBTEUgKi8KKyNkZWZpbmUgV004OTkwX1BMTE5fTUFTSyAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwRiAgLyogUExMTiAtIFszOjBdICovCisKKy8qCisgKiBSNjEgKDB4M0QpIC0gUExMMgorICovCisjZGVmaW5lIFdNODk5MF9QTExLMV9NQVNLICAgICAgICAgICAgICAgICAgICAgICAweDAwRkYgIC8qIFBMTEsxIC0gWzc6MF0gKi8KKworLyoKKyAqIFI2MiAoMHgzRSkgLSBQTEwzCisgKi8KKyNkZWZpbmUgV004OTkwX1BMTEsyX01BU0sgICAgICAgICAgICAgICAgICAgICAgIDB4MDBGRiAgLyogUExMSzIgLSBbNzowXSAqLworCisvKgorICogUjYzICgweDNGKSAtIEludGVybmFsIERyaXZlciBCaXRzCisgKi8KKyNkZWZpbmUgV004OTkwX0lOTUlYTF9QV1JfQklUCQkJMAorI2RlZmluZSBXTTg5OTBfQUlOTE1VWF9QV1JfQklUCQkJMQorI2RlZmluZSBXTTg5OTBfSU5NSVhSX1BXUl9CSVQJCQkyCisjZGVmaW5lIFdNODk5MF9BSU5STVVYX1BXUl9CSVQJCQkzCisKK3N0cnVjdCB3bTg5OTBfc2V0dXBfZGF0YSB7CisJdW5zaWduZWQgc2hvcnQgaTJjX2FkZHJlc3M7Cit9OworCisjZGVmaW5lIFdNODk5MF9NQ0xLX0RJViAwCisjZGVmaW5lIFdNODk5MF9EQUNDTEtfRElWIDEKKyNkZWZpbmUgV004OTkwX0FEQ0NMS19ESVYgMgorI2RlZmluZSBXTTg5OTBfQkNMS19ESVYgMworCitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtODk5MF9kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd204OTkwOworCisjZW5kaWYJLyogX19XTTg5OTBSRUdJU1RFUkRFRlNfSF9fICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFTkQgT0YgRklMRSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuYyBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmMKaW5kZXggNzZjMWUyZC4uOWZjOGVkZCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2NvZGVjcy93bTk3MTIuYworKysgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5jCkBAIC05LDkgKzksNiBAQAogICogIHVuZGVyICB0aGUgdGVybXMgb2YgIHRoZSBHTlUgR2VuZXJhbCAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDR0aCBGZWIgMjAwNiAgIEluaXRpYWwgdmVyc2lvbi4KICAqLwogCiAjaW5jbHVkZSA8bGludXgvaW5pdC5oPgpAQCAtMjUsNiArMjIsNyBAQAogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KICNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KICNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorI2luY2x1ZGUgIndtOTcxMi5oIgogCiAjZGVmaW5lIFdNOTcxMl9WRVJTSU9OICIwLjQiCiAKQEAgLTM1MSw3ICszNDksNyBAQAogU05EX1NPQ19EQVBNX0lOUFVUKCJNSUMyIiksCiB9OwogCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAkvKiB2aXJ0dWFsIG1peGVyIC0gbWl4ZXMgbGVmdCAmIHJpZ2h0IGNoYW5uZWxzIGZvciBzcGsgYW5kIG1vbm8gKi8KIAl7IkFDOTcgTWl4ZXIiLCBOVUxMLCAiTGVmdCBEQUMifSwKIAl7IkFDOTcgTWl4ZXIiLCBOVUxMLCAiUmlnaHQgREFDIn0sCkBAIC00NDYsMjEgKzQ0NCwxNCBAQAogCXsiU3BlYWtlciBQR0EiLCBOVUxMLCAiU3BlYWtlciBNdXgifSwKIAl7IkxPVVQyIiwgTlVMTCwgIlNwZWFrZXIgUEdBIn0sCiAJeyJST1VUMiIsIE5VTEwsICJTcGVha2VyIFBHQSJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGludCB3bTk3MTJfYWRkX3dpZGdldHMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBpOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtOTcxMl9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtOTcxMl9kYXBtX3dpZGdldHMpKTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtOTcxMl9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtOTcxMl9kYXBtX3dpZGdldHNbaV0pOwotCi0JLyogc2V0IHVwIGF1ZGlvIHBhdGggY29ubmVjdHMgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJCQkgICBhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC01NDEsNyArNTMyLDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8XAogCQlTTkRSVl9QQ01fUkFURV80ODAwMCkKIAotc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtOTcxMl9kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTJfZGFpW10gPSB7CiB7CiAJLm5hbWUgPSAiQUM5NyBIaUZpIiwKIAkudHlwZSA9IFNORF9TT0NfREFJX0FDOTdfQlVTLApAQCAtNTc0LDIzICs1NjUsMjMgQEAKIH07CiBFWFBPUlRfU1lNQk9MX0dQTCh3bTk3MTJfZGFpKTsKIAotc3RhdGljIGludCB3bTk3MTJfZGFwbV9ldmVudChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGludCBldmVudCkKK3N0YXRpYyBpbnQgd205NzEyX3NldF9iaWFzX2xldmVsKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwkJCQkgZW51bSBzbmRfc29jX2JpYXNfbGV2ZWwgbGV2ZWwpCiB7Ci0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOiAvKiBmdWxsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6IC8qIHBhcnRpYWwgT24gKi8KLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EMjogLyogcGFydGlhbCBPbiAqLworCXN3aXRjaCAobGV2ZWwpIHsKKwljYXNlIFNORF9TT0NfQklBU19PTjoKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDogLyogT2ZmLCB3aXRoIHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19QT1dFUkRPV04sIDB4MDAwMCk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDogLyogT2ZmLCB3aXRob3V0IHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQkvKiBkaXNhYmxlIGV2ZXJ5dGhpbmcgaW5jbHVkaW5nIEFDIGxpbmsgKi8KIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19FWFRFTkRFRF9NU1RBVFVTLCAweGZmZmYpOwogCQlhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X1BPV0VSRE9XTiwgMHhmZmZmKTsKIAkJYnJlYWs7CiAJfQotCWNvZGVjLT5kYXBtX3N0YXRlID0gZXZlbnQ7CisJY29kZWMtPmJpYXNfbGV2ZWwgPSBsZXZlbDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTk4LDEyICs1ODksMTIgQEAKIHsKIAlpZiAodHJ5X3dhcm0gJiYgc29jX2FjOTdfb3BzLndhcm1fcmVzZXQpIHsKIAkJc29jX2FjOTdfb3BzLndhcm1fcmVzZXQoY29kZWMtPmFjOTcpOwotCQlpZiAoIShhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKSkKKwkJaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgPT0gd205NzEyX3JlZ1swXSkKIAkJCXJldHVybiAxOwogCX0KIAogCXNvY19hYzk3X29wcy5yZXNldChjb2RlYy0+YWM5Nyk7Ci0JaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgJiAweDgwMDApCisJaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgIT0gd205NzEyX3JlZ1swXSkKIAkJZ290byBlcnI7CiAJcmV0dXJuIDA7CiAKQEAgLTYxOCw3ICs2MDksNyBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKIAotCXdtOTcxMl9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNjb2xkKTsKKwl3bTk3MTJfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwogCXJldHVybiAwOwogfQogCkBAIC02MzUsNyArNjI2LDcgQEAKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQl3bTk3MTJfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTk3MTJfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAogCWlmIChyZXQgPT0gMCkgewogCQkvKiBTeW5jIHJlZ19jYWNoZSB3aXRoIHRoZSBoYXJkd2FyZSBhZnRlciBjb2xkIHJlc2V0ICovCkBAIC02NDcsOCArNjM4LDggQEAKIAkJfQogCX0KIAotCWlmIChjb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlID09IFNORFJWX0NUTF9QT1dFUl9EMCkKLQkJd205NzEyX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EMCk7CisJaWYgKGNvZGVjLT5zdXNwZW5kX2JpYXNfbGV2ZWwgPT0gU05EX1NPQ19CSUFTX09OKQorCQl3bTk3MTJfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PTik7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtNjgyLDcgKzY3Myw3IEBACiAJY29kZWMtPm51bV9kYWkgPSBBUlJBWV9TSVpFKHdtOTcxMl9kYWkpOwogCWNvZGVjLT53cml0ZSA9IGFjOTdfd3JpdGU7CiAJY29kZWMtPnJlYWQgPSBhYzk3X3JlYWQ7Ci0JY29kZWMtPmRhcG1fZXZlbnQgPSB3bTk3MTJfZGFwbV9ldmVudDsKKwljb2RlYy0+c2V0X2JpYXNfbGV2ZWwgPSB3bTk3MTJfc2V0X2JpYXNfbGV2ZWw7CiAJSU5JVF9MSVNUX0hFQUQoJmNvZGVjLT5kYXBtX3dpZGdldHMpOwogCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV9wYXRocyk7CiAKQEAgLTcwNiw3ICs2OTcsNyBAQAogCS8qIHNldCBhbGMgbXV4IHRvIG5vbmUgKi8KIAlhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X1ZJREVPLCBhYzk3X3JlYWQoY29kZWMsIEFDOTdfVklERU8pIHwgMHgzMDAwKTsKIAotCXdtOTcxMl9kYXBtX2V2ZW50KGNvZGVjLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCXdtOTcxMl9zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX1NUQU5EQlkpOwogCXdtOTcxMl9hZGRfY29udHJvbHMoY29kZWMpOwogCXdtOTcxMl9hZGRfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0ID0gc25kX3NvY19yZWdpc3Rlcl9jYXJkKHNvY2Rldik7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5oIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTIuaAppbmRleCA3MTkxMDVkLi5kMjllOGExIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMi5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEyLmgKQEAgLTgsNyArOCw3IEBACiAjZGVmaW5lIFdNOTcxMl9EQUlfQUM5N19ISUZJCTAKICNkZWZpbmUgV005NzEyX0RBSV9BQzk3X0FVWAkJMQogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpIHdtOTcxMl9kYWlbMl07CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHdtOTcxMl9kYWlbMl07CiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd205NzEyOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmMgYi9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5jCmluZGV4IDFmMjQxMTYuLjM4ZDFmZTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmMKKysrIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTMuYwpAQCAtMTAsOSArMTAsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDR0aCBGZWIgMjAwNiAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKiAgRmVhdHVyZXM6LQogICoKICAqICAgbyBTdXBwb3J0IGZvciBBQzk3IENvZGVjLCBWb2ljZSBEQUMgYW5kIEF1eCBEQUMKQEAgLTQ1Niw3ICs0NTMsNyBAQAogU05EX1NPQ19EQVBNX1ZNSUQoIlZNSUQiKSwKIH07CiAKLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCS8qIGxlZnQgSFAgbWl4ZXIgKi8KIAl7IkxlZnQgSFAgTWl4ZXIiLCAiUEMgQmVlcCBQbGF5YmFjayBTd2l0Y2giLCAiUENCRUVQIn0sCiAJeyJMZWZ0IEhQIE1peGVyIiwgIlZvaWNlIFBsYXliYWNrIFN3aXRjaCIsICAgIlZvaWNlIERBQyJ9LApAQCAtNjA3LDIxICs2MDQsMTQgQEAKIAl7IkNhcHR1cmUgTW9ubyBNdXgiLCAiU3RlcmVvIiwgIkNhcHR1cmUgTWl4ZXIifSwKIAl7IkNhcHR1cmUgTW9ubyBNdXgiLCAiTGVmdCIsICJMZWZ0IENhcHR1cmUgU291cmNlIn0sCiAJeyJDYXB0dXJlIE1vbm8gTXV4IiwgIlJpZ2h0IiwgIlJpZ2h0IENhcHR1cmUgU291cmNlIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgaW50IHdtOTcxM19hZGRfd2lkZ2V0cyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IGk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd205NzEzX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod205NzEzX2RhcG1fd2lkZ2V0cykpOwogCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod205NzEzX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd205NzEzX2RhcG1fd2lkZ2V0c1tpXSk7Ci0KLQkvKiBzZXQgdXAgYXVkaW8gcGF0aCBhdWRpb19tYXBuZWN0cyAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCXNuZF9zb2NfZGFwbV9uZXdfd2lkZ2V0cyhjb2RlYyk7CiAJcmV0dXJuIDA7CkBAIC03OTksNyArNzg5LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9wbGwoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX3BsbChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJaW50IHBsbF9pZCwgdW5zaWduZWQgaW50IGZyZXFfaW4sIHVuc2lnbmVkIGludCBmcmVxX291dCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtODEwLDcgKzgwMCw3IEBACiAgKiBUcmlzdGF0ZSB0aGUgUENNIERBSSBsaW5lcywgdHJpc3RhdGUgY2FuIGJlIGRpc2FibGVkIGJ5IGNhbGxpbmcKICAqIHdtOTcxM19zZXRfZGFpX2ZtdCgpCiAgKi8KLXN0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfdHJpc3RhdGUoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX3RyaXN0YXRlKHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCWludCB0cmlzdGF0ZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtODI2LDcgKzgxNiw3IEBACiAgKiBDb25maWd1cmUgV005NzEzIGNsb2NrIGRpdmlkZXJzLgogICogVm9pY2UgREFDIG5lZWRzIDI1NiBGUwogICovCi1zdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSwKK3N0YXRpYyBpbnQgd205NzEzX3NldF9kYWlfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAogCQlpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IGNvZGVjX2RhaS0+Y29kZWM7CkBAIC04NjgsNyArODU4LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCB3bTk3MTNfc2V0X2RhaV9mbXQoc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWksCitzdGF0aWMgaW50IHdtOTcxM19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBjb2RlY19kYWktPmNvZGVjOwpAQCAtODg2LDcgKzg3Niw3IEBACiAJCWdwaW8gfD0gMHgwMDE4OwogCQlicmVhazsKIAljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRlM6Ci0JCXJlZyB8PSAweDAyMDA7CisJCXJlZyB8PSAweDIwMDA7CiAJCWdwaW8gfD0gMHgwMDFhOwogCQlicmVhazsKIAljYXNlIFNORF9TT0NfREFJRk1UX0NCU19DRk06CkBAIC0xMDExLDE1ICsxMDAxLDI0IEBACiAJcmV0dXJuIGFjOTdfd3JpdGUoY29kZWMsIEFDOTdfUENNX1NVUlJfREFDX1JBVEUsIHJ1bnRpbWUtPnJhdGUpOwogfQogCi0jZGVmaW5lIFdNOTcxM19SQVRFUyAoU05EUlZfUENNX1JBVEVfODAwMCB8IFNORFJWX1BDTV9SQVRFXzExMDI1IHxcCi0JCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfFwKLQkJU05EUlZfUENNX1JBVEVfNDgwMDApCisjZGVmaW5lIFdNOTcxM19SQVRFUyAoU05EUlZfUENNX1JBVEVfODAwMCAgfAlcCisJCSAgICAgIFNORFJWX1BDTV9SQVRFXzExMDI1IHwJXAorCQkgICAgICBTTkRSVl9QQ01fUkFURV8yMjA1MCB8CVwKKwkJICAgICAgU05EUlZfUENNX1JBVEVfNDQxMDAgfAlcCisJCSAgICAgIFNORFJWX1BDTV9SQVRFXzQ4MDAwKQorCisjZGVmaW5lIFdNOTcxM19QQ01fUkFURVMgKFNORFJWX1BDTV9SQVRFXzgwMDAgIHwJXAorCQkJICBTTkRSVl9QQ01fUkFURV8xMTAyNSB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfMTYwMDAgfAlcCisJCQkgIFNORFJWX1BDTV9SQVRFXzIyMDUwIHwJXAorCQkJICBTTkRSVl9QQ01fUkFURV80NDEwMCB8CVwKKwkJCSAgU05EUlZfUENNX1JBVEVfNDgwMDApCiAKICNkZWZpbmUgV005NzEzX1BDTV9GT1JNQVRTIFwKIAkoU05EUlZfUENNX0ZPUk1BVF9TMTZfTEUgfCBTTkRSVl9QQ01fRk9STUFUX1MyMF8zTEUgfCBcCiAJIFNORFJWX1BDTV9GT1JNQVRfUzI0X0xFKQogCi1zdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgd205NzEzX2RhaVtdID0geworc3RydWN0IHNuZF9zb2NfZGFpIHdtOTcxM19kYWlbXSA9IHsKIHsKIAkubmFtZSA9ICJBQzk3IEhpRmkiLAogCS50eXBlID0gU05EX1NPQ19EQUlfQUM5N19CVVMsCkBAIC0xMDYxLDEzICsxMDYwLDEzIEBACiAJCS5zdHJlYW1fbmFtZSA9ICJWb2ljZSBQbGF5YmFjayIsCiAJCS5jaGFubmVsc19taW4gPSAxLAogCQkuY2hhbm5lbHNfbWF4ID0gMSwKLQkJLnJhdGVzID0gV005NzEzX1JBVEVTLAorCQkucmF0ZXMgPSBXTTk3MTNfUENNX1JBVEVTLAogCQkuZm9ybWF0cyA9IFdNOTcxM19QQ01fRk9STUFUUyx9LAogCS5jYXB0dXJlID0gewogCQkuc3RyZWFtX25hbWUgPSAiVm9pY2UgQ2FwdHVyZSIsCiAJCS5jaGFubmVsc19taW4gPSAxLAogCQkuY2hhbm5lbHNfbWF4ID0gMiwKLQkJLnJhdGVzID0gV005NzEzX1JBVEVTLAorCQkucmF0ZXMgPSBXTTk3MTNfUENNX1JBVEVTLAogCQkuZm9ybWF0cyA9IFdNOTcxM19QQ01fRk9STUFUUyx9LAogCS5vcHMgPSB7CiAJCS5od19wYXJhbXMgPSB3bTk3MTNfcGNtX2h3X3BhcmFtcywKQEAgLTEwODYsNDQgKzEwODUsNDQgQEAKIHsKIAlpZiAodHJ5X3dhcm0gJiYgc29jX2FjOTdfb3BzLndhcm1fcmVzZXQpIHsKIAkJc29jX2FjOTdfb3BzLndhcm1fcmVzZXQoY29kZWMtPmFjOTcpOwotCQlpZiAoIShhYzk3X3JlYWQoY29kZWMsIDApICYgMHg4MDAwKSkKKwkJaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgPT0gd205NzEzX3JlZ1swXSkKIAkJCXJldHVybiAxOwogCX0KIAogCXNvY19hYzk3X29wcy5yZXNldChjb2RlYy0+YWM5Nyk7Ci0JaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgJiAweDgwMDApCisJaWYgKGFjOTdfcmVhZChjb2RlYywgMCkgIT0gd205NzEzX3JlZ1swXSkKIAkJcmV0dXJuIC1FSU87CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTCh3bTk3MTNfcmVzZXQpOwogCi1zdGF0aWMgaW50IHdtOTcxM19kYXBtX2V2ZW50KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IGV2ZW50KQorc3RhdGljIGludCB3bTk3MTNfc2V0X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJCSBlbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAl1MTYgcmVnOwogCi0Jc3dpdGNoIChldmVudCkgewotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QwOiAvKiBmdWxsIE9uICovCisJc3dpdGNoIChsZXZlbCkgeworCWNhc2UgU05EX1NPQ19CSUFTX09OOgogCQkvKiBlbmFibGUgdGhlcm1hbCBzaHV0ZG93biAqLwogCQlyZWcgPSBhYzk3X3JlYWQoY29kZWMsIEFDOTdfRVhURU5ERURfTUlEKSAmIDB4MWJmZjsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19FWFRFTkRFRF9NSUQsIHJlZyk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QxOiAvKiBwYXJ0aWFsIE9uICovCi0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6IC8qIHBhcnRpYWwgT24gKi8KKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgogCQlicmVhazsKLQljYXNlIFNORFJWX0NUTF9QT1dFUl9EM2hvdDogLyogT2ZmLCB3aXRoIHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfU1RBTkRCWToKIAkJLyogZW5hYmxlIG1hc3RlciBiaWFzIGFuZCB2bWlkICovCiAJCXJlZyA9IGFjOTdfcmVhZChjb2RlYywgQUM5N19FWFRFTkRFRF9NSUQpICYgMHgzYmZmOwogCQlhYzk3X3dyaXRlKGNvZGVjLCBBQzk3X0VYVEVOREVEX01JRCwgcmVnKTsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19QT1dFUkRPV04sIDB4MDAwMCk7CiAJCWJyZWFrOwotCWNhc2UgU05EUlZfQ1RMX1BPV0VSX0QzY29sZDogLyogT2ZmLCB3aXRob3V0IHBvd2VyICovCisJY2FzZSBTTkRfU09DX0JJQVNfT0ZGOgogCQkvKiBkaXNhYmxlIGV2ZXJ5dGhpbmcgaW5jbHVkaW5nIEFDIGxpbmsgKi8KIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19FWFRFTkRFRF9NSUQsIDB4ZmZmZik7CiAJCWFjOTdfd3JpdGUoY29kZWMsIEFDOTdfRVhURU5ERURfTVNUQVRVUywgMHhmZmZmKTsKIAkJYWM5N193cml0ZShjb2RlYywgQUM5N19QT1dFUkRPV04sIDB4ZmZmZik7CiAJCWJyZWFrOwogCX0KLQljb2RlYy0+ZGFwbV9zdGF0ZSA9IGV2ZW50OworCWNvZGVjLT5iaWFzX2xldmVsID0gbGV2ZWw7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTExNjAsNyArMTE1OSw3IEBACiAJCXJldHVybiByZXQ7CiAJfQogCi0Jd205NzEzX2RhcG1fZXZlbnQoY29kZWMsIFNORFJWX0NUTF9QT1dFUl9EM2hvdCk7CisJd205NzEzX3NldF9iaWFzX2xldmVsKGNvZGVjLCBTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAKIAkvKiBkbyB3ZSBuZWVkIHRvIHJlLXN0YXJ0IHRoZSBQTEwgPyAqLwogCWlmICh3bTk3MTMtPnBsbF9vdXQpCkBAIC0xMTc2LDggKzExNzUsOCBAQAogCQl9CiAJfQogCi0JaWYgKGNvZGVjLT5zdXNwZW5kX2RhcG1fc3RhdGUgPT0gU05EUlZfQ1RMX1BPV0VSX0QwKQotCQl3bTk3MTNfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QwKTsKKwlpZiAoY29kZWMtPnN1c3BlbmRfYmlhc19sZXZlbCA9PSBTTkRfU09DX0JJQVNfT04pCisJCXdtOTcxM19zZXRfYmlhc19sZXZlbChjb2RlYywgU05EX1NPQ19CSUFTX09OKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC0xMjE2LDcgKzEyMTUsNyBAQAogCWNvZGVjLT5udW1fZGFpID0gQVJSQVlfU0laRSh3bTk3MTNfZGFpKTsKIAljb2RlYy0+d3JpdGUgPSBhYzk3X3dyaXRlOwogCWNvZGVjLT5yZWFkID0gYWM5N19yZWFkOwotCWNvZGVjLT5kYXBtX2V2ZW50ID0gd205NzEzX2RhcG1fZXZlbnQ7CisJY29kZWMtPnNldF9iaWFzX2xldmVsID0gd205NzEzX3NldF9iaWFzX2xldmVsOwogCUlOSVRfTElTVF9IRUFEKCZjb2RlYy0+ZGFwbV93aWRnZXRzKTsKIAlJTklUX0xJU1RfSEVBRCgmY29kZWMtPmRhcG1fcGF0aHMpOwogCkBAIC0xMjM4LDcgKzEyMzcsNyBAQAogCQlnb3RvIHJlc2V0X2VycjsKIAl9CiAKLQl3bTk3MTNfZGFwbV9ldmVudChjb2RlYywgU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwl3bTk3MTNfc2V0X2JpYXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19TVEFOREJZKTsKIAogCS8qIHVubXV0ZSB0aGUgYWRjIC0gbW92ZSB0byBrY29udHJvbCAqLwogCXJlZyA9IGFjOTdfcmVhZChjb2RlYywgQUM5N19DRCkgJiAweDdmZmY7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5oIGIvc291bmQvc29jL2NvZGVjcy93bTk3MTMuaAppbmRleCBkMzU3YjZjLi42M2I4ZDgxIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtOTcxMy5oCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mvd205NzEzLmgKQEAgLTQ2LDcgKzQ2LDcgQEAKICNkZWZpbmUgV005NzEzX0RBSV9QQ01fVk9JQ0UJMgogCiBleHRlcm4gc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlIHNvY19jb2RlY19kZXZfd205NzEzOwotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSB3bTk3MTNfZGFpWzNdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSB3bTk3MTNfZGFpWzNdOwogCiBpbnQgd205NzEzX3Jlc2V0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgIGludCB0cnlfd2FybSk7CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL0tjb25maWcgYi9zb3VuZC9zb2MvZGF2aW5jaS9LY29uZmlnCmluZGV4IDIwNjgwYzUuLjhmN2UzMzggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL0tjb25maWcKKysrIGIvc291bmQvc29jL2RhdmluY2kvS2NvbmZpZwpAQCAtMSw2ICsxLDYgQEAKIGNvbmZpZyBTTkRfREFWSU5DSV9TT0MKIAl0cmlzdGF0ZSAiU29DIEF1ZGlvIGZvciB0aGUgVEkgREFWSU5DSSBjaGlwIgotCWRlcGVuZHMgb24gQVJDSF9EQVZJTkNJICYmIFNORF9TT0MKKwlkZXBlbmRzIG9uIEFSQ0hfREFWSU5DSQogCWhlbHAKIAkgIFNheSBZIG9yIE0gaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0bwogCSAgdGhlIERBVklOQ0kgQUM5NyBvciBJMlMgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktZXZtLmMgYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWV2bS5jCmluZGV4IGZjZDE2NTIuLjVlMmMzMDYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktZXZtLmMKKysrIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1ldm0uYwpAQCAtMzMsMjQgKzMzLDI0IEBACiAJCQkgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCWludCByZXQgPSAwOwogCiAJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY29kZWNfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQkJCQkgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0NCTV9DRk0gfAorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSB8CiAJCQkJICAgICAgIFNORF9TT0NfREFJRk1UX0lCX05GKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgY29kZWMgc3lzdGVtIGNsb2NrICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCAwLCBFVk1fQ09ERUNfQ0xPQ0ssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIDAsIEVWTV9DT0RFQ19DTE9DSywKIAkJCQkJICAgIFNORF9TT0NfQ0xPQ0tfT1VUKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTcxLDcgKzcxLDcgQEAKIH07CiAKIC8qIGRhdmluY2ktZXZtIG1hY2hpbmUgYXVkaW9fbWFwbmVjdGlvbnMgdG8gdGhlIGNvZGVjIHBpbnMgKi8KLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCS8qIEhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gSFBMT1VULCBIUFJPVVQgKi8KIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQTE9VVCJ9LAogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiSFBST1VUIn0sCkBAIC05MCwzNiArOTAsMzAgQEAKIAl7IkxJTkUyTCIsIE5VTEwsICJMaW5lIEluIn0sCiAJeyJMSU5FMVIiLCBOVUxMLCAiTGluZSBJbiJ9LAogCXsiTElORTJSIiwgTlVMTCwgIkxpbmUgSW4ifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIC8qIExvZ2ljIGZvciBhIGFpYzN4IGFzIGNvbm5lY3RlZCBvbiBhIGRhdmluY2ktZXZtICovCiBzdGF0aWMgaW50IGV2bV9haWMzeF9pbml0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlpbnQgaTsKLQogCS8qIEFkZCBkYXZpbmNpLWV2bSBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoYWljM3hfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZhaWMzeF9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIGFpYzN4X2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUoYWljM3hfZGFwbV93aWRnZXRzKSk7CiAKIAkvKiBTZXQgdXAgZGF2aW5jaS1ldm0gc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKQotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJCQkgICBhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAogCS8qIG5vdCBjb25uZWN0ZWQgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTU9OT19MT1VUIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhQTENPTSIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIUFJDT00iLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNT05PX0xPVVQiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIUExDT00iKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIUFJDT00iKTsKIAogCS8qIGFsd2F5cyBjb25uZWN0ZWQgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAxKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBPdXQiLCAxKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCAxKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBJbiIsIDEpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkxpbmUgT3V0Iik7CisJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTGluZSBJbiIpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmMgYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5jCmluZGV4IGM0MjE3NzQuLjVlYmYxZmYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmMKKysrIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuYwpAQCAtMTQ3LDcgKzE0Nyw3IEBACiBzdGF0aWMgaW50IGRhdmluY2lfaTJzX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlzdHJ1Y3QgZGF2aW5jaV9tY2JzcF9kZXYgKmRldiA9IHJ0ZC0+ZGFpLT5jcHVfZGFpLT5wcml2YXRlX2RhdGE7CiAKIAljcHVfZGFpLT5kbWFfZGF0YSA9IGRldi0+ZG1hX3BhcmFtc1tzdWJzdHJlYW0tPnN0cmVhbV07CkBAIC0xNTUsNyArMTU1LDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBkYXZpbmNpX2kyc19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBkYXZpbmNpX2kyc19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkJICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3QgZGF2aW5jaV9tY2JzcF9kZXYgKmRldiA9IGNwdV9kYWktPnByaXZhdGVfZGF0YTsKQEAgLTI5NSwxMSArMjk1LDEyIEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBkYXZpbmNpX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBkYXZpbmNpX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW3BkZXYtPmlkXS5jcHVfZGFpOwogCXN0cnVjdCBkYXZpbmNpX21jYnNwX2RldiAqZGV2OwogCXN0cnVjdCByZXNvdXJjZSAqbWVtLCAqaW9hcmVhOwogCXN0cnVjdCBldm1fc25kX3BsYXRmb3JtX2RhdGEgKnBkYXRhOwpAQCAtMzU2LDExICszNTcsMTIgQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBkYXZpbmNpX2kyc19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyB2b2lkIGRhdmluY2lfaTJzX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7CiAJc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqbWFjaGluZSA9IHNvY2Rldi0+bWFjaGluZTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbcGRldi0+aWRdLmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbcGRldi0+aWRdLmNwdV9kYWk7CiAJc3RydWN0IGRhdmluY2lfbWNic3BfZGV2ICpkZXYgPSBjcHVfZGFpLT5wcml2YXRlX2RhdGE7CiAJc3RydWN0IHJlc291cmNlICptZW07CiAKQEAgLTM3Niw3ICszNzgsNyBAQAogCiAjZGVmaW5lIERBVklOQ0lfSTJTX1JBVEVTCVNORFJWX1BDTV9SQVRFXzgwMDBfOTYwMDAKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBkYXZpbmNpX2kyc19kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgZGF2aW5jaV9pMnNfZGFpID0gewogCS5uYW1lID0gImRhdmluY2ktaTJzIiwKIAkuaWQgPSAwLAogCS50eXBlID0gU05EX1NPQ19EQUlfSTJTLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuaCBiL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktaTJzLmgKaW5kZXggOTU5MmQxNy4uYzViMDkxOCAxMDA2NDQKLS0tIGEvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1pMnMuaAorKysgYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLWkycy5oCkBAIC0xMiw2ICsxMiw2IEBACiAjaWZuZGVmIF9EQVZJTkNJX0kyU19ICiAjZGVmaW5lIF9EQVZJTkNJX0kyU19ICiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGRhdmluY2lfaTJzX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgZGF2aW5jaV9pMnNfZGFpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktcGNtLmMgYi9zb3VuZC9zb2MvZGF2aW5jaS9kYXZpbmNpLXBjbS5jCmluZGV4IDZhNzY5MjcuLjZhNWU1NmEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9kYXZpbmNpL2RhdmluY2ktcGNtLmMKKysrIGIvc291bmQvc29jL2RhdmluY2kvZGF2aW5jaS1wY20uYwpAQCAtMzUwLDcgKzM1MCw3IEBACiBzdGF0aWMgdTY0IGRhdmluY2lfcGNtX2RtYW1hc2sgPSAweGZmZmZmZmZmOwogCiBzdGF0aWMgaW50IGRhdmluY2lfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsCi0JCQkgICBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwgc3RydWN0IHNuZF9wY20gKnBjbSkKKwkJCSAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCWludCByZXQ7CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvS2NvbmZpZyBiL3NvdW5kL3NvYy9mc2wvS2NvbmZpZwppbmRleCAyNTcxMDFmLi4zMzY4YWNlIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL0tjb25maWcKKysrIGIvc291bmQvc29jL2ZzbC9LY29uZmlnCkBAIC0xLDggKzEsNiBAQAotbWVudSAiQUxTQSBTb0MgYXVkaW8gZm9yIEZyZWVzY2FsZSBTT0NzIgotCiBjb25maWcgU05EX1NPQ19NUEM4NjEwCiAJYm9vbCAiQUxTQSBTb0Mgc3VwcG9ydCBmb3IgdGhlIE1QQzg2MTAgU09DIgotCWRlcGVuZHMgb24gU05EX1NPQyAmJiBNUEM4NjEwX0hQQ0QKKwlkZXBlbmRzIG9uIE1QQzg2MTBfSFBDRAogCWRlZmF1bHQgeSBpZiBNUEM4NjEwCiAJaGVscAogCSAgU2F5IFkgaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIGNvZGVjcyBhdHRhY2hlZCB0byB0aGUgU1NJCkBAIC0xNiw1ICsxNCwzIEBACiAJZGVmYXVsdCB5IGlmIE1QQzg2MTBfSFBDRAogCWhlbHAKIAkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBhdWRpbyBvbiB0aGUgRnJlZXNjYWxlIE1QQzg2MTAgSFBDRC4KLQotZW5kbWVudQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmMgYi9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuYwppbmRleCA3OGRlNzE2Li5kYTJiYzU5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuYworKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuYwpAQCAtMjgyLDcgKzI4Miw3IEBACiAgKiBvbmNlIGZvciBlYWNoIC5kYWlfbGluayBpbiB0aGUgbWFjaGluZSBkcml2ZXIncyBzbmRfc29jX21hY2hpbmUKICAqIHN0cnVjdHVyZS4KICAqLwotc3RhdGljIGludCBmc2xfZG1hX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLAorc3RhdGljIGludCBmc2xfZG1hX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAogCXN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJc3RhdGljIHU2NCBmc2xfZG1hX2RtYW1hc2sgPSBETUFfQklUX01BU0soMzIpOwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL2ZzbC9mc2xfZG1hLmggYi9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuaAppbmRleCA0MzBhNmNlLi4zODVkNGE0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuaAorKysgYi9zb3VuZC9zb2MvZnNsL2ZzbF9kbWEuaApAQCAtMTI2LDcgKzEyNiw3IEBACiAJdTggcmVzWzRdOyAgICAgIC8qIFJlc2VydmVkICovCiB9IF9fYXR0cmlidXRlX18gKChhbGlnbmVkKDMyKSwgcGFja2VkKSk7CiAKLS8qIERNQSBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gY3JlYXRlIGEgc25kX3NvY19jcHVfZGFpIG9iamVjdAorLyogRE1BIGluZm9ybWF0aW9uIG5lZWRlZCB0byBjcmVhdGUgYSBzbmRfc29jX2RhaSBvYmplY3QKICAqCiAgKiBzc2lfc3R4X3BoeXM6IGJ1cyBhZGRyZXNzIG9mIFNTSSBTVFggcmVnaXN0ZXIgdG8gdXNlCiAgKiBzc2lfc3J4X3BoeXM6IGJ1cyBhZGRyZXNzIG9mIFNTSSBTUlggcmVnaXN0ZXIgdG8gdXNlCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuYyBiL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5jCmluZGV4IGY1ODg1NDUuLjcxYmZmMzMgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5jCisrKyBiL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5jCkBAIC04Miw3ICs4Miw3IEBACiAJc3RydWN0IGRldmljZSAqZGV2OwogCXVuc2lnbmVkIGludCBwbGF5YmFjazsKIAl1bnNpZ25lZCBpbnQgY2FwdHVyZTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpIGNwdV9kYWk7CiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0dHI7CiAKIAlzdHJ1Y3QgewpAQCAtNDc5LDcgKzQ3OSw3IEBACiAgKiBAZnJlcTogdGhlIGZyZXF1ZW5jeSBvZiB0aGUgZ2l2ZW4gY2xvY2sgSUQsIGN1cnJlbnRseSBpZ25vcmVkCiAgKiBAZGlyOiBTTkRfU09DX0NMT0NLX0lOIChjbG9jayBzbGF2ZSkgb3IgU05EX1NPQ19DTE9DS19PVVQgKGNsb2NrIG1hc3RlcikKICAqLwotc3RhdGljIGludCBmc2xfc3NpX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgZnNsX3NzaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCSAgICAgIGludCBjbGtfaWQsIHVuc2lnbmVkIGludCBmcmVxLCBpbnQgZGlyKQogewogCkBAIC00OTcsNyArNDk3LDcgQEAKICAqCiAgKiBAZm9ybWF0OiBvbmUgb2YgU05EX1NPQ19EQUlGTVRfeHh4CiAgKi8KLXN0YXRpYyBpbnQgZnNsX3NzaV9zZXRfZm10KHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksIHVuc2lnbmVkIGludCBmb3JtYXQpCitzdGF0aWMgaW50IGZzbF9zc2lfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksIHVuc2lnbmVkIGludCBmb3JtYXQpCiB7CiAJcmV0dXJuIChmb3JtYXQgPT0gU05EX1NPQ19EQUlGTVRfSTJTKSA/IDAgOiAtRUlOVkFMOwogfQpAQCAtNTA1LDcgKzUwNSw3IEBACiAvKioKICAqIGZzbF9zc2lfZGFpX3RlbXBsYXRlOiB0ZW1wbGF0ZSBDUFUgREFJIGZvciB0aGUgU1NJCiAgKi8KLXN0YXRpYyBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIGZzbF9zc2lfZGFpX3RlbXBsYXRlID0geworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaSBmc2xfc3NpX2RhaV90ZW1wbGF0ZSA9IHsKIAkucGxheWJhY2sgPSB7CiAJCS8qIFRoZSBTU0kgZG9lcyBub3Qgc3VwcG9ydCBtb25hdXJhbCBhdWRpby4gKi8KIAkJLmNoYW5uZWxzX21pbiA9IDIsCkBAIC01NjksMTUgKzU2OSwxNSBAQAogfQogCiAvKioKLSAqIGZzbF9zc2lfY3JlYXRlX2RhaTogY3JlYXRlIGEgc25kX3NvY19jcHVfZGFpIHN0cnVjdHVyZQorICogZnNsX3NzaV9jcmVhdGVfZGFpOiBjcmVhdGUgYSBzbmRfc29jX2RhaSBzdHJ1Y3R1cmUKICAqCi0gKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgbWFjaGluZSBkcml2ZXIgdG8gY3JlYXRlIGEgc25kX3NvY19jcHVfZGFpCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUgbWFjaGluZSBkcml2ZXIgdG8gY3JlYXRlIGEgc25kX3NvY19kYWkKICAqIHN0cnVjdHVyZS4gIFRoZSBmdW5jdGlvbiBjcmVhdGVzIGFuIHNzaV9wcml2YXRlIG9iamVjdCwgd2hpY2ggY29udGFpbnMKLSAqIHRoZSBzbmRfc29jX2NwdV9kYWkuICBJdCBhbHNvIGNyZWF0ZXMgdGhlIHN5c2ZzIHN0YXRpc3RpY3MgZGV2aWNlLgorICogdGhlIHNuZF9zb2NfZGFpLiAgSXQgYWxzbyBjcmVhdGVzIHRoZSBzeXNmcyBzdGF0aXN0aWNzIGRldmljZS4KICAqLwotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKQorc3RydWN0IHNuZF9zb2NfZGFpICpmc2xfc3NpX2NyZWF0ZV9kYWkoc3RydWN0IGZzbF9zc2lfaW5mbyAqc3NpX2luZm8pCiB7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZnNsX3NzaV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpmc2xfc3NpX2RhaTsKIAlzdHJ1Y3QgZnNsX3NzaV9wcml2YXRlICpzc2lfcHJpdmF0ZTsKIAlpbnQgcmV0ID0gMDsKIAlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqZGV2X2F0dHI7CkBAIC01ODgsNyArNTg4LDcgQEAKIAkJcmV0dXJuIE5VTEw7CiAJfQogCW1lbWNweSgmc3NpX3ByaXZhdGUtPmNwdV9kYWksICZmc2xfc3NpX2RhaV90ZW1wbGF0ZSwKLQkgICAgICAgc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkpKTsKKwkgICAgICAgc2l6ZW9mKHN0cnVjdCBzbmRfc29jX2RhaSkpOwogCiAJZnNsX3NzaV9kYWkgPSAmc3NpX3ByaXZhdGUtPmNwdV9kYWk7CiAJZGV2X2F0dHIgPSAmc3NpX3ByaXZhdGUtPmRldl9hdHRyOwpAQCAtNjIzLDExICs2MjMsMTEgQEAKIEVYUE9SVF9TWU1CT0xfR1BMKGZzbF9zc2lfY3JlYXRlX2RhaSk7CiAKIC8qKgotICogZnNsX3NzaV9kZXN0cm95X2RhaTogZGVzdHJveSB0aGUgc25kX3NvY19jcHVfZGFpIG9iamVjdAorICogZnNsX3NzaV9kZXN0cm95X2RhaTogZGVzdHJveSB0aGUgc25kX3NvY19kYWkgb2JqZWN0CiAgKgogICogVGhpcyBmdW5jdGlvbiB1bmRvZXMgdGhlIG9wZXJhdGlvbnMgb2YgZnNsX3NzaV9jcmVhdGVfZGFpKCkKICAqLwotdm9pZCBmc2xfc3NpX2Rlc3Ryb3lfZGFpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfZGFpKQordm9pZCBmc2xfc3NpX2Rlc3Ryb3lfZGFpKHN0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9kYWkpCiB7CiAJc3RydWN0IGZzbF9zc2lfcHJpdmF0ZSAqc3NpX3ByaXZhdGUgPQogCWNvbnRhaW5lcl9vZihmc2xfc3NpX2RhaSwgc3RydWN0IGZzbF9zc2lfcHJpdmF0ZSwgY3B1X2RhaSk7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvZnNsL2ZzbF9zc2kuaCBiL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5oCmluZGV4IGM1Y2U4OGUuLjgzYjQ0ZDcgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5oCisrKyBiL3NvdW5kL3NvYy9mc2wvZnNsX3NzaS5oCkBAIC0yMTcsOCArMjE3LDggQEAKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiB9OwogCi1zdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpmc2xfc3NpX2NyZWF0ZV9kYWkoc3RydWN0IGZzbF9zc2lfaW5mbyAqc3NpX2luZm8pOwotdm9pZCBmc2xfc3NpX2Rlc3Ryb3lfZGFpKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmZzbF9zc2lfZGFpKTsKK3N0cnVjdCBzbmRfc29jX2RhaSAqZnNsX3NzaV9jcmVhdGVfZGFpKHN0cnVjdCBmc2xfc3NpX2luZm8gKnNzaV9pbmZvKTsKK3ZvaWQgZnNsX3NzaV9kZXN0cm95X2RhaShzdHJ1Y3Qgc25kX3NvY19kYWkgKmZzbF9zc2lfZGFpKTsKIAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9mc2wvbXBjODYxMF9ocGNkLmMgYi9zb3VuZC9zb2MvZnNsL21wYzg2MTBfaHBjZC5jCmluZGV4IGEwMGFhYzcuLjRiZGM5ZDggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9mc2wvbXBjODYxMF9ocGNkLmMKKysrIGIvc291bmQvc29jL2ZzbC9tcGM4NjEwX2hwY2QuYwpAQCAtNTgsOSArNTgsOSBAQAogCQlzb3VuZF9kZXZpY2UtPmRldi5wbGF0Zm9ybV9kYXRhOwogCiAJLyogUHJvZ3JhbSB0aGUgc2lnbmFsIHJvdXRpbmcgYmV0d2VlbiB0aGUgU1NJIGFuZCB0aGUgRE1BICovCi0JZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCArIDEsCisJZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCwKIAkJbWFjaGluZV9kYXRhLT5kbWFfY2hhbm5lbF9pZFswXSwgQ0NTUl9HVVRTX0RNQUNSX0RFVl9TU0kpOwotCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQgKyAxLAorCWd1dHNfc2V0X2RtYWNyKG1hY2hpbmVfZGF0YS0+Z3V0cywgbWFjaGluZV9kYXRhLT5kbWFfaWQsCiAJCW1hY2hpbmVfZGF0YS0+ZG1hX2NoYW5uZWxfaWRbMV0sIENDU1JfR1VUU19ETUFDUl9ERVZfU1NJKTsKIAogCWd1dHNfc2V0X3BtdXhjcl9kbWEobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCwKQEAgLTk2LDYyICs5Niw1MiBAQAogc3RhdGljIGludCBtcGM4NjEwX2hwY2Rfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG1wYzg2MTBfaHBjZF9kYXRhICptYWNoaW5lX2RhdGEgPQogCQlydGQtPnNvY2Rldi0+ZGV2LT5wbGF0Zm9ybV9kYXRhOwogCWludCByZXQgPSAwOwogCiAJLyogVGVsbCB0aGUgQ1BVIGRyaXZlciB3aGF0IHRoZSBzZXJpYWwgcHJvdG9jb2wgaXMuICovCi0JaWYgKGNwdV9kYWktPmRhaV9vcHMuc2V0X2ZtdCkgewotCQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQoY3B1X2RhaSwKLQkJCW1hY2hpbmVfZGF0YS0+ZGFpX2Zvcm1hdCk7Ci0JCWlmIChyZXQgPCAwKSB7Ci0JCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCi0JCQkJImNvdWxkIG5vdCBzZXQgQ1BVIGRyaXZlciBhdWRpbyBmb3JtYXRcbiIpOwotCQkJcmV0dXJuIHJldDsKLQkJfQorCXJldCA9IHNuZF9zb2NfZGFpX3NldF9mbXQoY3B1X2RhaSwgbWFjaGluZV9kYXRhLT5kYWlfZm9ybWF0KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBDUFUgZHJpdmVyIGF1ZGlvIGZvcm1hdFxuIik7CisJCXJldHVybiByZXQ7CiAJfQogCiAJLyogVGVsbCB0aGUgY29kZWMgZHJpdmVyIHdoYXQgdGhlIHNlcmlhbCBwcm90b2NvbCBpcy4gKi8KLQlpZiAoY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQpIHsKLQkJcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9mbXQoY29kZWNfZGFpLAotCQkJbWFjaGluZV9kYXRhLT5kYWlfZm9ybWF0KTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKLQkJCQkiY291bGQgbm90IHNldCBjb2RlYyBkcml2ZXIgYXVkaW8gZm9ybWF0XG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgbWFjaGluZV9kYXRhLT5kYWlfZm9ybWF0KTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKHN1YnN0cmVhbS0+cGNtLT5jYXJkLT5kZXYsCisJCQkiY291bGQgbm90IHNldCBjb2RlYyBkcml2ZXIgYXVkaW8gZm9ybWF0XG4iKTsKKwkJcmV0dXJuIHJldDsKIAl9CiAKIAkvKgogCSAqIFRlbGwgdGhlIENQVSBkcml2ZXIgd2hhdCB0aGUgY2xvY2sgZnJlcXVlbmN5IGlzLCBhbmQgd2hldGhlciBpdCdzIGEKIAkgKiBzbGF2ZSBvciBtYXN0ZXIuCiAJICovCi0JaWYgKGNwdV9kYWktPmRhaV9vcHMuc2V0X3N5c2NsaykgewotCQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgMCwKLQkJCW1hY2hpbmVfZGF0YS0+Y2xrX2ZyZXF1ZW5jeSwKLQkJCW1hY2hpbmVfZGF0YS0+Y3B1X2Nsa19kaXJlY3Rpb24pOwotCQlpZiAocmV0IDwgMCkgewotCQkJZGV2X2VycihzdWJzdHJlYW0tPnBjbS0+Y2FyZC0+ZGV2LAotCQkJCSJjb3VsZCBub3Qgc2V0IENQVSBkcml2ZXIgY2xvY2sgcGFyYW1ldGVyc1xuIik7Ci0JCQlyZXR1cm4gcmV0OwotCQl9CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCAwLAorCQkJCQltYWNoaW5lX2RhdGEtPmNsa19mcmVxdWVuY3ksCisJCQkJCW1hY2hpbmVfZGF0YS0+Y3B1X2Nsa19kaXJlY3Rpb24pOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKKwkJCSJjb3VsZCBub3Qgc2V0IENQVSBkcml2ZXIgY2xvY2sgcGFyYW1ldGVyc1xuIik7CisJCXJldHVybiByZXQ7CiAJfQogCiAJLyoKIAkgKiBUZWxsIHRoZSBjb2RlYyBkcml2ZXIgd2hhdCB0aGUgTUNMSyBmcmVxdWVuY3kgaXMsIGFuZCB3aGV0aGVyIGl0J3MKIAkgKiBhIHNsYXZlIG9yIG1hc3Rlci4KIAkgKi8KLQlpZiAoY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspIHsKLQkJcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCAwLAotCQkJbWFjaGluZV9kYXRhLT5jbGtfZnJlcXVlbmN5LAotCQkJbWFjaGluZV9kYXRhLT5jb2RlY19jbGtfZGlyZWN0aW9uKTsKLQkJaWYgKHJldCA8IDApIHsKLQkJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKLQkJCQkiY291bGQgbm90IHNldCBjb2RlYyBkcml2ZXIgY2xvY2sgcGFyYW1zXG4iKTsKLQkJCXJldHVybiByZXQ7Ci0JCX0KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwKKwkJCQkJbWFjaGluZV9kYXRhLT5jbGtfZnJlcXVlbmN5LAorCQkJCQltYWNoaW5lX2RhdGEtPmNvZGVjX2Nsa19kaXJlY3Rpb24pOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoc3Vic3RyZWFtLT5wY20tPmNhcmQtPmRldiwKKwkJCSJjb3VsZCBub3Qgc2V0IGNvZGVjIGRyaXZlciBjbG9jayBwYXJhbXNcbiIpOworCQlyZXR1cm4gcmV0OwogCX0KIAogCXJldHVybiAwOwpAQCAtMTcwLDkgKzE2MCw5IEBACiAKIAkvKiBSZXN0b3JlIHRoZSBzaWduYWwgcm91dGluZyAqLwogCi0JZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCArIDEsCisJZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCwKIAkJbWFjaGluZV9kYXRhLT5kbWFfY2hhbm5lbF9pZFswXSwgMCk7Ci0JZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCArIDEsCisJZ3V0c19zZXRfZG1hY3IobWFjaGluZV9kYXRhLT5ndXRzLCBtYWNoaW5lX2RhdGEtPmRtYV9pZCwKIAkJbWFjaGluZV9kYXRhLT5kbWFfY2hhbm5lbF9pZFsxXSwgMCk7CiAKIAlzd2l0Y2ggKG1hY2hpbmVfZGF0YS0+c3NpX2lkKSB7CkBAIC0xODIsNyArMTcyLDcgQEAKIAkJYnJlYWs7CiAJY2FzZSAxOgogCQljbHJzZXRiaXRzX2JlMzIoJm1hY2hpbmVfZGF0YS0+Z3V0cy0+cG11eGNyLAotCQkJQ0NTUl9HVVRTX1BNVVhDUl9TU0kyX01BU0ssIENDU1JfR1VUU19QTVVYQ1JfU1NJMV9MQSk7CisJCQlDQ1NSX0dVVFNfUE1VWENSX1NTSTJfTUFTSywgQ0NTUl9HVVRTX1BNVVhDUl9TU0kyX0xBKTsKIAkJYnJlYWs7CiAJfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvb21hcC9LY29uZmlnIGIvc291bmQvc29jL29tYXAvS2NvbmZpZwppbmRleCAwMjMwZDgzLi5hZWEyN2U3IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvb21hcC9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9vbWFwL0tjb25maWcKQEAgLTEsNSArMSwzIEBACi1tZW51ICJTb0MgQXVkaW8gZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cyBPTUFQIgotCiBjb25maWcgU05EX09NQVBfU09DCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzIE9NQVAgY2hpcHMiCiAJZGVwZW5kcyBvbiBBUkNIX09NQVAgJiYgU05EX1NPQwpAQCAtMTUsNSArMTMsMyBAQAogCXNlbGVjdCBTTkRfU09DX1RMVjMyMEFJQzNYCiAJaGVscAogCSAgU2F5IFkgaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFNvQyBhdWRpbyBvbiBOb2tpYSBOODEwLgotCi1lbmRtZW51CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvb21hcC9uODEwLmMgYi9zb3VuZC9zb2Mvb21hcC9uODEwLmMKaW5kZXggNjUzMzU2My4uMDJjZWM5NjggMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL244MTAuYworKysgYi9zb3VuZC9zb2Mvb21hcC9uODEwLmMKQEAgLTMwLDE1ICszMCwxNSBAQAogCiAjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL2dwaW8uaD4KKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+CiAjaW5jbHVkZSA8YXNtL2FyY2gvbWNic3AuaD4KIAogI2luY2x1ZGUgIm9tYXAtbWNic3AuaCIKICNpbmNsdWRlICJvbWFwLXBjbS5oIgogI2luY2x1ZGUgIi4uL2NvZGVjcy90bHYzMjBhaWMzeC5oIgogCi0jZGVmaW5lIFJYNDRfSEVBRFNFVF9BTVBfR1BJTwkxMAotI2RlZmluZSBSWDQ0X1NQRUFLRVJfQU1QX0dQSU8JMTAxCisjZGVmaW5lIE44MTBfSEVBRFNFVF9BTVBfR1BJTwkxMAorI2RlZmluZSBOODEwX1NQRUFLRVJfQU1QX0dQSU8JMTAxCiAKIHN0YXRpYyBzdHJ1Y3QgY2xrICpzeXNfY2xrb3V0MjsKIHN0YXRpYyBzdHJ1Y3QgY2xrICpzeXNfY2xrb3V0Ml9zcmM7CkBAIC00NiwxMyArNDYsMjYgQEAKIAogc3RhdGljIGludCBuODEwX3Nwa19mdW5jOwogc3RhdGljIGludCBuODEwX2phY2tfZnVuYzsKK3N0YXRpYyBpbnQgbjgxMF9kbWljX2Z1bmM7CiAKIHN0YXRpYyB2b2lkIG44MTBfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJFeHQgU3BrIiwgbjgxMF9zcGtfZnVuYyk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgbjgxMF9qYWNrX2Z1bmMpOworCWlmIChuODEwX3Nwa19mdW5jKQorCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJaWYgKG44MTBfamFja19mdW5jKQorCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJZWxzZQorCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCisJaWYgKG44MTBfZG1pY19mdW5jKQorCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkRNaWMiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkRNaWMiKTsKKworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIH0KIAogc3RhdGljIGludCBuODEwX3N0YXJ0dXAoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCkBAIC03MywxMiArODYsMTIgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJaW50IGVycjsKIAogCS8qIFNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCWVyciA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwKKwllcnIgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwKIAkJCQkJIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCQkJCSBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCQkJCSBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNKTsKQEAgLTg2LDcgKzk5LDcgQEAKIAkJcmV0dXJuIGVycjsKIAogCS8qIFNldCBjcHUgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQllcnIgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQoY3B1X2RhaSwKKwllcnIgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksCiAJCQkJICAgICAgIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCQkJICAgICAgIFNORF9TT0NfREFJRk1UX05CX05GIHwKIAkJCQkgICAgICAgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CkBAIC05NCw3ICsxMDcsNyBAQAogCQlyZXR1cm4gZXJyOwogCiAJLyogU2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JZXJyID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCAwLCAxMjAwMDAwMCwKKwllcnIgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwgMCwgMTIwMDAwMDAsCiAJCQkJCSAgICBTTkRfU09DX0NMT0NLX0lOKTsKIAogCXJldHVybiBlcnI7CkBAIC0xNTAsMTMgKzE2MywzNSBAQAogCXJldHVybiAxOwogfQogCitzdGF0aWMgaW50IG44MTBfZ2V0X2lucHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IG44MTBfZG1pY19mdW5jOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgbjgxMF9zZXRfaW5wdXQoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgIHN0cnVjdCBzbmRfY3RsX2VsZW1fdmFsdWUgKnVjb250cm9sKQoreworCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9ICBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisKKwlpZiAobjgxMF9kbWljX2Z1bmMgPT0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0pCisJCXJldHVybiAwOworCisJbjgxMF9kbWljX2Z1bmMgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKKwluODEwX2V4dF9jb250cm9sKGNvZGVjKTsKKworCXJldHVybiAxOworfQorCiBzdGF0aWMgaW50IG44MTBfc3BrX2V2ZW50KHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3LAogCQkJICBzdHJ1Y3Qgc25kX2tjb250cm9sICprLCBpbnQgZXZlbnQpCiB7CiAJaWYgKFNORF9TT0NfREFQTV9FVkVOVF9PTihldmVudCkpCi0JCW9tYXBfc2V0X2dwaW9fZGF0YW91dChSWDQ0X1NQRUFLRVJfQU1QX0dQSU8sIDEpOworCQlncGlvX3NldF92YWx1ZShOODEwX1NQRUFLRVJfQU1QX0dQSU8sIDEpOwogCWVsc2UKLQkJb21hcF9zZXRfZ3Bpb19kYXRhb3V0KFJYNDRfU1BFQUtFUl9BTVBfR1BJTywgMCk7CisJCWdwaW9fc2V0X3ZhbHVlKE44MTBfU1BFQUtFUl9BTVBfR1BJTywgMCk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE2NSw5ICsyMDAsOSBAQAogCQkJICAgc3RydWN0IHNuZF9rY29udHJvbCAqaywgaW50IGV2ZW50KQogewogCWlmIChTTkRfU09DX0RBUE1fRVZFTlRfT04oZXZlbnQpKQotCQlvbWFwX3NldF9ncGlvX2RhdGFvdXQoUlg0NF9IRUFEU0VUX0FNUF9HUElPLCAxKTsKKwkJZ3Bpb19zZXRfdmFsdWUoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAxKTsKIAllbHNlCi0JCW9tYXBfc2V0X2dwaW9fZGF0YW91dChSWDQ0X0hFQURTRVRfQU1QX0dQSU8sIDApOworCQlncGlvX3NldF92YWx1ZShOODEwX0hFQURTRVRfQU1QX0dQSU8sIDApOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNzUsMjEgKzIxMCwyNyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0IGFpYzMzX2RhcG1fd2lkZ2V0c1tdID0gewogCVNORF9TT0NfREFQTV9TUEsoIkV4dCBTcGsiLCBuODEwX3Nwa19ldmVudCksCiAJU05EX1NPQ19EQVBNX0hQKCJIZWFkcGhvbmUgSmFjayIsIG44MTBfamFja19ldmVudCksCisJU05EX1NPQ19EQVBNX01JQygiRE1pYyIsIE5VTEwpLAogfTsKIAotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJIUExPVVQifSwKIAl7IkhlYWRwaG9uZSBKYWNrIiwgTlVMTCwgIkhQUk9VVCJ9LAogCiAJeyJFeHQgU3BrIiwgTlVMTCwgIkxMT1VUIn0sCiAJeyJFeHQgU3BrIiwgTlVMTCwgIlJMT1VUIn0sCisKKwl7IkRNaWMgUmF0ZSA2NCIsIE5VTEwsICJNaWMgQmlhcyAyViJ9LAorCXsiTWljIEJpYXMgMlYiLCBOVUxMLCAiRE1pYyJ9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnNwa19mdW5jdGlvbltdID0geyJPZmYiLCAiT24ifTsKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7Ik9mZiIsICJIZWFkcGhvbmUifTsKK3N0YXRpYyBjb25zdCBjaGFyICppbnB1dF9mdW5jdGlvbltdID0geyJBREMiLCAiRGlnaXRhbCBNaWMifTsKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc29jX2VudW0gbjgxMF9lbnVtW10gPSB7CiAJU09DX0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKHNwa19mdW5jdGlvbiksIHNwa19mdW5jdGlvbiksCiAJU09DX0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKGphY2tfZnVuY3Rpb24pLCBqYWNrX2Z1bmN0aW9uKSwKKwlTT0NfRU5VTV9TSU5HTEVfRVhUKEFSUkFZX1NJWkUoaW5wdXRfZnVuY3Rpb24pLCBpbnB1dF9mdW5jdGlvbiksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgYWljMzNfbjgxMF9jb250cm9sc1tdID0gewpAQCAtMTk3LDYgKzIzOCw4IEBACiAJCSAgICAgbjgxMF9nZXRfc3BrLCBuODEwX3NldF9zcGspLAogCVNPQ19FTlVNX0VYVCgiSmFjayBGdW5jdGlvbiIsIG44MTBfZW51bVsxXSwKIAkJICAgICBuODEwX2dldF9qYWNrLCBuODEwX3NldF9qYWNrKSwKKwlTT0NfRU5VTV9FWFQoIklucHV0IFNlbGVjdCIsICBuODEwX2VudW1bMl0sCisJCSAgICAgbjgxMF9nZXRfaW5wdXQsIG44MTBfc2V0X2lucHV0KSwKIH07CiAKIHN0YXRpYyBpbnQgbjgxMF9haWMzM19pbml0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKQEAgLTIwNCw5ICsyNDcsOSBAQAogCWludCBpLCBlcnI7CiAKIAkvKiBOb3QgY29ubmVjdGVkICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk9fTE9VVCIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIUExDT00iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSFBSQ09NIiwgMCk7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTU9OT19MT1VUIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBMQ09NIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSFBSQ09NIik7CiAKIAkvKiBBZGQgTjgxMCBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFpYzMzX244MTBfY29udHJvbHMpOyBpKyspIHsKQEAgLTIxNywxNSArMjYwLDEzIEBACiAJfQogCiAJLyogQWRkIE44MTAgc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFpYzMzX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmYWljMzNfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCBhaWMzM19kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKGFpYzMzX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIE44MTAgc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhdWRpb19tYXApOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNTAsNiArMjkxLDggQEAKIC8qIEF1ZGlvIHByaXZhdGUgZGF0YSAqLwogc3RhdGljIHN0cnVjdCBhaWMzeF9zZXR1cF9kYXRhIG44MTBfYWljMzNfc2V0dXAgPSB7CiAJLmkyY19hZGRyZXNzID0gMHgxOCwKKwkuZ3Bpb19mdW5jWzBdID0gQUlDM1hfR1BJTzFfRlVOQ19ESVNBQkxFRCwKKwkuZ3Bpb19mdW5jWzFdID0gQUlDM1hfR1BJTzJfRlVOQ19ESUdJVEFMX01JQ19JTlBVVCwKIH07CiAKIC8qIEF1ZGlvIHN1YnN5c3RlbSAqLwpAQCAtMjY3LDcgKzMxMCw3IEBACiAJaW50IGVycjsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAKLQlpZiAoIW1hY2hpbmVfaXNfbm9raWFfbjgxMCgpKQorCWlmICghKG1hY2hpbmVfaXNfbm9raWFfbjgxMCgpIHx8IG1hY2hpbmVfaXNfbm9raWFfbjgxMF93aW1heCgpKSkKIAkJcmV0dXJuIC1FTk9ERVY7CiAKIAluODEwX3NuZF9kZXZpY2UgPSBwbGF0Zm9ybV9kZXZpY2VfYWxsb2MoInNvYy1hdWRpbyIsIC0xKTsKQEAgLTMwNSwxMiArMzQ4LDEyIEBACiAJY2xrX3NldF9wYXJlbnQoc3lzX2Nsa291dDJfc3JjLCBmdW5jOTZtX2Nsayk7CiAJY2xrX3NldF9yYXRlKHN5c19jbGtvdXQyLCAxMjAwMDAwMCk7CiAKLQlpZiAob21hcF9yZXF1ZXN0X2dwaW8oUlg0NF9IRUFEU0VUX0FNUF9HUElPKSA8IDApCisJaWYgKGdwaW9fcmVxdWVzdChOODEwX0hFQURTRVRfQU1QX0dQSU8sICJoc19hbXAiKSA8IDApCiAJCUJVRygpOwotCWlmIChvbWFwX3JlcXVlc3RfZ3BpbyhSWDQ0X1NQRUFLRVJfQU1QX0dQSU8pIDwgMCkKKwlpZiAoZ3Bpb19yZXF1ZXN0KE44MTBfU1BFQUtFUl9BTVBfR1BJTywgInNwa19hbXAiKSA8IDApCiAJCUJVRygpOwotCW9tYXBfc2V0X2dwaW9fZGlyZWN0aW9uKFJYNDRfSEVBRFNFVF9BTVBfR1BJTywgMCk7Ci0Jb21hcF9zZXRfZ3Bpb19kaXJlY3Rpb24oUlg0NF9TUEVBS0VSX0FNUF9HUElPLCAwKTsKKwlncGlvX2RpcmVjdGlvbl9vdXRwdXQoTjgxMF9IRUFEU0VUX0FNUF9HUElPLCAwKTsKKwlncGlvX2RpcmVjdGlvbl9vdXRwdXQoTjgxMF9TUEVBS0VSX0FNUF9HUElPLCAwKTsKIAogCXJldHVybiAwOwogZXJyMjoKQEAgLTMyNSw2ICszNjgsOSBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgbjgxMF9zb2NfZXhpdCh2b2lkKQogeworCWdwaW9fZnJlZShOODEwX1NQRUFLRVJfQU1QX0dQSU8pOworCWdwaW9fZnJlZShOODEwX0hFQURTRVRfQU1QX0dQSU8pOworCiAJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIobjgxMF9zbmRfZGV2aWNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5jIGIvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5jCmluZGV4IDQwZDg3ZTYuLjAwYjBjOWQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuYworKysgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmMKQEAgLTEwMyw3ICsxMDMsNyBAQAogc3RhdGljIGludCBvbWFwX21jYnNwX2RhaV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJc3RydWN0IG9tYXBfbWNic3BfZGF0YSAqbWNic3BfZGF0YSA9IHRvX21jYnNwKGNwdV9kYWktPnByaXZhdGVfZGF0YSk7CiAJaW50IGVyciA9IDA7CiAKQEAgLTExNiw3ICsxMTYsNyBAQAogc3RhdGljIHZvaWQgb21hcF9tY2JzcF9kYWlfc2h1dGRvd24oc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKIAogCWlmICghY3B1X2RhaS0+YWN0aXZlKSB7CkBAIC0xMjgsNyArMTI4LDcgQEAKIHN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfdHJpZ2dlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwgaW50IGNtZCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXN0cnVjdCBvbWFwX21jYnNwX2RhdGEgKm1jYnNwX2RhdGEgPSB0b19tY2JzcChjcHVfZGFpLT5wcml2YXRlX2RhdGEpOwogCWludCBlcnIgPSAwOwogCkBAIC0xNTcsNyArMTU3LDcgQEAKIAkJCQkgICAgc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9yZWdfY2ZnICpyZWdzID0gJm1jYnNwX2RhdGEtPnJlZ3M7CiAJaW50IGRtYSwgYnVzX2lkID0gbWNic3BfZGF0YS0+YnVzX2lkLCBpZCA9IGNwdV9kYWktPmlkOwpAQCAtMjIzLDcgKzIyMyw3IEBACiAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBfc2V0X2Nsa2RpdiBhbmQgX3NldF9zeXNjbGsgc2luY2UgTWNCU1AgcmVnaXN0ZXIKICAqIGNhY2hlIGlzIGluaXRpYWxpemVkIGhlcmUKICAqLwotc3RhdGljIGludCBvbWFwX21jYnNwX2RhaV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBvbWFwX21jYnNwX2RhaV9zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkJICAgICAgdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgb21hcF9tY2JzcF9kYXRhICptY2JzcF9kYXRhID0gdG9fbWNic3AoY3B1X2RhaS0+cHJpdmF0ZV9kYXRhKTsKQEAgLTI5Miw3ICsyOTIsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IG9tYXBfbWNic3BfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkJICAgICBpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXN0cnVjdCBvbWFwX21jYnNwX2RhdGEgKm1jYnNwX2RhdGEgPSB0b19tY2JzcChjcHVfZGFpLT5wcml2YXRlX2RhdGEpOwpAQCAtMzQ3LDcgKzM0Nyw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgb21hcF9tY2JzcF9kYWlfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCQkgaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsCiAJCQkJCSBpbnQgZGlyKQogewpAQCAtMzc2LDcgKzM3Niw3IEBACiAJcmV0dXJuIGVycjsKIH0KIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBvbWFwX21jYnNwX2RhaVtOVU1fTElOS1NdID0geworc3RydWN0IHNuZF9zb2NfZGFpIG9tYXBfbWNic3BfZGFpW05VTV9MSU5LU10gPSB7CiB7CiAJLm5hbWUgPSAib21hcC1tY2JzcC1kYWkiLAogCS5pZCA9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmggYi9zb3VuZC9zb2Mvb21hcC9vbWFwLW1jYnNwLmgKaW5kZXggOTk2NWZkNC4uZWQ4YWZiNSAxMDA2NDQKLS0tIGEvc291bmQvc29jL29tYXAvb21hcC1tY2JzcC5oCisrKyBiL3NvdW5kL3NvYy9vbWFwL29tYXAtbWNic3AuaApAQCAtNDQsNiArNDQsNiBAQAogICovCiAjZGVmaW5lIE5VTV9MSU5LUwkxCiAKLWV4dGVybiBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpIG9tYXBfbWNic3BfZGFpW05VTV9MSU5LU107CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIG9tYXBfbWNic3BfZGFpW05VTV9MSU5LU107CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL29tYXAvb21hcC1wY20uYyBiL3NvdW5kL3NvYy9vbWFwL29tYXAtcGNtLmMKaW5kZXggNjIzNzAyMC4uZTA5MmYzZCAxMDA2NDQKLS0tIGEvc291bmQvc29jL29tYXAvb21hcC1wY20uYworKysgYi9zb3VuZC9zb2Mvb21hcC9vbWFwLXBjbS5jCkBAIC0zMTYsNyArMzE2LDcgQEAKIAl9CiB9CiAKLWludCBvbWFwX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSwKK2ludCBvbWFwX3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLCBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJIHN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJaW50IHJldCA9IDA7CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL0tjb25maWcgYi9zb3VuZC9zb2MvcHhhL0tjb25maWcKaW5kZXggNDg0Zjg4My4uMTJmNmFjOSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9weGEvS2NvbmZpZwpAQCAtMSw2ICsxLDYgQEAKIGNvbmZpZyBTTkRfUFhBMlhYX1NPQwogCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBJbnRlbCBQWEEyeHggY2hpcCIKLQlkZXBlbmRzIG9uIEFSQ0hfUFhBICYmIFNORF9TT0MKKwlkZXBlbmRzIG9uIEFSQ0hfUFhBCiAJaGVscAogCSAgU2F5IFkgb3IgTSBpZiB5b3Ugd2FudCB0byBhZGQgc3VwcG9ydCBmb3IgY29kZWNzIGF0dGFjaGVkIHRvCiAJICB0aGUgUFhBMnh4IEFDOTcsIEkyUyBvciBTU1AgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQKQEAgLTYyLDMgKzYyLDEyIEBACiAJaGVscAogCSAgU2F5IFkgaWYgeW91IHdhbnQgdG8gYWRkIHN1cHBvcnQgZm9yIFNvQyBhdWRpbyBvbiB0aGUKIAkgIFRvc2hpYmEgZTgwMCBQREEKKworY29uZmlnIFNORF9QWEEyWFhfU09DX0VNX1gyNzAKKwl0cmlzdGF0ZSAiU29DIEF1ZGlvIHN1cHBvcnQgZm9yIENvbXB1TGFiIEVNLXgyNzAiCisJZGVwZW5kcyBvbiBTTkRfUFhBMlhYX1NPQyAmJiBNQUNIX0VNX1gyNzAKKwlzZWxlY3QgU05EX1BYQTJYWF9TT0NfQUM5NworCXNlbGVjdCBTTkRfU09DX1dNOTcxMgorCWhlbHAKKwkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8gb24KKwkgIENvbXB1TGFiIEVNLXgyNzAuCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL01ha2VmaWxlIGIvc291bmQvc29jL3B4YS9NYWtlZmlsZQppbmRleCAwNGU1NjQ2Li41YmM4ZWRmIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL01ha2VmaWxlCisrKyBiL3NvdW5kL3NvYy9weGEvTWFrZWZpbGUKQEAgLTEzLDEwICsxMywxMSBAQAogc25kLXNvYy10b3NhLW9ianMgOj0gdG9zYS5vCiBzbmQtc29jLWU4MDAtb2JqcyA6PSBlODAwX3dtOTcxMi5vCiBzbmQtc29jLXNwaXR6LW9ianMgOj0gc3BpdHoubworc25kLXNvYy1lbS14MjcwLW9ianMgOj0gZW0teDI3MC5vCiAKIG9iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19DT1JHSSkgKz0gc25kLXNvYy1jb3JnaS5vCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfUE9PRExFKSArPSBzbmQtc29jLXBvb2RsZS5vCiBvYmotJChDT05GSUdfU05EX1BYQTJYWF9TT0NfVE9TQSkgKz0gc25kLXNvYy10b3NhLm8KIG9iai0kKENPTkZJR19TTkRfUFhBMlhYX1NPQ19FODAwKSArPSBzbmQtc29jLWU4MDAubwogb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX1NQSVRaKSArPSBzbmQtc29jLXNwaXR6Lm8KLQorb2JqLSQoQ09ORklHX1NORF9QWEEyWFhfU09DX0VNX1gyNzApICs9IHNuZC1zb2MtZW0teDI3MC5vCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL2NvcmdpLmMgYi9zb3VuZC9zb2MvcHhhL2NvcmdpLmMKaW5kZXggN2YzMmExMS4uYzAyOTQ0NiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9jb3JnaS5jCisrKyBiL3NvdW5kL3NvYy9weGEvY29yZ2kuYwpAQCAtMTEsMTAgKzExLDYgQEAKICAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAzMHRoIE5vdiAyMDA1ICAgSW5pdGlhbCB2ZXJzaW9uLgotICoKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC01NCw0NyArNTAsNTEgQEAKIAogc3RhdGljIHZvaWQgY29yZ2lfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBzcGsgPSAwLCBtaWMgPSAwLCBsaW5lID0gMCwgaHAgPSAwLCBocyA9IDA7Ci0KIAkvKiBzZXQgdXAgamFjayBjb25uZWN0aW9uICovCiAJc3dpdGNoIChjb3JnaV9qYWNrX2Z1bmMpIHsKIAljYXNlIENPUkdJX0hQOgotCQlocCA9IDE7CiAJCS8qIHNldCA9IHVubXV0ZSBoZWFkcGhvbmUgKi8KIAkJc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXNldF9zY29vcF9ncGlvKCZjb3JnaXNjb29wX2RldmljZS5kZXYsIENPUkdJX1NDUF9NVVRFX1IpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJYnJlYWs7CiAJY2FzZSBDT1JHSV9NSUM6Ci0JCW1pYyA9IDE7CiAJCS8qIHJlc2V0ID0gbXV0ZSBoZWFkcGhvbmUgKi8KIAkJcmVzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTVVURV9MKTsKIAkJcmVzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTVVURV9SKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgQ09SR0lfTElORToKLQkJbGluZSA9IDE7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfUik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOwogCQlicmVhazsKIAljYXNlIENPUkdJX0hFQURTRVQ6Ci0JCWhzID0gMTsKLQkJbWljID0gMTsKIAkJcmVzZXRfc2Nvb3BfZ3BpbygmY29yZ2lzY29vcF9kZXZpY2UuZGV2LCBDT1JHSV9TQ1BfTVVURV9MKTsKIAkJc2V0X3Njb29wX2dwaW8oJmNvcmdpc2Nvb3BfZGV2aWNlLmRldiwgQ09SR0lfU0NQX01VVEVfUik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTGluZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCX0KIAogCWlmIChjb3JnaV9zcGtfZnVuYyA9PSBDT1JHSV9TUEtfT04pCi0JCXNwayA9IDE7Ci0KLQkvKiBzZXQgdGhlIGVucG9pbnRzIHRvIHRoZWlyIG5ldyBjb25uZXRpb24gc3RhdGVzICovCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCBzcGspOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIG1pYyk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSmFjayIsIGxpbmUpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIGhwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgaHMpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKIAogCS8qIHNpZ25hbCBhIERBUE0gZXZlbnQgKi8KLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIH0KIAogc3RhdGljIGludCBjb3JnaV9zdGFydHVwKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQpAQCAtMTIzLDggKzEyMyw4IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCXVuc2lnbmVkIGludCBjbGsgPSAwOwogCWludCByZXQgPSAwOwogCkBAIC0xNDMsMjUgKzE0MywyNSBAQAogCX0KIAogCS8qIHNldCBjb2RlYyBEQUkgY29uZmlndXJhdGlvbiAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKIAkJU05EX1NPQ19EQUlGTVRfTkJfTkYgfCBTTkRfU09DX0RBSUZNVF9DQlNfQ0ZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjcHUgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9mbXQoY3B1X2RhaSwgU05EX1NPQ19EQUlGTVRfSTJTIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIGNvZGVjIHN5c3RlbSBjbG9jayBmb3IgREFDIGFuZCBBREMgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssIGNsaywKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzMxX1NZU0NMSywgY2xrLAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCB0aGUgSTJTIHN5c3RlbSBjbG9jayBhcyBpbnB1dCAodW51c2VkKSAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X3N5c2NsayhjcHVfZGFpLCBQWEEyWFhfSTJTX1NZU0NMSywgMCwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNwdV9kYWksIFBYQTJYWF9JMlNfU1lTQ0xLLCAwLAogCQlTTkRfU09DX0NMT0NLX0lOKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTI0Nyw3ICsyNDcsNyBAQAogfTsKIAogLyogQ29yZ2kgbWFjaGluZSBhdWRpbyBtYXAgKGNvbm5lY3Rpb25zIHRvIHRoZSBjb2RlYyBwaW5zKSAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmF1ZGlvX21hcFtdWzNdID0geworc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CiAKIAkvKiBoZWFkc2V0IEphY2sgIC0gaW4gPSBtaWNpbiwgb3V0ID0gTEhQT1VUKi8KIAl7IkhlYWRzZXQgSmFjayIsIE5VTEwsICJMSFBPVVQifSwKQEAgLTI2NSw4ICsyNjUsNiBAQAogCiAJLyogU2FtZSBhcyB0aGUgYWJvdmUgYnV0IG5vIG1pYyBiaWFzIGZvciBsaW5lIHNpZ25hbHMgKi8KIAl7Ik1JQ0lOIiwgTlVMTCwgIkxpbmUgSmFjayJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmphY2tfZnVuY3Rpb25bXSA9IHsiSGVhZHBob25lIiwgIk1pYyIsICJMaW5lIiwgIkhlYWRzZXQiLApAQCAtMjkxLDggKzI4OSw4IEBACiB7CiAJaW50IGksIGVycjsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMTElORUlOIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJMSU5FSU4iLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMTElORUlOIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUkxJTkVJTiIpOwogCiAJLyogQWRkIGNvcmdpIHNwZWNpZmljIGNvbnRyb2xzICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzMxX2NvcmdpX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0zMDMsMTUgKzMwMSwxMyBAQAogCX0KIAogCS8qIEFkZCBjb3JnaSBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzMxX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzMxX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIGNvcmdpIHNwZWNpZmljIGF1ZGlvIHBhdGggYXVkaW9fbWFwICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykKLQkJc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoY29kZWMsIGF1ZGlvX21hcFtpXVswXSwKLQkJCWF1ZGlvX21hcFtpXVsxXSwgYXVkaW9fbWFwW2ldWzJdKTsKKwlzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgYXVkaW9fbWFwLCBBUlJBWV9TSVpFKGF1ZGlvX21hcCkpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvZW0teDI3MC5jIGIvc291bmQvc29jL3B4YS9lbS14MjcwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJkY2FjMwotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kL3NvYy9weGEvZW0teDI3MC5jCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogZW0teDI3MC5jICAtLSAgU29DIGF1ZGlvIGZvciBFTS1YMjcwCisgKgorICogQ29weXJpZ2h0IDIwMDcgQ29tcHVMYWIsIEx0ZC4KKyAqCisgKiBBdXRob3I6IE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+CisgKgorICogQ29waWVkIGZyb20gdG9zYS5jOgorICogQ29weXJpZ2h0IDIwMDUgV29sZnNvbiBNaWNyb2VsZWN0cm9uaWNzIFBMQy4KKyAqIENvcHlyaWdodCAyMDA1IE9wZW5lZGhhbmQgTHRkLgorICoKKyAqIEF1dGhvcnM6IExpYW0gR2lyZHdvb2QgPGxpYW0uZ2lyZHdvb2RAd29sZnNvbm1pY3JvLmNvbT4KKyAqICAgICAgICAgIFJpY2hhcmQgUHVyZGllIDxyaWNoYXJkQG9wZW5lZGhhbmQuY29tPgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgIGl0IGFuZC9vciBtb2RpZnkgaXQKKyAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqLworCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CisjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KKworI2luY2x1ZGUgPHNvdW5kL2RyaXZlci5oPgorI2luY2x1ZGUgPHNvdW5kL2NvcmUuaD4KKyNpbmNsdWRlIDxzb3VuZC9wY20uaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MuaD4KKyNpbmNsdWRlIDxzb3VuZC9zb2MtZGFwbS5oPgorCisjaW5jbHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KKyNpbmNsdWRlIDxhc20vYXJjaC9weGEtcmVncy5oPgorI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8YXNtL2FyY2gvYXVkaW8uaD4KKworI2luY2x1ZGUgIi4uL2NvZGVjcy93bTk3MTIuaCIKKyNpbmNsdWRlICJweGEyeHgtcGNtLmgiCisjaW5jbHVkZSAicHhhMnh4LWFjOTcuaCIKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaV9saW5rIGVtX3gyNzBfZGFpW10gPSB7CisJeworCQkubmFtZSA9ICJBQzk3IiwKKwkJLnN0cmVhbV9uYW1lID0gIkFDOTcgSGlGaSIsCisJCS5jcHVfZGFpID0gJnB4YV9hYzk3X2RhaVtQWEEyWFhfREFJX0FDOTdfSElGSV0sCisJCS5jb2RlY19kYWkgPSAmd205NzEyX2RhaVtXTTk3MTJfREFJX0FDOTdfSElGSV0sCisJfSwKKwl7CisJCS5uYW1lID0gIkFDOTcgQXV4IiwKKwkJLnN0cmVhbV9uYW1lID0gIkFDOTcgQXV4IiwKKwkJLmNwdV9kYWkgPSAmcHhhX2FjOTdfZGFpW1BYQTJYWF9EQUlfQUM5N19BVVhdLAorCQkuY29kZWNfZGFpID0gJndtOTcxMl9kYWlbV005NzEyX0RBSV9BQzk3X0FVWF0sCisJfSwKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lIGVtX3gyNzAgPSB7CisJLm5hbWUgPSAiRU0tWDI3MCIsCisJLmRhaV9saW5rID0gZW1feDI3MF9kYWksCisJLm51bV9saW5rcyA9IEFSUkFZX1NJWkUoZW1feDI3MF9kYWkpLAorfTsKKworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RldmljZSBlbV94MjcwX3NuZF9kZXZkYXRhID0geworCS5tYWNoaW5lID0gJmVtX3gyNzAsCisJLnBsYXRmb3JtID0gJnB4YTJ4eF9zb2NfcGxhdGZvcm0sCisJLmNvZGVjX2RldiA9ICZzb2NfY29kZWNfZGV2X3dtOTcxMiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICplbV94MjcwX3NuZF9kZXZpY2U7CisKK3N0YXRpYyBpbnQgX19pbml0IGVtX3gyNzBfaW5pdCh2b2lkKQoreworCWludCByZXQ7CisKKwlpZiAoIW1hY2hpbmVfaXNfZW1feDI3MCgpKQorCQlyZXR1cm4gLUVOT0RFVjsKKworCWVtX3gyNzBfc25kX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic29jLWF1ZGlvIiwgLTEpOworCWlmICghZW1feDI3MF9zbmRfZGV2aWNlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBsYXRmb3JtX3NldF9kcnZkYXRhKGVtX3gyNzBfc25kX2RldmljZSwgJmVtX3gyNzBfc25kX2RldmRhdGEpOworCWVtX3gyNzBfc25kX2RldmRhdGEuZGV2ID0gJmVtX3gyNzBfc25kX2RldmljZS0+ZGV2OworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQoZW1feDI3MF9zbmRfZGV2aWNlKTsKKworCWlmIChyZXQpCisJCXBsYXRmb3JtX2RldmljZV9wdXQoZW1feDI3MF9zbmRfZGV2aWNlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBlbV94MjcwX2V4aXQodm9pZCkKK3sKKwlwbGF0Zm9ybV9kZXZpY2VfdW5yZWdpc3RlcihlbV94MjcwX3NuZF9kZXZpY2UpOworfQorCittb2R1bGVfaW5pdChlbV94MjcwX2luaXQpOworbW9kdWxlX2V4aXQoZW1feDI3MF9leGl0KTsKKworLyogTW9kdWxlIGluZm9ybWF0aW9uICovCitNT0RVTEVfQVVUSE9SKCJNaWtlIFJhcG9wb3J0Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIkFMU0EgU29DIEVNLVgyNzAiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcG9vZGxlLmMgYi9zb3VuZC9zb2MvcHhhL3Bvb2RsZS5jCmluZGV4IDdlODMwYjIuLjY1YTRlOWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvcG9vZGxlLmMKKysrIGIvc291bmQvc29jL3B4YS9wb29kbGUuYwpAQCAtNDgsOCArNDgsNiBAQAogCiBzdGF0aWMgdm9pZCBwb29kbGVfZXh0X2NvbnRyb2woc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQogewotCWludCBzcGsgPSAwOwotCiAJLyogc2V0IHVwIGphY2sgY29ubmVjdGlvbiAqLwogCWlmIChwb29kbGVfamFja19mdW5jID09IFBPT0RMRV9IUCkgewogCQkvKiBzZXQgPSB1bm11dGUgaGVhZHBob25lICovCkBAIC01NywyMyArNTUsMjMgQEAKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX0wsIDEpOwogCQlsb2NvbW9fZ3Bpb193cml0ZSgmcG9vZGxlX2xvY29tb19kZXZpY2UuZGV2LAogCQkJUE9PRExFX0xPQ09NT19HUElPX01VVEVfUiwgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDEpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkhlYWRwaG9uZSBKYWNrIik7CiAJfSBlbHNlIHsKIAkJbG9jb21vX2dwaW9fd3JpdGUoJnBvb2RsZV9sb2NvbW9fZGV2aWNlLmRldiwKIAkJCVBPT0RMRV9MT0NPTU9fR1BJT19NVVRFX0wsIDApOwogCQlsb2NvbW9fZ3Bpb193cml0ZSgmcG9vZGxlX2xvY29tb19kZXZpY2UuZGV2LAogCQkJUE9PRExFX0xPQ09NT19HUElPX01VVEVfUiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIDApOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOwogCX0KIAotCWlmIChwb29kbGVfc3BrX2Z1bmMgPT0gUE9PRExFX1NQS19PTikKLQkJc3BrID0gMTsKLQogCS8qIHNldCB0aGUgZW5wb2ludHMgdG8gdGhlaXIgbmV3IGNvbm5ldGlvbiBzdGF0ZXMgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIHNwayk7CisJaWYgKHBvb2RsZV9zcGtfZnVuYyA9PSBQT09ETEVfU1BLX09OKQorCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKKwllbHNlCisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkV4dCBTcGsiKTsKIAogCS8qIHNpZ25hbCBhIERBUE0gZXZlbnQgKi8KLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIH0KIAogc3RhdGljIGludCBwb29kbGVfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKQEAgLTEwNCw4ICsxMDIsOCBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAl1bnNpZ25lZCBpbnQgY2xrID0gMDsKIAlpbnQgcmV0ID0gMDsKIApAQCAtMTI0LDI1ICsxMjIsMjUgQEAKIAl9CiAKIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3MzFfU1lTQ0xLLCBjbGssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODczMV9TWVNDTEssIGNsaywKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIEkyUyBzeXN0ZW0gY2xvY2sgYXMgaW5wdXQgKHVudXNlZCkgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBQWEEyWFhfSTJTX1NZU0NMSywgMCwKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yMTUsOCArMjEzLDggQEAKIFNORF9TT0NfREFQTV9TUEsoIkV4dCBTcGsiLCBwb29kbGVfYW1wX2V2ZW50KSwKIH07CiAKLS8qIENvcmdpIG1hY2hpbmUgYXVkaW9fbWFwbmVjdGlvbnMgdG8gdGhlIGNvZGVjIHBpbnMgKi8KLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKKy8qIENvcmdpIG1hY2hpbmUgY29ubmVjdGlvbnMgdG8gdGhlIGNvZGVjIHBpbnMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCiAJLyogaGVhZHBob25lIGNvbm5lY3RlZCB0byBMSFBPVVQxLCBSSFBPVVQxICovCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJMSFBPVVQifSwKQEAgLTIyNSw4ICsyMjMsNiBAQAogCS8qIHNwZWFrZXIgY29ubmVjdGVkIHRvIExPVVQsIFJPVVQgKi8KIAl7IkV4dCBTcGsiLCBOVUxMLCAiUk9VVCJ9LAogCXsiRXh0IFNwayIsIE5VTEwsICJMT1VUIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqamFja19mdW5jdGlvbltdID0geyJPZmYiLCAiSGVhZHBob25lIn07CkBAIC0yNTAsOSArMjQ2LDkgQEAKIHsKIAlpbnQgaSwgZXJyOwogCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxMSU5FSU4iLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUkxJTkVJTiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNSUNJTiIsIDEpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxMSU5FSU4iKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJSTElORUlOIik7CisJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNSUNJTiIpOwogCiAJLyogQWRkIHBvb2RsZSBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODczMV9wb29kbGVfY29udHJvbHMpOyBpKyspIHsKQEAgLTI2MywxNSArMjU5LDEzIEBACiAJfQogCiAJLyogQWRkIHBvb2RsZSBzcGVjaWZpYyB3aWRnZXRzICovCi0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cyk7IGkrKykKLQkJc25kX3NvY19kYXBtX25ld19jb250cm9sKGNvZGVjLCAmd204NzMxX2RhcG1fd2lkZ2V0c1tpXSk7CisJc25kX3NvY19kYXBtX25ld19jb250cm9scyhjb2RlYywgd204NzMxX2RhcG1fd2lkZ2V0cywKKwkJCQkgIEFSUkFZX1NJWkUod204NzMxX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogU2V0IHVwIHBvb2RsZSBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1ZGlvX21hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmMgYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmMKaW5kZXggOTdlYzJkOS4uMDU5YWY4MSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5jCisrKyBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuYwpAQCAtMjgzLDcgKzI4Myw3IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgcHhhMnh4X2FjOTdfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlHQ1IgfD0gR0NSX0FDTElOS19PRkY7CiAJY2xrX2Rpc2FibGUoYWM5N19jbGspOwpAQCAtMjkxLDcgKzI5MSw3IEBACiB9CiAKIHN0YXRpYyBpbnQgcHhhMnh4X2FjOTdfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCXB4YV9ncGlvX21vZGUoR1BJTzMxX1NZTkNfQUM5N19NRCk7CiAJcHhhX2dwaW9fbW9kZShHUElPMzBfU0RBVEFfT1VUX0FDOTdfTUQpOwpAQCAtMzEwLDcgKzMxMCw4IEBACiAjZGVmaW5lIHB4YTJ4eF9hYzk3X3Jlc3VtZQlOVUxMCiAjZW5kaWYKIAotc3RhdGljIGludCBweGEyeHhfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBweGEyeHhfYWM5N19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlpbnQgcmV0OwogCkBAIC0zNTUsNyArMzU2LDggQEAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdm9pZCBweGEyeHhfYWM5N19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyB2b2lkIHB4YTJ4eF9hYzk3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCUdDUiB8PSBHQ1JfQUNMSU5LX09GRjsKIAlmcmVlX2lycShJUlFfQUM5NywgTlVMTCk7CkBAIC0zNzIsNyArMzc0LDcgQEAKIAkJCQlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCWNwdV9kYWktPmRtYV9kYXRhID0gJnB4YTJ4eF9hYzk3X3BjbV9zdGVyZW9fb3V0OwpAQCAtMzg2LDcgKzM4OCw3IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQljcHVfZGFpLT5kbWFfZGF0YSA9ICZweGEyeHhfYWM5N19wY21fYXV4X21vbm9fb3V0OwpAQCAtNDAwLDcgKzQwMiw3IEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAogCWlmIChzdWJzdHJlYW0tPnN0cmVhbSA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQogCQlyZXR1cm4gLUVOT0RFVjsKQEAgLTQxOCw3ICs0MjAsNyBAQAogICogVGhlcmUgaXMgb25seSAxIHBoeXNpY2FsIEFDOTcgaW50ZXJmYWNlIGZvciBweGEyeHgsIGJ1dCBpdAogICogaGFzIGV4dHJhIGZpZm8ncyB0aGF0IGNhbiBiZSB1c2VkIGZvciBhdXggREFDcyBhbmQgQURDcy4KICAqLwotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBweGFfYWM5N19kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBweGFfYWM5N19kYWlbXSA9IHsKIHsKIAkubmFtZSA9ICJweGEyeHgtYWM5NyIsCiAJLmlkID0gMCwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuaCBiL3NvdW5kL3NvYy9weGEvcHhhMnh4LWFjOTcuaAppbmRleCBiOGNjZmVlLi5lMzkwZGU4IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1hYzk3LmgKKysrIGIvc291bmQvc29jL3B4YS9weGEyeHgtYWM5Ny5oCkBAIC0xNCw3ICsxNCw3IEBACiAjZGVmaW5lIFBYQTJYWF9EQUlfQUM5N19BVVgJCTEKICNkZWZpbmUgUFhBMlhYX0RBSV9BQzk3X01JQwkJMgogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBweGFfYWM5N19kYWlbM107CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHB4YV9hYzk3X2RhaVszXTsKIAogLyogcGxhdGZvcm0gZGF0YSAqLwogZXh0ZXJuIHN0cnVjdCBzbmRfYWM5N19idXNfb3BzIHB4YTJ4eF9hYzk3X29wczsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5jIGIvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmMKaW5kZXggNDI1MDcxMC4uOGY5NmQ4NyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmMKKysrIGIvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmMKQEAgLTksMTUgKzksMTMgQEAKICAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAxMnRoIEF1ZyAyMDA1ICAgSW5pdGlhbCB2ZXJzaW9uLgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4KKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KICNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CiAjaW5jbHVkZSA8c291bmQvcGNtLmg+CiAjaW5jbHVkZSA8c291bmQvaW5pdHZhbC5oPgpAQCAtNDAsNiArMzgsNyBAQAogCXUzMiBmbXQ7CiB9Owogc3RhdGljIHN0cnVjdCBweGFfaTJzX3BvcnQgcHhhX2kyczsKK3N0YXRpYyBzdHJ1Y3QgY2xrICpjbGtfaTJzOwogCiBzdGF0aWMgc3RydWN0IHB4YTJ4eF9wY21fZG1hX3BhcmFtcyBweGEyeHhfaTJzX3BjbV9zdGVyZW9fb3V0ID0gewogCS5uYW1lCQkJPSAiSTJTIFBDTSBTdGVyZW8gb3V0IiwKQEAgLTgwLDcgKzc5LDExIEBACiBzdGF0aWMgaW50IHB4YTJ4eF9pMnNfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCisJY2xrX2kycyA9IGNsa19nZXQoTlVMTCwgIkkyU0NMSyIpOworCWlmIChJU19FUlIoY2xrX2kycykpCisJCXJldHVybiBQVFJfRVJSKGNsa19pMnMpOwogCiAJaWYgKCFjcHVfZGFpLT5hY3RpdmUpIHsKIAkJU0FDUjAgfD0gU0FDUjBfUlNUOwpAQCAtMTAxLDcgKzEwNCw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgcHhhMnh4X2kyc19zZXRfZGFpX2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBweGEyeHhfaTJzX3NldF9kYWlfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAkvKiBpbnRlcmZhY2UgZm9ybWF0ICovCkBAIC0xMjcsNyArMTMwLDcgQEAKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBweGEyeHhfaTJzX3NldF9kYWlfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IHB4YTJ4eF9pMnNfc2V0X2RhaV9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAlpZiAoY2xrX2lkICE9IFBYQTJYWF9JMlNfU1lTQ0xLKQpAQCAtMTQzLDEzICsxNDYsMTMgQEAKIAkJCQlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCiAJcHhhX2dwaW9fbW9kZShncGlvX2J1c1tweGFfaTJzLm1hc3Rlcl0ucngpOwogCXB4YV9ncGlvX21vZGUoZ3Bpb19idXNbcHhhX2kycy5tYXN0ZXJdLnR4KTsKIAlweGFfZ3Bpb19tb2RlKGdwaW9fYnVzW3B4YV9pMnMubWFzdGVyXS5mcm0pOwogCXB4YV9ncGlvX21vZGUoZ3Bpb19idXNbcHhhX2kycy5tYXN0ZXJdLmNsayk7Ci0JcHhhX3NldF9ja2VuKENLRU5fSTJTLCAxKTsKKwljbGtfZW5hYmxlKGNsa19pMnMpOwogCXB4YV9pMnNfd2FpdCgpOwogCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCkBAIC0yMzQsMTMgKzIzNywxNSBAQAogCWlmIChTQUNSMSAmIChTQUNSMV9EUkVDIHwgU0FDUjFfRFJQTCkpIHsKIAkJU0FDUjAgJj0gflNBQ1IwX0VOQjsKIAkJcHhhX2kyc193YWl0KCk7Ci0JCXB4YV9zZXRfY2tlbihDS0VOX0kyUywgMCk7CisJCWNsa19kaXNhYmxlKGNsa19pMnMpOwogCX0KKworCWNsa19wdXQoY2xrX2kycyk7CiB9CiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgcHhhMnh4X2kyc19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldiwKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJc3RydWN0IHNuZF9zb2NfZGFpICpkYWkpCiB7CiAJaWYgKCFkYWktPmFjdGl2ZSkKIAkJcmV0dXJuIDA7CkBAIC0yNTgsNyArMjYzLDcgQEAKIH0KIAogc3RhdGljIGludCBweGEyeHhfaTJzX3Jlc3VtZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSkKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlpZiAoIWRhaS0+YWN0aXZlKQogCQlyZXR1cm4gMDsKQEAgLTI4Myw3ICsyODgsNyBAQAogCQlTTkRSVl9QQ01fUkFURV8xNjAwMCB8IFNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfNDQxMDAgfCBcCiAJCVNORFJWX1BDTV9SQVRFXzQ4MDAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgcHhhX2kyc19kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgcHhhX2kyc19kYWkgPSB7CiAJLm5hbWUgPSAicHhhMnh4LWkycyIsCiAJLmlkID0gMCwKIAkudHlwZSA9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvcHhhMnh4LWkycy5oIGIvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmgKaW5kZXggNDQzNWJkOS4uZTJkZWY0NCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmgKKysrIGIvc291bmQvc29jL3B4YS9weGEyeHgtaTJzLmgKQEAgLTE1LDYgKzE1LDYgQEAKIC8qIEkyUyBjbG9jayAqLwogI2RlZmluZSBQWEEyWFhfSTJTX1NZU0NMSwkJMAogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBweGFfaTJzX2RhaTsKK2V4dGVybiBzdHJ1Y3Qgc25kX3NvY19kYWkgcHhhX2kyc19kYWk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3B4YS9weGEyeHgtcGNtLmMgYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1wY20uYwppbmRleCAwMWFkN2JmLi4yZGYwM2VlIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1wY20uYworKysgYi9zb3VuZC9zb2MvcHhhL3B4YTJ4eC1wY20uYwpAQCAtMzMwLDcgKzMzMCw3IEBACiAKIHN0YXRpYyB1NjQgcHhhMnh4X3BjbV9kbWFtYXNrID0gRE1BXzMyQklUX01BU0s7CiAKLWludCBweGEyeHhfcGNtX25ldyhzdHJ1Y3Qgc25kX2NhcmQgKmNhcmQsIHN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLAoraW50IHB4YTJ4eF9wY21fbmV3KHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwgc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCiAJc3RydWN0IHNuZF9wY20gKnBjbSkKIHsKIAlpbnQgcmV0ID0gMDsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9weGEvc3BpdHouYyBiL3NvdW5kL3NvYy9weGEvc3BpdHouYwppbmRleCBkOGI4MzcyLi42NDM4NTc5IDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvcHhhL3NwaXR6LmMKKysrIGIvc291bmQvc29jL3B4YS9zcGl0ei5jCkBAIC0xMiw5ICsxMiw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMzB0aCBOb3YgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNTQsNjAgKzUxLDYwIEBACiBzdGF0aWMgdm9pZCBzcGl0el9leHRfY29udHJvbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7CiAJaWYgKHNwaXR6X3Nwa19mdW5jID09IFNQSVRaX1NQS19PTikKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkV4dCBTcGsiLCAxKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAJZWxzZQotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiRXh0IFNwayIsIDApOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJFeHQgU3BrIik7CiAKIAkvKiBzZXQgdXAgamFjayBjb25uZWN0aW9uICovCiAJc3dpdGNoIChzcGl0el9qYWNrX2Z1bmMpIHsKIAljYXNlIFNQSVRaX0hQOgogCQkvKiBlbmFibGUgYW5kIHVubXV0ZSBocCBqYWNrLCBkaXNhYmxlIG1pYyBiaWFzICovCi0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOwogCQlzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9MKTsKIAkJc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfUik7CiAJCWJyZWFrOwogCWNhc2UgU1BJVFpfTUlDOgogCQkvKiBlbmFibGUgbWljIGphY2sgYW5kIGJpYXMsIG11dGUgaHAgKi8KLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfTCk7CiAJCXJlc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfUik7CiAJCWJyZWFrOwogCWNhc2UgU1BJVFpfTElORToKIAkJLyogZW5hYmxlIGxpbmUgamFjaywgZGlzYWJsZSBtaWMgYmlhcyBhbmQgbXV0ZSBocCAqLwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHBob25lIEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgSmFjayIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTWljIEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkxpbmUgSmFjayIsIDEpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9MKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9SKTsKIAkJYnJlYWs7CiAJY2FzZSBTUElUWl9IRUFEU0VUOgogCQkvKiBlbmFibGUgYW5kIHVubXV0ZSBoZWFkc2V0IGphY2sgZW5hYmxlIG1pYyBiaWFzLCBtdXRlIEwgaHAgKi8KLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgSmFjayIsIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTGluZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAxKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMaW5lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJcmVzZXRfc2Nvb3BfZ3Bpbygmc3BpdHpzY29vcF9kZXZpY2UuZGV2LCBTUElUWl9TQ1BfTVVURV9MKTsKIAkJc2V0X3Njb29wX2dwaW8oJnNwaXR6c2Nvb3BfZGV2aWNlLmRldiwgU1BJVFpfU0NQX01VVEVfUik7CiAJCWJyZWFrOwogCWNhc2UgU1BJVFpfSFBfT0ZGOgogCiAJCS8qIGphY2sgcmVtb3ZlZCwgZXZlcnl0aGluZyBvZmYgKi8KLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRwaG9uZSBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IEphY2siLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1pYyBKYWNrIiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMaW5lIEphY2siLCAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyBKYWNrIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxpbmUgSmFjayIpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX0wpOwogCQlyZXNldF9zY29vcF9ncGlvKCZzcGl0enNjb29wX2RldmljZS5kZXYsIFNQSVRaX1NDUF9NVVRFX1IpOwogCQlicmVhazsKIAl9Ci0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiB9CiAKIHN0YXRpYyBpbnQgc3BpdHpfc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKQEAgLTEyNCw4ICsxMjEsOCBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKIAl1bnNpZ25lZCBpbnQgY2xrID0gMDsKIAlpbnQgcmV0ID0gMDsKIApAQCAtMTQ0LDI1ICsxNDEsMjUgQEAKIAl9CiAKIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CiAJCVNORF9TT0NfREFJRk1UX05CX05GIHwgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUyk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9JMlMgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3NTBfU1lTQ0xLLCBjbGssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2Nsayhjb2RlY19kYWksIFdNODc1MF9TWVNDTEssIGNsaywKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgdGhlIEkyUyBzeXN0ZW0gY2xvY2sgYXMgaW5wdXQgKHVudXNlZCkgKi8KLQlyZXQgPSBjcHVfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY3B1X2RhaSwgUFhBMlhYX0kyU19TWVNDTEssIDAsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3N5c2NsayhjcHVfZGFpLCBQWEEyWFhfSTJTX1NZU0NMSywgMCwKIAkJU05EX1NPQ19DTE9DS19JTik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CkBAIC0yNTAsNyArMjQ3LDcgQEAKIH07CiAKIC8qIFNwaXR6IG1hY2hpbmUgYXVkaW9fbWFwICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBhdWRpb19tYXBbXSA9IHsKIAogCS8qIGhlYWRwaG9uZSBjb25uZWN0ZWQgdG8gTE9VVDEsIFJPVVQxICovCiAJeyJIZWFkcGhvbmUgSmFjayIsIE5VTEwsICJMT1VUMSJ9LApAQCAtMjY5LDggKzI2Niw2IEBACiAKIAkvKiBsaW5lIGlzIGNvbm5lY3RlZCB0byBpbnB1dCAxIC0gbm8gYmlhcyAqLwogCXsiTElOUFVUMSIsIE5VTEwsICJMaW5lIEphY2sifSwKLQotCXtOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIHN0YXRpYyBjb25zdCBjaGFyICpqYWNrX2Z1bmN0aW9uW10gPSB7IkhlYWRwaG9uZSIsICJNaWMiLCAiTGluZSIsICJIZWFkc2V0IiwKQEAgLTI5NiwxMyArMjkxLDEzIEBACiAJaW50IGksIGVycjsKIAogCS8qIE5DIGNvZGVjIHBpbnMgKi8KLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiUklOUFVUMSIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMSU5QVVQyIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlJJTlBVVDIiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTElOUFVUMyIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJSSU5QVVQzIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk9VVDMiLCAwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiTU9OTyIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIlJJTlBVVDEiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJMSU5QVVQyIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUklOUFVUMiIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxJTlBVVDMiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJSSU5QVVQzIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUMyIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1PTk8iKTsKIAogCS8qIEFkZCBzcGl0eiBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODc1MF9zcGl0el9jb250cm9scyk7IGkrKykgewpAQCAtMzEzLDE1ICszMDgsMTMgQEAKIAl9CiAKIAkvKiBBZGQgc3BpdHogc3BlY2lmaWMgd2lkZ2V0cyAqLwotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODc1MF9kYXBtX3dpZGdldHMpOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbChjb2RlYywgJndtODc1MF9kYXBtX3dpZGdldHNbaV0pOworCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHdtODc1MF9kYXBtX3dpZGdldHMsCisJCQkJICBBUlJBWV9TSVpFKHdtODc1MF9kYXBtX3dpZGdldHMpKTsKIAotCS8qIFNldCB1cCBzcGl0eiBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1ZGlvX21hcCAqLwotCWZvciAoaSA9IDA7IGF1ZGlvX21hcFtpXVswXSAhPSBOVUxMOyBpKyspCi0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7CisJLyogU2V0IHVwIHNwaXR6IHNwZWNpZmljIGF1ZGlvIHBhdGhzICovCisJc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoY29kZWMsIGF1ZGlvX21hcCwgQVJSQVlfU0laRShhdWRpb19tYXApKTsKIAotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvcHhhL3Rvc2EuYyBiL3NvdW5kL3NvYy9weGEvdG9zYS5jCmluZGV4IDczNDZkN2UuLmI2ZWRiNjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9weGEvdG9zYS5jCisrKyBiL3NvdW5kL3NvYy9weGEvdG9zYS5jCkBAIC0xMiw5ICsxMiw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMzB0aCBOb3YgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqCiAgKiBHUElPJ3MKICAqICAxIC0gSmFjayBJbnNlcnRpb24KICAqICA1IC0gSG9va3N3aXRjaCAoaGVhZHNldCBhbnN3ZXIvaGFuZyB1cCBzd2l0Y2gpCkBAIC01NSwyOSArNTIsMzEgQEAKIAogc3RhdGljIHZvaWQgdG9zYV9leHRfY29udHJvbChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JaW50IHNwayA9IDAsIG1pY19pbnQgPSAwLCBocCA9IDAsIGhzID0gMDsKLQogCS8qIHNldCB1cCBqYWNrIGNvbm5lY3Rpb24gKi8KIAlzd2l0Y2ggKHRvc2FfamFja19mdW5jKSB7CiAJY2FzZSBUT1NBX0hQOgotCQlocCA9IDE7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIk1pYyAoSW50ZXJuYWwpIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBKYWNrIik7CiAJCWJyZWFrOwogCWNhc2UgVE9TQV9NSUNfSU5UOgotCQltaWNfaW50ID0gMTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJNaWMgKEludGVybmFsKSIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkcGhvbmUgSmFjayIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJYnJlYWs7CiAJY2FzZSBUT1NBX0hFQURTRVQ6Ci0JCWhzID0gMTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTWljIChJbnRlcm5hbCkiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHBob25lIEphY2siKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IEphY2siKTsKIAkJYnJlYWs7CiAJfQogCiAJaWYgKHRvc2Ffc3BrX2Z1bmMgPT0gVE9TQV9TUEtfT04pCi0JCXNwayA9IDE7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiU3BlYWtlciIpOworCWVsc2UKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiU3BlYWtlciIpOwogCi0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIlNwZWFrZXIiLCBzcGspOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJNaWMgKEludGVybmFsKSIsIG1pY19pbnQpOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkcGhvbmUgSmFjayIsIGhwKTsKLQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBKYWNrIiwgaHMpOwotCXNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyhjb2RlYyk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOwogfQogCiBzdGF0aWMgaW50IHRvc2Ffc3RhcnR1cChzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKQEAgLTE1NCw3ICsxNTMsNyBAQAogfTsKIAogLyogdG9zYSBhdWRpbyBtYXAgKi8KLXN0YXRpYyBjb25zdCBjaGFyICphdWRpb19tYXBbXVszXSA9IHsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIGF1ZGlvX21hcFtdID0gewogCiAJLyogaGVhZHBob25lIGNvbm5lY3RlZCB0byBIUE9VVEwsIEhQT1VUUiAqLwogCXsiSGVhZHBob25lIEphY2siLCBOVUxMLCAiSFBPVVRMIn0sCkBAIC0xNzMsOCArMTcyLDYgQEAKIAl7IkhlYWRzZXQgSmFjayIsIE5VTEwsICJIUE9VVFIifSwKIAl7IkxJTkVJTlIiLCBOVUxMLCAiTWljIEJpYXMifSwKIAl7Ik1pYyBCaWFzIiwgTlVMTCwgIkhlYWRzZXQgSmFjayJ9LAotCi0Je05VTEwsIE5VTEwsIE5VTEx9LAogfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmphY2tfZnVuY3Rpb25bXSA9IHsiSGVhZHBob25lIiwgIk1pYyIsICJMaW5lIiwgIkhlYWRzZXQiLApAQCAtMTk2LDggKzE5Myw4IEBACiB7CiAJaW50IGksIGVycjsKIAotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJPVVQzIiwgMCk7Ci0Jc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIk1PTk9PVVQiLCAwKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJPVVQzIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTU9OT09VVCIpOwogCiAJLyogYWRkIHRvc2Egc3BlY2lmaWMgY29udHJvbHMgKi8KIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0b3NhX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC0yMDgsMTcgKzIwNSwxMyBAQAogCX0KIAogCS8qIGFkZCB0b3NhIHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh0b3NhX2RhcG1fd2lkZ2V0cyk7IGkrKykgewotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ0b3NhX2RhcG1fd2lkZ2V0c1tpXSk7Ci0JfQorCXNuZF9zb2NfZGFwbV9uZXdfY29udHJvbHMoY29kZWMsIHRvc2FfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh0b3NhX2RhcG1fd2lkZ2V0cykpOwogCiAJLyogc2V0IHVwIHRvc2Egc3BlY2lmaWMgYXVkaW8gcGF0aCBhdWRpb19tYXAgKi8KLQlmb3IgKGkgPSAwOyBhdWRpb19tYXBbaV1bMF0gIT0gTlVMTDsgaSsrKSB7Ci0JCXNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KGNvZGVjLCBhdWRpb19tYXBbaV1bMF0sCi0JCQlhdWRpb19tYXBbaV1bMV0sIGF1ZGlvX21hcFtpXVsyXSk7Ci0JfQorCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFSUkFZX1NJWkUoYXVkaW9fbWFwKSk7CiAKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvS2NvbmZpZyBiL3NvdW5kL3NvYy9zM2MyNHh4L0tjb25maWcKaW5kZXggMWY2ZGJmYy4uYjlmMjM1MyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvS2NvbmZpZworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9LY29uZmlnCkBAIC0xLDcgKzEsNiBAQAogY29uZmlnIFNORF9TM0MyNFhYX1NPQwogCXRyaXN0YXRlICJTb0MgQXVkaW8gZm9yIHRoZSBTYW1zdW5nIFMzQzI0WFggY2hpcHMiCi0JZGVwZW5kcyBvbiBBUkNIX1MzQzI0MTAgJiYgU05EX1NPQwotCXNlbGVjdCBTTkRfUENNCisJZGVwZW5kcyBvbiBBUkNIX1MzQzI0MTAKIAloZWxwCiAJICBTYXkgWSBvciBNIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBjb2RlY3MgYXR0YWNoZWQgdG8KIAkgIHRoZSBTM0MyNFhYIEFDOTcsIEkyUyBvciBTU1AgaW50ZXJmYWNlLiBZb3Ugd2lsbCBhbHNvIG5lZWQKQEAgLTE2LDcgKzE1LDYgQEAKIGNvbmZpZyBTTkRfUzNDMjQ0M19TT0NfQUM5NwogCXRyaXN0YXRlCiAJc2VsZWN0IEFDOTdfQlVTCi0Jc2VsZWN0IFNORF9BQzk3X0NPREVDCiAJc2VsZWN0IFNORF9TT0NfQUM5N19CVVMKIAkKIGNvbmZpZyBTTkRfUzNDMjRYWF9TT0NfTkVPMTk3M19XTTg3NTMKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L25lbzE5NzNfd204NzUzLmMgYi9zb3VuZC9zb2MvczNjMjR4eC9uZW8xOTczX3dtODc1My5jCmluZGV4IDBlOWQxYzUuLjRkN2E5YWEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L25lbzE5NzNfd204NzUzLmMKKysrIGIvc291bmQvc29jL3MzYzI0eHgvbmVvMTk3M193bTg3NTMuYwpAQCAtMTAsMTAgKzEwLDYgQEAKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogICoKLSAqICBSZXZpc2lvbiBoaXN0b3J5Ci0gKiAgICAyMHRoIEphbiAyMDA3ICAgSW5pdGlhbCB2ZXJzaW9uLgotICogICAgMDV0aCBGZWIgMjAwNyAgIFJlbmFtZSBhbGwgdG8gTmVvMTk3MwotICoKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CkBAIC0yNiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8c291bmQvcGNtLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLmg+CiAjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKyNpbmNsdWRlIDxzb3VuZC90bHYuaD4KIAogI2luY2x1ZGUgPGFzbS9tYWNoLXR5cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2hhcmR3YXJlL3Njb29wLmg+CkBAIC00Myw2ICs0MCwxNCBAQAogI2luY2x1ZGUgInMzYzI0eHgtcGNtLmgiCiAjaW5jbHVkZSAiczNjMjR4eC1pMnMuaCIKIAorLyogRGVidWdnaW5nIHN0dWZmICovCisjZGVmaW5lIFMzQzI0WFhfU09DX05FTzE5NzNfV004NzUzX0RFQlVHIDAKKyNpZiBTM0MyNFhYX1NPQ19ORU8xOTczX1dNODc1M19ERUJVRworI2RlZmluZSBEQkcoeC4uLikgcHJpbnRrKEtFUk5fREVCVUcgInMzYzI0eHgtc29jLW5lbzE5NzMtd204NzUzOiAiIHgpCisjZWxzZQorI2RlZmluZSBEQkcoeC4uLikKKyNlbmRpZgorCiAvKiBkZWZpbmUgdGhlIHNjZW5hcmlvcyAqLwogI2RlZmluZSBORU9fQVVESU9fT0ZGCQkJMAogI2RlZmluZSBORU9fR1NNX0NBTExfQVVESU9fSEFORFNFVAkxCkBAIC02MSwxMiArNjYsMTQgQEAKIAlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBydGQtPmRhaS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAJdW5zaWduZWQgaW50IHBsbF9vdXQgPSAwLCBiY2xrID0gMDsKIAlpbnQgcmV0ID0gMDsKIAl1bnNpZ25lZCBsb25nIGlpc19jbGtyYXRlOwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpaXNfY2xrcmF0ZSA9IHMzYzI0eHhfaTJzX2dldF9jbG9ja3JhdGUoKTsKIAogCXN3aXRjaCAocGFyYW1zX3JhdGUocGFyYW1zKSkgewpAQCAtMTAxLDQ0ICsxMDgsNDQgQEAKIAl9CiAKIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksCiAJCVNORF9TT0NfREFJRk1UX0kyUyB8IFNORF9TT0NfREFJRk1UX05CX05GIHwKIAkJU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfZm10KGNwdV9kYWksCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2ZtdChjcHVfZGFpLAogCQlTTkRfU09DX0RBSUZNVF9JMlMgfCBTTkRfU09DX0RBSUZNVF9OQl9ORiB8CiAJCVNORF9TT0NfREFJRk1UX0NCTV9DRk0pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3NTNfTUNMSywgcGxsX291dCwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX01DTEssIHBsbF9vdXQsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IE1DTEsgZGl2aXNpb24gZm9yIHNhbXBsZSByYXRlICovCi0JcmV0ID0gY3B1X2RhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KGNwdV9kYWksIFMzQzI0WFhfRElWX01DTEssCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLCBTM0MyNFhYX0RJVl9NQ0xLLAogCQlTM0MyNDEwX0lJU01PRF8zMkZTKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKIAogCS8qIHNldCBjb2RlYyBCQ0xLIGRpdmlzaW9uIGZvciBzYW1wbGUgcmF0ZSAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfY2xrZGl2KGNvZGVjX2RhaSwgV004NzUzX0JDTEtESVYsIGJjbGspOworCXJldCA9IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoY29kZWNfZGFpLCBXTTg3NTNfQkNMS0RJViwgYmNsayk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBzZXQgcHJlc2NhbGVyIGRpdmlzaW9uIGZvciBzYW1wbGUgcmF0ZSAqLwotCXJldCA9IGNwdV9kYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihjcHVfZGFpLCBTM0MyNFhYX0RJVl9QUkVTQ0FMRVIsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2RpdihjcHVfZGFpLCBTM0MyNFhYX0RJVl9QUkVTQ0FMRVIsCiAJCVMzQzI0WFhfUFJFU0NBTEUoNCwgNCkpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogY29kZWMgUExMIGlucHV0IGlzIFBDTEsvNCAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfcGxsKGNvZGVjX2RhaSwgV004NzUzX1BMTDEsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwxLAogCQlpaXNfY2xrcmF0ZSAvIDQsIHBsbF9vdXQpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpAQCAtMTQ5LDEwICsxNTYsMTIgQEAKIHN0YXRpYyBpbnQgbmVvMTk3M19oaWZpX2h3X2ZyZWUoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CisKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIAogCS8qIGRpc2FibGUgdGhlIFBMTCAqLwotCXJldHVybiBjb2RlY19kYWktPmRhaV9vcHMuc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwxLCAwLCAwKTsKKwlyZXR1cm4gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwxLCAwLCAwKTsKIH0KIAogLyoKQEAgLTE2NywxMSArMTc2LDEzIEBACiAJc3RydWN0IHNuZF9wY21faHdfcGFyYW1zICpwYXJhbXMpCiB7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZCA9IHN1YnN0cmVhbS0+cHJpdmF0ZV9kYXRhOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IHJ0ZC0+ZGFpLT5jb2RlY19kYWk7CiAJdW5zaWduZWQgaW50IHBjbWRpdiA9IDA7CiAJaW50IHJldCA9IDA7CiAJdW5zaWduZWQgbG9uZyBpaXNfY2xrcmF0ZTsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWlzX2Nsa3JhdGUgPSBzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKCk7CiAKIAlpZiAocGFyYW1zX3JhdGUocGFyYW1zKSAhPSA4MDAwKQpAQCAtMTgzLDI0ICsxOTQsMjQgQEAKIAogCS8qIHRvZG86IGdnIGNoZWNrIG1vZGUgKERTUF9CKSBhZ2FpbnN0IENTUiBkYXRhc2hlZXQgKi8KIAkvKiBzZXQgY29kZWMgREFJIGNvbmZpZ3VyYXRpb24gKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0RTUF9CIHwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfZm10KGNvZGVjX2RhaSwgU05EX1NPQ19EQUlGTVRfRFNQX0IgfAogCQlTTkRfU09DX0RBSUZNVF9OQl9ORiB8IFNORF9TT0NfREFJRk1UX0NCU19DRlMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgZm9yIERBQyBhbmQgQURDICovCi0JcmV0ID0gY29kZWNfZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoY29kZWNfZGFpLCBXTTg3NTNfUENNQ0xLLCAxMjI4ODAwMCwKKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xrKGNvZGVjX2RhaSwgV004NzUzX1BDTUNMSywgMTIyODgwMDAsCiAJCVNORF9TT0NfQ0xPQ0tfSU4pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJLyogc2V0IGNvZGVjIFBDTSBkaXZpc2lvbiBmb3Igc2FtcGxlIHJhdGUgKi8KLQlyZXQgPSBjb2RlY19kYWktPmRhaV9vcHMuc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODc1M19QQ01ESVYsIHBjbWRpdik7CisJcmV0ID0gc25kX3NvY19kYWlfc2V0X2Nsa2Rpdihjb2RlY19kYWksIFdNODc1M19QQ01ESVYsIHBjbWRpdik7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiByZXQ7CiAKIAkvKiBjb25maWd1ZSBhbmQgZW5hYmxlIFBMTCBmb3IgMTIuMjg4TUh6IG91dHB1dCAqLwotCXJldCA9IGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfcGxsKGNvZGVjX2RhaSwgV004NzUzX1BMTDIsCisJcmV0ID0gc25kX3NvY19kYWlfc2V0X3BsbChjb2RlY19kYWksIFdNODc1M19QTEwyLAogCQlpaXNfY2xrcmF0ZSAvIDQsIDEyMjg4MDAwKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsKQEAgLTIxMSwxMCArMjIyLDEyIEBACiBzdGF0aWMgaW50IG5lbzE5NzNfdm9pY2VfaHdfZnJlZShzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gcnRkLT5kYWktPmNvZGVjX2RhaTsKKworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOwogCiAJLyogZGlzYWJsZSB0aGUgUExMICovCi0JcmV0dXJuIGNvZGVjX2RhaS0+ZGFpX29wcy5zZXRfcGxsKGNvZGVjX2RhaSwgV004NzUzX1BMTDIsIDAsIDApOworCXJldHVybiBzbmRfc29jX2RhaV9zZXRfcGxsKGNvZGVjX2RhaSwgV004NzUzX1BMTDIsIDAsIDApOwogfQogCiBzdGF0aWMgc3RydWN0IHNuZF9zb2Nfb3BzIG5lbzE5NzNfdm9pY2Vfb3BzID0gewpAQCAtMjMzLDc5ICsyNDYsODEgQEAKIAogc3RhdGljIGludCBzZXRfc2NlbmFyaW9fZW5kcG9pbnRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IHNjZW5hcmlvKQogeworCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJc3dpdGNoIChuZW8xOTczX3NjZW5hcmlvKSB7CiAJY2FzZSBORU9fQVVESU9fT0ZGOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19HU01fQ0FMTF9BVURJT19IQU5EU0VUOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAxKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBJbiIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJIZWFkc2V0IE1pYyIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0dTTV9DQUxMX0FVRElPX0hFQURTRVQ6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDApOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIE91dCIpOworCQlzbmRfc29jX2RhcG1fZW5hYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fR1NNX0NBTExfQVVESU9fQkxVRVRPT1RIOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDEpOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQXVkaW8gT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fU1RFUkVPX1RPX1NQRUFLRVJTOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX1NURVJFT19UT19IRUFEUEhPTkVTOgotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0IiwgICAgMSk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBPdXQiLCAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIEluIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiSGVhZHNldCBNaWMiLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJDYWxsIE1pYyIsICAgICAwKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWNhc2UgTkVPX0NBUFRVUkVfSEFORFNFVDoKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCIsICAgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgT3V0IiwgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJHU00gTGluZSBJbiIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkhlYWRzZXQgTWljIiwgIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQ2FsbCBNaWMiLCAgICAgMSk7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkF1ZGlvIE91dCIpOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJHU00gTGluZSBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgSW4iKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJDYWxsIE1pYyIpOwogCQlicmVhazsKIAljYXNlIE5FT19DQVBUVVJFX0hFQURTRVQ6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAxKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDApOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9lbmFibGVfcGluKGNvZGVjLCAiSGVhZHNldCBNaWMiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiQ2FsbCBNaWMiKTsKIAkJYnJlYWs7CiAJY2FzZSBORU9fQ0FQVFVSRV9CTFVFVE9PVEg6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDApOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJCWJyZWFrOwogCWRlZmF1bHQ6Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJBdWRpbyBPdXQiLCAgICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkdTTSBMaW5lIE91dCIsIDApOwotCQlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiR1NNIExpbmUgSW4iLCAgMCk7Ci0JCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJIZWFkc2V0IE1pYyIsICAwKTsKLQkJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkNhbGwgTWljIiwgICAgIDApOworCQlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJBdWRpbyBPdXQiKTsKKwkJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiR1NNIExpbmUgT3V0Iik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkdTTSBMaW5lIEluIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkhlYWRzZXQgTWljIik7CisJCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkNhbGwgTWljIik7CiAJfQogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTMxNSw2ICszMzAsOCBAQAogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNuZF9rY29udHJvbF9jaGlwKGtjb250cm9sKTsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWYgKG5lbzE5NzNfc2NlbmFyaW8gPT0gdWNvbnRyb2wtPnZhbHVlLmludGVnZXIudmFsdWVbMF0pCiAJCXJldHVybiAwOwogCkBAIC0zMjcsNiArMzQ0LDggQEAKIAogc3RhdGljIHZvaWQgbG00ODU3X3dyaXRlX3JlZ3Modm9pZCkKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmIChpMmNfbWFzdGVyX3NlbmQoaTJjLCBsbTQ4NTdfcmVncywgNCkgIT0gNCkKIAkJcHJpbnRrKEtFUk5fRVJSICJsbTQ4NTc6IGkyYyB3cml0ZSBmYWlsZWRcbiIpOwogfQpAQCAtMzM4LDYgKzM1Nyw4IEBACiAJaW50IHNoaWZ0ID0gKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDgpICYgMHgwRjsKIAlpbnQgbWFzayA9IChrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSA+PiAxNikgJiAweEZGOwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSA9IChsbTQ4NTdfcmVnc1tyZWddID4+IHNoaWZ0KSAmIG1hc2s7CiAJcmV0dXJuIDA7CiB9CkBAIC0zNjQsNiArMzg1LDggQEAKIHsKIAl1OCB2YWx1ZSA9IGxtNDg1N19yZWdzW0xNNDg1N19DVFJMXSAmIDB4MEY7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWlmICh2YWx1ZSkKIAkJdmFsdWUgLT0gNTsKIApAQCAtMzc2LDYgKzM5OSw4IEBACiB7CiAJdTggdmFsdWUgPSB1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXTsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJaWYgKHZhbHVlKQogCQl2YWx1ZSArPSA1OwogCkBAIC0zOTcsOCArNDIyLDcgQEAKIH07CiAKIAotLyogZXhhbXBsZSBtYWNoaW5lIGF1ZGlvX21hcG5lY3Rpb25zICovCi1zdGF0aWMgY29uc3QgY2hhciAqYXVkaW9fbWFwW11bM10gPSB7CitzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV9yb3V0ZSBkYXBtX3JvdXRlc1tdID0gewogCiAJLyogQ29ubmVjdGlvbnMgdG8gdGhlIGxtNDg1NyBhbXAgKi8KIAl7IkF1ZGlvIE91dCIsIE5VTEwsICJMT1VUMSJ9LApAQCAtNDIxLDggKzQ0NSw2IEBACiAKIAkvKiBDb25uZWN0IHRoZSBBTEMgcGlucyAqLwogCXsiQUNJTiIsIE5VTEwsICJBQ09QIn0sCi0KLQl7TlVMTCwgTlVMTCwgTlVMTH0sCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhciAqbG00ODU3X21vZGVbXSA9IHsKQEAgLTQ1MywxMyArNDc1LDE2IEBACiAJU09DX0VOVU1fU0lOR0xFX0VYVChBUlJBWV9TSVpFKG5lb19zY2VuYXJpb3MpLCBuZW9fc2NlbmFyaW9zKSwKIH07CiAKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShzdGVyZW9fdGx2LCAtNDA1MCwgMTUwLCAwKTsKK3N0YXRpYyBjb25zdCBERUNMQVJFX1RMVl9EQl9TQ0FMRShtb25vX3RsdiwgLTM0NTAsIDE1MCwgMCk7CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyB3bTg3NTNfbmVvMTk3M19jb250cm9sc1tdID0gewotCVNPQ19TSU5HTEVfRVhUKCJBbXAgTGVmdCBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTFZPTCwgMCwgMzEsIDAsCi0JCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZyksCi0JU09DX1NJTkdMRV9FWFQoIkFtcCBSaWdodCBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfUlZPTCwgMCwgMzEsIDAsCi0JCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZyksCi0JU09DX1NJTkdMRV9FWFQoIkFtcCBNb25vIFBsYXliYWNrIFZvbHVtZSIsIExNNDg1N19NVk9MLCAwLCAzMSwgMCwKLQkJbG00ODU3X2dldF9yZWcsIGxtNDg1N19zZXRfcmVnKSwKKwlTT0NfU0lOR0xFX0VYVF9UTFYoIkFtcCBMZWZ0IFBsYXliYWNrIFZvbHVtZSIsIExNNDg1N19MVk9MLCAwLCAzMSwgMCwKKwkJbG00ODU3X2dldF9yZWcsIGxtNDg1N19zZXRfcmVnLCBzdGVyZW9fdGx2KSwKKwlTT0NfU0lOR0xFX0VYVF9UTFYoIkFtcCBSaWdodCBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfUlZPTCwgMCwgMzEsIDAsCisJCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZywgc3RlcmVvX3RsdiksCisJU09DX1NJTkdMRV9FWFRfVExWKCJBbXAgTW9ubyBQbGF5YmFjayBWb2x1bWUiLCBMTTQ4NTdfTVZPTCwgMCwgMzEsIDAsCisJCWxtNDg1N19nZXRfcmVnLCBsbTQ4NTdfc2V0X3JlZywgbW9ub190bHYpLAogCVNPQ19FTlVNX0VYVCgiQW1wIE1vZGUiLCBsbTQ4NTdfbW9kZV9lbnVtWzBdLAogCQlsbTQ4NTdfZ2V0X21vZGUsIGxtNDg1N19zZXRfbW9kZSksCiAJU09DX0VOVU1fRVhUKCJOZW8gTW9kZSIsIG5lb19zY2VuYXJpb19lbnVtWzBdLApAQCAtNDgzLDIxICs1MDgsMjMgQEAKIHsKIAlpbnQgaSwgZXJyOwogCisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAkvKiBzZXQgdXAgTkMgY29kZWMgcGlucyAqLwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMT1VUMiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJST1VUMiIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJPVVQzIiwgIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJPVVQ0IiwgIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMSU5FMSIsIDApOwotCXNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQoY29kZWMsICJMSU5FMiIsIDApOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxPVVQyIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiUk9VVDIiKTsKKwlzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4oY29kZWMsICJPVVQzIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiT1VUNCIpOworCXNuZF9zb2NfZGFwbV9kaXNhYmxlX3Bpbihjb2RlYywgIkxJTkUxIik7CisJc25kX3NvY19kYXBtX2Rpc2FibGVfcGluKGNvZGVjLCAiTElORTIiKTsKIAogCiAJLyogc2V0IGVuZHBvaW50cyB0byBkZWZhdWx0IG1vZGUgKi8KIAlzZXRfc2NlbmFyaW9fZW5kcG9pbnRzKGNvZGVjLCBORU9fQVVESU9fT0ZGKTsKIAogCS8qIEFkZCBuZW8xOTczIHNwZWNpZmljIHdpZGdldHMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKTsgaSsrKQotCQlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsICZ3bTg3NTNfZGFwbV93aWRnZXRzW2ldKTsKKwlzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKGNvZGVjLCB3bTg3NTNfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRSh3bTg3NTNfZGFwbV93aWRnZXRzKSk7CiAKIAkvKiBhZGQgbmVvMTk3MyBzcGVjaWZpYyBjb250cm9scyAqLwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHdtODc1M19uZW8xOTczX2NvbnRyb2xzKTsgaSsrKSB7CkBAIC01MDgsMjAgKzUzNSwxOCBAQAogCQkJcmV0dXJuIGVycjsKIAl9CiAKLQkvKiBzZXQgdXAgbmVvMTk3MyBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1ZGlvX21hcG5lY3RzICovCi0JZm9yIChpID0gMDsgYXVkaW9fbWFwW2ldWzBdICE9IE5VTEw7IGkrKykgewotCQlzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dChjb2RlYywgYXVkaW9fbWFwW2ldWzBdLAotCQkJYXVkaW9fbWFwW2ldWzFdLCBhdWRpb19tYXBbaV1bMl0pOwotCX0KKwkvKiBzZXQgdXAgbmVvMTk3MyBzcGVjaWZpYyBhdWRpbyByb3V0ZXMgKi8KKwllcnIgPSBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyhjb2RlYywgZGFwbV9yb3V0ZXMsCisJCQkJICAgICAgQVJSQVlfU0laRShkYXBtX3JvdXRlcykpOwogCi0Jc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKGNvZGVjKTsKKwlzbmRfc29jX2RhcG1fc3luYyhjb2RlYyk7CiAJcmV0dXJuIDA7CiB9CiAKIC8qCiAgKiBCVCBDb2RlYyBEQUkKICAqLwotc3RhdGljIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgYnRfZGFpID0geworc3RhdGljIHN0cnVjdCBzbmRfc29jX2RhaSBidF9kYWkgPSB7CiAJLm5hbWUgPSAiQmx1ZXRvb3RoIiwKIAkuaWQgPSAwLAogCS50eXBlID0gU05EX1NPQ19EQUlfUENNLApAQCAtNTgzLDYgKzYwOCw4IEBACiB7CiAJaW50IHJldDsKIAorCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOworCiAJY2xpZW50X3RlbXBsYXRlLmFkYXB0ZXIgPSBhZGFwOwogCWNsaWVudF90ZW1wbGF0ZS5hZGRyID0gYWRkcjsKIApAQCAtNjA2LDYgKzYzMyw4IEBACiAKIHN0YXRpYyBpbnQgbG00ODU3X2kyY19kZXRhY2goc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWkyY19kZXRhY2hfY2xpZW50KGNsaWVudCk7CiAJa2ZyZWUoY2xpZW50KTsKIAlyZXR1cm4gMDsKQEAgLTYxMyw2ICs2NDIsOCBAQAogCiBzdGF0aWMgaW50IGxtNDg1N19pMmNfYXR0YWNoKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCXJldHVybiBpMmNfcHJvYmUoYWRhcCwgJmFkZHJfZGF0YSwgbG00ODU3X2FtcF9wcm9iZSk7CiB9CiAKQEAgLTYyMCw2ICs2NTEsOCBAQAogCiBzdGF0aWMgaW50IGxtNDg1N19zdXNwZW5kKHN0cnVjdCBpMmNfY2xpZW50ICpkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCWRldl9kYmcoJmRldi0+ZGV2LCAibG00ODU3X3N1c3BlbmRcbiIpOwogCWxtNDg1N19zdGF0ZSA9IGxtNDg1N19yZWdzW0xNNDg1N19DVFJMXSAmIDB4ZjsKIAlpZiAobG00ODU3X3N0YXRlKSB7CkBAIC02MzEsNiArNjY0LDggQEAKIAogc3RhdGljIGludCBsbTQ4NTdfcmVzdW1lKHN0cnVjdCBpMmNfY2xpZW50ICpkZXYpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpZiAobG00ODU3X3N0YXRlKSB7CiAJCWxtNDg1N19yZWdzW0xNNDg1N19DVFJMXSB8PSAobG00ODU3X3N0YXRlICYgMHgwZik7CiAJCWxtNDg1N193cml0ZV9yZWdzKCk7CkBAIC02NDAsNiArNjc1LDggQEAKIAogc3RhdGljIHZvaWQgbG00ODU3X3NodXRkb3duKHN0cnVjdCBpMmNfY2xpZW50ICpkZXYpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlkZXZfZGJnKCZkZXYtPmRldiwgImxtNDg1N19zaHV0ZG93blxuIik7CiAJbG00ODU3X3JlZ3NbTE00ODU3X0NUUkxdICY9IDB4ZjA7CiAJbG00ODU3X3dyaXRlX3JlZ3MoKTsKQEAgLTY3MSw2ICs3MDgsOCBAQAogewogCWludCByZXQ7CiAKKwlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKKwogCW5lbzE5NzNfc25kX2RldmljZSA9IHBsYXRmb3JtX2RldmljZV9hbGxvYygic29jLWF1ZGlvIiwgLTEpOwogCWlmICghbmVvMTk3M19zbmRfZGV2aWNlKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTY5MSw2ICs3MzAsOCBAQAogCiBzdGF0aWMgdm9pZCBfX2V4aXQgbmVvMTk3M19leGl0KHZvaWQpCiB7CisJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CisKIAlpMmNfZGVsX2RyaXZlcigmbG00ODU3X2kyY19kcml2ZXIpOwogCXBsYXRmb3JtX2RldmljZV91bnJlZ2lzdGVyKG5lbzE5NzNfc25kX2RldmljZSk7CiB9CmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuYwppbmRleCBjNGE0NmRkLi5lZTQ2NzZlIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmMKQEAgLTI5NSw3ICsyOTUsNyBAQAogLyoKICAqIFNldCBTM0MyNDEyIEkyUyBEQUkgZm9ybWF0CiAgKi8KLXN0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJCSAgICAgICB1bnNpZ25lZCBpbnQgZm10KQogewogCXUzMiBpaXNtb2Q7CkBAIC01MDAsNyArNTAwLDcgQEAKIC8qCiAgKiBTZXQgUzNDMjQxMiBDbG9jayBzb3VyY2UKICAqLwotc3RhdGljIGludCBzM2MyNDEyX2kyc19zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksCitzdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpLAogCQkJCSAgaW50IGNsa19pZCwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJdTMyIGlpc21vZCA9IHJlYWRsKHMzYzI0MTJfaTJzLnJlZ3MgKyBTM0MyNDEyX0lJU01PRCk7CkBAIC01MjgsNyArNTI4LDcgQEAKIC8qCiAgKiBTZXQgUzNDMjQxMiBDbG9jayBkaXZpZGVycwogICovCi1zdGF0aWMgaW50IHMzYzI0MTJfaTJzX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSwKK3N0YXRpYyBpbnQgczNjMjQxMl9pMnNfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWksCiAJCQkJICBpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXN0cnVjdCBzM2MyNDEyX2kyc19pbmZvICppMnMgPSAmczNjMjQxMl9pMnM7CkBAIC02MDEsNyArNjAxLDggQEAKIEVYUE9SVF9TWU1CT0xfR1BMKHMzYzI0MTJfZ2V0X2lpc2Nsayk7CiAKIAotc3RhdGljIGludCBzM2MyNDEyX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIGludCBzM2MyNDEyX2kyc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtNjQ3LDcgKzY0OCw3IEBACiAKICNpZmRlZiBDT05GSUdfUE0KIHN0YXRpYyBpbnQgczNjMjQxMl9pMnNfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYsCi0JCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWkpCisJCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlzdHJ1Y3QgczNjMjQxMl9pMnNfaW5mbyAqaTJzID0gJnMzYzI0MTJfaTJzOwogCXUzMiBpaXNtb2Q7CkBAIC02NzUsNyArNjc2LDcgQEAKIH0KIAogc3RhdGljIGludCBzM2MyNDEyX2kyc19yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKLQkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmRhaSkKKwkJCSAgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCXN0cnVjdCBzM2MyNDEyX2kyc19pbmZvICppMnMgPSAmczNjMjQxMl9pMnM7CiAKQEAgLTcwNyw3ICs3MDgsNyBAQAogCVNORFJWX1BDTV9SQVRFXzIyMDUwIHwgU05EUlZfUENNX1JBVEVfMzIwMDAgfCBTTkRSVl9QQ01fUkFURV80NDEwMCB8IFwKIAlTTkRSVl9QQ01fUkFURV80ODAwMCB8IFNORFJWX1BDTV9SQVRFXzg4MjAwIHwgU05EUlZfUENNX1JBVEVfOTYwMDApCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQxMl9pMnNfZGFpID0geworc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0MTJfaTJzX2RhaSA9IHsKIAkubmFtZQk9ICJzM2MyNDEyLWkycyIsCiAJLmlkCT0gMCwKIAkudHlwZQk9IFNORF9TT0NfREFJX0kyUywKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmggYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDEyLWkycy5oCmluZGV4IDI3ZjQ4ZTEuLmFhYzA4YTIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0MTItaTJzLmgKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjQxMi1pMnMuaApAQCAtMjQsNyArMjQsNyBAQAogCiBleHRlcm4gc3RydWN0IGNsayAqczNjMjQxMl9nZXRfaWlzY2xrKHZvaWQpOwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBzM2MyNDEyX2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0MTJfaTJzX2RhaTsKIAogc3RydWN0IHMzYzI0MTJfcmF0ZV9jYWxjIHsKIAl1bnNpZ25lZCBpbnQJY2xrX2RpdjsJLyogZm9yIHByZXNjYWxlciAqLwpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjQ0My1hYzk3LmMgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDQzLWFjOTcuYwppbmRleCBlODFkOWE2Li43ODMzNDliIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDQzLWFjOTcuYworKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNDQzLWFjOTcuYwpAQCAtMTAsOSArMTAsNiBAQAogICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKICAqICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICoJMjFzdCBNYXIgMjAwNyAgIEluaXRpYWwgVmVyc2lvbgogICovCiAKICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CkBAIC0yMTIsNyArMjA5LDggQEAKIAkuZG1hX3NpemUJPSA0LAogfTsKIAotc3RhdGljIGludCBzM2MyNDQzX2FjOTdfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKK3N0YXRpYyBpbnQgczNjMjQ0M19hYzk3X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSkKIHsKIAlpbnQgcmV0OwogCXUzMiBhY19nbGJjdHJsOwpAQCAtMjYzLDcgKzI2MSw4IEBACiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIHZvaWQgczNjMjQ0M19hYzk3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQorc3RhdGljIHZvaWQgczNjMjQ0M19hYzk3X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAorCQkJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCWZyZWVfaXJxKElSUV9TM0MyNDR4X0FDOTcsIE5VTEwpOwogCWNsa19kaXNhYmxlKHMzYzI0eHhfYWM5Ny5hYzk3X2Nsayk7CkBAIC0yNzUsNyArMjc0LDcgQEAKIAkJCQlzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKIHsKIAlzdHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOwogCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spCiAJCWNwdV9kYWktPmRtYV9kYXRhID0gJnMzYzI0NDNfYWM5N19wY21fc3RlcmVvX291dDsKQEAgLTMxNyw3ICszMTYsNyBAQAogCXN0cnVjdCBzbmRfcGNtX2h3X3BhcmFtcyAqcGFyYW1zKQogewogCXN0cnVjdCBzbmRfc29jX3BjbV9ydW50aW1lICpydGQgPSBzdWJzdHJlYW0tPnByaXZhdGVfZGF0YTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gcnRkLT5kYWktPmNwdV9kYWk7CiAKIAlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJcmV0dXJuIC1FTk9ERVY7CkBAIC0zNTMsNyArMzUyLDcgQEAKIAkJU05EUlZfUENNX1JBVEVfMTYwMDAgfCBTTkRSVl9QQ01fUkFURV8yMjA1MCB8IFwKIAkJU05EUlZfUENNX1JBVEVfNDQxMDAgfCBTTkRSVl9QQ01fUkFURV80ODAwMCkKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBzM2MyNDQzX2FjOTdfZGFpW10gPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgczNjMjQ0M19hYzk3X2RhaVtdID0gewogewogCS5uYW1lID0gInMzYzI0NDMtYWM5NyIsCiAJLmlkID0gMCwKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtYWM5Ny5oIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1hYzk3LmgKaW5kZXggYmYwM2U4ZS4uYTk2ZGNhZCAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1hYzk3LmgKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1hYzk3LmgKQEAgLTI2LDYgKzI2LDYgQEAKICNkZWZpbmUgSVJRX1MzQzI0NHhfQUM5NyBJUlFfUzNDMjQ0M19BQzk3CiAjZW5kaWYKIAotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgczNjMjQ0M19hYzk3X2RhaVtdOworZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2RhaSBzM2MyNDQzX2FjOTdfZGFpW107CiAKICNlbmRpZiAvKlMzQzI0WFhBQzk3X0hfKi8KZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmMgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5jCmluZGV4IDFlZDZhZmQuLjM5NzUyNDIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmMKKysrIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuYwpAQCAtMTIsMTEgKzEyLDYgQEAKICAqICB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKICAqICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3IgKGF0IHlvdXIKICAqICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTF0aCBEZWMgMjAwNiAgIE1lcmdlZCB3aXRoIFNpbXRlYyBkcml2ZXIKLSAqICAgIDEwdGggTm92IDIwMDYgICBJbml0aWFsIHZlcnNpb24uCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KQEAgLTE4MCw3ICsxNzUsNyBAQAogc3RhdGljIGludCBzM2MyNHh4X3NuZF9scnN5bmModm9pZCkKIHsKIAl1MzIgaWlzY29uOwotCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDUpOworCWludCB0aW1lb3V0ID0gNTA7IC8qIDVtcyAqLwogCiAJREJHKCJFbnRlcmVkICVzXG4iLCBfX2Z1bmNfXyk7CiAKQEAgLTE4OSw4ICsxODQsOSBAQAogCQlpZiAoaWlzY29uICYgUzNDMjQxMF9JSVNDT05fTFJJTkRFWCkKIAkJCWJyZWFrOwogCi0JCWlmICh0aW1lX2FmdGVyKGppZmZpZXMsIHRpbWVvdXQpKQorCQlpZiAoIXRpbWVvdXQtLSkKIAkJCXJldHVybiAtRVRJTUVET1VUOworCQl1ZGVsYXkoMTAwKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTIwOSw3ICsyMDUsNyBAQAogLyoKICAqIFNldCBTM0MyNHh4IEkyUyBEQUkgZm9ybWF0CiAgKi8KLXN0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNHh4X2kyc19zZXRfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAkJdW5zaWduZWQgaW50IGZtdCkKIHsKIAl1MzIgaWlzbW9kOwpAQCAtMzE3LDcgKzMxMyw3IEBACiAvKgogICogU2V0IFMzQzI0eHggQ2xvY2sgc291cmNlCiAgKi8KLXN0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X3N5c2NsayhzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNHh4X2kyc19zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAlpbnQgY2xrX2lkLCB1bnNpZ25lZCBpbnQgZnJlcSwgaW50IGRpcikKIHsKIAl1MzIgaWlzbW9kID0gcmVhZGwoczNjMjR4eF9pMnMucmVncyArIFMzQzI0MTBfSUlTTU9EKTsKQEAgLTM0Myw3ICszMzksNyBAQAogLyoKICAqIFNldCBTM0MyNHh4IENsb2NrIGRpdmlkZXJzCiAgKi8KLXN0YXRpYyBpbnQgczNjMjR4eF9pMnNfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpLAorc3RhdGljIGludCBzM2MyNHh4X2kyc19zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwKIAlpbnQgZGl2X2lkLCBpbnQgZGl2KQogewogCXUzMiByZWc7CkBAIC0zODEsNyArMzc3LDggQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHMzYzI0eHhfaTJzX2dldF9jbG9ja3JhdGUpOwogCi1zdGF0aWMgaW50IHMzYzI0eHhfaTJzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCitzdGF0aWMgaW50IHMzYzI0eHhfaTJzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCisJCQkgICAgIHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpKQogewogCURCRygiRW50ZXJlZCAlc1xuIiwgX19mdW5jX18pOwogCkBAIC00MTQsNyArNDExLDcgQEAKIAogI2lmZGVmIENPTkZJR19QTQogc3RhdGljIGludCBzM2MyNHh4X2kyc19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpCisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKIHsKIAlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIApAQCAtNDI5LDcgKzQyNiw3IEBACiB9CiAKIHN0YXRpYyBpbnQgczNjMjR4eF9pMnNfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCi0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkpCisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSkKIHsKIAlEQkcoIkVudGVyZWQgJXNcbiIsIF9fZnVuY19fKTsKIAljbGtfZW5hYmxlKHMzYzI0eHhfaTJzLmlpc19jbGspOwpAQCAtNDUyLDcgKzQ0OSw3IEBACiAJU05EUlZfUENNX1JBVEVfMjIwNTAgfCBTTkRSVl9QQ01fUkFURV8zMjAwMCB8IFNORFJWX1BDTV9SQVRFXzQ0MTAwIHwgXAogCVNORFJWX1BDTV9SQVRFXzQ4MDAwIHwgU05EUlZfUENNX1JBVEVfODgyMDAgfCBTTkRSVl9QQ01fUkFURV85NjAwMCkKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBzM2MyNHh4X2kyc19kYWkgPSB7CitzdHJ1Y3Qgc25kX3NvY19kYWkgczNjMjR4eF9pMnNfZGFpID0gewogCS5uYW1lID0gInMzYzI0eHgtaTJzIiwKIAkuaWQgPSAwLAogCS50eXBlID0gU05EX1NPQ19EQUlfSTJTLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuaCBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtaTJzLmgKaW5kZXggNTM3YjRlYy4uNzI2ZDkxYyAxMDA2NDQKLS0tIGEvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1pMnMuaAorKysgYi9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LWkycy5oCkBAIC0zMiw2ICszMiw2IEBACiAKIHUzMiBzM2MyNHh4X2kyc19nZXRfY2xvY2tyYXRlKHZvaWQpOwogCi1leHRlcm4gc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBzM2MyNHh4X2kyc19kYWk7CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHMzYzI0eHhfaTJzX2RhaTsKIAogI2VuZGlmIC8qUzNDMjRYWEkyU19IXyovCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LXBjbS5jIGIvc291bmQvc29jL3MzYzI0eHgvczNjMjR4eC1wY20uYwppbmRleCA3ODA2YWU2Li5jZWY3OWIzIDEwMDY0NAotLS0gYS9zb3VuZC9zb2MvczNjMjR4eC9zM2MyNHh4LXBjbS5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3MzYzI0eHgtcGNtLmMKQEAgLTEyLDEwICsxMiw2IEBACiAgKiAgdW5kZXIgIHRoZSB0ZXJtcyBvZiAgdGhlIEdOVSBHZW5lcmFsICBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTF0aCBEZWMgMjAwNiAgIE1lcmdlZCB3aXRoIFNpbXRlYyBkcml2ZXIKLSAqICAgIDEwdGggTm92IDIwMDYgICBJbml0aWFsIHZlcnNpb24uCiAgKi8KIAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgpAQCAtNDMzLDcgKzQyOSw3IEBACiBzdGF0aWMgdTY0IHMzYzI0eHhfcGNtX2RtYW1hc2sgPSBETUFfMzJCSVRfTUFTSzsKIAogc3RhdGljIGludCBzM2MyNHh4X3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqZGFpLCBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQorCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBzdHJ1Y3Qgc25kX3BjbSAqcGNtKQogewogCWludCByZXQgPSAwOwogCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvczNjMjR4eC9zbWRrMjQ0M193bTk3MTAuYyBiL3NvdW5kL3NvYy9zM2MyNHh4L3NtZGsyNDQzX3dtOTcxMC5jCmluZGV4IGI0YTU2MzAuLjg1MTVkNmYgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zM2MyNHh4L3NtZGsyNDQzX3dtOTcxMC5jCisrKyBiL3NvdW5kL3NvYy9zM2MyNHh4L3NtZGsyNDQzX3dtOTcxMC5jCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgOHRoIE1hciAyMDA3ICAgSW5pdGlhbCB2ZXJzaW9uLgotICoKICAqLwogCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+CmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc2gvS2NvbmZpZyBiL3NvdW5kL3NvYy9zaC9LY29uZmlnCmluZGV4IDRjMWUwMTMuLjU0YmQ2MDQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9LY29uZmlnCisrKyBiL3NvdW5kL3NvYy9zaC9LY29uZmlnCkBAIC0zLDcgKzMsNyBAQAogCiBjb25maWcgU05EX1NPQ19QQ01fU0g3NzYwCiAJdHJpc3RhdGUgIlNvQyBBdWRpbyBzdXBwb3J0IGZvciBSZW5lc2FzIFNINzc2MCIKLQlkZXBlbmRzIG9uIENQVV9TVUJUWVBFX1NINzc2MCAmJiBTTkRfU09DICYmIFNIX0RNQUJSRworCWRlcGVuZHMgb24gQ1BVX1NVQlRZUEVfU0g3NzYwICYmIFNIX0RNQUJSRwogCWhlbHAKIAkgIEVuYWJsZSB0aGlzIG9wdGlvbiBmb3IgU0g3NzYwIEFDOTcvSTJTIGF1ZGlvIHN1cHBvcnQuCiAKQEAgLTEzLDEwICsxMyw5IEBACiAjIwogCiBjb25maWcgU05EX1NPQ19TSDRfSEFDCisJdHJpc3RhdGUKIAlzZWxlY3QgQUM5N19CVVMKIAlzZWxlY3QgU05EX1NPQ19BQzk3X0JVUwotCXNlbGVjdCBTTkRfQUM5N19DT0RFQwotCXRyaXN0YXRlCiAKIGNvbmZpZyBTTkRfU09DX1NINF9TU0kKIAl0cmlzdGF0ZQpkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL2RtYS1zaDc3NjAuYyBiL3NvdW5kL3NvYy9zaC9kbWEtc2g3NzYwLmMKaW5kZXggN2EzY2U4MC4uOWZhYTEyNiAxMDA2NDQKLS0tIGEvc291bmQvc29jL3NoL2RtYS1zaDc3NjAuYworKysgYi9zb3VuZC9zb2Mvc2gvZG1hLXNoNzc2MC5jCkBAIC0zMjYsNyArMzI2LDcgQEAKIH0KIAogc3RhdGljIGludCBjYW1lbG90X3BjbV9uZXcoc3RydWN0IHNuZF9jYXJkICpjYXJkLAotCQkJICAgc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWksCisJCQkgICBzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKIAkJCSAgIHN0cnVjdCBzbmRfcGNtICpwY20pCiB7CiAJLyogZG9udCB1c2UgU05EUlZfRE1BX1RZUEVfREVWLCBzaW5jZSBpdCB3aWxsIG9vcHMgdGhlIFNIIGtlcm5lbApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL2hhYy5jIGIvc291bmQvc29jL3NoL2hhYy5jCmluZGV4IGI3YjY3NmIuLmRmN2JjMzQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9oYWMuYworKysgYi9zb3VuZC9zb2Mvc2gvaGFjLmMKQEAgLTI2Niw3ICsyNjYsNyBAQAogI2RlZmluZSBBQzk3X0ZNVFMJXAogCVNORFJWX1BDTV9GTVRCSVRfUzE2X0xFCiAKLXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgc2g0X2hhY19kYWlbXSA9IHsKK3N0cnVjdCBzbmRfc29jX2RhaSBzaDRfaGFjX2RhaVtdID0gewogewogCS5uYW1lCQkJPSAiSEFDMCIsCiAJLmlkCQkJPSAwLApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL3NoNzc2MC1hYzk3LmMgYi9zb3VuZC9zb2Mvc2gvc2g3NzYwLWFjOTcuYwppbmRleCAyZjkxZGU4Li45MmJmYWY0IDEwMDY0NAotLS0gYS9zb3VuZC9zb2Mvc2gvc2g3NzYwLWFjOTcuYworKysgYi9zb3VuZC9zb2Mvc2gvc2g3NzYwLWFjOTcuYwpAQCAtMjAsMTIgKzIwLDEyIEBACiAjZGVmaW5lIElQU0VMIDB4RkU0MDAwMzQKIAogLyogcGxhdGZvcm0gc3BlY2lmaWMgc3RydWN0cyBjYW4gYmUgZGVjbGFyZWQgaGVyZSAqLwotZXh0ZXJuIHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgc2g0X2hhY19kYWlbMl07CitleHRlcm4gc3RydWN0IHNuZF9zb2NfZGFpIHNoNF9oYWNfZGFpWzJdOwogZXh0ZXJuIHN0cnVjdCBzbmRfc29jX3BsYXRmb3JtIHNoNzc2MF9zb2NfcGxhdGZvcm07CiAKIHN0YXRpYyBpbnQgbWFjaGluZV9pbml0KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKIHsKLQlzbmRfc29jX2RhcG1fc3luY19lbmRwb2ludHMoY29kZWMpOworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc291bmQvc29jL3NoL3NzaS5jIGIvc291bmQvc29jL3NoL3NzaS5jCmluZGV4IDMzODhiYzMuLjU1YzM0NjQgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zaC9zc2kuYworKysgYi9zb3VuZC9zb2Mvc2gvc3NpLmMKQEAgLTIwOCw3ICsyMDgsNyBAQAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHNzaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWksIGludCBjbGtfaWQsCitzdGF0aWMgaW50IHNzaV9zZXRfc3lzY2xrKHN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSwgaW50IGNsa19pZCwKIAkJCSAgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCiB7CiAJc3RydWN0IHNzaV9wcml2ICpzc2kgPSAmc3NpX2NwdV9kYXRhW2NwdV9kYWktPmlkXTsKQEAgLTIyMiw3ICsyMjIsNyBAQAogICogVGhpcyBkaXZpZGVyIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIFNTSV9TQ0sgKEkyUyBiaXRjbG9jaykgZnJvbSB0aGUKICAqIGNsb2NrIGF0IHRoZSBIQUNfQklUX0NMSyAoIm92ZXJzYW1wbGluZyBjbG9jayIpIHBpbi4KICAqLwotc3RhdGljIGludCBzc2lfc2V0X2Nsa2RpdihzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpkYWksIGludCBkaWQsIGludCBkaXYpCitzdGF0aWMgaW50IHNzaV9zZXRfY2xrZGl2KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCBpbnQgZGlkLCBpbnQgZGl2KQogewogCXN0cnVjdCBzc2lfcHJpdiAqc3NpID0gJnNzaV9jcHVfZGF0YVtkYWktPmlkXTsKIAl1bnNpZ25lZCBsb25nIHNzaWNyOwpAQCAtMjQ1LDcgKzI0NSw3IEBACiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgc3NpX3NldF9mbXQoc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KQorc3RhdGljIGludCBzc2lfc2V0X2ZtdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwgdW5zaWduZWQgaW50IGZtdCkKIHsKIAlzdHJ1Y3Qgc3NpX3ByaXYgKnNzaSA9ICZzc2lfY3B1X2RhdGFbZGFpLT5pZF07CiAJdW5zaWduZWQgbG9uZyBzc2ljciA9IFNTSVJFRyhTU0lDUik7CkBAIC0zMzIsNyArMzMyLDcgQEAKIAkgU05EUlZfUENNX0ZNVEJJVF9TMjRfM0xFIHwgU05EUlZfUENNX0ZNVEJJVF9VMjRfM0xFIHwJXAogCSBTTkRSVl9QQ01fRk1UQklUX1MzMl9MRSAgfCBTTkRSVl9QQ01fRk1UQklUX1UzMl9MRSkKIAotc3RydWN0IHNuZF9zb2NfY3B1X2RhaSBzaDRfc3NpX2RhaVtdID0geworc3RydWN0IHNuZF9zb2NfZGFpIHNoNF9zc2lfZGFpW10gPSB7CiB7CiAJLm5hbWUJCQk9ICJTU0kwIiwKIAkuaWQJCQk9IDAsCmRpZmYgLS1naXQgYS9zb3VuZC9zb2Mvc29jLWNvcmUuYyBiL3NvdW5kL3NvYy9zb2MtY29yZS5jCmluZGV4IGUxNDhkYjkuLjgzZjExOTAgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zb2MtY29yZS5jCisrKyBiL3NvdW5kL3NvYy9zb2MtY29yZS5jCkBAIC0xNCwxMCArMTQsNiBAQAogICogIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlICBMaWNlbnNlLCBvciAoYXQgeW91cgogICogIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgotICogIFJldmlzaW9uIGhpc3RvcnkKLSAqICAgIDEydGggQXVnIDIwMDUgICBJbml0aWFsIHZlcnNpb24uCi0gKiAgICAyNXRoIE9jdCAyMDA1ICAgV29ya2luZyBDb2RlYywgSW50ZXJmYWNlIGFuZCBQbGF0Zm9ybSByZWdpc3RyYXRpb24uCi0gKgogICogIFRPRE86CiAgKiAgIG8gQWRkIGh3IHJ1bGVzIHRvIGVuZm9yY2UgcmF0ZXMsIGV0Yy4KICAqICAgbyBNb3JlIHRlc3Rpbmcgd2l0aCBvdGhlciBjb2RlY3MvbWFjaGluZXMuCkBAIC0xMTIsOSArMTA4LDkgQEAKIH0KICNlbmRpZgogCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdldF9kYWlfbmFtZShpbnQgdHlwZSkKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZ2V0X2RhaV9uYW1lKGludCB0eXBlKQogewotCXN3aXRjaCh0eXBlKSB7CisJc3dpdGNoICh0eXBlKSB7CiAJY2FzZSBTTkRfU09DX0RBSV9BQzk3X0JVUzoKIAljYXNlIFNORF9TT0NfREFJX0FDOTc6CiAJCXJldHVybiAiQUM5NyI7CkBAIC0xMzgsOCArMTM0LDggQEAKIAlzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lICpydW50aW1lID0gc3Vic3RyZWFtLT5ydW50aW1lOwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCWludCByZXQgPSAwOwogCiAJbXV0ZXhfbG9jaygmcGNtX211dGV4KTsKQEAgLTE4Miw5ICsxNzgsMTEgQEAKIAkvKiBDaGVjayB0aGF0IHRoZSBjb2RlYyBhbmQgY3B1IERBSSdzIGFyZSBjb21wYXRpYmxlICovCiAJaWYgKHN1YnN0cmVhbS0+c3RyZWFtID09IFNORFJWX1BDTV9TVFJFQU1fUExBWUJBQ0spIHsKIAkJcnVudGltZS0+aHcucmF0ZV9taW4gPQotCQkJbWF4KGNvZGVjX2RhaS0+cGxheWJhY2sucmF0ZV9taW4sIGNwdV9kYWktPnBsYXliYWNrLnJhdGVfbWluKTsKKwkJCW1heChjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWluLAorCQkJICAgIGNwdV9kYWktPnBsYXliYWNrLnJhdGVfbWluKTsKIAkJcnVudGltZS0+aHcucmF0ZV9tYXggPQotCQkJbWluKGNvZGVjX2RhaS0+cGxheWJhY2sucmF0ZV9tYXgsIGNwdV9kYWktPnBsYXliYWNrLnJhdGVfbWF4KTsKKwkJCW1pbihjb2RlY19kYWktPnBsYXliYWNrLnJhdGVfbWF4LAorCQkJICAgIGNwdV9kYWktPnBsYXliYWNrLnJhdGVfbWF4KTsKIAkJcnVudGltZS0+aHcuY2hhbm5lbHNfbWluID0KIAkJCW1heChjb2RlY19kYWktPnBsYXliYWNrLmNoYW5uZWxzX21pbiwKIAkJCQljcHVfZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4pOwpAQCAtMTk3LDkgKzE5NSwxMSBAQAogCQkJY29kZWNfZGFpLT5wbGF5YmFjay5yYXRlcyAmIGNwdV9kYWktPnBsYXliYWNrLnJhdGVzOwogCX0gZWxzZSB7CiAJCXJ1bnRpbWUtPmh3LnJhdGVfbWluID0KLQkJCW1heChjb2RlY19kYWktPmNhcHR1cmUucmF0ZV9taW4sIGNwdV9kYWktPmNhcHR1cmUucmF0ZV9taW4pOworCQkJbWF4KGNvZGVjX2RhaS0+Y2FwdHVyZS5yYXRlX21pbiwKKwkJCSAgICBjcHVfZGFpLT5jYXB0dXJlLnJhdGVfbWluKTsKIAkJcnVudGltZS0+aHcucmF0ZV9tYXggPQotCQkJbWluKGNvZGVjX2RhaS0+Y2FwdHVyZS5yYXRlX21heCwgY3B1X2RhaS0+Y2FwdHVyZS5yYXRlX21heCk7CisJCQltaW4oY29kZWNfZGFpLT5jYXB0dXJlLnJhdGVfbWF4LAorCQkJICAgIGNwdV9kYWktPmNhcHR1cmUucmF0ZV9tYXgpOwogCQlydW50aW1lLT5ody5jaGFubmVsc19taW4gPQogCQkJbWF4KGNvZGVjX2RhaS0+Y2FwdHVyZS5jaGFubmVsc19taW4sCiAJCQkJY3B1X2RhaS0+Y2FwdHVyZS5jaGFubmVsc19taW4pOwpAQCAtMjI5LDcgKzIyOSw3IEBACiAJCWdvdG8gbWFjaGluZV9lcnI7CiAJfQogCi0JZGJnKCJhc29jOiAlcyA8LT4gJXMgaW5mbzpcbiIsY29kZWNfZGFpLT5uYW1lLCBjcHVfZGFpLT5uYW1lKTsKKwlkYmcoImFzb2M6ICVzIDwtPiAlcyBpbmZvOlxuIiwgY29kZWNfZGFpLT5uYW1lLCBjcHVfZGFpLT5uYW1lKTsKIAlkYmcoImFzb2M6IHJhdGUgbWFzayAweCV4XG4iLCBydW50aW1lLT5ody5yYXRlcyk7CiAJZGJnKCJhc29jOiBtaW4gY2ggJWQgbWF4IGNoICVkXG4iLCBydW50aW1lLT5ody5jaGFubmVsc19taW4sCiAJCXJ1bnRpbWUtPmh3LmNoYW5uZWxzX21heCk7CkBAIC0yNzIsMTEgKzI3MiwxMSBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0KIAkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzbmRfc29jX2RldmljZSwgZGVsYXllZF93b3JrLndvcmspOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWk7CiAJaW50IGk7CiAKIAltdXRleF9sb2NrKCZwY21fbXV0ZXgpOwotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgewogCQljb2RlY19kYWkgPSAmY29kZWMtPmRhaVtpXTsKIAogCQlkYmcoInBvcCB3cSBjaGVja2luZzogJXMgc3RhdHVzOiAlcyB3YWl0aW5nOiAlc1xuIiwKQEAgLTI4NywxMiArMjg3LDEyIEBACiAJCS8qIGFyZSB3ZSB3YWl0aW5nIG9uIHRoaXMgY29kZWMgREFJIHN0cmVhbSAqLwogCQlpZiAoY29kZWNfZGFpLT5wb3Bfd2FpdCA9PSAxKSB7CiAKLQkJCS8qIHBvd2VyIGRvd24gdGhlIGNvZGVjIHRvIEQxIGlmIG5vIGxvbmdlciBhY3RpdmUgKi8KKwkJCS8qIFJlZHVjZSBwb3dlciBpZiBubyBsb25nZXIgYWN0aXZlICovCiAJCQlpZiAoY29kZWMtPmFjdGl2ZSA9PSAwKSB7CiAJCQkJZGJnKCJwb3Agd3EgRDEgJXMgJXNcbiIsIGNvZGVjLT5uYW1lLAogCQkJCQljb2RlY19kYWktPnBsYXliYWNrLnN0cmVhbV9uYW1lKTsKLQkJCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwKLQkJCQkJU05EUlZfQ1RMX1BPV0VSX0QxKTsKKwkJCQlzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc29jZGV2LAorCQkJCQlTTkRfU09DX0JJQVNfUFJFUEFSRSk7CiAJCQl9CiAKIAkJCWNvZGVjX2RhaS0+cG9wX3dhaXQgPSAwOwpAQCAtMzAwLDEyICszMDAsMTIgQEAKIAkJCQljb2RlY19kYWktPnBsYXliYWNrLnN0cmVhbV9uYW1lLAogCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fU1RPUCk7CiAKLQkJCS8qIHBvd2VyIGRvd24gdGhlIGNvZGVjIHBvd2VyIGRvbWFpbiBpZiBubyBsb25nZXIgYWN0aXZlICovCisJCQkvKiBGYWxsIGludG8gc3RhbmRieSBpZiBubyBsb25nZXIgYWN0aXZlICovCiAJCQlpZiAoY29kZWMtPmFjdGl2ZSA9PSAwKSB7CiAJCQkJZGJnKCJwb3Agd3EgRDMgJXMgJXNcbiIsIGNvZGVjLT5uYW1lLAogCQkJCQljb2RlY19kYWktPnBsYXliYWNrLnN0cmVhbV9uYW1lKTsKLQkJCQlzbmRfc29jX2RhcG1fZGV2aWNlX2V2ZW50KHNvY2RldiwKLQkJCQkJU05EUlZfQ1RMX1BPV0VSX0QzaG90KTsKKwkJCQlzbmRfc29jX2RhcG1fc2V0X2JpYXNfbGV2ZWwoc29jZGV2LAorCQkJCQlTTkRfU09DX0JJQVNfU1RBTkRCWSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0zMjMsOCArMzIzLDggQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAltdXRleF9sb2NrKCZwY21fbXV0ZXgpOwpAQCAtMzY1LDggKzM2NSw4IEBACiAJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1NUT1ApOwogCiAJCWlmIChjb2RlYy0+YWN0aXZlID09IDAgJiYgY29kZWNfZGFpLT5wb3Bfd2FpdCA9PSAwKQotCQkJc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzb2NkZXYsCi0JCQkJCQlTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwKKwkJCQkJCVNORF9TT0NfQklBU19TVEFOREJZKTsKIAl9CiAKIAltdXRleF91bmxvY2soJnBjbV9tdXRleCk7CkBAIC0zODQsOCArMzg0LDggQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAJaW50IHJldCA9IDA7CiAKQEAgLTQzNCwxNCArNDM0LDE0IEBACiAJCWVsc2UgewogCQkJY29kZWNfZGFpLT5wb3Bfd2FpdCA9IDA7CiAJCQljYW5jZWxfZGVsYXllZF93b3JrKCZzb2NkZXYtPmRlbGF5ZWRfd29yayk7Ci0JCQlpZiAoY29kZWNfZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZSkKLQkJCQljb2RlY19kYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKGNvZGVjX2RhaSwgMCk7CisJCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKIAkJfQogCX0gZWxzZSB7CiAJCS8qIG5vIGRlbGF5ZWQgd29yayAtIGRvIHdlIG5lZWQgdG8gcG93ZXIgdXAgY29kZWMgKi8KLQkJaWYgKGNvZGVjLT5kYXBtX3N0YXRlICE9IFNORFJWX0NUTF9QT1dFUl9EMCkgeworCQlpZiAoY29kZWMtPmJpYXNfbGV2ZWwgIT0gU05EX1NPQ19CSUFTX09OKSB7CiAKLQkJCXNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc29jZGV2LCAgU05EUlZfQ1RMX1BPV0VSX0QxKTsKKwkJCXNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzb2NkZXYsCisJCQkJCQkgICAgU05EX1NPQ19CSUFTX1BSRVBBUkUpOwogCiAJCQlpZiAoc3Vic3RyZWFtLT5zdHJlYW0gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykKIAkJCQlzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KGNvZGVjLApAQCAtNDUyLDkgKzQ1Miw4IEBACiAJCQkJCWNvZGVjX2RhaS0+Y2FwdHVyZS5zdHJlYW1fbmFtZSwKIAkJCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9TVEFSVCk7CiAKLQkJCXNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQoc29jZGV2LCBTTkRSVl9DVExfUE9XRVJfRDApOwotCQkJaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUpCi0JCQkJY29kZWNfZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDApOworCQkJc25kX3NvY19kYXBtX3NldF9iaWFzX2xldmVsKHNvY2RldiwgU05EX1NPQ19CSUFTX09OKTsKKwkJCXNuZF9zb2NfZGFpX2RpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDApOwogCiAJCX0gZWxzZSB7CiAJCQkvKiBjb2RlYyBhbHJlYWR5IHBvd2VyZWQgLSBwb3dlciBvbiB3aWRnZXRzICovCkBAIC00NjYsOCArNDY1LDggQEAKIAkJCQlzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KGNvZGVjLAogCQkJCQljb2RlY19kYWktPmNhcHR1cmUuc3RyZWFtX25hbWUsCiAJCQkJCVNORF9TT0NfREFQTV9TVFJFQU1fU1RBUlQpOwotCQkJaWYgKGNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUpCi0JCQkJY29kZWNfZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDApOworCisJCQlzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoY29kZWNfZGFpLCAwKTsKIAkJfQogCX0KIApAQCAtNDg4LDggKzQ4Nyw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBydGQtPnNvY2RldjsKIAlzdHJ1Y3Qgc25kX3NvY19kYWlfbGluayAqbWFjaGluZSA9IHJ0ZC0+ZGFpOwogCXN0cnVjdCBzbmRfc29jX3BsYXRmb3JtICpwbGF0Zm9ybSA9IHNvY2Rldi0+cGxhdGZvcm07Ci0Jc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKIAlpbnQgcmV0ID0gMDsKIAogCW11dGV4X2xvY2soJnBjbV9tdXRleCk7CkBAIC01MTQsNyArNTEzLDcgQEAKIAlpZiAoY3B1X2RhaS0+b3BzLmh3X3BhcmFtcykgewogCQlyZXQgPSBjcHVfZGFpLT5vcHMuaHdfcGFyYW1zKHN1YnN0cmVhbSwgcGFyYW1zKTsKIAkJaWYgKHJldCA8IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiYXNvYzogY2FuJ3Qgc2V0IGludGVyZmFjZSAlcyBodyBwYXJhbXNcbiIsCisJCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGludGVyZmFjZSAlcyBodyBwYXJhbXMgZmFpbGVkXG4iLAogCQkJCWNwdV9kYWktPm5hbWUpOwogCQkJZ290byBpbnRlcmZhY2VfZXJyOwogCQl9CkBAIC01MjMsNyArNTIyLDcgQEAKIAlpZiAocGxhdGZvcm0tPnBjbV9vcHMtPmh3X3BhcmFtcykgewogCQlyZXQgPSBwbGF0Zm9ybS0+cGNtX29wcy0+aHdfcGFyYW1zKHN1YnN0cmVhbSwgcGFyYW1zKTsKIAkJaWYgKHJldCA8IDApIHsKLQkJCXByaW50ayhLRVJOX0VSUiAiYXNvYzogY2FuJ3Qgc2V0IHBsYXRmb3JtICVzIGh3IHBhcmFtc1xuIiwKKwkJCXByaW50ayhLRVJOX0VSUiAiYXNvYzogcGxhdGZvcm0gJXMgaHcgcGFyYW1zIGZhaWxlZFxuIiwKIAkJCQlwbGF0Zm9ybS0+bmFtZSk7CiAJCQlnb3RvIHBsYXRmb3JtX2VycjsKIAkJfQpAQCAtNTQyLDcgKzU0MSw3IEBACiAJCWNvZGVjX2RhaS0+b3BzLmh3X2ZyZWUoc3Vic3RyZWFtKTsKIAogY29kZWNfZXJyOgotCWlmKG1hY2hpbmUtPm9wcyAmJiBtYWNoaW5lLT5vcHMtPmh3X2ZyZWUpCisJaWYgKG1hY2hpbmUtPm9wcyAmJiBtYWNoaW5lLT5vcHMtPmh3X2ZyZWUpCiAJCW1hY2hpbmUtPm9wcy0+aHdfZnJlZShzdWJzdHJlYW0pOwogCiAJbXV0ZXhfdW5sb2NrKCZwY21fbXV0ZXgpOwpAQCAtNTU4LDE1ICs1NTcsMTUgQEAKIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHJ0ZC0+c29jZGV2OwogCXN0cnVjdCBzbmRfc29jX2RhaV9saW5rICptYWNoaW5lID0gcnRkLT5kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+Y3B1X2RhaTsKLQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmNvZGVjX2RhaSA9IG1hY2hpbmUtPmNvZGVjX2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAltdXRleF9sb2NrKCZwY21fbXV0ZXgpOwogCiAJLyogYXBwbHkgY29kZWMgZGlnaXRhbCBtdXRlICovCi0JaWYgKCFjb2RlYy0+YWN0aXZlICYmIGNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUpCi0JCWNvZGVjX2RhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoY29kZWNfZGFpLCAxKTsKKwlpZiAoIWNvZGVjLT5hY3RpdmUpCisJCXNuZF9zb2NfZGFpX2RpZ2l0YWxfbXV0ZShjb2RlY19kYWksIDEpOwogCiAJLyogZnJlZSBhbnkgbWFjaGluZSBodyBwYXJhbXMgKi8KIAlpZiAobWFjaGluZS0+b3BzICYmIG1hY2hpbmUtPm9wcy0+aHdfZnJlZSkKQEAgLTU5Myw4ICs1OTIsOCBAQAogCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gcnRkLT5zb2NkZXY7CiAJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKm1hY2hpbmUgPSBydGQtPmRhaTsKIAlzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSAqcGxhdGZvcm0gPSBzb2NkZXYtPnBsYXRmb3JtOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5jcHVfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpID0gbWFjaGluZS0+Y29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmNwdV9kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBtYWNoaW5lLT5jb2RlY19kYWk7CiAJaW50IHJldDsKIAogCWlmIChjb2RlY19kYWktPm9wcy50cmlnZ2VyKSB7CkBAIC02MzEsMTYgKzYzMCwyNiBAQAogLyogcG93ZXJzIGRvd24gYXVkaW8gc3Vic3lzdGVtIGZvciBzdXNwZW5kICovCiBzdGF0aWMgaW50IHNvY19zdXNwZW5kKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHBtX21lc3NhZ2VfdCBzdGF0ZSkKIHsKLSAJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKLSAJc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqbWFjaGluZSA9IHNvY2Rldi0+bWFjaGluZTsKLSAJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKLSAJc3RydWN0IHNuZF9zb2NfY29kZWNfZGV2aWNlICpjb2RlY19kZXYgPSBzb2NkZXYtPmNvZGVjX2RldjsKKwlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOworCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7CisJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2UgKmNvZGVjX2RldiA9IHNvY2Rldi0+Y29kZWNfZGV2OwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAJaW50IGk7CiAKKwkvKiBEdWUgdG8gdGhlIHJlc3VtZSBiZWluZyBzY2hlZHVsZWQgaW50byBhIHdvcmtxdWV1ZSB3ZSBjb3VsZAorCSogc3VzcGVuZCBiZWZvcmUgdGhhdCdzIGZpbmlzaGVkIC0gd2FpdCBmb3IgaXQgdG8gY29tcGxldGUuCisJICovCisJc25kX3Bvd2VyX2xvY2soY29kZWMtPmNhcmQpOworCXNuZF9wb3dlcl93YWl0KGNvZGVjLT5jYXJkLCBTTkRSVl9DVExfUE9XRVJfRDApOworCXNuZF9wb3dlcl91bmxvY2soY29kZWMtPmNhcmQpOworCisJLyogd2UncmUgZ29pbmcgdG8gYmxvY2sgdXNlcnNwYWNlIHRvdWNoaW5nIHVzIHVudGlsIHJlc3VtZSBjb21wbGV0ZXMgKi8KKwlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNvZGVjLT5jYXJkLCBTTkRSVl9DVExfUE9XRVJfRDNob3QpOworCiAJLyogbXV0ZSBhbnkgYWN0aXZlIERBQydzICovCi0JZm9yKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKLQkJc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpkYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jb2RlY19kYWk7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpOwogCQlpZiAoZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZSAmJiBkYWktPnBsYXliYWNrLmFjdGl2ZSkKIAkJCWRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoZGFpLCAxKTsKIAl9CkBAIC02NTIsOCArNjYxLDggQEAKIAlpZiAobWFjaGluZS0+c3VzcGVuZF9wcmUpCiAJCW1hY2hpbmUtPnN1c3BlbmRfcHJlKHBkZXYsIHN0YXRlKTsKIAotCWZvcihpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5zdXNwZW5kICYmIGNwdV9kYWktPnR5cGUgIT0gU05EX1NPQ19EQUlfQUM5NykKIAkJCWNwdV9kYWktPnN1c3BlbmQocGRldiwgY3B1X2RhaSk7CiAJCWlmIChwbGF0Zm9ybS0+c3VzcGVuZCkKQEAgLTY2Miw5ICs2NzEsOSBAQAogCiAJLyogY2xvc2UgYW55IHdhaXRpbmcgc3RyZWFtcyBhbmQgc2F2ZSBzdGF0ZSAqLwogCXJ1bl9kZWxheWVkX3dvcmsoJnNvY2Rldi0+ZGVsYXllZF93b3JrKTsKLQljb2RlYy0+c3VzcGVuZF9kYXBtX3N0YXRlID0gY29kZWMtPmRhcG1fc3RhdGU7CisJY29kZWMtPnN1c3BlbmRfYmlhc19sZXZlbCA9IGNvZGVjLT5iaWFzX2xldmVsOwogCi0JZm9yKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7CiAJCWNoYXIgKnN0cmVhbSA9IGNvZGVjLT5kYWlbaV0ucGxheWJhY2suc3RyZWFtX25hbWU7CiAJCWlmIChzdHJlYW0gIT0gTlVMTCkKIAkJCXNuZF9zb2NfZGFwbV9zdHJlYW1fZXZlbnQoY29kZWMsIHN0cmVhbSwKQEAgLTY3OCw4ICs2ODcsOCBAQAogCWlmIChjb2RlY19kZXYtPnN1c3BlbmQpCiAJCWNvZGVjX2Rldi0+c3VzcGVuZChwZGV2LCBzdGF0ZSk7CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnN1c3BlbmQgJiYgY3B1X2RhaS0+dHlwZSA9PSBTTkRfU09DX0RBSV9BQzk3KQogCQkJY3B1X2RhaS0+c3VzcGVuZChwZGV2LCBjcHVfZGFpKTsKIAl9CkBAIC02OTAsMjEgKzY5OSwzMiBAQAogCXJldHVybiAwOwogfQogCi0vKiBwb3dlcnMgdXAgYXVkaW8gc3Vic3lzdGVtIGFmdGVyIGEgc3VzcGVuZCAqLwotc3RhdGljIGludCBzb2NfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCisvKiBkZWZlcnJlZCByZXN1bWUgd29yaywgc28gcmVzdW1lIGNhbiBjb21wbGV0ZSBiZWZvcmUgd2UgZmluaXNoZWQKKyAqIHNldHRpbmcgb3VyIGNvZGVjIGJhY2sgdXAsIHdoaWNoIGNhbiBiZSB2ZXJ5IHNsb3cgb24gSTJDCisgKi8KK3N0YXRpYyB2b2lkIHNvY19yZXN1bWVfZGVmZXJyZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewotIAlzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotIAlzdHJ1Y3Qgc25kX3NvY19tYWNoaW5lICptYWNoaW5lID0gc29jZGV2LT5tYWNoaW5lOwotIAlzdHJ1Y3Qgc25kX3NvY19wbGF0Zm9ybSAqcGxhdGZvcm0gPSBzb2NkZXYtPnBsYXRmb3JtOwotIAlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2UgKmNvZGVjX2RldiA9IHNvY2Rldi0+Y29kZWNfZGV2OworCXN0cnVjdCBzbmRfc29jX2RldmljZSAqc29jZGV2ID0gY29udGFpbmVyX29mKHdvcmssCisJCQkJCQkgICAgIHN0cnVjdCBzbmRfc29jX2RldmljZSwKKwkJCQkJCSAgICAgZGVmZXJyZWRfcmVzdW1lX3dvcmspOworCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7CisJc3RydWN0IHNuZF9zb2NfcGxhdGZvcm0gKnBsYXRmb3JtID0gc29jZGV2LT5wbGF0Zm9ybTsKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kZXZpY2UgKmNvZGVjX2RldiA9IHNvY2Rldi0+Y29kZWNfZGV2OwogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7CisJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShzb2NkZXYtPmRldik7CiAJaW50IGk7CiAKKwkvKiBvdXIgcG93ZXIgc3RhdGUgaXMgc3RpbGwgU05EUlZfQ1RMX1BPV0VSX0QzaG90IGZyb20gc3VzcGVuZCB0aW1lLAorCSAqIHNvIHVzZXJzcGFjZSBhcHBzIGFyZSBibG9ja2VkIGZyb20gdG91Y2hpbmcgdXMKKwkgKi8KKworCWRldl9pbmZvKHNvY2Rldi0+ZGV2LCAic3RhcnRpbmcgcmVzdW1lIHdvcmtcbiIpOworCiAJaWYgKG1hY2hpbmUtPnJlc3VtZV9wcmUpCiAJCW1hY2hpbmUtPnJlc3VtZV9wcmUocGRldik7CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnJlc3VtZSAmJiBjcHVfZGFpLT50eXBlID09IFNORF9TT0NfREFJX0FDOTcpCiAJCQljcHVfZGFpLT5yZXN1bWUocGRldiwgY3B1X2RhaSk7CiAJfQpAQCAtNzEyLDggKzczMiw4IEBACiAJaWYgKGNvZGVjX2Rldi0+cmVzdW1lKQogCQljb2RlY19kZXYtPnJlc3VtZShwZGV2KTsKIAotCWZvcihpID0gMDsgaSA8IGNvZGVjLT5udW1fZGFpOyBpKyspIHsKLQkJY2hhciogc3RyZWFtID0gY29kZWMtPmRhaVtpXS5wbGF5YmFjay5zdHJlYW1fbmFtZTsKKwlmb3IgKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgeworCQljaGFyICpzdHJlYW0gPSBjb2RlYy0+ZGFpW2ldLnBsYXliYWNrLnN0cmVhbV9uYW1lOwogCQlpZiAoc3RyZWFtICE9IE5VTEwpCiAJCQlzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50KGNvZGVjLCBzdHJlYW0sCiAJCQkJU05EX1NPQ19EQVBNX1NUUkVBTV9SRVNVTUUpOwpAQCAtNzIzLDE1ICs3NDMsMTUgQEAKIAkJCQlTTkRfU09DX0RBUE1fU1RSRUFNX1JFU1VNRSk7CiAJfQogCi0JLyogdW5tdXRlIGFueSBhY3RpdmUgREFDJ3MgKi8KLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jb2RlY19kYWkgKmRhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNvZGVjX2RhaTsKKwkvKiB1bm11dGUgYW55IGFjdGl2ZSBEQUNzICovCisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpOwogCQlpZiAoZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZSAmJiBkYWktPnBsYXliYWNrLmFjdGl2ZSkKIAkJCWRhaS0+ZGFpX29wcy5kaWdpdGFsX211dGUoZGFpLCAwKTsKIAl9CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwlmb3IgKGkgPSAwOyBpIDwgbWFjaGluZS0+bnVtX2xpbmtzOyBpKyspIHsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnJlc3VtZSAmJiBjcHVfZGFpLT50eXBlICE9IFNORF9TT0NfREFJX0FDOTcpCiAJCQljcHVfZGFpLT5yZXN1bWUocGRldiwgY3B1X2RhaSk7CiAJCWlmIChwbGF0Zm9ybS0+cmVzdW1lKQpAQCAtNzQxLDYgKzc2MSwyMiBAQAogCWlmIChtYWNoaW5lLT5yZXN1bWVfcG9zdCkKIAkJbWFjaGluZS0+cmVzdW1lX3Bvc3QocGRldik7CiAKKwlkZXZfaW5mbyhzb2NkZXYtPmRldiwgInJlc3VtZSB3b3JrIGNvbXBsZXRlZFxuIik7CisKKwkvKiB1c2Vyc3BhY2UgY2FuIGFjY2VzcyB1cyBub3cgd2UgYXJlIGJhY2sgYXMgd2Ugd2VyZSBiZWZvcmUgKi8KKwlzbmRfcG93ZXJfY2hhbmdlX3N0YXRlKGNvZGVjLT5jYXJkLCBTTkRSVl9DVExfUE9XRVJfRDApOworfQorCisvKiBwb3dlcnMgdXAgYXVkaW8gc3Vic3lzdGVtIGFmdGVyIGEgc3VzcGVuZCAqLworc3RhdGljIGludCBzb2NfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHNuZF9zb2NfZGV2aWNlICpzb2NkZXYgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWRldl9pbmZvKHNvY2Rldi0+ZGV2LCAic2NoZWR1bGluZyByZXN1bWUgd29ya1xuIik7CisKKwlpZiAoIXNjaGVkdWxlX3dvcmsoJnNvY2Rldi0+ZGVmZXJyZWRfcmVzdW1lX3dvcmspKQorCQlkZXZfZXJyKHNvY2Rldi0+ZGV2LCAid29yayBpdGVtIG1heSBiZSBsb3N0XG4iKTsKKwogCXJldHVybiAwOwogfQogCkBAIC03NjAsMzMgKzc5NiwzOCBAQAogCiAJaWYgKG1hY2hpbmUtPnByb2JlKSB7CiAJCXJldCA9IG1hY2hpbmUtPnByb2JlKHBkZXYpOwotCQlpZihyZXQgPCAwKQorCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7Ci0JCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOworCQlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNwdV9kYWkgPSBtYWNoaW5lLT5kYWlfbGlua1tpXS5jcHVfZGFpOwogCQlpZiAoY3B1X2RhaS0+cHJvYmUpIHsKLQkJCXJldCA9IGNwdV9kYWktPnByb2JlKHBkZXYpOwotCQkJaWYocmV0IDwgMCkKKwkJCXJldCA9IGNwdV9kYWktPnByb2JlKHBkZXYsIGNwdV9kYWkpOworCQkJaWYgKHJldCA8IDApCiAJCQkJZ290byBjcHVfZGFpX2VycjsKIAkJfQogCX0KIAogCWlmIChjb2RlY19kZXYtPnByb2JlKSB7CiAJCXJldCA9IGNvZGVjX2Rldi0+cHJvYmUocGRldik7Ci0JCWlmKHJldCA8IDApCisJCWlmIChyZXQgPCAwKQogCQkJZ290byBjcHVfZGFpX2VycjsKIAl9CiAKIAlpZiAocGxhdGZvcm0tPnByb2JlKSB7CiAJCXJldCA9IHBsYXRmb3JtLT5wcm9iZShwZGV2KTsKLQkJaWYocmV0IDwgMCkKKwkJaWYgKHJldCA8IDApCiAJCQlnb3RvIHBsYXRmb3JtX2VycjsKIAl9CiAKIAkvKiBEQVBNIHN0cmVhbSB3b3JrICovCiAJSU5JVF9ERUxBWUVEX1dPUksoJnNvY2Rldi0+ZGVsYXllZF93b3JrLCBjbG9zZV9kZWxheWVkX3dvcmspOworI2lmZGVmIENPTkZJR19QTQorCS8qIGRlZmVycmVkIHJlc3VtZSB3b3JrICovCisJSU5JVF9XT1JLKCZzb2NkZXYtPmRlZmVycmVkX3Jlc3VtZV93b3JrLCBzb2NfcmVzdW1lX2RlZmVycmVkKTsKKyNlbmRpZgorCiAJcmV0dXJuIDA7CiAKIHBsYXRmb3JtX2VycjoKQEAgLTc5NSw5ICs4MzYsOSBAQAogCiBjcHVfZGFpX2VycjoKIAlmb3IgKGktLTsgaSA+PSAwOyBpLS0pIHsKLQkJc3RydWN0IHNuZF9zb2NfY3B1X2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CisJCXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IG1hY2hpbmUtPmRhaV9saW5rW2ldLmNwdV9kYWk7CiAJCWlmIChjcHVfZGFpLT5yZW1vdmUpCi0JCQljcHVfZGFpLT5yZW1vdmUocGRldik7CisJCQljcHVfZGFpLT5yZW1vdmUocGRldiwgY3B1X2RhaSk7CiAJfQogCiAJaWYgKG1hY2hpbmUtPnJlbW92ZSkKQEAgLTgyNCw5ICs4NjUsOSBAQAogCQljb2RlY19kZXYtPnJlbW92ZShwZGV2KTsKIAogCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewotCQlzdHJ1Y3Qgc25kX3NvY19jcHVfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKKwkJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gbWFjaGluZS0+ZGFpX2xpbmtbaV0uY3B1X2RhaTsKIAkJaWYgKGNwdV9kYWktPnJlbW92ZSkKLQkJCWNwdV9kYWktPnJlbW92ZShwZGV2KTsKKwkJCWNwdV9kYWktPnJlbW92ZShwZGV2LCBjcHVfZGFpKTsKIAl9CiAKIAlpZiAobWFjaGluZS0+cmVtb3ZlKQpAQCAtODUyLDggKzg5Myw4IEBACiAJc3RydWN0IHNuZF9zb2NfZGFpX2xpbmsgKmRhaV9saW5rLCBpbnQgbnVtKQogewogCXN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYyA9IHNvY2Rldi0+Y29kZWM7Ci0Jc3RydWN0IHNuZF9zb2NfY29kZWNfZGFpICpjb2RlY19kYWkgPSBkYWlfbGluay0+Y29kZWNfZGFpOwotCXN0cnVjdCBzbmRfc29jX2NwdV9kYWkgKmNwdV9kYWkgPSBkYWlfbGluay0+Y3B1X2RhaTsKKwlzdHJ1Y3Qgc25kX3NvY19kYWkgKmNvZGVjX2RhaSA9IGRhaV9saW5rLT5jb2RlY19kYWk7CisJc3RydWN0IHNuZF9zb2NfZGFpICpjcHVfZGFpID0gZGFpX2xpbmstPmNwdV9kYWk7CiAJc3RydWN0IHNuZF9zb2NfcGNtX3J1bnRpbWUgKnJ0ZDsKIAlzdHJ1Y3Qgc25kX3BjbSAqcGNtOwogCWNoYXIgbmV3X25hbWVbNjRdOwpAQCAtODY4LDcgKzkwOSw3IEBACiAJY29kZWNfZGFpLT5jb2RlYyA9IHNvY2Rldi0+Y29kZWM7CiAKIAkvKiBjaGVjayBjbGllbnQgYW5kIGludGVyZmFjZSBodyBjYXBhYmlsaXRpZXMgKi8KLQlzcHJpbnRmKG5ld19uYW1lLCAiJXMgJXMtJXMtJWQiLGRhaV9saW5rLT5zdHJlYW1fbmFtZSwgY29kZWNfZGFpLT5uYW1lLAorCXNwcmludGYobmV3X25hbWUsICIlcyAlcy0lcy0lZCIsIGRhaV9saW5rLT5zdHJlYW1fbmFtZSwgY29kZWNfZGFpLT5uYW1lLAogCQlnZXRfZGFpX25hbWUoY3B1X2RhaS0+dHlwZSksIG51bSk7CiAKIAlpZiAoY29kZWNfZGFpLT5wbGF5YmFjay5jaGFubmVsc19taW4pCkBAIC04NzksNyArOTIwLDggQEAKIAlyZXQgPSBzbmRfcGNtX25ldyhjb2RlYy0+Y2FyZCwgbmV3X25hbWUsIGNvZGVjLT5wY21fZGV2cysrLCBwbGF5YmFjaywKIAkJY2FwdHVyZSwgJnBjbSk7CiAJaWYgKHJldCA8IDApIHsKLQkJcHJpbnRrKEtFUk5fRVJSICJhc29jOiBjYW4ndCBjcmVhdGUgcGNtIGZvciBjb2RlYyAlc1xuIiwgY29kZWMtPm5hbWUpOworCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGNhbid0IGNyZWF0ZSBwY20gZm9yIGNvZGVjICVzXG4iLAorCQkJY29kZWMtPm5hbWUpOwogCQlrZnJlZShydGQpOwogCQlyZXR1cm4gcmV0OwogCX0KQEAgLTkyOCw4ICs5NzAsOSBAQAogCQlzdGVwID0gY29kZWMtPnJlZ19jYWNoZV9zdGVwOwogCiAJY291bnQgKz0gc3ByaW50ZihidWYsICIlcyByZWdpc3RlcnNcbiIsIGNvZGVjLT5uYW1lKTsKLQlmb3IoaSA9IDA7IGkgPCBjb2RlYy0+cmVnX2NhY2hlX3NpemU7IGkgKz0gc3RlcCkKLQkJY291bnQgKz0gc3ByaW50ZihidWYgKyBjb3VudCwgIiUyeDogJTR4XG4iLCBpLCBjb2RlYy0+cmVhZChjb2RlYywgaSkpOworCWZvciAoaSA9IDA7IGkgPCBjb2RlYy0+cmVnX2NhY2hlX3NpemU7IGkgKz0gc3RlcCkKKwkJY291bnQgKz0gc3ByaW50ZihidWYgKyBjb3VudCwgIiUyeDogJTR4XG4iLCBpLAorCQkJY29kZWMtPnJlYWQoY29kZWMsIGkpKTsKIAogCXJldHVybiBjb3VudDsKIH0KQEAgLTEwNzIsNyArMTExNSw3IEBACiAJc3RybmNweShjb2RlYy0+Y2FyZC0+ZHJpdmVyLCBjb2RlYy0+bmFtZSwgc2l6ZW9mKGNvZGVjLT5jYXJkLT5kcml2ZXIpKTsKIAogCS8qIGNyZWF0ZSB0aGUgcGNtcyAqLwotCWZvcihpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IG1hY2hpbmUtPm51bV9saW5rczsgaSsrKSB7CiAJCXJldCA9IHNvY19uZXdfcGNtKHNvY2RldiwgJm1hY2hpbmUtPmRhaV9saW5rW2ldLCBpKTsKIAkJaWYgKHJldCA8IDApIHsKIAkJCXByaW50ayhLRVJOX0VSUiAiYXNvYzogY2FuJ3QgY3JlYXRlIHBjbSAlc1xuIiwKQEAgLTExMDIsNyArMTE0NSw3IEBACiAJc3RydWN0IHNuZF9zb2NfbWFjaGluZSAqbWFjaGluZSA9IHNvY2Rldi0+bWFjaGluZTsKIAlpbnQgcmV0ID0gMCwgaSwgYWM5NyA9IDAsIGVyciA9IDA7CiAKLQlmb3IoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBtYWNoaW5lLT5udW1fbGlua3M7IGkrKykgewogCQlpZiAoc29jZGV2LT5tYWNoaW5lLT5kYWlfbGlua1tpXS5pbml0KSB7CiAJCQllcnIgPSBzb2NkZXYtPm1hY2hpbmUtPmRhaV9saW5rW2ldLmluaXQoY29kZWMpOwogCQkJaWYgKGVyciA8IDApIHsKQEAgLTExMTEsNyArMTE1NCw3IEBACiAJCQkJY29udGludWU7CiAJCQl9CiAJCX0KLQkJaWYgKHNvY2Rldi0+bWFjaGluZS0+ZGFpX2xpbmtbaV0uY29kZWNfZGFpLT50eXBlID09IAorCQlpZiAoc29jZGV2LT5tYWNoaW5lLT5kYWlfbGlua1tpXS5jb2RlY19kYWktPnR5cGUgPT0KIAkJCVNORF9TT0NfREFJX0FDOTdfQlVTKQogCQkJYWM5NyA9IDE7CiAJfQpAQCAtMTEyMiw3ICsxMTY1LDcgQEAKIAogCXJldCA9IHNuZF9jYXJkX3JlZ2lzdGVyKGNvZGVjLT5jYXJkKTsKIAlpZiAocmV0IDwgMCkgewotCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGZhaWxlZCB0byByZWdpc3RlciBzb3VuZGNhcmQgZm9yIGNvZGVjICVzXG4iLAorCQlwcmludGsoS0VSTl9FUlIgImFzb2M6IGZhaWxlZCB0byByZWdpc3RlciBzb3VuZGNhcmQgZm9yICVzXG4iLAogCQkJCWNvZGVjLT5uYW1lKTsKIAkJZ290byBvdXQ7CiAJfQpAQCAtMTE0Niw3ICsxMTg5LDcgQEAKIAogCWVyciA9IGRldmljZV9jcmVhdGVfZmlsZShzb2NkZXYtPmRldiwgJmRldl9hdHRyX2NvZGVjX3JlZyk7CiAJaWYgKGVyciA8IDApCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgImFzb2M6IGZhaWxlZCB0byBhZGQgY29kZWMgc3lzZnMgZW50cmllc1xuIik7CisJCXByaW50ayhLRVJOX1dBUk5JTkcgImFzb2M6IGZhaWxlZCB0byBhZGQgY29kZWMgc3lzZnMgZmlsZXNcbiIpOwogCiAJbXV0ZXhfdW5sb2NrKCZjb2RlYy0+bXV0ZXgpOwogCkBAIC0xMTY2LDEzICsxMjA5LDEzIEBACiB7CiAJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc29jZGV2LT5jb2RlYzsKICNpZmRlZiBDT05GSUdfU05EX1NPQ19BQzk3X0JVUwotCXN0cnVjdCBzbmRfc29jX2NvZGVjX2RhaSAqY29kZWNfZGFpOworCXN0cnVjdCBzbmRfc29jX2RhaSAqY29kZWNfZGFpOwogCWludCBpOwogI2VuZGlmCiAKIAltdXRleF9sb2NrKCZjb2RlYy0+bXV0ZXgpOwogI2lmZGVmIENPTkZJR19TTkRfU09DX0FDOTdfQlVTCi0JZm9yKGkgPSAwOyBpIDwgY29kZWMtPm51bV9kYWk7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBjb2RlYy0+bnVtX2RhaTsgaSsrKSB7CiAJCWNvZGVjX2RhaSA9ICZjb2RlYy0+ZGFpW2ldOwogCQlpZiAoY29kZWNfZGFpLT50eXBlID09IFNORF9TT0NfREFJX0FDOTdfQlVTICYmIGNvZGVjLT5hYzk3KSB7CiAJCQlzb2NfYWM5N19kZXZfdW5yZWdpc3Rlcihjb2RlYyk7CkBAIC0xMjgyLDcgKzEzMjUsOCBAQAogCWZvciAoYml0bWFzayA9IDE7IGJpdG1hc2sgPCBlLT5tYXNrOyBiaXRtYXNrIDw8PSAxKQogCQk7CiAJdmFsID0gc25kX3NvY19yZWFkKGNvZGVjLCBlLT5yZWcpOwotCXVjb250cm9sLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW1bMF0gPSAodmFsID4+IGUtPnNoaWZ0X2wpICYgKGJpdG1hc2sgLSAxKTsKKwl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdCisJCT0gKHZhbCA+PiBlLT5zaGlmdF9sKSAmIChiaXRtYXNrIC0gMSk7CiAJaWYgKGUtPnNoaWZ0X2wgIT0gZS0+c2hpZnRfcikKIAkJdWNvbnRyb2wtPnZhbHVlLmVudW1lcmF0ZWQuaXRlbVsxXSA9CiAJCQkodmFsID4+IGUtPnNoaWZ0X3IpICYgKGJpdG1hc2sgLSAxKTsKQEAgLTE1NzYsNyArMTYyMCw4IEBACiAJdmFsID0gdmFsIDw8IHNoaWZ0OwogCXZhbDIgPSB2YWwyIDw8IHNoaWZ0OwogCi0JaWYgKChlcnIgPSBzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCByZWcsIHZhbF9tYXNrLCB2YWwpKSA8IDApCisJZXJyID0gc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgcmVnLCB2YWxfbWFzaywgdmFsKTsKKwlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKIAogCWVyciA9IHNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIHJlZzIsIHZhbF9tYXNrLCB2YWwyKTsKQEAgLTE1ODQsNiArMTYyOSwyMDQgQEAKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfcHV0X3ZvbHN3XzJyKTsKIAorLyoqCisgKiBzbmRfc29jX2luZm9fdm9sc3dfczggLSBzaWduZWQgbWl4ZXIgaW5mbyBjYWxsYmFjaworICogQGtjb250cm9sOiBtaXhlciBjb250cm9sCisgKiBAdWluZm86IGNvbnRyb2wgZWxlbWVudCBpbmZvcm1hdGlvbgorICoKKyAqIENhbGxiYWNrIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgYSBzaWduZWQgbWl4ZXIgY29udHJvbC4KKyAqCisgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MuCisgKi8KK2ludCBzbmRfc29jX2luZm9fdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV9pbmZvICp1aW5mbykKK3sKKwlpbnQgbWF4ID0gKHNpZ25lZCBjaGFyKSgoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMTYpICYgMHhmZik7CisJaW50IG1pbiA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmYpOworCisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxFTV9UWVBFX0lOVEVHRVI7CisJdWluZm8tPmNvdW50ID0gMjsKKwl1aW5mby0+dmFsdWUuaW50ZWdlci5taW4gPSAwOworCXVpbmZvLT52YWx1ZS5pbnRlZ2VyLm1heCA9IG1heC1taW47CisJcmV0dXJuIDA7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2luZm9fdm9sc3dfczgpOworCisvKioKKyAqIHNuZF9zb2NfZ2V0X3ZvbHN3X3M4IC0gc2lnbmVkIG1peGVyIGdldCBjYWxsYmFjaworICogQGtjb250cm9sOiBtaXhlciBjb250cm9sCisgKiBAdWluZm86IGNvbnRyb2wgZWxlbWVudCBpbmZvcm1hdGlvbgorICoKKyAqIENhbGxiYWNrIHRvIGdldCB0aGUgdmFsdWUgb2YgYSBzaWduZWQgbWl4ZXIgY29udHJvbC4KKyAqCisgKiBSZXR1cm5zIDAgZm9yIHN1Y2Nlc3MuCisgKi8KK2ludCBzbmRfc29jX2dldF92b2xzd19zOChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKKwlzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzbmRfa2NvbnRyb2xfY2hpcChrY29udHJvbCk7CisJaW50IHJlZyA9IGtjb250cm9sLT5wcml2YXRlX3ZhbHVlICYgMHhmZjsKKwlpbnQgbWluID0gKHNpZ25lZCBjaGFyKSgoa2NvbnRyb2wtPnByaXZhdGVfdmFsdWUgPj4gMjQpICYgMHhmZik7CisJaW50IHZhbCA9IHNuZF9zb2NfcmVhZChjb2RlYywgcmVnKTsKKworCXVjb250cm9sLT52YWx1ZS5pbnRlZ2VyLnZhbHVlWzBdID0KKwkJKChzaWduZWQgY2hhcikodmFsICYgMHhmZikpLW1pbjsKKwl1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSA9CisJCSgoc2lnbmVkIGNoYXIpKCh2YWwgPj4gOCkgJiAweGZmKSktbWluOworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19nZXRfdm9sc3dfczgpOworCisvKioKKyAqIHNuZF9zb2NfcHV0X3ZvbHN3X3NnbiAtIHNpZ25lZCBtaXhlciBwdXQgY2FsbGJhY2sKKyAqIEBrY29udHJvbDogbWl4ZXIgY29udHJvbAorICogQHVpbmZvOiBjb250cm9sIGVsZW1lbnQgaW5mb3JtYXRpb24KKyAqCisgKiBDYWxsYmFjayB0byBzZXQgdGhlIHZhbHVlIG9mIGEgc2lnbmVkIG1peGVyIGNvbnRyb2wuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgorICovCitpbnQgc25kX3NvY19wdXRfdm9sc3dfczgoc3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wpCit7CisJc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjID0gc25kX2tjb250cm9sX2NoaXAoa2NvbnRyb2wpOworCWludCByZWcgPSBrY29udHJvbC0+cHJpdmF0ZV92YWx1ZSAmIDB4ZmY7CisJaW50IG1pbiA9IChzaWduZWQgY2hhcikoKGtjb250cm9sLT5wcml2YXRlX3ZhbHVlID4+IDI0KSAmIDB4ZmYpOworCXVuc2lnbmVkIHNob3J0IHZhbDsKKworCXZhbCA9ICh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVswXSttaW4pICYgMHhmZjsKKwl2YWwgfD0gKCh1Y29udHJvbC0+dmFsdWUuaW50ZWdlci52YWx1ZVsxXSttaW4pICYgMHhmZikgPDwgODsKKworCXJldHVybiBzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCByZWcsIDB4ZmZmZiwgdmFsKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfcHV0X3ZvbHN3X3M4KTsKKworLyoqCisgKiBzbmRfc29jX2RhaV9zZXRfc3lzY2xrIC0gY29uZmlndXJlIERBSSBzeXN0ZW0gb3IgbWFzdGVyIGNsb2NrLgorICogQGRhaTogREFJCisgKiBAY2xrX2lkOiBEQUkgc3BlY2lmaWMgY2xvY2sgSUQKKyAqIEBmcmVxOiBuZXcgY2xvY2sgZnJlcXVlbmN5IGluIEh6CisgKiBAZGlyOiBuZXcgY2xvY2sgZGlyZWN0aW9uIC0gaW5wdXQvb3V0cHV0LgorICoKKyAqIENvbmZpZ3VyZXMgdGhlIERBSSBtYXN0ZXIgKE1DTEspIG9yIHN5c3RlbSAoU1lTQ0xLKSBjbG9ja2luZy4KKyAqLworaW50IHNuZF9zb2NfZGFpX3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBjbGtfaWQsCisJdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfc3lzY2xrKQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF9zeXNjbGsoZGFpLCBjbGtfaWQsIGZyZXEsIGRpcik7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF9zeXNjbGspOworCisvKioKKyAqIHNuZF9zb2NfZGFpX3NldF9jbGtkaXYgLSBjb25maWd1cmUgREFJIGNsb2NrIGRpdmlkZXJzLgorICogQGRhaTogREFJCisgKiBAY2xrX2lkOiBEQUkgc3BlY2lmaWMgY2xvY2sgZGl2aWRlciBJRAorICogQGRpdjogbmV3IGNsb2NrIGRpdmlzb3IuCisgKgorICogQ29uZmlndXJlcyB0aGUgY2xvY2sgZGl2aWRlcnMuIFRoaXMgaXMgdXNlZCB0byBkZXJpdmUgdGhlIGJlc3QgREFJIGJpdCBhbmQKKyAqIGZyYW1lIGNsb2NrcyBmcm9tIHRoZSBzeXN0ZW0gb3IgbWFzdGVyIGNsb2NrLiBJdCdzIGJlc3QgdG8gc2V0IHRoZSBEQUkgYml0CisgKiBhbmQgZnJhbWUgY2xvY2tzIGFzIGxvdyBhcyBwb3NzaWJsZSB0byBzYXZlIHN5c3RlbSBwb3dlci4KKyAqLworaW50IHNuZF9zb2NfZGFpX3NldF9jbGtkaXYoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksCisJaW50IGRpdl9pZCwgaW50IGRpdikKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9jbGtkaXYpCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X2Nsa2RpdihkYWksIGRpdl9pZCwgZGl2KTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfc2V0X2Nsa2Rpdik7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X3BsbCAtIGNvbmZpZ3VyZSBEQUkgUExMLgorICogQGRhaTogREFJCisgKiBAcGxsX2lkOiBEQUkgc3BlY2lmaWMgUExMIElECisgKiBAZnJlcV9pbjogUExMIGlucHV0IGNsb2NrIGZyZXF1ZW5jeSBpbiBIegorICogQGZyZXFfb3V0OiByZXF1ZXN0ZWQgUExMIG91dHB1dCBjbG9jayBmcmVxdWVuY3kgaW4gSHoKKyAqCisgKiBDb25maWd1cmVzIGFuZCBlbmFibGVzIFBMTCB0byBnZW5lcmF0ZSBvdXRwdXQgY2xvY2sgYmFzZWQgb24gaW5wdXQgY2xvY2suCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfcGxsKHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLAorCWludCBwbGxfaWQsIHVuc2lnbmVkIGludCBmcmVxX2luLCB1bnNpZ25lZCBpbnQgZnJlcV9vdXQpCit7CisJaWYgKGRhaS0+ZGFpX29wcy5zZXRfcGxsKQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLnNldF9wbGwoZGFpLCBwbGxfaWQsIGZyZXFfaW4sIGZyZXFfb3V0KTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfc2V0X3BsbCk7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X2ZtdCAtIGNvbmZpZ3VyZSBEQUkgaGFyZHdhcmUgYXVkaW8gZm9ybWF0LgorICogQGRhaTogREFJCisgKiBAY2xrX2lkOiBEQUkgc3BlY2lmaWMgY2xvY2sgSUQKKyAqIEBmbXQ6IFNORF9TT0NfREFJRk1UXyBmb3JtYXQgdmFsdWUuCisgKgorICogQ29uZmlndXJlcyB0aGUgREFJIGhhcmR3YXJlIGZvcm1hdCBhbmQgY2xvY2tpbmcuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfZm10KHN0cnVjdCBzbmRfc29jX2RhaSAqZGFpLCB1bnNpZ25lZCBpbnQgZm10KQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X2ZtdCkKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfZm10KGRhaSwgZm10KTsKKwllbHNlCisJCXJldHVybiAtRUlOVkFMOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYWlfc2V0X2ZtdCk7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X3RkbV9zbG90IC0gY29uZmlndXJlIERBSSBURE0uCisgKiBAZGFpOiBEQUkKKyAqIEBtYXNrOiBEQUkgc3BlY2lmaWMgbWFzayByZXByZXNlbnRpbmcgdXNlZCBzbG90cy4KKyAqIEBzbG90czogTnVtYmVyIG9mIHNsb3RzIGluIHVzZS4KKyAqCisgKiBDb25maWd1cmVzIGEgREFJIGZvciBURE0gb3BlcmF0aW9uLiBCb3RoIG1hc2sgYW5kIHNsb3RzIGFyZSBjb2RlYyBhbmQgREFJCisgKiBzcGVjaWZpYy4KKyAqLworaW50IHNuZF9zb2NfZGFpX3NldF90ZG1fc2xvdChzdHJ1Y3Qgc25kX3NvY19kYWkgKmRhaSwKKwl1bnNpZ25lZCBpbnQgbWFzaywgaW50IHNsb3RzKQoreworCWlmIChkYWktPmRhaV9vcHMuc2V0X3N5c2NsaykKKwkJcmV0dXJuIGRhaS0+ZGFpX29wcy5zZXRfdGRtX3Nsb3QoZGFpLCBtYXNrLCBzbG90cyk7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZBTDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFpX3NldF90ZG1fc2xvdCk7CisKKy8qKgorICogc25kX3NvY19kYWlfc2V0X3RyaXN0YXRlIC0gY29uZmlndXJlIERBSSBzeXN0ZW0gb3IgbWFzdGVyIGNsb2NrLgorICogQGRhaTogREFJCisgKiBAdHJpc3RhdGU6IHRyaXN0YXRlIGVuYWJsZQorICoKKyAqIFRyaXN0YXRlcyB0aGUgREFJIHNvIHRoYXQgb3RoZXJzIGNhbiB1c2UgaXQuCisgKi8KK2ludCBzbmRfc29jX2RhaV9zZXRfdHJpc3RhdGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCB0cmlzdGF0ZSkKK3sKKwlpZiAoZGFpLT5kYWlfb3BzLnNldF9zeXNjbGspCisJCXJldHVybiBkYWktPmRhaV9vcHMuc2V0X3RyaXN0YXRlKGRhaSwgdHJpc3RhdGUpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9zZXRfdHJpc3RhdGUpOworCisvKioKKyAqIHNuZF9zb2NfZGFpX2RpZ2l0YWxfbXV0ZSAtIGNvbmZpZ3VyZSBEQUkgc3lzdGVtIG9yIG1hc3RlciBjbG9jay4KKyAqIEBkYWk6IERBSQorICogQG11dGU6IG11dGUgZW5hYmxlCisgKgorICogTXV0ZXMgdGhlIERBSSBEQUMuCisgKi8KK2ludCBzbmRfc29jX2RhaV9kaWdpdGFsX211dGUoc3RydWN0IHNuZF9zb2NfZGFpICpkYWksIGludCBtdXRlKQoreworCWlmIChkYWktPmRhaV9vcHMuZGlnaXRhbF9tdXRlKQorCQlyZXR1cm4gZGFpLT5kYWlfb3BzLmRpZ2l0YWxfbXV0ZShkYWksIG11dGUpOworCWVsc2UKKwkJcmV0dXJuIC1FSU5WQUw7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhaV9kaWdpdGFsX211dGUpOworCiBzdGF0aWMgaW50IF9fZGV2aW5pdCBzbmRfc29jX2luaXQodm9pZCkKIHsKIAlwcmludGsoS0VSTl9JTkZPICJBU29DIHZlcnNpb24gJXNcbiIsIFNORF9TT0NfVkVSU0lPTik7CkBAIC0xNTkyLDcgKzE4MzUsNyBAQAogCiBzdGF0aWMgdm9pZCBzbmRfc29jX2V4aXQodm9pZCkKIHsKLSAJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnNvY19kcml2ZXIpOworCXBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZzb2NfZHJpdmVyKTsKIH0KIAogbW9kdWxlX2luaXQoc25kX3NvY19pbml0KTsKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zb2MtZGFwbS5jIGIvc291bmQvc29jL3NvYy1kYXBtLmMKaW5kZXggYWYzMzI2Yy4uMmM4NzA2MSAxMDA2NDQKLS0tIGEvc291bmQvc29jL3NvYy1kYXBtLmMKKysrIGIvc291bmQvc29jL3NvYy1kYXBtLmMKQEAgLTEwLDExICsxMCw2IEBACiAgKiAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCiAgKiAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAqCi0gKiAgUmV2aXNpb24gaGlzdG9yeQotICogICAgMTJ0aCBBdWcgMjAwNSAgIEluaXRpYWwgdmVyc2lvbi4KLSAqICAgIDI1dGggT2N0IDIwMDUgICBJbXBsZW1lbnRlZCBwYXRoIHBvd2VyIGRvbWFpbi4KLSAqICAgIDE4dGggRGVjIDIwMDUgICBJbXBsZW1lbnRlZCBtYWNoaW5lIGFuZCBzdHJlYW0gbGV2ZWwgcG93ZXIgZG9tYWluLgotICoKICAqICBGZWF0dXJlczoKICAqICAgIG8gQ2hhbmdlcyBwb3dlciBzdGF0dXMgb2YgaW50ZXJuYWwgY29kZWMgYmxvY2tzIGRlcGVuZGluZyBvbiB0aGUKICAqICAgICAgZHluYW1pYyBjb25maWd1cmF0aW9uIG9mIGNvZGVjIGludGVybmFsIGF1ZGlvIHBhdGhzIGFuZCBhY3RpdmUKQEAgLTUwLDIzICs0NSwxMCBAQAogI2luY2x1ZGUgPHNvdW5kL2luaXR2YWwuaD4KIAogLyogZGVidWcgKi8KLSNkZWZpbmUgREFQTV9ERUJVRyAwCi0jaWYgREFQTV9ERUJVRworI2lmZGVmIERFQlVHCiAjZGVmaW5lIGR1bXBfZGFwbShjb2RlYywgYWN0aW9uKSBkYmdfZHVtcF9kYXBtKGNvZGVjLCBhY3Rpb24pCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikgcHJpbnRrKGZvcm1hdCwgIyMgYXJnKQogI2Vsc2UKICNkZWZpbmUgZHVtcF9kYXBtKGNvZGVjLCBhY3Rpb24pCi0jZGVmaW5lIGRiZyhmb3JtYXQsIGFyZy4uLikKLSNlbmRpZgotCi0jZGVmaW5lIFBPUF9ERUJVRyAwCi0jaWYgUE9QX0RFQlVHCi0jZGVmaW5lIFBPUF9USU1FIDUwMCAvKiA1MDAgbXNlY3MgLSBjaGFuZ2UgaWYgcG9wIGRlYnVnIGlzIHRvbyBmYXN0ICovCi0jZGVmaW5lIHBvcF93YWl0KHRpbWUpIHNjaGVkdWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxlKG1zZWNzX3RvX2ppZmZpZXModGltZSkpCi0jZGVmaW5lIHBvcF9kYmcoZm9ybWF0LCBhcmcuLi4pIHByaW50ayhmb3JtYXQsICMjIGFyZyk7IHBvcF93YWl0KFBPUF9USU1FKQotI2Vsc2UKLSNkZWZpbmUgcG9wX2RiZyhmb3JtYXQsIGFyZy4uLikKLSNkZWZpbmUgcG9wX3dhaXQodGltZSkKICNlbmRpZgogCiAvKiBkYXBtIHBvd2VyIHNlcXVlbmNlcyAtIG1ha2UgdGhpcyBwZXIgY29kZWMgaW4gdGhlIGZ1dHVyZSAqLwpAQCAtODUsNiArNjcsMjggQEAKIG1vZHVsZV9wYXJhbShkYXBtX3N0YXR1cywgaW50LCAwKTsKIE1PRFVMRV9QQVJNX0RFU0MoZGFwbV9zdGF0dXMsICJlbmFibGUgRFBNIHN5c2ZzIGVudHJpZXMiKTsKIAorc3RhdGljIHVuc2lnbmVkIGludCBwb3BfdGltZTsKKworc3RhdGljIHZvaWQgcG9wX3dhaXQodm9pZCkKK3sKKwlpZiAocG9wX3RpbWUpCisJCXNjaGVkdWxlX3RpbWVvdXRfdW5pbnRlcnJ1cHRpYmxlKG1zZWNzX3RvX2ppZmZpZXMocG9wX3RpbWUpKTsKK30KKworc3RhdGljIHZvaWQgcG9wX2RiZyhjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKwl2YV9saXN0IGFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCisJaWYgKHBvcF90aW1lKSB7CisJCXZwcmludGsoZm10LCBhcmdzKTsKKwkJcG9wX3dhaXQoKTsKKwl9CisKKwl2YV9lbmQoYXJncyk7Cit9CisKIC8qIGNyZWF0ZSBhIG5ldyBkYXBtIHdpZGdldCAqLwogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqZGFwbV9jbmV3X3dpZGdldCgKIAljb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqX3dpZGdldCkKQEAgLTIyMiwxMSArMjI2LDEyIEBACiAJY2hhbmdlID0gb2xkICE9IG5ldzsKIAlpZiAoY2hhbmdlKSB7CiAJCXBvcF9kYmcoInBvcCB0ZXN0ICVzIDogJXMgaW4gJWQgbXNcbiIsIHdpZGdldC0+bmFtZSwKLQkJCXdpZGdldC0+cG93ZXIgPyAib24iIDogIm9mZiIsIFBPUF9USU1FKTsKKwkJCXdpZGdldC0+cG93ZXIgPyAib24iIDogIm9mZiIsIHBvcF90aW1lKTsKIAkJc25kX3NvY193cml0ZShjb2RlYywgd2lkZ2V0LT5yZWcsIG5ldyk7Ci0JCXBvcF93YWl0KFBPUF9USU1FKTsKKwkJcG9wX3dhaXQoKTsKIAl9Ci0JZGJnKCJyZWcgJXggb2xkICV4IG5ldyAleCBjaGFuZ2UgJWRcbiIsIHdpZGdldC0+cmVnLCBvbGQsIG5ldywgY2hhbmdlKTsKKwlwcl9kZWJ1ZygicmVnICV4IG9sZCAleCBuZXcgJXggY2hhbmdlICVkXG4iLCB3aWRnZXQtPnJlZywKKwkJIG9sZCwgbmV3LCBjaGFuZ2UpOwogCXJldHVybiBjaGFuZ2U7CiB9CiAKQEAgLTQ0OCw2ICs0NTMsMjUgQEAKIH0KIAogLyoKKyAqIEhhbmRsZXIgZm9yIGdlbmVyaWMgcmVnaXN0ZXIgbW9kaWZpZXIgd2lkZ2V0LgorICovCitpbnQgZGFwbV9yZWdfZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKncsCisJCSAgIHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLCBpbnQgZXZlbnQpCit7CisJdW5zaWduZWQgaW50IHZhbDsKKworCWlmIChTTkRfU09DX0RBUE1fRVZFTlRfT04oZXZlbnQpKQorCQl2YWwgPSB3LT5vbl92YWw7CisJZWxzZQorCQl2YWwgPSB3LT5vZmZfdmFsOworCisJc25kX3NvY191cGRhdGVfYml0cyh3LT5jb2RlYywgLSh3LT5yZWcgKyAxKSwKKwkJCSAgICB3LT5tYXNrIDw8IHctPnNoaWZ0LCB2YWwgPDwgdy0+c2hpZnQpOworCisJcmV0dXJuIDA7Cit9CisKKy8qCiAgKiBTY2FuIGVhY2ggZGFwbSB3aWRnZXQgZm9yIGNvbXBsZXRlIGF1ZGlvIHBhdGguCiAgKiBBIGNvbXBsZXRlIHBhdGggaXMgYSByb3V0ZSB0aGF0IGhhcyB2YWxpZCBlbmRwb2ludHMgaS5lLjotCiAgKgpAQCAtNTY1LDggKzU4OSw4IEBACiAJCQkvKiBjYWxsIGFueSBwb3dlciBjaGFuZ2UgZXZlbnQgaGFuZGxlcnMgKi8KIAkJCWlmIChwb3dlcl9jaGFuZ2UpIHsKIAkJCQlpZiAody0+ZXZlbnQpIHsKLQkJCQkJZGJnKCJwb3dlciAlcyBldmVudCBmb3IgJXMgZmxhZ3MgJXhcbiIsCi0JCQkJCQl3LT5wb3dlciA/ICJvbiIgOiAib2ZmIiwgdy0+bmFtZSwgdy0+ZXZlbnRfZmxhZ3MpOworCQkJCQlwcl9kZWJ1ZygicG93ZXIgJXMgZXZlbnQgZm9yICVzIGZsYWdzICV4XG4iLAorCQkJCQkJIHctPnBvd2VyID8gIm9uIiA6ICJvZmYiLCB3LT5uYW1lLCB3LT5ldmVudF9mbGFncyk7CiAJCQkJCWlmIChwb3dlcikgewogCQkJCQkJLyogcG93ZXIgdXAgZXZlbnQgKi8KIAkJCQkJCWlmICh3LT5ldmVudF9mbGFncyAmIFNORF9TT0NfREFQTV9QUkVfUE1VKSB7CkBAIC02MDgsNyArNjMyLDcgQEAKIAlyZXR1cm4gcmV0OwogfQogCi0jaWYgREFQTV9ERUJVRworI2lmZGVmIERFQlVHCiBzdGF0aWMgdm9pZCBkYmdfZHVtcF9kYXBtKHN0cnVjdCBzbmRfc29jX2NvZGVjKiBjb2RlYywgY29uc3QgY2hhciAqYWN0aW9uKQogewogCXN0cnVjdCBzbmRfc29jX2RhcG1fd2lkZ2V0ICp3OwpAQCAtNjkzLDggKzcxNywxMCBAQAogCQkJcGF0aC0+Y29ubmVjdCA9IDA7IC8qIG9sZCBjb25uZWN0aW9uIG11c3QgYmUgcG93ZXJlZCBkb3duICovCiAJfQogCi0JaWYgKGZvdW5kKQorCWlmIChmb3VuZCkgewogCQlkYXBtX3Bvd2VyX3dpZGdldHMod2lkZ2V0LT5jb2RlYywgU05EX1NPQ19EQVBNX1NUUkVBTV9OT1ApOworCQlkdW1wX2RhcG0od2lkZ2V0LT5jb2RlYywgIm11eCBwb3dlciB1cGRhdGUiKTsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTczMCw4ICs3NTYsMTAgQEAKIAkJYnJlYWs7CiAJfQogCi0JaWYgKGZvdW5kKQorCWlmIChmb3VuZCkgewogCQlkYXBtX3Bvd2VyX3dpZGdldHMod2lkZ2V0LT5jb2RlYywgU05EX1NPQ19EQVBNX1NUUkVBTV9OT1ApOworCQlkdW1wX2RhcG0od2lkZ2V0LT5jb2RlYywgIm1peGVyIHBvd2VyIHVwZGF0ZSIpOworCX0KIAogCXJldHVybiAwOwogfQpAQCAtNzY4LDIxICs3OTYsMTggQEAKIAkJfQogCX0KIAotCXN3aXRjaChjb2RlYy0+ZGFwbV9zdGF0ZSl7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDA6Ci0JCXN0YXRlID0gIkQwIjsKKwlzd2l0Y2ggKGNvZGVjLT5iaWFzX2xldmVsKSB7CisJY2FzZSBTTkRfU09DX0JJQVNfT046CisJCXN0YXRlID0gIk9uIjsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDE6Ci0JCXN0YXRlID0gIkQxIjsKKwljYXNlIFNORF9TT0NfQklBU19QUkVQQVJFOgorCQlzdGF0ZSA9ICJQcmVwYXJlIjsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDI6Ci0JCXN0YXRlID0gIkQyIjsKKwljYXNlIFNORF9TT0NfQklBU19TVEFOREJZOgorCQlzdGF0ZSA9ICJTdGFuZGJ5IjsKIAkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNob3Q6Ci0JCXN0YXRlID0gIkQzaG90IjsKLQkJYnJlYWs7Ci0JY2FzZSBTTkRSVl9DVExfUE9XRVJfRDNjb2xkOgotCQlzdGF0ZSA9ICJEM2NvbGQiOworCWNhc2UgU05EX1NPQ19CSUFTX09GRjoKKwkJc3RhdGUgPSAiT2ZmIjsKIAkJYnJlYWs7CiAJfQogCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICJQTSBTdGF0ZTogJXNcbiIsIHN0YXRlKTsKQEAgLTc5MiwyMCArODE3LDUxIEBACiAKIHN0YXRpYyBERVZJQ0VfQVRUUihkYXBtX3dpZGdldCwgMDQ0NCwgZGFwbV93aWRnZXRfc2hvdywgTlVMTCk7CiAKKy8qIHBvcC9jbGljayBkZWxheSB0aW1lcyAqLworc3RhdGljIHNzaXplX3QgZGFwbV9wb3BfdGltZV9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKKwlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCBwb3BfdGltZSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IGRhcG1fcG9wX3RpbWVfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAorCQkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLAorCQkJCSAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQorCit7CisJdW5zaWduZWQgbG9uZyB2YWw7CisKKwlpZiAoc3RyaWN0X3N0cnRvdWwoYnVmLCAxMCwgJnZhbCkgPj0gMCkKKwkJcG9wX3RpbWUgPSB2YWw7CisJZWxzZQorCQlwcmludGsoS0VSTl9FUlIgIlVuYWJsZSB0byBwYXJzZSBwb3BfdGltZSBzZXR0aW5nXG4iKTsKKworCXJldHVybiBjb3VudDsKK30KKworc3RhdGljIERFVklDRV9BVFRSKGRhcG1fcG9wX3RpbWUsIDA3NDQsIGRhcG1fcG9wX3RpbWVfc2hvdywKKwkJICAgZGFwbV9wb3BfdGltZV9zdG9yZSk7CisKIGludCBzbmRfc29jX2RhcG1fc3lzX2FkZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiB7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoZGFwbV9zdGF0dXMpCisJaWYgKGRhcG1fc3RhdHVzKSB7CiAJCXJldCA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3dpZGdldCk7CiAKKwkJaWYgKHJldCA9PSAwKQorCQkJcmV0ID0gZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwgJmRldl9hdHRyX2RhcG1fcG9wX3RpbWUpOworCX0KKwogCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB2b2lkIHNuZF9zb2NfZGFwbV9zeXNfcmVtb3ZlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKLQlpZiAoZGFwbV9zdGF0dXMpCisJaWYgKGRhcG1fc3RhdHVzKSB7CisJCWRldmljZV9yZW1vdmVfZmlsZShkZXYsICZkZXZfYXR0cl9kYXBtX3BvcF90aW1lKTsKIAkJZGV2aWNlX3JlbW92ZV9maWxlKGRldiwgJmRldl9hdHRyX2RhcG1fd2lkZ2V0KTsKKwl9CiB9CiAKIC8qIGZyZWUgYWxsIGRhcG0gd2lkZ2V0cyBhbmQgcmVzb3VyY2VzICovCkBAIC04MjYsOCArODgyLDI1IEBACiAJfQogfQogCitzdGF0aWMgaW50IHNuZF9zb2NfZGFwbV9zZXRfcGluKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwljaGFyICpwaW4sIGludCBzdGF0dXMpCit7CisJc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnc7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHcsICZjb2RlYy0+ZGFwbV93aWRnZXRzLCBsaXN0KSB7CisJCWlmICghc3RyY21wKHctPm5hbWUsIHBpbikpIHsKKwkJCXByX2RlYnVnKCJkYXBtOiAlczogcGluICVzXG4iLCBjb2RlYy0+bmFtZSwgcGluKTsKKwkJCXctPmNvbm5lY3RlZCA9IHN0YXR1czsKKwkJCXJldHVybiAwOworCQl9CisJfQorCisJcHJfZXJyKCJkYXBtOiAlczogY29uZmlndXJpbmcgdW5rbm93biBwaW4gJXNcbiIsIGNvZGVjLT5uYW1lLCBwaW4pOworCXJldHVybiAtRUlOVkFMOworfQorCiAvKioKLSAqIHNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyAtIHNjYW4gYW5kIHBvd2VyIGRhcG0gcGF0aHMKKyAqIHNuZF9zb2NfZGFwbV9zeW5jIC0gc2NhbiBhbmQgcG93ZXIgZGFwbSBwYXRocwogICogQGNvZGVjOiBhdWRpbyBjb2RlYwogICoKICAqIFdhbGtzIGFsbCBkYXBtIGF1ZGlvIHBhdGhzIGFuZCBwb3dlcnMgd2lkZ2V0cyBhY2NvcmRpbmcgdG8gdGhlaXIKQEAgLTgzNSwyNyArOTA4LDE2IEBACiAgKgogICogUmV0dXJucyAwIGZvciBzdWNjZXNzLgogICovCi1pbnQgc25kX3NvY19kYXBtX3N5bmNfZW5kcG9pbnRzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKK2ludCBzbmRfc29jX2RhcG1fc3luYyhzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMpCiB7Ci0JcmV0dXJuIGRhcG1fcG93ZXJfd2lkZ2V0cyhjb2RlYywgU05EX1NPQ19EQVBNX1NUUkVBTV9OT1ApOworCWludCByZXQgPSBkYXBtX3Bvd2VyX3dpZGdldHMoY29kZWMsIFNORF9TT0NfREFQTV9TVFJFQU1fTk9QKTsKKwlkdW1wX2RhcG0oY29kZWMsICJzeW5jIik7CisJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9zeW5jX2VuZHBvaW50cyk7CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc3luYyk7CiAKLS8qKgotICogc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQgLSBjb25uZWN0IGRhcG0gd2lkZ2V0cwotICogQGNvZGVjOiBhdWRpbyBjb2RlYwotICogQHNpbms6IG5hbWUgb2YgdGFyZ2V0IHdpZGdldAotICogQGNvbnRyb2w6IG1peGVyIGNvbnRyb2wgbmFtZQotICogQHNvdXJjZTogbmFtZSBvZiBzb3VyY2UgbmFtZQotICoKLSAqIENvbm5lY3RzIDIgZGFwbSB3aWRnZXRzIHRvZ2V0aGVyIHZpYSBhIG5hbWVkIGF1ZGlvIHBhdGguIFRoZSBzaW5rIGlzCi0gKiB0aGUgd2lkZ2V0IHJlY2VpdmluZyB0aGUgYXVkaW8gc2lnbmFsLCB3aGlsc3QgdGhlIHNvdXJjZSBpcyB0aGUgc2VuZGVyCi0gKiBvZiB0aGUgYXVkaW8gc2lnbmFsLgotICoKLSAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgotICovCi1pbnQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjb25zdCBjaGFyICpzaW5rLAotCWNvbnN0IGNoYXIgKiBjb250cm9sLCBjb25zdCBjaGFyICpzb3VyY2UpCitzdGF0aWMgaW50IHNuZF9zb2NfZGFwbV9hZGRfcm91dGUoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCWNvbnN0IGNoYXIgKnNpbmssIGNvbnN0IGNoYXIgKmNvbnRyb2wsIGNvbnN0IGNoYXIgKnNvdXJjZSkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19kYXBtX3BhdGggKnBhdGg7CiAJc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKndzb3VyY2UgPSBOVUxMLCAqd3NpbmsgPSBOVUxMLCAqdzsKQEAgLTk1Nyw5ICsxMDE5LDY0IEBACiAJa2ZyZWUocGF0aCk7CiAJcmV0dXJuIHJldDsKIH0KKworLyoqCisgKiBzbmRfc29jX2RhcG1fY29ubmVjdF9pbnB1dCAtIGNvbm5lY3QgZGFwbSB3aWRnZXRzCisgKiBAY29kZWM6IGF1ZGlvIGNvZGVjCisgKiBAc2luazogbmFtZSBvZiB0YXJnZXQgd2lkZ2V0CisgKiBAY29udHJvbDogbWl4ZXIgY29udHJvbCBuYW1lCisgKiBAc291cmNlOiBuYW1lIG9mIHNvdXJjZSBuYW1lCisgKgorICogQ29ubmVjdHMgMiBkYXBtIHdpZGdldHMgdG9nZXRoZXIgdmlhIGEgbmFtZWQgYXVkaW8gcGF0aC4gVGhlIHNpbmsgaXMKKyAqIHRoZSB3aWRnZXQgcmVjZWl2aW5nIHRoZSBhdWRpbyBzaWduYWwsIHdoaWxzdCB0aGUgc291cmNlIGlzIHRoZSBzZW5kZXIKKyAqIG9mIHRoZSBhdWRpbyBzaWduYWwuCisgKgorICogVGhpcyBmdW5jdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZiBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcygpLgorICoKKyAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgorICovCitpbnQgc25kX3NvY19kYXBtX2Nvbm5lY3RfaW5wdXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjb25zdCBjaGFyICpzaW5rLAorCWNvbnN0IGNoYXIgKmNvbnRyb2wsIGNvbnN0IGNoYXIgKnNvdXJjZSkKK3sKKwlyZXR1cm4gc25kX3NvY19kYXBtX2FkZF9yb3V0ZShjb2RlYywgc2luaywgY29udHJvbCwgc291cmNlKTsKK30KIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9jb25uZWN0X2lucHV0KTsKIAogLyoqCisgKiBzbmRfc29jX2RhcG1fYWRkX3JvdXRlcyAtIEFkZCByb3V0ZXMgYmV0d2VlbiBEQVBNIHdpZGdldHMKKyAqIEBjb2RlYzogY29kZWMKKyAqIEByb3V0ZTogYXVkaW8gcm91dGVzCisgKiBAbnVtOiBudW1iZXIgb2Ygcm91dGVzCisgKgorICogQ29ubmVjdHMgMiBkYXBtIHdpZGdldHMgdG9nZXRoZXIgdmlhIGEgbmFtZWQgYXVkaW8gcGF0aC4gVGhlIHNpbmsgaXMKKyAqIHRoZSB3aWRnZXQgcmVjZWl2aW5nIHRoZSBhdWRpbyBzaWduYWwsIHdoaWxzdCB0aGUgc291cmNlIGlzIHRoZSBzZW5kZXIKKyAqIG9mIHRoZSBhdWRpbyBzaWduYWwuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzIGVsc2UgZXJyb3IuIE9uIGVycm9yIGFsbCByZXNvdXJjZXMgY2FuIGJlIGZyZWVkCisgKiB3aXRoIGEgY2FsbCB0byBzbmRfc29jX2NhcmRfZnJlZSgpLgorICovCitpbnQgc25kX3NvY19kYXBtX2FkZF9yb3V0ZXMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAorCQkJICAgIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fcm91dGUgKnJvdXRlLCBpbnQgbnVtKQoreworCWludCBpLCByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnVtOyBpKyspIHsKKwkJcmV0ID0gc25kX3NvY19kYXBtX2FkZF9yb3V0ZShjb2RlYywgcm91dGUtPnNpbmssCisJCQkJCSAgICAgcm91dGUtPmNvbnRyb2wsIHJvdXRlLT5zb3VyY2UpOworCQlpZiAocmV0IDwgMCkgeworCQkJcHJpbnRrKEtFUk5fRVJSICJGYWlsZWQgdG8gYWRkIHJvdXRlICVzLT4lc1xuIiwKKwkJCSAgICAgICByb3V0ZS0+c291cmNlLAorCQkJICAgICAgIHJvdXRlLT5zaW5rKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwkJcm91dGUrKzsKKwl9CisKKwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKTsKKworLyoqCiAgKiBzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMgLSBhZGQgbmV3IGRhcG0gd2lkZ2V0cwogICogQGNvZGVjOiBhdWRpbyBjb2RlYwogICoKQEAgLTEyMzQsNiArMTM1MSwzMyBAQAogRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX25ld19jb250cm9sKTsKIAogLyoqCisgKiBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzIC0gY3JlYXRlIG5ldyBkYXBtIGNvbnRyb2xzCisgKiBAY29kZWM6IGF1ZGlvIGNvZGVjCisgKiBAd2lkZ2V0OiB3aWRnZXQgYXJyYXkKKyAqIEBudW06IG51bWJlciBvZiB3aWRnZXRzCisgKgorICogQ3JlYXRlcyBuZXcgREFQTSBjb250cm9scyBiYXNlZCB1cG9uIHRoZSB0ZW1wbGF0ZXMuCisgKgorICogUmV0dXJucyAwIGZvciBzdWNjZXNzIGVsc2UgZXJyb3IuCisgKi8KK2ludCBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2xzKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywKKwljb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqd2lkZ2V0LAorCWludCBudW0pCit7CisJaW50IGksIHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBudW07IGkrKykgeworCQlyZXQgPSBzbmRfc29jX2RhcG1fbmV3X2NvbnRyb2woY29kZWMsIHdpZGdldCk7CisJCWlmIChyZXQgPCAwKQorCQkJcmV0dXJuIHJldDsKKwkJd2lkZ2V0Kys7CisJfQorCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX25ld19jb250cm9scyk7CisKKworLyoqCiAgKiBzbmRfc29jX2RhcG1fc3RyZWFtX2V2ZW50IC0gc2VuZCBhIHN0cmVhbSBldmVudCB0byB0aGUgZGFwbSBjb3JlCiAgKiBAY29kZWM6IGF1ZGlvIGNvZGVjCiAgKiBAc3RyZWFtOiBzdHJlYW0gbmFtZQpAQCAtMTI1Nyw4ICsxNDAxLDggQEAKIAl7CiAJCWlmICghdy0+c25hbWUpCiAJCQljb250aW51ZTsKLQkJZGJnKCJ3aWRnZXQgJXNcbiAlcyBzdHJlYW0gJXMgZXZlbnQgJWRcbiIsIHctPm5hbWUsIHctPnNuYW1lLAotCQkJc3RyZWFtLCBldmVudCk7CisJCXByX2RlYnVnKCJ3aWRnZXQgJXNcbiAlcyBzdHJlYW0gJXMgZXZlbnQgJWRcbiIsCisJCQkgdy0+bmFtZSwgdy0+c25hbWUsIHN0cmVhbSwgZXZlbnQpOwogCQlpZiAoc3Ryc3RyKHctPnNuYW1lLCBzdHJlYW0pKSB7CiAJCQlzd2l0Y2goZXZlbnQpIHsKIAkJCWNhc2UgU05EX1NPQ19EQVBNX1NUUkVBTV9TVEFSVDoKQEAgLTEyOTQsNTMgKzE0MzgsODEgQEAKIEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9zdHJlYW1fZXZlbnQpOwogCiAvKioKLSAqIHNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQgLSBzZW5kIGEgZGV2aWNlIGV2ZW50IHRvIHRoZSBkYXBtIGNvcmUKKyAqIHNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbCAtIHNldCB0aGUgYmlhcyBsZXZlbCBmb3IgdGhlIHN5c3RlbQogICogQHNvY2RldjogYXVkaW8gZGV2aWNlCi0gKiBAZXZlbnQ6IGRldmljZSBldmVudAorICogQGxldmVsOiBsZXZlbCB0byBjb25maWd1cmUKICAqCi0gKiBTZW5kcyBhIGRldmljZSBldmVudCB0byB0aGUgZGFwbSBjb3JlLiBUaGUgY29yZSB0aGVuIG1ha2VzIGFueQotICogbmVjZXNzYXJ5IG1hY2hpbmUgb3IgY29kZWMgcG93ZXIgY2hhbmdlcy4uCisgKiBDb25maWd1cmUgdGhlIGJpYXMgKHBvd2VyKSBsZXZlbHMgZm9yIHRoZSBTb0MgYXVkaW8gZGV2aWNlLgogICoKICAqIFJldHVybnMgMCBmb3Igc3VjY2VzcyBlbHNlIGVycm9yLgogICovCi1pbnQgc25kX3NvY19kYXBtX2RldmljZV9ldmVudChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiwgaW50IGV2ZW50KQoraW50IHNuZF9zb2NfZGFwbV9zZXRfYmlhc19sZXZlbChzdHJ1Y3Qgc25kX3NvY19kZXZpY2UgKnNvY2RldiwKKwkJCQllbnVtIHNuZF9zb2NfYmlhc19sZXZlbCBsZXZlbCkKIHsKIAlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBzb2NkZXYtPmNvZGVjOwogCXN0cnVjdCBzbmRfc29jX21hY2hpbmUgKm1hY2hpbmUgPSBzb2NkZXYtPm1hY2hpbmU7CisJaW50IHJldCA9IDA7CiAKLQlpZiAobWFjaGluZS0+ZGFwbV9ldmVudCkKLQkJbWFjaGluZS0+ZGFwbV9ldmVudChtYWNoaW5lLCBldmVudCk7Ci0JaWYgKGNvZGVjLT5kYXBtX2V2ZW50KQotCQljb2RlYy0+ZGFwbV9ldmVudChjb2RlYywgZXZlbnQpOwotCXJldHVybiAwOworCWlmIChtYWNoaW5lLT5zZXRfYmlhc19sZXZlbCkKKwkJcmV0ID0gbWFjaGluZS0+c2V0X2JpYXNfbGV2ZWwobWFjaGluZSwgbGV2ZWwpOworCWlmIChyZXQgPT0gMCAmJiBjb2RlYy0+c2V0X2JpYXNfbGV2ZWwpCisJCXJldCA9IGNvZGVjLT5zZXRfYmlhc19sZXZlbChjb2RlYywgbGV2ZWwpOworCisJcmV0dXJuIHJldDsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9kZXZpY2VfZXZlbnQpOwogCiAvKioKLSAqIHNuZF9zb2NfZGFwbV9zZXRfZW5kcG9pbnQgLSBzZXQgYXVkaW8gZW5kcG9pbnQgc3RhdHVzCi0gKiBAY29kZWM6IGF1ZGlvIGNvZGVjCi0gKiBAZW5kcG9pbnQ6IGF1ZGlvIHNpZ25hbCBlbmRwb2ludCAob3Igc3RhcnQgcG9pbnQpCi0gKiBAc3RhdHVzOiBwb2ludCBzdGF0dXMKKyAqIHNuZF9zb2NfZGFwbV9lbmFibGVfcGluIC0gZW5hYmxlIHBpbi4KKyAqIEBzbmRfc29jX2NvZGVjOiBTb0MgY29kZWMKKyAqIEBwaW46IHBpbiBuYW1lCiAgKgotICogU2V0IGF1ZGlvIGVuZHBvaW50IHN0YXR1cyAtIGNvbm5lY3RlZCBvciBkaXNjb25uZWN0ZWQuCi0gKgotICogUmV0dXJucyAwIGZvciBzdWNjZXNzIGVsc2UgZXJyb3IuCisgKiBFbmFibGVzIGlucHV0L291dHB1dCBwaW4gYW5kIGl0J3MgcGFyZW50cyBvciBjaGlsZHJlbiB3aWRnZXRzIGlmZiB0aGVyZSBpcworICogYSB2YWxpZCBhdWRpbyByb3V0ZSBhbmQgYWN0aXZlIGF1ZGlvIHN0cmVhbS4KKyAqIE5PVEU6IHNuZF9zb2NfZGFwbV9zeW5jKCkgbmVlZHMgdG8gYmUgY2FsbGVkIGFmdGVyIHRoaXMgZm9yIERBUE0gdG8KKyAqIGRvIGFueSB3aWRnZXQgcG93ZXIgc3dpdGNoaW5nLgogICovCi1pbnQgc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsCi0JY2hhciAqZW5kcG9pbnQsIGludCBzdGF0dXMpCitpbnQgc25kX3NvY19kYXBtX2VuYWJsZV9waW4oc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pCit7CisJcmV0dXJuIHNuZF9zb2NfZGFwbV9zZXRfcGluKGNvZGVjLCBwaW4sIDEpOworfQorRVhQT1JUX1NZTUJPTF9HUEwoc25kX3NvY19kYXBtX2VuYWJsZV9waW4pOworCisvKioKKyAqIHNuZF9zb2NfZGFwbV9kaXNhYmxlX3BpbiAtIGRpc2FibGUgcGluLgorICogQGNvZGVjOiBTb0MgY29kZWMKKyAqIEBwaW46IHBpbiBuYW1lCisgKgorICogRGlzYWJsZXMgaW5wdXQvb3V0cHV0IHBpbiBhbmQgaXQncyBwYXJlbnRzIG9yIGNoaWxkcmVuIHdpZGdldHMuCisgKiBOT1RFOiBzbmRfc29jX2RhcG1fc3luYygpIG5lZWRzIHRvIGJlIGNhbGxlZCBhZnRlciB0aGlzIGZvciBEQVBNIHRvCisgKiBkbyBhbnkgd2lkZ2V0IHBvd2VyIHN3aXRjaGluZy4KKyAqLworaW50IHNuZF9zb2NfZGFwbV9kaXNhYmxlX3BpbihzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKnBpbikKK3sKKwlyZXR1cm4gc25kX3NvY19kYXBtX3NldF9waW4oY29kZWMsIHBpbiwgMCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fZGlzYWJsZV9waW4pOworCisvKioKKyAqIHNuZF9zb2NfZGFwbV9nZXRfcGluX3N0YXR1cyAtIGdldCBhdWRpbyBwaW4gc3RhdHVzCisgKiBAY29kZWM6IGF1ZGlvIGNvZGVjCisgKiBAcGluOiBhdWRpbyBzaWduYWwgcGluIGVuZHBvaW50IChvciBzdGFydCBwb2ludCkKKyAqCisgKiBHZXQgYXVkaW8gcGluIHN0YXR1cyAtIGNvbm5lY3RlZCBvciBkaXNjb25uZWN0ZWQuCisgKgorICogUmV0dXJucyAxIGZvciBjb25uZWN0ZWQgb3RoZXJ3aXNlIDAuCisgKi8KK2ludCBzbmRfc29jX2RhcG1fZ2V0X3Bpbl9zdGF0dXMoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLCBjaGFyICpwaW4pCiB7CiAJc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgKnc7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHcsICZjb2RlYy0+ZGFwbV93aWRnZXRzLCBsaXN0KSB7Ci0JCWlmICghc3RyY21wKHctPm5hbWUsIGVuZHBvaW50KSkgewotCQkJdy0+Y29ubmVjdGVkID0gc3RhdHVzOwotCQkJcmV0dXJuIDA7Ci0JCX0KKwkJaWYgKCFzdHJjbXAody0+bmFtZSwgcGluKSkKKwkJCXJldHVybiB3LT5jb25uZWN0ZWQ7CiAJfQogCi0JcmV0dXJuIC1FTk9ERVY7CisJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KTsKK0VYUE9SVF9TWU1CT0xfR1BMKHNuZF9zb2NfZGFwbV9nZXRfcGluX3N0YXR1cyk7CiAKIC8qKgogICogc25kX3NvY19kYXBtX2ZyZWUgLSBmcmVlIGRhcG0gcmVzb3VyY2VzCmRpZmYgLS1naXQgYS9zb3VuZC9zb3VuZF9jb3JlLmMgYi9zb3VuZC9zb3VuZF9jb3JlLmMKaW5kZXggNDZkYWNhMS4uZGNmYzFkNSAxMDA2NDQKLS0tIGEvc291bmQvc291bmRfY29yZS5jCisrKyBiL3NvdW5kL3NvdW5kX2NvcmUuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvc21wX2xvY2suaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CkBAIC00NjQsNiArNDY1LDggQEAKIAlzdHJ1Y3Qgc291bmRfdW5pdCAqczsKIAljb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpuZXdfZm9wcyA9IE5VTEw7CiAKKwlsb2NrX2tlcm5lbCAoKTsKKwogCWNoYWluPXVuaXQmMHgwRjsKIAlpZihjaGFpbj09NCB8fCBjaGFpbj09NSkJLyogZHNwL2F1ZGlvL2RzcDE2ICovCiAJewpAQCAtNTExLDkgKzUxNCwxMSBAQAogCQkJZmlsZS0+Zl9vcCA9IGZvcHNfZ2V0KG9sZF9mb3BzKTsKIAkJfQogCQlmb3BzX3B1dChvbGRfZm9wcyk7CisJCXVubG9ja19rZXJuZWwoKTsKIAkJcmV0dXJuIGVycjsKIAl9CiAJc3Bpbl91bmxvY2soJnNvdW5kX2xvYWRlcl9sb2NrKTsKKwl1bmxvY2tfa2VybmVsKCk7CiAJcmV0dXJuIC1FTk9ERVY7CiB9CiAKZGlmZiAtLWdpdCBhL3NvdW5kL3NwYXJjL0tjb25maWcgYi9zb3VuZC9zcGFyYy9LY29uZmlnCmluZGV4IDA3OWUyMmEuLmQ3NWRlYmEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NwYXJjL0tjb25maWcKKysrIGIvc291bmQvc3BhcmMvS2NvbmZpZwpAQCAtMSwxMSArMSwxNyBAQAogIyBBTFNBIFNwYXJjIGRyaXZlcnMKIAotbWVudSAiQUxTQSBTcGFyYyBkZXZpY2VzIgotCWRlcGVuZHMgb24gU05EIT1uICYmIFNQQVJDCittZW51Y29uZmlnIFNORF9TUEFSQworCWJvb2wgIlNwYXJjIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBTUEFSQworCWRlZmF1bHQgeQorCWhlbHAKKwkgIFN1cHBvcnQgZm9yIHNvdW5kIGRldmljZXMgc3BlY2lmaWMgdG8gU3VuIFNQQVJDIGFyY2hpdGVjdHVyZXMuCisKK2lmIFNORF9TUEFSQwogCiBjb25maWcgU05EX1NVTl9BTUQ3OTMwCiAJdHJpc3RhdGUgIlN1biBBTUQ3OTMwIgotCWRlcGVuZHMgb24gU0JVUyAmJiBTTkQKKwlkZXBlbmRzIG9uIFNCVVMKIAlzZWxlY3QgU05EX1BDTQogCWhlbHAKIAkgIFNheSBZIGhlcmUgdG8gaW5jbHVkZSBzdXBwb3J0IGZvciBBTUQ3OTMwIHNvdW5kIGRldmljZSBvbiBTdW4uCkBAIC0xNSw3ICsyMSw2IEBACiAKIGNvbmZpZyBTTkRfU1VOX0NTNDIzMQogCXRyaXN0YXRlICJTdW4gQ1M0MjMxIgotCWRlcGVuZHMgb24gU05ECiAJc2VsZWN0IFNORF9QQ00KIAloZWxwCiAJICBTYXkgWSBoZXJlIHRvIGluY2x1ZGUgc3VwcG9ydCBmb3IgQ1M0MjMxIHNvdW5kIGRldmljZSBvbiBTdW4uCkBAIC0yNSw3ICszMCw3IEBACiAKIGNvbmZpZyBTTkRfU1VOX0RCUkkKIAl0cmlzdGF0ZSAiU3VuIERCUkkiCi0JZGVwZW5kcyBvbiBTTkQgJiYgU0JVUworCWRlcGVuZHMgb24gU0JVUwogCXNlbGVjdCBTTkRfUENNCiAJaGVscAogCSAgU2F5IFkgaGVyZSB0byBpbmNsdWRlIHN1cHBvcnQgZm9yIERCUkkgc291bmQgZGV2aWNlIG9uIFN1bi4KQEAgLTMzLDQgKzM4LDQgQEAKIAkgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUKIAkgIHdpbGwgYmUgY2FsbGVkIHNuZC1zdW4tZGJyaS4KIAotZW5kbWVudQorZW5kaWYJIyBTTkRfU1BBUkMKZGlmZiAtLWdpdCBhL3NvdW5kL3NwYXJjL2RicmkuYyBiL3NvdW5kL3NwYXJjL2RicmkuYwppbmRleCAzZDAwZTA3Li5lZTJlMWI0IDEwMDY0NAotLS0gYS9zb3VuZC9zcGFyYy9kYnJpLmMKKysrIGIvc291bmQvc3BhcmMvZGJyaS5jCkBAIC0yNDkwLDcgKzI0OTAsNyBAQAogfQogI2VuZGlmCiAKLXZvaWQgX19kZXZpbml0IHNuZF9kYnJpX3Byb2Moc3RydWN0IHNuZF9jYXJkICpjYXJkKQorc3RhdGljIHZvaWQgX19kZXZpbml0IHNuZF9kYnJpX3Byb2Moc3RydWN0IHNuZF9jYXJkICpjYXJkKQogewogCXN0cnVjdCBzbmRfZGJyaSAqZGJyaSA9IGNhcmQtPnByaXZhdGVfZGF0YTsKIAlzdHJ1Y3Qgc25kX2luZm9fZW50cnkgKmVudHJ5OwpkaWZmIC0tZ2l0IGEvc291bmQvc3BpL0tjb25maWcgYi9zb3VuZC9zcGkvS2NvbmZpZwppbmRleCAwZDA4YzI5Li5lNjQ4NWJlIDEwMDY0NAotLS0gYS9zb3VuZC9zcGkvS2NvbmZpZworKysgYi9zb3VuZC9zcGkvS2NvbmZpZwpAQCAtMSw3ICsxLDEzIEBACiAjU1BJIGRyaXZlcnMKIAotbWVudSAiU1BJIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQgIT0gbgorbWVudWNvbmZpZyBTTkRfU1BJCisJYm9vbCAiU1BJIHNvdW5kIGRldmljZXMiCisJZGVwZW5kcyBvbiBTUEkKKwlkZWZhdWx0IHkKKwloZWxwCisJICBTdXBwb3J0IGZvciBzb3VuZCBkZXZpY2VzIGNvbm5lY3RlZCB2aWEgdGhlIFNQSSBidXMuCisKK2lmIFNORF9TUEkKIAogY29uZmlnIFNORF9BVDczQzIxMwogCXRyaXN0YXRlICJBdG1lbCBBVDczQzIxMyBEQUMgZHJpdmVyIgpAQCAtMjgsNCArMzQsNSBAQAogCiAJICBTZXQgdG8gNDgwMDAgSHogYnkgZGVmYXVsdC4KIAotZW5kbWVudQorZW5kaWYJIyBTTkRfU1BJCisKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9LY29uZmlnIGIvc291bmQvdXNiL0tjb25maWcKaW5kZXggOTM1MWI4YS4uZmZjZGM4ZiAxMDA2NDQKLS0tIGEvc291bmQvdXNiL0tjb25maWcKKysrIGIvc291bmQvdXNiL0tjb25maWcKQEAgLTEsMTEgKzEsMTYgQEAKICMgQUxTQSBVU0IgZHJpdmVycwogCi1tZW51ICJVU0IgZGV2aWNlcyIKLQlkZXBlbmRzIG9uIFNORCE9biAmJiBVU0IhPW4KK21lbnVjb25maWcgU05EX1VTQgorCWJvb2wgIlVTQiBzb3VuZCBkZXZpY2VzIgorCWRlcGVuZHMgb24gVVNCCisJZGVmYXVsdCB5CisJaGVscAorCSAgU3VwcG9ydCBmb3Igc291bmQgZGV2aWNlcyBjb25uZWN0ZWQgdmlhIHRoZSBVU0IgYnVzLgorCitpZiBTTkRfVVNCICYmIFVTQgogCiBjb25maWcgU05EX1VTQl9BVURJTwogCXRyaXN0YXRlICJVU0IgQXVkaW8vTUlESSBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgVVNCCiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC0xOCw3ICsyMyw3IEBACiAKIGNvbmZpZyBTTkRfVVNCX1VTWDJZCiAJdHJpc3RhdGUgIlRhc2NhbSBVUy0xMjIsIFVTLTIyNCBhbmQgVVMtNDI4IFVTQiBkcml2ZXIiCi0JZGVwZW5kcyBvbiBTTkQgJiYgVVNCICYmIChYODYgfHwgUFBDIHx8IEFMUEhBKQorCWRlcGVuZHMgb24gWDg2IHx8IFBQQyB8fCBBTFBIQQogCXNlbGVjdCBTTkRfSFdERVAKIAlzZWxlY3QgU05EX1JBV01JREkKIAlzZWxlY3QgU05EX1BDTQpAQCAtMzEsNyArMzYsNiBAQAogCiBjb25maWcgU05EX1VTQl9DQUlBUQogCXRyaXN0YXRlICJOYXRpdmUgSW5zdHJ1bWVudHMgVVNCIGF1ZGlvIGRldmljZXMiCi0JZGVwZW5kcyBvbiBTTkQgJiYgVVNCCiAJc2VsZWN0IFNORF9IV0RFUAogCXNlbGVjdCBTTkRfUkFXTUlESQogCXNlbGVjdCBTTkRfUENNCkBAIC02Myw1ICs2Nyw1IEBACiAJICAgKiBOYXRpdmUgSW5zdHJ1bWVudHMgS29yZSBDb250cm9sbGVyIDIKIAkgICAqIE5hdGl2ZSBJbnN0cnVtZW50cyBBdWRpbyBLb250cm9sIDEKIAotZW5kbWVudQorZW5kaWYJIyBTTkRfVVNCCiAKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1hdWRpby5jIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWF1ZGlvLmMKaW5kZXggMjQ5NzBhNS4uYjNhNjAzMyAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWF1ZGlvLmMKKysrIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWF1ZGlvLmMKQEAgLTYzNyw2ICs2MzcsNyBAQAogCXN3aXRjaCAoZGV2LT5jaGlwLnVzYl9pZCkgewogCWNhc2UgVVNCX0lEKFVTQl9WSURfTkFUSVZFSU5TVFJVTUVOVFMsIFVTQl9QSURfQUsxKToKIAljYXNlIFVTQl9JRChVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLCBVU0JfUElEX1JJR0tPTlRST0wzKToKKwljYXNlIFVTQl9JRChVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLCBVU0JfUElEX1NFU1NJT05JTyk6CiAJCWRldi0+c2FtcGxlcmF0ZXMgfD0gU05EUlZfUENNX1JBVEVfODgyMDA7CiAJCWRldi0+c2FtcGxlcmF0ZXMgfD0gU05EUlZfUENNX1JBVEVfMTkyMDAwOwogCQlicmVhazsKZGlmZiAtLWdpdCBhL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuYyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuYwppbmRleCBhOTcyZjc3Li44MzE3NTA4IDEwMDY0NAotLS0gYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmMKKysrIGIvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5jCkBAIC00MiwxNCArNDIsMTUgQEAKICNlbmRpZgogCiBNT0RVTEVfQVVUSE9SKCJEYW5pZWwgTWFjayA8ZGFuaWVsQGNhaWFxLmRlPiIpOwotTU9EVUxFX0RFU0NSSVBUSU9OKCJjYWlhcSBVU0IgYXVkaW8sIHZlcnNpb24gMS4zLjYiKTsKK01PRFVMRV9ERVNDUklQVElPTigiY2FpYXEgVVNCIGF1ZGlvLCB2ZXJzaW9uIDEuMy44Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfU1VQUE9SVEVEX0RFVklDRSgie3tOYXRpdmUgSW5zdHJ1bWVudHMsIFJpZ0tvbnRyb2wyfSwiCiAJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIFJpZ0tvbnRyb2wzfSwiCiAJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIEtvcmUgQ29udHJvbGxlcn0sIgogCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBLb3JlIENvbnRyb2xsZXIgMn0sIgotCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBBdWRpbyBLb250cm9sIDF9IgotCQkJICJ7TmF0aXZlIEluc3RydW1lbnRzLCBBdWRpbyA4IERKfX0iKTsKKwkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgQXVkaW8gS29udHJvbCAxfSwiCisJCQkgIntOYXRpdmUgSW5zdHJ1bWVudHMsIEF1ZGlvIDggREp9LCIKKwkJCSAie05hdGl2ZSBJbnN0cnVtZW50cywgU2Vzc2lvbiBJL099fSIpOwogCiBzdGF0aWMgaW50IGluZGV4W1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfSURYOyAvKiBJbmRleCAwLW1heCAqLwogc3RhdGljIGNoYXIqIGlkW1NORFJWX0NBUkRTXSA9IFNORFJWX0RFRkFVTFRfU1RSOyAvKiBJZCBmb3IgdGhpcyBjYXJkICovCkBAIC0xMTAsNiArMTExLDExIEBACiAJCS5pZFZlbmRvciA9ICAgICBVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLAogCQkuaWRQcm9kdWN0ID0gICAgVVNCX1BJRF9BVURJTzhESgogCX0sCisJeworCQkubWF0Y2hfZmxhZ3MgPSAgVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UsCisJCS5pZFZlbmRvciA9ICAgICBVU0JfVklEX05BVElWRUlOU1RSVU1FTlRTLAorCQkuaWRQcm9kdWN0ID0gICAgVVNCX1BJRF9TRVNTSU9OSU8KKwl9LAogCXsgLyogdGVybWluYXRvciAqLyB9CiB9OwogCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmggYi9zb3VuZC91c2IvY2FpYXEvY2FpYXEtZGV2aWNlLmgKaW5kZXggOTZhNDkxMy4uZjlmYmRiYSAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2NhaWFxL2NhaWFxLWRldmljZS5oCisrKyBiL3NvdW5kL3VzYi9jYWlhcS9jYWlhcS1kZXZpY2UuaApAQCAtMTEsNiArMTEsNyBAQAogI2RlZmluZSBVU0JfUElEX0tPUkVDT05UUk9MTEVSMgkweDQ3MTIKICNkZWZpbmUgVVNCX1BJRF9BSzEJCTB4MDgxNQogI2RlZmluZSBVU0JfUElEX0FVRElPOERKCTB4MTk3OAorI2RlZmluZSBVU0JfUElEX1NFU1NJT05JTwkweDE5MTUKIAogI2RlZmluZSBFUDFfQlVGU0laRSA2NAogI2RlZmluZSBDQUlBUV9VU0JfU1RSX0xFTiAweGZmCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvdXNiYXVkaW8uYyBiL3NvdW5kL3VzYi91c2JhdWRpby5jCmluZGV4IDQxMGJlNGEuLmI4Y2ZiN2MgMTAwNjQ0Ci0tLSBhL3NvdW5kL3VzYi91c2JhdWRpby5jCisrKyBiL3NvdW5kL3VzYi91c2JhdWRpby5jCkBAIC04MTksMTAgKzgxOSw2IEBACiAJCXJldHVybiAiZGV2aWNlIGRpc2FibGVkIjsKIAljYXNlIC1FSE9TVFVOUkVBQ0g6CiAJCXJldHVybiAiZGV2aWNlIHN1c3BlbmRlZCI7Ci0jaWZuZGVmIENPTkZJR19VU0JfRUhDSV9TUExJVF9JU08KLQljYXNlIC1FTk9TWVM6Ci0JCXJldHVybiAiZW5hYmxlIENPTkZJR19VU0JfRUhDSV9TUExJVF9JU08gdG8gcGxheSB0aHJvdWdoIGEgaHViIjsKLSNlbmRpZgogCWNhc2UgLUVJTlZBTDoKIAljYXNlIC1FQUdBSU46CiAJY2FzZSAtRUZCSUc6CmRpZmYgLS1naXQgYS9zb3VuZC91c2IvdXNicXVpcmtzLmggYi9zb3VuZC91c2IvdXNicXVpcmtzLmgKaW5kZXggODJhOGQxNC4uOWVhNzI2YyAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3VzYnF1aXJrcy5oCisrKyBiL3NvdW5kL3VzYi91c2JxdWlya3MuaApAQCAtMjEwLDYgKzIxMCwxMSBAQAogWUFNQUhBX0RFVklDRSgweDEwNDMsIE5VTEwpLAogWUFNQUhBX0RFVklDRSgweDEwNDQsIE5VTEwpLAogWUFNQUhBX0RFVklDRSgweDEwNDUsIE5VTEwpLAorWUFNQUhBX0lOVEVSRkFDRSgweDEwNGUsIDAsIE5VTEwpLAorWUFNQUhBX0RFVklDRSgweDEwNGYsIE5VTEwpLAorWUFNQUhBX0RFVklDRSgweDEwNTAsIE5VTEwpLAorWUFNQUhBX0RFVklDRSgweDEwNTEsIE5VTEwpLAorWUFNQUhBX0RFVklDRSgweDEwNTIsIE5VTEwpLAogWUFNQUhBX0RFVklDRSgweDIwMDAsICJER1AtNyIpLAogWUFNQUhBX0RFVklDRSgweDIwMDEsICJER1AtNSIpLAogWUFNQUhBX0RFVklDRSgweDIwMDIsIE5VTEwpLApAQCAtMTM3OSw2ICsxMzg0LDM5IEBACiAJfQogfSwKIAoreworCS8qIFJvbGFuZCBTb25pY0NlbGwgKi8KKwlVU0JfREVWSUNFKDB4MDU4MiwgMHgwMGMyKSwKKwkuZHJpdmVyX2luZm8gPSAodW5zaWduZWQgbG9uZykgJiAoY29uc3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsKKwkJLnZlbmRvcl9uYW1lID0gIlJvbGFuZCIsCisJCS5wcm9kdWN0X25hbWUgPSAiU29uaWNDZWxsIiwKKwkJLmlmbnVtID0gUVVJUktfQU5ZX0lOVEVSRkFDRSwKKwkJLnR5cGUgPSBRVUlSS19DT01QT1NJVEUsCisJCS5kYXRhID0gKGNvbnN0IHN0cnVjdCBzbmRfdXNiX2F1ZGlvX3F1aXJrW10pIHsKKwkJCXsKKwkJCQkuaWZudW0gPSAwLAorCQkJCS50eXBlID0gUVVJUktfQVVESU9fU1RBTkRBUkRfSU5URVJGQUNFCisJCQl9LAorCQkJeworCQkJCS5pZm51bSA9IDEsCisJCQkJLnR5cGUgPSBRVUlSS19BVURJT19TVEFOREFSRF9JTlRFUkZBQ0UKKwkJCX0sCisJCQl7CisJCQkJLmlmbnVtID0gMiwKKwkJCQkudHlwZSA9IFFVSVJLX01JRElfRklYRURfRU5EUE9JTlQsCisJCQkJLmRhdGEgPSAmIChjb25zdCBzdHJ1Y3Qgc25kX3VzYl9taWRpX2VuZHBvaW50X2luZm8pIHsKKwkJCQkJLm91dF9jYWJsZXMgPSAweDAwMDEsCisJCQkJCS5pbl9jYWJsZXMgID0gMHgwMDAxCisJCQkJfQorCQkJfSwKKwkJCXsKKwkJCQkuaWZudW0gPSAtMQorCQkJfQorCQl9CisJfQorfSwKKworCiAvKiBHdWlsbGVtb3QgZGV2aWNlcyAqLwogewogCS8qCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9pb2FwaWMuYyBiL3ZpcnQva3ZtL2lvYXBpYy5jCmluZGV4IDQyMzJmZDcuLjQ0NTg5MDggMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2lvYXBpYy5jCisrKyBiL3ZpcnQva3ZtL2lvYXBpYy5jCkBAIC00NSw3ICs0NSw3IEBACiAjZWxzZQogI2RlZmluZSBpb2FwaWNfZGVidWcoZm10LCBhcmcuLi4pCiAjZW5kaWYKLXN0YXRpYyB2b2lkIGlvYXBpY19kZWxpdmVyKHN0cnVjdCBrdm1faW9hcGljICp2aW9hcGljLCBpbnQgaXJxKTsKK3N0YXRpYyBpbnQgaW9hcGljX2RlbGl2ZXIoc3RydWN0IGt2bV9pb2FwaWMgKnZpb2FwaWMsIGludCBpcnEpOwogCiBzdGF0aWMgdW5zaWduZWQgbG9uZyBpb2FwaWNfcmVhZF9pbmRpcmVjdChzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljLAogCQkJCQkgIHVuc2lnbmVkIGxvbmcgYWRkciwKQEAgLTg5LDggKzg5LDggQEAKIAlwZW50ID0gJmlvYXBpYy0+cmVkaXJ0YmxbaWR4XTsKIAogCWlmICghcGVudC0+ZmllbGRzLm1hc2spIHsKLQkJaW9hcGljX2RlbGl2ZXIoaW9hcGljLCBpZHgpOwotCQlpZiAocGVudC0+ZmllbGRzLnRyaWdfbW9kZSA9PSBJT0FQSUNfTEVWRUxfVFJJRykKKwkJaW50IGluamVjdGVkID0gaW9hcGljX2RlbGl2ZXIoaW9hcGljLCBpZHgpOworCQlpZiAoaW5qZWN0ZWQgJiYgcGVudC0+ZmllbGRzLnRyaWdfbW9kZSA9PSBJT0FQSUNfTEVWRUxfVFJJRykKIAkJCXBlbnQtPmZpZWxkcy5yZW1vdGVfaXJyID0gMTsKIAl9CiAJaWYgKCFwZW50LT5maWVsZHMudHJpZ19tb2RlKQpAQCAtMTMzLDcgKzEzMyw3IEBACiAJfQogfQogCi1zdGF0aWMgdm9pZCBpb2FwaWNfaW5qX2lycShzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljLAorc3RhdGljIGludCBpb2FwaWNfaW5qX2lycShzdHJ1Y3Qga3ZtX2lvYXBpYyAqaW9hcGljLAogCQkJICAgc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJICAgdTggdmVjdG9yLCB1OCB0cmlnX21vZGUsIHU4IGRlbGl2ZXJ5X21vZGUpCiB7CkBAIC0xNDMsNyArMTQzLDcgQEAKIAlBU1NFUlQoKGRlbGl2ZXJ5X21vZGUgPT0gSU9BUElDX0ZJWEVEKSB8fAogCSAgICAgICAoZGVsaXZlcnlfbW9kZSA9PSBJT0FQSUNfTE9XRVNUX1BSSU9SSVRZKSk7CiAKLQlrdm1fYXBpY19zZXRfaXJxKHZjcHUsIHZlY3RvciwgdHJpZ19tb2RlKTsKKwlyZXR1cm4ga3ZtX2FwaWNfc2V0X2lycSh2Y3B1LCB2ZWN0b3IsIHRyaWdfbW9kZSk7CiB9CiAKIHN0YXRpYyB1MzIgaW9hcGljX2dldF9kZWxpdmVyeV9iaXRtYXNrKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIHU4IGRlc3QsCkBAIC0xODYsNyArMTg2LDcgQEAKIAlyZXR1cm4gbWFzazsKIH0KIAotc3RhdGljIHZvaWQgaW9hcGljX2RlbGl2ZXIoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IGlycSkKK3N0YXRpYyBpbnQgaW9hcGljX2RlbGl2ZXIoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IGlycSkKIHsKIAl1OCBkZXN0ID0gaW9hcGljLT5yZWRpcnRibFtpcnFdLmZpZWxkcy5kZXN0X2lkOwogCXU4IGRlc3RfbW9kZSA9IGlvYXBpYy0+cmVkaXJ0YmxbaXJxXS5maWVsZHMuZGVzdF9tb2RlOwpAQCAtMTk1LDcgKzE5NSw3IEBACiAJdTggdHJpZ19tb2RlID0gaW9hcGljLT5yZWRpcnRibFtpcnFdLmZpZWxkcy50cmlnX21vZGU7CiAJdTMyIGRlbGl2ZXJfYml0bWFzazsKIAlzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHU7Ci0JaW50IHZjcHVfaWQ7CisJaW50IHZjcHVfaWQsIHIgPSAwOwogCiAJaW9hcGljX2RlYnVnKCJkZXN0PSV4IGRlc3RfbW9kZT0leCBkZWxpdmVyeV9tb2RlPSV4ICIKIAkJICAgICAidmVjdG9yPSV4IHRyaWdfbW9kZT0leFxuIiwKQEAgLTIwNCw3ICsyMDQsNyBAQAogCWRlbGl2ZXJfYml0bWFzayA9IGlvYXBpY19nZXRfZGVsaXZlcnlfYml0bWFzayhpb2FwaWMsIGRlc3QsIGRlc3RfbW9kZSk7CiAJaWYgKCFkZWxpdmVyX2JpdG1hc2spIHsKIAkJaW9hcGljX2RlYnVnKCJubyB0YXJnZXQgb24gZGVzdGluYXRpb25cbiIpOwotCQlyZXR1cm47CisJCXJldHVybiAwOwogCX0KIAogCXN3aXRjaCAoZGVsaXZlcnlfbW9kZSkgewpAQCAtMjE2LDcgKzIxNiw3IEBACiAJCQl2Y3B1ID0gaW9hcGljLT5rdm0tPnZjcHVzWzBdOwogI2VuZGlmCiAJCWlmICh2Y3B1ICE9IE5VTEwpCi0JCQlpb2FwaWNfaW5qX2lycShpb2FwaWMsIHZjcHUsIHZlY3RvciwKKwkJCXIgPSBpb2FwaWNfaW5qX2lycShpb2FwaWMsIHZjcHUsIHZlY3RvciwKIAkJCQkgICAgICAgdHJpZ19tb2RlLCBkZWxpdmVyeV9tb2RlKTsKIAkJZWxzZQogCQkJaW9hcGljX2RlYnVnKCJudWxsIGxvd2VzdCBwcmlvIHZjcHU6ICIKQEAgLTIzNCw3ICsyMzQsNyBAQAogCQkJZGVsaXZlcl9iaXRtYXNrICY9IH4oMSA8PCB2Y3B1X2lkKTsKIAkJCXZjcHUgPSBpb2FwaWMtPmt2bS0+dmNwdXNbdmNwdV9pZF07CiAJCQlpZiAodmNwdSkgewotCQkJCWlvYXBpY19pbmpfaXJxKGlvYXBpYywgdmNwdSwgdmVjdG9yLAorCQkJCXIgPSBpb2FwaWNfaW5qX2lycShpb2FwaWMsIHZjcHUsIHZlY3RvciwKIAkJCQkJICAgICAgIHRyaWdfbW9kZSwgZGVsaXZlcnlfbW9kZSk7CiAJCQl9CiAJCX0KQEAgLTI0Niw2ICsyNDYsNyBAQAogCQkgICAgICAgZGVsaXZlcnlfbW9kZSk7CiAJCWJyZWFrOwogCX0KKwlyZXR1cm4gcjsKIH0KIAogdm9pZCBrdm1faW9hcGljX3NldF9pcnEoc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IGlycSwgaW50IGxldmVsKQpAQCAtMjY4LDM1ICsyNjksMjYgQEAKIAl9CiB9CiAKLXN0YXRpYyBpbnQgZ2V0X2VvaV9nc2koc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYywgaW50IHZlY3RvcikKK3N0YXRpYyB2b2lkIF9fa3ZtX2lvYXBpY191cGRhdGVfZW9pKHN0cnVjdCBrdm1faW9hcGljICppb2FwaWMsIGludCBnc2kpCiB7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgSU9BUElDX05VTV9QSU5TOyBpKyspCi0JCWlmIChpb2FwaWMtPnJlZGlydGJsW2ldLmZpZWxkcy52ZWN0b3IgPT0gdmVjdG9yKQotCQkJcmV0dXJuIGk7Ci0JcmV0dXJuIC0xOwotfQotCi12b2lkIGt2bV9pb2FwaWNfdXBkYXRlX2VvaShzdHJ1Y3Qga3ZtICprdm0sIGludCB2ZWN0b3IpCi17Ci0Jc3RydWN0IGt2bV9pb2FwaWMgKmlvYXBpYyA9IGt2bS0+YXJjaC52aW9hcGljOwogCXVuaW9uIGlvYXBpY19yZWRpcl9lbnRyeSAqZW50OwotCWludCBnc2k7Ci0KLQlnc2kgPSBnZXRfZW9pX2dzaShpb2FwaWMsIHZlY3Rvcik7Ci0JaWYgKGdzaSA9PSAtMSkgewotCQlwcmludGsoS0VSTl9XQVJOSU5HICJDYW4ndCBmaW5kIHJlZGlyIGl0ZW0gZm9yICVkIEVPSVxuIiwKLQkJICAgICAgIHZlY3Rvcik7Ci0JCXJldHVybjsKLQl9CiAKIAllbnQgPSAmaW9hcGljLT5yZWRpcnRibFtnc2ldOwogCUFTU0VSVChlbnQtPmZpZWxkcy50cmlnX21vZGUgPT0gSU9BUElDX0xFVkVMX1RSSUcpOwogCiAJZW50LT5maWVsZHMucmVtb3RlX2lyciA9IDA7CiAJaWYgKCFlbnQtPmZpZWxkcy5tYXNrICYmIChpb2FwaWMtPmlyciAmICgxIDw8IGdzaSkpKQotCQlpb2FwaWNfZGVsaXZlcihpb2FwaWMsIGdzaSk7CisJCWlvYXBpY19zZXJ2aWNlKGlvYXBpYywgZ3NpKTsKK30KKwordm9pZCBrdm1faW9hcGljX3VwZGF0ZV9lb2koc3RydWN0IGt2bSAqa3ZtLCBpbnQgdmVjdG9yKQoreworCXN0cnVjdCBrdm1faW9hcGljICppb2FwaWMgPSBrdm0tPmFyY2gudmlvYXBpYzsKKwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBJT0FQSUNfTlVNX1BJTlM7IGkrKykKKwkJaWYgKGlvYXBpYy0+cmVkaXJ0YmxbaV0uZmllbGRzLnZlY3RvciA9PSB2ZWN0b3IpCisJCQlfX2t2bV9pb2FwaWNfdXBkYXRlX2VvaShpb2FwaWMsIGkpOwogfQogCiBzdGF0aWMgaW50IGlvYXBpY19pbl9yYW5nZShzdHJ1Y3Qga3ZtX2lvX2RldmljZSAqdGhpcywgZ3BhX3QgYWRkcikK